%global appLoc serverName; %let compiled_apploc=/30.SASApps/3030.Projects/303001.DataController/build2/DataController; %let serverName=SASApp; %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 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1) )/*/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 mf_verifymacvars( verifyVars /* list of macro variable NAMES */ ,makeUpcase=NO /* set to YES to make all the variable VALUES uppercase */ ,mAbort=SOFT )/*/STORE SOURCE*/; %local verifyIterator verifyVar abortmsg; %do verifyIterator=1 %to %sysfunc(countw(&verifyVars,%str( ))); %let verifyVar=%qscan(&verifyVars,&verifyIterator,%str( )); %if not %symexist(&verifyvar) %then %do; %let abortmsg= Variable &verifyVar is MISSING; %goto exit_err; %end; %if %length(%trim(&&&verifyVar))=0 %then %do; %let abortmsg= Variable &verifyVar is EMPTY; %goto exit_err; %end; %if &makeupcase=YES %then %do; %let &verifyVar=%upcase(&&&verifyvar); %end; %end; %goto exit_success; %exit_err: %put &abortmsg; %mf_abort(iftrue=(&mabort ne SOFT), mac=mf_verifymacvars, msg=%str(&abortmsg) ) 0 %return; %exit_success: 1 %mend mf_verifymacvars; %macro mm_getDirectories( path= ,outds=work.mm_getDirectories ,mDebug=0 )/*/STORE SOURCE*/; %local mD; %if &mDebug=1 %then %let mD=; %else %let mD=%str(*); %&mD.put Executing mm_getDirectories.sas; %&mD.put _local_; data &outds (keep=directoryuri name directoryname directorydesc ); length directoryuri name directoryname directorydesc $256; call missing(of _all_); __i+1; %if %length(&path)=0 %then %do; do while (metadata_getnobj("omsobj:Directory?@Id contains '.'",__i,directoryuri)>0); %end; %else %do; do while( metadata_getnobj("omsobj:Directory?@DirectoryName='&path'",__i,directoryuri) >0 ); %end; __rc1=metadata_getattr(directoryuri, "Name", name); __rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname); __rc3=metadata_getattr(directoryuri, "Desc", directorydesc); &mD.putlog (_all_) (=); drop __:; __i+1; if sum(of __rc1-__rc3)=0 then output; end; run; %mend mm_getDirectories; %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 mm_updatestpsourcecode(stp= ,stpcode= ,minify=NO ,mdebug=0 ); /* first, check if STP exists */ %local tsuri; %let tsuri=stopifempty ; data _null_; format type uri tsuri value $200.; call missing (of _all_); path="&stp.(StoredProcess)"; /* first, find the STP ID */ if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do; /* get sourcecode */ cnt=1; do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0); rc=metadata_getattr(tsuri,"Name",value); %if &mdebug=1 %then %do; put tsuri= value=; %end; if value="SourceCode" then do; /* found it! */ rc=metadata_getattr(tsuri,"Id",value); call symputx('tsuri',value,'l'); stop; end; cnt+1; end; end; else put (_all_)(=); run; %if &tsuri=stopifempty %then %do; %put %str(WARN)ING: &stp.(StoredProcess) not found!; %return; %end; %if %length(&stpcode)<2 %then %do; %put %str(WARN)ING: No SAS code supplied!!; %return; %end; %local frefin frefout; %let frefin=%mf_getuniquefileref(); %let frefout=%mf_getuniquefileref(); /* write header XML */ data _null_; file &frefin; put "$METAREPOSITORY ','>'); outstr=tranwrd(outstr,"'",'''); outstr=tranwrd(outstr,'"','"'); outstr=tranwrd(outstr,'0A'x,' '); outstr=tranwrd(outstr,'0D'x,' '); outstr=tranwrd(outstr,'$','$'); %if &minify=YES %then %do; outstr=cats(outstr); if outstr ne ''; if not (outstr=:'/*' and subpad(left(reverse(outstr)),1,2)='/*'); %end; outstr=trim(outstr); put outstr ' '; run; %end; data _null_; file &frefin mod; put "'>SAS268435456 "; run; proc metadata in= &frefin out=&frefout; run; %if &mdebug=1 %then %do; /* write the response to the log for debugging */ data _null_; infile &frefout lrecl=32767; input; put _infile_; run; %end; %else %do; filename &frefin clear; filename &frefout clear; %end; %mend mm_updatestpsourcecode; %macro mm_getrepos( outds=work.mm_getrepos )/*/STORE SOURCE*/; * use a temporary fileref to hold the response; filename response temp; /* get list of libraries */ proc metadata in= "1" out=response; run; /* write the response to the log for debugging */ /* data _null_; infile response lrecl=1048576; input; put _infile_; run; */ /* create an XML map to read the response */ filename sxlemap temp; data _null_; file sxlemap; put ''; put "/GetRepositories/Repositories/Repository"; put ""; put ''; put "/GetRepositories/Repositories/Repository/@Id"; put ""; put "characterstring200"; put ''; put ''; put "/GetRepositories/Repositories/Repository/@Name"; put ""; put "characterstring200"; put ''; put ''; put "/GetRepositories/Repositories/Repository/@Desc"; put ""; put "characterstring200"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@DefaultNS"; put "characterstring200"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@RepositoryType"; put "characterstring20"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@RepositoryFormat"; put "characterstring10"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@Access"; put "characterstring16"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@CurrentAccess"; put "characterstring16"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@PauseState"; put "characterstring16"; put ''; put ''; put "/GetRepositories/Repositories/Repository/@Path"; put ""; put "characterstring256"; put ''; put ''; put "/GetRepositories/Repositories/Repository/@Engine"; put ""; put "characterstring8"; put ''; put ''; put "/GetRepositories/Repositories/Repository/@Options"; put ""; put "characterstring32"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@MetadataCreated"; put "characterstring24"; put ''; put ''; put ""; put "/GetRepositories/Repositories/Repository/@MetadataUpdated"; put "characterstring24"; put ''; put '
'; run; libname _XML_ xml xmlfileref=response xmlmap=sxlemap; proc sort data= _XML_.SASRepos out=&outds; by name; run; /* clear references */ filename sxlemap clear; filename response clear; libname _XML_ clear; %mend mm_getrepos; %macro mm_getservercontexts( outds=work.mm_getrepos )/*/STORE SOURCE*/; %local repo repocnt x; %let repo=%sysfunc(getoption(metarepository)); /* first get list of available repos */ %mm_getrepos(outds=work.repos) %let repocnt=0; data _null_; set repos; where repositorytype in('CUSTOM','FOUNDATION'); keep id name ; call symputx(cats('repo',_n_),name,'l'); call symputx('repocnt',_n_,'l'); run; filename __mc1 temp; filename __mc2 temp; data &outds; length serveruri servername $200; call missing (of _all_); stop; run; %do x=1 %to &repocnt; options metarepository=&&repo&x; proc metadata in= "$METAREPOSITORY ServerContextSAS 0" out=__mc1; run; /* data _null_; infile __mc1 lrecl=1048576; input; put _infile_; run; */ data _null_; file __mc2; put ''; put "/GetMetadataObjects/Objects/ServerContext"; put ""; put ''; put "/GetMetadataObjects/Objects/ServerContext/@Id"; put ""; put "characterstring200"; put ''; put ''; put "/GetMetadataObjects/Objects/ServerContext/@Name"; put ""; put "characterstring200"; put ''; put '
'; run; libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2; proc append base=&outds data=__mc3.SASContexts;run; libname __mc3 clear; %end; options metarepository=&repo; filename __mc1 clear; filename __mc2 clear; %mend mm_getservercontexts; %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('"',tranwrd(symget('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('"',tranwrd(symget('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_isblank(param )/*/STORE SOURCE*/; %sysevalf(%superq(param)=,boolean) %mend mf_isblank; %macro mp_dropmembers( list /* space separated list of datasets / views */ ,libref=WORK /* can only drop from a single library at a time */ ,iftrue=%str(1=1) )/*/STORE SOURCE*/; %if not(%eval(%unquote(&iftrue))) %then %return; %if %mf_isblank(&list) %then %do; %put NOTE: nothing to drop!; %return; %end; proc datasets lib=&libref nolist; delete &list; delete &list /mtype=view; run; %mend mp_dropmembers; %macro mm_createstp( stpname=Macro People STP ,stpdesc=This stp was created automatically by the mm_createstp macro ,filename=mm_createstp.sas ,directory=SASEnvironment/SASCode ,tree=/User Folders/sasdemo ,package=false ,streaming=true ,outds=work.mm_createstp ,mDebug=0 ,server=SASApp ,stptype=1 ,minify=NO ,frefin=mm_in ,frefout=mm_out )/*/STORE SOURCE*/; %local mD; %if &mDebug=1 %then %let mD=; %else %let mD=%str(*); %&mD.put Executing mm_CreateSTP.sas; %&mD.put _local_; %mp_abort( iftrue=(%mf_verifymacvars(stpname filename directory tree)=0) ,mac=&sysmacroname ,msg=%str(Empty inputs: stpname filename directory tree) ) %mp_dropmembers(%scan(&outds,2,.)) /** * check tree exists */ data _null_; length type uri $256; rc=metadata_pathobj("","&tree","Folder",type,uri); call symputx('foldertype',type,'l'); call symputx('treeuri',uri,'l'); run; %if &foldertype ne Tree %then %do; %put %str(WARN)ING: Tree &tree does not exist!; %return; %end; /** * Check STP does not exist already */ %local cmtype; data _null_; length type uri $256; rc=metadata_pathobj("","&tree/&stpname",'StoredProcess',type,uri); call symputx('cmtype',type,'l'); call symputx('stpuri',uri,'l'); run; %if &cmtype = ClassifierMap %then %do; %put %str(WARN)ING: Stored Process &stpname already exists in &tree!; %return; %end; /** * Check that the physical file exists */ %if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do; %put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!; %return; %end; %if &stptype=1 %then %do; /* type 1 STP - where code is stored on filesystem */ %if %sysevalf(&sysver lt 9.2) %then %do; %put %str(WARN)ING: Version 9.2 or later required; %return; %end; /* check directory object (where 9.2 source code reference is stored) */ data _null_; length id $20 dirtype $256; rc=metadata_resolve("&directory",dirtype,id); call symputx('checkdirtype',dirtype,'l'); run; %if &checkdirtype ne Directory %then %do; %mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug) %if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do; %put %str(WARN)ING: The directory object does not exist for &directory; %return; %end; %end; %else %do; data &outds; directoryuri="&directory"; run; %end; data &outds (keep=stpuri prompturi fileuri texturi); length stpuri prompturi fileuri texturi serveruri $256 ; if _n_=1 then call missing (of _all_); set &outds; /* final checks on uris */ length id $20 type $256; __rc=metadata_resolve("&treeuri",type,id); if type ne 'Tree' then do; putlog "%str(WARN)ING: Invalid tree URI: &treeuri"; stopme=1; end; __rc=metadata_resolve(directoryuri,type,id); if type ne 'Directory' then do; putlog "%str(WARN)ING: Invalid directory URI: " directoryuri; stopme=1; end; /* get server info */ __rc=metadata_resolve("&server",type,serveruri); if type ne 'LogicalServer' then do; __rc=metadata_getnobj("omsobj:LogicalServer?@Name='&server'",1,serveruri); if serveruri='' then do; putlog "%str(WARN)ING: Invalid server: &server"; stopme=1; end; end; if stopme=1 then do; putlog (_all_)(=); stop; end; /* create empty prompt */ rc1=METADATA_NEWOBJ('PromptGroup',prompturi,'Parameters'); rc2=METADATA_SETATTR(prompturi, 'UsageVersion', '1000000'); rc3=METADATA_SETATTR(prompturi, 'GroupType','2'); rc4=METADATA_SETATTR(prompturi, 'Name','Parameters'); rc5=METADATA_SETATTR(prompturi, 'PublicType','Embedded:PromptGroup'); GroupInfo= ""; rc6 = METADATA_SETATTR(prompturi, 'GroupInfo',groupinfo); if sum(of rc1-rc6) ne 0 then do; putlog "%str(WARN)ING: Issue creating prompt."; if prompturi ne . then do; putlog ' Removing orphan: ' prompturi; rc = METADATA_DELOBJ(prompturi); put rc=; end; stop; end; /* create a file uri */ rc7=METADATA_NEWOBJ('File',fileuri,'SP Source File'); rc8=METADATA_SETATTR(fileuri, 'FileName',"&filename"); rc9=METADATA_SETATTR(fileuri, 'IsARelativeName','1'); rc10=METADATA_SETASSN(fileuri, 'Directories','MODIFY',directoryuri); if sum(of rc7-rc10) ne 0 then do; putlog "%str(WARN)ING: Issue creating file."; if fileuri ne . then do; putlog ' Removing orphans:' prompturi fileuri; rc = METADATA_DELOBJ(prompturi); rc = METADATA_DELOBJ(fileuri); put (_all_)(=); end; stop; end; /* create a TextStore object */ rc11= METADATA_NEWOBJ('TextStore',texturi,'Stored Process'); rc12= METADATA_SETATTR(texturi, 'TextRole','StoredProcessConfiguration'); rc13= METADATA_SETATTR(texturi, 'TextType','XML'); storedtext='' !!"" !!""; rc14= METADATA_SETATTR(texturi, 'StoredText',storedtext); if sum(of rc11-rc14) ne 0 then do; putlog "%str(WARN)ING: Issue creating TextStore."; if texturi ne . then do; putlog ' Removing orphans: ' prompturi fileuri texturi; rc = METADATA_DELOBJ(prompturi); rc = METADATA_DELOBJ(fileuri); rc = METADATA_DELOBJ(texturi); put (_all_)(=); end; stop; end; /* create meta obj */ rc15= METADATA_NEWOBJ('ClassifierMap',stpuri,"&stpname"); rc16= METADATA_SETASSN(stpuri, 'Trees','MODIFY',treeuri); rc17= METADATA_SETASSN(stpuri, 'ComputeLocations','MODIFY',serveruri); rc18= METADATA_SETASSN(stpuri, 'SourceCode','MODIFY',fileuri); rc19= METADATA_SETASSN(stpuri, 'Prompts','MODIFY',prompturi); rc20= METADATA_SETASSN(stpuri, 'Notes','MODIFY',texturi); rc21= METADATA_SETATTR(stpuri, 'PublicType', 'StoredProcess'); rc22= METADATA_SETATTR(stpuri, 'TransformRole', 'StoredProcess'); rc23= METADATA_SETATTR(stpuri, 'UsageVersion', '1000000'); rc24= METADATA_SETATTR(stpuri, 'Desc', "&stpdesc"); /* tidy up if err */ if sum(of rc15-rc24) ne 0 then do; putlog "%str(WARN)ING: Issue creating STP."; if stpuri ne . then do; putlog ' Removing orphans: ' prompturi fileuri texturi stpuri; rc = METADATA_DELOBJ(prompturi); rc = METADATA_DELOBJ(fileuri); rc = METADATA_DELOBJ(texturi); rc = METADATA_DELOBJ(stpuri); put (_all_)(=); end; end; else do; fullpath=cats('_program=',treepath,"/&stpname"); putlog "NOTE: Stored Process Created!"; putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath; putlog "NOTE- "; putlog "NOTE-"; end; output; stop; run; %end; %else %if &stptype=2 %then %do; /* type 2 stp - code is stored in metadata */ %if %sysevalf(&sysver lt 9.3) %then %do; %put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs; %return; %end; /* check we have the correct ServerContext */ %mm_getservercontexts(outds=contexts) %local serveruri; %let serveruri=NOTFOUND; data _null_; set contexts; where upcase(servername)="%upcase(&server)"; call symputx('serveruri',serveruri); run; %if &serveruri=NOTFOUND %then %do; %put %str(WARN)ING: ServerContext *&server* not found!; %return; %end; /** * First, create a Hello World type 2 stored process */ filename &frefin temp; data _null_; file &frefin; treeuri=quote(symget('treeuri')); serveruri=quote(symget('serveruri')); stpdesc=quote(symget('stpdesc')); stpname=quote(symget('stpname')); put "$METAREPOSITORY "/ ''/ " "/ " "/ " "/ " "/ ' '/ ' ' / " "/ " "/ ' '/ " "/ ""/ "SAS"/ "268435456"; run; filename &frefout temp; proc metadata in= &frefin out=&frefout ; run; %if &mdebug=1 %then %do; /* write the response to the log for debugging */ data _null_; infile &frefout lrecl=1048576; input; put _infile_; run; %end; /** * Next, add the source code */ %mm_updatestpsourcecode(stp=&tree/&stpname ,stpcode="&directory/&filename" ,mdebug=&mdebug ,minify=&minify) %end; %else %do; %put %str(WARN)ING: STPTYPE=*&stptype* not recognised!; %end; %mend mm_createstp; %macro mf_getuser( )/*/STORE SOURCE*/; %local user; %if %symexist(_sasjs_username) %then %let user=&_sasjs_username; %else %if %symexist(SYS_COMPUTE_SESSION_OWNER) %then %do; %let user=&SYS_COMPUTE_SESSION_OWNER; %end; %else %if %symexist(_metaperson) %then %do; %if %length(&_metaperson)=0 %then %let user=&sysuserid; /* sometimes SAS will add @domain extension - remove for consistency */ /* but be sure to quote in case of usernames with commas */ %else %let user=%unquote(%scan(%quote(&_metaperson),1,@)); %end; %else %let user=&sysuserid; %quote(&user) %mend mf_getuser; %macro mm_createfolder(path=,mDebug=0); %put &sysmacroname: execution started for &path; %local dbg errorcheck; %if &mDebug=0 %then %let dbg=*; %local parentFolderObjId child errorcheck paths; %let paths=0; %let errorcheck=1; %if &syscc ge 4 %then %do; %put SYSCC=&syscc - this macro requires a clean session; %return; %end; data _null_; length objId parentId objType parent child $200 folderPath $1000; call missing (of _all_); folderPath = "%trim(&path)"; * remove any trailing slash ; if ( substr(folderPath,length(folderPath),1) = '/' ) then folderPath=substr(folderPath,1,length(folderPath)-1); * name must not be blank; if ( folderPath = '' ) then do; put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank"; end; * must have a starting slash ; if ( substr(folderPath,1,1) ne '/' ) then do; put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash"; stop; end; * check if folder already exists ; rc=metadata_pathobj('',cats(folderPath,"(Folder)"),"",objType,objId); if rc ge 1 then do; put "NOTE: Folder " folderPath " already exists!"; stop; end; * do not create a root (one level) folder ; if countc(folderPath,'/')=1 then do; put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder"; stop; end; * check that root folder exists ; root=cats('/',scan(folderpath,1,'/'),"(Folder)"); if metadata_pathobj('',root,"",objType,parentId)<1 then do; put "%str(ERR)OR: " root " does not exist!"; stop; end; * check that parent folder exists ; child=scan(folderPath,-1,'/'); parent=substr(folderpath,1,length(folderpath)-length(child)-1); rc=metadata_pathobj('',cats(parent,"(Folder)"),"",objType,parentId); if rc<1 then do; putlog 'The following folders will be created:'; /* folder does not exist - so start from top and work down */ length newpath $1000; paths=0; do x=2 to countw(folderpath,'/'); newpath=''; do i=1 to x; newpath=cats(newpath,'/',scan(folderpath,i,'/')); end; rc=metadata_pathobj('',cats(newpath,"(Folder)"),"",objType,parentId); if rc<1 then do; paths+1; call symputx(cats('path',paths),newpath); putlog newpath; end; call symputx('paths',paths); end; end; else putlog "parent " parent " exists"; call symputx('parentFolderObjId',parentId,'l'); call symputx('child',child,'l'); call symputx('errorcheck',0,'l'); &dbg put (_all_)(=); run; %if &errorcheck=1 or &syscc ge 4 %then %return; %if &paths>0 %then %do x=1 %to &paths; %put executing recursive call for &&path&x; %mm_createfolder(path=&&path&x) %end; %else %do; filename __newdir temp; options noquotelenmax; %local inmeta; %put creating: &path; %let inmeta=$METAREPOSITORY SAS268435456 ; proc metadata in="&inmeta" out=__newdir verbose; run ; /* check it was successful */ data _null_; length objId parentId objType parent child $200 ; call missing (of _all_); rc=metadata_pathobj('',cats("&path","(Folder)"),"",objType,objId); if rc ge 1 then do; putlog "SUCCCESS! &path created."; end; else do; putlog "%str(ERR)OR: unsuccessful attempt to create &path"; call symputx('syscc',8); end; run; /* write the response to the log for debugging */ %if &mDebug ne 0 %then %do; data _null_; infile __newdir lrecl=32767; input; put _infile_; run; %end; filename __newdir clear; %end; %put &sysmacroname: execution finished for &path; %mend mm_createfolder; %macro mm_deletestp( target= )/*/STORE SOURCE*/; /** * Check STP does exist */ %local cmtype; data _null_; length type uri $256; rc=metadata_pathobj("","&target",'StoredProcess',type,uri); call symputx('cmtype',type,'l'); call symputx('stpuri',uri,'l'); run; %if &cmtype ne ClassifierMap %then %do; %put NOTE: No Stored Process found at ⌖ %return; %end; filename __in temp lrecl=10000; filename __out temp lrecl=10000; data _null_ ; file __in ; put ""; put "SAS268436480"; put ""; run ; proc metadata in=__in out=__out verbose;run; /* list the result */ data _null_;infile __out; input; list; run; filename __in clear; filename __out clear; /** * Check deletion */ %local isgone; data _null_; length type uri $256; call missing (of _all_); rc=metadata_pathobj("","&target",'Note',type,uri); call symputx('isgone',type,'l'); run; %if &isgone = ClassifierMap %then %do; %put %str(ERR)OR: STP not deleted from ⌖ %let syscc=4; %return; %end; %mend mm_deletestp; /* system macro dependencies for build process end*/ /* system macros for build process */ %macro mm_createwebservice(path= ,name=initService ,precode= ,code=ft15f001 ,desc=This stp was created automagically by the mm_createwebservice macro ,mDebug=0 ,server=SASApp ,replace=YES ,adapter=sasjs )/*/STORE SOURCE*/; %if &syscc ge 4 %then %do; %put &=syscc - &sysmacroname will not execute in this state; %return; %end; %local mD; %if &mDebug=1 %then %let mD=; %else %let mD=%str(*); %&mD.put Executing mm_createwebservice.sas; %&mD.put _local_; * remove any trailing slash ; %if "%substr(&path,%length(&path),1)" = "/" %then %let path=%substr(&path,1,%length(&path)-1); /** * Add webout macro * These put statements are auto generated - to change the macro, change the * source (mm_webout) and run `build.py` */ filename sasjs temp; data _null_; file sasjs lrecl=3000 ; put "/* Created on %sysfunc(datetime(),datetime19.) by %mf_getuser() */"; /* 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 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 ' '; 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 ' '; put ' '; 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 ' '; put '%else %if &action=OPEN %then %do; '; put ' /* fix encoding */ '; put ' OPTIONS NOBOMFILE; '; put ' '; 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 ' '; 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 ' '; put '%end; '; put ' '; 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,maxobs=10 '; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 ' '; put '%end; '; put ' '; put '%mend mm_webout; '; /* WEBOUT END */ put '%macro webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO);'; put ' %mm_webout(&action,ds=&ds,dslabel=&dslabel,fmt=&fmt,missing=&missing'; put ' ,showmeta=&showmeta'; put ' )'; put '%mend;'; run; /* add precode and code */ %local work tmpfile; %let work=%sysfunc(pathname(work)); %let tmpfile=__mm_createwebservice.temp; %local x fref freflist mod; %let freflist= &adapter &precode &code ; %do x=1 %to %sysfunc(countw(&freflist)); %if &x>1 %then %let mod=mod; %let fref=%scan(&freflist,&x); %&mD.put &sysmacroname: adding &fref; data _null_; file "&work/&tmpfile" lrecl=3000 &mod; infile &fref; input; put _infile_; run; %end; /* create the metadata folder if not already there */ %mm_createfolder(path=&path) %if &syscc ge 4 %then %return; %if %upcase(&replace)=YES %then %do; %mm_deletestp(target=&path/&name) %end; /* create the web service */ %mm_createstp(stpname=&name ,filename=&tmpfile ,directory=&work ,tree=&path ,stpdesc=&desc ,mDebug=&mdebug ,server=&server ,stptype=2) /* find the web app url */ %local url; %let url=localhost/SASStoredProcess; data _null_; length url $128; rc=METADATA_GETURI("Stored Process Web App",url); if rc=0 then call symputx('url',url,'l'); run; %put &sysmacroname: STP &name successfully created in &path; %put Check it out here:; %put ;%put ;%put ; %put &url?_PROGRAM=&path/&name; %put ;%put ;%put ; %mend mm_createwebservice; /* system macros for build process end */ * BuildInit start; /** @file @brief Initialise build program for SAS 9 DC

SAS Macros

**/ options nomprint; %global _metaperson _url dcpath; /* set webout if not running in STP mode */ data _null_; if "&sysprocessmode" ne "SAS Stored Process Server" then do; call execute('filename _webout temp;'); end; run; * BuildInit end; %let path=services; %let service=clickme; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put '''';'; put 'put '' '';'; put 'put '' Data Controller for SAS®'';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '' '';'; put 'put '''';'; put 'run;'; put '%sasjsout(HTML)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let path=services/admin; %let service=configurator; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; put '%mend dc_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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief provides the web service to create the control tables'; put '@details'; put '

SAS Macros

'; put '@li dc_getusergroups.sas'; put '@li mf_getuser.sas'; put '@li mf_getapploc.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '%let root=%mf_getapploc();'; put '/* create web page */'; put 'data _null_;'; put 'file _webout;'; put 'infile datalines ;'; put 'input;'; put 'put _infile_;'; put 'datalines4;'; put ''; put ''; put ''; put ''; put 'Data Controller'; put ''; put ''; put ''; put ''; put ''; put '
'; put '
'; put ''; put 'Data Controller'; put '
'; put '
'; put '
'; put '
'; put '
'; put '
'; put ''; put '
'; put '
'; put 'Terms and Conditions'; put '
'; put '
'; put '
'; put '

Due to the way the Demo version is compiled (in an easy-to-deploy but'; put 'inefficient-to-run format), it should not be deployed to production servers.'; put 'Before proceeding with configuration, please confirm that you have read,'; put 'understood, and agreed to the'; put 'Data Controller for SAS© Evaluation Agreement.'; put '

'; put '
'; put '
'; put '>'; put ''; put '
'; put '
'; put '
'; put ''; put ''; put '
'; put '
'; put '
'; put ''; put ''; put ';;;;'; put 'run;'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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_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 '%if &syssite=70221618 %then %do;'; 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="MIIGtwIBADANBgkqhkiG9w0BAQEFAASCBqEwggadAgEAAoIBcQDgvQiMeOR3AMX4I1hypexG7pEQp7anG7nhvUeiLvcW3O5rHqQ2CNYAgHa41zjE5b6o1M6"'; put '!!"pgTUfg7/F37XwqFNaaRalvZ+hM7jv5LAn/dsGFu/TkInvnu4O6ti4JOgE1/KPD7ikcOLzSa7aph+yel5JCbMbyn1MXLHlKG88uIQq7K8xuJife3tHAdC3m1I4YHOgkxh"'; put '!!"6OhZxv7janJwM6h/VORoVEYXQCtgaItpFjyn1b5USlk48YB8iqSPEO/KZdYeO6jiOIpA17Ryk7g989RR70qVH2JZKjvyl/FCGN2Bz8eR6+ZSQ5cRcZRE3CujFaM5sO6C"'; put '!!"qVfJ9q1pqriTkrz7XedHlNKwl6BgJlk0GgsqYpp82qhVj8jrXjXb1iLITGpHokYQ74b0Qsu7GkdPwAA+64SqzWvE23zc1+iKjMWZIjQMIy4Pj55Z1ZI9Gv1qfatrdOcq"'; put '!!"/gXU1hRTI9IiNTlO9UpI4hs7ea9YlEAfIUt25GwIDAQABAoIBcGMoFGMCHe9BmJdEZQxkl8yuCrQ6AzVU3t0yKa5toVhljw4VPWeX22/qPjeMwf/hzA7qoeoY14r5kr3"'; put '!!"n1/sAEZLE5hingwxZaUHy+SQT9bSInzUNw0ZFrYxIYulQY0xryRoE2jc3lXK5MlxHSpnxMrNwA6YB3+m2xkiw3+9/C9Vyi1PZOgG3tiscqm2wKoU0TR/udrDK+0chy5o"'; put '!!"s2g86p2Po51CfZBZoCnPxp7NkGKOxISlLxuYNlP5etKLeIshMd9Bq0Atab+J6dhznCniADAReYFssER4WHBwdmxVsRE9U0bH4uhOCXDUwhhOL5X82gW9TA9TPZk4bdoh"'; put '!!"dgthMoKccYcth/hxPglJTngguoVGsu2XDuvmPPXtl/CRfFrtrWJWUHm408i+jt7+j7DfwtiCZsjKhDDlWJbeAYT+Ex3MtN5GZK8z6V+uUNQi7spDaNBIPTWXmiPwhIF/"'; put '!!"fCOuY4FiUemB+RFJOnWofJqyMR9yRAoG5APeffJHX5N5XPJTXwwYoD7ZUHh8evgjQzrXDE/k8J0Z1K1G5zIzheZmwCWSt2KlcjNd94tu7CE0wljqxrE8P7VPQk3bcWZF"'; put '!!"xC2BAuw4WYgnx2MNLC5PEKmbbNRlT10MnhzLjnYM/V7DMV4nu3XIHlybLDZDZm84hVbV58xDqxheLRVnK7r+Cip4KywuT5GsQ6Da8MKC0z7I2LgOAozvRA/hp1ILgv4q"'; put '!!"mPhpNXXRGAcSPwT8yy+bd9DECgbkA6FdbcwoUUMkgqjdKrNNWgrRmTmUUMbFDnwxpI7hEAN9kKeBju2G7/A8BK8IPZeiDDsiqWZ8UKKN4/rAXLoZnjDAygLdFGqcLPMq"'; put '!!"Dt8WOsp2tbEGyAujpKP+f9K158r70BIreNJ46iuoS+S3O2CziUJV1e2LPEl9sb7neAyDpxp8+LTuuLSuA3+htIGMbvZ8bgmC26a4AFt7bkHB/NY0mstx7D3pM9nTxIid"'; put '!!"SNOjWHIAqPLia0FArCwKBuQDflMt/S/ZEo3P52M8osedt84m3A6UGhLL//wH72kqEHatdgWumELghAoeYtjeYxA4PTIUXbUrTl3ktydsREApz0TI08kSVRALHh+rdj2w"'; put '!!"6Gnpj61CqvUaj1G2fTspgwkIautYv+XOOGRM5Ycnk+eGKj3DSRwmdFxAyacgEkFcITyHxL4Bevtm2VXx8Ga721S82rLkjgd6+xJjLZMz+Z300QSo2egO4ht4wFYa6Q7O"'; put '!!"47SvJim39KI8hAoG5AKqFKr30oNJlus6ShADxnqWRByD0OGz8H5gEgMnRfD9ztMyzPh8RbOlijcZyx+BQVJeuGLBr+1yUFcI+tNTVmfueiAJF/7a+8JVuQFvI56EZ7mT"'; put '!!"sllxiWnVXnyrxgvXwxaDr1oehtW+sub4dq5im4HaqKq4i570hQbGCJXoAVvMKfpSuH3hRXGV47VZ+xqZVttfqaXR52uDuMRECL6q67LMK9Fp4tTGQxET/vOrOFA6Y1eb"'; put '!!"4yc6nd98CgbkAtZOgSsazcIWxTXxqgMFXa+G6YXDeqm6nqOiaR+rH4H1i1Vzl08966vfOM0kRWPB1OrvQKGxg8uYNfSo8ZqprPrUdUnA1BesJjQV0kj3KWW7i/Ir4R90"'; put '!!"8NKEjyMn/+Vbi0i2ac1nSEm+2SydOonxSZixNzW2VevUuT5d4/i3UZo5fNXeCiBEzzJNw6MjYBxmMgcGWJvxMckpsGHGdQAj+hPkub8mHOZfaSmHfnxBvAFUdhLOasRj"'; put '!!"deQ=="'; put ',var_active=1;'; put 'insert into &lib..mpe_config set'; put 'tx_from=0'; put ',tx_to=''31DEC9999:23:59:59''dt'; put ',var_name="DC_LICENCE_KEY"'; put ',var_scope="DC"'; put ',var_value="PEvKnV0EcmlJVrrx8JpXOc+/va+ksMzvkJBp05iVRtyl6xgFxhMAi+w4/7mHi4P2STbwV61mG2BGpBlO6qteDfZTmoROjRekcLw8wWxBMzghFwGvO93"'; put '!!"taapBmpyXm3cv26iAc9Yq8yiXhOX7ZO7+7PXIoH9rqCT5ILrIY0vqVYnwx+AyjUI7FMsfAwKApCaTVXOca5My3att5yCg2fz+MQhCZbEK1tbubk9kAlaJJtlYzSj"'; put '!!"J8ADuMR74rpGofk8YGOTegOjUGI+ENhkHW+ooh9fmNTkIilOBuNQ0irBvd49weejCDRtnX9/Twt8wv6r6QyYT31F5yuI2/G0NoHrjeWHjl5riD/q2NnC+aTXWVnV"'; put '!!"QP+0+e1H0ohUZd9bAw0BE7bFWpcriYovIsu6VlhzpdqFRnUZ0ULw9CesQa6X2qIazT9V9jxfM1Of53kwIxKrb1LTEMcvxKtTh1jEW4nfvwBs4UJ1W7+5u0j1FfY3"'; put '!!"FUtU="'; put ',var_active=1;'; put '%end;'; put '%else %if &syssite=70253615 %then %do;'; 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=''4bfbZtsFbfGuqbZhJdAD8p8EbNmuxiaLaxMdTZPTJreRcfd0CYarXQoxCr3BMt6aWJjwFMvwG/7IXB6'''; put '!!''nxT9X0HH4dvgykgzKmSCY5q2lwENoNrUhk'''; put '!!''sF/iSvFuwKVuccW6NFKNahQhRBpfFBps6YrUzHG62yPrCzYDM0SFtS3EdeE6gijnhv4SGt+s77xutjitgdruRBg'''; put '!!''Zyt3bzCWs0yNgt/KqLClVOktgJ3/FV8Im0v'''; put '!!''nAhkUq0CwgQ698LO150RLF6j40E9md2WpNKuJeXKSl9+ejR+aln+COvS5iUVBX8UBVv5eviOOzu8hBI80HmMt'''; put ',var_active=1'; put ',var_desc=''Licence Key Placeholder for Data Controller Full Version'';'; 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=''MIIEcAIBADANBgkqhkiG9w0BAQEFAASCBFowggRWAgEAAoHxAOlGX2CSHJjb4isZWpcXWwjrVcQrgs'''; put '!!''I6rAb7vN3c0TILF5+/Jmq2FcO02NUtYP7ai2puTv9PMvMKz3bxocvgIHiajAu1ZyK/r6IIcdgHbH'''; put '!!''xeTXv82JhTT4PlP+4NXCK1oKgthSyt1jhz0wzD9YeGEkB5Mn4IRH+6WWzrVJIG+dm4wnUpi9ia3Px9ktPoNLFA'''; put '!!''GBZopcTf7NM6O1WDQ5oaZG6r7y9G8jZWrgzTWyEiFpGytg3MCGJv7oW7YDk+2i/DKIuSZz6gc/BSSo'''; put '!!''ZcQZDKToAU+gFQZqnimWGhtv6szjNrfjCJ23b++wlvQ1C6bJE47wIDAQABAoHwciGwq36BSFaYfu6+MFtIe'''; put '!!''oItqbeCF8Z+AUKsYr5Vic78hXeP87jXyDNUvWQg50AE4xNKSka1Dk11OOQ6/ZVQPcGbkGT2K32ukC/ih0'''; put '!!''gGj4jSDz4juM9WAZmp4C4gLIlBq9btp/D7dQ5SLZY4rFBv4KSLjDc+UGHazLmFQgikMC+CBukDrZ7IvpjreII'''; put '!!''zVil18IyGnxuD22pFyY4pLG9nvrIsLhKAYaOQnRS29n34o6ZQ/tqCWJo3FaCCsXAa7zX9OEHh4lZNj5'''; put '!!''XdzN/LexaAmki9ObfXtX4W2wcMrFPX0Rt0QDznDF/a4uGS9WpHPKCxAnkA9l9P+ZJwM0hin8+B5cOuyMga5N'''; put '!!''DjMXI1vt2cpGzWUmtnFJcCNDX0nAHddWhmTXoKlCCyo1RzPHiWdO8LRhlnojptxcmhW1LfJLcn278NxD'''; put '!!''h1dFxQB0j/o7w4Js2ih3HjwD0GpVLXPPr0O1GORodb0OuZ3hXCTDFRAnkA8mQI4OLTW+VI9c1OSi5JNmXrl+jRPC'''; put '!!''BTPgjomGMAKCEvfLHfDjNQ/gN8asNo2uscgqWvGLEM83jxkpFhJ/lbcg02utPhVe4jOo+XSY3UEE'''; put '!!''wq8oGpx1k9QgbrCfRivoDZpRk+SrqQmO4PHKnHTAdLVgDQnvbISjY/AnkAoZXblx0jN49HF/d6A572+Lq9'''; put '!!''YMtb5uc4NsmUXgb//ihxAAEWsfWdS+CxRbrGNhRP8d0MLLFLryKL03+gjkZFQRI/QtS+Xm4Y6jSyEJ7awZ'''; put '!!''Ih/sI4vr5y5Amjble6PElHDaM4w590iYsyOeGAheNrJbgQP6dXuq8xAnkAi9duz9/NNO1ZZIZoLp/5mSq/'''; put '!!''+0pUvK2hmN6m4pPrWTucHAK6v4SXq5TzSN0oN3UBY9aW6FXtNOKH7Jl3Rgq02V4KP0tSa7MSHA0PqV3sBO'''; put '!!''MMvBBWlS5FCzzWiU23UlUgPAIOUCrGlZRyn4TL+G8U5a9erPePolEdAnkAltgzR4wcAzwf0HGc2sOXDrdk'''; put '!!''drjpEGPQONR72IGcC9rxLPTNFFW3xmLVy19oOikVluGTR7Pn5CmROxfXx5zT7fZHQXOM4uxA5soGs9jkQo'''; put '!!''lVw/KnvUZLLiiDKG4X/FTCyEPGnZPs131ZkGhhr6EirtwkHyG2zbly'''; put ',var_active=1'; put ',var_desc=''Activation Key Placeholder for Data Controller Full Version'';'; put '%end;'; put '%else %do;'; 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 '%end;'; 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_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_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=''Shows which metadata groups can edit which 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_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 '/* 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_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_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=''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 '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 '/**'; 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 '%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_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 date ¬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 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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 mm_createdocument('; put 'tree=/User Folders/sasdemo'; put ',name=myNote'; put ',desc=Created by &sysmacroname'; put ',textrole='; put ',frefin=mm_in'; put ',frefout=mm_out'; put ',mDebug=1'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%mp_abort(iftrue= (%mf_verifymacvars(tree name)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Empty inputs: tree name)'; put ')'; put '/**'; put '* check tree exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; put 'call symputx(''type'',type,''l'');'; put 'call symputx(''treeuri'',uri,''l'');'; put 'run;'; put '%mp_abort('; put 'iftrue= (&type ne Tree)'; put ',mac=mm_createdocument.sas'; put ',msg=Tree &tree does not exist!'; put ')'; put '/**'; put '* Check object does not exist already'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree/&name","Note",type,uri);'; put 'call symputx(''type'',type,''l'');'; put 'call symputx(''docuri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &type = Document %then %do;'; put '%put Document &name already exists in &tree!;'; put '%return;'; put '%end;'; put '/**'; put '* Now we can create the document'; put '*/'; put 'filename &frefin temp;'; put '/* write header XML */'; put 'data _null_;'; put 'file &frefin;'; put 'name=quote("&name");'; put 'desc=quote("&desc");'; put 'textrole=quote("&textrole");'; put 'treeuri=quote("&treeuri");'; put 'put "$METAREPOSITORY"/'; put '''"/'; put '" "/'; put ''' '' /'; put '''''/'; put '/*URI="Document for public note" */'; put '""/'; put '"SAS"/'; put '"268435456";'; put 'run;'; put 'filename &frefout temp;'; put 'proc metadata in= &frefin out=&frefout verbose;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%mend mm_createdocument;'; put '%macro mm_createfolder(path=,mDebug=0);'; put '%put &sysmacroname: execution started for &path;'; put '%local dbg errorcheck;'; put '%if &mDebug=0 %then %let dbg=*;'; put '%local parentFolderObjId child errorcheck paths;'; put '%let paths=0;'; put '%let errorcheck=1;'; put '%if &syscc ge 4 %then %do;'; put '%put SYSCC=&syscc - this macro requires a clean session;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'length objId parentId objType parent child $200'; put 'folderPath $1000;'; put 'call missing (of _all_);'; put 'folderPath = "%trim(&path)";'; put '* remove any trailing slash ;'; put 'if ( substr(folderPath,length(folderPath),1) = ''/'' ) then'; put 'folderPath=substr(folderPath,1,length(folderPath)-1);'; put '* name must not be blank;'; put 'if ( folderPath = '''' ) then do;'; put 'put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank";'; put 'end;'; put '* must have a starting slash ;'; put 'if ( substr(folderPath,1,1) ne ''/'' ) then do;'; put 'put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash";'; put 'stop;'; put 'end;'; put '* check if folder already exists ;'; put 'rc=metadata_pathobj('''',cats(folderPath,"(Folder)"),"",objType,objId);'; put 'if rc ge 1 then do;'; put 'put "NOTE: Folder " folderPath " already exists!";'; put 'stop;'; put 'end;'; put '* do not create a root (one level) folder ;'; put 'if countc(folderPath,''/'')=1 then do;'; put 'put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder";'; put 'stop;'; put 'end;'; put '* check that root folder exists ;'; put 'root=cats(''/'',scan(folderpath,1,''/''),"(Folder)");'; put 'if metadata_pathobj('''',root,"",objType,parentId)<1 then do;'; put 'put "%str(ERR)OR: " root " does not exist!";'; put 'stop;'; put 'end;'; put '* check that parent folder exists ;'; put 'child=scan(folderPath,-1,''/'');'; put 'parent=substr(folderpath,1,length(folderpath)-length(child)-1);'; put 'rc=metadata_pathobj('''',cats(parent,"(Folder)"),"",objType,parentId);'; put 'if rc<1 then do;'; put 'putlog ''The following folders will be created:'';'; put '/* folder does not exist - so start from top and work down */'; put 'length newpath $1000;'; put 'paths=0;'; put 'do x=2 to countw(folderpath,''/'');'; put 'newpath='''';'; put 'do i=1 to x;'; put 'newpath=cats(newpath,''/'',scan(folderpath,i,''/''));'; put 'end;'; put 'rc=metadata_pathobj('''',cats(newpath,"(Folder)"),"",objType,parentId);'; put 'if rc<1 then do;'; put 'paths+1;'; put 'call symputx(cats(''path'',paths),newpath);'; put 'putlog newpath;'; put 'end;'; put 'call symputx(''paths'',paths);'; put 'end;'; put 'end;'; put 'else putlog "parent " parent " exists";'; put 'call symputx(''parentFolderObjId'',parentId,''l'');'; put 'call symputx(''child'',child,''l'');'; put 'call symputx(''errorcheck'',0,''l'');'; put '&dbg put (_all_)(=);'; put 'run;'; put '%if &errorcheck=1 or &syscc ge 4 %then %return;'; put '%if &paths>0 %then %do x=1 %to &paths;'; put '%put executing recursive call for &&path&x;'; put '%mm_createfolder(path=&&path&x)'; put '%end;'; put '%else %do;'; put 'filename __newdir temp;'; put 'options noquotelenmax;'; put '%local inmeta;'; put '%put creating: &path;'; put '%let inmeta=$METAREPOSITORY'; put ''; put 'SAS268435456'; put ';'; put 'proc metadata in="&inmeta" out=__newdir verbose;'; put 'run ;'; put '/* check it was successful */'; put 'data _null_;'; put 'length objId parentId objType parent child $200 ;'; put 'call missing (of _all_);'; put 'rc=metadata_pathobj('''',cats("&path","(Folder)"),"",objType,objId);'; put 'if rc ge 1 then do;'; put 'putlog "SUCCCESS! &path created.";'; put 'end;'; put 'else do;'; put 'putlog "%str(ERR)OR: unsuccessful attempt to create &path";'; put 'call symputx(''syscc'',8);'; put 'end;'; put 'run;'; put '/* write the response to the log for debugging */'; put '%if &mDebug ne 0 %then %do;'; put 'data _null_;'; put 'infile __newdir lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'filename __newdir clear;'; put '%end;'; put '%put &sysmacroname: execution finished for &path;'; put '%mend mm_createfolder;'; put '%macro mm_createlibrary('; put 'libname=My New Library'; put ',libref=mynewlib'; put ',libdesc=Created automatically using the mm_createlibrary macro'; put ',engine=BASE'; put ',tree=/User Folders/sasdemo'; put ',servercontext=SASApp'; put ',directory=/tmp/somelib'; put ',IsPreassigned=0'; put ',mDebug=0'; put ',frefin=mm_in'; put ',frefout=mm_out'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%let libref=%upcase(&libref);'; put '/**'; put '* Check Library does not exist already with this libname'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:SASLibrary?@Name=''&libname''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''liburi'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype = SASLibrary %then %do;'; put '%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);'; put '%return;'; put '%end;'; put '/**'; put '* Check Library does not exist already with this libref'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:SASLibrary?@Libref=''&libref''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''liburi'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype = SASLibrary %then %do;'; put '%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;'; put '%return;'; put '%end;'; put '/**'; put '* Attempt to create tree'; put '*/'; put '%mm_createfolder(path=&tree)'; put '/**'; put '* check tree exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; put 'call symputx(''foldertype'',type,''l'');'; put 'call symputx(''treeuri'',uri,''l'');'; put 'run;'; put '%if &foldertype ne Tree %then %do;'; put '%put %str(WARN)ING: Tree &tree does not exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Create filerefs for proc metadata call'; put '*/'; put 'filename &frefin temp;'; put 'filename &frefout temp;'; put '%mp_abort(iftrue= ('; put '&engine=BASE & %mf_verifymacvars(libname libref engine servercontext tree)=0'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Empty inputs: libname libref engine servercontext tree)'; put ')'; put '%if &engine=BASE %then %do;'; put '/**'; put '* Check that the ServerContext exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:ServerContext?@Name=''&ServerContext''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''serveruri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype ne ServerContext %then %do;'; put '%put %str(ERR)OR: ServerContext (&ServerContext) does not exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Get prototype info'; put '*/'; put 'data _null_;'; put 'length type uri str $256;'; put 'str="omsobj:Prototype?@Name=''Library.SAS.Prototype.Name.xmlKey.txt''";'; put 'rc=metadata_resolve(str,type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''prototypeuri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype ne Prototype %then %do;'; put '%put %str(ERR)OR: Prototype Library.SAS.Prototype.Name.xmlKey.txt not found;'; put '%return;'; put '%end;'; put '/**'; put '* Check that Physical location exists'; put '*/'; put '%if %sysfunc(fileexist(&directory))=0 %then %do;'; put '%put %str(ERR)OR: Physical directory (&directory) does not appear to exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Check that Directory Object exists in metadata'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; put '!!" and @DirectoryName=''&directory''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''directoryuri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype ne Directory %then %do;'; put '%put NOTE: Directory object does not exist for (&directory) location;'; put '%put NOTE: It will now be created;'; put 'data _null_;'; put 'file &frefin;'; put 'directory=quote(symget(''directory''));'; put 'put "$METAREPOSITORY "/'; put '''''/'; put '"SAS"/'; put '"268435456";'; put 'run;'; put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose;;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input; put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: Checking to ensure directory (&directory) object was created;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; put '!!" and @DirectoryName=''&directory''",type,uri);'; put 'call symputx(''checktype2'',type,''l'');'; put 'call symputx(''directoryuri'',uri,''l'');'; put '%if &mdebug=1 %then putlog (_all_)(=);;'; put 'run;'; put '%if &checktype2 ne Directory %then %do;'; put '%put %str(ERR)OR: Directory (&directory) object was NOT created!;'; put '%return;'; put '%end;'; put '%else %put NOTE: Directory (&directoryuri) successfully created!;'; put '%end;'; put '/**'; put '* check SAS version'; put '*/'; put '%if %sysevalf(&sysver lt 9.3) %then %do;'; put '%put %str(WARN)ING: Version 9.3 or later required;'; put '%return;'; put '%end;'; put '/**'; put '* Prepare the XML and create the library'; put '*/'; put 'data _null_;'; put 'file &frefin;'; put 'treeuri=quote(symget(''treeuri''));'; put 'serveruri=quote(symget(''serveruri''));'; put 'directoryuri=quote(symget(''directoryuri''));'; put 'libname=quote(symget(''libname''));'; put 'libref=quote(symget(''libref''));'; put 'IsPreassigned=quote(symget(''IsPreassigned''));'; put 'prototypeuri=quote(symget(''prototypeuri''));'; put '/* escape description so it can be stored as XML */'; put 'libdesc=tranwrd(symget(''libdesc''),''&'',''&'');'; put 'libdesc=tranwrd(libdesc,''<'',''<'');'; put 'libdesc=tranwrd(libdesc,''>'',''>'');'; put 'libdesc=tranwrd(libdesc,"''",''''');'; put 'libdesc=tranwrd(libdesc,''"'',''"'');'; put 'libdesc=tranwrd(libdesc,''0A''x,'' '');'; put 'libdesc=tranwrd(libdesc,''0D''x,'' '');'; put 'libdesc=tranwrd(libdesc,''$'',''$'');'; put 'libdesc=quote(trim(libdesc));'; put 'put "$METAREPOSITORY "/'; put '''''/'; put ''' ''/'; put ''' "/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put '" "/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put '''SAS''/'; put '''268435456'';'; put 'run;'; put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose ;;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input;put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: Checking to ensure library (&libname) was created;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree/&libname","Library",type,uri);'; put 'call symputx(''libtype'',type,''l'');'; put 'call symputx(''liburi'',uri,''l'');'; put '%if &mdebug=1 %then putlog (_all_)(=);;'; put 'run;'; put '%if &libtype ne SASLibrary %then %do;'; put '%put %str(ERR)OR: Could not find (&libname) at (&tree)!!;'; put '%return;'; put '%end;'; put '%else %put NOTE: Library (&libname) successfully created in (&tree)!;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Other library engine types are not yet supported!!;'; put '%end;'; put '/**'; put '* Wrap up'; put '*/'; put '%if &mdebug ne 1 %then %do;'; put 'filename &frefin clear;'; put 'filename &frefout clear;'; put '%end;'; put '%mend mm_createlibrary;'; 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 mm_getDirectories('; put 'path='; put ',outds=work.mm_getDirectories'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getDirectories.sas;'; put '%&mD.put _local_;'; put 'data &outds (keep=directoryuri name directoryname directorydesc );'; put 'length directoryuri name directoryname directorydesc $256;'; put 'call missing(of _all_);'; put '__i+1;'; put '%if %length(&path)=0 %then %do;'; put 'do while'; put '(metadata_getnobj("omsobj:Directory?@Id contains ''.''",__i,directoryuri)>0);'; put '%end; %else %do;'; put 'do while('; put 'metadata_getnobj("omsobj:Directory?@DirectoryName=''&path''",__i,directoryuri)'; put '>0'; put ');'; put '%end;'; put '__rc1=metadata_getattr(directoryuri, "Name", name);'; put '__rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname);'; put '__rc3=metadata_getattr(directoryuri, "Desc", directorydesc);'; put '&mD.putlog (_all_) (=);'; put 'drop __:;'; put '__i+1;'; put 'if sum(of __rc1-__rc3)=0 then output;'; put 'end;'; put 'run;'; put '%mend mm_getDirectories;'; put '%macro mm_updatestpsourcecode(stp='; put ',stpcode='; put ',minify=NO'; put ',mdebug=0'; put ');'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&stp.(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '%if &mdebug=1 %then %do;'; put 'put tsuri= value=;'; put '%end;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%if &tsuri=stopifempty %then %do;'; put '%put %str(WARN)ING: &stp.(StoredProcess) not found!;'; put '%return;'; put '%end;'; put '%if %length(&stpcode)<2 %then %do;'; put '%put %str(WARN)ING: No SAS code supplied!!;'; put '%return;'; put '%end;'; put '%local frefin frefout;'; put '%let frefin=%mf_getuniquefileref();'; put '%let frefout=%mf_getuniquefileref();'; put '/* write header XML */'; put 'data _null_;'; put 'file &frefin;'; put 'put "$METAREPOSITORY'; put '2 %then %do;'; put 'data _null_;'; put 'file &frefin lrecl=32767 mod;'; put 'infile &stpcode lrecl=32767;'; put 'length outstr $32767;'; put 'input outstr ;'; put '/* escape code so it can be stored as XML */'; put 'outstr=tranwrd(_infile_,''&'',''&'');'; put 'outstr=tranwrd(outstr,''<'',''<'');'; put 'outstr=tranwrd(outstr,''>'',''>'');'; put 'outstr=tranwrd(outstr,"''",''''');'; put 'outstr=tranwrd(outstr,''"'',''"'');'; put 'outstr=tranwrd(outstr,''0A''x,'' '');'; put 'outstr=tranwrd(outstr,''0D''x,'' '');'; put 'outstr=tranwrd(outstr,''$'',''$'');'; put '%if &minify=YES %then %do;'; put 'outstr=cats(outstr);'; put 'if outstr ne '''';'; put 'if not (outstr=:''/*'' and subpad(left(reverse(outstr)),1,2)=''/*'');'; put '%end;'; put 'outstr=trim(outstr);'; put 'put outstr '' '';'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &frefin mod;'; put 'put "''>SAS268435456'; put '";'; put 'run;'; put 'proc metadata in= &frefin out=&frefout;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile &frefout lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%else %do;'; put 'filename &frefin clear;'; put 'filename &frefout clear;'; put '%end;'; put '%mend mm_updatestpsourcecode;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro mm_getservercontexts('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* first get list of available repos */'; put '%mm_getrepos(outds=work.repos)'; put '%let repocnt=0;'; put 'data _null_;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put 'filename __mc1 temp;'; put 'filename __mc2 temp;'; put 'data &outds;'; put 'length serveruri servername $200;'; put 'call missing (of _all_);'; put 'stop;'; put 'run;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'proc metadata in='; put '"$METAREPOSITORY'; put 'ServerContextSAS'; put '0"'; put 'out=__mc1;'; put 'run;'; put '/*'; put 'data _null_;'; put 'infile __mc1 lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put 'data _null_;'; put 'file __mc2;'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/ServerContext";'; put 'put "";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/ServerContext/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/ServerContext/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2;'; put 'proc append base=&outds data=__mc3.SASContexts;run;'; put 'libname __mc3 clear;'; put '%end;'; put 'options metarepository=&repo;'; put 'filename __mc1 clear;'; put 'filename __mc2 clear;'; put '%mend mm_getservercontexts;'; 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 mm_createstp('; put 'stpname=Macro People STP'; put ',stpdesc=This stp was created automatically by the mm_createstp macro'; put ',filename=mm_createstp.sas'; put ',directory=SASEnvironment/SASCode'; put ',tree=/User Folders/sasdemo'; put ',package=false'; put ',streaming=true'; put ',outds=work.mm_createstp'; put ',mDebug=0'; put ',server=SASApp'; put ',stptype=1'; put ',minify=NO'; put ',frefin=mm_in'; put ',frefout=mm_out'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_CreateSTP.sas;'; put '%&mD.put _local_;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(stpname filename directory tree)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Empty inputs: stpname filename directory tree)'; put ')'; put '%mp_dropmembers(%scan(&outds,2,.))'; put '/**'; put '* check tree exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; put 'call symputx(''foldertype'',type,''l'');'; put 'call symputx(''treeuri'',uri,''l'');'; put 'run;'; put '%if &foldertype ne Tree %then %do;'; put '%put %str(WARN)ING: Tree &tree does not exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Check STP does not exist already'; put '*/'; put '%local cmtype;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree/&stpname",''StoredProcess'',type,uri);'; put 'call symputx(''cmtype'',type,''l'');'; put 'call symputx(''stpuri'',uri,''l'');'; put 'run;'; put '%if &cmtype = ClassifierMap %then %do;'; put '%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;'; put '%return;'; put '%end;'; put '/**'; put '* Check that the physical file exists'; put '*/'; put '%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;'; put '%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;'; put '%return;'; put '%end;'; put '%if &stptype=1 %then %do;'; put '/* type 1 STP - where code is stored on filesystem */'; put '%if %sysevalf(&sysver lt 9.2) %then %do;'; put '%put %str(WARN)ING: Version 9.2 or later required;'; put '%return;'; put '%end;'; put '/* check directory object (where 9.2 source code reference is stored) */'; put 'data _null_;'; put 'length id $20 dirtype $256;'; put 'rc=metadata_resolve("&directory",dirtype,id);'; put 'call symputx(''checkdirtype'',dirtype,''l'');'; put 'run;'; put '%if &checkdirtype ne Directory %then %do;'; put '%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)'; put '%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;'; put '%put %str(WARN)ING: The directory object does not exist for &directory;'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data &outds;'; put 'directoryuri="&directory";'; put 'run;'; put '%end;'; put 'data &outds (keep=stpuri prompturi fileuri texturi);'; put 'length stpuri prompturi fileuri texturi serveruri $256 ;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &outds;'; put '/* final checks on uris */'; put 'length id $20 type $256;'; put '__rc=metadata_resolve("&treeuri",type,id);'; put 'if type ne ''Tree'' then do;'; put 'putlog "%str(WARN)ING: Invalid tree URI: &treeuri";'; put 'stopme=1;'; put 'end;'; put '__rc=metadata_resolve(directoryuri,type,id);'; put 'if type ne ''Directory'' then do;'; put 'putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;'; put 'stopme=1;'; put 'end;'; put '/* get server info */'; put '__rc=metadata_resolve("&server",type,serveruri);'; put 'if type ne ''LogicalServer'' then do;'; put '__rc=metadata_getnobj("omsobj:LogicalServer?@Name=''&server''",1,serveruri);'; put 'if serveruri='''' then do;'; put 'putlog "%str(WARN)ING: Invalid server: &server";'; put 'stopme=1;'; put 'end;'; put 'end;'; put 'if stopme=1 then do;'; put 'putlog (_all_)(=);'; put 'stop;'; put 'end;'; put '/* create empty prompt */'; put 'rc1=METADATA_NEWOBJ(''PromptGroup'',prompturi,''Parameters'');'; put 'rc2=METADATA_SETATTR(prompturi, ''UsageVersion'', ''1000000'');'; put 'rc3=METADATA_SETATTR(prompturi, ''GroupType'',''2'');'; put 'rc4=METADATA_SETATTR(prompturi, ''Name'',''Parameters'');'; put 'rc5=METADATA_SETATTR(prompturi, ''PublicType'',''Embedded:PromptGroup'');'; put 'GroupInfo='; put '"";'; put 'rc6 = METADATA_SETATTR(prompturi, ''GroupInfo'',groupinfo);'; put 'if sum(of rc1-rc6) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating prompt.";'; put 'if prompturi ne . then do;'; put 'putlog '' Removing orphan: '' prompturi;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'put rc=;'; put 'end;'; put 'stop;'; put 'end;'; put '/* create a file uri */'; put 'rc7=METADATA_NEWOBJ(''File'',fileuri,''SP Source File'');'; put 'rc8=METADATA_SETATTR(fileuri, ''FileName'',"&filename");'; put 'rc9=METADATA_SETATTR(fileuri, ''IsARelativeName'',''1'');'; put 'rc10=METADATA_SETASSN(fileuri, ''Directories'',''MODIFY'',directoryuri);'; put 'if sum(of rc7-rc10) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating file.";'; put 'if fileuri ne . then do;'; put 'putlog '' Removing orphans:'' prompturi fileuri;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'rc = METADATA_DELOBJ(fileuri);'; put 'put (_all_)(=);'; put 'end;'; put 'stop;'; put 'end;'; put '/* create a TextStore object */'; put 'rc11= METADATA_NEWOBJ(''TextStore'',texturi,''Stored Process'');'; put 'rc12= METADATA_SETATTR(texturi, ''TextRole'',''StoredProcessConfiguration'');'; put 'rc13= METADATA_SETATTR(texturi, ''TextType'',''XML'');'; put 'storedtext='''''; put '!!""'; put '!!"";'; put 'rc14= METADATA_SETATTR(texturi, ''StoredText'',storedtext);'; put 'if sum(of rc11-rc14) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating TextStore.";'; put 'if texturi ne . then do;'; put 'putlog '' Removing orphans: '' prompturi fileuri texturi;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'rc = METADATA_DELOBJ(fileuri);'; put 'rc = METADATA_DELOBJ(texturi);'; put 'put (_all_)(=);'; put 'end;'; put 'stop;'; put 'end;'; put '/* create meta obj */'; put 'rc15= METADATA_NEWOBJ(''ClassifierMap'',stpuri,"&stpname");'; put 'rc16= METADATA_SETASSN(stpuri, ''Trees'',''MODIFY'',treeuri);'; put 'rc17= METADATA_SETASSN(stpuri, ''ComputeLocations'',''MODIFY'',serveruri);'; put 'rc18= METADATA_SETASSN(stpuri, ''SourceCode'',''MODIFY'',fileuri);'; put 'rc19= METADATA_SETASSN(stpuri, ''Prompts'',''MODIFY'',prompturi);'; put 'rc20= METADATA_SETASSN(stpuri, ''Notes'',''MODIFY'',texturi);'; put 'rc21= METADATA_SETATTR(stpuri, ''PublicType'', ''StoredProcess'');'; put 'rc22= METADATA_SETATTR(stpuri, ''TransformRole'', ''StoredProcess'');'; put 'rc23= METADATA_SETATTR(stpuri, ''UsageVersion'', ''1000000'');'; put 'rc24= METADATA_SETATTR(stpuri, ''Desc'', "&stpdesc");'; put '/* tidy up if err */'; put 'if sum(of rc15-rc24) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating STP.";'; put 'if stpuri ne . then do;'; put 'putlog '' Removing orphans: '' prompturi fileuri texturi stpuri;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'rc = METADATA_DELOBJ(fileuri);'; put 'rc = METADATA_DELOBJ(texturi);'; put 'rc = METADATA_DELOBJ(stpuri);'; put 'put (_all_)(=);'; put 'end;'; put 'end;'; put 'else do;'; put 'fullpath=cats(''_program='',treepath,"/&stpname");'; put 'putlog "NOTE: Stored Process Created!";'; put 'putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath;'; put 'putlog "NOTE- "; putlog "NOTE-";'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%end;'; put '%else %if &stptype=2 %then %do;'; put '/* type 2 stp - code is stored in metadata */'; put '%if %sysevalf(&sysver lt 9.3) %then %do;'; put '%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;'; put '%return;'; put '%end;'; put '/* check we have the correct ServerContext */'; put '%mm_getservercontexts(outds=contexts)'; put '%local serveruri; %let serveruri=NOTFOUND;'; put 'data _null_;'; put 'set contexts;'; put 'where upcase(servername)="%upcase(&server)";'; put 'call symputx(''serveruri'',serveruri);'; put 'run;'; put '%if &serveruri=NOTFOUND %then %do;'; put '%put %str(WARN)ING: ServerContext *&server* not found!;'; put '%return;'; put '%end;'; put '/**'; put '* First, create a Hello World type 2 stored process'; put '*/'; put 'filename &frefin temp;'; put 'data _null_;'; put 'file &frefin;'; put 'treeuri=quote(symget(''treeuri''));'; put 'serveruri=quote(symget(''serveruri''));'; put 'stpdesc=quote(symget(''stpdesc''));'; put 'stpname=quote(symget(''stpname''));'; put 'put "$METAREPOSITORY "/'; put '''''/'; put '" "/'; put '" "/'; put '" "/'; put '" "/'; put ''' ''/'; put ''' '' /'; put '" "/'; put '" "/'; put ''' ''/'; put '" "/'; put '""/'; put '"SAS"/'; put '"268435456";'; put 'run;'; put 'filename &frefout temp;'; put 'proc metadata in= &frefin out=&frefout ;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '/**'; put '* Next, add the source code'; put '*/'; put '%mm_updatestpsourcecode(stp=&tree/&stpname'; put ',stpcode="&directory/&filename"'; put ',mdebug=&mdebug'; put ',minify=&minify)'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;'; put '%end;'; put '%mend mm_createstp;'; put '%macro mm_deletedocument('; put 'target='; put ')/*/STORE SOURCE*/;'; put '/**'; put '* Check document exist'; put '*/'; put '%local type;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; put 'call symputx(''type'',type,''l'');'; put 'call symputx(''stpuri'',uri,''l'');'; put 'run;'; put '%if &type ne Document %then %do;'; put '%put %str(WARN)ING: No Document found at ⌖'; put '%return;'; put '%end;'; put 'filename __in temp lrecl=10000;'; put 'filename __out temp lrecl=10000;'; put 'data _null_ ;'; put 'file __in ;'; put 'put "";'; put 'put "SAS268436480";'; put 'put "";'; put 'run ;'; put 'proc metadata in=__in out=__out verbose;run;'; put '/* list the result */'; put 'data _null_;infile __out; input; list; run;'; put 'filename __in clear;'; put 'filename __out clear;'; put '/**'; put '* Check deletion'; put '*/'; put '%local isgone;'; put 'data _null_;'; put 'length type uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; put 'call symputx(''isgone'',type,''l'');'; put 'run;'; put '%if &isgone = Document %then %do;'; put '%put %str(ERR)OR: Document not deleted from ⌖'; put '%let syscc=4;'; put '%return;'; put '%end;'; put '%mend mm_deletedocument;'; put '%macro mm_deletestp('; put 'target='; put ')/*/STORE SOURCE*/;'; put '/**'; put '* Check STP does exist'; put '*/'; put '%local cmtype;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&target",''StoredProcess'',type,uri);'; put 'call symputx(''cmtype'',type,''l'');'; put 'call symputx(''stpuri'',uri,''l'');'; put 'run;'; put '%if &cmtype ne ClassifierMap %then %do;'; put '%put NOTE: No Stored Process found at ⌖'; put '%return;'; put '%end;'; put 'filename __in temp lrecl=10000;'; put 'filename __out temp lrecl=10000;'; put 'data _null_ ;'; put 'file __in ;'; put 'put "";'; put 'put "SAS268436480";'; put 'put "";'; put 'run ;'; put 'proc metadata in=__in out=__out verbose;run;'; put '/* list the result */'; put 'data _null_;infile __out; input; list; run;'; put 'filename __in clear;'; put 'filename __out clear;'; put '/**'; put '* Check deletion'; put '*/'; put '%local isgone;'; put 'data _null_;'; put 'length type uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; put 'call symputx(''isgone'',type,''l'');'; put 'run;'; put '%if &isgone = ClassifierMap %then %do;'; put '%put %str(ERR)OR: STP not deleted from ⌖'; put '%let syscc=4;'; put '%return;'; put '%end;'; put '%mend mm_deletestp;'; put '%macro mm_getstpinfo(pgm'; put ',outds=work.mm_getstpinfo'; put ',mDebug=0'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put 'data &outds;'; put 'length type stp_uri tsuri servercontext value $200'; put 'StoredProcessConfiguration $1000 sourcecode_first32k $32767;'; put 'keep path stp_uri sourcecode_first32k StoredProcessConfiguration'; put 'servercontext;'; put 'call missing (of _all_);'; put 'path="&pgm(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,stp_uri)>0 then do;'; put '/* get attributes */'; put 'cnt=1;'; put 'do while (metadata_getnasn(stp_uri,"Notes",cnt,tsuri)>0);'; put 'rc1=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put 'rc2=metadata_getattr(tsuri,"StoredText",sourcecode_first32k);'; put 'end;'; put 'else if value="Stored Process" then do;'; put 'rc3=metadata_getattr(tsuri,"StoredText",StoredProcessConfiguration);'; put 'end;'; put 'cnt+1;'; put 'end;'; put '/* get context (should only be one) */'; put 'rc4=metadata_getnasn(stp_uri,"ComputeLocations",1,tsuri);'; put 'rc5=metadata_getattr(tsuri,"Name",servercontext);'; put 'end;'; put 'else do;'; put 'put "%str(ERR)OR: could not find " path;'; put 'put (_all_)(=);'; put 'end;'; put '&md.put (_all_)(=);'; put 'run;'; put '%mend mm_getstpinfo ;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief service for creating the configuration tables in DEMO mode.'; put '@details'; put 'STP for creating the configuration tables in DEMO mode.'; put 'It also adds the STAGING directory as subdirectory to the BASE'; put 'library location.'; put 'Note - the CURLIB var is added during the build process.'; put '@warning This STP self destructs! It will delete itself after a successful run'; put 'to avoid being executed twice (and overwriting actual data)'; put '

SAS Macros

'; put '@li mf_getapploc.sas'; put '@li mf_getuser.sas'; put '@li mf_mkdir.sas'; put '@li mm_createdocument.sas'; put '@li mm_createlibrary.sas'; put '@li mm_createstp.sas'; put '@li mm_deletedocument.sas'; put '@li mm_deletestp.sas'; put '@li mm_getstpcode.sas'; put '@li mm_getstpinfo.sas'; put '@li mp_abort.sas'; put '@li mp_init.sas'; put '@li mpe_makedata.sas'; put '@li mpe_makedatamodel.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '%mp_init()'; put '%global admin repo path; /* URL params from configurator */'; put '%let repo=%sysfunc(coalescec(&repo,Foundation));'; put '%let admin=%sysfunc(coalescec(&admin,dc-admin));'; put '%let dcpath=%sysfunc(coalescec(&path,NOTFOUND));'; put '%mp_abort(iftrue= ("&dcpath" = "NOTFOUND")'; put ',mac=&_program'; put ',msg=%str(PATH variable was not provided)'; put ')'; put '%let root=%mf_getapploc();'; put '%let work=%sysfunc(pathname(work));'; put '%let dc_libref=%upcase(DC%substr(%sysevalf(%sysfunc(datetime())/60),3,6));'; put '%let DC_LIBNAME=Data Controller(&dc_libref);'; put '%let dcpath=&dcpath/&dc_libref;'; put '%put _all_;'; put '%mf_mkdir(&dcpath/dc_staging)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(Unable to create &dcpath using &sysuserid)'; put ')'; put '/* check we have the admin rights to update the items in the Admin folder */'; put '%mm_createdocument(tree=&root/services/admin,name=permTest)'; put '%mm_deletedocument(target=&root/services/admin/permTest)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(User &_metaperson does not have WriteMetadata on metadata folder:'; put '&root )'; put ')'; put '/* check we have physical permissions to the DCLIB folder */'; put 'data _null_;'; put 'putlog "dcpath=&dcpath/permTest.txt";'; put 'putlog "sysuserid=&sysuserid";'; put 'data _null_;'; put 'file "&dcpath/permTest.txt";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(User &sysuserid does not have WRITE permissions on physical'; put 'directory: &dcpath )'; put ')'; put 'filename delfile "&dcpath/permTest.txt";'; put 'data _null_;'; put 'rc=fdelete(''delfile'');'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(User &sysuserid could create (but not delete) &dcpath/permTest.txt )'; put ')'; put '/* get the server context from the current STP */'; put '%mm_getstpinfo(&_program,outds=work.stpinfo)'; put 'data _null_;'; put 'set work.stpinfo;'; put 'call symputx(''serverContext'',serverContext);'; put 'run;'; put '/* create the library */'; put '%mm_createlibrary('; put 'libname=&DC_LIBNAME'; put ',libref=&dc_libref'; put ',libdesc=Data Controller for SAS configuration tables'; put ',engine=BASE'; put ',tree=&root/data'; put ',servercontext=&serverContext'; put ',directory=&dcpath'; put ',mDebug=1'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=buildtermsas9'; put ',msg=%str(Unable to create &dc_libref library)'; put ')'; put '/* assign the library */'; put 'libname &dc_libref "&dcpath";'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=buildtermsas9'; put ',msg=%str(Unable to assign the &dc_libref library)'; put ')'; put '/* make the tables */'; put '/* SASAdministrators */'; put '%mpe_makedatamodel(lib=&dc_libref)'; put '%mpe_makedata(lib=&DC_LIBREF,mpeadmins=&admin,path=%str(&dcpath))'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem creating tables in &DC_LIBREF library\n'; put 'SYSERRORTEXT=&SYSERRORTEXT \n'; put 'SYSWARNINGTEXT=&SYSWARNINGTEXT)'; put ')'; put '/* register tables in metadata */'; put 'proc metalib;'; put 'omr (library="&DC_LIBNAME");'; put 'folder="&root/data";'; put 'update_rule=(delete);'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Problem registering metadata for tables in &DC_LIBREF library \n'; put 'os user=&sysuserid \n'; put 'metaperson=%mf_getuser() \n'; put 'SYSERRORTEXT=&SYSERRORTEXT \n'; put 'SYSWARNINGTEXT=&SYSWARNINGTEXT'; put ')'; put ')'; put '/* finally, update the app component. The user will need WM perms for this. */'; put 'data _null_;'; put 'file "&work/settings.sas" mod ;'; put 'put '' '';'; put 'put ''%global DC_LIBREF DC_LIBNAME DC_LIBLOC DC_STAGING_AREA DC_ADMIN_GROUP'';'; put 'put '' DC_REPO_USERS DC_DTTMTFMT DC_MACROS;'';'; put 'put '' '';'; put 'put ''/* This metadata library (libref) contains control datasets for DC */'';'; put 'put ''/* If a different libref must be used, configure it below */'';'; put 'put ''%let DC_LIBREF='' "&DC_LIBREF;";'; put 'put ''%let DC_LIBNAME='' "&DC_LIBNAME;";'; put 'put ''%let DC_LIBLOC='' "&dcpath;";'; put 'put '' '';'; put 'put ''libname &DC_LIBREF "&dc_libloc";'';'; put 'put '' '';'; put 'put ''/* This metadata group has unrestricted access to Data Controller */'';'; put 'put ''%let dc_admin_group='' "&admin;";'; put 'put '' '';'; put 'put ''/* This repository is used to query for users and groups */'';'; put 'put ''%let dc_repo_users='' "&repo;";'; put 'put '' '';'; put 'put ''/* This physical location is used for staging data and audit history */'';'; put 'put ''%let dc_staging_area=&dc_libloc/dc_staging;'';'; put 'put '' '';'; put 'put ''data _null_;'';'; put 'put '' set &DC_LIBREF..mpe_config(where=('';'; put 'put '' var_scope="DC" '';'; put 'put '' and &dc_dttmtfmt. lt tx_to'';'; put 'put '' and var_active=1'';'; put 'put " ));";'; put 'put " call symputx(var_name,var_value,''G'');";'; put 'put '' putlog var_name "=" var_value;'';'; put 'put "run;";'; put 'put '' '';'; put 'put ''/* to override any DC macros with client versions, place them below */'';'; put 'put ''options insert=(sasautos=("&dc_macros"));'';'; put 'run;'; put '/*'; put 'put ''data _null_;'';'; put 'put '' length lib_uri up_uri path $256;'';'; put 'put '' call missing (of _all_);'';'; put 'put '' rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''''&dc_libref''''",1,lib_uri);'';'; put 'put '' rc=metadata_getnasn(lib_uri,"UsingPackages",1,up_uri);'';'; put 'put '' rc=metadata_getattr(up_uri,"DirectoryName",path);'';'; put 'put '' call symputx("dc_libloc",path);'';'; put 'put ''run;'';'; put '*/'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program'; put ',msg=%str(syscc=syscc=&syscc when preparing data_controller_settings)'; put ')'; put '%mm_createstp(stpname=Data_Controller_Settings'; put ',filename=settings.sas'; put ',directory=&work'; put ',tree=&root/services/public'; put ',Server=&serverContext'; put ',stptype=2'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str('; put 'Problem updating the dc_staging area in'; put '&root/services/public/DataController Settings \n'; put 'SYSERRORTEXT=&SYSERRORTEXT \n'; put 'SYSWARNINGTEXT=&SYSWARNINGTEXT'; put ')'; put ')'; put 'data _null_;'; put 'file _webout;'; put 'put ''

Data Controller Config

'';'; put 'put ''

The following items have been successfully configured:

'';'; put 'put "";'; put 'put "

Next Steps:

";'; put 'put "
  1. Populate ";'; put 'put "Table Lineage
  2. ";'; put 'put "
  3. Populate";'; put 'put "Data Catalog
  4. ";'; put 'put "
  5. Now, ";'; put 'put "hereLaunch!
";'; put 'run;'; put '/* We ran successfully, now remove configurator and makedata STPs */'; put '%mm_deletestp(target=&root/services/admin/configurator)'; put '%mm_deletestp(target=&_program)'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=makelib; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_assignlib;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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 mm_createfolder(path=,mDebug=0);'; put '%put &sysmacroname: execution started for &path;'; put '%local dbg errorcheck;'; put '%if &mDebug=0 %then %let dbg=*;'; put '%local parentFolderObjId child errorcheck paths;'; put '%let paths=0;'; put '%let errorcheck=1;'; put '%if &syscc ge 4 %then %do;'; put '%put SYSCC=&syscc - this macro requires a clean session;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'length objId parentId objType parent child $200'; put 'folderPath $1000;'; put 'call missing (of _all_);'; put 'folderPath = "%trim(&path)";'; put '* remove any trailing slash ;'; put 'if ( substr(folderPath,length(folderPath),1) = ''/'' ) then'; put 'folderPath=substr(folderPath,1,length(folderPath)-1);'; put '* name must not be blank;'; put 'if ( folderPath = '''' ) then do;'; put 'put "%str(ERR)OR: &sysmacroname PATH parameter value must be non-blank";'; put 'end;'; put '* must have a starting slash ;'; put 'if ( substr(folderPath,1,1) ne ''/'' ) then do;'; put 'put "%str(ERR)OR: &sysmacroname PATH param value must have starting slash";'; put 'stop;'; put 'end;'; put '* check if folder already exists ;'; put 'rc=metadata_pathobj('''',cats(folderPath,"(Folder)"),"",objType,objId);'; put 'if rc ge 1 then do;'; put 'put "NOTE: Folder " folderPath " already exists!";'; put 'stop;'; put 'end;'; put '* do not create a root (one level) folder ;'; put 'if countc(folderPath,''/'')=1 then do;'; put 'put "%str(ERR)OR: &sysmacroname will not create a new ROOT folder";'; put 'stop;'; put 'end;'; put '* check that root folder exists ;'; put 'root=cats(''/'',scan(folderpath,1,''/''),"(Folder)");'; put 'if metadata_pathobj('''',root,"",objType,parentId)<1 then do;'; put 'put "%str(ERR)OR: " root " does not exist!";'; put 'stop;'; put 'end;'; put '* check that parent folder exists ;'; put 'child=scan(folderPath,-1,''/'');'; put 'parent=substr(folderpath,1,length(folderpath)-length(child)-1);'; put 'rc=metadata_pathobj('''',cats(parent,"(Folder)"),"",objType,parentId);'; put 'if rc<1 then do;'; put 'putlog ''The following folders will be created:'';'; put '/* folder does not exist - so start from top and work down */'; put 'length newpath $1000;'; put 'paths=0;'; put 'do x=2 to countw(folderpath,''/'');'; put 'newpath='''';'; put 'do i=1 to x;'; put 'newpath=cats(newpath,''/'',scan(folderpath,i,''/''));'; put 'end;'; put 'rc=metadata_pathobj('''',cats(newpath,"(Folder)"),"",objType,parentId);'; put 'if rc<1 then do;'; put 'paths+1;'; put 'call symputx(cats(''path'',paths),newpath);'; put 'putlog newpath;'; put 'end;'; put 'call symputx(''paths'',paths);'; put 'end;'; put 'end;'; put 'else putlog "parent " parent " exists";'; put 'call symputx(''parentFolderObjId'',parentId,''l'');'; put 'call symputx(''child'',child,''l'');'; put 'call symputx(''errorcheck'',0,''l'');'; put '&dbg put (_all_)(=);'; put 'run;'; put '%if &errorcheck=1 or &syscc ge 4 %then %return;'; put '%if &paths>0 %then %do x=1 %to &paths;'; put '%put executing recursive call for &&path&x;'; put '%mm_createfolder(path=&&path&x)'; put '%end;'; put '%else %do;'; put 'filename __newdir temp;'; put 'options noquotelenmax;'; put '%local inmeta;'; put '%put creating: &path;'; put '%let inmeta=$METAREPOSITORY'; put ''; put 'SAS268435456'; put ';'; put 'proc metadata in="&inmeta" out=__newdir verbose;'; put 'run ;'; put '/* check it was successful */'; put 'data _null_;'; put 'length objId parentId objType parent child $200 ;'; put 'call missing (of _all_);'; put 'rc=metadata_pathobj('''',cats("&path","(Folder)"),"",objType,objId);'; put 'if rc ge 1 then do;'; put 'putlog "SUCCCESS! &path created.";'; put 'end;'; put 'else do;'; put 'putlog "%str(ERR)OR: unsuccessful attempt to create &path";'; put 'call symputx(''syscc'',8);'; put 'end;'; put 'run;'; put '/* write the response to the log for debugging */'; put '%if &mDebug ne 0 %then %do;'; put 'data _null_;'; put 'infile __newdir lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put 'filename __newdir clear;'; put '%end;'; put '%put &sysmacroname: execution finished for &path;'; put '%mend mm_createfolder;'; put '%macro mm_createlibrary('; put 'libname=My New Library'; put ',libref=mynewlib'; put ',libdesc=Created automatically using the mm_createlibrary macro'; put ',engine=BASE'; put ',tree=/User Folders/sasdemo'; put ',servercontext=SASApp'; put ',directory=/tmp/somelib'; put ',IsPreassigned=0'; put ',mDebug=0'; put ',frefin=mm_in'; put ',frefout=mm_out'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%let libref=%upcase(&libref);'; put '/**'; put '* Check Library does not exist already with this libname'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:SASLibrary?@Name=''&libname''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''liburi'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype = SASLibrary %then %do;'; put '%put %str(WARN)ING: Library (&liburi) already exists with libname (&libname);'; put '%return;'; put '%end;'; put '/**'; put '* Check Library does not exist already with this libref'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:SASLibrary?@Libref=''&libref''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''liburi'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype = SASLibrary %then %do;'; put '%put %str(WARN)ING: Library (&liburi) already exists with libref (&libref) ;'; put '%return;'; put '%end;'; put '/**'; put '* Attempt to create tree'; put '*/'; put '%mm_createfolder(path=&tree)'; put '/**'; put '* check tree exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; put 'call symputx(''foldertype'',type,''l'');'; put 'call symputx(''treeuri'',uri,''l'');'; put 'run;'; put '%if &foldertype ne Tree %then %do;'; put '%put %str(WARN)ING: Tree &tree does not exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Create filerefs for proc metadata call'; put '*/'; put 'filename &frefin temp;'; put 'filename &frefout temp;'; put '%mp_abort(iftrue= ('; put '&engine=BASE & %mf_verifymacvars(libname libref engine servercontext tree)=0'; put ')'; put ',mac=&sysmacroname'; put ',msg=%str(Empty inputs: libname libref engine servercontext tree)'; put ')'; put '%if &engine=BASE %then %do;'; put '/**'; put '* Check that the ServerContext exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:ServerContext?@Name=''&ServerContext''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''serveruri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype ne ServerContext %then %do;'; put '%put %str(ERR)OR: ServerContext (&ServerContext) does not exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Get prototype info'; put '*/'; put 'data _null_;'; put 'length type uri str $256;'; put 'str="omsobj:Prototype?@Name=''Library.SAS.Prototype.Name.xmlKey.txt''";'; put 'rc=metadata_resolve(str,type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''prototypeuri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype ne Prototype %then %do;'; put '%put %str(ERR)OR: Prototype Library.SAS.Prototype.Name.xmlKey.txt not found;'; put '%return;'; put '%end;'; put '/**'; put '* Check that Physical location exists'; put '*/'; put '%if %sysfunc(fileexist(&directory))=0 %then %do;'; put '%put %str(ERR)OR: Physical directory (&directory) does not appear to exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Check that Directory Object exists in metadata'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; put '!!" and @DirectoryName=''&directory''",type,uri);'; put 'call symputx(''checktype'',type,''l'');'; put 'call symputx(''directoryuri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &checktype ne Directory %then %do;'; put '%put NOTE: Directory object does not exist for (&directory) location;'; put '%put NOTE: It will now be created;'; put 'data _null_;'; put 'file &frefin;'; put 'directory=quote(symget(''directory''));'; put 'put "$METAREPOSITORY "/'; put '''''/'; put '"SAS"/'; put '"268435456";'; put 'run;'; put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose;;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input; put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: Checking to ensure directory (&directory) object was created;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_resolve("omsobj:Directory?@DirectoryRole=''LibraryPath''"'; put '!!" and @DirectoryName=''&directory''",type,uri);'; put 'call symputx(''checktype2'',type,''l'');'; put 'call symputx(''directoryuri'',uri,''l'');'; put '%if &mdebug=1 %then putlog (_all_)(=);;'; put 'run;'; put '%if &checktype2 ne Directory %then %do;'; put '%put %str(ERR)OR: Directory (&directory) object was NOT created!;'; put '%return;'; put '%end;'; put '%else %put NOTE: Directory (&directoryuri) successfully created!;'; put '%end;'; put '/**'; put '* check SAS version'; put '*/'; put '%if %sysevalf(&sysver lt 9.3) %then %do;'; put '%put %str(WARN)ING: Version 9.3 or later required;'; put '%return;'; put '%end;'; put '/**'; put '* Prepare the XML and create the library'; put '*/'; put 'data _null_;'; put 'file &frefin;'; put 'treeuri=quote(symget(''treeuri''));'; put 'serveruri=quote(symget(''serveruri''));'; put 'directoryuri=quote(symget(''directoryuri''));'; put 'libname=quote(symget(''libname''));'; put 'libref=quote(symget(''libref''));'; put 'IsPreassigned=quote(symget(''IsPreassigned''));'; put 'prototypeuri=quote(symget(''prototypeuri''));'; put '/* escape description so it can be stored as XML */'; put 'libdesc=tranwrd(symget(''libdesc''),''&'',''&'');'; put 'libdesc=tranwrd(libdesc,''<'',''<'');'; put 'libdesc=tranwrd(libdesc,''>'',''>'');'; put 'libdesc=tranwrd(libdesc,"''",''''');'; put 'libdesc=tranwrd(libdesc,''"'',''"'');'; put 'libdesc=tranwrd(libdesc,''0A''x,'' '');'; put 'libdesc=tranwrd(libdesc,''0D''x,'' '');'; put 'libdesc=tranwrd(libdesc,''$'',''$'');'; put 'libdesc=quote(trim(libdesc));'; put 'put "$METAREPOSITORY "/'; put '''''/'; put ''' ''/'; put ''' "/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put '" "/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put ''' ''/'; put '''SAS''/'; put '''268435456'';'; put 'run;'; put 'proc metadata in= &frefin out=&frefout %if &mdebug=1 %then verbose ;;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input;put _infile_;'; put 'run;'; put '%end;'; put '%put NOTE: Checking to ensure library (&libname) was created;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree/&libname","Library",type,uri);'; put 'call symputx(''libtype'',type,''l'');'; put 'call symputx(''liburi'',uri,''l'');'; put '%if &mdebug=1 %then putlog (_all_)(=);;'; put 'run;'; put '%if &libtype ne SASLibrary %then %do;'; put '%put %str(ERR)OR: Could not find (&libname) at (&tree)!!;'; put '%return;'; put '%end;'; put '%else %put NOTE: Library (&libname) successfully created in (&tree)!;'; put '%end;'; put '%else %do;'; put '%put %str(ERR)OR: Other library engine types are not yet supported!!;'; put '%end;'; put '/**'; put '* Wrap up'; put '*/'; put '%if &mdebug ne 1 %then %do;'; put 'filename &frefin clear;'; put 'filename &frefout clear;'; put '%end;'; put '%mend mm_createlibrary;'; put '%macro mm_createdocument('; put 'tree=/User Folders/sasdemo'; put ',name=myNote'; put ',desc=Created by &sysmacroname'; put ',textrole='; put ',frefin=mm_in'; put ',frefout=mm_out'; put ',mDebug=1'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%mp_abort(iftrue= (%mf_verifymacvars(tree name)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Empty inputs: tree name)'; put ')'; put '/**'; put '* check tree exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; put 'call symputx(''type'',type,''l'');'; put 'call symputx(''treeuri'',uri,''l'');'; put 'run;'; put '%mp_abort('; put 'iftrue= (&type ne Tree)'; put ',mac=mm_createdocument.sas'; put ',msg=Tree &tree does not exist!'; put ')'; put '/**'; put '* Check object does not exist already'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree/&name","Note",type,uri);'; put 'call symputx(''type'',type,''l'');'; put 'call symputx(''docuri'',uri,''l'');'; put 'putlog (_all_)(=);'; put 'run;'; put '%if &type = Document %then %do;'; put '%put Document &name already exists in &tree!;'; put '%return;'; put '%end;'; put '/**'; put '* Now we can create the document'; put '*/'; put 'filename &frefin temp;'; put '/* write header XML */'; put 'data _null_;'; put 'file &frefin;'; put 'name=quote("&name");'; put 'desc=quote("&desc");'; put 'textrole=quote("&textrole");'; put 'treeuri=quote("&treeuri");'; put 'put "$METAREPOSITORY"/'; put '''"/'; put '" "/'; put ''' '' /'; put '''''/'; put '/*URI="Document for public note" */'; put '""/'; put '"SAS"/'; put '"268435456";'; put 'run;'; put 'filename &frefout temp;'; put 'proc metadata in= &frefin out=&frefout verbose;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%mend mm_createdocument;'; put '%macro mm_deletedocument('; put 'target='; put ')/*/STORE SOURCE*/;'; put '/**'; put '* Check document exist'; put '*/'; put '%local type;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; put 'call symputx(''type'',type,''l'');'; put 'call symputx(''stpuri'',uri,''l'');'; put 'run;'; put '%if &type ne Document %then %do;'; put '%put %str(WARN)ING: No Document found at ⌖'; put '%return;'; put '%end;'; put 'filename __in temp lrecl=10000;'; put 'filename __out temp lrecl=10000;'; put 'data _null_ ;'; put 'file __in ;'; put 'put "";'; put 'put "SAS268436480";'; put 'put "";'; put 'run ;'; put 'proc metadata in=__in out=__out verbose;run;'; put '/* list the result */'; put 'data _null_;infile __out; input; list; run;'; put 'filename __in clear;'; put 'filename __out clear;'; put '/**'; put '* Check deletion'; put '*/'; put '%local isgone;'; put 'data _null_;'; put 'length type uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; put 'call symputx(''isgone'',type,''l'');'; put 'run;'; put '%if &isgone = Document %then %do;'; put '%put %str(ERR)OR: Document not deleted from ⌖'; put '%let syscc=4;'; put '%return;'; put '%end;'; put '%mend mm_deletedocument;'; put '%macro mm_deletestp('; put 'target='; put ')/*/STORE SOURCE*/;'; put '/**'; put '* Check STP does exist'; put '*/'; put '%local cmtype;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&target",''StoredProcess'',type,uri);'; put 'call symputx(''cmtype'',type,''l'');'; put 'call symputx(''stpuri'',uri,''l'');'; put 'run;'; put '%if &cmtype ne ClassifierMap %then %do;'; put '%put NOTE: No Stored Process found at ⌖'; put '%return;'; put '%end;'; put 'filename __in temp lrecl=10000;'; put 'filename __out temp lrecl=10000;'; put 'data _null_ ;'; put 'file __in ;'; put 'put "";'; put 'put "SAS268436480";'; put 'put "";'; put 'run ;'; put 'proc metadata in=__in out=__out verbose;run;'; put '/* list the result */'; put 'data _null_;infile __out; input; list; run;'; put 'filename __in clear;'; put 'filename __out clear;'; put '/**'; put '* Check deletion'; put '*/'; put '%local isgone;'; put 'data _null_;'; put 'length type uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_pathobj("","&target",''Note'',type,uri);'; put 'call symputx(''isgone'',type,''l'');'; put 'run;'; put '%if &isgone = ClassifierMap %then %do;'; put '%put %str(ERR)OR: STP not deleted from ⌖'; put '%let syscc=4;'; put '%return;'; put '%end;'; put '%mend mm_deletestp;'; 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 mm_getDirectories('; put 'path='; put ',outds=work.mm_getDirectories'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getDirectories.sas;'; put '%&mD.put _local_;'; put 'data &outds (keep=directoryuri name directoryname directorydesc );'; put 'length directoryuri name directoryname directorydesc $256;'; put 'call missing(of _all_);'; put '__i+1;'; put '%if %length(&path)=0 %then %do;'; put 'do while'; put '(metadata_getnobj("omsobj:Directory?@Id contains ''.''",__i,directoryuri)>0);'; put '%end; %else %do;'; put 'do while('; put 'metadata_getnobj("omsobj:Directory?@DirectoryName=''&path''",__i,directoryuri)'; put '>0'; put ');'; put '%end;'; put '__rc1=metadata_getattr(directoryuri, "Name", name);'; put '__rc2=metadata_getattr(directoryuri, "DirectoryName", directoryname);'; put '__rc3=metadata_getattr(directoryuri, "Desc", directorydesc);'; put '&mD.putlog (_all_) (=);'; put 'drop __:;'; put '__i+1;'; put 'if sum(of __rc1-__rc3)=0 then output;'; put 'end;'; put 'run;'; put '%mend mm_getDirectories;'; put '%macro mm_updatestpsourcecode(stp='; put ',stpcode='; put ',minify=NO'; put ',mdebug=0'; put ');'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&stp.(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '%if &mdebug=1 %then %do;'; put 'put tsuri= value=;'; put '%end;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%if &tsuri=stopifempty %then %do;'; put '%put %str(WARN)ING: &stp.(StoredProcess) not found!;'; put '%return;'; put '%end;'; put '%if %length(&stpcode)<2 %then %do;'; put '%put %str(WARN)ING: No SAS code supplied!!;'; put '%return;'; put '%end;'; put '%local frefin frefout;'; put '%let frefin=%mf_getuniquefileref();'; put '%let frefout=%mf_getuniquefileref();'; put '/* write header XML */'; put 'data _null_;'; put 'file &frefin;'; put 'put "$METAREPOSITORY'; put '2 %then %do;'; put 'data _null_;'; put 'file &frefin lrecl=32767 mod;'; put 'infile &stpcode lrecl=32767;'; put 'length outstr $32767;'; put 'input outstr ;'; put '/* escape code so it can be stored as XML */'; put 'outstr=tranwrd(_infile_,''&'',''&'');'; put 'outstr=tranwrd(outstr,''<'',''<'');'; put 'outstr=tranwrd(outstr,''>'',''>'');'; put 'outstr=tranwrd(outstr,"''",''''');'; put 'outstr=tranwrd(outstr,''"'',''"'');'; put 'outstr=tranwrd(outstr,''0A''x,'' '');'; put 'outstr=tranwrd(outstr,''0D''x,'' '');'; put 'outstr=tranwrd(outstr,''$'',''$'');'; put '%if &minify=YES %then %do;'; put 'outstr=cats(outstr);'; put 'if outstr ne '''';'; put 'if not (outstr=:''/*'' and subpad(left(reverse(outstr)),1,2)=''/*'');'; put '%end;'; put 'outstr=trim(outstr);'; put 'put outstr '' '';'; put 'run;'; put '%end;'; put 'data _null_;'; put 'file &frefin mod;'; put 'put "''>SAS268435456'; put '";'; put 'run;'; put 'proc metadata in= &frefin out=&frefout;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile &frefout lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '%else %do;'; put 'filename &frefin clear;'; put 'filename &frefout clear;'; put '%end;'; put '%mend mm_updatestpsourcecode;'; put '%macro mm_getservercontexts('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* first get list of available repos */'; put '%mm_getrepos(outds=work.repos)'; put '%let repocnt=0;'; put 'data _null_;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put 'filename __mc1 temp;'; put 'filename __mc2 temp;'; put 'data &outds;'; put 'length serveruri servername $200;'; put 'call missing (of _all_);'; put 'stop;'; put 'run;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'proc metadata in='; put '"$METAREPOSITORY'; put 'ServerContextSAS'; put '0"'; put 'out=__mc1;'; put 'run;'; put '/*'; put 'data _null_;'; put 'infile __mc1 lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put 'data _null_;'; put 'file __mc2;'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/ServerContext";'; put 'put "";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/ServerContext/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/ServerContext/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname __mc3 xml xmlfileref=__mc1 xmlmap=__mc2;'; put 'proc append base=&outds data=__mc3.SASContexts;run;'; put 'libname __mc3 clear;'; put '%end;'; put 'options metarepository=&repo;'; put 'filename __mc1 clear;'; put 'filename __mc2 clear;'; put '%mend mm_getservercontexts;'; 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 mm_createstp('; put 'stpname=Macro People STP'; put ',stpdesc=This stp was created automatically by the mm_createstp macro'; put ',filename=mm_createstp.sas'; put ',directory=SASEnvironment/SASCode'; put ',tree=/User Folders/sasdemo'; put ',package=false'; put ',streaming=true'; put ',outds=work.mm_createstp'; put ',mDebug=0'; put ',server=SASApp'; put ',stptype=1'; put ',minify=NO'; put ',frefin=mm_in'; put ',frefout=mm_out'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_CreateSTP.sas;'; put '%&mD.put _local_;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(stpname filename directory tree)=0)'; put ',mac=&sysmacroname'; put ',msg=%str(Empty inputs: stpname filename directory tree)'; put ')'; put '%mp_dropmembers(%scan(&outds,2,.))'; put '/**'; put '* check tree exists'; put '*/'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree","Folder",type,uri);'; put 'call symputx(''foldertype'',type,''l'');'; put 'call symputx(''treeuri'',uri,''l'');'; put 'run;'; put '%if &foldertype ne Tree %then %do;'; put '%put %str(WARN)ING: Tree &tree does not exist!;'; put '%return;'; put '%end;'; put '/**'; put '* Check STP does not exist already'; put '*/'; put '%local cmtype;'; put 'data _null_;'; put 'length type uri $256;'; put 'rc=metadata_pathobj("","&tree/&stpname",''StoredProcess'',type,uri);'; put 'call symputx(''cmtype'',type,''l'');'; put 'call symputx(''stpuri'',uri,''l'');'; put 'run;'; put '%if &cmtype = ClassifierMap %then %do;'; put '%put %str(WARN)ING: Stored Process &stpname already exists in &tree!;'; put '%return;'; put '%end;'; put '/**'; put '* Check that the physical file exists'; put '*/'; put '%if %sysfunc(fileexist(&directory/&filename)) ne 1 %then %do;'; put '%put %str(WARN)ING: FILE *&directory/&filename* NOT FOUND!;'; put '%return;'; put '%end;'; put '%if &stptype=1 %then %do;'; put '/* type 1 STP - where code is stored on filesystem */'; put '%if %sysevalf(&sysver lt 9.2) %then %do;'; put '%put %str(WARN)ING: Version 9.2 or later required;'; put '%return;'; put '%end;'; put '/* check directory object (where 9.2 source code reference is stored) */'; put 'data _null_;'; put 'length id $20 dirtype $256;'; put 'rc=metadata_resolve("&directory",dirtype,id);'; put 'call symputx(''checkdirtype'',dirtype,''l'');'; put 'run;'; put '%if &checkdirtype ne Directory %then %do;'; put '%mm_getdirectories(path=&directory,outds=&outds ,mDebug=&mDebug)'; put '%if %mf_nobs(&outds)=0 or %sysfunc(exist(&outds))=0 %then %do;'; put '%put %str(WARN)ING: The directory object does not exist for &directory;'; put '%return;'; put '%end;'; put '%end;'; put '%else %do;'; put 'data &outds;'; put 'directoryuri="&directory";'; put 'run;'; put '%end;'; put 'data &outds (keep=stpuri prompturi fileuri texturi);'; put 'length stpuri prompturi fileuri texturi serveruri $256 ;'; put 'if _n_=1 then call missing (of _all_);'; put 'set &outds;'; put '/* final checks on uris */'; put 'length id $20 type $256;'; put '__rc=metadata_resolve("&treeuri",type,id);'; put 'if type ne ''Tree'' then do;'; put 'putlog "%str(WARN)ING: Invalid tree URI: &treeuri";'; put 'stopme=1;'; put 'end;'; put '__rc=metadata_resolve(directoryuri,type,id);'; put 'if type ne ''Directory'' then do;'; put 'putlog "%str(WARN)ING: Invalid directory URI: " directoryuri;'; put 'stopme=1;'; put 'end;'; put '/* get server info */'; put '__rc=metadata_resolve("&server",type,serveruri);'; put 'if type ne ''LogicalServer'' then do;'; put '__rc=metadata_getnobj("omsobj:LogicalServer?@Name=''&server''",1,serveruri);'; put 'if serveruri='''' then do;'; put 'putlog "%str(WARN)ING: Invalid server: &server";'; put 'stopme=1;'; put 'end;'; put 'end;'; put 'if stopme=1 then do;'; put 'putlog (_all_)(=);'; put 'stop;'; put 'end;'; put '/* create empty prompt */'; put 'rc1=METADATA_NEWOBJ(''PromptGroup'',prompturi,''Parameters'');'; put 'rc2=METADATA_SETATTR(prompturi, ''UsageVersion'', ''1000000'');'; put 'rc3=METADATA_SETATTR(prompturi, ''GroupType'',''2'');'; put 'rc4=METADATA_SETATTR(prompturi, ''Name'',''Parameters'');'; put 'rc5=METADATA_SETATTR(prompturi, ''PublicType'',''Embedded:PromptGroup'');'; put 'GroupInfo='; put '"";'; put 'rc6 = METADATA_SETATTR(prompturi, ''GroupInfo'',groupinfo);'; put 'if sum(of rc1-rc6) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating prompt.";'; put 'if prompturi ne . then do;'; put 'putlog '' Removing orphan: '' prompturi;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'put rc=;'; put 'end;'; put 'stop;'; put 'end;'; put '/* create a file uri */'; put 'rc7=METADATA_NEWOBJ(''File'',fileuri,''SP Source File'');'; put 'rc8=METADATA_SETATTR(fileuri, ''FileName'',"&filename");'; put 'rc9=METADATA_SETATTR(fileuri, ''IsARelativeName'',''1'');'; put 'rc10=METADATA_SETASSN(fileuri, ''Directories'',''MODIFY'',directoryuri);'; put 'if sum(of rc7-rc10) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating file.";'; put 'if fileuri ne . then do;'; put 'putlog '' Removing orphans:'' prompturi fileuri;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'rc = METADATA_DELOBJ(fileuri);'; put 'put (_all_)(=);'; put 'end;'; put 'stop;'; put 'end;'; put '/* create a TextStore object */'; put 'rc11= METADATA_NEWOBJ(''TextStore'',texturi,''Stored Process'');'; put 'rc12= METADATA_SETATTR(texturi, ''TextRole'',''StoredProcessConfiguration'');'; put 'rc13= METADATA_SETATTR(texturi, ''TextType'',''XML'');'; put 'storedtext='''''; put '!!""'; put '!!"";'; put 'rc14= METADATA_SETATTR(texturi, ''StoredText'',storedtext);'; put 'if sum(of rc11-rc14) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating TextStore.";'; put 'if texturi ne . then do;'; put 'putlog '' Removing orphans: '' prompturi fileuri texturi;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'rc = METADATA_DELOBJ(fileuri);'; put 'rc = METADATA_DELOBJ(texturi);'; put 'put (_all_)(=);'; put 'end;'; put 'stop;'; put 'end;'; put '/* create meta obj */'; put 'rc15= METADATA_NEWOBJ(''ClassifierMap'',stpuri,"&stpname");'; put 'rc16= METADATA_SETASSN(stpuri, ''Trees'',''MODIFY'',treeuri);'; put 'rc17= METADATA_SETASSN(stpuri, ''ComputeLocations'',''MODIFY'',serveruri);'; put 'rc18= METADATA_SETASSN(stpuri, ''SourceCode'',''MODIFY'',fileuri);'; put 'rc19= METADATA_SETASSN(stpuri, ''Prompts'',''MODIFY'',prompturi);'; put 'rc20= METADATA_SETASSN(stpuri, ''Notes'',''MODIFY'',texturi);'; put 'rc21= METADATA_SETATTR(stpuri, ''PublicType'', ''StoredProcess'');'; put 'rc22= METADATA_SETATTR(stpuri, ''TransformRole'', ''StoredProcess'');'; put 'rc23= METADATA_SETATTR(stpuri, ''UsageVersion'', ''1000000'');'; put 'rc24= METADATA_SETATTR(stpuri, ''Desc'', "&stpdesc");'; put '/* tidy up if err */'; put 'if sum(of rc15-rc24) ne 0 then do;'; put 'putlog "%str(WARN)ING: Issue creating STP.";'; put 'if stpuri ne . then do;'; put 'putlog '' Removing orphans: '' prompturi fileuri texturi stpuri;'; put 'rc = METADATA_DELOBJ(prompturi);'; put 'rc = METADATA_DELOBJ(fileuri);'; put 'rc = METADATA_DELOBJ(texturi);'; put 'rc = METADATA_DELOBJ(stpuri);'; put 'put (_all_)(=);'; put 'end;'; put 'end;'; put 'else do;'; put 'fullpath=cats(''_program='',treepath,"/&stpname");'; put 'putlog "NOTE: Stored Process Created!";'; put 'putlog "NOTE- "; putlog "NOTE-"; putlog "NOTE-" fullpath;'; put 'putlog "NOTE- "; putlog "NOTE-";'; put 'end;'; put 'output;'; put 'stop;'; put 'run;'; put '%end;'; put '%else %if &stptype=2 %then %do;'; put '/* type 2 stp - code is stored in metadata */'; put '%if %sysevalf(&sysver lt 9.3) %then %do;'; put '%put %str(WARN)ING: SAS version 9.3 or later required to create type2 STPs;'; put '%return;'; put '%end;'; put '/* check we have the correct ServerContext */'; put '%mm_getservercontexts(outds=contexts)'; put '%local serveruri; %let serveruri=NOTFOUND;'; put 'data _null_;'; put 'set contexts;'; put 'where upcase(servername)="%upcase(&server)";'; put 'call symputx(''serveruri'',serveruri);'; put 'run;'; put '%if &serveruri=NOTFOUND %then %do;'; put '%put %str(WARN)ING: ServerContext *&server* not found!;'; put '%return;'; put '%end;'; put '/**'; put '* First, create a Hello World type 2 stored process'; put '*/'; put 'filename &frefin temp;'; put 'data _null_;'; put 'file &frefin;'; put 'treeuri=quote(symget(''treeuri''));'; put 'serveruri=quote(symget(''serveruri''));'; put 'stpdesc=quote(symget(''stpdesc''));'; put 'stpname=quote(symget(''stpname''));'; put 'put "$METAREPOSITORY "/'; put '''''/'; put '" "/'; put '" "/'; put '" "/'; put '" "/'; put ''' ''/'; put ''' '' /'; put '" "/'; put '" "/'; put ''' ''/'; put '" "/'; put '""/'; put '"SAS"/'; put '"268435456";'; put 'run;'; put 'filename &frefout temp;'; put 'proc metadata in= &frefin out=&frefout ;'; put 'run;'; put '%if &mdebug=1 %then %do;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile &frefout lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '%end;'; put '/**'; put '* Next, add the source code'; put '*/'; put '%mm_updatestpsourcecode(stp=&tree/&stpname'; put ',stpcode="&directory/&filename"'; put ',mdebug=&mdebug'; put ',minify=&minify)'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: STPTYPE=*&stptype* not recognised!;'; put '%end;'; put '%mend mm_createstp;'; 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 '* 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Create a demo (base engine) library'; put '@details'; put 'Creates the library'; put '@warning This STP self destructs! It will delete itself after a successful run'; put 'to avoid being executed twice (and overwriting actual data)'; put '

SAS Macros

'; put '@li mm_createlibrary.sas'; put '@li mm_createdocument.sas'; put '@li mm_deletedocument.sas'; put '@li mp_abort.sas'; put '@li dc_assignlib.sas'; put '@li mm_deletestp.sas'; put '@li mm_createstp.sas'; put '@li mf_mkdir.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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;'; put '%let dclib=%upcase(DC%substr(%sysevalf(%sysfunc(datetime())/60),3,6));'; put '%let dclibname=Data Controller(&dclib);'; put '%let work=%sysfunc(pathname(work));'; put '%let dcpath=&dcpath/&dclib;'; put '%mf_mkdir(&dcpath)'; put '%mf_mkdir(&work)'; put '%put &=dcpath;'; put '/* check we have physical permissions to the DCLIB folder */'; put 'data _null_;'; put 'file "&dcpath/permTest.txt";'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(User &sysuserid does not have WRITE permissions on physical'; put 'directory: &dcpath )'; put ')'; put 'filename delfile "&dcpath/permTest.txt";'; put 'data _null_;'; put 'rc=fdelete(''delfile'');'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(User &sysuserid could create (but not delete) &dcpath/permTest.txt )'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Unable to write to &dcpath)'; put ')'; put 'data _null_;'; put 'pgm="&_program";'; put 'rootlen=length(trim(pgm))-length("/services/admin/makelib");'; put 'root=substr(pgm,1,rootlen);'; put 'putlog root=;'; put 'call symputx(''deploy_dir'',root);'; put 'run;'; put 'options noquotelenmax ps=max;'; put '/* check we have the admin rights to update the items in the Admin folder */'; put '%mm_createdocument(tree=&deploy_dir/services/admin,name=permTest)'; put '%mm_deletedocument(target=&deploy_dir/services/admin/permTest)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(User &_metaperson does not have WriteMetadata on SAS folder:'; put '&deploy_dir )'; put ')'; put '/**'; put '* Create library and load data'; put '*/'; put '%let mpelibname=Data Controller (&dclib);'; put '%mm_createlibrary('; put 'libname=&mpelibname'; put ',libref=&dclib'; put ',libdesc=Configuration tables for the MacroPeople Data Controller application'; put ',engine=BASE'; put ',tree=&deploy_dir/data'; put ',servercontext=SASApp'; put ',directory=&dcpath'; put ',mDebug=1)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Unable to create &dclib library)'; put ')'; put '/* get direct libref */'; put '%dc_assignlib(READ,&dclib)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Unable to assign &dclib library)'; put ')'; put '/* create an initial settings service (this will be overwritten in the'; put 'data update step)'; put '*/'; put '%let temploc=&work/temp.txt;'; put 'data _null_;'; put 'file "&temploc" ;'; put 'put ''/* Data Controller Precode */'' / / ;'; put 'put '' '';'; put 'put ''options noquotelenmax ps=max;'';'; put 'put ''%global DC_LIBREF DC_LIBNAME;'';'; put 'put '' '';'; put 'put ''/* This metadata library (libref) contains control datasets for DC */'';'; put 'put ''/* If a different libref must be used, configure it below */'';'; put 'put ''%let DC_LIBREF='' "&dclib;";'; put 'put ''%let DC_LIBNAME='' "&mpelibname;";'; put 'put '' '';'; put 'put ''/* get physical path for direct libname - needed to track requests */'';'; put 'put ''data _null_;'';'; put 'put '' length lib_uri up_uri path $256;'';'; put 'put '' call missing (of _all_);'';'; put 'put '' rc=metadata_getnobj("omsobj:SASLibrary?@Libref=''''&dc_libref''''",1,lib_uri);'';'; put 'put '' rc=metadata_getnasn(lib_uri,"UsingPackages",1,up_uri);'';'; put 'put '' rc=metadata_getattr(up_uri,"DirectoryName",path);'';'; put 'put '' call symputx("dc_libloc",path);'';'; put 'put ''run;'';'; put 'put ''libname &DC_LIBREF "&dc_libloc";'';'; put 'put '' '';'; put 'run;'; put '%mm_deletestp(target=&deploy_dir/services/public/Data_Controller_Settings)'; put '%mm_createstp(stpname=Data_Controller_Settings'; put ',filename=temp.txt'; put ',directory=&work'; put ',tree=&deploy_dir/services/public'; put ',Server=SASApp'; put ',stptype=2'; put ',mdebug=1'; put ',stpdesc=Data Controller Configuration'; put ',minify=NO)'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(Issue creating settings stp)'; put ')'; put 'data _null_;'; put 'file _webout;'; put 'put "

Library &dclib successfully assigned

";'; put 'run;'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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_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 ')/*/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="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; put ',"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 "%str(ERR)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 "%str(ERR)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 '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; 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 '%mp_lockanytable(UNLOCK,'; put 'lib=&base_lib,ds=&base_dsn,'; put 'ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%let user=%mf_getUser();'; put '/* no emails yet'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);*/'; put '%end;'; put '%return;'; 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_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 '%put syscc=&syscc;'; put '%if &syscc>0 %then %do;'; put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg);'; put '%end;'; put '/* final check - abort if a lock has appeared on the target table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; 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 '%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'; 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 'data _null_;'; put 'set work.mp_storediffs;'; 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 '%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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs();'; 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 "%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(libref);'; put '/* take current repository */'; put '%local repo repocnt xx;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'put (_all_)(=);'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put &sysmacroname #&libref#;'; put '%if #&libref# ne ## %then %do;'; put '%put &sysmacroname: assigning specific libref, &libref;'; put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; put '%mpe_refreshlibs()'; put '%mpe_refreshtables(&libref)'; put '%end;'; put '%else %do xx=1 %to &repocnt;'; put 'options metarepository=&&repo&xx;'; put '%mpe_refreshlibs()'; put '/* get libs to be ignored */'; put '%local ignorelist;'; put 'proc sql noprint;'; put 'select var_value into: ignorelist'; put 'from &mpelib..MPE_CONFIG'; put 'where var_scope=''DC_CATALOG'''; put 'and var_name="DC_IGNORELIBS"'; put 'and &dc_dttmtfmt. < TX_TO'; put 'and var_active=1;'; put '/* get all libs */'; put '%let libcnt=0;'; put 'data libraries;'; put 'set &mpelib..mpe_datacatalog_libs;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'if index("&ignorelist",''|''!!upcase(trim(libref))!!''|'')=0;'; put 'i+1;'; put 'call symputx(cats(''lib'',i),libref);'; put 'call symputx(''libcnt'',i);'; put 'run;'; put '%local i;'; put '%do i=1 %to &libcnt;'; put '%dc_assignlib(WRITE,&&lib&i)'; put '%mpe_refreshtables(&&lib&i)'; put '%end;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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_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 ')/*/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="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; put ',"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 "%str(ERR)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 "%str(ERR)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 '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; 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 '%mp_lockanytable(UNLOCK,'; put 'lib=&base_lib,ds=&base_dsn,'; put 'ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%let user=%mf_getUser();'; put '/* no emails yet'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);*/'; put '%end;'; put '%return;'; 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_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 '%put syscc=&syscc;'; put '%if &syscc>0 %then %do;'; put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg);'; put '%end;'; put '/* final check - abort if a lock has appeared on the target table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; 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 '%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'; 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 'data _null_;'; put 'set work.mp_storediffs;'; 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 '%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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs();'; 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 "%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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=refreshtablelineage; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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_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 ')/*/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="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; put ',"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 "%str(ERR)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 "%str(ERR)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 '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; 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 '%mp_lockanytable(UNLOCK,'; put 'lib=&base_lib,ds=&base_dsn,'; put 'ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%let user=%mf_getUser();'; put '/* no emails yet'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);*/'; put '%end;'; put '%return;'; 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_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 '%put syscc=&syscc;'; put '%if &syscc>0 %then %do;'; put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg);'; put '%end;'; put '/* final check - abort if a lock has appeared on the target table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; 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 '%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'; 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 'data _null_;'; put 'set work.mp_storediffs;'; 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 '%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 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file refreshtablelineage.sas'; put '@brief updates the table level lineage'; put '@details extracts all sources/targets from every job'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@li bitemporal_dataloader.sas'; put '@li mp_binarycopy.sas'; put '@li mf_getuniquefileref.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '/* get list of libraries */'; put '%let fileref1=%mf_getuniquefileref();'; put 'filename &fileref1 temp;'; put 'proc metadata in='; put '"$METAREPOSITORY'; put 'JobSAS'; put ''; put '8452'; put ''; put ''; put ''; put ''; put ''; put ''; put ''; put ''; put ''; put ''; put ''; put ''; put ''; put '"'; put 'out=&fileref1'; put ';'; put 'run;'; put '/* create an XML map and extract dependencies from response */'; put '%macro getTables(type=);'; put '%local x;'; put '%do x=1 %to 2;'; put '%local dir;'; put '%if &x=1 %then %let dir=Source;'; put '%else %let dir=Target;'; put '%local y;'; put '%do y=1 %to 3;'; put '%local maptype;'; put '%if &y=1 %then %let maptype=ClassifierMap;'; put '%else %if &y=2 %then %let maptype=Select;'; put '%else %if &y=3 %then %let maptype=Join;'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "";'; put 'put "";'; put 'put "/GetMetadataObjects/Objects/Job/JobActivities/TransformationActivi"@;'; put 'put "ty/Steps/TransformationStep/Transformations/&maptype/Classifier"@;'; put 'put "&dir.s/&type";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Job/@Id";'; put 'put "characterstring17";'; put 'put '''';'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Job/@Name";'; put 'put "characterstring128";'; put 'put '''';'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; put 'put "/TransformationActivity/@Id";'; put 'put "characterstring17";'; put 'put '''';'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; put 'put "/TransformationActivity/Steps/TransformationStep/@Id";'; put 'put "characterstring17";'; put 'put '''';'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; put 'put "/TransformationActivity/Steps/TransformationStep/Transformations"@;'; put 'put "/&maptype/@Id";'; put 'put "characterstring17";'; put 'put '''';'; put 'put "";'; put 'put "/GetMetadataObjects/Objects/Job/JobActivities"@;'; put 'put "/TransformationActivity/Steps/TransformationStep/Transformations/"@;'; put 'put "&maptype/Classifier&dir.s/&type/@Id";'; put 'put "characterstring17";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=&fileref1 xmlmap=sxlemap;'; put 'data work.&dir.&type/view=work.&dir.&type;'; put 'set _xml_.&dir.&type;'; put 'length tabletype maptype $16 tabledirection $1;'; put 'jobname=upcase(jobname);'; put 'tabletype="&type";'; put 'maptype="&maptype";'; put 'if "&dir"="Source" then tabledirection="R";'; put 'else tabledirection=''F'';'; put 'run;'; put 'proc append base=work.alldata data=work.&dir.&type;'; put 'run;'; put 'libname _XML_ clear;'; put '%end;'; put '%end;'; put '%mend getTables;'; put '/* list of types:'; put 'https://support.sas.com/documentation/cdl/en/omamodref/63903/HTML/default/viewer.htm#classifiermap.htm'; put '*/'; put '%getTables(type=PhysicalTable)'; put '%getTables(type=ExternalTable)'; put '%getTables(type=QueryTable)'; put '%getTables(type=RelationalTable)'; put '%getTables(type=Report)'; put '%getTables(type=Cube)'; put '%getTables(type=DataTable)'; put '/* remove dups and get tables */'; put 'proc sort data=work.alldata(keep=jobid jobname tableid tabletype tabledirection)'; put 'out=work.sorted nodupkey;'; put 'by _all_;'; put 'run;'; put 'proc sort data=work.sorted(keep=tableid) out=work.tables nodupkey;'; put 'by tableid;'; put 'run;'; put '/* this bit is slow due to lookups but given the different table types'; put 'it was the easiest approach */'; put 'data work.tables2;'; put 'length tablename liburi puri $64 libref schemaname $8 ;'; put 'if _n_=1 then call missing(tablename, liburi, puri, libref, schemaname);'; put 'set work.tables;'; put 'drop rc liburi;'; put 'if metadata_getnasn(tableid,"TablePackage",1,liburi)>0 then do;'; put 'rc= metadata_getattr(liburi, "SchemaName", SchemaName);'; put 'if ^missing(SchemaName) then do;'; put 'if metadata_getnasn(liburi,"UsedByPackages",1,puri)>0 then do;'; put 'rc=metadata_getattr(puri,"Libref",libref);'; put 'end;'; put 'end;'; put 'else rc=metadata_getattr(liburi,"Libref",libref);'; put 'libref=upcase(libref);'; put 'end;'; put 'rc=metadata_getattr(tableid,"Name",tablename);'; put 'tablename=upcase(tablename);'; put 'run;'; put 'proc sql;'; put 'create table work.augmented as'; put 'select a.*'; put ',b.tablename'; put ',b.libref'; put 'from work.sorted a'; put 'left join work.tables2 b'; put 'on a.tableid=b.tableid;'; put 'create table work.mpe_lineage_tabs as'; put 'select distinct'; put 'coalesce(a.jobid,b.jobid) as jobid,'; put 'coalesce(a.jobname,b.jobname) as jobname,'; put 'coalesce(a.tableid,"N/A") as srctableid,'; put 'a.tabletype as srctabletype,'; put 'a.tablename as srctablename,'; put 'coalesce(a.libref,''nolib'') as srclibref,'; put 'coalesce(b.tableid,"N/A") as tgttableid,'; put 'b.tabletype as tgttabletype,'; put 'b.tablename as tgttablename,'; put 'coalesce(b.libref,''nolib'') as tgtlibref'; put 'from work.augmented(where=(tabledirection=''R'')) a'; put 'full join work.augmented(where=(tabledirection=''F'')) b'; put 'on a.jobid=b.jobid'; put ';'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=MPE_LINEAGE_TABS'; put ',append_dsn=MPE_LINEAGE_TABS'; put ',PK=jobid srctableid tgttableid'; put ',etlsource=&_program'; put ',loadtype=TXTEMPORAL'; put ',tech_from=TX_FROM'; put ',tech_to=TX_TO'; put ',dclib=&mpelib'; put ')'; put '%mp_binarycopy(inref=&fileref1, outref=_webout)'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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_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 ')/*/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="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; put ',"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 "%str(ERR)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 "%str(ERR)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 '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; 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 '%mp_lockanytable(UNLOCK,'; put 'lib=&base_lib,ds=&base_dsn,'; put 'ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%let user=%mf_getUser();'; put '/* no emails yet'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);*/'; put '%end;'; put '%return;'; 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_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 '%put syscc=&syscc;'; put '%if &syscc>0 %then %do;'; put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg);'; put '%end;'; put '/* final check - abort if a lock has appeared on the target table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; 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 '%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'; 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 'data _null_;'; put 'set work.mp_storediffs;'; 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 '%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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief Returns the list of previously approved / rejected items.'; put '@details Is filtered according to the groups in MPE_SECURITY.'; put '

SAS Macros

'; put '@li mpe_getvars.sas'; put '@li mpe_getgroups.sas'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 hist=40;'; put '/* load parameters */'; 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 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_>&hist then stop;'; 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(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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_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 mpe_accesscheck('; put 'base_table /* base table to check for */'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%if %index(&outds,.) %then %do;'; put '%local lib ds;'; put '%let lib=%scan(&outds,1,.);'; put '%let ds=%scan(&outds,2,.);'; put '%if %upcase(&lib) ne WORK %then %do;'; put '%mp_abort(msg=outds should be a WORK table'; put ',mac=mpe_accesscheck);'; put '%end;'; put '%end;'; put '%else %let ds=&outds;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing base_table/user access_level)'; put ')'; put '/* ensure any existing table is dropped */'; put '%mp_dropmembers(&ds)'; put '/* create a new table for temp use */'; put 'data; run;'; put '%local tempds; %let tempds=&syslast;'; put '/* overwrite with the list of groups */'; put '%mpe_getgroups(user=&user,outds=&tempds);'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds'; put 'where groupname="&mpeadmins"'; put 'or groupname in'; put '(select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put '& ('; put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ')'; put ');'; put '%put base_table=&base_table;'; put '%put libref=%scan(&base_table,1,.);'; put '%put dsn=%scan(&base_table,2,.);'; put '%put 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 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 '%local isThere;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere>0 %then %do;'; put 'insert into &syslast set alert_user="&from_user";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data emails;'; put 'set 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 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select user_email into: emails separated by ''" "'' from 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 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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_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 mpe_accesscheck('; put 'base_table /* base table to check for */'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%if %index(&outds,.) %then %do;'; put '%local lib ds;'; put '%let lib=%scan(&outds,1,.);'; put '%let ds=%scan(&outds,2,.);'; put '%if %upcase(&lib) ne WORK %then %do;'; put '%mp_abort(msg=outds should be a WORK table'; put ',mac=mpe_accesscheck);'; put '%end;'; put '%end;'; put '%else %let ds=&outds;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing base_table/user access_level)'; put ')'; put '/* ensure any existing table is dropped */'; put '%mp_dropmembers(&ds)'; put '/* create a new table for temp use */'; put 'data; run;'; put '%local tempds; %let tempds=&syslast;'; put '/* overwrite with the list of groups */'; put '%mpe_getgroups(user=&user,outds=&tempds);'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds'; put 'where groupname="&mpeadmins"'; put 'or groupname in'; put '(select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put '& ('; put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ')'; put ');'; put '%put base_table=&base_table;'; put '%put libref=%scan(&base_table,1,.);'; put '%put dsn=%scan(&base_table,2,.);'; put '%put 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 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 msg;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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_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 mpe_accesscheck('; put 'base_table /* base table to check for */'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%if %index(&outds,.) %then %do;'; put '%local lib ds;'; put '%let lib=%scan(&outds,1,.);'; put '%let ds=%scan(&outds,2,.);'; put '%if %upcase(&lib) ne WORK %then %do;'; put '%mp_abort(msg=outds should be a WORK table'; put ',mac=mpe_accesscheck);'; put '%end;'; put '%end;'; put '%else %let ds=&outds;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing base_table/user access_level)'; put ')'; put '/* ensure any existing table is dropped */'; put '%mp_dropmembers(&ds)'; put '/* create a new table for temp use */'; put 'data; run;'; put '%local tempds; %let tempds=&syslast;'; put '/* overwrite with the list of groups */'; put '%mpe_getgroups(user=&user,outds=&tempds);'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds'; put 'where groupname="&mpeadmins"'; put 'or groupname in'; put '(select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put '& ('; put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ')'; put ');'; put '%put base_table=&base_table;'; put '%put libref=%scan(&base_table,1,.);'; put '%put dsn=%scan(&base_table,2,.);'; put '%put 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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_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 ')/*/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="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; put ',"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 "%str(ERR)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 "%str(ERR)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 '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; 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 '%mp_lockanytable(UNLOCK,'; put 'lib=&base_lib,ds=&base_dsn,'; put 'ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%let user=%mf_getUser();'; put '/* no emails yet'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);*/'; put '%end;'; put '%return;'; 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_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 '%put syscc=&syscc;'; put '%if &syscc>0 %then %do;'; put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg);'; put '%end;'; put '/* final check - abort if a lock has appeared on the target table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; 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 '%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'; 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 'data _null_;'; put 'set work.mp_storediffs;'; 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 '%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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 /* base table to check for */'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%if %index(&outds,.) %then %do;'; put '%local lib ds;'; put '%let lib=%scan(&outds,1,.);'; put '%let ds=%scan(&outds,2,.);'; put '%if %upcase(&lib) ne WORK %then %do;'; put '%mp_abort(msg=outds should be a WORK table'; put ',mac=mpe_accesscheck);'; put '%end;'; put '%end;'; put '%else %let ds=&outds;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing base_table/user access_level)'; put ')'; put '/* ensure any existing table is dropped */'; put '%mp_dropmembers(&ds)'; put '/* create a new table for temp use */'; put 'data; run;'; put '%local tempds; %let tempds=&syslast;'; put '/* overwrite with the list of groups */'; put '%mpe_getgroups(user=&user,outds=&tempds);'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds'; put 'where groupname="&mpeadmins"'; put 'or groupname in'; put '(select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put '& ('; put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ')'; put ');'; put '%put base_table=&base_table;'; put '%put libref=%scan(&base_table,1,.);'; put '%put dsn=%scan(&base_table,2,.);'; put '%put 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 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 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 '%local isThere;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere>0 %then %do;'; put 'insert into &syslast set alert_user="&from_user";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data emails;'; put 'set 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 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select user_email into: emails separated by ''" "'' from 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 dc_getservicecode(loc=,outref=);'; put '%mm_getstpcode(tree=&loc'; 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 mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'if type="N" then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; 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;'; 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 '/*'; put 'format values can be up to 32767 wide. SQL joins on such a wide column can'; put 'cause buffer issues. Update ibufsize and reset at the end.'; put '*/'; put '%let ibufsize=%sysfunc(getoption(ibufsize));'; put 'options ibufsize=32767 ;'; 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 '%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=''LIBDS'' then do;'; put 'if exist(value) le 0 then do;'; put 'call symputx(''msg'',"Unable to open staging table: "!!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 '%mp_abort('; put 'iftrue=(&err ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(&msg)'; put ')'; put '/**'; put '* First, extract only relevant formats from the catalog'; put '*/'; put 'proc sql noprint;'; put 'select distinct upcase(fmtname) into: fmtlist separated by '' '' from &libds;'; put '%mp_cntlout(libcat=&libcat,fmtlist=&fmtlist,cntlout=&base_fmts)'; put '/**'; put '* Ensure input table and base_formats have consistent lengths and types'; put '*/'; put '%mddl_sas_cntlout(libds=&template)'; put 'data &inlibds;'; put 'length &delete_col $3;'; put 'if 0 then set &template;'; put 'set &libds;'; put 'if &delete_col='''' then &delete_col=''No'';'; put 'fmtname=upcase(fmtname);'; put 'if missing(type) then do;'; put 'if substr(fmtname,1,1)=''$'' then type=''C'';'; put 'else type=''N'';'; put 'end;'; put 'if type=''N'' then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; 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.fmtname=b.fmtname'; put 'and a.start=b.start'; put 'where b.fmtname is null'; put 'and upcase(a.&delete_col) ne "YES"'; put 'order by fmtname, start;;'; 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.fmtname=b.fmtname'; put 'and a.start=b.start'; put 'where upcase(a.&delete_col)="YES"'; put 'order by fmtname, start;'; 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.fmtname=b.fmtname'; put 'and a.start=b.start'; put 'where upcase(a.&delete_col) ne "YES"'; put 'order by fmtname, start;'; put 'options ibufsize=&ibufsize;'; 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 '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 fmtname start;'; put 'run;'; put 'data &stagedata;'; put 'set &ds1 &outds_mod;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; 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 %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 '%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 ',FMTNAME START'; 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 '%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 '%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 '* 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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(''TABLE'',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;'; 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="&TABLE";'; 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 table)=0)'; put ',mac=&_program'; put ',msg=%str(Missing: difftime orig_libds libds table)'; 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="&TABLE" 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/&TABLE/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/&TABLE/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 */'; put '%let tmplib=%mf_getuniquelibref();'; put 'libname &tmplib "&mpelocapprovals/&TABLE";'; put 'data STAGING_DS;'; put 'set &tmplib..&TABLE;'; 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 if approving */'; 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="&TABLE";'; 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(&table 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(&table 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="&table";'; 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=&TABLE'; 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="&TABLE";'; 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/&TABLE/&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 "&TABLE"'; 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 '%end;'; put 'libname approve "&mpelocapprovals/&TABLE";'; 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/&TABLE/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="&TABLE";'; 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(&table 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(&table 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="&table";'; 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=&TABLE'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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_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 mpe_accesscheck('; put 'base_table /* base table to check for */'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%if %index(&outds,.) %then %do;'; put '%local lib ds;'; put '%let lib=%scan(&outds,1,.);'; put '%let ds=%scan(&outds,2,.);'; put '%if %upcase(&lib) ne WORK %then %do;'; put '%mp_abort(msg=outds should be a WORK table'; put ',mac=mpe_accesscheck);'; put '%end;'; put '%end;'; put '%else %let ds=&outds;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing base_table/user access_level)'; put ')'; put '/* ensure any existing table is dropped */'; put '%mp_dropmembers(&ds)'; put '/* create a new table for temp use */'; put 'data; run;'; put '%local tempds; %let tempds=&syslast;'; put '/* overwrite with the list of groups */'; put '%mpe_getgroups(user=&user,outds=&tempds);'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds'; put 'where groupname="&mpeadmins"'; put 'or groupname in'; put '(select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put '& ('; put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ')'; put ');'; put '%put base_table=&base_table;'; put '%put libref=%scan(&base_table,1,.);'; put '%put dsn=%scan(&base_table,2,.);'; put '%put 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 mf_getuniquename(prefix=MC);'; put '&prefix.%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,32-%length(&prefix))'; put '%mend mf_getuniquename;'; put '%macro mpe_getlabels(type,source,outds=mpe_getlabels);'; put '%local tmpds;'; put '%if &type=COLUMNS %then %do;'; put '%let tmpds=%mf_getuniquename();'; put 'proc contents noprint data=&source'; put 'out=&tmpds(keep=name memlabel label);'; put 'run;'; put 'proc sql ;'; put 'create table &outds as'; put 'select upcase(a.name) as name'; put ',a.memlabel'; put ',coalesce(b.dd_shortdesc,a.label) as desc'; put ',b.dd_longdesc as longdesc'; put 'from &tmpds a'; put 'left join &mpelib..mpe_datadictionary'; put '(where=(&dc_dttmtfmt. < tx_to'; put 'and dd_source ? %upcase("&source")'; put 'and dd_type=''COLUMN'')) b'; put 'on scan(b.dd_source,-1,''.'')=upcase(a.name);'; put '%end;'; put '%mend mpe_getlabels;'; 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_getservicecode(loc=,outref=);'; put '%mm_getstpcode(tree=&loc'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_assignlib;'; put '%macro mm_getgroupmembers('; put 'group /* metadata group for which to bring back members */'; put ',outds=work.mm_getgroupmembers /* output dataset to contain the results */'; put ',emails=NO /* set to yes to bring back emails also */'; put ',id=NO /* set to yes if passing an ID rather than group name */'; put ')/*/STORE SOURCE*/;'; put 'data &outds ;'; put 'attrib uriGrp uriMem GroupId GroupName Group_or_Role MemberName MemberType'; put 'euri email length=$64'; put 'GroupDesc length=$256'; put 'rcGrp rcMem rc i j length=3;'; put 'call missing (of _all_);'; put 'drop uriGrp uriMem rcGrp rcMem rc i j arc ;'; put 'i=1;'; put '* Grab the URI for the first Group ;'; put '%if &id=NO %then %do;'; put 'rcGrp=metadata_getnobj("omsobj:IdentityGroup?@Name=''&group''",i,uriGrp);'; put '%end;'; put '%else %do;'; put 'rcGrp=metadata_getnobj("omsobj:IdentityGroup?@Id=''&group''",i,uriGrp);'; put '%end;'; put '* If Group found, enter do loop ;'; put 'if rcGrp>0 then do;'; put 'call missing (rcMem,uriMem,GroupId,GroupName,Group_or_Role'; put ',MemberName,MemberType);'; put '* get group info ;'; put 'rc = metadata_getattr(uriGrp,"Id",GroupId);'; put 'rc = metadata_getattr(uriGrp,"Name",GroupName);'; put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; put 'rc = metadata_getattr(uriGrp,"Desc",GroupDesc);'; put 'j=1;'; put 'do while (metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; put 'call missing (MemberName, MemberType, email);'; put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; put 'if membertype=''User'' and "&emails"=''YES'' then do;'; put 'if metadata_getnasn(uriMem,"EmailAddresses",1,euri)>0 then do;'; put 'arc=metadata_getattr(euri,"Address",email);'; put 'end;'; put 'end;'; put 'output;'; put 'j+1;'; put 'end;'; put 'end;'; put 'run;'; put '%mend mm_getgroupmembers;'; put '%macro dc_getgroupmembers(group,outds=dc_getgroupmembers);'; put '%mm_getgroupmembers(&group,outds=&outds)'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'if type="N" then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; 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 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 SØREN 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 "%str(ERR)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 "%str(ERR)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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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 '* CLS_FLG - set to 0 if there are no CLS rules (everything should be editable)'; put 'else set to 1 (CLS rules exist)'; 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_dsmeta.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_getlabels.sas'; put '@li mpe_filtermaster.sas'; put '@li mpe_runhook.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '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 '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 ',0 as selectbox_order'; put 'from &lib..&ds'; put 'order by 1;'; 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 'by base_col selectbox_order;'; 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 '%mp_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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_assignlib;'; put '%macro dc_getservicecode(loc=,outref=);'; put '%mm_getstpcode(tree=&loc'; 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 SØREN 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 "%str(ERR)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 "%str(ERR)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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 ')/*/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 msg;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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_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 mpe_accesscheck('; put 'base_table /* base table to check for */'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%if %index(&outds,.) %then %do;'; put '%local lib ds;'; put '%let lib=%scan(&outds,1,.);'; put '%let ds=%scan(&outds,2,.);'; put '%if %upcase(&lib) ne WORK %then %do;'; put '%mp_abort(msg=outds should be a WORK table'; put ',mac=mpe_accesscheck);'; put '%end;'; put '%end;'; put '%else %let ds=&outds;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing base_table/user access_level)'; put ')'; put '/* ensure any existing table is dropped */'; put '%mp_dropmembers(&ds)'; put '/* create a new table for temp use */'; put 'data; run;'; put '%local tempds; %let tempds=&syslast;'; put '/* overwrite with the list of groups */'; put '%mpe_getgroups(user=&user,outds=&tempds);'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds'; put 'where groupname="&mpeadmins"'; put 'or groupname in'; put '(select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put '& ('; put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ')'; put ');'; put '%put base_table=&base_table;'; put '%put libref=%scan(&base_table,1,.);'; put '%put dsn=%scan(&base_table,2,.);'; put '%put 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 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 '%local isThere;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere>0 %then %do;'; put 'insert into &syslast set alert_user="&from_user";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data emails;'; put 'set 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 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select user_email into: emails separated by ''" "'' from 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_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 dc_getservicecode(loc=,outref=);'; put '%mm_getstpcode(tree=&loc'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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_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" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'if type="N" then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; 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_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 msg;'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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'' 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="!!trim(&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 '%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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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;'; 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 'run;'; put '%mp_lockfilecheck(libds=&orig_libds)'; put 'data compare;'; put 'set &libds(drop=&txfrom &txto &processed);'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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_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 mpe_accesscheck('; put 'base_table /* base table to check for */'; put ',outds=med_accesscheck /* WORK table to contain access details */'; put ',user= /* metadata user to check for */'; put ',access_level=APPROVE'; put ');'; put '%if &user= %then %let user=%mf_getuser();'; put '%if %index(&outds,.) %then %do;'; put '%local lib ds;'; put '%let lib=%scan(&outds,1,.);'; put '%let ds=%scan(&outds,2,.);'; put '%if %upcase(&lib) ne WORK %then %do;'; put '%mp_abort(msg=outds should be a WORK table'; put ',mac=mpe_accesscheck);'; put '%end;'; put '%end;'; put '%else %let ds=&outds;'; put '%mp_abort('; put 'iftrue=(%mf_verifymacvars(base_table user access_level)=0)'; put ',mac=bitemporal_dataloader'; put ',msg=%str(Missing base_table/user access_level)'; put ')'; put '/* ensure any existing table is dropped */'; put '%mp_dropmembers(&ds)'; put '/* create a new table for temp use */'; put 'data; run;'; put '%local tempds; %let tempds=&syslast;'; put '/* overwrite with the list of groups */'; put '%mpe_getgroups(user=&user,outds=&tempds);'; put '%if &_debug ge 131 %then %do;'; put 'data _null_;'; put 'set &tempds;'; put 'putlog (_all_)(=);'; put 'run;'; put '%end;'; put 'proc sql;'; put 'create table &outds as'; put 'select * from &tempds'; put 'where groupname="&mpeadmins"'; put 'or groupname in'; put '(select sas_group from &mpelib..mpe_security'; put 'where &dc_dttmtfmt. lt tx_to'; put 'and access_level="&access_level"'; put '& ('; put '(libref="%scan(&base_table,1,.)" and dsn="%scan(&base_table,2,.)")'; put 'or (libref="%scan(&base_table,1,.)" and dsn="*ALL*")'; put 'or (libref="*ALL*")'; put ')'; put ');'; put '%put base_table=&base_table;'; put '%put libref=%scan(&base_table,1,.);'; put '%put dsn=%scan(&base_table,2,.);'; put '%put 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 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 '%local isThere;'; put 'select count(*) into: isThere from &syslast where alert_user="&from_user";'; put '%if &isThere>0 %then %do;'; put 'insert into &syslast set alert_user="&from_user";'; put '%end;'; put '/* if no email / displayname is provided, then extract from metadata */'; put 'data emails;'; put 'set 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 'run;'; put '%local emails;'; put 'proc sql noprint;'; put 'select user_email into: emails separated by ''" "'' from 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_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 dc_getservicecode(loc=,outref=);'; put '%mm_getstpcode(tree=&loc'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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_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" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'if type="N" then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; 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_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 msg;'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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'' 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="!!trim(&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 '%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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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'')'; put 'then ref=symget(''_WEBIN_FILEREF1'');'; put 'else if symexist(''sasjs_tables'') then do;'; put 'rc=filename(''ref'',"%sysfunc(pathname(work))/&dsn.csv");'; put 'ref=''ref'';'; put 'end;'; put 'else ref=''indata1'';'; put 'call symputx(''ref'',ref);'; put 'putlog ref=;'; put 'run;'; put '%mp_binarycopy(inref=&ref, outloc="&dir/_WEBIN_FILEREF1.txt")'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_assignlib;'; 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 '* Only numeric values should remain'; 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;'; put 'length reason_cd $4032 vtype $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 '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 'return;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; 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'''; put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; put 'and 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 '/* 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 '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 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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 '/* 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 when loading format catalogs */'; put 'if LOADTYPE=''FORMAT_CAT'' then BUSKEY=''FMTNAME START'';'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let path=services/lineage; %let service=fetchlineage; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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_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 ')/*/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="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; put ',"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 "%str(ERR)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 "%str(ERR)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 '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; 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 '%mp_lockanytable(UNLOCK,'; put 'lib=&base_lib,ds=&base_dsn,'; put 'ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%let user=%mf_getUser();'; put '/* no emails yet'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);*/'; put '%end;'; put '%return;'; 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_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 '%put syscc=&syscc;'; put '%if &syscc>0 %then %do;'; put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg);'; put '%end;'; put '/* final check - abort if a lock has appeared on the target table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; 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 '%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'; 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 'data _null_;'; put 'set work.mp_storediffs;'; 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 '%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 meta_mapper('; put 'baseds=work.allmap /* base table to contain metamapping (two level) */'; put ', stageds=col_meta /* temp table to append to base*/'; put ', metaid=OMSOBJ:Column\A5HOSDWY.BF00LWQT'; put ', direction=REVERSE /* either REVERSE or FORWARDS */'; put ', level=0 /* system var - show level of nesting */'; put ', job= /* system var - avoid looping same source */'; put ', levelcheck=50 /* system var - avoid going too deep down the rabbit hole */'; put ', append=NO /* system var - when YES means appending within nested loop */'; put ');'; put '%if &level>&levelcheck %then %return;'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '%if &direction=REVERSE %then %do;'; put '%let start=Target;'; put '%let finish=Source;'; put '%end;'; put '%else %do;'; put '%let start=Source;'; put '%let finish=Target;'; put '%end;'; put '%if &append=NO %then %do;'; put 'proc datasets lib=work;'; put 'delete %scan(&baseds,2,.);'; put 'quit;'; put '%let index_statement=(index=(HASH/unique));'; put '%end;'; put '%else %let index_statement=;'; put 'data &stageds &index_statement ;'; put 'length HASH $32'; put 'jobname sourcetablename sourcecolname sourcecoluri'; put 'map_type map_transform targettablename targetcolname targetcoluri'; put 'uri targettableuri tfmuri sourcetableuri scuri tpuri tmpuri mturi $256'; put 'Derived_Rule $500 Marker_ID Name_ID N_Name LibRef engine sourcePublicType'; put 'targetPublicType $64;'; put 'keep HASH jobname sourcetablename sourcecolname sourcecoluri'; put 'map_type map_transform'; put 'targettablename targetcolname targetcoluri Derived_Rule level;'; put '/* proc transpose logic only */'; put 'length sourceshorttablename sourcemembertype sourcelocation'; put 'assoc assocuri name sturi foundrefuri foundfinishuri'; put 'targetshorttablename targetlocation targetmembertype trafoName $256'; put 'sourceshorttableuri sourceshortcoluri checkrdm targetshorttableuri'; put 'targetshortcoluri selected_direction $17'; put 'lturi _location $200;'; put 'call missing (of _all_);'; put '&start.coluri="&METAID";'; put 'level=&level;'; put '/* first get table associated with the column */'; put 'if metadata_getnasn(&start.coluri,''Table'',1,&start.tableuri)=0 then do;'; put 'putlog "ERR" "OR: Table not found";'; put 'stop;'; put 'end;'; put 'rc=metadata_getattr(&start.tableuri,"Name",&start.tablename);'; put 'rc=metadata_getattr(&start.coluri,"Name",&start.colname);'; put 'rc=metadata_getattr(&start.tableuri,''PublicType'',&start.PublicType);'; put 'if (metadata_getnasn(&start.tableuri, "TablePackage",1, tpuri)>0) then'; put 'do;'; put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tpuri,"Engine",engine);'; put 'if missing(libref) then do;'; put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; put 'end;'; put '&start.tablename=cats('; put 'upcase(LibRef),''-'',upcase(engine),''.'',&start.tablename'; put ');'; put 'end;'; put 'else if (&start.PublicType="ExternalFile") then do;'; put 'rc=metadata_getnasn(&start.tableuri, "OwningFile",1, tmpuri);'; put 'rc=metadata_getnasn(tmpuri, "FileRefs",1, tmpuri);'; put 'rc=metadata_getnasn(tmpuri, "FileRefLocations",1, tmpuri);'; put 'rc=metadata_getattr(tmpuri,''FileName'',&start.tablename);'; put 'end;'; put 'else &start.tablename = ''work. ''||trim(lowcase(&start.tablename));'; put '/* now loop the Source / TargetFeatureMaps */'; put 'tfm=1;'; put 'do while(metadata_getnasn(&start.coluri,"&start.FeatureMaps",tfm,tfmuri)>0);'; put 'call missing(derived_rule);'; put 'rc=metadata_getattr(tfmuri,''TransformRole'',map_type);'; put '/* get job and step name */'; put 'if (metadata_getnasn(tfmuri,''AssociatedClassifierMap'',1,tmpuri)<1) then'; put 'do;'; put 'rc=metadata_getnasn(tfmuri,"&finish.Transformations",1,tmpuri);'; put 'rc=metadata_getnasn(tmpuri,''AssociatedClassifierMap'',1,tmpuri);'; put 'end ;'; put 'rc=metadata_getnasn(tmpuri,''Steps'',1,tmpuri);'; put 'rc=metadata_getattr(tmpuri,''Name'',map_transform);'; put 'rc=metadata_getnasn(tmpuri,''Activities'',1,tmpuri);'; put 'rc=metadata_getnasn(tmpuri,''Jobs'',1,tmpuri);'; put 'rc=metadata_getattr(tmpuri,''Name'',jobname);'; put 'if Map_Type = ''DERIVED'' then do;'; put 'if(metadata_getnasn(tfmuri,"SourceCode",1, scuri)>0) then do;'; put '/* standard */'; put 'mturi=tfmuri;'; put 'end;'; put 'else do;'; put '/* some SQL joins store transform rules elsewhere */'; put 'rc=metadata_getnasn(tfmuri,"Feature&start.s",1, tmpuri);'; put 'if (metadata_getnasn(tmpuri,"Variables",1, tmpuri)>0)'; put 'then rc=metadata_getnasn(tmpuri,"OwningTransformation",1, mturi);'; put 'else rc=metadata_getnasn(tfmuri,"Transformation&start.s",1, mturi);'; put 'rc=metadata_getnasn(mturi,"SourceCode",1, scuri);'; put 'end;'; put 'rc=metadata_getattr(scuri,"StoredText",Derived_Rule);'; put 'Derived_Rule = compress(Derived_Rule,''0A''x);'; put '/* loop to generate derived rule (swap ref numbers for col descs) */'; put 'sv=1;'; put 'do while(metadata_getnasn(mturi,"SubstitutionVariables",sv,tmpuri)>0);'; put 'rc=metadata_getattr(tmpuri,"Marker",Marker_ID);'; put 'rc=metadata_getattr(tmpuri,"Name",Name_ID);'; put 'N_Name = compress(scan(Name_ID,2,''-''));'; put 'Derived_Rule=tranwrd('; put 'Derived_Rule,compress(Marker_ID),compress(N_Name)'; put ');'; put 'sv+1;'; put 'end;'; put 'end;'; put '/* get source col attributes */'; put 'fs=1;'; put 'do while(metadata_getnasn(tfmuri,"Feature&finish.s",fs,&finish.coluri)>0);'; put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; put 'rc=metadata_getattr(&finish.tableuri,''PublicType'',&finish.PublicType);'; put 'if (metadata_getnasn(&finish.tableuri,"TablePackage",1,tpuri)>0) then'; put 'do;'; put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tpuri,"Engine",engine);'; put 'if missing(libref) then do;'; put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; put 'end;'; put '&finish.tablename=cats('; put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; put ');'; put 'end;'; put 'else if (&finish.PublicType="ExternalFile") then do;'; put 'rc=metadata_getnasn(&finish.tableuri, "OwningFile",1, tmpuri);'; put 'rc=metadata_getnasn(tmpuri, "FileRefs",1, tmpuri);'; put 'rc=metadata_getnasn(tmpuri, "FileRefLocations",1, tmpuri);'; put 'rc=metadata_getattr(tmpuri,''FileName'',&finish.tablename);'; put 'end;'; put 'else &finish.tablename=compress(''work.''||lowcase(&finish.tablename));'; put '/* do a lookup to see if this record has been loaded before,'; put 'IF base table exists */'; put 'hash=put(md5('; put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; put '),$hex32.);'; put '%if %sysfunc(exist(&baseds)) %then %do;'; put 'set &baseds(keep=hash) key=hash/unique;'; put 'if _iorc_ ne 0 then do;'; put '/* hash did not exist, hence this is a new record */'; put 'output;'; put '_error_=0;'; put 'end;'; put '%end;'; put '%else %do;'; put 'output;'; put '%end;'; put 'fs+1;'; put 'end;'; put 'tfm+1;'; put 'end;'; put '/* No finish URI found - so proceed to see if this is due to transpose */'; put 'if missing(&finish.coluri)'; put 'and (metadata_getnasn(&start.tableuri,"&start.ClassifierMaps",1,tmpuri)>0)'; put 'then do;'; put 'length trafoname $256;'; put 'call missing(trafoName);'; put 'rc=metadata_getattr(tmpuri,''Name'',trafoName);'; put '/* get &finsh.tablename and jobname */'; put 'rc=metadata_getnasn(tmpuri,"Classifier&finish.s",1,&finish.tableuri);'; put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; put '&finish.shorttablename=&finish.tablename;'; put 'rc=metadata_getnasn(tmpuri,''Steps'',1,tmpuri);'; put 'rc=metadata_getnasn(tmpuri,''Activities'',1,tmpuri);'; put 'rc=metadata_getnasn(tmpuri,''Jobs'',1,tmpuri);'; put 'rc=metadata_getattr(tmpuri,''Name'',jobname);'; put 'rc1=1;n1=1;'; put 'do while(rc1>0);'; put 'rc1=metadata_getnasl(&finish.tableuri,n1,assoc);'; put 'if (assoc="Columns") then do;'; put 'rc2=1;n2=1;'; put 'do while(rc2>0 and missing(foundfinishuri));'; put '/* Walk through all column associations: SpecSourceTransformations*/'; put 'rc2=metadata_getnasn(&finish.tableuri,trim(assoc),n2,assocuri);'; put '/* REVERSE */'; put '%if ("&direction." = "REVERSE") %then %do;'; put 'if metadata_getnasn(assocuri,"SpecSourceTransformations",1,sturi)>0'; put 'then do;'; put 'rc=metadata_getattr(sturi,"Name",name);'; put '/* SAS Transpose: varColumns */'; put 'if (name ="varColumns") then do;'; put 'foundfinishuri = "true"; /* do a while exit */'; put 'put "scource colname name=" name;'; put 'put "scource colname uri=" assocuri;'; put '&finish.coluri=assocuri;'; put '&finish.shortcoluri=substr('; put '&finish.coluri,find(&finish.coluri, ''\'')+1'; put ');'; put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; put '&finish.shorttablename=&finish.tablename;'; put 'map_type = "ONETOONE";'; put '/* get MemberType */'; put 'rc=metadata_getattr('; put '&finish.tableuri,"MemberType",&finish.membertype'; put ');'; put '&finish.shorttableuri = substr('; put '&finish.tableuri,find(&finish.tableuri, ''\'')+1'; put ');'; put 'rc=metadata_getattr('; put '&finish.shorttableuri,"PublicType",&finish.publictype'; put ');'; put 'if metadata_getnasn('; put '&finish.shorttableuri,"TablePackage",1,tpuri'; put ')>0'; put 'then do;'; put '/* init LibRef to overwrite previous for &start!!! */'; put 'call missing (LibRef);'; put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tpuri,"Engine",engine);'; put 'if missing(libref) then do;'; put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; put 'end;'; put '&finish.shorttablename=&finish.tablename;'; put '&finish.tablename=cats('; put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; put ');'; put 'end;'; put '/* get SAS Folder location of the table */'; put 'if &finish.publictype eq "Table" then do;'; put 'lturi=&finish.shorttableuri;'; put 'rc=metadata_getnasn(lturi,"Trees",1,lturi);'; put 'rc=metadata_getattr(lturi,"Name",&finish.location);'; put 'tree=1;'; put 'do while (tree>0);'; put 'tree=metadata_getnasn(lturi,"ParentTree",1,lturi);'; put 'if tree > 0 then do;'; put 'rc=metadata_getattr(lturi,"Name",_location);'; put '&finish.location=catx(''/'',_location,&finish.location);'; put 'end;'; put 'end;'; put '&finish.location = ''/''||&finish.location;'; put 'end;'; put 'map_transform = trafoName;'; put 'derived_rule = "Transpose vertical";'; put '/* do a lookup to see if this record has been loaded before,'; put 'IF base table exists */'; put 'hash=put(md5('; put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; put '),$hex32.);'; put '%if %sysfunc(exist(&baseds)) %then %do;'; put 'set &baseds(keep=hash) key=hash/unique;'; put 'if _iorc_ ne 0 then do;'; put '/* hash did not exist, hence this is a new record */'; put 'output;'; put '_error_=0;'; put 'end;'; put '%end;'; put '%else %do;'; put 'output;'; put '%end;'; put 'end; /* (name = "_VALUE_COLUMN") */'; put 'end; /* (metadata_getnasn(assocuri2,"Spec&finish.xxx",1,sturi)>0) */'; put '%end; /* &direction = "REVERSE" */'; put '/* FORWARDS: if TargetFeatureMaps not available: -> target! */'; put '%if ("&direction." = "FORWARDS") %then %do;'; put 'if (metadata_getnasn(assocuri,"TargetFeatureMaps",1,sfuri)<0)'; put 'then do;'; put 'rc=metadata_getattr(assocuri,"Name",name);'; put 'if not missing(assocuri) then do;'; put 'put "target colname name=" name;'; put 'put "target colname uri=" assocuri;'; put '&finish.coluri=assocuri;'; put '&finish.shortcoluri=substr('; put '&finish.coluri,find(&finish.coluri, ''\'')+1'; put ');'; put 'rc=metadata_getattr(&finish.coluri,''Name'',&finish.colname);'; put 'rc=metadata_getnasn(&finish.coluri,''Table'',1,&finish.tableuri);'; put 'rc=metadata_getattr(&finish.tableuri,''Name'',&finish.tablename);'; put '&finish.shorttablename=&finish.tablename;'; put 'map_type = "ONETOMANY";'; put '/* get MemberType */'; put 'rc=metadata_getattr('; put '&finish.tableuri,"MemberType",&finish.membertype'; put ');'; put '&finish.shorttableuri = substr('; put '&finish.tableuri,find(&finish.tableuri, ''\'')+1'; put ');'; put 'rc=metadata_getattr('; put '&finish.shorttableuri,"PublicType",&finish.publictype'; put ');'; put 'if metadata_getnasn('; put '&finish.shorttableuri,"TablePackage",1,tpuri'; put ')>0'; put 'then do;'; put '/* init LibRef to overwrite previous for &start!!! */'; put 'call missing (LibRef);'; put 'rc=metadata_getattr(tpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tpuri,"Engine",engine);'; put 'if missing(libref) then do;'; put 'rc=metadata_getnasn(tpuri, "UsedByPackages",1, tmpuri);'; put 'rc=metadata_getattr(tmpuri,"Libref",LibRef);'; put 'rc=metadata_getattr(tmpuri,"Engine",engine);'; put 'end;'; put '&finish.shorttablename=&finish.tablename;'; put '&finish.tablename=cats('; put 'upcase(LibRef),''-'',upcase(engine),''.'',&finish.tablename'; put ');'; put 'end;'; put '/* get table''s SAS Folder location */'; put 'if &finish.publictype eq "Table" then do;'; put 'lturi=&finish.shorttableuri;'; put 'rc=metadata_getnasn(lturi,"Trees",1,lturi);'; put 'rc=metadata_getattr(lturi,"Name",&finish.location);'; put 'tree=1;'; put 'do while (tree>0);'; put 'tree=metadata_getnasn(lturi,"ParentTree",1,lturi);'; put 'if tree > 0 then do;'; put 'rc=metadata_getattr(lturi,"Name",_location);'; put '&finish.location=catx(''/'',_location,&finish.location);'; put 'end;'; put 'end;'; put '&finish.location = ''/''||&finish.location;'; put 'end;'; put 'map_transform = trafoName;'; put 'derived_rule = "Transpose horizontal";'; put '/* do a lookup to see if this record has been loaded before,'; put 'IF base table exists */'; put 'hash=put(md5('; put 'cats(jobname,sourcecoluri,map_type,map_transform,targetcoluri)'; put '),$hex32.);'; put '%if %sysfunc(exist(&baseds)) %then %do;'; put 'set &baseds(keep=hash) key=hash/unique;'; put 'if _iorc_ ne 0 then do;'; put '/* hash did not exist, hence this is a new record */'; put 'output;'; put '_error_=0;'; put 'end;'; put '%end;'; put '%else %do;'; put 'output;'; put '%end;'; put 'end;'; put 'end;'; put '%end; /* (&direction = "FORWARDS" */'; put 'call missing(assocuri);'; put 'n2+1;'; put 'end; /* while(rc1>0) */'; put 'end; /* (assoc="Columns") */'; put 'call missing(assoc);'; put 'n1+1;'; put 'end; /* while(rc1>0) */'; put 'end; /* missing(&finish.coluri) */'; put '/* ################# end mapping for Transpose flat ################# */'; put 'stop;'; put 'run;'; put 'proc append base=&baseds data=&stageds;'; put 'run;'; put 'data _null_;'; put 'set &stageds;'; put 'call execute(''%meta_mapper(metaid=''!!&finish.coluri'; put '!!",baseds=&baseds"'; put '!!",direction=&direction"'; put '!!",level=%eval(&level+1)"'; put '!!",levelcheck=&levelcheck"'; put '!!",job="!!jobname'; put '!!",append=YES)");'; put 'run;'; put '%mend meta_mapper;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief fetch the metadata and server as dotlang'; put 'Some nice ideas for formatting are available here:'; put 'https://renenyffenegger.ch/notes/tools/Graphviz/examples/index'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mf_getuser.sas'; put '@li bitemporal_dataloader.sas'; put '@li meta_mapper.sas'; put '@version 9.4'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 column_id direction refresh;'; put '/* enable col id and direction to be passed as url params */'; put '%let exist=%sysfunc(exist(work.SASControlTable));'; put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; put '%let max_depth=50;'; put '%put &=inds;'; put 'data _null_;'; put 'length max_depth 8;'; put 'set &inds;'; put 'call symputx(''column_id'',coluri);'; put 'call symputx(''direction'',direction);'; put 'call symputx(''refresh'',refresh);'; put 'if max_depth>0 then call symputx(''max_depth'',max_depth);'; put 'putlog (_all_)(=);'; put 'run;'; put '%put &=max_depth;'; put 'data info;'; put 'length coluri colname taburi tabname liburi libref $256;'; put 'call missing(of _all_);'; put 'if metadata_getattr("&column_id","Name",colname)<0 then do;'; put 'putlog "Col &column_id not found";'; put 'call symputx(''syscc'',''1234'');'; put 'stop;'; put 'end;'; put 'rc=metadata_getnasn("&column_id","Table",1,taburi);'; put 'rc=metadata_getattr(taburi,"Name",tabname);'; put 'rc=metadata_getnasn(taburi,"TablePackage",1,liburi);'; put 'rc=metadata_getattr(liburi,"Libref",libref);'; put 'call symputx(''lib'',libref);'; put 'call symputx(''tab'',tabname);'; put 'call symputx(''col'',colname);'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%macro launcher();'; put '/* check whether a lineage run already taken place */'; put 'proc sql noprint;'; put 'create table existing_data as'; put 'select * from &mpelib..mpe_lineage_cols'; put 'where col_id="&column_id"'; put 'and direction="%substr(&direction,1,1)";'; put '/* no data, so make some, and append it */'; put '%if &sqlobs=0 or &refresh=1 %then %do;'; put '%meta_mapper(metaid=&column_id'; put ', direction=&direction /* either REVERSE or FORWARDS */'; put ', baseds=work.allmap'; put ', levelcheck=%eval(&max_depth-1)'; put ')'; put 'data append;'; put 'length col_id $32 direction $1 modified_by $64;'; put 'retain col_id "&column_id";'; put 'retain direction "%substr(&direction,1,1)";'; put '%global modified_by modified_dttm;'; put '%let modified_dttm=%sysfunc(datetime());'; put 'retain modified_dttm &modified_dttm;'; put 'retain modified_by "%mf_getuser()";'; put '%let modified_by=%mf_getuser();'; put 'set allmap;'; put 'drop hash;'; put 'run;'; put 'proc sort data=append out=appendme nodupkey;'; put 'by col_id direction sourcecoluri targetcoluri map_type map_transform;'; put 'run;'; put '%bitemporal_dataloader(base_lib=&mpelib'; put ',base_dsn=mpe_lineage_cols'; put ',append_dsn=appendme'; put ',PK=col_id direction sourcecoluri targetcoluri map_type map_transform'; put ',etlsource=&_program'; put ',loadtype=UPDATE'; put ',close_vars=col_id direction'; put ',dclib=&mpelib'; put ')'; put '%end;'; put '%else %do;'; put '/* data exists, so use it */'; put 'data work.allmap(drop=modified_by modified_dttm);'; put 'set existing_data(drop=col_id direction );'; put 'if _n_=1 then do;'; put 'call symputx(''modified_by'',modified_by,''g'');'; put 'call symputx(''modified_dttm'',modified_dttm,''g'');'; put 'end;'; put 'run;'; put '%end;'; put '%mend launcher;'; put '%launcher()'; put '/* generate graphviz */'; put 'filename tmp "%sysfunc(pathname(work))\GraphViz%sysfunc(datetime()).txt"'; put 'lrecl=10000 encoding=''utf-8'';'; put 'options noquotelenmax;'; put '%macro fcmpconditional();'; put '%if &sysver=9.3 and &sysscp=WIN %then %do;'; put '/* nothing - as the FCMP function causes an exception err in this case */'; put '%end;'; put '%else %do;'; put '/* prepare quick func to enable word wrapping of transformations */'; put 'options cmplib=work.funcs;'; put 'proc fcmp outlib=work.funcs.macrocore;'; put 'function wordwrap(str $,cols,splitchar $) $;'; put 'length outstr $32767 curstr $5000;'; put 'base=0;'; put 'put str=;'; put 'do i=1 to countw(str,'' '','' '');'; put 'curstr=scan(str,i,'' '');'; put 'outstr=trim(outstr)!!'' ''!!curstr;'; put 'base=base+length(curstr)+1;'; put 'if base>cols then do;'; put 'outstr=cats(outstr,splitchar);'; put 'base=0;'; put 'end;'; put 'end;'; put 'return (outstr);'; put 'endsub;'; put 'run;'; put '%end;'; put '%mend fcmpconditional;'; put '%fcmpconditional()'; put '/* prepare label with metadata */'; put 'proc sql;'; put 'create table jobs as select distinct jobname as job from work.allmap ;'; put 'create table cols as select distinct upcase(scan(cat,1,''.-'')) as tmplib'; put ',cats(calculated tmplib,''.'',upcase(scan(cat,2,''.''))) as tmptab'; put ',cats(calculated tmptab,''.'',upcase(col)) as col'; put 'from (select sourcetablename as cat, sourcecolname as col from work.allmap'; put 'union select targettablename as cat, targetcolname as col from work.allmap )'; put 'having findc(tmplib,''/\'')=0 and tmplib ne ''WORK'';'; put 'create table files as select distinct file'; put 'from (select sourcetablename as file from work.allmap'; put 'where findc(sourcetablename,''/\'')>0'; put 'union select targettablename as file from work.allmap'; put 'where findc(targettablename,''/\'')>0'; put ') ;'; put 'create table libs as select distinct tmplib as lib from cols;'; put 'create table tabs as select distinct tmptab as tab from cols;'; put 'data _null_;'; put 'file tmp;'; put 'put ''digraph G {'; put 'concentrate=true;'; put 'node [style=filled,shape=plain];'; put 'labelloc = "t";'; put ''';'; put 'label= "label=<'; put ''; put ''; put ''; put ''; put ''; put ''; put '
&direction Lineage for &col
Library:
&libGenerated by:&modified_by
Table:&tabGenerated on:'; put '%sysfunc(round(&modified_dttm,2),datetime19.)
>";'; put 'put label;'; put 'if "FORWARD"="&direction" then call symputx(''dirdesc'',''Impacted'');'; put 'else call symputx(''dirdesc'',''Source'');'; put '/* close out if there is no lineage */'; put 'if nobs=0 then put ''x [label="No lineage found" shape=Mdiamond]}'';'; put 'set work.allmap nobs=nobs;'; put 'stop;'; put 'run;'; put 'data graphviz1;'; put 'file tmp mod;'; put 'length line arrow $1000 stab ttab slib tlib $100 sbox tbox tooltip $500;'; put 'if _n_=1 then call missing(line, sbox, tbox, tooltip);'; put 'set work.allmap ;'; put 'sourceid=sourcecoluri;'; put 'targetid=targetcoluri;'; put 'if index(sourcetablename,'':'') then do;'; put 'slib='''';'; put 'stab=sourcetablename;'; put 'end;'; put 'else if map_transform=''File Reader'' then do;'; put 'stab=scan(sourcetablename,-1,''/\'');'; put 'slib=subpad(sourcetablename,1,length(sourcetablename)-length(stab));'; put 'end;'; put 'else do;'; put 'slib=scan(sourcetablename,1,''.'');'; put 'stab=scan(sourcetablename,2,''.'');'; put 'end;'; put 'if index(targettablename,'':'') then do;'; put 'tlib='''';'; put 'ttab=targettablename;'; put 'end;'; put 'else if map_transform=''File Reader'' then do;'; put 'ttab=scan(targettablename,-1,''/\'');'; put 'tlib=subpad(targettablename,1,length(targettablename)-length(ttab));'; put 'end;'; put 'else do;'; put 'tlib=scan(targettablename,1,''.'');'; put 'ttab=scan(targettablename,2,''.'');'; put 'end;'; put 'if trim(derived_rule) ne '''' then do;'; put 'derived_rule=tranwrd(derived_rule,''"'',''\"'');'; put '%macro quick();'; put '%if "&sysver"="9.3" and "&sysscp"="WIN" %then %do;'; put 'arrow=cats(''[color=Red, fontcolor=Red, penwidth="3", arrowsize="2",'''; put ',''label=">>'',map_transform,''<<\n'',derived_rule,''"]'');'; put '%end;'; put '%else %do;'; put 'arrow=cats(''[color=Red, fontcolor=Red, penwidth="3", arrowsize="2",'''; put ',''label=">>'',map_transform,''<<\n'',wordwrap(derived_rule,24,''\n''),''"]'');'; put '%end;'; put '%mend quick; %quick()'; put 'end;'; put 'else arrow=cats(''[ label="'',map_transform,''"]'');'; put 'source=quote(strip(sourceid));'; put 'target=quote(strip(targetid));'; put 'put '' '' source '' -> '' target arrow;'; put 'run;'; put 'data graphviz2 (keep=id tab lib col tooltip map_transform);'; put 'set graphviz1 (rename=(source=id stab=tab slib=lib sourcecolname=col ))'; put 'graphviz1 (rename=(target=id ttab=tab tlib=lib targetcolname=col ));'; put 'if upcase(lib)=:''WORK'' then tooltip=cats('',tooltip="Job:'',jobname,''"'');'; put 'else tooltip='''';'; put 'run;'; put 'proc sort data=graphviz2 out=graphviz3 noduprec; by _all_; run;'; put 'data _null_;'; put 'length shape $100 ;'; put 'set graphviz3 end=last;'; put 'file tmp mod;'; put 'tab=tranwrd(tab,''\'',''\\'');'; put 'if upcase(lib)=:''WORK'' then do;'; put 'lib=''WORK'';'; put 'put id ''[label=<
Table'' tab'; put '''
Column'' col'; put '''
> ,fillcolor=lightgrey, shape=" " '' tooltip '']'';'; put 'end;'; put 'else if map_transform=''File Reader'' then do;'; put 'put id ''[label="Location: '' lib ''\nFile:'' tab ''\nColumn: '' col'; put '''",shape=parallelogram, fillcolor="#00b300"'' tooltip '']'';'; put 'end;'; put 'else do;'; put 'engine=scan(lib,2,''-'');'; put 'lib=scan(lib,1,''-'');'; put 'if engine=''BASE'' then fillcolour=''lightyellow '';'; put 'else fillcolour=''lightblue'';'; put 'shape='' shape=cylinder, fillcolor= ''!!fillcolour;'; put 'put id ''[label=<
Library'' lib'; put '''
Table'' tab'; put '''
Column'' col'; put '''
> ,'' shape tooltip '']'';'; put 'end;'; put 'run;'; put 'data _null_;'; put 'file tmp mod;'; put '/* close out if records exist */'; put 'set work.allmap;'; put 'put ''}'';'; put 'stop;'; put 'run;'; put 'data flatdata;'; put 'length type $8 item $256;'; put 'keep type item;'; put 'set cols(in=cols) tabs(in=tabs) files(in=files) libs(in=libs) jobs(in=jobs);'; put 'if cols then do;'; put 'type=''Column'';'; put 'item=col;'; put 'end;'; put 'else if tabs then do;'; put 'type=''Table'';'; put 'item=tab;'; put 'end;'; put 'else if files then do;'; put 'type=''File'';'; put 'item=file;'; put 'end;'; put 'else if libs then do;'; put 'type=''Library'';'; put 'item=lib;'; put 'end;'; put 'else if jobs then do;'; put 'type=''Job'';'; put 'item=job;'; put 'end;'; put 'run;'; put 'data fromSAS;'; put 'infile tmp end=last;'; put 'file tmp;'; put 'input ;'; put 'string=_infile_;'; put 'put string;'; put 'run;'; put 'filename tmp clear;'; put '/* get list of IDs so frontend can make a clickable list */'; put 'proc sql;'; put 'create table ids as select distinct id from graphviz3;'; put '%webout(OPEN)'; put '%webout(OBJ,fromSAS)'; put '%webout(OBJ,ids,dslabel=clickableIDS)'; put '%webout(OBJ,info)'; put '%webout(OBJ,flatdata)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=fetchtablelineage; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file'; put '@brief fetch Table Lineage for SAS 9'; put 'Some nice ideas for formatting are available here:'; put 'https://renenyffenegger.ch/notes/tools/Graphviz/examples/index'; put '

SAS Macros

'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 table_id direction graphOrientation;'; put '/* enable table id and direction to be passed as url params */'; put '%let exist=%sysfunc(exist(work.SASControlTable));'; put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; put '%put &=inds;'; put '%let max_depth=50;'; put 'data _null_;'; put 'length max_depth $ 8;'; put 'set &inds;'; put 'call symputx(''table_id'',table_id);'; put 'call symputx(''direction'',direction);'; put 'call symputx(''graphOrientation'',''LR'');'; put 'if max_depth>''0'' then call symputx(''max_depth'',max_depth);'; put 'putlog (_all_)(=);'; put 'run;'; put '%put &=max_depth;'; put '%mp_abort(iftrue= (&table_id=undefined)'; put ',mac=&_program'; put ',msg=%str(Table_id UNDEFINED provided from frontend)'; put ')'; put 'data work.info;'; put 'length tableid tablename liburi $64 libref $8;'; put 'drop rc;'; put 'tableid="&table_id";'; put 'call missing(liburi);'; put 'rc=metadata_getattr(tableid,"Name",tablename);'; put 'if metadata_getnasn(tableid,"TablePackage",1,liburi)>0 then do;'; put 'rc=metadata_getattr(liburi,"Libref",libref);'; put 'libref=upcase(libref);'; put 'end;'; put 'tablename=upcase(tablename);'; put 'if missing(libref) then libref=''nolib'';'; put 'call symputx(''libds'',cats(libref,''.'',tablename));'; put 'run;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&_program..sas'; put ',msg=%str(syscc=&syscc)'; put ')'; put '%let src=%sysfunc(ifc(&direction=REVERSE,src,tgt));'; put '%let tgt=%sysfunc(ifc(&direction=REVERSE,tgt,src));'; put 'data work.sourcetable/view=work.sourcetable;'; put 'set &mpelib..MPE_LINEAGE_TABS;'; put 'where &dc_dttmtfmt. lt tx_to ;'; put 'drop tx_from tx_to;'; put 'run;'; put '%macro recursivejoin(iter=0'; put ',maxiter=&max_depth /* avoid infinite loop */'; put ');'; put '%if &iter=0 %then %do;'; put 'data work.baseds ;'; put 'retain level 0;'; put 'set work.sourcetable;'; put 'where &tgt.tableid="&table_id";'; put 'run;'; put '%let iter=1;'; put 'proc sql;'; put '%end;'; put '%else %if &iter>&maxiter %then %return;'; put 'create table work.appendds as'; put 'select distinct &iter as level'; put ',b.*'; put 'from work.baseds a'; put 'left join work.sourcetable b'; put 'on a.&src.tableid=b.&tgt.tableid'; put 'where a.level=%eval(&iter.-1)'; put 'and b.&src.tableid is not null'; put 'and a.&src.tableid is not null'; put 'and a.&src.tableid ne ''N/A'';'; put '%let obs=&sqlobs;'; put 'insert into work.baseds select * from work.appendds;'; put '%if &obs %then %do;'; put '%recursivejoin(iter=%eval(&iter.+1) )'; put '%end;'; put '%mend recursivejoin;'; put '%recursivejoin()'; put 'proc sql;'; put 'create table work.final as'; put 'select distinct *'; put 'from work.baseds(drop=level)'; put 'where jobid is not null;'; put '/* generate graphviz */'; put 'filename tmp "%sysfunc(pathname(work))\GraphViz%sysfunc(datetime()).txt"'; put 'lrecl=10000 encoding=''utf-8'';'; put '/* prepare label with metadata */'; put 'proc sql;'; put 'create table work.jobs as'; put 'select distinct jobid'; put ', jobname'; put ',quote(cats(jobid))||'' [label=''||quote(cats(jobname))||''];'' as line'; put 'from work.final;'; put 'create table work.tables as'; put 'select distinct &src.tableid as tableid'; put ',&src.tablename as tablename'; put ',&src.libref as libref'; put 'from work.final'; put 'where &src.tableid ne ''N/A'''; put 'union select'; put '&tgt.tableid as tableid'; put ',&tgt.tablename as tablename'; put ',&tgt.libref as libref'; put 'from work.final'; put 'where &tgt.tableid ne ''N/A'''; put 'order by libref, tablename;'; put 'create table idlookup as'; put 'select tableid as metaid'; put ',''TABLE'' as metatype'; put ',cats(libref,''.'',tablename) as metaname'; put 'from work.tables'; put 'union'; put 'select jobid as metaid'; put ',''JOB'' as metatype'; put ',jobname as metaname'; put 'from work.jobs'; put 'order by metaid;'; put 'data CRAYONS;'; put 'length attribute value $8;'; put 'infile datalines4 dsd;'; put 'input attribute value;'; put 'call symput(cats(''col'',_n_),quote(trim(value)));'; put 'datalines;'; put 'red,#e6194b'; put 'green,#3cb44b'; put 'blue,#4363d8'; put 'orange,#f58231'; put 'purple,#911eb4'; put 'cyan,#46f0f0'; put 'magenta,#f032e6'; put 'lime,#bcf60c'; put 'pink,#fabebe'; put 'teal,#008080'; put 'lavender,#e6beff'; put 'brown,#9a6324'; put 'beige,#fffac8'; put 'maroon,#800000'; put 'mint,#aaffc3'; put 'olive,#808000'; put 'apricot,#ffd8b1'; put 'navy,#000075'; put 'gray,#808080'; put 'black,#00000'; put 'yellow,#ffe119'; put 'white,#ffffff'; put ';;;;'; put 'run;'; put 'proc sort data=work.tables out=work.libs nodupkey;'; put 'by libref;'; put 'run;'; put 'data work.alllibs;'; put 'set work.libs end=last;'; put 'length line $1000. ;'; put 'crayon=symget(cats(''col'',_n_));'; put 'call symputx(libref,crayon);'; put 'if _n_=1 then do;'; put 'line=''subgraph cluster_libs { label="Libraries";'';output;'; put 'end;'; put 'line=cats(libref)!!'' [label=''||quote(cats(libref))||''; style="filled"; color='''; put '||cats(crayon)||'', shape = Mrecord, fontcolor=white]'';output;'; put 'if last then do;'; put 'line=''}'';output;'; put 'end;'; put 'run;'; put 'data alltables;'; put 'length line $1000. ;'; put 'set work.tables;'; put 'crayon=symget(libref);'; put 'line=quote(cats(tableid))||'' [label="''||cats(tablename)'; put '!!''", color=''!!cats(crayon)'; put '!!'', shape=cylinder,style=filled,fontcolor=white];'';'; put 'output;'; put 'run;'; put 'proc sort'; put 'data=final(keep=&src.tableid jobid &src.libref) out=&src.relations nodupkey;'; put 'by &src.tableid jobid;'; put 'proc sort'; put 'data=final(keep=&tgt.tableid jobid &tgt.libref) out=&tgt.relations nodupkey;'; put 'by jobid &tgt.tableid;'; put 'run;'; put 'data srcrelations;'; put 'set srcrelations;'; put 'length line $1000;'; put 'where srctableid ne ''N/A'';'; put 'line=cats('; put '''"'',cats(srctableid),''" -> "'',jobid,''" [color='',symget(srclibref),''];'''; put ');'; put 'data tgtrelations;'; put 'set tgtrelations;'; put 'where tgttableid ne ''N/A'';'; put 'length line $1000;'; put 'line=cats('; put '''"'',cats(jobid),''" -> "'',tgttableid,''" [color='',symget(tgtlibref),''];'''; put ');'; put 'run;'; put 'data finalfinal;'; put 'set work.alllibs(keep=line) work.alltables (keep=line) work.jobs(keep=line)'; put 'work.&src.relations(keep=line) work.&tgt.relations(keep=line) end=last;'; put 'if _N_ = 1 then do;'; put 'firstline=line;'; put 'line=''strict digraph "''!!"&libds"!!''" {''; output;'; put 'line="rankdir=&graphOrientation; nodesep=0.5; node [shape = octagon];";output;'; put 'line=firstline;'; put 'end;'; put 'output;'; put 'if last then do;'; put 'line=''}'';'; put 'output;'; put 'end;'; put 'drop firstline;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,finalfinal)'; put '%webout(OBJ,info)'; put '%webout(OBJ,final,dslabel=flatdata)'; put '%webout(OBJ,idlookup)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=getmetacols; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getcols('; put 'tableuri='; put ',outds=work.mm_getcols'; put ')/*/STORE SOURCE*/;'; put 'data &outds;'; put 'keep col: SAS:;'; put 'length assoc uri coluri colname coldesc SASColumnType SASFormat SASInformat'; put 'SASPrecision SASColumnLength $256;'; put 'call missing (of _all_);'; put 'uri=symget(''tableuri'');'; put 'n=1;'; put 'do while (metadata_getnasn(uri,''Columns'',n,coluri)>0);'; put 'rc3=metadata_getattr(coluri,"Name",colname);'; put 'rc3=metadata_getattr(coluri,"Desc",coldesc);'; put 'rc4=metadata_getattr(coluri,"SASColumnType",SASColumnType);'; put 'rc5=metadata_getattr(coluri,"SASFormat",SASFormat);'; put 'rc6=metadata_getattr(coluri,"SASInformat",SASInformat);'; put 'rc7=metadata_getattr(coluri,"SASPrecision",SASPrecision);'; put 'rc8=metadata_getattr(coluri,"SASColumnLength",SASColumnLength);'; put 'output;'; put 'call missing(colname,coldesc,SASColumnType,SASFormat,SASInformat'; put ',SASPrecision,SASColumnLength);'; put 'n+1;'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by colname;'; put 'run;'; put '%mend mm_getcols;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getmetacols.sas'; put '@brief List the cols as defined in metadata'; put '@details Provide a table uri and get list of columns'; put '

SAS Macros

'; put '@li mm_getcols.sas'; put '@li mp_abort.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 tableuri;'; put '%let exist=%sysfunc(exist(work.SASControlTable));'; put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; put '%put &=inds;'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''tableuri'',scan(tableuri,-1,''\''));'; put 'run;'; put '%put &=tableuri;'; put '/* load parameters */'; put '%mm_getcols(tableuri=&tableuri,outds=metacols)'; put 'data out;'; put 'set metacols;'; put 'keep col:;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,out,dslabel=metacols)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=getmetatables; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_gettables('; put 'uri='; put ',outds=work.mm_gettables'; put ',getauth=YES'; put ')/*/STORE SOURCE*/;'; put 'data &outds;'; put 'length uri serveruri conn_uri domainuri libname ServerContext AuthDomain'; put 'path_schema usingpkguri type tableuri $256 id $17'; put 'libdesc $200 libref engine $8 IsDBMSLibname IsPreassigned $1'; put 'tablename $50 /* metadata table names can be longer than $32 */'; put ';'; put 'keep libname libdesc libref engine ServerContext path_schema AuthDomain'; put 'tableuri tablename IsPreassigned IsDBMSLibname id;'; put 'call missing (of _all_);'; put 'uri=symget(''uri'');'; put 'rc= metadata_getattr(uri, "Name", libname);'; put 'if rc <0 then do;'; put 'put ''The library is not defined in this metadata repository.'';'; put 'stop;'; put 'end;'; put 'rc= metadata_getattr(uri, "Desc", libdesc);'; put 'rc= metadata_getattr(uri, "Libref", libref);'; put 'rc= metadata_getattr(uri, "Engine", engine);'; put 'rc= metadata_getattr(uri, "IsDBMSLibname", IsDBMSLibname);'; put 'rc= metadata_getattr(uri, "IsPreassigned", IsPreassigned);'; put 'rc= metadata_getattr(uri, "Id", Id);'; put '/*** Get associated ServerContext ***/'; put 'rc= metadata_getnasn(uri, "DeployedComponents", 1, serveruri);'; put 'if rc > 0 then rc2= metadata_getattr(serveruri, "Name", ServerContext);'; put 'else ServerContext='''';'; put '/*** If the library is a DBMS library, get the Authentication Domain'; put 'associated with the DBMS connection credentials ***/'; put 'if IsDBMSLibname="1" and "&getauth"=''YES'' then do;'; put 'rc= metadata_getnasn(uri, "LibraryConnection", 1, conn_uri);'; put 'if rc>0 then do;'; put 'rc2= metadata_getnasn(conn_uri, "Domain", 1, domainuri);'; put 'if rc2>0 then rc3= metadata_getattr(domainuri, "Name", AuthDomain);'; put 'end;'; put 'end;'; put '/*** Get the path/database schema for this library ***/'; put 'rc=metadata_getnasn(uri, "UsingPackages", 1, usingpkguri);'; put 'if rc>0 then do;'; put 'rc=metadata_resolve(usingpkguri,type,id);'; put 'if type=''Directory'' then'; put 'rc=metadata_getattr(usingpkguri, "DirectoryName", path_schema);'; put 'else if type=''DatabaseSchema'' then'; put 'rc=metadata_getattr(usingpkguri, "Name", path_schema);'; put 'else path_schema="unknown";'; put 'end;'; put '/*** Get the tables associated with this library ***/'; put '/*** If DBMS, tables are associated with DatabaseSchema ***/'; put 'if type=''DatabaseSchema'' then do;'; put 't=1;'; put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; put 'if ntab>0 then do t=1 to ntab;'; put 'tableuri='''';'; put 'tablename='''';'; put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; put 'output;'; put 'end;'; put 'else put ''Library '' libname '' has no tables registered'';'; put 'end;'; put 'else if type in (''Directory'',''SASLibrary'') then do;'; put 't=1;'; put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; put 'if ntab>0 then do t=1 to ntab;'; put 'tableuri='''';'; put 'tablename='''';'; put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; put 'output;'; put 'end;'; put 'else put ''Library '' libname '' has no tables registered'';'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by tablename tableuri;'; put 'run;'; put '%mend mm_gettables;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file getmetatables.sas'; put '@brief List the tables as defined in metadata'; put '@details Provide a library uri and get list of tables'; put '

SAS Macros

'; put '@li mm_gettables.sas'; put '@li mp_abort.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 liburi;'; put '%let exist=%sysfunc(exist(work.SASControlTable));'; put '%let inds=%sysfunc(ifc(&exist=1,SASControlTable,_null_));'; put '%put &=inds;'; put 'data _null_;'; put 'set &inds;'; put 'call symputx(''liburi'',liburi);'; put 'run;'; put '/* load parameters */'; put '%mm_gettables(uri=&liburi,outds=metatables,getauth=NO)'; put 'data out;'; put 'set metatables;'; put 'keep table:;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,metatables)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let path=services/metanav; %let service=metadetails; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getdetails(uri'; put ',outattrs=work.attributes'; put ',outassocs=work.associations'; put ')/*/STORE SOURCE*/;'; put 'data &outassocs;'; put 'keep assoc assocuri name;'; put 'length assoc assocuri name $256;'; put 'call missing(of _all_);'; put 'rc1=1;n1=1;'; put 'do while(rc1>0);'; put '/* Walk through all possible associations of this object. */'; put 'rc1=metadata_getnasl("&uri",n1,assoc);'; put 'rc2=1;n2=1;'; put 'do while(rc2>0);'; put '/* Walk through all the associations on this machine object. */'; put 'rc2=metadata_getnasn("&uri",trim(assoc),n2,assocuri);'; put 'if (rc2>0) then do;'; put 'rc3=metadata_getattr(assocuri,"Name",name);'; put 'output;'; put 'end;'; put 'call missing(name,assocuri);'; put 'n2+1;'; put 'end;'; put 'n1+1;'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by assoc name;'; put 'run;'; put 'data &outattrs;'; put 'keep type name value;'; put 'length type $4 name $256 value $32767;'; put 'rc1=1;n1=1;type=''Prop'';name='''';value='''';'; put 'do while(rc1>0);'; put 'rc1=metadata_getnprp("&uri",n1,name,value);'; put 'if rc1>0 then output;'; put 'n1+1;'; put 'end;'; put 'rc1=1;n1=1;type=''Attr'';'; put 'do while(rc1>0);'; put 'rc1=metadata_getnatr("&uri",n1,name,value);'; put 'if rc1>0 then output;'; put 'n1+1;'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by type name;'; put 'run;'; put '%mend mm_getdetails;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file metadetails.sas'; put '@brief Retrieves metadata attributes and associations for a particular object'; put '@details'; put '

SAS Macros

'; put '@li mm_getdetails.sas'; put '@li mpe_getvars.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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(SASControlTable, SASControlTable)'; put '%mm_getdetails(&objecturi'; put ',outattrs=work.attributes'; put ',outassocs=work.associations'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,attributes)'; put '%webout(OBJ,associations)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=metaobjects; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getobjects('; put 'type=SASLibrary'; put ',outds=work.mm_getobjects'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"$METAREPOSITORY'; put '&typeSAS'; put '0"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/&type";'; put 'put "";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/&type/@Id";'; put 'put "characterstring200";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/&type/@Name";'; put 'put "characterstring200";'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASObjects out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getobjects;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file metaobjects.sas'; put '@brief Retrieves list of objects for a particular metadata type'; put '@details'; put '

SAS Macros

'; put '@li mm_getobjects.sas'; put '@li mpe_getvars.sas'; put '@li mpeinit.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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(SASControlTable, SASControlTable)'; put 'options metarepository=&repo;'; put '%mm_getobjects('; put 'type=&metatype'; put ',outds=work.objects'; put ')'; put '%webout(OPEN)'; put '%webout(OBJ,objects)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=metarepos; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file metarepos.sas'; put '@brief Retrieves list of metadata types'; put '@details'; put '

SAS Macros

'; put '@li mm_getrepos.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '%mm_getrepos(outds=work.repos)'; put 'data outrepos;'; put 'set repos;'; put 'if repositorytype in (''CUSTOM'',''FOUNDATION'');'; put 'keep id name description;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,outrepos)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=metatypes; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_gettypes('; put 'outds=work.mm_gettypes'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put ''; put 'SAS'; put ''; put '2048'; put ''; put ''; put '$METAREPOSITORY'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put ''//GetTypes/Types/Type'';'; put 'put ''64'';'; put 'put ''//GetTypes/Types/Type/@Id'';'; put 'put ''256'';'; put 'put ''//GetTypes/Types/Type/@Desc'';'; put 'put '''';'; put 'put ''//GetTypes/Types/Type/@HasSubtypes'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.sastypes out=&outds;'; put 'by id;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_gettypes;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file metatypes.sas'; put '@brief Retrieves list of metadata types'; put '@details'; put '

SAS Macros

'; put '@li mm_gettypes.sas'; 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 '%mm_gettypes(outds=work.types)'; put '%webout(OPEN)'; put '%webout(OBJ,types)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 ')/*/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 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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_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" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'if type="N" then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; 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_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 '* Only numeric values should remain'; 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;'; put 'length reason_cd $4032 vtype $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 '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 'return;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; 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'''; put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; put 'and 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 '/* 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 '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 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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 '|libds:$19.|col:$9.|'; put '|---|---|'; put '|DC258467.MPE_X_TEST|SOME_TIME|'; 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.|'; put '|---|---|'; put '|COL_NAME|DOLLAR8.2|'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '%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 '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 '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 'options obs=2000;/* restrict num of output values */'; put 'proc sql;'; put 'create table vals as select distinct'; put 'put(&col2,%mf_getVarFormat(&libds,&col2,force=1)) as formatted,'; put '&col2 as unformatted'; put 'from work.vw_vals;'; put 'options obs=max;'; 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 'data meta;'; put 'column="&col2";'; put 'sasformat="%mf_getVarFormat(&libds,&col2)";'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_assignlib;'; put '%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);'; put 'proc sql;'; put 'create table &libds('; put 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getgroups(outds=mm_getlibs);'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getgroups(outds=&outds,repo=foundation)'; put '%do x=1 %to &repocnt;'; put '%mm_getgroups(outds=&outds.a, repo=&&repo&x)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'proc sort data=&outds noduprec;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_assignlib;'; put '%macro mf_abort(mac=mf_abort.sas, msg=, iftrue=%str(1=1)'; put ')/*/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 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'if type="N" then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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_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 ')/*/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="FMTNAME","START","END","LABEL","MIN","MAX","DEFAULT","LENGTH"'; put ',"FUZZ","PREFIX","MULT","FILL","NOEDIT","TYPE","SEXCL","EEXCL","HLO"'; put ',"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 "%str(ERR)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 "%str(ERR)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 '%mp_lockanytable(LOCK,'; put 'lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE,ctl_ds=&dclib..mpe_lockanytable'; put ')'; 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 '%mp_lockanytable(UNLOCK,'; put 'lib=&base_lib,ds=&base_dsn,'; put 'ref=&ETLSOURCE,'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%if %mf_getattrn(&outds_del,NLOBS)>0 %then %do;'; put '%let user=%mf_getUser();'; put '/* no emails yet'; put '%sumo_alerts(ALERT_EVENT=UPDATE'; put ', ALERT_TARGET=&base_lib..&base_dsn'; put ', from_user= &user);*/'; put '%end;'; put '%return;'; 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_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 '%put syscc=&syscc;'; put '%if &syscc>0 %then %do;'; put '%let msg=Bitemporal transform / job aborted due to SYSCC=&SYSCC status;'; put '%mp_lockanytable(UNLOCK,lib=&base_lib,ds=&base_dsn,ref=&ETLSOURCE (&msg),'; put 'ctl_ds=&dclib..mpe_lockanytable'; put ')'; put '%mp_abort(msg=&msg);'; put '%end;'; put '/* final check - abort if a lock has appeared on the target table */'; put '%mp_lockfilecheck(libds=&base_lib..&base_dsn)'; 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 '%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'; 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 'data _null_;'; put 'set work.mp_storediffs;'; 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 '%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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_getlibs;'; put '%macro mpe_refreshlibs();'; 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 "%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(libref);'; put '/* take current repository */'; put '%local repo repocnt xx;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'put (_all_)(=);'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'');'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put &sysmacroname #&libref#;'; put '%if #&libref# ne ## %then %do;'; put '%put &sysmacroname: assigning specific libref, &libref;'; put '%dc_assignlib(WRITE,&libref) /* write just in order to assign direct lib */'; put '%mpe_refreshlibs()'; put '%mpe_refreshtables(&libref)'; put '%end;'; put '%else %do xx=1 %to &repocnt;'; put 'options metarepository=&&repo&xx;'; put '%mpe_refreshlibs()'; put '/* get libs to be ignored */'; put '%local ignorelist;'; put 'proc sql noprint;'; put 'select var_value into: ignorelist'; put 'from &mpelib..MPE_CONFIG'; put 'where var_scope=''DC_CATALOG'''; put 'and var_name="DC_IGNORELIBS"'; put 'and &dc_dttmtfmt. < TX_TO'; put 'and var_active=1;'; put '/* get all libs */'; put '%let libcnt=0;'; put 'data libraries;'; put 'set &mpelib..mpe_datacatalog_libs;'; put 'where &dc_dttmtfmt. le TX_TO;'; put 'if index("&ignorelist",''|''!!upcase(trim(libref))!!''|'')=0;'; put 'i+1;'; put 'call symputx(cats(''lib'',i),libref);'; put 'call symputx(''libcnt'',i);'; put 'run;'; put '%local i;'; put '%do i=1 %to &libcnt;'; put '%dc_assignlib(WRITE,&&lib&i)'; put '%mpe_refreshtables(&&lib&i)'; put '%end;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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..mp_editor_access table.'; put 'This service is also callable from EUCs - just add EUCDLM= parameter.'; put 'EUCDLM values: TAB or CSV'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 registered or not */'; put '%let isRegistered=0;'; put 'proc sql noprint;'; 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 '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 admin_check all_cnt;'; put 'select count(*) into: admin_check'; put 'from groups'; put 'where groupname="&mpeadmins";'; 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 '%webout(OPEN)'; put '%webout(OBJ,sasDatasets)'; put '%webout(OBJ,saslibs)'; put '%webout(OBJ,globvars)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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_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 '* Only numeric values should remain'; 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;'; put 'length reason_cd $4032 vtype $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 '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 'return;'; put 'end;'; put '/* now we can get the type */'; put 'else vtype=vartype(dsid,vnum);'; 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'''; put 'and OPERATOR_NM in (''='',''>'',''<'',''<='',''>='',''NE'',''GE'',''LE'')'; put 'and 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 '/* 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 '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 'putlog raw_value3= $hex32.;'; put 'REASON_CD=cats(''Invalid RAW_VALUE:'',raw_value);'; put 'putlog REASON_CD= raw_value= raw_value1= raw_value2= raw_value3=;'; put 'call symputx(''reason_cd'',reason_cd,''l'');'; put 'call symputx(''nobs'',_n_,''l'');'; put 'output;'; put 'end;'; 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 or %length(&var)=0 %then %do;'; put '%put %sysfunc(sysmsg());'; put '0'; 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_inc)) 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;'; put 'proc sql noprint;'; 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 '%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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_assignlib;'; put '%macro mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro mm_gettables('; put 'uri='; put ',outds=work.mm_gettables'; put ',getauth=YES'; put ')/*/STORE SOURCE*/;'; put 'data &outds;'; put 'length uri serveruri conn_uri domainuri libname ServerContext AuthDomain'; put 'path_schema usingpkguri type tableuri $256 id $17'; put 'libdesc $200 libref engine $8 IsDBMSLibname IsPreassigned $1'; put 'tablename $50 /* metadata table names can be longer than $32 */'; put ';'; put 'keep libname libdesc libref engine ServerContext path_schema AuthDomain'; put 'tableuri tablename IsPreassigned IsDBMSLibname id;'; put 'call missing (of _all_);'; put 'uri=symget(''uri'');'; put 'rc= metadata_getattr(uri, "Name", libname);'; put 'if rc <0 then do;'; put 'put ''The library is not defined in this metadata repository.'';'; put 'stop;'; put 'end;'; put 'rc= metadata_getattr(uri, "Desc", libdesc);'; put 'rc= metadata_getattr(uri, "Libref", libref);'; put 'rc= metadata_getattr(uri, "Engine", engine);'; put 'rc= metadata_getattr(uri, "IsDBMSLibname", IsDBMSLibname);'; put 'rc= metadata_getattr(uri, "IsPreassigned", IsPreassigned);'; put 'rc= metadata_getattr(uri, "Id", Id);'; put '/*** Get associated ServerContext ***/'; put 'rc= metadata_getnasn(uri, "DeployedComponents", 1, serveruri);'; put 'if rc > 0 then rc2= metadata_getattr(serveruri, "Name", ServerContext);'; put 'else ServerContext='''';'; put '/*** If the library is a DBMS library, get the Authentication Domain'; put 'associated with the DBMS connection credentials ***/'; put 'if IsDBMSLibname="1" and "&getauth"=''YES'' then do;'; put 'rc= metadata_getnasn(uri, "LibraryConnection", 1, conn_uri);'; put 'if rc>0 then do;'; put 'rc2= metadata_getnasn(conn_uri, "Domain", 1, domainuri);'; put 'if rc2>0 then rc3= metadata_getattr(domainuri, "Name", AuthDomain);'; put 'end;'; put 'end;'; put '/*** Get the path/database schema for this library ***/'; put 'rc=metadata_getnasn(uri, "UsingPackages", 1, usingpkguri);'; put 'if rc>0 then do;'; put 'rc=metadata_resolve(usingpkguri,type,id);'; put 'if type=''Directory'' then'; put 'rc=metadata_getattr(usingpkguri, "DirectoryName", path_schema);'; put 'else if type=''DatabaseSchema'' then'; put 'rc=metadata_getattr(usingpkguri, "Name", path_schema);'; put 'else path_schema="unknown";'; put 'end;'; put '/*** Get the tables associated with this library ***/'; put '/*** If DBMS, tables are associated with DatabaseSchema ***/'; put 'if type=''DatabaseSchema'' then do;'; put 't=1;'; put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; put 'if ntab>0 then do t=1 to ntab;'; put 'tableuri='''';'; put 'tablename='''';'; put 'ntab=metadata_getnasn(usingpkguri, "Tables", t, tableuri);'; put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; put 'output;'; put 'end;'; put 'else put ''Library '' libname '' has no tables registered'';'; put 'end;'; put 'else if type in (''Directory'',''SASLibrary'') then do;'; put 't=1;'; put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; put 'if ntab>0 then do t=1 to ntab;'; put 'tableuri='''';'; put 'tablename='''';'; put 'ntab=metadata_getnasn(uri, "Tables", t, tableuri);'; put 'tabrc= metadata_getattr(tableuri, "Name", tablename);'; put 'output;'; put 'end;'; put 'else put ''Library '' libname '' has no tables registered'';'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by tablename tableuri;'; put 'run;'; put '%mend mm_gettables;'; put '%macro mm_getcols('; put 'tableuri='; put ',outds=work.mm_getcols'; put ')/*/STORE SOURCE*/;'; put 'data &outds;'; put 'keep col: SAS:;'; put 'length assoc uri coluri colname coldesc SASColumnType SASFormat SASInformat'; put 'SASPrecision SASColumnLength $256;'; put 'call missing (of _all_);'; put 'uri=symget(''tableuri'');'; put 'n=1;'; put 'do while (metadata_getnasn(uri,''Columns'',n,coluri)>0);'; put 'rc3=metadata_getattr(coluri,"Name",colname);'; put 'rc3=metadata_getattr(coluri,"Desc",coldesc);'; put 'rc4=metadata_getattr(coluri,"SASColumnType",SASColumnType);'; put 'rc5=metadata_getattr(coluri,"SASFormat",SASFormat);'; put 'rc6=metadata_getattr(coluri,"SASInformat",SASInformat);'; put 'rc7=metadata_getattr(coluri,"SASPrecision",SASPrecision);'; put 'rc8=metadata_getattr(coluri,"SASColumnLength",SASColumnLength);'; put 'output;'; put 'call missing(colname,coldesc,SASColumnType,SASFormat,SASInformat'; put ',SASPrecision,SASColumnLength);'; put 'n+1;'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by colname;'; put 'run;'; put '%mend mm_getcols;'; put '%macro mm_createdataset(libds=,tableuri=,outds=work.mm_createdataset,mDebug=0);'; put '%local dbg errorcheck tempds1 tempds2 tempds3;'; put '%if &mDebug=0 %then %let dbg=*;'; put '%let errorcheck=1;'; put '%if %index(&libds,.)>0 %then %do;'; put '/* get lib uri */'; put 'data;run;%let tempds1=&syslast;'; put '%mm_getlibs(outds=&tempds1)'; put 'data _null_;'; put 'set &tempds1;'; put 'if upcase(libraryref)="%upcase(%scan(&libds,1,.))";'; put 'call symputx(''liburi'',LibraryId,''l'');'; put 'run;'; put '/* get ds uri */'; put 'data;run;%let tempds2=&syslast;'; put '%mm_gettables(uri=&liburi,outds=&tempds2)'; put 'data _null_;'; put 'set &tempds2;'; put 'where upcase(tablename)="%upcase(%scan(&libds,2,.))";'; put '&dbg putlog tableuri=;'; put 'call symputx(''tableuri'',tableuri);'; put 'run;'; put '%end;'; put 'data;run;'; put '%let tempds3=&syslast;'; put '%mm_getcols(tableuri=&tableuri,outds=&tempds3)'; put '%if %mf_nobs(&tempds3)=0 %then %do;'; put '%put &libds (&tableuri) has no columns defined!!;'; put 'data &outds;'; put 'run;'; put '%return;'; put '%end;'; put 'data _null_;'; put 'set &tempds3 end=last;'; put 'if _n_=1 then call execute(''data &outds;'');'; put 'length attrib $32767;'; put 'if SAScolumntype=''C'' then type=''$'';'; put 'attrib=''attrib ''!!cats(colname)!!'' length=''!!cats(type,SASColumnLength,''.'');'; put 'if not missing(sasformat) then fmt='' format=''!!cats(sasformat);'; put 'if not missing(sasinformat) then infmt='' informat=''!!cats(sasinformat);'; put 'if not missing(coldesc) then desc='' label=''!!quote(cats(coldesc));'; put 'attrib=trim(attrib)!!fmt!!infmt!!desc!!'';'';'; put 'call execute(attrib);'; put 'if last then call execute(''call missing(of _all_);stop;run;'');'; put 'run;'; put '%mend mm_createdataset;'; put '%macro dc_createdataset(libds=mm_getlibs,outds=viewdata);'; put '%mm_createdataset(libds=&libds,outds=viewdata)'; put '%mend dc_createdataset;'; put '%macro mm_gettableid('; put 'libref='; put ',ds='; put ',outds=work.mm_gettableid'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put 'data &outds;'; put 'length uri usingpkguri id type tableuri tablename tmpuri $256;'; put 'call missing(of _all_);'; put 'keep tableuri tablename;'; put 'n=1;'; put 'rc=0;'; put 'if metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",n,uri)<1 then do;'; put 'put "Library &libref not found";'; put 'stop;'; put 'end;'; put '&mD.putlog "uri is " uri;'; put 'if metadata_getnasn(uri, "UsingPackages", 1, usingpkguri)>0 then do;'; put 'rc=metadata_resolve(usingpkguri,type,id);'; put '&mD.putlog "Type is " type;'; put 'end;'; put 'if type=''DatabaseSchema'' then tmpuri=usingpkguri;'; put 'else tmpuri=uri;'; put 't=1;'; put 'do while(metadata_getnasn(tmpuri, "Tables", t, tableuri)>0);'; put 't+1;'; put 'rc= metadata_getattr(tableuri, "Name", tablename);'; put '&mD.putlog "Table is " tablename;'; put 'if upcase(tablename)="%upcase(&ds)" then do;'; put 'output;'; put 'end;'; put 'end;'; put 'run;'; put '%mend mm_gettableid;'; put '%macro dc_gettableid(libref='; put ',ds='; put ',outds=);'; put '%mm_gettableid(libref=&libref,ds=&ds,outds=&outds)'; put '%if %mf_nobs(&outds)=0 %then %do;'; put 'data &outds;'; put 'tableuri='''';'; put 'tablename="&ds";'; put 'run;'; put '%end;'; 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 ')/*/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 'FMTNAME char(32) label=''Format name'''; put '/*'; put 'to accommodate larger START values, mp_loadformat.sas will need the'; put 'SQL dependency removed (proc sql needs to accommodate 3 index values in'; put 'a 32767 ibufsize limit)'; put '*/'; put ',START char(10000) label=''Starting value for format'''; 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 ',TYPE char(1) label=''Type of format'''; put ',SEXCL char(1) label=''Start exclusion'''; put ',EEXCL char(1) label=''End exclusion'''; put ',HLO char(13) label=''Additional information'''; 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 '%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" %then %do;'; put 'select'; put '%do i=1 %to %sysfunc(countw(&fmtlist));'; put '%scan(&fmtlist,&i,%str( ))'; put '%end;'; put ';'; put '%end;'; put 'run;'; put 'data &cntlout;'; put 'if 0 then set &ddlds;'; put 'set &cntlds;'; put 'if type="N" then do;'; put 'start=cats(start);'; put 'end=cats(end);'; put 'end;'; put 'run;'; put 'proc sort;'; put 'by fmtname start;'; put 'run;'; put 'proc sql;'; put 'drop table &ddlds,&cntlds;'; put '%mend mp_cntlout;'; put '/** @endcond */'; 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 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 '%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 SØREN 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 "%str(ERR)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 "%str(ERR)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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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_dsmeta.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_filtermaster.sas'; put '@version 9.2'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '%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 '/* ensure filtref and work.query exist to avoid downstream issues */'; put 'filename filtref temp;'; put 'data work.query;'; put 'file filtref;'; put 'x=0;'; put 'put x;'; 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 '%mp_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,showmeta=YES,dslabel=viewdata)'; put '%webout(CLOSE)'; put '%mpeterm()'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro dc_getusergroups(user=,outds=mm_getgroups);'; put '%global dc_repo_users;'; put '%if &dc_repo_users= %then %let dc_repo_users=foundation;'; put '%mm_getgroups(user=&user,outds=&outds,repo=&dc_repo_users)'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let path=services/usernav; %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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getusers('; put 'outds=work.mm_getusers,'; put 'user=0'; put ')/*/STORE SOURCE*/;'; put 'filename response temp;'; put '%if %superq(user)=0 %then %do;'; put 'proc metadata in= '''; put '$METAREPOSITORY'; put 'Person'; put 'SAS'; put '0'; put ''; put ''; put ''; put ''; put ''; put ''''; put 'out=response;'; put 'run;'; put '%end;'; put '%else %do;'; put 'filename inref temp;'; put 'data _null_;'; put 'file inref;'; put 'put "";'; put 'put "$METAREPOSITORY";'; put 'put "Person";'; put 'put "SAS";'; put 'put "";'; put 'put "128";'; put 'put "";'; put 'put "";'; put 'put '''';'; put 'put "";'; put 'length string $10000;'; put 'string=cats('''');'; put 'put string;'; put 'put "";'; put 'put "";'; put 'run;'; put 'proc metadata in=inref out=response;'; put 'run;'; put '%end;'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Person";'; put 'put "";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Person/@Id";'; put 'put "characterstring32";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Person/@Name";'; put 'put "characterstring256";'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASObjects out=&outds;'; put 'by name;'; put 'run;'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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 mp_abort.sas'; put '@li mm_getusers.sas'; put '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 '%macro x();'; put '%if %sysfunc(exist(work.iwant)) ne 1 %then %do;'; put '/* macro called by configurator - grab the URI of calling user */'; put '%mm_getusers(user=&_metaperson, outds=work.iwant)'; put '%end;'; put '%mend x;'; put '%x()'; put 'data groups'; put 'roles(rename=(groupuri=roleuri groupname=rolename groupdesc=roledesc)) ;'; put 'length uri groupuri groupname groupdesc publictype str $256;'; put 'call missing(of _all_);'; put 'set iwant;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "WARNING: No groups found for ";'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri, "PublicType", PublicType);'; put 'a+1;'; put 'if PublicType = ''Role'' then output roles;'; put 'else output groups;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'keep groupuri groupname groupdesc;'; put 'if _n_=1 then delete; /* no content so don''t send empty row */'; put 'run;'; put 'data emails;'; put 'keep email type;'; put 'length emailuri email type uri str $256;'; put 'call missing(of _all_);'; put 'set iwant;'; put '/* credit'; put 'https://seleritysas.com/data-step-view-of-email-addresses-in-sas-metadata'; put '*/'; put 'emailrc=1;email_count=1;'; put 'do while(emailrc>0);'; put '/* Get Email from Person */'; put 'emailrc=metadata_getnasn(uri,"EmailAddresses",email_count,emailuri);'; put 'arc=1;'; put 'if (emailrc>0) then do;'; put 'arc=metadata_getattr(emailuri,"Address",email);'; put 'arc=metadata_getattr(emailuri,"EmailType",type);'; put 'end;'; put 'if (arc=0) then output emails;'; put 'email_count=email_count+1;'; put 'end;'; put 'run;'; put 'data logins;'; put 'length domain userid loginuri domainuri uri $256;'; put 'keep domain userid;'; put 'call missing(of _all_);'; put 'set iwant;'; put 'login_count=1;'; put 'do while(metadata_getnasn(uri,"Logins",login_count,loginuri)>0);'; put 'rc=metadata_getattr(loginuri,"UserID",userid);'; put 'rc=metadata_getnasn(loginuri,"Domain",1,domainuri);'; put 'rc=metadata_getattr(domainuri,"Name",domain);'; put 'output;'; put 'login_count+1;'; put 'end;'; put 'run;'; put 'data info;'; put 'length uri name displayname metadatacreated metadataupdated $256;'; put 'keep name displayname metadatacreated metadataupdated;'; put 'call missing(of _all_);'; put 'set iwant;'; put 'rc=metadata_getattr(uri,"Name",name);'; put 'rc=metadata_getattr(uri,"DisplayName",displayname);'; put 'rc=metadata_getattr(uri,"MetadataCreated",MetadataCreated);'; put 'rc=metadata_getattr(uri,"MetadataUpdated",MetadataUpdated);'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,emails)'; put '%webout(OBJ,groups)'; put '%webout(OBJ,roles)'; put '%webout(OBJ,logins)'; put '%webout(OBJ,info)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getusers('; put 'outds=work.mm_getusers,'; put 'user=0'; put ')/*/STORE SOURCE*/;'; put 'filename response temp;'; put '%if %superq(user)=0 %then %do;'; put 'proc metadata in= '''; put '$METAREPOSITORY'; put 'Person'; put 'SAS'; put '0'; put ''; put ''; put ''; put ''; put ''; put ''''; put 'out=response;'; put 'run;'; put '%end;'; put '%else %do;'; put 'filename inref temp;'; put 'data _null_;'; put 'file inref;'; put 'put "";'; put 'put "$METAREPOSITORY";'; put 'put "Person";'; put 'put "SAS";'; put 'put "";'; put 'put "128";'; put 'put "";'; put 'put "";'; put 'put '''';'; put 'put "";'; put 'length string $10000;'; put 'string=cats('''');'; put 'put string;'; put 'put "";'; put 'put "";'; put 'run;'; put 'proc metadata in=inref out=response;'; put 'run;'; put '%end;'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Person";'; put 'put "";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Person/@Id";'; put 'put "characterstring32";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/Person/@Name";'; put 'put "characterstring256";'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASObjects out=&outds;'; put 'by name;'; put 'run;'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getusers;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getusers(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getusers(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getusers(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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 '@version 9.3'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 sasMembers ;'; put 'attrib uriGrp uriMem GroupId GroupName Group_or_Role MemberName MemberType'; put 'MemberUpdated membercreated emailuri length=$64'; put 'GroupDesc email length=$256'; put 'rcGrp rcMem rc i j length=3;'; put 'call missing (of _all_);'; put 'drop uriGrp rcGrp rcMem rc i j;'; put 'set iwant;'; put 'i=1;'; put '* Grab the URI for the first Group ;'; put 'rcGrp=metadata_getnobj(groupid,i,uriGrp);'; put '* If Group found, enter do loop ;'; put 'if rcGrp>0 then do;'; put 'call missing (rcMem,uriMem,GroupId,GroupName,Group_or_Role'; put ',MemberName,MemberType);'; put '* get group info ;'; put 'rc = metadata_getattr(uriGrp,"Id",GroupId);'; put 'rc = metadata_getattr(uriGrp,"Name",GroupName);'; put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; put 'rc = metadata_getattr(uriGrp,"Desc",GroupDesc);'; put 'j=1;'; put 'do while (metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; put 'call missing (MemberName,MemberType);'; put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; put 'rc=metadata_getattr(uriMem, "MetadataCreated", MemberCreated);'; put 'rc=metadata_getattr(uriMem, "MetadataUpdated", MemberUpdated);'; put 'emailrc=metadata_getnasn(uriMem,"EmailAddresses",1,emailuri);'; put 'if (emailrc>0) then rc=metadata_getattr(emailuri,"Address",email);'; put 'output;'; put 'j+1;'; put 'call missing(email,emailuri);'; put 'end;'; put 'end;'; put 'if _n_=1 then delete;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,sasMembers)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=usermembersbyrole; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file usermembersbyrole.sas'; put '@brief List the members of a role'; put '

SAS Macros

'; put '@li mp_abort.sas'; put '@li mpeinit.sas'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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 sasMembers sasgroups;'; put 'attrib uriGrp uriMem roleId roleName Group_or_Role MemberName MemberType'; put 'MemberUpdated membercreated emailuri length=$64'; put 'roleDesc email length=$256'; put 'rcGrp rcMem rc i j length=3;'; put 'call missing (of _all_);'; put 'set iwant;'; put 'i=1;'; put '* Grab the URI for the first Group ;'; put 'rcGrp=metadata_getnobj(roleid,i,uriGrp);'; put '* If Group found, enter do loop ;'; put 'if rcGrp>0 then do;'; put 'call missing (rcMem,uriMem,roleId,roleName,Group_or_Role'; put ',MemberName,MemberType,roleDesc);'; put '* get group info ;'; put 'rc = metadata_getattr(uriGrp,"Id",roleId);'; put 'rc = metadata_getattr(uriGrp,"Name",roleName);'; put 'rc = metadata_getattr(uriGrp,"PublicType",Group_or_Role);'; put 'rc = metadata_getattr(uriGrp,"Desc",roleDesc);'; put 'j=1;'; put 'if Group_or_Role=''Role'' then do while'; put '(metadata_getnasn(uriGrp,"MemberIdentities",j,uriMem) > 0);'; put 'call missing (MemberName,MemberType);'; put 'call missing(email,emailuri);'; put 'rc = metadata_getattr(uriMem,"Name",MemberName);'; put 'rc = metadata_getattr(uriMem,"PublicType",MemberType);'; put 'rc=metadata_getattr(uriMem, "MetadataCreated", MemberCreated);'; put 'rc=metadata_getattr(uriMem, "MetadataUpdated", MemberUpdated);'; put 'emailrc=metadata_getnasn(uriMem,"EmailAddresses",1,emailuri);'; put 'if (emailrc>0) then rc=metadata_getattr(emailuri,"Address",email);'; put 'if membertype=''UserGroup'' then output sasgroups;'; put 'else output sasmembers;'; put 'j+1;'; put 'end;'; put 'end;'; put 'if _n_=1 then delete; /* no roles so don''t send empty row */'; put 'keep uriMem membertype membername MemberCreated MemberUpdated email;'; put 'run;'; put '%webout(OPEN)'; put '%webout(OBJ,sasGroups)'; put '%webout(OBJ,sasMembers)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=userroles; 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getroles('; put 'outds=work.mm_getroles'; put ')/*/STORE SOURCE*/;'; put 'filename response temp;'; put 'options noquotelenmax;'; put 'proc metadata in= ''$METAREPOSITORY'; put 'IdentityGroupSAS388'; put ''; put ''; put ''; put ''; put ''''; put 'out=response;'; put 'run;'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/IdentityGroup";'; put 'put "";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Id";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Name";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put "/GetMetadataObjects/Objects/IdentityGroup/@Desc";'; put 'put "";'; put 'put "characterstring500";'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.roles out=&outds;'; put 'by rolename;'; put 'run;'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getroles;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getroles(outds=mm_getroles);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getroles(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getroles(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; put '%mend dc_getroles;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; put '* ServiceInit end;'; put '* Service start;'; put '/**'; put '@file userroles.sas'; put '@brief List all SAS Roles'; put '@details Gets a list of all SAS Roles'; put '

SAS Macros

'; put '@li dc_getroles.sas'; put '@li mpeinit.sas'; put '@author 4GL Apps Ltd. Data Controller is free for up to 5 users and may be'; put 'downloaded from here: https://4gl.uk/dcdeploy'; 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_getroles(outds=roles)'; put '%webout(OPEN)'; put '%webout(OBJ,roles)'; put '%webout(CLOSE)'; put '* Service end;'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 SØREN 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 "%str(ERR)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 "%str(ERR)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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getlibs('; put 'outds=work.mm_getLibs'; put ')/*/STORE SOURCE*/;'; put '/*'; put 'flags:'; put 'OMI_SUCCINCT (2048) Do not return attributes with null values.'; put 'OMI_GET_METADATA (256) Executes a GetMetadata call for each object that'; put 'is returned by the GetMetadataObjects method.'; put 'OMI_ALL_SIMPLE (8) Gets all of the attributes of the requested object.'; put '*/'; put 'data _null_;'; put 'flags=2048+256+8;'; put 'call symputx(''flags'',flags,''l'');'; put 'run;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put ''''; put '$METAREPOSITORY'; put 'SASLibrary'; put ''; put 'SAS'; put '&flags'; put ''; put ''''; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put 'data _null_;'; put 'infile response lrecl=32767;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put '''';'; put 'put ''//Objects/SASLibrary'';'; put 'put ''>17'';'; put 'put ''//Objects/SASLibrary/@Id'';'; put 'put ''256>'';'; put 'put ''//Objects/SASLibrary/@Name'';'; put 'put ''8'';'; put 'put ''//Objects/SASLibrary/@Libref'';'; put 'put ''>12'';'; put 'put ''//Objects/SASLibrary/@Engine'';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put '/* sort the response by library name */'; put 'proc sort data=_XML_.saslibrary out=&outds;'; put 'by libraryname;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getlibs;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getlibs(outds=mm_getlibs);'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(''repo''!!cats(_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getlibs(outds=&outds)'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put '%mm_getlibs(outds=&outds.a)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_getGroups('; put 'user='; put ',outds=work.mm_getGroups'; put ',repo=foundation'; put ',mDebug=0'; put ')/*/STORE SOURCE*/;'; put '%local mD oldrepo;'; put '%let oldrepo=%sysfunc(getoption(metarepository));'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_getGroups.sas;'; put '%&mD.put _local_;'; put '/* on some sites, user / group info is in a different metadata repo to the'; put 'default */'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&repo;'; put '%end;'; put '%if %length(&user)=0 %then %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'i+1;'; put 'do while'; put '(metadata_getnobj("omsobj:IdentityGroup?@Id contains ''.''",i,groupuri)>0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'i+1;'; put 'end;'; put 'run;'; put '%end;'; put '%else %do;'; put 'data &outds (keep=groupuri groupname groupdesc);'; put 'length uri groupuri groupname groupdesc group_or_role $256;'; put 'call missing(of _all_);'; put 'rc=metadata_getnobj("omsobj:Person?@Name=''&user''",1,uri);'; put 'if rc<=0 then do;'; put 'putlog "%str(WARN)ING: rc=" rc "&user not found "'; put '", or there was an issue reading the repository.";'; put 'stop;'; put 'end;'; put 'a=1;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'if grpassn in (-3,-4) then do;'; put 'putlog "%str(WARN)ING: No metadata groups found for &user";'; put 'output;'; put 'end;'; put 'else do while (grpassn > 0);'; put 'rc=metadata_getattr(groupuri, "Name", groupname);'; put 'rc=metadata_getattr(groupuri, "Desc", groupdesc);'; put 'a+1;'; put 'rc=metadata_getattr(groupuri,"PublicType",group_or_role);'; put 'if Group_or_Role = ''UserGroup'' then output;'; put 'grpassn=metadata_getnasn(uri,"IdentityGroups",a,groupuri);'; put 'end;'; put 'run;'; put '%end;'; put '%if &oldrepo ne &repo %then %do;'; put 'options metarepository=&oldrepo;'; put '%end;'; put '%mend mm_getGroups;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_getgroups(outds=mm_getlibs);'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '%put _local_;'; put '%mm_getgroups(outds=&outds,repo=foundation)'; put '%do x=1 %to &repocnt;'; put '%mm_getgroups(outds=&outds.a, repo=&&repo&x)'; put 'proc append base=&outds data=&outds.a;'; put 'run;'; put '%end;'; put 'proc sort data=&outds noduprec;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 mm_assignlib('; put 'libref'; put ',mAbort=HARD'; put ')/*/STORE SOURCE*/;'; put '%local mp_abort msg;'; put '%let mp_abort=0;'; put '%if %sysfunc(libref(&libref)) %then %do;'; put 'data _null_;'; put 'length liburi LibName msg $200;'; put 'call missing(of _all_);'; put 'nobj=metadata_getnobj("omsobj:SASLibrary?@Libref=''&libref''",1,liburi);'; put 'if nobj=1 then do;'; put 'rc=metadata_getattr(liburi,"Name",LibName);'; put '/* now try and assign it */'; put 'if libname("&libref",,''meta'',cats(''liburi="'',liburi,''";'')) ne 0 then do;'; put 'putlog "&libref could not be assigned";'; put 'putlog liburi=;'; put '/**'; put '* Fetch the system message for display in the abort modal. This is'; put '* not always helpful though. One example, previously received:'; put '* NOTE: Libref XX refers to the same library metadata as libref XX.'; put '*/'; put 'msg=sysmsg();'; put 'if msg=:''ERROR: Libref SAVE is not assigned.'' then do;'; put 'msg=catx(" ",'; put '"Could not assign %upcase(&libref).",'; put '"Please check metadata permissions! Libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'else if msg="ERROR: User does not have appropriate authorization "!!'; put '"level for library SAVE."'; put 'then do;'; put 'msg=catx(" ",'; put '"ERROR: User does not have appropriate authorization level",'; put '"for library %upcase(&libref), libname:",libname,'; put '"Liburi:",liburi'; put ');'; put 'end;'; put 'call symputx(''msg'',msg,''l'');'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1,''l'');'; put 'end;'; put 'else do;'; put 'put (_all_)(=);'; put 'call symputx(''libname'',libname,''L'');'; put 'call symputx(''liburi'',liburi,''L'');'; put 'end;'; put 'end;'; put 'else if nobj>1 then do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"More than one library with libref=&libref");'; put 'end;'; put 'else do;'; put 'if "&mabort"=''HARD'' then call symputx(''mp_abort'',1);'; put 'call symputx(''msg'',"Library &libref not found in metadata");'; put 'end;'; put 'run;'; put '%put NOTE: &msg;'; put '%end;'; put '%else %do;'; put '%put NOTE: Library &libref is already assigned;'; put '%end;'; put '%mp_abort(iftrue= (&mp_abort=1)'; put ',mac=mm_assignlib.sas'; put ',msg=%superq(msg)'; put ')'; put '%mend mm_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 '%macro mm_assigndirectlib('; put 'libref /* libref to assign from metadata */'; put ',open_passthrough= /* provide an alias to produce the'; put 'CONNECT TO statement for the'; put 'relevant external database */'; put ',sql_options= /* add any options to add to proc sql statement eg outobs='; put '(only valid for pass through) */'; put ',mDebug=0'; put ',mAbort=0'; put ')/*/STORE SOURCE*/;'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing mm_assigndirectlib.sas;'; put '%&mD.put _local_;'; put '%if &mAbort=1 %then %let mAbort=;'; put '%else %let mAbort=%str(*);'; put '%&mD.put NOTE: Creating direct (non META) connection to &libref library;'; put '%local cur_engine;'; put '%let cur_engine=%mf_getengine(&libref);'; put '%if &cur_engine ne META and &cur_engine ne %then %do;'; put '%put NOTE: &libref already has a direct (&cur_engine) libname connection;'; put '%return;'; put '%end;'; put '%else %if %upcase(&libref)=WORK %then %do;'; put '%put NOTE: We already have a direct connection to WORK :-) ;'; put '%return;'; put '%end;'; put '/* need to determine the library ENGINE first */'; put '%local engine;'; put 'data _null_;'; put 'length lib_uri engine $256;'; put 'call missing (of _all_);'; put '/* get URI for the particular library */'; put 'rc1=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put '/* get the Engine attribute of the previous object */'; put 'rc2=metadata_getattr(lib_uri,''Engine'',engine);'; put 'putlog "mm_assigndirectlib for &libref:" rc1= lib_uri= rc2= engine=;'; put 'call symputx("liburi",lib_uri,''l'');'; put 'call symputx("engine",engine,''l'');'; put 'run;'; put '/* now obtain engine specific connection details */'; put '%if &engine=BASE %then %do;'; put '%&mD.put NOTE: Retrieving BASE library path;'; put 'data _null_;'; put 'length up_uri $256 path cat_path $1024;'; put 'retain cat_path;'; put 'call missing (of _all_);'; put '/* get all the filepaths of the UsingPackages association */'; put 'i=1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'do while (rc3>0);'; put '/* get the DirectoryName attribute of the previous object */'; put 'rc4=metadata_getattr(up_uri,''DirectoryName'',path);'; put 'if i=1 then path = ''("''!!trim(path)!!''" '';'; put 'else path ='' "''!!trim(path)!!''" '';'; put 'cat_path = trim(cat_path) !! " " !! trim(path) ;'; put 'i+1;'; put 'rc3=metadata_getnasn("&liburi",''UsingPackages'',i,up_uri);'; put 'end;'; put 'cat_path = trim(cat_path) !! ")";'; put '&mD.putlog "NOTE: Getting physical path for &libref library";'; put '&mD.putlog rc3= up_uri= rc4= cat_path= path=;'; put '&mD.putlog "NOTE: Libname cmd will be:";'; put '&mD.putlog "libname &libref" cat_path;'; put 'call symputx("filepath",cat_path,''l'');'; put 'run;'; put '%if %sysevalf(&sysver<9.4) %then %do;'; put 'libname &libref &filepath;'; put '%end;'; put '%else %do;'; put '/* apply the new filelocks option to cater for temporary locks */'; put 'libname &libref &filepath filelockwait=5;'; put '%end;'; put '%end;'; put '%else %if &engine=REMOTE %then %do;'; put 'data x;'; put 'length rcCon rcProp rc k 3 uriCon uriProp PropertyValue PropertyName'; put 'Delimiter $256 properties $2048;'; put 'retain properties;'; put 'rcCon = metadata_getnasn("&liburi", "LibraryConnection", 1, uriCon);'; put 'rcProp = metadata_getnasn(uriCon, "Properties", 1, uriProp);'; put 'k = 1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'do while (rcProp > 0);'; put 'rc = metadata_getattr(uriProp , "DefaultValue",PropertyValue);'; put 'rc = metadata_getattr(uriProp , "PropertyName",PropertyName);'; put 'rc = metadata_getattr(uriProp , "Delimiter",Delimiter);'; put 'properties = trim(properties) !! " " !! trim(PropertyName)'; put '!! trim(Delimiter) !! trim(PropertyValue);'; put 'output;'; put 'k+1;'; put 'rcProp = metadata_getnasn(uriCon, "Properties", k, uriProp);'; put 'end;'; put '%&mD.put NOTE: Getting properties for REMOTE SHARE &libref library;'; put '&mD.put _all_;'; put '%&mD.put NOTE: Libname cmd will be:;'; put '%&mD.put libname &libref &engine &properties slibref=&libref;'; put 'call symputx ("properties",trim(properties),''l'');'; put 'run;'; put 'libname &libref &engine &properties slibref=&libref;'; put '%end;'; put '%else %if &engine=OLEDB %then %do;'; put '%&mD.put NOTE: Retrieving OLEDB connection details;'; put 'data _null_;'; put 'length domain datasource provider properties schema'; put 'connx_uri domain_uri conprop_uri lib_uri schema_uri value $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection domain */'; put 'rc1=metadata_getnasn(connx_uri,''Domain'',1,domain_uri);'; put 'rc2=metadata_getattr(domain_uri,''Name'',domain);'; put '&mD.putlog / ''NOTE: '' // ''NOTE- connection id: '' connx_uri ;'; put '&mD.putlog ''NOTE- domain: '' domain;'; put '/* get DSN and PROVIDER from connection properties */'; put 'i=0;'; put 'do until (rc<0);'; put 'i+1;'; put 'rc=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc2=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.OLE.Property.DATASOURCE.Name.xmlKey.txt'' then do;'; put 'rc3=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROVIDER.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',provider);'; put 'end;'; put 'else if value=''Connection.OLE.Property.PROPERTIES.Name.xmlKey.txt'' then'; put 'do;'; put 'rc5=metadata_getattr(conprop_uri,''DefaultValue'',properties);'; put 'end;'; put 'end;'; put '&mD.putlog ''NOTE- dsn/provider/properties: '' /'; put 'datasource provider properties;'; put '&mD.putlog ''NOTE- schema: '' schema // ''NOTE-'';'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,lib_uri);'; put 'rc7=metadata_getattr(lib_uri,''SchemaName'',schema);'; put 'call symputx(''SQL_domain'',domain,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'call symputx(''SQL_provider'',provider,''l'');'; put 'call symputx(''SQL_properties'',properties,''l'');'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to OLEDB as &open_passthrough(INSERT_SQL=YES'; put '/* need additional properties to make this work */'; put 'properties=(''Integrated Security''=SSPI'; put '''Persist Security Info''=True'; put '%sysfunc(compress(%str(&SQL_properties),%str(())))'; put ')'; put 'DATASOURCE=&sql_dsn PROMPT=NO'; put 'PROVIDER=&sql_provider SCHEMA=&sql_schema CONNECTION = GLOBAL);'; put '%end;'; put '%else %do;'; put 'LIBNAME &libref OLEDB PROPERTIES=&sql_properties'; put 'DATASOURCE=&sql_dsn PROVIDER=&sql_provider SCHEMA=&sql_schema'; put '%if %length(&sql_domain)>0 %then %do;'; put 'authdomain="&sql_domain"'; put '%end;'; put 'connection=shared;'; put '%end;'; put '%end;'; put '%else %if &engine=ODBC %then %do;'; put '&mD.%put NOTE: Retrieving ODBC connection details;'; put 'data _null_;'; put 'length connx_uri conprop_uri value datasource up_uri schema $256.;'; put 'call missing (of _all_);'; put '/* get source connection ID */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,connx_uri);'; put '/* get connection properties */'; put 'i=0;'; put 'do until (rc2<0);'; put 'i+1;'; put 'rc2=metadata_getnasn(connx_uri,''Properties'',i,conprop_uri);'; put 'rc3=metadata_getattr(conprop_uri,''Name'',value);'; put 'if value=''Connection.ODBC.Property.DATASRC.Name.xmlKey.txt'' then do;'; put 'rc4=metadata_getattr(conprop_uri,''DefaultValue'',datasource);'; put 'rc2=-1;'; put 'end;'; put 'end;'; put '/* get SCHEMA */'; put 'rc6=metadata_getnasn("&liburi",''UsingPackages'',1,up_uri);'; put 'rc7=metadata_getattr(up_uri,''SchemaName'',schema);'; put '&mD.put rc= connx_uri= rc2= conprop_uri= rc3= value= rc4= datasource='; put 'rc6= up_uri= rc7= schema=;'; put 'call symputx(''SQL_schema'',schema,''l'');'; put 'call symputx(''SQL_dsn'',datasource,''l'');'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put 'proc sql &sql_options;'; put 'connect to ODBC as &open_passthrough'; put '(INSERT_SQL=YES DATASRC=&sql_dsn. CONNECTION=global);'; put '%end;'; put '%else %do;'; put 'libname &libref ODBC DATASRC=&sql_dsn SCHEMA=&sql_schema;'; put '%end;'; put '%end;'; put '%else %if &engine=POSTGRES %then %do;'; put '%put NOTE: Obtaining POSTGRES library details;'; put 'data _null_;'; put 'length database ignore_read_only_columns direct_exe preserve_col_names'; put 'preserve_tab_names server schema authdomain user password'; put 'prop name value uri urisrc $256.;'; put 'call missing (of _all_);'; put '/* get database value */'; put 'prop=''Connection.DBMS.Property.DB.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,database,"");'; put 'if database^='''' then database=''database=''!!quote(trim(database));'; put 'call symputx(''database'',database,''l'');'; put '/* get IGNORE_READ_ONLY_COLUMNS value */'; put 'prop=''Library.DBMS.Property.DBIROC.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,ignore_read_only_columns,"");'; put 'if ignore_read_only_columns^='''' then ignore_read_only_columns='; put '''ignore_read_only_columns=''!!ignore_read_only_columns;'; put 'call symputx(''ignore_read_only_columns'',ignore_read_only_columns,''l'');'; put '/* get DIRECT_EXE value */'; put 'prop=''Library.DBMS.Property.DirectExe.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,direct_exe,"");'; put 'if direct_exe^='''' then direct_exe=''direct_exe=''!!direct_exe;'; put 'call symputx(''direct_exe'',direct_exe,''l'');'; put '/* get PRESERVE_COL_NAMES value */'; put 'prop=''Library.DBMS.Property.PreserveColNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_col_names,"");'; put 'if preserve_col_names^='''' then preserve_col_names='; put '''preserve_col_names=''!!preserve_col_names;'; put 'call symputx(''preserve_col_names'',preserve_col_names,''l'');'; put '/* get PRESERVE_TAB_NAMES value */'; put '/* be careful with PRESERVE_TAB_NAMES=YES - it will mean your table will'; put 'become case sensitive!! */'; put 'prop=''Library.DBMS.Property.PreserveTabNames.Name.xmlKey.txt'';'; put 'rc=metadata_getprop("&liburi",prop,preserve_tab_names,"");'; put 'if preserve_tab_names^='''' then preserve_tab_names='; put '''preserve_tab_names=''!!preserve_tab_names;'; put 'call symputx(''preserve_tab_names'',preserve_tab_names,''l'');'; put '/* get SERVER value */'; put 'if metadata_getnasn("&liburi","LibraryConnection",1,uri)>0 then do;'; put 'prop=''Connection.DBMS.Property.SERVER.Name.xmlKey.txt'';'; put 'rc=metadata_getprop(uri,prop,server,"");'; put 'end;'; put 'if server^='''' then server=''server=''!!quote(cats(server));'; put 'call symputx(''server'',server,''l'');'; put '/* get SCHEMA value */'; put 'if metadata_getnasn("&liburi","UsingPackages",1,uri)>0 then do;'; put 'rc=metadata_getattr(uri,"SchemaName",schema);'; put 'end;'; put 'if schema^='''' then schema=''schema=''!!schema;'; put 'call symputx(''schema'',schema,''l'');'; put '/* get AUTHDOMAIN value */'; put '/* this is only useful if the user account contains that auth domain'; put 'if metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then do;'; put 'rc=metadata_getnasn(uri,"Domain",1,urisrc);'; put 'rc=metadata_getattr(urisrc,"Name",authdomain);'; put 'end;'; put 'if authdomain^='''' then authdomain=''authdomain=''!!quote(trim(authdomain));'; put '*/'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* get user & pass */'; put 'if authdomain='''' & metadata_getnasn("&liburi","DefaultLogin",1,uri)>0 then'; put 'do;'; put 'rc=metadata_getattr(uri,"UserID",user);'; put 'rc=metadata_getattr(uri,"Password",password);'; put 'end;'; put 'if user^='''' then do;'; put 'user=''user=''!!quote(trim(user));'; put 'password=''password=''!!quote(trim(password));'; put 'end;'; put 'call symputx(''user'',user,''l'');'; put 'call symputx(''password'',password,''l'');'; put '&md.put _all_;'; put 'run;'; put '%if %length(&open_passthrough)>0 %then %do;'; put '%put %str(WARN)ING: Passthrough option for postgres not yet supported;'; put '%return;'; put '%end;'; put '%else %do;'; put '%if &mdebug=1 %then %do;'; put '%put NOTE: Executing the following:/;'; put '%put NOTE- libname &libref POSTGRES &database &ignore_read_only_columns;'; put '%put NOTE- &direct_exe &preserve_col_names &preserve_tab_names;'; put '%put NOTE- &server &schema &authdomain &user &password //;'; put '%end;'; put 'libname &libref POSTGRES &database &ignore_read_only_columns &direct_exe'; put '&preserve_col_names &preserve_tab_names &server &schema &authdomain'; put '&user &password;'; put '%end;'; put '%end;'; put '%else %if &engine=ORACLE %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null_;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/* path */'; put 'rc=metadata_getprop(assocuri1,'; put '''Connection.Oracle.Property.PATH.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref ORACLE path=&path schema=&schema;'; put '%put NOTE- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref ORACLE path=&path schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine=SQLSVR %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.SQL.Property.Datasrc.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref SQLSVR datasrc=&path schema=&schema ;'; put '%put NOTE- user="&user" pass="XXX";'; put '%put NOTE-;'; put 'libname &libref SQLSVR datasrc=&path schema=&schema user="&user" pass="&pass";'; put '%end;'; put '%else %if &engine=TERADATA %then %do;'; put '%put NOTE: Obtaining &engine library details;'; put 'data _null;'; put 'length assocuri1 assocuri2 assocuri3 authdomain path schema userid'; put 'passwd $256;'; put 'call missing (of _all_);'; put '/* get auth domain */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri1);'; put 'rc=metadata_getnasn(assocuri1,''Domain'',1,assocuri2);'; put 'rc=metadata_getattr(assocuri2,"Name",authdomain);'; put 'call symputx(''authdomain'',authdomain,''l'');'; put '/*'; put 'rc=metadata_getnasn("&liburi",''DefaultLogin'',1,assocuri1);'; put 'rc=metadata_getattr(assocuri1,"UserID",userid);'; put 'rc=metadata_getattr(assocuri1,"Password",passwd);'; put 'call symputx(''user'',userid,''l'');'; put 'call symputx(''pass'',passwd,''l'');'; put '*/'; put '/* path */'; put 'rc=metadata_getnasn("&liburi",''LibraryConnection'',1,assocuri2);'; put 'rc=metadata_getprop(assocuri2,'; put '''Connection.Teradata.Property.SERVER.Name.xmlKey.txt'',path);'; put 'call symputx(''path'',path,''l'');'; put '/* schema */'; put 'rc=metadata_getnasn("&liburi",''UsingPackages'',1,assocuri3);'; put 'rc=metadata_getattr(assocuri3,''SchemaName'',schema);'; put 'call symputx(''schema'',schema,''l'');'; put 'run;'; put '%put NOTE: Executing the following:/; %put NOTE-;'; put '%put NOTE- libname &libref TERADATA server="&path" schema=&schema ;'; put '%put NOTe- authdomain=&authdomain;'; put '%put NOTE-;'; put 'libname &libref TERADATA server="&path" schema=&schema authdomain=&authdomain;'; put '%end;'; put '%else %if &engine= %then %do;'; put '%put NOTE: Libref &libref is not registered in metadata;'; put '%&mAbort.mp_abort('; put 'msg=%str(ERR)OR: Libref &libref is not registered in metadata'; put ',mac=mm_assigndirectlib.sas);'; put '%return;'; put '%end;'; put '%else %do;'; put '%put %str(WARN)ING: Engine &engine is currently unsupported;'; put '%put %str(WARN)ING- Please contact your support team.;'; put '%return;'; put '%end;'; put '%mend mm_assigndirectlib;'; put '%macro mm_getrepos('; put 'outds=work.mm_getrepos'; put ')/*/STORE SOURCE*/;'; put '* use a temporary fileref to hold the response;'; put 'filename response temp;'; put '/* get list of libraries */'; put 'proc metadata in='; put '"1"'; put 'out=response;'; put 'run;'; put '/* write the response to the log for debugging */'; put '/*'; put 'data _null_;'; put 'infile response lrecl=1048576;'; put 'input;'; put 'put _infile_;'; put 'run;'; put '*/'; put '/* create an XML map to read the response */'; put 'filename sxlemap temp;'; put 'data _null_;'; put 'file sxlemap;'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository";'; put 'put "";'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Id";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Name";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Desc";'; put 'put "";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@DefaultNS";'; put 'put "characterstring200";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryType";'; put 'put "characterstring20";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@RepositoryFormat";'; put 'put "characterstring10";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@Access";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@CurrentAccess";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@PauseState";'; put 'put "characterstring16";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Path";'; put 'put "";'; put 'put "characterstring256";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Engine";'; put 'put "";'; put 'put "characterstring8";'; put 'put '''';'; put 'put '''';'; put 'put "/GetRepositories/Repositories/Repository/@Options";'; put 'put "";'; put 'put "characterstring32";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataCreated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put '''';'; put 'put "";'; put 'put "/GetRepositories/Repositories/Repository/@MetadataUpdated";'; put 'put "characterstring24";'; put 'put '''';'; put 'put ''
'';'; put 'run;'; put 'libname _XML_ xml xmlfileref=response xmlmap=sxlemap;'; put 'proc sort data= _XML_.SASRepos out=&outds;'; put 'by name;'; put 'run;'; put '/* clear references */'; put 'filename sxlemap clear;'; put 'filename response clear;'; put 'libname _XML_ clear;'; put '%mend mm_getrepos;'; put '%macro dc_assignlib(type,libref,passthru=);'; put '%put &sysmacroname entry vars:;'; put '%put _local_;'; put '/* take current repository */'; put '%local repo repocnt x;'; put '%let repo=%sysfunc(getoption(metarepository));'; put '/* get list of repositories and filter */'; put '%mm_getrepos(outds=repos)'; put '%let repocnt=0;'; put 'data repos;'; put 'set repos;'; put 'where repositorytype in(''CUSTOM'',''FOUNDATION'')'; put '& upcase(name) ne "%upcase(&repo)";'; put 'keep id name ;'; put 'call symputx(cats(''repo'',_n_),name,''l'');'; put 'call symputx(''repocnt'',_n_,''l'');'; put 'run;'; put '/* find out which of these repositories has the libref we are searching for */'; put '%local lib_uri;'; put '%let lib_uri=NOTFOUND;'; put 'data _null_; /* check default repo first */'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri=NOTFOUND %then %do;'; put '%do x=1 %to &repocnt;'; put 'options metarepository=&&repo&x;'; put 'data _null_;'; put 'length lib_uri $256;'; put 'call missing (of _all_);'; put 'rc=metadata_getnobj("omsobj:SASLibrary?@Libref =''&libref''",1,lib_uri);'; put 'call symputx(''lib_uri'',coalescec(lib_uri,''NOTFOUND''),''l'');'; put 'run;'; put '%if &lib_uri ne NOTFOUND %then %let x=%eval(&repocnt+1);'; put '%end;'; put '%end;'; put '%if &type=READ %then %do;'; put '%mm_assignlib(&libref)'; put '%end;'; put '%else %if &type=WRITE %then %do;'; put '%mm_assigndirectlib(&libref,open_passthrough=&passthru)'; put '%end;'; put 'options metarepository=&repo;'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, 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 mm_webout.sas'; put '@brief Send data to/from SAS Stored Processes'; put '@details This macro should be added to the start of each Stored Process,'; put '**immediately** followed by a call to:'; put '%mm_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 '%mm_webout(OPEN)'; put '%mm_webout(ARR,some) * Array format, fast, suitable for large tables ;'; put '%mm_webout(OBJ,datasets) * Object format, easier to work with ;'; put 'Finally, wrap everything up send some helpful system variables too'; put '%mm_webout(CLOSE)'; put '@param [in] action Either FETCH, OPEN, ARR, OBJ or CLOSE'; put '@param [in] ds The dataset to send back to the frontend'; 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 [out] fref= (_webout) The fileref to which to write the JSON'; 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] 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 '@param [in] maxobs= (MAX) Provide an integer to limit the number of input rows'; put 'that should be converted to output JSON'; put '

SAS Macros

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

Related Macros

'; put '@li ms_webout.sas'; put '@li mv_webout.sas'; put '@version 9.3'; put '@author Allan Bowe'; put '**/'; 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,maxobs=10'; 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 webout(action,ds,dslabel=,fmt=,missing=NULL,showmeta=NO,maxobs=MAX);'; put '%mm_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 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 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 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(''"'',tranwrd(symget(''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(''"'',tranwrd(symget(''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 mm_getstpcode('; put 'tree=/User Folders/sasdemo/somestp'; put ',name='; put ',outloc=0'; put ',outref=0'; put ',mDebug=1'; put ',showlog=NO'; put ');'; put '%local mD;'; put '%if &mDebug=1 %then %let mD=;'; put '%else %let mD=%str(*);'; put '%&mD.put Executing &sysmacroname..sas;'; put '%&mD.put _local_;'; put '%if %length(&name)>0 %then %let name=/&name;'; put '/* first, check if STP exists */'; put '%local tsuri;'; put '%let tsuri=stopifempty ;'; put 'data _null_;'; put 'format type uri tsuri value $200.;'; put 'call missing (of _all_);'; put 'path="&tree&name(StoredProcess)";'; put '/* first, find the STP ID */'; put 'if metadata_pathobj("",path,"StoredProcess",type,uri)>0 then do;'; put '/* get sourcecode */'; put 'cnt=1;'; put 'do while (metadata_getnasn(uri,"Notes",cnt,tsuri)>0);'; put 'rc=metadata_getattr(tsuri,"Name",value);'; put '&mD.put tsuri= value=;'; put 'if value="SourceCode" then do;'; put '/* found it! */'; put 'rc=metadata_getattr(tsuri,"Id",value);'; put 'call symputx(''tsuri'',value,''l'');'; put 'stop;'; put 'end;'; put 'cnt+1;'; put 'end;'; put 'end;'; put 'else put (_all_)(=);'; put 'run;'; put '%mp_abort(iftrue= (&tsuri=stopifempty)'; put ',mac=mm_getstpcode'; put ',msg=%str(&tree&name.(StoredProcess) not found!)'; put ')'; put '/**'; put '* Now we can extract the textstore'; put '*/'; put 'filename __getdoc temp lrecl=10000000;'; put 'proc metadata'; put 'in="$METAREPOSITORY'; put ''; put 'SAS1"'; put 'out=__getdoc ;'; put 'run;'; put '/* find the beginning of the text */'; put '%local start;'; put 'data _null_;'; put 'infile __getdoc lrecl=10000;'; put 'input;'; put 'start=index(_infile_,''StoredText="'');'; put 'if start then do;'; put 'call symputx("start",start+11);'; put '*putlog ''"'' _infile_ ''"'';'; put 'end;'; put 'stop;'; put '%local outeng;'; put '%if "&outloc"="0" %then %let outeng=TEMP;'; put '%else %let outeng="&outloc";'; put '%local fref;'; put '%if &outref=0 %then %let fref=%mf_getuniquefileref();'; put '%else %let fref=&outref;'; put '/* read the content, byte by byte, resolving escaped chars */'; put 'filename &fref &outeng lrecl=100000;'; put 'data _null_;'; put 'length filein 8 fileid 8;'; put 'filein = fopen("__getdoc","I",1,"B");'; put 'fileid = fopen("&fref","O",1,"B");'; put 'rec = "20"x;'; put 'length entity $6;'; put 'do while(fread(filein)=0);'; put 'x+1;'; put 'if x>&start then do;'; put 'rc = fget(filein,rec,1);'; put 'if rec=''"'' then leave;'; put 'else if rec="&" then do;'; put 'entity=rec;'; put 'do until (rec=";");'; put 'if fread(filein) ne 0 then goto getout;'; put 'rc = fget(filein,rec,1);'; put 'entity=cats(entity,rec);'; put 'end;'; put 'select (entity);'; put 'when (''&'' ) rec=''&'' ;'; put 'when (''<'' ) rec=''<'' ;'; put 'when (''>'' ) rec=''>'' ;'; put 'when (''''') rec="''" ;'; put 'when (''"'') rec=''"'' ;'; put 'when ('' '') rec=''0A''x;'; put 'when ('' '') rec=''0D''x;'; put 'when (''$'' ) rec=''$'' ;'; put 'when ('' '') rec=''09''x;'; put 'otherwise putlog "%str(WARN)ING: missing value for " entity=;'; put 'end;'; put 'rc =fput(fileid, substr(rec,1,1));'; put 'rc =fwrite(fileid);'; put 'end;'; put 'else do;'; put 'rc =fput(fileid,rec);'; put 'rc =fwrite(fileid);'; put 'end;'; put 'end;'; put 'end;'; put 'getout:'; put 'rc=fclose(filein);'; put 'rc=fclose(fileid);'; put 'run;'; put '%if &showlog=YES %then %do;'; put 'data _null_;'; put 'infile &fref lrecl=32767 end=last;'; put 'input;'; put 'if _n_=1 then putlog ''>>stpcodeBEGIN<<'';'; put 'putlog _infile_;'; put 'if last then putlog ''>>stpcodeEND<<'';'; put 'run;'; put '%end;'; put 'filename __getdoc clear;'; put '%if &outref=0 %then %do;'; put 'filename &fref clear;'; put '%end;'; put '%mend mm_getstpcode;'; put '%macro dc_getsettings();'; put '%global _program;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(syscc=&syscc on entry (&syswarningtext &syserrortext))'; put ')'; put '%if %length(&_PROGRAM)>1 %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 '%let temploc=%sysfunc(pathname(work))/settings.txt;'; put '%mm_getstpcode(tree=&root/services/public'; put ',name=Data_Controller_Settings'; put ',outloc=&temploc'; put ')'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; put ',msg=%str(Unable to run getstpcode)'; put ')'; put 'filename _getsets "&temploc" lrecl=2000;'; put '/*'; put 'Do not use mp_include here - this puts a copy in every service, which creates'; put 'compilation problems when calling services from mp_include'; put '*/'; put '%inc _getsets/source2;'; put '%mp_abort(iftrue= (&syscc ne 0)'; put ',mac=&sysmacroname'; 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 '/* create dummy macros to prevent stpbegin / stpend from corrupting sessions */'; put '%macro stpbegin();'; put '%put NOTE: the STPBEGIN macro should not be used for web apps!;'; put '%mend stpbegin;'; put '%macro stpend();'; put '%put NOTE: the STPEND macro should not be used for web apps!;'; put '%mend stpend;'; 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; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let path=services/web9; %let service=index-html; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KICAgIDx0aXRsZT5EYXRhIENvbnRyb2xsZXIgZm9yIFNBU8KuPC90aXRsZT4KICAgIDwhLS0gPGJhc2UgaHJlZj0iLyI+IC0tPgoKICAgIDwhLS0gbWV0YSB0YWdzIC0tPgogICAgPG1l''@;'; put 'put ''dGEgbmFtZT0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IkNhcHR1cmUsIFJldmlldywgYW5kIEFwcHJvdmUiLz4KICAgIDxtZXRhIGl0ZW1wcm9wPSJuYW1lIiBjb250ZW50PSJEYXRhIENvbnRyb2xsZXIgZm9yIFNBU8KuIi8+CiAgICA8bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRl''@;'; put 'put ''bnQ9IkNhcHR1cmUsIFJldmlldywgYW5kIEFwcHJvdmUiLz4KICAgIDxtZXRhIGl0ZW1wcm9wPSJpbWFnZSIgY29udGVudD0iaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvL2ltZy9kY19iZ19Bc3NldC01QDJ4LnBuZyIvPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOnVybCIgY29udGVu''@;'; put 'put ''dD0iaHR0cDovL2RlbW8uZGF0YWNvbnRyb2xsZXIuaW8iLz4KICAgIDxtZXRhIHByb3BlcnR5PSJvZzp0eXBlIiBjb250ZW50PSJ3ZWJzaXRlIi8+CiAgICA8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9IkRhdGEgQ29udHJvbGxlciBmb3IgU0FTwq4iLz4KICAgIDxtZXRhIHBy''@;'; put 'put ''b3BlcnR5PSJvZzpkZXNjcmlwdGlvbiIgY29udGVudD0iQ2FwdHVyZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSIvPgogICAgPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL2RvY3MuZGF0YWNvbnRyb2xsZXIuaW8vaW1nL2RjX2JnX0Fzc2V0LTVAMngucG5nIi8+CiAg''@;'; put 'put ''ICA8bWV0YSBuYW1lPSJ0d2l0dGVyOmNhcmQiIGNvbnRlbnQ9InN1bW1hcnlfbGFyZ2VfaW1hZ2UiLz4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6dGl0bGUiIGNvbnRlbnQ9IkRhdGEgQ29udHJvbGxlciBmb3IgU0FTwq4iLz4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6ZGVzY3JpcHRpb24i''@;'; put 'put ''IGNvbnRlbnQ9IkNhcHR1cmUsIFJldmlldywgYW5kIEFwcHJvdmUiLz4KICAgIDxtZXRhIG5hbWU9InR3aXR0ZXI6aW1hZ2UiIGNvbnRlbnQ9Imh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pby9pbWcvZGNfYmdfQXNzZXQtNUAyeC5wbmciLz4KCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9y''@;'; put 'put ''dCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiLz4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSIvPgogICAgPGxpbmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9ImltYWdlcy9m''@;'; put 'put ''YXZpY29uLmljbyIvPgogIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzLjU1OTA3ZmM3NTFlMDc1NTguY3NzIj48L2hlYWQ+CgogIDwhLS0KICAgICMjIFNBU0pTIEFkYXB0ZXIgY29uZmlnIGRldGFpbHMgIyMKCiAgICAqIGFwcExvYzogVGhlIGxvY2F0aW9uIGluIG1ldGFk''@;'; put 'put ''YXRhIG9yIFNBUyBkcml2ZSB3aGVyZSBEQyB3aWxsIGJlIGRlcGxveWVkCiAgICAqIHNlcnZlclR5cGU6IGVpdGhlciBTQVM5LCBTQVNWSVlBIG9yIFNBU0pTCiAgICAqIGxvZ2luTWVjaGFuaXNtOiBVc2UgJ0RlZmF1bHQnIGZvciByZWd1bGFyICh1c2VyL3Bhc3MpIGxvZ2lucywgb3IgJ1Jl''@;'; put 'put ''ZGlyZWN0ZWQnIGZvciAyRkEvU1NPCiAgICAqIGRlYnVnOiBXaGV0aGVyIHRvIGVuYWJsZSBkZWJ1ZyBvbiBzdGFydHVwCgogICAgIyMgVml5YSBvbmx5IHNldHRpbmdzICMjCiAgICAqIGFkbWluR3JvdXA6IFRoaXMgZ3JvdXAgd2lsbCBoYXZlIHVucmVzdHJpY3RlZCBhY2Nlc3MgKFZpeWEg''@;'; put 'put ''T25seSkKICAgICogZGNQYXRoOiBUaGUgcGh5c2ljYWwgbG9jYXRpb24gaW4gd2hpY2ggdG8gZGVwbG95IHRoZSBzdGFnaW5nIGFyZWEgKFZpeWEgb25seSkKICAgICogdXNlQ29tcHV0ZUFwaTogQ29ubmVjdGlvbiBtZXRob2QgKFZpeWEgb25seSkKICAgICogY29udGV4dE5hbWU6IENvbXB1''@;'; put 'put ''dGUgQ29udGV4dCAoVml5YSBvbmx5KQoKICAtLT4KCiAgPGJvZHkgY2xhc3M9Im0tMCI+CiAgICA8bXktYXBwIHNlcnZlcnVybD0iaHR0cDovL2xvY2FsaG9zdDo1MDAwIiBhcHBsb2M9Ii9QdWJsaWMvYXBwL2RjIiBzZXJ2ZXJ0eXBlPSJTQVM5IiBsb2dpbm1lY2hhbmlzbT0iRGVmYXVsdCIg''@;'; put 'put ''ZGVidWc9ImZhbHNlIiB1c2Vjb21wdXRlYXBpPSJ0cnVlIiBjb250ZXh0bmFtZT0iU0FTIEpvYiBFeGVjdXRpb24gY29tcHV0ZSBjb250ZXh0IiBhZG1pbmdyb3VwPSJzZWMtc2FzOS1wcmQtaW50LXNhc3BsYXRmb3JtLTMwMDExNHNhc2pzIiBkY3BhdGg9Ii90bXAvZGMiIGhvdGxpY2VuY2Vr''@;'; put 'put ''ZXk9Im5vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uIj48L215LWFwcD4KICA8c2NyaXB0IHNyYz0icnVudGltZS42MWU3NzFiNDcyZWNiNTg4LmpzIiB0eXBlPSJtb2R1bGUiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJzY3JpcHRzLjdjYjFlOTRlMmZmYWQwY2QuanMiIGRlZmVyPjwvc2Ny''@;'; put 'put ''aXB0PjxzY3JpcHQgc3JjPSJtYWluLjIzMjFlYWMwMzg3YzhjMGMuanMiIHR5cGU9Im1vZHVsZSI+PC9zY3JpcHQ+PC9ib2R5Pgo8L2h0bWw+Cg=='';'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=main.2321eac0387c8c0c-js; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''dmFyIEpBdD1PYmplY3QuZGVmaW5lUHJvcGVydHksWEF0PU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLEtBdD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyxWTGU9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scywkQXQ9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxx''@;'; put 'put ''QXQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSx4TT1NYXRoLnBvdyxqTGU9KFhlLEplLEwpPT5KZSBpbiBYZT9KQXQoWGUsSmUse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOkx9KTpYZVtKZV09TCxtcz0oWGUsSmUpPT57Zm9y''@;'; put 'put ''KHZhciBMIGluIEplfHwoSmU9e30pKSRBdC5jYWxsKEplLEwpJiZqTGUoWGUsTCxKZVtMXSk7aWYoVkxlKWZvcih2YXIgTCBvZiBWTGUoSmUpKXFBdC5jYWxsKEplLEwpJiZqTGUoWGUsTCxKZVtMXSk7cmV0dXJuIFhlfSxHej0oWGUsSmUpPT5YQXQoWGUsS0F0KEplKSk7KHNlbGYud2VicGFj''@;'; put 'put ''a0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W10pLnB1c2goW1sxNzldLHs1Njc3MTpmdW5jdGlvbihYZSl7WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7dmFyIEw9e307ZnVuY3Rpb24gbWUoQil7aWYoTFtCXSlyZXR1cm4gTFtCXS5leHBvcnRz''@;'; put 'put ''O3ZhciBFPUxbQl09e2k6QixsOiExLGV4cG9ydHM6e319O3JldHVybiBKZVtCXS5jYWxsKEUuZXhwb3J0cyxFLEUuZXhwb3J0cyxtZSksRS5sPSEwLEUuZXhwb3J0c31yZXR1cm4gbWUubT1KZSxtZS5jPUwsbWUuZD1mdW5jdGlvbihCLEUsRWUpe21lLm8oQixFKXx8T2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KEIsRSx7ZW51bWVyYWJsZTohMCxnZXQ6RWV9KX0sbWUucj1mdW5jdGlvbihCKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoQixTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2Jq''@;'; put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KEIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxtZS50PWZ1bmN0aW9uKEIsRSl7aWYoMSZFJiYoQj1tZShCKSksOCZFfHw0JkUmJiJvYmplY3QiPT10eXBlb2YgQiYmQiYmQi5fX2VzTW9kdWxlKXJldHVybiBCO3ZhciBFZT1PYmplY3QuY3JlYXRlKG51bGwp''@;'; put 'put ''O2lmKG1lLnIoRWUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShFZSwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6Qn0pLDImRSYmInN0cmluZyIhPXR5cGVvZiBCKWZvcih2YXIgVSBpbiBCKW1lLmQoRWUsVSxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0uYmluZChudWxsLFUpKTtyZXR1''@;'; put 'put ''cm4gRWV9LG1lLm49ZnVuY3Rpb24oQil7dmFyIEU9QiYmQi5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIEIuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gQn07cmV0dXJuIG1lLmQoRSwiYSIsRSksRX0sbWUubz1mdW5jdGlvbihCLEUpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhh''@;'; put 'put ''c093blByb3BlcnR5LmNhbGwoQixFKX0sbWUucD0iIixtZShtZS5zPSIuL3Byb2plY3RzL2ljb25zL3NyYy9pbmRleC50cyIpfSh7Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoTCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTC5DbGFyaXR5SWNvbnNBcGk9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLEU9e30sRWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBVKCl7fXJldHVybiBPYmpl''@;'; put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoVSwiaW5zdGFuY2UiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVS5zaW5nbGVJbnN0YW5jZXx8KFUuc2luZ2xlSW5zdGFuY2U9bmV3IFUpLFUuc2luZ2xlSW5zdGFuY2V9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksVS5wcm90b3R5cGUudmFsaWRh''@;'; put 'put ''dGVOYW1lPWZ1bmN0aW9uKFEpe2lmKDA9PT1RLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlNoYXBlIG5hbWUgb3IgYWxpYXMgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmchIik7aWYoL1xzLy50ZXN0KFEpKXRocm93IG5ldyBFcnJvcigiU2hhcGUgbmFtZSBvciBhbGlhcyBtdXN0IG5vdCBj''@;'; put 'put ''b250YWluIGFueSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMhIik7cmV0dXJuITB9LFUucHJvdG90eXBlLm5vcm1hbGl6ZVNoYXBlTmFtZT1mdW5jdGlvbihRKXtyZXR1cm4gUS50b0xvd2VyQ2FzZSgpfSxVLnByb3RvdHlwZS5zZXRJY29uVGVtcGxhdGU9ZnVuY3Rpb24oUSxqKXt2YXIgcmU9ai50''@;'; put 'put ''cmltKCk7dGhpcy52YWxpZGF0ZU5hbWUoUSkmJihRPXRoaXMubm9ybWFsaXplU2hhcGVOYW1lKFEpLEVbUV0mJmRlbGV0ZSBFW1FdLEVbUV09cmUsQi5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2UuZW1pdENoYW5nZXMoUSxyZSkpfSxVLnByb3RvdHlwZS5zZXRJY29uQWxpYXNlcz1m''@;'; put 'put ''dW5jdGlvbihRLGoscmUpe2Zvcih2YXIgYWU9MCxZPXJlO2FlPFkubGVuZ3RoO2FlKyspe3ZhciBXPVlbYWVdO3RoaXMudmFsaWRhdGVOYW1lKFcpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoUSxXLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUVtqXX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFi''@;'; put 'put ''bGU6ITB9KX19LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihRKXtpZigib2JqZWN0IiE9dHlwZW9mIFEpdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxuICAgICAgICAgICAgICAg''@;'; put 'put ''IHsgInNoYXBlLW5hbWUiOiAic2hhcGUtdGVtcGxhdGUiIH0nKTtmb3IodmFyIGogaW4gUSlRLmhhc093blByb3BlcnR5KGopJiZ0aGlzLnNldEljb25UZW1wbGF0ZShqLFFbal0pfSxVLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oUSl7cmV0dXJuISFFW3RoaXMubm9ybWFsaXplU2hhcGVOYW1l''@;'; put 'put ''KFEpXX0sVS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKFEpe2lmKCFRKXJldHVybiBFO2lmKCJzdHJpbmciIT10eXBlb2YgUSl0aHJvdyBuZXcgVHlwZUVycm9yKCJPbmx5IHN0cmluZyBhcmd1bWVudCBpcyBhbGxvd2VkIGluIHRoaXMgbWV0aG9kLiIpO3JldHVybiBFW3RoaXMubm9ybWFsaXpl''@;'; put 'put ''U2hhcGVOYW1lKFEpXX0sVS5wcm90b3R5cGUuYWxpYXM9ZnVuY3Rpb24oUSl7aWYoIm9iamVjdCIhPXR5cGVvZiBRKXRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBmb2xsb3dpbmcgcGF0dGVybjpcbiAgICAgICAg''@;'; put 'put ''ICAgICAgICB7ICJzaGFwZS1uYW1lIjogWyJhbGlhcy1uYW1lIiwgLi4uXSB9Jyk7Zm9yKHZhciBqIGluIFEpaWYoUS5oYXNPd25Qcm9wZXJ0eShqKSl7aWYoIUUuaGFzT3duUHJvcGVydHkoaikpdGhyb3cgbmV3IEVycm9yKCdBbiBpY29uICInK2orIlwiIHlvdSBhcmUgdHJ5aW5nIHRvIHNl''@;'; put 'put ''dCBhbGlhc2VzIHRvIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIENsYXJpdHkgSWNvbnMgc2V0cyEiKTt0aGlzLnNldEljb25BbGlhc2VzKEUsaixRW2pdKX19LFV9KCk7TC5DbGFyaXR5SWNvbnNBcGk9RWV9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50cyI6ZnVuY3Rp''@;'; put 'put ''b24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNsYXJpdHlJY29uRWxlbWVudD12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1hcGkudHMiKSxFPW1lKCIuL3Byb2pl''@;'; put 'put ''Y3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50cyIpLEVlPTAsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7VS5jbGFzc05hbWU9ImlzLW9mZi1zY3JlZW4iO3ZhciBRPWZ1bmN0aW9uKCl7cmV0dXJuIEhUTUxFbGVtZW50LmFwcGx5KHRoaXMsYXJn''@;'; put 'put ''dW1lbnRzKX07ZnVuY3Rpb24gaigpe3ZhciByZT1RLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gcmUuY2xySWNvblVuaXFJZD0iX2Nscl9pY29uXyIrRWUsRWUrKyxyZX0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3QmJihRPWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3QuY29uc3RydWN0''@;'; put 'put ''KEhUTUxFbGVtZW50LGFyZ3VtZW50cyx0aGlzLmNvbnN0cnVjdG9yKX0pLEwuQ2xhcml0eUljb25FbGVtZW50PWosai5vYnNlcnZlZEF0dHJpYnV0ZXM9WyJzaGFwZSIsInNpemUiLCJ0aXRsZSJdLChqLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEhUTUxFbGVtZW50LnByb3RvdHlwZSx7Y29u''@;'; put 'put ''c3RydWN0b3I6e2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpqfX0pKS5jb25zdHJ1Y3Rvcj1qLGoucHJvdG90eXBlLl9hcHBlbmRDdXN0b21UaXRsZT1mdW5jdGlvbigpe3ZhciByZT1VLmNsb25lTm9kZSghMSk7cmUuaWQ9dGhpcy5jbHJJY29uVW5pcUlkLHJlLnRleHRDb250''@;'; put 'put ''ZW50PXRoaXMuY3VycmVudFRpdGxlQXR0clZhbCx0aGlzLmFwcGVuZENoaWxkKHJlKX0sai5wcm90b3R5cGUuX3NldEljb25TaXplPWZ1bmN0aW9uKHJlKXshTnVtYmVyKHJlKXx8TnVtYmVyKHJlKTwwPyh0aGlzLnN0eWxlLndpZHRoPW51bGwsdGhpcy5zdHlsZS5oZWlnaHQ9bnVsbCk6KHRo''@;'; put 'put ''aXMuc3R5bGUud2lkdGg9cmUrInB4Iix0aGlzLnN0eWxlLmhlaWdodD1yZSsicHgiKX0sai5wcm90b3R5cGUuX25vcm1hbGl6ZVNoYXBlPWZ1bmN0aW9uKHJlKXtyZXR1cm4gcmUuc3BsaXQoL1xzLylbMF0udG9Mb3dlckNhc2UoKX0sai5wcm90b3R5cGUuY29ubmVjdGVkQ2FsbGJhY2s9ZnVu''@;'; put 'put ''Y3Rpb24oKXt2YXIgcmU9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpKXt2YXIgYWU9dGhpcy5nZXRBdHRyaWJ1dGUoInNpemUiKTt0aGlzLmN1cnJlbnRTaXplQXR0clZh''@;'; put 'put ''bCE9PWFlJiYodGhpcy5jdXJyZW50U2l6ZUF0dHJWYWw9YWUsdGhpcy5fc2V0SWNvblNpemUoYWUpKX1pZih0aGlzLmhhc0F0dHJpYnV0ZSgic2hhcGUiKSl7dmFyIFk9dGhpcy5fbm9ybWFsaXplU2hhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInNoYXBlIikpO2lmKHRoaXMuX3NoYXBlVGVtcGxh''@;'; put 'put ''dGVTdWJzY3JpcHRpb249RS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8oWSxmdW5jdGlvbih0ZSl7cmUuX2luamVjdFRlbXBsYXRlKHRlKX0pLHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD1ZLCFCLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5j''@;'; put 'put ''dXJyZW50U2hhcGVBdHRyVmFsKSlyZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7dmFyIFc9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCk7aWYoVz09PXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUpcmV0dXJuO3Ro''@;'; put 'put ''aXMuY3VycmVudFNoYXBlVGVtcGxhdGU9V31pZih0aGlzLmhhc0F0dHJpYnV0ZSgidGl0bGUiKSl7dmFyIE49dGhpcy5nZXRBdHRyaWJ1dGUoInRpdGxlIik7aWYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsIT09TiYmKHRoaXMuY3VycmVudFRpdGxlQXR0clZhbD1OKSwhdGhpcy5jdXJyZW50''@;'; put 'put ''U2hhcGVBdHRyVmFsKXJldHVybn10aGlzLl9pbmplY3RUZW1wbGF0ZSgpfSxqLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s9ZnVuY3Rpb24ocmUsYWUsWSl7dmFyIFc9dGhpcztpZigic2l6ZSI9PT1yZSYmdGhpcy5fc2V0SWNvblNpemUoWSksInNoYXBlIj09PXJlKXtpZih0''@;'; put 'put ''aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWw9dGhpcy5fbm9ybWFsaXplU2hhcGUoWSksdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmKHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24oKSx0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uPUUuU2hhcGVUZW1wbGF0ZU9i''@;'; put 'put ''c2VydmVyLmluc3RhbmNlLnN1YnNjcmliZVRvKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCxmdW5jdGlvbihOKXtXLl9pbmplY3RUZW1wbGF0ZShOKX0pKSwhQi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuaGFzKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpcmV0dXJuIHZvaWQgdGhpcy5f''@;'; put 'put ''aW5qZWN0RXJyb3JUZW1wbGF0ZSgpO3RoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCl9InRpdGxlIj09PXJlJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPVksIXRoaXMuY3VycmVudFNoYXBl''@;'; put 'put ''QXR0clZhbCl8fHRoaXMuX2luamVjdFRlbXBsYXRlKCl9LGoucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrPWZ1bmN0aW9uKCl7dGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpfSxqLnByb3RvdHlwZS5fc2V0QXJp''@;'; put 'put ''YUxhYmVsbGVkQnk9ZnVuY3Rpb24oKXt2YXIgcmU9dGhpcy5nZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWxsZWRieSIpLFk9dGhpcy5xdWVyeVNlbGVjdG9yKCJzdmciKXx8dGhpcztyZT9yZSYmcmUuaW5kZXhPZih0aGlzLmNsckljb25VbmlxSWQpPDAmJlkuc2V0QXR0cmlidXRlKCJhcmlhLWxh''@;'; put 'put ''YmVsbGVkYnkiLHJlKyIgIit0aGlzLmNsckljb25VbmlxSWQpOlkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLHRoaXMuY2xySWNvblVuaXFJZCl9LGoucHJvdG90eXBlLl9pbmplY3RUZW1wbGF0ZT1mdW5jdGlvbihyZSl7cmUmJnJlIT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0''@;'; put 'put ''ZSYmKHRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9cmUpLHRoaXMuaW5uZXJIVE1MPXRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGUsdGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsJiYodGhpcy5fc2V0QXJpYUxhYmVsbGVkQnkoKSx0aGlzLl9hcHBlbmRDdXN0b21UaXRsZSgpKX0sai5wcm90b3R5''@;'; put 'put ''cGUuX2luamVjdEVycm9yVGVtcGxhdGU9ZnVuY3Rpb24oKXt0aGlzLmN1cnJlbnRTaGFwZVRlbXBsYXRlPUIuQ2xhcml0eUljb25zQXBpLmluc3RhbmNlLmdldCgiZXJyb3IiKSx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzIjpmdW5jdGlv''@;'; put 'put ''bihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ2xhcml0eUljb25zPXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLEU9bWUoIi4vcHJvamVjdHMvaWNv''@;'; put 'put ''bnMvc3JjL2Nsci1pY29ucy1lbGVtZW50LnRzIiksRWU9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyIpLFU9Qi5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2U7TC5DbGFyaXR5SWNvbnM9VSxVLmFkZChFZS5Db3JlU2hhcGVzKSwidW5kZWZpbmVkIiE9dHlw''@;'; put 'put ''ZW9mIHdpbmRvdyYmKHdpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIil8fCh3aW5kb3cuQ2xhcml0eUljb25zPVUpLGN1c3RvbUVsZW1lbnRzLmdldCgiY2xyLWljb24iKXx8Y3VzdG9tRWxlbWVudHMuZGVmaW5lKCJjbHItaWNvbiIsRS5DbGFyaXR5SWNvbkVsZW1lbnQpKX0s''@;'; put 'put ''Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNvcmVTaGFwZXM9TC5DbHJTaGFwZUFycm93PUwuQ2xyU2hhcGVT''@;'; put 'put ''dGVwRm9yd2FyZDI9TC5DbHJTaGFwZUV5ZUhpZGU9TC5DbHJTaGFwZUV5ZT1MLkNsclNoYXBlRXZlbnQ9TC5DbHJTaGFwZUNhbGVuZGFyPUwuQ2xyU2hhcGVBbmdsZURvdWJsZT1MLkNsclNoYXBlVmlld0NvbHVtbnM9TC5DbHJTaGFwZVNlYXJjaD1MLkNsclNoYXBlVm1CdWc9TC5DbHJTaGFw''@;'; put 'put ''ZUZpbHRlckdyaWRDaXJjbGU9TC5DbHJTaGFwZUZpbHRlckdyaWQ9TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWw9TC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbD1MLkNsclNoYXBlQ2xvdWQ9TC5DbHJTaGFwZUltYWdlPUwuQ2xyU2hhcGVCZWxsPUwuQ2xyU2hhcGVGb2xkZXJPcGVuPUwu''@;'; put 'put ''Q2xyU2hhcGVGb2xkZXI9TC5DbHJTaGFwZUFuZ2xlPUwuQ2xyU2hhcGVVc2VyPUwuQ2xyU2hhcGVCYXJzPUwuQ2xyU2hhcGVIZWxwSW5mbz1MLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPUwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkPUwuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQ9TC5DbHJTaGFw''@;'; put 'put ''ZUluZm9TdGFuZGFyZD1MLkNsclNoYXBlSW5mb0NpcmNsZT1MLkNsclNoYXBlQ2hlY2tDaXJjbGU9TC5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlPUwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlPUwuQ2xyU2hhcGVUaW1lcz1MLkNsclNoYXBlQ2hlY2s9TC5DbHJTaGFwZUNvZz1MLkNs''@;'; put 'put ''clNoYXBlSG9tZT1MLkNsclNoYXBlVW5rbm93blN0YXR1cz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNo''@;'; put 'put ''YXBlVW5rbm93blN0YXR1cz0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjks''@;'; put 'put ''MCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oiLz4nKSxMLkNsclNoYXBlSG9tZT0oMCxFLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIuMjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAsMCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMs''@;'; put 'put ''MTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTkuNzZaIi8+JyksTC5DbHJTaGFwZUNvZz0oMCxFLmNs''@;'; put 'put ''ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4xLDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01''@;'; put 'put ''YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwxLjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45''@;'; put 'put ''bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcu''@;'; put 'put ''OSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40''@;'; put 'put ''LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIu''@;'; put 'put ''NC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwt''@;'; put 'put ''MC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0w''@;'; put 'put ''LjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44''@;'; put 'put ''bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMwLDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUt''@;'; put 'put ''NXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42''@;'; put 'put ''LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwt''@;'; put 'put ''MC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAu''@;'; put 'put ''Mi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVs''@;'; put 'put ''LTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlDNSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVj''@;'; put 'put ''LTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwyLjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42''@;'; put 'put ''LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUsMC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0x''@;'; put 'put ''LjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRn''@;'; put 'put ''ZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMuNiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAu''@;'; put 'put ''MywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMs''@;'; put 'put ''MS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4y''@;'; put 'put ''LTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1''@;'; put 'put ''LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIu''@;'; put 'put ''NGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSww''@;'; put 'put ''LjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0x''@;'; put 'put ''LjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQi''@;'; put 'put ''IGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3''@;'; put 'put ''LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0zLjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQx''@;'; put 'put ''LDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSww''@;'; put 'put ''LDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2''@;'; put 'put ''LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAs''@;'; put 'put ''MCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1''@;'; put 'put ''LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEy''@;'; put 'put ''LjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0xLDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFs''@;'; put 'put ''LTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAsLjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAs''@;'; put 'put ''MCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4zOGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhh''@;'; put 'put ''MTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42''@;'; put 'put ''MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFk''@;'; put 'put ''Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIyLjg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUz''@;'; put 'put ''LDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIu''@;'; put 'put ''MTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42''@;'; put 'put ''MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45''@;'; put 'put ''NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSww''@;'; put 'put ''LDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxMLkNsclNoYXBlVGltZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwx''@;'; put 'put ''LDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+JyksTC5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJp''@;'; put 'put ''YW5nbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEuMywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJN''@;'; put 'put ''MzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCwwLDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCww''@;'; put 'put ''LDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMs''@;'; put 'put ''MywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4n''@;'; put 'put ''KSxMLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgs''@;'; put 'put ''MTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMywwLDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgs''@;'; put 'put ''MjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoi''@;'; put 'put ''Lz4nKSxMLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAs''@;'; put 'put ''MTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQx''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCwwLDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40''@;'; put 'put ''LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLEwuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0y''@;'; put 'put ''aDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxMLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCwwLDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40''@;'; put 'put ''LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxMLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1''@;'; put 'put ''LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYs''@;'; put 'put ''MTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksTC5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEy''@;'; put 'put ''YTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQs''@;'; put 'put ''MCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAs''@;'; put 'put ''MSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksTC5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkEx''@;'; put 'put ''LDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4''@;'; put 'put ''NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjExNzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMw''@;'; put 'put ''LjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAxMDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUs''@;'; put 'put ''MjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwyOS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3''@;'; put 'put ''IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMuMDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUs''@;'; put 'put ''MjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAxMDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAx''@;'; put 'put ''Ni44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcs''@;'; put 'put ''MjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1''@;'; put 'put ''WiIvPicpLEwuQ2xyU2hhcGVIZWxwSW5mbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzIt''@;'; put 'put ''OS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCww''@;'; put 'put ''LDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDExWm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIu''@;'; put 'put ''NSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAsMS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44''@;'; put 'put ''Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEs''@;'; put 'put ''MCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0z''@;'; put 'put ''LjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEyLjc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAs''@;'; put 'put ''MCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJhcnM9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i''@;'; put 'put ''TTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdIMzJhMSwxLDAsMCwxLDAsMloiLz4nKSxMLkNsclNo''@;'; put 'put ''YXBlVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwy''@;'; put 'put ''MiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDIt''@;'; put 'put ''MlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdh''@;'; put 'put ''Nyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwy''@;'; put 'put ''LDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44''@;'; put 'put ''NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; put 'put ''ZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwx''@;'; put 'put ''LjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIx''@;'; put 'put ''OCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNo''@;'; put 'put ''MjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42''@;'; put 'put ''aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkExLjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFw''@;'; put 'put ''ZUFuZ2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCww''@;'; put 'put ''LDIuNDUtMi4zNloiLz4nKSxMLkNsclNoYXBlRm9sZGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEy''@;'; put 'put ''LDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4yOS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCww''@;'; put 'put ''LDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCww''@;'; put 'put ''LDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1''@;'; put 'put ''LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEu''@;'; put 'put ''MjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1''@;'; put 'put ''SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h''@;'; put 'put ''bGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRa''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAs''@;'; put 'put ''MCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlI''@;'; put 'put ''MTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJM''@;'; put 'put ''MTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42''@;'; put 'put ''NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTks''@;'; put 'put ''MCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3''@;'; put 'put ''LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0''@;'; put 'put ''ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCww''@;'; put 'put ''LC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAu''@;'; put 'put ''MzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJh''@;'; put 'put ''MiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwxLS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCww''@;'; put 'put ''LTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcs''@;'; put 'put ''MS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2''@;'; put 'put ''LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4x''@;'; put 'put ''OS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFw''@;'; put 'put ''ZUJlbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAs''@;'; put 'put ''MTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEs''@;'; put 'put ''MWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwxLDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAs''@;'; put 'put ''MCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCwwLDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAs''@;'; put 'put ''MCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45''@;'; put 'put ''MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0''@;'; put 'put ''LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0y''@;'; put 'put ''LjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFoMjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSww''@;'; put 'put ''LDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAsMCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMyww''@;'; put 'put ''LDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcs''@;'; put 'put ''MCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIuODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNyww''@;'; put 'put ''LDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMyLTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42Nyww''@;'; put 'put ''VjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlSW1hZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; put 'put ''MlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAsOC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3''@;'; put 'put ''LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYu''@;'; put 'put ''NzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMyww''@;'; put 'put ''LDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAs''@;'; put 'put ''MCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3''@;'; put 'put ''VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45''@;'; put 'put ''bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZUNsb3VkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwxNi42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5''@;'; put 'put ''LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwzMywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02''@;'; put 'put ''LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCww''@;'; put 'put ''LC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcu''@;'; put 'put ''NjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4xMkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEw''@;'; put 'put ''LjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; put 'put ''dGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkx''@;'; put 'put ''LTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44''@;'; put 'put ''Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0y''@;'; put 'put ''OSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZa''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSwwLTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEw''@;'; put 'put ''LjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3''@;'; put 'put ''LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; put 'put ''NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsPSgwLEUuY2xySWNvblNWRykoJzxj''@;'; put 'put ''aXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJj''@;'; put 'put ''bGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4''@;'; put 'put ''IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUZpbHRlckdyaWQ9KDAsRS5jbHJJ''@;'; put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0uMjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRB''@;'; put 'put ''MS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEu''@;'; put 'put ''MTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4n''@;'; put 'put ''KSxMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwx''@;'; put 'put ''LDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAsMSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCww''@;'; put 'put ''LC4xNS0uMzVWMTFaIi8+JyksTC5DbHJTaGFwZVZtQnVnPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0Ljgz''@;'; put 'put ''YTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSww''@;'; put 'put ''LDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMyww''@;'; put 'put ''LDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkzLDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAs''@;'; put 'put ''MC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUuMDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0u''@;'; put 'put ''MWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNywwLDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEu''@;'; put 'put ''Mi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmlsbD0iI2ZmZmZmZiIvPicpLEwuQ2xyU2hhcGVTZWFy''@;'; put 'put ''Y2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0wLTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMs''@;'; put 'put ''MCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSwwLDM1LDMzLjI5WiIvPicpLEwuQ2xyU2hhcGVWaWV3''@;'; put 'put ''Q29sdW1ucz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFpt''@;'; put 'put ''MTAsMEgxNVY3aDhaIi8+JyksTC5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0uMjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAs''@;'; put 'put ''MS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMw''@;'; put 'put ''LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLEwuQ2xyU2hhcGVDYWxlbmRhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZI''@;'; put 'put ''MjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIi''@;'; put 'put ''IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIy''@;'; put 'put ''MCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIg''@;'; put 'put ''aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlB''@;'; put 'put ''MSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFk''@;'; put 'put ''Z2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIg''@;'; put 'put ''aGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2Vk''@;'; put 'put ''IiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdp''@;'; put 'put ''ZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIy''@;'; put 'put ''LjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUs''@;'; put 'put ''MzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIg''@;'; put 'put ''eT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRo''@;'; put 'put ''PSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs''@;'; put 'put ''MCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCww''@;'; put 'put ''LDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgy''@;'; put 'put ''Wm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0x''@;'; put 'put ''MCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEs''@;'; put 'put ''MCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEu''@;'; put 'put ''NzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEw''@;'; put 'put ''SDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1i''@;'; put 'put ''YWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIu''@;'; put 'put ''MlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRW''@;'; put 'put ''MjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRl''@;'; put 'put ''ZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; put 'put ''NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRXZlbnQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwz''@;'; put 'put ''Mi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''NSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAuNWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAs''@;'; put 'put ''MCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYz''@;'; put 'put ''QTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwy''@;'; put 'put ''LDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9''@;'; put 'put ''IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+''@;'; put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIzLS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRh''@;'; put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjgu''@;'; put 'put ''NUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwx''@;'; put 'put ''LDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2''@;'; put 'put ''LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYz''@;'; put 'put ''MC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmEx''@;'; put 'put ''LjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwx''@;'; put 'put ''MFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAs''@;'; put 'put ''MSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAs''@;'; put 'put ''MzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCww''@;'; put 'put ''LDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIs''@;'; put 'put ''Mi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVptLTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRB''@;'; put 'put ''MS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIg''@;'; put 'put ''Y3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVFeWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44Miwx''@;'; put 'put ''MHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwx''@;'; put 'put ''OC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5''@;'; put 'put ''LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4nKSxMLkNsclNoYXBlRXllSGlkZT0oMCxFLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4wNkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43''@;'; put 'put ''OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBh''@;'; put 'put ''MTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlpt''@;'; put 'put ''OS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44Niwx''@;'; put 'put ''LjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcsMTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZs''@;'; put 'put ''OC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0x''@;'; put 'put ''MGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMsMTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCww''@;'; put 'put ''LDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIsMjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRo''@;'; put 'put ''MEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43''@;'; put 'put ''LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQsMTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44''@;'; put 'put ''MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksTC5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMiOkwuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6''@;'; put 'put ''TC5DbHJTaGFwZUhvbWUsY29nOkwuQ2xyU2hhcGVDb2csY2hlY2s6TC5DbHJTaGFwZUNoZWNrLHRpbWVzOkwuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNsYW1hdGlvbi1jaXJjbGUiOkwuQ2xyU2hhcGVFeGNs''@;'; put 'put ''YW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpMLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpMLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6TC5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1zdGFuZGFyZCI6TC5DbHJTaGFwZVN1Y2Nlc3NTdGFu''@;'; put 'put ''ZGFyZCwiZXJyb3Itc3RhbmRhcmQiOkwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpMLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOkwuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOkwuQ2xyU2hhcGVCYXJzLHVzZXI6TC5DbHJTaGFwZVVzZXIsYW5n''@;'; put 'put ''bGU6TC5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpMLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6TC5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpMLkNsclNoYXBlQmVsbCxpbWFnZTpMLkNsclNoYXBlSW1hZ2UsY2xvdWQ6TC5DbHJTaGFwZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpM''@;'; put 'put ''LkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpMLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVn''@;'; put 'put ''IjpMLkNsclNoYXBlVm1CdWcsc2VhcmNoOkwuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6TC5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOkwuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpMLkNsclNoYXBlQ2FsZW5kYXIsZXZlbnQ6TC5DbHJTaGFwZUV2ZW50''@;'; put 'put ''LGV5ZTpMLkNsclNoYXBlRXllLCJleWUtaGlkZSI6TC5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpMLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OkwuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ29yZVNoYXBlcywiaG91c2UiLCgwLEIuZGVzY3Jp''@;'; put 'put ''cHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ29yZVNoYXBlcywic3VjY2VzcyIs''@;'; put 'put ''KDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjbG9zZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMudGltZXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVz''@;'; put 'put ''LCJ3YXJuaW5nIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImVycm9yIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24t''@;'; put 'put ''Y2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJpbmZvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm1lbnUiLCgwLEIuZGVzY3JpcHRvckNv''@;'; put 'put ''bmZpZykoTC5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjYXJldCIsKDAsQi5kZXNj''@;'; put 'put ''cmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm5v''@;'; put 'put ''dGlmaWNhdGlvbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVj''@;'; put 'put ''dHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuZGVzY3JpcHRvckNvbmZpZz12b2lkIDAsTC5kZXNjcmlwdG9yQ29uZmln''@;'; put 'put ''PWZ1bmN0aW9uIEIoRSl7cmV0dXJue2VudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwLHZhbHVlOkV9fX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3NoYXBlLXRlbXBsYXRlLW9ic2VydmVyLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2Jq''@;'; put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuU2hhcGVUZW1wbGF0ZU9ic2VydmVyPUwuY2hhbmdlSGFuZGxlckNhbGxiYWNrcz12b2lkIDAsTC5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXt9O3ZhciBCPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gRSgpe3RoaXMu''@;'; put 'put ''Y2FsbGJhY2tzPUwuY2hhbmdlSGFuZGxlckNhbGxiYWNrc31yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEUsImluc3RhbmNlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEUuc2luZ2xlSW5zdGFuY2V8fChFLnNpbmdsZUluc3RhbmNlPW5ldyBFKSxFLnNpbmdsZUluc3RhbmNlfSxlbnVt''@;'; put 'put ''ZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLEUucHJvdG90eXBlLnN1YnNjcmliZVRvPWZ1bmN0aW9uKEVlLFUpe3ZhciBRPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW0VlXT8tMT09PXRoaXMuY2FsbGJhY2tzW0VlXS5pbmRleE9mKFUpJiZ0aGlzLmNhbGxiYWNrc1tFZV0ucHVzaChV''@;'; put 'put ''KTp0aGlzLmNhbGxiYWNrc1tFZV09W1VdLGZ1bmN0aW9uKCl7dmFyIGo9US5jYWxsYmFja3NbRWVdLmluZGV4T2YoVSk7US5jYWxsYmFja3NbRWVdLnNwbGljZShqLDEpLDA9PT1RLmNhbGxiYWNrc1tFZV0ubGVuZ3RoJiZkZWxldGUgUS5jYWxsYmFja3NbRWVdfX0sRS5wcm90b3R5cGUuZW1p''@;'; put 'put ''dENoYW5nZXM9ZnVuY3Rpb24oRWUsVSl7dGhpcy5jYWxsYmFja3NbRWVdJiZ0aGlzLmNhbGxiYWNrc1tFZV0ubWFwKGZ1bmN0aW9uKFEpe1EoVSl9KX0sRX0oKTtMLlNoYXBlVGVtcGxhdGVPYnNlcnZlcj1CfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3Iu''@;'; put 'put ''dHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksTC5jbHJJY29uU1ZHPXZvaWQgMDtMLmNsckljb25TVkc9ZnVuY3Rpb24gVShRKXt2YXIgaj0iIjtyZXR1cm4gUS5pbmRleE9mKCItLWJhZGdl''@;'; put 'put ''ZCIpPi0xJiYoais9ImNhbi1iYWRnZSAiKSxRLmluZGV4T2YoIi0tYWxlcnRlZCIpPi0xJiYoais9ImNhbi1hbGVydCAiKSxRLmluZGV4T2YoImNsci1pLXNvbGlkIik+LTEmJihqKz0iaGFzLXNvbGlkICIpLChqPyc8c3ZnIHZlcnNpb249IjEuMSIgY2xhc3M9IicraisnIiB2aWV3Qm94PSIw''@;'; put 'put ''IDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9sZT0iaW1nIj4nOic8c3Zn''@;'; put 'put ''IHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDM2IDM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCBtZWV0IlxuICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIGZvY3VzYWJsZT0i''@;'; put 'put ''ZmFsc2UiIHJvbGU9ImltZyI+JykrUSsiPC9zdmc+In19fSl9LDkzODc3OmZ1bmN0aW9uKFhlKXtYZS5leHBvcnRzPWZ1bmN0aW9uKEplKXt2YXIgTD17fTtmdW5jdGlvbiBtZShCKXtpZihMW0JdKXJldHVybiBMW0JdLmV4cG9ydHM7dmFyIEU9TFtCXT17aTpCLGw6ITEsZXhwb3J0czp7fX07''@;'; put 'put ''cmV0dXJuIEplW0JdLmNhbGwoRS5leHBvcnRzLEUsRS5leHBvcnRzLG1lKSxFLmw9ITAsRS5leHBvcnRzfXJldHVybiBtZS5tPUplLG1lLmM9TCxtZS5kPWZ1bmN0aW9uKEIsRSxFZSl7bWUubyhCLEUpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoQixFLHtlbnVtZXJhYmxlOiEwLGdldDpFZX0p''@;'; put 'put ''fSxtZS5yPWZ1bmN0aW9uKEIpeyJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQiwiX19lc01vZHVsZSIs''@;'; put 'put ''e3ZhbHVlOiEwfSl9LG1lLnQ9ZnVuY3Rpb24oQixFKXtpZigxJkUmJihCPW1lKEIpKSw4JkV8fDQmRSYmIm9iamVjdCI9PXR5cGVvZiBCJiZCJiZCLl9fZXNNb2R1bGUpcmV0dXJuIEI7dmFyIEVlPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobWUucihFZSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; put 'put ''KEVlLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpCfSksMiZFJiYic3RyaW5nIiE9dHlwZW9mIEIpZm9yKHZhciBVIGluIEIpbWUuZChFZSxVLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfS5iaW5kKG51bGwsVSkpO3JldHVybiBFZX0sbWUubj1mdW5jdGlvbihCKXt2YXIgRT1CJiZC''@;'; put 'put ''Ll9fZXNNb2R1bGU/ZnVuY3Rpb24oKXtyZXR1cm4gQi5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiBCfTtyZXR1cm4gbWUuZChFLCJhIixFKSxFfSxtZS5vPWZ1bmN0aW9uKEIsRSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChCLEUpfSxtZS5wPSIiLG1l''@;'; put 'put ''KG1lLnM9Ii4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9hbGwtc2hhcGVzLnRzIil9KHsiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01vZHVsZSIs''@;'; put 'put ''e3ZhbHVlOiEwfSksTC5BbGxTaGFwZXM9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvbW1lcmNlLXNoYXBlcy50cyIpLEVlPW1lKCIuL3Byb2plY3RzL2ljb25z''@;'; put 'put ''L3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxVPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvZXNzZW50aWFsLXNoYXBlcy50cyIpLFE9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9tZWRpYS1zaGFwZXMudHMiKSxqPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9z''@;'; put 'put ''aGFwZXMvc29jaWFsLXNoYXBlcy50cyIpLHJlPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiKSxhZT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RleHQtZWRpdC1zaGFwZXMudHMiKSxZPW1lKCIuL3Byb2plY3RzL2ljb25zL3Ny''@;'; put 'put ''Yy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyIpLFc9W0VlLkNvcmVTaGFwZXMsRS5Db21tZXJjZVNoYXBlcyxVLkVzc2VudGlhbFNoYXBlcyxRLk1lZGlhU2hhcGVzLGouU29jaWFsU2hhcGVzLHJlLlRlY2hub2xvZ3lTaGFwZXMsWS5UcmF2ZWxTaGFwZXMsQi5DaGFydFNoYXBlcyxhZS5UZXh0''@;'; put 'put ''RWRpdFNoYXBlc10sTj17fTtMLkFsbFNoYXBlcz1OO2Zvcih2YXIgdGU9MCxLPVc7dGU8Sy5sZW5ndGg7dGUrKyl7dmFyIEo9S1t0ZV07Zm9yKHZhciBzZSBpbiBKKUouaGFzT3duUHJvcGVydHkoc2UpJiYoTltzZV09SltzZV0pfSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cu''@;'; put 'put ''aGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChOKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jaGFydC1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19l''@;'; put 'put ''c01vZHVsZSIse3ZhbHVlOiEwfSksTC5DaGFydFNoYXBlcz1MLkNsclNoYXBlQmVsbEN1cnZlPUwuQ2xyU2hhcGVUaWNrQ2hhcnQ9TC5DbHJTaGFwZVNjYXR0ZXJQbG90PUwuQ2xyU2hhcGVQaWVDaGFydD1MLkNsclNoYXBlTGluZUNoYXJ0PUwuQ2xyU2hhcGVIZWF0TWFwPUwuQ2xyU2hhcGVH''@;'; put 'put ''cmlkQ2hhcnQ9TC5DbHJTaGFwZUN1cnZlQ2hhcnQ9TC5DbHJTaGFwZUNsb3VkQ2hhcnQ9TC5DbHJTaGFwZUJ1YmJsZUNoYXJ0PUwuQ2xyU2hhcGVCb3hQbG90PUwuQ2xyU2hhcGVCYXJDaGFydD1MLkNsclNoYXBlQXhpc0NoYXJ0PXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9z''@;'; put 'put ''cmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxFPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpO0wuQ2xyU2hhcGVBeGlzQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQg''@;'; put 'put ''NyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQu''@;'; put 'put ''NzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gNi4wMDcgMjYuNzMxIEwg''@;'; put 'put ''MjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAu''@;'; put 'put ''NjUgNiAxMS4wMSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBD''@;'; put 'put ''IDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEz''@;'; put 'put ''LjAyNiAzMiAxMy4yMiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0''@;'; put 'put ''LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBD''@;'; put 'put ''IDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40Mjkg''@;'; put 'put ''MzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNi4wMDcgMjYuNzMxIEwgMjcuNzMgMjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEw''@;'; put 'put ''LjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAxMS4wMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBh''@;'; put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwg''@;'; put 'put ''MjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDYuMDA3IDI2LjczMSBMIDI3Ljcz''@;'; put 'put ''IDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYg''@;'; put 'put ''MTEuMDEgTCA2LjAwNyAyNi43MzEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQg''@;'; put 'put ''MTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4w''@;'; put 'put ''MDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg''@;'; put 'put ''MzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAx''@;'; put 'put ''OS4yNyAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAx''@;'; put 'put ''MC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAx''@;'; put 'put ''MS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDEx''@;'; put 'put ''LjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPicpLEwuQ2xyU2hhcGVCYXJDaGFydD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBM''@;'; put 'put ''IDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAx''@;'; put 'put ''Ni42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMyAxNiBMIDI5IDE2IEwgMjkgMjYgTCAyNy40IDI2IEwgMjcuNCAxNy42IEwgMjQuNiAxNy42IEwgMjQuNiAyNiBMIDIzIDI2IFoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEw''@;'; put 'put ''NSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAx''@;'; put 'put ''NiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIy''@;'; put 'put ''LjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAy''@;'; put 'put ''NiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdl''@;'; put 'put ''ZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE5IEwgMjEgMTkgTCAyMSAyNiBMIDE5LjQgMjYgTCAxOS40IDIwLjYgTCAxNi42IDIwLjYgTCAxNi42IDI2IEwgMTUgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3Bh''@;'; put 'put ''dGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiPjwvcGF0aD5cbiAg''@;'; put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt''@;'; put 'put ''LWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40''@;'; put 'put ''NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBaIj48L3BhdGg+''@;'; put 'put ''XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUu''@;'; put 'put ''MzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; put 'put ''LWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVy''@;'; put 'put ''dGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAyNiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCI+''@;'; put 'put ''PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4w''@;'; put 'put ''MDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQg''@;'; put 'put ''QyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMg''@;'; put 'put ''Mi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcg''@;'; put 'put ''TCAzNCAxNS4zNTcgWiBNIDcgMjYgTCAxMyAyNiBMIDEzIDEwIEwgNyAxMCBaIE0gMTUgMjYgTCAyMSAyNiBMIDIxIDE5IEwgMTUgMTkgWiBNIDIzIDI2IEwgMjkgMjYgTCAyOSAxNiBMIDIzIDE2IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4''@;'; put 'put ''NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxM''@;'; put 'put ''LkNsclNoYXBlQm94UGxvdD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpN''@;'; put 'put ''NCwyOVY3SDMyVjI5WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTIgTCAxNyAxMiBMIDE3IDI2IEwgNyAyNiBMIDcgMTIgWiBNIDguNiAyNC40IEwgMTUuNCAyNC40IEwgMTUuNCAxOC44IEwgOC42IDE4LjggTCA4LjYgMjQuNCBaIE0gMTUuNCAxMy42IEwgOC42IDEzLjYgTCA4LjYgMTcu''@;'; put 'put ''MiBMIDE1LjQgMTcuMiBMIDE1LjQgMTMuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDI0IEwgMjkgMjQgTCAyOSAxMCBMIDE5IDEwIEwgMTkgMjQgWiBNIDIwLjYgMTEuNiBMIDI3LjQgMTEuNiBMIDI3LjQg''@;'; put 'put ''MTcuMiBMIDIwLjYgMTcuMiBMIDIwLjYgMTEuNiBaIE0gMjcuNCAyMi40IEwgMjAuNiAyMi40IEwgMjAuNiAxOC44IEwgMjcuNCAxOC44IEwgMjcuNCAyMi40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3''@;'; put 'put ''IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAxOSAyNCBMIDI5IDI0IEwgMjkgMTAgTCAxOSAxMCBaIE0gMjEgMTIgTCAyNyAxMiBMIDI3IDE3IEwgMjEgMTcg''@;'; put 'put ''WiBNIDI3IDIyIEwgMjEgMjIgTCAyMSAxOSBMIDI3IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUy''@;'; put 'put ''NCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQg''@;'; put 'put ''MTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBN''@;'; put 'put ''IDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgMTAgTCAyMy43MjggMTAgQyAyNC4x''@;'; put 'put ''MDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIwLjYgMTEuNiBMIDIwLjYgMTcuMiBMIDI3LjQgMTcuMiBMIDI3LjQgMTIuOTg3IEMgMjcuOTA5IDEzLjE3NyAyOC40NDUgMTMuMzEzIDI5IDEzLjM4NyBMIDI5IDI0IEwgMTkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTgu''@;'; put 'put ''OCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEg''@;'; put 'put ''QyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3IDUgQyAyMi4zMTIgNi44MTcgMjIuNzMyIDguNTY2IDIzLjYzMyAxMCBMIDE5IDEwIEwgMTkgMjQgTCAyOSAyNCBMIDI5IDEzLjQyNyBDIDI5LjEwMyAxMy40NCAyOS4yMDYgMTMuNDUx''@;'; put 'put ''IDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDcgMjYgTCAxNyAyNiBMIDE3IDEyIEwgNyAxMiBaIE0gOSAxOSBMIDE1IDE5IEwgMTUgMjQgTCA5IDI0IFogTSAxNSAxNyBMIDkgMTcgTCA5IDE0IEwgMTUgMTQgWiBN''@;'; put 'put ''IDIxIDEyIEwgMjUuNDcyIDEyIEMgMjUuOTQgMTIuMzUyIDI2LjQ1MiAxMi42NSAyNyAxMi44ODUgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEg''@;'; put 'put ''MzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwg''@;'; put 'put ''MTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDguNiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAyNCBMIDE5IDI0IEwgMTkgMTUuMzQ1IEMgMTkuMDIxIDE1LjM0OCAyMC42IDE1LjM2IDIwLjYgMTUuMzYgTCAyMC42IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDE1''@;'; put 'put ''LjM2IEwgMjkgMTUuMzU3IEwgMjkgMjQgWiBNIDI3LjQgMTguOCBMIDIwLjYgMTguOCBMIDIwLjYgMjIuNCBMIDI3LjQgMjIuNCBMIDI3LjQgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMu''@;'; put 'put ''MDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAy''@;'; put 'put ''Ny4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4x''@;'; put 'put ''MDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDE5LjAyOCAxMCBMIDE5IDEwIEwgMTkgMTAuMDQ4IEwgMTcuNjI1IDEyLjM5NSBDIDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAxOSAyNCBMIDI5IDI0IEwgMjkgMTUuMzU3IEwg''@;'; put 'put ''MzQgMTUuMzU3IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAxOSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAyNyAxNyBMIDIxIDE3IEwgMjEgMTUuMzU3IEwgMjcgMTUuMzU3IFogTSAyNyAyMiBMIDIxIDIy''@;'; put 'put ''IEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEy''@;'; put 'put ''LjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0''@;'; put 'put ''IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJTaGFwZUJ1YmJsZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i''@;'; put 'put ''TSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkg''@;'; put 'put ''WiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAx''@;'; put 'put ''Ni42IDI0LjYgMTcuMjI3IDI0LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTIiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkgMTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDku''@;'; put 'put ''Njc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEgMTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0zIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIxIDIzIEMgMjEgMjQuNjU3IDE5LjY1NyAyNiAxOCAyNiBDIDE2LjM0MyAyNiAxNSAyNC42NTcgMTUgMjMgQyAxNSAyMS4zNDMgMTYuMzQzIDIwIDE4IDIwIEMgMTkuNjU3IDIwIDIxIDIxLjM0MyAyMSAyMyBaIE0gMTggMjEu''@;'; put 'put ''NiBDIDE3LjIyNyAyMS42IDE2LjYgMjIuMjI3IDE2LjYgMjMgQyAxNi42IDIzLjc3MyAxNy4yMjcgMjQuNCAxOCAyNC40IEMgMTguNzczIDI0LjQgMTkuNCAyMy43NzMgMTkuNCAyMyBDIDE5LjQgMjIuMjI3IDE4Ljc3MyAyMS42IDE4IDIxLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3''@;'; put 'put ''IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEw''@;'; put 'put ''IDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIwIDE1IDIxLjM0MyAxNSAy''@;'; put 'put ''MyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; put 'put ''ZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44''@;'; put 'put ''OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcgMjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIx''@;'; put 'put ''IDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAxNi42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIyNyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTku''@;'; put 'put ''NCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTQgQyAxNSAxNi4yMDkg''@;'; put 'put ''MTMuMjA5IDE4IDExIDE4IEMgOC43OTEgMTggNyAxNi4yMDkgNyAxNCBDIDcgMTEuNzkxIDguNzkxIDEwIDExIDEwIEMgMTMuMjA5IDEwIDE1IDExLjc5MSAxNSAxNCBaIE0gMTEgMTEuNiBDIDkuNjc1IDExLjYgOC42IDEyLjY3NSA4LjYgMTQgQyA4LjYgMTUuMzI1IDkuNjc1IDE2LjQgMTEg''@;'; put 'put ''MTYuNCBDIDEyLjMyNSAxNi40IDEzLjQgMTUuMzI1IDEzLjQgMTQgQyAxMy40IDEyLjY3NSAxMi4zMjUgMTEuNiAxMSAxMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAy''@;'; put 'put ''MSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMg''@;'; put 'put ''MTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgcng9''@;'; put 'put ''IjMiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUg''@;'; put 'put ''MTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4yMDkgMTUgMTQgQyAxNSAx''@;'; put 'put ''MS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAyNiAxNSBDIDI0LjM0MyAxNSAyMyAxNi4zNDMgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2LjM0MyAyNy42NTcgMTUgMjYgMTUgWiBNIDE4IDIwIEMgMTYuMzQzIDIw''@;'; put 'put ''IDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEg''@;'; put 'put ''TCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5''@;'; put 'put ''LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAxNSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMg''@;'; put 'put ''MjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMgMTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiByeD0iMyI+PC9wYXRo''@;'; put 'put ''PlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUg''@;'; put 'put ''OC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxl''@;'; put 'put ''cnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYg''@;'; put 'put ''QyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIyLjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0''@;'; put 'put ''IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEg''@;'; put 'put ''MzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAz''@;'; put 'put ''NCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNi43OTUgMTMuNjAxIDE3LjU5NCAxNS4yNDUgMTkuMDY0IDE1LjM1MSBD''@;'; put 'put ''IDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNC41NzkgMTUuMzU3IEMgMjMuNjM5IDE1Ljg2MyAyMyAxNi44NTcgMjMgMTggQyAyMyAxOS42NTcgMjQuMzQzIDIxIDI2IDIxIEMgMjcuNjU3IDIxIDI5IDE5LjY1NyAyOSAxOCBDIDI5IDE2Ljg1NyAyOC4zNjEg''@;'; put 'put ''MTUuODYzIDI3LjQyMSAxNS4zNTcgTCAzNCAxNS4zNTcgWiBNIDExIDEwIEMgOC43OTEgMTAgNyAxMS43OTEgNyAxNCBDIDcgMTYuMjA5IDguNzkxIDE4IDExIDE4IEMgMTMuMjA5IDE4IDE1IDE2LjIwOSAxNSAxNCBDIDE1IDExLjc5MSAxMy4yMDkgMTAgMTEgMTAgWiBNIDE4IDIwIEMgMTYu''@;'; put 'put ''MzQzIDIwIDE1IDIxLjM0MyAxNSAyMyBDIDE1IDI0LjY1NyAxNi4zNDMgMjYgMTggMjYgQyAxOS42NTcgMjYgMjEgMjQuNjU3IDIxIDIzIEMgMjEgMjEuMzQzIDE5LjY1NyAyMCAxOCAyMCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMu''@;'; put 'put ''MDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJT''@;'; put 'put ''aGFwZUNsb3VkQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQs''@;'; put 'put ''MjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEw''@;'; put 'put ''LjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAx''@;'; put 'put ''Ny43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAy''@;'; put 'put ''Ni42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjcgMjAuNiAyMy42IDIxLjIyNyAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI3''@;'; put 'put ''IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNyAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NSAzNCA3IFog''@;'; put 'put ''TSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAxMS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5''@;'; put 'put ''Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIy''@;'; put 'put ''LjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8''@;'; put 'put ''cGF0aCBkPSJNIDIwLjk3MSAxMS4yNDMgQyAyMy4zMTQgMTMuNTg2IDIyLjM2NCAxOC4zMzUgMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMxNCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjg3OSA5Ljg0''@;'; put 'put ''OSAxOC42MjggOC45IDIwLjk3MSAxMS4yNDMgWiBNIDExLjYzNiAxNC42MzcgQyA4LjgyNCAxNy40NDkgNy44NzUgMjEuMDU4IDkuNTE1IDIyLjY5OCBDIDExLjE1NSAyNC4zMzggMTQuNzY0IDIzLjM4OSAxNy41NzYgMjAuNTc3IEMgMjAuMzg4IDE3Ljc2NSAyMS4zMzggMTQuMTU2IDE5LjY5''@;'; put 'put ''NyAxMi41MTYgQyAxOC4wNTcgMTAuODc2IDE0LjQ0OCAxMS44MjUgMTEuNjM2IDE0LjYzNyBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUg''@;'; put 'put ''MjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjggMjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUg''@;'; put 'put ''MjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iNyI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJN''@;'; put 'put ''IDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMu''@;'; put 'put ''NDggQyAzMS42MjUgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwLjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMi4zNjQgMTguMzM1IDIzLjMx''@;'; put 'put ''NCAxMy41ODYgMjAuOTcxIDExLjI0MyBDIDE4LjYyOCA4LjkgMTMuODc5IDkuODQ5IDEwLjM2NCAxMy4zNjQgWiBNIDI1IDE5IEMgMjMuMzQzIDE5IDIyIDIwLjM0MyAyMiAyMiBDIDIyIDIzLjY1NyAyMy4zNDMgMjUgMjUgMjUgQyAyNi42NTcgMjUgMjggMjMuNjU3IDI4IDIyIEMgMjggMjAu''@;'; put 'put ''MzQzIDI2LjY1NyAxOSAyNSAxOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3''@;'; put 'put ''IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMu''@;'; put 'put ''MzY0IEMgMTMuMDQ5IDEwLjY3OSAxNi40NTMgOS40OTIgMTguOTU2IDEwLjEyNCBMIDE4LjAwOCAxMS43NDEgQyAxNi4xOCAxMS41MTggMTMuNjk1IDEyLjU3OCAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0''@;'; put 'put ''Ljc2NCAyMy4zODkgMTcuNTc2IDIwLjU3NyBDIDE5LjIyOCAxOC45MjUgMjAuMjM3IDE2Ljk5OCAyMC40NTYgMTUuMzU3IEwgMjIuMjIgMTUuMzU3IEMgMjIuMDA2IDE3LjQ3NyAyMC44MzggMTkuODYxIDE4Ljg0OSAyMS44NDkgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOCAyMiBDIDI4IDIzLjY1NyAyNi42NTcgMjUgMjUgMjUgQyAyMy4zNDMgMjUgMjIgMjMuNjU3IDIyIDIyIEMgMjIgMjAuMzQzIDIzLjM0MyAxOSAyNSAxOSBDIDI2LjY1NyAxOSAyOCAyMC4zNDMgMjgg''@;'; put 'put ''MjIgWiBNIDI1IDIwLjYgQyAyNC4yMjYgMjAuNiAyMy42IDIxLjIyNiAyMy42IDIyIEMgMjMuNiAyMi43NzMgMjQuMjI2IDIzLjQgMjUgMjMuNCBDIDI1Ljc3MyAyMy40IDI2LjQgMjIuNzczIDI2LjQgMjIgQyAyNi40IDIxLjIyNiAyNS43NzMgMjAuNiAyNSAyMC42IFoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSI3Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBM''@;'; put 'put ''IDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMg''@;'; put 'put ''MzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1h''@;'; put 'put ''bGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMTguOTU2IDEwLjEyNCBDIDE2LjQ1MyA5LjQ5MiAxMy4wNDkgMTAuNjc5IDEw''@;'; put 'put ''LjM2NCAxMy4zNjQgQyA2Ljg0OSAxNi44NzggNS44OTkgMjEuNjI3IDguMjQzIDIzLjk3IEMgMTAuNTg2IDI2LjMxNCAxNS4zMzQgMjUuMzY0IDE4Ljg0OSAyMS44NDkgQyAyMC44MzggMTkuODYxIDIyLjAwNiAxNy40NzcgMjIuMjIgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBDIDIz''@;'; put 'put ''LjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcgMjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEz''@;'; put 'put ''LjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xy''@;'; put 'put ''U2hhcGVDdXJ2ZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEg''@;'; put 'put ''QyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4''@;'; put 'put ''IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcuMTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMz''@;'; put 'put ''MiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIzIDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQy''@;'; put 'put ''NSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAxMS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQg''@;'; put 'put ''NSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAy''@;'; put 'put ''NiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAxNiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIg''@;'; put 'put ''MTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIy''@;'; put 'put ''IEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwg''@;'; put 'put ''MzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAx''@;'; put 'put ''MC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1''@;'; put 'put ''IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1''@;'; put 'put ''IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4y''@;'; put 'put ''MzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgy''@;'; put 'put ''IDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUgMjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguMTg4IDE1LjAx''@;'; put 'put ''NiAxNy43OTkgMTMuODgyIDE3LjExOCAxMi42OTEgQyAxNi4xMyAxMC45NjIgMTQuNzk1IDEwIDEzIDEwIEwgNyAxMCBDIDYuNDQ4IDEwIDYgMTAuNDQ4IDYgMTEgQyA2IDExLjU1MiA2LjQ0OCAxMiA3IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1''@;'; put 'put ''IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBk''@;'; put 'put ''PSJNIDcgMTEuOCBDIDYuNTU4IDExLjggNi4yIDExLjQ0MiA2LjIgMTEgQyA2LjIgMTAuNTU4IDYuNTU4IDEwLjIgNyAxMC4yIEwgMTMgMTAuMiBDIDE1LjQwNCAxMC4yIDE2LjM2OCAxMS45MDcgMTcuNjUzIDE2LjQ3OCBDIDE3LjY5NSAxNi42MjggMTcuNzQ0IDE2LjgwMyAxNy44MzUgMTcu''@;'; put 'put ''MTI5IEMgMTcuOTA5IDE3LjM5MiAxNy45NjQgMTcuNTg4IDE4LjAxOSAxNy43OCBDIDE5LjMzMiAyMi4zNzUgMjAuNTQ5IDI0LjIgMjMgMjQuMiBMIDI5IDI0LjIgQyAyOS40NDIgMjQuMiAyOS44IDI0LjU1OCAyOS44IDI1IEMgMjkuOCAyNS40NDIgMjkuNDQyIDI1LjggMjkgMjUuOCBMIDIz''@;'; put 'put ''IDI1LjggQyAxOS41MzUgMjUuOCAxNy45ODEgMjMuNDY5IDE2LjQ4MSAxOC4yMiBDIDE2LjQyNSAxOC4wMjUgMTYuMzY5IDE3LjgyNiAxNi4yOTUgMTcuNTYgQyAxNi4yMDMgMTcuMjM0IDE2LjE1NCAxNy4wNiAxNi4xMTMgMTYuOTExIEMgMTUuMDQzIDEzLjEwNSAxNC4zMDUgMTEuOCAxMyAx''@;'; put 'put ''MS44IEwgNyAxMS44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0''@;'; put 'put ''IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDEx''@;'; put 'put ''Ljk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE3LjQ3NiAx''@;'; put 'put ''Mi42MTIgMTcuMzc5IDEyLjg0MyAxNy4zMyAxMy4wNzcgQyAxNy4yNjIgMTIuOTQ4IDE3LjE5MiAxMi44MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBM''@;'; put 'put ''IDEzIDEyIEMgMTQuODE3IDEyIDE1LjY3NCAxMy40OTkgMTcuMDM5IDE4LjI3NSBDIDE3LjgxMyAyMC45ODQgMTguMjAxIDIyLjExOCAxOC44ODIgMjMuMzA5IEMgMTkuODcgMjUuMDM4IDIxLjIwNSAyNiAyMyAyNiBMIDI5IDI2IEMgMjkuNTUyIDI2IDMwIDI1LjU1MiAzMCAyNSBDIDMwIDI0''@;'; put 'put ''LjQ0OCAyOS41NTIgMjQgMjkgMjQgTCAyMyAyNCBDIDIxLjE4MyAyNCAyMC4zMjYgMjIuNTAxIDE4Ljk2MiAxNy43MjUgQyAxOC42NCAxNi41OTggMTguMzg1IDE1Ljc0NCAxOC4xNDcgMTUuMDQ0IEMgMTguNDA3IDE1LjIxNSAxOC43MTcgMTUuMzI2IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQg''@;'; put 'put ''MTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEu''@;'; put 'put ''MDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4w''@;'; put 'put ''ODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxMLkNsclNoYXBlR3JpZENoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTIiIGQ9Ik0zMiwxN0gyMWEyLDIsMCwwLDEtMi0yVjhhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDE3Wk0yMSw4djdIMzJWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIs''@;'; put 'put ''MiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEy''@;'; put 'put ''LDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMTUgMTcgTCA0IDE3IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBD''@;'; put 'put ''IDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5''@;'; put 'put ''Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDMyIDYgQyAzMy4xMDUgNiAzNCA2Ljg5NSAzNCA4IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMyIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBDIDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAxNyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxu''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIx''@;'; put 'put ''IEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS1hbGVydGVkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEs''@;'; put 'put ''MiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLWFsZXJ0ZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDIwLjAxNCAxNyAxOS4xOTUgMTYuMjg3IDE5LjAzIDE1LjM0OCBD''@;'; put 'put ''IDE5LjA0MSAxNS4zNDkgMTkuMDUzIDE1LjM1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzMuOTY4IDE1LjM1NyBDIDMzLjggMTYuMjkyIDMyLjk4MyAxNyAzMiAxNyBaIE0gMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYg''@;'; put 'put ''TCAyMS4zNzIgNiBMIDE5IDEwLjA0OCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtYWxlcnRlZCIgZD0iTTE1LDMwSDRhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCww''@;'; put 'put ''LDEsMTUsMzBaTTQsMjF2N0gxNVYyMVoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC1hbGVydGVkIiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTItMlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCww''@;'; put 'put ''LDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjEx''@;'; put 'put ''NCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDEx''@;'; put 'put ''LjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYu''@;'; put 'put ''MTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; put 'put ''LS1hbGVydGVkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4zNSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAx''@;'; put 'put ''NS4zNTcgQyAzMy44IDE2LjI5MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBk''@;'; put 'put ''PSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4gIDxwYXRoIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUg''@;'; put 'put ''MzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41''@;'; put 'put ''NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAx''@;'; put 'put ''MS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNSwxN0g0YTIsMiww''@;'; put 'put ''LDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1VjhaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMg''@;'; put 'put ''MTkuODk1IDE3IDE5IDE2LjEwNSAxOSAxNSBMIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjIuNTkgNiBDIDIyLjU5IDYuMDE5IDIyLjU5IDYuMDM3IDIyLjU5IDYuMDU2IEMgMjIuNTkgNi43MjkgMjIuNjggNy4zODEgMjIuODQ4IDggTCAyMSA4IEwgMjEgMTUgTCAzMiAxNSBM''@;'; put 'put ''IDMyIDEzLjE3NSBDIDMyLjcxNyAxMi45NzIgMzMuMzg5IDEyLjY2NCAzNCAxMi4yNjkgTCAzNCAxNSBDIDM0IDE2LjEwNSAzMy4xMDUgMTcgMzIgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0x''@;'; put 'put ''NSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTMy''@;'; put 'put ''LDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQg''@;'; put 'put ''NiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5''@;'; put 'put ''NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2LjA1NiBDIDIyLjU5IDEwLjE0MSAyNS45MDEgMTMuNDUyIDI5Ljk4NiAxMy40NTIgQyAzMS40NjYgMTMuNDUyIDMyLjg0''@;'; put 'put ''NCAxMy4wMTggMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAy''@;'; put 'put ''OCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTkuODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00''@;'; put 'put ''LS1iYWRnZWQiIGQ9Ik0gMzIgMzAgTCAyMSAzMCBDIDE5Ljg5NSAzMCAxOSAyOS4xMDUgMTkgMjggTCAxOSAyMSBDIDE5IDE5Ljg5NSAxOS44OTUgMTkgMjEgMTkgTCAzMiAxOSBDIDMzLjEwNSAxOSAzNCAxOS44OTUgMzQgMjEgTCAzNCAyOCBDIDM0IDI5LjEwNSAzMy4xMDUgMzAgMzIgMzAg''@;'; put 'put ''WiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUhlYXRNYXA9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUg''@;'; put 'put ''MzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDI4IDEwIEwgMjggMjYgTCA4IDI2IFogTSA5LjYgMjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3''@;'; put 'put ''LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDI2IDExLjYgTCAyMS45IDExLjYgTCAyMS45IDE3LjIgTCAyNiAxNy4yIFogTSAxNS43IDExLjYgTCAxNS43IDE3LjIgTCAyMC4zIDE3LjIgTCAyMC4zIDExLjYgWiBNIDE1LjcgMjQg''@;'; put 'put ''TCAyMC4zIDI0IEwgMjAuMyAxOC44IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAx''@;'; put 'put ''My4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAz''@;'; put 'put ''MSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDIzLjcyOCAxMCBDIDI0LjEwNSAxMC41OTYgMjQuNTY0IDExLjEzNSAyNS4wOSAx''@;'; put 'put ''MS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBMIDI2IDEyLjI4NyBDIDI2LjYxMSAxMi42NzkgMjcuMjg0IDEyLjk4MyAyOCAxMy4xODIgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAxMS42IEwg''@;'; put 'put ''OS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAxMS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1Ljcg''@;'; put 'put ''MTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi''@;'; put 'put ''IGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkg''@;'; put 'put ''TCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gOCAxMCBMIDE5LjAyOCAxMCBMIDE4LjA5MSAxMS42IEwgMTUuNyAxMS42IEwg''@;'; put 'put ''MTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxNS4zNTcgTCAyMS45IDE1LjM1NyBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxNS4zNTcgTCAyOCAxNS4zNTcgTCAyOCAyNiBMIDggMjYgWiBNIDkuNiAyNCBMIDE0LjEgMjQgTCAxNC4xIDE4LjggTCA5LjYgMTguOCBaIE0gMTQuMSAx''@;'; put 'put ''MS42IEwgOS42IDExLjYgTCA5LjYgMTcuMiBMIDE0LjEgMTcuMiBaIE0gMjYgMjQgTCAyNiAxOC44IEwgMjEuOSAxOC44IEwgMjEuOSAyNCBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4''@;'; put 'put ''IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQu''@;'; put 'put ''Nzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEg''@;'; put 'put ''MzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gOCAyNiBMIDI4IDI2IEwgMjggMTAgTCA4IDEwIFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBa''@;'; put 'put ''IE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAyNiAxMiBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEw''@;'; put 'put ''IDEyIFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIg''@;'; put 'put ''NyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTMuMjMyIEMgMjguNDIxIDEzLjM0NSAyOC44NTkgMTMuNDIyIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAz''@;'; put 'put ''MS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDEwIDE5IEwgMTQgMTkgTCAxNCAyNCBMIDEwIDI0IFogTSAyMiAyNCBMIDIyIDE5IEwgMjYgMTkgTCAyNiAyNCBaIE0gMjAgMTkgTCAyMCAyNCBMIDE2IDI0IEwgMTYgMTkgWiBNIDI2IDE3IEwgMjIgMTcgTCAyMiAxMiBM''@;'; put 'put ''IDI1LjU4NCAxMiBDIDI1LjcxOSAxMi4xIDI1Ljg1OCAxMi4xOTYgMjYgMTIuMjg3IFogTSAyMCAxMiBMIDIwIDE3IEwgMTYgMTcgTCAxNiAxMiBaIE0gMTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMu''@;'; put 'put ''MTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAgTCA4IDEwIEwgOCAyNiBMIDI4IDI2IEwgMjggMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQg''@;'; put 'put ''MjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTUuMzU3IEwgMjYgMTUuMzU3IFogTSAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgTCAxNy44NTYgMTIgTCAxNy42''@;'; put 'put ''MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjAgMTUuMzU3IFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIu''@;'; put 'put ''MTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAw''@;'; put 'put ''LjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xyU2hhcGVMaW5lQ2hhcnQ9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAy''@;'; put 'put ''OSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkgTCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUu''@;'; put 'put ''MjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; put 'put ''PjwvcG9seWdvbj5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5''@;'; put 'put ''IEwgMzQgNyBDIDM0IDUuODk2IDMzLjEwNSA1IDMyIDUgWiBNIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuNjUgMTMgTCAzMS4zNSAxNC4yOCBa''@;'; put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUw''@;'; put 'put ''MSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAz''@;'; put 'put ''MiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwb2x5Z29uIHBvaW50cz0iMTUuNjIgMTUuMjIyIDkuNjAyIDIzLjk2OCA1LjU1IDIwLjM4NCA2LjYxIDE5LjE4NiA5LjMwOCAyMS41NzIgMTUuNjM0IDEyLjM4IDIyLjM4NCAyMi4zOTUgMjkuMTM4IDEzLjQ3IDMwLjQxNCAxNC40MzYgMjIuMzA4IDI1''@;'; put 'put ''LjE0NSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BvbHlnb24+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAi''@;'; put 'put ''IGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzAuMzIgMTMuNDggTCAzMS4zOCAxNC4yOCBMIDIyLjU2IDI1Ljk0IEwgMTUuNDYgMTUuMzYgTCA5LjEyIDI0LjY0IEwgNC42''@;'; put 'put ''MiAyMC42NCBMIDYgMTkuMDUgTCA4LjcgMjEuNDQgTCAxNS40NiAxMS41NiBMIDIyLjY1IDIyLjI3IEwgMjkuMzEgMTMuNDYgQyAyNS4wNSAxMy4xIDIxLjk2OSA5LjIzMyAyMi41NyA1IEwgNCA1IEMgMi44OTYgNSAyIDUuODk2IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NiAzMSA0IDMx''@;'; put 'put ''IEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgMTIuMzQgQyAzMi44OTUgMTMuMDM2IDMxLjYyNiAxMy40MjkgMzAuMzIgMTMuNDggWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIu''@;'; put 'put ''ODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUuNjIgMTUuMjIyIEwgOS42MDIgMjMu''@;'; put 'put ''OTY4IEwgNS41NSAyMC4zODQgTCA2LjYxIDE5LjE4NiBMIDkuMzA4IDIxLjU3MiBMIDE1LjYzNCAxMi4zOCBMIDIyLjM4NCAyMi4zOTUgTCAyNy43MTcgMTUuMzQ4IEwgMjkuNzI0IDE1LjM0OCBMIDIyLjMwOCAyNS4xNDUgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTgg''@;'; put 'put ''MjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43''@;'; put 'put ''ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUg''@;'; put 'put ''MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5''@;'; put 'put ''LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjcuNDUyIDE1LjM1NyBMIDIyLjM4IDIyLjA2IEwgMTUuNjMgMTIgTCA5LjI4IDIxLjI4IEwgNi43NSAxOS4wNCBMIDUuNDIgMjAuNTMgTCA5LjY1IDI0LjI4IEwgMTUuNjEgMTUuNTYgTCAyMi4yOCAyNS41IEwgMjkuOTU5IDE1LjM1NyBMIDM0''@;'; put 'put ''IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4w''@;'; put 'put ''OTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0''@;'; put 'put ''IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksTC5DbHJTaGFwZVBpZUNoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1''@;'; put 'put ''IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxu''@;'; put 'put ''ICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMgMjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0''@;'; put 'put ''IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMuMjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BhdGg+XG4gIDxw''@;'; put 'put ''YXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9w''@;'; put 'put ''YXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgQyAzMiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUg''@;'; put 'put ''NSAzNCA1Ljg5NiAzNCA3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkg''@;'; put 'put ''OSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIy''@;'; put 'put ''LjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAy''@;'; put 'put ''NiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1LjQgMjAu''@;'; put 'put ''NCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTkgOSBDIDIzLjQxOCA5IDI3IDEyLjU4MiAyNyAxNyBMIDE5IDE3IFogTSAyNS4xOTggMTUuNCBDIDI0LjYyIDEzLjE1IDIyLjg0OSAxMS4zOCAyMC42IDEwLjgwMSBMIDIwLjYgMTUuNCBaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwv''@;'; put 'put ''Y2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1''@;'; put 'put ''Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIg''@;'; put 'put ''OSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBDIDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiBNIDE5IDE3IEwgMjcgMTcgQyAyNyAxMi41ODIgMjMuNDE4IDkgMTkgOSBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIg''@;'; put 'put ''MzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEy''@;'; put 'put ''LjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcgMjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAx''@;'; put 'put ''MC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBk''@;'; put 'put ''PSJNIDI3IDE3IEwgMTkgMTcgTCAxOSAxNS4zNDUgQyAxOS4wMjEgMTUuMzQ4IDE5LjA0MyAxNS4zNDkgMTkuMDY0IDE1LjM1MSBDIDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAyNi44MzEgMTUuMzU3IEMgMjYuOTQyIDE1Ljg4NyAyNyAxNi40MzcgMjcgMTcg''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0''@;'; put 'put ''IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAx''@;'; put 'put ''MS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuODA3IDEzLjU4MyAxNy41NzEg''@;'; put 'put ''MTUuMTk3IDE5IDE1LjM0NSBMIDE5IDE3IEwgMjcgMTcgQyAyNyAxNi40MzcgMjYuOTQyIDE1Ljg4NyAyNi44MzEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAyNSAxOSBMIDE3IDE5IEwgMTcgMTEgQyAxMi41ODIgMTEgOSAxNC41ODIgOSAxOSBDIDkgMjMuNDE4IDEyLjU4MiAyNyAxNyAyNyBD''@;'; put 'put ''IDIxLjQxOCAyNyAyNSAyMy40MTggMjUgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4''@;'; put 'put ''IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQu''@;'; put 'put ''Nzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLEwuQ2xyU2hhcGVTY2F0dGVyUGxvdD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIg''@;'; put 'put ''NyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4y''@;'; put 'put ''NTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIu''@;'; put 'put ''NzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMg''@;'; put 'put ''OC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2''@;'; put 'put ''IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAy''@;'; put 'put ''MC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44''@;'; put 'put ''NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTSAyMi45MTIgMjAu''@;'; put 'put ''MzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEz''@;'; put 'put ''IEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMw''@;'; put 'put ''NiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2''@;'; put 'put ''IDM0IDcgWiBNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAx''@;'; put 'put ''My42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcg''@;'; put 'put ''MTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIE0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4''@;'; put 'put ''OCAyNS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAy''@;'; put 'put ''My4yNzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAu''@;'; put 'put ''NjYyIDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiBNIDIyLjkxMiAyMC4zNDMgQyAyMy4yMjQg''@;'; put 'put ''MjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5MiAxOS4yMTMgTCAyNi4zNDIgMTgu''@;'; put 'put ''MDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42MjggMTUuMzA2IDIyLjg3NiAxNS40''@;'; put 'put ''NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAy''@;'; put 'put ''Ljg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUg''@;'; put 'put ''MTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUg''@;'; put 'put ''TCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4''@;'; put 'put ''NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYg''@;'; put 'put ''TCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTku''@;'; put 'put ''NDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3''@;'; put 'put ''NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDIy''@;'; put 'put ''LjkxMiAyMC4zNDMgQyAyMy4yMjQgMjAuNjU0IDIzLjczIDIwLjY1NCAyNC4wNDIgMjAuMzQzIEwgMjUuMjAyIDE5LjE4MyBMIDI2LjM2MiAyMC4zNDMgQyAyNi43NzUgMjAuNzk5IDI3LjUyOCAyMC42MzcgMjcuNzE2IDIwLjA1IEMgMjcuODEzIDE5Ljc1MSAyNy43MjUgMTkuNDI0IDI3LjQ5''@;'; put 'put ''MiAxOS4yMTMgTCAyNi4zNDIgMTguMDgzIEwgMjcuNTAyIDE2LjkyMyBDIDI3Ljk1OCAxNi41MDkgMjcuNzk2IDE1Ljc1NyAyNy4yMSAxNS41NjggQyAyNi45MTEgMTUuNDcyIDI2LjU4MyAxNS41NiAyNi4zNzIgMTUuNzkzIEwgMjUuMjEyIDE2Ljk1MyBMIDI0LjA0MiAxNS43NjMgQyAyMy42''@;'; put 'put ''MjggMTUuMzA2IDIyLjg3NiAxNS40NjkgMjIuNjg4IDE2LjA1NSBDIDIyLjU5MSAxNi4zNTQgMjIuNjc5IDE2LjY4MiAyMi45MTIgMTYuODkzIEwgMjQuMDcyIDE4LjA4MyBMIDIyLjkxMiAxOS4yMTMgQyAyMi42IDE5LjUyNSAyMi42IDIwLjAzIDIyLjkxMiAyMC4zNDMgWiIvPlxuICA8Y2ly''@;'; put 'put ''Y2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0i''@;'; put 'put ''TSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEz''@;'; put 'put ''LjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAx''@;'; put 'put ''NS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBM''@;'; put 'put ''IDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3''@;'; put 'put ''IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAx''@;'; put 'put ''OS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2''@;'; put 'put ''LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4x''@;'; put 'put ''NzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcu''@;'; put 'put ''NzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4w''@;'; put 'put ''NDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAu''@;'; put 'put ''MzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUu''@;'; put 'put ''MzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQgTCAx''@;'; put 'put ''Mi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4zOTkg''@;'; put 'put ''MTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEwLjI2''@;'; put 'put ''MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0gMTUuMTc2IDI1LjUzNiBDIDE1LjQ4OCAy''@;'; put 'put ''NS44NDcgMTUuOTk0IDI1Ljg0NyAxNi4zMDYgMjUuNTM2IEwgMTcuNDY2IDI0LjM3NiBMIDE4LjYyNiAyNS41MzYgQyAxOS4wMzkgMjUuOTkyIDE5Ljc5MiAyNS44MyAxOS45OCAyNS4yNDMgQyAyMC4wNzcgMjQuOTQ0IDE5Ljk4OSAyNC42MTcgMTkuNzU2IDI0LjQwNiBMIDE4LjYwNiAyMy4y''@;'; put 'put ''NzYgTCAxOS43NjYgMjIuMTE2IEMgMjAuMjIyIDIxLjcwMiAyMC4wNiAyMC45NSAxOS40NzQgMjAuNzYxIEMgMTkuMTc1IDIwLjY2NSAxOC44NDcgMjAuNzUzIDE4LjYzNiAyMC45ODYgTCAxNy40NzYgMjIuMTQ2IEwgMTYuMzA2IDIwLjk1NiBDIDE1Ljg5MiAyMC40OTkgMTUuMTQgMjAuNjYy''@;'; put 'put ''IDE0Ljk1MiAyMS4yNDggQyAxNC44NTUgMjEuNTQ3IDE0Ljk0MyAyMS44NzUgMTUuMTc2IDIyLjA4NiBMIDE2LjMzNiAyMy4yNzYgTCAxNS4xNzYgMjQuNDA2IEMgMTQuODY0IDI0LjcxOCAxNC44NjQgMjUuMjIzIDE1LjE3NiAyNS41MzYgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAu''@;'; put 'put ''NjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYg''@;'; put 'put ''MjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEz''@;'; put 'put ''IEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIw''@;'; put 'put ''LjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0Ljgx''@;'; put 'put ''IDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAz''@;'; put 'put ''MC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUu''@;'; put 'put ''MzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcgMTYuMDk0IDEzLjkwNSAx''@;'; put 'put ''NS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3IDEyLjU2MSAxMS4yNSBM''@;'; put 'put ''IDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45ODIgOC43ODkgMTUuNDg3''@;'; put 'put ''IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAx''@;'; put 'put ''OS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2''@;'; put 'put ''LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4x''@;'; put 'put ''NzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcu''@;'; put 'put ''NzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4w''@;'; put 'put ''NDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAu''@;'; put 'put ''MzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEg''@;'; put 'put ''QyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAy''@;'; put 'put ''OC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiBmaWxsLW9wYWNpdHk9IjAiLz4nKSxMLkNsclNoYXBlVGlja0NoYXJ0PSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQg''@;'; put 'put ''MjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBMIDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4''@;'; put 'put ''IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMgMjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEw''@;'; put 'put ''NSA1IDM0IDUuODk2IDM0IDcgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMgMjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUg''@;'; put 'put ''TCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIgTCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQi''@;'; put 'put ''IGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIu''@;'; put 'put ''ODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn''@;'; put 'put ''ZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4w''@;'; put 'put ''MiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; put 'put ''IiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1''@;'; put 'put ''IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAyNS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDYgMjYuOTkxIEwgMjcuNzIzIDI2Ljk5IEMg''@;'; put 'put ''MjguNDgzIDI2LjkzIDI4LjkwMyAyNi4wNiAyOC40NjMgMjUuNDMgQyAyOC4yOTMgMjUuMTggMjguMDIzIDI1LjAyIDI3LjcyMyAyNSBMIDI1IDI1IEwgMjUgMjIgTCAyMyAyMiBMIDIzIDI1IEwgMjAgMjUgTCAyMCAyMiBMIDE4IDIyIEwgMTggMjUgTCAxNSAyNSBMIDE1IDIyIEwgMTMgMjIg''@;'; put 'put ''TCAxMyAyNSBMIDEwIDI1IEwgMTAgMjIgTCA4IDIyIEwgOCAyNSBMIDYgMjUgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1''@;'; put 'put ''IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2IDI1IEwgOCAyNSBMIDggMjIgTCAxMCAyMiBM''@;'; put 'put ''IDEwIDI1IEwgMTMgMjUgTCAxMyAyMiBMIDE1IDIyIEwgMTUgMjUgTCAxOCAyNSBMIDE4IDIyIEwgMjAgMjIgTCAyMCAyNSBMIDIzIDI1IEwgMjMgMjIgTCAyNSAyMiBMIDI1IDI1IEwgMjcuNzIzIDI1IEMgMjguMDIzIDI1LjAyIDI4LjI5MyAyNS4xOCAyOC40NjMgMjUuNDMgQyAyOC45MDMg''@;'; put 'put ''MjYuMDYgMjguNDgzIDI2LjkzIDI3LjcyMyAyNi45OSBMIDYgMjYuOTkxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBD''@;'; put 'put ''IDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0''@;'; put 'put ''LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAz''@;'; put 'put ''NCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQg''@;'; put 'put ''MTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1''@;'; put 'put ''IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMz''@;'; put 'put ''LjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxMLkNs''@;'; put 'put ''clNoYXBlQmVsbEN1cnZlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMywyOUgzQTEsMSwwLDEsMSwzLDI3SDMzQTEsMSwwLDEsMSwzMywyOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywyNWgtLjYyYTguMTEsOC4xMSww''@;'; put 'put ''LDAsMS04LTYuNjdDMjMuNjIsMTQuNDQsMjEuODksNy45NCwxOCw3Ljk0cy01LjY5LDYuNTEtNi4zOCwxMC4zOWE4LjExLDguMTEsMCwwLDEtOCw2LjY1SDNhMSwxLDAsMSwxLDAtMmguNkE2LjExLDYuMTEsMCwwLDAsOS42LDE4YzEuNDEtNy44OCw0LjMtMTIsOC4zNS0xMnM2LjkzLDQuMTYs''@;'; put 'put ''OC4zMywxMmE2LjExLDYuMTEsMCwwLDAsNiw1SDMzYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxMLkNoYXJ0U2hhcGVzPXsiYXhpcy1jaGFydCI6TC5DbHJTaGFwZUF4aXNDaGFydCwiYmFyLWNoYXJ0IjpMLkNsclNoYXBl''@;'; put 'put ''QmFyQ2hhcnQsImJ1YmJsZS1jaGFydCI6TC5DbHJTaGFwZUJ1YmJsZUNoYXJ0LCJjbG91ZC1jaGFydCI6TC5DbHJTaGFwZUNsb3VkQ2hhcnQsImN1cnZlLWNoYXJ0IjpMLkNsclNoYXBlQ3VydmVDaGFydCwiZ3JpZC1jaGFydCI6TC5DbHJTaGFwZUdyaWRDaGFydCwibGluZS1jaGFydCI6TC5D''@;'; put 'put ''bHJTaGFwZUxpbmVDaGFydCwicGllLWNoYXJ0IjpMLkNsclNoYXBlUGllQ2hhcnQsInRpY2stY2hhcnQiOkwuQ2xyU2hhcGVUaWNrQ2hhcnQsInNjYXR0ZXItcGxvdCI6TC5DbHJTaGFwZVNjYXR0ZXJQbG90LCJib3gtcGxvdCI6TC5DbHJTaGFwZUJveFBsb3QsImhlYXQtbWFwIjpMLkNsclNo''@;'; put 'put ''YXBlSGVhdE1hcCwiYmVsbC1jdXJ2ZSI6TC5DbHJTaGFwZUJlbGxDdXJ2ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuQ2hhcnRTaGFwZXMsImFuYWx5dGljcyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNoYXJ0U2hhcGVzWyJsaW5lLWNoYXJ0Il0pKSwidW5kZWZpbmVkIiE9dHlwZW9m''@;'; put 'put ''IHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5DaGFydFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmlj''@;'; put 'put ''dCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ29tbWVyY2VTaGFwZXM9TC5DbHJTaGFwZUZhY3Rvcnk9TC5DbHJTaGFwZUVtcGxveWVlPUwuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPUwuQ2xyU2hhcGVSdWJsZT1MLkNsclNoYXBlUGVzbz1MLkNs''@;'; put 'put ''clNoYXBlQ29pbkJhZz1MLkNsclNoYXBlQml0Y29pbj1MLkNsclNoYXBlWWVuPUwuQ2xyU2hhcGVXb249TC5DbHJTaGFwZVJ1cGVlPUwuQ2xyU2hhcGVQb3VuZD1MLkNsclNoYXBlRUNoZWNrPUwuQ2xyU2hhcGVEb2xsYXJCaWxsPUwuQ2xyU2hhcGVCYW5rPUwuQ2xyU2hhcGVDcmVkaXRDYXJk''@;'; put 'put ''PUwuQ2xyU2hhcGVEb2xsYXI9TC5DbHJTaGFwZUV1cm89TC5DbHJTaGFwZVN0b3JlPUwuQ2xyU2hhcGVXYWxsZXQ9TC5DbHJTaGFwZVNob3BwaW5nQ2FydD1MLkNsclNoYXBlUGlnZ3lCYW5rPUwuQ2xyU2hhcGVTaG9wcGluZ0JhZz1MLkNsclNoYXBlQ2FsY3VsYXRvcj12b2lkIDA7dmFyIEI9''@;'; put 'put ''bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNoYXBlQ2FsY3VsYXRvcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk04LDMyVjRIMjhWMzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDhIMjUuNjdWNkgxMWExLDEsMCwwLDAtMSwxdjQuNjdoMloiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyIDE2IDEwIDE2IDEwIDE4IDE0IDE4''@;'; put 'put ''IDE0IDE0IDEyIDE0IDEyIDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNCAxNiAyMiAxNiAyMiAxOCAyNiAxOCAyNiAxNCAyNCAxNCAyNCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHBvaW50cz0iMTggMTYgMTYgMTYgMTYgMTggMjAgMTggMjAgMTQgMTggMTQgMTggMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBwb2ludHM9''@;'; put 'put ''IjEyIDIyIDEwIDIyIDEwIDI0IDE0IDI0IDE0IDIwIDEyIDIwIDEyIDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgcG9pbnRzPSIyNCAyMiAyMiAyMiAyMiAyNCAyNiAyNCAyNiAyMCAyNCAyMCAyNCAyMiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHBvaW50cz0iMTggMjIgMTYgMjIgMTYgMjQgMjAgMjQgMjAgMjAgMTggMjAgMTggMjIiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC05IiBwb2ludHM9IjEyIDI4IDEwIDI4IDEwIDMwIDE0IDMwIDE0IDI2IDEyIDI2IDEyIDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHBvaW50cz0iMjQgMjggMjIgMjggMjIgMzAgMjYg''@;'; put 'put ''MzAgMjYgMjYgMjQgMjYgMjQgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgcG9pbnRzPSIxOCAyOCAxNiAyOCAxNiAzMCAyMCAzMCAyMCAyNiAxOCAyNiAxOCAyOCIvPlxuICAgICAgICAgICAgPHBhdGggY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMiwyOEgxMFYyNmgyWm0wLTZIMTBWMjBoMlptMC02SDEwVjE0aDJabTcsMTJIMTdWMjZo''@;'; put 'put ''MlptMC02SDE3VjIwaDJabTAtNkgxN1YxNGgyWm03LDEySDI0VjI2aDJabTAtNkgyNFYyMGgyWm0wLTZIMjRWMTRoMlptMC03SDEwVjVIMjZaIi8+JyksTC5DbHJTaGFwZVNob3BwaW5nQmFnPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIiBkPSJNMjUsMTJWOS4wNWE3LDcsMCwxLDAtMTQsMHY3YTEsMSwwLDAsMCwyLDBWMTRoOFYxMkgxM1Y5LjA1YTUsNSwwLDEsMSwxMCwwVjE2YTEsMSwwLDEsMCwyLDBWMTRoNVYzMkg2VjE0SDlWMTJINFYzMi4wOUExLjkxLDEuOTEsMCwwLDAsNS45MSwzNEgzMC4wOUExLjkx''@;'; put 'put ''LDEuOTEsMCwwLDAsMzIsMzIuMDlWMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTMsOS4yMmE1LDUsMCwxLDEsMTAsMFYxMmgyVjkuMjJhNyw3LDAsMSwwLTE0LDBWMTJoMloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNSwxMnYzLjFhMSwxLDAsMSwxLTIsMFYxMkgxM3YzLjFhMSwxLDAsMCwxLTIsMFYxMkg0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMloiLz4nKSxMLkNsclNoYXBlUGlnZ3lCYW5rPSgwLEUu''@;'; put 'put ''Y2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNzIsMTAuNDdhMTEuNjUsMTEuNjUsMCwwLDAtNi4zMS41MkEuOC44LDAsMSwwLDE0LDEyLjQ4LDEwLjExLDEwLjExLDAsMCwxLDE5LjQ0LDEyYS44LjgsMCwxLDAsLjI4''@;'; put 'put ''LTEuNTdaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjUuMzgiIGN5PSIxNi43MSIgcj0iMS4zNiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTMiIGQ9Ik0zNS41MSwxOC42M2ExLDEsMCwwLDAtLjg0LS40NCwzLjQyLDMuNDIsMCwwLDEtMi4wOS0xLjEyLDE3LjM1LDE3LjM1LDAsMCwxLTIuNjMtMy43OGwyLjg4LTQuNUExLjg5LDEuODksMCwwLDAsMzMsN2ExLjc3LDEuNzcsMCwwLDAtMS4zMy0xLDEwLjEyLDEwLjEyLDAsMCwwLTUu''@;'; put 'put ''MzkuNzUsMTIuNzIsMTIuNzIsMCwwLDAtMi43MiwxLjYzLDE2Ljk0LDE2Ljk0LDAsMCwwLTUuMTYtMS4zOUMxMS4zMSw2LjMsNC44MywxMC45LDQsMTdINGEyLjU2LDIuNTYsMCwwLDEtMS4zOC0xLjUzLDEuODEsMS44MSwwLDAsMSwuMTQtMS40LDEuMTksMS4xOSwwLDAsMSwuNDMtLjQzLDEu''@;'; put 'put ''MDgsMS4wOCwwLDAsMC0xLjEyLTEuODVBMy4zMSwzLjMxLDAsMCwwLC45MSwxM2E0LDQsMCwwLDAtLjMzLDMuMDhBNC43Niw0Ljc2LDAsMCwwLDMsMTguOTVsLjkyLjQ2YTE3LjU4LDE3LjU4LDAsMCwwLDEuODIsN2wuMTcuMzhBMjMsMjMsMCwwLDAsOS4yLDMxLjg4YTEsMSwwLDAsMCwuNzUu''@;'; put 'put ''MzRoNC41MmExLDEsMCwwLDAsLjkyLTEuMzhMMTUsMjkuOTRsMS4xOC4xM2EyMC4zMywyMC4zMywwLDAsMCw0LDBjLjM3LjYuNzcsMS4yLDEuMjEsMS43OWExLDEsMCwwLDAsLjguNDFoNC4zNGExLDEsMCwwLDAsLjkyLTEuMzljLS4xNy0uNC0uMzQtLjgzLS40Ny0xLjItLjE4LS41My0uMzIt''@;'; put 'put ''MS0uNDMtMS40NUExMy4xOCwxMy4xOCwwLDAsMCwyOS41NiwyNmExMi41LDEyLjUsMCwwLDAsMywwLDEsMSwwLDAsMCwuNzgtLjYybDIuMjYtNS44MUExLDEsMCwwLDAsMzUuNTEsMTguNjNabS0zLjc4LDUuNDRhMTEuMzcsMTEuMzcsMCwwLDEtMi4zNS0uMTFoMGE4LjIsOC4yLDAsMCwxLTIu''@;'; put 'put ''NTMtLjg3LDEsMSwwLDAsMC0uOTMsMS43NywxMS43MiwxMS43MiwwLDAsMCwxLjI5LjU4LDgsOCwwLDAsMS0xLjgsMS4xNmwtMS4wNi40OHMuNDksMi4xOS44MiwzLjE2SDIyLjc5Yy0uMjQtLjM0LTEuNDUtMi4zNi0xLjQ1LTIuMzZsLS42Ny4wOWExOC41MywxOC41MywwLDAsMS00LjI1LjEy''@;'; put 'put ''Yy0uNjYtLjA2LTEuNzYtLjItMi42Mi0uMzVsLTEuNTUtLjI3cy42MywyLjQzLjc1LDIuNzR2MEgxMC40MkEyMC41NywyMC41NywwLDAsMSw3Ljc2LDI2bC0uMTgtLjM5QTE0LjYyLDE0LjYyLDAsMCwxLDYsMTcuNDhjLjU0LTUuMTksNi4xMi05LjExLDEyLjE5LTguNTRhMTUuNDcsMTUuNDcs''@;'; put 'put ''MCwwLDEsNS4wOCwxLjQ4bC42Mi4yOS41LS40N0ExMC4yOSwxMC4yOSwwLDAsMSwyNyw4LjU0YTguMjUsOC4yNSwwLDAsMSw0LS42NWwtMy4zOCw1LjI5LjI1LjVoMGEyMS4xNiwyMS4xNiwwLDAsMCwzLjMxLDQuODQsNi40OSw2LjQ5LDAsMCwwLDIuMTQsMS4zOVoiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNSwxOC44N0E1LjgzLDUuODMsMCwwLDEsMzMsMTcuNjFhMjEuNjMsMjEuNjMsMCwwLDEtMy4yOS00Ljg0bDMuMzktNS4yOWEuOS45LDAsMCwwLS41NC0xLjM4LDkuNjcsOS42NywwLDAsMC01LjEzLjcy''@;'; put 'put ''LDEyLDEyLDAsMCwwLTMuMTMsMkExNy4zNywxNy4zNywwLDAsMCwxOC42LDcuMTVDMTEuOCw2LjUyLDUuMjcsMTAuOSw0LjU0LDE3bC0uMTQtLjA3QTIuNzYsMi43NiwwLDAsMSwyLjksMTUuMjlhMiwyLDAsMCwxLC4xNS0xLjU1LDEuMzIsMS4zMiwwLDAsMSwuNDctLjQ4LDEuMDgsMS4wOCww''@;'; put 'put ''LDEsMC0xLjEyLTEuODUsMy40NSwzLjQ1LDAsMCwwLTEuMjMsMS4yNUE0LjE2LDQuMTYsMCwwLDAsLjg0LDE1LjlhNSw1LDAsMCwwLDIuNTcsM2wxLC41NGExOC42MiwxOC42MiwwLDAsMCwyLDcuMywyMywyMywwLDAsMCwzLDQuNzksMSwxLDAsMCwwLC44LjM4aDMuNjFhLjUyLjUyLDAsMCww''@;'; put 'put ''LC40LS43NUwxNCwzMC4zOGExMSwxMSwwLDAsMS0uMzMtMS4xOGMuOTEuMTYsMi4wOC4zMSwyLjg3LjM4YTIwLjA3LDIwLjA3LDAsMCwwLDMuMTIsMGMuMzkuNy43OSwxLjMzLDEuMTUsMS44NWEuOTMuOTMsMCwwLDAsLjc3LjQxaDMuMTFhLjY1LjY1LDAsMCwwLC42MS0uODVjLS4yMy0uNzQt''@;'; put 'put ''LjUzLTEuNzUtLjcxLTIuMzdhMTUuOSwxNS45LDAsMCwwLDMuNzUtMS43NmMuMTYtLjExLjMyLS4yNi40OC0uMzlhMTMuNzcsMTMuNzcsMCwwLDEtMi40Mi0xLC44LjgsMCwwLDEsLjc0LTEuNDIsMTEuNjQsMTEuNjQsMCwwLDAsMy4xOCwxLjEsMTMuMzEsMTMuMzEsMCwwLDAsMi42OC4xMiwx''@;'; put 'put ''LDEsMCwwLDAsLjktLjY2bDEuNzMtNC40NEExLDEsMCwwLDAsMzUsMTguODdaTTEzLjc5LDExLjU5YS44Ni44NiwwLDAsMS0uMy4wNS44NS44NSwwLDAsMS0uMy0xLjY0LDEyLjQxLDEyLjQxLDAsMCwxLDYuNjktLjU1Ljg1Ljg1LDAsMSwxLS4zLDEuNjdBMTAuNzUsMTAuNzUsMCwwLDAsMTMu''@;'; put 'put ''NzksMTEuNTlabTEyLjUyLDYuMTJhMS40NCwxLjQ0LDAsMSwxLDEuNDQtMS40NEExLjQ0LDEuNDQsMCwwLDEsMjYuMzIsMTcuNzJaIi8+JyksTC5DbHJTaGFwZVNob3BwaW5nQ2FydD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjA4''@;'; put 'put ''LDUuMzdBMSwxLDAsMCwwLDMyLjMxLDVIMTEuNDlsLjY1LDJIMzFMMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1''@;'; put 'put ''LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDMuMTctMTRBMSwxLDAsMCwwLDMzLjA4LDUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIg''@;'; put 'put ''cj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwLjcxIDcgMjEuODcgNSAxMS40OSA1IDEyLjE0IDcgMjAuNzEgNyIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTUsMTUuNCwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1''@;'; put 'put ''LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xM2ExLDEsMCwwLDAsMS0uNzhsMS4wOS00LjgyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4''@;'; put 'put ''LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBkPSJNMjIuNTcsN2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDExLjQ5bC42NSwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTMwLDEzLjVsLS40MiwwTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZI''@;'; put 'put ''MjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjU3LTYuOTFBNy41MSw3LjUxLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRn''@;'; put 'put ''ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIg''@;'; put 'put ''cj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; put 'put ''My4xLDYuMzlBMSwxLDAsMCwwLDMyLjMxLDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEy''@;'; put 'put ''LDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMy4yLTEzQTEsMSwwLDAsMCwzMy4xLDYuMzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNp''@;'; put 'put ''cmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDkuMjFMOC43Niw0LjU3YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1''@;'; put 'put ''LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuMTktNC44NFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2''@;'; put 'put ''LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwy''@;'; put 'put ''Ljc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjcxLTdBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVXYWxsZXQ9KDAsRS5jbHJJY29u''@;'; put 'put ''U1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgzMVY5YTEsMSwwLDAsMC0xLTFINmExLDEsMCwwLDEtMS0uODJWNi44MkExLDEsMCwwLDEsNiw2SDI5LjU4YTEsMSwwLDAsMCwwLTJINkEzLDMsMCwwLDAsMyw3YTMuMDgsMy4w''@;'; put 'put ''OCwwLDAsMCwwLC4zNlYyNy45M0E0LjEsNC4xLDAsMCwwLDcuMTMsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNWgxYTEsMSwwLDAsMCwxLTFWMTZBMSwxLDAsMCwwLDMyLDE1Wk0yOSwzMEg3LjEzQTIuMTEsMi4xMSwwLDAsMSw1LDI3LjkzVjkuODhBMy4xMSwzLjExLDAsMCwwLDYsMTBIMjl2NUgy''@;'; put 'put ''MmE1LDUsMCwwLDAsMCwxMGg3Wm0yLTdIMjJhMywzLDAsMCwxLDAtNkgzMVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMy4wMSIgY3k9IjIwIiByPSIxLjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi45NCwxNEgzMVY5YTEsMSwwLDAsMC0xLTFINkExLDEsMCwwLDEsNSw3SDVWN0ExLDEsMCwwLDEsNiw2SDI5LjZhMSwxLDAsMSwwLDAtMkg2QTIuOTQsMi45NCwwLDAsMCwzLDYuODh2MjFBNC4xMyw0LjEzLDAsMCwwLDcu''@;'; put 'put ''MTUsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNmgxLjk0YS45My45MywwLDAsMCwxLS45MXYtMTBBMS4wOCwxLjA4LDAsMCwwLDMyLjk0LDE0Wk0zMiwyNGwtOC41OCwwYTMuODcsMy44NywwLDAsMS0zLjczLTQsMy44NywzLjg3LDAsMCwxLDMuNzMtNEwzMiwxNloiLz5cbiAgICAgICAgICAgIDxj''@;'; put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjI0LjA0IiBjeT0iMTkuOTIiIHI9IjEuNSIvPicpLEwuQ2xyU2hhcGVTdG9yZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0i''@;'; put 'put ''TTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAs''@;'; put 'put ''MCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwuNDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQuNzIsMCwwLDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAs''@;'; put 'put ''MCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdBMiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0zMCwxOC4xM0EyLjY4LDIuNjgsMCwwLDEsMjcuODIsMTdMMjcsMTUuODgsMjYuMTksMTdhMi43MSwyLjcxLDAs''@;'; put 'put ''MCwxLTQuMzcsMEwyMSwxNS44OCwyMC4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDE1LDE1Ljg4LDE0LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OCw4LjE4LDE3QTIuNjgsMi42OCwwLDAsMSw2LDE4LjEzYTIuNjQsMi42NCwwLDAsMS0yLS44OFYxNC4xN0w4LjA4''@;'; put 'put ''LDZIMjcuOTJMMzIsMTQuMTZ2LjY3bDAsMi4zOUEyLjY3LDIuNjcsMCwwLDEsMzAsMTguMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjgsMzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEyLDIsMCwwLDAsMiwySDI4YTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAsMjcuOTIsNEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIs''@;'; put 'put ''MCwwLDAtLjIxLjl2My4wOGEyLDIsMCwwLDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0u''@;'; put 'put ''NTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMTUsMTQuNHYxLjUyTDE0LjE4LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OFYxNC40TDExLjU5LDZIMTZabTEyLDEuNDhMMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwx''@;'; put 'put ''NS44OGwwLDBWMTQuNEwyMCw2aDQuNDVMMjcsMTQuNFoiLz4nKSxMLkNsclNoYXBlRXVybz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLjQ4LDI4LjQ5YTEsMSwwLDAsMC0xLjM4LS4zMkExMiwxMiwwLDAs''@;'; put 'put ''MSwxMi40NSwyMkgyNC4xNmExLDEsMCwwLDAsMC0ySDExLjkzYTExLjE2LDExLjE2LDAsMCwxLDAtNEgyNC4xNmExLDEsMCwwLDAsMC0ySDEyLjQ1QTEyLDEyLDAsMCwxLDMwLjA2LDcuOGExLDEsMCwwLDAsMS4wNi0xLjdBMTQsMTQsMCwwLDAsMTAuMzQsMTRIMy41NGExLDEsMCwxLDAsMCwy''@;'; put 'put ''SDkuOTFhMTQsMTQsMCwwLDAtLjE2LDIsMTQsMTQsMCwwLDAsLjE2LDJIMy41NGExLDEsMCwxLDAsMCwyaDYuOGExNCwxNCwwLDAsMCwyMC44Myw3Ljg3QTEsMSwwLDAsMCwzMS40OCwyOC40OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNDIsMjUuMTZBMTAuODgsMTAuODgsMCwwLDEsOS4yMywyMUg1Ljg0YTEsMSwwLDAsMSwwLTJoM2MwLS4zNS0uMDUtLjcxLS4wNS0xLjA3czAtLjYzLDAtLjkzaC0zYTEsMSwwLDAsMSwwLTJIOS4x''@;'; put 'put ''OUExMC44NiwxMC44NiwwLDAsMSwyNS4zOCw4LjY5YTEuMjUsMS4yNSwwLDAsMS0xLjMyLDIuMTJBOC4zNiw4LjM2LDAsMCwwLDExLjgyLDE1aDkuMzZhMSwxLDAsMCwxLDAsMkgxMS4zM2E3LjcyLDcuNzIsMCwwLDAsMCwyaDkuODJhMSwxLDAsMCwxLDAsMkgxMS44N2E4LjM2LDguMzYsMCww''@;'; put 'put ''LDAsMTIuMjIsNCwxLjI1LDEuMjUsMCwxLDEsMS4zMywyLjEyWiIvPicpLEwuQ2xyU2hhcGVEb2xsYXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNiwyMS4xNWE2LjkxLDYuOTEsMCwwLDAtNC4zOC0zLjMy''@;'; put 'put ''QTI2LDI2LDAsMCwwLDE5LDE3LjE5VjguMTJBMTAuMDUsMTAuMDUsMCwwLDEsMjMuODYsMTBhMSwxLDAsMCwwLDEuMzMtMS41QTExLjc1LDExLjc1LDAsMCwwLDE5LDYuMVYzYTEsMSwwLDAsMC0yLDBWNmMtNC40LjEtNi44MywyLjI5LTcuNTcsNC4xOEE1LjU2LDUuNTYsMCwwLDAsMTEuNjYs''@;'; put 'put ''MTcsMTMuMiwxMy4yLDAsMCwwLDE3LDE4Ljg0VjI4YTEyLjMsMTIuMywwLDAsMS03LjE0LTIuNzRBMSwxLDAsMSwwLDguNDksMjYuNywxNC4wOSwxNC4wOSwwLDAsMCwxNywzMHYzYTEsMSwwLDAsMCwyLDBWMzBjMi44Mi0uMTksNi4wNy0xLjA5LDcuMy00Ljc2QTUuMzMsNS4zMywwLDAsMCwy''@;'; put 'put ''NiwyMS4xNVpNMTIuNzksMTUuMzJhMy41NywzLjU3LDAsMCwxLTEuNDktNC4zOUMxMS40MSwxMC42MywxMi41Myw4LjEyLDE3LDh2OC44QTEwLjcsMTAuNywwLDAsMSwxMi43OSwxNS4zMlpNMjQuNCwyNC41NmMtLjcyLDIuMTQtMi4zMiwzLjE3LTUuNCwzLjRWMTkuMjNjLjY0LjE0LDEuMy4z''@;'; put 'put ''LDIsLjUxYTUsNSwwLDAsMSwzLjE5LDIuMzJBMy4zNCwzLjM0LDAsMCwxLDI0LjQsMjQuNTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxuICAgICAgICAgICAgICAgIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2''@;'; put 'put ''LDAsMCwwLDE4LDJabTcuNjUsMjEuNTljLTEsMy0zLjYxLDMuODQtNS45LDR2MmExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjcuNTlBMTEuNDcsMTEuNDcsMCwwLDEsMTEsMjVhMS4yNSwxLjI1LDAsMSwxLDEuNzEtMS44Myw5LjExLDkuMTEsMCwwLDAsNC41NSwxLjk0VjE4LjgzYTkuNjMsOS42''@;'; put 'put ''MywwLDAsMS0zLjczLTEuNDEsNC44LDQuOCwwLDAsMS0xLjkxLTUuODRjLjU5LTEuNTEsMi40Mi0zLjIzLDUuNjQtMy41MVY2LjI1YTEuMjUsMS4yNSwwLDAsMSwyLjUsMFY4LjExYTkuNjcsOS42NywwLDAsMSw0LjksMkExLjI1LDEuMjUsMCwwLDEsMjMsMTEuOTVhNy4xNCw3LjE0LDAsMCww''@;'; put 'put ''LTMuMjQtMS4zMXY2LjEzYy42LjEzLDEuMjQuMjcsMS45MS40OGE1Ljg1LDUuODUsMCwwLDEsMy42OSwyLjgyQTQuNjQsNC42NCwwLDAsMSwyNS42NSwyMy41OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC45Miwx''@;'; put 'put ''OS42NGMtLjQtLjEyLS43OS0uMjItMS4xNy0uM3Y1Ljc2YzItLjIsMy4wNy0uOSwzLjUzLTIuM2EyLjE1LDIuMTUsMCwwLDAtLjE1LTEuNThBMy40OSwzLjQ5LDAsMCwwLDIwLjkyLDE5LjY0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; put 'put ''dGgtMyIgZD0iTTEzLjk0LDEyLjQ4YTIuMzEsMi4zMSwwLDAsMCwxLDIuODcsNi41Myw2LjUzLDAsMCwwLDIuMzIuOTJWMTAuNTVDMTUuMTYsMTAuOCwxNC4xOSwxMS44NCwxMy45NCwxMi40OFoiLz4nKSxMLkNsclNoYXBlQ3JlZGl0Q2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; put 'put ''MzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMiwwLDEySDRMNCw4Wk00LDI4VjI0SDMydjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxy''@;'; put 'put ''ZWN0IHg9IjciIHk9IjMiIHdpZHRoPSIyMiIgaGVpZ2h0PSIzMCIgcng9IjAuOTYiIHJ5PSIwLjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikgcm90YXRlKDkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMThINFYyMEgzMloiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJhbms9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMuNSwxMy41NiwxOCw1LjIzbDE0LjUsOC4zM2ExLDEsMCwwLDAsMS0xLjczTDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMs''@;'; put 'put ''MjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4aDMuMjFMMTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIx''@;'; put 'put ''bDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgyOFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwx''@;'; put 'put ''LDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0iMjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjIuNzcsOEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwxLDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3''@;'; put 'put ''LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwy''@;'; put 'put ''SDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVBMy41MSwzLjUxLDAsMCwxLDIwLDE0SDV2MkgzMVYxNVoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDYsOS43NGwuNjgtMS4xNy0xLjQ5LS44NWEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0LDEuMS42M0MxOS4zOSw5Ljg5LDE5LjQyLDku''@;'; put 'put ''ODEsMTkuNDYsOS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMDUsNS4yNSwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjEuMDUsN1oi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5''@;'; put 'put ''LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMuNSwxMy41Niw1LDEyLjY4VjE2SDMxVjEyLjcx''@;'; put 'put ''bDEuNDguODVhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWk0xNy44NSw3LjExYS44LjgsMCwwLDEsLjgsMEwyNS4zNywxMUgyMi4xNWwtMy45LTIuMjRMMTQuMzUsMTFIMTEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAs''@;'; put 'put ''MCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYz''@;'; put 'put ''SDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4xNSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzksMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0bDYuNzItMy44NmEuOC44LDAsMCwxLC44LDBsNSwyLjg3QTcuNDUsNy40NSwwLDAsMSwy''@;'; put 'put ''Mi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0w1LDEyLjY4VjE2SDMxVjEzLjQyQTcuNTMsNy41MywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwxMy4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; put 'put ''ZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42''@;'; put 'put ''M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEuMTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNWEzLjUxLDMuNTEsMCwwLDEtMy01LjI2bC4xNC0uMjQtMS4zNS0uNzhMMTQuMzUsMTFIMTEuMTRsNi43Mi0zLjg2YS44LjgsMCwwLDEsLjgsMGwxLjc1LDEsMS42NS0yLjg2TDE4LDIu''@;'; put 'put ''OTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYxNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAs''@;'; put 'put ''MCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxMLkNsclNoYXBl''@;'; put 'put ''RG9sbGFyQmlsbD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCw2YTQuMjUs''@;'; put 'put ''NC4yNSwwLDAsMS0zLjktNEgzMlptMCwxLjYydjQuODNBNS44Nyw1Ljg3LDAsMCwwLDI2LjQ5LDI2aC0xN0E1Ljg3LDUuODcsMCwwLDAsNCwyMC40NFYxNS42QTUuODcsNS44NywwLDAsMCw5LjUxLDEwaDE3QTUuODcsNS44NywwLDAsMCwzMiwxNS42Wk03LjksMTBBNC4yNSw0LjI1LDAsMCwx''@;'; put 'put ''LDQsMTRWMTBaTTQsMjIuMDZBNC4yNSw0LjI1LDAsMCwxLDcuOSwyNkg0Wk0yOC4xLDI2QTQuMjUsNC4yNSwwLDAsMSwzMiwyMi4wNlYyNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTAuODVjLTMuNDcs''@;'; put 'put ''MC02LjMsMy4yMS02LjMsNy4xNXMyLjgzLDcuMTUsNi4zLDcuMTUsNi4zLTMuMjEsNi4zLTcuMTVTMjEuNDcsMTAuODUsMTgsMTAuODVabTAsMTIuNjljLTIuNTksMC00LjctMi40OS00LjctNS41NXMyLjExLTUuNTUsNC43LTUuNTUsNC43LDIuNDksNC43LDUuNTVTMjAuNTksMjMuNTUsMTgs''@;'; put 'put ''MjMuNTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk00LDI2VjIxLjE1QTUuMTgsNS4x''@;'; put 'put ''OCwwLDAsMSw4Ljc5LDI2Wk00LDE0Ljg1VjEwSDguNzlBNS4xOCw1LjE4LDAsMCwxLDQsMTQuODVaTTE4LDI1LjE1Yy0zLjQ3LDAtNi4zLTMuMjEtNi4zLTcuMTVzMi44My03LjE1LDYuMy03LjE1LDYuMywzLjIxLDYuMyw3LjE1UzIxLjQ3LDI1LjE1LDE4LDI1LjE1Wk0zMiwyNkgyNy4yNUE1''@;'; put 'put ''LjE4LDUuMTgsMCwwLDEsMzIsMjEuMTVabTAtMTEuMTVBNS4xOCw1LjE4LDAsMCwxLDI3LjI1LDEwSDMyWiIvPlxuICAgICAgICAgICAgPGVsbGlwc2UgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMTgiIHJ4PSI0IiByeT0iNC43MiIvPicpLEwu''@;'; put 'put ''Q2xyU2hhcGVFQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjE1IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0yIiB4PSIyMCIgeT0iMjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTM0LDhIMTIuOTNhOC4zNSw4LjM1LDAsMCwxLC43OSwySDMzVjI2SDNWMTku''@;'; put 'put ''OWE3LjgzLDcuODMsMCwwLDEtMi0xLjM0VjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik02LjU3LDE4LjY4YTYuMTcsNi4x''@;'; put 'put ''NywwLDAsMCw0LjMyLTEuNTksMS4yLDEuMiwwLDAsMCwuMzYtLjg0LDEuMDgsMS4wOCwwLDAsMC0xLjA5LTEuMTEsMSwxLDAsMCwwLS43MS4yNSw0LjMyLDQuMzIsMCwwLDEtMi44NCwxLDMuMzUsMy4zNSwwLDAsMS0zLjQ2LTNoNy41M0ExLjI5LDEuMjksMCwwLDAsMTIsMTIuMDYsNS42OCw1''@;'; put 'put ''LjY4LDAsMCwwLDYuMjcsNi4xNCw2LDYsMCwwLDAsLjQsMTIuNHYwQTYsNiwwLDAsMCw2LjU3LDE4LjY4Wk02LjI1LDguMzljMS44MiwwLDIuODcsMS4zOSwzLDMuMTZIMy4xM0MzLjM4LDkuNjksNC41Niw4LjM5LDYuMjUsOC4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCw4SDEyLjkxYTguNjEsOC42MSwwLDAsMSwxLjIsNC4zOSw4LDgsMCwwLDEtNy43OCw4LjI3QTcuNTEsNy41MSwwLDAsMSwxLDE4LjQxVjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4Wk0z''@;'; put 'put ''MSwyM0gyMFYyMUgzMVptMC01SDE2VjE2SDMxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYuNTcsMTguNjhBNiw2LDAsMCwxLC40LDEyLjQ0djBBNiw2LDAsMCwxLDYuMjcsNi4xNCw1LjY4LDUuNjgsMCwwLDEsMTIs''@;'; put 'put ''MTIuMDZhMS4yOSwxLjI5LDAsMCwxLTEuMywxLjMySDMuMTVhMy4zNSwzLjM1LDAsMCwwLDMuNDYsMyw0LjMyLDQuMzIsMCwwLDAsMi44NC0xLDEsMSwwLDAsMSwuNzEtLjI1LDEuMDgsMS4wOCwwLDAsMSwxLjA5LDEuMTEsMS4yLDEuMiwwLDAsMS0uMzYuODRBNi4xNyw2LjE3LDAsMCwxLDYu''@;'; put 'put ''NTcsMTguNjhaTTkuMywxMS41NWMtLjE4LTEuNzctMS4yMy0zLjE2LTMtMy4xNnMtMi44NywxLjMtMy4xMiwzLjE2WiIvPicpLEwuQ2xyU2hhcGVQb3VuZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3Ljks''@;'; put 'put ''MzBIMTMuNEE4LjQ1LDguNDUsMCwwLDAsMTUsMjQuNjVWMjFoNC4zMWExLDEsMCwwLDAsMC0ySDE1VjExLjMxQTUuMjQsNS4yNCwwLDAsMSwyMC4yMSw2LDUuMTksNS4xOSwwLDAsMSwyNCw3LjczYTEsMSwwLDAsMCwxLjQ4LTEuMzVBNy4xOSw3LjE5LDAsMCwwLDEzLDExLjMxVjE5SDguNzJh''@;'; put 'put ''MSwxLDAsMSwwLDAsMkgxM3YzLjY1QzEzLDI5LjM4LDEwLjEyLDMwLDEwLDMwYTEsMSwwLDAsMCwuMTcsMkgyNy45YTEsMSwwLDEsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LjUsMjUuOTJIMTEuNzRhMS4yNSwxLjI1LDAsMCwxLS4yMi0yLjQ4Yy4xNSwwLDEuNzItLjQ5LDEuNzItMy41NFYxOWgtMi41YTEsMSwwLDAsMSwwLTJoMi41VjExLjg4YTUuODUsNS44NSwwLDAsMSw1LjcyLTYsNS42Myw1LjYzLDAsMCwxLDQuMjEs''@;'; put 'put ''MS45NEExLjI1LDEuMjUsMCwxLDEsMjEuMyw5LjUxLDMuMDgsMy4wOCwwLDAsMCwxOSw4LjQyYTMuMzUsMy4zNSwwLDAsMC0zLjIyLDMuNDZWMTdoM2ExLDEsMCwwLDEsMCwyaC0zdjIuOUE3LjY1LDcuNjUsMCwwLDEsMTUsMjUuNDJIMjQuNWExLjI1LDEuMjUsMCwwLDEsMCwyLjVaIi8+Jyks''@;'; put 'put ''TC5DbHJTaGFwZVJ1cGVlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsOEgyNC4xNEE3LjUyLDcuNTIsMCwwLDAsMjIuNiw2SDI4YTEsMSwwLDAsMCwwLTJIMTBhMSwxLDAsMCwwLDAsMmg3LjU1YTUuNDIs''@;'; put 'put ''NS40MiwwLDAsMSw0LjIsMkgxMGExLDEsMCwwLDAsMCwySDIyLjc5QTUuNTQsNS41NCwwLDAsMSwyMywxMS41MSw1LjQ4LDUuNDgsMCwwLDEsMTcuNTUsMTdIMTEuMTRhMSwxLDAsMCwwLS43NSwxLjY2TDIyLjA2LDMyYTEsMSwwLDEsMCwxLjUtMS4zMkwxMy4zNSwxOWg0LjIxYTcuNTEsNy41''@;'; put 'put ''MSwwLDAsMCw3LjMtOUgyOGExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNS44OCw5SDI2YTEsMSwwLDAsMSwwLDJIMjQu''@;'; put 'put ''MjZjMCwuMDYsMCwuMTIsMCwuMTlhNi4wOSw2LjA5LDAsMCwxLTYsNi4yaC0ybDYuODIsOC4wNmExLjI1LDEuMjUsMCwwLDEtMS45MSwxLjYyTDEyLjYzLDE4Ljk0YTEuMjUsMS4yNSwwLDAsMSwxLTIuMDZoNC43MWEzLjU5LDMuNTksMCwwLDAsMy40OC0zLjY5YzAtLjA3LDAtLjEzLDAtLjJo''@;'; put 'put ''LTlhMSwxLDAsMCwxLDAtMmg4LjMyYTMuNDEsMy40MSwwLDAsMC0yLjc4LTEuNUgxMi43NWExLjI1LDEuMjUsMCwwLDEsMC0yLjVIMjZhMSwxLDAsMCwxLDAsMkgyMi42OEE2LjIzLDYuMjMsMCwwLDEsMjMuODgsMTFaIi8+JyksTC5DbHJTaGFwZVdvbj0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE4SDI4Ljc1bC41LTJIMzNhMSwxLDAsMCwwLDAtMkgyOS43NGwyLjE3LTguNzZBMSwxLDAsMCwwLDMwLDQuNzZMMjcuNjgsMTRIMjEuMzFMMTksNC43NmExLDEsMCwwLDAtMS45NCwwTDE0Ljc5LDE0''@;'; put 'put ''SDguNDJMNi4xMyw0Ljc2YTEsMSwwLDAsMC0xLjk0LjQ4TDYuMzYsMTRIM2ExLDEsMCwwLDAsMCwySDYuODVsLjUsMkgzYTEsMSwwLDAsMCwwLDJINy44NGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMTUuMzYsMjBoNS4zOGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMjguMjUs''@;'; put 'put ''MjBIMzNhMSwxLDAsMCwwLDAtMlptLTUuODItMi0uNSwySDIyLjNsLS41LTJaTTE4LDkuMTYsMTkuMjUsMTRoLTIuNFpNOC45MSwxNmg1LjM4bC0uNSwySDkuNDFaTTExLjYsMjYuODQsOS45MSwyMEgxMy4zWk0xNS44NSwxOGwuNS0yaDMuMzlsLjUsMlptOC42NCw4Ljg0TDIyLjgsMjBoMy4z''@;'; put 'put ''OVoiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHBvaW50cz0iMTcuNzQgMTYgMTcuMjIgMTggMTguODUgMTggMTguMzIgMTYgMTcuNzQgMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTIiIHBvaW50cz0iMTEuOTQgMTggMTQuNjMgMTggMTUuMTYgMTYgMTEuNDEgMTYgMTEuOTQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIHBvaW50cz0iMTMuMjkgMjMuMSAxNC4xIDIwIDEy''@;'; put 'put ''LjQ3IDIwIDEzLjI5IDIzLjEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHBvaW50cz0iMjEuNDQgMTggMjQuMTMgMTggMjQuNjYgMTYgMjAuOTEgMTYgMjEuNDQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIHBvaW50cz0iMjIuNzggMjMuMSAyMy42IDIwIDIxLjk3IDIwIDIyLjc4IDIzLjEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0''@;'; put 'put ''LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LDIwSDI2LjE5TDI0LDI4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMMTkuMzgsMjBIMTYuNjlsLTIuMTksOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDkuODgsMjBIN2ExLDEsMCwwLDEsMC0ySDkuMzVsLS41My0ySDdhMSwxLDAsMCwxLDAt''@;'; put 'put ''Mkg4LjNsLTEtMy42OGExLjI1LDEuMjUsMCwwLDEsMi40Mi0uNjRMMTAuODgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40MiwwTDIwLjM4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1LDAsMCwxLDIuNDIuNjRsLTEsMy42OEgyOWExLDEsMCwwLDEsMCwySDI3LjI0bC0u''@;'; put 'put ''NTMsMkgyOWExLDEsMCwwLDEsMCwyWiIvPicpLEwuQ2xyU2hhcGVZZW49KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4zNCw0LjU1YTEsMSwwLDEsMC0xLjY3LTEuMUwxOCwxOC4yMyw4LjMzLDMuNDVhMSwx''@;'; put 'put ''LDAsMCwwLTEuNjcsMS4xTDE3LDIwLjM1VjIyLjJIMTJhLjguOCwwLDAsMCwwLDEuNmg1djIuNEgxMmEuOC44LDAsMCwwLDAsMS42aDVWMzJhMSwxLDAsMCwwLDIsMFYyNy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMC4zNVoiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMDcsNy45MUwxOS43NCwyMEgyMmExLDEsMCwwLDEsMCwySDE5LjI1djJIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYy''@;'; put 'put ''Ljc1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNkgxNGExLDEsMCwxLDEsMC0yaDIuNzVWMjJIMTRhMSwxLDAsMSwxLDAtMmgyLjI2TDkuOTMsOS45MWExLjI1LDEuMjUsMCwxLDEsMi4xMi0xLjMzTDE4LDE4LjA4bDUuOTUtOS40OWExLjI1LDEuMjUsMCwxLDEsMi4xMiwxLjMzWiIvPicpLEwu''@;'; put 'put ''Q2xyU2hhcGVCaXRjb2luPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC4xMSwxNi44OEE1LjQ5LDUuNDksMCwwLDAsMjEsN1Y0YTEsMSwwLDAsMC0yLDBWN0gxNlY0YTEsMSwwLDAsMC0yLDBWN0gxMWExLDEsMCwwLDAtMSwxVjI4YTEsMSwwLDAsMCwxLDFoM3YzYTEsMSwwLDAsMCwy''@;'; put 'put ''LDBWMjloM3YzYTEsMSwwLDAsMCwyLDBWMjloLjA4QTYuMDcsNi4wNywwLDAsMCwyNywyMi44MXYtLjYyQTYuMjUsNi4yNSwwLDAsMCwyNC4xMSwxNi44OFpNMTIsOWg4LjY5YTMuNTksMy41OSwwLDAsMSwzLjQzLDIuMzZBMy41MSwzLjUxLDAsMCwxLDIwLjc5LDE2SDEyWk0yNSwyMi44MUE0''@;'; put 'put ''LjA4LDQuMDgsMCwwLDEsMjEuMDYsMjdIMTJWMThoOS4wNkE0LjA4LDQuMDgsMCwwLDEsMjUsMjIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMS4xOCwxOC40N0gxNC41djZoNi42OGEyLjcsMi43LDAs''@;'; put 'put ''MCwwLDIuNjMtMi43N3YtLjQ4QTIuNzEsMi43MSwwLDAsMCwyMS4xOCwxOC40N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMsMTMuNzVhMi4yNCwyLjI0LDAsMCwwLTIuMjMtMi4yNUgxNC41VjE2aDYuM0EyLjIy''@;'; put 'put ''LDIuMjIsMCwwLDAsMjMsMTMuNzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOC4zMSwxOS43M0E1LjIyLDUuMjIsMCwwLDEsMjEuMTgsMjdI''@;'; put 'put ''MjF2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTd2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTMuMjVBMS4yNSwxLjI1LDAsMCwxLDEyLDI1Ljc1VjE3LjIzaDB2LTdBMS4yNSwxLjI1LDAsMCwxLDEzLjI1LDlIMTVWNy4wN2ExLDEsMCwwLDEsMiwwVjloMlY3LjA3YTEsMSwwLDAsMSwyLDBWOWE0Ljcy''@;'; put 'put ''LDQuNzIsMCwwLDEsMy4yLDgsNS4zMSw1LjMxLDAsMCwxLDIuMTEsNC4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUNvaW5CYWc9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLjYsMjlhMSwxLDAsMCwwLTEtMWgtNmExLDEs''@;'; put 'put ''MCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjIuNTQsMjRoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMiIgLz48cGF0aCBkPSJNMjIsMzJIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNywzMmgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy43LDI4aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjc0LDI2YTI4LDI4LDAs''@;'; put 'put ''MCwwLTIuODItMTAuMTJBMjAuMjQsMjAuMjQsMCwwLDAsMjQuNiw4LjcxTDI3LDMuNDJhMSwxLDAsMCwwLS4wNy0xQTEsMSwwLDAsMCwyNi4xMywySDkuOGExLDEsMCwwLDAtLjkxLDEuNDJsMi40NSw1LjMxYTIwLjMzLDIwLjMzLDAsMCwwLTYuMjgsNy4xNWMtMi4xNSw0LTIuODIsOC44OS0z''@;'; put 'put ''LDEyLjI4YTMuNiwzLjYsMCwwLDAsMSwyLjcxQTMuNzksMy43OSwwLDAsMCw1LjgsMzEuOTRIMTJWMzBINS43MmExLjY4LDEuNjgsMCwwLDEtMS4yMS0uNTIsMS42MiwxLjYyLDAsMCwxLS40NS0xLjIzYy4xNC0yLjYxLjY5LTcuNTgsMi43Ni0xMS40NUExOCwxOCwwLDAsMSwxMy4wOCwxMGgx''@;'; put 'put ''YTMwLjgxLDMwLjgxLDAsMCwwLTEuODcsMi45MiwyMi43OCwyMi43OCwwLDAsMC0xLjQ3LDMuMzRsMS4zNy45MmEyNCwyNCwwLDAsMSwxLjQ5LTMuNDdBMjkuMSwyOS4xLDAsMCwxLDE2LjA1LDEwaDFhMjEuNDUsMjEuNDUsMCwwLDEsMS40MSw1LDIyLjU0LDIyLjU0LDAsMCwxLC4zMiwzLjg2''@;'; put 'put ''bDEuNTgtMS4xMWEyNC4xNSwyNC4xNSwwLDAsMC0uMzItM0EyNC44MiwyNC44MiwwLDAsMCwxOC43NiwxMGguNzhsLjkxLTJIMTMuMjFMMTEuMzYsNEgyNC41N2wtMi41LDUuNDdhOS45Myw5LjkzLDAsMCwxLDEuMjMuNzgsMTguNjMsMTguNjMsMCwwLDEsNS44Niw2LjU3QTI2LjU5LDI2LjU5''@;'; put 'put ''LDAsMCwxLDMxLjczLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgPHBhdGggZD0iTTI0Ljg5LDI2aDcuODZjLS42Ni04LjcxLTQuNDEtMTQuMTItOS4yMi0xNy4zMkwyNS43MiwzLjlhMSwxLDAsMCwwLS45MS0xLjRIMTEuMWExLDEsMCww''@;'; put 'put ''LDAtLjkxLDEuNGwxLjIsMi42SDIxLjUxbC0uOSwySDE4Ljc2QTI0LjksMjQuOSwwLDAsMSwyMCwxMy4xOWEyNC40OSwyNC40OSwwLDAsMSwuMzIsM2wtMS41OCwxLjExYTIyLjU0LDIyLjU0LDAsMCwwLS4zMi0zLjg2QTIxLjc0LDIxLjc0LDAsMCwwLDE3LDguNWgtMWEyOC4yMiwyOC4yMiww''@;'; put 'put ''LDAsMC0yLjQ4LDMuNywyMy45MSwyMy45MSwwLDAsMC0xLjQ5LDMuNDZsLTEuMzctLjkxYTIyLjc4LDIyLjc4LDAsMCwxLDEuNDctMy4zNEEzMC44MSwzMC44MSwwLDAsMSwxNC4wNSw4LjVIMTIuM2wuMDguMTdDNy4wOCwxMi4yLDMuMDUsMTguNCwzLjA1LDI4Ljc1QTEuNjUsMS42NSwwLDAs''@;'; put 'put ''MCw0LjYxLDMwLjVoOEEyLjY3LDIuNjcsMCwwLDEsMTQuMjEsMjZhMi42NywyLjY3LDAsMCwxLS4zNy0xLjM0LDIuNywyLjcsMCwwLDEsMi43LTIuN2g2YTIuNywyLjcsMCwwLDEsMi43LDIuN0EyLjYzLDIuNjMsMCwwLDEsMjQuODksMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS42LDI4LjVhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjguNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjU0LDIzLjVoLTZhMSwxLDAsMCwwLDAs''@;'; put 'put ''Mmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwzMS41SDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJN''@;'; put 'put ''MzIuNywzMS41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNywyNy41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtNiIgLz4nKSxMLkNsclNoYXBlUGVzbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTMuMkgyNy44OUE2LjgxLDYuODEsMCwwLDAsMjgsMTJhNy44NSw3Ljg1LDAsMCwwLS4xLTEuMTloMi45M2EuOC44LDAsMCwwLDAtMS42SDI3LjQ2QTguNDQsOC40NCwwLDAs''@;'; put 'put ''MCwxOS41Nyw0SDExYTEsMSwwLDAsMC0xLDFWOS4ySDdhLjguOCwwLDAsMCwwLDEuNmgzdjIuNEg3YS44LjgsMCwwLDAsMCwxLjZoM1YzMWExLDEsMCwwLDAsMiwwVjIwaDcuNTdhOC40NSw4LjQ1LDAsMCwwLDcuODktNS4ySDMxYS44LjgsMCwwLDAsMC0xLjZaTTEyLDZoNy41N2E2LjUxLDYu''@;'; put 'put ''NTEsMCwwLDEsNS42OCwzLjJIMTJabTAsNC44SDI1Ljg3YTUuNiw1LjYsMCwwLDEsMCwyLjRIMTJaTTE5LjU3LDE4SDEyVjE0LjhIMjUuMjVBNi41MSw2LjUxLDAsMCwxLDE5LjU3LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE0''@;'; put 'put ''LjE4LDEzLjhWMTZoOS40NWE1LjI2LDUuMjYsMCwwLDAsLjA4LS44OSw0LjcyLDQuNzIsMCwwLDAtLjItMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4LDE5LjdoNS4xOWE0LjI4LDQuMjgsMCwwLDAsMy41LTEuOUgxNC4xOFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LjM3LDEwLjUxSDE0LjE4VjEyaDguMzdBNC4yMSw0LjIxLDAsMCwwLDE5LjM3LDEwLjUxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNjcs''@;'; put 'put ''MmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxNy42NywyWm0xMC41LDE1LjhIMjUuN2E2Ljg3LDYuODcsMCwwLDEtNi4zMyw0LjRIMTQuMTh2Ni41NGExLjI1LDEuMjUsMCwxLDEtMi41LDBWMTcuOEg4Ljc2YS45LjksMCwxLDEsMC0xLjhoMi45MlYxMy44SDguNzZhLjkuOSwwLDEs''@;'; put 'put ''MSwwLTEuOGgyLjkyVjkuMjZBMS4yNSwxLjI1LDAsMCwxLDEyLjkzLDhoNi40NGE2Ljg0LDYuODQsMCwwLDEsNi4xNSw0aDIuNjVhLjkuOSwwLDAsMSwwLDEuOEgyNi4wOWE2LjkxLDYuOTEsMCwwLDEsLjEyLDEuMyw2LjgsNi44LDAsMCwxLS4wNi45aDJhLjkuOSwwLDAsMSwwLDEuOFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVJ1YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC41NywyMEE4LjIzLDguMjMsMCwwLDAsMjksMTJhOC4yMyw4LjIzLDAsMCwwLTguNDMtOEgxMmExLDEsMCwwLDAtMSwxVjE4SDlhMSwx''@;'; put 'put ''LDAsMCwwLDAsMmgydjJIOWExLDEsMCwwLDAsMCwyaDJ2N2ExLDEsMCwwLDAsMiwwVjI0aDlhMSwxLDAsMCwwLDAtMkgxM1YyMFpNMTMsNmg3LjU3QTYuMjQsNi4yNCwwLDAsMSwyNywxMmE2LjIzLDYuMjMsMCwwLDEtNi40Myw2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIwLjc1LDkuMjVIMTV2OC44MWg1Ljc5YTQuNjYsNC42NiwwLDAsMCw0Ljg2LTQuNEE0LjY1LDQuNjUsMCwwLDAsMjAuNzUsOS4yNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJBMTYsMTYs''@;'; put 'put ''MCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMi43NSwxOC41NkgxNVYyMmg4LjI5YTEsMSwwLDAsMSwwLDJIMTV2NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjRIMTEuMjVhMSwxLDAsMCwxLDAtMmgxLjIxVjIwLjU2SDExLjI1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNWgxLjIxVjhhMS4y''@;'; put 'put ''NSwxLjI1LDAsMCwxLDEuMjUtMS4yNWg3YTcuMTQsNy4xNCwwLDAsMSw3LjM2LDYuOUE3LjE1LDcuMTUsMCwwLDEsMjAuNzUsMjAuNTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPSgwLEUuY2xySWNvblNWRyko''@;'; put 'put ''JzxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS45MSwxNy42NWEyMC42LDIwLjYsMCwwLDAtMTMsMkExLjc3LDEuNzcsMCwwLDAsOCwyMS4yNXYzLjU2YTEsMSwwLDAsMCwyLDBWMjEuMzhhMTguOTIsMTguOTIsMCwwLDEsMTItMS42OFoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMywyMkgyNi4zVjIwLjUyYTEsMSwwLDAsMC0yLDBWMjJIMTdhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWMjNBMSwxLDAsMCwwLDMzLDIyWk0zMiwzMkgxOFYyNGg2LjN2''@;'; put 'put ''LjQxYTEsMSwwLDAsMCwyLDBWMjRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIyMS44MSIgeT0iMjcuNDIiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTUiLz5cbiAgPHBhdGggZD0iTTEwLjg0LDEyLjI0YTE4LDE4LDAsMCwwLTcuOTUsMkExLjY3LDEuNjcsMCwwLDAsMiwxNS43MXYzLjFhMSwxLDAsMCwwLDIsMHYtMi45YTE2LDE2LDAsMCwxLDcuNTgtMS42N0E3LjI4LDcuMjgsMCwwLDEsMTAuODQsMTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzMuMTEsMTQuMjNhMTcuOCwxNy44LDAsMCwwLTcuMTItMiw3LjQ2LDcuNDYsMCwwLDEtLjczLDJBMTUuODksMTUuODksMCwwLDEsMzIsMTUuOTF2Mi45YTEsMSwwLDEsMCwyLDB2LTMuMUExLjY3LDEuNjcsMCwwLDAs''@;'; put 'put ''MzMuMTEsMTQuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cGF0aCBkPSJNMTAuNjYsMTAuNjFjMC0uMjMsMC0uNDUsMC0uNjdhMy4wNywzLjA3LDAsMCwxLC41NC02LjExLDMuMTUsMy4xNSwwLDAsMSwyLjIuODksOC4xNiw4LjE2LDAsMCwx''@;'; put 'put ''LDEuNy0xLjA4LDUuMTMsNS4xMywwLDAsMC05LDMuMjcsNS4xLDUuMSwwLDAsMCw0LjcsNUE3LjQyLDcuNDIsMCwwLDEsMTAuNjYsMTAuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIvPlxuICA8cGF0aCBkPSJNMjQuNzcsMS44M2E1LjE3LDUuMTcsMCww''@;'; put 'put ''LDAtMy42OSwxLjU1LDcuODcsNy44NywwLDAsMSwxLjksMSwzLjE0LDMuMTQsMCwwLDEsNC45MywyLjUyLDMuMDksMy4wOSwwLDAsMS0xLjc5LDIuNzcsNy4xNCw3LjE0LDAsMCwxLC4wNi45Myw3Ljg4LDcuODgsMCwwLDEtLjEsMS4yLDUuMSw1LjEsMCwwLDAsMy44My00LjlBNS4xMiw1LjEy''@;'; put 'put ''LDAsMCwwLDI0Ljc3LDEuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICBcbiAgPGVsbGlwc2UgY3g9IjE4IiBjeT0iMTEuMjgiIHJ4PSI0Ljc2IiByeT0iNC43IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxw''@;'; put 'put ''YXRoIGQ9Ik0xMC43OCwxMS43NWMuMTYsMCwuMzIsMCwuNDgsMCwwLS4xNSwwLS4yOCwwLS40M2E2LjcsNi43LDAsMCwxLDMuNzUtNiw0LjYyLDQuNjIsMCwxLDAtNC4yMSw2LjQ2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjQuNzYs''@;'; put 'put ''MTEuMjhjMCwuMTUsMCwuMjgsMCwuNDMuMTYsMCwuMzIsMCwuNDgsMEE0LjU4LDQuNTgsMCwxLDAsMjEsNS4yOSw2LjcsNi43LDAsMCwxLDI0Ljc2LDExLjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjIuMjksMTYuNDVhMjEuNDUs''@;'; put 'put ''MjEuNDUsMCwwLDEsNS43MSwyLDIuNzEsMi43MSwwLDAsMSwuNjguNTNIMzRWMTUuNTZhLjcyLjcyLDAsMCwwLS4zOC0uNjQsMTgsMTgsMCwwLDAtOC40LTIuMDVsLS42NiwwQTYuNjYsNi42NiwwLDAsMSwyMi4yOSwxNi40NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTQiLz5cbiAgPHBhdGggZD0iTTYuNTMsMjAuOTJBMi43NiwyLjc2LDAsMCwxLDgsMTguNDdhMjEuNDUsMjEuNDUsMCwwLDEsNS43MS0yLDYuNjYsNi42NiwwLDAsMS0yLjI3LTMuNTVsLS42NiwwYTE4LDE4LDAsMCwwLTguNCwyLjA1LjcyLjcyLDAsMCwwLS4zOC42NFYyMkg2LjUzWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIyMS40NiIgeT0iMjYuNjkiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzIuODEsMjEuMjZIMjUuOTR2''@;'; put 'put ''LTFhMSwxLDAsMCwwLTIsMHYxSDIyVjE4LjQzQTIwLjE3LDIwLjE3LDAsMCwwLDE4LDE4YTE5LjI3LDE5LjI3LDAsMCwwLTkuMDYsMi4yMi43Ni43NiwwLDAsMC0uNDEuNjh2NS42MWg3LjExdjYuMDlhMSwxLDAsMCwwLDEsMUgzMi44MWExLDEsMCwwLDAsMS0xVjIyLjI2QTEsMSwwLDAsMCwz''@;'; put 'put ''Mi44MSwyMS4yNlptLTEsMTAuMzZIMTcuNjRWMjMuMjZoNi4zdi45MWExLDEsMCwwLDAsMiwwdi0uOTFoNS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciLz4nKSxMLkNsclNoYXBlRW1wbG95ZWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LjQzLDE2''@;'; put 'put ''LjY5YTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE2LjQzLDE2LjY5Wm0wLTExLjkyYTUsNSwwLDEsMCw1LDVBNSw1LDAsMCwwLDE2LjQzLDQuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIsMTcuOUEyNS40MSwyNS40MSww''@;'; put 'put ''LDAsMCw1Ljg4LDE5LjU3YTQuMDYsNC4wNiwwLDAsMC0yLjMxLDMuNjhWMjkuMmExLDEsMCwxLDAsMiwwVjIzLjI1YTIsMiwwLDAsMSwxLjE2LTEuODYsMjIuOTEsMjIuOTEsMCwwLDEsOS43LTIuMTEsMjMuNTgsMjMuNTgsMCwwLDEsNS41Ny42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIyLjE0IiB5PSIyNy40MSIgd2lkdGg9IjYuMTQiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzMuMTcsMjEuNDdIMjh2Mmg0LjE3djguMzdIMThW''@;'; put 'put ''MjMuNDdoNi4zdi40MmExLDEsMCwwLDAsMiwwVjIwYTEsMSwwLDAsMC0yLDB2MS40N0gxN2ExLDEsMCwwLDAtMSwxVjMyLjg0YTEsMSwwLDAsMCwxLDFIMzMuMTdhMSwxLDAsMCwwLDEtMVYyMi40N0ExLDEsMCwwLDAsMzMuMTcsMjEuNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtNCIvPlxuICBcbiAgPGNpcmNsZSBjeD0iMTYuODYiIGN5PSI5LjczIiByPSI2LjQ2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIxIiB5PSIyOCIgd2lkdGg9IjciIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xNSwzMHYzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM2ExLDEsMCwwLDAtMS0xSDI2VjIwLjUzYTEsMSwwLDAsMC0yLDBWMjJIMjJWMTguNDJBMzIuMTIsMzIuMTIsMCwwLDAsMTYuODYsMThhMjYsMjYsMCww''@;'; put 'put ''LDAtMTEsMi4zOSwzLjI4LDMuMjgsMCwwLDAtMS44OCwzVjMwWm0xNywySDE3VjI0aDd2LjQyYTEsMSwwLDAsMCwyLDBWMjRoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlRmFjdG9yeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; put 'put ''MzMuNDcsNy4zN2ExLDEsMCwwLDAtMSwuMDZMMjMsMTMuNzdWOC4yNmExLDEsMCwwLDAtMS42NC0uNzdMMTMuNDgsMTRIMTBWNC42MmExLDEsMCwwLDAtLjc4LTFsLTQtLjlhMSwxLDAsMCwwLS44NS4yQTEsMSwwLDAsMCw0LDMuNzNWMTRIM2ExLDEsMCwwLDAtMSwxVjMxYTEsMSwwLDAsMCwx''@;'; put 'put ''LDFIMzNhMSwxLDAsMCwwLDEtMVY4LjI2QTEsMSwwLDAsMCwzMy40Nyw3LjM3Wk02LDVsMiwuNDRWMTRINlpNMzIsMzBINFYxNmg5LjgzYTEsMSwwLDAsMCwuNjQtLjIzTDIxLDEwLjM3djUuMjhhMSwxLDAsMCwwLDEuNTYuODNMMzIsMTAuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI2IiB5PSIxNy45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iNiIgeT0iMjEuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjI1Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIxOSIgeT0iMTguOTkiIHdpZHRoPSIyIiBo''@;'; put 'put ''ZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHJlY3QgeD0iMjMiIHk9''@;'; put 'put ''IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+''@;'; put 'put ''XG4gIDxyZWN0IHg9IjI3IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjI0Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zMi40NSw4LjQ0LDIyLDE1LjNWOS41MWExLDEsMCwwLDAtMS42My0uNzhMMTQuMDcsMTRIMTBWNC4wNkw0LDIuNzFWMTRIMlYzMWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWOS4yN0ExLDEsMCwwLDAsMzIuNDUs''@;'; put 'put ''OC40NFpNMTQsMjlINlYyN2g4Wm0wLTRINlYyM2g4Wm0wLTRINlYxOWg4Wm04LDhIMjBWMjZoMlptMC02SDIwVjIwaDJabTQsNkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptNCw2SDI4VjI2aDJabTAtNkgyOFYyMGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicp''@;'; put 'put ''LEwuQ29tbWVyY2VTaGFwZXM9e2NhbGN1bGF0b3I6TC5DbHJTaGFwZUNhbGN1bGF0b3IsInBpZ2d5LWJhbmsiOkwuQ2xyU2hhcGVQaWdneUJhbmssInNob3BwaW5nLWJhZyI6TC5DbHJTaGFwZVNob3BwaW5nQmFnLCJzaG9wcGluZy1jYXJ0IjpMLkNsclNoYXBlU2hvcHBpbmdDYXJ0LHdhbGxl''@;'; put 'put ''dDpMLkNsclNoYXBlV2FsbGV0LHN0b3JlOkwuQ2xyU2hhcGVTdG9yZSxldXJvOkwuQ2xyU2hhcGVFdXJvLGRvbGxhcjpMLkNsclNoYXBlRG9sbGFyLHBlc286TC5DbHJTaGFwZVBlc28sImNyZWRpdC1jYXJkIjpMLkNsclNoYXBlQ3JlZGl0Q2FyZCxiYW5rOkwuQ2xyU2hhcGVCYW5rLCJkb2xs''@;'; put 'put ''YXItYmlsbCI6TC5DbHJTaGFwZURvbGxhckJpbGwsImUtY2hlY2siOkwuQ2xyU2hhcGVFQ2hlY2sscG91bmQ6TC5DbHJTaGFwZVBvdW5kLHJ1cGVlOkwuQ2xyU2hhcGVSdXBlZSx3b246TC5DbHJTaGFwZVdvbix5ZW46TC5DbHJTaGFwZVllbixiaXRjb2luOkwuQ2xyU2hhcGVCaXRjb2luLHJ1''@;'; put 'put ''YmxlOkwuQ2xyU2hhcGVSdWJsZSwiY29pbi1iYWciOkwuQ2xyU2hhcGVDb2luQmFnLCJlbXBsb3llZS1ncm91cCI6TC5DbHJTaGFwZUVtcGxveWVlR3JvdXAsZW1wbG95ZWU6TC5DbHJTaGFwZUVtcGxveWVlLGZhY3Rvcnk6TC5DbHJTaGFwZUZhY3Rvcnl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShMLkNvbW1lcmNlU2hhcGVzLCJzYXZpbmdzIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29tbWVyY2VTaGFwZXNbInBpZ2d5LWJhbmsiXSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0''@;'; put 'put ''eUljb25zLmFkZChMLkNvbW1lcmNlU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLkNvcmVTaGFw''@;'; put 'put ''ZXM9TC5DbHJTaGFwZUFycm93PUwuQ2xyU2hhcGVTdGVwRm9yd2FyZDI9TC5DbHJTaGFwZUV5ZUhpZGU9TC5DbHJTaGFwZUV5ZT1MLkNsclNoYXBlRXZlbnQ9TC5DbHJTaGFwZUNhbGVuZGFyPUwuQ2xyU2hhcGVBbmdsZURvdWJsZT1MLkNsclNoYXBlVmlld0NvbHVtbnM9TC5DbHJTaGFwZVNl''@;'; put 'put ''YXJjaD1MLkNsclNoYXBlVm1CdWc9TC5DbHJTaGFwZUZpbHRlckdyaWRDaXJjbGU9TC5DbHJTaGFwZUZpbHRlckdyaWQ9TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWw9TC5DbHJTaGFwZUVsbGlwc2lzSG9yaXpvbnRhbD1MLkNsclNoYXBlQ2xvdWQ9TC5DbHJTaGFwZUltYWdlPUwuQ2xyU2hh''@;'; put 'put ''cGVCZWxsPUwuQ2xyU2hhcGVGb2xkZXJPcGVuPUwuQ2xyU2hhcGVGb2xkZXI9TC5DbHJTaGFwZUFuZ2xlPUwuQ2xyU2hhcGVVc2VyPUwuQ2xyU2hhcGVCYXJzPUwuQ2xyU2hhcGVIZWxwSW5mbz1MLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPUwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkPUwuQ2xy''@;'; put 'put ''U2hhcGVTdWNjZXNzU3RhbmRhcmQ9TC5DbHJTaGFwZUluZm9TdGFuZGFyZD1MLkNsclNoYXBlSW5mb0NpcmNsZT1MLkNsclNoYXBlQ2hlY2tDaXJjbGU9TC5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlPUwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlPUwuQ2xyU2hhcGVUaW1lcz1MLkNs''@;'; put 'put ''clNoYXBlQ2hlY2s9TC5DbHJTaGFwZUNvZz1MLkNsclNoYXBlSG9tZT1MLkNsclNoYXBlVW5rbm93blN0YXR1cz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMv''@;'; put 'put ''c3ZnLXRhZy1nZW5lcmF0b3IudHMiKTtMLkNsclNoYXBlVW5rbm93blN0YXR1cz0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTcuNTgiIGN5PSIyNi4yMyIgcj0iMS40Ii8+XG4gICAgICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC43LDEzYTUuMTgsNS4xOCwwLDAsMC0yLjE2LTMuNTYsNy4yNiw3LjI2LDAsMCwwLTUuNzEtMS4wOUExMS4zNCwxMS4zNCwwLDAsMCwxMiwxMC40NCwxLDEsMCwxLDAsMTMuMjYsMTJhOS4zMiw5''@;'; put 'put ''LjMyLDAsMCwxLDMuOTQtMS43Miw1LjI5LDUuMjksMCwwLDEsNC4xNi43NCwzLjIxLDMuMjEsMCwwLDEsMS4zNSwyLjE5Yy4zMywyLjY5LTMuMTksMy43NS01LjMyLDQuMTRsLS44Mi4xNXY0LjM2YTEsMSwwLDAsMCwyLDBWMTkuMTdDMjQuNjEsMTcuNzksMjQuODgsMTQuNDEsMjQuNywxM1oi''@;'; put 'put ''Lz4nKSxMLkNsclNoYXBlSG9tZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjcxLDE3LjI5bC0xNS0xNWExLDEsMCwwLDAtMS40MSwwbC0xNSwxNWExLDEsMCwwLDAsMS40MSwxLjQxTDE4LDQuNDEsMzIu''@;'; put 'put ''MjksMTguNzFhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI4LDMyaC01VjIySDEzVjMySDhWMThMNiwyMFYzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiww''@;'; put 'put ''LDAsMCwyLTJWMTkuNzZsLTItMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMsMTlhMSwxLDAsMCwxLS43MS0uMjlMMTgsNC40MSwzLjcxLDE4LjcxYTEsMSwwLDAsMS0xLjQxLTEuNDFsMTUtMTVhMSwxLDAs''@;'; put 'put ''MCwxLDEuNDEsMGwxNSwxNUExLDEsMCwwLDEsMzMsMTlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE4LDcuNzksNiwxOS44M1YzMmEyLDIsMCwwLDAsMiwyaDdWMjRoNlYzNGg3YTIsMiwwLDAsMCwyLTJWMTku''@;'; put 'put ''NzZaIi8+JyksTC5DbHJTaGFwZUNvZz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjEsMTFjLTMuOSwwLTcsMy4xLTcsN3MzLjEsNyw3LDdjMy45LDAsNy0zLjEsNy03UzIyLDExLDE4LjEsMTF6IE0xOC4x''@;'; put 'put ''LDIzYy0yLjgsMC01LTIuMi01LTVzMi4yLTUsNS01YzIuOCwwLDUsMi4yLDUsNVMyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi44LDE0LjdMMzAsMTMuOGwtMC42LTEuNWwx''@;'; put 'put ''LjQtMi42YzAuMy0wLjYsMC4yLTEuNC0wLjMtMS45bC0yLjQtMi40Yy0wLjUtMC41LTEuMy0wLjYtMS45LTAuM2wtMi42LDEuNGwtMS41LTAuNmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEu''@;'; put 'put ''NiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42''@;'; put 'put ''LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYs''@;'; put 'put ''MS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiBNMzIsMTkuNGwtMy42LDEuMUwyOC4z''@;'; put 'put ''LDIxYy0wLjMsMC43LTAuNiwxLjQtMC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAu''@;'; put 'put ''M2wtMy4zLDEuOGwtMi0ybDEuOC0zLjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQt''@;'; put 'put ''MC43LDIuMi0wLjlsMC41LTAuMkwxNi42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS40LDAuNSwyLjEsMC45bDAuNSwwLjNsMy4zLTEuOGwyLDJsLTEuOCwzLjNsMC4zLDAuNWMwLjQsMC43LDAuNywxLjQsMC45LDIuMWwwLjEsMC41bDMuNiwxLjFWMTkuNHoiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4xLDE4YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdzLTMuMS03LTctN0MxNC4yLDExLDExLjEsMTQuMSwxMS4xLDE4eiBNMjMuMSwxOGMw''@;'; put 'put ''LDIuOC0yLjIsNS01LDVjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVDMjAuOSwxMywyMy4xLDE1LjIsMjMuMSwxOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44LDE0''@;'; put 'put ''LjdMMzAsMTMuOGwtMC4xLTAuM2MtMC44LDAtMS42LTAuMi0yLjQtMC40YzAuMywwLjYsMC42LDEuMywwLjgsMS45bDAuMSwwLjVsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUs''@;'; put 'put ''MC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAu''@;'; put 'put ''NUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0wLjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy41TDIxLDcuN2MwLjcsMC4yLDEuMywwLjUsMS45''@;'; put 'put ''LDAuOGMtMC4zLTAuOC0wLjQtMS42LTAuNC0yLjVsLTAuNC0wLjJsLTAuOS0yLjhDMjEsMi41LDIwLjQsMiwxOS43LDJoLTMuNGMtMC43LDAtMS4zLDAuNS0xLjQsMS4yTDE0LDZjLTAuNiwwLjEtMS4xLDAuMy0xLjYsMC42TDkuOCw1LjJDOS4yLDQuOSw4LjQsNSw3LjksNS41TDUuNSw3LjlD''@;'; put 'put ''NSw4LjQsNC45LDkuMiw1LjIsOS44bDEuMywyLjVjLTAuMiwwLjUtMC40LDEuMS0wLjYsMS42bC0yLjgsMC45QzIuNSwxNSwyLDE1LjYsMiwxNi4zdjMuNGMwLDAuNywwLjUsMS4zLDEuMiwxLjVMNiwyMi4xbDAuNiwxLjVsLTEuNCwyLjZjLTAuMywwLjYtMC4yLDEuNCwwLjMsMS45bDIuNCwy''@;'; put 'put ''LjRjMC41LDAuNSwxLjMsMC42LDEuOSwwLjNsMi42LTEuNGwxLjUsMC42bDAuOSwyLjljMC4yLDAuNiwwLjgsMS4xLDEuNSwxLjFoMy40YzAuNywwLDEuMy0wLjUsMS41LTEuMWwwLjktMi45bDEuNS0wLjZsMi42LDEuNGMwLjYsMC4zLDEuNCwwLjIsMS45LTAuM2wyLjQtMi40YzAuNS0wLjUs''@;'; put 'put ''MC42LTEuMywwLjMtMS45bC0xLjQtMi42bDAuNi0xLjVsMi45LTAuOWMwLjYtMC4yLDEuMS0wLjgsMS4xLTEuNXYtMy40QzM0LDE1LjYsMzMuNSwxNC45LDMyLjgsMTQuN3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNywxNS40aC01LjN2MC4xbDMu''@;'; put 'put ''NiwxLjF2Mi44bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEtMy42TDE1LDI4LjNjLTAuNy0wLjMt''@;'; put 'put ''MS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMtMC41TDcuMSw5LjFsMi0ybDMuMiwx''@;'; put 'put ''LjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNGwxLjQtMi4zbC0wLjYtMkMyMSwyLjQsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEuNiwwLjZMOS44LDUuMkM5''@;'; put 'put ''LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42LDEuNWwtMS40LDIuNmMt''@;'; put 'put ''MC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYsMS40YzAuNiwwLjMsMS40''@;'; put 'put ''LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTYsMzMuOSwxNS43LDMzLjcsMTUuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMC4yLDAsMC41LDAsMC43LDAuMWMtMC4yLTAuNi0wLjMtMS4zLTAuMi0yaC0wLjVjLTMuOSwwLTcsMy4xLTcsN2MwLDMuOSwzLjEsNyw3''@;'; put 'put ''LDdjMy45LDAsNy0zLjEsNy03YzAtMC45LTAuMi0xLjgtMC41LTIuNmgtMi4yYzAuNSwwLjgsMC43LDEuNiwwLjcsMi41QzIzLjEsMjAuOCwyMC45LDIzLDE4LjEsMjN6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNywwLDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0w''@;'; put 'put ''LjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTEuNjUsMTEuNjUsMCwwLDAtLjk1LTIuMzNsMS42NC0z''@;'; put 'put ''LjA3YS42MS42MSwwLDAsMC0uMTEtLjcyTDI3LjQxLDYuMmEuNjEuNjEsMCwwLDAtLjcyLS4xMUwyMy42NCw3LjcyYTExLjYyLDExLjYyLDAsMCwwLTIuMzYtMWwtMS0zLjMxQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYz''@;'; put 'put ''LDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTEx''@;'; put 'put ''LjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwu''@;'; put 'put ''NTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0u''@;'; put 'put ''NThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn''@;'; put 'put ''ZWQiIGQ9Ik0zMi41NywxNS43MmwtMy4zNS0xYTEyLjEyLDEyLjEyLDAsMCwwLS40Ny0xLjMyLDcuNDksNy40OSwwLDAsMS02LjE0LTYuMTYsMTEuODIsMTEuODIsMCwwLDAtMS4zMy0uNDhsLTEtMy4zMUEuNjEuNjEsMCwwLDAsMTkuNjksM0gxNi4zMWEuNjEuNjEsMCwwLDAtLjU4LjQzbC0x''@;'; put 'put ''LDMuM2ExMS42MywxMS42MywwLDAsMC0yLjM4LDFsLTMtMS42MmEuNjEuNjEsMCwwLDAtLjcyLjExTDYuMiw4LjU5YS42MS42MSwwLDAsMC0uMTEuNzJsMS42MiwzYTExLjYzLDExLjYzLDAsMCwwLTEsMi4zN2wtMy4zMSwxYS42MS42MSwwLDAsMC0uNDMuNTh2My4zOGEuNjEuNjEsMCwwLDAs''@;'; put 'put ''LjQzLjU4bDMuMzMsMWExMS42MiwxMS42MiwwLDAsMCwxLDIuMzNMNi4wOSwyNi42OWEuNjEuNjEsMCwwLDAsLjExLjcyTDguNTksMjkuOGEuNjEuNjEsMCwwLDAsLjcyLjExbDMuMDktMS42NWExMS42NSwxMS42NSwwLDAsMCwyLjMuOTRsMSwzLjM3YS42MS42MSwwLDAsMCwuNTguNDNoMy4z''@;'; put 'put ''OGEuNjEuNjEsMCwwLDAsLjU4LS40M2wxLTMuMzhhMTEuNjMsMTEuNjMsMCwwLDAsMi4yOC0uOTRsMy4xMSwxLjY2YS42MS42MSwwLDAsMCwuNzItLjExbDIuMzktMi4zOWEuNjEuNjEsMCwwLDAsLjExLS43MmwtMS42Ni0zLjFhMTEuNjMsMTEuNjMsMCwwLDAsLjk1LTIuMjlsMy4zNy0xYS42''@;'; put 'put ''MS42MSwwLDAsMCwuNDMtLjU4VjE2LjMxQS42MS42MSwwLDAsMCwzMi41NywxNS43MlpNMTgsMjMuNUE1LjUsNS41LDAsMSwxLDIzLjUsMTgsNS41LDUuNSwwLDAsMSwxOCwyMy41WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzIuNTcsMTUuNzIsMzEuNSwxNS40SDIy''@;'; put 'put ''Ljg1QTUuNSw1LjUsMCwxLDEsMTgsMTIuNWE1LjUzLDUuNTMsMCwwLDEsLjY1LDBBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyLS44Ni0yLjgzQS42MS42MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIu''@;'; put 'put ''MzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0zLjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYy''@;'; put 'put ''LDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEt''@;'; put 'put ''My4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0xLjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFB''@;'; put 'put ''LjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4y''@;'; put 'put ''MywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlQ2hlY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9''@;'; put 'put ''Ik0xMy43MiwyNy42OSwzLjI5LDE3LjI3YTEsMSwwLDAsMSwxLjQxLTEuNDFsOSw5TDMxLjI5LDcuMjlhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nKSxMLkNsclNoYXBlVGltZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEiIGQ9Ik0xOS40MSwxOGw4LjI5LTguMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSw5LjcxLDguMjlBMSwxLDAsMCwwLDguMjksOS43MUwxNi41OSwxOCw4LjI5LDI2LjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTkuNDFsOC4yOSw4LjI5YTEsMSwwLDAsMCwxLjQxLTEuNDFa''@;'; put 'put ''Ii8+JyksTC5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEu''@;'; put 'put ''MywxLjMsMCwwLDAsMTgsMjEuMzJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgY3g9IjE3Ljk1IiBjeT0iMjQuMjciIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWm0tMS43OCwxLjk0YTEsMSwwLDAsMS0uODYuNDlIOC4yMWExLDEsMCww''@;'; put 'put ''LDEtLjg4LTEuNDhMMTcuMDcsOC41NWExLDEsMCwwLDEsMS43NiwwbDkuNzQsMTcuOTRBMSwxLDAsMCwxLDI4LjU1LDI3LjQ4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZh''@;'; put 'put ''MywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQuNDNaTTE2LjQ2LDEyLjc0YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNi4yNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcy''@;'; put 'put ''QTEuNzIsMS43MiwwLDAsMSwxOCwyNi4yNVoiLz4nKSxMLkNsclNoYXBlRXhjbGFtYXRpb25DaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCww''@;'; put 'put ''LDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMC4wN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjN2LTZhMS4zLDEuMyww''@;'; put 'put ''LDEsMSwyLjYsMHY2QTEuMywxLjMsMCwwLDEsMTgsMjAuMDdaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE3Ljk1IiBjeT0iMjMuMDIiIHI9IjEuNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabS0xLjQ5LDZhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSwwLDEsMS0zLDBaTTE4LDI1LjVhMS43MiwxLjcyLDAsMSwxLDEuNzIt''@;'; put 'put ''MS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjUuNVoiLz4nKSxMLkNsclNoYXBlQ2hlY2tDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4''@;'; put 'put ''LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xNi4zNCwyMy43NGwtNS01YTEsMSwwLDAsMSwxLjQxLTEuNDFsMy41OSwzLjU5''@;'; put 'put ''LDYuNzgtNi43OGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwxOEExMiwxMiwwLDEsMSwxOCw2LDEyLDEyLDAsMCwxLDMwLDE4Wm0tNC43Ny0yLjE2YTEuNCwxLjQsMCww''@;'; put 'put ''LDAtMi0ybC02Ljc3LDYuNzdMMTMsMTcuMTZhMS40LDEuNCwwLDAsMC0yLDJsNS40NSw1LjQ1WiIvPicpLEwuQ2xyU2hhcGVJbmZvQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiICBjeD0iMTcuOTMiIGN5''@;'; put 'put ''PSIxMS45IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgIGQ9Ik0yMSwyM0gxOVYxNUgxNmExLDEsMCwwLDAsMCwyaDF2NkgxNWExLDEsMCwxLDAsMCwyaDZhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAsMTAsMCwwLDEsMTgsMjhaIi8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTIsNS4xNWEyLDIsMCwxLDEsMiwyQTIsMiwwLDAsMSwxNS45LDExLjE1Wk0yMywyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSww''@;'; put 'put ''LDEsMSwwLTJoMlYxN0gxNmExLDEsMCwwLDEsMC0yaDR2OGgyQTEsMSwwLDAsMSwyMywyNFoiLz4nKSxMLkNsclNoYXBlSW5mb1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxNy45NyIgY3k9''@;'; put 'put ''IjEwLjQ1IiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTIxLDI1SDE5VjE0LjFIMTZhMSwxLDAsMCwwLDAsMmgxVjI1SDE1YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCwwLDE4LDIuMVptLS4xLDUuMjhhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTcuOSw3LjM4Wm0zLjYsMjEuMjVoLTdhMS40LDEuNCww''@;'; put 'put ''LDEsMSwwLTIuOGgyLjF2LTkuMkgxNWExLjQsMS40LDAsMSwxLDAtMi44aDQuNHYxMmgyLjFhMS40LDEuNCwwLDEsMSwwLDIuOFoiLz4nKSxMLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBk''@;'; put 'put ''PSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDksMjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg''@;'; put 'put ''ZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVhMS40LDEuNCwwLDEsMSwyLDJaIi8+JyksTC5DbHJTaGFwZUVycm9yU3RhbmRhcmQ9''@;'; put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; put 'put ''ZD0iTTE4LDIyLjYxYTEsMSwwLDAsMS0xLTF2LTEyYTEsMSwwLDEsMSwyLDB2MTJBMSwxLDAsMCwxLDE4LDIyLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgs''@;'; put 'put ''MTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQsMTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi4xYTE2LDE2LDAsMSwwLDE2LDE2QTE2LDE2LDAsMCww''@;'; put 'put ''LDE4LDIuMVpNMTYuNiw4LjhhMS40LDEuNCwwLDAsMSwyLjgsMHYxMmExLjQsMS40LDAsMCwxLTIuOCwwWk0xOCwyOC42YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI4LjZaIi8+JyksTC5DbHJTaGFwZVdhcm5pbmdTdGFuZGFyZD0oMCxFLmNsckljb25TVkcpKCc8''@;'; put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAs''@;'; put 'put ''MCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNS4wNjIwNzgyLDEuNjgxMTk2IEMxNS42Mjk4ODE5LDAuNjQ5MjY2MzU1''@;'; put 'put ''IDE2LjcxMDkwOTEsMC4wMTAyMjE5Mzk2IDE3Ljg4NSwwLjAxMDIyMTkzOTYgQzE5LjA1OTA5MDksMC4wMTAyMjE5Mzk2IDIwLjE0MDExODEsMC42NDkyNjYzNTUgMjAuNzA4NjQzMywxLjY4MjUyMTI5IEwzNC41OTg2NDQsMjcuMjQyNTIyNSBDMzUuMTQwNzc0NiwyOC4yNDAxMzk3IDM1LjEx''@;'; put 'put ''NzQzNDUsMjkuNDQ5NTM3MyAzNC41MzcyMTYxLDMwLjQyNTQ5NDMgQzMzLjk1Njk5NzcsMzEuNDAxNDUxNCAzMi45MDU2NzEsMzEuOTk5Njk4NCAzMS43NywzMiBMNC4wMjIzOTMyMywzMS45OTk3NDkyIEMyLjg3NDA5MDA5LDMyLjAyNTQ2OTkgMS43OTkwMjg0MywzMS40Mzc1NzUzIDEuMjAx''@;'; put 'put ''MDYzMzUsMzAuNDU2OTEyNiBDMC42MDMwOTgyNjUsMjkuNDc2MjQ5OSAwLjU3Mjc3Nzg5OSwyOC4yNTEzMTc5IDEuMTIyMDc4MTgsMjcuMjQxMTk2IEwxNS4wNjIwNzgyLDEuNjgxMTk2IFogTTIuODc4NTA3NjcsMjguMTk3NzI4MiBDMi42NzA2MDk2NiwyOC41ODAwMzc2IDIuNjgyMDk3NSwy''@;'; put 'put ''OS4wNDQxNDIzIDIuOTA4NjU1NywyOS40MTU2OTc3IEMzLjEzNTIxMzksMjkuNzg3MjUzMiAzLjU0MjUzNTQsMzAuMDA5OTk1OSA0LDMwIEwzMS43Njk3MzQ0LDMwIEMzMi4xOTk5MTkxLDI5Ljk5OTg4NTggMzIuNTk4MjQ3OCwyOS43NzMyMjA4IDMyLjgxODA4MjEsMjkuNDAzNDQ4MiBDMzMu''@;'; put 'put ''MDM3OTE2NCwyOS4wMzM2NzU3IDMzLjA0Njc1OTUsMjguNTc1NDU2NyAzMi44NDEzNTY3LDI4LjE5NzQ3ODcgTDE4Ljk1Mzg3MzksMi42NDIwODE5NSBDMTguNzM5NDIzNiwyLjI1MjM0NDM2IDE4LjMyOTg0MTksMi4wMTAyMjE5NCAxNy44ODUsMi4wMTAyMjE5NCBDMTcuNDQwNjg4OSwyLjAx''@;'; put 'put ''MDIyMTk0IDE3LjAzMTU1MzgsMi4yNTE3NjY5MiAxNi44MTY4OTQ2LDIuNjQwNjg3NTMgTDIuODc4NTA3NjcsMjguMTk3NzI4MiBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM0LjYsMjkuMjEsMjAuNzEsMy42''@;'; put 'put ''NWEzLjIyLDMuMjIsMCwwLDAtNS42NiwwTDEuMTcsMjkuMjFBMy4yMiwzLjIyLDAsMCwwLDQsMzRIMzEuNzdhMy4yMiwzLjIyLDAsMCwwLDIuODMtNC43NVpNMTYuNiwxMGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI5Ljg1YTEuOCwxLjgsMCwxLDEs''@;'; put 'put ''MS44LTEuOEExLjgsMS44LDAsMCwxLDE4LDI5Ljg1WiIvPicpLEwuQ2xyU2hhcGVIZWxwSW5mbz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMzksMjUuNDVhMSwxLDAsMCwwLTEuMzguMjljLTEuNDEsMi4xNi00LDQuODEtNi4zMSw1LjdzLTQuMTIuNTctNC44NCwwYy0uMzEtLjI3''@;'; put 'put ''LTEuMTItMS0uNDMtMy40OS40Ni0xLjY2LDMuMzItOS40OCw0LTExLjM4bC0yLjE4LjI4Yy0uNjksMS44Ni0zLjI5LDguODQtMy43NiwxMC41OC0uNjgsMi40OS0uMzQsNC4zLDEuMDksNS41NkE1LjU5LDUuNTksMCwwLDAsMTUsMzRhOS41Myw5LjUzLDAsMCwwLDMuNDUtLjdjMi43OS0xLjA5''@;'; put 'put ''LDUuNzItNC4xMiw3LjI2LTYuNDdBMSwxLDAsMCwwLDI1LjM5LDI1LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMywxMWE0LjUsNC41LDAsMSwwLTQuNS00LjVBNC41LDQuNSwwLDAsMCwxOS4zLDEx''@;'; put 'put ''Wm0wLTdhMi41LDIuNSwwLDEsMS0yLjUsMi41QTIuNSwyLjUsMCwwLDEsMTkuMyw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuODEsMTVjLjA2LDAsNi4yNy0uODIsNy43My0xLC42NS0uMSwxLjE0LDAs''@;'; put 'put ''MS4zLjE1cy4yMS44LS4wNywxLjY4Yy0uNjEsMS44Ni0zLjY5LDExLTQuNTksMTMuNzFhOCw4LDAsMCwwLDEuMjktLjM4LDcuMzIsNy4zMiwwLDAsMCwxLjE1LS42QzE5Ljg1LDI1LDIyLjE1LDE4LjEsMjIuNjcsMTYuNTJzLjM5LTIuNzgtLjMtMy42YTMuMTYsMy4xNiwwLDAsMC0zLjA4LS44''@;'; put 'put ''M2MtMS40My4xNS03LjQ3Ljk0LTcuNzMsMWExLDEsMCwwLDAsLjI2LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjIwLjc1IiBjeT0iNiIgcj0iNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC44NCwyNi4yM2ExLDEsMCwwLDAtMS40LjI5LDE2LjYsMTYuNiwwLDAsMS0zLjUxLDMuNzdjLS4zMy4yNS0xLjU2LDEuMi0yLjA4LDEtLjM2LS4xMS0uMTUtLjgyLS4wOC0xLjEybC41My0xLjU3Yy4yMi0uNjQsNC4wNS0xMiw0''@;'; put 'put ''LjQ3LTEzLjMuNjItMS45LjM1LTMuNzctMi40OC0zLjMyLS43Ny4wOC04LjU4LDEuMDktOC43MiwxLjFhMSwxLDAsMCwwLC4xMywyczMtLjM5LDMuMzMtLjQyYS44OC44OCwwLDAsMSwuODUuNDQsMi40NywyLjQ3LDAsMCwxLS4wNywxLjcxYy0uMjYsMS00LjM3LDEyLjU4LTQuNSwxMy4yNWEy''@;'; put 'put ''Ljc4LDIuNzgsMCwwLDAsMS4xOCwzLDUsNSwwLDAsMCwzLjA4LjgzaDBhOC41Myw4LjUzLDAsMCwwLDMuMDktLjYyYzIuNDktMSw1LjA5LTMuNjYsNi40Ni01Ljc1QTEsMSwwLDAsMCwyNC44NCwyNi4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5D''@;'; put 'put ''bHJTaGFwZUJhcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwyOUg0YTEsMSwwLDAsMSwwLTJIMzJhMSwxLDAsMCwxLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMzIsOUg0QTEsMSwwLDAsMSw0LDdI''@;'; put 'put ''MzJhMSwxLDAsMCwxLDAsMloiLz4nKSxMLkNsclNoYXBlVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMSwwLTctN0E3LDcsMCwwLDAsMTgsMTdaTTE4LDVhNSw1LDAsMSwxLTUsNUE1LDUsMCwwLDEsMTgsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjks''@;'; put 'put ''MzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiwwLDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMx''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjZhNSw1LDAsMSwxLDEuMjQtOC40MmwxLTEuNzZBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAs''@;'; put 'put ''MiwySDI5YTIsMiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNywwLDEsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0t''@;'; put 'put ''YmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3''@;'; put 'put ''LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjEwIiByPSI3IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCww''@;'; put 'put ''LS4zOSwxdjZBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMTgsMTdhNyw3LDAsMCwwLDQuNDUtMS42aC0uMjJBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMy4xNi01LjQ3QTcsNywwLDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBh''@;'; put 'put ''dGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC42MSwyNC41MmExNy4xNiwxNy4xNiwwLDAsMC0yNS4yMiwwLDEuNTEsMS41MSwwLDAsMC0uMzksMXY2QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNXYtNkEx''@;'; put 'put ''LjUxLDEuNTEsMCwwLDAsMzAuNjEsMjQuNTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNi44NS01LjU2LDcuNCw3LjQsMCwwLDEtMi4yNC02LjY5QTcsNyww''@;'; put 'put ''LDEsMCwxOCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUFuZ2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuNTIsMjIuNTIsMTgsMTAuNiw2LjQ4LDIyLjUyYTEuNywxLjcsMCwwLDAsMi40NSwyLjM2TDE4''@;'; put 'put ''LDE1LjQ5bDkuMDgsOS4zOWExLjcsMS43LDAsMCwwLDIuNDUtMi4zNloiLz4nKSxMLkNsclNoYXBlRm9sZGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAs''@;'; put 'put ''MCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIi8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzAsMTMuNVYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUxYTcuNSw3LjUsMCwwLDEtMS4y''@;'; put 'put ''OS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJN''@;'; put 'put ''MzAsMTUuNFYyOUg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwy''@;'; put 'put ''LDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsOUgxNi40''@;'; put 'put ''MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCww''@;'; put 'put ''LDItMlYxNS40Wk02LDExVjdoNi40OWwyLjcyLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww''@;'; put 'put ''LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJN''@;'; put 'put ''MzAsMTMuNUE3LjUsNy41LDAsMCwxLDIzLjEzLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDExVjdoNi40OWwyLjcyLDRa''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVGb2xkZXJPcGVuPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAs''@;'; put 'put ''LjgxLjQxSDMyYTIsMiwwLDAsMC0yLTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRa''@;'; put 'put ''TTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSww''@;'; put 'put ''LDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWg4LjUyYTcuNDksNy40OSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2''@;'; put 'put ''QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMUExLjY0LDEuNjQsMCwwLDAsMzUuMzIsMTMuNzRaTTI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0SDMzLjQ5WiIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40aC0uM0wyOS41NSwyOUg2LjlsMy44OC0xMy44MWEuNjYuNjYsMCwwLDEsLjM4LS4yNGg5LjQyQTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIu''@;'; put 'put ''NTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjku''@;'; put 'put ''NjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEsMzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDls''@;'; put 'put ''Mi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42''@;'; put 'put ''NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZhMy42MywzLjYzLDAsMCwx''@;'; put 'put ''LS4yNi0uNTZIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoMi43M0EzLjY2LDMuNjYsMCwwLDEsMTksOS44OUwxOS41Niw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5''@;'; put 'put ''LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFhMS42OCwxLjY4LDAsMCwwLC4wNy0uMzJBMy42NywzLjY3LDAsMCwxLDMzLjY4LDE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCww''@;'; put 'put ''LDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1''@;'; put 'put ''LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwxLTEuMzEtMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40''@;'; put 'put ''MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0i''@;'; put 'put ''MzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUJlbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi41MSwyNy44M0ExNC40LDE0LjQsMCwwLDEsMzAsMjQuOWExMi42MywxMi42MywwLDAsMS0xLjM1''@;'; put 'put ''LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIuNDcsMi45MywxLDEs''@;'; put 'put ''MCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWk01LjEzLDI4Ljk0YTE2LjE3LDE2LjE3LDAsMCwwLDIuNDQtMywxNC4yNCwxNC4yNCwwLDAsMCwxLjY1LTUuODVWMTUuMTVhOC43NCw4Ljc0LDAsMSwx''@;'; put 'put ''LDE3LjQ3LDB2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzQuMjhBMi42NywyLjY3LDAsMCww''@;'; put 'put ''LDIwLjU4LDMySDE1LjMyQTIuNjcsMi42NywwLDAsMCwxOCwzNC4yOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJI''@;'; put 'put ''MTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjUxLDI3LjgzQTE0LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEy''@;'; put 'put ''LjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OSw3LjQ0LDcuNDQsMCwwLDEtMi4yNC0uODQsOC44OSw4Ljg5LDAsMCwxLC40LDIuNjR2NC45NGExNC4yNCwxNC4yNCwwLDAsMCwxLjY1LDUuODUsMTYuMTcsMTYuMTcsMCwwLDAsMi40NCwzSDUuMTNh''@;'; put 'put ''MTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNUE4LjgsOC44LDAsMCwxLDE4LDYuMzFhOC42MSw4LjYxLDAsMCwxLDQuNzYsMS40NEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU4LDEwLjU4LDAsMCww''@;'; put 'put ''LTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTMsMSwxLDAsMCwwLS4zNC43NXYxLjM2YTEsMSwwLDAsMCwxLDFo''@;'; put 'put ''MjcuOGExLDEsMCwwLDAsMS0xVjI4LjU4QTEsMSwwLDAsMCwzMi41MSwyNy44M1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0i''@;'; put 'put ''NSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1QTEwLjgxLDEwLjgxLDAs''@;'; put 'put ''MCwwLDE5LjIxLDQuNFYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIuOTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE1LjMyLDMyYTIuNjUsMi42NSwwLDAsMCw1LjI1LDBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i''@;'; put 'put ''YWRnZWQiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzIu''@;'; put 'put ''ODUsMjguMTNsLS4zNC0uM0ExNC4zNywxNC4zNywwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNWExMC45MiwxMC45MiwwLDAsMC0uMTYtMS43OUE3LjUsNy41LDAsMCwxLDIyLjUsNmMwLS4yMSwwLS40MiwwLS42M2ExMC41NywxMC41NywwLDAsMC0zLjMy''@;'; put 'put ''LTFWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAsMCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzbC0uMzQuM3YyLjgySDMyLjg1WiIvPlxuICAgICAgICAgICAgICAgIDxj''@;'; put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlSW1hZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMw''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk00LDMwVjZIMzJWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguOTIsMTRhMywzLDAsMSwwLTMtM0EzLDMsMCwwLDAs''@;'; put 'put ''OC45MiwxNFptMC00LjZBMS42LDEuNiwwLDEsMSw3LjMzLDExLDEuNiwxLjYsMCwwLDEsOC45Miw5LjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi43OCwxNS4zN2wtNS40LDUuNC00LTRhMSwxLDAsMCww''@;'; put 'put ''LTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MUExLDEsMCwwLDAsMjIuNzgsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTExLjkzLDExYTMsMywwLDEsMC0zLDNBMywzLDAsMCwwLDExLjkzLDExWm0tNC42LDBhMS42LDEuNiwwLDEsMSwxLjYsMS42QTEuNiwxLjYsMCwwLDEsNy4zMywxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LjM4LDIwLjc3bC00LTRhMSwxLDAsMCwwLTEuNDEsMEw1LjkyLDIyLjl2Mi44M2w2Ljc5LTYuNzlMMTYsMjIuMThsLTMuNzUsMy43NUgxNWw4LjQ1LTguNDVMMzAsMjRWMjEuMThsLTUuODEtNS44MWExLDEsMCwwLDAtMS40MSwwWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY2SDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMiw0Wk04LjkyLDhhMywzLDAs''@;'; put 'put ''MSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMwLDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OCw3LjQ4LDAsMCwxLDIyLjc4LDRINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNOC45Miw4YTMsMywwLDEsMS0z''@;'; put 'put ''LDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZUNsb3VkPSgwLEUuY2xySWNvblNW''@;'; put 'put ''RykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQsMzNIMTAuNjJDNS42NywzMywxLDI4LjE5LDEsMjMuMWExMCwxMCwwLDAsMSw4LTkuNzUsMTAuMTksMTAuMTksMCwwLDEsMjAuMzMsMS4wNkExMC4wNywxMC4wNywwLDAsMSwyOSwx''@;'; put 'put ''Ni42NmE4LjI5LDguMjksMCwwLDEsNiw4QzM1LDI5LjEsMzEuMzMsMzMsMjcuMTQsMzNaTTE5LjA5LDYuMjNhOC4yNCw4LjI0LDAsMCwwLTguMTksOGwwLC44Ny0uODYuMUE3Ljk0LDcuOTQsMCwwLDAsMywyMy4xYzAsNCwzLjc3LDcuOSw3LjYyLDcuOUgyNy4xNEMzMC4yMSwzMSwzMywyOCwz''@;'; put 'put ''MywyNC42NWE2LjMxLDYuMzEsMCwwLDAtNS4zNy02LjI2bC0xLjE4LS4xOC4zOS0xLjEzQTguMTgsOC4xOCwwLDAsMCwxOS4wOSw2LjIzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; put 'put ''ZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ1LDcuNDUsMCwwLDEtMi4xLS41NCw4LDgsMCwwLDEtLjMsNC4xNmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3LjA5''@;'; put 'put ''LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3YTguMjQsOC4yNCwwLDAsMSw4LjE5LThBOC4xMyw4LjEzLDAsMCwxLDIyLjU4LDdhNy41Myw3LjUzLDAsMCwxLS4wOC0xLDcuNTEsNy41MSwwLDAsMSwuMDktMS4x''@;'; put 'put ''MkExMC4xMywxMC4xMywwLDAsMCwxOSw0LjIzLDEwLjI2LDEwLjI2LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTQsMTAuMTQsMCwwLDAsLjItMS4zaC0yYTguMjgsOC4yOCwwLDAsMS0uMzcsMS43MmwtLjM5LDEuMTMsMS4xOC4xOGE2LjMxLDYuMzEsMCwwLDEsNS4zNyw2LjI2QzMyLjk1LDI4LDMwLjE2LDMxLDI3''@;'; put 'put ''LjA5LDMxSDEwLjU3Yy0zLjg0LDAtNy42Mi0zLjkxLTcuNjItNy45YTcuOTQsNy45NCwwLDAsMSw3LTcuODlsLjg2LS4xLDAtLjg3QTguMTYsOC4xNiwwLDAsMSwyMSw2LjQ3bDEtMS44QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzZhMTAsMTAsMCwwLDAtOCw5Ljc1YzAsNS4wOSw0LjY3''@;'; put 'put ''LDkuOSw5LjYyLDkuOUgyNy4wOWM0LjE5LDAsNy44Ni0zLjksNy44Ni04LjM1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1h''@;'; put 'put ''bGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNEExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwy''@;'; put 'put ''NC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yOSwxNi42NmExMC4wNywxMC4wNywwLDAsMCwuMjUtMi4yNGMwLS4zMywwLS42NSww''@;'; put 'put ''LTFhNy40NCw3LjQ0LDAsMCwxLTYuNi04LjU4QTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAsMCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4''@;'; put 'put ''LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjksMTYuNjZhMTAuMTUsMTAuMTUsMCwwLDAsLjItMS4yNmgtN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLTUuMjFBMTAuMTksMTAuMTksMCwwLDAsOC45MSwxMy4zNiwxMCwxMCwwLDAs''@;'; put 'put ''MCwxLDIzLjFDMSwyOC4xOSw1LjYyLDMzLDEwLjU3LDMzSDI3LjA5QzMxLjI4LDMzLDM1LDI5LjEsMzUsMjQuNjVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNI''@;'; put 'put ''b3Jpem9udGFsPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMxLjEiIGN5PSIxOCIg''@;'; put 'put ''cj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbD0oMCxFLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9''@;'; put 'put ''IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjQuOSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+Jyks''@;'; put 'put ''TC5DbHJTaGFwZUZpbHRlckdyaWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwyNS44NmwyLDFWMjAuMjdhMSwxLDAsMCwwLS4yOS0uN0wxMC4yMywxM0gyNS43OWwtNi40Nyw2LjU3YTEsMSwwLDAsMC0u''@;'; put 'put ''MjkuN0wxOSwyOGwyLDFWMjAuNjhMMjcuNTgsMTRBMS40NiwxLjQ2LDAsMCwwLDI4LDEzVjEyYTEsMSwwLDAsMC0xLTFIOWExLDEsMCwwLDAtMSwxdjFhMS40NiwxLjQ2LDAsMCwwLC40MiwxTDE1LDIwLjY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03''@;'; put 'put ''LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxMLkNsclNoYXBlRmlsdGVyR3JpZENpcmNsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43''@;'; put 'put ''TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNOCwxMXYxLjEyYS41LjUsMCwwLDAsLjE1LjM1bDcuMjgsNy4zNmEuNS41LDAsMCwxLC4xNS4zNXY2Ljg5YS41LjUsMCwwLDAsLjI4LjQ1bDMuOTUsMS40MWEuNS41LDAsMCwwLC43Mi0uNDVsMC04LjM5YS41NC41NCwwLDAs''@;'; put 'put ''MSwuMTgtLjM1bDcuMTItNy4yNWEuNS41LDAsMCwwLC4xNS0uMzVWMTFaIi8+JyksTC5DbHJTaGFwZVZtQnVnPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgcng9IjMiIGZpbGw9IiNmZmZmZmYiIG9wYWNpdHk9IjAuMTUiIHN0eWxlPSJpc29sYXRpb246''@;'; put 'put ''aXNvbGF0ZSIvPjxwYXRoIGQ9Ik0zLjc5LDE0LjgzYTEuMDksMS4wOSwwLDAsMC0xLjQ3LS41NiwxLjA5LDEuMDksMCwwLDAtLjU0LDEuNDlsMi40Nyw1LjRjLjM5Ljg1LjgsMS4yOSwxLjU3LDEuMjlTNywyMiw3LjM5LDIxLjE2bDIuMTctNC43N2EuMzMuMzMsMCwwLDEsLjMxLS4yLjM1LjM1''@;'; put 'put ''LDAsMCwxLC4zNS4zNXY0LjYxYTEuMTUsMS4xNSwwLDAsMCwxLjE0LDEuMywxLjE3LDEuMTcsMCwwLDAsMS4xNy0xLjNWMTcuMzhhMS4xNSwxLjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTcsMS4xNywwLDEsMCwyLjMyLDBWMTcuMzhhMS4xNSwx''@;'; put 'put ''LjE1LDAsMCwxLDEuMjItMS4yLDEuMTMsMS4xMywwLDAsMSwxLjE4LDEuMnYzLjc3YTEuMTYsMS4xNiwwLDEsMCwyLjMxLDBWMTYuODZhMi42OSwyLjY5LDAsMCwwLTIuNzgtMi42OSwzLjU3LDMuNTcsMCwwLDAtMi40NywxLjA1LDIuNzUsMi43NSwwLDAsMC0yLjM4LTEuMDVBMy45MywzLjkz''@;'; put 'put ''LDAsMCwwLDEyLDE1LjIyYTIuODIsMi44MiwwLDAsMC0yLjA4LTEuMDVBMi41NSwyLjU1LDAsMCwwLDcuNCwxNS44OUw1LjgyLDE5LjYzbC0yLTQuOCIgZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIGQ9Ik0zMywxNC4xOEExLjE0LDEuMTQsMCwwLDAsMzEuOSwxNWwtMS4xOSwzLjczTDI5LjUsMTUu''@;'; put 'put ''MDVhMS4xOCwxLjE4LDAsMCwwLTEuMTUtLjg3aC0uMWExLjIsMS4yLDAsMCwwLTEuMTUuODdsLTEuMTksMy43MS0xLjE4LTMuNzFhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjg3LDEuMDgsMS4wOCwwLDAsMC0xLjEyLDEuMDcsMS42OCwxLjY4LDAsMCwwLC4xLjU0bDIsNS43YTEuMjcsMS4yNyww''@;'; put 'put ''LDAsMCwxLjI3LDEsMS4yNCwxLjI0LDAsMCwwLDEuMi0uOTNsMS4yLTMuNjQsMS4yLDMuNjRhMS4yNSwxLjI1LDAsMCwwLDEuMjYuOTNBMS4yNywxLjI3LDAsMCwwLDMyLDIxLjVMMzQsMTUuNzNhMS43NywxLjc3LDAsMCwwLC4wOC0uNDhBMS4wNywxLjA3LDAsMCwwLDMzLDE0LjE4WiIgZmls''@;'; put 'put ''bD0iI2ZmZmZmZiIvPicpLEwuQ2xyU2hhcGVTZWFyY2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4zMyw1LjA1QTEwLjk1LDEwLjk1LDAsMSwxLDUuMzksMTYsMTEsMTEsMCwwLDEsMTYuMzMsNS4wNW0w''@;'; put 'put ''LTIuMDVhMTMsMTMsMCwxLDAsMTMsMTMsMTMsMTMsMCwwLDAtMTMtMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zNSwzMy4yOWwtNy4zNy03LjQyLTEuNDIsMS40MSw3LjM3LDcuNDJBMSwxLDAsMSww''@;'; put 'put ''LDM1LDMzLjI5WiIvPicpLEwuQ2xyU2hhcGVWaWV3Q29sdW1ucz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3''@;'; put 'put ''QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFptMTAsMEgxNVY3aDhaIi8+JyksTC5DbHJTaGFwZUFuZ2xlRG91YmxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjksMTkuNDFhMSwxLDAsMCwxLS43MS0u''@;'; put 'put ''MjlMMTgsOC44Myw3LjcxLDE5LjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsNiwyOS43MSwxNy43MUExLDEsMCwwLDEsMjksMTkuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOSwzMC40MWExLDEs''@;'; put 'put ''MCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMwLjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgsMTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPicpLEwuQ2xyU2hhcGVDYWxlbmRhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZa''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjgiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTMiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8''@;'; put 'put ''cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjYiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjgiIHk9IjE5IiB3''@;'; put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+''@;'; put 'put ''XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xMSIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEyIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8''@;'; put 'put ''cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNCIgZD0iTTEwLDEwYTEs''@;'; put 'put ''MSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAs''@;'; put 'put ''MCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAs''@;'; put 'put ''MCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJh''@;'; put 'put ''ZGdlZCIgeD0iMjAiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiIHg9IjIwIiB5PSIxOSIg''@;'; put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWJhZGdlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3Qg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xMS0tYmFkZ2VkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIiB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; put 'put ''IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYmFkZ2VkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMTUtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1iYWRnZWQgY2xyLWktYmFk''@;'; put 'put ''Z2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcu''@;'; put 'put ''ODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjgiIHk9''@;'; put 'put ''IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiB4PSI4IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC01LS1hbGVydGVkIiB4PSIxNCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0i''@;'; put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQiIHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05''@;'; put 'put ''LS1hbGVydGVkIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWFsZXJ0ZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAs''@;'; put 'put ''MzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwxLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIu''@;'; put 'put ''MiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYx''@;'; put 'put ''NGgyWm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptMC01SDIwVjE0aDJabTYsMTBIMjZWMjRoMlptMC01SDI2VjE5aDJabTAtNUgyNlYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjYsMTBhMSwxLDAs''@;'; put 'put ''MCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5''@;'; put 'put ''QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEEx''@;'; put 'put ''Ljc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlpt''@;'; put 'put ''MC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgs''@;'; put 'put ''My42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4Wk0xMCwyNkg4VjI0aDJabTAt''@;'; put 'put ''NUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm02LDVIMjZWMjRoMlptMC01SDI2VjE5aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlRXZlbnQ9KDAs''@;'; put 'put ''RS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNi4xNywyNS44NiwxMC44MSwyMC41YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTYuMTcsMjNsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwz''@;'; put 'put ''NCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBa''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuODEsMjAu''@;'; put 'put ''NWw1LjM2LDUuMzZMMjYuMjIsMTUuODFhMSwxLDAsMCwwLTEuNDEtMS40MUwxNi4xNywyM2wtMy45NC0zLjk0YTEsMSwwLDAsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; put 'put ''Z2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzIsMTMuMjJWMzBI''@;'; put 'put ''NFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTIyLjUsNkgxM1Y4aDkuNzhBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSww''@;'; put 'put ''LDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIz''@;'; put 'put ''LS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMg''@;'; put 'put ''OCAyMC4xNCA4IDIxLjI5IDYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMzJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAu''@;'; put 'put ''MTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9''@;'; put 'put ''Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0xIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFW''@;'; put 'put ''M2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0zMi4yNSw2aC00VjlhMi4yLDIuMiwwLDAsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5''@;'; put 'put ''VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2Wk0yNS45NCwxNi41OGwtOS42Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAs''@;'; put 'put ''MSwxMi45LDE5bDMuMzgsMy4zOEwyNCwxNC42NmExLjM2LDEuMzYsMCwxLDEsMS45MywxLjkzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNB''@;'; put 'put ''MSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyNi4zYTEuMzQsMS4zNCwwLDAsMS0uMzYsMS4xOGwtOS42''@;'; put 'put ''Nyw5LjY3TDExLDIwLjk0QTEuMzYsMS4zNiwwLDAsMSwxMi45LDE5bDMuMzgsMy4zOCw3LTdoLTFBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCww''@;'; put 'put ''LDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''MS0tYmFkZ2VkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcu''@;'; put 'put ''NSw3LjUsMCwwLDEsMjIuNSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVpt''@;'; put 'put ''LTQuMDYsMy4wOC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVFeWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjYyLDE3LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMFM1LjM0LDExLjMsMiwxNy41M0wxLjcyLDE4bC4y''@;'; put 'put ''Ni40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMHMxMi40Ni0zLjcyLDE1LjgyLTEwbC4yNi0uNDhaTTE3LjgsMjYuNDNDMTIuMTcsMjYuNDMsNywyMy4yOSw0LDE4YzMtNS4yOSw4LjE3LTguNDMsMTMuOC04LjQzUzI4LjU0LDEyLjcyLDMxLjU5LDE4QzI4LjU0LDIzLjI5LDIzLjQyLDI2''@;'; put 'put ''LjQzLDE3LjgsMjYuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA5LDExLjE3QTYuODYsNi44NiwwLDEsMCwyNSwxOCw2Ljg2LDYuODYsMCwwLDAsMTguMDksMTEuMTdabTAsMTEuNzJBNC44Niw0Ljg2''@;'; put 'put ''LDAsMSwxLDIzLDE4LDQuODcsNC44NywwLDAsMSwxOC4wOSwyMi44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3''@;'; put 'put ''LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQs''@;'; put 'put ''MjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz4n''@;'; put 'put ''KSxMLkNsclNoYXBlRXllSGlkZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUuNjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4w''@;'; put 'put ''NkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2Ljgy''@;'; put 'put ''LDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAs''@;'; put 'put ''Ny4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEu''@;'; put 'put ''NiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMzcs''@;'; put 'put ''MTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAsMCwwLDE4LjM3LDExLjE3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LjI5LDE3''@;'; put 'put ''LjUzYy0zLjM3LTYuMjMtOS4yOC0xMC0xNS44Mi0xMGExNi44MiwxNi44MiwwLDAsMC01LjI0Ljg1TDE0Ljg0LDEwYTE0Ljc4LDE0Ljc4LDAsMCwxLDMuNjMtLjQ3YzUuNjMsMCwxMC43NSwzLjE0LDEzLjgsOC40M2ExNy43NSwxNy43NSwwLDAsMS00LjM3LDUuMWwxLjQyLDEuNDJhMTkuOTMs''@;'; put 'put ''MTkuOTMsMCwwLDAsNS02bC4yNi0uNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDku''@;'; put 'put ''MjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0yNlptOC4zLDguM2E2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4y''@;'; put 'put ''OSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxMLkNsclNoYXBlU3RlcEZvcndhcmQyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik03LjA4LDYuNTJhMS42OCwxLjY4LDAsMCwwLDAsMi40TDE2LjUxLDE4LDcuMTIs''@;'; put 'put ''MjcuMDhhMS43LDEuNywwLDAsMCwyLjM2LDIuNDRoMEwyMS40LDE4LDkuNDgsNi40N0ExLjY5LDEuNjksMCwwLDAsNy4wOCw2LjUyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI2LjQ5LDVhMS43LDEuNywwLDAsMC0xLjcsMS43VjI5''@;'; put 'put ''LjNhMS43LDEuNywwLDAsMCwzLjQsMFY2LjdBMS43LDEuNywwLDAsMCwyNi40OSw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNy42NiwxNS42MSwxOCw2LDguMzQs''@;'; put 'put ''MTUuNjFBMSwxLDAsMSwwLDkuNzUsMTdMMTcsOS44MVYyOC45NGExLDEsMCwxLDAsMiwwVjkuODFMMjYuMjUsMTdhMSwxLDAsMCwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+JyksTC5Db3JlU2hhcGVzPXsidW5rbm93bi1zdGF0dXMi''@;'; put 'put ''OkwuQ2xyU2hhcGVVbmtub3duU3RhdHVzLGhvbWU6TC5DbHJTaGFwZUhvbWUsY29nOkwuQ2xyU2hhcGVDb2csY2hlY2s6TC5DbHJTaGFwZUNoZWNrLHRpbWVzOkwuQ2xyU2hhcGVUaW1lcywiZXhjbGFtYXRpb24tdHJpYW5nbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvblRyaWFuZ2xlLCJleGNs''@;'; put 'put ''YW1hdGlvbi1jaXJjbGUiOkwuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZSwiY2hlY2stY2lyY2xlIjpMLkNsclNoYXBlQ2hlY2tDaXJjbGUsImluZm8tY2lyY2xlIjpMLkNsclNoYXBlSW5mb0NpcmNsZSwiaW5mby1zdGFuZGFyZCI6TC5DbHJTaGFwZUluZm9TdGFuZGFyZCwic3VjY2Vzcy1z''@;'; put 'put ''dGFuZGFyZCI6TC5DbHJTaGFwZVN1Y2Nlc3NTdGFuZGFyZCwiZXJyb3Itc3RhbmRhcmQiOkwuQ2xyU2hhcGVFcnJvclN0YW5kYXJkLCJ3YXJuaW5nLXN0YW5kYXJkIjpMLkNsclNoYXBlV2FybmluZ1N0YW5kYXJkLCJoZWxwLWluZm8iOkwuQ2xyU2hhcGVIZWxwSW5mbyxiYXJzOkwuQ2xyU2hh''@;'; put 'put ''cGVCYXJzLHVzZXI6TC5DbHJTaGFwZVVzZXIsYW5nbGU6TC5DbHJTaGFwZUFuZ2xlLGZvbGRlcjpMLkNsclNoYXBlRm9sZGVyLCJmb2xkZXItb3BlbiI6TC5DbHJTaGFwZUZvbGRlck9wZW4sYmVsbDpMLkNsclNoYXBlQmVsbCxpbWFnZTpMLkNsclNoYXBlSW1hZ2UsY2xvdWQ6TC5DbHJTaGFw''@;'; put 'put ''ZUNsb3VkLCJlbGxpcHNpcy1ob3Jpem9udGFsIjpMLkNsclNoYXBlRWxsaXBzaXNIb3Jpem9udGFsLCJlbGxpcHNpcy12ZXJ0aWNhbCI6TC5DbHJTaGFwZUVsbGlwc2lzVmVydGljYWwsImZpbHRlci1ncmlkIjpMLkNsclNoYXBlRmlsdGVyR3JpZCwiZmlsdGVyLWdyaWQtY2lyY2xlIjpMLkNs''@;'; put 'put ''clNoYXBlRmlsdGVyR3JpZENpcmNsZSwidm0tYnVnIjpMLkNsclNoYXBlVm1CdWcsc2VhcmNoOkwuQ2xyU2hhcGVTZWFyY2gsInZpZXctY29sdW1ucyI6TC5DbHJTaGFwZVZpZXdDb2x1bW5zLCJhbmdsZS1kb3VibGUiOkwuQ2xyU2hhcGVBbmdsZURvdWJsZSxjYWxlbmRhcjpMLkNsclNoYXBl''@;'; put 'put ''Q2FsZW5kYXIsZXZlbnQ6TC5DbHJTaGFwZUV2ZW50LGV5ZTpMLkNsclNoYXBlRXllLCJleWUtaGlkZSI6TC5DbHJTaGFwZUV5ZUhpZGUsInN0ZXAtZm9yd2FyZC0yIjpMLkNsclNoYXBlU3RlcEZvcndhcmQyLGFycm93OkwuQ2xyU2hhcGVBcnJvd30sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwu''@;'; put 'put ''Q29yZVNoYXBlcywiaG91c2UiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmhvbWUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJzZXR0aW5ncyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY29nKSksT2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KEwuQ29yZVNoYXBlcywic3VjY2VzcyIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuY2hlY2spKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJjbG9zZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMudGltZXMpKSxPYmpl''@;'; put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJ3YXJuaW5nIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tdHJpYW5nbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImVycm9yIiwoMCxCLmRlc2NyaXB0b3JDb25m''@;'; put 'put ''aWcpKEwuQ29yZVNoYXBlc1siZXhjbGFtYXRpb24tY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJpbmZvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBlc1siaW5mby1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVT''@;'; put 'put ''aGFwZXMsIm1lbnUiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmJhcnMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJhdmF0YXIiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLnVzZXIpKSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; put 'put ''TC5Db3JlU2hhcGVzLCJjYXJldCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYW5nbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Db3JlU2hhcGVzLCJkaXJlY3RvcnkiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Db3JlU2hhcGVzLmZvbGRlcikpLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsIm5vdGlmaWNhdGlvbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkNvcmVTaGFwZXMuYmVsbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkNvcmVTaGFwZXMsImNvbGxhcHNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuQ29yZVNoYXBl''@;'; put 'put ''c1siYW5nbGUtZG91YmxlIl0pKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEwuQ2xyU2hhcGVMb2dv''@;'; put 'put ''dXQ9TC5DbHJTaGFwZUxvZ2luPUwuQ2xyU2hhcGVIZWxwPUwuQ2xyU2hhcGVDb3B5PUwuQ2xyU2hhcGVDaGlsZEFycm93PUwuQ2xyU2hhcGVDaXJjbGVBcnJvdz1MLkNsclNoYXBlQWxhcm1DbG9jaz1MLkNsclNoYXBlQ2xvY2s9TC5DbHJTaGFwZUhpc3Rvcnk9TC5DbHJTaGFwZVRhZ3M9TC5D''@;'; put 'put ''bHJTaGFwZVRhZz1MLkNsclNoYXBlVHJhc2g9TC5DbHJTaGFwZVRpbWVzQ2lyY2xlPUwuQ2xyU2hhcGVCYW49TC5DbHJTaGFwZVBsdXNDaXJjbGU9TC5DbHJTaGFwZU1pbnVzQ2lyY2xlPUwuQ2xyU2hhcGVNaW51cz1MLkNsclNoYXBlUGx1cz1MLkNsclNoYXBlRmlsZT1MLkNsclNoYXBlUGlu''@;'; put 'put ''PUwuQ2xyU2hhcGVGaWx0ZXI9TC5DbHJTaGFwZVBvcE91dD1MLkNsclNoYXBlVXNlcnM9TC5DbHJTaGFwZVVubG9jaz1MLkNsclNoYXBlTG9jaz1MLkNsclNoYXBlVXBsb2FkPUwuQ2xyU2hhcGVEb3dubG9hZD1MLkNsclNoYXBlTGlnaHRidWxiPUwuQ2xyU2hhcGVWaWV3Q2FyZHM9TC5DbHJT''@;'; put 'put ''aGFwZVZpZXdMaXN0PUwuQ2xyU2hhcGVTeW5jPUwuQ2xyU2hhcGVSZWZyZXNoPUwuQ2xyU2hhcGVOb3RlPUwuQ2xyU2hhcGVQZW5jaWw9TC5DbHJTaGFwZVRoZXJtb21ldGVyPUwuQ2xyU2hhcGVCdWc9TC5DbHJTaGFwZVNjaXNzb3JzPUwuQ2xyU2hhcGVBc3Rlcmlzaz1MLkNsclNoYXBlQm9v''@;'; put 'put ''az1MLkNsclNoYXBlT2JqZWN0cz1MLkNsclNoYXBlUmVzaXplPUwuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9TC5DbHJTaGFwZUN1cnNvckhhbmQ9TC5DbHJTaGFwZUN1cnNvckFycm93PUwuQ2xyU2hhcGVHcmlkVmlldz1MLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249TC5DbHJTaGFwZU5l''@;'; put 'put ''dz1MLkNsclNoYXBlQWxhcm1PZmY9TC5DbHJTaGFwZVBpbmJvYXJkPUwuQ2xyU2hhcGVBZGRUZXh0PXZvaWQgMCxMLkNsclNoYXBlQ2xvbmU9TC5DbHJTaGFwZUN1cnNvck1vdmU9TC5DbHJTaGFwZVdhbmQ9TC5DbHJTaGFwZVN1bj1MLkNsclNoYXBlTW9vbj1MLkNsclNoYXBlRmlsdGVyMj1M''@;'; put 'put ''LkNsclNoYXBlRHJhZ0hhbmRsZT1MLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPUwuQ2xyU2hhcGVDb2xvclBpY2tlcj1MLkNsclNoYXBlQnJpZWZjYXNlPUwuQ2xyU2hhcGVFeHBhbmRDYXJkPUwuQ2xyU2hhcGVDb2xsYXBzZUNhcmQ9TC5DbHJTaGFwZVNvcnRCeT1MLkNsclNoYXBlQWNjZXNz''@;'; put 'put ''aWJpbGl0eTI9TC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPUwuQ2xyU2hhcGVTaHJpbms9TC5DbHJTaGFwZVBhcGVyY2xpcD1MLkNsclNoYXBlRmlsZUdyb3VwPUwuQ2xyU2hhcGVSZXBlYXQ9TC5DbHJTaGFwZUlkQmFkZ2U9TC5DbHJTaGFwZUJhbGFuY2U9TC5DbHJTaGFwZU9yZ2FuaXphdGlv''@;'; put 'put ''bj1MLkNsclNoYXBlTm9BY2Nlc3M9TC5DbHJTaGFwZUhvdXJnbGFzcz1MLkNsclNoYXBlRmxhbWU9TC5DbHJTaGFwZVRhcmdldD1MLkNsclNoYXBlQnVsbHNleWU9TC5DbHJTaGFwZVdyZW5jaD1MLkNsclNoYXBlQm9sdD1MLkNsclNoYXBlTGlicmFyeT1MLkNsclNoYXBlS2V5PUwuQ2xyU2hh''@;'; put 'put ''cGVab29tT3V0PUwuQ2xyU2hhcGVab29tSW49TC5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9TC5DbHJTaGFwZVdpbmRvd01pbj1MLkNsclNoYXBlV2luZG93TWF4PUwuQ2xyU2hhcGVXaW5kb3dDbG9zZT1MLkNsclNoYXBlVG9vbHM9TC5DbHJTaGFwZVN3aXRjaD1MLkNsclNoYXBlVHdvV2F5QXJy''@;'; put 'put ''b3dzPUwuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9TC5DbHJTaGFwZVNjcm9sbD1MLkNsclNoYXBlVW5kbz1MLkNsclNoYXBlUmVkbz1MLkNsclNoYXBlTGlzdD1MLkNsclNoYXBlRmlyZXdhbGw9TC5DbHJTaGFwZUNsaXBib2FyZD1MLkNsclNoYXBlU2xpZGVyPUwuQ2xyU2hhcGVXb3JsZD1MLkNs''@;'; put 'put ''clNoYXBlUHJpbnRlcj12b2lkIDAsTC5Fc3NlbnRpYWxTaGFwZXM9TC5DbHJTaGFwZUNvbG9yUGFsZXR0ZT1MLkNsclNoYXBlRmlyc3RBaWQ9TC5DbHJTaGFwZUJldGE9TC5DbHJTaGFwZURvdENpcmNsZT1MLkNsclNoYXBlQ2lyY2xlPUwuQ2xyU2hhcGVDcm9zc2hhaXJzPUwuQ2xyU2hhcGVW''@;'; put 'put ''b2x1bWU9TC5DbHJTaGFwZVRhYmxlPUwuQ2xyU2hhcGVTbm93Zmxha2U9TC5DbHJTaGFwZUZ1ZWw9TC5DbHJTaGFwZUZvcm09TC5DbHJTaGFwZUZpc2g9TC5DbHJTaGFwZVRyZWU9TC5DbHJTaGFwZVJlY3ljbGU9TC5DbHJTaGFwZUZpbHRlck9mZj1MLkNsclNoYXBlRmlsZVppcD1MLkNsclNo''@;'; put 'put ''YXBlQ3Vyc29ySGFuZE9wZW49TC5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPUwuQ2xyU2hhcGVUcmVlVmlldz1MLkNsclNoYXBlUG9ydHJhaXQ9TC5DbHJTaGFwZVBhc3RlPUwuQ2xyU2hhcGVMYW5kc2NhcGU9TC5DbHJTaGFwZUVyYXNlcj1MLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj1MLkNs''@;'; put 'put ''clNoYXBlRGV0YWlscz12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIiksRT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxFZT1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMv''@;'; put 'put ''c2hhcGVzL2NvcmUtc2hhcGVzLnRzIik7TC5DbHJTaGFwZUFkZFRleHQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwyMUgxM2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDE2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgxM0ExLDEsMCwwLDAsMTIsMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMyIgZD0iTTI3LDI3SDEzYTEsMSwwLDAsMCwwLDJIMjdhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTUuODksOWExLDEsMCwwLDAtMS0xSDEwVjMuMjFhMSwxLDAs''@;'; put 'put ''MCwwLTIsMFY4SDIuODlhMSwxLDAsMCwwLDAsMkg4djUuMjFhMSwxLDAsMCwwLDIsMFYxMGg0Ljg5QTEsMSwwLDAsMCwxNS44OSw5WiIvPicpLEwuQ2xyU2hhcGVQaW5ib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgZD0iTTMwLDMwLDYsMzAsNiw2SDIyVjRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzMuNTcsOS4zM2wt''@;'; put 'put ''Ny03YTEsMSwwLDAsMC0xLjQxLDEuNDFsNyw3YTEsMSwwLDEsMCwxLjQxLTEuNDFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjEsMTEuMTlsLjcuNUwyNi40Niw4LDI1LDYuNTYsMjIuNTEsOS4xM2MtMi0u''@;'; put 'put ''ODctNC4zNS4xNC01LjkyLDEuNjhsLS43Mi43MSwzLjU0LDMuNTQtMy42NywzLjY3LDEuNDEsMS40MSwzLjY3LTMuNjdMMjQuMzcsMjBsLjcxLS43MmMxLjU0LTEuNTcsMi41NS0zLjkyLDEuNjgtNS45M2wyLjU0LTIuNTdMMjcuODgsOS4zOCwyNC4yMSwxMy4xbC40OS42OWMuNzYsMSwuMjUs''@;'; put 'put ''Mi4zNy0uNDEsMy4zM0wxOC43NywxMS42QzE5Ljg0LDEwLjg2LDIxLjE1LDEwLjUsMjIuMSwxMS4xOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCwzMCw2LDMwLDYsNkgyMlY0SDZBMiwyLDAsMCwwLDQsNlYzMGEy''@;'; put 'put ''LDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNTcsOS4zM2wtNy03YTEsMSwwLDAsMC0xLjQxLDEuNDFsMS4zOCwxLjM4LTQsNGMtMi0uODctNC4zNS4x''@;'; put 'put ''NC01LjkyLDEuNjhsLS43Mi43MSwzLjU0LDMuNTQtMy42NywzLjY3LDEuNDEsMS40MSwzLjY3LTMuNjdMMjQuMzcsMjBsLjcxLS43MmMxLjU0LTEuNTcsMi41NS0zLjkxLDEuNjgtNS45Mmw0LTQsMS4zOCwxLjM4YTEsMSwwLDEsMCwxLjQxLTEuNDFaIi8+JyksTC5DbHJTaGFwZUFsYXJtT2Zm''@;'; put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4yLDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjMzLDIxLjU0YS45LjksMCwwLDAtLjQxLTEuMmwtMy4yLTEuNTZMMjQuODksMjJBLjg5Ljg5LDAsMCwwLDI1LjMzLDIxLjU0WiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCw4LjZhLjkuOSwwLDAsMC0uOS45djQuNmwxLjgsMS44MVY5LjVBLjkuOSwwLDAsMCwxOCw4LjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNCIgZD0iTTExLjQyLDMuNDNhNS44LDUuOCwwLDAsMC01LjgxLS44MUw4LjMsNS4zMkExNiwxNiwwLDAsMSwxMS40MiwzLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xOCw0YTEzLjkxLDEzLjkxLDAs''@;'; put 'put ''MCwwLTguMywyLjc1bDEuNDIsMS40M0ExMiwxMiwwLDAsMSwyNy44MiwyNC45bDEuNDIsMS40M0ExNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIGQ9Ik0xLjU2LDQuMjEsMi43Myw1LjM4YTUu''@;'; put 'put ''Nyw1LjcsMCwwLDAsLjY3LDYuMUExNS43OCwxNS43OCwwLDAsMSw1LjQ2LDguMTJMNi44OCw5LjU1QTEzLjk0LDEzLjk0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuODksMTMuODksMCwwLDAsMTYuOCwwbDQuMTQsNC4xNUwzMiwz''@;'; put 'put ''MS45LDMsMi44Wk0yNSwyNy43MkExMS44OSwxMS44OSwwLDAsMSwxOCwzMCwxMiwxMiwwLDAsMSw2LDE4YTExLjg5LDExLjg5LDAsMCwxLDIuMjktN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMS40NywzLjg0YTUu''@;'; put 'put ''NzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xMS40MiwzLjQzYTUuOCw1LjgsMCww''@;'; put 'put ''LDAtNS43Ny0uODJMOC4zMyw1LjNBMTYsMTYsMCwwLDEsMTEuNDIsMy40M1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNC45MiwyMS45NGw0LjM0LDQuMzZBMTQsMTQsMCwwLDAsOS43NSw2LjczTDE3LDE0VjkuNjlh''@;'; put 'put ''MSwxLDAsMCwxLDIsMFYxNmwyLjMzLDIuMzRMMjUsMjAuMWExLDEsMCwwLDEsLjQ3LDEuMzNBMSwxLDAsMCwxLDI0LjkyLDIxLjk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTEuNjEsNC4yMSwyLjczLDUuMzRhNS43''@;'; put 'put ''Myw1LjczLDAsMCwwLC42Nyw2LjE1QTE1Ljg4LDE1Ljg4LDAsMCwxLDUuNDgsOC4xTDYuOTEsOS41MkExMy45NCwxMy45NCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjg5LDEzLjg5LDAsMCwwLDE2LjgzLDBsNC4xNiw0LjE3TDMy''@;'; put 'put ''LDMxLjksMywyLjhaIi8+JyksTC5DbHJTaGFwZU5ldz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LjU5LDIzbC00LjA4LTUsNC00LjlhMS44MiwxLjgyLDAsMCwwLC4yMy0xLjk0QTEuOTMsMS45MywwLDAs''@;'; put 'put ''MCwzMi45NCwxMGgtMzFBMS45MSwxLjkxLDAsMCwwLDAsMTEuODhWMjQuMTNBMS45MSwxLjkxLDAsMCwwLDEuOTQsMjZIMzMuMDVhMS45MywxLjkzLDAsMCwwLDEuNzctMS4wOUExLjgyLDEuODIsMCwwLDAsMzQuNTksMjNaTTIsMjRWMTJIMzIuNzhsLTQuODQsNS45M0wzMi44NSwyNFoiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgcG9pbnRzPSI5LjM5IDE5LjM1IDYuMTMgMTUgNSAxNSA1IDIxLjE4IDYuMTMgMjEuMTggNi4xMyAxNi44NCA5LjM5IDIxLjE4IDEwLjUxIDIxLjE4IDEwLjUxIDE1IDkuMzkg''@;'; put 'put ''MTUgOS4zOSAxOS4zNSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyLjE4IDIxLjE4IDE2Ljg0IDIxLjE4IDE2Ljg0IDIwLjE2IDEzLjMxIDIwLjE2IDEzLjMxIDE4LjU1IDE2LjUgMTguNTUgMTYu''@;'; put 'put ''NSAxNy41MiAxMy4zMSAxNy41MiAxMy4zMSAxNi4wMyAxNi44NCAxNi4wMyAxNi44NCAxNSAxMi4xOCAxNSAxMi4xOCAyMS4xOCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBwb2ludHM9IjI0LjUyIDE5LjQzIDIz''@;'; put 'put ''LjA2IDE1IDIxLjg0IDE1IDIwLjM3IDE5LjQzIDE5LjA1IDE1IDE3LjgyIDE1IDE5Ljc4IDIxLjE4IDIwLjg5IDIxLjE4IDIyLjQ1IDE2LjU5IDI0IDIxLjE4IDI1LjEzIDIxLjE4IDI3LjA4IDE1IDI1Ljg1IDE1IDI0LjUyIDE5LjQzIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuMTEsMjQuNDlsLTMuOTItNi42MiwzLjg4LTYuMzVBMSwxLDAsMCwwLDMzLjIyLDEwSDJhMiwyLDAsMCwwLTIsMlYyNGEyLDIsMCwwLDAsMiwySDMzLjI1QTEsMSwwLDAsMCwzNC4xMSwyNC40OVptLTIzLjYtMy4zMUg5LjM5TDYu''@;'; put 'put ''MTMsMTYuODR2NC4zNUg1VjE1SDYuMTNsMy4yNyw0LjM1VjE1aDEuMTJaTTE2Ljg0LDE2SDEzLjMxdjEuNDloMy4ydjFoLTMuMnYxLjYxaDMuNTN2MUgxMi4xOFYxNWg0LjY1Wm04LjI5LDUuMTZIMjRsLTEuNTUtNC41OUwyMC45LDIxLjE4SDE5Ljc4bC0yLTYuMThIMTlsMS4zMiw0LjQzTDIx''@;'; put 'put ''Ljg0LDE1aDEuMjJsMS40Niw0LjQzTDI1Ljg1LDE1aDEuMjNaIi8+JyksTC5DbHJTaGFwZUJ1YmJsZUV4Y2xhbWF0aW9uPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0x''@;'; put 'put ''NiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43''@;'; put 'put ''OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMDgsMTEuMDgsMCwwLDEsMjguMjksMjQuNjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDIwLjYzYTEsMSwwLDAsMCwxLTFWOC40OGExLDEsMCwxLDAtMiwwVjE5LjYxQTEsMSwwLDAsMCwxOCwyMC42M1oiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGN4PSIx''@;'; put 'put ''OCIgY3k9IjI0LjA0IiByPSIxLjMzIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEs''@;'; put 'put ''MCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTE2LjkzLDkuMTNhMS40MSwxLjQxLDAsMSwxLDIuODEsMFYxOC45YTEuNDEsMS40MSwwLDEsMS0yLjgxLDBabTEuNDEsMTcuMzVhMS44NywxLjg3LDAsMSwxLDEuODctMS44''@;'; put 'put ''N0ExLjg3LDEuODcsMCwwLDEsMTguMzQsMjYuNDdaIi8+JyksTC5DbHJTaGFwZUdyaWRWaWV3PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTQsNEg2QTIsMiwwLDAsMCw0LDZ2OGEyLDIsMCwwLDAsMiwyaDhh''@;'; put 'put ''MiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwxNCw0Wk02LDE0VjZoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMCw0SDIyYTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDIt''@;'; put 'put ''MlY2QTIsMiwwLDAsMCwzMCw0Wk0yMiwxNFY2aDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTQsMjBINmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMjJBMiwyLDAs''@;'; put 'put ''MCwwLDE0LDIwWk02LDMwVjIyaDh2OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzAsMjBIMjJhMiwyLDAsMCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjIyQTIsMiwwLDAsMCwzMCwy''@;'; put 'put ''MFpNMjIsMzBWMjJoOHY4WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iNCIgeT0iNCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwIiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgeD0iNCIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIx''@;'; put 'put ''MiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiB4PSIyMCIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+JyksTC5DbHJTaGFwZUN1cnNvckFycm93PSgwLEUuY2xySWNv''@;'; put 'put ''blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTQuNTgsMzIuMzFhMSwxLDAsMCwxLS45NC0uNjVMNCw1LjY1QTEsMSwwLDAsMSw1LjI1LDQuMzdsMjYsOS42OGExLDEsMCwwLDEtLjA1LDEuODlsLTguMzYsMi41Nyw4LjMsOC4zYTEs''@;'; put 'put ''MSwwLDAsMSwwLDEuNDFsLTMuMjYsMy4yNmExLDEsMCwwLDEtLjcxLjI5aDBhMSwxLDAsMCwxLS43MS0uMjlsLTguMzMtOC4zMy0yLjYsOC40NWExLDEsMCwwLDEtLjkzLjcxWm0zLjA5LTEyYTEsMSwwLDAsMSwuNzEuMjlsOC43OSw4Ljc5TDI5LDI3LjUxbC04Ljc2LTguNzZhMSwxLDAsMCwx''@;'; put 'put ''LC40MS0xLjY2bDcuMTMtMi4yTDYuNiw3bDcuODksMjEuMkwxNi43MSwyMWExLDEsMCwwLDEsLjcxLS42OFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOSwxMi4zNiwzLjg4LDNBMSwxLDAsMCwwLDIuNTksNC4yOEwx''@;'; put 'put ''MiwyOS40NGExLDEsMCwwLDAsMS44OS0uMDVsMi42OS04Ljc1LDkuMTIsOC45YTEsMSwwLDAsMCwxLjQxLDBsMi4zNS0yLjM1YTEsMSwwLDAsMCwwLTEuNDFsLTkuMDktOC44NkwyOSwxNC4yNUExLDEsMCwwLDAsMjksMTIuMzZaIi8+JyksTC5DbHJTaGFwZUN1cnNvckhhbmQ9KDAsRS5jbHJJ''@;'; put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC43NCwxNS4xOWExMy42NiwxMy42NiwwLDAsMC02Ljg3LTMuODNBMjYsMjYsMCwwLDAsMTgsMTAuNThWNS4yOEEzLjQsMy40LDAsMCwwLDE0LjUsMiwzLjQsMy40LDAsMCwwLDEx''@;'; put 'put ''LDUuMjh2MTBMOS40LDEzLjdhMy43NywzLjc3LDAsMCwwLTUuMjgsMEEzLjY3LDMuNjcsMCwwLDAsMywxNi4zM2EzLjYsMy42LDAsMCwwLDEsMi41Nmw0LjY2LDUuNTJhMTEuNTMsMTEuNTMsMCwwLDAsMS40Myw0LDEwLjEyLDEwLjEyLDAsMCwwLDIsMi41NHYxLjkyYTEuMDcsMS4wNywwLDAs''@;'; put 'put ''MCwxLDEuMDhIMjdhMS4wNywxLjA3LDAsMCwwLDEtMS4wOHYtMi43YTEyLjgxLDEyLjgxLDAsMCwwLDMtOC4zNnYtNkExLDEsMCwwLDAsMzAuNzQsMTUuMTlaTTI5LDIxLjg2YTEwLjcyLDEwLjcyLDAsMCwxLTIuNiw3LjI2LDEuMTEsMS4xMSwwLDAsMC0uNC43MlYzMkgxNC4xNFYzMC41MmEx''@;'; put 'put ''LDEsMCwwLDAtLjQ0LS44Myw3LjI2LDcuMjYsMCwwLDEtMS44Mi0yLjIzLDkuMTQsOS4xNCwwLDAsMS0xLjItMy41MiwxLDEsMCwwLDAtLjIzLS41OUw1LjUzLDE3LjUzYTEuNywxLjcsMCwwLDEsMC0yLjQyLDEuNzYsMS43NiwwLDAsMSwyLjQ3LDBsMywzdjMuMTRsMi0xVjUuMjhBMS40Miwx''@;'; put 'put ''LjQyLDAsMCwxLDE0LjUsNCwxLjQyLDEuNDIsMCwwLDEsMTYsNS4yOHYxMS44bDIsLjQzVjEyLjU5YTI0LjI3LDI0LjI3LDAsMCwxLDIuNTEuMThWMThsMS42LjM1VjEzYy40MS4wOC44My4xNywxLjI2LjI4YTE0Ljg4LDE0Ljg4LDAsMCwxLDEuNTMuNDl2NS4xNWwxLjYuMzVWMTQuNUExMS4w''@;'; put 'put ''NiwxMS4wNiwwLDAsMSwyOSwxNi4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yOC42OSwxNC4zM3Y0LjgzbC0yLS40M1YxMy4yNGExNi4xOSwxNi4xOSwwLDAsMC0yLjMzLS44NHY1LjgybC0yLS40M1YxMmMtMS4x''@;'; put 'put ''LS4xOC0yLjE4LS4zLTMuMDgtLjM2djUuNTFsLTItLjQzVjExLjQ4aDBWNC4zNGEyLjUzLDIuNTMsMCwwLDAtMi42LTIuNDMsMi41MywyLjUzLDAsMCwwLTIuNiwyLjQzVjE3LjI3aDB2Mi41OWwtMiwxVjE1LjZMNy43NSwxMy4yMWEyLjgzLDIuODMsMCwwLDAtNCwwLDIuOTMsMi45MywwLDAs''@;'; put 'put ''MCwwLDQuMDlsNiw3LjFhMTAuODIsMTAuODIsMCwwLDAsMS4zOSw0LjIyLDguNDIsOC40MiwwLDAsMCwyLjIxLDIuNzN2Mi41NkgyNy43OVYzMC42MmExMi41NCwxMi41NCwwLDAsMCwzLTguNXYtNkExMCwxMCwwLDAsMCwyOC42OSwxNC4zM1oiLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZENs''@;'; put 'put ''aWNrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuNCwxNy42Yy0xLjgtMS45LTQuMi0zLjItNi43LTMuN2MtMS4xLTAuMy0yLjItMC41LTMuMy0wLjZjMi44LTMuMywyLjMtOC4zLTEtMTEuMXMtOC4zLTIu''@;'; put 'put ''My0xMS4xLDFzLTIuMyw4LjMsMSwxMS4xXG4gICAgICAgICAgICAgICAgICAgIGMwLjYsMC41LDEuMiwwLjksMS44LDEuMXYyLjJsLTEuNi0xLjVjLTEuNC0xLjQtMy43LTEuNC01LjIsMGMtMS40LDEuNC0xLjUsMy42LTAuMSw1bDQuNiw1LjRjMC4yLDEuNCwwLjcsMi43LDEuNCwzLjlcbiAg''@;'; put 'put ''ICAgICAgICAgICAgICAgICAgYzAuNSwwLjksMS4yLDEuOCwxLjksMi41djEuOWMwLDAuNiwwLjQsMSwxLDFoMTMuNmMwLjUsMCwxLTAuNSwxLTF2LTIuNmMxLjktMi4zLDIuOS01LjIsMi45LTguMXYtNS44XG4gICAgICAgICAgICAgICAgICAgIEMzMC43LDE3LjksMzAuNiwxNy43LDMwLjQs''@;'; put 'put ''MTcuNnogTTguNCw4LjJjMC0zLjMsMi43LTUuOSw2LTUuOGMzLjMsMCw1LjksMi43LDUuOCw2YzAsMS44LTAuOCwzLjQtMi4yLDQuNVY3LjlcbiAgICAgICAgICAgICAgICAgICAgYy0wLjEtMS44LTEuNi0zLjItMy40LTMuMmMtMS44LTAuMS0zLjQsMS40LTMuNCwzLjJ2NS4yQzkuNSwxMi4x''@;'; put 'put ''LDguNSwxMC4yLDguNCw4LjJMOC40LDguMnogTTI4LjcsMjRjMC4xLDIuNi0wLjgsNS4xLTIuNSw3LjFcbiAgICAgICAgICAgICAgICAgICAgYy0wLjIsMC4yLTAuNCwwLjQtMC40LDAuN3YyLjFIMTQuMnYtMS40YzAtMC4zLTAuMi0wLjYtMC40LTAuOGMtMC43LTAuNi0xLjMtMS4zLTEuOC0y''@;'; put 'put ''LjJjLTAuNi0xLTEtMi4yLTEuMi0zLjRcbiAgICAgICAgICAgICAgICAgICAgYzAtMC4yLTAuMS0wLjQtMC4yLTAuNmwtNC44LTUuN2MtMC4zLTAuMy0wLjUtMC43LTAuNS0xLjJjMC0wLjQsMC4yLTAuOSwwLjUtMS4yYzAuNy0wLjYsMS43LTAuNiwyLjQsMGwyLjksMi45djNsMS45LTFWNy45''@;'; put 'put ''XG4gICAgICAgICAgICAgICAgICAgIGMwLjEtMC43LDAuNy0xLjMsMS41LTEuMmMwLjcsMCwxLjQsMC41LDEuNCwxLjJ2MTEuNWwyLDAuNHYtNC42YzAuMS0wLjEsMC4yLTAuMSwwLjMtMC4yYzAuNywwLDEuNCwwLjEsMi4xLDAuMnY1LjFsMS42LDAuM3YtNS4yXG4gICAgICAgICAgICAgICAg''@;'; put 'put ''ICAgIGwxLjIsMC4zYzAuNSwwLjEsMSwwLjMsMS41LDAuNXY1bDEuNiwwLjN2LTQuNmMwLjksMC40LDEuNywxLDIuNCwxLjdMMjguNywyNHoiLz4nKSxMLkNsclNoYXBlUmVzaXplPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xIiBkPSJNMTksNGExLDEsMCwwLDAsMCwyaDkuNTlsLTkuMjUsOS4yNWExLDEsMCwxLDAsMS40MSwxLjQxTDMwLDcuNDFWMTdhMSwxLDAsMCwwLDIsMFY0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik00LDE5''@;'; put 'put ''YTEsMSwwLDAsMSwyLDB2OS41OWw5LjI1LTkuMjVhMSwxLDAsMSwxLDEuNDEsMS40MUw3LjQxLDMwSDE3YTEsMSwwLDAsMSwwLDJINFoiLz4nKSxMLkNsclNoYXBlT2JqZWN0cz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgZD0iTTE2LjA4LDE0LjlhMTAuNDEsMTAuNDEsMCwwLDEsMS44Ny0uNzFsLTQtMTAuNzdhMiwyLDAsMCwwLTMuNzUsMEwyLDI1LjI2QTIsMiwwLDAsMCwzLjkyLDI4aDYuOTRhMTAsMTAsMCwwLDEtLjUyLTJIMy45MkwxMi4wNiw0LjEyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMiw5SDIyYTIsMiwwLDAsMC0yLDJ2Mi44NWMuMjMsMCwuNDYsMCwuNjksMEExMC41MSwxMC41MSwwLDAsMSwyMiwxMy45VjExSDMyVjIxSDMwLjY1YTEwLjQyLDEwLjQyLDAsMCwxLC40NSwySDMyYTIsMiwwLDAsMCwy''@;'; put 'put ''LTJWMTFBMiwyLDAsMCwwLDMyLDlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIwLjY5LDE1LjgxYTguNSw4LjUsMCwxLDAsOC41LDguNUE4LjUxLDguNTEsMCwwLDAsMjAuNjksMTUuODFabTAsMTVhNi41LDYu''@;'; put 'put ''NSwwLDEsMSw2LjUtNi41QTYuNTEsNi41MSwwLDAsMSwyMC42OSwzMC44MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMC42NSwyNC40NGE5LjUxLDkuNTEsMCwwLDEsNy4wNi05LjE3TDEzLDNhMSwxLDAsMCwwLTEu''@;'; put 'put ''ODcsMEwyLjA3LDI2LjU2QTEsMSwwLDAsMCwzLDI3LjkyaDguMzJBOS40NCw5LjQ0LDAsMCwxLDEwLjY1LDI0LjQ0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDEwSDIwYTEsMSwwLDAsMC0xLDF2NGE5LjQzLDku''@;'; put 'put ''NDMsMCwwLDEsMTAuNjMsOUgzMmExLDEsMCwwLDAsMS0xVjExQTEsMSwwLDAsMCwzMiwxMFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgY3g9IjIwLjE1IiBjeT0iMjQuNDQiIHI9IjcuNSIvPicpLEwuQ2xyU2hhcGVCb29r''@;'; put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxMCIgeT0iNS4yIiB3aWR0aD0iMTgiIGhlaWdodD0iMS41NSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTIiIGQ9Ik0yOSw4SDkuODZBMS44OSwxLjg5LDAsMCwxLDgsNiwyLDIsMCwwLDEsOS44Niw0SDI5YTEsMSwwLDAsMCwwLTJIOS44NkE0LDQsMCwwLDAsNiw2YTQuMTQsNC4xNCwwLDAsMCwwLC40OSwxLDEsMCwwLDAsMCwuMjRWMzBhNCw0LDAsMCwwLDMuODYsNEgyOWExLDEsMCwwLDAs''@;'; put 'put ''MS0xVjkuMjVzMC0uMDYsMC0uMDksMC0uMDYsMC0uMDlBMS4wNywxLjA3LDAsMCwwLDI5LDhaTTI4LDMySDkuODZBMiwyLDAsMCwxLDgsMzBWOS41NUEzLjYzLDMuNjMsMCwwLDAsOS44NiwxMEgyOFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTEiIHg9IjEwIiB5PSI1LjIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxLjU1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjksOEg5Ljg2QTEuODksMS44OSwwLDAsMSw4LDYsMiwyLDAsMCwxLDkuODYsNEgyOWEx''@;'; put 'put ''LDEsMCwxLDAsMC0ySDkuODZBNCw0LDAsMCwwLDYsNmE0LjE0LDQuMTQsMCwwLDAsMCwuNDksMSwxLDAsMCwwLDAsLjI0VjMwYTQsNCwwLDAsMCwzLjg2LDRIMjlhMSwxLDAsMCwwLDEtMVY5LjI1czAtLjA2LDAtLjA5LDAtLjA2LDAtLjA5QTEuMDcsMS4wNywwLDAsMCwyOSw4WiIvPicpLEwu''@;'; put 'put ''Q2xyU2hhcGVBc3Rlcmlzaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4Ljg5LDIwLjkxbC01LTIuOTEsNC44Ny0yLjg2YTMuMTEsMy4xMSwwLDAsMCwxLjE0LTEuMDgsMywzLDAsMCwwLTQuMDktNC4xNUwy''@;'; put 'put ''MSwxMi43NlY3YTMsMywwLDAsMC02LDB2NS43NkwxMC4xNSw5LjkxYTMsMywwLDEsMC0zLDUuMThsNSwyLjkxTDcuMiwyMC44NmEzLjExLDMuMTEsMCwwLDAtMS4xNCwxLjA4LDMsMywwLDAsMCw0LjA5LDQuMTRMMTUsMjMuMjRWMjguOWEzLDMsMCwwLDAsMiwyLjk0QTMsMywwLDAsMCwyMSwy''@;'; put 'put ''OVYyMy4yNGw0Ljg1LDIuODVhMywzLDAsMSwwLDMtNS4xOFpNMjguMjQsMjRhMSwxLDAsMCwxLTEuMzcuMzZMMTksMTkuNzVWMjlhMSwxLDAsMCwxLTIsMFYxOS43NUw5LjEzLDI0LjM2YTEsMSwwLDAsMS0xLTEuNzJMMTYsMThsLTcuOS00LjY0YTEsMSwwLDEsMSwxLTEuNzJMMTcsMTYuMjVW''@;'; put 'put ''N2ExLDEsMCwwLDEsMiwwdjkuMjVsNy44Ny00LjYyYTEsMSwwLDAsMSwxLDEuNzJMMjAsMThsNy45LDQuNjRBMSwxLDAsMCwxLDI4LjI0LDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4Ljg5LDIwLjkxbC01LTIu''@;'; put 'put ''OTEsNC44Ny0yLjg2YTMuMTEsMy4xMSwwLDAsMCwxLjE0LTEuMDgsMywzLDAsMCwwLTQuMDktNC4xNUwyMSwxMi43NlY3YTMsMywwLDAsMC02LDB2NS43NkwxMC4xNSw5LjkxYTMsMywwLDEsMC0zLDUuMThsNSwyLjkxTDcuMiwyMC44NmEzLjExLDMuMTEsMCwwLDAtMS4xNCwxLjA4LDMsMyww''@;'; put 'put ''LDAsMCw0LjA5LDQuMTRMMTUsMjMuMjRWMjguOWEzLDMsMCwwLDAsMiwyLjk0QTMsMywwLDAsMCwyMSwyOVYyMy4yNGw0Ljg1LDIuODVhMywzLDAsMSwwLDMtNS4xOFoiLz4nKSxMLkNsclNoYXBlU2Npc3NvcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiXG4gICAgICAgICAgICBkPSJNMjQuMDYsMTguMThsOS42MS04Ljc3YTEsMSwwLDAsMC0uMDktMS41NWwtMi4yNC0xLjZhMy41NywzLjU3LDAsMCwwLTQuMjguMTJMMTUuODgsMTUuM2wtMy4yNi0yLjUyYTUuNDUsNS40NSwwLDEsMC0xLDEuNzdsMi42Miwy''@;'; put 'put ''TDEwLDIwYTUuNDgsNS40OCwwLDEsMCwxLjU5LDEuMjlMMjguMyw3Ljk0YTEuNTcsMS41NywwLDAsMSwxLjg4LS4wNWwxLjIzLjg4TDIxLjEsMTguMTlsMTAuMzEsOS40LTEuMjMuODhhMS41NywxLjU3LDAsMCwxLTEuODgtLjA1bC05LjgxLTcuODVMMTcsMjEuOTNsMTAuMDYsOGEzLjU3LDMu''@;'; put 'put ''NTcsMCwwLDAsNC4yOS4xMmwyLjI0LTEuNmExLDEsMCwwLDAsLjA5LTEuNTVaTTcuNDUsMTQuNTRhMy40NiwzLjQ2LDAsMSwxLDMuNDUtMy40NkEzLjQ2LDMuNDYsMCwwLDEsNy40NSwxNC41NFptMCwxMy43MkEzLjQ2LDMuNDYsMCwxLDEsMTAuOSwyNC44LDMuNDYsMy40NiwwLDAsMSw3LjQ1''@;'; put 'put ''LDI4LjI2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLjgxLDguMTMsMzEuNjMsNi40OGExLjkyLDEuOTIsMCwwLDAtMi4zNiwwTDEwLDIyLjA2YTUuNDYsNS40NiwwLDEsMCwyLDEuODFsMy45LTMuMTJMMjkuMjcs''@;'; put 'put ''MzEuNTJhMS45MiwxLjkyLDAsMCwwLDIuMzYsMGwyLjE4LTEuNjRMMjAuOTQsMTlaTTcuNDUsMjkuNzVhMi44NiwyLjg2LDAsMSwxLDIuODYtMi44NkEyLjg3LDIuODcsMCwwLDEsNy40NSwyOS43NVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTIiIGQ9Ik0xNC4zLDE1LjI0LDEyLDEzLjM4YTUuNDYsNS40NiwwLDEsMC0yLDEuODFMMTIuMTYsMTdabS02Ljg1LTJhMi44NiwyLjg2LDAsMSwxLDIuODYtMi44NkEyLjg2LDIuODYsMCwwLDEsNy40NSwxMy4yM1oiLz4nKSxMLkNsclNoYXBlQnVnPSgwLEUuY2xySWNvblNWRyko''@;'; put 'put ''JzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIyMy41NiIgY3k9IjE3Ljc0IiByPSIxLjk1Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjIuNDIiIGN5PSIy''@;'; put 'put ''NS44OCIgcj0iMS41OCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjEyLjg2IiBjeT0iMTcuNzQiIHI9IjEuOTUiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTQiIGN4PSIxMy45OSIgY3k9IjI1Ljg4IiByPSIxLjU4Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMwLjgzLDIwSDI5YTE5LjI5LDE5LjI5LDAsMCwwLTEuMTgtNS43M2wxLjQ2LS43OWExLDEs''@;'; put 'put ''MCwwLDAtLjk1LTEuNzZsLTMsMS42NEExNy42NSwxNy42NSwwLDAsMSwyNywyMC43MkMyNywyNywyMy44LDMxLjIzLDE4LjgsMzEuNjJWMTVIMTcuMlYzMS42MkMxMi4yMiwzMS4yMSw5LDI3LDksMjAuNzJhMTcuNzQsMTcuNzQsMCwwLDEsMS43My03LjM0TDcuNywxMS43MmExLDEsMCwwLDAt''@;'; put 'put ''Ljk1LDEuNzZsMS41LjhBMTkuMzgsMTkuMzgsMCwwLDAsNy4wNywyMEg1LjE3YTEsMSwwLDAsMCwwLDJINy4xYTE0LjYyLDE0LjYyLDAsMCwwLDEuNjYsNi4xN0w2Ljg3LDI5LjQ5QTEsMSwwLDEsMCw4LDMxLjEybDEuODQtMS4yOUExMC4zOCwxMC4zOCwwLDAsMCwxOCwzMy42NmExMC4zOCwx''@;'; put 'put ''MC4zOCwwLDAsMCw4LjE0LTMuODFMMjgsMzEuMTJhMSwxLDAsMSwwLDEuMTUtMS42NGwtMS44Ni0xLjNBMTQuNjEsMTQuNjEsMCwwLDAsMjguOTQsMjJoMS44OWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTYiIGQ9Ik0xMS41MSw1LjM2YTEuNjcsMS42NywwLDAsMCwxLjA3LS41MUEzLjIxLDMuMjEsMCwwLDEsMTMuNzYsNmExNi4zOCwxNi4zOCwwLDAsMC0yLjY1LDIuODksMiwyLDAsMCwwLDEuNjEsMy4xOUgyMy4zMkEyLDIsMCwwLDAsMjUuMSwxMWEyLDIsMCwwLDAtLjE3LTIuMUExNi4z''@;'; put 'put ''NCwxNi4zNCwwLDAsMCwyMi4yNSw2YTMuMjEsMy4yMSwwLDAsMSwxLjE3LTEuMTFBMS42OCwxLjY4LDAsMSwwLDIzLDMuMjcsNC43Nyw0Ljc3LDAsMCwwLDIxLDVhNS44MSw1LjgxLDAsMCwwLTIuOTMtMSw1LjgzLDUuODMsMCwwLDAtMywxQTQuNzcsNC43NywwLDAsMCwxMywzLjI3YTEuNjgs''@;'; put 'put ''MS42OCwwLDEsMC0xLjQ5LDIuMDlaTTE4LDYuMDdjMS40NSwwLDMuNTMsMS41Nyw1LjMxLDRoMGwtMTAuNiwwQzE0LjQ5LDcuNjMsMTYuNTYsNi4wNywxOCw2LjA3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjgz''@;'; put 'put ''LDIwSDI5YTE5LjI5LDE5LjI5LDAsMCwwLTEuMTgtNS43M2wxLjQ2LS43OWExLDEsMCwwLDAtLjk1LTEuNzZsLTMsMS4yOEgxMC43OEw3LjcsMTEuNzJhMSwxLDAsMCwwLS45NSwxLjc2bDEuNS44QTE5LjM4LDE5LjM4LDAsMCwwLDcuMDcsMjBINS4xN2ExLDEsMCwwLDAsMCwySDcuMWExNC42''@;'; put 'put ''MiwxNC42MiwwLDAsMCwxLjY2LDYuMTdMNi44NywyOS40OUExLDEsMCwxLDAsOCwzMS4xMmwxLjg0LTEuMjlBMTAuMjksMTAuMjksMCwwLDAsMTcsMzMuNlYxNWgyVjMzLjZhMTAuMjksMTAuMjksMCwwLDAsNy4xNi0zLjc1TDI4LDMxLjEyYTEsMSwwLDEsMCwxLjE1LTEuNjRsLTEuODYtMS4z''@;'; put 'put ''QTE0LjYxLDE0LjYxLDAsMCwwLDI4Ljk0LDIyaDEuODlhMSwxLDAsMCwwLDAtMlpNMTAuOTEsMTcuNzRhMS45NSwxLjk1LDAsMSwxLDEuOTUsMS45NUExLjk1LDEuOTUsMCwwLDEsMTAuOTEsMTcuNzRaTTE0LDI3LjQ2YTEuNTgsMS41OCwwLDEsMSwxLjU4LTEuNThBMS41OCwxLjU4LDAsMCwx''@;'; put 'put ''LDE0LDI3LjQ2Wm04LjQzLDBBMS41OCwxLjU4LDAsMSwxLDI0LDI1Ljg4LDEuNTgsMS41OCwwLDAsMSwyMi40MiwyNy40NlptMS4xMy03Ljc3YTEuOTUsMS45NSwwLDEsMSwxLjk1LTEuOTVBMS45NSwxLjk1LDAsMCwxLDIzLjU2LDE5LjY5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTExLjIzLDUuMjZhMS42NywxLjY3LDAsMCwwLC41NC0uMzIsNS45LDUuOSwwLDAsMSwuODkuNTgsNy40NCw3LjQ0LDAsMCwxLC45NS45NEExOC40OCwxOC40OCwwLDAsMCwxMC43OSw5LjdjLS40LjU3LjA5LDEuMjguODYsMS4y''@;'; put 'put ''OEgyNC40NGMuNzcsMCwxLjI2LS43MS44Ni0xLjI4YTE4LjM4LDE4LjM4LDAsMCwwLTIuODgtMy4yOCw3LjI4LDcuMjgsMCwwLDEsLjkxLS45LDUuOSw1LjksMCwwLDEsLjg5LS41OCwxLjY5LDEuNjksMCwxLDAtLjU2LTEuNTEsNy40OSw3LjQ5LDAsMCwwLTEuMzIuODMsOS4wNiw5LjA2LDAs''@;'; put 'put ''MCwwLTEuMTksMS4xOEE1Ljg1LDUuODUsMCwwLDAsMTgsNC4zYTUuOTEsNS45MSwwLDAsMC0zLjE3LDEuMTksOS4yLDkuMiwwLDAsMC0xLjIyLTEuMjEsNy40OSw3LjQ5LDAsMCwwLTEuMzItLjgzLDEuNjgsMS42OCwwLDEsMC0xLjExLDEuODNaIi8+JyksTC5DbHJTaGFwZVRoZXJtb21ldGVy''@;'; put 'put ''PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTksMjMuMTdWMTEuNDZIMTdWMjMuMmEzLDMsMCwxLDAsMiwwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTIiIGQ9Ik0yNiwxNWExLDEsMCwwLDAsMC0ySDIzLjkyVjExSDI2YTEsMSwwLDAsMCwwLTJIMjMuOTJWOGE2LDYsMCwwLDAtMTIsMFYyMC44MWE4LDgsMCwxLDAsMTItLjJWMTlIMjZhMSwxLDAsMCwwLDAtMkgyMy45MlYxNVpNMjQsMjZhNiw2LDAsMSwxLTEwLjM2LTQuMTJsLjI3''@;'; put 'put ''LS4yOVY4YTQsNCwwLDAsMSw4LDBWMjEuNDRsLjMuMjlBNiw2LDAsMCwxLDI0LDI2WiIvPicpLEwuQ2xyU2hhcGVQZW5jaWw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy44Nyw4LjMyLDI4LDIuNDJhMi4w''@;'; put 'put ''NywyLjA3LDAsMCwwLTIuOTIsMEw0LjI3LDIzLjJsLTEuOSw4LjJhMi4wNiwyLjA2LDAsMCwwLDIsMi41LDIuMTQsMi4xNCwwLDAsMCwuNDMsMEwxMy4wOSwzMiwzMy44NywxMS4yNEEyLjA3LDIuMDcsMCwwLDAsMzMuODcsOC4zMlpNMTIuMDksMzAuMiw0LjMyLDMxLjgzbDEuNzctNy42Mkwy''@;'; put 'put ''MS42Niw4LjdsNiw2Wk0yOSwxMy4yNWwtNi02LDMuNDgtMy40Niw1LjksNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNC4yMiwyMy4ybC0xLjksOC4yYTIuMDYsMi4wNiwwLDAsMCwyLDIuNSwyLjE0LDIuMTQs''@;'; put 'put ''MCwwLDAsLjQzLDBMMTMsMzIsMjguODQsMTYuMjIsMjAsNy40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy44Miw4LjMybC01LjktNS45YTIuMDcsMi4wNywwLDAsMC0yLjkyLDBMMjEuNzIsNS43bDguODMs''@;'; put 'put ''OC44MywzLjI4LTMuMjhBMi4wNywyLjA3LDAsMCwwLDMzLjgyLDguMzJaIi8+JyksTC5DbHJTaGFwZU5vdGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDMwSDZWOEgxOS4yMmwyLTJINkEyLDIsMCwwLDAsNCw4VjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxNWwt''@;'; put 'put ''MiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTMsNS44NCwzMC4xNiwyLjQ3YTEuNjEsMS42MSwwLDAsMC0yLjI4LDBMMTQuMTcsMTYuMjZsLTEuMTEsNC44MUExLjYxLDEuNjEsMCwwLDAsMTQuNjMs''@;'; put 'put ''MjMsMS42OSwxLjY5LDAsMCwwLDE1LDIzbDQuODUtMS4wN0wzMy41Myw4LjEyQTEuNjEsMS42MSwwLDAsMCwzMy41Myw1Ljg0Wk0xOC44MSwyMC4wOGwtMy42Ni44MUwxNiwxNy4yNiwyNi4zMiw2Ljg3bDIuODIsMi44MlpNMzAuMjcsOC41NiwyNy40NSw1Ljc0LDI5LDQuMTYsMzEuODQsN1oi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDYuNCwyOS4zLDIuN2ExLjcxLDEuNzEsMCwwLDAtMi4zNiwwTDIzLjY1LDZINkEyLDIsMCwwLDAsNCw4VjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDIt''@;'; put 'put ''MlYxMS43NmwzLTNBMS42NywxLjY3LDAsMCwwLDMzLDYuNFpNMTguODMsMjAuMTNsLTQuMTkuOTMsMS00LjE1LDkuNTUtOS41NywzLjIzLDMuMjNaTTI5LjUsOS40MywyNi4yNyw2LjJsMS44NS0xLjg1LDMuMjMsMy4yM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; put 'put ''IC8+JyksTC5DbHJTaGFwZVJlZnJlc2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yMi40LDExLjY1YTEuMDksMS4wOSwwLDAsMCwxLjA5LDEuMDlIMzQuNDNWMS44MWExLjA5LDEuMDksMCwxLDAtMi4xOSww''@;'; put 'put ''VjguOTVhMTYuNDEsMTYuNDEsMCwxLDAsMS40NywxNS44NiwxLjEyLDEuMTIsMCwwLDAtMi4wNS0uOSwxNC4xOCwxNC4xOCwwLDEsMS0xLjA1LTEzLjM2SDIzLjVBMS4wOSwxLjA5LDAsMCwwLDIyLjQsMTEuNjVaIi8+JyksTC5DbHJTaGFwZVN5bmM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMi44NCwxNS43MmExLDEsMCwxLDAtMiwuMjlBMTMuMTUsMTMuMTUsMCwwLDEsMzEsMTcuOTQsMTMsMTMsMCwwLDEsOC43LDI3aDUuMzZhMSwxLDAsMCwwLDAtMmgtOXY5YTEsMSwwLDEsMCwyLDBWMjguMkEx''@;'; put 'put ''NSwxNSwwLDAsMCwzMi44NCwxNS43MloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjA2LDFBMS4wNSwxLjA1LDAsMCwwLDI5LDJWNy44M0ExNC45NCwxNC45NCwwLDAsMCwzLDE3Ljk0YTE1LjE2LDE1''@;'; put 'put ''LjE2LDAsMCwwLC4yLDIuNDgsMSwxLDAsMCwwLDEsLjg0aC4xNmExLDEsMCwwLDAsLjgyLTEuMTVBMTMuMjMsMTMuMjMsMCwwLDEsNSwxNy45NGExMywxMywwLDAsMSwxMy0xM0ExMi44NywxMi44NywwLDAsMSwyNy40NCw5SDIyLjA2YTEsMSwwLDAsMCwwLDJIMzFWMkExLDEsMCwwLDAsMzAu''@;'; put 'put ''MDYsMVoiLz4nKSxMLkNsclNoYXBlVmlld0xpc3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTcsMTBIMzFhMSwxLDAsMCwwLDAtMkg3YTEsMSwwLDAsMCwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjIiIHk9IjE0IiB3aWR0aD0i''@;'; put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMSwxNEg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMiIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTMxLDIwSDdhMSwxLDAsMCwwLDAsMkgzMWExLDEs''@;'; put 'put ''MCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIyIiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC04IiBkPSJNMzEsMjZIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+JyksTC5DbHJTaGFwZVZpZXdDYXJkcz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDE3SDRh''@;'; put 'put ''MiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDE3SDIxYTIsMiww''@;'; put 'put ''LDAsMS0yLTJWOGEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMTdaTTIxLDh2N0gzMlY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEt''@;'; put 'put ''Mi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMzIsMzBIMjFhMiwyLDAsMCwxLTIt''@;'; put 'put ''MlYyMWEyLDIsMCwwLDEsMi0ySDMyYTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMzIsMzBaTTIxLDIxdjdIMzJWMjFaIi8+JyksTC5DbHJTaGFwZUxpZ2h0YnVsYj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi4yNWExMSwxMSwwLDAsMC0xMSwxMSwxMC42OCwxMC42OCwwLDAs''@;'; put 'put ''MCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNGgyQTE4LjE3LDE4LjE3LDAsMCwwLDEzLDIyLjQ0YTE4LjQ2LDE4LjQ2LDAsMCwwLTIuMjItMy45MiwxNS43OSwxNS43OSwwLDAsMS0xLTEuNTRBOC42''@;'; put 'put ''NCw4LjY0LDAsMCwxLDksMTMuMjNhOSw5LDAsMCwxLDE4LjA3LDBBOC42NCw4LjY0LDAsMCwxLDI2LjIxLDE3YTE1Ljc5LDE1Ljc5LDAsMCwxLTEsMS41NEExOC40NiwxOC40NiwwLDAsMCwyMywyMi40NGExOC4xNywxOC4xNywwLDAsMC0uNzEsNC43MWgyYTE2LjE5LDE2LjE5LDAsMCwxLC41''@;'; put 'put ''OS00LDE3LDE3LDAsMCwxLDItMy40N0ExNi4zMSwxNi4zMSwwLDAsMCwyOCwxNy44NmExMC42OCwxMC42OCwwLDAsMCwxLTQuNjNBMTEsMTEsMCwwLDAsMTgsMi4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MTguNjMsMTUuNTFhLjguOCwwLDAsMC0xLjEzLDBsLTMsMywyLjg2LDMuMTN2NS41NEgxOVYyMWwtMi4yNC0yLjQ1LDEuODktMS44OUEuOC44LDAsMCwwLDE4LjYzLDE1LjUxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJh''@;'; put 'put ''LjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuMzIsMTAuODlsLTIuNzMsMi43M2EuOC44LDAsMCwwLDEuMTMsMS4xM0wxOC40NSwxMmEuOC44LDAsMSwwLTEuMTMtMS4xM1oiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMjcuMTVWMjFsLTIuMjQtMi40NSwxLjg5LTEuODlhLjguOCwwLDAsMC0xLjEzLTEuMTNsLTMsMywyLjg2LDMuMTN2NS41NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTE1LjcyLDE0Ljc1LDE4LjQ1LDEyYS44LjgsMCwxLDAtMS4xMy0xLjEzbC0yLjczLDIuNzNhLjguOCwwLDAsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0yNywxMi44OGMwLC4xMiwwLC4yMywwLC4zNUE4LjY0LDguNjQsMCwwLDEsMjYuMjEsMTdhMTUuNzksMTUuNzksMCwwLDEtMSwxLjU0QTE4LjQ2LDE4LjQ2LDAsMCwwLDIzLDIyLjQ0YTE4LjE3LDE4LjE3LDAsMCwwLS43MSw0LjcxaDJhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcs''@;'; put 'put ''MTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjYzLDEwLjYzLDAsMCwwLDEtNC40M0E3LjQ1LDcuNDUsMCwwLDEsMjcsMTIuODhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0xMy43MSwyNy4xNUExOC4xNywxOC4xNywwLDAsMCwxMywyMi40NGExOC40NiwxOC40NiwwLDAsMC0yLjIyLTMuOTIsMTUuNzksMTUuNzksMCwwLDEtMS0xLjU0QTguNjQsOC42NCwwLDAsMSw5LDEzLjIzLDksOSwwLDAsMSwyMi41Myw1LjQ3YTcuNDUsNy40NSwwLDAs''@;'; put 'put ''MSwuNDMtMiwxMSwxMSwwLDAsMC0xNiw5LjgsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYs''@;'; put 'put ''MjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDMyLjE1SDE0YS44LjgsMCwxLDAsMCwxLjZIMjJhLjguOCwwLDEsMCwwLTEu''@;'; put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyLjI1YTExLDExLDAsMCwwLTExLDExLDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3''@;'; put 'put ''LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDUuNjlWMjEuNjFsLTIuODYtMy4xMywzLTNhLjguOCwwLDAsMSwxLjEzLDEuMTNsLTEuODksMS44OUwxOSwyMXY2LjE3SDI0LjNhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3''@;'; put 'put ''Ljg2YTEwLjY4LDEwLjY4LDAsMCwwLDEtNC42M0ExMSwxMSwwLDAsMCwxOCwyLjI1Wk0xOC40NSwxMmwtMi43MywyLjczYS44LjgsMCwxLDEtMS4xMy0xLjEzbDIuNzMtMi43M0EuOC44LDAsMSwxLDE4LjQ1LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIs''@;'; put 'put ''MzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZBNy40Nyw3LjQ3LDAsMCwxLDIzLDMuNDRhMTEsMTEs''@;'; put 'put ''MCwwLDAtMTYsOS44LDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDUuNjlWMjEuNjFsLTIuODYtMy4xMywzLTNhLjguOCwwLDAsMSwxLjEzLDEuMTNsLTEuODksMS44''@;'; put 'put ''OUwxOSwyMXY2LjE3SDI0LjNhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjYzLDEwLjYzLDAsMCwwLDEtNC40M0E3LjUsNy41LDAsMCwxLDIyLjUsNlptLTQsNi0yLjczLDIuNzNhLjguOCwwLDEsMS0xLjEz''@;'; put 'put ''LTEuMTNsMi43My0yLjczQS44LjgsMCwxLDEsMTguNDUsMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEwuQ2xyU2hhcGVEb3dubG9hZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCww''@;'; put 'put ''LDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEsMSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmEx''@;'; put 'put ''LDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSww''@;'; put 'put ''LTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDI1LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCww''@;'; put 'put ''LDAsMjYuODUsMS4xNFoiLz4nKSxMLkNsclNoYXBlVXBsb2FkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjgxLDE1LDE3LDYuODNWMjcuNDhhMSwxLDAsMCwwLDIsMFY2LjgzTDI3LjE5LDE1YTEsMSwwLDAsMCwxLjQxLTEuNDFMMTgsMyw3LjM5LDEzLjYxQTEsMSwwLDEsMCw4LjgxLDE1WiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzEsMzFINWMtMC42LDAtMSwwLjQtMSwxczAuNCwxLDEsMWgyNmMwLjYsMCwxLTAuNCwxLTFTMzEuNiwzMSwzMSwzMXoiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTguOCwxNUwxNyw2Ljh2MjAuNmMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xVjYuOEwyMC4xLDhsMS0xLjhMMTgsM0w3LjQsMTMuNkM3LDE0LDYu''@;'; put 'put ''OSwxNC42LDcuMiwxNXMxLDAuNSwxLjQsMC4xQzguNywxNS4xLDguOCwxNS4xLDguOCwxNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4x''@;'; put 'put ''TDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik04LjgxLDE1LDE3LDYuODNWMjcuNDhhMSwxLDAsMCwwLDIsMFY2LjgzTDI3LjE5LDE1YTEsMSwwLDAsMCwxLjQxLTEuNDFMMTgsMyw3LjM5LDEzLjYxQTEsMSwwLDEsMCw4LjgxLDE1WiIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZUxvY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOC4wOSwyMC41OUEyLjQxLDIuNDEsMCwwLDAsMTcsMjUuMTRWMjhoMlYyNS4yM2EyLjQxLDIuNDEsMCwwLDAtLjkxLTQuNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTIiIGQ9Ik0yNiwxNVYxMC43MmE4LjIsOC4yLDAsMCwwLTgtOC4zNiw4LjIsOC4yLDAsMCwwLTgsOC4zNlYxNUg3VjMyYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYxNVpNMTIsMTAuNzJhNi4yLDYuMiwwLDAsMSw2LTYuMzYsNi4yLDYuMiwwLDAsMSw2LDYu''@;'; put 'put ''MzZWMTVIMTJaTTksMzJWMTdIMjdWMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LDE1VjEwLjcyYTguMiw4LjIsMCwwLDAtOC04LjM2LDguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDdWMzJhMiwyLDAsMCww''@;'; put 'put ''LDIsMkgyN2EyLDIsMCwwLDAsMi0yVjE1Wk0xOSwyNS4yM1YyOEgxN1YyNS4xNGEyLjQsMi40LDAsMSwxLDIsLjA5Wk0yNCwxNUgxMlYxMC43MmE2LjIsNi4yLDAsMCwxLDYtNi4zNiw2LjIsNi4yLDAsMCwxLDYsNi4zNloiLz4nKSxMLkNsclNoYXBlVW5sb2NrPSgwLEUuY2xySWNvblNWRyko''@;'; put 'put ''JzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIsMjUuMTRWMjhoMlYyNS4yM2EyLjQyLDIuNDIsMCwxLDAtMi0uMDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; put 'put ''IGQ9Ik0yNiwyYTguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDJWMzJhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE1SDIwVjEwLjM2QTYuMiw2LjIsMCwwLDEsMjYsNGE2LjIsNi4yLDAsMCwxLDYsNi4zNnY2LjgzYTEsMSwwLDAsMCwyLDBWMTAuMzZBOC4yLDguMiwwLDAsMCwyNiwy''@;'; put 'put ''Wk0yMiwxN1YzMkg0VjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNiwyYTguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDJWMzJhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE1SDIwVjEwLjM2QTYu''@;'; put 'put ''Miw2LjIsMCwwLDEsMjYsNGE2LjIsNi4yLDAsMCwxLDYsNi4zNnY2LjgzYTEsMSwwLDAsMCwyLDBWMTAuMzZBOC4yLDguMiwwLDAsMCwyNiwyWk0xNCwyNS4yM1YyOEgxMlYyNS4xNGEyLjQsMi40LDAsMSwxLDIsLjA5WiIvPicpLEwuQ2xyU2hhcGVVc2Vycz0oMCxFLmNsckljb25TVkcpKCc8''@;'; put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjksMTcuM2MyLjcsMCw0LjgtMi4yLDQuOC00LjljMC0yLjctMi4yLTQuOC00LjktNC44Yy0yLjcsMC00LjgsMi4yLTQuOCw0LjhDMTMsMTUuMSwxNS4yLDE3LjMsMTcuOSwxNy4zeiBNMTcuOCw5''@;'; put 'put ''LjZDMTcuOSw5LjYsMTcuOSw5LjYsMTcuOCw5LjZjMS42LDAsMi45LDEuMywyLjksMi45cy0xLjMsMi44LTIuOSwyLjhjLTEuNiwwLTIuOC0xLjMtMi44LTIuOEMxNSwxMC45LDE2LjMsOS42LDE3LjgsOS42eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIuNywxNi43Yy0xLjktMS43LTQuNC0yLjYtNy0yLjVjLTAuMywwLTAuNSwwLTAuOCwwYy0wLjIsMC44LTAuNSwxLjUtMC45LDIuMWMwLjYtMC4xLDEuMS0wLjEsMS43LTAuMWMxLjktMC4xLDMuOCwwLjUsNS4zLDEuNlYyNWgydi04TDMyLjcs''@;'; put 'put ''MTYuN3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIzLjQsNy44YzAuNS0xLjIsMS45LTEuOCwzLjItMS4zYzEuMiwwLjUsMS44LDEuOSwxLjMsMy4yYy0wLjQsMC45LTEuMywxLjUtMi4yLDEuNWMtMC4y''@;'; put 'put ''LDAtMC41LDAtMC43LTAuMWMwLjEsMC41LDAuMSwxLDAuMSwxLjRjMCwwLjIsMCwwLjQsMCwwLjZjMC4yLDAsMC40LDAuMSwwLjYsMC4xYzIuNSwwLDQuNS0yLDQuNS00LjRjMC0yLjUtMi00LjUtNC40LTQuNWMtMS42LDAtMywwLjgtMy44LDIuMkMyMi41LDYuOCwyMyw3LjIsMjMuNCw3Ljh6''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xMiwxNi40Yy0wLjQtMC42LTAuNy0xLjMtMC45LTIuMWMtMC4zLDAtMC41LDAtMC44LDBjLTIuNi0wLjEtNS4xLDAuOC03LDIuNEwzLDE3djhoMnYtNy4yYzEu''@;'; put 'put ''Ni0xLjEsMy40LTEuNyw1LjMtMS42QzEwLjksMTYuMiwxMS41LDE2LjMsMTIsMTYuNHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTEwLjMsMTMuMWMwLjIsMCwwLjQsMCwwLjYtMC4xYzAtMC4yLDAtMC40''@;'; put 'put ''LDAtMC42YzAtMC41LDAtMSwwLjEtMS40Yy0wLjIsMC4xLTAuNSwwLjEtMC43LDAuMWMtMS4zLDAtMi40LTEuMS0yLjQtMi40YzAtMS4zLDEuMS0yLjQsMi40LTIuNGMxLDAsMS45LDAuNiwyLjMsMS41YzAuNC0wLjUsMS0xLDEuNS0xLjRjLTEuMy0yLjEtNC0yLjgtNi4xLTEuNWMtMi4xLDEu''@;'; put 'put ''My0yLjgsNC0xLjUsNi4xQzcuMywxMi4zLDguNywxMy4xLDEwLjMsMTMuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTI2LjEsMjIuN2wtMC4yLTAuM2MtMi0yLjItNC44LTMuNS03LjgtMy40Yy0zLTAu''@;'; put 'put ''MS01LjksMS4yLTcuOSwzLjRMMTAsMjIuN3Y3LjZjMCwwLjksMC43LDEuNywxLjcsMS43YzAsMCwwLDAsMCwwaDEyLjhjMC45LDAsMS43LTAuOCwxLjctMS43YzAsMCwwLDAsMCwwVjIyLjd6IE0yNC4xLDMwSDEydi02LjZjMS42LTEuNiwzLjgtMi40LDYuMS0yLjRjMi4yLTAuMSw0LjQsMC44''@;'; put 'put ''LDYsMi40VjMweiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMDksMTQuNTdjLjEsMCwuMiwwLC4zMSwwYTYuNDMsNi40MywwLDAsMSwuMDktMiwyLjA5LDIuMDksMCwx''@;'; put 'put ''LDEsMS40Ny0zLDYuNTgsNi41OCwwLDAsMSwxLjU1LTEuMzEsNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEzLDE4LjE0YTYu''@;'; put 'put ''NTMsNi41MywwLDAsMS0xLjI4LTIuMmwtLjYzLDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djdoMlYxOS41MWE3LDcsMCwwLDEsNC42Ny0xLjZBOC4wOSw4LjA5LDAsMCwxLDEzLDE4LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuMzUsMTguNDJBOC41OSw4LjU5LDAsMCwwLDI1LDE1LjkxYy0uMzIsMC0uNiwwLS45LjA2YTYuNTMsNi41MywwLDAsMS0xLjM1LDIuMjVBNy45LDcuOSwwLDAsMSwyNSwxNy45MWE2Ljk0LDYuOTQsMCwwLDEs''@;'; put 'put ''NC42NCwxLjU4djYuMjdoMlYxOC43WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguMSwxOS43M0E5LjY5LDkuNjksMCwwLDAsMTEsMjIuNDdsLS4yNS4yOHY3LjMzYTEu''@;'; put 'put ''NTcsMS41NywwLDAsMCwxLjYxLDEuNTRIMjMuODNhMS41NywxLjU3LDAsMCwwLDEuNjEtMS41NFYyMi43M2wtLjI1LS4yOEE5LjU4LDkuNTgsMCwwLDAsMTguMSwxOS43M1ptNS4zMyw5Ljg4SDEyLjczVjIzLjU1YTguMDgsOC4wOCwwLDAsMSw1LjM3LTEuODIsOCw4LDAsMCwxLDUuMzMsMS44''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMjAuMjgsMTQuMjdhMi40NiwyLjQ2LDAsMSwxLTIuNDItMi44OSwyLjQ0LDIuNDQsMCwwLDEsMSwuMjQsMy42NywzLjY3LDAs''@;'; put 'put ''MCwxLC40My0yLDQuNDEsNC40MSwwLDAsMC0xLjQ4LS4yN0E0LjQ3LDQuNDcsMCwxLDAsMjIuMTQsMTUsMy42OSwzLjY5LDAsMCwxLDIwLjI4LDE0LjI3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02''@;'; put 'put ''LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjcuMTguOGwtNS43Miw5LjkxYTEuMjgsMS4yOCwwLDAsMCwxLjEsMS45MUgzNGExLjI4LDEuMjgsMCwwLDAsMS4xLTEuOTFMMjkuMzkuOEExLjI4LDEuMjgsMCwwLDAsMjcuMTguOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4wOSwxNC41N2MuMSwwLC4yLDAsLjMxLDBhNi40Myw2LjQzLDAsMCwxLC4wOS0yLDIuMDksMi4wOSwwLDEsMSwxLjQ3LTMsNi41OCw2LjU4LDAsMCwxLDEuNTUtMS4zMSw0LjA5LDQuMDks''@;'; put 'put ''MCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTEzLDE4LjE0YTYuNTMsNi41MywwLDAsMS0xLjI4LTIuMmwtLjYzLDBhOC42Nyw4LjY3LDAsMCwwLTYu''@;'; put 'put ''NDMsMi41MmwtLjI0LjI4djdoMlYxOS41MWE3LDcsMCwwLDEsNC42Ny0xLjZBOC4wOSw4LjA5LDAsMCwxLDEzLDE4LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTTMxLjM1''@;'; put 'put ''LDE4LjQyQTguNTksOC41OSwwLDAsMCwyNSwxNS45MWMtLjMyLDAtLjYsMC0uOS4wNmE2LjUzLDYuNTMsMCwwLDEtMS4zNSwyLjI1QTcuOSw3LjksMCwwLDEsMjUsMTcuOTFhNi45NCw2Ljk0LDAsMCwxLDQuNjQsMS41OHY2LjI3aDJWMTguN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xNy44NiwxOC4zYTQuNDcsNC40NywwLDEsMC00LjQ3LTQuNDdBNC40Nyw0LjQ3LDAsMCwwLDE3Ljg2LDE4LjNabTAtNi45M2EyLjQ3LDIuNDcsMCwxLDEtMi40NywyLjQ3QTIuNDcs''@;'; put 'put ''Mi40NywwLDAsMSwxNy44NiwxMS4zN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0xOC4xLDE5LjczQTkuNjksOS42OSwwLDAsMCwxMSwyMi40N2wtLjI1LjI4djcuMzNhMS41''@;'; put 'put ''NywxLjU3LDAsMCwwLDEuNjEsMS41NEgyMy44M2ExLjU3LDEuNTcsMCwwLDAsMS42MS0xLjU0VjIyLjczbC0uMjUtLjI4QTkuNTgsOS41OCwwLDAsMCwxOC4xLDE5LjczWm01LjMzLDkuODhIMTIuNzNWMjMuNTVhOC4wOCw4LjA4LDAsMCwxLDUuMzctMS44Miw4LDgsMCwwLDEsNS4zMywxLjha''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiBkPSJNMjYuMzcsMTJhMiwyLDAsMCwxLTIuMDkuNDIsNi41Myw2LjUzLDAsMCwxLC4xNSwxLjM4LDYuNTksNi41OSwwLDAsMSwwLC42OCw0''@;'; put 'put ''LDQsMCwwLDAsLjU3LjA2LDQuMDgsNC4wOCwwLDAsMCwzLjMtMS43QTcuNDUsNy40NSwwLDAsMSwyNi4zNywxMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIGQ9Ik0yMi45NSw2Ljkz''@;'; put 'put ''YTQuMTYsNC4xNiwwLDAsMC0xLjQ3LDEuNDRBNi41OSw2LjU5LDAsMCwxLDIzLDkuNzdhMi4xLDIuMSwwLDAsMSwuNTktLjgzQTcuNDQsNy40NCwwLDAsMSwyMi45NSw2LjkzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtOC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAuMzMiIGN5PSI1LjY3IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEyLDE2LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCww''@;'; put 'put ''LDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTksNi41OSwwLDAsMSwxMiwxNi4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBk''@;'; put 'put ''PSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0LjcxaDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTExLjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTI0LjQzLDEzLjQ0YTYuNTQsNi41NCwwLDAsMSwwLC42OSw0LjA5LDQuMDksMCwwLDAsLjU4LjA1aC4xOUE0LjA5LDQuMDksMCwxLDAsMjEuNDcsOCw2LjUzLDYuNTMsMCwwLDEsMjQuNDMsMTMuNDRaIi8+XG4gICAgICAgICAgICAgICAg''@;'; put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiBjeD0iMTcuODciIGN5PSIxMy40NSIgcj0iNC40NyIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42''@;'; put 'put ''OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNBOS41OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; put 'put ''bGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEyLDE2LjE0cS0uNDMsMC0uODcsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2OC4yOEg4LjU0di00LjdsLjU1LS42Mi4yNS0uMjlhMTEsMTEsMCwwLDEsNC43MS0yLjg2QTYuNTksNi41OSww''@;'; put 'put ''LDAsMSwxMiwxNi4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2''@;'; put 'put ''LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0LjcxaDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgZD0iTTEx''@;'; put 'put ''LjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0i''@;'; put 'put ''TTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC01LS1hbGVydGVkIiBkPSJNMTcuODcsMTcuOTJhNC40Niw0LjQ2LDAsMCwwLDQtMi41NEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OWwuMzUtLjYxQTQuNDIsNC40MiwwLDAsMCwxNy44Nyw5YTQuNDcsNC40''@;'; put 'put ''NywwLDEsMCwwLDguOTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTIsMTYuMTRxLS40Myww''@;'; put 'put ''LS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OCw2LjU4LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEuMzQsMTguNjNhOC42Nyw4LjY3LDAsMCwwLTYuNDMtMi41MiwxMC40NywxMC40NywwLDAsMC0xLjA5LjA2LDYuNTksNi41OSwwLDAsMS0yLDIuNDUsMTAuOTEsMTAuOTEsMCwwLDEsNSwzbC4yNS4yOC41NC42MnY0Ljcx''@;'; put 'put ''aDMuOTRWMTguOTFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xMS4xLDE0LjE5Yy4xMSwwLC4yLDAsLjMxLDBhNi40NSw2LjQ1LDAsMCwxLDMuMTEtNi4yOSw0LjA5LDQuMDksMCwx''@;'; put 'put ''LDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIGN4PSIxNy44NyIgY3k9IjEzLjQ1IiByPSI0LjQ3Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiIGQ9Ik0xOC4xMSwyMC4zQTkuNjksOS42OSwwLDAsMCwxMSwyM2wtLjI1LjI4djYuMzNhMS41NywxLjU3LDAsMCwwLDEuNiwxLjU0SDIzLjg0YTEuNTcsMS41NywwLDAsMCwxLjYtMS41NFYyMy4zTDI1LjIsMjNBOS41''@;'; put 'put ''OCw5LjU4LDAsMCwwLDE4LjExLDIwLjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC02LS1iYWRnZWQiIGQ9Ik0yNC40MywxMy40NGE2LjU0LDYuNTQsMCwwLDEsMCwuNjksNC4wOSw0LjA5LDAsMCwwLC41OC4w''@;'; put 'put ''NWguMTlhNC4wNSw0LjA1LDAsMCwwLDIuNTItMSw3LjUsNy41LDAsMCwxLTUuMTQtNi4zMkE0LjEzLDQuMTMsMCwwLDAsMjEuNDcsOCw2LjUzLDYuNTMsMCwwLDEsMjQuNDMsMTMuNDRaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTctLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVQb3BPdXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNywzM0g1YTIsMiwwLDAs''@;'; put 'put ''MS0yLTJWOUEyLDIsMCwwLDEsNSw3SDE1VjlINVYzMUgyN1YyMWgyVjMxQTIsMiwwLDAsMSwyNywzM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDNhMSwxLDAsMCwwLDAsMkgyOS41OUwxNS43NCwx''@;'; put 'put ''OC44NWExLDEsMCwxLDAsMS40MSwxLjQxTDMxLDYuNDFWMThhMSwxLDAsMCwwLDIsMFYzWiIvPicpLEwuQ2xyU2hhcGVGaWx0ZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMyw0SDNBMSwxLDAsMCwwLDIs''@;'; put 'put ''NVY2LjY3YTEuNzksMS43OSwwLDAsMCwuNTMsMS4yN0wxNCwxOS41OHYxMC4ybDIsLjc2VjE5YTEsMSwwLDAsMC0uMjktLjcxTDQsNi41OVY2SDMydi42MUwyMC4zMywxOC4yOUExLDEsMCwwLDAsMjAsMTlsMCwxMy4yMUwyMiwzM1YxOS41TDMzLjQ3LDhBMS44MSwxLjgxLDAsMCwwLDM0LDYu''@;'; put 'put ''N1Y1QTEsMSwwLDAsMCwzMyw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMiwzM1YxOS41TDMzLjQ3LDhBMS44MSwxLjgxLDAsMCwwLDM0LDYuN1Y1YTEsMSwwLDAsMC0xLTFIM0ExLDEsMCwwLDAsMiw1VjYu''@;'; put 'put ''NjdhMS43OSwxLjc5LDAsMCwwLC41MywxLjI3TDE0LDE5LjU4djEwLjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggZD0iTTMzLjQ4LDRoLTMxQS41Mi41MiwwLDAsMCwyLDQuNTJWNi4yNGExLjMzLDEuMzMsMCwwLDAsLjM5Ljk1bDEyLDEydjEwbDcuMjUsMy42MVYxOS4xN2wxMi0xMkEx''@;'; put 'put ''LjM1LDEuMzUsMCwwLDAsMzQsNi4yNlY0LjUyQS41Mi41MiwwLDAsMCwzMy40OCw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUGluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIiBkPSJNMzMsMTYuNTlhMSwxLDAsMCwxLS43MS0uMjlMMTkuNywzLjcxYTEsMSwwLDAsMSwxLjQxLTEuNDFMMzMuNzEsMTQuODlBMSwxLDAsMCwxLDMzLDE2LjU5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0yIiBkPSJNMjguNTIsMTUuNTZsLTEuNDEtMS40MS03LjIsNy4yYTEsMSwwLDAsMC0uMjUsMSw5LDksMCwwLDEtMS41Myw4LjA5TDUuNTgsMTcuODdhOSw5LDAsMCwxLDguMDktMS41MywxLDEsMCwwLDAsMS0uMjVsNy4yLTcuMkwyMC40NCw3LjQ4bC02Ljc5LDYuNzlBMTAuOTQsMTAu''@;'; put 'put ''OTQsMCwwLDAsMy40MSwxNy4xMWExLDEsMCwwLDAsMCwxLjQybDYuMzMsNi4zM0wyLjI5LDMyLjI5YTEsMSwwLDEsMCwxLjQxLDEuNDFsNy40NC03LjQ0LDYuMzMsNi4zM2ExLDEsMCwwLDAsLjcxLjI5aDBhMSwxLDAsMCwwLC43MS0uMywxMSwxMSwwLDAsMCwyLjg0LTEwLjI0WiIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywxNi43MWExLDEsMCwwLDEtLjcxLS4yOUwxOS43LDMuODJhMSwxLDAsMCwxLDEuNDEtMS40MUwzMy43MSwxNUExLDEsMCwwLDEsMzMsMTYuNzFaIi8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjQ0LDcuNTlsLTYuNzksNi43OUExMC45NCwxMC45NCwwLDAsMCwzLjQxLDE3LjIyYTEsMSwwLDAsMCwwLDEuNDJMOS43MywyNSwyLjI5LDMyLjQxYTEsMSwwLDEsMCwxLjQxLDEuNDFsNy40NC03''@;'; put 'put ''LjQ0LDYuMzMsNi4zM2ExLDEsMCwwLDAsLjcxLjI5aDBhMSwxLDAsMCwwLC43MS0uMywxMSwxMSwwLDAsMCwyLjg0LTEwLjI0bDYuNzktNi43OVoiLz4nKSxMLkNsclNoYXBlRmlsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMSIgZD0iTTIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMS45MlptLS4zLDIuNDksNiw1LjloLTZaTTgsMzBWNkgyMHY4aDhWMzBaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjEuNTksMTIuMzlWNi40OWwxLjA3LDFhNy4zMSw3LjMxLDAsMCwxLDAtMi44MkwyMS44OSw0SDcuODNBMS44OCwxLjg4LDAsMCwwLDYsNS45MVYzMC4wOUEx''@;'; put 'put ''Ljg4LDEuODgsMCwwLDAsNy44MywzMkgyOC4xN0ExLjg4LDEuODgsMCwwLDAsMzAsMzAuMDlWMTMuNWE3LjQ1LDcuNDUsMCwwLDEtMy45MS0xLjExWk0yOCwzMEg4VjZIMjB2OGg4WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOCwxNS40VjMwSDhWNkgy''@;'; put 'put ''MFY4LjI1bDIuMjUtMy45TDIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1''@;'; put 'put ''LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwz''@;'; put 'put ''MCwzMC4wOVYxMS45MlpNMjEsMTNWNS44NEwyOC4zLDEzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjcuMjUsMTNIMjFWNS44NGwxLjY0LDEuNmE3LjI1LDcuMjUsMCwwLDEsMC0y''@;'; put 'put ''Ljc0TDIxLjg5LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMy41QTcuNDcsNy40NywwLDAsMSwyNy4yNSwxM1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIg''@;'; put 'put ''ZD0iTTIyLjIsMTUuNGMtMiwwLTMuNy0xLjYtMy43LTMuNmMwLTAuNywwLjItMS4zLDAuNS0xLjlsMy4yLTUuNUwyMS45LDRINy44QzYuOCw0LDYsNC45LDYsNS45djI0LjJjMCwxLDAuOCwxLjksMS44LDEuOWgyMC4zYzEsMCwxLjgtMC45LDEuOC0xLjlWMTUuNEgyMi4yeiIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi45LDEuMUwyMS4xLDExYy0wLjQsMC42LTAuMiwxLjQsMC4zLDEuOGMwLjIsMC4yLDAuNSwwLjIsMC44LDAuMmgxMS41YzAuNyww''@;'; put 'put ''LDEuMy0wLjUsMS4zLTEuMmMwLTAuMy0wLjEtMC41LTAuMi0wLjhsLTUuNy05LjljLTAuNC0wLjYtMS4xLTAuOC0xLjgtMC41QzI3LjEsMC44LDI3LDEsMjYuOSwxLjF6Ii8+JyksTC5DbHJTaGFwZVBsdXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCwxN0gxOVY2YTEsMSwwLDEsMC0yLDBWMTdINmExLDEsMCwwLDAtMSwxLC45MS45MSwwLDAsMCwxLC45NEgxN1YzMGExLDEsMCwxLDAsMiwwVjE5SDMwYTEsMSwwLDAsMCwxLTFBMSwxLDAsMCwwLDMwLDE3WiIvPicpLEwuQ2xyU2hhcGVNaW51cz0o''@;'; put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYsMTdIMTBhMSwxLDAsMCwwLDAsMkgyNmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZU1pbnVzQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; put 'put ''Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwxN0gxMmEx''@;'; put 'put ''LDEsMCwwLDAsMCwySDI0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTYsMTcuNUgxMmExLjUsMS41LDAsMCwx''@;'; put 'put ''LDAtM0gyNGExLjUsMS41LDAsMCwxLDAsM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVBsdXNDaXJjbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjE3LDE3SDE5VjkuODNhMSwxLDAsMCwwLTIsMFYxN0g5LjgzYTEsMSww''@;'; put 'put ''LDAsMCwwLDJIMTd2Ny4xN2ExLDEsMCwwLDAsMiwwVjE5aDcuMTdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0w''@;'; put 'put ''LDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxOEExNiwxNiwwLDEsMSwxOCwyLDE2LDE2LDAsMCwxLDM0LDE4Wm0tOC40MS0xLjVIMTku''@;'; put 'put ''NVYxMC40MWExLjUsMS41LDAsMCwwLTMsMFYxNi41SDEwLjQxYTEuNSwxLjUsMCwwLDAsMCwzSDE2LjV2Ni4wOWExLjUsMS41LDAsMCwwLDMsMFYxOS41aDYuMDlhMS41LDEuNSwwLDAsMCwwLTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5DbHJTaGFw''@;'; put 'put ''ZUJhbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNNCwxOEExMy45MywxMy45MywwLDAsMSw3LjQzLDguODVMMjcuMTUsMjguNTdBMTQs''@;'; put 'put ''MTQsMCwwLDEsNCwxOFptMjQuNTcsOS4xNUw4Ljg1LDcuNDNBMTQsMTQsMCwwLDEsMjguNTcsMjcuMTVaIi8+JyksTC5DbHJTaGFwZVRpbWVzQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNjEs''@;'; put 'put ''MThsNC44Ni00Ljg2YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTguMiwxNi41NGwtNC44OS00Ljg5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNzgsMTgsMTIsMjIuNzJhMSwxLDAsMSwwLDEuNDEsMS40MWw0Ljc3LTQuNzcsNC43NCw0Ljc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTgsMjIuMWExLjQsMS40LDAsMCwxLTIsMmwtNi02TDEyLDI2LjEyYTEuNCwxLjQsMCwxLDEtMi0yTDE2LDE4LjA4LDkuODMsMTEu''@;'; put 'put ''ODZhMS40LDEuNCwwLDEsMSwyLTJMMTgsMTYuMWw2LjE3LTYuMTdhMS40LDEuNCwwLDEsMSwyLDJMMjAsMTguMDhaIi8+JyksTC5DbHJTaGFwZVRyYXNoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuMTQs''@;'; put 'put ''MzRIOC44NkEyLjkzLDIuOTMsMCwwLDEsNiwzMVYxMS4yM0g4VjMxYS45My45MywwLDAsMCwuODYsMUgyNy4xNEEuOTMuOTMsMCwwLDAsMjgsMzFWMTEuMjNoMlYzMUEyLjkzLDIuOTMsMCwwLDEsMjcuMTQsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC43OCw5SDVBMSwxLDAsMCwxLDUsN0gzMC43OGExLDEsMCwwLDEsMCwyWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMSIgeT0iMTMiIHdpZHRoPSIy''@;'; put 'put ''IiBoZWlnaHQ9IjE1Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMTUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTIzLDUuODZIMjEuMVY0SDE0LjlWNS44NkgxM1Y0YTIsMiwwLDAsMSwxLjktMmg2LjJBMiwyLDAsMCwxLDIzLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYsOVYz''@;'; put 'put ''MWEyLjkzLDIuOTMsMCwwLDAsMi44NiwzSDI3LjA5QTIuOTMsMi45MywwLDAsMCwzMCwzMVY5Wm05LDIwSDEzVjE0aDJabTgsMEgyMVYxNGgyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC43Myw1SDIzVjRB''@;'; put 'put ''MiwyLDAsMCwwLDIxLDJoLTYuMkEyLDIsMCwwLDAsMTMsNFY1SDVBMSwxLDAsMSwwLDUsN0gzMC43M2ExLDEsMCwwLDAsMC0yWiIvPicpLEwuQ2xyU2hhcGVUYWc9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEyLDIsMCwwLDAsMi44MywwbDku''@;'; put 'put ''OS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTIwLjYyLDMwLjUyLDYsMTUuOTFWNmg5LjkybDE0LjYsMTQuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4ybC0zLjgtMy44SDI1LjMxbDUuMjIsNS4yMi05LjksOS45TDYsMTUuOTFWNmg5LjkybDMuNDEsMy40MSwxLTEuNzgtMy0z''@;'; put 'put ''QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTAuNTIiIGN5PSIxMC41MiIgcj0iMS40MyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAs''@;'; put 'put ''MCwzMS45MywxOS4yWk0yMC42MiwzMC41Miw2LDE1LjkxVjZoOS45MmwxNC42LDE0LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5''@;'; put 'put ''LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjQ2LDE1LjczSDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSwxMC4yMmwxLjQzLTIuNDdMMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIs''@;'; put 'put ''MiwwLDAsMCwyLjgzLDBsOS45LTkuOWEyLDIsMCwwLDAsMC0yLjgzWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS40N2wtNS43Miw5LjkxYTEuMjgsMS4yOCwwLDAsMCwxLjEsMS45MUgzMy42OGExLjI4LDEuMjgsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS40N0ExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS40N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYsMTQuNmEy''@;'; put 'put ''LDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYuMzMiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVRhZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMz''@;'; put 'put ''LjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45Miww''@;'; put 'put ''LDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNMTcuMjYsMjkuNjksMy42OSwx''@;'; put 'put ''Ni4xNVY3aDkuMUwyNi4zNywyMC40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEu''@;'; put 'put ''OTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTE3LjI2LDI5LjY5LDMuNjksMTYuMTVWN2g5LjFMMjYuMzcsMjAuNDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8Y2lyY2xlIGN4PSI3LjgxIiBjeT0iMTEuMTQiIHI9IjEuMzMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMjQsMTUuNEgyMi4yM0EzLjY1''@;'; put 'put ''LDMuNjUsMCwwLDEsMjEsMTUuMTlsNS4zMyw1LjI5LTkuMTEsOS4yMUwzLjY5LDE2LjE1VjdoOS4xbDYsNS45NGEzLjY4LDMuNjgsMCwwLDEsLjEtMi42OUwxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45Miwx''@;'; put 'put ''LjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0yMC44Myw2LjgsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwxOS43OSw4LjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMz''@;'; put 'put ''LjE2LDE5LjEzLDI5LjQzLDE1LjRIMjYuNjVsNS4xLDVMMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCww''@;'; put 'put ''LDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEu''@;'; put 'put ''OTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEsMSw4LjQsMTAsMS43MywxLjcz''@;'; put 'put ''LDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIy''@;'; put 'put ''YTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDMxLjc1LDIwLjQ1LDIxLjIyLDMxLjA3YTEuOTMsMS45Myww''@;'; put 'put ''LDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjgzLDYuOCwxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDE5Ljc5LDguNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xNiwxOS4xMywyOS40MywxNS40SDI2LjY1bDUuMSw1TDIxLjIyLDMxLjA3YTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxYTEuOTMsMS45MywwLDAsMCwwLTIuNzNaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMjQsMTUuNEgyMi4yM2EzLjY3LDMuNjcsMCwwLDEtMy4zNi01LjE1TDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYx''@;'; put 'put ''QTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcsMTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwx''@;'; put 'put ''LjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4''@;'; put 'put ''LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxMLkNsclNoYXBlSGlzdG9yeT0oMCxFLmNsckljb25T''@;'; put 'put ''VkcpKCc8cGF0aCBkPSJNMTgsOS44M2ExLDEsMCwwLDAtMSwxdjguNzJsNS45LDRBMSwxLDAsMCwwLDI0LDIxLjg4bC01LTMuMzlWMTAuODNBMSwxLDAsMCwwLDE4LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTE4LDJBMTYuMDksMTYuMDksMCwwLDAsNCwxMC4yNlY1LjJhMSwxLDAsMCwwLTIsMFYxNGg4LjhhMSwxLDAsMCwwLDAtMkg1LjM1QTE0LDE0LDAsMSwxLDguNTgsMjguMzVhMSwxLDAsMCwwLTEuMzUsMS40OEExNiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz4nKSxMLkNsclNoYXBlQ2xvY2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTguNFYxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNOCwxNy45NEE5Ljk0LDkuOTQsMCwwLDEsMjMuNDEsOS41OWwuODUtMS4zNmExMS41NSwxMS41NSwwLDEsMC04LjUzLDIxTDE2LDI3LjdBMTAsMTAsMCwwLDEsOCwxNy45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZsLTUtMy4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40NCw3LjQ0LDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDYuMzhhMTEuNTYsMTEuNTYsMCwwLDAtMi4yNywyMi44OUwxNiwyNy43YTEwLDEwLDAsMSwxLDcuMzktMTguMWgwYTcuNDUsNy40NSwwLDAsMS0uNzgtMi4yM0ExMS40NSwxMS40NSwwLDAsMCwxOCw2LjM4''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjkyLDEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2bC01LTMuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc3LDE1LjM5aC0yQTE0LDE0LDAsMSwxLDIyLjA5LDQuNjFsMS0xLjc2QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDMzLjc3LDE1LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTIt''@;'; put 'put ''LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw4YTkuODEsOS44MSwwLDAsMSwyLC4yM2wuODUtMS40NmExMS41NSwxMS41NSwwLDEsMC01LjEzLDIyLjUyTDE2LDI3LjdBMTAsMTAsMCwwLDEsMTgsOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptNi4yLDIxLjE4YTEsMSwwLDAsMS0xLjM5LjI4''@;'; put 'put ''bC01LjktNFYxMC43NWExLDEsMCwwLDEsMiwwVjE4LjRsNSwzLjM5QTEsMSwwLDAsMSwyNC4yLDIzLjE4Wk0yMy44NSw4LjIzYTExLjM5LDExLjM5LDAsMSwwLTguNTQsMjAuODNMMTUsMzAuNjNhMTMsMTMsMCwxLDEsOS43LTIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxQTcuNDgsNy40OCwwLDAsMSwyMi42OCw3LjYzLDExLjI0LDExLjI0LDAsMCwwLDE4LDYuNmExMS4zOSwxMS4zOSwwLDAsMC0yLjY5LDIyLjQ3TDE1LDMwLjYzQTEzLDEzLDAsMCwxLDE4LDVhMTIuODEsMTIuODEs''@;'; put 'put ''MCwwLDEsNC41MS44Miw3LjQ2LDcuNDYsMCwwLDEsLjY4LTIuOTQsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWk0yNC4yLDIzLjE4YTEsMSwwLDAsMS0xLjM5LjI4bC01LjktNFYxMC43NWExLDEsMCwwLDEsMiwwVjE4LjRsNSwzLjM5QTEsMSwwLDAsMSwyNC4yLDIzLjE4WiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43NywxNS4zOUgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZjMC0uMDktLjA5LS4xOC0uMTMtLjI3VjE4LjRsNSwzLjM5YTEsMSwwLDAsMS0xLjExLDEuNjZsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwxLjkxLS40MUEzLjY1LDMuNjUsMCwwLDEs''@;'; put 'put ''MTksOS44OUwyMC43NCw3QTExLjE5LDExLjE5LDAsMCwwLDE4LDYuNmExMS4zOSwxMS4zOSwwLDAsMC0yLjY5LDIyLjQ3TDE1LDMwLjYzQTEzLDEzLDAsMCwxLDE4LDVhMTIuOCwxMi44LDAsMCwxLDMuNTcuNTFsMS41My0yLjY2QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDMzLjc3''@;'; put 'put ''LDE1LjM5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx''@;'; put 'put ''MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPicpLEwuQ2xyU2hhcGVBbGFybUNsb2NrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z''@;'; put 'put ''MS40NywzLjg0YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIs''@;'; put 'put ''My40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTYuNCw0LjA5QTE0''@;'; put 'put ''LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MUwyOCwyNy43OEExNCwxNCwwLDAsMCwxNi40LDQuMDlaTTE5LjU4LDI5LjlBMTIsMTIs''@;'; put 'put ''MCwxLDEsMjkuOTIsMTkuNTYsMTIsMTIsMCwwLDEsMTkuNTgsMjkuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuOTIsMjAuMzRsLTYuMDYtM1Y5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45''@;'; put 'put ''LjksMCwxLDAsLjc5LTEuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwx''@;'; put 'put ''LDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg2LDkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MmwtNi4wNi0z''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43OEExMy44OCwxMy44OCwwLDAsMCwzMS43NywxNS40aC0yYTEyLjA3LDEyLjA3LDAsMSwxLTguNjctOWwxLTEuOGExNCwx''@;'; put 'put ''NCwwLDAsMC0xNCwyMy4yN0w1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt''@;'; put 'put ''LWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEu''@;'; put 'put ''NDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43OEExMy44OCwxMy44OCwwLDAsMCwzMS43NywxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NkwxOSwx''@;'; put 'put ''My40djMuNzhMMjUsMjAuMWExLDEsMCwxLDEtLjg3LDEuOEwxNywxOC40NFY5LjY5YTEsMSwwLDAsMSwyLDBWMTBMMTksOS44OWwzLTUuMjhhMTQsMTQsMCwwLDAtMTQsMjMuMjdMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4w''@;'; put 'put ''OGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42''@;'; put 'put ''OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40''@;'; put 'put ''MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; put 'put ''Ik0yOCwyNy43OGExMy44OSwxMy44OSwwLDAsMCwzLjIxLTE0LjM5QTcuNDYsNy40NiwwLDAsMSwyMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xMS0xLjIxQTE0LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCww''@;'; put 'put ''LDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVptLTIuNTItNi4zNWExLDEsMCwwLDEtMS4zMy40N0wxNywxOC40NFY5LjY5YTEsMSwwLDAsMSwyLDB2Ny41TDI1LDIwLjFBMSwxLDAsMCwxLDI1LjQ5LDIxLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40''@;'; put 'put ''MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMTguODYsOS41YS45LjksMCwwLDAtMS44LDB2OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYybC02LjA2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwyNy43''@;'; put 'put ''OGExMy44OSwxMy44OSwwLDAsMCwzLjIxLTE0LjM5LDcsNywwLDAsMS0yLjExLjA1QTEyLDEyLDAsMSwxLDIyLjU2LDYuOSw3LjU0LDcuNTQsMCwwLDEsMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTEtMS4yMUExNCwxNCwwLDAsMCw4LjExLDI3Ljg4TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcs''@;'; put 'put ''MzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; put 'put ''eT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDcsMy44NGE1Ljc4LDUuNzgsMCwwLDAtNy4zNy0uNjMsMTYuMDgsMTYuMDgsMCwwLDEsOC4y''@;'; put 'put ''LDcuNjVBNS43Myw1LjczLDAsMCwwLDMxLjQ3LDMuODRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1LjcyLDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgs''@;'; put 'put ''MTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCw0QTE0LDE0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45''@;'; put 'put ''LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MUwyOCwyNy43OEExNCwxNCwwLDAsMCwxOCw0Wm03LjQ3LDE3LjQzYTEsMSwwLDAsMS0xLjMzLjQ3TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMHY3LjVMMjUsMjAuMUExLDEsMCwwLDEsMjUuNDksMjEuNDNa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksTC5DbHJTaGFwZUNpcmNsZUFycm93PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQs''@;'; put 'put ''MCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjA4LDguMjZsLTcuNjEsNy42MWExLDEsMCwxLDAsMS40MSwxLjQxTDE3LDEyLjE4djE1YTEsMSwwLDAsMCwyLDBWMTJsNS4yOCw1LjI4YTEs''@;'; put 'put ''MSwwLDEsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOCwxNS41N2ExLjQzLDEuNDMsMCwwLDEtMiwwTDE5LjQsMTNW''@;'; put 'put ''MjcuMTRhMS40LDEuNCwwLDAsMS0yLjgsMHYtMTRsLTQuNDMsNC40M2ExLjQsMS40LDAsMCwxLTItMkwxOC4wOCw3LjcsMjYsMTUuNTlBMS40LDEuNCwwLDAsMSwyNiwxNy41N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlQ2hpbGRBcnJv''@;'; put 'put ''dz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuODIsMTUuOGExLDEsMCwwLDAtMS40MSwwLDEsMSwwLDAsMCwwLDEuNDFMMjcuMiwyMUg5VjMuNzhhMSwxLDAsMSwwLTIsMFYyMWEyLDIsMCwwLDAsMiwySDI3LjE1bC0zLjc0LDMuNzVhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAs''@;'; put 'put ''LjcuMjksMSwxLDAsMCwwLC43MS0uMjlMMzEsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29weT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuNSw3aC0xOUExLjUsMS41LDAsMCwwLDksOC41djI0QTEuNSwxLjUs''@;'; put 'put ''MCwwLDAsMTAuNSwzNGgxOUExLjUsMS41LDAsMCwwLDMxLDMyLjVWOC41QTEuNSwxLjUsMCwwLDAsMjkuNSw3Wk0yOSwzMkgxMVY5SDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzLjVBMS41LDEuNSww''@;'; put 'put ''LDAsMCwyNC41LDJINS41QTEuNSwxLjUsMCwwLDAsNCwzLjV2MjRBMS41LDEuNSwwLDAsMCw1LjUsMjlINlY0SDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNywzLjU2QTEuNTYsMS41NiwwLDAsMCwyNS40''@;'; put 'put ''MywySDUuNTdBMS41NiwxLjU2LDAsMCwwLDQsMy41NlYyOC40NEExLjU2LDEuNTYsMCwwLDAsNS41NywzMGguNTJWNC4wN0gyN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjYiIHdpZHRoPSIyMyIgaGVpZ2h0''@;'; put 'put ''PSIyOCIgcng9IjEuNSIgcnk9IjEuNSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLEwuQ2xyU2hhcGVIZWxwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwx''@;'; put 'put ''LDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjI5LDguOTJhNy4zOCw3LjM4LDAsMCwwLTUuNzIsMi41NywxLDEsMCwwLDAtLjMyLjcxLjkyLjkyLDAsMCwwLC45''@;'; put 'put ''NS45MiwxLjA4LDEuMDgsMCwwLDAsLjcxLS4yOSw1LjcsNS43LDAsMCwxLDQuMzMtMmMyLjM2LDAsMy44MywxLjUyLDMuODMsMy40MXYuMDVjMCwyLjIxLTEuNzYsMy40NC00LjU0LDMuNjVhLjguOCwwLDAsMC0uNzYuOTJzMCwyLjMyLDAsMi43NWExLDEsMCwwLDAsMSwuOWguMTFhMSwxLDAs''@;'; put 'put ''MCwwLC45LTFWMTkuNDVjMy0uNDIsNS40My0yLDUuNDMtNS4yOHYtLjA1QzI0LjE4LDExLjEyLDIxLjg0LDguOTIsMTguMjksOC45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy43OCIgY3k9IjI2LjIi''@;'; put 'put ''IHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuMTgsMTQuMTd2LS4wNWMwLTMtMi4zNC01LjItNS44OC01LjJhNy4zOCw3LjM4LDAsMCwwLTUuNzIsMi41NywxLDEsMCwwLDAtLjMyLjcxLjkyLjky''@;'; put 'put ''LDAsMCwwLC45NS45MiwxLjA4LDEuMDgsMCwwLDAsLjcxLS4yOSw1LjcsNS43LDAsMCwxLDQuMzMtMmMyLjM2LDAsMy44MywxLjUyLDMuODMsMy40MXYuMDVjMCwyLjIxLTEuNzYsMy40NC00LjU0LDMuNjVhLjguOCwwLDAsMC0uNzYuOTJzMCwyLjMyLDAsMi43NWExLDEsMCwwLDAsMSwuOWgu''@;'; put 'put ''MTFhMSwxLDAsMCwwLC45LTFWMTkuNDVDMjEuNzUsMTksMjQuMTgsMTcuNDUsMjQuMTgsMTQuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljc4IiBjeT0iMjYuMiIgcj0i''@;'; put 'put ''MS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40Myw3LjQzLDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQ0LDcuNDQsMCww''@;'; put 'put ''LDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDksNy40OSwwLDAsMS05LjkzLTkuOTMsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWm0tMTUuMzQsMTVhMS42NSwxLjY1LDAs''@;'; put 'put ''MSwxLDEuNjUtMS42NUExLjY1LDEuNjUsMCwwLDEsMTcuNzgsMjcuODVabTEuMzctOC4wNnYxLjcyYTEuMzcsMS4zNywwLDAsMS0xLjMsMS4zNmgtLjExYTEuMzQsMS4zNCwwLDAsMS0xLjM5LTEuM2MwLS40NCwwLTIuNzYsMC0yLjc2YTEuMTksMS4xOSwwLDAsMSwxLjEyLTEuMzFjMS41Ny0u''@;'; put 'put ''MTIsNC4xOC0uNyw0LjE4LTMuMjUsMC0xLjgzLTEuNDEtMy4wNy0zLjQzLTMuMDdhNS4zMSw1LjMxLDAsMCwwLTQsMS45MiwxLjM2LDEuMzYsMCwwLDEtMi4zNS0uOSwxLjQzLDEuNDMsMCwwLDEsLjQzLTEsNy43Nyw3Ljc3LDAsMCwxLDYtMi42OWMzLjcsMCw2LjI4LDIuMyw2LjI4LDUuNkMy''@;'; put 'put ''NC41OCwxNy4xNiwyMi42MSwxOS4yLDE5LjE1LDE5Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS0uMjIsMjUuODVhMS42NSwxLjY1LDAsMSwxLDEuNjUtMS42NUExLjY1LDEuNjUsMCwwLDEsMTcuNzgsMjcu''@;'; put 'put ''ODVabTEuMzctOC4wNnYxLjcyYTEuMzcsMS4zNywwLDAsMS0xLjMsMS4zNmgtLjExYTEuMzQsMS4zNCwwLDAsMS0xLjM5LTEuM2MwLS40NCwwLTIuNzYsMC0yLjc2YTEuMTksMS4xOSwwLDAsMSwxLjEyLTEuMzFjMS41Ny0uMTIsNC4xOC0uNyw0LjE4LTMuMjUsMC0xLjgzLTEuNDEtMy4wNy0z''@;'; put 'put ''LjQzLTMuMDdhNS4zMSw1LjMxLDAsMCwwLTQsMS45MiwxLjM2LDEuMzYsMCwwLDEtMi4zNS0uOSwxLjQzLDEuNDMsMCwwLDEsLjQzLTEsNy43Nyw3Ljc3LDAsMCwxLDYtMi42OWMzLjcsMCw2LjI4LDIuMyw2LjI4LDUuNkMyNC41OCwxNy4xNiwyMi42MSwxOS4yLDE5LjE1LDE5Ljc5WiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVMb2dpbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxMmEyLDIsMCwwLDAtMiwySDI4VjMwSDEyVjIwLjJIMTBWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAs''@;'; put 'put ''MCwwLDI4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS4xMiwxOC40NmExLDEsMCwxLDAsMS40MSwxLjQxbDUuNzktNS43OUwxNi41NCw4LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTguNSwxM0g0YTEs''@;'; put 'put ''MSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMUgxOC41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsNEgxMmEyLDIsMCwwLDAtMiwydjdoOC41TDE1LjEyLDkuNzFhMSwxLDAsMCwxLDEuNDEtMS40MWw1Ljc5''@;'; put 'put ''LDUuNzktNS43OSw1Ljc5YTEsMSwwLDAsMS0xLjQxLTEuNDFMMTguNSwxNUgxMFYzMGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MTAsMTNINGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUxvZ291dD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNyw2SDIzdjkuOGgyVjZhMiwyLDAsMCwwLTItMkg3QTIsMiww''@;'; put 'put ''LDAsMCw1LDZWMzBhMiwyLDAsMCwwLDIsMkgyM2EyLDIsMCwwLDAsMi0ySDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjE2LDE3LjI4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzAuMTMsMjJIMTUuNjNhMSwx''@;'; put 'put ''LDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxaDE0LjVsLTMuMzgsMy40NmExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIzLjA3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMyw0SDdBMiwyLDAsMCwwLDUsNlYzMGEy''@;'; put 'put ''LDIsMCwwLDAsMiwySDIzYTIsMiwwLDAsMCwyLTJWMjRIMTUuNjNhMSwxLDAsMCwxLTEtMSwxLDEsMCwwLDEsMS0xSDI1VjZBMiwyLDAsMCwwLDIzLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMTYsMTcuMjhh''@;'; put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MUwzMC4xMywyMkgyNXYyaDUuMTNsLTMuMzgsMy40NmExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIzLjA3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLEwuQ2xyU2hhcGVQcmludGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; put 'put ''IGQ9Ik0yOSw5SDI3VjVIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVWMTNhMiwyLDAsMCwxLDItMkgyOWEyLDIsMCwwLDEsMiwydjlIMjkuMDhWMjRIMzNWMTNBNCw0LDAsMCwwLDI5LDlaTTI1LDlIMTFWN0gyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgxMVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVj''@;'; put 'put ''dCB4PSIyNyIgeT0iMTMuMDQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMThIOGExLDEsMCwwLDAsMCwySDlWMzJIMjdWMjBoMWExLDEsMCwwLDAsMC0yWk0yNSwzMEgx''@;'; put 'put ''MVYyMEgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMxIDE1LjQgMzEgMjIuMDkgMjkuMDggMjIuMDkgMjkuMDggMjQgMzMgMjQgMzMgMTUuNCAzMSAxNS40IiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUsMTNhMiwyLDAsMCwxLDItMkgxOC42NEEzLjY1LDMuNjUsMCwwLDEsMTksOS44OUwxOS41NCw5SDExVjdoOS43MWwxLjEzLTJIOVY5SDdh''@;'; put 'put ''NCw0LDAsMCwwLTQsNFYyNEg2LjkyVjIyLjA5SDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMz''@;'; put 'put ''LjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; put 'put ''Ik0yOCwxOEg4YTEsMSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTMuMDQi''@;'; put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDEyLjg4YTcuNDUsNy40NSwwLDAsMS0yLC41NXY4LjY2SDI5LjA4VjI0SDMzVjEzQzMzLDEzLDMz''@;'; put 'put ''LDEyLjkzLDMzLDEyLjg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxM2EyLDIsMCwwLDEsMi0ySDI0LjQyYTcuNSw3LjUsMCwwLDEtMS4yNy0ySDExVjdIMjIuNTdhNy41Miw3''@;'; put 'put ''LjUyLDAsMCwxLS4wNy0xLDcuNTQsNy41NCwwLDAsMSwuMDctMUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAi''@;'; put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSw5SDI3VjVIOVY5SDdhNCw0LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxM0E0LDQsMCww''@;'; put 'put ''LDAsMjksOVpNMjUsMjR2NkgxMVYxOUgyNVpNMjUsOUgxMVY3SDI1Wm00LDZIMjdWMTNoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU0LDlIMTFW''@;'; put 'put ''N2g5LjcxbDEuMTMtMkg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjE1LjRaTTI1LDI0djZIMTFWMTlIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4x''@;'; put 'put ''NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNs''@;'; put 'put ''ci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTIuODhhNy4zLDcuMywwLDAsMS00LC41NVYxNUgyN1YxM2guMzJhNy41Miw3LjUyLDAsMCwxLTQuMTgtNEgxMVY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjU0LDcuNTQsMCwwLDEsLjA3LTFIOVY5SDdhNCw0''@;'; put 'put ''LDAsMCwwLTQsNFYyNEg5djhIMjdWMjRoNlYxM0MzMywxMywzMywxMi45MywzMywxMi44OFpNMjUsMjR2NkgxMVYxOUgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVdvcmxkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwxOGExOS4zOCwxOS4zOCwwLDAsMC0uNDMtNGgzLjZhMTIuMywx''@;'; put 'put ''Mi4zLDAsMCwwLS42Ny0xLjZIMjUuNjlBMTkuNzIsMTkuNzIsMCwwLDAsMjIuOCw2LjUzYTEyLjMsMTIuMywwLDAsMC0yLjU1LS43NiwxNy44MywxNy44MywwLDAsMSwzLjg5LDYuNTlIMTguNzVWNS42Yy0uMjUsMC0uNTEsMC0uNzcsMHMtLjQ5LDAtLjczLDB2Ni43N0gxMS44NmExNy44Mywx''@;'; put 'put ''Ny44MywwLDAsMSwzLjktNi42LDEyLjI4LDEyLjI4LDAsMCwwLTIuNTQuNzUsMTkuNzIsMTkuNzIsMCwwLDAtMi45MSw1Ljg1SDYuOTRBMTIuMywxMi4zLDAsMCwwLDYuMjYsMTRIOS44OWExOS4zOCwxOS4zOCwwLDAsMC0uNDMsNCwxOS42NywxOS42NywwLDAsMCwuNSw0LjM3SDYuNDJBMTIu''@;'; put 'put ''MzQsMTIuMzQsMCwwLDAsNy4xNiwyNGgzLjIzYTE5LjMyLDE5LjMyLDAsMCwwLDIuNjksNS4zNiwxMi4yOCwxMi4yOCwwLDAsMCwyLjYxLjc5QTE3LjkxLDE3LjkxLDAsMCwxLDEyLDI0aDUuMjZ2Ni4zNGMuMjQsMCwuNDksMCwuNzMsMHMuNTEsMCwuNzcsMFYyNEgyNGExNy45LDE3LjksMCww''@;'; put 'put ''LDEtMy43LDYuMTUsMTIuMjgsMTIuMjgsMCwwLDAsMi42Mi0uODFBMTkuMzIsMTkuMzIsMCwwLDAsMjUuNjEsMjRoMy4yYTEyLjM0LDEyLjM0LDAsMCwwLC43NC0xLjZIMjZBMTkuNjcsMTkuNjcsMCwwLDAsMjYuNTQsMThabS05LjI5LDQuMzdIMTEuNTFhMTcuNjksMTcuNjksMCwwLDEtLjA5''@;'; put 'put ''LTguNGg1LjgzWm03LjI0LDBIMTguNzVWMTRoNS44M0ExOC4yMSwxOC4yMSwwLDAsMSwyNSwxOCwxOC4xMiwxOC4xMiwwLDAsMSwyNC40OSwyMi4zN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwx''@;'; put 'put ''NiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQ0LDcuNDQs''@;'; put 'put ''MCwwLDEtMS45MS41OCwxNC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDMsNy40MywwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0yMC4yNSw1Ljc3YTE3LjgzLDE3LjgzLDAsMCwxLDMuODksNi41OUgxOC43NVY1LjZjLS4yNSwwLS41MSwwLS43Nywwcy0uNDksMC0uNzMsMHY2Ljc3SDExLjg2YTE3LjgzLDE3LjgzLDAsMCwxLDMuOS02LjYsMTIuMjgsMTIuMjgsMCwwLDAtMi41NC43NSwxOS43Miwx''@;'; put 'put ''OS43MiwwLDAsMC0yLjkxLDUuODVINi45NEExMi4zLDEyLjMsMCwwLDAsNi4yNiwxNEg5Ljg5YTE5LjM4LDE5LjM4LDAsMCwwLS40Myw0LDE5LjY3LDE5LjY3LDAsMCwwLC41LDQuMzdINi40MkExMi4zNCwxMi4zNCwwLDAsMCw3LjE2LDI0aDMuMjNhMTkuMzIsMTkuMzIsMCwwLDAsMi42OSw1''@;'; put 'put ''LjM2LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjEuNzlBMTcuOTEsMTcuOTEsMCwwLDEsMTIsMjRoNS4yNnY2LjM0Yy4yNCwwLC40OSwwLC43Mywwcy41MSwwLC43NywwVjI0SDI0YTE3LjksMTcuOSwwLDAsMS0zLjcsNi4xNSwxMi4yOCwxMi4yOCwwLDAsMCwyLjYyLS44MUExOS4zMiwxOS4zMiww''@;'; put 'put ''LDAsMCwyNS42MSwyNGgzLjJhMTIuMzQsMTIuMzQsMCwwLDAsLjc0LTEuNkgyNmExOS42NywxOS42NywwLDAsMCwuNS00LjM3LDE5LjM4LDE5LjM4LDAsMCwwLS40My00aDMuNmMtLjA2LS4xNy0uMTItLjMzLS4xOS0uNDlhNy40NSw3LjQ1LDAsMCwxLTMuNDctMS4xMWgtLjM2YzAtLjExLS4w''@;'; put 'put ''OC0uMjEtLjExLS4zMmE3LjQ4LDcuNDgsMCwwLDEtMy4wNi01LjYyQTEyLjQxLDEyLjQxLDAsMCwwLDIwLjI1LDUuNzdabS0zLDE2LjU5SDExLjUxYTE3LjY5LDE3LjY5LDAsMCwxLS4wOS04LjRoNS44M1pNMjUsMThhMTguMTIsMTguMTIsMCwwLDEtLjU1LDQuMzdIMTguNzVWMTRoNS44M0Ex''@;'; put 'put ''OC4yMSwxOC4yMSwwLDAsMSwyNSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4wNSwxOGEyMC40NiwyMC40NiwwLDAsMCwuNjIsNC45M2g2LjQ4VjEzLjQ1SDEwLjU4QTIwLjU1LDIwLjU1LDAsMCwwLDEwLjA1LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4Ljg1LDEzLjQ1djkuNDhoNi40OEEyMC40NiwyMC40NiwwLDAsMCwyNiwxOGEyMC41NSwyMC41NSwwLDAsMC0uNTItNC41NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTMwLjIyLDI0LjcxSDI2LjZhMjEuOCwyMS44LDAsMCwxLTMsNiwxMy44NiwxMy44NiwwLDAsMS0zLC45MiwyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LTYuOTRIMTguODZ2Ny4xNWMtLjI5LDAtLjU3''@;'; put 'put ''LDAtLjg2LDBzLS41NSwwLS44MywwVjI0LjcxSDExLjIyYTIwLjIxLDIwLjIxLDAsMCwwLDQuMTgsNi45NSwxMy44NiwxMy44NiwwLDAsMS0yLjk0LS45LDIxLjgsMjEuOCwwLDAsMS0zLTYuMDVINS43OGExMy45NCwxMy45NCwwLDAsMS0uODMtMS44MWg0QTIyLjIsMjIuMiwwLDAsMSw4LjM3''@;'; put 'put ''LDE4YTIxLjg4LDIxLjg4LDAsMCwxLC40OC00LjU1SDQuNzZhMTMuODgsMTMuODgsMCwwLDEsLjc2LTEuODFIOS4zM0EyMi4yNiwyMi4yNiwwLDAsMSwxMi42MSw1YTEzLjg2LDEzLjg2LDAsMCwxLDIuODctLjg0LDIwLjEzLDIwLjEzLDAsMCwwLTQuNCw3LjQ1aDYuMDlWNGMuMjgsMCwuNTUs''@;'; put 'put ''MCwuODMsMHMuNTgsMCwuODYsMHY3LjY0aDYuMDlhMjAuMTMsMjAuMTMsMCwwLDAtNC4zOS03LjQ0QTEzLjg5LDEzLjg5LDAsMCwxLDIzLjQzLDVhMjIuMjYsMjIuMjYsMCwwLDEsMy4yNyw2LjU5aDMuNzdhMTMuODksMTMuODksMCwwLDEsLjc2LDEuODFIMjcuMTdBMjEuODgsMjEuODgsMCww''@;'; put 'put ''LDEsMjcuNjYsMThhMjIuMiwyMi4yLDAsMCwxLS41Nyw0LjkzaDRBMTMuOTQsMTMuOTQsMCwwLDEsMzAuMjIsMjQuNzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMDUsMThhMjAuNDYsMjAuNDYsMCwwLDAsLjYy''@;'; put 'put ''LDQuOTNoNi40OFYxMy40NUgxMC41OEEyMC41NSwyMC41NSwwLDAsMCwxMC4wNSwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODUsMjIuOTRoNi40OEEyMC40NiwyMC40NiwwLDAs''@;'; put 'put ''MCwyNiwxOGEyMC41NSwyMC41NSwwLDAsMC0uNTItNC41NUgxOC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOS41OHYwSDMxYTYu''@;'; put 'put ''NzcsNi43NywwLDAsMS0yLjA3LDBoLTEuOEEyMS44OCwyMS44OCwwLDAsMSwyNy42NiwxOGEyMi4yLDIyLjIsMCwwLDEtLjU3LDQuOTNoNGExMy45NCwxMy45NCwwLDAsMS0uODMsMS44MUgyNi42YTIxLjgsMjEuOCwwLDAsMS0zLDYsMTMuODYsMTMuODYsMCwwLDEtMywuOTIsMjAuMjEsMjAu''@;'; put 'put ''MjEsMCwwLDAsNC4xOC02Ljk0SDE4Ljg2djcuMTVjLS4yOSwwLS41NywwLS44Niwwcy0uNTUsMC0uODMsMFYyNC43MUgxMS4yMmEyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LDYuOTUsMTMuODYsMTMuODYsMCwwLDEtMi45NC0uOSwyMS44LDIxLjgsMCwwLDEtMy02LjA1SDUuNzhhMTMuOTQsMTMu''@;'; put 'put ''OTQsMCwwLDEtLjgzLTEuODFoNEEyMi4yLDIyLjIsMCwwLDEsOC4zNywxOGEyMS44OCwyMS44OCwwLDAsMSwuNDgtNC41NUg0Ljc2YTEzLjg4LDEzLjg4LDAsMCwxLC43Ni0xLjgxSDkuMzNBMjIuMjYsMjIuMjYsMCwwLDEsMTIuNjEsNWExMy44NiwxMy44NiwwLDAsMSwyLjg3LS44NCwyMC4x''@;'; put 'put ''MywyMC4xMywwLDAsMC00LjQsNy40NWg2LjA5VjRjLjI4LDAsLjU1LDAsLjgzLDBzLjU4LDAsLjg2LDB2Ny42NGg2LjA5bDAtLjEzYTcuNDcsNy40NywwLDAsMS0yLjM2LTQuNzYsMjAuMzcsMjAuMzcsMCwwLDAtMi0yLjU1LDE0LjIzLDE0LjIzLDAsMCwxLDIuMDYuNTYsNy40NCw3LjQ0LDAs''@;'; put 'put ''MCwxLC41Ny0xLjg2LDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksTC5DbHJTaGFwZVNsaWRlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIsMTIuMzdBNCw0LDAsMCwwLDksOC40OFY1QTEsMSwwLDEsMCw3LDVWOC40OGE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSww''@;'; put 'put ''LDEsMCwyLDBWMTYuMjZBNCw0LDAsMCwwLDEyLDEyLjM3Wm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDgsMTQuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTUuODNhNCw0LDAsMCwwLTMtMy44''@;'; put 'put ''OVY1YTEsMSwwLDEsMC0yLDB2Ni45NGE0LDQsMCwwLDAsMCw3Ljc4VjMxYTEsMSwwLDEsMCwyLDBWMTkuNzJBNCw0LDAsMCwwLDMyLDE1LjgzWm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDI4LDE3Ljg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwyNC41YTQsNCwwLDAsMC0zLTMuODlWNWExLDEsMCwxLDAtMiwwVjIwLjYxYTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYyOC4zOUE0LDQsMCwwLDAsMjIsMjQuNVptLTQsMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwy''@;'; put 'put ''Ni41M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSw5LjI5VjVBMSwxLDAsMSwwLDcsNVY5LjNhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYzMWExLDEsMCwxLDAsMiwwVjE1LjQzQTMuMjIsMy4yMiwwLDAsMCw5''@;'; put 'put ''LDkuMjlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMjEuNDVWNWExLDEsMCwxLDAtMiwwVjIxLjQ3YTMuMjIsMy4yMiwwLDAsMCwwLDYuMTFWMzFhMSwxLDAsMSwwLDIsMFYyNy42YTMuMjIsMy4yMiwwLDAsMCww''@;'; put 'put ''LTYuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMTIuNzVWNWExLDEsMCwxLDAtMiwwdjcuNzZhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYzMWExLDEsMCwxLDAsMiwwVjE4Ljg5YTMuMjIsMy4yMiwwLDAsMCww''@;'; put 'put ''LTYuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+JyksTC5DbHJTaGFwZUNsaXBib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjkuMjksNUgyN1Y3aDJWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNyww''@;'; put 'put ''LDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWNi42OUExLjcsMS43LDAsMCwwLDI5LjI5LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiw3LjMzQTIuMzQsMi4zNCwwLDAsMCwy''@;'; put 'put ''My42Nyw1SDIxLjg3YTQsNCwwLDAsMC03Ljc1LDBIMTIuMzNBMi4zNCwyLjM0LDAsMCwwLDEwLDcuMzNWMTFIMjZaTTI0LDlIMTJWNy4zM0EuMzMuMzMsMCwwLDEsMTIuMzMsN0gxNlY2YTIsMiwwLDAsMSw0LDBWN2gzLjY3YS4zMy4zMywwLDAsMSwuMzMuMzNaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE4IiB3''@;'; put 'put ''aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIg''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE0IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE4IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; put 'put ''Z2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIyIiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI2IiB3aWR0aD0i''@;'; put 'put ''MTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjEzLDlIMTJWNy4zM0EuMzMuMzMsMCwwLDEsMTIuMzMsN0gxNlY2YTIsMiwwLDAsMSw0LDBWN2gyLjU3YTcu''@;'; put 'put ''NTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFoLS43YTQsNCwwLDAsMC03Ljc1LDBIMTIuMzNBMi4zNCwyLjM0LDAsMCwwLDEwLDcuMzNWMTFIMjQuNDJBNy41LDcuNSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy41Miw3LjUyLDAsMCwxLTEtLjA3VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMy''@;'; put 'put ''LjMxVjEzLjQzQTcuNTIsNy41MiwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjI5LDVIMjIuMTdhNC40NSw0LjQ1LDAsMCwwLTQuMTEtM0E0LjQ2LDQuNDYsMCwwLDAsMTQsNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43''@;'; put 'put ''LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWNi42OUExLjcsMS43LDAsMCwwLDI5LjI5LDVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMxYTIuMzEsMi4zMSwwLDEsMSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAsMSwxLDF2MkgxMS4zMVpNMjUsMjhI''@;'; put 'put ''MTFWMjZIMjVabTAtNEgxMVYyMkgyNVptMC00SDExVjE4SDI1Wm0wLTRIMTFWMTRIMjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDExLjMxVjhhMSwxLDAs''@;'; put 'put ''MCwxLDEtMWgzLjQ0VjYuMzFhMi4zMSwyLjMxLDAsMSwxLDQuNjMsMFY3aDIuMTlhNy41NCw3LjU0LDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjRhNC40NSw0LjQ1LDAsMCwwLTQuMTEtM0E0LjQ2LDQuNDYsMCwwLDAsMTQsNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlW''@;'; put 'put ''MzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaTTI1LDI4SDExVjI2SDI1Wm0wLTRIMTFWMjJIMjVabTAtNEgxMVYxOEgyNVptMC00SDExVjE0SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBl''@;'; put 'put ''RmlyZXdhbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk00LDhIMzJ2NS4wOEgyMy44di00SDIydjRIMTR2LTRIMTJ2NEg0Wm0wLDdIMzJ2Ni4wOEgyOC45''@;'; put 'put ''MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjUuNjhIMjguOTJWMTYuMjdIMjd2NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFYxNUgyMC41OGEzLjU4LDMuNTgsMCwwLDEtMS43Ni0xLjkySDE0di00SDEydjRINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwy''@;'; put 'put ''LDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4Wk0yMy44LDI4VjI0LjI3SDIyLjJWMjhIMTRWMjQuMjdoLTEuNlYyOEg0VjIzSDMydjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS0yLjQ1LS40MkgyMy44VjEwLjIyYTcuNSw3LjUsMCwwLDEtLjYzLTEuMTRIMjJ2NEgxNHYtNEgxMnY0SDRWOEgyMi43OGE3LjQ5''@;'; put 'put ''LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzAsMTMuNVpNNCwxNUgzMnY2LjA4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0''@;'; put 'put ''LjgxSDRaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIs''@;'; put 'put ''NlpNMTQsMjhIMTJWMjRoMlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWm0wLThINFYxMmg4VjhoMnY0aDhWOGgydjRoOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRINFYxMmg4VjhoMnY0aDQuNTdBMy42NywzLjY3LDAsMCwxLDE5LDkuODlMMjEuMjksNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4Wk0xNCwyOEgxMlYyNGgyWm0x''@;'; put 'put ''MCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4''@;'; put 'put ''LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjQsMTAuNDlWMTJoMS41MUE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYxNEg0VjEyaDhWOGgy''@;'; put 'put ''djRoOFY4aC43OGE3LjQ5LDcuNDksMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYx''@;'; put 'put ''NmgydjRoOFYxNmgydjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0z''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZUxpc3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iMTUiIHk9IjgiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; put 'put ''eD0iMTUiIHk9IjEyIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjAiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI0IiB3aWR0aD0iOSIgaGVpZ2h0''@;'; put 'put ''PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxy''@;'; put 'put ''ZWN0IHg9IjExIiB5PSIxMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTYiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjIwIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyNCIgd2lkdGg9IjIiIGhl''@;'; put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWm0wLDMwSDhWNEgyOFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxMiIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE2IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjAiIHdpZHRoPSI5IiBoZWlnaHQ9''@;'; put 'put ''IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMiIg''@;'; put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxy''@;'; put 'put ''ZWN0IHg9IjExIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDh2Mmg4LjY2YTcuNDUsNy40NSwwLDAsMS0uODktMloiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJWMzJIOFY0SDIyLjc4YTcuNDUsNy40NSwwLDAsMSwuODgtMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIs''@;'; put 'put ''MCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJaTTEzLDI2SDExVjI0''@;'; put 'put ''aDJabTAtNEgxMVYyMGgyWm0wLTRIMTFWMTZoMlptMC00SDExVjEyaDJabTAtNEgxMVY4aDJaTTI1LDI2SDE1VjI0SDI1Wm0wLTRIMTVWMjBIMjVabTAtNEgxNVYxNkgyNVptMC00SDE1VjEySDI1Wm0wLTRIMTVWOEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuNjYsMTBIMTVWOGg3Ljc4YTcuNDIsNy40MiwwLDAsMSwuODktNkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwWk0xMywyNkgxMVYyNGgyWm0w''@;'; put 'put ''LTRIMTFWMjBoMlptMC00SDExVjE2aDJabTAtNEgxMVYxMmgyWm0wLTRIMTFWOGgyWk0yNSwyNkgxNVYyNEgyNVptMC00SDE1VjIwSDI1Wm0wLTRIMTVWMTZIMjVabTAtNEgxNVYxMkgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAv''@;'; put 'put ''PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFwZVJlZG89KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LDQu''@;'; put 'put ''MjJhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjU2LDUuNDloLTEzQTExLDExLDAsMCwwLDEwLjA3LDMyLDEsMSwwLDAsMCwxMSwzMC4xOGE5LDksMCwwLDEtNS04LDkuMDgsOS4wOCwwLDAsMSw5LjEzLTloMTNsLTUuNTQsNS40OEExLDEsMCwwLDAsMjQsMjBsOC03LjkxWiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVVuZG89KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjg3LDExLjE0aC0xM2w1LjU2LTUuNDlBMSwxLDAsMCwwLDEyLDQuMjJMNCwxMi4xMywxMiwyMGExLDEsMCwwLDAsMS40MS0xLjQyTDcuODYsMTMu''@;'; put 'put ''MTRoMTNhOS4wOCw5LjA4LDAsMCwxLDkuMTMsOSw5LDksMCwwLDEtNSw4QTEsMSwwLDAsMCwyNS45MywzMmExMSwxMSwwLDAsMC01LjA2LTIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVNjcm9sbD0oMCxFLmNsckljb25T''@;'; put 'put ''VkcpKCc8cGF0aCBkPSJNMzQsMTEuMTJWNi41OGE0LjUsNC41LDAsMCwwLTQuNS00LjVoLTE2QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjEz''@;'; put 'put ''LjEzaC0yVjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NFptLTQuNS03QTIuNSwyLjUsMCwwLDEsMzIsNi41OFY5LjEySDE4VjYuNThhNC40OCw0LjQ4LDAsMCwwLS43Ni0yLjVaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4wOCwxNS40VjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGgyLjYx''@;'; put 'put ''QTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5bC40NC0uNzZIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNUgyMi40bDEuMTUtMkgxMy41QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUu''@;'; put 'put ''NThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz''@;'; put 'put ''My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS0xLjkyLS4yNnYxNi4zYTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGg4LjU0YTcuNSw3LjUsMCwwLDEtMS4zNS0ySDE4VjYuNThhNC40OCw0LjQ4''@;'; put 'put ''LDAsMCwwLS43Ni0yLjVoNS41MmE3LjQ0LDcuNDQsMCwwLDEsLjg2LTJIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OHYyM2EyLjUsMi41LDAsMSwxLTUsMFYyNkg3LjE5VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNXYtMTZaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''YmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTEuMTJWNi41OGE0LjUsNC41LDAsMCwwLTQuNS00LjVoLTE2QTQuNSw0LjUsMCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxMy4xM2gtMlYyOS41''@;'; put 'put ''NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjA4LDE1LjRWMjkuNTRh''@;'; put 'put ''Mi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDIuNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsNC41MS03LjhIMTMuNUE0LjUsNC41LDAsMCwwLDksNi41OFYyNEgydjUuNUE0LjUsNC41LDAsMCww''@;'; put 'put ''LDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu''@;'; put 'put ''MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS0xLjkyLS4yNnYxNi4zYTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NGg4LjU0YTcuNDYsNy40NiwwLDAsMS0uOTItOUgxMy41QTQuNSw0LjUs''@;'; put 'put ''MCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNXYtMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; put 'put ''eT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0u''@;'; put 'put ''NzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSww''@;'; put 'put ''LDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAsMCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAs''@;'; put 'put ''MC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIxLDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcu''@;'; put 'put ''MjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEuMTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYs''@;'; put 'put ''MS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAs''@;'; put 'put ''MS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwxOCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQx''@;'; put 'put ''YTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEsMCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEu''@;'; put 'put ''ODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAsNC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwy''@;'; put 'put ''NC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNDksMzFINlY1SDI2djcuODlh''@;'; put 'put ''My4yLDMuMiwwLDAsMSwyLDEuNzJWNWEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNC4xMiwyMC4zNWE0LDQsMCwxLDAsNC4wOCw0QTQuMDYsNC4wNiwwLDAsMCwyNC4xMiwyMC4zNVptMCw2LjQ2YTIuNDMsMi40MywwLDEsMSwyLjQ4LTIuNDNBMi40NiwyLjQ2LDAsMCwxLDI0LjEyLDI2LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzds''@;'; put 'put ''LTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43NmE3Ljg0LDcuODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0x''@;'; put 'put ''LjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGExLjE2LDEuMTYsMCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3''@;'; put 'put ''YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4xNiwwLDAsMCwuMjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiww''@;'; put 'put ''LDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4yOWwxLjUuNzlhMS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4x''@;'; put 'put ''MVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwxLjE5bC0uMjEuMzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwt''@;'; put 'put ''LjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwxLDE4LjE3LDI2TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCww''@;'; put 'put ''LDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEyQTYuMjEsNi4yMSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjQ5LDMxSDZWNUgyMS44N0wyMywzSDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYs''@;'; put 'put ''MS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcx''@;'; put 'put ''LTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjktLjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCww''@;'; put 'put ''LDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEuODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAt''@;'; put 'put ''LjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMsMS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIx''@;'; put 'put ''bDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEu''@;'; put 'put ''MTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQuMjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEt''@;'; put 'put ''MS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0yLjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1''@;'; put 'put ''Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0xLjg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5''@;'; put 'put ''LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4w''@;'; put 'put ''Niw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMTQuNDksMzFINlY1SDIzLjA4YTYuOTQsNi45NCwwLDAsMSwuNi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE2LjIzbC0xLjEtMS4wOEEzLjExLDMuMTEsMCwwLDEsMTQuNDksMzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuMzNWMTIuNzFhNyw3LDAsMCwxLTItMXYxLjg4QTMuMiwzLjIsMCwwLDEsMjgsMTUuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDI2djguNzhhMi4z''@;'; put 'put ''NywyLjM3LDAsMCwxLDIsMS41N1Y1YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1''@;'; put 'put ''aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFhLjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4z''@;'; put 'put ''Ny4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNywwLDAsMCwuMzUuMjZoMmEuMzcuMzcsMCww''@;'; put 'put ''LDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcsMCwwLDAsLjI2LS4zNVYyMy44M0EuMzcu''@;'; put 'put ''MzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwyMy40N2wt''@;'; put 'put ''Mi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCwwLDAtLjM2LS4yNWgtMmEuMzcuMzcsMCwwLDAtLjM1''@;'; put 'put ''LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIs''@;'; put 'put ''LjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYxLTJhNyw3''@;'; put 'put ''LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0LDIzLjQ3''@;'; put 'put ''Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDIx''@;'; put 'put ''Ljg3TDIzLDNINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTcuMTZsLTEtMUEyLjM4LDIuMzgsMCwwLDEsMTUuNTUsMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2''@;'; put 'put ''Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41NCwy''@;'; put 'put ''My40N2wtMi0uNjFhNy4wNiw3LjA2LDAsMCwwLS41OC0xLjQxbDEtMS44NmEuMzcuMzcsMCwwLDAtLjA3LS40NEwzMC40MSwxNy43YS4zNy4zNywwLDAsMC0uNDQtLjA3bC0xLjg1LDFBNyw3LDAsMCwwLDI2LjY5LDE4bC0uNjEtMmEuMzcuMzcsMCwwLDAtLjM2LS4yNWgtMmEuMzcuMzcsMCww''@;'; put 'put ''LDAtLjM1LjI2bC0uNjEsMmE3LDcsMCwwLDAtMS40NC42MWwtMS44Mi0xYS4zNy4zNywwLDAsMC0uNDQuMDdsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MmE3LDcsMCwwLDAtLjYxLDEuNDRsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2''@;'; put 'put ''LjM1bDIsLjYxYTcsNywwLDAsMCwuNjEsMS40MWwtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NEwxOSwzMmEuMzcuMzcsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA2LDcuMDYsMCwwLDAsMS4zOS41N2wuNjEsMmEuMzcuMzcsMCwwLDAsLjM1LjI2aDJhLjM3LjM3LDAsMCwwLC4zNS0uMjZsLjYx''@;'; put 'put ''LTJhNyw3LDAsMCwwLDEuMzgtLjU3bDEuODksMWEuMzcuMzcsMCwwLDAsLjQ0LS4wN2wxLjQ1LTEuNDVhLjM3LjM3LDAsMCwwLC4wNy0uNDRsLTEtMS44OGE3LjA2LDcuMDYsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM3LjM3LDAsMCwwLC4yNi0uMzVWMjMuODNBLjM3LjM3LDAsMCwwLDMzLjU0''@;'; put 'put ''LDIzLjQ3Wk0yNC43LDI4LjE5QTMuMzMsMy4zMywwLDEsMSwyOCwyNC44NiwzLjMzLDMuMzMsMCwwLDEsMjQuNywyOC4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjU1LDMxSDZW''@;'; put 'put ''NUgyMy4wOGE2Ljk0LDYuOTQsMCwwLDEsLjYtMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTI4LDE1LjM2VjEyLjcxYTcsNywwLDAsMS0yLTF2MkEyLjM3LDIuMzcsMCwwLDEsMjgsMTUuMzZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgLz4nKSxMLkNsclNoYXBlVHdvV2F5QXJyb3dzPSgwLEUuY2xy''@;'; put 'put ''SWNvblNWRykoJzxwYXRoIGQ9Ik0yMy40MywxNi44M0ExLDEsMCwwLDAsMjIsMTguMjRMMjUuNzIsMjJINy44M2ExLDEsMCwwLDAsMCwySDI1LjcyTDIyLDI3LjdhMSwxLDAsMSwwLDEuNDIsMS40MUwyOS41MywyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI0LDE4LjQ1YTEsMSwwLDAsMCwuNzEtMS43MUwxMC4yNCwxM0gyOC4xMmExLDEsMCwwLDAsMC0ySDEwLjI0bDMuNzEtMy43M2ExLDEsMCwwLDAtMS40Mi0xLjQxTDYuNDIsMTJsNi4xMSw2LjE0QTEsMSwwLDAsMCwxMy4yNCwxOC40NVoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVTd2l0Y2g9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNzEsMTRIMjAuOTJWMTJINS43MUw5LjQyLDguMjdBMSwxLDAsMSwwLDgsNi44NkwxLjg5LDEzLDgsMTkuMTRhMSwxLDAs''@;'; put 'put ''MSwwLDEuNDItMS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTIiIHdpZHRoPSIzIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHJlY3QgeD0iMjgiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy45MiwxNy44NmExLDEsMCwwLDAtMS40MiwxLjQxTDMwLjIxLDIzSDE1djJI''@;'; put 'put ''MzAuMjFMMjYuNSwyOC43NGExLDEsMCwxLDAsMS40MiwxLjRMMzQsMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEwIiB5PSIyMyIgd2lkdGg9IjMiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVRvb2xzPSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; put 'put ''IGQ9Ik0yMCwxNEgxNmExLDEsMCwwLDAtMSwxdjZhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTVBMSwxLDAsMCwwLDIwLDE0Wm0tLjQsNi42SDE2LjRWMTUuNGgzLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0zMy43MSwxMi4zOCwyOS42Miw4LjI5QTEsMSwwLDAsMCwyOC45Miw4aC01VjYuMDVBMiwyLDAsMCwwLDIyLDRIMTMuODRBMS45MiwxLjkyLDAsMCwwLDEyLDYuMDVWOEg3LjA4YTEsMSwwLDAsMC0uNzEuMjlMMi4yOSwxMi4zOGExLDEsMCwwLDAtLjI5LjcxVjI4YTIsMiwwLDAs''@;'; put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMy4wOEExLDEsMCwwLDAsMzMuNzEsMTIuMzhaTTE0LDZoOFY4SDE0Wk0zMiwxN0gyMnYxLjkzSDMyVjI4SDRWMTguOTNIMTRWMTdINFYxMy41TDcuNSwxMGgyMUwzMiwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNi40IiB5PSIxNS40IiB3aWR0aD0iMy4yIiBoZWlnaHQ9IjUuMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSwyMWExLDEsMCwwLDEtMSwxSDE2YTEsMSwwLDAs''@;'; put 'put ''MS0xLTFWMTlIMnY5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOUgyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzEsMTIuMzgsMjkuNjIsOC4yOUExLDEsMCwwLDAsMjguOTIsOGgtNVY2LjA1''@;'; put 'put ''QTIsMiwwLDAsMCwyMiw0SDEzLjg0QTEuOTIsMS45MiwwLDAsMCwxMiw2LjA1VjhINy4wOGExLDEsMCwwLDAtLjcxLjI5TDIuMjksMTIuMzhhMSwxLDAsMCwwLS4yOS43MVYxN0gxNVYxNWExLDEsMCwwLDEsMS0xaDRhMSwxLDAsMCwxLDEsMXYySDM0VjEzLjA4QTEsMSwwLDAsMCwzMy43MSwx''@;'; put 'put ''Mi4zOFpNMjIsOEgxNFY2aDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVXaW5kb3dDbG9zZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTkuNDEsMThsNy4yOS03LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksMTAu''@;'; put 'put ''NzEsOS4yOWExLDEsMCwwLDAtMS40MSwxLjQxTDE2LjU5LDE4LDkuMjksMjUuMjlhMSwxLDAsMSwwLDEuNDEsMS40MUwxOCwxOS40MWw3LjI5LDcuMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hh''@;'; put 'put ''cGVXaW5kb3dNYXg9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3Ljg5LDloLTIwYTIsMiwwLDAsMC0yLDJWMjVhMiwyLDAsMCwwLDIsMmgyMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwyNy44OSw5Wm0tMjAsMTZWMTFoMjBWMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlV2luZG93TWluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNywyN0g5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xy''@;'; put 'put ''U2hhcGVXaW5kb3dSZXN0b3JlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw4SDE0YTIsMiwwLDAsMC0yLDJ2MmgyVjEwSDI4VjIwSDI2djJoMmEyLDIsMCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwyOCw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMTRIOGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMjJhMiwyLDAsMCwwLDItMlYxNkEyLDIsMCwwLDAsMjIsMTRaTTgsMjZWMTZIMjJWMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4n''@;'; put 'put ''KSxMLkNsclNoYXBlWm9vbUluPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNiw0QTEyLDEyLDAsMSwwLDI4LDE2LDEyLDEyLDAsMCwwLDE2LDRabTAsMjEuOTFBMTAsMTAsMCwxLDEsMjYsMTYsMTAsMTAsMCwwLDEsMTYsMjUuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS43MSwyOS42OWwtNS4xNy01LjE3QTEzLjY4LDEzLjY4LDAsMCwxLDI1LjE1LDI2bDUuMTUsNS4xNWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsMTVIMTdWMTFhMSwxLDAsMCwwLTIsMHY0SDExYTEsMSwwLDAsMCwwLDJoNHY0YTEsMSwwLDAsMCwyLDBWMTdoNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksTC5DbHJT''@;'; put 'put ''aGFwZVpvb21PdXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LDRBMTIsMTIsMCwxLDAsMjgsMTYsMTIsMTIsMCwwLDAsMTYsNFptMCwyMS45MUExMCwxMCwwLDEsMSwyNiwxNiwxMCwxMCwwLDAsMSwxNiwyNS45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjcxLDI5LjY5bC01LjE3LTUuMTdBMTMuNjgsMTMuNjgsMCwwLDEsMjUuMTUsMjZsNS4xNSw1LjE1YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0yMCwxNUgxMmExLDEsMCwwLDAsMCwyaDhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVLZXk9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEi''@;'; put 'put ''IHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0iMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwx''@;'; put 'put ''Ni44bC42My0uNjNBNSw1LDAsMCwwLDI0LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVpNMzIsMzJI''@;'; put 'put ''MjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4yNCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwbDUuMjYsNS4yNmEzLDMsMCwwLDEsMCw0LjI0bC0yLDJMMzIsMjguMjhaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1''@;'; put 'put ''KSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzUsMTYuOGwuNjMtLjYzYTUsNSwwLDAsMCwuNjMtLjc3SDIyLjIzbC0uMjksMEwyMC41MiwxNi44LDMyLDI4LjI4VjMySDI4''@;'; put 'put ''Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0zLTNMMTQsMjMuMzFhMywzLDAsMCwxLTQuMjQsMEw0LjUsMThhMywzLDAsMCwxLDAtNC4yNGw4LjU2LTguNTZhMywzLDAsMCwxLDQuMjQsMEwyMC4xLDguMDZsMS0xLjc5TDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5''@;'; put 'put ''LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90''@;'; put 'put ''YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwxNi44bC42My0uNjNBNSw1LDAsMCwwLDI0LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwx''@;'; put 'put ''Mi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40LS40TDE4LDI2LjQ4aDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4y''@;'; put 'put ''NCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwbDUuMjYsNS4yNmEzLDMsMCwwLDEsMCw0LjI0bC0yLDJMMzIsMjguMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZBNSw1LDAsMCwwLDI0''@;'; put 'put ''LDkuMUwxOC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEsMCww''@;'; put 'put ''LDEtMS40MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZhNSw1LDAsMCwwLC42My0uNzdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlsMi4wOS0zLjYyTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwz''@;'; put 'put ''LjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRoNlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFM''@;'; put 'put ''MTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM4LDE2Ljc3bC42LS42QTUsNSwwLDAsMCwyNCw5LjFMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlh''@;'; put 'put ''NSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUuNjRhMSwxLDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEs''@;'; put 'put ''MSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjguMjhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh''@;'; put 'put ''ZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVMaWJyYXJ5PSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; put 'put ''IGQ9Ik0zMy40OCwyOS42MywyNi43NCwxMS44MmEyLDIsMCwwLDAtMi41OC0xLjE2TDIxLDExLjg1VjguOTJBMS45MiwxLjkyLDAsMCwwLDE5LjA4LDdIMTRWNC45MkExLjkyLDEuOTIsMCwwLDAsMTIuMDgsM0g1QTIsMiwwLDAsMCwzLDVWMzJhMSwxLDAsMCwwLDEsMUgyMGExLDEsMCwwLDAs''@;'; put 'put ''MS0xVjE5LjI3bDUsMTMuMjFhMSwxLDAsMCwwLDEuMjkuNThsNS42MS0yLjE0YTEsMSwwLDAsMCwuNTgtMS4yOVpNMTIsOC44M1YzMUg1VjVoN1pNMTksMzFIMTRWOWg1Wm04LjUxLS4yNUwyMS4xMywxMy45MmwzLjc0LTEuNDIsNi4zOSwxNi44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjc1LDNINS4yNUExLjE1LDEuMTUsMCwwLDAsNCw0VjMzSDE0VjRBMS4xNSwxLjE1LDAsMCwwLDEyLjc1LDNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTMzLjc3LDMxLjA5bC02Ljk0LTE4LjNhMSwxLDAsMCwwLTEuMjktLjU4TDIyLDEzLjU5VjlhMSwxLDAsMCwwLTEtMUgxNlYzM2g2VjE0LjY5TDI4LjkzLDMzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQm9sdD0o''@;'; put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTAuNTIsMzRoLTNhMSwxLDAsMCwxLS44OC0xLjQ0TDEyLjU1LDIxSDZhMSwxLDAsMCwxLS44NS0xLjU0bDEwLjY4LTE3QTEsMSwwLDAsMSwxNi42NCwySDMwLjA3YTEsMSwwLDAsMSwuNzcsMS42OUwyMS43OCwxNGg1LjM4YTEsMSwwLDAsMSwu''@;'; put 'put ''NzMsMS42NmwtMTYuNjMsMThBMSwxLDAsMCwxLDEwLjUyLDM0Wk05LjE4LDMyaC45MUwyNC44NiwxNkgxOS41OWExLDEsMCwwLDEtLjc3LTEuNjlMMjcuODgsNEgxNy4xOUw3Ljc3LDE5SDE0LjJhMSwxLDAsMCwxLC44OCwxLjQ0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOCwyLjI5QS40OS40OSwwLDAsMCwzMC4zNSwySDE2LjQyYS41LjUsMCwwLDAtLjQyLjIzbC0xMC43MSwxN0EuNDkuNDksMCwwLDAsNS43LDIwaDcuNjdMNi42LDMzLjI1YS41Mi41MiwwLDAsMCwuNDYuNzVoM2EuNS41LDAs''@;'; put 'put ''MCwwLC4zNy0uMTZMMjgsMTQuODVhLjUuNSwwLDAsMC0uMzctLjg1SDIwLjg5TDMwLjcyLDIuODJBLjQ5LjQ5LDAsMCwwLDMwLjgsMi4yOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZVdyZW5jaD0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; put 'put ''aCBkPSJNMzMuMTgsMjYuMTEsMjAuMzUsMTMuMjhBOS4yOCw5LjI4LDAsMCwwLDcuNTQsMi43OWwtMS4zNC41OSw1LjM4LDUuMzhMOC43NiwxMS41OSwzLjM4LDYuMjEsMi43OSw3LjU0QTkuMjcsOS4yNywwLDAsMCwxMy4yOCwyMC4zNUwyNi4xMSwzMy4xOGEyLDIsMCwwLDAsMi44MywwbDQu''@;'; put 'put ''MjQtNC4yNEEyLDIsMCwwLDAsMzMuMTgsMjYuMTFabS01LjY2LDUuNjZMMTMuODgsMTguMTJsLS41Ny4xNmE3LjI3LDcuMjcsMCwwLDEtOS4zMS03LDcuMiw3LjIsMCwwLDEsLjE1LTEuNDhsNC42MSw0LjYxLDUuNjYtNS42Nkw5LjgxLDQuMTVhNy4yNyw3LjI3LDAsMCwxLDguNDcsOS4xNmwt''@;'; put 'put ''LjE2LjU3TDMxLjc3LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNy4xMyIgY3k9IjI3LjA5IiByPSIxLjMiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMS4yMSAyNy4xMikgcm90YXRlKC00NSki''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjczLDI3LjcyLDE5LjY3LDEzLjY2YTguNzksOC43OSwwLDAsMC0xMi0xMC41TDEzLDguNTMsOC41MywxMywzLjE2LDcuNjdhOC43OSw4Ljc5LDAsMCwwLDEwLjUs''@;'; put 'put ''MTJMMjcuNzIsMzMuNzNhMS4wNywxLjA3LDAsMCwwLDEuNSwwbDQuNTEtNC41MUExLjA3LDEuMDcsMCwwLDAsMzMuNzMsMjcuNzJaTTI5LDI5YTEuMzgsMS4zOCwwLDEsMSwwLTJBMS4zOCwxLjM4LDAsMCwxLDI5LDI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIg''@;'; put 'put ''Lz4nKSxMLkNsclNoYXBlQnVsbHNleWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJhMTUuOTIsMTUuOTIsMCwwLDAtNC4yNS41OWwuNzcsMS44NmExNC4wNywxNC4wNywwLDEsMS0xMCwxMGwtMS44Ni0uNzhBMTYsMTYsMCwxLDAsMTgsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcuNDUsMTUuN2ExMC44MSwxMC44MSwwLDEsMCw4LjMtOC4yNkwxNi4zNyw5QTkuMjQsOS4yNCwwLDEsMSw5LDE2LjMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjIuMDlhNC4wOCw0LjA4LDAsMCwxLTQtMy42OGwtMS42My0uNjhjMCwuMDksMCwuMTgsMCwuMjdBNS42OSw1LjY5LDAsMSwwLDE4LDEyLjMxaC0uMjRMMTguNDMsMTRBNC4wNyw0LjA3LDAsMCwxLDE4LDIyLjA5WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC4yLDEzLjM0YS41LjUsMCwwLDAsLjM1LjE1SDEyLjJsNS4zNyw1LjM3QTEsMSwwLDAsMCwxOSwxNy40NEwxMy41MywxMlY4LjUxYS41LjUsMCwwLDAtLjE1LS4zNUw3Ljc5LDIuNTdhLjUuNSww''@;'; put 'put ''LDAsMC0uODUuMzV2NEgzYS41LjUsMCwwLDAtLjM1Ljg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTguODVhMSwxLDAsMCwxLTEuNDEsMGwtMy0zQTQsNCwwLDAsMCwxMy45MSwxOCw0LjA5LDQuMDks''@;'; put 'put ''MCwxLDAsMTgsMTMuOTFhNCw0LDAsMCwwLTIsLjU1bDMsM0ExLDEsMCwwLDEsMTksMTguODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJhMTUuOTIsMTUuOTIsMCwwLDAtNC4yNS41OWwxLjYsMy44OUExMS44''@;'; put 'put ''OSwxMS44OSwwLDEsMSw2LjQ5LDE1LjNMMi42MSwxMy42OEExNiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE1Ljk0QTEwLjE3LDEwLjE3LDAsMSwwLDE2LDhsMS42OSw0LjExLjMxLDBB''@;'; put 'put ''NS44OCw1Ljg4LDAsMSwxLDEyLjEyLDE4YzAtLjEyLDAtLjIzLDAtLjM1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjIsMTMuMzRhLjUuNSwwLDAsMCwuMzUuMTVIMTIuMmwyLjM1LDIuMzVBNC4wOSw0LjA5LDAs''@;'; put 'put ''MCwxLDE2LDE0LjQ2TDEzLjUzLDEyVjguNTFhLjUuNSwwLDAsMC0uMTUtLjM1TDcuNzksMi41N2EuNS41LDAsMCwwLS44NS4zNXY0SDNhLjUuNSwwLDAsMC0uMzUuODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLEwuQ2xyU2hhcGVUYXJnZXQ9KDAsRS5j''@;'; put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTE4LDcuMkExMC44LDEwLjgsMCwxLDAsMjguOCwxOCwxMC44MSwxMC44MSwwLDAsMCwxOCw3LjJabTAsMjBBOS4yLDkuMiwwLDEsMSwyNy4yLDE4LDkuMjEsOS4yMSwwLDAsMSwxOCwyNy4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTIuMzFBNS42OSw1LjY5LDAsMSwwLDIzLjY5LDE4LDUuNjksNS42OSwwLDAsMCwxOCwxMi4zMVptMCw5Ljc3QTQuMDksNC4wOSwwLDEsMSwyMi4wOSwxOCw0LjA5LDQuMDksMCwwLDEsMTgsMjIuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjQuMDkiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNy44M0ExMC4xNywxMC4xNywwLDEsMCwyOC4x''@;'; put 'put ''NywxOCwxMC4xOCwxMC4xOCwwLDAsMCwxOCw3LjgzWm0wLDE2QTUuODgsNS44OCwwLDEsMSwyMy44OCwxOCw1Ljg4LDUuODgsMCwwLDEsMTgsMjMuODhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYs''@;'; put 'put ''MCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwyNy44M0ExMS44MywxMS44MywwLDEsMSwyOS44MywxOCwxMS44NSwxMS44NSwwLDAsMSwxOCwyOS44M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUZsYW1lPSgwLEUuY2xySWNv''@;'; put 'put ''blNWRykoJzxwYXRoIGQ9Ik0zMS4zLDE2LjY2Yy0xLjE5LTIuMDktNy45NC0xNC4xNS03Ljk0LTE0LjE1YTEsMSwwLDAsMC0xLjc1LDBsLTYsMTAuNjQtMy01LjI4YTEsMSwwLDAsMC0xLjc1LDBTNS40LDE3Ljc4LDQuNDIsMTkuNUE5LjMsOS4zLDAsMCwwLDMsMjQuNjFDMywyOS43Miw1Ljg2''@;'; put 'put ''LDM0LDExLjY3LDM0SDIyLjQ4QzI4LjI4LDM0LDMzLDI5LDMzLDIyLjc4QTExLjEzLDExLjEzLDAsMCwwLDMxLjMsMTYuNjZaTTIyLjQ4LDMySDExLjc3QzguMTMsMzIsNSwyOC42Niw1LDI0LjYxYTcuNDMsNy40MywwLDAsMSwxLjE2LTQuMTNjLjczLTEuMjksNC4wNS03LjIxLDUuNjUtMTAu''@;'; put 'put ''MDdsMyw1LjI4YTEsMSwwLDAsMCwuODcuNTFoMGExLDEsMCwwLDAsLjg3LS41MUwyMi40OSw1YzEuODYsMy4zMyw2LjE1LDExLDcuMDcsMTIuNkE5LjI0LDkuMjQsMCwwLDEsMzEsMjIuNzhDMzEsMjcuODcsMjcuMTgsMzIsMjIuNDgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS43NSwyMS43M2MtLjY1LTEuMTYtNC4zOC03LjgxLTQuMzgtNy44MWEuOC44LDAsMCwwLTEuNCwwbC00LjIsNy40OC0xLjU5LTIuNDlhLjguOCwwLDAsMC0xLjM1LDBMOS4zNywyNC4zNWE0LjM1LDQuMzUsMCwwLDAt''@;'; put 'put ''LjgyLDIuNiw0LjQ5LDQuNDksMCwwLDAsLjUsMkgxMWEzLDMsMCwwLDEtLjgzLTIsMi43OCwyLjc4LDAsMCwxLC41Ni0xLjczbDIuOC00LjM4LDEuNjYsMi42YS44LjgsMCwwLDAsMS40MS0uMTIsNy44Miw3LjgyLDAsMCwxLC40LS44TDIwLjY3LDE2bDMuNjksNi41N2E0LjgzLDQuODMsMCww''@;'; put 'put ''LDEsLjc3LDIuNzFBNSw1LDAsMCwxLDIzLjQ2LDI5aDIuMTNhNi42OCw2LjY4LDAsMCwwLDEuMTQtMy43NCw2LjQ1LDYuNDUsMCwwLDAtMS0zLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zLDE2LjMy''@;'; put 'put ''Yy0xLjE5LTIuMDktNy45NC0xNC4xNS03Ljk0LTE0LjE1YTEsMSwwLDAsMC0xLjc1LDBsLTYsMTAuNjQtMy01LjI4YTEsMSwwLDAsMC0xLjc1LDBTNS40LDE3LjQzLDQuNDIsMTkuMTVBOS4zLDkuMywwLDAsMCwzLDI0LjI2YzAsNS4xMSwzLjg4LDkuNjUsOC42Nyw5Ljc0SDIyLjQ4QzI4LjI4''@;'; put 'put ''LDM0LDMzLDI4LjYyLDMzLDIyLjQ0QTExLjEzLDExLjEzLDAsMCwwLDMxLjMsMTYuMzJaTTIxLjQ4LDMySDE0LjU0QTQuNjgsNC42OCwwLDAsMSwxMCwyNy40MWEzLjkxLDMuOTEsMCwwLDEsLjc1LTIuMzRsMy4zNS01LjIxYS41LjUsMCwwLDEsLjg0LDBsMS43OCwyLjc3LDAtLjA4Yy42My0x''@;'; put 'put ''LjExLDQuMjMtNy40OCw0LjIzLTcuNDhhLjUuNSwwLDAsMSwuODcsMHMzLjYsNi4zOCw0LjIzLDcuNDhBNS44Myw1LjgzLDAsMCwxLDI3LDI1Ljc2QzI3LDMyLDIyLjEsMzIsMjEuNDgsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVI''@;'; put 'put ''b3VyZ2xhc3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCwwLDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xQTYuNjcsNi42NywwLDAsMCwyNiwxMS4wOVY0''@;'; put 'put ''aDNhMSwxLDAsMCwwLDAtMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4yOCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4yNywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAs''@;'; put 'put ''MCwwLDJIMjlhMSwxLDAsMCwwLDAtMlpNMTIsMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0VjE3LjMzYTEsMSwwLDAsMC0uNjUtLjk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0x''@;'; put 'put ''QTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDI0djcuMDlhNC42Niw0LjY2LDAsMCwxLTEuODgsMy43MmwtMS4yOCwxaDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMsMSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwx''@;'; put 'put ''QTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCww''@;'; put 'put ''LDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xYTYuNjQsNi42NCwwLDAsMCwxLjA5LTFIMjIuMjNhMy42NCwzLjY0LDAsMCwxLS43OC0uMDlsLS42Mi40NmgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2MS4zNGExLDEsMCwwLDAsLjY1Ljk0''@;'; put 'put ''LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJWMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0VjE3LjMzYTEsMSwwLDAsMC0uNjUt''@;'; put 'put ''Ljk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0xQTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDIyLjQ1TDIzLjYsMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4yOCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4y''@;'; put 'put ''NywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAsMCwwLDJIMjlhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDMySDI2VjI0LjkxYTYuNjcsNi42NywwLDAsMC0yLjY5LTUuMzNsLTEuMjgtMUE2LjM2LDYuMzYsMCwwLDAsMjEsMThoMGE2LjI5LDYuMjksMCwwLDAsMS0uNjJsMS4yOC0xYTYuNjgs''@;'; put 'put ''Ni42OCwwLDAsMCwyLjU3LTQuMTZBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5di42MWE0LjY2LDQuNjYsMCwwLDEtMS44OCwzLjcybC0xLjI4LDFoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAsMCwwLC42NS45NCw0LjY3LDQuNjcsMCwwLDEs''@;'; put 'put ''MS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyVjI0LjkxYTQuNjYsNC42NiwwLDAsMSwxLjg4LTMuNzJsMS4yOC0xYTQuNjYsNC42NiwwLDAsMSwxLjE4LS42MywxLDEsMCwwLDAsLjY1LS45NFYxNy4zM2ExLDEsMCwwLDAtLjY1LS45NCw0LjY3LDQuNjcsMCww''@;'; put 'put ''LDEtMS4xOS0uNjNsLTEuMjgtMUE0LjY2LDQuNjYsMCwwLDEsMTIsMTEuMDlWNEgyMi43OGE3LjQ1LDcuNDUsMCwwLDEsLjg5LTJIN0ExLDEsMCwwLDAsNyw0aDN2Ny4wOWE2LjY3LDYuNjcsMCwwLDAsMi42OSw1LjMzbDEuMjgsMUE2LjM2LDYuMzYsMCwwLDAsMTUsMThoMGE2LjI3LDYuMjcs''@;'; put 'put ''MCwwLDAtMSwuNjJsLTEuMjgsMUE2LjY3LDYuNjcsMCwwLDAsMTAsMjQuOTFWMzJIN2ExLDEsMCwwLDAsMCwySDI5YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0aDIyYTEsMSwwLDAsMCwwLTJoLTIyYTEsMSwwLDEsMCwwLDJaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTIyLjU1LDE1LjY3QTYuMDcsNi4wNywwLDAsMCwyNSwxMS4xMlY2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwxMS40OCwxMS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNmExMS40OCwxMS40OCwwLDAsMC0yLjkxLDEuNzIsNi4wNyw2LjA3LDAsMCwwLTIu''@;'; put 'put ''NDUsNC41NXY1LjEySDI1VjI0LjgyYTYuMDcsNi4wNywwLDAsMC0yLjQ1LTQuNTUsMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5QTExLjQ4LDExLjQ4LDAsMCwwLDIyLjU1LDE1LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRIMjIuNDVMMjMuNiwySDYu''@;'; put 'put ''NjdhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuNTEsMjAuMjdhNi4wNyw2LjA3LDAsMCwwLTIuNDUsNC41NXY1LjEySDI1VjI0LjgyYTYuMDcsNi4wNyww''@;'; put 'put ''LDAsMC0yLjQ1LTQuNTUsMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5YTExLjQ4LDExLjQ4LDAsMCwwLDIuOTEtMS43MmwuMy0uMjdoLS42MkEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEwLjA2djUuMTJhNi4wNyw2LjA3LDAsMCwwLDIuNDUsNC41NSwxMS40OCwx''@;'; put 'put ''MS40OCwwLDAsMCwyLjkxLDEuNzJ2MS4xNkExMS40OCwxMS40OCwwLDAsMCwxMi41MSwyMC4yN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42NywzMmgtMjJhMSwxLDAsMCwwLDAsMmgyMmExLDEsMCwxLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNi42Nyw0SDIyLjc4YTcu''@;'; put 'put ''NDUsNy40NSwwLDAsMSwuODktMmgtMTdhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjU1LDIwLjI3YTExLjQ4LDExLjQ4LDAsMCwwLTIuOTEtMS43MlYxNy4z''@;'; put 'put ''OWExMS40OCwxMS40OCwwLDAsMCwyLjkxLTEuNzJBNi4yNSw2LjI1LDAsMCwwLDI1LDExLjU1LDcuNDcsNy40NywwLDAsMSwyMi41LDZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2YTExLjQ4LDExLjQ4LDAsMCww''@;'; put 'put ''LTIuOTEsMS43Miw2LjA3LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJBNi4wNyw2LjA3LDAsMCwwLDIyLjU1LDIwLjI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; put 'put ''MCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlTm9BY2Nlc3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYs''@;'; put 'put ''MCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjE1LDE1SDguODVBMS44NSwxLjg1LDAsMCwwLDcsMTYuODV2Mi4y''@;'; put 'put ''OUExLjg1LDEuODUsMCwwLDAsOC44NSwyMUgyNy4xNUExLjg1LDEuODUsMCwwLDAsMjksMTkuMTVWMTYuODVBMS44NSwxLjg1LDAsMCwwLDI3LjE1LDE1Wm0uMjUsNC4xNWEuMjUuMjUsMCwwLDEtLjI1LjI1SDguODVhLjI1LjI1LDAsMCwxLS4yNS0uMjVWMTYuODVhLjI1LjI1LDAsMCwxLC4y''@;'; put 'put ''NS0uMjVIMjcuMTVhLjI1LjI1LDAsMCwxLC4yNS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjkuMTUsMjBINi44NUEuODUuODUs''@;'; put 'put ''MCwwLDEsNiwxOS4xNVYxNi44NUEuODUuODUsMCwwLDEsNi44NSwxNkgyOS4xNWEuODUuODUsMCwwLDEsLjg1Ljg1djIuMjlBLjg1Ljg1LDAsMCwxLDI5LjE1LDIwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlT3JnYW5pemF0aW9uPSgw''@;'; put 'put ''LEUuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iOS44IDE4LjggMjYuMiAxOC44IDI2LjIgMjEuODggMjcuOCAyMS44OCAyNy44IDE3LjIgMTguOCAxNy4yIDE4LjggMTQgMTcuMiAxNCAxNy4yIDE3LjIgOC4yIDE3LjIgOC4yIDIxLjg4IDkuOCAyMS44OCA5LjggMTguOCIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQsMjNINGEyLDIsMCwwLDAtMiwydjZhMiwyLDAsMCwwLDIsMkgxNGEyLDIsMCwwLDAsMi0yVjI1QTIsMiwwLDAsMCwxNCwyM1pNNCwzMVYyNUgxNHY2WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjNIMjJhMiwyLDAsMCwwLTIsMnY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNUEyLDIsMCwwLDAsMzIsMjNaTTIyLDMxVjI1SDMydjZaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMywxM0gyM2EyLDIsMCwwLDAsMi0yVjVhMiwyLDAsMCwwLTItMkgxM2EyLDIsMCwwLDAtMiwydjZBMiwyLDAsMCwwLDEzLDEzWm0wLThIMjN2NkgxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI5LjggMTguOCAyNi4yIDE4LjggMjYuMiAyMS44OCAyNy44IDIxLjg4IDI3LjggMTcuMiAxOC44IDE3LjIgMTguOCAxNCAxNy4yIDE0IDE3LjIgMTcuMiA4LjIgMTcuMiA4LjIgMjEuODggOS44IDIx''@;'; put 'put ''Ljg4IDkuOCAxOC44IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMiIgeT0iMjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgeD0iMjAiIHk9IjIzIiB3aWR0aD0iMTQiIGhlaWdodD0iMTAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIzIiB3aWR0aD0iMTQiIGhlaWdodD0i''@;'; put 'put ''MTAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQmFsYW5jZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQsMzNIMTJhMSwxLDAsMCwxLDAtMkgyNGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iOSIgd2lkdGg9IjIiIGhlaWdodD0iMjIuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsN0g4QTEs''@;'; put 'put ''MSwwLDAsMSw4LDVIMjhhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjkzLDI0Ljc5YTcuMjMsNy4yMywwLDAsMS01LjgxLTIuODlsLS42LS44LDEuNTktMS4yMS42LjhhNS4yOCw1''@;'; put 'put ''LjI4LDAsMCwwLDguNDIsMGwuNi0uOCwxLjU5LDEuMjEtLjYuOEE3LjIzLDcuMjMsMCwwLDEsMjYuOTMsMjQuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41MSwxOS4yNWEuOC44LDAsMCwxLS43My0u''@;'; put 'put ''NDhMMjYuOTMsMTIuMmwtMi44NSw2LjU3YS44LjgsMCwwLDEtMS40Ny0uNjRMMjYuMiw5Ljg3YS44My44MywwLDAsMSwxLjQ3LDBsMy41OCw4LjI2YS44LjgsMCwwLDEtLjczLDEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik05LjY4LDI0Ljc5QTcuMjMsNy4yMywwLDAsMSwzLjg4LDIxLjlsLS42LS44TDQuODYsMTkuOWwuNi44YTUuMjgsNS4yOCwwLDAsMCw4LjQyLDBsLjYtLjgsMS41OSwxLjIxLS42LjhBNy4yMyw3LjIzLDAsMCwxLDkuNjgsMjQuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy4yNiwxOS4yNWEuOC44LDAsMCwxLS43My0uNDhMOS42OCwxMi4yLDYuODQsMTguNzdhLjguOCwwLDAsMS0xLjQ3LS42NEw4Ljk1LDkuODdhLjgzLjgzLDAsMCwxLDEuNDcsMEwxNCwxOC4xM2EuOC44LDAs''@;'; put 'put ''MCwxLS43MywxLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+JyksTC5DbHJTaGFwZUlkQmFkZ2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0w''@;'; put 'put ''LTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0EyLjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiw0YTIsMiwwLDAsMC0yLTJIMTZhMiwyLDAsMCwwLTIsMnY3''@;'; put 'put ''aDhaTTIwLDlIMTZWNGg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzBWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYs''@;'; put 'put ''MjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4''@;'; put 'put ''LDZIMjRWOGg0VjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwyOCw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjJh''@;'; put 'put ''NC4yMyw0LjIzLDAsMSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBoMS42VjI3Ljg3QTguMzMsOC4zMywwLDAsMSwxOCwyNS4yOWE4LjMzLDguMzMsMCwwLDEsNi40LDIuNTlWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5Ljks''@;'; put 'put ''OS45LDAsMCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5LDE5LjU2LDlIMTZWNGg0VjguMjRsMi0zLjQ2''@;'; put 'put ''VjRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoNC42NEEzLjY2LDMuNjYsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzJI''@;'; put 'put ''OFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIx''@;'; put 'put ''LjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoOFpNMjAsOUgxNlY0aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYzMEgyNlYyNy43YTEuMTIsMS4xMiww''@;'; put 'put ''LDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjhoNFY2''@;'; put 'put ''SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3IiByPSI0LjIzIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwydjZoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4x''@;'; put 'put ''MywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; put 'put ''PSJNMjgsNkgyM1Y4aDVWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDI4LDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDku''@;'; put 'put ''ODksMjEsNi41VjRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwydjZoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3IiByPSI0LjIzIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAsMCwwLDE4LDIzLjY5''@;'; put 'put ''LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEy''@;'; put 'put ''LDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww''@;'; put 'put ''LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxOCIgY3k9IjE3Ljc3''@;'; put 'put ''IiByPSI0LjIzIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSw0YTIsMiwwLDAsMC0yLTJIMTdhMiwyLDAsMCwwLTIsMnY2aDZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTMuMjJWMzJIOFY4aDVWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy40OSw3LjQ5''@;'; put 'put ''LDAsMCwxLDI4LDEzLjIyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlUmVwZWF0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNNiwxNC4xNUEzLjE3LDMuMTcsMCwwLDEsOS4xNywxMUgyOC40bC00LjI4LDQuNTRhMSwx''@;'; put 'put ''LDAsMSwwLDEuNDYsMS4zN0wzMi4wOSwxMCwyNS41OCwzLjA5YTEsMSwwLDEsMC0xLjQ2LDEuMzdMMjguNCw5SDkuMTdBNS4xNyw1LjE3LDAsMCwwLDQsMTQuMTV2Ni4xbDItMi4xMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0yIiBkPSJNMzAsMjEuODVBMy4xNywzLjE3LDAsMCwxLDI2LjgzLDI1SDcuNmw0LjI4LTQuNTRhMSwxLDAsMSwwLTEuNDYtMS4zN0wzLjkxLDI2bDYuNTEsNi45MWExLDEsMCwxLDAsMS40Ni0xLjM3TDcuNiwyN0gyNi44M0E1LjE3LDUuMTcsMCwwLDAsMzIsMjEuODV2LTYuMWwtMiwyLjEy''@;'; put 'put ''WiIvPicpLEwuQ2xyU2hhcGVGaWxlR3JvdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzNEgxM2ExLDEsMCwwLDEtMS0xVjExYTEsMSwwLDAsMSwxLTFIMzFhMSwxLDAsMCwxLDEsMVYzM0ExLDEsMCww''@;'; put 'put ''LDEsMzEsMzRaTTE0LDMySDMwVjEySDE0WiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIxNiIgeT0iMjAiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTYiIHk9IjI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik02LDI0VjRIMjRWM2ExLDEsMCwwLDAtMS0xSDVBMSwxLDAsMCwwLDQsM1YyNWExLDEsMCwwLDAsMSwxSDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTEwLDI4VjhIMjhWN2ExLDEsMCwwLDAtMS0xSDlBMSwxLDAsMCwwLDgsN1YyOWExLDEsMCwwLDAsMSwxaDFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzEsMTBI''@;'; put 'put ''MTNhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMxYTEsMSwwLDAsMCwxLTFWMTFBMSwxLDAsMCwwLDMxLDEwWk0yOCwyNkgxNlYyNEgyOFptMC00SDE2VjIwSDI4Wm0wLTRIMTZWMTZIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0yIiBkPSJNNiwyNFY0SDI0VjNhMSwxLDAsMCwwLTEtMUg1QTEsMSwwLDAsMCw0LDNWMjVhMSwxLDAsMCwwLDEsMUg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTEwLDI4VjhIMjhWN2ExLDEsMCwwLDAt''@;'; put 'put ''MS0xSDlBMSwxLDAsMCwwLDgsN1YyOWExLDEsMCwwLDAsMSwxaDFaIi8+JyksTC5DbHJTaGFwZVBhcGVyY2xpcD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguNDIsMzIuNkE2LjMsNi4zLDAsMCwxLDQsMzAu''@;'; put 'put ''NzlsLS4xMy0uMTNBNi4yLDYuMiwwLDAsMSwyLDI2LjIyLDYuNzcsNi43NywwLDAsMSw0LDIxLjRMMTkuNSw2LjA3YTguNjcsOC42NywwLDAsMSwxMi4xNS0uMzVBOCw4LDAsMCwxLDM0LDExLjQ0YTksOSwwLDAsMS0yLjcsNi4zNkwxNy4zNywzMS42QTEsMSwwLDEsMSwxNiwzMC4xOEwyOS44''@;'; put 'put ''OSwxNi4zOEE3LDcsMCwwLDAsMzIsMTEuNDRhNiw2LDAsMCwwLTEuNzYtNC4zLDYuNjcsNi42NywwLDAsMC05LjM0LjM1TDUuNDUsMjIuODJBNC43OCw0Ljc4LDAsMCwwLDQsMjYuMjJhNC4yMSw0LjIxLDAsMCwwLDEuMjQsM2wuMTMuMTNhNC42NCw0LjY0LDAsMCwwLDYuNS0uMjFMMjUuMjIs''@;'; put 'put ''MTUuOTRBMi43LDIuNywwLDAsMCwyNiwxNGEyLjM1LDIuMzUsMCwwLDAtLjY5LTEuNjgsMi42MSwyLjYxLDAsMCwwLTMuNjYuMTNsLTkuMiw5LjEyYTEsMSwwLDEsMS0xLjQxLTEuNDJMMjAuMjgsMTFhNC42Miw0LjYyLDAsMCwxLDYuNDgtLjEzQTQuMzMsNC4zMywwLDAsMSwyOCwxNGE0LjY4''@;'; put 'put ''LDQuNjgsMCwwLDEtMS40MSwzLjM0TDEzLjI4LDMwLjU4QTYuOTEsNi45MSwwLDAsMSw4LjQyLDMyLjZaIi8+JyksTC5DbHJTaGFwZVNocmluaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDE1SDIyLjQx''@;'; put 'put ''bDkuMjUtOS4yNWExLDEsMCwwLDAtMS40MS0xLjQxTDIxLDEzLjU5VjRhMSwxLDAsMCwwLTIsMFYxN0gzMmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik00LDE5YTEsMSwwLDAsMCwwLDJo''@;'; put 'put ''OS41OUw0LjMzLDMwLjI1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMTUsMjIuNDFWMzJhMSwxLDAsMCwwLDIsMFYxOVoiLz4nKSxMLkNsclNoYXBlQWNjZXNzaWJpbGl0eTE9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjQ0LDMxLjk0YTcuMzEsNy4zMSwwLDAsMS01LjctMTEuODhMNy4z''@;'; put 'put ''MiwxOC42NGE5LjMsOS4zLDAsMCwwLDEzLjEsMTMuMTFMMTksMzAuMzNBNy4yOSw3LjI5LDAsMCwxLDE0LjQ0LDMxLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjUuMzYsMS42N2E0LjEyLDQuMTIsMCwx''@;'; put 'put ''LDAsNC4xMSw0LjExQTQuMTIsNC4xMiwwLDAsMCwyNS4zNiwxLjY3Wm0wLDYuMjNhMi4xMiwyLjEyLDAsMSwxLDIuMTEtMi4xMkEyLjEyLDIuMTIsMCwwLDEsMjUuMzYsNy45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMjYuNTYsMTguMThoLTVhMSwxLDAsMCwwLS4yNC4wNWwzLjA5LTMuNTVhMi44MywyLjgzLDAsMCwwLS42OS00LjMzbC04LTQuNmExLDEsMCwwLDAtMS4xMi4wOEw5LjgzLDkuNThBMSwxLDAsMCwwLDkuNjYsMTFhMSwxLDAsMCwwLC43OS4zOCwxLDEsMCwwLDAsLjYxLS4yMWw0LjI3''@;'; put 'put ''LTMuMzQsMy4xMSwxLjc3LTUuMDgsNS43OGgwYTkuMjgsOS4yOCwwLDAsMC00LjUzLDEuODNsMS40MywxLjQzQTcuMyw3LjMsMCwwLDEsMjAuNDIsMjguODFsMS40MiwxLjQzYTkuMjcsOS4yNywwLDAsMCwuNzctMTAuMDZoMi44MmwtLjc3LDYuNTFhMSwxLDAsMCwwLC44OCwxLjExaC4xMmEx''@;'; put 'put ''LDEsMCwwLDAsMS0uODhsLjktNy42MmExLDEsMCwwLDAtLjI1LS43OEExLDEsMCwwLDAsMjYuNTYsMTguMThabS02LjM3LTcuNTYsMi41MiwxLjQ2YS43OS43OSwwLDAsMSwuNC41OS44MS44MSwwLDAsMS0uMi42OUwxOS43NSwxN0E5LjE3LDkuMTcsMCwwLDAsMTYsMTUuNDVaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43NywzMS45NGE3LjMxLDcuMzEsMCwwLDEtNS43LTExLjg4TDcuNjUsMTguNjRhOS4zLDkuMywwLDAsMCwxMy4xLDEzLjExbC0xLjQyLTEuNDJBNy4yOSw3LjI5LDAsMCwxLDE0''@;'; put 'put ''Ljc3LDMxLjk0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi42NSwyLjFhMy4xMiwzLjEyLDAsMSwwLDMuMTEsMy4xMkEzLjEyLDMuMTIsMCwwLDAsMjYuNjUsMi4xWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44MSwxOC4xOEgyMS40N3EtLjMxLS4zMy0uNjYtLjYzbDQuMzgtNC44NmEyLjE0LDIuMTQsMCwwLDAtLjUzLTMuMjdMMjAuOSw3LjIzbDAsMEwxNy4wNSw1LjA3YTEsMSwwLDAsMC0xLjExLjA4TDExLjE1LDguOWEx''@;'; put 'put ''LDEsMCwwLDAsMS4yMywxLjU4bDQuMjctMy4zNCwyLjg3LDEuNjNMMTMuNiwxNS4zOWE5LjMzLDkuMzMsMCwwLDAtNC40NCwxLjgybDEuNDIsMS40M0E3LjMsNy4zLDAsMCwxLDIwLjc1LDI4LjgxbDEuNDMsMS40M0E5LjI3LDkuMjcsMCwwLDAsMjMsMjAuMThoMi43NGwtLjc3LDYuNTFhMSwx''@;'; put 'put ''LDAsMCwwLC44NywxLjExaC4xMmExLDEsMCwwLDAsMS0uODhsLjktNy42MmExLDEsMCwwLDAtLjI1LS43OEExLDEsMCwwLDAsMjYuODEsMTguMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Mj0oMCxFLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzAuMDYsMTFoLTI0YTEsMSwwLDEsMCwwLDJIMTR2OS42NXMwLDAsMCwwbC0zLjc1LDEwYTEsMSwwLDAsMCwuNTgsMS4yOSwxLjEzLDEuMTMsMCwwLDAsLjM2LjA2LDEsMSwwLDAsMCwuOTMtLjY1TDE1LjYyLDI0aDQuNzZsMy41Miw5LjM1YTEsMSwwLDAsMCwu''@;'; put 'put ''OTMuNjUsMS4xMywxLjEzLDAsMCwwLC4zNi0uMDYsMSwxLDAsMCwwLC41OC0xLjI5TDIyLDIyLjY4czAsMCwwLDBWMTNoOC4wNmExLDEsMCwxLDAsMC0yWk0yMCwyMkgxNlYxM2g0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMTgsMTBhNCw0LDAsMSwwLTQtNEE0LDQsMCwwLDAsMTgsMTBabTAtNmEyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxNy45NiIgY3k9IjUi''@;'; put 'put ''IHI9IjMiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBINmExLDEsMCwwLDAsMCwyaDh2OC4zNnMwLDAsMCwwTDEwLjExLDMzLjE3YTEsMSwwLDAsMCwuNjYsMS4yNSwxLjU1LDEuNTUsMCwwLDAsLjI5LDAsMSwx''@;'; put 'put ''LDAsMCwwLDEtLjcxbDMuMjktMTAuODRoNS4zOEwyNCwzMy43NWExLDEsMCwwLDAsMSwuNzEsMS41NSwxLjU1LDAsMCwwLC4yOSwwLDEsMSwwLDAsMCwuNjYtMS4yNUwyMiwyMC40czAsMCwwLDBWMTJoOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; put 'put ''dGgtMiIgLz4nKSxMLkNsclNoYXBlU29ydEJ5PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC41NCwxM0g3LjQ2YTEsMSwwLDAsMSwwLTJIMjguNTRhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTIxLjE3LDE5SDcuNDZhMSwxLDAsMCwxLDAtMkgyMS4xN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNzQsMjVINy40NmExLDEsMCwwLDEsMC0yaDYuMjhhMSwx''@;'; put 'put ''LDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVDb2xsYXBzZUNhcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDIxSDNhMSwxLDAsMCwwLTEsMXY2YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEt''@;'; put 'put ''MVYyMkExLDEsMCwwLDAsMzMsMjFabS0xLDZINFYyM0gzMloiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIwLjIybDUuNjUtNS42NWEuODEuODEsMCwwLDAsMC0xLjE0LjguOCwwLDAsMC0xLjEzLDBMMTgs''@;'; put 'put ''MThsLTQuNTItNC41MmEuOC44LDAsMCwwLTEuMTMsMCwuODEuODEsMCwwLDAsMCwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuMjJsNS42NS01LjY1YS44MS44MSwwLDAsMCwwLTEuMTQuOC44''@;'; put 'put ''LDAsMCwwLTEuMTMsMEwxOCwxMiwxMy40OCw3LjQzYS44LjgsMCwwLDAtMS4xMywwLC44MS44MSwwLDAsMCwwLDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIiIHk9IjIyIiB3aWR0aD0iMzIiIGhlaWdo''@;'; put 'put ''dD0iOCIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIwLjdsLTUuNzktNS43OWExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBMMTgsMTcuODdsNC4zOC00LjM3YTEsMSwwLDAs''@;'; put 'put ''MSwxLjQxLDAsMSwxLDAsMCwxLDAsMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuNSwxMi4yMSw4LjcxYTEsMSwwLDAsMSwwLTEuNDIsMSwxLDAsMCwxLDEuNDEsMEwxOCwxMS42N2w0LjM4LTQuMzhh''@;'; put 'put ''MSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlRXhwYW5kQ2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsNkgzQTEsMSwwLDAsMCwyLDdWMjlhMSwxLDAsMCwwLDEs''@;'; put 'put ''MUgzM2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDMzLDZaTTMyLDI4SDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNDgsMTUuODYsMTgsMTEuMzRsNC41Miw0LjUyYS43Ny43NywwLDAsMCwu''@;'; put 'put ''NTYuMjQuODEuODEsMCwwLDAsLjU3LTEuMzdMMTgsOS4wOGwtNS42NSw1LjY1YS44LjgsMCwxLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy40OCwyMS44NiwxOCwxNy4zNGw0LjUyLDQu''@;'; put 'put ''NTJhLjc3Ljc3LDAsMCwwLC41Ni4yNC44MS44MSwwLDAsMCwuNTctMS4zN0wxOCwxNS4wOGwtNS42NSw1LjY1YS44LjgsMCwxLDAsMS4xMywxLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMyw2SDNBMSwx''@;'; put 'put ''LDAsMCwwLDIsN1YyOWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsMzMsNlpNMjMuNzksMjEuNDFhMSwxLDAsMCwxLTEuNDEsMEwxOCwxN2wtNC4zOCw0LjM4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCwxNC4yLDIzLjc5LDIwQTEsMSww''@;'; put 'put ''LDAsMSwyMy43OSwyMS40MVptMC02LjJhMSwxLDAsMCwxLTEuNDEsMEwxOCwxMC44M2wtNC4zOCw0LjM4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCw4bDUuNzksNS43OUExLDEsMCwwLDEsMjMuNzksMTUuMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVCcmllZmNhc2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDI4YTAsMCwwLDAsMSwwLDBINFYyMS4zMmE3LjEsNy4xLDAsMCwxLTItMS40M1YyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuODlhNi43NCw2Ljc0LDAsMCwx''@;'; put 'put ''LTIsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTI1LDIyLjRhMSwxLDAsMCwwLDEtMVYxNS45NEgyNFYxOEgxNHYySDI0djEuNEExLDEsMCwwLDAsMjUsMjIuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTMzLDZIMjRWNC4zOEEyLjQyLDIuNDIsMCwwLDAsMjEuNTUsMmgtNy4xQTIuNDIsMi40MiwwLDAsMCwxMiw0LjM4VjZIM0ExLDEsMCwwLDAsMiw3djhhNSw1LDAsMCwwLDUsNWgzdjEuNGExLDEsMCwwLDAsMiwwVjE1Ljk0SDEwVjE4SDdhMywzLDAs''@;'; put 'put ''MCwxLTMtM1Y4SDMydjdhMywzLDAsMCwxLTMsM0gyOHYyaDFhNSw1LDAsMCwwLDUtNVY3QTEsMSwwLDAsMCwzMyw2Wk0yMiw2SDE0VjQuNDNBLjQ1LjQ1LDAsMCwxLDE0LjQ1LDRoNy4xMWEuNDMuNDMsMCwwLDEsLjQ0LjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTMiIC8+XG48cGF0aCBkPSJNMzAsMThBNC4wNiw0LjA2LDAsMCwwLDM0LDE0VjZIMjRWNC40M0EyLjQ0LDIuNDQsMCwwLDAsMjEuNTUsMmgtNy4xQTIuNDQsMi40NCwwLDAsMCwxMiw0LjQzVjZIMnY4QTQuMDYsNC4wNiwwLDAsMCw2LjA1LDE4aDRWMTUuOTJoMnY1LjdhMSwxLDAsMSwx''@;'; put 'put ''LTIsMFYyMC4wNkg2LjA2QTYuMDYsNi4wNiwwLDAsMSwyLDE4LjQ5djkuNDVhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE4LjQ5YTYsNiwwLDAsMS00LjA2LDEuNTdIMjhWMThaTTE0LDQuNDNBLjQ1LjQ1LDAsMCwxLDE0LjQ1LDRoNy4xYS40NS40NSwwLDAsMSwuNDUuNDNWNkgx''@;'; put 'put ''NFpNMjYsMjEuNjJhMSwxLDAsMSwxLTIsMFYyMC4wNkgxNFYxOEgyNFYxNS45MmgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29sb3JQaWNrZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDEwLjA1YTUuMDcsNS4wNyww''@;'; put 'put ''LDAsMCwuMS03LjE3QTUuMDYsNS4wNiwwLDAsMCwyNiwzTDIwLjc4LDguMTVhMi4xMywyLjEzLDAsMCwxLTMsMGwtLjY3LS42N0wxNS43Miw4LjkyLDI3LjA4LDIwLjI4bDEuNDItMS40Mi0uNjctLjY3YTIuMTMsMi4xMywwLDAsMSwwLTNaTTI2LjQ0LDEzLjhhNC4wNyw0LjA3LDAsMCwwLTEu''@;'; put 'put ''MDgsMS45MmwtNS4wOC01LjA4QTQuMDcsNC4wNywwLDAsMCwyMi4yLDkuNTZsNS4xNi01LjE3YTMuMDksMy4wOSwwLDAsMSw0LjM1LS4xLDMuMDksMy4wOSwwLDAsMS0uMSw0LjM1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNNy4z''@;'; put 'put ''LDMxLjUxYTIsMiwwLDEsMS0yLjgzLTIuODNMMTguNTgsMTQuNTdsLTEuNDItMS40MUwzLjA1LDI3LjI3YTQsNCwwLDAsMC0uNjgsNC44TC44OSwzMy41NUExLDEsMCwwLDAsLjg5LDM1YTEsMSwwLDAsMCwxLjQyLDBsMS40My0xLjQ0YTMuOTMsMy45MywwLDAsMCwyLjA5LjYsNC4wNiw0LjA2''@;'; put 'put ''LDAsMCwwLDIuODgtMS4yTDIyLjgyLDE4LjgxLDIxLjQxLDE3LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0zMy43MywyLjExYTQuMDksNC4wOSwwLDAsMC01Ljc2LjFMMjIuODEsNy4zOGEzLjEzLDMuMTMsMCwwLDEtNC4zLjEx''@;'; put 'put ''TDE3LjA5LDguOTEsMjcsMTguNzlsMS40Mi0xLjQyQTMuMTgsMy4xOCwwLDAsMSwyOC40NiwxM2w1LjE3LTUuMTdBNC4wOCw0LjA4LDAsMCwwLDMzLjczLDIuMTFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTIyLjE4LDE2Ljc5LDcuNDYs''@;'; put 'put ''MzEuNTFhMiwyLDAsMSwxLTIuODItMi44M0wxOS4zNSwxNGwtMS40MS0xLjQxTDMuMjIsMjcuMjdhNCw0LDAsMCwwLS42OCw0LjhMMS4wNiwzMy41NWExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwxLjQxLDBsMS40NC0xLjQ0YTMuOTMsMy45MywwLDAsMCwyLjA5LjYsNC4wNiw0LjA2LDAs''@;'; put 'put ''MCwwLDIuODgtMS4yTDIzLjYsMTguMjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVDb3B5VG9DbGlwYm9hcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIyLjYsNEgyMS41NWEzLjg5LDMuODksMCwwLDAtNy4zMSwwSDEzLjRB''@;'; put 'put ''Mi40MSwyLjQxLDAsMCwwLDExLDYuNFYxMEgyNVY2LjRBMi40MSwyLjQxLDAsMCwwLDIyLjYsNFpNMjMsOEgxM1Y2LjI1QS4yNS4yNSwwLDAsMSwxMy4yNSw2aDIuNjlsLjEyLTEuMTFBMS4yNCwxLjI0LDAsMCwxLDE2LjYxLDRhMiwyLDAsMCwxLDMuMTUsMS4xOGwuMDkuODRoMi45YS4yNS4y''@;'; put 'put ''NSwwLDAsMSwuMjUuMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy4yNSwxOC4wNkgyMS4zM2wyLjg0LTIuODNhMSwxLDAsMSwwLTEuNDItMS40MkwxNy41LDE5LjA2bDUuMjUsNS4yNWExLDEsMCwwLDAsLjcxLjI5LDEsMSww''@;'; put 'put ''LDAsMCwuNzEtMS43bC0yLjg0LTIuODRIMzMuMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTI5LDE2aDJWNi42OEExLjY2LDEuNjYsMCwwLDAsMjkuMzUsNUgyNy4wOFY3SDI5WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG48cGF0aCBkPSJNMjksMzFIN1Y3SDlWNUg2LjY0QTEuNjYsMS42NiwwLDAsMCw1LDYuNjdWMzEuMzJBMS42NiwxLjY2LDAsMCwwLDYuNjUsMzNIMjkuMzZBMS42NiwxLjY2LDAsMCwwLDMxLDMxLjMzVjIyLjA2SDI5WiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZURyYWdIYW5kbGU9KDAsRS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTUiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48Y2lyY2xl''@;'; put 'put ''IGN4PSIxNSIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMTIiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PGNpcmNsZSBjeD0iMjEiIGN5''@;'; put 'put ''PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjE4IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxjaXJjbGUgY3g9IjE1IiBjeT0iMTgiIHI9IjEu''@;'; put 'put ''NSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZUZpbHRlcjI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDExSDNhMSwxLDAsMCwwLDAsMkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjgsMTdIOGExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik0yMywyM0gxM2ExLDEsMCwwLDAsMCwySDIzYTEsMSwwLDAsMCww''@;'; put 'put ''LTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlTW9vbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMjcuMTlhMSwxLDAsMCwwLTEtLjU2Yy0uMjgsMC0uNTYsMC0uODUsMEExMSwxMSwwLDAsMSwyNC45Miw1LjYxYTEs''@;'; put 'put ''MSwwLDAsMCwuNjEtMSwxLDEsMCwwLDAtLjY3LS45MSwxNC43LDE0LjcsMCwwLDAtNS0uODcsMTUuMTIsMTUuMTIsMCwwLDAsMCwzMC4yNCwxNC43OCwxNC43OCwwLDAsMCwxMS00LjgxQTEsMSwwLDAsMCwzMSwyNy4xOVpNMTkuODksMzEuMTJhMTMuMTIsMTMuMTIsMCwwLDEsMC0yNi4yNCwx''@;'; put 'put ''MS44MSwxMS44MSwwLDAsMSwyLC4xNiwxMywxMywwLDAsMCw1LjcyLDIzLjUzQTEyLjc1LDEyLjc1LDAsMCwxLDE5Ljg5LDMxLjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjkuMiwyNi43MkExMi4wNywxMi4wNywwLDAsMSwy''@;'; put 'put ''Mi45LDQuNDQsMTMuNjgsMTMuNjgsMCwwLDAsMTkuNDksNGExNCwxNCwwLDAsMCwwLDI4LDEzLjgyLDEzLjgyLDAsMCwwLDEwLjktNS4zNEExMS43MSwxMS43MSwwLDAsMSwyOS4yLDI2LjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBl''@;'; put 'put ''U3VuPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw2LjMxYTEsMSwwLDAsMCwxLTFWMS45MWExLDEsMCwwLDAtMiwwdjMuNEExLDEsMCwwLDAsMTgsNi4zMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTE4LDI5LjY5YTEs''@;'; put 'put ''MSwwLDAsMC0xLDF2My40YTEsMSwwLDAsMCwyLDB2LTMuNEExLDEsMCwwLDAsMTgsMjkuNjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbjxwYXRoIGQ9Ik04LjMyLDkuNzRBMSwxLDAsMCwwLDksMTBhMSwxLDAsMCwwLC43MS0uMjksMSwxLDAsMCww''@;'; put 'put ''LDAtMS40Mkw3LjMzLDUuOTJBMSwxLDAsMCwwLDUuOTIsNy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNy42OCwyNi4yNmExLDEsMCwxLDAtMS40MiwxLjQybDIuNDEsMi40YTEsMSwwLDAsMCwuNzEuMywxLDEsMCwwLDAsLjct''@;'; put 'put ''LjMsMSwxLDAsMCwwLDAtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik02LjMxLDE4YTEsMSwwLDAsMC0xLTFIMS45MWExLDEsMCwwLDAsMCwyaDMuNEExLDEsMCwwLDAsNi4zMSwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zNC4wOSwxN2gtMy40YTEsMSwwLDEsMCwwLDJoMy40YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOC4zMiwyNi4yNmwtMi40LDIuNDFhMSwxLDAsMCww''@;'; put 'put ''LC43LDEuNzEsMSwxLDAsMCwwLC43MS0uM2wyLjQxLTIuNGExLDEsMCwxLDAtMS40Mi0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTI3LDEwYTEsMSwwLDAsMCwuNzEtLjI5bDIuNC0yLjQxYTEsMSwwLDAsMCwwLTEuNDEsMSwx''@;'; put 'put ''LDAsMCwwLTEuNDEsMGwtMi40MSwyLjRhMSwxLDAsMCwwLDAsMS40MkExLDEsMCwwLDAsMjcsMTBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz48cGF0aCBkPSJNMTguMTMsNy43NWExMC4xMywxMC4xMywwLDEsMCwxMCwxMC4xM0ExMC4wOCwxMC4wOCww''@;'; put 'put ''LDAsMCwxOC4xMyw3Ljc1Wm0wLDE4LjI1YTguMTMsOC4xMywwLDEsMSw4LTguMTJBOC4wOCw4LjA4LDAsMCwxLDE4LjEzLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiIC8+PHBhdGggZD0iTTE4LDYuNDJhMSwxLDAsMCwwLDEtMVYxLjkxYTEsMSwwLDAs''@;'; put 'put ''MC0yLDBWNS40MkExLDEsMCwwLDAsMTgsNi40MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDI5LjU4YTEsMSwwLDAsMC0xLDF2My41MWExLDEsMCwwLDAsMiwwVjMwLjU4QTEsMSwwLDAsMCwxOCwyOS41OFoiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTguNCw5LjgxQTEsMSwwLDAsMCw5LjgxLDguNEw3LjMzLDUuOTJBMSwxLDAsMCwwLDUuOTIsNy4zM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjYsMjYuMTlhMSwxLDAs''@;'; put 'put ''MCwwLTEuNDEsMS40MWwyLjQ4LDIuNDhhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTYuNDIsMThhMSwxLDAsMCwwLTEtMUgxLjkxYTEsMSwwLDAsMCwwLDJINS40MkExLDEsMCwwLDAsNi40MiwxOFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHBhdGggZD0iTTM0LjA5LDE3SDMwLjU4YTEsMSwwLDAsMCwwLDJoMy41MWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz48cGF0aCBkPSJNOC40LDI2LjE5LDUuOTIs''@;'; put 'put ''MjguNjdhMSwxLDAsMCwwLDEuNDEsMS40MUw5LjgxLDI3LjZBMSwxLDAsMCwwLDguNCwyNi4xOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciIC8+PHBhdGggZD0iTTI3LjYsOS44MWwyLjQ4LTIuNDhhMSwxLDAsMCwwLTEuNDEtMS40MUwyNi4xOSw4LjRBMSwxLDAs''@;'; put 'put ''MCwwLDI3LjYsOS44MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTgiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMTAiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiIC8+JyksTC5DbHJTaGFwZVdhbmQ9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNC4xLDQsMzEuNzEsMS42YTEuODMsMS44MywwLDAsMC0xLjMxLS41NGgwYTIuMDUsMi4wNSwwLDAsMC0xLjQ1LjYyTDEuNzYsMjkuMjNBMiwyLDAsMCwwLDEuNjgsMzJsMi40LDIuNDNBMS44Mywx''@;'; put 'put ''LjgzLDAsMCwwLDUuMzksMzVoMGEyLjA1LDIuMDUsMCwwLDAsMS40NS0uNjJMMzQsNi43OUEyLDIsMCwwLDAsMzQuMSw0Wk01LjQyLDMyLjkzLDMuMTYsMzAuNjVoMEwyNC4xMSw5LjQzbDIuMjUsMi4yOFpNMzIuNjEsNS4zOWwtNS4xMiw1LjE4TDI1LjI0LDguMjlsNS4xMy01LjIsMi4yNSwy''@;'; put 'put ''LjI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi41MywyMC40N2wyLjA5LTIuMDlhLjguOCwwLDAsMC0xLjEzLTEuMTNsLTIuMDksMi4wOS0yLjA5LTIuMDlhLjguOCwwLDAsMC0xLjEzLDEuMTNsMi4wOSwy''@;'; put 'put ''LjA5LTIuMDksMi4wOWEuOC44LDAsMCwwLDEuMTMsMS4xM2wyLjA5LTIuMDksMi4wOSwyLjA5YS44LjgsMCwwLDAsMS4xMy0xLjEzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNC43OCw2LjUxYS44LjgsMCww''@;'; put 'put ''LDAsMS4xMywwTDE3LjQsNWwxLjQ5LDEuNDlBLjguOCwwLDAsMCwyMCw1LjM4TDE4LjU0LDMuODksMjAsMi40YS44LjgsMCwwLDAtMS4xMy0xLjEzTDE3LjQsMi43NiwxNS45MSwxLjI3QS44LjgsMCwxLDAsMTQuNzgsMi40bDEuNDksMS40OUwxNC43OCw1LjM4QS44LjgsMCwwLDAsMTQuNzgs''@;'; put 'put ''Ni41MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNOC4zMywxNS4yNmEuOC44LDAsMCwwLDEuMTMsMGwxLjE2LTEuMTYsMS4xNiwxLjE2YS44LjgsMCwxLDAsMS4xMy0xLjEzTDExLjc2LDEzbDEuMTYtMS4xNmEu''@;'; put 'put ''OC44LDAsMSwwLTEuMTMtMS4xM2wtMS4xNiwxLjE2TDkuNDYsMTAuNjhhLjguOCwwLDEsMC0xLjEzLDEuMTNMOS40OSwxMyw4LjMzLDE0LjEzQS44LjgsMCwwLDAsOC4zMywxNS4yNloiLz4nKSxMLkNsclNoYXBlQ3Vyc29yTW92ZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjguODUs''@;'; put 'put ''MTIuODlhMSwxLDAsMCwwLTEuNDIsMCwxLDEsMCwwLDAsMCwxLjQxTDMwLjE0LDE3SDE5VjUuODZsMi42OSwyLjdhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQyTDE4LDIsMTIuODksNy4xNWExLDEsMCwwLDAtLjI5LjcxLDEsMSwwLDAsMCwxLjcxLjdMMTcsNS44NlYxN0g1Ljg2''@;'; put 'put ''bDIuNy0yLjY5YTEsMSwwLDAsMCwwLTEuNDEsMSwxLDAsMCwwLTEuNDIsMEwyLDE4bDUuMTQsNS4xMWExLDEsMCwwLDAsLjcxLjI5LDEsMSwwLDAsMCwuNy0xLjcxTDUuODYsMTlIMTdWMzAuMTRsLTIuNjktMi43YTEsMSwwLDAsMC0xLjcxLjcsMSwxLDAsMCwwLC4yOS43MUwxOCwzNGw1LjEx''@;'; put 'put ''LTUuMTRhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDE5LDMwLjE0VjE5SDMwLjE0bC0yLjcsMi42OWExLDEsMCwwLDAsLjcsMS43MSwxLDEsMCwwLDAsLjcxLS4yOUwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xy''@;'; put 'put ''U2hhcGVDbG9uZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiw2SDIydjRoMlY2YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIsMiwwLDAsMCwyLDJoNFYyMkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMw''@;'; put 'put ''LDEySDE0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0QTIsMiwwLDAsMCwzMCwxMlptMCwxOEgxNFYxNEgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwb2x5Z29uIHBvaW50cz0iMjEgMjggMjMgMjgg''@;'; put 'put ''MjMgMjMgMjggMjMgMjggMjEgMjMgMjEgMjMgMTYgMjEgMTYgMjEgMjEgMTYgMjEgMTYgMjMgMjEgMjMgMjEgMjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwxMFY2YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIs''@;'; put 'put ''MiwwLDAsMCwyLDJoNFYxMmEyLDIsMCwwLDEsMi0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTJIMTRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRBMiwyLDAsMCwwLDMwLDEyWk0yOCwy''@;'; put 'put ''M0gyM3Y1SDIxVjIzSDE2VjIxaDVWMTZoMnY1aDVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVEZXRhaWxzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlptMCwyMkg0VjhIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwxNEgyN2ExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik05LDE4SDI3YTEsMSwwLDAsMCwwLTJIOWExLDEsMCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTksMjJIMTlhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTE5LDIySDlhMSwxLDAsMCwxLDAtMkgxOWExLDEsMCwwLDEsMCwy''@;'; put 'put ''Wm04LTRIOWExLDEsMCwwLDEsMC0ySDI3YTEsMSwwLDAsMSwwLDJabTAtNEg5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZURyYWdIYW5kbGVDb3JuZXI9KDAsRS5jbHJJY29uU1ZH''@;'; put 'put ''KSgnPGNpcmNsZSBjeD0iMTIiIGN5PSIyNCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxjaXJjbGUg''@;'; put 'put ''Y3g9IjE4IiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9''@;'; put 'put ''IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZUVyYXNlcj0oMCxFLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzUuNjIsMTJhMi44MiwyLjgyLDAsMCwwLS44NC0yTDI3LjQ5LDIuNjVhMi45LDIuOSwwLDAsMC00LDBMMi44MywyMy4yOGEyLjg0LDIuODQsMCwwLDAsMCw0TDcuNTMsMzJIM2ExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJIMTYuNzRsMTgtMThBMi44''@;'; put 'put ''MiwyLjgyLDAsMCwwLDM1LjYyLDEyWk0xMy45MSwzMkgxMC4zNkw0LjI1LDI1Ljg5YS44NC44NCwwLDAsMSwwLTEuMTlsNS41MS01LjUyLDguNDksOC40OFpNMzMuMzcsMTIuNTQsMTkuNjYsMjYuMjVsLTguNDgtOC40OSwxMy43LTEzLjdhLjg2Ljg2LDAsMCwxLDEuMTksMGw3LjMsNy4yOWEu''@;'; put 'put ''ODYuODYsMCwwLDEsLjI1LjZBLjgyLjgyLDAsMCwxLDMzLjM3LDEyLjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDMySDE1LjMzTDE5LDI4LjM3bC05LjktOS45TDMuNTQsMjRhMS44MywxLjgzLDAsMCwwLDAsMi42TDksMzJI''@;'; put 'put ''M2ExLDEsMCwwLDAsMCwySDI4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4wOCwxMC42NWwtNy4zLTcuM2ExLjgzLDEuODMsMCwwLDAtMi42LDBMMTAuNDcsMTcuMDZsOS45LDkuOUwzNC4wOCwxMy4yNUExLjg1''@;'; put 'put ''LDEuODUsMCwwLDAsMzQuMDgsMTAuNjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVMYW5kc2NhcGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; put 'put ''MCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDIyYS44Mi44MiwwLDAsMCwuNTUtLjIxLjguOCwwLDAsMCwwLTEuMTNMNy44MywxOC44SDI4LjE3bC0xLjcyLDEuODZh''@;'; put 'put ''LjguOCwwLDAsMCwwLDEuMTNBLjgyLjgyLDAsMCwwLDI3LDIyYS43OC43OCwwLDAsMCwuNTgtLjI2TDMxLjA5LDE4bC0zLjQ3LTMuNzRhLjc5Ljc5LDAsMCwwLTEuMTMsMCwuOC44LDAsMCwwLDAsMS4xM2wxLjcyLDEuODZINy44M2wxLjcyLTEuODZhLjguOCwwLDAsMCwwLTEuMTMuNzkuNzks''@;'; put 'put ''MCwwLDAtMS4xMywwTDQuOTEsMThsMy40NywzLjc0QS43OC43OCwwLDAsMCw5LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIs''@;'; put 'put ''MiwwLDAsMCwzMiw2Wk0yNy43NywyMS44OGExLDEsMCwwLDEtLjczLjMyLDEsMSwwLDAsMS0uNjgtLjI3LDEsMSwwLDAsMS0uMDYtMS40MUwyNy43MSwxOUg4LjI5TDkuNywyMC41MmExLDEsMCwwLDEtLjA2LDEuNDFBMSwxLDAsMCwxLDksMjIuMmExLDEsMCwwLDEtLjczLS4zMkw0LjY0LDE4''@;'; put 'put ''bDMuNTktMy44OEExLDEsMCwwLDEsOS43LDE1LjQ4TDguMjksMTdIMjcuNzFMMjYuMywxNS40OGExLDEsMCwwLDEsMS40Ny0xLjM2TDMxLjM2LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUGFzdGU9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; put 'put ''PHBhdGggZD0iTTMwLDEySDI2djJoNHYyaDJWMTRBMiwyLDAsMCwwLDMwLDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHJlY3QgeD0iMzAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMzBIMjh2MmgyYTIsMiwwLDAsMCwyLTJWMjZIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQsMjJWNmEyLDIsMCwwLDAtMi0ySDZBMiwyLDAsMCwwLDQsNlYyMmEyLDIsMCwwLDAs''@;'; put 'put ''MiwySDIyQTIsMiwwLDAsMCwyNCwyMlpNNiw2SDIyVjIySDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cmVjdCB4PSIyMCIgeT0iMzAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; put 'put ''IiAvPjxwYXRoIGQ9Ik0xNCwyNkgxMnY0YTIsMiwwLDAsMCwyLDJoNFYzMEgxNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0zMCwxMkgyNnYyaDR2MmgyVjE0QTIsMiwwLDAsMCwzMCwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTEiIC8+PHJlY3QgeD0iMzAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMEgyOHYyaDJhMiwyLDAsMCwwLDItMlYyNkgzMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTMiIC8+PHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHJlY3QgeD0iMjAiIHk9IjMwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xNCwyNkgxMnY0YTIsMiwwLDAsMCwyLDJoNFYzMEgxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVBvcnRyYWl0PSgwLEUuY2xySWNvblNWRykoJzxwYXRo''@;'; put 'put ''IGQ9Ik0xNS4zNCwyNi40NWEuOC44LDAsMCwwLTEuMTMsMCwuNzkuNzksMCwwLDAsMCwxLjEzTDE4LDMxLjA5bDMuNzQtMy40N2EuNzkuNzksMCwwLDAsLjA1LTEuMTMuOC44LDAsMCwwLTEuMTMsMEwxOC44LDI4LjE3VjcuODNsMS44NiwxLjcyYS44LjgsMCwxLDAsMS4wOC0xLjE3TDE4LDQu''@;'; put 'put ''OTEsMTQuMjYsOC4zOGEuNzkuNzksMCwwLDAsMCwxLjEzLjguOCwwLDAsMCwxLjEzLDBMMTcuMiw3LjgzVjI4LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhh''@;'; put 'put ''MiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWm0wLDMwSDhWNEgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNEEyLDIsMCww''@;'; put 'put ''LDAsMjgsMlpNMjAuNTIsMjYuM2ExLDEsMCwwLDEsMS4zNiwxLjQ3TDE4LDMxLjM2bC0zLjg4LTMuNTlhMSwxLDAsMCwxLDEuMzYtMS40N0wxNywyNy43MVY4LjI5TDE1LjQ4LDkuN2ExLDEsMCwwLDEtMS4zNi0xLjQ3TDE4LDQuNjRsMy44OCwzLjU5YTEsMSwwLDAsMSwuMDUsMS40MSwxLDEs''@;'; put 'put ''MCwwLDEtLjczLjMyLDEsMSwwLDAsMS0uNjgtLjI2TDE5LDguMjlWMjcuNzFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVUcmVlVmlldz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTUsMzJIMTFhMSwxLDAsMCwxLTEtMVYyN2Ex''@;'; put 'put ''LDEsMCwwLDEsMS0xaDRhMSwxLDAsMCwxLDEsMXY0QTEsMSwwLDAsMSwxNSwzMlptLTMtMmgyVjI4SDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE1LDE2SDExYTEsMSwwLDAsMC0xLDF2MS4ySDUuOFYxMkg3YTEsMSwwLDAsMCwx''@;'; put 'put ''LTFWN0ExLDEsMCwwLDAsNyw2SDNBMSwxLDAsMCwwLDIsN3Y0YTEsMSwwLDAsMCwxLDFINC4yVjI5LjhoNi4zNmEuOC44LDAsMCwwLDAtMS42SDUuOFYxOS44SDEwVjIxYTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE3QTEsMSwwLDAsMCwxNSwxNlpNNCw4SDZ2Mkg0Wk0xNCwyMEgx''@;'; put 'put ''MlYxOGgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTM0LDlhMSwxLDAsMCwwLTEtMUgxMHYySDMzQTEsMSwwLDAsMCwzNCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMz''@;'; put 'put ''LDE4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMywyOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cmVjdCB4''@;'; put 'put ''PSIxMCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTZIMTFhMSwxLDAsMCwwLTEsMXYxLjJINS44VjEySDdhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCw3LDZI''@;'; put 'put ''M0ExLDEsMCwwLDAsMiw3djRhMSwxLDAsMCwwLDEsMUg0LjJWMjkuOEgxMWEuOC44LDAsMSwwLDAtMS42SDUuOFYxOS44SDEwVjIxYTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE3QTEsMSwwLDAsMCwxNSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; put 'put ''IC8+PHBhdGggZD0iTTMzLDhIMTB2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMThIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48''@;'; put 'put ''cGF0aCBkPSJNMzMsMjhIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZEdyYWI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LjA5LDkuNzRhNCw0LDAsMCwwLTEuMTYuMTlj''@;'; put 'put ''LS4xOS0xLjI0LTEuNTUtMi4xOC0zLjI3LTIuMThBNCw0LDAsMCwwLDIyLjEzLDgsMy4zNywzLjM3LDAsMCwwLDE5LDYuM2EzLjQ1LDMuNDUsMCwwLDAtMi44NywxLjMyLDMuNjUsMy42NSwwLDAsMC0xLjg5LS41MUEzLjA1LDMuMDUsMCwwLDAsMTEsOS44OXYuOTFjLTEuMDYuNC00LjExLDEu''@;'; put 'put ''OC00LjkxLDQuODRzLjM0LDgsMi42OSwxMS43OGEyNS4yMSwyNS4yMSwwLDAsMCw1LjksNi40MS45LjksMCwwLDAsLjUzLjE3SDI1LjU1YS45Mi45MiwwLDAsMCwuNTUtLjE5LDEzLjEzLDEzLjEzLDAsMCwwLDMuNzUtNi4xM0EyNS44LDI1LjgsMCwwLDAsMzEuNDEsMTh2LTUuNUEzLjA4LDMu''@;'; put 'put ''MDgsMCwwLDAsMjguMDksOS43NFpNMjkuNjEsMThhMjQsMjQsMCwwLDEtMS40Nyw5LjE1QTEyLjQ2LDEyLjQ2LDAsMCwxLDI1LjIsMzIuMkgxNS40N2EyMy43NSwyMy43NSwwLDAsMS01LjItNS43MmMtMi4zNy0zLjg2LTMtOC4yMy0yLjQ4LTEwLjM5QTUuNyw1LjcsMCwwLDEsMTEsMTIuNzZ2''@;'; put 'put ''Ny42NWEuOS45LDAsMCwwLDEuOCwwVjkuODljMC0uNDcuNTktMSwxLjQ2LTFzMS40OS41MiwxLjQ5LDF2NS43MmgxLjhWOC44MWMwLS4yOC41OC0uNzEsMS40Ni0uNzFzMS41My40OCwxLjUzLjc1djYuODloMS44VjEwbC4xNy0uMTJhMi4xLDIuMSwwLDAsMSwxLjE4LS4zMmMuOTMsMCwxLjUu''@;'; put 'put ''NDQsMS41LjY4bDAsNi41SDI3VjExLjg3YTEuOTEsMS45MSwwLDAsMSwxLjEyLS4zM2MuODYsMCwxLjUyLjUxLDEuNTIuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ3Vyc29ySGFuZE9wZW49KDAsRS5jbHJJY29uU1ZHKSgn''@;'; put 'put ''PHBhdGggZD0iTTMxLjQ2LDguNTdBMy4xMSwzLjExLDAsMCwwLDI3LDUuNzVhMy4xOSwzLjE5LDAsMCwwLTQuNjYtMi42NCwzLjI5LDMuMjksMCwwLDAtNi40Mi0uNzYsMy4yMywzLjIzLDAsMCwwLTEuNjYtLjQ2QTMuMjcsMy4yNywwLDAsMCwxMSw1LjE4VjE3Ljg0Yy0xLjI4LTEuNi0yLjUz''@;'; put 'put ''LTMuMTgtMi43Mi0zLjQ1QTMuMTksMy4xOSwwLDAsMCw1LjU2LDEyLjlhMy4zNywzLjM3LDAsMCwwLTMuNDcsMy40OEMyLjE4LDE4LjE4LDUuNjYsMjQuNTQsOCwyOGMzLjU0LDUuMjQsNi45Miw2LDcuMDcsNmwuMTgsMEgyNS41OWEuOTIuOTIsMCwwLDAsLjU1LS4xOSwxMy4xMywxMy4xMyww''@;'; put 'put ''LDAsMCwzLjc1LTYuMTNjMS0zLjA5LDEuNTMtNy41MywxLjU4LTEzLjU2Wk0yOC4xOCwyNy4xMmExMi40NiwxMi40NiwwLDAsMS0yLjk0LDUuMDhIMTUuMzNjLS40Ny0uMTQtMy4wNy0xLjEtNS44Ny01LjI1UzMuOTQsMTcuMjcsMy44OSwxNi4yOWExLjUsMS41LDAsMCwxLC40NS0xLjEzLDEu''@;'; put 'put ''NTIsMS41MiwwLDAsMSwxLjE0LS40NiwxLjQzLDEuNDMsMCwwLDEsMS4zMi43MWMuMjkuNDMsMi4zNiwzLDMuNTcsNC41M0wxMi44LDE4LjNWNS4xOGExLjQ4LDEuNDgsMCwxLDEsMi45NSwwVjE2LjMyaDEuOHYtMTNhMS41MSwxLjUxLDAsMCwxLDMsMFYxNi40NWgxLjhWNmExLjQzLDEuNDMs''@;'; put 'put ''MCwxLDEsMi44NSwwVjE3LjQ0SDI3VjguNTRhMS4zMywxLjMzLDAsMCwxLDIuNjUsMHY1LjU1QzI5LjYyLDIwLDI5LjE0LDI0LjIxLDI4LjE4LDI3LjEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUZpbGVaaXA9KDAsRS5jbHJJ''@;'; put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTMwLDMwLjJWMTJsLTguMS03LjlINy44QzYuOCw0LjEsNiw0LjksNiw2YzAsMCwwLDAsMCwwdjI0LjJjMCwxLDAuNywxLjgsMS43LDEuOGMwLDAsMC4xLDAsMC4xLDBoMjAuM1xuXHRcdGMxLDAsMS44LTAuNywxLjgtMS43QzMwLDMwLjMsMzAsMzAuMiwzMCwz''@;'; put 'put ''MC4yeiBNMjIsNi42bDUuNiw1LjRIMjJWNi42eiBNMjgsMzBINy45TDgsNmgxMnY4aDhWMzB6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjRjMCwxLjcsMS4zLDMsMywzczMtMS4zLDMtM3YtNGgtNlYyNHogTTEzLjQsMjR2LTIu''@;'; put 'put ''NmgzLjJWMjRjMC4xLDAuOS0wLjYsMS43LTEuNSwxLjdjLTAuOSwwLjEtMS43LTAuNi0xLjctMS41XG5cdFx0QzEzLjQsMjQuMiwxMy40LDI0LjEsMTMuNCwyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOC4yLDljMC0wLjYtMC40''@;'; put 'put ''LTEtMS0xSDE1djJoMi4yQzE3LjgsMTAsMTguMiw5LjYsMTguMiw5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEyLjcsMTBjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFIMTV2LTJIMTIuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xNy4yLDE0YzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDE1djJIMTcuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMS43LDE1YzAsMC42LDAuNCwxLDEsMUgxNXYt''@;'; put 'put ''MmgtMi4zQzEyLjIsMTQsMTEuNywxNC40LDExLjcsMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMTcuMiwxOGMwLjYsMCwxLTAuNCwxLTFzLTAuNC0xLTEtMUgxNXYySDE3LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMTUsMjUuNmMwLjksMCwxLjYtMC43LDEuNi0xLjZ2LTIuNmgtMy4yVjI0QzEzLjQsMjQuOSwxNC4xLDI1LjYsMTUsMjUuNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLjksNEg3LjhDNi44''@;'; put 'put ''LDQsNiw0LjksNiw1Ljl2MjQuMmMwLDEsMC44LDEuOSwxLjgsMS45aDIwLjNjMSwwLDEuOC0wLjksMS44LTEuOVYxMS45TDIxLjksNHogTTE4LDI0YzAsMS43LTEuMywzLTMsM1xuXHRcdHMtMy0xLjMtMy0zdi00aDZWMjR6IE0xNy4yLDEyYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1''@;'; put 'put ''djJoMi4yYzAuNiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1di0yaC0yLjJjLTAuNiwwLTEtMC40LTEtMVxuXHRcdHMwLjQtMSwxLTFIMTV2LTJoLTIuMmMtMC42LDAtMS0wLjQtMS0xczAuNC0xLDEtMUgxNVY4aDIuMmMwLjYsMCwxLDAuNCwxLDFzLTAuNCwxLTEsMUgxNXYySDE3LjJ6IE0y''@;'; put 'put ''MS45LDEyVjYuNWw1LjcsNS41SDIxLjl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVGaWx0ZXJPZmY9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDYuNEMzNCw1LjYsMzMuMyw1LDMyLjUsNUgxMC4zbDIsMkgzMnYwLjZsLTku''@;'; put 'put ''Niw5LjZsMS40LDEuNEwzMy40LDlDMzMuOCw4LjYsMzQsOC4xLDM0LDcuNlY2LjVDMzQsNi41LDM0LDYuNCwzNCw2LjR6IlxuXHRcdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMi43LDNsMiwyaC0xQzIuOSw0LjksMi4xLDUuNSwyLDYu''@;'; put 'put ''M3YxLjFjMCwwLjUsMC4yLDEsMC42LDEuNEwxNCwyMC4ydjEwLjNsMS45LDAuOFYxOS40TDQsNy41VjdoMi43TDIwLDIwLjN2MTIuOWwyLDAuOFxuXHRcdGMwLDAsMCwwLDAtMC4xVjIyLjNsMTAuMSwxMC4xbDEuNC0xLjRMNC4xLDEuNkwyLjcsM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMy45LDE4LjZMMTAuMyw1LjFoMjIuMkMzMy4zLDUsMzQsNS42LDM0LDYuNGMwLDAsMCwwLDAsMC4xdjEuMWMwLDAuNS0wLjIsMS0wLjYsMS40TDIzLjksMTguNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; put 'put ''IC8+PHBhdGggZD0iTTMzLjUsMzFMNC4xLDEuNkwyLjYsM2wyLjEsMi4xSDMuNUMyLjcsNSwyLDUuNiwyLDYuNGMwLDAsMCwwLDAsMC4xdjEuMWMwLDAuNSwwLjIsMSwwLjYsMS40TDE0LDIwLjV2MTAuMWw4LDMuNFYyMi40XG5cdGwxMC4xLDEwLjFMMzMuNSwzMXoiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVJlY3ljbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYuNCwxNy40YzAuMiwwLjEsMC4zLDAuMSwwLjUsMC4xYzAuMiwwLDAuNC0wLjEsMC41LTAuMWw3LTQuMWMwLjMtMC4yLDAuNS0wLjUsMC41LTAuOWMwLTAu''@;'; put 'put ''NC0wLjItMC43LTAuNS0wLjlMMTEuOSwxMFxuXHRcdEwxNCw2LjJjMC40LTAuNywxLTEuMywxLjctMS43YzItMS4xLDQuNS0wLjMsNS42LDEuN2MwLjMsMC41LDAuOSwwLjYsMS40LDAuM2MwLDAsMCwwLDAuMSwwYzAuNC0wLjMsMC41LTAuOSwwLjMtMS4zXG5cdFx0Yy0wLjYtMS0xLjQtMS45''@;'; put 'put ''LTIuNC0yLjRjLTMtMS42LTYuNy0wLjYtOC4zLDIuNEw5LjYsOS45Yy0wLjMsMC41LTAuMSwxLjEsMC4zLDEuNGwyLDEuMmwtNCwyLjRWOC4yYzAtMC42LTAuNC0xLTEtMVxuXHRcdEM2LjQsNy4zLDYsNy43LDYsOC4zdjguM0M2LDE2LjksNi4yLDE3LjIsNi40LDE3LjR6IiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMSwyMWwtMy41LTYuMmMtMC4xLTAuMi0wLjQtMC40LTAuNi0wLjVjLTAuMy0wLjEtMC41LDAtMC44LDAuMWwtMi4yLDEuM1YxMWw1LjUsMy4zYzAuMSwwLDAuMSwwLjEsMC4yLDAuMVxuXHRcdGMwLjUsMC4y''@;'; put 'put ''LDEuMSwwLDEuMy0wLjVjMC4yLTAuNSwwLTEuMS0wLjUtMS4zbC03LTQuMmMtMC4zLTAuMi0wLjctMC4yLTEsMEMyMy4xLDguNSwyMyw4LjgsMjMsOS4ydjguM2MwLDAuNCwwLjEsMC44LDAuNCwxXG5cdFx0YzAuMywwLjIsMC43LDAuMiwxLDBsMi45LTEuN2wzLDUuM2MwLjcsMS4zLDAuNywy''@;'; put 'put ''LjgsMCw0LjFjLTAuNiwxLjItMS45LDEuOS0zLjIsMS45aC0wLjljLTAuNSwwLTEuMiwwLjQtMS4yLDFcblx0XHRjMC4xLDAuNiwwLjYsMSwxLjIsMWgwLjljMi4xLDAsNC0xLjEsNS0yLjlDMzMuMiwyNS4yLDMzLjIsMjIuOSwzMi4xLDIxeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjQsMjguMmwtNy00LjJjLTAuMy0wLjItMC43LTAuMi0xLDBjLTAuMywwLjItMC40LDAuNS0wLjQsMC45djMuM0g5LjFjLTEuNS0wLjEtMi45LTAuOS0zLjYtMi4zXG5cdFx0Yy0wLjgtMS40LTAuOC0zLjIsMC00LjZjMC4zLTAuNSwwLjEt''@;'; put 'put ''MS4xLTAuNC0xLjRjLTAuNS0wLjMtMS4xLTAuMS0xLjQsMC40Yy0xLjIsMi4xLTEuMSw0LjYsMC4xLDYuNkM0LjksMjguOCw3LDMwLDkuMiwzMEgxNVxuXHRcdGMwLjYsMCwxLTAuNCwxLTF2LTIuNGw0LDIuNGwtNS42LDMuM2MtMC4zLDAuMi0wLjUsMC41LTAuNSwwLjljMCwwLjYsMC41LDEs''@;'; put 'put ''MSwxYzAuMiwwLDAuMy0wLjEsMC41LTAuMmw3LTQuMlxuXHRcdGMwLjItMC4xLDAuMy0wLjIsMC40LTAuNEMyMy4xLDI5LDIyLjksMjguNCwyMi40LDI4LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjAuOCwzLjFjLTMtMS42LTYu''@;'; put 'put ''Ny0wLjYtOC40LDIuNGwtMi4yLDMuOGwtMi0xLjFDOC4yLDgsOCw4LDcuOSw4QzcuNCw4LDcsOC40LDcsOC45djcuMmMwLDAuMywwLjEsMC42LDAuNCwwLjhcblx0XHRjMC4xLDAuMSwwLjMsMC4xLDAuNCwwLjFjMC4yLDAsMC4zLDAsMC40LTAuMWw2LjMtMy42YzAuMy0wLjIsMC40LTAuNCww''@;'; put 'put ''LjQtMC44YzAtMC4zLTAuMi0wLjYtMC40LTAuOEwxMiwxMC4zbDIuMi0zLjhcblx0XHRjMC40LTAuNywxLTEuMywxLjctMS43YzItMS4xLDQuNS0wLjMsNS42LDEuN2MwLjMsMC41LDAuOSwwLjYsMS40LDAuNGMwLjUtMC4zLDAuNi0wLjksMC40LTEuNEMyMi42LDQuNSwyMS44LDMuNiwyMC44''@;'; put 'put ''LDMuMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjIsMjEuMWwtMy01LjNsMi4zLTEuM2MwLjMtMC4yLDAuNC0wLjQsMC40LTAuOGMwLTAuMy0wLjItMC42LTAuNC0wLjhsLTYuMi0zLjZjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xXG5c''@;'; put 'put ''dFx0Yy0wLjUsMC0wLjksMC40LTAuOSwwLjl2Ny4yYzAsMC4zLDAuMiwwLjYsMC40LDAuOGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjIsMCwwLjMtMC4xLDAuNC0wLjFsMi4yLTEuM2wzLDUuM1xuXHRcdGMwLjcsMS4yLDAuNywyLjgsMCw0Yy0wLjcsMS4yLTEuOSwxLjktMy4yLDEuOWgt''@;'; put 'put ''MC45Yy0wLjYsMC0xLDAuNC0xLDFjMCwwLjYsMC40LDEsMSwxaDAuOWMyLjEsMCw0LTEuMSw1LTNcblx0XHRDMzMuMiwyNS4zLDMzLjIsMjMsMzIuMiwyMS4xeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjEuNywyOC40bC02LjItMy42Yy0w''@;'; put 'put ''LjEtMC4xLTAuMy0wLjEtMC40LTAuMWMtMC41LDAtMC45LDAuNC0wLjksMC45djIuNkg5LjNjLTEuNSwwLTIuOS0wLjgtMy42LTIuMVxuXHRcdGMtMC44LTEuNC0wLjgtMy4xLDAtNC41YzAuMy0wLjUsMC4xLTEuMS0wLjQtMS40Yy0wLjUtMC4zLTEuMS0wLjEtMS40LDAuNGMtMS4yLDItMS4y''@;'; put 'put ''LDQuNSwwLDYuNWMxLjEsMS45LDMuMSwzLjEsNS40LDMuMWg0Ljh2Mi42XG5cdFx0YzAsMC4zLDAuMiwwLjYsMC40LDAuOGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjEsMCwwLjMsMCwwLjQtMC4xbDYuMy0zLjZjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhcblx0XHRDMjIuMSwyOC44LDIx''@;'; put 'put ''LjksMjguNSwyMS43LDI4LjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVUcmVlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC42LDExLjdDMjkuMiw1LjgsMjQsMS43LDE4LDEuN2MtNy4yLDAtMTMsNS44LTEzLDEzYzAsNi44''@;'; put 'put ''LDUuMywxMi40LDEyLDEyLjl2NWMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi01di0yVjIyXG5cdGMwLDAsMCwwLDAtMC4xdi0zLjZsNC43LTQuN2MwLjQtMC40LDAuNC0xLDAtMS40Yy0wLjQtMC40LTEtMC40LTEuNCwwTDE5LDE1LjZ2LTNsLTMuMy0zLjNjLTAuNC0wLjQtMS0wLjQtMS40''@;'; put 'put ''LDBcblx0Yy0wLjQsMC40LTAuNCwxLDAsMS40bDIuNywyLjd2Ni4ybC0zLjgtMy44Yy0wLjQtMC40LTEtMC40LTEuNCwwYy0wLjQsMC40LTAuNCwxLDAsMS40bDUuMiw1LjJ2My4yYy01LjYtMC41LTEwLTUuMi0xMC0xMC45XG5cdGMwLTYuMSw0LjktMTEsMTEtMTFzMTEsNC45LDExLDExYzAs''@;'; put 'put ''NC45LTMuMyw5LjItOCwxMC42djIuMUMyOCwyNS43LDMyLjMsMTguNywzMC42LDExLjd6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMkMxMC44LDEuNyw0LjgsNy4zLDQuNSwxNC41QzQuMiwyMS43LDkuOCwyNy43LDE3LDI4di01''@;'; put 'put ''LjJsLTUuMi01LjJjLTAuNC0wLjQtMC40LTEsMC0xLjRjMC40LTAuNCwxLTAuNCwxLjQsMFxuXHRjMCwwLDAsMCwwLDBsMy44LDMuOHYtNi4ybC0yLjctMi43Yy0wLjQtMC40LTAuNC0xLDAtMS40YzAuNC0wLjQsMS0wLjQsMS40LDBjMCwwLDAsMCwwLDBsMy4zLDMuM3YzbDMuMy0zLjNjMC40''@;'; put 'put ''LTAuNCwxLTAuNCwxLjQsMFxuXHRjMCwwLDAsMCwwLDBjMC40LDAuNCwwLjQsMSwwLDEuNEwxOSwxOC44VjI4YzcuMi0wLjMsMTIuOC02LjMsMTIuNS0xMy41UzI1LjIsMS43LDE4LDJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyOGMt''@;'; put 'put ''MC4zLDAtMC42LDAtMSwwdjVjMCwwLjYsMC40LDEsMSwxczEtMC40LDEtMXYtNUMxOC43LDI4LDE4LjMsMjgsMTgsMjh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVGaXNoPSgwLEUuY2xySWNvblNWRykoJzxjaXJjbGUgY3g9IjExLjQ5''@;'; put 'put ''IiBjeT0iMTcuNSIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMuNDgsOS4yOWExLDEsMCwwLDAtMSwwYy0zLjM3LDItNS45MSw1LjgxLTYuOSw3LjQ1TDI0Ljg1LDE4cy0xLDEuNjItMSwxLjYyYy0xLjc2LDIuNDktNS4x''@;'; put 'put ''LDYuMzYtOC43OSw2LjM2LTQuNjUsMC04Ljc1LTYuMTUtOS44NC03Ljk0LDEuMDktMS43OSw1LjE4LTcuOTQsOS44NC03Ljk0LDMuNTQsMCw2Ljc3LDMuNTgsOC41OCw2LjA3bC4yOC0uNDhzLjM2LS41MS45My0xLjI1QzIyLjcyLDExLjY0LDE5LjE4LDguMDYsMTUsOC4wNmMtNi41OSwwLTEx''@;'; put 'put ''LjY3LDkuMDctMTEuODgsOS40NkwyLjg5LDE4bC4yNy40OGMuMjEuMzksNS4yOSw5LjQ2LDExLjg4LDkuNDYsNS4wNiwwLDkuMjItNS4zNCwxMS04QzI2LDIwLDI3LjE4LDE4LDI3LjE4LDE4aDBsLjA3LS4xMWExOC4wNiwxOC4wNiwwLDAsMSwxLjg4LTIuNzVzMCwwLDAsMGEyMC4zMSwyMC4z''@;'; put 'put ''MSwwLDAsMSwyLjg2LTNWMjMuODhhMjAuOTMsMjAuOTMsMCwwLDEtMy42MS00bC0uMTYuMjZoMGwtMSwxLjU5YTE4Ljc0LDE4Ljc0LDAsMCwwLDUuMjEsNC45NSwxLDEsMCwwLDAsLjUuMTQsMS4xMywxLjEzLDAsMCwwLC41LS4xMywxLDEsMCwwLDAsLjUtLjg3VjEwLjE2QTEsMSwwLDAsMCwz''@;'; put 'put ''My40OCw5LjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUZvcm09KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLDEySDdhMSwxLDAsMCwxLTEtMVY3QTEsMSwwLDAsMSw3LDZIMjFhMSwxLDAsMCwxLDEsMXY0QTEsMSww''@;'; put 'put ''LDAsMSwyMSwxMlpNOCwxMEgyMFY3Ljk0SDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEsMTQuMDhIN2ExLDEsMCwwLDAtMSwxVjE5YTEsMSwwLDAsMCwxLDFIMTguMzZMMjIsMTYuM1YxNS4wOEExLDEsMCwwLDAsMjEsMTQuMDha''@;'; put 'put ''TTIwLDE4SDhWMTZIMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTEuMDYsMzEuNTF2LS4wNmwuMzItMS4zOUg0VjRoMjBWMTQuMjVMMjYsMTIuMzZWM2ExLDEsMCwwLDAtMS0xSDNBMSwxLDAsMCwwLDIsM1YzMWExLDEsMCwwLDAs''@;'; put 'put ''MSwxaDhBMy40NCwzLjQ0LDAsMCwxLDExLjA2LDMxLjUxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTIyLDE5LjE3bC0uNzguNzlBMSwxLDAsMCwwLDIyLDE5LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTYsMjYuOTRhMSwxLDAsMCwwLDEsMWg0Ljg0bC4zLTEuMy4xMy0uNTUsMC0uMDVIOFYyNGg2LjM0bDItMkg3YTEsMSwwLDAsMC0xLDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNDksMTYuNjcs''@;'; put 'put ''MzAuMTIsMTMuM2ExLjYxLDEuNjEsMCwwLDAtMi4yOCwwaDBMMTQuMTMsMjcuMDksMTMsMzEuOWExLjYxLDEuNjEsMCwwLDAsMS4yNiwxLjksMS41NSwxLjU1LDAsMCwwLC4zMSwwLDEuMTUsMS4xNSwwLDAsMCwuMzcsMGw0Ljg1LTEuMDdMMzMuNDksMTlhMS42LDEuNiwwLDAsMCwwLTIuMjda''@;'; put 'put ''TTE4Ljc3LDMwLjkxbC0zLjY2LjgxTDE2LDI4LjA5LDI2LjI4LDE3LjdsMi44MiwyLjgyWk0zMC4yMywxOS4zOWwtMi44Mi0yLjgyTDI5LDE1bDIuODQsMi44NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVGdWVsPSgwLEUuY2xy''@;'; put 'put ''SWNvblNWRykoJzxwYXRoIGQ9Ik0yMC4xMiwzNEg1LjlBMi44MSwyLjgxLDAsMCwxLDMsMzEuMTlWNC44NkEyLjksMi45LDAsMCwxLDYsMi4wN0gyMC4yMkEyLjcyLDIuNzIsMCwwLDEsMjMsNC44NlYzMS4xOUEyLjgyLDIuODIsMCwwLDEsMjAuMTIsMzRaTTUuOSw0QS44Ny44NywwLDAsMCw1''@;'; put 'put ''LDQuODZWMzEuMTlhLjg3Ljg3LDAsMCwwLC44Ny44N0gyMC4xMmEuOTQuOTQsMCwwLDAsLjk1LS44N1Y0Ljg2QS45NC45NCwwLDAsMCwyMC4xMiw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI5LjUzLDM0QTMuNSwzLjUsMCwwLDEs''@;'; put 'put ''MjYsMzAuNVYyM2EyLDIsMCwwLDAtMi0ySDIyLjU3YTEsMSwwLDAsMSwwLTJIMjRhNCw0LDAsMCwxLDQsNFYzMC41YTEuNSwxLjUsMCwwLDAsMywwVjE3LjNsLTMuMTMtN0EyLjI5LDIuMjksMCwwLDAsMjUuOCw5aC0uNzNhMSwxLDAsMSwxLDAtMmguNzNhNC4zLDQuMywwLDAsMSwzLjkzLDIu''@;'; put 'put ''NTVsMy4yMSw3LjE2YTEsMSwwLDAsMSwuMDkuNDFWMzAuNUEzLjUsMy41LDAsMCwxLDI5LjUzLDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LDlIOEExLDEsMCwxLDEsOCw3SDE4YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTgsMTNIOEExLDEsMCwxLDEsOCwxMUgxOEExLDEsMCwxLDEsMTgsMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjUsMTIuMDhhMSwxLDAsMCwxLTEt''@;'; put 'put ''MXYtNmExLDEsMCwwLDEsMiwwdjZBMSwxLDAsMCwxLDI1LDEyLjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZVNub3dmbGFrZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguMDUsMzMuNjFhMSwxLDAsMCwxLTEtMVYz''@;'; put 'put ''LjM3YTEsMSwwLDEsMSwxLjk1LDBWMzIuNjNBMSwxLDAsMCwxLDE4LjA1LDMzLjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LjA2LDEwLjA3LDE0LjUyLDYuNTRhMSwxLDAsMCwxLDAtMS40MSwxLDEsMCwwLDEsMS40MSwwbDIu''@;'; put 'put ''MTMsMi4xMiwyLjEyLTIuMTJhMSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLjg1LDMxLjE3YTEsMSwwLDAsMS0uNy0uMjlMMTgsMjguNzYsMTUuOSwzMC44OGExLDEsMCww''@;'; put 'put ''LDEtMS40MSwwLDEsMSwwLDAsMSwwLTEuNDJMMTgsMjUuOTNsMy41NCwzLjUzYTEsMSwwLDAsMSwwLDEuNDJBMSwxLDAsMCwxLDIwLjg1LDMxLjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjkyLDI2LjVhMSwxLDAsMCwxLS41''@;'; put 'put ''LS4xM2wtMjYtMTVBMSwxLDAsMCwxLDQuMDcsMTBhMSwxLDAsMCwxLDEuMzctLjM2bDI2LDE1YTEsMSwwLDAsMS0uNSwxLjg3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTYsMTUuMzdhMSwxLDAsMCwxLS4yNi0ybDIuOS0uNzhMNy44''@;'; put 'put ''NCw5LjczYTEsMSwwLDEsMSwxLjkzLS41MkwxMS4wNywxNCw2LjI0LDE1LjMzQS44Mi44MiwwLDAsMSw2LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTI3LjA1LDI3LjU0YTEsMSwwLDAsMS0xLS43NUwyNC44LDIybDQuODIt''@;'; put 'put ''MS4zYTEsMSwwLDEsMSwuNTIsMS45M2wtMi45Ljc4Ljc4LDIuOWExLDEsMCwwLDEtLjcxLDEuMjJBLjc1Ljc1LDAsMCwxLDI3LjA1LDI3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTQuOTQsMjYuNWExLDEsMCwwLDEtLjUtMS44''@;'; put 'put ''N2wyNi0xNWExLDEsMCwwLDEsMS4zNi4zNiwxLDEsMCwwLDEtLjM2LDEuMzdsLTI2LDE1QTEsMSwwLDAsMSw0Ljk0LDI2LjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNOC44MSwyNy41NGEuNzUuNzUsMCwwLDEtLjI2LDAsMSwxLDAs''@;'; put 'put ''MCwxLS43MS0xLjIybC43OC0yLjktMi45LS43OEExLDEsMCwwLDEsNSwyMS4zOGExLDEsMCwwLDEsMS4yMy0uNzFMMTEuMDcsMjJsLTEuMyw0LjgyQTEsMSwwLDAsMSw4LjgxLDI3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+PHBhdGggZD0iTTI5''@;'; put 'put ''Ljg4LDE1LjM3YS44Mi44MiwwLDAsMS0uMjYsMEwyNC44LDE0bDEuMjktNC44M0ExLDEsMCwxLDEsMjgsOS43M2wtLjc4LDIuODksMi45Ljc4YTEsMSwwLDAsMS0uMjYsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPicpLEwuQ2xyU2hhcGVUYWJsZT0o''@;'; put 'put ''MCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOCwzNGExLDEsMCwwLDEtMS0xVjIuOTJhMSwxLDAsMCwxLDIsMFYzM0ExLDEsMCwwLDEsOCwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNywzMy45MmExLDEsMCwwLDEtMS0xVjku''@;'; put 'put ''MWExLDEsMCwxLDEsMiwwVjMyLjkyQTEsMSwwLDAsMSwxNywzMy45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNiwzNGExLDEsMCwwLDEtMS0xVjlhMSwxLDAsMCwxLDIsMFYzM0ExLDEsMCwwLDEsMjYsMzRaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMuMTEsMThoLTI1YTEsMSwwLDEsMSwwLTJoMjVhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy4xLDI2Ljk0SDguMUExLDEs''@;'; put 'put ''MCwxLDEsOC4xLDI1aDI1YTEsMSwwLDEsMSwwLDEuOTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMsOC45MkgzQTEsMSwwLDEsMSwzLDdIMzNhMSwxLDAsMSwxLDAsMS45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVWb2x1bWU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1Ljg4LDMySDEyYTQsNCwwLDAsMS00LTRWMTEuNDZMMi4zMSw1Ljc3YTEsMSwwLDAsMS0uMjItMS4wOUExLDEsMCwwLDEsMyw0LjA2SDI4Ljg2YTEsMSwwLDAsMSwxLDFWMjhB''@;'; put 'put ''NCw0LDAsMCwxLDI1Ljg4LDMyWk01LjQzLDZsNC4yOCw0LjM0YS43NS43NSwwLDAsMSwuMjEuNjN2MTdBMi4xMywyLjEzLDAsMCwwLDEyLDMwSDI1Ljg4QTIuMSwyLjEsMCwwLDAsMjgsMjhWNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9''@;'; put 'put ''Ik0zMywxNmExLDEsMCwwLDEtMS0xVjZIMjguODZhLjkyLjkyLDAsMCwxLTEtLjksMSwxLDAsMCwxLDEtMUgzM2ExLDEsMCwwLDEsMSwxVjE1QTEsMSwwLDAsMSwzMywxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwxMUgxOGEx''@;'; put 'put ''LDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQsMTVIMjFhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTI0LDE5SDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0yNCwyN0gxOGExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNMjQsMjNIMjFBMSwxLDAsMSwxLDIxLDIxSDI0QTEsMSwwLDEsMSwyNCwyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPicpLEwuQ2xyU2hhcGVDcm9zc2hhaXJzPSgw''@;'; put 'put ''LEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyOUExMSwxMSwwLDEsMSwyOSwxOCwxMSwxMSwwLDAsMSwxOCwyOVpNMTgsOWE5LDksMCwxLDAsOSw5QTksOSwwLDAsMCwxOCw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDIz''@;'; put 'put ''YTUsNSwwLDEsMSw1LTVBNSw1LDAsMCwxLDE4LDIzWm0wLThhMywzLDAsMSwwLDMsM0EzLDMsMCwwLDAsMTgsMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsOWExLDEsMCwwLDEtMS0xVjIuOGExLDEsMCwwLDEsMiwwVjhBMSwx''@;'; put 'put ''LDAsMCwxLDE4LDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYyOGExLDEsMCwwLDEsMiwwdjVBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTQiIC8+PHBhdGggZD0iTTgsMTlIMy4xN2ExLDEsMCwwLDEsMC0ySDhhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy4xLDE5SDI4YTEsMSwwLDAsMSwwLTJoNS4xYTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxMLkNsclNoYXBlQ2lyY2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwx''@;'; put 'put ''OCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlRG90Q2ly''@;'; put 'put ''Y2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxMWE3LDcsMCwxLDEtNyw3LDcsNywwLDAsMSw3LTciIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpN''@;'; put 'put ''MTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUJldGE9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTcuMjEsMTQuMDdoM2ExLjYxLDEuNjEsMCwwLDEsMS44''@;'; put 'put ''MSwxLjUsMS40NCwxLjQ0LDAsMCwxLS44NCwxLjM0LDEuNjcsMS42NywwLDAsMSwxLjEsMS41MywxLjc1LDEuNzUsMCwwLDEtMiwxLjYzSDcuMjFabTIuNzEsMi40MmMuNDgsMCwuODItLjI4LjgyLS42N3MtLjM0LS42NS0uODItLjY1SDguNDl2MS4zMlptLjIsMi40OGEuNzUuNzUsMCwxLDAs''@;'; put 'put ''MC0xLjQ3SDguNDlWMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTQuNTUsMTUuMjN2MS4yaDN2MS4xNmgtM3YxLjMyaDMuMzN2MS4xNkgxMy4yNnYtNmg0LjYydjEuMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjAuNDEsMTUuMjNIMTguNTRWMTQuMDdoNXYxLjE2SDIxLjd2NC44NEgyMC40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yOCwxOS4xMkgyNS4zMmwtLjM4Ljk1SDIzLjVs''@;'; put 'put ''Mi40NC02aDEuNDRsMi40NSw2SDI4LjM4Wk0yNy41NSwxOGwtLjg5LTIuMTlMMjUuNzcsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNOC4wNiwzMGEuODQuODQsMCwwLDEtLjM4LS4wOEExLDEsMCwwLDEsNy4wNiwyOVYyNWgt''@;'; put 'put ''NGExLDEsMCwwLDEtMS0xVjEwYTEsMSwwLDAsMSwxLTFoMzBhMSwxLDAsMCwxLDEsMVYyNGExLDEsMCwwLDEtMSwxSDEzLjQ4TDguNzcsMjkuNzFBMSwxLDAsMCwxLDguMDYsMzBabS00LTdoNGExLDEsMCwwLDEsMSwxdjIuNTlsMy4zLTMuM2ExLDEsMCwwLDEsLjctLjI5aDE5VjExaC0yOFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG5cbiAgPHBvbHlnb24gcG9pbnRzPSIyNS44LDE4IDI3LjUsMTggMjYuNywxNS44IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG5cdDxwYXRoIGQ9Ik0xMC40LDE3LjVjLTAuMSww''@;'; put 'put ''LTAuMiwwLTAuMywwSDguNVYxOWwxLjYsMGMwLjQsMC4xLDAuOC0wLjIsMC45LTAuNkMxMS4xLDE4LDEwLjgsMTcuNiwxMC40LDE3LjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG5cdDxwYXRoIGQ9Ik0xMC43LDE1LjhjMC0wLjQtMC4zLTAuNy0wLjgtMC43''@;'; put 'put ''SDguNXYxLjNoMS40QzEwLjQsMTYuNSwxMC43LDE2LjIsMTAuNywxNS44eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxuXHQ8cGF0aCBkPSJNMzMuMSw5aC0zMGMtMC42LDAtMSwwLjQtMSwxdjE0YzAsMC42LDAuNCwxLDEsMWg0djRjMCwwLjQsMC4yLDAuOCww''@;'; put 'put ''LjYsMC45QzcuOCwzMCw3LjksMzAsOC4xLDMwYzAuMywwLDAuNS0wLjEsMC43LTAuM1xuXHRcdGw0LjctNC43aDE5LjZjMC42LDAsMS0wLjQsMS0xVjEwQzM0LjEsOS40LDMzLjYsOSwzMy4xLDl6IE0xMC40LDIwLjFjLTAuMSwwLTAuMSwwLTAuMiwwSDcuMnYtNmgzYzAuOS0wLjEsMS43LDAu''@;'; put 'put ''NSwxLjgsMS40XG5cdFx0YzAsMCwwLDAuMSwwLDAuMWMwLDAuNi0wLjMsMS4xLTAuOCwxLjNjMC42LDAuMiwxLjEsMC44LDEuMSwxLjVDMTIuMiwxOS40LDExLjQsMjAuMSwxMC40LDIwLjF6IE0xNy45LDE1LjJoLTMuM3YxLjJoM3YxLjJoLTN2MS4zXG5cdFx0aDMuM3YxLjJoLTQuNnYtNmg0''@;'; put 'put ''LjZWMTUuMnogTTIxLjcsMjAuMWgtMS4zdi00LjhoLTEuOXYtMS4yaDV2MS4yaC0xLjhWMjAuMXogTTI4LjQsMjAuMWwtMC40LTFoLTIuN2wtMC40LDFoLTEuNGwyLjQtNmgxLjRsMi41LDZcblx0XHRIMjguNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbicp''@;'; put 'put ''LEwuQ2xyU2hhcGVGaXJzdEFpZD0oMCxFLmNsckljb25TVkcpKCdcbiAgPHBhdGggZD0iTTMyLDZIMjMuOTFWNC41QTIuNSwyLjUsMCwwLDAsMjEuNDEsMmgtN2EyLjUsMi41LDAsMCwwLTIuNSwyLjVWNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y''@;'; put 'put ''VjhBMiwyLDAsMCwwLDMyLDZaTTEzLjkxLDQuNWEuNS41LDAsMCwxLC41LS41aDdhLjUuNSwwLDAsMSwuNS41VjZoLThaTTQsMjhWOEgzMlYyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMC4xNSwyNS4ySDE2Ljc0YTEuMywx''@;'; put 'put ''LjMsMCwwLDEtMS4zLTEuM1YyMS4yaC0yLjdhMS4zLDEuMywwLDAsMS0xLjMtMS4zVjE2LjVhMS4zLDEuMywwLDAsMSwxLjMtMS4zaDIuN1YxMi41YTEuMywxLjMsMCwwLDEsMS4zLTEuM2gzLjQxYTEuMywxLjMsMCwwLDEsMS4yOSwxLjN2Mi43aDIuNzFhMS4zLDEuMywwLDAsMSwxLjI5LDEu''@;'; put 'put ''M3YzLjRhMS4zLDEuMywwLDAsMS0xLjI5LDEuM0gyMS40NHYyLjdBMS4zLDEuMywwLDAsMSwyMC4xNSwyNS4yWk0xNywyMy42aDIuODF2LTRoNFYxNi44aC00di00SDE3djRIMTN2Mi44aDRabTcuMTEtNi44WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5c''@;'; put 'put ''blxuICA8cGF0aCBkPSJNMzIsNkgyMy45MVY0LjVBMi41LDIuNSwwLDAsMCwyMS40MSwyaC03YTIuNSwyLjUsMCwwLDAtMi41LDIuNVY2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTMuOTEsNC41YS41LjUsMCww''@;'; put 'put ''LDEsLjUtLjVoN2EuNS41LDAsMCwxLC41LjVWNmgtOFpNMjQuNjQsMTkuOWEuNS41LDAsMCwxLS41LjVoLTMuNXYzLjVhLjUuNSwwLDAsMS0uNS41aC0zLjRhLjUuNSwwLDAsMS0uNS0uNVYyMC40aC0zLjVhLjUuNSwwLDAsMS0uNS0uNVYxNi41YS41LjUsMCwwLDEsLjUtLjVoMy41VjEyLjVh''@;'; put 'put ''LjUuNSwwLDAsMSwuNS0uNWgzLjRhLjUuNSwwLDAsMSwuNS41VjE2aDMuNWEuNS41LDAsMCwxLC41LjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLEwuQ2xyU2hhcGVDb2xvclBhbGV0dGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIxLjU0''@;'; put 'put ''LDIzLjA1YTMuMjIsMy4yMiwwLDAsMS0zLTEuNzdBMy4wNSwzLjA1LDAsMCwxLDE4LjUsMTlhMy43NCwzLjc0LDAsMCwxLDEuOTUtMi4wNkEzLjQsMy40LDAsMCwxLDI1LDE4LjNhMywzLDAsMCwxLC4wOCwyLjMyLDMuNjksMy42OSwwLDAsMS0yLDIuMDdBMy44NSwzLjg1LDAsMCwxLDIxLjU0''@;'; put 'put ''LDIzLjA1Wm0uNTQtNC45MWEyLjQxLDIuNDEsMCwwLDAtMSwuMjFoMEEyLjEzLDIuMTMsMCwwLDAsMjAsMTkuNTFhMS4zNywxLjM3LDAsMCwwLDAsMS4wOSwxLjgxLDEuODEsMCwwLDAsMi40NS42MywyLjEsMi4xLDAsMCwwLDEuMTItMS4xNSwxLjQsMS40LDAsMCwwLDAtMS4xQTEuNTksMS41''@;'; put 'put ''OSwwLDAsMCwyMi4wOCwxOC4xNFptLTEuMjktLjUyaDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTYuMTksMzMuODdBMTMuNzIsMTMuNzIsMCwwLDEsNi40LDMwLDEzLjg2LDEzLjg2LDAsMCwxLDIsMjBjMC00LjQsMi04Ljg0''@;'; put 'put ''LDUuNjgtMTIuNWExOC4yLDE4LjIsMCwwLDEsMTMuMS01LjM3aC4xMmMzLjMzLDAsNi44NSwxLjQ5LDcuMjQsNC43My4yMSwxLjc3LS41OSwzLjQ3LTEuMjksNS0uNTUsMS4xNy0xLjExLDIuMzktLjcyLDIuODFzMSwuMTIsMi4wOS0uMmE2LjI3LDYuMjcsMCwwLDEsMy4zOC0uMzYsMywzLDAs''@;'; put 'put ''MCwxLDEuODcsMS41NmMuOTQsMS44My40Nyw0LjY3LS4yMyw2LjU0aDBBMTcuMzgsMTcuMzgsMCwwLDEsMjksMjguNzQsMTkuNDMsMTkuNDMsMCwwLDEsMTYuMTksMzMuODdaTTIwLjc4LDQuMTZBMTYuMjIsMTYuMjIsMCwwLDAsOS4wOSw5QzUuNzksMTIuMjMsNCwxNi4xNiw0LDIwQTExLjky''@;'; put 'put ''LDExLjkyLDAsMCwwLDcuOCwyOC42YzUuMzgsNS4yNSwxNC42MiwzLjU1LDE5Ljg3LTEuMzNhMTUuNTIsMTUuNTIsMCwwLDAsMy43LTUuNzVoMGMuNy0xLjkuODQtMy45Mi4zMi00LjkyYTEsMSwwLDAsMC0uNjEtLjU1LDQuODYsNC44NiwwLDAsMC0yLjI5LjM1Yy0xLjMxLjM5LTMsLjg5LTQu''@;'; put 'put ''MTItLjM1LTEuMzItMS40LS40Ni0zLjI1LjM3LTVhNy45Myw3LjkzLDAsMCwwLDEuMTEtMy45Yy0uMjQtMi0yLjgxLTIuOTUtNS4yNi0zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjg3LDI2LjY1QTIuNTksMi41OSwwLDAs''@;'; put 'put ''MCwyMi4zNSwyNUwyMiwyNC45bC0uNDYsMS41My4xNiwwYTEsMSwwLDAsMSwuNi42MWMuMTcuNi0uNDEsMS4zMS0xLjI2LDEuNTVzLTEuNzEtLjA3LTEuODgtLjY2bC0xLjU0LjQzaDBhMi44MywyLjgzLDAsMCwwLDIuODQsMS45MSw0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDIzLjg3LDI2''@;'; put 'put ''LjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE1LjA3LDI1LjU5aDBhMi43MywyLjczLDAsMCwwLTIuMjQtMS44NGwtLjI3LDEuNThhMS4xMiwxLjEyLDAsMCwxLDEsLjdjLjE3LjU5LS40MSwxLjMtMS4yNiwxLjU0QTEuOTIs''@;'; put 'put ''MS45MiwwLDAsMSwxMSwyNy41MmExLDEsMCwwLDEtLjYtLjYxczAtLjA5LDAtLjEzbC0xLjU4LjE2YTIsMiwwLDAsMCwuMDYuNDFBMi41OSwyLjU5LDAsMCwwLDEwLjM3LDI5YTMuMzYsMy4zNiwwLDAsMCwxLjMxLjI1LDMuNywzLjcsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDE1LjA3LDI1LjU5''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTEwLjc4LDE5LjE3YTIuNTksMi41OSwwLDAsMC0xLjUyLTEuNjUsMi45MSwyLjkxLDAsMCwwLS41LS4xNmwtLjM3LDEuNTZhMS4yMSwxLjIxLDAsMCwxLC4yNS4wOCwxLDEsMCwwLDEs''@;'; put 'put ''LjYuNmMuMTcuNi0uNDEsMS4zMS0xLjI2LDEuNTVzLTEuNzEtLjA2LTEuODgtLjY2YS44Ni44NiwwLDAsMSwwLS4zOWwtMS41Ni0uMzRhMi40LDIuNCwwLDAsMCwwLDEuMTZBMi44MywyLjgzLDAsMCwwLDcuNCwyMi44M2E0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDEwLjc4LDE5LjE3WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEzLjQ1LDExLjRhMi41OSwyLjU5LDAsMCwwLTEuNTItMS42NSwxLjE3LDEuMTcsMCwwLDAtLjItLjA2bC0uNTIsMS41MWEuMzguMzgsMCwwLDEsLjEsMCwxLDEsMCwwLDEsLjYuNmMuMTcu''@;'; put 'put ''Ni0uNDEsMS4zMS0xLjI2LDEuNTVhMi4wNiwyLjA2LDAsMCwxLTEuMjgtLjA1LDEsMSwwLDAsMS0uNi0uNjEuODUuODUsMCwwLDEsMC0uMzJsLTEuNTgtLjE5YTIuMywyLjMsMCwwLDAsLjA2Ljk0QTIuNTYsMi41NiwwLDAsMCw4Ljc1LDE0LjhhMy4zNywzLjM3LDAsMCwwLDEuMzEuMjYsNCw0''@;'; put 'put ''LDAsMCwwLDEtLjE0QTMsMywwLDAsMCwxMy40NSwxMS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHBhdGggZD0iTTIxLDYuNzhhMi41NiwyLjU2LDAsMCwwLTEuNTItMS42NWwtLjMtLjFMMTguNyw2LjU2bC4xNSwwYTEsMSwwLDAsMSwuNi42''@;'; put 'put ''MWMuMTcuNi0uNDEsMS4zLTEuMjYsMS41NHMtMS43MS0uMDYtMS44OC0uNjVhLjkuOSwwLDAsMSwuMDYtLjU4TDE0Ljg5LDYuOWEyLjQ3LDIuNDcsMCwwLDAtLjEyLDEuNjMsMi44NCwyLjg0LDAsMCwwLDIuODQsMS45MSwzLjU4LDMuNTgsMCwwLDAsMS0uMTVBMywzLDAsMCwwLDIxLDYuNzha''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuXG4gIDxwYXRoIGQ9Ik0zMi4yMywxNC44OWMtMi4xLS41Ni00LjkzLDEuOC02LjM0LjMtMS43MS0xLjgyLDIuMjctNS41MywxLjg2LTguOTItLjMzLTIuNzgtMy41MS00LjA4LTYuNjYtNC4xQTE4LjUsMTgu''@;'; put 'put ''NSwwLDAsMCw3Ljc0LDcuNTljLTYuNjQsNi41OS04LjA3LDE2LTEuMzcsMjIuNDgsNi4yMSw2LDE2LjYxLDQuMjMsMjIuNjctMS40YTE3LjczLDE3LjczLDAsMCwwLDQuMjItNi41NEMzNC4zNCwxOS4yMywzNC40NCwxNS40OSwzMi4yMywxNC44OVpNOS40LDEwLjU3YTIuMjMsMi4yMywwLDAs''@;'; put 'put ''MSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODEsMi41M0EyLjIyLDIuMjIsMCwwLDEsNy41OSwxMy4xLDIuMjMsMi4yMywwLDAsMSw5LjQsMTAuNTdaTTUuMDcsMjAuODJhMi4yMiwyLjIyLDAsMCwxLDEuODItMi41M0EyLjIyLDIuMjIsMCwwLDEsOS43NSwxOS41LDIuMjMsMi4yMyww''@;'; put 'put ''LDAsMSw3Ljk0LDIyLDIuMjQsMi4yNCwwLDAsMSw1LjA3LDIwLjgyWm03LDguMzNhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMUEyLjIzLDIuMjMsMCwwLDEsMTEsMjUuNDFhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMTIsMjkuMTVaTTE1LDguMjZhMi4yMywy''@;'; put 'put ''LjIzLDAsMCwxLDEuODEtMi41MywyLjI0LDIuMjQsMCwwLDEsMi44NywxLjIxLDIuMjIsMi4yMiwwLDAsMS0xLjgyLDIuNTNBMi4yMSwyLjIxLDAsMCwxLDE1LDguMjZabTUuODIsMjIuMTlhMi4yMiwyLjIyLDAsMCwxLTIuODctMS4yMSwyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQs''@;'; put 'put ''Mi4yNCwwLDAsMSwyLjg3LDEuMjFBMi4yMiwyLjIyLDAsMCwxLDIwLjc4LDMwLjQ1Wm01LTEwLjQ2YTMuMiwzLjIsMCwwLDEtMS42OSwxLjc2LDMuNTMsMy41MywwLDAsMS0xLjQuMywyLjc4LDIuNzgsMCwwLDEtMi41Ni0xLjUsMi40OSwyLjQ5LDAsMCwxLS4wNy0yLDMuMiwzLjIsMCwwLDEs''@;'; put 'put ''MS42OS0xLjc2LDMsMywwLDAsMSw0LDEuMkEyLjU0LDIuNTQsMCwwLDEsMjUuNzksMjBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5Fc3NlbnRpYWxTaGFwZXM9eyJhZGQtdGV4dCI6TC5DbHJTaGFwZUFkZFRleHQsImFsYXJtLW9mZiI6TC5DbHJTaGFw''@;'; put 'put ''ZUFsYXJtT2ZmLHBpbmJvYXJkOkwuQ2xyU2hhcGVQaW5ib2FyZCxuZXc6TC5DbHJTaGFwZU5ldywiYnViYmxlLWV4Y2xhbWF0aW9uIjpMLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb24sImdyaWQtdmlldyI6TC5DbHJTaGFwZUdyaWRWaWV3LCJjdXJzb3ItYXJyb3ciOkwuQ2xyU2hhcGVDdXJz''@;'; put 'put ''b3JBcnJvdywiY3Vyc29yLWhhbmQiOkwuQ2xyU2hhcGVDdXJzb3JIYW5kLCJjdXJzb3ItaGFuZC1jbGljayI6TC5DbHJTaGFwZUN1cnNvckhhbmRDbGljaywiY3Vyc29yLWhhbmQtZ3JhYiI6TC5DbHJTaGFwZUN1cnNvckhhbmRHcmFiLCJjdXJzb3ItaGFuZC1vcGVuIjpMLkNsclNoYXBlQ3Vy''@;'; put 'put ''c29ySGFuZE9wZW4sImN1cnNvci1tb3ZlIjpMLkNsclNoYXBlQ3Vyc29yTW92ZSwiZmlyc3QtYWlkIjpMLkNsclNoYXBlRmlyc3RBaWQscmVzaXplOkwuQ2xyU2hhcGVSZXNpemUsb2JqZWN0czpMLkNsclNoYXBlT2JqZWN0cyxib29rOkwuQ2xyU2hhcGVCb29rLGFzdGVyaXNrOkwuQ2xyU2hh''@;'; put 'put ''cGVBc3RlcmlzayxidWc6TC5DbHJTaGFwZUJ1ZyxzY2lzc29yczpMLkNsclNoYXBlU2Npc3NvcnMsdGhlcm1vbWV0ZXI6TC5DbHJTaGFwZVRoZXJtb21ldGVyLHBlbmNpbDpMLkNsclNoYXBlUGVuY2lsLG5vdGU6TC5DbHJTaGFwZU5vdGUscmVmcmVzaDpMLkNsclNoYXBlUmVmcmVzaCxzeW5j''@;'; put 'put ''OkwuQ2xyU2hhcGVTeW5jLCJ2aWV3LWxpc3QiOkwuQ2xyU2hhcGVWaWV3TGlzdCwidmlldy1jYXJkcyI6TC5DbHJTaGFwZVZpZXdDYXJkcywidHJlZS12aWV3IjpMLkNsclNoYXBlVHJlZVZpZXcsbGlnaHRidWxiOkwuQ2xyU2hhcGVMaWdodGJ1bGIsZG93bmxvYWQ6TC5DbHJTaGFwZURvd25s''@;'; put 'put ''b2FkLHVwbG9hZDpMLkNsclNoYXBlVXBsb2FkLGxvY2s6TC5DbHJTaGFwZUxvY2ssdW5sb2NrOkwuQ2xyU2hhcGVVbmxvY2ssdXNlcnM6TC5DbHJTaGFwZVVzZXJzLCJwb3Atb3V0IjpMLkNsclNoYXBlUG9wT3V0LGZpbHRlcjpMLkNsclNoYXBlRmlsdGVyLHBpbjpMLkNsclNoYXBlUGluLGZp''@;'; put 'put ''bGU6TC5DbHJTaGFwZUZpbGUscGx1czpMLkNsclNoYXBlUGx1cyxtaW51czpMLkNsclNoYXBlTWludXMsIm1pbnVzLWNpcmNsZSI6TC5DbHJTaGFwZU1pbnVzQ2lyY2xlLCJwbHVzLWNpcmNsZSI6TC5DbHJTaGFwZVBsdXNDaXJjbGUsYmFuOkwuQ2xyU2hhcGVCYW4sInRpbWVzLWNpcmNsZSI6''@;'; put 'put ''TC5DbHJTaGFwZVRpbWVzQ2lyY2xlLHRyYXNoOkwuQ2xyU2hhcGVUcmFzaCxjaXJjbGU6TC5DbHJTaGFwZUNpcmNsZSx0YWc6TC5DbHJTaGFwZVRhZyx0YWdzOkwuQ2xyU2hhcGVUYWdzLGhpc3Rvcnk6TC5DbHJTaGFwZUhpc3RvcnksY2xvY2s6TC5DbHJTaGFwZUNsb2NrLCJhbGFybS1jbG9j''@;'; put 'put ''ayI6TC5DbHJTaGFwZUFsYXJtQ2xvY2ssYXJyb3c6RWUuQ2xyU2hhcGVBcnJvdywiY2lyY2xlLWFycm93IjpMLkNsclNoYXBlQ2lyY2xlQXJyb3csImNoaWxkLWFycm93IjpMLkNsclNoYXBlQ2hpbGRBcnJvdyxjb3B5OkwuQ2xyU2hhcGVDb3B5LGhlbHA6TC5DbHJTaGFwZUhlbHAsbG9naW46''@;'; put 'put ''TC5DbHJTaGFwZUxvZ2luLGxvZ291dDpMLkNsclNoYXBlTG9nb3V0LHByaW50ZXI6TC5DbHJTaGFwZVByaW50ZXIsd29ybGQ6TC5DbHJTaGFwZVdvcmxkLHNsaWRlcjpMLkNsclNoYXBlU2xpZGVyLGNsaXBib2FyZDpMLkNsclNoYXBlQ2xpcGJvYXJkLGZpcmV3YWxsOkwuQ2xyU2hhcGVGaXJl''@;'; put 'put ''d2FsbCxsaXN0OkwuQ2xyU2hhcGVMaXN0LHJlZG86TC5DbHJTaGFwZVJlZG8sdW5kbzpMLkNsclNoYXBlVW5kbyxzY3JvbGw6TC5DbHJTaGFwZVNjcm9sbCwiZmlsZS1zZXR0aW5ncyI6TC5DbHJTaGFwZUZpbGVTZXR0aW5ncywidHdvLXdheS1hcnJvd3MiOkwuQ2xyU2hhcGVUd29XYXlBcnJv''@;'; put 'put ''d3Msc3dpdGNoOkwuQ2xyU2hhcGVTd2l0Y2gsdG9vbHM6TC5DbHJTaGFwZVRvb2xzLCJ3aW5kb3ctY2xvc2UiOkwuQ2xyU2hhcGVXaW5kb3dDbG9zZSwid2luZG93LW1heCI6TC5DbHJTaGFwZVdpbmRvd01heCwid2luZG93LW1pbiI6TC5DbHJTaGFwZVdpbmRvd01pbiwid2luZG93LXJlc3Rv''@;'; put 'put ''cmUiOkwuQ2xyU2hhcGVXaW5kb3dSZXN0b3JlLCJ6b29tLWluIjpMLkNsclNoYXBlWm9vbUluLCJ6b29tLW91dCI6TC5DbHJTaGFwZVpvb21PdXQsa2V5OkwuQ2xyU2hhcGVLZXksbGlicmFyeTpMLkNsclNoYXBlTGlicmFyeSxib2x0OkwuQ2xyU2hhcGVCb2x0LHdyZW5jaDpMLkNsclNoYXBl''@;'; put 'put ''V3JlbmNoLGJ1bGxzZXllOkwuQ2xyU2hhcGVCdWxsc2V5ZSx0YXJnZXQ6TC5DbHJTaGFwZVRhcmdldCxmbGFtZTpMLkNsclNoYXBlRmxhbWUsaG91cmdsYXNzOkwuQ2xyU2hhcGVIb3VyZ2xhc3MsIm5vLWFjY2VzcyI6TC5DbHJTaGFwZU5vQWNjZXNzLG9yZ2FuaXphdGlvbjpMLkNsclNoYXBl''@;'; put 'put ''T3JnYW5pemF0aW9uLGJhbGFuY2U6TC5DbHJTaGFwZUJhbGFuY2UsImlkLWJhZGdlIjpMLkNsclNoYXBlSWRCYWRnZSxyZXBlYXQ6TC5DbHJTaGFwZVJlcGVhdCwiZmlsZS1ncm91cCI6TC5DbHJTaGFwZUZpbGVHcm91cCxwYXBlcmNsaXA6TC5DbHJTaGFwZVBhcGVyY2xpcCxzaHJpbms6TC5D''@;'; put 'put ''bHJTaGFwZVNocmluaywiYWNjZXNzaWJpbGl0eS0xIjpMLkNsclNoYXBlQWNjZXNzaWJpbGl0eTEsImFjY2Vzc2liaWxpdHktMiI6TC5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyLCJzb3J0LWJ5IjpMLkNsclNoYXBlU29ydEJ5LCJjb2xsYXBzZS1jYXJkIjpMLkNsclNoYXBlQ29sbGFwc2VDYXJk''@;'; put 'put ''LCJleHBhbmQtY2FyZCI6TC5DbHJTaGFwZUV4cGFuZENhcmQsYnJpZWZjYXNlOkwuQ2xyU2hhcGVCcmllZmNhc2UsImNvbG9yLXBpY2tlciI6TC5DbHJTaGFwZUNvbG9yUGlja2VyLCJjb3B5LXRvLWNsaXBib2FyZCI6TC5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZCwiZmlsdGVyLTIiOkwuQ2xy''@;'; put 'put ''U2hhcGVGaWx0ZXIyLCJkcmFnLWhhbmRsZSI6TC5DbHJTaGFwZURyYWdIYW5kbGUsbW9vbjpMLkNsclNoYXBlTW9vbixzdW46TC5DbHJTaGFwZVN1bix3YW5kOkwuQ2xyU2hhcGVXYW5kLGNsb25lOkwuQ2xyU2hhcGVDbG9uZSxkZXRhaWxzOkwuQ2xyU2hhcGVEZXRhaWxzLCJkcmFnLWhhbmRs''@;'; put 'put ''ZS1jb3JuZXIiOkwuQ2xyU2hhcGVEcmFnSGFuZGxlQ29ybmVyLGVyYXNlcjpMLkNsclNoYXBlRXJhc2VyLGxhbmRzY2FwZTpMLkNsclNoYXBlTGFuZHNjYXBlLHBhc3RlOkwuQ2xyU2hhcGVQYXN0ZSxwb3J0cmFpdDpMLkNsclNoYXBlUG9ydHJhaXQsImZpbGUtemlwIjpMLkNsclNoYXBlRmls''@;'; put 'put ''ZVppcCwiZmlsdGVyLW9mZiI6TC5DbHJTaGFwZUZpbHRlck9mZixyZWN5Y2xlOkwuQ2xyU2hhcGVSZWN5Y2xlLHRyZWU6TC5DbHJTaGFwZVRyZWUsZmlzaDpMLkNsclNoYXBlRmlzaCxmb3JtOkwuQ2xyU2hhcGVGb3JtLGZ1ZWw6TC5DbHJTaGFwZUZ1ZWwsc25vd2ZsYWtlOkwuQ2xyU2hhcGVT''@;'; put 'put ''bm93Zmxha2UsdGFibGU6TC5DbHJTaGFwZVRhYmxlLCJkb3QtY2lyY2xlIjpMLkNsclNoYXBlRG90Q2lyY2xlLHZvbHVtZTpMLkNsclNoYXBlVm9sdW1lLGNyb3NzaGFpcnM6TC5DbHJTaGFwZUNyb3NzaGFpcnMsYmV0YTpMLkNsclNoYXBlQmV0YSwiY29sb3ItcGFsZXR0ZSI6TC5DbHJTaGFw''@;'; put 'put ''ZUNvbG9yUGFsZXR0ZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJlZGl0IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBlbmNpbCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywibm90ZS1lZGl0Iiwo''@;'; put 'put ''MCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLm5vdGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMsImdyb3VwIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnVzZXJzKSksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; put 'put ''KEwuRXNzZW50aWFsU2hhcGVzLCJkb2N1bWVudCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5maWxlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJhZGQiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRpYWxTaGFwZXMu''@;'; put 'put ''cGx1cykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiY2FuY2VsIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLmJhbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicmVtb3ZlIiwoMCxCLmRlc2NyaXB0''@;'; put 'put ''b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzWyJ0aW1lcy1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywic2lnbi1pbiIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5sb2dpbikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShMLkVzc2VudGlhbFNoYXBlcywic2lnbi1vdXQiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRpYWxTaGFwZXMubG9nb3V0KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJsaWdodG5pbmciLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5Fc3NlbnRp''@;'; put 'put ''YWxTaGFwZXMuYm9sdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiZmxvdy1jaGFydCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5vcmdhbml6YXRpb24pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMs''@;'; put 'put ''ImFsZXJ0IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzWyJidWJibGUtZXhjbGFtYXRpb24iXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicGlubmVkIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBp''@;'; put 'put ''bmJvYXJkKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuRXNzZW50aWFsU2hhcGVzLCJhdHRhY2htZW50IiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnBhcGVyY2xpcCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVu''@;'; put 'put ''dCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS1kb3duIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnNocmluaykpLE9iamVj''@;'; put 'put ''dC5kZWZpbmVQcm9wZXJ0eShMLkVzc2VudGlhbFNoYXBlcywicmVzaXplLXVwIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuRXNzZW50aWFsU2hhcGVzLnJlc2l6ZSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3''@;'; put 'put ''aW5kb3cuQ2xhcml0eUljb25zLmFkZChMLkVzc2VudGlhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIjpmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KEwsIl9fZXNNb2R1bGUiLHt2YWx1ZToh''@;'; put 'put ''MH0pLEwuTWVkaWFTaGFwZXM9TC5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlPUwuQ2xyU2hhcGVNaWNyb3Bob25lPUwuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9TC5DbHJTaGFwZVJlcGxheU9uZT1MLkNsclNoYXBlUmVwbGF5QWxsPUwuQ2xyU2hhcGVJbWFnZUdhbGxlcnk9TC5DbHJTaGFwZU11c2lj''@;'; put 'put ''Tm90ZT1MLkNsclNoYXBlRmlsbVN0cmlwPUwuQ2xyU2hhcGVIZWFkcGhvbmVzPUwuQ2xyU2hhcGVWb2x1bWVNdXRlPUwuQ2xyU2hhcGVWb2x1bWVVcD1MLkNsclNoYXBlVm9sdW1lRG93bj1MLkNsclNoYXBlU2h1ZmZsZT1MLkNsclNoYXBlVmlkZW9DYW1lcmE9TC5DbHJTaGFwZUNhbWVyYT1M''@;'; put 'put ''LkNsclNoYXBlRmFzdEZvcndhcmQ9TC5DbHJTaGFwZVJld2luZD1MLkNsclNoYXBlUG93ZXI9TC5DbHJTaGFwZVN0b3A9TC5DbHJTaGFwZVN0ZXBGb3J3YXJkPUwuQ2xyU2hhcGVQYXVzZT1MLkNsclNoYXBlUGxheT12b2lkIDA7dmFyIEI9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxz''@;'; put 'put ''L3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVBsYXk9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjA3LDMxLjZBMi4wNywyLjA3LDAsMCwxLDYsMjkuNTNWNi4zMkEyLjA3LDIuMDcsMCwwLDEs''@;'; put 'put ''OSw0LjQ3TDMyLjIxLDE2LjA4YTIuMDcsMi4wNywwLDAsMSwwLDMuN0w5LDMxLjM4QTIuMDYsMi4wNiwwLDAsMSw4LjA3LDMxLjZabTAtMjUuMzRMOCw2LjMyVjI5LjUzbC4xLjA2TDMxLjMxLDE4YS4wNi4wNiwwLDAsMCwwLS4wNloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTYuMDgsOC45NCw0LjQ3QTIuMDcsMi4wNywwLDAsMCw2LDYuMzJWMjkuNTNhMi4wNiwyLjA2LDAsMCwwLDMsMS44NUwzMi4xNiwxOS43N2EyLjA3LDIuMDcsMCwwLDAsMC0zLjdaIi8+JyksTC5DbHJTaGFwZVBhdXNl''@;'; put 'put ''PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIuOTMsMzJINi4wN0EyLjA3LDIuMDcsMCwwLDEsNCwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSw2LjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMTUsNi4w''@;'; put 'put ''N1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMTIuOTMsMzJaTTEzLDZINlYzMGg3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjkuOTMsMzJIMjMuMDdBMi4wNywyLjA3LDAsMCwxLDIxLDI5LjkzVjYuMDdB''@;'; put 'put ''Mi4wNywyLjA3LDAsMCwxLDIzLjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMzIsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMjkuOTMsMzJaTTMwLDZIMjNWMzBoN1oiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4''@;'; put 'put ''PSIzLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIy''@;'; put 'put ''LjA3IiByeT0iMi4wNyIvPicpLEwuQ2xyU2hhcGVTdGVwRm9yd2FyZD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTUsMzIuMjNhMiwyLDAsMCwxLTItMlY1Ljc3QTIsMiwwLDAsMSw2LjE3LDQuMTRMMjMuMjMs''@;'; put 'put ''MTYuMzhhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTcsMzEuODZBMiwyLDAsMCwxLDUsMzIuMjNaTTUsNS43N1YzMC4yM0wyMi4wNywxOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMxLDMySDI4YTIsMiww''@;'; put 'put ''LDAsMS0yLTJWNmEyLDIsMCwwLDEsMi0yaDNhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCwwLDEsMzEsMzJaTTI4LDZWMzBoM1Y2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik01LDMxLjlhMiwyLDAsMCwxLTItMlY1''@;'; put 'put ''LjQ0QTIsMiwwLDAsMSw2LjEyLDMuODFMMjMuMTgsMTZhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTIsMzEuNTJBMiwyLDAsMCwxLDUsMzEuOVoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiB4PSIyNS45NSIgeT0iMy42NyIg''@;'; put 'put ''d2lkdGg9IjciIGhlaWdodD0iMjgiIHJ4PSIyIiByeT0iMiIvPicpLEwuQ2xyU2hhcGVTdG9wPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzJINmEyLDIsMCwwLDEtMi0yVjZBMiwyLDAsMCwxLDYsNEgz''@;'; put 'put ''MGEyLDIsMCwwLDEsMiwyVjMwQTIsMiwwLDAsMSwzMCwzMlpNNiw2VjMwSDMwVjZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NiIgeT0iNCIgd2lkdGg9IjI3Ljk5IiBoZWlnaHQ9IjI4IiByeD0iMiIgcnk9''@;'; put 'put ''IjIiLz4nKSxMLkNsclNoYXBlUG93ZXI9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMWExLDEsMCwwLDEtMS0xVjRhMSwxLDAsMCwxLDIsMFYyMEExLDEsMCwwLDEsMTgsMjFaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4xNWExNSwxNSwwLDAsMS03LjUyLTI4LDEsMSwwLDAsMSwxLDEuNzMsMTMsMTMsMCwxLDAsMTMsMCwxLDEsMCwxLDEsMS0xLjczLDE1LDE1LDAsMCwxLTcuNTIsMjhaIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOCwyMWExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTIsMFYyMEExLDEsMCwwLDAsMTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMi41MSwxNS40SDMwLjQ0YTEzLDEzLDAsMSwxLTE5LTcuNSwxLDEsMCwwLDAtMS0xLjczQTE1LDE1LDAsMSwwLDMzLDE5LjE1LDE0LjksMTQuOSwwLDAsMCwzMi41MSwx''@;'; put 'put ''NS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwx''@;'; put 'put ''LjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEt''@;'; put 'put ''MVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVsLS4zMSwwQTEzLDEzLDAsMSwxLDExLjQ4LDcuOWEx''@;'; put 'put ''LDEsMCwwLDAtMS0xLjczLDE1LDE1LDAsMSwwLDIxLjMxLDcuMUE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9''@;'; put 'put ''IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS4wNiwxNy42OGExLjI4LDEuMjgsMCwwLDEtMS4yOS0xLjI4Vjgu''@;'; put 'put ''NjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40QTEuMjgsMS4yOCwwLDAsMSwxOC4wNiwxOS42OFpNMTgsMjcuNzlBOS44OCw5Ljg4LDAsMCwxLDEyLjE3LDkuODVhMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMs''@;'; put 'put ''NS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS40LDEuNCwwLDAsMSwxLjk0LS4yOUE5Ljg4LDkuODgsMCwwLDEsMTgsMjcuNzlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLTZBOS43LDkuNywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0xNS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4LDAsMSwwLDExLjQzLDUuOCw3LjA4LDcuMDgsMCww''@;'; put 'put ''LDAtLjQ1LTIuNDlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0djQuNGExLjI5LDEuMjksMCwwLDEtMi41OCwwVjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMHYuNzFsMy43Ni02LjUxQTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2LDAsMCwwLS4yMy0yLjYxWiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjku''@;'; put 'put ''MDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTMuNTctLjlBOS44Myw5LjgzLDAs''@;'; put 'put ''MCwxLDI4LDE3Ljg5YTEwLDEwLDAsMSwxLTE1LjgzLTgsMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS4zOCwxLjM4LDAs''@;'; put 'put ''MCwxLDEuNTItLjQ5LDcuNDUsNy40NSwwLDAsMS0uMy02LjgzLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuNzcsOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwVjE4LjRhMS4yOSwxLjI5LDAsMCwxLTIuNTgsMFoiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksTC5DbHJTaGFwZVJld2luZD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjA5LDMxLjU4bC0xNS4zMi0xMmEyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkExLjc3LDEuNzcsMCwwLDEsMjAsNnY2LjdMMzAuODMsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJB''@;'; put 'put ''MiwyLDAsMCwxLDM0LDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS43NywxLjc3LDAsMCwxLS44NSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMlpNMzIsMzBsLjA2LTI0TDE4LDE2LjhWNkwzLDE4LDE4LDMwVjE5LjJa''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTYuOTIsMzEuNTgsMS42LDE5LjU3YTIsMiwwLDAsMSwwLTMuMTVsMTUuMzItMTJBMS45MywxLjkzLDAsMCwxLDE5LDQuMiwxLjg5LDEuODksMCwwLDEsMjAsNnY2LjdMMzAu''@;'; put 'put ''NjYsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDMzLjgzLDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS44OSwxLjg5LDAsMCwxLTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaIi8+Jyks''@;'; put 'put ''TC5DbHJTaGFwZUZhc3RGb3J3YXJkPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuNzcsMzEuOTJhMiwyLDAsMCwxLS44Ni0uMkExLjgxLDEuODEsMCwwLDEsMTYsMjkuOTN2LTYuN0w1LjI0LDMxLjVhMS45''@;'; put 'put ''NCwxLjk0LDAsMCwxLTIuMDYuMjIsMiwyLDAsMCwxLTEuMTEtMS43OXYtMjRBMiwyLDAsMCwxLDMuMTgsNC4xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi4yMkwxNiwxMi42MVY1LjkxYTEuODEsMS44MSwwLDAsMSwuOTEtMS43OUExLjkzLDEuOTMsMCwwLDEsMTksNC4zNGwxNS4zMiwxMmEyLDIs''@;'; put 'put ''MCwwLDEsMCwzLjE1TDE5LDMxLjVBMiwyLDAsMCwxLDE3Ljc3LDMxLjkyWm0wLTEyLjhWMjkuOTNsMTUuMjYtMTItMTUuMzItMTIsLjA2LDEwLjgxTDQsNS45MXYyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy43''@;'; put 'put ''MSwzMmEyLDIsMCwwLDEtLjg2LS4yQTEuNzcsMS43NywwLDAsMSwxNiwzMHYtNi43TDUuMTcsMzEuNThhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjJBMiwyLDAsMCwxLDIsMzBWNkEyLDIsMCwwLDEsMy4xMSw0LjJhMS45MywxLjkzLDAsMCwxLDIuMDYuMjJMMTYsMTIuNjlWNmExLjc3LDEuNzcs''@;'; put 'put ''MCwwLDEsLjg1LTEuNzksMS45MywxLjkzLDAsMCwxLDIuMDYuMjJsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNWwtMTUuMzIsMTJBMiwyLDAsMCwxLDE3LjcxLDMyWiIvPicpLEwuQ2xyU2hhcGVDYW1lcmE9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4''@;'; put 'put ''QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMjJINFYxMGg4LjY3bDEuNTUtNGg3LjU2bDEuNTUsNEgzMloiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwxOWE5LDksMCwxLDAsOS05QTksOSwwLDAsMCw5LDE5Wm0xNi40LDBBNy40LDcuNCwwLDEsMSwxOCwxMS42LDcuNDEsNy40MSwwLDAsMSwyNS40LDE5WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjM3LDEyLjgzYS44LjgsMCwwLDAtLjgtLjhINi4xN2EuOC44LDAsMCwwLDAsMS42aDIuNEEuOC44LDAsMCwwLDkuMzcsMTIuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjM0LDE5YTUuNTcsNS41NywwLDAsMCwzLjI0LDVsLjg1LTEuMzdhNCw0LDAsMSwxLDQuMTEtNi42MWwuODYtMS4zOEE1LjU2LDUuNTYsMCwwLDAsMTIuMzQsMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwy''@;'; put 'put ''LDAsMCwwLDMyLDhaTTYuMTcsMTMuNjNhLjguOCwwLDAsMSwwLTEuNmgyLjRhLjguOCwwLDAsMSwwLDEuNlpNMTgsMjhhOSw5LDAsMSwxLDktOUE5LDksMCwwLDEsMTgsMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MTEuMTEsMTkuMDZhNy4wNyw3LjA3LDAsMCwwLDQuMTEsNi40MWwxLjA5LTEuNzRhNSw1LDAsMSwxLDUuMjItOC4zOWwxLjA5LTEuNzZhNy4wNiw3LjA2LDAsMCwwLTExLjUxLDUuNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksTC5DbHJTaGFwZVZpZGVv''@;'; put 'put ''Q2FtZXJhPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQsMTAuMzRhMi4xMSwyLjExLDAsMCwwLTEuMTYtMS45LDIsMiwwLDAsMC0yLjEzLjE1TDI2LDExLjZWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCww''@;'; put 'put ''LTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjQuNGw0LjY0LDNhMi4wNywyLjA3LDAsMCwwLDIuMi4yQTIuMTEsMi4xMSwwLDAsMCwzNCwyNS42NlpNMzEuOTMsMjUuNzdjLS4wNiwwLS4xMSwwLS4xOS0uMDZMMjQsMjAuNzdWMjhINmEyLDIsMCwwLDEtMi0yVjEwQTIs''@;'; put 'put ''MiwwLDAsMSw2LDhIMjR2Ny4yM2w3LjgtNWEuMTEuMTEsMCwwLDEsLjEzLDAsLjExLjExLDAsMCwxLC4wNy4xMVYyNS42NkEuMTEuMTEsMCwwLDEsMzEuOTMsMjUuNzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIu''@;'; put 'put ''Myw5LjM1LDI2LDEyLjlWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjMuMDhsNi4zLDMuNTVBMS4xLDEuMSwwLDAsMCwzNCwyNS43N1YxMC4yQTEuMSwxLjEsMCwwLDAsMzIuMyw5LjM1WiIvPicpLEwuQ2xyU2hhcGVT''@;'; put 'put ''aHVmZmxlPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuNjEsMTFoOC42MmwtMy4zLDMuM2ExLDEsMCwxLDAsMS40MSwxLjQyTDM0LDEwLjA4bC0uNzEtLjcxaDBMMjguMzQsNC40M2ExLDEsMCwwLDAtMS40''@;'; put 'put ''MSwxLjQyTDMwLjExLDlIMjFhMSwxLDAsMCwwLS44Ni41TDE3LjUsMTQuMDlsMS4xNiwyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMS4wNywyNS4wN0gzYTEsMSwwLDAsMCwwLDJoOC42NWExLDEsMCwwLDAs''@;'; put 'put ''Ljg2LS41TDE1LjE4LDIyLDE0LDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yOC4zNCwyMC4xN2ExLDEsMCwwLDAtMS40MSwxLjQybDMuNSwzLjVIMjEuNjFMMTIuNTEsOS41M2ExLDEsMCwwLDAtLjg2LS41''@;'; put 'put ''SDNhMSwxLDAsMSwwLDAsMmg4LjA3bDkuMSwxNS41NWExLDEsMCwwLDAsLjg2LjVIMjkuOWwtMywzYTEsMSwwLDAsMCwxLjQxLDEuNDJsNC45NS00Ljk0aDBsLjcxLS43MVoiLz4nKSxMLkNsclNoYXBlVm9sdW1lRG93bj0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjExYTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzNBOC4yMSw4LjIxLDAsMCwxLDIzLjk0LDI1LDEsMSwwLDAsMSwyMy40MSwyNS4xMVoiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzJhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuNDFBMiwyLDAsMCwxLDIwLDZWMzBhMiwyLDAsMCwx''@;'; put 'put ''LTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzJaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuMjhMMTgsMzBWNmwtNy42NSw3LjY4YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0y''@;'; put 'put ''My40MSwyNS4xMWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0yIiBkPSJNMTguMzQsMy44Nyw5LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjQuNjJBMSwxLDAsMCwwLDE4LjM0LDMuODdaIi8+JyksTC5DbHJTaGFwZVZvbHVtZVVwPSgwLEIuY2xySWNv''@;'; put 'put ''blNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMjVhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43Myw4LjIxLDguMjEsMCwwLDEsLjI0LDE0LjA2QTEsMSww''@;'; put 'put ''LDAsMSwyMy40MSwyNS4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCwwLDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQu''@;'; put 'put ''NDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDZhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0y''@;'; put 'put ''VjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuMzlBMiwyLDAsMCwxLDIwLDZ2MjRhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzIuMDZaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuM0wxOCwzMC4wNlY2TDEwLjM1LDEzLjdhMSwxLDAsMCwxLS43MS4zWk0xOCw2WiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkEx''@;'; put 'put ''LDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCwwLDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQu''@;'; put 'put ''NDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOC4zMyw0LDkuMDcsMTJoLTZhMSwxLDAsMCwwLTEsMXY5LjkyYTEsMSwwLDAsMCwxLDFIOC44''@;'; put 'put ''OGw5LjQ2LDguMjRBMSwxLDAsMCwwLDIwLDMxLjQzVjQuNzJBMSwxLDAsMCwwLDE4LjMzLDRaIi8+JyksTC5DbHJTaGFwZVZvbHVtZU11dGU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zLjYxLDYuNDEsOS4x''@;'; put 'put ''OSwxMkg0YTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDkuMTRsNy40MSw3LjQ3QTIsMiwwLDAsMCwxOCwzMmEyLDIsMCwwLDAsLjc2LS4xNUEyLDIsMCwwLDAsMjAsMzBWMjIuNzdsNS44OSw1Ljg5Yy0uMjUuMTUtLjQ5LjI5LS43NS40MmExLDEsMCwwLDAsLjksMS43OSwxNC40LDE0''@;'; put 'put ''LjQsMCwwLDAsMS4zMS0uNzVsMi4yOCwyLjI4TDMxLDMxLDUsNVpNMTgsMzBsLTcuNzMtNy43N0ExLDEsMCwwLDAsOS41NiwyMkg0VjE0SDkuNjRhMSwxLDAsMCwwLC43MS0uM2wuMjYtLjI2TDE4LDIwLjgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC44OSw2LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI5LDI2LjFsMS40MiwxLjQyQTE0LjQyLDE0LjQyLDAsMCwwLDI1Ljc2LDQuODhhMSwxLDAsMSwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjI0LDMuNzFMMjYsMjMuMTNBOC4xNSw4LjE1LDAsMCwwLDI3LjgsMThhOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDZ2OS4xNWwyLDJWNmEyLDIsMCwwLDAtMy40Mi0xLjQxTDEyLDkuMTdsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMSIgZD0iTTI0Ljg3LDYuNjlBMTIuNDIsMTIuNDIsMCwwLDEsMjguNzUsMjYuM2wxLjQyLDEuNDJBMTQuNDMsMTQuNDMsMCwwLDAsMjUuNzQsNC44OGExLDEsMCwwLDAtLjg3LDEuOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTIiIGQ9Ik0yNy4zLDI3LjY3aDBsLTMuODQtMy44NC0uNTctLjU3aDBMNC42Myw1LDMuMjEsNi40MSw4LjgsMTJIM2ExLDEsMCwwLDAtMSwxVjIzYTEsMSwwLDAsMCwxLDFIOC44M2w5LjUxLDguM0ExLDEsMCwwLDAsMjAsMzEuNTVWMjMuMmw1LjU5LDUuNTljLS4xNy4xLS4z''@;'; put 'put ''NC4yLS41MS4yOWExLDEsMCwwLDAsLjksMS43OWMuMzctLjE5LjcyLS40LDEuMDgtLjYybDIuMTQsMi4xNEwzMC42MSwzMWwtMy4yNS0zLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcs''@;'; put 'put ''Ni4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjQyLDMuOTJsMS40MiwxLjQyYTguMTYsOC4xNiwwLDAsMCwyLTUuMzQsOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC00IiBkPSJNMjAsNC42MmExLDEsMCwwLDAtMS42Ni0uNzVsLTYuNDIsNS42TDIwLDE3LjU0WiIvPicpLEwuQ2xyU2hhcGVIZWFkcGhvbmVzPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; put 'put ''MTgsM0ExNC4yNywxNC4yNywwLDAsMCw0LDE3LjVWMzFIOS4yQTIuNzQsMi43NCwwLDAsMCwxMiwyOC4zM1YyMS42N0EyLjc0LDIuNzQsMCwwLDAsOS4yLDE5SDZWMTcuNUExMi4yNywxMi4yNywwLDAsMSwxOCw1LDEyLjI3LDEyLjI3LDAsMCwxLDMwLDE3LjVWMTlIMjYuOEEyLjc0LDIuNzQs''@;'; put 'put ''MCwwLDAsMjQsMjEuNjd2Ni42N0EyLjc0LDIuNzQsMCwwLDAsMjYuOCwzMUgzMlYxNy41QTE0LjI3LDE0LjI3LDAsMCwwLDE4LDNaTTkuMiwyMWEuNzUuNzUsMCwwLDEsLjguNjd2Ni42N2EuNzUuNzUsMCwwLDEtLjguNjdINlYyMVpNMjYsMjguMzNWMjEuNjdhLjc1Ljc1LDAsMCwxLC44LS42''@;'; put 'put ''N0gzMHY4SDI2LjhBLjc1Ljc1LDAsMCwxLDI2LDI4LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwxNy41VjMxSDguMkExLjc0LDEuNzQsMCwwLDAsMTAsMjkuMzNWMjIu''@;'; put 'put ''NjdBMS43NCwxLjc0LDAsMCwwLDguMiwyMUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjIxSDI3LjhBMS43NCwxLjc0LDAsMCwwLDI2LDIyLjY3djYuNjdBMS43NCwxLjc0LDAsMCwwLDI3LjgsMzFIMzJWMTcuNUExNC4yNywxNC4yNyww''@;'; put 'put ''LDAsMCwxOCwzWiIvPicpLEwuQ2xyU2hhcGVGaWxtU3RyaXA9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEy''@;'; put 'put ''LDIsMCwwLDAsMzAsNFptMCwyNkg2VjZIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE0LjYsMjMuMDdhMS4yOSwxLjI5LDAsMCwwLDEuMjQuMDlsOC43My00YTEuMywxLjMsMCwwLDAsMC0yLjM3aDBsLTgu''@;'; put 'put ''NzMtNEExLjMsMS4zLDAsMCwwLDE0LDE0djhBMS4yOSwxLjI5LDAsMCwwLDE0LjYsMjMuMDdabTEtOC42TDIzLjMxLDE4LDE1LjYsMjEuNTFaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iOCIgeT0iNyIgd2lkdGg9''@;'; put 'put ''IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE0IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNSIgeD0iMjAiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSIyNiIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjgiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgeD0iMTQiIHk9IjI2IiB3aWR0aD0iMiIg''@;'; put 'put ''aGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjAiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMTAiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY2''@;'; put 'put ''QTIsMiwwLDAsMCwzMCw0Wk0yMCw3aDJ2M0gyMFpNMTQsN2gydjNIMTRaTTEwLDI5SDhWMjZoMlptMC0xOUg4VjdoMlptNiwxOUgxNFYyNmgyWm02LDBIMjBWMjZoMlptMy4xNi0xMC4xNkwxNS4zOSwyMy4yQTEsMSwwLDAsMSwxNCwyMi4yOFYxMy41N2ExLDEsMCwwLDEsMS40MS0uOTFMMjUu''@;'; put 'put ''MTYsMTdBMSwxLDAsMCwxLDI1LjE2LDE4Ljg0Wk0yOCwyOUgyNlYyNmgyWm0wLTE5SDI2VjdoMloiLz4nKSxMLkNsclNoYXBlTXVzaWNOb3RlPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgICAg''@;'; put 'put ''IGQ9Ik0zMS42OCw2LjE2Yy0xLjkyLTMuMy0xMC42LTQtMTEuNTgtNC4wOUwxOSwyVjIyLjM0YTUuODksNS44OSwwLDAsMC0uODItLjU2LDguMzMsOC4zMywwLDAsMC02LjUzLS40MUM3LjU3LDIyLjcsNC45MiwyNi41LDUuNzgsMjkuODRhNS4zMyw1LjMzLDAsMCwwLDIuNjYsMy4zMiw3LjQ4''@;'; put 'put ''LDcuNDgsMCwwLDAsMy42MS44OEE5LjU0LDkuNTQsMCwwLDAsMTUsMzMuNTdjMy42Ny0xLjE4LDYuMTctNC4zMyw2LjA2LTcuMzZWOS4zNGEyOS4xNCwyOS4xNCwwLDAsMSw2LjU1LDEuNDMsMSwxLDAsMSwwLC43Mi0xLjg3QTMxLjM3LDMxLjM3LDAsMCwwLDIxLDcuMzNWNC4xN2MzLjMzLjM2''@;'; put 'put ''LDgsMS4zOCw4LjkyLDMsMiwzLjQxLTIuMzMsNy4zNi0yLjM3LDcuNGExLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNlpNMTQuMzUsMzEuNjdhNi40Myw2LjQzLDAsMCwxLTUtLjI2LDMuMzEsMy4zMSwwLDAsMS0xLjY5LTIuMDdjLS42LTIuMzMsMS40''@;'; put 'put ''NS01LjA1LDQuNTgtNi4wNmE3LjUyLDcuNTIsMCwwLDEsMi4zLS4zNyw1LjUyLDUuNTIsMCwwLDEsMi42NS42MiwzLjMxLDMuMzEsMCwwLDEsMS42OSwyLjA3QzE5LjU0LDI3Ljk0LDE3LjQ5LDMwLjY2LDE0LjM1LDMxLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMtMTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4yOWE1Ljg4LDUuODgsMCwwLDAtLjgxLS41NSw4LjMzLDguMzMsMCwwLDAtNi41My0uNDFjLTQuMTIsMS4zMy02Ljc3LDUuMTMt''@;'; put 'put ''NS45MSw4LjQ3YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5LjU0LDAsMCwwLDE1LDMzLjUyYzMuNy0xLjE5LDYuMi00LjM3LDYuMDYtNy40MiwwLDAsMCwwLDAsMFY4LjQ5YzEsLjEyLDIuMzcuMzMsMy44Mi42NGExMS4xNywxMS4xNyww''@;'; put 'put ''LDAsMSw0LjA2LDEuNDZjMSwuNjYuMzgsMS45LjMzLDJhMTEuOCwxMS44LDAsMCwxLTEuNjYsMiwxLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNloiLz4nKSxMLkNsclNoYXBlSW1hZ2VHYWxsZXJ5PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0z''@;'; put 'put ''Mi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMwSDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOC41NiwxOS40NWEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjU2LDE5LjQ1Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcsMTYuNDUsMS42LDEuNiwwLDAsMSw4LjU2LDE0Ljg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuOSwyOGw2LTYsMy4xOCwzLjE4TDE0LjI2LDI4aDJsNy40Ni03LjQ2TDMwLDI2Ljc3di0yTDI0LjIsMTlhLjcxLjcxLDAsMCwwLTEsMGwtNS4xNiw1LjE2TDE0LjM3LDIwLjVhLjcxLjcxLDAsMCwwLTEsMEw1LjkyLDI4WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwx''@;'; put 'put ''LDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFoMFY0aDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwx''@;'; put 'put ''MS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk04LjU2LDEzLjQ1YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguNTYsMTMuNDVaTTMwLDI4aC0yNGw3LjQ2LTcuNDdh''@;'; put 'put ''LjcxLjcxLDAsMCwxLDEsMGwzLjY4LDMuNjhMMjMuMjEsMTlhLjcxLjcxLDAsMCwxLDEsMEwzMCwyNC43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZVJlcGxheUFsbD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNDYsMjYu''@;'; put 'put ''MjJhMS40LDEuNCwwLDAsMCwxLS40Mmw1LjU5LTUuNTZhMS40MywxLjQzLDAsMCwwLC40Mi0xLDEuNDYsMS40NiwwLDAsMC0uNDItMWwtNS41OS01LjU2YTEuNDMsMS40MywwLDAsMC0yLjQ0LDFWMjQuNzlhMS40MSwxLjQxLDAsMCwwLC44OCwxLjMyQTEuNTQsMS41NCwwLDAsMCwxNy40Niwy''@;'; put 'put ''Ni4yMlptLjE2LTEyLjE2LDUuMTksNS4xNi01LjE5LDUuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcu''@;'; put 'put ''MjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0yIiAvPicpLEwuQ2xyU2hhcGVSZXBsYXlPbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDI3LjI3YTEsMSwwLDAsMCwxLTFWMTRhMSwxLDAsMCwwLTEtMUgxOWEzLjgsMy44LDAsMCwwLTEuMS4yM2wtMiwuNjJhLjkyLjkyLDAsMCwwLS43Mi44Ni44OC44OCwwLDAsMCwuODgu''@;'; put 'put ''ODYsMS40NiwxLjQ2LDAsMCwwLC40My0uMDhMMTgsMTUuMDd2MTEuMkExLDEsMCwwLDAsMTksMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2''@;'; put 'put ''LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwx''@;'; put 'put ''Ljg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMzIsMzBINFYxMkgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwxLDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgw''@;'; put 'put ''VjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGgg''@;'; put 'put ''ZD0iTTEyLjgyLDI2Ljc5YTEuNzQsMS43NCwwLDAsMCwuOTMuMjgsMS42OCwxLjY4LDAsMCwwLC42OS0uMTVsOS43Ny00LjM2YTEuNjksMS42OSwwLDAsMCwwLTMuMUwxNC40NCwxNS4xYTEuNywxLjcsMCwwLDAtMi4zOSwxLjU1djguNzJBMS43LDEuNywwLDAsMCwxMi44MiwyNi43OVptLjYz''@;'; put 'put ''LTEwLjE0YS4yOS4yOSwwLDAsMSwuMTQtLjI1LjMuMywwLDAsMSwuMTYsMCwuMjcuMjcsMCwwLDEsLjEyLDBsOS43Nyw0LjM1YS4yOS4yOSwwLDAsMSwuMTguMjguMjguMjgsMCwwLDEtLjE4LjI3bC05Ljc3LDQuMzZhLjI4LjI4LDAsMCwxLS4yOCwwLC4zMS4zMSwwLDAsMS0uMTQtLjI1WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgs''@;'; put 'put ''MS44OCwwLDAsMCwzMi4xMiwxMFpNMjQuMTgsMjEuODNsLTkuNzcsNC4zNkExLDEsMCwwLDEsMTMsMjUuMjhWMTYuNTZhMSwxLDAsMCwxLDEuNDEtLjkxTDI0LjE4LDIwQTEsMSwwLDAsMSwyNC4xOCwyMS44M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBh''@;'; put 'put ''dGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0yNmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZU1pY3JvcGhvbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI0YzMuOSwwLDctMy4xLDctN1Y5YzAtMy45LTMuMS03LTctN3MtNywzLjEtNyw3djhDMTEsMjAuOSwxNC4xLDI0LDE4LDI0eiBN''@;'; put 'put ''MTMsOWMwLTIuOCwyLjItNSw1LTVzNSwyLjIsNSw1djhcblx0XHRjMCwyLjgtMi4yLDUtNSw1cy01LTIuMi01LTVWOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdI''@;'; put 'put ''NmMwLDYuMyw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0yIiAvPjxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLDE3aC0yYzAsNS41LTQuNSwx''@;'; put 'put ''MC0xMCwxMFM4LDIyLjUsOCwxN0g2YzAsNi4zLDQuOCwxMS40LDExLDExLjlWMzJoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtMy4xQzI1LjIsMjguNCwzMCwyMy4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlTWljcm9waG9uZU11dGU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDE3aC0yYzAsMS44LTAuNSwzLjUtMS40LDVsMS41LDEuNUMyOS4zLDIxLjUsMjkuOSwxOS4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDRjMi44LDAsNSwyLjIsNSw1djhjMCwwLjQtMC4xLDAuOC0wLjIsMS4ybDEuNiwxLjZjMC40LTAuOSwwLjYtMS44LDAuNi0yLjhWOWMwLTMuOS0zLjItNy03LjEtNi45XG5cdFx0Yy0yLjksMC01LjYsMS45LTYuNSw0LjdMMTMs''@;'; put 'put ''OC4zQzEzLjUsNS45LDE1LjYsNC4yLDE4LDR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMu''@;'; put 'put ''Ni0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRz''@;'; put 'put ''LTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IE0xMy44LDE5LjdDMTMuMywxOC45LDEzLDE4LDEzLDE3di0yLjZsNy4xLDcuMUMxNy45LDIyLjUsMTUuMiwyMS44LDEzLjgsMTkuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; put 'put ''IiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LDE3VjljMC0zLjktMy4yLTctNy4xLTYuOWMtMi45LDAt''@;'; put 'put ''NS42LDEuOS02LjUsNC43bDEzLDEzQzI0LjgsMTguOSwyNSwxNy45LDI1LDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2Mx''@;'; put 'put ''LjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwx''@;'; put 'put ''LTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuTWVkaWFTaGFwZXM9e3BsYXk6TC5DbHJTaGFwZVBsYXkscGF1c2U6TC5DbHJTaGFwZVBhdXNlLCJz''@;'; put 'put ''dGVwLWZvcndhcmQiOkwuQ2xyU2hhcGVTdGVwRm9yd2FyZCxzdG9wOkwuQ2xyU2hhcGVTdG9wLHBvd2VyOkwuQ2xyU2hhcGVQb3dlcixyZXdpbmQ6TC5DbHJTaGFwZVJld2luZCwiZmFzdC1mb3J3YXJkIjpMLkNsclNoYXBlRmFzdEZvcndhcmQsY2FtZXJhOkwuQ2xyU2hhcGVDYW1lcmEsInZp''@;'; put 'put ''ZGVvLWNhbWVyYSI6TC5DbHJTaGFwZVZpZGVvQ2FtZXJhLHNodWZmbGU6TC5DbHJTaGFwZVNodWZmbGUsInZvbHVtZS11cCI6TC5DbHJTaGFwZVZvbHVtZVVwLCJ2b2x1bWUtZG93biI6TC5DbHJTaGFwZVZvbHVtZURvd24sInZvbHVtZS1tdXRlIjpMLkNsclNoYXBlVm9sdW1lTXV0ZSxoZWFk''@;'; put 'put ''cGhvbmVzOkwuQ2xyU2hhcGVIZWFkcGhvbmVzLCJmaWxtLXN0cmlwIjpMLkNsclNoYXBlRmlsbVN0cmlwLCJtdXNpYy1ub3RlIjpMLkNsclNoYXBlTXVzaWNOb3RlLCJpbWFnZS1nYWxsZXJ5IjpMLkNsclNoYXBlSW1hZ2VHYWxsZXJ5LCJyZXBsYXktYWxsIjpMLkNsclNoYXBlUmVwbGF5QWxs''@;'; put 'put ''LCJyZXBsYXktb25lIjpMLkNsclNoYXBlUmVwbGF5T25lLCJ2aWRlby1nYWxsZXJ5IjpMLkNsclNoYXBlVmlkZW9HYWxsZXJ5LG1pY3JvcGhvbmU6TC5DbHJTaGFwZU1pY3JvcGhvbmUsIm1pY3JvcGhvbmUtbXV0ZSI6TC5DbHJTaGFwZU1pY3JvcGhvbmVNdXRlfSwidW5kZWZpbmVkIiE9dHlw''@;'; put 'put ''ZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5NZWRpYVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJp''@;'; put 'put ''Y3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlNvY2lhbFNoYXBlcz1MLkNsclNoYXBlSGFzaHRhZz1MLkNsclNoYXBlQ3Jvd249TC5DbHJTaGFwZVRodW1ic0Rvd249TC5DbHJTaGFwZVRodW1ic1VwPUwuQ2xyU2hhcGVTYWRGYWNlPUwuQ2xy''@;'; put 'put ''U2hhcGVOZXV0cmFsRmFjZT1MLkNsclNoYXBlSGFwcHlGYWNlPUwuQ2xyU2hhcGVQaWN0dXJlPUwuQ2xyU2hhcGVDaGF0QnViYmxlPUwuQ2xyU2hhcGVUYWxrQnViYmxlcz1MLkNsclNoYXBlSGVhcnRCcm9rZW49TC5DbHJTaGFwZUhlYXJ0PUwuQ2xyU2hhcGVJbmJveD1MLkNsclNoYXBlRmxh''@;'; put 'put ''Zz1MLkNsclNoYXBlVGFza3M9TC5DbHJTaGFwZUVudmVsb3BlPUwuQ2xyU2hhcGVCb29rbWFyaz1MLkNsclNoYXBlSGFsZlN0YXI9TC5DbHJTaGFwZVN0YXI9TC5DbHJTaGFwZVNoYXJlPXZvaWQgMDt2YXIgQj1tZSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25m''@;'; put 'put ''aWcudHMiKSxFPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLEVlPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKTtMLkNsclNoYXBlU2hhcmU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNs''@;'; put 'put ''MTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVptMC0yMGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSwyNy41Myw0Wk03LDIxYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDcsMjFaTTI3LjUzLDMyYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDI3LjUzLDMy''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDct''@;'; put 'put ''MS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVoiLz4nKSxMLkNsclNoYXBlU3Rhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMSIgZD0iTTI3LjE5LDM0YTIuMjIsMi4yMiwwLDAsMS0xLjI0LS4zOGwtNy40Ni01YS4yMi4yMiwwLDAsMC0uMjUsMGwtNy40Niw1QTIuMjIsMi4yMiwwLDAsMSw3LjQsMzEuMjFsMi40NS04LjY0YS4yMy4yMywwLDAsMC0uMDgtLjI0TDIuNzEsMTYuNzhhMi4yMiwyLjIyLDAsMCwxLDEu''@;'; put 'put ''MjktNGw5LS4zNGEuMjMuMjMsMCwwLDAsLjItLjE1bDMuMS04LjQzYTIuMjIsMi4yMiwwLDAsMSw0LjE3LDBsMy4xLDguNDNhLjIzLjIzLDAsMCwwLC4yLjE1bDksLjM0YTIuMjIsMi4yMiwwLDAsMSwxLjI5LDRMMjcsMjIuMzNhLjIyLjIyLDAsMCwwLS4wOC4yNGwyLjQ1LDguNjRBMi4yMywy''@;'; put 'put ''LjIzLDAsMCwxLDI3LjE5LDM0Wm0tOC44Mi03LjQyQTIuMjEsMi4yMSwwLDAsMSwxOS42LDI3bDcuNDYsNWEuMjIuMjIsMCwwLDAsLjM0LS4yNWwtMi40NS04LjY0YTIuMjEsMi4yMSwwLDAsMSwuNzctMi4zNWw3LjA2LTUuNTVhLjIyLjIyLDAsMCwwLS4xMy0uNGwtOS0uMzRhMi4yMiwyLjIy''@;'; put 'put ''LDAsMCwxLTItMS40NmwtMy4xLTguNDNhLjIyLjIyLDAsMCwwLS40MiwwTDE1LjA2LDEzYTIuMjIsMi4yMiwwLDAsMS0yLDEuNDZsLTksLjM0YS4yMi4yMiwwLDAsMC0uMTMuNEwxMSwyMC43NmEyLjIyLDIuMjIsMCwwLDEsLjc3LDIuMzVMOS4zMywzMS43NWEuMjEuMjEsMCwwLDAsLjA4LjI0''@;'; put 'put ''LjIuMiwwLDAsMCwuMjYsMGw3LjQ2LTVBMi4yMiwyLjIyLDAsMCwxLDE4LjM2LDI2LjYyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIsMCwwLDAtMS4yOS00bC05LS4zNGEuMjMu''@;'; put 'put ''MjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEtLjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4zNSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAs''@;'; put 'put ''My4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIsMCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0WiIvPicpLEwuQ2xyU2hhcGVIYWxmU3Rhcj0oMCxFLmNsckljb25TVkcpKCc8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBsLTMuMSw4LjQzYS4yMy4yMywwLDAsMS0u''@;'; put 'put ''Mi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIyLjIyLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxQTIuMjMsMi4yMywwLDAsMCw5LjQ5LDM0YTIuMjIsMi4yMiwwLDAsMCwxLjI0LS4zOGw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIyLDIu''@;'; put 'put ''MjIsMCwwLDAsMy4zOC0yLjQ1bC0yLjQ1LTguNjRhLjIzLjIzLDAsMCwxLC4wOC0uMjRaTTE4LjMzLDI2LjYyaDBhMi4yMSwyLjIxLDAsMCwwLTEuMjQuMzhMOS42MiwzMmEuMjIuMjIsMCwwLDEtLjM0LS4yNWwyLjQ1LTguNjRBMi4yMSwyLjIxLDAsMCwwLDExLDIwLjc2TDMuOSwxNS4yMWEu''@;'; put 'put ''MjIuMjIsMCwwLDEsLjEzLS40bDktLjM0QTIuMjIsMi4yMiwwLDAsMCwxNSwxM2wzLjEtOC40M2EuMi4yLDAsMCwxLC4yMS0uMTVoMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIy''@;'; put 'put ''LDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41NWEuMjMuMjMsMCwwLDEsLjA4LjI0TDcu''@;'; put 'put ''MzUsMzEuMjFhMi4yMiwyLjIyLDAsMCwwLDMuMzgsMi40NWw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIsMi4yLDAsMCwwLDIuNTUsMCwyLjIsMi4yLDAsMCwwLC44My0yLjRsLTIuNDUtOC42NGEuMjIuMjIsMCwwLDEsLjA4LS4yNFpNMjQuOSwyMy4xMWwyLjQ1LDguNjRB''@;'; put 'put ''LjIyLjIyLDAsMCwxLDI3LDMybC03LjQ2LTVhMi4yMSwyLjIxLDAsMCwwLTEuMjQtLjM4aDBWNC40NGgwYS4yLjIsMCwwLDEsLjIxLjE1TDIxLjYyLDEzYTIuMjIsMi4yMiwwLDAsMCwyLDEuNDZsOSwuMzRhLjIyLjIyLDAsMCwxLC4xMy40bC03LjA2LDUuNTVBMi4yMSwyLjIxLDAsMCwwLDI0''@;'; put 'put ''LjksMjMuMTFaIi8+JyksTC5DbHJTaGFwZUJvb2ttYXJrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMzRhMiwyLDAsMCwxLTEuNDEtLjU4TDE4LDI2LjgybC02LjU0LDYuNTJBMiwyLDAsMCwxLDgsMzEu''@;'; put 'put ''OTNWNGEyLDIsMCwwLDEsMi0ySDI2YTIsMiwwLDAsMSwyLDJWMzJhMiwyLDAsMCwxLTIsMlptMC0yaDBWNEgxMFYzMS45M0wxOCwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMkgxMEEyLDIsMCwwLDAs''@;'; put 'put ''OCw0VjMxLjkzYTIsMiwwLDAsMCwzLjQyLDEuNDFsNi41NC02LjUyLDYuNjMsNi42QTIsMiwwLDAsMCwyOCwzMlY0QTIsMiwwLDAsMCwyNiwyWiIvPicpLEwuQ2xyU2hhcGVFbnZlbG9wZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMSIgZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0zMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5YTIsMiwwLDAsMCwyLjgyLDBMMzIsOS4y''@;'; put 'put ''MXYxNy41bC03LjM2LTcuMzYtMS40MSwxLjQxWk01LjMxLDhIMzAuMzhMMTcuODQsMjAuNDdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIsMTMuMDhWMjYuNzFsLTcuMzYt''@;'; put 'put ''Ny4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDguODMtOC43OGE3LjQ0LDcuNDQsMCwwLDEtMi0uODVsLTguMjYsOC4yMUw1LjMxLDhIMjIuODFhNy40OSw3LjQ5LDAsMCwxLS4zMS0y''@;'; put 'put ''SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMkE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMDhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuODYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjI2SDMyVjI2LjcxbC03LjM2LTcuMzYtMS40''@;'; put 'put ''MSwxLjQxTDMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMGw2LjY2LTYuNjNIMjMuMDhsLTUuMjQsNS4yMUw1LjMxLDhIMjAuMDZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWMTUuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkx''@;'; put 'put ''SDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zMyw2YTIsMiwwLDAsMC0uNDEsMGgtMjhhMiwy''@;'; put 'put ''LDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODEsNy4zOSwxOS4yNSwyMS44OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIs''@;'; put 'put ''MCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzMuODEsNy4zOVpNNS4zLDI4SDMuOTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNiwxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI5bC04LjcxLDguNjhhMiwyLDAsMCwxLTIuODIsMEwyLDcuNWEyLDIsMCwwLDAtLjA3LjVWMjhhMiwyLDAsMCwwLDIsMmgyOGEyLDIsMCwwLDAsMi0yVjEyLjM5QTcu''@;'; put 'put ''NDUsNy40NSwwLDAsMSwzMCwxMy41Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjUuNzdsLTYu''@;'; put 'put ''NTIsNi40OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFsLTcuMjktNy4yMywxLjQxLTEuNDEsNy4y''@;'; put 'put ''Nyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yMi45NCwxNS40aC0uN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwx''@;'; put 'put ''Ny44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4y''@;'; put 'put ''OCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksTC5DbHJTaGFwZVRhc2tzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjkuMjksMzRINi43''@;'; put 'put ''MUExLjcsMS43LDAsMCwxLDUsMzIuMzFWNi42OUExLjc1LDEuNzUsMCwwLDEsNyw1SDlWN0g3VjMySDI5VjdIMjdWNWgyLjI1QTEuNywxLjcsMCwwLDEsMzEsNi42OVYzMi4zMUExLjcsMS43LDAsMCwxLDI5LjI5LDM0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuNjYsMjUuNzYsMTEuMywyMC40QTEsMSwwLDAsMSwxMi43MiwxOWwzLjk0LDMuOTQsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNiwxMUgxMFY3LjMzQTIuMzQsMi4zNCwwLDAsMSwxMi4zMyw1aDEuNzlhNCw0LDAsMCwxLDcuNzUsMGgxLjc5QTIuMzQsMi4zNCwwLDAsMSwyNiw3LjMzWk0xMiw5SDI0VjcuMzNBLjMzLjMzLDAsMCwwLDIzLjY3LDdIMjBWNmEyLDIsMCwwLDAtNCww''@;'; put 'put ''VjdIMTIuMzNhLjMzLjMzLDAsMCwwLS4zMy4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LDkuODksMTkuNTYsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3''@;'; put 'put ''SDE2VjZhMiwyLDAsMCwxLDQsMFY3aC43MWwxLjE2LTJhNCw0LDAsMCwwLTcuNzQsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMWg4LjY0QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjQuMTksMTUuNGwtNy41Myw3LjUzTDEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMCwuMi0uMzFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNS40VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43LDAsMCwwLDMxLDMyLjMxVjE1LjRaIi8+''@;'; put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCww''@;'; put 'put ''LDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMi43MiwxOUExLDEsMCwwLDAsMTEuMywy''@;'; put 'put ''MC40bDUuMzYsNS4zNkwyNi43MSwxNS43MWExLDEsMCwwLDAtMS40MS0xLjQxbC04LjY0LDguNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMlY3LjMzQS4z''@;'; put 'put ''My4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIz''@;'; put 'put ''LjEzLDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIu''@;'; put 'put ''MzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1i''@;'; put 'put ''YWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjkuMjksNC45NWgtNy4yYTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAs''@;'; put 'put ''NSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWNi42NEExLjcsMS43LDAsMCwwLDI5LjI5LDQuOTVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAs''@;'; put 'put ''MSwxLDFWOS44SDExLjI1Wm0xNC41Miw5LjIzLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDcuMTQtNy4xNGExLjQsMS40LDAsMSwxLDIsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjUuODgsMTUuNGExLjM4LDEuMzgsMCwwLDEtLjExLDEuODFsLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDctN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwwLS4wOUgxMS4yNVY4YTEsMSww''@;'; put 'put ''LDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2guNDJMMjIsNC43NmE0LjMsNC4zLDAsMCwwLTguMDkuMTlIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTUu''@;'; put 'put ''NFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAs''@;'; put 'put ''MCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41YTcuNDksNy40OSwwLDAsMS02LjQ2''@;'; put 'put ''LTMuN0gxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gyLjI2YTcuNTMsNy41MywwLDAsMS0uMDctMSw3LjUzLDcuNTMsMCwwLDEsLjA4LTEuMDVoLS41YTQuMzEsNC4zMSwwLDAsMC04LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0''@;'; put 'put ''VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVabS00LjIzLDMuNzEtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwzLjI2LDMuMjYsNy4xNC03LjE0YTEuNCwx''@;'; put 'put ''LjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxMLkNsclNoYXBlRmxhZz0oMCxFLmNsckljb25TVkcp''@;'; put 'put ''KCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMzRhMSwxLDAsMCwxLTEtMVYzQTEsMSwwLDAsMSw3LDNWMzNBMSwxLDAsMCwxLDYsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTIiIGQ9Ik0zMC41NSwzLjgyYTEsMSwwLDAsMC0xLDAsMTQuOSwxNC45LDAsMCwxLTYuMTMsMS4xNiwxMy4xMSwxMy4xMSwwLDAsMS01LjE4LTEuNDksMTIuNzgsMTIuNzgsMCwwLDAtNS0xLjQ1QTEwLjg2LDEwLjg2LDAsMCwwLDksMi44NVY1LjA4QTguOCw4LjgsMCwwLDEs''@;'; put 'put ''MTMuMjUsNGExMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjZBMTguNzUsMTguNzUsMCwwLDAsMjksNi4xMlYxOC45NWExNi4xNiwxNi4xNiwwLDAsMS01LjU4LjkzLDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OSwxMi43OCwxMi43OCwwLDAsMC01''@;'; put 'put ''LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwxNy43OVYyMGE4LjgsOC44LDAsMCwxLDQuMjUtMS4wOCwxMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjYsMTYuNzksMTYuNzksMCwwLDAsNy0xLjM3LDEsMSwwLDAsMCwuNTUtLjg5VjQuNjdBMSwxLDAs''@;'; put 'put ''MCwwLDMwLjU1LDMuODJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTUuOTIsMmExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsNS45MiwyWiIvPlxuICAgICAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC41LDMuODJhMSwxLDAsMCwwLTEsMCwxNC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OUExMi43OCwxMi43OCwwLDAsMCwxMy4yLDIsMTAuODYsMTAuODYsMCww''@;'; put 'put ''LDAsOSwyLjg1VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEsMCwwLDAsMzAuNSwzLjgyWiIvPicpLEwu''@;'; put 'put ''Q2xyU2hhcGVJbmJveD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMjMsMTMuMDlhMSwxLDAsMCwwLDAsMS40MUwxOCwyMC4zbDUuNzktNS43OWExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDE2LjQ3VjJBMSwxLDAsMCwwLDE4LDFhMSwxLDAsMCwwLTEsMXYxNC41bC0zLjM4LTMuMzhB''@;'; put 'put ''MSwxLDAsMCwwLDEyLjIzLDEzLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41LDVIMjJWN2g3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAuNzcsMGwtLjEtLjg5SDdWN2g3VjVINi41''@;'; put 'put ''QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjYuNUExLjUsMS41LDAsMCwwLDI5LjUsNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEsMCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4z''@;'; put 'put ''OEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1YyMUgyMy42MWwtLjEuODlhNS40Miw1LjQy''@;'; put 'put ''LDAsMCwxLTEwLjc3LDBsLS4xLS44OUg3VjdoN1Y1SDYuNUExLjUsMS41LDAsMCwwLDUsNi41djI1QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAs''@;'; put 'put ''MCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLEwuQ2xyU2hhcGVIZWFydD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzIuNDNhMSwxLDAsMCwxLS42MS0uMjFDMTEuODMsMjcuOSw4LDI0LjE4LDUuMzIsMjAuNTEsMS45LDE1LjgyLDEuMTIsMTEuNDksMyw3LjY0YzEuMzQtMi43''@;'; put 'put ''NSw1LjE5LTUsOS42OS0zLjY5QTkuODcsOS44NywwLDAsMSwxOCw3LjcyYTkuODcsOS44NywwLDAsMSw1LjMxLTMuNzdjNC40OS0xLjI5LDguMzUuOTQsOS42OSwzLjY5LDEuODgsMy44NSwxLjEsOC4xOC0yLjMyLDEyLjg3QzI4LDI0LjE4LDI0LjE3LDI3LjksMTguNjEsMzIuMjJBMSwxLDAs''@;'; put 'put ''MCwxLDE4LDMyLjQzWk0xMC4xMyw1LjU4QTUuOSw1LjksMCwwLDAsNC44LDguNTFjLTEuNTUsMy4xOC0uODUsNi43MiwyLjE0LDEwLjgxQTU3LjEzLDU3LjEzLDAsMCwwLDE4LDMwLjE2LDU3LjEzLDU3LjEzLDAsMCwwLDI5LjA2LDE5LjMzYzMtNC4xLDMuNjktNy42NCwyLjE0LTEwLjgxLTEt''@;'; put 'put ''Mi00LTMuNTktNy4zNC0yLjY1YTgsOCwwLDAsMC00Ljk0LDQuMiwxLDEsMCwwLDEtMS44NSwwLDcuOTMsNy45MywwLDAsMC00Ljk0LTQuMkE3LjMxLDcuMzEsMCwwLDAsMTAuMTMsNS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUE5Ljg3LDkuODcsMCwwLDAsMTgsNy43MmE5Ljg3LDkuODcsMCwwLDAtNS4zMS0zLjc3QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDEx''@;'; put 'put ''LjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlSGVhcnRCcm9rZW49''@;'; put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjA5LTUtOS42OS0zLjY5YTkuODcsOS44NywwLDAsMC02LDQuODQsMTguOSwxOC45LDAsMCwwLTIuMjMsNS4zM2w1LjI4LDIuMzQtNC42LDQuMzcsMy40OSw0LjEsMS41Mi0xLjNMMTguNTQsMjFsNS40LTUu''@;'; put 'put ''MTNMMTcuNTgsMTNBMTYuMjMsMTYuMjMsMCwwLDEsMTkuNzUsOC45YTcuNjgsNy42OCwwLDAsMSw0LjExLTNjMy4zNC0uODksNi4zNC42LDcuMzQsMi42NSwxLjU1LDMuMTguODUsNi43Mi0yLjE0LDEwLjgxQTU3LjE2LDU3LjE2LDAsMCwxLDE4LDMwLjE2LDU3LjE2LDU3LjE2LDAsMCwxLDYu''@;'; put 'put ''OTQsMTkuMzNjLTMtNC4xLTMuNjktNy42NC0yLjE0LTEwLjgxYTUuOSw1LjksMCwwLDEsNS4zMy0yLjkzLDcuMzEsNy4zMSwwLDAsMSwyLC4yOSw3LjcsNy43LDAsMCwxLDMuMzgsMmwuMTUtLjNhMTAuNjYsMTAuNjYsMCwwLDEsMS0xLjQxLDkuNjQsOS42NCwwLDAsMC0zLjk0LTIuMjJDOC4y''@;'; put 'put ''LDIuNjYsNC4zNCw0Ljg5LDMsNy42NGMtMS44OCwzLjg1LTEuMSw4LjE4LDIuMzIsMTIuODdDOCwyNC4xOCwxMS44MywyNy45LDE3LjM5LDMyLjIyYTEsMSwwLDAsMCwxLjIzLDBjNS41NS00LjMxLDkuMzktOCwxMi4wNy0xMS43MUMzNC4xLDE1LjgyLDM0Ljg4LDExLjQ5LDMzLDcuNjRaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjItNS05LjY5LTMuNjlBMTEuNTUsMTEuNTUsMCwwLDAsMTguMTksNy41YTE2Ljg5LDE2Ljg5LDAsMCwwLTIuNDgsNC41NkwyMi4yNywx''@;'; put 'put ''NSwxNi43LDIwLjI2LDE5LDIzbC0xLjU3LDEuMzQtMy42LTQuMjIsNC43NC00LjUxLTUuNDQtMi40MWExOS40OSwxOS40OSwwLDAsMSwyLjMtNS41LDE0Ljc3LDE0Ljc3LDAsMCwxLDEuMDYtMS41NGwuMDYsMGE5LjY2LDkuNjYsMCwwLDAtMy44OS0yLjE4QzguMTksMi42Niw0LjM0LDQuODks''@;'; put 'put ''Myw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlVGFsa0J1YmJsZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1Yz''@;'; put 'put ''MmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAs''@;'; put 'put ''MC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWN0EzLDMsMCwwLDAsMzEsNFpNMzIsMjIuOTQsMjguNSwyMC4yMWExLDEsMCwwLDAtLjYxLS4yMUgxNGExLDEsMCwwLDEtMS0xVjdhMSwxLDAsMCwxLDEtMUgzMUEx''@;'; put 'put ''LjEsMS4xLDAsMCwxLDMyLDcuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVh''@;'; put 'put ''MywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2OS43MkwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMu''@;'; put 'put ''NzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTlWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwuNTYuODksMSwxLDAsMCwwLDEtLjFMOC43''@;'; put 'put ''MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMTRBNiw2LDAsMCwxLDgsMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcu''@;'; put 'put ''NTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjdBMywzLDAsMCwwLDMxLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMsMywwLDAsMC0zLDNWMzJhMSwxLDAsMCww''@;'; put 'put ''LC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjEyLjM3QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxMLkNsclNoYXBlQ2hh''@;'; put 'put ''dEJ1YmJsZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2''@;'; put 'put ''LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMDgsMTEuMDgsMCww''@;'; put 'put ''LDEsMjguMjksMjQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS41SDExYTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjc1LDIwLjVoLTcuNWExLDEsMCwwLDAsMCwyaDcuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuMjgsMTIuNUgy''@;'; put 'put ''NC43MmExLDEsMCwwLDAsMC0ySDExLjI4YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4zOCwxMi42OWE3LjQzLDcuNDMsMCwwLDEtMS44OS42NkExMC4zNSwxMC4zNSwwLDAsMSwz''@;'; put 'put ''MiwxNi41YTExLjA4LDExLjA4LDAsMCwxLTMuNzEsOC4xMSwxLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0xMmExNiwxNiwwLDAsMSw0LjU1LjY2QTcu''@;'; put 'put ''NDQsNy40NCwwLDAsMSwyMywzLjIyYTE4LDE4LDAsMCwwLTUtLjcyYy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAsMCwwLDQtOS4yN0ExMi4zMiwxMi4zMiww''@;'; put 'put ''LDAsMCwzMy4zOCwxMi42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSwxNS41YTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC4yNSwyMC41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRn''@;'; put 'put ''ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjgsMTEuNWExLDEsMCwwLDAsMSwxSDI0LjcyYTEsMSwwLDAsMCwuODMtLjQ3QTcuNTMsNy41MywwLDAsMSwyNCwxMC41SDExLjI4QTEsMSwwLDAsMCwxMC4yOCwxMS41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUsMTgsMi41Wm04LDE0YTEsMSwwLDAsMS0x''@;'; put 'put ''LDFIMTFhMSwxLDAsMCwxLDAtMkgyNUExLDEsMCwwLDEsMjYsMTYuNVptLTMuMjUsNWExLDEsMCwwLDEtMSwxaC03LjVhMSwxLDAsMCwxLDAtMmg3LjVBMSwxLDAsMCwxLDIyLjc1LDIxLjVabS0xMi40Ny0xMGExLDEsMCwwLDEsMS0xSDI0LjcyYTEsMSwwLDAsMSwwLDJIMTEuMjhBMSwxLDAs''@;'; put 'put ''MCwxLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjI1YTcuNDYsNy40NiwwLDAsMS00LjM1LTEuNCwxLDEsMCwwLDEtLjkzLjY1SDExLjI4YTEsMSwwLDAsMSwwLTJIMjQuMkE3LjQ2LDcu''@;'; put 'put ''NDYsMCwwLDEsMjMsMy4yYTE4LDE4LDAsMCwwLTUtLjdjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3LDEyLjM0LDEyLjM0LDAsMCwwLS42''@;'; put 'put ''OC00QTcuNDYsNy40NiwwLDAsMSwzMCwxMy4yNVpNMjEuNzUsMjIuNWgtNy41YTEsMSwwLDAsMSwwLTJoNy41YTEsMSwwLDAsMSwwLDJabTMuMjUtNUgxMWExLDEsMCwwLDEsMC0ySDI1YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNS43NSIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLEwuQ2xyU2hhcGVQaWN0dXJlPSgwLEUuY2xySWNvblNW''@;'; put 'put ''RykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywxMSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; put 'put ''PSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAsMCwwLDIyLjc4LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAtMywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42LDAsMCwxLDcuMzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zOCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0''@;'; put 'put ''VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0''@;'; put 'put ''QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBj''@;'; put 'put ''eD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs''@;'; put 'put ''MCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwy''@;'; put 'put ''MS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3''@;'; put 'put ''LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwxLjQxLDBMMzAsMjEuMTha''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRn''@;'; put 'put ''ZSIvPicpLEwuQ2xyU2hhcGVIYXBweUZhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC44OSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMDUiIGN5PSIxMy44OSIgcj0iMiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4xMywyOC4yMWE4LjY3LDguNjcsMCwwLDAsOC4yNi02SDkuODdBOC42Nyw4LjY3LDAsMCwwLDE4LjEzLDI4LjIxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTguODksMTMuODlhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsOC44OSwxMy44OVptOS4yNCwxNC4zMmE4LjY3LDguNjcsMCwwLDEtOC4yNi02SDI2LjM4''@;'; put 'put ''QTguNjcsOC42NywwLDAsMSwxOC4xMywyOC4yMVptNi45My0xMi4zMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyNS4wNSwxNS44OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLkNsclNoYXBlTmV1dHJhbEZhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBh''@;'; put 'put ''dGggZD0iTTI0LjA1LDIyLjA2aC0xMmExLDEsMCwwLDAsMCwyaDEyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpt''@;'; put 'put ''MCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwx''@;'; put 'put ''NiwwLDAsMCwxOCwyWm03LjA1LDIxLjA2YTEsMSwwLDAsMS0xLDFoLTEyYTEsMSwwLDAsMSwwLTJoMTJBMSwxLDAsMCwxLDI1LjA1LDIzLjA2Wk0yNywxNC4yOGExLjgsMS44LDAsMSwxLTEuOC0xLjhBMS44LDEuOCwwLDAsMSwyNywxNC4yOFptLTE1LjgsMS44YTEuOCwxLjgsMCwxLDEsMS44''@;'; put 'put ''LTEuOEExLjgsMS44LDAsMCwxLDExLjE2LDE2LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVTYWRGYWNlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAs''@;'; put 'put ''MzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMTYiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEuNDEiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjE2LDIwYTksOSwwLDAsMC03LjMzLDMuNzgs''@;'; put 'put ''MSwxLDAsMSwwLDEuNjMsMS4xNiw3LDcsMCwwLDEsMTEuMzEtLjEzLDEsMSwwLDAsMCwxLjYtMS4yQTksOSwwLDAsMCwxOC4xNiwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwz''@;'; put 'put ''NCwxOCwxNiwxNiwwLDAsMCwxOCwyWm05LDEyLjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuNTUsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjQxLDE2LjA4Wm0xNCw3LjUzYTEsMSwwLDAsMS0xLjYsMS4yLDcs''@;'; put 'put ''NywwLDAsMC0xMS4zMS4xMywxLDEsMCwxLDEtMS42My0xLjE2LDksOSwwLDAsMSwxNC41NC0uMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksTC5DbHJTaGFwZVRodW1ic1VwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwyNmMtMi45MiwxLjgy''@;'; put 'put ''LTcuMyw0LTkuMzcsNGgtNmExNi42OCwxNi42OCwwLDAsMS0zLjMxLTYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsNCwxNmg5VjZhMi4wNSwyLjA1LDAsMCwxLDEuMjYtMS42OWMuNzcsMiwyLjYyLDYuNTcsNC4yMyw4LjcyQTExLjM5LDExLjM5LDAsMCwwLDI0LDE2LjkxVjE0Ljc4YTkuMTMsOS4x''@;'; put 'put ''MywwLDAsMS0zLjkxLTNjLTEuODgtMi41MS00LjI5LTkuMTEtNC4zMS05LjE3QTEsMSwwLDAsMCwxNC41OSwyQzEzLjI1LDIuMzgsMTEsMy42LDExLDZ2OEgzYTEsMSwwLDAsMC0xLDEsMjksMjksMCwwLDAsMS40LDkuNjJjMS44OSw1LjQsNC4xLDcuMTQsNC4yLDcuMjJhMSwxLDAsMCwwLC42''@;'; put 'put ''MS4yMWg2LjQyYzIuNDMsMCw2LjU1LTIsOS4zNy0zLjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMzFIMjdhMSwxLDAsMCwxLTEtMVYxNGExLDEsMCwwLDEsMS0xaDdabS02LTJoNFYxNUgyOFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYzLDEyLjEyQzE3LjUxLDkuMjgsMTQuODgsMiwxNC44OCwyUzEyLDIuODMsMTIsNS4yNVYxNUgyLjIzYTI5LjQ2LDI5LjQ2LDAsMCwwLDEuNDQsOS43NEM1LjYxLDMw''@;'; put 'put ''LjI3LDcuOCwzMiw3LjgsMzJoNi44NkMxNi45LDMyLDIxLDMwLjA2LDI0LDI4LjMxVjE1LjUxQTEwLjg0LDEwLjg0LDAsMCwxLDE5LjYzLDEyLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNywxM2ExLDEsMCww''@;'; put 'put ''LDAtMSwxVjMwYTEsMSwwLDAsMCwxLDFoN1YxM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVRodW1ic0Rvd249KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEwYzIuOTItMS44Miw3LjMtNCw5LjM3LTRoNmExNi42OCwxNi42''@;'; put 'put ''OCwwLDAsMSwzLjMxLDYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsMzIsMjBIMjNWMzBhMi4wNSwyLjA1LDAsMCwxLTEuMjYsMS42OWMtLjc3LTItMi42Mi02LjU3LTQuMjMtOC43MkExMS4zOSwxMS4zOSwwLDAsMCwxMiwxOS4wOXYyLjEzYTkuMTMsOS4xMywwLDAsMSwzLjkxLDNjMS44OCwyLjUx''@;'; put 'put ''LDQuMjksOS4xMSw0LjMxLDkuMTdhMSwxLDAsMCwwLDEuMTkuNjNDMjIuNzUsMzMuNjIsMjUsMzIuNCwyNSwzMFYyMmg4YTEsMSwwLDAsMCwxLTEsMjksMjksMCwwLDAtMS40LTkuNjJjLTEuODktNS40LTQuMS03LjE0LTQuMi03LjIyQTEsMSwwLDAsMCwyNy43OSw0SDIxLjM3QzE4Ljk0LDQs''@;'; put 'put ''MTQuODMsNiwxMiw3LjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMiw1SDlhMSwxLDAsMCwxLDEsMVYyMmExLDEsMCwwLDEtMSwxSDJaTTgsN0g0VjIxSDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi4zNywyMy44NGMyLjEyLDIuODQsNC43NiwxMC4wNyw0Ljc2LDEwLjA3UzI0LDMzLjEzLDI0LDMwLjcxVjIxaDkuNzdhMjkuNDYsMjkuNDYsMCwwLDAtMS40NC05Ljc0QzMwLjM5LDUuNjgsMjguMiw0LDI4LjIs''@;'; put 'put ''NEgyMS4zNUMxOS4xLDQsMTUsNS45LDEyLDcuNjV2MTIuOEExMC44NCwxMC44NCwwLDAsMSwxNi4zNywyMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwyM2ExLDEsMCwwLDAsMS0xVjZBMSwxLDAsMCwwLDks''@;'; put 'put ''NUgyVjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQ3Jvd249KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik00LDEzLjMzQTEuMzksMS4zOSwwLDEsMCwyLjYsMTQuNzIsMS4zOSwxLjM5LDAsMCwwLDQsMTMuMzNaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuODEsMTUuODRhMjAuMzUsMjAuMzUsMCwwLDAtNC41OCwxLjQzLDIyLjcsMjIuNywwLDAsMC0zLjQ4LDIuMUExNy42OSwxNy42OSwwLDAsMSwyMiwxNi41N2E0Ny42NSw0Ny42NSwwLDAsMS0y''@;'; put 'put ''LjgtNy42OSwxLDEsMCwwLDAtMS0uNzQsMSwxLDAsMCwwLTEsLjc0LDQ2LjcxLDQ2LjcxLDAsMCwxLTIuOCw3LjY5LDE3LDE3LDAsMCwxLTEuNzYsMi44LDIyLjcsMjIuNywwLDAsMC0zLjQ4LTIuMSwyMC42NiwyMC42NiwwLDAsMC00LjU4LTEuNDMsMSwxLDAsMCwwLTEsLjM5LDEsMSwwLDAs''@;'; put 'put ''MC0uMDksMS4wNUE1MC4xMyw1MC4xMywwLDAsMSw3LjgyLDMxLjE3YTEsMSwwLDAsMCwxLC44M0gyNy42MmExLDEsMCwwLDAsMS0uODMsNTAuMTUsNTAuMTUsMCwwLDEsNC4yNi0xMy44OSwxLDEsMCwwLDAtLjA5LTEuMDVBMSwxLDAsMCwwLDMxLjgxLDE1Ljg0Wk0yNi43OSwzMEg5LjY0YTU1''@;'; put 'put ''LjY2LDU1LjY2LDAsMCwwLTMuNC0xMS43MSwxNS43NSwxNS43NSwwLDAsMSwyLjA5Ljc4LDIwLDIwLDAsMCwxLDMuODUsMi40NSwxLDEsMCwwLDAsMS4zOS0uMDksMTkuMjgsMTkuMjgsMCwwLDAsMi42Ny00LDQzLjQ2LDQzLjQ2LDAsMCwwLDItNC44OSw0MS43NCw0MS43NCwwLDAsMCwyLDQu''@;'; put 'put ''ODksMTkuOTIsMTkuOTIsMCwwLDAsMi42Niw0LDEsMSwwLDAsMCwxLjQuMDksMTkuMjEsMTkuMjEsMCwwLDEsMy44NS0yLjQ1LDE0Ljc3LDE0Ljc3LDAsMCwxLDIuMDktLjc4QTU1LjA3LDU1LjA3LDAsMCwwLDI2Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTIiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE4LjIyLDYuMzlBMS4zOSwxLjM5LDAsMSwwLDE2Ljg0LDUsMS4zOSwxLjM5''@;'; put 'put ''LDAsMCwwLDE4LjIyLDYuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTguMjMsMjYuMzRhMS4xMSwxLjExLDAsMSwwLDEuMSwxLjFBMS4xLDEuMSwwLDAsMCwxOC4yMywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMi41OCwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDEyLjU4LDI2LjM0WiIvPjxwYXRoIGQ9Ik0yMy44OSwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDIzLjg5''@;'; put 'put ''LDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cblxuICA8cGF0aCBkPSJNMi42LDExLjkzQTEuNCwxLjQsMCwxLDAsNCwxMy4zMywxLjQsMS40LDAsMCwwLDIuNiwxMS45M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; put 'put ''Lz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYuODQsNSwxLjM5LDEuMzksMCwwLDAsMTgu''@;'; put 'put ''MjIsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjYzLDE2LjFBMTguNjEsMTguNjEsMCwwLDAsMjgsMTcuMzRhMjEuNTcsMjEuNTcsMCwwLDAtNCwyLjQ5LDE5LjIsMTkuMiwwLDAsMS0yLjI2LTMuNDksNDguOTIsNDguOTIs''@;'; put 'put ''MCwwLDEtMi41Mi02LjU4LDEsMSwwLDAsMC0xLS43MWgwYTEsMSwwLDAsMC0xLC43MSw0OC40Miw0OC40MiwwLDAsMS0yLjUyLDYuNTgsMTguNjksMTguNjksMCwwLDEtMi4yNiwzLjQ4LDIyLjgxLDIyLjgxLDAsMCwwLTQtMi40OEExOC44MywxOC44MywwLDAsMCw0LjksMTYuMWExLDEsMCww''@;'; put 'put ''LDAtMSwuMzMsMSwxLDAsMCwwLS4xMywxLjA3LDU1LjksNTUuOSwwLDAsMSw0LDEzLjUsMSwxLDAsMCwwLDEsLjgzaDE5YTEsMSwwLDAsMCwxLS44Myw1NS45LDU1LjksMCwwLDEsNC0xMy41LDEsMSwwLDAsMC0uMTMtMS4wN0ExLDEsMCwwLDAsMzEuNjMsMTYuMVpNMTEuMDgsMjguNTVhMS4x''@;'; put 'put ''MSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwxMS4wOCwyOC41NVptNy4xNSwwYTEuMTEsMS4xMSwwLDAsMSwwLTIuMjEsMS4xMSwxLjExLDAsMCwxLDAsMi4yMVptNy4xNiwwYTEuMTEsMS4xMSwwLDEsMSwxLjEtMS4xMUExLjExLDEuMTEsMCwwLDEsMjUuMzksMjguNTVa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gICcpLEwuQ2xyU2hhcGVIYXNodGFnPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsMTJIMjUuMzRsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwyMy4zLDEySDE1LjExbDEuNTUtNy43NGExLDEs''@;'; put 'put ''MCwwLDAtMi0uMzlMMTMuMDcsMTJINmExLDEsMCwwLDAsMCwyaDYuNjdsLTEuNiw4SDRhMSwxLDAsMCwwLDAsMmg2LjY2TDkuMTEsMzEuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjY4LjY4LDAsMCwwLC4yLDAsMSwxLDAsMCwwLDEtLjhMMTIuNywyNGg4LjE5bC0xLjU1LDcuNzRhMSwxLDAsMCww''@;'; put 'put ''LC43OSwxLjE3LjYyLjYyLDAsMCwwLC4xOSwwLDEsMSwwLDAsMCwxLS44TDIyLjkzLDI0SDMwYTEsMSwwLDAsMCwwLTJIMjMuMzNsMS42MS04SDMyYTEsMSwwLDAsMCwwLTJaTTIxLjI5LDIySDEzLjFsMS42MS04SDIyLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMS44NywxMEgyNi4zMmwxLTQuODNBMSwxLDAsMCwwLDI2LjM1LDRoLTJhMSwxLDAsMCwwLTEsLjc4TDIyLjMzLDEwaC01LjRsMS00LjgzQTEsMSwwLDAsMCwxNyw0SDE1YTEsMSwwLDAsMC0xLC43OEwxMywxMEg3YTEsMSwwLDAsMC0xLC44bC0uNDEs''@;'; put 'put ''MmExLDEsMCwwLDAsMSwxLjJoNS41NUwxMC41LDIyaC02YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJIOS42OGwtMSw0LjgzYTEsMSwwLDAsMCwxLDEuMTdoMmExLDEsMCwwLDAsLjk1LS43OEwxMy42NywyNmg1LjRsLTEsNC44M0ExLDEsMCwwLDAsMTksMzJoMmExLDEs''@;'; put 'put ''MCwwLDAsMS0uNzhMMjMuMDUsMjZoNmExLDEsMCwwLDAsMS0uOGwuNC0yYTEsMSwwLDAsMC0xLTEuMkgyMy44N2wxLjYzLThoNmExLDEsMCwwLDAsMS0uOGwuNDEtMkExLDEsMCwwLDAsMzEuODcsMTBabS0xMiwxMmgtNS40bDEuNjQtOGg1LjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC0xIi8+XG4gICcpLEwuU29jaWFsU2hhcGVzPXtjcm93bjpMLkNsclNoYXBlQ3Jvd24sc2hhcmU6TC5DbHJTaGFwZVNoYXJlLHN0YXI6TC5DbHJTaGFwZVN0YXIsImhhbGYtc3RhciI6TC5DbHJTaGFwZUhhbGZTdGFyLGJvb2ttYXJrOkwuQ2xyU2hhcGVCb29rbWFyayxlbnZl''@;'; put 'put ''bG9wZTpMLkNsclNoYXBlRW52ZWxvcGUsY2FsZW5kYXI6RWUuQ2xyU2hhcGVDYWxlbmRhcixldmVudDpFZS5DbHJTaGFwZUV2ZW50LHRhc2tzOkwuQ2xyU2hhcGVUYXNrcyxmbGFnOkwuQ2xyU2hhcGVGbGFnLGluYm94OkwuQ2xyU2hhcGVJbmJveCxoYXNodGFnOkwuQ2xyU2hhcGVIYXNodGFn''@;'; put 'put ''LGhlYXJ0OkwuQ2xyU2hhcGVIZWFydCwiaGVhcnQtYnJva2VuIjpMLkNsclNoYXBlSGVhcnRCcm9rZW4sInRhbGstYnViYmxlcyI6TC5DbHJTaGFwZVRhbGtCdWJibGVzLCJjaGF0LWJ1YmJsZSI6TC5DbHJTaGFwZUNoYXRCdWJibGUscGljdHVyZTpMLkNsclNoYXBlUGljdHVyZSwiaGFwcHkt''@;'; put 'put ''ZmFjZSI6TC5DbHJTaGFwZUhhcHB5RmFjZSwibmV1dHJhbC1mYWNlIjpMLkNsclNoYXBlTmV1dHJhbEZhY2UsInNhZC1mYWNlIjpMLkNsclNoYXBlU2FkRmFjZSwidGh1bWJzLXVwIjpMLkNsclNoYXBlVGh1bWJzVXAsInRodW1icy1kb3duIjpMLkNsclNoYXBlVGh1bWJzRG93bn0sT2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KEwuU29jaWFsU2hhcGVzLCJmYXZvcml0ZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNoYXBlcy5zdGFyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuU29jaWFsU2hhcGVzLCJlbWFpbCIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNo''@;'; put 'put ''YXBlcy5lbnZlbG9wZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlNvY2lhbFNoYXBlcywiZGF0ZSIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlNvY2lhbFNoYXBlcy5jYWxlbmRhcikpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJp''@;'; put 'put ''dHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChMLlNvY2lhbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGVjaG5vbG9neS1zaGFwZXMudHMiOmZ1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoTCwiX19lc01v''@;'; put 'put ''ZHVsZSIse3ZhbHVlOiEwfSksTC5DbHJTaGFwZVZNV0FwcD1MLkNsclNoYXBlVk09TC5DbHJTaGFwZVJvdXRlcj1MLkNsclNoYXBlTmV0d29ya1N3aXRjaD1MLkNsclNoYXBlTmV0d29ya1NldHRpbmdzPUwuQ2xyU2hhcGVOZXR3b3JrR2xvYmU9TC5DbHJTaGFwZVRhYmxldD1MLkNsclNoYXBl''@;'; put 'put ''TW9iaWxlPUwuQ2xyU2hhcGVCYXR0ZXJ5PUwuQ2xyU2hhcGVBcHBsaWNhdGlvbj1MLkNsclNoYXBlQ29kZT1MLkNsclNoYXBlVGVybWluYWw9TC5DbHJTaGFwZURpc3BsYXk9TC5DbHJTaGFwZUNvbXB1dGVyPUwuQ2xyU2hhcGVGbG9wcHk9TC5DbHJTaGFwZVBsdWdpbj1MLkNsclNoYXBlRG93''@;'; put 'put ''bmxvYWRDbG91ZD1MLkNsclNoYXBlVXBsb2FkQ2xvdWQ9TC5DbHJTaGFwZUV4cG9ydD1MLkNsclNoYXBlSW1wb3J0PUwuQ2xyU2hhcGVTaGllbGRYPUwuQ2xyU2hhcGVTaGllbGQ9TC5DbHJTaGFwZVNoaWVsZENoZWNrPUwuQ2xyU2hhcGVSZXNvdXJjZVBvb2w9TC5DbHJTaGFwZURhdGFDbHVz''@;'; put 'put ''dGVyPUwuQ2xyU2hhcGVNZW1vcnk9TC5DbHJTaGFwZUNQVT1MLkNsclNoYXBlQnVpbGRpbmc9TC5DbHJTaGFwZUFwcGxpY2F0aW9ucz1MLkNsclNoYXBlQ2x1c3Rlcj1MLkNsclNoYXBlU3RvcmFnZT1MLkNsclNoYXBlSG9zdD1MLkNsclNoYXBlRGFzaGJvYXJkPUwuQ2xyU2hhcGVNb3VzZT1M''@;'; put 'put ''LkNsclNoYXBlS2V5Ym9hcmQ9TC5DbHJTaGFwZURldmljZXM9TC5DbHJTaGFwZUJhY2t1cD1MLkNsclNoYXBlQmFja3VwUmVzdG9yZT1MLkNsclNoYXBlSGFyZERpc2s9TC5DbHJTaGFwZVJhY2tTZXJ2ZXI9TC5DbHJTaGFwZVdpZmk9TC5DbHJTaGFwZUJ1bmRsZT1MLkNsclNoYXBlQmxvY2tz''@;'; put 'put ''R3JvdXA9TC5DbHJTaGFwZUJsb2NrPUwuQ2xyU2hhcGVMYXllcnM9TC5DbHJTaGFwZVVuaW5zdGFsbD1MLkNsclNoYXBlSW5zdGFsbD1MLkNsclNoYXBlTm9XaWZpPUwuQ2xyU2hhcGVQaG9uZUhhbmRzZXQ9TC5DbHJTaGFwZVJ1bGVyUGVuY2lsPXZvaWQgMCxMLlRlY2hub2xvZ3lTaGFwZXM9''@;'; put 'put ''TC5DbHJTaGFwZUZpbGVTaGFyZTI9TC5DbHJTaGFwZUNpQ2Q9TC5DbHJTaGFwZUFuaW1hdGlvbj1MLkNsclNoYXBlVGFwZURyaXZlPUwuQ2xyU2hhcGVNZWRpYUNoYW5nZXI9TC5DbHJDb250cm9sTHVuPUwuQ2xyU2hhcGVQb2Q9TC5DbHJTaGFwZU5vZGU9TC5DbHJTaGFwZU5hbWVzcGFjZT1M''@;'; put 'put ''LkNsclNoYXBlTm9kZXM9TC5DbHJTaGFwZU5vZGVHcm91cD1MLkNsclNoYXBlU3RvcmFnZUFkYXB0ZXI9TC5DbHJTaGFwZUhvc3RHcm91cD1MLkNsclNoYXBlU3F1aWQ9TC5DbHJTaGFwZUNhcGFjaXRvcj1MLkNsclNoYXBlUmVzaXN0b3I9TC5DbHJTaGFwZUluZHVjdG9yPUwuQ2xyU2hhcGVS''@;'; put 'put ''YWRhcj1MLkNsclNoYXBlVXNiPUwuQ2xyU2hhcGVRckNvZGU9TC5DbHJTaGFwZUZpbGVTaGFyZT1MLkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPUwuQ2xyU2hhcGVDb250YWluZXI9TC5DbHJTaGFwZUNkRHZkPUwuQ2xyU2hhcGVCYXJDb2RlPUwuQ2xyU2hhcGVBdG9tPUwuQ2xyU2hhcGVBc3Np''@;'; put 'put ''Z25Vc2VyPUwuQ2xyU2hhcGVQcm9jZXNzT25WTT1MLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPUwuQ2xyU2hhcGVCbHVldG9vdGg9TC5DbHJTaGFwZVNTRD1MLkNsclNoYXBlTlZNZT1MLkNsclNoYXBlSGFyZERyaXZlRGlza3M9TC5DbHJTaGFwZUhhcmREcml2ZT1MLkNsclNoYXBlQWRtaW5pc3Ry''@;'; put 'put ''YXRvcj1MLkNsclNoYXBlRmxhc2s9TC5DbHJTaGFwZUhlbGl4PUwuQ2xyU2hhcGVEZXBsb3k9TC5DbHJTaGFwZUNsb3VkVHJhZmZpYz1MLkNsclNoYXBlQ2xvdWRTY2FsZT1MLkNsclNoYXBlQ2xvdWROZXR3b3JrPUwuQ2xyU2hhcGVVbmxpbms9TC5DbHJTaGFwZUxpbms9TC5DbHJTaGFwZURp''@;'; put 'put ''c2Nvbm5lY3Q9TC5DbHJTaGFwZUNvbm5lY3Q9TC5DbHJTaGFwZVVuYXJjaGl2ZT1MLkNsclNoYXBlQXJjaGl2ZT1MLkNsclNoYXBlQ2VydGlmaWNhdGU9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpLEU9bWUoIi4vcHJv''@;'; put 'put ''amVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVJ1bGVyUGVuY2lsPSgwLEUuY2xySWNvblNWRykoJzxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBwb2ludHM9IjkgMTcuNDEgOSAyNyAxOC41OSAy''@;'; put 'put ''NyAxNi41OSAyNSAxMSAyNSAxMSAxOS40MSA5IDE3LjQxIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM0Ljg3LDMyLjI5LDMyLDI5LjM4VjMySDRWMjcuODVINnYtMS42SDRWMTkuNkg2VjE4SDRWMTEuNkg2VjEw''@;'; put 'put ''SDRWNC40MUwxOS45NCwyMC4yNlYxNy40NEwzLjcxLDEuMjlBMSwxLDAsMCwwLDIsMlYzM2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjQs''@;'; put 'put ''MzBoNGEyLDIsMCwwLDAsMi0yVjguN0wyNy43LDQuNDdhMiwyLDAsMCwwLTEuNzYtMWgwYTIsMiwwLDAsMC0xLjc2LDEuMDhMMjIsOC43MlYyOEEyLDIsMCwwLDAsMjQsMzBaTTI0LDkuMmwxLjk0LTMuNzdMMjgsOS4yMVYyNEgyNFptMCwxNi40M2g0djIuNDRIMjRaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuODcsMzIuMjEsMzAsMjcuMzdWOC43NUwyNy43LDQuNTJhMiwyLDAsMCwwLTMuNTQsMEwyMiw4Ljc2VjE5LjQxTDMuNzEsMS4yMUExLDEsMCwwLDAsMiwxLjkyVjEwSDQuMTd2MS42SDJWMThINC4x''@;'; put 'put ''N3YxLjZIMnY2LjY1SDQuMTd2MS42SDJ2NS4wN2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVpNMTAsMjZWMTYuOTRMMTkuMDcsMjZabTE4LDIuMTFIMjRWMjUuNjhoNFptMC00SDI0VjkuMjVsMS45NC0zLjc3TDI4LDkuMjZaIi8+XG4nKSxMLkNsclNoYXBlUGhvbmVI''@;'; put 'put ''YW5kc2V0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuNzMsMzUuNDRhNC43Miw0LjcyLDAsMCwxLTEtLjExLDMzLjkxLDMzLjkxLDAsMCwxLTE2LjYyLTguNzUsMzIuNzEsMzIuNzEsMCwwLDEtOS0xNi4y''@;'; put 'put ''NUE0LjU4LDQuNTgsMCwwLDEsMi40Niw2LjA1bDQtMy44NUEyLDIsMCwwLDEsOCwxLjY2YTIsMiwwLDAsMSwxLjQ1Ljg3bDUsNy4zOWExLjYsMS42LDAsMCwxLS4xMSwxLjlsLTIuNTEsM2ExOC45NCwxOC45NCwwLDAsMCw0LjE3LDUuODloMGExOS4yNiwxOS4yNiwwLDAsMCw2LjA3LDQuMDls''@;'; put 'put ''My4xMS0yLjQ3YTEuNjQsMS42NCwwLDAsMSwxLjg2LS4xMmw3LjU1LDQuODhBMiwyLDAsMCwxLDM1LDMwLjJsLTMuOSwzLjg2QTQuNzQsNC43NCwwLDAsMSwyNy43MywzNS40NFpNNy44NCwzLjY0bC00LDMuODVhMi41NCwyLjU0LDAsMCwwLS43NSwyLjQsMzAuNywzMC43LDAsMCwwLDguNDEs''@;'; put 'put ''MTUuMjYsMzEuOSwzMS45LDAsMCwwLDE1LjY0LDguMjMsMi43NSwyLjc1LDAsMCwwLDIuNS0uNzRsMy45LTMuODYtNy4yOS00LjcxLTMuMzQsMi42NmExLDEsMCwwLDEtLjkyLjE3LDIwLjA2LDIwLjA2LDAsMCwxLTcuMzYtNC43NWgwYTE5LjQ5LDE5LjQ5LDAsMCwxLTQuODctNy4yQTEsMSww''@;'; put 'put ''LDAsMSwxMCwxNGwyLjctMy4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4yMiwyMC42NGEyMC4zNywyMC4zNywwLDAsMCw3LjQsNC43OWwzLjc3LTNhLjY3LjY3LDAsMCwxLC43NiwwbDcsNC41MWEyLDIsMCww''@;'; put 'put ''LDEsLjMzLDMuMThsLTMuMjgsMy4yNGE0LDQsMCwwLDEtMy42MywxLjA3LDM1LjA5LDM1LjA5LDAsMCwxLTE3LjE1LTlBMzMuNzksMzMuNzksMCwwLDEsMS4xNSw4LjZhMy43OCwzLjc4LDAsMCwxLDEuMS0zLjU1bDMuNC0zLjI4YTIsMiwwLDAsMSwzLjEyLjMyTDEzLjQzLDlhLjYzLjYzLDAs''@;'; put 'put ''MCwxLDAsLjc1bC0zLjA3LDMuNjlBMTkuNzUsMTkuNzUsMCwwLDAsMTUuMjIsMjAuNjRaIi8+XG4nKSxMLkNsclNoYXBlTm9XaWZpPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuNDJhNCw0LDAsMSww''@;'; put 'put ''LDQsNEE0LDQsMCwwLDAsMTgsMjQuNDJabTAsNmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwzMC40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYuMjEsMjEuODVhMSwxLDAsMCwwLS4yMy0xLjQsMTMu''@;'; put 'put ''NTYsMTMuNTYsMCwwLDAtNS0yLjIzbDMuODcsMy44N0ExLDEsMCwwLDAsMjYuMjEsMjEuODVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDEwLjcyYTIwLjg4LDIwLjg4LDAsMCwwLTQuMTYuNDNsMS43''@;'; put 'put ''NCwxLjc0YTE5LDE5LDAsMCwxLDIuNDItLjE3QTE4Ljc2LDE4Ljc2LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNCIgZD0iTTMzLjU1LDguMkEyOC4xMSwyOC4xMSwwLDAsMCw4LjExLDUuMzZMOS42OSw2LjkzQTI2LDI2LDAsMCwxLDMyLjQ1LDkuODdhMSwxLDAsMCwwLDEuMS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; put 'put ''IGQ9Ik0xLjg0LDQuNzUsNC4yNyw3LjE4Yy0uNjIuMzQtMS4yMy43LTEuODMsMS4xQTEsMSwwLDEsMCwzLjU2LDkuOTRDNC4yNiw5LjQ3LDUsOSw1Ljc0LDguNjVsMy44NywzLjg3QTIwLjU5LDIwLjU5LDAsMCwwLDYuMjMsMTQuNCwxLDEsMCwwLDAsNy4zNiwxNmExOC44MiwxOC44MiwwLDAs''@;'; put 'put ''MSwzLjc3LTJsNC4xNiw0LjE2QTEzLjUxLDEzLjUxLDAsMCwwLDEwLDIwLjU1YTEsMSwwLDAsMCwxLjE4LDEuNjFBMTEuNTIsMTEuNTIsMCwwLDEsMTcsMjBsMTAuOCwxMC44LDEuNDEtMS40MS0yNi0yNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjkuNTQiIHI9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOS4xOCwxNy43MWwuMTEtLjE3YTEuNTEsMS41MSwwLDAsMC0uNDctMi4xQTIwLjU3LDIwLjU3LDAsMCww''@;'; put 'put ''LDE4LDEyLjM3Yy0uNTYsMC0xLjExLDAtMS42NS4wN2wzLjIxLDMuMjFhMTcuNDEsMTcuNDEsMCwwLDEsNy42LDIuNTJBMS40OSwxLjQ5LDAsMCwwLDI5LjE4LDE3LjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMy''@;'; put 'put ''Ljc2LDkuMzhBMjcuOSwyNy45LDAsMCwwLDEwLjE4LDYuMjdMMTIuODEsOC45QTI0LjY4LDI0LjY4LDAsMCwxLDMxLjEsMTIuMTJhMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMyw0Ljc1bDMuMSwzLjFBMjcuMjgsMjcuMjgsMCwwLDAsMy4xOCw5LjQyYTEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY5LDI0LjY5LDAsMCwxLDMuNjctMS45bDMuMTQsMy4x''@;'; put 'put ''NGEyMC42MywyMC42MywwLDAsMC00LjUzLDIuMDksMS41MSwxLjUxLDAsMCwwLS40NiwyLjFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NkExNy40NiwxNy40NiwwLDAsMSwxNC4yNSwxNmwzLjYsMy42YTEzLjM5LDEzLjM5LDAsMCwwLTYuNzksMS45MywxLjUsMS41LDAsMCwwLS40Niwy''@;'; put 'put ''LjA5bC4xLjE2YTEuNTIsMS41MiwwLDAsMCwyLjA2LjQ0LDEwLjIsMTAuMiwwLDAsMSw5LS43TDI5LDMwLjc1bDEuNDEtMS40MS0yNi0yNloiLz5cbicpLEwuQ2xyU2hhcGVJbnN0YWxsPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEwLjMsMTguODdsNyw2Ljg5YTEsMSwwLDAsMCwxLjQsMGw3LTYuODlhMSwxLDAsMCwwLTEuNC0xLjQzTDE5LDIyLjY1VjRhMSwxLDAsMCwwLTIsMFYyMi42NWwtNS4zLTUuMjFhMSwxLDAs''@;'; put 'put ''MCwwLTEuNCwxLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIu''@;'; put 'put ''NjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+PHBhdGggZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBW''@;'; put 'put ''MTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMt''@;'; put 'put ''NS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywx''@;'; put 'put ''MFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEz''@;'; put 'put ''LDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLEwuQ2xyU2hhcGVVbmluc3RhbGw9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAs''@;'; put 'put ''MCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBI''@;'; put 'put ''OS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEs''@;'; put 'put ''MS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAs''@;'; put 'put ''MC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMjksMjYuNzJhMSwxLDAsMCwwLDEuNDEsMEwx''@;'; put 'put ''OCwyMS40OWw1LjMsNS4yM0ExLDEsMCwwLDAsMjQuNywyNS4zbC01LjI4LTUuMjEsNC43NS00LjY5SDIyLjIzYTMuNjUsMy42NSwwLDAsMS0uODEtLjFMMTgsMTguNjhsLTUuMy01LjIzYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS4yOCw1LjIxTDExLjMsMjUuM0ExLDEsMCwwLDAsMTEuMjksMjYu''@;'; put 'put ''NzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwy''@;'; put 'put ''SDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwy''@;'; put 'put ''Mi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLEwuQ2xyU2hhcGVMYXllcnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVpNNS4zNCwxMi4xNmwxMi42Niw2LDEyLjY2LTZM''@;'; put 'put ''MTgsNi4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjYuMTZhMSwxLDAsMCwxLS40My0uMUwyLjU3LDE5YTEsMSwwLDEsMSwuODUtMS44MUwxOCwyNC4wNmwxNC41Ny02Ljg5QTEsMSwwLDEsMSwzMy40''@;'; put 'put ''MywxOWwtMTUsNy4wOUExLDEsMCwwLDEsMTgsMjYuMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwxLC44NS0xLjgxTDE4LDMwbDE0''@;'; put 'put ''LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAs''@;'; put 'put ''MSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0xOCwyNi4xNmExLDEs''@;'; put 'put ''MCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTMiIGQ9Ik0xOCwzMi4wN2ExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwuODUtMS44MUwxOCwzMGwxNC41Ny02Ljg5YTEsMSwwLDEsMSwuODUsMS44MUwxOC40MywzMkExLDEsMCwwLDEsMTgsMzIuMDdaIi8+XG4nKSxMLkNsclNoYXBlQmxvY2s9KDAsRS5jbHJJY29uU1ZH''@;'; put 'put ''KSgnPHBhdGggZD0iTTMxLjQyLDkuMDlsLTEzLTZhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTBBMSwxLDAsMCwwLDMxLjQyLDkuMDlaTTE4LDUuMSwyOC42''@;'; put 'put ''MSwxMCwxOCwxNC45LDcuMzksMTBaTTYsMTEuNTZsMTEsNS4wOHYxNC44TDYsMjYuMzZaTTE5LDMxLjQ0VjE2LjY0bDExLTUuMDh2MTQuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjUzVjI2LjM2''@;'; put 'put ''TDE5LDMxLjQ0VjE2LjY0bDIuNTctMS4xOWEzLjY3LDMuNjcsMCwwLDEtMi4xMS0xLjIyTDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsMy4wOCwxLjQyLDEtMS43NEwxOC40MiwzLjA5YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEsMCwwLDAsLjU4LjkxbDEzLDZh''@;'; put 'put ''MSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjE1LjUzWk0xNywzMS40NCw2LDI2LjM2VjExLjU2bDExLDUuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; put 'put ''Ni44NywxLjI2bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkySDMzLjdhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkyTDI5LjA4LDEuMjZBMS4yOCwxLjI4LDAsMCwwLDI2Ljg3LDEuMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''Mi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41''@;'; put 'put ''LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDMx''@;'; put 'put ''LjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41OC45MWwxMyw2YTEsMSwwLDAs''@;'; put 'put ''MCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsMTQuOSw3LjM5LDEwLDE4LDUuMSwyOC42MSwxMFpNMzAsMjYuMzYsMTksMzEuNDRWMTYuNjRsMTEtNS4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuMzh2MTFMMTksMzEuNDRWMTYuNjRsMi43OS0xLjI5YTMuNjgsMy42OCwwLDAsMS0yLjI1LTEuMTZMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWwzLDEuMzksMS0xLjc1TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0''@;'; put 'put ''LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; put 'put ''MTIsMjEuMTMsMTFhMS4yNywxLjI3LDAsMCwwLDEuMSwxLjkxSDMzLjY4QTEuMjcsMS4yNywwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjEyQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwx''@;'; put 'put ''LC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksTC5DbHJTaGFw''@;'; put 'put ''ZUJsb2Nrc0dyb3VwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCww''@;'; put 'put ''LS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yLjgxLjkxTDI1LjYx''@;'; put 'put ''LDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1Wk0xOC4xLDQuMDhsNS4xMSwyLjM1TDE4LjEsOC43OCwxMyw2LjQzWk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTYuNSwxMS40OS02LjUsMy02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0y''@;'; put 'put ''LjhaTTExLjYsMTUuNTdoMFY4bDYuMDgsMi44YTEsMSwwLDAsMCwuODQsMEwyNC42LDh2Ny41OGgwbC02LjUsM1pNMzIuMTEsMjguODFsLTYuNSwzLTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3aC0ydjBsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwbC4yNC0uMTFhNC4xNyw0LjE3LDAsMCwxLC4yOS0uNjVsMS4zMy0yLjMxLTIuMjgsMUwxMyw2LjQzbDUuMS0yLjM1LDMuNDcs''@;'; put 'put ''MS42LDEtMS43M0wxOC41LDIuMDhhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEs''@;'; put 'put ''MSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptMCwxNC40OS02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjgs''@;'; put 'put ''MCw3LjZabTE1LTE0LjQ4LDUuMTEsMi4zNUwyNS42MSwyMiwyMC41LDE5LjY3Wm0wLDE0LjQ5LTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFs''@;'; put 'put ''ZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWMTIuN2E3LjU4LDcuNTgsMCwwLDEtMi0xLjUxdjQuMzlsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwTDIzLDguNzJh''@;'; put 'put ''Ny4wNSw3LjA1LDAsMCwxLS40Ny0ybC00LjQ3LDJMMTMsNi40M2w1LjEtMi4zNSw0LjQ0LDJzMC0uMDYsMC0uMDlhNy41NSw3LjU1LDAsMCwxLC4yNy0ybC00LjMtMmExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41''@;'; put 'put ''OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAuNiwxNy4zMWw1LjExLDIuMzVM''@;'; put 'put ''MTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5LDI0QTEsMSwwLDAsMCwyNiwy''@;'; put 'put ''NGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIzMC4wMyIgY3k9IjYuMDMiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgsMTguNzZhMSwxLDAsMCwwLS41''@;'; put 'put ''OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTI1LjYxLDIyLDIwLjUsMTku''@;'; put 'put ''NjdsNS4xMS0yLjM1LDUuMTEsMi4zNVptLTEtNi40NC02LjQ0LDNWMTAuODdhMSwxLDAsMCwwLC4zNS0uMDhMMjQuNiw4djcuNThaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptNi41LDExLjQ5''@;'; put 'put ''LTYuNSwzaDBWMjQuMTFoMEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhabTE1LDAtNi40NiwzVjI0LjExQTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N3Yw''@;'; put 'put ''aC0ydjBsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOGwuMTQtLjA2QTMuMjMsMy4yMywwLDAsMSwxOSwxMGwxLjI4LTIuMjItMi4xNCwxTDEzLDYuNDNsNS4xLTIuMzUsMy4zOSwxLjU2LDEtMS43My00LTEuODNhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCww''@;'; put 'put ''LDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCww''@;'; put 'put ''LDAsMzMuNTMsMTguNzZabS0yOCwuOTEsNS4xMS0yLjM2LDUuMTEsMi4zNUwxMC42LDIyWk0xMC42LDMxLjhWMjQuMTFBMS4wOCwxLjA4LDAsMCwwLDExLDI0bDYuMDgtMi44LDAsNy42Wm05LjktMTIuMTMsNS4xMS0yLjM1LDUuMTEsMi4zNUwyNS42MSwyMlpNMjUuNjQsMzEuOFYyNC4xMUEu''@;'; put 'put ''ODkuODksMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuPHBhdGggZD0iTTI2Ljg5LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjcsMTNIMzMuNzJhMS4yNywx''@;'; put 'put ''LjI3LDAsMCwwLDEuMS0xLjkxTDI5LjEsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODksMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMsMTguNzYsMjYuNiwxNS41N1Yx''@;'; put 'put ''Mi42OWE3LjY2LDcuNjYsMCwwLDEtMi0xLjQ3djQuMzRsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOEwyMyw4LjczYTcuNjUsNy42NSwwLDAsMS0uNDgtMmwtNC40MiwyTDEzLDYuNDNsNS4xLTIuMzUsNC4zOCwyVjZhNy41NSw3LjU1LDAsMCwxLC4yNy0yTDE4LjUsMi4w''@;'; put 'put ''OGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0z''@;'; put 'put ''LjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0xMi4xMyw1LjExLTIuMzUsNS4x''@;'; put 'put ''MSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuPGNpcmNsZSBjeD0iMjkuOTgiIGN5PSI2IiByPSI1IiBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxMLkNsclNoYXBlQnVuZGxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuNDMsOC4z''@;'; put 'put ''NWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5''@;'; put 'put ''LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWk01LDEyLjEzLDE2LDE3LjRWMzEuNDZMNSwyNi4yWk0xOCwzMS40NVYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEs''@;'; put 'put ''MCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWm0xLDE1LjhWMTcuMzZsMTMtNi4yOXYxNC4xWiIvPlxuJyksTC5DbHJTaGFwZVdpZmk9KDAsRS5jbHJJY29uU1ZHKSgn''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy41NSw4LjJhMjguMSwyOC4xLDAsMCwwLTMxLjExLjA4QTEsMSwwLDEsMCwzLjU2LDkuOTRhMjYuMTEsMjYuMTEsMCwwLDEsMjguODktLjA3LDEsMSwwLDAsMCwxLjEtMS42N1oiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTguMDUsMTAuNzJBMjAuNzQsMjAuNzQsMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2LDE4Ljg1LDE4Ljg1LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVB''@;'; put 'put ''MjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDE3LjlhMTMuNTEsMTMuNTEsMCwwLDAtOCwyLjY0LDEsMSwwLDAsMCwxLjE4LDEuNjEsMTEuNTYsMTEu''@;'; put 'put ''NTYsMCwwLDEsMTMuNjItLjA4QTEsMSwwLDEsMCwyNiwyMC40NiwxMy41MiwxMy41MiwwLDAsMCwxOC4wNSwxNy45WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCwyNC40MmE0LDQsMCwxLDAsNCw0QTQsNCww''@;'; put 'put ''LDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLjc2LDkuMzhhMjcuODcsMjcuODcsMCwwLDAtMjkuNTcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ4LDIuMTFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NiwyNC42OCwyNC42OCwwLDAsMSwyNi4yNiwwLDEuNDksMS40''@;'; put 'put ''OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwzMi43Niw5LjM4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI4LjgyLDE1LjQ0YTIwLjU5LDIwLjU5LDAsMCwwLTIxLjcsMCwxLjUxLDEuNTEsMCww''@;'; put 'put ''LDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDE3LjQsMTcuNCwwLDAsMSwxOC4zNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwyOC44MiwxNS40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC44OCwyMS40OWExMy40MSwxMy40MSwwLDAsMC0xMy44MiwwLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMjcsMTAuMjcsMCwwLDEsMTAuNDIsMCwxLjUyLDEuNTIsMCwwLDAsMi4wNi0uNDVs''@;'; put 'put ''LjEtLjE2QTEuNDksMS40OSwwLDAsMCwyNC44OCwyMS40OVoiLz5cbicpLEwuQ2xyU2hhcGVSYWNrU2VydmVyPSgwLEUuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiB4PSIxMCIgeT0iMTciIHdp''@;'; put 'put ''ZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxl''@;'; put 'put ''cnRlZCIgZD0iTTE4LjY0LDExQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTB2MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgzMlYyMUg0VjE1''@;'; put 'put ''SDIwLjU4QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41Nkg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTQsMjlWMjNIMzJ2NloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRB''@;'; put 'put ''MS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh''@;'; put 'put ''ZGdlZCIgeD0iMTAiIHk9IjE3IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0xMCwxMUgyNHYtLjUxQTcuNDgsNy40OCwwLDAsMSwyMy4xMyw5SDEwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjQ3''@;'; put 'put ''LDcuNDcsMCwwLDEtMi42OC0uNUg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjZI''@;'; put 'put ''NFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTAiIHk9IjkiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIx''@;'; put 'put ''MCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAs''@;'; put 'put ''MCwzMiw1Wk00LDdIMzJ2Nkg0Wm0wLDhIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMiwz''@;'; put 'put ''MGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTksOS44OSwxOS41Niw5SDEw''@;'; put 'put ''VjdIMjAuNzFsMS43My0zSDRBMiwyLDAsMCwwLDIsNnY2SDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5Wk04LDlINlY3SDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzMuNjgs''@;'; put 'put ''MTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMnY4SDM0VjE1LjM4Wk04LDE5SDZWMTdIOFptMTYsMEgxMFYxN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxl''@;'; put 'put ''cnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMiwxNHY4SDM0VjE0Wm02LDVINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yLDMw''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMjMuMTMsOUgxMFY3SDIyLjU3YTcu''@;'; put 'put ''NTIsNy41MiwwLDAsMS0uMDctMSw3LjQ5LDcuNDksMCwwLDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2djZIMjUuNTFBNy41Miw3LjUyLDAsMCwxLDIzLjEzLDlaTTgsOUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDIySDM0VjE0SDJabTgtNUgyNHYySDEwWk02LDE3SDh2Mkg2WiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2djZIMzRWNkEyLDIsMCwwLDAsMzIsNFpNOCw5SDZWN0g4Wk0yNCw5SDEwVjdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0zIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4nKSxMLkNsclNoYXBlSGFyZERpc2s9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNCIg''@;'; put 'put ''d2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zNCwyMS4wOGwtMS40LTUuNjhIMzAuNTFsMS40OSw2VjI5SDRWMjEuNDRMNy4wNiw5aDEyLjVsMS4x''@;'; put 'put ''NS0ySDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzQsMjEuMDgsMzIsMTMuMjFh''@;'; put 'put ''Ny40OSw3LjQ5LDAsMCwxLTIsLjI5bDIsNy45NFYyOUg0VjIxLjQ0TDcuMDYsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMS4zMUEx''@;'; put 'put ''LDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNCwyMS4wOCwzMC44Niw4LjQzQTIsMiwwLDAsMCwyOC45NCw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFB''@;'; put 'put ''MSwxLDAsMCwwLDM0LDIxLjA4Wk00LDI5VjIxLjQ0TDcuMDYsOUgyOC45M0wzMiwyMS40NFYyOVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; put 'put ''ZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMzIuNTgsMTUuNEgyMi4yM0Ez''@;'; put 'put ''LjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i''@;'; put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIg''@;'; put 'put ''ZD0iTTMyLDEzLjIxQTcuNDcsNy40NywwLDAsMSwyMi41Nyw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCBjbHItaS1iYWRn''@;'; put 'put ''ZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjg2LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjksMjBIMzMuNzFaIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMiwyMnY3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMlptMjgsNUgyNlYyNWg0WiIvPlxuJyksTC5DbHJTaGFwZUJhY2t1cFJlc3RvcmU9KDAsRS5jbHJJY29uU1ZHKSgnPHJl''@;'; put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMTlhMSwxLDAsMSwwLDIs''@;'; put 'put ''MFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMxLjU4LDE1LjRIMjkuNDZjMSwy''@;'; put 'put ''Ljg1LDIuMzEsNi4zNywyLjU0LDcuMDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4x''@;'; put 'put ''MiwzNCwyMiwzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gz''@;'; put 'put ''My42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjIiIHdp''@;'; put 'put ''ZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIuMTYsMTEuNjEsOC41QTEsMSww''@;'; put 'put ''LDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2Mmg3''@;'; put 'put ''Ljk1QzMwLDE2Ljk0LDMxLjcyLDIxLjY1LDMyLDIyLjQ4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIMTVWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjIu''@;'; put 'put ''MzNDMzQsMjIuMSwzNCwyMiwzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICA8cmVj''@;'; put 'put ''dCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMjYiIHk9IjI2IiB3aWR0aD0i''@;'; put 'put ''NCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTEzLDkuOTIsMTcsNlYxOWExLDEsMCwxLDAsMiwwVjZsNCwzLjk1QTEsMSwwLDEsMCwyNC4zOCw4LjVMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAs''@;'; put 'put ''MCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYy''@;'; put 'put ''Mi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyMi4yM0EzLjYyLDMuNjIsMCwwLDEsMjEsMTUuMTZWMThhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMs''@;'; put 'put ''Mi4wNywyMkgzMy45M0MzMy43OSwyMS40OSwzMy4yOCwyMC4wNywzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1i''@;'; put 'put ''YWRnZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTEzLDkuOTIsMTcsNlYxOGEx''@;'; put 'put ''LDEsMCwxLDAsMiwwVjZsNCwzLjk1YTEsMSwwLDAsMCwuNzEuMjlsLjExLDBhNy40Niw3LjQ2LDAsMCwxLTEuMjUtMy41MkwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2NmEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIy''@;'; put 'put ''SDMzLjkzQzMzLjc3LDIxLjQzLDMzLjE1LDE5LjcsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; put 'put ''dGgtMiIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMsMzMuMTQsMTkuNjksMzAuODQs''@;'; put 'put ''MTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45''@;'; put 'put ''MloiLz5cbicpLEwuQ2xyU2hhcGVCYWNrdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJl''@;'; put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOCwxOS44NGw0LjQ3LTQuNDRoLS4yM2EzLjY3LDMuNjcsMCwwLDEtMi0uNjFMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcuMDdhMS45MiwxLjkyLDAsMCww''@;'; put 'put ''LTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHJl''@;'; put 'put ''Y3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEy''@;'; put 'put ''LjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44NywxMy40NWE3LjU1LDcuNTUs''@;'; put 'put ''MCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uMjQsMS4zaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45Miww''@;'; put 'put ''LDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIg''@;'; put 'put ''eT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMC44NCwxMy4zN0ExLjk0LDEuOTQsMCwwLDAsMjguOTMsMTJIMjYuNTVhMywzLDAsMCwx''@;'; put 'put ''LS4xNCwyaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwy''@;'; put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2''@;'; put 'put ''VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTYuNTgsMjEuMjYsMTAuMiwxNC45MUEzLDMsMCwwLDEs''@;'; put 'put ''OS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yLDI0djZh''@;'; put 'put ''MiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw0SDI2VjI2aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNS0uNTEtLjY1LTEuOTMt''@;'; put 'put ''Mi4zNS02LjZIMjUuM2wtNS44OSw1Ljg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjQsMy42NCwwLDAsMS0yLS42MUwxOSwxNlY0YTEs''@;'; put 'put ''MSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwx''@;'; put 'put ''LjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi''@;'; put 'put ''IGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; put 'put ''LWJhZGdlZCIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFk''@;'; put 'put ''Z2VkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNy0uNTctLjc5LTIuMy0zLjA2LTguNTVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNSw3LjQ2LDcuNDYsMCwwLDEtMy4zNS0uOCwzLDMsMCwwLDEtLjg2LDIuMjFsLTYuMzgsNi4zNVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAs''@;'; put 'put ''MSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTkuNDEsMjEuMjZsLS43NC43NEgzMy45M2MtLjE3LS41''@;'; put 'put ''Ny0uNzktMi4zMS0zLjA5LTguNjNBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDI2LjU1YTMsMywwLDAsMS0uNzYsMi45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xNi41OCwyMS4yNiwxMC4yLDE0LjkxQTMsMyww''@;'; put 'put ''LDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwy''@;'; put 'put ''SDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbicpLEwuQ2xyU2hhcGVEZXZpY2VzPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCww''@;'; put 'put ''LDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyNkgyNFYxNVpNMjQsMzBWMjcuNmg4VjMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMCwyMkg0VjZIMjh2NWgyVjZhMiwy''@;'; put 'put ''LDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMkgyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAsMjZIOWExLDEsMCwwLDAsMCwySDIwWiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDEzSDI0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMTVBMiwyLDAsMCwwLDMyLDEzWm0wLDJWMjhIMjRWMTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjgsNEg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMmg4djJIOS4zMkExLjIsMS4yLDAsMCwwLDgsMjdhMS4yLDEuMiwwLDAsMCwxLjMyLDFIMTkuOTJ2LS4zN0gyMFYyMkg0VjZIMjh2NWgyVjZBMiwyLDAsMCwwLDI4LDRa''@;'; put 'put ''Ii8+XG4nKSxMLkNsclNoYXBlS2V5Ym9hcmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCww''@;'; put 'put ''LDMyLDhabTAsMThINFYxMEgzMloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMiIHg9IjExIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE1IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjE5IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIHg9IjIzIiB5PSIxMyIg''@;'; put 'put ''d2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTgiIHg9IjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMTEiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxOSIgeT0iMTci''@;'; put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgeD0iMjMiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI3IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiB4PSIyNyIgeT0iMjIiIHdpZHRoPSIxLjk0IiBoZWlnaHQ9IjIiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgeD0iNyIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgeD0iMTEu''@;'; put 'put ''MTMiIHk9IjIyIiB3aWR0aD0iMTMuNzUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCww''@;'; put 'put ''LDAsMzIsOFpNMTksMTNoMnYySDE5Wm0wLDRoMnYySDE5Wm0tNC00aDJ2MkgxNVptMCw0aDJ2MkgxNVptLTQtNGgydjJIMTFaTTksMjRIN1YyMkg5Wm0wLTVIN1YxN0g5Wm0wLTRIN1YxM0g5Wm0yLDJoMnYySDExWm0xMy44OCw3SDExLjEzVjIySDI0Ljg4Wk0yNSwxOUgyM1YxN2gyWm0wLTRI''@;'; put 'put ''MjNWMTNoMlptMy45NCw5SDI3VjIyaDEuOTRaTTI5LDE5SDI3VjE3aDJabTAtNEgyN1YxM2gyWiIvPlxuJyksTC5DbHJTaGFwZU1vdXNlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMzRBMTAsMTAsMCww''@;'; put 'put ''LDEsOCwyNFYxMmExMCwxMCwwLDAsMSwyMCwwVjI0QTEwLDEwLDAsMCwxLDE4LDM0Wk0xOCw0YTgsOCwwLDAsMC04LDhWMjRhOCw4LDAsMCwwLDE2LDBWMTJBOCw4LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMiIgZD0iTTE4LDE1YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDIsMHY0QTEsMSwwLDAsMSwxOCwxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTEwLDEwLDAsMCwwLDgsMTJWMjRhMTAsMTAsMCww''@;'; put 'put ''LDAsMjAsMFYxMkExMCwxMCwwLDAsMCwxOCwyWm0xLjMsMTEuNDRhMS4zLDEuMywwLDAsMS0yLjYsMFYxMGExLjMsMS4zLDAsMCwxLDIuNiwwWiIvPlxuJyksTC5DbHJTaGFwZURhc2hib2FyZD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMSIgZD0iTTI1LjE4LDEyLjMybC01LjkxLDUuODFhMywzLDAsMSwwLDEuNDEsMS40Mmw1LjkyLTUuODFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAs''@;'; put 'put ''MCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTExLjM0LDI1LjVINi42NmExNC40MywxNC40MywwLDAsMS0zLjExLTcuODRIN3YtMkgzLjU1QTE0LjQxLDE0LjQxLDAsMCwxLDcsMTEuMjlsMi40NSwyLjQ1LDEuNDEtMS40MUw4LjQzLDku''@;'; put 'put ''ODdBMTQuNDEsMTQuNDEsMCwwLDEsMTcsNi4yOXYzLjVoMlY2LjNhMTQuNDcsMTQuNDcsMCwwLDEsMTMuNCwxMy42MUgyOC45MnYyaDMuNTNBMTQuNDMsMTQuNDMsMCwwLDEsMjkuMzQsMjkuNzVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUuODUsMTguNjlhMywzLDAsMSwwLDQuODMuODVsNS45Mi01LjgxLTEuNDEtMS40MS01LjkxLDUuODFBMywzLDAsMCwwLDE1Ljg1LDE4LjY5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjU4LDEzYTcuNDUsNy40NSwwLDAsMS0yLjA2LjQ0LDE0LjQsMTQuNCwwLDAsMSwxLjkzLDYuNDNIMjguOTJ2MmgzLjUzYTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEsNy44NEg2LjY2YTE0LjQzLDE0LjQzLDAsMCwx''@;'; put 'put ''LTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM0ExNC40MSwxNC40MSwwLDAsMSwyMi41OCw3YTcuNTIsNy41MiwwLDAsMS0uMDgtMSw3LjUy''@;'; put 'put ''LDcuNTIsMCwwLDEsLjA5LTEuMDlBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMt''@;'; put 'put ''LjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTguNiw5LjQ4LTUuOTIsNS44MWEzLDMsMCwxLDEtMS40MS0xLjQybDUuOTEtNS44MVptLTIzLDYuMTdIN3YySDMuNTZjMC0uMzktLjA1LS43Ny0uMDUtMS4xN1MzLjUzLDIwLjE4LDMuNTUsMTkuOVptNC44OC0xMCwyLjQ2LDIuNDZMOS40''@;'; put 'put ''NywxMy43NCw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N1pNMTksOS43OUgxN1Y2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1Wk0zMi40OSwyMC43NGMwLC4zOSwwLC43OS0uMDUsMS4xN0gyOC45MnYtMmgzLjUzQzMyLjQ3LDIwLjE4LDMyLjQ5LDIwLjQ2LDMyLjQ5''@;'; put 'put ''LDIwLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40Niw3LjQ2LDAsMCwxLTEwLTguMTJBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wu''@;'; put 'put ''My0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNlpNMTcsNi4yOWMuMzIsMCwuNjMsMCwxLDBzLjcsMCwxLC4wNXYzLjVIMTdaTTcsMjEuOTFIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3czAtLjU2LDAtLjgzSDdabTIuNTEtOC4xNkw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDgu''@;'; put 'put ''NDMsOS44N2wyLjQ2LDIuNDZabTEwLjYyLDkuMTlhMywzLDAsMSwxLS44Mi00LjgxbDUuOTEtNS44MSwxLjQxLDEuNDEtNS45Miw1LjgxQTMsMywwLDAsMSwyMC4wOSwyMi45M1ptMTIuMzUtMUgyOC45MnYtMmgzLjUzYzAsLjI4LDAsLjU1LDAsLjgzUzMyLjQ3LDIxLjUyLDMyLjQ0LDIxLjkx''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbicpLEwuQ2xyU2hhcGVIb3N0PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuM2EyLjQ4LDIuNDgsMCwxLDAsMi40OCwyLjQ3QTIuNDgsMi40OCwwLDAsMCwxOCwyNC4zWm0wLDMuNmExLjEzLDEuMTMsMCwxLDEsMS4xMy0xLjEyQTEuMTMsMS4xMywwLDAsMSwxOCwyNy45WiIvPjxy''@;'; put 'put ''ZWN0IHg9IjEzLjUiIHk9IjIwLjciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjY1LDMuNkgxMC4zNUExLjM1LDEuMzUsMCwwLDAsOSw0Ljk1VjMyLjRIMjdW''@;'; put 'put ''NC45NUExLjM1LDEuMzUsMCwwLDAsMjUuNjUsMy42Wm0tLjQ1LDI3SDEwLjhWNS40SDI1LjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjEyLjYiIHk9IjcuMiIgd2lkdGg9IjEwLjgiIGhlaWdodD0iMS40''@;'; put 'put ''NCIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi42IiB5PSIxMC44IiB3aWR0aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42''@;'; put 'put ''LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjEzIiB5PSIyMSIgd2lkdGg9IjEwIiBoZWlnaHQ9''@;'; put 'put ''IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjMsNiAxMiw2IDEyLDcuNiAyMC40LDcuNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTIsMTEuNmg2LjZjMC0wLjYsMC4yLTEuMSwwLjQtMS42aC03VjExLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yNiwxNS40VjMySDEwVjRoMTIuNWwxLjEtMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTUuNEgyNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''Ni0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEt''@;'; put 'put ''MC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIs''@;'; put 'put ''Mi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIxMyIgeT0iMjEiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1i''@;'; put 'put ''YWRnZWQiIGQ9Ik0yNCwxMC41Yy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNUgxMnYxLjZoMTJWMTAuNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0xMiw2djEuNmgxMC43Yy0w''@;'; put 'put ''LjEtMC41LTAuMi0xLjEtMC4yLTEuNkgxMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0yNiwxMi4zVjMySDEwVjRoMTIuOGMwLjItMC43LDAuNS0xLjQsMC45LTJIOS41Qzgu''@;'; put 'put ''NywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjJDMjcuMywxMywyNi42LDEyLjcsMjYsMTIuM3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0i''@;'; put 'put ''NiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi41LDJoLTE3QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjMuNUMyOCwyLjcsMjcuMywyLDI2LjUsMnogTTE4LDMwLjVjLTEuNSwwLTIuOC0xLjItMi44''@;'; put 'put ''LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnogTTI0LDExLjZIMTJWMTBoMTJWMTEuNnogTTI0LDcuNkgxMlY2aDEyVjcuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjNjLTIsMC0zLjctMS42LTMuNy0z''@;'; put 'put ''LjdIMTJWMTBoNi45YzAtMC4xLDAuMS0wLjIsMC4xLTAuMmwxLjItMi4ySDEyVjZoOS4ybDIuMy00aC0xNEM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS4zSDIyLjJ6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwz''@;'; put 'put ''MC41LDE4LDMwLjV6IE0yMywyMi42SDEzVjIxaDEwVjIyLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxbC01LjcsOS45Yy0wLjMsMC42LTAuMSwxLjQsMC41LDEuN2MwLjIsMC4xLDAuNCwwLjIsMC42LDAuMmgxMS40YzAuNywwLDEuMy0wLjYs''@;'; put 'put ''MS4zLTEuM2MwLTAuMi0wLjEtMC40LTAuMi0wLjZMMjkuMSwxYy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuNywyNywwLjgsMjYuOSwxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; put 'put ''IiBkPSJNMjQsMTAuM3YxLjJIMTJWMTBoMTEuOGMtMC41LTAuNy0wLjgtMS41LTEtMi40SDEyVjZoMTAuNWMwLDAsMC0wLjEsMC0wLjFjMC0xLjQsMC40LTIuNywxLjEtMy45SDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxMy4xQzI2LjQsMTIuNiwyNSwxMS43LDI0LDEwLjN6IE0xOCwz''@;'; put 'put ''MC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6TTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI1LjkiIHI9IjUiLz5cbicp''@;'; put 'put ''LEwuQ2xyU2hhcGVTdG9yYWdlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNi42OWgwYy0uMTgtMy40MS05LjQ3LTQuMzMtMTUtNC4zM1MzLDMuMjksMyw2Ljc4VjI5LjM3YzAsMy40OSw5LjQzLDQuNDMs''@;'; put 'put ''MTUsNC40M3MxNS0uOTMsMTUtNC40M1Y2Ljc4czAsMCwwLDBTMzMsNi43LDMzLDYuNjlabS0yLDcuNTZjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzIsNDMuMzIsMCwwLDAsMTgsMTguN2M0LDAsOS45My0uNDgsMTMtMnY1LjE3''@;'; put 'put ''Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMiw0My4zMiwwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdWNi44MkM1LjMsNiwxMCw0LjM2''@;'; put 'put ''LDE4LDQuMzZjNy43NywwLDEyLjQ2LDEuNTMsMTMsMi4zNy0uNTIuODctNS4yMSwyLjM5LTEzLDIuMzlBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdjNCwwLDkuOTMtLjQ4LDEzLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOS41MSw5LjA5LDE4LDkuMTFBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdoLjYxQTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjguODMsMTUuNEEzOC4zNywzOC4zNywwLDAsMSwxOCwxNi43LDM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUuMzR2Mi4wOEE0My4zMyw0My4z''@;'; put 'put ''MywwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMzLDQzLjMzLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUuODYtNS4wOCwyLjQ1LTEzLDIu''@;'; put 'put ''NDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmMxLjUsMCwyLjg5LjA2LDQuMTUuMTZsMS4xLTEuOWMtMS44Ni0uMTgtMy43LS4yNi01LjI1LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45Mywx''@;'; put 'put ''NS00LjQzdi0xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTcsNy43NlY5Ljg1''@;'; put 'put ''YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjcsNTQuODIsNTQuODIsMCwwLDAsNi4yLS4zNiw3LjUsNy41LDAsMCwxLTEuMTMtMS44OGMtMS41LjE1LTMuMi4yNC01LjA3LjI0QTM3LjYsMzcuNiwwLDAsMSw3LDcuNzZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDN2LjgyYy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4x''@;'; put 'put ''N2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3VjYuODJDNS4zLDYsMTAsNC4z''@;'; put 'put ''NiwxOCw0LjM2YzEuNywwLDMuMjUuMDgsNC42NC4yYTcuNDQsNy40NCwwLDAsMSwuNjctMS45NGMtMS44OC0uMTgtMy43NS0uMjYtNS4zMS0uMjYtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1YxMi44N0E3LjQ1LDcu''@;'; put 'put ''NDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NFY4LjU5Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2LDEu''@;'; put 'put ''NTFDMjYsMTAuNTMsMzIuNTIsOC43OSwzMyw2LjYxaDBDMzIuOCwzLjIsMjMuNTIsMi4yOCwxOCwyLjI4UzMsMy4yMSwzLDYuNzFWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCww''@;'; put 'put ''LDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+''@;'; put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE3LjkxLDIwLjI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yYTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxYzYuOSwwLDEyLjct''@;'; put 'put ''MS4yNywxNC41MS0zSDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjU1LTIuNzVoLS43N0EzOS40LDM5LjQsMCwwLDEsNi4yNSwxMVY5YTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxaC44MkEzLjY0LDMuNjQsMCwwLDEsMTksOS43NWw0LjE3LTcuMjJjLTEuODUtLjE4LTMuNjgtLjI1LTUuMjEt''@;'; put 'put ''LjI1LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAsMCwwLDE3LjkxLDI2QzI2LDI2''@;'; put 'put ''LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0QzMyLjU3LDE4LjUzLDI2LDIwLjI4LDE3LjkxLDIwLjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44''@;'; put 'put ''NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NHYtMS42YTcuNDcsNy40NywwLDAsMS03LjM4LS44LDQ4LjMsNDguMywwLDAsMS03LjcxLjU5QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwzOS40LDAsMCwwLDExLjY2''@;'; put 'put ''LDEuNTEsNTEsNTEsMCwwLDAsNi0uMzQsNy40Niw3LjQ2LDAsMCwxLS41OS03LjY1Yy0xLjg3LS4xOC0zLjczLS4yNi01LjI4LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2''@;'; put 'put ''LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5''@;'; put 'put ''LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuJyksTC5DbHJTaGFwZUNsdXN0ZXI9''@;'; put 'put ''KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjM2LDhIMjcuNXYySDMxVjMwSDI3LjV2MkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDgu''@;'; put 'put ''NVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMjQsMzBIMTJWNkgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxMEg4LjVWOEg0LjY0QTEuNjUsMS42''@;'; put 'put ''NSwwLDAsMCwzLDkuNjdWMzJIOC41VjMwSDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5bC4zOS0uNjhIMTMuNXYxLjZoNS4xN0EzLjY1LDMuNjUsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMzBIMTJWNmg5LjI5bDEuMTUtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxNS40SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0''@;'; put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAzMCAyNy41IDMwIDI3LjUgMzIgMzMgMzIgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; put 'put ''ZGdlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIg''@;'; put 'put ''aGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjMwSDEyVjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEw''@;'; put 'put ''LDUuNjhWMzJIMjZWMTIuMzRBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzBIMjcuNXYySDMzVjEyLjg3QTcuNDUsNy40''@;'; put 'put ''NSwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zNiw4SDI3LjVWMzJIMzNWOS42N0ExLjY1LDEuNjUsMCwwLDAsMzEuMzYsOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; put 'put ''Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4''@;'; put 'put ''LDEuNjgsMCwwLDAsMjQuMzIsNFpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDku''@;'; put 'put ''NjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuNSIgeT0iMTUuNCIgd2lkdGg9IjUuNSIgaGVpZ2h0PSIxNi42IiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZhMy42OCwzLjY4LDAsMCwxLS4zMS0zSDEzVjloNi41NmwyLjg5LTVIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZW''@;'; put 'put ''MTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaTTE4LDI3Ljc5QTEuNzksMS43OSwwLDEsMSwxOS44MSwyNiwxLjgsMS44LDAsMCwxLDE4LDI3Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgs''@;'; put 'put ''MjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi41LS40NFYzMkgzM1YxMi44N0E3LjQ3LDcuNDcsMCwwLDEs''@;'; put 'put ''MzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVBcHBsaWNhdGlvbnM9KDAsRS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDQgMzAgOCAyNiA4IDI2IDEwIDMyIDEw''@;'; put 'put ''IDMyIDQgMzAgNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''NCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTkgMjYgMTkg''@;'; put 'put ''MjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUgMzAgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBw''@;'; put 'put ''b2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgOCAxNSA4IDE1IDEwIDIxIDEwIDIxIDQgMTkgNCAxOSA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5''@;'; put 'put ''Z29uIHBvaW50cz0iMTkgMTkgMTUgMTkgMTUgMjEgMjEgMjEgMjEgMTUgMTkgMTUgMTkgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMCAxOSAyNiAxOSAyNiAyMSAz''@;'; put 'put ''MiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDMwIDE1IDMwIDE1IDMyIDIxIDMyIDIxIDI2IDE5IDI2IDE5IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCA4IDQgOCA0IDEwIDEwIDEwIDEwIDQgOCA0IDggOCIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTUgMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9''@;'; put 'put ''IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkg''@;'; put 'put ''MjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDhIMTV2Mmg0TDE5LDkuODksMjEsNi41VjRIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQi''@;'; put 'put ''IHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0iNCIgd2lkdGg9IjYiIGhlaWdo''@;'; put 'put ''dD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIy''@;'; put 'put ''NiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lk''@;'; put 'put ''dGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5''@;'; put 'put ''PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMTBoNEwxOSw5Ljg5LDIxLDYuNVY0SDE1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''OS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1''@;'; put 'put ''IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIx''@;'; put 'put ''NSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5''@;'; put 'put ''PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUJ1aWxkaW5nPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS44OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0gyMlY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxOS44OCwzWk0yMCwz''@;'; put 'put ''MUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iOCIgd2lkdGg9''@;'; put 'put ''IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5''@;'; put 'put ''PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWln''@;'; put 'put ''aHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0i''@;'; put 'put ''MTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzVjMxSDIzdjJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMjAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cmVjdCB4''@;'; put 'put ''PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIy''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTgi''@;'; put 'put ''IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVydGVkIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEz''@;'; put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3''@;'; put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJWOC4yNGwyLTMuNDFBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNI''@;'; put 'put ''Ni4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjE1LjM4YTMuNjgsMy42OCwwLDAsMS0yLS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIzMSAxNS40''@;'; put 'put ''IDMxIDMxIDIzIDMxIDIzIDMzIDMzIDMzIDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs''@;'; put 'put ''MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0zMSw4SDIyVjMzSDMzVjEwQTIsMiwwLDAsMCwzMSw4Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJabTAtNUgyOFYxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgxMVYy''@;'; put 'put ''M2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4''@;'; put 'put ''LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWMTQuNjRhMy42NywzLjY3LDAsMCwxLTEtNC43NmwxLTEuNjVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAtNUg3VjhIOVptNCwxNUgx''@;'; put 'put ''MVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRsLS4yMywwVjMzSDMzVjE1LjRaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm00LDVIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1SDdWMjNIOVptMC01SDdWMThI''@;'; put 'put ''OVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTVIMjhWMTMuMjJBNy41LDcuNSwwLDAsMSwyMi43OCw4SDIyVjMzSDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEz''@;'; put 'put ''aDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjN2Mmg4VjMxSDIzdjJIMzNWMTBBMiwyLDAsMCwwLDMxLDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIi''@;'; put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIxOCIgd2lkdGg9IjIiIGhl''@;'; put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIi''@;'; put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHJlY3QgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTE3Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjIzIiB3aWR0''@;'; put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIwIi8+XG4g''@;'; put 'put ''ICAgICAgICcpLEwuQ2xyU2hhcGVDUFU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjA4LDIzLjA3aC0xMXYxLjVIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBkPSJNMzIuMiwxOC4xNWEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWOC4xQTIuMSwyLjEsMCwwLDAsMjcuOSw2SDI2LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44''@;'; put 'put ''YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44''@;'; put 'put ''LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNFpNMjgsMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4x''@;'; put 'put ''LjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjcuOWEuMS4xLDAsMCwxLC4xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjA2LDI0LjU3SDIzLjgzYS43NS43NSwwLDAsMCwuNzUtLjc1''@;'; put 'put ''VjExLjMzaC0xLjVWMjMuMDdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjEzLjVhNy40OSw3LjQ5''@;'; put 'put ''LDAsMCwxLTItLjI4VjI3LjlhLjEuMSwwLDAsMS0uMS4xSDguMWEuMS4xLDAsMCwxLS4xLS4xVjguMUEuMS4xLDAsMCwxLDguMSw4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFB''@;'; put 'put ''Mi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJh''@;'; put 'put ''LjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44''@;'; put 'put ''LDAsMSwwLDAtMS42SDMwVjE1LjRIMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhoMTJsMS4xNS0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4x''@;'; put 'put ''LDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAs''@;'; put 'put ''MSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTUuNGgtMS41djcuNjdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''My0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxNS40SDI1djguNDFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjE1LjRoLS43N0EzLjY4LDMuNjgsMCwwLDEsMTks''@;'; put 'put ''OS44OUwyMS4yOSw2SDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwx''@;'; put 'put ''LDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCww''@;'; put 'put ''LDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIzLjU1SDMwdi01LjRoMi4yYS44''@;'; put 'put ''LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ2LDcuNDYsMCwwLDEtNS0xLjkyVjIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgxLjQyQTcuNDYsNy40NiwwLDAsMSwyMi41LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEu''@;'; put 'put ''NiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJhLjguOCwwLDEsMCwxLjYsMFYz''@;'; put 'put ''MGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRn''@;'; put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4LjE1YS44LjgsMCwxLDAsMC0x''@;'; put 'put ''LjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYs''@;'; put 'put ''OC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiww''@;'; put 'put ''VjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yNSwyMy44MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTFoMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZU1lbW9yeT0oMCxFLmNsckljb25TVkcpKCc8cmVjdCB4PSI4IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxy''@;'; put 'put ''ZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI0IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; put 'put ''Miw3SDRBMiwyLDAsMCwwLDIsOXY0SDRWOUgzMnY0aDJWOUEyLDIsMCwwLDAsMzIsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0yVjE3SDMyWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJI''@;'; put 'put ''MzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZBMy42NiwzLjY2LDAsMCwxLDE4LjU3LDEySDE2djhoNFYxNC42NEEzLjY3LDMuNjcs''@;'; put 'put ''MCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjQuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMTkuNTZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3YTIsMiwwLDAsMCwyLDJIMTYu''@;'; put 'put ''NjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyQTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyNHY4aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMjMuMTNhNy40NSw3LjQ1LDAsMCwxLS41NS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMw''@;'; put 'put ''IiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTNWOWEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiww''@;'; put 'put ''LDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN0gzMlYxM1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFptOCwwSDI0VjEyaDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTdW''@;'; put 'put ''MTUuMDdIMjhWMjBIMjRWMTUuMDdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjMxVjIwSDE2VjEyaDIuNjFBMy42OCwzLjY4LDAsMCwxLDE5LDkuNTVMMjAuNTIsN0g0QTIsMiwwLDAsMCwyLDl2NEg0djRIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1SDE5VjI5SDMyYTIsMiww''@;'; put 'put ''LDAsMCwyLTJWMTdaTTEyLDIwSDhWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NS44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgs''@;'; put 'put ''MS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNi44QTEuMjgsMS4yOCwwLDAsMCwyNi44NS44WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjEzLjIyYTcuMzMs''@;'; put 'put ''Ny4zMywwLDAsMS00LDBWMjBIMjRWMTJoMS41MWE3LjQ4LDcuNDgsMCwwLDEtMi45NC01SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; put 'put ''ICAgICAgICcpLEwuQ2xyU2hhcGVEYXRhQ2x1c3Rlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMzIsNy4yNywzMiw3''@;'; put 'put ''LjkxVjE4LjI0YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYs''@;'; put 'put ''MTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1''@;'; put 'put ''LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEu''@;'; put 'put ''NTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUu''@;'; put 'put ''MjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDE4LjI0VjcuOTFjMC0uNjUsMi4wOS0xLjg0LDUuNS0xLjg0UzE1LDcuMjcs''@;'; put 'put ''MTUsNy45MVY5LjdhMTguNzUsMTguNzUsMCwwLDEsMi0uMlY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMlYyMEM1LjQ2LDE5LjY4LDQsMTguNzgsNCwxOC4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuNjUsMTguNTJjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAs''@;'; put 'put ''MCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUtMS40My02LjY1''@;'; put 'put ''LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOGwuNzUsMGEzLjY5LDMuNjksMCwwLDEtLjA4LTJsLS42NiwwYy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMTUuNGgtMloiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS41bC4yNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjIuODRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43''@;'; put 'put ''NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44''@;'; put 'put ''NVptNi42NSw3LjY3Yy0uODUsMS0zLjQyLDItNi42NSwyQTE0LjQ5LDE0LjQ5LDAsMCwxLDE0LDIwdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djMuMTJjLS44NSwxLTMuNDIsMi02LjY1LDJhMTQuNDksMTQuNDksMCwwLDEtNC0uNTN2''@;'; put 'put ''MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2Mi4yOWMwLC45NS0yLjY1LDIuMzgtNi42NSwyLjM4cy02LjY1LTEuNDMtNi42NS0yLjM4VjE1LjIzYzAtLjk1LDIuNjUtMi4zOCw2LjY1LTIuMzhzNi42NSwxLjQzLDYuNjUsMi4zOFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDcuOTFjMC0uMzMuNTUtLjgsMS41NC0xLjE4LDAtLjI0LDAtLjQ4LDAtLjczYTcuNTIsNy41MiwwLDAsMSwuMTQtMS40MUMyMC41NSw1LjE5''@;'; put 'put ''LDE5LDYuMywxOSw3LjkxVjkuNWExOC43NSwxOC43NSwwLDAsMSwyLC4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2NWMwLC41NC0xLjQ2LDEuNDQtMy45LDEuNzN2''@;'; put 'put ''MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1di01LjlBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjUsNC4wOEMyMi43Nyw0LjA4LDE5LDUuNCwxOSw3LjkxVjkuNDhjNS4zLjI2LDksMi42LDksNS43NnY2LjdsLjA1LjA2''@;'; put 'put ''YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRT''@;'; put 'put ''Miw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45Myww''@;'; put 'put ''LTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1''@;'; put 'put ''LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMsMTAuODUsMTgsMTAuODVaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4w''@;'; put 'put ''OCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjM5LTIuN2wtLjY2LDBjLTQuOTMsMC04LjY1LDEuODgtOC42''@;'; put 'put ''NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjIzLDguNjMtMy4y''@;'; put 'put ''M1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDQuOGMtMS43NS42My0zLDEuNjgtMywzLjEyVjkuNDhsLjI3LDBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOHY2LjUzbC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0t''@;'; put 'put ''YWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDkuNDhWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJMOCwyMS45M3YtNi43QzgsMTIuMDgsMTEuNyw5Ljc0LDE3LDku''@;'; put 'put ''NDhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4''@;'; put 'put ''LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2ExNi43NywxNi43NywwLDAsMS02''@;'; put 'put ''LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTQtMS40QzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS40OGExNS4zMywxNS4zMywwLDAsMSw1LDFBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBh''@;'; put 'put ''dGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI3LjM1LDEzYTQsNCwwLDAsMSwuNywyLjIzdjYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxMi4zM0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNDlaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljk5IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIv''@;'; put 'put ''PlxuICAgICAgICAnKSxMLkNsclNoYXBlUmVzb3VyY2VQb29sPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxLjczYTE0LDE0LDAsMCwxLC4yMiwxLjZIMTcuNDlMOC4zLDI4LjA3QTE0LDE0LDAsMCwxLDIyLjA5LDQuNjJsMS0xLjc2QTE2LDE2LDAsMSwwLDM0LDE4''@;'; put 'put ''YTE2LDE2LDAsMCwwLS4yMy0yLjYxWk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTQsMThhMTQsMTQsMCwwLDEsMjcuOTUtMUgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsNCwxOFpNMTgs''@;'; put 'put ''MzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yLDEzLjRhMTMuOTEsMTMuOTEsMCwwLDEsLjc1''@;'; put 'put ''LDMuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuNjEsNC44YTcuNDMsNy40MywwLDAsMSwuNTgtMS45MiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNBNy40Myw3LjQzLDAsMCwxLDMxLjIsMTMuNFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5''@;'; put 'put ''SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguNTcsMzAuOUExNiwxNiwwLDAsMCwzMy45NSwxOUgxOC40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; put 'put ''My45NSwxN0ExNiwxNiwwLDEsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN2ExNS45MSwxNS45MSwwLDAsMC0uODQtNC4xOCw3LjQ5LDcuNDksMCwwLDEtOS45Mi05Ljk0QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oiIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE2LDE2LDAsMCwwLS4xOC0xLjYxSDIyLjIz''@;'; put 'put ''QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDQuMDYtN0ExNiwxNiwwLDAsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUEx''@;'; put 'put ''LjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+''@;'; put 'put ''XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTaGllbGRDaGVjaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5''@;'; put 'put ''LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2''@;'; put 'put ''LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMTAuODgsMTYuODdhMSwxLDAsMCwwLTEuNDEsMS40MWw2LDZMMjYuNCwxMy43N0ExLDEsMCwwLDAsMjUsMTIuMzNsLTkuNDcsOS4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40''@;'; put 'put ''NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVptLTQuNTcsNi42NUwxNS41MSwyNC45LDkuMTksMTguNTdhMS40LDEuNCwwLDAsMSwyLTJMMTUuNTQsMjEsMjQuNzMsMTJhMS40LDEuNCwwLDEsMSwyLDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC0xIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTaGllbGQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgs''@;'; put 'put ''My4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTIt''@;'; put 'put ''NS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjR2LjUzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTNjMSwuNjQsMi4yLDEuMjcsMy40Mywx''@;'; put 'put ''Ljg5bDEtMS43NGE0MS4xLDQxLjEsMCwwLDEtMy44OS0yLjE4TDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwx''@;'; put 'put ''My42Ni01LjA1LDEzLjY2LTE4LjQ1VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; put 'put ''MCwxMy41djIuNDNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0Ni4xOSw0Ni4xOSwwLDAsMCw0LjUxLDIuNDJjMC0uMSwwLS4xOSwwLS4yOWE3LjQ5''@;'; put 'put ''LDcuNDksMCwwLDEsLjIzLTEuODMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0''@;'; put 'put ''LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; put 'put ''IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEu''@;'; put 'put ''NWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40Myw0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQz''@;'; put 'put ''Ljc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS03LjI3LTkuMzMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYu''@;'; put 'put ''MDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAg''@;'; put 'put ''JyksTC5DbHJTaGFwZVNoaWVsZFg9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0''@;'; put 'put ''Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0''@;'; put 'put ''LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTIyLjgxLDEwLjc5LDE4LDE1LjYxbC00LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxN2wtNC44MSw0LjgxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTguNDNsNC44MSw0LjgxYTEsMSwwLDAsMCwxLjQxLTEuNDFMMTkuNDEsMTdsNC44MS00LjgxYTEsMSwwLDAsMC0x''@;'; put 'put ''LjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwx''@;'; put 'put ''LTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTI0LjUxLDIxLjU1YTEuNCwxLjQsMCwwLDEtMiwyTDE4LDE5''@;'; put 'put ''bC00LjUzLDQuNTNhMS40MywxLjQzLDAsMCwxLTIsMCwxLjQsMS40LDAsMCwxLDAtMkwxNiwxN2wtNC41My00LjUzYTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE1bDQuNTMtNC41M2ExLjQsMS40LDAsMCwxLDIsMkwyMCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; put 'put ''Lz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUltcG9ydD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxNC44N0w4LDEwLjg2VjE1aDJWMTMuNjFoNy42MVY2SDI4VjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDI4LDRaTTE2LDEySDEwdi0u''@;'; put 'put ''MzJMMTUuNyw2SDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEsMS40MUwxNS4yLDIxSDNhMSwx''@;'; put 'put ''LDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgz''@;'; put 'put ''YTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42MVY2aDMuNjhsMS4xNS0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2SDEwWiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4''@;'; put 'put ''LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42''@;'; put 'put ''OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMEg4YTIsMiwwLDAs''@;'; put 'put ''MCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzLjYxaDcuNjFWNkgyMi41YTcuNDks''@;'; put 'put ''Ny40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjE1aDJabTAtMS45MkwxNS43LDZIMTZ2NkgxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIs''@;'; put 'put ''MCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAs''@;'; put 'put ''MCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2''@;'; put 'put ''YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjEzLjVBNy41''@;'; put 'put ''LDcuNSwwLDAsMSwyMi41LDZaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVFeHBvcnQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDI0djguMzhoMlY2YTIsMiwwLDAsMC0yLTJIMTAuODdMNCwxMC44N1YzMGEy''@;'; put 'put ''LDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJINlptMC0xLjkyTDExLjY5LDZIMTJ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIx''@;'; put 'put ''SDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMw''@;'; put 'put ''LjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcu''@;'; put 'put ''NjFWNmg3LjY4bDEuMTUtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMTIuMzRhNy41Myw3LjUzLDAsMCwxLTItMS44NXYzLjg5aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJh''@;'; put 'put ''ZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMxLjE2LDIxSDI2djJoNS4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzUsMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAs''@;'; put 'put ''MCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwx''@;'; put 'put ''LjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjEyLjM0QTcuNDYsNy40NiwwLDAsMSwyMi43OCw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpNMTIsMTJINnYtLjMyTDExLjY5''@;'; put 'put ''LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1iYWRnZSIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlVXBsb2FkQ2xvdWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5Ljc0LDkuNzQsMCww''@;'; put 'put ''LDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAsMSwwLC44bC0uMDguNzIuNjUu''@;'; put 'put ''M0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAuMTRsLTUtNS01LDVhMSwxLDAs''@;'; put 'put ''MCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjI4LDIxLjg1QTEsMSwwLDAs''@;'; put 'put ''MCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1LDEwLjQ3LDEwLjQ3LDAsMCww''@;'; put 'put ''LTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDIxdjJoNS4zOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwyLjU3LDIuNTdBMSwxLDAsMCww''@;'; put 'put ''LDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUu''@;'; put 'put ''M0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCw0LjU0LTE0LjU2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwx''@;'; put 'put ''MSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNzQsOS43NCwwLDAsMCwxLjYs''@;'; put 'put ''MTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42Niw3LjY2LDAsMCwxLDMuNiwxOC4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; put 'put ''IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZURvd25sb2FkQ2xvdWQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEs''@;'; put 'put ''MC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5LjY1LDkuNjUsMCwwLDAsMTAuODksMjhhMywzLDAsMCwxLDAtMkE3LjY1LDcuNjUsMCwwLDEsMTEsMTAuNzRsLjY3LDAsLjIzLS42M2E4LjQzLDguNDMsMCwwLDEsOC01LjQsOC4yNiw4''@;'; put 'put ''LjI2LDAsMCwxLDguNDUsOCw3Ljc1LDcuNzUsMCwwLDEsMCwuOGwtLjA4LjcyLjY1LjNBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOGE4LDgsMCwwLDAsMy45My0xNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWExLDEsMCwwLDAtLjcxLTEuNzFa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg3LDQuNjlhOC44MSw4LjgxLDAsMCwxLDIsLjI1bDEtMS44YTEwLjgsMTAuOCwwLDAsMC0zLjA3LS40NSwxMC40NywxMC40Nyww''@;'; put 'put ''LDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIu''@;'; put 'put ''NTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4Ljc5LDguNzksMCwwLDEsMi42''@;'; put 'put ''OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMs''@;'; put 'put ''OC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1LDAsLjIzbC0u''@;'; put 'put ''MDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCw0LjU0LTE0LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; put 'put ''MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlUGx1Z2luPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS44MSwxNkgyOVY4LjgzYTIs''@;'; put 'put ''MiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwy''@;'; put 'put ''LDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2Wm0yLjQxLDdBMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIy''@;'; put 'put ''QTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoOFYxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTI5LjgxLDE2SDI5di0uNkgyN1YxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjMsMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlWN2EzLDMs''@;'; put 'put ''MCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoLjY2TDIxLDYuNTlBNS4xMiw1LjEyLDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywz''@;'; put 'put ''LDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy40NSw3LjQ1LDAsMCwxLTItLjU1VjE4aDIuODFBMy4xMywzLjEzLDAsMCwxLDMzLDIwLjY5LDMsMyww''@;'; put 'put ''LDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwxLDE5LDcuMTlWOC44M2g0LjA2''@;'; put 'put ''YTcuNDQsNy40NCwwLDAsMS0uNTEtMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCww''@;'; put 'put ''LDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0i''@;'; put 'put ''NiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWOC44M2EyLDIsMCwwLDAtMi0ySDIxQTUuMTQsNS4xNCwwLDAsMCwxNi41MSwyLDUs''@;'; put 'put ''NSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCwwLDAsNS01LjUxQTUuMTUsNS4x''@;'; put 'put ''NSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOXYtLjZIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEsNi41OUE1LjEyLDUuMTIsMCwwLDAsMTYuNTEsMiw1LDUs''@;'; put 'put ''MCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUs''@;'; put 'put ''MCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCww''@;'; put 'put ''LDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy41''@;'; put 'put ''LDcuNSwwLDAsMS02LjQ1LTYuNTlIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwy''@;'; put 'put ''LDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0i''@;'; put 'put ''NSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUZsb3BweT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuMzYsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCww''@;'; put 'put ''LDIsMkgzMGEyLDIsMCwwLDAsMi0yVjguNzhaTTI1LDMwSDExVjIySDI1Wm01LDBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJIMTJWNkgyNi41MUwzMCw5LjU5WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0xLjY4bC0uNDMtLjNIMTJWNkgyMi41YTcu''@;'; put 'put ''NDksNy40OSwwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDI3''@;'; put 'put ''VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMmg3LjM1YTMuNTQsMy41NCwwLDAsMS0uNzctMkgxMlY2aDkuMjlsMS4xNS0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjUsMzBI''@;'; put 'put ''MTFWMjJIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz''@;'; put 'put ''NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy4zNiw0SDZBMiwyLDAsMCww''@;'; put 'put ''LDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41Wk0yNCwxNEgxMmEyLDIsMCwwLDEtMi0yVjZoMnY2SDI2QTIsMiwwLDAsMSwyNCwxNFoiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDYsNy40NiwwLDAsMS00LTEuMThBMiwyLDAsMCwxLDI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjUuNTRhNy40NSw3LjQ1LDAsMCwxLTIuNzYtOEg2QTIsMiwwLDAs''@;'; put 'put ''MCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIz''@;'; put 'put ''LDE1LjRBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZoNi41OEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMi40NSw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpNMjYsMzBIMTBWMjEuNUExLjUs''@;'; put 'put ''MS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIy''@;'; put 'put ''LjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAnKSxMLkNs''@;'; put 'put ''clNoYXBlQ29tcHV0ZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjYgMjIuODggOS42IDEwLjYgMjQuNCAxMC42IDI1Ljk4IDkgOCA5IDggMjIuODggOS42IDIyLjg4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTYsN0gzMFYyM2gyVjYuNUExLjUsMS41LDAsMCwwLDMwLjUsNUg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42''@;'; put 'put ''LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42''@;'; put 'put ''VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjYsMjIuODhWMTAu''@;'; put 'put ''Nmg5LjE0QTMuNjQsMy42NCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIOFYyMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDIwLjcxbDEuMTUtMkg1LjVBMS41LDEuNSww''@;'; put 'put ''LDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjMwIiB5PSIxNS40IiB3aWR0aD0iMiIgaGVpZ2h0PSI3LjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2''@;'; put 'put ''Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIuNiwyLjYsMCwwLDAsMi42LTIu''@;'; put 'put ''NlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4wNy0xSDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZWN0gyMi41N0E3LjUyLDcuNTIsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYyM2gyVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMjMuMTMsOUg4VjIyLjg4SDkuNlYxMC42SDI0LjA4QTcuNDksNy40OSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; put 'put ''IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2''@;'; put 'put ''MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjlWMjRoM1Y3LjU3QTEuNTQsMS41NCwwLDAsMCwzMC41''@;'; put 'put ''LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44MSwyNmMtLjM1LjktLjk0LDEuNS0xLjYxLDEuNUgxMy43NGMtLjY4LDAtMS4yNi0uNi0xLjYxLTEuNUgx''@;'; put 'put ''djEuNzVBMi40NSwyLjQ1LDAsMCwwLDMuNiwzMEgzMi40QTIuNDUsMi40NSwwLDAsMCwzNSwyNy43NVYyNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI5IiB5PSIxNS40IiB3aWR0aD0i''@;'; put 'put ''MyIgaGVpZ2h0PSI4LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEwSDE5TDE5LDkuODksMjEuMjksNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41N1YyNEg3WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs''@;'; put 'put ''MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0x''@;'; put 'put ''LjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEw''@;'; put 'put ''SDIzLjY2QTcuNDYsNy40NiwwLDAsMSwyMi41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJhNy4xNCw3LjE0LDAs''@;'; put 'put ''MCwxLTMsLjJWMjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVEaXNwbGF5PSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUs''@;'; put 'put ''MS41LDAsMCwwLDMyLjUsM1pNMzIsMjVINFY1SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNy43IDguNzYgMjguMTMgOC43NiAyOS45NCA3LjE2IDYuMSA3LjE2IDYuMSAyMyA3LjcgMjMgNy43''@;'; put 'put ''IDguNzYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4y''@;'; put 'put ''LDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0''@;'; put 'put ''LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYy''@;'; put 'put ''NUg0VjVIMjEuODdMMjMsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTUuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgMjMgNy43IDguNzYgMTkuNyA4Ljc2IDIwLjYyIDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4''@;'; put 'put ''LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTYuMSwyM0g3LjdWOC43NkgyM2E3LjQ0LDcuNDQsMCwwLDEtLjQzLTEuNkg2LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYyNUg0''@;'; put 'put ''VjVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzEsMjEuODNINVY3SDMx''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5Ljk0YTEsMSwwLDEsMCwwLDJI''@;'; put 'put ''MjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMXY2LjQzSDVWN0gyMC43MUwyMywzSDMuNUExLjUs''@;'; put 'put ''MS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0''@;'; put 'put ''LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45MiwwLDAsMCwxLTFBMSwxLDAsMCww''@;'; put 'put ''LDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M3Y4LjQxSDVWN0gyMi41N2E3LjI5LDcuMjksMCwwLDEsLjU1LTRIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41''@;'; put 'put ''LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDQsNy40NCwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9''@;'; put 'put ''IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVUZXJtaW5hbD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwy''@;'; put 'put ''LDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMlY5LjJINFpNNCwyOVYxMC44SDMyVjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2''@;'; put 'put ''IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCAxMy43OSAxOC44IDcgMjEuOTEgNyAyNC4xMSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOUg0VjEwLjhIMTguNjhBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxNS4zOFoiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0''@;'; put 'put ''QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjIzIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMjlINFYxMC44SDI0LjI0YTcuNTEsNy41MSwwLDAsMS0xLTEuNkg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIs''@;'; put 'put ''Ny41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw1SDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIs''@;'; put 'put ''MCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNi44LDE1LjgxVjEzLjE3bDEwLDQuNTl2Mi4wOGwtMTAsNC41OVYyMS43OGw2LjUxLTNaTTIzLjQsMjUuNEgxN1YyM2g2LjRaTTQsOS4yVjdIMzJWOS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bC40LS42OUg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE2LjgsMTku''@;'; put 'put ''ODNsLTEwLDQuNTlWMjEuNzhsNi41MS0zLTYuNTEtM1YxMy4xN2wxMCw0LjU5Wm02LjYsNS41N0gxN1YyM2g2LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEu''@;'; put 'put ''MTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''YWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNi43OC00LjNINFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww''@;'; put 'put ''LDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2Vk''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVDb2RlPSgwLEUuY2xySWNvblNWRykoJzxw''@;'; put 'put ''YXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAsMC0xLjY1WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsOS44M2EuOS45LDAsMCwwLTEuMDkuNjZMMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhsMy40NC0xMy44MUEuOS45LDAs''@;'; put 'put ''MCwwLDE5Ljk0LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAs''@;'; put 'put ''MS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTYsMTEuNjIsMTUuNDEsMjQuMjlh''@;'; put 'put ''LjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhMMTkuNzMsMTQuNGEzLjU5LDMuNTksMCwwLDEtMS4xNi0yLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMzAuMjEsMTYuNzhsLTItMS4zOEgyNC42NGwzLjI0LDIuMjEtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCwwLTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDgu''@;'; put 'put ''MTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjIxLDE2Ljc4bC02LjUzLTQuNDVBMSwxLDAsMSwwLDIyLjU1''@;'; put 'put ''LDE0bDUuMzIsMy42My01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS45NCw5''@;'; put 'put ''LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMt''@;'; put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUFwcGxpY2F0aW9uPSgw''@;'; put 'put ''LEUuY2xySWNvblNWRykoJzxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMyIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIs''@;'; put 'put ''MiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsNkgzMnY0LjJINFpNNCwzMFYxMS44SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJN''@;'; put 'put ''MzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRabTAsNi4ySDRWNkgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1IiB5PSI3IiB3aWR0''@;'; put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQmF0dGVyeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNTksMTEuNzdhMSwxLDAsMCwwLTEu''@;'; put 'put ''NzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4xMiw0SDIzVjMuNThBMS41OCwx''@;'; put 'put ''LjU4LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWNS44OEExLjg4LDEuODgsMCwwLDAsMjUu''@;'; put 'put ''MTIsNFpNMjUsMzJIMTFWNmg0VjRoNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5LDEwLjU5YTEsMSwwLDAsMCwx''@;'; put 'put ''Ljc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMz''@;'; put 'put ''LjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTI1LDE1LjRWMzJIMTFWNmg0VjRoNlY2aC4yOGwxLjY0LTIuODVBMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkEx''@;'; put 'put ''Ljg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0zLjUzLTcuMDgsNi4zOCwxLjA2''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4VjMySDExVjZoNFY0aDZWNkgyMi41QTcuNDcsNy40NywwLDAsMSwyMywzLjM4LDEuNTcsMS41NywwLDAsMCwyMS40Miwy''@;'; put 'put ''SDE0LjU4QTEuNTgsMS41OCwwLDAsMCwxMywzLjU4VjRIMTAuODhBMS44OCwxLjg4LDAsMCwwLDksNS44OFYzMi4xMkExLjg4LDEuODgsMCwwLDAsMTAuODgsMzRIMjUuMTJBMS44OCwxLjg4LDAsMCwwLDI3LDMyLjEyVjEyLjg3QTcuNSw3LjUsMCwwLDEsMjUsMTEuNThaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNFYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAs''@;'; put 'put ''MCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NHYtMjhBMS4wOSwxLjA5LDAsMCwwLDI2LDRaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42NiwzLjY2LDAsMCwxLDIwLjU1LDE1bDIuNzYsNC43OUwxNi45LDE4LjdsMy4z''@;'; put 'put ''Niw2LjczYTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmwuMDkuMTVBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42''@;'; put 'put ''MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBj''@;'; put 'put ''eT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjJWMi42MkEuNi42LDAsMCwwLDIxLjQyLDJIMTQu''@;'; put 'put ''NThhLjYuNiwwLDAsMC0uNTguNjJWNEgxMEExLjA5LDEuMDksMCwwLDAsOSw1LjA3djI4QTEsMSwwLDAsMCwxMCwzNEgyNmExLDEsMCwwLDAsMS0uOTRWMTIuODdBNy41LDcuNSwwLDAsMSwyMi41LDZaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYs''@;'; put 'put ''MS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVNb2JpbGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; put 'put ''ZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTEsNkgyNVYyNEgxMVptMCwyNFYyNkgyNXY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCB4PSIxNyIgeT0iMjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwy''@;'; put 'put ''LTJWNkEyLDIsMCwwLDAsMjUsNFpNMTksMzBIMTdWMjhoMlptLTgtNFY2SDI1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZVRhYmxldD0oMCxFLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNyIgeT0iMjkiIHdpZHRo''@;'; put 'put ''PSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwzMCwyWm0wLDJWMjYu''@;'; put 'put ''MzhINlY0Wk02LDMyVjI4SDMwdjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwySDZBMiwyLDAsMCwwLDQsNFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNEEyLDIsMCwwLDAsMzAsMlpN''@;'; put 'put ''MTksMzJIMTdWMzBoMlpNNiwyOFY0SDMwVjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZU5ldHdvcmtHbG9iZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThh''@;'; put 'put ''MSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWm0wLDJhMTIs''@;'; put 'put ''MTIsMCwwLDEsOC40NCwzLjQ4YzAsLjMzLDAsLjY2LDAsMUExOC41MSwxOC41MSwwLDAsMCwxNCw4LjUzYTIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS45MiwxMS45MiwwLDAsMSwxNy43NSw0Wm0t''@;'; put 'put ''Myw1Ljg3QTE3LDE3LDAsMCwxLDI1LjkyLDEwYTE2LjksMTYuOSwwLDAsMS0zLjExLDcsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3Wm0tNC0zLjZjMCwuMjEuMDYuNDMuMS42''@;'; put 'put ''NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45''@;'; put 'put ''MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0''@;'; put 'put ''LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41Myww''@;'; put 'put ''QTEyLDEyLDAsMCwxLDE3Ljc1LDI4Wm02LjUxLTguOWEyLjMzLDIuMzMsMCwwLDAtLjMzLTEuMTksMTguNCwxOC40LDAsMCwwLDMuMzktNy4zN3EuNzUuMzUsMS40OC43OGExMiwxMiwwLDAsMSwuNDIsOC4yQTE2LDE2LDAsMCwxLDI0LjI3LDE5LjExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRoLTJjMCwuMiwwLC40LDAsLjYxYTEyLDEyLDAsMCwxLS41MywzLjUyLDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC44NywxOC44NywwLDAsMCwxLjYyLTIuNTJIMjMuODNhMTcuMjksMTcuMjksMCwwLDEtMSwx''@;'; put 'put ''LjU0LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43N0ExNy4wOCwxNy4wOCwwLDAsMSwxOS41Niw5bC44Ny0xLjUxYTE4LjU5LDE4LjU5LDAsMCwwLTYuMzksMSwyLjMzLDIuMzMs''@;'; put 'put ''MCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuODgsMTEuODgsMCwwLDEsMjIsNC43OUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDAsMCwzMS43NiwxNkMz''@;'; put 'put ''MS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFptLTIxLTkuMTNjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIu''@;'; put 'put ''MzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2''@;'; put 'put ''QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDct''@;'; put 'put ''My41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; put 'put ''PSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTVsLS41MSwwYTExLjkxLDExLjkxLDAsMCwxLS4yNSw2LDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC41OSwxOC41OSwwLDAsMCwyLjc4LTUuMTgsNy40OSw3LjQ5''@;'; put 'put ''LDAsMCwxLTEuMzEtLjgyLDE3LDE3LDAsMCwxLTIuNjEsNSwyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzcsMTcsMTcsMCwwLDEsOC41My0uNjIsNy40Myw3LjQzLDAsMCwxLS41''@;'; put 'put ''Ni0xLjU5QTE4LjU2LDE4LjU2LDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDIyLjU3LDVhNy40NSw3LjQ1LDAsMCwxLC41My0yQTE0LDE0LDAs''@;'; put 'put ''MCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00Wk0xMC43Niw2LjI3YzAsLjIxLjA2LjQzLjEuNjQuMDkuNDQuMjEuODcuMzMsMS4zYTIuMjgsMi4yOCwwLDAsMC0xLjEsMi4yNUExOC4zMiwxOC4zMiwwLDAsMCw1LjksMTQuMjIsMTIsMTIs''@;'; put 'put ''MCwwLDEsMTAuNzYsNi4yN1ptMCwxNS43MUEyLjM0LDIuMzQsMCwwLDAsOS4yLDIzLjc0bC0uNjQsMEExMS45NCwxMS45NCwwLDAsMSw1LjgsMTYuOTJsLjExLS4xOWExNi45LDE2LjksMCwwLDEsNC44MS00Ljg5LDIuMzEsMi4zMSwwLDAsMCwyLjI4LjYzLDE3LjUzLDE3LjUzLDAsMCwwLDUu''@;'; put 'put ''MzUsNS42NWMuNDEuMjcuODMuNTIsMS4yNS43NkEyLjMyLDIuMzIsMCwwLDAsMTkuNzgsMjBhMTYuOTQsMTYuOTQsMCwwLDEtNi4yLDMuMTFBMi4zNCwyLjM0LDAsMCwwLDEwLjc2LDIyWm03LDZhMTEuOTIsMTEuOTIsMCwwLDEtNS44MS0xLjUxbC4yOC0uMDZhMi4zNCwyLjM0LDAsMCwwLDEu''@;'; put 'put ''NTctMS43OSwxOC40MywxOC40MywwLDAsMCw3LTMuNSwyLjI5LDIuMjksMCwwLDAsMy0uNjIsMTcuNDEsMTcuNDEsMCwwLDAsNC4zMi41NmwuNTMsMEExMiwxMiwwLDAsMSwxNy43NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdl''@;'; put 'put ''ZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41OCwzMmgtMThhMSwxLDAs''@;'; put 'put ''MSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUuMjNjLjM0LjIzLjY5LjQzLDEs''@;'; put 'put ''LjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNi45LDE2LjksMCwwLDAsMy4xMS03QTE3LDE3LDAsMCwwLDE0LjcyLDkuODdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQs''@;'; put 'put ''MTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWk0yOC4xLDIxLjA5YTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjku''@;'; put 'put ''MDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3''@;'; put 'put ''YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMs''@;'; put 'put ''MC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41MSwxOC41MSwwLDAsMSwxMi4xMS0uMDdjMC0uMzIsMC0uNjUsMC0xaDBhMTIsMTIsMCwwLDEsMi42''@;'; put 'put ''MiwzLjg1aDBxLS43My0uNDMtMS40OC0uNzhhMTguNCwxOC40LDAsMCwxLTMuMzksNy4zNywyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRI''@;'; put 'put ''MjUuNTZhMTguODcsMTguODcsMCwwLDEtMS42MiwyLjUyLDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M0gyOC4xYTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40Mywx''@;'; put 'put ''OC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQy''@;'; put 'put ''LS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIu''@;'; put 'put ''MjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41OSwxOC41OSww''@;'; put 'put ''LDAsMSw2LjM5LTFMMjMsM0ExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBBMTQsMTQsMCwwLDAsMzEuNzYsMTZDMzEuNzYsMTUuOCwzMS43NCwxNS42LDMxLjczLDE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI2LDExLjY0YTE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE3LjI5LDE3LjI5LDAsMCwwLDEtMS41NGgtMS42QTMuNjgsMy42OCwwLDAsMSwxOSw5''@;'; put 'put ''Ljg5TDE5LjU2LDlhMTcuMDgsMTcuMDgsMCwwLDAtNC44NC44OCwyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMs''@;'; put 'put ''MTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxl''@;'; put 'put ''cnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNSwxMy4z''@;'; put 'put ''NWE3LjU0LDcuNTQsMCwwLDEtMS41LjE1LDcuNDYsNy40NiwwLDAsMS0zLjI4LS43NiwxOC41OSwxOC41OSwwLDAsMS0yLjc4LDUuMTgsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUzSDI4LjFhMTcuNDEsMTcuNDEs''@;'; put 'put ''MCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4zNy0uNThBMTYuOTQsMTYuOTQs''@;'; put 'put ''MCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4yLDAtLjM5LDAtLjU3YTEyLDEy''@;'; put 'put ''LDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEsMS4yMXMuMi44NS4zMiwxLjI3''@;'; put 'put ''bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU2LDE4LjU2LDAsMCwxLDguNjUtLjg3LDcuNDUsNy40NSwwLDAsMSwuNDEtNC41OUExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBhMTQsMTQsMCwxLDAsMjcuNjgtNFoiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzIsOS44N2EyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzcsMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4LDIuMjgsMCwwLDEsMi41OC0u''@;'; put 'put ''NTcsMTcsMTcsMCwwLDAsMi42MS01LDcuNTIsNy41MiwwLDAsMS0yLjE2LTIuNjdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYi''@;'; put 'put ''IHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjg1LDI3LjQ0YTIuMjksMi4yOSww''@;'; put 'put ''LDAsMCwxLjc0LTEuNjhjLjU0LS4xNCwxLjA2LS4zMiwxLjU5LS41MXYtMS4yYTIuNzcsMi43NywwLDAsMSwuMDYtLjUxLDE3LjQ0LDE3LjQ0LDAsMCwxLTEuODIuNjIsMi4yOCwyLjI4LDAsMCwwLTQuMjguNjNsLS40NSwwaDBhMTEuOTMsMTEuOTMsMCwwLDEtMi44OC03LjI3LDE3Ljc5LDE3''@;'; put 'put ''Ljc5LDAsMCwxLDUtNC43MiwyLjIzLDIuMjMsMCwwLDAsMi4yOS41NiwxOC41MiwxOC41MiwwLDAsMCw0LjQ3LDUsMi43NCwyLjc0LDAsMCwxLC4yMS0uMjRsLjk1LS45MWExNi45LDE2LjksMCwwLDEtNC4zNS00Ljc5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4yYzAtLjA3LDAtLjE0LDAtLjIy''@;'; put 'put ''QTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNGwuMTksMGgxLjU2YTE5LDE5LDAsMCwwLC45MS0yLjcyYy40My4xOS44NC40MSwxLjI2LjY0YTExLjk0LDExLjk0LDAsMCwxLDEsNC4wOWwwLDBBMi43NywyLjc3LDAsMCwxLDMwLDE2YTIuNzMsMi43''@;'; put 'put ''MywwLDAsMSwuNjguMUExNCwxNCwwLDEsMCwxNi4wOCwzMWEyLjcyLDIuNzIsMCwwLDEsMC0yQTExLjkzLDExLjkzLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4y''@;'; put 'put ''OCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0''@;'; put 'put ''Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDIxLjE5QTMuODQsMy44NCwwLDEsMCwyOC44OCwyNSwzLjg3LDMuODcsMCwwLDAsMjUsMjEuMTlabTAsNi4wOEEy''@;'; put 'put ''LjI0LDIuMjQsMCwxLDEsMjcuMjgsMjUsMi4yNiwyLjI2LDAsMCwxLDI1LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMTcsMjQuMTRhMS4xNCwxLjE0LDAsMCwwLS43LTEuMWwtMS41Ni0uNDZx''@;'; put 'put ''LS4xMS0uMzItLjI2LS42M2wuNzItMS4zM2ExLjE0LDEuMTQsMCwwLDAtLjIxLTEuMzRsLTEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAtMS4zNC0uMmwtMS4zNC43MWE3LjI4LDcuMjgsMCwwLDAtLjY3LS4yOEwyNywxNi43MWExLjE0LDEuMTQsMCwwLDAtMS4wOC0uNzZIMjRhMS4xNCwxLjE0''@;'; put 'put ''LDAsMCwwLTEuMDguOGwtLjQ0LDEuNDNhNy4zMiw3LjMyLDAsMCwwLS42OC4yOGwtMS4zMi0uN2ExLjE0LDEuMTQsMCwwLDAtMS4zMy4xOWwtMS4zNywxLjMxYTEuMTQsMS4xNCwwLDAsMC0uMjEsMS4zNWwuNywxLjI4cS0uMTYuMzItLjI4LjY1TDE2LjU4LDIzYTEuMTMsMS4xMywwLDAsMC0u''@;'; put 'put ''ODEsMS4wOXYxLjg3QTEuMTQsMS4xNCwwLDAsMCwxNi41OSwyN2wxLjQ3LjQ0cS4xMi4zMi4yOC42NGwtLjcyLDEuMzVhMS4xNCwxLjE0LDAsMCwwLC4yLDEuMzVsMS4zNCwxLjMyYTEuMTQsMS4xNCwwLDAsMCwxLjM0LjJsMS4zNy0uNzJxLjMxLjE0LjYzLjI2bC40NCwxLjQ3YTEuMTQsMS4x''@;'; put 'put ''NCwwLDAsMCwxLjA5LjhoMS45QTEuMTQsMS4xNCwwLDAsMCwyNywzMy4zMWwuNDQtMS40N2MuMjEtLjA3LjQyLS4xNi42Mi0uMjVsMS4zOC43M2ExLjE0LDEuMTQsMCwwLDAsMS4zMy0uMmwxLjM0LTEuMzJhMS4xNCwxLjE0LDAsMCwwLC4yMS0xLjM1bC0uNzMtMS4zNHEuMTQtLjMuMjUtLjZs''@;'; put 'put ''MS41LS40NEExLjEzLDEuMTMsMCwwLDAsMzQuMTcsMjZabS0xLjYsMS41LTIsLjU4LS4xMi40MkE1LjU1LDUuNTUsMCwwLDEsMzAsMjcuNzNsLS4yMS4zOCwxLDEuNzktLjg2Ljg0LTEuODItMS0uMzcuMmE1Ljc4LDUuNzgsMCwwLDEtMS4xMi40NmwtLjQyLjEyLS41OSwySDI0LjM4bC0uNTkt''@;'; put 'put ''MS45NS0uNDItLjEyQTUuODYsNS44NiwwLDAsMSwyMi4yNCwzMGwtLjM3LS4yLTEuODEsMS0uODYtLjg1LDEtMS44Mi0uMjItLjM4YTUuNiw1LjYsMCwwLDEtLjQ5LTEuMTNsLS4xMy0uNDEtMS45NS0uNThWMjQuNDJsMS45NC0uNTguMTItLjQxYTUuNTMsNS41MywwLDAsMSwuNDktMS4xNGwu''@;'; put 'put ''MjItLjM5LTEtMS43My44Ny0uODQsMS43Ny45NC4zOC0uMjFhNS44LDUuOCwwLDAsMSwxLjE3LS40OWwuNDEtLjEyLjU5LTEuOTFoMS4yM2wuNTgsMS45LjQxLjEyYTUuNzksNS43OSwwLDAsMSwxLjE2LjQ4bC4zOC4yMSwxLjgtLjk1Ljg2Ljg1LTEsMS43Ny4yMS4zOGE1LjUzLDUuNTMsMCww''@;'; put 'put ''LDEsLjQ3LDEuMTNsLjEyLjQyLDEuOTMuNTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwyMy42MywzMiwyM2E3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0''@;'; put 'put ''TDMwLjksMTcuODZhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMWE3LDcsMCwwLDAtMS40My0uNjFsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxTDIwLDE3LjhhLjM3LjM3LDAsMCwwLS40NC4wN0wx''@;'; put 'put ''OCwxOS4zMWEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LDcsMCwwLDAsMTguMzUsMjNsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxQTcsNywwLDAsMCwxOSwyOC4zN2wtMSwxLjlhLjM3LjM3LDAsMCwwLC4wNy40NGwxLjQ1LDEuNDVh''@;'; put 'put ''LjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4z''@;'; put 'put ''Ny4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhBNyw3LDAsMCwwLDMxLjk1LDI3bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjI0QS4zNy4zNywwLDAsMCwzNCwyMy42M1ptLTguODMsNC43MkEzLjMzLDMuMzMsMCwxLDEsMjguNTMsMjUsMy4zMywzLjMzLDAsMCwxLDI1LjE5LDI4LjM0WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44NSwyNy40NGEyLjI5LDIuMjksMCwwLDAsMS43NC0xLjY4LDE5LjcxLDE5LjcxLDAsMCwwLDEuODktLjZWMjMuOTVhMiwyLDAsMCwxLC4wOS0uNTUsMTcuNDIsMTcuNDIs''@;'; put 'put ''MCwwLDEtMi4xNy43OCwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNjUsNS4wOSwxLjkzLDEuOTMsMCww''@;'; put 'put ''LDEsLjIzLS4zMmwuODktLjg3YTE2Ljg5LDE2Ljg5LDAsMCwxLTQuNDktNC44OSwyLjI3LDIuMjcsMCwwLDAsLjM1LTEuMmMwLS4wNywwLS4xNCwwLS4yMkExNy42OSwxNy42OSwwLDAsMSwyNSwxMWExNy40OSwxNy40OSwwLDAsMS0xLjE1LDMuMzUsMS45NCwxLjk0LDAsMCwxLC4zMS0uMDVo''@;'; put 'put ''MS40NWExOS4wNiwxOS4wNiwwLDAsMCwuOS0yLjdjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTMsMTEuOTMsMCwwLDEsMSw0LjYzbDEtLjUxYTIsMiwwLDAsMSwuOTItLjIzaC4wOEExNCwxNCwwLDEsMCwxNi40NCwzMWExLjk0LDEuOTQsMCwwLDEsLjEyLTEuNDZsLjI4LS41M2gtLjA3QTEx''@;'; put 'put ''LjkxLDExLjkxLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCww''@;'; put 'put ''LDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMC43OCw4LjQxQTIsMiwwLDAsMCwyOC44Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0u''@;'; put 'put ''MDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1pNMzIsMjdINFYxOS4wNkw3LjEzLDlIMjguODdMMzIsMTkuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIg''@;'; put 'put ''eT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0i''@;'; put 'put ''MS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIg''@;'; put 'put ''aGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMywxNS40SDMwLjg2TDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5SDE5LjU2bDEuMTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIs''@;'; put 'put ''MCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; put 'put ''Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''OC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0''@;'; put 'put ''IHg9IjEyLjEyIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''NC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4yMyIgeT0i''@;'; put 'put ''MTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40N2wtMS42NS01LjMyYTcuNDksNy40OSwwLDAsMS0yLC4zM0wzMiwx''@;'; put 'put ''OS4wNlYyN0g0VjE5LjA2TDcuMTMsOWgxNmE3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJW''@;'; put 'put ''MTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs''@;'; put 'put ''Mi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu''@;'; put 'put ''MTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMy4xNUE3LjQ5LDcuNDksMCwwLDEsMjIuNTcsN0g3LjEzQTIsMiwwLDAsMCw1LjIyLDguNDFMMi4w''@;'; put 'put ''OSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNmEyLDIsMCwwLDAtLjA5LS41OVpNOC45MiwyNUg3LjEyVjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMEgyMi4xVjIyaDEuOFptNSwwSDI3LjFW''@;'; put 'put ''MjJoMS44Wk0zMSwxOS40SDVWMThIMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlUm91dGVyPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4z''@;'; put 'put ''MmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwxLDAsMCwwLDIsMFYyNWwyLjY5''@;'; put 'put ''LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0y''@;'; put 'put ''LjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5YTEsMSwwLDEsMC0xLjQxLTEu''@;'; put 'put ''NDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40MUwxNywyNXY3LjY5YTEsMSww''@;'; put 'put ''LDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIu''@;'; put 'put ''NzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zOCwxNS40SDI4''@;'; put 'put ''LjU0TDMwLjE1LDE3SDIyLjQ2YTEsMSwwLDEsMCwwLDJoNy42OWwtMi43MSwyLjY5YTEsMSwwLDAsMCwxLjQxLDEuNDJMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; put 'put ''OCwxNC44N2wxLjE1LTEuMTYtLjEtLjE1QTMuNjgsMy42OCwwLDAsMSwxOSwxMFYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuODdsNS4xMS01LjE0YTEsMSwwLDEsMC0xLjQyLTEuNDFMMTksMTFWMy4zM2ExLDEsMCwwLDAtMiwwVjExTDE0LjMxLDguMzJhMSwxLDAsMSwwLTEu''@;'; put 'put ''NDIsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWExLDEsMCwwLDAsMiwwVjI1bDIu''@;'; put 'put ''NjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwx''@;'; put 'put ''LDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwxLDAsMCwwLDAt''@;'; put 'put ''Mkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIg''@;'; put 'put ''Y3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMS42N2ExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxOCwxLjY3Wk0xMy44Niw5''@;'; put 'put ''LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44LjgsMCwwLDEtMS4xMywwTDUsMTcu''@;'; put 'put ''NjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjkuNGEuOC44LDAsMCwxLTEuNiww''@;'; put 'put ''VjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjdsLTIuMi0yLjE0YS44LjgsMCwx''@;'; put 'put ''LDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MiwxNS4zOUgyOC42OEwzMSwxNy42N2wtNC4xOSw0LjA5YS44LjgsMCwxLDEtMS4xMi0xLjE0bDIuMi0yLjE1SDIxLjYzYS44''@;'; put 'put ''LjgsMCwwLDEsMC0xLjZoNi4yN2wtMS41LTEuNDdIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTMtMS41MUwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDEsMSwxNSw5LjkybDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2NC40OUEzLjY1LDMuNjUsMCwwLDEsMTksOS44OWw0LjIyLTcu''@;'; put 'put ''MzFBMTYsMTYsMCwxLDAsMzQsMTcuNjcsMTYsMTYsMCwwLDAsMzMuODIsMTUuMzlabS0yMy41LDYuMzVhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEuNkg4LjExbDIuMiwyLjE1QS44''@;'; put 'put ''LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAsMSwyMi4xNCwyNS40MVoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEu''@;'; put 'put ''MTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4yMiwxMi43NkE3LjQ5LDcuNDksMCwwLDEsMjMuMzIsMi42''@;'; put 'put ''YTE2LDE2LDAsMSwwLDkuOSwxMC4xN1pNMTMuODYsOS45MmEuOC44LDAsMCwxLDEuMTMsMGwyLjIxLDIuMTlWNS45M2EuOC44LDAsMCwxLDEuNiwwdjYuMThMMjEsOS45MmEuOC44LDAsMSwxLDEuMTMsMS4xNEwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDAsMSwxMy44Niw5LjkyWk0xMC4z''@;'; put 'put ''MiwyMS43NGEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2EuOC44LDAsMCwxLTEuMTMsMEwx''@;'; put 'put ''OC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwxLDIyLjE0LDI1LjQxWm00LjY3LTMuNjZhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIuMTVIMjEuNjNhLjguOCwwLDAs''@;'; put 'put ''MSwwLTEuNmg2LjI3bC0yLjItMi4xNGEuOC44LDAsMSwxLDEuMTItMS4xNEwzMSwxNy42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNs''@;'; put 'put ''ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVWTT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEsNUgyNVY4aDJWNWEyLDIsMCwwLDAtMi0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgy''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBIMTd2Mmg4djZoMlYxMmgzVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDIt''@;'; put 'put ''MlYyOGg4YTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLDVIMjEuODdM''@;'; put 'put ''MjMsM0gxMUEyLDIsMCwwLDAsOSw1djYuODVoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjE1LjQiIHdpZHRoPSIxLjk5IiBoZWlnaHQ9IjIuNiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjho''@;'; put 'put ''OGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMTB2MmgxLjU3''@;'; put 'put ''QTMuNjcsMy42NywwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEu''@;'; put 'put ''MjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEx''@;'; put 'put ''LDVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVoMFYyNkgyMlYxN2EyLDIs''@;'; put 'put ''MCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMmg4djZoMlYxMi44N0E3LjUyLDcuNTIsMCwwLDEsMjMuNjYsMTBIMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTks''@;'; put 'put ''MTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDI3VjVhMiwyLDAsMCwwLTItMkgxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxNy4xOWEyLDIsMCwwLDAtMiwydjEu''@;'; put 'put ''NEgyMEEzLjYsMy42LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCww''@;'; put 'put ''LDAsMi0yVjEyQTIsMiwwLDAsMCwzMCwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42aDIuNzJMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4xOSwxMGEyLDIsMCwwLDAtMiwydjEuNEgxOUEzLjY4LDMuNjgsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjIxLDE1LjRBMy41NSwzLjU1LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgx''@;'; put 'put ''Ny4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDIyLjlBNy40NSw3LjQ1LDAsMCwxLDIzLjEzLDNIMTFBMiwyLDAsMCwwLDksNXY4LjRoNC41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDE3LjE5YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMx''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBl''@;'; put 'put ''Vk1XQXBwPSgwLEUuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMTQgNiAx''@;'; put 'put ''NCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMCA0IDIwIDggMjIgOCAyMiA2IDMwIDYgMzAgMTQgMjggMTQgMjggMTYg''@;'; put 'put ''MzIgMTYgMzIgNCAyMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjI4''@;'; put 'put ''IDIyIDMwIDIyIDMwIDMwIDIyIDMwIDIyIDI4IDIwIDI4IDIwIDMyIDMyIDMyIDMyIDIwIDI4IDIwIDI4IDIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAg''@;'; put 'put ''NiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDE0IDYgMTQgNiA2IDE0''@;'; put 'put ''IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVy''@;'; put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS40SDIyLjIzQTMu''@;'; put 'put ''NjksMy42OSwwLDAsMSwxOSwxMy41NmwwLS4xVjE3aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIuNDUgNCAyMCA0IDIwIDggMjAuMTQgOCAyMi40NSA0IiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxNS40IiB3aWR0aD0iNCIgaGVpZ2h0PSIwLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC05LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjgg''@;'; put 'put ''MjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDZoLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDIwVjhoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTct''@;'; put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjE0SDI4djJoNFYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0yNSwxMS41OGE3LjUzLDcuNTMsMCwwLDEtLjU4LS41OEgxOXY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQ2VydGlmaWNhdGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTls''@;'; put 'put ''LjU3LS43LjkzLTEuMTRMMjAuNDEsMjhINFY4SDMybDAsOC41NmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxVjhBMiwyLDAsMCwwLDMyLDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0i''@;'; put 'put ''MTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0''@;'; put 'put ''LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCww''@;'; put 'put ''LDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcu''@;'; put 'put ''NDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIN3YxLjZIMTkuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjEuMTZhOC40MSw4LjQxLDAsMCwxLDIsMS44MXYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIxNiIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNyIg''@;'; put 'put ''eT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwz''@;'; put 'put ''LjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2My4zNGE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi02QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI4VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0TDIwLjQxLDI4WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDMwSDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMzJhMiwyLDAsMCwxLDIsMlYxOC4zN2E4LjM0LDguMzQsMCwwLDAtMTMuNDksOS43OWwtLjkzLDEuMTRaTTcsMTJ2MS42SDI0VjEyWm0wLDUuNkgxOFYxNkg3Wm0wLDdIMTdW''@;'; put 'put ''MjNIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNTlhNi4zNyw2LjM3LDAsMSwwLTEwLjc3LDQuNTlsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4yNiwwLDAsMCwzLjU1LDBsMy42''@;'; put 'put ''Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdBNi4zNCw2LjM0LDAsMCwwLDMzLjgzLDIzLjU5Wm0tMTAuNzQsMGE0LjM3LDQuMzcsMCwxLDEsNC4zNyw0LjMxQTQuMzUsNC4zNSwwLDAsMSwyMy4xLDIzLjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCwwLDAsMzMuODMsMjMuNTlabS0x''@;'; put 'put ''MC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMjkuMjVhOC4z''@;'; put 'put ''Niw4LjM2LDAsMCwxLDQuNzUsM3YtM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDcsMTMuNkg3VjEySDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5TDIxLjI5LDZINEEy''@;'; put 'put ''LDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRBOC4zNCw4LjM0LDAsMCwxLDI1LjY2LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LjA3LDEzLjZaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44''@;'; put 'put ''NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNDYsMTcuMjNhNi4zNiw2LjM2LDAsMCwwLTQuNCwxMWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQu''@;'; put 'put ''NDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN2E2LjM2LDYuMzYsMCwwLDAtNC40LTExWm0wLDEwLjY4YTQuMzEsNC4zMSwwLDEsMSw0LjM3LTQuMzFBNC4zNSw0LjM1LDAsMCwxLDI3LjQ2LDI3LjkxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQsMCwwLDEsMzQsMTguMzd2LTZB''@;'; put 'put ''Ny40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThabTYtNEg3VjEySDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; put 'put ''IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUFyY2hpdmU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYzMmEyLDIsMCwwLDAsMiwySDI5''@;'; put 'put ''YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwxOEg2VjE0aDRhMywzLDAsMCwxLS42OC0xLjg3czAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNBMywzLDAsMCwxLDI2LDE0aDR2NEgyMmwtMiwySDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQxLDIwLjYsMTgsMjJsLTEuNDEtMS40TDE2LDIwSDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIwSDIwWk0yMiwyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCwwLDEsMjIsMjRaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNhMywzLDAsMCwxLS44OCwyLjEyTDIyLDE4SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yLDE0LjI1YTMsMywwLDAsMS0uODgtMi4xMnMwLS4wOSwwLS4xM0g1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTE4LDE5LjE4bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTEuNDFsLTQsMy45NVYzYTEsMSwwLDEsMC0yLDB2MTIuNGwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAn''@;'; put 'put ''KSxMLkNsclNoYXBlVW5hcmNoaXZlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkg3VjIySDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIySDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMTQsMjRhMSwxLDAsMCwwLDEsMWg2YTEsMSwwLDAsMCwwLTJIMTVBMSwxLDAsMCwwLDE0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMThINlYxNGg5VjEySDUuNUExLjUsMS41LDAs''@;'; put 'put ''MCwwLDQsMTMuNVYyMEgxNS43OEEzLDMsMCwwLDEsMTUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41LDEySDIxdjJoOXY0SDIxYTMsMywwLDAsMS0uNzgsMkgzMlYxMy41QTEuNSwxLjUsMCwwLDAs''@;'; put 'put ''MzAuNSwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDkuNTUsMTcsNS42VjE4YTEsMSwwLDEsMCwyLDBWNS42bDQsMy45NWExLDEsMCwxLDAsMS40MS0xLjQyTDE4LDEuNzgsMTEuNjEsOC4xM0ExLDEs''@;'; put 'put ''MCwwLDAsMTMsOS41NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxYTMsMywwLDAsMS0yLjIyLTFINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBIMjAuMjFBMywzLDAsMCwxLDE4''@;'; put 'put ''LDIxWm00LDNhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwwLDEsMC0yaDZBMSwxLDAsMCwxLDIyLDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMkg1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTVaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2NkgzMlYxMy41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz5cbiAgICAgICAgJyks''@;'; put 'put ''TC5DbHJTaGFwZUNvbm5lY3Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDI4LjIzQTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMjJhNi4yMiw2LjIyLDAsMCwwLDYuMjIt''@;'; put 'put ''NUgzNFpNMTcuMDgsMjJIMTQuMTVhNC4xNyw0LjE3LDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00aDIuOTRaTTIyLDIySDE5VjE0aDNhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjIsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTI4LjIzLDE3QTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxOVYyNGgzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLTVIMzRWMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlRGlzY29ubmVjdD0oMCxFLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMTIuMTcsNkE2LjIxLDYuMjEsMCwwLDAsNiwxMUgyLjEzdjJINmE2LjIzLDYuMjMsMCwwLDAsNi4yMSw1SDE3VjZaTTE1LjEsMTZIMTIuMTdhNC4yLDQuMiwwLDAsMS00LjMxLTQsNC4xNyw0LjE3LDAsMCwxLDQuMzEtNEgxNS4xWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTIsMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDEsMCwwLDJoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYu''@;'; put 'put ''MjMsMCwwLDAsNi4yMi01aDMuNzZabS0xMCw1SDIxVjIwaDIuOTRhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjMuOTQsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiw2YTYu''@;'; put 'put ''MjEsNi4yMSwwLDAsMC02LjIxLDVIMnYySDUuODNBNi4yMyw2LjIzLDAsMCwwLDEyLDE4SDE3VjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc5LDIzSDMwLjE0YTYuMjUsNi4yNSwwLDAsMC02LjIxLTVIMTl2''@;'; put 'put ''MkgxNGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNs''@;'; put 'put ''clNoYXBlTGluaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNiwyNC4zMmwtMi40NiwyLjQ0YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NWw0LjY5LTQuNjVhNCw0LDAsMCwxLDUuNjIsMCwzLjg2LDMuODYsMCwwLDEsMSwxLjcxQTIsMiwwLDAsMCwyMS4x''@;'; put 'put ''LDE4bDEuMjktMS4yOGE1Ljg5LDUuODksMCwwLDAtMS4xNS0xLjYyLDYsNiwwLDAsMC04LjQ0LDBMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMGwzLjY1LTMuNjJjLS4xNywwLS4zMywwLS41LDBBOCw4LDAsMCwxLDE3LjYsMjQuMzJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42MSw3LjgyYTYsNiwwLDAsMC04LjQ0LDBsLTMuNjUsMy42MmMuMTcsMCwuMzMsMCwuNDksMGgwYTgsOCwwLDAsMSwyLjEuMjhsMi40Ni0yLjQ0YTQsNCwwLDAsMSw1LjYyLDAs''@;'; put 'put ''My45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC42OSw0LjY1YTQsNCwwLDAsMS01LjYyLDAsMy44NiwzLjg2LDAsMCwxLTEtMS43MSwyLDIsMCwwLDAtLjI4LjIzbC0xLjI5LDEuMjhhNS44OSw1Ljg5LDAsMCwwLDEuMTUsMS42Miw2LDYsMCwwLDAsOC40NCwwbDQuNjktNC42NWE1LjkyLDUuOTIs''@;'; put 'put ''MCwwLDAsMC04LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVVbmxpbms9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsNSwzLjU5LDYuNDFsOSw5TDguMSwxOS43OWE1LjkxLDUuOTEsMCwwLDAsMCw4''@;'; put 'put ''LjM5LDYsNiwwLDAsMCw4LjQ0LDBMMjEsMjMuNzhsOC42Myw4LjYzTDMxLDMxWk0xNS4xMywyNi43NmE0LDQsMCwwLDEtNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLTUuNTVMMTQsMTYuNzlsNS41OCw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNTMsOS4yMmE0LDQsMCwwLDEsNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLDUuNTVsLTQuNzksNC43NkwyMy43OCwyMWw0Ljc5LTQuNzZhNS45Miw1LjkyLDAsMCwwLDAtOC4zOSw2LDYsMCwwLDAtOC40NCwwbC00Ljc2LDQuNzRMMTYuNzgsMTRa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksTC5DbHJTaGFwZUNsb3VkTmV0d29yaz0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNzEsMTUuMTh2LTFBMTEuMjgsMTEuMjgsMCwwLDAsMTkuNTYsMi44M2gtLjExYTExLjI4''@;'; put 'put ''LDExLjI4LDAsMCwwLTExLDguOTMsNy40Nyw3LjQ3LDAsMCwwLDAsMTQuOTRIMjkuMTNhNS44Niw1Ljg2LDAsMCwwLDEuNTgtMTEuNTJaTTI5LjEzLDI0LjdIOC40NmE1LjQ3LDUuNDcsMCwxLDEsMC0xMC45NGgxLjY5bC4xMS0uODdhOS4yNyw5LjI3LDAsMCwxLDE4LjQ1LDEuM3YxLjI4YzAs''@;'; put 'put ''LjA5LDAsLjE4LDAsLjI3bC0uMDcsMS4xNS45NC4xMWEzLjg2LDMuODYsMCwwLDEtLjQzLDcuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41OCwzMS4xOEgxOC44NXYtMi40aC0ydjIuNEg2LjA4YTEs''@;'; put 'put ''MSwwLDAsMCwwLDJoMjMuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVDbG91ZFNjYWxlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjMyLDExLjExSDcuODRMOCwxMC4yNEE3''@;'; put 'put ''LjE5LDcuMTksMCwwLDEsMTUuMDcsNGguMDdhNy4xNSw3LjE1LDAsMCwxLDQuNzEsMS44MywxMS4xLDExLjEsMCwwLDEsMy4wOS42NEE5LjE4LDkuMTgsMCwwLDAsMTUuMTYsMmgtLjA5QTkuMiw5LjIsMCwwLDAsNi4xMyw5LjExLDYuMTUsNi4xNSwwLDAsMCwyLjMzLDE5Ljk1LDguMDksOC4w''@;'; put 'put ''OSwwLDAsMSwzLDE3LjcxYTQuMTIsNC4xMiwwLDAsMS0uODEtMi40NEE0LjE2LDQuMTYsMCwwLDEsNi4zMiwxMS4xMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjQsMTYuOTFoMS41MkwxMiwxNmE3LjE5''@;'; put 'put ''LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjE3LDcuMTcsMCwwLDEsNS43LDIuOTIsMTEuMDUsMTEuMDUsMCwwLDEsMi43Mi43Nyw5LjIsOS4yLDAsMCwwLTguNC01LjY5aC0uMDlhOS4yLDkuMiwwLDAsMC04Ljk0LDcuMTIsNi4xNSw2LjE1LDAsMCwwLTMuNjQsMTEsOC4xMSw4LjExLDAs''@;'; put 'put ''MCwxLC43OS0yLDQuMTQsNC4xNCwwLDAsMSwzLTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi40MiwyNC40N3YtLjYyYTkuMTgsOS4xOCwwLDAsMC0xOC4xMy0yLjE2QTYuMTYsNi4xNiwwLDAsMCwxNC40''@;'; put 'put ''OCwzNEgzMWE0Ljg4LDQuODgsMCwwLDAsMS40Ni05LjUzWk0zMSwzMkgxNC40OGE0LjE2LDQuMTYsMCwxLDEsMC04LjMySDE2bC4xMS0uODdhNy4xOSw3LjE5LDAsMCwxLDcuMTItNi4yNWguMDdhNy4yMSw3LjIxLDAsMCwxLDcuMTIsNy4yNXYxYzAsLjA3LDAsLjEzLDAsLjJsLS4wNywxLjEx''@;'; put 'put ''Ljk0LjExQTIuODgsMi44OCwwLDAsMSwzMSwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQ2xvdWRUcmFmZmljPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwyMC44MmEuODguODgsMCwwLDAt''@;'; put 'put ''Ljg4LS44OEgyMC43NWwxLjEtMS4xQS44OC44OCwwLDAsMCwyMC42LDE3LjZsLTMuMjEsMy4yMkwyMC42LDI0YS44OC44OCwwLDEsMCwxLjI1LTEuMjRMMjAuNzYsMjEuN2g0LjlBLjg4Ljg4LDAsMCwwLDI2LjU0LDIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjcsMjEuN2EuODguODgsMCwxLDAsMC0xLjc2aC0uNThhLjg4Ljg4LDAsMSwwLDAsMS43NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIx''@;'; put 'put ''LDIwaC0uMDZhLjg1Ljg1LDAsMCwwLS44NS44OC45MS45MSwwLDAsMCwuOTEuODguODguODgsMCwxLDAsMC0xLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuNTksMTFhLjg4Ljg4LDAsMCwwLTEuMjUs''@;'; put 'put ''MS4yNGwxLjEsMS4xSDI3LjUzYS44OC44OCwwLDEsMCwwLDEuNzZoNC45bC0xLjA5LDEuMDlhLjg4Ljg4LDAsMCwwLDEuMjUsMS4yNGwzLjIxLTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC41LDE1''@;'; put 'put ''LjA3YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuOSwxNC4yN2EuODUuODUsMCwwLDAtLjg1LS44OEgyMWEuODguODgsMCwx''@;'; put 'put ''LDAsMCwxLjc2QS45MS45MSwwLDAsMCwyMS45LDE0LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMzYsMjMuNjVjMCwuMTMsMCwuMjYsMCwuMzlhMy43NywzLjc3LDAsMCwxLTMuNjIsMy44OUg3LjI4''@;'; put 'put ''YTUuMzIsNS4zMiwwLDAsMS01LjEzLTUuNDhBNS4zMiw1LjMyLDAsMCwxLDcuMjgsMTdIOC45MUw5LDE2LjEyYTguOTIsOC45MiwwLDAsMSw4LjYyLThoLjA4YTguNDksOC40OSwwLDAsMSw2LjU2LDMuMjloMi4zN2ExMC41NSwxMC41NSwwLDAsMC04LjkxLTUuMjVoLS4xMUExMC44MiwxMC44''@;'; put 'put ''MiwwLDAsMCw3LjIyLDE1YTcuMjgsNy4yOCwwLDAsMC03LDcuNDMsNy4yNyw3LjI3LDAsMCwwLDcuMDgsNy40M0gyNi43N0E1LjcyLDUuNzIsMCwwLDAsMzIuMzUsMjRhMy43NywzLjc3LDAsMCwwLDAtLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+''@;'; put 'put ''XG4gICAgICAgICcpLEwuQ2xyU2hhcGVEZXBsb3k9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZW''@;'; put 'put ''MTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTExLjU0LDEwLjczbC05LDUuMTdhMSwxLDAsMCwwLS41Ljg3djExYTEsMSwwLDAsMCwuNS44N2w5LDUu''@;'; put 'put ''MTVhMSwxLDAsMCwwLDEsMGw5LTUuMTVhMSwxLDAsMCwwLC41LS44N3YtMTFhMSwxLDAsMCwwLS41LS44N2wtOS01LjE3QTEsMSwwLDAsMCwxMS41NCwxMC43M1pNMTEsMzEuMDhsLTctNFYxOC40NGw3LDRaTTEyLDIxLDQuODEsMTYuODcsMTIsMTIuNzhsNy4yMSw0LjEyWm04LDYuMDktNyw0''@;'; put 'put ''VjIyLjQ0bDctNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwx''@;'; put 'put ''LDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTIuNDYsMTAuNzNhMSwxLDAsMCwwLTEsMGwtOC42OCw1TDEyLDIxbDkuMTktNS4yNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDI3LjczYTEsMSwwLDAsMCwuNS44N0wxMSwzMy40NnYtMTFMMiwxNy4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xMywzMy40Nmw4LjUtNC44NmExLDEsMCww''@;'; put 'put ''LDAsLjUtLjg3VjE3LjI5bC05LDUuMTVaIi8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVIZWxpeD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODgsMTMuMDdhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUu''@;'; put 'put ''NzNhLjkuOSwwLDEsMSwxLDEuNTJMOS4zNywxMi45MkEuOS45LDAsMCwxLDguODgsMTMuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEzLjI1LDE1LjExYS45LjksMCwwLDEtLjQ5LTEuNjZMMTgsMTAuMDhh''@;'; put 'put ''LjkuOSwwLDEsMSwxLDEuNTJMMTMuNzQsMTVBLjkuOSwwLDAsMSwxMy4yNSwxNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTkuNzIsMzAuMjNhLjkuOSwwLDAsMS0uNDktMS42Nmw4LjkzLTUuNzNhLjku''@;'; put 'put ''OSwwLDAsMSwxLDEuNTJMMjAuMiwzMC4wOUEuOS45LDAsMCwxLDE5LjcyLDMwLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOC45MiwyNS45NGEuOS45LDAsMCwxLS40OS0xLjY2bDUuMjUtMy4zN2EuOS45''@;'; put 'put ''LDAsMSwxLDEsMS41MUwxOS40LDI1LjhBLjg5Ljg5LDAsMCwxLDE4LjkyLDI1Ljk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMS41Niw1LjY5YTMuNTksMy41OSwwLDAsMSwuMTUsMy41M0wxOC44MywxNWgy''@;'; put 'put ''LjI1bDIuNDMtNC44N2E1LjYxLDUuNjEsMCwwLDAtNS04LjE0SDEzLjI2bC0xLDJoNi4yMkEzLjYxLDMuNjEsMCwwLDEsMjEuNTYsNS42OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuOTEsMjAuNzhBNS41''@;'; put 'put ''Myw1LjUzLDAsMCwwLDI3LjY2LDE3SDkuMzFhMy41NCwzLjU0LDAsMCwxLTMuNTYtMy42NywzLjYxLDMuNjEsMCwwLDEsLjQyLTEuNTRsNC4yNi04LjQ5YTEsMSwwLDEsMC0xLjc5LS45TDQuNCwxMC44NEE1LjY3LDUuNjcsMCwwLDAsNCwxNS4yMiw1LjUzLDUuNTMsMCwwLDAsOS4yOCwxOWg3''@;'; put 'put ''LjZsLTMuNDQsNi44N2E1LjY0LDUuNjQsMCwwLDAsMS41LDYuOTJBNS4zOCw1LjM4LDAsMCwwLDE4LjQxLDM0aDUuMjVsMS0ySDE4LjQzYTMuNTgsMy41OCwwLDAsMS0zLjIyLTUuMjFMMTkuMTEsMTloOC41NGEzLjQyLDMuNDIsMCwwLDEsMi4xNS43MSwzLjU3LDMuNTcsMCwwLDEsMSw0LjQz''@;'; put 'put ''bC00LjEyLDguMjJhMSwxLDAsMSwwLDEuNzkuOWw0LjA2LTguMUE1LjY3LDUuNjcsMCwwLDAsMzIuOTEsMjAuNzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTkuNjNBNS41NSw1LjU1LDAsMCwwLDI3LjQy''@;'; put 'put ''LDE3SDEwLjA2YTQuMzYsNC4zNiwwLDAsMS0zLjY3LTIsNC4wNyw0LjA3LDAsMCwxLS4xOS00LjEzbDMuNjItNywxLjQyLDEuNjMtMi43NCw1LjMsOC44NC01LjY2YS45MS45MSwwLDAsMSwxLDEuNTNMNy44NCwxMy4zOGEyLjEzLDIuMTMsMCwwLDAsLjI0LjUyLDIuMjgsMi4yOCwwLDAsMCwx''@;'; put 'put ''LjY1LDFMMTguMTEsOS41YS45MS45MSwwLDAsMSwxLDEuNTJMMTMsMTQuOTRIMjAuOGwyLjQxLTQuODJhNS42LDUuNiwwLDAsMC01LTguMTJIOWExLDEsMCwwLDAtLjkuNTZMMy44OCwxMC44OWE1LjYsNS42LDAsMCwwLDUsOC4xMmg3LjY1bC0zLjQzLDYuODdhNS42LDUuNiwwLDAsMCw1LDgu''@;'; put 'put ''MTJoOS4yOGExLDEsMCwwLDAsLjkzLS42NWw0LjE0LTguMjRBNS41OCw1LjU4LDAsMCwwLDMyLjE2LDE5LjYzWk0xNy43NSwyNS41N0EuOTEuOTEsMCwwLDEsMTgsMjQuMzFsNi0zLjg4QS45MS45MSwwLDEsMSwyNSwyMmwtNiwzLjg4YS45MS45MSwwLDAsMS0xLjI2LS4yN1pNMjksMjQuMzRs''@;'; put 'put ''LTksNS43OGEuOTEuOTEsMCwxLDEtMS0xLjUzbDktNS43OGEuOTEuOTEsMCwxLDEsMSwxLjUzWiIvPlxuICAgICAgICAnKSxMLkNsclNoYXBlRmxhc2s9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQzLDI3LjI4LDIzLDE0Ljg0VjRoMWExLDEsMCwwLDAsMC0ySDEyYTEsMSwwLDAs''@;'; put 'put ''MCwwLDJoMVYxNC44NEw0LjUxLDI3LjM2QTQuMjksNC4yOSwwLDAsMCw1LDMyLjgsNC4zOCw0LjM4LDAsMCwwLDguMTUsMzRIMjhhNC4yNCw0LjI0LDAsMCwwLDMuNDItNi43MlpNMjkuODUsMzFhMi42MiwyLjYyLDAsMCwxLTIsMUg4YTIuMiwyLjIsMCwwLDEtMi4wNi0xLjQxLDIuNjgsMi42''@;'; put 'put ''OCwwLDAsMSwuMjktMi4xN2wzLTQuNDQsMTQsMC0xLjMxLTJIMTAuNTdMMTUsMTUuNDZWNGg2VjE1LjQ2bDguODQsMTMuMDVBMi4yMywyLjIzLDAsMCwxLDI5Ljg1LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; put 'put ''PSJNMzEuNDksMjcuNCwyMywxNC45NFY0aDFhMSwxLDAsMCwwLDAtMkgxMi4wOGExLDEsMCwwLDAsMCwySDEzVjE0Ljk0TDQuNTgsMjcuMzFhNC4zMSw0LjMxLDAsMCwwLS43OCwzQTQuMjMsNC4yMywwLDAsMCw4LDM0SDI3Ljg2QTQuMzYsNC4zNiwwLDAsMCwzMSwzMi44LDQuMjMsNC4yMyww''@;'; put 'put ''LDAsMCwzMS40OSwyNy40Wk0xNSwxNS40OVY0aDZWMTUuNDlMMjYuMTUsMjNIOS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42OCwx''@;'; put 'put ''NC44MWE2Ljc2LDYuNzYsMCwxLDEsNi43Ni02Ljc1QTYuNzcsNi43NywwLDAsMSwxNC42OCwxNC44MVptMC0xMS41MWE0Ljc2LDQuNzYsMCwxLDAsNC43Niw0Ljc2QTQuNzYsNC43NiwwLDAsMCwxNC42OCwzLjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40MiwzMS42OEEyLjE0LDIuMTQsMCwwLDEsMTUuOCwzMEg0VjI0LjIyYTE0LjgxLDE0LjgxLDAsMCwxLDExLjA5LTQuNjhsLjcyLDBhMi4yLDIuMiwwLDAsMSwuNjItMS44NWwuMTItLjExYy0uNDcsMC0xLS4wNi0xLjQ2LS4wNkExNi40Nywx''@;'; put 'put ''Ni40NywwLDAsMCwyLjIsMjMuMjZhMSwxLDAsMCwwLS4yLjZWMzBhMiwyLDAsMCwwLDIsMkgxNi43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODcsMTYuMjlhLjM3LjM3LDAsMCwxLC4xNSwwLC40Mi40''@;'; put 'put ''MiwwLDAsMC0uMTUsMFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwyMy4zMmwtMi0uNjFhNy4yMSw3LjIxLDAsMCwwLS41OC0xLjQxbDEtMS44NkEuMzguMzgsMCwwLDAsMzIsMTlsLTEuNDUtMS40''@;'; put 'put ''NWEuMzYuMzYsMCwwLDAtLjQ0LS4wN2wtMS44NCwxYTcuMTUsNy4xNSwwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM2LjM2LDAsMCwwLS4zNi0uMjRIMjMuODJhLjM2LjM2LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNmwtMS44Mi0xYS4zNS4zNSwwLDAsMC0uNDMuMDdMMTcu''@;'; put 'put ''NjksMTlhLjM4LjM4LDAsMCwwLS4wNi40NGwxLDEuODJBNi43Nyw2Ljc3LDAsMCwwLDE4LDIyLjY5bC0yLC42YS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNUEuMzUuMzUsMCwwLDAsMTYsMjZsMiwuNjFhNyw3LDAsMCwwLC42LDEuNDFsLTEsMS45MWEuMzYuMzYsMCwwLDAsLjA2LjQzbDEuNDUs''@;'; put 'put ''MS40NWEuMzguMzgsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA5LDcuMDksMCwwLDAsMS40LjU3bC42LDJhLjM4LjM4LDAsMCwwLC4zNS4yNmgyLjA1YS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yLjA1YTYuOTIsNi45MiwwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM2LjM2LDAsMCwwLC40My0u''@;'; put 'put ''MDdMMzIsMzAuNEEuMzUuMzUsMCwwLDAsMzIsMzBsLTEtMS44OGE3LDcsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM2LjM2LDAsMCwwLC4yNi0uMzVWMjMuNjdBLjM2LjM2LDAsMCwwLDMzLjY4LDIzLjMyWk0yNC44NSwyOGEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjMzQTMuMzQsMy4zNCwwLDAs''@;'; put 'put ''MSwyNC44NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTQuNjciIGN5PSI4LjMiIHI9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMTYuNDQsMzEuODJhMi4xNSwyLjE1LDAsMCwxLS4zOC0yLjU1bC41My0xLTEuMDktLjMzQTIuMTQsMi4xNCwwLDAsMSwxNCwyNS44NFYyMy43OWEyLjE2LDIuMTYsMCwwLDEsMS41My0yLjA3bDEuMDktLjMzLS41Mi0xYTIuMTcsMi4xNywwLDAsMSwuMzUtMi41MiwxOC45MiwxOC45''@;'; put 'put ''MiwwLDAsMC0yLjMyLS4xNkExNS41OCwxNS41OCwwLDAsMCwyLDIzLjA3djcuNzVhMSwxLDAsMCwwLDEsMUgxNi40NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNywyMy40NmwtMi0uNmE2LjczLDYuNzMsMCww''@;'; put 'put ''LDAtLjU4LTEuNDJsMS0xLjg2YS4zNS4zNSwwLDAsMC0uMDctLjQzbC0xLjQ1LTEuNDZhLjM4LjM4LDAsMCwwLS40My0uMDdsLTEuODUsMWE3Ljc0LDcuNzQsMCwwLDAtMS40My0uNmwtLjYxLTJhLjM4LjM4LDAsMCwwLS4zNi0uMjVIMjMuODRhLjM4LjM4LDAsMCwwLS4zNS4yNmwtLjYsMmE2''@;'; put 'put ''Ljg1LDYuODUsMCwwLDAtMS40NS42MWwtMS44MS0xYS4zOC4zOCwwLDAsMC0uNDQuMDZsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LjI0LDcuMjQsMCwwLDAsMTgsMjIuODNsLTIsLjYxYS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNWEuMzYuMzYsMCwwLDAsLjI2LjM1''@;'; put 'put ''bDIsLjYxYTcuMjksNy4yOSwwLDAsMCwuNiwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LjE2LDMyYS4zOC4zOCwwLDAsMCwuNDQuMDZsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMi4wNWEuMzguMzgsMCwwLDAsLjM2LjI2aDIuMDVhLjM4LjM4LDAsMCwwLC4z''@;'; put 'put ''NS0uMjZsLjYtMi4wNWE2LjY4LDYuNjgsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zOC4zOCwwLDAsMCwuNDQtLjA2TDMyLDMwLjU1YS4zOC4zOCwwLDAsMCwuMDYtLjQ0bC0xLTEuODhhNi45Miw2LjkyLDAsMCwwLC41Ny0xLjM4bDItLjYxYS4zOS4zOSwwLDAsMCwuMjctLjM1VjIzLjgyQS40''@;'; put 'put ''LjQsMCwwLDAsMzMuNywyMy40NlptLTguODMsNC43MmEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjM0QTMuMzQsMy4zNCwwLDAsMSwyNC44NywyOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVIYXJkRHJpdmU9KDAs''@;'; put 'put ''RS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDhhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yWk0zMiwyOEg0VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjI1LjQyIiBy''@;'; put 'put ''PSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS44OCwxOC4wOGEzLjU5LDMuNTksMCwxLDAsMy41OS0zLjU5LDMuODQsMy44NCwwLDAsMC0uOTEuMTNMMTUsMTYuMTZhMi4wOCwyLjA4LDAsMCwxLC41''@;'; put 'put ''LS4wNywyLDIsMCwxLDEtMiwyLDEuNjQsMS42NCwwLDAsMSwuMDgtLjVMMTIsMTcuMTZBMy41MywzLjUzLDAsMCwwLDExLjg4LDE4LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNDcsMjUuNzNhNy42''@;'; put 'put ''Niw3LjY2LDAsMCwxLTcuNjUtNy42NSw3LjU1LDcuNTUsMCwwLDEsLjI3LTJMNi41NCwxNS43YTkuMjQsOS4yNCwwLDAsMCwxNy44LDQuOTVIMjIuNjZBNy42NCw3LjY0LDAsMCwxLDE1LjQ3LDI1LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjguMjIsMTcuODNhLjguOCwwLDAsMC0uOC0uOEgyNC42NmE5LjI2LDkuMjYsMCwwLDAtOS4xOS04LjIsOS4zNiw5LjM2LDAsMCwwLTIuMzguMzJsLjQyLDEuNTRhNy44Niw3Ljg2LDAsMCwxLDItLjI2QTcuNjYsNy42NiwwLDAsMSwyMywxN0gyMC45MmEu''@;'; put 'put ''OC44LDAsMCwwLDAsMS42aDYuNUEuOC44LDAsMCwwLDI4LjIyLDE3LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAs''@;'; put 'put ''Mi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEyLDE3LjE2bDEuNTQuNDJhMS42NCwxLjY0LDAsMCwwLS4wOC41LDIsMiwwLDEsMCwyLTIsMi4wOCwyLjA4LDAsMCwwLS41LjA3bC0uNDEtMS41NGEzLjg0LDMuODQsMCwwLDEsLjkxLS4xMywzLjU5LDMuNTksMCwxLDEtMy41OSwzLjU5QTMuNTMsMy41''@;'; put 'put ''MywwLDAsMSwxMiwxNy4xNlpNNS4zMSw4QTEuMjUsMS4yNSwwLDEsMSw0LjA2LDkuMjUsMS4yNSwxLjI1LDAsMCwxLDUuMzEsOFptMCwyMC4wNmExLjI1LDEuMjUsMCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSw1LjMxLDI4LjA2Wm0xMC4xNi0uNzNBOS4yMiw5LjIyLDAsMCwxLDYu''@;'; put 'put ''NTQsMTUuN2wxLjU1LjQxYTcuNTUsNy41NSwwLDAsMC0uMjcsMiw3LjY0LDcuNjQsMCwwLDAsMTQuODQsMi41N2gxLjY4QTkuMjUsOS4yNSwwLDAsMSwxNS40NywyNy4zM1ptMTItOC43aC02LjVhLjguOCwwLDAsMSwwLTEuNkgyM2E3LjY2LDcuNjYsMCwwLDAtNy41Ny02LjYsNy44Niw3Ljg2''@;'; put 'put ''LDAsMCwwLTIsLjI2bC0uNDItMS41NGE5LjM2LDkuMzYsMCwwLDEsMi4zOC0uMzJBOS4yNiw5LjI2LDAsMCwxLDI0LjY2LDE3aDIuNzZhLjguOCwwLDAsMSwwLDEuNlptMy4zOSw5LjQzYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDI4LjA2Wm0wLTE3''@;'; put 'put ''LjU2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDEwLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlSGFyZERyaXZlRGlza3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0i''@;'; put 'put ''TTI2LDUuNzRBMS43NCwxLjc0LDAsMCwwLDI0LjI2LDRIMy43NEExLjc0LDEuNzQsMCwwLDAsMiw1Ljc0VjIwLjI2QTEuNzQsMS43NCwwLDAsMCwzLjc0LDIySDRWNkgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0zMi4yNiwxMkgxMS43NEExLjc0LDEuNzQsMCwwLDAsMTAsMTMuNzRWMjguMjZBMS43NCwxLjc0LDAsMCwwLDExLjc0LDMwSDMyLjI2QTEuNzQsMS43NCwwLDAsMCwzNCwyOC4yNlYxMy43NEExLjc0LDEuNzQsMCwwLDAsMzIuMjYsMTJaTTMyLDI4SDEyVjE0SDMyWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMjMuNjhhMi42NCwyLjY0LDAsMSwwLTIuNy0yLjYzQTIuNjcsMi42NywwLDAsMCwxOS45NCwyMy42OFptMC0zLjg3YTEuMjQsMS4yNCwwLDEsMS0xLjI5LDEuMjRBMS4y''@;'; put 'put ''NywxLjI3LDAsMCwxLDE5Ljk0LDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMTYuMjJhNC45Myw0LjkzLDAsMCwxLDQuOTUsNC4zNUgyMy43MVYyMmg0LjQxYS43LjcsMCwwLDAsMC0xLjRI''@;'; put 'put ''MjYuMzFhNi4zMyw2LjMzLDAsMCwwLTYuMzctNS43NSw2LjU4LDYuNTgsMCwwLDAtMS40OC4xN2wuMzUsMS4zN0E0LjczLDQuNzMsMCwwLDEsMTkuOTQsMTYuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; put 'put ''OS45NCwyNy4yN2E2LjQyLDYuNDIsMCwwLDAsNS42Ny0zLjM1SDIzLjkzYTUsNSwwLDAsMS00LDEuOTUsNC45MSw0LjkxLDAsMCwxLTUtNC44Miw1LjE2LDUuMTYsMCwwLDEsLjA4LS43OUwxMy42MywyMGE3LDcsMCwwLDAtLjA5LDFBNi4zMiw2LjMyLDAsMCwwLDE5Ljk0LDI3LjI3WiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCwwLDMuNzQsMjJINFY2SDI2WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCw5Ljc0QTEuNzQsMS43NCwwLDAsMCwyOC4yNiw4SDcuNzRBMS43NCwxLjc0LDAsMCwwLDYsOS43NFYyNC4yNkExLjc0LDEuNzQsMCwwLDAsNy43NCwyNkg4VjEwSDMwWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MiwyMi42QTEuNTUsMS41NSwwLDEsMCwxOCwyMS4wNSwxLjYsMS42LDAsMCwwLDE5LjYyLDIyLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0z''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCwwLDAsMCwzMi4yNiwxMlpNMTku''@;'; put 'put ''NjIsMTcuNzRhMy4zMSwzLjMxLDAsMSwxLTMuMzgsMy4zMUEzLjM1LDMuMzUsMCwwLDEsMTkuNjIsMTcuNzRabTAsMTEuMTNhNy45NCw3Ljk0LDAsMCwxLTgtNy44Miw3LjgzLDcuODMsMCwwLDEsLjExLTEuMjlsMS43NS4zYTUuMzYsNS4zNiwwLDAsMC0uMTEsMSw2LjE4LDYuMTgsMCwwLDAs''@;'; put 'put ''Ni4yOCw2LjA2LDYuMzUsNi4zNSwwLDAsMCw1LTIuNDZoMi4xQTguMDYsOC4wNiwwLDAsMSwxOS42MiwyOC44N1pNMjkuODksMjIuMkgyNC4zNlYyMC40NGgxLjQ4QTYuMTksNi4xOSwwLDAsMCwxOS42MiwxNWE2LjQ4LDYuNDgsMCwwLDAtMS40MS4xNmwtLjQ1LTEuN2E4LjE2LDguMTYsMCww''@;'; put 'put ''LDEsMS44Ni0uMjIsOCw4LDAsMCwxLDgsNy4yMWgyLjI2YS44OC44OCwwLDAsMSwwLDEuNzZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlTlZNZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcsMjJWMTRhMiwy''@;'; put 'put ''LDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkgyNUEyLDIsMCwwLDAsMjcsMjJaTTExLDE0SDI1djhIMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSI2IiB3aWR0aD0i''@;'; put 'put ''NCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI1LjAxIiB5PSI2IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik01LjgsOEgxNi44N1Y2aC0xMUw3Ljc4LDQuMDhhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDIsNyw2LjM3LDExLjRhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuNjEsMjQuNjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQyTDMwLjEsMjhIMTl2MkgzMC4ybC0yLDJhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsLjcuMjksMSwxLDAsMCwwLC43MS0uMjlMMzQsMjku''@;'; put 'put ''MDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSIyOCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cmVjdCB4PSI5IiB5PSIyOCIgd2lkdGg9IjEuOTciIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLEwuQ2xyU2hhcGVTU0Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i''@;'; put 'put ''Ni4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDE4LjYyYzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJzLS41MywxLjA5LTEuNTUsMS4wOWE0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MnMtMS4xNS0yLjA1LTIu''@;'; put 'put ''ODctMi40NGMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDEwLDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMUE0LjU4LDQuNTgsMCwwLDAsMTAsMTMuNjljLTEuNzQsMC0zLDEuMDUtMywyLjQ5UzguMjYsMTguMjIsMTAsMTguNjJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44MywyMC45M2E0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MlMxOS43MywxNy42NSwxOCwxNy4yNmMt''@;'; put 'put ''MS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDE3LjQ4LDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMWE0LjU2LDQuNTYsMCwwLDAtMy4xMi0xLjE1Yy0xLjczLDAtMywxLjA1LTMsMi40OXMxLjE5LDIsMi44OSwyLjQ0YzEuMzIuMzEsMS45MS41NCwx''@;'; put 'put ''LjkxLDEuMjJTMTguODUsMjAuOTMsMTcuODMsMjAuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS45LDE4YzAtMi40MS0xLjkyLTQuMTItNC42NC00LjEyaC0yLjl2OC4yNGgyLjlDMjgsMjIuMDgsMjku''@;'; put 'put ''OSwyMC4zNywyOS45LDE4Wm0tNi0yLjc2aDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwy''@;'; put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk01LjIxLDhBMS4yNSwxLjI1LDAsMSwxLDQsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4yMSw4Wm0wLDIwYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMjEsMjhabTUuMDYtNS43OGE1LDUsMCww''@;'; put 'put ''LDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIyLTIuNDksMy0yLjQ5YTQuNTgsNC41OCwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFBMy42''@;'; put 'put ''OCwzLjY4LDAsMCwwLDEwLDE1YTEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTIuMjQsMjIuMjIsMTAuMjcsMjIuMjJabTcuNTEsMGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwy''@;'; put 'put ''LjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIzLTIuNDksMy0yLjQ5YTQuNTYsNC41NiwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFhMy42OCwzLjY4LDAsMCwwLTIuMzctMSwxLjI1LDEuMjUsMCww''@;'; put 'put ''LDAtMS4zOSwxLjA4YzAsLjY3LjYxLjkxLDEuOTIsMS4yMSwxLjcyLjM5LDIuODcuOTQsMi44NywyLjQ0UzE5Ljc1LDIyLjIyLDE3Ljc4LDIyLjIyWm00LjU4LS4xNFYxMy44NGgyLjljMi43MiwwLDQuNjQsMS43MSw0LjY0LDQuMTJTMjgsMjIuMDgsMjUuMjYsMjIuMDhaTTMwLjY5LDI4YTEu''@;'; put 'put ''MjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjY5LDI4Wm0wLTE3LjVhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBkPSJNMjMuODYsMTUuMmgxLjU2YTIuNzcsMi43NywwLDEsMSwwLDUuNTNIMjMuODZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxMLkNsclNoYXBlQmx1ZXRvb3RoPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi42''@;'; put 'put ''NCwyNS4yNywxOSwxNy41MywxOSwzLDI1LjIxLDkuNGwtNS42NSw1Ljc5TDIxLDE2LjYybDUuNjgtNS44MmEyLDIsMCwwLDAsMC0yLjc4TDIwLjQ4LDEuN0EyLjA4LDIuMDgsMCwwLDAsMTguODUsMSwyLDIsMCwwLDAsMTcsM1YxNS4zOEwxMC4wNSw4LjI3QTEsMSwwLDAsMCw4LjYyLDkuNjZM''@;'; put 'put ''MTYuNzksMTgsOS4wNiwyNmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzM2EyLjA3LDIuMDcsMCwwLDAsLjcxLDEuNjJBMiwyLDAsMCwwLDE5LDM1YTEuOTQsMS45NCwwLDAsMCwxLjQyLS42bDYuMjMtNi4zOEEyLDIsMCwwLDAs''@;'; put 'put ''MjYuNjQsMjUuMjdaTTE5LDMzLjA1VjIwLjI5bDYuMjEsNi4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICA8cGF0aCBkPSJNMjYuNTIsMjQuNTJsLTUuNjUtNS44My0xLjQ2LTEuNXYtMTJMMjMuNzksOS43bC0zLjYsMy43MSwyLjI0LDIuMjks''@;'; put 'put ''NC4wOS00LjIyYTIuNTQsMi41NCwwLDAsMCwwLTMuNTZMMjAuNTcsMS43OEEyLjU0LDIuNTQsMCwwLDAsMTYuMiwzLjU1VjEzLjg2bC01LjUzLTUuN2ExLjYsMS42LDAsMSwwLTIuMywyLjIzTDE1Ljc1LDE4bC03LDcuMTlhMS42LDEuNiwwLDAsMCwwLDIuMjYsMS42MywxLjYzLDAsMCwwLDEu''@;'; put 'put ''MTIuNDUsMS41OCwxLjU4LDAsMCwwLDEuMTUtLjQ5bDUuMTEtNS4yN1YzMi40NWEyLjUzLDIuNTMsMCwwLDAsMS41OSwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41NiwyLjU2LDAsMCwwLDEuODMtLjc3bDUuOTUtNi4xNUEyLjU0LDIuNTQsMCwwLDAsMjYuNTIsMjQuNTJaTTE5LjQs''@;'; put 'put ''MzAuODNWMjEuNzdsNC4zOSw0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwzLDI1LjIyLDkuNGwtNS42Niw1LjhMMjEsMTYuNjNsNS42OC01LjgzYTIs''@;'; put 'put ''MiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIsMiwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzdjExLjRsMiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuNzcsNSwzLjM2LDYuNDIsMTUuODksMTksOS4wNiwyNmExLDEsMCww''@;'; put 'put ''LDAsLjcxLDEuNywxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzMi45NGEyLjA4LDIuMDgsMCwwLDAsLjcxLDEuNjNBMiwyLDAsMCwwLDE5LDM1YTIsMiwwLDAsMCwxLjQyLS42bDUuNDEtNS41NCwzLjU0LDMuNTNMMzAuNzcsMzFaTTE5LDMzLjA1di0xMWw1LjQxLDUuNDFaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzEsNS4xNywyMy43LDkuN2wtMy41OSwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NiwyLjU2LDAsMCwwLDAtMy41NmwtNi02LjE0YTIuNTEsMi41MSwwLDAsMC0yLjc3LS41OSwyLjU0LDIuNTQs''@;'; put 'put ''MCwwLDAtMS42LDIuMzZ2MTBsMy4yMSwzLjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC41LDUsMy4wOSw2LjQyLDE1LjE3LDE4LjUxLDguNywyNS4xOUExLjYsMS42LDAsMCwwLDkuODUsMjcuOSwxLjU3LDEuNTcsMCwwLDAsMTEsMjcu''@;'; put 'put ''NDFsNS4xMS01LjI3VjMyLjQ1YTIuNTQsMi41NCwwLDAsMCwxLjYsMi4zNiwyLjQ0LDIuNDQsMCwwLDAsLjk1LjE5LDIuNTUsMi41NSwwLDAsMCwxLjgyLS43N2w1LjEyLTUuMjksMy40OSwzLjQ4TDMwLjUsMzFaTTE5LjgxLDMwLjgzVjIyLjY1bDQsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVByb2Nlc3NPblZNPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40OSwyNi4yOGExLDEsMCwwLDAtMS4yLS43bC0yLjQ5LjY3YTE0LjIzLDE0LjIzLDAsMCwwLDIuNC02Ljc1QTE0LjQ4LDE0LjQ4LDAsMCwwLDI3LjM3LDcu''@;'; put 'put ''MzUsMSwxLDAsMCwwLDI2LDcuNDRhMSwxLDAsMCwwLC4wOSwxLjQxLDEyLjQ1LDEyLjQ1LDAsMCwxLDQuMTYsMTAuNDYsMTIuMTksMTIuMTksMCwwLDEtMiw1Ljc0TDI4LDIyLjU0YTEsMSwwLDEsMC0xLjk1LjE2bC41LDYuNDQsNi4yNS0xLjY2QTEsMSwwLDAsMCwzMy40OSwyNi4yOFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjMxLDE3LjA4YTEuMDYsMS4wNiwwLDAsMCwuNDQuMTYsMSwxLDAsMCwwLDEuMTItLjg1QTEyLjIxLDEyLjIxLDAsMCwxLDE4LjY5LDUuODRMMTYuNDUsNy4zN2ExLDEsMCwwLDAsLjQ3LDEuNzlB''@;'; put 'put ''MSwxLDAsMCwwLDE3LjU2LDlsNS4zMy0zLjY2TDE4LjMzLjc2YTEsMSwwLDEsMC0xLjM5LDEuMzhsMS43LDEuN0ExNC4yLDE0LjIsMCwwLDAsMy44OSwxNi4xMiwxLDEsMCwwLDAsNC4zMSwxNy4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRo''@;'; put 'put ''IGQ9Ik0yMS43MywyOS45M2ExMiwxMiwwLDAsMS00Ljg0LjUxLDEyLjMsMTIuMywwLDAsMS05LjU3LTYuM2wyLjQ5LjkzYTEsMSwwLDAsMCwuNjktMS44NGwtNC41OS0xLjdoMEw0LjQ0LDIxLDMuMzMsMjcuMzVhMSwxLDAsMCwwLC43OSwxLjEzbC4xNywwYTEsMSwwLDAsMCwxLS44MWwuNDIt''@;'; put 'put ''Mi40YTE0LjMsMTQuMywwLDAsMCwxMSw3LjE0LDEzLjkxLDEzLjkxLDAsMCwwLDUuNjMtLjYsMSwxLDAsMCwwLS42LTEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxM0gxNGExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEs''@;'; put 'put ''MWg4YTEsMSwwLDAsMCwxLTFWMTRBMSwxLDAsMCwwLDIyLDEzWm0tMSw4SDE1VjE1aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQXNzaWduVXNlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTdhNy40Niw3LjQ2''@;'; put 'put ''LDAsMSwwLTcuNDUtNy40NkE3LjQ2LDcuNDYsMCwwLDAsMTgsMTdaTTE4LDQuMDdhNS40Niw1LjQ2LDAsMSwxLTUuNDUsNS40NUE1LjQ2LDUuNDYsMCwwLDEsMTgsNC4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDMxLjg5VjI1''@;'; put 'put ''Ljc3YTE2LjEzLDE2LjEzLDAsMCwxLDEyLTUsMTYuNjEsMTYuNjEsMCwwLDEsOC43MSwyLjMzbDEuMzUtMS41MUExOC41MywxOC41MywwLDAsMCwxOCwxOC43NCwxNy43LDE3LjcsMCwwLDAsNC4yMSwyNC44YTEsMSwwLDAsMC0uMjEuNnY2LjQ5QTIuMDYsMi4wNiwwLDAsMCw2LDM0SDE4LjM5''@;'; put 'put ''bC0xLjktMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMS44OSwzMCwzMkgyNi44NWwtMS44LDJIMzBhMi4wNiwyLjA2LDAsMCwwLDItMi4wN1YyNi4ybC0yLDIuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzQuNzYsMTguNjJhMSwxLDAsMCwwLTEuNDEuMDhsLTExLjYyLDEzLTUuMi01LjU5QTEsMSwwLDAsMCwxNS4xMiwyNmExLDEsMCwwLDAtLjA2LDEuNDJsNi42OSw3LjJMMzQuODQsMjBBMSwxLDAsMCwwLDM0Ljc2LDE4LjYyWiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxMC4zNiIgcj0iNi44MSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjYuNjVhMi44LDIuOCwwLDAsMSw0Ljg1LTEuOEwyMC43MSwyOWw2''@;'; put 'put ''Ljg0LTcuNjNBMTYuODEsMTYuODEsMCwwLDAsMTgsMTguNTUsMTYuMTMsMTYuMTMsMCwwLDAsNS41LDI0YTEsMSwwLDAsMC0uMi42MVYzMGEyLDIsMCwwLDAsMS45NCwyaDguNTdsLTMuMDctMy4zQTIuODEsMi44MSwwLDAsMSwxMiwyNi42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI4Ljc2LDMyYTIsMiwwLDAsMCwxLjk0LTJWMjYuMjRMMjUuNTcsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy43NywxOC42MmExLDEsMCwwLDAtMS40Mi4wOGwtMTEuNjIsMTMtNS4yLTUu''@;'; put 'put ''NTlBMSwxLDAsMCwwLDE0LjEyLDI2YTEsMSwwLDAsMCwwLDEuNDJsNi42OCw3LjJMMzMuODQsMjBBMSwxLDAsMCwwLDMzLjc3LDE4LjYyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlQXRvbT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; put 'put ''PSJNMTgsMTQuMDVhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMTQuMDVabTAsNi40NGEyLjQyLDIuNDIsMCwxLDEsMi40Mi0yLjQyQTIuNDIsMi40MiwwLDAsMSwxOCwyMC40OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNC4y''@;'; put 'put ''MywxMS43MWEzOS4xNCwzOS4xNCwwLDAsMC00LjU3LTMuOTIsMjIuODYsMjIuODYsMCwwLDEsMy40OC0xLjcyYy4zMi0uMTIuNjItLjIxLjkyLS4zYTIuMjgsMi4yOCwwLDAsMCwzLjgxLS40NiwzLjMxLDMuMzEsMCwwLDEsMS45Mi44NGMxLjE5LDEuMTksMS4yMiwzLjU5LjEsNi41OC40OS42''@;'; put 'put ''NS45NCwxLjMxLDEuMzUsMiwuMTctLjQuMzUtLjc5LjQ5LTEuMTgsMS40Ny0zLjg1LDEuMjgtNy0uNTMtOC43OGE1LjI5LDUuMjksMCwwLDAtMy4zMy0xLjQ0LDIuMjksMi4yOSwwLDAsMC00LjMxLjU0Yy0uMzcuMTEtLjc0LjIyLTEuMTMuMzdhMjUuNzksMjUuNzksMCwwLDAtNC41NywyLjM1''@;'; put 'put ''QTI2LjIxLDI2LjIxLDAsMCwwLDEzLjI4LDQuMmMtMy44NS0xLjQ2LTctMS4yOC04Ljc3LjUzQzIuODUsNi40LDIuNTgsOS4xNywzLjY4LDEyLjU5YTIuMjgsMi4yOCwwLDAsMCwxLjU5LDMuNjdjLjMyLjYxLjY3LDEuMjIsMS4wNiwxLjgyQTI1LjU0LDI1LjU0LDAsMCwwLDQsMjIuNjZjLTEu''@;'; put 'put ''NDcsMy44NC0xLjI4LDcsLjUzLDguNzdhNS42Myw1LjYzLDAsMCwwLDQuMTIsMS41MSwxMy4zNCwxMy4zNCwwLDAsMCw0LjY1LTEsMjYuMjEsMjYuMjEsMCwwLDAsNC41OC0yLjM1QTI1Ljc5LDI1Ljc5LDAsMCwwLDIyLjQzLDMyYTE0LjE2LDE0LjE2LDAsMCwwLDMuNjUuOUEyLjMsMi4zLDAs''@;'; put 'put ''MCwwLDMwLjQ2LDMyYTQuNTUsNC41NSwwLDAsMCwuNzQtLjU3YzEuODEtMS44MSwyLTQuOTMuNTMtOC43N0EzMi42OCwzMi42OCwwLDAsMCwyNC4yMywxMS43MVpNMTIuNTcsMzAuMDljLTMsMS4xNS01LjQ1LDEuMTMtNi42NS0uMDhzLTEuMjMtMy42Mi0uMDctNi42NGEyMi43NywyMi43Nyww''@;'; put 'put ''LDAsMSwxLjcxLTMuNDgsNDAuMTksNDAuMTksMCwwLDAsMy45Miw0LjU2Yy40My40My44Ny44NSwxLjMxLDEuMjVxLjktLjQ2LDEuODMtMS4wNWMtLjU4LS41Mi0xLjE2LTEtMS43Mi0xLjYxYTM0LDM0LDAsMCwxLTUuNzQtNy40N0EyLjI5LDIuMjksMCwwLDAsNS41LDExLjY5aDBjLS43NS0y''@;'; put 'put ''LjUtLjYyLTQuNDkuNDMtNS41NGEzLjcyLDMuNzIsMCwwLDEsMi43Mi0uOTIsMTEuNCwxMS40LDAsMCwxLDMuOTMuODQsMjIuODYsMjIuODYsMCwwLDEsMy40OCwxLjcyLDM5LjE0LDM5LjE0LDAsMCwwLTQuNTcsMy45MmMtLjQ0LjQ0LS44Ny45LTEuMjksMS4zNmEyMC4yNywyMC4yNywwLDAs''@;'; put 'put ''MCwxLDEuODVjLjU0LS42MSwxLjA5LTEuMjEsMS42OC0xLjhhMzYuMzMsMzYuMzMsMCwwLDEsNS00LjE3LDM2Ljg4LDM2Ljg4LDAsMCwxLDQuOTUsNC4xNywzNi4yNiwzNi4yNiwwLDAsMSw0LjE3LDUsMzcsMzcsMCwwLDEtNC4xNyw1QTMwLjY4LDMwLjY4LDAsMCwxLDEyLjU3LDMwLjA5Wk0y''@;'; put 'put ''OS43OSwzMGwtLjE2LjEzYTIuMjcsMi4yNywwLDAsMC0zLjUuNzIsMTIuNTcsMTIuNTcsMCwwLDEtMy0uNzcsMjIsMjIsMCwwLDEtMy40OC0xLjcyLDM5LjE0LDM5LjE0LDAsMCwwLDQuNTctMy45MiwzOC4yNiwzOC4yNiwwLDAsMCwzLjkyLTQuNTYsMjIuODgsMjIuODgsMCwwLDEsMS43Miwz''@;'; put 'put ''LjQ4QzMxLDI2LjM5LDMxLDI4LjgxLDI5Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LTEuNzJjLjMyLS4xMi42''@;'; put 'put ''Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03LS41My04Ljc4YTUuMjksNS4y''@;'; put 'put ''OSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTNDMi44NSw2LjQsMi41OCw5LjE3''@;'; put 'put ''LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0LDEzLjM0LDAsMCwwLDQuNjUt''@;'; put 'put ''MSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41My04Ljc3QTMyLjY4LDMyLjY4''@;'; put 'put ''LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1LDEuMzEsMS4yNXEuOS0uNDYs''@;'; put 'put ''MS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQsMCwwLDEsMy45My44NCwyMi44''@;'; put 'put ''NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1LTQuMTcsMzYuODgsMzYuODgs''@;'; put 'put ''MCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAsMS0zLS43NywyMiwyMiwwLDAs''@;'; put 'put ''MS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv''@;'; put 'put ''PjxjaXJjbGUgY3g9IjE3Ljk5IiBjeT0iMTguMDciIHI9IjMuMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuNjYgMy4xMSkgcm90YXRlKC05LjIyKSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQmFyQ29kZT0oMCxFLmNsckljb25TVkcp''@;'; put 'put ''KCc8cGF0aCBkPSJNNSw3QTEsMSwwLDAsMCw0LDhWMzBhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSw3QTEsMSwwLDAsMCw4LDhWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAs''@;'; put 'put ''MCw5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMTMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxw''@;'; put 'put ''YXRoIGQ9Ik0xNyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxNyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCww''@;'; put 'put ''LDIxLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMjUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxw''@;'; put 'put ''YXRoIGQ9Ik0yOSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyOSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTMzLDdhMSwxLDAsMCwwLTEsMVYzMGExLDEsMCwwLDAsMiwwVjhBMSwxLDAsMCww''@;'; put 'put ''LDMzLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz4nKSxMLkNsclNoYXBlQ2REdmQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwx''@;'; put 'put ''NCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi4zMywxOGE0LjQ2LDQuNDYsMCwxLDAtNC40NSw0LjQ2QTQuNDYsNC40NiwwLDAsMCwyMi4zMywxOFpNMTcuODgsMjAuOUEyLjg2LDIuODYsMCwxLDEsMjAu''@;'; put 'put ''NzMsMTgsMi44NiwyLjg2LDAsMCwxLDE3Ljg4LDIwLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTcuODgsNy40M0gxOFY1Ljg0aC0uMTJBMTIuMjEsMTIuMjEsMCwwLDAsNS42OCwxNy43NWgxLjZBMTAuNjEsMTAuNjEsMCwwLDEs''@;'; put 'put ''MTcuODgsNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4wOCwxOEgyOC40OXYwQTEwLjYxLDEwLjYxLDAsMCwxLDE4LjI1LDI4LjYzdjEuNkExMi4yMiwxMi4yMiwwLDAsMCwzMC4wOSwxOFMzMC4wOCwxOCwzMC4wOCwxOFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxMVY5LjQ0aC0uMTJhOC42Miw4LjYyLDAsMCwwLTguNiw4LjMyaDEuNmE3LDcsMCwwLDEsNy02LjcyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+''@;'; put 'put ''PHBhdGggZD0iTTE4LjI1LDI1djEuNkE4LjYxLDguNjEsMCwwLDAsMjYuNDgsMTh2MGgtMS42djBBNyw3LDAsMCwxLDE4LjI1LDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE4LjE3LDEuOTJhMTYsMTYsMCwxLDAsMTYsMTZBMTYs''@;'; put 'put ''MTYsMCwwLDAsMTguMTcsMS45MlpNMjYuMjMsMThoMS41NGE5LjYxLDkuNjEsMCwwLDEtOS42LDkuNTNIMThWMjZoLjE3QTguMDcsOC4wNywwLDAsMCwyNi4yMywxOFpNNi4wNSwxOEg0LjQ1di0uMDhBMTMuNzIsMTMuNzIsMCwwLDEsMTgsNC4yMXYxLjZBMTIuMTMsMTIuMTMsMCwwLDAsNi4w''@;'; put 'put ''NSwxNy45MlptNC4wNSwwSDguNTZ2LS4wOEE5LjYxLDkuNjEsMCwwLDEsMTgsOC4zMlY5Ljg2YTguMDcsOC4wNywwLDAsMC03LjksOC4wNlptNC4zMi0uMDhhMy43NSwzLjc1LDAsMSwxLDMuNzUsMy43NUEzLjc1LDMuNzUsMCwwLDEsMTQuNDIsMTcuOTJabTMuNzUsMTMuNzFIMThWMzBoLjE3''@;'; put 'put ''QTEyLjEzLDEyLjEzLDAsMCwwLDMwLjI4LDE4aDEuNkExMy43MywxMy43MywwLDAsMSwxOC4xNywzMS42M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUNvbnRhaW5lcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMzBINGEy''@;'; put 'put ''LDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjI4QTIsMiwwLDAsMSwzMiwzMFpNNCw4VjI4SDMyVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44''@;'; put 'put ''LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSw5LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuOTIsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44LjgsMCwwLDEsMTQuOTIsMjUu''@;'; put 'put ''M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwyMSwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTI3LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDI3LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhW''@;'; put 'put ''MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTkuNjMsMjQuMjNhLjc5Ljc5LDAsMCwxLS44MS43N0EuNzkuNzksMCwwLDEsOCwyNC4yM1YxMS43N0EuNzkuNzksMCwwLDEsOC44MiwxMWEuNzkuNzksMCwwLDEsLjgxLjc3Wm02LDBhLjc5Ljc5LDAs''@;'; put 'put ''MCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4yMSwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgxLS43Ny43OS43OSwwLDAsMSwu''@;'; put 'put ''ODIuNzdabTYuMTIsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEsLjgyLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlQ29udGFpbmVy''@;'; put 'put ''Vm9sdW1lPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDE3LjU4YTMyLjM1LDMyLjM1LDAsMCwwLDYuMy45Miw0LjEzLDQuMTMsMCwwLDEsLjkyLTEuMzcsMzAuOTQsMzAuOTQsMCwwLDEtNy4yMi0xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; put 'put ''PHBhdGggZD0iTTYsMjhWOC4xOWMuMzQtLjc2LDQuMzEtMi4xMSwxMS0yLjExczEwLjY3LDEuMzUsMTEsMnYuM2MtLjgyLjc5LTQuNTgsMi4wNS0xMS4xMSwyLjA1QTMzLjQ4LDMzLjQ4LDAsMCwxLDgsOS40NHYxLjQ0YTM1LjYsMzUuNiwwLDAsMCw4Ljg5LDFjNC4yOSwwLDguOC0uNTgsMTEu''@;'; put 'put ''MTEtMS44MnY1LjA3YTUuMyw1LjMsMCwwLDEtMS44MS44OEgzMFY4LjEyYzAtMy4xOS04LjE3LTQtMTMtNHMtMTMsLjg1LTEzLDRWMjhDNCwzMC42Myw5LjM5LDMxLjY4LDE0LDMyVjMwQzkuMTMsMjkuNjYsNi4yOCwyOC42Miw2LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTgsMjQuMjhhMzEuMywzMS4zLDAsMCwwLDYsLjg5di0xLjRhMjguOTMsMjguOTMsMCwwLDEtNi0uOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYz''@;'; put 'put ''MmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yMSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwwLDAs''@;'; put 'put ''MS40LDBWMjIuNEEuNy43LDAsMCwwLDIxLDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAsMCwyNSwyMS44MloiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIg''@;'; put 'put ''Lz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTIxLDIxLjdh''@;'; put 'put ''LjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LDIxLjgyYS43LjcsMCwwLDAtLjcuN1YzMGEuNy43LDAsMSwwLDEuNCwwVjIyLjUy''@;'; put 'put ''QS43LjcsMCwwLDAsMjUsMjEuODJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxNkgyOFY4LjEyYzAtMS42OC01LjM4LTMtMTItM1M0LDYuNDQsNCw4LjEyVjI4YzAsMS41LDQuMzMsMi43NSwxMCwzVjI1LjIyYTI5LjE3LDI5LjE3LDAsMCwxLTgtMS4yOVYyMi40NGwuMjQuMUEyNi42MywyNi42MywwLDAsMCwx''@;'; put 'put ''NCwyMy44MlYyMGE0LDQsMCwwLDEsLjI5LTEuNDdBMjkuMTksMjkuMTksMCwwLDEsNiwxNy4yM1YxNS43NWwuMjQuMDlhMjksMjksMCwwLDAsOSwxLjMyaDBBNCw0LDAsMCwxLDE4LDE2Wk02LDEwLjU0VjkuMDVsLjI0LjA5QTMwLjEyLDMwLjEyLDAsMCwwLDE2LDEwLjQ3LDI4LjMzLDI4LjMz''@;'; put 'put ''LDAsMCwwLDI2LDkuMDV2MS41YTMyLjUzLDMyLjUzLDAsMCwxLTEwLDEuMzJBMzIuNDQsMzIuNDQsMCwwLDEsNiwxMC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZUZpbGVTaGFyZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJN''@;'; put 'put ''MzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAs''@;'; put 'put ''MCwuODEuNDFIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOTEsMjIuNDhhMi4wNiwyLjA2LDAsMCwwLTEuNDQuNjJsLTUuNzItMi42NlYyMGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4wNi0yLjk0LDIuMTIsMi4xMiww''@;'; put 'put ''LDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNhMi4wOSwyLjA5LDAsMSwwLDIuMDgtMi4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDlIMTYu''@;'; put 'put ''NDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMCw5Wk02LDdoNi40OWwyLjcyLDRINlpNMjEuOTQsMjYuNjRhMi4wOSwyLjA5LDAsMCwxLTIuMTEtMi4wNmwwLS4zLTUu''@;'; put 'put ''NjctMi42Ni0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMDgsMi4wOCwwLDEsMSwuNTgsMS40NkwxNC43NSwyMHYuNDdsNS43MiwyLjY2YTIuMDcsMi4wNywwLDEsMSwxLjQ3LDMuNTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0xIiAvPicpLEwuQ2xyU2hhcGVRckNvZGU9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNiw0QTEuNiwxLjYsMCwwLDAsNCw1LjZWMTJoOFY0Wk0xMCwxMEg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LDMwLjRB''@;'; put 'put ''MS42LDEuNiwwLDAsMCw1LjYsMzJIMTJWMjRINFpNNiwyNmg0djRINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwzMmg2LjRBMS42LDEuNiwwLDAsMCwzMiwzMC40VjI0SDI0Wm0yLTZoNHY0SDI2WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQsNEgyNHY4aDhWNS42QTEuNiwxLjYsMCwwLDAsMzAuNCw0Wk0zMCwxMEgyNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwIDEwIDIw''@;'; put 'put ''IDggMTYgOCAxNiAxMiAxOCAxMiAxOCAxMCAyMCAxMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48''@;'; put 'put ''cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgNiAyMCA4IDIyIDggMjIgNCAxNCA0IDE0IDggMTYgOCAxNiA2IDIwIDYiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxyZWN0IHg9IjQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSI0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cG9seWdvbiBwb2ludHM9IjEyIDE2IDEyIDE4IDEwIDE4IDEwIDE0IDggMTQgOCAxOCA2''@;'; put 'put ''IDE4IDYgMjAgNCAyMCA0IDIyIDggMjIgOCAyMCAxMCAyMCAxMCAyMiAxMiAyMiAxMiAyMCAxNCAyMCAxNCAxNiAxMiAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTYgMjIgMTYgMjIgMTggMjQgMTggMjQgMTYg''@;'; put 'put ''MjYgMTYgMjYgMTQgMjIgMTQgMjIgMTAgMjAgMTAgMjAgMTIgMTggMTIgMTggMTQgMjAgMTQgMjAgMTYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz48cG9seWdvbiBwb2ludHM9IjE4IDMwIDE0IDMwIDE0IDMyIDIyIDMyIDIyIDMwIDIwIDMwIDIwIDI4''@;'; put 'put ''IDE4IDI4IDE4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMiAyMCAyMiAxOCAyMCAxOCAyMCAxNiAxOCAxNiAxOCAxOCAxNiAxOCAxNiAyMCAxOCAyMCAxOCAyMiAyMCAyMiAyMCAyMCAyMiAyMCIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiAvPjxyZWN0IHg9IjMwIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiAvPjxyZWN0IHg9IjIyIiB5PSIyMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiAvPjxwb2x5Z29uIHBvaW50cz0iMzAgMTQgMjggMTQgMjggMTYgMjYgMTYgMjYgMTggMjggMTggMjggMjAgMzAgMjAgMzAgMTggMzIgMTggMzIgMTYgMzAgMTYgMzAgMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xNiIgLz48cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNyIgLz48cG9seWdvbiBwb2ludHM9IjE0IDI4IDE2IDI4IDE2IDI2IDE4IDI2IDE4IDI0IDE2IDI0IDE2''@;'; put 'put ''IDIwIDE0IDIwIDE0IDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTgiIC8+JyksTC5DbHJTaGFwZVVzYj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuMjksMTEuNGExLjQ5LDEuNDksMCwwLDEsMS4yOC0uNzJoMWEyLjg5LDIuODksMCwwLDAsMi43''@;'; put 'put ''NSwyLjA5LDMsMywwLDAsMCwwLTUuOTEsMi45LDIuOSwwLDAsMC0yLjY3LDEuODJIMTUuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42NmwtMyw0LjgzaDIuMzZabTUtMi45NEExLjM2LDEuMzYsMCwxLDEsMTgsOS44MSwxLjMyLDEuMzIsMCwwLDEsMTkuMzMsOC40NloiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4zLDE3LjM3bC02LjExLTMuNjZhLjcuNywwLDAsMC0uNywwLC43MS43MSwwLDAsMC0uMzYuNjFWMTdINi45MmEyLjMzLDIuMzMsMCwwLDEsLjMyLDEuMTcsMi40NywyLjQ3LDAsMSwxLTIuNDctMi40NiwyLjM3LDIu''@;'; put 'put ''MzcsMCwwLDEsMS4xNS4zbC45My0xLjc2QTQuNDQsNC40NCwwLDEsMCw5LjE1LDE5aDMuNThsNC4xNyw2LjY1YTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMS42NnYxLjI4YS43OS43OSwwLDAsMCwuOC43OWg0LjQ5YS43OS43OSwwLDAsMCwuOC0uNzl2LTQuNGEuNzkuNzksMCwwLDAtLjgtLjhI''@;'; put 'put ''MjIuMzRhLjguOCwwLDAsMC0uOC44djEuMTJIMTkuODhhMS41MSwxLjUxLDAsMCwxLTEuMjgtLjcyTDE1LjA5LDE5aDEydjIuNjZhLjY5LjY5LDAsMCwwLC4zNi42MS42Ny42NywwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDYuMTEtMy42NmEuNjkuNjksMCwwLDAsLjM0LS42QS43''@;'; put 'put ''MS43MSwwLDAsMCwzNC4zLDE3LjM3Wk0yMy4xNCwyNUgyNnYyLjhIMjMuMTRabTUuMzktNC41NlYxNS41NWw0LDIuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQuNzIsMTcuMzdsLTUuNTEtMy4zMWEuNzEuNzEsMCwwLDAtMS4w''@;'; put 'put ''Ny42VjE3SDExLjc3bDMuNTItNS42YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxLjY0YTIuNDEsMi40MSwwLDAsMCwyLjI1LDEuNjEsMi40OCwyLjQ4LDAsMCwwLDAtNC45NSwyLjM4LDIuMzgsMCwwLDAtMi4xMywxLjM0SDE2LjU3YTMuNDksMy40OSwwLDAsMC0zLDEuNjZMOS40MSwxN0g4''@;'; put 'put ''YTMuNDYsMy40NiwwLDEsMCwuMDgsMmg1LjY0bDQuMTUsNi42MmEzLjQ5LDMuNDksMCwwLDAsMywxLjY2aDIuNTl2LjkyaDQuNFYyMy44aC00LjR2MS40OEgyMC44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTYuMTEsMTloMTJ2Mi4yOGEuNy43LDAsMCwwLC4zNi42MS43Mi43MiwwLDAs''@;'; put 'put ''MCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDUuNTItMy4zMWEuNy43LDAsMCwwLDAtMS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlUmFkYXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDE4YzAsNy43LTYuMywxNC0x''@;'; put 'put ''NCwxNGMtNy43LDAtMTQtNi4zLTE0LTE0QzQsMTAuNiw5LjcsNC41LDE3LjEsNHYzLjdjLTUuNywwLjUtOS45LDUuNS05LjQsMTEuMnM1LjUsOS45LDExLjIsOS40XG5cdGM1LjMtMC41LDkuNC00LjksOS40LTEwLjNoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zcy04LjMtMy43LTguMy04LjNj''@;'; put 'put ''MC00LjIsMy4xLTcuOCw3LjMtOC4zdjQuNGMtMS44LDAuNC0zLjEsMi0zLjEsMy45XG5cdGMwLDIuMiwxLjgsNCw0LDRzNC0xLjgsNC00YzAtMS44LTEuMy0zLjQtMy0zLjhWMi4xQzE4LjYsMiwxOC4zLDIsMTgsMkM5LjIsMiwyLDkuMiwyLDE4czcuMiwxNiwxNiwxNnMxNi03LjIsMTYtMTZI''@;'; put 'put ''MzJ6IE0yMCwxOFxuXHRjMCwxLjEtMC45LDItMiwycy0yLTAuOS0yLTJzMC45LTIsMi0yUzIwLDE2LjksMjAsMTh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIsMThjMCw3LjctNi4yLDE0LTE0LDE0UzQsMjUuOCw0LDE4YzAtNy40''@;'; put 'put ''LDUuNy0xMy41LDEzLjEtMTR2My43Yy01LjcsMC41LTkuOCw1LjUtOS4zLDExLjJzNS41LDkuOCwxMS4yLDkuM1xuXHRcdGM1LjMtMC41LDkuMy00LjksOS4zLTEwLjJoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zUzkuNywyMi42LDkuNywxOGMwLTQuMiwzLjItNy44LDcuMy04LjJ2NC40Yy0y''@;'; put 'put ''LjEsMC42LTMuNCwyLjctMi45LDQuOVxuXHRcdGMwLjYsMi4xLDIuNywzLjQsNC45LDIuOWMyLjEtMC42LDMuNC0yLjcsMi45LTQuOWMtMC40LTEuNC0xLjUtMi41LTIuOS0yLjlWMmMtMC40LDAtMC43LDAtMS4xLDBjLTguOCwwLTE2LDcuMi0xNiwxNlxuXHRcdGMwLDguOCw3LjIsMTYsMTYs''@;'; put 'put ''MTZzMTYtNy4yLDE2LTE2YzAsMCwwLDAsMCwwSDMyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlSW5kdWN0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjMxLDI1LjgxYy0xLjc1LDAtMy0yLjQ5LTMtNmExMi43OSwxMi43''@;'; put 'put ''OSwwLDAsMSwxLjcyLTYuNywyLjU3LDIuNTcsMCwwLDAtMy43OSwwQTEyLjc5LDEyLjc5LDAsMCwxLDIxLDE5Ljc2YzAsMy41Ni0xLjIzLDYtMyw2cy0zLTIuNDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDAsMTIuNzksMTIuNzksMCwwLDEs''@;'; put 'put ''MS43Miw2LjdjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuODgsMTIuODgsMCwwLDEsMS43MS02LjcsMi43LDIuNywwLDAsMC0xLjg5LS44N0M3LjEsMTIuMTksNS42OSwxMy43LDUsMTZsLS4yMy43SDJhMSwxLDAsMCwxLDAtMkgzLjI5YzEuMS0yLjgzLDMuMDYtNC41NSw1LjI0''@;'; put 'put ''LTQuNTVhNC42Nyw0LjY3LDAsMCwxLDMuMTYsMS4zMiw0LjYyLDQuNjIsMCwwLDEsMy4xNS0xLjMyQTQuNjUsNC42NSwwLDAsMSwxOCwxMS41MWE0LjQzLDQuNDMsMCwwLDEsNi4zMSwwLDQuNjcsNC42NywwLDAsMSwzLjE2LTEuMzJjMi4xOCwwLDQuMTQsMS43Miw1LjI0LDQuNTVIMzRhMSwx''@;'; put 'put ''LDAsMCwxLDAsMkgzMS4yOGwtLjIzLS43Yy0uNzQtMi4zNC0yLjE1LTMuODUtMy41OC0zLjg1YTIuNywyLjcsMCwwLDAtMS44OS44NywxMi44OCwxMi44OCwwLDAsMSwxLjcxLDYuN0MyNy4yOSwyMy4zMiwyNi4wNywyNS44MSwyNC4zMSwyNS44MVpNMTgsMTQuOTNhMTEuNzEsMTEuNzEsMCww''@;'; put 'put ''LDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTgsMTQuOTNabTYuMzEsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEExMS43MSwxMS43MSwwLDAsMCwy''@;'; put 'put ''NC4zMSwxNC45M1ptLTEyLjYyLDBhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTEuNjksMTQuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxM''@;'; put 'put ''LkNsclNoYXBlUmVzaXN0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjQzLDI2LjM0aDBBMS40NywxLjQ3LDAsMCwxLDI4LDI1LjIyTDI0Ljg2LDEzLjE1LDIxLjc0LDI1LjIyYTEuNDksMS40OSwwLDAsMS0xLjQ1LDEuMTJoMGExLjQ5LDEuNDksMCwwLDEtMS40Ni0xLjEyTDE1''@;'; put 'put ''LjcxLDEzLjE1LDEyLjYsMjUuMjJhMS41MSwxLjUxLDAsMCwxLTIuOTEsMEw2LjU3LDEzLjE1LDUuMjIsMTguMzdIMmExLDEsMCwwLDEsMC0ySDMuNjdsMS40NS01LjU5QTEuNDgsMS40OCwwLDAsMSw2LjU3LDkuNjZoMEExLjQ3LDEuNDcsMCwwLDEsOCwxMC43OGwzLjEyLDEyLjA3LDMuMTIt''@;'; put 'put ''MTIuMDdhMS40OSwxLjQ5LDAsMCwxLDEuNDUtMS4xMmgwYTEuNDksMS40OSwwLDAsMSwxLjQ2LDEuMTJsMy4xMiwxMi4wNywzLjEyLTEyLjA3YTEuNSwxLjUsMCwwLDEsMi45LDBsMy4xMiwxMi4wNywxLjM1LTUuMjJIMzRhMSwxLDAsMCwxLDAsMkgzMi4zM2wtMS40NSw1LjU5QTEuNDgsMS40''@;'; put 'put ''OCwwLDAsMSwyOS40MywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVDYXBhY2l0b3I9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWExLDEsMCwxLDEsMiwwVjMzLjA2''@;'; put 'put ''QTEsMSwwLDAsMSwxNSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwzNC4wNmExLDEsMCwwLDEtMS0xVjMuMTVhMSwxLDAsMSwxLDIsMFYzMy4wNkExLDEsMCwwLDEsMjEsMzQuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuNDYsMTlIM2ExLDEsMCwwLDEsMC0ySDE0LjQ2YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMTlIMjEuNTRhMSwxLDAsMCwxLDAtMkgz''@;'; put 'put ''M2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVNxdWlkPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw3YTEsMSwwLDAsMS0xLTFWMy4xOWExLDEsMCwwLDEsMiwwVjZBMSwxLDAsMCwxLDE4LDda''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYzMGExLDEsMCwwLDEsMiwwdjNBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGgg''@;'; put 'put ''ZD0iTTcuNDEsMThsMS43OC0xLjc3YTEsMSwwLDEsMC0xLjQyLTEuNDJMNiwxNi41OSw0LjIzLDE0LjgxYTEsMSwwLDEsMC0xLjQyLDEuNDJMNC41OSwxOCwyLjgxLDE5Ljc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUw2LDE5LjQxbDEuNzcs''@;'; put 'put ''MS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNNiwxMy43NmwuMzYtLjM2YTMsMywwLDAsMSwyLjExLS44OCwxMSwxMSwwLDAsMSwxOSwwLDMsMywwLDAsMSwyLjEyLjg4''@;'; put 'put ''bC4zNi4zNi4yLS4yYTEzLDEzLDAsMCwwLTI0LjQsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMCwyMi4yNGwtLjM2LjM2YTMsMywwLDAsMS0yLjEyLjg4LDExLDExLDAsMCwxLTE5LDAsMywzLDAsMCwxLTIuMTItLjg4TDYsMjIu''@;'; put 'put ''MjRsLS4yLjJhMTMsMTMsMCwwLDAsMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQxLDE4bDEuNzgtMS43N2ExLDEsMCwwLDAtMS40Mi0xLjQyTDMwLDE2LjU5bC0xLjc3LTEuNzhhMSwxLDAsMSwwLTEuNDIsMS40Mkwy''@;'; put 'put ''OC41OSwxOGwtMS43OCwxLjc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMCwxOS40MWwxLjc3LDEuNzhhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTYiIC8+JyksTC5DbHJTaGFwZUhvc3RHcm91cD0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuMDgsMzRoLTE0QTEuMDgsMS4wOCwwLDAsMSw2LDMzVjEyYTEuMDgsMS4wOCwwLDAsMSwxLjA4LTEuMDhoMTRBMS4wOCwxLjA4LDAsMCwxLDIyLjE2LDEyVjMzQTEuMDgsMS4wOCwwLDAs''@;'; put 'put ''MSwyMS4wOCwzNFpNOC4xNiwzMS44OEgyMFYxM0g4LjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cmVjdCB4PSIxMC4wOCIgeT0iMTQuOTYiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNi4xLDI3LjgxaC0yVjloLTEyVjdoMTNhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLjA4LDIzaC0yVjVoLTExVjNoMTJhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjEzLjA4IiB5PSIyNy44OCIgd2lkdGg9IjIiIGhlaWdodD0iMi4xNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG5cbjxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHIt''@;'; put 'put ''aS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4wOCwzMSBMMS4wOCwzMSBDMC41MTM0MjcxOTcsMzEuMDAxNTU2NCAwLjA0MTk2NjM3NjUsMzAuNTY1MDE4NiAwLDMwIEwwLDkgQzAsOC40MDM1MzI0NyAwLjQ4MzUzMjQ3LDcuOTIgMS4wOCw3LjkyIEwxNS4wOCw3LjkyIEMxNS42NzY0Njc1LDcuOTIg''@;'; put 'put ''MTYuMTYsOC40MDM1MzI0NyAxNi4xNiw5IEwxNi4xNiwzMCBDMTYuMTE4MDMzNiwzMC41NjUwMTg2IDE1LjY0NjU3MjgsMzEuMDAxNTU2NCAxNS4wOCwzMSBaIE00LjA4LDExLjk2IEw0LjA4LDEzLjk2IEwxMi4wOCwxMy45NiBMMTIuMDgsMTEuOTYgTDQuMDgsMTEuOTYgWiBNNy4wOCwyNC44''@;'; put 'put ''OCBMNy4wOCwyNy4wNCBMOS4wOCwyNy4wNCBMOS4wOCwyNC44OCBMNy4wOCwyNC44OCBaIiAvPlxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjEsMjQuODEgTDE4LjEsMjQuODEgTDE4LjEsNiBMNi4xLDYgTDYuMSw0IEwxOS4xLDQgQzE5LjY1''@;'; put 'put ''MjI4NDcsNCAyMC4xLDQuNDQ3NzE1MjUgMjAuMSw1IEwyMC4xLDI0LjgxIFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuMDgsMjAgTDIyLjA4LDIwIEwyMi4wOCwyIEwxMS4wOCwyIEwxMS4wOCwwIEwyMy4wOCwwIEMyMy42MzIyODQ3''@;'; put 'put ''LDAgMjQuMDgsMC40NDc3MTUyNSAyNC4wOCwxIEwyNC4wOCwyMCBaIiAvPicpLEwuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi4wNiwzMGExLDEsMCwwLDEtMS0xVjhoLTJhMSwxLDAsMCwxLDAtMmg0VjI5QTEsMSwwLDAsMSw2LjA2LDMwWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMwLjA2LDI3aC0yNVY5aDI1YTMsMywwLDAsMSwzLDNWMjRBMywzLDAsMCwxLDMwLjA2LDI3Wm0tMjMtMmgyM2ExLDEsMCwwLDAsMS0xVjEyYTEsMSwwLDAsMC0xLTFoLTIzWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjIuMDYiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyMi4wNiIgeT0iMTQiIHdpZHRoPSI2''@;'; put 'put ''IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOS4wNiwyMmgtOFYyMGg3VjE0aDJ2N0ExLDEsMCwwLDEsMTkuMDYsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPicpLEwu''@;'; put 'put ''Q2xyU2hhcGVOb2RlR3JvdXA9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDIxLjU4bC00Ljk0LTIuODNWMTMuMDlhMSwxLDAsMCwwLS41MS0uODdMMjIuNjQsOS4xYTEsMSwwLDAsMC0xLDBMMTYuMiwxMi4yMmExLDEsMCwwLDAtLjUxLjg3djUuNjZsLTQuOTQsMi44M2ExLDEs''@;'; put 'put ''MCwwLDAtLjUuODd2Ni4yNGExLDEsMCwwLDAsLjUuODZsNS40NSwzLjEyYTEsMSwwLDAsMCwxLDBsNC45NS0yLjgzLDQuOTUsMi44M2ExLDEsMCwwLDAsLjUuMTQsMSwxLDAsMCwwLC40OS0uMTRsNS40NS0zLjEyYTEsMSwwLDAsMCwuNS0uODZWMjIuNDVBMSwxLDAsMCwwLDMzLjUzLDIxLjU4''@;'; put 'put ''Wk0yMi4xNCwxMS4xMmw0LjQ1LDIuNTVWMTlsLTQuNDYsMi41Ni00LjQ0LTIuNlYxMy42N1pNMTYuNjksMzAuNjVsLTQuNDQtMi41NFYyM2w0LjY4LTIuNjgsNC40LDIuNTdWMjhaTTMyLDI4LjExbC00LjQ0LDIuNTRMMjIuOTMsMjhWMjIuOTNsNC40Ni0yLjU3TDMyLDIzWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcsMjcuNDNhMSwxLDAsMCwxLTEtMVYxOS45QTEsMSwwLDAsMSw2LjUsMTlsNC45NS0yLjgzVjEwLjU0YTEsMSwwLDAsMSwuNS0uODdsNS4yMS0zYTEsMSwwLDAsMSwxLjM3LjM3LDEsMSwwLDAsMS0uMzgs''@;'; put 'put ''MS4zN2wtNC43LDIuNjh2NS42NmExLDEsMCwwLDEtLjUxLjg3TDgsMjAuNDh2NS45NUExLDEsMCwwLDEsNywyNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zLDI1LjA1YTEsMSwwLDAsMS0xLTFWMTcuNTNhMSwxLDAsMCwx''@;'; put 'put ''LC41LS44Nmw1LTIuODRWOC4xN0ExLDEsMCwwLDEsOCw3LjMxbDUuMjUtM2ExLDEsMCwwLDEsMSwxLjc0TDkuNDUsOC43NXY1LjY2YTEsMSwwLDAsMS0uNTEuODdMNCwxOC4xMXY1Ljk0QTEsMSwwLDAsMSwzLDI1LjA1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTMiLz4nKSxMLkNsclNoYXBlTm9kZXM9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUsMzQuMjksMiwyOS4zOVYxOS41OGw4LjUtNC45LDguNSw0Ljl2OS44MVpNNCwyOC4yMywxMC41LDMyLDE3LDI4LjIzVjIwLjc0TDEwLjUsMTcsNCwyMC43NFoiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yNS41LDM0LjI5LDE3LDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk0xOSwyOC4yMywyNS41LDMyLDMyLDI4LjIzVjIwLjc0TDI1LjUsMTcsMTksMjAuNzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTgsMjEuMzJsLTguNS00LjlWNi42MUwxOCwxLjcxbDguNSw0Ljl2OS44MVptLTYuNS02LjA2TDE4LDE5bDYuNS0zLjc1VjcuNzdMMTgsNCwxMS41LDcuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MyIvPicpLEwuQ2xyU2hhcGVOYW1lc3BhY2U9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDQuMThhMSwxLDAsMSwwLTEsMS43M2w2LDMuNDdWMjYuNjJsLTYsMy40N2ExLDEsMCwwLDAtLjM3LDEuMzYsMSwxLDAsMCwwLDEuMzcuMzdsNy00LjA1VjguMjNaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNOS42OCwyOS45LDQsMjYuNjJWOS4zOEw5LjY4LDYuMWExLDEsMCwxLDAtMS0xLjczTDIsOC4yM1YyNy43N2w2LjY4LDMuODZhMSwxLDAsMCwwLDEuMzctLjM3QTEsMSwwLDAsMCw5LjY4LDI5LjlaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTAsMTJWMjRhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjEyYTIsMiwwLDAsMC0yLTJIMTJBMiwyLDAsMCwwLDEwLDEyWm03LDB2NUgxMlYxMlptLTUsN2g1djVIMTJabTcsNVYxOWg1djVa''@;'; put 'put ''bTUtN0gxOVYxMmg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxMLkNsclNoYXBlTm9kZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzAuNjYsNywyNC4zM1YxMS42N0wxOCw1LjM0bDExLDYuMzNWMjQuMzNaTTksMjMuMThsOSw1LjE3''@;'; put 'put ''LDktNS4xN1YxMi44MkwxOCw3LjY1LDksMTIuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLEwuQ2xyU2hhcGVQb2Q9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDMySDEwYTYsNiwwLDAsMS02LTZWMTBhNiw2LDAsMCwxLDYtNkgyNmE2''@;'; put 'put ''LDYsMCwwLDEsNiw2VjI2QTYsNiwwLDAsMSwyNiwzMlpNMTAsNmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjZhNCw0LDAsMCwwLDQtNFYxMGE0LDQsMCwwLDAtNC00WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTI2''@;'; put 'put ''LjU2LDE1SDE1LjQ0QTEuNDMsMS40MywwLDAsMCwxNCwxNi40NHY4LjEyQTEuNDMsMS40MywwLDAsMCwxNS40NCwyNkgyNi41NkExLjQzLDEuNDMsMCwwLDAsMjgsMjQuNTZWMTYuNDRBMS40MywxLjQzLDAsMCwwLDI2LjU2LDE1Wk0yNiwyNEgxNlYxN0gyNloiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMi40LDE5SDEwVjEySDIwdjEuNGgydi0yQTEuNDMsMS40MywwLDAsMCwyMC41NiwxMEg5LjQ0QTEuNDMsMS40MywwLDAsMCw4LDExLjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDkuNDQsMjFoM1oiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksTC5DbHJDb250cm9sTHVuPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4czkuMS0uNDUsMTItMS44OHY1LjExYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEsOCwxNi4zM1YxOGE0MC44Niw0''@;'; put 'put ''MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlY4aDBzMCwwLDAtLjA3YzAtMy4zNS04LjgtNC4yNS0xNC00LjI1UzQsNC41OCw0LDcuOTN2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3''@;'; put 'put ''LjUzWk0xOCw1LjY4YzcuMTUsMCwxMS41MywxLjQ0LDEyLDIuMjUtLjQ2LjgxLTQuODQsMi4yNS0xMiwyLjI1UzYuMzEsOC42OSw2LDhDNi4zMSw3LjE4LDEwLjcxLDUuNjgsMTgsNS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9''@;'; put 'put ''Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; put 'put ''Lz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQu''@;'; put 'put ''MTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAsMi0yVjIzLjkzQTIsMiwwLDAs''@;'; put 'put ''MCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjEx''@;'; put 'put ''LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0xOCwxNy41NEEzNC44MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40NiwwLDkuMTMtLjQ1LDEyLTEu''@;'; put 'put ''OTF2My4yM2gyVjEzLjIyYTcuMzIsNy4zMiwwLDAsMS0yLC4yOHYxLjkxQzI5LjA5LDE2LjIzLDI1LDE3LjU0LDE4LDE3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik02LDI3LjUzVjEwLjNjMi45''@;'; put 'put ''LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhhNDcuNjYsNDcuNjYsMCwwLDAsNy4wOS0uNTIsNy40NSw3LjQ1LDAsMCwxLTEuNTEtMS44LDQ3LjQsNDcuNCwwLDAsMS01LjU4LjMyQzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjY2LDAsMy4xNi4wOCw0''@;'; put 'put ''LjUxLjIxYTcuNTYsNy41NiwwLDAsMSwuMjktMmMtMS43LS4xNy0zLjM4LS4yNC00LjgtLjI0LTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHBhdGggZD0iTTgsMjQu''@;'; put 'put ''NTlhMjUuNSwyNS41LDAsMCwwLDIuNzUuNTlsMS4yMS0xLjQxYTI0LjEzLDI0LjEzLDAsMCwxLTQtLjgzWiIvPjxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRs''@;'; put 'put ''LTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGguNTlhMy41OSwzLjU5LDAsMCwxLC4zMi0ySDE4QzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQu''@;'; put 'put ''NzItMi4zLDEyLTIuMywxLjIyLDAsMi4zNS4wNSwzLjQxLjEybDEuMS0xLjkxYy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTUuNEgzMGMtLjkxLjgyLTUsMi4xMy0x''@;'; put 'put ''MiwyLjEzQTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGEx''@;'; put 'put ''LjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEs''@;'; put 'put ''MSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjFIMzJWMTcuMzJjLTEuOSwyLjkzLTEwLjQ2LDMuMy0xNCwzLjNBNDIuNDMsNDIuNDMsMCwwLDEsOCwxOS41NlYxNy44OEE0''@;'; put 'put ''MC41OSw0MC41OSwwLDAsMCwxOCwxOWM1LDAsMTMuMi0uODIsMTQtMy44MlYxMC43MmMtMi4yMSwzLjM2LTEwLjQ5LDMuNDYtMTQsMy40NkE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRjNSwwLDEzLjI4LS44MywxNC0zLjg4VjcuODNoMGMt''@;'; put 'put ''LjE5LTMuMjctOC44NC00LjE1LTE0LTQuMTVTNC4yMSw0LjU2LDQsNy44M0g0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRhMjUuNzksMjUuNzksMCwwLDAs''@;'; put 'put ''My40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuXG4g''@;'; put 'put ''IDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0''@;'; put 'put ''LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgydi0yYTcuMzQsNy4zNCwwLDAsMS00LjEyLDAsMzkuNDcsMzkuNDcsMCwwLDEtOS44OCwxQTQyLjEyLDQyLjEyLDAsMCwxLDgsMTMuMTFWMTFhNDAu''@;'; put 'put ''NTksNDAuNTksMCwwLDAsMTAsMS4xNCw0Ny43Niw0Ny43NiwwLDAsMCw3LjA5LS41MkE3LjQ1LDcuNDUsMCwwLDEsMjIuOCwzLjkyYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMuMyw3LjYzLDMuODRsMi44NCwz''@;'; put 'put ''LC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCwwLDEtMSwxSDE1LjkyTDExLjQs''@;'; put 'put ''MjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4w''@;'; put 'put ''OSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzQuODUsMCwxMi44LS43OSwxMy45MS0zLjYySDIyLjIzYTMuNjgsMy42OCwwLDAsMS0yLjczLTEuMjNIMThBNDIuMTIs''@;'; put 'put ''NDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0aC41OWEzLjYxLDMuNjEsMCwwLDEsLjQ2LTIuMjlsMy40Ni02Yy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMTQsMC0xMy43OS44OC0xNCw0LjE1SDR2MTkuN2MwLDIuMTYsMy42NCwzLjMsNy42Mywz''@;'; put 'put ''Ljg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDksMzJhMSwxLDAsMCwxLTEsMUgx''@;'; put 'put ''NS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEz''@;'; put 'put ''SDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxMLkNsclNoYXBlTWVkaWFD''@;'; put 'put ''aGFuZ2VyPSgwLEUuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wk02''@;'; put 'put ''LDMwVjZIMzBWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMjcuMjIsMTBIMjB2NGEuOC44LDAsMSwwLDEuNTksMFYxMS42aDUuNjNhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0''@;'; put 'put ''IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTciLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0i''@;'; put 'put ''MiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0yLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdl''@;'; put 'put ''ZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdl''@;'; put 'put ''ZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMCwxNGEuOC44LDAsMSwwLDEuNTksMFYxMS42SDI1QTcuNzQs''@;'; put 'put ''Ny43NCwwLDAsMSwyMy42NiwxMEgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMwLDEzLjVoMFYzMEg2VjZIMjIuNVY2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBh''@;'; put 'put ''MiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEx''@;'; put 'put ''LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVk''@;'; put 'put ''Ii8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5c''@;'; put 'put ''biAgPHJlY3QgeD0iOC44MSIgeT0iMTQiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0''@;'; put 'put ''ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjYiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDZWNkgyMS4yN2wxLjE4LTJINkEyLDIs''@;'; put 'put ''MCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCIv''@;'; put 'put ''PlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYzMkgzMGEyLDIsMCwwLDAsMi0y''@;'; put 'put ''VjZBMiwyLDAsMCwwLDMwLDRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWm0wLTZIMjBWMTBo''@;'; put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cblxuICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNC0xLjE2VjE0SDIwVjEwaDMuNjZBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmE3LjM3LDcuMzcsMCwwLDEsLjI4LTJINkEyLDIsMCwwLDAsNCw2''@;'; put 'put ''VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgx''@;'; put 'put ''N1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAi''@;'; put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0yMi4yMywxNS40YTMuNjgsMy42OCwwLDAsMS0zLjE4LTUuNTFMMjIuNDUsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwy''@;'; put 'put ''LDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0xNywyOEg4LjgxVjI2SDE3Wm0wLTRIOC44MVYyMkgxN1ptMC00SDguODFWMThIMTdabTAtNEg4LjgxVjE0SDE3Wm0wLTRIOC44MVYxMEgx''@;'; put 'put ''N1pNMjIsMjRIMjBWMjJoMlptMC00SDIwVjE4aDJabTQsNEgyNFYyMmgyWm0wLTRIMjRWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCww''@;'; put 'put ''LDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICcpLEwuQ2xy''@;'; put 'put ''U2hhcGVUYXBlRHJpdmU9KDAsRS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEzLjMzLDEzLjM1YTQuNTIsNC41MiwwLDEsMCw0LjUzLDQuNTJBNC41Myw0LjUzLDAsMCwwLDEzLjMzLDEzLjM1Wm0wLDcuNDRhMi45MiwyLjkyLDAsMSwxLDIuOTMtMi45MkEyLjkyLDIuOTIsMCwwLDEsMTMuMzMsMjAuNzlaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNjIsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTIsNC41MkE0LjUzLDQuNTMsMCwwLDAsMjMuNjIsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45Mi0yLjkyQTIuOTIsMi45MiwwLDAs''@;'; put 'put ''MSwyMy42MiwyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik02LDExVjIzLjU1SDhWMTJIMjkuMzRWMTBIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG5c''@;'; put 'put ''biAgPHBhdGggZD0iTTguODEsMTcuODdhNC41Myw0LjUzLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsOC44MSwxNy44N1ptNy40NSwwQTIuOTMsMi45MywwLDEsMSwxMy4zMywxNSwyLjkzLDIuOTMsMCwwLDEsMTYuMjYsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE5LjEsMTcuODdhNC41Miw0LjUyLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsMTkuMSwxNy44N1ptNy40NCwwQTIuOTIsMi45MiwwLDEsMSwyMy42MiwxNSwyLjkyLDIuOTIsMCwwLDEsMjYu''@;'; put 'put ''NTQsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLDEzLjIyVjI4SDRWOEgyMi43OGE3LjM3LDcuMzcsMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJh''@;'; put 'put ''MiwyLDAsMCwwLDItMlYxMi4zNEE3LjY1LDcuNjUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyNS41MWE3LjY2LDcuNjYsMCwwLDEtMS44NS0y''@;'; put 'put ''SDdBMSwxLDAsMCwwLDYsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1i''@;'; put 'put ''YWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4LjgxLDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAsMSwxNi4yNiwxNy44N1oiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik03LDEwYTEsMSwwLDAsMC0xLDFWMjMuNTVIOFYxMkgxOC41N0EzLjcsMy43LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMjhINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTIyLjA5LDE1LjM5YTMuNjUsMy42NSwwLDAsMS0xLjgtLjU1LDQuNTEsNC41MSwwLDEsMCw3LjExLjU2SDI1LjE3YTIuOTIsMi45MiwwLDEsMS0zLjA4LDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0z''@;'; put 'put ''MCwyNEg2VjEySDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwxNloiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjc5LDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDIzLjc5LDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5c''@;'; put 'put ''biAgPHBhdGggZD0iTTEyLjIxLDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDEyLjIxLDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTIuMjEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICA8cGF0aCBkPSJN''@;'; put 'put ''MjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxMy41VjI0SDZW''@;'; put 'put ''MTJIMjUuNTFhNy40OSw3LjQ5LDAsMCwxLTMtNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQi''@;'; put 'put ''Lz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik03LjIsMThhNSw1LDAsMSwwLDUtNUE1LDUsMCwwLDAsNy4yLDE4Wm03LDBhMiwy''@;'; put 'put ''LDAsMSwxLTItMkEyLDIsMCwwLDEsMTQuMjIsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0xOC43OCwxOGE1LDUsMCwxLDAsOS4yNy0yLjZIMjIuMjNhMy43MSwzLjcxLDAsMCwxLTIuMTctLjcxQTUs''@;'; put 'put ''NSwwLDAsMCwxOC43OCwxOFptNS0yYTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMFYyNEg2VjEySDE4LjU3YTMuNjUsMy42''@;'; put 'put ''NSwwLDAsMSwuNDgtMi4xMUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0''@;'; put 'put ''bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1hbGVydCIvPlxuICAnKSxMLkNsclNoYXBlQW5pbWF0aW9uPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC4xNiwzMS43MWE0LjQsNC40LDAsMCwxLTQuNjQtMUE0LjM0LDQuMzQsMCwwLDEsNC4yMywyNy42YTQuNDEsNC40MSwwLDAsMSwuMTgtMS4yLDExLjYxLDExLjYxLDAs''@;'; put 'put ''MCwxLTEtMi41Niw2LjQsNi40LDAsMCwwLDkuMzMsOC42M0ExMS41NSwxMS41NSwwLDAsMSwxMC4xNiwzMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MSwyNy42OGE3LjYxLDcuNjEsMCwwLDEtOS4wOC0xLjI2LDcu''@;'; put 'put ''NTgsNy41OCwwLDAsMS0xLjI3LTkuMDYsMTQuMjYsMTQuMjYsMCwwLDEtLjM3LTIuODUsOS41OCw5LjU4LDAsMCwwLC4yMiwxMy4zMyw5LjYzLDkuNjMsMCwwLDAsMTMuMzUuMjJBMTQuNDYsMTQuNDYsMCwwLDEsMTguNDEsMjcuNjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNjYsMjYuMjFhMTIuMSwxMi4xLDAsMSwxLDguNTctMy41NGgwQTEyLjExLDEyLjExLDAsMCwxLDIxLjY2LDI2LjIxWk0yMS42Niw0QTEwLjExLDEwLjExLDAsMCwwLDExLjU0LDE0LjExYTEwLDEwLDAsMCwwLDMsNy4xNCwxMC4xMiwxMC4x''@;'; put 'put ''MiwwLDAsMCwxNC4zMSwwQTEwLjExLDEwLjExLDAsMCwwLDIxLjY2LDRabTcuODYsMThoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIFxuICA8cGF0aCBkPSJNMy41LDIzLjc3YTYuNDEsNi40MSwwLDAsMCw5LjMzLDguNjdBMTEuNjUsMTEuNjUs''@;'; put 'put ''MCwwLDEsMy41LDIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy42OCwxNC41M2E5LjYsOS42LDAsMCwwLDEzLjQsMTMuN0ExNC4xMSwxNC4xMSwwLDAsMSw3LjY4LDE0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNzgsMkExMi4xMiwxMi4xMiwwLDEsMSw5LjY2LDE0LjE1LDEyLjEyLDEyLjEyLDAsMCwxLDIxLjc4LDIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgJyksTC5DbHJTaGFwZUNpQ2Q9KDAsRS5jbHJJY29u''@;'; put 'put ''U1ZHKSgnPHBhdGggZD0iTTIzLjUzLDE5LjgxYTcuNDUsNy40NSwwLDAsMS0xLjY1LS4xOCwxMC40OCwxMC40OCwwLDAsMSwuNzIsMi4xM2MuMywwLC42MSwwLC45MywwYTkuNTIsOS41MiwwLDAsMCwzLS40OWwtLjkzLTEuODFBNy42Nyw3LjY3LDAsMCwxLDIzLjUzLDE5LjgxWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjM2LDE3Ljg3LDE4LDE3LjQ5YTcuNCw3LjQsMCwwLDEtMi4yLTUuOTIsNy4zMSw3LjMxLDAsMCwxLDEuNTQtNEwxNy4yNiw5QTEsMSwwLDAsMCwxOC4xNywxMGguMDlhMSwxLDAsMCwwLDEtLjkx''@;'; put 'put ''TDE5LjYsNWExLDEsMCwwLDAtLjI5LS43OUExLDEsMCwwLDAsMTguNTIsNGwtNC4wOS4zNWExLDEsMCwwLDAsLjE3LDJsMS4yOS0uMTFhOS40NSw5LjQ1LDAsMCwwLTIuMDUsNS4zMiw5LjI4LDkuMjgsMCwwLDAsMi42Nyw3LjI2bC4zMS4zN2E3LjMzLDcuMzMsMCwwLDEsMi4wNiw0LjkxLDcu''@;'; put 'put ''MzksNy4zOSwwLDAsMS0uMjYsMi40N2wxLjguOTFhOC43Niw4Ljc2LDAsMCwwLC40NS0zLjUxQTkuMjgsOS4yOCwwLDAsMCwxOC4zNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi40LDE3LjkxLDMxLjE5LDE4QTku''@;'; put 'put ''NjUsOS42NSwwLDAsMCwyMy41MywyLjQ1YTkuMzMsOS4zMywwLDAsMC0zLC40OWwuOTEsMS44YTcuNjcsNy42NywwLDAsMSw5Ljc2LDcuMzksNy41OCw3LjU4LDAsMCwxLTEuNjUsNC43MmwuMS0xLjU0YTEsMSwwLDEsMC0yLS4xM2wtLjI4LDQuMDhhMSwxLDAsMCwwLC4zMS43OC45NC45NCww''@;'; put 'put ''LDAsMCwuNjkuMjhoLjFsNC4wOC0uNDJhMSwxLDAsMCwwLC45LTEuMUExLDEsMCwwLDAsMzIuNCwxNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik00LjA3LDIwLjQ0aC4wOGw0LjA5LS4zNWExLDEsMCwxLDAtLjE3LTJsLTEu''@;'; put 'put ''MzkuMTJhNy42Myw3LjYzLDAsMCwxLDQuNTItMS40OSw3LjksNy45LDAsMCwxLDEuNjMuMTgsMTAuMjMsMTAuMjMsMCwwLDEtLjcxLTIuMTNjLS4zLDAtLjYxLDAtLjkyLDBhOS42Niw5LjY2LDAsMCwwLTUuOSwybC4xMi0xLjMxYTEsMSwwLDAsMC0uOTItMS4wOCwxLDEsMCwwLDAtMS4wOC45''@;'; put 'put ''MWwtLjM1LDQuMDhhMSwxLDAsMCwwLDEsMS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwyOC4yM2wtNC4wOS4yN2ExLDEsMCwwLDAsLjEzLDJMMTYsMzAuMzlhNy43MSw3LjcxLDAsMCwxLTEyLjU0LTYsNy42LDcu''@;'; put 'put ''NiwwLDAsMSwuMjktMkwyLDIxLjQ2YTkuNTksOS41OSwwLDAsMC0uNDcsMi45NUE5LjcsOS43LDAsMCwwLDE3LjE5LDMybC0uMTIsMS4xOGExLDEsMCwwLDAsLjg5LDEuMWguMTFhMSwxLDAsMCwwLDEtLjlsLjQyLTQuMDZhMSwxLDAsMCwwLTEuMDYtMS4xWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxMLkNsclNoYXBlRmlsZVNoYXJlMj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEg3LjgzQTEuODksMS44OSwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OSwxLjg5LDAsMCwwLDcuODMsMzJIMjguMTdBMS44NywxLjg3LDAsMCwwLDMw''@;'; put 'put ''LDMwLjA5VjlaTTI0LDUuNzgsMjguMiwxMEgyNFpNOCwzMFY2SDIydjZoNlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMiwyMS44MWEyLjExLDIuMTEsMCwwLDAtMS40NC42MmwtNS43Mi0yLjY2di0uNDRsNS42Ni0yLjY1''@;'; put 'put ''YTIuMDgsMi4wOCwwLDEsMCwuMDYtMi45NGgwYTIuMTQsMi4xNCwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNBMi4wOSwyLjA5LDAsMSwwLDIyLDIxLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0yNSw0LjA2SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNlYzMC4xNWExLjg5LDEuODksMCwwLDAsMS44MywxLjkxSDI4LjE3QTEuODcsMS44NywwLDAsMCwzMCwzMC4xNVY5Wk0yMiwyNmEyLjA5LDIuMDksMCwwLDEtMi4xLTIu''@;'; put 'put ''MDh2LS4zTDE0LjI3LDIxbC0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMTQsMi4xNCwwLDAsMSwuNjQtMS40OGgwYTIuMDgsMi4wOCwwLDEsMS0uMDYsMi45NGwtNS42NiwyLjY1di40NGw1LjcyLDIuNjZBMi4xMSwyLjExLDAsMCwxLDIyLDIxLjgx''@;'; put 'put ''bDAsMEEyLjA5LDIuMDksMCwwLDEsMjIsMjZabTItMTZWNS44NGw0LjIsNC4yMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxMLlRlY2hub2xvZ3lTaGFwZXM9eyJydWxlci1wZW5jaWwiOkwuQ2xyU2hhcGVSdWxlclBlbmNpbCwicGhvbmUtaGFuZHNldCI6''@;'; put 'put ''TC5DbHJTaGFwZVBob25lSGFuZHNldCwibm8td2lmaSI6TC5DbHJTaGFwZU5vV2lmaSxpbnN0YWxsOkwuQ2xyU2hhcGVJbnN0YWxsLHVuaW5zdGFsbDpMLkNsclNoYXBlVW5pbnN0YWxsLGxheWVyczpMLkNsclNoYXBlTGF5ZXJzLGJsb2NrOkwuQ2xyU2hhcGVCbG9jaywiYmxvY2tzLWdyb3Vw''@;'; put 'put ''IjpMLkNsclNoYXBlQmxvY2tzR3JvdXAsYnVuZGxlOkwuQ2xyU2hhcGVCdW5kbGUsd2lmaTpMLkNsclNoYXBlV2lmaSwicmFjay1zZXJ2ZXIiOkwuQ2xyU2hhcGVSYWNrU2VydmVyLCJoYXJkLWRpc2siOkwuQ2xyU2hhcGVIYXJkRGlzaywiYmFja3VwLXJlc3RvcmUiOkwuQ2xyU2hhcGVCYWNr''@;'; put 'put ''dXBSZXN0b3JlLGJhY2t1cDpMLkNsclNoYXBlQmFja3VwLGRldmljZXM6TC5DbHJTaGFwZURldmljZXMsa2V5Ym9hcmQ6TC5DbHJTaGFwZUtleWJvYXJkLG1vdXNlOkwuQ2xyU2hhcGVNb3VzZSxkYXNoYm9hcmQ6TC5DbHJTaGFwZURhc2hib2FyZCxob3N0OkwuQ2xyU2hhcGVIb3N0LHN0b3Jh''@;'; put 'put ''Z2U6TC5DbHJTaGFwZVN0b3JhZ2UsY2x1c3RlcjpMLkNsclNoYXBlQ2x1c3RlcixhcHBsaWNhdGlvbnM6TC5DbHJTaGFwZUFwcGxpY2F0aW9ucyxidWlsZGluZzpMLkNsclNoYXBlQnVpbGRpbmcsY3B1OkwuQ2xyU2hhcGVDUFUsbWVtb3J5OkwuQ2xyU2hhcGVNZW1vcnksImRhdGEtY2x1c3Rl''@;'; put 'put ''ciI6TC5DbHJTaGFwZURhdGFDbHVzdGVyLCJyZXNvdXJjZS1wb29sIjpMLkNsclNoYXBlUmVzb3VyY2VQb29sLHNoaWVsZDpMLkNsclNoYXBlU2hpZWxkLCJzaGllbGQtY2hlY2siOkwuQ2xyU2hhcGVTaGllbGRDaGVjaywic2hpZWxkLXgiOkwuQ2xyU2hhcGVTaGllbGRYLGltcG9ydDpMLkNs''@;'; put 'put ''clNoYXBlSW1wb3J0LGV4cG9ydDpMLkNsclNoYXBlRXhwb3J0LCJ1cGxvYWQtY2xvdWQiOkwuQ2xyU2hhcGVVcGxvYWRDbG91ZCwiZG93bmxvYWQtY2xvdWQiOkwuQ2xyU2hhcGVEb3dubG9hZENsb3VkLHBsdWdpbjpMLkNsclNoYXBlUGx1Z2luLGZsb3BweTpMLkNsclNoYXBlRmxvcHB5LGNv''@;'; put 'put ''bXB1dGVyOkwuQ2xyU2hhcGVDb21wdXRlcixkaXNwbGF5OkwuQ2xyU2hhcGVEaXNwbGF5LHRlcm1pbmFsOkwuQ2xyU2hhcGVUZXJtaW5hbCxjb2RlOkwuQ2xyU2hhcGVDb2RlLGFwcGxpY2F0aW9uOkwuQ2xyU2hhcGVBcHBsaWNhdGlvbixiYXR0ZXJ5OkwuQ2xyU2hhcGVCYXR0ZXJ5LG1vYmls''@;'; put 'put ''ZTpMLkNsclNoYXBlTW9iaWxlLHRhYmxldDpMLkNsclNoYXBlVGFibGV0LCJuZXR3b3JrLWdsb2JlIjpMLkNsclNoYXBlTmV0d29ya0dsb2JlLCJuZXR3b3JrLXNldHRpbmdzIjpMLkNsclNoYXBlTmV0d29ya1NldHRpbmdzLCJuZXR3b3JrLXN3aXRjaCI6TC5DbHJTaGFwZU5ldHdvcmtTd2l0''@;'; put 'put ''Y2gscm91dGVyOkwuQ2xyU2hhcGVSb3V0ZXIsdm06TC5DbHJTaGFwZVZNLCJ2bXctYXBwIjpMLkNsclNoYXBlVk1XQXBwLGNlcnRpZmljYXRlOkwuQ2xyU2hhcGVDZXJ0aWZpY2F0ZSxhcmNoaXZlOkwuQ2xyU2hhcGVBcmNoaXZlLHVuYXJjaGl2ZTpMLkNsclNoYXBlVW5hcmNoaXZlLGNvbm5l''@;'; put 'put ''Y3Q6TC5DbHJTaGFwZUNvbm5lY3QsZGlzY29ubmVjdDpMLkNsclNoYXBlRGlzY29ubmVjdCxsaW5rOkwuQ2xyU2hhcGVMaW5rLHVubGluazpMLkNsclNoYXBlVW5saW5rLCJjbG91ZC1uZXR3b3JrIjpMLkNsclNoYXBlQ2xvdWROZXR3b3JrLCJjbG91ZC1zY2FsZSI6TC5DbHJTaGFwZUNsb3Vk''@;'; put 'put ''U2NhbGUsImNsb3VkLXRyYWZmaWMiOkwuQ2xyU2hhcGVDbG91ZFRyYWZmaWMsImNvbnRyb2wtbHVuIjpMLkNsckNvbnRyb2xMdW4sZGVwbG95OkwuQ2xyU2hhcGVEZXBsb3ksaGVsaXg6TC5DbHJTaGFwZUhlbGl4LGZsYXNrOkwuQ2xyU2hhcGVGbGFzayxhZG1pbmlzdHJhdG9yOkwuQ2xyU2hh''@;'; put 'put ''cGVBZG1pbmlzdHJhdG9yLCJoYXJkLWRyaXZlIjpMLkNsclNoYXBlSGFyZERyaXZlLCJoYXJkLWRyaXZlLWRpc2tzIjpMLkNsclNoYXBlSGFyZERyaXZlRGlza3MsbnZtZTpMLkNsclNoYXBlTlZNZSxzc2Q6TC5DbHJTaGFwZVNTRCxibHVldG9vdGg6TC5DbHJTaGFwZUJsdWV0b290aCwiYmx1''@;'; put 'put ''ZXRvb3RoLW9mZiI6TC5DbHJTaGFwZUJsdWV0b290aE9mZiwicHJvY2Vzcy1vbi12bSI6TC5DbHJTaGFwZVByb2Nlc3NPblZNLCJhc3NpZ24tdXNlciI6TC5DbHJTaGFwZUFzc2lnblVzZXIsYXRvbTpMLkNsclNoYXBlQXRvbSwiYmFyLWNvZGUiOkwuQ2xyU2hhcGVCYXJDb2RlLCJjZC1kdmQi''@;'; put 'put ''OkwuQ2xyU2hhcGVDZER2ZCxjb250YWluZXI6TC5DbHJTaGFwZUNvbnRhaW5lciwiY29udGFpbmVyLXZvbHVtZSI6TC5DbHJTaGFwZUNvbnRhaW5lclZvbHVtZSwiZmlsZS1zaGFyZSI6TC5DbHJTaGFwZUZpbGVTaGFyZSwicXItY29kZSI6TC5DbHJTaGFwZVFyQ29kZSx1c2I6TC5DbHJTaGFw''@;'; put 'put ''ZVVzYixyYWRhcjpMLkNsclNoYXBlUmFkYXIsY2FwYWNpdG9yOkwuQ2xyU2hhcGVDYXBhY2l0b3Isc3F1aWQ6TC5DbHJTaGFwZVNxdWlkLGluZHVjdG9yOkwuQ2xyU2hhcGVJbmR1Y3RvcixyZXNpc3RvcjpMLkNsclNoYXBlUmVzaXN0b3IsImhvc3QtZ3JvdXAiOkwuQ2xyU2hhcGVIb3N0R3Jv''@;'; put 'put ''dXAsInN0b3JhZ2UtYWRhcHRlciI6TC5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyLCJub2RlLWdyb3VwIjpMLkNsclNoYXBlTm9kZUdyb3VwLG5vZGVzOkwuQ2xyU2hhcGVOb2RlcyxuYW1lc3BhY2U6TC5DbHJTaGFwZU5hbWVzcGFjZSxub2RlOkwuQ2xyU2hhcGVOb2RlLHBvZDpMLkNsclNoYXBl''@;'; put 'put ''UG9kLCJtZWRpYS1jaGFuZ2VyIjpMLkNsclNoYXBlTWVkaWFDaGFuZ2VyLCJ0YXBlLWRyaXZlIjpMLkNsclNoYXBlVGFwZURyaXZlLGFuaW1hdGlvbjpMLkNsclNoYXBlQW5pbWF0aW9uLCJjaS1jZCI6TC5DbHJTaGFwZUNpQ2QsImZpbGUtc2hhcmUtMiI6TC5DbHJTaGFwZUZpbGVTaGFyZTJ9''@;'; put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsInNlcnZlciIsKDAsQi5kZXNjcmlwdG9yQ29uZmlnKShMLlRlY2hub2xvZ3lTaGFwZXMuaG9zdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsImNvbW1hbmQiLCgwLEIuZGVzY3JpcHRv''@;'; put 'put ''ckNvbmZpZykoTC5UZWNobm9sb2d5U2hhcGVzLnRlcm1pbmFsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuVGVjaG5vbG9neVNoYXBlcywibW9iaWxlLXBob25lIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlcy5tb2JpbGUpKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoTC5UZWNobm9sb2d5U2hhcGVzLCJsaWNlbnNlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlcy5jZXJ0aWZpY2F0ZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsImRpc2Nvbm5lY3RlZCIsKDAsQi5kZXNjcmlwdG9yQ29uZmln''@;'; put 'put ''KShMLlRlY2hub2xvZ3lTaGFwZXNbIm5vLXdpZmkiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShMLlRlY2hub2xvZ3lTaGFwZXMsInJlY2VpdmVyIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1sicGhvbmUtaGFuZHNldCJdKSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KEwuVGVjaG5vbG9neVNoYXBlcywiZGVzaWduIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1sicnVsZXItcGVuY2lsIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5UZWNobm9sb2d5U2hhcGVzLCJkbmEiLCgwLEIuZGVzY3JpcHRvckNvbmZpZykoTC5U''@;'; put 'put ''ZWNobm9sb2d5U2hhcGVzLmhlbGl4KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEwuVGVjaG5vbG9neVNoYXBlcywiZm9sZGVyLXNoYXJlIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVGVjaG5vbG9neVNoYXBlc1siZmlsZS1zaGFyZSJdKSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cm''@;'; put 'put ''JndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKEwuVGVjaG5vbG9neVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3Qi''@;'; put 'put ''O09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlRleHRFZGl0U2hhcGVzPUwuQ2xyU2hhcGVTdXBlcnNjcmlwdD1MLkNsclNoYXBlU3Vic2NyaXB0PUwuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoPUwuQ2xyU2hhcGVJbmRlbnQ9TC5DbHJTaGFwZU91dGRl''@;'; put 'put ''bnQ9TC5DbHJTaGFwZUhpZ2hsaWdodGVyPUwuQ2xyU2hhcGVUZXh0Q29sb3I9TC5DbHJTaGFwZUxhbmd1YWdlPUwuQ2xyU2hhcGVBbGlnblRvcD1MLkNsclNoYXBlQWxpZ25NaWRkbGU9TC5DbHJTaGFwZUFsaWduQm90dG9tPUwuQ2xyU2hhcGVVbmRlcmxpbmU9TC5DbHJTaGFwZVRleHQ9TC5D''@;'; put 'put ''bHJTaGFwZUFsaWduUmlnaHRUZXh0PUwuQ2xyU2hhcGVCbG9ja1F1b3RlPUwuQ2xyU2hhcGVQYWludFJvbGxlcj1MLkNsclNoYXBlTnVtYmVyTGlzdD1MLkNsclNoYXBlQWxpZ25MZWZ0VGV4dD1MLkNsclNoYXBlSnVzdGlmeVRleHQ9TC5DbHJTaGFwZUl0YWxpYz1MLkNsclNoYXBlQWxpZ25S''@;'; put 'put ''aWdodD1MLkNsclNoYXBlQWxpZ25MZWZ0PUwuQ2xyU2hhcGVBbGlnbkNlbnRlcj1MLkNsclNoYXBlRm9udFNpemU9TC5DbHJTaGFwZUNoZWNrYm94TGlzdD1MLkNsclNoYXBlQ2VudGVyVGV4dD1MLkNsclNoYXBlQnVsbGV0TGlzdD1MLkNsclNoYXBlQm9sZD12b2lkIDA7dmFyIEI9bWUoIi4v''@;'; put 'put ''cHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZUJvbGQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIyLjQzLDE3LjU0YTQuNjcsNC42NywwLDAsMCwyLjgtNC4zN3YtLjA2YTQuNDMsNC40MywwLDAsMC0xLjMxLTMuMjUsNy4wOSw3''@;'; put 'put ''LjA5LDAsMCwwLTUuMTMtMS43M2gtN0ExLjcxLDEuNzEsMCwwLDAsMTAsOS44NlYyNmExLjcyLDEuNzIsMCwwLDAsMS43NCwxLjc0aDcuMzNjNC4zNywwLDcuMjUtMS44OCw3LjI1LTUuMzhWMjIuM0MyNi4zMiwxOS42NCwyNC43MywxOC4zMiwyMi40MywxNy41NFpNMTMuNjgsMTEuNGg0LjU0''@;'; put 'put ''YzIsMCwzLjE1Ljg5LDMuMTUsMi4zM3YuMDZjMCwxLjY4LTEuMzYsMi40OS0zLjM4LDIuNDlIMTMuNjhaTTIyLjM3LDIyYzAsMS41OS0xLjMxLDIuNDMtMy40NiwyLjQzSDEzLjY4VjE5LjYyaDVjMi40OSwwLDMuNjkuODgsMy42OSwyLjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUJ1bGxldExpc3Q9KDAsQi5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iNS4yMSIgY3k9IjkuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjUuMjEiIGN5PSIxNy4x''@;'; put 'put ''NyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iNS4yMSIgY3k9IjI1LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIuNDIsOWExLDEsMCwwLDAtMS0x''@;'; put 'put ''SDEwdjJIMzEuNDJBMSwxLDAsMCwwLDMyLjQyLDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMzEuNDIsMTZIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; put 'put ''IC8+PHBhdGggZD0iTTMxLjQyLDI0SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLEwuQ2xyU2hhcGVDZW50ZXJUZXh0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC44OCw4SDUuMTJhMS4xLDEu''@;'; put 'put ''MSwwLDAsMCwwLDIuMkgzMC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LjUsMTYuMmExLjEsMS4xLDAsMSwwLDAtMi4yaC0xNWExLjEsMS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLjI1LDIwSDUuNzVhMS4xLDEuMSwwLDAsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjQuODgs''@;'; put 'put ''MjZIMTEuMTJhMS4xLDEuMSwwLDEsMCwwLDIuMkgyNC44OGExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZUNoZWNrYm94TGlzdD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDMsMTZI''@;'; put 'put ''MTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjQzLDI0SDEwdjJIMzEuNDNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxw''@;'; put 'put ''YXRoIGQ9Ik0xNS40NSwxMGgxNmExLDEsMCwwLDAsMC0yaC0xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNy41LDMuNDJhMS4wOSwxLjA5LDAsMCwwLTEuNTUsMEw3Ljg5LDExLjQ4LDQuNTEsNy44NEExLjEsMS4xLDAsMSwwLDIu''@;'; put 'put ''OSw5LjM0bDQuOTQsNS4zTDE3LjUsNUExLjEsMS4xLDAsMCwwLDE3LjUsMy40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLEwuQ2xyU2hhcGVGb250U2l6ZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEsOS4wOEExLjEzLDEuMTMsMCww''@;'; put 'put ''LDAsMTkuODYsOEg0LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjE5SDExVjI3YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTAuMTloNi42OUExLjE0LDEuMTQsMCwwLDAsMjEsOS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC42Nywx''@;'; put 'put ''NUgyMS4xNWExLjEsMS4xLDAsMSwwLDAsMi4xOUgyNVYyNi41YTEuMDksMS4wOSwwLDAsMCwyLjE3LDBWMTcuMjNoMy41NGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVBbGlnbkNlbnRlcj0o''@;'; put 'put ''MCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMjBIMTlWMTZoNmExLDEsMCwwLDAsMS0xVjdhMSwxLDAsMCwwLTEtMUgxOVYyYTEsMSwwLDAsMC0yLDBWNkgxMWExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMWg2djRINWExLDEsMCwwLDAtMSwxdjhhMSwxLDAsMCwwLDEsMUgxN3Y0''@;'; put 'put ''YTEsMSwwLDAsMCwyLDBWMzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAsMzEsMjBaTTEyLDE0VjhIMjR2NlpNMzAsMjhINlYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLEwuQ2xyU2hhcGVBbGlnbkxlZnQ9KDAsQi5jbHJJY29u''@;'; put 'put ''U1ZHKSgnPHBhdGggZD0iTTUsMUExLDEsMCwwLDAsNCwyVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsNSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDIwSDhWMzBIMzFhMSwxLDAsMCwwLDEtMVYyMUExLDEsMCwwLDAs''@;'; put 'put ''MzEsMjBabS0xLDhIMTBWMjJIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjQsMTVWN2ExLDEsMCwwLDAtMS0xSDhWMTZIMjNBMSwxLDAsMCwwLDI0LDE1Wm0tMi0xSDEwVjhIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlQWxpZ25SaWdodD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMWExLDEsMCwwLDAtMSwxVjM0YTEsMSwwLDAsMCwyLDBWMkExLDEsMCwwLDAsMzEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xIiAvPjxwYXRoIGQ9Ik00LDIxdjhhMSwxLDAsMCwwLDEsMUgyOFYyMEg1QTEsMSwwLDAsMCw0LDIxWm0yLDFIMjZ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEyLDd2OGExLDEsMCwwLDAsMSwxSDI4VjZIMTNBMSwxLDAs''@;'; put 'put ''MCwwLDEyLDdabTIsMUgyNnY2SDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksTC5DbHJTaGFwZUl0YWxpYz0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQuNDIsOEgxNy4xYTEuMSwxLjEsMCwxLDAsMCwyLjE5aDIuMTNMMTMuMTEsMjUu''@;'; put 'put ''NTVIMTAuNDdhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTcuOGExLjEsMS4xLDAsMSwwLDAtMi4xOUgxNS41MWw2LjEzLTE1LjM2aDIuNzhhMS4xLDEuMSwwLDEsMCwwLTIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxMLkNsclNoYXBlSnVzdGlm''@;'; put 'put ''eVRleHQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTAuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4ySDZhMS4xLDEuMSwwLDEsMCwwLDIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMS43NSwxNEg2YTEuMSwxLjEs''@;'; put 'put ''MCwxLDAsMCwyLjJIMzEuNzVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMS4xMiwyMEg2LjYyYTEuMSwxLjEsMCwxLDAsMCwyLjJoMjQuNWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQ1LDI1LjgzSDYuNmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjQ1YTEuMSwxLjEsMCwwLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNo''@;'; put 'put ''YXBlQWxpZ25MZWZ0VGV4dD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuMjUsMjZINnYyLjJIMjAuMjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yOCwyMEg2djIuMkgyOEExLjEsMS4x''@;'; put 'put ''LDAsMCwwLDI4LDIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjYsMTUuMUExLjEsMS4xLDAsMCwwLDIxLjUsMTRINnYyLjJIMjEuNUExLjEsMS4xLDAsMCwwLDIyLjYsMTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOS4yNSw4SDZ2Mi4ySDI5LjI1YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxMLkNsclNoYXBlTnVtYmVyTGlzdD0oMCxCLmNsckljb25TVkcpKCc8cG9seWdv''@;'; put 'put ''biBwb2ludHM9IjUuNDYgNy40MSA1LjQ2IDExLjU2IDYuNjUgMTEuNTYgNi42NSA2LjA1IDUuNyA2LjA1IDQuMDUgNy4xNiA0LjUyIDggNS40NiA3LjQxIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNS41NywxNC44MmEuNzYuNzYsMCww''@;'; put 'put ''LDEsLjgzLjczYzAsLjM4LS4yMS43NC0uODcsMS4yN2wtMiwxLjU3djFINy42N1YxOC4yOEg1LjMzbDEtLjc3YzEtLjcsMS4yOC0xLjI3LDEuMjgtMmExLjgzLDEuODMsMCwwLDAtMi0xLjc2LDIuNjMsMi42MywwLDAsMC0yLjE0LDEuMDhsLjc2LjczQTEuNzUsMS43NSwwLDAsMSw1LjU3LDE0''@;'; put 'put ''LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTYuNTYsMjQuNjRhMS4zMiwxLjMyLDAsMCwwLDEtMS4yN2MwLS44Ny0uNzgtMS41MS0yLTEuNTFhMi42MSwyLjYxLDAsMCwwLTIuMSwxbC42OS43MmExLjc4LDEuNzgsMCwwLDEsMS4z''@;'; put 'put ''LS42NGMuNTQsMCwuOTIuMjYuOTIuNjZzLS4zNi42Mi0xLC42Mkg0Ljc5djFoLjY0Yy43NCwwLDEuMDcuMjEsMS4wNy42M3MtLjM1LjY4LTEsLjY4YTIsMiwwLDAsMS0xLjQ2LS42NWwtLjcuNzhhMi44NSwyLjg1LDAsMCwwLDIuMjEuOTNjMS4yOSwwLDIuMTMtLjY5LDIuMTMtMS42NEExLjMz''@;'; put 'put ''LDEuMzMsMCwwLDAsNi41NiwyNC42NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEsMSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksTC5DbHJTaGFwZVBhaW50Um9sbGVyPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxMFY0YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw0djZhMiwyLDAsMCwwLDIsMkgyOUEyLDIsMCwwLDAsMzEsMTBaTTYsNEgyOXY2''@;'; put 'put ''SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI5TDE4LjcsMTYuNTRhMSwxLDAsMCwwLS43LDFWMTlIMTZWMzNhMiwyLDAsMCwwLDIsMmgyYTIsMiwwLDAsMCwyLTJWMTlIMjB2LS43M0wzMy4zLDE0YTEsMSwwLDAs''@;'; put 'put ''MCwuNy0xVjdBMSwxLDAsMCwwLDMzLDZaTTIwLDMzSDE4VjIxaDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cmVjdCB4PSI0IiB5PSIyIiB3aWR0aD0iMjciIGhlaWdodD0iMTAiIHJ4PSIxIiByeT0iMSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsNkgzMnY2LjI0TDE4LjcxLDE2LjQ1YTEsMSwwLDAsMC0uNzEsMVYxOUgxNlYzNGExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxOUgyMHYtLjgyTDMzLjI5LDE0QTEsMSwwLDAsMCwzNCwxM1Y3QTEsMSwwLDAsMCwzMyw2WiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlQmxvY2tRdW90ZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEuODYsMTYuNTVhNC4zMSw0LjMxLDAsMCwwLTIuMTEuNTYsMTQuNDQsMTQuNDQsMCwwLDEsNC4zNi02LDEuMSwxLjEsMCwwLDAt''@;'; put 'put ''MS40LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0QTUuMDgsNS4wOCwwLDAsMCwxMCwyNC41OGE0LjQsNC40LDAsMCwwLDEuODguNDQsNC4yNCw0LjI0LDAsMSwwLDAtOC40N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0y''@;'; put 'put ''MywxNi41NWE0LjI5LDQuMjksMCwwLDAtMi4xMS41NiwxNC41LDE0LjUsMCwwLDEsNC4zNS02LDEuMSwxLjEsMCwxLDAtMS4zOS0xLjdjLTQsMy4yNS01Ljc4LDcuNzUtNS43OCwxMC41NGE1LjA4LDUuMDgsMCwwLDAsMyw0LjYxQTQuMzcsNC4zNywwLDAsMCwyMywyNWE0LjI0LDQuMjQsMCwx''@;'; put 'put ''LDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZUFsaWduUmlnaHRUZXh0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC42NSwyNy4xYTEuMSwxLjEsMCwwLDAsMS4xLDEuMUgzMFYyNkgxNS43NUExLjEsMS4x''@;'; put 'put ''LDAsMCwwLDE0LjY1LDI3LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNNi45LDIxLjFBMS4xLDEuMSwwLDAsMCw4LDIyLjJIMzBWMjBIOEExLjEsMS4xLDAsMCwwLDYuOSwyMS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTEzLjQsMTUuMWExLjEsMS4xLDAsMCwwLDEuMSwxLjFIMzBWMTRIMTQuNUExLjEsMS4xLDAsMCwwLDEzLjQsMTUuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik02Ljc1LDhhMS4xLDEu''@;'; put 'put ''MSwwLDEsMCwwLDIuMkgzMFY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksTC5DbHJTaGFwZVRleHQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLjE5LDguODRhMS40NSwxLjQ1LDAsMCwwLTEuNC0xaC0uMTJhMS40NiwxLjQ2LDAsMCww''@;'; put 'put ''LTEuNDIsMUwxLjE0LDI2LjU2YTEuMjksMS4yOSwwLDAsMC0uMTQuNTksMSwxLDAsMCwwLDEsMSwxLjEyLDEuMTIsMCwwLDAsMS4wOC0uNzdsMi4wOC00LjY1aDExbDIuMDgsNC41OWExLjI0LDEuMjQsMCwwLDAsMS4xMi44MywxLjA4LDEuMDgsMCwwLDAsMS4wOC0xLjA4LDEuNjQsMS42NCww''@;'; put 'put ''LDAsMC0uMTQtLjU3Wk02LjA4LDIwLjcxbDQuNTktMTAuMjIsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMyLjI0LDE0Ljc4QTYuMzUsNi4zNSwwLDAsMCwyNy42LDEzLjJhMTEuMzYsMTEuMzYsMCwwLDAtNC43LDEs''@;'; put 'put ''MSwxLDAsMCwwLS41OC44OSwxLDEsMCwwLDAsLjk0LjkyLDEuMjMsMS4yMywwLDAsMCwuMzktLjA4LDguODcsOC44NywwLDAsMSwzLjcyLS44MWMyLjcsMCw0LjI4LDEuMzMsNC4yOCwzLjkydi41YTE1LjI5LDE1LjI5LDAsMCwwLTQuNDItLjYxYy0zLjY0LDAtNi4xNCwxLjYxLTYuMTQsNC42''@;'; put 'put ''NHYuMDVjMCwyLjk1LDIuNyw0LjQ4LDUuMzcsNC40OGE2LjI5LDYuMjksMCwwLDAsNS4xOS0yLjQ4VjI2LjlhMSwxLDAsMCwwLDEsMSwxLDEsMCwwLDAsMS0xLjA2VjE5QTUuNzEsNS43MSwwLDAsMCwzMi4yNCwxNC43OFptLS41Niw3LjdjMCwyLjI4LTIuMTcsMy44OS00LjgxLDMuODktMS45''@;'; put 'put ''NCwwLTMuNjEtMS4wNi0zLjYxLTIuODZ2LS4wNmMwLTEuOCwxLjUtMyw0LjItM2ExNS4yLDE1LjIsMCwwLDEsNC4yMi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLEwuQ2xyU2hhcGVVbmRlcmxpbmU9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; put 'put ''ZD0iTTE4LDI4LjE3YzUuMDgsMCw4LjQ4LTMuMDgsOC40OC05VjguNTRhMS4xNSwxLjE1LDAsMSwwLTIuMywwdjEwLjhjMCw0LjQ0LTIuMzgsNi43MS02LjEzLDYuNzFzLTYuMjEtMi40Ny02LjIxLTYuODVWOC41NGExLjE1LDEuMTUsMCwxLDAtMi4zLDB2MTAuOEM5LjUzLDI1LjA5LDEzLDI4''@;'; put 'put ''LjE3LDE4LDI4LjE3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLDMwSDVhMS4xMSwxLjExLDAsMCwwLDAsMi4yMUgzMUExLjExLDEuMTEsMCwwLDAsMzEsMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMiIgLz4nKSxMLkNsclNoYXBlQWxpZ25Cb3R0b209KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDMwSDJhMSwxLDAsMCwwLDAsMkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE2LDVhMSwx''@;'; put 'put ''LDAsMCwwLTEtMUg3QTEsMSwwLDAsMCw2LDVWMjhIMTZaTTE0LDI2SDhWNmg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDEzYTEsMSwwLDAsMC0xLTFIMjFhMSwxLDAsMCwwLTEsMVYyOEgzMFpNMjgsMjZIMjJWMTRoNloiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVBbGlnbk1pZGRsZT0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMTdIMzBWMTFhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCwwLDAtMSwxdjZIMTZWNWExLDEsMCwwLDAtMS0xSDdBMSwx''@;'; put 'put ''LDAsMCwwLDYsNVYxN0gyYTEsMSwwLDAsMCwwLDJINlYzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0djZhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTloNGExLDEsMCwwLDAsMC0yWk0xNCwzMEg4VjZoNlptMTQtNkgyMlYxMmg2WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksTC5DbHJTaGFwZUFsaWduVG9wPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCw0SDJBMSwxLDAsMCwwLDIsNkgzNGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; put 'put ''PHBhdGggZD0iTTYsMzFhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWOEg2Wk04LDEwaDZWMzBIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMCwyM2ExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDIwWm0yLTEz''@;'; put 'put ''aDZWMjJIMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxMLkNsclNoYXBlTGFuZ3VhZ2U9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDNIMTR2NWgyVjVoMTRjMC42LDAsMSwwLjQsMSwxdjExYzAsMC42LTAuNCwxLTEsMUgxN3Y3aC01''@;'; put 'put ''LjNMOCwyNy45VjI1SDVjLTAuNiwwLTEtMC40LTEtMVYxM2MwLTAuNiwwLjQtMSwxLTFoMTN2LTJINVxuXHRcdGMtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xSDE5di03aDExYzEuNywwLDMtMS4zLDMtM1Y2QzMzLDQuMywzMS43LDMsMzAsM3oiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LjIsMjIuOWgyLjRsMC42LTEuNmgzLjFsMC42LDEuNmgyLjRMMTEuOSwxNEg5LjVMNi4yLDIyLjl6IE0xMC43LDE2LjVsMSwzLjFoLTJMMTAuNywxNi41eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDE3YzEuMSwwLDIuNi0wLjMsNC0xYzEuNCwwLjcsMywxLDQsMXYtMmMwLDAtMSwwLTIuMS0wLjRjMS4yLTEuMiwyLjEtMywyLjEtNS42VjhoLTNWNmgtMnYyaC0zdjJoNS45XG5cdFx0Yy0wLjIsMS44LTEsMi45LTEuOSwzLjZj''@;'; put 'put ''LTAuNi0wLjUtMS4yLTEuMi0xLjYtMi4xaC0yLjFjMC40LDEuMywxLDIuMywxLjgsMy4xQzIxLjEsMTUsMjAuMiwxNSwyMCwxNVYxN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwb2x5Z29uIHBvaW50cz0iMTEsMTYuNSAxMCwxOS42IDEyLDE5LjYg''@;'; put 'put ''MTEsMTYuNSBcdCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAuMywzaC0xNnY1aDR2MmgtMTNjLTEuNywwLTMsMS4zLTMsM3YxMWMwLDEuNywxLjMsMywzLDNoMXY1LjFsNi4zLTUuMWg2Ljd2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZcblx0''@;'; put 'put ''XHRDMzMuMyw0LjMsMzIsMywzMC4zLDN6IE0xMy4xLDIyLjlsLTAuNS0xLjZIOS41bC0wLjYsMS42SDYuNUw5LjgsMTRoMi40bDMuMyw4LjlMMTMuMSwyMi45eiBNMjguMywxNXYyYy0xLjMsMC0yLjctMC40LTMuOS0xXG5cdFx0Yy0xLjIsMC42LTIuNiwwLjktNCwxbC0wLjEtMmMwLjcsMCwx''@;'; put 'put ''LjQtMC4xLDIuMS0wLjNjLTAuOS0wLjktMS41LTItMS44LTMuMmgyLjFjMC4zLDAuOSwwLjksMS42LDEuNiwyLjJjMS4xLTAuOSwxLjgtMi4yLDEuOS0zLjdcblx0XHRoLTZWOGgzVjZoMnYyaDMuM2wwLjEsMWMwLjEsMi4xLTAuNyw0LjItMi4yLDUuN0MyNy4xLDE0LjksMjcuNywxNSwyOC4z''@;'; put 'put ''LDE1eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxMLkNsclNoYXBlVGV4dENvbG9yPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40NywzLjg0YTEuNDUsMS40NSwwLDAsMC0xLjQtMUgxOGExLjQ1LDEuNDUsMCwwLDAtMS40MiwxTDguNDIsMjEu''@;'; put 'put ''NTZhMS4zNSwxLjM1LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTEsMS4xMSwwLDAsMCwxLjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4LTEuMDgsMS41OSwxLjU5LDAsMCwwLS4xNC0uNTdaTTEz''@;'; put 'put ''LjM2LDE1LjcxLDE4LDUuNDlsNC42LDEwLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHJlY3QgeD0iNC4wNiIgeT0iMjUiIHdpZHRoPSIyOCIgaGVpZ2h0PSI4IiByeD0iMiIgcnk9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0yIi8+JyksTC5DbHJTaGFwZUhpZ2hsaWdodGVyPSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNS44MiwyNi4wNmExLDEsMCwwLDEtLjcxLS4yOUw4LjY3LDE5LjMzYTEsMSwwLDAsMS0uMjktLjcxLDEsMSwwLDAsMSwuMjktLjcxTDIzLDMuNTRhNS41NSw1LjU1LDAs''@;'; put 'put ''MSwxLDcuODUsNy44NkwxNi41MywyNS43N0ExLDEsMCwwLDEsMTUuODIsMjYuMDZabS01LTcuNDQsNSw1TDI5LjQ4LDEwYTMuNTQsMy41NCwwLDAsMCwwLTUsMy42MywzLjYzLDAsMCwwLTUsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRo''@;'; put 'put ''IGQ9Ik0xMC4zOCwyOC4yOEExLDEsMCwwLDEsOS42NywyOEw2LjQ1LDI0Ljc3YTEsMSwwLDAsMS0uMjItMS4wOWwyLjIyLTUuNDRhMSwxLDAsMCwxLDEuNjMtLjMzbDYuNDUsNi40NEExLDEsMCwwLDEsMTYuMiwyNmwtNS40NCwyLjIyQTEuMzMsMS4zMywwLDAsMSwxMC4zOCwyOC4yOFpNOC4z''@;'; put 'put ''MywyMy44MmwyLjI5LDIuMjgsMy40My0xLjRMOS43NCwyMC4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik04Ljk0LDMwaC01YTEsMSwwLDAsMS0uODQtMS41NWwzLjIyLTQuOTRhMSwxLDAsMCwxLDEuNTUtLjE2bDMuMjEsMy4y''@;'; put 'put ''MmExLDEsMCwwLDEsLjA2LDEuMzVMOS43LDI5LjY0QTEsMSwwLDAsMSw4Ljk0LDMwWk01Ljc4LDI4SDguNDdMOSwyNy4zNGwtMS43LTEuN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjMuMDYiIHk9IjMxIiB3aWR0aD0iMzAiIGhl''@;'; put 'put ''aWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz4nKSxMLkNsclNoYXBlT3V0ZGVudD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAs''@;'; put 'put ''MSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTQiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNOS41NiwyMi41NGExLDEsMCwwLDEtLjctLjNMNC42MSwxOGw0LjI1''@;'; put 'put ''LTQuMjRhMSwxLDAsMCwxLDEuNDEsMS40MUw3LjQ0LDE4bDIuODMsMi44M2ExLDEsMCwwLDEtLjcxLDEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLEwuQ2xyU2hhcGVJbmRlbnQ9KDAsQi5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjA2LDlo''@;'; put 'put ''LTI2YTEsMSwwLDEsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxNGgtMTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE5aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjRoLTE3YTEsMSwwLDAsMSwwLTJo''@;'; put 'put ''MTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyOWgtMjZhMSwxLDAsMCwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUi''@;'; put 'put ''Lz5cbiAgPHBhdGggZD0iTTUuNTYsMjIuNTRhMSwxLDAsMCwxLS43LTEuNzFMNy42OCwxOCw0Ljg2LDE1LjE3YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAsMCwxLDEuNDEsMEwxMC41MSwxOCw2LjI3LDIyLjI0QTEsMSwwLDAsMSw1LjU2LDIyLjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTYiLz4nKSxMLkNsclNoYXBlU3RyaWtldGhyb3VnaD0oMCxCLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIuODgsMTkuOTJoLTMwYTEsMSwwLDEsMSwwLTJoMzBhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''Ii8+XG4gIDxwYXRoIGQ9Ik03LjI3LDE1Ljg2YTEyLjksMTIuOSwwLDAsMSwxLjI5LS41MkE1LjY5LDUuNjksMCwwLDEsMTAuMzksMTVhMy4xOCwzLjE4LDAsMCwxLDIuNzUsMS4xMUE0LjQ0LDQuNDQsMCwwLDEsMTQsMTguODV2LjQ5YTEzLjgzLDEzLjgzLDAsMCwwLTQuMjktLjc0LDYuMTks''@;'; put 'put ''Ni4xOSwwLDAsMC0yLjU5LjU0QTUsNSwwLDAsMCw1LjgxLDIwSDE1Ljg4VjE4Ljg1YTUuNjcsNS42NywwLDAsMC0xLjM3LTQsNS4xNiw1LjE2LDAsMCwwLTQtMS40OSwxMCwxMCwwLDAsMC0zLjkxLjg4Ljg3Ljg3LDAsMCwwLS40NCwxLjE4QS44NC44NCwwLDAsMCw3LjI3LDE1Ljg2WiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIxLDIwYTUuOTQsNS45NCwwLDAsMSwuNTQtMi4zMSw0LjM1LDQuMzUsMCwwLDEsMS41OC0xLjgzLDQuMjcsNC4yNywwLDAsMSw0LjU5LDAsNC40Nyw0LjQ3LDAsMCwxLDEuNTcsMS44M0E2LjEy''@;'; put 'put ''LDYuMTIsMCwwLDEsMjkuODUsMjBoMmE3LjczLDcuNzMsMCwwLDAtLjc4LTMuMTksNiw2LDAsMCwwLTIuMTgtMi40NSw1Ljc0LDUuNzQsMCwwLDAtMy4xLS44OCw1LjM5LDUuMzksMCwwLDAtMi44LjczLDUuNTUsNS41NSwwLDAsMC0yLDIuMDVWMTBhLjg3Ljg3LDAsMCwwLS44Ni0uODZIMjBh''@;'; put 'put ''Ljg3Ljg3LDAsMCwwLS44Ni44NlYyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0yOS42NywyMmE1LjYxLDUuNjEsMCwwLDEtLjM2LDEuMDcsNC40Nyw0LjQ3LDAsMCwxLTEuNTcsMS44NSw0LjMyLDQuMzIsMCwwLDEtNC41OSww''@;'; put 'put ''LDQuMzUsNC4zNSwwLDAsMS0xLjU4LTEuODVBNS42NCw1LjY0LDAsMCwxLDIxLjIsMjJIMTkuMDl2NC4xM0EuODcuODcsMCwwLDAsMjAsMjdoLjJhLjg3Ljg3LDAsMCwwLC44Ni0uODZWMjQuNTFhNS41OCw1LjU4LDAsMCwwLDIsMi4wNiw1LjQ4LDUuNDgsMCwwLDAsMi44LjcyLDUuNjYsNS42''@;'; put 'put ''NiwwLDAsMCwzLjEtLjg4QTUuODgsNS44OCwwLDAsMCwzMS4wOSwyNCw3LjA5LDcuMDksMCwwLDAsMzEuNzMsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTQsMjJ2Ljc2YTMuMzQsMy4zNCwwLDAsMS0xLjYyLDIsNS4zNCw1''@;'; put 'put ''LjM0LDAsMCwxLTIuNjkuNzIsMy43OCwzLjc4LDAsMCwxLTIuMzYtLjcsMi4yNCwyLjI0LDAsMCwxLS45NC0xLjksMi4yOSwyLjI5LDAsMCwxLC4yLS45MUg0LjYyYTQsNCwwLDAsMC0uMTMsMSwzLjgzLDMuODMsMCwwLDAsMS4zNSwzLjA2QTUuMTUsNS4xNSwwLDAsMCw5LjMxLDI3LjIsNiw2''@;'; put 'put ''LDAsMCwwLDEyLDI2LjU3YTQuNjIsNC42MiwwLDAsMCwyLTEuNzRWMjZhLjg2Ljg2LDAsMCwwLC44Ni44NkgxNWEuODYuODYsMCwwLDAsLjg2LS44NlYyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+JyksTC5DbHJTaGFwZVN1YnNjcmlwdD0oMCxCLmNs''@;'; put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTQuNTUsMThsNi44LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEuMTcsMS4xNywwLDAsMS0uOTItLjQ0TDEzLDE5LjkxLDYuNiwyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNTUsMThsLTYu''@;'; put 'put ''OC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjloMEExLjE3LDEuMTcsMCwwLDEsNi42Myw4bDYuNDQsOC4xM0wxOS41LDhhMS4xNywxLjE3LDAsMCwxLC45Mi0uNDRoMGExLjE3LDEuMTcsMCwwLDEsLjkyLDEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''Ii8+XG4gIDxwYXRoIGQ9Ik0yMywzMS44LDI3LjQ5LDI4YTkuOSw5LjksMCwwLDAsMS44OC0yLjA1QTMuNDQsMy40NCwwLDAsMCwzMCwyNGEyLjM1LDIuMzUsMCwwLDAtLjM1LTEuMjcsMi40NCwyLjQ0LDAsMCwwLTEtLjg0LDIuOSwyLjksMCwwLDAtMS4yNi0uMjgsMy4zNiwzLjM2LDAsMCww''@;'; put 'put ''LTEuODMuNSw1LjY0LDUuNjQsMCwwLDAtMS40OCwxLjQybC0xLS44MWE1LjExLDUuMTEsMCwwLDEsNC4zNi0yLjM3LDQuMzUsNC4zNSwwLDAsMSwyLC40NSwzLjQzLDMuNDMsMCwwLDEsMiwzLjE4LDQuNDUsNC40NSwwLDAsMS0uNjgsMi4zNSwxMC45LDEwLjksMCwwLDEtMi4yNCwyLjQ2bC0z''@;'; put 'put ''LjI0LDIuODFIMzEuNVYzM0gyM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksTC5DbHJTaGFwZVN1cGVyc2NyaXB0PSgwLEIuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC40MywxOGw2Ljc5LDguNmExLjE3LDEuMTcsMCwwLDEtLjkyLDEuOWgwYTEu''@;'; put 'put ''MTcsMS4xNywwLDAsMS0uOTItLjQ0bC02LjQ0LTguMTNMNi40NywyOGExLjE3LDEuMTcsMCwwLDEtLjkyLjQ0aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0xLjlMMTEuNDMsMThsLTYuOC04LjZhMS4xNywxLjE3LDAsMCwxLC45Mi0xLjloMEExLjIsMS4yLDAsMCwxLDYuNTEsOGw2LjQzLDguMTNM''@;'; put 'put ''MTkuMzgsOGExLjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIyLjg1LDE0LjQ3bDQuNTEtMy44NWE5LjM3LDkuMzcsMCwwLDAsMS44OC0yLDMu''@;'; put 'put ''NDMsMy40MywwLDAsMCwuNTktMS44NiwyLjI3LDIuMjcsMCwwLDAtLjM2LTEuMjcsMi4zOCwyLjM4LDAsMCwwLS45NS0uODMsMi43NywyLjc3LDAsMCwwLTEuMjYtLjI5LDMuMzksMy4zOSwwLDAsMC0xLjgzLjUsNS44Myw1LjgzLDAsMCwwLTEuNDksMS40MmwtMS0uODFhNS4xMiw1LjEyLDAs''@;'; put 'put ''MCwxLDQuMzYtMi4zNyw0LjM2LDQuMzYsMCwwLDEsMiwuNDUsMy40NywzLjQ3LDAsMCwxLDIsMy4xOEE0LjQ0LDQuNDQsMCwwLDEsMzAuNTgsOWExMS4xNCwxMS4xNCwwLDAsMS0yLjI0LDIuNDZMMjUuMSwxNC4zMWg2LjI4djEuMzNIMjIuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPicpLEwuVGV4dEVkaXRTaGFwZXM9e2JvbGQ6TC5DbHJTaGFwZUJvbGQsImJ1bGxldC1saXN0IjpMLkNsclNoYXBlQnVsbGV0TGlzdCwiY2hlY2tib3gtbGlzdCI6TC5DbHJTaGFwZUNoZWNrYm94TGlzdCwibnVtYmVyLWxpc3QiOkwuQ2xyU2hhcGVOdW1iZXJM''@;'; put 'put ''aXN0LCJmb250LXNpemUiOkwuQ2xyU2hhcGVGb250U2l6ZSxpdGFsaWM6TC5DbHJTaGFwZUl0YWxpYywianVzdGlmeS10ZXh0IjpMLkNsclNoYXBlSnVzdGlmeVRleHQsImNlbnRlci10ZXh0IjpMLkNsclNoYXBlQ2VudGVyVGV4dCwiYWxpZ24tbGVmdC10ZXh0IjpMLkNsclNoYXBlQWxpZ25M''@;'; put 'put ''ZWZ0VGV4dCwiYWxpZ24tcmlnaHQtdGV4dCI6TC5DbHJTaGFwZUFsaWduUmlnaHRUZXh0LCJwYWludC1yb2xsZXIiOkwuQ2xyU2hhcGVQYWludFJvbGxlciwiYmxvY2stcXVvdGUiOkwuQ2xyU2hhcGVCbG9ja1F1b3RlLHRleHQ6TC5DbHJTaGFwZVRleHQsdW5kZXJsaW5lOkwuQ2xyU2hhcGVV''@;'; put 'put ''bmRlcmxpbmUsImFsaWduLWNlbnRlciI6TC5DbHJTaGFwZUFsaWduQ2VudGVyLCJhbGlnbi1sZWZ0IjpMLkNsclNoYXBlQWxpZ25MZWZ0LCJhbGlnbi1yaWdodCI6TC5DbHJTaGFwZUFsaWduUmlnaHQsImFsaWduLWJvdHRvbSI6TC5DbHJTaGFwZUFsaWduQm90dG9tLCJhbGlnbi1taWRkbGUi''@;'; put 'put ''OkwuQ2xyU2hhcGVBbGlnbk1pZGRsZSwiYWxpZ24tdG9wIjpMLkNsclNoYXBlQWxpZ25Ub3AsbGFuZ3VhZ2U6TC5DbHJTaGFwZUxhbmd1YWdlLCJ0ZXh0LWNvbG9yIjpMLkNsclNoYXBlVGV4dENvbG9yLGhpZ2hsaWdodGVyOkwuQ2xyU2hhcGVIaWdobGlnaHRlcixpbmRlbnQ6TC5DbHJTaGFw''@;'; put 'put ''ZUluZGVudCxvdXRkZW50OkwuQ2xyU2hhcGVPdXRkZW50LHN0cmlrZXRocm91Z2g6TC5DbHJTaGFwZVN0cmlrZXRocm91Z2gsc3Vic2NyaXB0OkwuQ2xyU2hhcGVTdWJzY3JpcHQsc3VwZXJzY3JpcHQ6TC5DbHJTaGFwZVN1cGVyc2NyaXB0fSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYm''@;'; put 'put ''d2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoTC5UZXh0RWRpdFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdHJhdmVsLXNoYXBlcy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVj''@;'; put 'put ''dC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLlRyYXZlbFNoYXBlcz1MLkNsclNoYXBlT25Ib2xpZGF5PUwuQ2xyU2hhcGVUcmFpbGVyPUwuQ2xyU2hhcGVGZXJyeT1MLkNsclNoYXBlQ2FyYXZhbj1MLkNsclNoYXBlQ2FtcGVydmFuPUwuQ2xyU2hhcGVCb2F0''@;'; put 'put ''PUwuQ2xyU2hhcGVCaWN5Y2xlPUwuQ2xyU2hhcGVNYXBNYXJrZXI9TC5DbHJTaGFwZUNvbXBhc3M9TC5DbHJTaGFwZU1hcD1MLkNsclNoYXBlQ2FyPUwuQ2xyU2hhcGVBaXJwbGFuZT1MLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciBCPW1lKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9k''@;'; put 'put ''ZXNjcmlwdG9yLWNvbmZpZy50cyIpLEU9bWUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7TC5DbHJTaGFwZVRydWNrPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; put 'put ''MzAsMTJIMjZWN2ExLDEsMCwwLDAtMS0xSDNBMSwxLDAsMCwwLDIsN1YyNWExLDEsMCwwLDAsMSwxSDRWOEgyNFYxOS43YTYuNDUsNi40NSwwLDAsMSwxLjU2LS4yYy4xNSwwLC4yOSwwLC40NCwwVjE0aDRhMiwyLDAsMCwxLDIsMnYxSDI4djJoNHY1SDI5LjZhNC41NCw0LjU0LDAsMCwwLTgu''@;'; put 'put ''MzQsMEgxNC40M2E0LjUsNC41LDAsMCwwLTQuMTctMi43NkE0LjM4LDQuMzgsMCwxLDAsMTQuNzIsMjZIMjFhNC40OSw0LjQ5LDAsMCwwLDguOTIsMEgzM2ExLDEsMCwwLDAsMS0xVjE2QTQsNCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4zOCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgs''@;'; put 'put ''MCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDMsMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAsMTJIMjZWN2ExLDEsMCwwLDAtMS0xSDNB''@;'; put 'put ''MSwxLDAsMCwwLDIsN1YyNWExLDEsMCwwLDAsMSwxSDRWOEgyNFYyMS40OUE0LjQ1LDQuNDUsMCwwLDAsMjEuMjUsMjRIMTQuNDNhNC41LDQuNSwwLDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDgsNC40OCwwLDAsMCw4LjkxLDBIMzRWMTZBNCw0LDAsMCww''@;'; put 'put ''LDMwLDEyWk0xMC4yNiwyOGEyLjM4LDIuMzgsMCwxLDEsMC00Ljc1LDIuMzgsMi4zOCwwLDEsMSwwLDQuNzVabTE1LjE3LDBhMi4zOCwyLjM4LDAsMSwxLDIuNS0yLjM3QTIuNDQsMi40NCwwLDAsMSwyNS40MiwyOFpNMzIsMTdIMjZWMTRoNGEyLDIsMCwwLDEsMiwyWiIvPicpLEwuQ2xyU2hh''@;'; put 'put ''cGVBaXJwbGFuZT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM1Ljc3LDguMTZhMi40MywyLjQzLDAsMCwwLTEuOS0yTDI4LDQuODdhNC41LDQuNSwwLDAsMC0zLjY1Ljc5TDcsMTguMywyLjE0LDE4LjFBMS44''@;'; put 'put ''NiwxLjg2LDAsMCwwLC45MSwyMS40MWw1LDMuOTNjLjYuNzMsMSwuNTksMTAuOTMtNC44MmwuOTMsOS40MmExLjM2LDEuMzYsMCwwLDAsLjg1LDEuMTgsMS40MywxLjQzLDAsMCwwLC41NC4xLDEuNTQsMS41NCwwLDAsMCwxLS40MWwyLjM5LTIuMThhMS41MiwxLjUyLDAsMCwwLC40Ni0uODNM''@;'; put 'put ''MjUuMiwxNS45YzMuNTctMiw2Ljk1LTMuODgsOS4zNi01LjI1QTIuNDMsMi40MywwLDAsMCwzNS43Nyw4LjE2Wm0tMi4yLjc1Yy0yLjUsMS40Mi02LDMuNDEtOS43Niw1LjQ3bC0uNDEuMjNMMjEuMDcsMjcuMjhsLTEuNDcsMS4zNEwxOC41LDE3LjMyLDE3LjE3LDE4QzEwLDIyLDcuNjEsMjMu''@;'; put 'put ''MTYsNi43OSwyMy41MmwtNC4zLTMuNDEsNS4wOC4yMiwxOC0xMy4wNmEyLjUxLDIuNTEsMCwwLDEsMi0uNDVsNS44NSwxLjI2YS40My40MywwLDAsMSwuMzUuMzdBLjQyLjQyLDAsMCwxLDMzLjU3LDguOTFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgZD0iTTcsMTIuNTRsMy41NiwxLDEuNjQtMS4xOS00LTEuMTZMMTAsMTAuMDlsNS40Ny0uMTYsMi4zLTEuNjdMMTAsOC41YTEuMjUsMS4yNSwwLDAsMC0uNy4xN0w2LjY3LDEwLjJBMS4yOCwxLjI4LDAsMCwwLDcsMTIuNTRaIi8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNi4yNSwxMS41LDEyLDEzLjE2bDYuMzItNC41OS05LjA3LjI2QS41Mi41MiwwLDAsMCw5LDguOTFMNi4xMywxMC41NkEuNTEuNTEsMCwwLDAsNi4yNSwxMS41WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTM0LjUyLDYuMzYsMjguMjIsNWEzLjc4LDMuNzgsMCwwLDAtMy4wNy42N0w2LjEyLDE5LjVsLTQuNTctLjJhMS4yNSwxLjI1LDAsMCwwLS44MywyLjIybDQuNDUsMy41M2EuNTUuNTUsMCwwLDAsLjUzLjA5YzEuMjctLjQ5LDYt''@;'; put 'put ''MywxMS41OS02LjA3bDEuMTIsMTEuNTFhLjU1LjU1LDAsMCwwLC45LjM3bDIuNS0yLjA4YS43Ni43NiwwLDAsMCwuMjYtLjQ1bDIuMzctMTMuMjljNC0yLjIyLDcuODItNC4zNywxMC41MS01Ljg5QTEuNTUsMS41NSwwLDAsMCwzNC41Miw2LjM2WiIvPicpLEwuQ2xyU2hhcGVDYXI9KDAsRS5j''@;'; put 'put ''bHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjMiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBk''@;'; put 'put ''PSJNMjYuNDUsMTQuMTdBMjIuMSwyMi4xLDAsMCwwLDE5LjM4LDdhOS42NCw5LjY0LDAsMCwwLTktLjcsOC42LDguNiwwLDAsMC00LjgyLDYuNGMtLjA4LjQ3LS4xNC45Mi0uMiwxLjM2QTQsNCwwLDAsMCwyLDE4djYuMTNhMiwyLDAsMCwwLDIsMlYyMEg0VjE4YTIsMiwwLDAsMSwyLTJIMjQu''@;'; put 'put ''NzNBNy4yOCw3LjI4LDAsMCwxLDMyLDIzLjI3VjI0aC0yYTQuNTMsNC41MywwLDEsMCwuMzMsMkgzMmEyLDIsMCwwLDAsMi0ydi0uNzNBOS4yOCw5LjI4LDAsMCwwLDI2LjQ1LDE0LjE3Wk0xMSwxNEg2LjkzYzAtLjMxLjA5LS42My4xNS0xQTYuNTIsNi41MiwwLDAsMSwxMSw4aDBabTIsMFY3''@;'; put 'put ''LjU4YTguMTcsOC4xNywwLDAsMSw1LjM2LDEuMTZBMTksMTksMCwwLDEsMjMuOSwxNFpNMjUuOCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwyNS44LDI4LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zIiBkPSJNMTQuMTcsMjRhNC41Myw0LjUzLDAsMSwwLC4zMywyaDUuM2MwLS4wOCwwLS4xNywwLS4yNUE2LDYsMCwwLDEsMjAsMjRaTTEwLDI4LjM4YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDEwLDI4LjM4WiIvPlxuICAgICAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi44NywxNC4yOEEyMi4zNiwyMi4zNiwwLDAsMCwxOS42NSw2LjlhOS42NCw5LjY0LDAsMCwwLTktLjcsOC42LDguNiwwLDAsMC00LjgyLDYuNGMtLjA4LjQ5LS4xNSwxLS4yMSwxLjRoLTFBMi41OSwyLjU5''@;'; put 'put ''LDAsMCwwLDIsMTYuNTl2OC41NWEuODYuODYsMCwwLDAsLjg2Ljg2SDQuNTljMC0uMTMsMC0uMjYsMC0uMzlhNS43Nyw1Ljc3LDAsMCwxLDcuNzEtNS40NWwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDE0LjgyLDI2aDUuNDhj''@;'; put 'put ''MC0uMTMsMC0uMjYsMC0uMzlBNS43Nyw1Ljc3LDAsMCwxLDI4LDIwLjE2bC0xLDFhNC41Niw0LjU2LDAsMCwwLTQuMzQsMS41OCwzLDMsMCwwLDAtLjYzLjkzQTQuNSw0LjUsMCwxLDAsMzAuNTMsMjZoMi42MWEuODYuODYsMCwwLDAsLjg2LS44NlYyMy4zNkE5LjM5LDkuMzksMCwwLDAsMjYu''@;'; put 'put ''ODcsMTQuMjhaTTEyLDE0SDhjMC0uMzUuMS0uNzEuMTYtMS4wN2E2LjUyLDYuNTIsMCwwLDEsMy44Ny01aDBaTTEwLjM2LDI4LjM2YTIuNSwyLjUsMCwxLDEsMi41LTIuNUEyLjUsMi41LDAsMCwxLDEwLjM2LDI4LjM2Wk0xOSwxOUgxNlYxN2gzWm0tNi01VjcuNDdhOC4xNiw4LjE2LDAsMCwx''@;'; put 'put ''LDUuNCwxLjE1QTE5LjE1LDE5LjE1LDAsMCwxLDI0LDE0Wk0yNi4wNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwyNi4wNiwyOC4zNloiLz4nKSxMLkNsclNoYXBlTWFwPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuNTksNi4xOUExLDEsMCwwLDAsMzIuNyw2TDIzLjA5LDksMTMuNDYsNC4xMWExLDEsMCwwLDAtLjg0LDBMMi42Miw4LjJBMSwxLDAsMCwwLDIsOS4xM1YyOS42MWExLDEsMCwwLDAsMS4zOC45MkwxMywyNi41OGw5LjU5LDQuOTJhMSwxLDAsMCwwLC40''@;'; put 'put ''Ni4xMSwxLDEsMCwwLDAsLjMsMGwxMC0zLjEyYTEsMSwwLDAsMCwuNy0xVjdBMSwxLDAsMCwwLDMzLjU5LDYuMTlaTTMyLDI2Ljc1bC04LjMyLDIuNlYyNy4wNmgtMS42djJsLTguNC00LjMxVjIzLjA2aC0xLjZ2MS43Mkw0LDI4LjExVjkuNzlsOC4wOC0zLjMzVjguODFoMS42VjYuNDdsOC40''@;'; put 'put ''LDQuM3YyLjFoMS42VjExTDMyLDguMzZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIHg9IjIyLjA4IiB5PSIxNS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3Qg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjIyLjA4IiB5PSIyMS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjEyLjA4''@;'; put 'put ''IiB5PSIxMS4wNiIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjgxIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjEyLjA4IiB5PSIxNy4xMyIgd2lkdGg9IjEuNiIgaGVpZ2h0PSIzLjc1Ii8+XG4gICAgICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLjMxLDcuMzUsMjUsOS45NFYxNEgyM1YxMC4yOUwxNCw1LjY4VjlIMTJWNS4yN2wtOS42Nyw0QS41My41MywwLDAsMCwyLDkuNzVWMzAuNDVhLjUzLjUzLDAsMCwwLC43NC40OUwxMiwyNy4x''@;'; put 'put ''MlYyM2gydjQuNTNsOSw0LjYxVjI4aDJ2My43OWw4LjYzLTIuN2EuNTMuNTMsMCwwLDAsLjM3LS41MVY3Ljg2QS41My41MywwLDAsMCwzMy4zMSw3LjM1Wk0xNCwyMUgxMlYxN2gyWm0wLTZIMTJWMTFoMlpNMjUsMjZIMjNWMjJoMlptMC02SDIzVjE2aDJaIi8+JyksTC5DbHJTaGFwZUNvbXBh''@;'; put 'put ''c3M9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjgyLDE1LjMxaDBMMTAuNDYsOWMtLjQ2LS4yNi0xLjExLjM3LS44Ni44NGw2LjE1LDEwLjU2LDEwLjU2LDYuMTVhLjY2LjY2LDAsMCwwLC44NC0uODZabS00LDQsMy0zLDQuNTUsNy40NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMSwyOS45NVYyOS41M0gxN3YyLjQyQTE0LDE0LDAsMCwxLDQuMDUsMTlINi40N1YxN0g0LjA1QTE0LDE0LDAsMCwxLDE3LDQuMDVWNi40''@;'; put 'put ''N2gyVjQuMDVBMTQsMTQsMCwwLDEsMzEuOTUsMTdIMjkuNTN2MmgyLjQyQTE0LDE0LDAsMCwxLDE5LDMxLjk1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww''@;'; put 'put ''LDAsMCwxOCwyWk02LjQ3LDE5SDQuMDVjMC0uMzMtLjA1LS42Ni0uMDUtMXMwLS42Ny4wNS0xSDYuNDdaTTE3LDQuMDVjLjMzLDAsLjY2LS4wNSwxLS4wNXMuNjcsMCwxLC4wNVY2LjQ3SDE3Wm0yLDI3LjljLS4zMywwLS42Ni4wNS0xLC4wNXMtLjY3LDAtMS0uMDVWMjkuNTNoMlptOC01LjU4''@;'; put 'put ''YS41OS41OSwwLDAsMS0uNjkuMTZMMTUuNzUsMjAuMzgsOS42LDkuODJjLS4yNS0uNDcuMzktMS4xLjg2LS44NGwxMC4zNyw2LjMzaDBsNi4zMywxMC4zN0EuNTkuNTksMCwwLDEsMjcsMjYuMzdaTTI5LjUzLDE5VjE3aDIuNDJjMCwuMzMuMDUuNjYuMDUsMXMwLC42Ny0uMDUsMVoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE2Ljc3IDE5LjM1IDI0LjM1IDIzLjc3IDE5LjggMTYuMzMgMTYuNzcgMTkuMzUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJT''@;'; put 'put ''aGFwZU1hcE1hcmtlcj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDYuNzJhNS43Myw1LjczLDAsMSwwLDUuNzMsNS43M0E1LjczLDUuNzMsMCwwLDAsMTgsNi43MlptMCw5LjQ2YTMuNzMsMy43MywwLDEs''@;'; put 'put ''MSwzLjczLTMuNzNBMy43MywzLjczLDAsMCwxLDE4LDE2LjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMkExMS43OSwxMS43OSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41''@;'; put 'put ''NCwxMS40M2wuMzUuNTJhOTkuNjEsOTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMtNi43NSw0LjUzLTExLjQyQTExLjc5LDExLjc5LDAsMCwwLDE4LDJaTTIzLjU5LDI0bC0uMzYuNTNjLTEuNzIs''@;'; put 'put ''Mi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMWE5Ljc4LDkuNzgsMCwxLDEsMTkuNTYsMEMyNy43OCwxNy43OSwyNS4zNiwyMS40LDIzLjU5LDI0WiIvPlxuICAgICAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDYuNzJhNS43Myw1LjczLDAsMSwwLDUuNzMsNS43M0E1LjczLDUuNzMsMCwwLDAsMTgsNi43MlptMCw5LjQ2YTMuNzMsMy43MywwLDEsMSwzLjczLTMuNzNBMy43''@;'; put 'put ''MywzLjczLDAsMCwxLDE4LDE2LjE3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTI5Ljc3LDEzLjQ5YTcuNDksNy40OSwwLDAsMS0yLS4zM2MwLC4xOSwwLC4zOCwwLC41Nyww''@;'; put 'put ''LDQuMDYtMi40Miw3LjY3LTQuMTksMTAuMzFsLS4zNi41M2MtMS43MiwyLjU4LTQsNS40Ny01LjIzLDYuOS0xLjE4LTEuNDMtMy41MS00LjMyLTUuMjMtNi45TDEyLjQyLDI0Yy0xLjc3LTIuNjQtNC4yLTYuMjUtNC4yLTEwLjMxQTkuNzcsOS43NywwLDAsMSwyMi41Niw1LjA5YTcuNDUsNy40''@;'; put 'put ''NSwwLDAsMSwuNTItMkExMS43NSwxMS43NSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41NCwxMS40M2wuMzUuNTJhOTkuNjEsOTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMt''@;'; put 'put ''Ni43NSw0LjUzLTExLjQyQzI5Ljc4LDEzLjY1LDI5Ljc3LDEzLjU3LDI5Ljc3LDEzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2''@;'; put 'put ''IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYu''@;'; put 'put ''MTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAsMCwxOCwyWm0wLDE3YTYuNTYsNi41NiwwLDEsMSw2LjU2LTYuNTZBNi41Niw2LjU2LDAsMCwxLDE4LDE5WiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjE4IiBjeT0iMTIuNDQiIHI9IjMuNzMiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJh''@;'; put 'put ''ZGdlZCIgZD0iTTI5Ljc3LDEzLjQ5QTcuNDcsNy40NywwLDAsMSwyNC4zOCwxMWE2LjU4LDYuNTgsMCwxLDEtMS42MS0zLDcuNDIsNy40MiwwLDAsMSwuMzEtNC44NEExMS43NSwxMS43NSwwLDAsMCw2LjIyLDEzLjczYzAsNC42NywyLjYyLDguNTgsNC41NCwxMS40M2wuMzUuNTJhOTkuNjEs''@;'; put 'put ''OTkuNjEsMCwwLDAsNi4xNCw4bC43Ni44OS43Ni0uODlhOTkuODIsOTkuODIsMCwwLDAsNi4xNC04bC4zNS0uNTNjMS45MS0yLjg1LDQuNTMtNi43NSw0LjUzLTExLjQyQzI5Ljc4LDEzLjY1LDI5Ljc3LDEzLjU3LDI5Ljc3LDEzLjQ5WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLEwuQ2xyU2hhcGVCaWN5Y2xlPSgwLEUuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LjUsMjkuNjVBNi41MSw2LjUxLDAsMCwxLDIsMjMuMTVhNi4zOSw2LjM5LDAsMCwxLDYuNS02LjM2QTYuMzksNi4zOSwwLDAsMSwxNSwyMy4xNSw2''@;'; put 'put ''LjUxLDYuNTEsMCwwLDEsOC41LDI5LjY1Wm0wLTExYTQuNSw0LjUsMCwxLDAsNC41LDQuNUE0LjUxLDQuNTEsMCwwLDAsOC41LDE4LjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI3LjUsMjkuNjVhNi41MSw2LjUxLDAsMCwxLTYu''@;'; put 'put ''NS02LjUsNi41LDYuNSwwLDAsMSwxMywwQTYuNTEsNi41MSwwLDAsMSwyNy41LDI5LjY1Wm0wLTExYTQuNSw0LjUsMCwxLDAsNC41LDQuNUE0LjUxLDQuNTEsMCwwLDAsMjcuNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0x''@;'; put 'put ''OSwyNC42Nkg4YTEsMSwwLDAsMS0uODktMS40NWw1LTEwLDEuNzguOUw5LjYyLDIyLjczSDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3QgeD0iMTMiIHk9IjEyLjY4IiB3aWR0aD0iMTEiIGhlaWdodD0iMS45MSIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI4LDI0LjY2YTEsMSwwLDAsMS0uOTQtLjY2TDIyLjI5LDEwLjY2SDIwYTEsMSwwLDAsMS0xLTEsMSwxLDAsMCwxLDEtLjkzaDNhLjk0Ljk0LDAsMCwxLC45NC42bDUsMTRhMSwxLDAsMCwxLS42LDEuMjdBMSwxLDAsMCwx''@;'; put 'put ''LDI4LDI0LjY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTEzLDE0LjY2YTEsMSwwLDAsMS0uNzEtLjI5bC0xLjctMS43MUg4YTEsMSwwLDAsMS0xLTEsLjk0Ljk0LDAsMCwxLDEtMWgzYTEuMDgsMS4wOCwwLDAsMSwuNzUuMjdsMiwy''@;'; put 'put ''YTEsMSwwLDAsMSwwLDEuNDFBMSwxLDAsMCwxLDEzLDE0LjY2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE1LDIxLjljLTAuMi0yLTEuMi0zLjgtMi45LTQuOWwtMi41LDQuOUgxNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTcuMiwyMy40Yy0wLjItMC4zLTAuMi0wLjcsMC0xbDMuMi02LjNjLTAuNi0wLjItMS4yLTAuMi0xLjgtMC4yQzUsMTUuOSwyLDE4LjgsMiwyMi40YzAsMy42LDIuOSw2LjUsNi41LDYuNVxuXHRjMywwLDUuNi0yLjEsNi4zLTVIOEM3LjcsMjMuOSw3''@;'; put 'put ''LjMsMjMuNyw3LjIsMjMuNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LDIxLjloLTRjMCwwLjIsMCwwLjMsMCwwLjVjMCwwLjUtMC4xLDEtMC4yLDEuNUgxOVYyMS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''MyIgLz48cGF0aCBkPSJNMjcuNSwxNS45Yy0wLjMsMC0wLjYsMC0wLjksMC4xbDIuNCw2LjZjMC4yLDAuNS0wLjEsMS4xLTAuNiwxLjNjLTAuMSwwLTAuMiwwLjEtMC4zLDAuMWMtMC40LDAtMC44LTAuMy0wLjktMC43bC0yLjQtNi43XG5cdGMtMy4yLDEuNi00LjUsNS41LTMsOC43YzEuNiwz''@;'; put 'put ''LjIsNS41LDQuNSw4LjcsM2MzLjItMS42LDQuNS01LjUsMy04LjdDMzIuMiwxNy4zLDMwLDE1LjksMjcuNSwxNS45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNMjQuNywxNi43YzAuNi0wLjMsMS4zLTAuNSwxLjktMC42bC0yLjctNy40QzIz''@;'; put 'put ''LjgsOC4yLDIzLjQsOCwyMyw3LjloLTNjLTAuNiwwLTEsMC41LTEsMS4xYzAsMC41LDAuNCwwLjksMSwwLjlcblx0YzAsMCwwLDAsMCwwaDIuM2wwLjcsMmgtOS42bC0xLjctMS43QzExLjUsMTAuMSwxMS4zLDEwLDExLDEwSDhjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoMi42bDEuMiwx''@;'; put 'put ''LjJsLTEuNSwzXG5cdGMwLjYsMC4yLDEuMywwLjUsMS44LDAuOGwxLjYtMy4yaDEwTDI0LjcsMTYuN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksTC5DbHJTaGFwZUJvYXQ9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjEsMjcuMUMyOCwyNywy''@;'; put 'put ''Ni45LDI3LjQsMjYsMjguMmMtMS4xLDEuMS0yLjksMS4xLTQuMSwwYy0xLTAuNy0yLjEtMS4xLTMuMy0xLjFjLTEuMi0wLjEtMi40LDAuMy0zLjMsMS4xXG5cdFx0QzE0LjcsMjguNywxNCwyOSwxMy4yLDI5cy0xLjUtMC4zLTIuMS0wLjhjLTEtMC44LTIuMi0xLjItMy40LTEuMnMtMi40LDAu''@;'; put 'put ''NC0zLjQsMS4yQzMuNywyOC43LDIuOCwyOSwyLDI5djJcblx0XHRjMS4zLDAuMSwyLjYtMC4zLDMuNi0xLjJDNi4yLDI5LjMsNy4xLDI5LDcuOSwyOWMwLjcsMCwxLjUsMC4zLDIuMSwwLjhjMS44LDEuNiw0LjYsMS42LDYuNSwwYzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44XG5cdFx0YzAuNyww''@;'; put 'put ''LDEuNCwwLjMsMiwwLjhjMS45LDEuNiw0LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4zLTAuOCwyLTAuOGMwLjcsMCwxLjQsMC4zLDEuOSwwLjhjMC45LDAuNywxLjksMS4xLDMsMS4ydi0yXG5cdFx0Yy0xLDAtMS4yLTAuNC0xLjctMC44QzMxLjQsMjcuNSwzMC4zLDI3LjEsMjkuMSwyNy4xeiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMjNjMC0wLjYsMC41LTEsMS4xLTFIMzJsLTMuNSwzLjFoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC43LTAuOCwwLjYtMi4xLTAuMi0yLjhcblx0XHRDMzMs''@;'; put 'put ''MjAuMiwzMi42LDIwLDMyLjEsMjBoLTI1Yy0xLjcsMC0zLDEuMy0zLDN2My4yYzAuNS0wLjUsMS4yLTAuOCwxLjktMS4xVjIzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTguOSwxOUgxNXYtNy44YzAtMC42LTAuMy0xLjItMC44LTEu''@;'; put 'put ''NkMxMy4zLDguOSwxMiw5LjEsMTEuNCwxMGwtNC4xLDUuOWMtMC40LDAuNi0wLjQsMS40LTAuMSwyLjFDNy41LDE4LjYsOC4yLDE5LDguOSwxOVxuXHRcdHogTTEzLjEsMTEuMkwxMywxN0g4LjlMMTMuMSwxMS4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; put 'put ''IC8+PHBhdGggZD0iTTI2LDE4YzAuNC0wLjYsMC40LTEuNCwwLTJMMTkuNyw1LjZjLTAuNC0wLjYtMS0xLTEuNy0xYy0xLjEsMC0yLDAuOS0yLDJWMTloOC4zQzI1LDE5LDI1LjcsMTguNiwyNiwxOHogTTE3LjksNi42XG5cdFx0bDYuNCwxMC41aC02LjRWNi42eiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTM0LDMxYy0xLjEtMC4xLTIuMS0wLjUtMy0xLjJjLTAuNS0wLjUtMS4yLTAuOC0yLTAuOGMtMC43LDAtMS41LDAuMy0yLDAuOGMtMC45LDAuOC0yLDEuMS0zLjEsMS4xYy0xLjIsMC0yLjQtMC40LTMuMy0xLjFcblx0Yy0x''@;'; put 'put ''LjItMS4xLTMtMS4xLTQuMSwwYy0wLjksMC44LTIuMSwxLjItMy40LDEuMmMtMS4yLDAtMi4zLTAuNC0zLjItMS4yYy0wLjYtMC41LTEuMy0wLjgtMi0wLjhjLTAuOCwwLTEuNywwLjMtMi4zLDAuOFxuXHRjLTEsMC44LTIuMywxLjItMy41LDEuMVYyOWMwLjgsMCwxLjctMC4zLDIuMy0wLjlj''@;'; put 'put ''MS0wLjgsMi4yLTEuMiwzLjQtMS4xYzEuMiwwLDIuNCwwLjQsMy4zLDEuMmMxLjIsMS4xLDMsMS4xLDQuMiwwXG5cdGMxLjktMS42LDQuNy0xLjYsNi41LDBjMS4yLDEuMSwzLDEuMSw0LjEsMGMwLjktMC44LDIuMS0xLjIsMy4zLTEuMmMxLjEsMCwyLjIsMC40LDMsMS4yQzMyLjgsMjguNywz''@;'; put 'put ''MywyOSwzNCwyOUwzNCwzMXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTQuMSwyNi4yYzAuNi0wLjUsMS4yLTAuOCwxLjktMVYyM2MwLTAuNiwwLjQtMS4xLDEtMS4xaDI1TDI4LjQsMjVoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUt''@;'; put 'put ''Mi4ybDAuMi0wLjJcblx0YzAuNy0wLjksMC41LTIuMS0wLjQtMi44QzMyLjksMjAuMSwzMi40LDIwLDMyLDIwSDdjLTEuNywwLTMsMS4zLTMsM0w0LjEsMjYuMkw0LjEsMjYuMnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE0LjksMTguOUg4''@;'; put 'put ''LjljLTEuMSwwLTItMC45LTItMmMwLTAuNCwwLjEtMC44LDAuNC0xLjJsNC4xLTUuOGMwLjYtMC45LDEuOS0xLjEsMi44LTAuNWMwLjUsMC40LDAuOCwxLDAuOCwxLjZWMTguOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LjMsMTguOUgx''@;'; put 'put ''NlY2LjRjMC0xLjEsMC45LTIsMi0yYzAuNywwLDEuMywwLjQsMS43LDFMMjYsMTUuOGMwLjYsMSwwLjIsMi4yLTAuNywyLjdDMjUsMTguNywyNC42LDE4LjgsMjQuMywxOC45XG5cdEwyNC4zLDE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLEwuQ2xy''@;'; put 'put ''U2hhcGVDYW1wZXJ2YW49KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTkuNSwyNEM5LjUsMjQsOS41LDI0LDkuNSwyNEM3LjYsMjQsNiwyNS42LDYsMjcuNWMwLDAsMCwwLDAsMEM2LDI5LjQsNy42LDMxLDkuNSwzMWMxLjksMCwzLjUtMS42LDMuNS0zLjVcblx0XHRTMTEuNCwyNCw5LjUs''@;'; put 'put ''MjR6IE05LjUsMjlDOC43LDI5LDgsMjguMyw4LDI3LjVTOC43LDI2LDkuNSwyNnMxLjUsMC43LDEuNSwxLjVTMTAuMywyOSw5LjUsMjl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjMuNSwyNEMyMy41LDI0LDIzLjUsMjQsMjMuNSwy''@;'; put 'put ''NGMtMS45LDAtMy41LDEuNi0zLjUsMy41YzAsMCwwLDAsMCwwYzAsMS45LDEuNSwzLjUsMy41LDMuNWMxLjksMCwzLjUtMS42LDMuNS0zLjVcblx0XHRTMjUuNCwyNCwyMy41LDI0eiBNMjMuNSwyOWMtMC44LDAtMS41LTAuNy0xLjUtMS41czAuNy0xLjUsMS41LTEuNXMxLjUsMC43LDEuNSwx''@;'; put 'put ''LjVTMjQuMywyOSwyMy41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMzLDIwLjFWMjBoLTAuMWwtMy41LTUuNUMzMSwxMy42LDMyLDEyLDMyLDEwLjNWOS43QzMyLDcuMSwyOS45LDUsMjcuMyw1aC04LjVjLTEuOSwwLTMuNywx''@;'; put 'put ''LjItNC40LDNINWMtMS43LDAtMywxLjMtMywzXG5cdFx0djE3aDJWMTFjMC0wLjYsMC40LTEsMS0xaDEwLjlMMTYsOS4yQzE2LjMsNy45LDE3LjQsNywxOC43LDdoOC41QzI4LjgsNywzMCw4LjIsMzAsOS43djAuNWMwLDEuNS0xLjIsMi43LTIuNywyLjdIMjR2OWg3Ljhcblx0XHRsMC4yLDAu''@;'; put 'put ''M1YyNWMwLDAuNi0wLjQsMS0xLDFoLTJ2MmgyYzEuNywwLDMtMS4zLDMtM3YtMy4zTDMzLDIwLjF6IE0yNiwyMHYtNWgxLjVsMy4xLDVIMjZ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cmVjdCB4PSIxOSIgeT0iOSIgd2lkdGg9IjgiIGhlaWdodD0i''@;'; put 'put ''MiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCwyMiAyMiwyMiAyMiwxMyAxNSwxMyAxNSwyOCAxNywyOCAxNywxNSAyMCwxNSBcdCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBh''@;'; put 'put ''dGggZD0iTTYsMjBoN3YtN0g2VjIweiBNOCwxNWgzdjNIOFYxNXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik05LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVTNy42LDMxLDkuNSwzMWMwLDAsMCwwLDAsMGMxLjksMCwzLjUtMS42LDMu''@;'; put 'put ''NS0zLjVjMCwwLDAtMC4xLDAtMC4xQzEzLDI1LjUsMTEuNCwyNCw5LjUsMjR6IlxuXHRcdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjIzLjUiIGN5PSIyNy41IiByPSIzLjUiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTIiIC8+PHBhdGggZD0iTTI5LjUsMTQuNUMzMSwxMy42LDMyLDEyLDMyLDEwLjJWOS43YzAsMCwwLDAsMC0wLjFDMzIsNywyOS45LDUsMjcuMyw1aC04LjVjLTEuOSwwLTMuNywxLjItNC40LDNINWMtMS43LDAtMywxLjMtMywzdjE3XG5cdFx0aDJWMTFjMC0wLjYsMC40LTEsMS0xaDEwLjlM''@;'; put 'put ''MTYsOS4yQzE2LjMsNy45LDE3LjQsNywxOC43LDdoOC41QzI4LjgsNywzMCw4LjIsMzAsOS43djAuNWMwLDEuNS0xLjIsMi43LTIuNywyLjdIMjdoLTN2OWg3Ljhcblx0XHRsMC4yLDAuM1YyNWMwLDAuNi0wLjQsMS0xLDFoLTJ2MmgyYzEuNywwLDMtMS4zLDMtM3YtMy4zTDI5LjUsMTQuNXoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+PHJlY3QgeD0iMTkiIHk9IjkiIHdpZHRoPSI3LjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cG9seWdvbiBwb2ludHM9IjIwLDIyIDIxLjksMjIgMjEuOSwxMyAx''@;'; put 'put ''NSwxMyAxNSwyOCAxNi45LDI4IDE2LjksMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHJlY3QgeD0iNiIgeT0iMTMiIHdpZHRoPSI2LjkiIGhlaWdodD0iNyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxM''@;'; put 'put ''LkNsclNoYXBlQ2FyYXZhbj0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTMuNSwyMUMxMSwyMSw5LDIzLDksMjUuNXMyLDQuNSw0LjUsNC41YzIuNSwwLDQuNS0yLDQuNS00LjVDMTgsMjMsMTYsMjEsMTMuNSwyMXogTTEzLjUsMjhjLTEuNCwwLTIuNS0xLjEtMi41LTIuNVxuXHRcdHMx''@;'; put 'put ''LjEtMi41LDIuNS0yLjVzMi41LDEuMSwyLjUsMi41UzE0LjksMjgsMTMuNSwyOHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywyNGgtMnYtNy41YzAtMC41LTAuMS0xLTAuNC0xLjVsLTQuMi03LjVjLTAuNS0xLTEuNS0xLjUtMi42''@;'; put 'put ''LTEuNUg1QzMuMyw2LDIsNy4zLDIsOXYxNGMwLDEuNywxLjMsMywzLDNoMnYtMkg1XG5cdFx0Yy0wLjYsMC0xLTAuNC0xLTFWOWMwLTAuNiwwLjQtMSwxLTFoMTguOGMwLjQsMCwwLjcsMC4yLDAuOSwwLjVsNC4yLDcuNWMwLjEsMC4xLDAuMSwwLjMsMC4xLDAuNVYyNGgtNFYxMmgtN3Y4aDJ2''@;'; put 'put ''LTZoM3YxMGgtM3YyaDEzXG5cdFx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE2LDEySDd2Nmg5VjEyeiBNMTQsMTZIOXYtMmg1VjE2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEzLjUsMzBDMTEsMzAsOSwyOCw5LDI1LjVzMi00LjUsNC41LTQuNXM0LjUsMiw0LjUsNC41QzE4LDI4LDE2LDMwLDEzLjUsMzB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMywy''@;'; put 'put ''NGgtMnYtNy41YzAtMC41LTAuMS0xLTAuNC0xLjVsLTQuMi03LjVjLTAuNS0xLTEuNS0xLjUtMi42LTEuNUg1QzMuMyw2LDIsNy4zLDIsOXYxNGMwLDEuNywxLjMsMywzLDNoMnYtMkg1XG5cdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiww''@;'; put 'put ''LjksMC41bDQuMiw3LjVjMC4xLDAuMSwwLjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJoLTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRjMC42LDAsMS0wLjQsMS0xUzMzLjYsMjQsMzMsMjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxOEg3''@;'; put 'put ''di02aDlWMTh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLEwuQ2xyU2hhcGVGZXJyeT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMjUuMWMtMS4yLDAtMi4zLDAuNC0zLjMsMS4xYzAsMCwwLDAsMCwwYy0xLjEsMS4xLTMsMS4xLTQuMSwwYy0w''@;'; put 'put ''LjktMC44LTIuMS0xLjItMy4zLTEuMmMtMS4yLDAtMi4zLDAuNC0zLjIsMS4yXG5cdFx0Yy0xLjIsMS4xLTMsMS4xLTQuMiwwQzEwLDI1LjQsOC44LDI1LDcuNiwyNWMtMS4yLDAtMi40LDAuNC0zLjQsMS4xQzMuNiwyNi43LDIuOCwyNywyLDI3djJjMS4zLDAuMSwyLjUtMC40LDMuNC0xLjJc''@;'; put 'put ''blx0XHRDNi4xLDI3LjMsNi45LDI3LDcuNywyN2MwLjgsMCwxLjUsMC4zLDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwYzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNSwwLjMsMi4xLDAuOFxuXHRcdGMxLjksMS42LDQuNiwxLjYsNi41LDBjMC41LTAuNSwxLjMtMC44LDIt''@;'; put 'put ''MC44YzAuNywwLDEuNSwwLjMsMiwwLjhjMC45LDAuNywyLDEuMSwzLjEsMS4ydi0xLjljLTAuNywwLTEuNC0wLjMtMS45LTAuOVxuXHRcdEMzMS4zLDI1LjQsMzAuMSwyNSwyOSwyNS4xeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTUu''@;'; put 'put ''OSwyMy4yVjIwSDMybC0zLjUsM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4yLTAuMmMwLjUtMC42LDAuNS0xLjQsMC4yLTIuMWMtMC40LTAuNy0xLTEtMS44LTFoLTQuNFxuXHRcdEwyMi41LDExSDE3Yy0xLjcsMC0zLDEuMy0zLDNoLTJWOC4xSDZ2Ni4xYy0xLjIsMC40''@;'; put 'put ''LTIsMS41LTIsMi44djEuMVYyMHY0LjNsMC4xLTAuMUM0LjYsMjMuNyw1LjIsMjMuNCw1LjksMjMuMnogTTgsMTBoMnY0SDhWMTB6XG5cdFx0IE02LDE3YzAtMC42LDAuNC0xLDEtMWg5di0yYzAtMC42LDAuNC0xLDEtMWg1bDAuNiwxSDE4djJoNS44bDEuMiwyLjFINlYxN3oiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOC4yLDI1Yy0xLjIsMC0yLjQsMC40LTMuMywxLjJjLTEuMiwxLjEtMywxLjEtNC4xLDBjLTEuOS0xLjYtNC42LTEuNi02LjUsMGMtMS4yLDEuMS0yLjksMS4xLTQuMSwwXG5cdFx0Yy0wLjktMC44LTItMS4y''@;'; put 'put ''LTMuMi0xLjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMkMzLjQsMjYuNywyLjcsMjcsMiwyN3YyYzEuMS0wLjEsMi4yLTAuNSwzLjEtMS4yQzUuNiwyNy4zLDYuMywyNyw3LDI3XG5cdFx0YzAuNywwLDEuNSwwLjMsMiwwLjhjMS45LDEuNiw0LjcsMS42LDYuNiwwYzAuNi0wLjUsMS4zLTAuOCwy''@;'; put 'put ''LjEtMC44YzAuOCwwLDEuNSwwLjMsMi4xLDAuOGMxLjksMS42LDQuNywxLjYsNi41LDBcblx0XHRjMC42LTAuNSwxLjMtMC44LDIuMS0wLjhjMC44LDAsMS42LDAuMywyLjEsMC44YzAuOSwwLjgsMi4yLDEuMywzLjQsMS4ydi0yYy0wLjgsMC0xLjYtMC4zLTIuMi0wLjhDMzAuNywyNS40LDI5''@;'; put 'put ''LjUsMjUsMjguMiwyNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTUuOCwyMy4ydi0zLjNoMjYuMUwyOC40LDIzaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjEtMC4yYzAuNy0wLjksMC41LTIuMS0wLjQtMi44Yy0wLjMt''@;'; put 'put ''MC4zLTAuOC0wLjQtMS4yLTAuNFxuXHRcdGgtNC4xbC01LjQtN2gtNS41Yy0xLjcsMC0zLDEuMy0zLDNoLTJWOEg2djYuMmMtMS4yLDAuNC0yLjEsMS41LTIuMSwyLjhsMCw3LjJsMC4xLDBDNC41LDIzLjcsNS4xLDIzLjQsNS44LDIzLjJ6IE0xNy45LDE0aDQuMlxuXHRcdGwxLjQsMmgtNS43''@;'; put 'put ''VjE0eiBNNy45LDEwaDJ2NGgtMlYxMHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZVRyYWlsZXI9KDAsRS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDE5LjJjLTMuMiwwLTUuOCwyLjYtNS44LDUuOHMyLjYsNS44LDUuOCw1LjhzNS44''@;'; put 'put ''LTIuNiw1LjgtNS44UzE4LjIsMTkuMiwxNSwxOS4yeiBNMTUsMjkuMmMtMi4zLDAtNC4yLTEuOS00LjItNC4yXG5cdFx0czEuOS00LjIsNC4yLTQuMnM0LjIsMS45LDQuMiw0LjJTMTcuMywyOS4yLDE1LDI5LjJ6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; put 'put ''Lz48cmVjdCB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgt''@;'; put 'put ''MS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEuOUgyM3YyaDEuMVxuXHRcdGMwLDAsMCwwLDAsMGMyLjEsMCwzLjgtMS43LDMuOC0zLjlWMTFoNWMwLjYsMCwxLTAuNCwxLTFTMzMuNiw5LDMzLDl6IE0yNiwxM0g0di0yaDIyVjEzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMzLDlIMnYxMy4xYzAsMCwwLDAsMCwwQzIsMjQuMywzLjcsMjYsNS45LDI2SDd2LTJINS45Yy0xLDAtMS44LTAuOC0xLjktMS45VjE1aDIydjcuMWMwLDEtMC44LDEuOC0xLjksMS45SDIzdjJoMS4xXG5cdGMwLDAsMCwwLDAsMGMyLjEs''@;'; put 'put ''MCwzLjgtMS43LDMuOC0zLjlWMTFoNWMwLjYsMCwxLTAuNCwxLTFTMzMuNiw5LDMzLDl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01LjgsMi42LTUuOCw1LjhzMi42LDUuOCw1LjgsNS44czUuOC0yLjYsNS44LTUu''@;'; put 'put ''OGwwLDBDMjAuOCwyMS44LDE4LjIsMTkuMiwxNSwxOS4yeiBNMTYsMjZoLTJ2LTJoMlYyNnoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksTC5DbHJTaGFwZU9uSG9saWRheT0oMCxFLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguMDgsMi4zNGMtOC44Miww''@;'; put 'put ''LTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNEExNy45MSwxNy45MSwwLDAsMCwyMywyOS42Nmw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuMzgtLjMsMSwxLDAsMCwwLC4xNi0uNTRWMjUuNjFhMTMsMTMsMCwwLDAsNC05LjI3QzM0LjA4LDguNjIsMjYuOSwyLjM0LDE4LjA4LDIuMzRaTTI4LjM3''@;'; put 'put ''LDI0LjQ1YTEsMSwwLDAsMC0uMzIuNzN2NS4zNGwtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExLDE2LDE2LDAsMCwxLTQuNzYuNzJjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4xLDExLjEsMCwwLDEsMjguMzcsMjQuNDVaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMSwxNS44MiwzMSwxNS42NywyOC41LDEzLjQ0YTMuMjUsMy4yNSwwLDAsMC0yLjM5LS44NGwtNS4zOC4zNC0zLjU5LTNhLjgxLjgxLDAsMCwwLS41Mi0uMTlIMTMuNTZhLjc4Ljc4LDAsMCwwLS42''@;'; put 'put ''OS40Ljc3Ljc3LDAsMCwwLDAsLjc5bDEuMzYsMi40NC00LjcxLjI5LDEuMzEsMS41MiwxNS4zOS0xYTEuNjUsMS42NSwwLDAsMSwxLjIyLjQzbDIuMzYsMi4xM2EuMTEuMTEsMCwwLDEsMCwuMDdjMCwuMDYtLjA5LjA1LS4xLjA2SDIxLjgybC0uMzUuMzctNS4xOSw1LjUzSDE0LjY0bDIuNzMt''@;'; put 'put ''NS45SDguNTRMNy4xMywxNC4xNiw2LjUxLDEzYS44LjgsMCwwLDAtMS0uMkEuODEuODEsMCwwLDAsNS4yLDEzLjlsMiwzLjk0YTEuMjEsMS4yMSwwLDAsMCwxLjA4LjY1aDYuNTdsLTEuOTQsNC4xOEExLjIsMS4yLDAsMCwwLDEzLDIzLjgzYTEuMjIsMS4yMiwwLDAsMCwxLC41NmgyLjQzYTEu''@;'; put 'put ''MTcsMS4xNywwLDAsMCwuODgtLjM5bDUuMTgtNS41MWg3LjE2YTEuNjUsMS42NSwwLDAsMCwxLjUyLS45MUExLjc0LDEuNzQsMCwwLDAsMzEuMSwxNS44MlpNMTQuOTIsMTEuMzFoMS40MWwyLjA5LDEuNzdMMTYsMTMuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMiIvPlxuICBcbiAgPHBhdGggZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExNy45MSwxNy45MSwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuMzgtLjNBMSwxLDAsMCwwLDMwLDMyLjVWMjUuNzdhMTMsMTMsMCwwLDAsNC05LjI3''@;'; put 'put ''QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjkuODQsMThIMjEuNTFhLjQyLjQyLDAsMCwwLS4zLjEzbC01LjMsNS42NGEuMzkuMzksMCwwLDEtLjI5LjEzSDEzLjE5YS40MS40MSwwLDAsMS0uMzctLjU4bDIuNDctNS4zMkg3LjQ2YS40Mi40MiwwLDAsMS0uMzYtLjIybC0yLjctNUg2LjI0''@;'; put 'put ''YS41My41MywwLDAsMSwuMzkuMThsMS41NiwxLjY5YS4zOC4zOCwwLDAsMCwuMzMuMTRsNi4xOC0uMzgtMi0zLjU1aDIuODlhLjQ3LjQ3LDAsMCwxLC4zMS4xMUwxOS42MywxNGw2LjY5LS4zNWEyLjQ0LDIuNDQsMCwwLDEsMS44MS42M2wyLjQ3LDIuMjNBLjkyLjkyLDAsMCwxLDI5Ljg0LDE4''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAnKSxMLlRyYXZlbFNoYXBlcz17dHJ1Y2s6TC5DbHJTaGFwZVRydWNrLGFpcnBsYW5lOkwuQ2xyU2hhcGVBaXJwbGFuZSxjYXI6TC5DbHJTaGFwZUNhcixtYXA6TC5DbHJTaGFwZU1hcCxjb21wYXNzOkwuQ2xy''@;'; put 'put ''U2hhcGVDb21wYXNzLCJtYXAtbWFya2VyIjpMLkNsclNoYXBlTWFwTWFya2VyLGJpY3ljbGU6TC5DbHJTaGFwZUJpY3ljbGUsYm9hdDpMLkNsclNoYXBlQm9hdCxjYW1wZXJ2YW46TC5DbHJTaGFwZUNhbXBlcnZhbixjYXJhdmFuOkwuQ2xyU2hhcGVDYXJhdmFuLGZlcnJ5OkwuQ2xyU2hhcGVG''@;'; put 'put ''ZXJyeSx0cmFpbGVyOkwuQ2xyU2hhcGVUcmFpbGVyLCJvbi1ob2xpZGF5IjpMLkNsclNoYXBlT25Ib2xpZGF5fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTC5UcmF2ZWxTaGFwZXMsInBsYW5lIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVHJhdmVsU2hhcGVzLmFpcnBsYW5lKSksT2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KEwuVHJhdmVsU2hhcGVzLCJhdXRvIiwoMCxCLmRlc2NyaXB0b3JDb25maWcpKEwuVHJhdmVsU2hhcGVzLmNhcikpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUlj''@;'; put 'put ''b25zLmFkZChMLlRyYXZlbFNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyI6ZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLmRlc2NyaXB0''@;'; put 'put ''b3JDb25maWc9dm9pZCAwLEwuZGVzY3JpcHRvckNvbmZpZz1mdW5jdGlvbiBCKEUpe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpFfX19LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyI6ZnVuY3Rp''@;'; put 'put ''b24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShMLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxMLmNsckljb25TVkc9dm9pZCAwO0wuY2xySWNvblNWRz1mdW5jdGlvbiBVKFEpe3ZhciBqPSIiO3JldHVybiBRLmluZGV4T2YoIi0tYmFkZ2VkIik+LTEmJihq''@;'; put 'put ''Kz0iY2FuLWJhZGdlICIpLFEuaW5kZXhPZigiLS1hbGVydGVkIik+LTEmJihqKz0iY2FuLWFsZXJ0ICIpLFEuaW5kZXhPZigiY2xyLWktc29saWQiKT4tMSYmKGorPSJoYXMtc29saWQgIiksKGo/JzxzdmcgdmVyc2lvbj0iMS4xIiBjbGFzcz0iJytqKyciIHZpZXdCb3g9IjAgMCAzNiAzNiIg''@;'; put 'put ''cHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6JzxzdmcgdmVyc2lvbj0i''@;'; put 'put ''MS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxzZSIgcm9s''@;'; put 'put ''ZT0iaW1nIj4nKStRKyI8L3N2Zz4ifX19KX0sNjA5MzI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT17fTtMLnIobWUpLEwuZChtZSx7Y2FuY2VsQW5pbWF0aW9uRnJhbWU6KCk9PlRaLGdldENvbXBhcmlzb25GdW5jdGlvbjooKT0+ZmJlLGhhc0NhcHRpb25Qcm9ibGVtOigpPT5V''@;'; put 'put ''aGUsaXNDbGFzc0xpc3RTdXBwb3J0ZWQ6KCk9PnNiZSxpc0dldENvbXB1dGVkU3R5bGVTdXBwb3J0ZWQ6KCk9PmNiZSxpc1Bhc3NpdmVFdmVudFN1cHBvcnRlZDooKT0+aGJlLGlzVGV4dENvbnRlbnRTdXBwb3J0ZWQ6KCk9PnViZSxpc1RvdWNoU3VwcG9ydGVkOigpPT5XaGUscmVxdWVzdEFu''@;'; put 'put ''aW1hdGlvbkZyYW1lOigpPT5HaGV9KTt2YXIgQj17fTtMLnIoQiksTC5kKEIse2FycmF5QXZnOigpPT5LamUsYXJyYXlFYWNoOigpPT5VcixhcnJheUZpbHRlcjooKT0+ZzQsYXJyYXlGbGF0dGVuOigpPT5nYmUsYXJyYXlNYXA6KCk9Pk9sLGFycmF5TWF4OigpPT5KamUsYXJyYXlNaW46KCk9''@;'; put 'put ''PlhqZSxhcnJheVJlZHVjZTooKT0+U3UsYXJyYXlTdW06KCk9PnBiZSxhcnJheVVuaXF1ZTooKT0+SmhlLGV4dGVuZEFycmF5OigpPT5RaGUsZ2V0RGlmZmVyZW5jZU9mQXJyYXlzOigpPT5YaGUsZ2V0SW50ZXJzZWN0aW9uT2ZBcnJheXM6KCk9PiRqZSxnZXRVbmlvbk9mQXJyYXlzOigpPT5x''@;'; put 'put ''amUscGl2b3Q6KCk9PkRaLHN0cmluZ1RvQXJyYXk6KCk9PktoZSx0bzJkQXJyYXk6KCk9PmRiZX0pO3ZhciBFPXt9O0wucihFKSxMLmQoRSx7Y2xvbmU6KCk9PmEzLGNyZWF0ZU9iamVjdFByb3BMaXN0ZW5lcjooKT0+RVMsZGVlcENsb25lOigpPT5naCxkZWVwRXh0ZW5kOigpPT5MWixkZWVw''@;'; put 'put ''T2JqZWN0U2l6ZTooKT0+SnEsZGVmaW5lR2V0dGVyOigpPT5TZyxkdWNrU2NoZW1hOigpPT5sTyxleHRlbmQ6KCk9PkkxLGdldFByb3BlcnR5OigpPT52YmUsaGFzT3duUHJvcGVydHk6KCk9Pm8xLGluaGVyaXQ6KCk9PlN2LGlzT2JqZWN0OigpPT54bCxpc09iamVjdEVxdWFsOigpPT4kaGUs''@;'; put 'put ''bWl4aW46KCk9PkIyLG9iamVjdEVhY2g6KCk9PkdsLHNldFByb3BlcnR5OigpPT5RcX0pO3ZhciBFZT17fTtMLnIoRWUpLEwuZChFZSx7aXNDaHJvbWU6KCk9PndiZSxpc0Nocm9tZVdlYktpdDooKT0+YmJlLGlzRWRnZTooKT0+a2JlLGlzRWRnZVdlYktpdDooKT0+ZVplLGlzRmlyZWZveDoo''@;'; put 'put ''KT0+WHEsaXNGaXJlZm94V2ViS2l0OigpPT5fYmUsaXNJRTooKT0+U2JlLGlzSUU5OigpPT5NYmUsaXNJT1M6KCk9PnFoZSxpc0lwYWRPUzooKT0+ZTNlLGlzTGludXhPUzooKT0+blplLGlzTVNCcm93c2VyOigpPT50WmUsaXNNYWNPUzooKT0+S3EsaXNNb2JpbGVCcm93c2VyOigpPT5iOCxp''@;'; put 'put ''c1NhZmFyaTooKT0+Q2JlLGlzV2luZG93c09TOigpPT50M2Usc2V0QnJvd3Nlck1ldGE6KCk9PkFiZSxzZXRQbGF0Zm9ybU1ldGE6KCk9PnliZX0pO3ZhciBVPXt9O0wucihVKSxMLmQoVSx7X2luamVjdFByb2R1Y3RJbmZvOigpPT5IYmUsaXNEZWZpbmVkOigpPT5Ubyxpc0VtcHR5OigpPT5k''@;'; put 'put ''Yyxpc1JlZ0V4cDooKT0+T2JlLGlzVW5kZWZpbmVkOigpPT5hMSxzdHJpbmdpZnk6KCk9PmV1fSk7dmFyIFE9e307TC5yKFEpLEwuZChRLHtlcXVhbHNJZ25vcmVDYXNlOigpPT5sWmUsaXNQZXJjZW50VmFsdWU6KCk9Pm8zZSxyYW5kb21TdHJpbmc6KCk9PmkzZSxzYW5pdGl6ZTooKT0+cXEs''@;'; put 'put ''c3RyaXBUYWdzOigpPT5sM2Usc3Vic3RpdHV0ZTooKT0+YTNlLHRvVXBwZXJDYXNlRmlyc3Q6KCk9PmxkfSk7dmFyIGo9e307TC5yKGopLEwuZChqLHtIVE1MX0NIQVJBQ1RFUlM6KCk9PkdiZSxhZGRDbGFzczooKT0+TzAsYWRkRXZlbnQ6KCk9PnBaZSxjbGVhclRleHRTZWxlY3Rpb246KCk9''@;'; put 'put ''Pm0zZSxjbG9zZXN0OigpPT5NdixjbG9zZXN0RG93bjooKT0+UFosZW1wdHk6KCk9PkRwLGZhc3RJbm5lckhUTUw6KCk9Pmt3LGZhc3RJbm5lclRleHQ6KCk9PlN3LGdldENhcmV0UG9zaXRpb246KCk9PmczZSxnZXRDb21wdXRlZFN0eWxlOigpPT5NdyxnZXRDc3NUcmFuc2Zvcm06KCk9PnZa''@;'; put 'put ''ZSxnZXRGcmFtZUVsZW1lbnQ6KCk9PmpiZSxnZXRQYXJlbnQ6KCk9PlZiZSxnZXRQYXJlbnRXaW5kb3c6KCk9PnUzZSxnZXRTY3JvbGxMZWZ0OigpPT50ZWUsZ2V0U2Nyb2xsVG9wOigpPT5GWixnZXRTY3JvbGxhYmxlRWxlbWVudDooKT0+SFosZ2V0U2Nyb2xsYmFyV2lkdGg6KCk9PkJjLGdl''@;'; put 'put ''dFNlbGVjdGlvbkVuZFBvc2l0aW9uOigpPT5XYmUsZ2V0U2VsZWN0aW9uVGV4dDooKT0+WWJlLGdldFN0eWxlOigpPT5uZWUsZ2V0VHJpbW1pbmdDb250YWluZXI6KCk9PmhPLGdldFdpbmRvd1Njcm9sbExlZnQ6KCk9PnhTLGdldFdpbmRvd1Njcm9sbFRvcDooKT0+Zk8saGFzQWNjZXNzVG9Q''@;'; put 'put ''YXJlbnRXaW5kb3c6KCk9PmhaZSxoYXNDbGFzczooKT0+dGwsaGFzSG9yaXpvbnRhbFNjcm9sbGJhcjooKT0+UWJlLGhhc1ZlcnRpY2FsU2Nyb2xsYmFyOigpPT5VYmUsaW5kZXg6KCk9PlpiZSxpbm5lckhlaWdodDooKT0+RXYsaW5uZXJXaWR0aDooKT0+TlosaXNDaGlsZE9mOigpPT5fdyxp''@;'; put 'put ''c0RldGFjaGVkOigpPT55M2UsaXNJbnB1dDooKT0+WlosaXNPdXRzaWRlSW5wdXQ6KCk9PkEzZSxpc1Zpc2libGU6KCk9PmNPLG1hdGNoZXNDU1NSdWxlczooKT0+ZFplLG9mZnNldDooKT0+anUsb3V0ZXJIZWlnaHQ6KCk9PkQxLG91dGVyV2lkdGg6KCk9PkUyLG92ZXJsYXlDb250YWluc0Vs''@;'; put 'put ''ZW1lbnQ6KCk9PkN3LHJlbW92ZUNsYXNzOigpPT5wbCxyZW1vdmVFdmVudDooKT0+Z1plLHJlbW92ZVRleHROb2RlczooKT0+cDNlLHJlc2V0Q3NzVHJhbnNmb3JtOigpPT5qWixzZWxlY3RFbGVtZW50SWZBbGxvd2VkOigpPT5KYmUsc2V0Q2FyZXRQb3NpdGlvbjooKT0+Vlosc2V0T3Zlcmxh''@;'; put 'put ''eVBvc2l0aW9uOigpPT5yZWV9KTt2YXIgcmU9e307TC5yKHJlKSxMLmQocmUse2N1cnJ5OigpPT5LYmUsY3VycnlSaWdodDooKT0+d1plLGRlYm91bmNlOigpPT53M2UsZmFzdENhbGw6KCk9PmllZSxpc0Z1bmN0aW9uOigpPT5VMixwYXJ0aWFsOigpPT5iM2UscGlwZTooKT0+eVplLHRocm90''@;'; put 'put ''dGxlOigpPT5YYmUsdGhyb3R0bGVBZnRlckhpdHM6KCk9PkFaZX0pO3ZhciBhZT17fTtMLnIoYWUpLEwuZChhZSx7S0VZX0NPREVTOigpPT5Rbyxpc0N0cmxLZXk6KCk9Pl9aZSxpc0N0cmxNZXRhS2V5OigpPT5xYmUsaXNGdW5jdGlvbktleTooKT0+XzNlLGlzS2V5OigpPT5kTyxpc1ByaW50''@;'; put 'put ''YWJsZUNoYXI6KCk9PiRiZX0pO3ZhciBZPXt9O0wucihZKSxMLmQoWSx7aXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6KCk9PlRTLGlzTGVmdENsaWNrOigpPT5vZWUsaXNSaWdodENsaWNrOigpPT5FdyxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246KCk9Pl84fSk7dmFyIFc9e307TC5y''@;'; put 'put ''KFcpLEwuZChXLHtfZGF0YVRvSFRNTDooKT0+TzNlLGh0bWxUb0dyaWRTZXR0aW5nczooKT0+ZF9lLGluc3RhbmNlVG9IVE1MOigpPT5MM2V9KTt2YXIgTj17fTtMLnIoTiksTC5kKE4se2lzTnVtZXJpYzooKT0+djQsaXNOdW1lcmljTGlrZTooKT0+cF9lLHJhbmdlRWFjaDooKT0+aWEscmFu''@;'; put 'put ''Z2VFYWNoUmV2ZXJzZTooKT0+c2VlLHZhbHVlQWNjb3JkaW5nUGVyY2VudDooKT0+UDNlfSk7dmFyIHRlPXt9O0wucih0ZSksTC5kKHRlLHtjZWxsTWV0aG9kTG9va3VwRmFjdG9yeTooKT0+cVosY291bnRGaXJzdFJvd0tleXM6KCk9PkpkZSxjcmVhdGVFbXB0eVNwcmVhZHNoZWV0RGF0YToo''@;'; put 'put ''KT0+V1FlLGNyZWF0ZVNwcmVhZHNoZWV0RGF0YTooKT0+elFlLGNyZWF0ZVNwcmVhZHNoZWV0T2JqZWN0RGF0YTooKT0+R1FlLGRhdGFSb3dUb0NoYW5nZXNBcnJheTooKT0+UWRlLGlzQXJyYXlPZkFycmF5czooKT0+ZWtlLGlzQXJyYXlPZk9iamVjdHM6KCk9PnRrZSxzcHJlYWRzaGVldENv''@;'; put 'put ''bHVtbkluZGV4OigpPT5aUWUsc3ByZWFkc2hlZXRDb2x1bW5MYWJlbDooKT0+emVlfSk7dmFyIEs9e307TC5yKEspLEwuZChLLHtDT05URVhUTUVOVV9JVEVNU19BRERfQ09NTUVOVDooKT0+ajRlLENPTlRFWFRNRU5VX0lURU1TX0FMSUdOTUVOVDooKT0+VzRlLENPTlRFWFRNRU5VX0lURU1T''@;'; put 'put ''X0FMSUdOTUVOVF9CT1RUT006KCk9PiQ0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfQ0VOVEVSOigpPT5VNGUsQ09OVEVYVE1FTlVfSVRFTVNfQUxJR05NRU5UX0pVU1RJRlk6KCk9Pko0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfTEVGVDooKT0+WTRlLENPTlRFWFRNRU5V''@;'; put 'put ''X0lURU1TX0FMSUdOTUVOVF9NSURETEU6KCk9Pks0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfUklHSFQ6KCk9PlE0ZSxDT05URVhUTUVOVV9JVEVNU19BTElHTk1FTlRfVE9QOigpPT5YNGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSUzooKT0+cTRlLENPTlRFWFRNRU5VX0lURU1T''@;'; put 'put ''X0JPUkRFUlNfQk9UVE9NOigpPT5ucGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSU19MRUZUOigpPT5ycGUsQ09OVEVYVE1FTlVfSVRFTVNfQk9SREVSU19SSUdIVDooKT0+dHBlLENPTlRFWFRNRU5VX0lURU1TX0JPUkRFUlNfVE9QOigpPT5lcGUsQ09OVEVYVE1FTlVfSVRFTVNfQ0xFQVJf''@;'; put 'put ''Q09MVU1OOigpPT5SNGUsQ09OVEVYVE1FTlVfSVRFTVNfQ09QWTooKT0+QjRlLENPTlRFWFRNRU5VX0lURU1TX0NVVDooKT0+UDRlLENPTlRFWFRNRU5VX0lURU1TX0VESVRfQ09NTUVOVDooKT0+WjRlLENPTlRFWFRNRU5VX0lURU1TX0ZSRUVaRV9DT0xVTU46KCk9PkY0ZSxDT05URVhUTUVO''@;'; put 'put ''VV9JVEVNU19ISURFX0NPTFVNTjooKT0+bHBlLENPTlRFWFRNRU5VX0lURU1TX0hJREVfUk9XOigpPT51cGUsQ09OVEVYVE1FTlVfSVRFTVNfSU5TRVJUX0xFRlQ6KCk9PkU0ZSxDT05URVhUTUVOVV9JVEVNU19JTlNFUlRfUklHSFQ6KCk9Png0ZSxDT05URVhUTUVOVV9JVEVNU19NRVJHRV9D''@;'; put 'put ''RUxMUzooKT0+TjRlLENPTlRFWFRNRU5VX0lURU1TX05FU1RFRF9ST1dTX0RFVEFDSF9DSElMRDooKT0+YXBlLENPTlRFWFRNRU5VX0lURU1TX05FU1RFRF9ST1dTX0lOU0VSVF9DSElMRDooKT0+b3BlLENPTlRFWFRNRU5VX0lURU1TX05PX0lURU1TOigpPT5rNGUsQ09OVEVYVE1FTlVfSVRF''@;'; put 'put ''TVNfUkVBRF9PTkxZOigpPT5PNGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVBRF9PTkxZX0NPTU1FTlQ6KCk9Pkc0ZSxDT05URVhUTUVOVV9JVEVNU19SRURPOigpPT5MNGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0JPUkRFUlM6KCk9PmlwZSxDT05URVhUTUVOVV9JVEVNU19SRU1PVkVfQ09M''@;'; put 'put ''VU1OOigpPT5JNGUsQ09OVEVYVE1FTlVfSVRFTVNfUkVNT1ZFX0NPTU1FTlQ6KCk9Pno0ZSxDT05URVhUTUVOVV9JVEVNU19SRU1PVkVfUk9XOigpPT5UNGUsQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0FCT1ZFOigpPT5TNGUsQ09OVEVYVE1FTlVfSVRFTVNfUk9XX0JFTE9XOigpPT5NNGUsQ09O''@;'; put 'put ''VEVYVE1FTlVfSVRFTVNfU0hPV19DT0xVTU46KCk9PnNwZSxDT05URVhUTUVOVV9JVEVNU19TSE9XX1JPVzooKT0+Y3BlLENPTlRFWFRNRU5VX0lURU1TX1VORE86KCk9PkQ0ZSxDT05URVhUTUVOVV9JVEVNU19VTkZSRUVaRV9DT0xVTU46KCk9Pkg0ZSxDT05URVhUTUVOVV9JVEVNU19VTk1F''@;'; put 'put ''UkdFX0NFTExTOigpPT5WNGUsQ09OVEVYVF9NRU5VX0lURU1TX05BTUVTUEFDRTooKT0+UmwsRklMVEVSU19CVVRUT05TX0NBTkNFTDooKT0+UHBlLEZJTFRFUlNfQlVUVE9OU19DTEVBUjooKT0+UnBlLEZJTFRFUlNfQlVUVE9OU19PSzooKT0+QnBlLEZJTFRFUlNfQlVUVE9OU19QTEFDRUhP''@;'; put 'put ''TERFUl9TRUFSQ0g6KCk9PkZwZSxGSUxURVJTX0JVVFRPTlNfUExBQ0VIT0xERVJfU0VDT05EX1ZBTFVFOigpPT5OcGUsRklMVEVSU19CVVRUT05TX1BMQUNFSE9MREVSX1ZBTFVFOigpPT5IcGUsRklMVEVSU19CVVRUT05TX1NFTEVDVF9BTEw6KCk9Pk9wZSxGSUxURVJTX0NPTkRJVElPTlNf''@;'; put 'put ''QUZURVI6KCk9PlNwZSxGSUxURVJTX0NPTkRJVElPTlNfQkVGT1JFOigpPT5NcGUsRklMVEVSU19DT05ESVRJT05TX0JFR0lOU19XSVRIOigpPT5ncGUsRklMVEVSU19DT05ESVRJT05TX0JFVFdFRU46KCk9PkNwZSxGSUxURVJTX0NPTkRJVElPTlNfQllfVkFMVUU6KCk9PkJYZSxGSUxURVJT''@;'; put 'put ''X0NPTkRJVElPTlNfQ09OVEFJTlM6KCk9PnZwZSxGSUxURVJTX0NPTkRJVElPTlNfRU1QVFk6KCk9PmZwZSxGSUxURVJTX0NPTkRJVElPTlNfRU5EU19XSVRIOigpPT5tcGUsRklMVEVSU19DT05ESVRJT05TX0VRVUFMOigpPT5kcGUsRklMVEVSU19DT05ESVRJT05TX0dSRUFURVJfVEhBTjoo''@;'; put 'put ''KT0+eXBlLEZJTFRFUlNfQ09ORElUSU9OU19HUkVBVEVSX1RIQU5fT1JfRVFVQUw6KCk9PndwZSxGSUxURVJTX0NPTkRJVElPTlNfTEVTU19USEFOOigpPT5icGUsRklMVEVSU19DT05ESVRJT05TX0xFU1NfVEhBTl9PUl9FUVVBTDooKT0+X3BlLEZJTFRFUlNfQ09ORElUSU9OU19OQU1FU1BB''@;'; put 'put ''Q0U6KCk9PnR1LEZJTFRFUlNfQ09ORElUSU9OU19OT05FOigpPT5ldGUsRklMVEVSU19DT05ESVRJT05TX05PVF9CRVRXRUVOOigpPT5rcGUsRklMVEVSU19DT05ESVRJT05TX05PVF9DT05UQUlOOigpPT5BcGUsRklMVEVSU19DT05ESVRJT05TX05PVF9FTVBUWTooKT0+aHBlLEZJTFRFUlNf''@;'; put 'put ''Q09ORElUSU9OU19OT1RfRVFVQUw6KCk9PnBwZSxGSUxURVJTX0NPTkRJVElPTlNfVE9EQVk6KCk9PkVwZSxGSUxURVJTX0NPTkRJVElPTlNfVE9NT1JST1c6KCk9PnhwZSxGSUxURVJTX0NPTkRJVElPTlNfWUVTVEVSREFZOigpPT5UcGUsRklMVEVSU19ESVZTX0ZJTFRFUl9CWV9DT05ESVRJ''@;'; put 'put ''T046KCk9PklwZSxGSUxURVJTX0RJVlNfRklMVEVSX0JZX1ZBTFVFOigpPT5EcGUsRklMVEVSU19MQUJFTFNfQ09OSlVOQ1RJT046KCk9PkxwZSxGSUxURVJTX0xBQkVMU19ESVNKVU5DVElPTjooKT0+dHRlLEZJTFRFUlNfTkFNRVNQQUNFOigpPT5sMyxGSUxURVJTX1ZBTFVFU19CTEFOS19D''@;'; put 'put ''RUxMUzooKT0+bnRlfSk7dmFyIEo9e307ZnVuY3Rpb24gc2UoZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGR9TC5yKEopLEwuZChKLHtnZXROb3JtYWxpemVkRGF0ZTooKT0+dk1lfSk7bGV0IG9lPSExO2NvbnN0IGNlPXtQcm9taXNlOnZvaWQgMCxzZXQgdXNlRGVwcmVjYXRlZFN5bmNo''@;'; put 'put ''cm9ub3VzRXJyb3JIYW5kbGluZyhkKXtpZihkKXtjb25zdCBnPW5ldyBFcnJvcjtjb25zb2xlLndhcm4oIkRFUFJFQ0FURUQhIFJ4SlMgd2FzIHNldCB0byB1c2UgZGVwcmVjYXRlZCBzeW5jaHJvbm91cyBlcnJvciBoYW5kbGluZyBiZWhhdmlvciBieSBjb2RlIGF0OiBcbiIrZy5zdGFjayl9''@;'; put 'put ''ZWxzZSBvZSYmY29uc29sZS5sb2coIlJ4SlM6IEJhY2sgdG8gYSBiZXR0ZXIgZXJyb3IgYmVoYXZpb3IuIFRoYW5rIHlvdS4gPDMiKTtvZT1kfSxnZXQgdXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZygpe3JldHVybiBvZX19O2Z1bmN0aW9uIGRlKGQpe3NldFRpbWVvdXQo''@;'; put 'put ''KCk9Pnt0aHJvdyBkfSwwKX1jb25zdCB2ZT17Y2xvc2VkOiEwLG5leHQoZCl7fSxlcnJvcihkKXtpZihjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKXRocm93IGQ7ZGUoZCl9LGNvbXBsZXRlKCl7fX0sQWU9QXJyYXkuaXNBcnJheXx8KGQ9PmQmJiJudW1iZXIiPT10''@;'; put 'put ''eXBlb2YgZC5sZW5ndGgpO2Z1bmN0aW9uIGtlKGQpe3JldHVybiBudWxsIT09ZCYmIm9iamVjdCI9PXR5cGVvZiBkfWNvbnN0IEllPSgoKT0+e2Z1bmN0aW9uIGQoZyl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPWc/YCR7Zy5sZW5ndGh9IGVycm9ycyBvY2N1cnJlZCBk''@;'; put 'put ''dXJpbmcgdW5zdWJzY3JpcHRpb246XG4ke2cubWFwKChoLHYpPT5gJHt2KzF9KSAke2gudG9TdHJpbmcoKX1gKS5qb2luKCJcbiAgIil9YDoiIix0aGlzLm5hbWU9IlVuc3Vic2NyaXB0aW9uRXJyb3IiLHRoaXMuZXJyb3JzPWcsdGhpc31yZXR1cm4gZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0''@;'; put 'put ''ZShFcnJvci5wcm90b3R5cGUpLGR9KSgpO2NsYXNzIFRle2NvbnN0cnVjdG9yKGcpe3RoaXMuY2xvc2VkPSExLHRoaXMuX3BhcmVudE9yUGFyZW50cz1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbnM9bnVsbCxnJiYodGhpcy5fY3RvclVuc3Vic2NyaWJlPSEwLHRoaXMuX3Vuc3Vic2NyaWJlPWcp''@;'; put 'put ''fXVuc3Vic2NyaWJlKCl7bGV0IGc7aWYodGhpcy5jbG9zZWQpcmV0dXJuO2xldHtfcGFyZW50T3JQYXJlbnRzOmgsX2N0b3JVbnN1YnNjcmliZTp2LF91bnN1YnNjcmliZTp5LF9zdWJzY3JpcHRpb25zOkN9PXRoaXM7aWYodGhpcy5jbG9zZWQ9ITAsdGhpcy5fcGFyZW50T3JQYXJlbnRzPW51''@;'; put 'put ''bGwsdGhpcy5fc3Vic2NyaXB0aW9ucz1udWxsLGggaW5zdGFuY2VvZiBUZSloLnJlbW92ZSh0aGlzKTtlbHNlIGlmKG51bGwhPT1oKWZvcihsZXQgST0wO0k8aC5sZW5ndGg7KytJKWhbSV0ucmVtb3ZlKHRoaXMpO2lmKHNlKHkpKXt2JiYodGhpcy5fdW5zdWJzY3JpYmU9dm9pZCAwKTt0cnl7''@;'; put 'put ''eS5jYWxsKHRoaXMpfWNhdGNoKEkpe2c9SSBpbnN0YW5jZW9mIEllP01lKEkuZXJyb3JzKTpbSV19fWlmKEFlKEMpKXtsZXQgST0tMSxaPUMubGVuZ3RoO2Zvcig7KytJPFo7KXtjb25zdCB1ZT1DW0ldO2lmKGtlKHVlKSl0cnl7dWUudW5zdWJzY3JpYmUoKX1jYXRjaChfZSl7Zz1nfHxbXSxf''@;'; put 'put ''ZSBpbnN0YW5jZW9mIEllP2c9Zy5jb25jYXQoTWUoX2UuZXJyb3JzKSk6Zy5wdXNoKF9lKX19fWlmKGcpdGhyb3cgbmV3IEllKGcpfWFkZChnKXtsZXQgaD1nO2lmKCFnKXJldHVybiBUZS5FTVBUWTtzd2l0Y2godHlwZW9mIGcpe2Nhc2UiZnVuY3Rpb24iOmg9bmV3IFRlKGcpO2Nhc2Uib2Jq''@;'; put 'put ''ZWN0IjppZihoPT09dGhpc3x8aC5jbG9zZWR8fCJmdW5jdGlvbiIhPXR5cGVvZiBoLnVuc3Vic2NyaWJlKXJldHVybiBoO2lmKHRoaXMuY2xvc2VkKXJldHVybiBoLnVuc3Vic2NyaWJlKCksaDtpZighKGggaW5zdGFuY2VvZiBUZSkpe2NvbnN0IEM9aDtoPW5ldyBUZSxoLl9zdWJzY3JpcHRp''@;'; put 'put ''b25zPVtDXX1icmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIHRlYXJkb3duICIrZysiIGFkZGVkIHRvIFN1YnNjcmlwdGlvbi4iKX1sZXR7X3BhcmVudE9yUGFyZW50czp2fT1oO2lmKG51bGw9PT12KWguX3BhcmVudE9yUGFyZW50cz10aGlzO2Vsc2UgaWYodiBp''@;'; put 'put ''bnN0YW5jZW9mIFRlKXtpZih2PT09dGhpcylyZXR1cm4gaDtoLl9wYXJlbnRPclBhcmVudHM9W3YsdGhpc119ZWxzZXtpZigtMSE9PXYuaW5kZXhPZih0aGlzKSlyZXR1cm4gaDt2LnB1c2godGhpcyl9Y29uc3QgeT10aGlzLl9zdWJzY3JpcHRpb25zO3JldHVybiBudWxsPT09eT90aGlzLl9z''@;'; put 'put ''dWJzY3JpcHRpb25zPVtoXTp5LnB1c2goaCksaH1yZW1vdmUoZyl7Y29uc3QgaD10aGlzLl9zdWJzY3JpcHRpb25zO2lmKGgpe2NvbnN0IHY9aC5pbmRleE9mKGcpOy0xIT09diYmaC5zcGxpY2UodiwxKX19fXZhciBkO2Z1bmN0aW9uIE1lKGQpe3JldHVybiBkLnJlZHVjZSgoZyxoKT0+Zy5j''@;'; put 'put ''b25jYXQoaCBpbnN0YW5jZW9mIEllP2guZXJyb3JzOmgpLFtdKX1UZS5FTVBUWT0oKGQ9bmV3IFRlKS5jbG9zZWQ9ITAsZCk7Y29uc3QgaGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbD9TeW1ib2woInJ4U3Vic2NyaWJlciIpOiJAQHJ4U3Vic2NyaWJlcl8iK01hdGgucmFuZG9tKCk7Y2xh''@;'; put 'put ''c3MgeiBleHRlbmRzIFRle2NvbnN0cnVjdG9yKGcsaCx2KXtzd2l0Y2goc3VwZXIoKSx0aGlzLnN5bmNFcnJvclZhbHVlPW51bGwsdGhpcy5zeW5jRXJyb3JUaHJvd249ITEsdGhpcy5zeW5jRXJyb3JUaHJvd2FibGU9ITEsdGhpcy5pc1N0b3BwZWQ9ITEsYXJndW1lbnRzLmxlbmd0aCl7Y2Fz''@;'; put 'put ''ZSAwOnRoaXMuZGVzdGluYXRpb249dmU7YnJlYWs7Y2FzZSAxOmlmKCFnKXt0aGlzLmRlc3RpbmF0aW9uPXZlO2JyZWFrfWlmKCJvYmplY3QiPT10eXBlb2YgZyl7ZyBpbnN0YW5jZW9mIHo/KHRoaXMuc3luY0Vycm9yVGhyb3dhYmxlPWcuc3luY0Vycm9yVGhyb3dhYmxlLHRoaXMuZGVzdGlu''@;'; put 'put ''YXRpb249ZyxnLmFkZCh0aGlzKSk6KHRoaXMuc3luY0Vycm9yVGhyb3dhYmxlPSEwLHRoaXMuZGVzdGluYXRpb249bmV3IGVlKHRoaXMsZykpO2JyZWFrfWRlZmF1bHQ6dGhpcy5zeW5jRXJyb3JUaHJvd2FibGU9ITAsdGhpcy5kZXN0aW5hdGlvbj1uZXcgZWUodGhpcyxnLGgsdil9fVtoZV0o''@;'; put 'put ''KXtyZXR1cm4gdGhpc31zdGF0aWMgY3JlYXRlKGcsaCx2KXtjb25zdCB5PW5ldyB6KGcsaCx2KTtyZXR1cm4geS5zeW5jRXJyb3JUaHJvd2FibGU9ITEseX1uZXh0KGcpe3RoaXMuaXNTdG9wcGVkfHx0aGlzLl9uZXh0KGcpfWVycm9yKGcpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5pc1N0b3Bw''@;'; put 'put ''ZWQ9ITAsdGhpcy5fZXJyb3IoZykpfWNvbXBsZXRlKCl7dGhpcy5pc1N0b3BwZWR8fCh0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLl9jb21wbGV0ZSgpKX11bnN1YnNjcmliZSgpe3RoaXMuY2xvc2VkfHwodGhpcy5pc1N0b3BwZWQ9ITAsc3VwZXIudW5zdWJzY3JpYmUoKSl9X25leHQoZyl7dGhp''@;'; put 'put ''cy5kZXN0aW5hdGlvbi5uZXh0KGcpfV9lcnJvcihnKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpLHRoaXMudW5zdWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfV91bnN1YnNjcmliZUFuZFJlY3ljbGUoKXtjb25z''@;'; put 'put ''dHtfcGFyZW50T3JQYXJlbnRzOmd9PXRoaXM7cmV0dXJuIHRoaXMuX3BhcmVudE9yUGFyZW50cz1udWxsLHRoaXMudW5zdWJzY3JpYmUoKSx0aGlzLmNsb3NlZD0hMSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLl9wYXJlbnRPclBhcmVudHM9Zyx0aGlzfX1jbGFzcyBlZSBleHRlbmRzIHp7Y29u''@;'; put 'put ''c3RydWN0b3IoZyxoLHYseSl7c3VwZXIoKSx0aGlzLl9wYXJlbnRTdWJzY3JpYmVyPWc7bGV0IEMsST10aGlzO3NlKGgpP0M9aDpoJiYoQz1oLm5leHQsdj1oLmVycm9yLHk9aC5jb21wbGV0ZSxoIT09dmUmJihJPU9iamVjdC5jcmVhdGUoaCksc2UoSS51bnN1YnNjcmliZSkmJnRoaXMuYWRk''@;'; put 'put ''KEkudW5zdWJzY3JpYmUuYmluZChJKSksSS51bnN1YnNjcmliZT10aGlzLnVuc3Vic2NyaWJlLmJpbmQodGhpcykpKSx0aGlzLl9jb250ZXh0PUksdGhpcy5fbmV4dD1DLHRoaXMuX2Vycm9yPXYsdGhpcy5fY29tcGxldGU9eX1uZXh0KGcpe2lmKCF0aGlzLmlzU3RvcHBlZCYmdGhpcy5fbmV4''@;'; put 'put ''dCl7Y29uc3R7X3BhcmVudFN1YnNjcmliZXI6aH09dGhpcztjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nJiZoLnN5bmNFcnJvclRocm93YWJsZT90aGlzLl9fdHJ5T3JTZXRFcnJvcihoLHRoaXMuX25leHQsZykmJnRoaXMudW5zdWJzY3JpYmUoKTp0aGlzLl9fdHJ5''@;'; put 'put ''T3JVbnN1Yih0aGlzLl9uZXh0LGcpfX1lcnJvcihnKXtpZighdGhpcy5pc1N0b3BwZWQpe2NvbnN0e19wYXJlbnRTdWJzY3JpYmVyOmh9PXRoaXMse3VzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc6dn09Y2U7aWYodGhpcy5fZXJyb3IpdiYmaC5zeW5jRXJyb3JUaHJvd2Fi''@;'; put 'put ''bGU/KHRoaXMuX190cnlPclNldEVycm9yKGgsdGhpcy5fZXJyb3IsZyksdGhpcy51bnN1YnNjcmliZSgpKToodGhpcy5fX3RyeU9yVW5zdWIodGhpcy5fZXJyb3IsZyksdGhpcy51bnN1YnNjcmliZSgpKTtlbHNlIGlmKGguc3luY0Vycm9yVGhyb3dhYmxlKXY/KGguc3luY0Vycm9yVmFsdWU9''@;'; put 'put ''ZyxoLnN5bmNFcnJvclRocm93bj0hMCk6ZGUoZyksdGhpcy51bnN1YnNjcmliZSgpO2Vsc2V7aWYodGhpcy51bnN1YnNjcmliZSgpLHYpdGhyb3cgZztkZShnKX19fWNvbXBsZXRlKCl7aWYoIXRoaXMuaXNTdG9wcGVkKXtjb25zdHtfcGFyZW50U3Vic2NyaWJlcjpnfT10aGlzO2lmKHRoaXMu''@;'; put 'put ''X2NvbXBsZXRlKXtjb25zdCBoPSgpPT50aGlzLl9jb21wbGV0ZS5jYWxsKHRoaXMuX2NvbnRleHQpO2NlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJmcuc3luY0Vycm9yVGhyb3dhYmxlPyh0aGlzLl9fdHJ5T3JTZXRFcnJvcihnLGgpLHRoaXMudW5zdWJzY3JpYmUo''@;'; put 'put ''KSk6KHRoaXMuX190cnlPclVuc3ViKGgpLHRoaXMudW5zdWJzY3JpYmUoKSl9ZWxzZSB0aGlzLnVuc3Vic2NyaWJlKCl9fV9fdHJ5T3JVbnN1YihnLGgpe3RyeXtnLmNhbGwodGhpcy5fY29udGV4dCxoKX1jYXRjaCh2KXtpZih0aGlzLnVuc3Vic2NyaWJlKCksY2UudXNlRGVwcmVjYXRlZFN5''@;'; put 'put ''bmNocm9ub3VzRXJyb3JIYW5kbGluZyl0aHJvdyB2O2RlKHYpfX1fX3RyeU9yU2V0RXJyb3IoZyxoLHYpe2lmKCFjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nKXRocm93IG5ldyBFcnJvcigiYmFkIGNhbGwiKTt0cnl7aC5jYWxsKHRoaXMuX2NvbnRleHQsdil9Y2F0''@;'; put 'put ''Y2goeSl7cmV0dXJuIGNlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmc/KGcuc3luY0Vycm9yVmFsdWU9eSxnLnN5bmNFcnJvclRocm93bj0hMCwhMCk6KGRlKHkpLCEwKX1yZXR1cm4hMX1fdW5zdWJzY3JpYmUoKXtjb25zdHtfcGFyZW50U3Vic2NyaWJlcjpnfT10aGlz''@;'; put 'put ''O3RoaXMuX2NvbnRleHQ9bnVsbCx0aGlzLl9wYXJlbnRTdWJzY3JpYmVyPW51bGwsZy51bnN1YnNjcmliZSgpfX1jb25zdCBQPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5vYnNlcnZhYmxlfHwiQEBvYnNlcnZhYmxlIjtmdW5jdGlvbiBWKGQpe3JldHVybiBkfWZ1bmN0aW9u''@;'; put 'put ''IFMoZCl7cmV0dXJuIDA9PT1kLmxlbmd0aD9WOjE9PT1kLmxlbmd0aD9kWzBdOmZ1bmN0aW9uKGgpe3JldHVybiBkLnJlZHVjZSgodix5KT0+eSh2KSxoKX19bGV0IEY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9pc1NjYWxhcj0hMSxoJiYodGhpcy5fc3Vic2NyaWJlPWgp''@;'; put 'put ''fWxpZnQoaCl7Y29uc3Qgdj1uZXcgZDtyZXR1cm4gdi5zb3VyY2U9dGhpcyx2Lm9wZXJhdG9yPWgsdn1zdWJzY3JpYmUoaCx2LHkpe2NvbnN0e29wZXJhdG9yOkN9PXRoaXMsST1mdW5jdGlvbiB4KGQsZyxoKXtpZihkKXtpZihkIGluc3RhbmNlb2YgeilyZXR1cm4gZDtpZihkW2hlXSlyZXR1''@;'; put 'put ''cm4gZFtoZV0oKX1yZXR1cm4gZHx8Z3x8aD9uZXcgeihkLGcsaCk6bmV3IHoodmUpfShoLHYseSk7aWYoSS5hZGQoQz9DLmNhbGwoSSx0aGlzLnNvdXJjZSk6dGhpcy5zb3VyY2V8fGNlLnVzZURlcHJlY2F0ZWRTeW5jaHJvbm91c0Vycm9ySGFuZGxpbmcmJiFJLnN5bmNFcnJvclRocm93YWJs''@;'; put 'put ''ZT90aGlzLl9zdWJzY3JpYmUoSSk6dGhpcy5fdHJ5U3Vic2NyaWJlKEkpKSxjZS51c2VEZXByZWNhdGVkU3luY2hyb25vdXNFcnJvckhhbmRsaW5nJiZJLnN5bmNFcnJvclRocm93YWJsZSYmKEkuc3luY0Vycm9yVGhyb3dhYmxlPSExLEkuc3luY0Vycm9yVGhyb3duKSl0aHJvdyBJLnN5bmNF''@;'; put 'put ''cnJvclZhbHVlO3JldHVybiBJfV90cnlTdWJzY3JpYmUoaCl7dHJ5e3JldHVybiB0aGlzLl9zdWJzY3JpYmUoaCl9Y2F0Y2godil7Y2UudXNlRGVwcmVjYXRlZFN5bmNocm9ub3VzRXJyb3JIYW5kbGluZyYmKGguc3luY0Vycm9yVGhyb3duPSEwLGguc3luY0Vycm9yVmFsdWU9diksZnVuY3Rp''@;'; put 'put ''b24gbmUoZCl7Zm9yKDtkOyl7Y29uc3R7Y2xvc2VkOmcsZGVzdGluYXRpb246aCxpc1N0b3BwZWQ6dn09ZDtpZihnfHx2KXJldHVybiExO2Q9aCYmaCBpbnN0YW5jZW9mIHo/aDpudWxsfXJldHVybiEwfShoKT9oLmVycm9yKHYpOmNvbnNvbGUud2Fybih2KX19Zm9yRWFjaChoLHYpe3JldHVy''@;'; put 'put ''biBuZXcodj15ZSh2KSkoKHksQyk9PntsZXQgSTtJPXRoaXMuc3Vic2NyaWJlKFo9Pnt0cnl7aChaKX1jYXRjaCh1ZSl7Qyh1ZSksSSYmSS51bnN1YnNjcmliZSgpfX0sQyx5KX0pfV9zdWJzY3JpYmUoaCl7Y29uc3R7c291cmNlOnZ9PXRoaXM7cmV0dXJuIHYmJnYuc3Vic2NyaWJlKGgpfVtQ''@;'; put 'put ''XSgpe3JldHVybiB0aGlzfXBpcGUoLi4uaCl7cmV0dXJuIDA9PT1oLmxlbmd0aD90aGlzOlMoaCkodGhpcyl9dG9Qcm9taXNlKGgpe3JldHVybiBuZXcoaD15ZShoKSkoKHYseSk9PntsZXQgQzt0aGlzLnN1YnNjcmliZShJPT5DPUksST0+eShJKSwoKT0+dihDKSl9KX19cmV0dXJuIGQuY3Jl''@;'; put 'put ''YXRlPWc9Pm5ldyBkKGcpLGR9KSgpO2Z1bmN0aW9uIHllKGQpe2lmKGR8fChkPWNlLlByb21pc2V8fFByb21pc2UpLCFkKXRocm93IG5ldyBFcnJvcigibm8gUHJvbWlzZSBpbXBsIGZvdW5kIik7cmV0dXJuIGR9Y29uc3QgRGU9KCgpPT57ZnVuY3Rpb24gZCgpe3JldHVybiBFcnJvci5jYWxs''@;'; put 'put ''KHRoaXMpLHRoaXMubWVzc2FnZT0ib2JqZWN0IHVuc3Vic2NyaWJlZCIsdGhpcy5uYW1lPSJPYmplY3RVbnN1YnNjcmliZWRFcnJvciIsdGhpc31yZXR1cm4gZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLGR9KSgpO2NsYXNzIFBlIGV4dGVuZHMgVGV7Y29uc3Ry''@;'; put 'put ''dWN0b3IoZyxoKXtzdXBlcigpLHRoaXMuc3ViamVjdD1nLHRoaXMuc3Vic2NyaWJlcj1oLHRoaXMuY2xvc2VkPSExfXVuc3Vic2NyaWJlKCl7aWYodGhpcy5jbG9zZWQpcmV0dXJuO3RoaXMuY2xvc2VkPSEwO2NvbnN0IGc9dGhpcy5zdWJqZWN0LGg9Zy5vYnNlcnZlcnM7aWYodGhpcy5zdWJq''@;'; put 'put ''ZWN0PW51bGwsIWh8fDA9PT1oLmxlbmd0aHx8Zy5pc1N0b3BwZWR8fGcuY2xvc2VkKXJldHVybjtjb25zdCB2PWguaW5kZXhPZih0aGlzLnN1YnNjcmliZXIpOy0xIT09diYmaC5zcGxpY2UodiwxKX19Y2xhc3MgUWUgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcpe3N1cGVyKGcpLHRoaXMuZGVz''@;'; put 'put ''dGluYXRpb249Z319bGV0ICRlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLm9ic2VydmVycz1bXSx0aGlzLmNsb3NlZD0hMSx0aGlzLmlzU3RvcHBlZD0hMSx0aGlzLmhhc0Vycm9yPSExLHRoaXMudGhyb3duRXJyb3I9bnVsbH1baGVdKCl7cmV0''@;'; put 'put ''dXJuIG5ldyBRZSh0aGlzKX1saWZ0KGgpe2NvbnN0IHY9bmV3IGd0KHRoaXMsdGhpcyk7cmV0dXJuIHYub3BlcmF0b3I9aCx2fW5leHQoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO2lmKCF0aGlzLmlzU3RvcHBlZCl7Y29uc3R7b2JzZXJ2ZXJzOnZ9PXRoaXMseT12Lmxlbmd0aCxD''@;'; put 'put ''PXYuc2xpY2UoKTtmb3IobGV0IEk9MDtJPHk7SSsrKUNbSV0ubmV4dChoKX19ZXJyb3IoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3RoaXMuaGFzRXJyb3I9ITAsdGhpcy50aHJvd25FcnJvcj1oLHRoaXMuaXNTdG9wcGVkPSEwO2NvbnN0e29ic2VydmVyczp2fT10aGlzLHk9di5s''@;'; put 'put ''ZW5ndGgsQz12LnNsaWNlKCk7Zm9yKGxldCBJPTA7STx5O0krKylDW0ldLmVycm9yKGgpO3RoaXMub2JzZXJ2ZXJzLmxlbmd0aD0wfWNvbXBsZXRlKCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3RoaXMuaXNTdG9wcGVkPSEwO2NvbnN0e29ic2VydmVyczpofT10aGlzLHY9aC5sZW5n''@;'; put 'put ''dGgseT1oLnNsaWNlKCk7Zm9yKGxldCBDPTA7Qzx2O0MrKyl5W0NdLmNvbXBsZXRlKCk7dGhpcy5vYnNlcnZlcnMubGVuZ3RoPTB9dW5zdWJzY3JpYmUoKXt0aGlzLmlzU3RvcHBlZD0hMCx0aGlzLmNsb3NlZD0hMCx0aGlzLm9ic2VydmVycz1udWxsfV90cnlTdWJzY3JpYmUoaCl7aWYodGhp''@;'; put 'put ''cy5jbG9zZWQpdGhyb3cgbmV3IERlO3JldHVybiBzdXBlci5fdHJ5U3Vic2NyaWJlKGgpfV9zdWJzY3JpYmUoaCl7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO3JldHVybiB0aGlzLmhhc0Vycm9yPyhoLmVycm9yKHRoaXMudGhyb3duRXJyb3IpLFRlLkVNUFRZKTp0aGlzLmlzU3RvcHBl''@;'; put 'put ''ZD8oaC5jb21wbGV0ZSgpLFRlLkVNUFRZKToodGhpcy5vYnNlcnZlcnMucHVzaChoKSxuZXcgUGUodGhpcyxoKSl9YXNPYnNlcnZhYmxlKCl7Y29uc3QgaD1uZXcgRjtyZXR1cm4gaC5zb3VyY2U9dGhpcyxofX1yZXR1cm4gZC5jcmVhdGU9KGcsaCk9Pm5ldyBndChnLGgpLGR9KSgpO2NsYXNz''@;'; put 'put ''IGd0IGV4dGVuZHMgJGV7Y29uc3RydWN0b3IoZyxoKXtzdXBlcigpLHRoaXMuZGVzdGluYXRpb249Zyx0aGlzLnNvdXJjZT1ofW5leHQoZyl7Y29uc3R7ZGVzdGluYXRpb246aH09dGhpcztoJiZoLm5leHQmJmgubmV4dChnKX1lcnJvcihnKXtjb25zdHtkZXN0aW5hdGlvbjpofT10aGlzO2gm''@;'; put 'put ''JmguZXJyb3ImJnRoaXMuZGVzdGluYXRpb24uZXJyb3IoZyl9Y29tcGxldGUoKXtjb25zdHtkZXN0aW5hdGlvbjpnfT10aGlzO2cmJmcuY29tcGxldGUmJnRoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1fc3Vic2NyaWJlKGcpe2NvbnN0e3NvdXJjZTpofT10aGlzO3JldHVybiBoP3RoaXMu''@;'; put 'put ''c291cmNlLnN1YnNjcmliZShnKTpUZS5FTVBUWX19ZnVuY3Rpb24gd3QoZCl7cmV0dXJuIGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnNjaGVkdWxlfWZ1bmN0aW9uIG10KGQsZyl7cmV0dXJuIGZ1bmN0aW9uKHYpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; put 'put ''ImFyZ3VtZW50IGlzIG5vdCBhIGZ1bmN0aW9uLiBBcmUgeW91IGxvb2tpbmcgZm9yIGBtYXBUbygpYD8iKTtyZXR1cm4gdi5saWZ0KG5ldyB2dChkLGcpKX19Y2xhc3MgdnR7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnByb2plY3Q9Zyx0aGlzLnRoaXNBcmc9aH1jYWxsKGcsaCl7cmV0dXJuIGgu''@;'; put 'put ''c3Vic2NyaWJlKG5ldyBBdChnLHRoaXMucHJvamVjdCx0aGlzLnRoaXNBcmcpKX19Y2xhc3MgQXQgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLnByb2plY3Q9aCx0aGlzLmNvdW50PTAsdGhpcy50aGlzQXJnPXZ8fHRoaXN9X25leHQoZyl7bGV0IGg7dHJ5e2g9''@;'; put 'put ''dGhpcy5wcm9qZWN0LmNhbGwodGhpcy50aGlzQXJnLGcsdGhpcy5jb3VudCsrKX1jYXRjaCh2KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfXRoaXMuZGVzdGluYXRpb24ubmV4dChoKX19Y29uc3QgaHQ9ZD0+Zz0+e2ZvcihsZXQgaD0wLHY9ZC5sZW5ndGg7aDx2JiYh''@;'; put 'put ''Zy5jbG9zZWQ7aCsrKWcubmV4dChkW2hdKTtnLmNvbXBsZXRlKCl9LF90PWZ1bmN0aW9uIG9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yP1N5bWJvbC5pdGVyYXRvcjoiQEBpdGVyYXRvciJ9KCksTHQ9ZD0+ZCYmIm51bWJlciI9PXR5cGVvZiBk''@;'; put 'put ''Lmxlbmd0aCYmImZ1bmN0aW9uIiE9dHlwZW9mIGQ7ZnVuY3Rpb24gQ3QoZCl7cmV0dXJuISFkJiYiZnVuY3Rpb24iIT10eXBlb2YgZC5zdWJzY3JpYmUmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnRoZW59Y29uc3QgZnQ9ZD0+e2lmKGQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkW1BdKXJldHVybihk''@;'; put 'put ''PT5nPT57Y29uc3QgaD1kW1BdKCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGguc3Vic2NyaWJlKXRocm93IG5ldyBUeXBlRXJyb3IoIlByb3ZpZGVkIG9iamVjdCBkb2VzIG5vdCBjb3JyZWN0bHkgaW1wbGVtZW50IFN5bWJvbC5vYnNlcnZhYmxlIik7cmV0dXJuIGguc3Vic2NyaWJlKGcpfSko''@;'; put 'put ''ZCk7aWYoTHQoZCkpcmV0dXJuIGh0KGQpO2lmKEN0KGQpKXJldHVybihkPT5nPT4oZC50aGVuKGg9PntnLmNsb3NlZHx8KGcubmV4dChoKSxnLmNvbXBsZXRlKCkpfSxoPT5nLmVycm9yKGgpKS50aGVuKG51bGwsZGUpLGcpKShkKTtpZihkJiYiZnVuY3Rpb24iPT10eXBlb2YgZFtfdF0pcmV0''@;'; put 'put ''dXJuKGQ9Pmc9Pntjb25zdCBoPWRbX3RdKCk7Zm9yKDs7KXtsZXQgdjt0cnl7dj1oLm5leHQoKX1jYXRjaCh5KXtyZXR1cm4gZy5lcnJvcih5KSxnfWlmKHYuZG9uZSl7Zy5jb21wbGV0ZSgpO2JyZWFrfWlmKGcubmV4dCh2LnZhbHVlKSxnLmNsb3NlZClicmVha31yZXR1cm4iZnVuY3Rpb24i''@;'; put 'put ''PT10eXBlb2YgaC5yZXR1cm4mJmcuYWRkKCgpPT57aC5yZXR1cm4mJmgucmV0dXJuKCl9KSxnfSkoZCk7e2NvbnN0IGg9YFlvdSBwcm92aWRlZCAke2tlKGQpPyJhbiBpbnZhbGlkIG9iamVjdCI6YCcke2R9J2B9IHdoZXJlIGEgc3RyZWFtIHdhcyBleHBlY3RlZC4gWW91IGNhbiBwcm92aWRl''@;'; put 'put ''IGFuIE9ic2VydmFibGUsIFByb21pc2UsIEFycmF5LCBvciBJdGVyYWJsZS5gO3Rocm93IG5ldyBUeXBlRXJyb3IoaCl9fTtmdW5jdGlvbiBVZShkLGcpe3JldHVybiBuZXcgRihoPT57Y29uc3Qgdj1uZXcgVGU7bGV0IHk9MDtyZXR1cm4gdi5hZGQoZy5zY2hlZHVsZShmdW5jdGlvbigpe3kh''@;'; put 'put ''PT1kLmxlbmd0aD8oaC5uZXh0KGRbeSsrXSksaC5jbG9zZWR8fHYuYWRkKHRoaXMuc2NoZWR1bGUoKSkpOmguY29tcGxldGUoKX0pKSx2fSl9ZnVuY3Rpb24gZG4oZCxnKXtyZXR1cm4gZz9mdW5jdGlvbiBnbihkLGcpe2lmKG51bGwhPWQpe2lmKGZ1bmN0aW9uIGp0KGQpe3JldHVybiBkJiYi''@;'; put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgZFtQXX0oZCkpcmV0dXJuIGZ1bmN0aW9uIEh0KGQsZyl7cmV0dXJuIG5ldyBGKGg9Pntjb25zdCB2PW5ldyBUZTtyZXR1cm4gdi5hZGQoZy5zY2hlZHVsZSgoKT0+e2NvbnN0IHk9ZFtQXSgpO3YuYWRkKHkuc3Vic2NyaWJlKHtuZXh0KEMpe3YuYWRkKGcuc2No''@;'; put 'put ''ZWR1bGUoKCk9PmgubmV4dChDKSkpfSxlcnJvcihDKXt2LmFkZChnLnNjaGVkdWxlKCgpPT5oLmVycm9yKEMpKSl9LGNvbXBsZXRlKCl7di5hZGQoZy5zY2hlZHVsZSgoKT0+aC5jb21wbGV0ZSgpKSl9fSkpfSkpLHZ9KX0oZCxnKTtpZihDdChkKSlyZXR1cm4gZnVuY3Rpb24gR2UoZCxnKXty''@;'; put 'put ''ZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9bmV3IFRlO3JldHVybiB2LmFkZChnLnNjaGVkdWxlKCgpPT5kLnRoZW4oeT0+e3YuYWRkKGcuc2NoZWR1bGUoKCk9PntoLm5leHQoeSksdi5hZGQoZy5zY2hlZHVsZSgoKT0+aC5jb21wbGV0ZSgpKSl9KSl9LHk9Pnt2LmFkZChnLnNjaGVkdWxlKCgp''@;'; put 'put ''PT5oLmVycm9yKHkpKSl9KSkpLHZ9KX0oZCxnKTtpZihMdChkKSlyZXR1cm4gVWUoZCxnKTtpZihmdW5jdGlvbiBKdChkKXtyZXR1cm4gZCYmImZ1bmN0aW9uIj09dHlwZW9mIGRbX3RdfShkKXx8InN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBmdW5jdGlvbiB5dChkLGcpe2lmKCFkKXRocm93''@;'; put 'put ''IG5ldyBFcnJvcigiSXRlcmFibGUgY2Fubm90IGJlIG51bGwiKTtyZXR1cm4gbmV3IEYoaD0+e2NvbnN0IHY9bmV3IFRlO2xldCB5O3JldHVybiB2LmFkZCgoKT0+e3kmJiJmdW5jdGlvbiI9PXR5cGVvZiB5LnJldHVybiYmeS5yZXR1cm4oKX0pLHYuYWRkKGcuc2NoZWR1bGUoKCk9Pnt5PWRb''@;'; put 'put ''X3RdKCksdi5hZGQoZy5zY2hlZHVsZShmdW5jdGlvbigpe2lmKGguY2xvc2VkKXJldHVybjtsZXQgQyxJO3RyeXtjb25zdCBaPXkubmV4dCgpO0M9Wi52YWx1ZSxJPVouZG9uZX1jYXRjaChaKXtyZXR1cm4gdm9pZCBoLmVycm9yKFopfUk/aC5jb21wbGV0ZSgpOihoLm5leHQoQyksdGhpcy5z''@;'; put 'put ''Y2hlZHVsZSgpKX0pKX0pKSx2fSl9KGQsZyl9dGhyb3cgbmV3IFR5cGVFcnJvcigobnVsbCE9PWQmJnR5cGVvZiBkfHxkKSsiIGlzIG5vdCBvYnNlcnZhYmxlIil9KGQsZyk6ZCBpbnN0YW5jZW9mIEY/ZDpuZXcgRihmdChkKSl9Y2xhc3MgeW4gZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcpe3N1''@;'; put 'put ''cGVyKCksdGhpcy5wYXJlbnQ9Z31fbmV4dChnKXt0aGlzLnBhcmVudC5ub3RpZnlOZXh0KGcpfV9lcnJvcihnKXt0aGlzLnBhcmVudC5ub3RpZnlFcnJvcihnKSx0aGlzLnVuc3Vic2NyaWJlKCl9X2NvbXBsZXRlKCl7dGhpcy5wYXJlbnQubm90aWZ5Q29tcGxldGUoKSx0aGlzLnVuc3Vic2Ny''@;'; put 'put ''aWJlKCl9fWNsYXNzIE5uIGV4dGVuZHMgentub3RpZnlOZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dChnKX1ub3RpZnlFcnJvcihnKXt0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpfW5vdGlmeUNvbXBsZXRlKCl7dGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfX1mdW5jdGlvbiBlcihk''@;'; put 'put ''LGcpe2lmKGcuY2xvc2VkKXJldHVybjtpZihkIGluc3RhbmNlb2YgRilyZXR1cm4gZC5zdWJzY3JpYmUoZyk7bGV0IGg7dHJ5e2g9ZnQoZCkoZyl9Y2F0Y2godil7Zy5lcnJvcih2KX1yZXR1cm4gaH1mdW5jdGlvbiBzcihkLGcsaD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkpe3JldHVybiJm''@;'; put 'put ''dW5jdGlvbiI9PXR5cGVvZiBnP3Y9PnYucGlwZShzcigoeSxDKT0+ZG4oZCh5LEMpKS5waXBlKG10KChJLFopPT5nKHksSSxDLFopKSksaCkpOigibnVtYmVyIj09dHlwZW9mIGcmJihoPWcpLHY9PnYubGlmdChuZXcgWG4oZCxoKSkpfWNsYXNzIFhue2NvbnN0cnVjdG9yKGcsaD1OdW1iZXIu''@;'; put 'put ''UE9TSVRJVkVfSU5GSU5JVFkpe3RoaXMucHJvamVjdD1nLHRoaXMuY29uY3VycmVudD1ofWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IEZyKGcsdGhpcy5wcm9qZWN0LHRoaXMuY29uY3VycmVudCkpfX1jbGFzcyBGciBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcsaCx2PU51bWJl''@;'; put 'put ''ci5QT1NJVElWRV9JTkZJTklUWSl7c3VwZXIoZyksdGhpcy5wcm9qZWN0PWgsdGhpcy5jb25jdXJyZW50PXYsdGhpcy5oYXNDb21wbGV0ZWQ9ITEsdGhpcy5idWZmZXI9W10sdGhpcy5hY3RpdmU9MCx0aGlzLmluZGV4PTB9X25leHQoZyl7dGhpcy5hY3RpdmU8dGhpcy5jb25jdXJyZW50P3Ro''@;'; put 'put ''aXMuX3RyeU5leHQoZyk6dGhpcy5idWZmZXIucHVzaChnKX1fdHJ5TmV4dChnKXtsZXQgaDtjb25zdCB2PXRoaXMuaW5kZXgrKzt0cnl7aD10aGlzLnByb2plY3QoZyx2KX1jYXRjaCh5KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHkpfXRoaXMuYWN0aXZlKyssdGhpcy5f''@;'; put 'put ''aW5uZXJTdWIoaCl9X2lubmVyU3ViKGcpe2NvbnN0IGg9bmV3IHluKHRoaXMpLHY9dGhpcy5kZXN0aW5hdGlvbjt2LmFkZChoKTtjb25zdCB5PWVyKGcsaCk7eSE9PWgmJnYuYWRkKHkpfV9jb21wbGV0ZSgpe3RoaXMuaGFzQ29tcGxldGVkPSEwLDA9PT10aGlzLmFjdGl2ZSYmMD09PXRoaXMu''@;'; put 'put ''YnVmZmVyLmxlbmd0aCYmdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpLHRoaXMudW5zdWJzY3JpYmUoKX1ub3RpZnlOZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dChnKX1ub3RpZnlDb21wbGV0ZSgpe2NvbnN0IGc9dGhpcy5idWZmZXI7dGhpcy5hY3RpdmUtLSxnLmxlbmd0aD4wP3Ro''@;'; put 'put ''aXMuX25leHQoZy5zaGlmdCgpKTowPT09dGhpcy5hY3RpdmUmJnRoaXMuaGFzQ29tcGxldGVkJiZ0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIHF0KGQ9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKXtyZXR1cm4gc3IoVixkKX1mdW5jdGlvbiBwcihkLGcpe3JldHVybiBn''@;'; put 'put ''P1VlKGQsZyk6bmV3IEYoaHQoZCkpfWZ1bmN0aW9uIG5yKC4uLmQpe2xldCBnPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxoPW51bGwsdj1kW2QubGVuZ3RoLTFdO3JldHVybiB3dCh2KT8oaD1kLnBvcCgpLGQubGVuZ3RoPjEmJiJudW1iZXIiPT10eXBlb2YgZFtkLmxlbmd0aC0xXSYmKGc9''@;'; put 'put ''ZC5wb3AoKSkpOiJudW1iZXIiPT10eXBlb2YgdiYmKGc9ZC5wb3AoKSksbnVsbD09PWgmJjE9PT1kLmxlbmd0aCYmZFswXWluc3RhbmNlb2YgRj9kWzBdOnF0KGcpKHByKGQsaCkpfWZ1bmN0aW9uIEFuKCl7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBnLmxpZnQobmV3IHFuKGcpKX19Y2xh''@;'; put 'put ''c3MgcW57Y29uc3RydWN0b3IoZyl7dGhpcy5jb25uZWN0YWJsZT1nfWNhbGwoZyxoKXtjb25zdHtjb25uZWN0YWJsZTp2fT10aGlzO3YuX3JlZkNvdW50Kys7Y29uc3QgeT1uZXcgV3QoZyx2KSxDPWguc3Vic2NyaWJlKHkpO3JldHVybiB5LmNsb3NlZHx8KHkuY29ubmVjdGlvbj12LmNvbm5l''@;'; put 'put ''Y3QoKSksQ319Y2xhc3MgV3QgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy5jb25uZWN0YWJsZT1ofV91bnN1YnNjcmliZSgpe2NvbnN0e2Nvbm5lY3RhYmxlOmd9PXRoaXM7aWYoIWcpcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO3RoaXMuY29ubmVj''@;'; put 'put ''dGFibGU9bnVsbDtjb25zdCBoPWcuX3JlZkNvdW50O2lmKGg8PTApcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO2lmKGcuX3JlZkNvdW50PWgtMSxoPjEpcmV0dXJuIHZvaWQodGhpcy5jb25uZWN0aW9uPW51bGwpO2NvbnN0e2Nvbm5lY3Rpb246dn09dGhpcyx5PWcuX2Nvbm5l''@;'; put 'put ''Y3Rpb247dGhpcy5jb25uZWN0aW9uPW51bGwseSYmKCF2fHx5PT09dikmJnkudW5zdWJzY3JpYmUoKX19Y2xhc3MgcG4gZXh0ZW5kcyBGe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoKSx0aGlzLnNvdXJjZT1nLHRoaXMuc3ViamVjdEZhY3Rvcnk9aCx0aGlzLl9yZWZDb3VudD0wLHRoaXMuX2lz''@;'; put 'put ''Q29tcGxldGU9ITF9X3N1YnNjcmliZShnKXtyZXR1cm4gdGhpcy5nZXRTdWJqZWN0KCkuc3Vic2NyaWJlKGcpfWdldFN1YmplY3QoKXtjb25zdCBnPXRoaXMuX3N1YmplY3Q7cmV0dXJuKCFnfHxnLmlzU3RvcHBlZCkmJih0aGlzLl9zdWJqZWN0PXRoaXMuc3ViamVjdEZhY3RvcnkoKSksdGhp''@;'; put 'put ''cy5fc3ViamVjdH1jb25uZWN0KCl7bGV0IGc9dGhpcy5fY29ubmVjdGlvbjtyZXR1cm4gZ3x8KHRoaXMuX2lzQ29tcGxldGU9ITEsZz10aGlzLl9jb25uZWN0aW9uPW5ldyBUZSxnLmFkZCh0aGlzLnNvdXJjZS5zdWJzY3JpYmUobmV3IE50KHRoaXMuZ2V0U3ViamVjdCgpLHRoaXMpKSksZy5j''@;'; put 'put ''bG9zZWQmJih0aGlzLl9jb25uZWN0aW9uPW51bGwsZz1UZS5FTVBUWSkpLGd9cmVmQ291bnQoKXtyZXR1cm4gQW4oKSh0aGlzKX19Y29uc3QgS249KCgpPT57Y29uc3QgZD1wbi5wcm90b3R5cGU7cmV0dXJue29wZXJhdG9yOnt2YWx1ZTpudWxsfSxfcmVmQ291bnQ6e3ZhbHVlOjAsd3JpdGFi''@;'; put 'put ''bGU6ITB9LF9zdWJqZWN0Ont2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSxfY29ubmVjdGlvbjp7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0sX3N1YnNjcmliZTp7dmFsdWU6ZC5fc3Vic2NyaWJlfSxfaXNDb21wbGV0ZTp7dmFsdWU6ZC5faXNDb21wbGV0ZSx3cml0YWJsZTohMH0sZ2V0U3ViamVj''@;'; put 'put ''dDp7dmFsdWU6ZC5nZXRTdWJqZWN0fSxjb25uZWN0Ont2YWx1ZTpkLmNvbm5lY3R9LHJlZkNvdW50Ont2YWx1ZTpkLnJlZkNvdW50fX19KSgpO2NsYXNzIE50IGV4dGVuZHMgUWV7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmNvbm5lY3RhYmxlPWh9X2Vycm9yKGcpe3RoaXMuX3Vu''@;'; put 'put ''c3Vic2NyaWJlKCksc3VwZXIuX2Vycm9yKGcpfV9jb21wbGV0ZSgpe3RoaXMuY29ubmVjdGFibGUuX2lzQ29tcGxldGU9ITAsdGhpcy5fdW5zdWJzY3JpYmUoKSxzdXBlci5fY29tcGxldGUoKX1fdW5zdWJzY3JpYmUoKXtjb25zdCBnPXRoaXMuY29ubmVjdGFibGU7aWYoZyl7dGhpcy5jb25u''@;'; put 'put ''ZWN0YWJsZT1udWxsO2NvbnN0IGg9Zy5fY29ubmVjdGlvbjtnLl9yZWZDb3VudD0wLGcuX3N1YmplY3Q9bnVsbCxnLl9jb25uZWN0aW9uPW51bGwsaCYmaC51bnN1YnNjcmliZSgpfX19Y2xhc3MgdG57Y29uc3RydWN0b3IoZyxoKXt0aGlzLnN1YmplY3RGYWN0b3J5PWcsdGhpcy5zZWxlY3Rv''@;'; put 'put ''cj1ofWNhbGwoZyxoKXtjb25zdHtzZWxlY3Rvcjp2fT10aGlzLHk9dGhpcy5zdWJqZWN0RmFjdG9yeSgpLEM9dih5KS5zdWJzY3JpYmUoZyk7cmV0dXJuIEMuYWRkKGguc3Vic2NyaWJlKHkpKSxDfX1mdW5jdGlvbiB6bigpe3JldHVybiBuZXcgJGV9ZnVuY3Rpb24gQm4oZCl7Zm9yKGxldCBn''@;'; put 'put ''IGluIGQpaWYoZFtnXT09PUJuKXJldHVybiBnO3Rocm93IEVycm9yKCJDb3VsZCBub3QgZmluZCByZW5hbWVkIHByb3BlcnR5IG9uIHRhcmdldCBvYmplY3QuIil9ZnVuY3Rpb24ga3IoZCxnKXtmb3IoY29uc3QgaCBpbiBnKWcuaGFzT3duUHJvcGVydHkoaCkmJiFkLmhhc093blByb3BlcnR5''@;'; put 'put ''KGgpJiYoZFtoXT1nW2hdKX1mdW5jdGlvbiBtbihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGQ7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4iWyIrZC5tYXAobW4pLmpvaW4oIiwgIikrIl0iO2lmKG51bGw9PWQpcmV0dXJuIiIrZDtpZihkLm92ZXJyaWRkZW5OYW1lKXJldHVy''@;'; put 'put ''bmAke2Qub3ZlcnJpZGRlbk5hbWV9YDtpZihkLm5hbWUpcmV0dXJuYCR7ZC5uYW1lfWA7Y29uc3QgZz1kLnRvU3RyaW5nKCk7aWYobnVsbD09ZylyZXR1cm4iIitnO2NvbnN0IGg9Zy5pbmRleE9mKCJcbiIpO3JldHVybi0xPT09aD9nOmcuc3Vic3RyaW5nKDAsaCl9ZnVuY3Rpb24gdW4oZCxn''@;'; put 'put ''KXtyZXR1cm4gbnVsbD09ZHx8IiI9PT1kP251bGw9PT1nPyIiOmc6bnVsbD09Z3x8IiI9PT1nP2Q6ZCsiICIrZ31jb25zdCBjbj1Cbih7X19mb3J3YXJkX3JlZl9fOkJufSk7ZnVuY3Rpb24gX24oZCl7cmV0dXJuIGQuX19mb3J3YXJkX3JlZl9fPV9uLGQudG9TdHJpbmc9ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gbW4odGhpcygpKX0sZH1mdW5jdGlvbiBHdChkKXtyZXR1cm4ga24oZCk/ZCgpOmR9ZnVuY3Rpb24ga24oZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGQmJmQuaGFzT3duUHJvcGVydHkoY24pJiZkLl9fZm9yd2FyZF9yZWZfXz09PV9ufWNsYXNzIGVuIGV4dGVuZHMgRXJyb3J7''@;'; put 'put ''Y29uc3RydWN0b3IoZyxoKXtzdXBlcihmdW5jdGlvbiBJbihkLGcpe3JldHVybmBORzAke01hdGguYWJzKGQpfSR7Zz8iOiAiK2cudHJpbSgpOiIifWB9KGcsaCkpLHRoaXMuY29kZT1nfX1mdW5jdGlvbiBKbihkKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQ/ZDpudWxsPT1kPyIiOlN0cmlu''@;'; put 'put ''ZyhkKX1mdW5jdGlvbiBpaShkLGcpe3Rocm93IG5ldyBlbigtMjAxLCExKX1mdW5jdGlvbiBsbChkLGcpe251bGw9PWQmJmZ1bmN0aW9uIFFpKGQsZyxoLHYpe3Rocm93IG5ldyBFcnJvcihgQVNTRVJUSU9OIEVSUk9SOiAke2R9YCsobnVsbD09dj8iIjpgIFtFeHBlY3RlZD0+ICR7aH0gJHt2''@;'; put 'put ''fSAke2d9IDw9QWN0dWFsXWApKX0oZyxkLG51bGwsIiE9Iil9ZnVuY3Rpb24gQWkoZCl7cmV0dXJue3Rva2VuOmQudG9rZW4scHJvdmlkZWRJbjpkLnByb3ZpZGVkSW58fG51bGwsZmFjdG9yeTpkLmZhY3RvcnksdmFsdWU6dm9pZCAwfX1jb25zdCB2aT1BaTtmdW5jdGlvbiBiMChkKXtyZXR1''@;'; put 'put ''cm57cHJvdmlkZXJzOmQucHJvdmlkZXJzfHxbXSxpbXBvcnRzOmQuaW1wb3J0c3x8W119fWZ1bmN0aW9uIHNhKGQpe3JldHVybiBybChkLFUwKXx8cmwoZCxYMCl9ZnVuY3Rpb24gcmwoZCxnKXtyZXR1cm4gZC5oYXNPd25Qcm9wZXJ0eShnKT9kW2ddOm51bGx9ZnVuY3Rpb24gSGMoZCl7cmV0''@;'; put 'put ''dXJuIGQmJihkLmhhc093blByb3BlcnR5KEJzKXx8ZC5oYXNPd25Qcm9wZXJ0eSh1YSkpP2RbQnNdOm51bGx9Y29uc3QgVTA9Qm4oe1x1MDI3NXByb3Y6Qm59KSxCcz1Cbih7XHUwMjc1aW5qOkJufSksWDA9Qm4oe25nSW5qZWN0YWJsZURlZjpCbn0pLHVhPUJuKHtuZ0luamVjdG9yRGVmOkJu''@;'; put 'put ''fSk7dmFyIGowPSgoKT0+KChqMD1qMHx8e30pW2owLkRlZmF1bHQ9MF09IkRlZmF1bHQiLGowW2owLkhvc3Q9MV09Ikhvc3QiLGowW2owLlNlbGY9Ml09IlNlbGYiLGowW2owLlNraXBTZWxmPTRdPSJTa2lwU2VsZiIsajBbajAuT3B0aW9uYWw9OF09Ik9wdGlvbmFsIixqMCkpKCk7bGV0IEJs''@;'; put 'put ''O2Z1bmN0aW9uIF8wKGQpe2NvbnN0IGc9Qmw7cmV0dXJuIEJsPWQsZ31mdW5jdGlvbiBnYyhkLGcsaCl7Y29uc3Qgdj1zYShkKTtyZXR1cm4gdiYmInJvb3QiPT12LnByb3ZpZGVkSW4/dm9pZCAwPT09di52YWx1ZT92LnZhbHVlPXYuZmFjdG9yeSgpOnYudmFsdWU6aCZqMC5PcHRpb25hbD9u''@;'; put 'put ''dWxsOnZvaWQgMCE9PWc/Zzp2b2lkIGlpKG1uKGQpKX1mdW5jdGlvbiBCMShkKXtyZXR1cm57dG9TdHJpbmc6ZH0udG9TdHJpbmcoKX12YXIgYXU9KCgpPT4oKGF1PWF1fHx7fSlbYXUuT25QdXNoPTBdPSJPblB1c2giLGF1W2F1LkRlZmF1bHQ9MV09IkRlZmF1bHQiLGF1KSkoKSx4Mj0oKCk9''@;'; put 'put ''PihmdW5jdGlvbihkKXtkW2QuRW11bGF0ZWQ9MF09IkVtdWxhdGVkIixkW2QuTm9uZT0yXT0iTm9uZSIsZFtkLlNoYWRvd0RvbT0zXT0iU2hhZG93RG9tIn0oeDJ8fCh4Mj17fSkpLHgyKSkoKTtjb25zdCBQbD0oKCk9PiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhp''@;'; put 'put ''c3x8InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWwmJmdsb2JhbHx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmJiYidW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiZzZWxmIGluc3RhbmNlb2YgV29ya2VyR2xv''@;'; put 'put ''YmFsU2NvcGUmJnNlbGYpKCksczE9e30sWjA9W10sZmk9Qm4oe1x1MDI3NWNtcDpCbn0pLFIwPUJuKHtcdTAyNzVkaXI6Qm59KSxtbz1Cbih7XHUwMjc1cGlwZTpCbn0pLHJzPUJuKHtcdTAyNzVtb2Q6Qm59KSxkcz1Cbih7XHUwMjc1ZmFjOkJufSksbjI9Qm4oe19fTkdfRUxFTUVOVF9JRF9f''@;'; put 'put ''OkJufSk7bGV0IFQyPTA7ZnVuY3Rpb24gVGkoZCl7cmV0dXJuIEIxKCgpPT57Y29uc3QgaD0hMD09PWQuc3RhbmRhbG9uZSx2PXt9LHk9e3R5cGU6ZC50eXBlLHByb3ZpZGVyc1Jlc29sdmVyOm51bGwsZGVjbHM6ZC5kZWNscyx2YXJzOmQudmFycyxmYWN0b3J5Om51bGwsdGVtcGxhdGU6ZC50''@;'; put 'put ''ZW1wbGF0ZXx8bnVsbCxjb25zdHM6ZC5jb25zdHN8fG51bGwsbmdDb250ZW50U2VsZWN0b3JzOmQubmdDb250ZW50U2VsZWN0b3JzLGhvc3RCaW5kaW5nczpkLmhvc3RCaW5kaW5nc3x8bnVsbCxob3N0VmFyczpkLmhvc3RWYXJzfHwwLGhvc3RBdHRyczpkLmhvc3RBdHRyc3x8bnVsbCxjb250''@;'; put 'put ''ZW50UXVlcmllczpkLmNvbnRlbnRRdWVyaWVzfHxudWxsLGRlY2xhcmVkSW5wdXRzOnYsaW5wdXRzOm51bGwsb3V0cHV0czpudWxsLGV4cG9ydEFzOmQuZXhwb3J0QXN8fG51bGwsb25QdXNoOmQuY2hhbmdlRGV0ZWN0aW9uPT09YXUuT25QdXNoLGRpcmVjdGl2ZURlZnM6bnVsbCxwaXBlRGVm''@;'; put 'put ''czpudWxsLHN0YW5kYWxvbmU6aCxkZXBlbmRlbmNpZXM6aCYmZC5kZXBlbmRlbmNpZXN8fG51bGwsZ2V0U3RhbmRhbG9uZUluamVjdG9yOm51bGwsc2VsZWN0b3JzOmQuc2VsZWN0b3JzfHxaMCx2aWV3UXVlcnk6ZC52aWV3UXVlcnl8fG51bGwsZmVhdHVyZXM6ZC5mZWF0dXJlc3x8bnVsbCxk''@;'; put 'put ''YXRhOmQuZGF0YXx8e30sZW5jYXBzdWxhdGlvbjpkLmVuY2Fwc3VsYXRpb258fHgyLkVtdWxhdGVkLGlkOiJjIitUMisrLHN0eWxlczpkLnN0eWxlc3x8WjAsXzpudWxsLHNldElucHV0Om51bGwsc2NoZW1hczpkLnNjaGVtYXN8fG51bGwsdFZpZXc6bnVsbH0sQz1kLmRlcGVuZGVuY2llcyxJ''@;'; put 'put ''PWQuZmVhdHVyZXM7cmV0dXJuIHkuaW5wdXRzPXIyKGQuaW5wdXRzLHYpLHkub3V0cHV0cz1yMihkLm91dHB1dHMpLEkmJkkuZm9yRWFjaChaPT5aKHkpKSx5LmRpcmVjdGl2ZURlZnM9Qz8oKT0+KCJmdW5jdGlvbiI9PXR5cGVvZiBDP0MoKTpDKS5tYXAoTmYpLmZpbHRlcihZbCk6bnVsbCx5''@;'; put 'put ''LnBpcGVEZWZzPUM/KCk9PigiZnVuY3Rpb24iPT10eXBlb2YgQz9DKCk6QykubWFwKEtsKS5maWx0ZXIoWWwpOm51bGwseX0pfWZ1bmN0aW9uIE5mKGQpe3JldHVybiB2cyhkKXx8RjEoZCl9ZnVuY3Rpb24gWWwoZCl7cmV0dXJuIG51bGwhPT1kfWNvbnN0IE5jPXt9O2Z1bmN0aW9uIGNvKGQp''@;'; put 'put ''e3JldHVybiBCMSgoKT0+e2NvbnN0IGc9e3R5cGU6ZC50eXBlLGJvb3RzdHJhcDpkLmJvb3RzdHJhcHx8WjAsZGVjbGFyYXRpb25zOmQuZGVjbGFyYXRpb25zfHxaMCxpbXBvcnRzOmQuaW1wb3J0c3x8WjAsZXhwb3J0czpkLmV4cG9ydHN8fFowLHRyYW5zaXRpdmVDb21waWxlU2NvcGVzOm51''@;'; put 'put ''bGwsc2NoZW1hczpkLnNjaGVtYXN8fG51bGwsaWQ6ZC5pZHx8bnVsbH07cmV0dXJuIG51bGwhPWQuaWQmJihOY1tkLmlkXT1kLnR5cGUpLGd9KX1mdW5jdGlvbiByMihkLGcpe2lmKG51bGw9PWQpcmV0dXJuIHMxO2NvbnN0IGg9e307Zm9yKGNvbnN0IHYgaW4gZClpZihkLmhhc093blByb3Bl''@;'; put 'put ''cnR5KHYpKXtsZXQgeT1kW3ZdLEM9eTtBcnJheS5pc0FycmF5KHkpJiYoQz15WzFdLHk9eVswXSksaFt5XT12LGcmJihnW3ldPUMpfXJldHVybiBofWNvbnN0IFdpPVRpO2Z1bmN0aW9uIFVzKGQpe3JldHVybnt0eXBlOmQudHlwZSxuYW1lOmQubmFtZSxmYWN0b3J5Om51bGwscHVyZTohMSE9''@;'; put 'put ''PWQucHVyZSxzdGFuZGFsb25lOiEwPT09ZC5zdGFuZGFsb25lLG9uRGVzdHJveTpkLnR5cGUucHJvdG90eXBlLm5nT25EZXN0cm95fHxudWxsfX1mdW5jdGlvbiB2cyhkKXtyZXR1cm4gZFtmaV18fG51bGx9ZnVuY3Rpb24gRjEoZCl7cmV0dXJuIGRbUjBdfHxudWxsfWZ1bmN0aW9uIEtsKGQp''@;'; put 'put ''e3JldHVybiBkW21vXXx8bnVsbH1mdW5jdGlvbiBDcyhkLGcpe2NvbnN0IGg9ZFtyc118fG51bGw7aWYoIWgmJiEwPT09Zyl0aHJvdyBuZXcgRXJyb3IoYFR5cGUgJHttbihkKX0gZG9lcyBub3QgaGF2ZSAnXHUwMjc1bW9kJyBwcm9wZXJ0eS5gKTtyZXR1cm4gaH1mdW5jdGlvbiBUdShkKXty''@;'; put 'put ''ZXR1cm4gQXJyYXkuaXNBcnJheShkKSYmIm9iamVjdCI9PXR5cGVvZiBkWzFdfWZ1bmN0aW9uIHNmKGQpe3JldHVybiBBcnJheS5pc0FycmF5KGQpJiYhMD09PWRbMV19ZnVuY3Rpb24gS28oZCl7cmV0dXJuIDAhPSg4JmQuZmxhZ3MpfWZ1bmN0aW9uIGtzKGQpe3JldHVybiAyPT0oMiZkLmZs''@;'; put 'put ''YWdzKX1mdW5jdGlvbiB6ZyhkKXtyZXR1cm4gMT09KDEmZC5mbGFncyl9ZnVuY3Rpb24gVmYoZCl7cmV0dXJuIG51bGwhPT1kLnRlbXBsYXRlfWZ1bmN0aW9uIHF3KGQpe3JldHVybiAwIT0oMjU2JmRbMl0pfWZ1bmN0aW9uIGpmKGQsZyl7cmV0dXJuIGQuaGFzT3duUHJvcGVydHkoZHMpP2Rb''@;'; put 'put ''ZHNdOm51bGx9Y2xhc3MgdGJ7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucHJldmlvdXNWYWx1ZT1nLHRoaXMuY3VycmVudFZhbHVlPWgsdGhpcy5maXJzdENoYW5nZT12fWlzRmlyc3RDaGFuZ2UoKXtyZXR1cm4gdGhpcy5maXJzdENoYW5nZX19ZnVuY3Rpb24gRDIoKXtyZXR1cm4gZjl9ZnVu''@;'; put 'put ''Y3Rpb24gZjkoZCl7cmV0dXJuIGQudHlwZS5wcm90b3R5cGUubmdPbkNoYW5nZXMmJihkLnNldElucHV0PVFnKSxuYn1mdW5jdGlvbiBuYigpe2NvbnN0IGQ9UXModGhpcyksZz1udWxsPT1kP3ZvaWQgMDpkLmN1cnJlbnQ7aWYoZyl7Y29uc3QgaD1kLnByZXZpb3VzO2lmKGg9PT1zMSlkLnBy''@;'; put 'put ''ZXZpb3VzPWc7ZWxzZSBmb3IobGV0IHYgaW4gZyloW3ZdPWdbdl07ZC5jdXJyZW50PW51bGwsdGhpcy5uZ09uQ2hhbmdlcyhnKX19ZnVuY3Rpb24gUWcoZCxnLGgsdil7Y29uc3QgeT1RcyhkKXx8ZnVuY3Rpb24gYmgoZCxnKXtyZXR1cm4gZFtXcF09Z30oZCx7cHJldmlvdXM6czEsY3VycmVu''@;'; put 'put ''dDpudWxsfSksQz15LmN1cnJlbnR8fCh5LmN1cnJlbnQ9e30pLEk9eS5wcmV2aW91cyxaPXRoaXMuZGVjbGFyZWRJbnB1dHNbaF0sdWU9SVtaXTtDW1pdPW5ldyB0Yih1ZSYmdWUuY3VycmVudFZhbHVlLGcsST09PXMxKSxkW3ZdPWd9RDIubmdJbmhlcml0PSEwO2NvbnN0IFdwPSJfX25nU2lt''@;'; put 'put ''cGxlQ2hhbmdlc19fIjtmdW5jdGlvbiBRcyhkKXtyZXR1cm4gZFtXcF18fG51bGx9ZnVuY3Rpb24gWDIoZCl7Zm9yKDtBcnJheS5pc0FycmF5KGQpOylkPWRbMF07cmV0dXJuIGR9ZnVuY3Rpb24gVXAoZCxnKXtyZXR1cm4gWDIoZ1tkXSl9ZnVuY3Rpb24gdmMoZCxnKXtyZXR1cm4gWDIoZ1tk''@;'; put 'put ''LmluZGV4XSl9ZnVuY3Rpb24gWGcoZCxnKXtyZXR1cm4gZC5kYXRhW2ddfWZ1bmN0aW9uIFFwKGQsZyl7cmV0dXJuIGRbZ119ZnVuY3Rpb24gUXUoZCxnKXtjb25zdCBoPWdbZF07cmV0dXJuIFR1KGgpP2g6aFswXX1mdW5jdGlvbiBLZyhkKXtyZXR1cm4gND09KDQmZFsyXSl9ZnVuY3Rpb24g''@;'; put 'put ''dXUoZCl7cmV0dXJuIDY0PT0oNjQmZFsyXSl9ZnVuY3Rpb24gTjEoZCxnKXtyZXR1cm4gbnVsbD09Zz9udWxsOmRbZ119ZnVuY3Rpb24gX2goZCl7ZFsxOF09MH1mdW5jdGlvbiB2ZChkLGcpe2RbNV0rPWc7bGV0IGg9ZCx2PWRbM107Zm9yKDtudWxsIT09diYmKDE9PT1nJiYxPT09aFs1XXx8''@;'; put 'put ''LTE9PT1nJiYwPT09aFs1XSk7KXZbNV0rPWcsaD12LHY9dlszXX1jb25zdCBDYT17bEZyYW1lOmhhKG51bGwpLGJpbmRpbmdzRW5hYmxlZDohMH07ZnVuY3Rpb24gUk0oKXtyZXR1cm4gQ2EuYmluZGluZ3NFbmFibGVkfWZ1bmN0aW9uIFB0KCl7cmV0dXJuIENhLmxGcmFtZS5sVmlld31mdW5j''@;'; put 'put ''dGlvbiBmZSgpe3JldHVybiBDYS5sRnJhbWUudFZpZXd9ZnVuY3Rpb24gaXQoZCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXc9ZCxkWzhdfWZ1bmN0aW9uIGEoZCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXc9bnVsbCxkfWZ1bmN0aW9uIFh0KCl7bGV0IGQ9aHIoKTtmb3Io''@;'; put 'put ''O251bGwhPT1kJiY2ND09PWQudHlwZTspZD1kLnBhcmVudDtyZXR1cm4gZH1mdW5jdGlvbiBocigpe3JldHVybiBDYS5sRnJhbWUuY3VycmVudFROb2RlfWZ1bmN0aW9uIGpuKGQsZyl7Y29uc3QgaD1DYS5sRnJhbWU7aC5jdXJyZW50VE5vZGU9ZCxoLmlzUGFyZW50PWd9ZnVuY3Rpb24gXygp''@;'; put 'put ''e3JldHVybiBDYS5sRnJhbWUuaXNQYXJlbnR9ZnVuY3Rpb24gQW8oKXtDYS5sRnJhbWUuaXNQYXJlbnQ9ITF9ZnVuY3Rpb24gbHMoKXtjb25zdCBkPUNhLmxGcmFtZTtsZXQgZz1kLmJpbmRpbmdSb290SW5kZXg7cmV0dXJuLTE9PT1nJiYoZz1kLmJpbmRpbmdSb290SW5kZXg9ZC50Vmlldy5i''@;'; put 'put ''aW5kaW5nU3RhcnRJbmRleCksZ31mdW5jdGlvbiBNbigpe3JldHVybiBDYS5sRnJhbWUuYmluZGluZ0luZGV4fWZ1bmN0aW9uIGkyKCl7cmV0dXJuIENhLmxGcmFtZS5iaW5kaW5nSW5kZXgrK31mdW5jdGlvbiBvMihkKXtjb25zdCBnPUNhLmxGcmFtZSxoPWcuYmluZGluZ0luZGV4O3JldHVy''@;'; put 'put ''biBnLmJpbmRpbmdJbmRleD1nLmJpbmRpbmdJbmRleCtkLGh9ZnVuY3Rpb24gQk0oZCxnKXtjb25zdCBoPUNhLmxGcmFtZTtoLmJpbmRpbmdJbmRleD1oLmJpbmRpbmdSb290SW5kZXg9ZCxnOShnKX1mdW5jdGlvbiBnOShkKXtDYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4PWR9ZnVu''@;'; put 'put ''Y3Rpb24gbTkoZCl7Y29uc3QgZz1DYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4O3JldHVybi0xPT09Zz9udWxsOmRbZ119ZnVuY3Rpb24gb2IoKXtyZXR1cm4gQ2EubEZyYW1lLmN1cnJlbnRRdWVyeUluZGV4fWZ1bmN0aW9uIERuKGQpe0NhLmxGcmFtZS5jdXJyZW50UXVlcnlJbmRl''@;'; put 'put ''eD1kfWZ1bmN0aW9uIGNmKGQpe2NvbnN0IGc9ZFsxXTtyZXR1cm4gMj09PWcudHlwZT9nLmRlY2xUTm9kZToxPT09Zy50eXBlP2RbNl06bnVsbH1mdW5jdGlvbiBlbyhkLGcsaCl7aWYoaCZqMC5Ta2lwU2VsZil7bGV0IHk9ZyxDPWQ7Zm9yKDshKHk9eS5wYXJlbnQsbnVsbCE9PXl8fGgmajAu''@;'; put 'put ''SG9zdHx8KHk9Y2YoQyksbnVsbD09PXl8fChDPUNbMTVdLDEwJnkudHlwZSkpKTspO2lmKG51bGw9PT15KXJldHVybiExO2c9eSxkPUN9Y29uc3Qgdj1DYS5sRnJhbWU9cWwoKTtyZXR1cm4gdi5jdXJyZW50VE5vZGU9Zyx2LmxWaWV3PWQsITB9ZnVuY3Rpb24gRDAoZCl7Y29uc3QgZz1xbCgp''@;'; put 'put ''LGg9ZFsxXTtDYS5sRnJhbWU9ZyxnLmN1cnJlbnRUTm9kZT1oLmZpcnN0Q2hpbGQsZy5sVmlldz1kLGcudFZpZXc9aCxnLmNvbnRleHRMVmlldz1kLGcuYmluZGluZ0luZGV4PWguYmluZGluZ1N0YXJ0SW5kZXgsZy5pbkkxOG49ITF9ZnVuY3Rpb24gcWwoKXtjb25zdCBkPUNhLmxGcmFtZSxn''@;'; put 'put ''PW51bGw9PT1kP251bGw6ZC5jaGlsZDtyZXR1cm4gbnVsbD09PWc/aGEoZCk6Z31mdW5jdGlvbiBoYShkKXtjb25zdCBnPXtjdXJyZW50VE5vZGU6bnVsbCxpc1BhcmVudDohMCxsVmlldzpudWxsLHRWaWV3Om51bGwsc2VsZWN0ZWRJbmRleDotMSxjb250ZXh0TFZpZXc6bnVsbCxlbGVtZW50''@;'; put 'put ''RGVwdGhDb3VudDowLGN1cnJlbnROYW1lc3BhY2U6bnVsbCxjdXJyZW50RGlyZWN0aXZlSW5kZXg6LTEsYmluZGluZ1Jvb3RJbmRleDotMSxiaW5kaW5nSW5kZXg6LTEsY3VycmVudFF1ZXJ5SW5kZXg6MCxwYXJlbnQ6ZCxjaGlsZDpudWxsLGluSTE4bjohMX07cmV0dXJuIG51bGwhPT1kJiYo''@;'; put 'put ''ZC5jaGlsZD1nKSxnfWZ1bmN0aW9uIERhKCl7Y29uc3QgZD1DYS5sRnJhbWU7cmV0dXJuIENhLmxGcmFtZT1kLnBhcmVudCxkLmN1cnJlbnRUTm9kZT1udWxsLGQubFZpZXc9bnVsbCxkfWNvbnN0IFQ4PURhO2Z1bmN0aW9uIEpwKCl7Y29uc3QgZD1EYSgpO2QuaXNQYXJlbnQ9ITAsZC50Vmll''@;'; put 'put ''dz1udWxsLGQuc2VsZWN0ZWRJbmRleD0tMSxkLmNvbnRleHRMVmlldz1udWxsLGQuZWxlbWVudERlcHRoQ291bnQ9MCxkLmN1cnJlbnREaXJlY3RpdmVJbmRleD0tMSxkLmN1cnJlbnROYW1lc3BhY2U9bnVsbCxkLmJpbmRpbmdSb290SW5kZXg9LTEsZC5iaW5kaW5nSW5kZXg9LTEsZC5jdXJy''@;'; put 'put ''ZW50UXVlcnlJbmRleD0wfWZ1bmN0aW9uIFVsKCl7cmV0dXJuIENhLmxGcmFtZS5zZWxlY3RlZEluZGV4fWZ1bmN0aW9uIHpmKGQpe0NhLmxGcmFtZS5zZWxlY3RlZEluZGV4PWR9ZnVuY3Rpb24gRjIoKXtjb25zdCBkPUNhLmxGcmFtZTtyZXR1cm4gWGcoZC50VmlldyxkLnNlbGVjdGVkSW5k''@;'; put 'put ''ZXgpfWZ1bmN0aW9uIGVtKGQsZyl7Zm9yKGxldCBoPWcuZGlyZWN0aXZlU3RhcnQsdj1nLmRpcmVjdGl2ZUVuZDtoPHY7aCsrKXtjb25zdCBDPWQuZGF0YVtoXS50eXBlLnByb3RvdHlwZSx7bmdBZnRlckNvbnRlbnRJbml0OkksbmdBZnRlckNvbnRlbnRDaGVja2VkOlosbmdBZnRlclZpZXdJ''@;'; put 'put ''bml0OnVlLG5nQWZ0ZXJWaWV3Q2hlY2tlZDpfZSxuZ09uRGVzdHJveTpCZX09QztJJiYoZC5jb250ZW50SG9va3N8fChkLmNvbnRlbnRIb29rcz1bXSkpLnB1c2goLWgsSSksWiYmKChkLmNvbnRlbnRIb29rc3x8KGQuY29udGVudEhvb2tzPVtdKSkucHVzaChoLFopLChkLmNvbnRlbnRDaGVj''@;'; put 'put ''a0hvb2tzfHwoZC5jb250ZW50Q2hlY2tIb29rcz1bXSkpLnB1c2goaCxaKSksdWUmJihkLnZpZXdIb29rc3x8KGQudmlld0hvb2tzPVtdKSkucHVzaCgtaCx1ZSksX2UmJigoZC52aWV3SG9va3N8fChkLnZpZXdIb29rcz1bXSkpLnB1c2goaCxfZSksKGQudmlld0NoZWNrSG9va3N8fChkLnZp''@;'; put 'put ''ZXdDaGVja0hvb2tzPVtdKSkucHVzaChoLF9lKSksbnVsbCE9QmUmJihkLmRlc3Ryb3lIb29rc3x8KGQuZGVzdHJveUhvb2tzPVtdKSkucHVzaChoLEJlKX19ZnVuY3Rpb24geWQoZCxnLGgpe0k4KGQsZywzLGgpfWZ1bmN0aW9uIEtwKGQsZyxoLHYpeygzJmRbMl0pPT09aCYmSTgoZCxnLGgs''@;'; put 'put ''dil9ZnVuY3Rpb24gZmYoZCxnKXtsZXQgaD1kWzJdOygzJmgpPT09ZyYmKGgmPTIwNDcsaCs9MSxkWzJdPWgpfWZ1bmN0aW9uIEk4KGQsZyxoLHYpe2NvbnN0IEM9bnVsbCE9dj92Oi0xLEk9Zy5sZW5ndGgtMTtsZXQgWj0wO2ZvcihsZXQgdWU9dm9pZCAwIT09dj82NTUzNSZkWzE4XTowO3Vl''@;'; put 'put ''PEk7dWUrKylpZigibnVtYmVyIj09dHlwZW9mIGdbdWUrMV0pe2lmKFo9Z1t1ZV0sbnVsbCE9diYmWj49dilicmVha31lbHNlIGdbdWVdPDAmJihkWzE4XSs9NjU1MzYpLChaPEN8fC0xPT1DKSYmKEhNKGQsaCxnLHVlKSxkWzE4XT0oNDI5NDkwMTc2MCZkWzE4XSkrdWUrMiksdWUrK31mdW5j''@;'; put 'put ''dGlvbiBITShkLGcsaCx2KXtjb25zdCB5PWhbdl08MCxDPWhbdisxXSxaPWRbeT8taFt2XTpoW3ZdXTtpZih5KXtpZihkWzJdPj4xMTxkWzE4XT4+MTYmJigzJmRbMl0pPT09Zyl7ZFsyXSs9MjA0ODt0cnl7Qy5jYWxsKFopfWZpbmFsbHl7fX19ZWxzZSB0cnl7Qy5jYWxsKFopfWZpbmFsbHl7''@;'; put 'put ''fX1jbGFzcyB3ZHtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5mYWN0b3J5PWcsdGhpcy5yZXNvbHZpbmc9ITEsdGhpcy5jYW5TZWVWaWV3UHJvdmlkZXJzPWgsdGhpcy5pbmplY3RJbXBsPXZ9fWZ1bmN0aW9uIFpjKGQsZyxoKXtsZXQgdj0wO2Zvcig7djxoLmxlbmd0aDspe2NvbnN0IHk9aFt2''@;'; put 'put ''XTtpZigibnVtYmVyIj09dHlwZW9mIHkpe2lmKDAhPT15KWJyZWFrO3YrKztjb25zdCBDPWhbdisrXSxJPWhbdisrXSxaPWhbdisrXTtkLnNldEF0dHJpYnV0ZShnLEksWixDKX1lbHNle2NvbnN0IEM9eSxJPWhbKyt2XTtaMShDKT9kLnNldFByb3BlcnR5KGcsQyxJKTpkLnNldEF0dHJpYnV0''@;'; put 'put ''ZShnLEMsSSksdisrfX1yZXR1cm4gdn1mdW5jdGlvbiBzcyhkKXtyZXR1cm4gMz09PWR8fDQ9PT1kfHw2PT09ZH1mdW5jdGlvbiBaMShkKXtyZXR1cm4gNjQ9PT1kLmNoYXJDb2RlQXQoMCl9ZnVuY3Rpb24gemMoZCxnKXtpZihudWxsIT09ZyYmMCE9PWcubGVuZ3RoKWlmKG51bGw9PT1kfHww''@;'; put 'put ''PT09ZC5sZW5ndGgpZD1nLnNsaWNlKCk7ZWxzZXtsZXQgaD0tMTtmb3IobGV0IHY9MDt2PGcubGVuZ3RoO3YrKyl7Y29uc3QgeT1nW3ZdOyJudW1iZXIiPT10eXBlb2YgeT9oPXk6MD09PWh8fGxiKGQsaCx5LG51bGwsLTE9PT1ofHwyPT09aD9nWysrdl06bnVsbCl9fXJldHVybiBkfWZ1bmN0''@;'; put 'put ''aW9uIGxiKGQsZyxoLHYseSl7bGV0IEM9MCxJPWQubGVuZ3RoO2lmKC0xPT09ZylJPS0xO2Vsc2UgZm9yKDtDPGQubGVuZ3RoOyl7Y29uc3QgWj1kW0MrK107aWYoIm51bWJlciI9PXR5cGVvZiBaKXtpZihaPT09Zyl7ST0tMTticmVha31pZihaPmcpe0k9Qy0xO2JyZWFrfX19Zm9yKDtDPGQu''@;'; put 'put ''bGVuZ3RoOyl7Y29uc3QgWj1kW0NdO2lmKCJudW1iZXIiPT10eXBlb2YgWilicmVhaztpZihaPT09aCl7aWYobnVsbD09PXYpcmV0dXJuIHZvaWQobnVsbCE9PXkmJihkW0MrMV09eSkpO2lmKHY9PT1kW0MrMV0pcmV0dXJuIHZvaWQoZFtDKzJdPXkpfUMrKyxudWxsIT09diYmQysrLG51bGwh''@;'; put 'put ''PT15JiZDKyt9LTEhPT1JJiYoZC5zcGxpY2UoSSwwLGcpLEM9SSsxKSxkLnNwbGljZShDKyssMCxoKSxudWxsIT09diYmZC5zcGxpY2UoQysrLDAsdiksbnVsbCE9PXkmJmQuc3BsaWNlKEMrKywwLHkpfWZ1bmN0aW9uIEdjKGQpe3JldHVybi0xIT09ZH1mdW5jdGlvbiBjdShkKXtyZXR1cm4g''@;'; put 'put ''MzI3NjcmZH1mdW5jdGlvbiBkZihkLGcpe2xldCBoPWZ1bmN0aW9uIHg0KGQpe3JldHVybiBkPj4xNn0oZCksdj1nO2Zvcig7aD4wOyl2PXZbMTVdLGgtLTtyZXR1cm4gdn1sZXQgUHI9ITA7ZnVuY3Rpb24gTDgoZCl7Y29uc3QgZz1QcjtyZXR1cm4gUHI9ZCxnfWxldCBxcD0wO2NvbnN0IHBm''@;'; put 'put ''PXt9O2Z1bmN0aW9uIGU2KGQsZyl7Y29uc3QgaD1SOChkLGcpO2lmKC0xIT09aClyZXR1cm4gaDtjb25zdCB2PWdbMV07di5maXJzdENyZWF0ZVBhc3MmJihkLmluamVjdG9ySW5kZXg9Zy5sZW5ndGgsdDYodi5kYXRhLGQpLHQ2KGcsbnVsbCksdDYodi5ibHVlcHJpbnQsbnVsbCkpO2NvbnN0''@;'; put 'put ''IHk9QWMoZCxnKSxDPWQuaW5qZWN0b3JJbmRleDtpZihHYyh5KSl7Y29uc3QgST1jdSh5KSxaPWRmKHksZyksdWU9WlsxXS5kYXRhO2ZvcihsZXQgX2U9MDtfZTw4O19lKyspZ1tDK19lXT1aW0krX2VdfHVlW0krX2VdfXJldHVybiBnW0MrOF09eSxDfWZ1bmN0aW9uIHQ2KGQsZyl7ZC5wdXNo''@;'; put 'put ''KDAsMCwwLDAsMCwwLDAsMCxnKX1mdW5jdGlvbiBSOChkLGcpe3JldHVybi0xPT09ZC5pbmplY3RvckluZGV4fHxkLnBhcmVudCYmZC5wYXJlbnQuaW5qZWN0b3JJbmRleD09PWQuaW5qZWN0b3JJbmRleHx8bnVsbD09PWdbZC5pbmplY3RvckluZGV4KzhdPy0xOmQuaW5qZWN0b3JJbmRleH1m''@;'; put 'put ''dW5jdGlvbiBBYyhkLGcpe2lmKGQucGFyZW50JiYtMSE9PWQucGFyZW50LmluamVjdG9ySW5kZXgpcmV0dXJuIGQucGFyZW50LmluamVjdG9ySW5kZXg7bGV0IGg9MCx2PW51bGwseT1nO2Zvcig7bnVsbCE9PXk7KXtpZih2PUR1KHkpLG51bGw9PT12KXJldHVybi0xO2lmKGgrKyx5PXlbMTVd''@;'; put 'put ''LC0xIT09di5pbmplY3RvckluZGV4KXJldHVybiB2LmluamVjdG9ySW5kZXh8aDw8MTZ9cmV0dXJuLTF9ZnVuY3Rpb24gR2YoZCxnLGgpeyFmdW5jdGlvbiBraChkLGcsaCl7bGV0IHY7InN0cmluZyI9PXR5cGVvZiBoP3Y9aC5jaGFyQ29kZUF0KDApfHwwOmguaGFzT3duUHJvcGVydHkobjIp''@;'; put 'put ''JiYodj1oW24yXSksbnVsbD09diYmKHY9aFtuMl09cXArKyk7Y29uc3QgeT0yNTUmdjtnLmRhdGFbZCsoeT4+NSldfD0xPDx5fShkLGcsaCl9ZnVuY3Rpb24gYmQoZCxnLGgpe2lmKGgmajAuT3B0aW9uYWwpcmV0dXJuIGQ7aWkoKX1mdW5jdGlvbiB2OShkLGcsaCx2KXtpZihoJmowLk9wdGlv''@;'; put 'put ''bmFsJiZ2b2lkIDA9PT12JiYodj1udWxsKSwwPT0oaCYoajAuU2VsZnxqMC5Ib3N0KSkpe2NvbnN0IHk9ZFs5XSxDPV8wKHZvaWQgMCk7dHJ5e3JldHVybiB5P3kuZ2V0KGcsdixoJmowLk9wdGlvbmFsKTpnYyhnLHYsaCZqMC5PcHRpb25hbCl9ZmluYWxseXtfMChDKX19cmV0dXJuIGJkKHYs''@;'; put 'put ''MCxoKX1mdW5jdGlvbiB0bShkLGcsaCx2PWowLkRlZmF1bHQseSl7aWYobnVsbCE9PWQpe2lmKDEwMjQmZ1syXSl7Y29uc3QgST1mdW5jdGlvbiBYdShkLGcsaCx2LHkpe2xldCBDPWQsST1nO2Zvcig7bnVsbCE9PUMmJm51bGwhPT1JJiYxMDI0JklbMl0mJiEoMjU2JklbMl0pOyl7Y29uc3Qg''@;'; put 'put ''Wj1COChDLEksaCx2fGowLlNlbGYscGYpO2lmKFohPT1wZilyZXR1cm4gWjtsZXQgdWU9Qy5wYXJlbnQ7aWYoIXVlKXtjb25zdCBfZT1JWzIxXTtpZihfZSl7Y29uc3QgQmU9X2UuZ2V0KGgscGYsdik7aWYoQmUhPT1wZilyZXR1cm4gQmV9dWU9RHUoSSksST1JWzE1XX1DPXVlfXJldHVybiB5''@;'; put 'put ''fShkLGcsaCx2LHBmKTtpZihJIT09cGYpcmV0dXJuIEl9Y29uc3QgQz1COChkLGcsaCx2LHBmKTtpZihDIT09cGYpcmV0dXJuIEN9cmV0dXJuIHY5KGcsaCx2LHkpfWZ1bmN0aW9uIEI4KGQsZyxoLHYseSl7Y29uc3QgQz1mdW5jdGlvbiByNihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0''@;'; put 'put ''dXJuIGQuY2hhckNvZGVBdCgwKXx8MDtjb25zdCBnPWQuaGFzT3duUHJvcGVydHkobjIpP2RbbjJdOnZvaWQgMDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGc/Zz49MD8yNTUmZzpWTTpnfShoKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQyl7aWYoIWVvKGcsZCx2KSlyZXR1cm4gdiZqMC5Ib3N0''@;'; put 'put ''P2JkKHksMCx2KTp2OShnLGgsdix5KTt0cnl7Y29uc3QgST1DKHYpO2lmKG51bGwhPUl8fHYmajAuT3B0aW9uYWwpcmV0dXJuIEk7aWkoKX1maW5hbGx5e1Q4KCl9fWVsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBDKXtsZXQgST1udWxsLFo9UjgoZCxnKSx1ZT0tMSxfZT12JmowLkhvc3Q/Z1sx''@;'; put 'put ''Nl1bNl06bnVsbDtmb3IoKC0xPT09Wnx8diZqMC5Ta2lwU2VsZikmJih1ZT0tMT09PVo/QWMoZCxnKTpnW1orOF0sLTEhPT11ZSYmQTkodiwhMSk/KEk9Z1sxXSxaPWN1KHVlKSxnPWRmKHVlLGcpKTpaPS0xKTstMSE9PVo7KXtjb25zdCBCZT1nWzFdO2lmKHViKEMsWixCZS5kYXRhKSl7Y29u''@;'; put 'put ''c3QgTmU9bjYoWixnLGgsSSx2LF9lKTtpZihOZSE9PXBmKXJldHVybiBOZX11ZT1nW1orOF0sLTEhPT11ZSYmQTkodixnWzFdLmRhdGFbWis4XT09PV9lKSYmdWIoQyxaLGcpPyhJPUJlLFo9Y3UodWUpLGc9ZGYodWUsZykpOlo9LTF9fXJldHVybiB5fWZ1bmN0aW9uIG42KGQsZyxoLHYseSxD''@;'; put 'put ''KXtjb25zdCBJPWdbMV0sWj1JLmRhdGFbZCs4XSxCZT1KdShaLEksaCxudWxsPT12P2tzKFopJiZQcjp2IT1JJiYwIT0oMyZaLnR5cGUpLHkmajAuSG9zdCYmQz09PVopO3JldHVybiBudWxsIT09QmU/VDQoZyxJLEJlLFopOnBmfWZ1bmN0aW9uIEp1KGQsZyxoLHYseSl7Y29uc3QgQz1kLnBy''@;'; put 'put ''b3ZpZGVySW5kZXhlcyxJPWcuZGF0YSxaPTEwNDg1NzUmQyx1ZT1kLmRpcmVjdGl2ZVN0YXJ0LEJlPUM+PjIwLEtlPXk/WitCZTpkLmRpcmVjdGl2ZUVuZDtmb3IobGV0IHB0PXY/WjpaK0JlO3B0PEtlO3B0Kyspe2NvbnN0IE90PUlbcHRdO2lmKHB0PHVlJiZoPT09T3R8fHB0Pj11ZSYmT3Qu''@;'; put 'put ''dHlwZT09PWgpcmV0dXJuIHB0fWlmKHkpe2NvbnN0IHB0PUlbdWVdO2lmKHB0JiZWZihwdCkmJnB0LnR5cGU9PT1oKXJldHVybiB1ZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBUNChkLGcsaCx2KXtsZXQgeT1kW2hdO2NvbnN0IEM9Zy5kYXRhO2lmKGZ1bmN0aW9uIGEwKGQpe3JldHVybiBkIGlu''@;'; put 'put ''c3RhbmNlb2Ygd2R9KHkpKXtjb25zdCBJPXk7SS5yZXNvbHZpbmcmJmZ1bmN0aW9uIGdyKGQsZyl7Y29uc3QgaD1nP2AuIERlcGVuZGVuY3kgcGF0aDogJHtnLmpvaW4oIiA+ICIpfSA+ICR7ZH1gOiIiO3Rocm93IG5ldyBlbigtMjAwLGBDaXJjdWxhciBkZXBlbmRlbmN5IGluIERJIGRldGVj''@;'; put 'put ''dGVkIGZvciAke2R9JHtofWApfShmdW5jdGlvbiBvcihkKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZD9kLm5hbWV8fGQudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBkLnR5cGU/ZC50eXBlLm5hbWV8fGQudHlwZS50b1N0cmlu''@;'; put 'put ''ZygpOkpuKGQpfShDW2hdKSk7Y29uc3QgWj1MOChJLmNhblNlZVZpZXdQcm92aWRlcnMpO0kucmVzb2x2aW5nPSEwO2NvbnN0IHVlPUkuaW5qZWN0SW1wbD9fMChJLmluamVjdEltcGwpOm51bGw7ZW8oZCx2LGowLkRlZmF1bHQpO3RyeXt5PWRbaF09SS5mYWN0b3J5KHZvaWQgMCxDLGQsdiks''@;'; put 'put ''Zy5maXJzdENyZWF0ZVBhc3MmJmg+PXYuZGlyZWN0aXZlU3RhcnQmJmZ1bmN0aW9uIHcyKGQsZyxoKXtjb25zdHtuZ09uQ2hhbmdlczp2LG5nT25Jbml0OnksbmdEb0NoZWNrOkN9PWcudHlwZS5wcm90b3R5cGU7aWYodil7Y29uc3QgST1mOShnKTsoaC5wcmVPcmRlckhvb2tzfHwoaC5wcmVP''@;'; put 'put ''cmRlckhvb2tzPVtdKSkucHVzaChkLEkpLChoLnByZU9yZGVyQ2hlY2tIb29rc3x8KGgucHJlT3JkZXJDaGVja0hvb2tzPVtdKSkucHVzaChkLEkpfXkmJihoLnByZU9yZGVySG9va3N8fChoLnByZU9yZGVySG9va3M9W10pKS5wdXNoKDAtZCx5KSxDJiYoKGgucHJlT3JkZXJIb29rc3x8KGgu''@;'; put 'put ''cHJlT3JkZXJIb29rcz1bXSkpLnB1c2goZCxDKSwoaC5wcmVPcmRlckNoZWNrSG9va3N8fChoLnByZU9yZGVyQ2hlY2tIb29rcz1bXSkpLnB1c2goZCxDKSl9KGgsQ1toXSxnKX1maW5hbGx5e251bGwhPT11ZSYmXzAodWUpLEw4KFopLEkucmVzb2x2aW5nPSExLFQ4KCl9fXJldHVybiB5fWZ1''@;'; put 'put ''bmN0aW9uIHViKGQsZyxoKXtyZXR1cm4hIShoW2crKGQ+PjUpXSYxPDxkKX1mdW5jdGlvbiBBOShkLGcpe3JldHVybiEoZCZqMC5TZWxmfHxkJmowLkhvc3QmJmcpfWNsYXNzIEk0e2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fdE5vZGU9Zyx0aGlzLl9sVmlldz1ofWdldChnLGgsdil7cmV0dXJu''@;'; put 'put ''IHRtKHRoaXMuX3ROb2RlLHRoaXMuX2xWaWV3LGcsdixoKX19ZnVuY3Rpb24gVk0oKXtyZXR1cm4gbmV3IEk0KFh0KCksUHQoKSl9ZnVuY3Rpb24gZmwoZCl7cmV0dXJuIEIxKCgpPT57Y29uc3QgZz1kLnByb3RvdHlwZS5jb25zdHJ1Y3RvcixoPWdbZHNdfHxubShnKSx2PU9iamVjdC5wcm90''@;'; put 'put ''b3R5cGU7bGV0IHk9T2JqZWN0LmdldFByb3RvdHlwZU9mKGQucHJvdG90eXBlKS5jb25zdHJ1Y3Rvcjtmb3IoO3kmJnkhPT12Oyl7Y29uc3QgQz15W2RzXXx8bm0oeSk7aWYoQyYmQyE9PWgpcmV0dXJuIEM7eT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoeSl9cmV0dXJuIEM9Pm5ldyBDfSl9ZnVu''@;'; put 'put ''Y3Rpb24gbm0oZCl7cmV0dXJuIGtuKGQpPygpPT57Y29uc3QgZz1ubShHdChkKSk7cmV0dXJuIGcmJmcoKX06amYoZCl9ZnVuY3Rpb24gRHUoZCl7Y29uc3QgZz1kWzFdLGg9Zy50eXBlO3JldHVybiAyPT09aD9nLmRlY2xUTm9kZToxPT09aD9kWzZdOm51bGx9ZnVuY3Rpb24gZzMoZCl7cmV0''@;'; put 'put ''dXJuIGZ1bmN0aW9uIHNiKGQsZyl7aWYoImNsYXNzIj09PWcpcmV0dXJuIGQuY2xhc3NlcztpZigic3R5bGUiPT09ZylyZXR1cm4gZC5zdHlsZXM7Y29uc3QgaD1kLmF0dHJzO2lmKGgpe2NvbnN0IHY9aC5sZW5ndGg7bGV0IHk9MDtmb3IoO3k8djspe2NvbnN0IEM9aFt5XTtpZihzcyhDKSli''@;'; put 'put ''cmVhaztpZigwPT09Qyl5Kz0yO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBDKWZvcih5Kys7eTx2JiYic3RyaW5nIj09dHlwZW9mIGhbeV07KXkrKztlbHNle2lmKEM9PT1nKXJldHVybiBoW3krMV07eSs9Mn19fXJldHVybiBudWxsfShYdCgpLGQpfWNvbnN0IG82PSJfX3BhcmFtZXRlcnNf''@;'; put 'put ''XyI7ZnVuY3Rpb24gV2YoZCxnLGgpe3JldHVybiBCMSgoKT0+e2NvbnN0IHY9ZnVuY3Rpb24gUDgoZCl7cmV0dXJuIGZ1bmN0aW9uKC4uLmgpe2lmKGQpe2NvbnN0IHY9ZCguLi5oKTtmb3IoY29uc3QgeSBpbiB2KXRoaXNbeV09dlt5XX19fShnKTtmdW5jdGlvbiB5KC4uLkMpe2lmKHRoaXMg''@;'; put 'put ''aW5zdGFuY2VvZiB5KXJldHVybiB2LmFwcGx5KHRoaXMsQyksdGhpcztjb25zdCBJPW5ldyB5KC4uLkMpO3JldHVybiBaLmFubm90YXRpb249SSxaO2Z1bmN0aW9uIFoodWUsX2UsQmUpe2NvbnN0IE5lPXVlLmhhc093blByb3BlcnR5KG82KT91ZVtvNl06T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; put 'put ''KHVlLG82LHt2YWx1ZTpbXX0pW282XTtmb3IoO05lLmxlbmd0aDw9QmU7KU5lLnB1c2gobnVsbCk7cmV0dXJuKE5lW0JlXT1OZVtCZV18fFtdKS5wdXNoKEkpLHVlfX1yZXR1cm4gaCYmKHkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaC5wcm90b3R5cGUpKSx5LnByb3RvdHlwZS5uZ01ldGFk''@;'; put 'put ''YXRhTmFtZT1kLHkuYW5ub3RhdGlvbkNscz15LHl9KX1jbGFzcyB6ZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuX2Rlc2M9Zyx0aGlzLm5nTWV0YWRhdGFOYW1lPSJJbmplY3Rpb25Ub2tlbiIsdGhpcy5cdTAyNzVwcm92PXZvaWQgMCwibnVtYmVyIj09dHlwZW9mIGg/dGhpcy5fX05HX0VMRU1F''@;'; put 'put ''TlRfSURfXz1oOnZvaWQgMCE9PWgmJih0aGlzLlx1MDI3NXByb3Y9QWkoe3Rva2VuOnRoaXMscHJvdmlkZWRJbjpoLnByb3ZpZGVkSW58fCJyb290IixmYWN0b3J5OmguZmFjdG9yeX0pKX1nZXQgbXVsdGkoKXtyZXR1cm4gdGhpc310b1N0cmluZygpe3JldHVybmBJbmplY3Rpb25Ub2tlbiAk''@;'; put 'put ''e3RoaXMuX2Rlc2N9YH19Y29uc3QgV2M9RnVuY3Rpb247ZnVuY3Rpb24gZ2YoZCxnKXt2b2lkIDA9PT1nJiYoZz1kKTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKyl7bGV0IHY9ZFtoXTtBcnJheS5pc0FycmF5KHYpPyhnPT09ZCYmKGc9ZC5zbGljZSgwLGgpKSxnZih2LGcpKTpnIT09ZCYm''@;'; put 'put ''Zy5wdXNoKHYpfXJldHVybiBnfWZ1bmN0aW9uIF9kKGQsZyl7ZC5mb3JFYWNoKGg9PkFycmF5LmlzQXJyYXkoaCk/X2QoaCxnKTpnKGgpKX1mdW5jdGlvbiBmYihkLGcsaCl7Zz49ZC5sZW5ndGg/ZC5wdXNoKGgpOmQuc3BsaWNlKGcsMCxoKX1mdW5jdGlvbiBDZChkLGcpe3JldHVybiBnPj1k''@;'; put 'put ''Lmxlbmd0aC0xP2QucG9wKCk6ZC5zcGxpY2UoZywxKVswXX1mdW5jdGlvbiBtMyhkLGcpe2NvbnN0IGg9W107Zm9yKGxldCB2PTA7djxkO3YrKyloLnB1c2goZyk7cmV0dXJuIGh9ZnVuY3Rpb24gWWMoZCxnLGgpe2xldCB2PUY4KGQsZyk7cmV0dXJuIHY+PTA/ZFsxfHZdPWg6KHY9fnYsZnVu''@;'; put 'put ''Y3Rpb24gbDYoZCxnLGgsdil7bGV0IHk9ZC5sZW5ndGg7aWYoeT09ZylkLnB1c2goaCx2KTtlbHNlIGlmKDE9PT15KWQucHVzaCh2LGRbMF0pLGRbMF09aDtlbHNle2Zvcih5LS0sZC5wdXNoKGRbeS0xXSxkW3ldKTt5Pmc7KWRbeV09ZFt5LTJdLHktLTtkW2ddPWgsZFtnKzFdPXZ9fShkLHYs''@;'; put 'put ''ZyxoKSksdn1mdW5jdGlvbiBpbShkLGcpe2NvbnN0IGg9RjgoZCxnKTtpZihoPj0wKXJldHVybiBkWzF8aF19ZnVuY3Rpb24gRjgoZCxnKXtyZXR1cm4gZnVuY3Rpb24gb20oZCxnLGgpe2xldCB2PTAseT1kLmxlbmd0aD4+aDtmb3IoO3khPT12Oyl7Y29uc3QgQz12Kyh5LXY+PjEpLEk9ZFtD''@;'; put 'put ''PDxoXTtpZihnPT09SSlyZXR1cm4gQzw8aDtJPmc/eT1DOnY9QysxfXJldHVybn4oeTw8aCl9KGQsZywxKX1jb25zdCBIOD17fSxOOD0iX19OR19ESV9GTEFHX18iLEQ0PSJuZ1RlbXBUb2tlblBhdGgiLEdNPS9cbi9nbSxwYj0iX19zb3VyY2UiO2xldCBWODtmdW5jdGlvbiBqOChkKXtjb25z''@;'; put 'put ''dCBnPVY4O3JldHVybiBWOD1kLGd9ZnVuY3Rpb24gX1IoZCxnPWowLkRlZmF1bHQpe2lmKHZvaWQgMD09PVY4KXRocm93IG5ldyBlbigtMjAzLCExKTtyZXR1cm4gbnVsbD09PVY4P2djKGQsdm9pZCAwLGcpOlY4LmdldChkLGcmajAuT3B0aW9uYWw/bnVsbDp2b2lkIDAsZyl9ZnVuY3Rpb24g''@;'; put 'put ''Q2koZCxnPWowLkRlZmF1bHQpe3JldHVybihmdW5jdGlvbiB2bigpe3JldHVybiBCbH0oKXx8X1IpKEd0KGQpLGcpfWZ1bmN0aW9uIGgyKGQsZz1qMC5EZWZhdWx0KXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGcmJihnPTB8KGcub3B0aW9uYWwmJjgpfChnLmhvc3QmJjEpfChnLnNlbGYmJjIp''@;'; put 'put ''fChnLnNraXBTZWxmJiY0KSksQ2koZCxnKX1mdW5jdGlvbiBiOShkKXtjb25zdCBnPVtdO2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdCB2PUd0KGRbaF0pO2lmKEFycmF5LmlzQXJyYXkodikpe2lmKDA9PT12Lmxlbmd0aCl0aHJvdyBuZXcgZW4oOTAwLCExKTtsZXQgeSxDPWow''@;'; put 'put ''LkRlZmF1bHQ7Zm9yKGxldCBJPTA7STx2Lmxlbmd0aDtJKyspe2NvbnN0IFo9dltJXSx1ZT1DUihaKTsibnVtYmVyIj09dHlwZW9mIHVlPy0xPT09dWU/eT1aLnRva2VuOkN8PXVlOnk9Wn1nLnB1c2goQ2koeSxDKSl9ZWxzZSBnLnB1c2goQ2kodikpfXJldHVybiBnfWZ1bmN0aW9uIGxtKGQs''@;'; put 'put ''Zyl7cmV0dXJuIGRbTjhdPWcsZC5wcm90b3R5cGVbTjhdPWcsZH1mdW5jdGlvbiBDUihkKXtyZXR1cm4gZFtOOF19Y29uc3QgbWY9bG0oV2YoIk9wdGlvbmFsIiksOCksTDQ9bG0oV2YoIlNraXBTZWxmIiksNCk7bGV0IG1iLEc4LEEzO2Z1bmN0aW9uIFlmKGQpe3ZhciBnO3JldHVybihudWxs''@;'; put 'put ''PT09KGc9ZnVuY3Rpb24gY20oKXtpZih2b2lkIDA9PT1HOCYmKEc4PW51bGwsUGwudHJ1c3RlZFR5cGVzKSl0cnl7Rzg9UGwudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciIse2NyZWF0ZUhUTUw6ZD0+ZCxjcmVhdGVTY3JpcHQ6ZD0+ZCxjcmVhdGVTY3JpcHRVUkw6ZD0+ZH0p''@;'; put 'put ''fWNhdGNoKGQpe31yZXR1cm4gRzh9KCkpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNyZWF0ZUhUTUwoZCkpfHxkfWZ1bmN0aW9uIEcxKGQpe3ZhciBnO3JldHVybihudWxsPT09KGc9ZnVuY3Rpb24gQWIoKXtpZih2b2lkIDA9PT1BMyYmKEEzPW51bGwsUGwudHJ1c3RlZFR5cGVzKSl0cnl7QTM9''@;'; put 'put ''UGwudHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeSgiYW5ndWxhciN1bnNhZmUtYnlwYXNzIix7Y3JlYXRlSFRNTDpkPT5kLGNyZWF0ZVNjcmlwdDpkPT5kLGNyZWF0ZVNjcmlwdFVSTDpkPT5kfSl9Y2F0Y2goZCl7fXJldHVybiBBM30oKSl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY3JlYXRlSFRN''@;'; put 'put ''TChkKSl8fGR9Y2xhc3MgTzR7Y29uc3RydWN0b3IoZyl7dGhpcy5jaGFuZ2luZ1RoaXNCcmVha3NBcHBsaWNhdGlvblNlY3VyaXR5PWd9dG9TdHJpbmcoKXtyZXR1cm5gU2FmZVZhbHVlIG11c3QgdXNlIFtwcm9wZXJ0eV09YmluZGluZzogJHt0aGlzLmNoYW5naW5nVGhpc0JyZWFrc0FwcGxp''@;'; put 'put ''Y2F0aW9uU2VjdXJpdHl9IChzZWUgaHR0cHM6Ly9nLmNvL25nL3NlY3VyaXR5I3hzcylgfX1jbGFzcyBobSBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIkhUTUwifX1jbGFzcyBtYSBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIlN0eWxlIn19Y2xhc3MgdTYgZXh0ZW5k''@;'; put 'put ''cyBPNHtnZXRUeXBlTmFtZSgpe3JldHVybiJTY3JpcHQifX1jbGFzcyBobCBleHRlbmRzIE80e2dldFR5cGVOYW1lKCl7cmV0dXJuIlVSTCJ9fWNsYXNzIFVmIGV4dGVuZHMgTzR7Z2V0VHlwZU5hbWUoKXtyZXR1cm4iUmVzb3VyY2VVUkwifX1mdW5jdGlvbiBkMihkKXtyZXR1cm4gZCBpbnN0''@;'; put 'put ''YW5jZW9mIE80P2QuY2hhbmdpbmdUaGlzQnJlYWtzQXBwbGljYXRpb25TZWN1cml0eTpkfWZ1bmN0aW9uICR1KGQsZyl7Y29uc3QgaD1mdW5jdGlvbiBrYShkKXtyZXR1cm4gZCBpbnN0YW5jZW9mIE80JiZkLmdldFR5cGVOYW1lKCl8fG51bGx9KGQpO2lmKG51bGwhPWgmJmghPT1nKXtpZigi''@;'; put 'put ''UmVzb3VyY2VVUkwiPT09aCYmIlVSTCI9PT1nKXJldHVybiEwO3Rocm93IG5ldyBFcnJvcihgUmVxdWlyZWQgYSBzYWZlICR7Z30sIGdvdCBhICR7aH0gKHNlZSBodHRwczovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApfXJldHVybiBoPT09Z31jbGFzcyB4aHtjb25zdHJ1Y3RvcihnKXt0aGlz''@;'; put 'put ''LmluZXJ0RG9jdW1lbnRIZWxwZXI9Z31nZXRJbmVydEJvZHlFbGVtZW50KGcpe2c9Ijxib2R5PjxyZW1vdmU+PC9yZW1vdmU+IitnO3RyeXtjb25zdCBoPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKFlmKGcpLCJ0ZXh0L2h0bWwiKS5ib2R5O3JldHVybiBudWxsPT09''@;'; put 'put ''aD90aGlzLmluZXJ0RG9jdW1lbnRIZWxwZXIuZ2V0SW5lcnRCb2R5RWxlbWVudChnKTooaC5yZW1vdmVDaGlsZChoLmZpcnN0Q2hpbGQpLGgpfWNhdGNoKGgpe3JldHVybiBudWxsfX19Y2xhc3MgckV7Y29uc3RydWN0b3IoZyl7aWYodGhpcy5kZWZhdWx0RG9jPWcsdGhpcy5pbmVydERvY3Vt''@;'; put 'put ''ZW50PXRoaXMuZGVmYXVsdERvYy5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoInNhbml0aXphdGlvbi1pbmVydCIpLG51bGw9PXRoaXMuaW5lcnREb2N1bWVudC5ib2R5KXtjb25zdCBoPXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJodG1sIik7dGhpcy5pbmVy''@;'; put 'put ''dERvY3VtZW50LmFwcGVuZENoaWxkKGgpO2NvbnN0IHY9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJvZHkiKTtoLmFwcGVuZENoaWxkKHYpfX1nZXRJbmVydEJvZHlFbGVtZW50KGcpe2NvbnN0IGg9dGhpcy5pbmVydERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRl''@;'; put 'put ''Iik7aWYoImNvbnRlbnQiaW4gaClyZXR1cm4gaC5pbm5lckhUTUw9WWYoZyksaDtjb25zdCB2PXRoaXMuaW5lcnREb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7cmV0dXJuIHYuaW5uZXJIVE1MPVlmKGcpLHRoaXMuZGVmYXVsdERvYy5kb2N1bWVudE1vZGUmJnRoaXMuc3RyaXBDdXN0''@;'; put 'put ''b21Oc0F0dHJzKHYpLHZ9c3RyaXBDdXN0b21Oc0F0dHJzKGcpe2NvbnN0IGg9Zy5hdHRyaWJ1dGVzO2ZvcihsZXQgeT1oLmxlbmd0aC0xOzA8eTt5LS0pe2NvbnN0IEk9aC5pdGVtKHkpLm5hbWU7KCJ4bWxuczpuczEiPT09SXx8MD09PUkuaW5kZXhPZigibnMxOiIpKSYmZy5yZW1vdmVBdHRy''@;'; put 'put ''aWJ1dGUoSSl9bGV0IHY9Zy5maXJzdENoaWxkO2Zvcig7djspdi5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZ0aGlzLnN0cmlwQ3VzdG9tTnNBdHRycyh2KSx2PXYubmV4dFNpYmxpbmd9fWNvbnN0IE9SPS9eKD86KD86aHR0cHM/fG1haWx0b3xmdHB8dGVsfGZpbGV8c21zKTp8W14m''@;'; put 'put ''Oi8/I10qKD86Wy8/I118JCkpL2dpLGlFPS9eZGF0YTooPzppbWFnZVwvKD86Ym1wfGdpZnxqcGVnfGpwZ3xwbmd8dGlmZnx3ZWJwKXx2aWRlb1wvKD86bXBlZ3xtcDR8b2dnfHdlYm0pfGF1ZGlvXC8oPzptcDN8b2dhfG9nZ3xvcHVzKSk7YmFzZTY0LFthLXowLTkrXC9dKz0qJC9pO2Z1bmN0''@;'; put 'put ''aW9uIHZmKGQpe3JldHVybihkPVN0cmluZyhkKSkubWF0Y2goT1IpfHxkLm1hdGNoKGlFKT9kOiJ1bnNhZmU6IitkfWZ1bmN0aW9uIG9FKGQpe3JldHVybihkPVN0cmluZyhkKSkuc3BsaXQoIiwiKS5tYXAoZz0+dmYoZy50cmltKCkpKS5qb2luKCIsICIpfWZ1bmN0aW9uIHczKGQpe2NvbnN0''@;'; put 'put ''IGc9e307Zm9yKGNvbnN0IGggb2YgZC5zcGxpdCgiLCIpKWdbaF09ITA7cmV0dXJuIGd9ZnVuY3Rpb24gcG0oLi4uZCl7Y29uc3QgZz17fTtmb3IoY29uc3QgaCBvZiBkKWZvcihjb25zdCB2IGluIGgpaC5oYXNPd25Qcm9wZXJ0eSh2KSYmKGdbdl09ITApO3JldHVybiBnfWNvbnN0IGFFPXcz''@;'; put 'put ''KCJhcmVhLGJyLGNvbCxocixpbWcsd2JyIiksbEU9dzMoImNvbGdyb3VwLGRkLGR0LGxpLHAsdGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdHIiKSxzRT13MygicnAscnQiKSx5Yj1wbShhRSxwbShsRSx3MygiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJsb2NrcXVvdGUsY2FwdGlvbixjZW50ZXIs''@;'; put 'put ''ZGVsLGRldGFpbHMsZGlhbG9nLGRpcixkaXYsZGwsZmlndXJlLGZpZ2NhcHRpb24sZm9vdGVyLGgxLGgyLGgzLGg0LGg1LGg2LGhlYWRlcixoZ3JvdXAsaHIsaW5zLG1haW4sbWFwLG1lbnUsbmF2LG9sLHByZSxzZWN0aW9uLHN1bW1hcnksdGFibGUsdWwiKSkscG0oc0UsdzMoImEsYWJicixh''@;'; put 'put ''Y3JvbnltLGF1ZGlvLGIsYmRpLGJkbyxiaWcsYnIsY2l0ZSxjb2RlLGRlbCxkZm4sZW0sZm9udCxpLGltZyxpbnMsa2JkLGxhYmVsLG1hcCxtYXJrLHBpY3R1cmUscSxydWJ5LHJwLHJ0LHMsc2FtcCxzbWFsbCxzb3VyY2Usc3BhbixzdHJpa2Usc3Ryb25nLHN1YixzdXAsdGltZSx0cmFjayx0''@;'; put 'put ''dCx1LHZhcix2aWRlbyIpKSxwbShzRSxsRSkpLHdiPXczKCJiYWNrZ3JvdW5kLGNpdGUsaHJlZixpdGVtdHlwZSxsb25nZGVzYyxwb3N0ZXIsc3JjLHhsaW5rOmhyZWYiKSxiYj13Mygic3Jjc2V0IiksTTk9cG0od2IsYmIsdzMoImFiYnIsYWNjZXNza2V5LGFsaWduLGFsdCxhdXRvcGxheSxh''@;'; put 'put ''eGlzLGJnY29sb3IsYm9yZGVyLGNlbGxwYWRkaW5nLGNlbGxzcGFjaW5nLGNsYXNzLGNsZWFyLGNvbG9yLGNvbHMsY29sc3Bhbixjb21wYWN0LGNvbnRyb2xzLGNvb3JkcyxkYXRldGltZSxkZWZhdWx0LGRpcixkb3dubG9hZCxmYWNlLGhlYWRlcnMsaGVpZ2h0LGhpZGRlbixocmVmbGFuZyxo''@;'; put 'put ''c3BhY2UsaXNtYXAsaXRlbXNjb3BlLGl0ZW1wcm9wLGtpbmQsbGFiZWwsbGFuZyxsYW5ndWFnZSxsb29wLG1lZGlhLG11dGVkLG5vaHJlZixub3dyYXAsb3BlbixwcmVsb2FkLHJlbCxyZXYscm9sZSxyb3dzLHJvd3NwYW4scnVsZXMsc2NvcGUsc2Nyb2xsaW5nLHNoYXBlLHNpemUsc2l6ZXMs''@;'; put 'put ''c3BhbixzcmNsYW5nLHN0YXJ0LHN1bW1hcnksdGFiaW5kZXgsdGFyZ2V0LHRpdGxlLHRyYW5zbGF0ZSx0eXBlLHVzZW1hcCx2YWxpZ24sdmFsdWUsdnNwYWNlLHdpZHRoIiksdzMoImFyaWEtYWN0aXZlZGVzY2VuZGFudCxhcmlhLWF0b21pYyxhcmlhLWF1dG9jb21wbGV0ZSxhcmlhLWJ1c3ks''@;'; put 'put ''YXJpYS1jaGVja2VkLGFyaWEtY29sY291bnQsYXJpYS1jb2xpbmRleCxhcmlhLWNvbHNwYW4sYXJpYS1jb250cm9scyxhcmlhLWN1cnJlbnQsYXJpYS1kZXNjcmliZWRieSxhcmlhLWRldGFpbHMsYXJpYS1kaXNhYmxlZCxhcmlhLWRyb3BlZmZlY3QsYXJpYS1lcnJvcm1lc3NhZ2UsYXJpYS1l''@;'; put 'put ''eHBhbmRlZCxhcmlhLWZsb3d0byxhcmlhLWdyYWJiZWQsYXJpYS1oYXNwb3B1cCxhcmlhLWhpZGRlbixhcmlhLWludmFsaWQsYXJpYS1rZXlzaG9ydGN1dHMsYXJpYS1sYWJlbCxhcmlhLWxhYmVsbGVkYnksYXJpYS1sZXZlbCxhcmlhLWxpdmUsYXJpYS1tb2RhbCxhcmlhLW11bHRpbGluZSxh''@;'; put 'put ''cmlhLW11bHRpc2VsZWN0YWJsZSxhcmlhLW9yaWVudGF0aW9uLGFyaWEtb3ducyxhcmlhLXBsYWNlaG9sZGVyLGFyaWEtcG9zaW5zZXQsYXJpYS1wcmVzc2VkLGFyaWEtcmVhZG9ubHksYXJpYS1yZWxldmFudCxhcmlhLXJlcXVpcmVkLGFyaWEtcm9sZWRlc2NyaXB0aW9uLGFyaWEtcm93Y291''@;'; put 'put ''bnQsYXJpYS1yb3dpbmRleCxhcmlhLXJvd3NwYW4sYXJpYS1zZWxlY3RlZCxhcmlhLXNldHNpemUsYXJpYS1zb3J0LGFyaWEtdmFsdWVtYXgsYXJpYS12YWx1ZW1pbixhcmlhLXZhbHVlbm93LGFyaWEtdmFsdWV0ZXh0IikpLEU5PXczKCJzY3JpcHQsc3R5bGUsdGVtcGxhdGUiKTtjbGFzcyBQ''@;'; put 'put ''Untjb25zdHJ1Y3Rvcigpe3RoaXMuc2FuaXRpemVkU29tZXRoaW5nPSExLHRoaXMuYnVmPVtdfXNhbml0aXplQ2hpbGRyZW4oZyl7bGV0IGg9Zy5maXJzdENoaWxkLHY9ITA7Zm9yKDtoOylpZihoLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREU/dj10aGlzLnN0YXJ0RWxlbWVudChoKTpo''@;'; put 'put ''Lm5vZGVUeXBlPT09Tm9kZS5URVhUX05PREU/dGhpcy5jaGFycyhoLm5vZGVWYWx1ZSk6dGhpcy5zYW5pdGl6ZWRTb21ldGhpbmc9ITAsdiYmaC5maXJzdENoaWxkKWg9aC5maXJzdENoaWxkO2Vsc2UgZm9yKDtoOyl7aC5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFJiZ0aGlzLmVuZEVs''@;'; put 'put ''ZW1lbnQoaCk7bGV0IHk9dGhpcy5jaGVja0Nsb2JiZXJlZEVsZW1lbnQoaCxoLm5leHRTaWJsaW5nKTtpZih5KXtoPXk7YnJlYWt9aD10aGlzLmNoZWNrQ2xvYmJlcmVkRWxlbWVudChoLGgucGFyZW50Tm9kZSl9cmV0dXJuIHRoaXMuYnVmLmpvaW4oIiIpfXN0YXJ0RWxlbWVudChnKXtjb25z''@;'; put 'put ''dCBoPWcubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtpZigheWIuaGFzT3duUHJvcGVydHkoaCkpcmV0dXJuIHRoaXMuc2FuaXRpemVkU29tZXRoaW5nPSEwLCFFOS5oYXNPd25Qcm9wZXJ0eShoKTt0aGlzLmJ1Zi5wdXNoKCI8IiksdGhpcy5idWYucHVzaChoKTtjb25zdCB2PWcuYXR0cmlidXRl''@;'; put 'put ''cztmb3IobGV0IHk9MDt5PHYubGVuZ3RoO3krKyl7Y29uc3QgQz12Lml0ZW0oeSksST1DLm5hbWUsWj1JLnRvTG93ZXJDYXNlKCk7aWYoIU05Lmhhc093blByb3BlcnR5KFopKXt0aGlzLnNhbml0aXplZFNvbWV0aGluZz0hMDtjb250aW51ZX1sZXQgdWU9Qy52YWx1ZTt3YltaXSYmKHVlPXZm''@;'; put 'put ''KHVlKSksYmJbWl0mJih1ZT1vRSh1ZSkpLHRoaXMuYnVmLnB1c2goIiAiLEksJz0iJyx1RSh1ZSksJyInKX1yZXR1cm4gdGhpcy5idWYucHVzaCgiPiIpLCEwfWVuZEVsZW1lbnQoZyl7Y29uc3QgaD1nLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7eWIuaGFzT3duUHJvcGVydHkoaCkmJiFhRS5o''@;'; put 'put ''YXNPd25Qcm9wZXJ0eShoKSYmKHRoaXMuYnVmLnB1c2goIjwvIiksdGhpcy5idWYucHVzaChoKSx0aGlzLmJ1Zi5wdXNoKCI+IikpfWNoYXJzKGcpe3RoaXMuYnVmLnB1c2godUUoZykpfWNoZWNrQ2xvYmJlcmVkRWxlbWVudChnLGgpe2lmKGgmJihnLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9u''@;'; put 'put ''KGgpJk5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZKXRocm93IG5ldyBFcnJvcihgRmFpbGVkIHRvIHNhbml0aXplIGh0bWwgYmVjYXVzZSB0aGUgZWxlbWVudCBpcyBjbG9iYmVyZWQ6ICR7Zy5vdXRlckhU''@;'; put 'put ''TUx9YCk7cmV0dXJuIGh9fWNvbnN0IEZSPS9bXHVEODAwLVx1REJGRl1bXHVEQzAwLVx1REZGRl0vZyxIUj0vKFteXCMtfiB8IV0pL2c7ZnVuY3Rpb24gdUUoZCl7cmV0dXJuIGQucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoRlIsZnVuY3Rpb24oZyl7cmV0dXJuIiYjIisoMTAyNCoo''@;'; put 'put ''Zy5jaGFyQ29kZUF0KDApLTU1Mjk2KSsoZy5jaGFyQ29kZUF0KDEpLTU2MzIwKSs2NTUzNikrIjsifSkucmVwbGFjZShIUixmdW5jdGlvbihnKXtyZXR1cm4iJiMiK2cuY2hhckNvZGVBdCgwKSsiOyJ9KS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKX1sZXQgZ207''@;'; put 'put ''ZnVuY3Rpb24geDkoZCxnKXtsZXQgaD1udWxsO3RyeXtnbT1nbXx8ZnVuY3Rpb24gbkUoZCl7Y29uc3QgZz1uZXcgckUoZCk7cmV0dXJuIGZ1bmN0aW9uIExSKCl7dHJ5e3JldHVybiEhKG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoWWYoIiIpLCJ0ZXh0L2h0bWwiKX1j''@;'; put 'put ''YXRjaChkKXtyZXR1cm4hMX19KCk/bmV3IHhoKGcpOmd9KGQpO2xldCB2PWc/U3RyaW5nKGcpOiIiO2g9Z20uZ2V0SW5lcnRCb2R5RWxlbWVudCh2KTtsZXQgeT01LEM9djtkb3tpZigwPT09eSl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBzYW5pdGl6ZSBodG1sIGJlY2F1c2UgdGhlIGlu''@;'; put 'put ''cHV0IGlzIHVuc3RhYmxlIik7eS0tLHY9QyxDPWguaW5uZXJIVE1MLGg9Z20uZ2V0SW5lcnRCb2R5RWxlbWVudCh2KX13aGlsZSh2IT09Qyk7cmV0dXJuIFlmKChuZXcgUFIpLnNhbml0aXplQ2hpbGRyZW4oWTgoaCl8fGgpKX1maW5hbGx5e2lmKGgpe2NvbnN0IHY9WTgoaCl8fGg7Zm9yKDt2''@;'; put 'put ''LmZpcnN0Q2hpbGQ7KXYucmVtb3ZlQ2hpbGQodi5maXJzdENoaWxkKX19fWZ1bmN0aW9uIFk4KGQpe3JldHVybiJjb250ZW50ImluIGQmJmZ1bmN0aW9uIGIzKGQpe3JldHVybiBkLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJURU1QTEFURSI9PT1kLm5vZGVOYW1lfShkKT9kLmNv''@;'; put 'put ''bnRlbnQ6bnVsbH12YXIgYTI9KCgpPT4oKGEyPWEyfHx7fSlbYTIuTk9ORT0wXT0iTk9ORSIsYTJbYTIuSFRNTD0xXT0iSFRNTCIsYTJbYTIuU1RZTEU9Ml09IlNUWUxFIixhMlthMi5TQ1JJUFQ9M109IlNDUklQVCIsYTJbYTIuVVJMPTRdPSJVUkwiLGEyW2EyLlJFU09VUkNFX1VSTD01XT0i''@;'; put 'put ''UkVTT1VSQ0VfVVJMIixhMikpKCk7ZnVuY3Rpb24gVTgoZCl7Y29uc3QgZz1jNigpO3JldHVybiBnP0cxKGcuc2FuaXRpemUoYTIuSFRNTCxkKXx8IiIpOiR1KGQsIkhUTUwiKT9HMShkMihkKSk6eDkoZnVuY3Rpb24gcU0oKXtyZXR1cm4gdm9pZCAwIT09bWI/bWI6InVuZGVmaW5lZCIhPXR5''@;'; put 'put ''cGVvZiBkb2N1bWVudD9kb2N1bWVudDp2b2lkIDB9KCksSm4oZCkpfWZ1bmN0aW9uIFQ5KGQpe2NvbnN0IGc9YzYoKTtyZXR1cm4gZz9nLnNhbml0aXplKGEyLlVSTCxkKXx8IiI6JHUoZCwiVVJMIik/ZDIoZCk6dmYoSm4oZCkpfWZ1bmN0aW9uIGM2KCl7Y29uc3QgZD1QdCgpO3JldHVybiBk''@;'; put 'put ''JiZkWzEyXX1jb25zdCBmRT1uZXcgemUoIkVOVklST05NRU5UX0lOSVRJQUxJWkVSIikseWM9bmV3IHplKCJJTkpFQ1RPUiIsLTEpLHdjPW5ldyB6ZSgiSU5KRUNUT1JfREVGX1RZUEVTIik7Y2xhc3MgUjR7Z2V0KGcsaD1IOCl7aWYoaD09PUg4KXtjb25zdCB2PW5ldyBFcnJvcihgTnVsbElu''@;'; put 'put ''amVjdG9yRXJyb3I6IE5vIHByb3ZpZGVyIGZvciAke21uKGcpfSFgKTt0aHJvdyB2Lm5hbWU9Ik51bGxJbmplY3RvckVycm9yIix2fXJldHVybiBofX1mdW5jdGlvbiBUaCguLi5kKXtyZXR1cm57XHUwMjc1cHJvdmlkZXJzOkFmKDAsZCl9fWZ1bmN0aW9uIEFmKGQsLi4uZyl7Y29uc3QgaD1b''@;'; put 'put ''XSx2PW5ldyBTZXQ7bGV0IHk7cmV0dXJuIF9kKGcsQz0+e2NvbnN0IEk9QztKOChJLGgsW10sdikmJih5fHwoeT1bXSkseS5wdXNoKEkpKX0pLHZvaWQgMCE9PXkmJkMzKHksaCksaH1mdW5jdGlvbiBDMyhkLGcpe2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKXtjb25zdHtwcm92aWRlcnM6''@;'; put 'put ''eX09ZFtoXTtfZCh5LEM9PntnLnB1c2goQyl9KX19ZnVuY3Rpb24gSjgoZCxnLGgsdil7aWYoIShkPUd0KGQpKSlyZXR1cm4hMTtsZXQgeT1udWxsLEM9SGMoZCk7Y29uc3QgST0hQyYmdnMoZCk7aWYoQ3x8SSl7aWYoSSYmIUkuc3RhbmRhbG9uZSlyZXR1cm4hMTt5PWR9ZWxzZXtjb25zdCB1''@;'; put 'put ''ZT1kLm5nTW9kdWxlO2lmKEM9SGModWUpLCFDKXJldHVybiExO3k9dWV9Y29uc3QgWj12Lmhhcyh5KTtpZihJKXtpZihaKXJldHVybiExO2lmKHYuYWRkKHkpLEkuZGVwZW5kZW5jaWVzKXtjb25zdCB1ZT0iZnVuY3Rpb24iPT10eXBlb2YgSS5kZXBlbmRlbmNpZXM/SS5kZXBlbmRlbmNpZXMo''@;'; put 'put ''KTpJLmRlcGVuZGVuY2llcztmb3IoY29uc3QgX2Ugb2YgdWUpSjgoX2UsZyxoLHYpfX1lbHNle2lmKCFDKXJldHVybiExO3tpZihudWxsIT1DLmltcG9ydHMmJiFaKXtsZXQgX2U7di5hZGQoeSk7dHJ5e19kKEMuaW1wb3J0cyxCZT0+e0o4KEJlLGcsaCx2KSYmKF9lfHwoX2U9W10pLF9lLnB1''@;'; put 'put ''c2goQmUpKX0pfWZpbmFsbHl7fXZvaWQgMCE9PV9lJiZDMyhfZSxnKX1pZighWil7Y29uc3QgX2U9amYoeSl8fCgoKT0+bmV3IHkpO2cucHVzaCh7cHJvdmlkZTp5LHVzZUZhY3Rvcnk6X2UsZGVwczpaMH0se3Byb3ZpZGU6d2MsdXNlVmFsdWU6eSxtdWx0aTohMH0se3Byb3ZpZGU6ZkUsdXNl''@;'; put 'put ''VmFsdWU6KCk9PkNpKHkpLG11bHRpOiEwfSl9Y29uc3QgdWU9Qy5wcm92aWRlcnM7bnVsbD09dWV8fFp8fF9kKHVlLEJlPT57Zy5wdXNoKEJlKX0pfX1yZXR1cm4geSE9PWQmJnZvaWQgMCE9PWQucHJvdmlkZXJzfWNvbnN0IGhFPUJuKHtwcm92aWRlOlN0cmluZyx1c2VWYWx1ZTpCbn0pO2Z1''@;'; put 'put ''bmN0aW9uIEQ5KGQpe3JldHVybiBudWxsIT09ZCYmIm9iamVjdCI9PXR5cGVvZiBkJiZoRSBpbiBkfWZ1bmN0aW9uIGszKGQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkfWNvbnN0IHZtPW5ldyB6ZSgiU2V0IEluamVjdG9yIHNjb3BlLiIpLFMzPXt9LFpSPXt9O2xldCBoNjtmdW5jdGlv''@;'; put 'put ''biBNMygpe3JldHVybiB2b2lkIDA9PT1oNiYmKGg2PW5ldyBSNCksaDZ9Y2xhc3MgRTN7fWNsYXNzIGtiIGV4dGVuZHMgRTN7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoKSx0aGlzLnBhcmVudD1oLHRoaXMuc291cmNlPXYsdGhpcy5zY29wZXM9eSx0aGlzLnJlY29yZHM9bmV3IE1hcCx0''@;'; put 'put ''aGlzLl9uZ09uRGVzdHJveUhvb2tzPW5ldyBTZXQsdGhpcy5fb25EZXN0cm95SG9va3M9W10sdGhpcy5fZGVzdHJveWVkPSExLHgzKGcsST0+dGhpcy5wcm9jZXNzUHJvdmlkZXIoSSkpLHRoaXMucmVjb3Jkcy5zZXQoeWMsZDYodm9pZCAwLHRoaXMpKSx5LmhhcygiZW52aXJvbm1lbnQiKSYm''@;'; put 'put ''dGhpcy5yZWNvcmRzLnNldChFMyxkNih2b2lkIDAsdGhpcykpO2NvbnN0IEM9dGhpcy5yZWNvcmRzLmdldCh2bSk7bnVsbCE9QyYmInN0cmluZyI9PXR5cGVvZiBDLnZhbHVlJiZ0aGlzLnNjb3Blcy5hZGQoQy52YWx1ZSksdGhpcy5pbmplY3RvckRlZlR5cGVzPW5ldyBTZXQodGhpcy5nZXQo''@;'; put 'put ''d2MubXVsdGksWjAsajAuU2VsZikpfWdldCBkZXN0cm95ZWQoKXtyZXR1cm4gdGhpcy5fZGVzdHJveWVkfWRlc3Ryb3koKXt0aGlzLmFzc2VydE5vdERlc3Ryb3llZCgpLHRoaXMuX2Rlc3Ryb3llZD0hMDt0cnl7Zm9yKGNvbnN0IGcgb2YgdGhpcy5fbmdPbkRlc3Ryb3lIb29rcylnLm5nT25E''@;'; put 'put ''ZXN0cm95KCk7Zm9yKGNvbnN0IGcgb2YgdGhpcy5fb25EZXN0cm95SG9va3MpZygpfWZpbmFsbHl7dGhpcy5yZWNvcmRzLmNsZWFyKCksdGhpcy5fbmdPbkRlc3Ryb3lIb29rcy5jbGVhcigpLHRoaXMuaW5qZWN0b3JEZWZUeXBlcy5jbGVhcigpLHRoaXMuX29uRGVzdHJveUhvb2tzLmxlbmd0''@;'; put 'put ''aD0wfX1vbkRlc3Ryb3koZyl7dGhpcy5fb25EZXN0cm95SG9va3MucHVzaChnKX1ydW5JbkNvbnRleHQoZyl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCBoPWo4KHRoaXMpLHY9XzAodm9pZCAwKTt0cnl7cmV0dXJuIGcoKX1maW5hbGx5e2o4KGgpLF8wKHYpfX1nZXQoZyxoPUg4''@;'; put 'put ''LHY9ajAuRGVmYXVsdCl7dGhpcy5hc3NlcnROb3REZXN0cm95ZWQoKTtjb25zdCB5PWo4KHRoaXMpLEM9XzAodm9pZCAwKTt0cnl7aWYoISh2JmowLlNraXBTZWxmKSl7bGV0IFo9dGhpcy5yZWNvcmRzLmdldChnKTtpZih2b2lkIDA9PT1aKXtjb25zdCB1ZT1mdW5jdGlvbiBnRShkKXtyZXR1''@;'; put 'put ''cm4iZnVuY3Rpb24iPT10eXBlb2YgZHx8Im9iamVjdCI9PXR5cGVvZiBkJiZkIGluc3RhbmNlb2YgemV9KGcpJiZzYShnKTtaPXVlJiZ0aGlzLmluamVjdGFibGVEZWZJblNjb3BlKHVlKT9kNihrZChnKSxTMyk6bnVsbCx0aGlzLnJlY29yZHMuc2V0KGcsWil9aWYobnVsbCE9WilyZXR1cm4g''@;'; put 'put ''dGhpcy5oeWRyYXRlKGcsWil9cmV0dXJuKHYmajAuU2VsZj9NMygpOnRoaXMucGFyZW50KS5nZXQoZyxoPXYmajAuT3B0aW9uYWwmJmg9PT1IOD9udWxsOmgpfWNhdGNoKEkpe2lmKCJOdWxsSW5qZWN0b3JFcnJvciI9PT1JLm5hbWUpe2lmKChJW0Q0XT1JW0Q0XXx8W10pLnVuc2hpZnQobW4o''@;'; put 'put ''ZykpLHkpdGhyb3cgSTtyZXR1cm4gZnVuY3Rpb24ga1IoZCxnLGgsdil7Y29uc3QgeT1kW0Q0XTt0aHJvdyBnW3BiXSYmeS51bnNoaWZ0KGdbcGJdKSxkLm1lc3NhZ2U9ZnVuY3Rpb24gejEoZCxnLGgsdj1udWxsKXtkPWQmJiJcbiI9PT1kLmNoYXJBdCgwKSYmIlx1MDI3NSI9PWQuY2hhckF0''@;'; put 'put ''KDEpP2Quc2xpY2UoMik6ZDtsZXQgeT1tbihnKTtpZihBcnJheS5pc0FycmF5KGcpKXk9Zy5tYXAobW4pLmpvaW4oIiAtPiAiKTtlbHNlIGlmKCJvYmplY3QiPT10eXBlb2YgZyl7bGV0IEM9W107Zm9yKGxldCBJIGluIGcpaWYoZy5oYXNPd25Qcm9wZXJ0eShJKSl7bGV0IFo9Z1tJXTtDLnB1''@;'; put 'put ''c2goSSsiOiIrKCJzdHJpbmciPT10eXBlb2YgWj9KU09OLnN0cmluZ2lmeShaKTptbihaKSkpfXk9YHske0Muam9pbigiLCAiKX19YH1yZXR1cm5gJHtofSR7dj8iKCIrdisiKSI6IiJ9WyR7eX1dOiAke2QucmVwbGFjZShHTSwiXG4gICIpfWB9KCJcbiIrZC5tZXNzYWdlLHksaCx2KSxkLm5n''@;'; put 'put ''VG9rZW5QYXRoPXksZFtENF09bnVsbCxkfShJLGcsIlIzSW5qZWN0b3JFcnJvciIsdGhpcy5zb3VyY2UpfXRocm93IEl9ZmluYWxseXtfMChDKSxqOCh5KX19cmVzb2x2ZUluamVjdG9ySW5pdGlhbGl6ZXJzKCl7Y29uc3QgZz1qOCh0aGlzKSxoPV8wKHZvaWQgMCk7dHJ5e2NvbnN0IHY9dGhp''@;'; put 'put ''cy5nZXQoZkUubXVsdGksWjAsajAuU2VsZik7Zm9yKGNvbnN0IHkgb2Ygdil5KCl9ZmluYWxseXtqOChnKSxfMChoKX19dG9TdHJpbmcoKXtjb25zdCBnPVtdLGg9dGhpcy5yZWNvcmRzO2Zvcihjb25zdCB2IG9mIGgua2V5cygpKWcucHVzaChtbih2KSk7cmV0dXJuYFIzSW5qZWN0b3JbJHtn''@;'; put 'put ''LmpvaW4oIiwgIil9XWB9YXNzZXJ0Tm90RGVzdHJveWVkKCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBlbigyMDUsITEpfXByb2Nlc3NQcm92aWRlcihnKXtsZXQgaD1rMyhnPUd0KGcpKT9nOkd0KGcmJmcucHJvdmlkZSk7Y29uc3Qgdj1mdW5jdGlvbiBkRShkKXtyZXR1cm4gRDko''@;'; put 'put ''ZCk/ZDYodm9pZCAwLGQudXNlVmFsdWUpOmQ2KHBFKGQpLFMzKX0oZyk7aWYoazMoZyl8fCEwIT09Zy5tdWx0aSl0aGlzLnJlY29yZHMuZ2V0KGgpO2Vsc2V7bGV0IHk9dGhpcy5yZWNvcmRzLmdldChoKTt5fHwoeT1kNih2b2lkIDAsUzMsITApLHkuZmFjdG9yeT0oKT0+YjkoeS5tdWx0aSks''@;'; put 'put ''dGhpcy5yZWNvcmRzLnNldChoLHkpKSxoPWcseS5tdWx0aS5wdXNoKGcpfXRoaXMucmVjb3Jkcy5zZXQoaCx2KX1oeWRyYXRlKGcsaCl7cmV0dXJuIGgudmFsdWU9PT1TMyYmKGgudmFsdWU9WlIsaC52YWx1ZT1oLmZhY3RvcnkoKSksIm9iamVjdCI9PXR5cGVvZiBoLnZhbHVlJiZoLnZhbHVl''@;'; put 'put ''JiZmdW5jdGlvbiB6UihkKXtyZXR1cm4gbnVsbCE9PWQmJiJvYmplY3QiPT10eXBlb2YgZCYmImZ1bmN0aW9uIj09dHlwZW9mIGQubmdPbkRlc3Ryb3l9KGgudmFsdWUpJiZ0aGlzLl9uZ09uRGVzdHJveUhvb2tzLmFkZChoLnZhbHVlKSxoLnZhbHVlfWluamVjdGFibGVEZWZJblNjb3BlKGcp''@;'; put 'put ''e2lmKCFnLnByb3ZpZGVkSW4pcmV0dXJuITE7Y29uc3QgaD1HdChnLnByb3ZpZGVkSW4pO3JldHVybiJzdHJpbmciPT10eXBlb2YgaD8iYW55Ij09PWh8fHRoaXMuc2NvcGVzLmhhcyhoKTp0aGlzLmluamVjdG9yRGVmVHlwZXMuaGFzKGgpfX1mdW5jdGlvbiBrZChkKXtjb25zdCBnPXNhKGQp''@;'; put 'put ''LGg9bnVsbCE9PWc/Zy5mYWN0b3J5OmpmKGQpO2lmKG51bGwhPT1oKXJldHVybiBoO2lmKGQgaW5zdGFuY2VvZiB6ZSl0aHJvdyBuZXcgZW4oMjA0LCExKTtpZihkIGluc3RhbmNlb2YgRnVuY3Rpb24pcmV0dXJuIGZ1bmN0aW9uIEw5KGQpe2NvbnN0IGc9ZC5sZW5ndGg7aWYoZz4wKXRocm93''@;'; put 'put ''IG0zKGcsIj8iKSxuZXcgZW4oMjA0LCExKTtjb25zdCBoPWZ1bmN0aW9uIF9pKGQpe2NvbnN0IGc9ZCYmKGRbVTBdfHxkW1gwXSk7aWYoZyl7Y29uc3QgaD1mdW5jdGlvbiBvdShkKXtpZihkLmhhc093blByb3BlcnR5KCJuYW1lIikpcmV0dXJuIGQubmFtZTtjb25zdCBnPSgiIitkKS5tYXRj''@;'; put 'put ''aCgvXmZ1bmN0aW9uXHMqKFteXHMoXSspLyk7cmV0dXJuIG51bGw9PT1nPyIiOmdbMV19KGQpO3JldHVybiBjb25zb2xlLndhcm4oYERFUFJFQ0FURUQ6IERJIGlzIGluc3RhbnRpYXRpbmcgYSB0b2tlbiAiJHtofSIgdGhhdCBpbmhlcml0cyBpdHMgQEluamVjdGFibGUgZGVjb3JhdG9yIGJ1''@;'; put 'put ''dCBkb2VzIG5vdCBwcm92aWRlIG9uZSBpdHNlbGYuXG5UaGlzIHdpbGwgYmVjb21lIGFuIGVycm9yIGluIGEgZnV0dXJlIHZlcnNpb24gb2YgQW5ndWxhci4gUGxlYXNlIGFkZCBASW5qZWN0YWJsZSgpIHRvIHRoZSAiJHtofSIgY2xhc3MuYCksZ31yZXR1cm4gbnVsbH0oZCk7cmV0dXJuIG51''@;'; put 'put ''bGwhPT1oPygpPT5oLmZhY3RvcnkoZCk6KCk9Pm5ldyBkfShkKTt0aHJvdyBuZXcgZW4oMjA0LCExKX1mdW5jdGlvbiBwRShkLGcsaCl7bGV0IHY7aWYoazMoZCkpe2NvbnN0IHk9R3QoZCk7cmV0dXJuIGpmKHkpfHxrZCh5KX1pZihEOShkKSl2PSgpPT5HdChkLnVzZVZhbHVlKTtlbHNlIGlm''@;'; put 'put ''KGZ1bmN0aW9uIGY2KGQpe3JldHVybiEoIWR8fCFkLnVzZUZhY3RvcnkpfShkKSl2PSgpPT5kLnVzZUZhY3RvcnkoLi4uYjkoZC5kZXBzfHxbXSkpO2Vsc2UgaWYoZnVuY3Rpb24gWDgoZCl7cmV0dXJuISghZHx8IWQudXNlRXhpc3RpbmcpfShkKSl2PSgpPT5DaShHdChkLnVzZUV4aXN0aW5n''@;'; put 'put ''KSk7ZWxzZXtjb25zdCB5PUd0KGQmJihkLnVzZUNsYXNzfHxkLnByb3ZpZGUpKTtpZighZnVuY3Rpb24gTzkoZCl7cmV0dXJuISFkLmRlcHN9KGQpKXJldHVybiBqZih5KXx8a2QoeSk7dj0oKT0+bmV3IHkoLi4uYjkoZC5kZXBzKSl9cmV0dXJuIHZ9ZnVuY3Rpb24gZDYoZCxnLGg9ITEpe3Jl''@;'; put 'put ''dHVybntmYWN0b3J5OmQsdmFsdWU6ZyxtdWx0aTpoP1tdOnZvaWQgMH19ZnVuY3Rpb24gbUUoZCl7cmV0dXJuISFkLlx1MDI3NXByb3ZpZGVyc31mdW5jdGlvbiB4MyhkLGcpe2Zvcihjb25zdCBoIG9mIGQpQXJyYXkuaXNBcnJheShoKT94MyhoLGcpOm1FKGgpP3gzKGguXHUwMjc1cHJvdmlk''@;'; put 'put ''ZXJzLGcpOmcoaCl9Y2xhc3MgdkV7fWNsYXNzIHlFe3Jlc29sdmVDb21wb25lbnRGYWN0b3J5KGcpe3Rocm93IGZ1bmN0aW9uIEdSKGQpe2NvbnN0IGc9RXJyb3IoYE5vIGNvbXBvbmVudCBmYWN0b3J5IGZvdW5kIGZvciAke21uKGQpfS4gRGlkIHlvdSBhZGQgaXQgdG8gQE5nTW9kdWxlLmVu''@;'; put 'put ''dHJ5Q29tcG9uZW50cz9gKTtyZXR1cm4gZy5uZ0NvbXBvbmVudD1kLGd9KGcpfX1sZXQgU2Q9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuTlVMTD1uZXcgeUUsZH0pKCk7ZnVuY3Rpb24gd0UoKXtyZXR1cm4gcDYoWHQoKSxQdCgpKX1mdW5jdGlvbiBwNihkLGcpe3JldHVybiBuZXcgYm8odmMo''@;'; put 'put ''ZCxnKSl9bGV0IGJvPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5uYXRpdmVFbGVtZW50PWh9fXJldHVybiBkLl9fTkdfRUxFTUVOVF9JRF9fPXdFLGR9KSgpO2Z1bmN0aW9uIFI5KGQpe3JldHVybiBkIGluc3RhbmNlb2YgYm8/ZC5uYXRpdmVFbGVtZW50OmR9Y2xhc3MgTWR7''@;'; put 'put ''fWxldCBHYT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5fX05HX0VMRU1FTlRfSURfXz0oKT0+ZnVuY3Rpb24gWVIoKXtjb25zdCBkPVB0KCksaD1RdShYdCgpLmluZGV4LGQpO3JldHVybihUdShoKT9oOmQpWzExXX0oKSxkfSkoKSxiRT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVw''@;'; put 'put ''cm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9Pm51bGx9KSxkfSkoKTtjbGFzcyBQNHtjb25zdHJ1Y3RvcihnKXt0aGlzLmZ1bGw9Zyx0aGlzLm1ham9yPWcuc3BsaXQoIi4iKVswXSx0aGlzLm1pbm9yPWcuc3BsaXQoIi4iKVsxXSx0aGlzLnBhdGNoPWcuc3Bs''@;'; put 'put ''aXQoIi4iKS5zbGljZSgyKS5qb2luKCIuIil9fWNvbnN0IF9FPW5ldyBQNCgiMTQuMS4xIiksQjk9e307ZnVuY3Rpb24gU2IoZCl7cmV0dXJuIGQubmdPcmlnaW5hbEVycm9yfWNsYXNzIHY2e2NvbnN0cnVjdG9yKCl7dGhpcy5fY29uc29sZT1jb25zb2xlfWhhbmRsZUVycm9yKGcpe2NvbnN0''@;'; put 'put ''IGg9dGhpcy5fZmluZE9yaWdpbmFsRXJyb3IoZyk7dGhpcy5fY29uc29sZS5lcnJvcigiRVJST1IiLGcpLGgmJnRoaXMuX2NvbnNvbGUuZXJyb3IoIk9SSUdJTkFMIEVSUk9SIixoKX1fZmluZE9yaWdpbmFsRXJyb3IoZyl7bGV0IGg9ZyYmU2IoZyk7Zm9yKDtoJiZTYihoKTspaD1TYihoKTty''@;'; put 'put ''ZXR1cm4gaHx8bnVsbH19Y29uc3QgRWI9bmV3IE1hcDtsZXQgbkI9MDtjb25zdCBUYj0iX19uZ0NvbnRleHRfXyI7ZnVuY3Rpb24gcXUoZCxnKXtUdShnKT8oZFtUYl09Z1syMF0sZnVuY3Rpb24gaUIoZCl7RWIuc2V0KGRbMjBdLGQpfShnKSk6ZFtUYl09Z31mdW5jdGlvbiBibShkKXtjb25z''@;'; put 'put ''dCBnPWRbVGJdO3JldHVybiJudW1iZXIiPT10eXBlb2YgZz9mdW5jdGlvbiBvQihkKXtyZXR1cm4gRWIuZ2V0KGQpfHxudWxsfShnKTpnfHxudWxsfWZ1bmN0aW9uIEliKGQpe2NvbnN0IGc9Ym0oZCk7cmV0dXJuIGc/VHUoZyk/ZzpnLmxWaWV3Om51bGx9Y29uc3QgY0I9KCgpPT4oInVuZGVm''@;'; put 'put ''aW5lZCIhPXR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUmJnJlcXVlc3RBbmltYXRpb25GcmFtZXx8c2V0VGltZW91dCkuYmluZChQbCkpKCk7ZnVuY3Rpb24gTGIoZCl7cmV0dXJuIGQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlld31mdW5jdGlvbiBIbChkKXtyZXR1cm4gZC5vd25lckRv''@;'; put 'put ''Y3VtZW50fWZ1bmN0aW9uIGZCKGQpe3JldHVybiBkLm93bmVyRG9jdW1lbnQuYm9keX1mdW5jdGlvbiB5ZihkKXtyZXR1cm4gZCBpbnN0YW5jZW9mIEZ1bmN0aW9uP2QoKTpkfXZhciBmdT0oKCk9PigoZnU9ZnV8fHt9KVtmdS5JbXBvcnRhbnQ9MV09IkltcG9ydGFudCIsZnVbZnUuRGFzaENh''@;'; put 'put ''c2U9Ml09IkRhc2hDYXNlIixmdSkpKCk7ZnVuY3Rpb24gX20oZCxnKXtyZXR1cm4gdW5kZWZpbmVkKGQsZyl9ZnVuY3Rpb24gZTUoZCl7Y29uc3QgZz1kWzNdO3JldHVybiBzZihnKT9nWzNdOmd9ZnVuY3Rpb24gajkoZCl7cmV0dXJuIFBiKGRbMTNdKX1mdW5jdGlvbiBaOShkKXtyZXR1cm4g''@;'; put 'put ''UGIoZFs0XSl9ZnVuY3Rpb24gUGIoZCl7Zm9yKDtudWxsIT09ZCYmIXNmKGQpOylkPWRbNF07cmV0dXJuIGR9ZnVuY3Rpb24gQTYoZCxnLGgsdix5KXtpZihudWxsIT12KXtsZXQgQyxJPSExO3NmKHYpP0M9djpUdSh2KSYmKEk9ITAsdj12WzBdKTtjb25zdCBaPVgyKHYpOzA9PT1kJiZudWxs''@;'; put 'put ''IT09aD9udWxsPT15P3piKGcsaCxaKTpONChnLGgsWix5fHxudWxsLCEwKToxPT09ZCYmbnVsbCE9PWg/TjQoZyxoLFoseXx8bnVsbCwhMCk6Mj09PWQ/ZnVuY3Rpb24gSEUoZCxnLGgpe2NvbnN0IHY9Q20oZCxnKTt2JiZmdW5jdGlvbiBHOShkLGcsaCx2KXtkLnJlbW92ZUNoaWxkKGcsaCx2''@;'; put 'put ''KX0oZCx2LGcsaCl9KGcsWixJKTozPT09ZCYmZy5kZXN0cm95Tm9kZShaKSxudWxsIT1DJiZmdW5jdGlvbiBVOShkLGcsaCx2LHkpe2NvbnN0IEM9aFs3XTtDIT09WDIoaCkmJkE2KGcsZCx2LEMseSk7Zm9yKGxldCBaPTEwO1o8aC5sZW5ndGg7WisrKXtjb25zdCB1ZT1oW1pdO2ttKHVlWzFd''@;'; put 'put ''LHVlLGQsZyx2LEMpfX0oZyxkLEMsaCx5KX19ZnVuY3Rpb24gdDUoZCxnLGgpe3JldHVybiBkLmNyZWF0ZUVsZW1lbnQoZyxoKX1mdW5jdGlvbiBSRShkLGcpe2NvbnN0IGg9ZFs5XSx2PWguaW5kZXhPZihnKSx5PWdbM107NTEyJmdbMl0mJihnWzJdJj0tNTEzLHZkKHksLTEpKSxoLnNwbGlj''@;'; put 'put ''ZSh2LDEpfWZ1bmN0aW9uIE5iKGQsZyl7aWYoZC5sZW5ndGg8PTEwKXJldHVybjtjb25zdCBoPTEwK2csdj1kW2hdO2lmKHYpe2NvbnN0IHk9dlsxN107bnVsbCE9PXkmJnkhPT1kJiZSRSh5LHYpLGc+MCYmKGRbaC0xXVs0XT12WzRdKTtjb25zdCBDPUNkKGQsMTArZyk7IWZ1bmN0aW9uIHc2''@;'; put 'put ''KGQsZyl7a20oZCxnLGdbMTFdLDIsbnVsbCxudWxsKSxnWzBdPW51bGwsZ1s2XT1udWxsfSh2WzFdLHYpO2NvbnN0IEk9Q1sxOV07bnVsbCE9PUkmJkkuZGV0YWNoVmlldyhDWzFdKSx2WzNdPW51bGwsdls0XT1udWxsLHZbMl0mPS02NX1yZXR1cm4gdn1mdW5jdGlvbiBCRShkLGcpe2lmKCEo''@;'; put 'put ''MTI4JmdbMl0pKXtjb25zdCBoPWdbMTFdO2guZGVzdHJveU5vZGUmJmttKGQsZyxoLDMsbnVsbCxudWxsKSxmdW5jdGlvbiBvRyhkKXtsZXQgZz1kWzEzXTtpZighZylyZXR1cm4gejkoZFsxXSxkKTtmb3IoO2c7KXtsZXQgaD1udWxsO2lmKFR1KGcpKWg9Z1sxM107ZWxzZXtjb25zdCB2PWdb''@;'; put 'put ''MTBdO3YmJihoPXYpfWlmKCFoKXtmb3IoO2cmJiFnWzRdJiZnIT09ZDspVHUoZykmJno5KGdbMV0sZyksZz1nWzNdO251bGw9PT1nJiYoZz1kKSxUdShnKSYmejkoZ1sxXSxnKSxoPWcmJmdbNF19Zz1ofX0oZyl9fWZ1bmN0aW9uIHo5KGQsZyl7aWYoISgxMjgmZ1syXSkpe2dbMl0mPS02NSxn''@;'; put 'put ''WzJdfD0xMjgsZnVuY3Rpb24gcEIoZCxnKXtsZXQgaDtpZihudWxsIT1kJiZudWxsIT0oaD1kLmRlc3Ryb3lIb29rcykpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kz0yKXtjb25zdCB5PWdbaFt2XV07aWYoISh5IGluc3RhbmNlb2Ygd2QpKXtjb25zdCBDPWhbdisxXTtpZihBcnJheS5pc0Fy''@;'; put 'put ''cmF5KEMpKWZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSs9Mil7Y29uc3QgWj15W0NbSV1dLHVlPUNbSSsxXTt0cnl7dWUuY2FsbChaKX1maW5hbGx5e319ZWxzZSB0cnl7Qy5jYWxsKHkpfWZpbmFsbHl7fX19fShkLGcpLGZ1bmN0aW9uIFZiKGQsZyl7Y29uc3QgaD1kLmNsZWFudXAsdj1nWzdd''@;'; put 'put ''O2xldCB5PS0xO2lmKG51bGwhPT1oKWZvcihsZXQgQz0wO0M8aC5sZW5ndGgtMTtDKz0yKWlmKCJzdHJpbmciPT10eXBlb2YgaFtDXSl7Y29uc3QgST1oW0MrMV0sWj0iZnVuY3Rpb24iPT10eXBlb2YgST9JKGcpOlgyKGdbSV0pLHVlPXZbeT1oW0MrMl1dLF9lPWhbQyszXTsiYm9vbGVhbiI9''@;'; put 'put ''PXR5cGVvZiBfZT9aLnJlbW92ZUV2ZW50TGlzdGVuZXIoaFtDXSx1ZSxfZSk6X2U+PTA/dlt5PV9lXSgpOnZbeT0tX2VdLnVuc3Vic2NyaWJlKCksQys9Mn1lbHNle2NvbnN0IEk9dlt5PWhbQysxXV07aFtDXS5jYWxsKEkpfWlmKG51bGwhPT12KXtmb3IobGV0IEM9eSsxO0M8di5sZW5ndGg7''@;'; put 'put ''QysrKSgwLHZbQ10pKCk7Z1s3XT1udWxsfX0oZCxnKSwxPT09Z1sxXS50eXBlJiZnWzExXS5kZXN0cm95KCk7Y29uc3QgaD1nWzE3XTtpZihudWxsIT09aCYmc2YoZ1szXSkpe2ghPT1nWzNdJiZSRShoLGcpO2NvbnN0IHY9Z1sxOV07bnVsbCE9PXYmJnYuZGV0YWNoVmlldyhkKX0hZnVuY3Rp''@;'; put 'put ''b24gTUUoZCl7RWIuZGVsZXRlKGRbMjBdKX0oZyl9fWZ1bmN0aW9uIGpiKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gWmIoZCxnLGgpe2xldCB2PWc7Zm9yKDtudWxsIT09diYmNDAmdi50eXBlOyl2PShnPXYpLnBhcmVudDtpZihudWxsPT09dilyZXR1cm4gaFswXTtpZigyJnYuZmxhZ3Mpe2Nv''@;'; put 'put ''bnN0IHk9ZC5kYXRhW3YuZGlyZWN0aXZlU3RhcnRdLmVuY2Fwc3VsYXRpb247aWYoeT09PXgyLk5vbmV8fHk9PT14Mi5FbXVsYXRlZClyZXR1cm4gbnVsbH1yZXR1cm4gdmModixoKX0oZCxnLnBhcmVudCxoKX1mdW5jdGlvbiBONChkLGcsaCx2LHkpe2QuaW5zZXJ0QmVmb3JlKGcsaCx2LHkp''@;'; put 'put ''fWZ1bmN0aW9uIHpiKGQsZyxoKXtkLmFwcGVuZENoaWxkKGcsaCl9ZnVuY3Rpb24gR2IoZCxnLGgsdix5KXtudWxsIT09dj9ONChkLGcsaCx2LHkpOnpiKGQsZyxoKX1mdW5jdGlvbiBDbShkLGcpe3JldHVybiBkLnBhcmVudE5vZGUoZyl9ZnVuY3Rpb24gUEUoZCxnLGgpe3JldHVybiBXYihk''@;'; put 'put ''LGcsaCl9bGV0IFdiPWZ1bmN0aW9uIGI2KGQsZyxoKXtyZXR1cm4gNDAmZC50eXBlP3ZjKGQsaCk6bnVsbH07ZnVuY3Rpb24gYmYoZCxnLGgsdil7Y29uc3QgeT1qYihkLHYsZyksQz1nWzExXSxaPVBFKHYucGFyZW50fHxnWzZdLHYsZyk7aWYobnVsbCE9eSlpZihBcnJheS5pc0FycmF5KGgp''@;'; put 'put ''KWZvcihsZXQgdWU9MDt1ZTxoLmxlbmd0aDt1ZSsrKUdiKEMseSxoW3VlXSxaLCExKTtlbHNlIEdiKEMseSxoLFosITEpfWZ1bmN0aW9uIEloKGQsZyl7aWYobnVsbCE9PWcpe2NvbnN0IGg9Zy50eXBlO2lmKDMmaClyZXR1cm4gdmMoZyxkKTtpZig0JmgpcmV0dXJuIFViKC0xLGRbZy5pbmRl''@;'; put 'put ''eF0pO2lmKDgmaCl7Y29uc3Qgdj1nLmNoaWxkO2lmKG51bGwhPT12KXJldHVybiBJaChkLHYpO3tjb25zdCB5PWRbZy5pbmRleF07cmV0dXJuIHNmKHkpP1ViKC0xLHkpOlgyKHkpfX1pZigzMiZoKXJldHVybiBfbShnLGQpKCl8fFgyKGRbZy5pbmRleF0pO3tjb25zdCB2PVliKGQsZyk7cmV0''@;'; put 'put ''dXJuIG51bGwhPT12P0FycmF5LmlzQXJyYXkodik/dlswXTpJaChlNShkWzE2XSksdik6SWgoZCxnLm5leHQpfX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBZYihkLGcpe3JldHVybiBudWxsIT09Zz9kWzE2XVs2XS5wcm9qZWN0aW9uW2cucHJvamVjdGlvbl06bnVsbH1mdW5jdGlvbiBVYihkLGcp''@;'; put 'put ''e2NvbnN0IGg9MTArZCsxO2lmKGg8Zy5sZW5ndGgpe2NvbnN0IHY9Z1toXSx5PXZbMV0uZmlyc3RDaGlsZDtpZihudWxsIT09eSlyZXR1cm4gSWgodix5KX1yZXR1cm4gZ1s3XX1mdW5jdGlvbiBRYihkLGcsaCx2LHksQyxJKXtmb3IoO251bGwhPWg7KXtjb25zdCBaPXZbaC5pbmRleF0sdWU9''@;'; put 'put ''aC50eXBlO2lmKEkmJjA9PT1nJiYoWiYmcXUoWDIoWiksdiksaC5mbGFnc3w9NCksNjQhPSg2NCZoLmZsYWdzKSlpZig4JnVlKVFiKGQsZyxoLmNoaWxkLHYseSxDLCExKSxBNihnLGQseSxaLEMpO2Vsc2UgaWYoMzImdWUpe2NvbnN0IF9lPV9tKGgsdik7bGV0IEJlO2Zvcig7QmU9X2UoKTsp''@;'; put 'put ''QTYoZyxkLHksQmUsQyk7QTYoZyxkLHksWixDKX1lbHNlIDE2JnVlP05FKGQsZyx2LGgseSxDKTpBNihnLGQseSxaLEMpO2g9ST9oLnByb2plY3Rpb25OZXh0OmgubmV4dH19ZnVuY3Rpb24ga20oZCxnLGgsdix5LEMpe1FiKGgsdixkLmZpcnN0Q2hpbGQsZyx5LEMsITEpfWZ1bmN0aW9uIE5F''@;'; put 'put ''KGQsZyxoLHYseSxDKXtjb25zdCBJPWhbMTZdLHVlPUlbNl0ucHJvamVjdGlvblt2LnByb2plY3Rpb25dO2lmKEFycmF5LmlzQXJyYXkodWUpKWZvcihsZXQgX2U9MDtfZTx1ZS5sZW5ndGg7X2UrKylBNihnLGQseSx1ZVtfZV0sQyk7ZWxzZSBRYihkLGcsdWUsSVszXSx5LEMsITApfWZ1bmN0''@;'; put 'put ''aW9uIEpiKGQsZyxoKXtkLnNldEF0dHJpYnV0ZShnLCJzdHlsZSIsaCl9ZnVuY3Rpb24gRDMoZCxnLGgpeyIiPT09aD9kLnJlbW92ZUF0dHJpYnV0ZShnLCJjbGFzcyIpOmQuc2V0QXR0cmlidXRlKGcsImNsYXNzIixoKX1mdW5jdGlvbiBTbShkLGcsaCl7bGV0IHY9ZC5sZW5ndGg7Zm9yKDs7''@;'; put 'put ''KXtjb25zdCB5PWQuaW5kZXhPZihnLGgpO2lmKC0xPT09eSlyZXR1cm4geTtpZigwPT09eXx8ZC5jaGFyQ29kZUF0KHktMSk8PTMyKXtjb25zdCBDPWcubGVuZ3RoO2lmKHkrQz09PXZ8fGQuY2hhckNvZGVBdCh5K0MpPD0zMilyZXR1cm4geX1oPXkrMX19Y29uc3QgUTk9Im5nLXRlbXBsYXRl''@;'; put 'put ''IjtmdW5jdGlvbiBWNChkLGcsaCl7bGV0IHY9MDtmb3IoO3Y8ZC5sZW5ndGg7KXtsZXQgeT1kW3YrK107aWYoaCYmImNsYXNzIj09PXkpe2lmKHk9ZFt2XSwtMSE9PVNtKHkudG9Mb3dlckNhc2UoKSxnLDApKXJldHVybiEwfWVsc2UgaWYoMT09PXkpe2Zvcig7djxkLmxlbmd0aCYmInN0cmlu''@;'; put 'put ''ZyI9PXR5cGVvZih5PWRbdisrXSk7KWlmKHkudG9Mb3dlckNhc2UoKT09PWcpcmV0dXJuITA7cmV0dXJuITF9fXJldHVybiExfWZ1bmN0aW9uIHhkKGQpe3JldHVybiA0PT09ZC50eXBlJiZkLnZhbHVlIT09UTl9ZnVuY3Rpb24gWGIoZCxnLGgpe3JldHVybiBnPT09KDQhPT1kLnR5cGV8fGg/''@;'; put 'put ''ZC52YWx1ZTpROSl9ZnVuY3Rpb24gYjEoZCxnLGgpe2xldCB2PTQ7Y29uc3QgeT1kLmF0dHJzfHxbXSxDPWZ1bmN0aW9uIGpFKGQpe2ZvcihsZXQgZz0wO2c8ZC5sZW5ndGg7ZysrKWlmKHNzKGRbZ10pKXJldHVybiBnO3JldHVybiBkLmxlbmd0aH0oeSk7bGV0IEk9ITE7Zm9yKGxldCBaPTA7''@;'; put 'put ''WjxnLmxlbmd0aDtaKyspe2NvbnN0IHVlPWdbWl07aWYoIm51bWJlciIhPXR5cGVvZiB1ZSl7aWYoIUkpaWYoNCZ2KXtpZih2PTJ8MSZ2LCIiIT09dWUmJiFYYihkLHVlLGgpfHwiIj09PXVlJiYxPT09Zy5sZW5ndGgpe2lmKGh1KHYpKXJldHVybiExO0k9ITB9fWVsc2V7Y29uc3QgX2U9OCZ2''@;'; put 'put ''P3VlOmdbKytaXTtpZig4JnYmJm51bGwhPT1kLmF0dHJzKXtpZighVjQoZC5hdHRycyxfZSxoKSl7aWYoaHUodikpcmV0dXJuITE7ST0hMH1jb250aW51ZX1jb25zdCBOZT1NbSg4JnY/ImNsYXNzIjp1ZSx5LHhkKGQpLGgpO2lmKC0xPT09TmUpe2lmKGh1KHYpKXJldHVybiExO0k9ITA7Y29u''@;'; put 'put ''dGludWV9aWYoIiIhPT1fZSl7bGV0IEtlO0tlPU5lPkM/IiI6eVtOZSsxXS50b0xvd2VyQ2FzZSgpO2NvbnN0IHB0PTgmdj9LZTpudWxsO2lmKHB0JiYtMSE9PVNtKHB0LF9lLDApfHwyJnYmJl9lIT09S2Upe2lmKGh1KHYpKXJldHVybiExO0k9ITB9fX19ZWxzZXtpZighSSYmIWh1KHYpJiYh''@;'; put 'put ''aHUodWUpKXJldHVybiExO2lmKEkmJmh1KHVlKSljb250aW51ZTtJPSExLHY9dWV8MSZ2fX1yZXR1cm4gaHUodil8fEl9ZnVuY3Rpb24gaHUoZCl7cmV0dXJuIDA9PSgxJmQpfWZ1bmN0aW9uIE1tKGQsZyxoLHYpe2lmKG51bGw9PT1nKXJldHVybi0xO2xldCB5PTA7aWYodnx8IWgpe2xldCBD''@;'; put 'put ''PSExO2Zvcig7eTxnLmxlbmd0aDspe2NvbnN0IEk9Z1t5XTtpZihJPT09ZClyZXR1cm4geTtpZigzPT09SXx8Nj09PUkpQz0hMDtlbHNle2lmKDE9PT1JfHwyPT09SSl7bGV0IFo9Z1srK3ldO2Zvcig7InN0cmluZyI9PXR5cGVvZiBaOylaPWdbKyt5XTtjb250aW51ZX1pZig0PT09SSlicmVh''@;'; put 'put ''aztpZigwPT09SSl7eSs9NDtjb250aW51ZX19eSs9Qz8xOjJ9cmV0dXJuLTF9cmV0dXJuIGZ1bmN0aW9uIFpFKGQsZyl7bGV0IGg9ZC5pbmRleE9mKDQpO2lmKGg+LTEpZm9yKGgrKztoPGQubGVuZ3RoOyl7Y29uc3Qgdj1kW2hdO2lmKCJudW1iZXIiPT10eXBlb2YgdilyZXR1cm4tMTtpZih2''@;'; put 'put ''PT09ZylyZXR1cm4gaDtoKyt9cmV0dXJuLTF9KGcsZCl9ZnVuY3Rpb24gS2IoZCxnLGg9ITEpe2ZvcihsZXQgdj0wO3Y8Zy5sZW5ndGg7disrKWlmKGIxKGQsZ1t2XSxoKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiB5QihkLGcpe2U6Zm9yKGxldCBoPTA7aDxnLmxlbmd0aDtoKyspe2Nv''@;'; put 'put ''bnN0IHY9Z1toXTtpZihkLmxlbmd0aD09PXYubGVuZ3RoKXtmb3IobGV0IHk9MDt5PGQubGVuZ3RoO3krKylpZihkW3ldIT09dlt5XSljb250aW51ZSBlO3JldHVybiEwfX1yZXR1cm4hMX1mdW5jdGlvbiB6RShkLGcpe3JldHVybiBkPyI6bm90KCIrZy50cmltKCkrIikiOmd9ZnVuY3Rpb24g''@;'; put 'put ''d0IoZCl7bGV0IGc9ZFswXSxoPTEsdj0yLHk9IiIsQz0hMTtmb3IoO2g8ZC5sZW5ndGg7KXtsZXQgST1kW2hdO2lmKCJzdHJpbmciPT10eXBlb2YgSSlpZigyJnYpe2NvbnN0IFo9ZFsrK2hdO3krPSJbIitJKyhaLmxlbmd0aD4wPyc9IicrWisnIic6IiIpKyJdIn1lbHNlIDgmdj95Kz0iLiIr''@;'; put 'put ''STo0JnYmJih5Kz0iICIrSSk7ZWxzZSIiIT09eSYmIWh1KEkpJiYoZys9ekUoQyx5KSx5PSIiKSx2PUksQz1DfHwhaHUodik7aCsrfXJldHVybiIiIT09eSYmKGcrPXpFKEMseSkpLGd9Y29uc3QgTmE9e307ZnVuY3Rpb24gdXQoZCl7JGIoZmUoKSxQdCgpLFVsKCkrZCwhMSl9ZnVuY3Rpb24g''@;'; put 'put ''JGIoZCxnLGgsdil7aWYoIXYpaWYoMz09KDMmZ1syXSkpe2NvbnN0IEM9ZC5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PUMmJnlkKGcsQyxoKX1lbHNle2NvbnN0IEM9ZC5wcmVPcmRlckhvb2tzO251bGwhPT1DJiZLcChnLEMsMCxoKX16ZihoKX1mdW5jdGlvbiBRRShkLGc9bnVsbCxoPW51''@;'; put 'put ''bGwsdil7Y29uc3QgeT1uNShkLGcsaCx2KTtyZXR1cm4geS5yZXNvbHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKSx5fWZ1bmN0aW9uIG41KGQsZz1udWxsLGg9bnVsbCx2LHk9bmV3IFNldCl7Y29uc3QgQz1baHx8WjAsVGgoZCldO3JldHVybiB2PXZ8fCgib2JqZWN0Ij09dHlwZW9mIGQ/dm9p''@;'; put 'put ''ZCAwOm1uKGQpKSxuZXcga2IoQyxnfHxNMygpLHZ8fG51bGwseSl9bGV0IFNzPSgoKT0+e2NsYXNzIGR7c3RhdGljIGNyZWF0ZShoLHYpe3ZhciB5O2lmKEFycmF5LmlzQXJyYXkoaCkpcmV0dXJuIFFFKHtuYW1lOiIifSx2LGgsIiIpO3tjb25zdCBDPW51bGwhPT0oeT1oLm5hbWUpJiZ2b2lk''@;'; put 'put ''IDAhPT15P3k6IiI7cmV0dXJuIFFFKHtuYW1lOkN9LGgucGFyZW50LGgucHJvdmlkZXJzLEMpfX19cmV0dXJuIGQuVEhST1dfSUZfTk9UX0ZPVU5EPUg4LGQuTlVMTD1uZXcgUjQsZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46ImFueSIsZmFjdG9yeTooKT0+Q2koeWMpfSks''@;'; put 'put ''ZC5fX05HX0VMRU1FTlRfSURfXz0tMSxkfSkoKTtmdW5jdGlvbiBLdChkLGc9ajAuRGVmYXVsdCl7Y29uc3QgaD1QdCgpO3JldHVybiBudWxsPT09aD9DaShkLGcpOnRtKFh0KCksaCxHdChkKSxnKX1mdW5jdGlvbiBLOSgpe3Rocm93IG5ldyBFcnJvcigiaW52YWxpZCIpfWZ1bmN0aW9uICQ5''@;'; put 'put ''KGQsZyl7cmV0dXJuIGQ8PDE3fGc8PDJ9ZnVuY3Rpb24gRGgoZCl7cmV0dXJuIGQ+PjE3JjMyNzY3fWZ1bmN0aW9uIGlfKGQpe3JldHVybiAyfGR9ZnVuY3Rpb24gRGQoZCl7cmV0dXJuKDEzMTA2OCZkKT4+Mn1mdW5jdGlvbiBfNihkLGcpe3JldHVybi0xMzEwNjkmZHxnPDwyfWZ1bmN0aW9u''@;'; put 'put ''IGE1KGQpe3JldHVybiAxfGR9ZnVuY3Rpb24gVWMoZCxnKXtjb25zdCBoPWQuY29udGVudFF1ZXJpZXM7aWYobnVsbCE9PWgpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kz0yKXtjb25zdCB5PWhbdl0sQz1oW3YrMV07aWYoLTEhPT1DKXtjb25zdCBJPWQuZGF0YVtDXTtEbih5KSxJLmNvbnRl''@;'; put 'put ''bnRRdWVyaWVzKDIsZ1tDXSxDKX19fWZ1bmN0aW9uIGs2KGQsZyxoLHYseSxDLEksWix1ZSxfZSxCZSl7Y29uc3QgTmU9Zy5ibHVlcHJpbnQuc2xpY2UoKTtyZXR1cm4gTmVbMF09eSxOZVsyXT03Nnx2LChudWxsIT09QmV8fGQmJjEwMjQmZFsyXSkmJihOZVsyXXw9MTAyNCksX2goTmUpLE5l''@;'; put 'put ''WzNdPU5lWzE1XT1kLE5lWzhdPWgsTmVbMTBdPUl8fGQmJmRbMTBdLE5lWzExXT1afHxkJiZkWzExXSxOZVsxMl09dWV8fGQmJmRbMTJdfHxudWxsLE5lWzldPV9lfHxkJiZkWzldfHxudWxsLE5lWzZdPUMsTmVbMjBdPWZ1bmN0aW9uIHJCKCl7cmV0dXJuIG5CKyt9KCksTmVbMjFdPUJlLE5l''@;'; put 'put ''WzE2XT0yPT1nLnR5cGU/ZFsxNl06TmUsTmV9ZnVuY3Rpb24gUzYoZCxnLGgsdix5KXtsZXQgQz1kLmRhdGFbZ107aWYobnVsbD09PUMpQz1mdW5jdGlvbiBSZChkLGcsaCx2LHkpe2NvbnN0IEM9aHIoKSxJPV8oKSx1ZT1kLmRhdGFbZ109ZnVuY3Rpb24gQV8oZCxnLGgsdix5LEMpe3JldHVy''@;'; put 'put ''bnt0eXBlOmgsaW5kZXg6dixpbnNlcnRCZWZvcmVJbmRleDpudWxsLGluamVjdG9ySW5kZXg6Zz9nLmluamVjdG9ySW5kZXg6LTEsZGlyZWN0aXZlU3RhcnQ6LTEsZGlyZWN0aXZlRW5kOi0xLGRpcmVjdGl2ZVN0eWxpbmdMYXN0Oi0xLHByb3BlcnR5QmluZGluZ3M6bnVsbCxmbGFnczowLHBy''@;'; put 'put ''b3ZpZGVySW5kZXhlczowLHZhbHVlOnksYXR0cnM6QyxtZXJnZWRBdHRyczpudWxsLGxvY2FsTmFtZXM6bnVsbCxpbml0aWFsSW5wdXRzOnZvaWQgMCxpbnB1dHM6bnVsbCxvdXRwdXRzOm51bGwsdFZpZXdzOm51bGwsbmV4dDpudWxsLHByb2plY3Rpb25OZXh0Om51bGwsY2hpbGQ6bnVsbCxw''@;'; put 'put ''YXJlbnQ6Zyxwcm9qZWN0aW9uOm51bGwsc3R5bGVzOm51bGwsc3R5bGVzV2l0aG91dEhvc3Q6bnVsbCxyZXNpZHVhbFN0eWxlczp2b2lkIDAsY2xhc3NlczpudWxsLGNsYXNzZXNXaXRob3V0SG9zdDpudWxsLHJlc2lkdWFsQ2xhc3Nlczp2b2lkIDAsY2xhc3NCaW5kaW5nczowLHN0eWxlQmlu''@;'; put 'put ''ZGluZ3M6MH19KDAsST9DOkMmJkMucGFyZW50LGgsZyx2LHkpO3JldHVybiBudWxsPT09ZC5maXJzdENoaWxkJiYoZC5maXJzdENoaWxkPXVlKSxudWxsIT09QyYmKEk/bnVsbD09Qy5jaGlsZCYmbnVsbCE9PXVlLnBhcmVudCYmKEMuY2hpbGQ9dWUpOm51bGw9PT1DLm5leHQmJihDLm5leHQ9''@;'; put 'put ''dWUpKSx1ZX0oZCxnLGgsdix5KSxmdW5jdGlvbiBqYygpe3JldHVybiBDYS5sRnJhbWUuaW5JMThufSgpJiYoQy5mbGFnc3w9NjQpO2Vsc2UgaWYoNjQmQy50eXBlKXtDLnR5cGU9aCxDLnZhbHVlPXYsQy5hdHRycz15O2NvbnN0IEk9ZnVuY3Rpb24gUGkoKXtjb25zdCBkPUNhLmxGcmFtZSxn''@;'; put 'put ''PWQuY3VycmVudFROb2RlO3JldHVybiBkLmlzUGFyZW50P2c6Zy5wYXJlbnR9KCk7Qy5pbmplY3RvckluZGV4PW51bGw9PT1JPy0xOkkuaW5qZWN0b3JJbmRleH1yZXR1cm4gam4oQywhMCksQ31mdW5jdGlvbiBoNShkLGcsaCx2KXtpZigwPT09aClyZXR1cm4tMTtjb25zdCB5PWcubGVuZ3Ro''@;'; put 'put ''O2ZvcihsZXQgQz0wO0M8aDtDKyspZy5wdXNoKHYpLGQuYmx1ZXByaW50LnB1c2godiksZC5kYXRhLnB1c2gobnVsbCk7cmV0dXJuIHl9ZnVuY3Rpb24gejQoZCxnLGgpe0QwKGcpO3RyeXtjb25zdCB2PWQudmlld1F1ZXJ5O251bGwhPT12JiZQbSgxLHYsaCk7Y29uc3QgeT1kLnRlbXBsYXRl''@;'; put 'put ''O251bGwhPT15JiZvQShkLGcseSwxLGgpLGQuZmlyc3RDcmVhdGVQYXNzJiYoZC5maXJzdENyZWF0ZVBhc3M9ITEpLGQuc3RhdGljQ29udGVudFF1ZXJpZXMmJlVjKGQsZyksZC5zdGF0aWNWaWV3UXVlcmllcyYmUG0oMixkLnZpZXdRdWVyeSxoKTtjb25zdCBDPWQuY29tcG9uZW50cztudWxs''@;'; put 'put ''IT09QyYmZnVuY3Rpb24gQzYoZCxnKXtmb3IobGV0IGg9MDtoPGcubGVuZ3RoO2grKylkQShkLGdbaF0pfShnLEMpfWNhdGNoKHYpe3Rocm93IGQuZmlyc3RDcmVhdGVQYXNzJiYoZC5pbmNvbXBsZXRlRmlyc3RQYXNzPSEwLGQuZmlyc3RDcmVhdGVQYXNzPSExKSx2fWZpbmFsbHl7Z1syXSY9''@;'; put 'put ''LTUsSnAoKX19ZnVuY3Rpb24gWTEoZCxnLGgsdil7Y29uc3QgeT1nWzJdO2lmKDEyOCE9KDEyOCZ5KSl7RDAoZyk7dHJ5e19oKGcpLGZ1bmN0aW9uIHhuKGQpe3JldHVybiBDYS5sRnJhbWUuYmluZGluZ0luZGV4PWR9KGQuYmluZGluZ1N0YXJ0SW5kZXgpLG51bGwhPT1oJiZvQShkLGcsaCwy''@;'; put 'put ''LHYpO2NvbnN0IEk9Mz09KDMmeSk7aWYoSSl7Y29uc3QgX2U9ZC5wcmVPcmRlckNoZWNrSG9va3M7bnVsbCE9PV9lJiZ5ZChnLF9lLG51bGwpfWVsc2V7Y29uc3QgX2U9ZC5wcmVPcmRlckhvb2tzO251bGwhPT1fZSYmS3AoZyxfZSwwLG51bGwpLGZmKGcsMCl9aWYoZnVuY3Rpb24gZngoZCl7''@;'; put 'put ''Zm9yKGxldCBnPWo5KGQpO251bGwhPT1nO2c9WjkoZykpe2lmKCFnWzJdKWNvbnRpbnVlO2NvbnN0IGg9Z1s5XTtmb3IobGV0IHY9MDt2PGgubGVuZ3RoO3YrKyl7Y29uc3QgeT1oW3ZdLEM9eVszXTswPT0oNTEyJnlbMl0pJiZ2ZChDLDEpLHlbMl18PTUxMn19fShnKSxmdW5jdGlvbiBVQihk''@;'; put 'put ''KXtmb3IobGV0IGc9ajkoZCk7bnVsbCE9PWc7Zz1aOShnKSlmb3IobGV0IGg9MTA7aDxnLmxlbmd0aDtoKyspe2NvbnN0IHY9Z1toXSx5PXZbMV07dXUodikmJlkxKHksdix5LnRlbXBsYXRlLHZbOF0pfX0oZyksbnVsbCE9PWQuY29udGVudFF1ZXJpZXMmJlVjKGQsZyksSSl7Y29uc3QgX2U9''@;'; put 'put ''ZC5jb250ZW50Q2hlY2tIb29rcztudWxsIT09X2UmJnlkKGcsX2UpfWVsc2V7Y29uc3QgX2U9ZC5jb250ZW50SG9va3M7bnVsbCE9PV9lJiZLcChnLF9lLDEpLGZmKGcsMSl9IWZ1bmN0aW9uIE9kKGQsZyl7Y29uc3QgaD1kLmhvc3RCaW5kaW5nT3BDb2RlcztpZihudWxsIT09aCl0cnl7Zm9y''@;'; put 'put ''KGxldCB2PTA7djxoLmxlbmd0aDt2Kyspe2NvbnN0IHk9aFt2XTtpZih5PDApemYofnkpO2Vsc2V7Y29uc3QgQz15LEk9aFsrK3ZdLFo9aFsrK3ZdO0JNKEksQyksWigyLGdbQ10pfX19ZmluYWxseXt6ZigtMSl9fShkLGcpO2NvbnN0IFo9ZC5jb21wb25lbnRzO251bGwhPT1aJiZmdW5jdGlv''@;'; put 'put ''biBmNShkLGcpe2ZvcihsZXQgaD0wO2g8Zy5sZW5ndGg7aCsrKWh4KGQsZ1toXSl9KGcsWik7Y29uc3QgdWU9ZC52aWV3UXVlcnk7aWYobnVsbCE9PXVlJiZQbSgyLHVlLHYpLEkpe2NvbnN0IF9lPWQudmlld0NoZWNrSG9va3M7bnVsbCE9PV9lJiZ5ZChnLF9lKX1lbHNle2NvbnN0IF9lPWQu''@;'; put 'put ''dmlld0hvb2tzO251bGwhPT1fZSYmS3AoZyxfZSwyKSxmZihnLDIpfSEwPT09ZC5maXJzdFVwZGF0ZVBhc3MmJihkLmZpcnN0VXBkYXRlUGFzcz0hMSksZ1syXSY9LTQxLDUxMiZnWzJdJiYoZ1syXSY9LTUxMyx2ZChnWzNdLC0xKSl9ZmluYWxseXtKcCgpfX19ZnVuY3Rpb24gZDUoZCxnLGgs''@;'; put 'put ''dil7Y29uc3QgeT1nWzEwXSxJPUtnKGcpO3RyeXshSSYmeS5iZWdpbiYmeS5iZWdpbigpLEkmJno0KGQsZyx2KSxZMShkLGcsaCx2KX1maW5hbGx5eyFJJiZ5LmVuZCYmeS5lbmQoKX19ZnVuY3Rpb24gb0EoZCxnLGgsdix5KXtjb25zdCBDPVVsKCksST0yJnY7dHJ5e3pmKC0xKSxJJiZnLmxl''@;'; put 'put ''bmd0aD4yMiYmJGIoZCxnLDIyLCExKSxoKHYseSl9ZmluYWxseXt6ZihDKX19ZnVuY3Rpb24gZF8oZCxnLGgpe2lmKEtvKGcpKXtjb25zdCB5PWcuZGlyZWN0aXZlRW5kO2ZvcihsZXQgQz1nLmRpcmVjdGl2ZVN0YXJ0O0M8eTtDKyspe2NvbnN0IEk9ZC5kYXRhW0NdO0kuY29udGVudFF1ZXJp''@;'; put 'put ''ZXMmJkkuY29udGVudFF1ZXJpZXMoMSxoW0NdLEMpfX19ZnVuY3Rpb24gcF8oZCxnLGgpeyFSTSgpfHwoZnVuY3Rpb24gdXgoZCxnLGgsdil7Y29uc3QgeT1oLmRpcmVjdGl2ZVN0YXJ0LEM9aC5kaXJlY3RpdmVFbmQ7ZC5maXJzdENyZWF0ZVBhc3N8fGU2KGgsZykscXUodixnKTtjb25zdCBJ''@;'; put 'put ''PWguaW5pdGlhbElucHV0cztmb3IobGV0IFo9eTtaPEM7WisrKXtjb25zdCB1ZT1kLmRhdGFbWl0sX2U9VmYodWUpO19lJiZmQShnLGgsdWUpO2NvbnN0IEJlPVQ0KGcsZCxaLGgpO3F1KEJlLGcpLG51bGwhPT1JJiZfXygwLFoteSxCZSx1ZSwwLEkpLF9lJiYoUXUoaC5pbmRleCxnKVs4XT1C''@;'; put 'put ''ZSl9fShkLGcsaCx2YyhoLGcpKSwxMjg9PSgxMjgmaC5mbGFncykmJmZ1bmN0aW9uIGIyKGQsZyxoKXtjb25zdCB2PWguZGlyZWN0aXZlU3RhcnQseT1oLmRpcmVjdGl2ZUVuZCxDPWguaW5kZXgsST1mdW5jdGlvbiBQTSgpe3JldHVybiBDYS5sRnJhbWUuY3VycmVudERpcmVjdGl2ZUluZGV4''@;'; put 'put ''fSgpO3RyeXt6ZihDKTtmb3IobGV0IFo9djtaPHk7WisrKXtjb25zdCB1ZT1kLmRhdGFbWl0sX2U9Z1taXTtnOShaKSwobnVsbCE9PXVlLmhvc3RCaW5kaW5nc3x8MCE9PXVlLmhvc3RWYXJzfHxudWxsIT09dWUuaG9zdEF0dHJzKSYmQ2YodWUsX2UpfX1maW5hbGx5e3pmKC0xKSxnOShJKX19''@;'; put 'put ''KGQsZyxoKSl9ZnVuY3Rpb24gZ18oZCxnLGg9dmMpe2NvbnN0IHY9Zy5sb2NhbE5hbWVzO2lmKG51bGwhPT12KXtsZXQgeT1nLmluZGV4KzE7Zm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKz0yKXtjb25zdCBJPXZbQysxXSxaPS0xPT09ST9oKGcsZCk6ZFtJXTtkW3krK109Wn19fWZ1bmN0aW9u''@;'; put 'put ''IHN4KGQpe2NvbnN0IGc9ZC50VmlldztyZXR1cm4gbnVsbD09PWd8fGcuaW5jb21wbGV0ZUZpcnN0UGFzcz9kLnRWaWV3PW1fKDEsbnVsbCxkLnRlbXBsYXRlLGQuZGVjbHMsZC52YXJzLGQuZGlyZWN0aXZlRGVmcyxkLnBpcGVEZWZzLGQudmlld1F1ZXJ5LGQuc2NoZW1hcyxkLmNvbnN0cyk6''@;'; put 'put ''Z31mdW5jdGlvbiBtXyhkLGcsaCx2LHksQyxJLFosdWUsX2Upe2NvbnN0IEJlPTIyK3YsTmU9QmUreSxLZT1mdW5jdGlvbiBHQihkLGcpe2NvbnN0IGg9W107Zm9yKGxldCB2PTA7djxnO3YrKyloLnB1c2godjxkP251bGw6TmEpO3JldHVybiBofShCZSxOZSkscHQ9ImZ1bmN0aW9uIj09dHlw''@;'; put 'put ''ZW9mIF9lP19lKCk6X2U7cmV0dXJuIEtlWzFdPXt0eXBlOmQsYmx1ZXByaW50OktlLHRlbXBsYXRlOmgscXVlcmllczpudWxsLHZpZXdRdWVyeTpaLGRlY2xUTm9kZTpnLGRhdGE6S2Uuc2xpY2UoKS5maWxsKG51bGwsQmUpLGJpbmRpbmdTdGFydEluZGV4OkJlLGV4cGFuZG9TdGFydEluZGV4''@;'; put 'put ''Ok5lLGhvc3RCaW5kaW5nT3BDb2RlczpudWxsLGZpcnN0Q3JlYXRlUGFzczohMCxmaXJzdFVwZGF0ZVBhc3M6ITAsc3RhdGljVmlld1F1ZXJpZXM6ITEsc3RhdGljQ29udGVudFF1ZXJpZXM6ITEscHJlT3JkZXJIb29rczpudWxsLHByZU9yZGVyQ2hlY2tIb29rczpudWxsLGNvbnRlbnRIb29r''@;'; put 'put ''czpudWxsLGNvbnRlbnRDaGVja0hvb2tzOm51bGwsdmlld0hvb2tzOm51bGwsdmlld0NoZWNrSG9va3M6bnVsbCxkZXN0cm95SG9va3M6bnVsbCxjbGVhbnVwOm51bGwsY29udGVudFF1ZXJpZXM6bnVsbCxjb21wb25lbnRzOm51bGwsZGlyZWN0aXZlUmVnaXN0cnk6ImZ1bmN0aW9uIj09dHlw''@;'; put 'put ''ZW9mIEM/QygpOkMscGlwZVJlZ2lzdHJ5OiJmdW5jdGlvbiI9PXR5cGVvZiBJP0koKTpJLGZpcnN0Q2hpbGQ6bnVsbCxzY2hlbWFzOnVlLGNvbnN0czpwdCxpbmNvbXBsZXRlRmlyc3RQYXNzOiExfX1mdW5jdGlvbiB2XyhkLGcsaCx2KXtjb25zdCB5PXhfKGcpO251bGw9PT1oP3kucHVzaCh2''@;'; put 'put ''KTooeS5wdXNoKGgpLGQuZmlyc3RDcmVhdGVQYXNzJiZUXyhkKS5wdXNoKHYseS5sZW5ndGgtMSkpfWZ1bmN0aW9uIGxBKGQsZyxoKXtmb3IobGV0IHYgaW4gZClpZihkLmhhc093blByb3BlcnR5KHYpKXtjb25zdCB5PWRbdl07KGg9bnVsbD09PWg/e306aCkuaGFzT3duUHJvcGVydHkodik/''@;'; put 'put ''aFt2XS5wdXNoKGcseSk6aFt2XT1bZyx5XX1yZXR1cm4gaH1mdW5jdGlvbiBJbShkLGcpe2NvbnN0IHY9Zy5kaXJlY3RpdmVFbmQseT1kLmRhdGEsQz1nLmF0dHJzLEk9W107bGV0IFo9bnVsbCx1ZT1udWxsO2ZvcihsZXQgX2U9Zy5kaXJlY3RpdmVTdGFydDtfZTx2O19lKyspe2NvbnN0IEJl''@;'; put 'put ''PXlbX2VdLE5lPUJlLmlucHV0cyxLZT1udWxsPT09Q3x8eGQoZyk/bnVsbDpDXyhOZSxDKTtJLnB1c2goS2UpLFo9bEEoTmUsX2UsWiksdWU9bEEoQmUub3V0cHV0cyxfZSx1ZSl9bnVsbCE9PVomJihaLmhhc093blByb3BlcnR5KCJjbGFzcyIpJiYoZy5mbGFnc3w9MTYpLFouaGFzT3duUHJv''@;'; put 'put ''cGVydHkoInN0eWxlIikmJihnLmZsYWdzfD0zMikpLGcuaW5pdGlhbElucHV0cz1JLGcuaW5wdXRzPVosZy5vdXRwdXRzPXVlfWZ1bmN0aW9uIGVjKGQsZyxoLHYseSxDLEksWil7Y29uc3QgdWU9dmMoZyxoKTtsZXQgQmUsX2U9Zy5pbnB1dHM7IVomJm51bGwhPV9lJiYoQmU9X2Vbdl0pPyh2''@;'; put 'put ''QShkLGgsQmUsdix5KSxrcyhnKSYmRG0oaCxnLmluZGV4KSk6MyZnLnR5cGUmJih2PWZ1bmN0aW9uIFdCKGQpe3JldHVybiJjbGFzcyI9PT1kPyJjbGFzc05hbWUiOiJmb3IiPT09ZD8iaHRtbEZvciI6ImZvcm1hY3Rpb24iPT09ZD8iZm9ybUFjdGlvbiI6ImlubmVySHRtbCI9PT1kPyJpbm5l''@;'; put 'put ''ckhUTUwiOiJyZWFkb25seSI9PT1kPyJyZWFkT25seSI6InRhYmluZGV4Ij09PWQ/InRhYkluZGV4IjpkfSh2KSx5PW51bGwhPUk/SSh5LGcudmFsdWV8fCIiLHYpOnksQy5zZXRQcm9wZXJ0eSh1ZSx2LHkpKX1mdW5jdGlvbiBEbShkLGcpe2NvbnN0IGg9UXUoZyxkKTsxNiZoWzJdfHwoaFsy''@;'; put 'put ''XXw9MzIpfWZ1bmN0aW9uIHlfKGQsZyxoLHYpe2xldCB5PSExO2lmKFJNKCkpe2NvbnN0IEM9ZnVuY3Rpb24gXzEoZCxnLGgpe2NvbnN0IHY9ZC5kaXJlY3RpdmVSZWdpc3RyeTtsZXQgeT1udWxsO2lmKHYpZm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKyspe2NvbnN0IEk9dltDXTtLYihoLEku''@;'; put 'put ''c2VsZWN0b3JzLCExKSYmKHl8fCh5PVtdKSxHZihlNihoLGcpLGQsSS50eXBlKSxWZihJKT8oY0EoZCxoKSx5LnVuc2hpZnQoSSkpOnkucHVzaChJKSl9cmV0dXJuIHl9KGQsZyxoKSxJPW51bGw9PT12P251bGw6eyIiOi0xfTtpZihudWxsIT09Qyl7eT0hMCxiXyhoLGQuZGF0YS5sZW5ndGgs''@;'; put 'put ''Qy5sZW5ndGgpO2ZvcihsZXQgQmU9MDtCZTxDLmxlbmd0aDtCZSsrKXtjb25zdCBOZT1DW0JlXTtOZS5wcm92aWRlcnNSZXNvbHZlciYmTmUucHJvdmlkZXJzUmVzb2x2ZXIoTmUpfWxldCBaPSExLHVlPSExLF9lPWg1KGQsZyxDLmxlbmd0aCxudWxsKTtmb3IobGV0IEJlPTA7QmU8Qy5sZW5n''@;'; put 'put ''dGg7QmUrKyl7Y29uc3QgTmU9Q1tCZV07aC5tZXJnZWRBdHRycz16YyhoLm1lcmdlZEF0dHJzLE5lLmhvc3RBdHRycyksY3goZCxoLGcsX2UsTmUpLE9tKF9lLE5lLEkpLG51bGwhPT1OZS5jb250ZW50UXVlcmllcyYmKGguZmxhZ3N8PTgpLChudWxsIT09TmUuaG9zdEJpbmRpbmdzfHxudWxs''@;'; put 'put ''IT09TmUuaG9zdEF0dHJzfHwwIT09TmUuaG9zdFZhcnMpJiYoaC5mbGFnc3w9MTI4KTtjb25zdCBLZT1OZS50eXBlLnByb3RvdHlwZTshWiYmKEtlLm5nT25DaGFuZ2VzfHxLZS5uZ09uSW5pdHx8S2UubmdEb0NoZWNrKSYmKChkLnByZU9yZGVySG9va3N8fChkLnByZU9yZGVySG9va3M9W10p''@;'; put 'put ''KS5wdXNoKGguaW5kZXgpLFo9ITApLCF1ZSYmKEtlLm5nT25DaGFuZ2VzfHxLZS5uZ0RvQ2hlY2spJiYoKGQucHJlT3JkZXJDaGVja0hvb2tzfHwoZC5wcmVPcmRlckNoZWNrSG9va3M9W10pKS5wdXNoKGguaW5kZXgpLHVlPSEwKSxfZSsrfUltKGQsaCl9SSYmZnVuY3Rpb24gd18oZCxnLGgp''@;'; put 'put ''e2lmKGcpe2NvbnN0IHY9ZC5sb2NhbE5hbWVzPVtdO2ZvcihsZXQgeT0wO3k8Zy5sZW5ndGg7eSs9Mil7Y29uc3QgQz1oW2dbeSsxXV07aWYobnVsbD09Qyl0aHJvdyBuZXcgZW4oLTMwMSwhMSk7di5wdXNoKGdbeV0sQyl9fX0oaCx2LEkpfXJldHVybiBoLm1lcmdlZEF0dHJzPXpjKGgubWVy''@;'; put 'put ''Z2VkQXR0cnMsaC5hdHRycykseX1mdW5jdGlvbiBzQShkLGcsaCx2LHksQyl7Y29uc3QgST1DLmhvc3RCaW5kaW5ncztpZihJKXtsZXQgWj1kLmhvc3RCaW5kaW5nT3BDb2RlcztudWxsPT09WiYmKFo9ZC5ob3N0QmluZGluZ09wQ29kZXM9W10pO2NvbnN0IHVlPX5nLmluZGV4OyhmdW5jdGlv''@;'; put 'put ''biB1QShkKXtsZXQgZz1kLmxlbmd0aDtmb3IoO2c+MDspe2NvbnN0IGg9ZFstLWddO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmaDwwKXJldHVybiBofXJldHVybiAwfSkoWikhPXVlJiZaLnB1c2godWUpLFoucHVzaCh2LHksSSl9fWZ1bmN0aW9uIENmKGQsZyl7bnVsbCE9PWQuaG9zdEJpbmRp''@;'; put 'put ''bmdzJiZkLmhvc3RCaW5kaW5ncygxLGcpfWZ1bmN0aW9uIGNBKGQsZyl7Zy5mbGFnc3w9MiwoZC5jb21wb25lbnRzfHwoZC5jb21wb25lbnRzPVtdKSkucHVzaChnLmluZGV4KX1mdW5jdGlvbiBPbShkLGcsaCl7aWYoaCl7aWYoZy5leHBvcnRBcylmb3IobGV0IHY9MDt2PGcuZXhwb3J0QXMu''@;'; put 'put ''bGVuZ3RoO3YrKyloW2cuZXhwb3J0QXNbdl1dPWQ7VmYoZykmJihoWyIiXT1kKX19ZnVuY3Rpb24gYl8oZCxnLGgpe2QuZmxhZ3N8PTEsZC5kaXJlY3RpdmVTdGFydD1nLGQuZGlyZWN0aXZlRW5kPWcraCxkLnByb3ZpZGVySW5kZXhlcz1nfWZ1bmN0aW9uIGN4KGQsZyxoLHYseSl7ZC5kYXRh''@;'; put 'put ''W3ZdPXk7Y29uc3QgQz15LmZhY3Rvcnl8fCh5LmZhY3Rvcnk9amYoeS50eXBlKSksST1uZXcgd2QoQyxWZih5KSxLdCk7ZC5ibHVlcHJpbnRbdl09SSxoW3ZdPUksc0EoZCxnLDAsdixoNShkLGgseS5ob3N0VmFycyxOYSkseSl9ZnVuY3Rpb24gZkEoZCxnLGgpe2NvbnN0IHY9dmMoZyxkKSx5''@;'; put 'put ''PXN4KGgpLEM9ZFsxMF0sST1SbShkLGs2KGQseSxudWxsLGgub25QdXNoPzMyOjE2LHYsZyxDLEMuY3JlYXRlUmVuZGVyZXIodixoKSxudWxsLG51bGwsbnVsbCkpO2RbZy5pbmRleF09SX1mdW5jdGlvbiBPaChkLGcsaCx2LHksQyl7Y29uc3QgST12YyhkLGcpOyFmdW5jdGlvbiB2bChkLGcs''@;'; put 'put ''aCx2LHksQyxJKXtpZihudWxsPT1DKWQucmVtb3ZlQXR0cmlidXRlKGcseSxoKTtlbHNle2NvbnN0IFo9bnVsbD09ST9KbihDKTpJKEMsdnx8IiIseSk7ZC5zZXRBdHRyaWJ1dGUoZyx5LFosaCl9fShnWzExXSxJLEMsZC52YWx1ZSxoLHYseSl9ZnVuY3Rpb24gX18oZCxnLGgsdix5LEMpe2Nv''@;'; put 'put ''bnN0IEk9Q1tnXTtpZihudWxsIT09SSl7Y29uc3QgWj12LnNldElucHV0O2ZvcihsZXQgdWU9MDt1ZTxJLmxlbmd0aDspe2NvbnN0IF9lPUlbdWUrK10sQmU9SVt1ZSsrXSxOZT1JW3VlKytdO251bGwhPT1aP3Yuc2V0SW5wdXQoaCxOZSxfZSxCZSk6aFtCZV09TmV9fX1mdW5jdGlvbiBDXyhk''@;'; put 'put ''LGcpe2xldCBoPW51bGwsdj0wO2Zvcig7djxnLmxlbmd0aDspe2NvbnN0IHk9Z1t2XTtpZigwIT09eSlpZig1IT09eSl7aWYoIm51bWJlciI9PXR5cGVvZiB5KWJyZWFrO2QuaGFzT3duUHJvcGVydHkoeSkmJihudWxsPT09aCYmKGg9W10pLGgucHVzaCh5LGRbeV0sZ1t2KzFdKSksdis9Mn1l''@;'; put 'put ''bHNlIHYrPTI7ZWxzZSB2Kz00fXJldHVybiBofWZ1bmN0aW9uIGhBKGQsZyxoLHYpe3JldHVybiBuZXcgQXJyYXkoZCwhMCwhMSxnLG51bGwsMCx2LGgsbnVsbCxudWxsKX1mdW5jdGlvbiBoeChkLGcpe2NvbnN0IGg9UXUoZyxkKTtpZih1dShoKSl7Y29uc3Qgdj1oWzFdOzQ4JmhbMl0/WTEo''@;'; put 'put ''dixoLHYudGVtcGxhdGUsaFs4XSk6aFs1XT4wJiZrXyhoKX19ZnVuY3Rpb24ga18oZCl7Zm9yKGxldCB2PWo5KGQpO251bGwhPT12O3Y9WjkodikpZm9yKGxldCB5PTEwO3k8di5sZW5ndGg7eSsrKXtjb25zdCBDPXZbeV07aWYoNTEyJkNbMl0pe2NvbnN0IEk9Q1sxXTtZMShJLEMsSS50ZW1w''@;'; put 'put ''bGF0ZSxDWzhdKX1lbHNlIENbNV0+MCYma18oQyl9Y29uc3QgaD1kWzFdLmNvbXBvbmVudHM7aWYobnVsbCE9PWgpZm9yKGxldCB2PTA7djxoLmxlbmd0aDt2Kyspe2NvbnN0IHk9UXUoaFt2XSxkKTt1dSh5KSYmeVs1XT4wJiZrXyh5KX19ZnVuY3Rpb24gZEEoZCxnKXtjb25zdCBoPVF1KGcs''@;'; put 'put ''ZCksdj1oWzFdOyhmdW5jdGlvbiBTXyhkLGcpe2ZvcihsZXQgaD1nLmxlbmd0aDtoPGQuYmx1ZXByaW50Lmxlbmd0aDtoKyspZy5wdXNoKGQuYmx1ZXByaW50W2hdKX0pKHYsaCksejQodixoLGhbOF0pfWZ1bmN0aW9uIFJtKGQsZyl7cmV0dXJuIGRbMTNdP2RbMTRdWzRdPWc6ZFsxM109Zyxk''@;'; put 'put ''WzE0XT1nLGd9ZnVuY3Rpb24gcEEoZCl7Zm9yKDtkOyl7ZFsyXXw9MzI7Y29uc3QgZz1lNShkKTtpZihxdyhkKSYmIWcpcmV0dXJuIGQ7ZD1nfXJldHVybiBudWxsfWZ1bmN0aW9uIEVfKGQpeyFmdW5jdGlvbiBNXyhkKXtmb3IobGV0IGc9MDtnPGQuY29tcG9uZW50cy5sZW5ndGg7ZysrKXtj''@;'; put 'put ''b25zdCBoPWQuY29tcG9uZW50c1tnXSx2PUliKGgpO2lmKG51bGwhPT12KXtjb25zdCB5PXZbMV07ZDUoeSx2LHkudGVtcGxhdGUsaCl9fX0oZFs4XSl9ZnVuY3Rpb24gUG0oZCxnLGgpe0RuKDApLGcoZCxoKX1jb25zdCBweD0oKCk9PlByb21pc2UucmVzb2x2ZShudWxsKSkoKTtmdW5jdGlv''@;'; put 'put ''biB4XyhkKXtyZXR1cm4gZFs3XXx8KGRbN109W10pfWZ1bmN0aW9uIFRfKGQpe3JldHVybiBkLmNsZWFudXB8fChkLmNsZWFudXA9W10pfWZ1bmN0aW9uIElfKGQsZyxoKXtyZXR1cm4obnVsbD09PWR8fFZmKGQpKSYmKGg9ZnVuY3Rpb24gTE0oZCl7Zm9yKDtBcnJheS5pc0FycmF5KGQpOyl7''@;'; put 'put ''aWYoIm9iamVjdCI9PXR5cGVvZiBkWzFdKXJldHVybiBkO2Q9ZFswXX1yZXR1cm4gbnVsbH0oaFtnLmluZGV4XSkpLGhbMTFdfWZ1bmN0aW9uIG1BKGQsZyl7Y29uc3QgaD1kWzldLHY9aD9oLmdldCh2NixudWxsKTpudWxsO3YmJnYuaGFuZGxlRXJyb3IoZyl9ZnVuY3Rpb24gdkEoZCxnLGgs''@;'; put 'put ''dix5KXtmb3IobGV0IEM9MDtDPGgubGVuZ3RoOyl7Y29uc3QgST1oW0MrK10sWj1oW0MrK10sdWU9Z1tJXSxfZT1kLmRhdGFbSV07bnVsbCE9PV9lLnNldElucHV0P19lLnNldElucHV0KHVlLHksdixaKTp1ZVtaXT15fX1mdW5jdGlvbiBSaChkLGcsaCl7Y29uc3Qgdj1VcChnLGQpOyFmdW5j''@;'; put 'put ''dGlvbiBINChkLGcsaCl7ZC5zZXRWYWx1ZShnLGgpfShkWzExXSx2LGgpfWZ1bmN0aW9uIHA1KGQsZyxoKXtsZXQgdj1oP2Quc3R5bGVzOm51bGwseT1oP2QuY2xhc3NlczpudWxsLEM9MDtpZihudWxsIT09Zylmb3IobGV0IEk9MDtJPGcubGVuZ3RoO0krKyl7Y29uc3QgWj1nW0ldOyJudW1i''@;'; put 'put ''ZXIiPT10eXBlb2YgWj9DPVo6MT09Qz95PXVuKHksWik6Mj09QyYmKHY9dW4odixaKyI6ICIrZ1srK0ldKyI7IikpfWg/ZC5zdHlsZXM9djpkLnN0eWxlc1dpdGhvdXRIb3N0PXYsaD9kLmNsYXNzZXM9eTpkLmNsYXNzZXNXaXRob3V0SG9zdD15fWZ1bmN0aW9uIEc0KGQsZyxoLHYseT0hMSl7''@;'; put 'put ''Zm9yKDtudWxsIT09aDspe2NvbnN0IEM9Z1toLmluZGV4XTtpZihudWxsIT09QyYmdi5wdXNoKFgyKEMpKSxzZihDKSlmb3IobGV0IFo9MTA7WjxDLmxlbmd0aDtaKyspe2NvbnN0IHVlPUNbWl0sX2U9dWVbMV0uZmlyc3RDaGlsZDtudWxsIT09X2UmJkc0KHVlWzFdLHVlLF9lLHYpfWNvbnN0''@;'; put 'put ''IEk9aC50eXBlO2lmKDgmSSlHNChkLGcsaC5jaGlsZCx2KTtlbHNlIGlmKDMyJkkpe2NvbnN0IFo9X20oaCxnKTtsZXQgdWU7Zm9yKDt1ZT1aKCk7KXYucHVzaCh1ZSl9ZWxzZSBpZigxNiZJKXtjb25zdCBaPVliKGcsaCk7aWYoQXJyYXkuaXNBcnJheShaKSl2LnB1c2goLi4uWik7ZWxzZXtj''@;'; put 'put ''b25zdCB1ZT1lNShnWzE2XSk7RzQodWVbMV0sdWUsWix2LCEwKX19aD15P2gucHJvamVjdGlvbk5leHQ6aC5uZXh0fXJldHVybiB2fWNsYXNzIE02e2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5fbFZpZXc9Zyx0aGlzLl9jZFJlZkluamVjdGluZ1ZpZXc9aCx0aGlzLl9hcHBSZWY9bnVsbCx0aGlz''@;'; put 'put ''Ll9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcj0hMX1nZXQgcm9vdE5vZGVzKCl7Y29uc3QgZz10aGlzLl9sVmlldyxoPWdbMV07cmV0dXJuIEc0KGgsZyxoLmZpcnN0Q2hpbGQsW10pfWdldCBjb250ZXh0KCl7cmV0dXJuIHRoaXMuX2xWaWV3WzhdfXNldCBjb250ZXh0KGcpe3RoaXMuX2xWaWV3''@;'; put 'put ''WzhdPWd9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiAxMjg9PSgxMjgmdGhpcy5fbFZpZXdbMl0pfWRlc3Ryb3koKXtpZih0aGlzLl9hcHBSZWYpdGhpcy5fYXBwUmVmLmRldGFjaFZpZXcodGhpcyk7ZWxzZSBpZih0aGlzLl9hdHRhY2hlZFRvVmlld0NvbnRhaW5lcil7Y29uc3QgZz10aGlzLl9s''@;'; put 'put ''Vmlld1szXTtpZihzZihnKSl7Y29uc3QgaD1nWzhdLHY9aD9oLmluZGV4T2YodGhpcyk6LTE7dj4tMSYmKE5iKGcsdiksQ2QoaCx2KSl9dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITF9QkUodGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfW9uRGVzdHJveShnKXt2Xyh0aGlzLl9s''@;'; put 'put ''Vmlld1sxXSx0aGlzLl9sVmlldyxudWxsLGcpfW1hcmtGb3JDaGVjaygpe3BBKHRoaXMuX2NkUmVmSW5qZWN0aW5nVmlld3x8dGhpcy5fbFZpZXcpfWRldGFjaCgpe3RoaXMuX2xWaWV3WzJdJj0tNjV9cmVhdHRhY2goKXt0aGlzLl9sVmlld1syXXw9NjR9ZGV0ZWN0Q2hhbmdlcygpeyFmdW5j''@;'; put 'put ''dGlvbiBnQShkLGcsaCl7Y29uc3Qgdj1nWzEwXTt2LmJlZ2luJiZ2LmJlZ2luKCk7dHJ5e1kxKGQsZyxkLnRlbXBsYXRlLGgpfWNhdGNoKHkpe3Rocm93IG1BKGcseSkseX1maW5hbGx5e3YuZW5kJiZ2LmVuZCgpfX0odGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcsdGhpcy5jb250ZXh0KX1j''@;'; put 'put ''aGVja05vQ2hhbmdlcygpe31hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKXtpZih0aGlzLl9hcHBSZWYpdGhyb3cgbmV3IGVuKDkwMiwhMSk7dGhpcy5fYXR0YWNoZWRUb1ZpZXdDb250YWluZXI9ITB9ZGV0YWNoRnJvbUFwcFJlZigpe3RoaXMuX2FwcFJlZj1udWxsLGZ1bmN0aW9uIE9FKGQs''@;'; put 'put ''Zyl7a20oZCxnLGdbMTFdLDIsbnVsbCxudWxsKX0odGhpcy5fbFZpZXdbMV0sdGhpcy5fbFZpZXcpfWF0dGFjaFRvQXBwUmVmKGcpe2lmKHRoaXMuX2F0dGFjaGVkVG9WaWV3Q29udGFpbmVyKXRocm93IG5ldyBlbig5MDIsITEpO3RoaXMuX2FwcFJlZj1nfX1jbGFzcyBBQSBleHRlbmRzIE02''@;'; put 'put ''e2NvbnN0cnVjdG9yKGcpe3N1cGVyKGcpLHRoaXMuX3ZpZXc9Z31kZXRlY3RDaGFuZ2VzKCl7RV8odGhpcy5fdmlldyl9Y2hlY2tOb0NoYW5nZXMoKXt9Z2V0IGNvbnRleHQoKXtyZXR1cm4gbnVsbH19Y2xhc3MgRF8gZXh0ZW5kcyBTZHtjb25zdHJ1Y3RvcihnKXtzdXBlcigpLHRoaXMubmdN''@;'; put 'put ''b2R1bGU9Z31yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShnKXtjb25zdCBoPXZzKGcpO3JldHVybiBuZXcgRm0oaCx0aGlzLm5nTW9kdWxlKX19ZnVuY3Rpb24geUEoZCl7Y29uc3QgZz1bXTtmb3IobGV0IGggaW4gZClkLmhhc093blByb3BlcnR5KGgpJiZnLnB1c2goe3Byb3BOYW1lOmRbaF0s''@;'; put 'put ''dGVtcGxhdGVOYW1lOmh9KTtyZXR1cm4gZ31jbGFzcyB3QXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaW5qZWN0b3I9Zyx0aGlzLnBhcmVudEluamVjdG9yPWh9Z2V0KGcsaCx2KXtjb25zdCB5PXRoaXMuaW5qZWN0b3IuZ2V0KGcsQjksdik7cmV0dXJuIHkhPT1COXx8aD09PUI5P3k6dGhpcy5w''@;'; put 'put ''YXJlbnRJbmplY3Rvci5nZXQoZyxoLHYpfX1jbGFzcyBGbSBleHRlbmRzIHZFe2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoKSx0aGlzLmNvbXBvbmVudERlZj1nLHRoaXMubmdNb2R1bGU9aCx0aGlzLmNvbXBvbmVudFR5cGU9Zy50eXBlLHRoaXMuc2VsZWN0b3I9ZnVuY3Rpb24gYkIoZCl7cmV0''@;'; put 'put ''dXJuIGQubWFwKHdCKS5qb2luKCIsIil9KGcuc2VsZWN0b3JzKSx0aGlzLm5nQ29udGVudFNlbGVjdG9ycz1nLm5nQ29udGVudFNlbGVjdG9ycz9nLm5nQ29udGVudFNlbGVjdG9yczpbXSx0aGlzLmlzQm91bmRUb01vZHVsZT0hIWh9Z2V0IGlucHV0cygpe3JldHVybiB5QSh0aGlzLmNvbXBv''@;'; put 'put ''bmVudERlZi5pbnB1dHMpfWdldCBvdXRwdXRzKCl7cmV0dXJuIHlBKHRoaXMuY29tcG9uZW50RGVmLm91dHB1dHMpfWNyZWF0ZShnLGgsdix5KXtsZXQgQz0oeT15fHx0aGlzLm5nTW9kdWxlKWluc3RhbmNlb2YgRTM/eTpudWxsPT15P3ZvaWQgMDp5LmluamVjdG9yO0MmJm51bGwhPT10aGlz''@;'; put 'put ''LmNvbXBvbmVudERlZi5nZXRTdGFuZGFsb25lSW5qZWN0b3ImJihDPXRoaXMuY29tcG9uZW50RGVmLmdldFN0YW5kYWxvbmVJbmplY3RvcihDKXx8Qyk7Y29uc3QgST1DP25ldyB3QShnLEMpOmcsWj1JLmdldChNZCxudWxsKTtpZihudWxsPT09Wil0aHJvdyBuZXcgZW4oNDA3LCExKTtjb25z''@;'; put 'put ''dCB1ZT1JLmdldChiRSxudWxsKSxfZT1aLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLEJlPXRoaXMuY29tcG9uZW50RGVmLnNlbGVjdG9yc1swXVswXXx8ImRpdiIsTmU9dj9mdW5jdGlvbiBhQShkLGcsaCl7cmV0dXJuIGQuc2VsZWN0Um9vdEVsZW1lbnQoZyxoPT09''@;'; put 'put ''eDIuU2hhZG93RG9tKX0oX2Usdix0aGlzLmNvbXBvbmVudERlZi5lbmNhcHN1bGF0aW9uKTp0NShaLmNyZWF0ZVJlbmRlcmVyKG51bGwsdGhpcy5jb21wb25lbnREZWYpLEJlLGZ1bmN0aW9uIExfKGQpe2NvbnN0IGc9ZC50b0xvd2VyQ2FzZSgpO3JldHVybiJzdmciPT09Zz8ic3ZnIjoibWF0''@;'; put 'put ''aCI9PT1nPyJtYXRoIjpudWxsfShCZSkpLEtlPXRoaXMuY29tcG9uZW50RGVmLm9uUHVzaD8yODg6MjcyLHB0PWZ1bmN0aW9uIG14KGQsZyl7cmV0dXJue2NvbXBvbmVudHM6W10sc2NoZWR1bGVyOmR8fGNCLGNsZWFuOnB4LHBsYXllckhhbmRsZXI6Z3x8bnVsbCxmbGFnczowfX0oKSxPdD1t''@;'; put 'put ''XygwLG51bGwsbnVsbCwxLDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsKSwkdD1rNihudWxsLE90LHB0LEtlLG51bGwsbnVsbCxaLF9lLHVlLEksbnVsbCk7bGV0IGZuLExuO0QwKCR0KTt0cnl7Y29uc3QgaXI9ZnVuY3Rpb24gZ3goZCxnLGgsdix5LEMpe2NvbnN0IEk9aFsxXTtoWzIyXT1k''@;'; put 'put ''O2NvbnN0IHVlPVM2KEksMjIsMiwiI2hvc3QiLG51bGwpLF9lPXVlLm1lcmdlZEF0dHJzPWcuaG9zdEF0dHJzO251bGwhPT1fZSYmKHA1KHVlLF9lLCEwKSxudWxsIT09ZCYmKFpjKHksZCxfZSksbnVsbCE9PXVlLmNsYXNzZXMmJkQzKHksZCx1ZS5jbGFzc2VzKSxudWxsIT09dWUuc3R5bGVz''@;'; put 'put ''JiZKYih5LGQsdWUuc3R5bGVzKSkpO2NvbnN0IEJlPXYuY3JlYXRlUmVuZGVyZXIoZCxnKSxOZT1rNihoLHN4KGcpLG51bGwsZy5vblB1c2g/MzI6MTYsaFsyMl0sdWUsdixCZSxDfHxudWxsLG51bGwsbnVsbCk7cmV0dXJuIEkuZmlyc3RDcmVhdGVQYXNzJiYoR2YoZTYodWUsaCksSSxnLnR5''@;'; put 'put ''cGUpLGNBKEksdWUpLGJfKHVlLGgubGVuZ3RoLDEpKSxSbShoLE5lKSxoWzIyXT1OZX0oTmUsdGhpcy5jb21wb25lbnREZWYsJHQsWixfZSk7aWYoTmUpaWYodilaYyhfZSxOZSxbIm5nLXZlcnNpb24iLF9FLmZ1bGxdKTtlbHNle2NvbnN0e2F0dHJzOm1yLGNsYXNzZXM6U3J9PWZ1bmN0aW9u''@;'; put 'put ''IF9CKGQpe2NvbnN0IGc9W10saD1bXTtsZXQgdj0xLHk9Mjtmb3IoO3Y8ZC5sZW5ndGg7KXtsZXQgQz1kW3ZdO2lmKCJzdHJpbmciPT10eXBlb2YgQykyPT09eT8iIiE9PUMmJmcucHVzaChDLGRbKyt2XSk6OD09PXkmJmgucHVzaChDKTtlbHNle2lmKCFodSh5KSlicmVhazt5PUN9disrfXJl''@;'; put 'put ''dHVybnthdHRyczpnLGNsYXNzZXM6aH19KHRoaXMuY29tcG9uZW50RGVmLnNlbGVjdG9yc1swXSk7bXImJlpjKF9lLE5lLG1yKSxTciYmU3IubGVuZ3RoPjAmJkQzKF9lLE5lLFNyLmpvaW4oIiAiKSl9aWYoTG49WGcoT3QsMjIpLHZvaWQgMCE9PWgpe2NvbnN0IG1yPUxuLnByb2plY3Rpb249''@;'; put 'put ''W107Zm9yKGxldCBTcj0wO1NyPHRoaXMubmdDb250ZW50U2VsZWN0b3JzLmxlbmd0aDtTcisrKXtjb25zdCB3cj1oW1NyXTttci5wdXNoKG51bGwhPXdyP0FycmF5LmZyb20od3IpOm51bGwpfX1mbj1mdW5jdGlvbiBKQihkLGcsaCx2LHkpe2NvbnN0IEM9aFsxXSxJPWZ1bmN0aW9uIFlCKGQs''@;'; put 'put ''ZyxoKXtjb25zdCB2PVh0KCk7ZC5maXJzdENyZWF0ZVBhc3MmJihoLnByb3ZpZGVyc1Jlc29sdmVyJiZoLnByb3ZpZGVyc1Jlc29sdmVyKGgpLGN4KGQsdixnLGg1KGQsZywxLG51bGwpLGgpLEltKGQsdikpO2NvbnN0IHk9VDQoZyxkLHYuZGlyZWN0aXZlU3RhcnQsdik7cXUoeSxnKTtjb25z''@;'; put 'put ''dCBDPXZjKHYsZyk7cmV0dXJuIEMmJnF1KEMsZykseX0oQyxoLGcpO2lmKHYuY29tcG9uZW50cy5wdXNoKEkpLGRbOF09SSxudWxsIT09eSlmb3IoY29uc3QgdWUgb2YgeSl1ZShJLGcpO2lmKGcuY29udGVudFF1ZXJpZXMpe2NvbnN0IHVlPVh0KCk7Zy5jb250ZW50UXVlcmllcygxLEksdWUu''@;'; put 'put ''ZGlyZWN0aXZlU3RhcnQpfWNvbnN0IFo9WHQoKTtyZXR1cm4hQy5maXJzdENyZWF0ZVBhc3N8fG51bGw9PT1nLmhvc3RCaW5kaW5ncyYmbnVsbD09PWcuaG9zdEF0dHJzfHwoemYoWi5pbmRleCksc0EoaFsxXSxaLDAsWi5kaXJlY3RpdmVTdGFydCxaLmRpcmVjdGl2ZUVuZCxnKSxDZihnLEkp''@;'; put 'put ''KSxJfShpcix0aGlzLmNvbXBvbmVudERlZiwkdCxwdCxbdnhdKSx6NChPdCwkdCxudWxsKX1maW5hbGx5e0pwKCl9cmV0dXJuIG5ldyBPXyh0aGlzLmNvbXBvbmVudFR5cGUsZm4scDYoTG4sJHQpLCR0LExuKX19Y2xhc3MgT18gZXh0ZW5kcyBjbGFzcyBCNHt9e2NvbnN0cnVjdG9yKGcsaCx2''@;'; put 'put ''LHksQyl7c3VwZXIoKSx0aGlzLmxvY2F0aW9uPXYsdGhpcy5fcm9vdExWaWV3PXksdGhpcy5fdE5vZGU9Qyx0aGlzLmluc3RhbmNlPWgsdGhpcy5ob3N0Vmlldz10aGlzLmNoYW5nZURldGVjdG9yUmVmPW5ldyBBQSh5KSx0aGlzLmNvbXBvbmVudFR5cGU9Z31zZXRJbnB1dChnLGgpe2NvbnN0''@;'; put 'put ''IHY9dGhpcy5fdE5vZGUuaW5wdXRzO2xldCB5O2lmKG51bGwhPT12JiYoeT12W2ddKSl7Y29uc3QgQz10aGlzLl9yb290TFZpZXc7dkEoQ1sxXSxDLHksZyxoKSxEbShDLHRoaXMuX3ROb2RlLmluZGV4KX19Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBJNCh0aGlzLl90Tm9kZSx0aGlzLl9y''@;'; put 'put ''b290TFZpZXcpfWRlc3Ryb3koKXt0aGlzLmhvc3RWaWV3LmRlc3Ryb3koKX1vbkRlc3Ryb3koZyl7dGhpcy5ob3N0Vmlldy5vbkRlc3Ryb3koZyl9fWZ1bmN0aW9uIHZ4KCl7Y29uc3QgZD1YdCgpO2VtKFB0KClbMV0sZCl9ZnVuY3Rpb24gRG8oZCl7bGV0IGc9ZnVuY3Rpb24gQXgoZCl7cmV0''@;'; put 'put ''dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihkLnByb3RvdHlwZSkuY29uc3RydWN0b3J9KGQudHlwZSksaD0hMDtjb25zdCB2PVtkXTtmb3IoO2c7KXtsZXQgeTtpZihWZihkKSl5PWcuXHUwMjc1Y21wfHxnLlx1MDI3NWRpcjtlbHNle2lmKGcuXHUwMjc1Y21wKXRocm93IG5ldyBlbig5MDMs''@;'; put 'put ''ITEpO3k9Zy5cdTAyNzVkaXJ9aWYoeSl7aWYoaCl7di5wdXNoKHkpO2NvbnN0IEk9ZDtJLmlucHV0cz1SXyhkLmlucHV0cyksSS5kZWNsYXJlZElucHV0cz1SXyhkLmRlY2xhcmVkSW5wdXRzKSxJLm91dHB1dHM9Ul8oZC5vdXRwdXRzKTtjb25zdCBaPXkuaG9zdEJpbmRpbmdzO1omJiRCKGQs''@;'; put 'put ''Wik7Y29uc3QgdWU9eS52aWV3UXVlcnksX2U9eS5jb250ZW50UXVlcmllcztpZih1ZSYmeXgoZCx1ZSksX2UmJktCKGQsX2UpLGtyKGQuaW5wdXRzLHkuaW5wdXRzKSxrcihkLmRlY2xhcmVkSW5wdXRzLHkuZGVjbGFyZWRJbnB1dHMpLGtyKGQub3V0cHV0cyx5Lm91dHB1dHMpLFZmKHkpJiZ5''@;'; put 'put ''LmRhdGEuYW5pbWF0aW9uKXtjb25zdCBCZT1kLmRhdGE7QmUuYW5pbWF0aW9uPShCZS5hbmltYXRpb258fFtdKS5jb25jYXQoeS5kYXRhLmFuaW1hdGlvbil9fWNvbnN0IEM9eS5mZWF0dXJlcztpZihDKWZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtjb25zdCBaPUNbSV07WiYmWi5uZ0lu''@;'; put 'put ''aGVyaXQmJlooZCksWj09PURvJiYoaD0hMSl9fWc9T2JqZWN0LmdldFByb3RvdHlwZU9mKGcpfSFmdW5jdGlvbiBYQihkKXtsZXQgZz0wLGg9bnVsbDtmb3IobGV0IHY9ZC5sZW5ndGgtMTt2Pj0wO3YtLSl7Y29uc3QgeT1kW3ZdO3kuaG9zdFZhcnM9Zys9eS5ob3N0VmFycyx5Lmhvc3RBdHRy''@;'; put 'put ''cz16Yyh5Lmhvc3RBdHRycyxoPXpjKGgseS5ob3N0QXR0cnMpKX19KHYpfWZ1bmN0aW9uIFJfKGQpe3JldHVybiBkPT09czE/e306ZD09PVowP1tdOmR9ZnVuY3Rpb24geXgoZCxnKXtjb25zdCBoPWQudmlld1F1ZXJ5O2Qudmlld1F1ZXJ5PWg/KHYseSk9PntnKHYseSksaCh2LHkpfTpnfWZ1''@;'; put 'put ''bmN0aW9uIEtCKGQsZyl7Y29uc3QgaD1kLmNvbnRlbnRRdWVyaWVzO2QuY29udGVudFF1ZXJpZXM9aD8odix5LEMpPT57Zyh2LHksQyksaCh2LHksQyl9Omd9ZnVuY3Rpb24gJEIoZCxnKXtjb25zdCBoPWQuaG9zdEJpbmRpbmdzO2QuaG9zdEJpbmRpbmdzPWg/KHYseSk9PntnKHYseSksaCh2''@;'; put 'put ''LHkpfTpnfWxldCBXND1udWxsO2Z1bmN0aW9uIEU2KCl7aWYoIVc0KXtjb25zdCBkPVBsLlN5bWJvbDtpZihkJiZkLml0ZXJhdG9yKVc0PWQuaXRlcmF0b3I7ZWxzZXtjb25zdCBnPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE1hcC5wcm90b3R5cGUpO2ZvcihsZXQgaD0wO2g8Zy5sZW5n''@;'; put 'put ''dGg7KytoKXtjb25zdCB2PWdbaF07ImVudHJpZXMiIT09diYmInNpemUiIT09diYmTWFwLnByb3RvdHlwZVt2XT09PU1hcC5wcm90b3R5cGUuZW50cmllcyYmKFc0PXYpfX19cmV0dXJuIFc0fWZ1bmN0aW9uIFBkKGQpe3JldHVybiEhQl8oZCkmJihBcnJheS5pc0FycmF5KGQpfHwhKGQgaW5z''@;'; put 'put ''dGFuY2VvZiBNYXApJiZFNigpaW4gZCl9ZnVuY3Rpb24gQl8oZCl7cmV0dXJuIG51bGwhPT1kJiYoImZ1bmN0aW9uIj09dHlwZW9mIGR8fCJvYmplY3QiPT10eXBlb2YgZCl9ZnVuY3Rpb24gTDMoZCxnLGgpe3JldHVybiBkW2ddPWh9ZnVuY3Rpb24gdGMoZCxnLGgpe3JldHVybiFPYmplY3Qu''@;'; put 'put ''aXMoZFtnXSxoKSYmKGRbZ109aCwhMCl9ZnVuY3Rpb24geDYoZCxnLGgsdil7Y29uc3QgeT10YyhkLGcsaCk7cmV0dXJuIHRjKGQsZysxLHYpfHx5fWZ1bmN0aW9uIGJBKGQsZyxoLHYseSl7Y29uc3QgQz14NihkLGcsaCx2KTtyZXR1cm4gdGMoZCxnKzIseSl8fEN9ZnVuY3Rpb24gR2koZCxn''@;'; put 'put ''LGgsdil7Y29uc3QgeT1QdCgpO3JldHVybiB0Yyh5LGkyKCksZykmJihmZSgpLE9oKEYyKCkseSxkLGcsaCx2KSksR2l9ZnVuY3Rpb24gbTUoZCxnLGgsdil7cmV0dXJuIHRjKGQsaTIoKSxoKT9nK0puKGgpK3Y6TmF9ZnVuY3Rpb24gcm4oZCxnLGgsdix5LEMsSSxaKXtjb25zdCB1ZT1QdCgp''@;'; put 'put ''LF9lPWZlKCksQmU9ZCsyMixOZT1fZS5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gX0EoZCxnLGgsdix5LEMsSSxaLHVlKXtjb25zdCBfZT1nLmNvbnN0cyxCZT1TNihnLGQsNCxJfHxudWxsLE4xKF9lLFopKTt5XyhnLGgsQmUsTjEoX2UsdWUpKSxlbShnLEJlKTtjb25zdCBOZT1CZS50Vmll''@;'; put 'put ''d3M9bV8oMixCZSx2LHksQyxnLmRpcmVjdGl2ZVJlZ2lzdHJ5LGcucGlwZVJlZ2lzdHJ5LG51bGwsZy5zY2hlbWFzLF9lKTtyZXR1cm4gbnVsbCE9PWcucXVlcmllcyYmKGcucXVlcmllcy50ZW1wbGF0ZShnLEJlKSxOZS5xdWVyaWVzPWcucXVlcmllcy5lbWJlZGRlZFRWaWV3KEJlKSksQmV9''@;'; put 'put ''KEJlLF9lLHVlLGcsaCx2LHksQyxJKTpfZS5kYXRhW0JlXTtqbihOZSwhMSk7Y29uc3QgS2U9dWVbMTFdLmNyZWF0ZUNvbW1lbnQoIiIpO2JmKF9lLHVlLEtlLE5lKSxxdShLZSx1ZSksUm0odWUsdWVbQmVdPWhBKEtlLHVlLEtlLE5lKSksemcoTmUpJiZwXyhfZSx1ZSxOZSksbnVsbCE9SSYm''@;'; put 'put ''Z18odWUsTmUsWil9ZnVuY3Rpb24gdmEoZCl7cmV0dXJuIFFwKGZ1bmN0aW9uICRvKCl7cmV0dXJuIENhLmxGcmFtZS5jb250ZXh0TFZpZXd9KCksMjIrZCl9ZnVuY3Rpb24gVHQoZCxnLGgpe2NvbnN0IHY9UHQoKTtyZXR1cm4gdGModixpMigpLGcpJiZlYyhmZSgpLEYyKCksdixkLGcsdlsx''@;'; put 'put ''MV0saCwhMSksVHR9ZnVuY3Rpb24gRl8oZCxnLGgsdix5KXtjb25zdCBJPXk/ImNsYXNzIjoic3R5bGUiO3ZBKGQsaCxnLmlucHV0c1tJXSxJLHYpfWZ1bmN0aW9uIG50KGQsZyxoLHYpe2NvbnN0IHk9UHQoKSxDPWZlKCksST0yMitkLFo9eVsxMV0sdWU9eVtJXT10NShaLGcsZnVuY3Rpb24g''@;'; put 'put ''QWQoKXtyZXR1cm4gQ2EubEZyYW1lLmN1cnJlbnROYW1lc3BhY2V9KCkpLF9lPUMuZmlyc3RDcmVhdGVQYXNzP2Z1bmN0aW9uIGFQKGQsZyxoLHYseSxDLEkpe2NvbnN0IFo9Zy5jb25zdHMsX2U9UzYoZyxkLDIseSxOMShaLEMpKTtyZXR1cm4geV8oZyxoLF9lLE4xKFosSSkpLG51bGwhPT1f''@;'; put 'put ''ZS5hdHRycyYmcDUoX2UsX2UuYXR0cnMsITEpLG51bGwhPT1fZS5tZXJnZWRBdHRycyYmcDUoX2UsX2UubWVyZ2VkQXR0cnMsITApLG51bGwhPT1nLnF1ZXJpZXMmJmcucXVlcmllcy5lbGVtZW50U3RhcnQoZyxfZSksX2V9KEksQyx5LDAsZyxoLHYpOkMuZGF0YVtJXTtqbihfZSwhMCk7Y29u''@;'; put 'put ''c3QgQmU9X2UubWVyZ2VkQXR0cnM7bnVsbCE9PUJlJiZaYyhaLHVlLEJlKTtjb25zdCBOZT1fZS5jbGFzc2VzO251bGwhPT1OZSYmRDMoWix1ZSxOZSk7Y29uc3QgS2U9X2Uuc3R5bGVzO3JldHVybiBudWxsIT09S2UmJkpiKFosdWUsS2UpLDY0IT0oNjQmX2UuZmxhZ3MpJiZiZihDLHksdWUs''@;'; put 'put ''X2UpLDA9PT1mdW5jdGlvbiBpYigpe3JldHVybiBDYS5sRnJhbWUuZWxlbWVudERlcHRoQ291bnR9KCkmJnF1KHVlLHkpLGZ1bmN0aW9uIGYyKCl7Q2EubEZyYW1lLmVsZW1lbnREZXB0aENvdW50Kyt9KCksemcoX2UpJiYocF8oQyx5LF9lKSxkXyhDLF9lLHkpKSxudWxsIT09diYmZ18oeSxf''@;'; put 'put ''ZSksbnR9ZnVuY3Rpb24gb3QoKXtsZXQgZD1YdCgpO18oKT9BbygpOihkPWQucGFyZW50LGpuKGQsITEpKTtjb25zdCBnPWQ7IWZ1bmN0aW9uIHBSKCl7Q2EubEZyYW1lLmVsZW1lbnREZXB0aENvdW50LS19KCk7Y29uc3QgaD1mZSgpO3JldHVybiBoLmZpcnN0Q3JlYXRlUGFzcyYmKGVtKGgs''@;'; put 'put ''ZCksS28oZCkmJmgucXVlcmllcy5lbGVtZW50RW5kKGQpKSxudWxsIT1nLmNsYXNzZXNXaXRob3V0SG9zdCYmZnVuY3Rpb24gdGEoZCl7cmV0dXJuIDAhPSgxNiZkLmZsYWdzKX0oZykmJkZfKGgsZyxQdCgpLGcuY2xhc3Nlc1dpdGhvdXRIb3N0LCEwKSxudWxsIT1nLnN0eWxlc1dpdGhvdXRI''@;'; put 'put ''b3N0JiZmdW5jdGlvbiBqMShkKXtyZXR1cm4gMCE9KDMyJmQuZmxhZ3MpfShnKSYmRl8oaCxnLFB0KCksZy5zdHlsZXNXaXRob3V0SG9zdCwhMSksb3R9ZnVuY3Rpb24gQ3IoZCxnLGgsdil7cmV0dXJuIG50KGQsZyxoLHYpLG90KCksQ3J9ZnVuY3Rpb24gQjAoZCxnLGgpe2NvbnN0IHY9UHQo''@;'; put 'put ''KSx5PWZlKCksQz1kKzIyLEk9eS5maXJzdENyZWF0ZVBhc3M/ZnVuY3Rpb24gdzUoZCxnLGgsdix5KXtjb25zdCBDPWcuY29uc3RzLEk9TjEoQyx2KSxaPVM2KGcsZCw4LCJuZy1jb250YWluZXIiLEkpO3JldHVybiBudWxsIT09SSYmcDUoWixJLCEwKSx5XyhnLGgsWixOMShDLHkpKSxudWxs''@;'; put 'put ''IT09Zy5xdWVyaWVzJiZnLnF1ZXJpZXMuZWxlbWVudFN0YXJ0KGcsWiksWn0oQyx5LHYsZyxoKTp5LmRhdGFbQ107am4oSSwhMCk7Y29uc3QgWj12W0NdPXZbMTFdLmNyZWF0ZUNvbW1lbnQoIiIpO3JldHVybiBiZih5LHYsWixJKSxxdShaLHYpLHpnKEkpJiYocF8oeSx2LEkpLGRfKHksSSx2''@;'; put 'put ''KSksbnVsbCE9aCYmZ18odixJKSxCMH1mdW5jdGlvbiBQMCgpe2xldCBkPVh0KCk7Y29uc3QgZz1mZSgpO3JldHVybiBfKCk/QW8oKTooZD1kLnBhcmVudCxqbihkLCExKSksZy5maXJzdENyZWF0ZVBhc3MmJihlbShnLGQpLEtvKGQpJiZnLnF1ZXJpZXMuZWxlbWVudEVuZChkKSksUDB9ZnVu''@;'; put 'put ''Y3Rpb24gZjEoZCxnLGgpe3JldHVybiBCMChkLGcsaCksUDAoKSxmMX1mdW5jdGlvbiB3aSgpe3JldHVybiBQdCgpfWZ1bmN0aW9uIFZtKGQpe3JldHVybiEhZCYmImZ1bmN0aW9uIj09dHlwZW9mIGQudGhlbn1mdW5jdGlvbiBTeChkKXtyZXR1cm4hIWQmJiJmdW5jdGlvbiI9PXR5cGVvZiBk''@;'; put 'put ''LnN1YnNjcmliZX1jb25zdCBIXz1TeDtmdW5jdGlvbiBHbihkLGcsaCx2KXtjb25zdCB5PVB0KCksQz1mZSgpLEk9WHQoKTtyZXR1cm4gVl8oQyx5LHlbMTFdLEksZCxnLDAsdiksR259ZnVuY3Rpb24gTl8oZCxnKXtjb25zdCBoPVh0KCksdj1QdCgpLHk9ZmUoKTtyZXR1cm4gVl8oeSx2LElf''@;'; put 'put ''KG05KHkuZGF0YSksaCx2KSxoLGQsZyksTl99ZnVuY3Rpb24gVl8oZCxnLGgsdix5LEMsSSxaKXtjb25zdCB1ZT16Zyh2KSxCZT1kLmZpcnN0Q3JlYXRlUGFzcyYmVF8oZCksTmU9Z1s4XSxLZT14XyhnKTtsZXQgcHQ9ITA7aWYoMyZ2LnR5cGV8fFope2NvbnN0IGZuPXZjKHYsZyksTG49Wj9a''@;'; put 'put ''KGZuKTpmbixpcj1LZS5sZW5ndGgsbXI9Wj93cj0+WihYMih3clt2LmluZGV4XSkpOnYuaW5kZXg7bGV0IFNyPW51bGw7aWYoIVomJnVlJiYoU3I9ZnVuY3Rpb24gbFAoZCxnLGgsdil7Y29uc3QgeT1kLmNsZWFudXA7aWYobnVsbCE9eSlmb3IobGV0IEM9MDtDPHkubGVuZ3RoLTE7Qys9Mil7''@;'; put 'put ''Y29uc3QgST15W0NdO2lmKEk9PT1oJiZ5W0MrMV09PT12KXtjb25zdCBaPWdbN10sdWU9eVtDKzJdO3JldHVybiBaLmxlbmd0aD51ZT9aW3VlXTpudWxsfSJzdHJpbmciPT10eXBlb2YgSSYmKEMrPTIpfXJldHVybiBudWxsfShkLGcseSx2LmluZGV4KSksbnVsbCE9PVNyKShTci5fX25nTGFz''@;'; put 'put ''dExpc3RlbmVyRm5fX3x8U3IpLl9fbmdOZXh0TGlzdGVuZXJGbl9fPUMsU3IuX19uZ0xhc3RMaXN0ZW5lckZuX189QyxwdD0hMTtlbHNle0M9Q0EodixnLE5lLEMsITEpO2NvbnN0IHdyPWgubGlzdGVuKExuLHksQyk7S2UucHVzaChDLHdyKSxCZSYmQmUucHVzaCh5LG1yLGlyLGlyKzEpfX1l''@;'; put 'put ''bHNlIEM9Q0EodixnLE5lLEMsITEpO2NvbnN0IE90PXYub3V0cHV0cztsZXQgJHQ7aWYocHQmJm51bGwhPT1PdCYmKCR0PU90W3ldKSl7Y29uc3QgZm49JHQubGVuZ3RoO2lmKGZuKWZvcihsZXQgTG49MDtMbjxmbjtMbis9Mil7Y29uc3QgUXI9Z1skdFtMbl1dWyR0W0xuKzFdXS5zdWJzY3Jp''@;'; put 'put ''YmUoQykseWk9S2UubGVuZ3RoO0tlLnB1c2goQyxRciksQmUmJkJlLnB1c2goeSx2LmluZGV4LHlpLC0oeWkrMSkpfX19ZnVuY3Rpb24gam0oZCxnLGgsdil7dHJ5e3JldHVybiExIT09aCh2KX1jYXRjaCh5KXtyZXR1cm4gbUEoZCx5KSwhMX19ZnVuY3Rpb24gQ0EoZCxnLGgsdix5KXtyZXR1''@;'; put 'put ''cm4gZnVuY3Rpb24gQyhJKXtpZihJPT09RnVuY3Rpb24pcmV0dXJuIHY7cEEoMiZkLmZsYWdzP1F1KGQuaW5kZXgsZyk6Zyk7bGV0IHVlPWptKGcsMCx2LEkpLF9lPUMuX19uZ05leHRMaXN0ZW5lckZuX187Zm9yKDtfZTspdWU9am0oZywwLF9lLEkpJiZ1ZSxfZT1fZS5fX25nTmV4dExpc3Rl''@;'; put 'put ''bmVyRm5fXztyZXR1cm4geSYmITE9PT11ZSYmKEkucHJldmVudERlZmF1bHQoKSxJLnJldHVyblZhbHVlPSExKSx1ZX19ZnVuY3Rpb24gUXQoZD0xKXtyZXR1cm4gZnVuY3Rpb24gWHAoZCl7cmV0dXJuKENhLmxGcmFtZS5jb250ZXh0TFZpZXc9ZnVuY3Rpb24gWmYoZCxnKXtmb3IoO2Q+MDsp''@;'; put 'put ''Zz1nWzE1XSxkLS07cmV0dXJuIGd9KGQsQ2EubEZyYW1lLmNvbnRleHRMVmlldykpWzhdfShkKX1mdW5jdGlvbiBzUChkLGcpe2xldCBoPW51bGw7Y29uc3Qgdj1mdW5jdGlvbiBBQihkKXtjb25zdCBnPWQuYXR0cnM7aWYobnVsbCE9Zyl7Y29uc3QgaD1nLmluZGV4T2YoNSk7aWYoMD09KDEm''@;'; put 'put ''aCkpcmV0dXJuIGdbaCsxXX1yZXR1cm4gbnVsbH0oZCk7Zm9yKGxldCB5PTA7eTxnLmxlbmd0aDt5Kyspe2NvbnN0IEM9Z1t5XTtpZigiKiIhPT1DKXtpZihudWxsPT09dj9LYihkLEMsITApOnlCKHYsQykpcmV0dXJuIHl9ZWxzZSBoPXl9cmV0dXJuIGh9ZnVuY3Rpb24gSzAoZCl7Y29uc3Qg''@;'; put 'put ''Zz1QdCgpWzE2XVs2XTtpZighZy5wcm9qZWN0aW9uKXtjb25zdCB2PWcucHJvamVjdGlvbj1tMyhkP2QubGVuZ3RoOjEsbnVsbCkseT12LnNsaWNlKCk7bGV0IEM9Zy5jaGlsZDtmb3IoO251bGwhPT1DOyl7Y29uc3QgST1kP3NQKEMsZCk6MDtudWxsIT09SSYmKHlbSV0/eVtJXS5wcm9qZWN0''@;'; put 'put ''aW9uTmV4dD1DOnZbSV09Qyx5W0ldPUMpLEM9Qy5uZXh0fX19ZnVuY3Rpb24gTmkoZCxnPTAsaCl7Y29uc3Qgdj1QdCgpLHk9ZmUoKSxDPVM2KHksMjIrZCwxNixudWxsLGh8fG51bGwpO251bGw9PT1DLnByb2plY3Rpb24mJihDLnByb2plY3Rpb249ZyksQW8oKSw2NCE9KDY0JkMuZmxhZ3Mp''@;'; put 'put ''JiZmdW5jdGlvbiBtQihkLGcsaCl7TkUoZ1sxMV0sMCxnLGgsamIoZCxoLGcpLFBFKGgucGFyZW50fHxnWzZdLGgsZykpfSh5LHYsQyl9ZnVuY3Rpb24gSTYoZCxnLGgpe3JldHVybiBabShkLCIiLGcsIiIsaCksSTZ9ZnVuY3Rpb24gWm0oZCxnLGgsdix5KXtjb25zdCBDPVB0KCksST1tNShD''@;'; put 'put ''LGcsaCx2KTtyZXR1cm4gSSE9PU5hJiZlYyhmZSgpLEYyKCksQyxkLEksQ1sxMV0seSwhMSksWm19ZnVuY3Rpb24gRHgoZCxnLGgsdix5KXtjb25zdCBDPWRbaCsxXSxJPW51bGw9PT1nO2xldCBaPXY/RGgoQyk6RGQoQyksdWU9ITE7Zm9yKDswIT09WiYmKCExPT09dWV8fEkpOyl7Y29uc3Qg''@;'; put 'put ''QmU9ZFtaKzFdO1pfKGRbWl0sZykmJih1ZT0hMCxkW1orMV09dj9hNShCZSk6aV8oQmUpKSxaPXY/RGgoQmUpOkRkKEJlKX11ZSYmKGRbaCsxXT12P2lfKEMpOmE1KEMpKX1mdW5jdGlvbiBaXyhkLGcpe3JldHVybiBudWxsPT09ZHx8bnVsbD09Z3x8KEFycmF5LmlzQXJyYXkoZCk/ZFsxXTpk''@;'; put 'put ''KT09PWd8fCEoIUFycmF5LmlzQXJyYXkoZCl8fCJzdHJpbmciIT10eXBlb2YgZykmJkY4KGQsZyk+PTB9ZnVuY3Rpb24gTmQoZCxnLGgpe3JldHVybiAkZihkLGcsaCwhMSksTmR9ZnVuY3Rpb24gRmkoZCxnKXtyZXR1cm4gJGYoZCxnLG51bGwsITApLEZpfWZ1bmN0aW9uICRmKGQsZyxoLHYp''@;'; put 'put ''e2NvbnN0IHk9UHQoKSxDPWZlKCksST1vMigyKTtDLmZpcnN0VXBkYXRlUGFzcyYmZnVuY3Rpb24gangoZCxnLGgsdil7Y29uc3QgeT1kLmRhdGE7aWYobnVsbD09PXlbaCsxXSl7Y29uc3QgQz15W1VsKCldLEk9ZnVuY3Rpb24gVngoZCxnKXtyZXR1cm4gZz49ZC5leHBhbmRvU3RhcnRJbmRl''@;'; put 'put ''eH0oZCxoKTsoZnVuY3Rpb24gR20oZCxnKXtyZXR1cm4gMCE9KGQuZmxhZ3MmKGc/MTY6MzIpKX0pKEMsdikmJm51bGw9PT1nJiYhSSYmKGc9ITEpLGc9ZnVuY3Rpb24gWngoZCxnLGgsdil7Y29uc3QgeT1tOShkKTtsZXQgQz12P2cucmVzaWR1YWxDbGFzc2VzOmcucmVzaWR1YWxTdHlsZXM7''@;'; put 'put ''aWYobnVsbD09PXkpMD09PSh2P2cuY2xhc3NCaW5kaW5nczpnLnN0eWxlQmluZGluZ3MpJiYoaD1fNShoPXpfKG51bGwsZCxnLGgsdiksZy5hdHRycyx2KSxDPW51bGwpO2Vsc2V7Y29uc3QgST1nLmRpcmVjdGl2ZVN0eWxpbmdMYXN0O2lmKC0xPT09SXx8ZFtJXSE9PXkpaWYoaD16Xyh5LGQs''@;'; put 'put ''ZyxoLHYpLG51bGw9PT1DKXtsZXQgdWU9ZnVuY3Rpb24gQVAoZCxnLGgpe2NvbnN0IHY9aD9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzO2lmKDAhPT1EZCh2KSlyZXR1cm4gZFtEaCh2KV19KGQsZyx2KTt2b2lkIDAhPT11ZSYmQXJyYXkuaXNBcnJheSh1ZSkmJih1ZT16XyhudWxs''@;'; put 'put ''LGQsZyx1ZVsxXSx2KSx1ZT1fNSh1ZSxnLmF0dHJzLHYpLGZ1bmN0aW9uIHlQKGQsZyxoLHYpe2RbRGgoaD9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzKV09dn0oZCxnLHYsdWUpKX1lbHNlIEM9ZnVuY3Rpb24gengoZCxnLGgpe2xldCB2O2NvbnN0IHk9Zy5kaXJlY3RpdmVFbmQ7''@;'; put 'put ''Zm9yKGxldCBDPTErZy5kaXJlY3RpdmVTdHlsaW5nTGFzdDtDPHk7QysrKXY9XzUodixkW0NdLmhvc3RBdHRycyxoKTtyZXR1cm4gXzUodixnLmF0dHJzLGgpfShkLGcsdil9cmV0dXJuIHZvaWQgMCE9PUMmJih2P2cucmVzaWR1YWxDbGFzc2VzPUM6Zy5yZXNpZHVhbFN0eWxlcz1DKSxofSh5''@;'; put 'put ''LEMsZyx2KSxmdW5jdGlvbiB1UChkLGcsaCx2LHksQyl7bGV0IEk9Qz9nLmNsYXNzQmluZGluZ3M6Zy5zdHlsZUJpbmRpbmdzLFo9RGgoSSksdWU9RGQoSSk7ZFt2XT1oO2xldCBCZSxfZT0hMTtpZihBcnJheS5pc0FycmF5KGgpKXtjb25zdCBOZT1oO0JlPU5lWzFdLChudWxsPT09QmV8fEY4''@;'; put 'put ''KE5lLEJlKT4wKSYmKF9lPSEwKX1lbHNlIEJlPWg7aWYoeSlpZigwIT09dWUpe2NvbnN0IEtlPURoKGRbWisxXSk7ZFt2KzFdPSQ5KEtlLFopLDAhPT1LZSYmKGRbS2UrMV09XzYoZFtLZSsxXSx2KSksZFtaKzFdPWZ1bmN0aW9uIHE5KGQsZyl7cmV0dXJuIDEzMTA3MSZkfGc8PDE3fShkW1or''@;'; put 'put ''MV0sdil9ZWxzZSBkW3YrMV09JDkoWiwwKSwwIT09WiYmKGRbWisxXT1fNihkW1orMV0sdikpLFo9djtlbHNlIGRbdisxXT0kOSh1ZSwwKSwwPT09Wj9aPXY6ZFt1ZSsxXT1fNihkW3VlKzFdLHYpLHVlPXY7X2UmJihkW3YrMV09aV8oZFt2KzFdKSksRHgoZCxCZSx2LCEwKSxEeChkLEJlLHYs''@;'; put 'put ''ITEpLGZ1bmN0aW9uIGNQKGQsZyxoLHYseSl7Y29uc3QgQz15P2QucmVzaWR1YWxDbGFzc2VzOmQucmVzaWR1YWxTdHlsZXM7bnVsbCE9QyYmInN0cmluZyI9PXR5cGVvZiBnJiZGOChDLGcpPj0wJiYoaFt2KzFdPWE1KGhbdisxXSkpfShnLEJlLGQsdixDKSxJPSQ5KFosdWUpLEM/Zy5jbGFz''@;'; put 'put ''c0JpbmRpbmdzPUk6Zy5zdHlsZUJpbmRpbmdzPUl9KHksQyxnLGgsSSx2KX19KEMsZCxJLHYpLGchPT1OYSYmdGMoeSxJLGcpJiZmdW5jdGlvbiBHXyhkLGcsaCx2LHksQyxJLFope2lmKCEoMyZnLnR5cGUpKXJldHVybjtjb25zdCB1ZT1kLmRhdGEsX2U9dWVbWisxXTtrQShmdW5jdGlvbiBl''@;'; put 'put ''QShkKXtyZXR1cm4gMT09KDEmZCl9KF9lKT9XXyh1ZSxnLGgseSxEZChfZSksSSk6dm9pZCAwKXx8KGtBKEMpfHxmdW5jdGlvbiByXyhkKXtyZXR1cm4gMj09KDImZCl9KF9lKSYmKEM9V18odWUsbnVsbCxoLHksWixJKSksZnVuY3Rpb24gdkIoZCxnLGgsdix5KXtpZihnKXk/ZC5hZGRDbGFz''@;'; put 'put ''cyhoLHYpOmQucmVtb3ZlQ2xhc3MoaCx2KTtlbHNle2xldCBDPS0xPT09di5pbmRleE9mKCItIik/dm9pZCAwOmZ1LkRhc2hDYXNlO251bGw9PXk/ZC5yZW1vdmVTdHlsZShoLHYsQyk6KCJzdHJpbmciPT10eXBlb2YgeSYmeS5lbmRzV2l0aCgiIWltcG9ydGFudCIpJiYoeT15LnNsaWNlKDAs''@;'; put 'put ''LTEwKSxDfD1mdS5JbXBvcnRhbnQpLGQuc2V0U3R5bGUoaCx2LHksQykpfX0odixJLFVwKFVsKCksaCkseSxDKSl9KEMsQy5kYXRhW1VsKCldLHkseVsxMV0sZCx5W0krMV09ZnVuY3Rpb24gTHUoZCxnKXtyZXR1cm4gbnVsbD09ZHx8KCJzdHJpbmciPT10eXBlb2YgZz9kKz1nOiJvYmplY3Qi''@;'; put 'put ''PT10eXBlb2YgZCYmKGQ9bW4oZDIoZCkpKSksZH0oZyxoKSx2LEkpfWZ1bmN0aW9uIHpfKGQsZyxoLHYseSl7bGV0IEM9bnVsbDtjb25zdCBJPWguZGlyZWN0aXZlRW5kO2xldCBaPWguZGlyZWN0aXZlU3R5bGluZ0xhc3Q7Zm9yKC0xPT09Wj9aPWguZGlyZWN0aXZlU3RhcnQ6WisrO1o8SSYm''@;'; put 'put ''KEM9Z1taXSx2PV81KHYsQy5ob3N0QXR0cnMseSksQyE9PWQpOylaKys7cmV0dXJuIG51bGwhPT1kJiYoaC5kaXJlY3RpdmVTdHlsaW5nTGFzdD1aKSx2fWZ1bmN0aW9uIF81KGQsZyxoKXtjb25zdCB2PWg/MToyO2xldCB5PS0xO2lmKG51bGwhPT1nKWZvcihsZXQgQz0wO0M8Zy5sZW5ndGg7''@;'; put 'put ''QysrKXtjb25zdCBJPWdbQ107Im51bWJlciI9PXR5cGVvZiBJP3k9STp5PT09diYmKEFycmF5LmlzQXJyYXkoZCl8fChkPXZvaWQgMD09PWQ/W106WyIiLGRdKSxZYyhkLEksISFofHxnWysrQ10pKX1yZXR1cm4gdm9pZCAwPT09ZD9udWxsOmR9ZnVuY3Rpb24gV18oZCxnLGgsdix5LEMpe2Nv''@;'; put 'put ''bnN0IEk9bnVsbD09PWc7bGV0IFo7Zm9yKDt5PjA7KXtjb25zdCB1ZT1kW3ldLF9lPUFycmF5LmlzQXJyYXkodWUpLEJlPV9lP3VlWzFdOnVlLE5lPW51bGw9PT1CZTtsZXQgS2U9aFt5KzFdO0tlPT09TmEmJihLZT1OZT9aMDp2b2lkIDApO2xldCBwdD1OZT9pbShLZSx2KTpCZT09PXY/S2U6''@;'; put 'put ''dm9pZCAwO2lmKF9lJiYha0EocHQpJiYocHQ9aW0odWUsdikpLGtBKHB0KSYmKFo9cHQsSSkpcmV0dXJuIFo7Y29uc3QgT3Q9ZFt5KzFdO3k9ST9EaChPdCk6RGQoT3QpfWlmKG51bGwhPT1nKXtsZXQgdWU9Qz9nLnJlc2lkdWFsQ2xhc3NlczpnLnJlc2lkdWFsU3R5bGVzO251bGwhPXVlJiYo''@;'; put 'put ''Wj1pbSh1ZSx2KSl9cmV0dXJuIFp9ZnVuY3Rpb24ga0EoZCl7cmV0dXJuIHZvaWQgMCE9PWR9ZnVuY3Rpb24gWXQoZCxnPSIiKXtjb25zdCBoPVB0KCksdj1mZSgpLHk9ZCsyMixDPXYuZmlyc3RDcmVhdGVQYXNzP1M2KHYseSwxLGcsbnVsbCk6di5kYXRhW3ldLEk9aFt5XT1mdW5jdGlvbiBG''@;'; put 'put ''YihkLGcpe3JldHVybiBkLmNyZWF0ZVRleHQoZyl9KGhbMTFdLGcpO2JmKHYsaCxJLEMpLGpuKEMsITEpfWZ1bmN0aW9uIGppKGQpe3JldHVybiBKaSgiIixkLCIiKSxqaX1mdW5jdGlvbiBKaShkLGcsaCl7Y29uc3Qgdj1QdCgpLHk9bTUodixkLGcsaCk7cmV0dXJuIHkhPT1OYSYmUmgodixV''@;'; put 'put ''bCgpLHkpLEppfWZ1bmN0aW9uIEZoKGQsZyxoLHYseSl7Y29uc3QgQz1QdCgpLEk9ZnVuY3Rpb24gS2YoZCxnLGgsdix5LEMpe2NvbnN0IFo9eDYoZCxNbigpLGgseSk7cmV0dXJuIG8yKDIpLFo/ZytKbihoKSt2K0puKHkpK0M6TmF9KEMsZCxnLGgsdix5KTtyZXR1cm4gSSE9PU5hJiZSaChD''@;'; put 'put ''LFVsKCksSSksRmh9ZnVuY3Rpb24ga2YoZCxnLGgsdix5LEMsSSl7Y29uc3QgWj1QdCgpLHVlPWZ1bmN0aW9uIEZkKGQsZyxoLHYseSxDLEksWil7Y29uc3QgX2U9YkEoZCxNbigpLGgseSxJKTtyZXR1cm4gbzIoMyksX2U/ZytKbihoKSt2K0puKHkpK0MrSm4oSSkrWjpOYX0oWixkLGcsaCx2''@;'; put 'put ''LHksQyxJKTtyZXR1cm4gdWUhPT1OYSYmUmgoWixVbCgpLHVlKSxrZn1mdW5jdGlvbiBCMyhkLGcsaCl7Y29uc3Qgdj1QdCgpO3JldHVybiB0Yyh2LGkyKCksZykmJmVjKGZlKCksRjIoKSx2LGQsZyx2WzExXSxoLCEwKSxCM31mdW5jdGlvbiBDNShkLGcsaCl7Y29uc3Qgdj1QdCgpO2lmKHRj''@;'; put 'put ''KHYsaTIoKSxnKSl7Y29uc3QgQz1mZSgpLEk9RjIoKTtlYyhDLEksdixkLGcsSV8obTkoQy5kYXRhKSxJLHYpLGgsITApfXJldHVybiBDNX1jb25zdCBOaD12b2lkIDA7dmFyIGVDPVsiZW4iLFtbImEiLCJwIl0sWyJBTSIsIlBNIl0sTmhdLFtbIkFNIiwiUE0iXSxOaCxOaF0sW1siUyIsIk0i''@;'; put 'put ''LCJUIiwiVyIsIlQiLCJGIiwiUyJdLFsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sWyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLFsiU3UiLCJNbyIsIlR1IiwiV2UiLCJUaCIs''@;'; put 'put ''IkZyIiwiU2EiXV0sTmgsW1siSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sWyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSxbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1h''@;'; put 'put ''cmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl1dLE5oLFtbIkIiLCJBIl0sWyJCQyIsIkFEIl0sWyJCZWZvcmUgQ2hyaXN0IiwiQW5ubyBEb21pbmkiXV0sMCxbNiwwXSxbIk0vZC95eSIs''@;'; put 'put ''Ik1NTSBkLCB5IiwiTU1NTSBkLCB5IiwiRUVFRSwgTU1NTSBkLCB5Il0sWyJoOm1tIGEiLCJoOm1tOnNzIGEiLCJoOm1tOnNzIGEgeiIsImg6bW06c3MgYSB6enp6Il0sWyJ7MX0sIHswfSIsTmgsInsxfSAnYXQnIHswfSIsTmhdLFsiLiIsIiwiLCI7IiwiJSIsIisiLCItIiwiRSIsIlx4ZDci''@;'; put 'put ''LCJcdTIwMzAiLCJcdTIyMWUiLCJOYU4iLCI6Il0sWyIjLCMjMC4jIyMiLCIjLCMjMCUiLCJceGE0IywjIzAuMDAiLCIjRTAiXSwiVVNEIiwiJCIsIlVTIERvbGxhciIse30sImx0ciIsZnVuY3Rpb24gcV8oZCl7Y29uc3QgaD1NYXRoLmZsb29yKE1hdGguYWJzKGQpKSx2PWQudG9TdHJpbmco''@;'; put 'put ''KS5yZXBsYWNlKC9eW14uXSpcLj8vLCIiKS5sZW5ndGg7cmV0dXJuIDE9PT1oJiYwPT09dj8xOjV9XTtsZXQgazU9e307ZnVuY3Rpb24gcmMoZCl7Y29uc3QgZz1mdW5jdGlvbiBvVChkKXtyZXR1cm4gZC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL18vZywiLSIpfShkKTtsZXQgaD1pVChnKTtp''@;'; put 'put ''ZihoKXJldHVybiBoO2NvbnN0IHY9Zy5zcGxpdCgiLSIpWzBdO2lmKGg9aVQodiksaClyZXR1cm4gaDtpZigiZW4iPT09dilyZXR1cm4gZUM7dGhyb3cgbmV3IGVuKDcwMSwhMSl9ZnVuY3Rpb24gaVQoZCl7cmV0dXJuIGQgaW4gazV8fChrNVtkXT1QbC5uZyYmUGwubmcuY29tbW9uJiZQbC5u''@;'; put 'put ''Zy5jb21tb24ubG9jYWxlcyYmUGwubmcuY29tbW9uLmxvY2FsZXNbZF0pLGs1W2RdfXZhciBNbz0oKCk9PigoTW89TW98fHt9KVtNby5Mb2NhbGVJZD0wXT0iTG9jYWxlSWQiLE1vW01vLkRheVBlcmlvZHNGb3JtYXQ9MV09IkRheVBlcmlvZHNGb3JtYXQiLE1vW01vLkRheVBlcmlvZHNTdGFu''@;'; put 'put ''ZGFsb25lPTJdPSJEYXlQZXJpb2RzU3RhbmRhbG9uZSIsTW9bTW8uRGF5c0Zvcm1hdD0zXT0iRGF5c0Zvcm1hdCIsTW9bTW8uRGF5c1N0YW5kYWxvbmU9NF09IkRheXNTdGFuZGFsb25lIixNb1tNby5Nb250aHNGb3JtYXQ9NV09Ik1vbnRoc0Zvcm1hdCIsTW9bTW8uTW9udGhzU3RhbmRhbG9u''@;'; put 'put ''ZT02XT0iTW9udGhzU3RhbmRhbG9uZSIsTW9bTW8uRXJhcz03XT0iRXJhcyIsTW9bTW8uRmlyc3REYXlPZldlZWs9OF09IkZpcnN0RGF5T2ZXZWVrIixNb1tNby5XZWVrZW5kUmFuZ2U9OV09IldlZWtlbmRSYW5nZSIsTW9bTW8uRGF0ZUZvcm1hdD0xMF09IkRhdGVGb3JtYXQiLE1vW01vLlRp''@;'; put 'put ''bWVGb3JtYXQ9MTFdPSJUaW1lRm9ybWF0IixNb1tNby5EYXRlVGltZUZvcm1hdD0xMl09IkRhdGVUaW1lRm9ybWF0IixNb1tNby5OdW1iZXJTeW1ib2xzPTEzXT0iTnVtYmVyU3ltYm9scyIsTW9bTW8uTnVtYmVyRm9ybWF0cz0xNF09Ik51bWJlckZvcm1hdHMiLE1vW01vLkN1cnJlbmN5Q29k''@;'; put 'put ''ZT0xNV09IkN1cnJlbmN5Q29kZSIsTW9bTW8uQ3VycmVuY3lTeW1ib2w9MTZdPSJDdXJyZW5jeVN5bWJvbCIsTW9bTW8uQ3VycmVuY3lOYW1lPTE3XT0iQ3VycmVuY3lOYW1lIixNb1tNby5DdXJyZW5jaWVzPTE4XT0iQ3VycmVuY2llcyIsTW9bTW8uRGlyZWN0aW9uYWxpdHk9MTldPSJEaXJl''@;'; put 'put ''Y3Rpb25hbGl0eSIsTW9bTW8uUGx1cmFsQ2FzZT0yMF09IlBsdXJhbENhc2UiLE1vW01vLkV4dHJhRGF0YT0yMV09IkV4dHJhRGF0YSIsTW8pKSgpO2NvbnN0IFM1PSJlbi1VUyI7bGV0IE01PVM1O2Z1bmN0aW9uIEthKGQsZyxoLHYseSl7aWYoZD1HdChkKSxBcnJheS5pc0FycmF5KGQpKWZv''@;'; put 'put ''cihsZXQgQz0wO0M8ZC5sZW5ndGg7QysrKUthKGRbQ10sZyxoLHYseSk7ZWxzZXtjb25zdCBDPWZlKCksST1QdCgpO2xldCBaPWszKGQpP2Q6R3QoZC5wcm92aWRlKSx1ZT1wRShkKTtjb25zdCBfZT1YdCgpLEJlPTEwNDg1NzUmX2UucHJvdmlkZXJJbmRleGVzLE5lPV9lLmRpcmVjdGl2ZVN0''@;'; put 'put ''YXJ0LEtlPV9lLnByb3ZpZGVySW5kZXhlcz4+MjA7aWYoazMoZCl8fCFkLm11bHRpKXtjb25zdCBwdD1uZXcgd2QodWUseSxLdCksT3Q9cW0oWixnLHk/QmU6QmUrS2UsTmUpOy0xPT09T3Q/KEdmKGU2KF9lLEkpLEMsWiksS20oQyxkLGcubGVuZ3RoKSxnLnB1c2goWiksX2UuZGlyZWN0aXZl''@;'; put 'put ''U3RhcnQrKyxfZS5kaXJlY3RpdmVFbmQrKyx5JiYoX2UucHJvdmlkZXJJbmRleGVzKz0xMDQ4NTc2KSxoLnB1c2gocHQpLEkucHVzaChwdCkpOihoW090XT1wdCxJW090XT1wdCl9ZWxzZXtjb25zdCBwdD1xbShaLGcsQmUrS2UsTmUpLE90PXFtKFosZyxCZSxCZStLZSksJHQ9cHQ+PTAmJmhb''@;'; put 'put ''cHRdLGZuPU90Pj0wJiZoW090XTtpZih5JiYhZm58fCF5JiYhJHQpe0dmKGU2KF9lLEkpLEMsWik7Y29uc3QgTG49ZnVuY3Rpb24gVVAoZCxnLGgsdix5KXtjb25zdCBDPW5ldyB3ZChkLGgsS3QpO3JldHVybiBDLm11bHRpPVtdLEMuaW5kZXg9ZyxDLmNvbXBvbmVudFByb3ZpZGVycz0wLCRt''@;'; put 'put ''KEMseSx2JiYhaCksQ30oeT9mQzpaZCxoLmxlbmd0aCx5LHYsdWUpOyF5JiZmbiYmKGhbT3RdLnByb3ZpZGVyRmFjdG9yeT1MbiksS20oQyxkLGcubGVuZ3RoLDApLGcucHVzaChaKSxfZS5kaXJlY3RpdmVTdGFydCsrLF9lLmRpcmVjdGl2ZUVuZCsrLHkmJihfZS5wcm92aWRlckluZGV4ZXMr''@;'; put 'put ''PTEwNDg1NzYpLGgucHVzaChMbiksSS5wdXNoKExuKX1lbHNlIEttKEMsZCxwdD4tMT9wdDpPdCwkbShoW3k/T3Q6cHRdLHVlLCF5JiZ2KSk7IXkmJnYmJmZuJiZoW090XS5jb21wb25lbnRQcm92aWRlcnMrK319fWZ1bmN0aW9uIEttKGQsZyxoLHYpe2NvbnN0IHk9azMoZyksQz1mdW5jdGlv''@;'; put 'put ''biBDYihkKXtyZXR1cm4hIWQudXNlQ2xhc3N9KGcpO2lmKHl8fEMpe2NvbnN0IHVlPShDP0d0KGcudXNlQ2xhc3MpOmcpLnByb3RvdHlwZS5uZ09uRGVzdHJveTtpZih1ZSl7Y29uc3QgX2U9ZC5kZXN0cm95SG9va3N8fChkLmRlc3Ryb3lIb29rcz1bXSk7aWYoIXkmJmcubXVsdGkpe2NvbnN0''@;'; put 'put ''IEJlPV9lLmluZGV4T2YoaCk7LTE9PT1CZT9fZS5wdXNoKGgsW3YsdWVdKTpfZVtCZSsxXS5wdXNoKHYsdWUpfWVsc2UgX2UucHVzaChoLHVlKX19fWZ1bmN0aW9uICRtKGQsZyxoKXtyZXR1cm4gaCYmZC5jb21wb25lbnRQcm92aWRlcnMrKyxkLm11bHRpLnB1c2goZyktMX1mdW5jdGlvbiBx''@;'; put 'put ''bShkLGcsaCx2KXtmb3IobGV0IHk9aDt5PHY7eSsrKWlmKGdbeV09PT1kKXJldHVybiB5O3JldHVybi0xfWZ1bmN0aW9uIFpkKGQsZyxoLHYpe3JldHVybiBvYyh0aGlzLm11bHRpLFtdKX1mdW5jdGlvbiBmQyhkLGcsaCx2KXtjb25zdCB5PXRoaXMubXVsdGk7bGV0IEM7aWYodGhpcy5wcm92''@;'; put 'put ''aWRlckZhY3Rvcnkpe2NvbnN0IEk9dGhpcy5wcm92aWRlckZhY3RvcnkuY29tcG9uZW50UHJvdmlkZXJzLFo9VDQoaCxoWzFdLHRoaXMucHJvdmlkZXJGYWN0b3J5LmluZGV4LHYpO0M9Wi5zbGljZSgwLEkpLG9jKHksQyk7Zm9yKGxldCB1ZT1JO3VlPFoubGVuZ3RoO3VlKyspQy5wdXNoKFpb''@;'; put 'put ''dWVdKX1lbHNlIEM9W10sb2MoeSxDKTtyZXR1cm4gQ31mdW5jdGlvbiBvYyhkLGcpe2ZvcihsZXQgaD0wO2g8ZC5sZW5ndGg7aCsrKWcucHVzaCgoMCxkW2hdKSgpKTtyZXR1cm4gZ31mdW5jdGlvbiBobyhkLGc9W10pe3JldHVybiBoPT57aC5wcm92aWRlcnNSZXNvbHZlcj0odix5KT0+ZnVu''@;'; put 'put ''Y3Rpb24gaDEoZCxnLGgpe2NvbnN0IHY9ZmUoKTtpZih2LmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgeT1WZihkKTtLYShoLHYuZGF0YSx2LmJsdWVwcmludCx5LCEwKSxLYShnLHYuZGF0YSx2LmJsdWVwcmludCx5LCExKX19KHYseT95KGQpOmQsZyl9fWNsYXNzIEgze31jbGFzcyBDMXt9Y2xh''@;'; put 'put ''c3MgemQgZXh0ZW5kcyBIM3tjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKCksdGhpcy5fcGFyZW50PWgsdGhpcy5fYm9vdHN0cmFwQ29tcG9uZW50cz1bXSx0aGlzLmRlc3Ryb3lDYnM9W10sdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI9bmV3IERfKHRoaXMpO2NvbnN0IHY9Q3MoZyk7dGhp''@;'; put 'put ''cy5fYm9vdHN0cmFwQ29tcG9uZW50cz15Zih2LmJvb3RzdHJhcCksdGhpcy5fcjNJbmplY3Rvcj1uNShnLGgsW3twcm92aWRlOkgzLHVzZVZhbHVlOnRoaXN9LHtwcm92aWRlOlNkLHVzZVZhbHVlOnRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyfV0sbW4oZyksbmV3IFNldChbImVudmly''@;'; put 'put ''b25tZW50Il0pKSx0aGlzLl9yM0luamVjdG9yLnJlc29sdmVJbmplY3RvckluaXRpYWxpemVycygpLHRoaXMuaW5zdGFuY2U9dGhpcy5fcjNJbmplY3Rvci5nZXQoZyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRoaXMuX3IzSW5qZWN0b3J9ZGVzdHJveSgpe2NvbnN0IGc9dGhpcy5fcjNJbmpl''@;'; put 'put ''Y3RvcjshZy5kZXN0cm95ZWQmJmcuZGVzdHJveSgpLHRoaXMuZGVzdHJveUNicy5mb3JFYWNoKGg9PmgoKSksdGhpcy5kZXN0cm95Q2JzPW51bGx9b25EZXN0cm95KGcpe3RoaXMuZGVzdHJveUNicy5wdXNoKGcpfX1jbGFzcyBlNyBleHRlbmRzIEMxe2NvbnN0cnVjdG9yKGcpe3N1cGVyKCks''@;'; put 'put ''dGhpcy5tb2R1bGVUeXBlPWd9Y3JlYXRlKGcpe3JldHVybiBuZXcgemQodGhpcy5tb2R1bGVUeXBlLGcpfX1jbGFzcyBTYyBleHRlbmRzIEgze2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcigpLHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPW5ldyBEXyh0aGlzKSx0aGlzLmluc3RhbmNl''@;'; put 'put ''PW51bGw7Y29uc3QgeT1uZXcga2IoWy4uLmcse3Byb3ZpZGU6SDMsdXNlVmFsdWU6dGhpc30se3Byb3ZpZGU6U2QsdXNlVmFsdWU6dGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJ9XSxofHxNMygpLHYsbmV3IFNldChbImVudmlyb25tZW50Il0pKTt0aGlzLmluamVjdG9yPXkseS5yZXNv''@;'; put 'put ''bHZlSW5qZWN0b3JJbml0aWFsaXplcnMoKX1kZXN0cm95KCl7dGhpcy5pbmplY3Rvci5kZXN0cm95KCl9b25EZXN0cm95KGcpe3RoaXMuaW5qZWN0b3Iub25EZXN0cm95KGcpfX1mdW5jdGlvbiB0NyhkLGcsaD1udWxsKXtyZXR1cm4gbmV3IFNjKGQsZyxoKS5pbmplY3Rvcn1mdW5jdGlvbiBj''@;'; put 'put ''cyhkLGcsaCl7Y29uc3Qgdj1scygpK2QseT1QdCgpO3JldHVybiB5W3ZdPT09TmE/TDMoeSx2LGg/Zy5jYWxsKGgpOmcoKSk6ZnVuY3Rpb24gTm0oZCxnKXtyZXR1cm4gZFtnXX0oeSx2KX1mdW5jdGlvbiBHZChkLGcsaCx2KXtyZXR1cm4gWWUoUHQoKSxscygpLGQsZyxoLHYpfWZ1bmN0aW9u''@;'; put 'put ''IGozKGQsZyxoLHYseSl7cmV0dXJuIE10KFB0KCksbHMoKSxkLGcsaCx2LHkpfWZ1bmN0aW9uIEgoZCxnLGgsdix5LEMpe3JldHVybiB4dChQdCgpLGxzKCksZCxnLGgsdix5LEMpfWZ1bmN0aW9uIGllKGQsZyxoLHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBSdChkLGcsaCx2LHksQyxJLFos''@;'; put 'put ''dWUpe2NvbnN0IF9lPWcraDtyZXR1cm4gZnVuY3Rpb24gWGYoZCxnLGgsdix5LEMpe2NvbnN0IEk9eDYoZCxnLGgsdik7cmV0dXJuIHg2KGQsZysyLHksQyl8fEl9KGQsX2UseSxDLEksWik/TDMoZCxfZSs0LHVlP3YuY2FsbCh1ZSx5LEMsSSxaKTp2KHksQyxJLFopKTpqZShkLF9lKzQpfShQ''@;'; put 'put ''dCgpLGxzKCksZCxnLGgsdix5LEMsSSl9ZnVuY3Rpb24gamUoZCxnKXtjb25zdCBoPWRbZ107cmV0dXJuIGg9PT1OYT92b2lkIDA6aH1mdW5jdGlvbiBZZShkLGcsaCx2LHksQyl7Y29uc3QgST1nK2g7cmV0dXJuIHRjKGQsSSx5KT9MMyhkLEkrMSxDP3YuY2FsbChDLHkpOnYoeSkpOmplKGQs''@;'; put 'put ''SSsxKX1mdW5jdGlvbiBNdChkLGcsaCx2LHksQyxJKXtjb25zdCBaPWcraDtyZXR1cm4geDYoZCxaLHksQyk/TDMoZCxaKzIsST92LmNhbGwoSSx5LEMpOnYoeSxDKSk6amUoZCxaKzIpfWZ1bmN0aW9uIHh0KGQsZyxoLHYseSxDLEksWil7Y29uc3QgdWU9ZytoO3JldHVybiBiQShkLHVlLHks''@;'; put 'put ''QyxJKT9MMyhkLHVlKzMsWj92LmNhbGwoWix5LEMsSSk6dih5LEMsSSkpOmplKGQsdWUrMyl9ZnVuY3Rpb24gbm4oZCxnKXtjb25zdCBoPWZlKCk7bGV0IHY7Y29uc3QgeT1kKzIyO2guZmlyc3RDcmVhdGVQYXNzPyh2PWZ1bmN0aW9uIENuKGQsZyl7aWYoZylmb3IobGV0IGg9Zy5sZW5ndGgt''@;'; put 'put ''MTtoPj0wO2gtLSl7Y29uc3Qgdj1nW2hdO2lmKGQ9PT12Lm5hbWUpcmV0dXJuIHZ9fShnLGgucGlwZVJlZ2lzdHJ5KSxoLmRhdGFbeV09dix2Lm9uRGVzdHJveSYmKGguZGVzdHJveUhvb2tzfHwoaC5kZXN0cm95SG9va3M9W10pKS5wdXNoKHksdi5vbkRlc3Ryb3kpKTp2PWguZGF0YVt5XTtj''@;'; put 'put ''b25zdCBDPXYuZmFjdG9yeXx8KHYuZmFjdG9yeT1qZih2LnR5cGUpKSxJPV8wKEt0KTt0cnl7Y29uc3QgWj1MOCghMSksdWU9QygpO3JldHVybiBMOChaKSxmdW5jdGlvbiBreChkLGcsaCx2KXtoPj1kLmRhdGEubGVuZ3RoJiYoZC5kYXRhW2hdPW51bGwsZC5ibHVlcHJpbnRbaF09bnVsbCks''@;'; put 'put ''Z1toXT12fShoLFB0KCkseSx1ZSksdWV9ZmluYWxseXtfMChJKX19ZnVuY3Rpb24genQoZCxnLGgpe2NvbnN0IHY9ZCsyMix5PVB0KCksQz1RcCh5LHYpO3JldHVybiBNcih5LHYpP1llKHksbHMoKSxnLEMudHJhbnNmb3JtLGgsQyk6Qy50cmFuc2Zvcm0oaCl9ZnVuY3Rpb24gUG4oZCxnLGgs''@;'; put 'put ''dil7Y29uc3QgeT1kKzIyLEM9UHQoKSxJPVFwKEMseSk7cmV0dXJuIE1yKEMseSk/TXQoQyxscygpLGcsSS50cmFuc2Zvcm0saCx2LEkpOkkudHJhbnNmb3JtKGgsdil9ZnVuY3Rpb24gVG4oZCxnLGgsdix5KXtjb25zdCBDPWQrMjIsST1QdCgpLFo9UXAoSSxDKTtyZXR1cm4gTXIoSSxDKT94''@;'; put 'put ''dChJLGxzKCksZyxaLnRyYW5zZm9ybSxoLHYseSxaKTpaLnRyYW5zZm9ybShoLHYseSl9ZnVuY3Rpb24gTXIoZCxnKXtyZXR1cm4gZFsxXS5kYXRhW2ddLnB1cmV9ZnVuY3Rpb24geXIoZCl7cmV0dXJuIGc9PntzZXRUaW1lb3V0KGQsdm9pZCAwLGcpfX1jb25zdCBhcj1jbGFzcyBhaSBleHRl''@;'; put 'put ''bmRzICRle2NvbnN0cnVjdG9yKGc9ITEpe3N1cGVyKCksdGhpcy5fX2lzQXN5bmM9Z31lbWl0KGcpe3N1cGVyLm5leHQoZyl9c3Vic2NyaWJlKGcsaCx2KXt2YXIgeSxDLEk7bGV0IFo9Zyx1ZT1ofHwoKCk9Pm51bGwpLF9lPXY7aWYoZyYmIm9iamVjdCI9PXR5cGVvZiBnKXtjb25zdCBOZT1n''@;'; put 'put ''O1o9bnVsbD09PSh5PU5lLm5leHQpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmJpbmQoTmUpLHVlPW51bGw9PT0oQz1OZS5lcnJvcil8fHZvaWQgMD09PUM/dm9pZCAwOkMuYmluZChOZSksX2U9bnVsbD09PShJPU5lLmNvbXBsZXRlKXx8dm9pZCAwPT09ST92b2lkIDA6SS5iaW5kKE5lKX10aGlz''@;'; put 'put ''Ll9faXNBc3luYyYmKHVlPXlyKHVlKSxaJiYoWj15cihaKSksX2UmJihfZT15cihfZSkpKTtjb25zdCBCZT1zdXBlci5zdWJzY3JpYmUoe25leHQ6WixlcnJvcjp1ZSxjb21wbGV0ZTpfZX0pO3JldHVybiBnIGluc3RhbmNlb2YgVGUmJmcuYWRkKEJlKSxCZX19O2Z1bmN0aW9uIEdyKCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuX3Jlc3VsdHNbRTYoKV0oKX1jbGFzcyB6cntjb25zdHJ1Y3RvcihnPSExKXt0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seT1nLHRoaXMuZGlydHk9ITAsdGhpcy5fcmVzdWx0cz1bXSx0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWQ9ITEsdGhpcy5fY2hhbmdlcz1udWxsLHRoaXMu''@;'; put 'put ''bGVuZ3RoPTAsdGhpcy5maXJzdD12b2lkIDAsdGhpcy5sYXN0PXZvaWQgMDtjb25zdCBoPUU2KCksdj16ci5wcm90b3R5cGU7dltoXXx8KHZbaF09R3IpfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXN8fCh0aGlzLl9jaGFuZ2VzPW5ldyBhcil9Z2V0KGcpe3JldHVybiB0aGlz''@;'; put 'put ''Ll9yZXN1bHRzW2ddfW1hcChnKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5tYXAoZyl9ZmlsdGVyKGcpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbHRlcihnKX1maW5kKGcpe3JldHVybiB0aGlzLl9yZXN1bHRzLmZpbmQoZyl9cmVkdWNlKGcsaCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMucmVkdWNl''@;'; put 'put ''KGcsaCl9Zm9yRWFjaChnKXt0aGlzLl9yZXN1bHRzLmZvckVhY2goZyl9c29tZShnKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zb21lKGcpfXRvQXJyYXkoKXtyZXR1cm4gdGhpcy5fcmVzdWx0cy5zbGljZSgpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuX3Jlc3VsdHMudG9TdHJpbmcoKX1yZXNl''@;'; put 'put ''dChnLGgpe2NvbnN0IHY9dGhpczt2LmRpcnR5PSExO2NvbnN0IHk9Z2YoZyk7KHRoaXMuX2NoYW5nZXNEZXRlY3RlZD0hZnVuY3Rpb24gZ1IoZCxnLGgpe2lmKGQubGVuZ3RoIT09Zy5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB2PTA7djxkLmxlbmd0aDt2Kyspe2xldCB5PWRbdl0sQz1nW3Zd''@;'; put 'put ''O2lmKGgmJih5PWgoeSksQz1oKEMpKSxDIT09eSlyZXR1cm4hMX1yZXR1cm4hMH0odi5fcmVzdWx0cyx5LGgpKSYmKHYuX3Jlc3VsdHM9eSx2Lmxlbmd0aD15Lmxlbmd0aCx2Lmxhc3Q9eVt0aGlzLmxlbmd0aC0xXSx2LmZpcnN0PXlbMF0pfW5vdGlmeU9uQ2hhbmdlcygpe3RoaXMuX2NoYW5n''@;'; put 'put ''ZXMmJih0aGlzLl9jaGFuZ2VzRGV0ZWN0ZWR8fCF0aGlzLl9lbWl0RGlzdGluY3RDaGFuZ2VzT25seSkmJnRoaXMuX2NoYW5nZXMuZW1pdCh0aGlzKX1zZXREaXJ0eSgpe3RoaXMuZGlydHk9ITB9ZGVzdHJveSgpe3RoaXMuY2hhbmdlcy5jb21wbGV0ZSgpLHRoaXMuY2hhbmdlcy51bnN1YnNj''@;'; put 'put ''cmliZSgpfX1sZXQgcXI9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuX19OR19FTEVNRU5UX0lEX189ZGksZH0pKCk7Y29uc3Qgb2k9cXIsY3I9Y2xhc3MgZXh0ZW5kcyBvaXtjb25zdHJ1Y3RvcihnLGgsdil7c3VwZXIoKSx0aGlzLl9kZWNsYXJhdGlvbkxWaWV3PWcsdGhpcy5fZGVjbGFyYXRp''@;'; put 'put ''b25UQ29udGFpbmVyPWgsdGhpcy5lbGVtZW50UmVmPXZ9Y3JlYXRlRW1iZWRkZWRWaWV3KGcsaCl7Y29uc3Qgdj10aGlzLl9kZWNsYXJhdGlvblRDb250YWluZXIudFZpZXdzLHk9azYodGhpcy5fZGVjbGFyYXRpb25MVmlldyx2LGcsMTYsbnVsbCx2LmRlY2xUTm9kZSxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLGh8fG51bGwpO3lbMTddPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbdGhpcy5fZGVjbGFyYXRpb25UQ29udGFpbmVyLmluZGV4XTtjb25zdCBJPXRoaXMuX2RlY2xhcmF0aW9uTFZpZXdbMTldO3JldHVybiBudWxsIT09SSYmKHlbMTldPUkuY3JlYXRlRW1iZWRkZWRWaWV3KHYpKSx6''@;'; put 'put ''NCh2LHksZyksbmV3IE02KHkpfX07ZnVuY3Rpb24gZGkoKXtyZXR1cm4gdjAoWHQoKSxQdCgpKX1mdW5jdGlvbiB2MChkLGcpe3JldHVybiA0JmQudHlwZT9uZXcgY3IoZyxkLHA2KGQsZykpOm51bGx9bGV0IFVpPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLl9fTkdfRUxFTUVOVF9JRF9fPXRv''@;'; put 'put ''LGR9KSgpO2Z1bmN0aW9uIHRvKCl7cmV0dXJuIGhpKFh0KCksUHQoKSl9Y29uc3QgQTA9VWksYmk9Y2xhc3MgZXh0ZW5kcyBBMHtjb25zdHJ1Y3RvcihnLGgsdil7c3VwZXIoKSx0aGlzLl9sQ29udGFpbmVyPWcsdGhpcy5faG9zdFROb2RlPWgsdGhpcy5faG9zdExWaWV3PXZ9Z2V0IGVsZW1l''@;'; put 'put ''bnQoKXtyZXR1cm4gcDYodGhpcy5faG9zdFROb2RlLHRoaXMuX2hvc3RMVmlldyl9Z2V0IGluamVjdG9yKCl7cmV0dXJuIG5ldyBJNCh0aGlzLl9ob3N0VE5vZGUsdGhpcy5faG9zdExWaWV3KX1nZXQgcGFyZW50SW5qZWN0b3IoKXtjb25zdCBnPUFjKHRoaXMuX2hvc3RUTm9kZSx0aGlzLl9o''@;'; put 'put ''b3N0TFZpZXcpO2lmKEdjKGcpKXtjb25zdCBoPWRmKGcsdGhpcy5faG9zdExWaWV3KSx2PWN1KGcpO3JldHVybiBuZXcgSTQoaFsxXS5kYXRhW3YrOF0saCl9cmV0dXJuIG5ldyBJNChudWxsLHRoaXMuX2hvc3RMVmlldyl9Y2xlYXIoKXtmb3IoO3RoaXMubGVuZ3RoPjA7KXRoaXMucmVtb3Zl''@;'; put 'put ''KHRoaXMubGVuZ3RoLTEpfWdldChnKXtjb25zdCBoPVlyKHRoaXMuX2xDb250YWluZXIpO3JldHVybiBudWxsIT09aCYmaFtnXXx8bnVsbH1nZXQgbGVuZ3RoKCl7cmV0dXJuIHRoaXMuX2xDb250YWluZXIubGVuZ3RoLTEwfWNyZWF0ZUVtYmVkZGVkVmlldyhnLGgsdil7bGV0IHksQzsibnVt''@;'; put 'put ''YmVyIj09dHlwZW9mIHY/eT12Om51bGwhPXYmJih5PXYuaW5kZXgsQz12LmluamVjdG9yKTtjb25zdCBJPWcuY3JlYXRlRW1iZWRkZWRWaWV3KGh8fHt9LEMpO3JldHVybiB0aGlzLmluc2VydChJLHkpLEl9Y3JlYXRlQ29tcG9uZW50KGcsaCx2LHksQyl7Y29uc3QgST1nJiYhZnVuY3Rpb24g''@;'; put 'put ''cm0oZCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGR9KGcpO2xldCBaO2lmKEkpWj1oO2Vsc2V7Y29uc3QgTmU9aHx8e307Wj1OZS5pbmRleCx2PU5lLmluamVjdG9yLHk9TmUucHJvamVjdGFibGVOb2RlcyxDPU5lLmVudmlyb25tZW50SW5qZWN0b3J8fE5lLm5nTW9kdWxlUmVmfWNvbnN0''@;'; put 'put ''IHVlPUk/ZzpuZXcgRm0odnMoZykpLF9lPXZ8fHRoaXMucGFyZW50SW5qZWN0b3I7aWYoIUMmJm51bGw9PXVlLm5nTW9kdWxlKXtjb25zdCBLZT0oST9fZTp0aGlzLnBhcmVudEluamVjdG9yKS5nZXQoRTMsbnVsbCk7S2UmJihDPUtlKX1jb25zdCBCZT11ZS5jcmVhdGUoX2UseSx2b2lkIDAs''@;'; put 'put ''Qyk7cmV0dXJuIHRoaXMuaW5zZXJ0KEJlLmhvc3RWaWV3LFopLEJlfWluc2VydChnLGgpe2NvbnN0IHY9Zy5fbFZpZXcseT12WzFdO2lmKGZ1bmN0aW9uIE9NKGQpe3JldHVybiBzZihkWzNdKX0odikpe2NvbnN0IEJlPXRoaXMuaW5kZXhPZihnKTtpZigtMSE9PUJlKXRoaXMuZGV0YWNoKEJl''@;'; put 'put ''KTtlbHNle2NvbnN0IE5lPXZbM10sS2U9bmV3IGJpKE5lLE5lWzZdLE5lWzNdKTtLZS5kZXRhY2goS2UuaW5kZXhPZihnKSl9fWNvbnN0IEM9dGhpcy5fYWRqdXN0SW5kZXgoaCksST10aGlzLl9sQ29udGFpbmVyOyFmdW5jdGlvbiBIYihkLGcsaCx2KXtjb25zdCB5PTEwK3YsQz1oLmxlbmd0''@;'; put 'put ''aDt2PjAmJihoW3ktMV1bNF09ZyksdjxDLTEwPyhnWzRdPWhbeV0sZmIoaCwxMCt2LGcpKTooaC5wdXNoKGcpLGdbNF09bnVsbCksZ1szXT1oO2NvbnN0IEk9Z1sxN107bnVsbCE9PUkmJmghPT1JJiZmdW5jdGlvbiBhRyhkLGcpe2NvbnN0IGg9ZFs5XTtnWzE2XSE9PWdbM11bM11bMTZdJiYo''@;'; put 'put ''ZFsyXT0hMCksbnVsbD09PWg/ZFs5XT1bZ106aC5wdXNoKGcpfShJLGcpO2NvbnN0IFo9Z1sxOV07bnVsbCE9PVomJlouaW5zZXJ0VmlldyhkKSxnWzJdfD02NH0oeSx2LEksQyk7Y29uc3QgWj1VYihDLEkpLHVlPXZbMTFdLF9lPUNtKHVlLElbN10pO3JldHVybiBudWxsIT09X2UmJmZ1bmN0''@;'; put 'put ''aW9uIHdmKGQsZyxoLHYseSxDKXt2WzBdPXksdls2XT1nLGttKGQsdixoLDEseSxDKX0oeSxJWzZdLHVlLHYsX2UsWiksZy5hdHRhY2hUb1ZpZXdDb250YWluZXJSZWYoKSxmYihFaShJKSxDLGcpLGd9bW92ZShnLGgpe3JldHVybiB0aGlzLmluc2VydChnLGgpfWluZGV4T2YoZyl7Y29uc3Qg''@;'; put 'put ''aD1Zcih0aGlzLl9sQ29udGFpbmVyKTtyZXR1cm4gbnVsbCE9PWg/aC5pbmRleE9mKGcpOi0xfXJlbW92ZShnKXtjb25zdCBoPXRoaXMuX2FkanVzdEluZGV4KGcsLTEpLHY9TmIodGhpcy5fbENvbnRhaW5lcixoKTt2JiYoQ2QoRWkodGhpcy5fbENvbnRhaW5lciksaCksQkUodlsxXSx2KSl9''@;'; put 'put ''ZGV0YWNoKGcpe2NvbnN0IGg9dGhpcy5fYWRqdXN0SW5kZXgoZywtMSksdj1OYih0aGlzLl9sQ29udGFpbmVyLGgpO3JldHVybiB2JiZudWxsIT1DZChFaSh0aGlzLl9sQ29udGFpbmVyKSxoKT9uZXcgTTYodik6bnVsbH1fYWRqdXN0SW5kZXgoZyxoPTApe3JldHVybiBudWxsPT1nP3RoaXMu''@;'; put 'put ''bGVuZ3RoK2g6Z319O2Z1bmN0aW9uIFlyKGQpe3JldHVybiBkWzhdfWZ1bmN0aW9uIEVpKGQpe3JldHVybiBkWzhdfHwoZFs4XT1bXSl9ZnVuY3Rpb24gaGkoZCxnKXtsZXQgaDtjb25zdCB2PWdbZC5pbmRleF07aWYoc2YodikpaD12O2Vsc2V7bGV0IHk7aWYoOCZkLnR5cGUpeT1YMih2KTtl''@;'; put 'put ''bHNle2NvbnN0IEM9Z1sxMV07eT1DLmNyZWF0ZUNvbW1lbnQoIiIpO2NvbnN0IEk9dmMoZCxnKTtONChDLENtKEMsSSkseSxmdW5jdGlvbiBXOShkLGcpe3JldHVybiBkLm5leHRTaWJsaW5nKGcpfShDLEkpLCExKX1nW2QuaW5kZXhdPWg9aEEodixnLHksZCksUm0oZyxoKX1yZXR1cm4gbmV3''@;'; put 'put ''IGJpKGgsZCxnKX1jbGFzcyB0MHtjb25zdHJ1Y3RvcihnKXt0aGlzLnF1ZXJ5TGlzdD1nLHRoaXMubWF0Y2hlcz1udWxsfWNsb25lKCl7cmV0dXJuIG5ldyB0MCh0aGlzLnF1ZXJ5TGlzdCl9c2V0RGlydHkoKXt0aGlzLnF1ZXJ5TGlzdC5zZXREaXJ0eSgpfX1jbGFzcyBpb3tjb25zdHJ1Y3Rv''@;'; put 'put ''cihnPVtdKXt0aGlzLnF1ZXJpZXM9Z31jcmVhdGVFbWJlZGRlZFZpZXcoZyl7Y29uc3QgaD1nLnF1ZXJpZXM7aWYobnVsbCE9PWgpe2NvbnN0IHY9bnVsbCE9PWcuY29udGVudFF1ZXJpZXM/Zy5jb250ZW50UXVlcmllc1swXTpoLmxlbmd0aCx5PVtdO2ZvcihsZXQgQz0wO0M8djtDKyspe2Nv''@;'; put 'put ''bnN0IEk9aC5nZXRCeUluZGV4KEMpO3kucHVzaCh0aGlzLnF1ZXJpZXNbSS5pbmRleEluRGVjbGFyYXRpb25WaWV3XS5jbG9uZSgpKX1yZXR1cm4gbmV3IGlvKHkpfXJldHVybiBudWxsfWluc2VydFZpZXcoZyl7dGhpcy5kaXJ0eVF1ZXJpZXNXaXRoTWF0Y2hlcyhnKX1kZXRhY2hWaWV3KGcp''@;'; put 'put ''e3RoaXMuZGlydHlRdWVyaWVzV2l0aE1hdGNoZXMoZyl9ZGlydHlRdWVyaWVzV2l0aE1hdGNoZXMoZyl7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXJpZXMubGVuZ3RoO2grKyludWxsIT09SXIoZyxoKS5tYXRjaGVzJiZ0aGlzLnF1ZXJpZXNbaF0uc2V0RGlydHkoKX19Y2xhc3Mgb2F7Y29uc3Ry''@;'; put 'put ''dWN0b3IoZyxoLHY9bnVsbCl7dGhpcy5wcmVkaWNhdGU9Zyx0aGlzLmZsYWdzPWgsdGhpcy5yZWFkPXZ9fWNsYXNzICQwe2NvbnN0cnVjdG9yKGc9W10pe3RoaXMucXVlcmllcz1nfWVsZW1lbnRTdGFydChnLGgpe2ZvcihsZXQgdj0wO3Y8dGhpcy5xdWVyaWVzLmxlbmd0aDt2KyspdGhpcy5x''@;'; put 'put ''dWVyaWVzW3ZdLmVsZW1lbnRTdGFydChnLGgpfWVsZW1lbnRFbmQoZyl7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXJpZXMubGVuZ3RoO2grKyl0aGlzLnF1ZXJpZXNbaF0uZWxlbWVudEVuZChnKX1lbWJlZGRlZFRWaWV3KGcpe2xldCBoPW51bGw7Zm9yKGxldCB2PTA7djx0aGlzLmxlbmd0aDt2''@;'; put 'put ''Kyspe2NvbnN0IHk9bnVsbCE9PWg/aC5sZW5ndGg6MCxDPXRoaXMuZ2V0QnlJbmRleCh2KS5lbWJlZGRlZFRWaWV3KGcseSk7QyYmKEMuaW5kZXhJbkRlY2xhcmF0aW9uVmlldz12LG51bGwhPT1oP2gucHVzaChDKTpoPVtDXSl9cmV0dXJuIG51bGwhPT1oP25ldyAkMChoKTpudWxsfXRlbXBs''@;'; put 'put ''YXRlKGcsaCl7Zm9yKGxldCB2PTA7djx0aGlzLnF1ZXJpZXMubGVuZ3RoO3YrKyl0aGlzLnF1ZXJpZXNbdl0udGVtcGxhdGUoZyxoKX1nZXRCeUluZGV4KGcpe3JldHVybiB0aGlzLnF1ZXJpZXNbZ119Z2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLnF1ZXJpZXMubGVuZ3RofXRyYWNrKGcpe3Ro''@;'; put 'put ''aXMucXVlcmllcy5wdXNoKGcpfX1jbGFzcyBWYXtjb25zdHJ1Y3RvcihnLGg9LTEpe3RoaXMubWV0YWRhdGE9Zyx0aGlzLm1hdGNoZXM9bnVsbCx0aGlzLmluZGV4SW5EZWNsYXJhdGlvblZpZXc9LTEsdGhpcy5jcm9zc2VzTmdUZW1wbGF0ZT0hMSx0aGlzLl9hcHBsaWVzVG9OZXh0Tm9kZT0h''@;'; put 'put ''MCx0aGlzLl9kZWNsYXJhdGlvbk5vZGVJbmRleD1ofWVsZW1lbnRTdGFydChnLGgpe3RoaXMuaXNBcHBseWluZ1RvTm9kZShoKSYmdGhpcy5tYXRjaFROb2RlKGcsaCl9ZWxlbWVudEVuZChnKXt0aGlzLl9kZWNsYXJhdGlvbk5vZGVJbmRleD09PWcuaW5kZXgmJih0aGlzLl9hcHBsaWVzVG9O''@;'; put 'put ''ZXh0Tm9kZT0hMSl9dGVtcGxhdGUoZyxoKXt0aGlzLmVsZW1lbnRTdGFydChnLGgpfWVtYmVkZGVkVFZpZXcoZyxoKXtyZXR1cm4gdGhpcy5pc0FwcGx5aW5nVG9Ob2RlKGcpPyh0aGlzLmNyb3NzZXNOZ1RlbXBsYXRlPSEwLHRoaXMuYWRkTWF0Y2goLWcuaW5kZXgsaCksbmV3IFZhKHRoaXMu''@;'; put 'put ''bWV0YWRhdGEpKTpudWxsfWlzQXBwbHlpbmdUb05vZGUoZyl7aWYodGhpcy5fYXBwbGllc1RvTmV4dE5vZGUmJjEhPSgxJnRoaXMubWV0YWRhdGEuZmxhZ3MpKXtjb25zdCBoPXRoaXMuX2RlY2xhcmF0aW9uTm9kZUluZGV4O2xldCB2PWcucGFyZW50O2Zvcig7bnVsbCE9PXYmJjgmdi50eXBl''@;'; put 'put ''JiZ2LmluZGV4IT09aDspdj12LnBhcmVudDtyZXR1cm4gaD09PShudWxsIT09dj92LmluZGV4Oi0xKX1yZXR1cm4gdGhpcy5fYXBwbGllc1RvTmV4dE5vZGV9bWF0Y2hUTm9kZShnLGgpe2NvbnN0IHY9dGhpcy5tZXRhZGF0YS5wcmVkaWNhdGU7aWYoQXJyYXkuaXNBcnJheSh2KSlmb3IobGV0''@;'; put 'put ''IHk9MDt5PHYubGVuZ3RoO3krKyl7Y29uc3QgQz12W3ldO3RoaXMubWF0Y2hUTm9kZVdpdGhSZWFkT3B0aW9uKGcsaCxqbyhoLEMpKSx0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihnLGgsSnUoaCxnLEMsITEsITEpKX1lbHNlIHY9PT1xcj80JmgudHlwZSYmdGhpcy5tYXRjaFROb2Rl''@;'; put 'put ''V2l0aFJlYWRPcHRpb24oZyxoLC0xKTp0aGlzLm1hdGNoVE5vZGVXaXRoUmVhZE9wdGlvbihnLGgsSnUoaCxnLHYsITEsITEpKX1tYXRjaFROb2RlV2l0aFJlYWRPcHRpb24oZyxoLHYpe2lmKG51bGwhPT12KXtjb25zdCB5PXRoaXMubWV0YWRhdGEucmVhZDtpZihudWxsIT09eSlpZih5PT09''@;'; put 'put ''Ym98fHk9PT1VaXx8eT09PXFyJiY0JmgudHlwZSl0aGlzLmFkZE1hdGNoKGguaW5kZXgsLTIpO2Vsc2V7Y29uc3QgQz1KdShoLGcseSwhMSwhMSk7bnVsbCE9PUMmJnRoaXMuYWRkTWF0Y2goaC5pbmRleCxDKX1lbHNlIHRoaXMuYWRkTWF0Y2goaC5pbmRleCx2KX19YWRkTWF0Y2goZyxoKXtu''@;'; put 'put ''dWxsPT09dGhpcy5tYXRjaGVzP3RoaXMubWF0Y2hlcz1bZyxoXTp0aGlzLm1hdGNoZXMucHVzaChnLGgpfX1mdW5jdGlvbiBqbyhkLGcpe2NvbnN0IGg9ZC5sb2NhbE5hbWVzO2lmKG51bGwhPT1oKWZvcihsZXQgdj0wO3Y8aC5sZW5ndGg7dis9MilpZihoW3ZdPT09ZylyZXR1cm4gaFt2KzFd''@;'; put 'put ''O3JldHVybiBudWxsfWZ1bmN0aW9uIGFvKGQsZyxoLHYpe3JldHVybi0xPT09aD9mdW5jdGlvbiB3YShkLGcpe3JldHVybiAxMSZkLnR5cGU/cDYoZCxnKTo0JmQudHlwZT92MChkLGcpOm51bGx9KGcsZCk6LTI9PT1oP2Z1bmN0aW9uIHgwKGQsZyxoKXtyZXR1cm4gaD09PWJvP3A2KGcsZCk6''@;'; put 'put ''aD09PXFyP3YwKGcsZCk6aD09PVVpP2hpKGcsZCk6dm9pZCAwfShkLGcsdik6VDQoZCxkWzFdLGgsZyl9ZnVuY3Rpb24gaDAoZCxnLGgsdil7Y29uc3QgeT1nWzE5XS5xdWVyaWVzW3ZdO2lmKG51bGw9PT15Lm1hdGNoZXMpe2NvbnN0IEM9ZC5kYXRhLEk9aC5tYXRjaGVzLFo9W107Zm9yKGxl''@;'; put 'put ''dCB1ZT0wO3VlPEkubGVuZ3RoO3VlKz0yKXtjb25zdCBfZT1JW3VlXTtaLnB1c2goX2U8MD9udWxsOmFvKGcsQ1tfZV0sSVt1ZSsxXSxoLm1ldGFkYXRhLnJlYWQpKX15Lm1hdGNoZXM9Wn1yZXR1cm4geS5tYXRjaGVzfWZ1bmN0aW9uIGpyKGQsZyxoLHYpe2NvbnN0IHk9ZC5xdWVyaWVzLmdl''@;'; put 'put ''dEJ5SW5kZXgoaCksQz15Lm1hdGNoZXM7aWYobnVsbCE9PUMpe2NvbnN0IEk9aDAoZCxnLHksaCk7Zm9yKGxldCBaPTA7WjxDLmxlbmd0aDtaKz0yKXtjb25zdCB1ZT1DW1pdO2lmKHVlPjApdi5wdXNoKElbWi8yXSk7ZWxzZXtjb25zdCBfZT1DW1orMV0sQmU9Z1stdWVdO2ZvcihsZXQgTmU9''@;'; put 'put ''MTA7TmU8QmUubGVuZ3RoO05lKyspe2NvbnN0IEtlPUJlW05lXTtLZVsxN109PT1LZVszXSYmanIoS2VbMV0sS2UsX2Usdil9aWYobnVsbCE9PUJlWzldKXtjb25zdCBOZT1CZVs5XTtmb3IobGV0IEtlPTA7S2U8TmUubGVuZ3RoO0tlKyspe2NvbnN0IHB0PU5lW0tlXTtqcihwdFsxXSxwdCxf''@;'; put 'put ''ZSx2KX19fX19cmV0dXJuIHZ9ZnVuY3Rpb24gSGkoZCl7Y29uc3QgZz1QdCgpLGg9ZmUoKSx2PW9iKCk7RG4odisxKTtjb25zdCB5PUlyKGgsdik7aWYoZC5kaXJ0eSYmS2coZyk9PT0oMj09KDImeS5tZXRhZGF0YS5mbGFncykpKXtpZihudWxsPT09eS5tYXRjaGVzKWQucmVzZXQoW10pO2Vs''@;'; put 'put ''c2V7Y29uc3QgQz15LmNyb3NzZXNOZ1RlbXBsYXRlP2pyKGgsZyx2LFtdKTpoMChoLGcseSx2KTtkLnJlc2V0KEMsUjkpLGQubm90aWZ5T25DaGFuZ2VzKCl9cmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gdm8oZCxnLGgpe2NvbnN0IHY9ZmUoKTt2LmZpcnN0Q3JlYXRlUGFzcyYmKHAyKHYs''@;'; put 'put ''bmV3IG9hKGQsZyxoKSwtMSksMj09KDImZykmJih2LnN0YXRpY1ZpZXdRdWVyaWVzPSEwKSksTWModixQdCgpLGcpfWZ1bmN0aW9uIHhvKGQsZyxoLHYpe2NvbnN0IHk9ZmUoKTtpZih5LmZpcnN0Q3JlYXRlUGFzcyl7Y29uc3QgQz1YdCgpO3AyKHksbmV3IG9hKGcsaCx2KSxDLmluZGV4KSxm''@;'; put 'put ''dW5jdGlvbiBycihkLGcpe2NvbnN0IGg9ZC5jb250ZW50UXVlcmllc3x8KGQuY29udGVudFF1ZXJpZXM9W10pO2chPT0oaC5sZW5ndGg/aFtoLmxlbmd0aC0xXTotMSkmJmgucHVzaChkLnF1ZXJpZXMubGVuZ3RoLTEsZyl9KHksZCksMj09KDImaCkmJih5LnN0YXRpY0NvbnRlbnRRdWVyaWVz''@;'; put 'put ''PSEwKX1NYyh5LFB0KCksaCl9ZnVuY3Rpb24gJGkoKXtyZXR1cm4gZnVuY3Rpb24gbDIoZCxnKXtyZXR1cm4gZFsxOV0ucXVlcmllc1tnXS5xdWVyeUxpc3R9KFB0KCksb2IoKSl9ZnVuY3Rpb24gTWMoZCxnLGgpe2NvbnN0IHY9bmV3IHpyKDQ9PSg0JmgpKTt2XyhkLGcsdix2LmRlc3Ryb3kp''@;'; put 'put ''LG51bGw9PT1nWzE5XSYmKGdbMTldPW5ldyBpbyksZ1sxOV0ucXVlcmllcy5wdXNoKG5ldyB0MCh2KSl9ZnVuY3Rpb24gcDIoZCxnLGgpe251bGw9PT1kLnF1ZXJpZXMmJihkLnF1ZXJpZXM9bmV3ICQwKSxkLnF1ZXJpZXMudHJhY2sobmV3IFZhKGcsaCkpfWZ1bmN0aW9uIElyKGQsZyl7cmV0''@;'; put 'put ''dXJuIGQucXVlcmllcy5nZXRCeUluZGV4KGcpfWZ1bmN0aW9uIFpyKGQsZyl7cmV0dXJuIHYwKGQsZyl9ZnVuY3Rpb24gQUMoLi4uZCl7fWNvbnN0IHlDPW5ldyB6ZSgiQXBwbGljYXRpb24gSW5pdGlhbGl6ZXIiKTtsZXQgd1Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmFw''@;'; put 'put ''cEluaXRzPWgsdGhpcy5yZXNvbHZlPUFDLHRoaXMucmVqZWN0PUFDLHRoaXMuaW5pdGlhbGl6ZWQ9ITEsdGhpcy5kb25lPSExLHRoaXMuZG9uZVByb21pc2U9bmV3IFByb21pc2UoKHYseSk9Pnt0aGlzLnJlc29sdmU9dix0aGlzLnJlamVjdD15fSl9cnVuSW5pdGlhbGl6ZXJzKCl7aWYodGhp''@;'; put 'put ''cy5pbml0aWFsaXplZClyZXR1cm47Y29uc3QgaD1bXSx2PSgpPT57dGhpcy5kb25lPSEwLHRoaXMucmVzb2x2ZSgpfTtpZih0aGlzLmFwcEluaXRzKWZvcihsZXQgeT0wO3k8dGhpcy5hcHBJbml0cy5sZW5ndGg7eSsrKXtjb25zdCBDPXRoaXMuYXBwSW5pdHNbeV0oKTtpZihWbShDKSloLnB1''@;'; put 'put ''c2goQyk7ZWxzZSBpZihIXyhDKSl7Y29uc3QgST1uZXcgUHJvbWlzZSgoWix1ZSk9PntDLnN1YnNjcmliZSh7Y29tcGxldGU6WixlcnJvcjp1ZX0pfSk7aC5wdXNoKEkpfX1Qcm9taXNlLmFsbChoKS50aGVuKCgpPT57digpfSkuY2F0Y2goeT0+e3RoaXMucmVqZWN0KHkpfSksMD09PWgubGVu''@;'; put 'put ''Z3RoJiZ2KCksdGhpcy5pbml0aWFsaXplZD0hMH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koeUMsOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0''@;'; put 'put ''IHdDPW5ldyB6ZSgiQXBwSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OmZ1bmN0aW9uIGJUKCl7cmV0dXJuYCR7X1QoKX0ke19UKCl9JHtfVCgpfWB9fSk7ZnVuY3Rpb24gX1QoKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSg5NytNYXRoLmZsb29yKDI1Kk1hdGgucmFuZG9tKCkp''@;'; put 'put ''KX1jb25zdCBKUD1uZXcgemUoIlBsYXRmb3JtIEluaXRpYWxpemVyIiksTDI9bmV3IHplKCJQbGF0Zm9ybSBJRCIse3Byb3ZpZGVkSW46InBsYXRmb3JtIixmYWN0b3J5OigpPT4idW5rbm93biJ9KSxGNj1uZXcgemUoImFwcEJvb3RzdHJhcExpc3RlbmVyIiksSUc9bmV3IHplKCJBbmltYXRp''@;'; put 'put ''b25Nb2R1bGVUeXBlIik7bGV0IHJyZT0oKCk9PntjbGFzcyBke2xvZyhoKXtjb25zb2xlLmxvZyhoKX13YXJuKGgpe2NvbnNvbGUud2FybihoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5''@;'; put 'put ''OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2NvbnN0IFlkPW5ldyB6ZSgiTG9jYWxlSWQiLHtwcm92aWRlZEluOiJyb290IixmYWN0b3J5OigpPT5oMihZZCxqMC5PcHRpb25hbHxqMC5Ta2lwU2VsZil8fGZ1bmN0aW9uIGlyZSgpe3JldHVybiJ1bmRlZmluZWQi''@;'; put 'put ''IT10eXBlb2YgJGxvY2FsaXplJiYkbG9jYWxpemUubG9jYWxlfHxTNX0oKX0pO2NsYXNzIG9yZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMubmdNb2R1bGVGYWN0b3J5PWcsdGhpcy5jb21wb25lbnRGYWN0b3JpZXM9aH19bGV0IENUPSgoKT0+e2NsYXNzIGR7Y29tcGlsZU1vZHVsZVN5bmMoaCl7''@;'; put 'put ''cmV0dXJuIG5ldyBlNyhoKX1jb21waWxlTW9kdWxlQXN5bmMoaCl7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGgpKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoaCl7Y29uc3Qgdj10aGlzLmNvbXBpbGVNb2R1bGVTeW5jKGgpLEM9eWYo''@;'; put 'put ''Q3MoaCkuZGVjbGFyYXRpb25zKS5yZWR1Y2UoKEksWik9Pntjb25zdCB1ZT12cyhaKTtyZXR1cm4gdWUmJkkucHVzaChuZXcgRm0odWUpKSxJfSxbXSk7cmV0dXJuIG5ldyBvcmUodixDKX1jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c0FzeW5jKGgpe3JldHVybiBQcm9taXNlLnJlc29s''@;'; put 'put ''dmUodGhpcy5jb21waWxlTW9kdWxlQW5kQWxsQ29tcG9uZW50c1N5bmMoaCkpfWNsZWFyQ2FjaGUoKXt9Y2xlYXJDYWNoZUZvcihoKXt9Z2V0TW9kdWxlSWQoaCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; put 'put ''bjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjb25zdCAkUD0oKCk9PlByb21pc2UucmVzb2x2ZSgwKSkoKTtmdW5jdGlvbiBrVChkKXsidW5kZWZpbmVkIj09dHlwZW9mIFpvbmU/JFAudGhlbigoKT0+e2QmJmQuYXBwbHkobnVsbCxudWxsKX0pOlpv''@;'; put 'put ''bmUuY3VycmVudC5zY2hlZHVsZU1pY3JvVGFzaygic2NoZWR1bGVNaWNyb3Rhc2siLGQpfWNsYXNzIF9se2NvbnN0cnVjdG9yKHtlbmFibGVMb25nU3RhY2tUcmFjZTpnPSExLHNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb246aD0hMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURl''@;'; put 'put ''dGVjdGlvbjp2PSExfSl7aWYodGhpcy5oYXNQZW5kaW5nTWFjcm90YXNrcz0hMSx0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaXNTdGFibGU9ITAsdGhpcy5vblVuc3RhYmxlPW5ldyBhcighMSksdGhpcy5vbk1pY3JvdGFza0VtcHR5PW5ldyBhcighMSksdGhpcy5vblN0YWJs''@;'; put 'put ''ZT1uZXcgYXIoITEpLHRoaXMub25FcnJvcj1uZXcgYXIoITEpLCJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZSl0aHJvdyBuZXcgZW4oOTA4LCExKTtab25lLmFzc2VydFpvbmVQYXRjaGVkKCk7Y29uc3QgeT10aGlzO2lmKHkuX25lc3Rpbmc9MCx5Ll9vdXRlcj15Ll9pbm5lcj1ab25lLmN1cnJl''@;'; put 'put ''bnQsWm9uZS5Bc3luY1N0YWNrVGFnZ2luZ1pvbmVTcGVjKXtjb25zdCBDPVpvbmUuQXN5bmNTdGFja1RhZ2dpbmdab25lU3BlYzt5Ll9pbm5lcj15Ll9pbm5lci5mb3JrKG5ldyBDKCJBbmd1bGFyIikpfVpvbmUuVGFza1RyYWNraW5nWm9uZVNwZWMmJih5Ll9pbm5lcj15Ll9pbm5lci5mb3Jr''@;'; put 'put ''KG5ldyBab25lLlRhc2tUcmFja2luZ1pvbmVTcGVjKSksZyYmWm9uZS5sb25nU3RhY2tUcmFjZVpvbmVTcGVjJiYoeS5faW5uZXI9eS5faW5uZXIuZm9yayhab25lLmxvbmdTdGFja1RyYWNlWm9uZVNwZWMpKSx5LnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb249IXYmJmgseS5z''@;'; put 'put ''aG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbj12LHkubGFzdFJlcXVlc3RBbmltYXRpb25GcmFtZUlkPS0xLHkubmF0aXZlUmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uIFJHKCl7bGV0IGQ9UGwucmVxdWVzdEFuaW1hdGlvbkZyYW1lLGc9UGwuY2FuY2VsQW5pbWF0aW9uRnJh''@;'; put 'put ''bWU7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBab25lJiZkJiZnKXtjb25zdCBoPWRbWm9uZS5fX3N5bWJvbF9fKCJPcmlnaW5hbERlbGVnYXRlIildO2gmJihkPWgpO2NvbnN0IHY9Z1tab25lLl9fc3ltYm9sX18oIk9yaWdpbmFsRGVsZWdhdGUiKV07diYmKGc9dil9cmV0dXJue25hdGl2ZVJl''@;'; put 'put ''cXVlc3RBbmltYXRpb25GcmFtZTpkLG5hdGl2ZUNhbmNlbEFuaW1hdGlvbkZyYW1lOmd9fSgpLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZSxmdW5jdGlvbiBQRyhkKXtjb25zdCBnPSgpPT57IWZ1bmN0aW9uIEJHKGQpe2QuaXNDaGVja1N0YWJsZVJ1bm5pbmd8fC0xIT09ZC5sYXN0UmVx''@;'; put 'put ''dWVzdEFuaW1hdGlvbkZyYW1lSWR8fChkLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD1kLm5hdGl2ZVJlcXVlc3RBbmltYXRpb25GcmFtZS5jYWxsKFBsLCgpPT57ZC5mYWtlVG9wRXZlbnRUYXNrfHwoZC5mYWtlVG9wRXZlbnRUYXNrPVpvbmUucm9vdC5zY2hlZHVsZUV2ZW50VGFzaygi''@;'; put 'put ''ZmFrZVRvcEV2ZW50VGFzayIsKCk9PntkLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZD0tMSxlRihkKSxkLmlzQ2hlY2tTdGFibGVSdW5uaW5nPSEwLHFQKGQpLGQuaXNDaGVja1N0YWJsZVJ1bm5pbmc9ITF9LHZvaWQgMCwoKT0+e30sKCk9Pnt9KSksZC5mYWtlVG9wRXZlbnRUYXNrLmlu''@;'; put 'put ''dm9rZSgpfSksZUYoZCkpfShkKX07ZC5faW5uZXI9ZC5faW5uZXIuZm9yayh7bmFtZToiYW5ndWxhciIscHJvcGVydGllczp7aXNBbmd1bGFyWm9uZTohMH0sb25JbnZva2VUYXNrOihoLHYseSxDLEksWik9Pnt0cnl7cmV0dXJuIFNUKGQpLGguaW52b2tlVGFzayh5LEMsSSxaKX1maW5hbGx5''@;'; put 'put ''eyhkLnNob3VsZENvYWxlc2NlRXZlbnRDaGFuZ2VEZXRlY3Rpb24mJiJldmVudFRhc2siPT09Qy50eXBlfHxkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmZygpLF9DKGQpfX0sb25JbnZva2U6KGgsdix5LEMsSSxaLHVlKT0+e3RyeXtyZXR1cm4gU1QoZCksaC5pbnZva2Uo''@;'; put 'put ''eSxDLEksWix1ZSl9ZmluYWxseXtkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uJiZnKCksX0MoZCl9fSxvbkhhc1Rhc2s6KGgsdix5LEMpPT57aC5oYXNUYXNrKHksQyksdj09PXkmJigibWljcm9UYXNrIj09Qy5jaGFuZ2U/KGQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzPUMubWlj''@;'; put 'put ''cm9UYXNrLGVGKGQpLHFQKGQpKToibWFjcm9UYXNrIj09Qy5jaGFuZ2UmJihkLmhhc1BlbmRpbmdNYWNyb3Rhc2tzPUMubWFjcm9UYXNrKSl9LG9uSGFuZGxlRXJyb3I6KGgsdix5LEMpPT4oaC5oYW5kbGVFcnJvcih5LEMpLGQucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PmQub25FcnJvci5lbWl0''@;'; put 'put ''KEMpKSwhMSl9KX0oeSl9c3RhdGljIGlzSW5Bbmd1bGFyWm9uZSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgWm9uZSYmITA9PT1ab25lLmN1cnJlbnQuZ2V0KCJpc0FuZ3VsYXJab25lIil9c3RhdGljIGFzc2VydEluQW5ndWxhclpvbmUoKXtpZighX2wuaXNJbkFuZ3VsYXJab25lKCkp''@;'; put 'put ''dGhyb3cgbmV3IGVuKDkwOSwhMSl9c3RhdGljIGFzc2VydE5vdEluQW5ndWxhclpvbmUoKXtpZihfbC5pc0luQW5ndWxhclpvbmUoKSl0aHJvdyBuZXcgZW4oOTA5LCExKX1ydW4oZyxoLHYpe3JldHVybiB0aGlzLl9pbm5lci5ydW4oZyxoLHYpfXJ1blRhc2soZyxoLHYseSl7Y29uc3QgQz10''@;'; put 'put ''aGlzLl9pbm5lcixJPUMuc2NoZWR1bGVFdmVudFRhc2soIk5nWm9uZUV2ZW50OiAiK3ksZyxzcmUsQUMsQUMpO3RyeXtyZXR1cm4gQy5ydW5UYXNrKEksaCx2KX1maW5hbGx5e0MuY2FuY2VsVGFzayhJKX19cnVuR3VhcmRlZChnLGgsdil7cmV0dXJuIHRoaXMuX2lubmVyLnJ1bkd1YXJkZWQo''@;'; put 'put ''ZyxoLHYpfXJ1bk91dHNpZGVBbmd1bGFyKGcpe3JldHVybiB0aGlzLl9vdXRlci5ydW4oZyl9fWNvbnN0IHNyZT17fTtmdW5jdGlvbiBxUChkKXtpZigwPT1kLl9uZXN0aW5nJiYhZC5oYXNQZW5kaW5nTWljcm90YXNrcyYmIWQuaXNTdGFibGUpdHJ5e2QuX25lc3RpbmcrKyxkLm9uTWljcm90''@;'; put 'put ''YXNrRW1wdHkuZW1pdChudWxsKX1maW5hbGx5e2lmKGQuX25lc3RpbmctLSwhZC5oYXNQZW5kaW5nTWljcm90YXNrcyl0cnl7ZC5ydW5PdXRzaWRlQW5ndWxhcigoKT0+ZC5vblN0YWJsZS5lbWl0KG51bGwpKX1maW5hbGx5e2QuaXNTdGFibGU9ITB9fX1mdW5jdGlvbiBlRihkKXtkLmhhc1Bl''@;'; put 'put ''bmRpbmdNaWNyb3Rhc2tzPSEhKGQuX2hhc1BlbmRpbmdNaWNyb3Rhc2tzfHwoZC5zaG91bGRDb2FsZXNjZUV2ZW50Q2hhbmdlRGV0ZWN0aW9ufHxkLnNob3VsZENvYWxlc2NlUnVuQ2hhbmdlRGV0ZWN0aW9uKSYmLTEhPT1kLmxhc3RSZXF1ZXN0QW5pbWF0aW9uRnJhbWVJZCl9ZnVuY3Rpb24g''@;'; put 'put ''U1QoZCl7ZC5fbmVzdGluZysrLGQuaXNTdGFibGUmJihkLmlzU3RhYmxlPSExLGQub25VbnN0YWJsZS5lbWl0KG51bGwpKX1mdW5jdGlvbiBfQyhkKXtkLl9uZXN0aW5nLS0scVAoZCl9Y2xhc3MgRkd7Y29uc3RydWN0b3IoKXt0aGlzLmhhc1BlbmRpbmdNaWNyb3Rhc2tzPSExLHRoaXMuaGFz''@;'; put 'put ''UGVuZGluZ01hY3JvdGFza3M9ITEsdGhpcy5pc1N0YWJsZT0hMCx0aGlzLm9uVW5zdGFibGU9bmV3IGFyLHRoaXMub25NaWNyb3Rhc2tFbXB0eT1uZXcgYXIsdGhpcy5vblN0YWJsZT1uZXcgYXIsdGhpcy5vbkVycm9yPW5ldyBhcn1ydW4oZyxoLHYpe3JldHVybiBnLmFwcGx5KGgsdil9cnVu''@;'; put 'put ''R3VhcmRlZChnLGgsdil7cmV0dXJuIGcuYXBwbHkoaCx2KX1ydW5PdXRzaWRlQW5ndWxhcihnKXtyZXR1cm4gZygpfXJ1blRhc2soZyxoLHYseSl7cmV0dXJuIGcuYXBwbHkoaCx2KX19Y29uc3QgTVQ9bmV3IHplKCIiKSx6aD1uZXcgemUoIiIpO2xldCBDQyxFVD0oKCk9PntjbGFzcyBke2Nv''@;'; put 'put ''bnN0cnVjdG9yKGgsdix5KXt0aGlzLl9uZ1pvbmU9aCx0aGlzLnJlZ2lzdHJ5PXYsdGhpcy5fcGVuZGluZ0NvdW50PTAsdGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX2RpZFdvcms9ITEsdGhpcy5fY2FsbGJhY2tzPVtdLHRoaXMudGFza1RyYWNraW5nWm9uZT1udWxsLENDfHwoZnVuY3Rp''@;'; put 'put ''b24gdXJlKGQpe0NDPWR9KHkpLHkuYWRkVG9XaW5kb3codikpLHRoaXMuX3dhdGNoQW5ndWxhckV2ZW50cygpLGgucnVuKCgpPT57dGhpcy50YXNrVHJhY2tpbmdab25lPSJ1bmRlZmluZWQiPT10eXBlb2YgWm9uZT9udWxsOlpvbmUuY3VycmVudC5nZXQoIlRhc2tUcmFja2luZ1pvbmUiKX0p''@;'; put 'put ''fV93YXRjaEFuZ3VsYXJFdmVudHMoKXt0aGlzLl9uZ1pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX2lzWm9uZVN0YWJsZT0hMX19KSx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLl9uZ1pvbmUub25TdGFi''@;'; put 'put ''bGUuc3Vic2NyaWJlKHtuZXh0OigpPT57X2wuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLGtUKCgpPT57dGhpcy5faXNab25lU3RhYmxlPSEwLHRoaXMuX3J1bkNhbGxiYWNrc0lmUmVhZHkoKX0pfX0pfSl9aW5jcmVhc2VQZW5kaW5nUmVxdWVzdENvdW50KCl7cmV0dXJuIHRoaXMuX3BlbmRp''@;'; put 'put ''bmdDb3VudCs9MSx0aGlzLl9kaWRXb3JrPSEwLHRoaXMuX3BlbmRpbmdDb3VudH1kZWNyZWFzZVBlbmRpbmdSZXF1ZXN0Q291bnQoKXtpZih0aGlzLl9wZW5kaW5nQ291bnQtPTEsdGhpcy5fcGVuZGluZ0NvdW50PDApdGhyb3cgbmV3IEVycm9yKCJwZW5kaW5nIGFzeW5jIHJlcXVlc3RzIGJl''@;'; put 'put ''bG93IHplcm8iKTtyZXR1cm4gdGhpcy5fcnVuQ2FsbGJhY2tzSWZSZWFkeSgpLHRoaXMuX3BlbmRpbmdDb3VudH1pc1N0YWJsZSgpe3JldHVybiB0aGlzLl9pc1pvbmVTdGFibGUmJjA9PT10aGlzLl9wZW5kaW5nQ291bnQmJiF0aGlzLl9uZ1pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3N9X3J1''@;'; put 'put ''bkNhbGxiYWNrc0lmUmVhZHkoKXtpZih0aGlzLmlzU3RhYmxlKCkpa1QoKCk9Pntmb3IoOzAhPT10aGlzLl9jYWxsYmFja3MubGVuZ3RoOyl7bGV0IGg9dGhpcy5fY2FsbGJhY2tzLnBvcCgpO2NsZWFyVGltZW91dChoLnRpbWVvdXRJZCksaC5kb25lQ2IodGhpcy5fZGlkV29yayl9dGhpcy5f''@;'; put 'put ''ZGlkV29yaz0hMX0pO2Vsc2V7bGV0IGg9dGhpcy5nZXRQZW5kaW5nVGFza3MoKTt0aGlzLl9jYWxsYmFja3M9dGhpcy5fY2FsbGJhY2tzLmZpbHRlcih2PT4hdi51cGRhdGVDYnx8IXYudXBkYXRlQ2IoaCl8fChjbGVhclRpbWVvdXQodi50aW1lb3V0SWQpLCExKSksdGhpcy5fZGlkV29yaz0h''@;'; put 'put ''MH19Z2V0UGVuZGluZ1Rhc2tzKCl7cmV0dXJuIHRoaXMudGFza1RyYWNraW5nWm9uZT90aGlzLnRhc2tUcmFja2luZ1pvbmUubWFjcm9UYXNrcy5tYXAoaD0+KHtzb3VyY2U6aC5zb3VyY2UsY3JlYXRpb25Mb2NhdGlvbjpoLmNyZWF0aW9uTG9jYXRpb24sZGF0YTpoLmRhdGF9KSk6W119YWRk''@;'; put 'put ''Q2FsbGJhY2soaCx2LHkpe2xldCBDPS0xO3YmJnY+MCYmKEM9c2V0VGltZW91dCgoKT0+e3RoaXMuX2NhbGxiYWNrcz10aGlzLl9jYWxsYmFja3MuZmlsdGVyKEk9PkkudGltZW91dElkIT09QyksaCh0aGlzLl9kaWRXb3JrLHRoaXMuZ2V0UGVuZGluZ1Rhc2tzKCkpfSx2KSksdGhpcy5fY2Fs''@;'; put 'put ''bGJhY2tzLnB1c2goe2RvbmVDYjpoLHRpbWVvdXRJZDpDLHVwZGF0ZUNiOnl9KX13aGVuU3RhYmxlKGgsdix5KXtpZih5JiYhdGhpcy50YXNrVHJhY2tpbmdab25lKXRocm93IG5ldyBFcnJvcignVGFzayB0cmFja2luZyB6b25lIGlzIHJlcXVpcmVkIHdoZW4gcGFzc2luZyBhbiB1cGRhdGUg''@;'; put 'put ''Y2FsbGJhY2sgdG8gd2hlblN0YWJsZSgpLiBJcyAiem9uZS5qcy9wbHVnaW5zL3Rhc2stdHJhY2tpbmciIGxvYWRlZD8nKTt0aGlzLmFkZENhbGxiYWNrKGgsdix5KSx0aGlzLl9ydW5DYWxsYmFja3NJZlJlYWR5KCl9Z2V0UGVuZGluZ1JlcXVlc3RDb3VudCgpe3JldHVybiB0aGlzLl9wZW5k''@;'; put 'put ''aW5nQ291bnR9cmVnaXN0ZXJBcHBsaWNhdGlvbihoKXt0aGlzLnJlZ2lzdHJ5LnJlZ2lzdGVyQXBwbGljYXRpb24oaCx0aGlzKX11bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl7dGhpcy5yZWdpc3RyeS51bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl9ZmluZFByb3ZpZGVycyhoLHYseSl7cmV0dXJu''@;'; put 'put ''W119fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKF9sKSxDaSh0RiksQ2koemgpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx0Rj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5f''@;'; put 'put ''YXBwbGljYXRpb25zPW5ldyBNYXB9cmVnaXN0ZXJBcHBsaWNhdGlvbihoLHYpe3RoaXMuX2FwcGxpY2F0aW9ucy5zZXQoaCx2KX11bnJlZ2lzdGVyQXBwbGljYXRpb24oaCl7dGhpcy5fYXBwbGljYXRpb25zLmRlbGV0ZShoKX11bnJlZ2lzdGVyQWxsQXBwbGljYXRpb25zKCl7dGhpcy5fYXBw''@;'; put 'put ''bGljYXRpb25zLmNsZWFyKCl9Z2V0VGVzdGFiaWxpdHkoaCl7cmV0dXJuIHRoaXMuX2FwcGxpY2F0aW9ucy5nZXQoaCl8fG51bGx9Z2V0QWxsVGVzdGFiaWxpdGllcygpe3JldHVybiBBcnJheS5mcm9tKHRoaXMuX2FwcGxpY2F0aW9ucy52YWx1ZXMoKSl9Z2V0QWxsUm9vdEVsZW1lbnRzKCl7''@;'; put 'put ''cmV0dXJuIEFycmF5LmZyb20odGhpcy5fYXBwbGljYXRpb25zLmtleXMoKSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKGgsdj0hMCl7dmFyIHk7cmV0dXJuIG51bGwhPT0oeT1udWxsPT1DQz92b2lkIDA6Q0MuZmluZFRlc3RhYmlsaXR5SW5UcmVlKHRoaXMsaCx2KSkmJnZvaWQgMCE9PXk/eTpu''@;'; put 'put ''dWxsfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicGxhdGZvcm0ifSksZH0pKCkscTQ9bnVsbDtjb25zdCBuRj1uZXcgemUoIkFsbG93TXVsdGlw''@;'; put 'put ''bGVUb2tlbiIpLHhUPW5ldyB6ZSgiUGxhdGZvcm1EZXN0cm95TGlzdGVuZXJzIik7Y2xhc3MgTkd7Y29uc3RydWN0b3IoZyxoKXt0aGlzLm5hbWU9Zyx0aGlzLnRva2VuPWh9fWZ1bmN0aW9uIGlGKGQsZyxoPVtdKXtjb25zdCB2PWBQbGF0Zm9ybTogJHtnfWAseT1uZXcgemUodik7cmV0dXJu''@;'; put 'put ''KEM9W10pPT57bGV0IEk9YUYoKTtpZighSXx8SS5pbmplY3Rvci5nZXQobkYsITEpKXtjb25zdCBaPVsuLi5oLC4uLkMse3Byb3ZpZGU6eSx1c2VWYWx1ZTohMH1dO2Q/ZChaKTpmdW5jdGlvbiBjcmUoZCl7aWYocTQmJiFxNC5nZXQobkYsITEpKXRocm93IG5ldyBlbig0MDAsITEpO3E0PWQ7''@;'; put 'put ''Y29uc3QgZz1kLmdldChPcik7KGZ1bmN0aW9uIFZHKGQpe2NvbnN0IGc9ZC5nZXQoSlAsbnVsbCk7ZyYmZy5mb3JFYWNoKGg9PmgoKSl9KShkKX0oZnVuY3Rpb24gakcoZD1bXSxnKXtyZXR1cm4gU3MuY3JlYXRlKHtuYW1lOmcscHJvdmlkZXJzOlt7cHJvdmlkZTp2bSx1c2VWYWx1ZToicGxh''@;'; put 'put ''dGZvcm0ifSx7cHJvdmlkZTp4VCx1c2VWYWx1ZTpuZXcgU2V0KFsoKT0+cTQ9bnVsbF0pfSwuLi5kXX0pfShaLHYpKX1yZXR1cm4gZnVuY3Rpb24gb0YoZCl7Y29uc3QgZz1hRigpO2lmKCFnKXRocm93IG5ldyBlbig0MDEsITEpO3JldHVybiBnfSgpfX1mdW5jdGlvbiBhRigpe3ZhciBkO3Jl''@;'; put 'put ''dHVybiBudWxsIT09KGQ9bnVsbD09cTQ/dm9pZCAwOnE0LmdldChPcikpJiZ2b2lkIDAhPT1kP2Q6bnVsbH1sZXQgT3I9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9pbmplY3Rvcj1oLHRoaXMuX21vZHVsZXM9W10sdGhpcy5fZGVzdHJveUxpc3RlbmVycz1bXSx0aGlzLl9k''@;'; put 'put ''ZXN0cm95ZWQ9ITF9Ym9vdHN0cmFwTW9kdWxlRmFjdG9yeShoLHYpe2NvbnN0IHk9ZnVuY3Rpb24gbEYoZCxnKXtsZXQgaDtyZXR1cm4gaD0ibm9vcCI9PT1kP25ldyBGRzooInpvbmUuanMiPT09ZD92b2lkIDA6ZCl8fG5ldyBfbChnKSxofShudWxsPT12P3ZvaWQgMDp2Lm5nWm9uZSxmdW5j''@;'; put 'put ''dGlvbiBacyhkKXtyZXR1cm57ZW5hYmxlTG9uZ1N0YWNrVHJhY2U6ITEsc2hvdWxkQ29hbGVzY2VFdmVudENoYW5nZURldGVjdGlvbjohKCFkfHwhZC5uZ1pvbmVFdmVudENvYWxlc2NpbmcpfHwhMSxzaG91bGRDb2FsZXNjZVJ1bkNoYW5nZURldGVjdGlvbjohKCFkfHwhZC5uZ1pvbmVSdW5D''@;'; put 'put ''b2FsZXNjaW5nKXx8ITF9fSh2KSksQz1be3Byb3ZpZGU6X2wsdXNlVmFsdWU6eX1dO3JldHVybiB5LnJ1bigoKT0+e2NvbnN0IEk9U3MuY3JlYXRlKHtwcm92aWRlcnM6QyxwYXJlbnQ6dGhpcy5pbmplY3RvcixuYW1lOmgubW9kdWxlVHlwZS5uYW1lfSksWj1oLmNyZWF0ZShJKSx1ZT1aLmlu''@;'; put 'put ''amVjdG9yLmdldCh2NixudWxsKTtpZighdWUpdGhyb3cgbmV3IGVuKDQwMiwhMSk7cmV0dXJuIHkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pntjb25zdCBfZT15Lm9uRXJyb3Iuc3Vic2NyaWJlKHtuZXh0OkJlPT57dWUuaGFuZGxlRXJyb3IoQmUpfX0pO1oub25EZXN0cm95KCgpPT57VFQodGhp''@;'; put 'put ''cy5fbW9kdWxlcyxaKSxfZS51bnN1YnNjcmliZSgpfSl9KSxmdW5jdGlvbiBuaChkLGcsaCl7dHJ5e2NvbnN0IHY9aCgpO3JldHVybiBWbSh2KT92LmNhdGNoKHk9Pnt0aHJvdyBnLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5kLmhhbmRsZUVycm9yKHkpKSx5fSk6dn1jYXRjaCh2KXt0aHJvdyBn''@;'; put 'put ''LnJ1bk91dHNpZGVBbmd1bGFyKCgpPT5kLmhhbmRsZUVycm9yKHYpKSx2fX0odWUseSwoKT0+e2NvbnN0IF9lPVouaW5qZWN0b3IuZ2V0KHdUKTtyZXR1cm4gX2UucnVuSW5pdGlhbGl6ZXJzKCksX2UuZG9uZVByb21pc2UudGhlbigoKT0+KGZ1bmN0aW9uIGFUKGQpe2xsKGQsIkV4cGVjdGVk''@;'; put 'put ''IGxvY2FsZUlkIHRvIGJlIGRlZmluZWQiKSwic3RyaW5nIj09dHlwZW9mIGQmJihNNT1kLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXy9nLCItIikpfShaLmluamVjdG9yLmdldChZZCxTNSl8fFM1KSx0aGlzLl9tb2R1bGVEb0Jvb3RzdHJhcChaKSxaKSl9KX0pfWJvb3RzdHJhcE1vZHVsZSho''@;'; put 'put ''LHY9W10pe2NvbnN0IHk9ejMoe30sdik7cmV0dXJuIGZ1bmN0aW9uIEhHKGQsZyxoKXtjb25zdCB2PW5ldyBlNyhoKTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHYpfSgwLDAsaCkudGhlbihDPT50aGlzLmJvb3RzdHJhcE1vZHVsZUZhY3RvcnkoQyx5KSl9X21vZHVsZURvQm9vdHN0cmFwKGgp''@;'; put 'put ''e2NvbnN0IHY9aC5pbmplY3Rvci5nZXQoa0MpO2lmKGguX2Jvb3RzdHJhcENvbXBvbmVudHMubGVuZ3RoPjApaC5fYm9vdHN0cmFwQ29tcG9uZW50cy5mb3JFYWNoKHk9PnYuYm9vdHN0cmFwKHkpKTtlbHNle2lmKCFoLmluc3RhbmNlLm5nRG9Cb290c3RyYXApdGhyb3cgbmV3IGVuKDQwMywh''@;'; put 'put ''MSk7aC5pbnN0YW5jZS5uZ0RvQm9vdHN0cmFwKHYpfXRoaXMuX21vZHVsZXMucHVzaChoKX1vbkRlc3Ryb3koaCl7dGhpcy5fZGVzdHJveUxpc3RlbmVycy5wdXNoKGgpfWdldCBpbmplY3Rvcigpe3JldHVybiB0aGlzLl9pbmplY3Rvcn1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRo''@;'; put 'put ''cm93IG5ldyBlbig0MDQsITEpO3RoaXMuX21vZHVsZXMuc2xpY2UoKS5mb3JFYWNoKHY9PnYuZGVzdHJveSgpKSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzLmZvckVhY2godj0+digpKTtjb25zdCBoPXRoaXMuX2luamVjdG9yLmdldCh4VCxudWxsKTtoJiYoaC5mb3JFYWNoKHY9PnYoKSksaC5j''@;'; put 'put ''bGVhcigpKSx0aGlzLl9kZXN0cm95ZWQ9ITB9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKFNzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; put 'put ''ZmFjLHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2Z1bmN0aW9uIHozKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZyk/Zy5yZWR1Y2UoejMsZCk6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLGcpfWxldCBrQz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5''@;'; put 'put ''KXt0aGlzLl96b25lPWgsdGhpcy5faW5qZWN0b3I9dix0aGlzLl9leGNlcHRpb25IYW5kbGVyPXksdGhpcy5fYm9vdHN0cmFwTGlzdGVuZXJzPVtdLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX3J1bm5pbmdUaWNrPSExLHRoaXMuX3N0YWJsZT0hMCx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZGVz''@;'; put 'put ''dHJveUxpc3RlbmVycz1bXSx0aGlzLmNvbXBvbmVudFR5cGVzPVtdLHRoaXMuY29tcG9uZW50cz1bXSx0aGlzLl9vbk1pY3JvdGFza0VtcHR5U3Vic2NyaXB0aW9uPXRoaXMuX3pvbmUub25NaWNyb3Rhc2tFbXB0eS5zdWJzY3JpYmUoe25leHQ6KCk9Pnt0aGlzLl96b25lLnJ1bigoKT0+e3Ro''@;'; put 'put ''aXMudGljaygpfSl9fSk7Y29uc3QgQz1uZXcgRihaPT57dGhpcy5fc3RhYmxlPXRoaXMuX3pvbmUuaXNTdGFibGUmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNYWNyb3Rhc2tzJiYhdGhpcy5fem9uZS5oYXNQZW5kaW5nTWljcm90YXNrcyx0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgp''@;'; put 'put ''PT57Wi5uZXh0KHRoaXMuX3N0YWJsZSksWi5jb21wbGV0ZSgpfSl9KSxJPW5ldyBGKFo9PntsZXQgdWU7dGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3VlPXRoaXMuX3pvbmUub25TdGFibGUuc3Vic2NyaWJlKCgpPT57X2wuYXNzZXJ0Tm90SW5Bbmd1bGFyWm9uZSgpLGtUKCgp''@;'; put 'put ''PT57IXRoaXMuX3N0YWJsZSYmIXRoaXMuX3pvbmUuaGFzUGVuZGluZ01hY3JvdGFza3MmJiF0aGlzLl96b25lLmhhc1BlbmRpbmdNaWNyb3Rhc2tzJiYodGhpcy5fc3RhYmxlPSEwLFoubmV4dCghMCkpfSl9KX0pO2NvbnN0IF9lPXRoaXMuX3pvbmUub25VbnN0YWJsZS5zdWJzY3JpYmUoKCk9''@;'; put 'put ''PntfbC5hc3NlcnRJbkFuZ3VsYXJab25lKCksdGhpcy5fc3RhYmxlJiYodGhpcy5fc3RhYmxlPSExLHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntaLm5leHQoITEpfSkpfSk7cmV0dXJuKCk9Pnt1ZS51bnN1YnNjcmliZSgpLF9lLnVuc3Vic2NyaWJlKCl9fSk7dGhpcy5pc1N0''@;'; put 'put ''YWJsZT1ucihDLEkucGlwZShmdW5jdGlvbiBUcigpe3JldHVybiBkPT5BbigpKGZ1bmN0aW9uIHduKGQsZyl7cmV0dXJuIGZ1bmN0aW9uKHYpe2xldCB5O2lmKHk9ImZ1bmN0aW9uIj09dHlwZW9mIGQ/ZDpmdW5jdGlvbigpe3JldHVybiBkfSwiZnVuY3Rpb24iPT10eXBlb2YgZylyZXR1cm4g''@;'; put 'put ''di5saWZ0KG5ldyB0bih5LGcpKTtjb25zdCBDPU9iamVjdC5jcmVhdGUodixLbik7cmV0dXJuIEMuc291cmNlPXYsQy5zdWJqZWN0RmFjdG9yeT15LEN9fSh6bikoZCkpfSgpKSl9Z2V0IGRlc3Ryb3llZCgpe3JldHVybiB0aGlzLl9kZXN0cm95ZWR9Z2V0IGluamVjdG9yKCl7cmV0dXJuIHRo''@;'; put 'put ''aXMuX2luamVjdG9yfWJvb3RzdHJhcChoLHYpe2NvbnN0IHk9aCBpbnN0YW5jZW9mIHZFO2lmKCF0aGlzLl9pbmplY3Rvci5nZXQod1QpLmRvbmUpdGhyb3cheSYmZnVuY3Rpb24gdGgoZCl7Y29uc3QgZz12cyhkKXx8RjEoZCl8fEtsKGQpO3JldHVybiBudWxsIT09ZyYmZy5zdGFuZGFsb25l''@;'; put 'put ''fShoKSxuZXcgZW4oNDA1LGZhbHNlKTtsZXQgSTtJPXk/aDp0aGlzLl9pbmplY3Rvci5nZXQoU2QpLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGgpLHRoaXMuY29tcG9uZW50VHlwZXMucHVzaChJLmNvbXBvbmVudFR5cGUpO2NvbnN0IFo9ZnVuY3Rpb24gckYoZCl7cmV0dXJuIGQuaXNCb3Vu''@;'; put 'put ''ZFRvTW9kdWxlfShJKT92b2lkIDA6dGhpcy5faW5qZWN0b3IuZ2V0KEgzKSxfZT1JLmNyZWF0ZShTcy5OVUxMLFtdLHZ8fEkuc2VsZWN0b3IsWiksQmU9X2UubG9jYXRpb24ubmF0aXZlRWxlbWVudCxOZT1fZS5pbmplY3Rvci5nZXQoTVQsbnVsbCk7cmV0dXJuIG51bGw9PU5lfHxOZS5yZWdp''@;'; put 'put ''c3RlckFwcGxpY2F0aW9uKEJlKSxfZS5vbkRlc3Ryb3koKCk9Pnt0aGlzLmRldGFjaFZpZXcoX2UuaG9zdFZpZXcpLFRUKHRoaXMuY29tcG9uZW50cyxfZSksbnVsbD09TmV8fE5lLnVucmVnaXN0ZXJBcHBsaWNhdGlvbihCZSl9KSx0aGlzLl9sb2FkQ29tcG9uZW50KF9lKSxfZX10aWNrKCl7''@;'; put 'put ''aWYodGhpcy5fcnVubmluZ1RpY2spdGhyb3cgbmV3IGVuKDEwMSwhMSk7dHJ5e3RoaXMuX3J1bm5pbmdUaWNrPSEwO2ZvcihsZXQgaCBvZiB0aGlzLl92aWV3cyloLmRldGVjdENoYW5nZXMoKX1jYXRjaChoKXt0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT50aGlzLl9leGNlcHRp''@;'; put 'put ''b25IYW5kbGVyLmhhbmRsZUVycm9yKGgpKX1maW5hbGx5e3RoaXMuX3J1bm5pbmdUaWNrPSExfX1hdHRhY2hWaWV3KGgpe2NvbnN0IHY9aDt0aGlzLl92aWV3cy5wdXNoKHYpLHYuYXR0YWNoVG9BcHBSZWYodGhpcyl9ZGV0YWNoVmlldyhoKXtjb25zdCB2PWg7VFQodGhpcy5fdmlld3Msdiks''@;'; put 'put ''di5kZXRhY2hGcm9tQXBwUmVmKCl9X2xvYWRDb21wb25lbnQoaCl7dGhpcy5hdHRhY2hWaWV3KGguaG9zdFZpZXcpLHRoaXMudGljaygpLHRoaXMuY29tcG9uZW50cy5wdXNoKGgpLHRoaXMuX2luamVjdG9yLmdldChGNixbXSkuY29uY2F0KHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycykuZm9y''@;'; put 'put ''RWFjaCh5PT55KGgpKX1uZ09uRGVzdHJveSgpe2lmKCF0aGlzLl9kZXN0cm95ZWQpdHJ5e3RoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMuZm9yRWFjaChoPT5oKCkpLHRoaXMuX3ZpZXdzLnNsaWNlKCkuZm9yRWFjaChoPT5oLmRlc3Ryb3koKSksdGhpcy5fb25NaWNyb3Rhc2tFbXB0eVN1YnNjcmlw''@;'; put 'put ''dGlvbi51bnN1YnNjcmliZSgpfWZpbmFsbHl7dGhpcy5fZGVzdHJveWVkPSEwLHRoaXMuX3ZpZXdzPVtdLHRoaXMuX2Jvb3RzdHJhcExpc3RlbmVycz1bXSx0aGlzLl9kZXN0cm95TGlzdGVuZXJzPVtdfX1vbkRlc3Ryb3koaCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3lMaXN0ZW5lcnMucHVzaCho''@;'; put 'put ''KSwoKT0+VFQodGhpcy5fZGVzdHJveUxpc3RlbmVycyxoKX1kZXN0cm95KCl7aWYodGhpcy5fZGVzdHJveWVkKXRocm93IG5ldyBlbig0MDYsITEpO2NvbnN0IGg9dGhpcy5faW5qZWN0b3I7aC5kZXN0cm95JiYhaC5kZXN0cm95ZWQmJmguZGVzdHJveSgpfWdldCB2aWV3Q291bnQoKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5fdmlld3MubGVuZ3RofXdhcm5JZkRlc3Ryb3llZCgpe319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koX2wpLENpKEUzKSxDaSh2NikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRl''@;'; put 'put ''ZEluOiJyb290In0pLGR9KSgpO2Z1bmN0aW9uIFRUKGQsZyl7Y29uc3QgaD1kLmluZGV4T2YoZyk7aD4tMSYmZC5zcGxpY2UoaCwxKX1sZXQgSVQ9ITAsZDE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuX19OR19FTEVNRU5UX0lEX189QkEsZH0pKCk7ZnVuY3Rpb24gQkEoZCl7cmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uIFdHKGQsZyxoKXtpZihrcyhkKSYmIWgpe2NvbnN0IHY9UXUoZC5pbmRleCxnKTtyZXR1cm4gbmV3IE02KHYsdil9cmV0dXJuIDQ3JmQudHlwZT9uZXcgTTYoZ1sxNl0sZyk6bnVsbH0oWHQoKSxQdCgpLDE2PT0oMTYmZCkpfWNsYXNzIE1De2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRz''@;'; put 'put ''KGcpe3JldHVybiBQZChnKX1jcmVhdGUoZyl7cmV0dXJuIG5ldyBMVChnKX19Y29uc3QgRFQ9KGQsZyk9Pmc7Y2xhc3MgTFR7Y29uc3RydWN0b3IoZyl7dGhpcy5sZW5ndGg9MCx0aGlzLl9saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fdW5saW5rZWRSZWNvcmRzPW51bGwsdGhpcy5fcHJldmlv''@;'; put 'put ''dXNJdEhlYWQ9bnVsbCx0aGlzLl9pdEhlYWQ9bnVsbCx0aGlzLl9pdFRhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX21vdmVzSGVhZD1udWxsLHRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxs''@;'; put 'put ''LHRoaXMuX3JlbW92YWxzVGFpbD1udWxsLHRoaXMuX2lkZW50aXR5Q2hhbmdlc0hlYWQ9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsPW51bGwsdGhpcy5fdHJhY2tCeUZuPWd8fERUfWZvckVhY2hJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX2l0SGVhZDtudWxsIT09aDtoPWguX25l''@;'; put 'put ''eHQpZyhoKX1mb3JFYWNoT3BlcmF0aW9uKGcpe2xldCBoPXRoaXMuX2l0SGVhZCx2PXRoaXMuX3JlbW92YWxzSGVhZCx5PTAsQz1udWxsO2Zvcig7aHx8djspe2NvbnN0IEk9IXZ8fGgmJmguY3VycmVudEluZGV4PE9UKHYseSxDKT9oOnYsWj1PVChJLHksQyksdWU9SS5jdXJyZW50SW5kZXg7''@;'; put 'put ''aWYoST09PXYpeS0tLHY9di5fbmV4dFJlbW92ZWQ7ZWxzZSBpZihoPWguX25leHQsbnVsbD09SS5wcmV2aW91c0luZGV4KXkrKztlbHNle0N8fChDPVtdKTtjb25zdCBfZT1aLXksQmU9dWUteTtpZihfZSE9QmUpe2ZvcihsZXQgS2U9MDtLZTxfZTtLZSsrKXtjb25zdCBwdD1LZTxDLmxlbmd0''@;'; put 'put ''aD9DW0tlXTpDW0tlXT0wLE90PXB0K0tlO0JlPD1PdCYmT3Q8X2UmJihDW0tlXT1wdCsxKX1DW0kucHJldmlvdXNJbmRleF09QmUtX2V9fVohPT11ZSYmZyhJLFosdWUpfX1mb3JFYWNoUHJldmlvdXNJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX3ByZXZpb3VzSXRIZWFkO251bGwhPT1oO2g9''@;'; put 'put ''aC5fbmV4dFByZXZpb3VzKWcoaCl9Zm9yRWFjaEFkZGVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1oO2g9aC5fbmV4dEFkZGVkKWcoaCl9Zm9yRWFjaE1vdmVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9tb3Zlc0hlYWQ7bnVsbCE9PWg7aD1oLl9u''@;'; put 'put ''ZXh0TW92ZWQpZyhoKX1mb3JFYWNoUmVtb3ZlZEl0ZW0oZyl7bGV0IGg7Zm9yKGg9dGhpcy5fcmVtb3ZhbHNIZWFkO251bGwhPT1oO2g9aC5fbmV4dFJlbW92ZWQpZyhoKX1mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoZyl7bGV0IGg7Zm9yKGg9dGhpcy5faWRlbnRpdHlDaGFuZ2VzSGVhZDtudWxs''@;'; put 'put ''IT09aDtoPWguX25leHRJZGVudGl0eUNoYW5nZSlnKGgpfWRpZmYoZyl7aWYobnVsbD09ZyYmKGc9W10pLCFQZChnKSl0aHJvdyBuZXcgZW4oOTAwLCExKTtyZXR1cm4gdGhpcy5jaGVjayhnKT90aGlzOm51bGx9b25EZXN0cm95KCl7fWNoZWNrKGcpe3RoaXMuX3Jlc2V0KCk7bGV0IHksQyxJ''@;'; put 'put ''LGg9dGhpcy5faXRIZWFkLHY9ITE7aWYoQXJyYXkuaXNBcnJheShnKSl7dGhpcy5sZW5ndGg9Zy5sZW5ndGg7Zm9yKGxldCBaPTA7Wjx0aGlzLmxlbmd0aDtaKyspQz1nW1pdLEk9dGhpcy5fdHJhY2tCeUZuKFosQyksbnVsbCE9PWgmJk9iamVjdC5pcyhoLnRyYWNrQnlJZCxJKT8odiYmKGg9''@;'; put 'put ''dGhpcy5fdmVyaWZ5UmVpbnNlcnRpb24oaCxDLEksWikpLE9iamVjdC5pcyhoLml0ZW0sQyl8fHRoaXMuX2FkZElkZW50aXR5Q2hhbmdlKGgsQykpOihoPXRoaXMuX21pc21hdGNoKGgsQyxJLFopLHY9ITApLGg9aC5fbmV4dH1lbHNlIHk9MCxmdW5jdGlvbiBpUChkLGcpe2lmKEFycmF5Lmlz''@;'; put 'put ''QXJyYXkoZCkpZm9yKGxldCBoPTA7aDxkLmxlbmd0aDtoKyspZyhkW2hdKTtlbHNle2NvbnN0IGg9ZFtFNigpXSgpO2xldCB2O2Zvcig7ISh2PWgubmV4dCgpKS5kb25lOylnKHYudmFsdWUpfX0oZyxaPT57ST10aGlzLl90cmFja0J5Rm4oeSxaKSxudWxsIT09aCYmT2JqZWN0LmlzKGgudHJh''@;'; put 'put ''Y2tCeUlkLEkpPyh2JiYoaD10aGlzLl92ZXJpZnlSZWluc2VydGlvbihoLFosSSx5KSksT2JqZWN0LmlzKGguaXRlbSxaKXx8dGhpcy5fYWRkSWRlbnRpdHlDaGFuZ2UoaCxaKSk6KGg9dGhpcy5fbWlzbWF0Y2goaCxaLEkseSksdj0hMCksaD1oLl9uZXh0LHkrK30pLHRoaXMubGVuZ3RoPXk7''@;'; put 'put ''cmV0dXJuIHRoaXMuX3RydW5jYXRlKGgpLHRoaXMuY29sbGVjdGlvbj1nLHRoaXMuaXNEaXJ0eX1nZXQgaXNEaXJ0eSgpe3JldHVybiBudWxsIT09dGhpcy5fYWRkaXRpb25zSGVhZHx8bnVsbCE9PXRoaXMuX21vdmVzSGVhZHx8bnVsbCE9PXRoaXMuX3JlbW92YWxzSGVhZHx8bnVsbCE9PXRo''@;'; put 'put ''aXMuX2lkZW50aXR5Q2hhbmdlc0hlYWR9X3Jlc2V0KCl7aWYodGhpcy5pc0RpcnR5KXtsZXQgZztmb3IoZz10aGlzLl9wcmV2aW91c0l0SGVhZD10aGlzLl9pdEhlYWQ7bnVsbCE9PWc7Zz1nLl9uZXh0KWcuX25leHRQcmV2aW91cz1nLl9uZXh0O2ZvcihnPXRoaXMuX2FkZGl0aW9uc0hlYWQ7''@;'; put 'put ''bnVsbCE9PWc7Zz1nLl9uZXh0QWRkZWQpZy5wcmV2aW91c0luZGV4PWcuY3VycmVudEluZGV4O2Zvcih0aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9bnVsbCxnPXRoaXMuX21vdmVzSGVhZDtudWxsIT09ZztnPWcuX25leHRNb3ZlZClnLnByZXZpb3VzSW5kZXg9Zy5j''@;'; put 'put ''dXJyZW50SW5kZXg7dGhpcy5fbW92ZXNIZWFkPXRoaXMuX21vdmVzVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD10aGlzLl9yZW1vdmFsc1RhaWw9bnVsbCx0aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWw9bnVsbH19X21pc21hdGNoKGcsaCx2''@;'; put 'put ''LHkpe2xldCBDO3JldHVybiBudWxsPT09Zz9DPXRoaXMuX2l0VGFpbDooQz1nLl9wcmV2LHRoaXMuX3JlbW92ZShnKSksbnVsbCE9PShnPW51bGw9PT10aGlzLl91bmxpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl91bmxpbmtlZFJlY29yZHMuZ2V0KHYsbnVsbCkpPyhPYmplY3QuaXMoZy5pdGVt''@;'; put 'put ''LGgpfHx0aGlzLl9hZGRJZGVudGl0eUNoYW5nZShnLGgpLHRoaXMuX3JlaW5zZXJ0QWZ0ZXIoZyxDLHkpKTpudWxsIT09KGc9bnVsbD09PXRoaXMuX2xpbmtlZFJlY29yZHM/bnVsbDp0aGlzLl9saW5rZWRSZWNvcmRzLmdldCh2LHkpKT8oT2JqZWN0LmlzKGcuaXRlbSxoKXx8dGhpcy5fYWRk''@;'; put 'put ''SWRlbnRpdHlDaGFuZ2UoZyxoKSx0aGlzLl9tb3ZlQWZ0ZXIoZyxDLHkpKTpnPXRoaXMuX2FkZEFmdGVyKG5ldyB0cChoLHYpLEMseSksZ31fdmVyaWZ5UmVpbnNlcnRpb24oZyxoLHYseSl7bGV0IEM9bnVsbD09PXRoaXMuX3VubGlua2VkUmVjb3Jkcz9udWxsOnRoaXMuX3VubGlua2VkUmVj''@;'; put 'put ''b3Jkcy5nZXQodixudWxsKTtyZXR1cm4gbnVsbCE9PUM/Zz10aGlzLl9yZWluc2VydEFmdGVyKEMsZy5fcHJldix5KTpnLmN1cnJlbnRJbmRleCE9eSYmKGcuY3VycmVudEluZGV4PXksdGhpcy5fYWRkVG9Nb3ZlcyhnLHkpKSxnfV90cnVuY2F0ZShnKXtmb3IoO251bGwhPT1nOyl7Y29uc3Qg''@;'; put 'put ''aD1nLl9uZXh0O3RoaXMuX2FkZFRvUmVtb3ZhbHModGhpcy5fdW5saW5rKGcpKSxnPWh9bnVsbCE9PXRoaXMuX3VubGlua2VkUmVjb3JkcyYmdGhpcy5fdW5saW5rZWRSZWNvcmRzLmNsZWFyKCksbnVsbCE9PXRoaXMuX2FkZGl0aW9uc1RhaWwmJih0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0''@;'; put 'put ''QWRkZWQ9bnVsbCksbnVsbCE9PXRoaXMuX21vdmVzVGFpbCYmKHRoaXMuX21vdmVzVGFpbC5fbmV4dE1vdmVkPW51bGwpLG51bGwhPT10aGlzLl9pdFRhaWwmJih0aGlzLl9pdFRhaWwuX25leHQ9bnVsbCksbnVsbCE9PXRoaXMuX3JlbW92YWxzVGFpbCYmKHRoaXMuX3JlbW92YWxzVGFpbC5f''@;'; put 'put ''bmV4dFJlbW92ZWQ9bnVsbCksbnVsbCE9PXRoaXMuX2lkZW50aXR5Q2hhbmdlc1RhaWwmJih0aGlzLl9pZGVudGl0eUNoYW5nZXNUYWlsLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbCl9X3JlaW5zZXJ0QWZ0ZXIoZyxoLHYpe251bGwhPT10aGlzLl91bmxpbmtlZFJlY29yZHMmJnRoaXMuX3Vu''@;'; put 'put ''bGlua2VkUmVjb3Jkcy5yZW1vdmUoZyk7Y29uc3QgeT1nLl9wcmV2UmVtb3ZlZCxDPWcuX25leHRSZW1vdmVkO3JldHVybiBudWxsPT09eT90aGlzLl9yZW1vdmFsc0hlYWQ9Qzp5Ll9uZXh0UmVtb3ZlZD1DLG51bGw9PT1DP3RoaXMuX3JlbW92YWxzVGFpbD15OkMuX3ByZXZSZW1vdmVkPXks''@;'; put 'put ''dGhpcy5faW5zZXJ0QWZ0ZXIoZyxoLHYpLHRoaXMuX2FkZFRvTW92ZXMoZyx2KSxnfV9tb3ZlQWZ0ZXIoZyxoLHYpe3JldHVybiB0aGlzLl91bmxpbmsoZyksdGhpcy5faW5zZXJ0QWZ0ZXIoZyxoLHYpLHRoaXMuX2FkZFRvTW92ZXMoZyx2KSxnfV9hZGRBZnRlcihnLGgsdil7cmV0dXJuIHRo''@;'; put 'put ''aXMuX2luc2VydEFmdGVyKGcsaCx2KSx0aGlzLl9hZGRpdGlvbnNUYWlsPW51bGw9PT10aGlzLl9hZGRpdGlvbnNUYWlsP3RoaXMuX2FkZGl0aW9uc0hlYWQ9Zzp0aGlzLl9hZGRpdGlvbnNUYWlsLl9uZXh0QWRkZWQ9ZyxnfV9pbnNlcnRBZnRlcihnLGgsdil7Y29uc3QgeT1udWxsPT09aD90''@;'; put 'put ''aGlzLl9pdEhlYWQ6aC5fbmV4dDtyZXR1cm4gZy5fbmV4dD15LGcuX3ByZXY9aCxudWxsPT09eT90aGlzLl9pdFRhaWw9Zzp5Ll9wcmV2PWcsbnVsbD09PWg/dGhpcy5faXRIZWFkPWc6aC5fbmV4dD1nLG51bGw9PT10aGlzLl9saW5rZWRSZWNvcmRzJiYodGhpcy5fbGlua2VkUmVjb3Jkcz1u''@;'; put 'put ''ZXcgS0cpLHRoaXMuX2xpbmtlZFJlY29yZHMucHV0KGcpLGcuY3VycmVudEluZGV4PXYsZ31fcmVtb3ZlKGcpe3JldHVybiB0aGlzLl9hZGRUb1JlbW92YWxzKHRoaXMuX3VubGluayhnKSl9X3VubGluayhnKXtudWxsIT09dGhpcy5fbGlua2VkUmVjb3JkcyYmdGhpcy5fbGlua2VkUmVjb3Jk''@;'; put 'put ''cy5yZW1vdmUoZyk7Y29uc3QgaD1nLl9wcmV2LHY9Zy5fbmV4dDtyZXR1cm4gbnVsbD09PWg/dGhpcy5faXRIZWFkPXY6aC5fbmV4dD12LG51bGw9PT12P3RoaXMuX2l0VGFpbD1oOnYuX3ByZXY9aCxnfV9hZGRUb01vdmVzKGcsaCl7cmV0dXJuIGcucHJldmlvdXNJbmRleD09PWh8fCh0aGlz''@;'; put 'put ''Ll9tb3Zlc1RhaWw9bnVsbD09PXRoaXMuX21vdmVzVGFpbD90aGlzLl9tb3Zlc0hlYWQ9Zzp0aGlzLl9tb3Zlc1RhaWwuX25leHRNb3ZlZD1nKSxnfV9hZGRUb1JlbW92YWxzKGcpe3JldHVybiBudWxsPT09dGhpcy5fdW5saW5rZWRSZWNvcmRzJiYodGhpcy5fdW5saW5rZWRSZWNvcmRzPW5l''@;'; put 'put ''dyBLRyksdGhpcy5fdW5saW5rZWRSZWNvcmRzLnB1dChnKSxnLmN1cnJlbnRJbmRleD1udWxsLGcuX25leHRSZW1vdmVkPW51bGwsbnVsbD09PXRoaXMuX3JlbW92YWxzVGFpbD8odGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzSGVhZD1nLGcuX3ByZXZSZW1vdmVkPW51bGwpOihn''@;'; put 'put ''Ll9wcmV2UmVtb3ZlZD10aGlzLl9yZW1vdmFsc1RhaWwsdGhpcy5fcmVtb3ZhbHNUYWlsPXRoaXMuX3JlbW92YWxzVGFpbC5fbmV4dFJlbW92ZWQ9ZyksZ31fYWRkSWRlbnRpdHlDaGFuZ2UoZyxoKXtyZXR1cm4gZy5pdGVtPWgsdGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbD1udWxsPT09dGhp''@;'; put 'put ''cy5faWRlbnRpdHlDaGFuZ2VzVGFpbD90aGlzLl9pZGVudGl0eUNoYW5nZXNIZWFkPWc6dGhpcy5faWRlbnRpdHlDaGFuZ2VzVGFpbC5fbmV4dElkZW50aXR5Q2hhbmdlPWcsZ319Y2xhc3MgdHB7Y29uc3RydWN0b3IoZyxoKXt0aGlzLml0ZW09Zyx0aGlzLnRyYWNrQnlJZD1oLHRoaXMuY3Vy''@;'; put 'put ''cmVudEluZGV4PW51bGwsdGhpcy5wcmV2aW91c0luZGV4PW51bGwsdGhpcy5fbmV4dFByZXZpb3VzPW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHQ9bnVsbCx0aGlzLl9wcmV2RHVwPW51bGwsdGhpcy5fbmV4dER1cD1udWxsLHRoaXMuX3ByZXZSZW1vdmVkPW51bGwsdGhpcy5fbmV4''@;'; put 'put ''dFJlbW92ZWQ9bnVsbCx0aGlzLl9uZXh0QWRkZWQ9bnVsbCx0aGlzLl9uZXh0TW92ZWQ9bnVsbCx0aGlzLl9uZXh0SWRlbnRpdHlDaGFuZ2U9bnVsbH19Y2xhc3MgX3Jle2NvbnN0cnVjdG9yKCl7dGhpcy5faGVhZD1udWxsLHRoaXMuX3RhaWw9bnVsbH1hZGQoZyl7bnVsbD09PXRoaXMuX2hl''@;'; put 'put ''YWQ/KHRoaXMuX2hlYWQ9dGhpcy5fdGFpbD1nLGcuX25leHREdXA9bnVsbCxnLl9wcmV2RHVwPW51bGwpOih0aGlzLl90YWlsLl9uZXh0RHVwPWcsZy5fcHJldkR1cD10aGlzLl90YWlsLGcuX25leHREdXA9bnVsbCx0aGlzLl90YWlsPWcpfWdldChnLGgpe2xldCB2O2Zvcih2PXRoaXMuX2hl''@;'; put 'put ''YWQ7bnVsbCE9PXY7dj12Ll9uZXh0RHVwKWlmKChudWxsPT09aHx8aDw9di5jdXJyZW50SW5kZXgpJiZPYmplY3QuaXModi50cmFja0J5SWQsZykpcmV0dXJuIHY7cmV0dXJuIG51bGx9cmVtb3ZlKGcpe2NvbnN0IGg9Zy5fcHJldkR1cCx2PWcuX25leHREdXA7cmV0dXJuIG51bGw9PT1oP3Ro''@;'; put 'put ''aXMuX2hlYWQ9djpoLl9uZXh0RHVwPXYsbnVsbD09PXY/dGhpcy5fdGFpbD1oOnYuX3ByZXZEdXA9aCxudWxsPT09dGhpcy5faGVhZH19Y2xhc3MgS0d7Y29uc3RydWN0b3IoKXt0aGlzLm1hcD1uZXcgTWFwfXB1dChnKXtjb25zdCBoPWcudHJhY2tCeUlkO2xldCB2PXRoaXMubWFwLmdldCho''@;'; put 'put ''KTt2fHwodj1uZXcgX3JlLHRoaXMubWFwLnNldChoLHYpKSx2LmFkZChnKX1nZXQoZyxoKXtjb25zdCB5PXRoaXMubWFwLmdldChnKTtyZXR1cm4geT95LmdldChnLGgpOm51bGx9cmVtb3ZlKGcpe2NvbnN0IGg9Zy50cmFja0J5SWQ7cmV0dXJuIHRoaXMubWFwLmdldChoKS5yZW1vdmUoZykm''@;'; put 'put ''JnRoaXMubWFwLmRlbGV0ZShoKSxnfWdldCBpc0VtcHR5KCl7cmV0dXJuIDA9PT10aGlzLm1hcC5zaXplfWNsZWFyKCl7dGhpcy5tYXAuY2xlYXIoKX19ZnVuY3Rpb24gT1QoZCxnLGgpe2NvbnN0IHY9ZC5wcmV2aW91c0luZGV4O2lmKG51bGw9PT12KXJldHVybiB2O2xldCB5PTA7cmV0dXJu''@;'; put 'put ''IGgmJnY8aC5sZW5ndGgmJih5PWhbdl0pLHYrZyt5fWNsYXNzICRHe2NvbnN0cnVjdG9yKCl7fXN1cHBvcnRzKGcpe3JldHVybiBnIGluc3RhbmNlb2YgTWFwfHxCXyhnKX1jcmVhdGUoKXtyZXR1cm4gbmV3IENyZX19Y2xhc3MgQ3Jle2NvbnN0cnVjdG9yKCl7dGhpcy5fcmVjb3Jkcz1uZXcg''@;'; put 'put ''TWFwLHRoaXMuX21hcEhlYWQ9bnVsbCx0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX3ByZXZpb3VzTWFwSGVhZD1udWxsLHRoaXMuX2NoYW5nZXNIZWFkPW51bGwsdGhpcy5fY2hhbmdlc1RhaWw9bnVsbCx0aGlzLl9hZGRpdGlvbnNIZWFkPW51bGwsdGhpcy5fYWRkaXRpb25zVGFpbD1u''@;'; put 'put ''dWxsLHRoaXMuX3JlbW92YWxzSGVhZD1udWxsLHRoaXMuX3JlbW92YWxzVGFpbD1udWxsfWdldCBpc0RpcnR5KCl7cmV0dXJuIG51bGwhPT10aGlzLl9hZGRpdGlvbnNIZWFkfHxudWxsIT09dGhpcy5fY2hhbmdlc0hlYWR8fG51bGwhPT10aGlzLl9yZW1vdmFsc0hlYWR9Zm9yRWFjaEl0ZW0o''@;'; put 'put ''Zyl7bGV0IGg7Zm9yKGg9dGhpcy5fbWFwSGVhZDtudWxsIT09aDtoPWguX25leHQpZyhoKX1mb3JFYWNoUHJldmlvdXNJdGVtKGcpe2xldCBoO2ZvcihoPXRoaXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09aDtoPWguX25leHRQcmV2aW91cylnKGgpfWZvckVhY2hDaGFuZ2VkSXRlbShnKXts''@;'; put 'put ''ZXQgaDtmb3IoaD10aGlzLl9jaGFuZ2VzSGVhZDtudWxsIT09aDtoPWguX25leHRDaGFuZ2VkKWcoaCl9Zm9yRWFjaEFkZGVkSXRlbShnKXtsZXQgaDtmb3IoaD10aGlzLl9hZGRpdGlvbnNIZWFkO251bGwhPT1oO2g9aC5fbmV4dEFkZGVkKWcoaCl9Zm9yRWFjaFJlbW92ZWRJdGVtKGcpe2xl''@;'; put 'put ''dCBoO2ZvcihoPXRoaXMuX3JlbW92YWxzSGVhZDtudWxsIT09aDtoPWguX25leHRSZW1vdmVkKWcoaCl9ZGlmZihnKXtpZihnKXtpZighKGcgaW5zdGFuY2VvZiBNYXB8fEJfKGcpKSl0aHJvdyBuZXcgZW4oOTAwLCExKX1lbHNlIGc9bmV3IE1hcDtyZXR1cm4gdGhpcy5jaGVjayhnKT90aGlz''@;'; put 'put ''Om51bGx9b25EZXN0cm95KCl7fWNoZWNrKGcpe3RoaXMuX3Jlc2V0KCk7bGV0IGg9dGhpcy5fbWFwSGVhZDtpZih0aGlzLl9hcHBlbmRBZnRlcj1udWxsLHRoaXMuX2ZvckVhY2goZywodix5KT0+e2lmKGgmJmgua2V5PT09eSl0aGlzLl9tYXliZUFkZFRvQ2hhbmdlcyhoLHYpLHRoaXMuX2Fw''@;'; put 'put ''cGVuZEFmdGVyPWgsaD1oLl9uZXh0O2Vsc2V7Y29uc3QgQz10aGlzLl9nZXRPckNyZWF0ZVJlY29yZEZvcktleSh5LHYpO2g9dGhpcy5faW5zZXJ0QmVmb3JlT3JBcHBlbmQoaCxDKX19KSxoKXtoLl9wcmV2JiYoaC5fcHJldi5fbmV4dD1udWxsKSx0aGlzLl9yZW1vdmFsc0hlYWQ9aDtmb3Io''@;'; put 'put ''bGV0IHY9aDtudWxsIT09djt2PXYuX25leHRSZW1vdmVkKXY9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1udWxsKSx0aGlzLl9yZWNvcmRzLmRlbGV0ZSh2LmtleSksdi5fbmV4dFJlbW92ZWQ9di5fbmV4dCx2LnByZXZpb3VzVmFsdWU9di5jdXJyZW50VmFsdWUsdi5jdXJyZW50''@;'; put 'put ''VmFsdWU9bnVsbCx2Ll9wcmV2PW51bGwsdi5fbmV4dD1udWxsfXJldHVybiB0aGlzLl9jaGFuZ2VzVGFpbCYmKHRoaXMuX2NoYW5nZXNUYWlsLl9uZXh0Q2hhbmdlZD1udWxsKSx0aGlzLl9hZGRpdGlvbnNUYWlsJiYodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPW51bGwpLHRoaXMu''@;'; put 'put ''aXNEaXJ0eX1faW5zZXJ0QmVmb3JlT3JBcHBlbmQoZyxoKXtpZihnKXtjb25zdCB2PWcuX3ByZXY7cmV0dXJuIGguX25leHQ9ZyxoLl9wcmV2PXYsZy5fcHJldj1oLHYmJih2Ll9uZXh0PWgpLGc9PT10aGlzLl9tYXBIZWFkJiYodGhpcy5fbWFwSGVhZD1oKSx0aGlzLl9hcHBlbmRBZnRlcj1n''@;'; put 'put ''LGd9cmV0dXJuIHRoaXMuX2FwcGVuZEFmdGVyPyh0aGlzLl9hcHBlbmRBZnRlci5fbmV4dD1oLGguX3ByZXY9dGhpcy5fYXBwZW5kQWZ0ZXIpOnRoaXMuX21hcEhlYWQ9aCx0aGlzLl9hcHBlbmRBZnRlcj1oLG51bGx9X2dldE9yQ3JlYXRlUmVjb3JkRm9yS2V5KGcsaCl7aWYodGhpcy5fcmVj''@;'; put 'put ''b3Jkcy5oYXMoZykpe2NvbnN0IHk9dGhpcy5fcmVjb3Jkcy5nZXQoZyk7dGhpcy5fbWF5YmVBZGRUb0NoYW5nZXMoeSxoKTtjb25zdCBDPXkuX3ByZXYsST15Ll9uZXh0O3JldHVybiBDJiYoQy5fbmV4dD1JKSxJJiYoSS5fcHJldj1DKSx5Ll9uZXh0PW51bGwseS5fcHJldj1udWxsLHl9Y29u''@;'; put 'put ''c3Qgdj1uZXcga3JlKGcpO3JldHVybiB0aGlzLl9yZWNvcmRzLnNldChnLHYpLHYuY3VycmVudFZhbHVlPWgsdGhpcy5fYWRkVG9BZGRpdGlvbnModiksdn1fcmVzZXQoKXtpZih0aGlzLmlzRGlydHkpe2xldCBnO2Zvcih0aGlzLl9wcmV2aW91c01hcEhlYWQ9dGhpcy5fbWFwSGVhZCxnPXRo''@;'; put 'put ''aXMuX3ByZXZpb3VzTWFwSGVhZDtudWxsIT09ZztnPWcuX25leHQpZy5fbmV4dFByZXZpb3VzPWcuX25leHQ7Zm9yKGc9dGhpcy5fY2hhbmdlc0hlYWQ7bnVsbCE9PWc7Zz1nLl9uZXh0Q2hhbmdlZClnLnByZXZpb3VzVmFsdWU9Zy5jdXJyZW50VmFsdWU7Zm9yKGc9dGhpcy5fYWRkaXRpb25z''@;'; put 'put ''SGVhZDtudWxsIT1nO2c9Zy5fbmV4dEFkZGVkKWcucHJldmlvdXNWYWx1ZT1nLmN1cnJlbnRWYWx1ZTt0aGlzLl9jaGFuZ2VzSGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1udWxsLHRoaXMuX2FkZGl0aW9uc0hlYWQ9dGhpcy5fYWRkaXRpb25zVGFpbD1udWxsLHRoaXMuX3JlbW92YWxzSGVhZD1u''@;'; put 'put ''dWxsfX1fbWF5YmVBZGRUb0NoYW5nZXMoZyxoKXtPYmplY3QuaXMoaCxnLmN1cnJlbnRWYWx1ZSl8fChnLnByZXZpb3VzVmFsdWU9Zy5jdXJyZW50VmFsdWUsZy5jdXJyZW50VmFsdWU9aCx0aGlzLl9hZGRUb0NoYW5nZXMoZykpfV9hZGRUb0FkZGl0aW9ucyhnKXtudWxsPT09dGhpcy5fYWRk''@;'; put 'put ''aXRpb25zSGVhZD90aGlzLl9hZGRpdGlvbnNIZWFkPXRoaXMuX2FkZGl0aW9uc1RhaWw9ZzoodGhpcy5fYWRkaXRpb25zVGFpbC5fbmV4dEFkZGVkPWcsdGhpcy5fYWRkaXRpb25zVGFpbD1nKX1fYWRkVG9DaGFuZ2VzKGcpe251bGw9PT10aGlzLl9jaGFuZ2VzSGVhZD90aGlzLl9jaGFuZ2Vz''@;'; put 'put ''SGVhZD10aGlzLl9jaGFuZ2VzVGFpbD1nOih0aGlzLl9jaGFuZ2VzVGFpbC5fbmV4dENoYW5nZWQ9Zyx0aGlzLl9jaGFuZ2VzVGFpbD1nKX1fZm9yRWFjaChnLGgpe2cgaW5zdGFuY2VvZiBNYXA/Zy5mb3JFYWNoKGgpOk9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+aChnW3ZdLHYpKX19Y2xh''@;'; put 'put ''c3Mga3Jle2NvbnN0cnVjdG9yKGcpe3RoaXMua2V5PWcsdGhpcy5wcmV2aW91c1ZhbHVlPW51bGwsdGhpcy5jdXJyZW50VmFsdWU9bnVsbCx0aGlzLl9uZXh0UHJldmlvdXM9bnVsbCx0aGlzLl9uZXh0PW51bGwsdGhpcy5fcHJldj1udWxsLHRoaXMuX25leHRBZGRlZD1udWxsLHRoaXMuX25l''@;'; put 'put ''eHRSZW1vdmVkPW51bGwsdGhpcy5fbmV4dENoYW5nZWQ9bnVsbH19ZnVuY3Rpb24gUlQoKXtyZXR1cm4gbmV3IFBBKFtuZXcgTUNdKX1sZXQgUEE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmZhY3Rvcmllcz1ofXN0YXRpYyBjcmVhdGUoaCx2KXtpZihudWxsIT12KXtjb25z''@;'; put 'put ''dCB5PXYuZmFjdG9yaWVzLnNsaWNlKCk7aD1oLmNvbmNhdCh5KX1yZXR1cm4gbmV3IGQoaCl9c3RhdGljIGV4dGVuZChoKXtyZXR1cm57cHJvdmlkZTpkLHVzZUZhY3Rvcnk6dj0+ZC5jcmVhdGUoaCx2fHxSVCgpKSxkZXBzOltbZCxuZXcgTDQsbmV3IG1mXV19fWZpbmQoaCl7Y29uc3Qgdj10''@;'; put 'put ''aGlzLmZhY3Rvcmllcy5maW5kKHk9Pnkuc3VwcG9ydHMoaCkpO2lmKG51bGwhPXYpcmV0dXJuIHY7dGhyb3cgbmV3IGVuKDkwMSwhMSl9fXJldHVybiBkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQscHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTpSVH0pLGR9KSgpO2Z1bmN0aW9uIHFHKCl7cmV0''@;'; put 'put ''dXJuIG5ldyBFQyhbbmV3ICRHXSl9bGV0IEVDPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5mYWN0b3JpZXM9aH1zdGF0aWMgY3JlYXRlKGgsdil7aWYodil7Y29uc3QgeT12LmZhY3Rvcmllcy5zbGljZSgpO2g9aC5jb25jYXQoeSl9cmV0dXJuIG5ldyBkKGgpfXN0YXRpYyBl''@;'; put 'put ''eHRlbmQoaCl7cmV0dXJue3Byb3ZpZGU6ZCx1c2VGYWN0b3J5OnY9PmQuY3JlYXRlKGgsdnx8cUcoKSksZGVwczpbW2QsbmV3IEw0LG5ldyBtZl1dfX1maW5kKGgpe2NvbnN0IHY9dGhpcy5mYWN0b3JpZXMuZmluZCh5PT55LnN1cHBvcnRzKGgpKTtpZih2KXJldHVybiB2O3Rocm93IG5ldyBl''@;'; put 'put ''big5MDEsITEpfX1yZXR1cm4gZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6cUd9KSxkfSkoKTtjb25zdCBuVz1pRihudWxsLCJjb3JlIixbXSk7bGV0IEVyZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe319cmV0dXJuIGQuXHUwMjc1ZmFj''@;'; put 'put ''PWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koa0MpKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkfSkoKTtmdW5jdGlvbiBINihkKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBkP2Q6bnVsbCE9ZCYmImZhbHNlIiE9PWR9bGV0IG83PW51bGw7''@;'; put 'put ''ZnVuY3Rpb24gVWQoKXtyZXR1cm4gbzd9Y29uc3QgZ3M9bmV3IHplKCJEb2N1bWVudFRva2VuIik7bGV0IEJUPSgoKT0+e2NsYXNzIGR7aGlzdG9yeUdvKGgpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4g''@;'; put 'put ''bmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBvVygpe3JldHVybiBDaShhVyl9KCl9LHByb3ZpZGVkSW46InBsYXRmb3JtIn0pLGR9KSgpO2NvbnN0IFJyZT1uZXcgemUoIkxvY2F0aW9uIEluaXRpYWxpemVkIik7''@;'; put 'put ''bGV0IGFXPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBCVHtjb25zdHJ1Y3RvcihoKXtzdXBlcigpLHRoaXMuX2RvYz1oLHRoaXMuX2luaXQoKX1faW5pdCgpe3RoaXMubG9jYXRpb249d2luZG93LmxvY2F0aW9uLHRoaXMuX2hpc3Rvcnk9d2luZG93Lmhpc3Rvcnl9Z2V0QmFzZUhyZWZGcm9tRE9N''@;'; put 'put ''KCl7cmV0dXJuIFVkKCkuZ2V0QmFzZUhyZWYodGhpcy5fZG9jKX1vblBvcFN0YXRlKGgpe2NvbnN0IHY9VWQoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiB2LmFkZEV2ZW50TGlzdGVuZXIoInBvcHN0YXRlIixoLCExKSwoKT0+di5yZW1vdmVFdmVu''@;'; put 'put ''dExpc3RlbmVyKCJwb3BzdGF0ZSIsaCl9b25IYXNoQ2hhbmdlKGgpe2NvbnN0IHY9VWQoKS5nZXRHbG9iYWxFdmVudFRhcmdldCh0aGlzLl9kb2MsIndpbmRvdyIpO3JldHVybiB2LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGgsITEpLCgpPT52LnJlbW92ZUV2ZW50TGlzdGVuZXIo''@;'; put 'put ''Imhhc2hjaGFuZ2UiLGgpfWdldCBocmVmKCl7cmV0dXJuIHRoaXMubG9jYXRpb24uaHJlZn1nZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5wcm90b2NvbH1nZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5sb2NhdGlvbi5ob3N0bmFtZX1nZXQgcG9ydCgpe3JldHVybiB0aGlz''@;'; put 'put ''LmxvY2F0aW9uLnBvcnR9Z2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aG5hbWV9Z2V0IHNlYXJjaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLnNlYXJjaH1nZXQgaGFzaCgpe3JldHVybiB0aGlzLmxvY2F0aW9uLmhhc2h9c2V0IHBhdGhuYW1lKGgpe3RoaXMubG9jYXRp''@;'; put 'put ''b24ucGF0aG5hbWU9aH1wdXNoU3RhdGUoaCx2LHkpe2xXKCk/dGhpcy5faGlzdG9yeS5wdXNoU3RhdGUoaCx2LHkpOnRoaXMubG9jYXRpb24uaGFzaD15fXJlcGxhY2VTdGF0ZShoLHYseSl7bFcoKT90aGlzLl9oaXN0b3J5LnJlcGxhY2VTdGF0ZShoLHYseSk6dGhpcy5sb2NhdGlvbi5oYXNo''@;'; put 'put ''PXl9Zm9yd2FyZCgpe3RoaXMuX2hpc3RvcnkuZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9oaXN0b3J5LmJhY2soKX1oaXN0b3J5R28oaD0wKXt0aGlzLl9oaXN0b3J5LmdvKGgpfWdldFN0YXRlKCl7cmV0dXJuIHRoaXMuX2hpc3Rvcnkuc3RhdGV9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGdzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGRGKCl7cmV0dXJuIG5ldyBhVyhDaShncykpfSgpfSxwcm92aWRlZEluOiJwbGF0Zm9ybSJ9KSxkfSkoKTtmdW5jdGlvbiBsVygp''@;'; put 'put ''e3JldHVybiEhd2luZG93Lmhpc3RvcnkucHVzaFN0YXRlfWZ1bmN0aW9uIHJoKGQsZyl7aWYoMD09ZC5sZW5ndGgpcmV0dXJuIGc7aWYoMD09Zy5sZW5ndGgpcmV0dXJuIGQ7bGV0IGg9MDtyZXR1cm4gZC5lbmRzV2l0aCgiLyIpJiZoKyssZy5zdGFydHNXaXRoKCIvIikmJmgrKywyPT1oP2Qr''@;'; put 'put ''Zy5zdWJzdHJpbmcoMSk6MT09aD9kK2c6ZCsiLyIrZ31mdW5jdGlvbiBwRihkKXtjb25zdCBnPWQubWF0Y2goLyN8XD98JC8pLGg9ZyYmZy5pbmRleHx8ZC5sZW5ndGg7cmV0dXJuIGQuc2xpY2UoMCxoLSgiLyI9PT1kW2gtMV0/MTowKSkrZC5zbGljZShoKX1mdW5jdGlvbiBucChkKXtyZXR1''@;'; put 'put ''cm4gZCYmIj8iIT09ZFswXT8iPyIrZDpkfWxldCBONj0oKCk9PntjbGFzcyBke2hpc3RvcnlHbyhoKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tl''@;'; put 'put ''bjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gaDIodVcpfSxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0IHNXPW5ldyB6ZSgiYXBwQmFzZUhyZWYiKTtsZXQgdVc9KCgpPT57Y2xhc3MgZCBleHRlbmRzIE42e2NvbnN0cnVjdG9yKGgsdil7dmFyIHksQyxJO3N1cGVyKCksdGhp''@;'; put 'put ''cy5fcGxhdGZvcm1Mb2NhdGlvbj1oLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLHRoaXMuX2Jhc2VIcmVmPW51bGwhPT0oST1udWxsIT09KHk9bnVsbCE9dj92OnRoaXMuX3BsYXRmb3JtTG9jYXRpb24uZ2V0QmFzZUhyZWZGcm9tRE9NKCkpJiZ2b2lkIDAhPT15P3k6bnVsbD09PShDPWgy''@;'; put 'put ''KGdzKS5sb2NhdGlvbil8fHZvaWQgMD09PUM/dm9pZCAwOkMub3JpZ2luKSYmdm9pZCAwIT09ST9JOiIifW5nT25EZXN0cm95KCl7Zm9yKDt0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5sZW5ndGg7KXRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnBvcCgpKCl9b25Qb3BTdGF0ZShoKXt0aGlzLl9y''@;'; put 'put ''ZW1vdmVMaXN0ZW5lckZucy5wdXNoKHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25Qb3BTdGF0ZShoKSx0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uSGFzaENoYW5nZShoKSl9Z2V0QmFzZUhyZWYoKXtyZXR1cm4gdGhpcy5fYmFzZUhyZWZ9cHJlcGFyZUV4dGVybmFsVXJsKGgpe3JldHVybiBy''@;'; put 'put ''aCh0aGlzLl9iYXNlSHJlZixoKX1wYXRoKGg9ITEpe2NvbnN0IHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZStucCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnNlYXJjaCkseT10aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmhhc2g7cmV0dXJuIHkmJmg/YCR7dn0ke3l9YDp2fXB1c2hT''@;'; put 'put ''dGF0ZShoLHYseSxDKXtjb25zdCBJPXRoaXMucHJlcGFyZUV4dGVybmFsVXJsKHkrbnAoQykpO3RoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKGgsdixJKX1yZXBsYWNlU3RhdGUoaCx2LHksQyl7Y29uc3QgST10aGlzLnByZXBhcmVFeHRlcm5hbFVybCh5K25wKEMpKTt0aGlzLl9w''@;'; put 'put ''bGF0Zm9ybUxvY2F0aW9uLnJlcGxhY2VTdGF0ZShoLHYsSSl9Zm9yd2FyZCgpe3RoaXMuX3BsYXRmb3JtTG9jYXRpb24uZm9yd2FyZCgpfWJhY2soKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmJhY2soKX1nZXRTdGF0ZSgpe3JldHVybiB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmdldFN0YXRl''@;'; put 'put ''KCl9aGlzdG9yeUdvKGg9MCl7dmFyIHYseTtudWxsPT09KHk9KHY9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbikuaGlzdG9yeUdvKXx8dm9pZCAwPT09eXx8eS5jYWxsKHYsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEJUKSxDaShzVyw4KSl9''@;'; put 'put ''LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksQnJlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBONntjb25zdHJ1Y3RvcihoLHYpe3N1cGVyKCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbj1oLHRoaXMuX2Jhc2VIcmVm''@;'; put 'put ''PSIiLHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zPVtdLG51bGwhPXYmJih0aGlzLl9iYXNlSHJlZj12KX1uZ09uRGVzdHJveSgpe2Zvcig7dGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoOyl0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSgpfW9uUG9wU3RhdGUoaCl7dGhpcy5fcmVt''@;'; put 'put ''b3ZlTGlzdGVuZXJGbnMucHVzaCh0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uUG9wU3RhdGUoaCksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vbkhhc2hDaGFuZ2UoaCkpfWdldEJhc2VIcmVmKCl7cmV0dXJuIHRoaXMuX2Jhc2VIcmVmfXBhdGgoaD0hMSl7bGV0IHY9dGhpcy5fcGxhdGZvcm1M''@;'; put 'put ''b2NhdGlvbi5oYXNoO3JldHVybiBudWxsPT12JiYodj0iIyIpLHYubGVuZ3RoPjA/di5zdWJzdHJpbmcoMSk6dn1wcmVwYXJlRXh0ZXJuYWxVcmwoaCl7Y29uc3Qgdj1yaCh0aGlzLl9iYXNlSHJlZixoKTtyZXR1cm4gdi5sZW5ndGg+MD8iIyIrdjp2fXB1c2hTdGF0ZShoLHYseSxDKXtsZXQg''@;'; put 'put ''ST10aGlzLnByZXBhcmVFeHRlcm5hbFVybCh5K25wKEMpKTswPT1JLmxlbmd0aCYmKEk9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wdXNoU3RhdGUoaCx2LEkpfXJlcGxhY2VTdGF0ZShoLHYseSxDKXtsZXQgST10aGlzLnByZXBhcmVF''@;'; put 'put ''eHRlcm5hbFVybCh5K25wKEMpKTswPT1JLmxlbmd0aCYmKEk9dGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZSksdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUoaCx2LEkpfWZvcndhcmQoKXt0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKX1iYWNrKCl7dGhp''@;'; put 'put ''cy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRTdGF0ZSgpfWhpc3RvcnlHbyhoPTApe3ZhciB2LHk7bnVsbD09PSh5PSh2PXRoaXMuX3BsYXRmb3JtTG9jYXRpb24pLmhpc3RvcnlHbyl8fHZvaWQgMD09PXl8fHku''@;'; put 'put ''Y2FsbCh2LGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShCVCksQ2koc1csOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFY2PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhp''@;'; put 'put ''cy5fc3ViamVjdD1uZXcgYXIsdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj1udWxsLHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3k9aDtjb25zdCB2PXRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kuZ2V0QmFzZUhyZWYoKTt0aGlzLl9iYXNlSHJlZj1w''@;'; put 'put ''RihUQyh2KSksdGhpcy5fbG9jYXRpb25TdHJhdGVneS5vblBvcFN0YXRlKHk9Pnt0aGlzLl9zdWJqZWN0LmVtaXQoe3VybDp0aGlzLnBhdGgoITApLHBvcDohMCxzdGF0ZTp5LnN0YXRlLHR5cGU6eS50eXBlfSl9KX1uZ09uRGVzdHJveSgpe3ZhciBoO251bGw9PT0oaD10aGlzLl91cmxDaGFu''@;'; put 'put ''Z2VTdWJzY3JpcHRpb24pfHx2b2lkIDA9PT1ofHxoLnVuc3Vic2NyaWJlKCksdGhpcy5fdXJsQ2hhbmdlTGlzdGVuZXJzPVtdfXBhdGgoaD0hMSl7cmV0dXJuIHRoaXMubm9ybWFsaXplKHRoaXMuX2xvY2F0aW9uU3RyYXRlZ3kucGF0aChoKSl9Z2V0U3RhdGUoKXtyZXR1cm4gdGhpcy5fbG9j''@;'; put 'put ''YXRpb25TdHJhdGVneS5nZXRTdGF0ZSgpfWlzQ3VycmVudFBhdGhFcXVhbFRvKGgsdj0iIil7cmV0dXJuIHRoaXMucGF0aCgpPT10aGlzLm5vcm1hbGl6ZShoK25wKHYpKX1ub3JtYWxpemUoaCl7cmV0dXJuIGQuc3RyaXBUcmFpbGluZ1NsYXNoKGZ1bmN0aW9uIGZXKGQsZyl7cmV0dXJuIGQm''@;'; put 'put ''Jmcuc3RhcnRzV2l0aChkKT9nLnN1YnN0cmluZyhkLmxlbmd0aCk6Z30odGhpcy5fYmFzZUhyZWYsVEMoaCkpKX1wcmVwYXJlRXh0ZXJuYWxVcmwoaCl7cmV0dXJuIGgmJiIvIiE9PWhbMF0mJihoPSIvIitoKSx0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnByZXBhcmVFeHRlcm5hbFVybChoKX1n''@;'; put 'put ''byhoLHY9IiIseT1udWxsKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LnB1c2hTdGF0ZSh5LCIiLGgsdiksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGgrbnAodikpLHkpfXJlcGxhY2VTdGF0ZShoLHY9IiIseT1udWxsKXt0aGlzLl9sb2Nh''@;'; put 'put ''dGlvblN0cmF0ZWd5LnJlcGxhY2VTdGF0ZSh5LCIiLGgsdiksdGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKGgrbnAodikpLHkpfWZvcndhcmQoKXt0aGlzLl9sb2NhdGlvblN0cmF0ZWd5LmZvcndhcmQoKX1iYWNrKCl7dGhpcy5fbG9jYXRp''@;'; put 'put ''b25TdHJhdGVneS5iYWNrKCl9aGlzdG9yeUdvKGg9MCl7dmFyIHYseTtudWxsPT09KHk9KHY9dGhpcy5fbG9jYXRpb25TdHJhdGVneSkuaGlzdG9yeUdvKXx8dm9pZCAwPT09eXx8eS5jYWxsKHYsaCl9b25VcmxDaGFuZ2UoaCl7cmV0dXJuIHRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5wdXNo''@;'; put 'put ''KGgpLHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbnx8KHRoaXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj10aGlzLnN1YnNjcmliZSh2PT57dGhpcy5fbm90aWZ5VXJsQ2hhbmdlTGlzdGVuZXJzKHYudXJsLHYuc3RhdGUpfSkpLCgpPT57dmFyIHY7Y29uc3QgeT10aGlzLl91cmxDaGFuZ2VM''@;'; put 'put ''aXN0ZW5lcnMuaW5kZXhPZihoKTt0aGlzLl91cmxDaGFuZ2VMaXN0ZW5lcnMuc3BsaWNlKHksMSksMD09PXRoaXMuX3VybENoYW5nZUxpc3RlbmVycy5sZW5ndGgmJihudWxsPT09KHY9dGhpcy5fdXJsQ2hhbmdlU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09dnx8di51bnN1YnNjcmliZSgpLHRo''@;'; put 'put ''aXMuX3VybENoYW5nZVN1YnNjcmlwdGlvbj1udWxsKX19X25vdGlmeVVybENoYW5nZUxpc3RlbmVycyhoPSIiLHYpe3RoaXMuX3VybENoYW5nZUxpc3RlbmVycy5mb3JFYWNoKHk9PnkoaCx2KSl9c3Vic2NyaWJlKGgsdix5KXtyZXR1cm4gdGhpcy5fc3ViamVjdC5zdWJzY3JpYmUoe25leHQ6''@;'; put 'put ''aCxlcnJvcjp2LGNvbXBsZXRlOnl9KX19cmV0dXJuIGQubm9ybWFsaXplUXVlcnlQYXJhbXM9bnAsZC5qb2luV2l0aFNsYXNoPXJoLGQuc3RyaXBUcmFpbGluZ1NsYXNoPXBGLGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koTjYpKX0sZC5cdTAyNzVwcm92PUFp''@;'; put 'put ''KHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gY1coKXtyZXR1cm4gbmV3IFY2KENpKE42KSl9KCl9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCk7ZnVuY3Rpb24gVEMoZCl7cmV0dXJuIGQucmVwbGFjZSgvXC9pbmRleC5odG1sJC8sIiIpfXZhciBOMj0oKCk9''@;'; put 'put ''PigoTjI9TjJ8fHt9KVtOMi5Gb3JtYXQ9MF09IkZvcm1hdCIsTjJbTjIuU3RhbmRhbG9uZT0xXT0iU3RhbmRhbG9uZSIsTjIpKSgpLENsPSgoKT0+KChDbD1DbHx8e30pW0NsLk5hcnJvdz0wXT0iTmFycm93IixDbFtDbC5BYmJyZXZpYXRlZD0xXT0iQWJicmV2aWF0ZWQiLENsW0NsLldpZGU9''@;'; put 'put ''Ml09IldpZGUiLENsW0NsLlNob3J0PTNdPSJTaG9ydCIsQ2wpKSgpLHAxPSgoKT0+KChwMT1wMXx8e30pW3AxLlNob3J0PTBdPSJTaG9ydCIscDFbcDEuTWVkaXVtPTFdPSJNZWRpdW0iLHAxW3AxLkxvbmc9Ml09IkxvbmciLHAxW3AxLkZ1bGw9M109IkZ1bGwiLHAxKSkoKTtmdW5jdGlvbiBy''@;'; put 'put ''cChkLGcsaCl7Y29uc3Qgdj1yYyhkKSxDPUczKFt2W01vLkRheXNGb3JtYXRdLHZbTW8uRGF5c1N0YW5kYWxvbmVdXSxnKTtyZXR1cm4gRzMoQyxoKX1mdW5jdGlvbiBQVChkLGcsaCl7Y29uc3Qgdj1yYyhkKSxDPUczKFt2W01vLk1vbnRoc0Zvcm1hdF0sdltNby5Nb250aHNTdGFuZGFsb25l''@;'; put 'put ''XV0sZyk7cmV0dXJuIEczKEMsaCl9ZnVuY3Rpb24gRzMoZCxnKXtmb3IobGV0IGg9ZztoPi0xO2gtLSlpZih2b2lkIDAhPT1kW2hdKXJldHVybiBkW2hdO3Rocm93IG5ldyBFcnJvcigiTG9jYWxlIGRhdGEgQVBJOiBsb2NhbGUgZGF0YSB1bmRlZmluZWQiKX1mdW5jdGlvbiBiVyhkLGcpe2c9''@;'; put 'put ''ZW5jb2RlVVJJQ29tcG9uZW50KGcpO2Zvcihjb25zdCBoIG9mIGQuc3BsaXQoIjsiKSl7Y29uc3Qgdj1oLmluZGV4T2YoIj0iKSxbeSxDXT0tMT09dj9baCwiIl06W2guc2xpY2UoMCx2KSxoLnNsaWNlKHYrMSldO2lmKHkudHJpbSgpPT09ZylyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KEMp''@;'; put 'put ''fXJldHVybiBudWxsfWxldCBsYz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuX2l0ZXJhYmxlRGlmZmVycz1oLHRoaXMuX2tleVZhbHVlRGlmZmVycz12LHRoaXMuX25nRWw9eSx0aGlzLl9yZW5kZXJlcj1DLHRoaXMuX2l0ZXJhYmxlRGlmZmVyPW51bGwsdGhpcy5f''@;'; put 'put ''a2V5VmFsdWVEaWZmZXI9bnVsbCx0aGlzLl9pbml0aWFsQ2xhc3Nlcz1bXSx0aGlzLl9yYXdDbGFzcz1udWxsfXNldCBrbGFzcyhoKXt0aGlzLl9yZW1vdmVDbGFzc2VzKHRoaXMuX2luaXRpYWxDbGFzc2VzKSx0aGlzLl9pbml0aWFsQ2xhc3Nlcz0ic3RyaW5nIj09dHlwZW9mIGg/aC5zcGxp''@;'; put 'put ''dCgvXHMrLyk6W10sdGhpcy5fYXBwbHlDbGFzc2VzKHRoaXMuX2luaXRpYWxDbGFzc2VzKSx0aGlzLl9hcHBseUNsYXNzZXModGhpcy5fcmF3Q2xhc3MpfXNldCBuZ0NsYXNzKGgpe3RoaXMuX3JlbW92ZUNsYXNzZXModGhpcy5fcmF3Q2xhc3MpLHRoaXMuX2FwcGx5Q2xhc3Nlcyh0aGlzLl9p''@;'; put 'put ''bml0aWFsQ2xhc3NlcyksdGhpcy5faXRlcmFibGVEaWZmZXI9bnVsbCx0aGlzLl9rZXlWYWx1ZURpZmZlcj1udWxsLHRoaXMuX3Jhd0NsYXNzPSJzdHJpbmciPT10eXBlb2YgaD9oLnNwbGl0KC9ccysvKTpoLHRoaXMuX3Jhd0NsYXNzJiYoUGQodGhpcy5fcmF3Q2xhc3MpP3RoaXMuX2l0ZXJh''@;'; put 'put ''YmxlRGlmZmVyPXRoaXMuX2l0ZXJhYmxlRGlmZmVycy5maW5kKHRoaXMuX3Jhd0NsYXNzKS5jcmVhdGUoKTp0aGlzLl9rZXlWYWx1ZURpZmZlcj10aGlzLl9rZXlWYWx1ZURpZmZlcnMuZmluZCh0aGlzLl9yYXdDbGFzcykuY3JlYXRlKCkpfW5nRG9DaGVjaygpe2lmKHRoaXMuX2l0ZXJhYmxl''@;'; put 'put ''RGlmZmVyKXtjb25zdCBoPXRoaXMuX2l0ZXJhYmxlRGlmZmVyLmRpZmYodGhpcy5fcmF3Q2xhc3MpO2gmJnRoaXMuX2FwcGx5SXRlcmFibGVDaGFuZ2VzKGgpfWVsc2UgaWYodGhpcy5fa2V5VmFsdWVEaWZmZXIpe2NvbnN0IGg9dGhpcy5fa2V5VmFsdWVEaWZmZXIuZGlmZih0aGlzLl9yYXdD''@;'; put 'put ''bGFzcyk7aCYmdGhpcy5fYXBwbHlLZXlWYWx1ZUNoYW5nZXMoaCl9fV9hcHBseUtleVZhbHVlQ2hhbmdlcyhoKXtoLmZvckVhY2hBZGRlZEl0ZW0odj0+dGhpcy5fdG9nZ2xlQ2xhc3Modi5rZXksdi5jdXJyZW50VmFsdWUpKSxoLmZvckVhY2hDaGFuZ2VkSXRlbSh2PT50aGlzLl90b2dnbGVD''@;'; put 'put ''bGFzcyh2LmtleSx2LmN1cnJlbnRWYWx1ZSkpLGguZm9yRWFjaFJlbW92ZWRJdGVtKHY9Pnt2LnByZXZpb3VzVmFsdWUmJnRoaXMuX3RvZ2dsZUNsYXNzKHYua2V5LCExKX0pfV9hcHBseUl0ZXJhYmxlQ2hhbmdlcyhoKXtoLmZvckVhY2hBZGRlZEl0ZW0odj0+e2lmKCJzdHJpbmciIT10eXBl''@;'; put 'put ''b2Ygdi5pdGVtKXRocm93IG5ldyBFcnJvcihgTmdDbGFzcyBjYW4gb25seSB0b2dnbGUgQ1NTIGNsYXNzZXMgZXhwcmVzc2VkIGFzIHN0cmluZ3MsIGdvdCAke21uKHYuaXRlbSl9YCk7dGhpcy5fdG9nZ2xlQ2xhc3Modi5pdGVtLCEwKX0pLGguZm9yRWFjaFJlbW92ZWRJdGVtKHY9PnRoaXMu''@;'; put 'put ''X3RvZ2dsZUNsYXNzKHYuaXRlbSwhMSkpfV9hcHBseUNsYXNzZXMoaCl7aCYmKEFycmF5LmlzQXJyYXkoaCl8fGggaW5zdGFuY2VvZiBTZXQ/aC5mb3JFYWNoKHY9PnRoaXMuX3RvZ2dsZUNsYXNzKHYsITApKTpPYmplY3Qua2V5cyhoKS5mb3JFYWNoKHY9PnRoaXMuX3RvZ2dsZUNsYXNzKHYs''@;'; put 'put ''ISFoW3ZdKSkpfV9yZW1vdmVDbGFzc2VzKGgpe2gmJihBcnJheS5pc0FycmF5KGgpfHxoIGluc3RhbmNlb2YgU2V0P2guZm9yRWFjaCh2PT50aGlzLl90b2dnbGVDbGFzcyh2LCExKSk6T2JqZWN0LmtleXMoaCkuZm9yRWFjaCh2PT50aGlzLl90b2dnbGVDbGFzcyh2LCExKSkpfV90b2dnbGVD''@;'; put 'put ''bGFzcyhoLHYpeyhoPWgudHJpbSgpKSYmaC5zcGxpdCgvXHMrL2cpLmZvckVhY2goeT0+e3Y/dGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fbmdFbC5uYXRpdmVFbGVtZW50LHkpOnRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuX25nRWwubmF0aXZlRWxlbWVudCx5KX0pfX1y''@;'; put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChQQSksS3QoRUMpLEt0KGJvKSxLdChHYSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ0NsYXNzIiwiIl1dLGlucHV0czp7a2xhc3M6WyJjbGFzcyIsImtsYXNzIl0sbmdD''@;'; put 'put ''bGFzczoibmdDbGFzcyJ9LHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtjbGFzcyBlaWV7Y29uc3RydWN0b3IoZyxoLHYseSl7dGhpcy4kaW1wbGljaXQ9Zyx0aGlzLm5nRm9yT2Y9aCx0aGlzLmluZGV4PXYsdGhpcy5jb3VudD15fWdldCBmaXJzdCgpe3JldHVybiAwPT09dGhpcy5pbmRleH1nZXQg''@;'; put 'put ''bGFzdCgpe3JldHVybiB0aGlzLmluZGV4PT09dGhpcy5jb3VudC0xfWdldCBldmVuKCl7cmV0dXJuIHRoaXMuaW5kZXglMj09MH1nZXQgb2RkKCl7cmV0dXJuIXRoaXMuZXZlbn19bGV0IHhzPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX3ZpZXdDb250YWluZXI9aCx0''@;'; put 'put ''aGlzLl90ZW1wbGF0ZT12LHRoaXMuX2RpZmZlcnM9eSx0aGlzLl9uZ0Zvck9mPW51bGwsdGhpcy5fbmdGb3JPZkRpcnR5PSEwLHRoaXMuX2RpZmZlcj1udWxsfXNldCBuZ0Zvck9mKGgpe3RoaXMuX25nRm9yT2Y9aCx0aGlzLl9uZ0Zvck9mRGlydHk9ITB9c2V0IG5nRm9yVHJhY2tCeShoKXt0''@;'; put 'put ''aGlzLl90cmFja0J5Rm49aH1nZXQgbmdGb3JUcmFja0J5KCl7cmV0dXJuIHRoaXMuX3RyYWNrQnlGbn1zZXQgbmdGb3JUZW1wbGF0ZShoKXtoJiYodGhpcy5fdGVtcGxhdGU9aCl9bmdEb0NoZWNrKCl7aWYodGhpcy5fbmdGb3JPZkRpcnR5KXt0aGlzLl9uZ0Zvck9mRGlydHk9ITE7Y29uc3Qg''@;'; put 'put ''aD10aGlzLl9uZ0Zvck9mOyF0aGlzLl9kaWZmZXImJmgmJih0aGlzLl9kaWZmZXI9dGhpcy5fZGlmZmVycy5maW5kKGgpLmNyZWF0ZSh0aGlzLm5nRm9yVHJhY2tCeSkpfWlmKHRoaXMuX2RpZmZlcil7Y29uc3QgaD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ0Zvck9mKTtoJiZ0aGlzLl9h''@;'; put 'put ''cHBseUNoYW5nZXMoaCl9fV9hcHBseUNoYW5nZXMoaCl7Y29uc3Qgdj10aGlzLl92aWV3Q29udGFpbmVyO2guZm9yRWFjaE9wZXJhdGlvbigoeSxDLEkpPT57aWYobnVsbD09eS5wcmV2aW91c0luZGV4KXYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RlbXBsYXRlLG5ldyBlaWUoeS5pdGVt''@;'; put 'put ''LHRoaXMuX25nRm9yT2YsLTEsLTEpLG51bGw9PT1JP3ZvaWQgMDpJKTtlbHNlIGlmKG51bGw9PUkpdi5yZW1vdmUobnVsbD09PUM/dm9pZCAwOkMpO2Vsc2UgaWYobnVsbCE9PUMpe2NvbnN0IFo9di5nZXQoQyk7di5tb3ZlKFosSSksa1coWix5KX19KTtmb3IobGV0IHk9MCxDPXYubGVuZ3Ro''@;'; put 'put ''O3k8Qzt5Kyspe2NvbnN0IFo9di5nZXQoeSkuY29udGV4dDtaLmluZGV4PXksWi5jb3VudD1DLFoubmdGb3JPZj10aGlzLl9uZ0Zvck9mfWguZm9yRWFjaElkZW50aXR5Q2hhbmdlKHk9PntrVyh2LmdldCh5LmN1cnJlbnRJbmRleCkseSl9KX1zdGF0aWMgbmdUZW1wbGF0ZUNvbnRleHRHdWFy''@;'; put 'put ''ZChoLHYpe3JldHVybiEwfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSksS3QocXIpLEt0KFBBKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nRm9yIiwiIiwibmdGb3JPZiIsIiJdXSxpbnB1dHM6e25nRm9y''@;'; put 'put ''T2Y6Im5nRm9yT2YiLG5nRm9yVHJhY2tCeToibmdGb3JUcmFja0J5IixuZ0ZvclRlbXBsYXRlOiJuZ0ZvclRlbXBsYXRlIn0sc3RhbmRhbG9uZTohMH0pLGR9KSgpO2Z1bmN0aW9uIGtXKGQsZyl7ZC5jb250ZXh0LiRpbXBsaWNpdD1nLml0ZW19bGV0IE5vPSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; put 'put ''dWN0b3IoaCx2KXt0aGlzLl92aWV3Q29udGFpbmVyPWgsdGhpcy5fY29udGV4dD1uZXcgbmllLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZj1udWxsLHRoaXMuX2Vsc2VUZW1wbGF0ZVJlZj1udWxsLHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl90aGVu''@;'; put 'put ''VGVtcGxhdGVSZWY9dn1zZXQgbmdJZihoKXt0aGlzLl9jb250ZXh0LiRpbXBsaWNpdD10aGlzLl9jb250ZXh0Lm5nSWY9aCx0aGlzLl91cGRhdGVWaWV3KCl9c2V0IG5nSWZUaGVuKGgpe1NXKCJuZ0lmVGhlbiIsaCksdGhpcy5fdGhlblRlbXBsYXRlUmVmPWgsdGhpcy5fdGhlblZpZXdSZWY9''@;'; put 'put ''bnVsbCx0aGlzLl91cGRhdGVWaWV3KCl9c2V0IG5nSWZFbHNlKGgpe1NXKCJuZ0lmRWxzZSIsaCksdGhpcy5fZWxzZVRlbXBsYXRlUmVmPWgsdGhpcy5fZWxzZVZpZXdSZWY9bnVsbCx0aGlzLl91cGRhdGVWaWV3KCl9X3VwZGF0ZVZpZXcoKXt0aGlzLl9jb250ZXh0LiRpbXBsaWNpdD90aGlz''@;'; put 'put ''Ll90aGVuVmlld1JlZnx8KHRoaXMuX3ZpZXdDb250YWluZXIuY2xlYXIoKSx0aGlzLl9lbHNlVmlld1JlZj1udWxsLHRoaXMuX3RoZW5UZW1wbGF0ZVJlZiYmKHRoaXMuX3RoZW5WaWV3UmVmPXRoaXMuX3ZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RoZW5UZW1wbGF0''@;'; put 'put ''ZVJlZix0aGlzLl9jb250ZXh0KSkpOnRoaXMuX2Vsc2VWaWV3UmVmfHwodGhpcy5fdmlld0NvbnRhaW5lci5jbGVhcigpLHRoaXMuX3RoZW5WaWV3UmVmPW51bGwsdGhpcy5fZWxzZVRlbXBsYXRlUmVmJiYodGhpcy5fZWxzZVZpZXdSZWY9dGhpcy5fdmlld0NvbnRhaW5lci5jcmVhdGVFbWJl''@;'; put 'put ''ZGRlZFZpZXcodGhpcy5fZWxzZVRlbXBsYXRlUmVmLHRoaXMuX2NvbnRleHQpKSl9c3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQoaCx2KXtyZXR1cm4hMH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KHFyKSl9LGQuXHUwMjc1''@;'; put 'put ''ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nSWYiLCIiXV0saW5wdXRzOntuZ0lmOiJuZ0lmIixuZ0lmVGhlbjoibmdJZlRoZW4iLG5nSWZFbHNlOiJuZ0lmRWxzZSJ9LHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtjbGFzcyBuaWV7Y29uc3RydWN0b3IoKXt0aGlzLiRpbXBsaWNpdD1u''@;'; put 'put ''dWxsLHRoaXMubmdJZj1udWxsfX1mdW5jdGlvbiBTVyhkLGcpe2lmKGcmJiFnLmNyZWF0ZUVtYmVkZGVkVmlldyl0aHJvdyBuZXcgRXJyb3IoYCR7ZH0gbXVzdCBiZSBhIFRlbXBsYXRlUmVmLCBidXQgcmVjZWl2ZWQgJyR7bW4oZyl9Jy5gKX1jbGFzcyBNRntjb25zdHJ1Y3RvcihnLGgpe3Ro''@;'; put 'put ''aXMuX3ZpZXdDb250YWluZXJSZWY9Zyx0aGlzLl90ZW1wbGF0ZVJlZj1oLHRoaXMuX2NyZWF0ZWQ9ITF9Y3JlYXRlKCl7dGhpcy5fY3JlYXRlZD0hMCx0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZil9ZGVzdHJveSgpe3RoaXMuX2Ny''@;'; put 'put ''ZWF0ZWQ9ITEsdGhpcy5fdmlld0NvbnRhaW5lclJlZi5jbGVhcigpfWVuZm9yY2VTdGF0ZShnKXtnJiYhdGhpcy5fY3JlYXRlZD90aGlzLmNyZWF0ZSgpOiFnJiZ0aGlzLl9jcmVhdGVkJiZ0aGlzLmRlc3Ryb3koKX19bGV0IEpkPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9k''@;'; put 'put ''ZWZhdWx0VXNlZD0hMSx0aGlzLl9jYXNlQ291bnQ9MCx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9MCx0aGlzLl9sYXN0Q2FzZXNNYXRjaGVkPSExfXNldCBuZ1N3aXRjaChoKXt0aGlzLl9uZ1N3aXRjaD1oLDA9PT10aGlzLl9jYXNlQ291bnQmJnRoaXMuX3VwZGF0ZURlZmF1bHRDYXNlcygh''@;'; put 'put ''MCl9X2FkZENhc2UoKXtyZXR1cm4gdGhpcy5fY2FzZUNvdW50Kyt9X2FkZERlZmF1bHQoaCl7dGhpcy5fZGVmYXVsdFZpZXdzfHwodGhpcy5fZGVmYXVsdFZpZXdzPVtdKSx0aGlzLl9kZWZhdWx0Vmlld3MucHVzaChoKX1fbWF0Y2hDYXNlKGgpe2NvbnN0IHY9aD09dGhpcy5fbmdTd2l0Y2g7''@;'; put 'put ''cmV0dXJuIHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9dGhpcy5fbGFzdENhc2VzTWF0Y2hlZHx8dix0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXgrKyx0aGlzLl9sYXN0Q2FzZUNoZWNrSW5kZXg9PT10aGlzLl9jYXNlQ291bnQmJih0aGlzLl91cGRhdGVEZWZhdWx0Q2FzZXMoIXRoaXMuX2xhc3RD''@;'; put 'put ''YXNlc01hdGNoZWQpLHRoaXMuX2xhc3RDYXNlQ2hlY2tJbmRleD0wLHRoaXMuX2xhc3RDYXNlc01hdGNoZWQ9ITEpLHZ9X3VwZGF0ZURlZmF1bHRDYXNlcyhoKXtpZih0aGlzLl9kZWZhdWx0Vmlld3MmJmghPT10aGlzLl9kZWZhdWx0VXNlZCl7dGhpcy5fZGVmYXVsdFVzZWQ9aDtmb3IobGV0''@;'; put 'put ''IHY9MDt2PHRoaXMuX2RlZmF1bHRWaWV3cy5sZW5ndGg7disrKXRoaXMuX2RlZmF1bHRWaWV3c1t2XS5lbmZvcmNlU3RhdGUoaCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwi''@;'; put 'put ''bmdTd2l0Y2giLCIiXV0saW5wdXRzOntuZ1N3aXRjaDoibmdTd2l0Y2gifSxzdGFuZGFsb25lOiEwfSksZH0pKCksaXA9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5uZ1N3aXRjaD15LHkuX2FkZENhc2UoKSx0aGlzLl92aWV3PW5ldyBNRihoLHYpfW5nRG9DaGVjaygp''@;'; put 'put ''e3RoaXMuX3ZpZXcuZW5mb3JjZVN0YXRlKHRoaXMubmdTd2l0Y2guX21hdGNoQ2FzZSh0aGlzLm5nU3dpdGNoQ2FzZSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSksS3QocXIpLEt0KEpkLDkpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6''@;'; put 'put ''ZCxzZWxlY3RvcnM6W1siIiwibmdTd2l0Y2hDYXNlIiwiIl1dLGlucHV0czp7bmdTd2l0Y2hDYXNlOiJuZ1N3aXRjaENhc2UifSxzdGFuZGFsb25lOiEwfSksZH0pKCksRVc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5fbmdFbD1oLHRoaXMuX2RpZmZlcnM9dix0aGlz''@;'; put 'put ''Ll9yZW5kZXJlcj15LHRoaXMuX25nU3R5bGU9bnVsbCx0aGlzLl9kaWZmZXI9bnVsbH1zZXQgbmdTdHlsZShoKXt0aGlzLl9uZ1N0eWxlPWgsIXRoaXMuX2RpZmZlciYmaCYmKHRoaXMuX2RpZmZlcj10aGlzLl9kaWZmZXJzLmZpbmQoaCkuY3JlYXRlKCkpfW5nRG9DaGVjaygpe2lmKHRoaXMu''@;'; put 'put ''X2RpZmZlcil7Y29uc3QgaD10aGlzLl9kaWZmZXIuZGlmZih0aGlzLl9uZ1N0eWxlKTtoJiZ0aGlzLl9hcHBseUNoYW5nZXMoaCl9fV9zZXRTdHlsZShoLHYpe2NvbnN0W3ksQ109aC5zcGxpdCgiLiIpLEk9LTE9PT15LmluZGV4T2YoIi0iKT92b2lkIDA6ZnUuRGFzaENhc2U7bnVsbCE9dj90''@;'; put 'put ''aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQseSxDP2Ake3Z9JHtDfWA6dixJKTp0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLl9uZ0VsLm5hdGl2ZUVsZW1lbnQseSxJKX1fYXBwbHlDaGFuZ2VzKGgpe2guZm9yRWFjaFJlbW92ZWRJdGVtKHY9''@;'; put 'put ''PnRoaXMuX3NldFN0eWxlKHYua2V5LG51bGwpKSxoLmZvckVhY2hBZGRlZEl0ZW0odj0+dGhpcy5fc2V0U3R5bGUodi5rZXksdi5jdXJyZW50VmFsdWUpKSxoLmZvckVhY2hDaGFuZ2VkSXRlbSh2PT50aGlzLl9zZXRTdHlsZSh2LmtleSx2LmN1cnJlbnRWYWx1ZSkpfX1yZXR1cm4gZC5cdTAy''@;'; put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3QoRUMpLEt0KEdhKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nU3R5bGUiLCIiXV0saW5wdXRzOntuZ1N0eWxlOiJuZ1N0eWxlIn0sc3RhbmRhbG9uZTohMH0pLGR9KSgpLFhkPSgo''@;'; put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fdmlld0NvbnRhaW5lclJlZj1oLHRoaXMuX3ZpZXdSZWY9bnVsbCx0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0PW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0PW51bGwsdGhpcy5uZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I9bnVs''@;'; put 'put ''bH1uZ09uQ2hhbmdlcyhoKXtpZihoLm5nVGVtcGxhdGVPdXRsZXR8fGgubmdUZW1wbGF0ZU91dGxldEluamVjdG9yKXtjb25zdCB2PXRoaXMuX3ZpZXdDb250YWluZXJSZWY7aWYodGhpcy5fdmlld1JlZiYmdi5yZW1vdmUodi5pbmRleE9mKHRoaXMuX3ZpZXdSZWYpKSx0aGlzLm5nVGVtcGxh''@;'; put 'put ''dGVPdXRsZXQpe2NvbnN0e25nVGVtcGxhdGVPdXRsZXQ6eSxuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dDpDLG5nVGVtcGxhdGVPdXRsZXRJbmplY3RvcjpJfT10aGlzO3RoaXMuX3ZpZXdSZWY9di5jcmVhdGVFbWJlZGRlZFZpZXcoeSxDLEk/e2luamVjdG9yOkl9OnZvaWQgMCl9ZWxzZSB0aGlz''@;'; put 'put ''Ll92aWV3UmVmPW51bGx9ZWxzZSB0aGlzLl92aWV3UmVmJiZoLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiZ0aGlzLm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0JiYodGhpcy5fdmlld1JlZi5jb250ZXh0PXRoaXMubmdUZW1wbGF0ZU91dGxldENvbnRleHQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ1RlbXBsYXRlT3V0bGV0IiwiIl1dLGlucHV0czp7bmdUZW1wbGF0ZU91dGxldENvbnRleHQ6Im5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixuZ1RlbXBs''@;'; put 'put ''YXRlT3V0bGV0OiJuZ1RlbXBsYXRlT3V0bGV0IixuZ1RlbXBsYXRlT3V0bGV0SW5qZWN0b3I6Im5nVGVtcGxhdGVPdXRsZXRJbmplY3RvciJ9LHN0YW5kYWxvbmU6ITAsZmVhdHVyZXM6W0QyXX0pLGR9KSgpO2NsYXNzIHpUe2NyZWF0ZVN1YnNjcmlwdGlvbihnLGgpe3JldHVybiBnLnN1YnNj''@;'; put 'put ''cmliZSh7bmV4dDpoLGVycm9yOnY9Pnt0aHJvdyB2fX0pfWRpc3Bvc2UoZyl7Zy51bnN1YnNjcmliZSgpfX1jbGFzcyBOQ3tjcmVhdGVTdWJzY3JpcHRpb24oZyxoKXtyZXR1cm4gZy50aGVuKGgsdj0+e3Rocm93IHZ9KX1kaXNwb3NlKGcpe319Y29uc3QgVkM9bmV3IE5DLEI1PW5ldyB6VDts''@;'; put 'put ''ZXQgV2g9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9sYXRlc3RWYWx1ZT1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbj1udWxsLHRoaXMuX29iaj1udWxsLHRoaXMuX3N0cmF0ZWd5PW51bGwsdGhpcy5fcmVmPWh9bmdPbkRlc3Ryb3koKXt0aGlzLl9zdWJzY3JpcHRpb24mJnRo''@;'; put 'put ''aXMuX2Rpc3Bvc2UoKSx0aGlzLl9yZWY9bnVsbH10cmFuc2Zvcm0oaCl7cmV0dXJuIHRoaXMuX29iaj9oIT09dGhpcy5fb2JqPyh0aGlzLl9kaXNwb3NlKCksdGhpcy50cmFuc2Zvcm0oaCkpOnRoaXMuX2xhdGVzdFZhbHVlOihoJiZ0aGlzLl9zdWJzY3JpYmUoaCksdGhpcy5fbGF0ZXN0VmFs''@;'; put 'put ''dWUpfV9zdWJzY3JpYmUoaCl7dGhpcy5fb2JqPWgsdGhpcy5fc3RyYXRlZ3k9dGhpcy5fc2VsZWN0U3RyYXRlZ3koaCksdGhpcy5fc3Vic2NyaXB0aW9uPXRoaXMuX3N0cmF0ZWd5LmNyZWF0ZVN1YnNjcmlwdGlvbihoLHY9PnRoaXMuX3VwZGF0ZUxhdGVzdFZhbHVlKGgsdikpfV9zZWxlY3RT''@;'; put 'put ''dHJhdGVneShoKXtpZihWbShoKSlyZXR1cm4gVkM7aWYoU3goaCkpcmV0dXJuIEI1O3Rocm93IGZ1bmN0aW9uIEtkKGQsZyl7cmV0dXJuIG5ldyBlbigyMTAwLCExKX0oKX1fZGlzcG9zZSgpe3RoaXMuX3N0cmF0ZWd5LmRpc3Bvc2UodGhpcy5fc3Vic2NyaXB0aW9uKSx0aGlzLl9sYXRlc3RW''@;'; put 'put ''YWx1ZT1udWxsLHRoaXMuX3N1YnNjcmlwdGlvbj1udWxsLHRoaXMuX29iaj1udWxsfV91cGRhdGVMYXRlc3RWYWx1ZShoLHYpe2g9PT10aGlzLl9vYmomJih0aGlzLl9sYXRlc3RWYWx1ZT12LHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxLDE2KSl9LGQuXHUwMjc1cGlwZT1Vcyh7bmFtZToiYXN5bmMiLHR5cGU6ZCxwdXJlOiExLHN0YW5kYWxvbmU6ITB9KSxkfSkoKSxJVz0oKCk9PntjbGFzcyBke3RyYW5zZm9ybShoKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoaCxudWxsLDIpfX1yZXR1''@;'; put 'put ''cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJqc29uIix0eXBlOmQscHVyZTohMSxzdGFuZGFsb25lOiEwfSksZH0pKCksWVQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmRpZmZlcnM9aCx0aGlzLmtl''@;'; put 'put ''eVZhbHVlcz1bXSx0aGlzLmNvbXBhcmVGbj1JRn10cmFuc2Zvcm0oaCx2PUlGKXtpZighaHx8IShoIGluc3RhbmNlb2YgTWFwKSYmIm9iamVjdCIhPXR5cGVvZiBoKXJldHVybiBudWxsO3RoaXMuZGlmZmVyfHwodGhpcy5kaWZmZXI9dGhpcy5kaWZmZXJzLmZpbmQoaCkuY3JlYXRlKCkpO2Nv''@;'; put 'put ''bnN0IHk9dGhpcy5kaWZmZXIuZGlmZihoKSxDPXYhPT10aGlzLmNvbXBhcmVGbjtyZXR1cm4geSYmKHRoaXMua2V5VmFsdWVzPVtdLHkuZm9yRWFjaEl0ZW0oST0+e3RoaXMua2V5VmFsdWVzLnB1c2goZnVuY3Rpb24gYWllKGQsZyl7cmV0dXJue2tleTpkLHZhbHVlOmd9fShJLmtleSxJLmN1''@;'; put 'put ''cnJlbnRWYWx1ZSkpfSkpLCh5fHxDKSYmKHRoaXMua2V5VmFsdWVzLnNvcnQodiksdGhpcy5jb21wYXJlRm49diksdGhpcy5rZXlWYWx1ZXN9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEVDLDE2KSl9LGQuXHUwMjc1cGlwZT1Vcyh7bmFtZToi''@;'; put 'put ''a2V5dmFsdWUiLHR5cGU6ZCxwdXJlOiExLHN0YW5kYWxvbmU6ITB9KSxkfSkoKTtmdW5jdGlvbiBJRihkLGcpe2NvbnN0IGg9ZC5rZXksdj1nLmtleTtpZihoPT09dilyZXR1cm4gMDtpZih2b2lkIDA9PT1oKXJldHVybiAxO2lmKHZvaWQgMD09PXYpcmV0dXJuLTE7aWYobnVsbD09PWgpcmV0''@;'; put 'put ''dXJuIDE7aWYobnVsbD09PXYpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiBoJiYic3RyaW5nIj09dHlwZW9mIHYpcmV0dXJuIGg8dj8tMToxO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmIm51bWJlciI9PXR5cGVvZiB2KXJldHVybiBoLXY7aWYoImJvb2xlYW4iPT10eXBlb2YgaCYmImJv''@;'; put 'put ''b2xlYW4iPT10eXBlb2YgdilyZXR1cm4gaDx2Py0xOjE7Y29uc3QgeT1TdHJpbmcoaCksQz1TdHJpbmcodik7cmV0dXJuIHk9PUM/MDp5PEM/LTE6MX1sZXQgYmE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; put 'put ''bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7fSksZH0pKCk7Y29uc3QgTFc9ImJyb3dzZXIiO2Z1bmN0aW9uIFNsKGQpe3JldHVybiBkPT09TFd9bGV0IGNpZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLHByb3ZpZGVkSW46InJvb3QiLGZh''@;'; put 'put ''Y3Rvcnk6KCk9Pm5ldyBCVyhDaShncyksd2luZG93KX0pLGR9KSgpO2NsYXNzIEJXe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5kb2N1bWVudD1nLHRoaXMud2luZG93PWgsdGhpcy5vZmZzZXQ9KCk9PlswLDBdfXNldE9mZnNldChnKXt0aGlzLm9mZnNldD1BcnJheS5pc0FycmF5KGcpPygpPT5n''@;'; put 'put ''Omd9Z2V0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4gdGhpcy5zdXBwb3J0c1Njcm9sbGluZygpP1t0aGlzLndpbmRvdy5wYWdlWE9mZnNldCx0aGlzLndpbmRvdy5wYWdlWU9mZnNldF06WzAsMF19c2Nyb2xsVG9Qb3NpdGlvbihnKXt0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkmJnRoaXMud2lu''@;'; put 'put ''ZG93LnNjcm9sbFRvKGdbMF0sZ1sxXSl9c2Nyb2xsVG9BbmNob3IoZyl7aWYoIXRoaXMuc3VwcG9ydHNTY3JvbGxpbmcoKSlyZXR1cm47Y29uc3QgaD1mdW5jdGlvbiBmaWUoZCxnKXtjb25zdCBoPWQuZ2V0RWxlbWVudEJ5SWQoZyl8fGQuZ2V0RWxlbWVudHNCeU5hbWUoZylbMF07aWYoaCly''@;'; put 'put ''ZXR1cm4gaDtpZigiZnVuY3Rpb24iPT10eXBlb2YgZC5jcmVhdGVUcmVlV2Fsa2VyJiZkLmJvZHkmJihkLmJvZHkuY3JlYXRlU2hhZG93Um9vdHx8ZC5ib2R5LmF0dGFjaFNoYWRvdykpe2NvbnN0IHY9ZC5jcmVhdGVUcmVlV2Fsa2VyKGQuYm9keSxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCk7''@;'; put 'put ''bGV0IHk9di5jdXJyZW50Tm9kZTtmb3IoO3k7KXtjb25zdCBDPXkuc2hhZG93Um9vdDtpZihDKXtjb25zdCBJPUMuZ2V0RWxlbWVudEJ5SWQoZyl8fEMucXVlcnlTZWxlY3RvcihgW25hbWU9IiR7Z30iXWApO2lmKEkpcmV0dXJuIEl9eT12Lm5leHROb2RlKCl9fXJldHVybiBudWxsfSh0aGlz''@;'; put 'put ''LmRvY3VtZW50LGcpO2gmJih0aGlzLnNjcm9sbFRvRWxlbWVudChoKSxoLmZvY3VzKCkpfXNldEhpc3RvcnlTY3JvbGxSZXN0b3JhdGlvbihnKXtpZih0aGlzLnN1cHBvcnRTY3JvbGxSZXN0b3JhdGlvbigpKXtjb25zdCBoPXRoaXMud2luZG93Lmhpc3Rvcnk7aCYmaC5zY3JvbGxSZXN0b3Jh''@;'; put 'put ''dGlvbiYmKGguc2Nyb2xsUmVzdG9yYXRpb249Zyl9fXNjcm9sbFRvRWxlbWVudChnKXtjb25zdCBoPWcuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1oLmxlZnQrdGhpcy53aW5kb3cucGFnZVhPZmZzZXQseT1oLnRvcCt0aGlzLndpbmRvdy5wYWdlWU9mZnNldCxDPXRoaXMub2Zmc2V0KCk7''@;'; put 'put ''dGhpcy53aW5kb3cuc2Nyb2xsVG8odi1DWzBdLHktQ1sxXSl9c3VwcG9ydFNjcm9sbFJlc3RvcmF0aW9uKCl7dHJ5e2lmKCF0aGlzLnN1cHBvcnRzU2Nyb2xsaW5nKCkpcmV0dXJuITE7Y29uc3QgZz1QVyh0aGlzLndpbmRvdy5oaXN0b3J5KXx8UFcoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRo''@;'; put 'put ''aXMud2luZG93Lmhpc3RvcnkpKTtyZXR1cm4hKCFnfHwhZy53cml0YWJsZSYmIWcuc2V0KX1jYXRjaChnKXtyZXR1cm4hMX19c3VwcG9ydHNTY3JvbGxpbmcoKXt0cnl7cmV0dXJuISF0aGlzLndpbmRvdyYmISF0aGlzLndpbmRvdy5zY3JvbGxUbyYmInBhZ2VYT2Zmc2V0ImluIHRoaXMud2lu''@;'; put 'put ''ZG93fWNhdGNoKGcpe3JldHVybiExfX19ZnVuY3Rpb24gUFcoZCl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCwic2Nyb2xsUmVzdG9yYXRpb24iKX1jbGFzcyBGV3t9Y2xhc3MgTEYgZXh0ZW5kcyBjbGFzcyBoaWUgZXh0ZW5kcyBjbGFzcyBPcmV7fXtjb25zdHJ1''@;'; put 'put ''Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5zdXBwb3J0c0RPTUV2ZW50cz0hMH19e3N0YXRpYyBtYWtlQ3VycmVudCgpeyFmdW5jdGlvbiBpVyhkKXtvN3x8KG83PWQpfShuZXcgTEYpfW9uQW5kQ2FuY2VsKGcsaCx2KXtyZXR1cm4gZy5hZGRFdmVudExpc3RlbmVyKGgsdiwhMSks''@;'; put 'put ''KCk9PntnLnJlbW92ZUV2ZW50TGlzdGVuZXIoaCx2LCExKX19ZGlzcGF0Y2hFdmVudChnLGgpe2cuZGlzcGF0Y2hFdmVudChoKX1yZW1vdmUoZyl7Zy5wYXJlbnROb2RlJiZnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZyl9Y3JlYXRlRWxlbWVudChnLGgpe3JldHVybihoPWh8fHRoaXMuZ2V0''@;'; put 'put ''RGVmYXVsdERvY3VtZW50KCkpLmNyZWF0ZUVsZW1lbnQoZyl9Y3JlYXRlSHRtbERvY3VtZW50KCl7cmV0dXJuIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiZmFrZVRpdGxlIil9Z2V0RGVmYXVsdERvY3VtZW50KCl7cmV0dXJuIGRvY3VtZW50fWlzRWxlbWVu''@;'; put 'put ''dE5vZGUoZyl7cmV0dXJuIGcubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERX1pc1NoYWRvd1Jvb3QoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50fWdldEdsb2JhbEV2ZW50VGFyZ2V0KGcsaCl7cmV0dXJuIndpbmRvdyI9PT1oP3dpbmRvdzoiZG9jdW1lbnQiPT09''@;'; put 'put ''aD9nOiJib2R5Ij09PWg/Zy5ib2R5Om51bGx9Z2V0QmFzZUhyZWYoZyl7Y29uc3QgaD1mdW5jdGlvbiBkaWUoKXtyZXR1cm4gWkM9WkN8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJhc2UiKSxaQz9aQy5nZXRBdHRyaWJ1dGUoImhyZWYiKTpudWxsfSgpO3JldHVybiBudWxsPT1oP251bGw6''@;'; put 'put ''ZnVuY3Rpb24gcGllKGQpe1VUPVVUfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIiksVVQuc2V0QXR0cmlidXRlKCJocmVmIixkKTtjb25zdCBnPVVULnBhdGhuYW1lO3JldHVybiIvIj09PWcuY2hhckF0KDApP2c6YC8ke2d9YH0oaCl9cmVzZXRCYXNlRWxlbWVudCgpe1pDPW51bGx9Z2V0''@;'; put 'put ''VXNlckFnZW50KCl7cmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50fWdldENvb2tpZShnKXtyZXR1cm4gYlcoZG9jdW1lbnQuY29va2llLGcpfX1sZXQgVVQsWkM9bnVsbDtjb25zdCBIVz1uZXcgemUoIlRSQU5TSVRJT05fSUQiKSxtaWU9W3twcm92aWRlOnlDLHVzZUZhY3Rvcnk6''@;'; put 'put ''ZnVuY3Rpb24gZ2llKGQsZyxoKXtyZXR1cm4oKT0+e2guZ2V0KHdUKS5kb25lUHJvbWlzZS50aGVuKCgpPT57Y29uc3Qgdj1VZCgpLHk9Zy5xdWVyeVNlbGVjdG9yQWxsKGBzdHlsZVtuZy10cmFuc2l0aW9uPSIke2R9Il1gKTtmb3IobGV0IEM9MDtDPHkubGVuZ3RoO0MrKyl2LnJlbW92ZSh5''@;'; put 'put ''W0NdKX0pfX0sZGVwczpbSFcsZ3MsU3NdLG11bHRpOiEwfV07bGV0IEFpZT0oKCk9PntjbGFzcyBke2J1aWxkKCl7cmV0dXJuIG5ldyBYTUxIdHRwUmVxdWVzdH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46''@;'; put 'put ''ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgUVQ9bmV3IHplKCJFdmVudE1hbmFnZXJQbHVnaW5zIik7bGV0IHU3PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLl96b25lPXYsdGhpcy5fZXZlbnROYW1lVG9QbHVnaW49bmV3IE1hcCxoLmZvckVhY2goeT0+''@;'; put 'put ''eS5tYW5hZ2VyPXRoaXMpLHRoaXMuX3BsdWdpbnM9aC5zbGljZSgpLnJldmVyc2UoKX1hZGRFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4gdGhpcy5fZmluZFBsdWdpbkZvcih2KS5hZGRFdmVudExpc3RlbmVyKGgsdix5KX1hZGRHbG9iYWxFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4g''@;'; put 'put ''dGhpcy5fZmluZFBsdWdpbkZvcih2KS5hZGRHbG9iYWxFdmVudExpc3RlbmVyKGgsdix5KX1nZXRab25lKCl7cmV0dXJuIHRoaXMuX3pvbmV9X2ZpbmRQbHVnaW5Gb3IoaCl7Y29uc3Qgdj10aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5nZXQoaCk7aWYodilyZXR1cm4gdjtjb25zdCB5PXRoaXMu''@;'; put 'put ''X3BsdWdpbnM7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9eVtDXTtpZihJLnN1cHBvcnRzKGgpKXJldHVybiB0aGlzLl9ldmVudE5hbWVUb1BsdWdpbi5zZXQoaCxJKSxJfXRocm93IG5ldyBFcnJvcihgTm8gZXZlbnQgbWFuYWdlciBwbHVnaW4gZm91bmQgZm9yIGV2ZW50''@;'; put 'put ''ICR7aH1gKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koUVQpLENpKF9sKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgT0Z7Y29uc3RydWN0b3IoZyl7dGhpcy5fZG9jPWd9YWRk''@;'; put 'put ''R2xvYmFsRXZlbnRMaXN0ZW5lcihnLGgsdil7Y29uc3QgeT1VZCgpLmdldEdsb2JhbEV2ZW50VGFyZ2V0KHRoaXMuX2RvYyxnKTtpZigheSl0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGV2ZW50IHRhcmdldCAke3l9IGZvciBldmVudCAke2h9YCk7cmV0dXJuIHRoaXMuYWRkRXZlbnRM''@;'; put 'put ''aXN0ZW5lcih5LGgsdil9fWxldCBOVz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fc3R5bGVzU2V0PW5ldyBTZXR9YWRkU3R5bGVzKGgpe2NvbnN0IHY9bmV3IFNldDtoLmZvckVhY2goeT0+e3RoaXMuX3N0eWxlc1NldC5oYXMoeSl8fCh0aGlzLl9zdHlsZXNTZXQuYWRkKHkp''@;'; put 'put ''LHYuYWRkKHkpKX0pLHRoaXMub25TdHlsZXNBZGRlZCh2KX1vblN0eWxlc0FkZGVkKGgpe31nZXRBbGxTdHlsZXMoKXtyZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9zdHlsZXNTZXQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92''@;'; put 'put ''PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx6Qz0oKCk9PntjbGFzcyBkIGV4dGVuZHMgTld7Y29uc3RydWN0b3IoaCl7c3VwZXIoKSx0aGlzLl9kb2M9aCx0aGlzLl9ob3N0Tm9kZXM9bmV3IE1hcCx0aGlzLl9ob3N0Tm9kZXMuc2V0KGguaGVhZCxbXSl9X2FkZFN0''@;'; put 'put ''eWxlc1RvSG9zdChoLHYseSl7aC5mb3JFYWNoKEM9Pntjb25zdCBJPXRoaXMuX2RvYy5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0kudGV4dENvbnRlbnQ9Qyx5LnB1c2godi5hcHBlbmRDaGlsZChJKSl9KX1hZGRIb3N0KGgpe2NvbnN0IHY9W107dGhpcy5fYWRkU3R5bGVzVG9Ib3N0KHRoaXMu''@;'; put 'put ''X3N0eWxlc1NldCxoLHYpLHRoaXMuX2hvc3ROb2Rlcy5zZXQoaCx2KX1yZW1vdmVIb3N0KGgpe2NvbnN0IHY9dGhpcy5faG9zdE5vZGVzLmdldChoKTt2JiZ2LmZvckVhY2goVlcpLHRoaXMuX2hvc3ROb2Rlcy5kZWxldGUoaCl9b25TdHlsZXNBZGRlZChoKXt0aGlzLl9ob3N0Tm9kZXMuZm9y''@;'; put 'put ''RWFjaCgodix5KT0+e3RoaXMuX2FkZFN0eWxlc1RvSG9zdChoLHksdil9KX1uZ09uRGVzdHJveSgpe3RoaXMuX2hvc3ROb2Rlcy5mb3JFYWNoKGg9PmguZm9yRWFjaChWVykpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShncykpfSxkLlx1MDI3''@;'; put 'put ''NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2Z1bmN0aW9uIFZXKGQpe1VkKCkucmVtb3ZlKGQpfWNvbnN0IFJGPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIseGxpbms6Imh0''@;'; put 'put ''dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiLHhtbDoiaHR0cDovL3d3dy53My5vcmcvWE1MLzE5OTgvbmFtZXNwYWNlIix4bWxuczoiaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8iLG1hdGg6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aE1MLyJ9LEJGPS8lQ09NUCUvZztmdW5j''@;'; put 'put ''dGlvbiBYVChkLGcsaCl7Zm9yKGxldCB2PTA7djxnLmxlbmd0aDt2Kyspe2xldCB5PWdbdl07QXJyYXkuaXNBcnJheSh5KT9YVChkLHksaCk6KHk9eS5yZXBsYWNlKEJGLGQpLGgucHVzaCh5KSl9cmV0dXJuIGh9ZnVuY3Rpb24gWlcoZCl7cmV0dXJuIGc9PntpZigiX19uZ1Vud3JhcF9fIj09''@;'; put 'put ''PWcpcmV0dXJuIGQ7ITE9PT1kKGcpJiYoZy5wcmV2ZW50RGVmYXVsdCgpLGcucmV0dXJuVmFsdWU9ITEpfX1sZXQgS1Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5ldmVudE1hbmFnZXI9aCx0aGlzLnNoYXJlZFN0eWxlc0hvc3Q9dix0aGlzLmFwcElkPXksdGhpcy5y''@;'; put 'put ''ZW5kZXJlckJ5Q29tcElkPW5ldyBNYXAsdGhpcy5kZWZhdWx0UmVuZGVyZXI9bmV3IFBGKGgpfWNyZWF0ZVJlbmRlcmVyKGgsdil7aWYoIWh8fCF2KXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcjtzd2l0Y2godi5lbmNhcHN1bGF0aW9uKXtjYXNlIHgyLkVtdWxhdGVkOntsZXQgeT10aGlz''@;'; put 'put ''LnJlbmRlcmVyQnlDb21wSWQuZ2V0KHYuaWQpO3JldHVybiB5fHwoeT1uZXcga2llKHRoaXMuZXZlbnRNYW5hZ2VyLHRoaXMuc2hhcmVkU3R5bGVzSG9zdCx2LHRoaXMuYXBwSWQpLHRoaXMucmVuZGVyZXJCeUNvbXBJZC5zZXQodi5pZCx5KSkseS5hcHBseVRvSG9zdChoKSx5fWNhc2UgMTpj''@;'; put 'put ''YXNlIHgyLlNoYWRvd0RvbTpyZXR1cm4gbmV3ICRUKHRoaXMuZXZlbnRNYW5hZ2VyLHRoaXMuc2hhcmVkU3R5bGVzSG9zdCxoLHYpO2RlZmF1bHQ6aWYoIXRoaXMucmVuZGVyZXJCeUNvbXBJZC5oYXModi5pZCkpe2NvbnN0IHk9WFQodi5pZCx2LnN0eWxlcyxbXSk7dGhpcy5zaGFyZWRTdHls''@;'; put 'put ''ZXNIb3N0LmFkZFN0eWxlcyh5KSx0aGlzLnJlbmRlcmVyQnlDb21wSWQuc2V0KHYuaWQsdGhpcy5kZWZhdWx0UmVuZGVyZXIpfXJldHVybiB0aGlzLmRlZmF1bHRSZW5kZXJlcn19YmVnaW4oKXt9ZW5kKCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; put 'put ''KShDaSh1NyksQ2koekMpLENpKHdDKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgUEZ7Y29uc3RydWN0b3IoZyl7dGhpcy5ldmVudE1hbmFnZXI9Zyx0aGlzLmRhdGE9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmRlc3Ryb3lO''@;'; put 'put ''b2RlPW51bGx9ZGVzdHJveSgpe31jcmVhdGVFbGVtZW50KGcsaCl7cmV0dXJuIGg/ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFJGW2hdfHxoLGcpOmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZyl9Y3JlYXRlQ29tbWVudChnKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChnKX1jcmVh''@;'; put 'put ''dGVUZXh0KGcpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnKX1hcHBlbmRDaGlsZChnLGgpeyhHVyhnKT9nLmNvbnRlbnQ6ZykuYXBwZW5kQ2hpbGQoaCl9aW5zZXJ0QmVmb3JlKGcsaCx2KXtnJiYoR1coZyk/Zy5jb250ZW50OmcpLmluc2VydEJlZm9yZShoLHYpfXJlbW92ZUNo''@;'; put 'put ''aWxkKGcsaCl7ZyYmZy5yZW1vdmVDaGlsZChoKX1zZWxlY3RSb290RWxlbWVudChnLGgpe2xldCB2PSJzdHJpbmciPT10eXBlb2YgZz9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGcpOmc7aWYoIXYpdGhyb3cgbmV3IEVycm9yKGBUaGUgc2VsZWN0b3IgIiR7Z30iIGRpZCBub3QgbWF0Y2ggYW55''@;'; put 'put ''IGVsZW1lbnRzYCk7cmV0dXJuIGh8fCh2LnRleHRDb250ZW50PSIiKSx2fXBhcmVudE5vZGUoZyl7cmV0dXJuIGcucGFyZW50Tm9kZX1uZXh0U2libGluZyhnKXtyZXR1cm4gZy5uZXh0U2libGluZ31zZXRBdHRyaWJ1dGUoZyxoLHYseSl7aWYoeSl7aD15KyI6IitoO2NvbnN0IEM9UkZbeV07''@;'; put 'put ''Qz9nLnNldEF0dHJpYnV0ZU5TKEMsaCx2KTpnLnNldEF0dHJpYnV0ZShoLHYpfWVsc2UgZy5zZXRBdHRyaWJ1dGUoaCx2KX1yZW1vdmVBdHRyaWJ1dGUoZyxoLHYpe2lmKHYpe2NvbnN0IHk9UkZbdl07eT9nLnJlbW92ZUF0dHJpYnV0ZU5TKHksaCk6Zy5yZW1vdmVBdHRyaWJ1dGUoYCR7dn06''@;'; put 'put ''JHtofWApfWVsc2UgZy5yZW1vdmVBdHRyaWJ1dGUoaCl9YWRkQ2xhc3MoZyxoKXtnLmNsYXNzTGlzdC5hZGQoaCl9cmVtb3ZlQ2xhc3MoZyxoKXtnLmNsYXNzTGlzdC5yZW1vdmUoaCl9c2V0U3R5bGUoZyxoLHYseSl7eSYoZnUuRGFzaENhc2V8ZnUuSW1wb3J0YW50KT9nLnN0eWxlLnNldFBy''@;'; put 'put ''b3BlcnR5KGgsdix5JmZ1LkltcG9ydGFudD8iaW1wb3J0YW50IjoiIik6Zy5zdHlsZVtoXT12fXJlbW92ZVN0eWxlKGcsaCx2KXt2JmZ1LkRhc2hDYXNlP2cuc3R5bGUucmVtb3ZlUHJvcGVydHkoaCk6Zy5zdHlsZVtoXT0iIn1zZXRQcm9wZXJ0eShnLGgsdil7Z1toXT12fXNldFZhbHVlKGcs''@;'; put 'put ''aCl7Zy5ub2RlVmFsdWU9aH1saXN0ZW4oZyxoLHYpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZz90aGlzLmV2ZW50TWFuYWdlci5hZGRHbG9iYWxFdmVudExpc3RlbmVyKGcsaCxaVyh2KSk6dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihnLGgsWlcodikpfX1mdW5jdGlvbiBH''@;'; put 'put ''VyhkKXtyZXR1cm4iVEVNUExBVEUiPT09ZC50YWdOYW1lJiZ2b2lkIDAhPT1kLmNvbnRlbnR9Y2xhc3Mga2llIGV4dGVuZHMgUEZ7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5jb21wb25lbnQ9djtjb25zdCBDPVhUKHkrIi0iK3YuaWQsdi5zdHlsZXMsW10pO2guYWRkU3R5''@;'; put 'put ''bGVzKEMpLHRoaXMuY29udGVudEF0dHI9ZnVuY3Rpb24gYmllKGQpe3JldHVybiJfbmdjb250ZW50LSVDT01QJSIucmVwbGFjZShCRixkKX0oeSsiLSIrdi5pZCksdGhpcy5ob3N0QXR0cj1mdW5jdGlvbiBfaWUoZCl7cmV0dXJuIl9uZ2hvc3QtJUNPTVAlIi5yZXBsYWNlKEJGLGQpfSh5KyIt''@;'; put 'put ''Iit2LmlkKX1hcHBseVRvSG9zdChnKXtzdXBlci5zZXRBdHRyaWJ1dGUoZyx0aGlzLmhvc3RBdHRyLCIiKX1jcmVhdGVFbGVtZW50KGcsaCl7Y29uc3Qgdj1zdXBlci5jcmVhdGVFbGVtZW50KGcsaCk7cmV0dXJuIHN1cGVyLnNldEF0dHJpYnV0ZSh2LHRoaXMuY29udGVudEF0dHIsIiIpLHZ9''@;'; put 'put ''fWNsYXNzICRUIGV4dGVuZHMgUEZ7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5zaGFyZWRTdHlsZXNIb3N0PWgsdGhpcy5ob3N0RWw9dix0aGlzLnNoYWRvd1Jvb3Q9di5hdHRhY2hTaGFkb3coe21vZGU6Im9wZW4ifSksdGhpcy5zaGFyZWRTdHlsZXNIb3N0LmFkZEhvc3Qo''@;'; put 'put ''dGhpcy5zaGFkb3dSb290KTtjb25zdCBDPVhUKHkuaWQseS5zdHlsZXMsW10pO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtjb25zdCBaPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Wi50ZXh0Q29udGVudD1DW0ldLHRoaXMuc2hhZG93Um9vdC5hcHBlbmRDaGlsZChaKX19''@;'; put 'put ''bm9kZU9yU2hhZG93Um9vdChnKXtyZXR1cm4gZz09PXRoaXMuaG9zdEVsP3RoaXMuc2hhZG93Um9vdDpnfWRlc3Ryb3koKXt0aGlzLnNoYXJlZFN0eWxlc0hvc3QucmVtb3ZlSG9zdCh0aGlzLnNoYWRvd1Jvb3QpfWFwcGVuZENoaWxkKGcsaCl7cmV0dXJuIHN1cGVyLmFwcGVuZENoaWxkKHRo''@;'; put 'put ''aXMubm9kZU9yU2hhZG93Um9vdChnKSxoKX1pbnNlcnRCZWZvcmUoZyxoLHYpe3JldHVybiBzdXBlci5pbnNlcnRCZWZvcmUodGhpcy5ub2RlT3JTaGFkb3dSb290KGcpLGgsdil9cmVtb3ZlQ2hpbGQoZyxoKXtyZXR1cm4gc3VwZXIucmVtb3ZlQ2hpbGQodGhpcy5ub2RlT3JTaGFkb3dSb290''@;'; put 'put ''KGcpLGgpfXBhcmVudE5vZGUoZyl7cmV0dXJuIHRoaXMubm9kZU9yU2hhZG93Um9vdChzdXBlci5wYXJlbnROb2RlKHRoaXMubm9kZU9yU2hhZG93Um9vdChnKSkpfX1sZXQgV1c9KCgpPT57Y2xhc3MgZCBleHRlbmRzIE9Ge2NvbnN0cnVjdG9yKGgpe3N1cGVyKGgpfXN1cHBvcnRzKGgpe3Jl''@;'; put 'put ''dHVybiEwfWFkZEV2ZW50TGlzdGVuZXIoaCx2LHkpe3JldHVybiBoLmFkZEV2ZW50TGlzdGVuZXIodix5LCExKSwoKT0+dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KX1yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KXtyZXR1cm4gaC5yZW1vdmVFdmVudExpc3RlbmVyKHYseSl9fXJl''@;'; put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGdzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgWVc9WyJhbHQiLCJjb250cm9sIiwibWV0YSIsInNoaWZ0Il0sTWllPXsiXGIiOiJCYWNr''@;'; put 'put ''c3BhY2UiLCJcdCI6IlRhYiIsIlx4N2YiOiJEZWxldGUiLCJceDFiIjoiRXNjYXBlIixEZWw6IkRlbGV0ZSIsRXNjOiJFc2NhcGUiLExlZnQ6IkFycm93TGVmdCIsUmlnaHQ6IkFycm93UmlnaHQiLFVwOiJBcnJvd1VwIixEb3duOiJBcnJvd0Rvd24iLE1lbnU6IkNvbnRleHRNZW51IixTY3Jv''@;'; put 'put ''bGw6IlNjcm9sbExvY2siLFdpbjoiT1MifSxVVz17QToiMSIsQjoiMiIsQzoiMyIsRDoiNCIsRToiNSIsRjoiNiIsRzoiNyIsSDoiOCIsSToiOSIsSjoiKiIsSzoiKyIsTToiLSIsTjoiLiIsTzoiLyIsImAiOiIwIiwiXHg5MCI6Ik51bUxvY2sifSxFaWU9e2FsdDpkPT5kLmFsdEtleSxjb250''@;'; put 'put ''cm9sOmQ9PmQuY3RybEtleSxtZXRhOmQ9PmQubWV0YUtleSxzaGlmdDpkPT5kLnNoaWZ0S2V5fTtsZXQgeGllPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBPRntjb25zdHJ1Y3RvcihoKXtzdXBlcihoKX1zdXBwb3J0cyhoKXtyZXR1cm4gbnVsbCE9ZC5wYXJzZUV2ZW50TmFtZShoKX1hZGRFdmVu''@;'; put 'put ''dExpc3RlbmVyKGgsdix5KXtjb25zdCBDPWQucGFyc2VFdmVudE5hbWUodiksST1kLmV2ZW50Q2FsbGJhY2soQy5mdWxsS2V5LHksdGhpcy5tYW5hZ2VyLmdldFpvbmUoKSk7cmV0dXJuIHRoaXMubWFuYWdlci5nZXRab25lKCkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PlVkKCkub25BbmRDYW5j''@;'; put 'put ''ZWwoaCxDLmRvbUV2ZW50TmFtZSxJKSl9c3RhdGljIHBhcnNlRXZlbnROYW1lKGgpe2NvbnN0IHY9aC50b0xvd2VyQ2FzZSgpLnNwbGl0KCIuIikseT12LnNoaWZ0KCk7aWYoMD09PXYubGVuZ3RofHwia2V5ZG93biIhPT15JiYia2V5dXAiIT09eSlyZXR1cm4gbnVsbDtjb25zdCBDPWQuX25v''@;'; put 'put ''cm1hbGl6ZUtleSh2LnBvcCgpKTtsZXQgST0iIjtpZihZVy5mb3JFYWNoKHVlPT57Y29uc3QgX2U9di5pbmRleE9mKHVlKTtfZT4tMSYmKHYuc3BsaWNlKF9lLDEpLEkrPXVlKyIuIil9KSxJKz1DLDAhPXYubGVuZ3RofHwwPT09Qy5sZW5ndGgpcmV0dXJuIG51bGw7Y29uc3QgWj17fTtyZXR1''@;'; put 'put ''cm4gWi5kb21FdmVudE5hbWU9eSxaLmZ1bGxLZXk9SSxafXN0YXRpYyBnZXRFdmVudEZ1bGxLZXkoaCl7bGV0IHY9IiIseT1mdW5jdGlvbiBUaWUoZCl7bGV0IGc9ZC5rZXk7aWYobnVsbD09Zyl7aWYoZz1kLmtleUlkZW50aWZpZXIsbnVsbD09ZylyZXR1cm4iVW5pZGVudGlmaWVkIjtnLnN0''@;'; put 'put ''YXJ0c1dpdGgoIlUrIikmJihnPVN0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoZy5zdWJzdHJpbmcoMiksMTYpKSwzPT09ZC5sb2NhdGlvbiYmVVcuaGFzT3duUHJvcGVydHkoZykmJihnPVVXW2ddKSl9cmV0dXJuIE1pZVtnXXx8Z30oaCk7cmV0dXJuIHk9eS50b0xvd2VyQ2FzZSgpLCIg''@;'; put 'put ''Ij09PXk/eT0ic3BhY2UiOiIuIj09PXkmJih5PSJkb3QiKSxZVy5mb3JFYWNoKEM9PntDIT15JiYoMCxFaWVbQ10pKGgpJiYodis9QysiLiIpfSksdis9eSx2fXN0YXRpYyBldmVudENhbGxiYWNrKGgsdix5KXtyZXR1cm4gQz0+e2QuZ2V0RXZlbnRGdWxsS2V5KEMpPT09aCYmeS5ydW5HdWFy''@;'; put 'put ''ZGVkKCgpPT52KEMpKX19c3RhdGljIF9ub3JtYWxpemVLZXkoaCl7cmV0dXJuImVzYyI9PT1oPyJlc2NhcGUiOmh9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGdzKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; put 'put ''ZmFjfSksZH0pKCk7Y29uc3QgUVc9W3twcm92aWRlOkwyLHVzZVZhbHVlOkxXfSx7cHJvdmlkZTpKUCx1c2VWYWx1ZTpmdW5jdGlvbiBJaWUoKXtMRi5tYWtlQ3VycmVudCgpfSxtdWx0aTohMH0se3Byb3ZpZGU6Z3MsdXNlRmFjdG9yeTpmdW5jdGlvbiBMaWUoKXtyZXR1cm4gZnVuY3Rpb24g''@;'; put 'put ''RFIoZCl7bWI9ZH0oZG9jdW1lbnQpLGRvY3VtZW50fSxkZXBzOltdfV0sT2llPWlGKG5XLCJicm93c2VyIixRVyksSlc9bmV3IHplKCIiKSxYVz1be3Byb3ZpZGU6emgsdXNlQ2xhc3M6Y2xhc3Mgdmlle2FkZFRvV2luZG93KGcpe1BsLmdldEFuZ3VsYXJUZXN0YWJpbGl0eT0odix5PSEwKT0+''@;'; put 'put ''e2NvbnN0IEM9Zy5maW5kVGVzdGFiaWxpdHlJblRyZWUodix5KTtpZihudWxsPT1DKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgdGVzdGFiaWxpdHkgZm9yIGVsZW1lbnQuIik7cmV0dXJuIEN9LFBsLmdldEFsbEFuZ3VsYXJUZXN0YWJpbGl0aWVzPSgpPT5nLmdldEFsbFRlc3Rh''@;'; put 'put ''YmlsaXRpZXMoKSxQbC5nZXRBbGxBbmd1bGFyUm9vdEVsZW1lbnRzPSgpPT5nLmdldEFsbFJvb3RFbGVtZW50cygpLFBsLmZyYW1ld29ya1N0YWJpbGl6ZXJzfHwoUGwuZnJhbWV3b3JrU3RhYmlsaXplcnM9W10pLFBsLmZyYW1ld29ya1N0YWJpbGl6ZXJzLnB1c2godj0+e2NvbnN0IHk9UGwu''@;'; put 'put ''Z2V0QWxsQW5ndWxhclRlc3RhYmlsaXRpZXMoKTtsZXQgQz15Lmxlbmd0aCxJPSExO2NvbnN0IFo9ZnVuY3Rpb24odWUpe0k9SXx8dWUsQy0tLDA9PUMmJnYoSSl9O3kuZm9yRWFjaChmdW5jdGlvbih1ZSl7dWUud2hlblN0YWJsZShaKX0pfSl9ZmluZFRlc3RhYmlsaXR5SW5UcmVlKGcsaCx2''@;'; put 'put ''KXtpZihudWxsPT1oKXJldHVybiBudWxsO2NvbnN0IHk9Zy5nZXRUZXN0YWJpbGl0eShoKTtyZXR1cm4gbnVsbCE9eT95OnY/VWQoKS5pc1NoYWRvd1Jvb3QoaCk/dGhpcy5maW5kVGVzdGFiaWxpdHlJblRyZWUoZyxoLmhvc3QsITApOnRoaXMuZmluZFRlc3RhYmlsaXR5SW5UcmVlKGcsaC5w''@;'; put 'put ''YXJlbnRFbGVtZW50LCEwKTpudWxsfX0sZGVwczpbXX0se3Byb3ZpZGU6TVQsdXNlQ2xhc3M6RVQsZGVwczpbX2wsdEYsemhdfSx7cHJvdmlkZTpFVCx1c2VDbGFzczpFVCxkZXBzOltfbCx0Rix6aF19XSxLVz1be3Byb3ZpZGU6dm0sdXNlVmFsdWU6InJvb3QifSx7cHJvdmlkZTp2Nix1c2VG''@;'; put 'put ''YWN0b3J5OmZ1bmN0aW9uIERpZSgpe3JldHVybiBuZXcgdjZ9LGRlcHM6W119LHtwcm92aWRlOlFULHVzZUNsYXNzOldXLG11bHRpOiEwLGRlcHM6W2dzLF9sLEwyXX0se3Byb3ZpZGU6UVQsdXNlQ2xhc3M6eGllLG11bHRpOiEwLGRlcHM6W2dzXX0se3Byb3ZpZGU6S1QsdXNlQ2xhc3M6S1Qs''@;'; put 'put ''ZGVwczpbdTcsekMsd0NdfSx7cHJvdmlkZTpNZCx1c2VFeGlzdGluZzpLVH0se3Byb3ZpZGU6TlcsdXNlRXhpc3Rpbmc6ekN9LHtwcm92aWRlOnpDLHVzZUNsYXNzOnpDLGRlcHM6W2dzXX0se3Byb3ZpZGU6dTcsdXNlQ2xhc3M6dTcsZGVwczpbUVQsX2xdfSx7cHJvdmlkZTpGVyx1c2VDbGFz''@;'; put 'put ''czpBaWUsZGVwczpbXX0sW11dO2xldCAkVz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe31zdGF0aWMgd2l0aFNlcnZlclRyYW5zaXRpb24oaCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlt7cHJvdmlkZTp3Qyx1c2VWYWx1ZTpoLmFwcElkfSx7cHJvdmlkZTpIVyx1c2VFeGlz''@;'; put 'put ''dGluZzp3Q30sbWllXX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEpXLDEyKSl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7cHJvdmlkZXJzOlsuLi5LVywuLi5YV10saW1wb3J0czpbYmEsRXJlXX0pLGR9KSgp''@;'; put 'put ''LEdBPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZG9jPWh9Z2V0VGl0bGUoKXtyZXR1cm4gdGhpcy5fZG9jLnRpdGxlfXNldFRpdGxlKGgpe3RoaXMuX2RvYy50aXRsZT1ofHwiIn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2ko''@;'; put 'put ''Z3MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oaCl7bGV0IHY9bnVsbDtyZXR1cm4gdj1oP25ldyBoOmZ1bmN0aW9uIGFwKCl7cmV0dXJuIG5ldyBHQShDaShncykpfSgpLHZ9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCk7InVuZGVmaW5lZCIhPXR5cGVv''@;'; put 'put ''ZiB3aW5kb3cmJndpbmRvdztsZXQgYzc9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKGgpe2xldCB2PW51bGw7cmV0dXJuIHY9aD9uZXcoaHx8ZCk6''@;'; put 'put ''Q2koclkpLHZ9LHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksclk9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGM3e2NvbnN0cnVjdG9yKGgpe3N1cGVyKCksdGhpcy5fZG9jPWh9c2FuaXRpemUoaCx2KXtpZihudWxsPT12KXJldHVybiBudWxsO3N3aXRjaChoKXtjYXNlIGEyLk5PTkU6cmV0dXJu''@;'; put 'put ''IHY7Y2FzZSBhMi5IVE1MOnJldHVybiAkdSh2LCJIVE1MIik/ZDIodik6eDkodGhpcy5fZG9jLFN0cmluZyh2KSkudG9TdHJpbmcoKTtjYXNlIGEyLlNUWUxFOnJldHVybiAkdSh2LCJTdHlsZSIpP2QyKHYpOnY7Y2FzZSBhMi5TQ1JJUFQ6aWYoJHUodiwiU2NyaXB0IikpcmV0dXJuIGQyKHYp''@;'; put 'put ''O3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSBzY3JpcHQgY29udGV4dCIpO2Nhc2UgYTIuVVJMOnJldHVybiAkdSh2LCJVUkwiKT9kMih2KTp2ZihTdHJpbmcodikpO2Nhc2UgYTIuUkVTT1VSQ0VfVVJMOmlmKCR1KHYsIlJlc291cmNlVVJMIikpcmV0dXJuIGQyKHYp''@;'; put 'put ''O3Rocm93IG5ldyBFcnJvcigidW5zYWZlIHZhbHVlIHVzZWQgaW4gYSByZXNvdXJjZSBVUkwgY29udGV4dCAoc2VlIGh0dHBzOi8vZy5jby9uZy9zZWN1cml0eSN4c3MpIik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVuZXhwZWN0ZWQgU2VjdXJpdHlDb250ZXh0ICR7aH0gKHNlZSBodHRw''@;'; put 'put ''czovL2cuY28vbmcvc2VjdXJpdHkjeHNzKWApfX1ieXBhc3NTZWN1cml0eVRydXN0SHRtbChoKXtyZXR1cm4gZnVuY3Rpb24geTMoZCl7cmV0dXJuIG5ldyBobShkKX0oaCl9YnlwYXNzU2VjdXJpdHlUcnVzdFN0eWxlKGgpe3JldHVybiBmdW5jdGlvbiBRZihkKXtyZXR1cm4gbmV3IG1hKGQp''@;'; put 'put ''fShoKX1ieXBhc3NTZWN1cml0eVRydXN0U2NyaXB0KGgpe3JldHVybiBmdW5jdGlvbiBXbyhkKXtyZXR1cm4gbmV3IHU2KGQpfShoKX1ieXBhc3NTZWN1cml0eVRydXN0VXJsKGgpe3JldHVybiBmdW5jdGlvbiBkbShkKXtyZXR1cm4gbmV3IGhsKGQpfShoKX1ieXBhc3NTZWN1cml0eVRydXN0''@;'; put 'put ''UmVzb3VyY2VVcmwoaCl7cmV0dXJuIGZ1bmN0aW9uIHRFKGQpe3JldHVybiBuZXcgVWYoZCl9KGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShncykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpmdW5jdGlvbihoKXtsZXQg''@;'; put 'put ''dj1udWxsO3JldHVybiB2PWg/bmV3IGg6ZnVuY3Rpb24gamllKGQpe3JldHVybiBuZXcgclkoZC5nZXQoZ3MpKX0oQ2koU3MpKSx2fSxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO0woNDI0NCksTCg3NzY1NyksTCg4ODgxMyksTCg1MzEwKSxMKDUxNzcxKSxMKDYyMzE0KSxMKDE2MzQzKSxM''@;'; put 'put ''KDY4MTQ4KSxMKDc2NzcpLEwoODI2OTEpLEwoMjkxMzIpLEwoMTc4NzgpLEwoNTIyOTgpLEwoNDM0OTkpLEwoNjc3OTUpLEwoODg1ODMpLEwoNTQyNjEpO3ZhciBaaWU9TCg5MzE3Mik7d2luZG93Lmdsb2JhbD13aW5kb3csd2luZG93Lmdsb2JhbC5CdWZmZXI9d2luZG93Lmdsb2JhbC5CdWZm''@;'; put 'put ''ZXJ8fFppZS5CdWZmZXIsd2luZG93LnByb2Nlc3M9e3ZlcnNpb246IiJ9O0woNTY3NzEpLEwoOTM4NzcpO2NvbnN0IG5pPXtyb290UGFyYW06IiIsZWRpdG9yOntzdGFydHVwU2V0OiExLHRyZWVOb2RlTGlicmFyaWVzOltdLGxpYnNBbmRUYWJsZXM6W10sbGlicmFyaWVzOltdLGxpYnJhcnk6''@;'; put 'put ''IiIsdGFibGU6IiIsZmlsdGVyOntjb2xzOltdLHZhbHM6W10sZ3JvdXBMb2dpYzoiIix3aGVyZUNsYXVzZToiIixsaWJkczoiIixjbGF1c2VzOltdLHF1ZXJ5OltdfX0sdmlld2VyOntzdGFydHVwU2V0OiExLHRhYmxlc1NldDohMSxsaWJyYXJpZXM6W10sdGFibGVzOm51bGwsbGlicmFyeToi''@;'; put 'put ''Iix0YWJsZToiIixsaWJpbmZvOltdLGxpYnJhcmllc1NlYXJjaDoiIixmaWx0ZXI6e2NvbHM6W10sdmFsczpbXSxncm91cExvZ2ljOiIiLHdoZXJlQ2xhdXNlOiIiLGxpYmRzOiIiLGNsYXVzZXM6W10scXVlcnk6W119LGN1cnJlbnRTZWxlY3Rpb246IiJ9LGxpbmVhZ2U6e2xpYnJhcnlMaXN0''@;'; put 'put ''OltdLHRhYmxlc0xpc3Q6W10sY29sdW1uc0xpc3Q6W10sbGlicmFyaWVzU2VhcmNoOiIiLGxpYjoiIix0YWJsZToiIixjb2x1bW46IiIsY3VycmVudExpbmVhZ2VQYXRoTGliVGFibGU6IiIsY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uOiIifSxtZXRhZGF0YTp7bWV0YURhdGFMaXN0OnZvaWQg''@;'; put 'put ''MCxtZXRhRGF0YVNlYXJjaDoiIixtZXRhT2JqZWN0TGlzdDpbXSxtZXRhT2JqZWN0U2VhcmNoOiIiLG1ldGFSZXBvc2l0b3JpZXM6dm9pZCAwLHNlbGVjdGVkUmVwb3NpdG9yeToiIn0sdXNlcm5hdjp7dXNlckxpc3Q6dm9pZCAwLHVzZXJTZWFyY2g6IiIsZ3JvdXBMaXN0OnZvaWQgMCxncm91''@;'; put 'put ''cFNlYXJjaDoiIixyb2xlTGlzdDp2b2lkIDAscm9sZVNlYXJjaDoiIn0sb3BlcmF0b3JzOntudW1PcGVyYXRvcnM6WyI9IiwiPCIsIj4iLCI8PSIsIj49IiwiQkVUV0VFTiIsIklOIiwiTk9UIElOIiwiTkUiXSxjaGFyT3BlcmF0b3JzOlsiPSIsIjwiLCI+IiwiPD0iLCI+PSIsIkNPTlRBSU5T''@;'; put 'put ''IiwiSU4iLCJOT1QgSU4iLCJORSJdfX07dmFyIFRsPUwoMTU0MzkpLG5JPUwubihUbCk7ZnVuY3Rpb24gVjIoZCxnLGgsdil7dmFyIEkseT1hcmd1bWVudHMubGVuZ3RoLEM9eTwzP2c6bnVsbD09PXY/dj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGcsaCk6djtpZigib2JqZWN0''@;'; put 'put ''Ij09dHlwZW9mIFJlZmxlY3QmJiJmdW5jdGlvbiI9PXR5cGVvZiBSZWZsZWN0LmRlY29yYXRlKUM9UmVmbGVjdC5kZWNvcmF0ZShkLGcsaCx2KTtlbHNlIGZvcih2YXIgWj1kLmxlbmd0aC0xO1o+PTA7Wi0tKShJPWRbWl0pJiYoQz0oeTwzP0koQyk6eT4zP0koZyxoLEMpOkkoZyxoKSl8fEMp''@;'; put 'put ''O3JldHVybiB5PjMmJkMmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShnLGgsQyksQ31mdW5jdGlvbiBubyhkLGcsaCx2KXtyZXR1cm4gbmV3KGh8fChoPVByb21pc2UpKShmdW5jdGlvbihDLEkpe2Z1bmN0aW9uIFooQmUpe3RyeXtfZSh2Lm5leHQoQmUpKX1jYXRjaChOZSl7SShOZSl9fWZ1bmN0''@;'; put 'put ''aW9uIHVlKEJlKXt0cnl7X2Uodi50aHJvdyhCZSkpfWNhdGNoKE5lKXtJKE5lKX19ZnVuY3Rpb24gX2UoQmUpe0JlLmRvbmU/QyhCZS52YWx1ZSk6ZnVuY3Rpb24geShDKXtyZXR1cm4gQyBpbnN0YW5jZW9mIGg/QzpuZXcgaChmdW5jdGlvbihJKXtJKEMpfSl9KEJlLnZhbHVlKS50aGVuKFos''@;'; put 'put ''dWUpfV9lKCh2PXYuYXBwbHkoZCxnfHxbXSkpLm5leHQoKSl9KX1mdW5jdGlvbiBhYSguLi5kKXtsZXQgZz1kW2QubGVuZ3RoLTFdO3JldHVybiB3dChnKT8oZC5wb3AoKSxVZShkLGcpKTpwcihkKX1jbGFzcyBmcyBleHRlbmRzICRle2NvbnN0cnVjdG9yKGcpe3N1cGVyKCksdGhpcy5fdmFs''@;'; put 'put ''dWU9Z31nZXQgdmFsdWUoKXtyZXR1cm4gdGhpcy5nZXRWYWx1ZSgpfV9zdWJzY3JpYmUoZyl7Y29uc3QgaD1zdXBlci5fc3Vic2NyaWJlKGcpO3JldHVybiBoJiYhaC5jbG9zZWQmJmcubmV4dCh0aGlzLl92YWx1ZSksaH1nZXRWYWx1ZSgpe2lmKHRoaXMuaGFzRXJyb3IpdGhyb3cgdGhpcy50''@;'; put 'put ''aHJvd25FcnJvcjtpZih0aGlzLmNsb3NlZCl0aHJvdyBuZXcgRGU7cmV0dXJuIHRoaXMuX3ZhbHVlfW5leHQoZyl7c3VwZXIubmV4dCh0aGlzLl92YWx1ZT1nKX19Y2xhc3MgWWllIGV4dGVuZHMgentub3RpZnlOZXh0KGcsaCx2LHksQyl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGgpfW5vdGlm''@;'; put 'put ''eUVycm9yKGcsaCl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcihnKX1ub3RpZnlDb21wbGV0ZShnKXt0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWNsYXNzIFVpZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKCksdGhpcy5wYXJlbnQ9Zyx0aGlzLm91dGVyVmFsdWU9aCx0''@;'; put 'put ''aGlzLm91dGVySW5kZXg9dix0aGlzLmluZGV4PTB9X25leHQoZyl7dGhpcy5wYXJlbnQubm90aWZ5TmV4dCh0aGlzLm91dGVyVmFsdWUsZyx0aGlzLm91dGVySW5kZXgsdGhpcy5pbmRleCsrLHRoaXMpfV9lcnJvcihnKXt0aGlzLnBhcmVudC5ub3RpZnlFcnJvcihnLHRoaXMpLHRoaXMudW5z''@;'; put 'put ''dWJzY3JpYmUoKX1fY29tcGxldGUoKXt0aGlzLnBhcmVudC5ub3RpZnlDb21wbGV0ZSh0aGlzKSx0aGlzLnVuc3Vic2NyaWJlKCl9fWZ1bmN0aW9uIFFpZShkLGcsaCx2LHk9bmV3IFVpZShkLGgsdikpe2lmKCF5LmNsb3NlZClyZXR1cm4gZyBpbnN0YW5jZW9mIEY/Zy5zdWJzY3JpYmUoeSk6''@;'; put 'put ''ZnQoZykoeSl9Y29uc3Qgc1k9e307ZnVuY3Rpb24gb0koLi4uZCl7bGV0IGcsaDtyZXR1cm4gd3QoZFtkLmxlbmd0aC0xXSkmJihoPWQucG9wKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBkW2QubGVuZ3RoLTFdJiYoZz1kLnBvcCgpKSwxPT09ZC5sZW5ndGgmJkFlKGRbMF0pJiYoZD1kWzBdKSxw''@;'; put 'put ''cihkLGgpLmxpZnQobmV3IFZGKGcpKX1jbGFzcyBWRntjb25zdHJ1Y3RvcihnKXt0aGlzLnJlc3VsdFNlbGVjdG9yPWd9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgdVkoZyx0aGlzLnJlc3VsdFNlbGVjdG9yKSl9fWNsYXNzIHVZIGV4dGVuZHMgWWlle2NvbnN0cnVjdG9yKGcs''@;'; put 'put ''aCl7c3VwZXIoZyksdGhpcy5yZXN1bHRTZWxlY3Rvcj1oLHRoaXMuYWN0aXZlPTAsdGhpcy52YWx1ZXM9W10sdGhpcy5vYnNlcnZhYmxlcz1bXX1fbmV4dChnKXt0aGlzLnZhbHVlcy5wdXNoKHNZKSx0aGlzLm9ic2VydmFibGVzLnB1c2goZyl9X2NvbXBsZXRlKCl7Y29uc3QgZz10aGlzLm9i''@;'; put 'put ''c2VydmFibGVzLGg9Zy5sZW5ndGg7aWYoMD09PWgpdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpO2Vsc2V7dGhpcy5hY3RpdmU9aCx0aGlzLnRvUmVzcG9uZD1oO2ZvcihsZXQgdj0wO3Y8aDt2KyspdGhpcy5hZGQoUWllKHRoaXMsZ1t2XSx2b2lkIDAsdikpfX1ub3RpZnlDb21wbGV0ZShn''@;'; put 'put ''KXswPT0odGhpcy5hY3RpdmUtPTEpJiZ0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9bm90aWZ5TmV4dChnLGgsdil7Y29uc3QgeT10aGlzLnZhbHVlcyxJPXRoaXMudG9SZXNwb25kP3lbdl09PT1zWT8tLXRoaXMudG9SZXNwb25kOnRoaXMudG9SZXNwb25kOjA7eVt2XT1oLDA9PT1JJiYo''@;'; put 'put ''dGhpcy5yZXN1bHRTZWxlY3Rvcj90aGlzLl90cnlSZXN1bHRTZWxlY3Rvcih5KTp0aGlzLmRlc3RpbmF0aW9uLm5leHQoeS5zbGljZSgpKSl9X3RyeVJlc3VsdFNlbGVjdG9yKGcpe2xldCBoO3RyeXtoPXRoaXMucmVzdWx0U2VsZWN0b3IuYXBwbHkodGhpcyxnKX1jYXRjaCh2KXtyZXR1cm4g''@;'; put 'put ''dm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfXRoaXMuZGVzdGluYXRpb24ubmV4dChoKX19ZnVuY3Rpb24gakYoLi4uZCl7cmV0dXJuIGZ1bmN0aW9uIEppZSgpe3JldHVybiBxdCgxKX0oKShhYSguLi5kKSl9Y29uc3QgVUE9bmV3IEYoZD0+ZC5jb21wbGV0ZSgpKTtmdW5jdGlvbiBh''@;'; put 'put ''SShkKXtyZXR1cm4gZD9mdW5jdGlvbiBYaWUoZCl7cmV0dXJuIG5ldyBGKGc9PmQuc2NoZWR1bGUoKCk9PmcuY29tcGxldGUoKSkpfShkKTpVQX1mdW5jdGlvbiBjWShkKXtyZXR1cm4gbmV3IEYoZz0+e2xldCBoO3RyeXtoPWQoKX1jYXRjaCh5KXtyZXR1cm4gdm9pZCBnLmVycm9yKHkpfXJl''@;'; put 'put ''dHVybihoP2RuKGgpOmFJKCkpLnN1YnNjcmliZShnKX0pfWZ1bmN0aW9uIFFBKGQsZyl7cmV0dXJuIG5ldyBGKGc/aD0+Zy5zY2hlZHVsZShLaWUsMCx7ZXJyb3I6ZCxzdWJzY3JpYmVyOmh9KTpoPT5oLmVycm9yKGQpKX1mdW5jdGlvbiBLaWUoe2Vycm9yOmQsc3Vic2NyaWJlcjpnfSl7Zy5l''@;'; put 'put ''cnJvcihkKX1jb25zdCBKQT0oKCk9PntmdW5jdGlvbiBkKCl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPSJubyBlbGVtZW50cyBpbiBzZXF1ZW5jZSIsdGhpcy5uYW1lPSJFbXB0eUVycm9yIix0aGlzfXJldHVybiBkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9y''@;'; put 'put ''LnByb3RvdHlwZSksZH0pKCk7ZnVuY3Rpb24gWWgoZCxnKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZz9oPT5oLnBpcGUoWWgoKHYseSk9PmRuKGQodix5KSkucGlwZShtdCgoQyxJKT0+Zyh2LEMseSxJKSkpKSk6aD0+aC5saWZ0KG5ldyAkaWUoZCkpfWNsYXNzICRpZXtjb25zdHJ1Y3Rv''@;'; put 'put ''cihnKXt0aGlzLnByb2plY3Q9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBmWShnLHRoaXMucHJvamVjdCkpfX1jbGFzcyBmWSBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy5wcm9qZWN0PWgsdGhpcy5pbmRleD0wfV9uZXh0KGcpe2xldCBoO2Nv''@;'; put 'put ''bnN0IHY9dGhpcy5pbmRleCsrO3RyeXtoPXRoaXMucHJvamVjdChnLHYpfWNhdGNoKHkpe3JldHVybiB2b2lkIHRoaXMuZGVzdGluYXRpb24uZXJyb3IoeSl9dGhpcy5faW5uZXJTdWIoaCl9X2lubmVyU3ViKGcpe2NvbnN0IGg9dGhpcy5pbm5lclN1YnNjcmlwdGlvbjtoJiZoLnVuc3Vic2Ny''@;'; put 'put ''aWJlKCk7Y29uc3Qgdj1uZXcgeW4odGhpcykseT10aGlzLmRlc3RpbmF0aW9uO3kuYWRkKHYpLHRoaXMuaW5uZXJTdWJzY3JpcHRpb249ZXIoZyx2KSx0aGlzLmlubmVyU3Vic2NyaXB0aW9uIT09diYmeS5hZGQodGhpcy5pbm5lclN1YnNjcmlwdGlvbil9X2NvbXBsZXRlKCl7Y29uc3R7aW5u''@;'; put 'put ''ZXJTdWJzY3JpcHRpb246Z309dGhpczsoIWd8fGcuY2xvc2VkKSYmc3VwZXIuX2NvbXBsZXRlKCksdGhpcy51bnN1YnNjcmliZSgpfV91bnN1YnNjcmliZSgpe3RoaXMuaW5uZXJTdWJzY3JpcHRpb249dm9pZCAwfW5vdGlmeUNvbXBsZXRlKCl7dGhpcy5pbm5lclN1YnNjcmlwdGlvbj12b2lk''@;'; put 'put ''IDAsdGhpcy5pc1N0b3BwZWQmJnN1cGVyLl9jb21wbGV0ZSgpfW5vdGlmeU5leHQoZyl7dGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfX1jb25zdCBoWT0oKCk9PntmdW5jdGlvbiBkKCl7cmV0dXJuIEVycm9yLmNhbGwodGhpcyksdGhpcy5tZXNzYWdlPSJhcmd1bWVudCBvdXQgb2YgcmFuZ2Ui''@;'; put 'put ''LHRoaXMubmFtZT0iQXJndW1lbnRPdXRPZlJhbmdlRXJyb3IiLHRoaXN9cmV0dXJuIGQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxkfSkoKTtmdW5jdGlvbiBINShkKXtyZXR1cm4gZz0+MD09PWQ/YUkoKTpnLmxpZnQobmV3IHFpZShkKSl9Y2xhc3MgcWlle2Nv''@;'; put 'put ''bnN0cnVjdG9yKGcpe2lmKHRoaXMudG90YWw9Zyx0aGlzLnRvdGFsPDApdGhyb3cgbmV3IGhZfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IGRZKGcsdGhpcy50b3RhbCkpfX1jbGFzcyBkWSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLnRvdGFsPWgs''@;'; put 'put ''dGhpcy5jb3VudD0wfV9uZXh0KGcpe2NvbnN0IGg9dGhpcy50b3RhbCx2PSsrdGhpcy5jb3VudDt2PD1oJiYodGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpLHY9PT1oJiYodGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpLHRoaXMudW5zdWJzY3JpYmUoKSkpfX1mdW5jdGlvbiBONSguLi5kKXtj''@;'; put 'put ''b25zdCBnPWRbZC5sZW5ndGgtMV07cmV0dXJuIHd0KGcpPyhkLnBvcCgpLGg9PmpGKGQsaCxnKSk6aD0+akYoZCxoKX1mdW5jdGlvbiBPMihkLGcpe3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4gdi5saWZ0KG5ldyBlMGUoZCxnKSl9fWNsYXNzIGUwZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMu''@;'; put 'put ''cHJlZGljYXRlPWcsdGhpcy50aGlzQXJnPWh9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgdDBlKGcsdGhpcy5wcmVkaWNhdGUsdGhpcy50aGlzQXJnKSl9fWNsYXNzIHQwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcpLHRoaXMucHJlZGljYXRlPWgsdGhp''@;'; put 'put ''cy50aGlzQXJnPXYsdGhpcy5jb3VudD0wfV9uZXh0KGcpe2xldCBoO3RyeXtoPXRoaXMucHJlZGljYXRlLmNhbGwodGhpcy50aGlzQXJnLGcsdGhpcy5jb3VudCsrKX1jYXRjaCh2KXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHYpfWgmJnRoaXMuZGVzdGluYXRpb24ubmV4''@;'; put 'put ''dChnKX19ZnVuY3Rpb24gaDcoZD1udWxsKXtyZXR1cm4gZz0+Zy5saWZ0KG5ldyBuMGUoZCkpfWNsYXNzIG4wZXtjb25zdHJ1Y3RvcihnKXt0aGlzLmRlZmF1bHRWYWx1ZT1nfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IHIwZShnLHRoaXMuZGVmYXVsdFZhbHVlKSl9fWNsYXNz''@;'; put 'put ''IHIwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmRlZmF1bHRWYWx1ZT1oLHRoaXMuaXNFbXB0eT0hMH1fbmV4dChnKXt0aGlzLmlzRW1wdHk9ITEsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfV9jb21wbGV0ZSgpe3RoaXMuaXNFbXB0eSYmdGhpcy5kZXN0aW5h''@;'; put 'put ''dGlvbi5uZXh0KHRoaXMuZGVmYXVsdFZhbHVlKSx0aGlzLmRlc3RpbmF0aW9uLmNvbXBsZXRlKCl9fWZ1bmN0aW9uIHBZKGQ9bVkpe3JldHVybiBnPT5nLmxpZnQobmV3IGkwZShkKSl9Y2xhc3MgaTBle2NvbnN0cnVjdG9yKGcpe3RoaXMuZXJyb3JGYWN0b3J5PWd9Y2FsbChnLGgpe3JldHVy''@;'; put 'put ''biBoLnN1YnNjcmliZShuZXcgZ1koZyx0aGlzLmVycm9yRmFjdG9yeSkpfX1jbGFzcyBnWSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnKSx0aGlzLmVycm9yRmFjdG9yeT1oLHRoaXMuaGFzVmFsdWU9ITF9X25leHQoZyl7dGhpcy5oYXNWYWx1ZT0hMCx0aGlzLmRlc3RpbmF0''@;'; put 'put ''aW9uLm5leHQoZyl9X2NvbXBsZXRlKCl7aWYodGhpcy5oYXNWYWx1ZSlyZXR1cm4gdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpO3tsZXQgZzt0cnl7Zz10aGlzLmVycm9yRmFjdG9yeSgpfWNhdGNoKGgpe2c9aH10aGlzLmRlc3RpbmF0aW9uLmVycm9yKGcpfX19ZnVuY3Rpb24gbVkoKXty''@;'; put 'put ''ZXR1cm4gbmV3IEpBfWZ1bmN0aW9uIFczKGQsZyl7Y29uc3QgaD1hcmd1bWVudHMubGVuZ3RoPj0yO3JldHVybiB2PT52LnBpcGUoZD9PMigoeSxDKT0+ZCh5LEMsdikpOlYsSDUoMSksaD9oNyhnKTpwWSgoKT0+bmV3IEpBKSl9ZnVuY3Rpb24gVjUoZCxnKXtyZXR1cm4gc3IoZCxnLDEpfWZ1''@;'; put 'put ''bmN0aW9uIGo1KCl7fWZ1bmN0aW9uIHlhKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHkubGlmdChuZXcgWEEoZCxnLGgpKX19Y2xhc3MgWEF7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMubmV4dE9yT2JzZXJ2ZXI9Zyx0aGlzLmVycm9yPWgsdGhpcy5jb21wbGV0ZT12fWNhbGwo''@;'; put 'put ''ZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IG8wZShnLHRoaXMubmV4dE9yT2JzZXJ2ZXIsdGhpcy5lcnJvcix0aGlzLmNvbXBsZXRlKSl9fWNsYXNzIG8wZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyksdGhpcy5fdGFwTmV4dD1qNSx0aGlzLl90YXBFcnJvcj1q''@;'; put 'put ''NSx0aGlzLl90YXBDb21wbGV0ZT1qNSx0aGlzLl90YXBFcnJvcj12fHxqNSx0aGlzLl90YXBDb21wbGV0ZT15fHxqNSxzZShoKT8odGhpcy5fY29udGV4dD10aGlzLHRoaXMuX3RhcE5leHQ9aCk6aCYmKHRoaXMuX2NvbnRleHQ9aCx0aGlzLl90YXBOZXh0PWgubmV4dHx8ajUsdGhpcy5fdGFw''@;'; put 'put ''RXJyb3I9aC5lcnJvcnx8ajUsdGhpcy5fdGFwQ29tcGxldGU9aC5jb21wbGV0ZXx8ajUpfV9uZXh0KGcpe3RyeXt0aGlzLl90YXBOZXh0LmNhbGwodGhpcy5fY29udGV4dCxnKX1jYXRjaChoKXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGgpfXRoaXMuZGVzdGluYXRpb24u''@;'; put 'put ''bmV4dChnKX1fZXJyb3IoZyl7dHJ5e3RoaXMuX3RhcEVycm9yLmNhbGwodGhpcy5fY29udGV4dCxnKX1jYXRjaChoKXtyZXR1cm4gdm9pZCB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKGgpfXRoaXMuZGVzdGluYXRpb24uZXJyb3IoZyl9X2NvbXBsZXRlKCl7dHJ5e3RoaXMuX3RhcENvbXBsZXRl''@;'; put 'put ''LmNhbGwodGhpcy5fY29udGV4dCl9Y2F0Y2goZyl7cmV0dXJuIHZvaWQgdGhpcy5kZXN0aW5hdGlvbi5lcnJvcihnKX1yZXR1cm4gdGhpcy5kZXN0aW5hdGlvbi5jb21wbGV0ZSgpfX1mdW5jdGlvbiBaNShkKXtyZXR1cm4gZnVuY3Rpb24oaCl7Y29uc3Qgdj1uZXcgdlkoZCkseT1oLmxpZnQo''@;'; put 'put ''dik7cmV0dXJuIHYuY2F1Z2h0PXl9fWNsYXNzIHZZe2NvbnN0cnVjdG9yKGcpe3RoaXMuc2VsZWN0b3I9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBhMGUoZyx0aGlzLnNlbGVjdG9yLHRoaXMuY2F1Z2h0KSl9fWNsYXNzIGEwZSBleHRlbmRzIE5ue2NvbnN0cnVjdG9yKGcs''@;'; put 'put ''aCx2KXtzdXBlcihnKSx0aGlzLnNlbGVjdG9yPWgsdGhpcy5jYXVnaHQ9dn1lcnJvcihnKXtpZighdGhpcy5pc1N0b3BwZWQpe2xldCBoO3RyeXtoPXRoaXMuc2VsZWN0b3IoZyx0aGlzLmNhdWdodCl9Y2F0Y2goQyl7cmV0dXJuIHZvaWQgc3VwZXIuZXJyb3IoQyl9dGhpcy5fdW5zdWJzY3Jp''@;'; put 'put ''YmVBbmRSZWN5Y2xlKCk7Y29uc3Qgdj1uZXcgeW4odGhpcyk7dGhpcy5hZGQodik7Y29uc3QgeT1lcihoLHYpO3khPT12JiZ0aGlzLmFkZCh5KX19fWZ1bmN0aW9uIGxJKGQsZyl7bGV0IGg9ITE7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg+PTImJihoPSEwKSxmdW5jdGlvbih5KXtyZXR1cm4g''@;'; put 'put ''eS5saWZ0KG5ldyBsMGUoZCxnLGgpKX19Y2xhc3MgbDBle2NvbnN0cnVjdG9yKGcsaCx2PSExKXt0aGlzLmFjY3VtdWxhdG9yPWcsdGhpcy5zZWVkPWgsdGhpcy5oYXNTZWVkPXZ9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgWkYoZyx0aGlzLmFjY3VtdWxhdG9yLHRoaXMuc2Vl''@;'; put 'put ''ZCx0aGlzLmhhc1NlZWQpKX19Y2xhc3MgWkYgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcpLHRoaXMuYWNjdW11bGF0b3I9aCx0aGlzLl9zZWVkPXYsdGhpcy5oYXNTZWVkPXksdGhpcy5pbmRleD0wfWdldCBzZWVkKCl7cmV0dXJuIHRoaXMuX3NlZWR9c2V0IHNlZWQo''@;'; put 'put ''Zyl7dGhpcy5oYXNTZWVkPSEwLHRoaXMuX3NlZWQ9Z31fbmV4dChnKXtpZih0aGlzLmhhc1NlZWQpcmV0dXJuIHRoaXMuX3RyeU5leHQoZyk7dGhpcy5zZWVkPWcsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpfV90cnlOZXh0KGcpe2NvbnN0IGg9dGhpcy5pbmRleCsrO2xldCB2O3RyeXt2PXRo''@;'; put 'put ''aXMuYWNjdW11bGF0b3IodGhpcy5zZWVkLGcsaCl9Y2F0Y2goeSl7dGhpcy5kZXN0aW5hdGlvbi5lcnJvcih5KX10aGlzLnNlZWQ9dix0aGlzLmRlc3RpbmF0aW9uLm5leHQodil9fWZ1bmN0aW9uIHo1KGQpe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gMD09PWQ/YUkoKTpoLmxpZnQobmV3''@;'; put 'put ''IHMwZShkKSl9fWNsYXNzIHMwZXtjb25zdHJ1Y3RvcihnKXtpZih0aGlzLnRvdGFsPWcsdGhpcy50b3RhbDwwKXRocm93IG5ldyBoWX1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyB1MGUoZyx0aGlzLnRvdGFsKSl9fWNsYXNzIHUwZSBleHRlbmRzIHp7Y29uc3RydWN0b3IoZyxo''@;'; put 'put ''KXtzdXBlcihnKSx0aGlzLnRvdGFsPWgsdGhpcy5yaW5nPW5ldyBBcnJheSx0aGlzLmNvdW50PTB9X25leHQoZyl7Y29uc3QgaD10aGlzLnJpbmcsdj10aGlzLnRvdGFsLHk9dGhpcy5jb3VudCsrO2gubGVuZ3RoPHY/aC5wdXNoKGcpOmhbeSV2XT1nfV9jb21wbGV0ZSgpe2NvbnN0IGc9dGhp''@;'; put 'put ''cy5kZXN0aW5hdGlvbjtsZXQgaD10aGlzLmNvdW50O2lmKGg+MCl7Y29uc3Qgdj10aGlzLmNvdW50Pj10aGlzLnRvdGFsP3RoaXMudG90YWw6dGhpcy5jb3VudCx5PXRoaXMucmluZztmb3IobGV0IEM9MDtDPHY7QysrKXtjb25zdCBJPWgrKyV2O2cubmV4dCh5W0ldKX19Zy5jb21wbGV0ZSgp''@;'; put 'put ''fX1mdW5jdGlvbiBBWShkLGcpe2NvbnN0IGg9YXJndW1lbnRzLmxlbmd0aD49MjtyZXR1cm4gdj0+di5waXBlKGQ/TzIoKHksQyk9PmQoeSxDLHYpKTpWLHo1KDEpLGg/aDcoZyk6cFkoKCk9Pm5ldyBKQSkpfWNsYXNzIGYwZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMucHJlZGljYXRlPWcsdGhp''@;'; put 'put ''cy5pbmNsdXNpdmU9aH1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBoMGUoZyx0aGlzLnByZWRpY2F0ZSx0aGlzLmluY2x1c2l2ZSkpfX1jbGFzcyBoMGUgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLnByZWRpY2F0ZT1oLHRoaXMuaW5jbHVzaXZl''@;'; put 'put ''PXYsdGhpcy5pbmRleD0wfV9uZXh0KGcpe2NvbnN0IGg9dGhpcy5kZXN0aW5hdGlvbjtsZXQgdjt0cnl7dj10aGlzLnByZWRpY2F0ZShnLHRoaXMuaW5kZXgrKyl9Y2F0Y2goeSl7cmV0dXJuIHZvaWQgaC5lcnJvcih5KX10aGlzLm5leHRPckNvbXBsZXRlKGcsdil9bmV4dE9yQ29tcGxldGUo''@;'; put 'put ''ZyxoKXtjb25zdCB2PXRoaXMuZGVzdGluYXRpb247Qm9vbGVhbihoKT92Lm5leHQoZyk6KHRoaXMuaW5jbHVzaXZlJiZ2Lm5leHQoZyksdi5jb21wbGV0ZSgpKX19ZnVuY3Rpb24gRzUoZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgV0MoZCkpfWNsYXNzIFdDe2NvbnN0cnVjdG9yKGcpe3RoaXMu''@;'; put 'put ''dmFsdWU9Z31jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBLQShnLHRoaXMudmFsdWUpKX19Y2xhc3MgS0EgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCl7c3VwZXIoZyksdGhpcy52YWx1ZT1ofV9uZXh0KGcpe3RoaXMuZGVzdGluYXRpb24ubmV4dCh0aGlzLnZhbHVlKX19ZnVu''@;'; put 'put ''Y3Rpb24gc0koZCl7cmV0dXJuIGc9PmcubGlmdChuZXcgZDBlKGQpKX1jbGFzcyBkMGV7Y29uc3RydWN0b3IoZyl7dGhpcy5jYWxsYmFjaz1nfWNhbGwoZyxoKXtyZXR1cm4gaC5zdWJzY3JpYmUobmV3IHlZKGcsdGhpcy5jYWxsYmFjaykpfX1jbGFzcyB5WSBleHRlbmRzIHp7Y29uc3RydWN0''@;'; put 'put ''b3IoZyxoKXtzdXBlcihnKSx0aGlzLmFkZChuZXcgVGUoaCkpfX1jb25zdCBqbD0icHJpbWFyeSI7Y2xhc3Mgd1l7Y29uc3RydWN0b3IoZyl7dGhpcy5wYXJhbXM9Z3x8e319aGFzKGcpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5wYXJhbXMsZyl9''@;'; put 'put ''Z2V0KGcpe2lmKHRoaXMuaGFzKGcpKXtjb25zdCBoPXRoaXMucGFyYW1zW2ddO3JldHVybiBBcnJheS5pc0FycmF5KGgpP2hbMF06aH1yZXR1cm4gbnVsbH1nZXRBbGwoZyl7aWYodGhpcy5oYXMoZykpe2NvbnN0IGg9dGhpcy5wYXJhbXNbZ107cmV0dXJuIEFycmF5LmlzQXJyYXkoaCk/aDpb''@;'; put 'put ''aF19cmV0dXJuW119Z2V0IGtleXMoKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5wYXJhbXMpfX1mdW5jdGlvbiBkNyhkKXtyZXR1cm4gbmV3IHdZKGQpfWZ1bmN0aW9uIGJZKGQsZyxoKXtjb25zdCB2PWgucGF0aC5zcGxpdCgiLyIpO2lmKHYubGVuZ3RoPmQubGVuZ3RofHwiZnVsbCI9PT1o''@;'; put 'put ''LnBhdGhNYXRjaCYmKGcuaGFzQ2hpbGRyZW4oKXx8di5sZW5ndGg8ZC5sZW5ndGgpKXJldHVybiBudWxsO2NvbnN0IHk9e307Zm9yKGxldCBDPTA7Qzx2Lmxlbmd0aDtDKyspe2NvbnN0IEk9dltDXSxaPWRbQ107aWYoSS5zdGFydHNXaXRoKCI6IikpeVtJLnN1YnN0cmluZygxKV09WjtlbHNl''@;'; put 'put ''IGlmKEkhPT1aLnBhdGgpcmV0dXJuIG51bGx9cmV0dXJue2NvbnN1bWVkOmQuc2xpY2UoMCx2Lmxlbmd0aCkscG9zUGFyYW1zOnl9fWZ1bmN0aW9uIGxwKGQsZyl7Y29uc3QgaD1kP09iamVjdC5rZXlzKGQpOnZvaWQgMCx2PWc/T2JqZWN0LmtleXMoZyk6dm9pZCAwO2lmKCFofHwhdnx8aC5s''@;'; put 'put ''ZW5ndGghPXYubGVuZ3RoKXJldHVybiExO2xldCB5O2ZvcihsZXQgQz0wO0M8aC5sZW5ndGg7QysrKWlmKHk9aFtDXSwhekYoZFt5XSxnW3ldKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiB6RihkLGcpe2lmKEFycmF5LmlzQXJyYXkoZCkmJkFycmF5LmlzQXJyYXkoZykpe2lmKGQubGVu''@;'; put 'put ''Z3RoIT09Zy5sZW5ndGgpcmV0dXJuITE7Y29uc3QgaD1bLi4uZF0uc29ydCgpLHY9Wy4uLmddLnNvcnQoKTtyZXR1cm4gaC5ldmVyeSgoeSxDKT0+dltDXT09PXkpfXJldHVybiBkPT09Z31mdW5jdGlvbiBHRihkKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLmNvbmNhdC5hcHBseShbXSxkKX1m''@;'; put 'put ''dW5jdGlvbiBXRihkKXtyZXR1cm4gZC5sZW5ndGg+MD9kW2QubGVuZ3RoLTFdOm51bGx9ZnVuY3Rpb24gVGMoZCxnKXtmb3IoY29uc3QgaCBpbiBkKWQuaGFzT3duUHJvcGVydHkoaCkmJmcoZFtoXSxoKX1mdW5jdGlvbiBCdShkKXtyZXR1cm4gSF8oZCk/ZDpWbShkKT9kbihQcm9taXNlLnJl''@;'; put 'put ''c29sdmUoZCkpOmFhKGQpfWNvbnN0IG0wZT17ZXhhY3Q6ZnVuY3Rpb24gUUYoZCxnLGgpe2lmKCFwNyhkLnNlZ21lbnRzLGcuc2VnbWVudHMpfHwhWUMoZC5zZWdtZW50cyxnLnNlZ21lbnRzLGgpfHxkLm51bWJlck9mQ2hpbGRyZW4hPT1nLm51bWJlck9mQ2hpbGRyZW4pcmV0dXJuITE7Zm9y''@;'; put 'put ''KGNvbnN0IHYgaW4gZy5jaGlsZHJlbilpZighZC5jaGlsZHJlblt2XXx8IVFGKGQuY2hpbGRyZW5bdl0sZy5jaGlsZHJlblt2XSxoKSlyZXR1cm4hMTtyZXR1cm4hMH0sc3Vic2V0OmtZfSxVRj17ZXhhY3Q6ZnVuY3Rpb24gdUkoZCxnKXtyZXR1cm4gbHAoZCxnKX0sc3Vic2V0OmZ1bmN0aW9u''@;'; put 'put ''IFc1KGQsZyl7cmV0dXJuIE9iamVjdC5rZXlzKGcpLmxlbmd0aDw9T2JqZWN0LmtleXMoZCkubGVuZ3RoJiZPYmplY3Qua2V5cyhnKS5ldmVyeShoPT56RihkW2hdLGdbaF0pKX0saWdub3JlZDooKT0+ITB9O2Z1bmN0aW9uIENZKGQsZyxoKXtyZXR1cm4gbTBlW2gucGF0aHNdKGQucm9vdCxn''@;'; put 'put ''LnJvb3QsaC5tYXRyaXhQYXJhbXMpJiZVRltoLnF1ZXJ5UGFyYW1zXShkLnF1ZXJ5UGFyYW1zLGcucXVlcnlQYXJhbXMpJiYhKCJleGFjdCI9PT1oLmZyYWdtZW50JiZkLmZyYWdtZW50IT09Zy5mcmFnbWVudCl9ZnVuY3Rpb24ga1koZCxnLGgpe3JldHVybiBTWShkLGcsZy5zZWdtZW50cyxo''@;'; put 'put ''KX1mdW5jdGlvbiBTWShkLGcsaCx2KXtpZihkLnNlZ21lbnRzLmxlbmd0aD5oLmxlbmd0aCl7Y29uc3QgeT1kLnNlZ21lbnRzLnNsaWNlKDAsaC5sZW5ndGgpO3JldHVybiEoIXA3KHksaCl8fGcuaGFzQ2hpbGRyZW4oKXx8IVlDKHksaCx2KSl9aWYoZC5zZWdtZW50cy5sZW5ndGg9PT1oLmxl''@;'; put 'put ''bmd0aCl7aWYoIXA3KGQuc2VnbWVudHMsaCl8fCFZQyhkLnNlZ21lbnRzLGgsdikpcmV0dXJuITE7Zm9yKGNvbnN0IHkgaW4gZy5jaGlsZHJlbilpZighZC5jaGlsZHJlblt5XXx8IWtZKGQuY2hpbGRyZW5beV0sZy5jaGlsZHJlblt5XSx2KSlyZXR1cm4hMTtyZXR1cm4hMH17Y29uc3QgeT1o''@;'; put 'put ''LnNsaWNlKDAsZC5zZWdtZW50cy5sZW5ndGgpLEM9aC5zbGljZShkLnNlZ21lbnRzLmxlbmd0aCk7cmV0dXJuISEocDcoZC5zZWdtZW50cyx5KSYmWUMoZC5zZWdtZW50cyx5LHYpJiZkLmNoaWxkcmVuW2psXSkmJlNZKGQuY2hpbGRyZW5bamxdLGcsQyx2KX19ZnVuY3Rpb24gWUMoZCxnLGgp''@;'; put 'put ''e3JldHVybiBnLmV2ZXJ5KCh2LHkpPT5VRltoXShkW3ldLnBhcmFtZXRlcnMsdi5wYXJhbWV0ZXJzKSl9Y2xhc3MgWTV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucm9vdD1nLHRoaXMucXVlcnlQYXJhbXM9aCx0aGlzLmZyYWdtZW50PXZ9Z2V0IHF1ZXJ5UGFyYW1NYXAoKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5fcXVlcnlQYXJhbU1hcHx8KHRoaXMuX3F1ZXJ5UGFyYW1NYXA9ZDcodGhpcy5xdWVyeVBhcmFtcykpLHRoaXMuX3F1ZXJ5UGFyYW1NYXB9dG9TdHJpbmcoKXtyZXR1cm4gTVkuc2VyaWFsaXplKHRoaXMpfX1jbGFzcyBjbHtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuc2VnbWVudHM9Zyx0aGlz''@;'; put 'put ''LmNoaWxkcmVuPWgsdGhpcy5wYXJlbnQ9bnVsbCxUYyhoLCh2LHkpPT52LnBhcmVudD10aGlzKX1oYXNDaGlsZHJlbigpe3JldHVybiB0aGlzLm51bWJlck9mQ2hpbGRyZW4+MH1nZXQgbnVtYmVyT2ZDaGlsZHJlbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoaWxkcmVuKS5sZW5ndGh9''@;'; put 'put ''dG9TdHJpbmcoKXtyZXR1cm4gUUModGhpcyl9fWNsYXNzIFVDe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5wYXRoPWcsdGhpcy5wYXJhbWV0ZXJzPWh9Z2V0IHBhcmFtZXRlck1hcCgpe3JldHVybiB0aGlzLl9wYXJhbWV0ZXJNYXB8fCh0aGlzLl9wYXJhbWV0ZXJNYXA9ZDcodGhpcy5wYXJhbWV0''@;'; put 'put ''ZXJzKSksdGhpcy5fcGFyYW1ldGVyTWFwfXRvU3RyaW5nKCl7cmV0dXJuIGNJKHRoaXMpfX1mdW5jdGlvbiBwNyhkLGcpe3JldHVybiBkLmxlbmd0aD09PWcubGVuZ3RoJiZkLmV2ZXJ5KChoLHYpPT5oLnBhdGg9PT1nW3ZdLnBhdGgpfWNsYXNzIFU1e31jbGFzcyBKRntwYXJzZShnKXtjb25z''@;'; put 'put ''dCBoPW5ldyB4WShnKTtyZXR1cm4gbmV3IFk1KGgucGFyc2VSb290U2VnbWVudCgpLGgucGFyc2VRdWVyeVBhcmFtcygpLGgucGFyc2VGcmFnbWVudCgpKX1zZXJpYWxpemUoZyl7Y29uc3QgaD1gLyR7c3AoZy5yb290LCEwKX1gLHY9ZnVuY3Rpb24gZkkoZCl7Y29uc3QgZz1PYmplY3Qua2V5''@;'; put 'put ''cyhkKS5tYXAoaD0+e2NvbnN0IHY9ZFtoXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh2KT92Lm1hcCh5PT5gJHskZChoKX09JHskZCh5KX1gKS5qb2luKCImIik6YCR7JGQoaCl9PSR7JGQodil9YH0pLmZpbHRlcihoPT4hIWgpO3JldHVybiBnLmxlbmd0aD9gPyR7Zy5qb2luKCImIil9YDoiIn0o''@;'; put 'put ''Zy5xdWVyeVBhcmFtcykseT0ic3RyaW5nIj09dHlwZW9mIGcuZnJhZ21lbnQ/YCMke2Z1bmN0aW9uIEVZKGQpe3JldHVybiBlbmNvZGVVUkkoZCl9KGcuZnJhZ21lbnQpfWA6IiI7cmV0dXJuYCR7aH0ke3Z9JHt5fWB9fWNvbnN0IE1ZPW5ldyBKRjtmdW5jdGlvbiBRQyhkKXtyZXR1cm4gZC5z''@;'; put 'put ''ZWdtZW50cy5tYXAoZz0+Y0koZykpLmpvaW4oIi8iKX1mdW5jdGlvbiBzcChkLGcpe2lmKCFkLmhhc0NoaWxkcmVuKCkpcmV0dXJuIFFDKGQpO2lmKGcpe2NvbnN0IGg9ZC5jaGlsZHJlbltqbF0/c3AoZC5jaGlsZHJlbltqbF0sITEpOiIiLHY9W107cmV0dXJuIFRjKGQuY2hpbGRyZW4sKHks''@;'; put 'put ''Qyk9PntDIT09amwmJnYucHVzaChgJHtDfToke3NwKHksITEpfWApfSksdi5sZW5ndGg+MD9gJHtofSgke3Yuam9pbigiLy8iKX0pYDpofXtjb25zdCBoPWZ1bmN0aW9uIEEwZShkLGcpe2xldCBoPVtdO3JldHVybiBUYyhkLmNoaWxkcmVuLCh2LHkpPT57eT09PWpsJiYoaD1oLmNvbmNhdChn''@;'; put 'put ''KHYseSkpKX0pLFRjKGQuY2hpbGRyZW4sKHYseSk9Pnt5IT09amwmJihoPWguY29uY2F0KGcodix5KSkpfSksaH0oZCwodix5KT0+eT09PWpsP1tzcChkLmNoaWxkcmVuW2psXSwhMSldOltgJHt5fToke3NwKHYsITEpfWBdKTtyZXR1cm4gMT09PU9iamVjdC5rZXlzKGQuY2hpbGRyZW4pLmxl''@;'; put 'put ''bmd0aCYmbnVsbCE9ZC5jaGlsZHJlbltqbF0/YCR7UUMoZCl9LyR7aFswXX1gOmAke1FDKGQpfS8oJHtoLmpvaW4oIi8vIil9KWB9fWZ1bmN0aW9uIFkzKGQpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZCkucmVwbGFjZSgvJTQwL2csIkAiKS5yZXBsYWNlKC8lM0EvZ2ksIjoiKS5yZXBs''@;'; put 'put ''YWNlKC8lMjQvZywiJCIpLnJlcGxhY2UoLyUyQy9naSwiLCIpfWZ1bmN0aW9uICRkKGQpe3JldHVybiBZMyhkKS5yZXBsYWNlKC8lM0IvZ2ksIjsiKX1mdW5jdGlvbiBYRihkKXtyZXR1cm4gWTMoZCkucmVwbGFjZSgvXCgvZywiJTI4IikucmVwbGFjZSgvXCkvZywiJTI5IikucmVwbGFjZSgv''@;'; put 'put ''JTI2L2dpLCImIil9ZnVuY3Rpb24gJEEoZCl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChkKX1mdW5jdGlvbiBKYyhkKXtyZXR1cm4gJEEoZC5yZXBsYWNlKC9cKy9nLCIlMjAiKSl9ZnVuY3Rpb24gY0koZCl7cmV0dXJuYCR7WEYoZC5wYXRoKX0ke2Z1bmN0aW9uIHkwZShkKXtyZXR1cm4g''@;'; put 'put ''T2JqZWN0LmtleXMoZCkubWFwKGc9PmA7JHtYRihnKX09JHtYRihkW2ddKX1gKS5qb2luKCIiKX0oZC5wYXJhbWV0ZXJzKX1gfWNvbnN0IHcwZT0vXlteXC8oKT87PSNdKy87ZnVuY3Rpb24gVWgoZCl7Y29uc3QgZz1kLm1hdGNoKHcwZSk7cmV0dXJuIGc/Z1swXToiIn1jb25zdCBoST0vXlte''@;'; put 'put ''PT8mI10rLyx6Nj0vXlteJiNdKy87Y2xhc3MgeFl7Y29uc3RydWN0b3IoZyl7dGhpcy51cmw9Zyx0aGlzLnJlbWFpbmluZz1nfXBhcnNlUm9vdFNlZ21lbnQoKXtyZXR1cm4gdGhpcy5jb25zdW1lT3B0aW9uYWwoIi8iKSwiIj09PXRoaXMucmVtYWluaW5nfHx0aGlzLnBlZWtTdGFydHNXaXRo''@;'; put 'put ''KCI/Iil8fHRoaXMucGVla1N0YXJ0c1dpdGgoIiMiKT9uZXcgY2woW10se30pOm5ldyBjbChbXSx0aGlzLnBhcnNlQ2hpbGRyZW4oKSl9cGFyc2VRdWVyeVBhcmFtcygpe2NvbnN0IGc9e307aWYodGhpcy5jb25zdW1lT3B0aW9uYWwoIj8iKSlkb3t0aGlzLnBhcnNlUXVlcnlQYXJhbShnKX13''@;'; put 'put ''aGlsZSh0aGlzLmNvbnN1bWVPcHRpb25hbCgiJiIpKTtyZXR1cm4gZ31wYXJzZUZyYWdtZW50KCl7cmV0dXJuIHRoaXMuY29uc3VtZU9wdGlvbmFsKCIjIik/ZGVjb2RlVVJJQ29tcG9uZW50KHRoaXMucmVtYWluaW5nKTpudWxsfXBhcnNlQ2hpbGRyZW4oKXtpZigiIj09PXRoaXMucmVtYWlu''@;'; put 'put ''aW5nKXJldHVybnt9O3RoaXMuY29uc3VtZU9wdGlvbmFsKCIvIik7Y29uc3QgZz1bXTtmb3IodGhpcy5wZWVrU3RhcnRzV2l0aCgiKCIpfHxnLnB1c2godGhpcy5wYXJzZVNlZ21lbnQoKSk7dGhpcy5wZWVrU3RhcnRzV2l0aCgiLyIpJiYhdGhpcy5wZWVrU3RhcnRzV2l0aCgiLy8iKSYmIXRo''@;'; put 'put ''aXMucGVla1N0YXJ0c1dpdGgoIi8oIik7KXRoaXMuY2FwdHVyZSgiLyIpLGcucHVzaCh0aGlzLnBhcnNlU2VnbWVudCgpKTtsZXQgaD17fTt0aGlzLnBlZWtTdGFydHNXaXRoKCIvKCIpJiYodGhpcy5jYXB0dXJlKCIvIiksaD10aGlzLnBhcnNlUGFyZW5zKCEwKSk7bGV0IHY9e307cmV0dXJu''@;'; put 'put ''IHRoaXMucGVla1N0YXJ0c1dpdGgoIigiKSYmKHY9dGhpcy5wYXJzZVBhcmVucyghMSkpLChnLmxlbmd0aD4wfHxPYmplY3Qua2V5cyhoKS5sZW5ndGg+MCkmJih2W2psXT1uZXcgY2woZyxoKSksdn1wYXJzZVNlZ21lbnQoKXtjb25zdCBnPVVoKHRoaXMucmVtYWluaW5nKTtpZigiIj09PWcm''@;'; put 'put ''JnRoaXMucGVla1N0YXJ0c1dpdGgoIjsiKSl0aHJvdyBuZXcgZW4oNDAwOSwhMSk7cmV0dXJuIHRoaXMuY2FwdHVyZShnKSxuZXcgVUMoJEEoZyksdGhpcy5wYXJzZU1hdHJpeFBhcmFtcygpKX1wYXJzZU1hdHJpeFBhcmFtcygpe2NvbnN0IGc9e307Zm9yKDt0aGlzLmNvbnN1bWVPcHRpb25h''@;'; put 'put ''bCgiOyIpOyl0aGlzLnBhcnNlUGFyYW0oZyk7cmV0dXJuIGd9cGFyc2VQYXJhbShnKXtjb25zdCBoPVVoKHRoaXMucmVtYWluaW5nKTtpZighaClyZXR1cm47dGhpcy5jYXB0dXJlKGgpO2xldCB2PSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9Iikpe2NvbnN0IHk9VWgodGhpcy5yZW1h''@;'; put 'put ''aW5pbmcpO3kmJih2PXksdGhpcy5jYXB0dXJlKHYpKX1nWyRBKGgpXT0kQSh2KX1wYXJzZVF1ZXJ5UGFyYW0oZyl7Y29uc3QgaD1mdW5jdGlvbiBLRihkKXtjb25zdCBnPWQubWF0Y2goaEkpO3JldHVybiBnP2dbMF06IiJ9KHRoaXMucmVtYWluaW5nKTtpZighaClyZXR1cm47dGhpcy5jYXB0''@;'; put 'put ''dXJlKGgpO2xldCB2PSIiO2lmKHRoaXMuY29uc3VtZU9wdGlvbmFsKCI9Iikpe2NvbnN0IEk9ZnVuY3Rpb24gYjBlKGQpe2NvbnN0IGc9ZC5tYXRjaCh6Nik7cmV0dXJuIGc/Z1swXToiIn0odGhpcy5yZW1haW5pbmcpO0kmJih2PUksdGhpcy5jYXB0dXJlKHYpKX1jb25zdCB5PUpjKGgpLEM9''@;'; put 'put ''SmModik7aWYoZy5oYXNPd25Qcm9wZXJ0eSh5KSl7bGV0IEk9Z1t5XTtBcnJheS5pc0FycmF5KEkpfHwoST1bSV0sZ1t5XT1JKSxJLnB1c2goQyl9ZWxzZSBnW3ldPUN9cGFyc2VQYXJlbnMoZyl7Y29uc3QgaD17fTtmb3IodGhpcy5jYXB0dXJlKCIoIik7IXRoaXMuY29uc3VtZU9wdGlvbmFs''@;'; put 'put ''KCIpIikmJnRoaXMucmVtYWluaW5nLmxlbmd0aD4wOyl7Y29uc3Qgdj1VaCh0aGlzLnJlbWFpbmluZykseT10aGlzLnJlbWFpbmluZ1t2Lmxlbmd0aF07aWYoIi8iIT09eSYmIikiIT09eSYmIjsiIT09eSl0aHJvdyBuZXcgZW4oNDAxMCwhMSk7bGV0IEM7di5pbmRleE9mKCI6Iik+LTE/KEM9''@;'; put 'put ''di5zbGljZSgwLHYuaW5kZXhPZigiOiIpKSx0aGlzLmNhcHR1cmUoQyksdGhpcy5jYXB0dXJlKCI6IikpOmcmJihDPWpsKTtjb25zdCBJPXRoaXMucGFyc2VDaGlsZHJlbigpO2hbQ109MT09PU9iamVjdC5rZXlzKEkpLmxlbmd0aD9JW2psXTpuZXcgY2woW10sSSksdGhpcy5jb25zdW1lT3B0''@;'; put 'put ''aW9uYWwoIi8vIil9cmV0dXJuIGh9cGVla1N0YXJ0c1dpdGgoZyl7cmV0dXJuIHRoaXMucmVtYWluaW5nLnN0YXJ0c1dpdGgoZyl9Y29uc3VtZU9wdGlvbmFsKGcpe3JldHVybiEhdGhpcy5wZWVrU3RhcnRzV2l0aChnKSYmKHRoaXMucmVtYWluaW5nPXRoaXMucmVtYWluaW5nLnN1YnN0cmlu''@;'; put 'put ''ZyhnLmxlbmd0aCksITApfWNhcHR1cmUoZyl7aWYoIXRoaXMuY29uc3VtZU9wdGlvbmFsKGcpKXRocm93IG5ldyBlbig0MDExLCExKX19ZnVuY3Rpb24gZEkoZCl7cmV0dXJuIGQuc2VnbWVudHMubGVuZ3RoPjA/bmV3IGNsKFtdLHtbamxdOmR9KTpkfWZ1bmN0aW9uIHBJKGQpe2NvbnN0IGc9''@;'; put 'put ''e307Zm9yKGNvbnN0IHYgb2YgT2JqZWN0LmtleXMoZC5jaGlsZHJlbikpe2NvbnN0IEM9cEkoZC5jaGlsZHJlblt2XSk7KEMuc2VnbWVudHMubGVuZ3RoPjB8fEMuaGFzQ2hpbGRyZW4oKSkmJihnW3ZdPUMpfXJldHVybiBmdW5jdGlvbiBfMGUoZCl7aWYoMT09PWQubnVtYmVyT2ZDaGlsZHJl''@;'; put 'put ''biYmZC5jaGlsZHJlbltqbF0pe2NvbnN0IGc9ZC5jaGlsZHJlbltqbF07cmV0dXJuIG5ldyBjbChkLnNlZ21lbnRzLmNvbmNhdChnLnNlZ21lbnRzKSxnLmNoaWxkcmVuKX1yZXR1cm4gZH0obmV3IGNsKGQuc2VnbWVudHMsZykpfWZ1bmN0aW9uIGc3KGQpe3JldHVybiBkIGluc3RhbmNlb2Yg''@;'; put 'put ''WTV9ZnVuY3Rpb24gUzBlKGQsZyxoLHYseSl7dmFyIEM7aWYoMD09PWgubGVuZ3RoKXJldHVybiBleShnLnJvb3QsZy5yb290LGcucm9vdCx2LHkpO2NvbnN0IFo9ZnVuY3Rpb24gJEYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkWzBdJiYxPT09ZC5sZW5ndGgmJiIvIj09PWRbMF0pcmV0dXJu''@;'; put 'put ''IG5ldyBUWSghMCwwLGQpO2xldCBnPTAsaD0hMTtjb25zdCB2PWQucmVkdWNlKCh5LEMsSSk9PntpZigib2JqZWN0Ij09dHlwZW9mIEMmJm51bGwhPUMpe2lmKEMub3V0bGV0cyl7Y29uc3QgWj17fTtyZXR1cm4gVGMoQy5vdXRsZXRzLCh1ZSxfZSk9PntaW19lXT0ic3RyaW5nIj09dHlwZW9m''@;'; put 'put ''IHVlP3VlLnNwbGl0KCIvIik6dWV9KSxbLi4ueSx7b3V0bGV0czpafV19aWYoQy5zZWdtZW50UGF0aClyZXR1cm5bLi4ueSxDLnNlZ21lbnRQYXRoXX1yZXR1cm4ic3RyaW5nIiE9dHlwZW9mIEM/Wy4uLnksQ106MD09PUk/KEMuc3BsaXQoIi8iKS5mb3JFYWNoKChaLHVlKT0+ezA9PXVlJiYi''@;'; put 'put ''LiI9PT1afHwoMD09dWUmJiIiPT09Wj9oPSEwOiIuLiI9PT1aP2crKzoiIiE9WiYmeS5wdXNoKFopKX0pLHkpOlsuLi55LENdfSxbXSk7cmV0dXJuIG5ldyBUWShoLGcsdil9KGgpO3JldHVybiBaLnRvUm9vdCgpP2V5KGcucm9vdCxnLnJvb3QsbmV3IGNsKFtdLHt9KSx2LHkpOmZ1bmN0aW9u''@;'; put 'put ''IHVlKEJlKXt2YXIgTmU7Y29uc3QgS2U9ZnVuY3Rpb24gTTBlKGQsZyxoLHYpe2lmKGQuaXNBYnNvbHV0ZSlyZXR1cm4gbmV3IHR5KGcucm9vdCwhMCwwKTtpZigtMT09PXYpcmV0dXJuIG5ldyB0eShoLGg9PT1nLnJvb3QsMCk7cmV0dXJuIGZ1bmN0aW9uIGVIKGQsZyxoKXtsZXQgdj1kLHk9''@;'; put 'put ''ZyxDPWg7Zm9yKDtDPnk7KXtpZihDLT15LHY9di5wYXJlbnQsIXYpdGhyb3cgbmV3IGVuKDQwMDUsITEpO3k9di5zZWdtZW50cy5sZW5ndGh9cmV0dXJuIG5ldyB0eSh2LCExLHktQyl9KGgsdisocUEoZC5jb21tYW5kc1swXSk/MDoxKSxkLm51bWJlck9mRG91YmxlRG90cyl9KFosZyxudWxs''@;'; put 'put ''PT09KE5lPWQuc25hcHNob3QpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUuX3VybFNlZ21lbnQsQmUpLHB0PUtlLnByb2Nlc3NDaGlsZHJlbj9ueShLZS5zZWdtZW50R3JvdXAsS2UuaW5kZXgsWi5jb21tYW5kcyk6bUkoS2Uuc2VnbWVudEdyb3VwLEtlLmluZGV4LFouY29tbWFuZHMpO3JldHVy''@;'; put 'put ''biBleShnLnJvb3QsS2Uuc2VnbWVudEdyb3VwLHB0LHYseSl9KG51bGw9PT0oQz1kLnNuYXBzaG90KXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5fbGFzdFBhdGhJbmRleCl9ZnVuY3Rpb24gcUEoZCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT1kJiYhZC5vdXRsZXRzJiYhZC5zZWdt''@;'; put 'put ''ZW50UGF0aH1mdW5jdGlvbiBYQyhkKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGQmJm51bGwhPWQmJmQub3V0bGV0c31mdW5jdGlvbiBleShkLGcsaCx2LHkpe2xldCBJLEM9e307diYmVGModiwodWUsX2UpPT57Q1tfZV09QXJyYXkuaXNBcnJheSh1ZSk/dWUubWFwKEJlPT5gJHtCZX1gKTpg''@;'; put 'put ''JHt1ZX1gfSksST1kPT09Zz9oOmdJKGQsZyxoKTtjb25zdCBaPWRJKHBJKEkpKTtyZXR1cm4gbmV3IFk1KFosQyx5KX1mdW5jdGlvbiBnSShkLGcsaCl7Y29uc3Qgdj17fTtyZXR1cm4gVGMoZC5jaGlsZHJlbiwoeSxDKT0+e3ZbQ109eT09PWc/aDpnSSh5LGcsaCl9KSxuZXcgY2woZC5zZWdt''@;'; put 'put ''ZW50cyx2KX1jbGFzcyBUWXtjb25zdHJ1Y3RvcihnLGgsdil7aWYodGhpcy5pc0Fic29sdXRlPWcsdGhpcy5udW1iZXJPZkRvdWJsZURvdHM9aCx0aGlzLmNvbW1hbmRzPXYsZyYmdi5sZW5ndGg+MCYmcUEodlswXSkpdGhyb3cgbmV3IGVuKDQwMDMsITEpO2NvbnN0IHk9di5maW5kKFhDKTtp''@;'; put 'put ''Zih5JiZ5IT09V0YodikpdGhyb3cgbmV3IGVuKDQwMDQsITEpfXRvUm9vdCgpe3JldHVybiB0aGlzLmlzQWJzb2x1dGUmJjE9PT10aGlzLmNvbW1hbmRzLmxlbmd0aCYmIi8iPT10aGlzLmNvbW1hbmRzWzBdfX1jbGFzcyB0eXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5zZWdtZW50R3JvdXA9''@;'; put 'put ''Zyx0aGlzLnByb2Nlc3NDaGlsZHJlbj1oLHRoaXMuaW5kZXg9dn19ZnVuY3Rpb24gbUkoZCxnLGgpe2lmKGR8fChkPW5ldyBjbChbXSx7fSkpLDA9PT1kLnNlZ21lbnRzLmxlbmd0aCYmZC5oYXNDaGlsZHJlbigpKXJldHVybiBueShkLGcsaCk7Y29uc3Qgdj1mdW5jdGlvbiB0SChkLGcsaCl7''@;'; put 'put ''bGV0IHY9MCx5PWc7Y29uc3QgQz17bWF0Y2g6ITEscGF0aEluZGV4OjAsY29tbWFuZEluZGV4OjB9O2Zvcig7eTxkLnNlZ21lbnRzLmxlbmd0aDspe2lmKHY+PWgubGVuZ3RoKXJldHVybiBDO2NvbnN0IEk9ZC5zZWdtZW50c1t5XSxaPWhbdl07aWYoWEMoWikpYnJlYWs7Y29uc3QgdWU9YCR7''@;'; put 'put ''Wn1gLF9lPXY8aC5sZW5ndGgtMT9oW3YrMV06bnVsbDtpZih5PjAmJnZvaWQgMD09PXVlKWJyZWFrO2lmKHVlJiZfZSYmIm9iamVjdCI9PXR5cGVvZiBfZSYmdm9pZCAwPT09X2Uub3V0bGV0cyl7aWYoIUtDKHVlLF9lLEkpKXJldHVybiBDO3YrPTJ9ZWxzZXtpZighS0ModWUse30sSSkpcmV0''@;'; put 'put ''dXJuIEM7disrfXkrK31yZXR1cm57bWF0Y2g6ITAscGF0aEluZGV4OnksY29tbWFuZEluZGV4OnZ9fShkLGcsaCkseT1oLnNsaWNlKHYuY29tbWFuZEluZGV4KTtpZih2Lm1hdGNoJiZ2LnBhdGhJbmRleDxkLnNlZ21lbnRzLmxlbmd0aCl7Y29uc3QgQz1uZXcgY2woZC5zZWdtZW50cy5zbGlj''@;'; put 'put ''ZSgwLHYucGF0aEluZGV4KSx7fSk7cmV0dXJuIEMuY2hpbGRyZW5bamxdPW5ldyBjbChkLnNlZ21lbnRzLnNsaWNlKHYucGF0aEluZGV4KSxkLmNoaWxkcmVuKSxueShDLDAseSl9cmV0dXJuIHYubWF0Y2gmJjA9PT15Lmxlbmd0aD9uZXcgY2woZC5zZWdtZW50cyx7fSk6di5tYXRjaCYmIWQu''@;'; put 'put ''aGFzQ2hpbGRyZW4oKT92SShkLGcsaCk6di5tYXRjaD9ueShkLDAseSk6dkkoZCxnLGgpfWZ1bmN0aW9uIG55KGQsZyxoKXtpZigwPT09aC5sZW5ndGgpcmV0dXJuIG5ldyBjbChkLnNlZ21lbnRzLHt9KTt7Y29uc3Qgdj1mdW5jdGlvbiBFMGUoZCl7cmV0dXJuIFhDKGRbMF0pP2RbMF0ub3V0''@;'; put 'put ''bGV0czp7W2psXTpkfX0oaCkseT17fTtyZXR1cm4gVGModiwoQyxJKT0+eyJzdHJpbmciPT10eXBlb2YgQyYmKEM9W0NdKSxudWxsIT09QyYmKHlbSV09bUkoZC5jaGlsZHJlbltJXSxnLEMpKX0pLFRjKGQuY2hpbGRyZW4sKEMsSSk9Pnt2b2lkIDA9PT12W0ldJiYoeVtJXT1DKX0pLG5ldyBj''@;'; put 'put ''bChkLnNlZ21lbnRzLHkpfX1mdW5jdGlvbiB2SShkLGcsaCl7Y29uc3Qgdj1kLnNlZ21lbnRzLnNsaWNlKDAsZyk7bGV0IHk9MDtmb3IoO3k8aC5sZW5ndGg7KXtjb25zdCBDPWhbeV07aWYoWEMoQykpe2NvbnN0IHVlPUlZKEMub3V0bGV0cyk7cmV0dXJuIG5ldyBjbCh2LHVlKX1pZigwPT09''@;'; put 'put ''eSYmcUEoaFswXSkpe3YucHVzaChuZXcgVUMoZC5zZWdtZW50c1tnXS5wYXRoLG5IKGhbMF0pKSkseSsrO2NvbnRpbnVlfWNvbnN0IEk9WEMoQyk/Qy5vdXRsZXRzW2psXTpgJHtDfWAsWj15PGgubGVuZ3RoLTE/aFt5KzFdOm51bGw7SSYmWiYmcUEoWik/KHYucHVzaChuZXcgVUMoSSxuSCha''@;'; put 'put ''KSkpLHkrPTIpOih2LnB1c2gobmV3IFVDKEkse30pKSx5KyspfXJldHVybiBuZXcgY2wodix7fSl9ZnVuY3Rpb24gSVkoZCl7Y29uc3QgZz17fTtyZXR1cm4gVGMoZCwoaCx2KT0+eyJzdHJpbmciPT10eXBlb2YgaCYmKGg9W2hdKSxudWxsIT09aCYmKGdbdl09dkkobmV3IGNsKFtdLHt9KSww''@;'; put 'put ''LGgpKX0pLGd9ZnVuY3Rpb24gbkgoZCl7Y29uc3QgZz17fTtyZXR1cm4gVGMoZCwoaCx2KT0+Z1t2XT1gJHtofWApLGd9ZnVuY3Rpb24gS0MoZCxnLGgpe3JldHVybiBkPT1oLnBhdGgmJmxwKGcsaC5wYXJhbWV0ZXJzKX1jbGFzcyB1cHtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuaWQ9Zyx0aGlz''@;'; put 'put ''LnVybD1ofX1jbGFzcyBBSSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2PSJpbXBlcmF0aXZlIix5PW51bGwpe3N1cGVyKGcsaCksdGhpcy50eXBlPTAsdGhpcy5uYXZpZ2F0aW9uVHJpZ2dlcj12LHRoaXMucmVzdG9yZWRTdGF0ZT15fXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25T''@;'; put 'put ''dGFydChpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nKWB9fWNsYXNzIEc2IGV4dGVuZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMudHlwZT0xfXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25FbmQoaWQ6''@;'; put 'put ''ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9JylgfX1jbGFzcyB5SSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy5yZWFzb249dix0aGlzLmNvZGU9eSx0aGlz''@;'; put 'put ''LnR5cGU9Mn10b1N0cmluZygpe3JldHVybmBOYXZpZ2F0aW9uQ2FuY2VsKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScpYH19Y2xhc3MgckggZXh0ZW5kcyB1cHtjb25zdHJ1Y3RvcihnLGgsdix5KXtzdXBlcihnLGgpLHRoaXMuZXJyb3I9dix0aGlzLnRhcmdldD15LHRoaXMu''@;'; put 'put ''dHlwZT0zfXRvU3RyaW5nKCl7cmV0dXJuYE5hdmlnYXRpb25FcnJvcihpZDogJHt0aGlzLmlkfSwgdXJsOiAnJHt0aGlzLnVybH0nLCBlcnJvcjogJHt0aGlzLmVycm9yfSlgfX1jbGFzcyBEWSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRl''@;'; put 'put ''clJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0aGlzLnR5cGU9NH10b1N0cmluZygpe3JldHVybmBSb3V0ZXNSZWNvZ25pemVkKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAk''@;'; put 'put ''e3RoaXMuc3RhdGV9KWB9fWNsYXNzIHgwZSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0aGlzLnR5cGU9N310b1N0cmluZygpe3JldHVybmBHdWFyZHNDaGVja1N0YXJ0KGlkOiAke3RoaXMu''@;'; put 'put ''aWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVkaXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9KWB9fWNsYXNzIGlIIGV4dGVuZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYseSxDKXtzdXBlcihnLGgpLHRoaXMudXJsQWZ0ZXJS''@;'; put 'put ''ZWRpcmVjdHM9dix0aGlzLnN0YXRlPXksdGhpcy5zaG91bGRBY3RpdmF0ZT1DLHRoaXMudHlwZT04fXRvU3RyaW5nKCl7cmV0dXJuYEd1YXJkc0NoZWNrRW5kKGlkOiAke3RoaXMuaWR9LCB1cmw6ICcke3RoaXMudXJsfScsIHVybEFmdGVyUmVkaXJlY3RzOiAnJHt0aGlzLnVybEFmdGVyUmVk''@;'; put 'put ''aXJlY3RzfScsIHN0YXRlOiAke3RoaXMuc3RhdGV9LCBzaG91bGRBY3RpdmF0ZTogJHt0aGlzLnNob3VsZEFjdGl2YXRlfSlgfX1jbGFzcyBMWSBleHRlbmRzIHVwe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGcsaCksdGhpcy51cmxBZnRlclJlZGlyZWN0cz12LHRoaXMuc3RhdGU9eSx0''@;'; put 'put ''aGlzLnR5cGU9NX10b1N0cmluZygpe3JldHVybmBSZXNvbHZlU3RhcnQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRpcmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7dGhpcy5zdGF0ZX0pYH19Y2xhc3MgVDBlIGV4dGVu''@;'; put 'put ''ZHMgdXB7Y29uc3RydWN0b3IoZyxoLHYseSl7c3VwZXIoZyxoKSx0aGlzLnVybEFmdGVyUmVkaXJlY3RzPXYsdGhpcy5zdGF0ZT15LHRoaXMudHlwZT02fXRvU3RyaW5nKCl7cmV0dXJuYFJlc29sdmVFbmQoaWQ6ICR7dGhpcy5pZH0sIHVybDogJyR7dGhpcy51cmx9JywgdXJsQWZ0ZXJSZWRp''@;'; put 'put ''cmVjdHM6ICcke3RoaXMudXJsQWZ0ZXJSZWRpcmVjdHN9Jywgc3RhdGU6ICR7dGhpcy5zdGF0ZX0pYH19Y2xhc3MgSTBle2NvbnN0cnVjdG9yKGcpe3RoaXMucm91dGU9Zyx0aGlzLnR5cGU9OX10b1N0cmluZygpe3JldHVybmBSb3V0ZUNvbmZpZ0xvYWRTdGFydChwYXRoOiAke3RoaXMucm91''@;'; put 'put ''dGUucGF0aH0pYH19Y2xhc3MgJEN7Y29uc3RydWN0b3IoZyl7dGhpcy5yb3V0ZT1nLHRoaXMudHlwZT0xMH10b1N0cmluZygpe3JldHVybmBSb3V0ZUNvbmZpZ0xvYWRFbmQocGF0aDogJHt0aGlzLnJvdXRlLnBhdGh9KWB9fWNsYXNzIG9Ie2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNob3Q9''@;'; put 'put ''Zyx0aGlzLnR5cGU9MTF9dG9TdHJpbmcoKXtyZXR1cm5gQ2hpbGRBY3RpdmF0aW9uU3RhcnQocGF0aDogJyR7dGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZyYmdGhpcy5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRofHwiIn0nKWB9fWNsYXNzIE9Ze2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNo''@;'; put 'put ''b3Q9Zyx0aGlzLnR5cGU9MTJ9dG9TdHJpbmcoKXtyZXR1cm5gQ2hpbGRBY3RpdmF0aW9uRW5kKHBhdGg6ICcke3RoaXMuc25hcHNob3Qucm91dGVDb25maWcmJnRoaXMuc25hcHNob3Qucm91dGVDb25maWcucGF0aHx8IiJ9JylgfX1jbGFzcyBSWXtjb25zdHJ1Y3RvcihnKXt0aGlzLnNuYXBz''@;'; put 'put ''aG90PWcsdGhpcy50eXBlPTEzfXRvU3RyaW5nKCl7cmV0dXJuYEFjdGl2YXRpb25TdGFydChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3MgRDBle2NvbnN0cnVjdG9yKGcpe3RoaXMuc25hcHNo''@;'; put 'put ''b3Q9Zyx0aGlzLnR5cGU9MTR9dG9TdHJpbmcoKXtyZXR1cm5gQWN0aXZhdGlvbkVuZChwYXRoOiAnJHt0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnJiZ0aGlzLnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGh8fCIifScpYH19Y2xhc3Mgd0l7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMucm91dGVy''@;'; put 'put ''RXZlbnQ9Zyx0aGlzLnBvc2l0aW9uPWgsdGhpcy5hbmNob3I9dix0aGlzLnR5cGU9MTV9dG9TdHJpbmcoKXtyZXR1cm5gU2Nyb2xsKGFuY2hvcjogJyR7dGhpcy5hbmNob3J9JywgcG9zaXRpb246ICcke3RoaXMucG9zaXRpb24/YCR7dGhpcy5wb3NpdGlvblswXX0sICR7dGhpcy5wb3NpdGlv''@;'; put 'put ''blsxXX1gOm51bGx9JylgfX1jbGFzcyBiSXtjb25zdHJ1Y3RvcihnKXt0aGlzLl9yb290PWd9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm9vdC52YWx1ZX1wYXJlbnQoZyl7Y29uc3QgaD10aGlzLnBhdGhGcm9tUm9vdChnKTtyZXR1cm4gaC5sZW5ndGg+MT9oW2gubGVuZ3RoLTJdOm51bGx9''@;'; put 'put ''Y2hpbGRyZW4oZyl7Y29uc3QgaD1yeShnLHRoaXMuX3Jvb3QpO3JldHVybiBoP2guY2hpbGRyZW4ubWFwKHY9PnYudmFsdWUpOltdfWZpcnN0Q2hpbGQoZyl7Y29uc3QgaD1yeShnLHRoaXMuX3Jvb3QpO3JldHVybiBoJiZoLmNoaWxkcmVuLmxlbmd0aD4wP2guY2hpbGRyZW5bMF0udmFsdWU6''@;'; put 'put ''bnVsbH1zaWJsaW5ncyhnKXtjb25zdCBoPWl5KGcsdGhpcy5fcm9vdCk7cmV0dXJuIGgubGVuZ3RoPDI/W106aFtoLmxlbmd0aC0yXS5jaGlsZHJlbi5tYXAoeT0+eS52YWx1ZSkuZmlsdGVyKHk9PnkhPT1nKX1wYXRoRnJvbVJvb3QoZyl7cmV0dXJuIGl5KGcsdGhpcy5fcm9vdCkubWFwKGg9''@;'; put 'put ''PmgudmFsdWUpfX1mdW5jdGlvbiByeShkLGcpe2lmKGQ9PT1nLnZhbHVlKXJldHVybiBnO2Zvcihjb25zdCBoIG9mIGcuY2hpbGRyZW4pe2NvbnN0IHY9cnkoZCxoKTtpZih2KXJldHVybiB2fXJldHVybiBudWxsfWZ1bmN0aW9uIGl5KGQsZyl7aWYoZD09PWcudmFsdWUpcmV0dXJuW2ddO2Zv''@;'; put 'put ''cihjb25zdCBoIG9mIGcuY2hpbGRyZW4pe2NvbnN0IHY9aXkoZCxoKTtpZih2Lmxlbmd0aClyZXR1cm4gdi51bnNoaWZ0KGcpLHZ9cmV0dXJuW119Y2xhc3MgVzZ7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnZhbHVlPWcsdGhpcy5jaGlsZHJlbj1ofXRvU3RyaW5nKCl7cmV0dXJuYFRyZWVOb2Rl''@;'; put 'put ''KCR7dGhpcy52YWx1ZX0pYH19ZnVuY3Rpb24gY3AoZCl7Y29uc3QgZz17fTtyZXR1cm4gZCYmZC5jaGlsZHJlbi5mb3JFYWNoKGg9PmdbaC52YWx1ZS5vdXRsZXRdPWgpLGd9Y2xhc3MgQlkgZXh0ZW5kcyBiSXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKGcpLHRoaXMuc25hcHNob3Q9aCxfSSh0''@;'; put 'put ''aGlzLGcpfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuc25hcHNob3QudG9TdHJpbmcoKX19ZnVuY3Rpb24gUFkoZCxnKXtjb25zdCBoPWZ1bmN0aW9uIE8wZShkLGcpe2NvbnN0IEk9bmV3IHFDKFtdLHt9LHt9LCIiLHt9LGpsLGcsbnVsbCxkLnJvb3QsLTEse30pO3JldHVybiBuZXcgTlkoIiIs''@;'; put 'put ''bmV3IFc2KEksW10pKX0oZCxnKSx2PW5ldyBmcyhbbmV3IFVDKCIiLHt9KV0pLHk9bmV3IGZzKHt9KSxDPW5ldyBmcyh7fSksST1uZXcgZnMoe30pLFo9bmV3IGZzKCIiKSx1ZT1uZXcgUHUodix5LEksWixDLGpsLGcsaC5yb290KTtyZXR1cm4gdWUuc25hcHNob3Q9aC5yb290LG5ldyBCWShu''@;'; put 'put ''ZXcgVzYodWUsW10pLGgpfWNsYXNzIFB1e2NvbnN0cnVjdG9yKGcsaCx2LHksQyxJLFosdWUpe3RoaXMudXJsPWcsdGhpcy5wYXJhbXM9aCx0aGlzLnF1ZXJ5UGFyYW1zPXYsdGhpcy5mcmFnbWVudD15LHRoaXMuZGF0YT1DLHRoaXMub3V0bGV0PUksdGhpcy5jb21wb25lbnQ9Wix0aGlzLl9m''@;'; put 'put ''dXR1cmVTbmFwc2hvdD11ZX1nZXQgcm91dGVDb25maWcoKXtyZXR1cm4gdGhpcy5fZnV0dXJlU25hcHNob3Qucm91dGVDb25maWd9Z2V0IHJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucm9vdH1nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhcmVudCh0aGlz''@;'; put 'put ''KX1nZXQgZmlyc3RDaGlsZCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5maXJzdENoaWxkKHRoaXMpfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5jaGlsZHJlbih0aGlzKX1nZXQgcGF0aEZyb21Sb290KCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLnBhdGhG''@;'; put 'put ''cm9tUm9vdCh0aGlzKX1nZXQgcGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcGFyYW1NYXB8fCh0aGlzLl9wYXJhbU1hcD10aGlzLnBhcmFtcy5waXBlKG10KGc9PmQ3KGcpKSkpLHRoaXMuX3BhcmFtTWFwfWdldCBxdWVyeVBhcmFtTWFwKCl7cmV0dXJuIHRoaXMuX3F1ZXJ5UGFyYW1NYXB8fCh0''@;'; put 'put ''aGlzLl9xdWVyeVBhcmFtTWFwPXRoaXMucXVlcnlQYXJhbXMucGlwZShtdChnPT5kNyhnKSkpKSx0aGlzLl9xdWVyeVBhcmFtTWFwfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuc25hcHNob3Q/dGhpcy5zbmFwc2hvdC50b1N0cmluZygpOmBGdXR1cmUoJHt0aGlzLl9mdXR1cmVTbmFwc2hvdH0p''@;'; put 'put ''YH19ZnVuY3Rpb24gRlkoZCxnPSJlbXB0eU9ubHkiKXtjb25zdCBoPWQucGF0aEZyb21Sb290O2xldCB2PTA7aWYoImFsd2F5cyIhPT1nKWZvcih2PWgubGVuZ3RoLTE7dj49MTspe2NvbnN0IHk9aFt2XSxDPWhbdi0xXTtpZih5LnJvdXRlQ29uZmlnJiYiIj09PXkucm91dGVDb25maWcucGF0''@;'; put 'put ''aCl2LS07ZWxzZXtpZihDLmNvbXBvbmVudClicmVhazt2LS19fXJldHVybiBmdW5jdGlvbiBIWShkKXtyZXR1cm4gZC5yZWR1Y2UoKGcsaCk9Pnt2YXIgdjtyZXR1cm57cGFyYW1zOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxnLnBhcmFtcyksaC5wYXJhbXMpLGRhdGE6T2JqZWN0''@;'; put 'put ''LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcuZGF0YSksaC5kYXRhKSxyZXNvbHZlOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saC5kYXRhKSxnLnJlc29sdmUpLG51bGw9PT0odj1oLnJvdXRlQ29uZmlnKXx8dm9pZCAwPT09dj92''@;'; put 'put ''b2lkIDA6di5kYXRhKSxoLl9yZXNvbHZlZERhdGEpfX0se3BhcmFtczp7fSxkYXRhOnt9LHJlc29sdmU6e319KX0oaC5zbGljZSh2KSl9Y2xhc3MgcUN7Y29uc3RydWN0b3IoZyxoLHYseSxDLEksWix1ZSxfZSxCZSxOZSxLZSl7dGhpcy51cmw9Zyx0aGlzLnBhcmFtcz1oLHRoaXMucXVlcnlQ''@;'; put 'put ''YXJhbXM9dix0aGlzLmZyYWdtZW50PXksdGhpcy5kYXRhPUMsdGhpcy5vdXRsZXQ9SSx0aGlzLmNvbXBvbmVudD1aLHRoaXMucm91dGVDb25maWc9dWUsdGhpcy5fdXJsU2VnbWVudD1fZSx0aGlzLl9sYXN0UGF0aEluZGV4PUJlLHRoaXMuX2NvcnJlY3RlZExhc3RQYXRoSW5kZXg9bnVsbCE9''@;'; put 'put ''S2U/S2U6QmUsdGhpcy5fcmVzb2x2ZT1OZX1nZXQgcm9vdCgpe3JldHVybiB0aGlzLl9yb3V0ZXJTdGF0ZS5yb290fWdldCBwYXJlbnQoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGFyZW50KHRoaXMpfWdldCBmaXJzdENoaWxkKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmZpcnN0''@;'; put 'put ''Q2hpbGQodGhpcyl9Z2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMuX3JvdXRlclN0YXRlLmNoaWxkcmVuKHRoaXMpfWdldCBwYXRoRnJvbVJvb3QoKXtyZXR1cm4gdGhpcy5fcm91dGVyU3RhdGUucGF0aEZyb21Sb290KHRoaXMpfWdldCBwYXJhbU1hcCgpe3JldHVybiB0aGlzLl9wYXJhbU1h''@;'; put 'put ''cHx8KHRoaXMuX3BhcmFtTWFwPWQ3KHRoaXMucGFyYW1zKSksdGhpcy5fcGFyYW1NYXB9Z2V0IHF1ZXJ5UGFyYW1NYXAoKXtyZXR1cm4gdGhpcy5fcXVlcnlQYXJhbU1hcHx8KHRoaXMuX3F1ZXJ5UGFyYW1NYXA9ZDcodGhpcy5xdWVyeVBhcmFtcykpLHRoaXMuX3F1ZXJ5UGFyYW1NYXB9dG9T''@;'; put 'put ''dHJpbmcoKXtyZXR1cm5gUm91dGUodXJsOicke3RoaXMudXJsLm1hcCh2PT52LnRvU3RyaW5nKCkpLmpvaW4oIi8iKX0nLCBwYXRoOicke3RoaXMucm91dGVDb25maWc/dGhpcy5yb3V0ZUNvbmZpZy5wYXRoOiIifScpYH19Y2xhc3MgTlkgZXh0ZW5kcyBiSXtjb25zdHJ1Y3RvcihnLGgpe3N1''@;'; put 'put ''cGVyKGgpLHRoaXMudXJsPWcsX0kodGhpcyxoKX10b1N0cmluZygpe3JldHVybiBWWSh0aGlzLl9yb290KX19ZnVuY3Rpb24gX0koZCxnKXtnLnZhbHVlLl9yb3V0ZXJTdGF0ZT1kLGcuY2hpbGRyZW4uZm9yRWFjaChoPT5fSShkLGgpKX1mdW5jdGlvbiBWWShkKXtjb25zdCBnPWQuY2hpbGRy''@;'; put 'put ''ZW4ubGVuZ3RoPjA/YCB7ICR7ZC5jaGlsZHJlbi5tYXAoVlkpLmpvaW4oIiwgIil9IH0gYDoiIjtyZXR1cm5gJHtkLnZhbHVlfSR7Z31gfWZ1bmN0aW9uIGFIKGQpe2lmKGQuc25hcHNob3Qpe2NvbnN0IGc9ZC5zbmFwc2hvdCxoPWQuX2Z1dHVyZVNuYXBzaG90O2Quc25hcHNob3Q9aCxscChn''@;'; put 'put ''LnF1ZXJ5UGFyYW1zLGgucXVlcnlQYXJhbXMpfHxkLnF1ZXJ5UGFyYW1zLm5leHQoaC5xdWVyeVBhcmFtcyksZy5mcmFnbWVudCE9PWguZnJhZ21lbnQmJmQuZnJhZ21lbnQubmV4dChoLmZyYWdtZW50KSxscChnLnBhcmFtcyxoLnBhcmFtcyl8fGQucGFyYW1zLm5leHQoaC5wYXJhbXMpLGZ1''@;'; put 'put ''bmN0aW9uIF9ZKGQsZyl7aWYoZC5sZW5ndGghPT1nLmxlbmd0aClyZXR1cm4hMTtmb3IobGV0IGg9MDtoPGQubGVuZ3RoOysraClpZighbHAoZFtoXSxnW2hdKSlyZXR1cm4hMTtyZXR1cm4hMH0oZy51cmwsaC51cmwpfHxkLnVybC5uZXh0KGgudXJsKSxscChnLmRhdGEsaC5kYXRhKXx8ZC5k''@;'; put 'put ''YXRhLm5leHQoaC5kYXRhKX1lbHNlIGQuc25hcHNob3Q9ZC5fZnV0dXJlU25hcHNob3QsZC5kYXRhLm5leHQoZC5fZnV0dXJlU25hcHNob3QuZGF0YSl9ZnVuY3Rpb24gQ0koZCxnKXtjb25zdCBoPWxwKGQucGFyYW1zLGcucGFyYW1zKSYmZnVuY3Rpb24gdjBlKGQsZyl7cmV0dXJuIHA3KGQs''@;'; put 'put ''ZykmJmQuZXZlcnkoKGgsdik9PmxwKGgucGFyYW1ldGVycyxnW3ZdLnBhcmFtZXRlcnMpKX0oZC51cmwsZy51cmwpO3JldHVybiBoJiYhKCFkLnBhcmVudCE9IWcucGFyZW50KSYmKCFkLnBhcmVudHx8Q0koZC5wYXJlbnQsZy5wYXJlbnQpKX1mdW5jdGlvbiBveShkLGcsaCl7aWYoaCYmZC5z''@;'; put 'put ''aG91bGRSZXVzZVJvdXRlKGcudmFsdWUsaC52YWx1ZS5zbmFwc2hvdCkpe2NvbnN0IHY9aC52YWx1ZTt2Ll9mdXR1cmVTbmFwc2hvdD1nLnZhbHVlO2NvbnN0IHk9ZnVuY3Rpb24gUjBlKGQsZyxoKXtyZXR1cm4gZy5jaGlsZHJlbi5tYXAodj0+e2Zvcihjb25zdCB5IG9mIGguY2hpbGRyZW4p''@;'; put 'put ''aWYoZC5zaG91bGRSZXVzZVJvdXRlKHYudmFsdWUseS52YWx1ZS5zbmFwc2hvdCkpcmV0dXJuIG95KGQsdix5KTtyZXR1cm4gb3koZCx2KX0pfShkLGcsaCk7cmV0dXJuIG5ldyBXNih2LHkpfXtpZihkLnNob3VsZEF0dGFjaChnLnZhbHVlKSl7Y29uc3QgQz1kLnJldHJpZXZlKGcudmFsdWUp''@;'; put 'put ''O2lmKG51bGwhPT1DKXtjb25zdCBJPUMucm91dGU7cmV0dXJuIEkudmFsdWUuX2Z1dHVyZVNuYXBzaG90PWcudmFsdWUsSS5jaGlsZHJlbj1nLmNoaWxkcmVuLm1hcChaPT5veShkLFopKSxJfX1jb25zdCB2PWZ1bmN0aW9uIFpZKGQpe3JldHVybiBuZXcgUHUobmV3IGZzKGQudXJsKSxuZXcg''@;'; put 'put ''ZnMoZC5wYXJhbXMpLG5ldyBmcyhkLnF1ZXJ5UGFyYW1zKSxuZXcgZnMoZC5mcmFnbWVudCksbmV3IGZzKGQuZGF0YSksZC5vdXRsZXQsZC5jb21wb25lbnQsZCl9KGcudmFsdWUpLHk9Zy5jaGlsZHJlbi5tYXAoQz0+b3koZCxDKSk7cmV0dXJuIG5ldyBXNih2LHkpfX1jb25zdCBrST0ibmdO''@;'; put 'put ''YXZpZ2F0aW9uQ2FuY2VsaW5nRXJyb3IiO2Z1bmN0aW9uIGxIKGQsZyl7Y29uc3R7cmVkaXJlY3RUbzpoLG5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnM6dn09ZzcoZyk/e3JlZGlyZWN0VG86ZyxuYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zOnZvaWQgMH06Zyx5PXpZKCExLDAsZyk7cmV0dXJu''@;'; put 'put ''IHkudXJsPWgseS5uYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zPXYseX1mdW5jdGlvbiB6WShkLGcsaCl7Y29uc3Qgdj1uZXcgRXJyb3IoIk5hdmlnYXRpb25DYW5jZWxpbmdFcnJvcjogIisoZHx8IiIpKTtyZXR1cm4gdltrSV09ITAsdi5jYW5jZWxsYXRpb25Db2RlPWcsaCYmKHYudXJsPWgp''@;'; put 'put ''LHZ9ZnVuY3Rpb24gR1koZCl7cmV0dXJuIHNIKGQpJiZnNyhkLnVybCl9ZnVuY3Rpb24gc0goZCl7cmV0dXJuIGQmJmRba0ldfWNsYXNzIEIwZXtjb25zdHJ1Y3Rvcigpe3RoaXMub3V0bGV0PW51bGwsdGhpcy5yb3V0ZT1udWxsLHRoaXMucmVzb2x2ZXI9bnVsbCx0aGlzLmluamVjdG9yPW51''@;'; put 'put ''bGwsdGhpcy5jaGlsZHJlbj1uZXcgZWssdGhpcy5hdHRhY2hSZWY9bnVsbH19Y2xhc3MgZWt7Y29uc3RydWN0b3IoKXt0aGlzLmNvbnRleHRzPW5ldyBNYXB9b25DaGlsZE91dGxldENyZWF0ZWQoZyxoKXtjb25zdCB2PXRoaXMuZ2V0T3JDcmVhdGVDb250ZXh0KGcpO3Yub3V0bGV0PWgsdGhp''@;'; put 'put ''cy5jb250ZXh0cy5zZXQoZyx2KX1vbkNoaWxkT3V0bGV0RGVzdHJveWVkKGcpe2NvbnN0IGg9dGhpcy5nZXRDb250ZXh0KGcpO2gmJihoLm91dGxldD1udWxsLGguYXR0YWNoUmVmPW51bGwpfW9uT3V0bGV0RGVhY3RpdmF0ZWQoKXtjb25zdCBnPXRoaXMuY29udGV4dHM7cmV0dXJuIHRoaXMu''@;'; put 'put ''Y29udGV4dHM9bmV3IE1hcCxnfW9uT3V0bGV0UmVBdHRhY2hlZChnKXt0aGlzLmNvbnRleHRzPWd9Z2V0T3JDcmVhdGVDb250ZXh0KGcpe2xldCBoPXRoaXMuZ2V0Q29udGV4dChnKTtyZXR1cm4gaHx8KGg9bmV3IEIwZSx0aGlzLmNvbnRleHRzLnNldChnLGgpKSxofWdldENvbnRleHQoZyl7''@;'; put 'put ''cmV0dXJuIHRoaXMuY29udGV4dHMuZ2V0KGcpfHxudWxsfX1jb25zdCBTST0hMTtsZXQgYXk9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMucGFyZW50Q29udGV4dHM9aCx0aGlzLmxvY2F0aW9uPXYsdGhpcy5jaGFuZ2VEZXRlY3Rvcj1DLHRoaXMuZW52aXJvbm1l''@;'; put 'put ''bnRJbmplY3Rvcj1JLHRoaXMuYWN0aXZhdGVkPW51bGwsdGhpcy5fYWN0aXZhdGVkUm91dGU9bnVsbCx0aGlzLmFjdGl2YXRlRXZlbnRzPW5ldyBhcix0aGlzLmRlYWN0aXZhdGVFdmVudHM9bmV3IGFyLHRoaXMuYXR0YWNoRXZlbnRzPW5ldyBhcix0aGlzLmRldGFjaEV2ZW50cz1uZXcgYXIs''@;'; put 'put ''dGhpcy5uYW1lPXl8fGpsLGgub25DaGlsZE91dGxldENyZWF0ZWQodGhpcy5uYW1lLHRoaXMpfW5nT25EZXN0cm95KCl7dmFyIGg7KG51bGw9PT0oaD10aGlzLnBhcmVudENvbnRleHRzLmdldENvbnRleHQodGhpcy5uYW1lKSl8fHZvaWQgMD09PWg/dm9pZCAwOmgub3V0bGV0KT09PXRoaXMm''@;'; put 'put ''JnRoaXMucGFyZW50Q29udGV4dHMub25DaGlsZE91dGxldERlc3Ryb3llZCh0aGlzLm5hbWUpfW5nT25Jbml0KCl7aWYoIXRoaXMuYWN0aXZhdGVkKXtjb25zdCBoPXRoaXMucGFyZW50Q29udGV4dHMuZ2V0Q29udGV4dCh0aGlzLm5hbWUpO2gmJmgucm91dGUmJihoLmF0dGFjaFJlZj90aGlz''@;'; put 'put ''LmF0dGFjaChoLmF0dGFjaFJlZixoLnJvdXRlKTp0aGlzLmFjdGl2YXRlV2l0aChoLnJvdXRlLGguaW5qZWN0b3IpKX19Z2V0IGlzQWN0aXZhdGVkKCl7cmV0dXJuISF0aGlzLmFjdGl2YXRlZH1nZXQgY29tcG9uZW50KCl7aWYoIXRoaXMuYWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEyLFNJ''@;'; put 'put ''KTtyZXR1cm4gdGhpcy5hY3RpdmF0ZWQuaW5zdGFuY2V9Z2V0IGFjdGl2YXRlZFJvdXRlKCl7aWYoIXRoaXMuYWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEyLFNJKTtyZXR1cm4gdGhpcy5fYWN0aXZhdGVkUm91dGV9Z2V0IGFjdGl2YXRlZFJvdXRlRGF0YSgpe3JldHVybiB0aGlzLl9hY3Rp''@;'; put 'put ''dmF0ZWRSb3V0ZT90aGlzLl9hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5kYXRhOnt9fWRldGFjaCgpe2lmKCF0aGlzLmFjdGl2YXRlZCl0aHJvdyBuZXcgZW4oNDAxMixTSSk7dGhpcy5sb2NhdGlvbi5kZXRhY2goKTtjb25zdCBoPXRoaXMuYWN0aXZhdGVkO3JldHVybiB0aGlzLmFjdGl2YXRl''@;'; put 'put ''ZD1udWxsLHRoaXMuX2FjdGl2YXRlZFJvdXRlPW51bGwsdGhpcy5kZXRhY2hFdmVudHMuZW1pdChoLmluc3RhbmNlKSxofWF0dGFjaChoLHYpe3RoaXMuYWN0aXZhdGVkPWgsdGhpcy5fYWN0aXZhdGVkUm91dGU9dix0aGlzLmxvY2F0aW9uLmluc2VydChoLmhvc3RWaWV3KSx0aGlzLmF0dGFj''@;'; put 'put ''aEV2ZW50cy5lbWl0KGguaW5zdGFuY2UpfWRlYWN0aXZhdGUoKXtpZih0aGlzLmFjdGl2YXRlZCl7Y29uc3QgaD10aGlzLmNvbXBvbmVudDt0aGlzLmFjdGl2YXRlZC5kZXN0cm95KCksdGhpcy5hY3RpdmF0ZWQ9bnVsbCx0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1udWxsLHRoaXMuZGVhY3RpdmF0''@;'; put 'put ''ZUV2ZW50cy5lbWl0KGgpfX1hY3RpdmF0ZVdpdGgoaCx2KXtpZih0aGlzLmlzQWN0aXZhdGVkKXRocm93IG5ldyBlbig0MDEzLFNJKTt0aGlzLl9hY3RpdmF0ZWRSb3V0ZT1oO2NvbnN0IHk9dGhpcy5sb2NhdGlvbixJPWguX2Z1dHVyZVNuYXBzaG90LmNvbXBvbmVudCxaPXRoaXMucGFyZW50''@;'; put 'put ''Q29udGV4dHMuZ2V0T3JDcmVhdGVDb250ZXh0KHRoaXMubmFtZSkuY2hpbGRyZW4sdWU9bmV3IFdZKGgsWix5LmluamVjdG9yKTtpZih2JiZmdW5jdGlvbiBQMGUoZCl7cmV0dXJuISFkLnJlc29sdmVDb21wb25lbnRGYWN0b3J5fSh2KSl7Y29uc3QgX2U9di5yZXNvbHZlQ29tcG9uZW50RmFj''@;'; put 'put ''dG9yeShJKTt0aGlzLmFjdGl2YXRlZD15LmNyZWF0ZUNvbXBvbmVudChfZSx5Lmxlbmd0aCx1ZSl9ZWxzZSB0aGlzLmFjdGl2YXRlZD15LmNyZWF0ZUNvbXBvbmVudChJLHtpbmRleDp5Lmxlbmd0aCxpbmplY3Rvcjp1ZSxlbnZpcm9ubWVudEluamVjdG9yOm51bGwhPXY/djp0aGlzLmVudmly''@;'; put 'put ''b25tZW50SW5qZWN0b3J9KTt0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpLHRoaXMuYWN0aXZhdGVFdmVudHMuZW1pdCh0aGlzLmFjdGl2YXRlZC5pbnN0YW5jZSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGVrKSxLdChVaSks''@;'; put 'put ''ZzMoIm5hbWUiKSxLdChkMSksS3QoRTMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1sicm91dGVyLW91dGxldCJdXSxvdXRwdXRzOnthY3RpdmF0ZUV2ZW50czoiYWN0aXZhdGUiLGRlYWN0aXZhdGVFdmVudHM6ImRlYWN0aXZhdGUiLGF0dGFjaEV2ZW50czoiYXR0YWNo''@;'; put 'put ''IixkZXRhY2hFdmVudHM6ImRldGFjaCJ9LGV4cG9ydEFzOlsib3V0bGV0Il19KSxkfSkoKTtjbGFzcyBXWXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5yb3V0ZT1nLHRoaXMuY2hpbGRDb250ZXh0cz1oLHRoaXMucGFyZW50PXZ9Z2V0KGcsaCl7cmV0dXJuIGc9PT1QdT90aGlzLnJvdXRlOmc9''@;'; put 'put ''PT1laz90aGlzLmNoaWxkQ29udGV4dHM6dGhpcy5wYXJlbnQuZ2V0KGcsaCl9fWxldCB1SD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1sibmctY29tcG9uZW50''@;'; put 'put ''Il1dLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZDcigwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpbYXldLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpO2Z1bmN0aW9uIFlZKGQsZyl7dmFyIGg7cmV0dXJuIGQucHJvdmlkZXJzJiYhZC5faW5qZWN0''@;'; put 'put ''b3ImJihkLl9pbmplY3Rvcj10NyhkLnByb3ZpZGVycyxnLGBSb3V0ZTogJHtkLnBhdGh9YCkpLG51bGwhPT0oaD1kLl9pbmplY3RvcikmJnZvaWQgMCE9PWg/aDpnfWZ1bmN0aW9uIGZIKGQpe2NvbnN0IGc9ZC5jaGlsZHJlbiYmZC5jaGlsZHJlbi5tYXAoZkgpLGg9Zz9PYmplY3QuYXNzaWdu''@;'; put 'put ''KE9iamVjdC5hc3NpZ24oe30sZCkse2NoaWxkcmVuOmd9KTpPYmplY3QuYXNzaWduKHt9LGQpO3JldHVybiFoLmNvbXBvbmVudCYmIWgubG9hZENvbXBvbmVudCYmKGd8fGgubG9hZENoaWxkcmVuKSYmaC5vdXRsZXQmJmgub3V0bGV0IT09amwmJihoLmNvbXBvbmVudD11SCksaH1mdW5jdGlv''@;'; put 'put ''biBRaChkKXtyZXR1cm4gZC5vdXRsZXR8fGpsfWZ1bmN0aW9uIHRrKGQsZyl7Y29uc3QgaD1kLmZpbHRlcih2PT5RaCh2KT09PWcpO3JldHVybiBoLnB1c2goLi4uZC5maWx0ZXIodj0+UWgodikhPT1nKSksaH1mdW5jdGlvbiBoSChkKXt2YXIgZztpZighZClyZXR1cm4gbnVsbDtpZihudWxs''@;'; put 'put ''IT09KGc9ZC5yb3V0ZUNvbmZpZykmJnZvaWQgMCE9PWcmJmcuX2luamVjdG9yKXJldHVybiBkLnJvdXRlQ29uZmlnLl9pbmplY3Rvcjtmb3IobGV0IGg9ZC5wYXJlbnQ7aDtoPWgucGFyZW50KXtjb25zdCB2PWgucm91dGVDb25maWc7aWYobnVsbCE9diYmdi5fbG9hZGVkSW5qZWN0b3IpcmV0''@;'; put 'put ''dXJuIHYuX2xvYWRlZEluamVjdG9yO2lmKG51bGwhPXYmJnYuX2luamVjdG9yKXJldHVybiB2Ll9pbmplY3Rvcn1yZXR1cm4gbnVsbH1jbGFzcyBRWXtjb25zdHJ1Y3RvcihnLGgsdix5KXt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneT1nLHRoaXMuZnV0dXJlU3RhdGU9aCx0aGlzLmN1cnJTdGF0''@;'; put 'put ''ZT12LHRoaXMuZm9yd2FyZEV2ZW50PXl9YWN0aXZhdGUoZyl7Y29uc3QgaD10aGlzLmZ1dHVyZVN0YXRlLl9yb290LHY9dGhpcy5jdXJyU3RhdGU/dGhpcy5jdXJyU3RhdGUuX3Jvb3Q6bnVsbDt0aGlzLmRlYWN0aXZhdGVDaGlsZFJvdXRlcyhoLHYsZyksYUgodGhpcy5mdXR1cmVTdGF0ZS5y''@;'; put 'put ''b290KSx0aGlzLmFjdGl2YXRlQ2hpbGRSb3V0ZXMoaCx2LGcpfWRlYWN0aXZhdGVDaGlsZFJvdXRlcyhnLGgsdil7Y29uc3QgeT1jcChoKTtnLmNoaWxkcmVuLmZvckVhY2goQz0+e2NvbnN0IEk9Qy52YWx1ZS5vdXRsZXQ7dGhpcy5kZWFjdGl2YXRlUm91dGVzKEMseVtJXSx2KSxkZWxldGUg''@;'; put 'put ''eVtJXX0pLFRjKHksKEMsSSk9Pnt0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0NoaWxkcmVuKEMsdil9KX1kZWFjdGl2YXRlUm91dGVzKGcsaCx2KXtjb25zdCB5PWcudmFsdWUsQz1oP2gudmFsdWU6bnVsbDtpZih5PT09QylpZih5LmNvbXBvbmVudCl7Y29uc3QgST12LmdldENvbnRleHQo''@;'; put 'put ''eS5vdXRsZXQpO0kmJnRoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCxJLmNoaWxkcmVuKX1lbHNlIHRoaXMuZGVhY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCx2KTtlbHNlIEMmJnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kSXRzQ2hpbGRyZW4oaCx2KX1kZWFjdGl2YXRlUm91dGVBbmRJdHND''@;'; put 'put ''aGlsZHJlbihnLGgpe2cudmFsdWUuY29tcG9uZW50JiZ0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zaG91bGREZXRhY2goZy52YWx1ZS5zbmFwc2hvdCk/dGhpcy5kZXRhY2hBbmRTdG9yZVJvdXRlU3VidHJlZShnLGgpOnRoaXMuZGVhY3RpdmF0ZVJvdXRlQW5kT3V0bGV0KGcsaCl9ZGV0YWNo''@;'; put 'put ''QW5kU3RvcmVSb3V0ZVN1YnRyZWUoZyxoKXtjb25zdCB2PWguZ2V0Q29udGV4dChnLnZhbHVlLm91dGxldCkseT12JiZnLnZhbHVlLmNvbXBvbmVudD92LmNoaWxkcmVuOmgsQz1jcChnKTtmb3IoY29uc3QgSSBvZiBPYmplY3Qua2V5cyhDKSl0aGlzLmRlYWN0aXZhdGVSb3V0ZUFuZEl0c0No''@;'; put 'put ''aWxkcmVuKENbSV0seSk7aWYodiYmdi5vdXRsZXQpe2NvbnN0IEk9di5vdXRsZXQuZGV0YWNoKCksWj12LmNoaWxkcmVuLm9uT3V0bGV0RGVhY3RpdmF0ZWQoKTt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zdG9yZShnLnZhbHVlLnNuYXBzaG90LHtjb21wb25lbnRSZWY6SSxyb3V0ZTpnLGNv''@;'; put 'put ''bnRleHRzOlp9KX19ZGVhY3RpdmF0ZVJvdXRlQW5kT3V0bGV0KGcsaCl7Y29uc3Qgdj1oLmdldENvbnRleHQoZy52YWx1ZS5vdXRsZXQpLHk9diYmZy52YWx1ZS5jb21wb25lbnQ/di5jaGlsZHJlbjpoLEM9Y3AoZyk7Zm9yKGNvbnN0IEkgb2YgT2JqZWN0LmtleXMoQykpdGhpcy5kZWFjdGl2''@;'; put 'put ''YXRlUm91dGVBbmRJdHNDaGlsZHJlbihDW0ldLHkpO3YmJnYub3V0bGV0JiYodi5vdXRsZXQuZGVhY3RpdmF0ZSgpLHYuY2hpbGRyZW4ub25PdXRsZXREZWFjdGl2YXRlZCgpLHYuYXR0YWNoUmVmPW51bGwsdi5yZXNvbHZlcj1udWxsLHYucm91dGU9bnVsbCl9YWN0aXZhdGVDaGlsZFJvdXRl''@;'; put 'put ''cyhnLGgsdil7Y29uc3QgeT1jcChoKTtnLmNoaWxkcmVuLmZvckVhY2goQz0+e3RoaXMuYWN0aXZhdGVSb3V0ZXMoQyx5W0MudmFsdWUub3V0bGV0XSx2KSx0aGlzLmZvcndhcmRFdmVudChuZXcgRDBlKEMudmFsdWUuc25hcHNob3QpKX0pLGcuY2hpbGRyZW4ubGVuZ3RoJiZ0aGlzLmZvcndh''@;'; put 'put ''cmRFdmVudChuZXcgT1koZy52YWx1ZS5zbmFwc2hvdCkpfWFjdGl2YXRlUm91dGVzKGcsaCx2KXt2YXIgeTtjb25zdCBDPWcudmFsdWUsST1oP2gudmFsdWU6bnVsbDtpZihhSChDKSxDPT09SSlpZihDLmNvbXBvbmVudCl7Y29uc3QgWj12LmdldE9yQ3JlYXRlQ29udGV4dChDLm91dGxldCk7''@;'; put 'put ''dGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGcsaCxaLmNoaWxkcmVuKX1lbHNlIHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLGgsdik7ZWxzZSBpZihDLmNvbXBvbmVudCl7Y29uc3QgWj12LmdldE9yQ3JlYXRlQ29udGV4dChDLm91dGxldCk7aWYodGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3ku''@;'; put 'put ''c2hvdWxkQXR0YWNoKEMuc25hcHNob3QpKXtjb25zdCB1ZT10aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5yZXRyaWV2ZShDLnNuYXBzaG90KTt0aGlzLnJvdXRlUmV1c2VTdHJhdGVneS5zdG9yZShDLnNuYXBzaG90LG51bGwpLFouY2hpbGRyZW4ub25PdXRsZXRSZUF0dGFjaGVkKHVlLmNvbnRl''@;'; put 'put ''eHRzKSxaLmF0dGFjaFJlZj11ZS5jb21wb25lbnRSZWYsWi5yb3V0ZT11ZS5yb3V0ZS52YWx1ZSxaLm91dGxldCYmWi5vdXRsZXQuYXR0YWNoKHVlLmNvbXBvbmVudFJlZix1ZS5yb3V0ZS52YWx1ZSksYUgodWUucm91dGUudmFsdWUpLHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLG51bGws''@;'; put 'put ''Wi5jaGlsZHJlbil9ZWxzZXtjb25zdCB1ZT1oSChDLnNuYXBzaG90KSxfZT1udWxsIT09KHk9bnVsbD09dWU/dm9pZCAwOnVlLmdldChTZCkpJiZ2b2lkIDAhPT15P3k6bnVsbDtaLmF0dGFjaFJlZj1udWxsLFoucm91dGU9QyxaLnJlc29sdmVyPV9lLFouaW5qZWN0b3I9dWUsWi5vdXRsZXQm''@;'; put 'put ''Jloub3V0bGV0LmFjdGl2YXRlV2l0aChDLFouaW5qZWN0b3IpLHRoaXMuYWN0aXZhdGVDaGlsZFJvdXRlcyhnLG51bGwsWi5jaGlsZHJlbil9fWVsc2UgdGhpcy5hY3RpdmF0ZUNoaWxkUm91dGVzKGcsbnVsbCx2KX19Y2xhc3MgZEh7Y29uc3RydWN0b3IoZyl7dGhpcy5wYXRoPWcsdGhpcy5y''@;'; put 'put ''b3V0ZT10aGlzLnBhdGhbdGhpcy5wYXRoLmxlbmd0aC0xXX19Y2xhc3Mgbmt7Y29uc3RydWN0b3IoZyxoKXt0aGlzLmNvbXBvbmVudD1nLHRoaXMucm91dGU9aH19ZnVuY3Rpb24gSlkoZCxnLGgpe2NvbnN0IHY9ZC5fcm9vdDtyZXR1cm4gbHkodixnP2cuX3Jvb3Q6bnVsbCxoLFt2LnZhbHVl''@;'; put 'put ''XSl9ZnVuY3Rpb24gTUkoZCxnLGgpe2NvbnN0IHY9aEgoZyk7cmV0dXJuKG51bGwhPXY/djpoKS5nZXQoZCl9ZnVuY3Rpb24gbHkoZCxnLGgsdix5PXtjYW5EZWFjdGl2YXRlQ2hlY2tzOltdLGNhbkFjdGl2YXRlQ2hlY2tzOltdfSl7Y29uc3QgQz1jcChnKTtyZXR1cm4gZC5jaGlsZHJlbi5m''@;'; put 'put ''b3JFYWNoKEk9PnsoZnVuY3Rpb24gS1koZCxnLGgsdix5PXtjYW5EZWFjdGl2YXRlQ2hlY2tzOltdLGNhbkFjdGl2YXRlQ2hlY2tzOltdfSl7Y29uc3QgQz1kLnZhbHVlLEk9Zz9nLnZhbHVlOm51bGwsWj1oP2guZ2V0Q29udGV4dChkLnZhbHVlLm91dGxldCk6bnVsbDtpZihJJiZDLnJvdXRl''@;'; put 'put ''Q29uZmlnPT09SS5yb3V0ZUNvbmZpZyl7Y29uc3QgdWU9ZnVuY3Rpb24gJFkoZCxnLGgpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBoKXJldHVybiBoKGQsZyk7c3dpdGNoKGgpe2Nhc2UicGF0aFBhcmFtc0NoYW5nZSI6cmV0dXJuIXA3KGQudXJsLGcudXJsKTtjYXNlInBhdGhQYXJhbXNPclF1''@;'; put 'put ''ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hcDcoZC51cmwsZy51cmwpfHwhbHAoZC5xdWVyeVBhcmFtcyxnLnF1ZXJ5UGFyYW1zKTtjYXNlImFsd2F5cyI6cmV0dXJuITA7Y2FzZSJwYXJhbXNPclF1ZXJ5UGFyYW1zQ2hhbmdlIjpyZXR1cm4hQ0koZCxnKXx8IWxwKGQucXVlcnlQYXJhbXMsZy5x''@;'; put 'put ''dWVyeVBhcmFtcyk7ZGVmYXVsdDpyZXR1cm4hQ0koZCxnKX19KEksQyxDLnJvdXRlQ29uZmlnLnJ1bkd1YXJkc0FuZFJlc29sdmVycyk7dWU/eS5jYW5BY3RpdmF0ZUNoZWNrcy5wdXNoKG5ldyBkSCh2KSk6KEMuZGF0YT1JLmRhdGEsQy5fcmVzb2x2ZWREYXRhPUkuX3Jlc29sdmVkRGF0YSks''@;'; put 'put ''bHkoZCxnLEMuY29tcG9uZW50P1o/Wi5jaGlsZHJlbjpudWxsOmgsdix5KSx1ZSYmWiYmWi5vdXRsZXQmJloub3V0bGV0LmlzQWN0aXZhdGVkJiZ5LmNhbkRlYWN0aXZhdGVDaGVja3MucHVzaChuZXcgbmsoWi5vdXRsZXQuY29tcG9uZW50LEkpKX1lbHNlIEkmJnN5KGcsWix5KSx5LmNhbkFj''@;'; put 'put ''dGl2YXRlQ2hlY2tzLnB1c2gobmV3IGRIKHYpKSxseShkLG51bGwsQy5jb21wb25lbnQ/Wj9aLmNoaWxkcmVuOm51bGw6aCx2LHkpfSkoSSxDW0kudmFsdWUub3V0bGV0XSxoLHYuY29uY2F0KFtJLnZhbHVlXSkseSksZGVsZXRlIENbSS52YWx1ZS5vdXRsZXRdfSksVGMoQywoSSxaKT0+c3ko''@;'; put 'put ''SSxoLmdldENvbnRleHQoWikseSkpLHl9ZnVuY3Rpb24gc3koZCxnLGgpe2NvbnN0IHY9Y3AoZCkseT1kLnZhbHVlO1RjKHYsKEMsSSk9PntzeShDLHkuY29tcG9uZW50P2c/Zy5jaGlsZHJlbi5nZXRDb250ZXh0KEkpOm51bGw6ZyxoKX0pLGguY2FuRGVhY3RpdmF0ZUNoZWNrcy5wdXNoKG5l''@;'; put 'put ''dyBuayh5LmNvbXBvbmVudCYmZyYmZy5vdXRsZXQmJmcub3V0bGV0LmlzQWN0aXZhdGVkP2cub3V0bGV0LmNvbXBvbmVudDpudWxsLHkpKX1mdW5jdGlvbiB1eShkKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZH1jb25zdCBjeT1TeW1ib2woIklOSVRJQUxfVkFMVUUiKTtmdW5jdGlvbiBt''@;'; put 'put ''Nygpe3JldHVybiBZaChkPT5vSShkLm1hcChnPT5nLnBpcGUoSDUoMSksTjUoY3kpKSkpLnBpcGUobXQoZz0+e2Zvcihjb25zdCBoIG9mIGcpaWYoITAhPT1oKXtpZihoPT09Y3kpcmV0dXJuIGN5O2lmKCExPT09aHx8aCBpbnN0YW5jZW9mIFk1KXJldHVybiBofXJldHVybiEwfSksTzIoZz0+''@;'; put 'put ''ZyE9PWN5KSxINSgxKSkpfWZ1bmN0aW9uIGxVKGQpe3JldHVybiBmdW5jdGlvbiBUKC4uLmQpe3JldHVybiBTKGQpfSh5YShnPT57aWYoZzcoZykpdGhyb3cgbEgoMCxnKX0pLG10KGc9PiEwPT09ZykpfWNvbnN0IGdIPXttYXRjaGVkOiExLGNvbnN1bWVkU2VnbWVudHM6W10scmVtYWluaW5n''@;'; put 'put ''U2VnbWVudHM6W10scGFyYW1ldGVyczp7fSxwb3NpdGlvbmFsUGFyYW1TZWdtZW50czp7fX07ZnVuY3Rpb24gbUgoZCxnLGgsdix5KXtjb25zdCBDPUVJKGQsZyxoKTtyZXR1cm4gQy5tYXRjaGVkP2Z1bmN0aW9uIEowZShkLGcsaCx2KXtjb25zdCB5PWcuY2FuTWF0Y2g7cmV0dXJuIHkmJjAh''@;'; put 'put ''PT15Lmxlbmd0aD9hYSh5Lm1hcChJPT57Y29uc3QgWj1kLmdldChJKSx1ZT1mdW5jdGlvbiB6MGUoZCl7cmV0dXJuIGQmJnV5KGQuY2FuTWF0Y2gpfShaKT9aLmNhbk1hdGNoKGcsaCk6WihnLGgpO3JldHVybiBCdSh1ZSl9KSkucGlwZShtNygpLGxVKCkpOmFhKCEwKX0odj1ZWShnLHYpLGcs''@;'; put 'put ''aCkucGlwZShtdChJPT4hMD09PUk/QzpPYmplY3QuYXNzaWduKHt9LGdIKSkpOmFhKEMpfWZ1bmN0aW9uIEVJKGQsZyxoKXt2YXIgdjtpZigiIj09PWcucGF0aClyZXR1cm4iZnVsbCI9PT1nLnBhdGhNYXRjaCYmKGQuaGFzQ2hpbGRyZW4oKXx8aC5sZW5ndGg+MCk/T2JqZWN0LmFzc2lnbih7''@;'; put 'put ''fSxnSCk6e21hdGNoZWQ6ITAsY29uc3VtZWRTZWdtZW50czpbXSxyZW1haW5pbmdTZWdtZW50czpoLHBhcmFtZXRlcnM6e30scG9zaXRpb25hbFBhcmFtU2VnbWVudHM6e319O2NvbnN0IEM9KGcubWF0Y2hlcnx8YlkpKGgsZCxnKTtpZighQylyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxnSCk7''@;'; put 'put ''Y29uc3QgST17fTtUYyhDLnBvc1BhcmFtcywodWUsX2UpPT57SVtfZV09dWUucGF0aH0pO2NvbnN0IFo9Qy5jb25zdW1lZC5sZW5ndGg+MD9PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sSSksQy5jb25zdW1lZFtDLmNvbnN1bWVkLmxlbmd0aC0xXS5wYXJhbWV0ZXJzKTpJO3JldHVy''@;'; put 'put ''bnttYXRjaGVkOiEwLGNvbnN1bWVkU2VnbWVudHM6Qy5jb25zdW1lZCxyZW1haW5pbmdTZWdtZW50czpoLnNsaWNlKEMuY29uc3VtZWQubGVuZ3RoKSxwYXJhbWV0ZXJzOloscG9zaXRpb25hbFBhcmFtU2VnbWVudHM6bnVsbCE9PSh2PUMucG9zUGFyYW1zKSYmdm9pZCAwIT09dj92Ont9fX1m''@;'; put 'put ''dW5jdGlvbiB4SShkLGcsaCx2LHk9ImNvcnJlY3RlZCIpe2lmKGgubGVuZ3RoPjAmJmZ1bmN0aW9uIEswZShkLGcsaCl7cmV0dXJuIGguc29tZSh2PT5USShkLGcsdikmJlFoKHYpIT09amwpfShkLGgsdikpe2NvbnN0IEk9bmV3IGNsKGcsZnVuY3Rpb24gc1UoZCxnLGgsdil7Y29uc3QgeT17''@;'; put 'put ''fTt5W2psXT12LHYuX3NvdXJjZVNlZ21lbnQ9ZCx2Ll9zZWdtZW50SW5kZXhTaGlmdD1nLmxlbmd0aDtmb3IoY29uc3QgQyBvZiBoKWlmKCIiPT09Qy5wYXRoJiZRaChDKSE9PWpsKXtjb25zdCBJPW5ldyBjbChbXSx7fSk7SS5fc291cmNlU2VnbWVudD1kLEkuX3NlZ21lbnRJbmRleFNoaWZ0''@;'; put 'put ''PWcubGVuZ3RoLHlbUWgoQyldPUl9cmV0dXJuIHl9KGQsZyx2LG5ldyBjbChoLGQuY2hpbGRyZW4pKSk7cmV0dXJuIEkuX3NvdXJjZVNlZ21lbnQ9ZCxJLl9zZWdtZW50SW5kZXhTaGlmdD1nLmxlbmd0aCx7c2VnbWVudEdyb3VwOkksc2xpY2VkU2VnbWVudHM6W119fWlmKDA9PT1oLmxlbmd0''@;'; put 'put ''aCYmZnVuY3Rpb24gJDBlKGQsZyxoKXtyZXR1cm4gaC5zb21lKHY9PlRJKGQsZyx2KSl9KGQsaCx2KSl7Y29uc3QgST1uZXcgY2woZC5zZWdtZW50cyxmdW5jdGlvbiBYMGUoZCxnLGgsdix5LEMpe2NvbnN0IEk9e307Zm9yKGNvbnN0IFogb2YgdilpZihUSShkLGgsWikmJiF5W1FoKFopXSl7''@;'; put 'put ''Y29uc3QgdWU9bmV3IGNsKFtdLHt9KTt1ZS5fc291cmNlU2VnbWVudD1kLHVlLl9zZWdtZW50SW5kZXhTaGlmdD0ibGVnYWN5Ij09PUM/ZC5zZWdtZW50cy5sZW5ndGg6Zy5sZW5ndGgsSVtRaChaKV09dWV9cmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx5KSxJKX0oZCxn''@;'; put 'put ''LGgsdixkLmNoaWxkcmVuLHkpKTtyZXR1cm4gSS5fc291cmNlU2VnbWVudD1kLEkuX3NlZ21lbnRJbmRleFNoaWZ0PWcubGVuZ3RoLHtzZWdtZW50R3JvdXA6SSxzbGljZWRTZWdtZW50czpofX1jb25zdCBDPW5ldyBjbChkLnNlZ21lbnRzLGQuY2hpbGRyZW4pO3JldHVybiBDLl9zb3VyY2VT''@;'; put 'put ''ZWdtZW50PWQsQy5fc2VnbWVudEluZGV4U2hpZnQ9Zy5sZW5ndGgse3NlZ21lbnRHcm91cDpDLHNsaWNlZFNlZ21lbnRzOmh9fWZ1bmN0aW9uIFRJKGQsZyxoKXtyZXR1cm4oIShkLmhhc0NoaWxkcmVuKCl8fGcubGVuZ3RoPjApfHwiZnVsbCIhPT1oLnBhdGhNYXRjaCkmJiIiPT09aC5wYXRo''@;'; put 'put ''fWZ1bmN0aW9uIHVVKGQsZyxoLHYpe3JldHVybiEhKFFoKGQpPT09dnx8diE9PWpsJiZUSShnLGgsZCkpJiYoIioqIj09PWQucGF0aHx8RUkoZyxkLGgpLm1hdGNoZWQpfWZ1bmN0aW9uIEpoKGQsZyxoKXtyZXR1cm4gMD09PWcubGVuZ3RoJiYhZC5jaGlsZHJlbltoXX1jb25zdCBpaz0hMTtj''@;'; put 'put ''bGFzcyBmeXtjb25zdHJ1Y3RvcihnKXt0aGlzLnNlZ21lbnRHcm91cD1nfHxudWxsfX1jbGFzcyBoeXtjb25zdHJ1Y3RvcihnKXt0aGlzLnVybFRyZWU9Z319ZnVuY3Rpb24gZHkoZCl7cmV0dXJuIFFBKG5ldyBmeShkKSl9ZnVuY3Rpb24gY1UoZCl7cmV0dXJuIFFBKG5ldyBoeShkKSl9Y2xh''@;'; put 'put ''c3MgZW9le2NvbnN0cnVjdG9yKGcsaCx2LHksQyl7dGhpcy5pbmplY3Rvcj1nLHRoaXMuY29uZmlnTG9hZGVyPWgsdGhpcy51cmxTZXJpYWxpemVyPXYsdGhpcy51cmxUcmVlPXksdGhpcy5jb25maWc9Qyx0aGlzLmFsbG93UmVkaXJlY3RzPSEwfWFwcGx5KCl7Y29uc3QgZz14SSh0aGlzLnVy''@;'; put 'put ''bFRyZWUucm9vdCxbXSxbXSx0aGlzLmNvbmZpZykuc2VnbWVudEdyb3VwLGg9bmV3IGNsKGcuc2VnbWVudHMsZy5jaGlsZHJlbik7cmV0dXJuIHRoaXMuZXhwYW5kU2VnbWVudEdyb3VwKHRoaXMuaW5qZWN0b3IsdGhpcy5jb25maWcsaCxqbCkucGlwZShtdChDPT50aGlzLmNyZWF0ZVVybFRy''@;'; put 'put ''ZWUocEkoQyksdGhpcy51cmxUcmVlLnF1ZXJ5UGFyYW1zLHRoaXMudXJsVHJlZS5mcmFnbWVudCkpKS5waXBlKFo1KEM9PntpZihDIGluc3RhbmNlb2YgaHkpcmV0dXJuIHRoaXMuYWxsb3dSZWRpcmVjdHM9ITEsdGhpcy5tYXRjaChDLnVybFRyZWUpO3Rocm93IEMgaW5zdGFuY2VvZiBmeT90''@;'; put 'put ''aGlzLm5vTWF0Y2hFcnJvcihDKTpDfSkpfW1hdGNoKGcpe3JldHVybiB0aGlzLmV4cGFuZFNlZ21lbnRHcm91cCh0aGlzLmluamVjdG9yLHRoaXMuY29uZmlnLGcucm9vdCxqbCkucGlwZShtdCh5PT50aGlzLmNyZWF0ZVVybFRyZWUocEkoeSksZy5xdWVyeVBhcmFtcyxnLmZyYWdtZW50KSkp''@;'; put 'put ''LnBpcGUoWjUoeT0+e3Rocm93IHkgaW5zdGFuY2VvZiBmeT90aGlzLm5vTWF0Y2hFcnJvcih5KTp5fSkpfW5vTWF0Y2hFcnJvcihnKXtyZXR1cm4gbmV3IGVuKDQwMDIsaWspfWNyZWF0ZVVybFRyZWUoZyxoLHYpe2NvbnN0IHk9ZEkoZyk7cmV0dXJuIG5ldyBZNSh5LGgsdil9ZXhwYW5kU2Vn''@;'; put 'put ''bWVudEdyb3VwKGcsaCx2LHkpe3JldHVybiAwPT09di5zZWdtZW50cy5sZW5ndGgmJnYuaGFzQ2hpbGRyZW4oKT90aGlzLmV4cGFuZENoaWxkcmVuKGcsaCx2KS5waXBlKG10KEM9Pm5ldyBjbChbXSxDKSkpOnRoaXMuZXhwYW5kU2VnbWVudChnLHYsaCx2LnNlZ21lbnRzLHksITApfWV4cGFu''@;'; put 'put ''ZENoaWxkcmVuKGcsaCx2KXtjb25zdCB5PVtdO2Zvcihjb25zdCBDIG9mIE9iamVjdC5rZXlzKHYuY2hpbGRyZW4pKSJwcmltYXJ5Ij09PUM/eS51bnNoaWZ0KEMpOnkucHVzaChDKTtyZXR1cm4gZG4oeSkucGlwZShWNShDPT57Y29uc3QgST12LmNoaWxkcmVuW0NdLFo9dGsoaCxDKTtyZXR1''@;'; put 'put ''cm4gdGhpcy5leHBhbmRTZWdtZW50R3JvdXAoZyxaLEksQykucGlwZShtdCh1ZT0+KHtzZWdtZW50OnVlLG91dGxldDpDfSkpKX0pLGxJKChDLEkpPT4oQ1tJLm91dGxldF09SS5zZWdtZW50LEMpLHt9KSxBWSgpKX1leHBhbmRTZWdtZW50KGcsaCx2LHksQyxJKXtyZXR1cm4gZG4odikucGlw''@;'; put 'put ''ZShWNShaPT50aGlzLmV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGUoZyxoLHYsWix5LEMsSSkucGlwZShaNShfZT0+e2lmKF9lIGluc3RhbmNlb2YgZnkpcmV0dXJuIGFhKG51bGwpO3Rocm93IF9lfSkpKSxXMyhaPT4hIVopLFo1KChaLHVlKT0+e2lmKFogaW5zdGFuY2VvZiBKQXx8IkVtcHR5''@;'; put 'put ''RXJyb3IiPT09Wi5uYW1lKXJldHVybiBKaChoLHksQyk/YWEobmV3IGNsKFtdLHt9KSk6ZHkoaCk7dGhyb3cgWn0pKX1leHBhbmRTZWdtZW50QWdhaW5zdFJvdXRlKGcsaCx2LHksQyxJLFope3JldHVybiB1VSh5LGgsQyxJKT92b2lkIDA9PT15LnJlZGlyZWN0VG8/dGhpcy5tYXRjaFNlZ21l''@;'; put 'put ''bnRBZ2FpbnN0Um91dGUoZyxoLHksQyxJKTpaJiZ0aGlzLmFsbG93UmVkaXJlY3RzP3RoaXMuZXhwYW5kU2VnbWVudEFnYWluc3RSb3V0ZVVzaW5nUmVkaXJlY3QoZyxoLHYseSxDLEkpOmR5KGgpOmR5KGgpfWV4cGFuZFNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGcsaCx2LHks''@;'; put 'put ''QyxJKXtyZXR1cm4iKioiPT09eS5wYXRoP3RoaXMuZXhwYW5kV2lsZENhcmRXaXRoUGFyYW1zQWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLHYseSxJKTp0aGlzLmV4cGFuZFJlZ3VsYXJTZWdtZW50QWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLGgsdix5LEMsSSl9ZXhwYW5kV2lsZENh''@;'; put 'put ''cmRXaXRoUGFyYW1zQWdhaW5zdFJvdXRlVXNpbmdSZWRpcmVjdChnLGgsdix5KXtjb25zdCBDPXRoaXMuYXBwbHlSZWRpcmVjdENvbW1hbmRzKFtdLHYucmVkaXJlY3RUbyx7fSk7cmV0dXJuIHYucmVkaXJlY3RUby5zdGFydHNXaXRoKCIvIik/Y1UoQyk6dGhpcy5saW5lcmFsaXplU2VnbWVu''@;'; put 'put ''dHModixDKS5waXBlKHNyKEk9Pntjb25zdCBaPW5ldyBjbChJLHt9KTtyZXR1cm4gdGhpcy5leHBhbmRTZWdtZW50KGcsWixoLEkseSwhMSl9KSl9ZXhwYW5kUmVndWxhclNlZ21lbnRBZ2FpbnN0Um91dGVVc2luZ1JlZGlyZWN0KGcsaCx2LHksQyxJKXtjb25zdHttYXRjaGVkOlosY29uc3Vt''@;'; put 'put ''ZWRTZWdtZW50czp1ZSxyZW1haW5pbmdTZWdtZW50czpfZSxwb3NpdGlvbmFsUGFyYW1TZWdtZW50czpCZX09RUkoaCx5LEMpO2lmKCFaKXJldHVybiBkeShoKTtjb25zdCBOZT10aGlzLmFwcGx5UmVkaXJlY3RDb21tYW5kcyh1ZSx5LnJlZGlyZWN0VG8sQmUpO3JldHVybiB5LnJlZGlyZWN0''@;'; put 'put ''VG8uc3RhcnRzV2l0aCgiLyIpP2NVKE5lKTp0aGlzLmxpbmVyYWxpemVTZWdtZW50cyh5LE5lKS5waXBlKHNyKEtlPT50aGlzLmV4cGFuZFNlZ21lbnQoZyxoLHYsS2UuY29uY2F0KF9lKSxJLCExKSkpfW1hdGNoU2VnbWVudEFnYWluc3RSb3V0ZShnLGgsdix5LEMpe3JldHVybiIqKiI9PT12''@;'; put 'put ''LnBhdGg/KGc9WVkodixnKSx2LmxvYWRDaGlsZHJlbj8odi5fbG9hZGVkUm91dGVzP2FhKHtyb3V0ZXM6di5fbG9hZGVkUm91dGVzLGluamVjdG9yOnYuX2xvYWRlZEluamVjdG9yfSk6dGhpcy5jb25maWdMb2FkZXIubG9hZENoaWxkcmVuKGcsdikpLnBpcGUobXQoWj0+KHYuX2xvYWRlZFJv''@;'; put 'put ''dXRlcz1aLnJvdXRlcyx2Ll9sb2FkZWRJbmplY3Rvcj1aLmluamVjdG9yLG5ldyBjbCh5LHt9KSkpKTphYShuZXcgY2woeSx7fSkpKTptSChoLHYseSxnKS5waXBlKFloKCh7bWF0Y2hlZDpJLGNvbnN1bWVkU2VnbWVudHM6WixyZW1haW5pbmdTZWdtZW50czp1ZX0pPT57dmFyIF9lO3JldHVy''@;'; put 'put ''biBJPyhnPW51bGwhPT0oX2U9di5faW5qZWN0b3IpJiZ2b2lkIDAhPT1fZT9fZTpnLHRoaXMuZ2V0Q2hpbGRDb25maWcoZyx2LHkpLnBpcGUoc3IoTmU9Pnt2YXIgS2U7Y29uc3QgcHQ9bnVsbCE9PShLZT1OZS5pbmplY3RvcikmJnZvaWQgMCE9PUtlP0tlOmcsT3Q9TmUucm91dGVzLHtzZWdt''@;'; put 'put ''ZW50R3JvdXA6JHQsc2xpY2VkU2VnbWVudHM6Zm59PXhJKGgsWix1ZSxPdCksTG49bmV3IGNsKCR0LnNlZ21lbnRzLCR0LmNoaWxkcmVuKTtpZigwPT09Zm4ubGVuZ3RoJiZMbi5oYXNDaGlsZHJlbigpKXJldHVybiB0aGlzLmV4cGFuZENoaWxkcmVuKHB0LE90LExuKS5waXBlKG10KHdyPT5u''@;'; put 'put ''ZXcgY2woWix3cikpKTtpZigwPT09T3QubGVuZ3RoJiYwPT09Zm4ubGVuZ3RoKXJldHVybiBhYShuZXcgY2woWix7fSkpO2NvbnN0IGlyPVFoKHYpPT09QztyZXR1cm4gdGhpcy5leHBhbmRTZWdtZW50KHB0LExuLE90LGZuLGlyP2psOkMsITApLnBpcGUobXQoU3I9Pm5ldyBjbChaLmNvbmNh''@;'; put 'put ''dChTci5zZWdtZW50cyksU3IuY2hpbGRyZW4pKSl9KSkpOmR5KGgpfSkpfWdldENoaWxkQ29uZmlnKGcsaCx2KXtyZXR1cm4gaC5jaGlsZHJlbj9hYSh7cm91dGVzOmguY2hpbGRyZW4saW5qZWN0b3I6Z30pOmgubG9hZENoaWxkcmVuP3ZvaWQgMCE9PWguX2xvYWRlZFJvdXRlcz9hYSh7cm91''@;'; put 'put ''dGVzOmguX2xvYWRlZFJvdXRlcyxpbmplY3RvcjpoLl9sb2FkZWRJbmplY3Rvcn0pOmZ1bmN0aW9uIGFVKGQsZyxoLHYpe2NvbnN0IHk9Zy5jYW5Mb2FkO3JldHVybiB2b2lkIDA9PT15fHwwPT09eS5sZW5ndGg/YWEoITApOmFhKHkubWFwKEk9Pntjb25zdCBaPWQuZ2V0KEkpLHVlPWZ1bmN0''@;'; put 'put ''aW9uIHJrKGQpe3JldHVybiBkJiZ1eShkLmNhbkxvYWQpfShaKT9aLmNhbkxvYWQoZyxoKTpaKGcsaCk7cmV0dXJuIEJ1KHVlKX0pKS5waXBlKG03KCksbFUoKSl9KGcsaCx2KS5waXBlKHNyKHk9Pnk/dGhpcy5jb25maWdMb2FkZXIubG9hZENoaWxkcmVuKGcsaCkucGlwZSh5YShDPT57aC5f''@;'; put 'put ''bG9hZGVkUm91dGVzPUMucm91dGVzLGguX2xvYWRlZEluamVjdG9yPUMuaW5qZWN0b3J9KSk6ZnVuY3Rpb24gQUgoZCl7cmV0dXJuIFFBKHpZKGlrLDMpKX0oKSkpOmFhKHtyb3V0ZXM6W10saW5qZWN0b3I6Z30pfWxpbmVyYWxpemVTZWdtZW50cyhnLGgpe2xldCB2PVtdLHk9aC5yb290O2Zv''@;'; put 'put ''cig7Oyl7aWYodj12LmNvbmNhdCh5LnNlZ21lbnRzKSwwPT09eS5udW1iZXJPZkNoaWxkcmVuKXJldHVybiBhYSh2KTtpZih5Lm51bWJlck9mQ2hpbGRyZW4+MXx8IXkuY2hpbGRyZW5bamxdKXJldHVybiBRQShuZXcgZW4oNGUzLGlrKSk7eT15LmNoaWxkcmVuW2psXX19YXBwbHlSZWRpcmVj''@;'; put 'put ''dENvbW1hbmRzKGcsaCx2KXtyZXR1cm4gdGhpcy5hcHBseVJlZGlyZWN0Q3JlYXRlVXJsVHJlZShoLHRoaXMudXJsU2VyaWFsaXplci5wYXJzZShoKSxnLHYpfWFwcGx5UmVkaXJlY3RDcmVhdGVVcmxUcmVlKGcsaCx2LHkpe2NvbnN0IEM9dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAoZyxoLnJv''@;'; put 'put ''b3Qsdix5KTtyZXR1cm4gbmV3IFk1KEMsdGhpcy5jcmVhdGVRdWVyeVBhcmFtcyhoLnF1ZXJ5UGFyYW1zLHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcyksaC5mcmFnbWVudCl9Y3JlYXRlUXVlcnlQYXJhbXMoZyxoKXtjb25zdCB2PXt9O3JldHVybiBUYyhnLCh5LEMpPT57aWYoInN0cmluZyI9''@;'; put 'put ''PXR5cGVvZiB5JiZ5LnN0YXJ0c1dpdGgoIjoiKSl7Y29uc3QgWj15LnN1YnN0cmluZygxKTt2W0NdPWhbWl19ZWxzZSB2W0NdPXl9KSx2fWNyZWF0ZVNlZ21lbnRHcm91cChnLGgsdix5KXtjb25zdCBDPXRoaXMuY3JlYXRlU2VnbWVudHMoZyxoLnNlZ21lbnRzLHYseSk7bGV0IEk9e307cmV0''@;'; put 'put ''dXJuIFRjKGguY2hpbGRyZW4sKFosdWUpPT57SVt1ZV09dGhpcy5jcmVhdGVTZWdtZW50R3JvdXAoZyxaLHYseSl9KSxuZXcgY2woQyxJKX1jcmVhdGVTZWdtZW50cyhnLGgsdix5KXtyZXR1cm4gaC5tYXAoQz0+Qy5wYXRoLnN0YXJ0c1dpdGgoIjoiKT90aGlzLmZpbmRQb3NQYXJhbShnLEMs''@;'; put 'put ''eSk6dGhpcy5maW5kT3JSZXR1cm4oQyx2KSl9ZmluZFBvc1BhcmFtKGcsaCx2KXtjb25zdCB5PXZbaC5wYXRoLnN1YnN0cmluZygxKV07aWYoIXkpdGhyb3cgbmV3IGVuKDQwMDEsaWspO3JldHVybiB5fWZpbmRPclJldHVybihnLGgpe2xldCB2PTA7Zm9yKGNvbnN0IHkgb2YgaCl7aWYoeS5w''@;'; put 'put ''YXRoPT09Zy5wYXRoKXJldHVybiBoLnNwbGljZSh2KSx5O3YrK31yZXR1cm4gZ319Y2xhc3MgdG9le31jbGFzcyBpb2V7Y29uc3RydWN0b3IoZyxoLHYseSxDLEksWix1ZSl7dGhpcy5pbmplY3Rvcj1nLHRoaXMucm9vdENvbXBvbmVudFR5cGU9aCx0aGlzLmNvbmZpZz12LHRoaXMudXJsVHJl''@;'; put 'put ''ZT15LHRoaXMudXJsPUMsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PUksdGhpcy5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uPVosdGhpcy51cmxTZXJpYWxpemVyPXVlfXJlY29nbml6ZSgpe2NvbnN0IGc9eEkodGhpcy51cmxUcmVlLnJvb3QsW10sW10sdGhpcy5jb25maWcuZmlsdGVy''@;'; put 'put ''KGg9PnZvaWQgMD09PWgucmVkaXJlY3RUbyksdGhpcy5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uKS5zZWdtZW50R3JvdXA7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRHcm91cCh0aGlzLmluamVjdG9yLHRoaXMuY29uZmlnLGcsamwpLnBpcGUobXQoaD0+e2lmKG51bGw9PT1oKXJldHVybiBu''@;'; put 'put ''dWxsO2NvbnN0IHY9bmV3IHFDKFtdLE9iamVjdC5mcmVlemUoe30pLE9iamVjdC5mcmVlemUoT2JqZWN0LmFzc2lnbih7fSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMpKSx0aGlzLnVybFRyZWUuZnJhZ21lbnQse30samwsdGhpcy5yb290Q29tcG9uZW50VHlwZSxudWxsLHRoaXMudXJsVHJl''@;'; put 'put ''ZS5yb290LC0xLHt9KSx5PW5ldyBXNih2LGgpLEM9bmV3IE5ZKHRoaXMudXJsLHkpO3JldHVybiB0aGlzLmluaGVyaXRQYXJhbXNBbmREYXRhKEMuX3Jvb3QpLEN9KSl9aW5oZXJpdFBhcmFtc0FuZERhdGEoZyl7Y29uc3QgaD1nLnZhbHVlLHY9RlkoaCx0aGlzLnBhcmFtc0luaGVyaXRhbmNl''@;'; put 'put ''U3RyYXRlZ3kpO2gucGFyYW1zPU9iamVjdC5mcmVlemUodi5wYXJhbXMpLGguZGF0YT1PYmplY3QuZnJlZXplKHYuZGF0YSksZy5jaGlsZHJlbi5mb3JFYWNoKHk9PnRoaXMuaW5oZXJpdFBhcmFtc0FuZERhdGEoeSkpfXByb2Nlc3NTZWdtZW50R3JvdXAoZyxoLHYseSl7cmV0dXJuIDA9PT12''@;'; put 'put ''LnNlZ21lbnRzLmxlbmd0aCYmdi5oYXNDaGlsZHJlbigpP3RoaXMucHJvY2Vzc0NoaWxkcmVuKGcsaCx2KTp0aGlzLnByb2Nlc3NTZWdtZW50KGcsaCx2LHYuc2VnbWVudHMseSl9cHJvY2Vzc0NoaWxkcmVuKGcsaCx2KXtyZXR1cm4gZG4oT2JqZWN0LmtleXModi5jaGlsZHJlbikpLnBpcGUo''@;'; put 'put ''VjUoeT0+e2NvbnN0IEM9di5jaGlsZHJlblt5XSxJPXRrKGgseSk7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRHcm91cChnLEksQyx5KX0pLGxJKCh5LEMpPT55JiZDPyh5LnB1c2goLi4uQykseSk6bnVsbCksZnVuY3Rpb24gYzBlKGQsZz0hMSl7cmV0dXJuIGg9PmgubGlmdChuZXcgZjBl''@;'; put 'put ''KGQsZykpfSh5PT5udWxsIT09eSksaDcobnVsbCksQVkoKSxtdCh5PT57aWYobnVsbD09PXkpcmV0dXJuIG51bGw7Y29uc3QgQz1oVSh5KTtyZXR1cm4gZnVuY3Rpb24gREkoZCl7ZC5zb3J0KChnLGgpPT5nLnZhbHVlLm91dGxldD09PWpsPy0xOmgudmFsdWUub3V0bGV0PT09amw/MTpnLnZh''@;'; put 'put ''bHVlLm91dGxldC5sb2NhbGVDb21wYXJlKGgudmFsdWUub3V0bGV0KSl9KEMpLEN9KSl9cHJvY2Vzc1NlZ21lbnQoZyxoLHYseSxDKXtyZXR1cm4gZG4oaCkucGlwZShWNShJPT57dmFyIFo7cmV0dXJuIHRoaXMucHJvY2Vzc1NlZ21lbnRBZ2FpbnN0Um91dGUobnVsbCE9PShaPUkuX2luamVj''@;'; put 'put ''dG9yKSYmdm9pZCAwIT09Wj9aOmcsSSx2LHksQyl9KSxXMyhJPT4hIUkpLFo1KEk9PntpZihJIGluc3RhbmNlb2YgSkEpcmV0dXJuIEpoKHYseSxDKT9hYShbXSk6YWEobnVsbCk7dGhyb3cgSX0pKX1wcm9jZXNzU2VnbWVudEFnYWluc3RSb3V0ZShnLGgsdix5LEMpe3ZhciBJLFo7aWYoaC5y''@;'; put 'put ''ZWRpcmVjdFRvfHwhdVUoaCx2LHksQykpcmV0dXJuIGFhKG51bGwpO2xldCB1ZTtpZigiKioiPT09aC5wYXRoKXtjb25zdCBfZT15Lmxlbmd0aD4wP1dGKHkpLnBhcmFtZXRlcnM6e30sQmU9YkgodikreS5sZW5ndGg7dWU9YWEoe3NuYXBzaG90Om5ldyBxQyh5LF9lLE9iamVjdC5mcmVlemUo''@;'; put 'put ''T2JqZWN0LmFzc2lnbih7fSx0aGlzLnVybFRyZWUucXVlcnlQYXJhbXMpKSx0aGlzLnVybFRyZWUuZnJhZ21lbnQsTEkoaCksUWgoaCksbnVsbCE9PShaPW51bGwhPT0oST1oLmNvbXBvbmVudCkmJnZvaWQgMCE9PUk/STpoLl9sb2FkZWRDb21wb25lbnQpJiZ2b2lkIDAhPT1aP1o6bnVsbCxo''@;'; put 'put ''LHdIKHYpLEJlLGRVKGgpLEJlKSxjb25zdW1lZFNlZ21lbnRzOltdLHJlbWFpbmluZ1NlZ21lbnRzOltdfSl9ZWxzZSB1ZT1tSCh2LGgseSxnKS5waXBlKG10KCh7bWF0Y2hlZDpfZSxjb25zdW1lZFNlZ21lbnRzOkJlLHJlbWFpbmluZ1NlZ21lbnRzOk5lLHBhcmFtZXRlcnM6S2V9KT0+e3Zh''@;'; put 'put ''ciBwdCxPdDtpZighX2UpcmV0dXJuIG51bGw7Y29uc3QgJHQ9YkgodikrQmUubGVuZ3RoO3JldHVybntzbmFwc2hvdDpuZXcgcUMoQmUsS2UsT2JqZWN0LmZyZWV6ZShPYmplY3QuYXNzaWduKHt9LHRoaXMudXJsVHJlZS5xdWVyeVBhcmFtcykpLHRoaXMudXJsVHJlZS5mcmFnbWVudCxMSSho''@;'; put 'put ''KSxRaChoKSxudWxsIT09KE90PW51bGwhPT0ocHQ9aC5jb21wb25lbnQpJiZ2b2lkIDAhPT1wdD9wdDpoLl9sb2FkZWRDb21wb25lbnQpJiZ2b2lkIDAhPT1PdD9PdDpudWxsLGgsd0godiksJHQsZFUoaCksJHQpLGNvbnN1bWVkU2VnbWVudHM6QmUscmVtYWluaW5nU2VnbWVudHM6TmV9fSkp''@;'; put 'put ''O3JldHVybiB1ZS5waXBlKFloKF9lPT57dmFyIEJlLE5lO2lmKG51bGw9PT1fZSlyZXR1cm4gYWEobnVsbCk7Y29uc3R7c25hcHNob3Q6S2UsY29uc3VtZWRTZWdtZW50czpwdCxyZW1haW5pbmdTZWdtZW50czpPdH09X2U7Zz1udWxsIT09KEJlPWguX2luamVjdG9yKSYmdm9pZCAwIT09QmU/''@;'; put 'put ''QmU6Zztjb25zdCAkdD1udWxsIT09KE5lPWguX2xvYWRlZEluamVjdG9yKSYmdm9pZCAwIT09TmU/TmU6Zyxmbj1mdW5jdGlvbiB5SChkKXtyZXR1cm4gZC5jaGlsZHJlbj9kLmNoaWxkcmVuOmQubG9hZENoaWxkcmVuP2QuX2xvYWRlZFJvdXRlczpbXX0oaCkse3NlZ21lbnRHcm91cDpMbixz''@;'; put 'put ''bGljZWRTZWdtZW50czppcn09eEkodixwdCxPdCxmbi5maWx0ZXIoU3I9PnZvaWQgMD09PVNyLnJlZGlyZWN0VG8pLHRoaXMucmVsYXRpdmVMaW5rUmVzb2x1dGlvbik7aWYoMD09PWlyLmxlbmd0aCYmTG4uaGFzQ2hpbGRyZW4oKSlyZXR1cm4gdGhpcy5wcm9jZXNzQ2hpbGRyZW4oJHQsZm4s''@;'; put 'put ''TG4pLnBpcGUobXQoU3I9Pm51bGw9PT1Tcj9udWxsOltuZXcgVzYoS2UsU3IpXSkpO2lmKDA9PT1mbi5sZW5ndGgmJjA9PT1pci5sZW5ndGgpcmV0dXJuIGFhKFtuZXcgVzYoS2UsW10pXSk7Y29uc3QgbXI9UWgoaCk9PT1DO3JldHVybiB0aGlzLnByb2Nlc3NTZWdtZW50KCR0LGZuLExuLGly''@;'; put 'put ''LG1yP2psOkMpLnBpcGUobXQoU3I9Pm51bGw9PT1Tcj9udWxsOltuZXcgVzYoS2UsU3IpXSkpfSkpfX1mdW5jdGlvbiBvb2UoZCl7Y29uc3QgZz1kLnZhbHVlLnJvdXRlQ29uZmlnO3JldHVybiBnJiYiIj09PWcucGF0aCYmdm9pZCAwPT09Zy5yZWRpcmVjdFRvfWZ1bmN0aW9uIGhVKGQpe2Nv''@;'; put 'put ''bnN0IGc9W10saD1uZXcgU2V0O2Zvcihjb25zdCB2IG9mIGQpe2lmKCFvb2Uodikpe2cucHVzaCh2KTtjb250aW51ZX1jb25zdCB5PWcuZmluZChDPT52LnZhbHVlLnJvdXRlQ29uZmlnPT09Qy52YWx1ZS5yb3V0ZUNvbmZpZyk7dm9pZCAwIT09eT8oeS5jaGlsZHJlbi5wdXNoKC4uLnYuY2hp''@;'; put 'put ''bGRyZW4pLGguYWRkKHkpKTpnLnB1c2godil9Zm9yKGNvbnN0IHYgb2YgaCl7Y29uc3QgeT1oVSh2LmNoaWxkcmVuKTtnLnB1c2gobmV3IFc2KHYudmFsdWUseSkpfXJldHVybiBnLmZpbHRlcih2PT4haC5oYXModikpfWZ1bmN0aW9uIHdIKGQpe2xldCBnPWQ7Zm9yKDtnLl9zb3VyY2VTZWdt''@;'; put 'put ''ZW50OylnPWcuX3NvdXJjZVNlZ21lbnQ7cmV0dXJuIGd9ZnVuY3Rpb24gYkgoZCl7dmFyIGcsaDtsZXQgdj1kLHk9bnVsbCE9PShnPXYuX3NlZ21lbnRJbmRleFNoaWZ0KSYmdm9pZCAwIT09Zz9nOjA7Zm9yKDt2Ll9zb3VyY2VTZWdtZW50Oyl2PXYuX3NvdXJjZVNlZ21lbnQseSs9bnVsbCE9''@;'; put 'put ''PShoPXYuX3NlZ21lbnRJbmRleFNoaWZ0KSYmdm9pZCAwIT09aD9oOjA7cmV0dXJuIHktMX1mdW5jdGlvbiBMSShkKXtyZXR1cm4gZC5kYXRhfHx7fX1mdW5jdGlvbiBkVShkKXtyZXR1cm4gZC5yZXNvbHZlfHx7fX1jb25zdCBnVT1TeW1ib2woIlJvdXRlVGl0bGUiKTtmdW5jdGlvbiBPSShk''@;'; put 'put ''KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQudGl0bGV8fG51bGw9PT1kLnRpdGxlfWZ1bmN0aW9uIENIKGQpe3JldHVybiBZaChnPT57Y29uc3QgaD1kKGcpO3JldHVybiBoP2RuKGgpLnBpcGUobXQoKCk9PmcpKTphYShnKX0pfWxldCBBVT0oKCk9PntjbGFzcyBke2J1aWxkVGl0bGUoaCl7''@;'; put 'put ''dmFyIHY7bGV0IHksQz1oLnJvb3Q7Zm9yKDt2b2lkIDAhPT1DOyl5PW51bGwhPT0odj10aGlzLmdldFJlc29sdmVkVGl0bGVGb3JSb3V0ZShDKSkmJnZvaWQgMCE9PXY/djp5LEM9Qy5jaGlsZHJlbi5maW5kKEk9Pkkub3V0bGV0PT09amwpO3JldHVybiB5fWdldFJlc29sdmVkVGl0bGVGb3JS''@;'; put 'put ''b3V0ZShoKXtyZXR1cm4gaC5kYXRhW2dVXX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmZ1bmN0aW9uKCl7cmV0dXJuIGgyKHlVKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSx5VT0o''@;'; put 'put ''KCk9PntjbGFzcyBkIGV4dGVuZHMgQVV7Y29uc3RydWN0b3IoaCl7c3VwZXIoKSx0aGlzLnRpdGxlPWh9dXBkYXRlVGl0bGUoaCl7Y29uc3Qgdj10aGlzLmJ1aWxkVGl0bGUoaCk7dm9pZCAwIT09diYmdGhpcy50aXRsZS5zZXRUaXRsZSh2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koR0EpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjbGFzcyBjb2V7fWNsYXNzIGZvZSBleHRlbmRzIGNsYXNzIHdVe3Nob3VsZERldGFjaChnKXtyZXR1cm4hMX1z''@;'; put 'put ''dG9yZShnLGgpe31zaG91bGRBdHRhY2goZyl7cmV0dXJuITF9cmV0cmlldmUoZyl7cmV0dXJuIG51bGx9c2hvdWxkUmV1c2VSb3V0ZShnLGgpe3JldHVybiBnLnJvdXRlQ29uZmlnPT09aC5yb3V0ZUNvbmZpZ319e31jb25zdCBrSD1uZXcgemUoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rv''@;'; put 'put ''cnk6KCk9Pih7fSl9KSxSST1uZXcgemUoIlJPVVRFUyIpO2xldCBNSD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5pbmplY3Rvcj1oLHRoaXMuY29tcGlsZXI9dix0aGlzLmNvbXBvbmVudExvYWRlcnM9bmV3IFdlYWtNYXAsdGhpcy5jaGlsZHJlbkxvYWRlcnM9bmV3IFdl''@;'; put 'put ''YWtNYXB9bG9hZENvbXBvbmVudChoKXtpZih0aGlzLmNvbXBvbmVudExvYWRlcnMuZ2V0KGgpKXJldHVybiB0aGlzLmNvbXBvbmVudExvYWRlcnMuZ2V0KGgpO2lmKGguX2xvYWRlZENvbXBvbmVudClyZXR1cm4gYWEoaC5fbG9hZGVkQ29tcG9uZW50KTt0aGlzLm9uTG9hZFN0YXJ0TGlzdGVu''@;'; put 'put ''ZXImJnRoaXMub25Mb2FkU3RhcnRMaXN0ZW5lcihoKTtjb25zdCB2PUJ1KGgubG9hZENvbXBvbmVudCgpKS5waXBlKHlhKEM9Pnt0aGlzLm9uTG9hZEVuZExpc3RlbmVyJiZ0aGlzLm9uTG9hZEVuZExpc3RlbmVyKGgpLGguX2xvYWRlZENvbXBvbmVudD1DfSksc0koKCk9Pnt0aGlzLmNvbXBv''@;'; put 'put ''bmVudExvYWRlcnMuZGVsZXRlKGgpfSkpLHk9bmV3IHBuKHYsKCk9Pm5ldyAkZSkucGlwZShBbigpKTtyZXR1cm4gdGhpcy5jb21wb25lbnRMb2FkZXJzLnNldChoLHkpLHl9bG9hZENoaWxkcmVuKGgsdil7aWYodGhpcy5jaGlsZHJlbkxvYWRlcnMuZ2V0KHYpKXJldHVybiB0aGlzLmNoaWxk''@;'; put 'put ''cmVuTG9hZGVycy5nZXQodik7aWYodi5fbG9hZGVkUm91dGVzKXJldHVybiBhYSh7cm91dGVzOnYuX2xvYWRlZFJvdXRlcyxpbmplY3Rvcjp2Ll9sb2FkZWRJbmplY3Rvcn0pO3RoaXMub25Mb2FkU3RhcnRMaXN0ZW5lciYmdGhpcy5vbkxvYWRTdGFydExpc3RlbmVyKHYpO2NvbnN0IEM9dGhp''@;'; put 'put ''cy5sb2FkTW9kdWxlRmFjdG9yeU9yUm91dGVzKHYubG9hZENoaWxkcmVuKS5waXBlKG10KFo9Pnt0aGlzLm9uTG9hZEVuZExpc3RlbmVyJiZ0aGlzLm9uTG9hZEVuZExpc3RlbmVyKHYpO2xldCB1ZSxfZSxCZT0hMTtBcnJheS5pc0FycmF5KFopP19lPVo6KHVlPVouY3JlYXRlKGgpLmluamVj''@;'; put 'put ''dG9yLF9lPUdGKHVlLmdldChSSSxbXSxqMC5TZWxmfGowLk9wdGlvbmFsKSkpO3JldHVybntyb3V0ZXM6X2UubWFwKGZIKSxpbmplY3Rvcjp1ZX19KSxzSSgoKT0+e3RoaXMuY2hpbGRyZW5Mb2FkZXJzLmRlbGV0ZSh2KX0pKSxJPW5ldyBwbihDLCgpPT5uZXcgJGUpLnBpcGUoQW4oKSk7cmV0''@;'; put 'put ''dXJuIHRoaXMuY2hpbGRyZW5Mb2FkZXJzLnNldCh2LEkpLEl9bG9hZE1vZHVsZUZhY3RvcnlPclJvdXRlcyhoKXtyZXR1cm4gQnUoaCgpKS5waXBlKHNyKHY9PnYgaW5zdGFuY2VvZiBDMXx8QXJyYXkuaXNBcnJheSh2KT9hYSh2KTpkbih0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVBc3lu''@;'; put 'put ''Yyh2KSkpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koU3MpLENpKENUKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3Mgb2t7fWNsYXNzIF9Ve3Nob3VsZFByb2Nlc3NVcmwoZyl7''@;'; put 'put ''cmV0dXJuITB9ZXh0cmFjdChnKXtyZXR1cm4gZ31tZXJnZShnLGgpe3JldHVybiBnfX1mdW5jdGlvbiBDVShkKXt0aHJvdyBkfWZ1bmN0aW9uIGhvZShkLGcsaCl7cmV0dXJuIGcucGFyc2UoIi8iKX1jb25zdCBkb2U9e3BhdGhzOiJleGFjdCIsZnJhZ21lbnQ6Imlnbm9yZWQiLG1hdHJpeFBh''@;'; put 'put ''cmFtczoiaWdub3JlZCIscXVlcnlQYXJhbXM6ImV4YWN0In0sQkk9e3BhdGhzOiJzdWJzZXQiLGZyYWdtZW50OiJpZ25vcmVkIixtYXRyaXhQYXJhbXM6Imlnbm9yZWQiLHF1ZXJ5UGFyYW1zOiJzdWJzZXQifTtmdW5jdGlvbiBrVSgpe3ZhciBkLGc7Y29uc3QgaD1oMihVNSksdj1oMihlayks''@;'; put 'put ''eT1oMihWNiksQz1oMihTcyksST1oMihDVCksWj1udWxsIT09KGQ9aDIoUkkse29wdGlvbmFsOiEwfSkpJiZ2b2lkIDAhPT1kP2Q6W10sdWU9bnVsbCE9PShnPWgyKGtILHtvcHRpb25hbDohMH0pKSYmdm9pZCAwIT09Zz9nOnt9LF9lPWgyKHlVKSxCZT1oMihBVSx7b3B0aW9uYWw6ITB9KSxO''@;'; put 'put ''ZT1oMihvayx7b3B0aW9uYWw6ITB9KSxLZT1oMihjb2Use29wdGlvbmFsOiEwfSkscHQ9bmV3IFpsKG51bGwsaCx2LHksQyxJLEdGKFopKTtyZXR1cm4gTmUmJihwdC51cmxIYW5kbGluZ1N0cmF0ZWd5PU5lKSxLZSYmKHB0LnJvdXRlUmV1c2VTdHJhdGVneT1LZSkscHQudGl0bGVTdHJhdGVn''@;'; put 'put ''eT1udWxsIT1CZT9CZTpfZSxmdW5jdGlvbiBwb2UoZCxnKXtkLmVycm9ySGFuZGxlciYmKGcuZXJyb3JIYW5kbGVyPWQuZXJyb3JIYW5kbGVyKSxkLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlciYmKGcubWFsZm9ybWVkVXJpRXJyb3JIYW5kbGVyPWQubWFsZm9ybWVkVXJpRXJyb3JIYW5kbGVy''@;'; put 'put ''KSxkLm9uU2FtZVVybE5hdmlnYXRpb24mJihnLm9uU2FtZVVybE5hdmlnYXRpb249ZC5vblNhbWVVcmxOYXZpZ2F0aW9uKSxkLnBhcmFtc0luaGVyaXRhbmNlU3RyYXRlZ3kmJihnLnBhcmFtc0luaGVyaXRhbmNlU3RyYXRlZ3k9ZC5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5KSxkLnJlbGF0''@;'; put 'put ''aXZlTGlua1Jlc29sdXRpb24mJihnLnJlbGF0aXZlTGlua1Jlc29sdXRpb249ZC5yZWxhdGl2ZUxpbmtSZXNvbHV0aW9uKSxkLnVybFVwZGF0ZVN0cmF0ZWd5JiYoZy51cmxVcGRhdGVTdHJhdGVneT1kLnVybFVwZGF0ZVN0cmF0ZWd5KSxkLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24m''@;'; put 'put ''JihnLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb249ZC5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uKX0odWUscHQpLHB0fWxldCBabD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxaLHVlKXt0aGlzLnJvb3RDb21wb25lbnRUeXBlPWgsdGhpcy51cmxTZXJpYWxp''@;'; put 'put ''emVyPXYsdGhpcy5yb290Q29udGV4dHM9eSx0aGlzLmxvY2F0aW9uPUMsdGhpcy5jb25maWc9dWUsdGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb249bnVsbCx0aGlzLmN1cnJlbnROYXZpZ2F0aW9uPW51bGwsdGhpcy5kaXNwb3NlZD0hMSx0aGlzLm5hdmlnYXRpb25JZD0wLHRoaXMuY3Vy''@;'; put 'put ''cmVudFBhZ2VJZD0wLHRoaXMuaXNOZ1pvbmVFbmFibGVkPSExLHRoaXMuZXZlbnRzPW5ldyAkZSx0aGlzLmVycm9ySGFuZGxlcj1DVSx0aGlzLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlcj1ob2UsdGhpcy5uYXZpZ2F0ZWQ9ITEsdGhpcy5sYXN0U3VjY2Vzc2Z1bElkPS0xLHRoaXMuYWZ0ZXJQ''@;'; put 'put ''cmVhY3RpdmF0aW9uPSgpPT5hYSh2b2lkIDApLHRoaXMudXJsSGFuZGxpbmdTdHJhdGVneT1uZXcgX1UsdGhpcy5yb3V0ZVJldXNlU3RyYXRlZ3k9bmV3IGZvZSx0aGlzLm9uU2FtZVVybE5hdmlnYXRpb249Imlnbm9yZSIsdGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5PSJlbXB0eU9u''@;'; put 'put ''bHkiLHRoaXMudXJsVXBkYXRlU3RyYXRlZ3k9ImRlZmVycmVkIix0aGlzLnJlbGF0aXZlTGlua1Jlc29sdXRpb249ImNvcnJlY3RlZCIsdGhpcy5jYW5jZWxlZE5hdmlnYXRpb25SZXNvbHV0aW9uPSJyZXBsYWNlIix0aGlzLmNvbmZpZ0xvYWRlcj1JLmdldChNSCksdGhpcy5jb25maWdMb2Fk''@;'; put 'put ''ZXIub25Mb2FkRW5kTGlzdGVuZXI9S2U9PnRoaXMudHJpZ2dlckV2ZW50KG5ldyAkQyhLZSkpLHRoaXMuY29uZmlnTG9hZGVyLm9uTG9hZFN0YXJ0TGlzdGVuZXI9S2U9PnRoaXMudHJpZ2dlckV2ZW50KG5ldyBJMGUoS2UpKSx0aGlzLm5nTW9kdWxlPUkuZ2V0KEgzKSx0aGlzLmNvbnNvbGU9''@;'; put 'put ''SS5nZXQocnJlKTtjb25zdCBOZT1JLmdldChfbCk7dGhpcy5pc05nWm9uZUVuYWJsZWQ9TmUgaW5zdGFuY2VvZiBfbCYmX2wuaXNJbkFuZ3VsYXJab25lKCksdGhpcy5yZXNldENvbmZpZyh1ZSksdGhpcy5jdXJyZW50VXJsVHJlZT1mdW5jdGlvbiBnMGUoKXtyZXR1cm4gbmV3IFk1KG5ldyBj''@;'; put 'put ''bChbXSx7fSkse30sbnVsbCl9KCksdGhpcy5yYXdVcmxUcmVlPXRoaXMuY3VycmVudFVybFRyZWUsdGhpcy5icm93c2VyVXJsVHJlZT10aGlzLmN1cnJlbnRVcmxUcmVlLHRoaXMucm91dGVyU3RhdGU9UFkodGhpcy5jdXJyZW50VXJsVHJlZSx0aGlzLnJvb3RDb21wb25lbnRUeXBlKSx0aGlz''@;'; put 'put ''LnRyYW5zaXRpb25zPW5ldyBmcyh7aWQ6MCx0YXJnZXRQYWdlSWQ6MCxjdXJyZW50VXJsVHJlZTp0aGlzLmN1cnJlbnRVcmxUcmVlLGN1cnJlbnRSYXdVcmw6dGhpcy5jdXJyZW50VXJsVHJlZSxleHRyYWN0ZWRVcmw6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QodGhpcy5jdXJy''@;'; put 'put ''ZW50VXJsVHJlZSksdXJsQWZ0ZXJSZWRpcmVjdHM6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QodGhpcy5jdXJyZW50VXJsVHJlZSkscmF3VXJsOnRoaXMuY3VycmVudFVybFRyZWUsZXh0cmFzOnt9LHJlc29sdmU6bnVsbCxyZWplY3Q6bnVsbCxwcm9taXNlOlByb21pc2UucmVz''@;'; put 'put ''b2x2ZSghMCksc291cmNlOiJpbXBlcmF0aXZlIixyZXN0b3JlZFN0YXRlOm51bGwsY3VycmVudFNuYXBzaG90OnRoaXMucm91dGVyU3RhdGUuc25hcHNob3QsdGFyZ2V0U25hcHNob3Q6bnVsbCxjdXJyZW50Um91dGVyU3RhdGU6dGhpcy5yb3V0ZXJTdGF0ZSx0YXJnZXRSb3V0ZXJTdGF0ZTpu''@;'; put 'put ''dWxsLGd1YXJkczp7Y2FuQWN0aXZhdGVDaGVja3M6W10sY2FuRGVhY3RpdmF0ZUNoZWNrczpbXX0sZ3VhcmRzUmVzdWx0Om51bGx9KSx0aGlzLm5hdmlnYXRpb25zPXRoaXMuc2V0dXBOYXZpZ2F0aW9ucyh0aGlzLnRyYW5zaXRpb25zKSx0aGlzLnByb2Nlc3NOYXZpZ2F0aW9ucygpfWdldCBi''@;'; put 'put ''cm93c2VyUGFnZUlkKCl7dmFyIGg7cmV0dXJuIG51bGw9PT0oaD10aGlzLmxvY2F0aW9uLmdldFN0YXRlKCkpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLlx1MDI3NXJvdXRlclBhZ2VJZH1zZXR1cE5hdmlnYXRpb25zKGgpe2NvbnN0IHY9dGhpcy5ldmVudHM7cmV0dXJuIGgucGlwZShPMih5PT4w''@;'; put 'put ''IT09eS5pZCksbXQoeT0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHtleHRyYWN0ZWRVcmw6dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LmV4dHJhY3QoeS5yYXdVcmwpfSkpLFloKHk9PntsZXQgQz0hMSxJPSExO3JldHVybiBhYSh5KS5waXBlKHlhKFo9Pnt0aGlzLmN1cnJl''@;'; put 'put ''bnROYXZpZ2F0aW9uPXtpZDpaLmlkLGluaXRpYWxVcmw6Wi5yYXdVcmwsZXh0cmFjdGVkVXJsOlouZXh0cmFjdGVkVXJsLHRyaWdnZXI6Wi5zb3VyY2UsZXh0cmFzOlouZXh0cmFzLHByZXZpb3VzTmF2aWdhdGlvbjp0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj9PYmplY3QuYXNzaWdu''@;'; put 'put ''KE9iamVjdC5hc3NpZ24oe30sdGhpcy5sYXN0U3VjY2Vzc2Z1bE5hdmlnYXRpb24pLHtwcmV2aW91c05hdmlnYXRpb246bnVsbH0pOm51bGx9fSksWWgoWj0+e2NvbnN0IHVlPXRoaXMuYnJvd3NlclVybFRyZWUudG9TdHJpbmcoKSxfZT0hdGhpcy5uYXZpZ2F0ZWR8fFouZXh0cmFjdGVkVXJs''@;'; put 'put ''LnRvU3RyaW5nKCkhPT11ZXx8dWUhPT10aGlzLmN1cnJlbnRVcmxUcmVlLnRvU3RyaW5nKCk7aWYoKCJyZWxvYWQiPT09dGhpcy5vblNhbWVVcmxOYXZpZ2F0aW9ufHxfZSkmJnRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5zaG91bGRQcm9jZXNzVXJsKFoucmF3VXJsKSlyZXR1cm4gRUgoWi5z''@;'; put 'put ''b3VyY2UpJiYodGhpcy5icm93c2VyVXJsVHJlZT1aLmV4dHJhY3RlZFVybCksYWEoWikucGlwZShZaChOZT0+e2NvbnN0IEtlPXRoaXMudHJhbnNpdGlvbnMuZ2V0VmFsdWUoKTtyZXR1cm4gdi5uZXh0KG5ldyBBSShOZS5pZCx0aGlzLnNlcmlhbGl6ZVVybChOZS5leHRyYWN0ZWRVcmwpLE5l''@;'; put 'put ''LnNvdXJjZSxOZS5yZXN0b3JlZFN0YXRlKSksS2UhPT10aGlzLnRyYW5zaXRpb25zLmdldFZhbHVlKCk/VUE6UHJvbWlzZS5yZXNvbHZlKE5lKX0pLGZ1bmN0aW9uIGZVKGQsZyxoLHYpe3JldHVybiBZaCh5PT5mdW5jdGlvbiBxMGUoZCxnLGgsdix5KXtyZXR1cm4gbmV3IGVvZShkLGcsaCx2''@;'; put 'put ''LHkpLmFwcGx5KCl9KGQsZyxoLHkuZXh0cmFjdGVkVXJsLHYpLnBpcGUobXQoQz0+T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHkpLHt1cmxBZnRlclJlZGlyZWN0czpDfSkpKSl9KHRoaXMubmdNb2R1bGUuaW5qZWN0b3IsdGhpcy5jb25maWdMb2FkZXIsdGhpcy51cmxTZXJpYWxp''@;'; put 'put ''emVyLHRoaXMuY29uZmlnKSx5YShOZT0+e3RoaXMuY3VycmVudE5hdmlnYXRpb249T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuY3VycmVudE5hdmlnYXRpb24pLHtmaW5hbFVybDpOZS51cmxBZnRlclJlZGlyZWN0c30pLHkudXJsQWZ0ZXJSZWRpcmVjdHM9TmUudXJsQWZ0''@;'; put 'put ''ZXJSZWRpcmVjdHN9KSxmdW5jdGlvbiBwVShkLGcsaCx2LHksQyl7cmV0dXJuIHNyKEk9PmZ1bmN0aW9uIHJvZShkLGcsaCx2LHksQyxJPSJlbXB0eU9ubHkiLFo9ImxlZ2FjeSIpe3JldHVybiBuZXcgaW9lKGQsZyxoLHYseSxJLFosQykucmVjb2duaXplKCkucGlwZShZaCh1ZT0+bnVsbD09''@;'; put 'put ''PXVlP2Z1bmN0aW9uIG5vZShkKXtyZXR1cm4gbmV3IEYoZz0+Zy5lcnJvcihkKSl9KG5ldyB0b2UpOmFhKHVlKSkpfShkLGcsaCxJLnVybEFmdGVyUmVkaXJlY3RzLHYuc2VyaWFsaXplKEkudXJsQWZ0ZXJSZWRpcmVjdHMpLHYseSxDKS5waXBlKG10KFo9Pk9iamVjdC5hc3NpZ24oT2JqZWN0''@;'; put 'put ''LmFzc2lnbih7fSxJKSx7dGFyZ2V0U25hcHNob3Q6Wn0pKSkpfSh0aGlzLm5nTW9kdWxlLmluamVjdG9yLHRoaXMucm9vdENvbXBvbmVudFR5cGUsdGhpcy5jb25maWcsdGhpcy51cmxTZXJpYWxpemVyLHRoaXMucGFyYW1zSW5oZXJpdGFuY2VTdHJhdGVneSx0aGlzLnJlbGF0aXZlTGlua1Jl''@;'; put 'put ''c29sdXRpb24pLHlhKE5lPT57aWYoeS50YXJnZXRTbmFwc2hvdD1OZS50YXJnZXRTbmFwc2hvdCwiZWFnZXIiPT09dGhpcy51cmxVcGRhdGVTdHJhdGVneSl7aWYoIU5lLmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2Upe2NvbnN0IHB0PXRoaXMudXJsSGFuZGxpbmdTdHJhdGVneS5tZXJnZShO''@;'; put 'put ''ZS51cmxBZnRlclJlZGlyZWN0cyxOZS5yYXdVcmwpO3RoaXMuc2V0QnJvd3NlclVybChwdCxOZSl9dGhpcy5icm93c2VyVXJsVHJlZT1OZS51cmxBZnRlclJlZGlyZWN0c31jb25zdCBLZT1uZXcgRFkoTmUuaWQsdGhpcy5zZXJpYWxpemVVcmwoTmUuZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlh''@;'; put 'put ''bGl6ZVVybChOZS51cmxBZnRlclJlZGlyZWN0cyksTmUudGFyZ2V0U25hcHNob3QpO3YubmV4dChLZSl9KSk7aWYoX2UmJnRoaXMucmF3VXJsVHJlZSYmdGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5LnNob3VsZFByb2Nlc3NVcmwodGhpcy5yYXdVcmxUcmVlKSl7Y29uc3R7aWQ6S2UsZXh0cmFj''@;'; put 'put ''dGVkVXJsOnB0LHNvdXJjZTpPdCxyZXN0b3JlZFN0YXRlOiR0LGV4dHJhczpmbn09WixMbj1uZXcgQUkoS2UsdGhpcy5zZXJpYWxpemVVcmwocHQpLE90LCR0KTt2Lm5leHQoTG4pO2NvbnN0IGlyPVBZKHB0LHRoaXMucm9vdENvbXBvbmVudFR5cGUpLnNuYXBzaG90O3JldHVybiBhYSh5PU9i''@;'; put 'put ''amVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxaKSx7dGFyZ2V0U25hcHNob3Q6aXIsdXJsQWZ0ZXJSZWRpcmVjdHM6cHQsZXh0cmFzOk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxmbikse3NraXBMb2NhdGlvbkNoYW5nZTohMSxyZXBsYWNlVXJsOiExfSl9KSl9cmV0dXJuIHRo''@;'; put 'put ''aXMucmF3VXJsVHJlZT1aLnJhd1VybCxaLnJlc29sdmUobnVsbCksVUF9KSx5YShaPT57Y29uc3QgdWU9bmV3IHgwZShaLmlkLHRoaXMuc2VyaWFsaXplVXJsKFouZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlhbGl6ZVVybChaLnVybEFmdGVyUmVkaXJlY3RzKSxaLnRhcmdldFNuYXBzaG90KTt0''@;'; put 'put ''aGlzLnRyaWdnZXJFdmVudCh1ZSl9KSxtdChaPT55PU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxaKSx7Z3VhcmRzOkpZKFoudGFyZ2V0U25hcHNob3QsWi5jdXJyZW50U25hcHNob3QsdGhpcy5yb290Q29udGV4dHMpfSkpLGZ1bmN0aW9uIFcwZShkLGcpe3JldHVybiBzcihoPT57''@;'; put 'put ''Y29uc3R7dGFyZ2V0U25hcHNob3Q6dixjdXJyZW50U25hcHNob3Q6eSxndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOkMsY2FuRGVhY3RpdmF0ZUNoZWNrczpJfX09aDtyZXR1cm4gMD09PUkubGVuZ3RoJiYwPT09Qy5sZW5ndGg/YWEoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGgp''@;'; put 'put ''LHtndWFyZHNSZXN1bHQ6ITB9KSk6ZnVuY3Rpb24gWTBlKGQsZyxoLHYpe3JldHVybiBkbihkKS5waXBlKHNyKHk9PmZ1bmN0aW9uIG9VKGQsZyxoLHYseSl7Y29uc3QgQz1nJiZnLnJvdXRlQ29uZmlnP2cucm91dGVDb25maWcuY2FuRGVhY3RpdmF0ZTpudWxsO3JldHVybiBDJiYwIT09Qy5s''@;'; put 'put ''ZW5ndGg/YWEoQy5tYXAoWj0+e2NvbnN0IHVlPU1JKFosZyx5KTtyZXR1cm4gQnUoZnVuY3Rpb24gZVUoZCl7cmV0dXJuIGQmJnV5KGQuY2FuRGVhY3RpdmF0ZSl9KHVlKT91ZS5jYW5EZWFjdGl2YXRlKGQsZyxoLHYpOnVlKGQsZyxoLHYpKS5waXBlKFczKCkpfSkpLnBpcGUobTcoKSk6YWEo''@;'; put 'put ''ITApfSh5LmNvbXBvbmVudCx5LnJvdXRlLGgsZyx2KSksVzMoeT0+ITAhPT15LCEwKSl9KEksdix5LGQpLnBpcGUoc3IoWj0+WiYmZnVuY3Rpb24gWjBlKGQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIGR9KFopP2Z1bmN0aW9uIFUwZShkLGcsaCx2KXtyZXR1cm4gZG4oZykucGlwZShWNSh5''@;'; put 'put ''PT5qRihmdW5jdGlvbiByVShkLGcpe3JldHVybiBudWxsIT09ZCYmZyYmZyhuZXcgb0goZCkpLGFhKCEwKX0oeS5yb3V0ZS5wYXJlbnQsdiksZnVuY3Rpb24gblUoZCxnKXtyZXR1cm4gbnVsbCE9PWQmJmcmJmcobmV3IFJZKGQpKSxhYSghMCl9KHkucm91dGUsdiksZnVuY3Rpb24gaVUoZCxn''@;'; put 'put ''LGgpe2NvbnN0IHY9Z1tnLmxlbmd0aC0xXSxDPWcuc2xpY2UoMCxnLmxlbmd0aC0xKS5yZXZlcnNlKCkubWFwKEk9PmZ1bmN0aW9uIFhZKGQpe2NvbnN0IGc9ZC5yb3V0ZUNvbmZpZz9kLnJvdXRlQ29uZmlnLmNhbkFjdGl2YXRlQ2hpbGQ6bnVsbDtyZXR1cm4gZyYmMCE9PWcubGVuZ3RoP3tu''@;'; put 'put ''b2RlOmQsZ3VhcmRzOmd9Om51bGx9KEkpKS5maWx0ZXIoST0+bnVsbCE9PUkpLm1hcChJPT5jWSgoKT0+YWEoSS5ndWFyZHMubWFwKHVlPT57Y29uc3QgX2U9TUkodWUsSS5ub2RlLGgpO3JldHVybiBCdShmdW5jdGlvbiBwSChkKXtyZXR1cm4gZCYmdXkoZC5jYW5BY3RpdmF0ZUNoaWxkKX0o''@;'; put 'put ''X2UpP19lLmNhbkFjdGl2YXRlQ2hpbGQodixkKTpfZSh2LGQpKS5waXBlKFczKCkpfSkpLnBpcGUobTcoKSkpKTtyZXR1cm4gYWEoQykucGlwZShtNygpKX0oZCx5LnBhdGgsaCksZnVuY3Rpb24gUTBlKGQsZyxoKXtjb25zdCB2PWcucm91dGVDb25maWc/Zy5yb3V0ZUNvbmZpZy5jYW5BY3Rp''@;'; put 'put ''dmF0ZTpudWxsO2lmKCF2fHwwPT09di5sZW5ndGgpcmV0dXJuIGFhKCEwKTtjb25zdCB5PXYubWFwKEM9PmNZKCgpPT57Y29uc3QgST1NSShDLGcsaCk7cmV0dXJuIEJ1KGZ1bmN0aW9uIHFZKGQpe3JldHVybiBkJiZ1eShkLmNhbkFjdGl2YXRlKX0oSSk/SS5jYW5BY3RpdmF0ZShnLGQpOkko''@;'; put 'put ''ZyxkKSkucGlwZShXMygpKX0pKTtyZXR1cm4gYWEoeSkucGlwZShtNygpKX0oZCx5LnJvdXRlLGgpKSksVzMoeT0+ITAhPT15LCEwKSl9KHYsQyxkLGcpOmFhKFopKSxtdChaPT5PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saCkse2d1YXJkc1Jlc3VsdDpafSkpKX0pfSh0aGlzLm5n''@;'; put 'put ''TW9kdWxlLmluamVjdG9yLFo9PnRoaXMudHJpZ2dlckV2ZW50KFopKSx5YShaPT57aWYoeS5ndWFyZHNSZXN1bHQ9Wi5ndWFyZHNSZXN1bHQsZzcoWi5ndWFyZHNSZXN1bHQpKXRocm93IGxIKDAsWi5ndWFyZHNSZXN1bHQpO2NvbnN0IHVlPW5ldyBpSChaLmlkLHRoaXMuc2VyaWFsaXplVXJs''@;'; put 'put ''KFouZXh0cmFjdGVkVXJsKSx0aGlzLnNlcmlhbGl6ZVVybChaLnVybEFmdGVyUmVkaXJlY3RzKSxaLnRhcmdldFNuYXBzaG90LCEhWi5ndWFyZHNSZXN1bHQpO3RoaXMudHJpZ2dlckV2ZW50KHVlKX0pLE8yKFo9PiEhWi5ndWFyZHNSZXN1bHR8fCh0aGlzLnJlc3RvcmVIaXN0b3J5KFopLHRo''@;'; put 'put ''aXMuY2FuY2VsTmF2aWdhdGlvblRyYW5zaXRpb24oWiwiIiwzKSwhMSkpLENIKFo9PntpZihaLmd1YXJkcy5jYW5BY3RpdmF0ZUNoZWNrcy5sZW5ndGgpcmV0dXJuIGFhKFopLnBpcGUoeWEodWU9Pntjb25zdCBfZT1uZXcgTFkodWUuaWQsdGhpcy5zZXJpYWxpemVVcmwodWUuZXh0cmFjdGVk''@;'; put 'put ''VXJsKSx0aGlzLnNlcmlhbGl6ZVVybCh1ZS51cmxBZnRlclJlZGlyZWN0cyksdWUudGFyZ2V0U25hcHNob3QpO3RoaXMudHJpZ2dlckV2ZW50KF9lKX0pLFloKHVlPT57bGV0IF9lPSExO3JldHVybiBhYSh1ZSkucGlwZShmdW5jdGlvbiBtVShkLGcpe3JldHVybiBzcihoPT57Y29uc3R7dGFy''@;'; put 'put ''Z2V0U25hcHNob3Q6dixndWFyZHM6e2NhbkFjdGl2YXRlQ2hlY2tzOnl9fT1oO2lmKCF5Lmxlbmd0aClyZXR1cm4gYWEoaCk7bGV0IEM9MDtyZXR1cm4gZG4oeSkucGlwZShWNShJPT5mdW5jdGlvbiBsb2UoZCxnLGgsdil7Y29uc3QgeT1kLnJvdXRlQ29uZmlnLEM9ZC5fcmVzb2x2ZTtyZXR1''@;'; put 'put ''cm4gdm9pZCAwIT09KG51bGw9PXk/dm9pZCAwOnkudGl0bGUpJiYhT0koeSkmJihDW2dVXT15LnRpdGxlKSxmdW5jdGlvbiBzb2UoZCxnLGgsdil7Y29uc3QgeT1mdW5jdGlvbiB2VShkKXtyZXR1cm5bLi4uT2JqZWN0LmtleXMoZCksLi4uT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhk''@;'; put 'put ''KV19KGQpO2lmKDA9PT15Lmxlbmd0aClyZXR1cm4gYWEoe30pO2NvbnN0IEM9e307cmV0dXJuIGRuKHkpLnBpcGUoc3IoST0+ZnVuY3Rpb24gdW9lKGQsZyxoLHYpe2NvbnN0IHk9TUkoZCxnLHYpO3JldHVybiBCdSh5LnJlc29sdmU/eS5yZXNvbHZlKGcsaCk6eShnLGgpKX0oZFtJXSxnLGgs''@;'; put 'put ''dikucGlwZShXMygpLHlhKFo9PntDW0ldPVp9KSkpLHo1KDEpLEc1KEMpLFo1KEk9PkkgaW5zdGFuY2VvZiBKQT9VQTpRQShJKSkpfShDLGQsZyx2KS5waXBlKG10KEk9PihkLl9yZXNvbHZlZERhdGE9SSxkLmRhdGE9RlkoZCxoKS5yZXNvbHZlLHkmJk9JKHkpJiYoZC5kYXRhW2dVXT15LnRp''@;'; put 'put ''dGxlKSxudWxsKSkpfShJLnJvdXRlLHYsZCxnKSkseWEoKCk9PkMrKyksejUoMSksc3IoST0+Qz09PXkubGVuZ3RoP2FhKGgpOlVBKSl9KX0odGhpcy5wYXJhbXNJbmhlcml0YW5jZVN0cmF0ZWd5LHRoaXMubmdNb2R1bGUuaW5qZWN0b3IpLHlhKHtuZXh0OigpPT5fZT0hMCxjb21wbGV0ZToo''@;'; put 'put ''KT0+e19lfHwodGhpcy5yZXN0b3JlSGlzdG9yeSh1ZSksdGhpcy5jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbih1ZSwiIiwyKSl9fSkpfSkseWEodWU9Pntjb25zdCBfZT1uZXcgVDBlKHVlLmlkLHRoaXMuc2VyaWFsaXplVXJsKHVlLmV4dHJhY3RlZFVybCksdGhpcy5zZXJpYWxpemVVcmwo''@;'; put 'put ''dWUudXJsQWZ0ZXJSZWRpcmVjdHMpLHVlLnRhcmdldFNuYXBzaG90KTt0aGlzLnRyaWdnZXJFdmVudChfZSl9KSl9KSxDSChaPT57Y29uc3QgdWU9X2U9Pnt2YXIgQmU7Y29uc3QgTmU9W107KG51bGw9PT0oQmU9X2Uucm91dGVDb25maWcpfHx2b2lkIDA9PT1CZT92b2lkIDA6QmUubG9hZENv''@;'; put 'put ''bXBvbmVudCkmJiFfZS5yb3V0ZUNvbmZpZy5fbG9hZGVkQ29tcG9uZW50JiZOZS5wdXNoKHRoaXMuY29uZmlnTG9hZGVyLmxvYWRDb21wb25lbnQoX2Uucm91dGVDb25maWcpLnBpcGUoeWEoS2U9PntfZS5jb21wb25lbnQ9S2V9KSxtdCgoKT0+e30pKSk7Zm9yKGNvbnN0IEtlIG9mIF9lLmNo''@;'; put 'put ''aWxkcmVuKU5lLnB1c2goLi4udWUoS2UpKTtyZXR1cm4gTmV9O3JldHVybiBvSSh1ZShaLnRhcmdldFNuYXBzaG90LnJvb3QpKS5waXBlKGg3KCksSDUoMSkpfSksQ0goKCk9PnRoaXMuYWZ0ZXJQcmVhY3RpdmF0aW9uKCkpLG10KFo9Pntjb25zdCB1ZT1mdW5jdGlvbiBqWShkLGcsaCl7Y29u''@;'; put 'put ''c3Qgdj1veShkLGcuX3Jvb3QsaD9oLl9yb290OnZvaWQgMCk7cmV0dXJuIG5ldyBCWSh2LGcpfSh0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSxaLnRhcmdldFNuYXBzaG90LFouY3VycmVudFJvdXRlclN0YXRlKTtyZXR1cm4geT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sWikse3Rh''@;'; put 'put ''cmdldFJvdXRlclN0YXRlOnVlfSl9KSx5YShaPT57dGhpcy5jdXJyZW50VXJsVHJlZT1aLnVybEFmdGVyUmVkaXJlY3RzLHRoaXMucmF3VXJsVHJlZT10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2UoWi51cmxBZnRlclJlZGlyZWN0cyxaLnJhd1VybCksdGhpcy5yb3V0ZXJTdGF0ZT1a''@;'; put 'put ''LnRhcmdldFJvdXRlclN0YXRlLCJkZWZlcnJlZCI9PT10aGlzLnVybFVwZGF0ZVN0cmF0ZWd5JiYoWi5leHRyYXMuc2tpcExvY2F0aW9uQ2hhbmdlfHx0aGlzLnNldEJyb3dzZXJVcmwodGhpcy5yYXdVcmxUcmVlLFopLHRoaXMuYnJvd3NlclVybFRyZWU9Wi51cmxBZnRlclJlZGlyZWN0cyl9''@;'; put 'put ''KSwoKGQsZyxoKT0+bXQodj0+KG5ldyBRWShnLHYudGFyZ2V0Um91dGVyU3RhdGUsdi5jdXJyZW50Um91dGVyU3RhdGUsaCkuYWN0aXZhdGUoZCksdikpKSh0aGlzLnJvb3RDb250ZXh0cyx0aGlzLnJvdXRlUmV1c2VTdHJhdGVneSxaPT50aGlzLnRyaWdnZXJFdmVudChaKSkseWEoe25leHQo''@;'; put 'put ''KXtDPSEwfSxjb21wbGV0ZSgpe0M9ITB9fSksc0koKCk9Pnt2YXIgWjtDfHxJfHx0aGlzLmNhbmNlbE5hdmlnYXRpb25UcmFuc2l0aW9uKHksIiIsMSksKG51bGw9PT0oWj10aGlzLmN1cnJlbnROYXZpZ2F0aW9uKXx8dm9pZCAwPT09Wj92b2lkIDA6Wi5pZCk9PT15LmlkJiYodGhpcy5jdXJy''@;'; put 'put ''ZW50TmF2aWdhdGlvbj1udWxsKX0pLFo1KFo9Pnt2YXIgdWU7aWYoST0hMCxzSChaKSl7R1koWil8fCh0aGlzLm5hdmlnYXRlZD0hMCx0aGlzLnJlc3RvcmVIaXN0b3J5KHksITApKTtjb25zdCBfZT1uZXcgeUkoeS5pZCx0aGlzLnNlcmlhbGl6ZVVybCh5LmV4dHJhY3RlZFVybCksWi5tZXNz''@;'; put 'put ''YWdlLFouY2FuY2VsbGF0aW9uQ29kZSk7aWYodi5uZXh0KF9lKSxHWShaKSl7Y29uc3QgQmU9dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5Lm1lcmdlKFoudXJsLHRoaXMucmF3VXJsVHJlZSksTmU9e3NraXBMb2NhdGlvbkNoYW5nZTp5LmV4dHJhcy5za2lwTG9jYXRpb25DaGFuZ2UscmVwbGFj''@;'; put 'put ''ZVVybDoiZWFnZXIiPT09dGhpcy51cmxVcGRhdGVTdHJhdGVneXx8RUgoeS5zb3VyY2UpfTt0aGlzLnNjaGVkdWxlTmF2aWdhdGlvbihCZSwiaW1wZXJhdGl2ZSIsbnVsbCxOZSx7cmVzb2x2ZTp5LnJlc29sdmUscmVqZWN0OnkucmVqZWN0LHByb21pc2U6eS5wcm9taXNlfSl9ZWxzZSB5LnJl''@;'; put 'put ''c29sdmUoITEpfWVsc2V7dGhpcy5yZXN0b3JlSGlzdG9yeSh5LCEwKTtjb25zdCBfZT1uZXcgckgoeS5pZCx0aGlzLnNlcmlhbGl6ZVVybCh5LmV4dHJhY3RlZFVybCksWixudWxsIT09KHVlPXkudGFyZ2V0U25hcHNob3QpJiZ2b2lkIDAhPT11ZT91ZTp2b2lkIDApO3YubmV4dChfZSk7dHJ5''@;'; put 'put ''e3kucmVzb2x2ZSh0aGlzLmVycm9ySGFuZGxlcihaKSl9Y2F0Y2goQmUpe3kucmVqZWN0KEJlKX19cmV0dXJuIFVBfSkpfSkpfXJlc2V0Um9vdENvbXBvbmVudFR5cGUoaCl7dGhpcy5yb290Q29tcG9uZW50VHlwZT1oLHRoaXMucm91dGVyU3RhdGUucm9vdC5jb21wb25lbnQ9dGhpcy5yb290''@;'; put 'put ''Q29tcG9uZW50VHlwZX1zZXRUcmFuc2l0aW9uKGgpe3RoaXMudHJhbnNpdGlvbnMubmV4dChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy50cmFuc2l0aW9ucy52YWx1ZSksaCkpfWluaXRpYWxOYXZpZ2F0aW9uKCl7dGhpcy5zZXRVcExvY2F0aW9uQ2hhbmdlTGlzdGVuZXIo''@;'; put 'put ''KSwwPT09dGhpcy5uYXZpZ2F0aW9uSWQmJnRoaXMubmF2aWdhdGVCeVVybCh0aGlzLmxvY2F0aW9uLnBhdGgoITApLHtyZXBsYWNlVXJsOiEwfSl9c2V0VXBMb2NhdGlvbkNoYW5nZUxpc3RlbmVyKCl7dGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbnx8KHRoaXMubG9jYXRpb25TdWJzY3JpcHRp''@;'; put 'put ''b249dGhpcy5sb2NhdGlvbi5zdWJzY3JpYmUoaD0+e2NvbnN0IHY9InBvcHN0YXRlIj09PWgudHlwZT8icG9wc3RhdGUiOiJoYXNoY2hhbmdlIjsicG9wc3RhdGUiPT09diYmc2V0VGltZW91dCgoKT0+e3ZhciB5O2NvbnN0IEM9e3JlcGxhY2VVcmw6ITB9LEk9bnVsbCE9PSh5PWguc3RhdGUp''@;'; put 'put ''JiZ2b2lkIDAhPT15JiZ5Lm5hdmlnYXRpb25JZD9oLnN0YXRlOm51bGw7aWYoSSl7Y29uc3QgdWU9T2JqZWN0LmFzc2lnbih7fSxJKTtkZWxldGUgdWUubmF2aWdhdGlvbklkLGRlbGV0ZSB1ZS5cdTAyNzVyb3V0ZXJQYWdlSWQsMCE9PU9iamVjdC5rZXlzKHVlKS5sZW5ndGgmJihDLnN0YXRl''@;'; put 'put ''PXVlKX1jb25zdCBaPXRoaXMucGFyc2VVcmwoaC51cmwpO3RoaXMuc2NoZWR1bGVOYXZpZ2F0aW9uKFosdixJLEMpfSwwKX0pKX1nZXQgdXJsKCl7cmV0dXJuIHRoaXMuc2VyaWFsaXplVXJsKHRoaXMuY3VycmVudFVybFRyZWUpfWdldEN1cnJlbnROYXZpZ2F0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''Y3VycmVudE5hdmlnYXRpb259dHJpZ2dlckV2ZW50KGgpe3RoaXMuZXZlbnRzLm5leHQoaCl9cmVzZXRDb25maWcoaCl7dGhpcy5jb25maWc9aC5tYXAoZkgpLHRoaXMubmF2aWdhdGVkPSExLHRoaXMubGFzdFN1Y2Nlc3NmdWxJZD0tMX1uZ09uRGVzdHJveSgpe3RoaXMuZGlzcG9zZSgpfWRp''@;'; put 'put ''c3Bvc2UoKXt0aGlzLnRyYW5zaXRpb25zLmNvbXBsZXRlKCksdGhpcy5sb2NhdGlvblN1YnNjcmlwdGlvbiYmKHRoaXMubG9jYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLmxvY2F0aW9uU3Vic2NyaXB0aW9uPXZvaWQgMCksdGhpcy5kaXNwb3NlZD0hMH1jcmVhdGVVcmxU''@;'; put 'put ''cmVlKGgsdj17fSl7Y29uc3R7cmVsYXRpdmVUbzp5LHF1ZXJ5UGFyYW1zOkMsZnJhZ21lbnQ6SSxxdWVyeVBhcmFtc0hhbmRsaW5nOloscHJlc2VydmVGcmFnbWVudDp1ZX09dixfZT15fHx0aGlzLnJvdXRlclN0YXRlLnJvb3QsQmU9dWU/dGhpcy5jdXJyZW50VXJsVHJlZS5mcmFnbWVudDpJ''@;'; put 'put ''O2xldCBOZT1udWxsO3N3aXRjaChaKXtjYXNlIm1lcmdlIjpOZT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5jdXJyZW50VXJsVHJlZS5xdWVyeVBhcmFtcyksQyk7YnJlYWs7Y2FzZSJwcmVzZXJ2ZSI6TmU9dGhpcy5jdXJyZW50VXJsVHJlZS5xdWVyeVBhcmFtczticmVh''@;'; put 'put ''aztkZWZhdWx0Ok5lPUN8fG51bGx9cmV0dXJuIG51bGwhPT1OZSYmKE5lPXRoaXMucmVtb3ZlRW1wdHlQcm9wcyhOZSkpLFMwZShfZSx0aGlzLmN1cnJlbnRVcmxUcmVlLGgsTmUsbnVsbCE9QmU/QmU6bnVsbCl9bmF2aWdhdGVCeVVybChoLHY9e3NraXBMb2NhdGlvbkNoYW5nZTohMX0pe2Nv''@;'; put 'put ''bnN0IHk9ZzcoaCk/aDp0aGlzLnBhcnNlVXJsKGgpLEM9dGhpcy51cmxIYW5kbGluZ1N0cmF0ZWd5Lm1lcmdlKHksdGhpcy5yYXdVcmxUcmVlKTtyZXR1cm4gdGhpcy5zY2hlZHVsZU5hdmlnYXRpb24oQywiaW1wZXJhdGl2ZSIsbnVsbCx2KX1uYXZpZ2F0ZShoLHY9e3NraXBMb2NhdGlvbkNo''@;'; put 'put ''YW5nZTohMX0pe3JldHVybiBmdW5jdGlvbiBnb2UoZCl7Zm9yKGxldCBnPTA7ZzxkLmxlbmd0aDtnKyspe2lmKG51bGw9PWRbZ10pdGhyb3cgbmV3IGVuKDQwMDgsZmFsc2UpfX0oaCksdGhpcy5uYXZpZ2F0ZUJ5VXJsKHRoaXMuY3JlYXRlVXJsVHJlZShoLHYpLHYpfXNlcmlhbGl6ZVVybCho''@;'; put 'put ''KXtyZXR1cm4gdGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShoKX1wYXJzZVVybChoKXtsZXQgdjt0cnl7dj10aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UoaCl9Y2F0Y2goeSl7dj10aGlzLm1hbGZvcm1lZFVyaUVycm9ySGFuZGxlcih5LHRoaXMudXJsU2VyaWFsaXplcixoKX1yZXR1cm4g''@;'; put 'put ''dn1pc0FjdGl2ZShoLHYpe2xldCB5O2lmKHk9ITA9PT12P09iamVjdC5hc3NpZ24oe30sZG9lKTohMT09PXY/T2JqZWN0LmFzc2lnbih7fSxCSSk6dixnNyhoKSlyZXR1cm4gQ1kodGhpcy5jdXJyZW50VXJsVHJlZSxoLHkpO2NvbnN0IEM9dGhpcy5wYXJzZVVybChoKTtyZXR1cm4gQ1kodGhp''@;'; put 'put ''cy5jdXJyZW50VXJsVHJlZSxDLHkpfXJlbW92ZUVtcHR5UHJvcHMoaCl7cmV0dXJuIE9iamVjdC5rZXlzKGgpLnJlZHVjZSgodix5KT0+e2NvbnN0IEM9aFt5XTtyZXR1cm4gbnVsbCE9QyYmKHZbeV09Qyksdn0se30pfXByb2Nlc3NOYXZpZ2F0aW9ucygpe3RoaXMubmF2aWdhdGlvbnMuc3Vi''@;'; put 'put ''c2NyaWJlKGg9Pnt2YXIgdjt0aGlzLm5hdmlnYXRlZD0hMCx0aGlzLmxhc3RTdWNjZXNzZnVsSWQ9aC5pZCx0aGlzLmN1cnJlbnRQYWdlSWQ9aC50YXJnZXRQYWdlSWQsdGhpcy5ldmVudHMubmV4dChuZXcgRzYoaC5pZCx0aGlzLnNlcmlhbGl6ZVVybChoLmV4dHJhY3RlZFVybCksdGhpcy5z''@;'; put 'put ''ZXJpYWxpemVVcmwodGhpcy5jdXJyZW50VXJsVHJlZSkpKSx0aGlzLmxhc3RTdWNjZXNzZnVsTmF2aWdhdGlvbj10aGlzLmN1cnJlbnROYXZpZ2F0aW9uLG51bGw9PT0odj10aGlzLnRpdGxlU3RyYXRlZ3kpfHx2b2lkIDA9PT12fHx2LnVwZGF0ZVRpdGxlKHRoaXMucm91dGVyU3RhdGUuc25h''@;'; put 'put ''cHNob3QpLGgucmVzb2x2ZSghMCl9LGg9Pnt0aGlzLmNvbnNvbGUud2FybihgVW5oYW5kbGVkIE5hdmlnYXRpb24gRXJyb3I6ICR7aH1gKX0pfXNjaGVkdWxlTmF2aWdhdGlvbihoLHYseSxDLEkpe3ZhciBaLHVlO2lmKHRoaXMuZGlzcG9zZWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSghMSk7''@;'; put 'put ''bGV0IF9lLEJlLE5lO0k/KF9lPUkucmVzb2x2ZSxCZT1JLnJlamVjdCxOZT1JLnByb21pc2UpOk5lPW5ldyBQcm9taXNlKChPdCwkdCk9PntfZT1PdCxCZT0kdH0pO2NvbnN0IEtlPSsrdGhpcy5uYXZpZ2F0aW9uSWQ7bGV0IHB0O3JldHVybiJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2''@;'; put 'put ''aWdhdGlvblJlc29sdXRpb24/KDA9PT10aGlzLmN1cnJlbnRQYWdlSWQmJih5PXRoaXMubG9jYXRpb24uZ2V0U3RhdGUoKSkscHQ9eSYmeS5cdTAyNzVyb3V0ZXJQYWdlSWQ/eS5cdTAyNzVyb3V0ZXJQYWdlSWQ6Qy5yZXBsYWNlVXJsfHxDLnNraXBMb2NhdGlvbkNoYW5nZT9udWxsIT09KFo9''@;'; put 'put ''dGhpcy5icm93c2VyUGFnZUlkKSYmdm9pZCAwIT09Wj9aOjA6KG51bGwhPT0odWU9dGhpcy5icm93c2VyUGFnZUlkKSYmdm9pZCAwIT09dWU/dWU6MCkrMSk6cHQ9MCx0aGlzLnNldFRyYW5zaXRpb24oe2lkOktlLHRhcmdldFBhZ2VJZDpwdCxzb3VyY2U6dixyZXN0b3JlZFN0YXRlOnksY3Vy''@;'; put 'put ''cmVudFVybFRyZWU6dGhpcy5jdXJyZW50VXJsVHJlZSxjdXJyZW50UmF3VXJsOnRoaXMucmF3VXJsVHJlZSxyYXdVcmw6aCxleHRyYXM6QyxyZXNvbHZlOl9lLHJlamVjdDpCZSxwcm9taXNlOk5lLGN1cnJlbnRTbmFwc2hvdDp0aGlzLnJvdXRlclN0YXRlLnNuYXBzaG90LGN1cnJlbnRSb3V0''@;'; put 'put ''ZXJTdGF0ZTp0aGlzLnJvdXRlclN0YXRlfSksTmUuY2F0Y2goT3Q9PlByb21pc2UucmVqZWN0KE90KSl9c2V0QnJvd3NlclVybChoLHYpe2NvbnN0IHk9dGhpcy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZShoKSxDPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx2LmV4dHJhcy5zdGF0''@;'; put 'put ''ZSksdGhpcy5nZW5lcmF0ZU5nUm91dGVyU3RhdGUodi5pZCx2LnRhcmdldFBhZ2VJZCkpO3RoaXMubG9jYXRpb24uaXNDdXJyZW50UGF0aEVxdWFsVG8oeSl8fHYuZXh0cmFzLnJlcGxhY2VVcmw/dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoeSwiIixDKTp0aGlzLmxvY2F0aW9uLmdvKHks''@;'; put 'put ''IiIsQyl9cmVzdG9yZUhpc3RvcnkoaCx2PSExKXt2YXIgeSxDO2lmKCJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24pe2NvbnN0IEk9dGhpcy5jdXJyZW50UGFnZUlkLWgudGFyZ2V0UGFnZUlkOyJwb3BzdGF0ZSIhPT1oLnNvdXJjZSYmImVhZ2VyIiE9PXRo''@;'; put 'put ''aXMudXJsVXBkYXRlU3RyYXRlZ3kmJnRoaXMuY3VycmVudFVybFRyZWUhPT0obnVsbD09PSh5PXRoaXMuY3VycmVudE5hdmlnYXRpb24pfHx2b2lkIDA9PT15P3ZvaWQgMDp5LmZpbmFsVXJsKXx8MD09PUk/dGhpcy5jdXJyZW50VXJsVHJlZT09PShudWxsPT09KEM9dGhpcy5jdXJyZW50TmF2''@;'; put 'put ''aWdhdGlvbil8fHZvaWQgMD09PUM/dm9pZCAwOkMuZmluYWxVcmwpJiYwPT09SSYmKHRoaXMucmVzZXRTdGF0ZShoKSx0aGlzLmJyb3dzZXJVcmxUcmVlPWguY3VycmVudFVybFRyZWUsdGhpcy5yZXNldFVybFRvQ3VycmVudFVybFRyZWUoKSk6dGhpcy5sb2NhdGlvbi5oaXN0b3J5R28oSSl9''@;'; put 'put ''ZWxzZSJyZXBsYWNlIj09PXRoaXMuY2FuY2VsZWROYXZpZ2F0aW9uUmVzb2x1dGlvbiYmKHYmJnRoaXMucmVzZXRTdGF0ZShoKSx0aGlzLnJlc2V0VXJsVG9DdXJyZW50VXJsVHJlZSgpKX1yZXNldFN0YXRlKGgpe3RoaXMucm91dGVyU3RhdGU9aC5jdXJyZW50Um91dGVyU3RhdGUsdGhpcy5j''@;'; put 'put ''dXJyZW50VXJsVHJlZT1oLmN1cnJlbnRVcmxUcmVlLHRoaXMucmF3VXJsVHJlZT10aGlzLnVybEhhbmRsaW5nU3RyYXRlZ3kubWVyZ2UodGhpcy5jdXJyZW50VXJsVHJlZSxoLnJhd1VybCl9cmVzZXRVcmxUb0N1cnJlbnRVcmxUcmVlKCl7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhp''@;'; put 'put ''cy51cmxTZXJpYWxpemVyLnNlcmlhbGl6ZSh0aGlzLnJhd1VybFRyZWUpLCIiLHRoaXMuZ2VuZXJhdGVOZ1JvdXRlclN0YXRlKHRoaXMubGFzdFN1Y2Nlc3NmdWxJZCx0aGlzLmN1cnJlbnRQYWdlSWQpKX1jYW5jZWxOYXZpZ2F0aW9uVHJhbnNpdGlvbihoLHYseSl7Y29uc3QgQz1uZXcgeUko''@;'; put 'put ''aC5pZCx0aGlzLnNlcmlhbGl6ZVVybChoLmV4dHJhY3RlZFVybCksdix5KTt0aGlzLnRyaWdnZXJFdmVudChDKSxoLnJlc29sdmUoITEpfWdlbmVyYXRlTmdSb3V0ZXJTdGF0ZShoLHYpe3JldHVybiJjb21wdXRlZCI9PT10aGlzLmNhbmNlbGVkTmF2aWdhdGlvblJlc29sdXRpb24/e25hdmln''@;'; put 'put ''YXRpb25JZDpoLFx1MDI3NXJvdXRlclBhZ2VJZDp2fTp7bmF2aWdhdGlvbklkOmh9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7SzkoKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4ga1UoKX0scHJvdmlkZWRJbjoicm9vdCJ9KSxk''@;'; put 'put ''fSkoKTtmdW5jdGlvbiBFSChkKXtyZXR1cm4iaW1wZXJhdGl2ZSIhPT1kfWxldCBZNj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5yb3V0ZXI9aCx0aGlzLnJvdXRlPXYsdGhpcy50YWJJbmRleEF0dHJpYnV0ZT15LHRoaXMucmVuZGVyZXI9Qyx0aGlzLmVsPUks''@;'; put 'put ''dGhpcy5jb21tYW5kcz1udWxsLHRoaXMub25DaGFuZ2VzPW5ldyAkZSx0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKCIwIil9c2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoaCl7aWYobnVsbCE9dGhpcy50YWJJbmRleEF0dHJpYnV0ZSlyZXR1cm47Y29uc3Qgdj10aGlzLnJlbmRl''@;'; put 'put ''cmVyLHk9dGhpcy5lbC5uYXRpdmVFbGVtZW50O251bGwhPT1oP3Yuc2V0QXR0cmlidXRlKHksInRhYmluZGV4IixoKTp2LnJlbW92ZUF0dHJpYnV0ZSh5LCJ0YWJpbmRleCIpfW5nT25DaGFuZ2VzKGgpe3RoaXMub25DaGFuZ2VzLm5leHQodGhpcyl9c2V0IHJvdXRlckxpbmsoaCl7bnVsbCE9''@;'; put 'put ''aD8odGhpcy5jb21tYW5kcz1BcnJheS5pc0FycmF5KGgpP2g6W2hdLHRoaXMuc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoIjAiKSk6KHRoaXMuY29tbWFuZHM9bnVsbCx0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKG51bGwpKX1vbkNsaWNrKCl7aWYobnVsbD09PXRoaXMudXJs''@;'; put 'put ''VHJlZSlyZXR1cm4hMDtjb25zdCBoPXtza2lwTG9jYXRpb25DaGFuZ2U6SDYodGhpcy5za2lwTG9jYXRpb25DaGFuZ2UpLHJlcGxhY2VVcmw6SDYodGhpcy5yZXBsYWNlVXJsKSxzdGF0ZTp0aGlzLnN0YXRlfTtyZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh0aGlzLnVybFRyZWUs''@;'; put 'put ''aCksITB9Z2V0IHVybFRyZWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29tbWFuZHM/bnVsbDp0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMuY29tbWFuZHMse3JlbGF0aXZlVG86dm9pZCAwIT09dGhpcy5yZWxhdGl2ZVRvP3RoaXMucmVsYXRpdmVUbzp0aGlzLnJvdXRlLHF1ZXJ5UGFy''@;'; put 'put ''YW1zOnRoaXMucXVlcnlQYXJhbXMsZnJhZ21lbnQ6dGhpcy5mcmFnbWVudCxxdWVyeVBhcmFtc0hhbmRsaW5nOnRoaXMucXVlcnlQYXJhbXNIYW5kbGluZyxwcmVzZXJ2ZUZyYWdtZW50Okg2KHRoaXMucHJlc2VydmVGcmFnbWVudCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; put 'put ''e3JldHVybiBuZXcoaHx8ZCkoS3QoWmwpLEt0KFB1KSxnMygidGFiaW5kZXgiKSxLdChHYSksS3QoYm8pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwicm91dGVyTGluayIsIiIsNSwiYSIsNSwiYXJlYSJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgm''@;'; put 'put ''JkduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNsaWNrKCl9KX0saW5wdXRzOntxdWVyeVBhcmFtczoicXVlcnlQYXJhbXMiLGZyYWdtZW50OiJmcmFnbWVudCIscXVlcnlQYXJhbXNIYW5kbGluZzoicXVlcnlQYXJhbXNIYW5kbGluZyIscHJlc2VydmVGcmFnbWVudDoicHJlc2Vy''@;'; put 'put ''dmVGcmFnbWVudCIsc2tpcExvY2F0aW9uQ2hhbmdlOiJza2lwTG9jYXRpb25DaGFuZ2UiLHJlcGxhY2VVcmw6InJlcGxhY2VVcmwiLHN0YXRlOiJzdGF0ZSIscmVsYXRpdmVUbzoicmVsYXRpdmVUbyIscm91dGVyTGluazoicm91dGVyTGluayJ9LGZlYXR1cmVzOltEMl19KSxkfSkoKSx2Nz0o''@;'; put 'put ''KCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnJvdXRlcj1oLHRoaXMucm91dGU9dix0aGlzLmxvY2F0aW9uU3RyYXRlZ3k9eSx0aGlzLmNvbW1hbmRzPW51bGwsdGhpcy5ocmVmPW51bGwsdGhpcy5vbkNoYW5nZXM9bmV3ICRlLHRoaXMuc3Vic2NyaXB0aW9uPWguZXZlbnRz''@;'; put 'put ''LnN1YnNjcmliZShDPT57QyBpbnN0YW5jZW9mIEc2JiZ0aGlzLnVwZGF0ZVRhcmdldFVybEFuZEhyZWYoKX0pfXNldCByb3V0ZXJMaW5rKGgpe3RoaXMuY29tbWFuZHM9bnVsbCE9aD9BcnJheS5pc0FycmF5KGgpP2g6W2hdOm51bGx9bmdPbkNoYW5nZXMoaCl7dGhpcy51cGRhdGVUYXJnZXRV''@;'; put 'put ''cmxBbmRIcmVmKCksdGhpcy5vbkNoYW5nZXMubmV4dCh0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9b25DbGljayhoLHYseSxDLEkpe2lmKDAhPT1ofHx2fHx5fHxDfHxJfHwic3RyaW5nIj09dHlwZW9mIHRoaXMudGFyZ2V0JiYiX3NlbGYiIT10''@;'; put 'put ''aGlzLnRhcmdldHx8bnVsbD09PXRoaXMudXJsVHJlZSlyZXR1cm4hMDtjb25zdCBaPXtza2lwTG9jYXRpb25DaGFuZ2U6SDYodGhpcy5za2lwTG9jYXRpb25DaGFuZ2UpLHJlcGxhY2VVcmw6SDYodGhpcy5yZXBsYWNlVXJsKSxzdGF0ZTp0aGlzLnN0YXRlfTtyZXR1cm4gdGhpcy5yb3V0ZXIu''@;'; put 'put ''bmF2aWdhdGVCeVVybCh0aGlzLnVybFRyZWUsWiksITF9dXBkYXRlVGFyZ2V0VXJsQW5kSHJlZigpe3RoaXMuaHJlZj1udWxsIT09dGhpcy51cmxUcmVlP3RoaXMubG9jYXRpb25TdHJhdGVneS5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHRoaXMudXJsVHJl''@;'; put 'put ''ZSkpOm51bGx9Z2V0IHVybFRyZWUoKXtyZXR1cm4gbnVsbD09PXRoaXMuY29tbWFuZHM/bnVsbDp0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKHRoaXMuY29tbWFuZHMse3JlbGF0aXZlVG86dm9pZCAwIT09dGhpcy5yZWxhdGl2ZVRvP3RoaXMucmVsYXRpdmVUbzp0aGlzLnJvdXRlLHF1ZXJ5''@;'; put 'put ''UGFyYW1zOnRoaXMucXVlcnlQYXJhbXMsZnJhZ21lbnQ6dGhpcy5mcmFnbWVudCxxdWVyeVBhcmFtc0hhbmRsaW5nOnRoaXMucXVlcnlQYXJhbXNIYW5kbGluZyxwcmVzZXJ2ZUZyYWdtZW50Okg2KHRoaXMucHJlc2VydmVGcmFnbWVudCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWmwpLEt0KFB1KSxLdChONikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhIiwicm91dGVyTGluayIsIiJdLFsiYXJlYSIsInJvdXRlckxpbmsiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsx''@;'; put 'put ''JmgmJkduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25DbGljayhDLmJ1dHRvbixDLmN0cmxLZXksQy5zaGlmdEtleSxDLmFsdEtleSxDLm1ldGFLZXkpfSksMiZoJiZHaSgidGFyZ2V0Iix2LnRhcmdldCkoImhyZWYiLHYuaHJlZixUOSl9LGlucHV0czp7dGFyZ2V0OiJ0YXJnZXQi''@;'; put 'put ''LHF1ZXJ5UGFyYW1zOiJxdWVyeVBhcmFtcyIsZnJhZ21lbnQ6ImZyYWdtZW50IixxdWVyeVBhcmFtc0hhbmRsaW5nOiJxdWVyeVBhcmFtc0hhbmRsaW5nIixwcmVzZXJ2ZUZyYWdtZW50OiJwcmVzZXJ2ZUZyYWdtZW50Iixza2lwTG9jYXRpb25DaGFuZ2U6InNraXBMb2NhdGlvbkNoYW5nZSIs''@;'; put 'put ''cmVwbGFjZVVybDoicmVwbGFjZVVybCIsc3RhdGU6InN0YXRlIixyZWxhdGl2ZVRvOiJyZWxhdGl2ZVRvIixyb3V0ZXJMaW5rOiJyb3V0ZXJMaW5rIn0sZmVhdHVyZXM6W0QyXX0pLGR9KSgpLGxrPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMucm91dGVyPWgs''@;'; put 'put ''dGhpcy5lbGVtZW50PXYsdGhpcy5yZW5kZXJlcj15LHRoaXMuY2RyPUMsdGhpcy5saW5rPUksdGhpcy5saW5rV2l0aEhyZWY9Wix0aGlzLmNsYXNzZXM9W10sdGhpcy5pc0FjdGl2ZT0hMSx0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zPXtleGFjdDohMX0sdGhpcy5pc0FjdGl2ZUNoYW5n''@;'; put 'put ''ZT1uZXcgYXIsdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249aC5ldmVudHMuc3Vic2NyaWJlKHVlPT57dWUgaW5zdGFuY2VvZiBHNiYmdGhpcy51cGRhdGUoKX0pfW5nQWZ0ZXJDb250ZW50SW5pdCgpe2FhKHRoaXMubGlua3MuY2hhbmdlcyx0aGlzLmxpbmtzV2l0aEhyZWZzLmNoYW5n''@;'; put 'put ''ZXMsYWEobnVsbCkpLnBpcGUocXQoKSkuc3Vic2NyaWJlKGg9Pnt0aGlzLnVwZGF0ZSgpLHRoaXMuc3Vic2NyaWJlVG9FYWNoTGlua09uQ2hhbmdlcygpfSl9c3Vic2NyaWJlVG9FYWNoTGlua09uQ2hhbmdlcygpe3ZhciBoO251bGw9PT0oaD10aGlzLmxpbmtJbnB1dENoYW5nZXNTdWJzY3Jp''@;'; put 'put ''cHRpb24pfHx2b2lkIDA9PT1ofHxoLnVuc3Vic2NyaWJlKCk7Y29uc3Qgdj1bLi4udGhpcy5saW5rcy50b0FycmF5KCksLi4udGhpcy5saW5rc1dpdGhIcmVmcy50b0FycmF5KCksdGhpcy5saW5rLHRoaXMubGlua1dpdGhIcmVmXS5maWx0ZXIoeT0+ISF5KS5tYXAoeT0+eS5vbkNoYW5nZXMp''@;'; put 'put ''O3RoaXMubGlua0lucHV0Q2hhbmdlc1N1YnNjcmlwdGlvbj1kbih2KS5waXBlKHF0KCkpLnN1YnNjcmliZSh5PT57dGhpcy5pc0FjdGl2ZSE9PXRoaXMuaXNMaW5rQWN0aXZlKHRoaXMucm91dGVyKSh5KSYmdGhpcy51cGRhdGUoKX0pfXNldCByb3V0ZXJMaW5rQWN0aXZlKGgpe2NvbnN0IHY9''@;'; put 'put ''QXJyYXkuaXNBcnJheShoKT9oOmguc3BsaXQoIiAiKTt0aGlzLmNsYXNzZXM9di5maWx0ZXIoeT0+ISF5KX1uZ09uQ2hhbmdlcyhoKXt0aGlzLnVwZGF0ZSgpfW5nT25EZXN0cm95KCl7dmFyIGg7dGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxudWxsPT09KGg9''@;'; put 'put ''dGhpcy5saW5rSW5wdXRDaGFuZ2VzU3Vic2NyaXB0aW9uKXx8dm9pZCAwPT09aHx8aC51bnN1YnNjcmliZSgpfXVwZGF0ZSgpeyF0aGlzLmxpbmtzfHwhdGhpcy5saW5rc1dpdGhIcmVmc3x8IXRoaXMucm91dGVyLm5hdmlnYXRlZHx8UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+e2NvbnN0''@;'; put 'put ''IGg9dGhpcy5oYXNBY3RpdmVMaW5rcygpO3RoaXMuaXNBY3RpdmUhPT1oJiYodGhpcy5pc0FjdGl2ZT1oLHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpLHRoaXMuY2xhc3Nlcy5mb3JFYWNoKHY9PntoP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsdik6''@;'; put 'put ''dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCx2KX0pLGgmJnZvaWQgMCE9PXRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlP3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQi''@;'; put 'put ''LHRoaXMuYXJpYUN1cnJlbnRXaGVuQWN0aXZlLnRvU3RyaW5nKCkpOnRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCJhcmlhLWN1cnJlbnQiKSx0aGlzLmlzQWN0aXZlQ2hhbmdlLmVtaXQoaCkpfSl9aXNMaW5rQWN0aXZlKGgpe2NvbnN0''@;'; put 'put ''IHY9ZnVuY3Rpb24gU1UoZCl7cmV0dXJuISFkLnBhdGhzfSh0aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zKT90aGlzLnJvdXRlckxpbmtBY3RpdmVPcHRpb25zOnRoaXMucm91dGVyTGlua0FjdGl2ZU9wdGlvbnMuZXhhY3R8fCExO3JldHVybiB5PT4hIXkudXJsVHJlZSYmaC5pc0FjdGl2''@;'; put 'put ''ZSh5LnVybFRyZWUsdil9aGFzQWN0aXZlTGlua3MoKXtjb25zdCBoPXRoaXMuaXNMaW5rQWN0aXZlKHRoaXMucm91dGVyKTtyZXR1cm4gdGhpcy5saW5rJiZoKHRoaXMubGluayl8fHRoaXMubGlua1dpdGhIcmVmJiZoKHRoaXMubGlua1dpdGhIcmVmKXx8dGhpcy5saW5rcy5zb21lKGgpfHx0''@;'; put 'put ''aGlzLmxpbmtzV2l0aEhyZWZzLnNvbWUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFpsKSxLdChibyksS3QoR2EpLEt0KGQxKSxLdChZNiw4KSxLdCh2Nyw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsInJv''@;'; put 'put ''dXRlckxpbmtBY3RpdmUiLCIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhvKHksWTYsNSkseG8oeSx2Nyw1KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5saW5rcz1DKSxIaShDPSRpKCkpJiYodi5saW5rc1dpdGhIcmVmcz1DKX19LGlucHV0czp7cm91''@;'; put 'put ''dGVyTGlua0FjdGl2ZU9wdGlvbnM6InJvdXRlckxpbmtBY3RpdmVPcHRpb25zIixhcmlhQ3VycmVudFdoZW5BY3RpdmU6ImFyaWFDdXJyZW50V2hlbkFjdGl2ZSIscm91dGVyTGlua0FjdGl2ZToicm91dGVyTGlua0FjdGl2ZSJ9LG91dHB1dHM6e2lzQWN0aXZlQ2hhbmdlOiJpc0FjdGl2ZUNo''@;'; put 'put ''YW5nZSJ9LGV4cG9ydEFzOlsicm91dGVyTGlua0FjdGl2ZSJdLGZlYXR1cmVzOltEMl19KSxkfSkoKTtjbGFzcyBNVXt9bGV0IHhIPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnJvdXRlcj1oLHRoaXMuaW5qZWN0b3I9eSx0aGlzLnByZWxvYWRpbmdTdHJhdGVn''@;'; put 'put ''eT1DLHRoaXMubG9hZGVyPUl9c2V0VXBQcmVsb2FkaW5nKCl7dGhpcy5zdWJzY3JpcHRpb249dGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoTzIoaD0+aCBpbnN0YW5jZW9mIEc2KSxWNSgoKT0+dGhpcy5wcmVsb2FkKCkpKS5zdWJzY3JpYmUoKCk9Pnt9KX1wcmVsb2FkKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''cHJvY2Vzc1JvdXRlcyh0aGlzLmluamVjdG9yLHRoaXMucm91dGVyLmNvbmZpZyl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbiYmdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1wcm9jZXNzUm91dGVzKGgsdil7dmFyIHksQyxJO2NvbnN0IFo9W107Zm9yKGNvbnN0IHVl''@;'; put 'put ''IG9mIHYpe3VlLnByb3ZpZGVycyYmIXVlLl9pbmplY3RvciYmKHVlLl9pbmplY3Rvcj10Nyh1ZS5wcm92aWRlcnMsaCxgUm91dGU6ICR7dWUucGF0aH1gKSk7Y29uc3QgX2U9bnVsbCE9PSh5PXVlLl9pbmplY3RvcikmJnZvaWQgMCE9PXk/eTpoLEJlPW51bGwhPT0oQz11ZS5fbG9hZGVkSW5q''@;'; put 'put ''ZWN0b3IpJiZ2b2lkIDAhPT1DP0M6X2U7dWUubG9hZENoaWxkcmVuJiYhdWUuX2xvYWRlZFJvdXRlcyYmdm9pZCAwPT09dWUuY2FuTG9hZHx8dWUubG9hZENvbXBvbmVudCYmIXVlLl9sb2FkZWRDb21wb25lbnQ/Wi5wdXNoKHRoaXMucHJlbG9hZENvbmZpZyhfZSx1ZSkpOih1ZS5jaGlsZHJl''@;'; put 'put ''bnx8dWUuX2xvYWRlZFJvdXRlcykmJloucHVzaCh0aGlzLnByb2Nlc3NSb3V0ZXMoQmUsbnVsbCE9PShJPXVlLmNoaWxkcmVuKSYmdm9pZCAwIT09ST9JOnVlLl9sb2FkZWRSb3V0ZXMpKX1yZXR1cm4gZG4oWikucGlwZShxdCgpKX1wcmVsb2FkQ29uZmlnKGgsdil7cmV0dXJuIHRoaXMucHJl''@;'; put 'put ''bG9hZGluZ1N0cmF0ZWd5LnByZWxvYWQodiwoKT0+e2xldCB5O3k9di5sb2FkQ2hpbGRyZW4mJnZvaWQgMD09PXYuY2FuTG9hZD90aGlzLmxvYWRlci5sb2FkQ2hpbGRyZW4oaCx2KTphYShudWxsKTtjb25zdCBDPXkucGlwZShzcihJPT57dmFyIFo7cmV0dXJuIG51bGw9PT1JP2FhKHZvaWQg''@;'; put 'put ''MCk6KHYuX2xvYWRlZFJvdXRlcz1JLnJvdXRlcyx2Ll9sb2FkZWRJbmplY3Rvcj1JLmluamVjdG9yLHRoaXMucHJvY2Vzc1JvdXRlcyhudWxsIT09KFo9SS5pbmplY3RvcikmJnZvaWQgMCE9PVo/WjpoLEkucm91dGVzKSl9KSk7cmV0dXJuIHYubG9hZENvbXBvbmVudCYmIXYuX2xvYWRlZENv''@;'; put 'put ''bXBvbmVudD9kbihbQyx0aGlzLmxvYWRlci5sb2FkQ29tcG9uZW50KHYpXSkucGlwZShxdCgpKTpDfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKFpsKSxDaShDVCksQ2koRTMpLENpKE1VKSxDaShNSCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rv''@;'; put 'put ''a2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IEVVPW5ldyB6ZSgiIik7bGV0IG1vZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5PXt9KXt0aGlzLnJvdXRlcj1oLHRoaXMudmlld3BvcnRTY3JvbGxlcj12LHRoaXMub3B0aW9ucz15LHRoaXMubGFzdElkPTAs''@;'; put 'put ''dGhpcy5sYXN0U291cmNlPSJpbXBlcmF0aXZlIix0aGlzLnJlc3RvcmVkSWQ9MCx0aGlzLnN0b3JlPXt9LHkuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbj15LnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb258fCJkaXNhYmxlZCIseS5hbmNob3JTY3JvbGxpbmc9eS5hbmNob3JTY3JvbGxpbmd8''@;'; put 'put ''fCJkaXNhYmxlZCJ9aW5pdCgpeyJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNldEhpc3RvcnlTY3JvbGxSZXN0b3JhdGlvbigibWFudWFsIiksdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb249dGhp''@;'; put 'put ''cy5jcmVhdGVTY3JvbGxFdmVudHMoKSx0aGlzLnNjcm9sbEV2ZW50c1N1YnNjcmlwdGlvbj10aGlzLmNvbnN1bWVTY3JvbGxFdmVudHMoKX1jcmVhdGVTY3JvbGxFdmVudHMoKXtyZXR1cm4gdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShoPT57aCBpbnN0YW5jZW9mIEFJPyh0aGlzLnN0''@;'; put 'put ''b3JlW3RoaXMubGFzdElkXT10aGlzLnZpZXdwb3J0U2Nyb2xsZXIuZ2V0U2Nyb2xsUG9zaXRpb24oKSx0aGlzLmxhc3RTb3VyY2U9aC5uYXZpZ2F0aW9uVHJpZ2dlcix0aGlzLnJlc3RvcmVkSWQ9aC5yZXN0b3JlZFN0YXRlP2gucmVzdG9yZWRTdGF0ZS5uYXZpZ2F0aW9uSWQ6MCk6aCBpbnN0''@;'; put 'put ''YW5jZW9mIEc2JiYodGhpcy5sYXN0SWQ9aC5pZCx0aGlzLnNjaGVkdWxlU2Nyb2xsRXZlbnQoaCx0aGlzLnJvdXRlci5wYXJzZVVybChoLnVybEFmdGVyUmVkaXJlY3RzKS5mcmFnbWVudCkpfSl9Y29uc3VtZVNjcm9sbEV2ZW50cygpe3JldHVybiB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2Ny''@;'; put 'put ''aWJlKGg9PntoIGluc3RhbmNlb2Ygd0kmJihoLnBvc2l0aW9uPyJ0b3AiPT09dGhpcy5vcHRpb25zLnNjcm9sbFBvc2l0aW9uUmVzdG9yYXRpb24/dGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oWzAsMF0pOiJlbmFibGVkIj09PXRoaXMub3B0aW9ucy5zY3JvbGxQb3Np''@;'; put 'put ''dGlvblJlc3RvcmF0aW9uJiZ0aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9Qb3NpdGlvbihoLnBvc2l0aW9uKTpoLmFuY2hvciYmImVuYWJsZWQiPT09dGhpcy5vcHRpb25zLmFuY2hvclNjcm9sbGluZz90aGlzLnZpZXdwb3J0U2Nyb2xsZXIuc2Nyb2xsVG9BbmNob3IoaC5hbmNob3Ip''@;'; put 'put ''OiJkaXNhYmxlZCIhPT10aGlzLm9wdGlvbnMuc2Nyb2xsUG9zaXRpb25SZXN0b3JhdGlvbiYmdGhpcy52aWV3cG9ydFNjcm9sbGVyLnNjcm9sbFRvUG9zaXRpb24oWzAsMF0pKX0pfXNjaGVkdWxlU2Nyb2xsRXZlbnQoaCx2KXt0aGlzLnJvdXRlci50cmlnZ2VyRXZlbnQobmV3IHdJKGgsInBv''@;'; put 'put ''cHN0YXRlIj09PXRoaXMubGFzdFNvdXJjZT90aGlzLnN0b3JlW3RoaXMucmVzdG9yZWRJZF06bnVsbCx2KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJvdXRlckV2ZW50c1N1YnNjcmlwdGlvbiYmdGhpcy5yb3V0ZXJFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLnNjcm9sbEV2''@;'; put 'put ''ZW50c1N1YnNjcmlwdGlvbiYmdGhpcy5zY3JvbGxFdmVudHNTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe0s5KCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgeFU9bmV3''@;'; put 'put ''IHplKCJST1VURVJfRk9SUk9PVF9HVUFSRCIpLFRVPW5ldyB6ZSgiIiksSVU9W1Y2LHtwcm92aWRlOlU1LHVzZUNsYXNzOkpGfSx7cHJvdmlkZTpabCx1c2VGYWN0b3J5OmtVfSxlayx7cHJvdmlkZTpQdSx1c2VGYWN0b3J5OmZ1bmN0aW9uIHB5KGQpe3JldHVybiBkLnJvdXRlclN0YXRlLnJv''@;'; put 'put ''b3R9LGRlcHM6W1psXX0sTUhdO2Z1bmN0aW9uIFBJKCl7cmV0dXJuIG5ldyBORygiUm91dGVyIixabCl9bGV0IFhoPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7fXN0YXRpYyBmb3JSb290KGgsdil7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOltJVSxbXSxMVShoKSx7cHJvdmlk''@;'; put 'put ''ZTp4VSx1c2VGYWN0b3J5OkFvZSxkZXBzOltbWmwsbmV3IG1mLG5ldyBMNF1dfSx7cHJvdmlkZTprSCx1c2VWYWx1ZTp2fHx7fX0sbnVsbCE9diYmdi51c2VIYXNoP3twcm92aWRlOk42LHVzZUNsYXNzOkJyZX06e3Byb3ZpZGU6TjYsdXNlQ2xhc3M6dVd9LHtwcm92aWRlOkVVLHVzZUZhY3Rv''@;'; put 'put ''cnk6KCk9Pntjb25zdCBkPWgyKFpsKSxnPWgyKGNpZSksaD1oMihrSCk7cmV0dXJuIGguc2Nyb2xsT2Zmc2V0JiZnLnNldE9mZnNldChoLnNjcm9sbE9mZnNldCksbmV3IG1vZShkLGcsaCl9fSxudWxsIT12JiZ2LnByZWxvYWRpbmdTdHJhdGVneT9OVSh2LnByZWxvYWRpbmdTdHJhdGVneSk6''@;'; put 'put ''W10se3Byb3ZpZGU6TkcsbXVsdGk6ITAsdXNlRmFjdG9yeTpQSX0sbnVsbCE9diYmdi5pbml0aWFsTmF2aWdhdGlvbj9SVSh2KTpbXSxbe3Byb3ZpZGU6T1UsdXNlRmFjdG9yeTpOSX0se3Byb3ZpZGU6RjYsbXVsdGk6ITAsdXNlRXhpc3Rpbmc6T1V9XV19fXN0YXRpYyBmb3JDaGlsZChoKXty''@;'; put 'put ''ZXR1cm57bmdNb2R1bGU6ZCxwcm92aWRlcnM6W0xVKGgpXX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHhVLDgpKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkfSkoKTtmdW5jdGlvbiBBb2UoZCl7cmV0''@;'; put 'put ''dXJuImd1YXJkZWQifWZ1bmN0aW9uIExVKGQpe3JldHVyblt7cHJvdmlkZTpSSSxtdWx0aTohMCx1c2VWYWx1ZTpkfV19ZnVuY3Rpb24gTkkoKXtjb25zdCBkPWgyKFNzKTtyZXR1cm4gZz0+e3ZhciBoLHY7Y29uc3QgeT1kLmdldChrQyk7aWYoZyE9PXkuY29tcG9uZW50c1swXSlyZXR1cm47''@;'; put 'put ''Y29uc3QgQz1kLmdldChabCksST1kLmdldChCVSk7MT09PWQuZ2V0KFRIKSYmQy5pbml0aWFsTmF2aWdhdGlvbigpLG51bGw9PT0oaD1kLmdldChUVSxudWxsLGowLk9wdGlvbmFsKSl8fHZvaWQgMD09PWh8fGguc2V0VXBQcmVsb2FkaW5nKCksbnVsbD09PSh2PWQuZ2V0KEVVLG51bGwsajAu''@;'; put 'put ''T3B0aW9uYWwpKXx8dm9pZCAwPT09dnx8di5pbml0KCksQy5yZXNldFJvb3RDb21wb25lbnRUeXBlKHkuY29tcG9uZW50VHlwZXNbMF0pLEkubmV4dCgpLEkuY29tcGxldGUoKX19Y29uc3QgT1U9bmV3IHplKCIiKTtmdW5jdGlvbiBSVShkKXtyZXR1cm5bImRpc2FibGVkIj09PWQuaW5pdGlh''@;'; put 'put ''bE5hdmlnYXRpb24/W3twcm92aWRlOnlDLG11bHRpOiEwLHVzZUZhY3Rvcnk6KCk9Pntjb25zdCBkPWgyKFpsKTtyZXR1cm4oKT0+e2Quc2V0VXBMb2NhdGlvbkNoYW5nZUxpc3RlbmVyKCl9fX0se3Byb3ZpZGU6VEgsdXNlVmFsdWU6Mn1dOltdLCJlbmFibGVkQmxvY2tpbmciPT09ZC5pbml0''@;'; put 'put ''aWFsTmF2aWdhdGlvbj9be3Byb3ZpZGU6VEgsdXNlVmFsdWU6MH0se3Byb3ZpZGU6eUMsbXVsdGk6ITAsZGVwczpbU3NdLHVzZUZhY3Rvcnk6ZD0+e2NvbnN0IGc9ZC5nZXQoUnJlLFByb21pc2UucmVzb2x2ZShudWxsKSk7bGV0IGg9ITE7cmV0dXJuKCk9PmcudGhlbigoKT0+bmV3IFByb21p''@;'; put 'put ''c2UoeT0+e2NvbnN0IEM9ZC5nZXQoWmwpLEk9ZC5nZXQoQlUpOyhmdW5jdGlvbiB2KHkpe2QuZ2V0KFpsKS5ldmVudHMucGlwZShPMihJPT5JIGluc3RhbmNlb2YgRzZ8fEkgaW5zdGFuY2VvZiB5SXx8SSBpbnN0YW5jZW9mIHJIKSxtdChJPT5JIGluc3RhbmNlb2YgRzZ8fEkgaW5zdGFuY2Vv''@;'; put 'put ''ZiB5SSYmKDA9PT1JLmNvZGV8fDE9PT1JLmNvZGUpJiZudWxsKSxPMihJPT5udWxsIT09SSksSDUoMSkpLnN1YnNjcmliZSgoKT0+e3koKX0pfSkoKCk9Pnt5KCEwKSxoPSEwfSksQy5hZnRlclByZWFjdGl2YXRpb249KCk9Pih5KCEwKSxofHxJLmNsb3NlZD9hYSh2b2lkIDApOkkpLEMuaW5p''@;'; put 'put ''dGlhbE5hdmlnYXRpb24oKX0pKX19XTpbXV19Y29uc3QgQlU9bmV3IHplKCIiLHtmYWN0b3J5OigpPT5uZXcgJGV9KSxUSD1uZXcgemUoIiIse3Byb3ZpZGVkSW46InJvb3QiLGZhY3Rvcnk6KCk9PjF9KTtmdW5jdGlvbiBOVShkKXtyZXR1cm5beEgse3Byb3ZpZGU6VFUsdXNlRXhpc3Rpbmc6''@;'; put 'put ''eEh9LHtwcm92aWRlOk1VLHVzZUV4aXN0aW5nOmR9XX12YXIgVlU9TCg0MDM5MCksd29lPUwoMjQ4NzkpO2NvbnN0IGpVPXtleHBpcmF0aW9uX2RhdGVfdW5saW1pdGVkOiEwLHVzZXJzX2FsbG93ZWQ6NSxyb3dzX2FsbG93ZWQ6MTUsZGlzYWJsZWRGaWxlVXBsb2FkOiEwLGRpc2FibGVkRWRp''@;'; put 'put ''dFJlY29yZDohMH0sYm9lPXt1c2Vyc19hbGxvd2VkOjF9O2xldCBzaz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7fXNldERjQWRhcHRlclNldHRpbmdzKGgpe3RoaXMuZGNBZGFwdGVyU2V0dGluZ3M9aH1nZXREY0FkYXB0ZXJTZXR0aW5ncygpe3JldHVybiB0aGlzLmRjQWRhcHRlclNl''@;'; put 'put ''dHRpbmdzfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTtjbGFzcyBaVXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2FzU2Vydmlj''@;'; put 'put ''ZT1udWxsLHRoaXMubWVzc2FnZT0iIix0aGlzLmRldGFpbHM9bmV3IERIfX1jbGFzcyBESHt9bGV0IExIPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmFsZXJ0cz1uZXcgJGV9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3''@;'; put 'put ''NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLG11PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5hbGVydHNTZXJ2aWNlPWgsdGhpcy5vblNpZGViYXJUb2dnbGU9bmV3IGFyLHRoaXMub25TdGFydHVwRGF0YUxvYWRlZD1uZXcgYXIsdGhpcy5v''@;'; put 'put ''blNob3dBYm9ydE1vZGFsPW5ldyBhcix0aGlzLm9uUmVxdWVzdHNNb2RhbE9wZW49bmV3IGFyLHRoaXMub25EZW1vTGltaXRNb2RhbFNob3c9bmV3IGFyLHRoaXMudmlld0xhc3RVcmw9bnVsbCx0aGlzLnNpZGViYXJDbG9zZUxpbWl0PTEyODB9c2hvd0RlbW9MaW1pdE1vZGFsKCl7dGhpcy5v''@;'; put 'put ''bkRlbW9MaW1pdE1vZGFsU2hvdy5lbWl0KCl9c2hvd0luZm9Nb2RhbChoPSJJbmZvIix2KXt0aGlzLm9uU2hvd0Fib3J0TW9kYWwuZW1pdCh7bW9kYWxUaXRsZTpoLG1lc3NhZ2U6dixzYXNTZXJ2aWNlOiIiLGRldGFpbHM6bnVsbH0pfXNob3dBYm9ydE1vZGFsKGgsdix5LEMpe2xldCBJPXtz''@;'; put 'put ''YXNTZXJ2aWNlOmgsbWVzc2FnZTp2LGRldGFpbHM6eT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sbmV3IERIKSx5KX07QyYmKEkubW9kYWxUaXRsZT1DKSx0aGlzLm9uU2hvd0Fib3J0TW9kYWwuZW1pdChJKX1vcGVuUmVxdWVzdHNNb2RhbCgpe3RoaXMub25SZXF1ZXN0c01vZGFs''@;'; put 'put ''T3Blbi5lbWl0KCEwKX1jYXRjaFJlc3BvbnNlRXJyb3IoaCx2KXtsZXQgeT0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCI7aWYodi5lcnJvcil7bGV0IEM7eT12LmVycm9yLm1lc3NhZ2Usdi5lcnJvci5kZXRhaWxzJiZ2LmVycm9yLmRldGFpbHMubG9nJiYoQz12LmVycm9yLmRldGFpbHMu''@;'; put 'put ''bG9nKSwoIXl8fHkudHJpbSgpLmxlbmd0aDwxKSYmKHk9IlNBUyBTZXJ2aWNlIGVycm9yIG9jdXJyZWQiKSx0aGlzLnNob3dBYm9ydE1vZGFsKGgseSx7TE9HOkN9LCJSZXF1ZXN0IGVycm9yIil9ZWxzZSB0aGlzLnNob3dBYm9ydE1vZGFsKGgseSl9dG9nZ2xlU2lkZWJhcigpe3RoaXMub25T''@;'; put 'put ''aWRlYmFyVG9nZ2xlLmVtaXQoKX1jbG9zZVNpZGViYXIoKXt3aW5kb3cuaW5uZXJXaWR0aDx0aGlzLnNpZGViYXJDbG9zZUxpbWl0JiZ0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiExfSl9b3BlblNpZGViYXIoKXt0aGlzLm9uU2lkZWJhclRvZ2dsZS5lbWl0KHtvcGVuOiEwfSl9''@;'; put 'put ''c3RhcnR1cERhdGFMb2FkZWQoKXt0aGlzLm9uU3RhcnR1cERhdGFMb2FkZWQuZW1pdCgpfWRpc3BhdGNoRXZlbnQoaCl7bGV0IHY7ImZ1bmN0aW9uIj09dHlwZW9mIEV2ZW50P3Y9bmV3IEV2ZW50KGgpOih2PWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpLHYuaW5pdEV2ZW50KGgsITAs''@;'; put 'put ''ITApKSx3aW5kb3cuZGlzcGF0Y2hFdmVudCh2KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koTEgpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKTt2YXIgVTM9''@;'; put 'put ''TCgxMTQwKSx6VT1MLm4oVTMpLEh1PUwoMjU4NTkpO2xldCBPSD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy51c2VyQ2hhbmdlPW5ldyAkZX1zZXQgdXNlcihoKXt0aGlzLl91c2VyPWgsdGhpcy51c2VyQ2hhbmdlLm5leHQoaCl9Z2V0IHVzZXIoKXtyZXR1cm4gdGhpcy5fdXNl''@;'; put 'put ''cn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgR1V7fWNsYXNzIFdVe31jbGFzcyBocHtjb25zdHJ1Y3RvcihnKXt0aGlzLm5vcm1hbGl6ZWRO''@;'; put 'put ''YW1lcz1uZXcgTWFwLHRoaXMubGF6eVVwZGF0ZT1udWxsLGc/dGhpcy5sYXp5SW5pdD0ic3RyaW5nIj09dHlwZW9mIGc/KCk9Pnt0aGlzLmhlYWRlcnM9bmV3IE1hcCxnLnNwbGl0KCJcbiIpLmZvckVhY2goaD0+e2NvbnN0IHY9aC5pbmRleE9mKCI6Iik7aWYodj4wKXtjb25zdCB5PWguc2xp''@;'; put 'put ''Y2UoMCx2KSxDPXkudG9Mb3dlckNhc2UoKSxJPWguc2xpY2UodisxKS50cmltKCk7dGhpcy5tYXliZVNldE5vcm1hbGl6ZWROYW1lKHksQyksdGhpcy5oZWFkZXJzLmhhcyhDKT90aGlzLmhlYWRlcnMuZ2V0KEMpLnB1c2goSSk6dGhpcy5oZWFkZXJzLnNldChDLFtJXSl9fSl9OigpPT57dGhp''@;'; put 'put ''cy5oZWFkZXJzPW5ldyBNYXAsT2JqZWN0LmtleXMoZykuZm9yRWFjaChoPT57bGV0IHY9Z1toXTtjb25zdCB5PWgudG9Mb3dlckNhc2UoKTsic3RyaW5nIj09dHlwZW9mIHYmJih2PVt2XSksdi5sZW5ndGg+MCYmKHRoaXMuaGVhZGVycy5zZXQoeSx2KSx0aGlzLm1heWJlU2V0Tm9ybWFsaXpl''@;'; put 'put ''ZE5hbWUoaCx5KSl9KX06dGhpcy5oZWFkZXJzPW5ldyBNYXB9aGFzKGcpe3JldHVybiB0aGlzLmluaXQoKSx0aGlzLmhlYWRlcnMuaGFzKGcudG9Mb3dlckNhc2UoKSl9Z2V0KGcpe3RoaXMuaW5pdCgpO2NvbnN0IGg9dGhpcy5oZWFkZXJzLmdldChnLnRvTG93ZXJDYXNlKCkpO3JldHVybiBo''@;'; put 'put ''JiZoLmxlbmd0aD4wP2hbMF06bnVsbH1rZXlzKCl7cmV0dXJuIHRoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3JtYWxpemVkTmFtZXMudmFsdWVzKCkpfWdldEFsbChnKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5oZWFkZXJzLmdldChnLnRvTG93ZXJDYXNlKCkpfHxudWxsfWFwcGVu''@;'; put 'put ''ZChnLGgpe3JldHVybiB0aGlzLmNsb25lKHtuYW1lOmcsdmFsdWU6aCxvcDoiYSJ9KX1zZXQoZyxoKXtyZXR1cm4gdGhpcy5jbG9uZSh7bmFtZTpnLHZhbHVlOmgsb3A6InMifSl9ZGVsZXRlKGcsaCl7cmV0dXJuIHRoaXMuY2xvbmUoe25hbWU6Zyx2YWx1ZTpoLG9wOiJkIn0pfW1heWJlU2V0''@;'; put 'put ''Tm9ybWFsaXplZE5hbWUoZyxoKXt0aGlzLm5vcm1hbGl6ZWROYW1lcy5oYXMoaCl8fHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChoLGcpfWluaXQoKXt0aGlzLmxhenlJbml0JiYodGhpcy5sYXp5SW5pdCBpbnN0YW5jZW9mIGhwP3RoaXMuY29weUZyb20odGhpcy5sYXp5SW5pdCk6dGhpcy5s''@;'; put 'put ''YXp5SW5pdCgpLHRoaXMubGF6eUluaXQ9bnVsbCx0aGlzLmxhenlVcGRhdGUmJih0aGlzLmxhenlVcGRhdGUuZm9yRWFjaChnPT50aGlzLmFwcGx5VXBkYXRlKGcpKSx0aGlzLmxhenlVcGRhdGU9bnVsbCkpfWNvcHlGcm9tKGcpe2cuaW5pdCgpLEFycmF5LmZyb20oZy5oZWFkZXJzLmtleXMo''@;'; put 'put ''KSkuZm9yRWFjaChoPT57dGhpcy5oZWFkZXJzLnNldChoLGcuaGVhZGVycy5nZXQoaCkpLHRoaXMubm9ybWFsaXplZE5hbWVzLnNldChoLGcubm9ybWFsaXplZE5hbWVzLmdldChoKSl9KX1jbG9uZShnKXtjb25zdCBoPW5ldyBocDtyZXR1cm4gaC5sYXp5SW5pdD10aGlzLmxhenlJbml0JiZ0''@;'; put 'put ''aGlzLmxhenlJbml0IGluc3RhbmNlb2YgaHA/dGhpcy5sYXp5SW5pdDp0aGlzLGgubGF6eVVwZGF0ZT0odGhpcy5sYXp5VXBkYXRlfHxbXSkuY29uY2F0KFtnXSksaH1hcHBseVVwZGF0ZShnKXtjb25zdCBoPWcubmFtZS50b0xvd2VyQ2FzZSgpO3N3aXRjaChnLm9wKXtjYXNlImEiOmNhc2Ui''@;'; put 'put ''cyI6bGV0IHY9Zy52YWx1ZTtpZigic3RyaW5nIj09dHlwZW9mIHYmJih2PVt2XSksMD09PXYubGVuZ3RoKXJldHVybjt0aGlzLm1heWJlU2V0Tm9ybWFsaXplZE5hbWUoZy5uYW1lLGgpO2NvbnN0IHk9KCJhIj09PWcub3A/dGhpcy5oZWFkZXJzLmdldChoKTp2b2lkIDApfHxbXTt5LnB1c2go''@;'; put 'put ''Li4udiksdGhpcy5oZWFkZXJzLnNldChoLHkpO2JyZWFrO2Nhc2UiZCI6Y29uc3QgQz1nLnZhbHVlO2lmKEMpe2xldCBJPXRoaXMuaGVhZGVycy5nZXQoaCk7aWYoIUkpcmV0dXJuO0k9SS5maWx0ZXIoWj0+LTE9PT1DLmluZGV4T2YoWikpLDA9PT1JLmxlbmd0aD8odGhpcy5oZWFkZXJzLmRl''@;'; put 'put ''bGV0ZShoKSx0aGlzLm5vcm1hbGl6ZWROYW1lcy5kZWxldGUoaCkpOnRoaXMuaGVhZGVycy5zZXQoaCxJKX1lbHNlIHRoaXMuaGVhZGVycy5kZWxldGUoaCksdGhpcy5ub3JtYWxpemVkTmFtZXMuZGVsZXRlKGgpfX1mb3JFYWNoKGcpe3RoaXMuaW5pdCgpLEFycmF5LmZyb20odGhpcy5ub3Jt''@;'; put 'put ''YWxpemVkTmFtZXMua2V5cygpKS5mb3JFYWNoKGg9PmcodGhpcy5ub3JtYWxpemVkTmFtZXMuZ2V0KGgpLHRoaXMuaGVhZGVycy5nZXQoaCkpKX19Y2xhc3MgWVV7ZW5jb2RlS2V5KGcpe3JldHVybiBRVShnKX1lbmNvZGVWYWx1ZShnKXtyZXR1cm4gUVUoZyl9ZGVjb2RlS2V5KGcpe3JldHVy''@;'; put 'put ''biBkZWNvZGVVUklDb21wb25lbnQoZyl9ZGVjb2RlVmFsdWUoZyl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChnKX19Y29uc3QgVVU9LyUoXGRbYS1mMC05XSkvZ2ksQ29lPXs0MDoiQCIsIjNBIjoiOiIsMjQ6IiQiLCIyQyI6IiwiLCIzQiI6IjsiLCIzRCI6Ij0iLCIzRiI6Ij8iLCIyRiI6''@;'; put 'put ''Ii8ifTtmdW5jdGlvbiBRVShkKXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGQpLnJlcGxhY2UoVVUsKGcsaCk9Pnt2YXIgdjtyZXR1cm4gbnVsbCE9PSh2PUNvZVtoXSkmJnZvaWQgMCE9PXY/djpnfSl9ZnVuY3Rpb24gVkkoZCl7cmV0dXJuYCR7ZH1gfWNsYXNzIFE1e2NvbnN0cnVjdG9y''@;'; put 'put ''KGc9e30pe2lmKHRoaXMudXBkYXRlcz1udWxsLHRoaXMuY2xvbmVGcm9tPW51bGwsdGhpcy5lbmNvZGVyPWcuZW5jb2Rlcnx8bmV3IFlVLGcuZnJvbVN0cmluZyl7aWYoZy5mcm9tT2JqZWN0KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHNwZWNpZnkgYm90aCBmcm9tU3RyaW5nIGFuZCBmcm9t''@;'; put 'put ''T2JqZWN0LiIpO3RoaXMubWFwPWZ1bmN0aW9uIF9vZShkLGcpe2NvbnN0IGg9bmV3IE1hcDtyZXR1cm4gZC5sZW5ndGg+MCYmZC5yZXBsYWNlKC9eXD8vLCIiKS5zcGxpdCgiJiIpLmZvckVhY2goeT0+e2NvbnN0IEM9eS5pbmRleE9mKCI9IiksW0ksWl09LTE9PUM/W2cuZGVjb2RlS2V5KHkp''@;'; put 'put ''LCIiXTpbZy5kZWNvZGVLZXkoeS5zbGljZSgwLEMpKSxnLmRlY29kZVZhbHVlKHkuc2xpY2UoQysxKSldLHVlPWguZ2V0KEkpfHxbXTt1ZS5wdXNoKFopLGguc2V0KEksdWUpfSksaH0oZy5mcm9tU3RyaW5nLHRoaXMuZW5jb2Rlcil9ZWxzZSBnLmZyb21PYmplY3Q/KHRoaXMubWFwPW5ldyBN''@;'; put 'put ''YXAsT2JqZWN0LmtleXMoZy5mcm9tT2JqZWN0KS5mb3JFYWNoKGg9Pntjb25zdCB2PWcuZnJvbU9iamVjdFtoXSx5PUFycmF5LmlzQXJyYXkodik/di5tYXAoVkkpOltWSSh2KV07dGhpcy5tYXAuc2V0KGgseSl9KSk6dGhpcy5tYXA9bnVsbH1oYXMoZyl7cmV0dXJuIHRoaXMuaW5pdCgpLHRo''@;'; put 'put ''aXMubWFwLmhhcyhnKX1nZXQoZyl7dGhpcy5pbml0KCk7Y29uc3QgaD10aGlzLm1hcC5nZXQoZyk7cmV0dXJuIGg/aFswXTpudWxsfWdldEFsbChnKXtyZXR1cm4gdGhpcy5pbml0KCksdGhpcy5tYXAuZ2V0KGcpfHxudWxsfWtleXMoKXtyZXR1cm4gdGhpcy5pbml0KCksQXJyYXkuZnJvbSh0''@;'; put 'put ''aGlzLm1hcC5rZXlzKCkpfWFwcGVuZChnLGgpe3JldHVybiB0aGlzLmNsb25lKHtwYXJhbTpnLHZhbHVlOmgsb3A6ImEifSl9YXBwZW5kQWxsKGcpe2NvbnN0IGg9W107cmV0dXJuIE9iamVjdC5rZXlzKGcpLmZvckVhY2godj0+e2NvbnN0IHk9Z1t2XTtBcnJheS5pc0FycmF5KHkpP3kuZm9y''@;'; put 'put ''RWFjaChDPT57aC5wdXNoKHtwYXJhbTp2LHZhbHVlOkMsb3A6ImEifSl9KTpoLnB1c2goe3BhcmFtOnYsdmFsdWU6eSxvcDoiYSJ9KX0pLHRoaXMuY2xvbmUoaCl9c2V0KGcsaCl7cmV0dXJuIHRoaXMuY2xvbmUoe3BhcmFtOmcsdmFsdWU6aCxvcDoicyJ9KX1kZWxldGUoZyxoKXtyZXR1cm4g''@;'; put 'put ''dGhpcy5jbG9uZSh7cGFyYW06Zyx2YWx1ZTpoLG9wOiJkIn0pfXRvU3RyaW5nKCl7cmV0dXJuIHRoaXMuaW5pdCgpLHRoaXMua2V5cygpLm1hcChnPT57Y29uc3QgaD10aGlzLmVuY29kZXIuZW5jb2RlS2V5KGcpO3JldHVybiB0aGlzLm1hcC5nZXQoZykubWFwKHY9PmgrIj0iK3RoaXMuZW5j''@;'; put 'put ''b2Rlci5lbmNvZGVWYWx1ZSh2KSkuam9pbigiJiIpfSkuZmlsdGVyKGc9PiIiIT09Zykuam9pbigiJiIpfWNsb25lKGcpe2NvbnN0IGg9bmV3IFE1KHtlbmNvZGVyOnRoaXMuZW5jb2Rlcn0pO3JldHVybiBoLmNsb25lRnJvbT10aGlzLmNsb25lRnJvbXx8dGhpcyxoLnVwZGF0ZXM9KHRoaXMu''@;'; put 'put ''dXBkYXRlc3x8W10pLmNvbmNhdChnKSxofWluaXQoKXtudWxsPT09dGhpcy5tYXAmJih0aGlzLm1hcD1uZXcgTWFwKSxudWxsIT09dGhpcy5jbG9uZUZyb20mJih0aGlzLmNsb25lRnJvbS5pbml0KCksdGhpcy5jbG9uZUZyb20ua2V5cygpLmZvckVhY2goZz0+dGhpcy5tYXAuc2V0KGcsdGhp''@;'; put 'put ''cy5jbG9uZUZyb20ubWFwLmdldChnKSkpLHRoaXMudXBkYXRlcy5mb3JFYWNoKGc9Pntzd2l0Y2goZy5vcCl7Y2FzZSJhIjpjYXNlInMiOmNvbnN0IGg9KCJhIj09PWcub3A/dGhpcy5tYXAuZ2V0KGcucGFyYW0pOnZvaWQgMCl8fFtdO2gucHVzaChWSShnLnZhbHVlKSksdGhpcy5tYXAuc2V0''@;'; put 'put ''KGcucGFyYW0saCk7YnJlYWs7Y2FzZSJkIjppZih2b2lkIDA9PT1nLnZhbHVlKXt0aGlzLm1hcC5kZWxldGUoZy5wYXJhbSk7YnJlYWt9e2xldCB2PXRoaXMubWFwLmdldChnLnBhcmFtKXx8W107Y29uc3QgeT12LmluZGV4T2YoVkkoZy52YWx1ZSkpOy0xIT09eSYmdi5zcGxpY2UoeSwxKSx2''@;'; put 'put ''Lmxlbmd0aD4wP3RoaXMubWFwLnNldChnLnBhcmFtLHYpOnRoaXMubWFwLmRlbGV0ZShnLnBhcmFtKX19fSksdGhpcy5jbG9uZUZyb209dGhpcy51cGRhdGVzPW51bGwpfX1jbGFzcyBCSHtjb25zdHJ1Y3Rvcigpe3RoaXMubWFwPW5ldyBNYXB9c2V0KGcsaCl7cmV0dXJuIHRoaXMubWFwLnNl''@;'; put 'put ''dChnLGgpLHRoaXN9Z2V0KGcpe3JldHVybiB0aGlzLm1hcC5oYXMoZyl8fHRoaXMubWFwLnNldChnLGcuZGVmYXVsdFZhbHVlKCkpLHRoaXMubWFwLmdldChnKX1kZWxldGUoZyl7cmV0dXJuIHRoaXMubWFwLmRlbGV0ZShnKSx0aGlzfWhhcyhnKXtyZXR1cm4gdGhpcy5tYXAuaGFzKGcpfWtl''@;'; put 'put ''eXMoKXtyZXR1cm4gdGhpcy5tYXAua2V5cygpfX1mdW5jdGlvbiBKVShkKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZkIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9ZnVuY3Rpb24gWFUoZCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiZkIGluc3RhbmNl''@;'; put 'put ''b2YgQmxvYn1mdW5jdGlvbiBLVShkKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZkIGluc3RhbmNlb2YgRm9ybURhdGF9Y2xhc3MgZ3l7Y29uc3RydWN0b3IoZyxoLHYseSl7bGV0IEM7aWYodGhpcy51cmw9aCx0aGlzLmJvZHk9bnVsbCx0aGlzLnJlcG9ydFByb2dyZXNz''@;'; put 'put ''PSExLHRoaXMud2l0aENyZWRlbnRpYWxzPSExLHRoaXMucmVzcG9uc2VUeXBlPSJqc29uIix0aGlzLm1ldGhvZD1nLnRvVXBwZXJDYXNlKCksZnVuY3Rpb24ga29lKGQpe3N3aXRjaChkKXtjYXNlIkRFTEVURSI6Y2FzZSJHRVQiOmNhc2UiSEVBRCI6Y2FzZSJPUFRJT05TIjpjYXNlIkpTT05Q''@;'; put 'put ''IjpyZXR1cm4hMTtkZWZhdWx0OnJldHVybiEwfX0odGhpcy5tZXRob2QpfHx5Pyh0aGlzLmJvZHk9dm9pZCAwIT09dj92Om51bGwsQz15KTpDPXYsQyYmKHRoaXMucmVwb3J0UHJvZ3Jlc3M9ISFDLnJlcG9ydFByb2dyZXNzLHRoaXMud2l0aENyZWRlbnRpYWxzPSEhQy53aXRoQ3JlZGVudGlh''@;'; put 'put ''bHMsQy5yZXNwb25zZVR5cGUmJih0aGlzLnJlc3BvbnNlVHlwZT1DLnJlc3BvbnNlVHlwZSksQy5oZWFkZXJzJiYodGhpcy5oZWFkZXJzPUMuaGVhZGVycyksQy5jb250ZXh0JiYodGhpcy5jb250ZXh0PUMuY29udGV4dCksQy5wYXJhbXMmJih0aGlzLnBhcmFtcz1DLnBhcmFtcykpLHRoaXMu''@;'; put 'put ''aGVhZGVyc3x8KHRoaXMuaGVhZGVycz1uZXcgaHApLHRoaXMuY29udGV4dHx8KHRoaXMuY29udGV4dD1uZXcgQkgpLHRoaXMucGFyYW1zKXtjb25zdCBJPXRoaXMucGFyYW1zLnRvU3RyaW5nKCk7aWYoMD09PUkubGVuZ3RoKXRoaXMudXJsV2l0aFBhcmFtcz1oO2Vsc2V7Y29uc3QgWj1oLmlu''@;'; put 'put ''ZGV4T2YoIj8iKTt0aGlzLnVybFdpdGhQYXJhbXM9aCsoLTE9PT1aPyI/IjpaPGgubGVuZ3RoLTE/IiYiOiIiKStJfX1lbHNlIHRoaXMucGFyYW1zPW5ldyBRNSx0aGlzLnVybFdpdGhQYXJhbXM9aH1zZXJpYWxpemVCb2R5KCl7cmV0dXJuIG51bGw9PT10aGlzLmJvZHk/bnVsbDpKVSh0aGlz''@;'; put 'put ''LmJvZHkpfHxYVSh0aGlzLmJvZHkpfHxLVSh0aGlzLmJvZHkpfHxmdW5jdGlvbiBTb2UoZCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBVUkxTZWFyY2hQYXJhbXMmJmQgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXN9KHRoaXMuYm9keSl8fCJzdHJpbmciPT10eXBlb2YgdGhpcy5ib2R5''@;'; put 'put ''P3RoaXMuYm9keTp0aGlzLmJvZHkgaW5zdGFuY2VvZiBRNT90aGlzLmJvZHkudG9TdHJpbmcoKToib2JqZWN0Ij09dHlwZW9mIHRoaXMuYm9keXx8ImJvb2xlYW4iPT10eXBlb2YgdGhpcy5ib2R5fHxBcnJheS5pc0FycmF5KHRoaXMuYm9keSk/SlNPTi5zdHJpbmdpZnkodGhpcy5ib2R5KTp0''@;'; put 'put ''aGlzLmJvZHkudG9TdHJpbmcoKX1kZXRlY3RDb250ZW50VHlwZUhlYWRlcigpe3JldHVybiBudWxsPT09dGhpcy5ib2R5fHxLVSh0aGlzLmJvZHkpP251bGw6WFUodGhpcy5ib2R5KT90aGlzLmJvZHkudHlwZXx8bnVsbDpKVSh0aGlzLmJvZHkpP251bGw6InN0cmluZyI9PXR5cGVvZiB0aGlz''@;'; put 'put ''LmJvZHk/InRleHQvcGxhaW4iOnRoaXMuYm9keSBpbnN0YW5jZW9mIFE1PyJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCI6Im9iamVjdCI9PXR5cGVvZiB0aGlzLmJvZHl8fCJudW1iZXIiPT10eXBlb2YgdGhpcy5ib2R5fHwiYm9vbGVhbiI9PXR5cGVv''@;'; put 'put ''ZiB0aGlzLmJvZHk/ImFwcGxpY2F0aW9uL2pzb24iOm51bGx9Y2xvbmUoZz17fSl7dmFyIGg7Y29uc3Qgdj1nLm1ldGhvZHx8dGhpcy5tZXRob2QseT1nLnVybHx8dGhpcy51cmwsQz1nLnJlc3BvbnNlVHlwZXx8dGhpcy5yZXNwb25zZVR5cGUsST12b2lkIDAhPT1nLmJvZHk/Zy5ib2R5OnRo''@;'; put 'put ''aXMuYm9keSxaPXZvaWQgMCE9PWcud2l0aENyZWRlbnRpYWxzP2cud2l0aENyZWRlbnRpYWxzOnRoaXMud2l0aENyZWRlbnRpYWxzLHVlPXZvaWQgMCE9PWcucmVwb3J0UHJvZ3Jlc3M/Zy5yZXBvcnRQcm9ncmVzczp0aGlzLnJlcG9ydFByb2dyZXNzO2xldCBfZT1nLmhlYWRlcnN8fHRoaXMu''@;'; put 'put ''aGVhZGVycyxCZT1nLnBhcmFtc3x8dGhpcy5wYXJhbXM7Y29uc3QgTmU9bnVsbCE9PShoPWcuY29udGV4dCkmJnZvaWQgMCE9PWg/aDp0aGlzLmNvbnRleHQ7cmV0dXJuIHZvaWQgMCE9PWcuc2V0SGVhZGVycyYmKF9lPU9iamVjdC5rZXlzKGcuc2V0SGVhZGVycykucmVkdWNlKChLZSxwdCk9''@;'; put 'put ''PktlLnNldChwdCxnLnNldEhlYWRlcnNbcHRdKSxfZSkpLGcuc2V0UGFyYW1zJiYoQmU9T2JqZWN0LmtleXMoZy5zZXRQYXJhbXMpLnJlZHVjZSgoS2UscHQpPT5LZS5zZXQocHQsZy5zZXRQYXJhbXNbcHRdKSxCZSkpLG5ldyBneSh2LHksSSx7cGFyYW1zOkJlLGhlYWRlcnM6X2UsY29udGV4''@;'; put 'put ''dDpOZSxyZXBvcnRQcm9ncmVzczp1ZSxyZXNwb25zZVR5cGU6Qyx3aXRoQ3JlZGVudGlhbHM6Wn0pfX12YXIgdnU9KCgpPT4oKHZ1PXZ1fHx7fSlbdnUuU2VudD0wXT0iU2VudCIsdnVbdnUuVXBsb2FkUHJvZ3Jlc3M9MV09IlVwbG9hZFByb2dyZXNzIix2dVt2dS5SZXNwb25zZUhlYWRlcj0y''@;'; put 'put ''XT0iUmVzcG9uc2VIZWFkZXIiLHZ1W3Z1LkRvd25sb2FkUHJvZ3Jlc3M9M109IkRvd25sb2FkUHJvZ3Jlc3MiLHZ1W3Z1LlJlc3BvbnNlPTRdPSJSZXNwb25zZSIsdnVbdnUuVXNlcj01XT0iVXNlciIsdnUpKSgpO2NsYXNzIEE3e2NvbnN0cnVjdG9yKGcsaD0yMDAsdj0iT0siKXt0aGlzLmhl''@;'; put 'put ''YWRlcnM9Zy5oZWFkZXJzfHxuZXcgaHAsdGhpcy5zdGF0dXM9dm9pZCAwIT09Zy5zdGF0dXM/Zy5zdGF0dXM6aCx0aGlzLnN0YXR1c1RleHQ9Zy5zdGF0dXNUZXh0fHx2LHRoaXMudXJsPWcudXJsfHxudWxsLHRoaXMub2s9dGhpcy5zdGF0dXM+PTIwMCYmdGhpcy5zdGF0dXM8MzAwfX1jbGFz''@;'; put 'put ''cyBQSCBleHRlbmRzIEE3e2NvbnN0cnVjdG9yKGc9e30pe3N1cGVyKGcpLHRoaXMudHlwZT12dS5SZXNwb25zZUhlYWRlcn1jbG9uZShnPXt9KXtyZXR1cm4gbmV3IFBIKHtoZWFkZXJzOmcuaGVhZGVyc3x8dGhpcy5oZWFkZXJzLHN0YXR1czp2b2lkIDAhPT1nLnN0YXR1cz9nLnN0YXR1czp0''@;'; put 'put ''aGlzLnN0YXR1cyxzdGF0dXNUZXh0Omcuc3RhdHVzVGV4dHx8dGhpcy5zdGF0dXNUZXh0LHVybDpnLnVybHx8dGhpcy51cmx8fHZvaWQgMH0pfX1jbGFzcyBteSBleHRlbmRzIEE3e2NvbnN0cnVjdG9yKGc9e30pe3N1cGVyKGcpLHRoaXMudHlwZT12dS5SZXNwb25zZSx0aGlzLmJvZHk9dm9p''@;'; put 'put ''ZCAwIT09Zy5ib2R5P2cuYm9keTpudWxsfWNsb25lKGc9e30pe3JldHVybiBuZXcgbXkoe2JvZHk6dm9pZCAwIT09Zy5ib2R5P2cuYm9keTp0aGlzLmJvZHksaGVhZGVyczpnLmhlYWRlcnN8fHRoaXMuaGVhZGVycyxzdGF0dXM6dm9pZCAwIT09Zy5zdGF0dXM/Zy5zdGF0dXM6dGhpcy5zdGF0''@;'; put 'put ''dXMsc3RhdHVzVGV4dDpnLnN0YXR1c1RleHR8fHRoaXMuc3RhdHVzVGV4dCx1cmw6Zy51cmx8fHRoaXMudXJsfHx2b2lkIDB9KX19Y2xhc3MgJFUgZXh0ZW5kcyBBN3tjb25zdHJ1Y3RvcihnKXtzdXBlcihnLDAsIlVua25vd24gRXJyb3IiKSx0aGlzLm5hbWU9Ikh0dHBFcnJvclJlc3BvbnNl''@;'; put 'put ''Iix0aGlzLm9rPSExLHRoaXMubWVzc2FnZT10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDA/YEh0dHAgZmFpbHVyZSBkdXJpbmcgcGFyc2luZyBmb3IgJHtnLnVybHx8Iih1bmtub3duIHVybCkifWA6YEh0dHAgZmFpbHVyZSByZXNwb25zZSBmb3IgJHtnLnVybHx8Iih1bmtub3du''@;'; put 'put ''IHVybCkifTogJHtnLnN0YXR1c30gJHtnLnN0YXR1c1RleHR9YCx0aGlzLmVycm9yPWcuZXJyb3J8fG51bGx9fWZ1bmN0aW9uIEZIKGQsZyl7cmV0dXJue2JvZHk6ZyxoZWFkZXJzOmQuaGVhZGVycyxjb250ZXh0OmQuY29udGV4dCxvYnNlcnZlOmQub2JzZXJ2ZSxwYXJhbXM6ZC5wYXJhbXMs''@;'; put 'put ''cmVwb3J0UHJvZ3Jlc3M6ZC5yZXBvcnRQcm9ncmVzcyxyZXNwb25zZVR5cGU6ZC5yZXNwb25zZVR5cGUsd2l0aENyZWRlbnRpYWxzOmQud2l0aENyZWRlbnRpYWxzfX1sZXQgSEg9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmhhbmRsZXI9aH1yZXF1ZXN0KGgsdix5PXt9KXts''@;'; put 'put ''ZXQgQztpZihoIGluc3RhbmNlb2YgZ3kpQz1oO2Vsc2V7bGV0IHVlLF9lO3VlPXkuaGVhZGVycyBpbnN0YW5jZW9mIGhwP3kuaGVhZGVyczpuZXcgaHAoeS5oZWFkZXJzKSx5LnBhcmFtcyYmKF9lPXkucGFyYW1zIGluc3RhbmNlb2YgUTU/eS5wYXJhbXM6bmV3IFE1KHtmcm9tT2JqZWN0Onku''@;'; put 'put ''cGFyYW1zfSkpLEM9bmV3IGd5KGgsdix2b2lkIDAhPT15LmJvZHk/eS5ib2R5Om51bGwse2hlYWRlcnM6dWUsY29udGV4dDp5LmNvbnRleHQscGFyYW1zOl9lLHJlcG9ydFByb2dyZXNzOnkucmVwb3J0UHJvZ3Jlc3MscmVzcG9uc2VUeXBlOnkucmVzcG9uc2VUeXBlfHwianNvbiIsd2l0aENy''@;'; put 'put ''ZWRlbnRpYWxzOnkud2l0aENyZWRlbnRpYWxzfSl9Y29uc3QgST1hYShDKS5waXBlKFY1KHVlPT50aGlzLmhhbmRsZXIuaGFuZGxlKHVlKSkpO2lmKGggaW5zdGFuY2VvZiBneXx8ImV2ZW50cyI9PT15Lm9ic2VydmUpcmV0dXJuIEk7Y29uc3QgWj1JLnBpcGUoTzIodWU9PnVlIGluc3RhbmNl''@;'; put 'put ''b2YgbXkpKTtzd2l0Y2goeS5vYnNlcnZlfHwiYm9keSIpe2Nhc2UiYm9keSI6c3dpdGNoKEMucmVzcG9uc2VUeXBlKXtjYXNlImFycmF5YnVmZmVyIjpyZXR1cm4gWi5waXBlKG10KHVlPT57aWYobnVsbCE9PXVlLmJvZHkmJiEodWUuYm9keSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSl0aHJv''@;'; put 'put ''dyBuZXcgRXJyb3IoIlJlc3BvbnNlIGlzIG5vdCBhbiBBcnJheUJ1ZmZlci4iKTtyZXR1cm4gdWUuYm9keX0pKTtjYXNlImJsb2IiOnJldHVybiBaLnBpcGUobXQodWU9PntpZihudWxsIT09dWUuYm9keSYmISh1ZS5ib2R5IGluc3RhbmNlb2YgQmxvYikpdGhyb3cgbmV3IEVycm9yKCJSZXNw''@;'; put 'put ''b25zZSBpcyBub3QgYSBCbG9iLiIpO3JldHVybiB1ZS5ib2R5fSkpO2Nhc2UidGV4dCI6cmV0dXJuIFoucGlwZShtdCh1ZT0+e2lmKG51bGwhPT11ZS5ib2R5JiYic3RyaW5nIiE9dHlwZW9mIHVlLmJvZHkpdGhyb3cgbmV3IEVycm9yKCJSZXNwb25zZSBpcyBub3QgYSBzdHJpbmcuIik7cmV0''@;'; put 'put ''dXJuIHVlLmJvZHl9KSk7ZGVmYXVsdDpyZXR1cm4gWi5waXBlKG10KHVlPT51ZS5ib2R5KSl9Y2FzZSJyZXNwb25zZSI6cmV0dXJuIFo7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoYFVucmVhY2hhYmxlOiB1bmhhbmRsZWQgb2JzZXJ2ZSB0eXBlICR7eS5vYnNlcnZlfX1gKX19ZGVsZXRlKGgs''@;'; put 'put ''dj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiREVMRVRFIixoLHYpfWdldChoLHY9e30pe3JldHVybiB0aGlzLnJlcXVlc3QoIkdFVCIsaCx2KX1oZWFkKGgsdj17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiSEVBRCIsaCx2KX1qc29ucChoLHYpe3JldHVybiB0aGlzLnJlcXVlc3QoIkpTT05Q''@;'; put 'put ''IixoLHtwYXJhbXM6KG5ldyBRNSkuYXBwZW5kKHYsIkpTT05QX0NBTExCQUNLIiksb2JzZXJ2ZToiYm9keSIscmVzcG9uc2VUeXBlOiJqc29uIn0pfW9wdGlvbnMoaCx2PXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJPUFRJT05TIixoLHYpfXBhdGNoKGgsdix5PXt9KXtyZXR1cm4gdGhpcy5y''@;'; put 'put ''ZXF1ZXN0KCJQQVRDSCIsaCxGSCh5LHYpKX1wb3N0KGgsdix5PXt9KXtyZXR1cm4gdGhpcy5yZXF1ZXN0KCJQT1NUIixoLEZIKHksdikpfXB1dChoLHYseT17fSl7cmV0dXJuIHRoaXMucmVxdWVzdCgiUFVUIixoLEZIKHksdikpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; put 'put ''dXJuIG5ldyhofHxkKShDaShHVSkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIHFVe2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5uZXh0PWcsdGhpcy5pbnRlcmNlcHRvcj1ofWhhbmRsZShnKXtyZXR1cm4gdGhpcy5pbnRlcmNlcHRv''@;'; put 'put ''ci5pbnRlcmNlcHQoZyx0aGlzLm5leHQpfX1jb25zdCBlUT1uZXcgemUoIkhUVFBfSU5URVJDRVBUT1JTIik7bGV0IE1vZT0oKCk9PntjbGFzcyBke2ludGVyY2VwdChoLHYpe3JldHVybiB2LmhhbmRsZShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; put 'put ''ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgVG9lPS9eXClcXVx9Jyw/XG4vO2xldCBuUT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMueGhyRmFjdG9yeT1ofWhhbmRsZShoKXtpZigiSlNPTlAiPT09aC5tZXRo''@;'; put 'put ''b2QpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0ZWQgdG8gY29uc3RydWN0IEpzb25wIHJlcXVlc3Qgd2l0aG91dCBIdHRwQ2xpZW50SnNvbnBNb2R1bGUgaW5zdGFsbGVkLiIpO3JldHVybiBuZXcgRih2PT57Y29uc3QgeT10aGlzLnhockZhY3RvcnkuYnVpbGQoKTtpZih5Lm9wZW4oaC5tZXRo''@;'; put 'put ''b2QsaC51cmxXaXRoUGFyYW1zKSxoLndpdGhDcmVkZW50aWFscyYmKHkud2l0aENyZWRlbnRpYWxzPSEwKSxoLmhlYWRlcnMuZm9yRWFjaCgocHQsT3QpPT55LnNldFJlcXVlc3RIZWFkZXIocHQsT3Quam9pbigiLCIpKSksaC5oZWFkZXJzLmhhcygiQWNjZXB0Iil8fHkuc2V0UmVxdWVzdEhl''@;'; put 'put ''YWRlcigiQWNjZXB0IiwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9wbGFpbiwgKi8qIiksIWguaGVhZGVycy5oYXMoIkNvbnRlbnQtVHlwZSIpKXtjb25zdCBwdD1oLmRldGVjdENvbnRlbnRUeXBlSGVhZGVyKCk7bnVsbCE9PXB0JiZ5LnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIs''@;'; put 'put ''cHQpfWlmKGgucmVzcG9uc2VUeXBlKXtjb25zdCBwdD1oLnJlc3BvbnNlVHlwZS50b0xvd2VyQ2FzZSgpO3kucmVzcG9uc2VUeXBlPSJqc29uIiE9PXB0P3B0OiJ0ZXh0In1jb25zdCBDPWguc2VyaWFsaXplQm9keSgpO2xldCBJPW51bGw7Y29uc3QgWj0oKT0+e2lmKG51bGwhPT1JKXJldHVy''@;'; put 'put ''biBJO2NvbnN0IHB0PXkuc3RhdHVzVGV4dHx8Ik9LIixPdD1uZXcgaHAoeS5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSksJHQ9ZnVuY3Rpb24gTkgoZCl7cmV0dXJuInJlc3BvbnNlVVJMImluIGQmJmQucmVzcG9uc2VVUkw/ZC5yZXNwb25zZVVSTDovXlgtUmVxdWVzdC1VUkw6L20udGVzdChk''@;'; put 'put ''LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKT9kLmdldFJlc3BvbnNlSGVhZGVyKCJYLVJlcXVlc3QtVVJMIik6bnVsbH0oeSl8fGgudXJsO3JldHVybiBJPW5ldyBQSCh7aGVhZGVyczpPdCxzdGF0dXM6eS5zdGF0dXMsc3RhdHVzVGV4dDpwdCx1cmw6JHR9KSxJfSx1ZT0oKT0+e2xldHtoZWFk''@;'; put 'put ''ZXJzOnB0LHN0YXR1czpPdCxzdGF0dXNUZXh0OiR0LHVybDpmbn09WigpLExuPW51bGw7MjA0IT09T3QmJihMbj12b2lkIDA9PT15LnJlc3BvbnNlP3kucmVzcG9uc2VUZXh0OnkucmVzcG9uc2UpLDA9PT1PdCYmKE90PUxuPzIwMDowKTtsZXQgaXI9T3Q+PTIwMCYmT3Q8MzAwO2lmKCJqc29u''@;'; put 'put ''Ij09PWgucmVzcG9uc2VUeXBlJiYic3RyaW5nIj09dHlwZW9mIExuKXtjb25zdCBtcj1MbjtMbj1Mbi5yZXBsYWNlKFRvZSwiIik7dHJ5e0xuPSIiIT09TG4/SlNPTi5wYXJzZShMbik6bnVsbH1jYXRjaChTcil7TG49bXIsaXImJihpcj0hMSxMbj17ZXJyb3I6U3IsdGV4dDpMbn0pfX1pcj8o''@;'; put 'put ''di5uZXh0KG5ldyBteSh7Ym9keTpMbixoZWFkZXJzOnB0LHN0YXR1czpPdCxzdGF0dXNUZXh0OiR0LHVybDpmbnx8dm9pZCAwfSkpLHYuY29tcGxldGUoKSk6di5lcnJvcihuZXcgJFUoe2Vycm9yOkxuLGhlYWRlcnM6cHQsc3RhdHVzOk90LHN0YXR1c1RleHQ6JHQsdXJsOmZufHx2b2lkIDB9''@;'; put 'put ''KSl9LF9lPXB0PT57Y29uc3R7dXJsOk90fT1aKCksJHQ9bmV3ICRVKHtlcnJvcjpwdCxzdGF0dXM6eS5zdGF0dXN8fDAsc3RhdHVzVGV4dDp5LnN0YXR1c1RleHR8fCJVbmtub3duIEVycm9yIix1cmw6T3R8fHZvaWQgMH0pO3YuZXJyb3IoJHQpfTtsZXQgQmU9ITE7Y29uc3QgTmU9cHQ9PntC''@;'; put 'put ''ZXx8KHYubmV4dChaKCkpLEJlPSEwKTtsZXQgT3Q9e3R5cGU6dnUuRG93bmxvYWRQcm9ncmVzcyxsb2FkZWQ6cHQubG9hZGVkfTtwdC5sZW5ndGhDb21wdXRhYmxlJiYoT3QudG90YWw9cHQudG90YWwpLCJ0ZXh0Ij09PWgucmVzcG9uc2VUeXBlJiYhIXkucmVzcG9uc2VUZXh0JiYoT3QucGFy''@;'; put 'put ''dGlhbFRleHQ9eS5yZXNwb25zZVRleHQpLHYubmV4dChPdCl9LEtlPXB0PT57bGV0IE90PXt0eXBlOnZ1LlVwbG9hZFByb2dyZXNzLGxvYWRlZDpwdC5sb2FkZWR9O3B0Lmxlbmd0aENvbXB1dGFibGUmJihPdC50b3RhbD1wdC50b3RhbCksdi5uZXh0KE90KX07cmV0dXJuIHkuYWRkRXZlbnRM''@;'; put 'put ''aXN0ZW5lcigibG9hZCIsdWUpLHkuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLF9lKSx5LmFkZEV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLF9lKSx5LmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixfZSksaC5yZXBvcnRQcm9ncmVzcyYmKHkuYWRkRXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLE5l''@;'; put 'put ''KSxudWxsIT09QyYmeS51cGxvYWQmJnkudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixLZSkpLHkuc2VuZChDKSx2Lm5leHQoe3R5cGU6dnUuU2VudH0pLCgpPT57eS5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsX2UpLHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQi''@;'; put 'put ''LF9lKSx5LnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLHVlKSx5LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRpbWVvdXQiLF9lKSxoLnJlcG9ydFByb2dyZXNzJiYoeS5yZW1vdmVFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsTmUpLG51bGwhPT1DJiZ5LnVwbG9hZCYmeS51cGxvYWQucmVtb3Zl''@;'; put 'put ''RXZlbnRMaXN0ZW5lcigicHJvZ3Jlc3MiLEtlKSkseS5yZWFkeVN0YXRlIT09eS5ET05FJiZ5LmFib3J0KCl9fSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEZXKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; put 'put ''ZmFjfSksZH0pKCk7Y29uc3QgVkg9bmV3IHplKCJYU1JGX0NPT0tJRV9OQU1FIiksakg9bmV3IHplKCJYU1JGX0hFQURFUl9OQU1FIik7Y2xhc3MgclF7fWxldCBJb2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5kb2M9aCx0aGlzLnBsYXRmb3JtPXYsdGhpcy5jb29r''@;'; put 'put ''aWVOYW1lPXksdGhpcy5sYXN0Q29va2llU3RyaW5nPSIiLHRoaXMubGFzdFRva2VuPW51bGwsdGhpcy5wYXJzZUNvdW50PTB9Z2V0VG9rZW4oKXtpZigic2VydmVyIj09PXRoaXMucGxhdGZvcm0pcmV0dXJuIG51bGw7Y29uc3QgaD10aGlzLmRvYy5jb29raWV8fCIiO3JldHVybiBoIT09dGhp''@;'; put 'put ''cy5sYXN0Q29va2llU3RyaW5nJiYodGhpcy5wYXJzZUNvdW50KyssdGhpcy5sYXN0VG9rZW49YlcoaCx0aGlzLmNvb2tpZU5hbWUpLHRoaXMubGFzdENvb2tpZVN0cmluZz1oKSx0aGlzLmxhc3RUb2tlbn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCko''@;'; put 'put ''Q2koZ3MpLENpKEwyKSxDaShWSCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFpJPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnRva2VuU2VydmljZT1oLHRoaXMuaGVhZGVyTmFtZT12fWludGVyY2VwdChoLHYpe2Nv''@;'; put 'put ''bnN0IHk9aC51cmwudG9Mb3dlckNhc2UoKTtpZigiR0VUIj09PWgubWV0aG9kfHwiSEVBRCI9PT1oLm1ldGhvZHx8eS5zdGFydHNXaXRoKCJodHRwOi8vIil8fHkuc3RhcnRzV2l0aCgiaHR0cHM6Ly8iKSlyZXR1cm4gdi5oYW5kbGUoaCk7Y29uc3QgQz10aGlzLnRva2VuU2VydmljZS5nZXRU''@;'; put 'put ''b2tlbigpO3JldHVybiBudWxsIT09QyYmIWguaGVhZGVycy5oYXModGhpcy5oZWFkZXJOYW1lKSYmKGg9aC5jbG9uZSh7aGVhZGVyczpoLmhlYWRlcnMuc2V0KHRoaXMuaGVhZGVyTmFtZSxDKX0pKSx2LmhhbmRsZShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; put 'put ''ZXcoaHx8ZCkoQ2koclEpLENpKGpIKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksdWs9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuYmFja2VuZD1oLHRoaXMuaW5qZWN0b3I9dix0aGlzLmNoYWluPW51bGx9aGFuZGxl''@;'; put 'put ''KGgpe2lmKG51bGw9PT10aGlzLmNoYWluKXtjb25zdCB2PXRoaXMuaW5qZWN0b3IuZ2V0KGVRLFtdKTt0aGlzLmNoYWluPXYucmVkdWNlUmlnaHQoKHksQyk9Pm5ldyBxVSh5LEMpLHRoaXMuYmFja2VuZCl9cmV0dXJuIHRoaXMuY2hhaW4uaGFuZGxlKGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShXVSksQ2koU3MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxaSD0oKCk9PntjbGFzcyBke3N0YXRpYyBkaXNhYmxlKCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOlt7cHJv''@;'; put 'put ''dmlkZTpaSSx1c2VDbGFzczpNb2V9XX19c3RhdGljIHdpdGhPcHRpb25zKGg9e30pe3JldHVybntuZ01vZHVsZTpkLHByb3ZpZGVyczpbaC5jb29raWVOYW1lP3twcm92aWRlOlZILHVzZVZhbHVlOmguY29va2llTmFtZX06W10saC5oZWFkZXJOYW1lP3twcm92aWRlOmpILHVzZVZhbHVlOmgu''@;'; put 'put ''aGVhZGVyTmFtZX06W11dfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7cHJvdmlkZXJzOltaSSx7cHJvdmlkZTplUSx1c2VFeGlzdGluZzpaSSxtdWx0aTohMH0se3Byb3Zp''@;'; put 'put ''ZGU6clEsdXNlQ2xhc3M6SW9lfSx7cHJvdmlkZTpWSCx1c2VWYWx1ZToiWFNSRi1UT0tFTiJ9LHtwcm92aWRlOmpILHVzZVZhbHVlOiJYLVhTUkYtVE9LRU4ifV19KSxkfSkoKSx6ST0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; put 'put ''KX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtwcm92aWRlcnM6W0hILHtwcm92aWRlOkdVLHVzZUNsYXNzOnVrfSxuUSx7cHJvdmlkZTpXVSx1c2VFeGlzdGluZzpuUX1dLGltcG9ydHM6W1pILndpdGhPcHRpb25zKHtjb29raWVOYW1lOiJYU1JGLVRPS0VOIixo''@;'; put 'put ''ZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4ifSldfSksZH0pKCksaVE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuaHR0cD1oLHRoaXMuYXBwU3RvcmVTZXJ2aWNlPXYsdGhpcy51cmw9IiIsdGhpcy5kcml2ZVVybD0iIix0aGlzLmh0dHBPcHRpb25zPXt3aXRoQ3JlZGVudGlh''@;'; put 'put ''bHM6ITB9fXNldHVwKCl7Y29uc3QgaD10aGlzLmFwcFN0b3JlU2VydmljZS5nZXREY0FkYXB0ZXJTZXR0aW5ncygpO3RoaXMudXJsPWAkeyhudWxsPT1oP3ZvaWQgMDpoLnNlcnZlclVybCl8fCIifS9TQVNqc0FwaWAsdGhpcy5kcml2ZVVybD1gJHt0aGlzLnVybH0vZHJpdmVgfWdldFNlcnZl''@;'; put 'put ''ckluZm8oKXtyZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnVybH0vaW5mb2ApfWdldEZpbGVGcm9tRHJpdmUoaCl7cmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5kcml2ZVVybH0vZmlsZS8/X2ZpbGVQYXRoPSR7aH1gLHRoaXMuaHR0cE9wdGlvbnMpfWdldEZvbGRlckNvbnRlbnRz''@;'; put 'put ''RnJvbURyaXZlKGgpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZvbGRlcj9fZm9sZGVyUGF0aD0ke2h9YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlVHJlZUZyb21Ecml2ZSgpe3JldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZHJpdmVVcmx9L2ZpbGV0cmVl''@;'; put 'put ''YCx0aGlzLmh0dHBPcHRpb25zKX1nZXRGaWxlRnJvbUZpbGVUcmVlKGgpe3JldHVybiBuZXcgUHJvbWlzZSgodix5KT0+e3RoaXMuZ2V0RmlsZVRyZWVGcm9tRHJpdmUoKS5zdWJzY3JpYmUoQz0+e2NvbnN0IFo9dGhpcy5maW5kSW5UcmVlKEMudHJlZSxoKTt2KFopfSl9KX1maW5kSW5UcmVl''@;'; put 'put ''KGgsdil7aWYoaC5yZWxhdGl2ZVBhdGg9PT12KXJldHVybiBoO2ZvcihsZXQgeSBvZiBoLmNoaWxkcmVuKXtjb25zdCBDPXRoaXMuZmluZEluVHJlZSh5LHYpO2lmKEMpcmV0dXJuIEN9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShISCksQ2ko''@;'; put 'put ''c2spKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxkfSkoKSxzYz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaW5qZWN0b3I9aH1sb2coaCx2KXt2YXIgeTt0aGlzLmluamVjdFNhc1NlcnZpY2UoKSxu''@;'; put 'put ''dWxsIT09KHk9dGhpcy5zYXNqc0NvbmZpZykmJnZvaWQgMCE9PXkmJnkuZGVidWcmJih2P2NvbnNvbGUubG9nKGgsdik6Y29uc29sZS5sb2coaCkpfWVycm9yKGgsdil7Y29uc29sZS5lcnJvcihoLHYpfWxvZ1JlcXVlc3REYXRhKGgsdil7aWYodGhpcy5sb2coIi0tLSBBZGFwdGVyIFJlcXVl''@;'; put 'put ''c3QgSW5wdXQgLS0tIiksdGhpcy5sb2coaCksdil7Zm9yKGxldCB5IG9mIE9iamVjdC5rZXlzKHYpKXRoaXMubG9nKHksdlt5XSk7dGhpcy5sb2coIi0tLS0tLSIpfWVsc2UgdGhpcy5sb2coIm5vIGRhdGEgc2VudCIpfWluamVjdFNhc1NlcnZpY2UoKXtpZighdGhpcy5zYXNqc0NvbmZpZyl7''@;'; put 'put ''Y29uc3QgaD10aGlzLmluamVjdG9yLmdldChnMik7dGhpcy5zYXNqc0NvbmZpZz1oLmdldFNhc2pzQ29uZmlnKCl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShTcykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3''@;'; put 'put ''NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpLGcyPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMuYXBwU3RvcmVTZXJ2aWNlPWgsdGhpcy51c2VyU2VydmljZT12LHRoaXMuZXZlbnRTZXJ2aWNlPXksdGhpcy5zYXNqc1NlcnZpY2U9Qyx0aGlzLmxvZ2dl''@;'; put 'put ''clNlcnZpY2U9SSx0aGlzLnJvdXRlcj1aLHRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlcj1uZXcgYXIsdGhpcy5pbmNvcnJlY3RTaXRlSWRFbWl0dGVyPW5ldyBhcix0aGlzLnJlcXVlc3RTaXRlSWRFbWl0dGVyPW5ldyBhcix0aGlzLnNhc2pzQWRhcHRlcj1uZXcoelUoKSksdGhpcy5h''@;'; put 'put ''cHBMb2NDaGVja1BlbmRpbmc9ITEsdGhpcy5zaG91bGRMb2dpbj1uZXcgZnMoITEpLHRoaXMubGljZW5zZV9zaXRlX2lkPW5ldyBmcyhudWxsKX1zYXNTZXJ2aWNlSW5pdCgpe2lmKHRoaXMuZGNBZGFwdGVyU2V0dGluZ3M9dGhpcy5hcHBTdG9yZVNlcnZpY2UuZ2V0RGNBZGFwdGVyU2V0dGlu''@;'; put 'put ''Z3MoKSx0aGlzLnNhc2pzU2VydmljZS5zZXR1cCgpLHRoaXMuZGNBZGFwdGVyU2V0dGluZ3Mpe3N3aXRjaCh0aGlzLnNhc2pzQWRhcHRlcj1uZXcoelUoKSkodGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyksdGhpcy5kY0FkYXB0ZXJTZXR0aW5ncy5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzVml5''@;'; put 'put ''YTp0aGlzLmNoZWNrVml5YURlcGxveSh0aGlzLmRjQWRhcHRlclNldHRpbmdzLmFwcExvY3x8IiIpO2JyZWFrO2Nhc2UgSHUuRC5TYXM5OnRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCk7YnJlYWs7Y2FzZSBIdS5ELlNhc2pzOnRoaXMuY2hlY2tTYXNqc0RlcGxveSgpfSJS''@;'; put 'put ''ZWRpcmVjdGVkIj09PXRoaXMuZ2V0U2FzanNDb25maWcoKS5sb2dpbk1lY2hhbmlzbSYmdGhpcy5zaG91bGRMb2dpbi5zdWJzY3JpYmUoaD0+e2gmJnRoaXMuc2FzanNBZGFwdGVyLmxvZ0luKCkudGhlbih2PT57Y29uc29sZS5sb2coInJlcyIsdil9KX0pfWVsc2UgdGhpcy5ldmVudFNlcnZp''@;'; put 'put ''Y2Uuc2hvd0luZm9Nb2RhbCgiRXJyb3IiLCJBZGFwdGVyIHNldHRpbmdzIChpbmRleC5odG1sKSBhcmUgbm90IHByZXNlbnQuIil9cmVxdWVzdChoLHYseSxDKXtyZXR1cm4gQ3x8KEM9e30pLHRoaXMubG9nZ2VyU2VydmljZS5sb2dSZXF1ZXN0RGF0YShoPSJzZXJ2aWNlcy8iK2gsdiksbmV3''@;'; put 'put ''IFByb21pc2UoKEksWik9Pnt0aGlzLnNhc2pzQWRhcHRlci5yZXF1ZXN0KGgsdix5LCgpPT57dGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKX0pLnRoZW4odWU9PntpZighMT09PXVlLmxvZ2luJiYodGhpcy5zaG91bGRMb2dpbi5uZXh0KCEwKSxaKCExKSksIXRoaXMudXNlclNlcnZpY2UudXNl''@;'; put 'put ''ciYmdWUuTUZfR0VUVVNFUiYmKHRoaXMudXNlclNlcnZpY2UudXNlcj17dXNlcm5hbWU6dWUuTUZfR0VUVVNFUn0pLHVlLlNZU1NJVEUmJih0aGlzLnJlcXVlc3RTaXRlSWRFbWl0dGVyLmVtaXQodWUuU1lTU0lURSksdGhpcy5nZXRMaWNlbnNlU2l0ZUlkKCkubGVuZ3RoPjAmJih0aGlzLmdl''@;'; put 'put ''dExpY2Vuc2VTaXRlSWQoKS5pbmNsdWRlcyh1ZS5TWVNTSVRFKXx8dGhpcy5pbmNvcnJlY3RTaXRlSWRFbWl0dGVyLmVtaXQodWUuU1lTU0lURSkpKSw0MDQ9PT11ZS5zdGF0dXMmJlooe01FU1NBR0U6dWUuYm9keXx8IlNBUyBSZXNwb25kZWQgd2l0aCBlcnJvciJ9KSx2b2lkIDAhPT11ZS5z''@;'; put 'put ''YXNqc0Fib3J0KXtjb25zdCBfZT11ZSxCZT1fZS5zYXNqc0Fib3J0WzBdLk1TRyxOZT1fZS5zYXNqc0Fib3J0WzBdLk1BQztpZihCZS5pbmNsdWRlcygiRGF0YV9Db250cm9sbGVyX1NldHRpbmdzKFN0b3JlZFByb2Nlc3MpIG5vdCBmb3VuZCIpKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5z''@;'; put 'put ''dGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx2b2lkIFooe2Vycm9yOkJlfSk7bnVsbCE9QyYmQy5zdXBwcmVzc1N1Y2Nlc3NBYm9ydE1vZGFsfHx0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChoLnJlcGxhY2UoInNlcnZpY2Vz''@;'; put 'put ''LyIsIiIpLEJlLHtTWVNXQVJOSU5HVEVYVDpfZS5TWVNXQVJOSU5HVEVYVCxTWVNFUlJPUlRFWFQ6X2UuU1lTRVJST1JURVhULE1BQzpOZX0pLFooe2Vycm9yOkJlfSl9SSh1ZSl9LHVlPT57aWYoY29uc29sZS5lcnJvcih1ZSksdWUuZXJyb3Ipe2xldCBCZSxfZT11ZS5lcnJvci5tZXNzYWdl''@;'; put 'put ''O3VlLmVycm9yLmRldGFpbHMmJnVlLmVycm9yLmRldGFpbHMubG9nJiYoQmU9dWUuZXJyb3IuZGV0YWlscy5sb2cpLCghX2V8fF9lLnRyaW0oKS5sZW5ndGg8MSkmJihfZT0iU0FTIFNlcnZpY2UgZXJyb3Igb2N1cnJlZCIpLG51bGwhPUMmJkMuc3VwcHJlc3NFcnJvckFib3J0TW9kYWx8fHRo''@;'; put 'put ''aXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKGgsX2Use0xPRzpCZX0sIlJlcXVlc3QgZXJyb3IiKSxaKHtlcnJvcjpfZX0pfVoodWUpfSl9KX11cGxvYWRGaWxlKGgsdix5KXtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIudXBsb2FkRmlsZShoLHYseSl9bG9naW4oaCx2KXtyZXR1cm4g''@;'; put 'put ''bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHk9dGhpcy5nZXRTZXJ2ZXJUeXBlKCk9PT1IdS5ELlNhc2pzPyJjbGllbnRJRDEiOnZvaWQgMDtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXIubG9nSW4oaCx2LHkpLnRoZW4oQz0+e3ZhciBJO3JldHVybiBDLmlzTG9nZ2Vk''@;'; put 'put ''SW4mJih0aGlzLnVzZXJTZXJ2aWNlLnVzZXI9e3VzZXJuYW1lOkMudXNlck5hbWV9LHRoaXMuYXBwTG9jQ2hlY2tQZW5kaW5nJiYodGhpcy5jaGVja1ZpeWFEZXBsb3koKG51bGw9PT0oST10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09ST92b2lkIDA6SS5hcHBMb2MpfHwiIiks''@;'; put 'put ''dGhpcy5hcHBMb2NDaGVja1BlbmRpbmc9ITEpKSx0aGlzLnNob3VsZExvZ2luLm5leHQoIUMuaXNMb2dnZWRJbiksQy5pc0xvZ2dlZElufSxDPT4oY29uc29sZS5lcnJvcihDKSx0aGlzLnNob3VsZExvZ2luLm5leHQoITApLCExKSkuY2F0Y2goQz0+KDQwMz09PUMmJmNvbnNvbGUuZXJyb3Io''@;'; put 'put ''IkludmFsaWQgaG9zdCIpLCExKSl9KX1nZXRMaWNlbnNlU2l0ZUlkKCl7cmV0dXJuIHRoaXMubGljZW5zZV9zaXRlX2lkLnZhbHVlfHxbXX1zZXRMaWNlbnNlU2l0ZUlkKGgpe3RoaXMubGljZW5zZV9zaXRlX2lkLm5leHQoIm9iamVjdCI9PXR5cGVvZiBoP2g6W2hdKX1jaGVja1Nhc2pzRGVw''@;'; put 'put ''bG95KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCB2PWAke3RoaXMuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDt0aGlzLnNhc2pzU2VydmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZSh2KS5zdWJzY3JpYmUoeT0+''@;'; put 'put ''e3kuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpPyh0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSk6KHRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCksdGhpcy5yb3V0ZXIudXJs''@;'; put 'put ''LmluY2x1ZGVzKCJkZXBsb3kiKSYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiLyIpKX0seT0+e3kuZXJyb3IuaW5jbHVkZXMoIlVuYXV0aG9yaXplZCIpPyh0aGlzLnNob3VsZExvZ2luLm5leHQoITApLHRoaXMuc2hvdWxkTG9naW4uc3Vic2NyaWJlKEM9PnshMT09PUMmJmxvY2F0aW9u''@;'; put 'put ''LnJlbG9hZCgpfSkpOnkuZXJyb3IuaW5jbHVkZXMoIkZvbGRlciBkb2Vzbid0IGV4aXN0LiIpJiYoY29uc29sZS53YXJuKCJTQVNqcyBTQVMgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRl''@;'; put 'put ''ZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSl9KX0pfXNhc2pzTWFrZWRhdGFDaGVja2luZygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIG5ldyBQcm9taXNlKChoLHYpPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rp''@;'; put 'put ''b24qKCl7dGhpcy5jaGVja2luZ0ludGVydmFsPXNldEludGVydmFsKCgpPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zYXNqc01ha2VkYXRhU3VjY2Vzc2Z1bGwoKS50aGVuKHk9Pnt5JiYoY2xlYXJJbnRlcnZhbCh0aGlzLmNoZWNraW5nSW50ZXJ2YWwpLGgoeSkp''@;'; put 'put ''fSkuY2F0Y2goeT0+e2NsZWFySW50ZXJ2YWwodGhpcy5jaGVja2luZ0ludGVydmFsKSx2KHkpfSl9KSwxZTMpfSkpfSl9c2FzanNNYWtlZGF0YVN1Y2Nlc3NmdWxsKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gbmV3IFByb21pc2UoKGgsdik9Pntj''@;'; put 'put ''b25zdCBDPWAke3RoaXMuZ2V0U2FzanNDb25maWcoKS5hcHBMb2N9L3NlcnZpY2VzL2FkbWluYDt0aGlzLnNhc2pzU2VydmljZS5nZXRGb2xkZXJDb250ZW50c0Zyb21Ecml2ZShDKS5zdWJzY3JpYmUoST0+e0kuZmlsZXMuaW5jbHVkZXMoIm1ha2VkYXRhLnNhcyIpP2goITEpOmgoITApfSxJ''@;'; put 'put ''PT57SS5lcnJvci5pbmNsdWRlcygiRm9sZGVyIGRvZXNuJ3QgZXhpc3QuIikmJnYoKX0pfSl9KX1jaGVja1ZpeWFEZXBsb3koaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgeT0hMTt5PXZvaWQgMCE9PXRoaXMuc2FzanNBZGFwdGVyLmdldEZvbGRlcj95''@;'; put 'put ''aWVsZCB0aGlzLmFwcExvY0NoZWNrKGgpOnlpZWxkIHRoaXMuYXBwTG9jQ2hlY2tQcmVBeGlvc2RBZGFwdGVyKGgpLHkmJnRoaXMubG9hZFN0YXJ0dXBTZXJ2aWNlRW1pdHRlci5lbWl0KCl9KX1hcHBMb2NDaGVjayhoKXtyZXR1cm4gbmV3IFByb21pc2UoKHYseSk9Pm5vKHRoaXMsdm9pZCAw''@;'; put 'put ''LHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgSSxDPSExO3RyeXtJPXlpZWxkIHRoaXMuc2FzanNBZGFwdGVyLmdldEZvbGRlcihoKX1jYXRjaChaKXsiTG9naW5SZXF1aXJlZEVycm9yIj09PVoubmFtZT8odGhpcy5hcHBMb2NDaGVja1BlbmRpbmc9ITAsdGhpcy5zaG91bGRMb2dpbi5uZXh0KCEw''@;'; put 'put ''KSx2KCExKSk6Qz0hMH1pZihDKXJldHVybiBjb25zb2xlLndhcm4oIlZpeWEgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBs''@;'; put 'put ''b3kiKSx2KCExKTt2KCEwKX0pKX1hcHBMb2NDaGVja1ByZUF4aW9zZEFkYXB0ZXIoaCl7cmV0dXJuIG5ldyBQcm9taXNlKCh2LHkpPT57bGV0IEk9ITE7cmV0dXJuIGZldGNoKGAvZm9sZGVycy9mb2xkZXJzL0BpdGVtP3BhdGg9JHtofWApLnRoZW4oWj0+KDQwND09PVouc3RhdHVzJiYoST0h''@;'; put 'put ''MCksWi50ZXh0KCkpKS50aGVuKFo9PntpZih0aGlzLmlzTG9naW5SZXF1aXJlZChaKSl0aGlzLmFwcExvY0NoZWNrUGVuZGluZz0hMCx0aGlzLnNob3VsZExvZ2luLm5leHQoITApO2Vsc2V7aWYoSSlyZXR1cm4gY29uc29sZS53YXJuKCJWaXlhIHNlcnZpY2VzIGFyZSBub3QgcHJlc2VudCBv''@;'; put 'put ''biB0aGUgY3VycmVudCBhcHBMb2MuIiksdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvZGVwbG95IiksdighMSk7bGV0IHVlPW51bGw7dHJ5e3VlPUpTT04ucGFyc2UoWil9Y2F0Y2goX2Upe31pZih1ZSYmdWUuaHR0cFN0''@;'; put 'put ''YXR1c0NvZGUmJjQwND09PXVlLmh0dHBTdGF0dXNDb2RlKXJldHVybiBjb25zb2xlLndhcm4oIlZpeWEgc2VydmljZXMgYXJlIG5vdCBwcmVzZW50IG9uIHRoZSBjdXJyZW50IGFwcExvYy4iKSx0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmln''@;'; put 'put ''YXRlQnlVcmwoIi9kZXBsb3kiKSx2KCExKTt2KCEwKX19KS5jYXRjaChaPT57dighMSl9KX0pfWlzTG9naW5SZXF1aXJlZChoKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25bXiJdKikuKj4vZ20udGVzdChoKX1sb2dvdXQoKXt0aGlzLnNhc2pzQWRhcHRlci5sb2dPdXQoKS50aGVu''@;'; put 'put ''KCgpPT57bG9jYXRpb24ucmVsb2FkKCl9KX1nZXRTYXNqc0NvbmZpZygpe3JldHVybiB0aGlzLnNhc2pzQWRhcHRlci5nZXRTYXNqc0NvbmZpZygpfWdldFNhc1JlcXVlc3RzKCl7cmV0dXJuIHRoaXMuc2FzanNBZGFwdGVyLmdldFNhc1JlcXVlc3RzKCl9c2V0RGVidWdTdGF0ZShoKXt0aGlz''@;'; put 'put ''LnNhc2pzQWRhcHRlci5zZXREZWJ1Z1N0YXRlKGgpfWdldFNhc2pzSW5zdGFuY2UoKXtyZXR1cm4gdGhpcy5zYXNqc0FkYXB0ZXJ9Z2V0U2VydmVyVHlwZSgpe2NvbnN0IGg9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25maWcoKTtyZXR1cm4gaC5zZXJ2ZXJUeXBlP2guc2VydmVyVHlw''@;'; put 'put ''ZToiU0FTVklZQSJ9Z2V0RXhlY3V0aW9uUGF0aCgpe2NvbnN0IGg9dGhpcy5zYXNqc0FkYXB0ZXIuZ2V0U2FzanNDb25maWcoKTtzd2l0Y2goaC5zZXJ2ZXJUeXBlKXtjYXNlIEh1LkQuU2FzVml5YTpyZXR1cm4gaC5wYXRoU0FTVml5YTtjYXNlIEh1LkQuU2FzOTpyZXR1cm4gaC5wYXRoU0FT''@;'; put 'put ''OTtjYXNlIEh1LkQuU2FzanM6cmV0dXJuIGgucGF0aFNBU0pTfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koc2spLENpKE9IKSxDaShtdSksQ2koaVEpLENpKHNjKSxDaShabCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpk''@;'; put 'put ''Llx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2NvbnN0IG9RPWZ1bmN0aW9uIFJvZShkLGcpe3JldHVybiBkPT09Z3x8ZCE9ZCYmZyE9Z30sR0k9ZnVuY3Rpb24gQm9lKGQsZyl7Zm9yKHZhciBoPWQubGVuZ3RoO2gtLTspaWYob1EoZFtoXVswXSxnKSlyZXR1cm4gaDtyZXR1''@;'; put 'put ''cm4tMX07dmFyIEZvZT1BcnJheS5wcm90b3R5cGUuc3BsaWNlO2Z1bmN0aW9uIHk3KGQpe3ZhciBnPS0xLGg9bnVsbD09ZD8wOmQubGVuZ3RoO2Zvcih0aGlzLmNsZWFyKCk7KytnPGg7KXt2YXIgdj1kW2ddO3RoaXMuc2V0KHZbMF0sdlsxXSl9fXk3LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlv''@;'; put 'put ''biBMb2UoKXt0aGlzLl9fZGF0YV9fPVtdLHRoaXMuc2l6ZT0wfSx5Ny5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIEhvZShkKXt2YXIgZz10aGlzLl9fZGF0YV9fLGg9R0koZyxkKTtyZXR1cm4hKGg8MHx8KGg9PWcubGVuZ3RoLTE/Zy5wb3AoKTpGb2UuY2FsbChnLGgsMSksLS10aGlzLnNp''@;'; put 'put ''emUsMCkpfSx5Ny5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uIFdJKGQpe3ZhciBnPXRoaXMuX19kYXRhX18saD1HSShnLGQpO3JldHVybiBoPDA/dm9pZCAwOmdbaF1bMV19LHk3LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gVm9lKGQpe3JldHVybiBHSSh0aGlzLl9fZGF0YV9fLGQpPi0xfSx5Ny5w''@;'; put 'put ''cm90b3R5cGUuc2V0PWZ1bmN0aW9uIFpvZShkLGcpe3ZhciBoPXRoaXMuX19kYXRhX18sdj1HSShoLGQpO3JldHVybiB2PDA/KCsrdGhpcy5zaXplLGgucHVzaChbZCxnXSkpOmhbdl1bMV09Zyx0aGlzfTtjb25zdCBZST15Nyx1UT0ib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsJiZn''@;'; put 'put ''bG9iYWwuT2JqZWN0PT09T2JqZWN0JiZnbG9iYWw7dmFyIGNRPSJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiYmc2VsZi5PYmplY3Q9PT1PYmplY3QmJnNlbGY7Y29uc3QgZHA9dVF8fGNRfHxGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpLHc3PWRwLlN5bWJvbDt2YXIgSkk9T2JqZWN0LnBy''@;'; put 'put ''b3RvdHlwZSxKNT1KSS5oYXNPd25Qcm9wZXJ0eSxmUT1KSS50b1N0cmluZyxBeT13Nz93Ny50b1N0cmluZ1RhZzp2b2lkIDA7dmFyIE0xPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7dmFyIFFuPXc3P3c3LnRvU3RyaW5nVGFnOnZvaWQgMDtjb25zdCBWMD1mdW5jdGlvbiBHSChkKXtyZXR1''@;'; put 'put ''cm4gbnVsbD09ZD92b2lkIDA9PT1kPyJbb2JqZWN0IFVuZGVmaW5lZF0iOiJbb2JqZWN0IE51bGxdIjpRbiYmUW4gaW4gT2JqZWN0KGQpP2Z1bmN0aW9uIEljKGQpe3ZhciBnPUo1LmNhbGwoZCxBeSksaD1kW0F5XTt0cnl7ZFtBeV09dm9pZCAwO3ZhciB2PSEwfWNhdGNoKEMpe312YXIgeT1m''@;'; put 'put ''US5jYWxsKGQpO3JldHVybiB2JiYoZz9kW0F5XT1oOmRlbGV0ZSBkW0F5XSkseX0oZCk6ZnVuY3Rpb24gekgoZCl7cmV0dXJuIE0xLmNhbGwoZCl9KGQpfSxoaz1mdW5jdGlvbiBwUShkKXt2YXIgZz10eXBlb2YgZDtyZXR1cm4gbnVsbCE9ZCYmKCJvYmplY3QiPT1nfHwiZnVuY3Rpb24iPT1n''@;'; put 'put ''KX0sV0g9ZnVuY3Rpb24gS29lKGQpe2lmKCFoayhkKSlyZXR1cm4hMTt2YXIgZz1WMChkKTtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT1nfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT1nfHwiW29iamVjdCBBc3luY0Z1bmN0aW9uXSI9PWd8fCJbb2JqZWN0IFByb3h5XSI9PWd9''@;'; put 'put ''LFlIPWRwWyJfX2NvcmUtanNfc2hhcmVkX18iXTt2YXIgbVE9ZnVuY3Rpb24oKXt2YXIgZD0vW14uXSskLy5leGVjKFlIJiZZSC5rZXlzJiZZSC5rZXlzLklFX1BST1RPfHwiIik7cmV0dXJuIGQ/IlN5bWJvbChzcmMpXzEuIitkOiIifSgpO3ZhciBxb2U9RnVuY3Rpb24ucHJvdG90eXBlLnRv''@;'; put 'put ''U3RyaW5nO2NvbnN0IFE2PWZ1bmN0aW9uIFhJKGQpe2lmKG51bGwhPWQpe3RyeXtyZXR1cm4gcW9lLmNhbGwoZCl9Y2F0Y2goZyl7fXRyeXtyZXR1cm4gZCsiIn1jYXRjaChnKXt9fXJldHVybiIifTt2YXIgZWFlPS9eXFtvYmplY3QgLis/Q29uc3RydWN0b3JcXSQvLG9hZT1SZWdFeHAoIl4i''@;'; put 'put ''K0Z1bmN0aW9uLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkpLnJlcGxhY2UoL1tcXF4kLiorPygpW1xde318XS9nLCJcXCQmIikucmVwbGFjZSgvaGFzT3duUHJvcGVydHl8KGZ1bmN0aW9uKS4qPyg/PVxcXCgpfCBmb3IgLis/KD89XFxc''@;'; put 'put ''XSkvZywiJDEuKj8iKSsiJCIpO2NvbnN0IGFhZT1mdW5jdGlvbiBRSChkKXtyZXR1cm4hKCFoayhkKXx8ZnVuY3Rpb24gdlEoZCl7cmV0dXJuISFtUSYmbVEgaW4gZH0oZCkpJiYoV0goZCk/b2FlOmVhZSkudGVzdChRNihkKSl9LHFkPWZ1bmN0aW9uIHlRKGQsZyl7dmFyIGg9ZnVuY3Rpb24g''@;'; put 'put ''SkgoZCxnKXtyZXR1cm4gbnVsbD09ZD92b2lkIDA6ZFtnXX0oZCxnKTtyZXR1cm4gYWFlKGgpP2g6dm9pZCAwfSxfNz1xZChkcCwiTWFwIiksQzc9cWQoT2JqZWN0LCJjcmVhdGUiKTt2YXIgS0g9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTt2YXIgX1E9T2JqZWN0LnByb3RvdHlw''@;'; put 'put ''ZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBFNyhkKXt2YXIgZz0tMSxoPW51bGw9PWQ/MDpkLmxlbmd0aDtmb3IodGhpcy5jbGVhcigpOysrZzxoOyl7dmFyIHY9ZFtnXTt0aGlzLnNldCh2WzBdLHZbMV0pfX1FNy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gWEgoKXt0aGlzLl9fZGF0YV9f''@;'; put 'put ''PUM3P0M3KG51bGwpOnt9LHRoaXMuc2l6ZT0wfSxFNy5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uIHVhZShkKXt2YXIgZz10aGlzLmhhcyhkKSYmZGVsZXRlIHRoaXMuX19kYXRhX19bZF07cmV0dXJuIHRoaXMuc2l6ZS09Zz8xOjAsZ30sRTcucHJvdG90eXBlLmdldD1mdW5jdGlvbiBRMyhk''@;'; put 'put ''KXt2YXIgZz10aGlzLl9fZGF0YV9fO2lmKEM3KXt2YXIgaD1nW2RdO3JldHVybiJfX2xvZGFzaF9oYXNoX3VuZGVmaW5lZF9fIj09PWg/dm9pZCAwOmh9cmV0dXJuIEtILmNhbGwoZyxkKT9nW2RdOnZvaWQgMH0sRTcucHJvdG90eXBlLmhhcz1mdW5jdGlvbiBjYWUoZCl7dmFyIGc9dGhpcy5f''@;'; put 'put ''X2RhdGFfXztyZXR1cm4gQzc/dm9pZCAwIT09Z1tkXTpfUS5jYWxsKGcsZCl9LEU3LnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24ga1EoZCxnKXt2YXIgaD10aGlzLl9fZGF0YV9fO3JldHVybiB0aGlzLnNpemUrPXRoaXMuaGFzKGQpPzA6MSxoW2RdPUM3JiZ2b2lkIDA9PT1nPyJfX2xvZGFzaF9o''@;'; put 'put ''YXNoX3VuZGVmaW5lZF9fIjpnLHRoaXN9O2NvbnN0IHg3PUU3LGU0PWZ1bmN0aW9uIEVRKGQsZyl7dmFyIGg9ZC5fX2RhdGFfXztyZXR1cm4gZnVuY3Rpb24geXkoZCl7dmFyIGc9dHlwZW9mIGQ7cmV0dXJuInN0cmluZyI9PWd8fCJudW1iZXIiPT1nfHwic3ltYm9sIj09Z3x8ImJvb2xlYW4i''@;'; put 'put ''PT1nPyJfX3Byb3RvX18iIT09ZDpudWxsPT09ZH0oZyk/aFsic3RyaW5nIj09dHlwZW9mIGc/InN0cmluZyI6Imhhc2giXTpoLm1hcH07ZnVuY3Rpb24gd3koZCl7dmFyIGc9LTEsaD1udWxsPT1kPzA6ZC5sZW5ndGg7Zm9yKHRoaXMuY2xlYXIoKTsrK2c8aDspe3ZhciB2PWRbZ107dGhpcy5z''@;'; put 'put ''ZXQodlswXSx2WzFdKX19d3kucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uIGZhZSgpe3RoaXMuc2l6ZT0wLHRoaXMuX19kYXRhX189e2hhc2g6bmV3IHg3LG1hcDpuZXcoXzd8fFlJKSxzdHJpbmc6bmV3IHg3fX0sd3kucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBkYWUoZCl7dmFyIGc9ZTQo''@;'; put 'put ''dGhpcyxkKS5kZWxldGUoZCk7cmV0dXJuIHRoaXMuc2l6ZS09Zz8xOjAsZ30sd3kucHJvdG90eXBlLmdldD1mdW5jdGlvbiBUUShkKXtyZXR1cm4gZTQodGhpcyxkKS5nZXQoZCl9LHd5LnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24gcGFlKGQpe3JldHVybiBlNCh0aGlzLGQpLmhhcyhkKX0sd3ku''@;'; put 'put ''cHJvdG90eXBlLnNldD1mdW5jdGlvbiBtYWUoZCxnKXt2YXIgaD1lNCh0aGlzLGQpLHY9aC5zaXplO3JldHVybiBoLnNldChkLGcpLHRoaXMuc2l6ZSs9aC5zaXplPT12PzA6MSx0aGlzfTtjb25zdCBBYWU9d3k7ZnVuY3Rpb24gWDYoZCl7dmFyIGc9dGhpcy5fX2RhdGFfXz1uZXcgWUkoZCk7''@;'; put 'put ''dGhpcy5zaXplPWcuc2l6ZX1YNi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24gVUkoKXt0aGlzLl9fZGF0YV9fPW5ldyBZSSx0aGlzLnNpemU9MH0sWDYucHJvdG90eXBlLmRlbGV0ZT1mdW5jdGlvbiBRSShkKXt2YXIgZz10aGlzLl9fZGF0YV9fLGg9Zy5kZWxldGUoZCk7cmV0dXJuIHRoaXMu''@;'; put 'put ''c2l6ZT1nLnNpemUsaH0sWDYucHJvdG90eXBlLmdldD1mdW5jdGlvbiBHb2UoZCl7cmV0dXJuIHRoaXMuX19kYXRhX18uZ2V0KGQpfSxYNi5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uIHNRKGQpe3JldHVybiB0aGlzLl9fZGF0YV9fLmhhcyhkKX0sWDYucHJvdG90eXBlLnNldD1mdW5jdGlvbiBK''@;'; put 'put ''NihkLGcpe3ZhciBoPXRoaXMuX19kYXRhX187aWYoaCBpbnN0YW5jZW9mIFlJKXt2YXIgdj1oLl9fZGF0YV9fO2lmKCFfN3x8di5sZW5ndGg8MTk5KXJldHVybiB2LnB1c2goW2QsZ10pLHRoaXMuc2l6ZT0rK2guc2l6ZSx0aGlzO2g9dGhpcy5fX2RhdGFfXz1uZXcgQWFlKHYpfXJldHVybiBo''@;'; put 'put ''LnNldChkLGcpLHRoaXMuc2l6ZT1oLnNpemUsdGhpc307Y29uc3QgTFE9WDY7dmFyIHdhZT1mdW5jdGlvbigpe3RyeXt2YXIgZD1xZChPYmplY3QsImRlZmluZVByb3BlcnR5Iik7cmV0dXJuIGQoe30sIiIse30pLGR9Y2F0Y2goZyl7fX0oKTtjb25zdCBSUT13YWUsZU49ZnVuY3Rpb24gYmFl''@;'; put 'put ''KGQsZyxoKXsiX19wcm90b19fIj09ZyYmUlE/UlEoZCxnLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpoLHdyaXRhYmxlOiEwfSk6ZFtnXT1ofTt2YXIgYnk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBCUT1mdW5jdGlvbiBkayhkLGcsaCl7dmFy''@;'; put 'put ''IHY9ZFtnXTsoIWJ5LmNhbGwoZCxnKXx8IW9RKHYsaCl8fHZvaWQgMD09PWgmJiEoZyBpbiBkKSkmJmVOKGQsZyxoKX0scGs9ZnVuY3Rpb24gQ2FlKGQsZyxoLHYpe3ZhciB5PSFoO2h8fChoPXt9KTtmb3IodmFyIEM9LTEsST1nLmxlbmd0aDsrK0M8STspe3ZhciBaPWdbQ10sdWU9dj92KGhb''@;'; put 'put ''Wl0sZFtaXSxaLGgsZCk6dm9pZCAwO3ZvaWQgMD09PXVlJiYodWU9ZFtaXSkseT9lTihoLFosdWUpOkJRKGgsWix1ZSl9cmV0dXJuIGh9LHQ0PWZ1bmN0aW9uIFBRKGQpe3JldHVybiBudWxsIT1kJiYib2JqZWN0Ij09dHlwZW9mIGR9LEZRPWZ1bmN0aW9uIE1hZShkKXtyZXR1cm4gdDQoZCkm''@;'; put 'put ''JiJbb2JqZWN0IEFyZ3VtZW50c10iPT1WMChkKX07dmFyIEhRPU9iamVjdC5wcm90b3R5cGUsdE49SFEuaGFzT3duUHJvcGVydHksTlE9SFEucHJvcGVydHlJc0VudW1lcmFibGUsRWFlPUZRKGZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50c30oKSk/RlE6ZnVuY3Rpb24oZCl7cmV0dXJuIHQ0''@;'; put 'put ''KGQpJiZ0Ti5jYWxsKGQsImNhbGxlZSIpJiYhTlEuY2FsbChkLCJjYWxsZWUiKX07Y29uc3Qgbk49RWFlLCRJPUFycmF5LmlzQXJyYXk7dmFyIGpRPSJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmZXhwb3J0cyYmIWV4cG9ydHMubm9kZVR5cGUmJmV4cG9ydHMsX3k9alEmJiJvYmplY3QiPT10''@;'; put 'put ''eXBlb2YgbW9kdWxlJiZtb2R1bGUmJiFtb2R1bGUubm9kZVR5cGUmJm1vZHVsZSx6UT1feSYmX3kuZXhwb3J0cz09PWpRP2RwLkJ1ZmZlcjp2b2lkIDA7Y29uc3QgaU49KHpRP3pRLmlzQnVmZmVyOnZvaWQgMCl8fGZ1bmN0aW9uIFZRKCl7cmV0dXJuITF9O3ZhciBJYWU9L14oPzowfFsxLTld''@;'; put 'put ''XGQqKSQvO2NvbnN0IFlRPWZ1bmN0aW9uIFdRKGQsZyl7dmFyIGg9dHlwZW9mIGQ7cmV0dXJuISEoZz1udWxsPT1nPzkwMDcxOTkyNTQ3NDA5OTE6ZykmJigibnVtYmVyIj09aHx8InN5bWJvbCIhPWgmJklhZS50ZXN0KGQpKSYmZD4tMSYmZCUxPT0wJiZkPGd9LEs1PWZ1bmN0aW9uIExhZShk''@;'; put 'put ''KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGQmJmQ+LTEmJmQlMT09MCYmZDw9OTAwNzE5OTI1NDc0MDk5MX07dmFyIGoyPXt9O2oyWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1qMlsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09ajJbIltvYmplY3QgSW50OEFycmF5XSJdPWoyWyJbb2JqZWN0''@;'; put 'put ''IEludDE2QXJyYXldIl09ajJbIltvYmplY3QgSW50MzJBcnJheV0iXT1qMlsiW29iamVjdCBVaW50OEFycmF5XSJdPWoyWyJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSJdPWoyWyJbb2JqZWN0IFVpbnQxNkFycmF5XSJdPWoyWyJbb2JqZWN0IFVpbnQzMkFycmF5XSJdPSEwLGoyWyJbb2Jq''@;'; put 'put ''ZWN0IEFyZ3VtZW50c10iXT1qMlsiW29iamVjdCBBcnJheV0iXT1qMlsiW29iamVjdCBBcnJheUJ1ZmZlcl0iXT1qMlsiW29iamVjdCBCb29sZWFuXSJdPWoyWyJbb2JqZWN0IERhdGFWaWV3XSJdPWoyWyJbb2JqZWN0IERhdGVdIl09ajJbIltvYmplY3QgRXJyb3JdIl09ajJbIltvYmplY3Qg''@;'; put 'put ''RnVuY3Rpb25dIl09ajJbIltvYmplY3QgTWFwXSJdPWoyWyJbb2JqZWN0IE51bWJlcl0iXT1qMlsiW29iamVjdCBPYmplY3RdIl09ajJbIltvYmplY3QgUmVnRXhwXSJdPWoyWyJbb2JqZWN0IFNldF0iXT1qMlsiW29iamVjdCBTdHJpbmddIl09ajJbIltvYmplY3QgV2Vha01hcF0iXT0hMTtj''@;'; put 'put ''b25zdCBTeT1mdW5jdGlvbiBzTihkKXtyZXR1cm4gZnVuY3Rpb24oZyl7cmV0dXJuIGQoZyl9fTt2YXIgdU49Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiZleHBvcnRzJiYhZXhwb3J0cy5ub2RlVHlwZSYmZXhwb3J0cyxxNT11TiYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJm1vZHVsZSYm''@;'; put 'put ''IW1vZHVsZS5ub2RlVHlwZSYmbW9kdWxlLGVEPXE1JiZxNS5leHBvcnRzPT09dU4mJnVRLnByb2Nlc3M7Y29uc3QgTXk9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHE1JiZxNS5yZXF1aXJlJiZxNS5yZXF1aXJlKCJ1dGlsIikudHlwZXN8fGVEJiZlRC5iaW5kaW5nJiZlRC5iaW5kaW5nKCJ1dGls''@;'; put 'put ''Iil9Y2F0Y2goZyl7fX0oKTt2YXIgRXk9TXkmJk15LmlzVHlwZWRBcnJheTtjb25zdCBlSj1FeT9TeShFeSk6ZnVuY3Rpb24gV2FlKGQpe3JldHVybiB0NChkKSYmSzUoZC5sZW5ndGgpJiYhIWoyW1YwKGQpXX07dmFyIFVhZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0''@;'; put 'put ''IHRKPWZ1bmN0aW9uIFFhZShkLGcpe3ZhciBoPSRJKGQpLHY9IWgmJm5OKGQpLHk9IWgmJiF2JiZpTihkKSxDPSFoJiYhdiYmIXkmJmVKKGQpLEk9aHx8dnx8eXx8QyxaPUk/ZnVuY3Rpb24gbXZlKGQsZyl7Zm9yKHZhciBoPS0xLHY9QXJyYXkoZCk7KytoPGQ7KXZbaF09ZyhoKTtyZXR1cm4g''@;'; put 'put ''dn0oZC5sZW5ndGgsU3RyaW5nKTpbXSx1ZT1aLmxlbmd0aDtmb3IodmFyIF9lIGluIGQpKGd8fFVhZS5jYWxsKGQsX2UpKSYmKCFJfHwhKCJsZW5ndGgiPT1fZXx8eSYmKCJvZmZzZXQiPT1fZXx8InBhcmVudCI9PV9lKXx8QyYmKCJidWZmZXIiPT1fZXx8ImJ5dGVMZW5ndGgiPT1fZXx8ImJ5''@;'; put 'put ''dGVPZmZzZXQiPT1fZSl8fFlRKF9lLHVlKSkpJiZaLnB1c2goX2UpO3JldHVybiBafTt2YXIgSmFlPU9iamVjdC5wcm90b3R5cGU7Y29uc3QgY049ZnVuY3Rpb24gWGFlKGQpe3ZhciBnPWQmJmQuY29uc3RydWN0b3I7cmV0dXJuIGQ9PT0oImZ1bmN0aW9uIj09dHlwZW9mIGcmJmcucHJvdG90''@;'; put 'put ''eXBlfHxKYWUpfSxuSj1mdW5jdGlvbiBLYWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGQoZyhoKSl9fSxySj1uSihPYmplY3Qua2V5cyxPYmplY3QpO3ZhciBpSj1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IGZOPWZ1bmN0aW9uIG9KKGQpe3JldHVybiBu''@;'; put 'put ''dWxsIT1kJiZLNShkLmxlbmd0aCkmJiFXSChkKX0seHk9ZnVuY3Rpb24gbmxlKGQpe3JldHVybiBmTihkKT90SihkKTpmdW5jdGlvbiBlbGUoZCl7aWYoIWNOKGQpKXJldHVybiBySihkKTt2YXIgZz1bXTtmb3IodmFyIGggaW4gT2JqZWN0KGQpKWlKLmNhbGwoZCxoKSYmImNvbnN0cnVjdG9y''@;'; put 'put ''IiE9aCYmZy5wdXNoKGgpO3JldHVybiBnfShkKX07dmFyIGFsZT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2NvbnN0IGROPWZ1bmN0aW9uIGhOKGQpe2lmKCFoayhkKSlyZXR1cm4gZnVuY3Rpb24gaWxlKGQpe3ZhciBnPVtdO2lmKG51bGwhPWQpZm9yKHZhciBoIGluIE9iamVj''@;'; put 'put ''dChkKSlnLnB1c2goaCk7cmV0dXJuIGd9KGQpO3ZhciBnPWNOKGQpLGg9W107Zm9yKHZhciB2IGluIGQpImNvbnN0cnVjdG9yIj09diYmKGd8fCFhbGUuY2FsbChkLHYpKXx8aC5wdXNoKHYpO3JldHVybiBofSxwTj1mdW5jdGlvbiBBdShkKXtyZXR1cm4gZk4oZCk/dEooZCwhMCk6ZE4oZCl9''@;'; put 'put ''O3ZhciBnTj0ib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJmV4cG9ydHMmJiFleHBvcnRzLm5vZGVUeXBlJiZleHBvcnRzLG1OPWdOJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmbW9kdWxlJiYhbW9kdWxlLm5vZGVUeXBlJiZtb2R1bGUsbEo9bU4mJm1OLmV4cG9ydHM9PT1nTj9kcC5CdWZm''@;'; put 'put ''ZXI6dm9pZCAwLGlEPWxKP2xKLmFsbG9jVW5zYWZlOnZvaWQgMDtjb25zdCB2az1mdW5jdGlvbiB2Tigpe3JldHVybltdfTt2YXIgdUo9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxjSj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzLGNsZT1jSj9mdW5jdGlvbihk''@;'; put 'put ''KXtyZXR1cm4gbnVsbD09ZD9bXTooZD1PYmplY3QoZCksZnVuY3Rpb24gb0QoZCxnKXtmb3IodmFyIGg9LTEsdj1udWxsPT1kPzA6ZC5sZW5ndGgseT0wLEM9W107KytoPHY7KXt2YXIgST1kW2hdO2coSSxoLGQpJiYoQ1t5KytdPUkpfXJldHVybiBDfShjSihkKSxmdW5jdGlvbihnKXtyZXR1''@;'; put 'put ''cm4gdUouY2FsbChkLGcpfSkpfTp2aztjb25zdCB0Zz1jbGUsQU49ZnVuY3Rpb24gYUQoZCxnKXtmb3IodmFyIGg9LTEsdj1nLmxlbmd0aCx5PWQubGVuZ3RoOysraDx2OylkW3kraF09Z1toXTtyZXR1cm4gZH0seU49bkooT2JqZWN0LmdldFByb3RvdHlwZU9mLE9iamVjdCk7dmFyIGRsZT1P''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKGQpe2Zvcih2YXIgZz1bXTtkOylBTihnLHRnKGQpKSxkPXlOKGQpO3JldHVybiBnfTp2aztjb25zdCBmSj1kbGUsbEQ9ZnVuY3Rpb24gZ2xlKGQsZyxoKXt2YXIgdj1nKGQpO3JldHVybiAkSShkKT92OkFOKHYsaChkKSl9LHZs''@;'; put 'put ''ZT1mdW5jdGlvbiBtbGUoZCl7cmV0dXJuIGxEKGQseHksdGcpfSx5bGU9ZnVuY3Rpb24gQWxlKGQpe3JldHVybiBsRChkLHBOLGZKKX0sYk49cWQoZHAsIkRhdGFWaWV3IiksX049cWQoZHAsIlByb21pc2UiKSx1RD1xZChkcCwiU2V0IiksRDc9cWQoZHAsIldlYWtNYXAiKTt2YXIgY0Q9Iltv''@;'; put 'put ''YmplY3QgTWFwXSIsTWw9IltvYmplY3QgUHJvbWlzZV0iLENOPSJbb2JqZWN0IFNldF0iLHYyPSJbb2JqZWN0IFdlYWtNYXBdIixCYT0iW29iamVjdCBEYXRhVmlld10iLHBKPVE2KGJOKSx0MT1RNihfNyksbmc9UTYoX04pLGcxPVE2KHVEKSxmRD1RNihENykscmc9VjA7KGJOJiZyZyhuZXcg''@;'; put 'put ''Yk4obmV3IEFycmF5QnVmZmVyKDEpKSkhPUJhfHxfNyYmcmcobmV3IF83KSE9Y0R8fF9OJiZyZyhfTi5yZXNvbHZlKCkpIT1NbHx8dUQmJnJnKG5ldyB1RCkhPUNOfHxENyYmcmcobmV3IEQ3KSE9djIpJiYocmc9ZnVuY3Rpb24oZCl7dmFyIGc9VjAoZCksaD0iW29iamVjdCBPYmplY3RdIj09''@;'; put 'put ''Zz9kLmNvbnN0cnVjdG9yOnZvaWQgMCx2PWg/UTYoaCk6IiI7aWYodilzd2l0Y2godil7Y2FzZSBwSjpyZXR1cm4gQmE7Y2FzZSB0MTpyZXR1cm4gY0Q7Y2FzZSBuZzpyZXR1cm4gTWw7Y2FzZSBnMTpyZXR1cm4gQ047Y2FzZSBmRDpyZXR1cm4gdjJ9cmV0dXJuIGd9KTtjb25zdCBrTj1yZzt2''@;'; put 'put ''YXIgd3U9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtjb25zdCBnSj1kcC5VaW50OEFycmF5LHBEPWZ1bmN0aW9uIFNOKGQpe3ZhciBnPW5ldyBkLmNvbnN0cnVjdG9yKGQuYnl0ZUxlbmd0aCk7cmV0dXJuIG5ldyBnSihnKS5zZXQobmV3IGdKKGQpKSxnfTt2YXIgTDc9L1x3KiQv''@;'; put 'put ''O3ZhciBFTj13Nz93Ny5wcm90b3R5cGU6dm9pZCAwLHhOPUVOP0VOLnZhbHVlT2Y6dm9pZCAwO2NvbnN0IG9nPWZ1bmN0aW9uIExsZShkLGcsaCl7dmFyIHY9ZC5jb25zdHJ1Y3Rvcjtzd2l0Y2goZyl7Y2FzZSJbb2JqZWN0IEFycmF5QnVmZmVyXSI6cmV0dXJuIHBEKGQpO2Nhc2UiW29iamVj''@;'; put 'put ''dCBCb29sZWFuXSI6Y2FzZSJbb2JqZWN0IERhdGVdIjpyZXR1cm4gbmV3IHYoK2QpO2Nhc2UiW29iamVjdCBEYXRhVmlld10iOnJldHVybiBmdW5jdGlvbiBrbGUoZCxnKXt2YXIgaD1nP3BEKGQuYnVmZmVyKTpkLmJ1ZmZlcjtyZXR1cm4gbmV3IGQuY29uc3RydWN0b3IoaCxkLmJ5dGVPZmZz''@;'; put 'put ''ZXQsZC5ieXRlTGVuZ3RoKX0oZCxoKTtjYXNlIltvYmplY3QgRmxvYXQzMkFycmF5XSI6Y2FzZSJbb2JqZWN0IEZsb2F0NjRBcnJheV0iOmNhc2UiW29iamVjdCBJbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgSW50MTZBcnJheV0iOmNhc2UiW29iamVjdCBJbnQzMkFycmF5XSI6Y2FzZSJbb2Jq''@;'; put 'put ''ZWN0IFVpbnQ4QXJyYXldIjpjYXNlIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjpjYXNlIltvYmplY3QgVWludDE2QXJyYXldIjpjYXNlIltvYmplY3QgVWludDMyQXJyYXldIjpyZXR1cm4gZnVuY3Rpb24gTzcoZCxnKXt2YXIgaD1nP3BEKGQuYnVmZmVyKTpkLmJ1ZmZlcjtyZXR1cm4g''@;'; put 'put ''bmV3IGQuY29uc3RydWN0b3IoaCxkLmJ5dGVPZmZzZXQsZC5sZW5ndGgpfShkLGgpO2Nhc2UiW29iamVjdCBNYXBdIjpjYXNlIltvYmplY3QgU2V0XSI6cmV0dXJuIG5ldyB2O2Nhc2UiW29iamVjdCBOdW1iZXJdIjpjYXNlIltvYmplY3QgU3RyaW5nXSI6cmV0dXJuIG5ldyB2KGQpO2Nhc2Ui''@;'; put 'put ''W29iamVjdCBSZWdFeHBdIjpyZXR1cm4gZnVuY3Rpb24gTU4oZCl7dmFyIGc9bmV3IGQuY29uc3RydWN0b3IoZC5zb3VyY2UsTDcuZXhlYyhkKSk7cmV0dXJuIGcubGFzdEluZGV4PWQubGFzdEluZGV4LGd9KGQpO2Nhc2UiW29iamVjdCBTeW1ib2xdIjpyZXR1cm4gZnVuY3Rpb24gdkooZCl7''@;'; put 'put ''cmV0dXJuIHhOP09iamVjdCh4Ti5jYWxsKGQpKTp7fX0oZCl9fTt2YXIgT049T2JqZWN0LmNyZWF0ZSxhZz1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoKXt9cmV0dXJuIGZ1bmN0aW9uKGcpe2lmKCFoayhnKSlyZXR1cm57fTtpZihPTilyZXR1cm4gT04oZyk7ZC5wcm90b3R5cGU9Zzt2YXIgaD1u''@;'; put 'put ''ZXcgZDtyZXR1cm4gZC5wcm90b3R5cGU9dm9pZCAwLGh9fSgpO2NvbnN0IHlEPWFnO3ZhciBCTj1NeSYmTXkuaXNNYXA7Y29uc3QgQ0o9Qk4/U3koQk4pOmZ1bmN0aW9uIFJOKGQpe3JldHVybiB0NChkKSYmIltvYmplY3QgTWFwXSI9PWtOKGQpfTt2YXIga0o9TXkmJk15LmlzU2V0O2NvbnN0''@;'; put 'put ''IEhsZT1rSj9TeShrSik6ZnVuY3Rpb24gUGxlKGQpe3JldHVybiB0NChkKSYmIltvYmplY3QgU2V0XSI9PWtOKGQpfTt2YXIgd0Q9IltvYmplY3QgQXJndW1lbnRzXSIsRk49IltvYmplY3QgRnVuY3Rpb25dIixFSj0iW29iamVjdCBPYmplY3RdIixBMj17fTtBMlt3RF09QTJbIltvYmplY3Qg''@;'; put 'put ''QXJyYXldIl09QTJbIltvYmplY3QgQXJyYXlCdWZmZXJdIl09QTJbIltvYmplY3QgRGF0YVZpZXddIl09QTJbIltvYmplY3QgQm9vbGVhbl0iXT1BMlsiW29iamVjdCBEYXRlXSJdPUEyWyJbb2JqZWN0IEZsb2F0MzJBcnJheV0iXT1BMlsiW29iamVjdCBGbG9hdDY0QXJyYXldIl09QTJbIltv''@;'; put 'put ''YmplY3QgSW50OEFycmF5XSJdPUEyWyJbb2JqZWN0IEludDE2QXJyYXldIl09QTJbIltvYmplY3QgSW50MzJBcnJheV0iXT1BMlsiW29iamVjdCBNYXBdIl09QTJbIltvYmplY3QgTnVtYmVyXSJdPUEyW0VKXT1BMlsiW29iamVjdCBSZWdFeHBdIl09QTJbIltvYmplY3QgU2V0XSJdPUEyWyJb''@;'; put 'put ''b2JqZWN0IFN0cmluZ10iXT1BMlsiW29iamVjdCBTeW1ib2xdIl09QTJbIltvYmplY3QgVWludDhBcnJheV0iXT1BMlsiW29iamVjdCBVaW50OENsYW1wZWRBcnJheV0iXT1BMlsiW29iamVjdCBVaW50MTZBcnJheV0iXT1BMlsiW29iamVjdCBVaW50MzJBcnJheV0iXT0hMCxBMlsiW29iamVj''@;'; put 'put ''dCBFcnJvcl0iXT1BMltGTl09QTJbIltvYmplY3QgV2Vha01hcF0iXT0hMTtjb25zdCBOTj1mdW5jdGlvbiBfayhkLGcsaCx2LHksQyl7dmFyIEksWj0xJmcsdWU9MiZnLF9lPTQmZztpZihoJiYoST15P2goZCx2LHksQyk6aChkKSksdm9pZCAwIT09SSlyZXR1cm4gSTtpZighaGsoZCkpcmV0''@;'; put 'put ''dXJuIGQ7dmFyIEJlPSRJKGQpO2lmKEJlKXtpZihJPWZ1bmN0aW9uIF9sZShkKXt2YXIgZz1kLmxlbmd0aCxoPW5ldyBkLmNvbnN0cnVjdG9yKGcpO3JldHVybiBnJiYic3RyaW5nIj09dHlwZW9mIGRbMF0mJnd1LmNhbGwoZCwiaW5kZXgiKSYmKGguaW5kZXg9ZC5pbmRleCxoLmlucHV0PWQu''@;'; put 'put ''aW5wdXQpLGh9KGQpLCFaKXJldHVybiBmdW5jdGlvbiBzbGUoZCxnKXt2YXIgaD0tMSx2PWQubGVuZ3RoO2ZvcihnfHwoZz1BcnJheSh2KSk7KytoPHY7KWdbaF09ZFtoXTtyZXR1cm4gZ30oZCxJKX1lbHNle3ZhciBOZT1rTihkKSxLZT1OZT09Rk58fCJbb2JqZWN0IEdlbmVyYXRvckZ1bmN0''@;'; put 'put ''aW9uXSI9PU5lO2lmKGlOKGQpKXJldHVybiBmdW5jdGlvbiBsbGUoZCxnKXtpZihnKXJldHVybiBkLnNsaWNlKCk7dmFyIGg9ZC5sZW5ndGgsdj1pRD9pRChoKTpuZXcgZC5jb25zdHJ1Y3RvcihoKTtyZXR1cm4gZC5jb3B5KHYpLHZ9KGQsWik7aWYoTmU9PUVKfHxOZT09d0R8fEtlJiYheSl7''@;'; put 'put ''aWYoST11ZXx8S2U/e306ZnVuY3Rpb24gWjIoZCl7cmV0dXJuImZ1bmN0aW9uIiE9dHlwZW9mIGQuY29uc3RydWN0b3J8fGNOKGQpP3t9OnlEKHlOKGQpKX0oZCksIVopcmV0dXJuIHVlP2Z1bmN0aW9uIGhKKGQsZyl7cmV0dXJuIHBrKGQsZkooZCksZyl9KGQsZnVuY3Rpb24gSjMoZCxnKXty''@;'; put 'put ''ZXR1cm4gZCYmcGsoZyxwTihnKSxkKX0oSSxkKSk6ZnVuY3Rpb24gZmxlKGQsZyl7cmV0dXJuIHBrKGQsdGcoZCksZyl9KGQsZnVuY3Rpb24gcmxlKGQsZyl7cmV0dXJuIGQmJnBrKGcseHkoZyksZCl9KEksZCkpfWVsc2V7aWYoIUEyW05lXSlyZXR1cm4geT9kOnt9O0k9b2coZCxOZSxaKX19''@;'; put 'put ''Q3x8KEM9bmV3IExRKTt2YXIgcHQ9Qy5nZXQoZCk7aWYocHQpcmV0dXJuIHB0O0Muc2V0KGQsSSksSGxlKGQpP2QuZm9yRWFjaChmdW5jdGlvbihmbil7SS5hZGQoX2soZm4sZyxoLGZuLGQsQykpfSk6Q0ooZCkmJmQuZm9yRWFjaChmdW5jdGlvbihmbixMbil7SS5zZXQoTG4sX2soZm4sZyxo''@;'; put 'put ''LExuLGQsQykpfSk7dmFyICR0PUJlP3ZvaWQgMDooX2U/dWU/eWxlOnZsZTp1ZT9wTjp4eSkoZCk7cmV0dXJuIGZ1bmN0aW9uIE9RKGQsZyl7Zm9yKHZhciBoPS0xLHY9bnVsbD09ZD8wOmQubGVuZ3RoOysraDx2JiYhMSE9PWcoZFtoXSxoLGQpOyk7fSgkdHx8ZCxmdW5jdGlvbihmbixMbil7''@;'; put 'put ''JHQmJihmbj1kW0xuPWZuXSksQlEoSSxMbixfayhmbixnLGgsTG4sZCxDKSl9KSxJfTt2YXIgbnNlPUwoOTQ5Myk7bGV0IFhjPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLnNob3duTGlicmFyaWVzPTUwLHRoaXMubG9hZE1vcmVDb3VudD01MCx0aGlzLmlzTWljcm9zb2Z0PSEx''@;'; put 'put ''LHRoaXMuaXNNaWNyb3NvZnQ9dGhpcy5pc0lFb3JFREdFKCksY29uc29sZS5sb2coIklzIElFIG9yIEVkZ2U/Iix0aGlzLmlzTWljcm9zb2Z0KX1jb252ZXJ0SnNEYXRlVG9TYXNEYXRlKGgsdj0iZGF5cyIpe2xldCB5LEM9MDt5PWggaW5zdGFuY2VvZiBEYXRlP2g6bmV3IERhdGUoaCksQz1u''@;'; put 'put ''ZXcgRGF0ZShEYXRlLlVUQyh5LmdldEZ1bGxZZWFyKCkseS5nZXRNb250aCgpLHkuZ2V0RGF0ZSgpLHkuZ2V0SG91cnMoKSx5LmdldE1pbnV0ZXMoKSx5LmdldFNlY29uZHMoKSkpLnZhbHVlT2YoKTtjb25zdCB1ZT1DKzMxNTYxOTJlNTtzd2l0Y2godil7Y2FzZSJkYXlzIjp7bGV0IF9lPXVl''@;'; put 'put ''Lzg2NGU1O3JldHVybiBfZT1NYXRoLmFicyhfZSksX2U9TWF0aC5mbG9vcihfZSksX2V9Y2FzZSJzZWNvbmRzIjpyZXR1cm4gdWUvMWUzfXJldHVybiAwfWNvbnZlcnRTYXNEYXlzVG9Kc0RhdGUoaCx2PSJkYXlzIil7aWYoIm51bWJlciIhPXR5cGVvZiBoJiYoaD1wYXJzZUZsb2F0KGgpKSwi''@;'; put 'put ''c2Vjb25kcyI9PT12KXtsZXQgWj0xZTMqaC0zMTU2MTkyZTU7cmV0dXJuIForPTYwKm5ldyBEYXRlKFopLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzLG5ldyBEYXRlKFopfXJldHVybiBuZXcgRGF0ZSg4NjRlNSpoLTMxNTYxOTJlNSl9dHJlZU9uRmlsdGVyKGgsdil7bGV0IHk9aC5zZWFyY2hT''@;'; put 'put ''dHJpbmc/aC5zZWFyY2hTdHJpbmc6IiIsQz12LnNwbGl0KCIuIilbMF0sST12LnNwbGl0KCIuIilbMV0sWj1DKyJBbGwiO2hbQ10mJihoW1pdfHwoaFtaXT10aGlzLmRlZXBDbG9uZShoW0NdKSksaFtDXT10aGlzLmRlZXBDbG9uZShoW1pdKSx5Lmxlbmd0aD4wJiYoaFtDXT1oW0NdLmZpbHRl''@;'; put 'put ''cihJP3VlPT51ZVtJXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHkudG9Mb3dlckNhc2UoKSk6dWU9PnVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoeS50b0xvd2VyQ2FzZSgpKSkpKX1saWJyYXJ5T25GaWx0ZXIoaCx2LHkpe3YubGVuZ3RoPjA/aC5mb3JFYWNoKEM9PntDW3ldLnRvTG93ZXJD''@;'; put 'put ''YXNlKCkuaW5jbHVkZXModi50b0xvd2VyQ2FzZSgpKT8oQy5oaWRkZW49ITEsQy5pbkZvcmVncm91bmQ9ITApOihDLmhpZGRlbj0hMCxDLmluRm9yZWdyb3VuZD0hMSl9KToodGhpcy5yZXNldEFycmF5RmlsdGVyKGgpLHRoaXMuZGlzcGxheUxpYnJhcmllcyhoKSl9ZGlzcGxheUxpYnJhcmll''@;'; put 'put ''cyhoLHYpe3Y/dGhpcy5zaG93bkxpYnJhcmllcys9dGhpcy5sb2FkTW9yZUNvdW50Oih0aGlzLnNob3duTGlicmFyaWVzPTUwLHRoaXMucmVzZXRMaWJyYXJ5Rm9yZWdyb3VuZChoKSk7Zm9yKGxldCB5PTA7eTxoLmxlbmd0aCYmeSE9PXRoaXMuc2hvd25MaWJyYXJpZXM7eSsrKWhbeV0uaW5G''@;'; put 'put ''b3JlZ3JvdW5kPSEwfXJlc2V0TGlicmFyeUZvcmVncm91bmQoaCl7Zm9yKGxldCB2PTA7djxoLmxlbmd0aDt2KyspaFt2XS5pbkZvcmVncm91bmQ9ITF9bWV0YU9iamVjdE9uRmlsdGVyKGgsdix5KXt2Lmxlbmd0aD4wPyh0aGlzLnJlc2V0QXJyYXlGaWx0ZXIoaCksaC5mb3JFYWNoKEM9PntD''@;'; put 'put ''W3ldLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModi50b0xvd2VyQ2FzZSgpKXx8KEMuaGlkZGVuPSEwKX0pKTp0aGlzLnJlc2V0QXJyYXlGaWx0ZXIoaCl9cmVzZXRBcnJheUZpbHRlcihoKXtoLmZvckVhY2godj0+e3YuaGlkZGVuPSExLHYuaW5Gb3JlZ3JvdW5kJiZkZWxldGUgdi5pbkZvcmVn''@;'; put 'put ''cm91bmR9KX1pc0lFb3JFREdFKCl7dmFyIGg9d2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQ7cmV0dXJuIGguaW5kZXhPZigiTVNJRSAiKT4wfHwoaC5pbmRleE9mKCJUcmlkZW50LyIpPjA/KGguaW5kZXhPZigicnY6IiksITApOmguaW5kZXhPZigiRWRnZS8iKT4wKX1jb252ZXJ0T2JqZWN0''@;'; put 'put ''c1RvQXJyYXkoaCx2PSExKXtyZXR1cm4gdiYmKGg9dGhpcy5kZWVwQ2xvbmUoaCkpLGgubWFwKHk9Pk9iamVjdC5rZXlzKHkpLm1hcChDPT55W0NdKSl9YWRkTGVhZGluZ1plcm8oaCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBoJiYoaD1oLnRvU3RyaW5nKCkpLGgubGVuZ3RoPDI/IjAiK2g6''@;'; put 'put ''aH1kZWxldGVLZXlzQW5kSGFzaChoLHYseT0hMCl7Y29uc3QgQz15P3RoaXMuZGVlcENsb25lKGgpOmg7Zm9yKGxldCBJIG9mIHYpZGVsZXRlIENbSV07cmV0dXJuIG5zZShKU09OLnN0cmluZ2lmeShDKSkudG9TdHJpbmcoKX1kb3dubG9hZFRleHRGaWxlKGgsdil7Y29uc3QgeT1kb2N1bWVu''@;'; put 'put ''dC5jcmVhdGVFbGVtZW50KCJhIik7eS5zZXRBdHRyaWJ1dGUoImhyZWYiLCJkYXRhOnRleHQvcGxhaW47Y2hhcnNldD11dGYtOCwiK2VuY29kZVVSSUNvbXBvbmVudCh2KSkseS5zZXRBdHRyaWJ1dGUoImRvd25sb2FkIixoKyIudHh0IikseS5zdHlsZS5kaXNwbGF5PSJub25lIixkb2N1bWVu''@;'; put 'put ''dC5ib2R5LmFwcGVuZENoaWxkKHkpLHkuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHkpfWNvbnZlcnRBcnJheVZhbHVlcyhoLHYpe2lmKGgubGVuZ3RoPDEpcmV0dXJuW107c3dpdGNoKHYpe2Nhc2UibnVtYmVyIjpyZXR1cm4gaC5tYXAoeT0+MSp5KTtjYXNlInN0cmluZyI6''@;'; put 'put ''cmV0dXJuIGgudG9TdHJpbmcoKS5zcGxpdCgiLCIpfX1kZWJvdW5jZUNhbGwoaCx2KXtjbGVhclRpbWVvdXQodGhpcy5kZWJvdW5jZVRpbWVvdXQpLHRoaXMuZGVib3VuY2VUaW1lb3V0PXNldFRpbWVvdXQodixoKX1kZWVwQ2xvbmUoaCl7cmV0dXJuIGZ1bmN0aW9uIFZOKGQpe3JldHVybiBO''@;'; put 'put ''TihkLDUpfShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksUjc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYs''@;'; put 'put ''eSxDLEksWil7dGhpcy5hcHBTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuc2FzU2VydmljZT15LHRoaXMubG9nZ2VyU2VydmljZT1DLHRoaXMuaGVscGVyU2VydmljZT1JLHRoaXMucm91dGVyPVosdGhpcy5pc0FwcEFjdGl2YXRlZD1uZXcgZnMobnVsbCksdGhpcy5p''@;'; put 'put ''c0FwcE92ZXJDYXBhY2l0eT1uZXcgZnMoITEpLHRoaXMuY3VycmVudFVzZXJDYW5SZWdpc3Rlcj1uZXcgZnMoITEpLHRoaXMubGljZW5zZUV4cGlyZXNJbkRheXM9bmV3IGZzKG51bGwpLHRoaXMuaXNBcHBEZW1vPW5ldyBmcyghMSksdGhpcy5zeXNzaXRlPW5ldyBmcyhudWxsKSx0aGlzLnJl''@;'; put 'put ''c3RyaWN0RWRpdFJlY29yZD0hMSx0aGlzLmhvdF9saWNlbnNlX2tleT1uZXcgZnModm9pZCAwKSx0aGlzLmRlbW9MaW1pdHM9e30sdGhpcy5saWNlbnNlS2V5RGF0YT1udWxsLHRoaXMuc3Vic2NyaWJlKCksdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSh1ZT0+e3VlIGluc3RhbmNlb2Yg''@;'; put 'put ''RzYmJiIvZGVwbG95Ij09PXVlLnVybCYmdGhpcy5ldmVudFNlcnZpY2Uuc3RhcnR1cERhdGFMb2FkZWQoKX0pfXNhc1NlcnZpY2VJbml0KCl7dGhpcy5zYXNTZXJ2aWNlLnNhc1NlcnZpY2VJbml0KCl9c3Vic2NyaWJlKCl7dGhpcy5zYXNTZXJ2aWNlLmxvYWRTdGFydHVwU2VydmljZUVtaXR0''@;'; put 'put ''ZXIuc3Vic2NyaWJlKCgpPT57dGhpcy5zdGFydFVwRGF0YSgpfSksdGhpcy5zYXNTZXJ2aWNlLmluY29ycmVjdFNpdGVJZEVtaXR0ZXIuc3Vic2NyaWJlKGg9PntudWxsIT09dGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZSYmIXRoaXMuaXNBcHBEZW1vLnZhbHVlJiZ0aGlzLmRlYWN0aXZhdGVB''@;'; put 'put ''cHAoYC9saWNlbnNpbmcva2V5P2Vycm9yPW1pc3NtYXRjaCZtaXNzbWF0Y2hJZD0ke2h9YCl9KSx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdFNpdGVJZEVtaXR0ZXIuc3Vic2NyaWJlKGg9Pnt0aGlzLnBhdGNoU3lzc2l0ZShoKX0pfWdldEhvdExpY2Vuc2VLZXkoKXtyZXR1cm4gdGhpcy5ob3Rf''@;'; put 'put ''bGljZW5zZV9rZXkudmFsdWV9Z2V0TGljZW5zZUtleURhdGEoKXtyZXR1cm4gdGhpcy5saWNlbnNlS2V5RGF0YX1kZWFjdGl2YXRlQXBwKGgpe3RoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksaCYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChoKX1wYXRjaFN5c3NpdGUoaCl7bGV0IHY9''@;'; put 'put ''dGhpcy5zeXNzaXRlLmdldFZhbHVlKCk7diYmKHYuaW5jbHVkZXMoaCl8fCh2LnB1c2goaCksdGhpcy5zeXNzaXRlLm5leHQodikpKX1zdGFydFVwRGF0YSgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IGg9ITE7eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJl''@;'; put 'put ''cXVlc3QoInB1YmxpYy9zdGFydHVwc2VydmljZSIsbnVsbCkudGhlbih2PT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zeXNzaXRlLm5leHQoW3YuU1lTU0lURV0pO2xldCBJLFoseT12LnNhc2RhdGFzZXRzLEM9e307Zm9yKGxldCBOZSBvZiB5KUNbTmUuTElCUkVG''@;'; put 'put ''XXx8KENbTmUuTElCUkVGXT1bXSksQ1tOZS5MSUJSRUZdLnB1c2goTmUuRFNOKTtsZXQgdWU9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShDKSksX2U9W107Zm9yKGxldCBOZSBvZiBPYmplY3Qua2V5cyh1ZSkpX2UucHVzaCh7TElCUkFSWVJFRjpOZSx0YWJsZXM6dWVbTmVdfSk7bGV0IEJl''@;'; put 'put ''PV9lO0k9QyxaPU9iamVjdC5rZXlzKEMpLHZvaWQgMCE9PUkmJihuaS5lZGl0b3IubGlic0FuZFRhYmxlcz1JKSxuaS5lZGl0b3IudHJlZU5vZGVMaWJyYXJpZXM9QmUsbmkuZWRpdG9yLmxpYnJhcmllcz1aLG5pLmVkaXRvci5zdGFydHVwU2V0PSEwLHRoaXMucmVzdHJpY3RFZGl0UmVjb3Jk''@;'; put 'put ''PSJZRVMiPT09di5nbG9idmFyc1swXS5EQ19SRVNUUklDVF9FRElUUkVDT1JELHlpZWxkIHRoaXMubGljZW5zaW5nKHYuZ2xvYnZhcnMsdi5TWVNTSVRFKX0pKS5jYXRjaCh2PT57aD0hMCx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpfSksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZygiQWN0''@;'; put 'put ''aXZhdGVkOiIsdGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZSksaHx8KHRoaXMuZXZlbnRTZXJ2aWNlLnN0YXJ0dXBEYXRhTG9hZGVkKCksdGhpcy5pc0FwcEFjdGl2YXRlZC52YWx1ZT90aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpJiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5''@;'; put 'put ''VXJsKCIvaG9tZSIpOiF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpJiYhdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJsaWNlbnNpbmciKSYmdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9bWlzc2luZyIpKX0pfWxpY2Vuc2luZyhoLHYp''@;'; put 'put ''e3ZhciB5O3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoIWh8fCFoWzBdKXtjb25zdCBJPSdFcnJvciBnZXR0aW5nICJHbG9idmFycyIgZnJvbSBzdGFydHVwc2VydmljZSByZXNwb25zZS4nO3JldHVybiBjb25zb2xlLmVycm9yKEkpLHRoaXMuaXNBcHBBY3Rp''@;'; put 'put ''dmF0ZWQubmV4dCghMSksdm9pZCB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGAvbGljZW5zaW5nL2tleT9lcnJvcj1pbnZhbGlkJmRldGFpbHM9JHtidG9hKEkpfWApfWxldCBDPWhbMF07aWYoQy5MSUNFTkNFX0tFWSYmQy5BQ1RJVkFUSU9OX0tFWSYmbnVsbCE9IUMuUkVHSVNURVJDT1VO''@;'; put 'put ''VCYmbnVsbCE9IUMuSVNSRUdJU1RFUkVEKXRoaXMubGljZW5jZUtleT1DLkxJQ0VOQ0VfS0VZLHRoaXMuYWN0aXZhdGlvbktleT1DLkFDVElWQVRJT05fS0VZLHlpZWxkIHRoaXMuZGVjcnlwdExpY2Vuc2VLZXkoQy5MSUNFTkNFX0tFWSxDLkFDVElWQVRJT05fS0VZKS50aGVuKEk9Pnt0aGlz''@;'; put 'put ''LmFwcGxpY2F0aW9uQWN0aXZhdGlvbihJLEMsdil9LEk9Pntjb25zdCBaPWBFcnJvciBkZWNyeXB0aW5nIGxpY2Vuc2Uga2V5LiAke0l9YDtjb25zb2xlLmVycm9yKEkpLHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMSksdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2xpY2Vuc2luZy9r''@;'; put 'put ''ZXk/ZXJyb3I9aW52YWxpZCZkZXRhaWxzPSR7YnRvYShaKX1gKX0pO2Vsc2V7dGhpcy5kZW1vTGltaXRzPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxqVSksYm9lKTtjb25zdCBJPXtkZW1vOiEwLGhvdF9saWNlbnNlX2tleTpudWxsPT09KHk9dGhpcy5hcHBTdG9yZVNlcnZpY2Uu''@;'; put 'put ''Z2V0RGNBZGFwdGVyU2V0dGluZ3MoKSl8fHZvaWQgMD09PXk/dm9pZCAwOnkuaG90TGljZW5jZUtleSx1c2Vyc19hbGxvd2VkOnRoaXMuZGVtb0xpbWl0cy51c2Vyc19hbGxvd2VkfHwxLHZhbGlkX3VudGlsOiIiLHNpdGVfaWQ6IiIsc2l0ZV9pZF9tdWx0aXBsZTpbXX07dGhpcy5hcHBsaWNh''@;'; put 'put ''dGlvbkFjdGl2YXRpb24oSSxDLHYpfX0pfWFwcGxpY2F0aW9uQWN0aXZhdGlvbihoLHYseSl7aWYoaC5zaXRlX2lkX211bHRpcGxlP3RoaXMuc2FzU2VydmljZS5zZXRMaWNlbnNlU2l0ZUlkKGguc2l0ZV9pZF9tdWx0aXBsZSk6aC5zaXRlX2lkJiZ0aGlzLnNhc1NlcnZpY2Uuc2V0TGljZW5z''@;'; put 'put ''ZVNpdGVJZChoLnNpdGVfaWQpLCFoLmRlbW8pe2xldCB1ZT0hMSxfZT0hMTtpZigoIWguc2l0ZV9pZHx8aC5zaXRlX2lkIT09eSkmJih1ZT0hMCksKCFoLnNpdGVfaWRfbXVsdGlwbGV8fCFoLnNpdGVfaWRfbXVsdGlwbGUuaW5jbHVkZXMoeSkpJiYoX2U9ITApLHVlJiZfZSlyZXR1cm4gY29u''@;'; put 'put ''c29sZS5lcnJvcigiVGhlIGtleSBwcm92aWRlZCBpcyBmb3IgZGlmZmVyZW50IG9yZ2FuaXphdGlvbi4iKSx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpLHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9bWlzc21hdGNoIil9dGhpcy5ob3Rf''@;'; put 'put ''bGljZW5zZV9rZXkubmV4dCh2b2lkIDAhPT1oLmhvdF9saWNlbnNlX2tleT9oLmhvdF9saWNlbnNlX2tleTp0aGlzLmhvdF9saWNlbnNlX2tleS52YWx1ZSk7bGV0IEM9VGwoaC52YWxpZF91bnRpbCwiWVlZWS1NTS1ERCIpLEk9VGwoKSxaPUMuZGlmZihJLCJkYXlzIik7cmV0dXJuIGguZGVt''@;'; put 'put ''byYmKE9iamVjdC5rZXlzKHRoaXMuZGVtb0xpbWl0cykubGVuZ3RoPDEmJih0aGlzLmRlbW9MaW1pdHM9alUpLCEwPT09dGhpcy5kZW1vTGltaXRzLmV4cGlyYXRpb25fZGF0ZV91bmxpbWl0ZWQmJihaPTEvMCksdm9pZCAwIT09dGhpcy5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQmJihoLnVz''@;'; put 'put ''ZXJzX2FsbG93ZWQ9dGhpcy5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQ+LTE/dGhpcy5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQ6aC51c2Vyc19hbGxvd2VkKSksdGhpcy5saWNlbnNlS2V5RGF0YT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGgpLHdpbmRvdy5hcHBpbmZvKCksWjw9''@;'; put 'put ''MD8oY29uc29sZS5lcnJvcigiTGljZW5zZSBrZXkgaGFzIGV4cGlyZWQiKSx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpLHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9rZXk/ZXJyb3I9ZXhwaXJlZCIpKTood2luZG93LmxpY2Vuc2VFeHBpcmVzSW49Wix0''@;'; put 'put ''aGlzLmxpY2Vuc2VFeHBpcmVzSW5EYXlzLm5leHQoWiksdGhpcy5pc0FwcERlbW8ubmV4dCghIWguZGVtbyksdi5SRUdJU1RFUkNPVU5UPmgudXNlcnNfYWxsb3dlZD8oY29uc29sZS53YXJuKCJBcHAgaGFzIG1vcmUgdXNlcnMgcmVnaXN0ZXJlZCB0aGVuIGxpY2Vuc2VkLiIpLHRoaXMuaXNB''@;'; put 'put ''cHBPdmVyQ2FwYWNpdHkubmV4dCghMCkpOnYuUkVHSVNURVJDT1VOVD09PWgudXNlcnNfYWxsb3dlZCYmY29uc29sZS53YXJuKCJBcHAgaGFzIGhpdCBsaW1pdCBvZiB1c2VycyByZWdpc3RlcmVkLiIpLDEhPT12LklTUkVHSVNURVJFRD92LlJFR0lTVEVSQ09VTlQ8aC51c2Vyc19hbGxvd2Vk''@;'; put 'put ''Pyhjb25zb2xlLmxvZygiVXNlciBjYW4gcmVnaXN0ZXIiKSx0aGlzLmN1cnJlbnRVc2VyQ2FuUmVnaXN0ZXIubmV4dCghMCksdGhpcy5pc0FwcEFjdGl2YXRlZC5uZXh0KCExKSx2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9saWNlbnNpbmcvcmVnaXN0ZXIiKSk6KHRoaXMuY3Vy''@;'; put 'put ''cmVudFVzZXJDYW5SZWdpc3Rlci5uZXh0KCExKSx0aGlzLmlzQXBwQWN0aXZhdGVkLm5leHQoITEpLHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2xpY2Vuc2luZy9saW1pdCIpKTp2b2lkIHRoaXMuaXNBcHBBY3RpdmF0ZWQubmV4dCghMCkpfWRlY3J5cHRMaWNlbnNlS2V5KGgs''@;'; put 'put ''dil7cmV0dXJuIG5ldyBQcm9taXNlKCh5LEMpPT5ubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7aWYoIXdpbmRvdy5jcnlwdG98fCF3aW5kb3cuY3J5cHRvLnN1YnRsZSl0cnl7bGV0IEJlPWF0b2IoaC5zcGxpdCgiIikucmV2ZXJzZSgpLmpvaW4oIiIpKTt5KEpTT04ucGFyc2Uo''@;'; put 'put ''QmUpKX1jYXRjaChCZSl7QygiRXJyb3IgcGFyc2luZyBodHRwIGxpY2Vuc2Uga2V5IGRhdGEuICIrQmUpfWxldCBaLEk9eWllbGQgdGhpcy5iYXNlNjRUb0FycmF5QnVmZmVyKGgpLmNhdGNoKEJlPT57QyhCZSl9KTtjb25zdCB1ZT15aWVsZCB0aGlzLmJhc2U2NFRvQXJyYXlCdWZmZXIodiku''@;'; put 'put ''Y2F0Y2goQmU9PntDKEJlKX0pO2lmKCF1ZSlyZXR1cm4gdm9pZCBDKCJNaXNzaW5nIGFjdGl2YXRpb24ga2V5Iik7bGV0IF9lO1o9dWU7dHJ5e19lPXlpZWxkIHdpbmRvdy5jcnlwdG8uc3VidGxlLmltcG9ydEtleSgicGtjczgiLFose25hbWU6IlJTQS1PQUVQIixoYXNoOiJTSEEtMjU2In0s''@;'; put 'put ''ITAsWyJkZWNyeXB0Il0pfWNhdGNoKEJlKXtDKCJVbmFibGUgdG8gaW1wb3J0IGRlY3J5cHRpb24ga2V5OiAiK0JlKX1pZihfZSlpZihJKXRyeXt3aW5kb3cuY3J5cHRvLnN1YnRsZS5kZWNyeXB0KHtuYW1lOiJSU0EtT0FFUCIsaGFzaDp7bmFtZToiU0hBLTI1NiJ9fSxfZSxJKS50aGVuKEJl''@;'; put 'put ''PT57bGV0IE5lPShuZXcgd29lLlRleHREZWNvZGVyKS5kZWNvZGUoQmUpO3RyeXt5KEpTT04ucGFyc2UoTmUpKX1jYXRjaChLZSl7QygiRXJyb3IgcGFyc2luZyBsaWNlbnNlIGtleSBkYXRhLiAiK0tlKX19LEJlPT57QyhCZSl9KX1jYXRjaChCZSl7QyhCZSl9ZWxzZSBDKCJMaWNlbnNlIGtl''@;'; put 'put ''eSBieXRlcyBtaXNzaW5nIik7ZWxzZSBDKCJVbmFibGUgdG8gaW1wb3J0IGRlY3J5cHRpb24ga2V5Iil9KSl9YmFzZTY0VG9BcnJheUJ1ZmZlcihoKXtyZXR1cm4gbmV3IFByb21pc2UoKHYseSk9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt2KFZVLkooaCkpfSkpfWFycmF5''@;'; put 'put ''QnVmZmVyVG9CYXNlNjQoaCl7cmV0dXJuIG5ldyBQcm9taXNlKCh2LHkpPT57dihWVS5jKGgpKX0pfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShzayksQ2kobXUpLENpKGcyKSxDaShzYyksQ2koWGMpLENpKFpsKSl9LGQuXHUwMjc1cHJvdj1B''@;'; put 'put ''aSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgTEp7Y29uc3RydWN0b3IoZyxoKXt0aGlzLmZuPWcsdGhpcy5zdWJzY3JpcHRpb25zPWh9dW5zdWJzY3JpYmUoKXtjb25zdCBnPXRoaXMuc3Vic2NyaXB0aW9ucy5pbmRleE9mKHRoaXMpOy0xIT09ZyYmdGhpcy5z''@;'; put 'put ''dWJzY3JpcHRpb25zLnNwbGljZShnLDEpfX1mdW5jdGlvbiBsZyhkKXtyZXR1cm4gbnVsbCE9ZCYmIm9iamVjdCI9PXR5cGVvZiBkJiYhMD09PWRbIkBAZnVuY3Rpb25hbC9wbGFjZWhvbGRlciJdfWZ1bmN0aW9uIGk0KGQpe3JldHVybiBmdW5jdGlvbiBnKGgpe3JldHVybiAwPT09YXJndW1l''@;'; put 'put ''bnRzLmxlbmd0aHx8bGcoaCk/ZzpkLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gcHAoZCl7cmV0dXJuIGZ1bmN0aW9uIGcoaCx2KXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBnO2Nhc2UgMTpyZXR1cm4gbGcoaCk/ZzppNChmdW5jdGlvbih5KXtyZXR1''@;'; put 'put ''cm4gZChoLHkpfSk7ZGVmYXVsdDpyZXR1cm4gbGcoaCkmJmxnKHYpP2c6bGcoaCk/aTQoZnVuY3Rpb24oeSl7cmV0dXJuIGQoeSx2KX0pOmxnKHYpP2k0KGZ1bmN0aW9uKHkpe3JldHVybiBkKGgseSl9KTpkKGgsdil9fX1jb25zdCBiRD1wcChmdW5jdGlvbihnLGgpe3JldHVybiBoIGluc3Rh''@;'; put 'put ''bmNlb2YgZ3x8bnVsbCE9aCYmKGguY29uc3RydWN0b3I9PT1nfHwiT2JqZWN0Ij09PWcubmFtZSYmIm9iamVjdCI9PXR5cGVvZiBoKX0pO2Z1bmN0aW9uIF9EKGQsZyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChnLGQpfXZhciBPSj1PYmplY3QucHJvdG90''@;'; put 'put ''eXBlLnRvU3RyaW5nO2NvbnN0IHpOPWZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgQXJndW1lbnRzXSI9PT1PSi5jYWxsKGFyZ3VtZW50cyk/ZnVuY3Rpb24oZyl7cmV0dXJuIltvYmplY3QgQXJndW1lbnRzXSI9PT1PSi5jYWxsKGcpfTpmdW5jdGlvbihnKXtyZXR1cm4gX0QoImNhbGxlZSIs''@;'; put 'put ''Zyl9fSgpLEdOPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGcpe3JldHVybiBudWxsIT1nJiZnLmxlbmd0aD49MCYmIltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChnKX07ZnVuY3Rpb24gQ0QoZCl7cmV0dXJuIltvYmplY3QgU3RyaW5nXSI9PT1PYmpl''@;'; put 'put ''Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCl9dmFyIHVnPWk0KGZ1bmN0aW9uKGcpe3JldHVybiBudWxsIT1nJiYiZnVuY3Rpb24iPT10eXBlb2YgZ1siZmFudGFzeS1sYW5kL2VtcHR5Il0/Z1siZmFudGFzeS1sYW5kL2VtcHR5Il0oKTpudWxsIT1nJiZudWxsIT1nLmNvbnN0cnVjdG9y''@;'; put 'put ''JiYiZnVuY3Rpb24iPT10eXBlb2YgZy5jb25zdHJ1Y3RvclsiZmFudGFzeS1sYW5kL2VtcHR5Il0/Zy5jb25zdHJ1Y3RvclsiZmFudGFzeS1sYW5kL2VtcHR5Il0oKTpudWxsIT1nJiYiZnVuY3Rpb24iPT10eXBlb2YgZy5lbXB0eT9nLmVtcHR5KCk6bnVsbCE9ZyYmbnVsbCE9Zy5jb25zdHJ1''@;'; put 'put ''Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIGcuY29uc3RydWN0b3IuZW1wdHk/Zy5jb25zdHJ1Y3Rvci5lbXB0eSgpOkdOKGcpP1tdOkNEKGcpPyIiOmZ1bmN0aW9uIFJKKGQpe3JldHVybiJbb2JqZWN0IE9iamVjdF0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpfShnKT97''@;'; put 'put ''fTp6TihnKT9mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCk6ZnVuY3Rpb24gc2coZCl7dmFyIGc9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpO3JldHVybiJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI9PT1nfHwiW29iamVjdCBJbnQ4QXJyYXldIj09PWd8fCJbb2Jq''@;'; put 'put ''ZWN0IFVpbnQ4QXJyYXldIj09PWd8fCJbb2JqZWN0IEludDE2QXJyYXldIj09PWd8fCJbb2JqZWN0IFVpbnQxNkFycmF5XSI9PT1nfHwiW29iamVjdCBJbnQzMkFycmF5XSI9PT1nfHwiW29iamVjdCBVaW50MzJBcnJheV0iPT09Z3x8IltvYmplY3QgRmxvYXQzMkFycmF5XSI9PT1nfHwiW29i''@;'; put 'put ''amVjdCBGbG9hdDY0QXJyYXldIj09PWd8fCJbb2JqZWN0IEJpZ0ludDY0QXJyYXldIj09PWd8fCJbb2JqZWN0IEJpZ1VpbnQ2NEFycmF5XSI9PT1nfShnKT9nLmNvbnN0cnVjdG9yLmZyb20oIiIpOnZvaWQgMH0pO2NvbnN0IEJKPXVnO2Z1bmN0aW9uIENrKGQpe2Zvcih2YXIgaCxnPVtdOyEo''@;'; put 'put ''aD1kLm5leHQoKSkuZG9uZTspZy5wdXNoKGgudmFsdWUpO3JldHVybiBnfWZ1bmN0aW9uIFdOKGQsZyxoKXtmb3IodmFyIHY9MCx5PWgubGVuZ3RoO3Y8eTspe2lmKGQoZyxoW3ZdKSlyZXR1cm4hMDt2Kz0xfXJldHVybiExfWNvbnN0IFlOPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuaXM/''@;'; put 'put ''T2JqZWN0LmlzOmZ1bmN0aW9uIFBKKGQsZyl7cmV0dXJuIGQ9PT1nPzAhPT1kfHwxL2Q9PTEvZzpkIT1kJiZnIT1nfTt2YXIga0Q9IXt0b1N0cmluZzpudWxsfS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgidG9TdHJpbmciKSxGSj1bImNvbnN0cnVjdG9yIiwidmFsdWVPZiIsImlzUHJvdG90eXBl''@;'; put 'put ''T2YiLCJ0b1N0cmluZyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiaGFzT3duUHJvcGVydHkiLCJ0b0xvY2FsZVN0cmluZyJdLEhKPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5wcm9wZXJ0eUlzRW51bWVyYWJsZSgibGVuZ3RoIil9KCksU0Q9ZnVuY3Rpb24oZyxoKXtmb3IodmFyIHY9''@;'; put 'put ''MDt2PGcubGVuZ3RoOyl7aWYoZ1t2XT09PWgpcmV0dXJuITA7dis9MX1yZXR1cm4hMX07Y29uc3QgUU49aTQoImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5rZXlzfHxISj9mdW5jdGlvbihnKXtpZihPYmplY3QoZykhPT1nKXJldHVybltdO3ZhciBoLHYseT1bXSxDPUhKJiZ6TihnKTtmb3Io''@;'; put 'put ''aCBpbiBnKV9EKGgsZykmJighQ3x8Imxlbmd0aCIhPT1oKSYmKHlbeS5sZW5ndGhdPWgpO2lmKGtEKWZvcih2PUZKLmxlbmd0aC0xO3Y+PTA7KV9EKGg9Rkpbdl0sZykmJiFTRCh5LGgpJiYoeVt5Lmxlbmd0aF09aCksdi09MTtyZXR1cm4geX06ZnVuY3Rpb24oZyl7cmV0dXJuIE9iamVjdChn''@;'; put 'put ''KSE9PWc/W106T2JqZWN0LmtleXMoZyl9KSxWSj1pNChmdW5jdGlvbihnKXtyZXR1cm4gbnVsbD09PWc/Ik51bGwiOnZvaWQgMD09PWc/IlVuZGVmaW5lZCI6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGcpLnNsaWNlKDgsLTEpfSk7ZnVuY3Rpb24gSk4oZCxnLGgsdil7dmFyIHk9''@;'; put 'put ''Q2soZCk7ZnVuY3Rpb24gSShaLHVlKXtyZXR1cm4gWE4oWix1ZSxoLnNsaWNlKCksdi5zbGljZSgpKX1yZXR1cm4hV04oZnVuY3Rpb24oWix1ZSl7cmV0dXJuIVdOKEksdWUsWil9LENrKGcpLHkpfWZ1bmN0aW9uIFhOKGQsZyxoLHYpe2lmKFlOKGQsZykpcmV0dXJuITA7dmFyIHk9VkooZCk7''@;'; put 'put ''aWYoeSE9PVZKKGcpKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkWyJmYW50YXN5LWxhbmQvZXF1YWxzIl18fCJmdW5jdGlvbiI9PXR5cGVvZiBnWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0pcmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGRbImZhbnRhc3ktbGFuZC9lcXVhbHMiXSYm''@;'; put 'put ''ZFsiZmFudGFzeS1sYW5kL2VxdWFscyJdKGcpJiYiZnVuY3Rpb24iPT10eXBlb2YgZ1siZmFudGFzeS1sYW5kL2VxdWFscyJdJiZnWyJmYW50YXN5LWxhbmQvZXF1YWxzIl0oZCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGQuZXF1YWxzfHwiZnVuY3Rpb24iPT10eXBlb2YgZy5lcXVhbHMpcmV0''@;'; put 'put ''dXJuImZ1bmN0aW9uIj09dHlwZW9mIGQuZXF1YWxzJiZkLmVxdWFscyhnKSYmImZ1bmN0aW9uIj09dHlwZW9mIGcuZXF1YWxzJiZnLmVxdWFscyhkKTtzd2l0Y2goeSl7Y2FzZSJBcmd1bWVudHMiOmNhc2UiQXJyYXkiOmNhc2UiT2JqZWN0IjppZigiZnVuY3Rpb24iPT10eXBlb2YgZC5jb25z''@;'; put 'put ''dHJ1Y3RvciYmIlByb21pc2UiPT09ZnVuY3Rpb24gYXNlKGQpe3ZhciBnPVN0cmluZyhkKS5tYXRjaCgvXmZ1bmN0aW9uIChcdyopLyk7cmV0dXJuIG51bGw9PWc/IiI6Z1sxXX0oZC5jb25zdHJ1Y3RvcikpcmV0dXJuIGQ9PT1nO2JyZWFrO2Nhc2UiQm9vbGVhbiI6Y2FzZSJOdW1iZXIiOmNh''@;'; put 'put ''c2UiU3RyaW5nIjppZih0eXBlb2YgZCE9dHlwZW9mIGd8fCFZTihkLnZhbHVlT2YoKSxnLnZhbHVlT2YoKSkpcmV0dXJuITE7YnJlYWs7Y2FzZSJEYXRlIjppZighWU4oZC52YWx1ZU9mKCksZy52YWx1ZU9mKCkpKXJldHVybiExO2JyZWFrO2Nhc2UiRXJyb3IiOnJldHVybiBkLm5hbWU9PT1n''@;'; put 'put ''Lm5hbWUmJmQubWVzc2FnZT09PWcubWVzc2FnZTtjYXNlIlJlZ0V4cCI6aWYoZC5zb3VyY2UhPT1nLnNvdXJjZXx8ZC5nbG9iYWwhPT1nLmdsb2JhbHx8ZC5pZ25vcmVDYXNlIT09Zy5pZ25vcmVDYXNlfHxkLm11bHRpbGluZSE9PWcubXVsdGlsaW5lfHxkLnN0aWNreSE9PWcuc3RpY2t5fHxk''@;'; put 'put ''LnVuaWNvZGUhPT1nLnVuaWNvZGUpcmV0dXJuITF9Zm9yKHZhciBDPWgubGVuZ3RoLTE7Qz49MDspe2lmKGhbQ109PT1kKXJldHVybiB2W0NdPT09ZztDLT0xfXN3aXRjaCh5KXtjYXNlIk1hcCI6cmV0dXJuIGQuc2l6ZT09PWcuc2l6ZSYmSk4oZC5lbnRyaWVzKCksZy5lbnRyaWVzKCksaC5j''@;'; put 'put ''b25jYXQoW2RdKSx2LmNvbmNhdChbZ10pKTtjYXNlIlNldCI6cmV0dXJuIGQuc2l6ZT09PWcuc2l6ZSYmSk4oZC52YWx1ZXMoKSxnLnZhbHVlcygpLGguY29uY2F0KFtkXSksdi5jb25jYXQoW2ddKSk7Y2FzZSJBcmd1bWVudHMiOmNhc2UiQXJyYXkiOmNhc2UiT2JqZWN0IjpjYXNlIkJvb2xl''@;'; put 'put ''YW4iOmNhc2UiTnVtYmVyIjpjYXNlIlN0cmluZyI6Y2FzZSJEYXRlIjpjYXNlIkVycm9yIjpjYXNlIlJlZ0V4cCI6Y2FzZSJJbnQ4QXJyYXkiOmNhc2UiVWludDhBcnJheSI6Y2FzZSJVaW50OENsYW1wZWRBcnJheSI6Y2FzZSJJbnQxNkFycmF5IjpjYXNlIlVpbnQxNkFycmF5IjpjYXNlIklu''@;'; put 'put ''dDMyQXJyYXkiOmNhc2UiVWludDMyQXJyYXkiOmNhc2UiRmxvYXQzMkFycmF5IjpjYXNlIkZsb2F0NjRBcnJheSI6Y2FzZSJBcnJheUJ1ZmZlciI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4hMX12YXIgST1RTihkKTtpZihJLmxlbmd0aCE9PVFOKGcpLmxlbmd0aClyZXR1cm4hMTt2YXIgWj1oLmNv''@;'; put 'put ''bmNhdChbZF0pLHVlPXYuY29uY2F0KFtnXSk7Zm9yKEM9SS5sZW5ndGgtMTtDPj0wOyl7dmFyIF9lPUlbQ107aWYoIV9EKF9lLGcpfHwhWE4oZ1tfZV0sZFtfZV0sWix1ZSkpcmV0dXJuITE7Qy09MX1yZXR1cm4hMH1jb25zdCBLNj1wcChmdW5jdGlvbihnLGgpe3JldHVybiBYTihnLGgsW10s''@;'; put 'put ''W10pfSksS049aTQoZnVuY3Rpb24oZyl7cmV0dXJuIG51bGwhPWcmJks2KGcsQkooZykpfSk7ZnVuY3Rpb24gSXkoZCl7cmV0dXJuIG51bGw9PWR9ZnVuY3Rpb24gJDYoZCl7cmV0dXJuIEl5KGQpfHxLTihkKX1mdW5jdGlvbiBrayhkKXtyZXR1cm4gYkQoU3RyaW5nLGQpfWZ1bmN0aW9uIEVE''@;'; put 'put ''KGQpe3JldHVybiBiRChPYmplY3QsZCl9ZnVuY3Rpb24gbHNlKGQpe3JldHVybiBiRChNYXAsZCl9ZnVuY3Rpb24gR0ooZCxnKXtyZXR1cm4gZCE9PWd9ZnVuY3Rpb24gVUooZCxnKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZCk9PT1KU09OLnN0cmluZ2lmeShnKX1mdW5jdGlvbiBxTihkKXtj''@;'; put 'put ''b25zdCBnPW5ldyBNYXA7Zm9yKGNvbnN0W2gsdl1vZiBkKWxzZSh2KT9nLnNldChoLHFOKHYpKTpnLnNldChoLHYpO3JldHVybiBnfWZ1bmN0aW9uIHVzZShkKXtzd2l0Y2goITApe2Nhc2UgbHNlKGQpOnJldHVybiBxTihkKTtjYXNlIEVEKGQpJiYhQXJyYXkuaXNBcnJheShkKTpyZXR1cm4g''@;'; put 'put ''UDcoe30sZCk7ZGVmYXVsdDpyZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkKSl9fWZ1bmN0aW9uIFA3KC4uLmQpe2NvbnN0IGc9e307cmV0dXJuIGQubWFwKGg9PkVEKGgpP21zKHt9LGgpOnt9KS5mb3JFYWNoKGg9PntPYmplY3Qua2V5cyhoKS5mb3JFYWNoKHY9Pntjb25zdCB5''@;'; put 'put ''PWhbdl07Z1t2XT1BcnJheS5pc0FycmF5KHkpP0FycmF5LmZyb20oeSk6RUQoeSk/UDcoZ1t2XXx8e30seSk6eX0pfSksZ31mdW5jdGlvbiBKSihkPXdpbmRvdyl7cmV0dXJuIUl5KGQpfWxldCB4RCxkc2UsblYsclY7ZnVuY3Rpb24gaVYoZD0hMCl7aWYoIWR8fCF4RCl7Y29uc3QgZz1kb2N1''@;'; put 'put ''bWVudCYmZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW25nLXZlcnNpb25dIik7eEQ9Zz8iIitnLmdldEF0dHJpYnV0ZSgibmctdmVyc2lvbiIpOnZvaWQgMH1yZXR1cm4geER9ZnVuY3Rpb24gcHNlKGQ9ITApe3ZhciBnLGg7cmV0dXJuIGQmJnhEfHwoZHNlPW51bGw9PShoPW51bGw9PShnPW51''@;'; put 'put ''bGw9PXdpbmRvdz92b2lkIDA6d2luZG93LmFuZ3VsYXIpP3ZvaWQgMDpnLnZlcnNpb24pP3ZvaWQgMDpoLmZ1bGwpLGRzZX1mdW5jdGlvbiBvVihkPSEwKXt2YXIgZyxoO3JldHVybiBkJiZuVnx8KG5WPW51bGwhPShoPW51bGw9PShnPW51bGw9PXdpbmRvdz92b2lkIDA6d2luZG93LkNEUyk/''@;'; put 'put ''dm9pZCAwOmcuX3JlYWN0KSYmaC52ZXJzaW9uP3dpbmRvdy5DRFMuX3JlYWN0LnZlcnNpb246ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiW2RhdGEtcmVhY3Ryb290XSwgW2RhdGEtcmVhY3RpZF0iKT8idW5rbm93biB2ZXJzaW9uIjp2b2lkIDApLG5WfWZ1bmN0aW9uIFhKKGQ9ITApe2lmKCFk''@;'; put 'put ''fHwhclYpe2NvbnN0IGc9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiKiIpO2xldCBoO2ZvcihsZXQgdj0wO3Y8Zy5sZW5ndGg7disrKWlmKGdbdl0uX192dWVfXyl7aD1nW3ZdO2JyZWFrfXJWPWg/InVua25vd24gdmVyc2lvbiI6dm9pZCAwfXJldHVybiByVn1mdW5jdGlvbiBGNyhkKXty''@;'; put 'put ''ZXR1cm4gZC5yZXBsYWNlKC9bQS1aXS9nLGc9PiItIitnLnRvTG93ZXJDYXNlKCkpfWZ1bmN0aW9uIGVYKGQpe3JldHVybiBkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Quc2xpY2UoMSl9Y29uc3QgYnNlPW5ldyBjbGFzc3tjb25zdHJ1Y3Rvcigpe2lmKHRoaXMuc3VwcG9ydHM9e2pzOiEw''@;'; put 'put ''fSwhZG9jdW1lbnQuYm9keS5oYXNBdHRyaWJ1dGUoImNkcy1zdXBwb3J0cyIpfHwibm8tanMiPT09ZG9jdW1lbnQuYm9keS5nZXRBdHRyaWJ1dGUoImNkcy1zdXBwb3J0cyIpKXtjb25zdCBkPUY3KE9iamVjdC5rZXlzKHRoaXMuc3VwcG9ydHMpLnJlZHVjZSgoZyxoKT0+YCR7Z30gJHt0aGlz''@;'; put 'put ''LnN1cHBvcnRzW2hdP2g6Im5vLSIraH1gLCIiKSkudHJpbSgpO2RvY3VtZW50LmJvZHkuc2V0QXR0cmlidXRlKCJjZHMtc3VwcG9ydHMiLGQpfX19O2Z1bmN0aW9uIEg3KGQsZyl7c3dpdGNoKGQpe2Nhc2UgMDpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; put 'put ''cyl9O2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKGgsdil7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gZy5hcHBs''@;'; put 'put ''eSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNDpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDU6cmV0dXJuIGZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDY6cmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uKGgsdix5LEMsSSxaKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgNzpyZXR1cm4gZnVuY3Rpb24oaCx2LHksQyxJLFosdWUpe3JldHVybiBnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y2FzZSA4OnJldHVybiBmdW5jdGlvbihoLHYseSxDLEksWix1ZSxfZSl7''@;'; put 'put ''cmV0dXJuIGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjYXNlIDk6cmV0dXJuIGZ1bmN0aW9uKGgsdix5LEMsSSxaLHVlLF9lLEJlKXtyZXR1cm4gZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2Nhc2UgMTA6cmV0dXJuIGZ1bmN0aW9uKGgsdix5LEMsSSxaLHVlLF9lLEJlLE5lKXtyZXR1cm4g''@;'; put 'put ''Zy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJGaXJzdCBhcmd1bWVudCB0byBfYXJpdHkgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIG5vIGdyZWF0ZXIgdGhhbiB0ZW4iKX19ZnVuY3Rpb24gb1goZCxnLGgpe3JldHVybiBmdW5jdGlvbigp''@;'; put 'put ''e2Zvcih2YXIgdj1bXSx5PTAsQz1kLEk9MDtJPGcubGVuZ3RofHx5PGFyZ3VtZW50cy5sZW5ndGg7KXt2YXIgWjtJPGcubGVuZ3RoJiYoIWxnKGdbSV0pfHx5Pj1hcmd1bWVudHMubGVuZ3RoKT9aPWdbSV06KFo9YXJndW1lbnRzW3ldLHkrPTEpLHZbSV09WixsZyhaKXx8KEMtPTEpLEkrPTF9''@;'; put 'put ''cmV0dXJuIEM8PTA/aC5hcHBseSh0aGlzLHYpOkg3KEMsb1goZCx2LGgpKX19Y29uc3QgYVg9cHAoZnVuY3Rpb24oZyxoKXtyZXR1cm4gMT09PWc/aTQoaCk6SDcoZyxvWChnLFtdLGgpKX0pLGxYPU51bWJlci5pc0ludGVnZXJ8fGZ1bmN0aW9uKGcpe3JldHVybiBnPDwwPT09Z30sa3NlPXBw''@;'; put 'put ''KGZ1bmN0aW9uKGcsaCl7dmFyIHY9ZzwwP2gubGVuZ3RoK2c6ZztyZXR1cm4gQ0QoaCk/aC5jaGFyQXQodik6aFt2XX0pLE1zZT1wcChmdW5jdGlvbihnLGgpe3JldHVybiBnLm1hcChmdW5jdGlvbih2KXtmb3IodmFyIEkseT1oLEM9MDtDPHYubGVuZ3RoOyl7aWYobnVsbD09eSlyZXR1cm47''@;'; put 'put ''eT1sWChJPXZbQ10pP2tzZShJLHkpOnlbSV0sQys9MX1yZXR1cm4geX0pfSkseHNlPXBwKGZ1bmN0aW9uKGcsaCl7cmV0dXJuIE1zZShbZ10saClbMF19KSxUc2U9YVgoMiwoZCxnKT0+dm9pZCAwIT09eHNlKGQsZykpLFREPVRzZSh7IkBAZnVuY3Rpb25hbC9wbGFjZWhvbGRlciI6ITB9LHdp''@;'; put 'put ''bmRvdyk7Y2xhc3MgTjd7c3RhdGljIGxvZyguLi5nKXt1VigpJiZzVigpJiZjb25zb2xlLmxvZyguLi5nKX1zdGF0aWMgd2FybiguLi5nKXt1VigpJiZzVigpJiZjb25zb2xlLndhcm4oLi4uZyl9c3RhdGljIGVycm9yKC4uLmcpe3VWKCkmJnNWKCkmJmNvbnNvbGUuZXJyb3IoLi4uZyl9fWZ1''@;'; put 'put ''bmN0aW9uIHNWKCl7cmV0dXJuIVREKFsiamFzbWluZSJdKX1mdW5jdGlvbiB1Vigpe3JldHVybiF3aW5kb3cuQ0RTLmVudmlyb25tZW50LnByb2R1Y3Rpb259ZnVuY3Rpb24gY1YoKXtKSigpJiYod2luZG93LkNEUz13aW5kb3cuQ0RTfHx7X3ZlcnNpb246W10sX3JlYWN0Ont2ZXJzaW9uOnZv''@;'; put 'put ''aWQgMH0sX3N1cHBvcnRzOmJzZS5zdXBwb3J0cyxfaXNTdGF0ZVByb3hpZWQ6ITEsX3N0YXRlOntmb2N1c1RyYXBJdGVtczpbXSxsYXllckVsZW1lbnRzOltdLGkxOG5SZWdpc3RyeTp7fSxlbGVtZW50UmVnaXN0cnk6e30saWNvblJlZ2lzdHJ5Ont9LG1vdGlvblJlZ2lzdHJ5Ont9fSxlbnZp''@;'; put 'put ''cm9ubWVudDp7cHJvZHVjdGlvbjohMX0sZ2V0RGV0YWlsczp1WCxsb2dEZXRhaWxzOmNYfSxmdW5jdGlvbigpe3ZhciBnO2NvbnN0IGQ9IjYuMS4wIjt3aW5kb3cuQ0RTLl92ZXJzaW9uLmluZGV4T2YoZCk8MCYmKHdpbmRvdy5DRFMuX3ZlcnNpb24ucHVzaChkKSxudWxsPT0oZz1kb2N1bWVu''@;'; put 'put ''dC5xdWVyeVNlbGVjdG9yKCJib2R5IikpfHxnLnNldEF0dHJpYnV0ZSgiY2RzLXZlcnNpb24iLHdpbmRvdy5DRFMuX3ZlcnNpb24uam9pbigiICIpKSksd2luZG93LkNEUy5fdmVyc2lvbi5sZW5ndGg+MSYmTjcud2FybigiUnVubmluZyBtb3JlIHRoYW4gb25lIHZlcnNpb24gb2YgQ2xhcml0''@;'; put 'put ''eSBjYW4gY2F1c2UgdW5leHBlY3RlZCBpc3N1ZXMuIFBsZWFzZSBlbnN1cmUgb25seSBvbmUgdmVyc2lvbiBpcyBsb2FkZWQuIil9KCksd2luZG93LkNEUy5faXNTdGF0ZVByb3hpZWR8fCh3aW5kb3cuQ0RTLl9pc1N0YXRlUHJveGllZD0hMCx3aW5kb3cuQ0RTLl9zdGF0ZT1uZXcgUHJveHko''@;'; put 'put ''d2luZG93LkNEUy5fc3RhdGUse3NldDooZCxnLGgpPT57Y29uc3Qgdj17a2V5OmcscHJldjp3aW5kb3cuQ0RTLl9zdGF0ZVtnXSxjdXJyZW50Omh9O3JldHVybiBkW2ddPWgsZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIkNEU19TVEFURV9VUERBVEUiLHtkZXRhaWw6''@;'; put 'put ''dn0pKSwhMH19KSkpfWZ1bmN0aW9uIHVYKCl7cmV0dXJue3ZlcnNpb25zOndpbmRvdy5DRFMuX3ZlcnNpb24sZW52aXJvbm1lbnQ6d2luZG93LkNEUy5lbnZpcm9ubWVudCx1c2VyQWdlbnQ6bmF2aWdhdG9yLnVzZXJBZ2VudCxzdXBwb3J0czp3aW5kb3cuQ0RTLl9zdXBwb3J0cyxhbmd1bGFy''@;'; put 'put ''VmVyc2lvbjppVighMSksYW5ndWxhckpTVmVyc2lvbjpwc2UoITEpLHJlYWN0VmVyc2lvbjpvVighMSksdnVlVmVyc2lvbjpYSighMSksc3RhdGU6R3oobXMoe30sd2luZG93LkNEUy5fc3RhdGUpLHtpY29uUmVnaXN0cnk6T2JqZWN0LmtleXMod2luZG93LkNEUy5fc3RhdGUuaWNvblJlZ2lz''@;'; put 'put ''dHJ5KSxtb3Rpb25SZWdpc3RyeTpPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5tb3Rpb25SZWdpc3RyeSksZm9jdXNUcmFwUmVnaXN0cnk6T2JqZWN0LmtleXMod2luZG93LkNEUy5fc3RhdGUuZm9jdXNUcmFwSXRlbXMubWFwKGQ9PmQuZm9jdXNUcmFwSWQpKX0pfX1mdW5jdGlvbiBj''@;'; put 'put ''WCgpe043LmxvZyhKU09OLnN0cmluZ2lmeSh1WCgpLG51bGwsMikpfWNvbnN0IElEPW5ldyBjbGFzcyByc2V7Y29uc3RydWN0b3IoKXt0aGlzLnN1YnNjcmlwdGlvbnM9W119c3Vic2NyaWJlKGcpe2NvbnN0IGg9bmV3IExKKGcsdGhpcy5zdWJzY3JpcHRpb25zKTtyZXR1cm4gdGhpcy5zdWJz''@;'; put 'put ''Y3JpcHRpb25zLnB1c2goaCksaH1lbWl0KGcpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmguZm4oZykpfXRvRXZlbnRPYnNlcnZhYmxlKCl7cmV0dXJuIHRoaXN9fTtJRC5saXN0ZW5lcj1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJDRFNfU1RBVEVfVVBEQVRFIixkPT5JRC5l''@;'; put 'put ''bWl0KGQuZGV0YWlsKSk7Y2xhc3MgSjF7c3RhdGljIGdldCBzdGF0ZSgpe3JldHVybiBjVigpLHdpbmRvdy5DRFMuX3N0YXRlfXN0YXRpYyBnZXRWYWx1ZShnKXtyZXR1cm4gSjEuc3RhdGVbZ119c3RhdGljIHNldFZhbHVlKGcsaCl7SjEuc3RhdGVbZ109aH1zdGF0aWMgbG9nKCl7TjcubG9n''@;'; put 'put ''KEpTT04uc3RyaW5naWZ5KEoxLnN0YXRlLG51bGwsMikpfX1KMS5zdGF0ZVVwZGF0ZXM9SUQudG9FdmVudE9ic2VydmFibGUoKTtjb25zdCBEc2U9WyJ1bmtub3duIix7b3V0bGluZTonPGNpcmNsZSBjbGFzcz0iY2RzLWludGVybmFsLWRvdC0zIiBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjki''@;'; put 'put ''Lz48Y2lyY2xlIGNsYXNzPSJjZHMtaW50ZXJuYWwtZG90LTIiIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiLz48Y2lyY2xlIGNsYXNzPSJjZHMtaW50ZXJuYWwtZG90LTEiIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45Ii8+J31dO2NsYXNzIGhze3N0YXRpYyBnZXQgcmVnaXN0cnkoKXtyZXR1cm4g''@;'; put 'put ''bXMoe3Vua25vd246RHNlWzFdfSxKMS5zdGF0ZS5pY29uUmVnaXN0cnkpfXN0YXRpYyBhZGRJY29ucyguLi5nKXtKMS5zdGF0ZS5pY29uUmVnaXN0cnk9bXMobXMoe30sSjEuc3RhdGUuaWNvblJlZ2lzdHJ5KSxPYmplY3QuZnJvbUVudHJpZXMoZy5maWx0ZXIoKFtoXSk9PiFocy5yZWdpc3Ry''@;'; put 'put ''eVtoXSkpKX1zdGF0aWMgYWRkQWxpYXNlcyguLi5nKXtjb25zdCBoPWcuZmlsdGVyKChbdl0pPT5ocy5yZWdpc3RyeVt2XSkuZmxhdE1hcCgoW3YseV0pPT55Lm1hcChDPT5bQyxocy5yZWdpc3RyeVt2XV0pKTtKMS5zdGF0ZS5pY29uUmVnaXN0cnk9bXMobXMoe30sSjEuc3RhdGUuaWNvblJl''@;'; put 'put ''Z2lzdHJ5KSxPYmplY3QuZnJvbUVudHJpZXMoaCkpfXN0YXRpYyBnZXRJY29uTmFtZUZyb21TaGFwZShnKXtyZXR1cm4gZ1swXX19Y29uc3QgRHk9WyJhbmdsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0yOS41MiwyMi41MiwxOCwxMC42LDYuNDgsMjIuNTJhMS43LDEuNywwLDAsMCwyLjQ1LDIu''@;'; put 'put ''MzZMMTgsMTUuNDlsOS4wOCw5LjM5YTEuNywxLjcsMCwwLDAsMi40NS0yLjM2WiIvPid9XSxLaD1bImV4Y2xhbWF0aW9uLWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOCw2QTEyLDEyLDAsMSwwLDMwLDE4LDEyLDEyLDAsMCwwLDE4LDZabTAsMjJBMTAsMTAsMCwxLDEsMjgsMTgsMTAs''@;'; put 'put ''MTAsMCwwLDEsMTgsMjhaIi8+PHBhdGggZD0iTTE4LDIwLjA3YTEuMywxLjMsMCwwLDEtMS4zLTEuM3YtNmExLjMsMS4zLDAsMSwxLDIuNiwwdjZBMS4zLDEuMywwLDAsMSwxOCwyMC4wN1oiLz48Y2lyY2xlIGN4PSIxNy45NSIgY3k9IjIzLjAyIiByPSIxLjUiLz4nLHNvbGlkOic8cGF0aCBk''@;'; put 'put ''PSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMS40OSw2YTEuNDksMS40OSwwLDAsMSwzLDB2Ni44OWExLjQ5LDEuNDksMCwxLDEtMywwWk0xOCwyNS41YTEuNzIsMS43MiwwLDEsMSwxLjcyLTEuNzJBMS43MiwxLjcyLDAsMCwxLDE4LDI1LjVaIi8+J31dLFRm''@;'; put 'put ''PVsiY2hlY2stY2lyY2xlIix7b3V0bGluZTonPHBhdGggZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz48cGF0aCBkPSJNMTYuMzQsMjMuNzRsLTUtNWExLDEsMCwwLDEsMS40MS0x''@;'; put 'put ''LjQxbDMuNTksMy41OSw2Ljc4LTYuNzhhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMzAsMThBMTIsMTIsMCwxLDEsMTgsNiwxMiwxMiwwLDAsMSwzMCwxOFptLTQuNzctMi4xNmExLjQsMS40LDAsMCwwLTItMmwtNi43Nyw2Ljc3TDEzLDE3LjE2YTEuNCwxLjQs''@;'; put 'put ''MCwwLDAtMiwybDUuNDUsNS40NVoiLz4nfV0sZlY9WyJlbGxpcHNpcy1ob3Jpem9udGFsIix7b3V0bGluZTonPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIyLjkiLz48Y2lyY2xlIGN4PSI0LjkiIGN5PSIxOCIgcj0iMi45Ii8+''@;'; put 'put ''JyxvdXRsaW5lQmFkZ2VkOic8Y2lyY2xlIGN4PSIzMS4xIiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiLz4nfV0sU2s9WyJ3aW5kb3ctY2xvc2UiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTku''@;'; put 'put ''NDEsMThsNy4yOS03LjI5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTgsMTYuNTksMTAuNzEsOS4yOWExLDEsMCwwLDAtMS40MSwxLjQxTDE2LjU5LDE4LDkuMjksMjUuMjlhMSwxLDAsMSwwLDEuNDEsMS40MUwxOCwxOS40MWw3LjI5LDcuMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz4nfV0sTHNl''@;'; put 'put ''PVsiZXZlbnQiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTYuMTcsMjUuODYsMTAuODEsMjAuNWExLDEsMCwwLDEsMS40MS0xLjQxTDE2LjE3LDIzbDguNjQtOC42NGExLDEsMCwwLDEsMS40MSwxLjQxWiIvPjxwYXRoIGQ9Ik0zMi4yNSw2SDI5VjhoM1YzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4''@;'; put 'put ''LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAsMCwzMi4yNSw2WiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwx''@;'; put 'put ''MCwxMFoiLz48cGF0aCBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+PHJlY3QgeD0iMTMiIHk9IjYiIHdpZHRoPSIxMCIgaGVpZ2h0PSIyIi8+JyxvdXRsaW5lQWxlcnRlZDonPHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFW''@;'; put 'put ''M0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAsLjIzLS40MUgyMy44TDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz48cG9seWdvbiBwb2ludHM9IjIx''@;'; put 'put ''LjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPjxwYXRoIGQ9Ik0zMy42OCwxNS40SDMyVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjE1LjM4WiIv''@;'; put 'put ''Picsb3V0bGluZUJhZGdlZDonPHBhdGggZD0iTTEwLjgxLDIwLjVsNS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMC0xLjQxLTEuNDFMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCww''@;'; put 'put ''LDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cGF0aCBkPSJNMzIsMTMuMjJWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwx''@;'; put 'put ''LDMyLDEzLjIyWiIvPjxwYXRoIGQ9Ik0yMi41LDZIMTNWOGg5Ljc4QTcuNDksNy40OSwwLDAsMSwyMi41LDZaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0yNiwxMGExLDEsMCww''@;'; put 'put ''LDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz48cGF0aCBkPSJNMzIuMjUsNmgtNFY5YTIuMiwyLjIsMCwwLDEtNC40LDBWNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCww''@;'; put 'put ''LDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNlpNMjUuOTQsMTYuNThsLTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzhMMjQsMTQuNjZhMS4zNiwxLjM2LDAsMSwxLDEuOTMs''@;'; put 'put ''MS45M1oiLz4nLHNvbGlkQWxlcnRlZDonPHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0zMy42OCwxNS40SDI2LjNhMS4zNCwxLjM0LDAsMCwxLS4zNiwxLjE4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4z''@;'; put 'put ''NiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4LDctN2gtMUEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgs''@;'; put 'put ''MS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz4nLHNvbGlkQmFkZ2VkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIs''@;'; put 'put ''MCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wm0tNC4wNiwzLjA4LTkuNjcsOS42N0wxMSwyMC45NEExLjM2''@;'; put 'put ''LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzhMMjQsMTQuNjZhMS4zNiwxLjM2LDAsMSwxLDEuOTMsMS45M1oiLz4nfV0sT3NlPVsiY2FsZW5kYXIiLHtvdXRsaW5lOic8cGF0aCBkPSJNMzIuMjUsNkgyOVY4aDNWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAu''@;'; put 'put ''MTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNloiLz48cmVjdCB4PSI4IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdo''@;'; put 'put ''dD0iMiIvPjxyZWN0IHg9IjIwIiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVp''@;'; put 'put ''Z2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCIgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIg''@;'; put 'put ''aGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHBhdGggZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxw''@;'; put 'put ''YXRoIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz48cmVjdCB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz4nLG91dGxpbmVBbGVydGVkOic8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYzMEg0VjhIN1Y2SDMuNzVB''@;'; put 'put ''MS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz48cmVjdCB4PSI4IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjE0IiB5PSIxNCIgd2lkdGg9IjIiIGhl''@;'; put 'put ''aWdodD0iMiIvPjxyZWN0IHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjE5IiB3aWR0aD0iMiIg''@;'; put 'put ''aGVpZ2h0PSIyIi8+PHJlY3QgeD0iOCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMjQiIHdpZHRoPSIy''@;'; put 'put ''IiBoZWlnaHQ9IjIiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBvbHlnb24gcG9pbnRzPSIyMS4yOSA2IDEzIDYgMTMgOCAyMC4xNCA4IDIxLjI5IDYiLz4nLG91dGxpbmVCYWRnZWQ6JzxwYXRoIGQ9Ik0zMiwx''@;'; put 'put ''My4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+PHJlY3QgeD0iOCIgeT0iMTQiIHdpZHRoPSIy''@;'; put 'put ''IiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSI4IiB5PSIxOSIgd2lkdGg9''@;'; put 'put ''IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjI2IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPjxyZWN0IHg9IjgiIHk9IjI0IiB3aWR0''@;'; put 'put ''aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHJlY3QgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+PHBhdGggZD0iTTEwLDEwYTEsMSww''@;'; put 'put ''LDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPjxwYXRoIGQ9Ik0yMi41LDZIMTNWOGg5Ljc4QTcuNDksNy40OSwwLDAsMSwyMi41LDZaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTMyLjI1LDZoLTRWOWEyLjIsMi4yLDAsMSwxLTQuNCwwVjZIMTIuMlY5QTIuMiwy''@;'; put 'put ''LjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhW''@;'; put 'put ''MTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEwSDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz48cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSww''@;'; put 'put ''LDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCwwLDI2LDEwWiIvPicsc29saWRBbGVydGVkOic8cGF0aCBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwy''@;'; put 'put ''MS4yOSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFpNMTAsMjZIOFYyNGgyWm0wLTVIOFYxOWgyWm0wLTVIOFYxNGgy''@;'; put 'put ''Wm02LDEwSDE0VjI0aDJabTAtNUgxNFYxOWgyWm0wLTVIMTRWMTRoMlptNiwxMEgyMFYyNGgyWm0wLTVIMjBWMTloMlptNiw1SDI2VjI0aDJabTAtNUgyNlYxOWgyWiIvPjxwYXRoIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz4n''@;'; put 'put ''LHNvbGlkQmFkZ2VkOic8cGF0aCBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+PHBhdGggZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCww''@;'; put 'put ''LDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJa''@;'; put 'put ''bTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0aDJaIi8+J31dLGhWPVsiZXllLWhpZGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMjUuMTksMjAuNEE2Ljc4LDYuNzgsMCwwLDAsMjUu''@;'; put 'put ''NjIsMThhNi44Niw2Ljg2LDAsMCwwLTYuODYtNi44Niw2Ljc5LDYuNzksMCwwLDAtMi4zNy40M0wxOCwxMy4yM2E0Ljc4LDQuNzgsMCwwLDEsLjc0LS4wNkE0Ljg3LDQuODcsMCwwLDEsMjMuNjIsMThhNC43OSw0Ljc5LDAsMCwxLS4wNi43NFoiLz48cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMu''@;'; put 'put ''MzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQzYTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45Myww''@;'; put 'put ''LDAsMCw1LTZsLjI2LS40OFoiLz48cGF0aCBkPSJNNC44Nyw1Ljc4bDQuNDYsNC40NmExOS41MiwxOS41MiwwLDAsMC02LjY5LDcuMjlMMi4zOCwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBhMTYuOTMsMTYuOTMsMCwwLDAsNy4zNy0xLjY5bDUsNSwxLjc1LTEuNS0yNi0y''@;'; put 'put ''NlptOS43NSw5Ljc1LDYuNjUsNi42NWE0LjgxLDQuODEsMCwwLDEtMi41LjcyQTQuODcsNC44NywwLDAsMSwxMy45LDE4LDQuODEsNC44MSwwLDAsMSwxNC42MiwxNS41M1ptLTEuNDUtMS40NWE2Ljg1LDYuODUsMCwwLDAsOS41NSw5LjU1bDEuNiwxLjZhMTQuOTEsMTQuOTEsMCwwLDEtNS44''@;'; put 'put ''NiwxLjJjLTUuNjMsMC0xMC43NS0zLjE0LTEzLjgtOC40M2ExNy4yOSwxNy4yOSwwLDAsMSw2LjEyLTYuM1oiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTguMzcsMTEuMTdBNi43OSw2Ljc5LDAsMCwwLDE2LDExLjZsOC44LDguOEE2Ljc4LDYuNzgsMCwwLDAsMjUuMjMsMTgsNi44Niw2Ljg2LDAs''@;'; put 'put ''MCwwLDE4LjM3LDExLjE3WiIvPjxwYXRoIGQ9Ik0zNC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwxMGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUs''@;'; put 'put ''MTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQyYTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIvPjxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGEx''@;'; put 'put ''Ni45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm04LjMsOC4zYTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYu''@;'; put 'put ''MTItNi4zWiIvPid9XSxSc2U9WyJleWUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBs''@;'; put 'put ''LjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTguNDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiLz48cGF0aCBkPSJNMTguMDksMTEuMTdBNi44Niw2Ljg2LDAs''@;'; put 'put ''MSwwLDI1LDE4LDYuODYsNi44NiwwLDAsMCwxOC4wOSwxMS4xN1ptMCwxMS43MkE0Ljg2LDQuODYsMCwxLDEsMjMsMTgsNC44Nyw0Ljg3LDAsMCwxLDE4LjA5LDIyLjg5WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0zMy42MiwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwx''@;'; put 'put ''MS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjksOC4xNy04LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwx''@;'; put 'put ''OEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIvPjxjaXJjbGUgY3g9IjE4LjA5IiBjeT0iMTguMDMiIHI9IjYuODYiLz4nfV0saFg9WyJlbGxpcHNpcy12ZXJ0aWNhbCIse291dGxpbmU6JzxjaXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiLz48Y2lyY2xlIGN4PSIx''@;'; put 'put ''OCIgY3k9IjE4IiByPSIyLjkiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjMxLjEiIHI9IjIuOSIvPicsb3V0bGluZUJhZGdlZDonPGNpcmNsZSBjeD0iMTgiIGN5PSI0LjkiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIg''@;'; put 'put ''cj0iMi45Ii8+J31dLGRYPVsidmlldy1jb2x1bW5zIix7b3V0bGluZTonPHBhdGggZD0iTTMxLDVINUEyLDIsMCwwLDAsMyw3VjI5YTIsMiwwLDAsMCwyLDJIMzFhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMSw1Wk0xMywyOUg1VjdoOFptMTAsMEgxNVY3aDhaIi8+J31dLEZzZT1bImFy''@;'; put 'put ''cm93Iix7b3V0bGluZTonPHBhdGggZD0iTTI3LjY2LDE1LjYxLDE4LDYsOC4zNCwxNS42MUExLDEsMCwxLDAsOS43NSwxN0wxNyw5LjgxVjI4Ljk0YTEsMSwwLDEsMCwyLDBWOS44MUwyNi4yNSwxN2ExLDEsMCwwLDAsMS40MS0xLjQyWiIvPid9XSxwWD1bInRpbWVzIix7b3V0bGluZTonPHBh''@;'; put 'put ''dGggZD0iTTE5LjQxLDE4bDguMjktOC4yOWExLDEsMCwwLDAtMS40MS0xLjQxTDE4LDE2LjU5LDkuNzEsOC4yOUExLDEsMCwwLDAsOC4yOSw5LjcxTDE2LjU5LDE4LDguMjksMjYuMjlhMSwxLDAsMSwwLDEuNDEsMS40MUwxOCwxOS40MWw4LjI5LDguMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoi''@;'; put 'put ''Lz4nfV0sSHNlPVsic3RlcC1mb3J3YXJkLTIiLHtvdXRsaW5lOic8cGF0aCBkPSJNNy4wOCw2LjUyYTEuNjgsMS42OCwwLDAsMCwwLDIuNEwxNi41MSwxOCw3LjEyLDI3LjA4YTEuNywxLjcsMCwwLDAsMi4zNiwyLjQ0aDBMMjEuNCwxOCw5LjQ4LDYuNDdBMS42OSwxLjY5LDAsMCwwLDcuMDgs''@;'; put 'put ''Ni41MloiLz48cGF0aCBkPSJNMjYuNDksNWExLjcsMS43LDAsMCwwLTEuNywxLjdWMjkuM2ExLjcsMS43LDAsMCwwLDMuNCwwVjYuN0ExLjcsMS43LDAsMCwwLDI2LjQ5LDVaIi8+J31dLGdYPVsiYW5nbGUtZG91YmxlIix7b3V0bGluZTonPHBhdGggZD0iTTI5LDE5LjQxYTEsMSwwLDAsMS0u''@;'; put 'put ''NzEtLjI5TDE4LDguODMsNy43MSwxOS4xMmExLDEsMCwwLDEtMS40MS0xLjQxTDE4LDYsMjkuNzEsMTcuNzFBMSwxLDAsMCwxLDI5LDE5LjQxWiIvPjxwYXRoIGQ9Ik0yOSwzMC40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCwxOS44Myw3LjcxLDMwLjEyYTEsMSwwLDAsMS0xLjQxLTEuNDFMMTgs''@;'; put 'put ''MTcsMjkuNzEsMjguNzFBMSwxLDAsMCwxLDI5LDMwLjQxWiIvPid9XSxOc2U9WyJmaWx0ZXItZ3JpZC1jaXJjbGUiLHtvdXRsaW5lOic8cGF0aCBkPSJNMTUsMjUuODZsMiwxVjIwLjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdM''@;'; put 'put ''MTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCwwLTEsMXYxYTEuNDYsMS40NiwwLDAsMCwuNDIsMUwxNSwyMC42OFoiLz48cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwy''@;'; put 'put ''Wm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+PHBhdGggZD0iTTgsMTF2''@;'; put 'put ''MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2Ni44OWEuNS41LDAsMCwwLC4yOC40NWwzLjk1LDEuNDFhLjUuNSwwLDAsMCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAsMCwuMTUtLjM1VjExWiIv''@;'; put 'put ''Pid9XSxkVj1bImZpbHRlci1ncmlkIix7b3V0bGluZTonPHBhdGggZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAtLjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgs''@;'; put 'put ''MTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTgsMTF2MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2Ni44OWEuNS41LDAsMCwwLC4y''@;'; put 'put ''OC40NWwzLjk1LDEuNDFhLjUuNSwwLDAsMCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAsMCwuMTUtLjM1VjExWiIvPid9XSxtWD1bImluZm8tY2lyY2xlIix7b3V0bGluZTonPGNpcmNsZSBjeD0iMTcuOTMiIGN5PSIxMS45IiByPSIxLjQi''@;'; put 'put ''Lz48cGF0aCBkPSJNMjEsMjNIMTlWMTVIMTZhMSwxLDAsMCwwLDAsMmgxdjZIMTVhMSwxLDAsMSwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIi8+PHBhdGggZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAs''@;'; put 'put ''MSwxOCwyOFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMiw1LjE1YTIsMiwwLDEsMSwyLDJBMiwyLDAsMCwxLDE1LjksMTEuMTVaTTIzLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMSwxLDAtMmgyVjE3SDE2YTEsMSww''@;'; put 'put ''LDAsMSwwLTJoNHY4aDJBMSwxLDAsMCwxLDIzLDI0WiIvPid9XSxqc2U9WyJleGNsYW1hdGlvbi10cmlhbmdsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOCwyMS4zMmExLjMsMS4zLDAsMCwwLDEuMy0xLjNWMTRhMS4zLDEuMywwLDEsMC0yLjYsMHY2QTEuMywxLjMsMCwwLDAsMTgsMjEuMzJa''@;'; put 'put ''Ii8+PGNpcmNsZSBjeD0iMTcuOTUiIGN5PSIyNC4yNyIgcj0iMS41Ii8+PHBhdGggZD0iTTMwLjMzLDI1LjU0LDIwLjU5LDcuNmEzLDMsMCwwLDAtNS4yNywwTDUuNTcsMjUuNTRBMywzLDAsMCwwLDguMjEsMzBIMjcuNjlhMywzLDAsMCwwLDIuNjQtNC40M1ptLTEuNzgsMS45NGExLDEsMCww''@;'; put 'put ''LDEtLjg2LjQ5SDguMjFhMSwxLDAsMCwxLS44OC0xLjQ4TDE3LjA3LDguNTVhMSwxLDAsMCwxLDEuNzYsMGw5Ljc0LDE3Ljk0QTEsMSwwLDAsMSwyOC41NSwyNy40OFoiLz4nLHNvbGlkOic8cGF0aCBkPSJNMzAuMzMsMjUuNTQsMjAuNTksNy42YTMsMywwLDAsMC01LjI3LDBMNS41NywyNS41''@;'; put 'put ''NEEzLDMsMCwwLDAsOC4yMSwzMEgyNy42OWEzLDMsMCwwLDAsMi42NC00LjQzWk0xNi40NiwxMi43NGExLjQ5LDEuNDksMCwwLDEsMywwdjYuODlhMS40OSwxLjQ5LDAsMSwxLTMsMFpNMTgsMjYuMjVhMS43MiwxLjcyLDAsMSwxLDEuNzItMS43MkExLjcyLDEuNzIsMCwwLDEsMTgsMjYuMjVa''@;'; put 'put ''Ii8+J31dLFpzZT1bImNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPicsc29saWQ6JzxwYXRoIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwz''@;'; put 'put ''NCwxOCwxNiwxNiwwLDAsMSwxOCwzNFoiLz4nfV0senNlPVsiZG90LWNpcmNsZSIse291dGxpbmU6JzxwYXRoIGQ9Ik0xOCwxMWE3LDcsMCwxLDEtNyw3LDcsNywwLDAsMSw3LTciLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaTTE4LDRBMTQs''@;'; put 'put ''MTQsMCwxLDAsMzIsMTgsMTQsMTQsMCwwLDAsMTgsNFoiLz4nfV0sdlg9WyJlcnJvci1zdGFuZGFyZCIse291dGxpbmU6JzxjaXJjbGUgY3g9IjE4IiBjeT0iMjYuMDYiIHI9IjEuMzMiLz48cGF0aCBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEs''@;'; put 'put ''MCwwLDEsMTgsMjIuNjFaIi8+PHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4LDIuMWExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiww''@;'; put 'put ''LDAsMCwxOCwyLjFaTTE2LjYsOC44YTEuNCwxLjQsMCwwLDEsMi44LDB2MTJhMS40LDEuNCwwLDAsMS0yLjgsMFpNMTgsMjguNmExLjgsMS44LDAsMSwxLDEuOC0xLjhBMS44LDEuOCwwLDAsMSwxOCwyOC42WiIvPid9XSxXc2U9WyJzdWNjZXNzLXN0YW5kYXJkIix7b3V0bGluZTonPHBhdGgg''@;'; put 'put ''ZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz48cGF0aCBkPSJNMjgsMTIuMWExLDEsMCwwLDAtMS40MSwwTDE1LjQ5LDIzLjE1bC02LTZBMSwxLDAsMCwwLDgsMTguNTNMMTUuNDks''@;'; put 'put ''MjYsMjgsMTMuNTJBMSwxLDAsMCwwLDI4LDEyLjFaIi8+Jyxzb2xpZDonPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMjguNDUsMTIuNjMsMTUuMzEsMjUuNzYsNy41NSwxOGExLjQsMS40LDAsMCwxLDItMmw1Ljc4LDUuNzhMMjYuNDcsMTAuNjVh''@;'; put 'put ''MS40LDEuNCwwLDEsMSwyLDJaIi8+J31dO2NsYXNzIFlzZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuY29tcGFyZT1nLHRoaXMua2V5U2VsZWN0b3I9aH1jYWxsKGcsaCl7cmV0dXJuIGguc3Vic2NyaWJlKG5ldyBVc2UoZyx0aGlzLmNvbXBhcmUsdGhpcy5rZXlTZWxlY3RvcikpfX1jbGFzcyBV''@;'; put 'put ''c2UgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLmtleVNlbGVjdG9yPXYsdGhpcy5oYXNLZXk9ITEsImZ1bmN0aW9uIj09dHlwZW9mIGgmJih0aGlzLmNvbXBhcmU9aCl9Y29tcGFyZShnLGgpe3JldHVybiBnPT09aH1fbmV4dChnKXtsZXQgaDt0cnl7Y29uc3R7''@;'; put 'put ''a2V5U2VsZWN0b3I6eX09dGhpcztoPXk/eShnKTpnfWNhdGNoKHkpe3JldHVybiB0aGlzLmRlc3RpbmF0aW9uLmVycm9yKHkpfWxldCB2PSExO2lmKHRoaXMuaGFzS2V5KXRyeXtjb25zdHtjb21wYXJlOnl9PXRoaXM7dj15KHRoaXMua2V5LGgpfWNhdGNoKHkpe3JldHVybiB0aGlzLmRlc3Rp''@;'; put 'put ''bmF0aW9uLmVycm9yKHkpfWVsc2UgdGhpcy5oYXNLZXk9ITA7dnx8KHRoaXMua2V5PWgsdGhpcy5kZXN0aW5hdGlvbi5uZXh0KGcpKX19Y2xhc3MgWHNlIGV4dGVuZHMgVGV7Y29uc3RydWN0b3IoZyxoKXtzdXBlcigpfXNjaGVkdWxlKGcsaD0wKXtyZXR1cm4gdGhpc319Y2xhc3Mgd1ggZXh0''@;'; put 'put ''ZW5kcyBYc2V7Y29uc3RydWN0b3IoZyxoKXtzdXBlcihnLGgpLHRoaXMuc2NoZWR1bGVyPWcsdGhpcy53b3JrPWgsdGhpcy5wZW5kaW5nPSExfXNjaGVkdWxlKGcsaD0wKXtpZih0aGlzLmNsb3NlZClyZXR1cm4gdGhpczt0aGlzLnN0YXRlPWc7Y29uc3Qgdj10aGlzLmlkLHk9dGhpcy5zY2hl''@;'; put 'put ''ZHVsZXI7cmV0dXJuIG51bGwhPXYmJih0aGlzLmlkPXRoaXMucmVjeWNsZUFzeW5jSWQoeSx2LGgpKSx0aGlzLnBlbmRpbmc9ITAsdGhpcy5kZWxheT1oLHRoaXMuaWQ9dGhpcy5pZHx8dGhpcy5yZXF1ZXN0QXN5bmNJZCh5LHRoaXMuaWQsaCksdGhpc31yZXF1ZXN0QXN5bmNJZChnLGgsdj0w''@;'; put 'put ''KXtyZXR1cm4gc2V0SW50ZXJ2YWwoZy5mbHVzaC5iaW5kKGcsdGhpcyksdil9cmVjeWNsZUFzeW5jSWQoZyxoLHY9MCl7aWYobnVsbCE9PXYmJnRoaXMuZGVsYXk9PT12JiYhMT09PXRoaXMucGVuZGluZylyZXR1cm4gaDtjbGVhckludGVydmFsKGgpfWV4ZWN1dGUoZyxoKXtpZih0aGlzLmNs''@;'; put 'put ''b3NlZClyZXR1cm4gbmV3IEVycm9yKCJleGVjdXRpbmcgYSBjYW5jZWxsZWQgYWN0aW9uIik7dGhpcy5wZW5kaW5nPSExO2NvbnN0IHY9dGhpcy5fZXhlY3V0ZShnLGgpO2lmKHYpcmV0dXJuIHY7ITE9PT10aGlzLnBlbmRpbmcmJm51bGwhPXRoaXMuaWQmJih0aGlzLmlkPXRoaXMucmVjeWNs''@;'; put 'put ''ZUFzeW5jSWQodGhpcy5zY2hlZHVsZXIsdGhpcy5pZCxudWxsKSl9X2V4ZWN1dGUoZyxoKXtsZXQgeSx2PSExO3RyeXt0aGlzLndvcmsoZyl9Y2F0Y2goQyl7dj0hMCx5PSEhQyYmQ3x8bmV3IEVycm9yKEMpfWlmKHYpcmV0dXJuIHRoaXMudW5zdWJzY3JpYmUoKSx5fV91bnN1YnNjcmliZSgp''@;'; put 'put ''e2NvbnN0IGc9dGhpcy5pZCxoPXRoaXMuc2NoZWR1bGVyLHY9aC5hY3Rpb25zLHk9di5pbmRleE9mKHRoaXMpO3RoaXMud29yaz1udWxsLHRoaXMuc3RhdGU9bnVsbCx0aGlzLnBlbmRpbmc9ITEsdGhpcy5zY2hlZHVsZXI9bnVsbCwtMSE9PXkmJnYuc3BsaWNlKHksMSksbnVsbCE9ZyYmKHRo''@;'; put 'put ''aXMuaWQ9dGhpcy5yZWN5Y2xlQXN5bmNJZChoLGcsbnVsbCkpLHRoaXMuZGVsYXk9bnVsbH19bGV0IGJYPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2PWQubm93KXt0aGlzLlNjaGVkdWxlckFjdGlvbj1oLHRoaXMubm93PXZ9c2NoZWR1bGUoaCx2PTAseSl7cmV0dXJuIG5ldyB0aGlz''@;'; put 'put ''LlNjaGVkdWxlckFjdGlvbih0aGlzLGgpLnNjaGVkdWxlKHksdil9fXJldHVybiBkLm5vdz0oKT0+RGF0ZS5ub3coKSxkfSkoKTtjbGFzcyBlOCBleHRlbmRzIGJYe2NvbnN0cnVjdG9yKGcsaD1iWC5ub3cpe3N1cGVyKGcsKCk9PmU4LmRlbGVnYXRlJiZlOC5kZWxlZ2F0ZSE9PXRoaXM/ZTgu''@;'; put 'put ''ZGVsZWdhdGUubm93KCk6aCgpKSx0aGlzLmFjdGlvbnM9W10sdGhpcy5hY3RpdmU9ITEsdGhpcy5zY2hlZHVsZWQ9dm9pZCAwfXNjaGVkdWxlKGcsaD0wLHYpe3JldHVybiBlOC5kZWxlZ2F0ZSYmZTguZGVsZWdhdGUhPT10aGlzP2U4LmRlbGVnYXRlLnNjaGVkdWxlKGcsaCx2KTpzdXBlci5z''@;'; put 'put ''Y2hlZHVsZShnLGgsdil9Zmx1c2goZyl7Y29uc3R7YWN0aW9uczpofT10aGlzO2lmKHRoaXMuYWN0aXZlKXJldHVybiB2b2lkIGgucHVzaChnKTtsZXQgdjt0aGlzLmFjdGl2ZT0hMDtkb3tpZih2PWcuZXhlY3V0ZShnLnN0YXRlLGcuZGVsYXkpKWJyZWFrfXdoaWxlKGc9aC5zaGlmdCgpKTtp''@;'; put 'put ''Zih0aGlzLmFjdGl2ZT0hMSx2KXtmb3IoO2c9aC5zaGlmdCgpOylnLnVuc3Vic2NyaWJlKCk7dGhyb3cgdn19fWNvbnN0IHBWPW5ldyBlOCh3WCk7ZnVuY3Rpb24gREQoZCxnPXBWKXtyZXR1cm4gaD0+aC5saWZ0KG5ldyBnVihkLGcpKX1jbGFzcyBnVntjb25zdHJ1Y3RvcihnLGgpe3RoaXMu''@;'; put 'put ''ZHVlVGltZT1nLHRoaXMuc2NoZWR1bGVyPWh9Y2FsbChnLGgpe3JldHVybiBoLnN1YnNjcmliZShuZXcgbVYoZyx0aGlzLmR1ZVRpbWUsdGhpcy5zY2hlZHVsZXIpKX19Y2xhc3MgbVYgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2KXtzdXBlcihnKSx0aGlzLmR1ZVRpbWU9aCx0aGlzLnNj''@;'; put 'put ''aGVkdWxlcj12LHRoaXMuZGVib3VuY2VkU3Vic2NyaXB0aW9uPW51bGwsdGhpcy5sYXN0VmFsdWU9bnVsbCx0aGlzLmhhc1ZhbHVlPSExfV9uZXh0KGcpe3RoaXMuY2xlYXJEZWJvdW5jZSgpLHRoaXMubGFzdFZhbHVlPWcsdGhpcy5oYXNWYWx1ZT0hMCx0aGlzLmFkZCh0aGlzLmRlYm91bmNl''@;'; put 'put ''ZFN1YnNjcmlwdGlvbj10aGlzLnNjaGVkdWxlci5zY2hlZHVsZShfWCx0aGlzLmR1ZVRpbWUsdGhpcykpfV9jb21wbGV0ZSgpe3RoaXMuZGVib3VuY2VkTmV4dCgpLHRoaXMuZGVzdGluYXRpb24uY29tcGxldGUoKX1kZWJvdW5jZWROZXh0KCl7aWYodGhpcy5jbGVhckRlYm91bmNlKCksdGhp''@;'; put 'put ''cy5oYXNWYWx1ZSl7Y29uc3R7bGFzdFZhbHVlOmd9PXRoaXM7dGhpcy5sYXN0VmFsdWU9bnVsbCx0aGlzLmhhc1ZhbHVlPSExLHRoaXMuZGVzdGluYXRpb24ubmV4dChnKX19Y2xlYXJEZWJvdW5jZSgpe2NvbnN0IGc9dGhpcy5kZWJvdW5jZWRTdWJzY3JpcHRpb247bnVsbCE9PWcmJih0aGlz''@;'; put 'put ''LnJlbW92ZShnKSxnLnVuc3Vic2NyaWJlKCksdGhpcy5kZWJvdW5jZWRTdWJzY3JpcHRpb249bnVsbCl9fWZ1bmN0aW9uIF9YKGQpe2QuZGVib3VuY2VkTmV4dCgpfWZ1bmN0aW9uIGo3KGQpe3JldHVybiBnPT5nLmxpZnQobmV3IExEKGQpKX1jbGFzcyBMRHtjb25zdHJ1Y3RvcihnKXt0aGlz''@;'; put 'put ''Lm5vdGlmaWVyPWd9Y2FsbChnLGgpe2NvbnN0IHY9bmV3ICRzZShnKSx5PWVyKHRoaXMubm90aWZpZXIsbmV3IHluKHYpKTtyZXR1cm4geSYmIXYuc2VlblZhbHVlPyh2LmFkZCh5KSxoLnN1YnNjcmliZSh2KSk6dn19Y2xhc3MgJHNlIGV4dGVuZHMgTm57Y29uc3RydWN0b3IoZyl7c3VwZXIo''@;'; put 'put ''ZyksdGhpcy5zZWVuVmFsdWU9ITF9bm90aWZ5TmV4dCgpe3RoaXMuc2VlblZhbHVlPSEwLHRoaXMuY29tcGxldGUoKX1ub3RpZnlDb21wbGV0ZSgpe319ZnVuY3Rpb24gdDgoZCxnLGgsdil7cmV0dXJuIHNlKGgpJiYodj1oLGg9dm9pZCAwKSx2P3Q4KGQsZyxoKS5waXBlKG10KHk9PkFlKHkp''@;'; put 'put ''P3YoLi4ueSk6dih5KSkpOm5ldyBGKHk9PntDWChkLGcsZnVuY3Rpb24gQyhJKXt5Lm5leHQoYXJndW1lbnRzLmxlbmd0aD4xP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk6SSl9LHksaCl9KX1mdW5jdGlvbiBDWChkLGcsaCx2LHkpe2xldCBDO2lmKGZ1bmN0aW9uIEVr''@;'; put 'put ''KGQpe3JldHVybiBkJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5hZGRFdmVudExpc3RlbmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5yZW1vdmVFdmVudExpc3RlbmVyfShkKSl7Y29uc3QgST1kO2QuYWRkRXZlbnRMaXN0ZW5lcihnLGgseSksQz0oKT0+SS5yZW1vdmVFdmVudExpc3RlbmVyKGcs''@;'; put 'put ''aCx5KX1lbHNlIGlmKGZ1bmN0aW9uIE1rKGQpe3JldHVybiBkJiYiZnVuY3Rpb24iPT10eXBlb2YgZC5vbiYmImZ1bmN0aW9uIj09dHlwZW9mIGQub2ZmfShkKSl7Y29uc3QgST1kO2Qub24oZyxoKSxDPSgpPT5JLm9mZihnLGgpfWVsc2UgaWYoZnVuY3Rpb24gcXNlKGQpe3JldHVybiBkJiYi''@;'; put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgZC5hZGRMaXN0ZW5lciYmImZ1bmN0aW9uIj09dHlwZW9mIGQucmVtb3ZlTGlzdGVuZXJ9KGQpKXtjb25zdCBJPWQ7ZC5hZGRMaXN0ZW5lcihnLGgpLEM9KCk9PkkucmVtb3ZlTGlzdGVuZXIoZyxoKX1lbHNle2lmKCFkfHwhZC5sZW5ndGgpdGhyb3cgbmV3IFR5''@;'; put 'put ''cGVFcnJvcigiSW52YWxpZCBldmVudCB0YXJnZXQiKTtmb3IobGV0IEk9MCxaPWQubGVuZ3RoO0k8WjtJKyspQ1goZFtJXSxnLGgsdix5KX12LmFkZChDKX1mdW5jdGlvbiBrWChkKXtyZXR1cm4hIWQmJihkIGluc3RhbmNlb2YgRnx8ImZ1bmN0aW9uIj09dHlwZW9mIGQubGlmdCYmImZ1bmN0''@;'; put 'put ''aW9uIj09dHlwZW9mIGQuc3Vic2NyaWJlKX1jb25zdCBPRD1uZXcgY2xhc3MgdDJlIGV4dGVuZHMgZTh7fShjbGFzcyBlMmUgZXh0ZW5kcyB3WHtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKGcsaCksdGhpcy5zY2hlZHVsZXI9Zyx0aGlzLndvcms9aH1zY2hlZHVsZShnLGg9MCl7cmV0dXJuIGg+''@;'; put 'put ''MD9zdXBlci5zY2hlZHVsZShnLGgpOih0aGlzLmRlbGF5PWgsdGhpcy5zdGF0ZT1nLHRoaXMuc2NoZWR1bGVyLmZsdXNoKHRoaXMpLHRoaXMpfWV4ZWN1dGUoZyxoKXtyZXR1cm4gaD4wfHx0aGlzLmNsb3NlZD9zdXBlci5leGVjdXRlKGcsaCk6dGhpcy5fZXhlY3V0ZShnLGgpfXJlcXVlc3RB''@;'; put 'put ''c3luY0lkKGcsaCx2PTApe3JldHVybiBudWxsIT09diYmdj4wfHxudWxsPT09diYmdGhpcy5kZWxheT4wP3N1cGVyLnJlcXVlc3RBc3luY0lkKGcsaCx2KTpnLmZsdXNoKHRoaXMpfX0pO2NsYXNzIFgze2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLmtpbmQ9Zyx0aGlzLnZhbHVlPWgsdGhpcy5l''@;'; put 'put ''cnJvcj12LHRoaXMuaGFzVmFsdWU9Ik4iPT09Z31vYnNlcnZlKGcpe3N3aXRjaCh0aGlzLmtpbmQpe2Nhc2UiTiI6cmV0dXJuIGcubmV4dCYmZy5uZXh0KHRoaXMudmFsdWUpO2Nhc2UiRSI6cmV0dXJuIGcuZXJyb3ImJmcuZXJyb3IodGhpcy5lcnJvcik7Y2FzZSJDIjpyZXR1cm4gZy5jb21w''@;'; put 'put ''bGV0ZSYmZy5jb21wbGV0ZSgpfX1kbyhnLGgsdil7c3dpdGNoKHRoaXMua2luZCl7Y2FzZSJOIjpyZXR1cm4gZyYmZyh0aGlzLnZhbHVlKTtjYXNlIkUiOnJldHVybiBoJiZoKHRoaXMuZXJyb3IpO2Nhc2UiQyI6cmV0dXJuIHYmJnYoKX19YWNjZXB0KGcsaCx2KXtyZXR1cm4gZyYmImZ1bmN0''@;'; put 'put ''aW9uIj09dHlwZW9mIGcubmV4dD90aGlzLm9ic2VydmUoZyk6dGhpcy5kbyhnLGgsdil9dG9PYnNlcnZhYmxlKCl7c3dpdGNoKHRoaXMua2luZCl7Y2FzZSJOIjpyZXR1cm4gYWEodGhpcy52YWx1ZSk7Y2FzZSJFIjpyZXR1cm4gUUEodGhpcy5lcnJvcik7Y2FzZSJDIjpyZXR1cm4gYUkoKX10''@;'; put 'put ''aHJvdyBuZXcgRXJyb3IoInVuZXhwZWN0ZWQgbm90aWZpY2F0aW9uIGtpbmQgdmFsdWUiKX1zdGF0aWMgY3JlYXRlTmV4dChnKXtyZXR1cm4gdm9pZCAwIT09Zz9uZXcgWDMoIk4iLGcpOlgzLnVuZGVmaW5lZFZhbHVlTm90aWZpY2F0aW9ufXN0YXRpYyBjcmVhdGVFcnJvcihnKXtyZXR1cm4g''@;'; put 'put ''bmV3IFgzKCJFIix2b2lkIDAsZyl9c3RhdGljIGNyZWF0ZUNvbXBsZXRlKCl7cmV0dXJuIFgzLmNvbXBsZXRlTm90aWZpY2F0aW9ufX1YMy5jb21wbGV0ZU5vdGlmaWNhdGlvbj1uZXcgWDMoIkMiKSxYMy51bmRlZmluZWRWYWx1ZU5vdGlmaWNhdGlvbj1uZXcgWDMoIk4iLHZvaWQgMCk7Y2xh''@;'; put 'put ''c3MgUkQgZXh0ZW5kcyB6e2NvbnN0cnVjdG9yKGcsaCx2PTApe3N1cGVyKGcpLHRoaXMuc2NoZWR1bGVyPWgsdGhpcy5kZWxheT12fXN0YXRpYyBkaXNwYXRjaChnKXtjb25zdHtub3RpZmljYXRpb246aCxkZXN0aW5hdGlvbjp2fT1nO2gub2JzZXJ2ZSh2KSx0aGlzLnVuc3Vic2NyaWJlKCl9''@;'; put 'put ''c2NoZWR1bGVNZXNzYWdlKGcpe3RoaXMuZGVzdGluYXRpb24uYWRkKHRoaXMuc2NoZWR1bGVyLnNjaGVkdWxlKFJELmRpc3BhdGNoLHRoaXMuZGVsYXksbmV3IHIyZShnLHRoaXMuZGVzdGluYXRpb24pKSl9X25leHQoZyl7dGhpcy5zY2hlZHVsZU1lc3NhZ2UoWDMuY3JlYXRlTmV4dChnKSl9''@;'; put 'put ''X2Vycm9yKGcpe3RoaXMuc2NoZWR1bGVNZXNzYWdlKFgzLmNyZWF0ZUVycm9yKGcpKSx0aGlzLnVuc3Vic2NyaWJlKCl9X2NvbXBsZXRlKCl7dGhpcy5zY2hlZHVsZU1lc3NhZ2UoWDMuY3JlYXRlQ29tcGxldGUoKSksdGhpcy51bnN1YnNjcmliZSgpfX1jbGFzcyByMmV7Y29uc3RydWN0b3Io''@;'; put 'put ''ZyxoKXt0aGlzLm5vdGlmaWNhdGlvbj1nLHRoaXMuZGVzdGluYXRpb249aH19Y2xhc3MgeGsgZXh0ZW5kcyAkZXtjb25zdHJ1Y3RvcihnPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxoPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSx2KXtzdXBlcigpLHRoaXMuc2NoZWR1bGVyPXYsdGhpcy5f''@;'; put 'put ''ZXZlbnRzPVtdLHRoaXMuX2luZmluaXRlVGltZVdpbmRvdz0hMSx0aGlzLl9idWZmZXJTaXplPWc8MT8xOmcsdGhpcy5fd2luZG93VGltZT1oPDE/MTpoLGg9PT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk/KHRoaXMuX2luZmluaXRlVGltZVdpbmRvdz0hMCx0aGlzLm5leHQ9dGhpcy5uZXh0''@;'; put 'put ''SW5maW5pdGVUaW1lV2luZG93KTp0aGlzLm5leHQ9dGhpcy5uZXh0VGltZVdpbmRvd31uZXh0SW5maW5pdGVUaW1lV2luZG93KGcpe2lmKCF0aGlzLmlzU3RvcHBlZCl7Y29uc3QgaD10aGlzLl9ldmVudHM7aC5wdXNoKGcpLGgubGVuZ3RoPnRoaXMuX2J1ZmZlclNpemUmJmguc2hpZnQoKX1z''@;'; put 'put ''dXBlci5uZXh0KGcpfW5leHRUaW1lV2luZG93KGcpe3RoaXMuaXNTdG9wcGVkfHwodGhpcy5fZXZlbnRzLnB1c2gobmV3IGkyZSh0aGlzLl9nZXROb3coKSxnKSksdGhpcy5fdHJpbUJ1ZmZlclRoZW5HZXRFdmVudHMoKSksc3VwZXIubmV4dChnKX1fc3Vic2NyaWJlKGcpe2NvbnN0IGg9dGhp''@;'; put 'put ''cy5faW5maW5pdGVUaW1lV2luZG93LHY9aD90aGlzLl9ldmVudHM6dGhpcy5fdHJpbUJ1ZmZlclRoZW5HZXRFdmVudHMoKSx5PXRoaXMuc2NoZWR1bGVyLEM9di5sZW5ndGg7bGV0IEk7aWYodGhpcy5jbG9zZWQpdGhyb3cgbmV3IERlO2lmKHRoaXMuaXNTdG9wcGVkfHx0aGlzLmhhc0Vycm9y''@;'; put 'put ''P0k9VGUuRU1QVFk6KHRoaXMub2JzZXJ2ZXJzLnB1c2goZyksST1uZXcgUGUodGhpcyxnKSkseSYmZy5hZGQoZz1uZXcgUkQoZyx5KSksaClmb3IobGV0IFo9MDtaPEMmJiFnLmNsb3NlZDtaKyspZy5uZXh0KHZbWl0pO2Vsc2UgZm9yKGxldCBaPTA7WjxDJiYhZy5jbG9zZWQ7WisrKWcubmV4''@;'; put 'put ''dCh2W1pdLnZhbHVlKTtyZXR1cm4gdGhpcy5oYXNFcnJvcj9nLmVycm9yKHRoaXMudGhyb3duRXJyb3IpOnRoaXMuaXNTdG9wcGVkJiZnLmNvbXBsZXRlKCksSX1fZ2V0Tm93KCl7cmV0dXJuKHRoaXMuc2NoZWR1bGVyfHxPRCkubm93KCl9X3RyaW1CdWZmZXJUaGVuR2V0RXZlbnRzKCl7Y29u''@;'; put 'put ''c3QgZz10aGlzLl9nZXROb3coKSxoPXRoaXMuX2J1ZmZlclNpemUsdj10aGlzLl93aW5kb3dUaW1lLHk9dGhpcy5fZXZlbnRzLEM9eS5sZW5ndGg7bGV0IEk9MDtmb3IoO0k8QyYmIShnLXlbSV0udGltZTx2KTspSSsrO3JldHVybiBDPmgmJihJPU1hdGgubWF4KEksQy1oKSksST4wJiZ5LnNw''@;'; put 'put ''bGljZSgwLEkpLHl9fWNsYXNzIGkyZXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMudGltZT1nLHRoaXMudmFsdWU9aH19Y2xhc3MgU1h7fWNvbnN0IG44PSIqIjtmdW5jdGlvbiAkaChkLGcpe3JldHVybnt0eXBlOjcsbmFtZTpkLGRlZmluaXRpb25zOmcsb3B0aW9uczp7fX19ZnVuY3Rpb24gRGMo''@;'; put 'put ''ZCxnPW51bGwpe3JldHVybnt0eXBlOjQsc3R5bGVzOmcsdGltaW5nczpkfX1mdW5jdGlvbiBUayhkLGc9bnVsbCl7cmV0dXJue3R5cGU6MixzdGVwczpkLG9wdGlvbnM6Z319ZnVuY3Rpb24geWwoZCl7cmV0dXJue3R5cGU6NixzdHlsZXM6ZCxvZmZzZXQ6bnVsbH19ZnVuY3Rpb24gWjcoZCxn''@;'; put 'put ''LGgpe3JldHVybnt0eXBlOjAsbmFtZTpkLHN0eWxlczpnLG9wdGlvbnM6aH19ZnVuY3Rpb24gYTJlKGQpe3JldHVybnt0eXBlOjUsc3RlcHM6ZH19ZnVuY3Rpb24gYnUoZCxnLGg9bnVsbCl7cmV0dXJue3R5cGU6MSxleHByOmQsYW5pbWF0aW9uOmcsb3B0aW9uczpofX1mdW5jdGlvbiB2Vihk''@;'; put 'put ''KXtQcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihkKX1jbGFzcyBJa3tjb25zdHJ1Y3RvcihnPTAsaD0wKXt0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10sdGhpcy5fb3JpZ2luYWxPbkRvbmVGbnM9W10sdGhpcy5fb3JpZ2luYWxP''@;'; put 'put ''blN0YXJ0Rm5zPVtdLHRoaXMuX3N0YXJ0ZWQ9ITEsdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX2ZpbmlzaGVkPSExLHRoaXMuX3Bvc2l0aW9uPTAsdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLnRvdGFsVGltZT1nK2h9X29uRmluaXNoKCl7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9maW5p''@;'; put 'put ''c2hlZD0hMCx0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRG9uZUZucz1bXSl9b25TdGFydChnKXt0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnMucHVzaChnKSx0aGlzLl9vblN0YXJ0Rm5zLnB1c2goZyl9b25Eb25lKGcpe3RoaXMuX29yaWdpbmFsT25Eb25lRm5zLnB1''@;'; put 'put ''c2goZyksdGhpcy5fb25Eb25lRm5zLnB1c2goZyl9b25EZXN0cm95KGcpe3RoaXMuX29uRGVzdHJveUZucy5wdXNoKGcpfWhhc1N0YXJ0ZWQoKXtyZXR1cm4gdGhpcy5fc3RhcnRlZH1pbml0KCl7fXBsYXkoKXt0aGlzLmhhc1N0YXJ0ZWQoKXx8KHRoaXMuX29uU3RhcnQoKSx0aGlzLnRyaWdn''@;'; put 'put ''ZXJNaWNyb3Rhc2soKSksdGhpcy5fc3RhcnRlZD0hMH10cmlnZ2VyTWljcm90YXNrKCl7dlYoKCk9PnRoaXMuX29uRmluaXNoKCkpfV9vblN0YXJ0KCl7dGhpcy5fb25TdGFydEZucy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25TdGFydEZucz1bXX1wYXVzZSgpe31yZXN0YXJ0KCl7fWZpbmlz''@;'; put 'put ''aCgpe3RoaXMuX29uRmluaXNoKCl9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLmhhc1N0YXJ0ZWQoKXx8dGhpcy5fb25TdGFydCgpLHRoaXMuZmluaXNoKCksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vbkRlc3Ry''@;'; put 'put ''b3lGbnM9W10pfXJlc2V0KCl7dGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9vblN0YXJ0Rm5zPXRoaXMuX29yaWdpbmFsT25TdGFydEZucyx0aGlzLl9vbkRvbmVGbnM9dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnN9c2V0UG9zaXRpb24oZyl7dGhpcy5fcG9zaXRpb249''@;'; put 'put ''dGhpcy50b3RhbFRpbWU/Zyp0aGlzLnRvdGFsVGltZToxfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMudG90YWxUaW1lP3RoaXMuX3Bvc2l0aW9uL3RoaXMudG90YWxUaW1lOjF9dHJpZ2dlckNhbGxiYWNrKGcpe2NvbnN0IGg9InN0YXJ0Ij09Zz90aGlzLl9vblN0YXJ0Rm5zOnRoaXMuX29u''@;'; put 'put ''RG9uZUZucztoLmZvckVhY2godj0+digpKSxoLmxlbmd0aD0wfX1jbGFzcyB6N3tjb25zdHJ1Y3RvcihnKXt0aGlzLl9vbkRvbmVGbnM9W10sdGhpcy5fb25TdGFydEZucz1bXSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFydGVkPSExLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9vbkRl''@;'; put 'put ''c3Ryb3lGbnM9W10sdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLnRvdGFsVGltZT0wLHRoaXMucGxheWVycz1nO2xldCBoPTAsdj0wLHk9MDtjb25zdCBDPXRoaXMucGxheWVycy5sZW5ndGg7MD09Qz92VigoKT0+dGhpcy5fb25GaW5pc2goKSk6dGhpcy5wbGF5ZXJzLmZvckVhY2goST0+''@;'; put 'put ''e0kub25Eb25lKCgpPT57KytoPT1DJiZ0aGlzLl9vbkZpbmlzaCgpfSksSS5vbkRlc3Ryb3koKCk9PnsrK3Y9PUMmJnRoaXMuX29uRGVzdHJveSgpfSksSS5vblN0YXJ0KCgpPT57Kyt5PT1DJiZ0aGlzLl9vblN0YXJ0KCl9KX0pLHRoaXMudG90YWxUaW1lPXRoaXMucGxheWVycy5yZWR1Y2Uo''@;'; put 'put ''KEksWik9Pk1hdGgubWF4KEksWi50b3RhbFRpbWUpLDApfV9vbkZpbmlzaCgpe3RoaXMuX2ZpbmlzaGVkfHwodGhpcy5fZmluaXNoZWQ9ITAsdGhpcy5fb25Eb25lRm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vbkRvbmVGbnM9W10pfWluaXQoKXt0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5n''@;'; put 'put ''LmluaXQoKSl9b25TdGFydChnKXt0aGlzLl9vblN0YXJ0Rm5zLnB1c2goZyl9X29uU3RhcnQoKXt0aGlzLmhhc1N0YXJ0ZWQoKXx8KHRoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fb25TdGFydEZucy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25TdGFydEZucz1bXSl9b25Eb25lKGcpe3RoaXMuX29u''@;'; put 'put ''RG9uZUZucy5wdXNoKGcpfW9uRGVzdHJveShnKXt0aGlzLl9vbkRlc3Ryb3lGbnMucHVzaChnKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9cGxheSgpe3RoaXMucGFyZW50UGxheWVyfHx0aGlzLmluaXQoKSx0aGlzLl9vblN0YXJ0KCksdGhpcy5wbGF5ZXJzLmZvckVhY2go''@;'; put 'put ''Zz0+Zy5wbGF5KCkpfXBhdXNlKCl7dGhpcy5wbGF5ZXJzLmZvckVhY2goZz0+Zy5wYXVzZSgpKX1yZXN0YXJ0KCl7dGhpcy5wbGF5ZXJzLmZvckVhY2goZz0+Zy5yZXN0YXJ0KCkpfWZpbmlzaCgpe3RoaXMuX29uRmluaXNoKCksdGhpcy5wbGF5ZXJzLmZvckVhY2goZz0+Zy5maW5pc2goKSl9''@;'; put 'put ''ZGVzdHJveSgpe3RoaXMuX29uRGVzdHJveSgpfV9vbkRlc3Ryb3koKXt0aGlzLl9kZXN0cm95ZWR8fCh0aGlzLl9kZXN0cm95ZWQ9ITAsdGhpcy5fb25GaW5pc2goKSx0aGlzLnBsYXllcnMuZm9yRWFjaChnPT5nLmRlc3Ryb3koKSksdGhpcy5fb25EZXN0cm95Rm5zLmZvckVhY2goZz0+Zygp''@;'; put 'put ''KSx0aGlzLl9vbkRlc3Ryb3lGbnM9W10pfXJlc2V0KCl7dGhpcy5wbGF5ZXJzLmZvckVhY2goZz0+Zy5yZXNldCgpKSx0aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMX1zZXRQb3NpdGlvbihnKXtjb25zdCBoPWcqdGhpcy50b3RhbFRpbWU7dGhp''@;'; put 'put ''cy5wbGF5ZXJzLmZvckVhY2godj0+e2NvbnN0IHk9di50b3RhbFRpbWU/TWF0aC5taW4oMSxoL3YudG90YWxUaW1lKToxO3Yuc2V0UG9zaXRpb24oeSl9KX1nZXRQb3NpdGlvbigpe2NvbnN0IGc9dGhpcy5wbGF5ZXJzLnJlZHVjZSgoaCx2KT0+bnVsbD09PWh8fHYudG90YWxUaW1lPmgudG90''@;'; put 'put ''YWxUaW1lP3Y6aCxudWxsKTtyZXR1cm4gbnVsbCE9Zz9nLmdldFBvc2l0aW9uKCk6MH1iZWZvcmVEZXN0cm95KCl7dGhpcy5wbGF5ZXJzLmZvckVhY2goZz0+e2cuYmVmb3JlRGVzdHJveSYmZy5iZWZvcmVEZXN0cm95KCl9KX10cmlnZ2VyQ2FsbGJhY2soZyl7Y29uc3QgaD0ic3RhcnQiPT1n''@;'; put 'put ''P3RoaXMuX29uU3RhcnRGbnM6dGhpcy5fb25Eb25lRm5zO2guZm9yRWFjaCh2PT52KCkpLGgubGVuZ3RoPTB9fWZ1bmN0aW9uIERrKGQsZyl7cmV0dXJuIG5ldyBGKGg9Pntjb25zdCB2PWQubGVuZ3RoO2lmKDA9PT12KXJldHVybiB2b2lkIGguY29tcGxldGUoKTtjb25zdCB5PW5ldyBBcnJh''@;'; put 'put ''eSh2KTtsZXQgQz0wLEk9MDtmb3IobGV0IFo9MDtaPHY7WisrKXtjb25zdCB1ZT1kbihkW1pdKTtsZXQgX2U9ITE7aC5hZGQodWUuc3Vic2NyaWJlKHtuZXh0OkJlPT57X2V8fChfZT0hMCxJKyspLHlbWl09QmV9LGVycm9yOkJlPT5oLmVycm9yKEJlKSxjb21wbGV0ZTooKT0+e0MrKywoQz09''@;'; put 'put ''PXZ8fCFfZSkmJihJPT09diYmaC5uZXh0KGc/Zy5yZWR1Y2UoKEJlLE5lLEtlKT0+KEJlW05lXT15W0tlXSxCZSkse30pOnkpLGguY29tcGxldGUoKSl9fSkpfX0pfWxldCBNWD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5fcmVuZGVyZXI9aCx0aGlzLl9lbGVtZW50UmVm''@;'; put 'put ''PXYsdGhpcy5vbkNoYW5nZT15PT57fSx0aGlzLm9uVG91Y2hlZD0oKT0+e319c2V0UHJvcGVydHkoaCx2KXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsaCx2KX1yZWdpc3Rlck9uVG91Y2hlZChoKXt0aGlzLm9uVG91Y2hlZD1ofXJl''@;'; put 'put ''Z2lzdGVyT25DaGFuZ2UoaCl7dGhpcy5vbkNoYW5nZT1ofXNldERpc2FibGVkU3RhdGUoaCl7dGhpcy5zZXRQcm9wZXJ0eSgiZGlzYWJsZWQiLGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChHYSksS3QoYm8pKX0sZC5cdTAyNzVkaXI9V2ko''@;'; put 'put ''e3R5cGU6ZH0pLGR9KSgpLEc3PSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBNWHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGc7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybihnfHwoZz1mbChkKSkpKHZ8fGQpfX0oKSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLGZlYXR1cmVzOltE''@;'; put 'put ''b119KSxkfSkoKTtjb25zdCBncD1uZXcgemUoIk5nVmFsdWVBY2Nlc3NvciIpLGgyZT17cHJvdmlkZTpncCx1c2VFeGlzdGluZzpfbigoKT0+SWYpLG11bHRpOiEwfTtsZXQgSWY9KCgpPT57Y2xhc3MgZCBleHRlbmRzIEc3e3dyaXRlVmFsdWUoaCl7dGhpcy5zZXRQcm9wZXJ0eSgiY2hlY2tl''@;'; put 'put ''ZCIsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siaW5wdXQiLCJ0eXBlIiwiY2hlY2tib3giLCJmb3JtQ29udHJv''@;'; put 'put ''bE5hbWUiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsImNoZWNrYm94IiwibmdNb2RlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJjaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9u''@;'; put 'put ''Q2hhbmdlKEMudGFyZ2V0LmNoZWNrZWQpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25Ub3VjaGVkKCl9KX0sZmVhdHVyZXM6W2hvKFtoMmVdKSxEb119KSxkfSkoKTtjb25zdCBFWD17cHJvdmlkZTpncCx1c2VFeGlzdGluZzpfbigoKT0+bTEpLG11bHRpOiEwfSxkMmU9bmV3IHpl''@;'; put 'put ''KCJDb21wb3NpdGlvbkV2ZW50TW9kZSIpO2xldCBtMT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgTVh7Y29uc3RydWN0b3IoaCx2LHkpe3N1cGVyKGgsdiksdGhpcy5fY29tcG9zaXRpb25Nb2RlPXksdGhpcy5fY29tcG9zaW5nPSExLG51bGw9PXRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmKHRoaXMu''@;'; put 'put ''X2NvbXBvc2l0aW9uTW9kZT0hZnVuY3Rpb24geFgoKXtjb25zdCBkPVVkKCk/VWQoKS5nZXRVc2VyQWdlbnQoKToiIjtyZXR1cm4vYW5kcm9pZCAoXGQrKS8udGVzdChkLnRvTG93ZXJDYXNlKCkpfSgpKX13cml0ZVZhbHVlKGgpe3RoaXMuc2V0UHJvcGVydHkoInZhbHVlIixudWxsPT1oPyIi''@;'; put 'put ''OmgpfV9oYW5kbGVJbnB1dChoKXsoIXRoaXMuX2NvbXBvc2l0aW9uTW9kZXx8dGhpcy5fY29tcG9zaXRpb25Nb2RlJiYhdGhpcy5fY29tcG9zaW5nKSYmdGhpcy5vbkNoYW5nZShoKX1fY29tcG9zaXRpb25TdGFydCgpe3RoaXMuX2NvbXBvc2luZz0hMH1fY29tcG9zaXRpb25FbmQoaCl7dGhp''@;'; put 'put ''cy5fY29tcG9zaW5nPSExLHRoaXMuX2NvbXBvc2l0aW9uTW9kZSYmdGhpcy5vbkNoYW5nZShoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoR2EpLEt0KGJvKSxLdChkMmUsOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpb''@;'; put 'put ''WyJpbnB1dCIsImZvcm1Db250cm9sTmFtZSIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sTmFtZSIsIiJdLFsiaW5wdXQiLCJmb3JtQ29udHJvbCIsIiIsMywidHlwZSIsImNoZWNrYm94Il0sWyJ0ZXh0YXJlYSIsImZvcm1Db250cm9sIiwiIl0sWyJp''@;'; put 'put ''bnB1dCIsIm5nTW9kZWwiLCIiLDMsInR5cGUiLCJjaGVja2JveCJdLFsidGV4dGFyZWEiLCJuZ01vZGVsIiwiIl0sWyIiLCJuZ0RlZmF1bHRDb250cm9sIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImlucHV0IixmdW5jdGlvbihDKXtyZXR1cm4gdi5faGFuZGxl''@;'; put 'put ''SW5wdXQoQy50YXJnZXQudmFsdWUpfSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25Ub3VjaGVkKCl9KSgiY29tcG9zaXRpb25zdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5fY29tcG9zaXRpb25TdGFydCgpfSkoImNvbXBvc2l0aW9uZW5kIixmdW5jdGlvbihDKXtyZXR1cm4gdi5f''@;'; put 'put ''Y29tcG9zaXRpb25FbmQoQy50YXJnZXQudmFsdWUpfSl9LGZlYXR1cmVzOltobyhbRVhdKSxEb119KSxkfSkoKTtjb25zdCBLYz1uZXcgemUoIk5nVmFsaWRhdG9ycyIpLGhnPW5ldyB6ZSgiTmdBc3luY1ZhbGlkYXRvcnMiKTtmdW5jdGlvbiBMWChkKXtyZXR1cm4gbnVsbCE9ZH1mdW5jdGlv''@;'; put 'put ''biBfVihkKXtyZXR1cm4gVm0oZCk/ZG4oZCk6ZH1mdW5jdGlvbiBDVihkKXtsZXQgZz17fTtyZXR1cm4gZC5mb3JFYWNoKGg9PntnPW51bGwhPWg/T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLGgpOmd9KSwwPT09T2JqZWN0LmtleXMoZykubGVuZ3RoP251bGw6Z31mdW5jdGlv''@;'; put 'put ''biBPeShkLGcpe3JldHVybiBnLm1hcChoPT5oKGQpKX1mdW5jdGlvbiBrVihkKXtyZXR1cm4gZC5tYXAoZz0+ZnVuY3Rpb24gQkQoZCl7cmV0dXJuIWQudmFsaWRhdGV9KGcpP2c6aD0+Zy52YWxpZGF0ZShoKSl9ZnVuY3Rpb24gU1YoZCl7cmV0dXJuIG51bGwhPWQ/ZnVuY3Rpb24gT1goZCl7''@;'; put 'put ''aWYoIWQpcmV0dXJuIG51bGw7Y29uc3QgZz1kLmZpbHRlcihMWCk7cmV0dXJuIDA9PWcubGVuZ3RoP251bGw6ZnVuY3Rpb24oaCl7cmV0dXJuIENWKE95KGgsZykpfX0oa1YoZCkpOm51bGx9ZnVuY3Rpb24gT2soZCl7cmV0dXJuIG51bGwhPWQ/ZnVuY3Rpb24gTVYoZCl7aWYoIWQpcmV0dXJu''@;'; put 'put ''IG51bGw7Y29uc3QgZz1kLmZpbHRlcihMWCk7cmV0dXJuIDA9PWcubGVuZ3RoP251bGw6ZnVuY3Rpb24oaCl7cmV0dXJuIGZ1bmN0aW9uIGYyZSguLi5kKXtpZigxPT09ZC5sZW5ndGgpe2NvbnN0IGc9ZFswXTtpZihBZShnKSlyZXR1cm4gRGsoZyxudWxsKTtpZihrZShnKSYmT2JqZWN0Lmdl''@;'; put 'put ''dFByb3RvdHlwZU9mKGcpPT09T2JqZWN0LnByb3RvdHlwZSl7Y29uc3QgaD1PYmplY3Qua2V5cyhnKTtyZXR1cm4gRGsoaC5tYXAodj0+Z1t2XSksaCl9fWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkW2QubGVuZ3RoLTFdKXtjb25zdCBnPWQucG9wKCk7cmV0dXJuIERrKGQ9MT09PWQubGVuZ3Ro''@;'; put 'put ''JiZBZShkWzBdKT9kWzBdOmQsbnVsbCkucGlwZShtdChoPT5nKC4uLmgpKSl9cmV0dXJuIERrKGQsbnVsbCl9KE95KGgsZykubWFwKF9WKSkucGlwZShtdChDVikpfX0oa1YoZCkpOm51bGx9ZnVuY3Rpb24gUlgoZCxnKXtyZXR1cm4gbnVsbD09PWQ/W2ddOkFycmF5LmlzQXJyYXkoZCk/Wy4u''@;'; put 'put ''LmQsZ106W2QsZ119ZnVuY3Rpb24gRVYoZCl7cmV0dXJuIGQ/QXJyYXkuaXNBcnJheShkKT9kOltkXTpbXX1mdW5jdGlvbiBQRChkLGcpe3JldHVybiBBcnJheS5pc0FycmF5KGQpP2QuaW5jbHVkZXMoZyk6ZD09PWd9ZnVuY3Rpb24gaTgoZCxnKXtjb25zdCBoPUVWKGcpO3JldHVybiBFVihk''@;'; put 'put ''KS5mb3JFYWNoKHk9PntQRChoLHkpfHxoLnB1c2goeSl9KSxofWZ1bmN0aW9uIEZYKGQsZyl7cmV0dXJuIEVWKGcpLmZpbHRlcihoPT4hUEQoZCxoKSl9Y2xhc3Mgbzh7Y29uc3RydWN0b3IoKXt0aGlzLl9yYXdWYWxpZGF0b3JzPVtdLHRoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1bXSx0aGlz''@;'; put 'put ''Ll9vbkRlc3Ryb3lDYWxsYmFja3M9W119Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wudmFsdWU6bnVsbH1nZXQgdmFsaWQoKXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWxpZDpudWxsfWdldCBpbnZhbGlkKCl7cmV0dXJuIHRoaXMuY29u''@;'; put 'put ''dHJvbD90aGlzLmNvbnRyb2wuaW52YWxpZDpudWxsfWdldCBwZW5kaW5nKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wucGVuZGluZzpudWxsfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmRpc2FibGVkOm51bGx9Z2V0IGVuYWJsZWQo''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC5lbmFibGVkOm51bGx9Z2V0IGVycm9ycygpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLmVycm9yczpudWxsfWdldCBwcmlzdGluZSgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnByaXN0aW5lOm51''@;'; put 'put ''bGx9Z2V0IGRpcnR5KCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZGlydHk6bnVsbH1nZXQgdG91Y2hlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnRvdWNoZWQ6bnVsbH1nZXQgc3RhdHVzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wu''@;'; put 'put ''c3RhdHVzOm51bGx9Z2V0IHVudG91Y2hlZCgpe3JldHVybiB0aGlzLmNvbnRyb2w/dGhpcy5jb250cm9sLnVudG91Y2hlZDpudWxsfWdldCBzdGF0dXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlczpudWxsfWdldCB2YWx1ZUNoYW5nZXMo''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5jb250cm9sP3RoaXMuY29udHJvbC52YWx1ZUNoYW5nZXM6bnVsbH1nZXQgcGF0aCgpe3JldHVybiBudWxsfV9zZXRWYWxpZGF0b3JzKGcpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9Z3x8W10sdGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbj1TVih0aGlzLl9yYXdWYWxpZGF0''@;'; put 'put ''b3JzKX1fc2V0QXN5bmNWYWxpZGF0b3JzKGcpe3RoaXMuX3Jhd0FzeW5jVmFsaWRhdG9ycz1nfHxbXSx0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49T2sodGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzKX1nZXQgdmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkVmFsaWRhdG9y''@;'; put 'put ''Rm58fG51bGx9Z2V0IGFzeW5jVmFsaWRhdG9yKCl7cmV0dXJuIHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbnx8bnVsbH1fcmVnaXN0ZXJPbkRlc3Ryb3koZyl7dGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzLnB1c2goZyl9X2ludm9rZU9uRGVzdHJveUNhbGxiYWNrcygpe3RoaXMuX29u''@;'; put 'put ''RGVzdHJveUNhbGxiYWNrcy5mb3JFYWNoKGc9PmcoKSksdGhpcy5fb25EZXN0cm95Q2FsbGJhY2tzPVtdfXJlc2V0KGcpe3RoaXMuY29udHJvbCYmdGhpcy5jb250cm9sLnJlc2V0KGcpfWhhc0Vycm9yKGcsaCl7cmV0dXJuISF0aGlzLmNvbnRyb2wmJnRoaXMuY29udHJvbC5oYXNFcnJvcihn''@;'; put 'put ''LGgpfWdldEVycm9yKGcsaCl7cmV0dXJuIHRoaXMuY29udHJvbD90aGlzLmNvbnRyb2wuZ2V0RXJyb3IoZyxoKTpudWxsfX1jbGFzcyBEZiBleHRlbmRzIG84e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLm5hbWU9bnVsbCx0aGlzLnZh''@;'; put 'put ''bHVlQWNjZXNzb3I9bnVsbH19Y2xhc3MgTGYgZXh0ZW5kcyBvOHtnZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiBudWxsfWdldCBwYXRoKCl7cmV0dXJuIG51bGx9fWNsYXNzIEZEe2NvbnN0cnVjdG9yKGcpe3RoaXMuX2NkPWd9Z2V0IGlzVG91Y2hlZCgpe3ZhciBnLGg7cmV0dXJuIShudWxs''@;'; put 'put ''PT09KGg9bnVsbD09PShnPXRoaXMuX2NkKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWgudG91Y2hlZCl9Z2V0IGlzVW50b3VjaGVkKCl7dmFyIGcsaDtyZXR1cm4hKG51bGw9PT0oaD1udWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nP3ZvaWQgMDpn''@;'; put 'put ''LmNvbnRyb2wpfHx2b2lkIDA9PT1ofHwhaC51bnRvdWNoZWQpfWdldCBpc1ByaXN0aW5lKCl7dmFyIGcsaDtyZXR1cm4hKG51bGw9PT0oaD1udWxsPT09KGc9dGhpcy5fY2QpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmNvbnRyb2wpfHx2b2lkIDA9PT1ofHwhaC5wcmlzdGluZSl9Z2V0IGlzRGly''@;'; put 'put ''dHkoKXt2YXIgZyxoO3JldHVybiEobnVsbD09PShoPW51bGw9PT0oZz10aGlzLl9jZCl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29udHJvbCl8fHZvaWQgMD09PWh8fCFoLmRpcnR5KX1nZXQgaXNWYWxpZCgpe3ZhciBnLGg7cmV0dXJuIShudWxsPT09KGg9bnVsbD09PShnPXRoaXMuX2NkKXx8''@;'; put 'put ''dm9pZCAwPT09Zz92b2lkIDA6Zy5jb250cm9sKXx8dm9pZCAwPT09aHx8IWgudmFsaWQpfWdldCBpc0ludmFsaWQoKXt2YXIgZyxoO3JldHVybiEobnVsbD09PShoPW51bGw9PT0oZz10aGlzLl9jZCl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29udHJvbCl8fHZvaWQgMD09PWh8fCFoLmludmFs''@;'; put 'put ''aWQpfWdldCBpc1BlbmRpbmcoKXt2YXIgZyxoO3JldHVybiEobnVsbD09PShoPW51bGw9PT0oZz10aGlzLl9jZCl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29udHJvbCl8fHZvaWQgMD09PWh8fCFoLnBlbmRpbmcpfWdldCBpc1N1Ym1pdHRlZCgpe3ZhciBnO3JldHVybiEobnVsbD09PShnPXRo''@;'; put 'put ''aXMuX2NkKXx8dm9pZCAwPT09Z3x8IWcuc3VibWl0dGVkKX19bGV0IFRzPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBGRHtjb25zdHJ1Y3RvcihoKXtzdXBlcihoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoRGYsMikpfSxkLlx1MDI3NWRpcj1X''@;'; put 'put ''aSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJmb3JtQ29udHJvbE5hbWUiLCIiXSxbIiIsIm5nTW9kZWwiLCIiXSxbIiIsImZvcm1Db250cm9sIiwiIl1dLGhvc3RWYXJzOjE0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoIm5nLXVudG91Y2hlZCIsdi5pc1VudG91Y2hlZCko''@;'; put 'put ''Im5nLXRvdWNoZWQiLHYuaXNUb3VjaGVkKSgibmctcHJpc3RpbmUiLHYuaXNQcmlzdGluZSkoIm5nLWRpcnR5Iix2LmlzRGlydHkpKCJuZy12YWxpZCIsdi5pc1ZhbGlkKSgibmctaW52YWxpZCIsdi5pc0ludmFsaWQpKCJuZy1wZW5kaW5nIix2LmlzUGVuZGluZyl9LGZlYXR1cmVzOltEb119''@;'; put 'put ''KSxkfSkoKSxkZz0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRkR7Y29uc3RydWN0b3IoaCl7c3VwZXIoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KExmLDEwKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImZvcm1H''@;'; put 'put ''cm91cE5hbWUiLCIiXSxbIiIsImZvcm1BcnJheU5hbWUiLCIiXSxbIiIsIm5nTW9kZWxHcm91cCIsIiJdLFsiIiwiZm9ybUdyb3VwIiwiIl0sWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiJdLFsiIiwibmdGb3JtIiwiIl1dLGhvc3RWYXJzOjE2LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezIm''@;'; put 'put ''aCYmRmkoIm5nLXVudG91Y2hlZCIsdi5pc1VudG91Y2hlZCkoIm5nLXRvdWNoZWQiLHYuaXNUb3VjaGVkKSgibmctcHJpc3RpbmUiLHYuaXNQcmlzdGluZSkoIm5nLWRpcnR5Iix2LmlzRGlydHkpKCJuZy12YWxpZCIsdi5pc1ZhbGlkKSgibmctaW52YWxpZCIsdi5pc0ludmFsaWQpKCJuZy1w''@;'; put 'put ''ZW5kaW5nIix2LmlzUGVuZGluZykoIm5nLXN1Ym1pdHRlZCIsdi5pc1N1Ym1pdHRlZCl9LGZlYXR1cmVzOltEb119KSxkfSkoKTtjb25zdCBCeT0iVkFMSUQiLFZEPSJJTlZBTElEIixQeT0iUEVORElORyIsUms9IkRJU0FCTEVEIjtmdW5jdGlvbiBEVihkKXtyZXR1cm4oQmsoZCk/ZC52YWxp''@;'; put 'put ''ZGF0b3JzOmQpfHxudWxsfWZ1bmN0aW9uIExWKGQpe3JldHVybiBBcnJheS5pc0FycmF5KGQpP1NWKGQpOmR8fG51bGx9ZnVuY3Rpb24gakQoZCxnKXtyZXR1cm4oQmsoZyk/Zy5hc3luY1ZhbGlkYXRvcnM6ZCl8fG51bGx9ZnVuY3Rpb24gT1YoZCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCk/''@;'; put 'put ''T2soZCk6ZHx8bnVsbH1mdW5jdGlvbiBCayhkKXtyZXR1cm4gbnVsbCE9ZCYmIUFycmF5LmlzQXJyYXkoZCkmJiJvYmplY3QiPT10eXBlb2YgZH1jbGFzcyBqWHtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuX3BlbmRpbmdEaXJ0eT0hMSx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9''@;'; put 'put ''ITEsdGhpcy5fcGVuZGluZ1RvdWNoZWQ9ITEsdGhpcy5fb25Db2xsZWN0aW9uQ2hhbmdlPSgpPT57fSx0aGlzLl9wYXJlbnQ9bnVsbCx0aGlzLnByaXN0aW5lPSEwLHRoaXMudG91Y2hlZD0hMSx0aGlzLl9vbkRpc2FibGVkQ2hhbmdlPVtdLHRoaXMuX3Jhd1ZhbGlkYXRvcnM9Zyx0aGlzLl9y''@;'; put 'put ''YXdBc3luY1ZhbGlkYXRvcnM9aCx0aGlzLl9jb21wb3NlZFZhbGlkYXRvckZuPUxWKHRoaXMuX3Jhd1ZhbGlkYXRvcnMpLHRoaXMuX2NvbXBvc2VkQXN5bmNWYWxpZGF0b3JGbj1PVih0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMpfWdldCB2YWxpZGF0b3IoKXtyZXR1cm4gdGhpcy5fY29tcG9z''@;'; put 'put ''ZWRWYWxpZGF0b3JGbn1zZXQgdmFsaWRhdG9yKGcpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9dGhpcy5fY29tcG9zZWRWYWxpZGF0b3JGbj1nfWdldCBhc3luY1ZhbGlkYXRvcigpe3JldHVybiB0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm59c2V0IGFzeW5jVmFsaWRhdG9yKGcpe3RoaXMu''@;'; put 'put ''X3Jhd0FzeW5jVmFsaWRhdG9ycz10aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49Z31nZXQgcGFyZW50KCl7cmV0dXJuIHRoaXMuX3BhcmVudH1nZXQgdmFsaWQoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT1CeX1nZXQgaW52YWxpZCgpe3JldHVybiB0aGlzLnN0YXR1cz09PVZEfWdldCBw''@;'; put 'put ''ZW5kaW5nKCl7cmV0dXJuIHRoaXMuc3RhdHVzPT1QeX1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5zdGF0dXM9PT1Sa31nZXQgZW5hYmxlZCgpe3JldHVybiB0aGlzLnN0YXR1cyE9PVJrfWdldCBkaXJ0eSgpe3JldHVybiF0aGlzLnByaXN0aW5lfWdldCB1bnRvdWNoZWQoKXtyZXR1cm4h''@;'; put 'put ''dGhpcy50b3VjaGVkfWdldCB1cGRhdGVPbigpe3JldHVybiB0aGlzLl91cGRhdGVPbj90aGlzLl91cGRhdGVPbjp0aGlzLnBhcmVudD90aGlzLnBhcmVudC51cGRhdGVPbjoiY2hhbmdlIn1zZXRWYWxpZGF0b3JzKGcpe3RoaXMuX3Jhd1ZhbGlkYXRvcnM9Zyx0aGlzLl9jb21wb3NlZFZhbGlk''@;'; put 'put ''YXRvckZuPUxWKGcpfXNldEFzeW5jVmFsaWRhdG9ycyhnKXt0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnM9Zyx0aGlzLl9jb21wb3NlZEFzeW5jVmFsaWRhdG9yRm49T1YoZyl9YWRkVmFsaWRhdG9ycyhnKXt0aGlzLnNldFZhbGlkYXRvcnMoaTgoZyx0aGlzLl9yYXdWYWxpZGF0b3JzKSl9YWRk''@;'; put 'put ''QXN5bmNWYWxpZGF0b3JzKGcpe3RoaXMuc2V0QXN5bmNWYWxpZGF0b3JzKGk4KGcsdGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzKSl9cmVtb3ZlVmFsaWRhdG9ycyhnKXt0aGlzLnNldFZhbGlkYXRvcnMoRlgoZyx0aGlzLl9yYXdWYWxpZGF0b3JzKSl9cmVtb3ZlQXN5bmNWYWxpZGF0b3JzKGcp''@;'; put 'put ''e3RoaXMuc2V0QXN5bmNWYWxpZGF0b3JzKEZYKGcsdGhpcy5fcmF3QXN5bmNWYWxpZGF0b3JzKSl9aGFzVmFsaWRhdG9yKGcpe3JldHVybiBQRCh0aGlzLl9yYXdWYWxpZGF0b3JzLGcpfWhhc0FzeW5jVmFsaWRhdG9yKGcpe3JldHVybiBQRCh0aGlzLl9yYXdBc3luY1ZhbGlkYXRvcnMsZyl9''@;'; put 'put ''Y2xlYXJWYWxpZGF0b3JzKCl7dGhpcy52YWxpZGF0b3I9bnVsbH1jbGVhckFzeW5jVmFsaWRhdG9ycygpe3RoaXMuYXN5bmNWYWxpZGF0b3I9bnVsbH1tYXJrQXNUb3VjaGVkKGc9e30pe3RoaXMudG91Y2hlZD0hMCx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQubWFy''@;'; put 'put ''a0FzVG91Y2hlZChnKX1tYXJrQWxsQXNUb3VjaGVkKCl7dGhpcy5tYXJrQXNUb3VjaGVkKHtvbmx5U2VsZjohMH0pLHRoaXMuX2ZvckVhY2hDaGlsZChnPT5nLm1hcmtBbGxBc1RvdWNoZWQoKSl9bWFya0FzVW50b3VjaGVkKGc9e30pe3RoaXMudG91Y2hlZD0hMSx0aGlzLl9wZW5kaW5nVG91''@;'; put 'put ''Y2hlZD0hMSx0aGlzLl9mb3JFYWNoQ2hpbGQoaD0+e2gubWFya0FzVW50b3VjaGVkKHtvbmx5U2VsZjohMH0pfSksdGhpcy5fcGFyZW50JiYhZy5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Ll91cGRhdGVUb3VjaGVkKGcpfW1hcmtBc0RpcnR5KGc9e30pe3RoaXMucHJpc3RpbmU9ITEsdGhpcy5f''@;'; put 'put ''cGFyZW50JiYhZy5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Lm1hcmtBc0RpcnR5KGcpfW1hcmtBc1ByaXN0aW5lKGc9e30pe3RoaXMucHJpc3RpbmU9ITAsdGhpcy5fcGVuZGluZ0RpcnR5PSExLHRoaXMuX2ZvckVhY2hDaGlsZChoPT57aC5tYXJrQXNQcmlzdGluZSh7b25seVNlbGY6ITB9KX0p''@;'; put 'put ''LHRoaXMuX3BhcmVudCYmIWcub25seVNlbGYmJnRoaXMuX3BhcmVudC5fdXBkYXRlUHJpc3RpbmUoZyl9bWFya0FzUGVuZGluZyhnPXt9KXt0aGlzLnN0YXR1cz1QeSwhMSE9PWcuZW1pdEV2ZW50JiZ0aGlzLnN0YXR1c0NoYW5nZXMuZW1pdCh0aGlzLnN0YXR1cyksdGhpcy5fcGFyZW50JiYh''@;'; put 'put ''Zy5vbmx5U2VsZiYmdGhpcy5fcGFyZW50Lm1hcmtBc1BlbmRpbmcoZyl9ZGlzYWJsZShnPXt9KXtjb25zdCBoPXRoaXMuX3BhcmVudE1hcmtlZERpcnR5KGcub25seVNlbGYpO3RoaXMuc3RhdHVzPVJrLHRoaXMuZXJyb3JzPW51bGwsdGhpcy5fZm9yRWFjaENoaWxkKHY9Pnt2LmRpc2FibGUo''@;'; put 'put ''T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtvbmx5U2VsZjohMH0pKX0pLHRoaXMuX3VwZGF0ZVZhbHVlKCksITEhPT1nLmVtaXRFdmVudCYmKHRoaXMudmFsdWVDaGFuZ2VzLmVtaXQodGhpcy52YWx1ZSksdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpKSx0''@;'; put 'put ''aGlzLl91cGRhdGVBbmNlc3RvcnMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtza2lwUHJpc3RpbmVDaGVjazpofSkpLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2UuZm9yRWFjaCh2PT52KCEwKSl9ZW5hYmxlKGc9e30pe2NvbnN0IGg9dGhpcy5fcGFyZW50TWFya2VkRGlydHko''@;'; put 'put ''Zy5vbmx5U2VsZik7dGhpcy5zdGF0dXM9QnksdGhpcy5fZm9yRWFjaENoaWxkKHY9Pnt2LmVuYWJsZShPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sZykse29ubHlTZWxmOiEwfSkpfSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6Zy5l''@;'; put 'put ''bWl0RXZlbnR9KSx0aGlzLl91cGRhdGVBbmNlc3RvcnMoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGcpLHtza2lwUHJpc3RpbmVDaGVjazpofSkpLHRoaXMuX29uRGlzYWJsZWRDaGFuZ2UuZm9yRWFjaCh2PT52KCExKSl9X3VwZGF0ZUFuY2VzdG9ycyhnKXt0aGlzLl9wYXJlbnQm''@;'; put 'put ''JiFnLm9ubHlTZWxmJiYodGhpcy5fcGFyZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZyksZy5za2lwUHJpc3RpbmVDaGVja3x8dGhpcy5fcGFyZW50Ll91cGRhdGVQcmlzdGluZSgpLHRoaXMuX3BhcmVudC5fdXBkYXRlVG91Y2hlZCgpKX1zZXRQYXJlbnQoZyl7dGhpcy5fcGFyZW50PWd9''@;'; put 'put ''Z2V0UmF3VmFsdWUoKXtyZXR1cm4gdGhpcy52YWx1ZX11cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGc9e30pe3RoaXMuX3NldEluaXRpYWxTdGF0dXMoKSx0aGlzLl91cGRhdGVWYWx1ZSgpLHRoaXMuZW5hYmxlZCYmKHRoaXMuX2NhbmNlbEV4aXN0aW5nU3Vic2NyaXB0aW9uKCksdGhpcy5lcnJv''@;'; put 'put ''cnM9dGhpcy5fcnVuVmFsaWRhdG9yKCksdGhpcy5zdGF0dXM9dGhpcy5fY2FsY3VsYXRlU3RhdHVzKCksKHRoaXMuc3RhdHVzPT09Qnl8fHRoaXMuc3RhdHVzPT09UHkpJiZ0aGlzLl9ydW5Bc3luY1ZhbGlkYXRvcihnLmVtaXRFdmVudCkpLCExIT09Zy5lbWl0RXZlbnQmJih0aGlzLnZhbHVl''@;'; put 'put ''Q2hhbmdlcy5lbWl0KHRoaXMudmFsdWUpLHRoaXMuc3RhdHVzQ2hhbmdlcy5lbWl0KHRoaXMuc3RhdHVzKSksdGhpcy5fcGFyZW50JiYhZy5vbmx5U2VsZiYmdGhpcy5fcGFyZW50LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoZyl9X3VwZGF0ZVRyZWVWYWxpZGl0eShnPXtlbWl0RXZlbnQ6ITB9''@;'; put 'put ''KXt0aGlzLl9mb3JFYWNoQ2hpbGQoaD0+aC5fdXBkYXRlVHJlZVZhbGlkaXR5KGcpKSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe29ubHlTZWxmOiEwLGVtaXRFdmVudDpnLmVtaXRFdmVudH0pfV9zZXRJbml0aWFsU3RhdHVzKCl7dGhpcy5zdGF0dXM9dGhpcy5fYWxsQ29udHJvbHNE''@;'; put 'put ''aXNhYmxlZCgpP1JrOkJ5fV9ydW5WYWxpZGF0b3IoKXtyZXR1cm4gdGhpcy52YWxpZGF0b3I/dGhpcy52YWxpZGF0b3IodGhpcyk6bnVsbH1fcnVuQXN5bmNWYWxpZGF0b3IoZyl7aWYodGhpcy5hc3luY1ZhbGlkYXRvcil7dGhpcy5zdGF0dXM9UHksdGhpcy5faGFzT3duUGVuZGluZ0FzeW5j''@;'; put 'put ''VmFsaWRhdG9yPSEwO2NvbnN0IGg9X1YodGhpcy5hc3luY1ZhbGlkYXRvcih0aGlzKSk7dGhpcy5fYXN5bmNWYWxpZGF0aW9uU3Vic2NyaXB0aW9uPWguc3Vic2NyaWJlKHY9Pnt0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITEsdGhpcy5zZXRFcnJvcnModix7ZW1pdEV2ZW50''@;'; put 'put ''Omd9KX0pfX1fY2FuY2VsRXhpc3RpbmdTdWJzY3JpcHRpb24oKXt0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb24mJih0aGlzLl9hc3luY1ZhbGlkYXRpb25TdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSx0aGlzLl9oYXNPd25QZW5kaW5nQXN5bmNWYWxpZGF0b3I9ITEpfXNldEVy''@;'; put 'put ''cm9ycyhnLGg9e30pe3RoaXMuZXJyb3JzPWcsdGhpcy5fdXBkYXRlQ29udHJvbHNFcnJvcnMoITEhPT1oLmVtaXRFdmVudCl9Z2V0KGcpe2xldCBoPWc7cmV0dXJuIG51bGw9PWh8fChBcnJheS5pc0FycmF5KGgpfHwoaD1oLnNwbGl0KCIuIikpLDA9PT1oLmxlbmd0aCk/bnVsbDpoLnJlZHVj''@;'; put 'put ''ZSgodix5KT0+diYmdi5fZmluZCh5KSx0aGlzKX1nZXRFcnJvcihnLGgpe2NvbnN0IHY9aD90aGlzLmdldChoKTp0aGlzO3JldHVybiB2JiZ2LmVycm9ycz92LmVycm9yc1tnXTpudWxsfWhhc0Vycm9yKGcsaCl7cmV0dXJuISF0aGlzLmdldEVycm9yKGcsaCl9Z2V0IHJvb3QoKXtsZXQgZz10''@;'; put 'put ''aGlzO2Zvcig7Zy5fcGFyZW50OylnPWcuX3BhcmVudDtyZXR1cm4gZ31fdXBkYXRlQ29udHJvbHNFcnJvcnMoZyl7dGhpcy5zdGF0dXM9dGhpcy5fY2FsY3VsYXRlU3RhdHVzKCksZyYmdGhpcy5zdGF0dXNDaGFuZ2VzLmVtaXQodGhpcy5zdGF0dXMpLHRoaXMuX3BhcmVudCYmdGhpcy5fcGFy''@;'; put 'put ''ZW50Ll91cGRhdGVDb250cm9sc0Vycm9ycyhnKX1faW5pdE9ic2VydmFibGVzKCl7dGhpcy52YWx1ZUNoYW5nZXM9bmV3IGFyLHRoaXMuc3RhdHVzQ2hhbmdlcz1uZXcgYXJ9X2NhbGN1bGF0ZVN0YXR1cygpe3JldHVybiB0aGlzLl9hbGxDb250cm9sc0Rpc2FibGVkKCk/Ums6dGhpcy5lcnJv''@;'; put 'put ''cnM/VkQ6dGhpcy5faGFzT3duUGVuZGluZ0FzeW5jVmFsaWRhdG9yfHx0aGlzLl9hbnlDb250cm9sc0hhdmVTdGF0dXMoUHkpP1B5OnRoaXMuX2FueUNvbnRyb2xzSGF2ZVN0YXR1cyhWRCk/VkQ6Qnl9X2FueUNvbnRyb2xzSGF2ZVN0YXR1cyhnKXtyZXR1cm4gdGhpcy5fYW55Q29udHJvbHMo''@;'; put 'put ''aD0+aC5zdGF0dXM9PT1nKX1fYW55Q29udHJvbHNEaXJ0eSgpe3JldHVybiB0aGlzLl9hbnlDb250cm9scyhnPT5nLmRpcnR5KX1fYW55Q29udHJvbHNUb3VjaGVkKCl7cmV0dXJuIHRoaXMuX2FueUNvbnRyb2xzKGc9PmcudG91Y2hlZCl9X3VwZGF0ZVByaXN0aW5lKGc9e30pe3RoaXMucHJp''@;'; put 'put ''c3RpbmU9IXRoaXMuX2FueUNvbnRyb2xzRGlydHkoKSx0aGlzLl9wYXJlbnQmJiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVByaXN0aW5lKGcpfV91cGRhdGVUb3VjaGVkKGc9e30pe3RoaXMudG91Y2hlZD10aGlzLl9hbnlDb250cm9sc1RvdWNoZWQoKSx0aGlzLl9wYXJlbnQm''@;'; put 'put ''JiFnLm9ubHlTZWxmJiZ0aGlzLl9wYXJlbnQuX3VwZGF0ZVRvdWNoZWQoZyl9X3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKGcpe3RoaXMuX29uQ29sbGVjdGlvbkNoYW5nZT1nfV9zZXRVcGRhdGVTdHJhdGVneShnKXtCayhnKSYmbnVsbCE9Zy51cGRhdGVPbiYmKHRoaXMuX3VwZGF0ZU9u''@;'; put 'put ''PWcudXBkYXRlT24pfV9wYXJlbnRNYXJrZWREaXJ0eShnKXtyZXR1cm4hZyYmISghdGhpcy5fcGFyZW50fHwhdGhpcy5fcGFyZW50LmRpcnR5KSYmIXRoaXMuX3BhcmVudC5fYW55Q29udHJvbHNEaXJ0eSgpfV9maW5kKGcpe3JldHVybiBudWxsfX1jbGFzcyB6RCBleHRlbmRzIGpYe2NvbnN0''@;'; put 'put ''cnVjdG9yKGcsaCx2KXtzdXBlcihEVihoKSxqRCh2LGgpKSx0aGlzLmNvbnRyb2xzPWcsdGhpcy5faW5pdE9ic2VydmFibGVzKCksdGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koaCksdGhpcy5fc2V0VXBDb250cm9scygpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAs''@;'; put 'put ''ZW1pdEV2ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pfXJlZ2lzdGVyQ29udHJvbChnLGgpe3JldHVybiB0aGlzLmNvbnRyb2xzW2ddP3RoaXMuY29udHJvbHNbZ106KHRoaXMuY29udHJvbHNbZ109aCxoLnNldFBhcmVudCh0aGlzKSxoLl9yZWdpc3Rlck9uQ29sbGVjdGlvbkNoYW5nZSh0''@;'; put 'put ''aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UpLGgpfWFkZENvbnRyb2woZyxoLHY9e30pe3RoaXMucmVnaXN0ZXJDb250cm9sKGcsaCksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6di5lbWl0RXZlbnR9KSx0aGlzLl9vbkNvbGxlY3Rpb25DaGFuZ2UoKX1yZW1vdmVDb250''@;'; put 'put ''cm9sKGcsaD17fSl7dGhpcy5jb250cm9sc1tnXSYmdGhpcy5jb250cm9sc1tnXS5fcmVnaXN0ZXJPbkNvbGxlY3Rpb25DaGFuZ2UoKCk9Pnt9KSxkZWxldGUgdGhpcy5jb250cm9sc1tnXSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDpoLmVtaXRFdmVudH0pLHRoaXMu''@;'; put 'put ''X29uQ29sbGVjdGlvbkNoYW5nZSgpfXNldENvbnRyb2woZyxoLHY9e30pe3RoaXMuY29udHJvbHNbZ10mJnRoaXMuY29udHJvbHNbZ10uX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKCgpPT57fSksZGVsZXRlIHRoaXMuY29udHJvbHNbZ10saCYmdGhpcy5yZWdpc3RlckNvbnRyb2woZyxo''@;'; put 'put ''KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoe2VtaXRFdmVudDp2LmVtaXRFdmVudH0pLHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSgpfWNvbnRhaW5zKGcpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGcpJiZ0aGlzLmNvbnRyb2xzW2ddLmVuYWJsZWR9c2V0VmFs''@;'; put 'put ''dWUoZyxoPXt9KXsoZnVuY3Rpb24gWkQoZCxnLGgpe2QuX2ZvckVhY2hDaGlsZCgodix5KT0+e2lmKHZvaWQgMD09PWhbeV0pdGhyb3cgbmV3IGVuKDEwMDIsIiIpfSl9KSh0aGlzLDAsZyksT2JqZWN0LmtleXMoZykuZm9yRWFjaCh2PT57KGZ1bmN0aW9uIFZYKGQsZyxoKXtjb25zdCB2PWQu''@;'; put 'put ''Y29udHJvbHM7aWYoIShnP09iamVjdC5rZXlzKHYpOnYpLmxlbmd0aCl0aHJvdyBuZXcgZW4oMWUzLCIiKTtpZighdltoXSl0aHJvdyBuZXcgZW4oMTAwMSwiIil9KSh0aGlzLCEwLHYpLHRoaXMuY29udHJvbHNbdl0uc2V0VmFsdWUoZ1t2XSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmguZW1p''@;'; put 'put ''dEV2ZW50fSl9KSx0aGlzLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoaCl9cGF0Y2hWYWx1ZShnLGg9e30pe251bGwhPWcmJihPYmplY3Qua2V5cyhnKS5mb3JFYWNoKHY9Pntjb25zdCB5PXRoaXMuY29udHJvbHNbdl07eSYmeS5wYXRjaFZhbHVlKGdbdl0se29ubHlTZWxmOiEwLGVtaXRFdmVu''@;'; put 'put ''dDpoLmVtaXRFdmVudH0pfSksdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGgpKX1yZXNldChnPXt9LGg9e30pe3RoaXMuX2ZvckVhY2hDaGlsZCgodix5KT0+e3YucmVzZXQoZ1t5XSx7b25seVNlbGY6ITAsZW1pdEV2ZW50OmguZW1pdEV2ZW50fSl9KSx0aGlzLl91cGRhdGVQcmlzdGlu''@;'; put 'put ''ZShoKSx0aGlzLl91cGRhdGVUb3VjaGVkKGgpLHRoaXMudXBkYXRlVmFsdWVBbmRWYWxpZGl0eShoKX1nZXRSYXdWYWx1ZSgpe3JldHVybiB0aGlzLl9yZWR1Y2VDaGlsZHJlbih7fSwoZyxoLHYpPT4oZ1t2XT1oLmdldFJhd1ZhbHVlKCksZykpfV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7bGV0''@;'; put 'put ''IGc9dGhpcy5fcmVkdWNlQ2hpbGRyZW4oITEsKGgsdik9PiEhdi5fc3luY1BlbmRpbmdDb250cm9scygpfHxoKTtyZXR1cm4gZyYmdGhpcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtvbmx5U2VsZjohMH0pLGd9X2ZvckVhY2hDaGlsZChnKXtPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKS5m''@;'; put 'put ''b3JFYWNoKGg9Pntjb25zdCB2PXRoaXMuY29udHJvbHNbaF07diYmZyh2LGgpfSl9X3NldFVwQ29udHJvbHMoKXt0aGlzLl9mb3JFYWNoQ2hpbGQoZz0+e2cuc2V0UGFyZW50KHRoaXMpLGcuX3JlZ2lzdGVyT25Db2xsZWN0aW9uQ2hhbmdlKHRoaXMuX29uQ29sbGVjdGlvbkNoYW5nZSl9KX1f''@;'; put 'put ''dXBkYXRlVmFsdWUoKXt0aGlzLnZhbHVlPXRoaXMuX3JlZHVjZVZhbHVlKCl9X2FueUNvbnRyb2xzKGcpe2Zvcihjb25zdFtoLHZdb2YgT2JqZWN0LmVudHJpZXModGhpcy5jb250cm9scykpaWYodGhpcy5jb250YWlucyhoKSYmZyh2KSlyZXR1cm4hMDtyZXR1cm4hMX1fcmVkdWNlVmFsdWUo''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5fcmVkdWNlQ2hpbGRyZW4oe30sKGgsdix5KT0+KCh2LmVuYWJsZWR8fHRoaXMuZGlzYWJsZWQpJiYoaFt5XT12LnZhbHVlKSxoKSl9X3JlZHVjZUNoaWxkcmVuKGcsaCl7bGV0IHY9ZztyZXR1cm4gdGhpcy5fZm9yRWFjaENoaWxkKCh5LEMpPT57dj1oKHYseSxDKX0p''@;'; put 'put ''LHZ9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtmb3IoY29uc3QgZyBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbnRyb2xzKSlpZih0aGlzLmNvbnRyb2xzW2ddLmVuYWJsZWQpcmV0dXJuITE7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY29udHJvbHMpLmxlbmd0aD4wfHx0aGlzLmRpc2FibGVkfV9m''@;'; put 'put ''aW5kKGcpe3JldHVybiB0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KGcpP3RoaXMuY29udHJvbHNbZ106bnVsbH19ZnVuY3Rpb24gRnkoZCxnKXt2YXIgaCx2O0ZrKGQsZyksZy52YWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUoZC52YWx1ZSksZC5kaXNhYmxlZCYmKG51bGw9PT0odj0oaD1n''@;'; put 'put ''LnZhbHVlQWNjZXNzb3IpLnNldERpc2FibGVkU3RhdGUpfHx2b2lkIDA9PT12fHx2LmNhbGwoaCwhMCkpLGZ1bmN0aW9uIGIyZShkLGcpe2cudmFsdWVBY2Nlc3Nvci5yZWdpc3Rlck9uQ2hhbmdlKGg9PntkLl9wZW5kaW5nVmFsdWU9aCxkLl9wZW5kaW5nQ2hhbmdlPSEwLGQuX3BlbmRpbmdE''@;'; put 'put ''aXJ0eT0hMCwiY2hhbmdlIj09PWQudXBkYXRlT24mJkdYKGQsZyl9KX0oZCxnKSxmdW5jdGlvbiBDMmUoZCxnKXtjb25zdCBoPSh2LHkpPT57Zy52YWx1ZUFjY2Vzc29yLndyaXRlVmFsdWUodikseSYmZy52aWV3VG9Nb2RlbFVwZGF0ZSh2KX07ZC5yZWdpc3Rlck9uQ2hhbmdlKGgpLGcuX3Jl''@;'; put 'put ''Z2lzdGVyT25EZXN0cm95KCgpPT57ZC5fdW5yZWdpc3Rlck9uQ2hhbmdlKGgpfSl9KGQsZyksZnVuY3Rpb24gXzJlKGQsZyl7Zy52YWx1ZUFjY2Vzc29yLnJlZ2lzdGVyT25Ub3VjaGVkKCgpPT57ZC5fcGVuZGluZ1RvdWNoZWQ9ITAsImJsdXIiPT09ZC51cGRhdGVPbiYmZC5fcGVuZGluZ0No''@;'; put 'put ''YW5nZSYmR1goZCxnKSwic3VibWl0IiE9PWQudXBkYXRlT24mJmQubWFya0FzVG91Y2hlZCgpfSl9KGQsZyksZnVuY3Rpb24gelgoZCxnKXtpZihnLnZhbHVlQWNjZXNzb3Iuc2V0RGlzYWJsZWRTdGF0ZSl7Y29uc3QgaD12PT57Zy52YWx1ZUFjY2Vzc29yLnNldERpc2FibGVkU3RhdGUodil9''@;'; put 'put ''O2QucmVnaXN0ZXJPbkRpc2FibGVkQ2hhbmdlKGgpLGcuX3JlZ2lzdGVyT25EZXN0cm95KCgpPT57ZC5fdW5yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UoaCl9KX19KGQsZyl9ZnVuY3Rpb24gVTcoZCxnKXtkLmZvckVhY2goaD0+e2gucmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZSYmaC5yZWdp''@;'; put 'put ''c3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGcpfSl9ZnVuY3Rpb24gRmsoZCxnKXtjb25zdCBoPWZ1bmN0aW9uIEJYKGQpe3JldHVybiBkLl9yYXdWYWxpZGF0b3JzfShkKTtudWxsIT09Zy52YWxpZGF0b3I/ZC5zZXRWYWxpZGF0b3JzKFJYKGgsZy52YWxpZGF0b3IpKToiZnVuY3Rpb24iPT10eXBl''@;'; put 'put ''b2YgaCYmZC5zZXRWYWxpZGF0b3JzKFtoXSk7Y29uc3Qgdj1mdW5jdGlvbiBQWChkKXtyZXR1cm4gZC5fcmF3QXN5bmNWYWxpZGF0b3JzfShkKTtudWxsIT09Zy5hc3luY1ZhbGlkYXRvcj9kLnNldEFzeW5jVmFsaWRhdG9ycyhSWCh2LGcuYXN5bmNWYWxpZGF0b3IpKToiZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgdiYmZC5zZXRBc3luY1ZhbGlkYXRvcnMoW3ZdKTtjb25zdCB5PSgpPT5kLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtVNyhnLl9yYXdWYWxpZGF0b3JzLHkpLFU3KGcuX3Jhd0FzeW5jVmFsaWRhdG9ycyx5KX1mdW5jdGlvbiBHWChkLGcpe2QuX3BlbmRpbmdEaXJ0eSYmZC5tYXJr''@;'; put 'put ''QXNEaXJ0eSgpLGQuc2V0VmFsdWUoZC5fcGVuZGluZ1ZhbHVlLHtlbWl0TW9kZWxUb1ZpZXdDaGFuZ2U6ITF9KSxnLnZpZXdUb01vZGVsVXBkYXRlKGQuX3BlbmRpbmdWYWx1ZSksZC5fcGVuZGluZ0NoYW5nZT0hMX1jb25zdCBVWD17cHJvdmlkZTpMZix1c2VFeGlzdGluZzpfbigoKT0+TGMp''@;'; put 'put ''fSxWeT0oKCk9PlByb21pc2UucmVzb2x2ZShudWxsKSkoKTtsZXQgTGM9KCgpPT57Y2xhc3MgZCBleHRlbmRzIExme2NvbnN0cnVjdG9yKGgsdil7c3VwZXIoKSx0aGlzLnN1Ym1pdHRlZD0hMSx0aGlzLl9kaXJlY3RpdmVzPW5ldyBTZXQsdGhpcy5uZ1N1Ym1pdD1uZXcgYXIsdGhpcy5mb3Jt''@;'; put 'put ''PW5ldyB6RCh7fSxTVihoKSxPayh2KSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koKX1nZXQgZm9ybURpcmVjdGl2ZSgpe3JldHVybiB0aGlzfWdldCBjb250cm9sKCl7cmV0dXJuIHRoaXMuZm9ybX1nZXQgcGF0aCgpe3JldHVybltdfWdldCBjb250cm9scygp''@;'; put 'put ''e3JldHVybiB0aGlzLmZvcm0uY29udHJvbHN9YWRkQ29udHJvbChoKXtWeS50aGVuKCgpPT57Y29uc3Qgdj10aGlzLl9maW5kQ29udGFpbmVyKGgucGF0aCk7aC5jb250cm9sPXYucmVnaXN0ZXJDb250cm9sKGgubmFtZSxoLmNvbnRyb2wpLEZ5KGguY29udHJvbCxoKSxoLmNvbnRyb2wudXBk''@;'; put 'put ''YXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSksdGhpcy5fZGlyZWN0aXZlcy5hZGQoaCl9KX1nZXRDb250cm9sKGgpe3JldHVybiB0aGlzLmZvcm0uZ2V0KGgucGF0aCl9cmVtb3ZlQ29udHJvbChoKXtWeS50aGVuKCgpPT57Y29uc3Qgdj10aGlzLl9maW5kQ29udGFpbmVyKGgu''@;'; put 'put ''cGF0aCk7diYmdi5yZW1vdmVDb250cm9sKGgubmFtZSksdGhpcy5fZGlyZWN0aXZlcy5kZWxldGUoaCl9KX1hZGRGb3JtR3JvdXAoaCl7VnkudGhlbigoKT0+e2NvbnN0IHY9dGhpcy5fZmluZENvbnRhaW5lcihoLnBhdGgpLHk9bmV3IHpEKHt9KTsoZnVuY3Rpb24gV1goZCxnKXtGayhkLGcp''@;'; put 'put ''fSkoeSxoKSx2LnJlZ2lzdGVyQ29udHJvbChoLm5hbWUseSkseS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHtlbWl0RXZlbnQ6ITF9KX0pfXJlbW92ZUZvcm1Hcm91cChoKXtWeS50aGVuKCgpPT57Y29uc3Qgdj10aGlzLl9maW5kQ29udGFpbmVyKGgucGF0aCk7diYmdi5yZW1vdmVDb250cm9s''@;'; put 'put ''KGgubmFtZSl9KX1nZXRGb3JtR3JvdXAoaCl7cmV0dXJuIHRoaXMuZm9ybS5nZXQoaC5wYXRoKX11cGRhdGVNb2RlbChoLHYpe1Z5LnRoZW4oKCk9Pnt0aGlzLmZvcm0uZ2V0KGgucGF0aCkuc2V0VmFsdWUodil9KX1zZXRWYWx1ZShoKXt0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaCl9b25TdWJt''@;'; put 'put ''aXQoaCl7cmV0dXJuIHRoaXMuc3VibWl0dGVkPSEwLGZ1bmN0aW9uIEZWKGQsZyl7ZC5fc3luY1BlbmRpbmdDb250cm9scygpLGcuZm9yRWFjaChoPT57Y29uc3Qgdj1oLmNvbnRyb2w7InN1Ym1pdCI9PT12LnVwZGF0ZU9uJiZ2Ll9wZW5kaW5nQ2hhbmdlJiYoaC52aWV3VG9Nb2RlbFVwZGF0''@;'; put 'put ''ZSh2Ll9wZW5kaW5nVmFsdWUpLHYuX3BlbmRpbmdDaGFuZ2U9ITEpfSl9KHRoaXMuZm9ybSx0aGlzLl9kaXJlY3RpdmVzKSx0aGlzLm5nU3VibWl0LmVtaXQoaCksITF9b25SZXNldCgpe3RoaXMucmVzZXRGb3JtKCl9cmVzZXRGb3JtKGgpe3RoaXMuZm9ybS5yZXNldChoKSx0aGlzLnN1Ym1p''@;'; put 'put ''dHRlZD0hMX1fc2V0VXBkYXRlU3RyYXRlZ3koKXt0aGlzLm9wdGlvbnMmJm51bGwhPXRoaXMub3B0aW9ucy51cGRhdGVPbiYmKHRoaXMuZm9ybS5fdXBkYXRlT249dGhpcy5vcHRpb25zLnVwZGF0ZU9uKX1fZmluZENvbnRhaW5lcihoKXtyZXR1cm4gaC5wb3AoKSxoLmxlbmd0aD90aGlzLmZv''@;'; put 'put ''cm0uZ2V0KGgpOnRoaXMuZm9ybX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoS2MsMTApLEt0KGhnLDEwKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImZvcm0iLDMsIm5nTm9Gb3JtIiwiIiwzLCJmb3JtR3JvdXAiLCIi''@;'; put 'put ''XSxbIm5nLWZvcm0iXSxbIiIsIm5nRm9ybSIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJzdWJtaXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uU3VibWl0KEMpfSkoInJlc2V0IixmdW5jdGlvbigpe3JldHVybiB2Lm9uUmVzZXQoKX0pfSxpbnB1dHM6e29wdGlv''@;'; put 'put ''bnM6WyJuZ0Zvcm1PcHRpb25zIiwib3B0aW9ucyJdfSxvdXRwdXRzOntuZ1N1Ym1pdDoibmdTdWJtaXQifSxleHBvcnRBczpbIm5nRm9ybSJdLGZlYXR1cmVzOltobyhbVVhdKSxEb119KSxkfSkoKTtmdW5jdGlvbiBIVihkLGcpe2NvbnN0IGg9ZC5pbmRleE9mKGcpO2g+LTEmJmQuc3BsaWNl''@;'; put 'put ''KGgsMSl9ZnVuY3Rpb24gSGsoZCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZCYmMj09PU9iamVjdC5rZXlzKGQpLmxlbmd0aCYmInZhbHVlImluIGQmJiJkaXNhYmxlZCJpbiBkfWNvbnN0IE5rPWNsYXNzIGV4dGVuZHMgalh7Y29uc3RydWN0b3IoZz1udWxsLGgsdil7c3Vw''@;'; put 'put ''ZXIoRFYoaCksakQodixoKSksdGhpcy5kZWZhdWx0VmFsdWU9bnVsbCx0aGlzLl9vbkNoYW5nZT1bXSx0aGlzLl9wZW5kaW5nQ2hhbmdlPSExLHRoaXMuX2FwcGx5Rm9ybVN0YXRlKGcpLHRoaXMuX3NldFVwZGF0ZVN0cmF0ZWd5KGgpLHRoaXMuX2luaXRPYnNlcnZhYmxlcygpLHRoaXMudXBk''@;'; put 'put ''YXRlVmFsdWVBbmRWYWxpZGl0eSh7b25seVNlbGY6ITAsZW1pdEV2ZW50OiEhdGhpcy5hc3luY1ZhbGlkYXRvcn0pLEJrKGgpJiYoaC5ub25OdWxsYWJsZXx8aC5pbml0aWFsVmFsdWVJc0RlZmF1bHQpJiYodGhpcy5kZWZhdWx0VmFsdWU9SGsoZyk/Zy52YWx1ZTpnKX1zZXRWYWx1ZShnLGg9''@;'; put 'put ''e30pe3RoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPWcsdGhpcy5fb25DaGFuZ2UubGVuZ3RoJiYhMSE9PWguZW1pdE1vZGVsVG9WaWV3Q2hhbmdlJiZ0aGlzLl9vbkNoYW5nZS5mb3JFYWNoKHY9PnYodGhpcy52YWx1ZSwhMSE9PWguZW1pdFZpZXdUb01vZGVsQ2hhbmdlKSksdGhpcy51''@;'; put 'put ''cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KGgpfXBhdGNoVmFsdWUoZyxoPXt9KXt0aGlzLnNldFZhbHVlKGcsaCl9cmVzZXQoZz10aGlzLmRlZmF1bHRWYWx1ZSxoPXt9KXt0aGlzLl9hcHBseUZvcm1TdGF0ZShnKSx0aGlzLm1hcmtBc1ByaXN0aW5lKGgpLHRoaXMubWFya0FzVW50b3VjaGVkKGgp''@;'; put 'put ''LHRoaXMuc2V0VmFsdWUodGhpcy52YWx1ZSxoKSx0aGlzLl9wZW5kaW5nQ2hhbmdlPSExfV91cGRhdGVWYWx1ZSgpe31fYW55Q29udHJvbHMoZyl7cmV0dXJuITF9X2FsbENvbnRyb2xzRGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5kaXNhYmxlZH1yZWdpc3Rlck9uQ2hhbmdlKGcpe3RoaXMuX29u''@;'; put 'put ''Q2hhbmdlLnB1c2goZyl9X3VucmVnaXN0ZXJPbkNoYW5nZShnKXtIVih0aGlzLl9vbkNoYW5nZSxnKX1yZWdpc3Rlck9uRGlzYWJsZWRDaGFuZ2UoZyl7dGhpcy5fb25EaXNhYmxlZENoYW5nZS5wdXNoKGcpfV91bnJlZ2lzdGVyT25EaXNhYmxlZENoYW5nZShnKXtIVih0aGlzLl9vbkRpc2Fi''@;'; put 'put ''bGVkQ2hhbmdlLGcpfV9mb3JFYWNoQ2hpbGQoZyl7fV9zeW5jUGVuZGluZ0NvbnRyb2xzKCl7cmV0dXJuISgic3VibWl0IiE9PXRoaXMudXBkYXRlT258fCh0aGlzLl9wZW5kaW5nRGlydHkmJnRoaXMubWFya0FzRGlydHkoKSx0aGlzLl9wZW5kaW5nVG91Y2hlZCYmdGhpcy5tYXJrQXNUb3Vj''@;'; put 'put ''aGVkKCksIXRoaXMuX3BlbmRpbmdDaGFuZ2UpfHwodGhpcy5zZXRWYWx1ZSh0aGlzLl9wZW5kaW5nVmFsdWUse29ubHlTZWxmOiEwLGVtaXRNb2RlbFRvVmlld0NoYW5nZTohMX0pLDApKX1fYXBwbHlGb3JtU3RhdGUoZyl7SGsoZyk/KHRoaXMudmFsdWU9dGhpcy5fcGVuZGluZ1ZhbHVlPWcu''@;'; put 'put ''dmFsdWUsZy5kaXNhYmxlZD90aGlzLmRpc2FibGUoe29ubHlTZWxmOiEwLGVtaXRFdmVudDohMX0pOnRoaXMuZW5hYmxlKHtvbmx5U2VsZjohMCxlbWl0RXZlbnQ6ITF9KSk6dGhpcy52YWx1ZT10aGlzLl9wZW5kaW5nVmFsdWU9Z319LEUyZT17cHJvdmlkZTpEZix1c2VFeGlzdGluZzpfbigo''@;'; put 'put ''KT0+SXMpfSxRNz0oKCk9PlByb21pc2UucmVzb2x2ZShudWxsKSkoKTtsZXQgSXM9KCgpPT57Y2xhc3MgZCBleHRlbmRzIERme2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7c3VwZXIoKSx0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZj1JLHRoaXMuY29udHJvbD1uZXcgTmssdGhpcy5fcmVnaXN0ZXJl''@;'; put 'put ''ZD0hMSx0aGlzLnVwZGF0ZT1uZXcgYXIsdGhpcy5fcGFyZW50PWgsdGhpcy5fc2V0VmFsaWRhdG9ycyh2KSx0aGlzLl9zZXRBc3luY1ZhbGlkYXRvcnMoeSksdGhpcy52YWx1ZUFjY2Vzc29yPWZ1bmN0aW9uIE55KGQsZyl7aWYoIWcpcmV0dXJuIG51bGw7bGV0IGgsdix5O3JldHVybiBBcnJh''@;'; put 'put ''eS5pc0FycmF5KGcpLGcuZm9yRWFjaChDPT57Qy5jb25zdHJ1Y3Rvcj09PW0xP2g9QzpmdW5jdGlvbiBQVihkKXtyZXR1cm4gT2JqZWN0LmdldFByb3RvdHlwZU9mKGQuY29uc3RydWN0b3IpPT09Rzd9KEMpP3Y9Qzp5PUN9KSx5fHx2fHxofHxudWxsfSgwLEMpfW5nT25DaGFuZ2VzKGgpe2lm''@;'; put 'put ''KHRoaXMuX2NoZWNrRm9yRXJyb3JzKCksIXRoaXMuX3JlZ2lzdGVyZWR8fCJuYW1lImluIGgpe2lmKHRoaXMuX3JlZ2lzdGVyZWQmJih0aGlzLl9jaGVja05hbWUoKSx0aGlzLmZvcm1EaXJlY3RpdmUpKXtjb25zdCB2PWgubmFtZS5wcmV2aW91c1ZhbHVlO3RoaXMuZm9ybURpcmVjdGl2ZS5y''@;'; put 'put ''ZW1vdmVDb250cm9sKHtuYW1lOnYscGF0aDp0aGlzLl9nZXRQYXRoKHYpfSl9dGhpcy5fc2V0VXBDb250cm9sKCl9ImlzRGlzYWJsZWQiaW4gaCYmdGhpcy5fdXBkYXRlRGlzYWJsZWQoaCksZnVuY3Rpb24gQlYoZCxnKXtpZighZC5oYXNPd25Qcm9wZXJ0eSgibW9kZWwiKSlyZXR1cm4hMTtj''@;'; put 'put ''b25zdCBoPWQubW9kZWw7cmV0dXJuISFoLmlzRmlyc3RDaGFuZ2UoKXx8IU9iamVjdC5pcyhnLGguY3VycmVudFZhbHVlKX0oaCx0aGlzLnZpZXdNb2RlbCkmJih0aGlzLl91cGRhdGVWYWx1ZSh0aGlzLm1vZGVsKSx0aGlzLnZpZXdNb2RlbD10aGlzLm1vZGVsKX1uZ09uRGVzdHJveSgpe3Ro''@;'; put 'put ''aXMuZm9ybURpcmVjdGl2ZSYmdGhpcy5mb3JtRGlyZWN0aXZlLnJlbW92ZUNvbnRyb2wodGhpcyl9Z2V0IHBhdGgoKXtyZXR1cm4gdGhpcy5fZ2V0UGF0aCh0aGlzLm5hbWUpfWdldCBmb3JtRGlyZWN0aXZlKCl7cmV0dXJuIHRoaXMuX3BhcmVudD90aGlzLl9wYXJlbnQuZm9ybURpcmVjdGl2''@;'; put 'put ''ZTpudWxsfXZpZXdUb01vZGVsVXBkYXRlKGgpe3RoaXMudmlld01vZGVsPWgsdGhpcy51cGRhdGUuZW1pdChoKX1fc2V0VXBDb250cm9sKCl7dGhpcy5fc2V0VXBkYXRlU3RyYXRlZ3koKSx0aGlzLl9pc1N0YW5kYWxvbmUoKT90aGlzLl9zZXRVcFN0YW5kYWxvbmUoKTp0aGlzLmZvcm1EaXJl''@;'; put 'put ''Y3RpdmUuYWRkQ29udHJvbCh0aGlzKSx0aGlzLl9yZWdpc3RlcmVkPSEwfV9zZXRVcGRhdGVTdHJhdGVneSgpe3RoaXMub3B0aW9ucyYmbnVsbCE9dGhpcy5vcHRpb25zLnVwZGF0ZU9uJiYodGhpcy5jb250cm9sLl91cGRhdGVPbj10aGlzLm9wdGlvbnMudXBkYXRlT24pfV9pc1N0YW5kYWxv''@;'; put 'put ''bmUoKXtyZXR1cm4hdGhpcy5fcGFyZW50fHwhKCF0aGlzLm9wdGlvbnN8fCF0aGlzLm9wdGlvbnMuc3RhbmRhbG9uZSl9X3NldFVwU3RhbmRhbG9uZSgpe0Z5KHRoaXMuY29udHJvbCx0aGlzKSx0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiExfSl9X2No''@;'; put 'put ''ZWNrRm9yRXJyb3JzKCl7dGhpcy5faXNTdGFuZGFsb25lKCl8fHRoaXMuX2NoZWNrUGFyZW50VHlwZSgpLHRoaXMuX2NoZWNrTmFtZSgpfV9jaGVja1BhcmVudFR5cGUoKXt9X2NoZWNrTmFtZSgpe3RoaXMub3B0aW9ucyYmdGhpcy5vcHRpb25zLm5hbWUmJih0aGlzLm5hbWU9dGhpcy5vcHRp''@;'; put 'put ''b25zLm5hbWUpLHRoaXMuX2lzU3RhbmRhbG9uZSgpfV91cGRhdGVWYWx1ZShoKXtRNy50aGVuKCgpPT57dmFyIHY7dGhpcy5jb250cm9sLnNldFZhbHVlKGgse2VtaXRWaWV3VG9Nb2RlbENoYW5nZTohMX0pLG51bGw9PT0odj10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZil8fHZvaWQgMD09PXZ8''@;'; put 'put ''fHYubWFya0ZvckNoZWNrKCl9KX1fdXBkYXRlRGlzYWJsZWQoaCl7Y29uc3Qgdj1oLmlzRGlzYWJsZWQuY3VycmVudFZhbHVlLHk9MCE9PXYmJkg2KHYpO1E3LnRoZW4oKCk9Pnt2YXIgQzt5JiYhdGhpcy5jb250cm9sLmRpc2FibGVkP3RoaXMuY29udHJvbC5kaXNhYmxlKCk6IXkmJnRoaXMu''@;'; put 'put ''Y29udHJvbC5kaXNhYmxlZCYmdGhpcy5jb250cm9sLmVuYWJsZSgpLG51bGw9PT0oQz10aGlzLl9jaGFuZ2VEZXRlY3RvclJlZil8fHZvaWQgMD09PUN8fEMubWFya0ZvckNoZWNrKCl9KX1fZ2V0UGF0aChoKXtyZXR1cm4gdGhpcy5fcGFyZW50P2Z1bmN0aW9uIFBrKGQsZyl7cmV0dXJuWy4u''@;'; put 'put ''LmcucGF0aCxkXX0oaCx0aGlzLl9wYXJlbnQpOltoXX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoTGYsOSksS3QoS2MsMTApLEt0KGhnLDEwKSxLdChncCwxMCksS3QoZDEsOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpb''@;'; put 'put ''WyIiLCJuZ01vZGVsIiwiIiwzLCJmb3JtQ29udHJvbE5hbWUiLCIiLDMsImZvcm1Db250cm9sIiwiIl1dLGlucHV0czp7bmFtZToibmFtZSIsaXNEaXNhYmxlZDpbImRpc2FibGVkIiwiaXNEaXNhYmxlZCJdLG1vZGVsOlsibmdNb2RlbCIsIm1vZGVsIl0sb3B0aW9uczpbIm5nTW9kZWxPcHRp''@;'; put 'put ''b25zIiwib3B0aW9ucyJdfSxvdXRwdXRzOnt1cGRhdGU6Im5nTW9kZWxDaGFuZ2UifSxleHBvcnRBczpbIm5nTW9kZWwiXSxmZWF0dXJlczpbaG8oW0UyZV0pLERvLEQyXX0pLGR9KSgpLHBnPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; put 'put ''KGh8fGQpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJmb3JtIiwzLCJuZ05vRm9ybSIsIiIsMywibmdOYXRpdmVWYWxpZGF0ZSIsIiJdXSxob3N0QXR0cnM6WyJub3ZhbGlkYXRlIiwiIl19KSxkfSkoKTtjb25zdCAkWD17cHJvdmlkZTpncCx1c2VFeGlzdGluZzpfbigo''@;'; put 'put ''KT0+alYpLG11bHRpOiEwfTtsZXQgalY9KCgpPT57Y2xhc3MgZCBleHRlbmRzIEc3e3dyaXRlVmFsdWUoaCl7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLG51bGw9PWg/IiI6aCl9cmVnaXN0ZXJPbkNoYW5nZShoKXt0aGlzLm9uQ2hhbmdlPXY9PntoKCIiPT12P251bGw6cGFyc2VGbG9hdCh2''@;'; put 'put ''KSl9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImlucHV0IiwidHlwZSIsIm51bWJlciIsImZvcm1Db250cm9sTmFt''@;'; put 'put ''ZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwibnVtYmVyIiwiZm9ybUNvbnRyb2wiLCIiXSxbImlucHV0IiwidHlwZSIsIm51bWJlciIsIm5nTW9kZWwiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiaW5wdXQiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2hhbmdlKEMu''@;'; put 'put ''dGFyZ2V0LnZhbHVlKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiB2Lm9uVG91Y2hlZCgpfSl9LGZlYXR1cmVzOltobyhbJFhdKSxEb119KSxkfSkoKTtjb25zdCB4MmU9e3Byb3ZpZGU6Z3AsdXNlRXhpc3Rpbmc6X24oKCk9PnFoKSxtdWx0aTohMH07bGV0IHFYPSgoKT0+e2NsYXNzIGR7''@;'; put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe30pLGR9KSgpLGVLPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9hY2Nlc3NvcnM9W119YWRkKGgsdil7dGhpcy5f''@;'; put 'put ''YWNjZXNzb3JzLnB1c2goW2gsdl0pfXJlbW92ZShoKXtmb3IobGV0IHY9dGhpcy5fYWNjZXNzb3JzLmxlbmd0aC0xO3Y+PTA7LS12KWlmKHRoaXMuX2FjY2Vzc29yc1t2XVsxXT09PWgpcmV0dXJuIHZvaWQgdGhpcy5fYWNjZXNzb3JzLnNwbGljZSh2LDEpfXNlbGVjdChoKXt0aGlzLl9hY2Nl''@;'; put 'put ''c3NvcnMuZm9yRWFjaCh2PT57dGhpcy5faXNTYW1lR3JvdXAodixoKSYmdlsxXSE9PWgmJnZbMV0uZmlyZVVuY2hlY2soaC52YWx1ZSl9KX1faXNTYW1lR3JvdXAoaCx2KXtyZXR1cm4hIWhbMF0uY29udHJvbCYmaFswXS5fcGFyZW50PT09di5fY29udHJvbC5fcGFyZW50JiZoWzFdLm5hbWU9''@;'; put 'put ''PT12Lm5hbWV9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOnFYfSksZH0pKCkscWg9KCgpPT57Y2xhc3MgZCBleHRlbmRzIEc3e2NvbnN0cnVjdG9y''@;'; put 'put ''KGgsdix5LEMpe3N1cGVyKGgsdiksdGhpcy5fcmVnaXN0cnk9eSx0aGlzLl9pbmplY3Rvcj1DLHRoaXMub25DaGFuZ2U9KCk9Pnt9fW5nT25Jbml0KCl7dGhpcy5fY29udHJvbD10aGlzLl9pbmplY3Rvci5nZXQoRGYpLHRoaXMuX2NoZWNrTmFtZSgpLHRoaXMuX3JlZ2lzdHJ5LmFkZCh0aGlz''@;'; put 'put ''Ll9jb250cm9sLHRoaXMpfW5nT25EZXN0cm95KCl7dGhpcy5fcmVnaXN0cnkucmVtb3ZlKHRoaXMpfXdyaXRlVmFsdWUoaCl7dGhpcy5fc3RhdGU9aD09PXRoaXMudmFsdWUsdGhpcy5zZXRQcm9wZXJ0eSgiY2hlY2tlZCIsdGhpcy5fc3RhdGUpfXJlZ2lzdGVyT25DaGFuZ2UoaCl7dGhpcy5f''@;'; put 'put ''Zm49aCx0aGlzLm9uQ2hhbmdlPSgpPT57aCh0aGlzLnZhbHVlKSx0aGlzLl9yZWdpc3RyeS5zZWxlY3QodGhpcyl9fWZpcmVVbmNoZWNrKGgpe3RoaXMud3JpdGVWYWx1ZShoKX1fY2hlY2tOYW1lKCl7IXRoaXMubmFtZSYmdGhpcy5mb3JtQ29udHJvbE5hbWUmJih0aGlzLm5hbWU9dGhpcy5m''@;'; put 'put ''b3JtQ29udHJvbE5hbWUpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChHYSksS3QoYm8pLEt0KGVLKSxLdChTcykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJpbnB1dCIsInR5cGUiLCJyYWRpbyIsImZvcm1Db250cm9s''@;'; put 'put ''TmFtZSIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJmb3JtQ29udHJvbCIsIiJdLFsiaW5wdXQiLCJ0eXBlIiwicmFkaW8iLCJuZ01vZGVsIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNoYW5nZSgp''@;'; put 'put ''fSkoImJsdXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25Ub3VjaGVkKCl9KX0saW5wdXRzOntuYW1lOiJuYW1lIixmb3JtQ29udHJvbE5hbWU6ImZvcm1Db250cm9sTmFtZSIsdmFsdWU6InZhbHVlIn0sZmVhdHVyZXM6W2hvKFt4MmVdKSxEb119KSxkfSkoKTtjb25zdCBRRD1uZXcgemUoIk5n''@;'; put 'put ''TW9kZWxXaXRoRm9ybUNvbnRyb2xXYXJuaW5nIiksbEs9e3Byb3ZpZGU6Z3AsdXNlRXhpc3Rpbmc6X24oKCk9Pk9mKSxtdWx0aTohMH07ZnVuY3Rpb24gYTgoZCxnKXtyZXR1cm4gbnVsbD09ZD9gJHtnfWA6KGcmJiJvYmplY3QiPT10eXBlb2YgZyYmKGc9Ik9iamVjdCIpLGAke2R9OiAke2d9''@;'; put 'put ''YC5zbGljZSgwLDUwKSl9bGV0IE9mPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBHN3tjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fb3B0aW9uTWFwPW5ldyBNYXAsdGhpcy5faWRDb3VudGVyPTAsdGhpcy5fY29tcGFyZVdpdGg9T2JqZWN0LmlzfXNldCBjb21wYXJlV2l0''@;'; put 'put ''aChoKXt0aGlzLl9jb21wYXJlV2l0aD1ofXdyaXRlVmFsdWUoaCl7dGhpcy52YWx1ZT1oO2NvbnN0IHk9YTgodGhpcy5fZ2V0T3B0aW9uSWQoaCksaCk7dGhpcy5zZXRQcm9wZXJ0eSgidmFsdWUiLHkpfXJlZ2lzdGVyT25DaGFuZ2UoaCl7dGhpcy5vbkNoYW5nZT12PT57dGhpcy52YWx1ZT10''@;'; put 'put ''aGlzLl9nZXRPcHRpb25WYWx1ZSh2KSxoKHRoaXMudmFsdWUpfX1fcmVnaXN0ZXJPcHRpb24oKXtyZXR1cm4odGhpcy5faWRDb3VudGVyKyspLnRvU3RyaW5nKCl9X2dldE9wdGlvbklkKGgpe2Zvcihjb25zdCB2IG9mIEFycmF5LmZyb20odGhpcy5fb3B0aW9uTWFwLmtleXMoKSkpaWYodGhp''@;'; put 'put ''cy5fY29tcGFyZVdpdGgodGhpcy5fb3B0aW9uTWFwLmdldCh2KSxoKSlyZXR1cm4gdjtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUoaCl7Y29uc3Qgdj1mdW5jdGlvbiBEMmUoZCl7cmV0dXJuIGQuc3BsaXQoIjoiKVswXX0oaCk7cmV0dXJuIHRoaXMuX29wdGlvbk1hcC5oYXModik/dGhp''@;'; put 'put ''cy5fb3B0aW9uTWFwLmdldCh2KTpofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbInNlbGVjdCIsImZvcm1Db250cm9s''@;'; put 'put ''TmFtZSIsIiIsMywibXVsdGlwbGUiLCIiXSxbInNlbGVjdCIsImZvcm1Db250cm9sIiwiIiwzLCJtdWx0aXBsZSIsIiJdLFsic2VsZWN0IiwibmdNb2RlbCIsIiIsMywibXVsdGlwbGUiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiY2hhbmdlIixmdW5jdGlvbihD''@;'; put 'put ''KXtyZXR1cm4gdi5vbkNoYW5nZShDLnRhcmdldC52YWx1ZSl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRvdWNoZWQoKX0pfSxpbnB1dHM6e2NvbXBhcmVXaXRoOiJjb21wYXJlV2l0aCJ9LGZlYXR1cmVzOltobyhbbEtdKSxEb119KSxkfSkoKSwkMz0oKCk9PntjbGFzcyBke2Nv''@;'; put 'put ''bnN0cnVjdG9yKGgsdix5KXt0aGlzLl9lbGVtZW50PWgsdGhpcy5fcmVuZGVyZXI9dix0aGlzLl9zZWxlY3Q9eSx0aGlzLl9zZWxlY3QmJih0aGlzLmlkPXRoaXMuX3NlbGVjdC5fcmVnaXN0ZXJPcHRpb24oKSl9c2V0IG5nVmFsdWUoaCl7bnVsbCE9dGhpcy5fc2VsZWN0JiYodGhpcy5fc2Vs''@;'; put 'put ''ZWN0Ll9vcHRpb25NYXAuc2V0KHRoaXMuaWQsaCksdGhpcy5fc2V0RWxlbWVudFZhbHVlKGE4KHRoaXMuaWQsaCkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXNldCB2YWx1ZShoKXt0aGlzLl9zZXRFbGVtZW50VmFsdWUoaCksdGhpcy5fc2VsZWN0JiZ0''@;'; put 'put ''aGlzLl9zZWxlY3Qud3JpdGVWYWx1ZSh0aGlzLl9zZWxlY3QudmFsdWUpfV9zZXRFbGVtZW50VmFsdWUoaCl7dGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsaCl9bmdPbkRlc3Ryb3koKXt0aGlzLl9zZWxlY3QmJih0aGlzLl9z''@;'; put 'put ''ZWxlY3QuX29wdGlvbk1hcC5kZWxldGUodGhpcy5pZCksdGhpcy5fc2VsZWN0LndyaXRlVmFsdWUodGhpcy5fc2VsZWN0LnZhbHVlKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSxLdChHYSksS3QoT2YsOSkpfSxkLlx1MDI3NWRpcj1X''@;'; put 'put ''aSh7dHlwZTpkLHNlbGVjdG9yczpbWyJvcHRpb24iXV0saW5wdXRzOntuZ1ZhbHVlOiJuZ1ZhbHVlIix2YWx1ZToidmFsdWUifX0pLGR9KSgpO2NvbnN0IEpEPXtwcm92aWRlOmdwLHVzZUV4aXN0aW5nOl9uKCgpPT52cCksbXVsdGk6ITB9O2Z1bmN0aW9uIFZrKGQsZyl7cmV0dXJuIG51bGw9''@;'; put 'put ''PWQ/YCR7Z31gOigic3RyaW5nIj09dHlwZW9mIGcmJihnPWAnJHtnfSdgKSxnJiYib2JqZWN0Ij09dHlwZW9mIGcmJihnPSJPYmplY3QiKSxgJHtkfTogJHtnfWAuc2xpY2UoMCw1MCkpfWxldCB2cD0oKCk9PntjbGFzcyBkIGV4dGVuZHMgRzd7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1''@;'; put 'put ''bWVudHMpLHRoaXMuX29wdGlvbk1hcD1uZXcgTWFwLHRoaXMuX2lkQ291bnRlcj0wLHRoaXMuX2NvbXBhcmVXaXRoPU9iamVjdC5pc31zZXQgY29tcGFyZVdpdGgoaCl7dGhpcy5fY29tcGFyZVdpdGg9aH13cml0ZVZhbHVlKGgpe2xldCB2O2lmKHRoaXMudmFsdWU9aCxBcnJheS5pc0FycmF5''@;'; put 'put ''KGgpKXtjb25zdCB5PWgubWFwKEM9PnRoaXMuX2dldE9wdGlvbklkKEMpKTt2PShDLEkpPT57Qy5fc2V0U2VsZWN0ZWQoeS5pbmRleE9mKEkudG9TdHJpbmcoKSk+LTEpfX1lbHNlIHY9KHksQyk9Pnt5Ll9zZXRTZWxlY3RlZCghMSl9O3RoaXMuX29wdGlvbk1hcC5mb3JFYWNoKHYpfXJlZ2lz''@;'; put 'put ''dGVyT25DaGFuZ2UoaCl7dGhpcy5vbkNoYW5nZT12PT57Y29uc3QgeT1bXSxDPXYuc2VsZWN0ZWRPcHRpb25zO2lmKHZvaWQgMCE9PUMpe2NvbnN0IEk9Qztmb3IobGV0IFo9MDtaPEkubGVuZ3RoO1orKyl7Y29uc3QgX2U9dGhpcy5fZ2V0T3B0aW9uVmFsdWUoSVtaXS52YWx1ZSk7eS5wdXNo''@;'; put 'put ''KF9lKX19ZWxzZXtjb25zdCBJPXYub3B0aW9ucztmb3IobGV0IFo9MDtaPEkubGVuZ3RoO1orKyl7Y29uc3QgdWU9SVtaXTtpZih1ZS5zZWxlY3RlZCl7Y29uc3QgX2U9dGhpcy5fZ2V0T3B0aW9uVmFsdWUodWUudmFsdWUpO3kucHVzaChfZSl9fX10aGlzLnZhbHVlPXksaCh5KX19X3JlZ2lz''@;'; put 'put ''dGVyT3B0aW9uKGgpe2NvbnN0IHY9KHRoaXMuX2lkQ291bnRlcisrKS50b1N0cmluZygpO3JldHVybiB0aGlzLl9vcHRpb25NYXAuc2V0KHYsaCksdn1fZ2V0T3B0aW9uSWQoaCl7Zm9yKGNvbnN0IHYgb2YgQXJyYXkuZnJvbSh0aGlzLl9vcHRpb25NYXAua2V5cygpKSlpZih0aGlzLl9jb21w''@;'; put 'put ''YXJlV2l0aCh0aGlzLl9vcHRpb25NYXAuZ2V0KHYpLl92YWx1ZSxoKSlyZXR1cm4gdjtyZXR1cm4gbnVsbH1fZ2V0T3B0aW9uVmFsdWUoaCl7Y29uc3Qgdj1mdW5jdGlvbiBqeShkKXtyZXR1cm4gZC5zcGxpdCgiOiIpWzBdfShoKTtyZXR1cm4gdGhpcy5fb3B0aW9uTWFwLmhhcyh2KT90aGlz''@;'; put 'put ''Ll9vcHRpb25NYXAuZ2V0KHYpLl92YWx1ZTpofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbInNlbGVjdCIsIm11bHRp''@;'; put 'put ''cGxlIiwiIiwiZm9ybUNvbnRyb2xOYW1lIiwiIl0sWyJzZWxlY3QiLCJtdWx0aXBsZSIsIiIsImZvcm1Db250cm9sIiwiIl0sWyJzZWxlY3QiLCJtdWx0aXBsZSIsIiIsIm5nTW9kZWwiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiY2hhbmdlIixmdW5jdGlvbihD''@;'; put 'put ''KXtyZXR1cm4gdi5vbkNoYW5nZShDLnRhcmdldCl9KSgiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblRvdWNoZWQoKX0pfSxpbnB1dHM6e2NvbXBhcmVXaXRoOiJjb21wYXJlV2l0aCJ9LGZlYXR1cmVzOltobyhbSkRdKSxEb119KSxkfSkoKSxxMz0oKCk9PntjbGFzcyBke2NvbnN0cnVj''@;'; put 'put ''dG9yKGgsdix5KXt0aGlzLl9lbGVtZW50PWgsdGhpcy5fcmVuZGVyZXI9dix0aGlzLl9zZWxlY3Q9eSx0aGlzLl9zZWxlY3QmJih0aGlzLmlkPXRoaXMuX3NlbGVjdC5fcmVnaXN0ZXJPcHRpb24odGhpcykpfXNldCBuZ1ZhbHVlKGgpe251bGwhPXRoaXMuX3NlbGVjdCYmKHRoaXMuX3ZhbHVl''@;'; put 'put ''PWgsdGhpcy5fc2V0RWxlbWVudFZhbHVlKFZrKHRoaXMuaWQsaCkpLHRoaXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpfXNldCB2YWx1ZShoKXt0aGlzLl9zZWxlY3Q/KHRoaXMuX3ZhbHVlPWgsdGhpcy5fc2V0RWxlbWVudFZhbHVlKFZrKHRoaXMuaWQsaCkpLHRo''@;'; put 'put ''aXMuX3NlbGVjdC53cml0ZVZhbHVlKHRoaXMuX3NlbGVjdC52YWx1ZSkpOnRoaXMuX3NldEVsZW1lbnRWYWx1ZShoKX1fc2V0RWxlbWVudFZhbHVlKGgpe3RoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwidmFsdWUiLGgpfV9zZXRTZWxlY3Rl''@;'; put 'put ''ZChoKXt0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsInNlbGVjdGVkIixoKX1uZ09uRGVzdHJveSgpe3RoaXMuX3NlbGVjdCYmKHRoaXMuX3NlbGVjdC5fb3B0aW9uTWFwLmRlbGV0ZSh0aGlzLmlkKSx0aGlzLl9zZWxlY3Qud3JpdGVWYWx1''@;'; put 'put ''ZSh0aGlzLl9zZWxlY3QudmFsdWUpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KEdhKSxLdCh2cCw5KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm9wdGlvbiJdXSxpbnB1dHM6e25nVmFsdWU6Im5nVmFs''@;'; put 'put ''dWUiLHZhbHVlOiJ2YWx1ZSJ9fSksZH0pKCksVVY9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbcVhdfSksZH0pKCksdGQ9KCgpPT57''@;'; put 'put ''Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbVVZdfSksZH0pKCksUDJlPSgoKT0+e2NsYXNzIGR7c3RhdGljIHdpdGhDb25maWcoaCl7cmV0dXJu''@;'; put 'put ''e25nTW9kdWxlOmQscHJvdmlkZXJzOlt7cHJvdmlkZTpRRCx1c2VWYWx1ZTpoLndhcm5Pbk5nTW9kZWxXaXRoRm9ybUNvbnRyb2x9XX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9''@;'; put 'put ''YjAoe2ltcG9ydHM6W1VWXX0pLGR9KSgpO2Z1bmN0aW9uIHFEKGQpe3RoaXMud3JhcHBlZD1kfWZ1bmN0aW9uIGVMKGQpe3ZhciBnLGg7ZnVuY3Rpb24geShJLFope3RyeXt2YXIgdWU9ZFtJXShaKSxfZT11ZS52YWx1ZSxCZT1fZSBpbnN0YW5jZW9mIHFEO1Byb21pc2UucmVzb2x2ZShCZT9f''@;'; put 'put ''ZS53cmFwcGVkOl9lKS50aGVuKGZ1bmN0aW9uKE5lKXtCZT95KCJyZXR1cm4iPT09ST8icmV0dXJuIjoibmV4dCIsTmUpOkModWUuZG9uZT8icmV0dXJuIjoibm9ybWFsIixOZSl9LGZ1bmN0aW9uKE5lKXt5KCJ0aHJvdyIsTmUpfSl9Y2F0Y2goTmUpe0MoInRocm93IixOZSl9fWZ1bmN0aW9u''@;'; put 'put ''IEMoSSxaKXtzd2l0Y2goSSl7Y2FzZSJyZXR1cm4iOmcucmVzb2x2ZSh7dmFsdWU6Wixkb25lOiEwfSk7YnJlYWs7Y2FzZSJ0aHJvdyI6Zy5yZWplY3QoWik7YnJlYWs7ZGVmYXVsdDpnLnJlc29sdmUoe3ZhbHVlOlosZG9uZTohMX0pfShnPWcubmV4dCk/eShnLmtleSxnLmFyZyk6aD1udWxs''@;'; put 'put ''fXRoaXMuX2ludm9rZT1mdW5jdGlvbiB2KEksWil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHVlLF9lKXt2YXIgQmU9e2tleTpJLGFyZzpaLHJlc29sdmU6dWUscmVqZWN0Ol9lLG5leHQ6bnVsbH07aD9oPWgubmV4dD1CZTooZz1oPUJlLHkoSSxaKSl9KX0sImZ1bmN0aW9uIiE9dHlw''@;'; put 'put ''ZW9mIGQucmV0dXJuJiYodGhpcy5yZXR1cm49dm9pZCAwKX1lTC5wcm90b3R5cGVbImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmFzeW5jSXRlcmF0b3J8fCJAQGFzeW5jSXRlcmF0b3IiXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSxlTC5wcm90b3R5cGUubmV4dD1mdW5jdGlv''@;'; put 'put ''bihkKXtyZXR1cm4gdGhpcy5faW52b2tlKCJuZXh0IixkKX0sZUwucHJvdG90eXBlLnRocm93PWZ1bmN0aW9uKGQpe3JldHVybiB0aGlzLl9pbnZva2UoInRocm93IixkKX0sZUwucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihkKXtyZXR1cm4gdGhpcy5faW52b2tlKCJyZXR1cm4iLGQpfSwi''@;'; put 'put ''dW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sO2NsYXNzIHJMe3N0YXRpYyBnZXRUcmFwRWxlbWVudHMoKXtyZXR1cm5bLi4uSjEuc3RhdGUuZm9jdXNUcmFwSXRlbXNdfXN0YXRpYyBzZXRUcmFwRWxlbWVudHMoZyl7Y29uc3QgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJodG1s''@;'; put 'put ''Iik7bnVsbCE9PWgmJmZ1bmN0aW9uIGVqKGQsLi4uZyl7ZCYmZy5mb3JFYWNoKChbaCx2XSk9PnshMT09PXZ8fG51bGw9PT12P2QucmVtb3ZlQXR0cmlidXRlKGgpOmQuc2V0QXR0cmlidXRlKGgsdisiIil9KX0oaCxbImNkcy1mb2N1cy10cmFwIiwhIWcubGVuZ3RoJiYiIl0pLEoxLnN0YXRl''@;'; put 'put ''LmZvY3VzVHJhcEl0ZW1zPVsuLi5nXX1zdGF0aWMgcmVtb3ZlVHJhcEVsZW1lbnQoZyl7dGhpcy5nZXRUcmFwRWxlbWVudHMoKS5sZW5ndGg8MXx8dGhpcy5zZXRUcmFwRWxlbWVudHMoWy4uLnRoaXMuZ2V0VHJhcEVsZW1lbnRzKCkuZmlsdGVyKGg9PmguZm9jdXNUcmFwSWQhPT1nLmZvY3Vz''@;'; put 'put ''VHJhcElkKV0pfXN0YXRpYyBzZXRDdXJyZW50KGcpe251bGwhPWcmJmcuZm9jdXNUcmFwSWQmJnRoaXMuc2V0VHJhcEVsZW1lbnRzKFsuLi50aGlzLmdldFRyYXBFbGVtZW50cygpLmZpbHRlcihoPT5oLmZvY3VzVHJhcElkIT09Zy5mb2N1c1RyYXBJZCksZ10pfXN0YXRpYyBhY3RpdmF0ZVBy''@;'; put 'put ''ZXZpb3VzQ3VycmVudCgpe3RoaXMuc2V0VHJhcEVsZW1lbnRzKFsuLi50aGlzLmdldFRyYXBFbGVtZW50cygpXS5zbGljZSgwLC0xKSl9c3RhdGljIGdldEN1cnJlbnQoKXtyZXR1cm4gZnVuY3Rpb24gaEsoZCl7cmV0dXJuIGQubGVuZ3RoP2RbZC5sZW5ndGgtMV06dm9pZCAwfSh0aGlzLmdl''@;'; put 'put ''dFRyYXBFbGVtZW50cygpKXx8bnVsbH19Y29uc3QgaDFlPWFYKDMsKGQsZyxoKT0+eyFmdW5jdGlvbiBJc2UoZCxnKXtyZXR1cm4gZ3x8KGc9d2luZG93JiZ3aW5kb3cuY3VzdG9tRWxlbWVudHMpLCFnfHwhIWcuZ2V0KGQpfShkKXx8ZnVuY3Rpb24gS0ooKXt2YXIgZCxnO3JldHVybiBudWxs''@;'; put 'put ''PT0oZz1udWxsPT0oZD1udWxsPT13aW5kb3c/dm9pZCAwOndpbmRvdy5sb2NhdGlvbik/dm9pZCAwOmQuaHJlZik/dm9pZCAwOmcuaW5jbHVkZXMoImxvY2FsaG9zdDo2MDA2Iil9KCk/KGguZGVmaW5lKGQsZyksY1YoKSx3aW5kb3cmJiFPYmplY3Qua2V5cyh3aW5kb3cuQ0RTLl9zdGF0ZS5l''@;'; put 'put ''bGVtZW50UmVnaXN0cnkpLnNvbWUodj0+dj09PWQpJiYod2luZG93LkNEUy5fc3RhdGUuZWxlbWVudFJlZ2lzdHJ5PUd6KG1zKHt9LHdpbmRvdy5DRFMuX3N0YXRlLmVsZW1lbnRSZWdpc3RyeSkse1tkXTp7fX0pKSk6Tjcud2FybihkKyIgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkIil9''@;'; put 'put ''KTtmdW5jdGlvbiBDSyhkLGcpe0pKKCkmJlREKFsiY3VzdG9tRWxlbWVudHMiXSkmJmgxZShkLGcsd2luZG93LmN1c3RvbUVsZW1lbnRzKX1sZXQga0s9ITE7ZnVuY3Rpb24gZDFlKGQpe2lmKChkPU1hdGgudHJ1bmMoZCl8fDApPDAmJihkKz10aGlzLmxlbmd0aCksIShkPDB8fGQ+PXRoaXMu''@;'; put 'put ''bGVuZ3RoKSlyZXR1cm4gdGhpc1tkXX1pZigha0spe2tLPSEwO2NvbnN0IGQ9UmVmbGVjdC5nZXRQcm90b3R5cGVPZihJbnQ4QXJyYXkpO2Zvcihjb25zdCBnIG9mW0FycmF5LFN0cmluZyxkXSlPYmplY3QuZGVmaW5lUHJvcGVydHkoZy5wcm90b3R5cGUsImF0Iix7dmFsdWU6ZDFlLHdyaXRh''@;'; put 'put ''YmxlOiEwLGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSl9bGV0IFNLPSExLE1LPSExO2Z1bmN0aW9uIEVLKGQsZyxoKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCxoLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNBdHRy''@;'; put 'put ''aWJ1dGUoZyk/dGhpcy5nZXRBdHRyaWJ1dGUoZyk6bnVsbH0sc2V0OmZ1bmN0aW9uKHYpe251bGwhPT12P3RoaXMuc2V0QXR0cmlidXRlKGcsdik6dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZyl9fSl9ZnVuY3Rpb24geEsoZCxnLGgsdix5LEMsSSl7dHJ5e3ZhciBaPWRbQ10oSSksdWU9Wi52YWx1''@;'; put 'put ''ZX1jYXRjaChfZSl7cmV0dXJuIHZvaWQgaChfZSl9Wi5kb25lP2codWUpOlByb21pc2UucmVzb2x2ZSh1ZSkudGhlbih2LHkpfWZ1bmN0aW9uIFRLKGQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD1hcmd1bWVudHM7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHYseSl7dmFy''@;'; put 'put ''IEM9ZC5hcHBseShnLGgpO2Z1bmN0aW9uIEkodWUpe3hLKEMsdix5LEksWiwibmV4dCIsdWUpfWZ1bmN0aW9uIFoodWUpe3hLKEMsdix5LEksWiwidGhyb3ciLHVlKX1JKHZvaWQgMCl9KX19U0t8fEVsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJyb2xlIil8fChFSyhFbGVtZW50''@;'; put 'put ''LnByb3RvdHlwZSwicm9sZSIsInJvbGUiKSxTSz0hMCksTUt8fEVsZW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJhcmlhTGFiZWwiKXx8KE1LPSEwLFsiQWN0aXZlRGVzY2VuZGFudCIsIkF0b21pYyIsIkF1dG9Db21wbGV0ZSIsIkJ1c3kiLCJDaGVja2VkIiwiQ29sQ291bnQiLCJD''@;'; put 'put ''b2xJbmRleCIsIkNvbFNwYW4iLCJDb250cm9scyIsIkN1cnJlbnQiLCJEZXNjcmliZWRCeSIsIkRldGFpbHMiLCJEaXNhYmxlZCIsIkVycm9yTWVzc2FnZSIsIkV4cGFuZGVkIiwiRmxvd1RvIiwiSGFzUG9wdXAiLCJIaWRkZW4iLCJJbnZhbGlkIiwiS2V5U2hvcnRjdXRzIiwiTGFiZWwiLCJM''@;'; put 'put ''YWJlbGxlZEJ5IiwiTGV2ZWwiLCJMaXZlIiwiTW9kYWwiLCJNdWx0aUxpbmUiLCJNdWx0aVNlbGVjdGFibGUiLCJPcmllbnRhdGlvbiIsIk93bnMiLCJQbGFjZWhvbGRlciIsIlBvc0luU2V0IiwiUHJlc3NlZCIsIlJlYWRPbmx5IiwiUmVsZXZhbnQiLCJSZXF1aXJlZCIsIlJvbGVEZXNjcmlw''@;'; put 'put ''dGlvbiIsIlJvd0NvdW50IiwiUm93SW5kZXgiLCJSb3dTcGFuIiwiU2VsZWN0ZWQiLCJTZXRTaXplIiwiU29ydCIsIlZhbHVlTWF4IiwiVmFsdWVNaW4iLCJWYWx1ZU5vdyIsIlZhbHVlVGV4dCJdLmZvckVhY2goZD0+RUsoRWxlbWVudC5wcm90b3R5cGUsImFyaWEtIitkLnRvTG93ZXJDYXNl''@;'; put 'put ''KCksImFyaWEiK2QpKSk7Y29uc3QgaWo9d2luZG93LlNoYWRvd1Jvb3QmJih2b2lkIDA9PT13aW5kb3cuU2hhZHlDU1N8fHdpbmRvdy5TaGFkeUNTUy5uYXRpdmVTaGFkb3cpJiYiYWRvcHRlZFN0eWxlU2hlZXRzImluIERvY3VtZW50LnByb3RvdHlwZSYmInJlcGxhY2UiaW4gQ1NTU3R5bGVT''@;'; put 'put ''aGVldC5wcm90b3R5cGUsb2o9U3ltYm9sKCksV3k9bmV3IFdlYWtNYXA7Y2xhc3MgWmt7Y29uc3RydWN0b3IoZyxoLHYpe2lmKHRoaXMuXyRjc3NSZXN1bHQkPSEwLHYhPT1vail0aHJvdyBFcnJvcigiQ1NTUmVzdWx0IGlzIG5vdCBjb25zdHJ1Y3RhYmxlLiBVc2UgYHVuc2FmZUNTU2Agb3Ig''@;'; put 'put ''YGNzc2AgaW5zdGVhZC4iKTt0aGlzLmNzc1RleHQ9Zyx0aGlzLnQ9aH1nZXQgc3R5bGVTaGVldCgpe2xldCBnPXRoaXMubztjb25zdCBoPXRoaXMudDtpZihpaiYmdm9pZCAwPT09Zyl7Y29uc3Qgdj12b2lkIDAhPT1oJiYxPT09aC5sZW5ndGg7diYmKGc9V3kuZ2V0KGgpKSx2b2lkIDA9PT1n''@;'; put 'put ''JiYoKHRoaXMubz1nPW5ldyBDU1NTdHlsZVNoZWV0KS5yZXBsYWNlU3luYyh0aGlzLmNzc1RleHQpLHYmJld5LnNldChoLGcpKX1yZXR1cm4gZ310b1N0cmluZygpe3JldHVybiB0aGlzLmNzc1RleHR9fWNvbnN0IGlMPShkLC4uLmcpPT57Y29uc3QgaD0xPT09ZC5sZW5ndGg/ZFswXTpnLnJl''@;'; put 'put ''ZHVjZSgodix5LEMpPT52KyhJPT57aWYoITA9PT1JLl8kY3NzUmVzdWx0JClyZXR1cm4gSS5jc3NUZXh0O2lmKCJudW1iZXIiPT10eXBlb2YgSSlyZXR1cm4gSTt0aHJvdyBFcnJvcigiVmFsdWUgcGFzc2VkIHRvICdjc3MnIGZ1bmN0aW9uIG11c3QgYmUgYSAnY3NzJyBmdW5jdGlvbiByZXN1''@;'; put 'put ''bHQ6ICIrSSsiLiBVc2UgJ3Vuc2FmZUNTUycgdG8gcGFzcyBub24tbGl0ZXJhbCB2YWx1ZXMsIGJ1dCB0YWtlIGNhcmUgdG8gZW5zdXJlIHBhZ2Ugc2VjdXJpdHkuIil9KSh5KStkW0MrMV0sZFswXSk7cmV0dXJuIG5ldyBaayhoLGQsb2opfSxvTD1paj9kPT5kOmQ9PmQgaW5zdGFuY2VvZiBD''@;'; put 'put ''U1NTdHlsZVNoZWV0PyhnPT57bGV0IGg9IiI7Zm9yKGNvbnN0IHYgb2YgZy5jc3NSdWxlcyloKz12LmNzc1RleHQ7cmV0dXJuKGQ9Pm5ldyBaaygic3RyaW5nIj09dHlwZW9mIGQ/ZDpkKyIiLHZvaWQgMCxvaikpKGgpfSkoZCk6ZDt2YXIgYWo7Y29uc3QgSzc9d2luZG93LnRydXN0ZWRUeXBl''@;'; put 'put ''cyxESz1LNz9LNy5lbXB0eVNjcmlwdDoiIixHaz13aW5kb3cucmVhY3RpdmVFbGVtZW50UG9seWZpbGxTdXBwb3J0LFdrPXt0b0F0dHJpYnV0ZShkLGcpe3N3aXRjaChnKXtjYXNlIEJvb2xlYW46ZD1kP0RLOm51bGw7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTpkPW51bGw9PWQ/ZDpK''@;'; put 'put ''U09OLnN0cmluZ2lmeShkKX1yZXR1cm4gZH0sZnJvbUF0dHJpYnV0ZShkLGcpe2xldCBoPWQ7c3dpdGNoKGcpe2Nhc2UgQm9vbGVhbjpoPW51bGwhPT1kO2JyZWFrO2Nhc2UgTnVtYmVyOmg9bnVsbD09PWQ/bnVsbDpOdW1iZXIoZCk7YnJlYWs7Y2FzZSBPYmplY3Q6Y2FzZSBBcnJheTp0cnl7''@;'; put 'put ''aD1KU09OLnBhcnNlKGQpfWNhdGNoKHYpe2g9bnVsbH19cmV0dXJuIGh9fSxZaz0oZCxnKT0+ZyE9PWQmJihnPT1nfHxkPT1kKSxhTD17YXR0cmlidXRlOiEwLHR5cGU6U3RyaW5nLGNvbnZlcnRlcjpXayxyZWZsZWN0OiExLGhhc0NoYW5nZWQ6WWt9O2NsYXNzICQ3IGV4dGVuZHMgSFRNTEVs''@;'; put 'put ''ZW1lbnR7Y29uc3RydWN0b3IoKXtzdXBlcigpLHRoaXMuXyRFaT1uZXcgTWFwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExLHRoaXMuaGFzVXBkYXRlZD0hMSx0aGlzLl8kRWw9bnVsbCx0aGlzLnUoKX1zdGF0aWMgYWRkSW5pdGlhbGl6ZXIoZyl7dmFyIGg7bnVsbCE9PShoPXRoaXMuaCkmJnZv''@;'; put 'put ''aWQgMCE9PWh8fCh0aGlzLmg9W10pLHRoaXMuaC5wdXNoKGcpfXN0YXRpYyBnZXQgb2JzZXJ2ZWRBdHRyaWJ1dGVzKCl7dGhpcy5maW5hbGl6ZSgpO2NvbnN0IGc9W107cmV0dXJuIHRoaXMuZWxlbWVudFByb3BlcnRpZXMuZm9yRWFjaCgoaCx2KT0+e2NvbnN0IHk9dGhpcy5fJEVwKHYsaCk7''@;'; put 'put ''dm9pZCAwIT09eSYmKHRoaXMuXyRFdi5zZXQoeSx2KSxnLnB1c2goeSkpfSksZ31zdGF0aWMgY3JlYXRlUHJvcGVydHkoZyxoPWFMKXtpZihoLnN0YXRlJiYoaC5hdHRyaWJ1dGU9ITEpLHRoaXMuZmluYWxpemUoKSx0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLnNldChnLGgpLCFoLm5vQWNjZXNz''@;'; put 'put ''b3ImJiF0aGlzLnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eShnKSl7Y29uc3Qgdj0ic3ltYm9sIj09dHlwZW9mIGc/U3ltYm9sKCk6Il9fIitnLHk9dGhpcy5nZXRQcm9wZXJ0eURlc2NyaXB0b3IoZyx2LGgpO3ZvaWQgMCE9PXkmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLnByb3RvdHlw''@;'; put 'put ''ZSxnLHkpfX1zdGF0aWMgZ2V0UHJvcGVydHlEZXNjcmlwdG9yKGcsaCx2KXtyZXR1cm57Z2V0KCl7cmV0dXJuIHRoaXNbaF19LHNldCh5KXtjb25zdCBDPXRoaXNbZ107dGhpc1toXT15LHRoaXMucmVxdWVzdFVwZGF0ZShnLEMsdil9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfX1z''@;'; put 'put ''dGF0aWMgZ2V0UHJvcGVydHlPcHRpb25zKGcpe3JldHVybiB0aGlzLmVsZW1lbnRQcm9wZXJ0aWVzLmdldChnKXx8YUx9c3RhdGljIGZpbmFsaXplKCl7aWYodGhpcy5oYXNPd25Qcm9wZXJ0eSgiZmluYWxpemVkIikpcmV0dXJuITE7dGhpcy5maW5hbGl6ZWQ9ITA7Y29uc3QgZz1PYmplY3Qu''@;'; put 'put ''Z2V0UHJvdG90eXBlT2YodGhpcyk7aWYoZy5maW5hbGl6ZSgpLHRoaXMuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcChnLmVsZW1lbnRQcm9wZXJ0aWVzKSx0aGlzLl8kRXY9bmV3IE1hcCx0aGlzLmhhc093blByb3BlcnR5KCJwcm9wZXJ0aWVzIikpe2NvbnN0IGg9dGhpcy5wcm9wZXJ0aWVz''@;'; put 'put ''LHY9Wy4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGgpLC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoaCldO2Zvcihjb25zdCB5IG9mIHYpdGhpcy5jcmVhdGVQcm9wZXJ0eSh5LGhbeV0pfXJldHVybiB0aGlzLmVsZW1lbnRTdHlsZXM9dGhpcy5maW5hbGl6ZVN0eWxlcyh0''@;'; put 'put ''aGlzLnN0eWxlcyksITB9c3RhdGljIGZpbmFsaXplU3R5bGVzKGcpe2NvbnN0IGg9W107aWYoQXJyYXkuaXNBcnJheShnKSl7Y29uc3Qgdj1uZXcgU2V0KGcuZmxhdCgxLzApLnJldmVyc2UoKSk7Zm9yKGNvbnN0IHkgb2YgdiloLnVuc2hpZnQob0woeSkpfWVsc2Ugdm9pZCAwIT09ZyYmaC5w''@;'; put 'put ''dXNoKG9MKGcpKTtyZXR1cm4gaH1zdGF0aWMgXyRFcChnLGgpe2NvbnN0IHY9aC5hdHRyaWJ1dGU7cmV0dXJuITE9PT12P3ZvaWQgMDoic3RyaW5nIj09dHlwZW9mIHY/djoic3RyaW5nIj09dHlwZW9mIGc/Zy50b0xvd2VyQ2FzZSgpOnZvaWQgMH11KCl7dmFyIGc7dGhpcy5fJEVfPW5ldyBQ''@;'; put 'put ''cm9taXNlKGg9PnRoaXMuZW5hYmxlVXBkYXRpbmc9aCksdGhpcy5fJEFMPW5ldyBNYXAsdGhpcy5fJEVnKCksdGhpcy5yZXF1ZXN0VXBkYXRlKCksbnVsbD09PShnPXRoaXMuY29uc3RydWN0b3IuaCl8fHZvaWQgMD09PWd8fGcuZm9yRWFjaChoPT5oKHRoaXMpKX1hZGRDb250cm9sbGVyKGcp''@;'; put 'put ''e3ZhciBoLHY7KG51bGwhPT0oaD10aGlzLl8kRVMpJiZ2b2lkIDAhPT1oP2g6dGhpcy5fJEVTPVtdKS5wdXNoKGcpLHZvaWQgMCE9PXRoaXMucmVuZGVyUm9vdCYmdGhpcy5pc0Nvbm5lY3RlZCYmKG51bGw9PT0odj1nLmhvc3RDb25uZWN0ZWQpfHx2b2lkIDA9PT12fHx2LmNhbGwoZykpfXJl''@;'; put 'put ''bW92ZUNvbnRyb2xsZXIoZyl7dmFyIGg7bnVsbD09PShoPXRoaXMuXyRFUyl8fHZvaWQgMD09PWh8fGguc3BsaWNlKHRoaXMuXyRFUy5pbmRleE9mKGcpPj4+MCwxKX1fJEVnKCl7dGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50UHJvcGVydGllcy5mb3JFYWNoKChnLGgpPT57dGhpcy5oYXNPd25Q''@;'; put 'put ''cm9wZXJ0eShoKSYmKHRoaXMuXyRFaS5zZXQoaCx0aGlzW2hdKSxkZWxldGUgdGhpc1toXSl9KX1jcmVhdGVSZW5kZXJSb290KCl7dmFyIGc7Y29uc3QgaD1udWxsIT09KGc9dGhpcy5zaGFkb3dSb290KSYmdm9pZCAwIT09Zz9nOnRoaXMuYXR0YWNoU2hhZG93KHRoaXMuY29uc3RydWN0b3Iu''@;'; put 'put ''c2hhZG93Um9vdE9wdGlvbnMpO3JldHVybigoZCxnKT0+e2lqP2QuYWRvcHRlZFN0eWxlU2hlZXRzPWcubWFwKGg9PmggaW5zdGFuY2VvZiBDU1NTdHlsZVNoZWV0P2g6aC5zdHlsZVNoZWV0KTpnLmZvckVhY2goaD0+e2NvbnN0IHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSx5''@;'; put 'put ''PXdpbmRvdy5saXROb25jZTt2b2lkIDAhPT15JiZ2LnNldEF0dHJpYnV0ZSgibm9uY2UiLHkpLHYudGV4dENvbnRlbnQ9aC5jc3NUZXh0LGQuYXBwZW5kQ2hpbGQodil9KX0pKGgsdGhpcy5jb25zdHJ1Y3Rvci5lbGVtZW50U3R5bGVzKSxofWNvbm5lY3RlZENhbGxiYWNrKCl7dmFyIGc7dm9p''@;'; put 'put ''ZCAwPT09dGhpcy5yZW5kZXJSb290JiYodGhpcy5yZW5kZXJSb290PXRoaXMuY3JlYXRlUmVuZGVyUm9vdCgpKSx0aGlzLmVuYWJsZVVwZGF0aW5nKCEwKSxudWxsPT09KGc9dGhpcy5fJEVTKXx8dm9pZCAwPT09Z3x8Zy5mb3JFYWNoKGg9Pnt2YXIgdjtyZXR1cm4gbnVsbD09PSh2PWguaG9z''@;'; put 'put ''dENvbm5lY3RlZCl8fHZvaWQgMD09PXY/dm9pZCAwOnYuY2FsbChoKX0pfWVuYWJsZVVwZGF0aW5nKGcpe31kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBnO251bGw9PT0oZz10aGlzLl8kRVMpfHx2b2lkIDA9PT1nfHxnLmZvckVhY2goaD0+e3ZhciB2O3JldHVybiBudWxsPT09KHY9aC5o''@;'; put 'put ''b3N0RGlzY29ubmVjdGVkKXx8dm9pZCAwPT09dj92b2lkIDA6di5jYWxsKGgpfSl9YXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGcsaCx2KXt0aGlzLl8kQUsoZyx2KX1fJEVPKGcsaCx2PWFMKXt2YXIgeSxDO2NvbnN0IEk9dGhpcy5jb25zdHJ1Y3Rvci5fJEVwKGcsdik7aWYodm9pZCAwIT09''@;'; put 'put ''SSYmITA9PT12LnJlZmxlY3Qpe2NvbnN0IFo9KG51bGwhPT0oQz1udWxsPT09KHk9di5jb252ZXJ0ZXIpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LnRvQXR0cmlidXRlKSYmdm9pZCAwIT09Qz9DOldrLnRvQXR0cmlidXRlKShoLHYudHlwZSk7dGhpcy5fJEVsPWcsbnVsbD09Wj90aGlzLnJlbW92''@;'; put 'put ''ZUF0dHJpYnV0ZShJKTp0aGlzLnNldEF0dHJpYnV0ZShJLFopLHRoaXMuXyRFbD1udWxsfX1fJEFLKGcsaCl7dmFyIHYseTtjb25zdCBDPXRoaXMuY29uc3RydWN0b3IsST1DLl8kRXYuZ2V0KGcpO2lmKHZvaWQgMCE9PUkmJnRoaXMuXyRFbCE9PUkpe2NvbnN0IFo9Qy5nZXRQcm9wZXJ0eU9w''@;'; put 'put ''dGlvbnMoSSksdWU9Wi5jb252ZXJ0ZXIsX2U9bnVsbCE9PSh5PW51bGwhPT0odj1udWxsPT11ZT92b2lkIDA6dWUuZnJvbUF0dHJpYnV0ZSkmJnZvaWQgMCE9PXY/djoiZnVuY3Rpb24iPT10eXBlb2YgdWU/dWU6bnVsbCkmJnZvaWQgMCE9PXk/eTpXay5mcm9tQXR0cmlidXRlO3RoaXMuXyRF''@;'; put 'put ''bD1JLHRoaXNbSV09X2UoaCxaLnR5cGUpLHRoaXMuXyRFbD1udWxsfX1yZXF1ZXN0VXBkYXRlKGcsaCx2KXtsZXQgeT0hMDt2b2lkIDAhPT1nJiYoKCh2PXZ8fHRoaXMuY29uc3RydWN0b3IuZ2V0UHJvcGVydHlPcHRpb25zKGcpKS5oYXNDaGFuZ2VkfHxZaykodGhpc1tnXSxoKT8odGhpcy5f''@;'; put 'put ''JEFMLmhhcyhnKXx8dGhpcy5fJEFMLnNldChnLGgpLCEwPT09di5yZWZsZWN0JiZ0aGlzLl8kRWwhPT1nJiYodm9pZCAwPT09dGhpcy5fJEVDJiYodGhpcy5fJEVDPW5ldyBNYXApLHRoaXMuXyRFQy5zZXQoZyx2KSkpOnk9ITEpLCF0aGlzLmlzVXBkYXRlUGVuZGluZyYmeSYmKHRoaXMuXyRF''@;'; put 'put ''Xz10aGlzLl8kRWooKSl9XyRFaigpe3ZhciBnPXRoaXM7cmV0dXJuIFRLKGZ1bmN0aW9uKigpe2cuaXNVcGRhdGVQZW5kaW5nPSEwO3RyeXt5aWVsZCBnLl8kRV99Y2F0Y2godil7UHJvbWlzZS5yZWplY3Qodil9Y29uc3QgaD1nLnNjaGVkdWxlVXBkYXRlKCk7cmV0dXJuIG51bGwhPWgmJih5''@;'; put 'put ''aWVsZCBoKSwhZy5pc1VwZGF0ZVBlbmRpbmd9KSgpfXNjaGVkdWxlVXBkYXRlKCl7cmV0dXJuIHRoaXMucGVyZm9ybVVwZGF0ZSgpfXBlcmZvcm1VcGRhdGUoKXt2YXIgZztpZighdGhpcy5pc1VwZGF0ZVBlbmRpbmcpcmV0dXJuO3RoaXMuXyRFaSYmKHRoaXMuXyRFaS5mb3JFYWNoKCh5LEMp''@;'; put 'put ''PT50aGlzW0NdPXkpLHRoaXMuXyRFaT12b2lkIDApO2xldCBoPSExO2NvbnN0IHY9dGhpcy5fJEFMO3RyeXtoPXRoaXMuc2hvdWxkVXBkYXRlKHYpLGg/KHRoaXMud2lsbFVwZGF0ZSh2KSxudWxsPT09KGc9dGhpcy5fJEVTKXx8dm9pZCAwPT09Z3x8Zy5mb3JFYWNoKHk9Pnt2YXIgQztyZXR1''@;'; put 'put ''cm4gbnVsbD09PShDPXkuaG9zdFVwZGF0ZSl8fHZvaWQgMD09PUM/dm9pZCAwOkMuY2FsbCh5KX0pLHRoaXMudXBkYXRlKHYpKTp0aGlzLl8kRWsoKX1jYXRjaCh5KXt0aHJvdyBoPSExLHRoaXMuXyRFaygpLHl9aCYmdGhpcy5fJEFFKHYpfXdpbGxVcGRhdGUoZyl7fV8kQUUoZyl7dmFyIGg7''@;'; put 'put ''bnVsbD09PShoPXRoaXMuXyRFUyl8fHZvaWQgMD09PWh8fGguZm9yRWFjaCh2PT57dmFyIHk7cmV0dXJuIG51bGw9PT0oeT12Lmhvc3RVcGRhdGVkKXx8dm9pZCAwPT09eT92b2lkIDA6eS5jYWxsKHYpfSksdGhpcy5oYXNVcGRhdGVkfHwodGhpcy5oYXNVcGRhdGVkPSEwLHRoaXMuZmlyc3RV''@;'; put 'put ''cGRhdGVkKGcpKSx0aGlzLnVwZGF0ZWQoZyl9XyRFaygpe3RoaXMuXyRBTD1uZXcgTWFwLHRoaXMuaXNVcGRhdGVQZW5kaW5nPSExfWdldCB1cGRhdGVDb21wbGV0ZSgpe3JldHVybiB0aGlzLmdldFVwZGF0ZUNvbXBsZXRlKCl9Z2V0VXBkYXRlQ29tcGxldGUoKXtyZXR1cm4gdGhpcy5fJEVf''@;'; put 'put ''fXNob3VsZFVwZGF0ZShnKXtyZXR1cm4hMH11cGRhdGUoZyl7dm9pZCAwIT09dGhpcy5fJEVDJiYodGhpcy5fJEVDLmZvckVhY2goKGgsdik9PnRoaXMuXyRFTyh2LHRoaXNbdl0saCkpLHRoaXMuXyRFQz12b2lkIDApLHRoaXMuXyRFaygpfXVwZGF0ZWQoZyl7fWZpcnN0VXBkYXRlZChnKXt9''@;'; put 'put ''fXZhciBVazskNy5maW5hbGl6ZWQ9ITAsJDcuZWxlbWVudFByb3BlcnRpZXM9bmV3IE1hcCwkNy5lbGVtZW50U3R5bGVzPVtdLCQ3LnNoYWRvd1Jvb3RPcHRpb25zPXttb2RlOiJvcGVuIn0sbnVsbD09R2t8fEdrKHtSZWFjdGl2ZUVsZW1lbnQ6JDd9KSwobnVsbCE9PShhaj1nbG9iYWxUaGlz''@;'; put 'put ''LnJlYWN0aXZlRWxlbWVudFZlcnNpb25zKSYmdm9pZCAwIT09YWo/YWo6Z2xvYmFsVGhpcy5yZWFjdGl2ZUVsZW1lbnRWZXJzaW9ucz1bXSkucHVzaCgiMS4zLjQiKTtjb25zdCBxNz1nbG9iYWxUaGlzLnRydXN0ZWRUeXBlcyxsaj1xNz9xNy5jcmVhdGVQb2xpY3koImxpdC1odG1sIix7Y3Jl''@;'; put 'put ''YXRlSFRNTDpkPT5kfSk6dm9pZCAwLEFwPWBsaXQkJHsoTWF0aC5yYW5kb20oKSsiIikuc2xpY2UoOSl9JGAsZXY9Ij8iK0FwLFl5PWA8JHtldn0+YCxSYT1kb2N1bWVudCx1Yz0oZD0iIik9PlJhLmNyZWF0ZUNvbW1lbnQoZCksUWs9ZD0+bnVsbD09PWR8fCJvYmplY3QiIT10eXBlb2YgZCYm''@;'; put 'put ''ImZ1bmN0aW9uIiE9dHlwZW9mIGQsc2o9QXJyYXkuaXNBcnJheSxhaD0vPCg/OighLS18XC9bXmEtekEtWl0pfChcLz9bYS16QS1aXVtePlxzXSopfChcLz8kKSkvZyxsaD0vLS0+L2csdHY9Lz4vZyx5cD1SZWdFeHAoIj58WyBcdFxuXGZccl0oPzooW15cXHNcIic+PS9dKykoWyBcdFxuXGZc''@;'; put 'put ''cl0qPVsgXHRcblxmXHJdKig/OlteIFx0XG5cZlxyXCInYDw+PV18KFwifCcpfCkpfCQpIiwiZyIpLGNqPS8nL2csSms9LyIvZyx3cD0vXig/OnNjcmlwdHxzdHlsZXx0ZXh0YXJlYXx0aXRsZSkkL2ksZmo9ZD0+KGcsLi4uaCk9Pih7XyRsaXRUeXBlJDpkLHN0cmluZ3M6Zyx2YWx1ZXM6aH0p''@;'; put 'put ''LG80PWZqKDEpLHAxZT1maigyKSxVeT1TeW1ib2wuZm9yKCJsaXQtbm9DaGFuZ2UiKSxOdT1TeW1ib2wuZm9yKCJsaXQtbm90aGluZyIpLExLPW5ldyBXZWFrTWFwLE9LPShkLGcsaCk9Pnt2YXIgdix5O2NvbnN0IEM9bnVsbCE9PSh2PW51bGw9PWg/dm9pZCAwOmgucmVuZGVyQmVmb3JlKSYm''@;'; put 'put ''dm9pZCAwIT09dj92Omc7bGV0IEk9Qy5fJGxpdFBhcnQkO2lmKHZvaWQgMD09PUkpe2NvbnN0IFo9bnVsbCE9PSh5PW51bGw9PWg/dm9pZCAwOmgucmVuZGVyQmVmb3JlKSYmdm9pZCAwIT09eT95Om51bGw7Qy5fJGxpdFBhcnQkPUk9bmV3IEp5KGcuaW5zZXJ0QmVmb3JlKHVjKCksWiksWix2''@;'; put 'put ''b2lkIDAsbnVsbCE9aD9oOnt9KX1yZXR1cm4gSS5fJEFJKGQpLEl9LFF5PVJhLmNyZWF0ZVRyZWVXYWxrZXIoUmEsMTI5LG51bGwsITEpO2NsYXNzIFhre2NvbnN0cnVjdG9yKHtzdHJpbmdzOmcsXyRsaXRUeXBlJDpofSx2KXtsZXQgeTt0aGlzLnBhcnRzPVtdO2xldCBDPTAsST0wO2NvbnN0''@;'; put 'put ''IFo9Zy5sZW5ndGgtMSx1ZT10aGlzLnBhcnRzLFtfZSxCZV09KChkLGcpPT57Y29uc3QgaD1kLmxlbmd0aC0xLHY9W107bGV0IHksQz0yPT09Zz8iPHN2Zz4iOiIiLEk9YWg7Zm9yKGxldCB1ZT0wO3VlPGg7dWUrKyl7Y29uc3QgX2U9ZFt1ZV07bGV0IEJlLE5lLEtlPS0xLHB0PTA7Zm9yKDtw''@;'; put 'put ''dDxfZS5sZW5ndGgmJihJLmxhc3RJbmRleD1wdCxOZT1JLmV4ZWMoX2UpLG51bGwhPT1OZSk7KXB0PUkubGFzdEluZGV4LEk9PT1haD8iIS0tIj09PU5lWzFdP0k9bGg6dm9pZCAwIT09TmVbMV0/ST10djp2b2lkIDAhPT1OZVsyXT8od3AudGVzdChOZVsyXSkmJih5PVJlZ0V4cCgiPC8iK05l''@;'; put 'put ''WzJdLCJnIikpLEk9eXApOnZvaWQgMCE9PU5lWzNdJiYoST15cCk6ST09PXlwPyI+Ij09PU5lWzBdPyhJPW51bGwhPXk/eTphaCxLZT0tMSk6dm9pZCAwPT09TmVbMV0/S2U9LTI6KEtlPUkubGFzdEluZGV4LU5lWzJdLmxlbmd0aCxCZT1OZVsxXSxJPXZvaWQgMD09PU5lWzNdP3lwOiciJz09''@;'; put 'put ''PU5lWzNdP0prOmNqKTpJPT09Smt8fEk9PT1jaj9JPXlwOkk9PT1saHx8ST09PXR2P0k9YWg6KEk9eXAseT12b2lkIDApO2NvbnN0IE90PUk9PT15cCYmZFt1ZSsxXS5zdGFydHNXaXRoKCIvPiIpPyIgIjoiIjtDKz1JPT09YWg/X2UrWXk6S2U+PTA/KHYucHVzaChCZSksX2Uuc2xpY2UoMCxL''@;'; put 'put ''ZSkrIiRsaXQkIitfZS5zbGljZShLZSkrQXArT3QpOl9lK0FwKygtMj09PUtlPyh2LnB1c2godm9pZCAwKSx1ZSk6T3QpfWNvbnN0IFo9QysoZFtoXXx8Ijw/PiIpKygyPT09Zz8iPC9zdmc+IjoiIik7aWYoIUFycmF5LmlzQXJyYXkoZCl8fCFkLmhhc093blByb3BlcnR5KCJyYXciKSl0aHJv''@;'; put 'put ''dyBFcnJvcigiaW52YWxpZCB0ZW1wbGF0ZSBzdHJpbmdzIGFycmF5Iik7cmV0dXJuW3ZvaWQgMCE9PWxqP2xqLmNyZWF0ZUhUTUwoWik6Wix2XX0pKGcsaCk7aWYodGhpcy5lbD1Yay5jcmVhdGVFbGVtZW50KF9lLHYpLFF5LmN1cnJlbnROb2RlPXRoaXMuZWwuY29udGVudCwyPT09aCl7Y29u''@;'; put 'put ''c3QgTmU9dGhpcy5lbC5jb250ZW50LEtlPU5lLmZpcnN0Q2hpbGQ7S2UucmVtb3ZlKCksTmUuYXBwZW5kKC4uLktlLmNoaWxkTm9kZXMpfWZvcig7bnVsbCE9PSh5PVF5Lm5leHROb2RlKCkpJiZ1ZS5sZW5ndGg8Wjspe2lmKDE9PT15Lm5vZGVUeXBlKXtpZih5Lmhhc0F0dHJpYnV0ZXMoKSl7''@;'; put 'put ''Y29uc3QgTmU9W107Zm9yKGNvbnN0IEtlIG9mIHkuZ2V0QXR0cmlidXRlTmFtZXMoKSlpZihLZS5lbmRzV2l0aCgiJGxpdCQiKXx8S2Uuc3RhcnRzV2l0aChBcCkpe2NvbnN0IHB0PUJlW0krK107aWYoTmUucHVzaChLZSksdm9pZCAwIT09cHQpe2NvbnN0IE90PXkuZ2V0QXR0cmlidXRlKHB0''@;'; put 'put ''LnRvTG93ZXJDYXNlKCkrIiRsaXQkIikuc3BsaXQoQXApLCR0PS8oWy4/QF0pPyguKikvLmV4ZWMocHQpO3VlLnB1c2goe3R5cGU6MSxpbmRleDpDLG5hbWU6JHRbMl0sc3RyaW5nczpPdCxjdG9yOiIuIj09PSR0WzFdP0JLOiI/Ij09PSR0WzFdP2RqOiJAIj09PSR0WzFdP1BLOktrfSl9ZWxz''@;'; put 'put ''ZSB1ZS5wdXNoKHt0eXBlOjYsaW5kZXg6Q30pfWZvcihjb25zdCBLZSBvZiBOZSl5LnJlbW92ZUF0dHJpYnV0ZShLZSl9aWYod3AudGVzdCh5LnRhZ05hbWUpKXtjb25zdCBOZT15LnRleHRDb250ZW50LnNwbGl0KEFwKSxLZT1OZS5sZW5ndGgtMTtpZihLZT4wKXt5LnRleHRDb250ZW50PXE3''@;'; put 'put ''P3E3LmVtcHR5U2NyaXB0OiIiO2ZvcihsZXQgcHQ9MDtwdDxLZTtwdCsrKXkuYXBwZW5kKE5lW3B0XSx1YygpKSxReS5uZXh0Tm9kZSgpLHVlLnB1c2goe3R5cGU6MixpbmRleDorK0N9KTt5LmFwcGVuZChOZVtLZV0sdWMoKSl9fX1lbHNlIGlmKDg9PT15Lm5vZGVUeXBlKWlmKHkuZGF0YT09''@;'; put 'put ''PWV2KXVlLnB1c2goe3R5cGU6MixpbmRleDpDfSk7ZWxzZXtsZXQgTmU9LTE7Zm9yKDstMSE9PShOZT15LmRhdGEuaW5kZXhPZihBcCxOZSsxKSk7KXVlLnB1c2goe3R5cGU6NyxpbmRleDpDfSksTmUrPUFwLmxlbmd0aC0xfUMrK319c3RhdGljIGNyZWF0ZUVsZW1lbnQoZyxoKXtjb25zdCB2''@;'; put 'put ''PVJhLmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIHYuaW5uZXJIVE1MPWcsdn19ZnVuY3Rpb24gbnYoZCxnLGg9ZCx2KXt2YXIgeSxDLEksWjtpZihnPT09VXkpcmV0dXJuIGc7bGV0IHVlPXZvaWQgMCE9PXY/bnVsbD09PSh5PWguXyRDbCl8fHZvaWQgMD09PXk/dm9pZCAwOnlb''@;'; put 'put ''dl06aC5fJEN1O2NvbnN0IF9lPVFrKGcpP3ZvaWQgMDpnLl8kbGl0RGlyZWN0aXZlJDtyZXR1cm4obnVsbD09dWU/dm9pZCAwOnVlLmNvbnN0cnVjdG9yKSE9PV9lJiYobnVsbD09PShDPW51bGw9PXVlP3ZvaWQgMDp1ZS5fJEFPKXx8dm9pZCAwPT09Q3x8Qy5jYWxsKHVlLCExKSx2b2lkIDA9''@;'; put 'put ''PT1fZT91ZT12b2lkIDA6KHVlPW5ldyBfZShkKSx1ZS5fJEFUKGQsaCx2KSksdm9pZCAwIT09dj8obnVsbCE9PShJPShaPWgpLl8kQ2wpJiZ2b2lkIDAhPT1JP0k6Wi5fJENsPVtdKVt2XT11ZTpoLl8kQ3U9dWUpLHZvaWQgMCE9PXVlJiYoZz1udihkLHVlLl8kQVMoZCxnLnZhbHVlcyksdWUs''@;'; put 'put ''dikpLGd9Y2xhc3MgaGp7Y29uc3RydWN0b3IoZyxoKXt0aGlzLnY9W10sdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQUQ9Zyx0aGlzLl8kQU09aH1nZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl8kQU0ucGFyZW50Tm9kZX1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1wKGcp''@;'; put 'put ''e3ZhciBoO2NvbnN0e2VsOntjb250ZW50OnZ9LHBhcnRzOnl9PXRoaXMuXyRBRCxDPShudWxsIT09KGg9bnVsbD09Zz92b2lkIDA6Zy5jcmVhdGlvblNjb3BlKSYmdm9pZCAwIT09aD9oOlJhKS5pbXBvcnROb2RlKHYsITApO1F5LmN1cnJlbnROb2RlPUM7bGV0IEk9UXkubmV4dE5vZGUoKSxa''@;'; put 'put ''PTAsdWU9MCxfZT15WzBdO2Zvcig7dm9pZCAwIT09X2U7KXtpZihaPT09X2UuaW5kZXgpe2xldCBCZTsyPT09X2UudHlwZT9CZT1uZXcgSnkoSSxJLm5leHRTaWJsaW5nLHRoaXMsZyk6MT09PV9lLnR5cGU/QmU9bmV3IF9lLmN0b3IoSSxfZS5uYW1lLF9lLnN0cmluZ3MsdGhpcyxnKTo2PT09''@;'; put 'put ''X2UudHlwZSYmKEJlPW5ldyBGSyhJLHRoaXMsZykpLHRoaXMudi5wdXNoKEJlKSxfZT15WysrdWVdfVohPT0obnVsbD09X2U/dm9pZCAwOl9lLmluZGV4KSYmKEk9UXkubmV4dE5vZGUoKSxaKyspfXJldHVybiBDfW0oZyl7bGV0IGg9MDtmb3IoY29uc3QgdiBvZiB0aGlzLnYpdm9pZCAwIT09''@;'; put 'put ''diYmKHZvaWQgMCE9PXYuc3RyaW5ncz8odi5fJEFJKGcsdixoKSxoKz12LnN0cmluZ3MubGVuZ3RoLTIpOnYuXyRBSShnW2hdKSksaCsrfX1jbGFzcyBKeXtjb25zdHJ1Y3RvcihnLGgsdix5KXt2YXIgQzt0aGlzLnR5cGU9Mix0aGlzLl8kQUg9TnUsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8k''@;'; put 'put ''QUE9Zyx0aGlzLl8kQUI9aCx0aGlzLl8kQU09dix0aGlzLm9wdGlvbnM9eSx0aGlzLl8kQ189bnVsbD09PShDPW51bGw9PXk/dm9pZCAwOnkuaXNDb25uZWN0ZWQpfHx2b2lkIDA9PT1DfHxDfWdldCBfJEFVKCl7dmFyIGcsaDtyZXR1cm4gbnVsbCE9PShoPW51bGw9PT0oZz10aGlzLl8kQU0p''@;'; put 'put ''fHx2b2lkIDA9PT1nP3ZvaWQgMDpnLl8kQVUpJiZ2b2lkIDAhPT1oP2g6dGhpcy5fJENffWdldCBwYXJlbnROb2RlKCl7bGV0IGc9dGhpcy5fJEFBLnBhcmVudE5vZGU7Y29uc3QgaD10aGlzLl8kQU07cmV0dXJuIHZvaWQgMCE9PWgmJjExPT09Zy5ub2RlVHlwZSYmKGc9aC5wYXJlbnROb2Rl''@;'; put 'put ''KSxnfWdldCBzdGFydE5vZGUoKXtyZXR1cm4gdGhpcy5fJEFBfWdldCBlbmROb2RlKCl7cmV0dXJuIHRoaXMuXyRBQn1fJEFJKGcsaD10aGlzKXtnPW52KHRoaXMsZyxoKSxRayhnKT9nPT09TnV8fG51bGw9PWd8fCIiPT09Zz8odGhpcy5fJEFIIT09TnUmJnRoaXMuXyRBUigpLHRoaXMuXyRB''@;'; put 'put ''SD1OdSk6ZyE9PXRoaXMuXyRBSCYmZyE9PVV5JiZ0aGlzLlQoZyk6dm9pZCAwIT09Zy5fJGxpdFR5cGUkP3RoaXMuJChnKTp2b2lkIDAhPT1nLm5vZGVUeXBlP3RoaXMuayhnKTooZD0+c2ooZCl8fCJmdW5jdGlvbiI9PXR5cGVvZihudWxsPT1kP3ZvaWQgMDpkW1N5bWJvbC5pdGVyYXRvcl0p''@;'; put 'put ''KShnKT90aGlzLlMoZyk6dGhpcy5UKGcpfWooZyxoPXRoaXMuXyRBQil7cmV0dXJuIHRoaXMuXyRBQS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnLGgpfWsoZyl7dGhpcy5fJEFIIT09ZyYmKHRoaXMuXyRBUigpLHRoaXMuXyRBSD10aGlzLmooZykpfVQoZyl7dGhpcy5fJEFIIT09TnUmJlFr''@;'; put 'put ''KHRoaXMuXyRBSCk/dGhpcy5fJEFBLm5leHRTaWJsaW5nLmRhdGE9Zzp0aGlzLmsoUmEuY3JlYXRlVGV4dE5vZGUoZykpLHRoaXMuXyRBSD1nfSQoZyl7dmFyIGg7Y29uc3R7dmFsdWVzOnYsXyRsaXRUeXBlJDp5fT1nLEM9Im51bWJlciI9PXR5cGVvZiB5P3RoaXMuXyRBQyhnKToodm9pZCAw''@;'; put 'put ''PT09eS5lbCYmKHkuZWw9WGsuY3JlYXRlRWxlbWVudCh5LmgsdGhpcy5vcHRpb25zKSkseSk7aWYoKG51bGw9PT0oaD10aGlzLl8kQUgpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLl8kQUQpPT09Qyl0aGlzLl8kQUgubSh2KTtlbHNle2NvbnN0IEk9bmV3IGhqKEMsdGhpcyksWj1JLnAodGhpcy5v''@;'; put 'put ''cHRpb25zKTtJLm0odiksdGhpcy5rKFopLHRoaXMuXyRBSD1JfX1fJEFDKGcpe2xldCBoPUxLLmdldChnLnN0cmluZ3MpO3JldHVybiB2b2lkIDA9PT1oJiZMSy5zZXQoZy5zdHJpbmdzLGg9bmV3IFhrKGcpKSxofVMoZyl7c2oodGhpcy5fJEFIKXx8KHRoaXMuXyRBSD1bXSx0aGlzLl8kQVIo''@;'; put 'put ''KSk7Y29uc3QgaD10aGlzLl8kQUg7bGV0IHYseT0wO2Zvcihjb25zdCBDIG9mIGcpeT09PWgubGVuZ3RoP2gucHVzaCh2PW5ldyBKeSh0aGlzLmoodWMoKSksdGhpcy5qKHVjKCkpLHRoaXMsdGhpcy5vcHRpb25zKSk6dj1oW3ldLHYuXyRBSShDKSx5Kys7eTxoLmxlbmd0aCYmKHRoaXMuXyRB''@;'; put 'put ''Uih2JiZ2Ll8kQUIubmV4dFNpYmxpbmcseSksaC5sZW5ndGg9eSl9XyRBUihnPXRoaXMuXyRBQS5uZXh0U2libGluZyxoKXt2YXIgdjtmb3IobnVsbD09PSh2PXRoaXMuXyRBUCl8fHZvaWQgMD09PXZ8fHYuY2FsbCh0aGlzLCExLCEwLGgpO2cmJmchPT10aGlzLl8kQUI7KXtjb25zdCB5PWcu''@;'; put 'put ''bmV4dFNpYmxpbmc7Zy5yZW1vdmUoKSxnPXl9fXNldENvbm5lY3RlZChnKXt2YXIgaDt2b2lkIDA9PT10aGlzLl8kQU0mJih0aGlzLl8kQ189ZyxudWxsPT09KGg9dGhpcy5fJEFQKXx8dm9pZCAwPT09aHx8aC5jYWxsKHRoaXMsZykpfX1jbGFzcyBLa3tjb25zdHJ1Y3RvcihnLGgsdix5LEMp''@;'; put 'put ''e3RoaXMudHlwZT0xLHRoaXMuXyRBSD1OdSx0aGlzLl8kQU49dm9pZCAwLHRoaXMuZWxlbWVudD1nLHRoaXMubmFtZT1oLHRoaXMuXyRBTT15LHRoaXMub3B0aW9ucz1DLHYubGVuZ3RoPjJ8fCIiIT09dlswXXx8IiIhPT12WzFdPyh0aGlzLl8kQUg9QXJyYXkodi5sZW5ndGgtMSkuZmlsbChu''@;'; put 'put ''ZXcgU3RyaW5nKSx0aGlzLnN0cmluZ3M9dik6dGhpcy5fJEFIPU51fWdldCB0YWdOYW1lKCl7cmV0dXJuIHRoaXMuZWxlbWVudC50YWdOYW1lfWdldCBfJEFVKCl7cmV0dXJuIHRoaXMuXyRBTS5fJEFVfV8kQUkoZyxoPXRoaXMsdix5KXtjb25zdCBDPXRoaXMuc3RyaW5ncztsZXQgST0hMTtp''@;'; put 'put ''Zih2b2lkIDA9PT1DKWc9bnYodGhpcyxnLGgsMCksST0hUWsoZyl8fGchPT10aGlzLl8kQUgmJmchPT1VeSxJJiYodGhpcy5fJEFIPWcpO2Vsc2V7Y29uc3QgWj1nO2xldCB1ZSxfZTtmb3IoZz1DWzBdLHVlPTA7dWU8Qy5sZW5ndGgtMTt1ZSsrKV9lPW52KHRoaXMsWlt2K3VlXSxoLHVlKSxf''@;'; put 'put ''ZT09PVV5JiYoX2U9dGhpcy5fJEFIW3VlXSksSXx8KEk9IVFrKF9lKXx8X2UhPT10aGlzLl8kQUhbdWVdKSxfZT09PU51P2c9TnU6ZyE9PU51JiYoZys9KG51bGwhPV9lP19lOiIiKStDW3VlKzFdKSx0aGlzLl8kQUhbdWVdPV9lfUkmJiF5JiZ0aGlzLlAoZyl9UChnKXtnPT09TnU/dGhpcy5l''@;'; put 'put ''bGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpOnRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5uYW1lLG51bGwhPWc/ZzoiIil9fWNsYXNzIEJLIGV4dGVuZHMgS2t7Y29uc3RydWN0b3IoKXtzdXBlciguLi5hcmd1bWVudHMpLHRoaXMudHlwZT0zfVAoZyl7dGhpcy5lbGVt''@;'; put 'put ''ZW50W3RoaXMubmFtZV09Zz09PU51P3ZvaWQgMDpnfX1jb25zdCBsTD1xNz9xNy5lbXB0eVNjcmlwdDoiIjtjbGFzcyBkaiBleHRlbmRzIEtre2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnR5cGU9NH1QKGcpe2cmJmchPT1OdT90aGlzLmVsZW1lbnQuc2V0QXR0cmli''@;'; put 'put ''dXRlKHRoaXMubmFtZSxsTCk6dGhpcy5lbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSh0aGlzLm5hbWUpfX1jbGFzcyBQSyBleHRlbmRzIEtre2NvbnN0cnVjdG9yKGcsaCx2LHksQyl7c3VwZXIoZyxoLHYseSxDKSx0aGlzLnR5cGU9NX1fJEFJKGcsaD10aGlzKXt2YXIgdjtpZigoZz1udWxsIT09''@;'; put 'put ''KHY9bnYodGhpcyxnLGgsMCkpJiZ2b2lkIDAhPT12P3Y6TnUpPT09VXkpcmV0dXJuO2NvbnN0IHk9dGhpcy5fJEFILEM9Zz09PU51JiZ5IT09TnV8fGcuY2FwdHVyZSE9PXkuY2FwdHVyZXx8Zy5vbmNlIT09eS5vbmNlfHxnLnBhc3NpdmUhPT15LnBhc3NpdmUsST1nIT09TnUmJih5PT09TnV8''@;'; put 'put ''fEMpO0MmJnRoaXMuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLHkpLEkmJnRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMubmFtZSx0aGlzLGcpLHRoaXMuXyRBSD1nfWhhbmRsZUV2ZW50KGcpe3ZhciBoLHY7ImZ1bmN0aW9uIj09dHlwZW9mIHRo''@;'; put 'put ''aXMuXyRBSD90aGlzLl8kQUguY2FsbChudWxsIT09KHY9bnVsbD09PShoPXRoaXMub3B0aW9ucyl8fHZvaWQgMD09PWg/dm9pZCAwOmguaG9zdCkmJnZvaWQgMCE9PXY/djp0aGlzLmVsZW1lbnQsZyk6dGhpcy5fJEFILmhhbmRsZUV2ZW50KGcpfX1jbGFzcyBGS3tjb25zdHJ1Y3RvcihnLGgs''@;'; put 'put ''dil7dGhpcy5lbGVtZW50PWcsdGhpcy50eXBlPTYsdGhpcy5fJEFOPXZvaWQgMCx0aGlzLl8kQU09aCx0aGlzLm9wdGlvbnM9dn1nZXQgXyRBVSgpe3JldHVybiB0aGlzLl8kQU0uXyRBVX1fJEFJKGcpe252KHRoaXMsZyl9fWNvbnN0IHBqPXdpbmRvdy5saXRIdG1sUG9seWZpbGxTdXBwb3J0''@;'; put 'put ''O3ZhciBnaixzTDtudWxsPT1wanx8cGooWGssSnkpLChudWxsIT09KFVrPWdsb2JhbFRoaXMubGl0SHRtbFZlcnNpb25zKSYmdm9pZCAwIT09VWs/VWs6Z2xvYmFsVGhpcy5saXRIdG1sVmVyc2lvbnM9W10pLnB1c2goIjIuMi43Iik7Y2xhc3MgWHkgZXh0ZW5kcyAkN3tjb25zdHJ1Y3Rvcigp''@;'; put 'put ''e3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5yZW5kZXJPcHRpb25zPXtob3N0OnRoaXN9LHRoaXMuXyREbz12b2lkIDB9Y3JlYXRlUmVuZGVyUm9vdCgpe3ZhciBnLGg7Y29uc3Qgdj1zdXBlci5jcmVhdGVSZW5kZXJSb290KCk7cmV0dXJuIG51bGwhPT0oZz0oaD10aGlzLnJlbmRlck9wdGlv''@;'; put 'put ''bnMpLnJlbmRlckJlZm9yZSkmJnZvaWQgMCE9PWd8fChoLnJlbmRlckJlZm9yZT12LmZpcnN0Q2hpbGQpLHZ9dXBkYXRlKGcpe2NvbnN0IGg9dGhpcy5yZW5kZXIoKTt0aGlzLmhhc1VwZGF0ZWR8fCh0aGlzLnJlbmRlck9wdGlvbnMuaXNDb25uZWN0ZWQ9dGhpcy5pc0Nvbm5lY3RlZCksc3Vw''@;'; put 'put ''ZXIudXBkYXRlKGcpLHRoaXMuXyREbz1PSyhoLHRoaXMucmVuZGVyUm9vdCx0aGlzLnJlbmRlck9wdGlvbnMpfWNvbm5lY3RlZENhbGxiYWNrKCl7dmFyIGc7c3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKSxudWxsPT09KGc9dGhpcy5fJERvKXx8dm9pZCAwPT09Z3x8Zy5zZXRDb25uZWN0ZWQo''@;'; put 'put ''ITApfWRpc2Nvbm5lY3RlZENhbGxiYWNrKCl7dmFyIGc7c3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKSxudWxsPT09KGc9dGhpcy5fJERvKXx8dm9pZCAwPT09Z3x8Zy5zZXRDb25uZWN0ZWQoITEpfXJlbmRlcigpe3JldHVybiBVeX19WHkuZmluYWxpemVkPSEwLFh5Ll8kbGl0RWxlbWVu''@;'; put 'put ''dCQ9ITAsbnVsbD09PShnaj1nbG9iYWxUaGlzLmxpdEVsZW1lbnRIeWRyYXRlU3VwcG9ydCl8fHZvaWQgMD09PWdqfHxnai5jYWxsKGdsb2JhbFRoaXMse0xpdEVsZW1lbnQ6WHl9KTtjb25zdCBtaj1nbG9iYWxUaGlzLmxpdEVsZW1lbnRQb2x5ZmlsbFN1cHBvcnQ7bnVsbD09bWp8fG1qKHtM''@;'; put 'put ''aXRFbGVtZW50Olh5fSksKG51bGwhPT0oc0w9Z2xvYmFsVGhpcy5saXRFbGVtZW50VmVyc2lvbnMpJiZ2b2lkIDAhPT1zTD9zTDpnbG9iYWxUaGlzLmxpdEVsZW1lbnRWZXJzaW9ucz1bXSkucHVzaCgiMy4yLjIiKTtjb25zdCBISz1pTGBAY2hhcnNldCAiVVRGLTgiOzpob3N0LDpyb290ey0t''@;'; put 'put ''zrQyOnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXh4cywgY2FsYyg0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDM6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UteHMsIGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIw''@;'; put 'put ''KSkpOy0tzrQ0OnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXNtLCBjYWxjKDEyICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS3OtDU6dmFyKC0tY2RzLWdsb2JhbC1sYXlvdXQtc3BhY2UtbWQsIGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1i''@;'; put 'put ''YXNlLCAyMCkpKTstLc60Njp2YXIoLS1jZHMtZ2xvYmFsLWxheW91dC1zcGFjZS1sZywgY2FsYygyNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0tzrQ3OnZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LXNwYWNlLXhsLCBjYWxjKDMyICogMXJlbSAvIHZhcigtLWNkcy1n''@;'; put 'put ''bG9iYWwtYmFzZSwgMjApKSl9W2Nkcy1sYXlvdXR+PSJ3cmFwOm5vbmUiXXtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImFsaWduOnN0cmV0Y2giXXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXQqPSJhbGlnbjpzaHJpbmsiXXtmbGV4LXNocmluazox''@;'; put 'put ''IWltcG9ydGFudDtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC13cmFwOndyYXA7anVzdGlmeS1pdGVtczpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7d2lkdGg6MTAwJTtt''@;'; put 'put ''YXJnaW46MDttaW4taGVpZ2h0OjB9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0+W2Nkcy10ZXh0XXt3aWR0aDppbml0''@;'; put 'put ''aWFsIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il17anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9''@;'; put 'put ''W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJde2p1c3RpZnktY29udGVudDpmbGV4LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOnZlcnRpY2FsLWNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1j''@;'; put 'put ''b250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl17anVzdGlmeS1jb250ZW50OmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF1bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJde2FsaWduLWl0ZW1z''@;'; put 'put ''OmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0ib3JkZXI6cmV2ZXJzZSJde2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5''@;'; put 'put ''b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1zdHJldGNoIl17anVzdGlmeS1jb250ZW50OnN0cmV0Y2g7ZmxleC1ncm93OjF9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jp''@;'; put 'put ''em9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJde2FsaWduLWl0ZW1zOnN0cmV0Y2g7YWxpZ24tY29udGVudDpzdHJldGNoO2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJdPip7ZmxleC1ncm93OjF9W2Nkcy1s''@;'; put 'put ''YXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0''@;'; put 'put ''Kj0iYWxpZ246Y2VudGVyIl0sW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1jZW50ZXIiXXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltj''@;'; put 'put ''ZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXT5bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdPltjZHMtbGF5b3V0Kj0i''@;'; put 'put ''YWxpZ246bGVmdCJde21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxde3dpZHRoOjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0sW2Nkcy1sYXlv''@;'; put 'put ''dXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl17anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMtbGF5b3V0Kj0iYWxpZ246bGVmdCJde2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXVtjZHMt''@;'; put 'put ''bGF5b3V0Kj0iYWxpZ246cmlnaHQiXXthbGlnbi1pdGVtczpmbGV4LWVuZH1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFs''@;'; put 'put ''aWduOmhvcml6b250YWwtY2VudGVyIl17YWxpZ24taXRlbXM6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJde2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxh''@;'; put 'put ''eW91dCo9Im9yZGVyOnJldmVyc2UiXXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZX1bY2RzLWxheW91dH49dmVydGljYWxdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jpem9udGFsLXN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNofVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxh''@;'; put 'put ''eW91dCo9ImFsaWduOnN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpzdHJldGNofVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF1bY2RzLWxheW91dCo9ImFsaWduOnN0cmV0Y2giXT4qe2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0+W2Nkcy1sYXlv''@;'; put 'put ''dXQqPSJhbGlnbjpjZW50ZXIiXSxbY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2VudGVyIl17bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVy''@;'; put 'put ''Il0sW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl17YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOnRvcCJde21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nk''@;'; put 'put ''cy1sYXlvdXR+PXZlcnRpY2FsXT5bY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il17bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246bGVmdCJde21hcmdpbi1yaWdodDphdXRvfVtjZHMtbGF5b3V0fj1ncmlkXXtkaXNwbGF5OmdyaWQ7''@;'; put 'put ''YWxpZ24taXRlbXM6c3RhcnQ7YWxpZ24tY29udGVudDpzdGFydDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KHZhcigtLWNkcy1nbG9iYWwtbGF5b3V0LWdyaWQtY29scywxMiksMWZyKTt3aWR0aDoxMDAlfVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj1yb3dzXXtncmlkLXRl''@;'; put 'put ''bXBsYXRlLXJvd3M6cmVwZWF0KDEyLGF1dG8pfVtjZHMtbGF5b3V0fj1ncmlkXT5bY2RzLWxheW91dCo9cm93XXthbGlnbi1zZWxmOnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjp0b3AiXXthbGlnbi1jb250ZW50OnN0YXJ0fVtjZHMtbGF5b3V0fj1ncmlk''@;'; put 'put ''XVtjZHMtbGF5b3V0Kj0iYWxpZ246cmlnaHQiXXtqdXN0aWZ5LWNvbnRlbnQ6ZW5kfVtjZHMtbGF5b3V0fj1ncmlkXVtjZHMtbGF5b3V0Kj0iYWxpZ246bGVmdCJde2p1c3RpZnktY29udGVudDpzdGFydH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwt''@;'; put 'put ''c3RyZXRjaCJde2p1c3RpZnktaXRlbXM6c3RyZXRjaDtqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH1bY2RzLWxheW91dH49Z3JpZF1bY2RzLWxheW91dCo9ImFsaWduOnN0cmV0Y2giXXthbGlnbi1pdGVtczpzdHJldGNoO2FsaWduLWNvbnRlbnQ6c3RyZXRjaDtqdXN0aWZ5LWl0ZW1zOnN0cmV0''@;'; put 'put ''Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjp2ZXJ0aWNhbC1jZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpob3Jp''@;'; put 'put ''em9udGFsLWNlbnRlciJde2p1c3RpZnktaXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWdyaWRdW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXXthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7anVzdGlmeS1pdGVtczpjZW50''@;'; put 'put ''ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn06OnNsb3R0ZWQoW2Nkcy1sYXlvdXR+PSJkaXNwbGF5OnNjcmVlbi1yZWFkZXItb25seSJdKSxbY2RzLWxheW91dH49ImRpc3BsYXk6c2NyZWVuLXJlYWRlci1vbmx5Il17cG9zaXRpb246YWJzb2x1dGUhaW1wb3J0YW50O2NsaXA6cmVjdCgxcHgs''@;'; put 'put ''MXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MDtkaXNwbGF5OmJsb2NrIWltcG9ydGFudH1bY2RzLWxheW91dCo9ImdhcDpu''@;'; put 'put ''b25lIl17Z2FwOjB9W2Nkcy1sYXlvdXQqPSJnYXA6eHhzIl17Z2FwOnZhcigtLc60Mil9W2Nkcy1sYXlvdXQqPSJnYXA6eHMiXXtnYXA6dmFyKC0tzrQzKX1bY2RzLWxheW91dCo9ImdhcDpzbSJde2dhcDp2YXIoLS3OtDQpfVtjZHMtbGF5b3V0Kj0iZ2FwOm1kIl17Z2FwOnZhcigtLc60NSl9''@;'; put 'put ''W2Nkcy1sYXlvdXQqPSJnYXA6bGciXXtnYXA6dmFyKC0tzrQ2KX1bY2RzLWxheW91dH49InA6bm9uZSJde3BhZGRpbmc6MCFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOnh4cyJde3BhZGRpbmc6dmFyKC0tzrQyKSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwOnhzIl17cGFkZGluZzp2YXIo''@;'; put 'put ''LS3OtDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InA6c20iXXtwYWRkaW5nOnZhcigtLc60NCkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icDptZCJde3BhZGRpbmc6dmFyKC0tzrQ1KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJtOm1kIl17bWFyZ2luOnZhcigtLc60NSkhaW1wb3J0YW50''@;'; put 'put ''fVtjZHMtbGF5b3V0fj0icDpsZyJde3BhZGRpbmc6dmFyKC0tzrQ2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLXk6eHMiXXtwYWRkaW5nLXRvcDp2YXIoLS3OtDMpIWltcG9ydGFudDtwYWRkaW5nLWJvdHRvbTp2YXIoLS3OtDMpIWltcG9ydGFudH1bY2RzLWxheW91dH49InAteDpsZyJd''@;'; put 'put ''e3BhZGRpbmctbGVmdDp2YXIoLS3OtDYpIWltcG9ydGFudDtwYWRkaW5nLXJpZ2h0OnZhcigtLc60NikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC1sOm1kIl17cGFkZGluZy1sZWZ0OnZhcigtLc60NSkhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0icC10OmxnIl17cGFkZGluZy10b3A6dmFy''@;'; put 'put ''KC0tzrQ2KSFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PSJwLWI6bGciXXtwYWRkaW5nLWJvdHRvbTp2YXIoLS3OtDYpIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7W2Nkcy1sYXlvdXQqPSJnYXBAbWQ6bGciXXtnYXA6dmFyKC0tzrQ2KX1bY2RzLWxheW91dH49InBAbWQ6bGci''@;'; put 'put ''XXtwYWRkaW5nOnZhcigtLc60NikhaW1wb3J0YW50fVtjZHMtbGF5b3V0fj0ibUBtZDp4bCJde21hcmdpbjp2YXIoLS3OtDcpIWltcG9ydGFudH19W2Nkcy1sYXlvdXR+PWZpbGxde3dpZHRoOjEwMCUhaW1wb3J0YW50fSosOmFmdGVyLDpiZWZvcmV7Ym94LXNpemluZzpib3JkZXItYm94fVtj''@;'; put 'put ''ZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246aG9yaXpvbnRhbC1zdHJldGNoIl0+OjpzbG90dGVkKCopLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXVtjZHMtbGF5b3V0Kj0iYWxpZ246c3RyZXRjaCJdPjo6c2xvdHRlZCgqKSxbY2RzLWxheW91dH49dmVydGljYWxd''@;'; put 'put ''W2Nkcy1sYXlvdXQqPSJhbGlnbjpzdHJldGNoIl0+OjpzbG90dGVkKCope2ZsZXgtZ3JvdzoxfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0i''@;'; put 'put ''YWxpZ246dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bzttYXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlv''@;'; put 'put ''dXQqPSJhbGlnbjpob3Jpem9udGFsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpz''@;'; put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0g''@;'; put 'put ''OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246bGVmdCJdKSxbY2RzLWxheW91dH49dmVydGljYWxdPltjZHMtbGF5b3V0Kj0iYWxpZ246bGVmdCJde21hcmdpbi1yaWdodDphdXRvfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChb''@;'; put 'put ''Y2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0g''@;'; put 'put ''OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6aG9yaXpvbnRhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNs''@;'; put 'put ''b3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5''@;'; put 'put ''b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAo''@;'; put 'put ''bWluLXdpZHRoOjc2OHB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4t''@;'; put 'put ''dG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206aG9yaXpvbnRhbC1jZW50''@;'; put 'put ''ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFs''@;'; put 'put ''aWduQHNtOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxh''@;'; put 'put ''eW91dCo9ImFsaWduQHNtOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRl''@;'; put 'put ''ZChbY2RzLWxheW91dCo9ImFsaWduQG1kOnZlcnRpY2FsLWNlbnRlciJdKXttYXJnaW4tdG9wOmF1dG87bWFyZ2luLWJvdHRvbTphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNh''@;'; put 'put ''bF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6aG9yaXpvbnRhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp0b3AiXSl7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFu''@;'; put 'put ''dH1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmJvdHRvbSJdKXttYXJnaW4tdG9wOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6cmlnaHQiXSl7bWFyZ2lu''@;'; put 'put ''LWxlZnQ6YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmxlZnQiXSl7bWFyZ2luLXJpZ2h0OmF1dG99fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQq''@;'; put 'put ''PSJhbGlnbkBsZzpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzp2ZXJ0aWNhbC1jZW50ZXIiXSl7bWFyZ2luLXRvcDphdXRvO21hcmdpbi1ib3R0b206YXV0b31bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChb''@;'; put 'put ''Y2RzLWxheW91dCo9ImFsaWduQGxnOmNlbnRlciJdKSxbY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmhvcml6b250YWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMt''@;'; put 'put ''bGF5b3V0Kj0iYWxpZ25AbGc6dG9wIl0pe21hcmdpbi1ib3R0b206YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpib3R0b20iXSl7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49dmVydGlj''@;'; put 'put ''YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvfX1AbWVkaWEgKG1pbi13aWR0aDox''@;'; put 'put ''NDQwcHgpe1tjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtY2VudGVyIl0pe21hcmdpbi10b3A6YXV0bztt''@;'; put 'put ''YXJnaW4tYm90dG9tOmF1dG99W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpob3Jpem9udGFsLWNlbnRlciJdKXthbGln''@;'; put 'put ''bi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49dmVydGljYWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOnRvcCJdKXttYXJnaW4tYm90dG9tOmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6Ym90''@;'; put 'put ''dG9tIl0pe21hcmdpbi10b3A6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PXZlcnRpY2FsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvfVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxp''@;'; put 'put ''Z25AeGw6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0b319W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dmVydGljYWwtY2Vu''@;'; put 'put ''dGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOmhvcml6b250YWwtY2VudGVyIl0p''@;'; put 'put ''e21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0g''@;'; put 'put ''OjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ246Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1o''@;'; put 'put ''b3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbjpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmNlbnRl''@;'; put 'put ''ciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpjZW50ZXIi''@;'; put 'put ''XSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpz''@;'; put 'put ''bG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeHM6Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6''@;'; put 'put ''b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhzOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4czpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9y''@;'; put 'put ''dGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnZlcnRpY2Fs''@;'; put 'put ''LWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpob3Jpem9udGFs''@;'; put 'put ''LWNlbnRlciJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOnRvcCJdKXthbGlnbi1zZWxmOmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+''@;'; put 'put ''PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHNtOmJvdHRvbSJdKXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBzbTpyaWdodCJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9y''@;'; put 'put ''dGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25Ac206bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXtbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMt''@;'; put 'put ''bGF5b3V0Kj0iYWxpZ25AbWQ6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp2ZXJ0aWNhbC1jZW50ZXIiXSl7YWxpZ24tc2VsZjpjZW50ZXJ9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxh''@;'; put 'put ''eW91dCo9ImFsaWduQG1kOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6aG9yaXpvbnRhbC1jZW50ZXIiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnQ7bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fVtjZHMt''@;'; put 'put ''bGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDp0b3AiXSl7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBtZDpib3R0b20iXSl7YWxpZ24tc2VsZjpmbGV4''@;'; put 'put ''LWVuZH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbWQ6cmlnaHQiXSl7bWFyZ2luLWxlZnQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQG1kOmxlZnQiXSl7''@;'; put 'put ''bWFyZ2luLXJpZ2h0OmF1dG8haW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpe1tjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxh''@;'; put 'put ''eW91dCo9ImFsaWduQGxnOnZlcnRpY2FsLWNlbnRlciJdKXthbGlnbi1zZWxmOmNlbnRlcn1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6Y2VudGVyIl0pLFtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlv''@;'; put 'put ''dXQqPSJhbGlnbkBsZzpob3Jpem9udGFsLWNlbnRlciJdKXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudDttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOnRvcCJdKXthbGlnbi1zZWxm''@;'; put 'put ''OmZsZXgtc3RhcnR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQGxnOmJvdHRvbSJdKXthbGlnbi1zZWxmOmZsZXgtZW5kfVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkBsZzpyaWdodCJd''@;'; put 'put ''KXttYXJnaW4tbGVmdDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AbGc6bGVmdCJdKXttYXJnaW4tcmlnaHQ6YXV0byFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjE0NDBweCl7W2Nkcy1sYXlvdXR+PWhv''@;'; put 'put ''cml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmNlbnRlciJdKSxbY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dmVydGljYWwtY2VudGVyIl0pe2FsaWduLXNlbGY6Y2VudGVyfVtjZHMtbGF5b3V0fj1ob3Jp''@;'; put 'put ''em9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1sYXlvdXQqPSJhbGlnbkB4bDpjZW50ZXIiXSksW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOmhvcml6b250YWwtY2VudGVyIl0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O21hcmdpbi1y''@;'; put 'put ''aWdodDphdXRvIWltcG9ydGFudH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6dG9wIl0pe2FsaWduLXNlbGY6ZmxleC1zdGFydH1bY2RzLWxheW91dH49aG9yaXpvbnRhbF0gOjpzbG90dGVkKFtjZHMtbGF5b3V0Kj0iYWxpZ25AeGw6''@;'; put 'put ''Ym90dG9tIl0pe2FsaWduLXNlbGY6ZmxleC1lbmR9W2Nkcy1sYXlvdXR+PWhvcml6b250YWxdIDo6c2xvdHRlZChbY2RzLWxheW91dCo9ImFsaWduQHhsOnJpZ2h0Il0pe21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50fVtjZHMtbGF5b3V0fj1ob3Jpem9udGFsXSA6OnNsb3R0ZWQoW2Nkcy1s''@;'; put 'put ''YXlvdXQqPSJhbGlnbkB4bDpsZWZ0Il0pe21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudH19W2Nkcy10ZXh0XXtmb250LWZhbWlseTp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC1mYW1pbHksICJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNlcmlmKTttYXJn''@;'; put 'put ''aW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfVtjZHMtdGV4dF1bY2RzLWxheW91dH49Z3JpZF06OmFmdGVyLFtjZHMtdGV4dF1bY2RzLWxheW91dH49Z3JpZF06OmJlZm9yZSxbY2RzLXRleHRdW2Nkcy1sYXlvdXR+PWhvcml6b250YWxdOjphZnRlcixbY2RzLXRleHRdW2Nkcy1sYXlvdXR+PWhv''@;'; put 'put ''cml6b250YWxdOjpiZWZvcmUsW2Nkcy10ZXh0XVtjZHMtbGF5b3V0fj12ZXJ0aWNhbF06OmFmdGVyLFtjZHMtdGV4dF1bY2RzLWxheW91dH49dmVydGljYWxdOjpiZWZvcmV7ZGlzcGxheTpub25lfVtjZHMtdGV4dCo9ZGlzcGxheV0sW2Nkcy10ZXh0Kj1zZWN0aW9uXSxbY2RzLXRleHQqPXN1''@;'; put 'put ''YnNlY3Rpb25dLFtjZHMtdGV4dCo9dGl0bGVde2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1oZWFkZXItZm9udC1mYW1pbHksICJDbGFyaXR5IENpdHkiLCAiQXZlbmlyIE5leHQiLCBzYW5zLXNlcmlmKTtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkt''@;'; put 'put ''Y29sb3ItNDAwLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTkwMCwjMjEzMzNiKSl9W2Nkcy10ZXh0Kj1ib2R5XSxbY2RzLXRleHQqPW1lc3NhZ2VdLFtjZHMtdGV4dCo9c2Vjb25kYXJ5XXtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktY29sb3ItNTAwLHZh''@;'; put 'put ''cigtLWNkcy1nbG9iYWwtY29sb3ItYmxhY2ssIzAwMCkpfVtjZHMtdGV4dCo9aW5saW5lXXt3aWR0aDphdXRvIWltcG9ydGFudDtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9W2Nkcy10ZXh0Kj1kaXNwbGF5XXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRp''@;'; put 'put ''c3BsYXktZm9udC1zaXplLGNhbGMoNDAgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5''@;'; put 'put ''LWRpc3BsYXktbGluZS1oZWlnaHQsMS4xZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1kaXNwbGF5LWxldHRlci1zcGFjaW5nLC0uMDEyNWVtKX1bY2RzLXRleHQqPWRpc3BsYXldOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDow''@;'; put 'put ''O3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWRpc3BsYXktbGluZS1oZWlnaHQsMS4xZW0pIC0gMWVtKS8gMikpKi0xKSArIC4w''@;'; put 'put ''MzdlbSl9W2Nkcy10ZXh0Kj1kaXNwbGF5XTo6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1n''@;'; put 'put ''bG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZGlzcGxheS1saW5lLWhlaWdodCwxLjFlbSkgLSAxZW0pLyAyKSkq''@;'; put 'put ''LTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXRpdGxlXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRpdGxlLWZvbnQtc2l6ZSxjYWxjKDI0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9n''@;'; put 'put ''cmFwaHktdGl0bGUtZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGluZS1oZWlnaHQsMS4xNjY2N2VtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGV0dGVyLXNwYWNpbmcsLS4w''@;'; put 'put ''MDgzMzNlbSl9W2Nkcy10ZXh0Kj10aXRsZV06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1j''@;'; put 'put ''ZHMtZ2xvYmFsLXR5cG9ncmFwaHktdGl0bGUtbGluZS1oZWlnaHQsMS4xNjY2N2VtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9dGl0bGVdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVt''@;'; put 'put ''IC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMo''@;'; put 'put ''KHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10aXRsZS1saW5lLWhlaWdodCwxLjE2NjY3ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1zZWN0aW9uXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tZm9udC1zaXplLGNhbGMo''@;'; put 'put ''MjAgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQs''@;'; put 'put ''MS4yZW0pO2xldHRlci1zcGFjaW5nOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWxldHRlci1zcGFjaW5nLC0uMDFlbSl9W2Nkcy10ZXh0Kj1zZWN0aW9uXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206''@;'; put 'put ''Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWN0aW9uLWxpbmUtaGVpZ2h0LDEuMmVtKSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9c2VjdGlv''@;'; put 'put ''bl06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5k''@;'; put 'put ''ZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY3Rpb24tbGluZS1oZWlnaHQsMS4yZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0''@;'; put 'put ''Kj1zdWJzZWN0aW9uXXtmb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tZm9udC1zaXplLGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0''@;'; put 'put ''aW9uLWZvbnQtd2VpZ2h0LDQwMCk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXN1YnNlY3Rpb24tbGluZS1oZWlnaHQsMS4yNWVtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc3Vic2VjdGlvbi1sZXR0ZXItc3BhY2luZywtLjAx''@;'; put 'put ''MjVlbSl9W2Nkcy10ZXh0Kj1zdWJzZWN0aW9uXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSArIGNhbGMoKHZhcigt''@;'; put 'put ''LWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0LDEuMjVlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXN1YnNlY3Rpb25dOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNh''@;'; put 'put ''bGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0p''@;'; put 'put ''KSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zdWJzZWN0aW9uLWxpbmUtaGVpZ2h0LDEuMjVlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPWJvZHlde2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWZvbnQtd2Vp''@;'; put 'put ''Z2h0LDQwMCk7Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1ib2R5LWZvbnQtc2l6ZSxjYWxjKDE0ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1sZXR0ZXItc3Bh''@;'; put 'put ''Y2luZywtLjAxNDI4NmVtKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCwxLjQyODU3ZW0pfVtjZHMtdGV4dCo9Ym9keV06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9t''@;'; put 'put ''OmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYm9keS1saW5lLWhlaWdodCwxLjQyODU3ZW0pIC0gMWVtKS8gMikpKi0xKSArIC4xZW0pfVtjZHMtdGV4dCo9Ym9keV06''@;'; put 'put ''OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXIt''@;'; put 'put ''aGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWJvZHktbGluZS1oZWlnaHQsMS40Mjg1N2VtKSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfVtjZHMtdGV4dCo9''@;'; put 'put ''bWVzc2FnZV17Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWZvbnQtc2l6ZSxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVzc2FnZS1mb250LXdl''@;'; put 'put ''aWdodCxjYWxjKDQwMCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bGluZS1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LW1lc3NhZ2UtbGluZS1oZWlnaHQsMS4yNWVtKTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbWVz''@;'; put 'put ''c2FnZS1sZXR0ZXItc3BhY2luZywtLjAxMjVlbSl9W2Nkcy10ZXh0Kj1tZXNzYWdlXTo6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi1ib3R0b206Y2FsYygoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwu''@;'; put 'put ''MTQ3NWVtKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxpbmUtaGVpZ2h0LDEuMjVlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPW1lc3NhZ2VdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6''@;'; put 'put ''MDttYXJnaW4tdG9wOmNhbGMoKCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14''@;'; put 'put ''LWhlaWdodCwuNTE3ZW0pKSArIGNhbGMoKHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1tZXNzYWdlLWxpbmUtaGVpZ2h0LDEuMjVlbSkgLSAxZW0pLyAyKSkqLTEpIC0gLjA0NGVtKX1bY2RzLXRleHQqPXNlY29uZGFyeV17Zm9udC1zaXplOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBo''@;'; put 'put ''eS1zZWNvbmRhcnktZm9udC1zaXplLGNhbGMoMTMgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO2ZvbnQtd2VpZ2h0OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1zZWNvbmRhcnktZm9udC13ZWlnaHQsNDAwKTtsaW5lLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5''@;'; put 'put ''cG9ncmFwaHktc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0LDEuMjMwNzdlbSk7bGV0dGVyLXNwYWNpbmc6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1sZXR0ZXItc3BhY2luZywtLjAwNzY5MmVtKX1bY2RzLXRleHQqPXNlY29uZGFyeV06OmJlZm9yZXtjb250ZW50OiIiO2Rp''@;'; put 'put ''c3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCh2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktc2Vjb25kYXJ5LWxpbmUtaGVpZ2h0LDEuMjMw''@;'; put 'put ''NzdlbSkgLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPXNlY29uZGFyeV06OmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpibG9jaztoZWlnaHQ6MDt3aWR0aDowO21hcmdpbi10b3A6Y2FsYygoKCgxZW0gLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1o''@;'; put 'put ''ZWlnaHQsLjE0NzVlbSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktYXNjZW5kZXItaGVpZ2h0LC4xNzAzZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXgtaGVpZ2h0LC41MTdlbSkpICsgY2FsYygodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXNlY29uZGFyeS1s''@;'; put 'put ''aW5lLWhlaWdodCwxLjIzMDc3ZW0pIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0fj1saW5rXXtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvcix2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwLCMwMDYwOGEpKSFpbXBvcnRhbnQ7dGV4''@;'; put 'put ''dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnQ7bGluZS1oZWlnaHQ6aW5oZXJpdCFpbXBvcnRhbnQ7Zm9udC1zaXplOmluaGVyaXQhaW1wb3J0YW50fVtjZHMtdGV4dH49bGlua106Zm9jdXN7b3V0bGluZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUs''@;'; put 'put ''SGlnaGxpZ2h0IHNvbGlkIDJweCk7b3V0bGluZS1vZmZzZXQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lLW9mZnNldCwxcHgpfVtjZHMtdGV4dH49bGlua106aG92ZXJ7Y29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWxpbmstY29sb3ItaG92ZXIs''@;'; put 'put ''dmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTkwMCwjMDA0YjZiKSkhaW1wb3J0YW50fVtjZHMtdGV4dH49bGlua106dmlzaXRlZDpub3QoW2Nkcy10ZXh0fj1zdGF0aWNdKXtjb2xvcjp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktbGluay1jb2xvci12aXNpdGVkLHZhcigtLWNkcy1n''@;'; put 'put ''bG9iYWwtY29sb3ItbGF2ZW5kZXItNjAwLCMzYjQwY2UpKSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1saW5rXTp2aXNpdGVkOm5vdChbY2RzLXRleHR+PXN0YXRpY10pOmhvdmVye2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1saW5rLWNvbG9yLXZpc2l0ZWQtaG92ZXIsdmFyKC0t''@;'; put 'put ''Y2RzLWdsb2JhbC1jb2xvci1sYXZlbmRlci03MDAsIzI0MjljMikpIWltcG9ydGFudH1AbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKXtbY2RzLXRleHQ9bGlua106Zm9jdXN7b3V0bGluZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUt''@;'; put 'put ''d2Via2l0LDVweCBhdXRvIC13ZWJraXQtZm9jdXMtcmluZy1jb2xvcil9fVtjZHMtdGV4dH49Y29kZV17Y29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1yZWQtNzAwLCNlMDIyMDApKTtmb250LWZhbWlseTptb25vc3BhY2U7Zm9udC1z''@;'; put 'put ''aXplOjEuMWVtfVtjZHMtZGl2aWRlcl17ZGlzcGxheTpibG9jaztoZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1ib3JkZXItd2lkdGgtMTAwLGNhbGMoMSAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6dmFyKC0tY2Rz''@;'; put 'put ''LWFsaWFzLW9iamVjdC1ib3JkZXItY29sb3IsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tMjAwLCNjYmQ0ZDgpKSAwIDAgMCB2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWJvcmRlci13aWR0aC0xMDAsY2FsYygxICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkp''@;'; put 'put ''KSBpbnNldH1bY2RzLXRleHR+PWxpZ2h0XXtmb250LXdlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHktZm9udC13ZWlnaHQtbGlnaHQsMzAwKSFpbXBvcnRhbnR9W2Nkcy10ZXh0fj1qdXN0aWZ5XXt0ZXh0LWFsaWduOmp1c3RpZnkhaW1wb3J0YW50fVtjZHMtdGV4dH49bGVmdF17''@;'; put 'put ''dGV4dC1hbGlnbjpsZWZ0IWltcG9ydGFudH1bY2RzLXRleHR+PXJpZ2h0XXt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH1bY2RzLXRleHR+PWNlbnRlcl17dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fVtjZHMtdGV4dH49bGhlXXtwYWRkaW5nOi4wNXB4IDB9W2Nkcy10ZXh0fj1saGVd''@;'; put 'put ''OjpiZWZvcmV7Y29udGVudDoiIjttYXJnaW4tdG9wOi0uMTI0ZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MH1bY2RzLXRleHR+PWxoZV06OmFmdGVye2NvbnRlbnQ6IiI7bWFyZ2luLWJvdHRvbTotLjIyMWVtO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjB9W2Nkcy10ZXh0Kj1oMl0sW2Nkcy10ZXh0''@;'; put 'put ''Kj1oM117Zm9udC1mYW1pbHk6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWhlYWRlci1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjRyZW07Zm9udC13ZWlnaHQ6MjAwO2NvbG9yOnZhcigtLWNkcy1nbG9iYWwt''@;'; put 'put ''dHlwb2dyYXBoeS1jb2xvci00MDApO2xpbmUtaGVpZ2h0OjEuNzE0M2VtO2xldHRlci1zcGFjaW5nOi0uMDE3ODU3ZW19W2Nkcy10ZXh0Kj1oMl06OmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tYm90dG9tOmNhbGMoKCh2YXIoLS1jZHMt''@;'; put 'put ''Z2xvYmFsLXR5cG9ncmFwaHktdG9wLWdhcC1oZWlnaHQsLjE0NzVlbSkgKyBjYWxjKCgxLjcxNDNlbSAtIDFlbSkvIDIpKSotMSkgKyAuMDM3ZW0pfVtjZHMtdGV4dCo9aDJdOjphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7d2lkdGg6MDttYXJnaW4tdG9wOmNhbGMo''@;'; put 'put ''KCgoMWVtIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pIC0gdmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWFzY2VuZGVyLWhlaWdodCwuMTcwM2VtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS14LWhlaWdodCwuNTE3ZW0pKSAr''@;'; put 'put ''IGNhbGMoKDEuNzE0M2VtIC0gMWVtKS8gMikpKi0xKSAtIC4wNDRlbSl9W2Nkcy10ZXh0Kj1oM117Zm9udC1zaXplOjEuMXJlbTtsaW5lLWhlaWdodDoxLjA5MDllbTtsZXR0ZXItc3BhY2luZzotLjAxMzYzNmVtfVtjZHMtdGV4dCo9aDNdOjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmJs''@;'; put 'put ''b2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLWJvdHRvbTpjYWxjKCgodmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LXRvcC1nYXAtaGVpZ2h0LC4xNDc1ZW0pICsgY2FsYygoMS4wOTA5ZW0gLSAxZW0pLyAyKSkqLTEpICsgLjAzN2VtKX1bY2RzLXRleHQqPWgzXTo6YWZ0ZXJ7Y29udGVu''@;'; put 'put ''dDoiIjtkaXNwbGF5OmJsb2NrO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDpjYWxjKCgoKDFlbSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS10b3AtZ2FwLWhlaWdodCwuMTQ3NWVtKSAtIHZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1hc2NlbmRlci1oZWlnaHQsLjE3MDNl''@;'; put 'put ''bSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXR5cG9ncmFwaHkteC1oZWlnaHQsLjUxN2VtKSkgKyBjYWxjKCgxLjA5MDllbSAtIDFlbSkvIDIpKSotMSkgLSAuMDQ0ZW0pfTpob3N0e2FsbDppbml0aWFsO2Rpc3BsYXk6YmxvY2s7dmlzaWJpbGl0eTppbmhlcml0O2ZvbnQtZmFtaWx5OnZhcigtLWNk''@;'; put 'put ''cy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2NvbnRhaW46bGF5b3V0O2JveC1zaXppbmc6Ym9yZGVyLWJveCFpbXBvcnRhbnQ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmUhaW1wb3J0YW50fSosOmFmdGVy''@;'; put 'put ''LDpiZWZvcmV7Ym94LXNpemluZzppbmhlcml0IWltcG9ydGFudH1zbG90e2ZvbnQtZmFtaWx5OnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1mb250LWZhbWlseSwgIkNsYXJpdHkgQ2l0eSIsICJBdmVuaXIgTmV4dCIsIHNhbnMtc2VyaWYpO2Rpc3BsYXk6Y29udGVudHMhaW1wb3J0YW50''@;'; put 'put ''fTo6c2xvdHRlZCgqKXtmb250LWZhbWlseTppbmhlcml0O2JveC1zaXppbmc6aW5oZXJpdH06OnNsb3R0ZWQoKik6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLWNkcy1nbG9iYWwtdHlwb2dyYXBoeS1jb2xvci0yMDAsdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tNjAwLCM0''@;'; put 'put ''ZjYxNjkpKX06aG9zdChbX2lzLWFuY2hvcl0pLDpob3N0KFtyb2xlPWJ1dHRvbl0pe2N1cnNvcjpwb2ludGVyIWltcG9ydGFudH06aG9zdChbX2lzLWFuY2hvcl0pIDo6c2xvdHRlZCgqKSw6aG9zdChbcm9sZT1idXR0b25dKSA6OnNsb3R0ZWQoKil7Y3Vyc29yOnBvaW50ZXIhaW1wb3J0YW50''@;'; put 'put ''fTpob3N0KFtyb2xlPWJ1dHRvbl1bZGlzYWJsZWRdKXtjdXJzb3I6bm90LWFsbG93ZWQhaW1wb3J0YW50fTpob3N0KFtyb2xlPWJ1dHRvbl1bZGlzYWJsZWRdKSA6OnNsb3R0ZWQoKil7Y3Vyc29yOm5vdC1hbGxvd2VkIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfTpob3N0KFtoaWRk''@;'; put 'put ''ZW5dKSxbaGlkZGVuXXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fTpob3N0KFtoaWRkZW4qPWZhbHNlXSl7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9Omhvc3QoW3JvbGU9ZGlhbG9nXVtoaWRkZW5dKSw6aG9zdChbcm9sZT1kaWFsb2ddW2hpZGRlbl0pIDo6c2xvdHRlZCgqKXtkaXNwbGF5OmJs''@;'; put 'put ''b2NrIWltcG9ydGFudDt2aXNpYmlsaXR5OmhpZGRlbiFpbXBvcnRhbnR9Omhvc3QoW3JvbGU9ZGlhbG9nXVtoaWRkZW4qPWZhbHNlXSksOmhvc3QoW3JvbGU9ZGlhbG9nXVtoaWRkZW4qPWZhbHNlXSkgOjpzbG90dGVkKCope3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9Omhvc3QoW19m''@;'; put 'put ''b2N1c2VkXSkgLmlucHV0LDpob3N0KFtfZm9jdXNlZF0pIFtmb2N1c2FibGVdLDpob3N0KFt0YWJpbmRleD0iMCJdOmZvY3VzKSw6aG9zdChbdGFiaW5kZXg9IjAiXTpmb2N1cykgW2ZvY3VzYWJsZV0sW3RhYmluZGV4PSIwIl1bZm9jdXNhYmxlXTpmb2N1c3tvdXRsaW5lOkhpZ2hsaWdodCBz''@;'; put 'put ''b2xpZCAycHg7b3V0bGluZTo1cHggYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZzZXQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi1vdXRsaW5lLW9mZnNldCwxcHgpfWA7ZnVuY3Rpb24gdmooZCl7cmV0dXJuYGNhbGMoKCR7ZH0gLyB2YXIoLS1j''@;'; put 'put ''ZHMtZ2xvYmFsLWJhc2UpKSAqIDFyZW0pYH1jb25zdCB3MWU9KGQsZyk9PiJtZXRob2QiPT09Zy5raW5kJiZnLmRlc2NyaXB0b3ImJiEoInZhbHVlImluIGcuZGVzY3JpcHRvcik/R3oobXMoe30sZykse2ZpbmlzaGVyKGgpe2guY3JlYXRlUHJvcGVydHkoZy5rZXksZCl9fSk6e2tpbmQ6ImZp''@;'; put 'put ''ZWxkIixrZXk6U3ltYm9sKCkscGxhY2VtZW50OiJvd24iLGRlc2NyaXB0b3I6e30sb3JpZ2luYWxLZXk6Zy5rZXksaW5pdGlhbGl6ZXIoKXsiZnVuY3Rpb24iPT10eXBlb2YgZy5pbml0aWFsaXplciYmKHRoaXNbZy5rZXldPWcuaW5pdGlhbGl6ZXIuY2FsbCh0aGlzKSl9LGZpbmlzaGVyKGgp''@;'; put 'put ''e2guY3JlYXRlUHJvcGVydHkoZy5rZXksZCl9fTtmdW5jdGlvbiBOSyhkKXtyZXR1cm4oZyxoKT0+dm9pZCAwIT09aD92b2lkIGcuY29uc3RydWN0b3IuY3JlYXRlUHJvcGVydHkoaCxkKTp3MWUoZCxnKX1mdW5jdGlvbiBWSyhkLGcpe3N3aXRjaChnJiZnLnR5cGUpe2Nhc2UgQXJyYXk6Y2Fz''@;'; put 'put ''ZSBPYmplY3Q6cmV0dXJuIG1zKHtyZWZsZWN0OiExfSxnKTtjYXNlIFN0cmluZzpyZXR1cm4gbXMoe3JlZmxlY3Q6ITAsYXR0cmlidXRlOkY3KGQpLGNvbnZlcnRlcjp7dG9BdHRyaWJ1dGU6aD0+aHx8bnVsbH19LGcpO2Nhc2UgTnVtYmVyOnJldHVybiBtcyh7cmVmbGVjdDohMCxhdHRyaWJ1''@;'; put 'put ''dGU6RjcoZCl9LGcpO2Nhc2UgQm9vbGVhbjpyZXR1cm4gbXMoe3JlZmxlY3Q6ITAsYXR0cmlidXRlOkY3KGQpLGNvbnZlcnRlcjp7dG9BdHRyaWJ1dGU6aD0+aD8iIjpudWxsLGZyb21BdHRyaWJ1dGU6aD0+ZnVuY3Rpb24gYzFlKGQpe3JldHVybiBudWxsIT1kJiYiIitkIT0iZmFsc2UifSho''@;'; put 'put ''KX19LGcpO2Nhc2UgRGF0ZTpyZXR1cm4gbXMoe3JlZmxlY3Q6ITEsY29udmVydGVyOntmcm9tQXR0cmlidXRlOmg9Pm5ldyBEYXRlKGgpfX0sZyk7ZGVmYXVsdDpyZXR1cm4gbXMoe30sZyl9fWZ1bmN0aW9uIEUxKGQpe3JldHVybihnLGgpPT4obnVsbCE9ZCYmZC5yZXF1aXJlZCYmZnVuY3Rp''@;'; put 'put ''b24gYjFlKGQsZyxoKXtjb25zdCB2PWQuZmlyc3RVcGRhdGVkO2QuZmlyc3RVcGRhdGVkPWZ1bmN0aW9uKHkpe2lmKGgmJmgucmVxdWlyZWQmJiQ2KHRoaXNbZ10pKXtjb25zdCBDPWgucmVxdWlyZWRNZXNzYWdlfHxmdW5jdGlvbihJPSJ3YXJuaW5nIixaLHVlKXtjb25zdCBfZT11ZS50b0xv''@;'; put 'put ''Y2FsZUxvd2VyQ2FzZSgpO3JldHVybmAke2VYKEkpfTogJHtafSBpcyByZXF1aXJlZCB0byB1c2UgJHtfZX0gY29tcG9uZW50LiBTZXQgdGhlIEpTIFByb3BlcnR5IG9yIEhUTUwgQXR0cmlidXRlLlxuXG5gKyhpVigpP2BBbmd1bGFyOiA8JHtfZX0gWyR7Wn1dPSIuLi4iPjwvJHtfZX0+XG5g''@;'; put 'put ''OiIiKSsoWEooKT9gVnVlOiA8JHtfZX0gOiR7Wn09Ii4uLiI+PC8ke19lfT5cbmA6IiIpKyhvVigpP2BSZWFjdDogPCR7ZnVuY3Rpb24gbXNlKGQpe3JldHVybiBlWChmdW5jdGlvbiBnc2UoZCl7cmV0dXJuIGQuc3BsaXQoIi0iKS5tYXAoKGcsaCk9Pmg/Zy5jaGFyQXQoMCkudG9VcHBlckNh''@;'; put 'put ''c2UoKStnLnNsaWNlKDEpLnRvTG93ZXJDYXNlKCk6Zykuam9pbigiIil9KGQpKX0oX2UpfSAke0JlPVosQmUuc3RhcnRzV2l0aCgiYXJpYSIpP0Y3KEJlKTpCZX09ey4uLn0gLz5cbmA6IiIpK2BIVE1MOiA8JHtfZX0gJHtGNyhaKX09Ii4uLiI+PC8ke19lfT5cbkphdmFTY3JpcHQ6IGRvY3Vt''@;'; put 'put ''ZW50LnF1ZXJ5U2VsZWN0b3IoJyR7X2V9JykuJHtafSA9ICcuLi4nO1xuXG5gO3ZhciBCZX0oaC5yZXF1aXJlZCxnLHRoaXMudGFnTmFtZSk7aWYoImVycm9yIj09PWgucmVxdWlyZWQpdGhyb3cgRXJyb3IoQyk7Tjcud2FybihDLHRoaXMpfXYmJnYuY2FsbCh0aGlzLHkpfX0oZyxoLGQpLE5L''@;'; put 'put ''KFZLKGgsZCkpKGcsaCkpfWZ1bmN0aW9uIGpLKGQpe3JldHVybihnLGgpPT57Y29uc3Qgdj1WSyhoLGQpO3JldHVybiB2JiYodi5yZWZsZWN0PSEobnVsbD09ZHx8IWQucmVmbGVjdCkmJmQucmVmbGVjdCx2LnJlZmxlY3QmJiEobnVsbCE9ZCYmZC5hdHRyaWJ1dGUpJiYodi5hdHRyaWJ1dGU9''@;'; put 'put ''Il8iK0Y3KGgpKSksTksodikoZyxoKX19dmFyIGJwLGsxZT1pTGBAa2V5ZnJhbWVzIGZhZGVJbkFuZE91dHswJSx0b3tvcGFjaXR5OjB9NzUle29wYWNpdHk6MX19Omhvc3R7LS1jb2xvcjpjdXJyZW50Q29sb3I7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwt''@;'; put 'put ''c3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcsY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLWhlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTcs''@;'; put 'put ''Y2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttYXJnaW46MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7ZmlsbDp2YXIo''@;'; put 'put ''LS1jb2xvcik7Y29sb3I6dmFyKC0tY29sb3IpO2NvbnRhaW46c3RyaWN0O2N1cnNvcjppbmhlcml0fXN2Z3tkaXNwbGF5OmJsb2NrfTpob3N0KFtzaXplKj14c10pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwy''@;'; put 'put ''MCkpKTt3aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNSxjYWxjKDggKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi13''@;'; put 'put ''aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKX06aG9zdChbc2l6ZSo9c21dKXtoZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIw''@;'; put 'put ''KSkpO3dpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNyxjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4t''@;'; put 'put ''d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS03LGNhbGMoMTYgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpfTpob3N0KFtzaXplKj1tZF0pe2hlaWdodDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2Us''@;'; put 'put ''MjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05LGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21pbi1oZWlnaHQ6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS05LGNhbGMoMjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpO21p''@;'; put 'put ''bi13aWR0aDp2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTksY2FsYygyNCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW3NpemUqPWxnXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJh''@;'; put 'put ''c2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMSxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjAp''@;'; put 'put ''KSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTEsY2FsYygzNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW3NpemUqPXhsXSl7aGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIsY2FsYyg0OCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xv''@;'; put 'put ''YmFsLWJhc2UsMjApKSk7d2lkdGg6dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS0xMixjYWxjKDQ4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTttaW4taGVpZ2h0OnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIsY2FsYyg0OCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJh''@;'; put 'put ''c2UsMjApKSk7bWluLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTIsY2FsYyg0OCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW3NpemUqPXh4bF0pe2hlaWdodDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2''@;'; put 'put ''YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSk7d2lkdGg6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEzLGNhbGMoNjQgKiAxcmVtIC8gdmFyKC0tY2RzLWds''@;'; put 'put ''b2JhbC1iYXNlLDIwKSkpIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkpO21pbi1oZWlnaHQ6Y2FsYyh2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTEzLGNhbGMoNjQgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1i''@;'; put 'put ''YXNlLDIwKSkpIC0gdmFyKC0tY2RzLWdsb2JhbC1zcGFjZS01LGNhbGMoOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSkpO21pbi13aWR0aDpjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMTMsY2FsYyg2NCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjAp''@;'; put 'put ''KSkgLSB2YXIoLS1jZHMtZ2xvYmFsLXNwYWNlLTUsY2FsYyg4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKSl9Omhvc3QoW3NpemUqPWZpdF0pe2hlaWdodDphdXRvO3dpZHRoOmF1dG87Y29udGFpbjpsYXlvdXR9Omhvc3QoW3N0YXR1cz1zdWNjZXNzXSl7LS1jb2xvcjp2''@;'; put 'put ''YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4tNzAwLCAjNDI4MTBlKSl9Omhvc3QoW3N0YXR1cz1kYW5nZXJdKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03''@;'; put 'put ''MDAsICNlMDIyMDApKX06aG9zdChbc3RhdHVzPXdhcm5pbmddKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtd2FybmluZy1kYXJrLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLW9jaHJlLTgwMCwgI2EzNjUwMCkpfTpob3N0KFtzdGF0dXM9aW5mb10pey0tY29sb3I6dmFyKC0tY2Rz''@;'; put 'put ''LWFsaWFzLXN0YXR1cy1pbmZvLXNoYWRlLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtODAwLCAjMDA2MDhhKSl9Omhvc3QoW2ludmVyc2VdKXstLWNvbG9yOnZhcigtLWNkcy1nbG9iYWwtY29sb3ItY29uc3RydWN0aW9uLTIwMCwgI2NiZDRkOCl9Omhvc3QoW2RpcmVjdGlvbj11cF0p''@;'; put 'put ''e3RyYW5zZm9ybTpyb3RhdGUoMCl9Omhvc3QoW2RpcmVjdGlvbj1kb3duXSl7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfTpob3N0KFtkaXJlY3Rpb249cmlnaHRdKXt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX06aG9zdChbZGlyZWN0aW9uPWxlZnRdKXt0cmFuc2Zvcm06cm90YXRlKDI3MGRl''@;'; put 'put ''Zyl9Omhvc3QoW2ZsaXA9aG9yaXpvbnRhbF0pe3RyYW5zZm9ybTpzY2FsZSgtMSkgcm90YXRlWCgxODBkZWcpfTpob3N0KFtmbGlwPXZlcnRpY2FsXSl7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3RhdGVZKDE4MGRlZyl9LmFsZXJ0LC5iYWRnZXtmaWxsOnZhcigtLWJhZGdlLWNvbG9yLHZhcigt''@;'; put 'put ''LWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyLHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCwjZTAyMjAwKSkpfTpob3N0KFtiYWRnZT1zdWNjZXNzXSl7LS1iYWRnZS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtc3RhdHVzLXN1Y2Nlc3MsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItZ3JlZW4t''@;'; put 'put ''NzAwLCAjNDI4MTBlKSl9Omhvc3QoW2JhZGdlPWRhbmdlcl0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1kYW5nZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3ItcmVkLTcwMCwgI2UwMjIwMCkpfTpob3N0KFtiYWRnZSo9d2FybmluZ10pey0tYmFkZ2UtY29sb3I6dmFy''@;'; put 'put ''KC0tY2RzLWFsaWFzLXN0YXR1cy13YXJuaW5nLWRhcmssIHZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtODAwLCAjYTM2NTAwKSl9Omhvc3QoW2JhZGdlPWluaGVyaXRdKXstLWJhZGdlLWNvbG9yOmN1cnJlbnRDb2xvcn06aG9zdChbYmFkZ2U9aW5mb10pey0tYmFkZ2UtY29sb3I6dmFy''@;'; put 'put ''KC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwLCAjMDA3OWFkKSl9Omhvc3QoW2JhZGdlPWluaGVyaXQtdHJpYW5nbGVdKXstLWJhZGdlLWNvbG9yOmN1cnJlbnRDb2xvcn06aG9zdChbYmFkZ2VdW2ludmVyc2VdKXstLWJhZGdlLWNvbG9y''@;'; put 'put ''OnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtZGFuZ2VyLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLXJlZC03MDAsICNlMDIyMDApKX06aG9zdChbYmFkZ2U9c3VjY2Vzc11baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1zdWNjZXNzLCB2YXIoLS1jZHMtZ2xv''@;'; put 'put ''YmFsLWNvbG9yLWdyZWVuLTcwMCwgIzQyODEwZSkpfTpob3N0KFtiYWRnZSo9d2FybmluZ11baW52ZXJzZV0pey0tYmFkZ2UtY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy13YXJuaW5nLWRhcmssIHZhcigtLWNkcy1nbG9iYWwtY29sb3Itb2NocmUtODAwLCAjYTM2NTAwKSl9Omhvc3Qo''@;'; put 'put ''W2JhZGdlKj1pbmhlcml0XVtpbnZlcnNlXSl7LS1iYWRnZS1jb2xvcjpjdXJyZW50Q29sb3J9Omhvc3QoW2JhZGdlPWluZm9dW2ludmVyc2VdKXstLWJhZGdlLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1zdGF0dXMtaW5mbywgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1ibHVlLTcwMCwgIzAwNzlh''@;'; put 'put ''ZCkpfS5jZHMtaW50ZXJuYWwtZG90LTF7YW5pbWF0aW9uOmZhZGVJbkFuZE91dCAxLjhzIGVhc2UtaW4gMHMgaW5maW5pdGV9LmNkcy1pbnRlcm5hbC1kb3QtMnthbmltYXRpb246ZmFkZUluQW5kT3V0IDEuOHMgZWFzZS1vdXQgLjQyMnMgaW5maW5pdGV9LmNkcy1pbnRlcm5hbC1kb3QtM3th''@;'; put 'put ''bmltYXRpb246ZmFkZUluQW5kT3V0IDEuOHMgZWFzZS1vdXQgLjY3NXMgaW5maW5pdGV9QG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uKXsuY2RzLWludGVybmFsLWRvdC0xLC5jZHMtaW50ZXJuYWwtZG90LTIsLmNkcy1pbnRlcm5hbC1kb3QtM3thbmltYXRpb246bm9uZX19YDtmdW5j''@;'; put 'put ''dGlvbiB1TChkLGcpe2xldCBoPSIiO3N3aXRjaChmdW5jdGlvbiBTMWUoZCl7c3dpdGNoKCEwKXtjYXNlICQ2KGQpOnJldHVybiBicC5OaWxTaXplVmFsdWU7Y2FzZSBmdW5jdGlvbiBaSyhkKXtyZXR1cm5bInh4cyIsInhzIiwic20iLCJtZCIsImxnIiwieGwiLCJ4eGwiXS5pbmRleE9mKGQp''@;'; put 'put ''Pi0xfShkKTpyZXR1cm4gYnAuVmFsaWRTaXplU3RyaW5nO2Nhc2UgZnVuY3Rpb24gTUQoZCl7cmV0dXJuIGtrKGQpJiYhS04oZC50cmltKCkpJiYrZD09K2R9KGQpOnJldHVybiBicC5WYWxpZE51bWVyaWNTdHJpbmc7ZGVmYXVsdDpyZXR1cm4gYnAuQmFkU2l6ZVZhbHVlfX0oZnVuY3Rpb24g''@;'; put 'put ''TTFlKGQpe3JldHVybiAkNihkKT8iIjpmdW5jdGlvbiBBc2UoZCxnLGg9IiIpe2NvbnN0IHY9ZC5zcGxpdCgiICIpLHk9IiI9PT1oP3YuZmlsdGVyKEM9PkMhPT1nKTp2Lm1hcChDPT5DPT09Zz9oOkMpO3JldHVybiB5Lmxlbmd0aD4wP3kuam9pbigiICIpOiIifShkLCJmaXQiKX0oZykpKXtj''@;'; put 'put ''YXNlIGJwLlZhbGlkTnVtZXJpY1N0cmluZzpyZXR1cm4gaD12aihwYXJzZUludChnKSksdm9pZCBmdW5jdGlvbiBBMWUoZCwuLi5nKXtnLmZvckVhY2goKFtoLHZdKT0+e2Quc3R5bGVbaF09dn0pfShkLC4uLmZ1bmN0aW9uIGYwKGQsZyl7cmV0dXJuIUl5KGQpJiZkLmluZGV4T2YoImZpdCIp''@;'; put 'put ''Pi0xP1tbIndpZHRoIiwiYXV0byJdLFsiaGVpZ2h0IiwiYXV0byJdLFsibWluLXdpZHRoIixnXSxbIm1pbi1oZWlnaHQiLGddXTpbWyJ3aWR0aCIsZ10sWyJoZWlnaHQiLGddLFsibWluLXdpZHRoIixnXSxbIm1pbi1oZWlnaHQiLGddXX0oZyxoKSk7Y2FzZSBicC5WYWxpZFNpemVTdHJpbmc6''@;'; put 'put ''Y2FzZSBicC5OaWxTaXplVmFsdWU6cmV0dXJuIHZvaWQgZnVuY3Rpb24geTFlKGQsLi4uZyl7Zy5mb3JFYWNoKGg9PntkLnN0eWxlW2hdPSIifSl9KGQsIndpZHRoIiwiaGVpZ2h0IiwibWluLXdpZHRoIiwibWluLWhlaWdodCIpO2RlZmF1bHQ6cmV0dXJufX1mdW5jdGlvbiBjTChkKXtyZXR1''@;'; put 'put ''cm4gZC5iYWRnZSYmKCJpbmhlcml0LXRyaWFuZ2xlIj09PWQuYmFkZ2V8fCJ3YXJuaW5nLXRyaWFuZ2xlIj09PWQuYmFkZ2UpfSFmdW5jdGlvbihkKXtkLkJhZFNpemVWYWx1ZT0iYmFkLXZhbHVlIixkLlZhbGlkU2l6ZVN0cmluZz0idmFsdWUtaXMtc3RyaW5nIixkLlZhbGlkTnVtZXJpY1N0''@;'; put 'put ''cmluZz0idmFsdWUtaXMtbnVtZXJpYyIsZC5OaWxTaXplVmFsdWU9InZhbHVlLWlzLW5pbCJ9KGJwfHwoYnA9e30pKTtjbGFzcyBhNCBleHRlbmRzIFh5e2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLl9zaGFwZT0idW5rbm93biIsdGhpcy5zb2xpZD0hMSx0aGlzLmlu''@;'; put 'put ''dmVyc2U9ITF9c3RhdGljIGdldCBzdHlsZXMoKXtyZXR1cm5bSEssazFlXX1nZXQgc2hhcGUoKXtyZXR1cm4gdGhpcy5fc2hhcGV9c2V0IHNoYXBlKGcpe2lmKGZ1bmN0aW9uIGNnKGQsZyl7cmV0dXJuISQ2KGQpJiZHSihkLGcpfShnLHRoaXMuX3NoYXBlKSl7Y29uc3QgaD10aGlzLl9zaGFw''@;'; put 'put ''ZTt0aGlzLl9zaGFwZT1nLHRoaXMucmVxdWVzdFVwZGF0ZSgic2hhcGUiLGgpfX1nZXQgc2l6ZSgpe3JldHVybiB0aGlzLl9zaXplfXNldCBzaXplKGcpe2lmKGZ1bmN0aW9uIFdKKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHpKKGQpe3JldHVybiBiRChTdHJpbmcsZCl8fEl5KGQpfShkKSYmR0oo''@;'; put 'put ''ZCxnKX0oZyx0aGlzLl9zaXplKSl7Y29uc3QgaD10aGlzLl9zaXplO3RoaXMuX3NpemU9Zyx1TCh0aGlzLGcpLHRoaXMucmVxdWVzdFVwZGF0ZSgic2l6ZSIsaCl9fXVwZGF0ZWQoZyl7aWYoZy5oYXMoImlubmVyT2Zmc2V0IikmJnRoaXMuaW5uZXJPZmZzZXQ+MCl7Y29uc3QgaD12aigtMSp0''@;'; put 'put ''aGlzLmlubmVyT2Zmc2V0KSx2PWBjYWxjKDEwMCUgKyAke3ZqKDIqdGhpcy5pbm5lck9mZnNldCl9KWA7dGhpcy5zdmcuc3R5bGUud2lkdGg9dix0aGlzLnN2Zy5zdHlsZS5oZWlnaHQ9dix0aGlzLnN2Zy5zdHlsZS5tYXJnaW49YCR7aH0gMCAwICR7aH1gfX1maXJzdFVwZGF0ZWQoZyl7aWYo''@;'; put 'put ''c3VwZXIuZmlyc3RVcGRhdGVkKGcpLHRoaXMuaXNDb25uZWN0ZWQpe2xldCBoPSJ1bmtub3duIjt0aGlzLnN1YnNjcmlwdGlvbj1KMS5zdGF0ZVVwZGF0ZXMuc3Vic2NyaWJlKHY9PnsiaWNvblJlZ2lzdHJ5Ij09PXYua2V5JiZocy5yZWdpc3RyeVt0aGlzLnNoYXBlXSYmaCE9PXRoaXMuc2hh''@;'; put 'put ''cGUmJihoPXRoaXMuc2hhcGUsdGhpcy5yZXF1ZXN0VXBkYXRlKCJzaGFwZSIpKX0pfX1kaXNjb25uZWN0ZWRDYWxsYmFjaygpe3ZhciBnO3N1cGVyLmRpc2Nvbm5lY3RlZENhbGxiYWNrKCksbnVsbD09KGc9dGhpcy5zdWJzY3JpcHRpb24pfHxnLnVuc3Vic2NyaWJlKCl9cmVuZGVyKCl7cmV0''@;'; put 'put ''dXJuIGtrKGhzLnJlZ2lzdHJ5W3RoaXMuc2hhcGVdKT9vNGA8c3BhbiAuaW5uZXJIVE1MPSIke2hzLnJlZ2lzdHJ5W3RoaXMuc2hhcGVdfSI+PC9zcGFuPmA6cDFlYDxzdmcgLmlubmVySFRNTD0iJHtmdW5jdGlvbiB4MWUoZCl7dmFyIHYseSxDLEksWjtjb25zdCBnPW51bGwhPSh2PWhzLnJl''@;'; put 'put ''Z2lzdHJ5W2Quc2hhcGVdKT92OmhzLnJlZ2lzdHJ5LnVua25vd247bGV0IGg9ZC5zb2xpZCYmZy5zb2xpZD9nLnNvbGlkOmcub3V0bGluZTtyZXR1cm4gZC5iYWRnZSYmIWNMKGQpJiYoaD1kLnNvbGlkP251bGwhPSh5PWcuc29saWRCYWRnZWQpP3k6aDpudWxsIT0oQz1nLm91dGxpbmVCYWRn''@;'; put 'put ''ZWQpP0M6aCksY0woZCkmJihoPWQuc29saWQ/bnVsbCE9KEk9Zy5zb2xpZEFsZXJ0ZWQpP0k6aDpudWxsIT0oWj1nLm91dGxpbmVBbGVydGVkKT9aOmgpLGh9KHRoaXMpK2Z1bmN0aW9uIEUxZShkKXtsZXQgZz0iIjtyZXR1cm4gZC5iYWRnZSYmY0woZCk/Zz0nPHBhdGggZD0iTTI2Ljg1IDEu''@;'; put 'put ''MTRMMjEuMTMgMTFhMS4yOCAxLjI4IDAgMDAxLjEgMmgxMS40NWExLjI4IDEuMjggMCAwMDEuMS0ybC01LjcyLTkuODZhMS4yOCAxLjI4IDAgMDAtMi4yMSAweiIgY2xhc3M9ImFsZXJ0IiAvPic6ZC5iYWRnZSYmKGc9JzxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImJhZGdl''@;'; put 'put ''IiAvPicpLGd9KHRoaXMpfSIgdmlld0JveD0iMCAwIDM2IDM2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3N2Zz5gfX1WMihbRTEoe3R5cGU6U3RyaW5nfSldLGE0LnByb3RvdHlwZSwic2hhcGUiLG51bGwpLFYyKFtFMSh7dHlwZTpT''@;'; put 'put ''dHJpbmd9KV0sYTQucHJvdG90eXBlLCJzaXplIixudWxsKSxWMihbRTEoe3R5cGU6U3RyaW5nfSldLGE0LnByb3RvdHlwZSwiZGlyZWN0aW9uIix2b2lkIDApLFYyKFtFMSh7dHlwZTpTdHJpbmd9KV0sYTQucHJvdG90eXBlLCJmbGlwIix2b2lkIDApLFYyKFtFMSh7dHlwZTpCb29sZWFufSld''@;'; put 'put ''LGE0LnByb3RvdHlwZSwic29saWQiLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxhNC5wcm90b3R5cGUsInN0YXR1cyIsdm9pZCAwKSxWMihbRTEoe3R5cGU6Qm9vbGVhbn0pXSxhNC5wcm90b3R5cGUsImludmVyc2UiLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxhNC5w''@;'; put 'put ''cm90b3R5cGUsImJhZGdlIix2b2lkIDApLFYyKFtqSyh7dHlwZTpOdW1iZXJ9KV0sYTQucHJvdG90eXBlLCJpbm5lck9mZnNldCIsdm9pZCAwKSxWMihbZnVuY3Rpb24gQzFlKGQsZyl7cmV0dXJuKCh7ZmluaXNoZXI6ZCxkZXNjcmlwdG9yOmd9KT0+KGgsdik9Pnt2YXIgeTtpZih2b2lkIDA9''@;'; put 'put ''PT12KXtjb25zdCBDPW51bGwhPT0oeT1oLm9yaWdpbmFsS2V5KSYmdm9pZCAwIT09eT95Omgua2V5LEk9bnVsbCE9Zz97a2luZDoibWV0aG9kIixwbGFjZW1lbnQ6InByb3RvdHlwZSIsa2V5OkMsZGVzY3JpcHRvcjpnKGgua2V5KX06R3oobXMoe30saCkse2tleTpDfSk7cmV0dXJuIG51bGwh''@;'; put 'put ''PWQmJihJLmZpbmlzaGVyPWZ1bmN0aW9uKFope2QoWixDKX0pLEl9e2NvbnN0IEM9aC5jb25zdHJ1Y3Rvcjt2b2lkIDAhPT1nJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaCx2LGcodikpLG51bGw9PWR8fGQoQyx2KX19KSh7ZGVzY3JpcHRvcjpoPT57Y29uc3Qgdj17Z2V0KCl7dmFyIHksQzty''@;'; put 'put ''ZXR1cm4gbnVsbCE9PShDPW51bGw9PT0oeT10aGlzLnJlbmRlclJvb3QpfHx2b2lkIDA9PT15P3ZvaWQgMDp5LnF1ZXJ5U2VsZWN0b3IoZCkpJiZ2b2lkIDAhPT1DP0M6bnVsbH0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9O2lmKGcpe2NvbnN0IHk9InN5bWJvbCI9PXR5cGVvZiBo''@;'; put 'put ''P1N5bWJvbCgpOiJfXyIraDt2LmdldD1mdW5jdGlvbigpe3ZhciBDLEk7cmV0dXJuIHZvaWQgMD09PXRoaXNbeV0mJih0aGlzW3ldPW51bGwhPT0oST1udWxsPT09KEM9dGhpcy5yZW5kZXJSb290KXx8dm9pZCAwPT09Qz92b2lkIDA6Qy5xdWVyeVNlbGVjdG9yKGQpKSYmdm9pZCAwIT09ST9J''@;'; put 'put ''Om51bGwpLHRoaXNbeV19fXJldHVybiB2fX0pfSgic3ZnIildLGE0LnByb3RvdHlwZSwic3ZnIix2b2lkIDApLENLKCJjZHMtaWNvbiIsYTQpO2NsYXNzIFQxZXtjb25zdHJ1Y3RvcihnKXt0aGlzLmhvc3Q9Zyx0aGlzLmhvc3QuYWRkQ29udHJvbGxlcih0aGlzKX1ob3N0Q29ubmVjdGVkKCl7''@;'; put 'put ''dmFyIGc9dGhpcztyZXR1cm4gVEsoZnVuY3Rpb24qKCl7eWllbGQgZy5ob3N0LnVwZGF0ZUNvbXBsZXRlLGcuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixoPT5nLmVtdWxhdGVBY3RpdmUoaCkpLGcuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGg9PmcuZW11bGF0''@;'; put 'put ''ZUFjdGl2ZShoKSksZy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwoKT0+Zy5lbXVsYXRlSW5hY3RpdmUoKSksZy5ob3N0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCgpPT5nLmVtdWxhdGVJbmFjdGl2ZSgpKSxnLmhvc3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsKCk9Pmcu''@;'; put 'put ''ZW11bGF0ZUluYWN0aXZlKCkpfSkoKX1lbXVsYXRlQWN0aXZlKGcpe3ZhciBoO3RoaXMuaG9zdC5kaXNhYmxlZHx8bnVsbD09KGg9dGhpcy5ob3N0KXx8aC5zZXRBdHRyaWJ1dGUoImNkcy1hY3RpdmUiLCIiKSwiU3BhY2UiPT09Zy5jb2RlJiZnLnRhcmdldD09PXRoaXMuaG9zdCYmZy5wcmV2''@;'; put 'put ''ZW50RGVmYXVsdCgpfWVtdWxhdGVJbmFjdGl2ZSgpe3RoaXMuaG9zdC5yZW1vdmVBdHRyaWJ1dGUoImNkcy1hY3RpdmUiKX19Y2xhc3MgSTFle2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RDb25uZWN0ZWQoKXt0aGlzLmhvc3Qu''@;'; put 'put ''cG9wdXAmJih0aGlzLmhvc3QuYXJpYUNvbnRyb2xzPXRoaXMuaG9zdC5wb3B1cCx0aGlzLmhvc3QuYXJpYUhhc1BvcHVwPSJ0cnVlIix0aGlzLmhvc3QuYXJpYUV4cGFuZGVkPSJmYWxzZSIpfX1jbGFzcyBXS3tjb25zdHJ1Y3RvcihnKXt0aGlzLmhvc3Q9Zyx0aGlzLmhvc3QuYWRkQ29udHJv''@;'; put 'put ''bGxlcih0aGlzKX1ob3N0VXBkYXRlZCgpe251bGwhPT10aGlzLmhvc3QuZGlzYWJsZWQmJih0aGlzLmhvc3QuYXJpYURpc2FibGVkPXRoaXMuaG9zdC5kaXNhYmxlZCksdGhpcy5ob3N0LnJlYWRvbmx5JiYodGhpcy5ob3N0LmFyaWFEaXNhYmxlZD1udWxsKX19Y2xhc3MgTDFle2NvbnN0cnVj''@;'; put 'put ''dG9yKGcpe3RoaXMuaG9zdD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWhvc3RVcGRhdGVkKCl7bnVsbCE9dGhpcy5ob3N0LnByZXNzZWQmJih0aGlzLmhvc3QuYXJpYVByZXNzZWQ9dGhpcy5ob3N0LnByZXNzZWQ/InRydWUiOiJmYWxzZSIpLHRoaXMuaG9zdC5yZWFkb25seSYm''@;'; put 'put ''KHRoaXMuaG9zdC5hcmlhUHJlc3NlZD1udWxsKX19Y2xhc3MgVUt7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy5ob3N0LmFkZENvbnRyb2xsZXIodGhpcyl9aG9zdENvbm5lY3RlZCgpe3RoaXMuaG9zdC50YWJJbmRleD0wfWhvc3RVcGRhdGVkKCl7dGhpcy5ob3N0LnJvbGU9dGhp''@;'; put 'put ''cy5ob3N0LnJlYWRvbmx5P251bGw6ImJ1dHRvbiIsdGhpcy5ob3N0LnRhYkluZGV4PXRoaXMuaG9zdC5kaXNhYmxlZD8tMTowLHRoaXMuaG9zdC5yZWFkb25seSYmdGhpcy5ob3N0LnJlbW92ZUF0dHJpYnV0ZSgidGFiaW5kZXgiKX19Y2xhc3MgUjFle2NvbnN0cnVjdG9yKGcpe3RoaXMuaG9z''@;'; put 'put ''dD1nLHRoaXMuaG9zdC5hZGRDb250cm9sbGVyKHRoaXMpfWdldCBjdXJyZW50QW5jaG9yKCl7dmFyIGc7cmV0dXJuIkEiPT09KG51bGw9PShnPXRoaXMuaG9zdC5wYXJlbnRFbGVtZW50KT92b2lkIDA6Zy50YWdOYW1lKT90aGlzLmhvc3QucGFyZW50RWxlbWVudDpudWxsfWhvc3RDb25uZWN0''@;'; put 'put ''ZWQoKXt0aGlzLnNldEFuY2hvcigpfWhvc3RVcGRhdGVkKCl7dGhpcy5zZXRBbmNob3IoKX1zZXRBbmNob3IoKXt0aGlzLmN1cnJlbnRBbmNob3ImJnRoaXMuY3VycmVudEFuY2hvciE9PXRoaXMucHJldmlvdXNBbmNob3ImJih0aGlzLnByZXZpb3VzQW5jaG9yPXRoaXMuY3VycmVudEFuY2hv''@;'; put 'put ''cix0aGlzLmhvc3QucmVhZG9ubHk9ITAsdGhpcy5jdXJyZW50QW5jaG9yLnN0eWxlLmxpbmVIZWlnaHQ9IjAiLHRoaXMuY3VycmVudEFuY2hvci5zdHlsZS50ZXh0RGVjb3JhdGlvbj0ibm9uZSIpfX1jb25zdCBBaj1kPT5udWxsIT1kP2Q6TnU7ZnVuY3Rpb24gUUsoZCl7ZC5wcmV2ZW50RGVm''@;'; put 'put ''YXVsdCgpLGQuc3RvcFByb3BhZ2F0aW9uKCl9Y29uc3Qgd2o9bmV3IE1hcChbWyJhcnJvdy1sZWZ0IiwiQXJyb3dMZWZ0Il0sWyJhcnJvdy1yaWdodCIsIkFycm93UmlnaHQiXSxbImFycm93LXVwIiwiQXJyb3dVcCJdLFsiYXJyb3ctZG93biIsIkFycm93RG93biJdLFsidGFiIiwiVGFiIl0s''@;'; put 'put ''WyJlbnRlciIsIkVudGVyIl0sWyJlc2NhcGUiLCJFc2NhcGUiXSxbInNwYWNlIiwiICJdLFsiaG9tZSIsIkhvbWUiXSxbImVuZCIsIkVuZCJdXSk7dmFyIF9wOyFmdW5jdGlvbihkKXtkLkFycm93VXA9IkFycm93VXAiLGQuQXJyb3dEb3duPSJBcnJvd0Rvd24iLGQuQXJyb3dMZWZ0PSJBcnJv''@;'; put 'put ''d0xlZnQiLGQuQXJyb3dSaWdodD0iQXJyb3dSaWdodCIsZC5FbmQ9IkVuZCIsZC5Ib21lPSJIb21lIixkLlBhZ2VVcD0iUGFnZVVwIixkLlBhZ2VEb3duPSJQYWdlRG93biJ9KF9wfHwoX3A9e30pKTtjbGFzcyBXMWV7Y29uc3RydWN0b3IoZyl7dGhpcy5ob3N0PWcsdGhpcy50cmlnZ2VyTmF0''@;'; put 'put ''aXZlQnV0dG9uQmVoYXZpb3JIYW5kbGVyPXRoaXMudHJpZ2dlck5hdGl2ZUJ1dHRvbkJlaGF2aW9yLmJpbmQodGhpcyksdGhpcy5lbXVsYXRlS2V5Qm9hcmRFdmVudEJlaGF2aW9ySGFuZGxlcj10aGlzLmVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3IuYmluZCh0aGlzKSx0aGlzLmhvc3Qu''@;'; put 'put ''YWRkQ29udHJvbGxlcih0aGlzKX1ob3N0VXBkYXRlZCgpe3RoaXMuc2V0QnV0dG9uVHlwZSgpLHRoaXMuc2V0dXBOYXRpdmVCdXR0b25CZWhhdmlvcigpfXNldEJ1dHRvblR5cGUoKXshdGhpcy5ob3N0LnR5cGUmJnRoaXMuaG9zdC5jbG9zZXN0KCJmb3JtIikmJih0aGlzLmhvc3QudHlwZT0i''@;'; put 'put ''c3VibWl0Iil9c2V0dXBOYXRpdmVCdXR0b25CZWhhdmlvcigpe3RoaXMuaG9zdC5yZWFkb25seXx8dGhpcy5ob3N0LmRpc2FibGVkPyh0aGlzLmhvc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMudHJpZ2dlck5hdGl2ZUJ1dHRvbkJlaGF2aW9ySGFuZGxlciksdGhpcy5ob3N0''@;'; put 'put ''LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix0aGlzLmVtdWxhdGVLZXlCb2FyZEV2ZW50QmVoYXZpb3JIYW5kbGVyKSk6KHRoaXMuaG9zdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50cmlnZ2VyTmF0aXZlQnV0dG9uQmVoYXZpb3JIYW5kbGVyKSx0aGlzLmhvc3QuYWRkRXZl''@;'; put 'put ''bnRMaXN0ZW5lcigia2V5dXAiLHRoaXMuZW11bGF0ZUtleUJvYXJkRXZlbnRCZWhhdmlvckhhbmRsZXIpKX1lbXVsYXRlS2V5Qm9hcmRFdmVudEJlaGF2aW9yKGcpeyFmdW5jdGlvbiBIMWUoZCxnLGgpe2QuZmlsdGVyKHY9PmZ1bmN0aW9uIGJqKGQsZyl7cmV0dXJuIGNsYXNzIFAxZXtzdGF0''@;'; put 'put ''aWMgZ2V0IGtleWNvZGVzKCl7cmV0dXJuIHVzZSh3ail9c3RhdGljIGFkZChnLGgpe3dqLnNldChnLGgpfXN0YXRpYyBoYXMoZyl7cmV0dXJuIHdqLmhhcyhnKX1zdGF0aWMgZ2V0Q29kZShnLGg9dGhpcy5rZXljb2Rlcyl7cmV0dXJuIGZ1bmN0aW9uIEYxZShkLGcpe3JldHVybiBnLmdldChk''@;'; put 'put ''KXx8IiJ9KGcsaCl9fS5nZXRDb2RlKGcpPT09ZC5rZXl9KGcsdikpLmxlbmd0aD4wJiZoKCl9KFsiZW50ZXIiLCJzcGFjZSJdLGcsKCk9Pnsic3VibWl0Ij09PXRoaXMuaG9zdC50eXBlP3RoaXMudHJpZ2dlck5hdGl2ZUJ1dHRvbkJlaGF2aW9yKGcpOnRoaXMuaG9zdC5jbGljaygpLFFLKGcp''@;'; put 'put ''fSl9dHJpZ2dlck5hdGl2ZUJ1dHRvbkJlaGF2aW9yKGcpe2lmKHRoaXMuaG9zdC5kaXNhYmxlZClRSyhnKTtlbHNlIGlmKCFnLmRlZmF1bHRQcmV2ZW50ZWQpe2NvbnN0IGg9ZnVuY3Rpb24gRzFlKGQsZyxoKXtjb25zdCB2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuYXBwZW5k''@;'; put 'put ''Q2hpbGQodiksT0soZCxnLG1zKHtyZW5kZXJCZWZvcmU6dn0saCkpO2NvbnN0IHk9di5wcmV2aW91c1NpYmxpbmc7cmV0dXJuIHYucmVtb3ZlKCkseX0obzRgPGJ1dHRvbiBhcmlhLWhpZGRlbj0idHJ1ZSIgcm9sZT0icHJlc2VudGF0aW9uIiA/ZGlzYWJsZWQ9IiR7dGhpcy5ob3N0LmRpc2Fi''@;'; put 'put ''bGVkfSIgdGFiaW5kZXg9Ii0xIiBzdHlsZT0iZGlzcGxheTpub25lIWltcG9ydGFudCIgdmFsdWU9IiR7QWoodGhpcy5ob3N0LnZhbHVlKX0iIG5hbWU9IiR7QWoodGhpcy5ob3N0Lm5hbWUpfSIgdHlwZT0iJHtBaih0aGlzLmhvc3QudHlwZSl9Ij48L2J1dHRvbj5gLHRoaXMuaG9zdCk7bnVs''@;'; put 'put ''bD09aHx8aC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCJjbGljayIse3JlbGF0ZWRUYXJnZXQ6dGhpcy5ob3N0LGNvbXBvc2VkOiEwfSkpLG51bGw9PWh8fGgucmVtb3ZlKCl9fX1jbGFzcyBLS3tjb25zdHJ1Y3RvcihnKXt0aGlzLmhvc3Q9Zyx0aGlzLmhvc3QuYWRkQ29udHJvbGxl''@;'; put 'put ''cih0aGlzKX1ob3N0VXBkYXRlZCgpe251bGwhPXRoaXMuaG9zdC5leHBhbmRlZCYmKHRoaXMuaG9zdC5hcmlhRXhwYW5kZWQ9dGhpcy5ob3N0LmV4cGFuZGVkPyJ0cnVlIjoiZmFsc2UiKSx0aGlzLmhvc3QucmVhZG9ubHkmJih0aGlzLmhvc3QuYXJpYUV4cGFuZGVkPW51bGwpfX1sZXQgbmQ9''@;'; put 'put ''Y2xhc3MgZXh0ZW5kcyBYeXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5kaXNhYmxlZD0hMX19O1YyKFtFMSh7dHlwZTpCb29sZWFufSldLG5kLnByb3RvdHlwZSwicHJlc3NlZCIsdm9pZCAwKSxWMihbRTEoe3R5cGU6Qm9vbGVhbn0pXSxuZC5wcm90b3R5cGUsImV4''@;'; put 'put ''cGFuZGVkIix2b2lkIDApLFYyKFtFMSh7dHlwZTpCb29sZWFufSldLG5kLnByb3RvdHlwZSwicmVhZG9ubHkiLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxuZC5wcm90b3R5cGUsInR5cGUiLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxuZC5wcm90b3R5cGUsIm5hbWUi''@;'; put 'put ''LHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxuZC5wcm90b3R5cGUsInZhbHVlIix2b2lkIDApLFYyKFtFMSh7dHlwZTpCb29sZWFufSldLG5kLnByb3RvdHlwZSwiZGlzYWJsZWQiLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxuZC5wcm90b3R5cGUsInBvcHVwIix2b2lk''@;'; put 'put ''IDApLG5kPVYyKFtmdW5jdGlvbiB6Sygpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBUMWUoZykpfSgpLGZ1bmN0aW9uIE8xZSgpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBVSyhnKSl9KCksZnVuY3Rpb24gWUsoKXtyZXR1cm4gZD0+ZC5hZGRJbml0aWFs''@;'; put 'put ''aXplcihnPT5uZXcgTDFlKGcpKX0oKSxmdW5jdGlvbiBZMWUoKXtyZXR1cm4gZD0+ZC5hZGRJbml0aWFsaXplcihnPT5uZXcgS0soZykpfSgpLGZ1bmN0aW9uIEQxZSgpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBXSyhnKSl9KCksZnVuY3Rpb24gR0soKXtyZXR1cm4gZD0+''@;'; put 'put ''ZC5hZGRJbml0aWFsaXplcihnPT5uZXcgSTFlKGcpKX0oKSxmdW5jdGlvbiBYSygpe3JldHVybiBkPT5kLmFkZEluaXRpYWxpemVyKGc9Pm5ldyBXMWUoZykpfSgpLGZ1bmN0aW9uIGZMKCl7cmV0dXJuIGQ9PmQuYWRkSW5pdGlhbGl6ZXIoZz0+bmV3IFIxZShnKSl9KCldLG5kKTtjb25zdCBo''@;'; put 'put ''TD17YWN0aW9uczp7c29ydDoiU29ydCIsZXhwYW5kOiJFeHBhbmQiLGNsb3NlOiJDbG9zZSIscmVzaXplOiJSZXNpemUiLGZpbHRlcjoiRmlsdGVyIn0sYWxlcnQ6e2Nsb3NlQnV0dG9uQXJpYUxhYmVsOiJDbG9zZSIsbG9hZGluZzoiTG9hZGluZyIsaW5mbzoiSW5mbyIsc3VjY2VzczoiU3Vj''@;'; put 'put ''Y2VzcyIsd2FybmluZzoiV2FybmluZyIsZGFuZ2VyOiJFcnJvciJ9LGRyb3Bkb3duOntvcGVuOiJPcGVuIn0sZmlsZTp7YnJvd3NlOiJicm93c2UiLGZpbGVzOiJmaWxlcyIscmVtb3ZlRmlsZToicmVtb3ZlIGZpbGUifSxtb2RhbDp7Y2xvc2VCdXR0b25BcmlhTGFiZWw6IkNsb3NlIG1vZGFs''@;'; put 'put ''Iixjb250ZW50U3RhcnQ6IkJlZ2lubmluZyBvZiBtb2RhbCBjb250ZW50Iixjb250ZW50Qm94OiJTY3JvbGxhYmxlIG1vZGFsIGJvZHkiLGNvbnRlbnRFbmQ6IkVuZCBvZiBtb2RhbCBjb250ZW50In0sbmF2aWdhdGlvbjp7bmF2aWdhdGlvbkVsZW1lbnQ6Im5hdmlnYXRpb24iLG5hdmlnYXRp''@;'; put 'put ''b25MYWJlbDoibmF2aWdhdGlvbiBtZW51IixuYXZpZ2F0aW9uQWJyaWRnZWRUZXh0OiJWaWV3IGFicmlkZ2VkIG1lbnUiLG5hdmlnYXRpb25VbmFicmlkZ2VkVGV4dDoiVmlldyB1bmFicmlkZ2VkIG1lbnUifSxvdmVybGF5OntjbG9zZUJ1dHRvbkFyaWFMYWJlbDoiQ2xvc2UgZGlhbG9nIixj''@;'; put 'put ''b250ZW50U3RhcnQ6IkJlZ2lubmluZyBvZiBkaWFsb2cgY29udGVudCIsY29udGVudEVuZDoiRW5kIG9mIGRpYWxvZyBjb250ZW50In0scG9wdXA6e2Nsb3NlQnV0dG9uQXJpYUxhYmVsOiJDbG9zZSBwb3B1cCIsY29udGVudFN0YXJ0OiJCZWdpbm5pbmcgb2YgcG9wdXAgY29udGVudCIsY29u''@;'; put 'put ''dGVudEVuZDoiRW5kIG9mIHBvcHVwIGNvbnRlbnQifSxwYXNzd29yZDp7c2hvd0J1dHRvbkFyaWFMYWJlbDoiU2hvdyBwYXNzd29yZCIsaGlkZUJ1dHRvbkFyaWFMYWJlbDoiSGlkZSBwYXNzd29yZCJ9LHByb2dyZXNzOntsb2FkaW5nOiJMb2FkaW5nIixsb29waW5nOiJMb2FkaW5nIn0sdHJl''@;'; put 'put ''ZXZpZXc6e2xvYWRpbmc6IkxvYWRpbmcifSxncmlkOntyZXNpemVDb2x1bW46IlJlc2l6ZSBDb2x1bW4iLGNsb3NlRGV0YWlsczoiQ2xvc2UgRGV0YWlscyIsbm9EYXRhOiJObyBSZXN1bHRzIEZvdW5kIixyb3dEZXRhaWxTdGFydDoiU3RhcnQgb2Ygcm93IGRldGFpbHMiLHJvd0RldGFpbEVu''@;'; put 'put ''ZDoiRW5kIG9mIHJvdyBkZXRhaWxzIixmb290ZXJFbmQ6IkVuZCBvZiBncmlkIHJvd3MiLGFjdGlvbjoiQWN0aW9uIixkcm9wVGFyZ2V0OiJEcm9wIEl0ZW0iLHBhZ2luYXRpb246e2xhYmVsOiJncmlkIHBhZ2luYXRpb24iLGZpcnN0UGFnZToiZ28gdG8gZmlyc3QgcGFnZSIscHJldmlvdXNQ''@;'; put 'put ''YWdlOiJnbyB0byBwcmV2aW91cyBwYWdlIixuZXh0UGFnZToiZ28gdG8gbmV4dCBwYWdlIixsYXN0UGFnZToiZ28gdG8gbGFzdCBwYWdlIixwYWdlU2l6ZToicm93cyBwZXIgcGFnZSIscGFnZToicGFnZSJ9fX07Y2xhc3MgcnZ7c3RhdGljIGdldCBrZXlzKCl7cmV0dXJuIDA9PT1PYmplY3Qu''@;'; put 'put ''a2V5cyhKMS5zdGF0ZS5pMThuUmVnaXN0cnkpLmxlbmd0aCYmKEoxLnN0YXRlLmkxOG5SZWdpc3RyeT1QNyhoTCxKMS5zdGF0ZS5pMThuUmVnaXN0cnkpKSxQNyhoTCxKMS5zdGF0ZS5pMThuUmVnaXN0cnkpfXN0YXRpYyBmaW5kS2V5KGcpe2NvbnN0IGg9cnYua2V5cztyZXR1cm4gT2JqZWN0''@;'; put 'put ''LmtleXMoaCkuZmluZCh2PT5VSihoW3ZdLGcpKX1zdGF0aWMgZ2V0KGcpe3JldHVybiBnJiZydi5rZXlzW2ddfHx7fX1zdGF0aWMgcmVzZXQoKXtKMS5zdGF0ZS5pMThuUmVnaXN0cnk9UDcoe30saEwpfXN0YXRpYyBoeWRyYXRlKGcsaCl7cmV0dXJuIEpTT04ucGFyc2UoZnVuY3Rpb24gaVgo''@;'; put 'put ''ZCxnLGgpe3JldHVybiBkLnJlcGxhY2UoL1wkXHsuKz9cfS9nLHY9PmZ1bmN0aW9uIHZ2ZShkLGcsaD1gXCR7JHtkfX1gKXtyZXR1cm4gZC5zcGxpdCgiLiIpLnJlZHVjZSgodix5KT0+e3RyeXtjb25zdCBDPXZbeV07c3dpdGNoKCEwKXtjYXNlIG51bGw9PT1DOmNhc2UhMT09PUM6Y2FzZSIi''@;'; put 'put ''PT09QzpjYXNlIDA9PT1DOnJldHVybiBDO2RlZmF1bHQ6cmV0dXJuIEN8fGh9fWNhdGNoKEMpe3JldHVybiBofX0sZyl9KHYuc3Vic3RyKDIsdi5sZW5ndGgtMykudHJpbSgpLGcsaCkpfShKU09OLnN0cmluZ2lmeShnKSxoKSl9c3RhdGljIGxvY2FsaXplKGcpe0oxLnN0YXRlLmkxOG5SZWdp''@;'; put 'put ''c3RyeT1QNyhoTCxKMS5zdGF0ZS5pMThuUmVnaXN0cnksZyl9fXZhciBKMWU9aUxgOmhvc3R7LS1pY29uLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtNywgY2FsYygxNiAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0taWNvbi1oZWlnaHQ6dmFyKC0tY2RzLWds''@;'; put 'put ''b2JhbC1zcGFjZS03LCBjYWxjKDE2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS13aWR0aDp2YXIoLS1pY29uLXdpZHRoKTstLWhlaWdodDp2YXIoLS1pY29uLXdpZHRoKTstLWN1cnNvcjpwb2ludGVyOy0tY29sb3I6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5''@;'; put 'put ''LWNvbG9yLTMwMCwgdmFyKC0tY2RzLWdsb2JhbC1jb2xvci1jb25zdHJ1Y3Rpb24tODAwLCAjMmQ0MDQ4KSk7LS1mb250LXNpemU6dmFyKC0tY2RzLWdsb2JhbC10eXBvZ3JhcGh5LWZvbnQtc2l6ZS0zLCBjYWxjKDEzICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSk7LS1i''@;'; put 'put ''YWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy0tcGFkZGluZzowOy0tb3V0bGluZTp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLW91dGxpbmUsIEhpZ2hsaWdodCBzb2xpZCAycHgpOy0tb3V0bGluZS1vZmZzZXQ6Y2FsYyh2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9u''@;'; put 'put ''LW91dGxpbmUtb2Zmc2V0LCAxcHgpICogLTEpO3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7b3V0bGluZTowIWltcG9ydGFudH06aG9zdChbcm9sZT1idXR0b25dKXtwb2ludGVyLWV2ZW50czppbml0aWFsO2N1cnNvcjp2YXIoLS1jdXJzb3IpIWltcG9ydGFudH06''@;'; put 'put ''aG9zdChbc3RhdHVzPWFjdGl2ZV0pey0tY29sb3I6dmFyKC0tY2RzLWFsaWFzLXN0YXR1cy1pbmZvLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWJsdWUtNzAwLCAjMDA3OWFkKSl9OjpzbG90dGVkKFtzaGFwZT1jbG9zZV0pLDo6c2xvdHRlZChbc2hhcGU9aW5mby1jaXJjbGVdKSw6OnNsb3R0''@;'; put 'put ''ZWQoW3NoYXBlPXRpbWVzXSksOmhvc3QoW3NoYXBlPWNsb3NlXSksOmhvc3QoW3NoYXBlPWluZm8tY2lyY2xlXSl7LS1pY29uLXdpZHRoOnZhcigtLWNkcy1nbG9iYWwtc3BhY2UtOCwgY2FsYygxOCAqIDFyZW0gLyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsIDIwKSkpOy0taWNvbi1oZWlnaHQ6''@;'; put 'put ''dmFyKC0tY2RzLWdsb2JhbC1zcGFjZS04LCBjYWxjKDE4ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwgMjApKSl9Omhvc3QoOmhvdmVyKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItaG92ZXIsIHZhcigtLWNkcy1nbG9iYWwtY29sb3It''@;'; put 'put ''Y29uc3RydWN0aW9uLTEwMDAsICMxYjJiMzIpKX06aG9zdCg6YWN0aXZlKXstLWNvbG9yOnZhcigtLWNkcy1hbGlhcy1vYmplY3QtaW50ZXJhY3Rpb24tY29sb3ItYWN0aXZlLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0xMDAwLCAjMWIyYjMyKSl9Omhvc3QoOmFjdGl2''@;'; put 'put ''ZSkgLnByaXZhdGUtaG9zdHt0cmFuc2Zvcm06dHJhbnNsYXRlWShjYWxjKHZhcigtLWNkcy1nbG9iYWwtc3BhY2UtMSxjYWxjKDEgKiAxcmVtIC8gdmFyKC0tY2RzLWdsb2JhbC1iYXNlLDIwKSkpLyAyKSl9Omhvc3QoW2Rpc2FibGVkXSl7LS1jb2xvcjp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0''@;'; put 'put ''LWludGVyYWN0aW9uLWNvbG9yLWRpc2FibGVkLCB2YXIoLS1jZHMtZ2xvYmFsLWNvbG9yLWNvbnN0cnVjdGlvbi0zMDAsICNhZWI4YmMpKX0ucHJpdmF0ZS1ob3N0ey0taWNvbi1jb2xvcjp2YXIoLS1jb2xvcik7YmFja2dyb3VuZDp2YXIoLS1iYWNrZ3JvdW5kKTtwYWRkaW5nOnZhcigtLXBh''@;'; put 'put ''ZGRpbmcpO2NvbG9yOnZhcigtLWNvbG9yKTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplKTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLXdpZHRoOnZhcigtLXdpZHRoKTttaW4taGVpZ2h0OnZhcigtLWhlaWdodCl9OjpzbG90dGVk''@;'; put 'put ''KGNkcy1pY29uKSxjZHMtaWNvbnt3aWR0aDp2YXIoLS1pY29uLXdpZHRoKTtoZWlnaHQ6dmFyKC0taWNvbi1oZWlnaHQpO3BvaW50ZXItZXZlbnRzOm5vbmV9OjpzbG90dGVkKGNkcy1pY29uOm5vdChbc3RhdHVzXSkpLGNkcy1pY29uey0tY29sb3I6dmFyKC0taWNvbi1jb2xvcil9Omhvc3Qo''@;'; put 'put ''W2Rpc2FibGVkXTphY3RpdmUpe3BvaW50ZXItZXZlbnRzOm5vbmUhaW1wb3J0YW50fS5wcml2YXRlLWhvc3Q6OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDpjYWxjKC0xKnZhcigtLXdpZHRoKSAtIDEpO3RvcDpjYWxjKC0xKnZhcigtLWhlaWdodCkgLSAxKTt3aWR0''@;'; put 'put ''aDp2YXIoLS1jZHMtYWxpYXMtb2JqZWN0LWludGVyYWN0aW9uLXRvdWNoLXRhcmdldCxjYWxjKDM2ICogMXJlbSAvIHZhcigtLWNkcy1nbG9iYWwtYmFzZSwyMCkpKTtoZWlnaHQ6dmFyKC0tY2RzLWFsaWFzLW9iamVjdC1pbnRlcmFjdGlvbi10b3VjaC10YXJnZXQsY2FsYygzNiAqIDFyZW0g''@;'; put 'put ''LyB2YXIoLS1jZHMtZ2xvYmFsLWJhc2UsMjApKSl9Omhvc3QoW2Rpc2FibGVkXSkgLnByaXZhdGUtaG9zdDo6YWZ0ZXJ7b3V0bGluZTowIWltcG9ydGFudH06aG9zdCg6Zm9jdXMpIC5wcml2YXRlLWhvc3Q6OmFmdGVye291dGxpbmU6dmFyKC0tb3V0bGluZSk7b3V0bGluZS1vZmZzZXQ6dmFy''@;'; put 'put ''KC0tb3V0bGluZS1vZmZzZXQpfUBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOjApezpob3N0KDpmb2N1cykgLnByaXZhdGUtaG9zdDo6YWZ0ZXJ7b3V0bGluZS1jb2xvcjotd2Via2l0LWZvY3VzLXJpbmctY29sb3J9fWA7Y2xhc3MgbWcgZXh0ZW5kcyBuZHtjb25zdHJ1''@;'; put 'put ''Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5pMThuPXJ2LmtleXMuYWN0aW9ucyx0aGlzLmNkc0J1dHRvbkFjdGlvbj0hMH1yZW5kZXIoKXtyZXR1cm4gbzRgPGRpdiBjbGFzcz0icHJpdmF0ZS1ob3N0Ij48c2xvdD48Y2RzLWljb24gLnNoYXBlPSIke3RoaXMuc2hhcGU/dGhpcy5z''@;'; put 'put ''aGFwZToiZWxsaXBzaXMtdmVydGljYWwifSIgLnNpemU9IiR7dGhpcy5pY29uU2l6ZX0iID9zb2xpZD0iJHt0aGlzLnByZXNzZWR8fHRoaXMuZXhwYW5kZWR9IiBpbm5lci1vZmZzZXQ9IiR7MX0iPjwvY2RzLWljb24+PC9zbG90PjwvZGl2PmB9dXBkYXRlZChnKXtzdXBlci51cGRhdGVkKGcp''@;'; put 'put ''LHRoaXMuYXJpYUxhYmVsfHx0aGlzLnJlYWRvbmx5fHxONy53YXJuKCJBIGFyaWEtbGFiZWwgaXMgcmVxdWlyZWQgZm9yIGludGVyYWN0aXZlIGNkcy1idXR0b24tYWN0aW9uIHR5cGUiLHRoaXMpLGcuaGFzKCJyZWFkb25seSIpJiYodGhpcy5hcmlhSGlkZGVuPXRoaXMucmVhZG9ubHkmJiF0''@;'; put 'put ''aGlzLmhhc0F0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpPyJ0cnVlIjpudWxsKX19bWcuc3R5bGVzPVtISyxKMWVdLFYyKFtFMSh7dHlwZTpTdHJpbmd9KV0sbWcucHJvdG90eXBlLCJzaGFwZSIsdm9pZCAwKSxWMihbRTEoe3R5cGU6U3RyaW5nLHJlZmxlY3Q6ITB9KV0sbWcucHJvdG90eXBlLCJh''@;'; put 'put ''Y3Rpb24iLHZvaWQgMCksVjIoW0UxKHt0eXBlOlN0cmluZ30pXSxtZy5wcm90b3R5cGUsImljb25TaXplIix2b2lkIDApLFYyKFtmdW5jdGlvbiBVMWUoKXtyZXR1cm4oZCxnKT0+e2NvbnN0IGg9ZC5jb25uZWN0ZWRDYWxsYmFjayx2PWQuZGlzY29ubmVjdGVkQ2FsbGJhY2s7ZC5jb25uZWN0''@;'; put 'put ''ZWRDYWxsYmFjaz1mdW5jdGlvbigpe2QuX19pMThuU3ViPUoxLnN0YXRlVXBkYXRlcy5zdWJzY3JpYmUoQz0+eyJpMThuUmVnaXN0cnkiPT09Qy5rZXkmJnRoaXMucmVxdWVzdFVwZGF0ZShnKX0pLGgmJmguYXBwbHkodGhpcyl9LGQuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXtk''@;'; put 'put ''Ll9faTE4blN1Yi51bnN1YnNjcmliZSgpLHYmJnYuYXBwbHkodGhpcyl9O2NvbnN0IHk9e2dldCgpe2NvbnN0IEM9UDcocnYua2V5c1t0aGlzLl9faTE4bktleV0sdGhpcy5fX2kxOG58fHt9KTtyZXR1cm4gcnYuaHlkcmF0ZShDLHRoaXMpfSxzZXQoQyl7Y29uc3QgST1mdW5jdGlvbiBDaihk''@;'; put 'put ''LGcpe2lmKCQ2KGQpKXtsZXQgaD17fTtpZihnLmhhc0F0dHJpYnV0ZSgiY2RzLWkxOG4iKSl7Y29uc3Qgdj1nLmdldEF0dHJpYnV0ZSgiY2RzLWkxOG4iKSsiIjtpZigkNih2KSloPXt9O2Vsc2UgdHJ5e2g9SlNPTi5wYXJzZSh2KX1jYXRjaCh5KXtONy53YXJuKCJDbGFyaXR5IGkxOG46IElu''@;'; put 'put ''dmFsaWQgSlNPTiBwYXNzZWQgdG8gY2RzLWkxOG4iKSxoPXt9fX1yZXR1cm4gaH1yZXR1cm4gZH0oQyx0aGlzKSxaPWZ1bmN0aW9uIFExZShkLGcsaCx2KXtyZXR1cm4gJDYoZCk/VUooaCx2KT97dXBkYXRlOiExfTp7dXBkYXRlOiEwLHZhbHVlczpofTpkPT09Zz97dXBkYXRlOiExLHZhbHVl''@;'; put 'put ''czp7fX06e3VwZGF0ZTohMCxrZXk6ZCx2YWx1ZXM6e319fShydi5maW5kS2V5KEkpfHwiIix0aGlzLl9faTE4bktleSxJLHRoaXMuX19pMThuKTt2b2lkIDAhPT1aLmtleSYmKHRoaXMuX19pMThuS2V5PVoua2V5KyIiKSx2b2lkIDAhPT1aLnZhbHVlcyYmKHRoaXMuX19pMThuPW1zKHt9LFou''@;'; put 'put ''dmFsdWVzKSksITA9PT1aLnVwZGF0ZSYmdGhpcy5yZXF1ZXN0VXBkYXRlKCksdGhpcy5yZXF1ZXN0VXBkYXRlKGcpfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH07cmV0dXJuIHZvaWQgMCE9PWc/ZnVuY3Rpb24oQyxJLFope2NvbnN0IHVlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShJ''@;'; put 'put ''LFosQyk7cmV0dXJuIEUxKHt0eXBlOk9iamVjdCxhdHRyaWJ1dGU6ImNkcy1pMThuIn0pKHVlLFopfSh5LGQsZyk6ZnVuY3Rpb24oQyxJKXtjb25zdCBaPXtraW5kOiJtZXRob2QiLHBsYWNlbWVudDoicHJvdG90eXBlIixrZXk6SS5rZXksZGVzY3JpcHRvcjpDfTtyZXR1cm4gRTEoe3R5cGU6''@;'; put 'put ''T2JqZWN0fSkoWil9KHksZCl9fSgpXSxtZy5wcm90b3R5cGUsImkxOG4iLHZvaWQgMCksVjIoW2pLKHt0eXBlOkJvb2xlYW4scmVmbGVjdDohMCxhdHRyaWJ1dGU6ImNkcy1idXR0b24tYWN0aW9uIn0pXSxtZy5wcm90b3R5cGUsImNkc0J1dHRvbkFjdGlvbiIsdm9pZCAwKTtjbGFzcyBzOCBl''@;'; put 'put ''eHRlbmRzIG1ne2NvbnN0cnVjdG9yKCl7c3VwZXIoLi4uYXJndW1lbnRzKSx0aGlzLnNoYXBlPSJjbG9zZSJ9Y29ubmVjdGVkQ2FsbGJhY2soKXtzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpLHRoaXMuYXJpYUxhYmVsPXRoaXMuYXJpYUxhYmVsP3RoaXMuYXJpYUxhYmVsOnRoaXMuaTE4bi5j''@;'; put 'put ''bG9zZX19VjIoW0UxKHt0eXBlOlN0cmluZ30pXSxzOC5wcm90b3R5cGUsInNoYXBlIix2b2lkIDApLENLKCJjZHMtaW50ZXJuYWwtY2xvc2UtYnV0dG9uIixzOCksaHMuYWRkSWNvbnMocFgpLGhzLmFkZEFsaWFzZXMoWyJ0aW1lcyIsWyJjbG9zZSJdXSk7Y29uc3QgbmE9WyIqIl07ZnVuY3Rp''@;'; put 'put ''b24gWDFlKGQsZyl7aWYoMSZkJiYoQjAoMCksWXQoMSksUDAoKSksMiZkKXtjb25zdCBoPVF0KDMpO3V0KDEpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLmRhbmdlcil9fWZ1bmN0aW9uIEsxZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMTQpLHJuKDEsWDFlLDIsMSwibmctY29udGFpbmVy''@;'; put 'put ''IiwwKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKS4kaW1wbGljaXQsdj1RdCgpO3V0KDEpLFR0KCJuZ0lmIixoLnN0YXR1cz09PXYuQWNjb3JkaW9uU3RhdHVzLkVycm9yKX19ZnVuY3Rpb24gJDFlKGQsZyl7aWYoMSZkJiYoQjAoMCksWXQoMSksUDAoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0''@;'; put 'put ''KDEpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLmRhbmdlcil9fWZ1bmN0aW9uIHExZShkLGcpe2lmKDEmZCYmKEIwKDApLFl0KDEpLFAwKCkpLDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxqaShoLmNvbW1vblN0cmluZ3Mua2V5cy5zdWNjZXNzKX19ZnVuY3Rpb24gZXVlKGQsZyl7aWYoMSZk''@;'; put 'put ''KXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2IiwxNSksR24oIkB0b2dnbGUuZG9uZSIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCkuJGltcGxpY2l0O3JldHVybiBhKFF0KCkuY29sbGFwc2VQYW5lbE9uQW5pbWF0aW9uRG9uZSh5KSl9KSxudCgxLCJkaXYiLDE2KSxOaSgyLDIpLG90KCko''@;'; put 'put ''KX0yJmQmJlR0KCJAdG9nZ2xlIix2b2lkIDApfWZ1bmN0aW9uIHR1ZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLHJuKDEsSzFlLDIsMSwiZGl2IiwxKSxudCgyLCJkaXYiLDIpKDMsImRpdiIsMykoNCwiYnV0dG9uIiw0LDUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''aXQoaCksYShRdCgpLnRvZ2dsZVBhbmVsKCkpfSksbm4oNiwiYXN5bmMiKSxudCg3LCJzcGFuIiw2KSxybig4LCQxZSwyLDEsIm5nLWNvbnRhaW5lciIsMCkscm4oOSxxMWUsMiwxLCJuZy1jb250YWluZXIiLDApLG90KCksbnQoMTAsInNwYW4iLDcpLENyKDExLCJjZHMtaWNvbiIsOCkoMTIs''@;'; put 'put ''InNwYW4iLDkpKDEzLCJjZHMtaWNvbiIsMTApKDE0LCJjZHMtaWNvbiIsMTEpLG90KCksTmkoMTUpLE5pKDE2LDEpLG90KCkoKSxudCgxNywiZGl2IiwxMikscm4oMTgsZXVlLDMsMSwiZGl2IiwxMyksb3QoKSgpLFAwKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9UXQoKTtsZXQg''@;'; put 'put ''eTt1dCgxKSxUdCgibmdJZiIsaC5zdGF0dXMhPT12LkFjY29yZGlvblN0YXR1cy5JbmFjdGl2ZSksdXQoMSksVHQoIm5nQ2xhc3MiLHYuZ2V0UGFuZWxTdGF0ZUNsYXNzZXMoaCkpLHV0KDIpLEZpKCJjbHItYWNjb3JkaW9uLWhlYWRlci1oYXMtZGVzY3JpcHRpb24iLChudWxsPT0oeT16dCg2''@;'; put 'put ''LDE2LHYuYWNjb3JkaW9uRGVzY3JpcHRpb24uY2hhbmdlcykpP251bGw6eS5sZW5ndGgpfHx2LmFjY29yZGlvbkRlc2NyaXB0aW9uLmxlbmd0aCksVHQoImlkIix2LmdldEFjY29yZGlvbkhlYWRlcklkKGgudGVtcGxhdGVJZCkpKCJkaXNhYmxlZCIsdi5pc0FjY29yZGlvbiYmaC5kaXNhYmxl''@;'; put 'put ''ZCksR2koImFyaWEtZGlzYWJsZWQiLCF2LmlzQWNjb3JkaW9uJiZoLmRpc2FibGVkKSgiYXJpYS1jb250cm9scyIsdi5nZXRBY2NvcmRpb25Db250ZW50SWQoaC50ZW1wbGF0ZUlkKSkoImFyaWEtZXhwYW5kZWQiLGgub3BlbiksdXQoNCksVHQoIm5nSWYiLGguc3RhdHVzPT09di5BY2NvcmRp''@;'; put 'put ''b25TdGF0dXMuRXJyb3IpLHV0KDEpLFR0KCJuZ0lmIixoLnN0YXR1cz09PXYuQWNjb3JkaW9uU3RhdHVzLkNvbXBsZXRlKSx1dCg4KSxUdCgiQHNraXBJbml0aWFsUmVuZGVyIix2b2lkIDApKCJpZCIsdi5nZXRBY2NvcmRpb25Db250ZW50SWQoaC50ZW1wbGF0ZUlkKSksR2koImFyaWEtaGlk''@;'; put 'put ''ZGVuIiwhaC5vcGVuKSgiYXJpYS1sYWJlbGxlZGJ5Iix2LmdldEFjY29yZGlvbkhlYWRlcklkKGgudGVtcGxhdGVJZCkpLHV0KDEpLFR0KCJuZ0lmIixoLm9wZW4pfX1jb25zdCAkSz1bW1siY2xyLWFjY29yZGlvbi10aXRsZSJdLFsiY2xyLXN0ZXAtdGl0bGUiXV0sW1siY2xyLWFjY29yZGlv''@;'; put 'put ''bi1kZXNjcmlwdGlvbiJdLFsiY2xyLXN0ZXAtZGVzY3JpcHRpb24iXV0sIioiXSxxSz1bImNsci1hY2NvcmRpb24tdGl0bGUsIGNsci1zdGVwLXRpdGxlIiwiY2xyLWFjY29yZGlvbi1kZXNjcmlwdGlvbiwgY2xyLXN0ZXAtZGVzY3JpcHRpb24iLCIqIl0seXVlPVsiY2xyTG9hZGluZyIsIiJd''@;'; put 'put ''O2Z1bmN0aW9uIHd1ZShkLGcpezEmZCYmKG50KDAsInNwYW4iKSxDcigxLCJzcGFuIiwyKSxvdCgpKSwyJmQmJih1dCgxKSxUdCgiQHNwaW5uZXIiLHZvaWQgMCkpfWZ1bmN0aW9uIGJ1ZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsInNwYW4iKSgxLCJzcGFuIiwzKSxHbigiQHZh''@;'; put 'put ''bGlkYXRlZC5kb25lIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKTtyZXR1cm4gYSh5LmxvYWRpbmdTdGF0ZUNoYW5nZSh5LmJ1dHRvblN0YXRlLkRFRkFVTFQpKX0pLG90KCkoKX0yJmQmJih1dCgxKSxUdCgiQHZhbGlkYXRlZCIsdm9pZCAwKSl9ZnVuY3Rpb24gX3VlKGQsZyl7MSZk''@;'; put 'put ''JiYobnQoMCwic3BhbiIpLE5pKDEpLG90KCkpLDImZCYmVHQoIkBkZWZhdWx0QnV0dG9uIix2b2lkIDApfWZ1bmN0aW9uIEN1ZShkLGcpezEmZCYmQ3IoMCwibGFiZWwiKX1jb25zdCBrdWU9W1tbIiIsImNsckNoZWNrYm94IiwiIl0sWyIiLCJjbHJUb2dnbGUiLCIiXV0sW1sibGFiZWwiXV1d''@;'; put 'put ''LFN1ZT1bIltjbHJDaGVja2JveF0sW2NsclRvZ2dsZV0iLCJsYWJlbCJdO2Z1bmN0aW9uIE11ZShkLGcpezEmZCYmQ3IoMCwibGFiZWwiKX1mdW5jdGlvbiBFdWUoZCxnKXsxJmQmJk5pKDAsMixbIipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiB4dWUoZCxnKXsxJmQmJkNyKDAsImNk''@;'; put 'put ''cy1pY29uIiw1KX1mdW5jdGlvbiBUdWUoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw2KX1mdW5jdGlvbiBJdWUoZCxnKXsxJmQmJk5pKDAsMyxbIipuZ0lmIiwic2hvd0ludmFsaWQiXSl9ZnVuY3Rpb24gRHVlKGQsZyl7MSZkJiZOaSgwLDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25z''@;'; put 'put ''dCBMdWU9W1tbImxhYmVsIl1dLFtbImNsci1jaGVja2JveC13cmFwcGVyIl0sWyJjbHItdG9nZ2xlLXdyYXBwZXIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1jb250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLE91ZT1bImxhYmVsIiwiY2xyLWNo''@;'; put 'put ''ZWNrYm94LXdyYXBwZXIsY2xyLXRvZ2dsZS13cmFwcGVyIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl0sUnVlPVsiY2xyS2V5Rm9jdXMiLCIiXTtmdW5jdGlvbiB0cyhkLGcpezEmZCYmQ3IoMCwibGFiZWwiKX1mdW5jdGlv''@;'; put 'put ''biB0JChkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDUpfWZ1bmN0aW9uIEh1ZShkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDYpfWZ1bmN0aW9uIG4kKGQsZyl7MSZkJiZOaSgwLDIsWyIqbmdJZiIsInNob3dIZWxwZXIiXSl9ZnVuY3Rpb24gciQoZCxnKXsxJmQmJk5pKDAsMyxbIipuZ0lm''@;'; put 'put ''Iiwic2hvd0ludmFsaWQiXSl9ZnVuY3Rpb24gQ0FlKGQsZyl7MSZkJiZOaSgwLDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCBOdWU9W1tbImxhYmVsIl1dLFtbIiIsImNscklucHV0IiwiIl1dLFtbImNsci1jb250cm9sLWhlbHBlciJdXSxbWyJjbHItY29udHJvbC1lcnJvciJdXSxb''@;'; put 'put ''WyJjbHItY29udHJvbC1zdWNjZXNzIl1dXSxwTD1bImxhYmVsIiwiW2NscklucHV0XSIsImNsci1jb250cm9sLWhlbHBlciIsImNsci1jb250cm9sLWVycm9yIiwiY2xyLWNvbnRyb2wtc3VjY2VzcyJdO2Z1bmN0aW9uICRrKGQsZyl7aWYoMSZkJiYobnQoMCwidGgiLDQpLFl0KDEpLG90KCkp''@;'; put 'put ''LDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtHaSgiYXJpYS1sYWJlbCIsaC5kYXkpLHV0KDEpLEppKCIgIixoLm5hcnJvdywiICIpfX1mdW5jdGlvbiBWdWUoZCxnKXtpZigxJmQmJihudCgwLCJ0ZCIsNyksQ3IoMSwiY2xyLWRheSIsOCksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0''@;'; put 'put ''O3V0KDEpLFR0KCJjbHJEYXlWaWV3IixoKX19ZnVuY3Rpb24gcWsoZCxnKXtpZigxJmQmJihudCgwLCJ0ciIsNSkscm4oMSxWdWUsMiwxLCJ0ZCIsNiksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0Zvck9mIixoKX19ZnVuY3Rpb24gaSQoZCxnKXtpZigxJmQp''@;'; put 'put ''e2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBDPWl0KGgpLmluZGV4O3JldHVybiBhKFF0KCkuY2hhbmdlTW9udGgoQykpfSksWXQoMSksb3QoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmluZGV4LHk9UXQoKTtGaSgi''@;'; put 'put ''aXMtc2VsZWN0ZWQiLHY9PT15LmNhbGVuZGFyTW9udGhJbmRleCksR2koInRhYmluZGV4Iix5LmdldFRhYkluZGV4KHYpKSx1dCgxKSxKaSgiICIsaCwiICIpfX1mdW5jdGlvbiBvJChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImJ1dHRvbiIsNyksR24oImNsaWNrIixmdW5jdGlv''@;'; put 'put ''bigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0O3JldHVybiBhKFF0KCkuY2hhbmdlWWVhcihDKSl9KSxZdCgxKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PVF0KCk7RmkoImlzLXNlbGVjdGVkIixoPT09di5jYWxlbmRhclllYXIpLEdpKCJ0YWJpbmRleCIsdi5nZXRUYWJJ''@;'; put 'put ''bmRleChoKSksdXQoMSksSmkoIiAiLGgsIiAiKX19ZnVuY3Rpb24gYSQoZCxnKXsxJmQmJkNyKDAsImNsci1tb250aHBpY2tlciIpfWZ1bmN0aW9uIGwkKGQsZyl7MSZkJiZDcigwLCJjbHIteWVhcnBpY2tlciIpfWZ1bmN0aW9uIGp1ZShkLGcpezEmZCYmQ3IoMCwiY2xyLWRheXBpY2tlciIp''@;'; put 'put ''fWNvbnN0IFp1ZT1bImFjdGlvbkJ1dHRvbiJdO2Z1bmN0aW9uIHp1ZShkLGcpezEmZCYmQ3IoMCwibGFiZWwiKX1mdW5jdGlvbiB2ZyhkLGcpezEmZCYmKG50KDAsImJ1dHRvbiIsOCw5KSxDcigyLCJjZHMtaWNvbiIsMTApLG90KCkpLDImZCYmVHQoImRpc2FibGVkIixRdCgpLmlzSW5wdXRE''@;'; put 'put ''YXRlRGlzYWJsZWQpfWZ1bmN0aW9uIFNqKGQsZyl7MSZkJiZDcigwLCJjbHItZGF0ZXBpY2tlci12aWV3LW1hbmFnZXIiLDExKX1mdW5jdGlvbiBHdWUoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiwxMil9ZnVuY3Rpb24gcyQoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiwxMyl9ZnVuY3Rp''@;'; put 'put ''b24gdSQoZCxnKXsxJmQmJk5pKDAsMixbIipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiBjJChkLGcpezEmZCYmTmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiBXdWUoZCxnKXsxJmQmJk5pKDAsNCxbIipuZ0lmIiwic2hvd1ZhbGlkIl0pfWNvbnN0IFl1ZT1b''@;'; put 'put ''W1sibGFiZWwiXV0sW1siIiwiY2xyRGF0ZSIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xyLWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sJHk9WyJsYWJlbCIsIltjbHJEYXRlXSIsImNsci1jb250cm9sLWhlbHBlciIsImNsci1jb250cm9s''@;'; put 'put ''LWVycm9yIiwiY2xyLWNvbnRyb2wtc3VjY2VzcyJdO2Z1bmN0aW9uIGYkKGQsZyl7MSZkJiZDcigwLCJsYWJlbCIpfWNvbnN0IGNoPVtbWyIiLCJjbHJSYWRpbyIsIiJdXSxbWyJsYWJlbCJdXV0saCQ9WyJbY2xyUmFkaW9dIiwibGFiZWwiXTtmdW5jdGlvbiBJbChkLGcpezEmZCYmQ3IoMCwi''@;'; put 'put ''bGFiZWwiKX1mdW5jdGlvbiBtTChkLGcpezEmZCYmTmkoMCwyLFsiKm5nSWYiLCJzaG93SGVscGVyIl0pfWZ1bmN0aW9uIGQkKGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gcCQoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw2KX1mdW5jdGlvbiBpdihkLGcpezEmZCYm''@;'; put 'put ''TmkoMCwzLFsiKm5nSWYiLCJzaG93SW52YWxpZCJdKX1mdW5jdGlvbiB2TChkLGcpezEmZCYmTmkoMCw0LFsiKm5nSWYiLCJzaG93VmFsaWQiXSl9Y29uc3QgeTA9W1tbImxhYmVsIl1dLFtbImNsci1yYWRpby13cmFwcGVyIl1dLFtbImNsci1jb250cm9sLWhlbHBlciJdXSxbWyJjbHItY29u''@;'; put 'put ''dHJvbC1lcnJvciJdXSxbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dXSxDcD1bImxhYmVsIiwiY2xyLXJhZGlvLXdyYXBwZXIiLCJjbHItY29udHJvbC1oZWxwZXIiLCJjbHItY29udHJvbC1lcnJvciIsImNsci1jb250cm9sLXN1Y2Nlc3MiXTtmdW5jdGlvbiAkdWUoZCxnKXsxJmQmJkNyKDAs''@;'; put 'put ''ImxhYmVsIil9ZnVuY3Rpb24gcXVlKGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gZWNlKGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsNil9ZnVuY3Rpb24gdGNlKGQsZyl7MSZkJiZOaSgwLDIsWyIqbmdJZiIsInNob3dIZWxwZXIiXSl9ZnVuY3Rpb24gcmQoZCxnKXsx''@;'; put 'put ''JmQmJk5pKDAsMyxbIipuZ0lmIiwic2hvd0ludmFsaWQiXSl9ZnVuY3Rpb24gbmNlKGQsZyl7MSZkJiZOaSgwLDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCByY2U9W1tbImxhYmVsIl1dLFtbIiIsImNsclNlbGVjdCIsIiJdXSxbWyJjbHItY29udHJvbC1oZWxwZXIiXV0sW1siY2xy''@;'; put 'put ''LWNvbnRyb2wtZXJyb3IiXV0sW1siY2xyLWNvbnRyb2wtc3VjY2VzcyJdXV0sbSQ9WyJsYWJlbCIsIltjbHJTZWxlY3RdIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl07ZnVuY3Rpb24gaWNlKGQsZyl7MSZkJiZDcigwLCJs''@;'; put 'put ''YWJlbCIpfWZ1bmN0aW9uIHU4KGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsNSl9ZnVuY3Rpb24gYnMoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw2KX1mdW5jdGlvbiBvY2UoZCxnKXsxJmQmJk5pKDAsMixbIipuZ0lmIiwic2hvd0hlbHBlciJdKX1mdW5jdGlvbiBhY2UoZCxnKXsxJmQm''@;'; put 'put ''Jk5pKDAsMyxbIipuZ0lmIiwic2hvd0ludmFsaWQiXSl9ZnVuY3Rpb24gbGNlKGQsZyl7MSZkJiZOaSgwLDQsWyIqbmdJZiIsInNob3dWYWxpZCJdKX1jb25zdCBNaj1bW1sibGFiZWwiXV0sW1siIiwiY2xyVGV4dGFyZWEiLCIiXV0sW1siY2xyLWNvbnRyb2wtaGVscGVyIl1dLFtbImNsci1j''@;'; put 'put ''b250cm9sLWVycm9yIl1dLFtbImNsci1jb250cm9sLXN1Y2Nlc3MiXV1dLEVqPVsibGFiZWwiLCJbY2xyVGV4dGFyZWFdIiwiY2xyLWNvbnRyb2wtaGVscGVyIiwiY2xyLWNvbnRyb2wtZXJyb3IiLCJjbHItY29udHJvbC1zdWNjZXNzIl0sc2NlPVsiYW5jaG9yIl07ZnVuY3Rpb24gQWcoZCxn''@;'; put 'put ''KXtpZigxJmQmJihudCgwLCJkaXYiLDQpKDEsImRpdiIsNSkoMiwiYnV0dG9uIiw2KSxDcigzLCJjZHMtaWNvbiIsNyksb3QoKSgpLE5pKDQpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpO1R0KCJpZCIsaC5wb3BvdmVySWQpLEdpKCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy5k''@;'; put 'put ''YXRhZ3JpZEZpbHRlckRpYWxvZ0FyaWFMYWJlbCksdXQoMyksR2koInRpdGxlIixoLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSl9fWNvbnN0IHVjZT1bImlucHV0X2xvdyJdLEFMPVsiaW5wdXQiXSx5TD1bImNvbHVtblBvcnRhbCJdO2Z1bmN0aW9uIHhqKGQsZyl7MSZkJiZOaSgwKX1jb25z''@;'; put 'put ''dCBSZj1bInJlc2l6ZVRyYWNrZXIiXSxlMz1bImNvbHVtbkhhbmRsZSJdO2Z1bmN0aW9uIFZ1KGQsZyl7MSZkJiZmMSgwKX1mdW5jdGlvbiB2JChkLGcpezEmZCYmQ3IoMCwiY2RzLWljb24iLDEwKSwyJmQmJkdpKCJkaXJlY3Rpb24iLFF0KDIpLnNvcnREaXJlY3Rpb24pfWZ1bmN0aW9uIEEk''@;'; put 'put ''KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiw3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5zb3J0KCkpfSkscm4oMSxWdSwxLDAsIm5nLWNvbnRhaW5lciIsOCkscm4oMix2JCwxLDEsImNkcy1pY29uIiw5KSxvdCgpfWlmKDImZCl7''@;'; put 'put ''Y29uc3QgaD1RdCgpLHY9dmEoNik7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLHYpLHV0KDEpLFR0KCJuZ0lmIixoLnNvcnREaXJlY3Rpb24pfX1mdW5jdGlvbiBjY2UoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItZGctc3RyaW5nLWZpbHRlciIsMTEpLEduKCJjbHJG''@;'; put 'put ''aWx0ZXJWYWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS5maWx0ZXJWYWx1ZT15KX0pLG90KCl9aWYoMiZkKXtjb25zdCBoPVF0KCk7VHQoImNsckZpbHRlclBsYWNlaG9sZGVyIixoLmZpbHRlclN0cmluZ1BsYWNlaG9sZGVyVmFsdWUpKCJjbHJEZ1N0cmluZ0Zp''@;'; put 'put ''bHRlciIsaC5yZWdpc3RlcmVkKSgiY2xyRmlsdGVyVmFsdWUiLGguZmlsdGVyVmFsdWUpfX1mdW5jdGlvbiBmY2UoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItZGctbnVtZXJpYy1maWx0ZXIiLDEyKSxHbigiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3Jl''@;'; put 'put ''dHVybiBpdChoKSxhKFF0KCkuZmlsdGVyVmFsdWU9eSl9KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO1R0KCJjbHJGaWx0ZXJNYXhQbGFjZWhvbGRlciIsaC5maWx0ZXJNYXhQbGFjZWhvbGRlclZhbHVlKSgiY2xyRmlsdGVyTWluUGxhY2Vob2xkZXIiLGguZmlsdGVyTWluUGxhY2Vob2xk''@;'; put 'put ''ZXJWYWx1ZSkoImNsckRnTnVtZXJpY0ZpbHRlciIsaC5yZWdpc3RlcmVkKSgiY2xyRmlsdGVyVmFsdWUiLGguZmlsdGVyVmFsdWUpfX1mdW5jdGlvbiBxeShkLGcpezEmZCYmTmkoMCwxKX1mdW5jdGlvbiBjYyhkLGcpezEmZCYmZjEoMCl9ZnVuY3Rpb24gaGNlKGQsZyl7aWYoMSZkJiYobnQo''@;'; put 'put ''MCwic3BhbiIsMTMpLHJuKDEsY2MsMSwwLCJuZy1jb250YWluZXIiLDgpLG90KCkpLDImZCl7UXQoKTtjb25zdCBoPXZhKDYpO3V0KDEpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoKX19ZnVuY3Rpb24geSQoZCxnKXsxJmQmJkNyKDAsImNsci1kZy1jb2x1bW4tc2VwYXJhdG9yIil9Y29uc3Qg''@;'; put 'put ''VGo9W1tbImNsci1kZy1maWx0ZXIiXSxbImNsci1kZy1zdHJpbmctZmlsdGVyIl0sWyJjbHItZGctbnVtZXJpYy1maWx0ZXIiXV0sIioiXSx3JD1bImNsci1kZy1maWx0ZXIsIGNsci1kZy1zdHJpbmctZmlsdGVyLCBjbHItZGctbnVtZXJpYy1maWx0ZXIiLCIqIl07ZnVuY3Rpb24gZGNlKGQs''@;'; put 'put ''Zyl7MSZkJiZDcigwLCJkaXYiLDQpfWZ1bmN0aW9uIHBjZShkLGcpezEmZCYmTmkoMCwwLFsiKm5nSWYiLCJlbXB0eURhdGFncmlkIl0pfWZ1bmN0aW9uIGF2KGQsZyl7aWYoMSZkJiYoQjAoMCksbnQoMSwiYnV0dG9uIiwxKSxDcigyLCJjZHMtaWNvbiIsMiksb3QoKSxQMCgpKSwyJmQpe2Nv''@;'; put 'put ''bnN0IGg9UXQoKTt1dCgyKSxHaSgidGl0bGUiLGguY29tbW9uU3RyaW5ncy5rZXlzLmluZm8pfX1jb25zdCBJaj1bImNlbGxQb3J0YWwiXTtmdW5jdGlvbiBiJChkLGcpezEmZCYmTmkoMCl9Y29uc3QgdDM9WyJyb3dQb3J0YWwiXTtmdW5jdGlvbiBnY2UoZCxnKXsxJmQmJk5pKDApfWNvbnN0''@;'; put 'put ''IG1jZT1bImRldGFpbEJ1dHRvbiJdLHlnPVsic3RpY2t5Q2VsbHMiXSx0Uz1bInNjcm9sbGFibGVDZWxscyJdLHZjZT1bImNhbGN1bGF0ZWRDZWxscyJdO2Z1bmN0aW9uIEFjZShkLGcpe31mdW5jdGlvbiB5Y2UoZCxnKXtpZigxJmQmJihudCgwLCJjbHItZXhwYW5kYWJsZS1hbmltYXRpb24i''@;'; put 'put ''LDcpLHJuKDEsQWNlLDAsMCwibmctdGVtcGxhdGUiLDgpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgyKSx2PXZhKDYpO1R0KCJjbHJFeHBhbmRUcmlnZ2VyIixoLmV4cGFuZEFuaW1hdGlvblRyaWdnZXIpLHV0KDEpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0Iix2KX19ZnVuY3Rpb24gd2NlKGQsZyl7''@;'; put 'put ''fWZ1bmN0aW9uIGV3KGQsZyl7MSZkJiZybigwLHdjZSwwLDAsIm5nLXRlbXBsYXRlIiw4KSwyJmQmJihRdCgyKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsdmEoNikpKX1mdW5jdGlvbiBiY2UoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJsYWJlbCIsNiksR24oIm1vdXNlZG93biIs''@;'; put 'put ''ZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS5jbGVhclJhbmdlcyh5KSl9KSxybigxLHljZSwyLDIsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsMSkscm4oMixldywxLDEsbnVsbCwyKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLFR0KCJuZ0lmIixoLmV4cGFuZC5l''@;'; put 'put ''eHBhbmRhYmxlKSx1dCgxKSxUdCgibmdJZiIsIWguZXhwYW5kLmV4cGFuZGFibGUpfX1mdW5jdGlvbiBfJChkLGcpe31mdW5jdGlvbiBfY2UoZCxnKXtpZigxJmQmJihudCgwLCJjbHItZXhwYW5kYWJsZS1hbmltYXRpb24iLDcpLHJuKDEsXyQsMCwwLCJuZy10ZW1wbGF0ZSIsOCksb3QoKSks''@;'; put 'put ''MiZkKXtjb25zdCBoPVF0KCksdj12YSg2KTtUdCgiY2xyRXhwYW5kVHJpZ2dlciIsaC5leHBhbmRBbmltYXRpb25UcmlnZ2VyKSx1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsdil9fWZ1bmN0aW9uIG9vKGQsZyl7fWZ1bmN0aW9uIERqKGQsZyl7MSZkJiZybigwLG9vLDAsMCwibmctdGVt''@;'; put 'put ''cGxhdGUiLDgpLDImZCYmKFF0KCksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLHZhKDYpKSl9ZnVuY3Rpb24geDEoZCxnKXsxJmQmJk5pKDApfWNvbnN0IHdMPWZ1bmN0aW9uKGQpe3JldHVybnsiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCI6ZH19O2Z1bmN0aW9uIGJMKGQsZyl7aWYoMSZkKXtj''@;'; put 'put ''b25zdCBoPXdpKCk7bnQoMCwiZGl2IiwxOSkoMSwiZGl2IiwyMCkoMiwiaW5wdXQiLDIxKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoMikudG9nZ2xlKHkpKX0pLG90KCksbnQoMywibGFiZWwiLDIyKSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe3Jl''@;'; put 'put ''dHVybiBpdChoKSxhKFF0KDIpLmNsZWFyUmFuZ2VzKHkpKX0pLG50KDQsInNwYW4iLDIzKSxZdCg1KSxvdCgpKCkoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTtUdCgibmdDbGFzcyIsR2QoOCx3TCwhaC5jbHJEZ1NlbGVjdGFibGUpKSx1dCgyKSxUdCgibmdNb2RlbCIsaC5zZWxlY3RlZCko''@;'; put 'put ''ImlkIixoLmNoZWNrYm94SWQpLEdpKCJkaXNhYmxlZCIsIWguY2xyRGdTZWxlY3RhYmxlfHxudWxsKSgiYXJpYS1kaXNhYmxlZCIsIWguY2xyRGdTZWxlY3RhYmxlfHxudWxsKSgiYXJpYS1sYWJlbCIsaC5jbHJEZ1Jvd0FyaWFMYWJlbCksdXQoMSksVHQoImZvciIsaC5jaGVja2JveElkKSx1''@;'; put 'put ''dCgyKSxqaShoLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3QpfX1mdW5jdGlvbiBfTChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIsMTkpKDEsImlucHV0IiwyNCksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLnNlbGVjdGlv''@;'; put 'put ''bi5jdXJyZW50U2luZ2xlPXkpfSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTtUdCgibmdDbGFzcyIsR2QoOSx3TCwhaC5jbHJEZ1NlbGVjdGFibGUpKSx1dCgxKSxUdCgiaWQiLGgucmFkaW9JZCkoIm5hbWUiLGguc2VsZWN0aW9uLmlkKyItcmFkaW8iKSgidmFsdWUiLGguaXRlbSko''@;'; put 'put ''Im5nTW9kZWwiLGguc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGUpKCJjaGVja2VkIixoLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPT09aC5pdGVtKSxHaSgiZGlzYWJsZWQiLCFoLmNsckRnU2VsZWN0YWJsZXx8bnVsbCkoImFyaWEtZGlzYWJsZWQiLCFoLmNsckRnU2VsZWN0YWJsZXx8bnVsbCko''@;'; put 'put ''ImFyaWEtbGFiZWwiLGguY2xyRGdSb3dBcmlhTGFiZWwpfX1mdW5jdGlvbiBDTChkLGcpezEmZCYmKG50KDAsImRpdiIsMjUpLE5pKDEsMiksb3QoKSl9ZnVuY3Rpb24gQyQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDI5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIGl0KGgpLGEoUXQoNCkudG9nZ2xlRXhwYW5kKCkpfSksQ3IoMSwiY2RzLWljb24iLDMwKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCg0KTtHaSgiYXJpYS1leHBhbmRlZCIsaC5leHBhbmQuZXhwYW5kZWQpKCJhcmlhLWxhYmVsIixoLmV4cGFuZC5leHBhbmRlZD9oLmNsckRnRGV0''@;'; put 'put ''YWlsQ2xvc2VMYWJlbDpoLmNsckRnRGV0YWlsT3BlbkxhYmVsKSgiYXJpYS1jb250cm9scyIsaC5leHBhbmRhYmxlSWQpLHV0KDEpLEdpKCJkaXJlY3Rpb24iLGguZXhwYW5kLmV4cGFuZGVkPyJkb3duIjoicmlnaHQiKSgidGl0bGUiLGguZXhwYW5kLmV4cGFuZGVkP2guY29tbW9uU3RyaW5n''@;'; put 'put ''cy5rZXlzLmNvbGxhcHNlOmguY29tbW9uU3RyaW5ncy5rZXlzLmV4cGFuZCl9fWZ1bmN0aW9uIGskKGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLXNwaW5uZXIiLDMxKSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoNCk7dXQoMSksamkoaC5jb21tb25TdHJpbmdzLmtleXMubG9hZGluZyl9''@;'; put 'put ''fWZ1bmN0aW9uIFMkKGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxDJCwyLDUsImJ1dHRvbiIsMjcpLHJuKDIsayQsMiwxLCJjbHItc3Bpbm5lciIsMjgpLFAwKCkpLDImZCl7Y29uc3QgaD1RdCgzKTt1dCgxKSxUdCgibmdJZiIsIWguZXhwYW5kLmxvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIixo''@;'; put 'put ''LmV4cGFuZC5sb2FkaW5nKX19ZnVuY3Rpb24gVDAoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDI2KSxybigxLFMkLDMsMiwibmctY29udGFpbmVyIiwyKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMSksVHQoIm5nSWYiLGguZXhwYW5kLmV4cGFuZGFibGUpfX1mdW5jdGlvbiBDY2Uo''@;'; put 'put ''ZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDMyKSgxLCJidXR0b24iLDMzLDM0KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT12YSgyKSxDPVF0KDIpO3JldHVybiBhKEMuZGV0YWlsU2VydmljZS50b2dnbGUoQy5pdGVtLHkpKX0pLENyKDMsImNkcy1p''@;'; put 'put ''Y29uIiwzNSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxGaSgiaXMtb3BlbiIsaC5kZXRhaWxTZXJ2aWNlLmlzUm93T3BlbihoLml0ZW0pKSxHaSgiYXJpYS1sYWJlbCIsaC5kZXRhaWxTZXJ2aWNlLmlzUm93T3BlbihoLml0ZW0pP2guY2xyRGdEZXRhaWxDbG9zZUxhYmVs''@;'; put 'put ''OmguY2xyRGdEZXRhaWxPcGVuTGFiZWwpKCJhcmlhLWV4cGFuZGVkIixoLmRldGFpbFNlcnZpY2UuaXNPcGVuKSgiYXJpYS1jb250cm9scyIsaC5kZXRhaWxTZXJ2aWNlLmlkKSx1dCgyKSxHaSgiZGlyZWN0aW9uIixoLmRldGFpbFNlcnZpY2UuaXNSb3dPcGVuKGguaXRlbSk/ImxlZnQiOiJy''@;'; put 'put ''aWdodCIpKCJ0aXRsZSIsaC5kZXRhaWxTZXJ2aWNlLmlzUm93T3BlbihoLml0ZW0pP2guY29tbW9uU3RyaW5ncy5rZXlzLmNsb3NlOmguY29tbW9uU3RyaW5ncy5rZXlzLm9wZW4pfX1mdW5jdGlvbiBrTChkLGcpe31mdW5jdGlvbiBMaihkLGcpezEmZCYmcm4oMCxrTCwwLDAsIm5nLXRlbXBs''@;'; put 'put ''YXRlIiw4KSwyJmQmJihRdCgyKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsdmEoNCkpKX1mdW5jdGlvbiBsdihkLGcpe31mdW5jdGlvbiBrY2UoZCxnKXsxJmQmJnJuKDAsbHYsMCwwLCJuZy10ZW1wbGF0ZSIsOCksMiZkJiYoUXQoMiksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLHZhKDQpKSl9Y29u''@;'; put 'put ''c3QgT2o9ZnVuY3Rpb24oZCl7cmV0dXJueyJpcy1yZXBsYWNlZCI6ZH19O2Z1bmN0aW9uIHJhKGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw5KSgxLCJkaXYiLDEwKSxCMCgyLG51bGwsMTEpLHJuKDQsYkwsNiwxMCwiZGl2IiwxMikscm4oNSxfTCwyLDExLCJkaXYiLDEyKSxybig2LENMLDIs''@;'; put 'put ''MCwiZGl2IiwxMykscm4oNyxUMCwyLDEsImRpdiIsMTQpLHJuKDgsQ2NlLDQsNywiZGl2IiwxNSksUDAoKSxvdCgpLG50KDksImRpdiIsMTYpKDEwLCJkaXYiLDE3KSxOaSgxMSwxKSxmMSgxMixudWxsLDE4KSxvdCgpLHJuKDE0LExqLDEsMSxudWxsLDIpLHJuKDE1LGtjZSwxLDEsbnVsbCwy''@;'; put 'put ''KSxvdCgpKCkpLDImZCl7Y29uc3QgaD1RdCgpO0ZpKCJkYXRhZ3JpZC1yb3ctZGV0YWlsLW9wZW4iLGguZGV0YWlsU2VydmljZS5pc1Jvd09wZW4oaC5pdGVtKSksVHQoImlkIixoLmlkKSx1dCg0KSxUdCgibmdJZiIsaC5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PWguU0VMRUNUSU9OX1RZ''@;'; put 'put ''UEUuTXVsdGkpLHV0KDEpLFR0KCJuZ0lmIixoLnNlbGVjdGlvbi5zZWxlY3Rpb25UeXBlPT09aC5TRUxFQ1RJT05fVFlQRS5TaW5nbGUpLHV0KDEpLFR0KCJuZ0lmIixoLnJvd0FjdGlvblNlcnZpY2UuaGFzQWN0aW9uYWJsZVJvdyksdXQoMSksVHQoIm5nSWYiLGguZ2xvYmFsRXhwYW5kYWJs''@;'; put 'put ''ZS5oYXNFeHBhbmRhYmxlUm93KSx1dCgxKSxUdCgibmdJZiIsaC5kZXRhaWxTZXJ2aWNlLmVuYWJsZWQpLHV0KDEpLFR0KCJuZ0NsYXNzIixHZCgxMSxPaixoLnJlcGxhY2VkJiZoLmV4cGFuZGVkKSksdXQoNSksVHQoIm5nSWYiLGgucmVwbGFjZWQmJiFoLmV4cGFuZC5sb2FkaW5nKSx1dCgx''@;'; put 'put ''KSxUdCgibmdJZiIsIWgucmVwbGFjZWQmJiFoLmV4cGFuZC5sb2FkaW5nKX19Y29uc3QgTSQ9W1tbImNsci1kZy1yb3ctZGV0YWlsIl1dLFtbImNsci1kZy1jZWxsIl1dLFtbImNsci1kZy1hY3Rpb24tb3ZlcmZsb3ciXV1dLHN2PVsiY2xyLWRnLXJvdy1kZXRhaWwiLCJjbHItZGctY2VsbCIs''@;'; put 'put ''ImNsci1kZy1hY3Rpb24tb3ZlcmZsb3ciXSxTY2U9WyJzY3JvbGxhYmxlQ29sdW1ucyJdLEUkPVsiZGF0YWdyaWRUYWJsZSJdLHR3PVsicHJvamVjdGVkRGlzcGxheUNvbHVtbnMiXSxNY2U9WyJwcm9qZWN0ZWRDYWxjdWxhdGlvbkNvbHVtbnMiXSxSaj1bImRpc3BsYXllZFJvd3MiXSxCaj1b''@;'; put 'put ''ImNhbGN1bGF0aW9uUm93cyJdO2Z1bmN0aW9uIFNMKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2IiwyNCksR24oImtleWRvd24uc3BhY2UiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoKTtyZXR1cm4gQy5hbGxTZWxlY3RlZD0hQy5hbGxTZWxlY3RlZCxhKHkucHJl''@;'; put 'put ''dmVudERlZmF1bHQoKSl9KSxudCgxLCJkaXYiLDI1KSgyLCJpbnB1dCIsMjYpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLmFsbFNlbGVjdGVkPXkpfSksb3QoKSxudCgzLCJsYWJlbCIsMjcpKDQsInNwYW4iLDI4KSxZdCg1KSxvdCgpKCkoKSxD''@;'; put 'put ''cig2LCJkaXYiLDI5KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO3V0KDIpLFR0KCJpZCIsaC5zZWxlY3RBbGxJZCkoIm5nTW9kZWwiLGguYWxsU2VsZWN0ZWQpLEdpKCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RBbGwpLHV0KDEpLFR0KCJmb3IiLGguc2VsZWN0''@;'; put 'put ''QWxsSWQpLHV0KDIpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLnNlbGVjdEFsbCl9fWZ1bmN0aW9uIFBqKGQsZyl7MSZkJiYobnQoMCwiZGl2IiwzMCksQ3IoMSwiZGl2IiwyOSksb3QoKSksMiZkJiZHaSgiYXJpYS1sYWJlbCIsUXQoKS5jbHJEZ1NpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbCl9''@;'; put 'put ''ZnVuY3Rpb24gRWNlKGQsZyl7MSZkJiYobnQoMCwiZGl2IiwzMSksQ3IoMSwiZGl2IiwyOSksb3QoKSksMiZkJiZHaSgiYXJpYS1sYWJlbCIsUXQoKS5jbHJEZ1NpbmdsZUFjdGlvbmFibGVBcmlhTGFiZWwpfWZ1bmN0aW9uIHgkKGQsZyl7MSZkJiYobnQoMCwiZGl2IiwzMiksQ3IoMSwiZGl2''@;'; put 'put ''IiwyOSksb3QoKSksMiZkJiZHaSgiYXJpYS1sYWJlbCIsUXQoKS5jbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsKX1mdW5jdGlvbiB4Y2UoZCxnKXsxJmQmJkNyKDAsImNsci1kZy1wbGFjZWhvbGRlciIpfWZ1bmN0aW9uIGM4KGQsZyl7MSZkJiYobnQoMCwiZGl2IiwzMykoMSwiY2xyLXNw''@;'; put 'put ''aW5uZXIiLDM0KSxZdCgyLCJMb2FkaW5nIiksb3QoKSgpKX1jb25zdCBUY2U9W1tbImNsci1kZy1hY3Rpb24tYmFyIl1dLFtbImNsci1kZy1wbGFjZWhvbGRlciJdXSxbWyJjbHItZGctZm9vdGVyIl1dLFtbIiIsImNscklmRGV0YWlsIiwiIl0sWyJjbHItZGctZGV0YWlsIl1dXSxfdT1bImNs''@;'; put 'put ''ci1kZy1hY3Rpb24tYmFyIiwiY2xyLWRnLXBsYWNlaG9sZGVyIiwiY2xyLWRnLWZvb3RlciIsIltjbHJJZkRldGFpbF0sY2xyLWRnLWRldGFpbCJdLEZqPVsiYWxsU2VsZWN0ZWQiXTtmdW5jdGlvbiBJY2UoZCxnKXtpZigxJmQmJihCMCgwKSxudCgxLCJoMiIpLFl0KDIpLG90KCksUDAoKSks''@;'; put 'put ''MiZkKXtjb25zdCBoPVF0KDIpO3V0KDIpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLnNob3dDb2x1bW5zKX19ZnVuY3Rpb24gSGooZCxnKXt9ZnVuY3Rpb24gRGNlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwibGkiKSgxLCJjbHItY2hlY2tib3gtd3JhcHBlciIpKDIsImlucHV0''@;'; put 'put ''IiwxNSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe2NvbnN0IEk9aXQoaCkuJGltcGxpY2l0O3JldHVybiBhKFF0KDIpLnRvZ2dsZUNvbHVtblN0YXRlKEksIXkpKX0pLG90KCksbnQoMywibGFiZWwiKSxybig0LEhqLDAsMCwibmctdGVtcGxhdGUiLDE2KSxvdCgpKCkoKX1pZigy''@;'; put 'put ''JmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1RdCgyKTt1dCgyKSxUdCgiZGlzYWJsZWQiLHYuaGFzT25seU9uZVZpc2libGVDb2x1bW4mJiFoLmhpZGRlbikoIm5nTW9kZWwiLCFoLmhpZGRlbiksdXQoMiksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgudGl0bGVUZW1wbGF0ZVJlZil9fWZ1bmN0''@;'; put 'put ''aW9uIFQkKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uIiwxNyksR24oImNsckFsbFNlbGVjdGVkIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLmFsbENvbHVtbnNTZWxlY3RlZCgpKX0pLFl0KDEpLG90KCl9aWYoMiZk''@;'; put 'put ''KXtjb25zdCBoPVF0KDIpO3V0KDEpLEppKCIgIixoLmNvbW1vblN0cmluZ3Mua2V5cy5zZWxlY3RBbGwsIiAiKX19ZnVuY3Rpb24gTGNlKGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw0KSgxLCJkaXYiLDUpKDIsImRpdiIsNiw3KSxZdCg0KSxvdCgpLHJuKDUsSWNlLDMsMSwibmctY29udGFp''@;'; put 'put ''bmVyIiw4KSxOaSg2KSxudCg3LCJidXR0b24iLDkpLENyKDgsImNkcy1pY29uIiwxMCksbnQoOSwic3BhbiIsMiksWXQoMTApLG90KCkoKSgpLG50KDExLCJ1bCIsMTEpLHJuKDEyLERjZSw1LDMsImxpIiwxMiksb3QoKSxudCgxMywiZGl2IiwxMyksTmkoMTQsMSkscm4oMTUsVCQsMiwxLCJj''@;'; put 'put ''bHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iLDE0KSxvdCgpKCkpLDImZCl7Y29uc3QgaD1RdCgpO1R0KCJpZCIsaC5wb3BvdmVySWQpLEdpKCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy5zaG93Q29sdW1uc01lbnVEZXNjcmlwdGlvbiksdXQoNCksamkoaC5jb21tb25TdHJp''@;'; put 'put ''bmdzLmtleXMuYWxsQ29sdW1uc1NlbGVjdGVkKSx1dCgxKSxUdCgibmdJZiIsIWguY3VzdG9tVG9nZ2xlVGl0bGUpLHV0KDIpLEdpKCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSksdXQoMSksR2koInRpdGxlIixoLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZSksdXQo''@;'; put 'put ''MiksamkoaC5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpLHV0KDIpLFR0KCJuZ0Zvck9mIixoLmhpZGVhYmxlQ29sdW1uU3RhdGVzKSgibmdGb3JUcmFja0J5IixoLnRyYWNrQnlGbiksdXQoMyksVHQoIm5nSWYiLCFoLmN1c3RvbVRvZ2dsZUJ1dHRvbil9fWNvbnN0IG5TPVtbWyJjbHItZGct''@;'; put 'put ''Y29sdW1uLXRvZ2dsZS10aXRsZSJdXSxbWyJjbHItZGctY29sdW1uLXRvZ2dsZS1idXR0b24iXV1dLE9jZT1bImNsci1kZy1jb2x1bW4tdG9nZ2xlLXRpdGxlIiwiY2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uIl07ZnVuY3Rpb24gQmNlKGQsZyl7aWYoMSZkJiYoQjAoMCksbnQoMSwiZGl2''@;'; put 'put ''IiwxKSgyLCJjbHItY2hlY2tib3gtd3JhcHBlciIsMiksQ3IoMywiaW5wdXQiLDMpLG50KDQsImxhYmVsIiksWXQoNSksb3QoKSxudCg2LCJzcGFuIiw0KSxZdCg3KSxvdCgpKCkoKSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCg1KSxqaShoLnNlbGVjdGlvbi5jdXJyZW50Lmxlbmd0aCks''@;'; put 'put ''dXQoMiksamkoaC5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0ZWRSb3dzKX19ZnVuY3Rpb24gUGNlKGQsZyl7MSZkJiZDcigwLCJjbHItZGctY29sdW1uLXRvZ2dsZSIpfWZ1bmN0aW9uIEZjZShkLGcpe2lmKDEmZCYmKEIwKDApLE5pKDEsMSkscm4oMixQY2UsMSwwLCJjbHItZGctY29sdW1u''@;'; put 'put ''LXRvZ2dsZSIsMCksbnQoMywiZGl2Iiw1KSxOaSg0LDIpLG90KCksUDAoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMiksVHQoIm5nSWYiLGguaGFzSGlkZWFibGVDb2x1bW5zJiYhaC50b2dnbGUpfX1jb25zdCBJJD1bW1siY2xyLWRnLXBhZ2luYXRpb24iXV0sW1siY2xyLWRnLWNvbHVtbi10''@;'; put 'put ''b2dnbGUiXV0sIioiXSxIY2U9WyJjbHItZGctcGFnaW5hdGlvbiIsImNsci1kZy1jb2x1bW4tdG9nZ2xlIiwiKiJdO2Z1bmN0aW9uIEQkKGQsZyl7aWYoMSZkJiYobnQoMCwib3B0aW9uIiwzKSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7VHQoIm5nVmFsdWUiLGgpLHV0''@;'; put 'put ''KDEpLGppKGgpfX1jb25zdCBOY2U9WyJjdXJyZW50UGFnZUlucHV0Il07ZnVuY3Rpb24gVmNlKGQsZyl7MSZkJiYobnQoMCwiZGl2Iiw0KSxOaSgxLDEpLG90KCkpfWZ1bmN0aW9uIEwkKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiaW5wdXQiLDE3LDE4KSxHbigia2V5ZG93bi5l''@;'; put 'put ''bnRlciIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoMykudXBkYXRlQ3VycmVudFBhZ2UoeSkpfSkoImJsdXIiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDMpLnVwZGF0ZUN1cnJlbnRQYWdlKHkpKX0pLG90KCl9aWYoMiZkKXtjb25zdCBoPVF0KDMpO1R0KCJzaXplIixo''@;'; put 'put ''LnBhZ2UubGFzdC50b1N0cmluZygpLmxlbmd0aCkoInZhbHVlIixoLnBhZ2UuY3VycmVudCksR2koImFyaWEtbGFiZWwiLGguY29tbW9uU3RyaW5ncy5rZXlzLmN1cnJlbnRQYWdlKX19ZnVuY3Rpb24gamNlKGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIpLFl0KDEpLG90KCkpLDImZCl7Y29u''@;'; put 'put ''c3QgaD1RdCgzKTt1dCgxKSxqaShoLnBhZ2UuY3VycmVudCl9fWZ1bmN0aW9uIG4zKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw1KSgxLCJidXR0b24iLDYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5wYWdlLmN1cnJlbnQ9MSl9KSxu''@;'; put 'put ''dCgyLCJzcGFuIiw3KSxZdCgzKSxvdCgpLENyKDQsImNkcy1pY29uIiw4KSxvdCgpLG50KDUsImJ1dHRvbiIsOSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoMik7cmV0dXJuIGEoeS5wYWdlLmN1cnJlbnQ9eS5wYWdlLmN1cnJlbnQtMSl9KSxudCg2LCJzcGFuIiw3''@;'; put 'put ''KSxZdCg3KSxvdCgpLENyKDgsImNkcy1pY29uIiwxMCksb3QoKSxybig5LEwkLDIsMywiaW5wdXQiLDExKSxybigxMCxqY2UsMiwxLCJuZy10ZW1wbGF0ZSIsbnVsbCwxMixaciksWXQoMTIsIiBceGEwL1x4YTAiKSxudCgxMywic3BhbiIpLFl0KDE0KSxvdCgpLG50KDE1LCJidXR0b24iLDEz''@;'; put 'put ''KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgyKTtyZXR1cm4gYSh5LnBhZ2UuY3VycmVudD15LnBhZ2UuY3VycmVudCsxKX0pLG50KDE2LCJzcGFuIiw3KSxZdCgxNyksb3QoKSxDcigxOCwiY2RzLWljb24iLDE0KSxvdCgpLG50KDE5LCJidXR0b24iLDE1KSxHbigi''@;'; put 'put ''Y2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgyKTtyZXR1cm4gYSh5LnBhZ2UuY3VycmVudD15LnBhZ2UubGFzdCl9KSxudCgyMCwic3BhbiIsNyksWXQoMjEpLG90KCksQ3IoMjIsImNkcy1pY29uIiwxNiksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD12YSgxMSksdj1RdCgyKTt1''@;'; put 'put ''dCgxKSxUdCgiZGlzYWJsZWQiLHYucGFnZS5jdXJyZW50PD0xKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZmlyc3RQYWdlKSx1dCgyKSxqaSh2LmNvbW1vblN0cmluZ3Mua2V5cy5maXJzdFBhZ2UpLHV0KDIpLFR0KCJkaXNhYmxlZCIsdi5wYWdlLmN1cnJlbnQ8PTEp''@;'; put 'put ''LEdpKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy5wcmV2aW91c1BhZ2UpLHV0KDIpLGppKHYuY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksdXQoMiksVHQoIm5nSWYiLCF2LmRpc2FibGVDdXJyZW50UGFnZUlucHV0KSgibmdJZkVsc2UiLGgpLHV0KDQpLEdpKCJh''@;'; put 'put ''cmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy50b3RhbFBhZ2VzKSx1dCgxKSxqaSh2LnBhZ2UubGFzdCksdXQoMSksVHQoImRpc2FibGVkIix2LnBhZ2UuY3VycmVudD49di5wYWdlLmxhc3QpLEdpKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy5uZXh0UGFnZSksdXQo''@;'; put 'put ''Miksamkodi5jb21tb25TdHJpbmdzLmtleXMubmV4dFBhZ2UpLHV0KDIpLFR0KCJkaXNhYmxlZCIsdi5wYWdlLmN1cnJlbnQ+PXYucGFnZS5sYXN0KSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMubGFzdFBhZ2UpLHV0KDIpLGppKHYuY29tbW9uU3RyaW5ncy5rZXlzLmxh''@;'; put 'put ''c3RQYWdlKX19ZnVuY3Rpb24gWmNlKGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxWY2UsMiwwLCJkaXYiLDEpLG50KDIsImRpdiIsMiksTmkoMyksb3QoKSxybig0LG4zLDIzLDE2LCJkaXYiLDMpLFAwKCkpLDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLFR0KCJuZ0lmIixoLl9wYWdlU2l6ZUNv''@;'; put 'put ''bXBvbmVudCksdXQoMyksVHQoIm5nSWYiLGgucGFnZS5sYXN0PjEpfX1mdW5jdGlvbiBPJChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLG50KDEsImRpdiIsMTkpLFl0KDIpLG90KCksbnQoMywiZGl2Iiw1KSg0LCJidXR0b24iLDkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdCho''@;'; put 'put ''KTtjb25zdCB5PVF0KCk7cmV0dXJuIGEoeS5wYWdlLmN1cnJlbnQ9eS5wYWdlLmN1cnJlbnQtMSl9KSxudCg1LCJzcGFuIiw3KSxZdCg2KSxvdCgpLENyKDcsImNkcy1pY29uIiwxMCksb3QoKSxudCg4LCJzcGFuIiksWXQoOSksb3QoKSxudCgxMCwiYnV0dG9uIiwxMyksR24oImNsaWNrIixm''@;'; put 'put ''dW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKTtyZXR1cm4gYSh5LnBhZ2UuY3VycmVudD15LnBhZ2UuY3VycmVudCsxKX0pLG50KDExLCJzcGFuIiw3KSxZdCgxMiksb3QoKSxDcigxMywiY2RzLWljb24iLDE0KSxvdCgpKCksUDAoKX1pZigyJmQpe2NvbnN0IGg9UXQoKTt1dCgyKSxrZigi''@;'; put 'put ''ICIsaC5wYWdlLmZpcnN0SXRlbSsxLCItIixoLnBhZ2UubGFzdEl0ZW0rMSwiIC8gIixoLnBhZ2UudG90YWxJdGVtcywiICIpLHV0KDIpLFR0KCJkaXNhYmxlZCIsaC5wYWdlLmN1cnJlbnQ8PTEpLEdpKCJhcmlhLWxhYmVsIixoLmNvbW1vblN0cmluZ3Mua2V5cy5wcmV2aW91c1BhZ2UpLHV0''@;'; put 'put ''KDIpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzUGFnZSksdXQoMyksamkoaC5wYWdlLmN1cnJlbnQpLHV0KDEpLFR0KCJkaXNhYmxlZCIsaC5wYWdlLmN1cnJlbnQ+PWgucGFnZS5sYXN0KSxHaSgiYXJpYS1sYWJlbCIsaC5jb21tb25TdHJpbmdzLmtleXMubmV4dFBhZ2UpLHV0''@;'; put 'put ''KDIpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLm5leHRQYWdlKX19Y29uc3QgcjM9WyIqIixbWyJjbHItZGctcGFnZS1zaXplIl1dXSxrcD1bIioiLCJjbHItZGctcGFnZS1zaXplIl07ZnVuY3Rpb24gaTMoZCxnKXsxJmQmJkNyKDAsImNkcy1pY29uIiw3KSwyJmQmJkdpKCJkaXJlY3Rpb24i''@;'; put 'put ''LFF0KCkuY2FyZXREaXJlY3Rpb24pfWZ1bmN0aW9uIHpjZShkLGcpe2lmKDEmZCYmKG50KDAsInNwYW4iLDgpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLGppKGguY29tbW9uU3RyaW5ncy5rZXlzLnN0YWNrVmlld0NoYW5nZWQpfX1mdW5jdGlvbiBudyhkLGcpe2lmKDEm''@;'; put 'put ''ZCYmKG50KDAsImRpdiIsOSksTmkoMSwyKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKTtOZCgiaGVpZ2h0IixoLmV4cGFuZGVkPyJhdXRvIjowKSxHaSgiaWQiLGguZ2V0U3RhY2tDaGlsZHJlbklkKCkpKCJhcmlhLWxhYmVsbGVkYnkiLGgubGFiZWxsZWRCeUlkKX19Y29uc3QgR2NlPVtbWyJj''@;'; put 'put ''bHItc3RhY2stbGFiZWwiXV0sIioiLFtbImNsci1zdGFjay1ibG9jayJdXV0scnc9WyJjbHItc3RhY2stbGFiZWwiLCIqIiwiY2xyLXN0YWNrLWJsb2NrIl0sVDE9W1tbImNsci1zdGFjay1oZWFkZXIiXV0sIioiXSxXY2U9WyJjbHItc3RhY2staGVhZGVyIiwiKiJdO2Z1bmN0aW9uIFFjZShk''@;'; put 'put ''LGcpezEmZCYmZjEoMCl9ZnVuY3Rpb24gVmooZCxnKXtpZigxJmQmJihCMCgwKSxybigxLFFjZSwxLDAsIm5nLWNvbnRhaW5lciIsMiksUDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9UXQoMik7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLHYuZmVhdHVyZXNTZXJ2aWNlLnJl''@;'; put 'put ''Y3Vyc2lvbi50ZW1wbGF0ZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Iix2LmdldENvbnRleHQoaCkpfX1mdW5jdGlvbiBKY2UoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLFZqLDIsMiwibmctY29udGFpbmVyIiwxKSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxUdCgibmdGb3JP''@;'; put 'put ''ZiIsKG51bGw9PWgucGFyZW50P251bGw6aC5wYXJlbnQuY2hpbGRyZW4pfHxoLmNoaWxkcmVuKX19Y29uc3QgQiQ9WyJjb250ZW50Q29udGFpbmVyIl07ZnVuY3Rpb24gWGNlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiw5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIGl0KGgpLGEoUXQoKS5leHBhbmRTZXJ2aWNlLnRvZ2dsZSgpKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmZvY3VzVHJlZU5vZGUoKSl9KSxDcigxLCJjZHMtaWNvbiIsMTApLG90KCl9aWYoMiZkKXtjb25zdCBoPVF0KCk7dXQoMSksR2koImRpcmVj''@;'; put 'put ''dGlvbiIsaC5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPyJkb3duIjoicmlnaHQiKX19ZnVuY3Rpb24gbjEoZCxnKXsxJmQmJihudCgwLCJkaXYiLDExKSxDcigxLCJzcGFuIiwxMiksb3QoKSl9ZnVuY3Rpb24gdXYoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDEzKSgxLCJp''@;'; put 'put ''bnB1dCIsMTQpLEduKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgpO3JldHVybiBhKHkuX21vZGVsLnRvZ2dsZVNlbGVjdGlvbih5LmZlYXR1cmVzU2VydmljZS5lYWdlcikpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuZm9jdXNUcmVlTm9k''@;'; put 'put ''ZSgpKX0pLG90KCksQ3IoMiwibGFiZWwiLDE1KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLFptKCJpZCIsIiIsaC5ub2RlSWQsIi1jaGVjayIpLFR0KCJjaGVja2VkIixoLl9tb2RlbC5zZWxlY3RlZC52YWx1ZT09PWguU1RBVEVTLlNFTEVDVEVEKSgiaW5kZXRlcm1pbmF0ZSIs''@;'; put 'put ''aC5fbW9kZWwuc2VsZWN0ZWQudmFsdWU9PT1oLlNUQVRFUy5JTkRFVEVSTUlOQVRFKSx1dCgxKSxabSgiZm9yIiwiIixoLm5vZGVJZCwiLWNoZWNrIil9fWZ1bmN0aW9uIEtjZShkLGcpezEmZCYmKG50KDAsInNwYW4iKSxZdCgxLCJzZWxlY3RlZCIpLG90KCkpfWZ1bmN0aW9uIE1MKGQsZyl7''@;'; put 'put ''MSZkJiYobnQoMCwic3BhbiIpLFl0KDEsInVuc2VsZWN0ZWQiKSxvdCgpKX1mdW5jdGlvbiAkY2UoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDE2KSxybigxLEtjZSwyLDAsInNwYW4iLDE3KSxybigyLE1MLDIsMCwic3BhbiIsMTcpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLFR0''@;'; put 'put ''KCJuZ0lmIixoLmFyaWFTZWxlY3RlZCksdXQoMSksVHQoIm5nSWYiLCFoLmFyaWFTZWxlY3RlZCl9fWNvbnN0IFAkPVsiKiIsW1siY2xyLXRyZWUtbm9kZSJdXSxbWyIiLCJjbHJJZkV4cGFuZGVkIiwiIl1dXSxlZj1bIioiLCJjbHItdHJlZS1ub2RlIiwiW2NscklmRXhwYW5kZWRdIl07ZnVu''@;'; put 'put ''Y3Rpb24gRWwoZCxnKXsxJmQmJkNyKDAsImNsci1yZWN1cnNpdmUtY2hpbGRyZW4iLDEpLDImZCYmVHQoImNoaWxkcmVuIixRdCgpLmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24ucm9vdCl9ZnVuY3Rpb24gUWEoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDQpLEdu''@;'; put 'put ''KCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5jbG9zZSgpKX0pLENyKDEsImNkcy1pY29uIiw1KSxvdCgpfTImZCYmR2koImFyaWEtbGFiZWwiLFF0KDIpLmNsckNsb3NlQnV0dG9uQXJpYUxhYmVsKX1mdW5jdGlvbiBCZihkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIs''@;'; put 'put ''MSkoMSwiZGl2IiwyKSxOaSgyKSxvdCgpLHJuKDMsUWEsMiwxLCJidXR0b24iLDMpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpO0ZpKCJhbGVydC1oaWRkZW4iLGguaGlkZGVuKSgiYWxlcnQtc20iLGguaXNTbWFsbCkoImFsZXJ0LWFwcC1sZXZlbCIsaC5pc0FwcExldmVsKSxUdCgibmdDbGFz''@;'; put 'put ''cyIsaC5hbGVydENsYXNzKSx1dCgzKSxUdCgibmdJZiIsaC5jbG9zYWJsZSl9fWZ1bmN0aW9uIGZoKGQsZyl7MSZkJiZDcigwLCJjbHItYWxlcnRzLXBhZ2VyIiwxKSwyJmQmJlR0KCJjbHJDdXJyZW50QWxlcnRJbmRleCIsUXQoKS5jdXJyZW50QWxlcnRJbmRleCl9Y29uc3QgRUw9W1tbImNs''@;'; put 'put ''ci1hbGVydCJdXV0sRiQ9WyJjbHItYWxlcnQiXTtmdW5jdGlvbiBqaihkLGcpezEmZCYmTmkoMCl9Y29uc3QgclM9WyJ0YWJDb250ZW50UHJvamVjdGVkUmVmIl07ZnVuY3Rpb24gSUwoZCxnKXtpZigxJmQmJihudCgwLCJzZWN0aW9uIiwxKSxOaSgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQo''@;'; put 'put ''KTtGaSgiYWN0aXZlIixoLmFjdGl2ZSksVHQoImlkIixoLnRhYkNvbnRlbnRJZCkoImhpZGRlbiIsIWguYWN0aXZlKSxHaSgiYXJpYS1sYWJlbGxlZGJ5IixoLmFyaWFMYWJlbGxlZEJ5KSgiYXJpYS1oaWRkZW4iLCFoLmFjdGl2ZSl9fWNvbnN0IFpqPVsidGFiQ29udGVudFZpZXdDb250YWlu''@;'; put 'put ''ZXIiXTtmdW5jdGlvbiBiZyhkLGcpe2lmKDEmZCYmKEIwKDApLG50KDEsImxpIiw0KSxmMSgyLDUpLG90KCksUDAoKSksMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0O3V0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoLnRlbXBsYXRlUmVmQ29udGFpbmVyLnRlbXBsYXRlKX19ZnVuY3Rp''@;'; put 'put ''b24gemooZCxnKXtpZigxJmQmJihCMCgwKSxybigxLGJnLDMsMSwibmctY29udGFpbmVyIiwyKSxQMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1RdCgpO3V0KDEpLFR0KCJuZ0lmIixoLnRhYnNJZD09PXYudGFic0lkJiYhaC5pbk92ZXJmbG93KX19ZnVuY3Rpb24gREwoZCxnKXsx''@;'; put 'put ''JmQmJmYxKDAsNSksMiZkJiZUdCgibmdUZW1wbGF0ZU91dGxldCIsUXQoKS4kaW1wbGljaXQudGVtcGxhdGVSZWZDb250YWluZXIudGVtcGxhdGUpfWZ1bmN0aW9uIEgkKGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxETCwxLDEsIm5nLWNvbnRhaW5lciIsMTMpLFAwKCkpLDImZCl7Y29uc3Qg''@;'; put 'put ''aD1nLiRpbXBsaWNpdCx2PVF0KDMpO3V0KDEpLFR0KCJuZ0lmIixoLnRhYnNJZD09PXYudGFic0lkJiZoLmluT3ZlcmZsb3cpfX1mdW5jdGlvbiBOJChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10YWItb3ZlcmZsb3ctY29udGVudCIsMTIpLEduKCJrZXlkb3duLmVzYyIs''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5jbG9zZU9uRXNjYXBlS2V5KCkpfSwwLEhsKSgiY2xpY2siLGZ1bmN0aW9uKHkpe2l0KGgpLFF0KCk7Y29uc3QgQz12YSg0KTtyZXR1cm4gYShRdCgpLmNsb3NlT25PdXRzaWRlQ2xpY2soeSxDKSl9LCExLEhsKSgiZm9jdXNvdXQiLGZ1''@;'; put 'put ''bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLmNsb3NlT25Gb2N1c091dCh5KSl9KSxybigxLEgkLDIsMSwibmctY29udGFpbmVyIiwxKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxUdCgibmdGb3JPZiIsaC50YWJMaW5rRGlyZWN0aXZlcyl9fWZ1bmN0aW9uIHFjZShk''@;'; put 'put ''LGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLG50KDEsImRpdiIsNikoMiwibGkiLDcpKDMsImJ1dHRvbiIsOCw5KSxHbigibW91c2Vkb3duIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuX21vdXNlZG93bj0hMCl9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgp''@;'; put 'put ''LGEoUXQoKS5vcGVuT3ZlcmZsb3dPbkZvY3VzKCkpfSkoImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkudG9nZ2xlT3ZlcmZsb3dPbkNsaWNrKCkpfSksQ3IoNSwiY2RzLWljb24iLDEwKSxvdCgpKCkscm4oNixOJCwyLDEsImNsci10YWItb3ZlcmZsb3ctY29udGVudCIs''@;'; put 'put ''MTEpLG90KCksUDAoKX1pZigyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxGaSgib3BlbiIsaC50b2dnbGVTZXJ2aWNlLm9wZW4pLHV0KDIpLEZpKCJhY3RpdmUiLGguYWN0aXZlVGFiSW5PdmVyZmxvdykoIm9wZW4iLGgudG9nZ2xlU2VydmljZS5vcGVuKSxHaSgidGFiaW5kZXgiLGguYWN0aXZl''@;'; put 'put ''VGFiSW5PdmVyZmxvdyYmIWgudG9nZ2xlU2VydmljZS5vcGVuPzA6LTEpKCJ0aXRsZSIsaC5jb21tb25TdHJpbmdzLmtleXMubW9yZSksdXQoMiksR2koInRpdGxlIixoLmNvbW1vblN0cmluZ3Mua2V5cy5tb3JlKSx1dCgxKSxUdCgibmdJZiIsaC50b2dnbGVTZXJ2aWNlLm9wZW4pfX1mdW5j''@;'; put 'put ''dGlvbiBlZmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLnRvZ2dsZUJ5QnV0dG9uKCkpfSksQ3IoMSwiY2RzLWljb24iLDQpLG90KCl9aWYoMiZkKXtjb25zdCBoPVF0KCk7RmkoIm9u''@;'; put 'put ''LWNvbGxhcHNlIixoLmNvbGxhcHNlZCksR2koImFyaWEtZXhwYW5kZWQiLGguYXJpYUV4cGFuZGVkKSgiYXJpYS1sYWJlbCIsaC5jb21tb25TdHJpbmdzLmtleXMudmVydGljYWxOYXZUb2dnbGUpLHV0KDEpLEdpKCJkaXJlY3Rpb24iLGguY29sbGFwc2VkPyJyaWdodCI6ImxlZnQiKSgidGl0''@;'; put 'put ''bGUiLGguY29sbGFwc2VkP2guY29tbW9uU3RyaW5ncy5rZXlzLmV4cGFuZDpoLmNvbW1vblN0cmluZ3Mua2V5cy5jb2xsYXBzZSl9fWZ1bmN0aW9uIFYkKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiw1KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgp''@;'; put 'put ''LGEoUXQoKS5jb2xsYXBzZWQ9ITEpfSksb3QoKX0yJmQmJkdpKCJhcmlhLWxhYmVsIixRdCgpLmNvbW1vblN0cmluZ3Mua2V5cy52ZXJ0aWNhbE5hdlRvZ2dsZSl9Y29uc3QgcmZlPVsiY2xyVmVydGljYWxOYXZMaW5rIiwiIl0saWZlPVtbWyIiLCJjbHJWZXJ0aWNhbE5hdkljb24iLCIiXV0s''@;'; put 'put ''IioiXSxvZmU9WyJbY2xyVmVydGljYWxOYXZJY29uXSIsIioiXTtmdW5jdGlvbiBHaihkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImJ1dHRvbiIsMTEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5jbG9zZSgpKX0pLENyKDEsImNkcy1pY29uIiwx''@;'; put 'put ''Miksb3QoKX0yJmQmJkdpKCJhcmlhLWxhYmVsIixRdCgyKS5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpfWZ1bmN0aW9uIGFmZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIsMSkoMSwiZGl2IiwyKSxHbigiQGZhZGVEb3duLmRvbmUiLGZ1bmN0aW9uKHkpe3JldHVybiBp''@;'; put 'put ''dChoKSxhKFF0KCkuZmFkZURvbmUoeSkpfSksbnQoMiwiZGl2IiwzKSxZdCgzKSxvdCgpLG50KDQsImRpdiIsNCksTmkoNSksbnQoNiwiZGl2Iiw1KSg3LCJkaXYiLDYpKDgsImRpdiIsNyksTmkoOSwxKSxvdCgpLHJuKDEwLEdqLDIsMSwiYnV0dG9uIiw4KSxvdCgpLG50KDExLCJkaXYiLDkp''@;'; put 'put ''LE5pKDEyLDIpLG90KCksTmkoMTMsMyksb3QoKSgpLG50KDE0LCJkaXYiLDMpLFl0KDE1KSxvdCgpKCksbnQoMTYsImRpdiIsMTApLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCk7cmV0dXJuIGEoeS5zdGF0aWNCYWNrZHJvcHx8eS5jbG9zZSgpKX0pLG90KCkoKX1p''@;'; put 'put ''ZigyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxGaSgibW9kYWwtc20iLCJzbSI9PWguc2l6ZSkoIm1vZGFsLWxnIiwibGciPT1oLnNpemUpKCJtb2RhbC14bCIsInhsIj09aC5zaXplKSxUdCgiQGZhZGVEb3duIixoLnNraXBBbmltYXRpb24pLEdpKCJhcmlhLWhpZGRlbiIsIWguX29wZW4pKCJh''@;'; put 'put ''cmlhLWxhYmVsbGVkYnkiLGgubGFiZWxsZWRCeSksdXQoMiksamkoaC5jb21tb25TdHJpbmdzLmtleXMubW9kYWxDb250ZW50U3RhcnQpLHV0KDUpLEk2KCJpZCIsaC5tb2RhbElkKSx1dCgyKSxUdCgibmdJZiIsaC5jbG9zYWJsZSksdXQoNSksamkoaC5jb21tb25TdHJpbmdzLmtleXMubW9k''@;'; put 'put ''YWxDb250ZW50RW5kKSx1dCgxKSxUdCgiQGZhZGUiLHZvaWQgMCl9fWNvbnN0IGxmZT1bW1siIiw4LCJtb2RhbC1uYXYiXV0sW1siIiw4LCJtb2RhbC10aXRsZSJdXSxbWyIiLDgsIm1vZGFsLWJvZHkiXV0sW1siIiw4LCJtb2RhbC1mb290ZXIiXV1dLHNmZT1bIi5tb2RhbC1uYXYiLCIubW9k''@;'; put 'put ''YWwtdGl0bGUiLCIubW9kYWwtYm9keSIsIi5tb2RhbC1mb290ZXIiXTtsZXQgd2w9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1pY29uIl1dfSksZH0p''@;'; put 'put ''KCksWm89KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNkcy1pY29uIl1dfSksZH0pKCksRHM9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1''@;'; put 'put ''bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKTtjbGFzcyBQZnt9dmFyIGdpPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5ERUZBVUxUPTBdPSJERUZBVUxUIixkW2QuTE9BRElORz0x''@;'; put 'put ''XT0iTE9BRElORyIsZFtkLlNVQ0NFU1M9Ml09IlNVQ0NFU1MiLGRbZC5FUlJPUj0zXT0iRVJST1IifShnaXx8KGdpPXt9KSksZ2kpKSgpO2xldCBnbz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMubGlzdGVuZXI9aCx0aGlzLl9sb2FkaW5nU3RhdGU9Z2kuREVGQVVMVH1nZXQg''@;'; put 'put ''bG9hZGluZ1N0YXRlKCl7cmV0dXJuIHRoaXMuX2xvYWRpbmdTdGF0ZX1zZXQgbG9hZGluZ1N0YXRlKGgpeyEwPT09aD9oPWdpLkxPQURJTkc6aHx8KGg9Z2kuREVGQVVMVCksaCE9PXRoaXMuX2xvYWRpbmdTdGF0ZSYmKHRoaXMuX2xvYWRpbmdTdGF0ZT1oLHRoaXMubGlzdGVuZXImJnRoaXMu''@;'; put 'put ''bGlzdGVuZXIubG9hZGluZ1N0YXRlQ2hhbmdlKGgpKX1uZ09uRGVzdHJveSgpe3RoaXMubG9hZGluZ1N0YXRlPWdpLkRFRkFVTFR9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFBmLDgpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3Rv''@;'; put 'put ''cnM6W1siIiwiY2xyTG9hZGluZyIsIiJdXSxpbnB1dHM6e2xvYWRpbmdTdGF0ZTpbImNsckxvYWRpbmciLCJsb2FkaW5nU3RhdGUiXX19KSxkfSkoKSxyMT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5leHBhbmRhYmxlPTAsdGhpcy5fbG9hZGluZz0hMSx0aGlzLl9leHBhbmRl''@;'; put 'put ''ZD0hMSx0aGlzLl9leHBhbmRDaGFuZ2U9bmV3ICRlfWdldCBsb2FkaW5nKCl7cmV0dXJuIHRoaXMuX2xvYWRpbmd9c2V0IGxvYWRpbmcoaCl7KGg9ISFoKSE9PXRoaXMuX2xvYWRpbmcmJih0aGlzLl9sb2FkaW5nPWgpfWdldCBleHBhbmRlZCgpe3JldHVybiB0aGlzLl9leHBhbmRlZH1zZXQg''@;'; put 'put ''ZXhwYW5kZWQoaCl7KGg9ISFoKSE9PXRoaXMuX2V4cGFuZGVkJiYodGhpcy5fZXhwYW5kZWQ9aCx0aGlzLl9leHBhbmRDaGFuZ2UubmV4dChoKSl9dG9nZ2xlKCl7dGhpcy5leHBhbmRlZD0hdGhpcy5fZXhwYW5kZWR9Z2V0IGV4cGFuZENoYW5nZSgpe3JldHVybiB0aGlzLl9leHBhbmRDaGFu''@;'; put 'put ''Z2UuYXNPYnNlcnZhYmxlKCl9bG9hZGluZ1N0YXRlQ2hhbmdlKGgpe3RoaXMubG9hZGluZz1oPT09Z2kuTE9BRElOR319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSks''@;'; put 'put ''ZH0pKCksdTI9MDtjb25zdCB5Mj1uZXcgemUoIlVOSVFVRV9JRCIpLE9jPXtwcm92aWRlOnkyLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gdmZlKCl7cmV0dXJuImNsci1pZC0iK3UyKyt9fTtsZXQgSiQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; put 'put ''ZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24tZGVzY3JpcHRpb24iXSxbImNsci1zdGVwLWRlc2NyaXB0aW9uIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWFjY29yZGlvbi1kZXNj''@;'; put 'put ''cmlwdGlvbiIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksZH0pKCk7dmFyIHM0PSgoKT0+KGZ1bmN0aW9uKGQpe2QuSW5h''@;'; put 'put ''Y3RpdmU9ImluYWN0aXZlIixkLkVycm9yPSJlcnJvciIsZC5Db21wbGV0ZT0iY29tcGxldGUifShzNHx8KHM0PXt9KSksczQpKSgpO2NvbnN0IHU0PSIwLjJzIGVhc2UtaW4tb3V0IixBZmU9WyRoKCJza2lwSW5pdGlhbFJlbmRlciIsW2J1KCI6ZW50ZXIiLFtdKV0pLCRoKCJ0b2dnbGUiLFti''@;'; put 'put ''dSgidm9pZCA9PiAqIixbeWwoe2Rpc3BsYXk6ImJsb2NrIixoZWlnaHQ6MH0pLERjKHU0LHlsKHtoZWlnaHQ6IioifSkpXSldKV0sVWo9KCRoKCJza2lwSW5pdGlhbFJlbmRlciIsW2J1KCI6ZW50ZXIiLFtdKV0pLCRoKCJ0b2dnbGUiLFtidSgidm9pZCA9PiAqIixbeWwoe2Rpc3BsYXk6ImJs''@;'; put 'put ''b2NrIixoZWlnaHQ6MH0pLERjKHU0LHlsKHtoZWlnaHQ6IioifSkpXSksYnUoIiogPT4gdm9pZCIsW3lsKHtkaXNwbGF5OiJibG9jayJ9KSxEYyh1NCx5bCh7aGVpZ2h0OjAsZGlzcGxheToibm9uZSJ9KSldKV0pLHtvcGVuOiJPcGVuIixjbG9zZToiQ2xvc2UiLHNob3c6IlNob3ciLGhpZGU6''@;'; put 'put ''IkhpZGUiLGV4cGFuZDoiRXhwYW5kIixjb2xsYXBzZToiQ29sbGFwc2UiLG1vcmU6Ik1vcmUiLHNlbGVjdDoiU2VsZWN0IixzZWxlY3RBbGw6IlNlbGVjdCBBbGwiLHByZXZpb3VzOiJQcmV2aW91cyIsbmV4dDoiTmV4dCIsY3VycmVudDoiSnVtcCB0byBjdXJyZW50IixpbmZvOiJJbmZvIixz''@;'; put 'put ''dWNjZXNzOiJTdWNjZXNzIix3YXJuaW5nOiJXYXJuaW5nIixkYW5nZXI6IkVycm9yIixyb3dBY3Rpb25zOiJBdmFpbGFibGUgYWN0aW9ucyIscGlja0NvbHVtbnM6IlNob3cgb3IgaGlkZSBjb2x1bW5zIixzaG93Q29sdW1uczoiU2hvdyBDb2x1bW5zIixzb3J0Q29sdW1uOiJTb3J0IENvbHVt''@;'; put 'put ''biIsZmlyc3RQYWdlOiJGaXJzdCBQYWdlIixsYXN0UGFnZToiTGFzdCBQYWdlIixuZXh0UGFnZToiTmV4dCBQYWdlIixwcmV2aW91c1BhZ2U6IlByZXZpb3VzIFBhZ2UiLGN1cnJlbnRQYWdlOiJDdXJyZW50IFBhZ2UiLHRvdGFsUGFnZXM6IlRvdGFsIFBhZ2VzIixmaWx0ZXJJdGVtczoiRmls''@;'; put 'put ''dGVyIGl0ZW1zIixtaW5WYWx1ZToiTWluIHZhbHVlIixtYXhWYWx1ZToiTWF4IHZhbHVlIixtb2RhbENvbnRlbnRTdGFydDoiQmVnaW5uaW5nIG9mIE1vZGFsIENvbnRlbnQiLG1vZGFsQ29udGVudEVuZDoiRW5kIG9mIE1vZGFsIENvbnRlbnQiLHNob3dDb2x1bW5zTWVudURlc2NyaXB0aW9u''@;'; put 'put ''OiJTaG93IG9yIGhpZGUgY29sdW1ucyBtZW51IixhbGxDb2x1bW5zU2VsZWN0ZWQ6IkFsbCBjb2x1bW5zIHNlbGVjdGVkIixzaWducG9zdFRvZ2dsZToiU2lnbnBvc3QgVG9nZ2xlIixzaWducG9zdENsb3NlOiJTaWducG9zdCBDbG9zZSIsbG9hZGluZzoiTG9hZGluZyIsZGV0YWlsUGFuZVN0''@;'; put 'put ''YXJ0OiJTdGFydCBvZiByb3cgZGV0YWlscyIsZGV0YWlsUGFuZUVuZDoiRW5kIG9mIHJvdyBkZXRhaWxzIixzaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWw6IlNpbmdsZSBzZWxlY3Rpb24gaGVhZGVyIixzaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsOiJTaW5nbGUgYWN0aW9uYWJsZSBoZWFkZXIi''@;'; put 'put ''LGRldGFpbEV4cGFuZGFibGVBcmlhTGFiZWw6IlRvZ2dsZSBtb3JlIHJvdyBjb250ZW50IixkYXRhZ3JpZEZpbHRlckFyaWFMYWJlbDoiRmlsdGVyIGRpYWxvZyIsZGF0YWdyaWRGaWx0ZXJEaWFsb2dBcmlhTGFiZWw6IlRvZ2dsZSBjb2x1bW4gZmlsdGVyIixjb2x1bW5TZXBhcmF0b3JBcmlh''@;'; put 'put ''TGFiZWw6IkNvbHVtbiByZXNpemUgaGFuZGxlIixjb2x1bW5TZXBhcmF0b3JEZXNjcmlwdGlvbjoiVXNlIGxlZnQgb3IgcmlnaHQga2V5IHRvIHJlc2l6ZSB0aGUgY29sdW1uIixhbGVydENsb3NlQnV0dG9uQXJpYUxhYmVsOiJDbG9zZSBhbGVydCIsZGF0ZXBpY2tlckRpYWxvZ0xhYmVsOiJD''@;'; put 'put ''aG9vc2UgZGF0ZSIsZGF0ZXBpY2tlclRvZ2dsZToiVG9nZ2xlIGRhdGVwaWNrZXIiLGRhdGVwaWNrZXJUb2dnbGVDaG9vc2VEYXRlTGFiZWw6IkNob29zZSBkYXRlIixkYXRlcGlja2VyVG9nZ2xlQ2hhbmdlRGF0ZUxhYmVsOiJDaGFuZ2UgZGF0ZSwge1NFTEVDVEVEX0RBVEV9IixkYXRlcGlj''@;'; put 'put ''a2VyUHJldmlvdXNNb250aDoiUHJldmlvdXMgbW9udGgiLGRhdGVwaWNrZXJDdXJyZW50TW9udGg6IkN1cnJlbnQgbW9udGgiLGRhdGVwaWNrZXJOZXh0TW9udGg6Ik5leHQgbW9udGgiLGRhdGVwaWNrZXJQcmV2aW91c0RlY2FkZToiUHJldmlvdXMgZGVjYWRlIixkYXRlcGlja2VyTmV4dERl''@;'; put 'put ''Y2FkZToiTmV4dCBkZWNhZGUiLGRhdGVwaWNrZXJDdXJyZW50RGVjYWRlOiJDdXJyZW50IGRlY2FkZSIsZGF0ZXBpY2tlclNlbGVjdE1vbnRoVGV4dDoiU2VsZWN0IG1vbnRoLCB0aGUgY3VycmVudCBtb250aCBpcyB7Q0FMRU5EQVJfTU9OVEh9IixkYXRlcGlja2VyU2VsZWN0WWVhclRleHQ6''@;'; put 'put ''IlNlbGVjdCB5ZWFyLCB0aGUgY3VycmVudCB5ZWFyIGlzIHtDQUxFTkRBUl9ZRUFSfSIsZGF0ZXBpY2tlclNlbGVjdGVkTGFiZWw6IntGVUxMX0RBVEV9IC0gU2VsZWN0ZWQiLHN0YWNrVmlld0NoYW5nZWQ6IlZhbHVlIGNoYW5nZWQuIixyZXNwb25zaXZlTmF2VG9nZ2xlT3BlbjoiTmF2aWdh''@;'; put 'put ''dGlvbiBtZW51IixyZXNwb25zaXZlTmF2VG9nZ2xlQ2xvc2U6Ik5hdmlnYXRpb24gbWVudSIscmVzcG9uc2l2ZU5hdk92ZXJmbG93T3BlbjoiTmF2aWdhdGlvbiBvdmVyZmxvdyBtZW51IixyZXNwb25zaXZlTmF2T3ZlcmZsb3dDbG9zZToiTmF2aWdhdGlvbiBvdmVyZmxvdyBtZW51Iix2ZXJ0''@;'; put 'put ''aWNhbE5hdkdyb3VwVG9nZ2xlOiJUb2dnbGUgdmVydGljYWwgbmF2aWdhdGlvbiBncm91cCIsdmVydGljYWxOYXZUb2dnbGU6IlRvZ2dsZSB2ZXJ0aWNhbCBuYXZpZ2F0aW9uIix0aW1lbGluZVN0ZXBOb3RTdGFydGVkOiJOb3Qgc3RhcnRlZCIsdGltZWxpbmVTdGVwQ3VycmVudDoiQ3VycmVu''@;'; put 'put ''dCIsdGltZWxpbmVTdGVwU3VjY2VzczoiQ29tcGxldGVkIix0aW1lbGluZVN0ZXBFcnJvcjoiRXJyb3IiLHRpbWVsaW5lU3RlcFByb2Nlc3Npbmc6IkluIHByb2dyZXNzIixjb21ib2JveERlbGV0ZToiRGVsZXRlIHNlbGVjdGVkIG9wdGlvbiIsY29tYm9ib3hTZWFyY2hpbmc6J1NlYXJjaGlu''@;'; put 'put ''ZyBmb3IgbWF0Y2hlcyBmb3IgIntJTlBVVH0iJyxjb21ib2JveFNlbGVjdGlvbjoiU2VsZWN0aW9uIixjb21ib2JveFNlbGVjdGVkOiJTZWxlY3RlZCIsY29tYm9ib3hOb1Jlc3VsdHM6Ik5vIHJlc3VsdHMiLGNvbWJvYm94T3BlbjoiU2hvdyBvcHRpb25zIixkYXRhZ3JpZEV4cGFuZGFibGVC''@;'; put 'put ''ZWdpbm5pbmdPZjoiQmVnaW5uaW5nIG9mIixkYXRhZ3JpZEV4cGFuZGFibGVFbmRPZjoiRW5kIG9mIixkYXRhZ3JpZEV4cGFuZGFibGVSb3dDb250ZW50OiJFeHBhbmRhYmxlIHJvdyBjb250ZW50IixkYXRhZ3JpZEV4cGFuZGFibGVSb3dzSGVscGVyVGV4dDoiU2NyZWVuIHJlYWRlciB0YWJs''@;'; put 'put ''ZSBjb21tYW5kcyBtYXkgbm90IHdvcmsgZm9yIHZpZXdpbmcgZXhwYW5kZWQgY29udGVudCwgcGxlYXNlIHVzZSB5b3VyIHNjcmVlbiByZWFkZXIncyBicm93c2UgbW9kZSB0byByZWFkIHRoZSBjb250ZW50IGV4cG9zZWQgYnkgdGhpcyBidXR0b24iLHdpemFyZFN0ZXBTdWNjZXNzOiJDb21w''@;'; put 'put ''bGV0ZWQiLHdpemFyZFN0ZXBFcnJvcjoiRXJyb3IiLHBhc3N3b3JkSGlkZToiSGlkZSBwYXNzd29yZCIscGFzc3dvcmRTaG93OiJTaG93IHBhc3N3b3JkIixzZWxlY3RlZFJvd3M6IlNlbGVjdGVkIHJvd3MifSk7bGV0IG5zPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9zdHJp''@;'; put 'put ''bmdzPVVqfWxvY2FsaXplKGgpe3RoaXMuX3N0cmluZ3M9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuX3N0cmluZ3MpLGgpfWdldCBrZXlzKCl7cmV0dXJuIHRoaXMuX3N0cmluZ3N9cGFyc2UoaCx2PXt9KXtjb25zdCB5PU9iamVjdC5rZXlzKHYpO2xldCBDPWg7cmV0dXJu''@;'; put 'put ''IHkubGVuZ3RoJiZ5LmZvckVhY2goST0+e0M9Qy5yZXBsYWNlKGB7JHtJfX1gLHZbSV0pfSksQ319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJv''@;'; put 'put ''b3QifSksZH0pKCk7dmFyIGN2PSgoKT0+KGZ1bmN0aW9uKGQpe2QuRGVmYXVsdD0iZGVmYXVsdCIsZC5NdWx0aT0ibXVsdGkifShjdnx8KGN2PXt9KSksY3YpKSgpO2xldCB3ZmU9MDtjbGFzcyBiZmV7Y29uc3RydWN0b3IoZyxoKXt0aGlzLmlkPWcsdGhpcy5hY2NvcmRpb25JZD1oLHRoaXMu''@;'; put 'put ''c3RhdHVzPXM0LkluYWN0aXZlLHRoaXMuaW5kZXg9bnVsbCx0aGlzLmRpc2FibGVkPSExLHRoaXMub3Blbj0hMSx0aGlzLnRlbXBsYXRlSWQ9YCR7dGhpcy5pZH0tJHt0aGlzLmFjY29yZGlvbklkfWB9fWNsYXNzIFgke2NvbnN0cnVjdG9yKCl7dGhpcy5zdHJhdGVneT1jdi5EZWZhdWx0LHRo''@;'; put 'put ''aXMuYWNjb3JkaW9uQ291bnQ9d2ZlKyssdGhpcy5fcGFuZWxzPXt9fWdldCBwYW5lbHMoKXtyZXR1cm4gT2JqZWN0LmtleXModGhpcy5fcGFuZWxzKS5tYXAoZz0+dGhpcy5fcGFuZWxzW2ddKX1zZXRTdHJhdGVneShnKXt0aGlzLnN0cmF0ZWd5PWd9dXBkYXRlUGFuZWxPcmRlcihnKXtnLmZv''@;'; put 'put ''ckVhY2goKGgsdik9PnRoaXMuX3BhbmVsc1toXS5pbmRleD12KSx0aGlzLnJlbW92ZU9sZFBhbmVscyhnKX1hZGRQYW5lbChnLGg9ITEpe3RoaXMuX3BhbmVsc1tnXT1uZXcgYmZlKGcsdGhpcy5hY2NvcmRpb25Db3VudCksdGhpcy5fcGFuZWxzW2ddLm9wZW49aH10b2dnbGVQYW5lbChnLGgp''@;'; put 'put ''e2NvbnN0IHk9dm9pZCAwIT09aD9oOiF0aGlzLl9wYW5lbHNbZ10ub3Blbjt5JiZ0aGlzLnN0cmF0ZWd5PT09Y3YuRGVmYXVsdCYmdGhpcy5jbG9zZUFsbFBhbmVscygpLHRoaXMuX3BhbmVsc1tnXS5vcGVuPXl9ZGlzYWJsZVBhbmVsKGcsaCl7dGhpcy5fcGFuZWxzW2ddLmRpc2FibGVkPWh9''@;'; put 'put ''Y2xvc2VBbGxQYW5lbHMoKXt0aGlzLnBhbmVscy5mb3JFYWNoKGc9PnRoaXMuX3BhbmVsc1tnLmlkXS5vcGVuPSExKX1yZW1vdmVPbGRQYW5lbHMoZyl7dGhpcy5wYW5lbHMuZmlsdGVyKGg9PnZvaWQgMD09PWcuZmluZCh2PT52PT09aC5pZCkpLmZvckVhY2goaD0+ZGVsZXRlIHRoaXMuX3Bh''@;'; put 'put ''bmVsc1toLmlkXSl9fWxldCBvUz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5hY2NvcmRpb249bmV3IFgkLHRoaXMuX3BhbmVsc0NoYW5nZXM9bmV3IGZzKHRoaXMuYWNjb3JkaW9uLnBhbmVscyl9Z2V0UGFuZWxDaGFuZ2VzKGgpe3JldHVybiB0aGlzLl9wYW5lbHNDaGFuZ2Vz''@;'; put 'put ''LnBpcGUobXQodj0+di5maW5kKHk9PnkuaWQ9PT1oKSkpfXNldFN0cmF0ZWd5KGgpe3RoaXMuYWNjb3JkaW9uLnNldFN0cmF0ZWd5KGgpfWFkZFBhbmVsKGgsdj0hMSl7dGhpcy5hY2NvcmRpb24uYWRkUGFuZWwoaCx2KSx0aGlzLmVtaXRVcGRhdGVkUGFuZWxzKCl9dG9nZ2xlUGFuZWwoaCx2''@;'; put 'put ''KXt0aGlzLmFjY29yZGlvbi50b2dnbGVQYW5lbChoLHYpLHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKX1kaXNhYmxlUGFuZWwoaCx2KXt0aGlzLmFjY29yZGlvbi5kaXNhYmxlUGFuZWwoaCx2KSx0aGlzLmVtaXRVcGRhdGVkUGFuZWxzKCl9dXBkYXRlUGFuZWxPcmRlcihoKXt0aGlzLmFjY29y''@;'; put 'put ''ZGlvbi51cGRhdGVQYW5lbE9yZGVyKGgpLHRoaXMuZW1pdFVwZGF0ZWRQYW5lbHMoKX1lbWl0VXBkYXRlZFBhbmVscygpe3RoaXMuX3BhbmVsc0NoYW5nZXMubmV4dCh0aGlzLmFjY29yZGlvbi5wYW5lbHMpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; put 'put ''KX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxPTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuY29tbW9uU3RyaW5ncz1oLHRoaXMuYWNjb3JkaW9uU2VydmljZT12LHRoaXMuaWZFeHBhbmRTZXJ2aWNlPXksdGhp''@;'; put 'put ''cy5faWQ9Qyx0aGlzLmRpc2FibGVkPSExLHRoaXMucGFuZWxPcGVuPSExLHRoaXMucGFuZWxPcGVuQ2hhbmdlPW5ldyBhcix0aGlzLkFjY29yZGlvblN0YXR1cz1zNCx0aGlzLmlzQWNjb3JkaW9uPSEwfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQoaCl7dGhpcy5faWQ9aH1uZ09u''@;'; put 'put ''SW5pdCgpe3RoaXMucGFuZWw9dGhpcy5hY2NvcmRpb25TZXJ2aWNlLmdldFBhbmVsQ2hhbmdlcyh0aGlzLmlkKS5waXBlKHlhKGg9PnRoaXMuZW1pdFBhbmVsQ2hhbmdlKGgpKSksdGhpcy5hY2NvcmRpb25TZXJ2aWNlLmFkZFBhbmVsKHRoaXMuaWQsdGhpcy5wYW5lbE9wZW4pLHRoaXMuYWNj''@;'; put 'put ''b3JkaW9uU2VydmljZS50b2dnbGVQYW5lbCh0aGlzLmlkLHRoaXMucGFuZWxPcGVuKSx0aGlzLmFjY29yZGlvblNlcnZpY2UuZGlzYWJsZVBhbmVsKHRoaXMuaWQsdGhpcy5kaXNhYmxlZCl9bmdPbkNoYW5nZXMoaCl7dGhpcy5wYW5lbCYmaC5wYW5lbE9wZW4mJmgucGFuZWxPcGVuLmN1cnJl''@;'; put 'put ''bnRWYWx1ZSE9PWgucGFuZWxPcGVuLnByZXZpb3VzVmFsdWUmJnRoaXMuYWNjb3JkaW9uU2VydmljZS50b2dnbGVQYW5lbCh0aGlzLmlkLGgucGFuZWxPcGVuLmN1cnJlbnRWYWx1ZSksdGhpcy5wYW5lbCYmaC5kaXNhYmxlZCYmaC5kaXNhYmxlZC5jdXJyZW50VmFsdWUhPT1oLmRpc2FibGVk''@;'; put 'put ''LnByZXZpb3VzVmFsdWUmJnRoaXMuYWNjb3JkaW9uU2VydmljZS5kaXNhYmxlUGFuZWwodGhpcy5pZCxoLmRpc2FibGVkLmN1cnJlbnRWYWx1ZSl9dG9nZ2xlUGFuZWwoKXt0aGlzLmFjY29yZGlvblNlcnZpY2UudG9nZ2xlUGFuZWwodGhpcy5pZCl9Y29sbGFwc2VQYW5lbE9uQW5pbWF0aW9u''@;'; put 'put ''RG9uZShoKXtoLm9wZW58fCh0aGlzLmlmRXhwYW5kU2VydmljZS5leHBhbmRlZD0hMSl9Z2V0UGFuZWxTdGF0ZUNsYXNzZXMoaCl7cmV0dXJuYGNsci1hY2NvcmRpb24tcGFuZWwtJHtoLnN0YXR1c30gJHtoLm9wZW4/ImNsci1hY2NvcmRpb24tcGFuZWwtb3BlbiI6IiJ9YH1nZXRBY2NvcmRp''@;'; put 'put ''b25Db250ZW50SWQoaCl7cmV0dXJuYGNsci1hY2NvcmRpb24tY29udGVudC0ke2h9J2B9Z2V0QWNjb3JkaW9uSGVhZGVySWQoaCl7cmV0dXJuYGNsci1hY2NvcmRpb24taGVhZGVyLSR7aH1gfWVtaXRQYW5lbENoYW5nZShoKXtoLm9wZW4hPT10aGlzLnBhbmVsT3BlbiYmKHRoaXMucGFuZWxP''@;'; put 'put ''cGVuQ2hhbmdlLmVtaXQoaC5vcGVuKSx0aGlzLnBhbmVsT3Blbj1oLm9wZW4pLGgub3BlbiYmKHRoaXMuaWZFeHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QobnMpLEt0KG9TKSxLdChyMSksS3QoeTIp''@;'; put 'put ''KX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFjY29yZGlvbi1wYW5lbCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LEokLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuYWNjb3JkaW9uRGVzY3JpcHRpb249Qyl9fSxo''@;'; put 'put ''b3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1hY2NvcmRpb24tcGFuZWwiLCEwKX0saW5wdXRzOntkaXNhYmxlZDpbImNsckFjY29yZGlvblBhbmVsRGlzYWJsZWQiLCJkaXNhYmxlZCJdLHBhbmVsT3BlbjpbImNsckFjY29yZGlvblBhbmVsT3BlbiIs''@;'; put 'put ''InBhbmVsT3BlbiJdfSxvdXRwdXRzOntwYW5lbE9wZW5DaGFuZ2U6ImNsckFjY29yZGlvblBhbmVsT3BlbkNoYW5nZSJ9LGZlYXR1cmVzOltobyhbcjEsT2NdKSxEMl0sbmdDb250ZW50U2VsZWN0b3JzOnFLLGRlY2xzOjIsdmFyczozLGNvbnN0czpbWzQsIm5nSWYiXSxbImFyaWEtbGl2ZSIs''@;'; put 'put ''ImFzc2VydGl2ZSIsImNsYXNzIiwiY2xyLXNyLW9ubHkiLDQsIm5nSWYiXSxbMywibmdDbGFzcyJdLFsxLCJjbHItYWNjb3JkaW9uLWhlYWRlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uIiwzLCJpZCIsImRpc2FibGVkIiwiY2xpY2siXSxbImhl''@;'; put 'put ''YWRlckJ1dHRvbiIsIiJdLFsxLCJjbHItc3Itb25seSJdLFsxLCJjbHItYWNjb3JkaW9uLXN0YXR1cyJdLFsic2hhcGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0IiwxLCJjbHItYWNjb3JkaW9uLWFuZ2xlIl0sWzEsImNsci1hY2NvcmRpb24tbnVtYmVyIl0sWyJzdGF0dXMiLCJkYW5n''@;'; put 'put ''ZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsMSwiY2xyLWFjY29yZGlvbi1lcnJvci1pY29uIl0sWyJzdGF0dXMiLCJzdWNjZXNzIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLDEsImNsci1hY2NvcmRpb24tY29tcGxldGUtaWNvbiJdLFsicm9sZSIsInJlZ2lvbiIsMywiaWQiXSxb''@;'; put 'put ''ImNsYXNzIiwiY2xyLWFjY29yZGlvbi1jb250ZW50Iiw0LCJuZ0lmIl0sWyJhcmlhLWxpdmUiLCJhc3NlcnRpdmUiLDEsImNsci1zci1vbmx5Il0sWzEsImNsci1hY2NvcmRpb24tY29udGVudCJdLFsxLCJjbHItYWNjb3JkaW9uLWlubmVyLWNvbnRlbnQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24o''@;'; put 'put ''aCx2KXsxJmgmJihLMCgkSykscm4oMCx0dWUsMTksMTgsIm5nLWNvbnRhaW5lciIsMCksbm4oMSwiYXN5bmMiKSksMiZoJiZUdCgibmdJZiIsenQoMSwxLHYucGFuZWwpKX0sZGVwZW5kZW5jaWVzOltObyxsYyxabyxXaF0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpBZmV9LGNo''@;'; put 'put ''YW5nZURldGVjdGlvbjowfSksZH0pKCksSyQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmFjY29yZGlvblNlcnZpY2U9aCx0aGlzLm11bHRpUGFuZWw9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdfW5nT25Jbml0KCl7dGhpcy5zZXRBY2NvcmRpb25TdHJhdGVneSgpfW5nT25D''@;'; put 'put ''aGFuZ2VzKGgpe2gubXVsdGlQYW5lbC5jdXJyZW50VmFsdWUhPT1oLm11bHRpUGFuZWwucHJldmlvdXNWYWx1ZSYmdGhpcy5zZXRBY2NvcmRpb25TdHJhdGVneSgpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yRE9NQ2hhbmdlcygpKX1u''@;'; put 'put ''Z09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9c2V0QWNjb3JkaW9uU3RyYXRlZ3koKXt0aGlzLmFjY29yZGlvblNlcnZpY2Uuc2V0U3RyYXRlZ3kodGhpcy5tdWx0aVBhbmVsP2N2Lk11bHRpOmN2LkRlZmF1bHQpfWxpc3RlbkZvckRP''@;'; put 'put ''TUNoYW5nZXMoKXtyZXR1cm4gdGhpcy5wYW5lbHMuY2hhbmdlcy5waXBlKE41KHRoaXMucGFuZWxzKSkuc3Vic2NyaWJlKGg9PnRoaXMuYWNjb3JkaW9uU2VydmljZS51cGRhdGVQYW5lbE9yZGVyKGgudG9BcnJheSgpLm1hcCh2PT52LmlkKSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rp''@;'; put 'put ''b24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChvUykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWNjb3JkaW9uIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksT0wsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5wYW5l''@;'; put 'put ''bHM9Qyl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1hY2NvcmRpb24iLCEwKX0saW5wdXRzOnttdWx0aVBhbmVsOlsiY2xyQWNjb3JkaW9uTXVsdGlQYW5lbCIsIm11bHRpUGFuZWwiXX0sZmVhdHVyZXM6W2hvKFtvU10pLEQyXSxuZ0NvbnRl''@;'; put 'put ''bnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksZH0pKCksJCQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3Jl''@;'; put 'put ''dHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24tY29udGVudCJdLFsiY2xyLXN0ZXAtY29udGVudCJdXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihL''@;'; put 'put ''MCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksZH0pKCkscSQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hY2Nv''@;'; put 'put ''cmRpb24tdGl0bGUiXSxbImNsci1zdGVwLXRpdGxlIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWFjY29yZGlvbi10aXRsZSIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2''@;'; put 'put ''KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksZH0pKCksYXc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2Nob2NvbGF0ZT1uZXcgJGUsdGhpcy5kaXNhYmxlQ2hvY29sYXRlQ2hlY2s9ITF9Z2V0IGNob2NvbGF0ZSgpe3Jl''@;'; put 'put ''dHVybiB0aGlzLl9jaG9jb2xhdGUuYXNPYnNlcnZhYmxlKCl9bmdBZnRlclZpZXdDaGVja2VkKCl7dGhpcy5kaXNhYmxlQ2hvY29sYXRlQ2hlY2t8fHRoaXMuX2Nob2NvbGF0ZS5uZXh0KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3''@;'; put 'put ''NWRpcj1XaSh7dHlwZTpkfSksZH0pKCksbHc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuc3Vic2NyaXB0aW9uPXYuY2hvY29sYXRlLnN1YnNjcmliZSgoKT0+e3RoaXMubGF0ZXN0Rmxhdm9yIT09dGhpcy5mbGF2b3ImJih2LmRpc2FibGVDaG9jb2xhdGVDaGVjaz0hMCxo''@;'; put 'put ''LmRldGVjdENoYW5nZXMoKSx2LmRpc2FibGVDaG9jb2xhdGVDaGVjaz0hMSl9KX1uZ0FmdGVyQ29udGVudENoZWNrZWQoKXt0aGlzLmxhdGVzdEZsYXZvcj10aGlzLmZsYXZvcn1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZh''@;'; put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxKSxLdChhdykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkfSksZH0pKCksUWo9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGF3e31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7cmV0''@;'; put 'put ''dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24iXV0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLGVxPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBsd3tjb25zdHJ1Y3RvcihoLHYseSl7aWYoIXYpdGhyb3cgbmV3''@;'; put 'put ''IEVycm9yKCJjbHItYWNjb3JkaW9uLXBhbmVsIHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGNsci1hY2NvcmRpb24iKTtzdXBlcihoLHYpLHRoaXMuZXhwYW5kPXl9Z2V0IGZsYXZvcigpe3JldHVybiB0aGlzLmV4cGFuZC5leHBhbmRlZH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZDEpLEt0KFFqLDgpLEt0KHIxKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1hY2NvcmRpb24tcGFuZWwiXV0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLHRxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtocy5h''@;'; put 'put ''ZGRJY29ucyhEeSxLaCxUZil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxEc11dfSksZH0pKCksTHM9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUw''@;'; put 'put ''Mjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLERzLHRxXSx0cV19KSxkfSkoKTt2YXIgTTA9KCgpPT4oZnVuY3Rpb24oZCl7ZC5BcnJvd0xlZnQ9IkFycm93TGVmdCIsZC5BcnJv''@;'; put 'put ''d1VwPSJBcnJvd1VwIixkLkFycm93UmlnaHQ9IkFycm93UmlnaHQiLGQuQXJyb3dEb3duPSJBcnJvd0Rvd24iLGQuQmFja3NwYWNlPSJCYWNrc3BhY2UiLGQuVGFiPSJUYWIiLGQuRW50ZXI9IkVudGVyIixkLkVzY2FwZT0iRXNjYXBlIixkLlNwYWNlPSJTcGFjZSIsZC5TcGFjZWJhcj0iICIs''@;'; put 'put ''ZC5Ib21lPSJIb21lIixkLkVuZD0iRW5kIn0oTTB8fChNMD17fSkpLE0wKSkoKSxmYz0oKCk9PihmdW5jdGlvbihkKXtkLkFycm93VXA9IlVwIixkLkFycm93RG93bj0iRG93biIsZC5BcnJvd1JpZ2h0PSJSaWdodCIsZC5BcnJvd0xlZnQ9IkxlZnQiLGQuU3BhY2U9IlNwYWNlYmFyIixkLkVz''@;'; put 'put ''Y2FwZT0iRXNjIixkLkhvbWU9IkhvbWUiLGQuRW5kPSJFbmQiLGQuRW50ZXI9IkVudGVyIixkLlRhYj0iVGFiIn0oZmN8fChmYz17fSkpLGZjKSkoKTtmdW5jdGlvbiBhUyhkKXtyZXR1cm4gZD09PU0wLkFycm93VXB8fGQ9PT1mYy5BcnJvd1VwP00wLkFycm93VXA6ZD09PU0wLkFycm93RG93''@;'; put 'put ''bnx8ZD09PWZjLkFycm93RG93bj9NMC5BcnJvd0Rvd246ZD09PU0wLkFycm93UmlnaHR8fGQ9PT1mYy5BcnJvd1JpZ2h0P00wLkFycm93UmlnaHQ6ZD09PU0wLkFycm93TGVmdHx8ZD09PWZjLkFycm93TGVmdD9NMC5BcnJvd0xlZnQ6ZD09PU0wLlNwYWNlfHxkPT09ZmMuU3BhY2U/TTAuU3Bh''@;'; put 'put ''Y2U6ZD09PU0wLkVzY2FwZXx8ZD09PWZjLkVzY2FwZT9NMC5Fc2NhcGU6ZH1mdW5jdGlvbiBNcChkKXtjb25zdCBnPWFTKGQua2V5KTsoZz09PU0wLkFycm93VXB8fGc9PT1NMC5BcnJvd0Rvd258fGc9PT1NMC5BcnJvd0xlZnR8fGc9PT1NMC5BcnJvd1JpZ2h0KSYmZC5wcmV2ZW50RGVmYXVs''@;'; put 'put ''dCgpfWxldCB6cz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fb3Blbj0hMSx0aGlzLl9vcGVuQ2hhbmdlPW5ldyAkZSx0aGlzLl9vcGVuRXZlbnRDaGFuZ2U9bmV3ICRlLHRoaXMuX3BvcG92ZXJBbGlnbmVkPW5ldyAkZX1nZXQgb3BlbkNoYW5nZSgpe3JldHVybiB0aGlzLl9v''@;'; put 'put ''cGVuQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpfXNldCBvcGVuRXZlbnQoaCl7dGhpcy5fb3BlbkV2ZW50PWgsdGhpcy5fb3BlbkV2ZW50Q2hhbmdlLm5leHQoaCl9Z2V0IG9wZW5FdmVudCgpe3JldHVybiB0aGlzLl9vcGVuRXZlbnR9Z2V0RXZlbnRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fb3BlbkV2''@;'; put 'put ''ZW50Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpfXNldCBvcGVuKGgpe3RoaXMuX29wZW4hPT0oaD0hIWgpJiYodGhpcy5fb3Blbj1oLHRoaXMuX29wZW5DaGFuZ2UubmV4dChoKSl9Z2V0IG9wZW4oKXtyZXR1cm4gdGhpcy5fb3Blbn1nZXQgb3JpZ2luYWxFdmVudCgpe3JldHVybiB0aGlzLl9vcGVu''@;'; put 'put ''RXZlbnR9dG9nZ2xlV2l0aEV2ZW50KGgpe01wKGgpLHRoaXMub3BlbkV2ZW50PWgsdGhpcy5vcGVuPSF0aGlzLm9wZW59Z2V0IHBvcG92ZXJBbGlnbmVkKCl7cmV0dXJuIHRoaXMuX3BvcG92ZXJBbGlnbmVkLmFzT2JzZXJ2YWJsZSgpfXBvcG92ZXJBbGlnbmVkRW1pdChoKXt0aGlzLl9wb3Bv''@;'; put 'put ''dmVyQWxpZ25lZC5uZXh0KGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxoOD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnJl''@;'; put 'put ''bmRlcmVyPWgsdGhpcy5zbWFydE9wZW5TZXJ2aWNlPXYsdGhpcy5kb2N1bWVudD15LHRoaXMub3V0c2lkZUNsaWNrQ2xvc2U9ITAsdGhpcy5zY3JvbGxUb0Nsb3NlPSEwLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh2Lm9wZW5DaGFuZ2Uuc3Vic2NyaWJl''@;'; put 'put ''KEM9PntDPyh0aGlzLmFkZEVzY2FwZUxpc3RlbmVyKCksdGhpcy5hZGRDbGlja0xpc3RlbmVyKCksdGhpcy5hZGRTY3JvbGxMaXN0ZW5lcigpKTp0aGlzLnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCl9KSx2LmdldEV2ZW50Q2hhbmdlKCkuc3Vic2NyaWJlKEM9Pnt0aGlzLmlnbm9yZWRFdmVu''@;'; put 'put ''dD1DfSkpfWFkZFNjcm9sbExpc3RlbmVyKCl7dGhpcy5zY3JvbGxUb0Nsb3NlJiYodGhpcy5kb2N1bWVudFNjcm9sbGVyPXQ4KHRoaXMuZG9jdW1lbnQsInNjcm9sbCIse2NhcHR1cmU6ITB9KSx0aGlzLnNjcm9sbFN1YnNjcmlwdGlvbj10aGlzLmRvY3VtZW50U2Nyb2xsZXIucGlwZShPMih0''@;'; put 'put ''aGlzLnRlc3RGb3JTbWFydFBvcG92ZXJDb250ZW50Q29udGFpbmVyKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW49ITEsdGhpcy5zZXRBbmNob3JGb2N1cygpfSkpfXJlbW92ZVNjcm9sbExpc3RlbmVyKCl7dGhpcy5kb2N1bWVudFNjcm9sbGVyJiYodGhpcy5z''@;'; put 'put ''Y3JvbGxTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSxkZWxldGUgdGhpcy5kb2N1bWVudFNjcm9sbGVyKX10ZXN0Rm9yU21hcnRQb3BvdmVyQ29udGVudENvbnRhaW5lcihoKXtsZXQgdj1oLnRhcmdldDtmb3IoO3YuY2xhc3NMaXN0JiYiYm9keSIhPT12LnBhcmVudEVsZW1lbnQubG9jYWxO''@;'; put 'put ''YW1lOyl2PXYucGFyZW50RWxlbWVudDtyZXR1cm4hIXYuY2xhc3NMaXN0JiYhdi5jbGFzc0xpc3QuY29udGFpbnMoImNsci1wb3BvdmVyLWNvbnRlbnQiKX1hZGRDbGlja0xpc3RlbmVyKCl7dGhpcy5vdXRzaWRlQ2xpY2tDbG9zZSYmKHRoaXMuZG9jdW1lbnRDbGlja0xpc3RlbmVyPXRoaXMu''@;'; put 'put ''cmVuZGVyZXIubGlzdGVuKHRoaXMuZG9jdW1lbnQsImNsaWNrIixoPT57aD09PXRoaXMuaWdub3JlZEV2ZW50P2RlbGV0ZSB0aGlzLmlnbm9yZWRFdmVudDoodGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW49ITEsaC50YXJnZXQuZm9jdXMoKSl9KSl9cmVtb3ZlQ2xpY2tMaXN0ZW5lcigpe3Ro''@;'; put 'put ''aXMub3V0c2lkZUNsaWNrQ2xvc2UmJihkZWxldGUgdGhpcy5pZ25vcmVkRXZlbnQsdGhpcy5kb2N1bWVudENsaWNrTGlzdGVuZXImJih0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcigpLGRlbGV0ZSB0aGlzLmRvY3VtZW50Q2xpY2tMaXN0ZW5lcikpfWFkZEVzY2FwZUxpc3RlbmVyKCl7dGhp''@;'; put 'put ''cy5lc2NhcGVMaXN0ZW5lcj10aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmRvY3VtZW50LCJrZXlkb3duLmVzY2FwZSIsKCk9Pnt0aGlzLnNtYXJ0T3BlblNlcnZpY2Uub3Blbj0hMSx0aGlzLnNldEFuY2hvckZvY3VzKCl9KX1yZW1vdmVFc2NhcGVMaXN0ZW5lcigpe3RoaXMuZXNjYXBlTGlz''@;'; put 'put ''dGVuZXImJih0aGlzLmVzY2FwZUxpc3RlbmVyKCksZGVsZXRlIHRoaXMuZXNjYXBlTGlzdGVuZXIpfXNldCBhbmNob3JCdXR0b25SZWYoaCl7dGhpcy5fYW5jaG9yQnV0dG9uUmVmPWh9Z2V0IGFuY2hvckJ1dHRvblJlZigpe3JldHVybiB0aGlzLl9hbmNob3JCdXR0b25SZWZ9c2V0IGNsb3Nl''@;'; put 'put ''QnV0dG9uUmVmKGgpe3RoaXMuX2Nsb3NlQnV0dG9uUmVmPWh9Z2V0IGNsb3NlQnV0dG9uUmVmKCl7cmV0dXJuIHRoaXMuX2Nsb3NlQnV0dG9uUmVmfXNldENsb3NlRm9jdXMoKXt0aGlzLl9jbG9zZUJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9c2V0QW5jaG9yRm9jdXMoKXt0aGlz''@;'; put 'put ''LmFuY2hvckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCl9c2V0IGNvbnRlbnRSZWYoaCl7dGhpcy5fY29udGVudFJlZj1ofWdldCBjb250ZW50UmVmKCl7cmV0dXJuIHRoaXMuX2NvbnRlbnRSZWZ9cmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKXt0aGlzLnJlbW92ZVNjcm9sbExpc3Rl''@;'; put 'put ''bmVyKCksdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyKCksdGhpcy5yZW1vdmVFc2NhcGVMaXN0ZW5lcigpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKSx0aGlzLnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCl9fXJldHVybiBkLlx1''@;'; put 'put ''MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEdhKSxDaSh6cyksQ2koZ3MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx1dz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7aC5hbmNob3JCdXR0b25SZWY9''@;'; put 'put ''dn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoaDgpLEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJBbmNob3IiLCIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2''@;'; put 'put ''KXsyJmgmJkZpKCJjbHItYW5jaG9yIiwhMCl9fSksZH0pKCkscnE9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5lbGVtZW50UmVmPWgsdGhpcy5zbWFydEV2ZW50c1NlcnZpY2U9dix0aGlzLnNtYXJ0T3BlblNlcnZpY2U9eSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhp''@;'; put 'put ''cy5jbG9zZUNoYW5nZT1uZXcgYXIsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goeS5vcGVuQ2hhbmdlLnBpcGUoTzIoQz0+IUMpKS5zdWJzY3JpYmUoKCk9Pnt0aGlzLmNsb3NlQ2hhbmdlLm5leHQoKX0pKX1oYW5kbGVDbGljayhoKXt0aGlzLnNtYXJ0T3BlblNlcnZpY2UudG9nZ2xlV2l0aEV2''@;'; put 'put ''ZW50KGgpLHRoaXMuc21hcnRFdmVudHNTZXJ2aWNlLnNldEFuY2hvckZvY3VzKCl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zbWFydEV2ZW50c1NlcnZpY2UuY2xvc2VCdXR0b25SZWY9dGhpcy5lbGVtZW50UmVmLHRoaXMuc21hcnRFdmVudHNTZXJ2aWNlLnNldENsb3NlRm9jdXMoKX1uZ09u''@;'; put 'put ''RGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSxLdChoOCksS3QoenMpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1si''@;'; put 'put ''IiwiY2xyUG9wb3ZlckNsb3NlQnV0dG9uIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB2LmhhbmRsZUNsaWNrKEMpfSksMiZoJiZGaSgiY2xyLXNtYXJ0LWNsb3NlLWJ1dHRvbiIsITApfSxvdXRw''@;'; put 'put ''dXRzOntjbG9zZUNoYW5nZToiY2xyUG9wb3Zlck9uQ2xvc2VDaGFuZ2UifX0pLGR9KSgpO3ZhciAkMT0oKCk9PihmdW5jdGlvbihkKXtkW2QuVkVSVElDQUw9MF09IlZFUlRJQ0FMIixkW2QuSE9SSVpPTlRBTD0xXT0iSE9SSVpPTlRBTCJ9KCQxfHwoJDE9e30pKSwkMSkpKCksX289KCgpPT4o''@;'; put 'put ''ZnVuY3Rpb24oZCl7ZFtkLlNUQVJUPTBdPSJTVEFSVCIsZFtkLkNFTlRFUj0uNV09IkNFTlRFUiIsZFtkLkVORD0xXT0iRU5EIn0oX298fChfbz17fSkpLF9vKSkoKSxCaT0oKCk9PihmdW5jdGlvbihkKXtkW2QuQk9UVE9NPTBdPSJCT1RUT00iLGRbZC5MRUZUPTFdPSJMRUZUIixkW2QuUklH''@;'; put 'put ''SFQ9Ml09IlJJR0hUIixkW2QuVE9QPTNdPSJUT1AifShCaXx8KEJpPXt9KSksQmkpKSgpO2NvbnN0IGQ4PWQ9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxkKSx7c2lkZTotMSpkLnNpZGV9KSxxMD0oZCxnKT0+e2NvbnN0IGg9ZC5jb250ZW50KyhnPy41Oi0uNSk7cmV0dXJuIGg8''@;'; put 'put ''MHx8aD4xP2Q6T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LGQpLHtjb250ZW50Omh9KX07ZnVuY3Rpb24gUjIoZCxnLGgpe3JldHVybiB2PT5nKGQodiksaCl9ZnVuY3Rpb24gbzMoZCxnLGgpe2xldCB2PWcubGVmdCx5PWcudG9wO3N3aXRjaChkLmF4aXMrZC5zaWRlKXtjYXNlLTE6''@;'; put 'put ''dis9S2ooZCxnLGgpLHktPWguaGVpZ2h0O2JyZWFrO2Nhc2UgMTp2Kz1LaihkLGcsaCkseSs9Zy5oZWlnaHQ7YnJlYWs7Y2FzZSAwOnYtPWgud2lkdGgseSs9aXEoZCxnLGgpO2JyZWFrO2Nhc2UgMjp2Kz1nLndpZHRoLHkrPWlxKGQsZyxoKX1yZXR1cm57eE9mZnNldDp2LHlPZmZzZXQ6eX19''@;'; put 'put ''ZnVuY3Rpb24gS2ooZCxnLGgpe2xldCB2PTA7c3dpdGNoKGQuYW5jaG9yKXtjYXNlIF9vLlNUQVJUOmJyZWFrO2Nhc2UgX28uQ0VOVEVSOnYrPWcud2lkdGgvMjticmVhaztjYXNlIF9vLkVORDp2Kz1nLndpZHRofXN3aXRjaChkLmNvbnRlbnQpe2Nhc2UgX28uU1RBUlQ6YnJlYWs7Y2FzZSBf''@;'; put 'put ''by5DRU5URVI6di09aC53aWR0aC8yO2JyZWFrO2Nhc2UgX28uRU5EOnYtPWgud2lkdGh9cmV0dXJuIHZ9ZnVuY3Rpb24gaXEoZCxnLGgpe2xldCB2PTA7c3dpdGNoKGQuYW5jaG9yKXtjYXNlIF9vLlNUQVJUOmJyZWFrO2Nhc2UgX28uQ0VOVEVSOnYrPWcuaGVpZ2h0LzI7YnJlYWs7Y2FzZSBf''@;'; put 'put ''by5FTkQ6dis9Zy5oZWlnaHR9c3dpdGNoKGQuY29udGVudCl7Y2FzZSBfby5TVEFSVDpicmVhaztjYXNlIF9vLkNFTlRFUjp2LT1oLmhlaWdodC8yO2JyZWFrO2Nhc2UgX28uRU5EOnYtPWguaGVpZ2h0fXJldHVybiB2fWxldCBHcz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhp''@;'; put 'put ''cy5ldmVudFNlcnZpY2U9aCx0aGlzLnBsYXRmb3JtSWQ9dix0aGlzLl9zaG91bGRSZWFsaWduPW5ldyAkZSx0aGlzLnNob3VsZFJlYWxpZ249dGhpcy5fc2hvdWxkUmVhbGlnbi5hc09ic2VydmFibGUoKX1yZWFsaWduKCl7dGhpcy5fc2hvdWxkUmVhbGlnbi5uZXh0KCl9c2V0IHBvc2l0aW9u''@;'; put 'put ''KGgpe3RoaXMuX3Bvc2l0aW9uPWh9Z2V0IHBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuX3Bvc2l0aW9ufWFsaWduQ29udGVudChoKXtpZighU2wodGhpcy5wbGF0Zm9ybUlkKSlyZXR1cm57eE9mZnNldDowLHlPZmZzZXQ6MH07dGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzPXRoaXMuZXZlbnRTZXJ2''@;'; put 'put ''aWNlLmFuY2hvckJ1dHRvblJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHM9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKHRoaXMucG9zaXRpb24sdGhpcy5jdXJyZW50QW5jaG9y''@;'; put 'put ''Q29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2NvbnN0IHY9ZnVuY3Rpb24gQ28oZCxnKXtjb25zdCBoPVtdLHZfYm90dG9tPWQueU9mZnNldCtnLmhlaWdodCx2X2xlZnQ9ZC54T2Zmc2V0LHZfcmlnaHQ9ZC54T2Zmc2V0K2cud2lkdGg7cmV0dXJuIGQueU9mZnNldD49MHx8aC5w''@;'; put 'put ''dXNoKEJpLlRPUCksdl9sZWZ0Pj0wfHxoLnB1c2goQmkuTEVGVCksdl9ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpfHxoLnB1c2goQmkuQk9UVE9NKSx2X3JpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50''@;'; put 'put ''LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl8fGgucHVzaChCaS5SSUdIVCksaH0odGhpcy5jb250ZW50T2Zmc2V0cyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKSx5PXYucmVkdWNlKChDLEkpPT5DK0ksMCk7cmV0dXJuIDE9PT12Lmxlbmd0aCYmdGhpcy5wb3NpdGlvbi5heGlzPT09''@;'; put 'put ''JDEuVkVSVElDQUw/dGhpcy5oYW5kbGVWZXJ0aWNhbEF4aXNPbmVWaW9sYXRpb24oeSk6MT09PXYubGVuZ3RoJiZ0aGlzLnBvc2l0aW9uLmF4aXM9PT0kMS5IT1JJWk9OVEFMP3RoaXMuaGFuZGxlSG9yaXpvbnRhbEF4aXNPbmVWaW9sYXRpb24oeSk6Mj09PXYubGVuZ3RoJiZ0aGlzLnBvc2l0''@;'; put 'put ''aW9uLmF4aXM9PT0kMS5WRVJUSUNBTD90aGlzLmhhbmRsZVZlcnRpY2FsQXhpc1R3b1Zpb2xhdGlvbnMoeSk6Mj09PXYubGVuZ3RoJiZ0aGlzLnBvc2l0aW9uLmF4aXM9PT0kMS5IT1JJWk9OVEFMJiZ0aGlzLmhhbmRsZUhvcml6b250YWxBeGlzVHdvVmlvbGF0aW9ucyh5KSx0aGlzLmNvbnRl''@;'; put 'put ''bnRPZmZzZXRzfWhhbmRsZVZlcnRpY2FsQXhpc09uZVZpb2xhdGlvbihoKXtzd2l0Y2goaCl7Y2FzZSAwOmNhc2UgMzp0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKGQ4KHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVh''@;'; put 'put ''aztjYXNlIDE6dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh0aGlzLnBvc2l0aW9uLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKSx0aGlzLmNvbnRlbnRPZmZzZXRzLnhPZmZzZXQ8MCYmKHRoaXMuY29udGVudE9mZnNldHMueE9mZnNldD0xMCk7YnJl''@;'; put 'put ''YWs7Y2FzZSAyOnRoaXMuY29udGVudE9mZnNldHM9bzMocTAodGhpcy5wb3NpdGlvbiwhMCksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpfX1oYW5kbGVWZXJ0aWNhbEF4aXNUd29WaW9sYXRpb25zKGgpe3N3aXRjaChoKXtjYXNlIDU6e2NvbnN0''@;'; put 'put ''IHY9UjIoZDgscTAsITApO3RoaXMuY29udGVudE9mZnNldHM9bzModih0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWt9Y2FzZSA0Ontjb25zdCB2PVIyKGQ4LHEwLCExKTt0aGlzLmNvbnRlbnRPZmZzZXRzPW8z''@;'; put 'put ''KHYodGhpcy5wb3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpO2JyZWFrfWNhc2UgMzpkZWZhdWx0OmJyZWFrO2Nhc2UgMjp7Y29uc3Qgdj1SMihkOCxxMCwhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMucG9zaXRpb24p''@;'; put 'put ''LHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha31jYXNlIDE6e2NvbnN0IHY9UjIoZDgscTAsITEpO3RoaXMuY29udGVudE9mZnNldHM9bzModih0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50''@;'; put 'put ''Q29udGVudENvb3Jkcyk7YnJlYWt9fX1oYW5kbGVIb3Jpem9udGFsQXhpc09uZVZpb2xhdGlvbihoKXtzd2l0Y2goaCl7Y2FzZSAxOmNhc2UgMjp0aGlzLmNvbnRlbnRPZmZzZXRzPW8zKGQ4KHRoaXMucG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250''@;'; put 'put ''ZW50Q29vcmRzKTticmVhaztjYXNlIDA6dGhpcy5jb250ZW50T2Zmc2V0cz1vMyhxMCh0aGlzLnBvc2l0aW9uLCEwKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWs7Y2FzZSAzOnRoaXMuY29udGVudE9mZnNldHM9bzMocTAodGhpcy5w''@;'; put 'put ''b3NpdGlvbiksdGhpcy5jdXJyZW50QW5jaG9yQ29vcmRzLHRoaXMuY3VycmVudENvbnRlbnRDb29yZHMpfX1oYW5kbGVIb3Jpem9udGFsQXhpc1R3b1Zpb2xhdGlvbnMoaCl7c3dpdGNoKGgpe2Nhc2UgNTpjYXNlIDQ6e2NvbnN0IHY9UjIoZDgscTAsITEpO3RoaXMuY29udGVudE9mZnNldHM9''@;'; put 'put ''bzModih0aGlzLnBvc2l0aW9uKSx0aGlzLmN1cnJlbnRBbmNob3JDb29yZHMsdGhpcy5jdXJyZW50Q29udGVudENvb3Jkcyk7YnJlYWt9Y2FzZSAzOmRlZmF1bHQ6YnJlYWs7Y2FzZSAyOmNhc2UgMTp7Y29uc3Qgdj1SMihkOCxxMCwhMCk7dGhpcy5jb250ZW50T2Zmc2V0cz1vMyh2KHRoaXMu''@;'; put 'put ''cG9zaXRpb24pLHRoaXMuY3VycmVudEFuY2hvckNvb3Jkcyx0aGlzLmN1cnJlbnRDb250ZW50Q29vcmRzKTticmVha319fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShoOCksQ2koTDIpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rv''@;'; put 'put ''cnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxkbD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxaLHVlKXt0aGlzLmRvY3VtZW50PWgsdGhpcy5jb250YWluZXI9dix0aGlzLnRlbXBsYXRlPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMuc21hcnRQb3NpdGlvblNlcnZpY2U9SSx0aGlz''@;'; put 'put ''LnNtYXJ0RXZlbnRzU2VydmljZT1aLHRoaXMuc21hcnRPcGVuU2VydmljZT11ZSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm49bnVsbCx0aGlzLnNob3VsZFJlYWxpZ249ITEsdGhpcy5jaGVja0NvbGxlY3Rvcj1uZXcgYXJ9c2V0IG9wZW4oaCl7dGhp''@;'; put 'put ''cy5zbWFydE9wZW5TZXJ2aWNlLm9wZW49ISFofXNldCBjb250ZW50QXQoaCl7dGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5wb3NpdGlvbj1ofXNldCBvdXRzaWRlQ2xpY2tDbG9zZShoKXt0aGlzLnNtYXJ0RXZlbnRzU2VydmljZS5vdXRzaWRlQ2xpY2tDbG9zZT0hIWh9c2V0IHNjcm9sbFRv''@;'; put 'put ''Q2xvc2UoaCl7dGhpcy5zbWFydEV2ZW50c1NlcnZpY2Uuc2Nyb2xsVG9DbG9zZT0hIWh9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2NyaWJlKGg9PntoP3RoaXMuYWRkQ29udGVudCgpOnRoaXMu''@;'; put 'put ''cmVtb3ZlQ29udGVudCgpfSksdGhpcy5zbWFydFBvc2l0aW9uU2VydmljZS5zaG91bGRSZWFsaWduLnN1YnNjcmliZSgoKT0+e3RoaXMuc2hvdWxkUmVhbGlnbj0hMCx0aGlzLnZpZXcmJnRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwib3BhY2l0eSIsIjAi''@;'; put 'put ''KX0pLHRoaXMuY2hlY2tDb2xsZWN0b3IucGlwZShERCgwKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5hbGlnbkNvbnRlbnQoKSx0aGlzLnNob3VsZFJlYWxpZ249ITEsdGhpcy52aWV3JiZ0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudmlldy5yb290Tm9kZXNbMF0sIm9wYWNpdHkiLCIxIil9''@;'; put 'put ''KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnJlbW92ZUNvbnRlbnQoKSx0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfXJlbW92ZUNvbnRlbnQoKXshdGhpcy52aWV3fHwodGhpcy5yZW1vdmVDbGlja0xpc3RlbmVyRm4mJih0aGlzLnJlbW92ZUNsaWNrTGlzdGVu''@;'; put 'put ''ZXJGbigpLHRoaXMucmVtb3ZlQ2xpY2tMaXN0ZW5lckZuPW51bGwpLHRoaXMudmlldy5yb290Tm9kZXMuZm9yRWFjaChoPT50aGlzLnJlbmRlcmVyLnJlbW92ZUNoaWxkKHRoaXMuZG9jdW1lbnQuYm9keSxoKSksdGhpcy5jb250YWluZXIuY2xlYXIoKSxkZWxldGUgdGhpcy52aWV3KX1hZGRD''@;'; put 'put ''b250ZW50KCl7dGhpcy52aWV3PXRoaXMuY29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlKTtjb25zdFtoXT10aGlzLnZpZXcucm9vdE5vZGVzO3RoaXMuc21hcnRFdmVudHNTZXJ2aWNlLmNvbnRlbnRSZWY9aCx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGgsImNsci1w''@;'; put 'put ''b3BvdmVyLWNvbnRlbnQiKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGgsInRvcCIsIjBweCIpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwibGVmdCIsIjBweCIpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwib3BhY2l0eSIsIjAiKSx0aGlzLnJlbW92ZUNsaWNrTGlzdGVuZXJGbj10aGlz''@;'; put 'put ''LnJlbmRlcmVyLmxpc3RlbihoLCJjbGljayIsdj0+e3RoaXMuc21hcnRPcGVuU2VydmljZS5vcGVuRXZlbnQ9dn0pLHRoaXMudmlldy5yb290Tm9kZXMuZm9yRWFjaCh2PT57dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmRvY3VtZW50LmJvZHksdil9KSx0aGlzLnNob3VsZFJlYWxp''@;'; put 'put ''Z249ITB9bmdBZnRlckNvbnRlbnRDaGVja2VkKCl7dGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW4mJnRoaXMudmlldyYmdGhpcy5zaG91bGRSZWFsaWduJiZ0aGlzLmNoZWNrQ29sbGVjdG9yLmVtaXQoKX1hbGlnbkNvbnRlbnQoKXtpZighdGhpcy52aWV3KXJldHVybjtjb25zdCBoPXRoaXMu''@;'; put 'put ''c21hcnRQb3NpdGlvblNlcnZpY2UuYWxpZ25Db250ZW50KHRoaXMudmlldy5yb290Tm9kZXNbMF0pO3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy52aWV3LnJvb3ROb2Rlc1swXSwidG9wIixgJHtoLnlPZmZzZXR9cHhgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMudmlldy5yb290''@;'; put 'put ''Tm9kZXNbMF0sImxlZnQiLGAke2gueE9mZnNldH1weGApLHRoaXMuc21hcnRPcGVuU2VydmljZS5wb3BvdmVyQWxpZ25lZEVtaXQodGhpcy52aWV3LnJvb3ROb2Rlc1swXSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGdzKSxLdChVaSksS3Qo''@;'; put 'put ''cXIpLEt0KEdhKSxLdChHcyksS3QoaDgpLEt0KHpzKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclBvcG92ZXJDb250ZW50IiwiIl1dLGlucHV0czp7b3BlbjpbImNsclBvcG92ZXJDb250ZW50Iiwib3BlbiJdLGNvbnRlbnRBdDpbImNsclBvcG92ZXJDb250''@;'; put 'put ''ZW50QXQiLCJjb250ZW50QXQiXSxvdXRzaWRlQ2xpY2tDbG9zZTpbImNsclBvcG92ZXJDb250ZW50T3V0c2lkZUNsaWNrVG9DbG9zZSIsIm91dHNpZGVDbGlja0Nsb3NlIl0sc2Nyb2xsVG9DbG9zZTpbImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSIsInNjcm9sbFRvQ2xvc2UiXX19''@;'; put 'put ''KSxkfSkoKSxjdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuc21hcnRPcGVuU2VydmljZT1oLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLm9wZW5DbG9zZUNoYW5nZT1uZXcgYXIsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5zbWFydE9wZW5TZXJ2aWNlLm9wZW5D''@;'; put 'put ''aGFuZ2Uuc3Vic2NyaWJlKHY9Pnt0aGlzLm9wZW5DbG9zZUNoYW5nZS5uZXh0KHYpfSkpfWhhbmRsZUNsaWNrKGgpe3RoaXMuc21hcnRPcGVuU2VydmljZS50b2dnbGVXaXRoRXZlbnQoaCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJl''@;'; put 'put ''KCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh6cykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9u''@;'; put 'put ''KGgsdil7MSZoJiZHbigiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB2LmhhbmRsZUNsaWNrKEMpfSksMiZoJiZGaSgiY2xyLXNtYXJ0LW9wZW4tY2xvc2UiLCEwKX0sb3V0cHV0czp7b3BlbkNsb3NlQ2hhbmdlOiJjbHJQb3BvdmVyT3BlbkNsb3NlQ2hhbmdlIn19KSxkfSkoKSxSYz0oKCk9''@;'; put 'put ''PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbXV19KSxkfSkoKTt2YXIgbD0oKCk9PihmdW5jdGlvbihkKXtkW2QuQkVGT1JFPS0xXT0iQkVG''@;'; put 'put ''T1JFIixkW2QuQUZURVI9MV09IkFGVEVSIn0obHx8KGw9e30pKSxsKSkoKTtjbGFzcyBje31jWyJ0b3AtcmlnaHQiXT17YXhpczokMS5WRVJUSUNBTCxzaWRlOmwuQkVGT1JFLGFuY2hvcjpfby5FTkQsY29udGVudDpfby5FTkR9LGNbInRvcC1sZWZ0Il09e2F4aXM6JDEuVkVSVElDQUwsc2lk''@;'; put 'put ''ZTpsLkJFRk9SRSxhbmNob3I6X28uU1RBUlQsY29udGVudDpfby5TVEFSVH0sY1siYm90dG9tLXJpZ2h0Il09e2F4aXM6JDEuVkVSVElDQUwsc2lkZTpsLkFGVEVSLGFuY2hvcjpfby5FTkQsY29udGVudDpfby5FTkR9LGNbImJvdHRvbS1sZWZ0Il09e2F4aXM6JDEuVkVSVElDQUwsc2lkZTps''@;'; put 'put ''LkFGVEVSLGFuY2hvcjpfby5TVEFSVCxjb250ZW50Ol9vLlNUQVJUfSxjWyJyaWdodC10b3AiXT17YXhpczokMS5IT1JJWk9OVEFMLHNpZGU6bC5BRlRFUixhbmNob3I6X28uQ0VOVEVSLGNvbnRlbnQ6X28uRU5EfSxjWyJyaWdodC1ib3R0b20iXT17YXhpczokMS5IT1JJWk9OVEFMLHNpZGU6''@;'; put 'put ''bC5BRlRFUixhbmNob3I6X28uU1RBUlQsY29udGVudDpfby5TVEFSVH0sY1sibGVmdC10b3AiXT17YXhpczokMS5IT1JJWk9OVEFMLHNpZGU6bC5CRUZPUkUsYW5jaG9yOl9vLkNFTlRFUixjb250ZW50Ol9vLkVORH0sY1sibGVmdC1ib3R0b20iXT17YXhpczokMS5IT1JJWk9OVEFMLHNpZGU6''@;'; put 'put ''bC5CRUZPUkUsYW5jaG9yOl9vLlNUQVJULGNvbnRlbnQ6X28uU1RBUlR9O2xldCBtPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1ti''@;'; put 'put ''YSxEcyxSY11dfSksZH0pKCksdz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5lbD1oLHRoaXMucmVuZGVyZXI9dix0aGlzLmJ1dHRvblN0YXRlPWdpLHRoaXMuc3RhdGU9Z2kuREVGQVVMVCx0aGlzLmNsckxvYWRpbmdDaGFuZ2U9bmV3IGFyKCExKX1sb2FkaW5nU3RhdGVD''@;'; put 'put ''aGFuZ2UoaCl7aWYoaCE9PXRoaXMuc3RhdGUpe3N3aXRjaCh0aGlzLnN0YXRlPWgsaCl7Y2FzZSBnaS5ERUZBVUxUOnRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ3aWR0aCIpLHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbC5uYXRpdmVF''@;'; put 'put ''bGVtZW50LCJ0cmFuc2Zvcm0iKSx0aGlzLmRpc2FibGVkfHx0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRpc2FibGVkIik7YnJlYWs7Y2FzZSBnaS5MT0FESU5HOnRoaXMuc2V0RXhwbGljaXRCdXR0b25XaWR0aCgpLHRoaXMucmVuZGVyZXIu''@;'; put 'put ''c2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGV6KDApIiksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkaXNhYmxlZCIsIiIpO2JyZWFrO2Nhc2UgZ2kuU1VDQ0VTUzp0aGlzLnNldEV4cGxpY2l0QnV0''@;'; put 'put ''dG9uV2lkdGgoKTticmVhaztjYXNlIGdpLkVSUk9SOnRoaXMubG9hZGluZ1N0YXRlQ2hhbmdlKGdpLkRFRkFVTFQpfXRoaXMuY2xyTG9hZGluZ0NoYW5nZS5lbWl0KGgpfX1zZXRFeHBsaWNpdEJ1dHRvbldpZHRoKCl7aWYodGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2ZUVs''@;'; put 'put ''ZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KXtjb25zdCBoPXRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PU1hdGgubWF4KDQyLGgud2lkdGgpO3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ3aWR0aCIsYCR7dn1w''@;'; put 'put ''eGApfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KEdhKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImJ1dHRvbiIsImNsckxvYWRpbmciLCIiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24o''@;'; put 'put ''aCx2KXsyJmgmJkdpKCJkaXNhYmxlZCIsdi5kaXNhYmxlZD8iIjpudWxsKX0saW5wdXRzOntkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntjbHJMb2FkaW5nQ2hhbmdlOiJjbHJMb2FkaW5nQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpQZix1c2VFeGlzdGluZzpkfV0pXSxh''@;'; put 'put ''dHRyczp5dWUsbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjQsdmFyczo0LGNvbnN0czpbWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIiwic3Bpbm5lci1jaGVjayJd''@;'; put 'put ''XSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksQjAoMCwwKSxybigxLHd1ZSwyLDEsInNwYW4iLDEpLHJuKDIsYnVlLDIsMSwic3BhbiIsMSkscm4oMyxfdWUsMiwxLCJzcGFuIiwxKSxQMCgpKSwyJmgmJihUdCgibmdTd2l0Y2giLHYuc3RhdGUpLHV0KDEpLFR0KCJuZ1N3aXRj''@;'; put 'put ''aENhc2UiLHYuYnV0dG9uU3RhdGUuTE9BRElORyksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsdi5idXR0b25TdGF0ZS5TVUNDRVNTKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIix2LmJ1dHRvblN0YXRlLkRFRkFVTFQpKX0sZGVwZW5kZW5jaWVzOltKZCxpcF0sZW5jYXBzdWxhdGlvbjoyLGRh''@;'; put 'put ''dGE6e2FuaW1hdGlvbjpbJGgoImRlZmF1bHRCdXR0b24iLFtidSgiOmVudGVyIixbeWwoe29wYWNpdHk6MH0pLERjKCIyMDBtcyAxMDBtcyBlYXNlLWluIix5bCh7b3BhY2l0eToxfSkpXSksYnUoIjpsZWF2ZSIsW3lsKHtvcGFjaXR5OjB9KV0pXSksJGgoInNwaW5uZXIiLFtidSgiOmVudGVy''@;'; put 'put ''IixbeWwoe29wYWNpdHk6MH0pLERjKCIyMDBtcyAxMDBtcyBlYXNlLWluIix5bCh7b3BhY2l0eToxfSkpXSksYnUoIjpsZWF2ZSIsW3lsKHtvcGFjaXR5OjF9KSxEYygiMTAwbXMgZWFzZS1vdXQiLHlsKHtvcGFjaXR5OjB9KSldKV0pLCRoKCJ2YWxpZGF0ZWQiLFtidSgiOmVudGVyIixbRGMo''@;'; put 'put ''IjYwMG1zIixhMmUoW3lsKHt0cmFuc2Zvcm06InNjYWxlKDAsMCkiLG9mZnNldDowfSkseWwoe29wYWNpdHk6MSxvZmZzZXQ6LjJ9KSx5bCh7dHJhbnNmb3JtOiJzY2FsZSgxLjIsMS4yKSIsb2Zmc2V0Oi40fSkseWwoe3RyYW5zZm9ybToic2NhbGUoLjksLjkpIixvZmZzZXQ6LjZ9KSx5bCh7''@;'; put 'put ''dHJhbnNmb3JtOiJzY2FsZSgxLDEpIixvZmZzZXQ6MX0pXSkpXSksYnUoIjpsZWF2ZSIsW3lsKHtvcGFjaXR5OjF9KSxEYygiMTAwbXMgZWFzZS1vdXQiLHlsKHtvcGFjaXR5OjB9KSldKV0pXX19KSxkfSkoKSxrPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbiho''@;'; put 'put ''KXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCksTT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7aHMuYWRkSWNvbnMoZlYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; put 'put ''dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltrLG1dfSksZH0pKCksRD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6''@;'; put 'put ''ZCxzZWxlY3RvcnM6W1sibmctY29tcG9uZW50Il1dLGRlY2xzOjAsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7fSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxSPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1''@;'; put 'put ''MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe30pLGR9KSgpLEc9MCxxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9pZD0iY2xyLWZvcm0tY29udHJvbC0iKyArK0csdGhpcy5faWRDaGFuZ2U9bmV3IGZzKHRoaXMuX2lkKX1nZXQgaWQoKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5faWR9c2V0IGlkKGgpe3RoaXMuX2lkPWgsdGhpcy5faWRDaGFuZ2UubmV4dChoKX1nZXQgaWRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5faWRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9''@;'; put 'put ''QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHBlPTAsZ2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2lkPSJjbHItZm9ybS1jb250YWluZXItIisgKytwZSx0aGlzLl9pZENoYW5nZT1uZXcgZnModGhpcy5faWQpfWdldCBpZCgpe3JldHVybiB0aGlz''@;'; put 'put ''Ll9pZH1zZXQgaWQoaCl7dGhpcy5faWQ9aCx0aGlzLl9pZENoYW5nZS5uZXh0KGgpfWdldCBpZENoYW5nZSgpe3JldHVybiB0aGlzLl9pZENoYW5nZS5hc09ic2VydmFibGUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1B''@;'; put 'put ''aSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7bGV0IE9lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmNvbnRyb2xJZFNlcnZpY2U9aCx0aGlzLmNvbnRhaW5lcklkU2VydmljZT12LHRoaXMuY29udHJvbElkU3VmZml4PSJhYnN0cmFjdCJ9Z2V0IGlk''@;'; put 'put ''KCl7cmV0dXJuIHRoaXMuY29udGFpbmVySWRTZXJ2aWNlP2Ake3RoaXMuY29udGFpbmVySWRTZXJ2aWNlLmlkfS0ke3RoaXMuY29udHJvbElkU3VmZml4fWA6dGhpcy5jb250cm9sSWRTZXJ2aWNlP2Ake3RoaXMuY29udHJvbElkU2VydmljZS5pZH0tJHt0aGlzLmNvbnRyb2xJZFN1ZmZpeH1g''@;'; put 'put ''Om51bGx9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHEsOCksS3QoZ2UsOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkfSksZH0pKCksTGU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIE9le2NvbnN0cnVjdG9yKGgsdil7c3VwZXIoaCx2KSx0aGlz''@;'; put 'put ''LmNvbnRyb2xJZFNlcnZpY2U9aCx0aGlzLmNvbnRhaW5lcklkU2VydmljZT12LHRoaXMuY29udHJvbElkU3VmZml4PSJlcnJvciJ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHEsOCksS3QoZ2UsOCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpk''@;'; put 'put ''LHNlbGVjdG9yczpbWyJjbHItY29udHJvbC1lcnJvciJdXSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJpZCIsdi5pZCksRmkoImNsci1zdWJ0ZXh0IiwhMCkpfSxmZWF0dXJlczpbRG9dLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6''@;'; put 'put ''MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxSZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgT2V7Y29uc3RydWN0b3IoaCx2KXtzdXBlcihoLHYpLHRoaXMuY29udHJvbElkU2VydmljZT1oLHRoaXMuY29udGFpbmVySWRT''@;'; put 'put ''ZXJ2aWNlPXYsdGhpcy5jb250cm9sSWRTdWZmaXg9ImhlbHBlciJ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHEsOCksS3QoZ2UsOCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItY29udHJvbC1oZWxwZXIiXV0s''@;'; put 'put ''aG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJihHaSgiaWQiLHYuaWQpLEZpKCJjbHItc3VidGV4dCIsITApKX0sZmVhdHVyZXM6W0RvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgp''@;'; put 'put ''LE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksSGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2NvbnRyb2xDaGFuZ2VzPW5ldyAkZSx0aGlzLl9oZWxwZXJzPW5ldyAkZX1nZXQgY29udHJvbENoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY29udHJvbENoYW5nZXMuYXNP''@;'; put 'put ''YnNlcnZhYmxlKCl9c2V0Q29udHJvbChoKXt0aGlzLl9jb250cm9sQ2hhbmdlcy5uZXh0KGgpfWdldCBoZWxwZXJzQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2hlbHBlcnMuYXNPYnNlcnZhYmxlKCl9c2V0SGVscGVycyhoKXt0aGlzLl9oZWxwZXJzLm5leHQoaCl9fXJldHVybiBkLlx1MDI3NWZh''@;'; put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO3ZhciBWZT0oKCk9PihmdW5jdGlvbihkKXtkLk5PTkU9Ik5PTkUiLGQuVkFMSUQ9IlZBTElEIixkLklOVkFMSUQ9IklOVkFMSUQifShWZXx8''@;'; put 'put ''KFZlPXt9KSksVmUpKSgpO2xldCBxZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMubmdDb250cm9sU2VydmljZT1oLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl9zdGF0dXNDaGFuZ2VzPW5ldyBmcyhWZS5OT05FKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm5n''@;'; put 'put ''Q29udHJvbFNlcnZpY2UuY29udHJvbENoYW5nZXMuc3Vic2NyaWJlKHY9Pnt2JiYodGhpcy5jb250cm9sPXYsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy50cmlnZ2VyU3RhdHVzQ2hhbmdlKCl9KSkpfSkpfWdl''@;'; put 'put ''dCBzdGF0dXNDaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX3N0YXR1c0NoYW5nZXMuYXNPYnNlcnZhYmxlKCl9dHJpZ2dlclN0YXR1c0NoYW5nZSgpe2lmKHRoaXMuY29udHJvbCl7Y29uc3QgaD1WZVt0aGlzLmNvbnRyb2wuc3RhdHVzXTt0aGlzLl9zdGF0dXNDaGFuZ2VzLm5leHQodGhpcy5jb250''@;'; put 'put ''cm9sLnRvdWNoZWQmJlsiVkFMSUQiLCJJTlZBTElEIl0uaW5jbHVkZXMoaCk/aDpWZS5OT05FKX19bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; put 'put ''KShDaShIZSkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO3ZhciBydD0oKCk9PihmdW5jdGlvbihkKXtkLlZFUlRJQ0FMPSJ2ZXJ0aWNhbCIsZC5IT1JJWk9OVEFMPSJob3Jpem9udGFsIixkLkNPTVBBQ1Q9ImNvbXBhY3QifShydHx8KHJ0''@;'; put 'put ''PXt9KSkscnQpKSgpO2xldCBXZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5taW5MYWJlbFNpemU9MSx0aGlzLm1heExhYmVsU2l6ZT0xMix0aGlzLmxheW91dD1ydC5IT1JJWk9OVEFMLHRoaXMubGF5b3V0VmFsdWVzPU9iamVjdC5rZXlzKHJ0KS5tYXAoaD0+cnRbaF0pLHRo''@;'; put 'put ''aXMuX2xhYmVsU2l6ZT0yfXNldCBsYWJlbFNpemUoaCl7dGhpcy5sYWJlbFNpemVJc1ZhbGlkKGgpJiYodGhpcy5fbGFiZWxTaXplPWgpfWdldCBsYWJlbFNpemUoKXtyZXR1cm4gdGhpcy5fbGFiZWxTaXplfWlzVmVydGljYWwoKXtyZXR1cm4gdGhpcy5sYXlvdXQ9PT1ydC5WRVJUSUNBTH1p''@;'; put 'put ''c0hvcml6b250YWwoKXtyZXR1cm4gdGhpcy5sYXlvdXQ9PT1ydC5IT1JJWk9OVEFMfWlzQ29tcGFjdCgpe3JldHVybiB0aGlzLmxheW91dD09PXJ0LkNPTVBBQ1R9Z2V0IGxheW91dENsYXNzKCl7cmV0dXJuYGNsci1mb3JtLSR7dGhpcy5sYXlvdXR9YH1pc1ZhbGlkKGgpe3JldHVybiB0aGlz''@;'; put 'put ''LmxheW91dFZhbHVlcy5pbmRleE9mKGgpPi0xfWxhYmVsU2l6ZUlzVmFsaWQoaCl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoaCkmJmg+PXRoaXMubWluTGFiZWxTaXplJiZoPD10aGlzLm1heExhYmVsU2l6ZX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; put 'put ''ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksYXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuY29udHJvbElkU2VydmljZT1oLHRoaXMubGF5b3V0U2VydmljZT12LHRoaXMubmdDb250cm9sU2VydmljZT15''@;'; put 'put ''LHRoaXMucmVuZGVyZXI9Qyx0aGlzLmVsPUksdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuZW5hYmxlR3JpZD0hMH1nZXQgbGFiZWxUZXh0KCl7cmV0dXJuIHRoaXMuZWwubmF0aXZlRWxlbWVudCYmdGhpcy5lbC5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50fW5nT25Jbml0KCl7KHRoaXMu''@;'; put 'put ''Y29udHJvbElkU2VydmljZXx8dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlKSYmdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImNsci1jb250cm9sLWxhYmVsIiksdGhpcy5lbmFibGVHcmlkJiZ0aGlzLmxheW91dFNlcnZpY2UmJiF0aGlzLmxheW91dFNlcnZpY2Uu''@;'; put 'put ''aXNWZXJ0aWNhbCgpJiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQmJnRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZigiY2xyLWNvbCIpPDAmJih0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiY2xyLWNvbC0xMiIpLHRoaXMucmVuZGVyZXIu''@;'; put 'put ''YWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGBjbHItY29sLW1kLSR7dGhpcy5sYXlvdXRTZXJ2aWNlLmxhYmVsU2l6ZX1gKSksdGhpcy5jb250cm9sSWRTZXJ2aWNlJiYhdGhpcy5mb3JBdHRyJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWRD''@;'; put 'put ''aGFuZ2Uuc3Vic2NyaWJlKGg9PnRoaXMuZm9yQXR0cj1oKSl9ZGlzYWJsZUdyaWQoKXt0aGlzLmVuYWJsZUdyaWQ9ITF9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; put 'put ''dXJuIG5ldyhofHxkKShLdChxLDgpLEt0KFdlLDgpLEt0KEhlLDgpLEt0KEdhKSxLdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJsYWJlbCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmR2koImZvciIsdi5mb3JBdHRyKX0s''@;'; put 'put ''aW5wdXRzOntmb3JBdHRyOlsiZm9yIiwiZm9yQXR0ciJdfX0pLGR9KSgpLFN0PSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBPZXtjb25zdHJ1Y3RvcihoLHYpe3N1cGVyKGgsdiksdGhpcy5jb250cm9sSWRTZXJ2aWNlPWgsdGhpcy5jb250YWluZXJJZFNlcnZpY2U9dix0aGlzLmNvbnRyb2xJZFN1''@;'; put 'put ''ZmZpeD0ic3VjY2VzcyJ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHEsOCksS3QoZ2UsOCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItY29udHJvbC1zdWNjZXNzIl1dLGhvc3RWYXJzOjMsaG9zdEJpbmRpbmdz''@;'; put 'put ''OmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koImlkIix2LmlkKSxGaSgiY2xyLXN1YnRleHQiLCEwKSl9LGZlYXR1cmVzOltEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246''@;'; put 'put ''Mn0pLGR9KSgpLEV0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5sYXlvdXRTZXJ2aWNlPWgsdGhpcy5jbGFzc05hbWU9IiJ9Y29udHJvbENsYXNzKGg9VmUuTk9ORSx2PSExLHk9IiIpe2NvbnN0IEM9W3RoaXMuY2xhc3NOYW1lLHldO3N3aXRjaChoKXtjYXNlIFZlLlZBTElE''@;'; put 'put ''OkMucHVzaCgiY2xyLXN1Y2Nlc3MiKTticmVhaztjYXNlIFZlLklOVkFMSUQ6Qy5wdXNoKCJjbHItZXJyb3IiKX1yZXR1cm4gdiYmdGhpcy5sYXlvdXRTZXJ2aWNlJiYtMT09PXRoaXMuY2xhc3NOYW1lLmluZGV4T2YoImNsci1jb2wiKSYmQy5wdXNoKGBjbHItY29sLW1kLSR7dGhpcy5sYXlv''@;'; put 'put ''dXRTZXJ2aWNlLm1heExhYmVsU2l6ZS10aGlzLmxheW91dFNlcnZpY2UubGFiZWxTaXplfSBjbHItY29sLTEyYCksQy5qb2luKCIgIikudHJpbSgpfWluaXRDb250cm9sQ2xhc3MoaCx2KXt2JiZ2LmNsYXNzTmFtZSYmKHRoaXMuY2xhc3NOYW1lPXYuY2xhc3NOYW1lLHYuY2xhc3NOYW1lLnNw''@;'; put 'put ''bGl0KCIgIikuZm9yRWFjaChDPT57Qy5zdGFydHNXaXRoKCJjbHItY29sIikmJmgucmVtb3ZlQ2xhc3ModixDKX0pKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koV2UsOCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1''@;'; put 'put ''MDI3NWZhY30pLGR9KSgpLFp0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9aCx0aGlzLmxheW91dFNlcnZpY2U9dix0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9eSx0aGlzLm5nQ29udHJvbFNlcnZpY2U9Qyx0aGlzLnN1YnNj''@;'; put 'put ''cmlwdGlvbnM9W10sdGhpcy5fZHluYW1pYz0hMSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShJPT57dGhpcy5zdGF0ZT1JLHRoaXMudXBkYXRlSGVscGVycygpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5w''@;'; put 'put ''dXNoKHRoaXMubmdDb250cm9sU2VydmljZS5jb250cm9sQ2hhbmdlcy5zdWJzY3JpYmUoST0+e3RoaXMuY29udHJvbD1JfSkpfWdldCBzaG93SGVscGVyKCl7cmV0dXJuISF0aGlzLmNvbnRyb2xIZWxwZXJDb21wb25lbnQmJighIXRoaXMuY29udHJvbEhlbHBlckNvbXBvbmVudCYmdGhpcy5z''@;'; put 'put ''dGF0ZT09PVZlLk5PTkV8fCF0aGlzLmNvbnRyb2xTdWNjZXNzQ29tcG9uZW50JiZ0aGlzLnN0YXRlPT09VmUuVkFMSUR8fCF0aGlzLmNvbnRyb2xFcnJvckNvbXBvbmVudCYmdGhpcy5zdGF0ZT09PVZlLklOVkFMSUQpfWdldCBzaG93VmFsaWQoKXtyZXR1cm4gdGhpcy5zdGF0ZT09PVZlLlZB''@;'; put 'put ''TElEJiYhIXRoaXMuY29udHJvbFN1Y2Nlc3NDb21wb25lbnR9Z2V0IHNob3dJbnZhbGlkKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT1WZS5JTlZBTElEJiYhIXRoaXMuY29udHJvbEVycm9yQ29tcG9uZW50fW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMudXBkYXRlSGVscGVycygpfW5nT25EZXN0''@;'; put 'put ''cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1jb250cm9sQ2xhc3MoKXtyZXR1cm4gdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlLmNvbnRyb2xDbGFzcyh0aGlzLmNvbnRyb2xTdWNjZXNzQ29tcG9uZW50fHx0aGlzLnN0YXRlIT09VmUuVkFMSUQ/''@;'; put 'put ''dGhpcy5zdGF0ZTpWZS5OT05FLHRoaXMuYWRkR3JpZCgpKX1hZGRHcmlkKCl7cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZSYmIXRoaXMubGF5b3V0U2VydmljZS5pc1ZlcnRpY2FsKCl9dXBkYXRlSGVscGVycygpe3RoaXMubmdDb250cm9sU2VydmljZSYmdGhpcy5uZ0NvbnRyb2xTZXJ2aWNl''@;'; put 'put ''LnNldEhlbHBlcnMoe3Nob3c6dGhpcy5zaG93SW52YWxpZHx8dGhpcy5zaG93SGVscGVyfHx0aGlzLnNob3dWYWxpZCxzaG93SW52YWxpZDp0aGlzLnNob3dJbnZhbGlkLHNob3dIZWxwZXI6dGhpcy5zaG93SGVscGVyLHNob3dWYWxpZDp0aGlzLnNob3dWYWxpZH0pfX1yZXR1cm4gZC5cdTAy''@;'; put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChxZSksS3QoV2UsOCksS3QoRXQpLEt0KEhlKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhvKHksYXQsNSkseG8oeSxTdCw1KSx4byh5LExlLDUpLHhv''@;'; put 'put ''KHksUmUsNSkpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYubGFiZWw9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYuY29udHJvbFN1Y2Nlc3NDb21wb25lbnQ9Qy5maXJzdCksSGkoQz0kaSgpKSYmKHYuY29udHJvbEVycm9yQ29tcG9uZW50PUMuZmlyc3QpLEhpKEM9JGkoKSkmJih2LmNvbnRy''@;'; put 'put ''b2xIZWxwZXJDb21wb25lbnQ9Qy5maXJzdCl9fX0pLGR9KSgpO2NsYXNzIGJ0e2NvbnN0cnVjdG9yKGcsaCx2PTApe2lmKHRoaXMuaW5qZWN0b3I9aC5pbmplY3RvciwhdGhpcy5pbmplY3Rvci5nZXQoZyxudWxsKSl7Y29uc3QgeT10aGlzLmluamVjdG9yLmdldChTZCksQz10aGlzLmluamVj''@;'; put 'put ''dG9yLmdldChibyk7aC5jcmVhdGVDb21wb25lbnQoeS5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShEKSk7Y29uc3QgST15LnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGcpLFo9W107Wlt2XT1bQy5uYXRpdmVFbGVtZW50XTtjb25zdCB1ZT1oLmNyZWF0ZUNvbXBvbmVudChJLHZvaWQgMCx2b2lk''@;'; put 'put ''IDAsWik7aC5yZW1vdmUoMCksdWUuaW5zdGFuY2UuX2R5bmFtaWM9ITAsdGhpcy5pbmplY3Rvcj11ZS5pbmplY3Rvcn19Z2V0KGcsaCl7cmV0dXJuIHRoaXMuaW5qZWN0b3IuZ2V0KGcsaCl9fWxldCBhbj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fdG91Y2hlZD1uZXcgJGV9''@;'; put 'put ''Z2V0IHRvdWNoZWRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fdG91Y2hlZC5hc09ic2VydmFibGUoKX1tYXJrQXNUb3VjaGVkKCl7dGhpcy5fdG91Y2hlZC5uZXh0KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2Vu''@;'; put 'put ''OmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFNuPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMudmNyPWgsdGhpcy53cmFwcGVyVHlwZT12LHRoaXMubmdDb250cm9sPUMsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuaW5kZXg9MCx0aGlzLnJlbmRl''@;'; put 'put ''cmVyPUksdGhpcy5lbD1aO3RyeXt0aGlzLm5nQ29udHJvbFNlcnZpY2U9eS5nZXQoSGUpLHRoaXMuaWZDb250cm9sU3RhdGVTZXJ2aWNlPXkuZ2V0KHFlKSx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9eS5nZXQoRXQpLHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlPXkuZ2V0KGFuKX1jYXRjaCh1''@;'; put 'put ''ZSl7fXRoaXMuY29udHJvbENsYXNzU2VydmljZSYmdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlLmluaXRDb250cm9sQ2xhc3MoSSxaLm5hdGl2ZUVsZW1lbnQpLHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm1hcmtDb250cm9sU2VydmljZS50''@;'; put 'put ''b3VjaGVkQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMubWFya0FzVG91Y2hlZCgpfSkpLHRoaXMubmdDb250cm9sU2VydmljZSYmdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLmhlbHBlcnNDaGFuZ2Uuc3Vic2NyaWJlKHVlPT57dGhpcy5zZXRBcmlhRGVz''@;'; put 'put ''Y3JpYmVkQnkodWUpfSkpfWdldCBpZCgpe3JldHVybiB0aGlzLl9pZH1zZXQgaWQoaCl7dGhpcy5faWQ9aCx0aGlzLmNvbnRyb2xJZFNlcnZpY2UmJih0aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQ9aCl9dHJpZ2dlclZhbGlkYXRpb24oKXt0aGlzLmlmQ29udHJvbFN0YXRlU2VydmljZSYmKHRo''@;'; put 'put ''aXMubmdDb250cm9sJiYhdGhpcy5uZ0NvbnRyb2wudG91Y2hlZCYmdGhpcy5tYXJrQXNUb3VjaGVkKCksdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2UudHJpZ2dlclN0YXR1c0NoYW5nZSgpKX1tYXJrQXNUb3VjaGVkKCl7dGhpcy5uZ0NvbnRyb2wuY29udHJvbC5tYXJrQXNUb3VjaGVkKCks''@;'; put 'put ''dGhpcy5uZ0NvbnRyb2wuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCl9Z2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKGgsdil7dHJ5e3JldHVybiB0aGlzLl9jb250YWluZXJJbmplY3Rvci5nZXQoaCx2KX1jYXRjaCh5KXtyZXR1cm4gdn19bmdPbkluaXQoKXt0aGlzLl9jb250YWlu''@;'; put 'put ''ZXJJbmplY3Rvcj1uZXcgYnQodGhpcy53cmFwcGVyVHlwZSx0aGlzLnZjcix0aGlzLmluZGV4KSx0aGlzLmNvbnRyb2xJZFNlcnZpY2U9dGhpcy5fY29udGFpbmVySW5qZWN0b3IuZ2V0KHEpO3RyeXt0aGlzLmNvbnRhaW5lcklkU2VydmljZT10aGlzLl9jb250YWluZXJJbmplY3Rvci5nZXQo''@;'; put 'put ''Z2UpfWNhdGNoKGgpe310aGlzLl9pZD90aGlzLmNvbnRyb2xJZFNlcnZpY2UuaWQ9dGhpcy5faWQ6dGhpcy5faWQ9dGhpcy5jb250cm9sSWRTZXJ2aWNlLmlkLHRoaXMubmdDb250cm9sU2VydmljZSYmdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLnNldENvbnRyb2wodGhpcy5uZ0NvbnRyb2wpfW5n''@;'; put 'put ''T25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1zZXRBcmlhRGVzY3JpYmVkQnkoaCl7aWYoaC5zaG93KXtjb25zdCB2PXRoaXMuZ2V0QXJpYURlc2NyaWJlZEJ5SWQoaCk7aWYobnVsbCE9PXYpcmV0dXJuIHZvaWQgdGhpcy5yZW5kZXJl''@;'; put 'put ''ci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJhcmlhLWRlc2NyaWJlZGJ5Iix2KX10aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImFyaWEtZGVzY3JpYmVkYnkiKX1nZXRBcmlhRGVzY3JpYmVkQnlJZChoKXtsZXQgdj0iaGVs''@;'; put 'put ''cGVyIjtyZXR1cm4gaC5zaG93SW52YWxpZD92PSJlcnJvciI6aC5zaG93VmFsaWQmJih2PSJzdWNjZXNzIiksdGhpcy5jb250YWluZXJJZFNlcnZpY2U/dGhpcy5jb250YWluZXJJZFNlcnZpY2UuaWQuY29uY2F0KCItIix2KTp0aGlzLmNvbnRyb2xJZFNlcnZpY2U/dGhpcy5jb250cm9sSWRT''@;'; put 'put ''ZXJ2aWNlLmlkLmNvbmNhdCgiLSIsdik6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KFdjKSxLdChTcyksS3QoRGYpLEt0KEdhKSxLdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLGhvc3RWYXJzOjEsaG9zdEJpbmRp''@;'; put 'put ''bmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiYmx1ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi50cmlnZ2VyVmFsaWRhdGlvbigpfSksMiZoJiZCMygiaWQiLHYuaWQpfSxpbnB1dHM6e2lkOiJpZCJ9fSksZH0pKCksdXI9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMubGF5b3V0''@;'; put 'put ''U2VydmljZT1oLHRoaXMubWFya0NvbnRyb2xTZXJ2aWNlPXZ9c2V0IGxhYmVsU2l6ZShoKXtjb25zdCB2PXBhcnNlSW50KGgsMTApfHwyO3RoaXMubGF5b3V0U2VydmljZS5sYWJlbFNpemU9dn1tYXJrQXNUb3VjaGVkKCl7dGhpcy5tYXJrQ29udHJvbFNlcnZpY2UubWFya0FzVG91Y2hlZCgp''@;'; put 'put ''fW9uRm9ybVN1Ym1pdCgpe3RoaXMubWFya0FzVG91Y2hlZCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChXZSksS3QoYW4pKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyRm9ybSIsIiJdXSxjb250ZW50UXVl''@;'; put 'put ''cmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LGF0LDUpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYubGFiZWxzPUMpfX0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJzdWJtaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25Gb3JtU3VibWl0''@;'; put 'put ''KCl9KSwyJmgmJkZpKCJjbHItZm9ybSIsITApKCJjbHItZm9ybS1ob3Jpem9udGFsIix2LmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkpKCJjbHItZm9ybS1jb21wYWN0Iix2LmxheW91dFNlcnZpY2UuaXNDb21wYWN0KCkpfSxpbnB1dHM6e2xhYmVsU2l6ZTpbImNsckxhYmVsU2l6ZSIs''@;'; put 'put ''ImxhYmVsU2l6ZSJdfSxmZWF0dXJlczpbaG8oW1dlLGFuXSldfSksZH0pKCksSnI9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2hzLmFkZEljb25zKEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBl''@;'; put 'put ''OmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLERzXV19KSxkfSkoKTtjb25zdCBMcj1uZXcgemUoIklTX1RPR0dMRSIpLFZpPXtwcm92aWRlOkxyLHVzZUZhY3Rvcnk6ZnVuY3Rpb24gbDAoKXtyZXR1cm4gbmV3IGZzKCExKX19O2xldCBPaT0oKCk9PntjbGFzcyBke2NvbnN0cnVj''@;'; put 'put ''dG9yKGgpe3RoaXMuX2R5bmFtaWM9ITEsdGhpcy50b2dnbGU9ITEsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGguc3Vic2NyaWJlKHY9Pnt0aGlzLnRvZ2dsZT12fSkpfW5nT25Jbml0KCl7dGhpcy5sYWJlbCYmdGhpcy5sYWJlbC5kaXNhYmxlR3JpZCgp''@;'; put 'put ''fW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoTHIpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWNoZWNr''@;'; put 'put ''Ym94LXdyYXBwZXIiXSxbImNsci10b2dnbGUtd3JhcHBlciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LGF0LDcpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYubGFiZWw9Qy5maXJzdCl9fSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbiho''@;'; put 'put ''LHYpezImaCYmRmkoImNsci1jaGVja2JveC13cmFwcGVyIiwhdi50b2dnbGUpKCJjbHItdG9nZ2xlLXdyYXBwZXIiLHYudG9nZ2xlKX0sZmVhdHVyZXM6W2hvKFtxLFZpXSldLG5nQ29udGVudFNlbGVjdG9yczpTdWUsZGVjbHM6Myx2YXJzOjEsY29uc3RzOltbNCwibmdJZiJdXSx0ZW1wbGF0''@;'; put 'put ''ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKGt1ZSksTmkoMCksTmkoMSwxKSxybigyLEN1ZSwxLDAsImxhYmVsIiwwKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLCF2LmxhYmVsKSl9LGRlcGVuZGVuY2llczpbTm8sYXRdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFJvPSgoKT0+e2NsYXNzIGQg''@;'; put 'put ''ZXh0ZW5kcyBTbntjb25zdHJ1Y3RvcihoLHYseSxDLEksWil7c3VwZXIoaCxPaSx2LHksQyxJKSx0aGlzLnRvZ2dsZT1afW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKTtjb25zdCBoPXRoaXMuZ2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKExyLG51bGwpO2gmJm51bGwhPT10aGlzLnRvZ2ds''@;'; put 'put ''ZSYmaC5uZXh0KCEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KFNzKSxLdChEZiwxMCksS3QoR2EpLEt0KGJvKSxnMygiY2xyVG9nZ2xlIikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJDaGVj''@;'; put 'put ''a2JveCIsIiJdLFsiIiwiY2xyVG9nZ2xlIiwiIl1dLGZlYXR1cmVzOltEb119KSxkfSkoKSxsbz0oKCk9PntjbGFzcyBkIGV4dGVuZHMgWnR7Y29uc3RydWN0b3IoaCx2LHksQyl7c3VwZXIoQyxoLHYseSksdGhpcy5sYXlvdXRTZXJ2aWNlPWgsdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlPXYs''@;'; put 'put ''dGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPXksdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9Qyx0aGlzLmlubGluZT0hMX1zZXQgY2xySW5saW5lKGgpe3RoaXMuaW5saW5lPSJzdHJpbmciPT10eXBlb2YgaD8iZmFsc2UiIT09aDohIWh9Z2V0IGNscklubGluZSgpe3JldHVybiB0aGlzLmlubGlu''@;'; put 'put ''ZX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldEFyaWFSb2xlcygpfXNldEFyaWFSb2xlcygpe3RoaXMucm9sZT10aGlzLmNoZWNrYm94ZXMubGVuZ3RoPyJncm91cCI6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoV2UsOCksS3Qo''@;'; put 'put ''RXQpLEt0KEhlKSxLdChxZSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItY2hlY2tib3gtY29udGFpbmVyIl0sWyJjbHItdG9nZ2xlLWNvbnRhaW5lciJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LFJvLDUpLDImaCl7bGV0''@;'; put 'put ''IEM7SGkoQz0kaSgpKSYmKHYuY2hlY2tib3hlcz1DKX19LGhvc3RWYXJzOjcsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koInJvbGUiLHYucm9sZSksRmkoImNsci1mb3JtLWNvbnRyb2wiLCEwKSgiY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCIsbnVsbD09di5jb250cm9s''@;'; put 'put ''P251bGw6di5jb250cm9sLmRpc2FibGVkKSgiY2xyLXJvdyIsdi5hZGRHcmlkKCkpKX0saW5wdXRzOntjbHJJbmxpbmU6ImNscklubGluZSJ9LGZlYXR1cmVzOltobyhbcWUsSGUsRXQsZ2VdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOk91ZSxkZWNsczoxMCx2YXJzOjksY29uc3RzOltbNCwi''@;'; put 'put ''bmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLXN1YnRleHQtd3JhcHBlciJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0''@;'; put 'put ''cnVlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic3RhdHVzIiwic3VjY2VzcyIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJzdGF0dXMiLCJkYW5nZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIs''@;'; put 'put ''ImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInN0YXR1cyIsInN1Y2Nlc3MiLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChM''@;'; put 'put ''dWUpLE5pKDApLHJuKDEsTXVlLDEsMCwibGFiZWwiLDApLG50KDIsImRpdiIsMSksTmkoMywxKSxudCg0LCJkaXYiLDIpLHJuKDUsRXVlLDEsMCwibmctY29udGVudCIsMCkscm4oNix4dWUsMSwwLCJjZHMtaWNvbiIsMykscm4oNyxUdWUsMSwwLCJjZHMtaWNvbiIsNCkscm4oOCxJdWUsMSww''@;'; put 'put ''LCJuZy1jb250ZW50IiwwKSxybig5LER1ZSwxLDAsIm5nLWNvbnRlbnQiLDApLG90KCkoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LmxhYmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksRmkoImNsci1jb250cm9sLWlubGluZSIsdi5jbHJJbmxpbmUpLFR0KCJuZ0NsYXNzIix2LmNvbnRyb2xD''@;'; put 'put ''bGFzcygpKSx1dCgzKSxUdCgibmdJZiIsdi5zaG93SGVscGVyKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSl9LGRlcGVu''@;'; put 'put ''ZGVuY2llczpbTm8sYXQsbGMsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFRhPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtocy5hZGRJY29ucyhLaCxUZil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlw''@;'; put 'put ''ZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxEcyxKcixSXSxKcl19KSxkfSkoKTtmdW5jdGlvbiBaYShkKXtyZXR1cm4gbnVsbCE9PWQmJigic3RyaW5nIj09dHlwZW9mIGQ/ZC5sZW5ndGg+PTA6ImJvb2xlYW4iPT10eXBlb2YgZCYmZCl9bGV0IGdhPSgoKT0+e2NsYXNzIGR7''@;'; put 'put ''Z2V0IHNwaW5uZXJDbGFzcygpe3JldHVybiEwfWdldCBpbmxpbmVDbGFzcygpe3JldHVybiB0aGlzLl9pbmxpbmV9c2V0IGNscklubGluZShoKXt0aGlzLl9pbmxpbmU9WmEoaCl9Z2V0IGludmVyc2VDbGFzcygpe3JldHVybiB0aGlzLl9pbnZlcnNlfXNldCBjbHJJbnZlcnNlKGgpe3RoaXMu''@;'; put 'put ''X2ludmVyc2U9WmEoaCl9Z2V0IHNtYWxsQ2xhc3MoKXtyZXR1cm4gdGhpcy5fc21hbGx9c2V0IGNsclNtYWxsKGgpe3RoaXMuX3NtYWxsPVphKGgpfWdldCBtZWRpdW1DbGFzcygpe3JldHVybiF0aGlzLl9zbWFsbCYmdGhpcy5fbWVkaXVtfXNldCBjbHJNZWRpdW0oaCl7dGhpcy5fbWVkaXVt''@;'; put 'put ''PVphKGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXNwaW5uZXIiXV0saG9zdFZhcnM6MTEsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koImFyaWEtYnVz''@;'; put 'put ''eSIsITApLEZpKCJzcGlubmVyIix2LnNwaW5uZXJDbGFzcykoInNwaW5uZXItaW5saW5lIix2LmlubGluZUNsYXNzKSgic3Bpbm5lci1pbnZlcnNlIix2LmludmVyc2VDbGFzcykoInNwaW5uZXItc20iLHYuc21hbGxDbGFzcykoInNwaW5uZXItbWQiLHYubWVkaXVtQ2xhc3MpKX0saW5wdXRz''@;'; put 'put ''OntjbHJJbmxpbmU6ImNscklubGluZSIsY2xySW52ZXJzZToiY2xySW52ZXJzZSIsY2xyU21hbGw6ImNsclNtYWxsIixjbHJNZWRpdW06ImNsck1lZGl1bSJ9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmko''@;'; put 'put ''MCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxEbD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpLG9zPTA7''@;'; put 'put ''Y29uc3Qgb2w9bmV3IHplKCJJRl9BQ1RJVkVfSUQiKSx4YT17cHJvdmlkZTpvbCx1c2VGYWN0b3J5OmZ1bmN0aW9uIEwwKCl7cmV0dXJuKytvc319O2xldCB6Mj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY3VycmVudENoYW5nZT1uZXcgJGV9Z2V0IGN1cnJlbnRDaGFuZ2Uo''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5fY3VycmVudENoYW5nZS5hc09ic2VydmFibGUoKX1zZXQgY3VycmVudChoKXt0aGlzLl9jdXJyZW50IT09aCYmKHRoaXMuX2N1cnJlbnQ9aCx0aGlzLl9jdXJyZW50Q2hhbmdlLm5leHQoaCkpfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9fXJldHVy''@;'; put 'put ''biBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEcyPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5pZkFjdGl2ZVNlcnZpY2U9aCx0aGlzLmlk''@;'; put 'put ''PXYsdGhpcy50ZW1wbGF0ZT15LHRoaXMuY29udGFpbmVyPUMsdGhpcy53YXNBY3RpdmU9ITEsdGhpcy5hY3RpdmVDaGFuZ2U9bmV3IGFyKCExKSx0aGlzLmNoZWNrQW5kVXBkYXRlVmlldyhoLmN1cnJlbnQpLHRoaXMuc3Vic2NyaXB0aW9uPXRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnRD''@;'; put 'put ''aGFuZ2Uuc3Vic2NyaWJlKEk9Pnt0aGlzLmNoZWNrQW5kVXBkYXRlVmlldyhJKX0pfWNoZWNrQW5kVXBkYXRlVmlldyhoKXtjb25zdCB2PWg9PT10aGlzLmlkO3YhPT10aGlzLndhc0FjdGl2ZSYmKHRoaXMudXBkYXRlVmlldyh2KSx0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHYpLHRoaXMud2Fz''@;'; put 'put ''QWN0aXZlPXYpfXNldCBhY3RpdmUoaCl7aCYmKHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9dGhpcy5pZCl9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PT09dGhpcy5pZH11cGRhdGVWaWV3KGgpe2g/dGhpcy5jb250YWluZXIuY3JlYXRlRW1i''@;'; put 'put ''ZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpOnRoaXMuY29udGFpbmVyLmNsZWFyKCl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh6MiksS3Qob2wpLEt0KHFyKSxL''@;'; put 'put ''dChVaSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJJZkFjdGl2ZSIsIiJdXSxpbnB1dHM6e2FjdGl2ZTpbImNscklmQWN0aXZlIiwiYWN0aXZlIl19LG91dHB1dHM6e2FjdGl2ZUNoYW5nZToiY2xySWZBY3RpdmVDaGFuZ2UifX0pLGR9KSgpLEZmPSgoKT0+''@;'; put 'put ''e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLnRlbXBsYXRlPWgsdGhpcy5jb250YWluZXI9dix0aGlzLmVsPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMuZXhwYW5kPUksdGhpcy5fZXhwYW5kZWQ9ITEsdGhpcy5leHBhbmRlZENoYW5nZT1uZXcgYXIoITApLHRoaXMuX3N1YnNj''@;'; put 'put ''cmlwdGlvbnM9W10sdGhpcy5fc3Vic2NyaXB0aW9ucy5wdXNoKEkuZXhwYW5kQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMudXBkYXRlVmlldygpLHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZC5leHBhbmRlZCl9KSl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuX2V4''@;'; put 'put ''cGFuZGVkfXNldCBleHBhbmRlZChoKXsiYm9vbGVhbiI9PXR5cGVvZiBoJiYodGhpcy5leHBhbmQuZXhwYW5kZWQ9aCx0aGlzLl9leHBhbmRlZD1oKX11cGRhdGVWaWV3KCl7aWYoIXRoaXMuZXhwYW5kLmV4cGFuZGVkfHwwPT09dGhpcy5jb250YWluZXIubGVuZ3RoKWlmKHRoaXMudGVtcGxh''@;'; put 'put ''dGUpdGhpcy5leHBhbmQuZXhwYW5kZWQ/dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpOnRoaXMuY29udGFpbmVyLmNsZWFyKCk7ZWxzZSB0cnl7dGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRpc3BsYXkiLHRoaXMu''@;'; put 'put ''ZXhwYW5kLmV4cGFuZGVkP251bGw6Im5vbmUiKX1jYXRjaChoKXt9fW5nT25Jbml0KCl7dGhpcy5leHBhbmQuZXhwYW5kYWJsZSsrLHRoaXMudXBkYXRlVmlldygpfW5nT25EZXN0cm95KCl7dGhpcy5leHBhbmQuZXhwYW5kYWJsZS0tLHRoaXMuX3N1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5o''@;'; put 'put ''LnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChxciw4KSxLdChVaSksS3QoYm8pLEt0KEdhKSxLdChyMSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJJZkV4cGFuZGVkIiwiIl1dLGlu''@;'; put 'put ''cHV0czp7ZXhwYW5kZWQ6WyJjbHJJZkV4cGFuZGVkIiwiZXhwYW5kZWQiXX0sb3V0cHV0czp7ZXhwYW5kZWRDaGFuZ2U6ImNscklmRXhwYW5kZWRDaGFuZ2UifX0pLGR9KSgpLFBhPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMudG9nZ2xlU2VydmljZT1oLHRoaXMudGVt''@;'; put 'put ''cGxhdGU9dix0aGlzLmNvbnRhaW5lcj15LHRoaXMub3BlbkNoYW5nZT1uZXcgYXIoITEpLHRoaXMuc3Vic2NyaXB0aW9uPXRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShDPT57dGhpcy51cGRhdGVWaWV3KEMpLHRoaXMub3BlbkNoYW5nZS5lbWl0KEMpfSl9c2V0IG9w''@;'; put 'put ''ZW4oaCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49aH1nZXQgb3Blbigpe3JldHVybiB0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn11cGRhdGVWaWV3KGgpe2g/dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpOnRoaXMuY29udGFpbmVyLmNsZWFyKCl9bmdP''@;'; put 'put ''bkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh6cyksS3QocXIpLEt0KFVpKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscklmT3BlbiIs''@;'; put 'put ''IiJdXSxpbnB1dHM6e29wZW46WyJjbHJJZk9wZW4iLCJvcGVuIl19LG91dHB1dHM6e29wZW5DaGFuZ2U6ImNscklmT3BlbkNoYW5nZSJ9fSksZH0pKCkscWE9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9k''@;'; put 'put ''PWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKTt2YXIgdjE9KCgpPT4oZnVuY3Rpb24oZCl7ZC5WRVJUSUNBTD0idmVydGljYWwiLGQuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsZC5CT1RIPSJib3RoIn0odjF8fCh2MT17fSkpLHYxKSkoKTtsZXQg''@;'; put 'put ''X3M9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuZWxlbWVudFJlZj1oLHRoaXMucGxhdGZvcm1JZD12fWdldCBuYXRpdmVFbGVtZW50KCl7cmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fWZvY3VzKCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5lbGVt''@;'; put 'put ''ZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KEwyKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscktleUZvY3VzSXRlbSIsIiJdXX0pLGR9KSgpLEVw''@;'; put 'put ''PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5lbGVtZW50UmVmPWgsdGhpcy5kaXJlY3Rpb249djEuVkVSVElDQUwsdGhpcy5mb2N1c09uTG9hZD0hMSx0aGlzLmZvY3VzQ2hhbmdlPW5ldyBhcix0aGlzLl9jdXJyZW50PTAsdGhpcy5zdWJzY3JpcHRpb25zPVtdfXNldCBmb2N1''@;'; put 'put ''c2FibGVJdGVtcyhoKXtBcnJheS5pc0FycmF5KGgpJiZoLmxlbmd0aCYmKHRoaXMuX2ZvY3VzYWJsZUl0ZW1zPWgsdGhpcy5pbml0aWFsaXplRm9jdXMoKSl9Z2V0IGZvY3VzYWJsZUl0ZW1zKCl7cmV0dXJuIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zP3RoaXMuX2ZvY3VzYWJsZUl0ZW1zOnRoaXMu''@;'; put 'put ''Y2xyS2V5Rm9jdXNJdGVtcz90aGlzLmNscktleUZvY3VzSXRlbXMudG9BcnJheSgpOltdfWdldCBuYXRpdmVFbGVtZW50KCl7cmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50fWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoaCl7dGhpcy5f''@;'; put 'put ''Y3VycmVudCE9PWgmJih0aGlzLl9jdXJyZW50PWgpfWdldCBjdXJyZW50SXRlbSgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW1zW3RoaXMuX2N1cnJlbnRdfWdldCBjdXJyZW50SXRlbUVsZW1lbnQoKXtyZXR1cm4gdGhpcy5jdXJyZW50SXRlbS5uYXRpdmVFbGVtZW50P3RoaXMuY3VycmVu''@;'; put 'put ''dEl0ZW0ubmF0aXZlRWxlbWVudDp0aGlzLmN1cnJlbnRJdGVtfWZvY3VzQ3VycmVudCgpe3RoaXMuY3VycmVudEl0ZW0uZm9jdXMoKSx0aGlzLmZvY3VzQ2hhbmdlLm5leHQodGhpcy5fY3VycmVudCl9bW92ZVRvKGgpe3RoaXMucG9zaXRpb25JblJhbmdlKGgpJiYodGhpcy5jdXJyZW50PWgs''@;'; put 'put ''dGhpcy5mb2N1c0N1cnJlbnQoKSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JJdGVtVXBkYXRlcygpKSx0aGlzLmluaXRpYWxpemVGb2N1cygpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51''@;'; put 'put ''bnN1YnNjcmliZSgpKX1oYW5kbGVLZXlib2FyZEV2ZW50KGgpe2lmKHRoaXMuY3VycmVudEl0ZW1FbGVtZW50IT09aC50YXJnZXQpe2NvbnN0IHY9dGhpcy5nZXRJdGVtUG9zaXRpb24oaC50YXJnZXQpO3RoaXMucG9zaXRpb25JblJhbmdlKHYpJiYodGhpcy5jdXJyZW50PXYpfXRoaXMucHJl''@;'; put 'put ''dktleVByZXNzZWQoaCkmJnRoaXMuY3VycmVudEZvY3VzSXNOb3RGaXJzdEl0ZW0oKT90aGlzLm1vdmVUbyh0aGlzLmN1cnJlbnQtMSk6dGhpcy5uZXh0S2V5UHJlc3NlZChoKSYmdGhpcy5jdXJyZW50Rm9jdXNJc05vdExhc3RJdGVtKCk/dGhpcy5tb3ZlVG8odGhpcy5jdXJyZW50KzEpOmgu''@;'; put 'put ''Y29kZT09PU0wLkhvbWU/dGhpcy5tb3ZlVG8oMCk6aC5jb2RlPT09TTAuRW5kJiZ0aGlzLm1vdmVUbyh0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aC0xKSxNcChoKX1zZXRDbGlja2VkSXRlbUN1cnJlbnQoaCl7Y29uc3Qgdj10aGlzLmdldEl0ZW1Qb3NpdGlvbihoLnRhcmdldCk7dj4tMSYm''@;'; put 'put ''dGhpcy5tb3ZlVG8odil9Z2V0SXRlbVBvc2l0aW9uKGgpe3JldHVybiB0aGlzLl9mb2N1c2FibGVJdGVtcz90aGlzLmZvY3VzYWJsZUl0ZW1zLmluZGV4T2YoaCk6dGhpcy5mb2N1c2FibGVJdGVtcy5tYXAodj0+di5uYXRpdmVFbGVtZW50KS5pbmRleE9mKGgpfXBvc2l0aW9uSW5SYW5nZSho''@;'; put 'put ''KXtyZXR1cm4gaD49MCYmaDx0aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aH1jdXJyZW50Rm9jdXNJc05vdEZpcnN0SXRlbSgpe3JldHVybiB0aGlzLl9jdXJyZW50LTE+PTB9Y3VycmVudEZvY3VzSXNOb3RMYXN0SXRlbSgpe3JldHVybiB0aGlzLl9jdXJyZW50KzE8dGhpcy5mb2N1c2FibGVJ''@;'; put 'put ''dGVtcy5sZW5ndGh9aW5pdGlhbGl6ZUZvY3VzKCl7dGhpcy5mb2N1c2FibGVJdGVtcyYmdGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGgmJih0aGlzLl9jdXJyZW50Pj10aGlzLmZvY3VzYWJsZUl0ZW1zLmxlbmd0aCYmKHRoaXMuX2N1cnJlbnQ9dGhpcy5mb2N1c2FibGVJdGVtcy5sZW5ndGgt''@;'; put 'put ''MSksdGhpcy5mb2N1c09uTG9hZCYmKHRoaXMuY3VycmVudEl0ZW0uZm9jdXMoKSx0aGlzLmZvY3VzQ2hhbmdlLm5leHQoKSkpfWxpc3RlbkZvckl0ZW1VcGRhdGVzKCl7cmV0dXJuIHRoaXMuY2xyS2V5Rm9jdXNJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuaW5pdGlhbGl6ZUZv''@;'; put 'put ''Y3VzKCl9KX1uZXh0S2V5UHJlc3NlZChoKXtjb25zdCB2PWFTKGgua2V5KTtzd2l0Y2godGhpcy5kaXJlY3Rpb24pe2Nhc2UgdjEuVkVSVElDQUw6cmV0dXJuIHY9PT1NMC5BcnJvd0Rvd247Y2FzZSB2MS5IT1JJWk9OVEFMOnJldHVybiB2PT09TTAuQXJyb3dSaWdodDtjYXNlIHYxLkJPVEg6''@;'; put 'put ''cmV0dXJuIHY9PT1NMC5BcnJvd0Rvd258fHY9PT1NMC5BcnJvd1JpZ2h0O2RlZmF1bHQ6cmV0dXJuITF9fXByZXZLZXlQcmVzc2VkKGgpe2NvbnN0IHY9YVMoaC5rZXkpO3N3aXRjaCh0aGlzLmRpcmVjdGlvbil7Y2FzZSB2MS5WRVJUSUNBTDpyZXR1cm4gdj09PU0wLkFycm93VXA7Y2FzZSB2''@;'; put 'put ''MS5IT1JJWk9OVEFMOnJldHVybiB2PT09TTAuQXJyb3dMZWZ0O2Nhc2UgdjEuQk9USDpyZXR1cm4gdj09PU0wLkFycm93VXB8fHY9PT1NMC5BcnJvd0xlZnQ7ZGVmYXVsdDpyZXR1cm4hMX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSl9''@;'; put 'put ''LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscktleUZvY3VzIiwiIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksX3MsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5jbHJLZXlGb2N1c0l0ZW1zPUMpfX0saG9zdEJpbmRp''@;'; put 'put ''bmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigia2V5ZG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuaGFuZGxlS2V5Ym9hcmRFdmVudChDKX0pKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuc2V0Q2xpY2tlZEl0ZW1DdXJyZW50KEMpfSl9LGlucHV0czp7ZGlyZWN0aW9uOlsiY2xyRGly''@;'; put 'put ''ZWN0aW9uIiwiZGlyZWN0aW9uIl0sZm9jdXNPbkxvYWQ6WyJjbHJGb2N1c09uTG9hZCIsImZvY3VzT25Mb2FkIl0sZm9jdXNhYmxlSXRlbXM6WyJjbHJLZXlGb2N1cyIsImZvY3VzYWJsZUl0ZW1zIl19LG91dHB1dHM6e2ZvY3VzQ2hhbmdlOiJjbHJGb2N1c0NoYW5nZSJ9LGF0dHJzOlJ1ZSxu''@;'; put 'put ''Z0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksZnc9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; put 'put ''ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKTtjb25zdCB0Zj1uZXcgemUoIlBPUE9WRVJfSE9TVF9BTkNIT1IiKTtsZXQgc1M9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVy''@;'; put 'put ''biBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7dmFyIHExPSgoKT0+KGZ1bmN0aW9uKGQpe2QuVVA9InVwIixkLkRPV049ImRvd24iLGQuTEVGVD0ibGVmdCIsZC5SSUdIVD0icmlnaHQifShxMXx8KHExPXt9KSkscTEpKSgp''@;'; put 'put ''O2xldCB4cD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMucmVuZGVyZXI9aCx0aGlzLl91bmxpc3RlbkZ1bmNzPVtdfWdldCBjdXJyZW50KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnR9cmVzZXQoaCl7dGhpcy5fY3VycmVudD1ofWxpc3RlblRvQXJyb3dLZXlzKGgpe3RoaXMuX3Vu''@;'; put 'put ''bGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLmFycm93dXAiLCgpPT4hdGhpcy5tb3ZlKHExLlVQKSkpLHRoaXMuX3VubGlzdGVuRnVuY3MucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJrZXlkb3duLmFycm93ZG93biIsKCk9PiF0aGlzLm1vdmUo''@;'; put 'put ''cTEuRE9XTikpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd2xlZnQiLCgpPT4hdGhpcy5tb3ZlKHExLkxFRlQpKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uYXJy''@;'; put 'put ''b3dyaWdodCIsKCk9PiF0aGlzLm1vdmUocTEuUklHSFQpKSl9cmVnaXN0ZXJDb250YWluZXIoaCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaCwidGFiaW5kZXgiLCIwIiksdGhpcy5saXN0ZW5Ub0Fycm93S2V5cyhoKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJl''@;'; put 'put ''ci5saXN0ZW4oaCwia2V5ZG93bi5zcGFjZSIsKCk9PiF0aGlzLmFjdGl2YXRlQ3VycmVudCgpKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uZW50ZXIiLCgpPT4hdGhpcy5hY3RpdmF0ZUN1cnJlbnQoKSkpfW1vdmVUbyhoKXt2b2lk''@;'; put 'put ''IDAhPT1oJiYodGhpcy5jdXJyZW50JiZ0aGlzLmN1cnJlbnQuYmx1cigpLGguZm9jdXMoKSx0aGlzLl9jdXJyZW50PWgpfW1vdmUoaCl7bGV0IHY9ITE7aWYodGhpcy5jdXJyZW50KXtjb25zdCB5PXRoaXMuY3VycmVudFtoXTt5JiYoa1goeSk/eTphYSh5KSkuc3Vic2NyaWJlKEk9PntJJiYo''@;'; put 'put ''dGhpcy5tb3ZlVG8oSSksdj0hMCl9KX1yZXR1cm4gdn1hY3RpdmF0ZUN1cnJlbnQoKXtyZXR1cm4hKCF0aGlzLmN1cnJlbnR8fCF0aGlzLmN1cnJlbnQuYWN0aXZhdGV8fCh0aGlzLmN1cnJlbnQuYWN0aXZhdGUoKSwwKSl9ZGV0YWNoTGlzdGVuZXJzKCl7dGhpcy5fdW5saXN0ZW5GdW5jcy5m''@;'; put 'put ''b3JFYWNoKGg9PmgoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEdhKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgZzg9e3Byb3ZpZGU6eHAsdXNlRmFjdG9yeTpmdW5jdGlv''@;'; put 'put ''biBCTChkLGcpe3JldHVybiBkfHxuZXcgeHAoZyl9LGRlcHM6W1tuZXcgbWYsbmV3IEw0LHhwXSxHYV19O2NsYXNzIGxxe31mdW5jdGlvbiBSQWUoZCl7cmV0dXJuW09jLGQse3Byb3ZpZGU6bHEsdXNlRXhpc3Rpbmc6ZH1dfWNsYXNzIEdMZSBleHRlbmRzIGNsYXNzIHpMZXtjb250YWluc0l0''@;'; put 'put ''ZW0oZyl7cmV0dXJuIHRoaXMubW9kZWw9PT1nfXNlbGVjdChnKXt0aGlzLm1vZGVsPWd9dW5zZWxlY3QoZyl7dGhpcy5jb250YWluc0l0ZW0oZykmJih0aGlzLm1vZGVsPW51bGwpfWlzRW1wdHkoKXtyZXR1cm4hdGhpcy5tb2RlbH1wb3AoKXtjb25zdCBnPXRoaXMubW9kZWw7cmV0dXJuIHRo''@;'; put 'put ''aXMubW9kZWw9bnVsbCxnfXRvU3RyaW5nKGcpe3JldHVybiB0aGlzLm1vZGVsP2cmJnRoaXMubW9kZWxbZ10/dGhpcy5tb2RlbFtnXTp0aGlzLm1vZGVsLnRvU3RyaW5nKCk6IiJ9fXtjb25zdHJ1Y3Rvcigpe3N1cGVyKC4uLmFyZ3VtZW50cyksdGhpcy5fZm9jdXNDaGFuZ2VkPW5ldyBmcyhu''@;'; put 'put ''dWxsKX1nZXQgZm9jdXNDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2ZvY3VzQ2hhbmdlZC5hc09ic2VydmFibGUoKX1zZWxlY3QoZyl7dGhpcy5tb2RlbCE9PWcmJih0aGlzLm1vZGVsPWcsdGhpcy5fZm9jdXNDaGFuZ2VkLm5leHQoZykpfX1sZXQgV0xlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0''@;'; put 'put ''b3IoKXt0aGlzLmxvYWRpbmc9ITEsdGhpcy5fY3VycmVudElucHV0PSIiLHRoaXMuX2lucHV0Q2hhbmdlZD1uZXcgZnMoIiIpLHRoaXMuaW5wdXRDaGFuZ2VkPXRoaXMuX2lucHV0Q2hhbmdlZC5hc09ic2VydmFibGUoKSx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkPW5ldyB4aygxKX1nZXQgY3Vy''@;'; put 'put ''cmVudElucHV0KCl7cmV0dXJuIHRoaXMuX2N1cnJlbnRJbnB1dH1zZXQgY3VycmVudElucHV0KGgpeyIiPT09aCYmIXRoaXMubXVsdGlzZWxlY3RhYmxlJiZ0aGlzLnNldFNlbGVjdGlvblZhbHVlKG51bGwpLHRoaXMuX2N1cnJlbnRJbnB1dD1oLHRoaXMuX2lucHV0Q2hhbmdlZC5uZXh0KGgp''@;'; put 'put ''fWdldCBzZWxlY3Rpb25DaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQuYXNPYnNlcnZhYmxlKCl9c2VsZWN0KGgpe251bGw9PWh8fHRoaXMuc2VsZWN0aW9uTW9kZWwuY29udGFpbnNJdGVtKGgpfHwodGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoaCksdGhpcy5fc2Vs''@;'; put 'put ''ZWN0aW9uQ2hhbmdlZC5uZXh0KHRoaXMuc2VsZWN0aW9uTW9kZWwpKX10b2dnbGUoaCl7bnVsbCE9aCYmKHRoaXMuc2VsZWN0aW9uTW9kZWwuY29udGFpbnNJdGVtKGgpP3RoaXMuc2VsZWN0aW9uTW9kZWwudW5zZWxlY3QoaCk6dGhpcy5zZWxlY3Rpb25Nb2RlbC5zZWxlY3QoaCksdGhpcy5f''@;'; put 'put ''c2VsZWN0aW9uQ2hhbmdlZC5uZXh0KHRoaXMuc2VsZWN0aW9uTW9kZWwpKX11bnNlbGVjdChoKXtudWxsPT1ofHwhdGhpcy5zZWxlY3Rpb25Nb2RlbC5jb250YWluc0l0ZW0oaCl8fCh0aGlzLnNlbGVjdGlvbk1vZGVsLnVuc2VsZWN0KGgpLHRoaXMuX3NlbGVjdGlvbkNoYW5nZWQubmV4dCh0''@;'; put 'put ''aGlzLnNlbGVjdGlvbk1vZGVsKSl9Z2V0IG11bHRpc2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLnNlbGVjdGlvbk1vZGVsIGluc3RhbmNlb2YgY2xhc3MgWkxle2NvbnRhaW5zSXRlbShnKXtyZXR1cm4hIXRoaXMubW9kZWwmJnRoaXMubW9kZWwuaW5jbHVkZXMoZyl9c2VsZWN0KGcpe3RoaXMu''@;'; put 'put ''YWRkSXRlbShnKX11bnNlbGVjdChnKXt0aGlzLnJlbW92ZUl0ZW0oZyl9aXNFbXB0eSgpe3JldHVybiEodGhpcy5tb2RlbCYmdGhpcy5tb2RlbC5sZW5ndGg+MCl9cG9wKCl7bGV0IGc7cmV0dXJuIHRoaXMubW9kZWwmJnRoaXMubW9kZWwubGVuZ3RoPjAmJihnPXRoaXMubW9kZWxbdGhpcy5t''@;'; put 'put ''b2RlbC5sZW5ndGgtMV0sdGhpcy5yZW1vdmVJdGVtKGcpKSxnfXRvU3RyaW5nKGcsaD0tMSl7bGV0IHY9IiI7cmV0dXJuIHRoaXMubW9kZWwmJihoPi0xP3RoaXMubW9kZWxbaF0mJih2Kz1nJiZ0aGlzLm1vZGVsW2hdW2ddP3RoaXMubW9kZWxbaF1bZ106dGhpcy5tb2RlbFtoXS50b1N0cmlu''@;'; put 'put ''ZygpKTp0aGlzLm1vZGVsLmZvckVhY2goeT0+e3YrPWcmJnlbZ10/eVtnXTp5LnRvU3RyaW5nKCksdis9IiAifSkpLHYudHJpbSgpfWFkZEl0ZW0oZyl7dGhpcy5jb250YWluc0l0ZW0oZyl8fCh0aGlzLm1vZGVsPXRoaXMubW9kZWx8fFtdLHRoaXMubW9kZWwucHVzaChnKSl9cmVtb3ZlSXRl''@;'; put 'put ''bShnKXtpZihudWxsPT10aGlzLm1vZGVsKXJldHVybjtjb25zdCBoPXRoaXMubW9kZWwuaW5kZXhPZihnKTtoPi0xJiZ0aGlzLm1vZGVsLnNwbGljZShoLDEpLDA9PT10aGlzLm1vZGVsLmxlbmd0aCYmKHRoaXMubW9kZWw9bnVsbCl9fX1zZXRTZWxlY3Rpb25WYWx1ZShoKXshdGhpcy5zZWxl''@;'; put 'put ''Y3Rpb25Nb2RlbHx8dGhpcy5zZWxlY3Rpb25Nb2RlbC5tb2RlbD09PWh8fCF0aGlzLnNlbGVjdGlvbk1vZGVsLm1vZGVsJiYhaHx8KHRoaXMuc2VsZWN0aW9uTW9kZWwubW9kZWw9aCx0aGlzLl9zZWxlY3Rpb25DaGFuZ2VkLm5leHQodGhpcy5zZWxlY3Rpb25Nb2RlbCkpfX1yZXR1cm4gZC5c''@;'; put 'put ''dTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtSQWUoKCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuaWQ9aCx0aGlzLnRvZ2dsZVNlcnZpY2U9eSx0''@;'; put 'put ''aGlzLnNlbGVjdGlvblNlcnZpY2U9Qyx0aGlzLnBsYXRmb3JtSWQ9SSx0aGlzLnBzZXVkb0ZvY3VzPW5ldyBHTGUsdGhpcy5vcHRpb25EYXRhPVtdLHRoaXMuaGFuZGxlRm9jdXNTdWJzY3JpcHRpb24oKSx0aGlzLnJlbmRlcmVyPXYuY3JlYXRlUmVuZGVyZXIobnVsbCxudWxsKX1oYW5kbGVG''@;'; put 'put ''b2N1c1N1YnNjcmlwdGlvbigpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShoPT57aHx8KHRoaXMucHNldWRvRm9jdXMubW9kZWw9bnVsbCl9KX1nZXQgdHJpZ2dlcigpe3JldHVybiB0aGlzLl90cmlnZ2VyfXNldCB0cmlnZ2VyKGgpe3RoaXMuX3RyaWdnZXI9aCx0''@;'; put 'put ''aGlzLmFkZEZvY3VzT25CbHVyTGlzdGVuZXIoaCl9Z2V0IGxpc3Rib3goKXtyZXR1cm4gdGhpcy5fbGlzdGJveH1zZXQgbGlzdGJveChoKXt0aGlzLl9saXN0Ym94PWgsdGhpcy5hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGgpfWdldCB0ZXh0SW5wdXQoKXtyZXR1cm4gdGhpcy5fdGV4dElucHV0''@;'; put 'put ''fXNldCB0ZXh0SW5wdXQoaCl7dGhpcy5fdGV4dElucHV0PWgsdGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93biIsdj0+IXRoaXMuaGFuZGxlVGV4dElucHV0KHYpKSx0aGlzLmFkZEZvY3VzT25CbHVyTGlzdGVuZXIoaCl9bW92ZUZvY3VzVG8oaCl7bGV0IHY9dGhpcy5vcHRpb25EYXRh''@;'; put 'put ''LmZpbmRJbmRleCh5PT55LmVxdWFscyh0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsKSk7aD09PXExLlVQPy0xPT09dnx8MD09PXY/dj10aGlzLm9wdGlvbkRhdGEubGVuZ3RoLTE6di0tOmg9PT1xMS5ET1dOJiYoLTE9PT12fHx2PT09dGhpcy5vcHRpb25EYXRhLmxlbmd0aC0xP3Y9MDp2KyspLHRo''@;'; put 'put ''aXMucHNldWRvRm9jdXMuc2VsZWN0KHRoaXMub3B0aW9uRGF0YVt2XSksdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbCYmdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC5lbCYmdGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC5lbC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6ImNlbnRl''@;'; put 'put ''ciIsaW5saW5lOiJuZWFyZXN0In0pfW9wZW5BbmRNb3ZlVG8oaCl7dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4/dGhpcy5tb3ZlRm9jdXNUbyhoKToodGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2UucGlwZShINSgxKSkuc3Vic2NyaWJlKHY9Pnt2JiZ0aGlzLm1vdmVGb2N1c1RvKGgpfSks''@;'; put 'put ''dGhpcy50b2dnbGVTZXJ2aWNlLm9wZW49ITApfWhhbmRsZVRleHRJbnB1dChoKXtsZXQgdj0hMTtjb25zdCB5PWFTKGgua2V5KTtpZihoKXN3aXRjaCh5KXtjYXNlIE0wLkVudGVyOnRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiZ0aGlzLnBzZXVkb0ZvY3VzLm1vZGVsJiYodGhpcy5zZWxlY3Rp''@;'; put 'put ''b25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZT90aGlzLnNlbGVjdGlvblNlcnZpY2UudG9nZ2xlKHRoaXMucHNldWRvRm9jdXMubW9kZWwudmFsdWUpOnRoaXMuc2VsZWN0aW9uU2VydmljZS5zZWxlY3QodGhpcy5wc2V1ZG9Gb2N1cy5tb2RlbC52YWx1ZSksdj0hMCk7YnJlYWs7Y2FzZSBNMC5T''@;'; put 'put ''cGFjZTp0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbnx8KHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSEwLHY9ITApO2JyZWFrO2Nhc2UgTTAuQXJyb3dVcDp0aGlzLnByZXZlbnRWaWV3cG9ydFNjcm9sbGluZyhoKSx0aGlzLm9wZW5BbmRNb3ZlVG8ocTEuVVApLHY9ITA7YnJlYWs7Y2FzZSBNMC5B''@;'; put 'put ''cnJvd0Rvd246dGhpcy5wcmV2ZW50Vmlld3BvcnRTY3JvbGxpbmcoaCksdGhpcy5vcGVuQW5kTW92ZVRvKHExLkRPV04pLHY9ITA7YnJlYWs7ZGVmYXVsdDpoLmtleSE9PU0wLlRhYiYmKCF0aGlzLnNlbGVjdGlvblNlcnZpY2UubXVsdGlzZWxlY3RhYmxlfHxoLmtleSE9PU0wLkJhY2tzcGFj''@;'; put 'put ''ZSkmJmgua2V5IT09TTAuRXNjYXBlJiYhdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJih0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMCl9cmV0dXJuIHZ9cHJldmVudFZpZXdwb3J0U2Nyb2xsaW5nKGgpe2gucHJldmVudERlZmF1bHQoKSxoLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZv''@;'; put 'put ''Y3VzSW5wdXQoKXt0aGlzLnRleHRJbnB1dCYmU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy50ZXh0SW5wdXQuZm9jdXMoKX1hZGRGb2N1c09uQmx1ckxpc3RlbmVyKGgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMucmVuZGVyZXIubGlzdGVuKGgsImJsdXIiLHY9Pnt0aGlzLmZvY3VzT3V0''@;'; put 'put ''T2ZDb21wb25lbnQodikmJih0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMSx0aGlzLmNvbXBvbmVudENkUmVmJiZ0aGlzLmNvbXBvbmVudENkUmVmLmRldGVjdENoYW5nZXMoKSl9KX1mb2N1c091dE9mQ29tcG9uZW50KGgpe2NvbnN0IHY9aC5yZWxhdGVkVGFyZ2V0fHxkb2N1bWVudC5hY3Rp''@;'; put 'put ''dmVFbGVtZW50O3JldHVybiEodGhpcy50ZXh0SW5wdXQuY29udGFpbnModil8fHRoaXMudHJpZ2dlci5jb250YWlucyh2KXx8dGhpcy5saXN0Ym94LmNvbnRhaW5zKHYpKX1mb2N1c0ZpcnN0QWN0aXZlKCl7aWYodGhpcy5vcHRpb25EYXRhLmxlbmd0aD4wKWlmKHRoaXMuc2VsZWN0aW9uU2Vy''@;'; put 'put ''dmljZS5zZWxlY3Rpb25Nb2RlbC5pc0VtcHR5KCkpdGhpcy5wc2V1ZG9Gb2N1cy5zZWxlY3QodGhpcy5vcHRpb25EYXRhWzBdKTtlbHNle2xldCBoO2g9dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLm11bHRpc2VsZWN0YWJsZT90aGlzLnNlbGVjdGlvblNlcnZpY2Uuc2VsZWN0aW9uTW9kZWwubW9k''@;'; put 'put ''ZWxbMF06dGhpcy5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdGlvbk1vZGVsLm1vZGVsO2NvbnN0IHY9dGhpcy5vcHRpb25EYXRhLmZpbmQoeT0+eS52YWx1ZT09PWgpO3RoaXMucHNldWRvRm9jdXMuc2VsZWN0KHZ8fHRoaXMub3B0aW9uRGF0YVswXSl9fWFkZE9wdGlvblZhbHVlcyhoKXt0aGlz''@;'; put 'put ''Lm9wdGlvbkRhdGE9aH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koeTIpLENpKE1kKSxDaSh6cyksQ2koV0xlKSxDaShMMikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpKTtsZXQgWUxlPSgo''@;'; put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtocy5hZGRJY29ucyhLaCxUZixEeSxTayl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSx0ZCxEcyxmdyxK''@;'; put 'put ''cixxYSxSYyxEbF0sSnIscWFdfSksZH0pKCksQkFlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBadHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGc7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybihnfHwoZz1mbChkKSkpKHZ8fGQpfX0oKSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpk''@;'; put 'put ''LHNlbGVjdG9yczpbWyJjbHItaW5wdXQtY29udGFpbmVyIl1dLGhvc3RWYXJzOjYsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWZvcm0tY29udHJvbCIsITApKCJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIixudWxsPT12LmNvbnRyb2w/bnVsbDp2LmNvbnRyb2wu''@;'; put 'put ''ZGlzYWJsZWQpKCJjbHItcm93Iix2LmFkZEdyaWQoKSl9LGZlYXR1cmVzOltobyhbcWUsSGUscSxFdF0pLERvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6cEwsZGVjbHM6MTAsdmFyczo3LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEs''@;'; put 'put ''ImNsci1pbnB1dC13cmFwcGVyIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0''@;'; put 'put ''YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDQsIm5nSWYiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdLFsic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwi''@;'; put 'put ''YXJpYS1oaWRkZW4iLCJ0cnVlIiwxLCJjbHItdmFsaWRhdGUtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKE51ZSksTmkoMCkscm4oMSx0cywxLDAsImxhYmVsIiwwKSxudCgyLCJkaXYiLDEpKDMsImRpdiIsMiksTmkoNCwxKSxybig1LHQkLDEsMCwiY2RzLWljb24i''@;'; put 'put ''LDMpLHJuKDYsSHVlLDEsMCwiY2RzLWljb24iLDQpLG90KCkscm4oNyxuJCwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDgsciQsMSwwLCJuZy1jb250ZW50IiwwKSxybig5LENBZSwxLDAsIm5nLWNvbnRlbnQiLDApLG90KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIiwhdi5sYWJlbCYmdi5hZGRH''@;'; put 'put ''cmlkKCkpLHV0KDEpLFR0KCJuZ0NsYXNzIix2LmNvbnRyb2xDbGFzcygpKSx1dCgzKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SGVscGVyKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCks''@;'; put 'put ''dXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbTm8sYXQsbGMsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLHB2PSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBTbntjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3N1cGVyKGgsQkFlLHYseSxDLEkpLHRoaXMuaW5kZXg9''@;'; put 'put ''MX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KFNzKSxLdChEZiwxMCksS3QoR2EpLEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscklucHV0IiwiIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRp''@;'; put 'put ''bmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLWlucHV0IiwhMCl9LGZlYXR1cmVzOltEb119KSxkfSkoKSxQQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2hzLmFkZEljb25zKEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9''@;'; put 'put ''LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLHRkLERzLEpyXSxKcl19KSxkfSkoKSxrZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2ZvY3VzZWQ9bmV3IGZzKCExKX1nZXQgZm9jdXNDaGFuZ2UoKXtyZXR1cm4gdGhpcy5f''@;'; put 'put ''Zm9jdXNlZC5hc09ic2VydmFibGUoKX1zZXQgZm9jdXNlZChoKXt0aGlzLl9mb2N1c2VkLm5leHQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFVM''@;'; put 'put ''ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7aHMuYWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsUEFlLERzXV19KSxk''@;'; put 'put ''fSkoKSxRTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3ByZXZpb3VzRm9jdXNUcmFwcz1bXX1nZXQgY3VycmVudCgpe3JldHVybiB0aGlzLl9jdXJyZW50fXNldCBjdXJyZW50KGgpe3RoaXMuX3ByZXZpb3VzRm9jdXNUcmFwcy5wdXNoKHRoaXMuX2N1cnJlbnQpLHRoaXMu''@;'; put 'put ''X2N1cnJlbnQ9aH1nZXQgbmJGb2N1c1RyYXBwZXJzKCl7cmV0dXJuIHRoaXMuX3ByZXZpb3VzRm9jdXNUcmFwcy5sZW5ndGh9YWN0aXZhdGVQcmV2aW91c1RyYXBwZXIoKXt0aGlzLl9jdXJyZW50PXRoaXMuX3ByZXZpb3VzRm9jdXNUcmFwcy5wb3AoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1''@;'; put 'put ''bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjLHByb3ZpZGVkSW46InJvb3QifSksZH0pKCksaHc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuZWw9aCx0aGlzLmluamVjdG9yPXYs''@;'; put 'put ''dGhpcy5mb2N1c1RyYXBzVHJhY2tlcj15LHRoaXMucmVuZGVyZXI9Qyx0aGlzLnBsYXRmb3JtSWQ9SSx0aGlzLmxvY2FsRm9jdXNFc2NhcGVkPSExLHRoaXMuX2NvbmZpZz17c3RyaWN0OiEwfSx0aGlzLmRvY3VtZW50PXRoaXMuaW5qZWN0b3IuZ2V0KGdzKSx0aGlzLmZvY3VzVHJhcHNUcmFj''@;'; put 'put ''a2VyLmN1cnJlbnQ9dGhpc31zZXQgY29uZmlnKGgpe3RoaXMuX2NvbmZpZz1PYmplY3QuYXNzaWduKHRoaXMuX2NvbmZpZywiIj09PWg/e306aCl9b25Gb2N1c0luKGgpe2NvbnN0IHY9dGhpcy5lbC5uYXRpdmVFbGVtZW50O3RoaXMuZm9jdXNUcmFwc1RyYWNrZXIuY3VycmVudCE9PXRoaXN8''@;'; put 'put ''fCFTbCh0aGlzLnBsYXRmb3JtSWQpfHx0aGlzLmxvY2FsRm9jdXNFc2NhcGVkfHx2LmNvbnRhaW5zKGgudGFyZ2V0KXx8KGgudGFyZ2V0PT09dGhpcy50b3BSZWJvdW5kRWwmJnYuY29udGFpbnMoaC5yZWxhdGVkVGFyZ2V0KT8odGhpcy5mb2N1c0xhc3RGb2N1c2FibGUoKSx0aGlzLmZvY3Vz''@;'; put 'put ''VHJhcEVsSWZPdXRzaWRlKCkpOmgudGFyZ2V0PT09dGhpcy5ib3R0b21SZWJvdW5kRWwmJnYuY29udGFpbnMoaC5yZWxhdGVkVGFyZ2V0KT8odGhpcy5mb2N1c0ZpcnN0Rm9jdXNhYmxlKCksdGhpcy5mb2N1c1RyYXBFbElmT3V0c2lkZSgpKTp0aGlzLl9jb25maWcuc3RyaWN0P3RoaXMuZWwu''@;'; put 'put ''bmF0aXZlRWxlbWVudC5mb2N1cygpOnRoaXMubG9jYWxGb2N1c0VzY2FwZWQ9ITApfWNyZWF0ZUZvY3VzYWJsZU9mZlNjcmVlbkVsKCl7Y29uc3QgaD10aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtyZXR1cm4gdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaCwidGFiaW5k''@;'; put 'put ''ZXgiLCIwIiksdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhoLCJvZmZzY3JlZW4tZm9jdXMtcmVib3VuZGVyIiksaH1hZGRSZWJvdW5kRWxzKCl7aWYoU2wodGhpcy5wbGF0Zm9ybUlkKSl7dGhpcy50b3BSZWJvdW5kRWw9dGhpcy5jcmVhdGVGb2N1c2FibGVPZmZTY3JlZW5FbCgpLHRoaXMuYm90''@;'; put 'put ''dG9tUmVib3VuZEVsPXRoaXMuY3JlYXRlRm9jdXNhYmxlT2ZmU2NyZWVuRWwoKTtjb25zdCBoPXRoaXMuZWwubmF0aXZlRWxlbWVudDt0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZShoLnBhcmVudEVsZW1lbnQsdGhpcy50b3BSZWJvdW5kRWwsaCksaC5uZXh0U2libGluZz90aGlzLnJlbmRl''@;'; put 'put ''cmVyLmluc2VydEJlZm9yZShoLnBhcmVudE5vZGUsdGhpcy5ib3R0b21SZWJvdW5kRWwsaC5uZXh0U2libGluZyk6dGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZChoLnBhcmVudE5vZGUsdGhpcy5ib3R0b21SZWJvdW5kRWwpfX1yZW1vdmVSZWJvdW5kRWxzKCl7U2wodGhpcy5wbGF0Zm9ybUlk''@;'; put 'put ''KSYmdGhpcy50b3BSZWJvdW5kRWwmJnRoaXMuYm90dG9tUmVib3VuZEVsJiYodGhpcy5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMudG9wUmVib3VuZEVsKSx0aGlzLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5ib3R0b21SZWJvdW5kRWwpLGRlbGV0ZSB0aGlzLnRvcFJl''@;'; put 'put ''Ym91bmRFbCxkZWxldGUgdGhpcy5ib3R0b21SZWJvdW5kRWwpfXNldFByZXZpb3VzRm9jdXMoKXt0aGlzLnByZXZpb3VzQWN0aXZlRWxlbWVudCYmdGhpcy5wcmV2aW91c0FjdGl2ZUVsZW1lbnQuZm9jdXMmJnRoaXMucHJldmlvdXNBY3RpdmVFbGVtZW50LmZvY3VzKCl9bmdPbkluaXQoKXtT''@;'; put 'put ''bCh0aGlzLnBsYXRmb3JtSWQpJiYodGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIsIi0xIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50LmZvY3VzKCkpfW5nQWZ0ZXJWaWV3SW5pdCgpe1NsKHRoaXMucGxhdGZvcm1JZCkmJih0aGlzLnBy''@;'; put 'put ''ZXZpb3VzQWN0aXZlRWxlbWVudD10aGlzLmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdGhpcy5wYXJlbnRFbGVtZW50PXRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KSx0aGlzLmFkZFJlYm91bmRFbHMoKX1nZXQgcG90ZW50aWFsbHlGb2N1c2FibGVFbHMoKXtyZXR1cm5bLi4u''@;'; put 'put ''dGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tocmVmXTpub3QoW3RhYmluZGV4PSItMSJdKSwgYnV0dG9uOm5vdChbZGlzYWJsZWRdKTpub3QoW3RhYmluZGV4PSItMSJdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCBzZWxlY3Q6''@;'; put 'put ''bm90KFtkaXNhYmxlZF0pOm5vdChbdGFiaW5kZXg9Ii0xIl0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSk6bm90KFt0YWJpbmRleD0iLTEiXSksIFtjb250ZW50ZWRpdGFibGU9InRydWUiXTpub3QoW3RhYmluZGV4PSItMSJdKSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKSAn''@;'; put 'put ''KV19Zm9jdXNGaXJzdEZvY3VzYWJsZSgpe2ZvcihsZXQgaD0wO2g8dGhpcy5wb3RlbnRpYWxseUZvY3VzYWJsZUVscy5sZW5ndGgmJih0aGlzLmZpcnN0Rm9jdXNhYmxlRWw9dGhpcy5mb2N1c0VsZW1lbnQodGhpcy5wb3RlbnRpYWxseUZvY3VzYWJsZUVsc1toXSksIXRoaXMuZmlyc3RGb2N1''@;'; put 'put ''c2FibGVFbCk7aCsrKTt9Zm9jdXNMYXN0Rm9jdXNhYmxlKCl7Zm9yKGxldCBoPXRoaXMucG90ZW50aWFsbHlGb2N1c2FibGVFbHMubGVuZ3RoLTE7aD49MCYmKHRoaXMubGFzdEZvY3VzYWJsZUVsPXRoaXMuZm9jdXNFbGVtZW50KHRoaXMucG90ZW50aWFsbHlGb2N1c2FibGVFbHNbaF0pLCF0''@;'; put 'put ''aGlzLmxhc3RGb2N1c2FibGVFbCk7aC0tKTt9Zm9jdXNUcmFwRWxJZk91dHNpZGUoKXt0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpfWZvY3VzRWxlbWVudChoKXtyZXR1cm4gaCYmaC5m''@;'; put 'put ''b2N1cyYmKGguZm9jdXMoKSxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09aCk/aDpudWxsfW5nT25EZXN0cm95KCl7dGhpcy5yZW1vdmVSZWJvdW5kRWxzKCksdGhpcy5zZXRQcmV2aW91c0ZvY3VzKCksdGhpcy5mb2N1c1RyYXBzVHJhY2tlci5hY3RpdmF0ZVByZXZpb3VzVHJhcHBlcigpfX1y''@;'; put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3QoU3MpLEt0KFFMZSksS3QoR2EpLEt0KEwyKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckZvY3VzVHJhcCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24o''@;'; put 'put ''aCx2KXsxJmgmJkduKCJmb2N1c2luIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkZvY3VzSW4oQyl9LDAsSGwpfSxpbnB1dHM6e2NvbmZpZzpbImNsckZvY3VzVHJhcCIsImNvbmZpZyJdfX0pLGR9KSgpLHNxPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXty''@;'; put 'put ''ZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCk7Y29uc3QgS0xlPS9kKy4rbSsuK3krL2ksJExlPS9tKy4rZCsuK3krL2kscUxlPS9kK3xtK3x5Ky9pLGVPZT0vXGQrL2csdE9lPS9Nb2JpL2ksbk9l''@;'; put 'put ''PS9cdTIwMGYvZyx1cT17bmFtZToiTElUVExFX0VORElBTiIsZm9ybWF0OlsiREQiLCJNTSIsIllZWVkiXX0seGZlPXtuYW1lOiJNSURETEVfRU5ESUFOIixmb3JtYXQ6WyJNTSIsIkREIiwiWVlZWSJdfSxyT2U9e25hbWU6IkJJR19FTkRJQU4iLGZvcm1hdDpbIllZWVkiLCJNTSIsIkREIl19''@;'; put 'put ''O2Z1bmN0aW9uIEhBZShkLGcpe3JldHVybiBuZXcgRGF0ZShkLGcrMSwwKS5nZXREYXRlKCl9Y2xhc3Mgc09le2NvbnN0cnVjdG9yKGcsaD0hMSx2PSExLHk9ITEsQz0hMSxJPSExKXt0aGlzLmRheU1vZGVsPWcsdGhpcy5pc1RvZGF5c0RhdGU9aCx0aGlzLmlzRXhjbHVkZWQ9dix0aGlzLmlz''@;'; put 'put ''RGlzYWJsZWQ9eSx0aGlzLmlzU2VsZWN0ZWQ9Qyx0aGlzLmlzRm9jdXNhYmxlPUl9Z2V0IHRhYkluZGV4KCl7cmV0dXJuIHRoaXMuaXNGb2N1c2FibGU/MDotMX19Y2xhc3MgYzR7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMueWVhcj1nLHRoaXMubW9udGg9aCx0aGlzLmRhdGU9dn1pc0VxdWFs''@;'; put 'put ''KGcpe3JldHVybiEhZyYmdGhpcy55ZWFyPT09Zy55ZWFyJiZ0aGlzLm1vbnRoPT09Zy5tb250aCYmdGhpcy5kYXRlPT09Zy5kYXRlfXRvRGF0ZSgpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnllYXIsdGhpcy5tb250aCx0aGlzLmRhdGUpfWluY3JlbWVudEJ5KGcpe2NvbnN0IGg9bmV3IERhdGUo''@;'; put 'put ''dGhpcy55ZWFyLHRoaXMubW9udGgsdGhpcy5kYXRlK2cpO3JldHVybiBuZXcgYzQoaC5nZXRGdWxsWWVhcigpLGguZ2V0TW9udGgoKSxoLmdldERhdGUoKSl9Y2xvbmUoKXtyZXR1cm4gbmV3IGM0KHRoaXMueWVhcix0aGlzLm1vbnRoLHRoaXMuZGF0ZSl9dG9Db21wYXJpc29uU3RyaW5nKCl7''@;'; put 'put ''cmV0dXJuYCR7dGhpcy55ZWFyfSR7dGhpcy5wYWQodGhpcy5tb250aCl9JHt0aGlzLnBhZCh0aGlzLmRhdGUpfWB9cGFkKGcpe3JldHVybiBnPDEwP2AwJHtnfWA6YCR7Z31gfXRvRGF0ZVN0cmluZygpe3JldHVybiB0aGlzLnRvRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygpfX1jbGFzcyB1''@;'; put 'put ''T2V7Y29uc3RydWN0b3IoZyxoLHYseSxDLEkpe3RoaXMuY2FsZW5kYXI9Zyx0aGlzLnNlbGVjdGVkRGF5PWgsdGhpcy5mb2N1c2FibGVEYXk9dix0aGlzLnRvZGF5PXksdGhpcy5maXJzdERheU9mV2Vlaz1DLHRoaXMuZXhjbHVkZWREYXRlcz1JLHRoaXMuY3Vyck1vbnRoRGF5Vmlld3M9W10s''@;'; put 'put ''dGhpcy5pbml0aWFsaXplQ2FsZW5kYXJWaWV3KCl9Z2V0IGNhbGVuZGFyVmlldygpe3JldHVybiB0aGlzLl9jYWxlbmRhclZpZXd9aW5pdGlhbGl6ZUNhbGVuZGFyVmlldygpe2NvbnN0IGc9dGhpcy5jYWxlbmRhci5wcmV2aW91c01vbnRoKCksaD10aGlzLmNhbGVuZGFyLm5leHRNb250aCgp''@;'; put 'put ''LHY9dGhpcy5udW1EYXlzRnJvbVByZXZNb250aEluQ2FsVmlldyh0aGlzLmNhbGVuZGFyLnllYXIsdGhpcy5jYWxlbmRhci5tb250aCkseT00Mi0odGhpcy5jYWxlbmRhci5kYXlzLmxlbmd0aCt2KTtsZXQgQz1bXSxJPVtdO3Y+MCYmKEM9dGhpcy5nZW5lcmF0ZURheVZpZXdNb2RlbHMoZy5k''@;'; put 'put ''YXlzLnNsaWNlKC0xKnYpLCEwLCExKSksdGhpcy5jdXJyTW9udGhEYXlWaWV3cz10aGlzLmdlbmVyYXRlRGF5Vmlld01vZGVscyh0aGlzLmNhbGVuZGFyLmRheXMsITEsITApLHk+MCYmKEk9dGhpcy5nZW5lcmF0ZURheVZpZXdNb2RlbHMoaC5kYXlzLnNsaWNlKDAseSksITAsITEpKSx0aGlz''@;'; put 'put ''Ll9jYWxlbmRhclZpZXc9dGhpcy5nZW5lcmF0ZUNhbGVuZGFyVmlldyhDLHRoaXMuY3Vyck1vbnRoRGF5Vmlld3MsSSksdGhpcy5pbml0aWFsaXplU2VsZWN0ZWREYXkoKSx0aGlzLmluaXRpYWxpemVGb2N1c2FibGVEYXkoKX1pc0RhdGVFeGNsdWRlZChnKXtjb25zdHttaW5EYXRlOmgsbWF4''@;'; put 'put ''RGF0ZTp2fT10aGlzLmV4Y2x1ZGVkRGF0ZXMseT1oLnRvQ29tcGFyaXNvblN0cmluZygpLEM9di50b0NvbXBhcmlzb25TdHJpbmcoKSxJPWcudG9Db21wYXJpc29uU3RyaW5nKCk7cmV0dXJuIShJPj15JiZJPD1DKX1nZW5lcmF0ZURheVZpZXdNb2RlbHMoZyxoLHYpe2NvbnN0IHk9Zy5tYXAo''@;'; put 'put ''Qz0+bmV3IHNPZShDLCExLGgsdGhpcy5pc0RhdGVFeGNsdWRlZChDKSwhMSwhMSkpO3JldHVybiB2JiZ0aGlzLmNhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcih0aGlzLnRvZGF5KSYmKHlbdGhpcy50b2RheS5kYXRlLTFdLmlzVG9kYXlzRGF0ZT0hMCkseX1udW1EYXlzRnJvbVByZXZNb250aElu''@;'; put 'put ''Q2FsVmlldyhnLGgpe2NvbnN0IHY9ZnVuY3Rpb24gb09lKGQsZyxoKXtyZXR1cm4gbmV3IERhdGUoZCxnLGgpLmdldERheSgpfShnLGgsMSk7cmV0dXJuIHY+PXRoaXMuZmlyc3REYXlPZldlZWs/di10aGlzLmZpcnN0RGF5T2ZXZWVrOjcrdi10aGlzLmZpcnN0RGF5T2ZXZWVrfWlzRGF5SW5D''@;'; put 'put ''YWxlbmRhclZpZXcoZyl7cmV0dXJuISF0aGlzLmNhbGVuZGFyLmlzRGF5SW5DYWxlbmRhcihnKX1nZW5lcmF0ZUNhbGVuZGFyVmlldyhnLGgsdil7Y29uc3QgeT1bLi4uZywuLi5oLC4uLnZdLEM9W107Zm9yKGxldCBJPTA7STw2O0krKylDW0ldPXkuc2xpY2UoNypJLDcqKEkrMSkpO3JldHVy''@;'; put 'put ''biBDfWluaXRpYWxpemVTZWxlY3RlZERheSgpe3RoaXMuc2VsZWN0ZWREYXkmJnRoaXMuaXNEYXlJbkNhbGVuZGFyVmlldyh0aGlzLnNlbGVjdGVkRGF5KSYmKHRoaXMuY3Vyck1vbnRoRGF5Vmlld3NbdGhpcy5zZWxlY3RlZERheS5kYXRlLTFdLmlzU2VsZWN0ZWQ9ITApfWluaXRpYWxpemVG''@;'; put 'put ''b2N1c2FibGVEYXkoKXt0aGlzLmZvY3VzYWJsZURheSYmdGhpcy5pc0RheUluQ2FsZW5kYXJWaWV3KHRoaXMuZm9jdXNhYmxlRGF5KT90aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy5mb2N1c2FibGVEYXksITApOnRoaXMuc2VsZWN0ZWREYXkmJnRoaXMuaXNEYXlJbkNhbGVuZGFyVmlldyh0''@;'; put 'put ''aGlzLnNlbGVjdGVkRGF5KT8odGhpcy5zZXRGb2N1c2FibGVGbGFnKHRoaXMuc2VsZWN0ZWREYXksITApLHRoaXMuZm9jdXNhYmxlRGF5PXRoaXMuc2VsZWN0ZWREYXkuY2xvbmUoKSk6dGhpcy5pc0RheUluQ2FsZW5kYXJWaWV3KHRoaXMudG9kYXkpPyh0aGlzLnNldEZvY3VzYWJsZUZsYWco''@;'; put 'put ''dGhpcy50b2RheSwhMCksdGhpcy5mb2N1c2FibGVEYXk9dGhpcy50b2RheS5jbG9uZSgpKToodGhpcy5mb2N1c2FibGVEYXk9bmV3IGM0KHRoaXMuY2FsZW5kYXIueWVhcix0aGlzLmNhbGVuZGFyLm1vbnRoLDE1KSx0aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy5mb2N1c2FibGVEYXksITAp''@;'; put 'put ''KX1zZXRGb2N1c2FibGVGbGFnKGcsaCl7ZyYmKHRoaXMuY3Vyck1vbnRoRGF5Vmlld3NbZy5kYXRlLTFdLmlzRm9jdXNhYmxlPWgpfXVwZGF0ZUZvY3VzYWJsZURheShnKXt0aGlzLnNldEZvY3VzYWJsZUZsYWcodGhpcy5mb2N1c2FibGVEYXksITEpLHRoaXMuc2V0Rm9jdXNhYmxlRmxhZyhn''@;'; put 'put ''LCEwKSx0aGlzLmZvY3VzYWJsZURheT1nfX1sZXQgcWo9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmxvY2FsZT1oLHRoaXMuX2ZpcnN0RGF5T2ZXZWVrPTAsdGhpcy5pbml0aWFsaXplTG9jYWxlRGF0YSgpfWdldCBmaXJzdERheU9mV2Vlaygpe3JldHVybiB0aGlzLl9maXJz''@;'; put 'put ''dERheU9mV2Vla31nZXQgbG9jYWxlRGF5cygpe3JldHVybiB0aGlzLl9sb2NhbGVEYXlzfWdldCBsb2NhbGVEYXlzTmFycm93KCl7cmV0dXJuIHRoaXMuX2xvY2FsZURheXMubWFwKGg9PmgubmFycm93KX1nZXQgbG9jYWxlTW9udGhzQWJicmV2aWF0ZWQoKXtyZXR1cm4gdGhpcy5fbG9jYWxl''@;'; put 'put ''TW9udGhzQWJicmV2aWF0ZWR9Z2V0IGxvY2FsZU1vbnRoc1dpZGUoKXtyZXR1cm4gdGhpcy5fbG9jYWxlTW9udGhzV2lkZX1nZXQgbG9jYWxlRGF0ZUZvcm1hdCgpe3JldHVybiB0aGlzLl9sb2NhbGVEYXRlRm9ybWF0fWluaXRpYWxpemVMb2NhbGVEYXRhKCl7dGhpcy5pbml0aWFsaXplRmly''@;'; put 'put ''c3REYXlPZldlZWsoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVEYXRlRm9ybWF0KCksdGhpcy5pbml0aWFsaXplTG9jYWxlTW9udGhzQWJicmV2aWF0ZWQoKSx0aGlzLmluaXRpYWxpemVMb2NhbGVNb250aHNXaWRlKCksdGhpcy5pbml0aWFsaXplTG9jYWxlRGF5cygpfWluaXRpYWxpemVMb2Nh''@;'; put 'put ''bGVEYXlzKCl7Y29uc3QgaD1bXSx2PXJwKHRoaXMubG9jYWxlLE4yLlN0YW5kYWxvbmUsQ2wuV2lkZSkuc2xpY2UoKSx5PXJwKHRoaXMubG9jYWxlLE4yLlN0YW5kYWxvbmUsQ2wuTmFycm93KS5zbGljZSgpLEM9dGhpcy5maXJzdERheU9mV2Vlaztmb3IobGV0IEk9MDtJPDc7SSsrKWgucHVz''@;'; put 'put ''aCh7ZGF5OnZbSV0sbmFycm93OnlbSV19KTtpZihDPjApe2NvbnN0IEk9aC5zcGxpY2UoMCxDKTtoLnB1c2goLi4uSSl9dGhpcy5fbG9jYWxlRGF5cz1ofWluaXRpYWxpemVMb2NhbGVNb250aHNBYmJyZXZpYXRlZCgpe3RoaXMuX2xvY2FsZU1vbnRoc0FiYnJldmlhdGVkPVBUKHRoaXMubG9j''@;'; put 'put ''YWxlLE4yLlN0YW5kYWxvbmUsQ2wuQWJicmV2aWF0ZWQpLnNsaWNlKCl9aW5pdGlhbGl6ZUxvY2FsZU1vbnRoc1dpZGUoKXt0aGlzLl9sb2NhbGVNb250aHNXaWRlPVBUKHRoaXMubG9jYWxlLE4yLlN0YW5kYWxvbmUsQ2wuV2lkZSkuc2xpY2UoKX1pbml0aWFsaXplRmlyc3REYXlPZldlZWso''@;'; put 'put ''KXt0aGlzLl9maXJzdERheU9mV2Vlaz1mdW5jdGlvbiBQcmUoZCl7cmV0dXJuIHJjKGQpW01vLkZpcnN0RGF5T2ZXZWVrXX0odGhpcy5sb2NhbGUpfWluaXRpYWxpemVMb2NhbGVEYXRlRm9ybWF0KCl7dGhpcy5fbG9jYWxlRGF0ZUZvcm1hdD1mdW5jdGlvbiBqNihkLGcpe3JldHVybiBHMyhy''@;'; put 'put ''YyhkKVtNby5EYXRlRm9ybWF0XSxnKX0odGhpcy5sb2NhbGUscDEuU2hvcnQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShZZCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIHY4''@;'; put 'put ''e2NvbnN0cnVjdG9yKGcsaCl7dGhpcy55ZWFyPWcsdGhpcy5tb250aD1oLHRoaXMuaW5pdGlhbGl6ZURheXNJbkNhbGVuZGFyKCl9aW5pdGlhbGl6ZURheXNJbkNhbGVuZGFyKCl7Y29uc3QgZz1IQWUodGhpcy55ZWFyLHRoaXMubW9udGgpO3RoaXMuZGF5cz1BcnJheShnKS5maWxsKG51bGwp''@;'; put 'put ''Lm1hcCgoaCx2KT0+bmV3IGM0KHRoaXMueWVhcix0aGlzLm1vbnRoLHYrMSkpfWlzRXF1YWwoZyl7cmV0dXJuISFnJiZ0aGlzLnllYXI9PT1nLnllYXImJnRoaXMubW9udGg9PT1nLm1vbnRofWlzRGF5SW5DYWxlbmRhcihnKXtyZXR1cm4hIWcmJnRoaXMueWVhcj09PWcueWVhciYmdGhpcy5t''@;'; put 'put ''b250aD09PWcubW9udGh9cHJldmlvdXNNb250aCgpe3JldHVybiAwPT09dGhpcy5tb250aD9uZXcgdjgodGhpcy55ZWFyLTEsMTEpOm5ldyB2OCh0aGlzLnllYXIsdGhpcy5tb250aC0xKX1uZXh0TW9udGgoKXtyZXR1cm4gMTE9PT10aGlzLm1vbnRoP25ldyB2OCh0aGlzLnllYXIrMSwwKTpu''@;'; put 'put ''ZXcgdjgodGhpcy55ZWFyLHRoaXMubW9udGgrMSl9fWxldCBndj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fdG9kYXlzRnVsbERhdGU9bmV3IERhdGUsdGhpcy5fc2VsZWN0ZWREYXlDaGFuZ2U9bmV3ICRlLHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyQ2hhbmdlPW5ldyAkZSx0''@;'; put 'put ''aGlzLl9mb2N1c09uQ2FsZW5kYXJDaGFuZ2U9bmV3ICRlLHRoaXMuX2ZvY3VzZWREYXlDaGFuZ2U9bmV3ICRlfWdldCBkaXNwbGF5ZWRDYWxlbmRhcigpe3JldHVybiB0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcn1zZXREaXNwbGF5ZWRDYWxlbmRhcihoKXt0aGlzLl9kaXNwbGF5ZWRDYWxlbmRh''@;'; put 'put ''ci5pc0VxdWFsKGgpfHwodGhpcy5fZGlzcGxheWVkQ2FsZW5kYXI9aCx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhckNoYW5nZS5uZXh0KCkpfWluaXRpYWxpemVUb2RheXNEYXRlKCl7dGhpcy5fdG9kYXlzRnVsbERhdGU9bmV3IERhdGUsdGhpcy5fdG9kYXk9bmV3IGM0KHRoaXMuX3RvZGF5c0Z1''@;'; put 'put ''bGxEYXRlLmdldEZ1bGxZZWFyKCksdGhpcy5fdG9kYXlzRnVsbERhdGUuZ2V0TW9udGgoKSx0aGlzLl90b2RheXNGdWxsRGF0ZS5nZXREYXRlKCkpfWdldCB0b2RheSgpe3JldHVybiB0aGlzLl90b2RheX1nZXQgc2VsZWN0ZWREYXlDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fc2VsZWN0ZWREYXlD''@;'; put 'put ''aGFuZ2UuYXNPYnNlcnZhYmxlKCl9bm90aWZ5U2VsZWN0ZWREYXlDaGFuZ2VkKGgpe3RoaXMuc2VsZWN0ZWREYXk9aCx0aGlzLl9zZWxlY3RlZERheUNoYW5nZS5uZXh0KGgpfWluaXRpYWxpemVDYWxlbmRhcigpe3RoaXMuZm9jdXNlZERheT1udWxsLHRoaXMuaW5pdGlhbGl6ZVRvZGF5c0Rh''@;'; put 'put ''dGUoKSx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhcj10aGlzLnNlbGVjdGVkRGF5P25ldyB2OCh0aGlzLnNlbGVjdGVkRGF5LnllYXIsdGhpcy5zZWxlY3RlZERheS5tb250aCk6bmV3IHY4KHRoaXMudG9kYXkueWVhcix0aGlzLnRvZGF5Lm1vbnRoKX1jaGFuZ2VNb250aChoKXt0aGlzLnNldERp''@;'; put 'put ''c3BsYXllZENhbGVuZGFyKG5ldyB2OCh0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci55ZWFyLGgpKX1jaGFuZ2VZZWFyKGgpe3RoaXMuc2V0RGlzcGxheWVkQ2FsZW5kYXIobmV3IHY4KGgsdGhpcy5fZGlzcGxheWVkQ2FsZW5kYXIubW9udGgpKX1tb3ZlVG9OZXh0TW9udGgoKXt0aGlzLnNldERp''@;'; put 'put ''c3BsYXllZENhbGVuZGFyKHRoaXMuX2Rpc3BsYXllZENhbGVuZGFyLm5leHRNb250aCgpKX1tb3ZlVG9QcmV2aW91c01vbnRoKCl7dGhpcy5zZXREaXNwbGF5ZWRDYWxlbmRhcih0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5wcmV2aW91c01vbnRoKCkpfW1vdmVUb0N1cnJlbnRNb250aCgpe3Ro''@;'; put 'put ''aXMuZGlzcGxheWVkQ2FsZW5kYXIuaXNEYXlJbkNhbGVuZGFyKHRoaXMudG9kYXkpfHx0aGlzLnNldERpc3BsYXllZENhbGVuZGFyKG5ldyB2OCh0aGlzLnRvZGF5LnllYXIsdGhpcy50b2RheS5tb250aCkpLHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZS5uZXh0KCl9aW5jcmVtZW50Rm9j''@;'; put 'put ''dXNEYXkoaCl7dGhpcy5mb2N1c2VkRGF5PXRoaXMuZm9jdXNlZERheS5pbmNyZW1lbnRCeShoKSx0aGlzLl9kaXNwbGF5ZWRDYWxlbmRhci5pc0RheUluQ2FsZW5kYXIodGhpcy5mb2N1c2VkRGF5KT90aGlzLl9mb2N1c2VkRGF5Q2hhbmdlLm5leHQodGhpcy5mb2N1c2VkRGF5KTp0aGlzLnNl''@;'; put 'put ''dERpc3BsYXllZENhbGVuZGFyKG5ldyB2OCh0aGlzLmZvY3VzZWREYXkueWVhcix0aGlzLmZvY3VzZWREYXkubW9udGgpKSx0aGlzLl9mb2N1c09uQ2FsZW5kYXJDaGFuZ2UubmV4dCgpfWdldCBkaXNwbGF5ZWRDYWxlbmRhckNoYW5nZSgpe3JldHVybiB0aGlzLl9kaXNwbGF5ZWRDYWxlbmRh''@;'; put 'put ''ckNoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgZm9jdXNPbkNhbGVuZGFyQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2ZvY3VzT25DYWxlbmRhckNoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgZm9jdXNlZERheUNoYW5nZSgpe3JldHVybiB0aGlzLl9mb2N1c2VkRGF5Q2hhbmdlLmFzT2JzZXJ2YWJs''@;'; put 'put ''ZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxGTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5fbmdab25lPWgsdGhpcy5wbGF0''@;'; put 'put ''Zm9ybUlkPXZ9Zm9jdXNDZWxsKGgpe3RoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKT0+e3RoaXMubmdab25lSXNTdGFibGVJbkJyb3dzZXIoKS5zdWJzY3JpYmUoKCk9Pntjb25zdCB2PWgubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbdGFiaW5kZXg9IjAiXScpO3YmJnYu''@;'; put 'put ''Zm9jdXMoKX0pfSl9Zm9jdXNJbnB1dChoKXt0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PnRoaXMubmdab25lSXNTdGFibGVJbkJyb3dzZXIoKS5zdWJzY3JpYmUoKCk9PmguZm9jdXMoKSkpfWVsZW1lbnRJc0ZvY3VzZWQoaCl7cmV0dXJuIFNsKHRoaXMucGxhdGZvcm1JZCkm''@;'; put 'put ''JmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1ofW5nWm9uZUlzU3RhYmxlSW5Ccm93c2VyKCl7cmV0dXJuIHRoaXMuX25nWm9uZS5vblN0YWJsZS5hc09ic2VydmFibGUoKS5waXBlKFczKCksTzIoKCk9PlNsKHRoaXMucGxhdGZvcm1JZCkpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koX2wpLENpKEwyKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksZVo9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlPWgsdGhpcy5kaXNhYmxlZERh''@;'; put 'put ''dGVzPXttaW5EYXRlOm5ldyBjNCgwLDAsMSksbWF4RGF0ZTpuZXcgYzQoOTk5OSwxMSwzMSl9LHRoaXMuY2xkckxvY2FsZURhdGVGb3JtYXQ9ImRkL01NL3kiLHRoaXMubG9jYWxlRGlzcGxheUZvcm1hdD11cSx0aGlzLmRlbGltaXRlcnM9WyIvIiwiLyJdLHRoaXMuY2xkckxvY2FsZURhdGVG''@;'; put 'put ''b3JtYXQ9dGhpcy5fbG9jYWxlSGVscGVyU2VydmljZS5sb2NhbGVEYXRlRm9ybWF0LHRoaXMuaW5pdGlhbGl6ZUxvY2FsZURpc3BsYXlGb3JtYXQoKX1zZXRNaW5EYXRlKGgpe2lmKGgpe2NvbnN0W3YseSxDXT1oLnNwbGl0KCItIikubWFwKEk9PnBhcnNlSW50KEksMTApKTt0aGlzLmRpc2Fi''@;'; put 'put ''bGVkRGF0ZXMubWluRGF0ZT1uZXcgYzQodix5LTEsQyl9ZWxzZSB0aGlzLmRpc2FibGVkRGF0ZXMubWluRGF0ZT1uZXcgYzQoMCwwLDEpfXNldE1heERhdGUoaCl7aWYoaCl7Y29uc3Rbdix5LENdPWguc3BsaXQoIi0iKS5tYXAoST0+cGFyc2VJbnQoSSwxMCkpO3RoaXMuZGlzYWJsZWREYXRl''@;'; put 'put ''cy5tYXhEYXRlPW5ldyBjNCh2LHktMSxDKX1lbHNlIHRoaXMuZGlzYWJsZWREYXRlcy5tYXhEYXRlPW5ldyBjNCg5OTk5LDExLDMxKX1pbml0aWFsaXplTG9jYWxlRGlzcGxheUZvcm1hdCgpe2NvbnN0IGg9dGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1hdC50b0xvY2FsZUxvd2VyQ2FzZSgpO3Ro''@;'; put 'put ''aXMubG9jYWxlRGlzcGxheUZvcm1hdD1LTGUudGVzdChoKT91cTokTGUudGVzdChoKT94ZmU6ck9lLHRoaXMuZXh0cmFjdERlbGltaXRlcnMoKX1leHRyYWN0RGVsaW1pdGVycygpe2lmKHRoaXMuY2xkckxvY2FsZURhdGVGb3JtYXQpe2NvbnN0IHY9dGhpcy5jbGRyTG9jYWxlRGF0ZUZvcm1h''@;'; put 'put ''dC5yZXBsYWNlKG5PZSwiIikuc3BsaXQocUxlKTt2JiY0PT09di5sZW5ndGg/dGhpcy5kZWxpbWl0ZXJzPVt2WzFdLHZbMl1dOmNvbnNvbGUuZXJyb3IoIlVuZXhwZWN0ZWQgZGF0ZSBmb3JtYXQgcmVjZWl2ZWQuIERlbGltaXRlcnMgZXh0cmFjdGVkOiAiLHYpfX10b0xvY2FsZURpc3BsYXlG''@;'; put 'put ''b3JtYXRTdHJpbmcoaCl7aWYoaCl7aWYoaXNOYU4oaC5nZXRUaW1lKCkpKXJldHVybiIiO2NvbnN0IHY9aC5nZXREYXRlKCkseT1oLmdldE1vbnRoKCkrMSxDPXY+OT92LnRvU3RyaW5nKCk6IjAiK3YsST15Pjk/eS50b1N0cmluZygpOiIwIit5O3JldHVybiB0aGlzLmxvY2FsZURpc3BsYXlG''@;'; put 'put ''b3JtYXQ9PT11cT9DK3RoaXMuZGVsaW1pdGVyc1swXStJK3RoaXMuZGVsaW1pdGVyc1sxXStoLmdldEZ1bGxZZWFyKCk6dGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PT09eGZlP0krdGhpcy5kZWxpbWl0ZXJzWzBdK0MrdGhpcy5kZWxpbWl0ZXJzWzFdK2guZ2V0RnVsbFllYXIoKTpoLmdldEZ1''@;'; put 'put ''bGxZZWFyKCkrdGhpcy5kZWxpbWl0ZXJzWzBdK0krdGhpcy5kZWxpbWl0ZXJzWzFdK0N9cmV0dXJuIiJ9Z2V0IHBsYWNlaG9sZGVyVGV4dCgpe2NvbnN0IGg9dGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0LmZvcm1hdDtyZXR1cm4gaFswXSt0aGlzLmRlbGltaXRlcnNbMF0raFsxXSt0aGlzLmRl''@;'; put 'put ''bGltaXRlcnNbMV0raFsyXX1pc1ZhbGlkTW9udGgoaCl7cmV0dXJuIGg+LTEmJmg8MTJ9aXNWYWxpZERhdGUoaCx2LHkpe3JldHVybiB5PjAmJnk8PUhBZShoLHYpfXZhbGlkYXRlQW5kR2V0RGF0ZShoLHYseSl7Y29uc3QgQz0raCxJPSt2LTEsWj0reTtpZighdGhpcy5pc1ZhbGlkTW9udGgo''@;'; put 'put ''SSl8fCF0aGlzLmlzVmFsaWREYXRlKEMsSSxaKSlyZXR1cm4gbnVsbDtjb25zdCB1ZT1mdW5jdGlvbiBhT2UoZCl7aWYoZD45OTk5fHxkPjEwMCYmZDw5OTl8fGQ8MTApcmV0dXJuLTE7aWYoZD45OTkpcmV0dXJuIGQ7Y29uc3QgZz0obmV3IERhdGUpLmdldEZ1bGxZZWFyKCk7bGV0IHY9ZCsx''@;'; put 'put ''MDAqTWF0aC5mbG9vcihnLzEwMCk7cmV0dXJuIHY+ZysyMCYmKHYtPTEwMCksdn0oQyk7cmV0dXJuLTEhPT11ZT9uZXcgRGF0ZSh1ZSxJLFopOm51bGx9Z2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcoaCl7aWYoIWgpcmV0dXJuIG51bGw7Y29uc3Qgdj1oLm1hdGNoKGVPZSk7aWYoIXZ8fDMh''@;'; put 'put ''PT12Lmxlbmd0aClyZXR1cm4gbnVsbDtjb25zdFt5LEMsSV09djtyZXR1cm4gdGhpcy5sb2NhbGVEaXNwbGF5Rm9ybWF0PT09dXE/dGhpcy52YWxpZGF0ZUFuZEdldERhdGUoSSxDLHkpOnRoaXMubG9jYWxlRGlzcGxheUZvcm1hdD09PXhmZT90aGlzLnZhbGlkYXRlQW5kR2V0RGF0ZShJLHks''@;'; put 'put ''Qyk6dGhpcy52YWxpZGF0ZUFuZEdldERhdGUoeSxDLEkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShxaikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHRaPSgoKT0+e2NsYXNzIGR7Y29u''@;'; put 'put ''c3RydWN0b3IoKXt0aGlzLl90b3VjaGVkQ2hhbmdlPW5ldyAkZSx0aGlzLl9kaXJ0eUNoYW5nZT1uZXcgJGV9Z2V0IHRvdWNoZWRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fdG91Y2hlZENoYW5nZS5hc09ic2VydmFibGUoKX1nZXQgZGlydHlDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZGlydHlDaGFu''@;'; put 'put ''Z2UuYXNPYnNlcnZhYmxlKCl9bWFya0FzVG91Y2hlZCgpe3RoaXMuX3RvdWNoZWRDaGFuZ2UubmV4dCgpfW1hcmtBc0RpcnR5KCl7dGhpcy5fZGlydHlDaGFuZ2UubmV4dCgpfXNldERpc2FibGVkKGgpe3RoaXMuZGlzYWJsZWQ9aH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3Jl''@;'; put 'put ''dHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksTkFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPWgsdGhpcy5fdG9nZ2xlU2VydmljZT12LHRoaXMu''@;'; put 'put ''ZGF0ZUZvcm1Db250cm9sU2VydmljZT15LHRoaXMuY29tbW9uU3RyaW5ncz1DfXNldCBkYXlWaWV3KGgpe3RoaXMuX2RheVZpZXc9aH1nZXQgZGF5Vmlldygpe3JldHVybiB0aGlzLl9kYXlWaWV3fWdldCBkYXlTdHJpbmcoKXtyZXR1cm4gdGhpcy5kYXlWaWV3LmlzU2VsZWN0ZWQ/dGhpcy5j''@;'; put 'put ''b21tb25TdHJpbmdzLnBhcnNlKHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJTZWxlY3RlZExhYmVsLHtGVUxMX0RBVEU6dGhpcy5fZGF5Vmlldy5kYXlNb2RlbC50b0RhdGVTdHJpbmcoKX0pOnRoaXMuX2RheVZpZXcuZGF5TW9kZWwudG9EYXRlU3RyaW5nKCl9b25EYXlWaWV3''@;'; put 'put ''Rm9jdXMoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZm9jdXNlZERheT10aGlzLmRheVZpZXcuZGF5TW9kZWx9c2VsZWN0RGF5KCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLm5vdGlmeVNlbGVjdGVkRGF5Q2hhbmdlZCh0aGlzLmRheVZpZXcuZGF5TW9kZWwpLHRoaXMuZGF0''@;'; put 'put ''ZUZvcm1Db250cm9sU2VydmljZS5tYXJrQXNEaXJ0eSgpLHRoaXMuX3RvZ2dsZVNlcnZpY2Uub3Blbj0hMX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZ3YpLEt0KHpzKSxLdCh0WiksS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxz''@;'; put 'put ''ZWxlY3RvcnM6W1siY2xyLWRheSJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRheSIsITApfSxpbnB1dHM6e2RheVZpZXc6WyJjbHJEYXlWaWV3IiwiZGF5VmlldyJdfSxkZWNsczoyLHZhcnM6MTMsY29uc3RzOltbInR5cGUiLCJidXR0b24iLDEs''@;'; put 'put ''ImRheS1idG4iLDMsImNsaWNrIiwiZm9jdXMiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJidXR0b24iLDApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zZWxlY3REYXkoKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkRheVZpZXdGb2N1cygp''@;'; put 'put ''fSksWXQoMSksb3QoKSksMiZoJiYoRmkoImlzLXRvZGF5Iix2LmRheVZpZXcuaXNUb2RheXNEYXRlKSgiaXMtZXhjbHVkZWQiLHYuZGF5Vmlldy5pc0V4Y2x1ZGVkKSgiaXMtZGlzYWJsZWQiLHYuZGF5Vmlldy5pc0Rpc2FibGVkKSgiaXMtc2VsZWN0ZWQiLHYuZGF5Vmlldy5pc1NlbGVjdGVk''@;'; put 'put ''KSxHaSgidGFiaW5kZXgiLHYuZGF5Vmlldy50YWJJbmRleCkoImFyaWEtY3VycmVudCIsdi5kYXlWaWV3LmlzVG9kYXlzRGF0ZT8iZGF0ZSI6ImZhbHNlIikoImFyaWEtbGFiZWwiLHYuZGF5U3RyaW5nKSgiYXJpYS1zZWxlY3RlZCIsdi5kYXlWaWV3LmlzU2VsZWN0ZWQpLHV0KDEpLEppKCIg''@;'; put 'put ''Iix2LmRheVZpZXcuZGF5TW9kZWwuZGF0ZSwiICIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksVkFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlPWgsdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPXYsdGhpcy5fZGF0''@;'; put 'put ''ZXBpY2tlckZvY3VzU2VydmljZT15LHRoaXMuX2RhdGVJT1NlcnZpY2U9Qyx0aGlzLl9lbFJlZj1JLHRoaXMuX3N1YnM9W10sdGhpcy5nZW5lcmF0ZUNhbGVuZGFyVmlldygpLHRoaXMuaW5pdGlhbGl6ZVN1YnNjcmlwdGlvbnMoKX1nZXQgbG9jYWxlRGF5cygpe3JldHVybiB0aGlzLl9sb2Nh''@;'; put 'put ''bGVIZWxwZXJTZXJ2aWNlLmxvY2FsZURheXN9Z2V0IGNhbGVuZGFyKCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxlbmRhcn1nZXQgc2VsZWN0ZWREYXkoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5fWdldCBm''@;'; put 'put ''b2N1c2VkRGF5KCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5mb2N1c2VkRGF5fWdldCB0b2RheSgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UudG9kYXl9aW5pdGlhbGl6ZVN1YnNjcmlwdGlvbnMoKXt0aGlzLl9zdWJzLnB1c2godGhpcy5fZGF0ZU5h''@;'; put 'put ''dmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyQ2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuZ2VuZXJhdGVDYWxlbmRhclZpZXcoKX0pKSx0aGlzLl9zdWJzLnB1c2godGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmZvY3VzZWREYXlDaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlz''@;'; put 'put ''LmNhbGVuZGFyVmlld01vZGVsLnVwZGF0ZUZvY3VzYWJsZURheShoKX0pKSx0aGlzLl9zdWJzLnB1c2godGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmZvY3VzT25DYWxlbmRhckNoYW5nZS5zdWJzY3JpYmUoKCk9Pnt0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0''@;'; put 'put ''aGlzLl9lbFJlZil9KSl9Z2VuZXJhdGVDYWxlbmRhclZpZXcoKXt0aGlzLmNhbGVuZGFyVmlld01vZGVsPW5ldyB1T2UodGhpcy5jYWxlbmRhcix0aGlzLnNlbGVjdGVkRGF5LHRoaXMuZm9jdXNlZERheSx0aGlzLnRvZGF5LHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2UuZmlyc3REYXlPZldl''@;'; put 'put ''ZWssdGhpcy5fZGF0ZUlPU2VydmljZS5kaXNhYmxlZERhdGVzKX1vbktleURvd24oaCl7aWYoaCYmdGhpcy5mb2N1c2VkRGF5KXN3aXRjaChoLmtleUNvZGUpe2Nhc2UgMzg6aC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pbmNyZW1lbnRGb2N1c0RheSgt''@;'; put 'put ''Nyk7YnJlYWs7Y2FzZSA0MDpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KDcpO2JyZWFrO2Nhc2UgMzc6aC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5pbmNyZW1lbnRGb2N1c0RheSgt''@;'; put 'put ''MSk7YnJlYWs7Y2FzZSAzOTpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluY3JlbWVudEZvY3VzRGF5KDEpfX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZil9bmdPbkRlc3Ry''@;'; put 'put ''b3koKXt0aGlzLl9zdWJzLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QocWopLEt0KGd2KSxLdChGTCksS3QoZVopLEt0KGJvKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltb''@;'; put 'put ''ImNsci1jYWxlbmRhciJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJrZXlkb3duIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbktleURvd24oQyl9KX0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbMSwiY2FsZW5kYXItdGFibGUiXSxbMSwiY2FsZW5kYXItcm93Iiwid2Vl''@;'; put 'put ''a2RheXMiXSxbImNsYXNzIiwiY2FsZW5kYXItY2VsbCB3ZWVrZGF5Iiwicm9sZSIsImhlYWRpbmciLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJjYWxlbmRhci1yb3ciLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsicm9sZSIsImhlYWRpbmciLDEsImNhbGVuZGFyLWNlbGwiLCJ3ZWVr''@;'; put 'put ''ZGF5Il0sWzEsImNhbGVuZGFyLXJvdyJdLFsiY2xhc3MiLCJjYWxlbmRhci1jZWxsIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2FsZW5kYXItY2VsbCJdLFszLCJjbHJEYXlWaWV3Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwidGFibGUiLDApKDEsInRyIiwxKSxy''@;'; put 'put ''bigyLCRrLDIsMiwidGgiLDIpLG90KCkscm4oMyxxaywyLDEsInRyIiwzKSxvdCgpKSwyJmgmJih1dCgyKSxUdCgibmdGb3JPZiIsdi5sb2NhbGVEYXlzKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5jYWxlbmRhclZpZXdNb2RlbC5jYWxlbmRhclZpZXcpKX0sZGVwZW5kZW5jaWVzOltOQWUseHNd''@;'; put 'put ''LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGNxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5fZG9jdW1lbnQ9aCx0aGlzLl9pc1VzZXJBZ2VudE1vYmlsZT0hMSx0aGlzLl9kb2N1bWVudCYmKHRoaXMuX2lzVXNlckFnZW50TW9iaWxlPXRPZS50ZXN0KGguZGVmYXVsdFZpZXcu''@;'; put 'put ''bmF2aWdhdG9yLnVzZXJBZ2VudCksdGhpcy5faW5uZXJXaWR0aD1oLmRlZmF1bHRWaWV3LmlubmVyV2lkdGgpfWdldCBpc0VuYWJsZWQoKXtyZXR1cm4hKHRoaXMuX2RvY3VtZW50JiZ0aGlzLl9pbm5lcldpZHRoPDc2OCYmdGhpcy5faXNVc2VyQWdlbnRNb2JpbGUpfX1yZXR1cm4gZC5cdTAy''@;'; put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShncykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEhMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9jdXJyZW50Vmlldz0iREFZVklFVyIsdGhpcy5wb3Np''@;'; put 'put ''dGlvbj1jWyJib3R0b20tbGVmdCJdfWdldCBpc0RheVZpZXcoKXtyZXR1cm4iREFZVklFVyI9PT10aGlzLl9jdXJyZW50Vmlld31nZXQgaXNZZWFyVmlldygpe3JldHVybiJZRUFSVklFVyI9PT10aGlzLl9jdXJyZW50Vmlld31nZXQgaXNNb250aFZpZXcoKXtyZXR1cm4iTU9OVEhWSUVXIj09''@;'; put 'put ''PXRoaXMuX2N1cnJlbnRWaWV3fWNoYW5nZVRvTW9udGhWaWV3KCl7dGhpcy5fY3VycmVudFZpZXc9Ik1PTlRIVklFVyJ9Y2hhbmdlVG9ZZWFyVmlldygpe3RoaXMuX2N1cnJlbnRWaWV3PSJZRUFSVklFVyJ9Y2hhbmdlVG9EYXlWaWV3KCl7dGhpcy5fY3VycmVudFZpZXc9IkRBWVZJRVcifX1y''@;'; put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxqQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuX3ZpZXdNYW5hZ2VyU2Vydmlj''@;'; put 'put ''ZT1oLHRoaXMuX2xvY2FsZUhlbHBlclNlcnZpY2U9dix0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9eSx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPUMsdGhpcy5fZWxSZWY9SSx0aGlzLl9mb2N1c2VkTW9udGhJbmRleD10aGlzLmNhbGVuZGFyTW9udGhJbmRleH1nZXQgbW9udGhO''@;'; put 'put ''YW1lcygpe3JldHVybiB0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlLmxvY2FsZU1vbnRoc1dpZGV9Z2V0IGNhbGVuZGFyTW9udGhJbmRleCgpe3JldHVybiB0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIubW9udGh9Y2hhbmdlTW9udGgoaCl7dGhpcy5fZGF0''@;'; put 'put ''ZU5hdmlnYXRpb25TZXJ2aWNlLmNoYW5nZU1vbnRoKGgpLHRoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZS5jaGFuZ2VUb0RheVZpZXcoKX1nZXRUYWJJbmRleChoKXtyZXR1cm4gaD09PXRoaXMuX2ZvY3VzZWRNb250aEluZGV4PzA6LTF9b25LZXlEb3duKGgpe2lmKGgpe2NvbnN0IHY9aC5rZXlD''@;'; put 'put ''b2RlOzM4PT09diYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg+MD8oaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuX2ZvY3VzZWRNb250aEluZGV4LS0sdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKTo0MD09PXYmJnRoaXMuX2ZvY3VzZWRNb250aElu''@;'; put 'put ''ZGV4PDExPyhoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXgrKyx0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZikpOjM5PT09diYmdGhpcy5fZm9jdXNlZE1vbnRoSW5kZXg8Nj8oaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMu''@;'; put 'put ''X2ZvY3VzZWRNb250aEluZGV4PXRoaXMuX2ZvY3VzZWRNb250aEluZGV4KzYsdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2VydmljZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpKTozNz09PXYmJnRoaXMuX2ZvY3VzZWRNb250aEluZGV4PjUmJihoLnByZXZlbnREZWZhdWx0KCksdGhpcy5fZm9jdXNl''@;'; put 'put ''ZE1vbnRoSW5kZXg9dGhpcy5fZm9jdXNlZE1vbnRoSW5kZXgtNix0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZikpfX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzQ2VsbCh0aGlzLl9lbFJlZil9fXJl''@;'; put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KEhMKSxLdChxaiksS3QoZ3YpLEt0KEZMKSxLdChibykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItbW9udGhwaWNrZXIiXV0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVu''@;'; put 'put ''Y3Rpb24oaCx2KXsxJmgmJkduKCJrZXlkb3duIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbktleURvd24oQyl9KSwyJmgmJkZpKCJtb250aHBpY2tlciIsITApfSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiY2FsZW5kYXItYnRuIG1vbnRoIiwzLCJp''@;'; put 'put ''cy1zZWxlY3RlZCIsImNsaWNrIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsIm1vbnRoIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmcm4oMCxpJCwyLDQsImJ1dHRvbiIsMCksMiZoJiZUdCgibmdGb3JPZiIs''@;'; put 'put ''di5tb250aE5hbWVzKX0sZGVwZW5kZW5jaWVzOlt4c10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCk7Y2xhc3Mgblp7Y29uc3RydWN0b3IoZyl7dGhpcy55ZWFyPWcsdGhpcy55ZWFyUmFuZ2U9W10sdGhpcy5nZW5lcmF0ZVllYXJSYW5nZSgpfWdldCBtaWRkbGVZZWFyKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''eWVhclJhbmdlW01hdGguZmxvb3IodGhpcy55ZWFyUmFuZ2UubGVuZ3RoLzIpXX1nZW5lcmF0ZVllYXJSYW5nZSgpe2NvbnN0IGg9dGhpcy55ZWFyLXRoaXMueWVhciUxMDt0aGlzLnllYXJSYW5nZT10aGlzLmdlbmVyYXRlUmFuZ2UoaCxoKzEwKX1nZW5lcmF0ZVJhbmdlKGcsaCl7cmV0dXJu''@;'; put 'put ''IEFycmF5LmZyb20oe2xlbmd0aDpoLWd9LCh2LHkpPT55K2cpfW5leHREZWNhZGUoKXtyZXR1cm4gbmV3IG5aKHRoaXMueWVhcisxMCl9cHJldmlvdXNEZWNhZGUoKXtyZXR1cm4gbmV3IG5aKHRoaXMueWVhci0xMCl9Y3VycmVudERlY2FkZSgpe3JldHVybiBuZXcgblooKG5ldyBEYXRlKS5n''@;'; put 'put ''ZXRGdWxsWWVhcigpKX1pblJhbmdlKGcpe3JldHVybiB0aGlzLnllYXJSYW5nZS5pbmRleE9mKGcpPi0xfX1sZXQgekFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9aCx0aGlzLl92aWV3TWFuYWdlclNlcnZpY2U9dix0''@;'; put 'put ''aGlzLl9kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPXksdGhpcy5fZWxSZWY9Qyx0aGlzLmNvbW1vblN0cmluZ3M9SSx0aGlzLnllYXJSYW5nZU1vZGVsPW5ldyBuWih0aGlzLmNhbGVuZGFyWWVhciksdGhpcy5fZm9jdXNlZFllYXI9dGhpcy5jYWxlbmRhclllYXIsdGhpcy51cGRhdGVSYW5nZSh0''@;'; put 'put ''aGlzLnllYXJSYW5nZU1vZGVsKX1nZXQgY2FsZW5kYXJZZWFyKCl7cmV0dXJuIHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5kaXNwbGF5ZWRDYWxlbmRhci55ZWFyfWluY3JlbWVudEZvY3VzWWVhckJ5KGgpe3RoaXMuX2ZvY3VzZWRZZWFyPXRoaXMuX2ZvY3VzZWRZZWFyK2gsdGhpcy55''@;'; put 'put ''ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2ZvY3VzZWRZZWFyKXx8KHRoaXMueWVhclJhbmdlTW9kZWw9aD4wP3RoaXMueWVhclJhbmdlTW9kZWwubmV4dERlY2FkZSgpOnRoaXMueWVhclJhbmdlTW9kZWwucHJldmlvdXNEZWNhZGUoKSksdGhpcy5fZGF0ZXBpY2tlckZvY3VzU2Vydmlj''@;'; put 'put ''ZS5mb2N1c0NlbGwodGhpcy5fZWxSZWYpfWNoYW5nZVllYXIoaCl7dGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmNoYW5nZVllYXIoaCksdGhpcy5fdmlld01hbmFnZXJTZXJ2aWNlLmNoYW5nZVRvRGF5VmlldygpfXByZXZpb3VzRGVjYWRlKCl7dGhpcy55ZWFyUmFuZ2VNb2RlbD10aGlz''@;'; put 'put ''LnllYXJSYW5nZU1vZGVsLnByZXZpb3VzRGVjYWRlKCksdGhpcy51cGRhdGVSYW5nZSh0aGlzLnllYXJSYW5nZU1vZGVsKX1jdXJyZW50RGVjYWRlKCl7dGhpcy55ZWFyUmFuZ2VNb2RlbC5pblJhbmdlKHRoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS50b2RheS55ZWFyKXx8KHRoaXMueWVh''@;'; put 'put ''clJhbmdlTW9kZWw9dGhpcy55ZWFyUmFuZ2VNb2RlbC5jdXJyZW50RGVjYWRlKCkpLHRoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKSx0aGlzLnVwZGF0ZVJhbmdlKHRoaXMueWVhclJhbmdlTW9kZWwpfW5leHREZWNhZGUoKXt0aGlzLnllYXJSYW5n''@;'; put 'put ''ZU1vZGVsPXRoaXMueWVhclJhbmdlTW9kZWwubmV4dERlY2FkZSgpLHRoaXMudXBkYXRlUmFuZ2UodGhpcy55ZWFyUmFuZ2VNb2RlbCl9Z2V0VGFiSW5kZXgoaCl7cmV0dXJuIHRoaXMueWVhclJhbmdlTW9kZWwuaW5SYW5nZSh0aGlzLl9mb2N1c2VkWWVhcil8fCh0aGlzLl9mb2N1c2VkWWVh''@;'; put 'put ''cj10aGlzLnllYXJSYW5nZU1vZGVsLmluUmFuZ2UodGhpcy5jYWxlbmRhclllYXIpP3RoaXMuY2FsZW5kYXJZZWFyOnRoaXMueWVhclJhbmdlTW9kZWwubWlkZGxlWWVhciksdGhpcy5fZm9jdXNlZFllYXI9PT1oPzA6LTF9b25LZXlEb3duKGgpe2lmKGgpe2NvbnN0IHY9aC5rZXlDb2RlOzM4''@;'; put 'put ''PT09dj8oaC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuaW5jcmVtZW50Rm9jdXNZZWFyQnkoLTEpKTo0MD09PXY/KGgucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlbWVudEZvY3VzWWVhckJ5KDEpKTozOT09PXY/KGgucHJldmVudERlZmF1bHQoKSx0aGlzLmluY3JlbWVudEZvY3VzWWVhckJ5''@;'; put 'put ''KDUpKTozNz09PXYmJihoLnByZXZlbnREZWZhdWx0KCksdGhpcy5pbmNyZW1lbnRGb2N1c1llYXJCeSgtNSkpfX11cGRhdGVSYW5nZShoKXt0aGlzLmRlY2FkZVJhbmdlPWAke2gueWVhclJhbmdlWzBdfSB0byAke2gueWVhclJhbmdlW2gueWVhclJhbmdlLmxlbmd0aC0xXX1gfW5nQWZ0ZXJW''@;'; put 'put ''aWV3SW5pdCgpe3RoaXMuX2RhdGVwaWNrZXJGb2N1c1NlcnZpY2UuZm9jdXNDZWxsKHRoaXMuX2VsUmVmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZ3YpLEt0KEhMKSxLdChGTCksS3QoYm8pLEt0KG5zKSl9LGQuXHUwMjc1Y21wPVRpKHt0''@;'; put 'put ''eXBlOmQsc2VsZWN0b3JzOltbImNsci15ZWFycGlja2VyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigia2V5ZG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25LZXlEb3duKEMpfSksMiZoJiZGaSgieWVhcnBpY2tlciIsITApfSxkZWNsczo5LHZh''@;'; put 'put ''cnM6Nyxjb25zdHM6W1sxLCJ5ZWFyLXN3aXRjaGVycyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2FsZW5kYXItYnRuIiwic3dpdGNoZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVmdCJdLFsic2hhcGUiLCJldmVudCJdLFsic2hhcGUiLCJhbmdsZSIsImRp''@;'; put 'put ''cmVjdGlvbiIsInJpZ2h0Il0sWzEsInllYXJzIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjYWxlbmRhci1idG4geWVhciIsMywiaXMtc2VsZWN0ZWQiLCJjbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJ5ZWFyIiwzLCJj''@;'; put 'put ''bGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImRpdiIsMCkoMSwiYnV0dG9uIiwxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucHJldmlvdXNEZWNhZGUoKX0pLENyKDIsImNkcy1pY29uIiwyKSxvdCgpLG50KDMsImJ1dHRvbiIsMSksR24oImNsaWNr''@;'; put 'put ''IixmdW5jdGlvbigpe3JldHVybiB2LmN1cnJlbnREZWNhZGUoKX0pLENyKDQsImNkcy1pY29uIiwzKSxvdCgpLG50KDUsImJ1dHRvbiIsMSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2Lm5leHREZWNhZGUoKX0pLENyKDYsImNkcy1pY29uIiw0KSxvdCgpKCksbnQoNywiZGl2Iiw1''@;'; put 'put ''KSxybig4LG8kLDIsNCwiYnV0dG9uIiw2KSxvdCgpKSwyJmgmJih1dCgxKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclByZXZpb3VzRGVjYWRlKSx1dCgxKSxHaSgidGl0bGUiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJQcmV2aW91c0Rl''@;'; put 'put ''Y2FkZSksdXQoMSksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50RGVjYWRlKSx1dCgxKSxHaSgidGl0bGUiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50RGVjYWRlKSx1dCgxKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21t''@;'; put 'put ''b25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlck5leHREZWNhZGUpLHV0KDEpLEdpKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlck5leHREZWNhZGUpLHV0KDIpLFR0KCJuZ0Zvck9mIix2LnllYXJSYW5nZU1vZGVsLnllYXJSYW5nZSkpfSxkZXBlbmRlbmNpZXM6W1pvLHhz''@;'; put 'put ''XSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxHQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLl92aWV3TWFuYWdlclNlcnZpY2U9aCx0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2U9dix0aGlzLl9sb2NhbGVIZWxwZXJTZXJ2aWNlPXksdGhpcy5jb21tb25TdHJp''@;'; put 'put ''bmdzPUN9Z2V0IG1vbnRoQXR0clN0cmluZygpe3JldHVybiB0aGlzLmNvbW1vblN0cmluZ3MucGFyc2UodGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclNlbGVjdE1vbnRoVGV4dCx7Q0FMRU5EQVJfTU9OVEg6dGhpcy5jYWxlbmRhck1vbnRofSl9Z2V0IHllYXJBdHRyU3RyaW5n''@;'; put 'put ''KCl7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyU2VsZWN0WWVhclRleHQse0NBTEVOREFSX1lFQVI6dGhpcy5jYWxlbmRhclllYXIudG9TdHJpbmcoKX0pfWNoYW5nZVRvTW9udGhWaWV3KCl7dGhpcy5fdmlld01hbmFn''@;'; put 'put ''ZXJTZXJ2aWNlLmNoYW5nZVRvTW9udGhWaWV3KCl9Y2hhbmdlVG9ZZWFyVmlldygpe3RoaXMuX3ZpZXdNYW5hZ2VyU2VydmljZS5jaGFuZ2VUb1llYXJWaWV3KCl9Z2V0IGNhbGVuZGFyTW9udGgoKXtyZXR1cm4gdGhpcy5fbG9jYWxlSGVscGVyU2VydmljZS5sb2NhbGVNb250aHNBYmJyZXZp''@;'; put 'put ''YXRlZFt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UuZGlzcGxheWVkQ2FsZW5kYXIubW9udGhdfWdldCBjYWxlbmRhclllYXIoKXtyZXR1cm4gdGhpcy5fZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmRpc3BsYXllZENhbGVuZGFyLnllYXJ9bmV4dE1vbnRoKCl7dGhpcy5fZGF0ZU5hdmlnYXRp''@;'; put 'put ''b25TZXJ2aWNlLm1vdmVUb05leHRNb250aCgpfXByZXZpb3VzTW9udGgoKXt0aGlzLl9kYXRlTmF2aWdhdGlvblNlcnZpY2UubW92ZVRvUHJldmlvdXNNb250aCgpfWN1cnJlbnRNb250aCgpe3RoaXMuX2RhdGVOYXZpZ2F0aW9uU2VydmljZS5tb3ZlVG9DdXJyZW50TW9udGgoKX19cmV0dXJu''@;'; put 'put ''IGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoSEwpLEt0KGd2KSxLdChxaiksS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRheXBpY2tlciJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezIm''@;'; put 'put ''aCYmRmkoImRheXBpY2tlciIsITApfSxkZWNsczoxOCx2YXJzOjEzLGNvbnN0czpbWzEsImNsci1zci1vbmx5Il0sWzEsImNhbGVuZGFyLWhlYWRlciJdLFsxLCJjYWxlbmRhci1waWNrZXJzIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJjYWxlbmRhci1idG4iLCJtb250aHBpY2tlci10cmlnZ2Vy''@;'; put 'put ''IiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2FsZW5kYXItYnRuIiwieWVhcnBpY2tlci10cmlnZ2VyIiwzLCJjbGljayJdLFsxLCJjYWxlbmRhci1zd2l0Y2hlcnMiXSxbInR5cGUiLCJidXR0b24iLDEsImNhbGVuZGFyLWJ0biIsInN3aXRjaGVyIiwzLCJjbGljayJdLFsic2hh''@;'; put 'put ''cGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsImxlZnQiXSxbInNoYXBlIiwiZXZlbnQiXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJyaWdodCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImRpdiIsMCksWXQoMSksb3QoKSxudCgyLCJkaXYiLDEpKDMsImRpdiIs''@;'; put 'put ''MikoNCwiYnV0dG9uIiwzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY2hhbmdlVG9Nb250aFZpZXcoKX0pLFl0KDUpLG90KCksbnQoNiwiYnV0dG9uIiw0KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY2hhbmdlVG9ZZWFyVmlldygpfSksWXQoNyksb3QoKSgpLG50''@;'; put 'put ''KDgsImRpdiIsNSkoOSwiYnV0dG9uIiw2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucHJldmlvdXNNb250aCgpfSksQ3IoMTAsImNkcy1pY29uIiw3KSxvdCgpLG50KDExLCJidXR0b24iLDYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jdXJyZW50TW9udGgoKX0p''@;'; put 'put ''LENyKDEyLCJjZHMtaWNvbiIsOCksb3QoKSxudCgxMywiYnV0dG9uIiw2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYubmV4dE1vbnRoKCl9KSxDcigxNCwiY2RzLWljb24iLDkpLG90KCkoKSgpLENyKDE1LCJjbHItY2FsZW5kYXIiKSxudCgxNiwiZGl2IiwwKSxZdCgxNyksb3Qo''@;'; put 'put ''KSksMiZoJiYodXQoMSksamkodi5jb21tb25TdHJpbmdzLmtleXMubW9kYWxDb250ZW50U3RhcnQpLHV0KDMpLEdpKCJhcmlhLWxhYmVsIix2Lm1vbnRoQXR0clN0cmluZykoInRpdGxlIix2Lm1vbnRoQXR0clN0cmluZyksdXQoMSksSmkoIiAiLHYuY2FsZW5kYXJNb250aCwiICIpLHV0KDEp''@;'; put 'put ''LEdpKCJhcmlhLWxhYmVsIix2LnllYXJBdHRyU3RyaW5nKSgidGl0bGUiLHYueWVhckF0dHJTdHJpbmcpLHV0KDEpLEppKCIgIix2LmNhbGVuZGFyWWVhciwiICIpLHV0KDIpLEdpKCJhcmlhLWxhYmVsIix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNNb250aCksdXQo''@;'; put 'put ''MSksR2koInRpdGxlIix2LmNvbW1vblN0cmluZ3Mua2V5cy5kYXRlcGlja2VyUHJldmlvdXNNb250aCksdXQoMSksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJDdXJyZW50TW9udGgpLHV0KDEpLEdpKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMu''@;'; put 'put ''ZGF0ZXBpY2tlckN1cnJlbnRNb250aCksdXQoMSksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJOZXh0TW9udGgpLHV0KDQpLGppKHYuY29tbW9uU3RyaW5ncy5rZXlzLm1vZGFsQ29udGVudEVuZCkpfSxkZXBlbmRlbmNpZXM6W1ZBZSxab10sZW5jYXBz''@;'; put 'put ''dWxhdGlvbjoyfSksZH0pKCksV0FlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmNvbW1vblN0cmluZ3M9aCx0aGlzLnZpZXdNYW5hZ2VyU2VydmljZT12fWdldCBpc01vbnRoVmlldygpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5pc01vbnRoVmlld31nZXQg''@;'; put 'put ''aXNZZWFyVmlldygpe3JldHVybiB0aGlzLnZpZXdNYW5hZ2VyU2VydmljZS5pc1llYXJWaWV3fWdldCBpc0RheVZpZXcoKXtyZXR1cm4gdGhpcy52aWV3TWFuYWdlclNlcnZpY2UuaXNEYXlWaWV3fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChu''@;'; put 'put ''cyksS3QoSEwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRhdGVwaWNrZXItdmlldy1tYW5hZ2VyIl1dLGhvc3RBdHRyczpbInJvbGUiLCJkaWFsb2ciXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJhcmlhLW1vZGFs''@;'; put 'put ''IiwhMCkoImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGVwaWNrZXJEaWFsb2dMYWJlbCksRmkoImRhdGVwaWNrZXIiLCEwKSl9LGZlYXR1cmVzOltobyhbRkxdKV0sZGVjbHM6Myx2YXJzOjMsY29uc3RzOltbNCwibmdJZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEm''@;'; put 'put ''aCYmKHJuKDAsYSQsMSwwLCJjbHItbW9udGhwaWNrZXIiLDApLHJuKDEsbCQsMSwwLCJjbHIteWVhcnBpY2tlciIsMCkscm4oMixqdWUsMSwwLCJjbHItZGF5cGlja2VyIiwwKSksMiZoJiYoVHQoIm5nSWYiLHYuaXNNb250aFZpZXcpLHV0KDEpLFR0KCJuZ0lmIix2LmlzWWVhclZpZXcpLHV0''@;'; put 'put ''KDEpLFR0KCJuZ0lmIix2LmlzRGF5VmlldykpfSxkZXBlbmRlbmNpZXM6W2pBZSx6QWUsR0FlLE5vXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxyWj0oKCk9PntjbGFzcyBkIGV4dGVuZHMgWnR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFosdWUsX2UsQmUsTmUsS2UscHQsT3Qpe3N1cGVyKE90''@;'; put 'put ''LEtlLE5lLHB0KSx0aGlzLnJlbmRlcmVyPWgsdGhpcy50b2dnbGVTZXJ2aWNlPXYsdGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2U9eSx0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZT1DLHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT1JLHRoaXMuZGF0ZUlPU2VydmljZT1aLHRoaXMu''@;'; put 'put ''Y29tbW9uU3RyaW5ncz11ZSx0aGlzLmZvY3VzU2VydmljZT1fZSx0aGlzLnZpZXdNYW5hZ2VyU2VydmljZT1CZSx0aGlzLmNvbnRyb2xDbGFzc1NlcnZpY2U9TmUsdGhpcy5sYXlvdXRTZXJ2aWNlPUtlLHRoaXMubmdDb250cm9sU2VydmljZT1wdCx0aGlzLmlmQ29udHJvbFN0YXRlU2Vydmlj''@;'; put 'put ''ZT1PdCx0aGlzLmZvY3VzPSExLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZm9jdXNTZXJ2aWNlLmZvY3VzQ2hhbmdlLnN1YnNjcmliZSgkdD0+e3RoaXMuZm9jdXM9JHR9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50b2dnbGVTZXJ2aWNlLm9wZW5DaGFuZ2Uuc3Vic2Ny''@;'; put 'put ''aWJlKCgpPT57dGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLm1hcmtBc1RvdWNoZWQoKX0pKX1zZXQgY2xyUG9zaXRpb24oaCl7aCYmY1toXSYmKHRoaXMudmlld01hbmFnZXJTZXJ2aWNlLnBvc2l0aW9uPWNbaF0pfWdldCBwb3BvdmVyUG9zaXRpb24oKXtyZXR1cm4gdGhpcy52aWV3TWFu''@;'; put 'put ''YWdlclNlcnZpY2UucG9zaXRpb259Z2V0IG9wZW4oKXtyZXR1cm4gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW59c2V0IGFjdGlvbkJ1dHRvbihoKXt0aGlzLnRvZ2dsZUJ1dHRvbj1ofW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudG9nZ2xlU2VydmljZS5v''@;'; put 'put ''cGVuQ2hhbmdlLnN1YnNjcmliZShoPT57aD90aGlzLmluaXRpYWxpemVDYWxlbmRhcigpOnRoaXMudG9nZ2xlQnV0dG9uLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmxpc3RlbkZvckRhdGVDaGFuZ2VzKCkpfWdldCBpc0VuYWJsZWQoKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5kYXRlcGlja2VyRW5hYmxlZFNlcnZpY2UuaXNFbmFibGVkfWdldCBpc0lucHV0RGF0ZURpc2FibGVkKCl7cmV0dXJuIHRoaXMuY29udHJvbCYmdGhpcy5jb250cm9sLmRpc2FibGVkfHx0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2UmJnRoaXMuZGF0ZUZvcm1Db250cm9s''@;'; put 'put ''U2VydmljZS5kaXNhYmxlZH1nZXRUb2dnbGVCdXR0b25MYWJlbChoKXtpZihoKXtjb25zdCB2PXRoaXMuZGF0ZUlPU2VydmljZS50b0xvY2FsZURpc3BsYXlGb3JtYXRTdHJpbmcoaC50b0RhdGUoKSk7cmV0dXJuIHRoaXMuY29tbW9uU3RyaW5ncy5wYXJzZSh0aGlzLmNvbW1vblN0cmluZ3Mu''@;'; put 'put ''a2V5cy5kYXRlcGlja2VyVG9nZ2xlQ2hhbmdlRGF0ZUxhYmVsLHtTRUxFQ1RFRF9EQVRFOnZ9KXx8dGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclRvZ2dsZX1yZXR1cm4gdGhpcy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclRvZ2dsZUNob29zZURhdGVMYWJlbHx8dGhp''@;'; put 'put ''cy5jb21tb25TdHJpbmdzLmtleXMuZGF0ZXBpY2tlclRvZ2dsZX1saXN0ZW5Gb3JEYXRlQ2hhbmdlcygpe3JldHVybiB0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheUNoYW5nZS5waXBlKE41KHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5KSkuc3Vi''@;'; put 'put ''c2NyaWJlKGg9Pntjb25zdCB2PXRoaXMuZ2V0VG9nZ2xlQnV0dG9uTGFiZWwoaCkseT10aGlzLnRvZ2dsZUJ1dHRvbi5uYXRpdmVFbGVtZW50O3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHksImFyaWEtbGFiZWwiLHYpLHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHksInRpdGxlIix2''@;'; put 'put ''KX0pfWluaXRpYWxpemVDYWxlbmRhcigpe3RoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLmluaXRpYWxpemVDYWxlbmRhcigpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChHYSksS3QoenMpLEt0KGd2KSxLdChjcSksS3QodFopLEt0KGVaKSxL''@;'; put 'put ''dChucyksS3Qoa2ZlKSxLdChITCksS3QoRXQpLEt0KFdlLDgpLEt0KEhlKSxLdChxZSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0ZS1jb250YWluZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhadWUsNSksMiZoKXtsZXQgeTtI''@;'; put 'put ''aSh5PSRpKCkpJiYodi5hY3Rpb25CdXR0b249eS5maXJzdCl9fSxob3N0VmFyczo4LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci1kYXRlLWNvbnRhaW5lciIsITApKCJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIix2LmlzSW5wdXREYXRlRGlzYWJsZWQpKCJjbHIt''@;'; put 'put ''Zm9ybS1jb250cm9sIiwhMCkoImNsci1yb3ciLHYuYWRkR3JpZCgpKX0saW5wdXRzOntjbHJQb3NpdGlvbjoiY2xyUG9zaXRpb24ifSxmZWF0dXJlczpbaG8oW3EsenMsaDgsR3MscWosRXQsa2ZlLEhlLGVaLGd2LGNxLHRaLEhMLHFlXSksRG9dLG5nQ29udGVudFNlbGVjdG9yczokeSxkZWNs''@;'; put 'put ''czoxMyx2YXJzOjE0LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWyJjbHJQb3BvdmVyQW5jaG9yIiwiIiwxLCJjbHItaW5wdXQtd3JhcHBlciJdLFsxLCJjbHItaW5wdXQtZ3JvdXAiXSxbInR5cGUiLCJidXR0b24iLCJjbHJQb3Bv''@;'; put 'put ''dmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwiY2xhc3MiLCJjbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24iLDMsImRpc2FibGVkIiw0LCJuZ0lmIl0sWyJjbHJGb2N1c1RyYXAiLCIiLDQsImNsclBvcG92ZXJDb250ZW50IiwiY2xyUG9wb3ZlckNvbnRlbnRBdCIsImNsclBvcG92ZXJDb250ZW50''@;'; put 'put ''T3V0c2lkZUNsaWNrVG9DbG9zZSIsImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInN0YXR1cyIsImRhbmdlciIsInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJj''@;'; put 'put ''bGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyUG9wb3Zlck9wZW5DbG9zZUJ1dHRvbiIsIiIsMSwiY2xyLWlucHV0LWdyb3Vw''@;'; put 'put ''LWljb24tYWN0aW9uIiwzLCJkaXNhYmxlZCJdLFsiYWN0aW9uQnV0dG9uIiwiIl0sWyJzdGF0dXMiLCJpbmZvIiwic2hhcGUiLCJjYWxlbmRhciJdLFsiY2xyRm9jdXNUcmFwIiwiIl0sWyJzdGF0dXMiLCJkYW5nZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVu''@;'; put 'put ''IiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChZdWUpLE5pKDApLHJu''@;'; put 'put ''KDEsenVlLDEsMCwibGFiZWwiLDApLG50KDIsImRpdiIsMSkoMywiZGl2IiwyKSg0LCJkaXYiLDMpLE5pKDUsMSkscm4oNix2ZywzLDEsImJ1dHRvbiIsNCkscm4oNyxTaiwxLDAsImNsci1kYXRlcGlja2VyLXZpZXctbWFuYWdlciIsNSksb3QoKSxybig4LEd1ZSwxLDAsImNkcy1pY29uIiw2''@;'; put 'put ''KSxybig5LHMkLDEsMCwiY2RzLWljb24iLDcpLG90KCkscm4oMTAsdSQsMSwwLCJuZy1jb250ZW50IiwwKSxybigxMSxjJCwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDEyLFd1ZSwxLDAsIm5nLWNvbnRlbnQiLDApLG90KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIiwhdi5sYWJlbCYmdi5hZGRH''@;'; put 'put ''cmlkKCkpLHV0KDEpLFR0KCJuZ0NsYXNzIix2LmNvbnRyb2xDbGFzcygpKSx1dCgyKSxGaSgiY2xyLWZvY3VzIix2LmZvY3VzKSx1dCgyKSxUdCgibmdJZiIsdi5pc0VuYWJsZWQpLHV0KDEpLFR0KCJjbHJQb3BvdmVyQ29udGVudCIsdi5vcGVuKSgiY2xyUG9wb3ZlckNvbnRlbnRBdCIsdi5w''@;'; put 'put ''b3BvdmVyUG9zaXRpb24pKCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCEwKSgiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwhMCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd0ludmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dWYWxpZCksdXQoMSksVHQo''@;'; put 'put ''Im5nSWYiLHYuc2hvd0hlbHBlciksdXQoMSksVHQoIm5nSWYiLHYuc2hvd0ludmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dWYWxpZCkpfSxkZXBlbmRlbmNpZXM6W1dBZSxObyxhdCxsYyx1dyxjdyxabyxkbCxod10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksSWZlPSgoKT0+e2NsYXNz''@;'; put 'put ''IGQgZXh0ZW5kcyBTbntjb25zdHJ1Y3RvcihoLHYseSxDLEksWix1ZSxfZSxCZSxOZSxLZSxwdCxPdCl7c3VwZXIoaCxyWix2LEksQyx5KSx0aGlzLmVsPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMuY29udHJvbD1JLHRoaXMuY29udGFpbmVyPVosdGhpcy5kYXRlSU9TZXJ2aWNlPXVlLHRoaXMu''@;'; put 'put ''ZGF0ZU5hdmlnYXRpb25TZXJ2aWNlPV9lLHRoaXMuZGF0ZXBpY2tlckVuYWJsZWRTZXJ2aWNlPUJlLHRoaXMuZGF0ZUZvcm1Db250cm9sU2VydmljZT1OZSx0aGlzLnBsYXRmb3JtSWQ9S2UsdGhpcy5mb2N1c1NlcnZpY2U9cHQsdGhpcy5kYXRlcGlja2VyRm9jdXNTZXJ2aWNlPU90LHRoaXMu''@;'; put 'put ''ZGF0ZUNoYW5nZT1uZXcgYXIoITEpLHRoaXMuaW5kZXg9MX1zZXQgZGF0ZShoKXt0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZSE9PWgmJnRoaXMudXBkYXRlRGF0ZSh0aGlzLmdldFZhbGlkRGF0ZVZhbHVlRnJvbURhdGUoaCkpLHRoaXMuaW5pdGlhbENsckRhdGVJbnB1dFZhbHVlfHwodGhpcy5p''@;'; put 'put ''bml0aWFsQ2xyRGF0ZUlucHV0VmFsdWU9aCl9c2V0IG1pbihoKXt0aGlzLmRhdGVJT1NlcnZpY2Uuc2V0TWluRGF0ZShoKX1zZXQgbWF4KGgpe3RoaXMuZGF0ZUlPU2VydmljZS5zZXRNYXhEYXRlKGgpfW5nT25Jbml0KCl7c3VwZXIubmdPbkluaXQoKSx0aGlzLnBvcHVsYXRlU2VydmljZXNG''@;'; put 'put ''cm9tQ29udGFpbmVyQ29tcG9uZW50KCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JVc2VyU2VsZWN0ZWREYXlDaGFuZ2VzKCksdGhpcy5saXN0ZW5Gb3JDb250cm9sVmFsdWVDaGFuZ2VzKCksdGhpcy5saXN0ZW5Gb3JUb3VjaENoYW5nZXMoKSx0aGlzLmxpc3RlbkZv''@;'; put 'put ''ckRpcnR5Q2hhbmdlcygpLHRoaXMubGlzdGVuRm9ySW5wdXRSZWZvY3VzKCkpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMucHJvY2Vzc0luaXRpYWxJbnB1dHMoKX1zZXRGb2N1c1N0YXRlcygpe3RoaXMuc2V0Rm9jdXMoITApfXRyaWdnZXJWYWxpZGF0aW9uKCl7c3VwZXIudHJpZ2dlclZhbGlk''@;'; put 'put ''YXRpb24oKSx0aGlzLnNldEZvY3VzKCExKX1nZXQgcGxhY2Vob2xkZXJUZXh0KCl7cmV0dXJuIHRoaXMucGxhY2Vob2xkZXI/dGhpcy5wbGFjZWhvbGRlcjp0aGlzLmRhdGVJT1NlcnZpY2UucGxhY2Vob2xkZXJUZXh0fWdldCBpbnB1dFR5cGUoKXtyZXR1cm4gU2wodGhpcy5wbGF0Zm9ybUlk''@;'; put 'put ''KSYmdGhpcy51c2luZ05hdGl2ZURhdGVwaWNrZXIoKT8iZGF0ZSI6InRleHQifW9uVmFsdWVDaGFuZ2UoaCl7Y29uc3Qgdj10aGlzLmRhdGVJT1NlcnZpY2UuZ2V0RGF0ZVZhbHVlRnJvbURhdGVTdHJpbmcoaC52YWx1ZSk7aWYodGhpcy51c2luZ0NsYXJpdHlEYXRlcGlja2VyKCkmJnYpdGhp''@;'; put 'put ''cy51cGRhdGVEYXRlKHYsITApO2Vsc2UgaWYodGhpcy51c2luZ05hdGl2ZURhdGVwaWNrZXIoKSl7Y29uc3RbeSxDLEldPWgudmFsdWUuc3BsaXQoIi0iKTt0aGlzLnVwZGF0ZURhdGUobmV3IERhdGUoK3ksK0MtMSwrSSksITApfWVsc2UgdGhpcy5lbWl0RGF0ZU91dHB1dChudWxsKX1zZXQg''@;'; put 'put ''ZGlzYWJsZWQoaCl7dGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlJiZ0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2Uuc2V0RGlzYWJsZWQoWmEoaCkpfWdldCBkaXNhYmxlZCgpe3JldHVybiB0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2U/dGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNl''@;'; put 'put ''LmRpc2FibGVkOm51bGx9dXNpbmdDbGFyaXR5RGF0ZXBpY2tlcigpe3JldHVybiB0aGlzLmRhdGVwaWNrZXJFbmFibGVkU2VydmljZS5pc0VuYWJsZWR9dXNpbmdOYXRpdmVEYXRlcGlja2VyKCl7cmV0dXJuIXRoaXMuZGF0ZXBpY2tlckVuYWJsZWRTZXJ2aWNlLmlzRW5hYmxlZH1zZXRGb2N1''@;'; put 'put ''cyhoKXt0aGlzLmZvY3VzU2VydmljZSYmKHRoaXMuZm9jdXNTZXJ2aWNlLmZvY3VzZWQ9aCl9cG9wdWxhdGVTZXJ2aWNlc0Zyb21Db250YWluZXJDb21wb25lbnQoKXt0aGlzLmNvbnRhaW5lcnx8KHRoaXMuZGF0ZUlPU2VydmljZT10aGlzLmdldFByb3ZpZGVyRnJvbUNvbnRhaW5lcihlWiks''@;'; put 'put ''dGhpcy5kYXRlTmF2aWdhdGlvblNlcnZpY2U9dGhpcy5nZXRQcm92aWRlckZyb21Db250YWluZXIoZ3YpLHRoaXMuZGF0ZXBpY2tlckVuYWJsZWRTZXJ2aWNlPXRoaXMuZ2V0UHJvdmlkZXJGcm9tQ29udGFpbmVyKGNxKSx0aGlzLmRhdGVGb3JtQ29udHJvbFNlcnZpY2U9dGhpcy5nZXRQcm92''@;'; put 'put ''aWRlckZyb21Db250YWluZXIodFopKX1wcm9jZXNzSW5pdGlhbElucHV0cygpe3RoaXMuZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCk/dGhpcy51cGRhdGVEYXRlKHRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyh0aGlzLmNvbnRyb2wudmFsdWUpKTp0aGlz''@;'; put 'put ''LnVwZGF0ZURhdGUodGhpcy5pbml0aWFsQ2xyRGF0ZUlucHV0VmFsdWUpfXVwZGF0ZURhdGUoaCx2PSExKXtjb25zdCB5PXRoaXMuZ2V0VmFsaWREYXRlVmFsdWVGcm9tRGF0ZShoKTt2P3RoaXMuZW1pdERhdGVPdXRwdXQoeSk6dGhpcy5wcmV2aW91c0RhdGVDaGFuZ2U9eSx0aGlzLmRhdGVO''@;'; put 'put ''YXZpZ2F0aW9uU2VydmljZSYmKHRoaXMuZGF0ZU5hdmlnYXRpb25TZXJ2aWNlLnNlbGVjdGVkRGF5PXk/bmV3IGM0KHkuZ2V0RnVsbFllYXIoKSx5LmdldE1vbnRoKCkseS5nZXREYXRlKCkpOm51bGwpLHRoaXMudXBkYXRlSW5wdXQoeSl9dXBkYXRlSW5wdXQoaCl7aWYoaCl7Y29uc3Qgdj10''@;'; put 'put ''aGlzLmRhdGVJT1NlcnZpY2UudG9Mb2NhbGVEaXNwbGF5Rm9ybWF0U3RyaW5nKGgpO3RoaXMudXNpbmdOYXRpdmVEYXRlcGlja2VyKCk/KGguc2V0TWludXRlcyhoLmdldE1pbnV0ZXMoKS1oLmdldFRpbWV6b25lT2Zmc2V0KCkpLHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbC5u''@;'; put 'put ''YXRpdmVFbGVtZW50LCJ2YWx1ZUFzRGF0ZSIsaCkpOnRoaXMuZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCkmJnYhPT10aGlzLmNvbnRyb2wudmFsdWU/dGhpcy5jb250cm9sLmNvbnRyb2wuc2V0VmFsdWUodik6dGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmVsLm5hdGl2ZUVsZW1l''@;'; put 'put ''bnQsInZhbHVlIix2KX1lbHNlIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ2YWx1ZSIsIiIpfWdldFZhbGlkRGF0ZVZhbHVlRnJvbURhdGUoaCl7aWYodGhpcy5kYXRlSU9TZXJ2aWNlKXtjb25zdCB2PXRoaXMuZGF0ZUlPU2VydmljZS50b0xvY2Fs''@;'; put 'put ''ZURpc3BsYXlGb3JtYXRTdHJpbmcoaCk7cmV0dXJuIHRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyh2KX1yZXR1cm4gbnVsbH1lbWl0RGF0ZU91dHB1dChoKXshZnVuY3Rpb24gbE9lKGQsZyl7cmV0dXJuIGQgaW5zdGFuY2VvZiBEYXRlJiZnIGluc3RhbmNl''@;'; put 'put ''b2YgRGF0ZSYmZC5nZXRGdWxsWWVhcigpPT09Zy5nZXRGdWxsWWVhcigpJiZkLmdldE1vbnRoKCk9PT1nLmdldE1vbnRoKCkmJmQuZ2V0RGF0ZSgpPT09Zy5nZXREYXRlKCl9KGgsdGhpcy5wcmV2aW91c0RhdGVDaGFuZ2UpPyh0aGlzLmRhdGVDaGFuZ2UuZW1pdChoKSx0aGlzLnByZXZpb3Vz''@;'; put 'put ''RGF0ZUNoYW5nZT1oKTohaCYmdGhpcy5wcmV2aW91c0RhdGVDaGFuZ2UmJih0aGlzLmRhdGVDaGFuZ2UuZW1pdChudWxsKSx0aGlzLnByZXZpb3VzRGF0ZUNoYW5nZT1udWxsKX1kYXRlcGlja2VySGFzRm9ybUNvbnRyb2woKXtyZXR1cm4hIXRoaXMuY29udHJvbH1saXN0ZW5Gb3JDb250cm9s''@;'; put 'put ''VmFsdWVDaGFuZ2VzKCl7cmV0dXJuIGFhKHRoaXMuZGF0ZXBpY2tlckhhc0Zvcm1Db250cm9sKCkpLnBpcGUoTzIoaD0+aCksWWgoKCk9PnRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMpLE8yKCgpPT4hdGhpcy5kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmVsZW1lbnRJc0ZvY3VzZWQodGhpcy5l''@;'; put 'put ''bC5uYXRpdmVFbGVtZW50KSkpLnN1YnNjcmliZShoPT50aGlzLnVwZGF0ZURhdGUodGhpcy5kYXRlSU9TZXJ2aWNlLmdldERhdGVWYWx1ZUZyb21EYXRlU3RyaW5nKGgpKSl9bGlzdGVuRm9yVXNlclNlbGVjdGVkRGF5Q2hhbmdlcygpe3JldHVybiB0aGlzLmRhdGVOYXZpZ2F0aW9uU2Vydmlj''@;'; put 'put ''ZS5zZWxlY3RlZERheUNoYW5nZS5zdWJzY3JpYmUoaD0+dGhpcy51cGRhdGVEYXRlKGgudG9EYXRlKCksITApKX1saXN0ZW5Gb3JUb3VjaENoYW5nZXMoKXtyZXR1cm4gdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLnRvdWNoZWRDaGFuZ2UucGlwZShPMigoKT0+dGhpcy5kYXRlcGlja2Vy''@;'; put 'put ''SGFzRm9ybUNvbnRyb2woKSkpLnN1YnNjcmliZSgoKT0+dGhpcy5jb250cm9sLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpKX1saXN0ZW5Gb3JEaXJ0eUNoYW5nZXMoKXtyZXR1cm4gdGhpcy5kYXRlRm9ybUNvbnRyb2xTZXJ2aWNlLmRpcnR5Q2hhbmdlLnBpcGUoTzIoKCk9PnRoaXMuZGF0ZXBp''@;'; put 'put ''Y2tlckhhc0Zvcm1Db250cm9sKCkpKS5zdWJzY3JpYmUoKCk9PnRoaXMuY29udHJvbC5jb250cm9sLm1hcmtBc0RpcnR5KCkpfWxpc3RlbkZvcklucHV0UmVmb2N1cygpe3JldHVybiB0aGlzLmRhdGVOYXZpZ2F0aW9uU2VydmljZS5zZWxlY3RlZERheUNoYW5nZS5waXBlKE8yKGg9PiEhaCkp''@;'; put 'put ''LnN1YnNjcmliZSgoKT0+dGhpcy5kYXRlcGlja2VyRm9jdXNTZXJ2aWNlLmZvY3VzSW5wdXQodGhpcy5lbC5uYXRpdmVFbGVtZW50KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFVpKSxLdChTcyksS3QoYm8pLEt0KEdhKSxLdChEZiwxMCks''@;'; put 'put ''S3QoclosOCksS3QoZVosOCksS3QoZ3YsOCksS3QoY3EsOCksS3QodFosOCksS3QoTDIpLEt0KGtmZSw4KSxLdChGTCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJEYXRlIiwiIl1dLGhvc3RWYXJzOjUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZo''@;'; put 'put ''JiZHbigiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHYuc2V0Rm9jdXNTdGF0ZXMoKX0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiB2LnRyaWdnZXJWYWxpZGF0aW9uKCl9KSgiY2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vblZhbHVlQ2hhbmdlKEMudGFyZ2V0KX0pLDImaCYmKEIz''@;'; put 'put ''KCJkaXNhYmxlZCIsdi5kaXNhYmxlZCksR2koInBsYWNlaG9sZGVyIix2LnBsYWNlaG9sZGVyVGV4dCkoInR5cGUiLHYuaW5wdXRUeXBlKSxGaSgiY2xyLWlucHV0IiwhMCkpfSxpbnB1dHM6e3BsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIsZGF0ZTpbImNsckRhdGUiLCJkYXRlIl0sbWluOiJt''@;'; put 'put ''aW4iLG1heDoibWF4IixkaXNhYmxlZDoiZGlzYWJsZWQifSxvdXRwdXRzOntkYXRlQ2hhbmdlOiJjbHJEYXRlQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtGTF0pLERvXX0pLGR9KSgpLGZPZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7aHMuYWRkSWNvbnMoS2gsVGYsRHksTHNlLE9zZSl9''@;'; put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxSLHFhLFJjLERzLHNxLEpyXV19KSxkfSkoKTtuZXcgemUodm9pZCAwKTtsZXQgcE9lPSgoKT0+e2NsYXNz''@;'; put 'put ''IGR7Y29uc3RydWN0b3IoKXtocy5hZGRJY29ucyhoVixSc2UsS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsdGQsRHMsSnJdLEpyXX0pLGR9''@;'; put 'put ''KSgpLFlBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ09uSW5pdCgpe3RoaXMubGFiZWwmJnRoaXMubGFiZWwuZGlzYWJsZUdyaWQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRp''@;'; put 'put ''KHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1yYWRpby13cmFwcGVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksYXQsNyksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5sYWJlbD1DLmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0''@;'; put 'put ''aW9uKGgsdil7MiZoJiZGaSgiY2xyLXJhZGlvLXdyYXBwZXIiLCEwKX0sZmVhdHVyZXM6W2hvKFtxXSldLG5nQ29udGVudFNlbGVjdG9yczpoJCxkZWNsczozLHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoY2gpLE5pKDApLE5pKDEs''@;'; put 'put ''MSkscm4oMixmJCwxLDAsImxhYmVsIiwwKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLCF2LmxhYmVsKSl9LGRlcGVuZGVuY2llczpbTm8sYXRdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLERmZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgU257Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlciho''@;'; put 'put ''LFlBZSx2LHksQyxJKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoVWkpLEt0KFNzKSxLdChEZiwxMCksS3QoR2EpLEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclJhZGlvIiwiIl1dLGZlYXR1cmVz''@;'; put 'put ''OltEb119KSxkfSkoKSxnT2U9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFp0e2NvbnN0cnVjdG9yKGgsdix5LEMpe3N1cGVyKEMsaCx2LHkpLHRoaXMubGF5b3V0U2VydmljZT1oLHRoaXMuY29udHJvbENsYXNzU2VydmljZT12LHRoaXMubmdDb250cm9sU2VydmljZT15LHRoaXMuaWZDb250cm9s''@;'; put 'put ''U3RhdGVTZXJ2aWNlPUMsdGhpcy5pbmxpbmU9ITF9c2V0IGNscklubGluZShoKXt0aGlzLmlubGluZT0ic3RyaW5nIj09dHlwZW9mIGg/ImZhbHNlIiE9PWg6ISFofWdldCBjbHJJbmxpbmUoKXtyZXR1cm4gdGhpcy5pbmxpbmV9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zZXRBcmlhUm9s''@;'; put 'put ''ZXMoKX1zZXRBcmlhUm9sZXMoKXt0aGlzLnJvbGU9dGhpcy5yYWRpb3MubGVuZ3RoPyJncm91cCI6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoV2UsOCksS3QoRXQpLEt0KEhlKSxLdChxZSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpk''@;'; put 'put ''LHNlbGVjdG9yczpbWyJjbHItcmFkaW8tY29udGFpbmVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksRGZlLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYucmFkaW9zPUMpfX0saG9zdFZhcnM6Nyxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsy''@;'; put 'put ''JmgmJihHaSgicm9sZSIsdi5yb2xlKSxGaSgiY2xyLWZvcm0tY29udHJvbCIsITApKCJjbHItZm9ybS1jb250cm9sLWRpc2FibGVkIixudWxsPT12LmNvbnRyb2w/bnVsbDp2LmNvbnRyb2wuZGlzYWJsZWQpKCJjbHItcm93Iix2LmFkZEdyaWQoKSkpfSxpbnB1dHM6e2NscklubGluZToiY2xy''@;'; put 'put ''SW5saW5lIn0sZmVhdHVyZXM6W2hvKFtIZSxxZSxFdCxnZV0pLERvXSxuZ0NvbnRlbnRTZWxlY3RvcnM6Q3AsZGVjbHM6MTAsdmFyczo5LGNvbnN0czpbWzQsIm5nSWYiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwzLCJuZ0NsYXNzIl0sWzEsImNsci1zdWJ0ZXh0LXdyYXBwZXIiXSxb''@;'; put 'put ''ImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzdGF0dXMiLCJkYW5nZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVz''@;'; put 'put ''Iiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1''@;'; put 'put ''cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoeTApLE5pKDApLHJuKDEsSWwsMSwwLCJsYWJlbCIsMCksbnQoMiwiZGl2IiwxKSxOaSgzLDEpLG50KDQsImRpdiIsMikscm4oNSxt''@;'; put 'put ''TCwxLDAsIm5nLWNvbnRlbnQiLDApLHJuKDYsZCQsMSwwLCJjZHMtaWNvbiIsMykscm4oNyxwJCwxLDAsImNkcy1pY29uIiw0KSxybig4LGl2LDEsMCwibmctY29udGVudCIsMCkscm4oOSx2TCwxLDAsIm5nLWNvbnRlbnQiLDApLG90KCkoKSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2Lmxh''@;'; put 'put ''YmVsJiZ2LmFkZEdyaWQoKSksdXQoMSksRmkoImNsci1jb250cm9sLWlubGluZSIsdi5jbHJJbmxpbmUpLFR0KCJuZ0NsYXNzIix2LmNvbnRyb2xDbGFzcygpKSx1dCgzKSxUdCgibmdJZiIsdi5zaG93SGVscGVyKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5n''@;'; put 'put ''SWYiLHYuc2hvd1ZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbTm8sYXQsbGMsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLG1PZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7aHMu''@;'; put 'put ''YWRkSWNvbnMoS2gsVGYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsSnIsUixEc10sSnJdfSksZH0pKCksdk9lPSgoKT0+e2NsYXNzIGR7Y29uc3Ry''@;'; put 'put ''dWN0b3IoKXtocy5hZGRJY29ucyhLaCxUZil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxKcixSLERzXSxKcl19KSxkfSkoKSxpWj0oKCk9PntjbGFz''@;'; put 'put ''cyBkIGV4dGVuZHMgWnR7Y29uc3RydWN0b3IoaCx2LHksQyl7c3VwZXIoQyxoLHYseSksdGhpcy5sYXlvdXRTZXJ2aWNlPWgsdGhpcy5jb250cm9sQ2xhc3NTZXJ2aWNlPXYsdGhpcy5uZ0NvbnRyb2xTZXJ2aWNlPXksdGhpcy5pZkNvbnRyb2xTdGF0ZVNlcnZpY2U9Qyx0aGlzLm11bHRpPSEx''@;'; put 'put ''fW5nT25Jbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5uZ0NvbnRyb2xTZXJ2aWNlLmNvbnRyb2xDaGFuZ2VzLnN1YnNjcmliZShoPT57aCYmKHRoaXMubXVsdGk9aC52YWx1ZUFjY2Vzc29yIGluc3RhbmNlb2YgdnAsdGhpcy5jb250cm9sPWgpfSkpfXdyYXBwZXJDbGFzcygp''@;'; put 'put ''e3JldHVybiB0aGlzLm11bHRpPyJjbHItbXVsdGlzZWxlY3Qtd3JhcHBlciI6ImNsci1zZWxlY3Qtd3JhcHBlciJ9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFdlLDgpLEt0KEV0KSxLdChIZSksS3QocWUpKX0sZC5cdTAyNzVjbXA9VGkoe3R5''@;'; put 'put ''cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXNlbGVjdC1jb250YWluZXIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSx2cCw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2Lm11bHRpcGxlPUMuZmlyc3QpfX0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVu''@;'; put 'put ''Y3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PXYuY29udHJvbD9udWxsOnYuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLHYuYWRkR3JpZCgpKX0sZmVhdHVyZXM6W2hvKFtxZSxIZSxxLEV0XSksRG9d''@;'; put 'put ''LG5nQ29udGVudFNlbGVjdG9yczptJCxkZWNsczoxMCx2YXJzOjgsY29uc3RzOltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMywibmdDbGFzcyJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInN0YXR1cyIsImRhbmdlciIsInNoYXBl''@;'; put 'put ''IiwiZXhjbGFtYXRpb24tY2lyY2xlIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci12YWxpZGF0ZS1pY29uIiwic2hhcGUiLCJjaGVjay1jaXJjbGUiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiw0LCJuZ0lmIl0sWyJzdGF0dXMi''@;'; put 'put ''LCJkYW5nZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWljb24iXSxbInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwiY2xyLXZhbGlkYXRlLWlj''@;'; put 'put ''b24iXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChyY2UpLE5pKDApLHJuKDEsJHVlLDEsMCwibGFiZWwiLDApLG50KDIsImRpdiIsMSkoMywiZGl2IiwyKSxOaSg0LDEpLHJuKDUscXVlLDEsMCwiY2RzLWljb24iLDMpLHJuKDYsZWNlLDEsMCwiY2RzLWljb24iLDQpLG90KCks''@;'; put 'put ''cm4oNyx0Y2UsMSwwLCJuZy1jb250ZW50IiwwKSxybig4LHJkLDEsMCwibmctY29udGVudCIsMCkscm4oOSxuY2UsMSwwLCJuZy1jb250ZW50IiwwKSxvdCgpKSwyJmgmJih1dCgxKSxUdCgibmdJZiIsIXYubGFiZWwmJnYuYWRkR3JpZCgpKSx1dCgxKSxUdCgibmdDbGFzcyIsdi5jb250cm9s''@;'; put 'put ''Q2xhc3MoKSksdXQoMSksVHQoIm5nQ2xhc3MiLHYud3JhcHBlckNsYXNzKCkpLHV0KDIpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dIZWxwZXIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dJbnZhbGlk''@;'; put 'put ''KSx1dCgxKSxUdCgibmdJZiIsdi5zaG93VmFsaWQpKX0sZGVwZW5kZW5jaWVzOltObyxhdCxsYyxab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksb1o9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFNue2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7c3VwZXIoaCxpWix2LHksQyxJKSx0aGlzLmluZGV4''@;'; put 'put ''PTF9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFVpKSxLdChTcyksS3QoRGYsMTApLEt0KEdhKSxLdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJTZWxlY3QiLCIiXV0saG9zdFZhcnM6Mixob3N0Qmlu''@;'; put 'put ''ZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItc2VsZWN0IiwhMCl9LGZlYXR1cmVzOltEb119KSxkfSkoKSxBT2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2hzLmFkZEljb25zKEtoLFRmKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; put 'put ''ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLHRkLERzLEpyXSxKcl19KSxkfSkoKSxVQWU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIFp0e31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oKXtsZXQgZztyZXR1cm4gZnVuY3Rpb24odil7''@;'; put 'put ''cmV0dXJuKGd8fChnPWZsKGQpKSkodnx8ZCl9fSgpLGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci10ZXh0YXJlYS1jb250YWluZXIiXV0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJjbHItZm9ybS1jb250cm9sIiwhMCkoImNs''@;'; put 'put ''ci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiLG51bGw9PXYuY29udHJvbD9udWxsOnYuY29udHJvbC5kaXNhYmxlZCkoImNsci1yb3ciLHYuYWRkR3JpZCgpKX0sZmVhdHVyZXM6W2hvKFtxZSxIZSxxLEV0XSksRG9dLG5nQ29udGVudFNlbGVjdG9yczpFaixkZWNsczoxMCx2YXJzOjcsY29uc3Rz''@;'; put 'put ''OltbNCwibmdJZiJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiLDMsIm5nQ2xhc3MiXSxbMSwiY2xyLXRleHRhcmVhLXdyYXBwZXIiXSxbImNsYXNzIiwiY2xyLXZhbGlkYXRlLWljb24iLCJzdGF0dXMiLCJkYW5nZXIiLCJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsImFyaWEtaGlk''@;'; put 'put ''ZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItdmFsaWRhdGUtaWNvbiIsInNoYXBlIiwiY2hlY2stY2lyY2xlIiwic3RhdHVzIiwic3VjY2VzcyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFsic3RhdHVzIiwiZGFuZ2VyIiwic2hhcGUiLCJleGNsYW1hdGlvbi1j''@;'; put 'put ''aXJjbGUiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl0sWyJzaGFwZSIsImNoZWNrLWNpcmNsZSIsInN0YXR1cyIsInN1Y2Nlc3MiLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsImNsci12YWxpZGF0ZS1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZo''@;'; put 'put ''JiYoSzAoTWopLE5pKDApLHJuKDEsaWNlLDEsMCwibGFiZWwiLDApLG50KDIsImRpdiIsMSkoMywiZGl2IiwyKSxOaSg0LDEpLHJuKDUsdTgsMSwwLCJjZHMtaWNvbiIsMykscm4oNixicywxLDAsImNkcy1pY29uIiw0KSxvdCgpLHJuKDcsb2NlLDEsMCwibmctY29udGVudCIsMCkscm4oOCxh''@;'; put 'put ''Y2UsMSwwLCJuZy1jb250ZW50IiwwKSxybig5LGxjZSwxLDAsIm5nLWNvbnRlbnQiLDApLG90KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIiwhdi5sYWJlbCYmdi5hZGRHcmlkKCkpLHV0KDEpLFR0KCJuZ0NsYXNzIix2LmNvbnRyb2xDbGFzcygpKSx1dCgzKSxUdCgibmdJZiIsdi5zaG93SW52''@;'; put 'put ''YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SGVscGVyKSx1dCgxKSxUdCgibmdJZiIsdi5zaG93SW52YWxpZCksdXQoMSksVHQoIm5nSWYiLHYuc2hvd1ZhbGlkKSl9LGRlcGVuZGVuY2llczpbTm8sYXQsbGMsWm9dLGVuY2Fwc3VsYXRp''@;'; put 'put ''b246Mn0pLGR9KSgpLHlPZT0oKCk9PntjbGFzcyBkIGV4dGVuZHMgU257Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoLFVBZSx2LHksQyxJKSx0aGlzLmluZGV4PTF9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFVpKSxLdChTcyksS3Qo''@;'; put 'put ''RGYsMTApLEt0KEdhKSxLdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJUZXh0YXJlYSIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNsci10ZXh0YXJlYSIsITApfSxmZWF0dXJlczpbRG9dfSksZH0p''@;'; put 'put ''KCksd09lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtocy5hZGRJY29ucyhLaCxUZil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSx0ZCxEcyxK''@;'; put 'put ''cl0sSnJdfSksZH0pKCksUUFlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV0sSnIsVGEsWUxlLGZPZSxQQWUscE9lLG1PZSxB''@;'; put 'put ''T2Usd09lLHZPZSxVTGVdfSksZH0pKCksZjQ9KCgpPT57Y2xhc3MgZHt1c2VyRGVmaW5lZFdpZHRoKGgpe2guY2xhc3NMaXN0LmFkZCgiZGF0YWdyaWQtY2VsbC13aWR0aC16ZXJvIik7Y29uc3Qgdj10aGlzLmNsaWVudFJlY3QoaCkud2lkdGg7cmV0dXJuIGguY2xhc3NMaXN0LnJlbW92ZSgi''@;'; put 'put ''ZGF0YWdyaWQtY2VsbC13aWR0aC16ZXJvIiksdn1zY3JvbGxCYXJXaWR0aChoKXtyZXR1cm4gaC5vZmZzZXRXaWR0aC1oLmNsaWVudFdpZHRofXNjcm9sbFdpZHRoKGgpe3JldHVybiBoLnNjcm9sbFdpZHRofHwwfWNvbXB1dGVkSGVpZ2h0KGgpe3JldHVybiBwYXJzZUludChnZXRDb21wdXRl''@;'; put 'put ''ZFN0eWxlKGgpLmdldFByb3BlcnR5VmFsdWUoImhlaWdodCIpLDEwKX1jbGllbnRSZWN0KGgpe2NvbnN0IHY9aC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm57dG9wOnBhcnNlSW50KHYudG9wLDEwKSxib3R0b206cGFyc2VJbnQodi5ib3R0b20sMTApLGxlZnQ6cGFyc2VJbnQodi5s''@;'; put 'put ''ZWZ0LDEwKSxyaWdodDpwYXJzZUludCh2LnJpZ2h0LDEwKSx3aWR0aDpwYXJzZUludCh2LndpZHRoLDEwKSxoZWlnaHQ6cGFyc2VJbnQodi5oZWlnaHQsMTApfX1taW5XaWR0aChoKXtyZXR1cm4gcGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShoKS5nZXRQcm9wZXJ0eVZhbHVlKCJtaW4td2lk''@;'; put 'put ''dGgiKSwxMCl9Zm9jdXMoaCl7aC5mb2N1cygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxmcT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7''@;'; put 'put ''dGhpcy5lbGVtZW50PWgsdGhpcy5kb21BZGFwdGVyPXYsdGhpcy5zdGFydEhlaWdodD0wfWdldCBleHBhbmRBbmltYXRpb24oKXtyZXR1cm57dmFsdWU6dGhpcy5jbHJFeHBhbmRUcmlnZ2VyLHBhcmFtczp7c3RhcnRIZWlnaHQ6dGhpcy5zdGFydEhlaWdodH19fWFuaW1hdGlvbkRvbmUoKXt0''@;'; put 'put ''aGlzLnVwZGF0ZVN0YXJ0SGVpZ2h0KCl9dXBkYXRlU3RhcnRIZWlnaHQoKXt0aGlzLnN0YXJ0SGVpZ2h0PXRoaXMuZG9tQWRhcHRlci5jb21wdXRlZEhlaWdodCh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCl8fDB9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; put 'put ''KGh8fGQpKEt0KGJvKSxLdChmNCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZXhwYW5kYWJsZS1hbmltYXRpb24iXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJk5fKCJAZXhwYW5kQW5pbWF0aW9uLmRvbmUiLGZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIHYuYW5pbWF0aW9uRG9uZSgpfSksMiZoJiZDNSgiQGV4cGFuZEFuaW1hdGlvbiIsdi5leHBhbmRBbmltYXRpb24pfSxpbnB1dHM6e2NsckV4cGFuZFRyaWdnZXI6ImNsckV4cGFuZFRyaWdnZXIifSxmZWF0dXJlczpbaG8oW2Y0XSldLG5nQ29udGVudFNlbGVjdG9yczpuYSxk''@;'; put 'put ''ZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il0sZGF0YTp7YW5pbWF0aW9uOlskaCgiZXhwYW5kQW5pbWF0aW9uIixbYnUoInRydWUgPD0+IGZhbHNlIixbeWwoe2hl''@;'; put 'put ''aWdodDoie3tzdGFydEhlaWdodH19cHgiLG92ZXJmbG93OiJoaWRkZW4ifSksRGMoIjAuMnMgZWFzZS1pbi1vdXQiLHlsKHtoZWlnaHQ6IioifSkpXSldKV19fSksZH0pKCksSkFlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQp''@;'; put 'put ''fSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCk7dmFyIGhoPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5EUkFHX1NUQVJUPTBdPSJEUkFHX1NUQVJUIixkW2QuRFJBR19NT1ZFPTFdPSJEUkFHX01PVkUiLGRbZC5EUkFHX0VORD0y''@;'; put 'put ''XT0iRFJBR19FTkQiLGRbZC5EUkFHX0VOVEVSPTNdPSJEUkFHX0VOVEVSIixkW2QuRFJBR19MRUFWRT00XT0iRFJBR19MRUFWRSIsZFtkLkRST1A9NV09IkRST1AifShoaHx8KGhoPXt9KSksaGgpKSgpO2xldCBYQWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuZHJhZ1N0YXJ0''@;'; put 'put ''PW5ldyAkZSx0aGlzLmRyYWdNb3ZlPW5ldyAkZSx0aGlzLmRyYWdFbmQ9bmV3ICRlLHRoaXMuZHJvcD1uZXcgJGV9Z2V0IGRyYWdTdGFydGVkKCl7cmV0dXJuIHRoaXMuZHJhZ1N0YXJ0LmFzT2JzZXJ2YWJsZSgpfWdldCBkcmFnTW92ZWQoKXtyZXR1cm4gdGhpcy5kcmFnTW92ZS5hc09ic2Vy''@;'; put 'put ''dmFibGUoKX1nZXQgZHJhZ0VuZGVkKCl7cmV0dXJuIHRoaXMuZHJhZ0VuZC5hc09ic2VydmFibGUoKX1nZXQgZHJvcHBlZCgpe3JldHVybiB0aGlzLmRyb3AuYXNPYnNlcnZhYmxlKCl9YnJvYWRjYXN0KGgpe3N3aXRjaChoLnR5cGUpe2Nhc2UgaGguRFJBR19TVEFSVDp0aGlzLmRyYWdTdGFy''@;'; put 'put ''dC5uZXh0KGgpO2JyZWFrO2Nhc2UgaGguRFJBR19NT1ZFOnRoaXMuZHJhZ01vdmUubmV4dChoKTticmVhaztjYXNlIGhoLkRSQUdfRU5EOnRoaXMuZHJhZ0VuZC5uZXh0KGgpO2JyZWFrO2Nhc2UgaGguRFJPUDp0aGlzLmRyb3AubmV4dChoKX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpLGFaPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMubmdab25lPWgsdGhpcy5yZW5kZXJlcj12LHRoaXMu''@;'; put 'put ''ZXZlbnRCdXM9eSx0aGlzLmxpc3RlbmVycz1bXSx0aGlzLmRyYWdTdGFydD1uZXcgJGUsdGhpcy5kcmFnTW92ZT1uZXcgJGUsdGhpcy5kcmFnRW5kPW5ldyAkZSx0aGlzLmhhc0RyYWdTdGFydGVkPSExLHRoaXMuZHJhZ1N0YXJ0RGVsYXk9MH1nZXQgZHJhZ1N0YXJ0ZWQoKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5kcmFnU3RhcnQuYXNPYnNlcnZhYmxlKCl9Z2V0IGRyYWdNb3ZlZCgpe3JldHVybiB0aGlzLmRyYWdNb3ZlLmFzT2JzZXJ2YWJsZSgpfWdldCBkcmFnRW5kZWQoKXtyZXR1cm4gdGhpcy5kcmFnRW5kLmFzT2JzZXJ2YWJsZSgpfWdldCBkcmFnU3RhcnRQb3NpdGlvbigpe3JldHVybiB0aGlz''@;'; put 'put ''LmluaXRpYWxQb3NpdGlvbn1hdHRhY2hEcmFnTGlzdGVuZXJzKGgpe3RoaXMuZHJhZ2dhYmxlRWw9aCx0aGlzLmxpc3RlbmVycy5wdXNoKHRoaXMuY3VzdG9tRHJhZ0V2ZW50KHRoaXMuZHJhZ2dhYmxlRWwsIm1vdXNlZG93biIsIm1vdXNlbW92ZSIsIm1vdXNldXAiKSksdGhpcy5saXN0ZW5l''@;'; put 'put ''cnMucHVzaCh0aGlzLmN1c3RvbURyYWdFdmVudCh0aGlzLmRyYWdnYWJsZUVsLCJ0b3VjaHN0YXJ0IiwidG91Y2htb3ZlIiwidG91Y2hlbmQiKSl9ZGV0YWNoRHJhZ0xpc3RlbmVycygpe3RoaXMubGlzdGVuZXJzJiZ0aGlzLmxpc3RlbmVycy5tYXAoaD0+aCgpKSx0aGlzLm5lc3RlZExpc3Rl''@;'; put 'put ''bmVycyYmdGhpcy5uZXN0ZWRMaXN0ZW5lcnMubWFwKGg9PmgoKSksdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXImJnRoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyKCl9Z2V0TmF0aXZlRXZlbnRPYmplY3QoaCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFz''@;'; put 'put ''T3duUHJvcGVydHkuY2FsbChoLCJjaGFuZ2VkVG91Y2hlcyIpP2guY2hhbmdlZFRvdWNoZXNbMF06aH1jdXN0b21EcmFnRXZlbnQoaCx2LHksQyl7cmV0dXJuIHRoaXMucmVuZGVyZXIubGlzdGVuKGgsdixJPT57dGhpcy5pbml0aWFsUG9zaXRpb249e3BhZ2VYOnRoaXMuZ2V0TmF0aXZlRXZl''@;'; put 'put ''bnRPYmplY3QoSSkucGFnZVgscGFnZVk6dGhpcy5nZXROYXRpdmVFdmVudE9iamVjdChJKS5wYWdlWX0sdGhpcy5uZXN0ZWRMaXN0ZW5lcnM9W10sdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLm5lc3RlZExpc3RlbmVycy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVu''@;'; put 'put ''KCJkb2N1bWVudCIsInNlbGVjdHN0YXJ0IixaPT57Wi5wcmV2ZW50RGVmYXVsdCgpLFouc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCl9KSksdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5KHkpLHRoaXMuZHJhZ1N0YXJ0RGVsYXlUaW1lb3V0PXNldFRpbWVvdXQoKCk9Pnt0aGlzLmNoZWNr''@;'; put 'put ''RHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lciYmdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXIoKSx0aGlzLmhhc0RyYWdTdGFydGVkPSEwLHRoaXMuYnJvYWRjYXN0KEksaGguRFJBR19TVEFSVCksdGhpcy5uZXN0ZWRMaXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rl''@;'; put 'put ''bigiZG9jdW1lbnQiLHksWj0+e1ouc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5oYXNEcmFnU3RhcnRlZCYmdGhpcy5icm9hZGNhc3QoWixoaC5EUkFHX01PVkUpfSkpfSx0aGlzLmRyYWdTdGFydERlbGF5KX0pLHRoaXMubmVzdGVkTGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJl''@;'; put 'put ''ci5saXN0ZW4oImRvY3VtZW50IixDLFo9Pnt0aGlzLmhhc0RyYWdTdGFydGVkJiYodGhpcy5oYXNEcmFnU3RhcnRlZD0hMSx0aGlzLmJyb2FkY2FzdChaLGhoLkRSQUdfRU5EKSksY2xlYXJUaW1lb3V0KHRoaXMuZHJhZ1N0YXJ0RGVsYXlUaW1lb3V0KSx0aGlzLm5lc3RlZExpc3RlbmVycy5t''@;'; put 'put ''YXAodWU9PnVlKCkpLHRoaXMuY2hlY2tEcmFnU3RhcnRCb3VuZGFyeUxpc3RlbmVyJiZ0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lcigpfSkpfSl9Y2hlY2tEcmFnU3RhcnRCb3VuZGFyeShoKXt0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lcj10aGlzLnJlbmRl''@;'; put 'put ''cmVyLmxpc3RlbigiZG9jdW1lbnQiLGgsdj0+e2NvbnN0IHk9TWF0aC5hYnModGhpcy5nZXROYXRpdmVFdmVudE9iamVjdCh2KS5wYWdlWC10aGlzLmluaXRpYWxQb3NpdGlvbi5wYWdlWCksQz1NYXRoLmFicyh0aGlzLmdldE5hdGl2ZUV2ZW50T2JqZWN0KHYpLnBhZ2VZLXRoaXMuaW5pdGlh''@;'; put 'put ''bFBvc2l0aW9uLnBhZ2VZKTsoeT4xfHxDPjEpJiYoY2xlYXJUaW1lb3V0KHRoaXMuZHJhZ1N0YXJ0RGVsYXlUaW1lb3V0KSx0aGlzLmNoZWNrRHJhZ1N0YXJ0Qm91bmRhcnlMaXN0ZW5lciYmdGhpcy5jaGVja0RyYWdTdGFydEJvdW5kYXJ5TGlzdGVuZXIoKSl9KX1icm9hZGNhc3QoaCx2KXtj''@;'; put 'put ''b25zdCB5PXRoaXMuZ2VuZXJhdGVEcmFnRXZlbnQoaCx2KTtzd2l0Y2goeS50eXBlKXtjYXNlIGhoLkRSQUdfU1RBUlQ6dGhpcy5kcmFnU3RhcnQubmV4dCh5KTticmVhaztjYXNlIGhoLkRSQUdfTU9WRTp0aGlzLmRyYWdNb3ZlLm5leHQoeSk7YnJlYWs7Y2FzZSBoaC5EUkFHX0VORDp0aGlz''@;'; put 'put ''LmRyYWdFbmQubmV4dCh5KX15Lmdob3N0RWxlbWVudD10aGlzLmdob3N0RWxlbWVudCx5LmRyb3BQb2ludFBvc2l0aW9uPXRoaXMuZHJvcFBvaW50UG9zaXRpb24sdGhpcy5ldmVudEJ1cy5icm9hZGNhc3QoeSl9Z2VuZXJhdGVEcmFnRXZlbnQoaCx2KXtjb25zdCB5PXRoaXMuZ2V0TmF0aXZl''@;'; put 'put ''RXZlbnRPYmplY3QoaCk7cmV0dXJue3R5cGU6dixkcmFnUG9zaXRpb246e3BhZ2VYOnkucGFnZVgscGFnZVk6eS5wYWdlWSxtb3ZlWDp5LnBhZ2VYLXRoaXMuaW5pdGlhbFBvc2l0aW9uLnBhZ2VYLG1vdmVZOnkucGFnZVktdGhpcy5pbml0aWFsUG9zaXRpb24ucGFnZVl9LGdyb3VwOnRoaXMu''@;'; put 'put ''Z3JvdXAsZHJhZ0RhdGFUcmFuc2Zlcjp0aGlzLmRyYWdEYXRhVHJhbnNmZXIsZ2hvc3RFbGVtZW50OnRoaXMuZ2hvc3RFbGVtZW50fX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koX2wpLENpKEdhKSxDaShYQWUpKX0sZC5cdTAyNzVwcm92PUFp''@;'; put 'put ''KHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxMZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXI9aCx0aGlzLnJlbmRlcmVyPXZ9Z2V0IGRlZmF1bHRIYW5kbGVFbCgpe3JldHVybiB0aGlzLl9kZWZhdWx0SGFuZGxlRWx9''@;'; put 'put ''c2V0IGRlZmF1bHRIYW5kbGVFbChoKXt0aGlzLl9kZWZhdWx0SGFuZGxlRWw9aCx0aGlzLl9jdXN0b21IYW5kbGVFbHx8dGhpcy5tYWtlRWxlbWVudEhhbmRsZSh0aGlzLl9kZWZhdWx0SGFuZGxlRWwpfW1ha2VFbGVtZW50SGFuZGxlKGgpe3RoaXMuX2RlZmF1bHRIYW5kbGVFbCYmdGhpcy5f''@;'; put 'put ''ZGVmYXVsdEhhbmRsZUVsIT09aCYmdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9kZWZhdWx0SGFuZGxlRWwsImRyYWctaGFuZGxlIiksdGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5hdHRhY2hEcmFnTGlzdGVuZXJzKGgpLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaCwiZHJhZy1oYW5k''@;'; put 'put ''bGUiKX1nZXQgY3VzdG9tSGFuZGxlRWwoKXtyZXR1cm4gdGhpcy5fY3VzdG9tSGFuZGxlRWx9cmVnaXN0ZXJDdXN0b21IYW5kbGUoaCl7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kZXRhY2hEcmFnTGlzdGVuZXJzKCksdGhpcy5fY3VzdG9tSGFuZGxlRWw9aCx0aGlzLm1ha2VFbGVtZW50SGFu''@;'; put 'put ''ZGxlKHRoaXMuX2N1c3RvbUhhbmRsZUVsKX11bnJlZ2lzdGVyQ3VzdG9tSGFuZGxlKCl7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kZXRhY2hEcmFnTGlzdGVuZXJzKCksdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9jdXN0b21IYW5kbGVFbCwiZHJhZy1oYW5kbGUiKSxkZWxldGUg''@;'; put 'put ''dGhpcy5fY3VzdG9tSGFuZGxlRWwsdGhpcy5fZGVmYXVsdEhhbmRsZUVsJiZ0aGlzLm1ha2VFbGVtZW50SGFuZGxlKHRoaXMuX2RlZmF1bHRIYW5kbGVFbCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGFaKSxDaShHYSkpfSxkLlx1MDI3NXBy''@;'; put 'put ''b3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLE9mZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuZG9tQWRhcHRlcj1ofWNhcHR1cmUoaCx2KXt0aGlzLmRyYWdnYWJsZUVsQ2xpZW50UmVjdD10aGlzLmRvbUFkYXB0ZXIuY2xpZW50UmVjdChoKSx0''@;'; put 'put ''aGlzLnNuYXBzaG90RHJhZ0V2ZW50PXZ9ZGlzY2FyZCgpe2RlbGV0ZSB0aGlzLmRyYWdnYWJsZUVsQ2xpZW50UmVjdCxkZWxldGUgdGhpcy5zbmFwc2hvdERyYWdFdmVudH1nZXQgaGFzRHJhZ2dhYmxlU3RhdGUoKXtyZXR1cm4hIXRoaXMuc25hcHNob3REcmFnRXZlbnQmJiEhdGhpcy5kcmFn''@;'; put 'put ''Z2FibGVFbENsaWVudFJlY3R9Z2V0IGNsaWVudFJlY3QoKXtyZXR1cm4gdGhpcy5kcmFnZ2FibGVFbENsaWVudFJlY3R9Z2V0IGRyYWdFdmVudCgpe3JldHVybiB0aGlzLnNuYXBzaG90RHJhZ0V2ZW50fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShD''@;'; put 'put ''aShmNCkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEtBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7aWYodGhpcy5lbD1oLHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXI9dix0aGlzLmRyYWdnYWJsZVNuYXBzaG90PXks''@;'; put 'put ''dGhpcy5yZW5kZXJlcj1DLHRoaXMubmdab25lPUksdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMubGVhdmVBbmltQ29uZmlnPXt2YWx1ZTowLHBhcmFtczp7dG9wOiIwcHgiLGxlZnQ6IjBweCJ9fSwhdGhpcy5kcmFnRXZlbnRMaXN0ZW5lcnx8IXRoaXMuZHJhZ2dhYmxlU25hcHNob3QpdGhy''@;'; put 'put ''b3cgbmV3IEVycm9yKCJUaGUgY2xyLWRyYWdnYWJsZS1naG9zdCBjb21wb25lbnQgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHJEcmFnZ2FibGUgZGlyZWN0aXZlLiIpO3RoaXMuZHJhZ2dhYmxlR2hvc3RFbD10aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5yZW5kZXJlci5hZGRD''@;'; put 'put ''bGFzcyh0aGlzLmRyYWdnYWJsZUdob3N0RWwsImRyYWdnYWJsZS1naG9zdCIpLHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZ2hvc3RFbGVtZW50PXRoaXMuZHJhZ2dhYmxlR2hvc3RFbCx0aGlzLnNldERlZmF1bHRHaG9zdFNpemUodGhpcy5kcmFnZ2FibGVHaG9zdEVsKTtjb25zdCBaPXt0b3A6''@;'; put 'put ''dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5oYXNEcmFnZ2FibGVTdGF0ZT90aGlzLmRyYWdnYWJsZVNuYXBzaG90LmRyYWdFdmVudC5kcmFnUG9zaXRpb24ucGFnZVktdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LnRvcDowLGxlZnQ6dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5oYXNE''@;'; put 'put ''cmFnZ2FibGVTdGF0ZT90aGlzLmRyYWdnYWJsZVNuYXBzaG90LmRyYWdFdmVudC5kcmFnUG9zaXRpb24ucGFnZVgtdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LmxlZnQ6MH07bGV0IHVlPSExO3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIu''@;'; put 'put ''ZHJhZ01vdmVkLnN1YnNjcmliZShfZT0+e3VlfHwodGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5oYXNEcmFnZ2FibGVTdGF0ZT90aGlzLmFuaW1hdGVUb09uTGVhdmUoYCR7dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LnRvcH1weGAsYCR7dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5j''@;'; put 'put ''bGllbnRSZWN0LmxlZnR9cHhgKTp0aGlzLmFuaW1hdGVUb09uTGVhdmUoYCR7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnRQb3NpdGlvbi5wYWdlWX1weGAsYCR7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnRQb3NpdGlvbi5wYWdlWX1weGApLHVlPSEwKTtjb25zdCBC''@;'; put 'put ''ZT10aGlzLmZpbmRUb3BMZWZ0UG9zaXRpb24oX2UuZHJhZ1Bvc2l0aW9uLFopO3RoaXMuc2V0UG9zaXRpb25TdHlsZSh0aGlzLmRyYWdnYWJsZUdob3N0RWwsQmUucGFnZVgsQmUucGFnZVkpLHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJvcFBvaW50UG9zaXRpb249dGhpcy5maW5kRHJvcFBv''@;'; put 'put ''aW50UG9zaXRpb24oQmUpfSkpfXNldERlZmF1bHRHaG9zdFNpemUoaCl7dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5oYXNEcmFnZ2FibGVTdGF0ZSYmdGhpcy5zZXRTaXplU3R5bGUoaCx0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3Qud2lkdGgsdGhpcy5kcmFnZ2FibGVTbmFwc2hv''@;'; put 'put ''dC5jbGllbnRSZWN0LmhlaWdodCl9YW5pbWF0ZVRvT25MZWF2ZShoLHYpe3RoaXMubmdab25lLnJ1bigoKT0+e3RoaXMubGVhdmVBbmltQ29uZmlnPXt2YWx1ZTowLHBhcmFtczp7dG9wOmgsbGVmdDp2fX19KX1maW5kVG9wTGVmdFBvc2l0aW9uKGgsdil7cmV0dXJue3BhZ2VYOmgucGFnZVgt''@;'; put 'put ''di5sZWZ0LHBhZ2VZOmgucGFnZVktdi50b3B9fWZpbmREcm9wUG9pbnRQb3NpdGlvbihoKXtyZXR1cm4gdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5oYXNEcmFnZ2FibGVTdGF0ZT97cGFnZVg6aC5wYWdlWCt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3Qud2lkdGgvMixwYWdlWTpo''@;'; put 'put ''LnBhZ2VZK3RoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC5oZWlnaHQvMn06aH1zZXRTaXplU3R5bGUoaCx2LHkpe3RoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwid2lkdGgiLGAke3Z9cHhgKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGgsImhlaWdodCIsYCR7eX1weGApfXNldFBv''@;'; put 'put ''c2l0aW9uU3R5bGUoaCx2LHkpe3RoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwibGVmdCIsYCR7dn1weGApLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaCwidG9wIixgJHt5fXB4YCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZShoLCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpfW5nT25EZXN0cm95KCl7''@;'; put 'put ''dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KGFaLDgpLEt0KE9mZSw4KSxLdChHYSksS3QoX2wpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxl''@;'; put 'put ''Y3RvcnM6W1siY2xyLWRyYWdnYWJsZS1naG9zdCJdXSxob3N0VmFyczoxLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmQzUoIkBsZWF2ZUFuaW1hdGlvbiIsdi5sZWF2ZUFuaW1Db25maWcpfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVu''@;'; put 'put ''Y3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyLGRhdGE6e2FuaW1hdGlvbjpbJGgoImxlYXZlQW5pbWF0aW9uIixbYnUoIjpsZWF2ZSIsW3lsKHtsZWZ0OiIqIix0b3A6IioifSksRGMoIjAuMnMgZWFzZS1pbi1vdXQiLHlsKHt0b3A6Int7dG9wfX0iLGxlZnQ6''@;'; put 'put ''Int7bGVmdH19In0pKV0pXSldfX0pLGR9KSgpO2NsYXNzIG12e2NvbnN0cnVjdG9yKGcpe3RoaXMuZHJhZ1Bvc2l0aW9uPWcuZHJhZ1Bvc2l0aW9uLHRoaXMuZ3JvdXA9Zy5ncm91cCx0aGlzLmRyYWdEYXRhVHJhbnNmZXI9Zy5kcmFnRGF0YVRyYW5zZmVyLHRoaXMuZHJvcFBvaW50UG9zaXRp''@;'; put 'put ''b249Zy5kcm9wUG9pbnRQb3NpdGlvbn19bGV0ICRBZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXtpZih0aGlzLnRlbXBsYXRlPWgsdGhpcy5jb250YWluZXI9dix0aGlzLmRyYWdFdmVudExpc3RlbmVyPXksdGhpcy5zdWJzY3JpcHRpb25zPVtdLCF0aGlzLmRyYWdFdmVudExp''@;'; put 'put ''c3RlbmVyfHwhdGhpcy5jb250YWluZXIpdGhyb3cgbmV3IEVycm9yKCJUaGUgKmNscklmRHJhZ2dlZCBkaXJlY3RpdmUgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHJEcmFnZ2FibGUgZGlyZWN0aXZlLiIpO3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlz''@;'; put 'put ''dGVuZXIuZHJhZ1N0YXJ0ZWQuc3Vic2NyaWJlKCgpPT57dGhpcy5jb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGUpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ0VuZGVkLnN1YnNjcmliZSgoKT0+e3RoaXMuY29u''@;'; put 'put ''dGFpbmVyLmNsZWFyKCl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChxciksS3QoVWksMTIpLEt0KGFaLDgpKX0sZC5cdTAyNzVk''@;'; put 'put ''aXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xySWZEcmFnZ2VkIiwiIl1dfSksZH0pKCkscUFlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5yZW5kZXJlcj1ofWVudGVyKCl7dGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCJpbi1kcmFnIil9ZXhp''@;'; put 'put ''dCgpe3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwiaW4tZHJhZyIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShHYSkpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgp''@;'; put 'put ''LGV5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxaLHVlLF9lKXt0aGlzLmVsPWgsdGhpcy5kcmFnRXZlbnRMaXN0ZW5lcj12LHRoaXMuZHJhZ0hhbmRsZVJlZ2lzdHJhcj15LHRoaXMudmlld0NvbnRhaW5lclJlZj1DLHRoaXMuY2ZyPUksdGhpcy5pbmplY3Rvcj1aLHRo''@;'; put 'put ''aXMuZHJhZ2dhYmxlU25hcHNob3Q9dWUsdGhpcy5nbG9iYWxEcmFnTW9kZT1fZSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5kcmFnT249ITEsdGhpcy5kcmFnU3RhcnRFbWl0dGVyPW5ldyBhcix0aGlzLmRyYWdNb3ZlRW1pdHRlcj1uZXcgYXIsdGhpcy5kcmFnRW5kRW1pdHRlcj1uZXcg''@;'; put 'put ''YXIsdGhpcy5kcmFnZ2FibGVFbD10aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5jb21wb25lbnRGYWN0b3J5PXRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEtBZSl9c2V0IGRhdGFUcmFuc2ZlcihoKXt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdEYXRhVHJhbnNmZXI9aH1z''@;'; put 'put ''ZXQgZ3JvdXAoaCl7dGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5ncm91cD1ofXNldCBkcmFnU3RhcnREZWxheShoKXsibnVtYmVyIj09dHlwZW9mIGg/dGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnU3RhcnREZWxheT1oOiJzdHJpbmciPT10eXBlb2YgaCYmKHRoaXMuZHJhZ0V2ZW50TGlzdGVu''@;'; put 'put ''ZXIuZHJhZ1N0YXJ0RGVsYXk9cGFyc2VJbnQoaCwxMCl8fDApfWNyZWF0ZURlZmF1bHRHaG9zdChoKXt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNhcHR1cmUodGhpcy5kcmFnZ2FibGVFbCxoKSx0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHRoaXMuY29tcG9uZW50RmFj''@;'; put 'put ''dG9yeSwwLHRoaXMuaW5qZWN0b3IsW1t0aGlzLmRyYWdnYWJsZUVsLmNsb25lTm9kZSghMCldXSl9ZGVzdHJveURlZmF1bHRHaG9zdCgpe3RoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpLHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuZGlzY2FyZCgpfW5nQWZ0ZXJDb250ZW50SW5pdCgpe3Ro''@;'; put 'put ''aXMuZHJhZ0hhbmRsZVJlZ2lzdHJhci5kZWZhdWx0SGFuZGxlRWw9dGhpcy5kcmFnZ2FibGVFbCx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydGVkLnN1YnNjcmliZShoPT57dGhpcy5nbG9iYWxEcmFnTW9kZS5lbnRlcigpLHRoaXMuZHJh''@;'; put 'put ''Z09uPSEwLHRoaXMuY3VzdG9tR2hvc3R8fHRoaXMuY3JlYXRlRGVmYXVsdEdob3N0KGgpLHRoaXMuZHJhZ1N0YXJ0RW1pdHRlci5lbWl0KG5ldyBtdihoKSl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnTW92ZWQuc3Vic2NyaWJlKGg9Pnt0''@;'; put 'put ''aGlzLmRyYWdNb3ZlRW1pdHRlci5lbWl0KG5ldyBtdihoKSl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kcmFnRW5kZWQuc3Vic2NyaWJlKGg9Pnt0aGlzLmdsb2JhbERyYWdNb2RlLmV4aXQoKSx0aGlzLmRyYWdPbj0hMSx0aGlzLmN1c3RvbUdo''@;'; put 'put ''b3N0fHx0aGlzLmRlc3Ryb3lEZWZhdWx0R2hvc3QoKSx0aGlzLmRyYWdFbmRFbWl0dGVyLmVtaXQobmV3IG12KGgpKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSksdGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5kZXRhY2hEcmFn''@;'; put 'put ''TGlzdGVuZXJzKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSxLdChhWiksS3QoTGZlKSxLdChVaSksS3QoU2QpLEt0KFNzKSxLdChPZmUpLEt0KHFBZSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJE''@;'; put 'put ''cmFnZ2FibGUiLCIiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSwkQWUsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5jdXN0b21HaG9zdD1DLmZpcnN0KX19LGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZHJh''@;'; put 'put ''Z2dhYmxlIiwhMCkoImJlaW5nLWRyYWdnZWQiLHYuZHJhZ09uKX0saW5wdXRzOntkYXRhVHJhbnNmZXI6WyJjbHJEcmFnZ2FibGUiLCJkYXRhVHJhbnNmZXIiXSxncm91cDpbImNsckdyb3VwIiwiZ3JvdXAiXSxkcmFnU3RhcnREZWxheTpbImNsckRyYWdTdGFydERlbGF5IiwiZHJhZ1N0YXJ0''@;'; put 'put ''RGVsYXkiXX0sb3V0cHV0czp7ZHJhZ1N0YXJ0RW1pdHRlcjoiY2xyRHJhZ1N0YXJ0IixkcmFnTW92ZUVtaXR0ZXI6ImNsckRyYWdNb3ZlIixkcmFnRW5kRW1pdHRlcjoiY2xyRHJhZ0VuZCJ9LGZlYXR1cmVzOltobyhbYVosTGZlLE9mZSxxQWUsZjRdKV19KSxkfSkoKSx0eWU9KCgpPT57Y2xh''@;'; put 'put ''c3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhXV19KSxkfSkoKTtjb25zdCBueWU9bmV3IHplKCJGT0NVU19PTl9WSUVXX0lOSVQiKSxfT2U9e3By''@;'; put 'put ''b3ZpZGU6bnllLHVzZVZhbHVlOiEwfTtsZXQgUmZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMuZWw9aCx0aGlzLnBsYXRmb3JtSWQ9dix0aGlzLmZvY3VzT25WaWV3SW5pdD15LHRoaXMucmVuZGVyZXI9SSx0aGlzLmRlc3Ryb3kkPW5ldyAkZSx0aGlzLmRp''@;'; put 'put ''cmVjdEZvY3VzPSEwLHRoaXMuX2lzRW5hYmxlZD10aGlzLmZvY3VzT25WaWV3SW5pdCx0aGlzLmRvY3VtZW50PUMsWi5ydW5PdXRzaWRlQW5ndWxhcigoKT0+dDgoaC5uYXRpdmVFbGVtZW50LCJmb2N1c291dCIpLnBpcGUoajcodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKT0+e3RoaXMu''@;'; put 'put ''ZGlyZWN0Rm9jdXN8fCh0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4IiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIm91dGxpbmUiLG51bGwpKX0pKX1zZXQgaXNFbmFibGVkKGgpe3RoaXMu''@;'; put 'put ''Zm9jdXNPblZpZXdJbml0JiYiYm9vbGVhbiI9PXR5cGVvZiBoJiYodGhpcy5faXNFbmFibGVkPWgpfW5nQWZ0ZXJWaWV3SW5pdCgpe3RoaXMuZm9jdXMoKX1uZ09uRGVzdHJveSgpe3RoaXMuZGVzdHJveSQubmV4dCgpfWZvY3VzKCl7IVNsKHRoaXMucGxhdGZvcm1JZCl8fCF0aGlzLl9pc0Vu''@;'; put 'put ''YWJsZWR8fHRoaXMuZG9jdW1lbnQmJnRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXRoaXMuZWwubmF0aXZlRWxlbWVudCYmKHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXRoaXMuZWwubmF0aXZlRWxlbWVudCYmKHRoaXMu''@;'; put 'put ''ZGlyZWN0Rm9jdXM9ITEsdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIsIi0xIiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIm91dGxpbmUiLCJub25lIiksdGhpcy5lbC5uYXRpdmVFbGVtZW50''@;'; put 'put ''LmZvY3VzKCkpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KEwyKSxLdChueWUpLEt0KGdzKSxLdChHYSksS3QoX2wpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyRm9jdXNPblZpZXdJbml0Iiwi''@;'; put 'put ''Il1dLGlucHV0czp7aXNFbmFibGVkOlsiY2xyRm9jdXNPblZpZXdJbml0IiwiaXNFbmFibGVkIl19fSksZH0pKCksZlM9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3''@;'; put 'put ''NWluaj1iMCh7cHJvdmlkZXJzOltfT2VdLGltcG9ydHM6W1tiYV1dfSksZH0pKCksQmZlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6''@;'; put 'put ''W1tiYV1dfSksZH0pKCksQ09lPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV1dfSksZH0pKCk7Y2xhc3MgaHF7fWxldCBsWj0o''@;'; put 'put ''KCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY2hhbmdlPW5ldyAkZSx0aGlzLm5iQ2hhbmdlcz0wfWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWNoYW5nZVN0YXJ0KCl7dGhpcy5uYkNoYW5nZXMrK31jaGFuZ2VEb25lKCl7MD09LS10aGlz''@;'; put 'put ''Lm5iQ2hhbmdlcyYmdGhpcy5fY2hhbmdlLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksZHc9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvciho''@;'; put 'put ''KXt0aGlzLnN0YXRlRGVib3VuY2VyPWgsdGhpcy5wcmV2ZW50RW1pdD0hMSx0aGlzLmFjdGl2YXRlZD0hMSx0aGlzLl9zaXplPTAsdGhpcy5fY2hhbmdlPW5ldyAkZSx0aGlzLl9zaXplQ2hhbmdlPW5ldyAkZSx0aGlzLl9jdXJyZW50PTF9Z2V0IHNpemUoKXtyZXR1cm4gdGhpcy5fc2l6ZX1z''@;'; put 'put ''ZXQgc2l6ZShoKXtjb25zdCB2PXRoaXMuX3NpemU7aCE9PXYmJih0aGlzLnByZXZlbnRFbWl0fHx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZVN0YXJ0KCksdGhpcy5fc2l6ZT1oLHRoaXMuX2N1cnJlbnQ9MD09PWg/MTpNYXRoLmZsb29yKHYvaCoodGhpcy5fY3VycmVudC0xKSkrMSx0aGlz''@;'; put 'put ''LnByZXZlbnRFbWl0fHwodGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCksdGhpcy5fc2l6ZUNoYW5nZS5uZXh0KHRoaXMuX3NpemUpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9uZSgpKSksdGhpcy5wcmV2ZW50RW1pdD0hMX1nZXQgdG90YWxJdGVtcygpe3JldHVybiB0aGlz''@;'; put 'put ''Ll90b3RhbEl0ZW1zfHwwfXNldCB0b3RhbEl0ZW1zKGgpe3RoaXMuX3RvdGFsSXRlbXM9aCx0aGlzLmN1cnJlbnQ+dGhpcy5sYXN0JiYodGhpcy5jdXJyZW50PXRoaXMubGFzdCl9Z2V0IGxhc3QoKXtyZXR1cm4gdGhpcy5fbGFzdD90aGlzLl9sYXN0OnRoaXMuc2l6ZT4wJiZ0aGlzLnRvdGFs''@;'; put 'put ''SXRlbXM/TWF0aC5jZWlsKHRoaXMudG90YWxJdGVtcy90aGlzLnNpemUpOjF9c2V0IGxhc3QoaCl7dGhpcy5fbGFzdD1ofWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWdldCBzaXplQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX3NpemVDaGFuZ2UuYXNPYnNl''@;'; put 'put ''cnZhYmxlKCl9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVudChoKXtoIT09dGhpcy5fY3VycmVudCYmKHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9jdXJyZW50PWgsdGhpcy5fY2hhbmdlLm5leHQoaCksdGhpcy5zdGF0ZURlYm91''@;'; put 'put ''bmNlci5jaGFuZ2VEb25lKCkpfXByZXZpb3VzKCl7dGhpcy5jdXJyZW50PjEmJnRoaXMuY3VycmVudC0tfW5leHQoKXt0aGlzLmN1cnJlbnQ8dGhpcy5sYXN0JiZ0aGlzLmN1cnJlbnQrK31nZXQgZmlyc3RJdGVtKCl7cmV0dXJuIDA9PT10aGlzLl90b3RhbEl0ZW1zPy0xOjA9PT10aGlzLnNp''@;'; put 'put ''emU/MDoodGhpcy5jdXJyZW50LTEpKnRoaXMuc2l6ZX1nZXQgbGFzdEl0ZW0oKXtpZigwPT09dGhpcy5fdG90YWxJdGVtcylyZXR1cm4tMTtpZigwPT09dGhpcy5zaXplKXJldHVybiB0aGlzLnRvdGFsSXRlbXMtMTtsZXQgaD10aGlzLmN1cnJlbnQqdGhpcy5zaXplLTE7cmV0dXJuIHRoaXMu''@;'; put 'put ''dG90YWxJdGVtcyYmKGg9TWF0aC5taW4oaCx0aGlzLnRvdGFsSXRlbXMtMSkpLGh9cmVzZXRQYWdlU2l6ZShoPSExKXt0aGlzLnByZXZlbnRFbWl0PWgsdGhpcy5zaXplPTB9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGxaKSl9LGQuXHUwMjc1''@;'; put 'put ''cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksdnY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuX3BhZ2U9aCx0aGlzLnN0YXRlRGVib3VuY2VyPXYsdGhpcy5fY2hhbmdlPW5ldyAkZSx0aGlzLl9hbGw9W119Z2V0IGNoYW5nZSgpe3JldHVy''@;'; put 'put ''biB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9aGFzQWN0aXZlRmlsdGVycygpe2Zvcihjb25zdHtmaWx0ZXI6aH1vZiB0aGlzLl9hbGwpaWYoaCYmaC5pc0FjdGl2ZSgpKXJldHVybiEwO3JldHVybiExfWdldEFjdGl2ZUZpbHRlcnMoKXtjb25zdCBoPVtdO2Zvcihjb25zdHtmaWx0ZXI6''@;'; put 'put ''dn1vZiB0aGlzLl9hbGwpdiYmdi5pc0FjdGl2ZSgpJiZoLnB1c2godik7cmV0dXJuIGh9YWRkKGgpe2NvbnN0IHY9aC5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+dGhpcy5yZXNldFBhZ2VBbmRFbWl0RmlsdGVyQ2hhbmdlKFtoXSkpO2xldCB5PSExO2NvbnN0IEM9bmV3IGRxKGgsKCk9PntpZih5''@;'; put 'put ''KXJldHVybjt2LnVuc3Vic2NyaWJlKCk7Y29uc3QgST10aGlzLl9hbGwuZmluZEluZGV4KFo9PlouZmlsdGVyPT09aCk7ST49MCYmdGhpcy5fYWxsLnNwbGljZShJLDEpLGguaXNBY3RpdmUoKSYmdGhpcy5yZXNldFBhZ2VBbmRFbWl0RmlsdGVyQ2hhbmdlKFtdKSx5PSEwfSk7cmV0dXJuIHRo''@;'; put 'put ''aXMuX2FsbC5wdXNoKEMpLGguaXNBY3RpdmUoKSYmdGhpcy5yZXNldFBhZ2VBbmRFbWl0RmlsdGVyQ2hhbmdlKFtoXSksQ31hY2NlcHRzKGgpe2Zvcihjb25zdHtmaWx0ZXI6dn1vZiB0aGlzLl9hbGwpaWYodiYmdi5pc0FjdGl2ZSgpJiYhdi5hY2NlcHRzKGgpKXJldHVybiExO3JldHVybiEw''@;'; put 'put ''fXJlc2V0UGFnZUFuZEVtaXRGaWx0ZXJDaGFuZ2UoaCl7dGhpcy5zdGF0ZURlYm91bmNlci5jaGFuZ2VTdGFydCgpLHRoaXMuX3BhZ2UuY3VycmVudD0xLHRoaXMuX2NoYW5nZS5uZXh0KGgpLHRoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlRG9uZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVu''@;'; put 'put ''Y3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShkdyksQ2kobFopKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjbGFzcyBkcXtjb25zdHJ1Y3RvcihnLGgpe3RoaXMuZmlsdGVyPWcsdGhpcy51bnJlZ2lzdGVyPWh9fWxldCBwcT0oKCk9''@;'; put 'put ''PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuZmlsdGVycz1ofWdldCBmaWx0ZXIoKXtyZXR1cm4gdGhpcy5yZWdpc3RlcmVkJiZ0aGlzLnJlZ2lzdGVyZWQuZmlsdGVyfXNldEZpbHRlcihoKXt0aGlzLmRlbGV0ZUZpbHRlcigpLGggaW5zdGFuY2VvZiBkcT90aGlzLnJlZ2lzdGVyZWQ9''@;'; put 'put ''aDpoJiYodGhpcy5yZWdpc3RlcmVkPXRoaXMuZmlsdGVycy5hZGQoaCkpfWRlbGV0ZUZpbHRlcigpe3RoaXMucmVnaXN0ZXJlZCYmKHRoaXMucmVnaXN0ZXJlZC51bnJlZ2lzdGVyKCksZGVsZXRlIHRoaXMucmVnaXN0ZXJlZCl9bmdPbkRlc3Ryb3koKXt0aGlzLmRlbGV0ZUZpbHRlcigpfX1y''@;'; put 'put ''ZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh2dikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkfSksZH0pKCksc1o9KCgpPT57Y2xhc3MgZCBleHRlbmRzIHBxe2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7c3VwZXIoaCksdGhpcy5jb21tb25TdHJpbmdz''@;'; put 'put ''PXYsdGhpcy5zbWFydFRvZ2dsZVNlcnZpY2U9eSx0aGlzLnBsYXRmb3JtSWQ9Qyx0aGlzLnBvcG92ZXJJZD1JLHRoaXMuc3Vicz1bXSx0aGlzLmFyaWFFeHBhbmRlZD0hMSx0aGlzLnNtYXJ0UG9zaXRpb249e2F4aXM6JDEuVkVSVElDQUwsc2lkZTpsLkFGVEVSLGFuY2hvcjpfby5FTkQsY29u''@;'; put 'put ''dGVudDpfby5FTkR9LHRoaXMuX29wZW49ITEsdGhpcy5vcGVuQ2hhbmdlPW5ldyBhcighMSksdGhpcy5zdWJzLnB1c2goeS5vcGVuQ2hhbmdlLnN1YnNjcmliZShaPT57dGhpcy5vcGVuPVosdGhpcy5hcmlhRXhwYW5kZWQ9Wn0pKX1nZXQgb3Blbigpe3JldHVybiB0aGlzLl9vcGVufXNldCBv''@;'; put 'put ''cGVuKGgpe3RoaXMub3BlbiE9PShoPSEhaCkmJih0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZS5vcGVuPWgsdGhpcy5vcGVuQ2hhbmdlLmVtaXQoaCksIWgmJlNsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMuYW5jaG9yLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSx0aGlzLl9vcGVuPWgpfXNldCBjdXN0''@;'; put 'put ''b21GaWx0ZXIoaCl7dGhpcy5zZXRGaWx0ZXIoaCl9Z2V0IGFjdGl2ZSgpe3JldHVybiEhdGhpcy5maWx0ZXImJnRoaXMuZmlsdGVyLmlzQWN0aXZlKCl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuc3Vicy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVy''@;'; put 'put ''biBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHZ2KSxLdChucyksS3QoenMpLEt0KEwyKSxLdCh5MikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctZmlsdGVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYm''@;'; put 'put ''dm8oc2NlLDUsYm8pLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuYW5jaG9yPXkuZmlyc3QpfX0saW5wdXRzOntvcGVuOlsiY2xyRGdGaWx0ZXJPcGVuIiwib3BlbiJdLGN1c3RvbUZpbHRlcjpbImNsckRnRmlsdGVyIiwiY3VzdG9tRmlsdGVyIl19LG91dHB1dHM6e29wZW5DaGFuZ2U6ImNs''@;'; put 'put ''ckRnRmlsdGVyT3BlbkNoYW5nZSJ9LGZlYXR1cmVzOltobyhbe3Byb3ZpZGU6aHEsdXNlRXhpc3Rpbmc6ZH0sT2NdKSxEb10sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjQsdmFyczoxMyxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsImNsclBvcG92ZXJBbmNob3IiLCIiLCJjbHJQb3Bv''@;'; put 'put ''dmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwxLCJkYXRhZ3JpZC1maWx0ZXItdG9nZ2xlIl0sWyJhbmNob3IiLCIiXSxbInNvbGlkIiwiIl0sWyJjbGFzcyIsImRhdGFncmlkLWZpbHRlciIsImNsckZvY3VzVHJhcCIsIiIsInJvbGUiLCJkaWFsb2ciLDMsImlkIiw0LCJjbHJQb3BvdmVyQ29udGVu''@;'; put 'put ''dCIsImNsclBvcG92ZXJDb250ZW50QXQiLCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiXSxbImNsckZvY3VzVHJhcCIsIiIsInJvbGUiLCJkaWFsb2ciLDEsImRhdGFncmlkLWZpbHRlciIsMywiaWQiXSxbMSwi''@;'; put 'put ''ZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbHJQb3BvdmVyQ2xvc2VCdXR0b24iLCIiLDEsImNsb3NlIl0sWyJzaGFwZSIsIndpbmRvdy1jbG9zZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksbnQoMCwiYnV0dG9uIiwwLDEp''@;'; put 'put ''LENyKDIsImNkcy1pY29uIiwyKSxvdCgpLHJuKDMsQWcsNSwzLCJkaXYiLDMpKSwyJmgmJihGaSgiZGF0YWdyaWQtZmlsdGVyLW9wZW4iLHYub3BlbikoImRhdGFncmlkLWZpbHRlcmVkIix2LmFjdGl2ZSksR2koImFyaWEtbGFiZWwiLHYuY29tbW9uU3RyaW5ncy5rZXlzLmRhdGFncmlkRmls''@;'; put 'put ''dGVyQXJpYUxhYmVsKSgiYXJpYS1leHBhbmRlZCIsdi5hcmlhRXhwYW5kZWQpKCJhcmlhLWNvbnRyb2xzIix2LnBvcG92ZXJJZCksdXQoMiksR2koInN0YXR1cyIsdi5hY3RpdmU/ImluZm8iOm51bGwpKCJzaGFwZSIsdi5hY3RpdmU/ImZpbHRlci1ncmlkLWNpcmNsZSI6ImZpbHRlci1ncmlk''@;'; put 'put ''IiksdXQoMSksVHQoImNsclBvcG92ZXJDb250ZW50Iix2Lm9wZW4pKCJjbHJQb3BvdmVyQ29udGVudEF0Iix2LnNtYXJ0UG9zaXRpb24pKCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCEwKSgiY2xyUG9wb3ZlckNvbnRlbnRTY3JvbGxUb0Nsb3NlIiwhMCkpfSxkZXBl''@;'; put 'put ''bmRlbmNpZXM6W3V3LGN3LFpvLGRsLGh3LHJxXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTtjbGFzcyBQZmV7Y29uc3RydWN0b3IoZyl7dGhpcy5wcm9wPWcsZy5pbmRleE9mKCIuIik+PTAmJih0aGlzLnNwbGl0UHJvcD1nLnNwbGl0KCIuIikpfWdldFByb3BWYWx1ZShnKXtpZih0aGlzLnNw''@;'; put 'put ''bGl0UHJvcCl7bGV0IGg9Zztmb3IoY29uc3QgdiBvZiB0aGlzLnNwbGl0UHJvcCl7aWYobnVsbD09aHx8dm9pZCAwPT09aFt2XSlyZXR1cm47aD1oW3ZdfXJldHVybiBofXJldHVybiBnW3RoaXMucHJvcF19fWNsYXNzIGdxe2NvbnN0cnVjdG9yKGcsaD0hMSl7dGhpcy5wcm9wPWcsdGhpcy5l''@;'; put 'put ''eGFjdD1oLHRoaXMubmVzdGVkUHJvcD1uZXcgUGZlKGcpfWFjY2VwdHMoZyxoLHYpe2NvbnN0IHk9dGhpcy5uZXN0ZWRQcm9wLmdldFByb3BWYWx1ZShnKTtyZXR1cm4hKG51bGwhPT1oJiZ5PGh8fG51bGwhPT12JiZ5PnYpfX1jbGFzcyBoU3tjb25zdHJ1Y3RvcihnKXt0aGlzLmZpbHRlckZu''@;'; put 'put ''PWcsdGhpcy5fY2hhbmdlcz1uZXcgJGUsdGhpcy5fbG93PW51bGwsdGhpcy5faGlnaD1udWxsfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRoaXMuX2NoYW5nZXMuYXNPYnNlcnZhYmxlKCl9Z2V0IHZhbHVlKCl7cmV0dXJuW3RoaXMuX2xvdyx0aGlzLl9oaWdoXX1zZXQgdmFsdWUoZyl7Y29uc3Qg''@;'; put 'put ''aD1nWzBdLHY9Z1sxXTsoaCE9PXRoaXMuX2xvd3x8diE9PXRoaXMuX2hpZ2gpJiYodGhpcy5fbG93PWgsdGhpcy5faGlnaD12LHRoaXMuX2NoYW5nZXMubmV4dChbdGhpcy5fbG93LHRoaXMuX2hpZ2hdKSl9Z2V0IGxvdygpe3JldHVybiB0aGlzLl9sb3d9c2V0IGxvdyhnKXtnIT09dGhpcy5f''@;'; put 'put ''bG93JiYodGhpcy5fbG93PWcsdGhpcy5fY2hhbmdlcy5uZXh0KFt0aGlzLl9sb3csdGhpcy5faGlnaF0pKX1nZXQgaGlnaCgpe3JldHVybiB0aGlzLl9oaWdofXNldCBoaWdoKGcpe2chPT10aGlzLl9oaWdoJiYodGhpcy5faGlnaD1nLHRoaXMuX2NoYW5nZXMubmV4dChbdGhpcy5fbG93LHRo''@;'; put 'put ''aXMuX2hpZ2hdKSl9aXNBY3RpdmUoKXtyZXR1cm4gbnVsbCE9PXRoaXMuX2xvd3x8bnVsbCE9PXRoaXMuaGlnaH1hY2NlcHRzKGcpe3JldHVybiB0aGlzLmZpbHRlckZuLmFjY2VwdHMoZyx0aGlzLl9sb3csdGhpcy5faGlnaCl9Z2V0IHN0YXRlKCl7cmV0dXJuIHRoaXMuZmlsdGVyRm4gaW5z''@;'; put 'put ''dGFuY2VvZiBncT97cHJvcGVydHk6dGhpcy5maWx0ZXJGbi5wcm9wLGxvdzp0aGlzLl9sb3csaGlnaDp0aGlzLl9oaWdofTp0aGlzfWVxdWFscyhnKXtyZXR1cm4gZyBpbnN0YW5jZW9mIGhTJiYoZy5maWx0ZXJGbiBpbnN0YW5jZW9mIGdxP3RoaXMuZmlsdGVyRm4gaW5zdGFuY2VvZiBncSYm''@;'; put 'put ''Zy5maWx0ZXJGbi5wcm9wPT09dGhpcy5maWx0ZXJGbi5wcm9wJiZnLmxvdz09PXRoaXMuX2xvdyYmZy5oaWdoPT09dGhpcy5faGlnaDpnPT09dGhpcyl9fWxldCByeWU9KCgpPT57Y2xhc3MgZCBleHRlbmRzIHBxe2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7c3VwZXIoaCksdGhpcy5kb21BZGFw''@;'; put 'put ''dGVyPXYsdGhpcy5jb21tb25TdHJpbmdzPXksdGhpcy5wb3BvdmVyVG9nZ2xlU2VydmljZT1DLHRoaXMubmdab25lPUksdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMub3Blbj0hMSx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlPW5ldyBhcn1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95''@;'; put 'put ''KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+e2gudW5zdWJzY3JpYmUoKX0pfWdldCBtYXhQbGFjZWhvbGRlclZhbHVlKCl7cmV0dXJuIHRoaXMubWF4UGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1heFZhbHVlfWdldCBtaW5QbGFjZWhvbGRlclZhbHVlKCl7''@;'; put 'put ''cmV0dXJuIHRoaXMubWluUGxhY2Vob2xkZXJ8fHRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLm1pblZhbHVlfXNldCBjdXN0b21OdW1lcmljRmlsdGVyKGgpe3RoaXMuc2V0RmlsdGVyKGggaW5zdGFuY2VvZiBkcT9oOm5ldyBoUyhoKSksdGhpcy5pbml0RmlsdGVyVmFsdWVzJiYodGhpcy52YWx1''@;'; put 'put ''ZT10aGlzLmluaXRGaWx0ZXJWYWx1ZXMsZGVsZXRlIHRoaXMuaW5pdEZpbHRlclZhbHVlcyl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5wb3BvdmVyVG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5vcGVuPWgsdGhpcy5u''@;'; put 'put ''Z1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PntyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCk9Pnt0aGlzLmRvbUFkYXB0ZXIuZm9jdXModGhpcy5pbnB1dC5uYXRpdmVFbGVtZW50KX0pfSl9KSl9Z2V0IHZhbHVlKCl7cmV0dXJuW3RoaXMuZmlsdGVyLmxvdyx0aGlzLmZpbHRlci5oaWdoXX1z''@;'; put 'put ''ZXQgdmFsdWUoaCl7dGhpcy5maWx0ZXImJkFycmF5LmlzQXJyYXkoaCk/aCYmKGhbMF0hPT10aGlzLmZpbHRlci5sb3d8fGhbMV0hPT10aGlzLmZpbHRlci5oaWdoKSYmKHRoaXMuZmlsdGVyLmxvdz0ibnVtYmVyIj09dHlwZW9mIGhbMF0/aFswXTpudWxsLHRoaXMuZmlsdGVyLmhpZ2g9Im51''@;'; put 'put ''bWJlciI9PXR5cGVvZiBoWzFdP2hbMV06bnVsbCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoaCkpOnRoaXMuaW5pdEZpbHRlclZhbHVlcz1ofWdldCBsb3coKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHRoaXMuZmlsdGVyLmxvdyYmaXNGaW5pdGUodGhpcy5maWx0ZXIubG93KT90aGlz''@;'; put 'put ''LmZpbHRlci5sb3c6bnVsbH1zZXQgbG93KGgpeyJudW1iZXIiPT10eXBlb2YgaCYmaCE9PXRoaXMuZmlsdGVyLmxvdz8odGhpcy5maWx0ZXIubG93PWgsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KFt0aGlzLmZpbHRlci5sb3csdGhpcy5maWx0ZXIuaGlnaF0pKToibnVtYmVyIiE9dHlw''@;'; put 'put ''ZW9mIGgmJih0aGlzLmZpbHRlci5sb3c9bnVsbCx0aGlzLmZpbHRlclZhbHVlQ2hhbmdlLmVtaXQoW3RoaXMuZmlsdGVyLmxvdyx0aGlzLmZpbHRlci5oaWdoXSkpfWdldCBoaWdoKCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0aGlzLmZpbHRlci5oaWdoJiZpc0Zpbml0ZSh0aGlzLmZpbHRl''@;'; put 'put ''ci5oaWdoKT90aGlzLmZpbHRlci5oaWdoOm51bGx9c2V0IGhpZ2goaCl7Im51bWJlciI9PXR5cGVvZiBoJiZoIT09dGhpcy5maWx0ZXIuaGlnaD8odGhpcy5maWx0ZXIuaGlnaD1oLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChbdGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hd''@;'; put 'put ''KSk6Im51bWJlciIhPXR5cGVvZiBoJiYodGhpcy5maWx0ZXIuaGlnaD1udWxsLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2UuZW1pdChbdGhpcy5maWx0ZXIubG93LHRoaXMuZmlsdGVyLmhpZ2hdKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHZ2''@;'; put 'put ''KSxLdChmNCksS3QobnMpLEt0KHpzKSxLdChfbCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctbnVtZXJpYy1maWx0ZXIiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiYodm8odWNlLDUpLHZvKHNaLDUpKSwyJmgpe2xldCB5O0hpKHk9JGko''@;'; put 'put ''KSkmJih2LmlucHV0PXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2LmZpbHRlckNvbnRhaW5lcj15LmZpcnN0KX19LGlucHV0czp7bWF4UGxhY2Vob2xkZXI6WyJjbHJGaWx0ZXJNYXhQbGFjZWhvbGRlciIsIm1heFBsYWNlaG9sZGVyIl0sbWluUGxhY2Vob2xkZXI6WyJjbHJGaWx0ZXJNaW5QbGFj''@;'; put 'put ''ZWhvbGRlciIsIm1pblBsYWNlaG9sZGVyIl0sY3VzdG9tTnVtZXJpY0ZpbHRlcjpbImNsckRnTnVtZXJpY0ZpbHRlciIsImN1c3RvbU51bWVyaWNGaWx0ZXIiXSx2YWx1ZTpbImNsckZpbHRlclZhbHVlIiwidmFsdWUiXX0sb3V0cHV0czp7ZmlsdGVyVmFsdWVDaGFuZ2U6ImNsckZpbHRlclZh''@;'; put 'put ''bHVlQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpocSx1c2VFeGlzdGluZzpkfV0pLERvXSxkZWNsczo2LHZhcnM6OCxjb25zdHM6W1szLCJjbHJEZ0ZpbHRlciIsImNsckRnRmlsdGVyT3BlbiIsImNsckRnRmlsdGVyT3BlbkNoYW5nZSJdLFsidHlwZSIsIm51bWJlciIsIm5hbWUi''@;'; put 'put ''LCJsb3ciLDEsImRhdGFncmlkLW51bWVyaWMtZmlsdGVyLWlucHV0IiwzLCJuZ01vZGVsIiwicGxhY2Vob2xkZXIiLCJuZ01vZGVsQ2hhbmdlIl0sWyJpbnB1dF9sb3ciLCIiXSxbMSwiZGF0YWdyaWQtZmlsdGVyLWlucHV0LXNwYWNlciJdLFsidHlwZSIsIm51bWJlciIsIm5hbWUiLCJoaWdo''@;'; put 'put ''IiwxLCJkYXRhZ3JpZC1udW1lcmljLWZpbHRlci1pbnB1dCIsMywibmdNb2RlbCIsInBsYWNlaG9sZGVyIiwibmdNb2RlbENoYW5nZSJdLFsiaW5wdXRfaGlnaCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImNsci1kZy1maWx0ZXIiLDApLEduKCJjbHJEZ0ZpbHRl''@;'; put 'put ''ck9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9wZW49Q30pLG50KDEsImlucHV0IiwxLDIpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5sb3c9Q30pLG90KCksQ3IoMywic3BhbiIsMyksbnQoNCwiaW5wdXQiLDQsNSksR24oIm5nTW9kZWxDaGFuZ2Ui''@;'; put 'put ''LGZ1bmN0aW9uKEMpe3JldHVybiB2LmhpZ2g9Q30pLG90KCkoKSksMiZoJiYoVHQoImNsckRnRmlsdGVyIix2LnJlZ2lzdGVyZWQpKCJjbHJEZ0ZpbHRlck9wZW4iLHYub3BlbiksdXQoMSksVHQoIm5nTW9kZWwiLHYubG93KSgicGxhY2Vob2xkZXIiLHYubWluUGxhY2Vob2xkZXJWYWx1ZSks''@;'; put 'put ''R2koImFyaWEtbGFiZWwiLHYubWluUGxhY2Vob2xkZXJWYWx1ZSksdXQoMyksVHQoIm5nTW9kZWwiLHYuaGlnaCkoInBsYWNlaG9sZGVyIix2Lm1heFBsYWNlaG9sZGVyVmFsdWUpLEdpKCJhcmlhLWxhYmVsIix2Lm1heFBsYWNlaG9sZGVyVmFsdWUpKX0sZGVwZW5kZW5jaWVzOltzWixqVixt''@;'; put 'put ''MSxUcyxJc10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCk7Y2xhc3MgbXF7Y29uc3RydWN0b3IoZyxoPSExKXt0aGlzLnByb3A9Zyx0aGlzLmV4YWN0PWgsdGhpcy5uZXN0ZWRQcm9wPW5ldyBQZmUoZyl9YWNjZXB0cyhnLGgpe2NvbnN0IHY9dGhpcy5uZXN0ZWRQcm9wLmdldFByb3BWYWx1ZShn''@;'; put 'put ''KTtyZXR1cm4gdm9pZCAwIT09diYmKHRoaXMuZXhhY3Q/KCIiK3YpLnRvTG93ZXJDYXNlKCk9PT1oOigiIit2KS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoaCk+PTApfX1jbGFzcyBkU3tjb25zdHJ1Y3RvcihnKXt0aGlzLmZpbHRlckZuPWcsdGhpcy5fY2hhbmdlcz1uZXcgJGUsdGhpcy5fbG93''@;'; put 'put ''ZXJDYXNlVmFsdWU9IiIsdGhpcy5fcmF3VmFsdWU9IiJ9Z2V0IGNoYW5nZXMoKXtyZXR1cm4gdGhpcy5fY2hhbmdlcy5hc09ic2VydmFibGUoKX1nZXQgbG93ZXJDYXNlVmFsdWUoKXtyZXR1cm4gdGhpcy5fbG93ZXJDYXNlVmFsdWV9Z2V0IHZhbHVlKCl7cmV0dXJuIHRoaXMuX3Jhd1ZhbHVl''@;'; put 'put ''fXNldCB2YWx1ZShnKXtnfHwoZz0iIiksZyE9PXRoaXMuX3Jhd1ZhbHVlJiYodGhpcy5fcmF3VmFsdWU9Zyx0aGlzLl9sb3dlckNhc2VWYWx1ZT1nLnRvTG93ZXJDYXNlKCkudHJpbSgpLHRoaXMuX2NoYW5nZXMubmV4dChnKSl9aXNBY3RpdmUoKXtyZXR1cm4hIXRoaXMudmFsdWV9YWNjZXB0''@;'; put 'put ''cyhnKXtyZXR1cm4gdGhpcy5maWx0ZXJGbi5hY2NlcHRzKGcsdGhpcy5sb3dlckNhc2VWYWx1ZSl9Z2V0IHN0YXRlKCl7cmV0dXJuIHRoaXMuZmlsdGVyRm4gaW5zdGFuY2VvZiBtcT97cHJvcGVydHk6dGhpcy5maWx0ZXJGbi5wcm9wLHZhbHVlOnRoaXMudmFsdWV9OnRoaXN9ZXF1YWxzKGcp''@;'; put 'put ''e3JldHVybiBnIGluc3RhbmNlb2YgZFMmJihnLmZpbHRlckZuIGluc3RhbmNlb2YgbXE/dGhpcy5maWx0ZXJGbiBpbnN0YW5jZW9mIG1xJiZnLmZpbHRlckZuLnByb3A9PT10aGlzLmZpbHRlckZuLnByb3AmJmcudmFsdWU9PT10aGlzLnZhbHVlOmc9PT10aGlzKX19bGV0IEZmZT0oKCk9Pntj''@;'; put 'put ''bGFzcyBkIGV4dGVuZHMgcHF7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihoKSx0aGlzLmRvbUFkYXB0ZXI9dix0aGlzLmNvbW1vblN0cmluZ3M9eSx0aGlzLnNtYXJ0VG9nZ2xlU2VydmljZT1DLHRoaXMubmdab25lPUksdGhpcy5zdWJzPVtdLHRoaXMub3Blbj0hMSx0aGlzLmZpbHRl''@;'; put 'put ''clZhbHVlQ2hhbmdlPW5ldyBhcn1nZXQgcGxhY2Vob2xkZXJWYWx1ZSgpe3JldHVybiB0aGlzLnBsYWNlaG9sZGVyfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5maWx0ZXJJdGVtc31zZXQgY3VzdG9tU3RyaW5nRmlsdGVyKGgpe3RoaXMuc2V0RmlsdGVyKGggaW5zdGFuY2VvZiBkcT9oOm5l''@;'; put 'put ''dyBkUyhoKSksdGhpcy5pbml0RmlsdGVyVmFsdWUmJih0aGlzLnZhbHVlPXRoaXMuaW5pdEZpbHRlclZhbHVlLGRlbGV0ZSB0aGlzLmluaXRGaWx0ZXJWYWx1ZSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzLnB1c2godGhpcy5zbWFydFRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJz''@;'; put 'put ''Y3JpYmUoaD0+e3RoaXMub3Blbj1oLHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpPT57dGhpcy5kb21BZGFwdGVyLmZvY3VzKHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCl9KX0pfSkpfW5nT25EZXN0cm95KCl7c3VwZXIubmdPbkRl''@;'; put 'put ''c3Ryb3koKSx0aGlzLnN1YnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpfWdldCB2YWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlci52YWx1ZX1zZXQgdmFsdWUoaCl7dGhpcy5maWx0ZXImJiJzdHJpbmciPT10eXBlb2YgaD8oaHx8KGg9IiIpLGghPT10aGlzLmZpbHRlci52YWx1ZSYmKHRo''@;'; put 'put ''aXMuZmlsdGVyLnZhbHVlPWgsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KGgpKSk6dGhpcy5pbml0RmlsdGVyVmFsdWU9aH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QodnYpLEt0KGY0KSxLdChucyksS3QoenMpLEt0KF9sKSl9LGQuXHUw''@;'; put 'put ''Mjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1zdHJpbmctZmlsdGVyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKEFMLDUpLHZvKHNaLDUpKSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmlucHV0PXkuZmlyc3QpLEhpKHk9JGkoKSkmJih2LmZp''@;'; put 'put ''bHRlckNvbnRhaW5lcj15LmZpcnN0KX19LGlucHV0czp7cGxhY2Vob2xkZXI6WyJjbHJGaWx0ZXJQbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIl0sY3VzdG9tU3RyaW5nRmlsdGVyOlsiY2xyRGdTdHJpbmdGaWx0ZXIiLCJjdXN0b21TdHJpbmdGaWx0ZXIiXSx2YWx1ZTpbImNsckZpbHRlclZh''@;'; put 'put ''bHVlIiwidmFsdWUiXX0sb3V0cHV0czp7ZmlsdGVyVmFsdWVDaGFuZ2U6ImNsckZpbHRlclZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpocSx1c2VFeGlzdGluZzpkfV0pLERvXSxkZWNsczozLHZhcnM6NSxjb25zdHM6W1szLCJjbHJEZ0ZpbHRlciIsImNsckRnRmlsdGVy''@;'; put 'put ''T3BlbiIsImNsckRnRmlsdGVyT3BlbkNoYW5nZSJdLFsidHlwZSIsInRleHQiLCJuYW1lIiwic2VhcmNoIiwxLCJjbHItaW5wdXQiLDMsIm5nTW9kZWwiLCJwbGFjZWhvbGRlciIsIm5nTW9kZWxDaGFuZ2UiXSxbImlucHV0IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQo''@;'; put 'put ''MCwiY2xyLWRnLWZpbHRlciIsMCksR24oImNsckRnRmlsdGVyT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub3Blbj1DfSksbnQoMSwiaW5wdXQiLDEsMiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnZhbHVlPUN9KSxvdCgpKCkpLDImaCYmKFR0KCJj''@;'; put 'put ''bHJEZ0ZpbHRlciIsdi5yZWdpc3RlcmVkKSgiY2xyRGdGaWx0ZXJPcGVuIix2Lm9wZW4pLHV0KDEpLFR0KCJuZ01vZGVsIix2LnZhbHVlKSgicGxhY2Vob2xkZXIiLHYucGxhY2Vob2xkZXJWYWx1ZSksR2koImFyaWEtbGFiZWwiLHYucGxhY2Vob2xkZXJWYWx1ZSkpfSxkZXBlbmRlbmNpZXM6''@;'; put 'put ''W3NaLG0xLFRzLElzXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxwdz0oKCk9PntjbGFzcyBkIGV4dGVuZHMgYXd7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbigpe2xldCBnO3JldHVybiBmdW5jdGlvbih2KXtyZXR1cm4oZ3x8KGc9ZmwoZCkpKSh2fHxkKX19KCksZC5cdTAyNzVkaXI9''@;'; put 'put ''V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRhdGFncmlkIl1dLGZlYXR1cmVzOltEb119KSxkfSkoKSxOTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5hY3Rpb25hYmxlQ291bnQ9MH1yZWdpc3Rlcigpe3RoaXMuYWN0aW9uYWJsZUNvdW50Kyt9dW5yZWdpc3Rlcigpe3Ro''@;'; put 'put ''aXMuYWN0aW9uYWJsZUNvdW50LS19Z2V0IGhhc0FjdGlvbmFibGVSb3coKXtyZXR1cm4gdGhpcy5hY3Rpb25hYmxlQ291bnQ+MH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1''@;'; put 'put ''ZmFjfSksZH0pKCksVkw9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGx3e2NvbnN0cnVjdG9yKGgsdix5KXtpZighdil0aHJvdyBuZXcgRXJyb3IoImNsci1kZy1yb3cgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItZGF0YWdyaWQiKTtzdXBlcihoLHYpLHRoaXMucm93QWN0aW9u''@;'; put 'put ''cz15fWdldCBmbGF2b3IoKXtyZXR1cm4gdGhpcy5yb3dBY3Rpb25zLmhhc0FjdGlvbmFibGVSb3d9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxKSxLdChwdyw4KSxLdChOTCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpb''@;'; put 'put ''WyJjbHItZGF0YWdyaWQiXSxbImNsci1kZy1yb3ciXV0sZmVhdHVyZXM6W0RvXX0pLGR9KSgpLEE4PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLnRvZ2dsZVN0YXRlPSExLHRoaXMuX3N0YXRlPW5ldyBmcyh0aGlzLnRvZ2dsZVN0YXRlKSx0aGlzLl9lbmFibGVkPSExfWdldCBl''@;'; put 'put ''bmFibGVkKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9c2V0IGVuYWJsZWQoaCl7dGhpcy5fZW5hYmxlZD1ofWdldCBzdGF0ZUNoYW5nZSgpe3JldHVybiB0aGlzLl9zdGF0ZS5hc09ic2VydmFibGUoKX1jbG9zZSgpe3RoaXMudG9nZ2xlU3RhdGU9ITEsdGhpcy5fc3RhdGUubmV4dCh0aGlzLnRv''@;'; put 'put ''Z2dsZVN0YXRlKSx0aGlzLmJ1dHRvbiYmKHRoaXMuYnV0dG9uLmZvY3VzKCksdGhpcy5idXR0b249bnVsbCl9b3BlbihoLHYpe3RoaXMuY2FjaGU9aCx0aGlzLmJ1dHRvbj12LHRoaXMudG9nZ2xlU3RhdGU9ITAsdGhpcy5fc3RhdGUubmV4dCh0aGlzLnRvZ2dsZVN0YXRlKX10b2dnbGUoaCx2''@;'; put 'put ''KXt0aGlzLmlzUm93T3BlbihoKXx8IWg/dGhpcy5jbG9zZSgpOnRoaXMub3BlbihoLHYpfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLmNhY2hlfWlzUm93T3BlbihoKXtyZXR1cm4hKCF0aGlzLnRvZ2dsZVN0YXRlfHx0aGlzLmNhY2hlIT09aCl9Z2V0IGlzT3Blbigpe3JldHVybiEwPT09dGhp''@;'; put 'put ''cy50b2dnbGVTdGF0ZX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksakw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmRldGFpbFNlcnZp''@;'; put 'put ''Y2U9aCx0aGlzLmV4cGFuZGFibGVDb3VudD0wfXJlZ2lzdGVyKCl7dGhpcy5leHBhbmRhYmxlQ291bnQrK311bnJlZ2lzdGVyKCl7dGhpcy5leHBhbmRhYmxlQ291bnQtLX1nZXQgaGFzRXhwYW5kYWJsZVJvdygpe3JldHVybiF0aGlzLmRldGFpbFNlcnZpY2UuZW5hYmxlZCYmdGhpcy5leHBh''@;'; put 'put ''bmRhYmxlQ291bnQ+MH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koQTgpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxaTD0oKCk9PntjbGFzcyBkIGV4dGVuZHMgbHd7Y29uc3RydWN0b3Io''@;'; put 'put ''aCx2LHkpe2lmKCF2KXRocm93IG5ldyBFcnJvcigiY2xyLWRnLXJvdyBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNsci1kYXRhZ3JpZCIpO3N1cGVyKGgsdiksdGhpcy5leHBhbmRhYmxlQ291bnQ9eX1nZXQgZmxhdm9yKCl7cmV0dXJuIHRoaXMuZXhwYW5kYWJsZUNvdW50Lmhh''@;'; put 'put ''c0V4cGFuZGFibGVSb3d9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxKSxLdChwdyw4KSxLdChqTCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXSxbImNsci1kZy1yb3ciXV0sZmVhdHVyZXM6''@;'; put 'put ''W0RvXX0pLGR9KSgpO2NsYXNzIHZxe2NvbnN0cnVjdG9yKGcpe3RoaXMucHJvcD1nLHRoaXMubmVzdGVkUHJvcD1uZXcgUGZlKGcpfWNvbXBhcmUoZyxoKXtsZXQgdj10aGlzLm5lc3RlZFByb3AuZ2V0UHJvcFZhbHVlKGcpLHk9dGhpcy5uZXN0ZWRQcm9wLmdldFByb3BWYWx1ZShoKTtyZXR1''@;'; put 'put ''cm4ic3RyaW5nIj09dHlwZW9mIHYmJih2PXYudG9Mb3dlckNhc2UoKSksInN0cmluZyI9PXR5cGVvZiB5JiYoeT15LnRvTG93ZXJDYXNlKCkpLG51bGw9PXY/bnVsbD09eT8wOjE6bnVsbD09eXx8djx5Py0xOnY+eT8xOjB9fXZhciBkaD0oKCk9PihmdW5jdGlvbihkKXtkW2QuVU5TT1JURUQ9''@;'; put 'put ''MF09IlVOU09SVEVEIixkW2QuQVNDPTFdPSJBU0MiLGRbZC5ERVNDPS0xXT0iREVTQyJ9KGRofHwoZGg9e30pKSxkaCkpKCk7bGV0IEhmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZHluYW1pYz0hMX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmNvbHVtblZpZXc9dGhpcy50''@;'; put 'put ''ZW1wbGF0ZVJlZi5jcmVhdGVFbWJlZGRlZFZpZXcobnVsbCl9bmdPbkRlc3Ryb3koKXt0aGlzLmNvbHVtblZpZXcuZGVzdHJveSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siZGct''@;'; put 'put ''d3JhcHBlZC1jb2x1bW4iXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byh5TCw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnRlbXBsYXRlUmVmPXkuZmlyc3QpfX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczowLGNvbnN0czpbWyJjb2x1bW5Qb3J0''@;'; put 'put ''YWwiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLHJuKDAseGosMSwwLCJuZy10ZW1wbGF0ZSIsbnVsbCwwLFpyKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLEFxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5zdGF0ZURlYm91bmNlcj1oLHRoaXMu''@;'; put 'put ''X3JldmVyc2U9ITEsdGhpcy5fY2hhbmdlPW5ldyAkZX1nZXQgY29tcGFyYXRvcigpe3JldHVybiB0aGlzLl9jb21wYXJhdG9yfXNldCBjb21wYXJhdG9yKGgpe3RoaXMuc3RhdGVEZWJvdW5jZXIuY2hhbmdlU3RhcnQoKSx0aGlzLl9jb21wYXJhdG9yPWgsdGhpcy5lbWl0Q2hhbmdlKCksdGhp''@;'; put 'put ''cy5zdGF0ZURlYm91bmNlci5jaGFuZ2VEb25lKCl9Z2V0IHJldmVyc2UoKXtyZXR1cm4gdGhpcy5fcmV2ZXJzZX1zZXQgcmV2ZXJzZShoKXt0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZVN0YXJ0KCksdGhpcy5fcmV2ZXJzZT1oLHRoaXMuZW1pdENoYW5nZSgpLHRoaXMuc3RhdGVEZWJvdW5j''@;'; put 'put ''ZXIuY2hhbmdlRG9uZSgpfWVtaXRDaGFuZ2UoKXt0aGlzLl9jaGFuZ2UubmV4dCh0aGlzKX1nZXQgY2hhbmdlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZS5hc09ic2VydmFibGUoKX10b2dnbGUoaCx2KXt0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZVN0YXJ0KCksdGhpcy5jb21wYXJhdG9yPT09''@;'; put 'put ''aD90aGlzLl9yZXZlcnNlPXZvaWQgMCE9PXYmJnZ8fCF0aGlzLl9yZXZlcnNlOih0aGlzLl9jb21wYXJhdG9yPWgsdGhpcy5fcmV2ZXJzZT12b2lkIDAhPT12JiZ2KSx0aGlzLmVtaXRDaGFuZ2UoKSx0aGlzLnN0YXRlRGVib3VuY2VyLmNoYW5nZURvbmUoKX1jbGVhcigpe3RoaXMuY29tcGFy''@;'; put 'put ''YXRvcj1udWxsfWNvbXBhcmUoaCx2KXtyZXR1cm4odGhpcy5yZXZlcnNlPy0xOjEpKnRoaXMuY29tcGFyYXRvci5jb21wYXJlKGgsdil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGxaKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0''@;'; put 'put ''b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7dmFyIGg0PSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5BTElHTl9DT0xVTU5TPTBdPSJBTElHTl9DT0xVTU5TIixkW2QuQ0FMQ1VMQVRFX01PREVfT049MV09IkNBTENVTEFURV9NT0RFX09OIixkW2QuQ0FMQ1VMQVRFX01PREVfT0ZGPTJdPSJDQUxDVUxB''@;'; put 'put ''VEVfTU9ERV9PRkYiLGRbZC5DTEVBUl9XSURUSFM9M109IkNMRUFSX1dJRFRIUyIsZFtkLkNPTVBVVEVfQ09MVU1OX1dJRFRIUz00XT0iQ09NUFVURV9DT0xVTU5fV0lEVEhTIn0oaDR8fChoND17fSkpLGg0KSkoKTtsZXQgcFM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3Jl''@;'; put 'put ''bmRlclN0ZXA9bmV3ICRlLHRoaXMuYWxyZWFkeVNpemVkPSExfWdldCByZW5kZXJTdGVwKCl7cmV0dXJuIHRoaXMuX3JlbmRlclN0ZXAuYXNPYnNlcnZhYmxlKCl9ZmlsdGVyUmVuZGVyU3RlcHMoaCl7cmV0dXJuIHRoaXMucmVuZGVyU3RlcC5waXBlKE8yKHY9Pmg9PT12KSl9cmVzaXplKCl7''@;'; put 'put ''dGhpcy5fcmVuZGVyU3RlcC5uZXh0KGg0LkNBTENVTEFURV9NT0RFX09OKSx0aGlzLmFscmVhZHlTaXplZCYmdGhpcy5fcmVuZGVyU3RlcC5uZXh0KGg0LkNMRUFSX1dJRFRIUyksdGhpcy5fcmVuZGVyU3RlcC5uZXh0KGg0LkNPTVBVVEVfQ09MVU1OX1dJRFRIUyksdGhpcy5fcmVuZGVyU3Rl''@;'; put 'put ''cC5uZXh0KGg0LkFMSUdOX0NPTFVNTlMpLHRoaXMuYWxyZWFkeVNpemVkPSEwLHRoaXMuX3JlbmRlclN0ZXAubmV4dChoNC5DQUxDVUxBVEVfTU9ERV9PRkYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpk''@;'; put 'put ''LGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxOZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5lbD1oLHRoaXMuZG9tQWRhcHRlcj12LHRoaXMub3JnYW5pemVyPXksdGhpcy5fcmVzaXplZEJ5PTB9Z2V0IHJlc2l6ZWRCeSgpe3JldHVybiB0aGlzLl9yZXNpemVk''@;'; put 'put ''Qnl9Z2V0IG1pbkNvbHVtbldpZHRoKCl7cmV0dXJuIHRoaXMuZG9tQWRhcHRlci5taW5XaWR0aCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpfHw5Nn1nZXQgbWF4UmVzaXplUmFuZ2UoKXtyZXR1cm4gdGhpcy53aWR0aEJlZm9yZVJlc2l6ZS10aGlzLm1pbkNvbHVtbldpZHRofXN0YXJ0UmVzaXpl''@;'; put 'put ''KCl7dGhpcy5fcmVzaXplZEJ5PTAsdGhpcy5pc1dpdGhpbk1heFJlc2l6ZVJhbmdlPSEwLHRoaXMud2lkdGhCZWZvcmVSZXNpemU9dGhpcy5kb21BZGFwdGVyLmNsaWVudFJlY3QodGhpcy5lbC5uYXRpdmVFbGVtZW50KS53aWR0aH1lbmRSZXNpemUoKXt0aGlzLm9yZ2FuaXplci5yZXNpemUo''@;'; put 'put ''KX1nZXQgd2lkdGhBZnRlclJlc2l6ZSgpe3JldHVybiB0aGlzLndpZHRoQmVmb3JlUmVzaXplK3RoaXMuX3Jlc2l6ZWRCeX1jYWxjdWxhdGVSZXNpemUoaCl7aDwtdGhpcy5tYXhSZXNpemVSYW5nZT8odGhpcy5fcmVzaXplZEJ5PS10aGlzLm1heFJlc2l6ZVJhbmdlLHRoaXMuaXNXaXRoaW5N''@;'; put 'put ''YXhSZXNpemVSYW5nZT0hMSk6KHRoaXMuX3Jlc2l6ZWRCeT1oLHRoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZT0hMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKGJvKSxDaShmNCksQ2kocFMpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpk''@;'; put 'put ''LGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxWZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnBsYXRmb3JtSWQ9aH1nZXQgdGFibGVSZWYoKXtyZXR1cm4gdGhpcy5fdGFibGVSZWZ9c2V0IHRhYmxlUmVmKGgpe3RoaXMuX3RhYmxlUmVmPWh9c2V0IHRhYmxlKGgpe1Ns''@;'; put 'put ''KHRoaXMucGxhdGZvcm1JZCkmJmgubmF0aXZlRWxlbWVudCYmKHRoaXMudGFibGVSZWY9aC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5kYXRhZ3JpZC10YWJsZSIpKX1nZXRDb2x1bW5EcmFnSGVpZ2h0KCl7cmV0dXJuIHRoaXMudGFibGVSZWY/YCR7dGhpcy50YWJsZVJlZi5jbGll''@;'; put 'put ''bnRIZWlnaHR9cHhgOm51bGx9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKEwyKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksb3llPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHks''@;'; put 'put ''QyxJLFosdWUpe3RoaXMuY29sdW1uUmVzaXplclNlcnZpY2U9aCx0aGlzLnJlbmRlcmVyPXYsdGhpcy5uZ1pvbmU9eSx0aGlzLnRhYmxlU2l6ZVNlcnZpY2U9Qyx0aGlzLmNvbW1vblN0cmluZz1JLHRoaXMuZG9jdW1lbnQ9Wix0aGlzLmNvbHVtblNlcGFyYXRvcklkPXVlLHRoaXMucmVzaXpl''@;'; put 'put ''U3RhcnRlZE9uS2V5RG93bj0hMSx0aGlzLnVubGlzdGVuZXJzPVtdfWdldCByZXNpemVUcmFja2VyRWwoKXtyZXR1cm4gdGhpcy5yZXNpemVUcmFja2VyUmVmLm5hdGl2ZUVsZW1lbnR9Z2V0IGNvbHVtbkhhbmRsZUVsKCl7cmV0dXJuIHRoaXMuY29sdW1uSGFuZGxlUmVmLm5hdGl2ZUVsZW1l''@;'; put 'put ''bnR9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLnVubGlzdGVuZXJzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5jb2x1bW5IYW5kbGVFbCwia2V5ZG93biIsaD0+e3RoaXMuc2hvd1RyYWNrZXJPbkZpcnN0S2V5RG93biho''@;'; put 'put ''KSx0aGlzLm1vdmVUcmFja2VyT25LZXlEb3duKGgpfSkpLHRoaXMudW5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmNvbHVtbkhhbmRsZUVsLCJrZXl1cCIsaD0+e3RoaXMuaGlkZVRyYWNrZXJPbktleVVwKGgpfSkpfSl9Z2V0IGRlc2NyaXB0aW9uSWQoKXtyZXR1''@;'; put 'put ''cm5gJHt0aGlzLmNvbHVtblNlcGFyYXRvcklkfS1hcmlhLWRlc2NyaWJlZGJ5YH1zaG93VHJhY2tlcigpe3RoaXMuY29sdW1uUmVzaXplclNlcnZpY2Uuc3RhcnRSZXNpemUoKTtjb25zdCBoPXRoaXMudGFibGVTaXplU2VydmljZS5nZXRDb2x1bW5EcmFnSGVpZ2h0KCk7dGhpcy5yZW5kZXJl''@;'; put 'put ''ci5zZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwiaGVpZ2h0IixoKSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tlckVsLCJkaXNwbGF5IiwiYmxvY2siKX1tb3ZlVHJhY2tlcihoKXt0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLmNhbGN1bGF0ZVJlc2l6ZSho''@;'; put 'put ''KSx0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMucmVzaXplVHJhY2tlckVsLCJ0cmFuc2Zvcm0iLGB0cmFuc2xhdGVYKCR7dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5yZXNpemVkQnl9cHgpYCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHksImN1cnNvciIs''@;'; put 'put ''ImNvbC1yZXNpemUiKSx0aGlzLnJlZEZsYWdUcmFja2VyKCl9aGlkZVRyYWNrZXIoKXt0aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLmVuZFJlc2l6ZSgpLHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yZXNpemVUcmFja2VyRWwsImRpc3BsYXkiLCJub25lIiksdGhpcy5yZW5kZXJlci5z''@;'; put 'put ''ZXRTdHlsZSh0aGlzLnJlc2l6ZVRyYWNrZXJFbCwidHJhbnNmb3JtIiwidHJhbnNsYXRlWCgwcHgpIiksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHksImN1cnNvciIsImF1dG8iKX1zaG93VHJhY2tlck9uRmlyc3RLZXlEb3duKGgpeyF0aGlzLnJlc2l6ZVN0YXJ0''@;'; put 'put ''ZWRPbktleURvd24mJih0aGlzLmlzQXJyb3dMZWZ0S2V5RXZlbnQoaCl8fHRoaXMuaXNBcnJvd1JpZ2h0S2V5RXZlbnQoaCkpJiYodGhpcy5yZXNpemVTdGFydGVkT25LZXlEb3duPSEwLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5yZXNpemVUcmFja2VyRWwsIm9uLWFycm93LWtleS1y''@;'; put 'put ''ZXNpemUiKSx0aGlzLnNob3dUcmFja2VyKCkpfW1vdmVUcmFja2VyT25LZXlEb3duKGgpe3RoaXMuaXNBcnJvd0xlZnRLZXlFdmVudChoKT90aGlzLm1vdmVUcmFja2VyKHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5LTEyKTp0aGlzLmlzQXJyb3dSaWdodEtleUV2ZW50KGgp''@;'; put 'put ''JiZ0aGlzLm1vdmVUcmFja2VyKHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5KzEyKX1oaWRlVHJhY2tlck9uS2V5VXAoaCl7dGhpcy5yZXNpemVTdGFydGVkT25LZXlEb3duJiYodGhpcy5pc0Fycm93TGVmdEtleUV2ZW50KGgpfHx0aGlzLmlzQXJyb3dSaWdodEtleUV2ZW50''@;'; put 'put ''KGgpKSYmKHRoaXMucmVzaXplU3RhcnRlZE9uS2V5RG93bj0hMSx0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMucmVzaXplVHJhY2tlckVsLCJvbi1hcnJvdy1rZXktcmVzaXplIiksdGhpcy5oaWRlVHJhY2tlcigpLHRoaXMuY29sdW1uSGFuZGxlRWwuZm9jdXMoKSl9cmVkRmxhZ1Ry''@;'; put 'put ''YWNrZXIoKXt0aGlzLmlzV2l0aGluTWF4UmVzaXplUmFuZ2UhPT10aGlzLmNvbHVtblJlc2l6ZXJTZXJ2aWNlLmlzV2l0aGluTWF4UmVzaXplUmFuZ2UmJih0aGlzLmlzV2l0aGluTWF4UmVzaXplUmFuZ2U9dGhpcy5jb2x1bW5SZXNpemVyU2VydmljZS5pc1dpdGhpbk1heFJlc2l6ZVJhbmdl''@;'; put 'put ''LHRoaXMuaXNXaXRoaW5NYXhSZXNpemVSYW5nZT90aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMucmVzaXplVHJhY2tlckVsLCJleGNlZWRlZC1tYXgiKTp0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMucmVzaXplVHJhY2tlckVsLCJleGNlZWRlZC1tYXgiKSl9aXNBcnJvd0xlZnRL''@;'; put 'put ''ZXlFdmVudChoKXtyZXR1cm4gaC5rZXk9PT1NMC5BcnJvd0xlZnR8fGgua2V5PT09ZmMuQXJyb3dMZWZ0fWlzQXJyb3dSaWdodEtleUV2ZW50KGgpe3JldHVybiBoLmtleT09PU0wLkFycm93UmlnaHR8fGgua2V5PT09ZmMuQXJyb3dSaWdodH1uZ09uRGVzdHJveSgpe3RoaXMudW5saXN0ZW5l''@;'; put 'put ''cnMuZm9yRWFjaChoPT5oKCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChOZmUpLEt0KEdhKSxLdChfbCksS3QoVmZlKSxLdChucyksS3QoZ3MpLEt0KHkyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1j''@;'; put 'put ''b2x1bW4tc2VwYXJhdG9yIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKFJmLDUpLHZvKGUzLDUpKSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnJlc2l6ZVRyYWNrZXJSZWY9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuY29sdW1uSGFuZGxlUmVmPXkuZmlyc3QpfX0s''@;'; put 'put ''aG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJkYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIiwhMCl9LGZlYXR1cmVzOltobyhbT2NdKV0sZGVjbHM6Nix2YXJzOjUsY29uc3RzOltbInR5cGUiLCJidXR0b24iLCJjbHJEcmFnZ2FibGUiLCIiLDEsImRhdGFn''@;'; put 'put ''cmlkLWNvbHVtbi1oYW5kbGUiLDMsImNsckdyb3VwIiwiY2xyRHJhZ1N0YXJ0IiwiY2xyRHJhZ01vdmUiLCJjbHJEcmFnRW5kIl0sWyJjb2x1bW5IYW5kbGUiLCIiXSxbMSwiY2xyLXNyLW9ubHkiXSxbMSwiZGF0YWdyaWQtY29sdW1uLXJlc2l6ZS10cmFja2VyIl0sWyJyZXNpemVUcmFja2Vy''@;'; put 'put ''IiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiYnV0dG9uIiwwLDEpLEduKCJjbHJEcmFnU3RhcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIHYuc2hvd1RyYWNrZXIoKX0pKCJjbHJEcmFnTW92ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYubW92ZVRyYWNrZXIoQy5kcmFnUG9z''@;'; put 'put ''aXRpb24ubW92ZVgpfSkoImNsckRyYWdFbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHYuaGlkZVRyYWNrZXIoKX0pLG90KCksbnQoMiwic3BhbiIsMiksWXQoMyksb3QoKSxDcig0LCJkaXYiLDMsNCkpLDImaCYmKFR0KCJjbHJHcm91cCIsdi5jb2x1bW5TZXBhcmF0b3JJZCksR2koImFyaWEtbGFi''@;'; put 'put ''ZWwiLHYuY29tbW9uU3RyaW5nLmtleXMuY29sdW1uU2VwYXJhdG9yQXJpYUxhYmVsKSgiYXJpYS1kZXNjcmliZWRieSIsdi5kZXNjcmlwdGlvbklkKSx1dCgyKSxHaSgiaWQiLHYuZGVzY3JpcHRpb25JZCksdXQoMSksSmkoIiAiLHYuY29tbW9uU3RyaW5nLmtleXMuY29sdW1uU2VwYXJhdG9y''@;'; put 'put ''RGVzY3JpcHRpb24sIiAiKSl9LGRlcGVuZGVuY2llczpbZXllXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxnUz0oKCk9PntjbGFzcyBkIGV4dGVuZHMgcHF7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3N1cGVyKHYpLHRoaXMuX3NvcnQ9aCx0aGlzLnZjcj15LHRoaXMuZGV0YWlsU2Vydmlj''@;'; put 'put ''ZT1DLHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWY9SSx0aGlzLmNvbW1vblN0cmluZ3M9Wix0aGlzLnNob3dTZXBhcmF0b3I9ITAsdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuX2NvbFR5cGU9InN0cmluZyIsdGhpcy5fc29ydGVkPSExLHRoaXMuc29ydGVkQ2hhbmdlPW5ldyBhcix0aGlzLl9z''@;'; put 'put ''b3J0T3JkZXI9ZGguVU5TT1JURUQsdGhpcy5zb3J0T3JkZXJDaGFuZ2U9bmV3IGFyLHRoaXMuY3VzdG9tRmlsdGVyPSExLHRoaXMuZmlsdGVyVmFsdWVDaGFuZ2U9bmV3IGFyLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMubGlzdGVuRm9yU29ydGluZ0NoYW5nZXMoKSksdGhpcy5zdWJz''@;'; put 'put ''Y3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JEZXRhaWxQYW5lQ2hhbmdlcygpKX1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1saXN0ZW5Gb3JEZXRhaWxQYW5lQ2hhbmdlcygpe3JldHVy''@;'; put 'put ''biB0aGlzLmRldGFpbFNlcnZpY2Uuc3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKGg9Pnt0aGlzLnNob3dTZXBhcmF0b3IhPT0haCYmKHRoaXMuc2hvd1NlcGFyYXRvcj0haCx0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKX0pfWxpc3RlbkZvclNvcnRpbmdDaGFuZ2VzKCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuX3NvcnQuY2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKSx0aGlzLnNvcnRPcmRlciE9PWRoLlVOU09SVEVEJiZoLmNvbXBhcmF0b3IhPT10aGlzLl9zb3J0QnkmJih0aGlzLl9zb3J0T3JkZXI9ZGguVU5TT1JURUQsdGhp''@;'; put 'put ''cy5zb3J0T3JkZXJDaGFuZ2UuZW1pdCh0aGlzLl9zb3J0T3JkZXIpLHRoaXMuc29ydEljb249bnVsbCx0aGlzLl9zb3J0RGlyZWN0aW9uPW51bGwpLHRoaXMuc29ydGVkJiZoLmNvbXBhcmF0b3IhPT10aGlzLl9zb3J0QnkmJih0aGlzLl9zb3J0ZWQ9ITEsdGhpcy5zb3J0ZWRDaGFuZ2UuZW1p''@;'; put 'put ''dCghMSkpfSl9Z2V0IGNvbFR5cGUoKXtyZXR1cm4gdGhpcy5fY29sVHlwZX1zZXQgY29sVHlwZShoKXt0aGlzLl9jb2xUeXBlPWh9Z2V0IGZpZWxkKCl7cmV0dXJuIHRoaXMuX2ZpZWxkfXNldCBmaWVsZChoKXsic3RyaW5nIj09dHlwZW9mIGgmJih0aGlzLl9maWVsZD1oLHRoaXMuX3NvcnRC''@;'; put 'put ''eXx8KHRoaXMuX3NvcnRCeT1uZXcgdnEoaCkpKX1zZXR1cERlZmF1bHRGaWx0ZXIoaCx2KXsibnVtYmVyIj09PXY/dGhpcy5zZXRGaWx0ZXIobmV3IGhTKG5ldyBncShoKSkpOiJzdHJpbmciPT09diYmdGhpcy5zZXRGaWx0ZXIobmV3IGRTKG5ldyBtcShoKSkpLHRoaXMuZmlsdGVyJiZ0aGlz''@;'; put 'put ''LmluaXRGaWx0ZXJWYWx1ZSYmKHRoaXMudXBkYXRlRmlsdGVyVmFsdWU9dGhpcy5pbml0RmlsdGVyVmFsdWUsZGVsZXRlIHRoaXMuaW5pdEZpbHRlclZhbHVlKX1uZ09uQ2hhbmdlcyhoKXtoLmNvbFR5cGUmJmguY29sVHlwZS5jdXJyZW50VmFsdWUmJmguY29sVHlwZS5jdXJyZW50VmFsdWUh''@;'; put 'put ''PT1oLmNvbFR5cGUucHJldmlvdXNWYWx1ZSYmIXRoaXMuY3VzdG9tRmlsdGVyJiYhdGhpcy5maWx0ZXImJnRoaXMuY29sVHlwZSYmdGhpcy5maWVsZCYmdGhpcy5zZXR1cERlZmF1bHRGaWx0ZXIodGhpcy5maWVsZCx0aGlzLmNvbFR5cGUpLGguZmllbGQmJmguZmllbGQuY3VycmVudFZhbHVl''@;'; put 'put ''JiZoLmZpZWxkLmN1cnJlbnRWYWx1ZSE9PWguZmllbGQucHJldmlvdXNWYWx1ZSYmIXRoaXMuY3VzdG9tRmlsdGVyJiZ0aGlzLmNvbFR5cGUmJnRoaXMuc2V0dXBEZWZhdWx0RmlsdGVyKHRoaXMuZmllbGQsdGhpcy5jb2xUeXBlKX1nZXQgc29ydEJ5KCl7cmV0dXJuIHRoaXMuX3NvcnRCeX1z''@;'; put 'put ''ZXQgc29ydEJ5KGgpeyJzdHJpbmciPT10eXBlb2YgaD90aGlzLl9zb3J0Qnk9bmV3IHZxKGgpOmg/dGhpcy5fc29ydEJ5PWg6dGhpcy5maWVsZD90aGlzLl9zb3J0Qnk9bmV3IHZxKHRoaXMuZmllbGQpOmRlbGV0ZSB0aGlzLl9zb3J0Qnl9Z2V0IHNvcnRhYmxlKCl7cmV0dXJuISF0aGlzLl9z''@;'; put 'put ''b3J0Qnl9Z2V0IHNvcnRlZCgpe3JldHVybiB0aGlzLl9zb3J0ZWR9c2V0IHNvcnRlZChoKXshaCYmdGhpcy5zb3J0ZWQ/KHRoaXMuX3NvcnRlZD0hMSx0aGlzLl9zb3J0LmNsZWFyKCkpOmgmJiF0aGlzLnNvcnRlZCYmdGhpcy5zb3J0KCl9Z2V0IHNvcnRPcmRlcigpe3JldHVybiB0aGlzLl9z''@;'; put 'put ''b3J0T3JkZXJ9c2V0IHNvcnRPcmRlcihoKXtpZih2b2lkIDAhPT1oJiZ0aGlzLl9zb3J0T3JkZXIhPT1oKXN3aXRjaChoKXtkZWZhdWx0OmNhc2UgZGguVU5TT1JURUQ6dGhpcy5fc29ydC5jbGVhcigpO2JyZWFrO2Nhc2UgZGguQVNDOnRoaXMuc29ydCghMSk7YnJlYWs7Y2FzZSBkaC5ERVND''@;'; put 'put ''OnRoaXMuc29ydCghMCl9fWdldCBhcmlhU29ydCgpe3N3aXRjaCh0aGlzLl9zb3J0T3JkZXIpe2RlZmF1bHQ6Y2FzZSBkaC5VTlNPUlRFRDpyZXR1cm4ibm9uZSI7Y2FzZSBkaC5BU0M6cmV0dXJuImFzY2VuZGluZyI7Y2FzZSBkaC5ERVNDOnJldHVybiJkZXNjZW5kaW5nIn19Z2V0IHNvcnRE''@;'; put 'put ''aXJlY3Rpb24oKXtyZXR1cm4gdGhpcy5fc29ydERpcmVjdGlvbn1zb3J0KGgpeyF0aGlzLnNvcnRhYmxlfHwodGhpcy5fc29ydC50b2dnbGUodGhpcy5fc29ydEJ5LGgpLHRoaXMuX3NvcnRPcmRlcj10aGlzLl9zb3J0LnJldmVyc2U/ZGguREVTQzpkaC5BU0MsdGhpcy5fc29ydERpcmVjdGlv''@;'; put 'put ''bj10aGlzLl9zb3J0T3JkZXI9PT1kaC5ERVNDPyJkb3duIjoidXAiLHRoaXMuc29ydEljb249dGhpcy5fc29ydE9yZGVyPT09ZGguREVTQz8iYXJyb3cgZG93biI6ImFycm93Iix0aGlzLnNvcnRPcmRlckNoYW5nZS5lbWl0KHRoaXMuX3NvcnRPcmRlciksdGhpcy5fc29ydGVkPSEwLHRoaXMu''@;'; put 'put ''c29ydGVkQ2hhbmdlLmVtaXQoITApKX1zZXQgcHJvamVjdGVkRmlsdGVyKGgpe2gmJih0aGlzLmRlbGV0ZUZpbHRlcigpLHRoaXMuY3VzdG9tRmlsdGVyPSEwKX1nZXQgZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXJWYWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlclN0cmluZ1BsYWNlaG9sZGVyfHx0''@;'; put 'put ''aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5maWx0ZXJJdGVtc31nZXQgZmlsdGVyTnVtYmVyTWF4UGxhY2Vob2xkZXJWYWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlck51bWJlck1heFBsYWNlaG9sZGVyfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5tYXhWYWx1ZX1nZXQgZmlsdGVyTnVtYmVyTWlu''@;'; put 'put ''UGxhY2Vob2xkZXJWYWx1ZSgpe3JldHVybiB0aGlzLmZpbHRlck51bWJlck1pblBsYWNlaG9sZGVyfHx0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5taW5WYWx1ZX1zZXQgdXBkYXRlRmlsdGVyVmFsdWUoaCl7dGhpcy5maWx0ZXI/dGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBkUz8oKCFofHwic3Ry''@;'; put 'put ''aW5nIiE9dHlwZW9mIGgpJiYoaD0iIiksaCE9PXRoaXMuZmlsdGVyLnZhbHVlJiYodGhpcy5maWx0ZXIudmFsdWU9aCkpOnRoaXMuZmlsdGVyIGluc3RhbmNlb2YgaFMmJigoIWh8fCEoaCBpbnN0YW5jZW9mIEFycmF5KSkmJihoPVtudWxsLG51bGxdKSwyPT09aC5sZW5ndGgmJihoWzBdIT09''@;'; put 'put ''dGhpcy5maWx0ZXIudmFsdWVbMF18fGhbMV0hPT10aGlzLmZpbHRlci52YWx1ZVsxXSkmJih0aGlzLmZpbHRlci52YWx1ZT1oKSk6dGhpcy5pbml0RmlsdGVyVmFsdWU9aH1nZXQgZmlsdGVyVmFsdWUoKXtyZXR1cm4gdGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBkU3x8dGhpcy5maWx0ZXIgaW5z''@;'; put 'put ''dGFuY2VvZiBoUz90aGlzLmZpbHRlci52YWx1ZTpudWxsfXNldCBmaWx0ZXJWYWx1ZShoKXsodGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBkU3x8dGhpcy5maWx0ZXIgaW5zdGFuY2VvZiBoUykmJih0aGlzLnVwZGF0ZUZpbHRlclZhbHVlPWgsdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZS5lbWl0KHRo''@;'; put 'put ''aXMuZmlsdGVyLnZhbHVlKSl9bmdPbkluaXQoKXt0aGlzLndyYXBwZWRJbmplY3Rvcj1uZXcgYnQoSGZlLHRoaXMudmNyKX1nZXQgX3ZpZXcoKXtyZXR1cm4gdGhpcy53cmFwcGVkSW5qZWN0b3IuZ2V0KEhmZSx0aGlzLnZjcikuY29sdW1uVmlld319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoQXEpLEt0KHZ2KSxLdChVaSksS3QoQTgpLEt0KGQxKSxLdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctY29sdW1uIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHks''@;'; put 'put ''aHEsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5wcm9qZWN0ZWRGaWx0ZXI9Qy5maXJzdCl9fSxob3N0QXR0cnM6WyJyb2xlIiwiY29sdW1uaGVhZGVyIl0saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJihHaSgiYXJpYS1zb3J0Iix2LmFyaWFTb3J0KSxG''@;'; put 'put ''aSgiZGF0YWdyaWQtY29sdW1uIiwhMCkpfSxpbnB1dHM6e2NvbFR5cGU6WyJjbHJEZ0NvbFR5cGUiLCJjb2xUeXBlIl0sZmllbGQ6WyJjbHJEZ0ZpZWxkIiwiZmllbGQiXSxzb3J0Qnk6WyJjbHJEZ1NvcnRCeSIsInNvcnRCeSJdLHNvcnRlZDpbImNsckRnU29ydGVkIiwic29ydGVkIl0sc29y''@;'; put 'put ''dE9yZGVyOlsiY2xyRGdTb3J0T3JkZXIiLCJzb3J0T3JkZXIiXSxmaWx0ZXJTdHJpbmdQbGFjZWhvbGRlcjpbImNsckZpbHRlclN0cmluZ1BsYWNlaG9sZGVyIiwiZmlsdGVyU3RyaW5nUGxhY2Vob2xkZXIiXSxmaWx0ZXJOdW1iZXJNYXhQbGFjZWhvbGRlcjpbImNsckZpbHRlck51bWJlck1h''@;'; put 'put ''eFBsYWNlaG9sZGVyIiwiZmlsdGVyTnVtYmVyTWF4UGxhY2Vob2xkZXIiXSxmaWx0ZXJOdW1iZXJNaW5QbGFjZWhvbGRlcjpbImNsckZpbHRlck51bWJlck1pblBsYWNlaG9sZGVyIiwiZmlsdGVyTnVtYmVyTWluUGxhY2Vob2xkZXIiXSx1cGRhdGVGaWx0ZXJWYWx1ZTpbImNsckZpbHRlclZh''@;'; put 'put ''bHVlIiwidXBkYXRlRmlsdGVyVmFsdWUiXX0sb3V0cHV0czp7c29ydGVkQ2hhbmdlOiJjbHJEZ1NvcnRlZENoYW5nZSIsc29ydE9yZGVyQ2hhbmdlOiJjbHJEZ1NvcnRPcmRlckNoYW5nZSIsZmlsdGVyVmFsdWVDaGFuZ2U6ImNsckZpbHRlclZhbHVlQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtH''@;'; put 'put ''cyxoOCx6c10pLERvLEQyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6dyQsZGVjbHM6OSx2YXJzOjUsY29uc3RzOltbMSwiZGF0YWdyaWQtY29sdW1uLWZsZXgiXSxbImNsYXNzIiwiZGF0YWdyaWQtY29sdW1uLXRpdGxlIiwidHlwZSIsImJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbMywiY2xy''@;'; put 'put ''RmlsdGVyUGxhY2Vob2xkZXIiLCJjbHJEZ1N0cmluZ0ZpbHRlciIsImNsckZpbHRlclZhbHVlIiwiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xyRmlsdGVyTWF4UGxhY2Vob2xkZXIiLCJjbHJGaWx0ZXJNaW5QbGFjZWhvbGRlciIsImNsckRnTnVtZXJpY0ZpbHRlciIs''@;'; put 'put ''ImNsckZpbHRlclZhbHVlIiwiY2xyRmlsdGVyVmFsdWVDaGFuZ2UiLDQsIm5nSWYiXSxbImNvbHVtblRpdGxlIiwiIl0sWyJjbGFzcyIsImRhdGFncmlkLWNvbHVtbi10aXRsZSIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJkYXRhZ3JpZC1jb2x1bW4tdGl0bGUi''@;'; put 'put ''LDMsImNsaWNrIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiXSxbInNoYXBlIiwiYXJyb3ciLCJhcmlhLWhpZGRlbiIsInRydWUiLCJjbGFzcyIsInNvcnQtaWNvbiIsNCwibmdJZiJdLFsic2hhcGUiLCJhcnJvdyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwic29ydC1pY29uIl0sWzMsImNsckZp''@;'; put 'put ''bHRlclBsYWNlaG9sZGVyIiwiY2xyRGdTdHJpbmdGaWx0ZXIiLCJjbHJGaWx0ZXJWYWx1ZSIsImNsckZpbHRlclZhbHVlQ2hhbmdlIl0sWzMsImNsckZpbHRlck1heFBsYWNlaG9sZGVyIiwiY2xyRmlsdGVyTWluUGxhY2Vob2xkZXIiLCJjbHJEZ051bWVyaWNGaWx0ZXIiLCJjbHJGaWx0ZXJW''@;'; put 'put ''YWx1ZSIsImNsckZpbHRlclZhbHVlQ2hhbmdlIl0sWzEsImRhdGFncmlkLWNvbHVtbi10aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKFRqKSxudCgwLCJkaXYiLDApLHJuKDEsQSQsMywyLCJidXR0b24iLDEpLE5pKDIpLHJuKDMsY2NlLDEsMywiY2xyLWRnLXN0cmlu''@;'; put 'put ''Zy1maWx0ZXIiLDIpLHJuKDQsZmNlLDEsNCwiY2xyLWRnLW51bWVyaWMtZmlsdGVyIiwzKSxybig1LHF5LDEsMCwibmctdGVtcGxhdGUiLG51bGwsNCxacikscm4oNyxoY2UsMiwxLCJzcGFuIiw1KSxybig4LHkkLDEsMCwiY2xyLWRnLWNvbHVtbi1zZXBhcmF0b3IiLDYpLG90KCkpLDImaCYm''@;'; put 'put ''KHV0KDEpLFR0KCJuZ0lmIix2LnNvcnRhYmxlKSx1dCgyKSxUdCgibmdJZiIsdi5maWVsZCYmIXYuY3VzdG9tRmlsdGVyJiYic3RyaW5nIj09di5jb2xUeXBlKSx1dCgxKSxUdCgibmdJZiIsdi5maWVsZCYmIXYuY3VzdG9tRmlsdGVyJiYibnVtYmVyIj09di5jb2xUeXBlKSx1dCgzKSxUdCgi''@;'; put 'put ''bmdJZiIsIXYuc29ydGFibGUpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dTZXBhcmF0b3IpKX0sZGVwZW5kZW5jaWVzOltGZmUscnllLG95ZSxObyxYZCxab10sZW5jYXBzdWxhdGlvbjoyLGNoYW5nZURldGVjdGlvbjowfSksZH0pKCksZ3c9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYs''@;'; put 'put ''eSl7dGhpcy5fZmlsdGVycz1oLHRoaXMuX3NvcnQ9dix0aGlzLl9wYWdlPXksdGhpcy5sb2FkaW5nPSExLHRoaXMudHJhY2tCeT0oQyxJKT0+SSx0aGlzLl9zbWFydD0hMSx0aGlzLl9kaXNwbGF5ZWQ9W10sdGhpcy5fY2hhbmdlPW5ldyAkZSx0aGlzLl9hbGxDaGFuZ2VzPW5ldyAkZX1kZXN0''@;'; put 'put ''cm95KCl7dGhpcy5fZmlsdGVyc1N1YiYmdGhpcy5fZmlsdGVyc1N1Yi51bnN1YnNjcmliZSgpLHRoaXMuX3NvcnRTdWImJnRoaXMuX3NvcnRTdWIudW5zdWJzY3JpYmUoKSx0aGlzLl9wYWdlU3ViJiZ0aGlzLl9wYWdlU3ViLnVuc3Vic2NyaWJlKCl9Z2V0IHNtYXJ0KCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''X3NtYXJ0fXNtYXJ0ZW5VcCgpe3RoaXMuX3NtYXJ0PSEwLHRoaXMuX2ZpbHRlcnNTdWI9dGhpcy5fZmlsdGVycy5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT50aGlzLl9maWx0ZXJJdGVtcygpKSx0aGlzLl9zb3J0U3ViPXRoaXMuX3NvcnQuY2hhbmdlLnN1YnNjcmliZSgoKT0+e3RoaXMuX3NvcnQu''@;'; put 'put ''Y29tcGFyYXRvcj90aGlzLl9zb3J0SXRlbXMoKTp0aGlzLl9maWx0ZXJJdGVtcygpfSksdGhpcy5fcGFnZVN1Yj10aGlzLl9wYWdlLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnRoaXMuX2NoYW5nZVBhZ2UoKSl9Z2V0IGFsbCgpe3JldHVybiB0aGlzLl9hbGx9c2V0IGFsbChoKXt0aGlzLl9hbGw9''@;'; put 'put ''aCx0aGlzLmVtaXRBbGxDaGFuZ2VzKGgpLHRoaXMuc21hcnQ/dGhpcy5fZmlsdGVySXRlbXMoKToodGhpcy5fZGlzcGxheWVkPWgsdGhpcy5lbWl0Q2hhbmdlKCkpfXJlZnJlc2goKXt0aGlzLnNtYXJ0JiZ0aGlzLl9maWx0ZXJJdGVtcygpfWdldCBkaXNwbGF5ZWQoKXtyZXR1cm4gdGhpcy5f''@;'; put 'put ''ZGlzcGxheWVkfWVtaXRDaGFuZ2UoKXt0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLmRpc3BsYXllZCl9Z2V0IGNoYW5nZSgpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9ZW1pdEFsbENoYW5nZXMoaCl7dGhpcy5fYWxsQ2hhbmdlcy5uZXh0KGgpfWdldCBhbGxDaGFuZ2VzKCl7''@;'; put 'put ''cmV0dXJuIHRoaXMuX2FsbENoYW5nZXMuYXNPYnNlcnZhYmxlKCl9Z2V0IHVuaW5pdGlhbGl6ZWQoKXtyZXR1cm4hdGhpcy5fYWxsfV9maWx0ZXJJdGVtcygpe3RoaXMudW5pbml0aWFsaXplZHx8KHRoaXMuX2ZpbHRlcmVkPXRoaXMuX2ZpbHRlcnMuaGFzQWN0aXZlRmlsdGVycygpP3RoaXMu''@;'; put 'put ''X2FsbC5maWx0ZXIoaD0+dGhpcy5fZmlsdGVycy5hY2NlcHRzKGgpKTp0aGlzLl9hbGwuc2xpY2UoKSx0aGlzLl9wYWdlLnRvdGFsSXRlbXM9dGhpcy5fZmlsdGVyZWQubGVuZ3RoLHRoaXMuX3NvcnRJdGVtcygpKX1fc29ydEl0ZW1zKCl7dGhpcy51bmluaXRpYWxpemVkfHwodGhpcy5fc29y''@;'; put 'put ''dC5jb21wYXJhdG9yJiZ0aGlzLl9maWx0ZXJlZC5zb3J0KChoLHYpPT50aGlzLl9zb3J0LmNvbXBhcmUoaCx2KSksdGhpcy5fY2hhbmdlUGFnZSgpKX1fY2hhbmdlUGFnZSgpe3RoaXMudW5pbml0aWFsaXplZHx8dGhpcy5fcGFnZS5hY3RpdmF0ZWQmJjA9PT10aGlzLl9wYWdlLnNpemV8fCh0''@;'; put 'put ''aGlzLl9kaXNwbGF5ZWQ9dGhpcy5fcGFnZS5zaXplPjA/dGhpcy5fZmlsdGVyZWQuc2xpY2UodGhpcy5fcGFnZS5maXJzdEl0ZW0sdGhpcy5fcGFnZS5sYXN0SXRlbSsxKTp0aGlzLl9maWx0ZXJlZCx0aGlzLmVtaXRDaGFuZ2UoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXty''@;'; put 'put ''ZXR1cm4gbmV3KGh8fGQpKENpKHZ2KSxDaShBcSksQ2koZHcpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx6TD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMudGVtcGxhdGU9aCx0aGlzLmRpZmZlcnM9dix0aGlz''@;'; put 'put ''Lml0ZW1zPXksdGhpcy52Y3I9Qyx0aGlzLmRpZmZlcj1udWxsLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx5LnNtYXJ0ZW5VcCgpLHRoaXMuaXRlcmFibGVQcm94eT1uZXcgeHModGhpcy52Y3IsdGhpcy50ZW1wbGF0ZSx0aGlzLmRpZmZlcnMpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHkuY2hh''@;'; put 'put ''bmdlLnN1YnNjcmliZShJPT57dGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yT2Y9SSx0aGlzLml0ZXJhYmxlUHJveHkubmdEb0NoZWNrKCl9KSl9c2V0IHJhd0l0ZW1zKGgpe3RoaXMuX3Jhd0l0ZW1zPWh8fFtdfXNldCB0cmFja0J5KGgpe3RoaXMuaXRlbXMudHJhY2tCeT1oLHRoaXMuaXRlcmFi''@;'; put 'put ''bGVQcm94eS5uZ0ZvclRyYWNrQnk9aH1uZ0RvQ2hlY2soKXt0aGlzLmRpZmZlcnx8KHRoaXMuZGlmZmVyPXRoaXMuZGlmZmVycy5maW5kKHRoaXMuX3Jhd0l0ZW1zKS5jcmVhdGUodGhpcy5pdGVyYWJsZVByb3h5Lm5nRm9yVHJhY2tCeSkpLHRoaXMuZGlmZmVyJiZ0aGlzLmRpZmZlci5kaWZm''@;'; put 'put ''KHRoaXMuX3Jhd0l0ZW1zKSYmKHRoaXMuaXRlbXMuYWxsPXRoaXMuX3Jhd0l0ZW1zKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHFy''@;'; put 'put ''KSxLdChQQSksS3QoZ3cpLEt0KFVpKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckRnSXRlbXMiLCIiLCJjbHJEZ0l0ZW1zT2YiLCIiXV0saW5wdXRzOntyYXdJdGVtczpbImNsckRnSXRlbXNPZiIsInJhd0l0ZW1zIl0sdHJhY2tCeTpbImNsckRnSXRlbXNU''@;'; put 'put ''cmFja0J5IiwidHJhY2tCeSJdfX0pLGR9KSgpLGpmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaXRlbXM9aH1nZXQgZW1wdHlEYXRhZ3JpZCgpe3JldHVybiEodGhpcy5pdGVtcy5sb2FkaW5nfHx0aGlzLml0ZW1zLmRpc3BsYXllZCYmMCE9PXRoaXMuaXRlbXMuZGlzcGxh''@;'; put 'put ''eWVkLmxlbmd0aCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGd3KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1wbGFjZWhvbGRlciJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYp''@;'; put 'put ''ezImaCYmRmkoImRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbnRhaW5lciIsITApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6NCx2YXJzOjQsY29uc3RzOltbInJvbGUiLCJyb3ciLDEsImRhdGFncmlkLXBsYWNlaG9sZGVyIl0sWyJjbGFzcyIsImRhdGFncmlkLXBsYWNlaG9sZGVyLWlt''@;'; put 'put ''YWdlIiw0LCJuZ0lmIl0sWyJyb2xlIiwiZ3JpZGNlbGwiLDEsImRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbnRlbnQiXSxbNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1wbGFjZWhvbGRlci1pbWFnZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksbnQoMCwiZGl2IiwwKSxybigx''@;'; put 'put ''LGRjZSwxLDAsImRpdiIsMSksbnQoMiwic3BhbiIsMikscm4oMyxwY2UsMSwwLCJuZy1jb250ZW50IiwzKSxvdCgpKCkpLDImaCYmKEZpKCJkYXRhZ3JpZC1lbXB0eSIsdi5lbXB0eURhdGFncmlkKSx1dCgxKSxUdCgibmdJZiIsdi5lbXB0eURhdGFncmlkKSx1dCgyKSxUdCgibmdJZiIsdi5l''@;'; put 'put ''bXB0eURhdGFncmlkKSl9LGRlcGVuZGVuY2llczpbTm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFpmZT0oKCk9PntjbGFzcyBke3NldCB0cmlnZ2VyRWwoaCl7dGhpcy5fdHJpZ2dlckVsPWh9Zm9jdXNUcmlnZ2VyKCl7dGhpcy5fdHJpZ2dlckVsJiZ0aGlzLl90cmlnZ2VyRWwuZm9jdXMo''@;'; put 'put ''KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksemZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9pZD1uZXcgJGV9c2V0SWQoaCl7dGhp''@;'; put 'put ''cy5faWQubmV4dChoKX1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWQuYXNPYnNlcnZhYmxlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHlxPSgoKT0+''@;'; put 'put ''e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFosdWUpe3RoaXMudG9nZ2xlU2VydmljZT1oLHRoaXMuZWw9dix0aGlzLmNvbW1vblN0cmluZ3M9eSx0aGlzLnNpZ25wb3N0SWRTZXJ2aWNlPUMsdGhpcy5zaWducG9zdEZvY3VzTWFuYWdlcj1JLHRoaXMucGxhdGZvcm1JZD11ZSx0aGlz''@;'; put 'put ''LnN1YnNjcmlwdGlvbnM9W10sdGhpcy5kb2N1bWVudD1afW5nT25Jbml0KCl7dGhpcy5zaWducG9zdEZvY3VzTWFuYWdlci50cmlnZ2VyRWw9dGhpcy5lbC5uYXRpdmVFbGVtZW50LHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmli''@;'; put 'put ''ZShoPT57dGhpcy5hcmlhRXhwYW5kZWQ9aDtjb25zdCB2PXRoaXMuaXNPcGVuO3RoaXMuaXNPcGVuPWgsIXRoaXMuaXNPcGVuJiZ2JiZ0aGlzLmZvY3VzT25DbG9zZSgpfSksdGhpcy5zaWducG9zdElkU2VydmljZS5pZC5zdWJzY3JpYmUoaD0+dGhpcy5hcmlhQ29udHJvbD1oKSksdGhpcy5h''@;'; put 'put ''ZGREZWZhdWx0QXJpYUxhYmVsKHRoaXMuZWwubmF0aXZlRWxlbWVudCl9YWRkRGVmYXVsdEFyaWFMYWJlbChoKXtoLmhhc0F0dHJpYnV0ZSgiYXJpYS1sYWJlbCIpfHxoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdGhpcy5jb21tb25TdHJpbmdzLmtleXMuc2lnbnBvc3RUb2dnbGUpfWZv''@;'; put 'put ''Y3VzT25DbG9zZSgpeyFTbCh0aGlzLnBsYXRmb3JtSWQpfHwhdGhpcy5pc09wZW4mJnRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXRoaXMuZG9jdW1lbnQuYm9keSYmdGhpcy5zaWducG9zdEZvY3VzTWFuYWdlci5mb2N1c1RyaWdnZXIoKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2Ny''@;'; put 'put ''aXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9b25TaWducG9zdFRyaWdnZXJDbGljayhoKXt0aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh6cyksS3QoYm8pLEt0''@;'; put 'put ''KG5zKSxLdCh6ZmUpLEt0KFpmZSksS3QoZ3MpLEt0KEwyKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclNpZ25wb3N0VHJpZ2dlciIsIiJdXSxob3N0QXR0cnM6WzEsInNpZ25wb3N0LXRyaWdnZXIiXSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlv''@;'; put 'put ''bihoLHYpezEmaCYmR24oImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vblNpZ25wb3N0VHJpZ2dlckNsaWNrKEMpfSksMiZoJiYoR2koImFyaWEtZXhwYW5kZWQiLHYuYXJpYUV4cGFuZGVkKSgiYXJpYS1jb250cm9scyIsdi5hcmlhQ29udHJvbCksRmkoImFjdGl2ZSIsdi5pc09wZW4p''@;'; put 'put ''KX19KSxkfSkoKSxHZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmNvbW1vblN0cmluZ3M9aCx0aGlzLnVzZUN1c3RvbVRyaWdnZXI9ITF9c2V0IGN1c3RvbVRyaWdnZXIoaCl7dGhpcy51c2VDdXN0b21UcmlnZ2VyPSEhaH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXNpZ25wb3N0Il1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHkseXEsNSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5jdXN0b21U''@;'; put 'put ''cmlnZ2VyPUMuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJzaWducG9zdCIsITApfSxmZWF0dXJlczpbaG8oW3pzLFpmZSx7cHJvdmlkZTp0Zix1c2VFeGlzdGluZzpib30semZlXSldLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoy''@;'; put 'put ''LHZhcnM6MSxjb25zdHM6W1s0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyU2lnbnBvc3RUcmlnZ2VyIiwiIiwxLCJzaWducG9zdC1hY3Rpb24iLCJidG4iLCJidG4tc21hbGwiLCJidG4tbGluayJdLFsic2hhcGUiLCJpbmZvLWNpcmNsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYp''@;'; put 'put ''ezEmaCYmKEswKCkscm4oMCxhdiwzLDEsIm5nLWNvbnRhaW5lciIsMCksTmkoMSkpLDImaCYmVHQoIm5nSWYiLCF2LnVzZUN1c3RvbVRyaWdnZXIpfSxkZXBlbmRlbmNpZXM6W05vLHlxLFpvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxXZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigp''@;'; put 'put ''e3RoaXMuX2R5bmFtaWM9ITF9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5jZWxsVmlldz10aGlzLnRlbXBsYXRlUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhudWxsKX1uZ09uRGVzdHJveSgpe3RoaXMuY2VsbFZpZXcuZGVzdHJveSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0''@;'; put 'put ''dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siZGctd3JhcHBlZC1jZWxsIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8oSWosNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi50ZW1wbGF0ZVJlZj15LmZpcnN0KX19LG5nQ29u''@;'; put 'put ''dGVudFNlbGVjdG9yczpuYSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1siY2VsbFBvcnRhbCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscm4oMCxiJCwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDAsWnIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksbXc9KCgpPT57''@;'; put 'put ''Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnZjcj1ofW5nT25Jbml0KCl7dGhpcy53cmFwcGVkSW5qZWN0b3I9bmV3IGJ0KFdmZSx0aGlzLnZjcil9Z2V0IF92aWV3KCl7cmV0dXJuIHRoaXMud3JhcHBlZEluamVjdG9yLmdldChXZmUsdGhpcy52Y3IpLmNlbGxWaWV3fX1yZXR1cm4gZC5c''@;'; put 'put ''dTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChVaSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctY2VsbCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LEdmZSw0KSwyJmgpe2xldCBDO0hpKEM9''@;'; put 'put ''JGkoKSkmJih2LnNpZ25wb3N0PUMpfX0saG9zdEF0dHJzOlsicm9sZSIsImdyaWRjZWxsIl0saG9zdFZhcnM6NCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJkYXRhZ3JpZC1jZWxsIiwhMCkoImRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIiLHYuc2lnbnBvc3QubGVuZ3Ro''@;'; put 'put ''PjApfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksYXllPTAsdVo9KCgpPT57Y2xhc3MgZCBleHRlbmRzIHIxe2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0''@;'; put 'put ''aGlzLmV4cGFuZGFibGVJZD0iIix0aGlzLl9yZXBsYWNlPW5ldyBmcyghMSksdGhpcy5fYW5pbWF0ZT1uZXcgJGUsYXllKyssdGhpcy5leHBhbmRhYmxlSWQ9ImNsci1kZy1leHBhbmRhYmxlLXJvdy0iK2F5ZX1nZXQgZXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5fZXhwYW5kZWR9c2V0IGV4cGFu''@;'; put 'put ''ZGVkKGgpeyhoPSEhaCkhPT10aGlzLl9leHBhbmRlZCYmKHRoaXMuX2V4cGFuZGVkPWgsdGhpcy5fYW5pbWF0ZS5uZXh0KCksdGhpcy5fZXhwYW5kQ2hhbmdlLm5leHQoaCkpfWxvYWRpbmdTdGF0ZUNoYW5nZShoKXtzdXBlci5sb2FkaW5nU3RhdGVDaGFuZ2UoaCksaCE9PWdpLkxPQURJTkcm''@;'; put 'put ''JnRoaXMuX2FuaW1hdGUubmV4dCgpfWdldCByZXBsYWNlKCl7cmV0dXJuIHRoaXMuX3JlcGxhY2UuYXNPYnNlcnZhYmxlKCl9c2V0UmVwbGFjZShoKXt0aGlzLl9yZXBsYWNlLm5leHQoaCl9Z2V0IGFuaW1hdGUoKXtyZXR1cm4gdGhpcy5fYW5pbWF0ZS5hc09ic2VydmFibGUoKX19cmV0dXJu''@;'; put 'put ''IGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7dmFyIHZ3PSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5ESVNQTEFZPTBdPSJESVNQTEFZIixkW2QuQ0FMQ1VMQVRFPTFdPSJD''@;'; put 'put ''QUxDVUxBVEUifSh2d3x8KHZ3PXt9KSksdncpKSgpLFdzPSgoKT0+KGZ1bmN0aW9uKGQpe2RbZC5Ob25lPTBdPSJOb25lIixkW2QuU2luZ2xlPTFdPSJTaW5nbGUiLGRbZC5NdWx0aT0yXT0iTXVsdGkifShXc3x8KFdzPXt9KSksV3MpKSgpO2xldCBZZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1''@;'; put 'put ''Y3Rvcigpe3RoaXMuX2R5bmFtaWM9ITF9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5yb3dWaWV3PXRoaXMudGVtcGxhdGVSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KG51bGwpfW5nT25EZXN0cm95KCl7dGhpcy5yb3dWaWV3LmRlc3Ryb3koKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; put 'put ''e3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImRnLXdyYXBwZWQtcm93Il1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8odDMsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi50ZW1wbGF0ZVJlZj15LmZpcnN0KX19LG5n''@;'; put 'put ''Q29udGVudFNlbGVjdG9yczpuYSxkZWNsczoyLHZhcnM6MCxjb25zdHM6W1sicm93UG9ydGFsIiwiIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLGdjZSwxLDAsIm5nLXRlbXBsYXRlIixudWxsLDAsWnIpKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksU09lPTAs''@;'; put 'put ''Y1o9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5faXRlbXM9aCx0aGlzLl9maWx0ZXJzPXYsdGhpcy5fem9uZT15LHRoaXMucHJlc2VydmVTZWxlY3Rpb249ITEsdGhpcy5wcmV2U2VsZWN0aW9uUmVmcz1bXSx0aGlzLmxvY2tlZFJlZnM9W10sdGhpcy5fc2VsZWN0aW9u''@;'; put 'put ''VHlwZT1Xcy5Ob25lLHRoaXMucm93U2VsZWN0aW9uTW9kZT0hMSx0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5zaGlmdFByZXNzZWQ9ITEsdGhpcy52YWx1ZUNvbGxlY3Rvcj1uZXcgJGUsdGhpcy5fY2hhbmdlPW5ldyAkZSx0aGlzLmlkPSJjbHItZGctc2VsZWN0aW9uIitTT2UrKyx0aGlz''@;'; put 'put ''LnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLl9maWx0ZXJzLmNoYW5nZS5zdWJzY3JpYmUoKCk9PnshdGhpcy5fc2VsZWN0YWJsZXx8dGhpcy5wcmVzZXJ2ZVNlbGVjdGlvbnx8dGhpcy5jbGVhclNlbGVjdGlvbigpfSkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX2l0ZW1zLmFsbENo''@;'; put 'put ''YW5nZXMuc3Vic2NyaWJlKEM9Pntjb25zdCBJPVtdO3N3aXRjaCh0aGlzLnNlbGVjdGlvblR5cGUpe2Nhc2UgV3MuTm9uZTpicmVhaztjYXNlIFdzLlNpbmdsZTp7bGV0IFo7Y29uc3QgdWU9dGhpcy5faXRlbXMudHJhY2tCeTtsZXQgX2U9ITE7aWYodGhpcy5jdXJyZW50U2luZ2xlJiYhdGhp''@;'; put 'put ''cy5wcmV2U2luZ2xlU2VsZWN0aW9uUmVmJiZ0aGlzLl9pdGVtcy5hbGwmJnRoaXMuX2l0ZW1zLnRyYWNrQnkpe2NvbnN0IEJlPXRoaXMuX2l0ZW1zLmFsbC5maW5kSW5kZXgoTmU9Pk5lPT09dGhpcy5jdXJyZW50U2luZ2xlKTt0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWY9dGhpcy5faXRl''@;'; put 'put ''bXMudHJhY2tCeShCZSx0aGlzLmN1cnJlbnRTaW5nbGUpfUMuZm9yRWFjaCgoQmUsTmUpPT57Y29uc3QgS2U9dWUoTmUsQmUpO3RoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj09PUtlJiYoWj1CZSxfZT0hMCksdGhpcy5sb2NrZWRSZWZzLmluZGV4T2YoS2UpPi0xJiZJLnB1c2goS2UpfSks''@;'; put 'put ''dGhpcy5faXRlbXMuc21hcnQmJiFaJiYoX2U9ITApLHNldFRpbWVvdXQoKCk9PntfZSYmKHRoaXMuY3VycmVudFNpbmdsZT1aKX0sMCk7YnJlYWt9Y2FzZSBXcy5NdWx0aTp7bGV0IFo9dGhpcy5jdXJyZW50LnNsaWNlKCk7Y29uc3QgdWU9dGhpcy5faXRlbXMudHJhY2tCeTtsZXQgX2U9ITE7''@;'; put 'put ''dGhpcy5jdXJyZW50Lmxlbmd0aD4wJiZ0aGlzLnByZXZTZWxlY3Rpb25SZWZzLmxlbmd0aCE9PXRoaXMuY3VycmVudC5sZW5ndGgmJnRoaXMuX2l0ZW1zLmFsbCYmdGhpcy5faXRlbXMudHJhY2tCeSYmKHRoaXMucHJldlNlbGVjdGlvblJlZnM9W10sdGhpcy5jdXJyZW50LmZvckVhY2goQmU9''@;'; put 'put ''Pntjb25zdCBOZT10aGlzLl9pdGVtcy5hbGwuZmluZEluZGV4KEtlPT5LZT09PUJlKTt0aGlzLnByZXZTZWxlY3Rpb25SZWZzLnB1c2godGhpcy5faXRlbXMudHJhY2tCeShOZSxCZSkpfSkpLEMuZm9yRWFjaCgoQmUsTmUpPT57Y29uc3QgS2U9dWUoTmUsQmUpO3RoaXMubG9ja2VkUmVmcy5p''@;'; put 'put ''bmRleE9mKEtlKT4tMSYmSS5wdXNoKEtlKX0pLFoubGVuZ3RoPjAmJihDLmZvckVhY2goKEJlLE5lKT0+e2NvbnN0IEtlPXVlKE5lLEJlKSxwdD10aGlzLnByZXZTZWxlY3Rpb25SZWZzLmluZGV4T2YoS2UpO3B0Pi0xJiYoWltwdF09QmUsX2U9ITApfSksdGhpcy5faXRlbXMuc21hcnQmJiha''@;'; put 'put ''PVouZmlsdGVyKEJlPT5DLmluZGV4T2YoQmUpPi0xKSx0aGlzLmN1cnJlbnQubGVuZ3RoIT09Wi5sZW5ndGgmJihfZT0hMCkpLHNldFRpbWVvdXQoKCk9PntfZSYmKHRoaXMuY3VycmVudD1aKX0sMCkpO2JyZWFrfX10aGlzLmxvY2tlZFJlZnM9SX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVz''@;'; put 'put ''aCh0aGlzLnZhbHVlQ29sbGVjdG9yLnBpcGUoREQoMCkpLnN1YnNjcmliZSgoKT0+dGhpcy5lbWl0Q2hhbmdlKCkpKX1jbGVhclNlbGVjdGlvbigpe3RoaXMuX2N1cnJlbnQ9W10sdGhpcy5wcmV2U2VsZWN0aW9uUmVmcz1bXSx0aGlzLnByZXZTaW5nbGVTZWxlY3Rpb25SZWY9bnVsbCx0aGlz''@;'; put 'put ''Ll9jdXJyZW50U2luZ2xlPW51bGwsdGhpcy5lbWl0Q2hhbmdlKCl9Z2V0IHNlbGVjdGlvblR5cGUoKXtyZXR1cm4gdGhpcy5fc2VsZWN0aW9uVHlwZX1zZXQgc2VsZWN0aW9uVHlwZShoKXtoIT09dGhpcy5zZWxlY3Rpb25UeXBlJiYodGhpcy5fc2VsZWN0aW9uVHlwZT1oLGg9PT1Xcy5Ob25l''@;'; put 'put ''P2RlbGV0ZSB0aGlzLmN1cnJlbnQ6dGhpcy51cGRhdGVDdXJyZW50KFtdLCExKSl9Z2V0IF9zZWxlY3RhYmxlKCl7cmV0dXJuIHRoaXMuX3NlbGVjdGlvblR5cGU9PT1Xcy5NdWx0aXx8dGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLlNpbmdsZX1kZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25z''@;'; put 'put ''LmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1nZXQgY3VycmVudFNpbmdsZSgpe3JldHVybiB0aGlzLl9jdXJyZW50U2luZ2xlfXNldCBjdXJyZW50U2luZ2xlKGgpe2lmKGghPT10aGlzLl9jdXJyZW50U2luZ2xlKXtpZih0aGlzLl9jdXJyZW50U2luZ2xlPWgsdGhpcy5faXRlbXMuYWxs''@;'; put 'put ''JiZ0aGlzLl9pdGVtcy50cmFja0J5JiZoKXtjb25zdCB2PXRoaXMuX2l0ZW1zLmFsbC5maW5kSW5kZXgoeT0+eT09PWgpO3RoaXMucHJldlNpbmdsZVNlbGVjdGlvblJlZj10aGlzLl9pdGVtcy50cmFja0J5KHYsaCl9dGhpcy5lbWl0Q2hhbmdlKCl9fWdldCBjdXJyZW50KCl7cmV0dXJuIHRo''@;'; put 'put ''aXMuX2N1cnJlbnR9c2V0IGN1cnJlbnQoaCl7dGhpcy51cGRhdGVDdXJyZW50KGgsITApfXVwZGF0ZUN1cnJlbnQoaCx2KXt0aGlzLl9jdXJyZW50PWgsdiYmdGhpcy52YWx1ZUNvbGxlY3Rvci5uZXh0KGgpfWVtaXRDaGFuZ2UoKXt0aGlzLl9zZWxlY3Rpb25UeXBlPT09V3MuU2luZ2xlP3Ro''@;'; put 'put ''aXMuX2NoYW5nZS5uZXh0KHRoaXMuY3VycmVudFNpbmdsZSk6dGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLk11bHRpJiZ0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLmN1cnJlbnQpfWdldCBjaGFuZ2UoKXtyZXR1cm4gdGhpcy5fY2hhbmdlLmFzT2JzZXJ2YWJsZSgpfWlzU2VsZWN0ZWQoaCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuX3NlbGVjdGlvblR5cGU9PT1Xcy5TaW5nbGU/dGhpcy5jdXJyZW50U2luZ2xlPT09aDp0aGlzLl9zZWxlY3Rpb25UeXBlPT09V3MuTXVsdGkmJnRoaXMuY3VycmVudC5pbmRleE9mKGgpPj0wfXNlbGVjdEl0ZW0oaCl7aWYodGhpcy5jdXJyZW50PXRoaXMuY3VycmVudC5jb25j''@;'; put 'put ''YXQoaCksdGhpcy5faXRlbXMudHJhY2tCeSYmdGhpcy5faXRlbXMuYWxsKXtjb25zdCB2PXRoaXMuX2l0ZW1zLmFsbC5maW5kSW5kZXgoeT0+eT09PWgpO3RoaXMucHJldlNlbGVjdGlvblJlZnMucHVzaCh0aGlzLl9pdGVtcy50cmFja0J5KHYsaCkpfX1kZXNlbGVjdEl0ZW0oaCl7aWYodGhp''@;'; put 'put ''cy5jdXJyZW50PXRoaXMuY3VycmVudC5zbGljZSgwLGgpLmNvbmNhdCh0aGlzLmN1cnJlbnQuc2xpY2UoaCsxKSksdGhpcy5faXRlbXMudHJhY2tCeSYmaDx0aGlzLnByZXZTZWxlY3Rpb25SZWZzLmxlbmd0aCl7Y29uc3Qgdj10aGlzLnByZXZTZWxlY3Rpb25SZWZzLnNwbGljZShoLDEpO3Ro''@;'; put 'put ''aXMubG9ja2VkUmVmcz10aGlzLmxvY2tlZFJlZnMuZmlsdGVyKHk9PnkhPT12WzBdKX19c2V0U2VsZWN0ZWQoaCx2KXtjb25zdCB5PXRoaXMuY3VycmVudD90aGlzLmN1cnJlbnQuaW5kZXhPZihoKTotMTtzd2l0Y2godGhpcy5fc2VsZWN0aW9uVHlwZSl7Y2FzZSBXcy5Ob25lOmNhc2UgV3Mu''@;'; put 'put ''U2luZ2xlOmJyZWFrO2Nhc2UgV3MuTXVsdGk6eT49MCYmIXY/dGhpcy5kZXNlbGVjdEl0ZW0oeSk6eTwwJiZ2JiZ0aGlzLnNlbGVjdEl0ZW0oaCl9fWlzQWxsU2VsZWN0ZWQoKXtpZih0aGlzLl9zZWxlY3Rpb25UeXBlIT09V3MuTXVsdGl8fCF0aGlzLl9pdGVtcy5kaXNwbGF5ZWQpcmV0dXJu''@;'; put 'put ''ITE7Y29uc3QgaD10aGlzLl9pdGVtcy5kaXNwbGF5ZWQuZmlsdGVyKEM9PiExPT09dGhpcy5pc0xvY2tlZChDKSk7cmV0dXJuIShoLmxlbmd0aDwxKSYmaC5maWx0ZXIoQz0+dGhpcy5jdXJyZW50LmluZGV4T2YoQyk+LTEpLmxlbmd0aD09PWgubGVuZ3RofWNhbkl0QmVMb2NrZWQoKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5fc2VsZWN0aW9uVHlwZSE9PVdzLk5vbmUmJkFycmF5LmlzQXJyYXkodGhpcy5faXRlbXMuYWxsKX1sb2NrSXRlbShoLHYpe2lmKHRoaXMuY2FuSXRCZUxvY2tlZCgpKXtjb25zdCB5PXRoaXMuX2l0ZW1zLnRyYWNrQnkodGhpcy5faXRlbXMuYWxsLmZpbmRJbmRleChDPT5DPT09''@;'; put 'put ''aCksaCk7ITA9PT12P3RoaXMubG9ja2VkUmVmcy5wdXNoKHkpOnRoaXMubG9ja2VkUmVmcz10aGlzLmxvY2tlZFJlZnMuZmlsdGVyKEM9PnkhPT1DKX19aXNMb2NrZWQoaCl7aWYodGhpcy5jYW5JdEJlTG9ja2VkKCkpe2NvbnN0IHY9dGhpcy5faXRlbXMudHJhY2tCeSh0aGlzLl9pdGVtcy5h''@;'; put 'put ''bGwuZmluZEluZGV4KHk9Pnk9PT1oKSxoKTtyZXR1cm4gdGhpcy5sb2NrZWRSZWZzLmluZGV4T2Yodik+LTF9cmV0dXJuITF9dG9nZ2xlQWxsKCl7dGhpcy5fc2VsZWN0aW9uVHlwZT09PVdzLk5vbmV8fHRoaXMuX3NlbGVjdGlvblR5cGU9PT1Xcy5TaW5nbGV8fCh0aGlzLmlzQWxsU2VsZWN0''@;'; put 'put ''ZWQoKT90aGlzLl9pdGVtcy5kaXNwbGF5ZWQuZm9yRWFjaChoPT57Y29uc3Qgdj10aGlzLmN1cnJlbnQuaW5kZXhPZihoKTt2Pi0xJiYhMT09PXRoaXMuaXNMb2NrZWQoaCkmJnRoaXMuZGVzZWxlY3RJdGVtKHYpfSk6dGhpcy5faXRlbXMuZGlzcGxheWVkLmZvckVhY2goaD0+e3RoaXMuY3Vy''@;'; put 'put ''cmVudC5pbmRleE9mKGgpPDAmJiExPT09dGhpcy5pc0xvY2tlZChoKSYmdGhpcy5zZWxlY3RJdGVtKGgpfSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShndyksQ2kodnYpLENpKF9sKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0''@;'; put 'put ''b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksVWZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuX3ZpZXc9bmV3IGZzKHZ3LkRJU1BMQVkpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKGguZmlsdGVyUmVuZGVyU3RlcHMoaDQuQ0FMQ1VMQVRF''@;'; put 'put ''X01PREVfT04pLnN1YnNjcmliZSgoKT0+dGhpcy5fdmlldy5uZXh0KHZ3LkNBTENVTEFURSkpKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChoLmZpbHRlclJlbmRlclN0ZXBzKGg0LkNBTENVTEFURV9NT0RFX09GRikuc3Vic2NyaWJlKCgpPT50aGlzLl92aWV3Lm5leHQodncuRElTUExBWSkp''@;'; put 'put ''KX1nZXQgdmlldygpe3JldHVybiB0aGlzLl92aWV3LmFzT2JzZXJ2YWJsZSgpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2kocFMpKX0s''@;'; put 'put ''ZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx3cT0wLG1TPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFosdWUsX2UsQmUsTmUsS2UscHQpe3RoaXMuc2VsZWN0aW9uPWgsdGhpcy5yb3dBY3Rpb25TZXJ2aWNlPXYsdGhpcy5n''@;'; put 'put ''bG9iYWxFeHBhbmRhYmxlPXksdGhpcy5leHBhbmQ9Qyx0aGlzLmRldGFpbFNlcnZpY2U9SSx0aGlzLmRpc3BsYXlNb2RlPVosdGhpcy52Y3I9dWUsdGhpcy5yZW5kZXJlcj1fZSx0aGlzLmVsPUJlLHRoaXMuY29tbW9uU3RyaW5ncz1OZSx0aGlzLml0ZW1zPUtlLHRoaXMuZG9jdW1lbnQ9cHQs''@;'; put 'put ''dGhpcy5TRUxFQ1RJT05fVFlQRT1Xcyx0aGlzLmV4cGFuZEFuaW1hdGlvblRyaWdnZXI9ITEsdGhpcy5fc2VsZWN0ZWQ9ITEsdGhpcy5zZWxlY3RlZENoYW5nZWQ9bmV3IGFyKCExKSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBhcighMSksdGhpcy5fZGV0YWlsT3BlbkxhYmVsPSIiLHRoaXMu''@;'; put 'put ''X2RldGFpbENsb3NlTGFiZWw9IiIsdGhpcy5fcm93QXJpYUxhYmVsPSIiLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmRpc3BsYXlDZWxscz0hMSx3cSsrLHRoaXMuaWQ9ImNsci1kZy1yb3ciK3dxLHRoaXMucmFkaW9JZD0iY2xyLWRnLXJvdy1yZCIrd3EsdGhpcy5jaGVja2JveElkPSJj''@;'; put 'put ''bHItZGctcm93LWNiIit3cSx0aGlzLmV4cGFuZGFibGVJZD1DLmV4cGFuZGFibGVJZCx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChvSSh0aGlzLmV4cGFuZC5yZXBsYWNlLHRoaXMuZXhwYW5kLmV4cGFuZENoYW5nZSkuc3Vic2NyaWJlKChbT3QsJHRdKT0+e090JiYkdD8odGhpcy5yZXBsYWNl''@;'; put 'put ''ZD0hMCx0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiZGF0YWdyaWQtcm93LXJlcGxhY2VkIikpOih0aGlzLnJlcGxhY2VkPSExLHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCJkYXRhZ3JpZC1yb3ctcmVwbGFjZWQi''@;'; put 'put ''KSl9KSl9Y2xlYXJSYW5nZXMoaCl7aC5zaGlmdEtleSYmKHRoaXMuZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCksLTEhPT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJGaXJlZm94IikmJihoLnByZXZlbnREZWZhdWx0KCksdGhpcy50b2dnbGUo''@;'; put 'put ''ITApKSl9Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1Xcy5Ob25lP3RoaXMuX3NlbGVjdGVkOnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQodGhpcy5pdGVtKX1zZXQgc2VsZWN0ZWQoaCl7dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09''@;'; put 'put ''PVdzLk5vbmU/dGhpcy5fc2VsZWN0ZWQ9aDooaCYmdGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PVdzLk11bHRpP3RoaXMucmFuZ2VTZWxlY3QoKTp0aGlzLnNlbGVjdGlvbi5yYW5nZVN0YXJ0PW51bGwsdGhpcy5zZWxlY3Rpb24uc2V0U2VsZWN0ZWQodGhpcy5pdGVtLGgpKX1zZXQg''@;'; put 'put ''Y2xyRGdTZWxlY3RhYmxlKGgpe3RoaXMuc2VsZWN0aW9uLmxvY2tJdGVtKHRoaXMuaXRlbSwhMT09PWgpfWdldCBjbHJEZ1NlbGVjdGFibGUoKXtyZXR1cm4hdGhpcy5zZWxlY3Rpb24uaXNMb2NrZWQodGhpcy5pdGVtKX10b2dnbGUoaD0hdGhpcy5zZWxlY3RlZCl7aCE9PXRoaXMuc2VsZWN0''@;'; put 'put ''ZWQmJih0aGlzLnNlbGVjdGVkPWgsdGhpcy5zZWxlY3RlZENoYW5nZWQuZW1pdChoKSl9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuZXhwYW5kLmV4cGFuZGVkfXNldCBleHBhbmRlZChoKXt0aGlzLmV4cGFuZC5leHBhbmRlZD1ofXRvZ2dsZUV4cGFuZCgpe3RoaXMuZXhwYW5kLmV4cGFu''@;'; put 'put ''ZGFibGUmJih0aGlzLmV4cGFuZEFuaW1hdGlvbi51cGRhdGVTdGFydEhlaWdodCgpLHRoaXMuZXhwYW5kZWQ9IXRoaXMuZXhwYW5kZWQsdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpKX1zZXQgY2xyRGdEZXRhaWxPcGVuTGFiZWwoaCl7dGhpcy5fZGV0YWlsT3Blbkxh''@;'; put 'put ''YmVsPWh9Z2V0IGNsckRnRGV0YWlsT3BlbkxhYmVsKCl7cmV0dXJuIHRoaXMuX2RldGFpbE9wZW5MYWJlbD90aGlzLl9kZXRhaWxPcGVuTGFiZWw6dGhpcy5jb21tb25TdHJpbmdzLmtleXMub3Blbn1zZXQgY2xyRGdEZXRhaWxDbG9zZUxhYmVsKGgpe3RoaXMuX2RldGFpbENsb3NlTGFiZWw9''@;'; put 'put ''aH1nZXQgY2xyRGdEZXRhaWxDbG9zZUxhYmVsKCl7cmV0dXJuIHRoaXMuX2RldGFpbENsb3NlTGFiZWw/dGhpcy5fZGV0YWlsQ2xvc2VMYWJlbDp0aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5jbG9zZX1zZXQgY2xyRGdSb3dBcmlhTGFiZWwoaCl7dGhpcy5fcm93QXJpYUxhYmVsPWh9Z2V0IGNs''@;'; put 'put ''ckRnUm93QXJpYUxhYmVsKCl7cmV0dXJuIHRoaXMuX3Jvd0FyaWFMYWJlbD90aGlzLl9yb3dBcmlhTGFiZWw6dGhpcy5jb21tb25TdHJpbmdzLmtleXMuc2VsZWN0fW5nQWZ0ZXJDb250ZW50SW5pdCgpe3RoaXMuZGdDZWxscy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuZGdDZWxscy5m''@;'; put 'put ''b3JFYWNoKGg9PntoLl92aWV3LmRlc3Ryb3llZHx8dGhpcy5fc2Nyb2xsYWJsZUNlbGxzLmluc2VydChoLl92aWV3KX0pfSl9bmdBZnRlclZpZXdJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5kaXNwbGF5TW9kZS52aWV3LnN1YnNjcmliZShoPT57Zm9yKGxldCB2PXRoaXMu''@;'; put 'put ''X3Njcm9sbGFibGVDZWxscy5sZW5ndGg7dj4wO3YtLSl0aGlzLl9zY3JvbGxhYmxlQ2VsbHMuZGV0YWNoKCk7Zm9yKGxldCB2PXRoaXMuX2NhbGN1bGF0ZWRDZWxscy5sZW5ndGg7dj4wO3YtLSl0aGlzLl9jYWxjdWxhdGVkQ2VsbHMuZGV0YWNoKCk7aD09PXZ3LkNBTENVTEFURT8odGhpcy5k''@;'; put 'put ''aXNwbGF5Q2VsbHM9ITEsdGhpcy5kZ0NlbGxzLmZvckVhY2godj0+e3YuX3ZpZXcuZGVzdHJveWVkfHx0aGlzLl9jYWxjdWxhdGVkQ2VsbHMuaW5zZXJ0KHYuX3ZpZXcpfSkpOih0aGlzLmRpc3BsYXlDZWxscz0hMCx0aGlzLmRnQ2VsbHMuZm9yRWFjaCh2PT57di5fdmlldy5kZXN0cm95ZWR8''@;'; put 'put ''fHRoaXMuX3Njcm9sbGFibGVDZWxscy5pbnNlcnQodi5fdmlldyl9KSl9KSx0aGlzLmV4cGFuZC5hbmltYXRlLnN1YnNjcmliZSgoKT0+e3RoaXMuZXhwYW5kQW5pbWF0aW9uVHJpZ2dlcj0hdGhpcy5leHBhbmRBbmltYXRpb25UcmlnZ2VyfSkpfXJhbmdlU2VsZWN0KCl7Y29uc3QgaD10aGlz''@;'; put 'put ''Lml0ZW1zLmRpc3BsYXllZDtpZighaClyZXR1cm47Y29uc3Qgdj1oLmluZGV4T2YodGhpcy5zZWxlY3Rpb24ucmFuZ2VTdGFydCk7aWYodGhpcy5zZWxlY3Rpb24ucmFuZ2VTdGFydCYmdGhpcy5zZWxlY3Rpb24uY3VycmVudC5pbmNsdWRlcyh0aGlzLnNlbGVjdGlvbi5yYW5nZVN0YXJ0KSYm''@;'; put 'put ''dGhpcy5zZWxlY3Rpb24uc2hpZnRQcmVzc2VkJiYtMSE9PXYpe2NvbnN0IHk9aC5pbmRleE9mKHRoaXMuaXRlbSksQz1uZXcgU2V0KHRoaXMuc2VsZWN0aW9uLmN1cnJlbnQuY29uY2F0KGguc2xpY2UoTWF0aC5taW4odix5KSxNYXRoLm1heCh2LHkpKzEpKSk7dGhpcy5zZWxlY3Rpb24uY2xl''@;'; put 'put ''YXJTZWxlY3Rpb24oKSx0aGlzLnNlbGVjdGlvbi5jdXJyZW50LnB1c2goLi4uQyl9ZWxzZSB0aGlzLnNlbGVjdGlvbi5yYW5nZVN0YXJ0PXRoaXMuaXRlbX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9bmdPbkluaXQoKXt0aGlz''@;'; put 'put ''LndyYXBwZWRJbmplY3Rvcj1uZXcgYnQoWWZlLHRoaXMudmNyKSx0aGlzLnNlbGVjdGlvbi5sb2NrSXRlbSh0aGlzLml0ZW0sITE9PT10aGlzLmNsckRnU2VsZWN0YWJsZSl9Z2V0IF92aWV3KCl7cmV0dXJuIHRoaXMud3JhcHBlZEluamVjdG9yLmdldChZZmUsdGhpcy52Y3IpLnJvd1ZpZXd9''@;'; put 'put ''fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGNaKSxLdChOTCksS3QoakwpLEt0KHVaKSxLdChBOCksS3QoVWZlKSxLdChVaSksS3QoR2EpLEt0KGJvKSxLdChucyksS3QoZ3cpLEt0KGdzKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0''@;'; put 'put ''b3JzOltbImNsci1kZy1yb3ciXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxtdyw0KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LmRnQ2VsbHM9Qyl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJih2byhmcSw1KSx2byhtY2UsNSksdm8o''@;'; put 'put ''eWcsNSxVaSksdm8odFMsNSxVaSksdm8odmNlLDUsVWkpKSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmV4cGFuZEFuaW1hdGlvbj15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5kZXRhaWxCdXR0b249eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuX3N0aWNreUNlbGxzPXkuZmlyc3QpLEhpKHk9''@;'; put 'put ''JGkoKSkmJih2Ll9zY3JvbGxhYmxlQ2VsbHM9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuX2NhbGN1bGF0ZWRDZWxscz15LmZpcnN0KX19LGhvc3RBdHRyczpbInJvbGUiLCJyb3dncm91cCJdLGhvc3RWYXJzOjUsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiYoR2koImFyaWEtb3du''@;'; put 'put ''cyIsdi5pZCksRmkoImRhdGFncmlkLXJvdyIsITApKCJkYXRhZ3JpZC1zZWxlY3RlZCIsdi5zZWxlY3RlZCkpfSxpbnB1dHM6e2l0ZW06WyJjbHJEZ0l0ZW0iLCJpdGVtIl0sc2VsZWN0ZWQ6WyJjbHJEZ1NlbGVjdGVkIiwic2VsZWN0ZWQiXSxjbHJEZ1NlbGVjdGFibGU6ImNsckRnU2VsZWN0''@;'; put 'put ''YWJsZSIsZXhwYW5kZWQ6WyJjbHJEZ0V4cGFuZGVkIiwiZXhwYW5kZWQiXSxjbHJEZ0RldGFpbE9wZW5MYWJlbDoiY2xyRGdEZXRhaWxPcGVuTGFiZWwiLGNsckRnRGV0YWlsQ2xvc2VMYWJlbDoiY2xyRGdEZXRhaWxDbG9zZUxhYmVsIixjbHJEZ1Jvd0FyaWFMYWJlbDoiY2xyRGdSb3dBcmlh''@;'; put 'put ''TGFiZWwifSxvdXRwdXRzOntzZWxlY3RlZENoYW5nZWQ6ImNsckRnU2VsZWN0ZWRDaGFuZ2UiLGV4cGFuZGVkQ2hhbmdlOiJjbHJEZ0V4cGFuZGVkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFt1Wix7cHJvdmlkZTpyMSx1c2VFeGlzdGluZzp1Wn0se3Byb3ZpZGU6UGYsdXNlRXhpc3Rpbmc6dVp9''@;'; put 'put ''XSldLG5nQ29udGVudFNlbGVjdG9yczpzdixkZWNsczo5LHZhcnM6Myxjb25zdHM6W1siY2xhc3MiLCJkYXRhZ3JpZC1yb3ctY2xpY2thYmxlIiwzLCJtb3VzZWRvd24iLDQsIm5nSWYiXSxbMywiY2xyRXhwYW5kVHJpZ2dlciIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWyJkZXRhaWwiLCIiXSxb''@;'; put 'put ''InJvd0NvbnRlbnQiLCIiXSxbImNhbGN1bGF0ZWRDZWxscyIsIiJdLFsxLCJkYXRhZ3JpZC1yb3ctY2xpY2thYmxlIiwzLCJtb3VzZWRvd24iXSxbMywiY2xyRXhwYW5kVHJpZ2dlciJdLFszLCJuZ1RlbXBsYXRlT3V0bGV0Il0sWyJyb2xlIiwicm93IiwxLCJkYXRhZ3JpZC1yb3ctbWFzdGVy''@;'; put 'put ''IiwiZGF0YWdyaWQtcm93LWZsZXgiLDMsImlkIl0sWzEsImRhdGFncmlkLXJvdy1zdGlja3kiXSxbInN0aWNreUNlbGxzIiwiIl0sWyJjbGFzcyIsImRhdGFncmlkLXNlbGVjdCBkYXRhZ3JpZC1maXhlZC1jb2x1bW4gZGF0YWdyaWQtY2VsbCIsInJvbGUiLCJncmlkY2VsbCIsMywibmdDbGFz''@;'; put 'put ''cyIsNCwibmdJZiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1yb3ctYWN0aW9ucyBkYXRhZ3JpZC1maXhlZC1jb2x1bW4gZGF0YWdyaWQtY2VsbCIsInJvbGUiLCJncmlkY2VsbCIsNCwibmdJZiJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IGRhdGFncmlkLWZpeGVkLWNvbHVt''@;'; put 'put ''biBkYXRhZ3JpZC1jZWxsIiwicm9sZSIsImdyaWRjZWxsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLWRldGFpbC1jYXJldCBkYXRhZ3JpZC1maXhlZC1jb2x1bW4gZGF0YWdyaWQtY2VsbCIsNCwibmdJZiJdLFsxLCJkYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZSIsMywibmdDbGFzcyJd''@;'; put 'put ''LFsxLCJkYXRhZ3JpZC1zY3JvbGxpbmctY2VsbHMiXSxbInNjcm9sbGFibGVDZWxscyIsIiJdLFsicm9sZSIsImdyaWRjZWxsIiwxLCJkYXRhZ3JpZC1zZWxlY3QiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIiwzLCJuZ0NsYXNzIl0sWzEsImNsci1jaGVja2JveC13''@;'; put 'put ''cmFwcGVyIl0sWyJ0eXBlIiwiY2hlY2tib3giLDMsIm5nTW9kZWwiLCJpZCIsIm5nTW9kZWxDaGFuZ2UiXSxbMSwiY2xyLWNvbnRyb2wtbGFiZWwiLCJjbHItY29sLW51bGwiLDMsImZvciIsImNsaWNrIl0sWzEsImNsci1zci1vbmx5Il0sWyJ0eXBlIiwicmFkaW8iLCJjbHJSYWRpbyIsIiIs''@;'; put 'put ''MywiaWQiLCJuYW1lIiwidmFsdWUiLCJuZ01vZGVsIiwiY2hlY2tlZCIsIm5nTW9kZWxDaGFuZ2UiXSxbInJvbGUiLCJncmlkY2VsbCIsMSwiZGF0YWdyaWQtcm93LWFjdGlvbnMiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJyb2xlIiwiZ3JpZGNlbGwiLDEs''@;'; put 'put ''ImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQiLCJkYXRhZ3JpZC1maXhlZC1jb2x1bW4iLCJkYXRhZ3JpZC1jZWxsIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWJ1dHRvbiIsMywiY2xpY2siLDQsIm5nSWYiXSxbImNsclNtYWxsIiwiIiw0''@;'; put 'put ''LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJkYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWJ1dHRvbiIsMywiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLDEsImRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtaWNvbiJdLFsiY2xyU21hbGwiLCIiXSxbMSwiZGF0YWdyaWQtZGV0YWlsLWNh''@;'; put 'put ''cmV0IiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIiwiZGF0YWdyaWQtY2VsbCJdLFsidHlwZSIsImJ1dHRvbiIsImFyaWEtaGFzcG9wdXAiLCJkaWFsb2ciLDEsImRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b24iLDMsImNsaWNrIl0sWyJkZXRhaWxCdXR0b24iLCIiXSxbInNoYXBlIiwiYW5n''@;'; put 'put ''bGUtZG91YmxlIiwxLCJkYXRhZ3JpZC1kZXRhaWwtY2FyZXQtaWNvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKE0kKSxybigwLGJjZSwzLDIsImxhYmVsIiwwKSxybigxLF9jZSwyLDIsImNsci1leHBhbmRhYmxlLWFuaW1hdGlvbiIsMSkscm4oMixEaiwxLDEsbnVsbCwy''@;'; put 'put ''KSxybigzLHgxLDEsMCwibmctdGVtcGxhdGUiLG51bGwsMyxacikscm4oNSxyYSwxNiwxMywibmctdGVtcGxhdGUiLG51bGwsNCxaciksZjEoNyxudWxsLDUpKSwyJmgmJihUdCgibmdJZiIsdi5zZWxlY3Rpb24ucm93U2VsZWN0aW9uTW9kZSksdXQoMSksVHQoIm5nSWYiLCF2LnNlbGVjdGlv''@;'; put 'put ''bi5yb3dTZWxlY3Rpb25Nb2RlJiZ2LmV4cGFuZC5leHBhbmRhYmxlKSx1dCgxKSxUdCgibmdJZiIsIXYuc2VsZWN0aW9uLnJvd1NlbGVjdGlvbk1vZGUmJiF2LmV4cGFuZC5leHBhbmRhYmxlKSl9LGRlcGVuZGVuY2llczpbZnEsZ2EsTm8sYXQsWGQsbGMsSWYsVHMsSXMscWgsbTEsRGZlLFpv''@;'; put 'put ''XSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTt2YXIgcGg9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLldJRFRIPTBdPSJXSURUSCIsZFtkLkhJRERFTj0xXT0iSElEREVOIn0ocGh8fChwaD17fSkpLHBoKSkoKTtjb25zdCBseWU9T2JqZWN0LmtleXMocGgpLm1hcChkPT5waFtkXSkuZmlsdGVyKGQ9''@;'; put 'put ''PmQ9PT1wYXJzZUludChkLDEwKSk7bGV0IEF2PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLmNvbHVtbnM9W10sdGhpcy5fY2FjaGU9W119Y2FjaGUoKXt0aGlzLl9jYWNoZT10aGlzLmNvbHVtbnMubWFwKGg9Pntjb25zdCB2PU9iamVjdC5hc3NpZ24oe30saC52YWx1ZSk7cmV0''@;'; put 'put ''dXJuIGRlbGV0ZSB2LmNoYW5nZXMsdn0pfWhhc0NhY2hlKCl7cmV0dXJuISF0aGlzLl9jYWNoZS5sZW5ndGh9cmVzZXRUb0xhc3RDYWNoZSgpe3RoaXMuX2NhY2hlLmZvckVhY2goKGgsdik9Pnt0aGlzLmNvbHVtbnNbdl0ubmV4dChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saCks''@;'; put 'put ''e2NoYW5nZXM6bHllfSkpfSksdGhpcy5fY2FjaGU9W119Z2V0IGNvbHVtblN0YXRlcygpe3JldHVybiB0aGlzLmNvbHVtbnMubWFwKGg9PmgudmFsdWUpfWdldCBoYXNIaWRlYWJsZUNvbHVtbnMoKXtyZXR1cm4gdGhpcy5jb2x1bW5TdGF0ZXMuZmlsdGVyKGg9PmguaGlkZWFibGUpLmxlbmd0''@;'; put 'put ''aD4wfWVtaXRTdGF0ZUNoYW5nZUF0KGgsdil7IXRoaXMuY29sdW1uc1toXXx8dGhpcy5lbWl0U3RhdGVDaGFuZ2UodGhpcy5jb2x1bW5zW2hdLHYpfWVtaXRTdGF0ZUNoYW5nZShoLHYpe2gubmV4dChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30saC52YWx1ZSksdikpfX1yZXR1cm4g''@;'; put 'put ''ZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxzeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmZpbHRlcnM9aCx0aGlzLnNvcnQ9dix0aGlz''@;'; put 'put ''LnBhZ2U9eSx0aGlzLmRlYm91bmNlcj1DLHRoaXMuY2hhbmdlPXRoaXMuZGVib3VuY2VyLmNoYW5nZS5waXBlKG10KCgpPT50aGlzLnN0YXRlKSl9Z2V0IHN0YXRlKCl7Y29uc3QgaD17fTt0aGlzLnBhZ2Uuc2l6ZT4wJiYoaC5wYWdlPXtmcm9tOnRoaXMucGFnZS5maXJzdEl0ZW0sdG86dGhp''@;'; put 'put ''cy5wYWdlLmxhc3RJdGVtLHNpemU6dGhpcy5wYWdlLnNpemUsY3VycmVudDp0aGlzLnBhZ2UuY3VycmVudH0pLHRoaXMuc29ydC5jb21wYXJhdG9yJiYoaC5zb3J0PXRoaXMuc29ydC5jb21wYXJhdG9yIGluc3RhbmNlb2YgdnE/e2J5OnRoaXMuc29ydC5jb21wYXJhdG9yLnByb3AscmV2ZXJz''@;'; put 'put ''ZTp0aGlzLnNvcnQucmV2ZXJzZX06e2J5OnRoaXMuc29ydC5jb21wYXJhdG9yLHJldmVyc2U6dGhpcy5zb3J0LnJldmVyc2V9KTtjb25zdCB2PXRoaXMuZmlsdGVycy5nZXRBY3RpdmVGaWx0ZXJzKCk7aWYodi5sZW5ndGg+MCl7aC5maWx0ZXJzPVtdO2Zvcihjb25zdCB5IG9mIHYpaC5maWx0''@;'; put 'put ''ZXJzLnB1c2goeS5zdGF0ZT95LnN0YXRlOnkpfXJldHVybiBofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaSh2diksQ2koQXEpLENpKGR3KSxDaShsWikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9''@;'; put 'put ''KSgpLHV5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuem9uZT1oLHRoaXMubGlzdGVuZXJzQWRkZWQ9ITEsdGhpcy5kZXN0cm95JD1uZXcgJGUsdGhpcy5jb25maWc9e2tleUdyaWRSb3dzOiJbcm9sZT1yb3ddOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXIpIixrZXlHcmlk''@;'; put 'put ''Q2VsbHM6Iltyb2xlPWdyaWRjZWxsXTpub3QoLmRhdGFncmlkLWhpZGRlbi1jb2x1bW4pOm5vdCguZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGVudCksIFtyb2xlPWNvbHVtbmhlYWRlcl06bm90KC5kYXRhZ3JpZC1oaWRkZW4tY29sdW1uKTpub3QoLmRhdGFncmlkLXBsYWNlaG9sZGVyLWNv''@;'; put 'put ''bnRlbnQpLCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0IixrZXlHcmlkOiJbcm9sZT1ncmlkXSJ9fWdldCBncmlkKCl7dmFyIGg7cmV0dXJuIG51bGw9PT0oaD10aGlzLmhvc3QpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLnF1ZXJ5U2VsZWN0b3IodGhpcy5jb25maWcua2V5R3JpZCl9Z2V0IHJvd3Mo''@;'; put 'put ''KXt2YXIgaDtyZXR1cm4gbnVsbD09PShoPXRoaXMuaG9zdCl8fHZvaWQgMD09PWg/dm9pZCAwOmgucXVlcnlTZWxlY3RvckFsbCh0aGlzLmNvbmZpZy5rZXlHcmlkUm93cyl9Z2V0IGNlbGxzKCl7dmFyIGg7cmV0dXJuIG51bGw9PT0oaD10aGlzLmhvc3QpfHx2b2lkIDA9PT1oP3ZvaWQgMDpo''@;'; put 'put ''LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5jb25maWcua2V5R3JpZENlbGxzKX1uZ09uRGVzdHJveSgpe3RoaXMuZGVzdHJveSQubmV4dCgpLHRoaXMuZGVzdHJveSQuY29tcGxldGUoKX1hZGRMaXN0ZW5lcnMoKXt0aGlzLmxpc3RlbmVyc0FkZGVkfHwodGhpcy56b25lLnJ1bk91dHNpZGVBbmd1''@;'; put 'put ''bGFyKCgpPT57dDgodGhpcy5ncmlkLCJtb3VzZWRvd24iKS5waXBlKGo3KHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoaD0+e2lmKDE9PT1oLmJ1dHRvbnMmJiFoLmN0cmxLZXkpe2NvbnN0IHY9dGhpcy5jZWxscz9BcnJheS5mcm9tKHRoaXMuY2VsbHMpLmZpbmQoeT0+eT09PWgudGFyZ2V0''@;'; put 'put ''fHx5PT09aC50YXJnZXQuY2xvc2VzdCh0aGlzLmNvbmZpZy5rZXlHcmlkQ2VsbHMpKTpudWxsO3YmJnRoaXMuc2V0QWN0aXZlQ2VsbCh2KX19KSx0OCh0aGlzLmdyaWQsImtleWRvd24iKS5waXBlKGo3KHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoaD0+e2lmKCghaC50YXJnZXQuY2xhc3NM''@;'; put 'put ''aXN0LmNvbnRhaW5zKCJkcmFnLWhhbmRsZSIpfHwiQXJyb3dMZWZ0IiE9PWguY29kZSYmIkFycm93UmlnaHQiIT09aC5jb2RlKSYmKCJBcnJvd1VwIj09PWguY29kZXx8IkFycm93RG93biI9PT1oLmNvZGV8fCJBcnJvd0xlZnQiPT09aC5jb2RlfHwiQXJyb3dSaWdodCI9PT1oLmNvZGV8fCJF''@;'; put 'put ''bmQiPT09aC5jb2RlfHwiSG9tZSI9PT1oLmNvZGV8fCJQYWdlVXAiPT09aC5jb2RlfHwiUGFnZURvd24iPT09aC5jb2RlKSl7Y29uc3R7eDp2LHl9PXRoaXMuZ2V0TmV4dEl0ZW1Db29yZGluYXRlKGgpLEM9dGhpcy5yb3dzP0FycmF5LmZyb20odGhpcy5yb3dzW3ldLnF1ZXJ5U2VsZWN0b3JB''@;'; put 'put ''bGwodGhpcy5jb25maWcua2V5R3JpZENlbGxzKSlbdl06bnVsbDtDJiZ0aGlzLnNldEFjdGl2ZUNlbGwoQyksaC5wcmV2ZW50RGVmYXVsdCgpfX0pfSksdGhpcy5saXN0ZW5lcnNBZGRlZD0hMCl9aW5pdGlhbGl6ZUtleUdyaWQoaCl7dGhpcy5ob3N0PWgsdGhpcy5hZGRMaXN0ZW5lcnMoKSx0''@;'; put 'put ''aGlzLnJlc2V0S2V5R3JpZCgpfXJlc2V0S2V5R3JpZCgpe3ZhciBoO251bGw9PT0oaD10aGlzLmNlbGxzKXx8dm9pZCAwPT09aHx8aC5mb3JFYWNoKHk9Pnkuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIi0xIikpO2NvbnN0IHY9dGhpcy5jZWxscz90aGlzLmNlbGxzWzBdOm51bGw7bnVsbD09''@;'; put 'put ''dnx8di5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpfXNldEFjdGl2ZUNlbGwoaCl7Y29uc3Qgdj10aGlzLmNlbGxzP0FycmF5LmZyb20odGhpcy5jZWxscykuZmluZChJPT4iMCI9PT1JLmdldEF0dHJpYnV0ZSgidGFiaW5kZXgiKSk6bnVsbDt2JiZ2LnNldEF0dHJpYnV0ZSgidGFiaW5k''@;'; put 'put ''ZXgiLCItMSIpLGguc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKTtjb25zdCB5PWZ1bmN0aW9uIE1PZShkKXtjb25zdCBnPVsiYVtocmVmXSIsImFyZWFbaHJlZl0iLCJpbnB1dDpub3QoW2Rpc2FibGVkXSkiLCJidXR0b246bm90KFtkaXNhYmxlZF0pIiwic2VsZWN0Om5vdChbZGlzYWJs''@;'; put 'put ''ZWRdKSIsInRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSIsImlmcmFtZSIsIm9iamVjdCIsImVtYmVkIiwiKlt0YWJpbmRleF0iLCIqW2NvbnRlbnRlZGl0YWJsZT10cnVlXSIsIltyb2xlPWJ1dHRvbl06bm90KFtkaXNhYmxlZF0pIl0uam9pbigiLCIpO3JldHVybiBBcnJheS5mcm9tKGQucXVl''@;'; put 'put ''cnlTZWxlY3RvckFsbChnKSl9KGgpOygiY29sdW1uaGVhZGVyIiE9PWguZ2V0QXR0cmlidXRlKCJyb2xlIikmJnlbMF0/eVswXTpoKS5mb2N1cygpfWdldE5leHRJdGVtQ29vcmRpbmF0ZShoKXt2YXIgdjtsZXQgeT10aGlzLmNlbGxzP0FycmF5LmZyb20odGhpcy5jZWxscykuZmluZChPdD0+''@;'; put 'put ''IjAiPT09T3QuZ2V0QXR0cmlidXRlKCJ0YWJpbmRleCIpKTpudWxsOyJUYWIiPT09aC5jb2RlJiYoeT1kb2N1bWVudC5hY3RpdmVFbGVtZW50KTtjb25zdCBDPXRoaXMucm93cyYmeT9BcnJheS5mcm9tKHRoaXMucm93cykuZmluZChPdD0+T3QuY29udGFpbnMoeSkpOm51bGwsST10aGlzLnJv''@;'; put 'put ''d3M/dGhpcy5yb3dzLmxlbmd0aC0xOjAsWj10aGlzLmNlbGxzP3RoaXMuY2VsbHMubGVuZ3RoL3RoaXMucm93cy5sZW5ndGgtMTowO2xldCB1ZT1DJiZ5P0FycmF5LmZyb20oQy5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuY29uZmlnLmtleUdyaWRDZWxscykpLmluZGV4T2YoeSk6MCxfZT1DJiZ5''@;'; put 'put ''JiZ0aGlzLnJvd3M/QXJyYXkuZnJvbSh0aGlzLnJvd3MpLmluZGV4T2YoQyk6MDtjb25zdCBCZT10aGlzLmhvc3QuZGlyLE5lPSJydGwiPT09QmU/IkFycm93UmlnaHQiOiJBcnJvd0xlZnQiLEtlPSJydGwiPT09QmU/IkFycm93TGVmdCI6IkFycm93UmlnaHQiLHB0PU1hdGguZmxvb3IoKG51''@;'; put 'put ''bGw9PT0odj10aGlzLmhvc3QpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LnF1ZXJ5U2VsZWN0b3IoIi5kYXRhZ3JpZCIpLmNsaWVudEhlaWdodCkvdGhpcy5yb3dzWzBdLmNsaWVudEhlaWdodCktMXx8MDtyZXR1cm4iQXJyb3dVcCI9PT1oLmNvZGUmJjAhPT1fZT9fZS09MToiQXJyb3dEb3duIj09''@;'; put 'put ''PWguY29kZSYmX2U8ST9fZSs9MTpoLmNvZGU9PT1OZSYmMCE9PXVlP3VlLT0xOmguY29kZT09PUtlJiZ1ZTxaP3VlKz0xOiJFbmQiPT09aC5jb2RlPyh1ZT1aLGguY3RybEtleSYmKF9lPUkpKToiSG9tZSI9PT1oLmNvZGU/KHVlPTAsaC5jdHJsS2V5JiYoX2U9MCkpOiJQYWdlVXAiPT09aC5j''@;'; put 'put ''b2RlP19lPV9lLXB0PjA/X2UtcHQ6MDoiUGFnZURvd24iPT09aC5jb2RlJiYoX2U9X2UrcHQ8ST9fZStwdDpJKSx7eDp1ZSx5Ol9lfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koX2wpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rv''@;'; put 'put ''cnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSxHTD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxaLHVlLF9lLEJlLE5lLEtlLHB0LE90LCR0LGZuLExuLGlyKXt0aGlzLm9yZ2FuaXplcj1oLHRoaXMuaXRlbXM9dix0aGlzLmV4cGFuZGFibGVSb3dzPXksdGhpcy5zZWxlY3Rpb249''@;'; put 'put ''Qyx0aGlzLnJvd0FjdGlvblNlcnZpY2U9SSx0aGlzLnN0YXRlUHJvdmlkZXI9Wix0aGlzLmRpc3BsYXlNb2RlPXVlLHRoaXMucmVuZGVyZXI9X2UsdGhpcy5kZXRhaWxTZXJ2aWNlPUJlLHRoaXMuZG9jdW1lbnQ9S2UsdGhpcy5lbD1wdCx0aGlzLnBhZ2U9T3QsdGhpcy5jb21tb25TdHJpbmdz''@;'; put 'put ''PSR0LHRoaXMuY29sdW1uc1NlcnZpY2U9Zm4sdGhpcy5rZXlOYXZpZ2F0aW9uPUxuLHRoaXMuem9uZT1pcix0aGlzLlNFTEVDVElPTl9UWVBFPVdzLHRoaXMucmVmcmVzaD1uZXcgYXIoITEpLHRoaXMuc2VsZWN0ZWRDaGFuZ2VkPW5ldyBhcighMSksdGhpcy5zaW5nbGVTZWxlY3RlZENoYW5n''@;'; put 'put ''ZWQ9bmV3IGFyKCExKSx0aGlzLmNsckRnU2luZ2xlU2VsZWN0aW9uQXJpYUxhYmVsPXRoaXMuY29tbW9uU3RyaW5ncy5rZXlzLnNpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbCx0aGlzLmNsckRnU2luZ2xlQWN0aW9uYWJsZUFyaWFMYWJlbD10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5zaW5nbGVB''@;'; put 'put ''Y3Rpb25hYmxlQXJpYUxhYmVsLHRoaXMuY2xyRGV0YWlsRXhwYW5kYWJsZUFyaWFMYWJlbD10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5kZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsLHRoaXMuY2xyRGdEaXNhYmxlUGFnZUZvY3VzPSExLHRoaXMuX3N1YnNjcmlwdGlvbnM9W10sdGhpcy5zZWxl''@;'; put 'put ''Y3RBbGxJZD0iY2xyLWRnLXNlbGVjdC1hbGwtIitOZSx0aGlzLmRldGFpbFNlcnZpY2UuaWQ9TmV9Z2V0IGxvYWRpbmcoKXtyZXR1cm4gdGhpcy5pdGVtcy5sb2FkaW5nfXNldCBsb2FkaW5nKGgpe3RoaXMuaXRlbXMubG9hZGluZz1ofWRhdGFDaGFuZ2VkKCl7dGhpcy5pdGVtcy5yZWZyZXNo''@;'; put 'put ''KCl9c2V0IHNlbGVjdGVkKGgpe3RoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9aD9Xcy5NdWx0aTpXcy5Ob25lLHRoaXMuc2VsZWN0aW9uLnVwZGF0ZUN1cnJlbnQoaCwhMSl9c2V0IHNpbmdsZVNlbGVjdGVkKGgpe3RoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9V3MuU2luZ2xlLGg/''@;'; put 'put ''dGhpcy5zZWxlY3Rpb24uY3VycmVudFNpbmdsZT1oOnRoaXMuc2VsZWN0aW9uLmN1cnJlbnRTaW5nbGUmJih0aGlzLnNlbGVjdGlvbi5jdXJyZW50U2luZ2xlPW51bGwpfXNldCBjbHJEZ1ByZXNlcnZlU2VsZWN0aW9uKGgpe3RoaXMuc2VsZWN0aW9uLnByZXNlcnZlU2VsZWN0aW9uPWh9c2V0''@;'; put 'put ''IHJvd1NlbGVjdGlvbk1vZGUoaCl7dGhpcy5zZWxlY3Rpb24ucm93U2VsZWN0aW9uTW9kZT1ofWdldCBhbGxTZWxlY3RlZCgpe3JldHVybiB0aGlzLnNlbGVjdGlvbi5pc0FsbFNlbGVjdGVkKCl9c2V0IGFsbFNlbGVjdGVkKGgpe3RoaXMuc2VsZWN0aW9uLnRvZ2dsZUFsbCgpfW5nQWZ0ZXJD''@;'; put 'put ''b250ZW50SW5pdCgpe3RoaXMuaXRlbXMuc21hcnR8fCh0aGlzLml0ZW1zLmFsbD10aGlzLnJvd3MubWFwKGg9PmguaXRlbSkpLHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnJvd3MuY2hhbmdlcy5zdWJzY3JpYmUoKCk9Pnt0aGlzLml0ZW1zLnNtYXJ0fHwodGhpcy5pdGVtcy5hbGw9''@;'; put 'put ''dGhpcy5yb3dzLm1hcChoPT5oLml0ZW0pKTtmb3IobGV0IGg9dGhpcy5fZGlzcGxheWVkUm93cy5sZW5ndGgtMTtoPj0wO2gtLSl0aGlzLl9kaXNwbGF5ZWRSb3dzLmdldChoKS5kZXN0cm95ZWQmJnRoaXMuX2Rpc3BsYXllZFJvd3MucmVtb3ZlKGgpO2lmKHRoaXMucm93cy5mb3JFYWNoKGg9''@;'; put 'put ''Pnt0aGlzLl9kaXNwbGF5ZWRSb3dzLmluc2VydChoLl92aWV3KX0pLHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZSYmdGhpcy5kZXRhaWxTZXJ2aWNlLmlzT3Blbil7Y29uc3QgaD10aGlzLnJvd3MuZmluZCgodix5KT0+dGhpcy5pdGVtcy50cmFja0J5KHksdi5pdGVtKT09PXRoaXMuaXRlbXMu''@;'; put 'put ''dHJhY2tCeSh5LHRoaXMuZGV0YWlsU2VydmljZS5zdGF0ZSkpO2g/dGhpcy5kZXRhaWxTZXJ2aWNlLm9wZW4oaC5pdGVtLGguZGV0YWlsQnV0dG9uLm5hdGl2ZUVsZW1lbnQpOnRoaXMuZGV0YWlsU2VydmljZS5jbG9zZSgpfX0pKX1uZ0FmdGVyVmlld0luaXQoKXt0aGlzLmtleU5hdmlnYXRp''@;'; put 'put ''b24uaW5pdGlhbGl6ZUtleUdyaWQodGhpcy5lbC5uYXRpdmVFbGVtZW50KSx0aGlzLnJlZnJlc2guZW1pdCh0aGlzLnN0YXRlUHJvdmlkZXIuc3RhdGUpLHRoaXMuX3N1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0YXRlUHJvdmlkZXIuY2hhbmdlLnN1YnNjcmliZShoPT50aGlzLnJlZnJlc2gu''@;'; put 'put ''ZW1pdChoKSksdGhpcy5zZWxlY3Rpb24uY2hhbmdlLnN1YnNjcmliZShoPT57dGhpcy5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PVdzLlNpbmdsZT90aGlzLnNpbmdsZVNlbGVjdGVkQ2hhbmdlZC5lbWl0KGgpOnRoaXMuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT1Xcy5NdWx0aSYmdGhp''@;'; put 'put ''cy5zZWxlY3RlZENoYW5nZWQuZW1pdChoKX0pLHRoaXMucGFnZS5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5rZXlOYXZpZ2F0aW9uLnJlc2V0S2V5R3JpZCgpLHRoaXMuY2xyRGdEaXNhYmxlUGFnZUZvY3VzfHx0aGlzLmRhdGFncmlkVGFibGUubmF0aXZlRWxlbWVudC5mb2N1cygpfSks''@;'; put 'put ''b0kodGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zKS5zdWJzY3JpYmUoKCk9Pnt2YXIgaDtyZXR1cm4gbnVsbD09PShoPXRoaXMua2V5TmF2aWdhdGlvbil8fHZvaWQgMD09PWg/dm9pZCAwOmgucmVzZXRLZXlHcmlkKCl9KSx0aGlzLmRpc3BsYXlNb2RlLnZpZXcuc3Vic2NyaWJlKGg9Pntm''@;'; put 'put ''b3IobGV0IHY9dGhpcy5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnMubGVuZ3RoO3Y+MDt2LS0pdGhpcy5fcHJvamVjdGVkRGlzcGxheUNvbHVtbnMuZGV0YWNoKCk7Zm9yKGxldCB2PXRoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5sZW5ndGg7dj4wO3YtLSl0aGlzLl9wcm9qZWN0''@;'; put 'put ''ZWRDYWxjdWxhdGlvbkNvbHVtbnMuZGV0YWNoKCk7Zm9yKGxldCB2PXRoaXMuX2NhbGN1bGF0aW9uUm93cy5sZW5ndGg7dj4wO3YtLSl0aGlzLl9jYWxjdWxhdGlvblJvd3MuZGV0YWNoKCk7Zm9yKGxldCB2PXRoaXMuX2Rpc3BsYXllZFJvd3MubGVuZ3RoO3Y+MDt2LS0pdGhpcy5fZGlzcGxh''@;'; put 'put ''eWVkUm93cy5kZXRhY2goKTtoPT09dncuRElTUExBWT8odGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIiksdGhpcy5jb2x1bW5zLmZvckVhY2godj0+e3RoaXMuX3Byb2plY3RlZERpc3BsYXlDb2x1bW5zLmlu''@;'; put 'put ''c2VydCh2Ll92aWV3KX0pLHRoaXMucm93cy5mb3JFYWNoKHY9Pnt0aGlzLl9kaXNwbGF5ZWRSb3dzLmluc2VydCh2Ll92aWV3KX0pKToodGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIiksdGhpcy5jb2x1bW5zLmZv''@;'; put 'put ''ckVhY2godj0+e3RoaXMuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucy5pbnNlcnQodi5fdmlldyl9KSx0aGlzLnJvd3MuZm9yRWFjaCh2PT57dGhpcy5fY2FsY3VsYXRpb25Sb3dzLmluc2VydCh2Ll92aWV3KX0pKX0pKSx0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlz''@;'; put 'put ''Ll9zdWJzY3JpcHRpb25zLnB1c2godDgodGhpcy5kb2N1bWVudC5ib2R5LCJrZXlkb3duIikuc3Vic2NyaWJlKGg9PnsiU2hpZnQiPT09aC5rZXkmJih0aGlzLnNlbGVjdGlvbi5zaGlmdFByZXNzZWQ9ITApfSksdDgodGhpcy5kb2N1bWVudC5ib2R5LCJrZXl1cCIpLnN1YnNjcmliZShoPT57''@;'; put 'put ''IlNoaWZ0Ij09PWgua2V5JiYodGhpcy5zZWxlY3Rpb24uc2hpZnRQcmVzc2VkPSExKX0pKX0pfW5nT25EZXN0cm95KCl7dGhpcy5fc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9cmVzaXplKCl7dGhpcy5vcmdhbml6ZXIucmVzaXplKCl9fXJldHVybiBkLlx1MDI3''@;'; put 'put ''NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHBTKSxLdChndyksS3QoakwpLEt0KGNaKSxLdChOTCksS3Qoc3llKSxLdChVZmUpLEt0KEdhKSxLdChBOCksS3QoeTIpLEt0KGdzKSxLdChibyksS3QoZHcpLEt0KG5zKSxLdChBdiksS3QodXllKSxLdChfbCkpfSxkLlx1MDI3''@;'; put 'put ''NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGF0YWdyaWQiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhvKHksekwsNSkseG8oeSxqZmUsNSkseG8oeSxnUyw0KSx4byh5LG1TLDQpKSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2Lml0ZXJhdG9y''@;'; put 'put ''PUMuZmlyc3QpLEhpKEM9JGkoKSkmJih2LnBsYWNlaG9sZGVyPUMuZmlyc3QpLEhpKEM9JGkoKSkmJih2LmNvbHVtbnM9QyksSGkoQz0kaSgpKSYmKHYucm93cz1DKX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKFNjZSw1LFVpKSx2byhFJCw1LGJvKSx2byh0dyw1LFVp''@;'; put 'put ''KSx2byhNY2UsNSxVaSksdm8oUmosNSxVaSksdm8oQmosNSxVaSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuc2Nyb2xsYWJsZUNvbHVtbnM9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuZGF0YWdyaWRUYWJsZT15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fcHJvamVjdGVkRGlzcGxheUNv''@;'; put 'put ''bHVtbnM9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYuX3Byb2plY3RlZENhbGN1bGF0aW9uQ29sdW1ucz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fZGlzcGxheWVkUm93cz15LmZpcnN0KSxIaSh5PSRpKCkpJiYodi5fY2FsY3VsYXRpb25Sb3dzPXkuZmlyc3QpfX0saG9zdFZhcnM6NCxob3N0''@;'; put 'put ''QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJkYXRhZ3JpZC1ob3N0IiwhMCkoImRhdGFncmlkLWRldGFpbC1vcGVuIix2LmRldGFpbFNlcnZpY2UuaXNPcGVuKX0saW5wdXRzOntsb2FkaW5nOlsiY2xyRGdMb2FkaW5nIiwibG9hZGluZyJdLHNlbGVjdGVkOlsiY2xyRGdTZWxlY3Rl''@;'; put 'put ''ZCIsInNlbGVjdGVkIl0sc2luZ2xlU2VsZWN0ZWQ6WyJjbHJEZ1NpbmdsZVNlbGVjdGVkIiwic2luZ2xlU2VsZWN0ZWQiXSxjbHJEZ1NpbmdsZVNlbGVjdGlvbkFyaWFMYWJlbDoiY2xyRGdTaW5nbGVTZWxlY3Rpb25BcmlhTGFiZWwiLGNsckRnU2luZ2xlQWN0aW9uYWJsZUFyaWFMYWJlbDoi''@;'; put 'put ''Y2xyRGdTaW5nbGVBY3Rpb25hYmxlQXJpYUxhYmVsIixjbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsOiJjbHJEZXRhaWxFeHBhbmRhYmxlQXJpYUxhYmVsIixjbHJEZ0Rpc2FibGVQYWdlRm9jdXM6ImNsckRnRGlzYWJsZVBhZ2VGb2N1cyIsY2xyRGdQcmVzZXJ2ZVNlbGVjdGlvbjoiY2xy''@;'; put 'put ''RGdQcmVzZXJ2ZVNlbGVjdGlvbiIscm93U2VsZWN0aW9uTW9kZTpbImNsckRnUm93U2VsZWN0aW9uIiwicm93U2VsZWN0aW9uTW9kZSJdfSxvdXRwdXRzOntyZWZyZXNoOiJjbHJEZ1JlZnJlc2giLHNlbGVjdGVkQ2hhbmdlZDoiY2xyRGdTZWxlY3RlZENoYW5nZSIsc2luZ2xlU2VsZWN0ZWRD''@;'; put 'put ''aGFuZ2VkOiJjbHJEZ1NpbmdsZVNlbGVjdGVkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtjWixBcSx2dixkdyxndyxwUyxOTCxqTCxsWixBOCxPYyxzeWUsVmZlLEF2LFVmZSx1eWVdKV0sbmdDb250ZW50U2VsZWN0b3JzOl91LGRlY2xzOjMyLHZhcnM6Nyxjb25zdHM6W1sxLCJkYXRhZ3JpZC1v''@;'; put 'put ''dXRlci13cmFwcGVyIl0sWzEsImRhdGFncmlkLWlubmVyLXdyYXBwZXIiXSxbMSwiZGF0YWdyaWQiXSxbImRhdGFncmlkIiwiIl0sWzEsImRhdGFncmlkLXRhYmxlLXdyYXBwZXIiXSxbInJvbGUiLCJncmlkIiwidGFiaW5kZXgiLCItMSIsMSwiZGF0YWdyaWQtdGFibGUiXSxbImRhdGFncmlk''@;'; put 'put ''VGFibGUiLCIiXSxbInJvbGUiLCJyb3dncm91cCIsMSwiZGF0YWdyaWQtaGVhZGVyIl0sWyJyb2xlIiwicm93IiwxLCJkYXRhZ3JpZC1yb3ciXSxbMSwiZGF0YWdyaWQtcm93LW1hc3RlciIsImRhdGFncmlkLXJvdy1mbGV4Il0sWzEsImRhdGFncmlkLXJvdy1zdGlja3kiXSxbInJvbGUiLCJj''@;'; put 'put ''b2x1bW5oZWFkZXIiLCJjbGFzcyIsImRhdGFncmlkLWNvbHVtbiBkYXRhZ3JpZC1zZWxlY3QgZGF0YWdyaWQtZml4ZWQtY29sdW1uIiwzLCJrZXlkb3duLnNwYWNlIiw0LCJuZ0lmIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwiY2xhc3MiLCJkYXRhZ3JpZC1jb2x1bW4gZGF0YWdyaWQtc2Vs''@;'; put 'put ''ZWN0IGRhdGFncmlkLWZpeGVkLWNvbHVtbiIsNCwibmdJZiJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsImNsYXNzIiwiZGF0YWdyaWQtY29sdW1uIGRhdGFncmlkLXJvdy1hY3Rpb25zIGRhdGFncmlkLWZpeGVkLWNvbHVtbiIsNCwibmdJZiJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsImNs''@;'; put 'put ''YXNzIiwiZGF0YWdyaWQtY29sdW1uIGRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgZGF0YWdyaWQtZml4ZWQtY29sdW1uIiw0LCJuZ0lmIl0sWzEsImRhdGFncmlkLXJvdy1zY3JvbGxhYmxlIl0sWyJwcm9qZWN0ZWREaXNwbGF5Q29sdW1ucyIsIiJdLFsiZGlzcGxheWVkUm93cyIsIiJdLFs0''@;'; put 'put ''LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLXNwaW5uZXIiLDQsIm5nSWYiXSxbMSwiZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUiXSxbMSwiZGF0YWdyaWQtY2FsY3VsYXRpb24taGVhZGVyIl0sWyJwcm9qZWN0ZWRDYWxjdWxhdGlvbkNvbHVtbnMiLCIiXSxbImNhbGN1bGF0aW9uUm93''@;'; put 'put ''cyIsIiJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwiZGF0YWdyaWQtY29sdW1uIiwiZGF0YWdyaWQtc2VsZWN0IiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIiwzLCJrZXlkb3duLnNwYWNlIl0sWzEsImNsci1jaGVja2JveC13cmFwcGVyIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJ0YWJpbmRl''@;'; put 'put ''eCIsIi0xIiwzLCJpZCIsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzEsImNsci1jb250cm9sLWxhYmVsIiwiY2xyLWNvbC1udWxsIiwzLCJmb3IiXSxbMSwiY2xyLXNyLW9ubHkiXSxbMSwiZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciJdLFsicm9sZSIsImNvbHVtbmhlYWRlciIsMSwi''@;'; put 'put ''ZGF0YWdyaWQtY29sdW1uIiwiZGF0YWdyaWQtc2VsZWN0IiwiZGF0YWdyaWQtZml4ZWQtY29sdW1uIl0sWyJyb2xlIiwiY29sdW1uaGVhZGVyIiwxLCJkYXRhZ3JpZC1jb2x1bW4iLCJkYXRhZ3JpZC1yb3ctYWN0aW9ucyIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiJdLFsicm9sZSIsImNvbHVt''@;'; put 'put ''bmhlYWRlciIsMSwiZGF0YWdyaWQtY29sdW1uIiwiZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCIsImRhdGFncmlkLWZpeGVkLWNvbHVtbiJdLFsxLCJkYXRhZ3JpZC1zcGlubmVyIl0sWyJjbHJNZWRpdW0iLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChUY2UpLE5pKDAp''@;'; put 'put ''LG50KDEsImRpdiIsMCkoMiwiZGl2IiwxKSgzLCJkaXYiLDIsMykoNSwiZGl2Iiw0KSg2LCJkaXYiLDUsNikoOCwiZGl2Iiw3KSg5LCJkaXYiLDgpKDEwLCJkaXYiLDkpKDExLCJkaXYiLDEwKSxybigxMixTTCw3LDUsImRpdiIsMTEpLHJuKDEzLFBqLDIsMSwiZGl2IiwxMikscm4oMTQsRWNl''@;'; put 'put ''LDIsMSwiZGl2IiwxMykscm4oMTUseCQsMiwxLCJkaXYiLDE0KSxvdCgpLG50KDE2LCJkaXYiLDE1KSxmMSgxNyxudWxsLDE2KSxvdCgpKCkoKSgpLGYxKDE5LG51bGwsMTcpLE5pKDIxLDEpLHJuKDIyLHhjZSwxLDAsImNsci1kZy1wbGFjZWhvbGRlciIsMTgpLG90KCkoKSgpLE5pKDIzLDIp''@;'; put 'put ''LHJuKDI0LGM4LDMsMCwiZGl2IiwxOSksb3QoKSxOaSgyNSwzKSxvdCgpLG50KDI2LCJkaXYiLDIwKSgyNywiZGl2IiwyMSksZjEoMjgsbnVsbCwyMiksb3QoKSxmMSgzMCxudWxsLDIzKSxvdCgpKSwyJmgmJih1dCgzKSxHaSgiYXJpYS1oaWRkZW4iLCEhdi5kZXRhaWxTZXJ2aWNlLmlzT3Bl''@;'; put 'put ''bnx8bnVsbCksdXQoOSksVHQoIm5nSWYiLHYuc2VsZWN0aW9uLnNlbGVjdGlvblR5cGU9PT12LlNFTEVDVElPTl9UWVBFLk11bHRpKSx1dCgxKSxUdCgibmdJZiIsdi5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PXYuU0VMRUNUSU9OX1RZUEUuU2luZ2xlKSx1dCgxKSxUdCgibmdJZiIsdi5y''@;'; put 'put ''b3dBY3Rpb25TZXJ2aWNlLmhhc0FjdGlvbmFibGVSb3cpLHV0KDEpLFR0KCJuZ0lmIix2LmV4cGFuZGFibGVSb3dzLmhhc0V4cGFuZGFibGVSb3d8fHYuZGV0YWlsU2VydmljZS5lbmFibGVkKSx1dCg3KSxUdCgibmdJZiIsIXYucGxhY2Vob2xkZXIpLHV0KDIpLFR0KCJuZ0lmIix2LmxvYWRp''@;'; put 'put ''bmcpKX0sZGVwZW5kZW5jaWVzOltqZmUsZ2EsTm8sSWYsVHMsSXMsYXRdLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFFmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuY29sdW1uc1NlcnZpY2U9aCx0aGlzLmFsbFNlbGVjdGVkPW5ldyBhcn1nZXQgY2xyQWxsU2VsZWN0ZWQo''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5hbGxTZWxlY3RlZC5hc09ic2VydmFibGUoKX1oaWRlYWJsZUNvbHVtbnMoKXtyZXR1cm4gdGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zLmZpbHRlcihoPT5oLnZhbHVlLmhpZGVhYmxlKX1nZXQgYWxsSGlkZWFibGVzVmlzaWJsZSgpe3JldHVybiAwPT09dGhpcy5o''@;'; put 'put ''aWRlYWJsZUNvbHVtbnMoKS5maWx0ZXIoaD0+aC52YWx1ZS5oaWRkZW4pLmxlbmd0aH1zZWxlY3RBbGwoKXt0aGlzLmhpZGVhYmxlQ29sdW1ucygpLmZvckVhY2goaD0+dGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFuZ2UoaCx7aGlkZGVuOiExLGNoYW5nZXM6W3BoLkhJRERFTl19''@;'; put 'put ''KSksdGhpcy5hbGxTZWxlY3RlZC5uZXh0KCEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoQXYpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dnbGUtYnV0dG9uIl1dLG91dHB1dHM6e2Ns''@;'; put 'put ''ckFsbFNlbGVjdGVkOiJjbHJBbGxTZWxlY3RlZCJ9LG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoyLHZhcnM6MSxjb25zdHM6W1sidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWxpbmsiLCJzd2l0Y2gtYnV0dG9uIiwzLCJkaXNhYmxlZCIsImNsaWNrIl1dLHRlbXBs''@;'; put 'put ''YXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxudCgwLCJidXR0b24iLDApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zZWxlY3RBbGwoKX0pLE5pKDEpLG90KCkpLDImaCYmVHQoImRpc2FibGVkIix2LmFsbEhpZGVhYmxlc1Zpc2libGUpfSxlbmNhcHN1bGF0aW9uOjJ9KSxk''@;'; put 'put ''fSkoKSxjeWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jb2x1bW4tdG9nZ2xlLXRpdGxlIl1dLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNs''@;'; put 'put ''czoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxKZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLl9pdGVtcz1ofXNldCB0cmFja0J5KGgpe3RoaXMuX2l0ZW1zJiYodGhpcy5faXRlbXMu''@;'; put 'put ''dHJhY2tCeT1oKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZ3csOCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ0ZvclRyYWNrQnkiLCIiXV0saW5wdXRzOnt0cmFja0J5OlsibmdGb3JUcmFja0J5IiwidHJh''@;'; put 'put ''Y2tCeSJdfX0pLGR9KSgpLFhmZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxaLHVlKXt0aGlzLmNvbW1vblN0cmluZ3M9aCx0aGlzLmNvbHVtbnNTZXJ2aWNlPXYsdGhpcy5jb2x1bW5Td2l0Y2hJZD15LHRoaXMucGxhdGZvcm1JZD1DLHRoaXMuem9uZT1JLHRoaXMucG9w''@;'; put 'put ''b3ZlcklkPVosdGhpcy5wb3BvdmVyVG9nZ2xlU2VydmljZT11ZSx0aGlzLnNtYXJ0UG9zaXRpb249e2F4aXM6JDEuVkVSVElDQUwsc2lkZTpsLkJFRk9SRSxhbmNob3I6X28uU1RBUlQsY29udGVudDpfby5TVEFSVH0sdGhpcy5zdWJzY3JpcHRpb249dWUub3BlbkNoYW5nZS5zdWJzY3JpYmUo''@;'; put 'put ''X2U9PnRoaXMub3BlblN0YXRlPV9lKX1nZXQgYWxsQ29sdW1uc1Zpc2libGUoKXtyZXR1cm4gdGhpcy5fYWxsQ29sdW1uc1Zpc2libGV9c2V0IGFsbENvbHVtbnNWaXNpYmxlKGgpe3RoaXMuX2FsbENvbHVtbnNWaXNpYmxlPWh9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbi51bnN1''@;'; put 'put ''YnNjcmliZSgpfWdldCBoaWRlYWJsZUNvbHVtblN0YXRlcygpe3JldHVybiB0aGlzLmNvbHVtbnNTZXJ2aWNlLmNvbHVtbnMuZmlsdGVyKHY9PnYudmFsdWUuaGlkZWFibGUpLm1hcCh2PT52LnZhbHVlKX1nZXQgaGFzT25seU9uZVZpc2libGVDb2x1bW4oKXtyZXR1cm4gdGhpcy5jb2x1bW5z''@;'; put 'put ''U2VydmljZS5jb2x1bW5zLmxlbmd0aC10aGlzLmhpZGVhYmxlQ29sdW1uU3RhdGVzLmxlbmd0aD09MCYmMT09PXRoaXMuaGlkZWFibGVDb2x1bW5TdGF0ZXMuZmlsdGVyKHY9PiF2LmhpZGRlbikubGVuZ3RofXRvZ2dsZUNvbHVtblN0YXRlKGgsdil7Y29uc3QgeT10aGlzLmNvbHVtbnNTZXJ2''@;'; put 'put ''aWNlLmNvbHVtbnMuZmlsdGVyKEM9PkMudmFsdWU9PT1oKVswXTt0aGlzLmNvbHVtbnNTZXJ2aWNlLmVtaXRTdGF0ZUNoYW5nZSh5LHtoaWRkZW46dixjaGFuZ2VzOltwaC5ISURERU5dfSl9dG9nZ2xlU3dpdGNoUGFuZWwoKXt0aGlzLm9wZW5TdGF0ZT0hdGhpcy5vcGVuU3RhdGV9YWxsQ29s''@;'; put 'put ''dW1uc1NlbGVjdGVkKCl7dGhpcy5hbGxTZWxlY3RlZEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpfXRyYWNrQnlGbihoKXtyZXR1cm4gaH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QobnMpLEt0KEF2KSxLdCh5MiksS3QoTDIpLEt0KF9s''@;'; put 'put ''KSxLdCh5MiksS3QoenMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRnLWNvbHVtbi10b2dnbGUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhvKHksY3llLDUpLHhvKHksUWZlLDUpKSwyJmgpe2xldCBDO0hpKEM9JGkoKSkm''@;'; put 'put ''Jih2LmN1c3RvbVRvZ2dsZVRpdGxlPUMuZmlyc3QpLEhpKEM9JGkoKSkmJih2LmN1c3RvbVRvZ2dsZUJ1dHRvbj1DLmZpcnN0KX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8oRmosNSxibyksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5hbGxTZWxlY3RlZEVsZW1lbnQ9''@;'; put 'put ''eS5maXJzdCl9fSxob3N0VmFyczo0LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImNvbHVtbi1zd2l0Y2gtd3JhcHBlciIsITApKCJhY3RpdmUiLHYub3BlblN0YXRlKX0sZmVhdHVyZXM6W2hvKFtPYyxoOCxHcyx6c10pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6T2NlLGRlY2xz''@;'; put 'put ''OjUsdmFyczo5LGNvbnN0czpbWyJyb2xlIiwiYnV0dG9uIiwidHlwZSIsImJ1dHRvbiIsImNsclBvcG92ZXJBbmNob3IiLCIiLCJjbHJQb3BvdmVyT3BlbkNsb3NlQnV0dG9uIiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsImNvbHVtbi10b2dnbGUtLWFjdGlvbiJdLFsic2hhcGUi''@;'; put 'put ''LCJ2aWV3LWNvbHVtbnMiLCJhcmlhLWhpZGRlbiIsInRydWUiXSxbMSwiY2xyLXNyLW9ubHkiXSxbImNsYXNzIiwiY29sdW1uLXN3aXRjaCIsInJvbGUiLCJkaWFsb2ciLCJjbHJGb2N1c1RyYXAiLCIiLDMsImlkIiw0LCJjbHJQb3BvdmVyQ29udGVudCIsImNsclBvcG92ZXJDb250ZW50QXQi''@;'; put 'put ''LCJjbHJQb3BvdmVyQ29udGVudE91dHNpZGVDbGlja1RvQ2xvc2UiLCJjbHJQb3BvdmVyQ29udGVudFNjcm9sbFRvQ2xvc2UiXSxbInJvbGUiLCJkaWFsb2ciLCJjbHJGb2N1c1RyYXAiLCIiLDEsImNvbHVtbi1zd2l0Y2giLDMsImlkIl0sWzEsInN3aXRjaC1oZWFkZXIiXSxbInRhYmluZGV4''@;'; put 'put ''IiwiLTEiLDEsImNsci1zci1vbmx5Il0sWyJhbGxTZWxlY3RlZCIsIiJdLFs0LCJuZ0lmIl0sWyJjbHJQb3BvdmVyQ2xvc2VCdXR0b24iLCIiLCJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsInRvZ2dsZS1zd2l0Y2gtY2xvc2UtYnV0dG9uIl0sWyJzaGFwZSIs''@;'; put 'put ''IndpbmRvdy1jbG9zZSIsImFyaWEtaGlkZGVuIiwidHJ1ZSJdLFsxLCJzd2l0Y2gtY29udGVudCIsImxpc3QtdW5zdHlsZWQiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIiwibmdGb3JUcmFja0J5Il0sWzEsInN3aXRjaC1mb290ZXIiXSxbMywiY2xyQWxsU2VsZWN0ZWQiLDQsIm5nSWYiXSxbImNs''@;'; put 'put ''ckNoZWNrYm94IiwiIiwidHlwZSIsImNoZWNrYm94IiwzLCJkaXNhYmxlZCIsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsIm5nVGVtcGxhdGVPdXRsZXQiXSxbMywiY2xyQWxsU2VsZWN0ZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChuUyksbnQoMCwiYnV0dG9u''@;'; put 'put ''IiwwKSxDcigxLCJjZHMtaWNvbiIsMSksbnQoMiwic3BhbiIsMiksWXQoMyksb3QoKSgpLHJuKDQsTGNlLDE2LDEwLCJkaXYiLDMpKSwyJmgmJihHaSgiYXJpYS1jb250cm9scyIsdi5wb3BvdmVySWQpKCJhcmlhLW93bnMiLHYucG9wb3ZlcklkKSgiYXJpYS1leHBhbmRlZCIsdi5vcGVuU3Rh''@;'; put 'put ''dGUpLHV0KDEpLEdpKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMucGlja0NvbHVtbnMpLHV0KDIpLGppKHYuY29tbW9uU3RyaW5ncy5rZXlzLnBpY2tDb2x1bW5zKSx1dCgxKSxUdCgiY2xyUG9wb3ZlckNvbnRlbnQiLHYub3BlblN0YXRlKSgiY2xyUG9wb3ZlckNvbnRlbnRBdCIsdi5z''@;'; put 'put ''bWFydFBvc2l0aW9uKSgiY2xyUG9wb3ZlckNvbnRlbnRPdXRzaWRlQ2xpY2tUb0Nsb3NlIiwhMCkoImNsclBvcG92ZXJDb250ZW50U2Nyb2xsVG9DbG9zZSIsITApKX0sZGVwZW5kZW5jaWVzOltPaSxRZmUsdXcsY3csWm8sZGwsaHcsTm8scnEseHMsSmZlLElmLFJvLFRzLElzLGF0LFhkXSxl''@;'; put 'put ''bmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxoeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmV4cGFuZGFibGVSb3dzQ291bnQ9aCx0aGlzLmV4cGFuZGFibGVSb3dzQ291bnQmJnRoaXMuZXhwYW5kYWJsZVJvd3NDb3VudC5yZWdpc3RlcigpfW5nT25EZXN0cm95KCl7dGhpcy5l''@;'; put 'put ''eHBhbmRhYmxlUm93c0NvdW50JiZ0aGlzLmV4cGFuZGFibGVSb3dzQ291bnQudW5yZWdpc3RlcigpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChqTCw4KSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNscklmRXhw''@;'; put 'put ''YW5kZWQiLCIiXV19KSxkfSkoKSxMT2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX3RleHRDb250ZW50Q2hhbmdlPW5ldyAkZX1nZXQgdGV4dENvbnRlbnRDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fdGV4dENvbnRlbnRDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IHRleHRDb250''@;'; put 'put ''ZW50KCl7cmV0dXJuIHRoaXMuX3RleHRDb250ZW50fXNldCB0ZXh0Q29udGVudChoKXt0aGlzLl90ZXh0Q29udGVudD1oLHRoaXMuX3RleHRDb250ZW50Q2hhbmdlLm5leHQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9''@;'; put 'put ''QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLE9PZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0p''@;'; put 'put ''LGR9KSgpLGZaPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zZWxlY3Rpb249aCx0aGlzLmRldGFpbFNlcnZpY2U9dix0aGlzLmNvbHVtbnNTZXJ2aWNlPXksdGhpcy5jb21tb25TdHJpbmdzPUMsdGhpcy5TRUxFQ1RJT05fVFlQRT1Xc31nZXQgaGFzSGlkZWFibGVD''@;'; put 'put ''b2x1bW5zKCl7cmV0dXJuIHRoaXMuY29sdW1uc1NlcnZpY2UuaGFzSGlkZWFibGVDb2x1bW5zfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChjWiksS3QoQTgpLEt0KEF2KSxLdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9y''@;'; put 'put ''czpbWyJjbHItZGctZm9vdGVyIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHksWGZlLDUpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYudG9nZ2xlPUMuZmlyc3QpfX0saG9zdFZhcnM6Mixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJk''@;'; put 'put ''YXRhZ3JpZC1mb290ZXIiLCEwKX0sbmdDb250ZW50U2VsZWN0b3JzOkhjZSxkZWNsczozLHZhcnM6Mixjb25zdHM6W1s0LCJuZ0lmIl0sWzEsImNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQiXSxbMSwiZGF0YWdyaWQtZm9vdGVyLXNlbGVjdCJdLFsiY2xyQ2hlY2tib3giLCIiLCJ0eXBlIiwi''@;'; put 'put ''Y2hlY2tib3giLCJjaGVja2VkIiwiY2hlY2tlZCIsImRpc2FibGVkIiwiIl0sWzEsImNsci1zci1vbmx5Il0sWzEsImRhdGFncmlkLWZvb3Rlci1kZXNjcmlwdGlvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKEkkKSxybigwLEJjZSw4LDIsIm5nLWNvbnRhaW5lciIsMCks''@;'; put 'put ''cm4oMSxGY2UsNSwxLCJuZy1jb250YWluZXIiLDApLE5pKDIpKSwyJmgmJihUdCgibmdJZiIsdi5zZWxlY3Rpb24uc2VsZWN0aW9uVHlwZT09PXYuU0VMRUNUSU9OX1RZUEUuTXVsdGkmJnYuc2VsZWN0aW9uLmN1cnJlbnQubGVuZ3RoPjApLHV0KDEpLFR0KCJuZ0lmIiwhdi5kZXRhaWxTZXJ2''@;'; put 'put ''aWNlLmlzT3BlbikpfSxkZXBlbmRlbmNpZXM6W09pLFhmZSxObyxSbyxhdF0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCk7Y29uc3QgS2ZlPW5ldyB6ZSgiQ09MVU1OX1NUQVRFIiksQk9lPXtwcm92aWRlOktmZSx1c2VGYWN0b3J5OmZ1bmN0aW9uIFJPZSgpe3JldHVybiBuZXcgZnMoe2NoYW5n''@;'; put 'put ''ZXM6W119KX19O2xldCAkZmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLnBhZ2U9aH1uZ09uSW5pdCgpeyghdGhpcy5wYWdlU2l6ZU9wdGlvbnN8fDA9PT10aGlzLnBhZ2VTaXplT3B0aW9ucy5sZW5ndGgpJiYodGhpcy5wYWdlU2l6ZU9wdGlvbnM9W3RoaXMucGFnZS5zaXpl''@;'; put 'put ''XSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGR3KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1wYWdlLXNpemUiXV0saW5wdXRzOntwYWdlU2l6ZU9wdGlvbnM6WyJjbHJQYWdlU2l6ZU9wdGlvbnMiLCJw''@;'; put 'put ''YWdlU2l6ZU9wdGlvbnMiXX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjQsdmFyczo0LGNvbnN0czpbWzEsImNsci1zZWxlY3Qtd3JhcHBlciJdLFszLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJuZ1ZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywibmdWYWx1ZSJd''@;'; put 'put ''XSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCksbnQoMSwiZGl2IiwwKSgyLCJzZWxlY3QiLDEpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5wYWdlLnNpemU9Q30pLHJuKDMsRCQsMiwyLCJvcHRpb24iLDIpLG90KCkoKSksMiZoJiYodXQo''@;'; put 'put ''MiksRmkoImNsci1wYWdlLXNpemUtc2VsZWN0IiwhMCksVHQoIm5nTW9kZWwiLHYucGFnZS5zaXplKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5wYWdlU2l6ZU9wdGlvbnMpKX0sZGVwZW5kZW5jaWVzOltPZixUcyxJcyx4cywkMyxxM10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksaFo9KCgpPT57''@;'; put 'put ''Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5wYWdlPWgsdGhpcy5jb21tb25TdHJpbmdzPXYsdGhpcy5kZXRhaWxTZXJ2aWNlPXksdGhpcy5jdXJyZW50Q2hhbmdlZD1uZXcgYXIoITEpLHRoaXMucGFnZS5hY3RpdmF0ZWQ9ITB9bmdPbkluaXQoKXt0aGlzLnBhZ2Uuc2l6ZXx8KHRo''@;'; put 'put ''aXMucGFnZS5zaXplPTEwKSx0aGlzLl9wYWdlU3Vic2NyaXB0aW9uPXRoaXMucGFnZS5jaGFuZ2Uuc3Vic2NyaWJlKGg9PnRoaXMuY3VycmVudENoYW5nZWQuZW1pdChoKSl9bmdPbkRlc3Ryb3koKXt0aGlzLnBhZ2UucmVzZXRQYWdlU2l6ZSghMCksdGhpcy5fcGFnZVN1YnNjcmlwdGlvbiYm''@;'; put 'put ''dGhpcy5fcGFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWdldCBwYWdlU2l6ZSgpe3JldHVybiB0aGlzLnBhZ2Uuc2l6ZX1zZXQgcGFnZVNpemUoaCl7Im51bWJlciI9PXR5cGVvZiBoJiYodGhpcy5wYWdlLnNpemU9aCl9Z2V0IHRvdGFsSXRlbXMoKXtyZXR1cm4gdGhpcy5wYWdlLnRv''@;'; put 'put ''dGFsSXRlbXN9c2V0IHRvdGFsSXRlbXMoaCl7Im51bWJlciI9PXR5cGVvZiBoJiYodGhpcy5wYWdlLnRvdGFsSXRlbXM9aCl9Z2V0IGxhc3RQYWdlKCl7cmV0dXJuIHRoaXMucGFnZS5sYXN0fXNldCBsYXN0UGFnZShoKXsibnVtYmVyIj09dHlwZW9mIGgmJih0aGlzLnBhZ2UubGFzdD1oKX1n''@;'; put 'put ''ZXQgY3VycmVudFBhZ2UoKXtyZXR1cm4gdGhpcy5wYWdlLmN1cnJlbnR9c2V0IGN1cnJlbnRQYWdlKGgpeyJudW1iZXIiPT10eXBlb2YgaCYmKHRoaXMucGFnZS5jdXJyZW50PWgpfXByZXZpb3VzKCl7dGhpcy5wYWdlLnByZXZpb3VzKCl9bmV4dCgpe3RoaXMucGFnZS5uZXh0KCl9Z2V0IGZp''@;'; put 'put ''cnN0SXRlbSgpe3JldHVybiB0aGlzLnBhZ2UuZmlyc3RJdGVtfWdldCBsYXN0SXRlbSgpe3JldHVybiB0aGlzLnBhZ2UubGFzdEl0ZW19Z2V0IG1pZGRsZVBhZ2VzKCl7Y29uc3QgaD1bXTtyZXR1cm4gdGhpcy5wYWdlLmN1cnJlbnQ+MSYmaC5wdXNoKHRoaXMucGFnZS5jdXJyZW50LTEpLGgu''@;'; put 'put ''cHVzaCh0aGlzLnBhZ2UuY3VycmVudCksdGhpcy5wYWdlLmN1cnJlbnQ8dGhpcy5wYWdlLmxhc3QmJmgucHVzaCh0aGlzLnBhZ2UuY3VycmVudCsxKSxofXVwZGF0ZUN1cnJlbnRQYWdlKGgpe2NvbnN0IHY9cGFyc2VJbnQoaC50YXJnZXQudmFsdWUsMTApO2lzTmFOKHYpfHwodGhpcy5wYWdl''@;'; put 'put ''LmN1cnJlbnQ9djwxPzE6dj50aGlzLnBhZ2UubGFzdD90aGlzLnBhZ2UubGFzdDp2KSx0aGlzLmN1cnJlbnRQYWdlSW5wdXRSZWYubmF0aXZlRWxlbWVudC52YWx1ZT10aGlzLnBhZ2UuY3VycmVudH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qo''@;'; put 'put ''ZHcpLEt0KG5zKSxLdChBOCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctcGFnaW5hdGlvbiJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LCRmZSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2Ll9wYWdlU2l6ZUNv''@;'; put 'put ''bXBvbmVudD1DLmZpcnN0KX19LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8oTmNlLDUpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuY3VycmVudFBhZ2VJbnB1dFJlZj15LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgi''@;'; put 'put ''cGFnaW5hdGlvbiIsITApfSxpbnB1dHM6e2Rpc2FibGVDdXJyZW50UGFnZUlucHV0OlsiY2xyRGdQYWdlSW5wdXREaXNhYmxlZCIsImRpc2FibGVDdXJyZW50UGFnZUlucHV0Il0scGFnZVNpemU6WyJjbHJEZ1BhZ2VTaXplIiwicGFnZVNpemUiXSx0b3RhbEl0ZW1zOlsiY2xyRGdUb3RhbEl0''@;'; put 'put ''ZW1zIiwidG90YWxJdGVtcyJdLGxhc3RQYWdlOlsiY2xyRGdMYXN0UGFnZSIsImxhc3RQYWdlIl0sY3VycmVudFBhZ2U6WyJjbHJEZ1BhZ2UiLCJjdXJyZW50UGFnZSJdfSxvdXRwdXRzOntjdXJyZW50Q2hhbmdlZDoiY2xyRGdQYWdlQ2hhbmdlIn0sbmdDb250ZW50U2VsZWN0b3JzOmtwLGRl''@;'; put 'put ''Y2xzOjIsdmFyczoyLGNvbnN0czpbWzQsIm5nSWYiXSxbImNsYXNzIiwicGFnaW5hdGlvbi1zaXplIiw0LCJuZ0lmIl0sWzEsInBhZ2luYXRpb24tZGVzY3JpcHRpb24iXSxbImNsYXNzIiwicGFnaW5hdGlvbi1saXN0Iiw0LCJuZ0lmIl0sWzEsInBhZ2luYXRpb24tc2l6ZSJdLFsxLCJwYWdp''@;'; put 'put ''bmF0aW9uLWxpc3QiXSxbInR5cGUiLCJidXR0b24iLDEsInBhZ2luYXRpb24tZmlyc3QiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMSwiY2xyLXNyLW9ubHkiXSxbInNoYXBlIiwic3RlcC1mb3J3YXJkLTIiLCJkaXJlY3Rpb24iLCJkb3duIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJwYWdpbmF0''@;'; put 'put ''aW9uLXByZXZpb3VzIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVmdCJdLFsidHlwZSIsInRleHQiLCJjbGFzcyIsInBhZ2luYXRpb24tY3VycmVudCBjbHItaW5wdXQiLDMsInNpemUiLCJ2YWx1ZSIsImtleWRvd24uZW50ZXIiLCJibHVy''@;'; put 'put ''Iiw0LCJuZ0lmIiwibmdJZkVsc2UiXSxbInJlYWRPbmx5IiwiIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJwYWdpbmF0aW9uLW5leHQiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUiLCJkaXJlY3Rpb24iLCJyaWdodCJdLFsidHlwZSIsImJ1dHRvbiIsMSwicGFnaW5hdGlv''@;'; put 'put ''bi1sYXN0IiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJzaGFwZSIsInN0ZXAtZm9yd2FyZC0yIiwiZGlyZWN0aW9uIiwidXAiXSxbInR5cGUiLCJ0ZXh0IiwxLCJwYWdpbmF0aW9uLWN1cnJlbnQiLCJjbHItaW5wdXQiLDMsInNpemUiLCJ2YWx1ZSIsImtleWRvd24uZW50ZXIiLCJibHVyIl0s''@;'; put 'put ''WyJjdXJyZW50UGFnZUlucHV0IiwiIl0sWzEsInBhZ2luYXRpb24tZGVzY3JpcHRpb24tY29tcGFjdCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKHIzKSxybigwLFpjZSw1LDIsIm5nLWNvbnRhaW5lciIsMCkscm4oMSxPJCwxNCwxMCwibmctY29udGFpbmVyIiwwKSksMiZo''@;'; put 'put ''JiYoVHQoIm5nSWYiLCF2LmRldGFpbFNlcnZpY2UuaXNPcGVuKSx1dCgxKSxUdCgibmdJZiIsdi5kZXRhaWxTZXJ2aWNlLmlzT3BlbikpfSxkZXBlbmRlbmNpZXM6W05vLFpvXSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTtjb25zdCBXTD0iZGF0YWdyaWQtZml4ZWQtd2lkdGgiLGJxPSJkYXRh''@;'; put 'put ''Z3JpZC1oaWRkZW4tY29sdW1uIjtsZXQgdlM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5lbD1oLHRoaXMucmVuZGVyZXI9dix0aGlzLnN1YnNjcmlwdGlvbnM9W10sdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goeS5maWx0ZXJSZW5kZXJTdGVwcyhoNC5DTEVBUl9XSURU''@;'; put 'put ''SFMpLnN1YnNjcmliZSgoKT0+dGhpcy5jbGVhcldpZHRoKCkpKX1zZXQgY29sdW1uU3RhdGUoaCl7dGhpcy5zdGF0ZVN1YnNjcmlwdGlvbiYmdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpLHRoaXMucnVuQWxsQ2hhbmdlcz1seWUsdGhpcy5zdGF0ZVN1YnNjcmlwdGlvbj1o''@;'; put 'put ''LnN1YnNjcmliZSh2PT50aGlzLnN0YXRlQ2hhbmdlcyh2KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpLHRoaXMuc3RhdGVTdWJzY3JpcHRpb24mJnRoaXMuc3RhdGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX1zdGF0ZUNo''@;'; put 'put ''YW5nZXMoaCl7dGhpcy5ydW5BbGxDaGFuZ2VzJiYoaC5jaGFuZ2VzPXRoaXMucnVuQWxsQ2hhbmdlcyxkZWxldGUgdGhpcy5ydW5BbGxDaGFuZ2VzKSxoLmNoYW5nZXMmJmguY2hhbmdlcy5sZW5ndGgmJmguY2hhbmdlcy5mb3JFYWNoKHY9Pntzd2l0Y2godil7Y2FzZSBwaC5XSURUSDp0aGlz''@;'; put 'put ''LnNldFdpZHRoKGgpO2JyZWFrO2Nhc2UgcGguSElEREVOOnRoaXMuc2V0SGlkZGVuKGgpfX0pfWNsZWFyV2lkdGgoKXt0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxXTCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQs''@;'; put 'put ''IndpZHRoIixudWxsKX1zZXRXaWR0aChoKXtoLnN0cmljdFdpZHRoP3RoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LFdMKTp0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxXTCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0''@;'; put 'put ''aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixoLndpZHRoKyJweCIpfXNldEhpZGRlbihoKXtoLmhpZGRlbj90aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxicSk6dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsYnEp''@;'; put 'put ''fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibyksS3QoR2EpLEt0KHBTKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1kZy1jZWxsIl1dfSksZH0pKCksQVM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYs''@;'; put 'put ''eSxDLEksWix1ZSl7dGhpcy5lbD1oLHRoaXMucmVuZGVyZXI9dix0aGlzLm9yZ2FuaXplcj15LHRoaXMuZG9tQWRhcHRlcj1DLHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2U9SSx0aGlzLmNvbHVtbnNTZXJ2aWNlPVosdGhpcy5jb2x1bW5TdGF0ZT11ZSx0aGlzLnJlc2l6ZUVtaXR0ZXI9bmV3''@;'; put 'put ''IGFyLHRoaXMud2lkdGhTZXQ9ITEsdGhpcy5hdXRvU2V0PSExLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm9yZ2FuaXplci5maWx0ZXJSZW5kZXJTdGVwcyhoNC5DTEVBUl9XSURUSFMpLnN1YnNjcmliZSgoKT0+dGhpcy5jbGVhcldpZHRoKCkp''@;'; put 'put ''KSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh1ZS5zdWJzY3JpYmUoX2U9PnRoaXMuc3RhdGVDaGFuZ2VzKF9lKSkpfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1zdGF0ZUNoYW5nZXMoaCl7aC5jaGFuZ2VzJiZoLmNoYW5nZXMu''@;'; put 'put ''bGVuZ3RoJiZoLmNoYW5nZXMuZm9yRWFjaCh2PT57c3dpdGNoKHYpe2Nhc2UgcGguV0lEVEg6dGhpcy5zZXRXaWR0aChoKTticmVhaztjYXNlIHBoLkhJRERFTjp0aGlzLnNldEhpZGRlbihoKX19KX1jbGVhcldpZHRoKCl7dGhpcy53aWR0aFNldCYmIXRoaXMuY29sdW1uUmVzaXplclNlcnZp''@;'; put 'put ''Y2UucmVzaXplZEJ5JiZ0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwid2lkdGgiLG51bGwpLHRoaXMuYXV0b1NldCYmdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsV0wpfWRldGVjdFN0cmljdFdpZHRoKCl7cmV0dXJu''@;'; put 'put ''IHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5P3RoaXMuY29sdW1uUmVzaXplclNlcnZpY2Uud2lkdGhBZnRlclJlc2l6ZTp0aGlzLmF1dG9TZXQ/MDp0aGlzLmRvbUFkYXB0ZXIudXNlckRlZmluZWRXaWR0aCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpfWNvbXB1dGVXaWR0aCho''@;'; put 'put ''KXtsZXQgdj1oO3JldHVybiB2fHwodj10aGlzLmRvbUFkYXB0ZXIuc2Nyb2xsV2lkdGgodGhpcy5lbC5uYXRpdmVFbGVtZW50KSksdn1nZXRDb2x1bW5XaWR0aFN0YXRlKCl7Y29uc3QgaD10aGlzLmRldGVjdFN0cmljdFdpZHRoKCk7cmV0dXJue3dpZHRoOnRoaXMuY29tcHV0ZVdpZHRoKGgp''@;'; put 'put ''LHN0cmljdFdpZHRoOmh9fXNldENvbHVtblN0YXRlKGgpe3RoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1uc1toXT10aGlzLmNvbHVtblN0YXRlfXNldFdpZHRoKGgpe2guc3RyaWN0V2lkdGg/KHRoaXMuY29sdW1uUmVzaXplclNlcnZpY2UucmVzaXplZEJ5JiYodGhpcy5yZXNpemVFbWl0dGVy''@;'; put 'put ''LmVtaXQoaC53aWR0aCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixoLndpZHRoKyJweCIpLHRoaXMud2lkdGhTZXQ9ITEpLHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LFdMKSx0aGlzLmF1dG9TZXQ9ITEp''@;'; put 'put ''Oih0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCxXTCksdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIndpZHRoIixoLndpZHRoKyJweCIpLHRoaXMud2lkdGhTZXQ9ITAsdGhpcy5hdXRvU2V0PSEwKX1zZXRIaWRkZW4o''@;'; put 'put ''aCl7aC5oaWRkZW4/dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsYnEpOnRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LGJxKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qo''@;'; put 'put ''Ym8pLEt0KEdhKSxLdChwUyksS3QoZjQpLEt0KE5mZSksS3QoQXYpLEt0KEtmZSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctY29sdW1uIl1dLG91dHB1dHM6e3Jlc2l6ZUVtaXR0ZXI6ImNsckRnQ29sdW1uUmVzaXplIn0sZmVhdHVyZXM6W2hvKFtOZmUs''@;'; put 'put ''Qk9lXSldfSksZH0pKCksTk9lPSgoKT0+e2NsYXNzIGR7dXNlckRlZmluZWRXaWR0aChoKXtyZXR1cm4gMH1zY3JvbGxCYXJXaWR0aChoKXtyZXR1cm4gMH1zY3JvbGxXaWR0aChoKXtyZXR1cm4gMH1jb21wdXRlZEhlaWdodChoKXtyZXR1cm4gMH1jbGllbnRSZWN0KGgpe3JldHVybnt0b3A6''@;'; put 'put ''MCxib3R0b206MCxsZWZ0OjAscmlnaHQ6MCx3aWR0aDowLGhlaWdodDowfX1taW5XaWR0aChoKXtyZXR1cm4gMH1mb2N1cyhoKXt9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3''@;'; put 'put ''NWZhY30pLGR9KSgpLHlTPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5jb2x1bW5zU2VydmljZT1oLHRoaXMuc3Vic2NyaXB0aW9ucz1bXX1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldENvbHVtblN0YXRlKCksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5jZWxs''@;'; put 'put ''cy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuc2V0Q29sdW1uU3RhdGUoKX0pKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9c2V0Q29sdW1uU3RhdGUoKXt0aGlzLmNlbGxzLmxlbmd0aD09PXRoaXMuY29sdW1uc1NlcnZp''@;'; put 'put ''Y2UuY29sdW1ucy5sZW5ndGgmJnRoaXMuY2VsbHMuZm9yRWFjaCgoaCx2KT0+e3RoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1uc1t2XSYmKGguY29sdW1uU3RhdGU9dGhpcy5jb2x1bW5zU2VydmljZS5jb2x1bW5zW3ZdKX0pfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; put 'put ''IG5ldyhofHxkKShLdChBdikpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZGctcm93Il0sWyJjbHItZGctcm93LWRldGFpbCJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LHZTLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYm''@;'; put 'put ''KHYuY2VsbHM9Qyl9fX0pLGR9KSgpO2NvbnN0IFZPZT1kPT5TbChkKT9uZXcgZjQ6bmV3IE5PZTtsZXQgWUw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksWix1ZSxfZSxCZSxOZSl7dGhpcy5vcmdhbml6ZXI9aCx0aGlzLml0ZW1zPXYsdGhpcy5wYWdlPXksdGhpcy5kb21B''@;'; put 'put ''ZGFwdGVyPUMsdGhpcy5lbD1JLHRoaXMucmVuZGVyZXI9Wix0aGlzLmRldGFpbFNlcnZpY2U9dWUsdGhpcy50YWJsZVNpemVTZXJ2aWNlPV9lLHRoaXMuY29sdW1uc1NlcnZpY2U9QmUsdGhpcy5uZ1pvbmU9TmUsdGhpcy5faGVpZ2h0U2V0PSExLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlz''@;'; put 'put ''LmNvbHVtbnNTaXplc1N0YWJsZT0hMSx0aGlzLnNob3VsZFN0YWJpbGl6ZUNvbHVtbnM9ITAsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5vcmdhbml6ZXIuZmlsdGVyUmVuZGVyU3RlcHMoaDQuQ09NUFVURV9DT0xVTU5fV0lEVEhTKS5zdWJzY3JpYmUoKCk9PnRoaXMuY29tcHV0ZUhl''@;'; put 'put ''YWRlcnNXaWR0aCgpKSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5wYWdlLnNpemVDaGFuZ2Uuc3Vic2NyaWJlKCgpPT57dGhpcy5faGVpZ2h0U2V0JiZ0aGlzLnJlc2V0RGF0YWdyaWRIZWlnaHQoKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmRldGFpbFNlcnZpY2Uu''@;'; put 'put ''c3RhdGVDaGFuZ2Uuc3Vic2NyaWJlKEtlPT50aGlzLnRvZ2dsZURldGFpbFBhbmUoS2UpKSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5pdGVtcy5jaGFuZ2Uuc3Vic2NyaWJlKCgpPT50aGlzLnNob3VsZFN0YWJpbGl6ZUNvbHVtbnM9ITApKX1uZ0FmdGVyQ29udGVudEluaXQoKXt0''@;'; put 'put ''aGlzLnNldHVwQ29sdW1ucygpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuaGVhZGVycy5jaGFuZ2VzLnN1YnNjcmliZSgoKT0+e3RoaXMuc2V0dXBDb2x1bW5zKCksdGhpcy5jb2x1bW5zU2l6ZXNTdGFibGU9ITEsdGhpcy5zdGFiaWxpemVDb2x1bW5zKCl9KSl9bmdBZnRlclZpZXdJ''@;'; put 'put ''bml0KCl7dGhpcy50YWJsZVNpemVTZXJ2aWNlLnRhYmxlPXRoaXMuZWx9bmdBZnRlclZpZXdDaGVja2VkKCl7dGhpcy5zaG91bGRTdGFiaWxpemVDb2x1bW5zJiZ0aGlzLnN0YWJpbGl6ZUNvbHVtbnMoKSx0aGlzLnNob3VsZENvbXB1dGVIZWlnaHQoKSYmdGhpcy5uZ1pvbmUucnVuT3V0c2lk''@;'; put 'put ''ZUFuZ3VsYXIoKCk9PntzZXRUaW1lb3V0KCgpPT57dGhpcy5jb21wdXRlRGF0YWdyaWRIZWlnaHQoKX0pfSl9c2V0dXBDb2x1bW5zKCl7dGhpcy5oZWFkZXJzLmZvckVhY2goKGgsdik9Pmguc2V0Q29sdW1uU3RhdGUodikpLHRoaXMuY29sdW1uc1NlcnZpY2UuY29sdW1ucy5zcGxpY2UodGhp''@;'; put 'put ''cy5oZWFkZXJzLmxlbmd0aCksdGhpcy5yb3dzLmZvckVhY2goaD0+aC5zZXRDb2x1bW5TdGF0ZSgpKX1zaG91bGRDb21wdXRlSGVpZ2h0KCl7cmV0dXJuIXRoaXMuX2hlaWdodFNldCYmdGhpcy5wYWdlLnNpemU+MCYmdGhpcy5pdGVtcy5kaXNwbGF5ZWQubGVuZ3RoPT09dGhpcy5wYWdlLnNp''@;'; put 'put ''emV9dG9nZ2xlRGV0YWlsUGFuZShoKXt0aGlzLmhlYWRlcnMmJihoJiYhdGhpcy5jb2x1bW5zU2VydmljZS5oYXNDYWNoZSgpPyh0aGlzLmNvbHVtbnNTZXJ2aWNlLmNhY2hlKCksdGhpcy5oZWFkZXJzLmZvckVhY2goKHYseSk9Pnt5PjAmJnRoaXMuY29sdW1uc1NlcnZpY2UuZW1pdFN0YXRl''@;'; put 'put ''Q2hhbmdlQXQoeSx7Y2hhbmdlczpbcGguSElEREVOXSxoaWRkZW46aH0pfSkpOmh8fHRoaXMuY29sdW1uc1NlcnZpY2UucmVzZXRUb0xhc3RDYWNoZSgpKX1jb21wdXRlRGF0YWdyaWRIZWlnaHQoKXtjb25zdCBoPXRoaXMuZG9tQWRhcHRlci5jbGllbnRSZWN0KHRoaXMuZWwubmF0aXZlRWxl''@;'; put 'put ''bWVudCkuaGVpZ2h0O3RoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCJoZWlnaHQiLGgrInB4IiksdGhpcy5faGVpZ2h0U2V0PSEwfXJlc2V0RGF0YWdyaWRIZWlnaHQoKXt0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwiaGVp''@;'; put 'put ''Z2h0IiwiIiksdGhpcy5faGVpZ2h0U2V0PSExfW5nT25EZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1jb21wdXRlSGVhZGVyc1dpZHRoKCl7Y29uc3QgaD10aGlzLmhlYWRlcnMubGVuZ3RoO2xldCB2PSEwO3RoaXMuaGVhZGVycy5mb3JF''@;'; put 'put ''YWNoKCh5LEMpPT57Y29uc3QgST1PYmplY3QuYXNzaWduKHtjaGFuZ2VzOltwaC5XSURUSF19LHkuZ2V0Q29sdW1uV2lkdGhTdGF0ZSgpKTtJLnN0cmljdFdpZHRofHwodj0hMSksaD09PUMrMSYmdiYmKEkuc3RyaWN0V2lkdGg9MCksdGhpcy5jb2x1bW5zU2VydmljZS5lbWl0U3RhdGVDaGFu''@;'; put 'put ''Z2VBdChDLEkpfSl9c3RhYmlsaXplQ29sdW1ucygpe3RoaXMuc2hvdWxkU3RhYmlsaXplQ29sdW1ucz0hMSwhdGhpcy5jb2x1bW5zU2l6ZXNTdGFibGUmJnRoaXMuaXRlbXMuZGlzcGxheWVkLmxlbmd0aD4wJiYodGhpcy5vcmdhbml6ZXIucmVzaXplKCksdGhpcy5jb2x1bW5zU2l6ZXNTdGFi''@;'; put 'put ''bGU9ITApfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChwUyksS3QoZ3cpLEt0KGR3KSxLdChmNCksS3QoYm8pLEt0KEdhKSxLdChBOCksS3QoVmZlKSxLdChBdiksS3QoX2wpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1si''@;'; put 'put ''Y2xyLWRhdGFncmlkIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJih4byh5LEFTLDQpLHhvKHkseVMsNSkpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuaGVhZGVycz1DKSxIaShDPSRpKCkpJiYodi5yb3dzPUMpfX0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpm''@;'; put 'put ''NCx1c2VGYWN0b3J5OlZPZSxkZXBzOltMMl19XSldfSksZH0pKCksak9lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtocy5hZGRJY29ucyhoWCxkWCxTayxGc2UscFgsSHNlLGdYLE5zZSxkVil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxk''@;'; put 'put ''Llx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxEcyxRQWUsdGQsQmZlLHFhLENPZSxKQWUsdHllLERsLFJjLGZ3LHNxLGZTXV19KSxkfSkoKSxkeWU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBu''@;'; put 'put ''ZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1zdGFjay1jb250ZW50Il1dfSksZH0pKCkscWZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy51bmlxdWVJZD1oLHRoaXMuX2dlbmVyYXRlZElkPW51bGwsdGhpcy5faWQ9bnVsbH1zZXQg''@;'; put 'put ''aWQoaCl7dGhpcy5faWQ9InN0cmluZyI9PXR5cGVvZiBoJiYiIiE9PWg/aDp0aGlzLl9nZW5lcmF0ZWRJZCsiIn1nZXQgaWQoKXtyZXR1cm4gdGhpcy5faWR9bmdPbkluaXQoKXt0aGlzLl9nZW5lcmF0ZWRJZD0iY2xyLXN0YWNrLWxhYmVsLSIrdGhpcy51bmlxdWVJZCx0aGlzLmlkfHwodGhp''@;'; put 'put ''cy5faWQ9dGhpcy5fZ2VuZXJhdGVkSWQrIiIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh5MikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItc3RhY2stbGFiZWwiXV0saG9zdFZhcnM6MSxob3N0QmluZGluZ3M6''@;'; put 'put ''ZnVuY3Rpb24oaCx2KXsyJmgmJkdpKCJpZCIsdi5pZCl9LGlucHV0czp7aWQ6ImlkIn0sZmVhdHVyZXM6W2hvKFtPY10pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoy''@;'; put 'put ''fSksZH0pKCkscHllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMucGFyZW50PWgsdGhpcy51bmlxdWVJZD12LHRoaXMuY29tbW9uU3RyaW5ncz15LHRoaXMuZXhwYW5kZWQ9ITEsdGhpcy5leHBhbmRlZENoYW5nZT1uZXcgYXIoITEpLHRoaXMuZXhwYW5kYWJsZT0hMSx0''@;'; put 'put ''aGlzLmZvY3VzZWQ9ITEsdGhpcy5fY2hhbmdlZENoaWxkcmVuPTAsdGhpcy5fZnVsbHlJbml0aWFsaXplZD0hMSx0aGlzLl9jaGFuZ2VkPSExLGgmJmguYWRkQ2hpbGQoKX1nZXQgZ2V0Q2hhbmdlZFZhbHVlKCl7cmV0dXJuIHRoaXMuX2NoYW5nZWR8fHRoaXMuX2NoYW5nZWRDaGlsZHJlbj4w''@;'; put 'put ''JiYhdGhpcy5leHBhbmRlZH1zZXQgc2V0Q2hhbmdlZFZhbHVlKGgpe3RoaXMuX2NoYW5nZWQ9aCx0aGlzLnBhcmVudCYmdGhpcy5fZnVsbHlJbml0aWFsaXplZCYmKGg/dGhpcy5wYXJlbnQuX2NoYW5nZWRDaGlsZHJlbisrOnRoaXMucGFyZW50Ll9jaGFuZ2VkQ2hpbGRyZW4tLSl9Z2V0IGxh''@;'; put 'put ''YmVsbGVkQnlJZCgpe3JldHVybiB0aGlzLnN0YWNrQmxvY2tUaXRsZS5pZH1nZXQgaGVhZGluZ0xldmVsKCl7cmV0dXJuIHRoaXMuYXJpYUxldmVsP3RoaXMuYXJpYUxldmVsKyIiOnRoaXMucGFyZW50PyI0IjoiMyJ9bmdPbkluaXQoKXt0aGlzLl9mdWxseUluaXRpYWxpemVkPSEwfWFkZENo''@;'; put 'put ''aWxkKCl7dGhpcy5leHBhbmRhYmxlPSEwfXRvZ2dsZUV4cGFuZCgpe3RoaXMuZXhwYW5kYWJsZSYmKHRoaXMuZXhwYW5kZWQ9IXRoaXMuZXhwYW5kZWQsdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpKX1nZXQgY2FyZXREaXJlY3Rpb24oKXtyZXR1cm4gdGhpcy5leHBh''@;'; put 'put ''bmRlZD8iZG93biI6InJpZ2h0In1nZXQgcm9sZSgpe3JldHVybiB0aGlzLmV4cGFuZGFibGU/ImJ1dHRvbiI6bnVsbH1nZXQgdGFiSW5kZXgoKXtyZXR1cm4gdGhpcy5leHBhbmRhYmxlPyIwIjpudWxsfWdldCBvblN0YWNrTGFiZWxGb2N1cygpe3JldHVybiB0aGlzLmV4cGFuZGFibGUmJiF0''@;'; put 'put ''aGlzLmV4cGFuZGVkJiZ0aGlzLmZvY3VzZWR9Z2V0IGFyaWFFeHBhbmRlZCgpe3JldHVybiB0aGlzLmV4cGFuZGFibGU/dGhpcy5leHBhbmRlZD8idHJ1ZSI6ImZhbHNlIjpudWxsfWdldFN0YWNrQ2hpbGRyZW5JZCgpe3JldHVybiB0aGlzLmV4cGFuZGVkP2BjbHItc3RhY2stY2hpbGRyZW4t''@;'; put 'put ''JHt0aGlzLnVuaXF1ZUlkfWA6bnVsbH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZCwxMiksS3QoeTIpLEt0KG5zKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci1zdGFjay1ibG9jayJdXSxjb250ZW50UXVlcmll''@;'; put 'put ''czpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LHFmZSw1KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnN0YWNrQmxvY2tUaXRsZT1DLmZpcnN0KX19LGhvc3RWYXJzOjEyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJyb2xlIiwiaGVhZGluZyIpKCJhcmlhLWxl''@;'; put 'put ''dmVsIix2LmhlYWRpbmdMZXZlbCksRmkoInN0YWNrLWJsb2NrIiwhMCkoInN0YWNrLWJsb2NrLWV4cGFuZGVkIix2LmV4cGFuZGVkKSgic3RhY2stYmxvY2stZXhwYW5kYWJsZSIsdi5leHBhbmRhYmxlKSgic3RhY2stYmxvY2stY2hhbmdlZCIsdi5nZXRDaGFuZ2VkVmFsdWUpKCJvbi1mb2N1''@;'; put 'put ''cyIsdi5vblN0YWNrTGFiZWxGb2N1cykpfSxpbnB1dHM6e2V4cGFuZGVkOlsiY2xyU2JFeHBhbmRlZCIsImV4cGFuZGVkIl0sZXhwYW5kYWJsZTpbImNsclNiRXhwYW5kYWJsZSIsImV4cGFuZGFibGUiXSxzZXRDaGFuZ2VkVmFsdWU6WyJjbHJTYk5vdGlmeUNoYW5nZSIsInNldENoYW5nZWRW''@;'; put 'put ''YWx1ZSJdLGFyaWFMZXZlbDpbImNsclN0YWNrVmlld0xldmVsIiwiYXJpYUxldmVsIl0sYXJpYVNldHNpemU6WyJjbHJTdGFja1ZpZXdTZXRzaXplIiwiYXJpYVNldHNpemUiXSxhcmlhUG9zaW5zZXQ6WyJjbHJTdGFja1ZpZXdQb3NpbnNldCIsImFyaWFQb3NpbnNldCJdfSxvdXRwdXRzOntl''@;'; put 'put ''eHBhbmRlZENoYW5nZToiY2xyU2JFeHBhbmRlZENoYW5nZSJ9LGZlYXR1cmVzOltobyhbT2NdKV0sbmdDb250ZW50U2VsZWN0b3JzOnJ3LGRlY2xzOjksdmFyczo5LGNvbnN0czpbWzEsInN0YWNrLWJsb2NrLWxhYmVsIiwzLCJpZCIsImNsaWNrIiwia2V5dXAuZW50ZXIiLCJrZXl1cC5zcGFj''@;'; put 'put ''ZSIsImZvY3VzIiwiYmx1ciJdLFsic2hhcGUiLCJhbmdsZSIsImNsYXNzIiwic3RhY2stYmxvY2stY2FyZXQiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2xyLXNyLW9ubHkiLDQsIm5nSWYiXSxbMSwic3RhY2stdmlldy1rZXkiXSxbMSwic3RhY2stYmxvY2stY29udGVudCJdLFsxLCJzdGFjay1j''@;'; put 'put ''aGlsZHJlbiIsMywiY2xyRXhwYW5kVHJpZ2dlciJdLFsicm9sZSIsInJlZ2lvbiIsMywiaGVpZ2h0Iiw0LCJuZ0lmIl0sWyJzaGFwZSIsImFuZ2xlIiwxLCJzdGFjay1ibG9jay1jYXJldCJdLFsxLCJjbHItc3Itb25seSJdLFsicm9sZSIsInJlZ2lvbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbiho''@;'; put 'put ''LHYpezEmaCYmKEswKEdjZSksbnQoMCwiZGl2IiwwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYudG9nZ2xlRXhwYW5kKCl9KSgia2V5dXAuZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHYudG9nZ2xlRXhwYW5kKCl9KSgia2V5dXAuc3BhY2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYu''@;'; put 'put ''dG9nZ2xlRXhwYW5kKCl9KSgiZm9jdXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZm9jdXNlZD0hMH0pKCJibHVyIixmdW5jdGlvbigpe3JldHVybiB2LmZvY3VzZWQ9ITF9KSxybigxLGkzLDEsMSwiY2RzLWljb24iLDEpLHJuKDIsemNlLDIsMSwic3BhbiIsMiksbnQoMywiZGl2IiwzKSxOaSg0''@;'; put 'put ''KSxvdCgpLG50KDUsImRpdiIsNCksTmkoNiwxKSxvdCgpKCksbnQoNywiY2xyLWV4cGFuZGFibGUtYW5pbWF0aW9uIiw1KSxybig4LG53LDIsNCwiZGl2Iiw2KSxvdCgpKSwyJmgmJihUdCgiaWQiLHYudW5pcXVlSWQpLEdpKCJyb2xlIix2LnJvbGUpKCJ0YWJpbmRleCIsdi50YWJJbmRleCko''@;'; put 'put ''ImFyaWEtZXhwYW5kZWQiLHYuYXJpYUV4cGFuZGVkKSgiYXJpYS1jb250cm9scyIsdi5nZXRTdGFja0NoaWxkcmVuSWQoKSksdXQoMSksVHQoIm5nSWYiLHYuZXhwYW5kYWJsZSksdXQoMSksVHQoIm5nSWYiLHYuZ2V0Q2hhbmdlZFZhbHVlKSx1dCg1KSxUdCgiY2xyRXhwYW5kVHJpZ2dlciIs''@;'; put 'put ''di5leHBhbmRlZCksdXQoMSksVHQoIm5nSWYiLHYuZXhwYW5kZWQpKX0sZGVwZW5kZW5jaWVzOltmcSxObyxab10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfSJdfSksZH0pKCksVUw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuZWRpdGFibGU9ITEs''@;'; put 'put ''dGhpcy5zYXZlPW5ldyBhcighMSksdGhpcy5fZWRpdE1vZGU9ITEsdGhpcy5lZGl0aW5nQ2hhbmdlPW5ldyBhcighMSl9Z2V0IGVkaXRpbmcoKXtyZXR1cm4gdGhpcy5lZGl0YWJsZSYmdGhpcy5fZWRpdE1vZGV9c2V0IGVkaXRpbmcoaCl7dGhpcy5lZGl0YWJsZSYmKHRoaXMuX2VkaXRNb2Rl''@;'; put 'put ''PWgsdGhpcy5lZGl0aW5nQ2hhbmdlLmVtaXQoaCksaHx8dGhpcy5zYXZlLmVtaXQobnVsbCkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXN0YWNrLXZpZXciXV0sb3V0cHV0''@;'; put 'put ''czp7c2F2ZToiY2xyU3RhY2tTYXZlIn0sbmdDb250ZW50U2VsZWN0b3JzOldjZSxkZWNsczozLHZhcnM6MCxjb25zdHM6W1sxLCJzdGFjay12aWV3Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoVDEpLE5pKDApLG50KDEsImRpdiIsMCksTmkoMiwxKSxvdCgpKX0sc3R5bGVz''@;'; put 'put ''OlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfSJdfSksZH0pKCksR09lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtocy5hZGRJY29ucyhEeSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpk''@;'; put 'put ''fSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSx0ZCxEcyxKQWVdXX0pLGR9KSgpLHdTPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLnNlbGVjdGFibGU9ITEsdGhpcy5lYWdlcj0hMCx0aGlzLmNoaWxkcmVuRmV0Y2hlZD1uZXcgJGV9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IG15ZT17cHJvdmlkZTp3Uyx1c2VGYWN0b3J5OmZ1bmN0aW9uIFdPZShkKXtyZXR1cm4gZHx8bmV3IHdTfSxkZXBzOltbbmV3IG1mLG5l''@;'; put 'put ''dyBMNCx3U11dfTtsZXQgdnllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLmZlYXR1cmVzU2VydmljZT1oLHRoaXMuZXhwYW5kU2VydmljZT12LHYmJih0aGlzLnN1YnNjcmlwdGlvbj10aGlzLmV4cGFuZFNlcnZpY2UuZXhwYW5kQ2hhbmdlLnN1YnNjcmliZSh5PT57IXkm''@;'; put 'put ''JnRoaXMucGFyZW50JiYhdGhpcy5mZWF0dXJlc1NlcnZpY2UuZWFnZXImJnRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbiYmdGhpcy5wYXJlbnQuY2xlYXJDaGlsZHJlbigpfSkpfXNob3VsZFJlbmRlcigpe3JldHVybiB0aGlzLmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24mJih0aGlz''@;'; put 'put ''LmZlYXR1cmVzU2VydmljZS5lYWdlcnx8IXRoaXMuZXhwYW5kU2VydmljZXx8dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkKX1nZXRDb250ZXh0KGgpe3JldHVybnskaW1wbGljaXQ6aC5tb2RlbCxjbHJNb2RlbDpofX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9uJiZ0aGlzLnN1''@;'; put 'put ''YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh3UyksS3QocjEsOCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIl1dLGhvc3RWYXJzOjEs''@;'; put 'put ''aG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZHaSgicm9sZSIsImdyb3VwIil9LGlucHV0czp7cGFyZW50OiJwYXJlbnQiLGNoaWxkcmVuOiJjaGlsZHJlbiJ9LGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzQsIm5nVGVtcGxh''@;'; put 'put ''dGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmcm4oMCxKY2UsMiwxLCJuZy1jb250YWluZXIiLDApLDImaCYmVHQoIm5nSWYiLHYuc2hvdWxkUmVuZGVyKCkpfSxkZXBlbmRlbmNpZXM6W05vLHhzLFhkXSxlbmNhcHN1bGF0''@;'; put 'put ''aW9uOjJ9KSxkfSkoKTt2YXIga3U9KCgpPT4oZnVuY3Rpb24oZCl7ZFtkLlVOU0VMRUNURUQ9MF09IlVOU0VMRUNURUQiLGRbZC5TRUxFQ1RFRD0xXT0iU0VMRUNURUQiLGRbZC5JTkRFVEVSTUlOQVRFPTJdPSJJTkRFVEVSTUlOQVRFIn0oa3V8fChrdT17fSkpLGt1KSkoKTtjbGFzcyBBeWV7''@;'; put 'put ''Y29uc3RydWN0b3IoKXt0aGlzLnNlbGVjdGVkPW5ldyBmcyhrdS5VTlNFTEVDVEVEKSx0aGlzLl9sb2FkaW5nPSExLHRoaXMubG9hZGluZyQ9bmV3IGZzKCExKX1nZXQgbG9hZGluZygpe3JldHVybiB0aGlzLl9sb2FkaW5nfXNldCBsb2FkaW5nKGcpe3RoaXMuX2xvYWRpbmc9Zyx0aGlzLmxv''@;'; put 'put ''YWRpbmckLm5leHQoZyl9ZGVzdHJveSgpe3RoaXMuc2VsZWN0ZWQuY29tcGxldGUoKX1zZXRTZWxlY3RlZChnLGgsdil7ZyE9PXRoaXMuc2VsZWN0ZWQudmFsdWUmJih0aGlzLnNlbGVjdGVkLm5leHQoZyksdiYmZyE9PWt1LklOREVURVJNSU5BVEUmJnRoaXMuY2hpbGRyZW4mJnRoaXMuY2hp''@;'; put 'put ''bGRyZW4uZm9yRWFjaCh5PT55LnNldFNlbGVjdGVkKGcsITEsITApKSxoJiZ0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuX3VwZGF0ZVNlbGVjdGlvbkZyb21DaGlsZHJlbigpKX10b2dnbGVTZWxlY3Rpb24oZyl7dGhpcy5zZXRTZWxlY3RlZCh0aGlzLnNlbGVjdGVkLnZhbHVlPT09a3UuU0VM''@;'; put 'put ''RUNURUQ/a3UuVU5TRUxFQ1RFRDprdS5TRUxFQ1RFRCwhMCxnKX1jb21wdXRlU2VsZWN0aW9uU3RhdGVGcm9tQ2hpbGRyZW4oKXtsZXQgZz0hMSxoPSExO2Zvcihjb25zdCB2IG9mIHRoaXMuY2hpbGRyZW4pc3dpdGNoKHYuc2VsZWN0ZWQudmFsdWUpe2Nhc2Uga3UuSU5ERVRFUk1JTkFURTpy''@;'; put 'put ''ZXR1cm4ga3UuSU5ERVRFUk1JTkFURTtjYXNlIGt1LlNFTEVDVEVEOmlmKGc9ITAsaClyZXR1cm4ga3UuSU5ERVRFUk1JTkFURTticmVhaztkZWZhdWx0OmlmKGg9ITAsZylyZXR1cm4ga3UuSU5ERVRFUk1JTkFURX1yZXR1cm4gZz9oP2t1LlVOU0VMRUNURUQ6a3UuU0VMRUNURUQ6a3UuVU5T''@;'; put 'put ''RUxFQ1RFRH1fdXBkYXRlU2VsZWN0aW9uRnJvbUNoaWxkcmVuKCl7Y29uc3QgZz10aGlzLmNvbXB1dGVTZWxlY3Rpb25TdGF0ZUZyb21DaGlsZHJlbigpO2chPT10aGlzLnNlbGVjdGVkLnZhbHVlJiYodGhpcy5zZWxlY3RlZC5uZXh0KGcpLHRoaXMucGFyZW50JiZ0aGlzLnBhcmVudC5fdXBk''@;'; put 'put ''YXRlU2VsZWN0aW9uRnJvbUNoaWxkcmVuKCkpfX1jbGFzcyBfcSBleHRlbmRzIEF5ZXtjb25zdHJ1Y3RvcihnLGgsdix5KXtzdXBlcigpLHRoaXMuZ2V0Q2hpbGRyZW49dix0aGlzLmZlYXR1cmVzU2VydmljZT15LHRoaXMuY2hpbGRyZW5GZXRjaGVkPSExLHRoaXMuX2NoaWxkcmVuPVtdLHRo''@;'; put 'put ''aXMubW9kZWw9Zyx0aGlzLnBhcmVudD1ofWNsZWFyQ2hpbGRyZW4oKXt0aGlzLl9jaGlsZHJlbi5mb3JFYWNoKGc9PmcuZGVzdHJveSgpKSxkZWxldGUgdGhpcy5fY2hpbGRyZW4sdGhpcy5jaGlsZHJlbkZldGNoZWQ9ITF9ZmV0Y2hDaGlsZHJlbigpe2lmKHRoaXMuY2hpbGRyZW5GZXRjaGVk''@;'; put 'put ''KXJldHVybjtjb25zdCBnPXRoaXMuZ2V0Q2hpbGRyZW4odGhpcy5tb2RlbCk7IWZ1bmN0aW9uIFlPZShkKXtyZXR1cm4gZCYmImZ1bmN0aW9uIj09dHlwZW9mIGQudGhlbn0oZyk/a1goZyk/KHRoaXMubG9hZGluZz0hMCx0aGlzLnN1YnNjcmlwdGlvbj1nLnN1YnNjcmliZShoPT57dGhpcy5f''@;'; put 'put ''Y2hpbGRyZW49dGhpcy53cmFwQ2hpbGRyZW4oaCksdGhpcy5sb2FkaW5nPSExfSkpOnRoaXMuX2NoaWxkcmVuPWc/dGhpcy53cmFwQ2hpbGRyZW4oZyk6W106KHRoaXMubG9hZGluZz0hMCxnLnRoZW4oaD0+e3RoaXMuX2NoaWxkcmVuPXRoaXMud3JhcENoaWxkcmVuKGgpLHRoaXMubG9hZGlu''@;'; put 'put ''Zz0hMX0pKSx0aGlzLmNoaWxkcmVuRmV0Y2hlZD0hMCx0aGlzLmZlYXR1cmVzU2VydmljZSYmdGhpcy5mZWF0dXJlc1NlcnZpY2UuY2hpbGRyZW5GZXRjaGVkLm5leHQoKX13cmFwQ2hpbGRyZW4oZyl7cmV0dXJuIGcubWFwKGg9Pm5ldyBfcShoLHRoaXMsdGhpcy5nZXRDaGlsZHJlbix0aGlz''@;'; put 'put ''LmZlYXR1cmVzU2VydmljZSkpfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLmZldGNoQ2hpbGRyZW4oKSx0aGlzLl9jaGlsZHJlbn1zZXQgY2hpbGRyZW4oZyl7dGhpcy5fY2hpbGRyZW49Z31kZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24mJnRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2Ny''@;'; put 'put ''aWJlKCksc3VwZXIuZGVzdHJveSgpfX1sZXQgeXllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMudGVtcGxhdGU9aCx0aGlzLmZlYXR1cmVzU2VydmljZT12LHRoaXMuY2RyPXl9bmdPbkNoYW5nZXMoKXtsZXQgaDtoPUFycmF5LmlzQXJyYXkodGhpcy5ub2Rlcyk/dGhp''@;'; put 'put ''cy5ub2Rlcy5tYXAodj0+bmV3IF9xKHYsbnVsbCx0aGlzLmdldENoaWxkcmVuLHRoaXMuZmVhdHVyZXNTZXJ2aWNlKSk6W25ldyBfcSh0aGlzLm5vZGVzLG51bGwsdGhpcy5nZXRDaGlsZHJlbix0aGlzLmZlYXR1cmVzU2VydmljZSldLHRoaXMuY2hpbGRyZW5GZXRjaFN1YnNjcmlwdGlvbnx8''@;'; put 'put ''KHRoaXMuY2hpbGRyZW5GZXRjaFN1YnNjcmlwdGlvbj10aGlzLmZlYXR1cmVzU2VydmljZS5jaGlsZHJlbkZldGNoZWQucGlwZShERCgwKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpfSkpLHRoaXMuZmVhdHVyZXNTZXJ2aWNlLnJlY3Vyc2lvbj17dGVtcGxhdGU6''@;'; put 'put ''dGhpcy50ZW1wbGF0ZSxyb290Omh9fW5nT25EZXN0cm95KCl7dGhpcy5jaGlsZHJlbkZldGNoU3Vic2NyaXB0aW9uJiZ0aGlzLmNoaWxkcmVuRmV0Y2hTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qo''@;'; put 'put ''cXIpLEt0KHdTKSxLdChkMSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJSZWN1cnNpdmVGb3IiLCIiLCJjbHJSZWN1cnNpdmVGb3JPZiIsIiJdXSxpbnB1dHM6e25vZGVzOlsiY2xyUmVjdXJzaXZlRm9yT2YiLCJub2RlcyJdLGdldENoaWxkcmVuOlsiY2xy''@;'; put 'put ''UmVjdXJzaXZlRm9yR2V0Q2hpbGRyZW4iLCJnZXRDaGlsZHJlbiJdfSxmZWF0dXJlczpbRDJdfSksZH0pKCksZWhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9mb2N1c1JlcXVlc3Q9bmV3ICRlLHRoaXMuX2ZvY3VzQ2hhbmdlPW5ldyAkZX1nZXQgZm9jdXNSZXF1ZXN0KCl7''@;'; put 'put ''cmV0dXJuIHRoaXMuX2ZvY3VzUmVxdWVzdC5hc09ic2VydmFibGUoKX1nZXQgZm9jdXNDaGFuZ2UoKXtyZXR1cm4gdGhpcy5fZm9jdXNDaGFuZ2UuYXNPYnNlcnZhYmxlKCl9ZmluZFNpYmxpbmdzKGgpe3JldHVybiBoLnBhcmVudD9oLnBhcmVudC5jaGlsZHJlbjp0aGlzLnJvb3ROb2RlTW9k''@;'; put 'put ''ZWxzfWZpbmRMYXN0VmlzaWJsZUluTm9kZShoKXtpZighaClyZXR1cm4gbnVsbDtpZihoLmV4cGFuZGVkJiZoLmNoaWxkcmVuLmxlbmd0aD4wKXtjb25zdCB2PWguY2hpbGRyZW47cmV0dXJuIHRoaXMuZmluZExhc3RWaXNpYmxlSW5Ob2RlKHZbdi5sZW5ndGgtMV0pfXJldHVybiBofWZpbmRO''@;'; put 'put ''ZXh0Rm9jdXNhYmxlKGgpe2lmKCFoKXJldHVybiBudWxsO2NvbnN0IHY9dGhpcy5maW5kU2libGluZ3MoaCkseT12LmluZGV4T2YoaCk7cmV0dXJuIHk8di5sZW5ndGgtMT92W3krMV06eT09PXYubGVuZ3RoLTE/dGhpcy5maW5kTmV4dEZvY3VzYWJsZShoLnBhcmVudCk6bnVsbH1maW5kTGFz''@;'; put 'put ''dFZpc2libGVJblRyZWUoKXtyZXR1cm4gdGhpcy5maW5kTGFzdFZpc2libGVJbk5vZGUodGhpcy5yb290Tm9kZU1vZGVscyYmdGhpcy5yb290Tm9kZU1vZGVscy5sZW5ndGgmJnRoaXMucm9vdE5vZGVNb2RlbHNbdGhpcy5yb290Tm9kZU1vZGVscy5sZW5ndGgtMV0pfWZpbmROb2RlQWJvdmUo''@;'; put 'put ''aCl7aWYoIWgpcmV0dXJuIG51bGw7Y29uc3Qgdj10aGlzLmZpbmRTaWJsaW5ncyhoKSx5PXYuaW5kZXhPZihoKTtyZXR1cm4gMD09PXk/aC5wYXJlbnQ6eT4wP3RoaXMuZmluZExhc3RWaXNpYmxlSW5Ob2RlKHZbeS0xXSk6bnVsbH1maW5kTm9kZUJlbG93KGgpe3JldHVybiBoP2guZXhwYW5k''@;'; put 'put ''ZWQmJmguY2hpbGRyZW4ubGVuZ3RoPjA/aC5jaGlsZHJlblswXTp0aGlzLmZpbmROZXh0Rm9jdXNhYmxlKGgpOm51bGx9ZmluZERlc2NlbmRlbnROb2RlU3RhcnRzV2l0aChoLHYpe2lmKHYuZXhwYW5kZWQmJnYuY2hpbGRyZW4ubGVuZ3RoPjApZm9yKGNvbnN0IHkgb2Ygdi5jaGlsZHJlbil7''@;'; put 'put ''Y29uc3QgQz10aGlzLmZpbmROb2RlU3RhcnRzV2l0aChoLHkpO2lmKEMpcmV0dXJuIEN9cmV0dXJuIG51bGx9ZmluZFNpYmxpbmdOb2RlU3RhcnRzV2l0aChoLHYpe2NvbnN0IHk9dGhpcy5maW5kU2libGluZ3Modik7Zm9yKGxldCBJPXkuaW5kZXhPZih2KSsxO0k8eS5sZW5ndGg7SSsrKXtj''@;'; put 'put ''b25zdCB1ZT10aGlzLmZpbmROb2RlU3RhcnRzV2l0aChoLHlbSV0pO2lmKHVlKXJldHVybiB1ZX1yZXR1cm4gbnVsbH1maW5kUm9vdE5vZGVTdGFydHNXaXRoKGgsdil7Zm9yKGNvbnN0IHkgb2YgdGhpcy5yb290Tm9kZU1vZGVscyl7aWYodi5wYXJlbnQmJnYucGFyZW50PT09eSljb250aW51''@;'; put 'put ''ZTtjb25zdCBDPXRoaXMuZmluZE5vZGVTdGFydHNXaXRoKGgseSk7aWYoQylyZXR1cm4gQ31yZXR1cm4gbnVsbH1maW5kTm9kZVN0YXJ0c1dpdGgoaCx2KXtyZXR1cm4gdj92LnRleHRDb250ZW50LnN0YXJ0c1dpdGgoaCk/djp0aGlzLmZpbmREZXNjZW5kZW50Tm9kZVN0YXJ0c1dpdGgoaCx2''@;'; put 'put ''KTpudWxsfWZpbmRDbG9zZXN0Tm9kZVN0YXJ0c1dpdGgoaCx2KXtpZighdilyZXR1cm4gbnVsbDtjb25zdCB5PXRoaXMuZmluZERlc2NlbmRlbnROb2RlU3RhcnRzV2l0aChoLHYpO2lmKHkpcmV0dXJuIHk7Y29uc3QgQz10aGlzLmZpbmRTaWJsaW5nTm9kZVN0YXJ0c1dpdGgoaCx2KTtyZXR1''@;'; put 'put ''cm4gQ3x8KHRoaXMuZmluZFJvb3ROb2RlU3RhcnRzV2l0aChoLHYpfHx0aGlzLmZpbmROb2RlU3RhcnRzV2l0aChoLHYucGFyZW50KSl9Zm9jdXNOb2RlKGgpe2gmJnRoaXMuX2ZvY3VzUmVxdWVzdC5uZXh0KGgubm9kZUlkKX1icm9hZGNhc3RGb2N1c2VkTm9kZShoKXt0aGlzLmZvY3VzZWRO''@;'; put 'put ''b2RlSWQhPT1oJiYodGhpcy5mb2N1c2VkTm9kZUlkPWgsdGhpcy5fZm9jdXNDaGFuZ2UubmV4dChoKSl9Zm9jdXNQYXJlbnQoaCl7aCYmdGhpcy5mb2N1c05vZGUoaC5wYXJlbnQpfWZvY3VzRmlyc3RWaXNpYmxlTm9kZSgpe3RoaXMuZm9jdXNOb2RlKHRoaXMucm9vdE5vZGVNb2RlbHMmJnRo''@;'; put 'put ''aXMucm9vdE5vZGVNb2RlbHNbMF0pfWZvY3VzTGFzdFZpc2libGVOb2RlKCl7dGhpcy5mb2N1c05vZGUodGhpcy5maW5kTGFzdFZpc2libGVJblRyZWUoKSl9Zm9jdXNOb2RlQWJvdmUoaCl7dGhpcy5mb2N1c05vZGUodGhpcy5maW5kTm9kZUFib3ZlKGgpKX1mb2N1c05vZGVCZWxvdyhoKXt0''@;'; put 'put ''aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmROb2RlQmVsb3coaCkpfWZvY3VzTm9kZVN0YXJ0c1dpdGgoaCx2KXt0aGlzLmZvY3VzTm9kZSh0aGlzLmZpbmRDbG9zZXN0Tm9kZVN0YXJ0c1dpdGgoaCx2KSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxk''@;'; put 'put ''Llx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NsYXNzIFVPZSBleHRlbmRzIEF5ZXtjb25zdHJ1Y3RvcihnKXtzdXBlcigpLHRoaXMucGFyZW50PWcsZyYmZy5fYWRkQ2hpbGQodGhpcyksdGhpcy5jaGlsZHJlbj1bXX1fYWRkQ2hpbGQoZyl7dGhp''@;'; put 'put ''cy5jaGlsZHJlbi5wdXNoKGcpfV9yZW1vdmVDaGlsZChnKXtjb25zdCBoPXRoaXMuY2hpbGRyZW4uaW5kZXhPZihnKTtoPi0xJiZ0aGlzLmNoaWxkcmVuLnNwbGljZShoLDEpfWRlc3Ryb3koKXt0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuX3JlbW92ZUNoaWxkKHRoaXMpLHN1cGVyLmRlc3Ry''@;'; put 'put ''b3koKX19bGV0IFFMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5lbD1ofWFjdGl2YXRlKCl7dGhpcy5lbC5uYXRpdmVFbGVtZW50JiZ0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xpY2smJnRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGljaygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLDgsImNsci10cmVlbm9kZS1saW5rIl1dfSksZH0pKCksX2c9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEksWix1ZSxfZSxCZSl7dGhpcy5u''@;'; put 'put ''b2RlSWQ9aCx0aGlzLnBsYXRmb3JtSWQ9dix0aGlzLmZvclR5cGVBaGVhZFByb3ZpZGVyPUMsdGhpcy5mZWF0dXJlc1NlcnZpY2U9SSx0aGlzLmV4cGFuZFNlcnZpY2U9Wix0aGlzLmNvbW1vblN0cmluZ3M9dWUsdGhpcy5mb2N1c01hbmFnZXI9X2UsdGhpcy5TVEFURVM9a3UsdGhpcy5za2lw''@;'; put 'put ''RW1pdENoYW5nZT0hMSx0aGlzLmlzTW9kZWxMb2FkaW5nPSExLHRoaXMudHlwZUFoZWFkS2V5RXZlbnQ9bmV3ICRlLHRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIiLHRoaXMuc2VsZWN0ZWRDaGFuZ2U9bmV3IGFyKCExKSx0aGlzLmV4cGFuZGVkQ2hhbmdlPW5ldyBhcix0aGlzLnN1YnNjcmlw''@;'; put 'put ''dGlvbnM9W10sdGhpcy5jb250ZW50Q29udGFpbmVyVGFiaW5kZXg9LTEsdGhpcy5fbW9kZWw9dGhpcy5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uP0JlLnZpZXc/QmUudmlldy5jb250ZXh0LmNsck1vZGVsOkJlLl9sVmlld1s4XS5jbHJNb2RlbDpuZXcgVU9lKHk/eS5fbW9kZWw6bnVsbCks''@;'; put 'put ''dGhpcy5fbW9kZWwubm9kZUlkPXRoaXMubm9kZUlkfWlzRXhwYW5kYWJsZSgpe3JldHVybiB2b2lkIDAhPT10aGlzLmV4cGFuZGFibGU/dGhpcy5leHBhbmRhYmxlOiEhdGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGFibGV8fHRoaXMuaXNQYXJlbnR9aXNTZWxlY3RhYmxlKCl7cmV0dXJuIHRo''@;'; put 'put ''aXMuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGV9Z2V0IHNlbGVjdGVkKCl7cmV0dXJuIHRoaXMuX21vZGVsLnNlbGVjdGVkLnZhbHVlfXNldCBzZWxlY3RlZChoKXt0aGlzLmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlPSEwLG51bGw9PWgmJihoPWt1LlVOU0VMRUNURUQpLCJib29sZWFu''@;'; put 'put ''Ij09dHlwZW9mIGgmJihoPWg/a3UuU0VMRUNURUQ6a3UuVU5TRUxFQ1RFRCksdGhpcy5za2lwRW1pdENoYW5nZT0hMCx0aGlzLl9tb2RlbC5zZXRTZWxlY3RlZChoLHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyLHRoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyKSx0aGlzLnNraXBFbWl0Q2hh''@;'; put 'put ''bmdlPSExfWdldCBhcmlhU2VsZWN0ZWQoKXtyZXR1cm4gdGhpcy5pc1NlbGVjdGFibGUoKT90aGlzLl9tb2RlbC5zZWxlY3RlZC52YWx1ZT09PWt1LlNFTEVDVEVEOm51bGx9Z2V0IGV4cGFuZGVkKCl7cmV0dXJuIHRoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZH1zZXQgZXhwYW5kZWQoaCl7''@;'; put 'put ''dGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPWh9bmdPbkluaXQoKXt0aGlzLl9tb2RlbC5leHBhbmRlZD10aGlzLmV4cGFuZGVkLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuX21vZGVsLnNlbGVjdGVkLnBpcGUoTzIoKCk9PiF0aGlzLnNraXBFbWl0Q2hhbmdlKSkuc3Vic2NyaWJl''@;'; put 'put ''KGg9Pnt0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoaCl9KSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZENoYW5nZS5zdWJzY3JpYmUoaD0+e3RoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdChoKSx0aGlzLl9tb2RlbC5leHBhbmRlZD1ofSkpLHRoaXMu''@;'; put 'put ''c3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzUmVxdWVzdC5zdWJzY3JpYmUoaD0+e3RoaXMubm9kZUlkPT09aCYmdGhpcy5mb2N1c1RyZWVOb2RlKCl9KSx0aGlzLmZvY3VzTWFuYWdlci5mb2N1c0NoYW5nZS5zdWJzY3JpYmUoaD0+e3RoaXMuY2hlY2tUYWJJbmRl''@;'; put 'put ''eChoKX0pKSx0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLl9tb2RlbC5sb2FkaW5nJC5waXBlKEREKDApKS5zdWJzY3JpYmUoaD0+dGhpcy5pc01vZGVsTG9hZGluZz1oKSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5mb3JUeXBlQWhlYWRQcm92aWRlciYmKHRoaXMuX21vZGVsLnRl''@;'; put 'put ''eHRDb250ZW50PXRoaXMuZm9yVHlwZUFoZWFkUHJvdmlkZXIudGV4dENvbnRlbnQsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy50eXBlQWhlYWRLZXlFdmVudC5waXBlKEREKDIwMCkpLnN1YnNjcmliZShoPT57dGhpcy5mb2N1c01hbmFnZXIuZm9jdXNOb2RlU3RhcnRzV2l0aChoLHRo''@;'; put 'put ''aXMuX21vZGVsKSx0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlcj0iIn0pKSl9bmdPbkRlc3Ryb3koKXt0aGlzLl9tb2RlbC5kZXN0cm95KCksdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1nZXQgdHJlZU5vZGVMaW5rKCl7cmV0dXJuIHRoaXMudHJlZU5vZGVM''@;'; put 'put ''aW5rTGlzdCYmdGhpcy50cmVlTm9kZUxpbmtMaXN0LmZpcnN0fXNldFRhYkluZGV4KGgpe3RoaXMuY29udGVudENvbnRhaW5lclRhYmluZGV4PWgsdGhpcy5jb250ZW50Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsaCl9Y2hlY2tUYWJJbmRleChoKXtT''@;'; put 'put ''bCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLm5vZGVJZCE9PWgmJi0xIT09dGhpcy5jb250ZW50Q29udGFpbmVyVGFiaW5kZXgmJnRoaXMuc2V0VGFiSW5kZXgoLTEpfWZvY3VzVHJlZU5vZGUoKXtjb25zdCBoPXRoaXMuY29udGVudENvbnRhaW5lci5uYXRpdmVFbGVtZW50O1NsKHRoaXMucGxh''@;'; put 'put ''dGZvcm1JZCkmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1oJiYodGhpcy5zZXRUYWJJbmRleCgwKSxoLmZvY3VzKCksaC5zY3JvbGxJbnRvVmlldyh7YmxvY2s6Im5lYXJlc3QiLGlubGluZToibmVhcmVzdCJ9KSl9YnJvYWRjYXN0Rm9jdXNPbkNvbnRhaW5lcigpe3RoaXMuZm9jdXNNYW5h''@;'; put 'put ''Z2VyLmJyb2FkY2FzdEZvY3VzZWROb2RlKHRoaXMubm9kZUlkKX1vbktleURvd24oaCl7c3dpdGNoKE1wKGgpLGFTKGgua2V5KSl7Y2FzZSBNMC5BcnJvd1VwOnRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUFib3ZlKHRoaXMuX21vZGVsKTticmVhaztjYXNlIE0wLkFycm93RG93bjp0aGlz''@;'; put 'put ''LmZvY3VzTWFuYWdlci5mb2N1c05vZGVCZWxvdyh0aGlzLl9tb2RlbCk7YnJlYWs7Y2FzZSBNMC5BcnJvd1JpZ2h0OnRoaXMuZXhwYW5kT3JGb2N1c0ZpcnN0Q2hpbGQoKTticmVhaztjYXNlIE0wLkFycm93TGVmdDp0aGlzLmNvbGxhcHNlT3JGb2N1c1BhcmVudCgpO2JyZWFrO2Nhc2UgTTAu''@;'; put 'put ''SG9tZTpoLnByZXZlbnREZWZhdWx0KCksdGhpcy5mb2N1c01hbmFnZXIuZm9jdXNGaXJzdFZpc2libGVOb2RlKCk7YnJlYWs7Y2FzZSBNMC5FbmQ6aC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuZm9jdXNNYW5hZ2VyLmZvY3VzTGFzdFZpc2libGVOb2RlKCk7YnJlYWs7Y2FzZSBNMC5FbnRlcjp0''@;'; put 'put ''aGlzLnRvZ2dsZUV4cGFuZE9yVHJpZ2dlckRlZmF1bHQoKTticmVhaztjYXNlIE0wLlNwYWNlOmNhc2UgTTAuU3BhY2ViYXI6aC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMudG9nZ2xlRXhwYW5kT3JUcmlnZ2VyRGVmYXVsdCgpO2JyZWFrO2RlZmF1bHQ6aWYodGhpcy5fbW9kZWwudGV4dENvbnRl''@;'; put 'put ''bnQmJmZ1bmN0aW9uIHN3KGQpe2NvbnN0IGc9ZC5rZXk7cmV0dXJuIGcudG9Mb3dlckNhc2UoKSE9PWcudG9VcHBlckNhc2UoKXx8Zz49IjAiJiZnPD0iOSJ9KGgpKXJldHVybiB0aGlzLnR5cGVBaGVhZEtleUJ1ZmZlcis9aC5rZXksdm9pZCB0aGlzLnR5cGVBaGVhZEtleUV2ZW50Lm5leHQo''@;'; put 'put ''dGhpcy50eXBlQWhlYWRLZXlCdWZmZXIpfXRoaXMudHlwZUFoZWFkS2V5QnVmZmVyPSIifWdldCBpc1BhcmVudCgpe3JldHVybiB0aGlzLl9tb2RlbC5jaGlsZHJlbiYmdGhpcy5fbW9kZWwuY2hpbGRyZW4ubGVuZ3RoPjB9dG9nZ2xlRXhwYW5kT3JUcmlnZ2VyRGVmYXVsdCgpe3RoaXMuaXNF''@;'; put 'put ''eHBhbmRhYmxlKCkmJiF0aGlzLmlzU2VsZWN0YWJsZSgpP3RoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZD0hdGhpcy5leHBhbmRlZDp0aGlzLnRyaWdnZXJEZWZhdWx0QWN0aW9uKCl9ZXhwYW5kT3JGb2N1c0ZpcnN0Q2hpbGQoKXt0aGlzLmV4cGFuZGVkP3RoaXMuaXNQYXJlbnQmJnRoaXMu''@;'; put 'put ''Zm9jdXNNYW5hZ2VyLmZvY3VzTm9kZUJlbG93KHRoaXMuX21vZGVsKTp0aGlzLmlzRXhwYW5kYWJsZSgpJiYodGhpcy5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPSEwKX1jb2xsYXBzZU9yRm9jdXNQYXJlbnQoKXt0aGlzLmV4cGFuZGVkP3RoaXMuZXhwYW5kU2VydmljZS5leHBhbmRlZD0hMTp0''@;'; put 'put ''aGlzLmZvY3VzTWFuYWdlci5mb2N1c1BhcmVudCh0aGlzLl9tb2RlbCl9dHJpZ2dlckRlZmF1bHRBY3Rpb24oKXt0aGlzLnRyZWVOb2RlTGluaz90aGlzLnRyZWVOb2RlTGluay5hY3RpdmF0ZSgpOnRoaXMuaXNTZWxlY3RhYmxlKCkmJnRoaXMuX21vZGVsLnRvZ2dsZVNlbGVjdGlvbih0aGlz''@;'; put 'put ''LmZlYXR1cmVzU2VydmljZS5lYWdlcil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHkyKSxLdChMMiksS3QoZCwxMiksS3QoTE9lLDEwKSxLdCh3UyksS3QocjEpLEt0KG5zKSxLdChlaGUpLEt0KFNzKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBl''@;'; put 'put ''OmQsc2VsZWN0b3JzOltbImNsci10cmVlLW5vZGUiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxRTCw0KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnRyZWVOb2RlTGlua0xpc3Q9Qyl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZv''@;'; put 'put ''KEIkLDcsYm8pLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuY29udGVudENvbnRhaW5lcj15LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiY2xyLXRyZWUtbm9kZSIsITApfSxpbnB1dHM6e3NlbGVjdGVkOlsiY2xyU2VsZWN0ZWQiLCJz''@;'; put 'put ''ZWxlY3RlZCJdLGV4cGFuZGFibGU6WyJjbHJFeHBhbmRhYmxlIiwiZXhwYW5kYWJsZSJdLGV4cGFuZGVkOlsiY2xyRXhwYW5kZWQiLCJleHBhbmRlZCJdfSxvdXRwdXRzOntzZWxlY3RlZENoYW5nZToiY2xyU2VsZWN0ZWRDaGFuZ2UiLGV4cGFuZGVkQ2hhbmdlOiJjbHJFeHBhbmRlZENoYW5n''@;'; put 'put ''ZSJ9LGZlYXR1cmVzOltobyhbT2MsbXllLHIxLHtwcm92aWRlOlBmLHVzZUV4aXN0aW5nOnIxfV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6ZWYsZGVjbHM6MTIsdmFyczo5LGNvbnN0czpbWyJyb2xlIiwidHJlZWl0ZW0iLCJ0YWJpbmRleCIsIi0xIiwxLCJjbHItdHJlZS1ub2RlLWNvbnRlbnQt''@;'; put 'put ''Y29udGFpbmVyIiwzLCJrZXlkb3duIiwiZm9jdXMiXSxbImNvbnRlbnRDb250YWluZXIiLCIiXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsInR5cGUiLCJidXR0b24iLCJ0YWJpbmRleCIsIi0xIiwiY2xhc3MiLCJjbHItdHJlZW5vZGUtY2FyZXQiLDMsImNsaWNrIiwiZm9jdXMiLDQsIm5nSWYi''@;'; put 'put ''XSxbImNsYXNzIiwiY2xyLXRyZWVub2RlLXNwaW5uZXItY29udGFpbmVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jaGVja2JveC13cmFwcGVyIGNsci10cmVlbm9kZS1jaGVja2JveCIsNCwibmdJZiJdLFsxLCJjbHItdHJlZW5vZGUtY29udGVudCIsMywibW91c2Vkb3duIl0sWyJjbGFz''@;'; put 'put ''cyIsImNsci1zci1vbmx5Iiw0LCJuZ0lmIl0sWzEsImNsci10cmVlbm9kZS1jaGlsZHJlbiJdLFszLCJwYXJlbnQiXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsInR5cGUiLCJidXR0b24iLCJ0YWJpbmRleCIsIi0xIiwxLCJjbHItdHJlZW5vZGUtY2FyZXQiLDMsImNsaWNrIiwiZm9jdXMiXSxb''@;'; put 'put ''InNoYXBlIiwiYW5nbGUiLDEsImNsci10cmVlbm9kZS1jYXJldC1pY29uIl0sWzEsImNsci10cmVlbm9kZS1zcGlubmVyLWNvbnRhaW5lciJdLFsxLCJjbHItdHJlZW5vZGUtc3Bpbm5lciIsInNwaW5uZXIiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLCJjbHItdHJlZW5vZGUtY2hlY2ti''@;'; put 'put ''b3giXSxbImFyaWEtaGlkZGVuIiwidHJ1ZSIsInR5cGUiLCJjaGVja2JveCIsInRhYmluZGV4IiwiLTEiLDEsImNsci1jaGVja2JveCIsMywiaWQiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsImNoYW5nZSIsImZvY3VzIl0sWzEsImNsci1jb250cm9sLWxhYmVsIiwzLCJmb3IiXSxbMSwi''@;'; put 'put ''Y2xyLXNyLW9ubHkiXSxbNCwibmdJZiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKFAkKSxudCgwLCJkaXYiLDAsMSksR24oImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uS2V5RG93bihDKX0pKCJmb2N1cyIsZnVuY3Rpb24oKXtyZXR1cm4gdi5icm9hZGNhc3RG''@;'; put 'put ''b2N1c09uQ29udGFpbmVyKCl9KSxybigyLFhjZSwyLDEsImJ1dHRvbiIsMikscm4oMyxuMSwyLDAsImRpdiIsMykscm4oNCx1diwzLDQsImRpdiIsNCksbnQoNSwiZGl2Iiw1KSxHbigibW91c2Vkb3duIixmdW5jdGlvbigpe3JldHVybiB2LmZvY3VzVHJlZU5vZGUoKX0pLE5pKDYpLHJuKDcs''@;'; put 'put ''JGNlLDMsMiwiZGl2Iiw2KSxvdCgpKCksbnQoOCwiZGl2Iiw3KSxOaSg5LDEpLE5pKDEwLDIpLENyKDExLCJjbHItcmVjdXJzaXZlLWNoaWxkcmVuIiw4KSxvdCgpKSwyJmgmJihHaSgiYXJpYS1leHBhbmRlZCIsdi5pc0V4cGFuZGFibGUoKT92LmV4cGFuZGVkOm51bGwpKCJhcmlhLXNlbGVj''@;'; put 'put ''dGVkIix2LmFyaWFTZWxlY3RlZCksdXQoMiksVHQoIm5nSWYiLHYuaXNFeHBhbmRhYmxlKCkmJiF2LmlzTW9kZWxMb2FkaW5nJiYhdi5leHBhbmRTZXJ2aWNlLmxvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIix2LmV4cGFuZFNlcnZpY2UubG9hZGluZ3x8di5pc01vZGVsTG9hZGluZyksdXQoMSks''@;'; put 'put ''VHQoIm5nSWYiLHYuZmVhdHVyZXNTZXJ2aWNlLnNlbGVjdGFibGUpLHV0KDMpLFR0KCJuZ0lmIix2LmZlYXR1cmVzU2VydmljZS5zZWxlY3RhYmxlKSx1dCgxKSxUdCgiQHRvZ2dsZUNoaWxkcmVuQW5pbSIsdi5leHBhbmRTZXJ2aWNlLmV4cGFuZGVkPyJleHBhbmRlZCI6ImNvbGxhcHNlZCIp''@;'; put 'put ''LEdpKCJyb2xlIix2LmlzRXhwYW5kYWJsZSgpJiYhdi5mZWF0dXJlc1NlcnZpY2UucmVjdXJzaW9uPyJncm91cCI6bnVsbCksdXQoMyksVHQoInBhcmVudCIsdi5fbW9kZWwpKX0sZGVwZW5kZW5jaWVzOlt2eWUsTm8sWm9dLGVuY2Fwc3VsYXRpb246MixkYXRhOnthbmltYXRpb246WyRoKCJ0''@;'; put 'put ''b2dnbGVDaGlsZHJlbkFuaW0iLFtidSgiY29sbGFwc2VkID0+IGV4cGFuZGVkIixbeWwoe2hlaWdodDowfSksRGMoMjAwLHlsKHtoZWlnaHQ6IioifSkpXSksYnUoImV4cGFuZGVkID0+IGNvbGxhcHNlZCIsW3lsKHtoZWlnaHQ6IioifSksRGMoMjAwLHlsKHtoZWlnaHQ6MH0pKV0pLFo3KCJl''@;'; put 'put ''eHBhbmRlZCIseWwoe2hlaWdodDoiKiIsIm92ZXJmbG93LXkiOiJ2aXNpYmxlIn0pKSxaNygiY29sbGFwc2VkIix5bCh7aGVpZ2h0OjB9KSldKV19fSksZH0pKCkseXY9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYse25hdGl2ZUVsZW1lbnQ6eX0sQyxJKXt0aGlzLmZlYXR1cmVzU2Vy''@;'; put 'put ''dmljZT1oLHRoaXMuZm9jdXNNYW5hZ2VyU2VydmljZT12LHRoaXMuc3Vic2NyaXB0aW9ucz1bXTtjb25zdCBaPUkucnVuT3V0c2lkZUFuZ3VsYXIoKCk9PnQ4KHksImZvY3VzaW4iKS5zdWJzY3JpYmUodWU9Pnt1ZS50YXJnZXQ9PT15JiYodGhpcy5mb2N1c01hbmFnZXJTZXJ2aWNlLmZvY3Vz''@;'; put 'put ''Rmlyc3RWaXNpYmxlTm9kZSgpLEMucmVtb3ZlQXR0cmlidXRlKHksInRhYmluZGV4IikpfSkpO3RoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFopfXNldCBsYXp5KGgpe3RoaXMuZmVhdHVyZXNTZXJ2aWNlLmVhZ2VyPSFofWdldCBpc011bHRpU2VsZWN0YWJsZSgpe3JldHVybiB0aGlzLmZlYXR1''@;'; put 'put ''cmVzU2VydmljZS5zZWxlY3RhYmxlJiZ0aGlzLnJvb3ROb2Rlcy5sZW5ndGg+MH1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnNldFJvb3ROb2RlcygpLHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMucm9vdE5vZGVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5zZXRSb290Tm9k''@;'; put 'put ''ZXMoKX0pKX1zZXRSb290Tm9kZXMoKXt0aGlzLmZvY3VzTWFuYWdlclNlcnZpY2Uucm9vdE5vZGVNb2RlbHM9dGhpcy5yb290Tm9kZXMubWFwKGg9PmguX21vZGVsKS5maWx0ZXIoaD0+IWgucGFyZW50KX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5z''@;'; put 'put ''dWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHdTKSxLdChlaGUpLEt0KGJvKSxLdChHYSksS3QoX2wpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXRyZWUiXV0sY29udGVudFF1ZXJpZXM6ZnVu''@;'; put 'put ''Y3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxfZyw0KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnJvb3ROb2Rlcz1DKX19LGhvc3RBdHRyczpbInRhYmluZGV4IiwiMCJdLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZHaSgicm9sZSIsInRyZWUiKSgiYXJp''@;'; put 'put ''YS1tdWx0aXNlbGVjdGFibGUiLHYuaXNNdWx0aVNlbGVjdGFibGUpfSxpbnB1dHM6e2xhenk6WyJjbHJMYXp5IiwibGF6eSJdfSxmZWF0dXJlczpbaG8oW215ZSxlaGVdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjIsdmFyczoxLGNvbnN0czpbWzMsImNoaWxkcmVuIiw0LCJuZ0lm''@;'; put 'put ''Il0sWzMsImNoaWxkcmVuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSxybigxLEVsLDEsMSwiY2xyLXJlY3Vyc2l2ZS1jaGlsZHJlbiIsMCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIix2LmZlYXR1cmVzU2VydmljZS5yZWN1cnNpb24pKX0sZGVwZW5kZW5jaWVz''@;'; put 'put ''Olt2eWUsTm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLFhPZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7aHMuYWRkSWNvbnMoRHkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1''@;'; put 'put ''aW5qPWIwKHtpbXBvcnRzOltbYmEsRHMsQmZlXV19KSxkfSkoKSxLT2U9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbak9lLEdPZSxY''@;'; put 'put ''T2VdfSksZH0pKCk7Y2xhc3Mgd3lle3N0YXRpYyBsaW5rUGFyZW50KGcsaCx2KXtnLmZvckVhY2goeT0+eVt2XT1oKX1zdGF0aWMgbGlua1ZlcnRpY2FsKGcsaD0hMCl7Zy5mb3JFYWNoKCh2LHkpPT57eT4wJiYodi51cD1nW3ktMV0pLHk8Zy5sZW5ndGgtMSYmKHYuZG93bj1nW3krMV0pfSks''@;'; put 'put ''aCYmZy5sZW5ndGg+MSYmKGdbMF0udXA9Z1tnLmxlbmd0aC0xXSxnW2cubGVuZ3RoLTFdLmRvd249Z1swXSl9fWZ1bmN0aW9uIGJ5ZShkLGcsaCl7cmV0dXJuIEYuY3JlYXRlKHY9PntnKHYpO2NvbnN0IHk9ZC5zdWJzY3JpYmUodik7cmV0dXJuKCk9Pnt5LnVuc3Vic2NyaWJlKCksaCYmaCh2''@;'; put 'put ''KX19KX1sZXQgdGhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMuaWQ9aCx0aGlzLnJlbmRlcmVyPXYsdGhpcy5wYXJlbnQ9eSx0aGlzLnRvZ2dsZVNlcnZpY2U9Qyx0aGlzLmZvY3VzU2VydmljZT1JLHRoaXMucGxhdGZvcm1JZD1aLHRoaXMuX3VubGlzdGVu''@;'; put 'put ''RnVuY3M9W10sdGhpcy5mb2N1c0JhY2tPblRyaWdnZXI9ITEsdGhpcy5yZXNldENoaWxkcmVuKCksdGhpcy5tb3ZlVG9GaXJzdEl0ZW1XaGVuT3BlbigpLHRoaXMucGFyZW50fHx0aGlzLmhhbmRsZVJvb3RGb2N1cygpfW1vdmVUb0ZpcnN0SXRlbVdoZW5PcGVuKCl7Y29uc3QgaD10aGlzLnRv''@;'; put 'put ''Z2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUodj0+e3YmJnRoaXMudG9nZ2xlU2VydmljZS5vcmlnaW5hbEV2ZW50JiZzZXRUaW1lb3V0KCgpPT57dGhpcy5mb2N1c1NlcnZpY2UubW92ZVRvKHRoaXMpLHRoaXMuZm9jdXNTZXJ2aWNlLm1vdmUodGhpcy5wYXJlbnQ/cTEuUklHSFQ6''@;'; put 'put ''cTEuRE9XTil9KX0pO3RoaXMuX3VubGlzdGVuRnVuY3MucHVzaCgoKT0+aC51bnN1YnNjcmliZSgpKX1oYW5kbGVSb290Rm9jdXMoKXtjb25zdCBoPXRoaXMudG9nZ2xlU2VydmljZS5vcGVuQ2hhbmdlLnN1YnNjcmliZSh2PT57dnx8KHRoaXMuZm9jdXNTZXJ2aWNlLnJlc2V0KHRoaXMpLHRo''@;'; put 'put ''aXMuZm9jdXNCYWNrT25UcmlnZ2VyJiZ0aGlzLmZvY3VzKCkpLHRoaXMuZm9jdXNCYWNrT25UcmlnZ2VyPXZ9KTt0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2goKCk9PmgudW5zdWJzY3JpYmUoKSl9Z2V0IHRyaWdnZXIoKXtyZXR1cm4gdGhpcy5fdHJpZ2dlcn1zZXQgdHJpZ2dlcihoKXt0aGlz''@;'; put 'put ''Ll90cmlnZ2VyPWgsdGhpcy5wYXJlbnQ/dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uYXJyb3dyaWdodCIsdj0+dGhpcy50b2dnbGVTZXJ2aWNlLnRvZ2dsZVdpdGhFdmVudCh2KSkpOih0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhp''@;'; put 'put ''cy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5hcnJvd3VwIix2PT50aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KHYpKSksdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uYXJyb3dkb3duIix2PT50aGlzLnRvZ2dsZVNl''@;'; put 'put ''cnZpY2UudG9nZ2xlV2l0aEV2ZW50KHYpKSksdGhpcy5mb2N1c1NlcnZpY2UubGlzdGVuVG9BcnJvd0tleXMoaCkpfWdldCBjb250YWluZXIoKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyfXNldCBjb250YWluZXIoaCl7dGhpcy5fY29udGFpbmVyPWgsdGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNo''@;'; put 'put ''KHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24udGFiIix2PT50aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xlV2l0aEV2ZW50KHYpKSksdGhpcy5wYXJlbnQ/dGhpcy5fdW5saXN0ZW5GdW5jcy5wdXNoKHRoaXMucmVuZGVyZXIubGlzdGVuKGgsImtleWRvd24uZXNjIix2PT57dGhpcy5m''@;'; put 'put ''b2N1c1NlcnZpY2UubW92ZShxMS5MRUZUKSx2LnN0b3BQcm9wYWdhdGlvbigpfSkpOih0aGlzLmZvY3VzU2VydmljZS5yZWdpc3RlckNvbnRhaW5lcihoKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwia2V5ZG93bi5lc2MiLHY9PnRoaXMudG9nZ2xl''@;'; put 'put ''U2VydmljZS50b2dnbGVXaXRoRXZlbnQodikpKSx0aGlzLl91bmxpc3RlbkZ1bmNzLnB1c2godGhpcy5yZW5kZXJlci5saXN0ZW4oaCwiYmx1ciIsdj0+e3RoaXMuY2hpbGRyZW4ucGlwZShINSgxKSkuc3Vic2NyaWJlKEM9PkMuZm9yRWFjaChJPT5JLmJsdXIoKSkpO2NvbnN0IHk9di5yZWxh''@;'; put 'put ''dGVkVGFyZ2V0fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50O3kmJlNsKHRoaXMucGxhdGZvcm1JZCkmJihoLmNvbnRhaW5zKHkpfHx5PT09dGhpcy50cmlnZ2VyKXx8KHRoaXMuZm9jdXNCYWNrT25UcmlnZ2VyPSExLHRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExKX0pKSl9Zm9jdXMoKXt0aGlz''@;'; put 'put ''LnRyaWdnZXImJlNsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMudHJpZ2dlci5mb2N1cygpfWJsdXIoKXt0aGlzLnRyaWdnZXImJlNsKHRoaXMucGxhdGZvcm1JZCkmJnRoaXMudHJpZ2dlci5ibHVyKCl9YWN0aXZhdGUoKXtTbCh0aGlzLnBsYXRmb3JtSWQpJiZ0aGlzLnRyaWdnZXIuY2xpY2so''@;'; put 'put ''KX1vcGVuQW5kR2V0Q2hpbGRyZW4oKXtyZXR1cm4gYnllKHRoaXMuY2hpbGRyZW4sKCk9PnRoaXMudG9nZ2xlU2VydmljZS5vcGVuPSEwKX1jbG9zZUFuZEdldFRoaXMoKXtyZXR1cm4gYnllKGFhKHRoaXMpLCgpPT50aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMSl9cmVzZXRDaGlsZHJlbigp''@;'; put 'put ''e3RoaXMuY2hpbGRyZW49bmV3IHhrKDEpLHRoaXMucGFyZW50P3RoaXMucmlnaHQ9dGhpcy5vcGVuQW5kR2V0Q2hpbGRyZW4oKS5waXBlKG10KGg9PmhbMF0pKToodGhpcy5kb3duPXRoaXMub3BlbkFuZEdldENoaWxkcmVuKCkucGlwZShtdChoPT5oWzBdKSksdGhpcy51cD10aGlzLm9wZW5B''@;'; put 'put ''bmRHZXRDaGlsZHJlbigpLnBpcGUobXQoaD0+aFtoLmxlbmd0aC0xXSkpKX1hZGRDaGlsZHJlbihoKXt3eWUubGlua1ZlcnRpY2FsKGgpLHRoaXMucGFyZW50JiZ3eWUubGlua1BhcmVudChoLHRoaXMuY2xvc2VBbmRHZXRUaGlzKCkscTEuTEVGVCksdGhpcy5jaGlsZHJlbi5uZXh0KGgpfW5n''@;'; put 'put ''T25EZXN0cm95KCl7dGhpcy5fdW5saXN0ZW5GdW5jcy5mb3JFYWNoKGg9PmgoKSksdGhpcy5mb2N1c1NlcnZpY2UuZGV0YWNoTGlzdGVuZXJzKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHkyKSxDaShHYSksQ2koZCwxMiksQ2koenMpLENp''@;'; put 'put ''KHhwKSxDaShMMikpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0ICRPZT1SQWUodGhlKTtsZXQgZFo9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2NoYW5nZXM9bmV3ICRlfWdldCBjaGFuZ2VzKCl7cmV0dXJuIHRo''@;'; put 'put ''aXMuX2NoYW5nZXMuYXNPYnNlcnZhYmxlKCl9Y2xvc2VNZW51cygpe3RoaXMuX2NoYW5nZXMubmV4dCghMSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgp''@;'; put 'put ''O2NvbnN0IGVSZT17cHJvdmlkZTpkWix1c2VGYWN0b3J5OmZ1bmN0aW9uIHFPZShkKXtyZXR1cm4gZHx8bmV3IGRafSxkZXBzOltbbmV3IG1mLG5ldyBMNCxkWl1dfTtsZXQgd3Y9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnBhcmVudD1oLHRoaXMudG9nZ2xlU2Vy''@;'; put 'put ''dmljZT12LHRoaXMuY2RyPXksdGhpcy5zdWJzY3JpcHRpb25zPVtdLHRoaXMuaXNNZW51Q2xvc2FibGU9ITAsdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goQy5jaGFuZ2VzLnN1YnNjcmliZShJPT50aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj1JKSksdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godi5v''@;'; put 'put ''cGVuQ2hhbmdlLnN1YnNjcmliZSgoKT0+dGhpcy5jZHIubWFya0ZvckNoZWNrKCkpKX1uZ09uRGVzdHJveSgpe3RoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKGg9PmgudW5zdWJzY3JpYmUoKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQs''@;'; put 'put ''MTIpLEt0KHpzKSxLdChkMSksS3QoZFopKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWRyb3Bkb3duIl1dLGhvc3RWYXJzOjQsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiZHJvcGRvd24iLCEwKSgib3BlbiIsdi50b2dnbGVTZXJ2aWNlLm9w''@;'; put 'put ''ZW4pfSxpbnB1dHM6e2lzTWVudUNsb3NhYmxlOlsiY2xyQ2xvc2VNZW51T25JdGVtQ2xpY2siLCJpc01lbnVDbG9zYWJsZSJdfSxmZWF0dXJlczpbaG8oW2VSZSx7cHJvdmlkZTp0Zix1c2VFeGlzdGluZzpib30sZzgsenMsJE9lXSldLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZh''@;'; put 'put ''cnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKTtjb25zdCB0UmU9W09jLHtwcm92aWRlOmxxLHVzZUNsYXNzOigoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5pZD1oLHRoaXMuZWw9dix0aGlz''@;'; put 'put ''LnJlbmRlcmVyPXksdGhpcy5wbGF0Zm9ybUlkPUMsdGhpcy5kaXNhYmxlZD0hMSx5LnNldEF0dHJpYnV0ZSh2Lm5hdGl2ZUVsZW1lbnQsImlkIixoKSx5LnNldEF0dHJpYnV0ZSh2Lm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4IiwiLTEiKX1mb2N1cygpe1NsKHRoaXMucGxhdGZvcm1JZCkmJih0''@;'; put 'put ''aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4IiwiMCIpLHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpLHRoaXMuZWwubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7YmVoYXZpb3I6InNtb290aCIsYmxvY2s6ImNlbnRlciIs''@;'; put 'put ''aW5saW5lOiJuZWFyZXN0In0pKX1ibHVyKCl7U2wodGhpcy5wbGF0Zm9ybUlkKSYmKHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwidGFiaW5kZXgiLCItMSIpLHRoaXMuZWwubmF0aXZlRWxlbWVudC5ibHVyKCkpfWFjdGl2YXRlKCl7U2wodGhpcy5w''@;'; put 'put ''bGF0Zm9ybUlkKSYmdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsaWNrKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKENpKHkyKSxDaShibyksQ2koR2EpLENpKEwyKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFj''@;'; put 'put ''fSksZH0pKCl9XTtsZXQgSkw9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuZHJvcGRvd249aCx0aGlzLmVsPXYsdGhpcy5fZHJvcGRvd25TZXJ2aWNlPXksdGhpcy5yZW5kZXJlcj1DLHRoaXMuZm9jdXNhYmxlSXRlbT1JLHRoaXMuc2V0QnlEZXByZWNhdGVkRGlz''@;'; put 'put ''YWJsZWQ9ITF9c2V0IGRpc2FibGVkKGgpe3RoaXMuZm9jdXNhYmxlSXRlbS5kaXNhYmxlZD0hIWh8fCIiPT09aH1nZXQgZGlzYWJsZWQoKXtyZXR1cm4gdGhpcy5mb2N1c2FibGVJdGVtLmRpc2FibGVkfXNldCBkaXNhYmxlZERlcHJlY2F0ZWQoaCl7dGhpcy5mb2N1c2FibGVJdGVtLmRpc2Fi''@;'; put 'put ''bGVkPSEhaHx8IiI9PT1oLHRoaXMuc2V0QnlEZXByZWNhdGVkRGlzYWJsZWQ9ITB9Z2V0IGRpc2FibGVkRGVwcmVjYXRlZCgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uZGlzYWJsZWR9c2V0IGRyb3Bkb3duSXRlbUlkKGgpe3RoaXMuZm9jdXNhYmxlSXRlbS5pZD1ofWdldCBkcm9wZG93''@;'; put 'put ''bkl0ZW1JZCgpe3JldHVybiB0aGlzLmZvY3VzYWJsZUl0ZW0uaWR9bmdBZnRlclZpZXdJbml0KCl7dGhpcy51bmxpc3Rlbj10aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsImNsaWNrIiwoKT0+dGhpcy5vbkRyb3Bkb3duSXRlbUNsaWNrKCkpfW9uRHJvcGRvd25J''@;'; put 'put ''dGVtQ2xpY2soKXt0aGlzLmRyb3Bkb3duLmlzTWVudUNsb3NhYmxlJiYhdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSYmdGhpcy5fZHJvcGRvd25TZXJ2aWNlLmNsb3NlTWVudXMoKX1uZ09uRGVzdHJveSgpe3RoaXMudW5saXN0ZW4mJnRoaXMu''@;'; put 'put ''dW5saXN0ZW4oKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qod3YpLEt0KGJvKSxLdChkWiksS3QoR2EpLEt0KGxxKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsckRyb3Bkb3duSXRlbSIsIiJdXSxob3N0VmFy''@;'; put 'put ''czo4LGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJyb2xlIiwibWVudWl0ZW0iKSgiYXJpYS1kaXNhYmxlZCIsdi5kaXNhYmxlZCkoImRpc2FibGVkIix2LmRpc2FibGVkJiZ2LnNldEJ5RGVwcmVjYXRlZERpc2FibGVkPyIiOm51bGwpKCJpZCIsdi5kcm9wZG93bkl0ZW1J''@;'; put 'put ''ZCksRmkoImRpc2FibGVkIix2LmRpc2FibGVkKSgiZHJvcGRvd24taXRlbSIsITApKX0saW5wdXRzOntkaXNhYmxlZDpbImNsckRpc2FibGVkIiwiZGlzYWJsZWQiXSxkaXNhYmxlZERlcHJlY2F0ZWQ6WyJkaXNhYmxlZCIsImRpc2FibGVkRGVwcmVjYXRlZCJdLGRyb3Bkb3duSXRlbUlkOlsi''@;'; put 'put ''aWQiLCJkcm9wZG93bkl0ZW1JZCJdfSxmZWF0dXJlczpbaG8oW3RSZV0pXX0pLGR9KSgpO3ZhciBnMD0oKCk9PihmdW5jdGlvbihkKXtkW2QuUklHSFRfQ0VOVEVSPTBdPSJSSUdIVF9DRU5URVIiLGRbZC5SSUdIVF9UT1A9MV09IlJJR0hUX1RPUCIsZFtkLlJJR0hUX0JPVFRPTT0yXT0iUklH''@;'; put 'put ''SFRfQk9UVE9NIixkW2QuVE9QX0NFTlRFUj0zXT0iVE9QX0NFTlRFUiIsZFtkLlRPUF9SSUdIVD00XT0iVE9QX1JJR0hUIixkW2QuVE9QX0xFRlQ9NV09IlRPUF9MRUZUIixkW2QuQk9UVE9NX0NFTlRFUj02XT0iQk9UVE9NX0NFTlRFUiIsZFtkLkJPVFRPTV9SSUdIVD03XT0iQk9UVE9NX1JJ''@;'; put 'put ''R0hUIixkW2QuQk9UVE9NX0xFRlQ9OF09IkJPVFRPTV9MRUZUIixkW2QuTEVGVF9DRU5URVI9OV09IkxFRlRfQ0VOVEVSIixkW2QuTEVGVF9UT1A9MTBdPSJMRUZUX1RPUCIsZFtkLkxFRlRfQk9UVE9NPTExXT0iTEVGVF9CT1RUT00ifShnMHx8KGcwPXt9KSksZzApKSgpO2NsYXNzIGlSZXtj''@;'; put 'put ''b25zdHJ1Y3RvcihnKXt0aGlzLmVsZW1lbnQ9Zyx0aGlzLnNjcm9sbGFibGVFbGVtZW50cz1bXSx0aGlzLmJvdW5kT25TY3JvbGxMaXN0ZW5lcj10aGlzLmVtaXRTY3JvbGxFdmVudC5iaW5kKHRoaXMpLGcuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixnLnN0eWxlLnRvcD0wLGcuc3R5bGUu''@;'; put 'put ''Ym90dG9tPSJhdXRvIixnLnN0eWxlLmxlZnQ9MCxnLnN0eWxlLnJpZ2h0PSJhdXRvIn1hbmNob3IoZyxoLHYse29mZnNldFg6eT0wLG9mZnNldFk6Qz0wLHVzZUFuY2hvclBhcmVudDpJPSExfT17fSl7dGhpcy5hZGRTY3JvbGxFdmVudExpc3RlbmVycyhnKSxJJiYoZz1nLnBhcmVudE5vZGUp''@;'; put 'put ''LGcuc3R5bGUucG9zaXRpb249InN0YXRpYyI7Y29uc3QgWj1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHVlPXRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtsZXQgX2U9Wi5sZWZ0LXVlLmxlZnQreSxCZT1aLnRvcC11ZS50b3ArQztzd2l0Y2goaCl7Y2FzZSBnMC5MRUZU''@;'; put 'put ''X1RPUDpjYXNlIGcwLlRPUF9MRUZUOmJyZWFrO2Nhc2UgZzAuVE9QX0NFTlRFUjpfZSs9Wi53aWR0aC8yO2JyZWFrO2Nhc2UgZzAuVE9QX1JJR0hUOmNhc2UgZzAuUklHSFRfVE9QOl9lKz1aLndpZHRoO2JyZWFrO2Nhc2UgZzAuTEVGVF9CT1RUT006Y2FzZSBnMC5CT1RUT01fTEVGVDpCZSs9''@;'; put 'put ''Wi5oZWlnaHQ7YnJlYWs7Y2FzZSBnMC5CT1RUT01fQ0VOVEVSOkJlKz1aLmhlaWdodCxfZSs9Wi53aWR0aC8yO2JyZWFrO2Nhc2UgZzAuQk9UVE9NX1JJR0hUOmNhc2UgZzAuUklHSFRfQk9UVE9NOkJlKz1aLmhlaWdodCxfZSs9Wi53aWR0aDticmVhaztjYXNlIGcwLkxFRlRfQ0VOVEVSOkJl''@;'; put 'put ''Kz1aLmhlaWdodC8yO2JyZWFrO2Nhc2UgZzAuUklHSFRfQ0VOVEVSOkJlKz1aLmhlaWdodC8yLF9lKz1aLndpZHRofXN3aXRjaCh2KXtjYXNlIGcwLkxFRlRfVE9QOmNhc2UgZzAuVE9QX0xFRlQ6YnJlYWs7Y2FzZSBnMC5UT1BfQ0VOVEVSOl9lLT11ZS53aWR0aC8yO2JyZWFrO2Nhc2UgZzAu''@;'; put 'put ''VE9QX1JJR0hUOmNhc2UgZzAuUklHSFRfVE9QOl9lLT11ZS53aWR0aDticmVhaztjYXNlIGcwLkxFRlRfQk9UVE9NOmNhc2UgZzAuQk9UVE9NX0xFRlQ6QmUtPXVlLmhlaWdodDticmVhaztjYXNlIGcwLkJPVFRPTV9DRU5URVI6QmUtPXVlLmhlaWdodCxfZS09dWUud2lkdGgvMjticmVhaztj''@;'; put 'put ''YXNlIGcwLkJPVFRPTV9SSUdIVDpjYXNlIGcwLlJJR0hUX0JPVFRPTTpCZS09dWUuaGVpZ2h0LF9lLT11ZS53aWR0aDticmVhaztjYXNlIGcwLkxFRlRfQ0VOVEVSOkJlLT11ZS5oZWlnaHQvMjticmVhaztjYXNlIGcwLlJJR0hUX0NFTlRFUjpCZS09dWUuaGVpZ2h0LzIsX2UtPXVlLndpZHRo''@;'; put 'put ''fWNvbnN0IE5lPWdldENvbXB1dGVkU3R5bGUodGhpcy5lbGVtZW50KSxLZT1wYXJzZUludChOZS5tYXJnaW5MZWZ0LDEwKSxwdD1wYXJzZUludChOZS5tYXJnaW5SaWdodCwxMCksT3Q9cGFyc2VJbnQoTmUubWFyZ2luVG9wLDEwKSwkdD1wYXJzZUludChOZS5tYXJnaW5Cb3R0b20sMTApO3N3''@;'; put 'put ''aXRjaChoKXtjYXNlIGcwLkxFRlRfVE9QOmNhc2UgZzAuVE9QX0xFRlQ6Y2FzZSBnMC5UT1BfUklHSFQ6Y2FzZSBnMC5SSUdIVF9UT1A6KHY9PT1nMC5CT1RUT01fUklHSFR8fHY9PT1nMC5SSUdIVF9CT1RUT00pJiYoQmUtPSR0LF9lLT1wdCksKHY9PT1nMC5CT1RUT01fTEVGVHx8dj09PWcw''@;'; put 'put ''LkxFRlRfQk9UVE9NKSYmKEJlLT1PdCxfZSs9S2UpLCh2PT09ZzAuVE9QX0xFRlR8fHY9PT1nMC5MRUZUX1RPUCkmJihCZSs9T3QsX2UrPUtlKSwodj09PWcwLlRPUF9SSUdIVHx8dj09PWcwLlJJR0hUX1RPUCkmJihCZSs9T3QsX2UtPXB0KTticmVhaztjYXNlIGcwLkxFRlRfQk9UVE9NOmNh''@;'; put 'put ''c2UgZzAuQk9UVE9NX0xFRlQ6Y2FzZSBnMC5CT1RUT01fUklHSFQ6Y2FzZSBnMC5SSUdIVF9CT1RUT006KHY9PT1nMC5CT1RUT01fTEVGVHx8dj09PWcwLkxFRlRfQk9UVE9NKSYmKEJlLT0kdCxfZSs9S2UpLCh2PT09ZzAuQk9UVE9NX1JJR0hUfHx2PT09ZzAuUklHSFRfQk9UVE9NKSYmKEJl''@;'; put 'put ''LT0kdCxfZS09cHQpLCh2PT09ZzAuVE9QX0xFRlR8fHY9PT1nMC5MRUZUX1RPUCkmJihCZSs9T3QsX2UrPUtlKSwodj09PWcwLlRPUF9SSUdIVHx8dj09PWcwLlJJR0hUX1RPUCkmJihCZSs9T3QsX2UtPXB0KTticmVhaztjYXNlIGcwLlRPUF9DRU5URVI6QmUtPSR0LF9lKz1LZSxfZS09cHQ7''@;'; put 'put ''YnJlYWs7Y2FzZSBnMC5CT1RUT01fQ0VOVEVSOkJlKz1PdCxfZSs9S2UsX2UtPXB0O2JyZWFrO2Nhc2UgZzAuTEVGVF9DRU5URVI6QmUrPU90LEJlLT0kdCxfZS09cHQ7YnJlYWs7Y2FzZSBnMC5SSUdIVF9DRU5URVI6QmUrPU90LEJlLT0kdCxfZSs9S2V9cmV0dXJuIHRoaXMuZWxlbWVudC5z''@;'; put 'put ''dHlsZS50cmFuc2Zvcm09YHRyYW5zbGF0ZVgoJHtNYXRoLnJvdW5kKF9lKX1weCkgdHJhbnNsYXRlWSgke01hdGgucm91bmQoQmUpfXB4KWAsdGhpcy5fc2Nyb2xsLmFzT2JzZXJ2YWJsZSgpfXJlbGVhc2UoKXt0aGlzLmVsZW1lbnQuc3R5bGUudHJhbnNmb3JtPSIiLHRoaXMucmVtb3ZlU2Ny''@;'; put 'put ''b2xsRXZlbnRMaXN0ZW5lcnMoKX1pc1Bvc2l0aW9uZWQoZyl7Y29uc3QgaD1nZXRDb21wdXRlZFN0eWxlKGcpLnBvc2l0aW9uO3JldHVybiJyZWxhdGl2ZSI9PT1ofHwiYWJzb2x1dGUiPT09aHx8ImZpeGVkIj09PWh9ZW1pdFNjcm9sbEV2ZW50KCl7dGhpcy5fc2Nyb2xsLm5leHQoKX1hZGRT''@;'; put 'put ''Y3JvbGxFdmVudExpc3RlbmVycyhnKXt0aGlzLl9zY3JvbGw9bmV3ICRlO2NvbnN0IGg9ZztsZXQgdj1nO2Zvcig7diYmdiE9PWRvY3VtZW50JiYodGhpcy5zY3JvbGxzKHYpJiYodi5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRoaXMuYm91bmRPblNjcm9sbExpc3RlbmVyKSx0aGlzLnNj''@;'; put 'put ''cm9sbGFibGVFbGVtZW50cy5wdXNoKHYpKSx2PT09aHx8IXRoaXMuaXNQb3NpdGlvbmVkKHYpKTspdj12LnBhcmVudE5vZGV9cmVtb3ZlU2Nyb2xsRXZlbnRMaXN0ZW5lcnMoKXtmb3IoY29uc3QgZyBvZiB0aGlzLnNjcm9sbGFibGVFbGVtZW50cylnLnJlbW92ZUV2ZW50TGlzdGVuZXIoInNj''@;'; put 'put ''cm9sbCIsdGhpcy5ib3VuZE9uU2Nyb2xsTGlzdGVuZXIpO3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnRzLmxlbmd0aD0wLHRoaXMuX3Njcm9sbCYmKHRoaXMuX3Njcm9sbC5jb21wbGV0ZSgpLGRlbGV0ZSB0aGlzLl9zY3JvbGwpfXNjcm9sbHMoZyl7Y29uc3QgaD1nZXRDb21wdXRlZFN0eWxlKGcp''@;'; put 'put ''O3JldHVybiJzY3JvbGwiPT09aC5vdmVyZmxvd1h8fCJhdXRvIj09PWgub3ZlcmZsb3dYfHwic2Nyb2xsIj09PWgub3ZlcmZsb3dZfHwiYXV0byI9PT1oLm92ZXJmbG93WX19bGV0IG5oZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5wYXJlbnRIb3N0PXYsdGhpcy51cGRh''@;'; put 'put ''dGVBbmNob3I9ITEsdGhpcy5wb3BvdmVyT3B0aW9ucz17fSx0aGlzLmNsb3NlT25PdXRzaWRlQ2xpY2s9ITEsdGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyPW51bGwsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrQ2FsbGJhY2s9eT0+e3RoaXMuYW5jaG9yRWxlbS5jb250YWlucyh5LnRhcmdldCl8''@;'; put 'put ''fCh0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMSl9LHRoaXMuZWw9aC5nZXQoYm8pLHRoaXMudG9nZ2xlU2VydmljZT1oLmdldCh6cyksdGhpcy5yZW5kZXJlcj1oLmdldChHYSksdGhpcy5uZ1pvbmU9aC5nZXQoX2wpLHRoaXMucmVmPWguZ2V0KGQxKSx0aGlzLmFuY2hvckVsZW09di5uYXRp''@;'; put 'put ''dmVFbGVtZW50LHRoaXMucG9wb3Zlckluc3RhbmNlPW5ldyBpUmUodGhpcy5lbC5uYXRpdmVFbGVtZW50KSx0aGlzLnN1YnNjcmlwdGlvbj10aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbkNoYW5nZS5zdWJzY3JpYmUoeT0+e3k/KHRoaXMuYW5jaG9yKCksdGhpcy5hdHRhY2hFU0NMaXN0ZW5lcigp''@;'; put 'put ''KToodGhpcy5yZWxlYXNlKCksdGhpcy5kZXRhY2hFU0NMaXN0ZW5lcigpKX0pLHRoaXMudG9nZ2xlU2VydmljZS5vcGVuJiYodGhpcy5hbmNob3IoKSx0aGlzLmF0dGFjaEVTQ0xpc3RlbmVyKCkpfWFuY2hvcigpe3RoaXMudXBkYXRlQW5jaG9yPSEwfXJlbGVhc2UoKXt0aGlzLmRldGFjaE91''@;'; put 'put ''dHNpZGVDbGlja0xpc3RlbmVyKCksdGhpcy5wb3BvdmVySW5zdGFuY2UucmVsZWFzZSgpfW5nQWZ0ZXJWaWV3Q2hlY2tlZCgpe3RoaXMudXBkYXRlQW5jaG9yJiYodGhpcy51cGRhdGVBbmNob3I9ITEsdGhpcy5wb3BvdmVySW5zdGFuY2UuYW5jaG9yKHRoaXMuYW5jaG9yRWxlbSx0aGlzLmFu''@;'; put 'put ''Y2hvclBvaW50LHRoaXMucG9wb3ZlclBvaW50LHRoaXMucG9wb3Zlck9wdGlvbnMpLnN1YnNjcmliZSgoKT0+e3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPSExfSksdGhpcy5hdHRhY2hPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpKX1uZ09uRGVzdHJveSgpe3RoaXMucmVsZWFzZSgpLHRoaXMuZGV0''@;'; put 'put ''YWNoRVNDTGlzdGVuZXIoKSx0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfWdldCBpc09mZlNjcmVlbigpe3JldHVybiF0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbn1hdHRhY2hFU0NMaXN0ZW5lcigpe3RoaXMucG9wb3Zlck9wdGlvbnMuaWdub3JlR2xvYmFsRVNDTGlzdGVuZXJ8fHRo''@;'; put 'put ''aXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5kb2N1bWVudEVTQ0xpc3RlbmVyPXRoaXMucmVuZGVyZXIubGlzdGVuKCJkb2N1bWVudCIsImtleWRvd24iLGg9PntoJiZoLmtleSYmKCJFc2NhcGUiPT09aC5rZXl8fCJFc2MiPT09aC5rZXkpJiZ0aGlzLm5nWm9uZS5ydW4o''@;'; put 'put ''KCk9Pnt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMSx0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKX0pfSl9KX1kZXRhY2hFU0NMaXN0ZW5lcigpe3RoaXMuZG9jdW1lbnRFU0NMaXN0ZW5lciYmKHRoaXMuZG9jdW1lbnRFU0NMaXN0ZW5lcigpLHRoaXMuZG9jdW1lbnRFU0NMaXN0ZW5lcj1udWxs''@;'; put 'put ''KX1hdHRhY2hPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpe3RoaXMuY2xvc2VPbk91dHNpZGVDbGljayYmdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJmRvY3VtZW50JiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyJiZkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5jbG9zZU9u''@;'; put 'put ''T3V0c2lkZUNsaWNrQ2FsbGJhY2ssITApfWRldGFjaE91dHNpZGVDbGlja0xpc3RlbmVyKCl7dGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrJiZkb2N1bWVudCYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuY2xv''@;'; put 'put ''c2VPbk91dHNpZGVDbGlja0NhbGxiYWNrLCEwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoU3MpLEt0KGJvLDQpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmko''@;'; put 'put ''ImlzLW9mZi1zY3JlZW4iLHYuaXNPZmZTY3JlZW4pfX0pLGR9KSgpLGJTPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBuaGV7Y29uc3RydWN0b3IoaCx2LHksQyl7aWYoIXYpdGhyb3cgbmV3IEVycm9yKCJjbHItZHJvcGRvd24tbWVudSBzaG91bGQgb25seSBiZSB1c2VkIGluc2lkZSBvZiBhIGNs''@;'; put 'put ''ci1kcm9wZG93biIpO3N1cGVyKGgsdikseT8odGhpcy5hbmNob3JQb2ludD1nMC5SSUdIVF9UT1AsdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuTEVGVF9UT1ApOih0aGlzLmFuY2hvclBvaW50PWcwLkJPVFRPTV9MRUZULHRoaXMucG9wb3ZlclBvaW50PWcwLkxFRlRfVE9QKSx0aGlzLnBvcG92ZXJP''@;'; put 'put ''cHRpb25zLmFsbG93TXVsdGlwbGVPcGVuPSEwLHRoaXMucG9wb3Zlck9wdGlvbnMuaWdub3JlR2xvYmFsRVNDTGlzdGVuZXI9ITAsdGhpcy5jbG9zZU9uT3V0c2lkZUNsaWNrPSEwLHRoaXMuZm9jdXNIYW5kbGVyPUN9c2V0IHBvc2l0aW9uKGgpe3N3aXRjaChoKXtjYXNlInRvcC1yaWdodCI6''@;'; put 'put ''dGhpcy5hbmNob3JQb2ludD1nMC5UT1BfUklHSFQsdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuUklHSFRfQk9UVE9NO2JyZWFrO2Nhc2UidG9wLWxlZnQiOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuVE9QX0xFRlQsdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuTEVGVF9CT1RUT007YnJlYWs7Y2FzZSJib3R0b20t''@;'; put 'put ''cmlnaHQiOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuQk9UVE9NX1JJR0hULHRoaXMucG9wb3ZlclBvaW50PWcwLlJJR0hUX1RPUDticmVhaztjYXNlImJvdHRvbS1sZWZ0IjpkZWZhdWx0OnRoaXMuYW5jaG9yUG9pbnQ9ZzAuQk9UVE9NX0xFRlQsdGhpcy5wb3BvdmVyUG9pbnQ9ZzAuTEVGVF9UT1A7''@;'; put 'put ''YnJlYWs7Y2FzZSJyaWdodC10b3AiOnRoaXMuYW5jaG9yUG9pbnQ9ZzAuUklHSFRfVE9QLHRoaXMucG9wb3ZlclBvaW50PWcwLkxFRlRfVE9QO2JyZWFrO2Nhc2UicmlnaHQtYm90dG9tIjp0aGlzLmFuY2hvclBvaW50PWcwLlJJR0hUX0JPVFRPTSx0aGlzLnBvcG92ZXJQb2ludD1nMC5MRUZU''@;'; put 'put ''X0JPVFRPTTticmVhaztjYXNlImxlZnQtdG9wIjp0aGlzLmFuY2hvclBvaW50PWcwLkxFRlRfVE9QLHRoaXMucG9wb3ZlclBvaW50PWcwLlJJR0hUX1RPUDticmVhaztjYXNlImxlZnQtYm90dG9tIjp0aGlzLmFuY2hvclBvaW50PWcwLkxFRlRfQk9UVE9NLHRoaXMucG9wb3ZlclBvaW50PWcw''@;'; put 'put ''LlJJR0hUX0JPVFRPTX19bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5mb2N1c0hhbmRsZXIuY29udGFpbmVyPXRoaXMuZWwubmF0aXZlRWxlbWVudCx0aGlzLml0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT50aGlzLmZvY3VzSGFuZGxlci5hZGRDaGlsZHJlbih0aGlzLml0ZW1zLnRvQXJy''@;'; put 'put ''YXkoKSkpLHRoaXMuaXRlbXMubm90aWZ5T25DaGFuZ2VzKCl9bmdPbkRlc3Ryb3koKXtzdXBlci5uZ09uRGVzdHJveSgpLHRoaXMuZm9jdXNIYW5kbGVyLnJlc2V0Q2hpbGRyZW4oKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoU3MpLEt0KHRm''@;'; put 'put ''LDgpLEt0KGQsMTIpLEt0KHRoZSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItZHJvcGRvd24tbWVudSJdXSxjb250ZW50UXVlcmllczpmdW5jdGlvbihoLHYseSl7aWYoMSZoJiZ4byh5LGxxLDQpLDImaCl7bGV0IEM7SGkoQz0kaSgpKSYmKHYuaXRlbXM9Qyl9''@;'; put 'put ''fSxob3N0VmFyczozLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmKEdpKCJyb2xlIiwibWVudSIpLEZpKCJkcm9wZG93bi1tZW51IiwhMCkpfSxpbnB1dHM6e3Bvc2l0aW9uOlsiY2xyUG9zaXRpb24iLCJwb3NpdGlvbiJdfSxmZWF0dXJlczpbRG9dLG5nQ29udGVudFNlbGVjdG9y''@;'; put 'put ''czpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxfUz0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMudG9nZ2xlU2VydmljZT12LHRoaXMuaXNSb290TGV2ZWxUb2dn''@;'; put 'put ''bGU9ITAsaC5wYXJlbnQmJih0aGlzLmlzUm9vdExldmVsVG9nZ2xlPSExKSxDLnRyaWdnZXI9eS5uYXRpdmVFbGVtZW50fWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW59b25Ecm9wZG93blRyaWdnZXJDbGljayhoKXt0aGlzLnRvZ2dsZVNlcnZpY2UudG9nZ2xl''@;'; put 'put ''V2l0aEV2ZW50KGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh3diksS3QoenMpLEt0KGJvKSxLdCh0aGUpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIl0sWyIiLCJjbHJE''@;'; put 'put ''cm9wZG93blRvZ2dsZSIsIiJdXSxob3N0VmFyczoxMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25Ecm9wZG93blRyaWdnZXJDbGljayhDKX0pLDImaCYmKEdpKCJhcmlhLWhhc3BvcHVwIiwibWVudSIpKCJhcmlhLWV4''@;'; put 'put ''cGFuZGVkIix2LmFjdGl2ZSksRmkoImRyb3Bkb3duLXRvZ2dsZSIsdi5pc1Jvb3RMZXZlbFRvZ2dsZSkoImRyb3Bkb3duLWl0ZW0iLCF2LmlzUm9vdExldmVsVG9nZ2xlKSgiZXhwYW5kYWJsZSIsIXYuaXNSb290TGV2ZWxUb2dnbGUpKCJhY3RpdmUiLHYuYWN0aXZlKSl9fSksZH0pKCkscmhl''@;'; put 'put ''PSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYV0scWEsRHNdfSksZH0pKCk7Y29uc3Qgb1JlPVsiaW5mbyIsIndhcm5pbmciLCJk''@;'; put 'put ''YW5nZXIiLCJzdWNjZXNzIl07bGV0IGloZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuY29tbW9uU3RyaW5ncz1oLHRoaXMuZGVmYXVsdEljb25TaGFwZT0iaW5mby1jaXJjbGUiLHRoaXMuX2FsZXJ0SWNvblNoYXBlPSIiLHRoaXMuX2FsZXJ0VHlwZT0iaW5mbyJ9Z2V0IGFs''@;'; put 'put ''ZXJ0VHlwZSgpe3JldHVybiB0aGlzLl9hbGVydFR5cGV9c2V0IGFsZXJ0VHlwZShoKXtvUmUuaW5kZXhPZihoKT4tMSYmKHRoaXMuX2FsZXJ0VHlwZT1oKX1nZXQgYWxlcnRJY29uU2hhcGUoKXtyZXR1cm4iIj09PXRoaXMuX2FsZXJ0SWNvblNoYXBlP3RoaXMuaWNvbkluZm9Gcm9tVHlwZSh0''@;'; put 'put ''aGlzLl9hbGVydFR5cGUpLnNoYXBlOnRoaXMuX2FsZXJ0SWNvblNoYXBlfXNldCBhbGVydEljb25TaGFwZShoKXtoP2ghPT10aGlzLl9hbGVydEljb25TaGFwZSYmKHRoaXMuX2FsZXJ0SWNvblNoYXBlPWgpOnRoaXMuX2FsZXJ0SWNvblNoYXBlPSIifWdldCBhbGVydEljb25UaXRsZSgpe3Jl''@;'; put 'put ''dHVybiB0aGlzLmljb25JbmZvRnJvbVR5cGUodGhpcy5fYWxlcnRUeXBlKS50aXRsZX1pY29uSW5mb0Zyb21UeXBlKGgpe2NvbnN0IHY9e3NoYXBlOiIiLGNzc0NsYXNzOiIiLHRpdGxlOiIifTtzd2l0Y2goaCl7Y2FzZSJ3YXJuaW5nIjp2LnNoYXBlPSJleGNsYW1hdGlvbi10cmlhbmdsZSIs''@;'; put 'put ''di5jc3NDbGFzcz0iYWxlcnQtd2FybmluZyIsdi50aXRsZT10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy53YXJuaW5nO2JyZWFrO2Nhc2UiZGFuZ2VyIjp2LnNoYXBlPSJleGNsYW1hdGlvbi1jaXJjbGUiLHYuY3NzQ2xhc3M9ImFsZXJ0LWRhbmdlciIsdi50aXRsZT10aGlzLmNvbW1vblN0cmlu''@;'; put 'put ''Z3Mua2V5cy5kYW5nZXI7YnJlYWs7Y2FzZSJzdWNjZXNzIjp2LnNoYXBlPSJjaGVjay1jaXJjbGUiLHYuY3NzQ2xhc3M9ImFsZXJ0LXN1Y2Nlc3MiLHYudGl0bGU9dGhpcy5jb21tb25TdHJpbmdzLmtleXMuc3VjY2VzczticmVhaztkZWZhdWx0OnYuc2hhcGU9dGhpcy5kZWZhdWx0SWNvblNo''@;'; put 'put ''YXBlLHYuY3NzQ2xhc3M9ImFsZXJ0LWluZm8iLHYudGl0bGU9dGhpcy5jb21tb25TdHJpbmdzLmtleXMuaW5mb31yZXR1cm4gdn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2kobnMpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6''@;'; put 'put ''ZC5cdTAyNzVmYWN9KSxkfSkoKSxDcT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY2hhbmdlPW5ldyAkZX1nZXQgY2hhbmdlcygpe3JldHVybiB0aGlzLl9jaGFuZ2UuYXNPYnNlcnZhYmxlKCl9Z2V0IGN1cnJlbnQoKXtyZXR1cm4gdGhpcy5fY3VycmVudH1zZXQgY3VycmVu''@;'; put 'put ''dChoKXtoIT09dGhpcy5fY3VycmVudCYmKHRoaXMuX2N1cnJlbnQ9aCx0aGlzLl9jaGFuZ2UubmV4dChoKSl9Z2V0IGFjdGl2ZUFsZXJ0cygpe3JldHVybiB0aGlzLmFsbEFsZXJ0cyYmdGhpcy5hbGxBbGVydHMuZmlsdGVyKGg9PiFoLl9jbG9zZWQpfWdldCBjdXJyZW50QWxlcnQoKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5hY3RpdmVBbGVydHMmJnRoaXMuYWN0aXZlQWxlcnRzW3RoaXMuY3VycmVudF19c2V0IGN1cnJlbnRBbGVydChoKXt0aGlzLmN1cnJlbnQ9dGhpcy5hY3RpdmVBbGVydHMuaW5kZXhPZihoKX1nZXQgY291bnQoKXtyZXR1cm4gdGhpcy5hY3RpdmVBbGVydHMmJnRoaXMuYWN0aXZl''@;'; put 'put ''QWxlcnRzLmxlbmd0aHx8MH1tYW5hZ2UoaCl7dGhpcy5zdWJzY3JpcHRpb24mJnRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCksdGhpcy5hbGxBbGVydHM9aCx0aGlzLmN1cnJlbnQ9Im51bWJlciI9PXR5cGVvZiB0aGlzLl9jdXJyZW50P3RoaXMuX2N1cnJlbnQ6MCx0aGlzLl9jaGFu''@;'; put 'put ''Z2UubmV4dCh0aGlzLmN1cnJlbnQpLHRoaXMuc3Vic2NyaXB0aW9uPXRoaXMuYWxsQWxlcnRzLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5jdXJyZW50Pj10aGlzLmFsbEFsZXJ0cy5sZW5ndGgmJih0aGlzLmN1cnJlbnQ9TWF0aC5tYXgoMCx0aGlzLmFsbEFsZXJ0cy5sZW5ndGgtMSkp''@;'; put 'put ''fSl9bmV4dCgpe3RoaXMuX2N1cnJlbnQ9dGhpcy5jdXJyZW50PT09dGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoLTE/MDp0aGlzLmN1cnJlbnQrMSx0aGlzLl9jaGFuZ2UubmV4dCh0aGlzLl9jdXJyZW50KX1wcmV2aW91cygpezAhPT10aGlzLmFjdGl2ZUFsZXJ0cy5sZW5ndGgmJih0aGlzLl9j''@;'; put 'put ''dXJyZW50PTA9PT10aGlzLmN1cnJlbnQ/dGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoLTE6dGhpcy5jdXJyZW50LTEsdGhpcy5fY2hhbmdlLm5leHQodGhpcy5fY3VycmVudCkpfW9wZW4oKXswIT09dGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoJiYodGhpcy5jdXJyZW50QWxlcnR8fCh0aGlzLl9j''@;'; put 'put ''dXJyZW50PTApLHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpKX1jbG9zZShoKXswIT09dGhpcy5hY3RpdmVBbGVydHMubGVuZ3RoJiYoaCYmKHRoaXMuX2N1cnJlbnQ9TWF0aC5tYXgoMCx0aGlzLmN1cnJlbnQtMSkpLHRoaXMuX2NoYW5nZS5uZXh0KHRoaXMuX2N1cnJlbnQpKX1k''@;'; put 'put ''ZXN0cm95KCl7dGhpcy5zdWJzY3JpcHRpb24mJnRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLHBa''@;'; put 'put ''PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5pY29uU2VydmljZT1oLHRoaXMuY2RyPXYsdGhpcy5tdWx0aUFsZXJ0U2VydmljZT15LHRoaXMuY29tbW9uU3RyaW5ncz1DLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmlzU21hbGw9ITEsdGhpcy5jbG9zYWJsZT0h''@;'; put 'put ''MCx0aGlzLmlzQXBwTGV2ZWw9ITEsdGhpcy5jbHJDbG9zZUJ1dHRvbkFyaWFMYWJlbD10aGlzLmNvbW1vblN0cmluZ3Mua2V5cy5hbGVydENsb3NlQnV0dG9uQXJpYUxhYmVsLHRoaXMuX2Nsb3NlZD0hMSx0aGlzLl9jbG9zZWRDaGFuZ2VkPW5ldyBhcighMSl9bmdPbkluaXQoKXt0aGlzLm11''@;'; put 'put ''bHRpQWxlcnRTZXJ2aWNlJiZ0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNoYW5nZXMuc3Vic2NyaWJlKCgpPT57dGhpcy5oaWRkZW49dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnQhPT10aGlzfSkpfW5nT25EZXN0cm95KCl7dGhpcy5z''@;'; put 'put ''dWJzY3JpcHRpb25zLmZvckVhY2goaD0+aC51bnN1YnNjcmliZSgpKX1zZXQgY2xvc2VkKGgpe2gmJiF0aGlzLl9jbG9zZWQ/dGhpcy5jbG9zZSgpOiFoJiZ0aGlzLl9jbG9zZWQmJnRoaXMub3BlbigpfXNldCBhbGVydFR5cGUoaCl7dGhpcy5pY29uU2VydmljZS5hbGVydFR5cGU9aH1nZXQg''@;'; put 'put ''YWxlcnRUeXBlKCl7cmV0dXJuIHRoaXMuaWNvblNlcnZpY2UuYWxlcnRUeXBlfXNldCBhbGVydEljb25TaGFwZShoKXt0aGlzLmljb25TZXJ2aWNlLmFsZXJ0SWNvblNoYXBlPWh9Z2V0IGFsZXJ0Q2xhc3MoKXtyZXR1cm4gdGhpcy5pY29uU2VydmljZS5pY29uSW5mb0Zyb21UeXBlKHRoaXMu''@;'; put 'put ''aWNvblNlcnZpY2UuYWxlcnRUeXBlKS5jc3NDbGFzc31zZXQgaGlkZGVuKGgpe2ghPT10aGlzLl9oaWRkZW4mJih0aGlzLl9oaWRkZW49aCx0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCkpfWdldCBoaWRkZW4oKXtyZXR1cm4gdGhpcy5faGlkZGVufWNsb3NlKCl7dmFyIGg7aWYoIXRoaXMuY2xv''@;'; put 'put ''c2FibGUpcmV0dXJuO2NvbnN0IHY9KG51bGw9PT0oaD10aGlzLm11bHRpQWxlcnRTZXJ2aWNlKXx8dm9pZCAwPT09aD92b2lkIDA6aC5jdXJyZW50QWxlcnQpPT09dGhpczt0aGlzLl9jbG9zZWQ9ITAsdGhpcy5tdWx0aUFsZXJ0U2VydmljZSYmdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jbG9z''@;'; put 'put ''ZSh2KSx0aGlzLl9jbG9zZWRDaGFuZ2VkLmVtaXQoITApfW9wZW4oKXt0aGlzLl9jbG9zZWQ9ITEsdGhpcy5tdWx0aUFsZXJ0U2VydmljZSYmdGhpcy5tdWx0aUFsZXJ0U2VydmljZS5vcGVuKCksdGhpcy5fY2xvc2VkQ2hhbmdlZC5lbWl0KCExKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoaWhlKSxLdChkMSksS3QoQ3EsOCksS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLWFsZXJ0Il1dLGlucHV0czp7aXNTbWFsbDpbImNsckFsZXJ0U2l6ZVNtYWxsIiwiaXNTbWFsbCJdLGNsb3NhYmxlOlsi''@;'; put 'put ''Y2xyQWxlcnRDbG9zYWJsZSIsImNsb3NhYmxlIl0saXNBcHBMZXZlbDpbImNsckFsZXJ0QXBwTGV2ZWwiLCJpc0FwcExldmVsIl0sY2xyQ2xvc2VCdXR0b25BcmlhTGFiZWw6ImNsckNsb3NlQnV0dG9uQXJpYUxhYmVsIixjbG9zZWQ6WyJjbHJBbGVydENsb3NlZCIsImNsb3NlZCJdLGFsZXJ0''@;'; put 'put ''VHlwZTpbImNsckFsZXJ0VHlwZSIsImFsZXJ0VHlwZSJdLGFsZXJ0SWNvblNoYXBlOlsiY2xyQWxlcnRJY29uIiwiYWxlcnRJY29uU2hhcGUiXX0sb3V0cHV0czp7X2Nsb3NlZENoYW5nZWQ6ImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtpaGVdKV0sbmdDb250ZW50U2Vs''@;'; put 'put ''ZWN0b3JzOm5hLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWyJjbGFzcyIsImFsZXJ0IiwzLCJuZ0NsYXNzIiwiYWxlcnQtaGlkZGVuIiwiYWxlcnQtc20iLCJhbGVydC1hcHAtbGV2ZWwiLDQsIm5nSWYiXSxbMSwiYWxlcnQiLDMsIm5nQ2xhc3MiXSxbMSwiYWxlcnQtaXRlbXMiXSxbInR5cGUi''@;'; put 'put ''LCJidXR0b24iLCJjbGFzcyIsImNsb3NlIiwzLCJjbGljayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2xvc2UiLDMsImNsaWNrIl0sWyJzaGFwZSIsIndpbmRvdy1jbG9zZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscm4oMCxCZiw0LDgsImRpdiIsMCkp''@;'; put 'put ''LDImaCYmVHQoIm5nSWYiLCF2Ll9jbG9zZWQpfSxkZXBlbmRlbmNpZXM6W05vLGxjLFpvXSxzdHlsZXM6WyJbX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9Il19KSxkfSkoKSxTeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmljb25TZXJ2aWNlPWh9fXJldHVybiBk''@;'; put 'put ''Llx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGloZSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWxlcnQtaXRlbSJdXSxob3N0QXR0cnM6WzEsImFsZXJ0LWl0ZW0iXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6Myx2YXJz''@;'; put 'put ''OjIsY29uc3RzOltbMSwiYWxlcnQtaWNvbi13cmFwcGVyIl0sWyJyb2xlIiwiaW1nIiwxLCJhbGVydC1pY29uIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxudCgwLCJkaXYiLDApLENyKDEsImNkcy1pY29uIiwxKSxvdCgpLE5pKDIpKSwyJmgmJih1dCgxKSxHaSgic2hh''@;'; put 'put ''cGUiLHYuaWNvblNlcnZpY2UuYWxlcnRJY29uU2hhcGUpKCJhcmlhLWxhYmVsIix2Lmljb25TZXJ2aWNlLmFsZXJ0SWNvblRpdGxlKSl9LGRlcGVuZGVuY2llczpbWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGdaPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlv''@;'; put 'put ''bihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLDgsImFsZXJ0LXRleHQiXV19KSxkfSkoKSxNeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMubXVsdGlBbGVydFNlcnZpY2U9aCx0aGlzLmNvbW1vblN0cmluZ3M9''@;'; put 'put ''dix0aGlzLmN1cnJlbnRBbGVydENoYW5nZT1uZXcgYXIoITEpLHRoaXMuY3VycmVudEFsZXJ0SW5kZXhDaGFuZ2U9bmV3IGFyfXNldCBjdXJyZW50QWxlcnQoaCl7aCYmKHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0PWgpfWdldCBjdXJyZW50QWxlcnQoKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50QWxlcnR9c2V0IGN1cnJlbnRBbGVydEluZGV4KGgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudD1ofWdldCBjdXJyZW50QWxlcnRJbmRleCgpe3JldHVybiB0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnR9bmdPbkluaXQoKXt0''@;'; put 'put ''aGlzLm11bHRpQWxlcnRTZXJ2aWNlQ2hhbmdlcz10aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNoYW5nZXMuc3Vic2NyaWJlKGg9Pnt0aGlzLmN1cnJlbnRBbGVydEluZGV4Q2hhbmdlLmVtaXQoaCksdGhpcy5jdXJyZW50QWxlcnRDaGFuZ2UuZW1pdCh0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmFj''@;'; put 'put ''dGl2ZUFsZXJ0c1toXSl9KX1wYWdlVXAoKXt0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLm5leHQoKX1wYWdlRG93bigpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UucHJldmlvdXMoKX1uZ09uRGVzdHJveSgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2VDaGFuZ2VzLnVuc3Vic2NyaWJlKCl9fXJldHVy''@;'; put 'put ''biBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KENxKSxLdChucykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWxlcnRzLXBhZ2VyIl1dLGhvc3RWYXJzOjIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgiYWxl''@;'; put 'put ''cnRzLXBhZ2VyIiwhMCl9LGlucHV0czp7Y3VycmVudEFsZXJ0OlsiY2xyQ3VycmVudEFsZXJ0IiwiY3VycmVudEFsZXJ0Il0sY3VycmVudEFsZXJ0SW5kZXg6WyJjbHJDdXJyZW50QWxlcnRJbmRleCIsImN1cnJlbnRBbGVydEluZGV4Il19LG91dHB1dHM6e2N1cnJlbnRBbGVydENoYW5nZToi''@;'; put 'put ''Y2xyQ3VycmVudEFsZXJ0Q2hhbmdlIixjdXJyZW50QWxlcnRJbmRleENoYW5nZToiY2xyQ3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UifSxkZWNsczo5LHZhcnM6NCxjb25zdHM6W1sxLCJhbGVydHMtcGFnZXItY29udHJvbCJdLFsxLCJhbGVydHMtcGFnZS1kb3duIl0sWzEsImFsZXJ0cy1wYWdl''@;'; put 'put ''ci1idXR0b24iLDMsImNsaWNrIl0sWyJzaGFwZSIsImFuZ2xlIiwiZGlyZWN0aW9uIiwibGVmdCJdLFsxLCJhbGVydHMtcGFnZXItdGV4dCJdLFsxLCJhbGVydHMtcGFnZS11cCJdLFsic2hhcGUiLCJhbmdsZSIsImRpcmVjdGlvbiIsInJpZ2h0Il1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7''@;'; put 'put ''MSZoJiYobnQoMCwiZGl2IiwwKSgxLCJkaXYiLDEpKDIsImJ1dHRvbiIsMiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnBhZ2VEb3duKCl9KSxDcigzLCJjZHMtaWNvbiIsMyksb3QoKSgpLG50KDQsImRpdiIsNCksWXQoNSksb3QoKSxudCg2LCJkaXYiLDUpKDcsImJ1dHRvbiIs''@;'; put 'put ''MiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnBhZ2VVcCgpfSksQ3IoOCwiY2RzLWljb24iLDYpLG90KCkoKSgpKSwyJmgmJih1dCgzKSxHaSgidGl0bGUiLHYuY29tbW9uU3RyaW5ncy5rZXlzLnByZXZpb3VzKSx1dCgyKSxGaCgiIix2Lm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJl''@;'; put 'put ''bnQrMSwiIC8gIix2Lm11bHRpQWxlcnRTZXJ2aWNlLmNvdW50LCIiKSx1dCgzKSxHaSgidGl0bGUiLHYuY29tbW9uU3RyaW5ncy5rZXlzLm5leHQpKX0sZGVwZW5kZW5jaWVzOltab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksRXllPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCl7dGhp''@;'; put 'put ''cy5tdWx0aUFsZXJ0U2VydmljZT1oLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLmN1cnJlbnRBbGVydEluZGV4Q2hhbmdlPW5ldyBhcighMSksdGhpcy5jdXJyZW50QWxlcnRDaGFuZ2U9bmV3IGFyKCExKX1zZXQgYWxsQWxlcnRzKGgpe3RoaXMubXVsdGlBbGVydFNlcnZpY2UubWFuYWdl''@;'; put 'put ''KGgpfXNldCBfaW5wdXRDdXJyZW50SW5kZXgoaCl7TnVtYmVyLmlzSW50ZWdlcihoKSYmaD49MCYmKHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudD1oKX1zZXQgY3VycmVudEFsZXJ0SW5kZXgoaCl7dGhpcy5tdWx0aUFsZXJ0U2VydmljZS5jdXJyZW50PWh9Z2V0IGN1cnJlbnRBbGVy''@;'; put 'put ''dEluZGV4KCl7cmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudH1zZXQgY3VycmVudEFsZXJ0KGgpe2gmJih0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydD1oKX1nZXQgY3VycmVudEFsZXJ0KCl7cmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVu''@;'; put 'put ''dEFsZXJ0fWdldCBhbGVydHMoKXtyZXR1cm4gdGhpcy5hbGxBbGVydHMuZmlsdGVyKGg9PiExPT09aC5oaWRkZW4pfWdldCBjdXJyZW50QWxlcnRUeXBlKCl7cmV0dXJuIHRoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFsZXJ0P3RoaXMubXVsdGlBbGVydFNlcnZpY2UuY3VycmVudEFs''@;'; put 'put ''ZXJ0LmFsZXJ0VHlwZToiIn1uZ0FmdGVyQ29udGVudEluaXQoKXt0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmNoYW5nZXMuc3Vic2NyaWJlKGg9Pnt0aGlzLmN1cnJlbnRBbGVydEluZGV4Q2hhbmdlLm5leHQoaCksdGhpcy5jdXJyZW50QWxlcnRDaGFu''@;'; put 'put ''Z2UubmV4dCh0aGlzLm11bHRpQWxlcnRTZXJ2aWNlLmN1cnJlbnRBbGVydCl9KSl9bmdPbkRlc3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT5oLnVuc3Vic2NyaWJlKCkpLHRoaXMubXVsdGlBbGVydFNlcnZpY2UuZGVzdHJveSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVu''@;'; put 'put ''Y3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChDcSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItYWxlcnRzIl1dLGNvbnRlbnRRdWVyaWVzOmZ1bmN0aW9uKGgsdix5KXtpZigxJmgmJnhvKHkscFosNCksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi5hbGxB''@;'; put 'put ''bGVydHM9Qyl9fSxob3N0VmFyczoxMCxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJhbGVydHMiLCEwKSgiYWxlcnQtZGFuZ2VyIiwiZGFuZ2VyIj09di5jdXJyZW50QWxlcnRUeXBlKSgiYWxlcnQtaW5mbyIsImluZm8iPT12LmN1cnJlbnRBbGVydFR5cGUpKCJhbGVydC1z''@;'; put 'put ''dWNjZXNzIiwic3VjY2VzcyI9PXYuY3VycmVudEFsZXJ0VHlwZSkoImFsZXJ0LXdhcm5pbmciLCJ3YXJuaW5nIj09di5jdXJyZW50QWxlcnRUeXBlKX0saW5wdXRzOntfaW5wdXRDdXJyZW50SW5kZXg6WyJjbHJDdXJyZW50QWxlcnRJbmRleCIsIl9pbnB1dEN1cnJlbnRJbmRleCJdLGN1cnJl''@;'; put 'put ''bnRBbGVydDpbImNsckN1cnJlbnRBbGVydCIsImN1cnJlbnRBbGVydCJdfSxvdXRwdXRzOntjdXJyZW50QWxlcnRJbmRleENoYW5nZToiY2xyQ3VycmVudEFsZXJ0SW5kZXhDaGFuZ2UiLGN1cnJlbnRBbGVydENoYW5nZToiY2xyQ3VycmVudEFsZXJ0Q2hhbmdlIn0sZmVhdHVyZXM6W2hvKFtD''@;'; put 'put ''cV0pXSxuZ0NvbnRlbnRTZWxlY3RvcnM6RiQsZGVjbHM6Mix2YXJzOjEsY29uc3RzOltbMywiY2xyQ3VycmVudEFsZXJ0SW5kZXgiLDQsIm5nSWYiXSxbMywiY2xyQ3VycmVudEFsZXJ0SW5kZXgiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMChFTCkscm4oMCxmaCwxLDEsImNs''@;'; put 'put ''ci1hbGVydHMtcGFnZXIiLDApLE5pKDEpKSwyJmgmJlR0KCJuZ0lmIix2Lm11bHRpQWxlcnRTZXJ2aWNlLmNvdW50PjEpfSxkZXBlbmRlbmNpZXM6W015ZSxOb10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmJsb2NrfSJdfSksZH0pKCkseHllPSgoKT0+e2NsYXNzIGR7Y29u''@;'; put 'put ''c3RydWN0b3IoKXtocy5hZGRJY29ucyhUZixtWCxLaCxqc2UsU2spfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsRHMscmhlXV19KSxkfSkoKSxhUmU9''@;'; put 'put ''KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbeHllXX0pLGR9KSgpLHFzPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLk5BVl9MRVZFTF8x''@;'; put 'put ''PTEsZC5OQVZfTEVWRUxfMj0yLGQuTkFWX0NMT1NFX0FMTD0iTkFWX0NMT1NFX0FMTCIsZC5OQVZfT1BFTj0iTkFWX09QRU4iLGQuTkFWX0NMT1NFPSJOQVZfQ0xPU0UiLGQuTkFWX1RPR0dMRT0iTkFWX1RPR0dMRSIsZC5OQVZfQ0xBU1NfSEFNQlVSR0VSX01FTlU9Im9wZW4taGFtYnVyZ2Vy''@;'; put 'put ''LW1lbnUiLGQuTkFWX0NMQVNTX09WRVJGTE9XX01FTlU9Im9wZW4tb3ZlcmZsb3ctbWVudSIsZC5OQVZfQ0xBU1NfVFJJR0dFUl8xPSJoZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIiLGQuTkFWX0NMQVNTX1RSSUdHRVJfMj0iaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIiLGQuTkFWX0NMQVNTX0xF''@;'; put 'put ''VkVMXzE9ImNsci1uYXYtbGV2ZWwtMSIsZC5OQVZfQ0xBU1NfTEVWRUxfMj0iY2xyLW5hdi1sZXZlbC0yIixkfSkoKTtjbGFzcyBUeWV7Y29uc3RydWN0b3IoZyxoKXt0aGlzLl9jb250cm9sQ29kZT1nLHRoaXMuX25hdkxldmVsPWh9Z2V0IGNvbnRyb2xDb2RlKCl7cmV0dXJuIHRoaXMuX2Nv''@;'; put 'put ''bnRyb2xDb2RlfWdldCBuYXZMZXZlbCgpe3JldHVybiB0aGlzLl9uYXZMZXZlbH19bGV0IGtxPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLnJlc3BvbnNpdmVOYXZMaXN0PVtdLHRoaXMucmVnaXN0ZXJOYXZTdWJqZWN0PW5ldyB4ayx0aGlzLmNvbnRyb2xOYXZTdWJqZWN0PW5l''@;'; put 'put ''dyAkZSx0aGlzLmNsb3NlQWxsTmF2cygpfWdldCByZWdpc3RlcmVkTmF2cygpe3JldHVybiB0aGlzLnJlZ2lzdGVyTmF2U3ViamVjdC5hc09ic2VydmFibGUoKX1nZXQgbmF2Q29udHJvbCgpe3JldHVybiB0aGlzLmNvbnRyb2xOYXZTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpfXJlZ2lzdGVyTmF2''@;'; put 'put ''KGgpeyFofHx0aGlzLmlzTmF2UmVnaXN0ZXJlZChoKXx8KHRoaXMucmVzcG9uc2l2ZU5hdkxpc3QucHVzaChoKSx0aGlzLnJlZ2lzdGVyTmF2U3ViamVjdC5uZXh0KHRoaXMucmVzcG9uc2l2ZU5hdkxpc3QpKX1pc05hdlJlZ2lzdGVyZWQoaCl7cmV0dXJuIHRoaXMucmVzcG9uc2l2ZU5hdkxp''@;'; put 'put ''c3QuaW5kZXhPZihoKT4tMSYmKGNvbnNvbGUuZXJyb3IoIk11bHRpcGxlIGNsci1uYXYtbGV2ZWwgIitoKyIgYXR0cmlidXRlcyBmb3VuZC4gUGxlYXNlIG1ha2Ugc3VyZSB0aGF0IG9ubHkgb25lIGV4aXN0cyIpLCEwKX11bnJlZ2lzdGVyTmF2KGgpe2NvbnN0IHY9dGhpcy5yZXNwb25zaXZl''@;'; put 'put ''TmF2TGlzdC5pbmRleE9mKGgpO3Y+LTEmJih0aGlzLnJlc3BvbnNpdmVOYXZMaXN0LnNwbGljZSh2LDEpLHRoaXMucmVnaXN0ZXJOYXZTdWJqZWN0Lm5leHQodGhpcy5yZXNwb25zaXZlTmF2TGlzdCkpfXNlbmRDb250cm9sTWVzc2FnZShoLHYpe2NvbnN0IHk9bmV3IFR5ZShoLHYpO3RoaXMu''@;'; put 'put ''Y29udHJvbE5hdlN1YmplY3QubmV4dCh5KX1jbG9zZUFsbE5hdnMoKXtjb25zdCBoPW5ldyBUeWUocXMuTkFWX0NMT1NFX0FMTCwtOTk5KTt0aGlzLmNvbnRyb2xOYXZTdWJqZWN0Lm5leHQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1''@;'; put 'put ''MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpLGxSZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUw''@;'; put 'put ''Mjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsRHNdXX0pLGR9KSgpO2Z1bmN0aW9uIER5ZShkKXtjb25zdCBnPWQuY3JlYXRlRWxlbWVudCgic3BhbiIpO3JldHVybiBnLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksZy5jbGFzc0xpc3QuYWRkKCJvZmZzY3JlZW4tZm9jdXMtcmVib3VuZGVy''@;'; put 'put ''IiksZ31sZXQgZ1JlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5yZW5kZXJlcj1oLHRoaXMuYWN0aXZlPSExLFNsKHkpJiYodGhpcy5fZG9jdW1lbnQ9di5nZXQoZ3MpKSxDLmZvY3VzVHJhcElkfHwoQy5mb2N1c1RyYXBJZD1mdW5jdGlvbiBZSihkPSJfIil7cmV0''@;'; put 'put ''dXJuYCR7ZH0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLDkpfWB9KCkpLHRoaXMuZm9jdXNUcmFwRWxlbWVudD1DfWVuYWJsZUZvY3VzVHJhcCgpe2NvbnN0IGg9dGhpcy5mb2N1c1RyYXBFbGVtZW50LHY9aC5xdWVyeVNlbGVjdG9yKCJbY2RzLWZpcnN0LWZvY3VzXSIp''@;'; put 'put ''LHk9dGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihyTC5nZXRDdXJyZW50KCk9PT1oKXRocm93IG5ldyBFcnJvcigiRm9jdXMgdHJhcCBpcyBhbHJlYWR5IGVuYWJsZWQgZm9yIHRoaXMgaW5zdGFuY2UuIik7dGhpcy5maXJzdEZvY3VzRWxlbWVudD12fHx0aGlzLmZvY3VzVHJhcEVs''@;'; put 'put ''ZW1lbnQsZnVuY3Rpb24gZFJlKGQsZyl7aWYoZyYmIWcudG9wUmVib3VuZEVsZW1lbnQmJiFnLmJvdHRvbVJlYm91bmRFbGVtZW50KXtnLnRvcFJlYm91bmRFbGVtZW50PUR5ZShkKSxnLmJvdHRvbVJlYm91bmRFbGVtZW50PUR5ZShkKTtjb25zdCBoPWcucGFyZW50RWxlbWVudCx2PWcubmV4''@;'; put 'put ''dFNpYmxpbmc7aCYmKGguaW5zZXJ0QmVmb3JlKGcudG9wUmVib3VuZEVsZW1lbnQsZyksdj9oLmluc2VydEJlZm9yZShnLmJvdHRvbVJlYm91bmRFbGVtZW50LHYpOmguYXBwZW5kQ2hpbGQoZy5ib3R0b21SZWJvdW5kRWxlbWVudCkpfX0odGhpcy5fZG9jdW1lbnQsaCksZnVuY3Rpb24gcjFl''@;'; put 'put ''KGQpe3N3aXRjaChkLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl7Y2FzZSJpbnB1dCI6cmV0dXJuImhpZGRlbiIhPT1kLmdldEF0dHJpYnV0ZSgidHlwZSIpJiYhZC5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIikmJiFkLmhhc0F0dHJpYnV0ZSgicmVhZG9ubHkiKTtjYXNlImJ1dHRvbiI6Y2FzZSJz''@;'; put 'put ''ZWxlY3QiOmNhc2UidGV4dGFyZWEiOnJldHVybiFkLmhhc0F0dHJpYnV0ZSgiZGlzYWJsZWQiKTtjYXNlImlmcmFtZSI6Y2FzZSJlbWJlZCI6Y2FzZSJvYmplY3QiOnJldHVybiEwO2Nhc2UiYSI6Y2FzZSJhcmVhIjpyZXR1cm4gZC5oYXNBdHRyaWJ1dGUoImhyZWYiKTtjYXNlImF1ZGlvIjpj''@;'; put 'put ''YXNlInZpZGVvIjpyZXR1cm4gZC5oYXNBdHRyaWJ1dGUoImNvbnRyb2xzIik7ZGVmYXVsdDpyZXR1cm4gZC5oYXNBdHRyaWJ1dGUoInRhYmluZGV4Iil8fCJ0cnVlIj09PWQuZ2V0QXR0cmlidXRlKCJjb250ZW50ZWRpdGFibGUiKXx8ImJ1dHRvbiI9PT1kLmdldEF0dHJpYnV0ZSgicm9sZSIp''@;'; put 'put ''JiYhZC5oYXNBdHRyaWJ1dGUoImRpc2FibGVkIil9fShoKXx8aC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiLTEiKSx5JiZmdW5jdGlvbiBsMWUoZCl7cmV0dXJuISFkJiZkIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR9KHkpJiYodGhpcy5wcmV2aW91c0ZvY3VzPXkpLHJMLnNldEN1cnJlbnQo''@;'; put 'put ''aCk7Y29uc3QgQz1zZXRUaW1lb3V0KCgpPT57dGhpcy5maXJzdEZvY3VzRWxlbWVudC5mb2N1cygpLGNsZWFyVGltZW91dChDKX0sMTApO3RoaXMub25Gb2N1c0luRXZlbnQ9dGhpcy5vbkZvY3VzSW4uYmluZCh0aGlzKSx0aGlzLnVubGlzdGVuPXRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMu''@;'; put 'put ''X2RvY3VtZW50LCJmb2N1c2luIix0aGlzLm9uRm9jdXNJbkV2ZW50KSx0aGlzLmFjdGl2ZT0hMH1yZW1vdmVGb2N1c1RyYXAoKXt0aGlzLnVubGlzdGVuJiZ0aGlzLnVubGlzdGVuKCksZnVuY3Rpb24gcFJlKGQpe2lmKGQpe2NvbnN0IGc9ZC5wYXJlbnRFbGVtZW50O2lmKGcpe2NvbnN0IGg9''@;'; put 'put ''ZC50b3BSZWJvdW5kRWxlbWVudCx2PWQuYm90dG9tUmVib3VuZEVsZW1lbnQ7aCYmZy5yZW1vdmVDaGlsZChoKSx2JiZnLnJlbW92ZUNoaWxkKHYpfWRlbGV0ZSBkLnRvcFJlYm91bmRFbGVtZW50LGRlbGV0ZSBkLmJvdHRvbVJlYm91bmRFbGVtZW50fX0odGhpcy5mb2N1c1RyYXBFbGVtZW50''@;'; put 'put ''KSx0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmZvY3VzVHJhcEVsZW1lbnQsInRhYmluZGV4IiksckwuYWN0aXZhdGVQcmV2aW91c0N1cnJlbnQoKSx0aGlzLmFjdGl2ZT0hMSx0aGlzLnByZXZpb3VzRm9jdXMmJnRoaXMucHJldmlvdXNGb2N1cy5mb2N1cygpfW9uRm9jdXNJ''@;'; put 'put ''bihoKXshZnVuY3Rpb24gZlJlKGQsZyxoKXtjb25zdCB2PXJMLmdldEN1cnJlbnQoKT09PWcseT1mdW5jdGlvbiBoUmUoZCxnKXtyZXR1cm4gZD09PWcudG9wUmVib3VuZEVsZW1lbnR8fGQ9PT1nLmJvdHRvbVJlYm91bmRFbGVtZW50fHwhKGcuY29udGFpbnMoZCl8fG51bGwhPT1nJiZnLmNv''@;'; put 'put ''bnRhaW5zKGQpKX0oZCxnKTt2JiZ5PyhoPWh8fGcpLmZvY3VzKCk6ZC5mb2N1cygpfShoLmNvbXBvc2VkUGF0aCgpWzBdLHRoaXMuZm9jdXNUcmFwRWxlbWVudCx0aGlzLmZpcnN0Rm9jdXNFbGVtZW50KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe0s5KCl9LGQuXHUwMjc1cHJv''@;'; put 'put ''dj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksTHllPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBnUmV7Y29uc3RydWN0b3IoaCx2LHksQyxJKXtzdXBlcihDLEksaCx5Lm5hdGl2ZUVsZW1lbnQpLHRoaXMucmVzcG9uc2l2ZU5hdlNlcnZpY2U9dix0aGlzLmVsZW1lbnRS''@;'; put 'put ''ZWY9eSx0aGlzLl9pc09wZW49ITEsU2woaCkmJih0aGlzLl9kb2N1bWVudD1JLmdldChncykpLHRoaXMuX3N1YnNjcmlwdGlvbj12Lm5hdkNvbnRyb2wucGlwZShPMihaPT5aLm5hdkxldmVsPT09dGhpcy5sZXZlbCksTzIoKHtjb250cm9sQ29kZTpafSk9Plo9PT1xcy5OQVZfT1BFTiYmIXRo''@;'; put 'put ''aXMuaXNPcGVufHxaPT09cXMuTkFWX0NMT1NFJiZ0aGlzLmlzT3BlbikpLnN1YnNjcmliZSgoe2NvbnRyb2xDb2RlOlp9KT0+e1ohPT1xcy5OQVZfT1BFTj90aGlzLmNsb3NlKCk6dGhpcy5vcGVuKCl9KSx0aGlzLl9zdWJzY3JpcHRpb24uYWRkKHYubmF2Q29udHJvbC5waXBlKE8yKCh7Y29u''@;'; put 'put ''dHJvbENvZGU6Wn0pPT5aPT09cXMuTkFWX0NMT1NFX0FMTCkpLnN1YnNjcmliZSgoKT0+dGhpcy5jbG9zZSgpKSl9bmdPbkluaXQoKXt0aGlzLmNsb3NlQnV0dG9uQXJpYUxhYmVsfHwodGhpcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbD10aGlzLl9sZXZlbD09PXFzLk5BVl9MRVZFTF8xP1VqLnJl''@;'; put 'put ''c3BvbnNpdmVOYXZUb2dnbGVDbG9zZTpVai5yZXNwb25zaXZlTmF2T3ZlcmZsb3dDbG9zZSksdGhpcy5sZXZlbD09PXFzLk5BVl9MRVZFTF8xfHx0aGlzLmxldmVsPT09cXMuTkFWX0xFVkVMXzI/KHRoaXMucmVzcG9uc2l2ZU5hdlNlcnZpY2UucmVnaXN0ZXJOYXYodGhpcy5sZXZlbCksdGhp''@;'; put 'put ''cy5hZGROYXZDbGFzcyh0aGlzLmxldmVsKSk6Y29uc29sZS5lcnJvcigiTmF2IExldmVsIGNhbiBvbmx5IGJlIDEgb3IgMiIpfW5nQWZ0ZXJWaWV3SW5pdCgpe2NvbnN0IGg9KChkLGcpPT57Y29uc3QgaD10aGlzLl9kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjZHMtaW50ZXJuYWwtY2xvc2Ut''@;'; put 'put ''YnV0dG9uIik7cmV0dXJuIGguc2V0QXR0cmlidXRlKCJpY29uLXNpemUiLCIzMiIpLGguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixnKSxoLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksaC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJidXR0b24iKSxoLnNldEF0dHJpYnV0ZSgi''@;'; put 'put ''aGlkZGVuIiwidHJ1ZSIpLGguY2xhc3NOYW1lPSJjbHItbmF2LWNsb3NlIixofSkoMCx0aGlzLmNsb3NlQnV0dG9uQXJpYUxhYmVsKTt0aGlzLnJlbmRlcmVyLmxpc3RlbihoLCJjbGljayIsdGhpcy5jbG9zZS5iaW5kKHRoaXMpKSx0aGlzLnJlbmRlcmVyLmluc2VydEJlZm9yZSh0aGlzLmVs''@;'; put 'put ''ZW1lbnRSZWYubmF0aXZlRWxlbWVudCxoLHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZpcnN0Q2hpbGQpLHRoaXMuX2RvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg8OTkyJiZ0aGlzLmNsb3NlKCl9YWRkTmF2Q2xhc3MoaCl7Y29uc3Qgdj10aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxl''@;'; put 'put ''bWVudC5jbGFzc0xpc3Q7aD09PXFzLk5BVl9MRVZFTF8xP3YuYWRkKHFzLk5BVl9DTEFTU19MRVZFTF8xKTpoPT09cXMuTkFWX0xFVkVMXzImJnYuYWRkKHFzLk5BVl9DTEFTU19MRVZFTF8yKX1nZXQgbGV2ZWwoKXtyZXR1cm4gdGhpcy5fbGV2ZWx9Z2V0IHJlc3BvbnNpdmVOYXZDb2Rlcygp''@;'; put 'put ''e3JldHVybiBxc31nZXQgaXNPcGVuKCl7cmV0dXJuIHRoaXMuX2lzT3Blbn1vblJlc2l6ZShoKXtoLnRhcmdldC5pbm5lcldpZHRoPDk5MiYmdGhpcy5pc09wZW4/dGhpcy5jbG9zZSgpOnRoaXMuc2hvd05hdmlnYXRpb24oKX1vcGVuKCl7dGhpcy5faXNPcGVuPSEwLHRoaXMuc2hvd05hdmln''@;'; put 'put ''YXRpb24oKSx0aGlzLmVuYWJsZUZvY3VzVHJhcCgpLHRoaXMuc2hvd0Nsb3NlQnV0dG9uKCksdGhpcy5yZXNwb25zaXZlTmF2U2VydmljZS5zZW5kQ29udHJvbE1lc3NhZ2UocXMuTkFWX09QRU4sdGhpcy5sZXZlbCl9Y2xvc2UoKXt0aGlzLl9pc09wZW49ITEsdGhpcy5oaWRlTmF2aWdhdGlv''@;'; put 'put ''bigpLHRoaXMucmVtb3ZlRm9jdXNUcmFwKCksdGhpcy5oaWRlQ2xvc2VCdXR0b24oKSx0aGlzLnJlc3BvbnNpdmVOYXZTZXJ2aWNlLnNlbmRDb250cm9sTWVzc2FnZShxcy5OQVZfQ0xPU0UsdGhpcy5sZXZlbCl9b25Nb3VzZUNsaWNrKGgpe2xldCB2PWg7Y29uc3QgeT10aGlzLmVsZW1lbnRS''@;'; put 'put ''ZWYubmF0aXZlRWxlbWVudDtmb3IoO3Y7KXtpZih2PT09eSlyZXR1cm47aWYodi5jbGFzc0xpc3QuY29udGFpbnMoIm5hdi1saW5rIikmJnRoaXMuX2RvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg8OTkyKXJldHVybiB2b2lkIHRoaXMuY2xvc2UoKTt2PXYucGFyZW50Tm9kZX19aGlkZU5hdmln''@;'; put 'put ''YXRpb24oKXt0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwiYXJpYS1oaWRkZW4iLCJ0cnVlIiksdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsImhpZGRlbiIsInRydWUiKX1zaG93''@;'; put 'put ''TmF2aWdhdGlvbigpe3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCJhcmlhLWhpZGRlbiIsImZhbHNlIiksdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsImhpZGRlbiIpfWhp''@;'; put 'put ''ZGVDbG9zZUJ1dHRvbigpe3RoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCJhcmlhLWhpZGRlbiIsInRydWUiKSx0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9y''@;'; put 'put ''KCIuY2xyLW5hdi1jbG9zZSIpLCJoaWRkZW4iLCJ0cnVlIil9c2hvd0Nsb3NlQnV0dG9uKCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmNsci1uYXYtY2xvc2UiKSwiYXJpYS1oaWRkZW4iLCJmYWxzZSIp''@;'; put 'put ''LHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jbHItbmF2LWNsb3NlIiksImhpZGRlbiIpfW5nT25EZXN0cm95KCl7dGhpcy5yZXNwb25zaXZlTmF2U2VydmljZS51bnJlZ2lzdGVyTmF2KHRoaXMubGV2''@;'; put 'put ''ZWwpLHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChMMiksS3Qoa3EpLEt0KGJvKSxLdChHYSksS3QoU3MpKX0sZC5cdTAyNzVkaXI9V2koe3R5cGU6ZCxzZWxlY3RvcnM6W1siIiwiY2xy''@;'; put 'put ''LW5hdi1sZXZlbCIsIiJdXSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJyZXNpemUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uUmVzaXplKEMpfSwwLExiKSgiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uTW91c2VDbGljayhDLnRhcmdldCl9KX0saW5wdXRzOntf''@;'; put 'put ''bGV2ZWw6WyJjbHItbmF2LWxldmVsIiwiX2xldmVsIl0sY2xvc2VCdXR0b25BcmlhTGFiZWw6WyJjbG9zZUFyaWFMYWJlbCIsImNsb3NlQnV0dG9uQXJpYUxhYmVsIl19LGZlYXR1cmVzOltEb119KSxkfSkoKSx2UmU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLERzLHJoZV1dfSksZH0pKCksT3llPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1''@;'; put 'put ''MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhxciw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnRlbXBsYXRlPXkuZmlyc3QpfX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEs''@;'; put 'put ''dmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLGpqLDEsMCwibmctdGVtcGxhdGUiKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLEFSZT0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5c''@;'; put 'put ''dTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpLFhMPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBhd3t9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKCl7bGV0IGc7cmV0dXJuIGZ1bmN0aW9uKHYpe3JldHVybihnfHwoZz1mbChkKSkp''@;'; put 'put ''KHZ8fGQpfX0oKSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItdGFicyJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCksbVo9KCgpPT57Y2xhc3MgZCBleHRlbmRzIGx3e2NvbnN0cnVjdG9yKGgsdix5LEMpe2lmKCF2KXRocm93IG5ldyBFcnJvcigiY2xyVGFiTGluayBh''@;'; put 'put ''bmQgY2xyLXRhYi1jb250ZW50IHNob3VsZCBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyLXRhYnMiKTtzdXBlcihoLHYpLHRoaXMuaWZBY3RpdmU9Qyx0aGlzLmlkPXl9Z2V0IGZsYXZvcigpe3JldHVybiB0aGlzLmlmQWN0aXZlLmN1cnJlbnQ9PT10aGlzLmlkfX1yZXR1cm4gZC5cdTAy''@;'; put 'put ''NzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChkMSksS3QoWEwsOCksS3Qob2wpLEt0KHoyKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImNsclRhYkxpbmsiLCIiXSxbImNsci10YWItY29udGVudCJdXSxmZWF0dXJlczpbRG9dfSksZH0pKCk7''@;'; put 'put ''dmFyIGJ2PSgoKT0+KGZ1bmN0aW9uKGQpe2QuSE9SSVpPTlRBTD0iaG9yaXpvbnRhbCIsZC5WRVJUSUNBTD0idmVydGljYWwifShidnx8KGJ2PXt9KSksYnYpKSgpO2xldCB2Wj0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fY2hpbGRyZW49W10sdGhpcy5sYXlvdXQ9YnYuSE9S''@;'; put 'put ''SVpPTlRBTH1yZWdpc3RlcihoKXt0aGlzLl9jaGlsZHJlbi5wdXNoKGgpfWdldCBjaGlsZHJlbigpe3JldHVybiB0aGlzLl9jaGlsZHJlbn1nZXQgYWN0aXZlVGFiKCl7cmV0dXJuIHRoaXMuY2hpbGRyZW4uZmluZChoPT5oLmFjdGl2ZSl9Z2V0IG92ZXJmbG93VGFicygpe3JldHVybiB0aGlz''@;'; put 'put ''LmxheW91dD09PWJ2LlZFUlRJQ0FMP1tdOnRoaXMuY2hpbGRyZW4uZmlsdGVyKGg9PiEwPT09aC50YWJMaW5rLmluT3ZlcmZsb3cpfXVucmVnaXN0ZXIoaCl7Y29uc3Qgdj10aGlzLmNoaWxkcmVuLmluZGV4T2YoaCk7dj4tMSYmdGhpcy5jaGlsZHJlbi5zcGxpY2UodiwxKX19cmV0dXJuIGQu''@;'; put 'put ''XHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCkseVJlPTAsS0w9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLmlmQWN0aXZlU2VydmljZT1oLHRoaXMu''@;'; put 'put ''aWQ9dix0aGlzLmFyaWFTZXJ2aWNlPXksdGhpcy50YWJzU2VydmljZT1DLHRoaXMudGFiQ29udGVudElkfHwodGhpcy50YWJDb250ZW50SWQ9ImNsci10YWItY29udGVudC0iK3lSZSsrKX1zZXQgdGVtcGxhdGVSZWYoaCl7dGhpcy52aWV3UmVmPXRoaXMudGFic1NlcnZpY2UudGFiQ29udGVu''@;'; put 'put ''dFZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KGgpfWdldCBhcmlhTGFiZWxsZWRCeSgpe3JldHVybiB0aGlzLmFyaWFTZXJ2aWNlLmFyaWFMYWJlbGxlZEJ5fWdldCB0YWJDb250ZW50SWQoKXtyZXR1cm4gdGhpcy5hcmlhU2VydmljZS5hcmlhQ29udHJvbHN9c2V0IHRhYkNvbnRl''@;'; put 'put ''bnRJZChoKXt0aGlzLmFyaWFTZXJ2aWNlLmFyaWFDb250cm9scz1ofWdldCBhY3RpdmUoKXtyZXR1cm4gdGhpcy5pZkFjdGl2ZVNlcnZpY2UuY3VycmVudD09PXRoaXMuaWR9bmdPbkRlc3Ryb3koKXtjb25zdCBoPXRoaXMudGFic1NlcnZpY2UudGFiQ29udGVudFZpZXdDb250YWluZXIuaW5k''@;'; put 'put ''ZXhPZih0aGlzLnZpZXdSZWYpO2g+LTEmJnRoaXMudGFic1NlcnZpY2UudGFiQ29udGVudFZpZXdDb250YWluZXIucmVtb3ZlKGgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh6MiksS3Qob2wpLEt0KHNTKSxLdCh2WikpfSxkLlx1MDI3NWNt''@;'; put 'put ''cD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJjbHItdGFiLWNvbnRlbnQiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhyUyw3KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LnRlbXBsYXRlUmVmPXkuZmlyc3QpfX0saW5wdXRzOnt0YWJDb250ZW50SWQ6WyJpZCIsInRh''@;'; put 'put ''YkNvbnRlbnRJZCJdfSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmEsZGVjbHM6Mix2YXJzOjAsY29uc3RzOltbInRhYkNvbnRlbnRQcm9qZWN0ZWRSZWYiLCIiXSxbInJvbGUiLCJ0YWJwYW5lbCIsMSwidGFiLWNvbnRlbnQiLDMsImlkIiwiaGlkZGVuIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7''@;'; put 'put ''MSZoJiYoSzAoKSxybigwLElMLDIsNiwibmctdGVtcGxhdGUiLG51bGwsMCxacikpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSx3UmU9MDtjb25zdCBvaGU9bmV3IHplKCJUQUJTX0lEIiksX1JlPXtwcm92aWRlOm9oZSx1c2VGYWN0b3J5OmZ1bmN0aW9uIGJSZSgpe3JldHVybiJjbHItdGFi''@;'; put 'put ''cy0iK3dSZSsrfX07bGV0IENSZT0wLCRMPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFosdWUsX2Upe3RoaXMuaWZBY3RpdmVTZXJ2aWNlPWgsdGhpcy5pZD12LHRoaXMuYXJpYVNlcnZpY2U9eSx0aGlzLmVsPUMsdGhpcy5jZnI9SSx0aGlzLnZpZXdDb250YWluZXJSZWY9''@;'; put 'put ''Wix0aGlzLnRhYnNTZXJ2aWNlPXVlLHRoaXMudGFic0lkPV9lLHRoaXMudGFiTGlua0lkfHwodGhpcy50YWJMaW5rSWQ9ImNsci10YWItbGluay0iK0NSZSsrKTtjb25zdCBCZT10aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShPeWUpO3RoaXMudGVtcGxhdGVSZWZDb250YWluZXI9''@;'; put 'put ''dGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChCZSx2b2lkIDAsdm9pZCAwLFtbdGhpcy5lbC5uYXRpdmVFbGVtZW50XV0pLmluc3RhbmNlfXNldCBpbk92ZXJmbG93KGgpe3RoaXMuX2luT3ZlcmZsb3c9aH1nZXQgaW5PdmVyZmxvdygpe3JldHVybiB0aGlzLl9pbk92ZXJm''@;'; put 'put ''bG93JiZ0aGlzLnRhYnNTZXJ2aWNlLmxheW91dCE9PWJ2LlZFUlRJQ0FMfWdldCBhZGRMaW5rQ2xhc3Nlcygpe3JldHVybiF0aGlzLmluT3ZlcmZsb3d9Z2V0IGFyaWFDb250cm9scygpe3JldHVybiB0aGlzLmFyaWFTZXJ2aWNlLmFyaWFDb250cm9sc31nZXQgdGFiTGlua0lkKCl7cmV0dXJu''@;'; put 'put ''IHRoaXMuYXJpYVNlcnZpY2UuYXJpYUxhYmVsbGVkQnl9c2V0IHRhYkxpbmtJZChoKXt0aGlzLmFyaWFTZXJ2aWNlLmFyaWFMYWJlbGxlZEJ5PWh9YWN0aXZhdGUoKXt0aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50PXRoaXMuaWR9Z2V0IGFjdGl2ZSgpe3JldHVybiB0aGlzLmlmQWN0aXZl''@;'; put 'put ''U2VydmljZS5jdXJyZW50PT09dGhpcy5pZH1nZXQgdGFiaW5kZXgoKXtyZXR1cm4gdGhpcy5hY3RpdmU/MDotMX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoejIpLEt0KG9sKSxLdChzUyksS3QoYm8pLEt0KFNkKSxLdChVaSksS3QodlopLEt0''@;'; put 'put ''KG9oZSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJUYWJMaW5rIiwiIl1dLGhvc3RBdHRyczpbInJvbGUiLCJ0YWIiLCJ0eXBlIiwiYnV0dG9uIl0saG9zdFZhcnM6MTIsaG9zdEJpbmRpbmdzOmZ1bmN0aW9uKGgsdil7MSZoJiZHbigiY2xpY2siLGZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIHYuYWN0aXZhdGUoKX0pLDImaCYmKEIzKCJpZCIsdi50YWJMaW5rSWQpLEdpKCJhcmlhLWNvbnRyb2xzIix2LmFyaWFDb250cm9scykoImFyaWEtc2VsZWN0ZWQiLHYuYWN0aXZlKSgidGFiaW5kZXgiLHYudGFiaW5kZXgpLEZpKCJidG4iLCEwKSgiYnRuLWxpbmsiLHYu''@;'; put 'put ''YWRkTGlua0NsYXNzZXMpKCJuYXYtbGluayIsdi5hZGRMaW5rQ2xhc3NlcykoImFjdGl2ZSIsdi5hY3RpdmUpKX0saW5wdXRzOntpbk92ZXJmbG93OlsiY2xyVGFiTGlua0luT3ZlcmZsb3ciLCJpbk92ZXJmbG93Il0sdGFiTGlua0lkOlsiaWQiLCJ0YWJMaW5rSWQiXX19KSxkfSkoKSxxTD0o''@;'; put 'put ''KCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLmlmQWN0aXZlU2VydmljZT1oLHRoaXMuaWQ9dix0aGlzLnRhYnNTZXJ2aWNlPXkseS5yZWdpc3Rlcih0aGlzKX1uZ09uRGVzdHJveSgpe3RoaXMudGFic1NlcnZpY2UudW5yZWdpc3Rlcih0aGlzKX1nZXQgYWN0aXZlKCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuaWZBY3RpdmVTZXJ2aWNlLmN1cnJlbnQ9PT10aGlzLmlkfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdCh6MiksS3Qob2wpLEt0KHZaKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci10YWIiXV0sY29u''@;'; put 'put ''dGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmKHhvKHksJEwsNykseG8oeSxLTCw3KSksMiZoKXtsZXQgQztIaShDPSRpKCkpJiYodi50YWJMaW5rPUMuZmlyc3QpLEhpKEM9JGkoKSkmJih2LnRhYkNvbnRlbnQ9Qy5maXJzdCl9fSxmZWF0dXJlczpbaG8oW3hhLHNTXSldLG5n''@;'; put 'put ''Q29udGVudFNlbGVjdG9yczpuYSxkZWNsczoxLHZhcnM6MCx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksTmkoMCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSxhaGU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; put 'put ''ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci10YWItb3ZlcmZsb3ctY29udGVudCJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezImaCYmRmkoImRyb3Bkb3duLW1lbnUiLCEwKX0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjEs''@;'; put 'put ''dmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxOaSgwKSl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLEFaPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJKXt0aGlzLmlmQWN0aXZlU2VydmljZT1oLHRoaXMudG9nZ2xlU2VydmljZT12LHRoaXMudGFi''@;'; put 'put ''c1NlcnZpY2U9eSx0aGlzLnRhYnNJZD1DLHRoaXMuY29tbW9uU3RyaW5ncz1JLHRoaXMuc3Vic2NyaXB0aW9ucz1bXSx0aGlzLl90YWJMaW5rRGlyZWN0aXZlcz1bXSx0aGlzLnRhYkxpbmtFbGVtZW50cz1bXSx0aGlzLl9tb3VzZWRvd249ITF9Z2V0IG92ZXJmbG93UG9zaXRpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5fdGFiTGlua0RpcmVjdGl2ZXMuZmlsdGVyKGg9PiFoLmluT3ZlcmZsb3cpLmxlbmd0aH1zZXQgdGFiQ29udGVudFZpZXdDb250YWluZXIoaCl7dGhpcy50YWJzU2VydmljZS50YWJDb250ZW50Vmlld0NvbnRhaW5lcj1ofXNldCBsYXlvdXQoaCl7T2JqZWN0LmtleXMoYnYpLm1h''@;'; put 'put ''cCh2PT5idlt2XSkuaW5kZXhPZihoKT49MCYmKHRoaXMudGFic1NlcnZpY2UubGF5b3V0PWgpfWdldCBsYXlvdXQoKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5sYXlvdXR9Z2V0IHRhYkxpbmtEaXJlY3RpdmVzKCl7cmV0dXJuIHRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzfWdldCBhY3RpdmVU''@;'; put 'put ''YWJJbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMudGFic1NlcnZpY2Uub3ZlcmZsb3dUYWJzLmluZGV4T2YodGhpcy50YWJzU2VydmljZS5hY3RpdmVUYWIpPi0xfWdldCBhY3RpdmVUYWJQb3NpdGlvbigpe3JldHVybiB0aGlzLl90YWJMaW5rRGlyZWN0aXZlcy5maW5kSW5kZXgoaD0+aC5hY3Rp''@;'; put 'put ''dmUpfWdldCB0YWJJZHMoKXtyZXR1cm4gdGhpcy50YWJzU2VydmljZS5jaGlsZHJlbi5tYXAoaD0+aC50YWJMaW5rLnRhYkxpbmtJZCkuam9pbigiICIpfWdldCBpc0N1cnJlbnRJbk92ZXJmbG93KCl7cmV0dXJuIHRoaXMua2V5Rm9jdXMuY3VycmVudD49dGhpcy5vdmVyZmxvd1Bvc2l0aW9u''@;'; put 'put ''fWdldCBpc1ZlcnRpY2FsKCl7cmV0dXJuIHRoaXMubGF5b3V0PT09YnYuVkVSVElDQUx9dG9nZ2xlT3ZlcmZsb3dPblBvc2l0aW9uKGgpe3RoaXMudG9nZ2xlU2VydmljZS5vcGVuPWg+PXRoaXMub3ZlcmZsb3dQb3NpdGlvbn1zZXQgdGFiT3ZlcmZsb3dFbChoKXt0aGlzLl90YWJPdmVyZmxv''@;'; put 'put ''d0VsPWgmJmgubmF0aXZlRWxlbWVudCx0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmaCYmdGhpcy5rZXlGb2N1cy5mb2N1c0N1cnJlbnQoKX1yZXNldEtleUZvY3VzQ3VycmVudFRvQWN0aXZlKGgpeyF0aGlzLmtleUZvY3VzLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoaC5yZWxhdGVkVGFyZ2V0''@;'; put 'put ''KSYmdGhpcy5rZXlGb2N1cy5jdXJyZW50IT09dGhpcy5hY3RpdmVUYWJQb3NpdGlvbiYmKHRoaXMua2V5Rm9jdXMuY3VycmVudD10aGlzLmFjdGl2ZVRhYlBvc2l0aW9uKX10b2dnbGVPdmVyZmxvd09uQ2xpY2soKXt0aGlzLmtleUZvY3VzLm1vdmVUbyh0aGlzLmlzQ3VycmVudEluT3ZlcmZs''@;'; put 'put ''b3cmJnRoaXMudG9nZ2xlU2VydmljZS5vcGVuP3RoaXMub3ZlcmZsb3dQb3NpdGlvbi0xOnRoaXMub3ZlcmZsb3dQb3NpdGlvbiksdGhpcy5fbW91c2Vkb3duPSExfW9wZW5PdmVyZmxvd09uRm9jdXMoKXshdGhpcy5fbW91c2Vkb3duJiYhdGhpcy50b2dnbGVTZXJ2aWNlLm9wZW4mJnRoaXMu''@;'; put 'put ''a2V5Rm9jdXMubW92ZVRvKHRoaXMuYWN0aXZlVGFiUG9zaXRpb24pfWNsb3NlT25Gb2N1c091dChoKXshdGhpcy5fdGFiT3ZlcmZsb3dFbC5jb250YWlucyhoLnJlbGF0ZWRUYXJnZXQpJiZ0aGlzLnRvZ2dsZVNlcnZpY2Uub3BlbiYmIXRoaXMuX21vdXNlZG93biYmKHRoaXMudG9nZ2xlU2Vy''@;'; put 'put ''dmljZS5vcGVuPSExLHRoaXMudGFiTGlua0VsZW1lbnRzW3RoaXMuYWN0aXZlVGFiUG9zaXRpb25dPT09aC5yZWxhdGVkVGFyZ2V0JiYodGhpcy5rZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb24pKX1jbG9zZU9uRXNjYXBlS2V5KCl7dGhpcy5rZXlGb2N1cy5tb3ZlVG8o''@;'; put 'put ''dGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTEpfWNsb3NlT25PdXRzaWRlQ2xpY2soaCx2KXtoLnRhcmdldD09PXZ8fHYuY29udGFpbnMoaC50YXJnZXQpfHwhdGhpcy5fdGFiT3ZlcmZsb3dFbC5jb250YWlucyhoLnRhcmdldCkmJnRoaXMuaXNDdXJyZW50SW5PdmVyZmxvdyYmdGhpcy5rZXlGb2N1''@;'; put 'put ''cy5tb3ZlVG8odGhpcy5vdmVyZmxvd1Bvc2l0aW9uLTEpfWxpc3RlbkZvclRhYkxpbmtDaGFuZ2VzKCl7cmV0dXJuIHRoaXMudGFicy5jaGFuZ2VzLnBpcGUoTjUodGhpcy50YWJzLm1hcChoPT5oLnRhYkxpbmspKSkuc3Vic2NyaWJlKCgpPT57dGhpcy5fdGFiTGlua0RpcmVjdGl2ZXM9dGhp''@;'; put 'put ''cy50YWJzLm1hcChoPT5oLnRhYkxpbmspLHRoaXMudGFiTGlua0VsZW1lbnRzPXRoaXMuX3RhYkxpbmtEaXJlY3RpdmVzLm1hcChoPT5oLmVsLm5hdGl2ZUVsZW1lbnQpfSl9bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5zdWJzY3JpcHRpb25zLnB1c2godGhpcy5saXN0ZW5Gb3JUYWJMaW5r''@;'; put 'put ''Q2hhbmdlcygpKSx2b2lkIDA9PT10aGlzLmlmQWN0aXZlU2VydmljZS5jdXJyZW50JiZ0aGlzLnRhYkxpbmtEaXJlY3RpdmVzWzBdJiZ0aGlzLnRhYkxpbmtEaXJlY3RpdmVzWzBdLmFjdGl2YXRlKCksdGhpcy5rZXlGb2N1cy5jdXJyZW50PXRoaXMuYWN0aXZlVGFiUG9zaXRpb259bmdPbkRl''@;'; put 'put ''c3Ryb3koKXt0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChoPT57aC51bnN1YnNjcmliZSgpfSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHoyKSxLdCh6cyksS3QodlopLEt0KG9oZSksS3QobnMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6''@;'; put 'put ''ZCxzZWxlY3RvcnM6W1siY2xyLXRhYnMiXV0sY29udGVudFF1ZXJpZXM6ZnVuY3Rpb24oaCx2LHkpe2lmKDEmaCYmeG8oeSxxTCw0KSwyJmgpe2xldCBDO0hpKEM9JGkoKSkmJih2LnRhYnM9Qyl9fSx2aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJih2byhaaiw3LFVpKSx2byhFcCw3''@;'; put 'put ''KSx2byhhaGUsNSxibykpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYudGFiQ29udGVudFZpZXdDb250YWluZXI9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYua2V5Rm9jdXM9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYudGFiT3ZlcmZsb3dFbD15LmZpcnN0KX19LGhvc3RWYXJzOjIsaG9zdEJp''@;'; put 'put ''bmRpbmdzOmZ1bmN0aW9uKGgsdil7MiZoJiZGaSgidGFicy12ZXJ0aWNhbCIsdi5pc1ZlcnRpY2FsKX0saW5wdXRzOntsYXlvdXQ6WyJjbHJMYXlvdXQiLCJsYXlvdXQiXX0sZmVhdHVyZXM6W2hvKFt6Mix6cyx2WixfUmVdKV0sZGVjbHM6NSx2YXJzOjQsY29uc3RzOltbInJvbGUiLCJ0YWJs''@;'; put 'put ''aXN0IiwiY2xyRGlyZWN0aW9uIiwiYm90aCIsMSwibmF2IiwzLCJjbHJLZXlGb2N1cyIsImNsckZvY3VzQ2hhbmdlIiwiZm9jdXNvdXQiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzQsIm5nSWYiXSxbInRhYkNvbnRlbnRWaWV3Q29udGFpbmVyIiwiIl0sWyJyb2xlIiwicHJlc2VudGF0aW9u''@;'; put 'put ''IiwxLCJuYXYtaXRlbSJdLFszLCJuZ1RlbXBsYXRlT3V0bGV0Il0sWyJyb2xlIiwicHJlc2VudGF0aW9uIiwxLCJ0YWJzLW92ZXJmbG93IiwiYm90dG9tLXJpZ2h0Il0sWyJyb2xlIiwiYXBwbGljYXRpb24iLDEsIm5hdi1pdGVtIl0sWyJ0eXBlIiwiYnV0dG9uIiwiYXJpYS1oaWRkZW4iLCJ0''@;'; put 'put ''cnVlIiwxLCJidG4iLCJidG4tbGluayIsIm5hdi1saW5rIiwiZHJvcGRvd24tdG9nZ2xlIiwzLCJtb3VzZWRvd24iLCJmb2N1cyIsImNsaWNrIl0sWyJ0YWJPdmVyZmxvd1RyaWdnZXIiLCIiXSxbInNoYXBlIiwiZWxsaXBzaXMtaG9yaXpvbnRhbCIsInN0YXR1cyIsInRvZ2dsZVNlcnZpY2Uu''@;'; put 'put ''b3BlbiA/ICdpbmZvJyA6IG51bGwiXSxbMywia2V5ZG93bi5lc2MiLCJjbGljayIsImZvY3Vzb3V0Iiw0LCJuZ0lmIl0sWzMsImtleWRvd24uZXNjIiwiY2xpY2siLCJmb2N1c291dCJdLFszLCJuZ1RlbXBsYXRlT3V0bGV0Iiw0LCJuZ0lmIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZo''@;'; put 'put ''JiYobnQoMCwidWwiLDApLEduKCJjbHJGb2N1c0NoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudG9nZ2xlT3ZlcmZsb3dPblBvc2l0aW9uKEMpfSkoImZvY3Vzb3V0IixmdW5jdGlvbihDKXtyZXR1cm4gdi5yZXNldEtleUZvY3VzQ3VycmVudFRvQWN0aXZlKEMpfSkscm4oMSx6aiwyLDEs''@;'; put 'put ''Im5nLWNvbnRhaW5lciIsMSkscm4oMixxY2UsNywxMCwibmctY29udGFpbmVyIiwyKSxvdCgpLGYxKDMsbnVsbCwzKSksMiZoJiYoVHQoImNscktleUZvY3VzIix2LnRhYkxpbmtFbGVtZW50cyksR2koImFyaWEtb3ducyIsdi50YWJJZHMpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LnRhYkxpbmtE''@;'; put 'put ''aXJlY3RpdmVzKSx1dCgxKSxUdCgibmdJZiIsdi50YWJzU2VydmljZS5vdmVyZmxvd1RhYnMubGVuZ3RoPjApKX0sZGVwZW5kZW5jaWVzOltFcCxhaGUseHMsTm8sWGQsWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGtSZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7aHMuYWRkSWNv''@;'; put 'put ''bnMoZlYpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEscWEsRHMsQVJlLGZ3XSxxYV19KSxkfSkoKSxsaGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rv''@;'; put 'put ''cigpe3RoaXMubmF2R3JvdXBDb3VudD0wfXJlZ2lzdGVyTmF2R3JvdXAoKXt0aGlzLm5hdkdyb3VwQ291bnQrK311bnJlZ2lzdGVyTmF2R3JvdXAoKXt0aGlzLm5hdkdyb3VwQ291bnQtLX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; put 'put ''cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCksc2hlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLl9pY29ucz0wfWdldCBoYXNJY29ucygpe3JldHVybiB0aGlzLl9pY29ucz4wfXJlZ2lzdGVySWNvbigpe3RoaXMuX2ljb25zKyt9dW5yZWdpc3Rl''@;'; put 'put ''ckljb24oKXt0aGlzLl9pY29ucy0tfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx1aGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuX2Fu''@;'; put 'put ''aW1hdGVPbkNvbGxhcHNlZD1uZXcgJGUsdGhpcy5fY29sbGFwc2VkQ2hhbmdlZD1uZXcgJGUsdGhpcy5fY29sbGFwc2VkPSExLHRoaXMuX2NvbGxhcHNpYmxlPSExfWdldCBhbmltYXRlT25Db2xsYXBzZWQoKXtyZXR1cm4gdGhpcy5fYW5pbWF0ZU9uQ29sbGFwc2VkLmFzT2JzZXJ2YWJsZSgp''@;'; put 'put ''fWdldCBjb2xsYXBzZWRDaGFuZ2VkKCl7cmV0dXJuIHRoaXMuX2NvbGxhcHNlZENoYW5nZWQuYXNPYnNlcnZhYmxlKCl9Z2V0IGNvbGxhcHNlZCgpe3JldHVybiB0aGlzLl9jb2xsYXBzZWR9c2V0IGNvbGxhcHNlZChoKXtoPSEhaCx0aGlzLmNvbGxhcHNpYmxlJiZ0aGlzLl9jb2xsYXBzZWQh''@;'; put 'put ''PT1oJiZ0aGlzLnVwZGF0ZUNvbGxhcHNlQmVoYXZpb3IoaCl9Z2V0IGNvbGxhcHNpYmxlKCl7cmV0dXJuIHRoaXMuX2NvbGxhcHNpYmxlfXNldCBjb2xsYXBzaWJsZShoKXt0aGlzLl9jb2xsYXBzaWJsZSE9PShoPSEhaCkmJighaCYmdGhpcy5jb2xsYXBzZWQmJnRoaXMudXBkYXRlQ29sbGFw''@;'; put 'put ''c2VCZWhhdmlvcighMSksdGhpcy5fY29sbGFwc2libGU9aCl9dXBkYXRlQ29sbGFwc2VCZWhhdmlvcihoKXt0aGlzLl9hbmltYXRlT25Db2xsYXBzZWQubmV4dChoKSx0aGlzLl9jb2xsYXBzZWQ9aCx0aGlzLl9jb2xsYXBzZWRDaGFuZ2VkLm5leHQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1m''@;'; put 'put ''dW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLFJ5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMpe3RoaXMuX25hdlNlcnZpY2U9aCx0aGlzLl9uYXZJY29uU2VydmljZT12LHRo''@;'; put 'put ''aXMuX25hdkdyb3VwUmVnaXN0cmF0aW9uU2VydmljZT15LHRoaXMuY29tbW9uU3RyaW5ncz1DLHRoaXMuX2NvbGxhcHNlZENoYW5nZWQ9bmV3IGFyKCEwKSx0aGlzLl9zdWI9dGhpcy5fbmF2U2VydmljZS5jb2xsYXBzZWRDaGFuZ2VkLnN1YnNjcmliZShJPT57dGhpcy5fY29sbGFwc2VkQ2hh''@;'; put 'put ''bmdlZC5lbWl0KEkpfSl9Z2V0IGNvbGxhcHNpYmxlKCl7cmV0dXJuIHRoaXMuX25hdlNlcnZpY2UuY29sbGFwc2libGV9c2V0IGNvbGxhcHNpYmxlKGgpe3RoaXMuX25hdlNlcnZpY2UuY29sbGFwc2libGU9aH1nZXQgY29sbGFwc2VkKCl7cmV0dXJuIHRoaXMuX25hdlNlcnZpY2UuY29sbGFw''@;'; put 'put ''c2VkfXNldCBjb2xsYXBzZWQoaCl7dGhpcy5fbmF2U2VydmljZS5jb2xsYXBzZWQ9aH1nZXQgaGFzTmF2R3JvdXBzKCl7cmV0dXJuIHRoaXMuX25hdkdyb3VwUmVnaXN0cmF0aW9uU2VydmljZS5uYXZHcm91cENvdW50PjB9Z2V0IGhhc0ljb25zKCl7cmV0dXJuIHRoaXMuX25hdkljb25TZXJ2''@;'; put 'put ''aWNlLmhhc0ljb25zfWdldCBhcmlhRXhwYW5kZWQoKXtyZXR1cm4gdGhpcy5jb2xsYXBzaWJsZT90aGlzLmNvbGxhcHNlZD8iZmFsc2UiOiJ0cnVlIjpudWxsfXRvZ2dsZUJ5QnV0dG9uKCl7dGhpcy5jb2xsYXBzZWQ9IXRoaXMuY29sbGFwc2VkfW5nT25EZXN0cm95KCl7dGhpcy5fc3ViLnVu''@;'; put 'put ''c3Vic2NyaWJlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHVoZSksS3Qoc2hlKSxLdChsaGUpLEt0KG5zKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImNsci12ZXJ0aWNhbC1uYXYiXV0saG9zdEF0dHJzOlsxLCJj''@;'; put 'put ''bHItdmVydGljYWwtbmF2Il0saG9zdFZhcnM6Nixob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJkZpKCJpcy1jb2xsYXBzZWQiLHYuY29sbGFwc2VkKSgiaGFzLW5hdi1ncm91cHMiLHYuaGFzTmF2R3JvdXBzKSgiaGFzLWljb25zIix2Lmhhc0ljb25zKX0saW5wdXRzOntjb2xsYXBz''@;'; put 'put ''aWJsZTpbImNsclZlcnRpY2FsTmF2Q29sbGFwc2libGUiLCJjb2xsYXBzaWJsZSJdLGNvbGxhcHNlZDpbImNsclZlcnRpY2FsTmF2Q29sbGFwc2VkIiwiY29sbGFwc2VkIl19LG91dHB1dHM6e19jb2xsYXBzZWRDaGFuZ2VkOiJjbHJWZXJ0aWNhbE5hdkNvbGxhcHNlZENoYW5nZSJ9LGZlYXR1''@;'; put 'put ''cmVzOltobyhbdWhlLHNoZSxsaGVdKV0sbmdDb250ZW50U2VsZWN0b3JzOm5hLGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJuYXYtdHJpZ2dlciIsMywib24tY29sbGFwc2UiLCJjbGljayIsNCwibmdJZiJdLFsxLCJuYXYtY29udGVudCJdLFsiY2xh''@;'; put 'put ''c3MiLCJuYXYtYnRuIiwiYXJpYS1oaWRkZW4iLCJ0cnVlIiwidGFiaW5kZXgiLCItMSIsMywiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsIm5hdi10cmlnZ2VyIiwzLCJjbGljayJdLFsic2hhcGUiLCJhbmdsZS1kb3VibGUiLDEsIm5hdi10cmlnZ2VyLWljb24iXSxbImFy''@;'; put 'put ''aWEtaGlkZGVuIiwidHJ1ZSIsInRhYmluZGV4IiwiLTEiLDEsIm5hdi1idG4iLDMsImNsaWNrIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYoSzAoKSxybigwLGVmZSwyLDYsImJ1dHRvbiIsMCksbnQoMSwiZGl2IiwxKSxOaSgyKSxybigzLFYkLDEsMSwiYnV0dG9uIiwyKSxvdCgp''@;'; put 'put ''KSwyJmgmJihUdCgibmdJZiIsdi5jb2xsYXBzaWJsZSksdXQoMyksVHQoIm5nSWYiLHYuY29sbGFwc2libGUmJnYuY29sbGFwc2VkKSl9LGRlcGVuZGVuY2llczpbTm8sWm9dLGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGNoZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5fZXhw''@;'; put 'put ''YW5kQ2hhbmdlPW5ldyAkZX1nZXQgZXhwYW5kQ2hhbmdlKCl7cmV0dXJuIHRoaXMuX2V4cGFuZENoYW5nZS5hc09ic2VydmFibGUoKX1leHBhbmQoKXt0aGlzLl9leHBhbmRDaGFuZ2UubmV4dCghMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxk''@;'; put 'put ''Llx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLEJ5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLmRlc3Ryb3kkPW5ldyAkZSx5JiZ0OChoLm5hdGl2ZUVsZW1lbnQsImNsaWNrIikucGlwZShqNyh0aGlzLmRlc3Ryb3kkKSku''@;'; put 'put ''c3Vic2NyaWJlKCgpPT57eS5leHBhbmQoKSx2Lm1hcmtGb3JDaGVjaygpfSl9bmdPbkRlc3Ryb3koKXt0aGlzLmRlc3Ryb3kkLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoYm8pLEt0KGQxKSxLdChjaGUsOCkpfSxkLlx1MDI3NWNt''@;'; put 'put ''cD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiXV0saG9zdEF0dHJzOlsxLCJuYXYtbGluayJdLGF0dHJzOnJmZSxuZ0NvbnRlbnRTZWxlY3RvcnM6b2ZlLGRlY2xzOjMsdmFyczowLGNvbnN0czpbWzEsIm5hdi10ZXh0Il1dLHRlbXBsYXRlOmZ1bmN0''@;'; put 'put ''aW9uKGgsdil7MSZoJiYoSzAoaWZlKSxOaSgwKSxudCgxLCJzcGFuIiwwKSxOaSgyLDEpLG90KCkpfSxlbmNhcHN1bGF0aW9uOjJ9KSxkfSkoKSx4UmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2hzLmFkZEljb25zKER5LGdYKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgp''@;'; put 'put ''e3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbW2JhLERzLHFhLGZTXSxxYSxEcyxmU119KSxkfSkoKSxUUmU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8''@;'; put 'put ''ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbbFJlLHZSZSxrUmUseFJlXX0pLGR9KSgpLFB5ZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuX2RvY3VtZW50PWh9c3RvcFNjcm9sbGluZygpe3RoaXMuX2RvY3VtZW50LmJvZHku''@;'; put 'put ''Y2xhc3NMaXN0LmFkZCgibm8tc2Nyb2xsaW5nIil9cmVzdW1lU2Nyb2xsaW5nKCl7dGhpcy5fZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuY29udGFpbnMoIm5vLXNjcm9sbGluZyIpJiZ0aGlzLl9kb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoIm5vLXNjcm9sbGluZyIpfX1yZXR1cm4g''@;'; put 'put ''ZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShncykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLGlkPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX3Njcm9sbGluZ1NlcnZpY2U9aCx0''@;'; put 'put ''aGlzLmNvbW1vblN0cmluZ3M9dix0aGlzLm1vZGFsSWQ9eSx0aGlzLl9vcGVuPSExLHRoaXMuX29wZW5DaGFuZ2VkPW5ldyBhcighMSksdGhpcy5jbG9zYWJsZT0hMCx0aGlzLnN0YXRpY0JhY2tkcm9wPSEwLHRoaXMuc2tpcEFuaW1hdGlvbj0iZmFsc2UiLHRoaXMuYnlwYXNzU2Nyb2xsU2Vy''@;'; put 'put ''dmljZT0hMSx0aGlzLnN0b3BDbG9zZT0hMSx0aGlzLmFsdENsb3NlPW5ldyBhcighMSksdGhpcy5sYWJlbGxlZEJ5PXRoaXMubW9kYWxJZH1uZ09uQ2hhbmdlcyhoKXshdGhpcy5ieXBhc3NTY3JvbGxTZXJ2aWNlJiZoJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaCwi''@;'; put 'put ''X29wZW4iKSYmKGguX29wZW4uY3VycmVudFZhbHVlP3RoaXMuX3Njcm9sbGluZ1NlcnZpY2Uuc3RvcFNjcm9sbGluZygpOnRoaXMuX3Njcm9sbGluZ1NlcnZpY2UucmVzdW1lU2Nyb2xsaW5nKCkpfW5nT25EZXN0cm95KCl7dGhpcy5fc2Nyb2xsaW5nU2VydmljZS5yZXN1bWVTY3JvbGxpbmco''@;'; put 'put ''KX1vcGVuKCl7dGhpcy5fb3Blbnx8KHRoaXMuX29wZW49ITAsdGhpcy5fb3BlbkNoYW5nZWQuZW1pdCghMCkpfWNsb3NlKCl7dGhpcy5zdG9wQ2xvc2U/dGhpcy5hbHRDbG9zZS5lbWl0KCExKTohdGhpcy5jbG9zYWJsZXx8IXRoaXMuX29wZW58fCh0aGlzLl9vcGVuPSExLHRoaXMuZm9jdXNU''@;'; put 'put ''cmFwLnNldFByZXZpb3VzRm9jdXMoKSl9ZmFkZURvbmUoaCl7InZvaWQiPT09aC50b1N0YXRlJiZ0aGlzLl9vcGVuQ2hhbmdlZC5lbWl0KCExKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUHllKSxLdChucyksS3QoeTIpKX0sZC5cdTAyNzVj''@;'; put 'put ''bXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLW1vZGFsIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8oaHcsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5mb2N1c1RyYXA9eS5maXJzdCl9fSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYp''@;'; put 'put ''ezEmaCYmR24oImtleXVwLmVzY2FwZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jbG9zZSgpfSwwLGZCKSwyJmgmJkZpKCJvcGVuIix2Ll9vcGVuKX0saW5wdXRzOntfb3BlbjpbImNsck1vZGFsT3BlbiIsIl9vcGVuIl0sY2xvc2FibGU6WyJjbHJNb2RhbENsb3NhYmxlIiwiY2xvc2FibGUiXSxz''@;'; put 'put ''aXplOlsiY2xyTW9kYWxTaXplIiwic2l6ZSJdLHN0YXRpY0JhY2tkcm9wOlsiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsInN0YXRpY0JhY2tkcm9wIl0sc2tpcEFuaW1hdGlvbjpbImNsck1vZGFsU2tpcEFuaW1hdGlvbiIsInNraXBBbmltYXRpb24iXSxieXBhc3NTY3JvbGxTZXJ2aWNlOlsi''@;'; put 'put ''Y2xyTW9kYWxPdmVycmlkZVNjcm9sbFNlcnZpY2UiLCJieXBhc3NTY3JvbGxTZXJ2aWNlIl0sc3RvcENsb3NlOlsiY2xyTW9kYWxQcmV2ZW50Q2xvc2UiLCJzdG9wQ2xvc2UiXSxsYWJlbGxlZEJ5OlsiY2xyTW9kYWxMYWJlbGxlZEJ5SWQiLCJsYWJlbGxlZEJ5Il19LG91dHB1dHM6e19vcGVu''@;'; put 'put ''Q2hhbmdlZDoiY2xyTW9kYWxPcGVuQ2hhbmdlIixhbHRDbG9zZToiY2xyTW9kYWxBbHRlcm5hdGVDbG9zZSJ9LGZlYXR1cmVzOltobyhbT2NdLFtQeWVdKSxEMl0sbmdDb250ZW50U2VsZWN0b3JzOnNmZSxkZWNsczoxLHZhcnM6MSxjb25zdHM6W1siY2xyRm9jdXNUcmFwIiwiIiwiY2xhc3Mi''@;'; put 'put ''LCJtb2RhbCIsNCwibmdJZiJdLFsiY2xyRm9jdXNUcmFwIiwiIiwxLCJtb2RhbCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtbW9kYWwiLCJ0cnVlIiwxLCJtb2RhbC1kaWFsb2ciXSxbMSwiY2xyLXNyLW9ubHkiXSxbMSwibW9kYWwtY29udGVudC13cmFwcGVyIl0sWzEsIm1vZGFsLWNvbnRl''@;'; put 'put ''bnQiXSxbMSwibW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIl0sWyJjbHJGb2N1c09uVmlld0luaXQiLCIiLDEsIm1vZGFsLXRpdGxlLXdyYXBwZXIiLDMsImlkIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJjbG9zZSIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwibW9kYWwtYm9keS13cmFw''@;'; put 'put ''cGVyIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWJhY2tkcm9wIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY2xvc2UiLDMsImNsaWNrIl0sWyJzaGFwZSIsIndpbmRvdy1jbG9zZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKGxmZSkscm4oMCxh''@;'; put 'put ''ZmUsMTcsMTQsImRpdiIsMCkpLDImaCYmVHQoIm5nSWYiLHYuX29wZW4pfSxkZXBlbmRlbmNpZXM6W05vLGh3LFJmZSxab10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5Om5vbmV9Lm9wZW5bX25naG9zdC0lQ09NUCVde2Rpc3BsYXk6aW5saW5lfSJdLGRhdGE6e2FuaW1hdGlv''@;'; put 'put ''bjpbJGgoImZhZGVEb3duIixbYnUoIiogPT4gZmFsc2UiLFt5bCh7b3BhY2l0eTowLHRyYW5zZm9ybToidHJhbnNsYXRlKDAsIC0yNSUpIn0pLERjKCIwLjJzIGVhc2UtaW4tb3V0IildKSxidSgiZmFsc2UgPT4gKiIsW0RjKCIwLjJzIGVhc2UtaW4tb3V0Iix5bCh7b3BhY2l0eTowLHRyYW5z''@;'; put 'put ''Zm9ybToidHJhbnNsYXRlKDAsIC0yNSUpIn0pKV0pXSksJGgoImZhZGUiLFtidSgidm9pZCA9PiAqIixbeWwoe29wYWNpdHk6MH0pLERjKCIwLjJzIGVhc2UtaW4tb3V0Iix5bCh7b3BhY2l0eTouODV9KSldKSxidSgiKiA9PiB2b2lkIixbRGMoIjAuMnMgZWFzZS1pbi1vdXQiLHlsKHtvcGFj''@;'; put 'put ''aXR5OjB9KSldKV0pXX19KSxkfSkoKSxvZD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnJlbmRlcmVyPWgsdGhpcy5ob3N0PXYsdGhpcy50YWJpbmRleD0iMCIsdGhpcy51bmxpc3RlbmVycz1bXSx5LnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5vYnNlcnZlcj1u''@;'; put 'put ''ZXcgUmVzaXplT2JzZXJ2ZXIoKCk9PnRoaXMuYWRkT3JSZW1vdmVUYWJJbmRleCgpKSx0aGlzLm9ic2VydmVyLm9ic2VydmUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQpLHRoaXMudW5saXN0ZW5lcnMucHVzaCh0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmhvc3QubmF0aXZlRWxlbWVudCwi''@;'; put 'put ''bW91c2V1cCIsKCk9Pnt0aGlzLmFkZE9yUmVtb3ZlVGFiSW5kZXgoKX0pLHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJtb3VzZWRvd24iLCgpPT57dGhpcy5yZW1vdmVUYWJJbmRleCgpfSkpfSl9bmdPbkRlc3Ryb3koKXtmb3IoO3RoaXMudW5saXN0ZW5l''@;'; put 'put ''cnMubGVuZ3RoOyl0aGlzLnVubGlzdGVuZXJzLnBvcCgpKCk7dGhpcy5vYnNlcnZlci5kaXNjb25uZWN0KCksdGhpcy5vYnNlcnZlcj1udWxsfWFkZFRhYkluZGV4KCl7dGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQsInRhYmluZGV4Iix0aGlzLnRh''@;'; put 'put ''YmluZGV4KX1yZW1vdmVUYWJJbmRleCgpe3RoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LCJ0YWJpbmRleCIpfWFkZE9yUmVtb3ZlVGFiSW5kZXgoKXtjb25zdCBoPXRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7aC5jbGll''@;'; put 'put ''bnRIZWlnaHQ8aC5zY3JvbGxIZWlnaHQ/dGhpcy5hZGRUYWJJbmRleCgpOnRoaXMucmVtb3ZlVGFiSW5kZXgoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoR2EpLEt0KGJvKSxLdChfbCkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVj''@;'; put 'put ''dG9yczpbWyIiLDgsIm1vZGFsLWJvZHkiXV19KSxkfSkoKSxGeWU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe2hzLmFkZEljb25zKFNrKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3''@;'; put 'put ''NWluaj1iMCh7aW1wb3J0czpbW2JhLERzLHNxLGZTXSxEcyxmU119KSxkfSkoKTtjb25zdCBJUmU9eyJ0b3AtbGVmdCI6e2FuY2hvclBvaW50OmcwLlRPUF9DRU5URVIscG9wb3ZlclBvaW50OmcwLkJPVFRPTV9SSUdIVCxvZmZzZXRZOi0xMCxvZmZzZXRYOjB9LCJ0b3AtbWlkZGxlIjp7YW5j''@;'; put 'put ''aG9yUG9pbnQ6ZzAuVE9QX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuQk9UVE9NX0NFTlRFUixvZmZzZXRZOi0xMCxvZmZzZXRYOjB9LCJ0b3AtcmlnaHQiOnthbmNob3JQb2ludDpnMC5UT1BfQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5CT1RUT01fTEVGVCxvZmZzZXRZOi0xMCxvZmZzZXRYOjB9''@;'; put 'put ''LCJyaWdodC10b3AiOnthbmNob3JQb2ludDpnMC5SSUdIVF9DRU5URVIscG9wb3ZlclBvaW50OmcwLkxFRlRfQk9UVE9NLG9mZnNldFk6MixvZmZzZXRYOjE0fSwicmlnaHQtbWlkZGxlIjp7YW5jaG9yUG9pbnQ6ZzAuUklHSFRfQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5MRUZUX0NFTlRFUixv''@;'; put 'put ''ZmZzZXRZOjYsb2Zmc2V0WDoxNH0sInJpZ2h0LWJvdHRvbSI6e2FuY2hvclBvaW50OmcwLlJJR0hUX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuTEVGVF9UT1Asb2Zmc2V0WTotMSxvZmZzZXRYOjE0fSwiYm90dG9tLXJpZ2h0Ijp7YW5jaG9yUG9pbnQ6ZzAuQk9UVE9NX0NFTlRFUixwb3BvdmVy''@;'; put 'put ''UG9pbnQ6ZzAuVE9QX0xFRlQsb2Zmc2V0WTo5LG9mZnNldFg6LTF9LCJib3R0b20tbWlkZGxlIjp7YW5jaG9yUG9pbnQ6ZzAuQk9UVE9NX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuVE9QX0NFTlRFUixvZmZzZXRZOjksb2Zmc2V0WDoxMn0sImJvdHRvbS1sZWZ0Ijp7YW5jaG9yUG9pbnQ6ZzAu''@;'; put 'put ''Qk9UVE9NX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuVE9QX1JJR0hULG9mZnNldFk6OSxvZmZzZXRYOjB9LCJsZWZ0LWJvdHRvbSI6e2FuY2hvclBvaW50OmcwLkxFRlRfQ0VOVEVSLHBvcG92ZXJQb2ludDpnMC5SSUdIVF9UT1Asb2Zmc2V0WTowLG9mZnNldFg6LTE0fSwibGVmdC1taWRkbGUi''@;'; put 'put ''OnthbmNob3JQb2ludDpnMC5MRUZUX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuUklHSFRfQ0VOVEVSLG9mZnNldFk6NCxvZmZzZXRYOi0xNH0sImxlZnQtdG9wIjp7YW5jaG9yUG9pbnQ6ZzAuTEVGVF9DRU5URVIscG9wb3ZlclBvaW50OmcwLlJJR0hUX0JPVFRPTSxvZmZzZXRZOjAsb2Zmc2V0''@;'; put 'put ''WDotMTR9LGRlZmF1bHQ6e2FuY2hvclBvaW50OmcwLlJJR0hUX0NFTlRFUixwb3BvdmVyUG9pbnQ6ZzAuTEVGVF9DRU5URVIsb2Zmc2V0WTo2LG9mZnNldFg6MTR9fSxEUmU9WyJ0b3AtbGVmdCIsInRvcC1taWRkbGUiLCJ0b3AtcmlnaHQiLCJyaWdodC10b3AiLCJyaWdodC1taWRkbGUiLCJy''@;'; put 'put ''aWdodC1ib3R0b20iLCJib3R0b20tcmlnaHQiLCJib3R0b20tbWlkZGxlIiwiYm90dG9tLWxlZnQiLCJsZWZ0LWJvdHRvbSIsImxlZnQtbWlkZGxlIiwibGVmdC10b3AiXTtsZXQgSHllPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBuaGV7Y29uc3RydWN0b3IoaCx2LHksQyxJLFosdWUsX2Upe2lm''@;'; put 'put ''KHN1cGVyKGgsdiksdGhpcy5jb21tb25TdHJpbmdzPXksdGhpcy5zaWducG9zdENvbnRlbnRJZD1DLHRoaXMuc2lnbnBvc3RJZFNlcnZpY2U9SSx0aGlzLnNpZ25wb3N0Rm9jdXNNYW5hZ2VyPVosdGhpcy5wbGF0Zm9ybUlkPXVlLCF2KXRocm93IG5ldyBFcnJvcigiY2xyLXNpZ25wb3N0LWNv''@;'; put 'put ''bnRlbnQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHItc2lnbnBvc3QiKTt0aGlzLnBvc2l0aW9uPSJyaWdodC1taWRkbGUiLHRoaXMuY2xvc2VPbk91dHNpZGVDbGljaz0hMCx0aGlzLnNpZ25wb3N0SWRTZXJ2aWNlLnNldElkKEMpLHRoaXMuZG9jdW1lbnQ9X2V9Y2xvc2Uo''@;'; put 'put ''KXt0aGlzLnRvZ2dsZVNlcnZpY2Uub3Blbj0hMX1nZXQgcG9zaXRpb24oKXtyZXR1cm4gdGhpcy5fcG9zaXRpb259c2V0IHBvc2l0aW9uKGgpe3RoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LHRoaXMucG9zaXRpb24pLHRoaXMuX3Bvc2l0aW9uPWgmJkRS''@;'; put 'put ''ZS5pbmRleE9mKGgpPi0xP2g6InJpZ2h0LW1pZGRsZSIsdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsdGhpcy5wb3NpdGlvbik7Y29uc3Qgdj1JUmVbdGhpcy5wb3NpdGlvbl07dGhpcy5hbmNob3JQb2ludD12LmFuY2hvclBvaW50LHRoaXMucG9wb3ZlclBv''@;'; put 'put ''aW50PXYucG9wb3ZlclBvaW50LHRoaXMucG9wb3Zlck9wdGlvbnMub2Zmc2V0WT12Lm9mZnNldFksdGhpcy5wb3BvdmVyT3B0aW9ucy5vZmZzZXRYPXYub2Zmc2V0WH1uZ09uRGVzdHJveSgpe3N1cGVyLm5nT25EZXN0cm95KCksU2wodGhpcy5wbGF0Zm9ybUlkKSYmdGhpcy5lbC5uYXRpdmVF''@;'; put 'put ''bGVtZW50LmNvbnRhaW5zKHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkmJnRoaXMuc2lnbnBvc3RGb2N1c01hbmFnZXIuZm9jdXNUcmlnZ2VyKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFNzKSxLdCh0Ziw4KSxLdChucyksS3QoeTIp''@;'; put 'put ''LEt0KHpmZSksS3QoWmZlKSxLdChMMiksS3QoZ3MpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siY2xyLXNpZ25wb3N0LWNvbnRlbnQiXV0saG9zdFZhcnM6Myxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsyJmgmJihCMygiaWQiLHYuc2lnbnBvc3RDb250ZW50SWQp''@;'; put 'put ''LEZpKCJzaWducG9zdC1jb250ZW50IiwhMCkpfSxpbnB1dHM6e3Bvc2l0aW9uOlsiY2xyUG9zaXRpb24iLCJwb3NpdGlvbiJdfSxmZWF0dXJlczpbaG8oW09jXSksRG9dLG5nQ29udGVudFNlbGVjdG9yczpuYSxkZWNsczo3LHZhcnM6Myxjb25zdHM6W1sxLCJzaWducG9zdC13cmFwIl0sWzEs''@;'; put 'put ''InBvcG92ZXItcG9pbnRlciJdLFsxLCJzaWducG9zdC1jb250ZW50LWhlYWRlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwic2lnbnBvc3QtYWN0aW9uIiwiY2xvc2UiLDMsImNsaWNrIl0sWyJzaGFwZSIsIndpbmRvdy1jbG9zZSJdLFsxLCJzaWducG9zdC1jb250ZW50LWJvZHkiXV0sdGVtcGxh''@;'; put 'put ''dGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLG50KDAsImRpdiIsMCksQ3IoMSwiZGl2IiwxKSxudCgyLCJkaXYiLDIpKDMsImJ1dHRvbiIsMyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmNsb3NlKCl9KSxDcig0LCJjZHMtaWNvbiIsNCksb3QoKSgpLG50KDUsImRpdiIsNSks''@;'; put 'put ''TmkoNiksb3QoKSgpKSwyJmgmJih1dCgzKSxHaSgiYXJpYS1sYWJlbCIsdi5jb21tb25TdHJpbmdzLmtleXMuc2lnbnBvc3RDbG9zZSkoImFyaWEtY29udHJvbHMiLHYuc2lnbnBvc3RDb250ZW50SWQpLHV0KDEpLEdpKCJ0aXRsZSIsdi5jb21tb25TdHJpbmdzLmtleXMuY2xvc2UpKX0sZGVw''@;'; put 'put ''ZW5kZW5jaWVzOltab10sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksTFJlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXtocy5hZGRJY29ucyhTayxtWCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSks''@;'; put 'put ''ZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W1tiYSxEcyxmU10scWFdfSksZH0pKCksRlJlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6''@;'; put 'put ''W1tiYV0scWEsRHNdfSksZH0pKCksSFJlPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W3JoZSxMUmUsRlJlXX0pLGR9KSgpLE5SZT0o''@;'; put 'put ''KCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmFdXX0pLGR9KSgpLGpSZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7aHMuYWRk''@;'; put 'put ''SWNvbnMoWnNlLHpzZSx2WCxXc2UpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsRHMsRGxdLERzLERsXX0pLGR9KSgpLFlSZT0oKCk9PntjbGFzcyBk''@;'; put 'put ''e2NvbnN0cnVjdG9yKCl7aHMuYWRkSWNvbnModlgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltbYmEsRnllLHh5ZV1dfSksZH0pKCksbk89KCgpPT57Y2xh''@;'; put 'put ''c3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYVJlLEtPZSxEcyxGeWUsQmZlLHFhLHNxLGZTLE9PZSxNLFFBZSxUUmUsSFJlLFlSZSx0eWUsTHMsRGws''@;'; put 'put ''TlJlLFJjLGpSZV19KSxkfSkoKTtmdW5jdGlvbiBVUmUoZCxnKXsxJmQmJihudCgwLCJzcGFuIiwxMCksWXQoMSwibG9hZGluZyIpLG90KCkpfWZ1bmN0aW9uIFFSZShkLGcpezEmZCYmKG50KDAsInNwYW4iLDExKSxZdCgxLCJsb2FkZWQiKSxvdCgpKX1mdW5jdGlvbiBKUmUoZCxnKXsxJmQm''@;'; put 'put ''JihudCgwLCJzcGFuIiwxMiksWXQoMSwiZmFpbGVkIiksb3QoKSl9ZnVuY3Rpb24gWFJlKGQsZyl7aWYoMSZkJiYobnQoMCwicCIpKDEsImNvZGUiKSxZdCgyKSxvdCgpLFl0KDMsIiBceGEwICIpLHJuKDQsVVJlLDIsMCwic3BhbiIsNykscm4oNSxRUmUsMiwwLCJzcGFuIiw4KSxybig2LEpS''@;'; put 'put ''ZSwyLDAsInNwYW4iLDkpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgyKSxqaShoLnByb2dyYW0pLHV0KDIpLFR0KCJuZ0lmIixoLnJ1bm5pbmcpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ydW5uaW5nJiZoLnN1Y2Nlc3NmdWwpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ydW5uaW5nJiYh''@;'; put 'put ''aC5zdWNjZXNzZnVsKX19ZnVuY3Rpb24gS1JlKGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLXNpZ25wb3N0LWNvbnRlbnQiLDUpLHJuKDEsWFJlLDcsNCwicCIsNiksb3QoKSksMiZkKXtjb25zdCBoPVF0KCk7VHQoImNsclBvc2l0aW9uIiwiYm90dG9tLW1pZGRsZSIpLHV0KDEpLFR0KCJuZ0Zv''@;'; put 'put ''ck9mIixoLnJlcXVlc3RzKX19bGV0ICRSZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5sb2FkaW5nPSExLHRoaXMucmVxdWVzdHM9W10sdGhpcy5fbG9hZGluZ1N1Yj1uZXcgVGV9bmdPbkluaXQoKXt9bmdPbkRlc3Ryb3koKXt0aGlzLl9sb2FkaW5nU3ViLnVuc3Vic2NyaWJl''@;'; put 'put ''KCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtbG9hZGluZy1pbmRpY2F0b3IiXV0sZGVjbHM6Nix2YXJzOjYsY29uc3RzOltbMSwibG9hZGluZy1pbmRpY2F0b3IiXSxbImNs''@;'; put 'put ''clNpZ25wb3N0VHJpZ2dlciIsIiIsMSwic3Bpbm5lciIsInNwaW5uZXItc20iLCJzcGlubmVyLWludmVyc2UiXSxbImNsclNpZ25wb3N0VHJpZ2dlciIsIiIsInNoYXBlIiwiY2hlY2siLCJzaXplIiwiMjAiLDEsImlzLWluZm8iXSxbImNsclNpZ25wb3N0VHJpZ2dlciIsIiIsInNoYXBlIiwi''@;'; put 'put ''ZXJyb3IiLCJzaXplIiwiMjQiLDEsImlzLWVycm9yIl0sWzMsImNsclBvc2l0aW9uIiw0LCJjbHJJZk9wZW4iXSxbMywiY2xyUG9zaXRpb24iXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInJ1bm5pbmciLDQsIm5nSWYiXSxbImNsYXNzIiwic3VjY2VzcyIsNCwibmdJZiJdLFsi''@;'; put 'put ''Y2xhc3MiLCJmYWlsIiw0LCJuZ0lmIl0sWzEsInJ1bm5pbmciXSxbMSwic3VjY2VzcyJdLFsxLCJmYWlsIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiZGl2IiwwKSgxLCJjbHItc2lnbnBvc3QiKSxDcigyLCJzcGFuIiwxKSgzLCJjbHItaWNvbiIsMikoNCwiY2xyLWlj''@;'; put 'put ''b24iLDMpLHJuKDUsS1JlLDIsMiwiY2xyLXNpZ25wb3N0LWNvbnRlbnQiLDQpLG90KCkoKSksMiZoJiYodXQoMiksTmQoImRpc3BsYXkiLHYubG9hZGluZz8iaW5saW5lLWJsb2NrIjoibm9uZSIpLHV0KDEpLE5kKCJkaXNwbGF5Iiwhdi5sb2FkaW5nJiZ2LnJlcXVlc3RzLmxlbmd0aD4wJiZ2''@;'; put 'put ''LnJlcXVlc3RzWzBdLnN1Y2Nlc3NmdWw/ImlubGluZS1ibG9jayI6Im5vbmUiKSx1dCgxKSxOZCgiZGlzcGxheSIsIXYubG9hZGluZyYmdi5yZXF1ZXN0cy5sZW5ndGg+MCYmIXYucmVxdWVzdHNbMF0uc3VjY2Vzc2Z1bD8iaW5saW5lLWJsb2NrIjoibm9uZSIpKX0sZGVwZW5kZW5jaWVzOlt4''@;'; put 'put ''cyxObyx3bCxQYSxHZmUsSHllLHlxXSxzdHlsZXM6WyIubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVde2xpbmUtaGVpZ2h0OjIuNXJlbTtoZWlnaHQ6Mi41cmVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQt''@;'; put 'put ''JUNPTVAlXSAgIC5zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtsaW5lLWhlaWdodDoyNHB4O2NvbG9yOiM1''@;'; put 'put ''NjU2NTY7Y3Vyc29yOmF1dG99LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50''@;'; put 'put ''OnNwYWNlLWJldHdlZW59LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0ubG9hZGluZy1pbmRpY2F0b3JbX25n''@;'; put 'put ''Y29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV06bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250''@;'; put 'put ''ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6MTBweH0ubG9hZGluZy1pbmRpY2F0b3JbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNpZ25wb3N0LWNvbnRlbnRbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVdICAgcFtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLnJ1bm5pbmdbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlOWJmMDR9LmxvYWRpbmctaW5kaWNhdG9yW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1zaWducG9zdC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVdICAgc3Bhbi5zdWNjZXNzW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNjBiNTE1fS5sb2FkaW5nLWluZGljYXRvcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItc2lnbnBvc3QtY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; put 'put ''IHNwYW4uZmFpbFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6I2M5MjEwMH0iXX0pLGR9KSgpLHFSZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdil7dGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5sb2dnZXJTZXJ2aWNlPXYsdGhpcy5fc3Vic2NyaXB0aW9uPW5ldyBUZSx0aGlzLmxvYWRp''@;'; put 'put ''bmc9ITEsdGhpcy5hbGVydENsb3NlZD0hMCx0aGlzLmRhdGE9e3VzZXI6bnVsbCxwYXNzOm51bGx9fW5nT25Jbml0KCl7IlJlZGlyZWN0ZWQiIT09dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkubG9naW5NZWNoYW5pc20mJih0aGlzLl9zdWJzY3JpcHRpb249dGhpcy5zYXNTZXJ2''@;'; put 'put ''aWNlLnNob3VsZExvZ2luLnN1YnNjcmliZSh2PT57dGhpcy5pc0FjdGl2ZT12O2xldCB5PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKTsheXx8KHY/eS5jbGFzc0xpc3QuYWRkKCJzaG91bGQtbG9naW4iKTp5LmNsYXNzTGlzdC5yZW1vdmUoInNob3VsZC1sb2dpbiIpKX0pKX1uZ09u''@;'; put 'put ''RGVzdHJveSgpe3RoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpfXN1Ym1pdCgpe3RoaXMubG9hZGluZ3x8KHRoaXMubG9hZGluZz0hMCx0aGlzLmRhdGEudXNlciYmdGhpcy5kYXRhLnBhc3MmJnRoaXMuc2FzU2VydmljZS5sb2dpbih0aGlzLmRhdGEudXNlcix0aGlzLmRhdGEucGFz''@;'; put 'put ''cykudGhlbihoPT57dGhpcy5sb2FkaW5nPSExLGh8fCh0aGlzLmVycm9yTXNnPSJVc2VybmFtZSBvciBwYXNzd29yZCBpbnZhbGlkIix0aGlzLmFsZXJ0Q2xvc2VkPSExKX0saD0+e3RoaXMubG9nZ2VyU2VydmljZS5sb2coaCksdGhpcy5sb2FkaW5nPSExLHRoaXMuZXJyb3JNc2c9aCx0aGlz''@;'; put 'put ''LmFsZXJ0Q2xvc2VkPSExfSkpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChnMiksS3Qoc2MpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWxvZ2luIl1dLGRlY2xzOjIwLHZhcnM6OSxjb25zdHM6W1sxLCJsb2dp''@;'; put 'put ''bi1zaWRlYmFyLXdyYXBwZXIiXSxbMSwibG9naW4tc2lkZWJhciIsInNpZGVCYXJQcm9wcyJdLFsic3JjIiwiL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2ltYWdlcy9kYXRhY29udHJvbGxlci1zdmciLCJhbHQiLCIiLDEsImxvZ2lu''@;'; put 'put ''LWxvZ28iXSxbMSwibG9naW4iLDMsIm5nU3VibWl0Il0sWzEsInRpdGxlIl0sWzEsIndlbGNvbWUiXSxbMSwiaGludCJdLFsxLCJsb2dpbi1ncm91cCJdLFsiY2xySW5wdXQiLCIiLCJuYW1lIiwidXNlciIsInR5cGUiLCJ0ZXh0IiwicGxhY2Vob2xkZXIiLCJVc2VybmFtZSIsMSwidXNlcm5h''@;'; put 'put ''bWUiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjbHJJbnB1dCIsIiIsIm5hbWUiLCJwYXNzIiwidHlwZSIsInBhc3N3b3JkIiwicGxhY2Vob2xkZXIiLCJQYXNzd29yZCIsMSwicGFzc3dvcmQiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsImNsckFsZXJ0VHlwZSIs''@;'; put 'put ''ImNsckFsZXJ0Q2xvc2VkIiwiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiXSxbImNsci1hbGVydC1pdGVtIiwiIiwxLCJhbGVydC1pdGVtIl0sWzEsImFsZXJ0LXRleHQiXSxbInR5cGUiLCJzdWJtaXQiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwzLCJjbHJMb2FkaW5nIiwiZGlzYWJs''@;'; put 'put ''ZWQiXSxbMSwib3ZlcmxheSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImRpdiIsMCkoMSwiZGl2IiwxKSxDcigyLCJpbWciLDIpLG50KDMsImZvcm0iLDMpLEduKCJuZ1N1Ym1pdCIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zdWJtaXQoKX0pLG50KDQsImxhYmVsIiw0KSg1''@;'; put 'put ''LCJoMyIsNSksWXQoNiwiV2VsY29tZSB0byIpLG90KCksWXQoNywiIERhdGEgQ29udHJvbGxlciAiKSxudCg4LCJoNSIsNiksWXQoOSwiQ2FwdHVyZSwgUmV2aWV3LCBhbmQgQXBwcm92ZSIpLG90KCkoKSxudCgxMCwiZGl2Iiw3KSgxMSwiaW5wdXQiLDgpLEduKCJuZ01vZGVsQ2hhbmdlIixm''@;'; put 'put ''dW5jdGlvbihDKXtyZXR1cm4gdi5kYXRhLnVzZXI9Q30pLG90KCksbnQoMTIsImlucHV0Iiw5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZGF0YS5wYXNzPUN9KSxvdCgpLG50KDEzLCJjbHItYWxlcnQiLDEwKSxHbigiY2xyQWxlcnRDbG9zZWRDaGFuZ2UiLGZ1''@;'; put 'put ''bmN0aW9uKEMpe3JldHVybiB2LmFsZXJ0Q2xvc2VkPUN9KSxudCgxNCwiZGl2IiwxMSkoMTUsInNwYW4iLDEyKSxZdCgxNiksb3QoKSgpKCksbnQoMTcsImJ1dHRvbiIsMTMpLFl0KDE4LCIgTG9nIGluICIpLG90KCkoKSgpKCksQ3IoMTksImRpdiIsMTQpLG90KCkpLDImaCYmKEZpKCJhY3Rp''@;'; put 'put ''dmUiLHYuaXNBY3RpdmUpLHV0KDExKSxUdCgibmdNb2RlbCIsdi5kYXRhLnVzZXIpLHV0KDEpLFR0KCJuZ01vZGVsIix2LmRhdGEucGFzcyksdXQoMSksVHQoImNsckFsZXJ0VHlwZSIsImFsZXJ0LWRhbmdlciIpKCJjbHJBbGVydENsb3NlZCIsdi5hbGVydENsb3NlZCksdXQoMyksamkodi5l''@;'; put 'put ''cnJvck1zZyksdXQoMSksVHQoImNsckxvYWRpbmciLHYubG9hZGluZykoImRpc2FibGVkIix2LmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOltwZyxtMSxUcyxkZyxJcyxMYyxwWixnWixnbyx3LGF0LHB2XSxzdHlsZXM6WyIuc2lkZUJhclByb3BzW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3Jv''@;'; put 'put ''dW5kOiMzMTQzNTEhaW1wb3J0YW50O2NvbG9yOiNlMGUwZTB9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBoMltfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAuc2lkZUJhclByb3Bz''@;'; put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV0sIC5zaWRlQmFyUHJvcHNbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbX25nY29udGVudC0lQ09NUCVde2Nv''@;'; put 'put ''bG9yOiNlMGUwZTB9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjp3aGVhdCFpbXBvcnRhbnR9LnNpZGVCYXJQcm9wc1tfbmdjb250ZW50LSVDT01QJV0gICBhW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjoj''@;'; put 'put ''ZTBlMGUwfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7cG9zaXRpb246Zml4ZWQ7dG9wOjA7bGVmdDowO3BvaW50ZXItZXZlbnRzOm5vbmU7ei1pbmRleDoxMDAwMH0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRl''@;'; put 'put ''bnQtJUNPTVAlXSA+ICpbX25nY29udGVudC0lQ09NUCVde3BvaW50ZXItZXZlbnRzOmF1dG99LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9w''@;'; put 'put ''OjA7Ym90dG9tOjA7bGVmdDowO2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNkZGQ7cGFkZGluZzo0MHB4O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTQwMHB4KTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRl''@;'; put 'put ''bnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0lQ09NUCVde3otaW5kZXg6MTAxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubG9naW4tc2lkZWJhci13''@;'; put 'put ''cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNpemU6MzJweDtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1o''@;'; put 'put ''ZWlnaHQ6MzZweH0ubG9naW4tc2lkZWJhci13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1zaWRlYmFyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGZvcm0ubG9naW5bX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC53ZWxjb21lW19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjM2cHh9LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAubG9naW4tc2lkZWJhcltfbmdjb250ZW50LSVDT01QJV0gICBmb3JtLmxvZ2luW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2dpbi1ncm91cFtfbmdjb250ZW50''@;'; put 'put ''LSVDT01QJV17ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwYWRkaW5nOjQ4cHggMCAwfS5sb2dpbi1zaWRlYmFyLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVdICAgZm9ybS5sb2dpbltfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV0gICAubG9naW4tZ3JvdXBbX25nY29udGVudC0lQ09NUCVdID4gKltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjZweCAwIDE4cHh9LmxvZ2luLXNpZGViYXItd3JhcHBlci5hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLmxvZ2luLXNpZGViYXJbX25nY29udGVudC0lQ09NUCVd''@;'; put 'put ''e3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7ei1pbmRleDoxMDF9LmxvZ2luLXNpZGViYXItd3JhcHBlci5hY3RpdmVbX25nY29udGVudC0lQ09NUCVdICAgLm92ZXJsYXlbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6YmxvY2t9LmxvZ2luLXNpZGViYXItd3JhcHBlcltfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV0gICAub3ZlcmxheVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpub25lO3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO2JhY2tncm91bmQ6cmdiYSgzMywzMywzMywuNSk7ei1pbmRleDoxMDB9ICAubG9naW4tc2lkZWJhci13cmFwcGVy''@;'; put 'put ''IC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyLCAgIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIC51c2VybmFtZSwgICAubG9naW4tc2lkZWJhci13cmFwcGVyIC5sb2dpbi1ncm91cCAucGFzc3dvcmR7d2lkdGg6MTAwJX0gIC5sb2dpbi1zaWRlYmFyLXdy''@;'; put 'put ''YXBwZXIgLmxvZ2luLWdyb3VwIC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6bm9uZX0gIC5sb2dpbi1zaWRlYmFyLXdyYXBwZXIgLmxvZ2luLWdyb3VwIGJ1dHRvbnttYXgtd2lkdGg6bm9uZX0ubG9naW4tbG9nb1tfbmdjb250ZW50LSVDT01QJV17bWF4LXdpZHRoOjIwMHB4fSJdfSks''@;'; put 'put ''ZH0pKCk7ZnVuY3Rpb24gZUJlKGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIpLENyKDEsImltZyIsMTgpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLEk2KCJzcmMiLGguZ2V0UGljdHVyZVVybCgpLFQ5KX19ZnVuY3Rpb24gdEJlKGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIsMTkp''@;'; put 'put ''LFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpO0ZpKCJoaWRkZW4iLDA9PT1oLmZhaWxlZFJlcXMubGVuZ3RoKSx1dCgxKSxqaShoLmZhaWxlZFJlcXMubGVuZ3RoKX19ZnVuY3Rpb24gbkJlKGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIsMjApLFl0KDEpLG90KCkpLDImZCl7Y29uc3Qg''@;'; put 'put ''aD1RdCgpO0ZpKCJoaWRkZW4iLDA9PT1oLmRlYnVnTG9ncy5sZW5ndGgpLHV0KDEpLGppKGguZGVidWdMb2dzLmxlbmd0aCl9fWZ1bmN0aW9uIHJCZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDIxKX1mdW5jdGlvbiBpQmUoZCxnKXsxJmQmJihCMCgwKSxudCgxLCJhIiwzMSkoMiwic3Bh''@;'; put 'put ''biIsMzIpLFl0KDMsIkRvY3VtZW50YXRpb24iKSxvdCgpKCksUDAoKSl9ZnVuY3Rpb24gb0JlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWRyb3Bkb3duLW1lbnUiLDIyKSgxLCJkaXYiLDIzLDI0KSgzLCJjbHItdG9nZ2xlLWNvbnRhaW5lciIsMjUpLEduKCJjbGljayIs''@;'; put 'put ''ZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz12YSgyKTtyZXR1cm4gYShRdCgpLm9uRGVidWdSb3dDbGljayh5LEMpKX0pLG50KDQsImNsci10b2dnbGUtd3JhcHBlciIpKDUsImlucHV0IiwyNiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuc2Fz''@;'; put 'put ''anNDb25maWcuZGVidWc9eSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLm9uRGVidWdNb2RlQ2hhbmdlKCkpfSksb3QoKSxudCg2LCJsYWJlbCIpLFl0KDcsIkRlYnVnIE1vZGUiKSxvdCgpKCkoKSgpLG50KDgsImEiLDI3KSxHbigiY2xpY2siLGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5vcGVuUmVxdWVzdHNNb2RhbCgpKX0pLG50KDksInNwYW4iKSxZdCgxMCwiU0FTIFJlcXVlc3RzIiksb3QoKSgpLHJuKDExLGlCZSw0LDAsIm5nLWNvbnRhaW5lciIsMiksQ3IoMTIsImRpdiIsMTUpLG50KDEzLCJhIiwyOCksR24oImNsaWNr''@;'; put 'put ''IixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLmxvZ291dCh5KSl9KSxudCgxNCwic3BhbiIpLFl0KDE1LCJMb2cgT3V0Iiksb3QoKSxDcigxNiwiY2xyLWljb24iLDI5KSxvdCgpLG50KDE3LCJkaXYiLDMwKSgxOCwic3BhbiIpLFl0KDE5KSxvdCgpKCkoKX1pZigyJmQpe2NvbnN0''@;'; put 'put ''IGg9UXQoKTt1dCg1KSxUdCgibmdNb2RlbCIsaC5zYXNqc0NvbmZpZy5kZWJ1ZyksdXQoNiksVHQoIm5nSWYiLCFoLmlzRGVwbG95UGFnZSksdXQoOCksSmkoInYiLGguY29tbWl0VmVyLCIiKX19Y29uc3QgYUJlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YW5kYWxvbmU6ITB9fTtsZXQgbEJlPSgo''@;'; put 'put ''KT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy51c2VyU2VydmljZT1oLHRoaXMuc2FzU2VydmljZT12LHRoaXMuZXZlbnRTZXJ2aWNlPXksdGhpcy5yb3V0ZXI9Qyx0aGlzLnVzZXJOYW1lPSJOb3QgbG9nZ2VkIGluIix0aGlzLnJlcVN1Yj1uZXcgVGUsdGhpcy51c2VyU3Vi''@;'; put 'put ''PW5ldyBUZSx0aGlzLmFwcExvZ3M9W10sdGhpcy5kZWJ1Z0xvZ3M9W10sdGhpcy5mYWlsZWRSZXFzPVtdLHRoaXMuc2FzRXJyb3JzPVtdLHRoaXMuaXNWaXlhPSExLHRoaXMuc2FzanNDb25maWc9bmV3IFUzLlNBU2pzQ29uZmlnLHRoaXMucmVxdWVzdHNDb3VudD0wLHRoaXMuY29tbWl0VmVy''@;'; put 'put ''PSIifW5nT25Jbml0KCl7dGhpcy51c2VyU3ViPXRoaXMudXNlclNlcnZpY2UudXNlckNoYW5nZS5zdWJzY3JpYmUoaD0+e3RoaXMudXNlck5hbWU9aC51c2VybmFtZX0pLHRoaXMuc2FzanNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksIlNBU1ZJWUEiPT09dGhpcy5z''@;'; put 'put ''YXNqc0NvbmZpZy5zZXJ2ZXJUeXBlJiYodGhpcy5pc1ZpeWE9ITApLHRoaXMuY29tbWl0VmVyPSJ2NS4wLjAiLnJlcGxhY2UoInYiLCIiKSsiLmcwMjlmYTlmMCJ9bmdPbkRlc3Ryb3koKXt0aGlzLnJlcVN1Yi51bnN1YnNjcmliZSgpLHRoaXMudXNlclN1Yi51bnN1YnNjcmliZSgpfW9wZW5S''@;'; put 'put ''ZXF1ZXN0c01vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub3BlblJlcXVlc3RzTW9kYWwoKX1vbkRlYnVnTW9kZUNoYW5nZShoKXt0aGlzLnNhc2pzQ29uZmlnJiZ0aGlzLnNhc1NlcnZpY2Uuc2V0RGVidWdTdGF0ZSh0aGlzLnNhc2pzQ29uZmlnLmRlYnVnKX1vbkRlYnVnUm93Q2xpY2soaCx2''@;'; put 'put ''KXtoLnN0b3BQcm9wYWdhdGlvbigpLHNldFRpbWVvdXQoKCk9Pnt2LmNsaWNrKCl9LDMwMCl9bG9nb3V0KGgpe2gucHJldmVudERlZmF1bHQoKTt0cnl7dGhpcy5zYXNTZXJ2aWNlLmxvZ291dCgpfWNhdGNoKHYpe2NvbnNvbGUuZXJyb3Iodil9fWdldFBpY3R1cmVVcmwoKXtyZXR1cm4iL2lk''@;'; put 'put ''ZW50aXRpZXMvdXNlcnMvIit0aGlzLnVzZXJOYW1lKyIvYXZhdGFyL2NvbnRlbnQifWdldCBpc0RlcGxveVBhZ2UoKXtyZXR1cm4gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJkZXBsb3kiKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoT0gp''@;'; put 'put ''LEt0KGcyKSxLdChtdSksS3QoWmwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXVzZXItbmF2LWRyb3Bkb3duIl1dLGRlY2xzOjI4LHZhcnM6MTAsY29uc3RzOltbMSwiYXBwLW5hdi1kcm9wZG93biIsImQtbWQtYmxvY2siXSxbImNsckRyb3Bkb3duVG9nZ2xl''@;'; put 'put ''IiwiIiwxLCJuYXYtdGV4dCIsImNvbG9yLXdoaXRlIl0sWzQsIm5nSWYiXSxbImNsYXNzIiwiYmFkZ2UgYmFkZ2UtZGFuZ2VyIiwzLCJoaWRkZW4iLDQsIm5nSWYiXSxbImNsYXNzIiwiYmFkZ2UgYmFkZ2UtaW5mbyIsMywiaGlkZGVuIiw0LCJuZ0lmIl0sWyJzaGFwZSIsImNhcmV0IGRvd24i''@;'; put 'put ''LDQsIm5nSWYiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0Iiw0LCJjbHJJZk9wZW4iXSxbMSwiY29udGVudC1jb250YWluZXIiLCJoLWF1dG8iXSxbMSwic2lkZW5hdiIsImQtYmxvY2siLCJkLW1kLW5vbmUiLDMsImNsci1uYXYtbGV2ZWwiXSxbMSwic2lkZW5hdi1jb250ZW50Il0s''@;'; put 'put ''WyJocmVmIiwiLi4uIiwxLCJuYXYtbGluayIsImFjdGl2ZSJdLFsxLCJ0b2dnbGUtc3dpdGNoIl0sWyJpZCIsImRlYnVnLXRvZ2dsZTIiLCJ0eXBlIiwiY2hlY2tib3giLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsIm5nTW9kZWxDaGFuZ2UiXSxbImZvciIsImRlYnVnLXRvZ2dsZTIi''@;'; put 'put ''LDEsImRlYnVnLXRvZ2dsZS1sYWJlbCIsImNvbG9yLWRhcmstZ3JheSJdLFsidGFyZ2V0IiwiX2JsYW5rIiwiaHJlZiIsImh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pbyIsMSwibmF2LWxpbmsiLCJkLWJsb2NrIl0sWzEsInNlcGFyYXRvciJdLFsiaHJlZiIsIi4uLiIsMSwibmF2LWxp''@;'; put 'put ''bmsiLCJkLWJsb2NrIiwzLCJjbGljayJdLFsic2hhcGUiLCJsb2dvdXQiXSxbImFsdCIsIiIsMSwiYXZhdGFyLWltZyIsMywic3JjIl0sWzEsImJhZGdlIiwiYmFkZ2UtZGFuZ2VyIl0sWzEsImJhZGdlIiwiYmFkZ2UtaW5mbyJdLFsic2hhcGUiLCJjYXJldCBkb3duIl0sWyJjbHJQb3NpdGlv''@;'; put 'put ''biIsImJvdHRvbS1yaWdodCJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkZWJ1Zy1zd2l0Y2gtaXRlbSJdLFsiZHJvcGRvd25JdGVtRGVidWciLCIiXSxbMSwidG9nZ2xlLXN3aXRjaCIsMywiY2xpY2siXSxbImlkIiwiZGVidWctdG9nZ2xlMSIsInR5cGUiLCJjaGVja2JveCIsImNsclRv''@;'; put 'put ''Z2dsZSIsIiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNsckRyb3Bkb3duSXRlbSIsIiIsMywiY2xpY2siXSxbImhyZWYiLCIuLi4iLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImxvZ291dCIsMSwiY2xyLWxvZ291dCJdLFsxLCJjb3B5UmlnaHQi''@;'; put 'put ''XSxbInRhcmdldCIsIl9ibGFuayIsImhyZWYiLCJodHRwczovL2RvY3MuZGF0YWNvbnRyb2xsZXIuaW8iLCJjbHJEcm9wZG93bkl0ZW0iLCIiXSxbMSwiZHJvcGRvd24tdGV4dCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImNsci1kcm9wZG93biIsMCkoMSwiYnV0dG9u''@;'; put 'put ''IiwxKSgyLCJzcGFuIiksWXQoMyksb3QoKSxybig0LGVCZSwyLDEsInNwYW4iLDIpLHJuKDUsdEJlLDIsMywic3BhbiIsMykscm4oNixuQmUsMiwzLCJzcGFuIiw0KSxybig3LHJCZSwxLDAsImNsci1pY29uIiw1KSxvdCgpLHJuKDgsb0JlLDIwLDMsImNsci1kcm9wZG93bi1tZW51Iiw2KSxv''@;'; put 'put ''dCgpLG50KDksImRpdiIsNykoMTAsIm5hdiIsOCkoMTEsInNlY3Rpb24iLDkpKDEyLCJhIiwxMCksWXQoMTMpLG90KCksbnQoMTQsImRpdiIpKDE1LCJmb3JtIikoMTYsImRpdiIsMTEpKDE3LCJpbnB1dCIsMTIpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5zYXNq''@;'; put 'put ''c0NvbmZpZy5kZWJ1Zz1DfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYub25EZWJ1Z01vZGVDaGFuZ2UoKX0pLG90KCksbnQoMTgsImxhYmVsIiwxMyksWXQoMTksIkRlYnVnIE1vZGUiKSxvdCgpKCkoKSgpLG50KDIwLCJhIiwxNCkoMjEsInNwYW4iKSxZdCgyMiwiRG9j''@;'; put 'put ''dW1lbnRhdGlvbiIpLG90KCkoKSxDcigyMywiZGl2IiwxNSksbnQoMjQsImEiLDE2KSxHbigiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB2LmxvZ291dChDKX0pLG50KDI1LCJzcGFuIiksWXQoMjYsIkxvZyBPdXQiKSxvdCgpLENyKDI3LCJjbHItaWNvbiIsMTcpLG90KCkoKSgpKCkpLDIm''@;'; put 'put ''aCYmKHV0KDMpLGppKHYudXNlck5hbWUpLHV0KDEpLFR0KCJuZ0lmIiwiTm90IGxvZ2dlZCBpbiIhPT12LnVzZXJOYW1lJiZ2LmlzVml5YSksdXQoMSksVHQoIm5nSWYiLCF2LnNhc2pzQ29uZmlnLmRlYnVnKSx1dCgxKSxUdCgibmdJZiIsdi5zYXNqc0NvbmZpZy5kZWJ1ZyksdXQoMSksVHQo''@;'; put 'put ''Im5nSWYiLCF2LmlzVml5YSksdXQoMyksVHQoImNsci1uYXYtbGV2ZWwiLDIpLHV0KDMpLEppKCIgIix2LnVzZXJOYW1lLCIgIiksdXQoNCksVHQoIm5nTW9kZWwiLHYuc2FzanNDb25maWcuZGVidWcpKCJuZ01vZGVsT3B0aW9ucyIsY3MoOSxhQmUpKSl9LGRlcGVuZGVuY2llczpbTm8scGcs''@;'; put 'put ''SWYsVHMsZGcsSXMsTGMsd2wsUGEsYXQsUm8sbG8sT2ksTHllLHd2LGJTLF9TLEpMXSxzdHlsZXM6WycuY29weVJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcHh9LmNvcHlSaWdodFtfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXt3b3Jk''@;'; put 'put ''LWJyZWFrOmJyZWFrLXdvcmQ7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtsaW5lLWhlaWdodDoxLjV9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctcmlnaHQ6MTVweDtsaW5lLWhlaWdodDozcmVtO2hlaWdodDoz''@;'; put 'put ''cmVtfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGJ1dHRvbi5kcm9wZG93bi10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmYWZhZmE7cG9zaXRpb246cmVsYXRpdmV9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdID4gYnV0dG9uLmRy''@;'; put 'put ''b3Bkb3duLXRvZ2dsZVtfbmdjb250ZW50LSVDT01QJV06YWZ0ZXJ7Y29udGVudDoiIjtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7b3BhY2l0eTouMTU7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6NDBweDt0b3A6MTBweH0uYXBwLW5hdi1kcm9wZG93bltfbmdj''@;'; put 'put ''b250ZW50LSVDT01QJV0gPiBidXR0b24uZHJvcGRvd24tdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5iYWRnZS5oaWRkZW5bX25nY29udGVudC0lQ09NUCVde3Zpc2liaWxpdHk6aGlkZGVufS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1t''@;'; put 'put ''ZW51W19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojNTY1NjU2O3BhZGRpbmctYm90dG9tOjB9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLnNlcGFyYXRvcltfbmdjb250ZW50LSVDT01QJV17bWFy''@;'; put 'put ''Z2luOjEwcHggMDtib3JkZXItYm90dG9tOjFweCBzb2xpZCBncmF5fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7''@;'; put 'put ''ZmxleC1kaXJlY3Rpb246cm93O2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6NDVweDtsaW5lLWhlaWdodDo0MHB4fS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5k''@;'; put 'put ''cm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHNwYW4uZHJvcGRvd24tdGV4dFtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzU2NTY1Nn0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0gICAu''@;'; put 'put ''ZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAuYmFkZ2VbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxNXB4O3JpZ2h0OjI2cHg7bWFyZ2luLXJpZ2h0OjB9LmFwcC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3du''@;'; put 'put ''LW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duLWl0ZW0uZGVidWctc3dpdGNoLWl0ZW1bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MH0uYXBwLW5hdi1kcm9wZG93bltfbmdjb250ZW50LSVDT01QJV0gICBjbHItZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV0g''@;'; put 'put ''ICAuZHJvcGRvd24taXRlbVtfbmdjb250ZW50LSVDT01QJV0gICAudG9nZ2xlLXN3aXRjaFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; put 'put ''IGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbHItbG9nb3V0W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoyMHB4O3RvcDoxNXB4fS5hcHAtbmF2LWRyb3Bkb3duW19u''@;'; put 'put ''Z2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXRvZ2dsZS13cmFwcGVye3dpZHRoOjEwMCU7bWFyZ2luOjA7aGVpZ2h0OjEwMCU7cGFkZGluZzoxMHB4IDIwcHh9LmFw''@;'; put 'put ''cC1uYXYtZHJvcGRvd25bX25nY29udGVudC0lQ09NUCVdICAgY2xyLWRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duLWl0ZW1bX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dHt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDt3aWR0aDoxMDAlO2hlaWdo''@;'; put 'put ''dDoxMDAlO2N1cnNvcjpwb2ludGVyfS5hcHAtbmF2LWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGNsci1kcm9wZG93bi1tZW51W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kcm9wZG93bi1pdGVtW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0''@;'; put 'put ''eXBlPWNoZWNrYm94XStsYWJlbDphZnRlcnt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50fS5kZWJ1Zy10b2dnbGUtbGFiZWxbX25nY29udGVudC0lQ09NUCVde3BhZGRpbmctbGVmdDo0MnB4fUBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCl7LnNpZGVuYXYtY29udGVudFtfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV0gICBhLm5hdi1saW5rLmFjdGl2ZVtfbmdjb250ZW50LSVDT01QJV17Y29sb3I6aW5oZXJpdDtwYWRkaW5nOjE1cHg7YmFja2dyb3VuZDojNTY1NjU2fX0ubmF2LWxpbmsuZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV0gICBzcGFuLmJhZGdlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3Np''@;'; put 'put ''dGlvbjphYnNvbHV0ZX0uYXZhdGFyLWltZ1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NDBweDtoZWlnaHQ6NDBweDttYXJnaW4tbGVmdDoxMHB4O2JvcmRlci1yYWRpdXM6NTBweH0nXX0pLGR9KSgpO2Z1bmN0aW9uIHNCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1h''@;'; put 'put ''bGVydCIsMiksR24oImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gYShpdChoKS4kaW1wbGljaXQuY2xvc2VkPXkpfSkoImNsckFsZXJ0Q2xvc2VkQ2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLm9uQWxlcnRDbG9zZSgpKX0pLG50KDEsImRp''@;'; put 'put ''diIsMykoMiwic3BhbiIsNCksWXQoMyksb3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJjbHJBbGVydFR5cGUiLGgudHlwZSkoImNsckFsZXJ0QXBwTGV2ZWwiLCEwKSgiY2xyQWxlcnRDbG9zZWQiLGguY2xvc2VkKSx1dCgzKSxKaSgiICIsaC5tZXNzYWdlLCIgIil9''@;'; put 'put ''fWZ1bmN0aW9uIHVCZShkLGcpe2lmKDEmZCYmKG50KDAsImNsci1hbGVydHMiKSxybigxLHNCZSw0LDQsImNsci1hbGVydCIsMSksb3QoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMSksVHQoIm5nRm9yT2YiLGguYWxlcnRzKX19bGV0IGNCZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgp''@;'; put 'put ''e3RoaXMuX2FsZXJ0c1NlcnZpY2U9aCx0aGlzLmFsZXJ0cz1bXSx0aGlzLmhhc09wZW5BbGVydD0hMSx0aGlzLmFsZXJ0c1N1Yj1uZXcgVGV9bmdPbkluaXQoKXt0aGlzLmFsZXJ0c1N1Yj10aGlzLl9hbGVydHNTZXJ2aWNlLmFsZXJ0cy5zdWJzY3JpYmUoaD0+e3RoaXMuYWxlcnRzLnB1c2go''@;'; put 'put ''aCksdGhpcy5oYXNPcGVuQWxlcnQ9ITAsaC5lcnImJmNvbnNvbGUuZXJyb3IoaC5lcnIpfSl9b25BbGVydENsb3NlKCl7dGhpcy5oYXNPcGVuQWxlcnQ9dGhpcy5hbGVydHMuc29tZShoPT4haC5jbG9zZWQpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxk''@;'; put 'put ''KShLdChMSCkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtYWxlcnRzIl1dLGRlY2xzOjEsdmFyczoxLGNvbnN0czpbWzQsIm5nSWYiXSxbMywiY2xyQWxlcnRUeXBlIiwiY2xyQWxlcnRBcHBMZXZlbCIsImNsckFsZXJ0Q2xvc2VkIiwiY2xyQWxlcnRDbG9zZWRD''@;'; put 'put ''aGFuZ2UiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJjbHJBbGVydFR5cGUiLCJjbHJBbGVydEFwcExldmVsIiwiY2xyQWxlcnRDbG9zZWQiLCJjbHJBbGVydENsb3NlZENoYW5nZSJdLFsxLCJhbGVydC1pdGVtIl0sWzEsImFsZXJ0LXRleHQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsx''@;'; put 'put ''JmgmJnJuKDAsdUJlLDIsMSwiY2xyLWFsZXJ0cyIsMCksMiZoJiZUdCgibmdJZiIsdi5oYXNPcGVuQWxlcnQpfSxkZXBlbmRlbmNpZXM6W3hzLE5vLHBaLEV5ZSxnWl0sc3R5bGVzOlsiY2xyLWFsZXJ0c1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9ja30iXX0pLGR9KSgpO2Z1bmN0''@;'; put 'put ''aW9uIGZCZShkLGcpezEmZCYmKG50KDAsInAiLDYpLFl0KDEsIk5vIHJlcXVlc3RzIG1hZGUiKSxvdCgpKX1mdW5jdGlvbiBoQmUoZCxnKXsxJmQmJihudCgwLCJzcGFuIiksQ3IoMSwiY2xyLWljb24iLDEzKSxvdCgpKX1mdW5jdGlvbiBkQmUoZCxnKXsxJmQmJihudCgwLCJzcGFuIiksQ3Io''@;'; put 'put ''MSwiY2xyLWljb24iLDE0KSxvdCgpKX1mdW5jdGlvbiBwQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItdHJlZS1ub2RlIiwyMSksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0LEk9UXQoMykuaW5kZXg7cmV0dXJuIGEoUXQoMikuZ29U''@;'; put 'put ''b0xvZ0xpbmUoQywicmVxdWVzdF8iK0ksImVycm9yIikpfSksbnQoMSwiYnV0dG9uIiwyMiksWXQoMiksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgyKSxKaSgiICIsaCwiICIpfX1jb25zdCBxeWU9ZnVuY3Rpb24oKXtyZXR1cm5bXX07ZnVuY3Rpb24gZ0JlKGQsZyl7''@;'; put 'put ''aWYoMSZkJiYobnQoMCwiY2xyLXRyZWUtbm9kZSIsMTgpLENyKDEsImNsci1pY29uIiwxOSksWXQoMikscm4oMyxwQmUsMywxLCJjbHItdHJlZS1ub2RlIiwyMCksb3QoKSksMiZkKXtjb25zdCBoPVF0KDIpLiRpbXBsaWNpdDt1dCgyKSxKaSgiIEVycm9ycyAoIixoLmxvZ0Vycm9ycy5sZW5n''@;'; put 'put ''dGgsIikgIiksdXQoMSksVHQoIm5nRm9yT2YiLGgubG9nRXJyb3JzfHxjcygyLHF5ZSkpfX1mdW5jdGlvbiBtQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItdHJlZS1ub2RlIiwyMSksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0LEk9''@;'; put 'put ''UXQoMykuaW5kZXg7cmV0dXJuIGEoUXQoMikuZ29Ub0xvZ0xpbmUoQywicmVxdWVzdF8iK0ksIndhcm5pbmciKSl9KSxudCgxLCJidXR0b24iLDIyKSxZdCgyKSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIHZCZShkLGcp''@;'; put 'put ''e2lmKDEmZCYmKG50KDAsImNsci10cmVlLW5vZGUiLDE4KSxDcigxLCJjbHItaWNvbiIsMjMpLFl0KDIpLHJuKDMsbUJlLDMsMSwiY2xyLXRyZWUtbm9kZSIsMjApLG90KCkpLDImZCl7Y29uc3QgaD1RdCgyKS4kaW1wbGljaXQ7dXQoMiksSmkoIiBXYXJuaW5ncyAoIixoLmxvZ1dhcm5pbmdz''@;'; put 'put ''Lmxlbmd0aCwiKSAiKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5sb2dXYXJuaW5nc3x8Y3MoMixxeWUpKX19ZnVuY3Rpb24gQUJlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiwyNCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoMikuJGltcGxp''@;'; put 'put ''Y2l0O3JldHVybiBhKFF0KDIpLmRvd25sb2FkTG9nKHkubG9nRmlsZSkpfSksWXQoMSwiIERvd25sb2FkICIpLG90KCl9fWZ1bmN0aW9uIHlCZShkLGcpe2lmKDEmZCYmKG50KDAsImNsci10YWItY29udGVudCIpKDEsImNsci10cmVlIikscm4oMixnQmUsNCwzLCJjbHItdHJlZS1ub2RlIiwx''@;'; put 'put ''NSkscm4oMyx2QmUsNCwzLCJjbHItdHJlZS1ub2RlIiwxNSksb3QoKSxDcig0LCJkaXYiLDE2KSxybig1LEFCZSwyLDAsImJ1dHRvbiIsMTcpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdDt1dCgyKSxUdCgibmdJZiIsaC5sb2dFcnJvcnMpLHV0KDEpLFR0KCJuZ0lmIixoLmxv''@;'; put 'put ''Z1dhcm5pbmdzKSx1dCgxKSxUdCgiaW5uZXJIVE1MIixoLmxvZ0ZpbGUsVTgpLHV0KDEpLFR0KCJuZ0lmIiwobnVsbD09aC5sb2dGaWxlP251bGw6aC5sb2dGaWxlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIHdCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImJ1dHRvbiIsMjQpLEdu''@;'; put 'put ''KCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShRdCgyKS5kb3dubG9hZFNvdXJjZUNvZGUoeS5zb3VyY2VDb2RlKSl9KSxZdCgxLCIgRG93bmxvYWQgIiksb3QoKX19ZnVuY3Rpb24gYkJlKGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLXRh''@;'; put 'put ''Yi1jb250ZW50IikoMSwiZGl2IiwyNSksWXQoMiksb3QoKSxybigzLHdCZSwyLDAsImJ1dHRvbiIsMTcpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdDt1dCgyKSxqaShoLnNvdXJjZUNvZGUpLHV0KDEpLFR0KCJuZ0lmIiwobnVsbD09aC5zb3VyY2VDb2RlP251bGw6aC5zb3Vy''@;'; put 'put ''Y2VDb2RlLmxlbmd0aCk+MCl9fWZ1bmN0aW9uIF9CZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImJ1dHRvbiIsMjQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShRdCgyKS5kb3dubG9hZEdlbmVyYXRlZENvZGUo''@;'; put 'put ''eS5nZW5lcmF0ZWRDb2RlKSl9KSxZdCgxLCIgRG93bmxvYWQgIiksb3QoKX19ZnVuY3Rpb24gQ0JlKGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLXRhYi1jb250ZW50IikoMSwiZGl2IiwyNSksWXQoMiksb3QoKSxybigzLF9CZSwyLDAsImJ1dHRvbiIsMTcpLG90KCkpLDImZCl7Y29uc3QgaD1R''@;'; put 'put ''dCgpLiRpbXBsaWNpdDt1dCgyKSxKaSgiICIsaC5nZW5lcmF0ZWRDb2RlLCIgIiksdXQoMSksVHQoIm5nSWYiLChudWxsPT1oLmdlbmVyYXRlZENvZGU/bnVsbDpoLmdlbmVyYXRlZENvZGUubGVuZ3RoKT4wKX19ZnVuY3Rpb24ga0JlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwi''@;'; put 'put ''ZGl2IiwzMSksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0O3JldHVybiBhKFF0KDMpLiRpbXBsaWNpdC5zZWxlY3RlZFRhYmxlPUMua2V5KX0pLFl0KDEpLG90KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O0ZpKCJzZWxlY3RlZCIsUXQoMykuJGlt''@;'; put 'put ''cGxpY2l0LnNlbGVjdGVkVGFibGU9PT1oLmtleSksdXQoMSksSmkoIiAiLGgua2V5LCIgIil9fWZ1bmN0aW9uIFNCZShkLGcpe2lmKDEmZCYmKG50KDAsImNsci1kcm9wZG93bi1tZW51Iikscm4oMSxrQmUsMiwzLCJkaXYiLDMwKSxubigyLCJrZXl2YWx1ZSIpLG90KCkpLDImZCl7Y29uc3Qg''@;'; put 'put ''aD1RdCgyKS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nRm9yT2YiLHp0KDIsMSxoLlNBU1dPUkspKX19ZnVuY3Rpb24gTUJlKGQsZyl7aWYoMSZkJiYobnQoMCwicCIsMzUpKDEsInN0cm9uZyIpLFl0KDIpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDMpLiRpbXBsaWNpdDt1dCgyKSxKaSgiIixo''@;'; put 'put ''LnNlbGVjdGVkVGFibGUsIiAoZmlyc3QgMTAgcm93cykgIil9fWZ1bmN0aW9uIEVCZShkLGcpe2lmKDEmZCYmKG50KDAsInRoIiksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLEppKCIgIixoLmtleSwiICIpfX1mdW5jdGlvbiB4QmUoZCxnKXtpZigxJmQmJihu''@;'; put 'put ''dCgwLCJ0ZCIpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PVF0KCkuJGltcGxpY2l0O3V0KDEpLEppKCIgIix2W2gua2V5XSwiICIpfX1mdW5jdGlvbiBUQmUoZCxnKXtpZigxJmQmJihudCgwLCJ0ciIpLHJuKDEseEJlLDIsMSwidGQiLDM3KSxubigyLCJrZXl2YWx1''@;'; put 'put ''ZSIpLG90KCkpLDImZCl7Y29uc3QgaD1RdCg0KS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nRm9yT2YiLHp0KDIsMSxoLlNBU1dPUktbaC5zZWxlY3RlZFRhYmxlXS5maXJzdDEwcm93c1swXSkpfX1mdW5jdGlvbiBJQmUoZCxnKXtpZigxJmQmJihudCgwLCJ0YWJsZSIsMzYpKDEsInRoZWFkIiko''@;'; put 'put ''MiwidHIiKSxybigzLEVCZSwyLDEsInRoIiwzNyksbm4oNCwia2V5dmFsdWUiKSxvdCgpKCksbnQoNSwidGJvZHkiKSxybig2LFRCZSwzLDMsInRyIiwzNyksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMykuJGltcGxpY2l0O3V0KDMpLFR0KCJuZ0Zvck9mIix6dCg0LDIsaC5TQVNXT1JLW2gu''@;'; put 'put ''c2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3NbMF0pKSx1dCgzKSxUdCgibmdGb3JPZiIsaC5TQVNXT1JLW2guc2VsZWN0ZWRUYWJsZV0uZmlyc3QxMHJvd3MpfX1mdW5jdGlvbiBEQmUoZCxnKXtpZigxJmQmJihudCgwLCJjbHItdGFiLWNvbnRlbnQiKSxybigxLE1CZSwzLDEsInAiLDMyKSxu''@;'; put 'put ''dCgyLCJkaXYiLDMzKSxybigzLElCZSw3LDQsInRhYmxlIiwzNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMikuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIixoLnNlbGVjdGVkVGFibGUpLHV0KDIpLFR0KCJuZ0lmIixoLnNlbGVjdGVkVGFibGUpfX1mdW5jdGlvbiBMQmUoZCxnKXtpZigx''@;'; put 'put ''JmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItdGFiIikoMSwiY2xyLWRyb3Bkb3duIiwyNikoMiwiYnV0dG9uIiwyNyksWXQoMywiIFNBUyBXb3JrIFRhYmxlcyAiKSxDcig0LCJjbHItaWNvbiIsMjgpLG90KCkscm4oNSxTQmUsMywzLCJjbHItZHJvcGRvd24tbWVudSIsMjkpLG90KCkscm4o''@;'; put 'put ''NixEQmUsNCwyLCJuZy10ZW1wbGF0ZSIsMTIpLEduKCJjbHJJZkFjdGl2ZUNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoMykudGFibGVzQWN0aXZlPXkpfSksb3QoKX1pZigyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMSksVHQoImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiwh''@;'; put 'put ''MCksdXQoNSksVHQoImNscklmQWN0aXZlIixoLnRhYmxlc0FjdGl2ZSl9fWZ1bmN0aW9uIE9CZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1zdGFjay1ibG9jayIsOCkoMSwiY2xyLXN0YWNrLWxhYmVsIiksWXQoMiksbnQoMywic3BhbiIsOSkscm4oNCxoQmUsMiwwLCJz''@;'; put 'put ''cGFuIiw1KSxybig1LGRCZSwyLDAsInNwYW4iLDUpLG90KCkoKSxudCg2LCJjbHItc3RhY2stY29udGVudCIpLFl0KDcpLG90KCksbnQoOCwiY2xyLXN0YWNrLWJsb2NrIiwxMCkoOSwiY2xyLXN0YWNrLWNvbnRlbnQiKSgxMCwiY2xyLXRhYnMiKSgxMSwiY2xyLXRhYiIpKDEyLCJidXR0b24i''@;'; put 'put ''LDExKSxZdCgxMywiU0FTIExvZyIpLG90KCkscm4oMTQseUJlLDYsNCwibmctdGVtcGxhdGUiLDEyKSxHbigiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLnNhc0xvZ0FjdGl2ZT15KX0pLG90KCksbnQoMTUsImNsci10YWIiKSgxNiwiYnV0dG9u''@;'; put 'put ''IiwxMSksWXQoMTcsIlNBUyBTb3VyY2UgQ29kZSIpLG90KCkscm4oMTgsYkJlLDQsMiwibmctdGVtcGxhdGUiLDEyKSxHbigiY2xySWZBY3RpdmVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLnNhc1NvdXJjZUNvZGVBY3RpdmU9eSl9KSxvdCgpLG50KDE5LCJjbHIt''@;'; put 'put ''dGFiIikoMjAsImJ1dHRvbiIsMTEpLFl0KDIxLCJTQVMgR2VuZXJhdGVkIENvZGUiKSxvdCgpLHJuKDIyLENCZSw0LDIsIm5nLXRlbXBsYXRlIiwxMiksR24oImNscklmQWN0aXZlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgyKS5zYXNHZW5lcmF0ZWRDb2RlQWN0aXZl''@;'; put 'put ''PXkpfSksb3QoKSxybigyMyxMQmUsNywyLCJjbHItdGFiIiw1KSxvdCgpKCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1RdCgyKTtUdCgiaWQiLCJyZXF1ZXN0XyIrdikoImNsclN0YWNrVmlld0xldmVsIiwxKSgiY2xyU3RhY2tWaWV3U2V0c2l6ZSIsMyko''@;'; put 'put ''ImNsclN0YWNrVmlld1Bvc2luc2V0IiwzKSx1dCgyKSxKaSgiICIsaC5zZXJ2aWNlTGluaywiICIpLHV0KDIpLFR0KCJuZ0lmIiwobnVsbD09aC5sb2dXYXJuaW5ncz9udWxsOmgubG9nV2FybmluZ3MubGVuZ3RoKT4wKSx1dCgxKSxUdCgibmdJZiIsKG51bGw9PWgubG9nRXJyb3JzP251bGw6''@;'; put 'put ''aC5sb2dFcnJvcnMubGVuZ3RoKT4wKSx1dCgyKSxqaShoLnBhcnNlZFRpbWVzdGFtcCksdXQoNyksVHQoImNscklmQWN0aXZlIix5LnNhc0xvZ0FjdGl2ZSksdXQoNCksVHQoImNscklmQWN0aXZlIix5LnNhc1NvdXJjZUNvZGVBY3RpdmUpLHV0KDQpLFR0KCJjbHJJZkFjdGl2ZSIseS5zYXNH''@;'; put 'put ''ZW5lcmF0ZWRDb2RlQWN0aXZlKSx1dCgxKSxUdCgibmdJZiIsaC5TQVNXT1JLKX19ZnVuY3Rpb24gUkJlKGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLXN0YWNrLXZpZXciKSxybigxLE9CZSwyNCwxMiwiY2xyLXN0YWNrLWJsb2NrIiw3KSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxU''@;'; put 'put ''dCgibmdGb3JPZiIsaC5zYXNqc1JlcXVlc3RzKX19bGV0IEJCZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLmxvZ2dlclNlcnZpY2U9dix0aGlzLmhlbHBlclNlcnZpY2U9eSx0aGlzLl9vcGVuZWQ9ITEsdGhpcy5vcGVuZWRDaGFuZ2U9''@;'; put 'put ''bmV3IGFyLHRoaXMuc2FzTG9nQWN0aXZlPSEwLHRoaXMuc2FzU291cmNlQ29kZUFjdGl2ZT0hMSx0aGlzLnNhc0dlbmVyYXRlZENvZGVBY3RpdmU9ITEsdGhpcy50YWJsZXNBY3RpdmU9ITEsdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLnNh''@;'; put 'put ''c2pzUmVxdWVzdHM9W119Z2V0IG9wZW5lZCgpe3JldHVybiB0aGlzLl9vcGVuZWR9c2V0IG9wZW5lZChoKXt0aGlzLl9vcGVuZWQ9aCxoJiZ0aGlzLm1vZGFsT3BlbmVkKCksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLnNhc2pzUmVxdWVzdHMpfW5nT25Jbml0KCl7fXBhcnNlTG9nVGlt''@;'; put 'put ''ZXN0YW1wKGgpe3JldHVybmAke3RoaXMuZm9ybWF0VGltZXN0YW1wKGgpfSAke3RoaXMudGltZXN0YW1wRnJvbU5vdyhoKX1gfWN1dEFwcExvYyhoKXtyZXR1cm4gaC5yZXBsYWNlKHRoaXMuc2FzanNDb25maWcuYXBwTG9jKyIvIiwiIil9Zm9ybWF0VGltZXN0YW1wKGgpe3JldHVybiBUbCho''@;'; put 'put ''KS5mb3JtYXQoKT9UbChoKS5mb3JtYXQoImRkZGQsIE1NTU0gRG8gWVlZWSwgaDptbTpzcyBhIik6aH10aW1lc3RhbXBGcm9tTm93KGgpe3JldHVybiBUbChoKS5mb3JtYXQoKT9gICgke1RsKGgpLmZyb21Ob3coKX0pYDoiIn1tb2RhbE9wZW5DaGFuZ2UoaCl7dGhpcy5vcGVuZWQ9aCx0aGlz''@;'; put 'put ''Lm9wZW5lZENoYW5nZS5lbWl0KHRoaXMub3BlbmVkKX1tb2RhbE9wZW5lZCgpe3RoaXMuc2FzanNSZXF1ZXN0cz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzUmVxdWVzdHMoKTtmb3IobGV0IGggb2YgdGhpcy5zYXNqc1JlcXVlc3RzKXRoaXMucGFyc2VFcnJvcnNBbmRXYXJuaW5ncyhoKSxoLnNl''@;'; put 'put ''cnZpY2VMaW5rPXRoaXMuY3V0QXBwTG9jKGguc2VydmljZUxpbmspLGgucGFyc2VkVGltZXN0YW1wPXRoaXMucGFyc2VMb2dUaW1lc3RhbXAoaC50aW1lc3RhbXApfWdvVG9Mb2dMaW5lKGgsdix5KXtsZXQgQz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAjJHt2fSAubG9nLXdyYXBwZXIu''@;'; put 'put ''c2FzbG9nIGZvbnRgKSxJPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3Z9IC5sb2ctd3JhcHBlci5zYXNsb2dgKTtmb3IobGV0IFogb2YgQylaLnRleHRDb250ZW50LmluY2x1ZGVzKGgpJiYoSS5zY3JvbGxUb3A9Wi5vZmZzZXRUb3AtSS5vZmZzZXRUb3AsWi5zdHlsZS5iYWNrZ3JvdW5k''@;'; put 'put ''Q29sb3I9IiM2MWEyMjAyYiIsc2V0VGltZW91dCgoKT0+e1ouc3R5bGU9IiJ9LDNlMykpfXBhcnNlRXJyb3JzQW5kV2FybmluZ3MoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZighaHx8IWgubG9nRmlsZXx8InN0cmluZyIhPXR5cGVvZiBoLmxvZ0ZpbGV8''@;'; put 'put ''fHZvaWQgMCE9PWgubG9nRXJyb3JzfHx2b2lkIDAhPT1oLmxvZ1dhcm5pbmdzKXJldHVybjtsZXQgdj1bXSx5PVtdLEM9aC5sb2dGaWxlLnNwbGl0KCJcbiIpO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsrKXtpZigvPC4qPkVSUk9SL2dtLnRlc3QoQ1tJXSkpe2xldCBaPUNbSV0uc3Vic3Ry''@;'; put 'put ''aW5nKENbSV0uaW5kZXhPZigiRSIpLENbSV0ubGVuZ3RoLTEpO3YucHVzaChaKX1lbHNlL15FUlJPUi9nbS50ZXN0KENbSV0pJiYodi5wdXNoKENbSV0pLENbSV09Ijxmb250PiIrQ1tJXSsiPC9mb250PiIpO2lmKC88Lio+V0FSTklORy9nbS50ZXN0KENbSV0pKXtsZXQgWj1DW0ldLnN1YnN0''@;'; put 'put ''cmluZyhDW0ldLmluZGV4T2YoIlciKSxDW0ldLmxlbmd0aC0xKTt5LnB1c2goWil9ZWxzZS9eV0FSTklORy9nbS50ZXN0KENbSV0pJiYoeS5wdXNoKENbSV0pLENbSV09Ijxmb250PiIrQ1tJXSsiPC9mb250PiIpfXRoaXMubG9nZ2VyU2VydmljZS5sb2coeSksaC5sb2dGaWxlPUMuam9pbigi''@;'; put 'put ''XG4iKSxoLmxvZ0Vycm9ycz12LGgubG9nV2FybmluZ3M9eX0pfWRvd25sb2FkTG9nKGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYGxvZ0ZpbGUtJHt2fWAsaCl9ZG93bmxvYWRTb3VyY2VDb2RlKGgpe2NvbnN0IHY9''@;'; put 'put ''KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYHNvdXJjZUNvZGUtJHt2fWAsaCl9ZG93bmxvYWRHZW5lcmF0ZWRDb2RlKGgpe2NvbnN0IHY9KG5ldyBEYXRlKS52YWx1ZU9mKCk7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZp''@;'; put 'put ''bGUoYGdlbmVyYXRlZENvZGUtJHt2fWAsaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGcyKSxLdChzYyksS3QoWGMpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXJlcXVlc3RzLW1vZGFsIl1dLGlucHV0czp7''@;'; put 'put ''b3BlbmVkOiJvcGVuZWQifSxvdXRwdXRzOntvcGVuZWRDaGFuZ2U6Im9wZW5lZENoYW5nZSJ9LGRlY2xzOjgsdmFyczo0LGNvbnN0czpbWyJjbHJNb2RhbFNpemUiLCJ4bCIsMSwicmVxdWVzdHMtbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2Rh''@;'; put 'put ''bC10aXRsZSJdLFsxLCJtdC0wIiwiZC1pbmxpbmUtYmxvY2siXSxbMSwibW9kYWwtYm9keSIsImgtNzB2aCJdLFsiY2xhc3MiLCJuby1yZXFzIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwibm8tcmVxcyJdLFszLCJpZCIsImNsclN0YWNrVmlld0xldmVsIiwiY2xyU3RhY2tWaWV3U2V0c2l6''@;'; put 'put ''ZSIsImNsclN0YWNrVmlld1Bvc2luc2V0Iiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywiaWQiLCJjbHJTdGFja1ZpZXdMZXZlbCIsImNsclN0YWNrVmlld1NldHNpemUiLCJjbHJTdGFja1ZpZXdQb3NpbnNldCJdLFsxLCJtbC0xMCJdLFsxLCJjb250ZW50Il0sWyJjbHJUYWJMaW5rIiwiIl0s''@;'; put 'put ''WzMsImNscklmQWN0aXZlIiwiY2xySWZBY3RpdmVDaGFuZ2UiXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tY2lyY2xlIiwxLCJtYi01IiwiY29sb3ItZ3JlZW4iXSxbInNoYXBlIiwiZXhjbGFtYXRpb24tdHJpYW5nbGUiLDEsIm1iLTUiLCJjb2xvci1yZWQiXSxbImNsYXNzIiwiZXJyLWxpbmtz''@;'; put 'put ''Iiw0LCJuZ0lmIl0sWzEsImxvZy13cmFwcGVyIiwic2FzbG9nIiwzLCJpbm5lckhUTUwiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tbGluayIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwiZXJyLWxpbmtzIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIiwxLCJj''@;'; put 'put ''b2xvci1yZWQiXSxbMywiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJjbGljayJdLFsxLCJjbHItdHJlZW5vZGUtbGluayJdLFsic2hhcGUiLCJleGNsYW1hdGlvbi1jaXJjbGUiLDEsImNvbG9yLWdyZWVuIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tbGluayIsMywi''@;'; put 'put ''Y2xpY2siXSxbMSwibG9nLXdyYXBwZXIiXSxbImNsclRhYkxpbmsiLCIiLDEsIndvcmstdGFibGVzLWRyb3Bkb3duIiwzLCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwiY2xySWZPcGVuIl0sWyJj''@;'; put 'put ''bGFzcyIsImRyb3Bkb3duLWl0ZW0iLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsInNlbGVjdGVkIiwiY2xpY2siLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJkcm9wZG93bi1pdGVtIiwzLCJjbGljayJdLFsiY2xhc3MiLCJtdC0xMCIsNCwibmdJZiJdLFsx''@;'; put 'put ''LCJtaW4taC01MHZoIl0sWyJjbGFzcyIsInRhYmxlIG10LTEwIiw0LCJuZ0lmIl0sWzEsIm10LTEwIl0sWzEsInRhYmxlIiwibXQtMTAiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiY2xyLW1vZGFsIiwwKSxHbigiY2xyTW9kYWxP''@;'; put 'put ''cGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5tb2RhbE9wZW5DaGFuZ2UoQyl9KSxudCgxLCJoMyIsMSksWXQoMiwiIFJlcXVlc3QgSGlzdG9yeSAiKSxudCgzLCJwIiwyKSxZdCg0KSxvdCgpKCksbnQoNSwiZGl2IiwzKSxybig2LGZCZSwyLDAsInAiLDQpLHJuKDcsUkJlLDIsMSwi''@;'; put 'put ''Y2xyLXN0YWNrLXZpZXciLDUpLG90KCkoKSksMiZoJiYoVHQoImNsck1vZGFsT3BlbiIsdi5vcGVuZWQpLHV0KDQpLEppKCJBcHAgTG9jYXRpb246ICIsdi5zYXNqc0NvbmZpZy5hcHBMb2MsIiIpLHV0KDIpLFR0KCJuZ0lmIiwobnVsbD09di5zYXNqc1JlcXVlc3RzP251bGw6di5zYXNqc1Jl''@;'; put 'put ''cXVlc3RzLmxlbmd0aCk8MSksdXQoMSksVHQoIm5nSWYiLHYub3BlbmVkJiYobnVsbD09di5zYXNqc1JlcXVlc3RzP251bGw6di5zYXNqc1JlcXVlc3RzLmxlbmd0aCk+MCkpfSxkZXBlbmRlbmNpZXM6W3hzLE5vLFVMLHB5ZSxxZmUsZHllLHl2LF9nLFFMLHdsLGlkLG9kLEcyLFBhLEtMLHFM''@;'; put 'put ''LEFaLCRMLFhMLG1aLHd2LGJTLF9TLEpMLFlUXSxzdHlsZXM6WyIucmVxdWVzdHMtbW9kYWwgLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb257ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9ICAucmVxdWVzdHMtbW9kYWwgLm1vZGFsLWNvbnRlbnR7cGFkZGluZzoyMHB4IDEwcHggNXB4fSAg''@;'; put 'put ''LndvcmstdGFibGVzLWRyb3Bkb3duIGJ1dHRvbntjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstY29sb3IsICM4YzhjOGMpIWltcG9ydGFudH0gIC5zdGFjay12aWV3e2hlaWdodDphdXRvIWltcG9ydGFudDttYXNrLWltYWdlOm5vbmUhaW1wb3J0YW50Oy13ZWJraXQtbWFzay1pbWFnZTpub25l''@;'; put 'put ''IWltcG9ydGFudH0gIC5jb250ZW50IGNsci1pY29ue21hcmdpbi1ib3R0b206NXB4fSAgLmNvbnRlbnQgcHJle3dvcmQtYnJlYWs6YnJlYWstYWxsO3doaXRlLXNwYWNlOnByZS13cmFwO21heC1oZWlnaHQ6aW5pdGlhbDtvdmVyZmxvdzp2aXNpYmxlO2JvcmRlcjowfSAgLmNvbnRlbnQgLnN0''@;'; put 'put ''YWNrLWJsb2NrLWxhYmVse3dpZHRoOjEwMCU7cGFkZGluZy1sZWZ0Oi42cmVtIWltcG9ydGFudH0gIC5jb250ZW50IC5zdGFjay1ibG9jay1sYWJlbCAuc3RhY2stdmlldy1rZXl7ZGlzcGxheTpub25lIWltcG9ydGFudH0gIC5lcnItbGlua3MgLmNsci10cmVlbm9kZS1jaGlsZHJlbnttYXgt''@;'; put 'put ''aGVpZ2h0OjU1cHg7b3ZlcmZsb3c6YXV0b30uZHJvcGRvd24taXRlbS5zZWxlY3RlZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojZDhlM2U5fS5sb2ctd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDo1MHB4O3BhZGRpbmc6MTBweDttYXJnaW4tdG9wOjEwcHg7''@;'; put 'put ''d2hpdGUtc3BhY2U6cHJlLXdyYXA7Ym9yZGVyLXJhZGl1czozcHg7Ym9yZGVyOjFweCBzb2xpZCAjZTJlMmUyO2JhY2tncm91bmQtY29sb3I6I2ZiZmJmYjtoZWlnaHQ6NDh2aDtvdmVyZmxvdzphdXRvfS5uby1yZXFzW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItdG9wOjFweCBzb2xpZCBy''@;'; put 'put ''Z2JhKDAsMCwwLC4xMDE5NjA3ODQzKTtwYWRkaW5nLXRvcDo1cHg7dGV4dC1hbGlnbjpjZW50ZXJ9Il19KSxkfSkoKTtmdW5jdGlvbiBQQmUoZCxnKXtpZigxJmQmJihudCgwLCJwIiw4KSxZdCgxLCIgU0FTIFNlcnZpY2U6ICIpLG50KDIsInN0cm9uZyIpLFl0KDMpLG90KCkoKSksMiZkKXtj''@;'; put 'put ''b25zdCBoPVF0KCk7dXQoMyksamkoaC5kYXRhLnNhc1NlcnZpY2UpfX1mdW5jdGlvbiBGQmUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDkpKDEsInAiKSgyLCJzdHJvbmciKSxZdCgzLCJTWVNXQVJOSU5HVEVYVDoiKSxvdCgpLFl0KDQpLG90KCksbnQoNSwicCIpKDYsInN0cm9uZyIpLFl0''@;'; put 'put ''KDcsIlNZU0VSUk9SVEVYVDoiKSxvdCgpLFl0KDgpLG90KCksbnQoOSwicCIpKDEwLCJzdHJvbmciKSxZdCgxMSwiTUFDOiIpLG90KCksWXQoMTIpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoNCksSmkoIiAiLGguZGF0YS5kZXRhaWxzLlNZU1dBUk5JTkdURVhULCIiKSx1dCg0KSxK''@;'; put 'put ''aSgiICIsaC5kYXRhLmRldGFpbHMuU1lTRVJST1JURVhULCIiKSx1dCg0KSxKaSgiICIsaC5kYXRhLmRldGFpbHMuTUFDLCIiKX19ZnVuY3Rpb24gSEJlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiwxMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdCho''@;'; put 'put ''KSxhKFF0KCkub3BlbkNvbmZpZ3VyYXRvcigpKX0pLFl0KDEsIiBPcGVuIGNvbmZpZ3VyYXRvciAiKSxvdCgpfX1mdW5jdGlvbiBOQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDEwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5v''@;'; put 'put ''cGVuUmVxdWVzdHNNb2RhbCgpKX0pLFl0KDEsIiBPcGVuIHJlcXVlc3RzIG1vZGFsICIpLG90KCl9fWZ1bmN0aW9uIFZCZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImJ1dHRvbiIsMTApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmRvd25sb2Fk''@;'; put 'put ''TG9nKCkpfSksWXQoMSwiIERvd25sb2FkIGxvZyAiKSxvdCgpfX1mdW5jdGlvbiBqQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDEwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5jbG9zZUFib3J0TW9kYWwoKSl9KSxZdCgxLCIg''@;'; put 'put ''Q2xvc2UgIiksb3QoKX19ZnVuY3Rpb24gWkJlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiwxMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkucmVsb2FkKCkpfSksWXQoMSwiIFJlbG9hZCAiKSxvdCgpfX1sZXQgekJlPSgoKT0+e2Ns''@;'; put 'put ''YXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5oZWxwZXJTZXJ2aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnNhc1NlcnZpY2U9eSx0aGlzLnJvdXRlcj1DLHRoaXMub25Db25maXJtTW9kYWxDbGljaz1uZXcgYXIsdGhpcy5kYXRhPW5ldyBaVSx0aGlzLmZvcmNlUmVsb2Fk''@;'; put 'put ''PSExLHRoaXMubW9kYWxFbmFibGVkPSEwLHRoaXMuZGVmYXVsdERhdGE9e21vZGFsVGl0bGU6IkFib3J0IE1lc3NhZ2UiLHNhc1NlcnZpY2U6bnVsbCxtZXNzYWdlOiIiLGRldGFpbHM6bmV3IERIfX1uZ09uSW5pdCgpe2xldCBoPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlz''@;'; put 'put ''LmRlZmF1bHREYXRhKSx0aGlzLmRhdGEpO3RoaXMuZGF0YT1ofXNob3dDb25maWd1cmF0b3JCdXR0b24oaCl7Y29uc3Qgdj10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKTtyZXR1cm4obnVsbD09aD92b2lkIDA6aC5pbmNsdWRlcygic3RhcnR1cHNlcnZpY2UiKSkmJnYuc2VydmVy''@;'; put 'put ''VHlwZT09PUh1LkQuU2FzOX1jbG9zZUFib3J0TW9kYWwoKXt0aGlzLm9uQ29uZmlybU1vZGFsQ2xpY2suZW1pdCgpfW9wZW5Db25maWd1cmF0b3IoKXt0aGlzLmV2ZW50U2VydmljZS5zdGFydHVwRGF0YUxvYWRlZCgpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9kZXBsb3kiKSx0aGlz''@;'; put 'put ''LmNsb3NlQWJvcnRNb2RhbCgpfWRvd25sb2FkTG9nKCl7dmFyIGg7dGhpcy5oZWxwZXJTZXJ2aWNlLmRvd25sb2FkVGV4dEZpbGUoYCR7dGhpcy5kYXRhLnNhc1NlcnZpY2V9LUxPR2AsKG51bGw9PT0oaD10aGlzLmRhdGEuZGV0YWlscyl8fHZvaWQgMD09PWg/dm9pZCAwOmguTE9HKXx8IkVy''@;'; put 'put ''cm9yIHBhcnNpbmcgdGhlIGxvZyIpfW9wZW5SZXF1ZXN0c01vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub3BlblJlcXVlc3RzTW9kYWwoKX1yZWxvYWQoKXtsb2NhdGlvbi5yZWxvYWQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWGMpLEt0''@;'; put 'put ''KG11KSxLdChnMiksS3QoWmwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLWluZm8tbW9kYWwiXV0saW5wdXRzOntkYXRhOiJkYXRhIixmb3JjZVJlbG9hZDoiZm9yY2VSZWxvYWQifSxvdXRwdXRzOntvbkNvbmZpcm1Nb2RhbENsaWNrOiJvbkNvbmZpcm1Nb2Rh''@;'; put 'put ''bENsaWNrIn0sZGVjbHM6MTMsdmFyczoxMixjb25zdHM6W1siYXBwRHJhZ05kcm9wIiwiIiwxLCJjbHItYWJvcnQtbW9kYWwiLDMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxb''@;'; put 'put ''ImNsYXNzIiwic2FzU2VydmljZSIsNCwibmdJZiJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsImFib3J0TXNnIiwzLCJpbm5lckhUTUwiXSxbImNsYXNzIiwic3lzdGV4dCIsNCwibmdJZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tcHJpbWFy''@;'; put 'put ''eSIsMywiY2xpY2siLDQsIm5nSWYiXSxbMSwic2FzU2VydmljZSJdLFsxLCJzeXN0ZXh0Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tcHJpbWFyeSIsMywiY2xpY2siXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJjbHItbW9kYWwiLDApLEduKCJjbHJNb2Rh''@;'; put 'put ''bE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm1vZGFsRW5hYmxlZD1DfSksbnQoMSwiaDMiLDEpLFl0KDIpLHJuKDMsUEJlLDQsMSwicCIsMiksb3QoKSxudCg0LCJkaXYiLDMpLENyKDUsImRpdiIsNCkscm4oNixGQmUsMTMsMywiZGl2Iiw1KSxvdCgpLG50KDcsImRpdiIsNiks''@;'; put 'put ''cm4oOCxIQmUsMiwwLCJidXR0b24iLDcpLHJuKDksTkJlLDIsMCwiYnV0dG9uIiw3KSxybigxMCxWQmUsMiwwLCJidXR0b24iLDcpLHJuKDExLGpCZSwyLDAsImJ1dHRvbiIsNykscm4oMTIsWkJlLDIsMCwiYnV0dG9uIiw3KSxvdCgpKCkpLDImaCYmKFR0KCJjbHJNb2RhbE9wZW4iLHYubW9k''@;'; put 'put ''YWxFbmFibGVkKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsIXYuZm9yY2VSZWxvYWQpLHV0KDIpLEppKCIgIix2LmRhdGEubW9kYWxUaXRsZSwiICIpLHV0KDEpLFR0KCJuZ0lmIix2LmRhdGEuc2FzU2VydmljZSYmdi5kYXRhLnNhc1NlcnZpY2UubGVuZ3RoPjAp''@;'; put 'put ''LHV0KDIpLFR0KCJpbm5lckhUTUwiLHYuZGF0YS5tZXNzYWdlLFU4KSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PXYuZGF0YS5kZXRhaWxzKSx1dCgyKSxUdCgibmdJZiIsdi5zaG93Q29uZmlndXJhdG9yQnV0dG9uKHYuZGF0YS5zYXNTZXJ2aWNlKSksdXQoMSksVHQoIm5nSWYiLG51bGwhPT12''@;'; put 'put ''LmRhdGEuZGV0YWlscyksdXQoMSksVHQoIm5nSWYiLChudWxsPT12LmRhdGEuZGV0YWlscz9udWxsOnYuZGF0YS5kZXRhaWxzLkxPRykmJihudWxsPT12LmRhdGEuZGV0YWlsc3x8bnVsbD09di5kYXRhLmRldGFpbHMuTE9HP251bGw6di5kYXRhLmRldGFpbHMuTE9HLnRyaW0oKSkubGVuZ3Ro''@;'; put 'put ''PjApLHV0KDEpLFR0KCJuZ0lmIiwhdi5mb3JjZVJlbG9hZCksdXQoMSksVHQoIm5nSWYiLHYuZm9yY2VSZWxvYWQpKX0sZGVwZW5kZW5jaWVzOltObyxpZCxvZF0sc3R5bGVzOlsiLmNsci1hYm9ydC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC10aXRsZS13cmFwcGVye3dp''@;'; put 'put ''ZHRoOjEwMCV9LmNsci1hYm9ydC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbHt6LWluZGV4OjIwNTB9Lm1vZGFsLXRpdGxlW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZX0uc2FzU2VydmljZVtfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1''@;'; put 'put ''dGU7dG9wOjBweDtyaWdodDoxMHB4O21hcmdpbjowfS5tb2RhbC1mb290ZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOnJlbGF0aXZlO2JvcmRlci10b3A6MXB4IHNvbGlkICNkY2RjZGN9LnN5c3RleHRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmF1dG87bWFyZ2luLXRvcDoy''@;'; put 'put ''MHB4O3BhZGRpbmc6MTBweCAwO2JvcmRlci10b3A6MXB4IHNvbGlkICNkY2RjZGN9LnN5c3RleHRbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowO3dvcmQtd3JhcDpicmVhay13b3JkfSJdfSksZH0pKCk7ZnVuY3Rpb24gR0JlKGQsZyl7MSZk''@;'; put 'put ''JiYoQjAoMCksWXQoMSwiIFRoaXMgdmVyc2lvbiBpcyBsaW1pdGVkIHRvICIpLFAwKCkpfWZ1bmN0aW9uIFdCZShkLGcpe2lmKDEmZCYmKEIwKDApLFl0KDEpLFAwKCkpLDImZCl7Y29uc3QgaD1RdCgzKTt1dCgxKSxGaCgiICIsaC5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZCwiIHJvdyIsMT09''@;'; put 'put ''PWguZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWQ/IiI6InMiLCIgb24gYWxsIHRhYmxlIHZpZXdzICIpfX1mdW5jdGlvbiBZQmUoZCxnKXtpZigxJmQmJihCMCgwKSxZdCgxKSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMSksa2YoIiIsaC5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZD8iYW5k''@;'; put 'put ''IjoiIiwiICIsaC5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQsIiB1c2VyIiwxPT09aC5kZW1vTGltaXRzLnVzZXJzX2FsbG93ZWQ/IiI6InMiLCIiKX19ZnVuY3Rpb24gVUJlKGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2IiwyMCkoMSwiZGl2IiwyMSkoMiwiZGl2IiwyMikoMywiZGl2IiwyMyks''@;'; put 'put ''Q3IoNCwiY2xyLWljb24iLDI0KSxvdCgpLG50KDUsImRpdiIsMjUpLFl0KDYsIiBEZW1vIFZlcnNpb24gb2YgRGF0YSBDb250cm9sbGVyIC0gZm9yIGV2YWx1YXRpb24gdXNlIG9ubHkuICIpLHJuKDcsR0JlLDIsMCwibmctY29udGFpbmVyIiwxKSxybig4LFdCZSwyLDIsIm5nLWNvbnRhaW5l''@;'; put 'put ''ciIsMSkscm4oOSxZQmUsMiwzLCJuZy1jb250YWluZXIiLDEpLG90KCkoKSgpLG50KDEwLCJhIiwyNiksWXQoMTEsIlVwZGF0ZSBMaWNlbmNlIEtleSIpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDcpLFR0KCJuZ0lmIixoLmRlbW9MaW1pdHMucm93c19hbGxvd2VkfHxoLmRlbW9M''@;'; put 'put ''aW1pdHMudXNlcnNfYWxsb3dlZCksdXQoMSksVHQoIm5nSWYiLGguZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWQpLHV0KDEpLFR0KCJuZ0lmIixoLmRlbW9MaW1pdHMudXNlcnNfYWxsb3dlZCl9fWZ1bmN0aW9uIFFCZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMjcpKDEsImRpdiIsMjEpKDIs''@;'; put 'put ''ImRpdiIsMjIpKDMsImRpdiIsMjMpLENyKDQsImNsci1pY29uIiwyNCksb3QoKSxudCg1LCJkaXYiLDI1KSxZdCg2KSxudCg3LCJhIiwyOCksWXQoOCwic3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIpLG90KCksWXQoOSksb3QoKSgpKCksbnQoMTAsImEiLDI2KSxZdCgxMSwiVXBkYXRlIExp''@;'; put 'put ''Y2VuY2UgS2V5Iiksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoNiksSmkoIiBUaGlzIGxpY2Vuc2Uga2V5IHdpbGwgZXhwaXJlIGluICIsaC5saWNlbnNlRXhwaXJpbmdEYXlzLCIgZGF5cy4gUGxlYXNlIGNvbnRhY3QgIiksdXQoMyksSmkoIiBvciB5b3VyIHJlc2VsbGVyIHRvIGFy''@;'; put 'put ''cmFuZ2UgYWRkaXRpb25hbCBsaWNlbmNlIGZvciBzaXRlIGlkICIsaC5zeXNzaXRlLmdldFZhbHVlKCksIi4gIil9fWZ1bmN0aW9uIEpCZShkLGcpezEmZCYmKG50KDAsImEiLDI2KSxZdCgxLCJVcGRhdGUgTGljZW5jZSBLZXkiKSxvdCgpKX1mdW5jdGlvbiBYQmUoZCxnKXtpZigxJmQmJihu''@;'; put 'put ''dCgwLCJkaXYiLDI3KSgxLCJkaXYiLDIxKSgyLCJkaXYiLDIyKSgzLCJkaXYiLDIzKSxDcig0LCJjbHItaWNvbiIsMjQpLG90KCksbnQoNSwiZGl2IiwyNSksWXQoNiwiIFRoZSByZWdpc3RlcmVkIG51bWJlciBvZiB1c2VycyBleGNlZWRzIHRoZSBsaW1pdCBzcGVjaWZpZWQgZm9yIHlvdXIg''@;'; put 'put ''bGljZW5zZS4gUGxlYXNlIGNvbnRhY3QgIiksbnQoNywiYSIsMjgpLFl0KDgsInN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSxvdCgpLFl0KDkpLG90KCkoKSgpLHJuKDEwLEpCZSwyLDAsImEiLDI5KSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoOSksSmkoIiBvciB5b3VyIHJlc2Vs''@;'; put 'put ''bGVyIHRvIGFycmFuZ2UgYWRkaXRpb25hbCBsaWNlbmNlIGZvciBzaXRlIGlkICIsaC5zeXNzaXRlLmdldFZhbHVlKCksIi4gIiksdXQoMSksVHQoIm5nSWYiLCFoLmxpY2Vuc2VFeHBpcmluZ0RheXMpfX1mdW5jdGlvbiBLQmUoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLFVCZSwxMiwzLCJk''@;'; put 'put ''aXYiLDE4KSxybigyLFFCZSwxMiwyLCJkaXYiLDE5KSxybigzLFhCZSwxMSwyLCJkaXYiLDE5KSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxUdCgibmdJZiIsaC5kZW1vQmFubmVyJiYhaC5saWNlbnNlRXhwaXJpbmdEYXlzKSx1dCgxKSxUdCgibmdJZiIsaC5saWNlbnNlRXhwaXJp''@;'; put 'put ''bmdEYXlzKSx1dCgxKSxUdCgibmdJZiIsaC5hcHBPdmVyQ2FwYWNpdHkpfX1mdW5jdGlvbiAkQmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDMwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS50b2dnbGVTaWRlYmFyKCkpfSksQ3IoMSwi''@;'; put 'put ''Y2xyLWljb24iLDMxKSxvdCgpfX1jb25zdCBxQmU9ZnVuY3Rpb24oKXtyZXR1cm5bIi8iXX07ZnVuY3Rpb24gZVBlKGQsZyl7MSZkJiYobnQoMCwiYSIsMzIpLENyKDEsImltZyIsMzMpKDIsImltZyIsMzQpLG90KCkpLDImZCYmVHQoInJvdXRlckxpbmsiLGNzKDEscUJlKSl9ZnVuY3Rpb24g''@;'; put 'put ''dFBlKGQsZyl7MSZkJiYobnQoMCwiYSIpLENyKDEsInNwYW4iLDM1KSxvdCgpKX1jb25zdCBld2U9ZnVuY3Rpb24oKXtyZXR1cm5bIi92aWV3Il19LHR3ZT1mdW5jdGlvbigpe3JldHVyblsiL2hvbWUiXX0saGhlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvc3VibWl0dGVkIl19O2Z1bmN0aW9uIG5Q''@;'; put 'put ''ZShkLGcpezEmZCYmKG50KDAsImNsci1kcm9wZG93bi1tZW51Iiw0MykoMSwiYSIsNDQpLFl0KDIsIlZJRVciKSxvdCgpLG50KDMsImEiLDQ0KSxZdCg0LCJFRElUIiksb3QoKSxudCg1LCJhIiw0NCksWXQoNiwiUkVWSUVXIiksb3QoKSgpKSwyJmQmJih1dCgxKSxUdCgicm91dGVyTGluayIs''@;'; put 'put ''Y3MoMyxld2UpKSx1dCgyKSxUdCgicm91dGVyTGluayIsY3MoNCx0d2UpKSx1dCgyKSxUdCgicm91dGVyTGluayIsY3MoNSxoaGUpKSl9ZnVuY3Rpb24gclBlKGQsZyl7aWYoMSZkJiYoQjAoMCksbnQoMSwiZGl2IiwzNikoMiwiY2xyLWRyb3Bkb3duIikoMywiYnV0dG9uIiwzNyksWXQoNCwi''@;'; put 'put ''IE1lbnUgIiksb3QoKSxybig1LG5QZSw3LDYsImNsci1kcm9wZG93bi1tZW51IiwzOCksb3QoKSgpLG50KDYsImRpdiIsMzkpKDcsImEiLDQwKSxZdCg4LCJWSUVXIiksb3QoKSxudCg5LCJhIiw0MSksWXQoMTAsIkVESVQiKSxvdCgpLG50KDExLCJhIiw0MiksWXQoMTIsIlJFVklFVyIpLG90''@;'; put 'put ''KCkoKSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCg3KSxUdCgicm91dGVyTGluayIsY3MoNyxld2UpKSx1dCgyKSxGaSgiYWN0aXZlIixoLnJvdXRlci51cmwuaW5jbHVkZXMoImVkaXRvciIpfHxoLnJvdXRlci51cmwuaW5jbHVkZXMoImVkaXQtcmVjb3JkIil8fGgucm91dGVyLnVybC5p''@;'; put 'put ''bmNsdWRlcygiaG9tZSIpKSxUdCgicm91dGVyTGluayIsY3MoOCx0d2UpKSx1dCgyKSxGaSgiYWN0aXZlIixoLnJvdXRlci51cmwuaW5jbHVkZXMoInN1Ym1pdHRlZCIpfHxoLnJvdXRlci51cmwuaW5jbHVkZXMoImFwcHJvdmUiKXx8aC5yb3V0ZXIudXJsLmluY2x1ZGVzKCJoaXN0b3J5Iikp''@;'; put 'put ''LFR0KCJyb3V0ZXJMaW5rIixjcyg5LGhoZSkpfX1jb25zdCBpUGU9ZnVuY3Rpb24oKXtyZXR1cm5bIi9hcHByb3ZlIl19LG9QZT1mdW5jdGlvbigpe3JldHVyblsiL2hpc3RvcnkiXX07ZnVuY3Rpb24gYVBlKGQsZyl7MSZkJiYobnQoMCwibmF2Iiw0NSkoMSwidWwiLDQ2KSgyLCJsaSIsNDcp''@;'; put 'put ''KDMsImEiLDQwKSxZdCg0LCJTVUJNSVQiKSxvdCgpKCksbnQoNSwibGkiLDQ3KSg2LCJhIiw0MCksWXQoNywiQVBQUk9WRSIpLG90KCkoKSxudCg4LCJsaSIsNDcpKDksImEiLDQwKSxZdCgxMCwiSElTVE9SWSIpLG90KCkoKSgpKCkpLDImZCYmKHV0KDMpLFR0KCJyb3V0ZXJMaW5rIixjcygz''@;'; put 'put ''LGhoZSkpLHV0KDMpLFR0KCJyb3V0ZXJMaW5rIixjcyg0LGlQZSkpLHV0KDMpLFR0KCJyb3V0ZXJMaW5rIixjcyg1LG9QZSkpKX1mdW5jdGlvbiBsUGUoZCxnKXsxJmQmJkNyKDAsImFwcC1hbGVydHMiKX1mdW5jdGlvbiBzUGUoZCxnKXsxJmQmJkNyKDAsInJvdXRlci1vdXRsZXQiKX1mdW5j''@;'; put 'put ''dGlvbiB1UGUoZCxnKXsxJmQmJkNyKDAsImFwcC1hbGVydHMiKX1mdW5jdGlvbiBjUGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJhcHAtaW5mby1tb2RhbCIsNDgpLEduKCJvbkNvbmZpcm1Nb2RhbENsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0O3Jl''@;'; put 'put ''dHVybiBhKFF0KCkuY2xvc2VBYm9ydE1vZGFsKEMuaWQpKX0pLG90KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9UXQoKTtUdCgiZGF0YSIsaCkoImZvcmNlUmVsb2FkIiwhdi5zdGFydHVwRGF0YUxvYWRlZCYmMT09PXYuc2FzanNBYm9ydHMubGVuZ3RoKX19ZnVuY3Rpb24gZlBl''@;'; put 'put ''KGQsZyl7MSZkJiYobnQoMCwiZGl2Iiw1MiksQ3IoMSwiZGl2Iiw1MykoMiwiZGl2Iiw1NCkoMywiZGl2Iiw1NSksb3QoKSl9ZnVuY3Rpb24gaFBlKGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw0OSksQ3IoMSwiaW1nIiw1MCkscm4oMixmUGUsNCwwLCJkaXYiLDUxKSxvdCgpKSwyJmQpe2Nv''@;'; put 'put ''bnN0IGg9UXQoKTt1dCgyKSxUdCgibmdJZiIsbnVsbD09PWguYXBwQWN0aXZlKX19bGV0IGRQZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxaLHVlLF9lKXt0aGlzLmFwcFNlcnZpY2U9aCx0aGlzLnJvdXRlcj12LHRoaXMucm91dGU9eSx0aGlzLmxvY2F0aW9uPUMsdGhp''@;'; put 'put ''cy5ldmVudFNlcnZpY2U9SSx0aGlzLmFwcFN0b3JlU2VydmljZT1aLHRoaXMuY2RyPXVlLHRoaXMuZWxlbWVudFJlZj1fZSx0aGlzLmxpY2Vuc2VFeHBpcmluZ0RheXM9bnVsbCx0aGlzLnNhc2pzQWJvcnRzPVtdLHRoaXMuZWRpdG9yQWN0aXZlPSExLHRoaXMuYXBwcm92ZUFjdGl2ZT0hMSx0''@;'; put 'put ''aGlzLmRlbW9CYW5uZXI9dGhpcy5hcHBTZXJ2aWNlLmlzQXBwRGVtby52YWx1ZSx0aGlzLmFwcE92ZXJDYXBhY2l0eT0hMSx0aGlzLmFwcEFjdGl2ZT1udWxsLHRoaXMucmVxdWVzdHNNb2RhbD0hMSx0aGlzLnNob3dSZWdpc3RyYXRpb249ITAsdGhpcy5zdGFydHVwRGF0YUxvYWRlZD0hMSx0''@;'; put 'put ''aGlzLmRlbW9MaW1pdE5vdGljZT0hMSx0aGlzLnN5c3NpdGU9dGhpcy5hcHBTZXJ2aWNlLnN5c3NpdGUsdGhpcy5kZW1vTGltaXRzPXt9LHRoaXMucGFyc2VEY0FkYXB0ZXJTZXR0aW5ncygpLHdpbmRvdy5hcHBpbmZvPSgpPT57Y29uc3QgQmU9dGhpcy5hcHBTZXJ2aWNlLmdldExpY2Vuc2VL''@;'; put 'put ''ZXlEYXRhKCk7aWYoQmUpe2NvbnN0IE5lPVRsKEJlLnZhbGlkX3VudGlsLCJZWVlZLU1NLUREIiksS2U9VGwoKSxwdD1OZS5kaWZmKEtlLCJkYXlzIik7QmUudmFsaWRfdW50aWwrPWAgKCR7cHR9IGRheXMgcmVtYWluaW5nKWAsaXNOYU4ocHQpJiYoQmUudmFsaWRfdW50aWw9IlVubGltaXRl''@;'; put 'put ''ZCIpfWNvbnNvbGUudGFibGUoeyJBZGFwdGVyIHZlcnNpb24iOiIzLjEwLjE4IiwiQXBwIHZlcnNpb24iOiJ2NS4wLjAiLnJlcGxhY2UoInYiLCIiKSwiQnVpbGQgdGltZXN0YW1wIjpUbChwYXJzZUludCgiMTY2ODUxMzM5NjI3NSIpKS5mb3JtYXQoIkRELU1NTS1ZWVlZIEhIOk1NIiksIi4u''@;'; put 'put ''LiI6Ii4uLiJ9KX0sdGhpcy5zdWJzY3JpYmVUb0xpY2Vuc2VFdmVudHMoKSx0aGlzLmNvbW1pdFZlcj0idjUuMC4wIi5yZXBsYWNlKCJ2IiwiIikrIi5nMDI5ZmE5ZjAiLHYuZXZlbnRzLnN1YnNjcmliZShCZT0+e2lmKHRoaXMucm91dGVVcmw9dGhpcy5yb3V0ZXIudXJsLHZvaWQgMCE9PXRo''@;'; put 'put ''aXMucm91dGVVcmwmJnRoaXMucm91dGVVcmwubGVuZ3RoPjQpe2xldCBOZT10aGlzLnJvdXRlVXJsLnNwbGl0KCIvIilbMV07ImVkaXRvciI9PT1OZT8odGhpcy5lcnJUb3A9ITAsdGhpcy5lZGl0b3JBY3RpdmU9ITAsdGhpcy5hcHByb3ZlQWN0aXZlPSExKToiaG9tZSI9PT1OZT8odGhpcy5l''@;'; put 'put ''cnJUb3A9ITEsdGhpcy5lZGl0b3JBY3RpdmU9ITAsdGhpcy5hcHByb3ZlQWN0aXZlPSExKToodGhpcy5lcnJUb3A9ITAsdGhpcy5lZGl0b3JBY3RpdmU9ITEpLG5pLnJvb3RQYXJhbT1OZX12b2lkIDAhPT10aGlzLnJvdXRlVXJsJiZ0aGlzLnJvdXRlVXJsLmxlbmd0aD42JiYodGhpcy5hcHBy''@;'; put 'put ''b3ZlQWN0aXZlPSEhdGhpcy5yb3V0ZVVybC5pbmNsdWRlcygiYXBwcm92ZURldCIpfHwhIXRoaXMucm91dGVVcmwuaW5jbHVkZXMoInRvYXBwcm92ZSIpKX0pLHRoaXMuc3Vic2NyaWJlVG9TaG93QWJvcnRNb2RhbCgpLHRoaXMuc3Vic2NyaWJlVG9SZXF1ZXN0c01vZGFsKCksdGhpcy5zdWJz''@;'; put 'put ''Y3JpYmVUb1N0YXJ0dXBEYXRhKCksdGhpcy5zdWJzY3JpYmVUb0FwcEFjdGl2ZSgpLHRoaXMuc3Vic2NyaWJlVG9EZW1vTGltaXRNb2RhbCgpLHdpbmRvdy5mcmFtZUVsZW1lbnQmJih3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJoZWlnaHQ6MTAwJTt3aWR0aDox''@;'; put 'put ''MDAlO3Bvc2l0aW9uOmFic29sdXRlIiksd2luZG93LmZyYW1lRWxlbWVudC5zZXRBdHRyaWJ1dGUoImFsbG93ZnVsbHNjcmVlbiIsIiIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJmcmFtZWJvcmRlciIsIjAiKSx3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgi''@;'; put 'put ''bWFyZ2luaGVpZ2h0IiwiMCIpLHdpbmRvdy5mcmFtZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXJnaW53aWR0aCIsIjAiKSx3aW5kb3cuZnJhbWVFbGVtZW50LnNldEF0dHJpYnV0ZSgic2Nyb2xsaW5nIiwiYXV0byIpLHdpbmRvdy5mb2N1cygpKX1wYXJzZURjQWRhcHRlclNldHRpbmdzKCl7''@;'; put 'put ''Y29uc3QgaD15PT50aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoeSksdj17c2VydmVyVXJsOmgoInNlcnZlclVybCIpLGFwcExvYzpoKCJhcHBMb2MiKSxzZXJ2ZXJUeXBlOmgoInNlcnZlclR5cGUiKSxsb2dpbk1lY2hhbmlzbTpoKCJsb2dpbk1lY2hhbmlzbSIp''@;'; put 'put ''LGFkbWluR3JvdXA6aCgiYWRtaW5Hcm91cCIpLGRjUGF0aDpoKCJkY1BhdGgiKSxkZWJ1ZzoidHJ1ZSI9PT1oKCJkZWJ1ZyIpLHVzZUNvbXB1dGVBcGk6InRydWUiPT09aCgidXNlQ29tcHV0ZUFwaSIpLGNvbnRleHROYW1lOmgoImNvbnRleHROYW1lIiksaG90TGljZW5jZUtleTpoKCJob3RM''@;'; put 'put ''aWNlbmNlS2V5Iil9O3RoaXMuZGNBZGFwdGVyU2V0dGluZ3M9dix0aGlzLmFwcFN0b3JlU2VydmljZS5zZXREY0FkYXB0ZXJTZXR0aW5ncyh2KSx0aGlzLmFwcFNlcnZpY2Uuc2FzU2VydmljZUluaXQoKX1zdWJzY3JpYmVUb0RlbW9MaW1pdE1vZGFsKCl7dGhpcy5ldmVudFNlcnZpY2Uub25E''@;'; put 'put ''ZW1vTGltaXRNb2RhbFNob3cuc3Vic2NyaWJlKCgpPT57dGhpcy5kZW1vTGltaXROb3RpY2U9ITB9KX1zdWJzY3JpYmVUb0xpY2Vuc2VFdmVudHMoKXt0aGlzLmFwcFNlcnZpY2UuaXNBcHBEZW1vLnN1YnNjcmliZShoPT57dGhpcy5kZW1vQmFubmVyPWh9KSx0aGlzLmFwcFNlcnZpY2UubGlj''@;'; put 'put ''ZW5zZUV4cGlyZXNJbkRheXMuc3Vic2NyaWJlKGg9PntoJiZoPD0xNCYmKHRoaXMubGljZW5zZUV4cGlyaW5nRGF5cz1oKX0pLHRoaXMuYXBwU2VydmljZS5pc0FwcE92ZXJDYXBhY2l0eS5zdWJzY3JpYmUoaD0+e3RoaXMuYXBwT3ZlckNhcGFjaXR5PWh9KX1zdWJzY3JpYmVUb0FwcEFjdGl2''@;'; put 'put ''ZSgpe3RoaXMuYXBwU2VydmljZS5pc0FwcEFjdGl2YXRlZC5zdWJzY3JpYmUoaD0+e3RoaXMuYXBwQWN0aXZlPWgsdGhpcy5kZW1vTGltaXRzPXRoaXMuYXBwU2VydmljZS5kZW1vTGltaXRzfSl9c3Vic2NyaWJlVG9TaG93QWJvcnRNb2RhbCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uU2hvd0Fi''@;'; put 'put ''b3J0TW9kYWwuc3Vic2NyaWJlKGg9PntoLmlkPXRoaXMuc2FzanNBYm9ydHMubGVuZ3RoKzEsdGhpcy5zYXNqc0Fib3J0cy5wdXNoKGgpLHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKX0pfXN1YnNjcmliZVRvU3RhcnR1cERhdGEoKXt0aGlzLmV2ZW50U2VydmljZS5vblN0YXJ0dXBEYXRhTG9h''@;'; put 'put ''ZGVkLnN1YnNjcmliZSgoKT0+e3RoaXMuc3RhcnR1cERhdGFMb2FkZWQ9ITB9KX1zdWJzY3JpYmVUb1JlcXVlc3RzTW9kYWwoKXt0aGlzLmV2ZW50U2VydmljZS5vblJlcXVlc3RzTW9kYWxPcGVuLnN1YnNjcmliZShoPT57dGhpcy5yZXF1ZXN0c01vZGFsPSEwfSl9Y2xvc2VBYm9ydE1vZGFs''@;'; put 'put ''KGgpe2xldCB2PXRoaXMuc2FzanNBYm9ydHMuZmluZEluZGV4KHk9PnkuaWQ9PT1oKTt0aGlzLnNhc2pzQWJvcnRzLnNwbGljZSh2LDEpfXRvZ2dsZVNpZGViYXIoKXt0aGlzLmV2ZW50U2VydmljZS50b2dnbGVTaWRlYmFyKCl9aXNNYWluUm91dGUoaCl7cmV0dXJuIHRoaXMucm91dGVyLnVy''@;'; put 'put ''bC5pbmNsdWRlcyhoKX1vcGVuTGljZW5jaW5nUGFnZSgpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9saWNlbnNpbmcvdXBkYXRlIil9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KFI3KSxLdChabCksS3QoUHUpLEt0KFY2KSxLdChtdSks''@;'; put 'put ''S3Qoc2spLEt0KGQxKSxLdChibykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJteS1hcHAiXV0sZGVjbHM6MzAsdmFyczoxNixjb25zdHM6W1sxLCJtYWluLWNvbnRhaW5lciJdLFs0LCJuZ0lmIl0sWzEsImFwcC1oZWFkZXIiXSxbInR5cGUiLCJidXR0b24iLCJjbGFz''@;'; put 'put ''cyIsImN1cnNvci1wb2ludGVyIHNlbGVjdC1ub25lIG1sLTEwIGQtZmxleCBjbHItanVzdGlmeS1jb250ZW50LWNlbnRlciBjbHItYWxpZ24taXRlbXMtY2VudGVyIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJsb2dvIiwiZC1mbGV4IiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsiaHJl''@;'; put 'put ''ZiIsIiMiLCJjbGFzcyIsIm5hdi1saW5rIiwzLCJyb3V0ZXJMaW5rIiw0LCJuZ0lmIl0sWzEsImhlYWRlci1hY3Rpb25zIl0sWzEsIm5hdi10ZXh0Il0sWzEsImRyb3Bkb3duIl0sWyJjbGFzcyIsInN1Ym5hdiIsNCwibmdJZiJdLFszLCJvcGVuZWQiLCJvcGVuZWRDaGFuZ2UiXSxbMywiZGF0''@;'; put 'put ''YSIsImZvcmNlUmVsb2FkIiwib25Db25maXJtTW9kYWxDbGljayIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJhcHBEcmFnTmRyb3AiLCIiLDEsInBvc2l0aW9uLXJlbGF0aXZlIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxPcGVu''@;'; put 'put ''Q2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWyJzaXplIiwiMjAiLCJzaGFwZSIsImxvY2siXSxbMSwibW9kYWwtYm9keSJdLFsiaHJlZiIsIm1haWx0bzpzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIl0sWyJjbGFzcyIsImFwcC1sb2FkaW5nIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImFsZXJ0''@;'; put 'put ''IGFsZXJ0LWFwcC1sZXZlbCBhbGVydC13YXJuaW5nIiwiaWQiLCJkZW1vLWJhbm5lciIsInJvbGUiLCJhbGVydCIsNCwibmdJZiJdLFsiY2xhc3MiLCJhbGVydCBhbGVydC1hcHAtbGV2ZWwgYWxlcnQtZGFuZ2VyIiwiaWQiLCJkZW1vLWJhbm5lciIsInJvbGUiLCJhbGVydCIsNCwibmdJZiJd''@;'; put 'put ''LFsiaWQiLCJkZW1vLWJhbm5lciIsInJvbGUiLCJhbGVydCIsMSwiYWxlcnQiLCJhbGVydC1hcHAtbGV2ZWwiLCJhbGVydC13YXJuaW5nIl0sWzEsImFsZXJ0LWl0ZW1zIl0sWzEsImFsZXJ0LWl0ZW0iLCJzdGF0aWMiXSxbMSwiYWxlcnQtaWNvbi13cmFwcGVyIl0sWyJzaGFwZSIsIndhcm5p''@;'; put 'put ''bmctc3RhbmRhcmQiLDEsIm10LTIiXSxbMSwiYWxlcnQtdGV4dCJdLFsicm91dGVyTGluayIsIi9saWNlbnNpbmcvdXBkYXRlIiwxLCJ1cGRhdGUta2V5Il0sWyJpZCIsImRlbW8tYmFubmVyIiwicm9sZSIsImFsZXJ0IiwxLCJhbGVydCIsImFsZXJ0LWFwcC1sZXZlbCIsImFsZXJ0LWRhbmdl''@;'; put 'put ''ciJdLFsiaHJlZiIsIm1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIsMSwiY29sb3Itd2hpdGUiXSxbInJvdXRlckxpbmsiLCIvbGljZW5zaW5nL3VwZGF0ZSIsImNsYXNzIiwidXBkYXRlLWtleSIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiY3Vyc29yLXBvaW50ZXIi''@;'; put 'put ''LCJzZWxlY3Qtbm9uZSIsIm1sLTEwIiwiZC1mbGV4IiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiLCJjbHItYWxpZ24taXRlbXMtY2VudGVyIiwzLCJjbGljayJdLFsic2l6ZSIsIjI0Iiwic2hhcGUiLCJ0cmVlLXZpZXciXSxbImhyZWYiLCIjIiwxLCJuYXYtbGluayIsMywicm91dGVy''@;'; put 'put ''TGluayJdLFsic3JjIiwiL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2ltYWdlcy9kYy1sb2dvLXN2ZyIsMSwid2l0aG91dC10ZXh0IiwiZC1ibG9jayIsImQtbWQtbm9uZSJdLFsic3JjIiwiL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9H''@;'; put 'put ''UkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2ltYWdlcy9kYXRhY29udHJvbGxlci1zdmciLDEsIndpdGgtdGV4dCIsImQtbm9uZSIsImQtbWQtYmxvY2siXSxbMSwiY2xyLWljb24iLCJoZWFkZXItbG9nbyIsIm1sLTEwIl0sWzEsImhlYWRlci1uYXYiLCJkLWZsZXgiLCJkLXNt''@;'; put 'put ''LW5vbmUiXSxbImNsckRyb3Bkb3duVHJpZ2dlciIsIiIsImFyaWEtbGFiZWwiLCJ0b2dnbGUgc2V0dGluZ3MgbWVudSIsMSwibmF2LWljb24iLCJjb2xvci13aGl0ZS1pIl0sWyJjbHJQb3NpdGlvbiIsImJvdHRvbS1sZWZ0Iiw0LCJjbHJJZk9wZW4iXSxbMSwiaGVhZGVyLW5hdiIsImQtbm9u''@;'; put 'put ''ZSIsImQtc20tZmxleCJdLFsicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsMSwibmF2LWxpbmsiLCJuYXYtdGV4dCIsMywicm91dGVyTGluayJdLFsxLCJuYXYtbGluayIsIm5hdi10ZXh0IiwzLCJyb3V0ZXJMaW5rIl0sWzEsIm5hdi1saW5rIiwibmF2LXRleHQiLCJjdXJzb3ItcG9pbnRl''@;'; put 'put ''ciIsMywicm91dGVyTGluayJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tbGVmdCJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJyb3V0ZXJMaW5rIl0sWzEsInN1Ym5hdiJdLFsxLCJuYXYiXSxbMSwibmF2LWl0ZW0iXSxbMywiZGF0YSIsImZvcmNlUmVsb2FkIiwib25Db25maXJtTW9kYWxD''@;'; put 'put ''bGljayJdLFsxLCJhcHAtbG9hZGluZyJdLFsic3JjIiwiL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5L2ltYWdlcy9kYXRhY29udHJvbGxlci1zdmciLDEsImxvYWRpbmctbG9nbyJdLFsiY2xhc3MiLCJzbGlkZXIiLDQsIm5nSWYiXSxb''@;'; put 'put ''MSwic2xpZGVyIl0sWzEsImxpbmUiXSxbMSwic3VibGluZSIsImluYyJdLFsxLCJzdWJsaW5lIiwiZGVjIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiZGl2IiwwKSxybigxLEtCZSw0LDMsIm5nLWNvbnRhaW5lciIsMSksbnQoMiwiaGVhZGVyIiwyKSxybigzLCRCZSwy''@;'; put 'put ''LDAsImRpdiIsMyksbnQoNCwiZGl2Iiw0KSxybig1LGVQZSwzLDIsImEiLDUpLHJuKDYsdFBlLDIsMCwiYSIsMSksb3QoKSxybig3LHJQZSwxMywxMCwibmctY29udGFpbmVyIiwxKSxudCg4LCJkaXYiLDYpKDksImRpdiIsNyksQ3IoMTAsImFwcC1sb2FkaW5nLWluZGljYXRvciIpLG90KCks''@;'; put 'put ''bnQoMTEsImRpdiIsOCksQ3IoMTIsImFwcC11c2VyLW5hdi1kcm9wZG93biIpLG90KCkoKSgpLHJuKDEzLGFQZSwxMSw2LCJuYXYiLDkpLHJuKDE0LGxQZSwxLDAsImFwcC1hbGVydHMiLDEpLG50KDE1LCJhcHAtcmVxdWVzdHMtbW9kYWwiLDEwKSxHbigib3BlbmVkQ2hhbmdlIixmdW5jdGlv''@;'; put 'put ''bihDKXtyZXR1cm4gdi5yZXF1ZXN0c01vZGFsPUN9KSxvdCgpLHJuKDE2LHNQZSwxLDAsInJvdXRlci1vdXRsZXQiLDEpLENyKDE3LCJhcHAtbG9naW4iKSxybigxOCx1UGUsMSwwLCJhcHAtYWxlcnRzIiwxKSxybigxOSxjUGUsMSwyLCJhcHAtaW5mby1tb2RhbCIsMTEpLG50KDIwLCJjbHIt''@;'; put 'put ''bW9kYWwiLDEyKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kZW1vTGltaXROb3RpY2U9Q30pLG50KDIxLCJoMyIsMTMpLFl0KDIyLCIgTG9ja2VkIEZlYXR1cmUgIiksQ3IoMjMsImNsci1pY29uIiwxNCksb3QoKSxudCgyNCwiZGl2IiwxNSksWXQoMjUs''@;'; put 'put ''IiBDb250YWN0ICIpLG50KDI2LCJhIiwxNiksWXQoMjcsInN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iKSxvdCgpLFl0KDI4KSxvdCgpKCkoKSxybigyOSxoUGUsMywxLCJkaXYiLDE3KSksMiZoJiYodXQoMSksVHQoIm5nSWYiLCF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIp''@;'; put 'put ''KSx1dCgyKSxUdCgibmdJZiIsdi5pc01haW5Sb3V0ZSgidmlldyIpfHx2LmlzTWFpblJvdXRlKCJob21lIikmJiF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSx1dCgyKSxUdCgibmdJZiIsIXYucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikpLHV0KDEpLFR0KCJuZ0lm''@;'; put 'put ''Iix2LnJvdXRlci51cmwuaW5jbHVkZXMoImRlcGxveSIpKSx1dCgxKSxUdCgibmdJZiIsIXYucm91dGVyLnVybC5pbmNsdWRlcygiZGVwbG95IikmJiF2LnJvdXRlci51cmwuaW5jbHVkZXMoImxpY2Vuc2luZyIpKSx1dCg2KSxUdCgibmdJZiIsdi5yb3V0ZXIudXJsLmluY2x1ZGVzKCJzdWJt''@;'; put 'put ''aXR0ZWQiKXx8di5yb3V0ZXIudXJsLmluY2x1ZGVzKCJhcHByb3ZlIil8fHYucm91dGVyLnVybC5pbmNsdWRlcygiaGlzdG9yeSIpKSx1dCgxKSxUdCgibmdJZiIsIXYuZXJyVG9wKSx1dCgxKSxUdCgib3BlbmVkIix2LnJlcXVlc3RzTW9kYWwpLHV0KDEpLFR0KCJuZ0lmIix2LnN0YXJ0dXBE''@;'; put 'put ''YXRhTG9hZGVkKSx1dCgyKSxUdCgibmdJZiIsdi5lcnJUb3ApLHV0KDEpLFR0KCJuZ0Zvck9mIix2LnNhc2pzQWJvcnRzKSx1dCgxKSxUdCgiY2xyTW9kYWxPcGVuIix2LmRlbW9MaW1pdE5vdGljZSkoImNsck1vZGFsQ2xvc2FibGUiLCEwKSgiY2xyTW9kYWxTaXplIiwibGciKSx1dCg4KSxK''@;'; put 'put ''aSgiIHdpdGggeW91ciBzaXRlIGlkICgiLHYuc3lzc2l0ZS52YWx1ZSwiKSB0byBhY3RpdmF0ZSEgIiksdXQoMSksVHQoIm5nSWYiLCF2LnN0YXJ0dXBEYXRhTG9hZGVkKSl9LGRlcGVuZGVuY2llczpbeHMsTm8sYXksdjcsbGssJFJlLHFSZSxsQmUsY0JlLGdaLHdsLGlkLG9kLFBhLHd2LGJT''@;'; put 'put ''LF9TLEpMLEJCZSx6QmVdLHN0eWxlczpbImFwcC1yZXF1ZXN0cy1tb2RhbFtfbmdjb250ZW50LSVDT01QJV17ei1pbmRleDoxMDAwMH1oZWFkZXIuYXBwLWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojMzE0MzUxIWltcG9ydGFudDtjb2xvcjojZmZmfS5sb2dvW19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXSAgIGltZy53aXRob3V0LXRleHRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjMwcHh9LmxvZ29bX25nY29udGVudC0lQ09NUCVdICAgaW1nLndpdGgtdGV4dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MjEwcHh9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcltfbmdj''@;'; put 'put ''b250ZW50LSVDT01QJV17ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO21hcmdpbi1sZWZ0OjEwcHh9LmRlbW8tZXhwaXJlZC1ub3RpY2VbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1z''@;'; put 'put ''OmNlbnRlcjtwb3NpdGlvbjpmaXhlZDtsZWZ0OjA7dG9wOjA7aGVpZ2h0OjEwMHZoIWltcG9ydGFudDt3aWR0aDoxMDB2dyFpbXBvcnRhbnQ7ei1pbmRleDoxMDU7YmFja2dyb3VuZDpyZ2JhKDMzLDMzLDMzLC41KX0uZGVtby1leHBpcmVkLW5vdGljZVtfbmdjb250ZW50LSVDT01QJV0gICAu''@;'; put 'put ''ZXhwaXJlZC1kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXXtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MzBweDt6LWluZGV4OjExMDtiYWNrZ3JvdW5kOiMzMTQzNTF9LmRlbW8tZXhwaXJlZC1ub3RpY2VbX25nY29udGVudC0lQ09NUCVdICAgLmV4''@;'; put 'put ''cGlyZWQtZGV0YWlsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZXhwaXJlZC1ub3RpY2VbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNlMGUwZTA7Zm9udC1zaXplOjE2cHh9LmRlbW8tZXhwaXJlZC1ub3RpY2VbX25nY29udGVudC0lQ09NUCVdICAgLmV4cGlyZWQtZGV0YWlsc1tfbmdjb250''@;'; put 'put ''ZW50LSVDT01QJV0gICAuZXhwaXJlZC1ub3RpY2VbX25nY29udGVudC0lQ09NUCVdICAgLm1haWx0b1tfbmdjb250ZW50LSVDT01QJV17Y29sb3I6IzhkYzUzZX0ubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLnVwZGF0ZS1rZXlbX25nY29udGVudC0lQ09NUCVde2Rpc3Bs''@;'; put 'put ''YXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Y29sb3I6I2ZmZjtwYWRkaW5nOjAgMTBweDtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjE0OTAxOTYwNzgpfS5hbGVydC1pY29uLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm5hdi10ZXh0W19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MjBweH0uc2lkZWJhci10b2dnbGVbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MTAwJTthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZy1sZWZ0OjEwcHh9LnNpZGViYXItdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; put 'put ''IGNsci1pY29uW19uZ2NvbnRlbnQtJUNPTVAlXXtjdXJzb3I6cG9pbnRlcjt3aWR0aDozMHB4O2hlaWdodDozMHB4fWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAuaGVhZGVyLWFjdGlvbnNbX25nY29udGVudC0lQ09NUCVdICAgLmRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3Np''@;'; put 'put ''dGlvbjp1bnNldH1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmtbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmYWZhZmE7b3BhY2l0eTouOTtsaW5lLWhlaWdodDoxLjQ1cmVtfWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0g''@;'; put 'put ''ICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7Ym94LXNoYWRvdzppbnNldCAwIC0zcHggMCB0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGVhc2UtaW59aGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5u''@;'; put 'put ''YXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXTpob3Zlcntjb2xvcjojZmFmYWZhO29wYWNpdHk6MX1oZWFkZXJbX25nY29udGVudC0lQ09NUCVdICAgLm5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LWxpbmsuYWN0aXZlW19uZ2NvbnRlbnQt''@;'; put 'put ''JUNPTVAlXXtiYWNrZ3JvdW5kOiM2MTcxN0Q7b3BhY2l0eToxO2JveC1zaGFkb3c6aW5zZXQgMCAtM3B4IHRyYW5zcGFyZW50fWhlYWRlcltfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtaXRlbVtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJp''@;'; put 'put ''Z2h0OjFyZW19Lm5vdGZbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6IzE2YTU3YTtjb2xvcjojZmZmY2ZjO2ZvbnQtc2l6ZToxMnB4fS5idG4uYnRuLXN1Y2Nlc3NbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1jb2xvcjojNjJhNDIwO2JhY2tncm91bmQtY29sb3I6IzE2YTU3YSFp''@;'; put 'put ''bXBvcnRhbnQ7Y29sb3I6I2ZmZn0uYnRuLmJ0bi1zdWNjZXNzW19uZ2NvbnRlbnQtJUNPTVAlXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMyYWRkMzk7Y29sb3I6I2ZmZn0udG9nZ2xlLXN3aXRjaFtfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFt0eXBlPWNoZWNrYm94XVtfbmdjb250ZW50''@;'; put 'put ''LSVDT01QJV06Y2hlY2tlZCArIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLWNvbG9yOiM2MTcxN2Q7YmFja2dyb3VuZC1jb2xvcjojNjE3MTdkO3RyYW5zaXRpb246LjE1cyBlYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQt''@;'; put 'put ''Y29sb3J9Lm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OjEwMHZoIWltcG9ydGFudH0ubWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250ZW50LWFyZWFbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde3BhZGRpbmc6MHJlbSAxcmVtIDFyZW19LmNvbnRlbnQtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt6LWluZGV4OjAhaW1wb3J0YW50fS5uYXZCYXJSZXNwW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNr''@;'; put 'put ''Z3JvdW5kOiM0OTVBNjc7Y29sb3I6I2ZmZn1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7Lm5hdkJhclJlc3BbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtiYWNrZ3JvdW5kOiM0OTVBNjc7Y29sb3I6I2ZmZn0u''@;'; put 'put ''bWFpbi1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXZbX25nY29udGVudC0lQ09NUCVdICAgLm5hdi1saW5rW19uZ2NvbnRlbnQtJUNPTVAlXSwgLm1haW4tY29udGFpbmVyW19uZ2NvbnRlbnQt''@;'; put 'put ''JUNPTVAlXSAgIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMltfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV0sIC5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuc3VibmF2LmNsci1uYXYt''@;'; put 'put ''bGV2ZWwtMVtfbmdjb250ZW50LSVDT01QJV0gICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV0sIC5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMltfbmdjb250ZW50LSVDT01QJV0g''@;'; put 'put ''ICAubmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5uYXYtbGlua1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowIC41cmVtIDAgMXJlbTt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2JvcmRlci1yYWRpdXM6LjEyNXJl''@;'; put 'put ''bSAwIDAgLjEyNXJlbTtjb2xvcjojOTVjODRifS5jYXJkLWJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmNhcmQtZm9vdGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjEwcHggMCAwfS5tYWluLWNvbnRhaW5lcltfbmdjb250ZW50LWMwXVtfbmdjb250ZW50LSVDT01QJV0gICAuY29u''@;'; put 'put ''dGVudC1jb250YWluZXJbX25nY29udGVudC1jMF1bX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LWMwXVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowcmVtfX0gIC5odEludmFsaWR7YmFja2dyb3VuZDpibGFjayFpbXBvcnRhbnR9QG1lZGlhIHNjcmVl''@;'; put 'put ''biBhbmQgKG1heC13aWR0aDogNDgwcHgpeyAgaDJ7Zm9udC1zaXplOi43cmVtIWltcG9ydGFudH0gIGgze2ZvbnQtc2l6ZTouN3JlbX19ICAubmF2LWxpbmt7cGFkZGluZzowcmVtIDFyZW19ICAuYnRuLXByaW1hcnkgLmJ0biwgICAuYnRuLmJ0bi1wcmltYXJ5e2JvcmRlci1jb2xvcjojMzE0''@;'; put 'put ''MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MTtjb2xvcjojZmZmfSAgLmJ0bntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LWFwcGVhcmFuY2U6bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czouMTI1cmVtO2JvcmRlcjoxcHggc29saWQ7bWluLXdpZHRo''@;'; put 'put ''OjNyZW07bWF4LXdpZHRoOjE1cmVtO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuNXJlbTts''@;'; put 'put ''ZXR0ZXItc3BhY2luZzouMTJlbTtmb250LXNpemU6LjVyZW07Zm9udC13ZWlnaHQ6NTAwO2hlaWdodDoxLjVyZW07cGFkZGluZzowIC41cmVtO2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6IzMxNDM1MX0gIC5idG4uYnRuLW91dGxpbmV7''@;'; put 'put ''Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjb2xvcjojMzE0MzUxfSAgLmJ0bi5idG4tb3V0bGluZTpob3Zlcntib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiM0OTVhNjc7Y29sb3I6I2ZmZn0gIC5idG4uYnRuLXN1Y2Nlc3Mt''@;'; put 'put ''b3V0bGluZTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZWE3MWY7Y29sb3I6I2ZmZjdmNztib3JkZXItY29sb3I6IzlhOTY5Nn0gIC5odE1vYmlsZUVkaXRvckNvbnRhaW5lciAuaW5wdXRzIHRleHRhcmVhe2ZvbnQtc2l6ZToxM3B0O2JvcmRlcjoycHggc29saWQgIzQ4NTk2Nztib3JkZXIt''@;'; put 'put ''cmFkaXVzOjRweDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtib3gtc2hhZG93Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxNHB4O3JpZ2h0OjBweDt0b3A6MDtib3R0b206MDtwYWRkaW5nOjdwdDt3aWR0aDoyOTBweH0gIC5odE1vYmlsZUVkaXRvckNvbnRhaW5lciAucG9zaXRpb25D''@;'; put 'put ''b250cm9sc3t3aWR0aDozMzNweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo1cHQ7dG9wOjUwcHg7Ym90dG9tOjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9ICAuaHRNb2JpbGVFZGl0b3JDb250YWluZXIuYWN0aXZle2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEyMHB4O3dp''@;'; put 'put ''ZHRoOjM1MHB4fSAgLmhhbmRzb250YWJsZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXJhZGl1czozcHh9ICAuaGFuZHNvbnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYX0gIC5odF9jbG9uZV9sZWZ0IHRoe2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYztib3JkZXIt''@;'; put 'put ''bGVmdDoxcHggc29saWQgI2NjY30gIC5odF9jbG9uZV90b3AgdGh7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjYztib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY30gIC5odF9jbG9uZV90b3BfbGVmdF9jb3JuZXIgdGh7Ym9yZGVyLXJpZ2h0''@;'; put 'put ''OjFweCBzb2xpZCAjY2NjfSAgLmh0X21hc3RlciB0cjpudGgtb2YtdHlwZShvZGQpPnRke2JhY2tncm91bmQtY29sb3I6I2YzZjNmMztib3JkZXI6MXB4IHNvbGlkIHJnYigxOTcsMTk3LDE5Nyk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiKDIzNiwyMzUsMjM1KX0gIC5odF9tYXN0ZXIg''@;'; put 'put ''dHI6bnRoLW9mLXR5cGUoZXZlbik+dGR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JvcmRlcjoxcHggc29saWQgcmdiKDE5NywxOTcsMTk3KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2IoMjM2LDIzNSwyMzUpfSAgLnd0Qm9yZGVye2JhY2tncm91bmQtY29sb3I6IzQ5NWE2NyFpbXBvcnRh''@;'; put 'put ''bnR9ICAuaGFuZHNvbnRhYmxlIC5oYW5kc29udGFibGUuaHRfY2xvbmVfdG9wIC53dEhpZGVye3BhZGRpbmc6MCFpbXBvcnRhbnQ7bWFyZ2luOjA7Ym9yZGVyLWJvdHRvbTozcHggc29saWQgI2Q2ZDNkM30gIC5jb250ZW50LWNvbnRhaW5lcntiYWNrZ3JvdW5kOiNGNUY2RkZ9ICAuY2FyZHti''@;'; put 'put ''b3gtc2hhZG93OjAgLjEyNXJlbSAjZDdkN2Q3O2JvcmRlci1yYWRpdXM6MHJlbTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fSAgLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLCAgIC5kYXRhZ3JpZC1oaXN0b3J5IC5kYXRhZ3JpZHtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9y''@;'; put 'put ''ZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOi4xMjVyZW07YmFja2dyb3VuZC1jb2xvcjojZmZmO2NvbG9yOiM1NjU2NTY7bWFyZ2luOjA7bWFyZ2luLXRvcDoxcmVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4IDE1cHggNTBweH0gIC5kYXRh''@;'; put 'put ''Z3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290LCAgIC5kYXRhZ3JpZC1oaXN0b3J5IC5kYXRhZ3JpZC1mb290e2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtoZWlnaHQ6MS41cmVtO3BhZGRpbmc6MCAuNXJlbTtsaW5lLWhlaWdodDpjYWxjKDEuNXJlbSAtIDNweCk7Zm9udC1zaXplOi40NTgz''@;'; put 'put ''M3JlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLXRvcDoxcHggc29saWQgI2NjYztib3JkZXItcmFkaXVzOjB9ICAuZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZm9vdGVyLCAgIC5kYXRhZ3JpZC1oaXN0b3J5IC5kYXRhZ3JpZC1mb290ZXJ7cG9zaXRpb246YWJzb2x1dGU7cmln''@;'; put 'put ''aHQ6MTVweDt0b3A6MnB4fSAgLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkIC5kYXRhZ3JpZC1oZWFkLCAgIC5kYXRhZ3JpZC1oaXN0b3J5IC5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY30gIC5kcm9w''@;'; put 'put ''ZG93bi1tZW51e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDttYXJnaW4tdG9wOi4wODMzMzNyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOiNmNWY2ZmY7cGFkZGluZzouNXJlbSAwO2JvcmRlcjoxcHggc29saWQgI2NjYztib3gtc2hh''@;'; put 'put ''ZG93OjAgMXB4IC4xMjVyZW0gIzczNzM3MzQwO21pbi13aWR0aDo1cmVtO21heC13aWR0aDoxNXJlbTtib3JkZXItcmFkaXVzOi4xMjVyZW07dmlzaWJpbGl0eTpoaWRkZW47ei1pbmRleDoxMDAwfSAgLnRhYmxle2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXI6MXB4IHNvbGlkIHRy''@;'; put 'put ''YW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Y29sb3I6IzU2NTY1NjttYXJnaW46MDttYXJnaW4tdG9wOjFyZW07bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJX0gIC50YWJsZSB0aHtmb250LXNpemU6LjQ1ODMzcmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0''@;'; put 'put ''ZXItc3BhY2luZzouMDNlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246Ym90dG9tO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNjY2M7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfSAgLm1vZGFsLWhlYWRlcntib3JkZXItYm90dG9tOjJweCBzb2xpZCAjZTRlNGU0O3Bh''@;'; put 'put ''ZGRpbmc6MCAwIC41cmVtO21hcmdpbi1ib3R0b206MXJlbX0gIC5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXJ7bWluLWhlaWdodDowcHg7cG9zaXRpb246cmVsYXRpdmV9LmFwcC1sb2FkaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5sb2FkaW5nLWxvZ29bX25nY29udGVudC0l''@;'; put 'put ''Q09NUCVde21heC13aWR0aDo0MDBweDt3aWR0aDoxMDAlfSJdfSksZH0pKCk7ZnVuY3Rpb24gbndlKGQpe3JldHVybiBuZXcgZW4oM2UzLCExKX1mdW5jdGlvbiBRUGUoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmRvY3VtZW50fWZ1bmN0aW9u''@;'; put 'put ''IGRoZSgpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmIltvYmplY3QgcHJvY2Vzc10iPT09e30udG9TdHJpbmcuY2FsbChwcm9jZXNzKX1mdW5jdGlvbiBBdyhkKXtzd2l0Y2goZC5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IElrO2Nhc2UgMTpyZXR1cm4gZFswXTtkZWZh''@;'; put 'put ''dWx0OnJldHVybiBuZXcgejcoZCl9fWZ1bmN0aW9uIHJ3ZShkLGcsaCx2LHk9bmV3IE1hcCxDPW5ldyBNYXApe2NvbnN0IEk9W10sWj1bXTtsZXQgdWU9LTEsX2U9bnVsbDtpZih2LmZvckVhY2goQmU9Pntjb25zdCBOZT1CZS5nZXQoIm9mZnNldCIpLEtlPU5lPT11ZSxwdD1LZSYmX2V8fG5l''@;'; put 'put ''dyBNYXA7QmUuZm9yRWFjaCgoT3QsJHQpPT57bGV0IGZuPSR0LExuPU90O2lmKCJvZmZzZXQiIT09JHQpc3dpdGNoKGZuPWcubm9ybWFsaXplUHJvcGVydHlOYW1lKGZuLEkpLExuKXtjYXNlIiEiOkxuPXkuZ2V0KCR0KTticmVhaztjYXNlIG44OkxuPUMuZ2V0KCR0KTticmVhaztkZWZhdWx0''@;'; put 'put ''OkxuPWcubm9ybWFsaXplU3R5bGVWYWx1ZSgkdCxmbixMbixJKX1wdC5zZXQoZm4sTG4pfSksS2V8fFoucHVzaChwdCksX2U9cHQsdWU9TmV9KSxJLmxlbmd0aCl0aHJvdyBmdW5jdGlvbiBQUGUoZCl7cmV0dXJuIG5ldyBlbigzNTAyLCExKX0oKTtyZXR1cm4gWn1mdW5jdGlvbiBwaGUoZCxn''@;'; put 'put ''LGgsdil7c3dpdGNoKGcpe2Nhc2Uic3RhcnQiOmQub25TdGFydCgoKT0+dihoJiZnaGUoaCwic3RhcnQiLGQpKSk7YnJlYWs7Y2FzZSJkb25lIjpkLm9uRG9uZSgoKT0+dihoJiZnaGUoaCwiZG9uZSIsZCkpKTticmVhaztjYXNlImRlc3Ryb3kiOmQub25EZXN0cm95KCgpPT52KGgmJmdoZSho''@;'; put 'put ''LCJkZXN0cm95IixkKSkpfX1mdW5jdGlvbiBnaGUoZCxnLGgpe2NvbnN0IHY9aC50b3RhbFRpbWUsQz1taGUoZC5lbGVtZW50LGQudHJpZ2dlck5hbWUsZC5mcm9tU3RhdGUsZC50b1N0YXRlLGd8fGQucGhhc2VOYW1lLG51bGw9PXY/ZC50b3RhbFRpbWU6diwhIWguZGlzYWJsZWQpLEk9ZC5f''@;'; put 'put ''ZGF0YTtyZXR1cm4gbnVsbCE9SSYmKEMuX2RhdGE9SSksQ31mdW5jdGlvbiBtaGUoZCxnLGgsdix5PSIiLEM9MCxJKXtyZXR1cm57ZWxlbWVudDpkLHRyaWdnZXJOYW1lOmcsZnJvbVN0YXRlOmgsdG9TdGF0ZTp2LHBoYXNlTmFtZTp5LHRvdGFsVGltZTpDLGRpc2FibGVkOiEhSX19ZnVuY3Rp''@;'; put 'put ''b24gZDQoZCxnLGgpe2xldCB2PWQuZ2V0KGcpO3JldHVybiB2fHxkLnNldChnLHY9aCksdn1mdW5jdGlvbiBpd2UoZCl7Y29uc3QgZz1kLmluZGV4T2YoIjoiKTtyZXR1cm5bZC5zdWJzdHJpbmcoMSxnKSxkLnNsaWNlKGcrMSldfWxldCB2aGU9KGQsZyk9PiExLG93ZT0oZCxnLGgpPT5bXSxh''@;'; put 'put ''d2U9bnVsbDtmdW5jdGlvbiBBaGUoZCl7Y29uc3QgZz1kLnBhcmVudE5vZGV8fGQuaG9zdDtyZXR1cm4gZz09PWF3ZT9udWxsOmd9KGRoZSgpfHwidW5kZWZpbmVkIiE9dHlwZW9mIEVsZW1lbnQpJiYoUVBlKCk/KGF3ZT0oKCk9PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkoKSx2aGU9KGQs''@;'; put 'put ''Zyk9Pntmb3IoO2c7KXtpZihnPT09ZClyZXR1cm4hMDtnPUFoZShnKX1yZXR1cm4hMX0pOnZoZT0oZCxnKT0+ZC5jb250YWlucyhnKSxvd2U9KGQsZyxoKT0+e2lmKGgpcmV0dXJuIEFycmF5LmZyb20oZC5xdWVyeVNlbGVjdG9yQWxsKGcpKTtjb25zdCB2PWQucXVlcnlTZWxlY3RvcihnKTty''@;'; put 'put ''ZXR1cm4gdj9bdl06W119KTtsZXQgQ1M9bnVsbCxsd2U9ITE7Y29uc3Qgc3dlPXZoZSx1d2U9b3dlO2xldCBjd2U9KCgpPT57Y2xhc3MgZHt2YWxpZGF0ZVN0eWxlUHJvcGVydHkoaCl7cmV0dXJuIGZ1bmN0aW9uIFhQZShkKXtDU3x8KENTPWZ1bmN0aW9uIEtQZSgpe3JldHVybiJ1bmRlZmlu''@;'; put 'put ''ZWQiIT10eXBlb2YgZG9jdW1lbnQ/ZG9jdW1lbnQuYm9keTpudWxsfSgpfHx7fSxsd2U9ISFDUy5zdHlsZSYmIldlYmtpdEFwcGVhcmFuY2UiaW4gQ1Muc3R5bGUpO2xldCBnPSEwO3JldHVybiBDUy5zdHlsZSYmIWZ1bmN0aW9uIEpQZShkKXtyZXR1cm4iZWJraXQiPT1kLnN1YnN0cmluZygx''@;'; put 'put ''LDYpfShkKSYmKGc9ZCBpbiBDUy5zdHlsZSwhZyYmbHdlJiYoZz0iV2Via2l0IitkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Quc2xpY2UoMSlpbiBDUy5zdHlsZSkpLGd9KGgpfW1hdGNoZXNFbGVtZW50KGgsdil7cmV0dXJuITF9Y29udGFpbnNFbGVtZW50KGgsdil7cmV0dXJuIHN3ZSho''@;'; put 'put ''LHYpfWdldFBhcmVudEVsZW1lbnQoaCl7cmV0dXJuIEFoZShoKX1xdWVyeShoLHYseSl7cmV0dXJuIHV3ZShoLHYseSl9Y29tcHV0ZVN0eWxlKGgsdix5KXtyZXR1cm4geXx8IiJ9YW5pbWF0ZShoLHYseSxDLEksWj1bXSx1ZSl7cmV0dXJuIG5ldyBJayh5LEMpfX1yZXR1cm4gZC5cdTAyNzVm''@;'; put 'put ''YWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKSx5aGU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuTk9PUD1uZXcgY3dlLGR9KSgpO2NvbnN0IFNxPSJuZy1sZWF2ZSIsTXE9Im5nLXRyaWdn''@;'; put 'put ''ZXIiLEVxPSIubmctdHJpZ2dlciIsaHdlPSJuZy1hbmltYXRpbmciLGJoZT0iLm5nLWFuaW1hdGluZyI7ZnVuY3Rpb24geXcoZCl7aWYoIm51bWJlciI9PXR5cGVvZiBkKXJldHVybiBkO2NvbnN0IGc9ZC5tYXRjaCgvXigtP1tcLlxkXSspKG0/cykvKTtyZXR1cm4hZ3x8Zy5sZW5ndGg8Mj8w''@;'; put 'put ''Ol9oZShwYXJzZUZsb2F0KGdbMV0pLGdbMl0pfWZ1bmN0aW9uIF9oZShkLGcpe3JldHVybiJzIj09PWc/MWUzKmQ6ZH1mdW5jdGlvbiB4cShkLGcsaCl7cmV0dXJuIGQuaGFzT3duUHJvcGVydHkoImR1cmF0aW9uIik/ZDpmdW5jdGlvbiBlRmUoZCxnLGgpe2xldCB5LEM9MCxJPSIiO2lmKCJz''@;'; put 'put ''dHJpbmciPT10eXBlb2YgZCl7Y29uc3QgWj1kLm1hdGNoKC9eKC0/W1wuXGRdKykobT9zKSg/OlxzKygtP1tcLlxkXSspKG0/cykpPyg/OlxzKyhbLWEtel0rKD86XCguKz9cKSk/KSk/JC9pKTtpZihudWxsPT09WilyZXR1cm4gZy5wdXNoKG53ZSgpKSx7ZHVyYXRpb246MCxkZWxheTowLGVh''@;'; put 'put ''c2luZzoiIn07eT1faGUocGFyc2VGbG9hdChaWzFdKSxaWzJdKTtjb25zdCB1ZT1aWzNdO251bGwhPXVlJiYoQz1faGUocGFyc2VGbG9hdCh1ZSksWls0XSkpO2NvbnN0IF9lPVpbNV07X2UmJihJPV9lKX1lbHNlIHk9ZDtpZighaCl7bGV0IFo9ITEsdWU9Zy5sZW5ndGg7eTwwJiYoZy5wdXNo''@;'; put 'put ''KGZ1bmN0aW9uIHBQZSgpe3JldHVybiBuZXcgZW4oMzEwMCwhMSl9KCkpLFo9ITApLEM8MCYmKGcucHVzaChmdW5jdGlvbiBnUGUoKXtyZXR1cm4gbmV3IGVuKDMxMDEsITEpfSgpKSxaPSEwKSxaJiZnLnNwbGljZSh1ZSwwLG53ZSgpKX1yZXR1cm57ZHVyYXRpb246eSxkZWxheTpDLGVhc2lu''@;'; put 'put ''ZzpJfX0oZCxnLGgpfWZ1bmN0aW9uIF9aKGQsZz17fSl7cmV0dXJuIE9iamVjdC5rZXlzKGQpLmZvckVhY2goaD0+e2dbaF09ZFtoXX0pLGd9ZnVuY3Rpb24gZHdlKGQpe2NvbnN0IGc9bmV3IE1hcDtyZXR1cm4gT2JqZWN0LmtleXMoZCkuZm9yRWFjaChoPT57Zy5zZXQoaCxkW2hdKX0pLGd9''@;'; put 'put ''ZnVuY3Rpb24gd3coZCxnPW5ldyBNYXAsaCl7aWYoaClmb3IobGV0W3YseV1vZiBoKWcuc2V0KHYseSk7Zm9yKGxldFt2LHldb2YgZClnLnNldCh2LHkpO3JldHVybiBnfWZ1bmN0aW9uIGd3ZShkLGcsaCl7cmV0dXJuIGg/ZysiOiIraCsiOyI6IiJ9ZnVuY3Rpb24gbXdlKGQpe2xldCBnPSIi''@;'; put 'put ''O2ZvcihsZXQgaD0wO2g8ZC5zdHlsZS5sZW5ndGg7aCsrKXtjb25zdCB2PWQuc3R5bGUuaXRlbShoKTtnKz1nd2UoMCx2LGQuc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSh2KSl9Zm9yKGNvbnN0IGggaW4gZC5zdHlsZSlkLnN0eWxlLmhhc093blByb3BlcnR5KGgpJiYhaC5zdGFydHNXaXRoKCJf''@;'; put 'put ''IikmJihnKz1nd2UoMCxpRmUoaCksZC5zdHlsZVtoXSkpO2Quc2V0QXR0cmlidXRlKCJzdHlsZSIsZyl9ZnVuY3Rpb24gQ2coZCxnLGgpe2Quc3R5bGUmJihnLmZvckVhY2goKHYseSk9Pntjb25zdCBDPWtoZSh5KTtoJiYhaC5oYXMoeSkmJmguc2V0KHksZC5zdHlsZVtDXSksZC5zdHlsZVtD''@;'; put 'put ''XT12fSksZGhlKCkmJm13ZShkKSl9ZnVuY3Rpb24ga1MoZCxnKXtkLnN0eWxlJiYoZy5mb3JFYWNoKChoLHYpPT57Y29uc3QgeT1raGUodik7ZC5zdHlsZVt5XT0iIn0pLGRoZSgpJiZtd2UoZCkpfWZ1bmN0aW9uIENaKGQpe3JldHVybiBBcnJheS5pc0FycmF5KGQpPzE9PWQubGVuZ3RoP2Rb''@;'; put 'put ''MF06VGsoZCk6ZH1jb25zdCBDaGU9bmV3IFJlZ0V4cCgie3tcXHMqKC4rPylcXHMqfX0iLCJnIik7ZnVuY3Rpb24gdndlKGQpe2xldCBnPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgZCl7bGV0IGg7Zm9yKDtoPUNoZS5leGVjKGQpOylnLnB1c2goaFsxXSk7Q2hlLmxhc3RJbmRleD0wfXJldHVy''@;'; put 'put ''biBnfWZ1bmN0aW9uIFRxKGQsZyxoKXtjb25zdCB2PWQudG9TdHJpbmcoKSx5PXYucmVwbGFjZShDaGUsKEMsSSk9PntsZXQgWj1nW0ldO3JldHVybiBudWxsPT1aJiYoaC5wdXNoKGZ1bmN0aW9uIHZQZShkKXtyZXR1cm4gbmV3IGVuKDMwMDMsITEpfSgpKSxaPSIiKSxaLnRvU3RyaW5nKCl9''@;'; put 'put ''KTtyZXR1cm4geT09dj9kOnl9ZnVuY3Rpb24gSXEoZCl7Y29uc3QgZz1bXTtsZXQgaD1kLm5leHQoKTtmb3IoOyFoLmRvbmU7KWcucHVzaChoLnZhbHVlKSxoPWQubmV4dCgpO3JldHVybiBnfWNvbnN0IHJGZT0vLSsoW2EtejAtOV0pL2c7ZnVuY3Rpb24ga2hlKGQpe3JldHVybiBkLnJlcGxh''@;'; put 'put ''Y2UockZlLCguLi5nKT0+Z1sxXS50b1VwcGVyQ2FzZSgpKX1mdW5jdGlvbiBpRmUoZCl7cmV0dXJuIGQucmVwbGFjZSgvKFthLXpdKShbQS1aXSkvZywiJDEtJDIiKS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIHA0KGQsZyxoKXtzd2l0Y2goZy50eXBlKXtjYXNlIDc6cmV0dXJuIGQudmlzaXRU''@;'; put 'put ''cmlnZ2VyKGcsaCk7Y2FzZSAwOnJldHVybiBkLnZpc2l0U3RhdGUoZyxoKTtjYXNlIDE6cmV0dXJuIGQudmlzaXRUcmFuc2l0aW9uKGcsaCk7Y2FzZSAyOnJldHVybiBkLnZpc2l0U2VxdWVuY2UoZyxoKTtjYXNlIDM6cmV0dXJuIGQudmlzaXRHcm91cChnLGgpO2Nhc2UgNDpyZXR1cm4gZC52''@;'; put 'put ''aXNpdEFuaW1hdGUoZyxoKTtjYXNlIDU6cmV0dXJuIGQudmlzaXRLZXlmcmFtZXMoZyxoKTtjYXNlIDY6cmV0dXJuIGQudmlzaXRTdHlsZShnLGgpO2Nhc2UgODpyZXR1cm4gZC52aXNpdFJlZmVyZW5jZShnLGgpO2Nhc2UgOTpyZXR1cm4gZC52aXNpdEFuaW1hdGVDaGlsZChnLGgpO2Nhc2Ug''@;'; put 'put ''MTA6cmV0dXJuIGQudmlzaXRBbmltYXRlUmVmKGcsaCk7Y2FzZSAxMTpyZXR1cm4gZC52aXNpdFF1ZXJ5KGcsaCk7Y2FzZSAxMjpyZXR1cm4gZC52aXNpdFN0YWdnZXIoZyxoKTtkZWZhdWx0OnRocm93IGZ1bmN0aW9uIEFQZShkKXtyZXR1cm4gbmV3IGVuKDMwMDQsITEpfSgpfX1mdW5jdGlv''@;'; put 'put ''biBBd2UoZCxnKXtyZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZClbZ119ZnVuY3Rpb24gY0ZlKGQsZyl7Y29uc3QgaD1bXTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGQ/ZC5zcGxpdCgvXHMqLFxzKi8pLmZvckVhY2godj0+ZnVuY3Rpb24gZkZlKGQsZyxoKXtpZigiOiI9PWRbMF0p''@;'; put 'put ''e2NvbnN0IHVlPWZ1bmN0aW9uIGhGZShkLGcpe3N3aXRjaChkKXtjYXNlIjplbnRlciI6cmV0dXJuInZvaWQgPT4gKiI7Y2FzZSI6bGVhdmUiOnJldHVybiIqID0+IHZvaWQiO2Nhc2UiOmluY3JlbWVudCI6cmV0dXJuKGgsdik9PnBhcnNlRmxvYXQodik+cGFyc2VGbG9hdChoKTtjYXNlIjpk''@;'; put 'put ''ZWNyZW1lbnQiOnJldHVybihoLHYpPT5wYXJzZUZsb2F0KHYpPHBhcnNlRmxvYXQoaCk7ZGVmYXVsdDpyZXR1cm4gZy5wdXNoKGZ1bmN0aW9uIExQZShkKXtyZXR1cm4gbmV3IGVuKDMwMTYsITEpfSgpKSwiKiA9PiAqIn19KGQsaCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHVlKXJldHVybiB2''@;'; put 'put ''b2lkIGcucHVzaCh1ZSk7ZD11ZX1jb25zdCB2PWQubWF0Y2goL14oXCp8Wy1cd10rKVxzKig8P1s9LV0+KVxzKihcKnxbLVx3XSspJC8pO2lmKG51bGw9PXZ8fHYubGVuZ3RoPDQpcmV0dXJuIGgucHVzaChmdW5jdGlvbiBEUGUoZCl7cmV0dXJuIG5ldyBlbigzMDE1LCExKX0oKSksZztjb25z''@;'; put 'put ''dCB5PXZbMV0sQz12WzJdLEk9dlszXTtnLnB1c2goeXdlKHksSSkpOyI8Ij09Q1swXSYmISgiKiI9PXkmJiIqIj09SSkmJmcucHVzaCh5d2UoSSx5KSl9KHYsaCxnKSk6aC5wdXNoKGQpLGh9Y29uc3QgUnE9bmV3IFNldChbInRydWUiLCIxIl0pLEJxPW5ldyBTZXQoWyJmYWxzZSIsIjAiXSk7''@;'; put 'put ''ZnVuY3Rpb24geXdlKGQsZyl7Y29uc3QgaD1ScS5oYXMoZCl8fEJxLmhhcyhkKSx2PVJxLmhhcyhnKXx8QnEuaGFzKGcpO3JldHVybih5LEMpPT57bGV0IEk9IioiPT1kfHxkPT15LFo9IioiPT1nfHxnPT1DO3JldHVybiFJJiZoJiYiYm9vbGVhbiI9PXR5cGVvZiB5JiYoST15P1JxLmhhcyhk''@;'; put 'put ''KTpCcS5oYXMoZCkpLCFaJiZ2JiYiYm9vbGVhbiI9PXR5cGVvZiBDJiYoWj1DP1JxLmhhcyhnKTpCcS5oYXMoZykpLEkmJlp9fWNvbnN0IGRGZT1uZXcgUmVnRXhwKCJzKjpzZWxmcyosPyIsImciKTtmdW5jdGlvbiBTaGUoZCxnLGgsdil7cmV0dXJuIG5ldyBwRmUoZCkuYnVpbGQoZyxoLHYp''@;'; put 'put ''fWNsYXNzIHBGZXtjb25zdHJ1Y3RvcihnKXt0aGlzLl9kcml2ZXI9Z31idWlsZChnLGgsdil7Y29uc3QgeT1uZXcgdkZlKGgpO3JldHVybiB0aGlzLl9yZXNldENvbnRleHRTdHlsZVRpbWluZ1N0YXRlKHkpLHA0KHRoaXMsQ1ooZykseSl9X3Jlc2V0Q29udGV4dFN0eWxlVGltaW5nU3RhdGUo''@;'; put 'put ''Zyl7Zy5jdXJyZW50UXVlcnlTZWxlY3Rvcj0iIixnLmNvbGxlY3RlZFN0eWxlcz1uZXcgTWFwLGcuY29sbGVjdGVkU3R5bGVzLnNldCgiIixuZXcgTWFwKSxnLmN1cnJlbnRUaW1lPTB9dmlzaXRUcmlnZ2VyKGcsaCl7bGV0IHY9aC5xdWVyeUNvdW50PTAseT1oLmRlcENvdW50PTA7Y29uc3Qg''@;'; put 'put ''Qz1bXSxJPVtdO3JldHVybiJAIj09Zy5uYW1lLmNoYXJBdCgwKSYmaC5lcnJvcnMucHVzaChmdW5jdGlvbiB3UGUoKXtyZXR1cm4gbmV3IGVuKDMwMDYsITEpfSgpKSxnLmRlZmluaXRpb25zLmZvckVhY2goWj0+e2lmKHRoaXMuX3Jlc2V0Q29udGV4dFN0eWxlVGltaW5nU3RhdGUoaCksMD09''@;'; put 'put ''Wi50eXBlKXtjb25zdCB1ZT1aLF9lPXVlLm5hbWU7X2UudG9TdHJpbmcoKS5zcGxpdCgvXHMqLFxzKi8pLmZvckVhY2goQmU9Pnt1ZS5uYW1lPUJlLEMucHVzaCh0aGlzLnZpc2l0U3RhdGUodWUsaCkpfSksdWUubmFtZT1fZX1lbHNlIGlmKDE9PVoudHlwZSl7Y29uc3QgdWU9dGhpcy52aXNp''@;'; put 'put ''dFRyYW5zaXRpb24oWixoKTt2Kz11ZS5xdWVyeUNvdW50LHkrPXVlLmRlcENvdW50LEkucHVzaCh1ZSl9ZWxzZSBoLmVycm9ycy5wdXNoKGZ1bmN0aW9uIGJQZSgpe3JldHVybiBuZXcgZW4oMzAwNywhMSl9KCkpfSkse3R5cGU6NyxuYW1lOmcubmFtZSxzdGF0ZXM6Qyx0cmFuc2l0aW9uczpJ''@;'; put 'put ''LHF1ZXJ5Q291bnQ6dixkZXBDb3VudDp5LG9wdGlvbnM6bnVsbH19dmlzaXRTdGF0ZShnLGgpe2NvbnN0IHY9dGhpcy52aXNpdFN0eWxlKGcuc3R5bGVzLGgpLHk9Zy5vcHRpb25zJiZnLm9wdGlvbnMucGFyYW1zfHxudWxsO2lmKHYuY29udGFpbnNEeW5hbWljU3R5bGVzKXtjb25zdCBDPW5l''@;'; put 'put ''dyBTZXQsST15fHx7fTt2LnN0eWxlcy5mb3JFYWNoKFo9PntaIGluc3RhbmNlb2YgTWFwJiZaLmZvckVhY2godWU9Pnt2d2UodWUpLmZvckVhY2goX2U9PntJLmhhc093blByb3BlcnR5KF9lKXx8Qy5hZGQoX2UpfSl9KX0pLEMuc2l6ZSYmKElxKEMudmFsdWVzKCkpLGguZXJyb3JzLnB1c2go''@;'; put 'put ''ZnVuY3Rpb24gX1BlKGQsZyl7cmV0dXJuIG5ldyBlbigzMDA4LCExKX0oKSkpfXJldHVybnt0eXBlOjAsbmFtZTpnLm5hbWUsc3R5bGU6dixvcHRpb25zOnk/e3BhcmFtczp5fTpudWxsfX12aXNpdFRyYW5zaXRpb24oZyxoKXtoLnF1ZXJ5Q291bnQ9MCxoLmRlcENvdW50PTA7Y29uc3Qgdj1w''@;'; put 'put ''NCh0aGlzLENaKGcuYW5pbWF0aW9uKSxoKTtyZXR1cm57dHlwZToxLG1hdGNoZXJzOmNGZShnLmV4cHIsaC5lcnJvcnMpLGFuaW1hdGlvbjp2LHF1ZXJ5Q291bnQ6aC5xdWVyeUNvdW50LGRlcENvdW50OmguZGVwQ291bnQsb3B0aW9uczpTUyhnLm9wdGlvbnMpfX12aXNpdFNlcXVlbmNlKGcs''@;'; put 'put ''aCl7cmV0dXJue3R5cGU6MixzdGVwczpnLnN0ZXBzLm1hcCh2PT5wNCh0aGlzLHYsaCkpLG9wdGlvbnM6U1MoZy5vcHRpb25zKX19dmlzaXRHcm91cChnLGgpe2NvbnN0IHY9aC5jdXJyZW50VGltZTtsZXQgeT0wO2NvbnN0IEM9Zy5zdGVwcy5tYXAoST0+e2guY3VycmVudFRpbWU9djtjb25z''@;'; put 'put ''dCBaPXA0KHRoaXMsSSxoKTtyZXR1cm4geT1NYXRoLm1heCh5LGguY3VycmVudFRpbWUpLFp9KTtyZXR1cm4gaC5jdXJyZW50VGltZT15LHt0eXBlOjMsc3RlcHM6QyxvcHRpb25zOlNTKGcub3B0aW9ucyl9fXZpc2l0QW5pbWF0ZShnLGgpe2NvbnN0IHY9ZnVuY3Rpb24geUZlKGQsZyl7aWYo''@;'; put 'put ''ZC5oYXNPd25Qcm9wZXJ0eSgiZHVyYXRpb24iKSlyZXR1cm4gZDtpZigibnVtYmVyIj09dHlwZW9mIGQpcmV0dXJuIE1oZSh4cShkLGcpLmR1cmF0aW9uLDAsIiIpO2NvbnN0IGg9ZDtpZihoLnNwbGl0KC9ccysvKS5zb21lKEM9PiJ7Ij09Qy5jaGFyQXQoMCkmJiJ7Ij09Qy5jaGFyQXQoMSkp''@;'; put 'put ''KXtjb25zdCBDPU1oZSgwLDAsIiIpO3JldHVybiBDLmR5bmFtaWM9ITAsQy5zdHJWYWx1ZT1oLEN9Y29uc3QgeT14cShoLGcpO3JldHVybiBNaGUoeS5kdXJhdGlvbix5LmRlbGF5LHkuZWFzaW5nKX0oZy50aW1pbmdzLGguZXJyb3JzKTtoLmN1cnJlbnRBbmltYXRlVGltaW5ncz12O2xldCB5''@;'; put 'put ''LEM9Zy5zdHlsZXM/Zy5zdHlsZXM6eWwoe30pO2lmKDU9PUMudHlwZSl5PXRoaXMudmlzaXRLZXlmcmFtZXMoQyxoKTtlbHNle2xldCBJPWcuc3R5bGVzLFo9ITE7aWYoIUkpe1o9ITA7Y29uc3QgX2U9e307di5lYXNpbmcmJihfZS5lYXNpbmc9di5lYXNpbmcpLEk9eWwoX2UpfWguY3VycmVu''@;'; put 'put ''dFRpbWUrPXYuZHVyYXRpb24rdi5kZWxheTtjb25zdCB1ZT10aGlzLnZpc2l0U3R5bGUoSSxoKTt1ZS5pc0VtcHR5U3RlcD1aLHk9dWV9cmV0dXJuIGguY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwse3R5cGU6NCx0aW1pbmdzOnYsc3R5bGU6eSxvcHRpb25zOm51bGx9fXZpc2l0U3R5bGUo''@;'; put 'put ''ZyxoKXtjb25zdCB2PXRoaXMuX21ha2VTdHlsZUFzdChnLGgpO3JldHVybiB0aGlzLl92YWxpZGF0ZVN0eWxlQXN0KHYsaCksdn1fbWFrZVN0eWxlQXN0KGcsaCl7Y29uc3Qgdj1bXSx5PUFycmF5LmlzQXJyYXkoZy5zdHlsZXMpP2cuc3R5bGVzOltnLnN0eWxlc107Zm9yKGxldCBaIG9mIHkp''@;'; put 'put ''InN0cmluZyI9PXR5cGVvZiBaP1o9PT1uOD92LnB1c2goWik6aC5lcnJvcnMucHVzaChuZXcgZW4oMzAwMiwhMSkpOnYucHVzaChkd2UoWikpO2xldCBDPSExLEk9bnVsbDtyZXR1cm4gdi5mb3JFYWNoKFo9PntpZihaIGluc3RhbmNlb2YgTWFwJiYoWi5oYXMoImVhc2luZyIpJiYoST1aLmdl''@;'; put 'put ''dCgiZWFzaW5nIiksWi5kZWxldGUoImVhc2luZyIpKSwhQykpZm9yKGxldCB1ZSBvZiBaLnZhbHVlcygpKWlmKHVlLnRvU3RyaW5nKCkuaW5kZXhPZigie3siKT49MCl7Qz0hMDticmVha319KSx7dHlwZTo2LHN0eWxlczp2LGVhc2luZzpJLG9mZnNldDpnLm9mZnNldCxjb250YWluc0R5bmFt''@;'; put 'put ''aWNTdHlsZXM6QyxvcHRpb25zOm51bGx9fV92YWxpZGF0ZVN0eWxlQXN0KGcsaCl7Y29uc3Qgdj1oLmN1cnJlbnRBbmltYXRlVGltaW5ncztsZXQgeT1oLmN1cnJlbnRUaW1lLEM9aC5jdXJyZW50VGltZTt2JiZDPjAmJihDLT12LmR1cmF0aW9uK3YuZGVsYXkpLGcuc3R5bGVzLmZvckVhY2go''@;'; put 'put ''ST0+eyJzdHJpbmciIT10eXBlb2YgSSYmSS5mb3JFYWNoKChaLHVlKT0+e2NvbnN0IF9lPWguY29sbGVjdGVkU3R5bGVzLmdldChoLmN1cnJlbnRRdWVyeVNlbGVjdG9yKSxCZT1fZS5nZXQodWUpO2xldCBOZT0hMDtCZSYmKEMhPXkmJkM+PUJlLnN0YXJ0VGltZSYmeTw9QmUuZW5kVGltZSYm''@;'; put 'put ''KGguZXJyb3JzLnB1c2goZnVuY3Rpb24ga1BlKGQsZyxoLHYseSl7cmV0dXJuIG5ldyBlbigzMDEwLCExKX0oKSksTmU9ITEpLEM9QmUuc3RhcnRUaW1lKSxOZSYmX2Uuc2V0KHVlLHtzdGFydFRpbWU6QyxlbmRUaW1lOnl9KSxoLm9wdGlvbnMmJmZ1bmN0aW9uIG5GZShkLGcsaCl7Y29uc3Qg''@;'; put 'put ''dj1nLnBhcmFtc3x8e30seT12d2UoZCk7eS5sZW5ndGgmJnkuZm9yRWFjaChDPT57di5oYXNPd25Qcm9wZXJ0eShDKXx8aC5wdXNoKGZ1bmN0aW9uIG1QZShkKXtyZXR1cm4gbmV3IGVuKDMwMDEsITEpfSgpKX0pfShaLGgub3B0aW9ucyxoLmVycm9ycyl9KX0pfXZpc2l0S2V5ZnJhbWVzKGcs''@;'; put 'put ''aCl7Y29uc3Qgdj17dHlwZTo1LHN0eWxlczpbXSxvcHRpb25zOm51bGx9O2lmKCFoLmN1cnJlbnRBbmltYXRlVGltaW5ncylyZXR1cm4gaC5lcnJvcnMucHVzaChmdW5jdGlvbiBTUGUoKXtyZXR1cm4gbmV3IGVuKDMwMTEsITEpfSgpKSx2O2xldCBDPTA7Y29uc3QgST1bXTtsZXQgWj0hMSx1''@;'; put 'put ''ZT0hMSxfZT0wO2NvbnN0IEJlPWcuc3RlcHMubWFwKExuPT57Y29uc3QgaXI9dGhpcy5fbWFrZVN0eWxlQXN0KExuLGgpO2xldCBtcj1udWxsIT1pci5vZmZzZXQ/aXIub2Zmc2V0OmZ1bmN0aW9uIEFGZShkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG51bGw7bGV0IGc9bnVsbDtp''@;'; put 'put ''ZihBcnJheS5pc0FycmF5KGQpKWQuZm9yRWFjaChoPT57aWYoaCBpbnN0YW5jZW9mIE1hcCYmaC5oYXMoIm9mZnNldCIpKXtjb25zdCB2PWg7Zz1wYXJzZUZsb2F0KHYuZ2V0KCJvZmZzZXQiKSksdi5kZWxldGUoIm9mZnNldCIpfX0pO2Vsc2UgaWYoZCBpbnN0YW5jZW9mIE1hcCYmZC5oYXMo''@;'; put 'put ''Im9mZnNldCIpKXtjb25zdCBoPWQ7Zz1wYXJzZUZsb2F0KGguZ2V0KCJvZmZzZXQiKSksaC5kZWxldGUoIm9mZnNldCIpfXJldHVybiBnfShpci5zdHlsZXMpLFNyPTA7cmV0dXJuIG51bGwhPW1yJiYoQysrLFNyPWlyLm9mZnNldD1tciksdWU9dWV8fFNyPDB8fFNyPjEsWj1afHxTcjxfZSxf''@;'; put 'put ''ZT1TcixJLnB1c2goU3IpLGlyfSk7dWUmJmguZXJyb3JzLnB1c2goZnVuY3Rpb24gTVBlKCl7cmV0dXJuIG5ldyBlbigzMDEyLCExKX0oKSksWiYmaC5lcnJvcnMucHVzaChmdW5jdGlvbiBFUGUoKXtyZXR1cm4gbmV3IGVuKDMyMDAsITEpfSgpKTtjb25zdCBOZT1nLnN0ZXBzLmxlbmd0aDts''@;'; put 'put ''ZXQgS2U9MDtDPjAmJkM8TmU/aC5lcnJvcnMucHVzaChmdW5jdGlvbiB4UGUoKXtyZXR1cm4gbmV3IGVuKDMyMDIsITEpfSgpKTowPT1DJiYoS2U9MS8oTmUtMSkpO2NvbnN0IHB0PU5lLTEsT3Q9aC5jdXJyZW50VGltZSwkdD1oLmN1cnJlbnRBbmltYXRlVGltaW5ncyxmbj0kdC5kdXJhdGlv''@;'; put 'put ''bjtyZXR1cm4gQmUuZm9yRWFjaCgoTG4saXIpPT57Y29uc3QgbXI9S2U+MD9pcj09cHQ/MTpLZSppcjpJW2lyXSxTcj1tcipmbjtoLmN1cnJlbnRUaW1lPU90KyR0LmRlbGF5K1NyLCR0LmR1cmF0aW9uPVNyLHRoaXMuX3ZhbGlkYXRlU3R5bGVBc3QoTG4saCksTG4ub2Zmc2V0PW1yLHYuc3R5''@;'; put 'put ''bGVzLnB1c2goTG4pfSksdn12aXNpdFJlZmVyZW5jZShnLGgpe3JldHVybnt0eXBlOjgsYW5pbWF0aW9uOnA0KHRoaXMsQ1ooZy5hbmltYXRpb24pLGgpLG9wdGlvbnM6U1MoZy5vcHRpb25zKX19dmlzaXRBbmltYXRlQ2hpbGQoZyxoKXtyZXR1cm4gaC5kZXBDb3VudCsrLHt0eXBlOjksb3B0''@;'; put 'put ''aW9uczpTUyhnLm9wdGlvbnMpfX12aXNpdEFuaW1hdGVSZWYoZyxoKXtyZXR1cm57dHlwZToxMCxhbmltYXRpb246dGhpcy52aXNpdFJlZmVyZW5jZShnLmFuaW1hdGlvbixoKSxvcHRpb25zOlNTKGcub3B0aW9ucyl9fXZpc2l0UXVlcnkoZyxoKXtjb25zdCB2PWguY3VycmVudFF1ZXJ5U2Vs''@;'; put 'put ''ZWN0b3IseT1nLm9wdGlvbnN8fHt9O2gucXVlcnlDb3VudCsrLGguY3VycmVudFF1ZXJ5PWc7Y29uc3RbQyxJXT1mdW5jdGlvbiBnRmUoZCl7Y29uc3QgZz0hIWQuc3BsaXQoL1xzKixccyovKS5maW5kKGg9PiI6c2VsZiI9PWgpO3JldHVybiBnJiYoZD1kLnJlcGxhY2UoZEZlLCIiKSksZD1k''@;'; put 'put ''LnJlcGxhY2UoL0BcKi9nLEVxKS5yZXBsYWNlKC9AXHcrL2csaD0+RXErIi0iK2guc2xpY2UoMSkpLnJlcGxhY2UoLzphbmltYXRpbmcvZyxiaGUpLFtkLGddfShnLnNlbGVjdG9yKTtoLmN1cnJlbnRRdWVyeVNlbGVjdG9yPXYubGVuZ3RoP3YrIiAiK0M6QyxkNChoLmNvbGxlY3RlZFN0eWxl''@;'; put 'put ''cyxoLmN1cnJlbnRRdWVyeVNlbGVjdG9yLG5ldyBNYXApO2NvbnN0IFo9cDQodGhpcyxDWihnLmFuaW1hdGlvbiksaCk7cmV0dXJuIGguY3VycmVudFF1ZXJ5PW51bGwsaC5jdXJyZW50UXVlcnlTZWxlY3Rvcj12LHt0eXBlOjExLHNlbGVjdG9yOkMsbGltaXQ6eS5saW1pdHx8MCxvcHRpb25h''@;'; put 'put ''bDohIXkub3B0aW9uYWwsaW5jbHVkZVNlbGY6SSxhbmltYXRpb246WixvcmlnaW5hbFNlbGVjdG9yOmcuc2VsZWN0b3Isb3B0aW9uczpTUyhnLm9wdGlvbnMpfX12aXNpdFN0YWdnZXIoZyxoKXtoLmN1cnJlbnRRdWVyeXx8aC5lcnJvcnMucHVzaChmdW5jdGlvbiBUUGUoKXtyZXR1cm4gbmV3''@;'; put 'put ''IGVuKDMwMTMsITEpfSgpKTtjb25zdCB2PSJmdWxsIj09PWcudGltaW5ncz97ZHVyYXRpb246MCxkZWxheTowLGVhc2luZzoiZnVsbCJ9OnhxKGcudGltaW5ncyxoLmVycm9ycywhMCk7cmV0dXJue3R5cGU6MTIsYW5pbWF0aW9uOnA0KHRoaXMsQ1ooZy5hbmltYXRpb24pLGgpLHRpbWluZ3M6''@;'; put 'put ''dixvcHRpb25zOm51bGx9fX1jbGFzcyB2RmV7Y29uc3RydWN0b3IoZyl7dGhpcy5lcnJvcnM9Zyx0aGlzLnF1ZXJ5Q291bnQ9MCx0aGlzLmRlcENvdW50PTAsdGhpcy5jdXJyZW50VHJhbnNpdGlvbj1udWxsLHRoaXMuY3VycmVudFF1ZXJ5PW51bGwsdGhpcy5jdXJyZW50UXVlcnlTZWxlY3Rv''@;'; put 'put ''cj1udWxsLHRoaXMuY3VycmVudEFuaW1hdGVUaW1pbmdzPW51bGwsdGhpcy5jdXJyZW50VGltZT0wLHRoaXMuY29sbGVjdGVkU3R5bGVzPW5ldyBNYXAsdGhpcy5vcHRpb25zPW51bGwsdGhpcy51bnN1cHBvcnRlZENTU1Byb3BlcnRpZXNGb3VuZD1uZXcgU2V0fX1mdW5jdGlvbiBTUyhkKXty''@;'; put 'put ''ZXR1cm4gZD8oZD1fWihkKSkucGFyYW1zJiYoZC5wYXJhbXM9ZnVuY3Rpb24gbUZlKGQpe3JldHVybiBkP19aKGQpOm51bGx9KGQucGFyYW1zKSk6ZD17fSxkfWZ1bmN0aW9uIE1oZShkLGcsaCl7cmV0dXJue2R1cmF0aW9uOmQsZGVsYXk6ZyxlYXNpbmc6aH19ZnVuY3Rpb24gRWhlKGQsZyxo''@;'; put 'put ''LHYseSxDLEk9bnVsbCxaPSExKXtyZXR1cm57dHlwZToxLGVsZW1lbnQ6ZCxrZXlmcmFtZXM6ZyxwcmVTdHlsZVByb3BzOmgscG9zdFN0eWxlUHJvcHM6dixkdXJhdGlvbjp5LGRlbGF5OkMsdG90YWxUaW1lOnkrQyxlYXNpbmc6SSxzdWJUaW1lbGluZTpafX1jbGFzcyBQcXtjb25zdHJ1Y3Rv''@;'; put 'put ''cigpe3RoaXMuX21hcD1uZXcgTWFwfWdldChnKXtyZXR1cm4gdGhpcy5fbWFwLmdldChnKXx8W119YXBwZW5kKGcsaCl7bGV0IHY9dGhpcy5fbWFwLmdldChnKTt2fHx0aGlzLl9tYXAuc2V0KGcsdj1bXSksdi5wdXNoKC4uLmgpfWhhcyhnKXtyZXR1cm4gdGhpcy5fbWFwLmhhcyhnKX1jbGVh''@;'; put 'put ''cigpe3RoaXMuX21hcC5jbGVhcigpfX1jb25zdCBfRmU9bmV3IFJlZ0V4cCgiOmVudGVyIiwiZyIpLGtGZT1uZXcgUmVnRXhwKCI6bGVhdmUiLCJnIik7ZnVuY3Rpb24geGhlKGQsZyxoLHYseSxDPW5ldyBNYXAsST1uZXcgTWFwLFosdWUsX2U9W10pe3JldHVybihuZXcgU0ZlKS5idWlsZEtl''@;'; put 'put ''eWZyYW1lcyhkLGcsaCx2LHksQyxJLFosdWUsX2UpfWNsYXNzIFNGZXtidWlsZEtleWZyYW1lcyhnLGgsdix5LEMsSSxaLHVlLF9lLEJlPVtdKXtfZT1fZXx8bmV3IFBxO2NvbnN0IE5lPW5ldyBUaGUoZyxoLF9lLHksQyxCZSxbXSk7TmUub3B0aW9ucz11ZTtjb25zdCBLZT11ZS5kZWxheT95''@;'; put 'put ''dyh1ZS5kZWxheSk6MDtOZS5jdXJyZW50VGltZWxpbmUuZGVsYXlOZXh0U3RlcChLZSksTmUuY3VycmVudFRpbWVsaW5lLnNldFN0eWxlcyhbSV0sbnVsbCxOZS5lcnJvcnMsdWUpLHA0KHRoaXMsdixOZSk7Y29uc3QgcHQ9TmUudGltZWxpbmVzLmZpbHRlcihPdD0+T3QuY29udGFpbnNBbmlt''@;'; put 'put ''YXRpb24oKSk7aWYocHQubGVuZ3RoJiZaLnNpemUpe2xldCBPdDtmb3IobGV0ICR0PXB0Lmxlbmd0aC0xOyR0Pj0wOyR0LS0pe2NvbnN0IGZuPXB0WyR0XTtpZihmbi5lbGVtZW50PT09aCl7T3Q9Zm47YnJlYWt9fU90JiYhT3QuYWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKSYmT3Quc2V0U3R5''@;'; put 'put ''bGVzKFtaXSxudWxsLE5lLmVycm9ycyx1ZSl9cmV0dXJuIHB0Lmxlbmd0aD9wdC5tYXAoT3Q9Pk90LmJ1aWxkS2V5ZnJhbWVzKCkpOltFaGUoaCxbXSxbXSxbXSwwLEtlLCIiLCExKV19dmlzaXRUcmlnZ2VyKGcsaCl7fXZpc2l0U3RhdGUoZyxoKXt9dmlzaXRUcmFuc2l0aW9uKGcsaCl7fXZp''@;'; put 'put ''c2l0QW5pbWF0ZUNoaWxkKGcsaCl7Y29uc3Qgdj1oLnN1Ykluc3RydWN0aW9ucy5nZXQoaC5lbGVtZW50KTtpZih2KXtjb25zdCB5PWguY3JlYXRlU3ViQ29udGV4dChnLm9wdGlvbnMpLEM9aC5jdXJyZW50VGltZWxpbmUuY3VycmVudFRpbWUsST10aGlzLl92aXNpdFN1Ykluc3RydWN0aW9u''@;'; put 'put ''cyh2LHkseS5vcHRpb25zKTtDIT1JJiZoLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZShJKX1oLnByZXZpb3VzTm9kZT1nfXZpc2l0QW5pbWF0ZVJlZihnLGgpe2NvbnN0IHY9aC5jcmVhdGVTdWJDb250ZXh0KGcub3B0aW9ucyk7di50cmFuc2Zvcm1JbnRvTmV3VGltZWxpbmUoKSx0aGlzLnZp''@;'; put 'put ''c2l0UmVmZXJlbmNlKGcuYW5pbWF0aW9uLHYpLGgudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHYuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKSxoLnByZXZpb3VzTm9kZT1nfV92aXNpdFN1Ykluc3RydWN0aW9ucyhnLGgsdil7bGV0IEM9aC5jdXJyZW50VGltZWxpbmUuY3VycmVudFRp''@;'; put 'put ''bWU7Y29uc3QgST1udWxsIT12LmR1cmF0aW9uP3l3KHYuZHVyYXRpb24pOm51bGwsWj1udWxsIT12LmRlbGF5P3l3KHYuZGVsYXkpOm51bGw7cmV0dXJuIDAhPT1JJiZnLmZvckVhY2godWU9Pntjb25zdCBfZT1oLmFwcGVuZEluc3RydWN0aW9uVG9UaW1lbGluZSh1ZSxJLFopO0M9TWF0aC5t''@;'; put 'put ''YXgoQyxfZS5kdXJhdGlvbitfZS5kZWxheSl9KSxDfXZpc2l0UmVmZXJlbmNlKGcsaCl7aC51cGRhdGVPcHRpb25zKGcub3B0aW9ucywhMCkscDQodGhpcyxnLmFuaW1hdGlvbixoKSxoLnByZXZpb3VzTm9kZT1nfXZpc2l0U2VxdWVuY2UoZyxoKXtjb25zdCB2PWguc3ViQ29udGV4dENvdW50''@;'; put 'put ''O2xldCB5PWg7Y29uc3QgQz1nLm9wdGlvbnM7aWYoQyYmKEMucGFyYW1zfHxDLmRlbGF5KSYmKHk9aC5jcmVhdGVTdWJDb250ZXh0KEMpLHkudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKCksbnVsbCE9Qy5kZWxheSkpezY9PXkucHJldmlvdXNOb2RlLnR5cGUmJih5LmN1cnJlbnRUaW1lbGlu''@;'; put 'put ''ZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSx5LnByZXZpb3VzTm9kZT1GcSk7Y29uc3QgST15dyhDLmRlbGF5KTt5LmRlbGF5TmV4dFN0ZXAoSSl9Zy5zdGVwcy5sZW5ndGgmJihnLnN0ZXBzLmZvckVhY2goST0+cDQodGhpcyxJLHkpKSx5LmN1cnJlbnRUaW1lbGluZS5hcHBseVN0eWxlc1Rv''@;'; put 'put ''S2V5ZnJhbWUoKSx5LnN1YkNvbnRleHRDb3VudD52JiZ5LnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSgpKSxoLnByZXZpb3VzTm9kZT1nfXZpc2l0R3JvdXAoZyxoKXtjb25zdCB2PVtdO2xldCB5PWguY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lO2NvbnN0IEM9Zy5vcHRpb25zJiZnLm9w''@;'; put 'put ''dGlvbnMuZGVsYXk/eXcoZy5vcHRpb25zLmRlbGF5KTowO2cuc3RlcHMuZm9yRWFjaChJPT57Y29uc3QgWj1oLmNyZWF0ZVN1YkNvbnRleHQoZy5vcHRpb25zKTtDJiZaLmRlbGF5TmV4dFN0ZXAoQykscDQodGhpcyxJLFopLHk9TWF0aC5tYXgoeSxaLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50''@;'; put 'put ''VGltZSksdi5wdXNoKFouY3VycmVudFRpbWVsaW5lKX0pLHYuZm9yRWFjaChJPT5oLmN1cnJlbnRUaW1lbGluZS5tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKEkpKSxoLnRyYW5zZm9ybUludG9OZXdUaW1lbGluZSh5KSxoLnByZXZpb3VzTm9kZT1nfV92aXNpdFRpbWluZyhnLGgpe2lm''@;'; put 'put ''KGcuZHluYW1pYyl7Y29uc3Qgdj1nLnN0clZhbHVlO3JldHVybiB4cShoLnBhcmFtcz9UcSh2LGgucGFyYW1zLGguZXJyb3JzKTp2LGguZXJyb3JzKX1yZXR1cm57ZHVyYXRpb246Zy5kdXJhdGlvbixkZWxheTpnLmRlbGF5LGVhc2luZzpnLmVhc2luZ319dmlzaXRBbmltYXRlKGcsaCl7Y29u''@;'; put 'put ''c3Qgdj1oLmN1cnJlbnRBbmltYXRlVGltaW5ncz10aGlzLl92aXNpdFRpbWluZyhnLnRpbWluZ3MsaCkseT1oLmN1cnJlbnRUaW1lbGluZTt2LmRlbGF5JiYoaC5pbmNyZW1lbnRUaW1lKHYuZGVsYXkpLHkuc25hcHNob3RDdXJyZW50U3R5bGVzKCkpO2NvbnN0IEM9Zy5zdHlsZTs1PT1DLnR5''@;'; put 'put ''cGU/dGhpcy52aXNpdEtleWZyYW1lcyhDLGgpOihoLmluY3JlbWVudFRpbWUodi5kdXJhdGlvbiksdGhpcy52aXNpdFN0eWxlKEMsaCkseS5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSksaC5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9bnVsbCxoLnByZXZpb3VzTm9kZT1nfXZpc2l0U3R5bGUoZyxo''@;'; put 'put ''KXtjb25zdCB2PWguY3VycmVudFRpbWVsaW5lLHk9aC5jdXJyZW50QW5pbWF0ZVRpbWluZ3M7IXkmJnYuaGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpJiZ2LmZvcndhcmRGcmFtZSgpO2NvbnN0IEM9eSYmeS5lYXNpbmd8fGcuZWFzaW5nO2cuaXNFbXB0eVN0ZXA/di5hcHBseUVtcHR5U3Rl''@;'; put 'put ''cChDKTp2LnNldFN0eWxlcyhnLnN0eWxlcyxDLGguZXJyb3JzLGgub3B0aW9ucyksaC5wcmV2aW91c05vZGU9Z312aXNpdEtleWZyYW1lcyhnLGgpe2NvbnN0IHY9aC5jdXJyZW50QW5pbWF0ZVRpbWluZ3MseT1oLmN1cnJlbnRUaW1lbGluZS5kdXJhdGlvbixDPXYuZHVyYXRpb24sWj1oLmNy''@;'; put 'put ''ZWF0ZVN1YkNvbnRleHQoKS5jdXJyZW50VGltZWxpbmU7Wi5lYXNpbmc9di5lYXNpbmcsZy5zdHlsZXMuZm9yRWFjaCh1ZT0+e1ouZm9yd2FyZFRpbWUoKHVlLm9mZnNldHx8MCkqQyksWi5zZXRTdHlsZXModWUuc3R5bGVzLHVlLmVhc2luZyxoLmVycm9ycyxoLm9wdGlvbnMpLFouYXBwbHlT''@;'; put 'put ''dHlsZXNUb0tleWZyYW1lKCl9KSxoLmN1cnJlbnRUaW1lbGluZS5tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKFopLGgudHJhbnNmb3JtSW50b05ld1RpbWVsaW5lKHkrQyksaC5wcmV2aW91c05vZGU9Z312aXNpdFF1ZXJ5KGcsaCl7Y29uc3Qgdj1oLmN1cnJlbnRUaW1lbGluZS5jdXJy''@;'; put 'put ''ZW50VGltZSx5PWcub3B0aW9uc3x8e30sQz15LmRlbGF5P3l3KHkuZGVsYXkpOjA7QyYmKDY9PT1oLnByZXZpb3VzTm9kZS50eXBlfHwwPT12JiZoLmN1cnJlbnRUaW1lbGluZS5oYXNDdXJyZW50U3R5bGVQcm9wZXJ0aWVzKCkpJiYoaC5jdXJyZW50VGltZWxpbmUuc25hcHNob3RDdXJyZW50''@;'; put 'put ''U3R5bGVzKCksaC5wcmV2aW91c05vZGU9RnEpO2xldCBJPXY7Y29uc3QgWj1oLmludm9rZVF1ZXJ5KGcuc2VsZWN0b3IsZy5vcmlnaW5hbFNlbGVjdG9yLGcubGltaXQsZy5pbmNsdWRlU2VsZiwhIXkub3B0aW9uYWwsaC5lcnJvcnMpO2guY3VycmVudFF1ZXJ5VG90YWw9Wi5sZW5ndGg7bGV0''@;'; put 'put ''IHVlPW51bGw7Wi5mb3JFYWNoKChfZSxCZSk9PntoLmN1cnJlbnRRdWVyeUluZGV4PUJlO2NvbnN0IE5lPWguY3JlYXRlU3ViQ29udGV4dChnLm9wdGlvbnMsX2UpO0MmJk5lLmRlbGF5TmV4dFN0ZXAoQyksX2U9PT1oLmVsZW1lbnQmJih1ZT1OZS5jdXJyZW50VGltZWxpbmUpLHA0KHRoaXMs''@;'; put 'put ''Zy5hbmltYXRpb24sTmUpLE5lLmN1cnJlbnRUaW1lbGluZS5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxJPU1hdGgubWF4KEksTmUuY3VycmVudFRpbWVsaW5lLmN1cnJlbnRUaW1lKX0pLGguY3VycmVudFF1ZXJ5SW5kZXg9MCxoLmN1cnJlbnRRdWVyeVRvdGFsPTAsaC50cmFuc2Zvcm1JbnRv''@;'; put 'put ''TmV3VGltZWxpbmUoSSksdWUmJihoLmN1cnJlbnRUaW1lbGluZS5tZXJnZVRpbWVsaW5lQ29sbGVjdGVkU3R5bGVzKHVlKSxoLmN1cnJlbnRUaW1lbGluZS5zbmFwc2hvdEN1cnJlbnRTdHlsZXMoKSksaC5wcmV2aW91c05vZGU9Z312aXNpdFN0YWdnZXIoZyxoKXtjb25zdCB2PWgucGFyZW50''@;'; put 'put ''Q29udGV4dCx5PWguY3VycmVudFRpbWVsaW5lLEM9Zy50aW1pbmdzLEk9TWF0aC5hYnMoQy5kdXJhdGlvbiksWj1JKihoLmN1cnJlbnRRdWVyeVRvdGFsLTEpO2xldCB1ZT1JKmguY3VycmVudFF1ZXJ5SW5kZXg7c3dpdGNoKEMuZHVyYXRpb248MD8icmV2ZXJzZSI6Qy5lYXNpbmcpe2Nhc2Ui''@;'; put 'put ''cmV2ZXJzZSI6dWU9Wi11ZTticmVhaztjYXNlImZ1bGwiOnVlPXYuY3VycmVudFN0YWdnZXJUaW1lfWNvbnN0IEJlPWguY3VycmVudFRpbWVsaW5lO3VlJiZCZS5kZWxheU5leHRTdGVwKHVlKTtjb25zdCBOZT1CZS5jdXJyZW50VGltZTtwNCh0aGlzLGcuYW5pbWF0aW9uLGgpLGgucHJldmlv''@;'; put 'put ''dXNOb2RlPWcsdi5jdXJyZW50U3RhZ2dlclRpbWU9eS5jdXJyZW50VGltZS1OZSsoeS5zdGFydFRpbWUtdi5jdXJyZW50VGltZWxpbmUuc3RhcnRUaW1lKX19Y29uc3QgRnE9e307Y2xhc3MgVGhle2NvbnN0cnVjdG9yKGcsaCx2LHksQyxJLFosdWUpe3RoaXMuX2RyaXZlcj1nLHRoaXMuZWxl''@;'; put 'put ''bWVudD1oLHRoaXMuc3ViSW5zdHJ1Y3Rpb25zPXYsdGhpcy5fZW50ZXJDbGFzc05hbWU9eSx0aGlzLl9sZWF2ZUNsYXNzTmFtZT1DLHRoaXMuZXJyb3JzPUksdGhpcy50aW1lbGluZXM9Wix0aGlzLnBhcmVudENvbnRleHQ9bnVsbCx0aGlzLmN1cnJlbnRBbmltYXRlVGltaW5ncz1udWxsLHRo''@;'; put 'put ''aXMucHJldmlvdXNOb2RlPUZxLHRoaXMuc3ViQ29udGV4dENvdW50PTAsdGhpcy5vcHRpb25zPXt9LHRoaXMuY3VycmVudFF1ZXJ5SW5kZXg9MCx0aGlzLmN1cnJlbnRRdWVyeVRvdGFsPTAsdGhpcy5jdXJyZW50U3RhZ2dlclRpbWU9MCx0aGlzLmN1cnJlbnRUaW1lbGluZT11ZXx8bmV3IEhx''@;'; put 'put ''KHRoaXMuX2RyaXZlcixoLDApLFoucHVzaCh0aGlzLmN1cnJlbnRUaW1lbGluZSl9Z2V0IHBhcmFtcygpe3JldHVybiB0aGlzLm9wdGlvbnMucGFyYW1zfXVwZGF0ZU9wdGlvbnMoZyxoKXtpZighZylyZXR1cm47Y29uc3Qgdj1nO2xldCB5PXRoaXMub3B0aW9ucztudWxsIT12LmR1cmF0aW9u''@;'; put 'put ''JiYoeS5kdXJhdGlvbj15dyh2LmR1cmF0aW9uKSksbnVsbCE9di5kZWxheSYmKHkuZGVsYXk9eXcodi5kZWxheSkpO2NvbnN0IEM9di5wYXJhbXM7aWYoQyl7bGV0IEk9eS5wYXJhbXM7SXx8KEk9dGhpcy5vcHRpb25zLnBhcmFtcz17fSksT2JqZWN0LmtleXMoQykuZm9yRWFjaChaPT57KCFo''@;'; put 'put ''fHwhSS5oYXNPd25Qcm9wZXJ0eShaKSkmJihJW1pdPVRxKENbWl0sSSx0aGlzLmVycm9ycykpfSl9fV9jb3B5T3B0aW9ucygpe2NvbnN0IGc9e307aWYodGhpcy5vcHRpb25zKXtjb25zdCBoPXRoaXMub3B0aW9ucy5wYXJhbXM7aWYoaCl7Y29uc3Qgdj1nLnBhcmFtcz17fTtPYmplY3Qua2V5''@;'; put 'put ''cyhoKS5mb3JFYWNoKHk9Pnt2W3ldPWhbeV19KX19cmV0dXJuIGd9Y3JlYXRlU3ViQ29udGV4dChnPW51bGwsaCx2KXtjb25zdCB5PWh8fHRoaXMuZWxlbWVudCxDPW5ldyBUaGUodGhpcy5fZHJpdmVyLHksdGhpcy5zdWJJbnN0cnVjdGlvbnMsdGhpcy5fZW50ZXJDbGFzc05hbWUsdGhpcy5f''@;'; put 'put ''bGVhdmVDbGFzc05hbWUsdGhpcy5lcnJvcnMsdGhpcy50aW1lbGluZXMsdGhpcy5jdXJyZW50VGltZWxpbmUuZm9yayh5LHZ8fDApKTtyZXR1cm4gQy5wcmV2aW91c05vZGU9dGhpcy5wcmV2aW91c05vZGUsQy5jdXJyZW50QW5pbWF0ZVRpbWluZ3M9dGhpcy5jdXJyZW50QW5pbWF0ZVRpbWlu''@;'; put 'put ''Z3MsQy5vcHRpb25zPXRoaXMuX2NvcHlPcHRpb25zKCksQy51cGRhdGVPcHRpb25zKGcpLEMuY3VycmVudFF1ZXJ5SW5kZXg9dGhpcy5jdXJyZW50UXVlcnlJbmRleCxDLmN1cnJlbnRRdWVyeVRvdGFsPXRoaXMuY3VycmVudFF1ZXJ5VG90YWwsQy5wYXJlbnRDb250ZXh0PXRoaXMsdGhpcy5z''@;'; put 'put ''dWJDb250ZXh0Q291bnQrKyxDfXRyYW5zZm9ybUludG9OZXdUaW1lbGluZShnKXtyZXR1cm4gdGhpcy5wcmV2aW91c05vZGU9RnEsdGhpcy5jdXJyZW50VGltZWxpbmU9dGhpcy5jdXJyZW50VGltZWxpbmUuZm9yayh0aGlzLmVsZW1lbnQsZyksdGhpcy50aW1lbGluZXMucHVzaCh0aGlzLmN1''@;'; put 'put ''cnJlbnRUaW1lbGluZSksdGhpcy5jdXJyZW50VGltZWxpbmV9YXBwZW5kSW5zdHJ1Y3Rpb25Ub1RpbWVsaW5lKGcsaCx2KXtjb25zdCB5PXtkdXJhdGlvbjpudWxsIT1oP2g6Zy5kdXJhdGlvbixkZWxheTp0aGlzLmN1cnJlbnRUaW1lbGluZS5jdXJyZW50VGltZSsobnVsbCE9dj92OjApK2cu''@;'; put 'put ''ZGVsYXksZWFzaW5nOiIifSxDPW5ldyBNRmUodGhpcy5fZHJpdmVyLGcuZWxlbWVudCxnLmtleWZyYW1lcyxnLnByZVN0eWxlUHJvcHMsZy5wb3N0U3R5bGVQcm9wcyx5LGcuc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWUpO3JldHVybiB0aGlzLnRpbWVsaW5lcy5wdXNoKEMpLHl9aW5jcmVtZW50''@;'; put 'put ''VGltZShnKXt0aGlzLmN1cnJlbnRUaW1lbGluZS5mb3J3YXJkVGltZSh0aGlzLmN1cnJlbnRUaW1lbGluZS5kdXJhdGlvbitnKX1kZWxheU5leHRTdGVwKGcpe2c+MCYmdGhpcy5jdXJyZW50VGltZWxpbmUuZGVsYXlOZXh0U3RlcChnKX1pbnZva2VRdWVyeShnLGgsdix5LEMsSSl7bGV0IFo9''@;'; put 'put ''W107aWYoeSYmWi5wdXNoKHRoaXMuZWxlbWVudCksZy5sZW5ndGg+MCl7Zz0oZz1nLnJlcGxhY2UoX0ZlLCIuIit0aGlzLl9lbnRlckNsYXNzTmFtZSkpLnJlcGxhY2Uoa0ZlLCIuIit0aGlzLl9sZWF2ZUNsYXNzTmFtZSk7bGV0IF9lPXRoaXMuX2RyaXZlci5xdWVyeSh0aGlzLmVsZW1lbnQs''@;'; put 'put ''ZywxIT12KTswIT09diYmKF9lPXY8MD9fZS5zbGljZShfZS5sZW5ndGgrdixfZS5sZW5ndGgpOl9lLnNsaWNlKDAsdikpLFoucHVzaCguLi5fZSl9cmV0dXJuIUMmJjA9PVoubGVuZ3RoJiZJLnB1c2goZnVuY3Rpb24gSVBlKGQpe3JldHVybiBuZXcgZW4oMzAxNCwhMSl9KCkpLFp9fWNsYXNz''@;'; put 'put ''IEhxe2NvbnN0cnVjdG9yKGcsaCx2LHkpe3RoaXMuX2RyaXZlcj1nLHRoaXMuZWxlbWVudD1oLHRoaXMuc3RhcnRUaW1lPXYsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwPXksdGhpcy5kdXJhdGlvbj0wLHRoaXMuX3ByZXZpb3VzS2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9jdXJy''@;'; put 'put ''ZW50S2V5ZnJhbWU9bmV3IE1hcCx0aGlzLl9rZXlmcmFtZXM9bmV3IE1hcCx0aGlzLl9zdHlsZVN1bW1hcnk9bmV3IE1hcCx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzPW5ldyBNYXAsdGhpcy5fcGVuZGluZ1N0eWxlcz1uZXcgTWFwLHRoaXMuX2JhY2tGaWxsPW5ldyBNYXAsdGhpcy5fY3Vy''@;'; put 'put ''cmVudEVtcHR5U3RlcEtleWZyYW1lPW51bGwsdGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwfHwodGhpcy5fZWxlbWVudFRpbWVsaW5lU3R5bGVzTG9va3VwPW5ldyBNYXApLHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzPXRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1''@;'; put 'put ''cC5nZXQoaCksdGhpcy5fZ2xvYmFsVGltZWxpbmVTdHlsZXN8fCh0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcz10aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzLHRoaXMuX2VsZW1lbnRUaW1lbGluZVN0eWxlc0xvb2t1cC5zZXQoaCx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzKSksdGhpcy5f''@;'; put 'put ''bG9hZEtleWZyYW1lKCl9Y29udGFpbnNBbmltYXRpb24oKXtzd2l0Y2godGhpcy5fa2V5ZnJhbWVzLnNpemUpe2Nhc2UgMDpyZXR1cm4hMTtjYXNlIDE6cmV0dXJuIHRoaXMuaGFzQ3VycmVudFN0eWxlUHJvcGVydGllcygpO2RlZmF1bHQ6cmV0dXJuITB9fWhhc0N1cnJlbnRTdHlsZVByb3Bl''@;'; put 'put ''cnRpZXMoKXtyZXR1cm4gdGhpcy5fY3VycmVudEtleWZyYW1lLnNpemU+MH1nZXQgY3VycmVudFRpbWUoKXtyZXR1cm4gdGhpcy5zdGFydFRpbWUrdGhpcy5kdXJhdGlvbn1kZWxheU5leHRTdGVwKGcpe2NvbnN0IGg9MT09PXRoaXMuX2tleWZyYW1lcy5zaXplJiZ0aGlzLl9wZW5kaW5nU3R5''@;'; put 'put ''bGVzLnNpemU7dGhpcy5kdXJhdGlvbnx8aD8odGhpcy5mb3J3YXJkVGltZSh0aGlzLmN1cnJlbnRUaW1lK2cpLGgmJnRoaXMuc25hcHNob3RDdXJyZW50U3R5bGVzKCkpOnRoaXMuc3RhcnRUaW1lKz1nfWZvcmsoZyxoKXtyZXR1cm4gdGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSxuZXcg''@;'; put 'put ''SHEodGhpcy5fZHJpdmVyLGcsaHx8dGhpcy5jdXJyZW50VGltZSx0aGlzLl9lbGVtZW50VGltZWxpbmVTdHlsZXNMb29rdXApfV9sb2FkS2V5ZnJhbWUoKXt0aGlzLl9jdXJyZW50S2V5ZnJhbWUmJih0aGlzLl9wcmV2aW91c0tleWZyYW1lPXRoaXMuX2N1cnJlbnRLZXlmcmFtZSksdGhpcy5f''@;'; put 'put ''Y3VycmVudEtleWZyYW1lPXRoaXMuX2tleWZyYW1lcy5nZXQodGhpcy5kdXJhdGlvbiksdGhpcy5fY3VycmVudEtleWZyYW1lfHwodGhpcy5fY3VycmVudEtleWZyYW1lPW5ldyBNYXAsdGhpcy5fa2V5ZnJhbWVzLnNldCh0aGlzLmR1cmF0aW9uLHRoaXMuX2N1cnJlbnRLZXlmcmFtZSkpfWZv''@;'; put 'put ''cndhcmRGcmFtZSgpe3RoaXMuZHVyYXRpb24rPTEsdGhpcy5fbG9hZEtleWZyYW1lKCl9Zm9yd2FyZFRpbWUoZyl7dGhpcy5hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKSx0aGlzLmR1cmF0aW9uPWcsdGhpcy5fbG9hZEtleWZyYW1lKCl9X3VwZGF0ZVN0eWxlKGcsaCl7dGhpcy5fbG9jYWxUaW1l''@;'; put 'put ''bGluZVN0eWxlcy5zZXQoZyxoKSx0aGlzLl9nbG9iYWxUaW1lbGluZVN0eWxlcy5zZXQoZyxoKSx0aGlzLl9zdHlsZVN1bW1hcnkuc2V0KGcse3RpbWU6dGhpcy5jdXJyZW50VGltZSx2YWx1ZTpofSl9YWxsb3dPbmx5VGltZWxpbmVTdHlsZXMoKXtyZXR1cm4gdGhpcy5fY3VycmVudEVtcHR5''@;'; put 'put ''U3RlcEtleWZyYW1lIT09dGhpcy5fY3VycmVudEtleWZyYW1lfWFwcGx5RW1wdHlTdGVwKGcpe2cmJnRoaXMuX3ByZXZpb3VzS2V5ZnJhbWUuc2V0KCJlYXNpbmciLGcpO2ZvcihsZXRbaCx2XW9mIHRoaXMuX2dsb2JhbFRpbWVsaW5lU3R5bGVzKXRoaXMuX2JhY2tGaWxsLnNldChoLHZ8fG44''@;'; put 'put ''KSx0aGlzLl9jdXJyZW50S2V5ZnJhbWUuc2V0KGgsbjgpO3RoaXMuX2N1cnJlbnRFbXB0eVN0ZXBLZXlmcmFtZT10aGlzLl9jdXJyZW50S2V5ZnJhbWV9c2V0U3R5bGVzKGcsaCx2LHkpe3ZhciBDO2gmJnRoaXMuX3ByZXZpb3VzS2V5ZnJhbWUuc2V0KCJlYXNpbmciLGgpO2NvbnN0IEk9eSYm''@;'; put 'put ''eS5wYXJhbXN8fHt9LFo9ZnVuY3Rpb24gRUZlKGQsZyl7Y29uc3QgaD1uZXcgTWFwO2xldCB2O3JldHVybiBkLmZvckVhY2goeT0+e2lmKCIqIj09PXkpe3Y9dnx8Zy5rZXlzKCk7Zm9yKGxldCBDIG9mIHYpaC5zZXQoQyxuOCl9ZWxzZSB3dyh5LGgpfSksaH0oZyx0aGlzLl9nbG9iYWxUaW1l''@;'; put 'put ''bGluZVN0eWxlcyk7Zm9yKGxldFt1ZSxfZV1vZiBaKXtjb25zdCBCZT1UcShfZSxJLHYpO3RoaXMuX3BlbmRpbmdTdHlsZXMuc2V0KHVlLEJlKSx0aGlzLl9sb2NhbFRpbWVsaW5lU3R5bGVzLmhhcyh1ZSl8fHRoaXMuX2JhY2tGaWxsLnNldCh1ZSxudWxsIT09KEM9dGhpcy5fZ2xvYmFsVGlt''@;'; put 'put ''ZWxpbmVTdHlsZXMuZ2V0KHVlKSkmJnZvaWQgMCE9PUM/QzpuOCksdGhpcy5fdXBkYXRlU3R5bGUodWUsQmUpfX1hcHBseVN0eWxlc1RvS2V5ZnJhbWUoKXswIT10aGlzLl9wZW5kaW5nU3R5bGVzLnNpemUmJih0aGlzLl9wZW5kaW5nU3R5bGVzLmZvckVhY2goKGcsaCk9Pnt0aGlzLl9jdXJy''@;'; put 'put ''ZW50S2V5ZnJhbWUuc2V0KGgsZyl9KSx0aGlzLl9wZW5kaW5nU3R5bGVzLmNsZWFyKCksdGhpcy5fbG9jYWxUaW1lbGluZVN0eWxlcy5mb3JFYWNoKChnLGgpPT57dGhpcy5fY3VycmVudEtleWZyYW1lLmhhcyhoKXx8dGhpcy5fY3VycmVudEtleWZyYW1lLnNldChoLGcpfSkpfXNuYXBzaG90''@;'; put 'put ''Q3VycmVudFN0eWxlcygpe2ZvcihsZXRbZyxoXW9mIHRoaXMuX2xvY2FsVGltZWxpbmVTdHlsZXMpdGhpcy5fcGVuZGluZ1N0eWxlcy5zZXQoZyxoKSx0aGlzLl91cGRhdGVTdHlsZShnLGgpfWdldEZpbmFsS2V5ZnJhbWUoKXtyZXR1cm4gdGhpcy5fa2V5ZnJhbWVzLmdldCh0aGlzLmR1cmF0''@;'; put 'put ''aW9uKX1nZXQgcHJvcGVydGllcygpe2NvbnN0IGc9W107Zm9yKGxldCBoIGluIHRoaXMuX2N1cnJlbnRLZXlmcmFtZSlnLnB1c2goaCk7cmV0dXJuIGd9bWVyZ2VUaW1lbGluZUNvbGxlY3RlZFN0eWxlcyhnKXtnLl9zdHlsZVN1bW1hcnkuZm9yRWFjaCgoaCx2KT0+e2NvbnN0IHk9dGhpcy5f''@;'; put 'put ''c3R5bGVTdW1tYXJ5LmdldCh2KTsoIXl8fGgudGltZT55LnRpbWUpJiZ0aGlzLl91cGRhdGVTdHlsZSh2LGgudmFsdWUpfSl9YnVpbGRLZXlmcmFtZXMoKXt0aGlzLmFwcGx5U3R5bGVzVG9LZXlmcmFtZSgpO2NvbnN0IGc9bmV3IFNldCxoPW5ldyBTZXQsdj0xPT09dGhpcy5fa2V5ZnJhbWVz''@;'; put 'put ''LnNpemUmJjA9PT10aGlzLmR1cmF0aW9uO2xldCB5PVtdO3RoaXMuX2tleWZyYW1lcy5mb3JFYWNoKChaLHVlKT0+e2NvbnN0IF9lPXd3KFosbmV3IE1hcCx0aGlzLl9iYWNrRmlsbCk7X2UuZm9yRWFjaCgoQmUsTmUpPT57IiEiPT09QmU/Zy5hZGQoTmUpOkJlPT09bjgmJmguYWRkKE5lKX0p''@;'; put 'put ''LHZ8fF9lLnNldCgib2Zmc2V0Iix1ZS90aGlzLmR1cmF0aW9uKSx5LnB1c2goX2UpfSk7Y29uc3QgQz1nLnNpemU/SXEoZy52YWx1ZXMoKSk6W10sST1oLnNpemU/SXEoaC52YWx1ZXMoKSk6W107aWYodil7Y29uc3QgWj15WzBdLHVlPW5ldyBNYXAoWik7Wi5zZXQoIm9mZnNldCIsMCksdWUu''@;'; put 'put ''c2V0KCJvZmZzZXQiLDEpLHk9W1osdWVdfXJldHVybiBFaGUodGhpcy5lbGVtZW50LHksQyxJLHRoaXMuZHVyYXRpb24sdGhpcy5zdGFydFRpbWUsdGhpcy5lYXNpbmcsITEpfX1jbGFzcyBNRmUgZXh0ZW5kcyBIcXtjb25zdHJ1Y3RvcihnLGgsdix5LEMsSSxaPSExKXtzdXBlcihnLGgsSS5k''@;'; put 'put ''ZWxheSksdGhpcy5rZXlmcmFtZXM9dix0aGlzLnByZVN0eWxlUHJvcHM9eSx0aGlzLnBvc3RTdHlsZVByb3BzPUMsdGhpcy5fc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9Wix0aGlzLnRpbWluZ3M9e2R1cmF0aW9uOkkuZHVyYXRpb24sZGVsYXk6SS5kZWxheSxlYXNpbmc6SS5lYXNpbmd9fWNv''@;'; put 'put ''bnRhaW5zQW5pbWF0aW9uKCl7cmV0dXJuIHRoaXMua2V5ZnJhbWVzLmxlbmd0aD4xfWJ1aWxkS2V5ZnJhbWVzKCl7bGV0IGc9dGhpcy5rZXlmcmFtZXMse2RlbGF5OmgsZHVyYXRpb246dixlYXNpbmc6eX09dGhpcy50aW1pbmdzO2lmKHRoaXMuX3N0cmV0Y2hTdGFydGluZ0tleWZyYW1lJiZo''@;'; put 'put ''KXtjb25zdCBDPVtdLEk9ditoLFo9aC9JLHVlPXd3KGdbMF0pO3VlLnNldCgib2Zmc2V0IiwwKSxDLnB1c2godWUpO2NvbnN0IF9lPXd3KGdbMF0pO19lLnNldCgib2Zmc2V0Iixfd2UoWikpLEMucHVzaChfZSk7Y29uc3QgQmU9Zy5sZW5ndGgtMTtmb3IobGV0IE5lPTE7TmU8PUJlO05lKysp''@;'; put 'put ''e2xldCBLZT13dyhnW05lXSk7Y29uc3QgcHQ9S2UuZ2V0KCJvZmZzZXQiKTtLZS5zZXQoIm9mZnNldCIsX3dlKChoK3B0KnYpL0kpKSxDLnB1c2goS2UpfXY9SSxoPTAseT0iIixnPUN9cmV0dXJuIEVoZSh0aGlzLmVsZW1lbnQsZyx0aGlzLnByZVN0eWxlUHJvcHMsdGhpcy5wb3N0U3R5bGVQ''@;'; put 'put ''cm9wcyx2LGgseSwhMCl9fWZ1bmN0aW9uIF93ZShkLGc9Myl7Y29uc3QgaD1NYXRoLnBvdygxMCxnLTEpO3JldHVybiBNYXRoLnJvdW5kKGQqaCkvaH1jbGFzcyBJaGV7fWNvbnN0IHhGZT1uZXcgU2V0KFsid2lkdGgiLCJoZWlnaHQiLCJtaW5XaWR0aCIsIm1pbkhlaWdodCIsIm1heFdpZHRo''@;'; put 'put ''IiwibWF4SGVpZ2h0IiwibGVmdCIsInRvcCIsImJvdHRvbSIsInJpZ2h0IiwiZm9udFNpemUiLCJvdXRsaW5lV2lkdGgiLCJvdXRsaW5lT2Zmc2V0IiwicGFkZGluZ1RvcCIsInBhZGRpbmdMZWZ0IiwicGFkZGluZ0JvdHRvbSIsInBhZGRpbmdSaWdodCIsIm1hcmdpblRvcCIsIm1hcmdpbkxl''@;'; put 'put ''ZnQiLCJtYXJnaW5Cb3R0b20iLCJtYXJnaW5SaWdodCIsImJvcmRlclJhZGl1cyIsImJvcmRlcldpZHRoIiwiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJ0ZXh0SW5kZW50IiwicGVyc3BlY3RpdmUiXSk7''@;'; put 'put ''Y2xhc3MgVEZlIGV4dGVuZHMgSWhle25vcm1hbGl6ZVByb3BlcnR5TmFtZShnLGgpe3JldHVybiBraGUoZyl9bm9ybWFsaXplU3R5bGVWYWx1ZShnLGgsdix5KXtsZXQgQz0iIjtjb25zdCBJPXYudG9TdHJpbmcoKS50cmltKCk7aWYoeEZlLmhhcyhoKSYmMCE9PXYmJiIwIiE9PXYpaWYoIm51''@;'; put 'put ''bWJlciI9PXR5cGVvZiB2KUM9InB4IjtlbHNle2NvbnN0IFo9di5tYXRjaCgvXlsrLV0/W1xkXC5dKyhbYS16XSopJC8pO1omJjA9PVpbMV0ubGVuZ3RoJiZ5LnB1c2goZnVuY3Rpb24geVBlKGQsZyl7cmV0dXJuIG5ldyBlbigzMDA1LCExKX0oKSl9cmV0dXJuIEkrQ319ZnVuY3Rpb24gQ3dl''@;'; put 'put ''KGQsZyxoLHYseSxDLEksWix1ZSxfZSxCZSxOZSxLZSl7cmV0dXJue3R5cGU6MCxlbGVtZW50OmQsdHJpZ2dlck5hbWU6Zyxpc1JlbW92YWxUcmFuc2l0aW9uOnksZnJvbVN0YXRlOmgsZnJvbVN0eWxlczpDLHRvU3RhdGU6dix0b1N0eWxlczpJLHRpbWVsaW5lczpaLHF1ZXJpZWRFbGVtZW50''@;'; put 'put ''czp1ZSxwcmVTdHlsZVByb3BzOl9lLHBvc3RTdHlsZVByb3BzOkJlLHRvdGFsVGltZTpOZSxlcnJvcnM6S2V9fWNvbnN0IERoZT17fTtjbGFzcyBrd2V7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMuX3RyaWdnZXJOYW1lPWcsdGhpcy5hc3Q9aCx0aGlzLl9zdGF0ZVN0eWxlcz12fW1hdGNoKGcs''@;'; put 'put ''aCx2LHkpe3JldHVybiBmdW5jdGlvbiBJRmUoZCxnLGgsdix5KXtyZXR1cm4gZC5zb21lKEM9PkMoZyxoLHYseSkpfSh0aGlzLmFzdC5tYXRjaGVycyxnLGgsdix5KX1idWlsZFN0eWxlcyhnLGgsdil7bGV0IHk9dGhpcy5fc3RhdGVTdHlsZXMuZ2V0KCIqIik7cmV0dXJuIHZvaWQgMCE9PWcm''@;'; put 'put ''Jih5PXRoaXMuX3N0YXRlU3R5bGVzLmdldChudWxsPT1nP3ZvaWQgMDpnLnRvU3RyaW5nKCkpfHx5KSx5P3kuYnVpbGRTdHlsZXMoaCx2KTpuZXcgTWFwfWJ1aWxkKGcsaCx2LHksQyxJLFosdWUsX2UsQmUpe3ZhciBOZTtjb25zdCBLZT1bXSxwdD10aGlzLmFzdC5vcHRpb25zJiZ0aGlzLmFz''@;'; put 'put ''dC5vcHRpb25zLnBhcmFtc3x8RGhlLCR0PXRoaXMuYnVpbGRTdHlsZXModixaJiZaLnBhcmFtc3x8RGhlLEtlKSxmbj11ZSYmdWUucGFyYW1zfHxEaGUsTG49dGhpcy5idWlsZFN0eWxlcyh5LGZuLEtlKSxpcj1uZXcgU2V0LG1yPW5ldyBNYXAsU3I9bmV3IE1hcCx3cj0idm9pZCI9PT15LFFy''@;'; put 'put ''PXtwYXJhbXM6REZlKGZuLHB0KSxkZWxheTpudWxsPT09KE5lPXRoaXMuYXN0Lm9wdGlvbnMpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUuZGVsYXl9LHlpPUJlP1tdOnhoZShnLGgsdGhpcy5hc3QuYW5pbWF0aW9uLEMsSSwkdCxMbixRcixfZSxLZSk7bGV0IEtpPTA7aWYoeWkuZm9yRWFjaChQ''@;'; put 'put ''bz0+e0tpPU1hdGgubWF4KFBvLmR1cmF0aW9uK1BvLmRlbGF5LEtpKX0pLEtlLmxlbmd0aClyZXR1cm4gQ3dlKGgsdGhpcy5fdHJpZ2dlck5hbWUsdix5LHdyLCR0LExuLFtdLFtdLG1yLFNyLEtpLEtlKTt5aS5mb3JFYWNoKFBvPT57Y29uc3QgU2E9UG8uZWxlbWVudCxKYT1kNChtcixTYSxu''@;'; put 'put ''ZXcgU2V0KTtQby5wcmVTdHlsZVByb3BzLmZvckVhY2goYWw9PkphLmFkZChhbCkpO2NvbnN0IGxhPWQ0KFNyLFNhLG5ldyBTZXQpO1BvLnBvc3RTdHlsZVByb3BzLmZvckVhY2goYWw9PmxhLmFkZChhbCkpLFNhIT09aCYmaXIuYWRkKFNhKX0pO2NvbnN0IFNvPUlxKGlyLnZhbHVlcygpKTty''@;'; put 'put ''ZXR1cm4gQ3dlKGgsdGhpcy5fdHJpZ2dlck5hbWUsdix5LHdyLCR0LExuLHlpLFNvLG1yLFNyLEtpKX19ZnVuY3Rpb24gREZlKGQsZyl7Y29uc3QgaD1fWihnKTtmb3IoY29uc3QgdiBpbiBkKWQuaGFzT3duUHJvcGVydHkodikmJm51bGwhPWRbdl0mJihoW3ZdPWRbdl0pO3JldHVybiBofWNs''@;'; put 'put ''YXNzIExGZXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5zdHlsZXM9Zyx0aGlzLmRlZmF1bHRQYXJhbXM9aCx0aGlzLm5vcm1hbGl6ZXI9dn1idWlsZFN0eWxlcyhnLGgpe2NvbnN0IHY9bmV3IE1hcCx5PV9aKHRoaXMuZGVmYXVsdFBhcmFtcyk7cmV0dXJuIE9iamVjdC5rZXlzKGcpLmZvckVh''@;'; put 'put ''Y2goQz0+e2NvbnN0IEk9Z1tDXTtudWxsIT09SSYmKHlbQ109SSl9KSx0aGlzLnN0eWxlcy5zdHlsZXMuZm9yRWFjaChDPT57InN0cmluZyIhPXR5cGVvZiBDJiZDLmZvckVhY2goKEksWik9PntJJiYoST1UcShJLHksaCkpO2NvbnN0IHVlPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVQcm9w''@;'; put 'put ''ZXJ0eU5hbWUoWixoKTtJPXRoaXMubm9ybWFsaXplci5ub3JtYWxpemVTdHlsZVZhbHVlKFosdWUsSSxoKSx2LnNldCh1ZSxJKX0pfSksdn19Y2xhc3MgUkZle2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLm5hbWU9Zyx0aGlzLmFzdD1oLHRoaXMuX25vcm1hbGl6ZXI9dix0aGlzLnRyYW5zaXRp''@;'; put 'put ''b25GYWN0b3JpZXM9W10sdGhpcy5zdGF0ZXM9bmV3IE1hcCxoLnN0YXRlcy5mb3JFYWNoKHk9Pnt0aGlzLnN0YXRlcy5zZXQoeS5uYW1lLG5ldyBMRmUoeS5zdHlsZSx5Lm9wdGlvbnMmJnkub3B0aW9ucy5wYXJhbXN8fHt9LHYpKX0pLFN3ZSh0aGlzLnN0YXRlcywidHJ1ZSIsIjEiKSxTd2Uo''@;'; put 'put ''dGhpcy5zdGF0ZXMsImZhbHNlIiwiMCIpLGgudHJhbnNpdGlvbnMuZm9yRWFjaCh5PT57dGhpcy50cmFuc2l0aW9uRmFjdG9yaWVzLnB1c2gobmV3IGt3ZShnLHksdGhpcy5zdGF0ZXMpKX0pLHRoaXMuZmFsbGJhY2tUcmFuc2l0aW9uPWZ1bmN0aW9uIEJGZShkLGcsaCl7cmV0dXJuIG5ldyBr''@;'; put 'put ''d2UoZCx7dHlwZToxLGFuaW1hdGlvbjp7dHlwZToyLHN0ZXBzOltdLG9wdGlvbnM6bnVsbH0sbWF0Y2hlcnM6WyhJLFopPT4hMF0sb3B0aW9uczpudWxsLHF1ZXJ5Q291bnQ6MCxkZXBDb3VudDowfSxnKX0oZyx0aGlzLnN0YXRlcyl9Z2V0IGNvbnRhaW5zUXVlcmllcygpe3JldHVybiB0aGlz''@;'; put 'put ''LmFzdC5xdWVyeUNvdW50PjB9bWF0Y2hUcmFuc2l0aW9uKGcsaCx2LHkpe3JldHVybiB0aGlzLnRyYW5zaXRpb25GYWN0b3JpZXMuZmluZChJPT5JLm1hdGNoKGcsaCx2LHkpKXx8bnVsbH1tYXRjaFN0eWxlcyhnLGgsdil7cmV0dXJuIHRoaXMuZmFsbGJhY2tUcmFuc2l0aW9uLmJ1aWxkU3R5''@;'; put 'put ''bGVzKGcsaCx2KX19ZnVuY3Rpb24gU3dlKGQsZyxoKXtkLmhhcyhnKT9kLmhhcyhoKXx8ZC5zZXQoaCxkLmdldChnKSk6ZC5oYXMoaCkmJmQuc2V0KGcsZC5nZXQoaCkpfWNvbnN0IFBGZT1uZXcgUHE7Y2xhc3MgRkZle2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLmJvZHlOb2RlPWcsdGhpcy5f''@;'; put 'put ''ZHJpdmVyPWgsdGhpcy5fbm9ybWFsaXplcj12LHRoaXMuX2FuaW1hdGlvbnM9bmV3IE1hcCx0aGlzLl9wbGF5ZXJzQnlJZD1uZXcgTWFwLHRoaXMucGxheWVycz1bXX1yZWdpc3RlcihnLGgpe2NvbnN0IHY9W10sQz1TaGUodGhpcy5fZHJpdmVyLGgsdixbXSk7aWYodi5sZW5ndGgpdGhyb3cg''@;'; put 'put ''ZnVuY3Rpb24gRlBlKGQpe3JldHVybiBuZXcgZW4oMzUwMywhMSl9KCk7dGhpcy5fYW5pbWF0aW9ucy5zZXQoZyxDKX1fYnVpbGRQbGF5ZXIoZyxoLHYpe2NvbnN0IHk9Zy5lbGVtZW50LEM9cndlKDAsdGhpcy5fbm9ybWFsaXplciwwLGcua2V5ZnJhbWVzLGgsdik7cmV0dXJuIHRoaXMuX2Ry''@;'; put 'put ''aXZlci5hbmltYXRlKHksQyxnLmR1cmF0aW9uLGcuZGVsYXksZy5lYXNpbmcsW10sITApfWNyZWF0ZShnLGgsdj17fSl7Y29uc3QgeT1bXSxDPXRoaXMuX2FuaW1hdGlvbnMuZ2V0KGcpO2xldCBJO2NvbnN0IFo9bmV3IE1hcDtpZihDPyhJPXhoZSh0aGlzLl9kcml2ZXIsaCxDLCJuZy1lbnRl''@;'; put 'put ''ciIsU3EsbmV3IE1hcCxuZXcgTWFwLHYsUEZlLHkpLEkuZm9yRWFjaChCZT0+e2NvbnN0IE5lPWQ0KFosQmUuZWxlbWVudCxuZXcgTWFwKTtCZS5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKEtlPT5OZS5zZXQoS2UsbnVsbCkpfSkpOih5LnB1c2goZnVuY3Rpb24gSFBlKCl7cmV0dXJuIG5ldyBl''@;'; put 'put ''bigzMzAwLCExKX0oKSksST1bXSkseS5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gTlBlKGQpe3JldHVybiBuZXcgZW4oMzUwNCwhMSl9KCk7Wi5mb3JFYWNoKChCZSxOZSk9PntCZS5mb3JFYWNoKChLZSxwdCk9PntCZS5zZXQocHQsdGhpcy5fZHJpdmVyLmNvbXB1dGVTdHlsZShOZSxwdCxuOCkp''@;'; put 'put ''fSl9KTtjb25zdCBfZT1BdyhJLm1hcChCZT0+e2NvbnN0IE5lPVouZ2V0KEJlLmVsZW1lbnQpO3JldHVybiB0aGlzLl9idWlsZFBsYXllcihCZSxuZXcgTWFwLE5lKX0pKTtyZXR1cm4gdGhpcy5fcGxheWVyc0J5SWQuc2V0KGcsX2UpLF9lLm9uRGVzdHJveSgoKT0+dGhpcy5kZXN0cm95KGcp''@;'; put 'put ''KSx0aGlzLnBsYXllcnMucHVzaChfZSksX2V9ZGVzdHJveShnKXtjb25zdCBoPXRoaXMuX2dldFBsYXllcihnKTtoLmRlc3Ryb3koKSx0aGlzLl9wbGF5ZXJzQnlJZC5kZWxldGUoZyk7Y29uc3Qgdj10aGlzLnBsYXllcnMuaW5kZXhPZihoKTt2Pj0wJiZ0aGlzLnBsYXllcnMuc3BsaWNlKHYs''@;'; put 'put ''MSl9X2dldFBsYXllcihnKXtjb25zdCBoPXRoaXMuX3BsYXllcnNCeUlkLmdldChnKTtpZighaCl0aHJvdyBmdW5jdGlvbiBWUGUoZCl7cmV0dXJuIG5ldyBlbigzMzAxLCExKX0oKTtyZXR1cm4gaH1saXN0ZW4oZyxoLHYseSl7Y29uc3QgQz1taGUoaCwiIiwiIiwiIik7cmV0dXJuIHBoZSh0''@;'; put 'put ''aGlzLl9nZXRQbGF5ZXIoZyksdixDLHkpLCgpPT57fX1jb21tYW5kKGcsaCx2LHkpe2lmKCJyZWdpc3RlciI9PXYpcmV0dXJuIHZvaWQgdGhpcy5yZWdpc3RlcihnLHlbMF0pO2lmKCJjcmVhdGUiPT12KXJldHVybiB2b2lkIHRoaXMuY3JlYXRlKGcsaCx5WzBdfHx7fSk7Y29uc3QgQz10aGlz''@;'; put 'put ''Ll9nZXRQbGF5ZXIoZyk7c3dpdGNoKHYpe2Nhc2UicGxheSI6Qy5wbGF5KCk7YnJlYWs7Y2FzZSJwYXVzZSI6Qy5wYXVzZSgpO2JyZWFrO2Nhc2UicmVzZXQiOkMucmVzZXQoKTticmVhaztjYXNlInJlc3RhcnQiOkMucmVzdGFydCgpO2JyZWFrO2Nhc2UiZmluaXNoIjpDLmZpbmlzaCgpO2Jy''@;'; put 'put ''ZWFrO2Nhc2UiaW5pdCI6Qy5pbml0KCk7YnJlYWs7Y2FzZSJzZXRQb3NpdGlvbiI6Qy5zZXRQb3NpdGlvbihwYXJzZUZsb2F0KHlbMF0pKTticmVhaztjYXNlImRlc3Ryb3kiOnRoaXMuZGVzdHJveShnKX19fWNvbnN0IE13ZT0ibmctYW5pbWF0ZS1xdWV1ZWQiLExoZT0ibmctYW5pbWF0ZS1k''@;'; put 'put ''aXNhYmxlZCIsWkZlPVtdLEV3ZT17bmFtZXNwYWNlSWQ6IiIsc2V0Rm9yUmVtb3ZhbDohMSxzZXRGb3JNb3ZlOiExLGhhc0FuaW1hdGlvbjohMSxyZW1vdmVkQmVmb3JlUXVlcmllZDohMX0sekZlPXtuYW1lc3BhY2VJZDoiIixzZXRGb3JNb3ZlOiExLHNldEZvclJlbW92YWw6ITEsaGFzQW5p''@;'; put 'put ''bWF0aW9uOiExLHJlbW92ZWRCZWZvcmVRdWVyaWVkOiEwfSxUcD0iX19uZ19yZW1vdmVkIjtjbGFzcyBPaGV7Y29uc3RydWN0b3IoZyxoPSIiKXt0aGlzLm5hbWVzcGFjZUlkPWg7Y29uc3Qgdj1nJiZnLmhhc093blByb3BlcnR5KCJ2YWx1ZSIpO2lmKHRoaXMudmFsdWU9ZnVuY3Rpb24gVUZl''@;'; put 'put ''KGQpe3JldHVybiBudWxsIT1kP2Q6bnVsbH0odj9nLnZhbHVlOmcpLHYpe2NvbnN0IEM9X1ooZyk7ZGVsZXRlIEMudmFsdWUsdGhpcy5vcHRpb25zPUN9ZWxzZSB0aGlzLm9wdGlvbnM9e307dGhpcy5vcHRpb25zLnBhcmFtc3x8KHRoaXMub3B0aW9ucy5wYXJhbXM9e30pfWdldCBwYXJhbXMo''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5vcHRpb25zLnBhcmFtc31hYnNvcmJPcHRpb25zKGcpe2NvbnN0IGg9Zy5wYXJhbXM7aWYoaCl7Y29uc3Qgdj10aGlzLm9wdGlvbnMucGFyYW1zO09iamVjdC5rZXlzKGgpLmZvckVhY2goeT0+e251bGw9PXZbeV0mJih2W3ldPWhbeV0pfSl9fX1jb25zdCBrWj0idm9p''@;'; put 'put ''ZCIsUmhlPW5ldyBPaGUoa1opO2NsYXNzIEdGZXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5pZD1nLHRoaXMuaG9zdEVsZW1lbnQ9aCx0aGlzLl9lbmdpbmU9dix0aGlzLnBsYXllcnM9W10sdGhpcy5fdHJpZ2dlcnM9bmV3IE1hcCx0aGlzLl9xdWV1ZT1bXSx0aGlzLl9lbGVtZW50TGlzdGVu''@;'; put 'put ''ZXJzPW5ldyBNYXAsdGhpcy5faG9zdENsYXNzTmFtZT0ibmctdG5zLSIrZyxJcChoLHRoaXMuX2hvc3RDbGFzc05hbWUpfWxpc3RlbihnLGgsdix5KXtpZighdGhpcy5fdHJpZ2dlcnMuaGFzKGgpKXRocm93IGZ1bmN0aW9uIGpQZShkLGcpe3JldHVybiBuZXcgZW4oMzMwMiwhMSl9KCk7aWYo''@;'; put 'put ''bnVsbD09dnx8MD09di5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gWlBlKGQpe3JldHVybiBuZXcgZW4oMzMwMywhMSl9KCk7aWYoIWZ1bmN0aW9uIFFGZShkKXtyZXR1cm4ic3RhcnQiPT1kfHwiZG9uZSI9PWR9KHYpKXRocm93IGZ1bmN0aW9uIHpQZShkLGcpe3JldHVybiBuZXcgZW4oMzQwMCwh''@;'; put 'put ''MSl9KCk7Y29uc3QgQz1kNCh0aGlzLl9lbGVtZW50TGlzdGVuZXJzLGcsW10pLEk9e25hbWU6aCxwaGFzZTp2LGNhbGxiYWNrOnl9O0MucHVzaChJKTtjb25zdCBaPWQ0KHRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQsZyxuZXcgTWFwKTtyZXR1cm4gWi5oYXMoaCl8fChJcChnLE1xKSxJ''@;'; put 'put ''cChnLE1xKyItIitoKSxaLnNldChoLFJoZSkpLCgpPT57dGhpcy5fZW5naW5lLmFmdGVyRmx1c2goKCk9Pntjb25zdCB1ZT1DLmluZGV4T2YoSSk7dWU+PTAmJkMuc3BsaWNlKHVlLDEpLHRoaXMuX3RyaWdnZXJzLmhhcyhoKXx8Wi5kZWxldGUoaCl9KX19cmVnaXN0ZXIoZyxoKXtyZXR1cm4h''@;'; put 'put ''dGhpcy5fdHJpZ2dlcnMuaGFzKGcpJiYodGhpcy5fdHJpZ2dlcnMuc2V0KGcsaCksITApfV9nZXRUcmlnZ2VyKGcpe2NvbnN0IGg9dGhpcy5fdHJpZ2dlcnMuZ2V0KGcpO2lmKCFoKXRocm93IGZ1bmN0aW9uIEdQZShkKXtyZXR1cm4gbmV3IGVuKDM0MDEsITEpfSgpO3JldHVybiBofXRyaWdn''@;'; put 'put ''ZXIoZyxoLHYseT0hMCl7Y29uc3QgQz10aGlzLl9nZXRUcmlnZ2VyKGgpLEk9bmV3IEJoZSh0aGlzLmlkLGgsZyk7bGV0IFo9dGhpcy5fZW5naW5lLnN0YXRlc0J5RWxlbWVudC5nZXQoZyk7Wnx8KElwKGcsTXEpLElwKGcsTXErIi0iK2gpLHRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQu''@;'; put 'put ''c2V0KGcsWj1uZXcgTWFwKSk7bGV0IHVlPVouZ2V0KGgpO2NvbnN0IF9lPW5ldyBPaGUodix0aGlzLmlkKTtpZighKHYmJnYuaGFzT3duUHJvcGVydHkoInZhbHVlIikpJiZ1ZSYmX2UuYWJzb3JiT3B0aW9ucyh1ZS5vcHRpb25zKSxaLnNldChoLF9lKSx1ZXx8KHVlPVJoZSksX2UudmFsdWUh''@;'; put 'put ''PT1rWiYmdWUudmFsdWU9PT1fZS52YWx1ZSl7aWYoIWZ1bmN0aW9uIEtGZShkLGcpe2NvbnN0IGg9T2JqZWN0LmtleXMoZCksdj1PYmplY3Qua2V5cyhnKTtpZihoLmxlbmd0aCE9di5sZW5ndGgpcmV0dXJuITE7Zm9yKGxldCB5PTA7eTxoLmxlbmd0aDt5Kyspe2NvbnN0IEM9aFt5XTtpZigh''@;'; put 'put ''Zy5oYXNPd25Qcm9wZXJ0eShDKXx8ZFtDXSE9PWdbQ10pcmV0dXJuITF9cmV0dXJuITB9KHVlLnBhcmFtcyxfZS5wYXJhbXMpKXtjb25zdCAkdD1bXSxmbj1DLm1hdGNoU3R5bGVzKHVlLnZhbHVlLHVlLnBhcmFtcywkdCksTG49Qy5tYXRjaFN0eWxlcyhfZS52YWx1ZSxfZS5wYXJhbXMsJHQp''@;'; put 'put ''OyR0Lmxlbmd0aD90aGlzLl9lbmdpbmUucmVwb3J0RXJyb3IoJHQpOnRoaXMuX2VuZ2luZS5hZnRlckZsdXNoKCgpPT57a1MoZyxmbiksQ2coZyxMbil9KX1yZXR1cm59Y29uc3QgS2U9ZDQodGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQsZyxbXSk7S2UuZm9yRWFjaCgkdD0+eyR0Lm5h''@;'; put 'put ''bWVzcGFjZUlkPT10aGlzLmlkJiYkdC50cmlnZ2VyTmFtZT09aCYmJHQucXVldWVkJiYkdC5kZXN0cm95KCl9KTtsZXQgcHQ9Qy5tYXRjaFRyYW5zaXRpb24odWUudmFsdWUsX2UudmFsdWUsZyxfZS5wYXJhbXMpLE90PSExO2lmKCFwdCl7aWYoIXkpcmV0dXJuO3B0PUMuZmFsbGJhY2tUcmFu''@;'; put 'put ''c2l0aW9uLE90PSEwfXJldHVybiB0aGlzLl9lbmdpbmUudG90YWxRdWV1ZWRQbGF5ZXJzKyssdGhpcy5fcXVldWUucHVzaCh7ZWxlbWVudDpnLHRyaWdnZXJOYW1lOmgsdHJhbnNpdGlvbjpwdCxmcm9tU3RhdGU6dWUsdG9TdGF0ZTpfZSxwbGF5ZXI6SSxpc0ZhbGxiYWNrVHJhbnNpdGlvbjpP''@;'; put 'put ''dH0pLE90fHwoSXAoZyxNd2UpLEkub25TdGFydCgoKT0+e3JPKGcsTXdlKX0pKSxJLm9uRG9uZSgoKT0+e2xldCAkdD10aGlzLnBsYXllcnMuaW5kZXhPZihJKTskdD49MCYmdGhpcy5wbGF5ZXJzLnNwbGljZSgkdCwxKTtjb25zdCBmbj10aGlzLl9lbmdpbmUucGxheWVyc0J5RWxlbWVudC5n''@;'; put 'put ''ZXQoZyk7aWYoZm4pe2xldCBMbj1mbi5pbmRleE9mKEkpO0xuPj0wJiZmbi5zcGxpY2UoTG4sMSl9fSksdGhpcy5wbGF5ZXJzLnB1c2goSSksS2UucHVzaChJKSxJfWRlcmVnaXN0ZXIoZyl7dGhpcy5fdHJpZ2dlcnMuZGVsZXRlKGcpLHRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQuZm9y''@;'; put 'put ''RWFjaChoPT5oLmRlbGV0ZShnKSksdGhpcy5fZWxlbWVudExpc3RlbmVycy5mb3JFYWNoKChoLHYpPT57dGhpcy5fZWxlbWVudExpc3RlbmVycy5zZXQodixoLmZpbHRlcih5PT55Lm5hbWUhPWcpKX0pfWNsZWFyRWxlbWVudENhY2hlKGcpe3RoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQu''@;'; put 'put ''ZGVsZXRlKGcpLHRoaXMuX2VsZW1lbnRMaXN0ZW5lcnMuZGVsZXRlKGcpO2NvbnN0IGg9dGhpcy5fZW5naW5lLnBsYXllcnNCeUVsZW1lbnQuZ2V0KGcpO2gmJihoLmZvckVhY2godj0+di5kZXN0cm95KCkpLHRoaXMuX2VuZ2luZS5wbGF5ZXJzQnlFbGVtZW50LmRlbGV0ZShnKSl9X3NpZ25h''@;'; put 'put ''bFJlbW92YWxGb3JJbm5lclRyaWdnZXJzKGcsaCl7Y29uc3Qgdj10aGlzLl9lbmdpbmUuZHJpdmVyLnF1ZXJ5KGcsRXEsITApO3YuZm9yRWFjaCh5PT57aWYoeVtUcF0pcmV0dXJuO2NvbnN0IEM9dGhpcy5fZW5naW5lLmZldGNoTmFtZXNwYWNlc0J5RWxlbWVudCh5KTtDLnNpemU/Qy5mb3JF''@;'; put 'put ''YWNoKEk9PkkudHJpZ2dlckxlYXZlQW5pbWF0aW9uKHksaCwhMSwhMCkpOnRoaXMuY2xlYXJFbGVtZW50Q2FjaGUoeSl9KSx0aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKCgpPT52LmZvckVhY2goeT0+dGhpcy5jbGVhckVsZW1lbnRDYWNoZSh5KSkpfXRyaWdnZXJMZWF2''@;'; put 'put ''ZUFuaW1hdGlvbihnLGgsdix5KXtjb25zdCBDPXRoaXMuX2VuZ2luZS5zdGF0ZXNCeUVsZW1lbnQuZ2V0KGcpLEk9bmV3IE1hcDtpZihDKXtjb25zdCBaPVtdO2lmKEMuZm9yRWFjaCgodWUsX2UpPT57aWYoSS5zZXQoX2UsdWUudmFsdWUpLHRoaXMuX3RyaWdnZXJzLmhhcyhfZSkpe2NvbnN0''@;'; put 'put ''IEJlPXRoaXMudHJpZ2dlcihnLF9lLGtaLHkpO0JlJiZaLnB1c2goQmUpfX0pLFoubGVuZ3RoKXJldHVybiB0aGlzLl9lbmdpbmUubWFya0VsZW1lbnRBc1JlbW92ZWQodGhpcy5pZCxnLCEwLGgsSSksdiYmQXcoWikub25Eb25lKCgpPT50aGlzLl9lbmdpbmUucHJvY2Vzc0xlYXZlTm9kZShn''@;'; put 'put ''KSksITB9cmV0dXJuITF9cHJlcGFyZUxlYXZlQW5pbWF0aW9uTGlzdGVuZXJzKGcpe2NvbnN0IGg9dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQoZyksdj10aGlzLl9lbmdpbmUuc3RhdGVzQnlFbGVtZW50LmdldChnKTtpZihoJiZ2KXtjb25zdCB5PW5ldyBTZXQ7aC5mb3JFYWNoKEM9Pntj''@;'; put 'put ''b25zdCBJPUMubmFtZTtpZih5LmhhcyhJKSlyZXR1cm47eS5hZGQoSSk7Y29uc3QgdWU9dGhpcy5fdHJpZ2dlcnMuZ2V0KEkpLmZhbGxiYWNrVHJhbnNpdGlvbixfZT12LmdldChJKXx8UmhlLEJlPW5ldyBPaGUoa1opLE5lPW5ldyBCaGUodGhpcy5pZCxJLGcpO3RoaXMuX2VuZ2luZS50b3Rh''@;'; put 'put ''bFF1ZXVlZFBsYXllcnMrKyx0aGlzLl9xdWV1ZS5wdXNoKHtlbGVtZW50OmcsdHJpZ2dlck5hbWU6SSx0cmFuc2l0aW9uOnVlLGZyb21TdGF0ZTpfZSx0b1N0YXRlOkJlLHBsYXllcjpOZSxpc0ZhbGxiYWNrVHJhbnNpdGlvbjohMH0pfSl9fXJlbW92ZU5vZGUoZyxoKXtjb25zdCB2PXRoaXMu''@;'; put 'put ''X2VuZ2luZTtpZihnLmNoaWxkRWxlbWVudENvdW50JiZ0aGlzLl9zaWduYWxSZW1vdmFsRm9ySW5uZXJUcmlnZ2VycyhnLGgpLHRoaXMudHJpZ2dlckxlYXZlQW5pbWF0aW9uKGcsaCwhMCkpcmV0dXJuO2xldCB5PSExO2lmKHYudG90YWxBbmltYXRpb25zKXtjb25zdCBDPXYucGxheWVycy5s''@;'; put 'put ''ZW5ndGg/di5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5nZXQoZyk6W107aWYoQyYmQy5sZW5ndGgpeT0hMDtlbHNle2xldCBJPWc7Zm9yKDtJPUkucGFyZW50Tm9kZTspaWYodi5zdGF0ZXNCeUVsZW1lbnQuZ2V0KEkpKXt5PSEwO2JyZWFrfX19aWYodGhpcy5wcmVwYXJlTGVhdmVBbmltYXRp''@;'; put 'put ''b25MaXN0ZW5lcnMoZykseSl2Lm1hcmtFbGVtZW50QXNSZW1vdmVkKHRoaXMuaWQsZywhMSxoKTtlbHNle2NvbnN0IEM9Z1tUcF07KCFDfHxDPT09RXdlKSYmKHYuYWZ0ZXJGbHVzaCgoKT0+dGhpcy5jbGVhckVsZW1lbnRDYWNoZShnKSksdi5kZXN0cm95SW5uZXJBbmltYXRpb25zKGcpLHYu''@;'; put 'put ''X29uUmVtb3ZhbENvbXBsZXRlKGcsaCkpfX1pbnNlcnROb2RlKGcsaCl7SXAoZyx0aGlzLl9ob3N0Q2xhc3NOYW1lKX1kcmFpblF1ZXVlZFRyYW5zaXRpb25zKGcpe2NvbnN0IGg9W107cmV0dXJuIHRoaXMuX3F1ZXVlLmZvckVhY2godj0+e2NvbnN0IHk9di5wbGF5ZXI7aWYoeS5kZXN0cm95''@;'; put 'put ''ZWQpcmV0dXJuO2NvbnN0IEM9di5lbGVtZW50LEk9dGhpcy5fZWxlbWVudExpc3RlbmVycy5nZXQoQyk7SSYmSS5mb3JFYWNoKFo9PntpZihaLm5hbWU9PXYudHJpZ2dlck5hbWUpe2NvbnN0IHVlPW1oZShDLHYudHJpZ2dlck5hbWUsdi5mcm9tU3RhdGUudmFsdWUsdi50b1N0YXRlLnZhbHVl''@;'; put 'put ''KTt1ZS5fZGF0YT1nLHBoZSh2LnBsYXllcixaLnBoYXNlLHVlLFouY2FsbGJhY2spfX0pLHkubWFya2VkRm9yRGVzdHJveT90aGlzLl9lbmdpbmUuYWZ0ZXJGbHVzaCgoKT0+e3kuZGVzdHJveSgpfSk6aC5wdXNoKHYpfSksdGhpcy5fcXVldWU9W10saC5zb3J0KCh2LHkpPT57Y29uc3QgQz12''@;'; put 'put ''LnRyYW5zaXRpb24uYXN0LmRlcENvdW50LEk9eS50cmFuc2l0aW9uLmFzdC5kZXBDb3VudDtyZXR1cm4gMD09Q3x8MD09ST9DLUk6dGhpcy5fZW5naW5lLmRyaXZlci5jb250YWluc0VsZW1lbnQodi5lbGVtZW50LHkuZWxlbWVudCk/MTotMX0pfWRlc3Ryb3koZyl7dGhpcy5wbGF5ZXJzLmZv''@;'; put 'put ''ckVhY2goaD0+aC5kZXN0cm95KCkpLHRoaXMuX3NpZ25hbFJlbW92YWxGb3JJbm5lclRyaWdnZXJzKHRoaXMuaG9zdEVsZW1lbnQsZyl9ZWxlbWVudENvbnRhaW5zRGF0YShnKXtsZXQgaD0hMTtyZXR1cm4gdGhpcy5fZWxlbWVudExpc3RlbmVycy5oYXMoZykmJihoPSEwKSxoPSEhdGhpcy5f''@;'; put 'put ''cXVldWUuZmluZCh2PT52LmVsZW1lbnQ9PT1nKXx8aCxofX1jbGFzcyBXRmV7Y29uc3RydWN0b3IoZyxoLHYpe3RoaXMuYm9keU5vZGU9Zyx0aGlzLmRyaXZlcj1oLHRoaXMuX25vcm1hbGl6ZXI9dix0aGlzLnBsYXllcnM9W10sdGhpcy5uZXdIb3N0RWxlbWVudHM9bmV3IE1hcCx0aGlzLnBs''@;'; put 'put ''YXllcnNCeUVsZW1lbnQ9bmV3IE1hcCx0aGlzLnBsYXllcnNCeVF1ZXJpZWRFbGVtZW50PW5ldyBNYXAsdGhpcy5zdGF0ZXNCeUVsZW1lbnQ9bmV3IE1hcCx0aGlzLmRpc2FibGVkTm9kZXM9bmV3IFNldCx0aGlzLnRvdGFsQW5pbWF0aW9ucz0wLHRoaXMudG90YWxRdWV1ZWRQbGF5ZXJzPTAs''@;'; put 'put ''dGhpcy5fbmFtZXNwYWNlTG9va3VwPXt9LHRoaXMuX25hbWVzcGFjZUxpc3Q9W10sdGhpcy5fZmx1c2hGbnM9W10sdGhpcy5fd2hlblF1aWV0Rm5zPVtdLHRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQ9bmV3IE1hcCx0aGlzLmNvbGxlY3RlZEVudGVyRWxlbWVudHM9W10sdGhpcy5jb2xs''@;'; put 'put ''ZWN0ZWRMZWF2ZUVsZW1lbnRzPVtdLHRoaXMub25SZW1vdmFsQ29tcGxldGU9KHksQyk9Pnt9fV9vblJlbW92YWxDb21wbGV0ZShnLGgpe3RoaXMub25SZW1vdmFsQ29tcGxldGUoZyxoKX1nZXQgcXVldWVkUGxheWVycygpe2NvbnN0IGc9W107cmV0dXJuIHRoaXMuX25hbWVzcGFjZUxpc3Qu''@;'; put 'put ''Zm9yRWFjaChoPT57aC5wbGF5ZXJzLmZvckVhY2godj0+e3YucXVldWVkJiZnLnB1c2godil9KX0pLGd9Y3JlYXRlTmFtZXNwYWNlKGcsaCl7Y29uc3Qgdj1uZXcgR0ZlKGcsaCx0aGlzKTtyZXR1cm4gdGhpcy5ib2R5Tm9kZSYmdGhpcy5kcml2ZXIuY29udGFpbnNFbGVtZW50KHRoaXMuYm9k''@;'; put 'put ''eU5vZGUsaCk/dGhpcy5fYmFsYW5jZU5hbWVzcGFjZUxpc3QodixoKToodGhpcy5uZXdIb3N0RWxlbWVudHMuc2V0KGgsdiksdGhpcy5jb2xsZWN0RW50ZXJFbGVtZW50KGgpKSx0aGlzLl9uYW1lc3BhY2VMb29rdXBbZ109dn1fYmFsYW5jZU5hbWVzcGFjZUxpc3QoZyxoKXtjb25zdCB2PXRo''@;'; put 'put ''aXMuX25hbWVzcGFjZUxpc3QseT10aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50O2lmKHYubGVuZ3RoLTE+PTApe2xldCBJPSExLFo9dGhpcy5kcml2ZXIuZ2V0UGFyZW50RWxlbWVudChoKTtmb3IoO1o7KXtjb25zdCB1ZT15LmdldChaKTtpZih1ZSl7Y29uc3QgX2U9di5pbmRleE9mKHVl''@;'; put 'put ''KTt2LnNwbGljZShfZSsxLDAsZyksST0hMDticmVha31aPXRoaXMuZHJpdmVyLmdldFBhcmVudEVsZW1lbnQoWil9SXx8di51bnNoaWZ0KGcpfWVsc2Ugdi5wdXNoKGcpO3JldHVybiB5LnNldChoLGcpLGd9cmVnaXN0ZXIoZyxoKXtsZXQgdj10aGlzLl9uYW1lc3BhY2VMb29rdXBbZ107cmV0''@;'; put 'put ''dXJuIHZ8fCh2PXRoaXMuY3JlYXRlTmFtZXNwYWNlKGcsaCkpLHZ9cmVnaXN0ZXJUcmlnZ2VyKGcsaCx2KXtsZXQgeT10aGlzLl9uYW1lc3BhY2VMb29rdXBbZ107eSYmeS5yZWdpc3RlcihoLHYpJiZ0aGlzLnRvdGFsQW5pbWF0aW9ucysrfWRlc3Ryb3koZyxoKXtpZighZylyZXR1cm47Y29u''@;'; put 'put ''c3Qgdj10aGlzLl9mZXRjaE5hbWVzcGFjZShnKTt0aGlzLmFmdGVyRmx1c2goKCk9Pnt0aGlzLm5hbWVzcGFjZXNCeUhvc3RFbGVtZW50LmRlbGV0ZSh2Lmhvc3RFbGVtZW50KSxkZWxldGUgdGhpcy5fbmFtZXNwYWNlTG9va3VwW2ddO2NvbnN0IHk9dGhpcy5fbmFtZXNwYWNlTGlzdC5pbmRl''@;'; put 'put ''eE9mKHYpO3k+PTAmJnRoaXMuX25hbWVzcGFjZUxpc3Quc3BsaWNlKHksMSl9KSx0aGlzLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZSgoKT0+di5kZXN0cm95KGgpKX1fZmV0Y2hOYW1lc3BhY2UoZyl7cmV0dXJuIHRoaXMuX25hbWVzcGFjZUxvb2t1cFtnXX1mZXRjaE5hbWVzcGFjZXNCeUVs''@;'; put 'put ''ZW1lbnQoZyl7Y29uc3QgaD1uZXcgU2V0LHY9dGhpcy5zdGF0ZXNCeUVsZW1lbnQuZ2V0KGcpO2lmKHYpZm9yKGxldCB5IG9mIHYudmFsdWVzKCkpaWYoeS5uYW1lc3BhY2VJZCl7Y29uc3QgQz10aGlzLl9mZXRjaE5hbWVzcGFjZSh5Lm5hbWVzcGFjZUlkKTtDJiZoLmFkZChDKX1yZXR1cm4g''@;'; put 'put ''aH10cmlnZ2VyKGcsaCx2LHkpe2lmKE5xKGgpKXtjb25zdCBDPXRoaXMuX2ZldGNoTmFtZXNwYWNlKGcpO2lmKEMpcmV0dXJuIEMudHJpZ2dlcihoLHYseSksITB9cmV0dXJuITF9aW5zZXJ0Tm9kZShnLGgsdix5KXtpZighTnEoaCkpcmV0dXJuO2NvbnN0IEM9aFtUcF07aWYoQyYmQy5zZXRG''@;'; put 'put ''b3JSZW1vdmFsKXtDLnNldEZvclJlbW92YWw9ITEsQy5zZXRGb3JNb3ZlPSEwO2NvbnN0IEk9dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmluZGV4T2YoaCk7ST49MCYmdGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLnNwbGljZShJLDEpfWlmKGcpe2NvbnN0IEk9dGhpcy5fZmV0Y2hO''@;'; put 'put ''YW1lc3BhY2UoZyk7SSYmSS5pbnNlcnROb2RlKGgsdil9eSYmdGhpcy5jb2xsZWN0RW50ZXJFbGVtZW50KGgpfWNvbGxlY3RFbnRlckVsZW1lbnQoZyl7dGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLnB1c2goZyl9bWFya0VsZW1lbnRBc0Rpc2FibGVkKGcsaCl7aD90aGlzLmRpc2FibGVk''@;'; put 'put ''Tm9kZXMuaGFzKGcpfHwodGhpcy5kaXNhYmxlZE5vZGVzLmFkZChnKSxJcChnLExoZSkpOnRoaXMuZGlzYWJsZWROb2Rlcy5oYXMoZykmJih0aGlzLmRpc2FibGVkTm9kZXMuZGVsZXRlKGcpLHJPKGcsTGhlKSl9cmVtb3ZlTm9kZShnLGgsdix5KXtpZihOcShoKSl7Y29uc3QgQz1nP3RoaXMu''@;'; put 'put ''X2ZldGNoTmFtZXNwYWNlKGcpOm51bGw7aWYoQz9DLnJlbW92ZU5vZGUoaCx5KTp0aGlzLm1hcmtFbGVtZW50QXNSZW1vdmVkKGcsaCwhMSx5KSx2KXtjb25zdCBJPXRoaXMubmFtZXNwYWNlc0J5SG9zdEVsZW1lbnQuZ2V0KGgpO0kmJkkuaWQhPT1nJiZJLnJlbW92ZU5vZGUoaCx5KX19ZWxz''@;'; put 'put ''ZSB0aGlzLl9vblJlbW92YWxDb21wbGV0ZShoLHkpfW1hcmtFbGVtZW50QXNSZW1vdmVkKGcsaCx2LHksQyl7dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLnB1c2goaCksaFtUcF09e25hbWVzcGFjZUlkOmcsc2V0Rm9yUmVtb3ZhbDp5LGhhc0FuaW1hdGlvbjp2LHJlbW92ZWRCZWZvcmVR''@;'; put 'put ''dWVyaWVkOiExLHByZXZpb3VzVHJpZ2dlcnNWYWx1ZXM6Q319bGlzdGVuKGcsaCx2LHksQyl7cmV0dXJuIE5xKGgpP3RoaXMuX2ZldGNoTmFtZXNwYWNlKGcpLmxpc3RlbihoLHYseSxDKTooKT0+e319X2J1aWxkSW5zdHJ1Y3Rpb24oZyxoLHYseSxDKXtyZXR1cm4gZy50cmFuc2l0aW9uLmJ1''@;'; put 'put ''aWxkKHRoaXMuZHJpdmVyLGcuZWxlbWVudCxnLmZyb21TdGF0ZS52YWx1ZSxnLnRvU3RhdGUudmFsdWUsdix5LGcuZnJvbVN0YXRlLm9wdGlvbnMsZy50b1N0YXRlLm9wdGlvbnMsaCxDKX1kZXN0cm95SW5uZXJBbmltYXRpb25zKGcpe2xldCBoPXRoaXMuZHJpdmVyLnF1ZXJ5KGcsRXEsITAp''@;'; put 'put ''O2guZm9yRWFjaCh2PT50aGlzLmRlc3Ryb3lBY3RpdmVBbmltYXRpb25zRm9yRWxlbWVudCh2KSksMCE9dGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5zaXplJiYoaD10aGlzLmRyaXZlci5xdWVyeShnLGJoZSwhMCksaC5mb3JFYWNoKHY9PnRoaXMuZmluaXNoQWN0aXZlUXVlcmllZEFu''@;'; put 'put ''aW1hdGlvbk9uRWxlbWVudCh2KSkpfWRlc3Ryb3lBY3RpdmVBbmltYXRpb25zRm9yRWxlbWVudChnKXtjb25zdCBoPXRoaXMucGxheWVyc0J5RWxlbWVudC5nZXQoZyk7aCYmaC5mb3JFYWNoKHY9Pnt2LnF1ZXVlZD92Lm1hcmtlZEZvckRlc3Ryb3k9ITA6di5kZXN0cm95KCl9KX1maW5pc2hB''@;'; put 'put ''Y3RpdmVRdWVyaWVkQW5pbWF0aW9uT25FbGVtZW50KGcpe2NvbnN0IGg9dGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5nZXQoZyk7aCYmaC5mb3JFYWNoKHY9PnYuZmluaXNoKCkpfXdoZW5SZW5kZXJpbmdEb25lKCl7cmV0dXJuIG5ldyBQcm9taXNlKGc9PntpZih0aGlzLnBsYXllcnMu''@;'; put 'put ''bGVuZ3RoKXJldHVybiBBdyh0aGlzLnBsYXllcnMpLm9uRG9uZSgoKT0+ZygpKTtnKCl9KX1wcm9jZXNzTGVhdmVOb2RlKGcpe3ZhciBoO2NvbnN0IHY9Z1tUcF07aWYodiYmdi5zZXRGb3JSZW1vdmFsKXtpZihnW1RwXT1Fd2Usdi5uYW1lc3BhY2VJZCl7dGhpcy5kZXN0cm95SW5uZXJBbmlt''@;'; put 'put ''YXRpb25zKGcpO2NvbnN0IHk9dGhpcy5fZmV0Y2hOYW1lc3BhY2Uodi5uYW1lc3BhY2VJZCk7eSYmeS5jbGVhckVsZW1lbnRDYWNoZShnKX10aGlzLl9vblJlbW92YWxDb21wbGV0ZShnLHYuc2V0Rm9yUmVtb3ZhbCl9IShudWxsPT09KGg9Zy5jbGFzc0xpc3QpfHx2b2lkIDA9PT1oKSYmaC5j''@;'; put 'put ''b250YWlucyhMaGUpJiZ0aGlzLm1hcmtFbGVtZW50QXNEaXNhYmxlZChnLCExKSx0aGlzLmRyaXZlci5xdWVyeShnLCIubmctYW5pbWF0ZS1kaXNhYmxlZCIsITApLmZvckVhY2goeT0+e3RoaXMubWFya0VsZW1lbnRBc0Rpc2FibGVkKHksITEpfSl9Zmx1c2goZz0tMSl7bGV0IGg9W107aWYo''@;'; put 'put ''dGhpcy5uZXdIb3N0RWxlbWVudHMuc2l6ZSYmKHRoaXMubmV3SG9zdEVsZW1lbnRzLmZvckVhY2goKHYseSk9PnRoaXMuX2JhbGFuY2VOYW1lc3BhY2VMaXN0KHYseSkpLHRoaXMubmV3SG9zdEVsZW1lbnRzLmNsZWFyKCkpLHRoaXMudG90YWxBbmltYXRpb25zJiZ0aGlzLmNvbGxlY3RlZEVu''@;'; put 'put ''dGVyRWxlbWVudHMubGVuZ3RoKWZvcihsZXQgdj0wO3Y8dGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aDt2KyspSXAodGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzW3ZdLCJuZy1zdGFyLWluc2VydGVkIik7aWYodGhpcy5fbmFtZXNwYWNlTGlzdC5sZW5ndGgmJih0aGlzLnRv''@;'; put 'put ''dGFsUXVldWVkUGxheWVyc3x8dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzLmxlbmd0aCkpe2NvbnN0IHY9W107dHJ5e2g9dGhpcy5fZmx1c2hBbmltYXRpb25zKHYsZyl9ZmluYWxseXtmb3IobGV0IHk9MDt5PHYubGVuZ3RoO3krKyl2W3ldKCl9fWVsc2UgZm9yKGxldCB2PTA7djx0aGlz''@;'; put 'put ''LmNvbGxlY3RlZExlYXZlRWxlbWVudHMubGVuZ3RoO3YrKyl0aGlzLnByb2Nlc3NMZWF2ZU5vZGUodGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzW3ZdKTtpZih0aGlzLnRvdGFsUXVldWVkUGxheWVycz0wLHRoaXMuY29sbGVjdGVkRW50ZXJFbGVtZW50cy5sZW5ndGg9MCx0aGlzLmNvbGxl''@;'; put 'put ''Y3RlZExlYXZlRWxlbWVudHMubGVuZ3RoPTAsdGhpcy5fZmx1c2hGbnMuZm9yRWFjaCh2PT52KCkpLHRoaXMuX2ZsdXNoRm5zPVtdLHRoaXMuX3doZW5RdWlldEZucy5sZW5ndGgpe2NvbnN0IHY9dGhpcy5fd2hlblF1aWV0Rm5zO3RoaXMuX3doZW5RdWlldEZucz1bXSxoLmxlbmd0aD9Bdyho''@;'; put 'put ''KS5vbkRvbmUoKCk9Pnt2LmZvckVhY2goeT0+eSgpKX0pOnYuZm9yRWFjaCh5PT55KCkpfX1yZXBvcnRFcnJvcihnKXt0aHJvdyBmdW5jdGlvbiBXUGUoZCl7cmV0dXJuIG5ldyBlbigzNDAyLCExKX0oKX1fZmx1c2hBbmltYXRpb25zKGcsaCl7Y29uc3Qgdj1uZXcgUHEseT1bXSxDPW5ldyBN''@;'; put 'put ''YXAsST1bXSxaPW5ldyBNYXAsdWU9bmV3IE1hcCxfZT1uZXcgTWFwLEJlPW5ldyBTZXQ7dGhpcy5kaXNhYmxlZE5vZGVzLmZvckVhY2goSDA9PntCZS5hZGQoSDApO2NvbnN0IHJvPXRoaXMuZHJpdmVyLnF1ZXJ5KEgwLCIubmctYW5pbWF0ZS1xdWV1ZWQiLCEwKTtmb3IobGV0IGZvPTA7Zm88''@;'; put 'put ''cm8ubGVuZ3RoO2ZvKyspQmUuYWRkKHJvW2ZvXSl9KTtjb25zdCBOZT10aGlzLmJvZHlOb2RlLEtlPUFycmF5LmZyb20odGhpcy5zdGF0ZXNCeUVsZW1lbnQua2V5cygpKSxwdD1Jd2UoS2UsdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzKSxPdD1uZXcgTWFwO2xldCAkdD0wO3B0LmZvckVh''@;'; put 'put ''Y2goKEgwLHJvKT0+e2NvbnN0IGZvPSJuZy1lbnRlciIrJHQrKztPdC5zZXQocm8sZm8pLEgwLmZvckVhY2goSWE9PklwKElhLGZvKSl9KTtjb25zdCBmbj1bXSxMbj1uZXcgU2V0LGlyPW5ldyBTZXQ7Zm9yKGxldCBIMD0wO0gwPHRoaXMuY29sbGVjdGVkTGVhdmVFbGVtZW50cy5sZW5ndGg7''@;'; put 'put ''SDArKyl7Y29uc3Qgcm89dGhpcy5jb2xsZWN0ZWRMZWF2ZUVsZW1lbnRzW0gwXSxmbz1yb1tUcF07Zm8mJmZvLnNldEZvclJlbW92YWwmJihmbi5wdXNoKHJvKSxMbi5hZGQocm8pLGZvLmhhc0FuaW1hdGlvbj90aGlzLmRyaXZlci5xdWVyeShybywiLm5nLXN0YXItaW5zZXJ0ZWQiLCEwKS5m''@;'; put 'put ''b3JFYWNoKElhPT5Mbi5hZGQoSWEpKTppci5hZGQocm8pKX1jb25zdCBtcj1uZXcgTWFwLFNyPUl3ZShLZSxBcnJheS5mcm9tKExuKSk7U3IuZm9yRWFjaCgoSDAscm8pPT57Y29uc3QgZm89U3ErJHQrKzttci5zZXQocm8sZm8pLEgwLmZvckVhY2goSWE9PklwKElhLGZvKSl9KSxnLnB1c2go''@;'; put 'put ''KCk9PntwdC5mb3JFYWNoKChIMCxybyk9Pntjb25zdCBmbz1PdC5nZXQocm8pO0gwLmZvckVhY2goSWE9PnJPKElhLGZvKSl9KSxTci5mb3JFYWNoKChIMCxybyk9Pntjb25zdCBmbz1tci5nZXQocm8pO0gwLmZvckVhY2goSWE9PnJPKElhLGZvKSl9KSxmbi5mb3JFYWNoKEgwPT57dGhpcy5w''@;'; put 'put ''cm9jZXNzTGVhdmVOb2RlKEgwKX0pfSk7Y29uc3Qgd3I9W10sUXI9W107Zm9yKGxldCBIMD10aGlzLl9uYW1lc3BhY2VMaXN0Lmxlbmd0aC0xO0gwPj0wO0gwLS0pdGhpcy5fbmFtZXNwYWNlTGlzdFtIMF0uZHJhaW5RdWV1ZWRUcmFuc2l0aW9ucyhoKS5mb3JFYWNoKGZvPT57Y29uc3QgSWE9''@;'; put 'put ''Zm8ucGxheWVyLFhsPWZvLmVsZW1lbnQ7aWYod3IucHVzaChJYSksdGhpcy5jb2xsZWN0ZWRFbnRlckVsZW1lbnRzLmxlbmd0aCl7Y29uc3QgWGk9WGxbVHBdO2lmKFhpJiZYaS5zZXRGb3JNb3ZlKXtpZihYaS5wcmV2aW91c1RyaWdnZXJzVmFsdWVzJiZYaS5wcmV2aW91c1RyaWdnZXJzVmFs''@;'; put 'put ''dWVzLmhhcyhmby50cmlnZ2VyTmFtZSkpe2NvbnN0IEUwPVhpLnByZXZpb3VzVHJpZ2dlcnNWYWx1ZXMuZ2V0KGZvLnRyaWdnZXJOYW1lKSx6MD10aGlzLnN0YXRlc0J5RWxlbWVudC5nZXQoZm8uZWxlbWVudCk7aWYoejAmJnowLmhhcyhmby50cmlnZ2VyTmFtZSkpe2NvbnN0IGtvPXowLmdl''@;'; put 'put ''dChmby50cmlnZ2VyTmFtZSk7a28udmFsdWU9RTAsejAuc2V0KGZvLnRyaWdnZXJOYW1lLGtvKX19cmV0dXJuIHZvaWQgSWEuZGVzdHJveSgpfX1jb25zdCBGbj0hTmV8fCF0aGlzLmRyaXZlci5jb250YWluc0VsZW1lbnQoTmUsWGwpLFpuPW1yLmdldChYbCksX3I9T3QuZ2V0KFhsKSxYcj10''@;'; put 'put ''aGlzLl9idWlsZEluc3RydWN0aW9uKGZvLHYsX3IsWm4sRm4pO2lmKFhyLmVycm9ycyYmWHIuZXJyb3JzLmxlbmd0aClyZXR1cm4gdm9pZCBRci5wdXNoKFhyKTtpZihGbilyZXR1cm4gSWEub25TdGFydCgoKT0+a1MoWGwsWHIuZnJvbVN0eWxlcykpLElhLm9uRGVzdHJveSgoKT0+Q2coWGws''@;'; put 'put ''WHIudG9TdHlsZXMpKSx2b2lkIHkucHVzaChJYSk7aWYoZm8uaXNGYWxsYmFja1RyYW5zaXRpb24pcmV0dXJuIElhLm9uU3RhcnQoKCk9PmtTKFhsLFhyLmZyb21TdHlsZXMpKSxJYS5vbkRlc3Ryb3koKCk9PkNnKFhsLFhyLnRvU3R5bGVzKSksdm9pZCB5LnB1c2goSWEpO2NvbnN0IGNpPVtd''@;'; put 'put ''O1hyLnRpbWVsaW5lcy5mb3JFYWNoKFhpPT57WGkuc3RyZXRjaFN0YXJ0aW5nS2V5ZnJhbWU9ITAsdGhpcy5kaXNhYmxlZE5vZGVzLmhhcyhYaS5lbGVtZW50KXx8Y2kucHVzaChYaSl9KSxYci50aW1lbGluZXM9Y2ksdi5hcHBlbmQoWGwsWHIudGltZWxpbmVzKSxJLnB1c2goe2luc3RydWN0''@;'; put 'put ''aW9uOlhyLHBsYXllcjpJYSxlbGVtZW50OlhsfSksWHIucXVlcmllZEVsZW1lbnRzLmZvckVhY2goWGk9PmQ0KFosWGksW10pLnB1c2goSWEpKSxYci5wcmVTdHlsZVByb3BzLmZvckVhY2goKFhpLEUwKT0+e2lmKFhpLnNpemUpe2xldCB6MD11ZS5nZXQoRTApO3owfHx1ZS5zZXQoRTAsejA9''@;'; put 'put ''bmV3IFNldCksWGkuZm9yRWFjaCgoa28sd28pPT56MC5hZGQod28pKX19KSxYci5wb3N0U3R5bGVQcm9wcy5mb3JFYWNoKChYaSxFMCk9PntsZXQgejA9X2UuZ2V0KEUwKTt6MHx8X2Uuc2V0KEUwLHowPW5ldyBTZXQpLFhpLmZvckVhY2goKGtvLHdvKT0+ejAuYWRkKHdvKSl9KX0pO2lmKFFy''@;'; put 'put ''Lmxlbmd0aCl7Y29uc3QgSDA9W107UXIuZm9yRWFjaChybz0+e0gwLnB1c2goZnVuY3Rpb24gWVBlKGQsZyl7cmV0dXJuIG5ldyBlbigzNTA1LCExKX0oKSl9KSx3ci5mb3JFYWNoKHJvPT5yby5kZXN0cm95KCkpLHRoaXMucmVwb3J0RXJyb3IoSDApfWNvbnN0IHlpPW5ldyBNYXAsS2k9bmV3''@;'; put 'put ''IE1hcDtJLmZvckVhY2goSDA9Pntjb25zdCBybz1IMC5lbGVtZW50O3YuaGFzKHJvKSYmKEtpLnNldChybyxybyksdGhpcy5fYmVmb3JlQW5pbWF0aW9uQnVpbGQoSDAucGxheWVyLm5hbWVzcGFjZUlkLEgwLmluc3RydWN0aW9uLHlpKSl9KSx5LmZvckVhY2goSDA9Pntjb25zdCBybz1IMC5l''@;'; put 'put ''bGVtZW50O3RoaXMuX2dldFByZXZpb3VzUGxheWVycyhybywhMSxIMC5uYW1lc3BhY2VJZCxIMC50cmlnZ2VyTmFtZSxudWxsKS5mb3JFYWNoKElhPT57ZDQoeWkscm8sW10pLnB1c2goSWEpLElhLmRlc3Ryb3koKX0pfSk7Y29uc3QgU289Zm4uZmlsdGVyKEgwPT5Md2UoSDAsdWUsX2UpKSxQ''@;'; put 'put ''bz1uZXcgTWFwO1R3ZShQbyx0aGlzLmRyaXZlcixpcixfZSxuOCkuZm9yRWFjaChIMD0+e0x3ZShIMCx1ZSxfZSkmJlNvLnB1c2goSDApfSk7Y29uc3QgSmE9bmV3IE1hcDtwdC5mb3JFYWNoKChIMCxybyk9PntUd2UoSmEsdGhpcy5kcml2ZXIsbmV3IFNldChIMCksdWUsIiEiKX0pLFNvLmZv''@;'; put 'put ''ckVhY2goSDA9Pnt2YXIgcm8sZm87Y29uc3QgSWE9UG8uZ2V0KEgwKSxYbD1KYS5nZXQoSDApO1BvLnNldChIMCxuZXcgTWFwKFsuLi5BcnJheS5mcm9tKG51bGwhPT0ocm89bnVsbD09SWE/dm9pZCAwOklhLmVudHJpZXMoKSkmJnZvaWQgMCE9PXJvP3JvOltdKSwuLi5BcnJheS5mcm9tKG51''@;'; put 'put ''bGwhPT0oZm89bnVsbD09WGw/dm9pZCAwOlhsLmVudHJpZXMoKSkmJnZvaWQgMCE9PWZvP2ZvOltdKV0pKX0pO2NvbnN0IGxhPVtdLGFsPVtdLFJzPXt9O0kuZm9yRWFjaChIMD0+e2NvbnN0e2VsZW1lbnQ6cm8scGxheWVyOmZvLGluc3RydWN0aW9uOklhfT1IMDtpZih2Lmhhcyhybykpe2lm''@;'; put 'put ''KEJlLmhhcyhybykpcmV0dXJuIGZvLm9uRGVzdHJveSgoKT0+Q2cocm8sSWEudG9TdHlsZXMpKSxmby5kaXNhYmxlZD0hMCxmby5vdmVycmlkZVRvdGFsVGltZShJYS50b3RhbFRpbWUpLHZvaWQgeS5wdXNoKGZvKTtsZXQgWGw9UnM7aWYoS2kuc2l6ZT4xKXtsZXQgWm49cm87Y29uc3QgX3I9''@;'; put 'put ''W107Zm9yKDtabj1abi5wYXJlbnROb2RlOyl7Y29uc3QgWHI9S2kuZ2V0KFpuKTtpZihYcil7WGw9WHI7YnJlYWt9X3IucHVzaChabil9X3IuZm9yRWFjaChYcj0+S2kuc2V0KFhyLFhsKSl9Y29uc3QgRm49dGhpcy5fYnVpbGRBbmltYXRpb24oZm8ubmFtZXNwYWNlSWQsSWEseWksQyxKYSxQ''@;'; put 'put ''byk7aWYoZm8uc2V0UmVhbFBsYXllcihGbiksWGw9PT1ScylsYS5wdXNoKGZvKTtlbHNle2NvbnN0IFpuPXRoaXMucGxheWVyc0J5RWxlbWVudC5nZXQoWGwpO1puJiZabi5sZW5ndGgmJihmby5wYXJlbnRQbGF5ZXI9QXcoWm4pKSx5LnB1c2goZm8pfX1lbHNlIGtTKHJvLElhLmZyb21TdHls''@;'; put 'put ''ZXMpLGZvLm9uRGVzdHJveSgoKT0+Q2cocm8sSWEudG9TdHlsZXMpKSxhbC5wdXNoKGZvKSxCZS5oYXMocm8pJiZ5LnB1c2goZm8pfSksYWwuZm9yRWFjaChIMD0+e2NvbnN0IHJvPUMuZ2V0KEgwLmVsZW1lbnQpO2lmKHJvJiZyby5sZW5ndGgpe2NvbnN0IGZvPUF3KHJvKTtIMC5zZXRSZWFs''@;'; put 'put ''UGxheWVyKGZvKX19KSx5LmZvckVhY2goSDA9PntIMC5wYXJlbnRQbGF5ZXI/SDAuc3luY1BsYXllckV2ZW50cyhIMC5wYXJlbnRQbGF5ZXIpOkgwLmRlc3Ryb3koKX0pO2ZvcihsZXQgSDA9MDtIMDxmbi5sZW5ndGg7SDArKyl7Y29uc3Qgcm89Zm5bSDBdLGZvPXJvW1RwXTtpZihyTyhybyxT''@;'; put 'put ''cSksZm8mJmZvLmhhc0FuaW1hdGlvbiljb250aW51ZTtsZXQgSWE9W107aWYoWi5zaXplKXtsZXQgRm49Wi5nZXQocm8pO0ZuJiZGbi5sZW5ndGgmJklhLnB1c2goLi4uRm4pO2xldCBabj10aGlzLmRyaXZlci5xdWVyeShybyxiaGUsITApO2ZvcihsZXQgX3I9MDtfcjxabi5sZW5ndGg7X3Ir''@;'; put 'put ''Kyl7bGV0IFhyPVouZ2V0KFpuW19yXSk7WHImJlhyLmxlbmd0aCYmSWEucHVzaCguLi5Ycil9fWNvbnN0IFhsPUlhLmZpbHRlcihGbj0+IUZuLmRlc3Ryb3llZCk7WGwubGVuZ3RoP0pGZSh0aGlzLHJvLFhsKTp0aGlzLnByb2Nlc3NMZWF2ZU5vZGUocm8pfXJldHVybiBmbi5sZW5ndGg9MCxs''@;'; put 'put ''YS5mb3JFYWNoKEgwPT57dGhpcy5wbGF5ZXJzLnB1c2goSDApLEgwLm9uRG9uZSgoKT0+e0gwLmRlc3Ryb3koKTtjb25zdCBybz10aGlzLnBsYXllcnMuaW5kZXhPZihIMCk7dGhpcy5wbGF5ZXJzLnNwbGljZShybywxKX0pLEgwLnBsYXkoKX0pLGxhfWVsZW1lbnRDb250YWluc0RhdGEoZyxo''@;'; put 'put ''KXtsZXQgdj0hMTtjb25zdCB5PWhbVHBdO3JldHVybiB5JiZ5LnNldEZvclJlbW92YWwmJih2PSEwKSx0aGlzLnBsYXllcnNCeUVsZW1lbnQuaGFzKGgpJiYodj0hMCksdGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5oYXMoaCkmJih2PSEwKSx0aGlzLnN0YXRlc0J5RWxlbWVudC5oYXMo''@;'; put 'put ''aCkmJih2PSEwKSx0aGlzLl9mZXRjaE5hbWVzcGFjZShnKS5lbGVtZW50Q29udGFpbnNEYXRhKGgpfHx2fWFmdGVyRmx1c2goZyl7dGhpcy5fZmx1c2hGbnMucHVzaChnKX1hZnRlckZsdXNoQW5pbWF0aW9uc0RvbmUoZyl7dGhpcy5fd2hlblF1aWV0Rm5zLnB1c2goZyl9X2dldFByZXZpb3Vz''@;'; put 'put ''UGxheWVycyhnLGgsdix5LEMpe2xldCBJPVtdO2lmKGgpe2NvbnN0IFo9dGhpcy5wbGF5ZXJzQnlRdWVyaWVkRWxlbWVudC5nZXQoZyk7WiYmKEk9Wil9ZWxzZXtjb25zdCBaPXRoaXMucGxheWVyc0J5RWxlbWVudC5nZXQoZyk7aWYoWil7Y29uc3QgdWU9IUN8fEM9PWtaO1ouZm9yRWFjaChf''@;'; put 'put ''ZT0+e19lLnF1ZXVlZHx8IXVlJiZfZS50cmlnZ2VyTmFtZSE9eXx8SS5wdXNoKF9lKX0pfX1yZXR1cm4odnx8eSkmJihJPUkuZmlsdGVyKFo9PiEodiYmdiE9Wi5uYW1lc3BhY2VJZHx8eSYmeSE9Wi50cmlnZ2VyTmFtZSkpKSxJfV9iZWZvcmVBbmltYXRpb25CdWlsZChnLGgsdil7Y29uc3Qg''@;'; put 'put ''Qz1oLmVsZW1lbnQsST1oLmlzUmVtb3ZhbFRyYW5zaXRpb24/dm9pZCAwOmcsWj1oLmlzUmVtb3ZhbFRyYW5zaXRpb24/dm9pZCAwOmgudHJpZ2dlck5hbWU7Zm9yKGNvbnN0IHVlIG9mIGgudGltZWxpbmVzKXtjb25zdCBfZT11ZS5lbGVtZW50LEJlPV9lIT09QyxOZT1kNCh2LF9lLFtdKTt0''@;'; put 'put ''aGlzLl9nZXRQcmV2aW91c1BsYXllcnMoX2UsQmUsSSxaLGgudG9TdGF0ZSkuZm9yRWFjaChwdD0+e2NvbnN0IE90PXB0LmdldFJlYWxQbGF5ZXIoKTtPdC5iZWZvcmVEZXN0cm95JiZPdC5iZWZvcmVEZXN0cm95KCkscHQuZGVzdHJveSgpLE5lLnB1c2gocHQpfSl9a1MoQyxoLmZyb21TdHls''@;'; put 'put ''ZXMpfV9idWlsZEFuaW1hdGlvbihnLGgsdix5LEMsSSl7Y29uc3QgWj1oLnRyaWdnZXJOYW1lLHVlPWguZWxlbWVudCxfZT1bXSxCZT1uZXcgU2V0LE5lPW5ldyBTZXQsS2U9aC50aW1lbGluZXMubWFwKE90PT57Y29uc3QgJHQ9T3QuZWxlbWVudDtCZS5hZGQoJHQpO2NvbnN0IGZuPSR0W1Rw''@;'; put 'put ''XTtpZihmbiYmZm4ucmVtb3ZlZEJlZm9yZVF1ZXJpZWQpcmV0dXJuIG5ldyBJayhPdC5kdXJhdGlvbixPdC5kZWxheSk7Y29uc3QgTG49JHQhPT11ZSxpcj1mdW5jdGlvbiBYRmUoZCl7Y29uc3QgZz1bXTtyZXR1cm4gRHdlKGQsZyksZ30oKHYuZ2V0KCR0KXx8WkZlKS5tYXAoeWk9PnlpLmdl''@;'; put 'put ''dFJlYWxQbGF5ZXIoKSkpLmZpbHRlcih5aT0+ISF5aS5lbGVtZW50JiZ5aS5lbGVtZW50PT09JHQpLG1yPUMuZ2V0KCR0KSxTcj1JLmdldCgkdCksd3I9cndlKDAsdGhpcy5fbm9ybWFsaXplciwwLE90LmtleWZyYW1lcyxtcixTciksUXI9dGhpcy5fYnVpbGRQbGF5ZXIoT3Qsd3IsaXIpO2lm''@;'; put 'put ''KE90LnN1YlRpbWVsaW5lJiZ5JiZOZS5hZGQoJHQpLExuKXtjb25zdCB5aT1uZXcgQmhlKGcsWiwkdCk7eWkuc2V0UmVhbFBsYXllcihRciksX2UucHVzaCh5aSl9cmV0dXJuIFFyfSk7X2UuZm9yRWFjaChPdD0+e2Q0KHRoaXMucGxheWVyc0J5UXVlcmllZEVsZW1lbnQsT3QuZWxlbWVudCxb''@;'; put 'put ''XSkucHVzaChPdCksT3Qub25Eb25lKCgpPT5mdW5jdGlvbiBZRmUoZCxnLGgpe2xldCB2PWQuZ2V0KGcpO2lmKHYpe2lmKHYubGVuZ3RoKXtjb25zdCB5PXYuaW5kZXhPZihoKTt2LnNwbGljZSh5LDEpfTA9PXYubGVuZ3RoJiZkLmRlbGV0ZShnKX1yZXR1cm4gdn0odGhpcy5wbGF5ZXJzQnlR''@;'; put 'put ''dWVyaWVkRWxlbWVudCxPdC5lbGVtZW50LE90KSl9KSxCZS5mb3JFYWNoKE90PT5JcChPdCxod2UpKTtjb25zdCBwdD1BdyhLZSk7cmV0dXJuIHB0Lm9uRGVzdHJveSgoKT0+e0JlLmZvckVhY2goT3Q9PnJPKE90LGh3ZSkpLENnKHVlLGgudG9TdHlsZXMpfSksTmUuZm9yRWFjaChPdD0+e2Q0''@;'; put 'put ''KHksT3QsW10pLnB1c2gocHQpfSkscHR9X2J1aWxkUGxheWVyKGcsaCx2KXtyZXR1cm4gaC5sZW5ndGg+MD90aGlzLmRyaXZlci5hbmltYXRlKGcuZWxlbWVudCxoLGcuZHVyYXRpb24sZy5kZWxheSxnLmVhc2luZyx2KTpuZXcgSWsoZy5kdXJhdGlvbixnLmRlbGF5KX19Y2xhc3MgQmhle2Nv''@;'; put 'put ''bnN0cnVjdG9yKGcsaCx2KXt0aGlzLm5hbWVzcGFjZUlkPWcsdGhpcy50cmlnZ2VyTmFtZT1oLHRoaXMuZWxlbWVudD12LHRoaXMuX3BsYXllcj1uZXcgSWssdGhpcy5fY29udGFpbnNSZWFsUGxheWVyPSExLHRoaXMuX3F1ZXVlZENhbGxiYWNrcz1uZXcgTWFwLHRoaXMuZGVzdHJveWVkPSEx''@;'; put 'put ''LHRoaXMubWFya2VkRm9yRGVzdHJveT0hMSx0aGlzLmRpc2FibGVkPSExLHRoaXMucXVldWVkPSEwLHRoaXMudG90YWxUaW1lPTB9c2V0UmVhbFBsYXllcihnKXt0aGlzLl9jb250YWluc1JlYWxQbGF5ZXJ8fCh0aGlzLl9wbGF5ZXI9Zyx0aGlzLl9xdWV1ZWRDYWxsYmFja3MuZm9yRWFjaCgo''@;'; put 'put ''aCx2KT0+e2guZm9yRWFjaCh5PT5waGUoZyx2LHZvaWQgMCx5KSl9KSx0aGlzLl9xdWV1ZWRDYWxsYmFja3MuY2xlYXIoKSx0aGlzLl9jb250YWluc1JlYWxQbGF5ZXI9ITAsdGhpcy5vdmVycmlkZVRvdGFsVGltZShnLnRvdGFsVGltZSksdGhpcy5xdWV1ZWQ9ITEpfWdldFJlYWxQbGF5ZXIo''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5fcGxheWVyfW92ZXJyaWRlVG90YWxUaW1lKGcpe3RoaXMudG90YWxUaW1lPWd9c3luY1BsYXllckV2ZW50cyhnKXtjb25zdCBoPXRoaXMuX3BsYXllcjtoLnRyaWdnZXJDYWxsYmFjayYmZy5vblN0YXJ0KCgpPT5oLnRyaWdnZXJDYWxsYmFjaygic3RhcnQiKSksZy5v''@;'; put 'put ''bkRvbmUoKCk9PnRoaXMuZmluaXNoKCkpLGcub25EZXN0cm95KCgpPT50aGlzLmRlc3Ryb3koKSl9X3F1ZXVlRXZlbnQoZyxoKXtkNCh0aGlzLl9xdWV1ZWRDYWxsYmFja3MsZyxbXSkucHVzaChoKX1vbkRvbmUoZyl7dGhpcy5xdWV1ZWQmJnRoaXMuX3F1ZXVlRXZlbnQoImRvbmUiLGcpLHRo''@;'; put 'put ''aXMuX3BsYXllci5vbkRvbmUoZyl9b25TdGFydChnKXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgic3RhcnQiLGcpLHRoaXMuX3BsYXllci5vblN0YXJ0KGcpfW9uRGVzdHJveShnKXt0aGlzLnF1ZXVlZCYmdGhpcy5fcXVldWVFdmVudCgiZGVzdHJveSIsZyksdGhpcy5fcGxheWVy''@;'; put 'put ''Lm9uRGVzdHJveShnKX1pbml0KCl7dGhpcy5fcGxheWVyLmluaXQoKX1oYXNTdGFydGVkKCl7cmV0dXJuIXRoaXMucXVldWVkJiZ0aGlzLl9wbGF5ZXIuaGFzU3RhcnRlZCgpfXBsYXkoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5wbGF5KCl9cGF1c2UoKXshdGhpcy5xdWV1ZWQmJnRo''@;'; put 'put ''aXMuX3BsYXllci5wYXVzZSgpfXJlc3RhcnQoKXshdGhpcy5xdWV1ZWQmJnRoaXMuX3BsYXllci5yZXN0YXJ0KCl9ZmluaXNoKCl7dGhpcy5fcGxheWVyLmZpbmlzaCgpfWRlc3Ryb3koKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLl9wbGF5ZXIuZGVzdHJveSgpfXJlc2V0KCl7IXRoaXMucXVl''@;'; put 'put ''dWVkJiZ0aGlzLl9wbGF5ZXIucmVzZXQoKX1zZXRQb3NpdGlvbihnKXt0aGlzLnF1ZXVlZHx8dGhpcy5fcGxheWVyLnNldFBvc2l0aW9uKGcpfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMucXVldWVkPzA6dGhpcy5fcGxheWVyLmdldFBvc2l0aW9uKCl9dHJpZ2dlckNhbGxiYWNrKGcpe2Nv''@;'; put 'put ''bnN0IGg9dGhpcy5fcGxheWVyO2gudHJpZ2dlckNhbGxiYWNrJiZoLnRyaWdnZXJDYWxsYmFjayhnKX19ZnVuY3Rpb24gTnEoZCl7cmV0dXJuIGQmJjE9PT1kLm5vZGVUeXBlfWZ1bmN0aW9uIHh3ZShkLGcpe2NvbnN0IGg9ZC5zdHlsZS5kaXNwbGF5O3JldHVybiBkLnN0eWxlLmRpc3BsYXk9''@;'; put 'put ''bnVsbCE9Zz9nOiJub25lIixofWZ1bmN0aW9uIFR3ZShkLGcsaCx2LHkpe2NvbnN0IEM9W107aC5mb3JFYWNoKHVlPT5DLnB1c2goeHdlKHVlKSkpO2NvbnN0IEk9W107di5mb3JFYWNoKCh1ZSxfZSk9Pntjb25zdCBCZT1uZXcgTWFwO3VlLmZvckVhY2goTmU9Pntjb25zdCBLZT1nLmNvbXB1''@;'; put 'put ''dGVTdHlsZShfZSxOZSx5KTtCZS5zZXQoTmUsS2UpLCghS2V8fDA9PUtlLmxlbmd0aCkmJihfZVtUcF09ekZlLEkucHVzaChfZSkpfSksZC5zZXQoX2UsQmUpfSk7bGV0IFo9MDtyZXR1cm4gaC5mb3JFYWNoKHVlPT54d2UodWUsQ1taKytdKSksSX1mdW5jdGlvbiBJd2UoZCxnKXtjb25zdCBo''@;'; put 'put ''PW5ldyBNYXA7aWYoZC5mb3JFYWNoKFo9Pmguc2V0KFosW10pKSwwPT1nLmxlbmd0aClyZXR1cm4gaDtjb25zdCB5PW5ldyBTZXQoZyksQz1uZXcgTWFwO2Z1bmN0aW9uIEkoWil7aWYoIVopcmV0dXJuIDE7bGV0IHVlPUMuZ2V0KFopO2lmKHVlKXJldHVybiB1ZTtjb25zdCBfZT1aLnBhcmVu''@;'; put 'put ''dE5vZGU7cmV0dXJuIHVlPWguaGFzKF9lKT9fZTp5LmhhcyhfZSk/MTpJKF9lKSxDLnNldChaLHVlKSx1ZX1yZXR1cm4gZy5mb3JFYWNoKFo9Pntjb25zdCB1ZT1JKFopOzEhPT11ZSYmaC5nZXQodWUpLnB1c2goWil9KSxofWZ1bmN0aW9uIElwKGQsZyl7dmFyIGg7bnVsbD09PShoPWQuY2xh''@;'; put 'put ''c3NMaXN0KXx8dm9pZCAwPT09aHx8aC5hZGQoZyl9ZnVuY3Rpb24gck8oZCxnKXt2YXIgaDtudWxsPT09KGg9ZC5jbGFzc0xpc3QpfHx2b2lkIDA9PT1ofHxoLnJlbW92ZShnKX1mdW5jdGlvbiBKRmUoZCxnLGgpe0F3KGgpLm9uRG9uZSgoKT0+ZC5wcm9jZXNzTGVhdmVOb2RlKGcpKX1mdW5j''@;'; put 'put ''dGlvbiBEd2UoZCxnKXtmb3IobGV0IGg9MDtoPGQubGVuZ3RoO2grKyl7Y29uc3Qgdj1kW2hdO3YgaW5zdGFuY2VvZiB6Nz9Ed2Uodi5wbGF5ZXJzLGcpOmcucHVzaCh2KX19ZnVuY3Rpb24gTHdlKGQsZyxoKXtjb25zdCB2PWguZ2V0KGQpO2lmKCF2KXJldHVybiExO2xldCB5PWcuZ2V0KGQp''@;'; put 'put ''O3JldHVybiB5P3YuZm9yRWFjaChDPT55LmFkZChDKSk6Zy5zZXQoZCx2KSxoLmRlbGV0ZShkKSwhMH1jbGFzcyBWcXtjb25zdHJ1Y3RvcihnLGgsdil7dGhpcy5ib2R5Tm9kZT1nLHRoaXMuX2RyaXZlcj1oLHRoaXMuX25vcm1hbGl6ZXI9dix0aGlzLl90cmlnZ2VyQ2FjaGU9e30sdGhpcy5v''@;'; put 'put ''blJlbW92YWxDb21wbGV0ZT0oeSxDKT0+e30sdGhpcy5fdHJhbnNpdGlvbkVuZ2luZT1uZXcgV0ZlKGcsaCx2KSx0aGlzLl90aW1lbGluZUVuZ2luZT1uZXcgRkZlKGcsaCx2KSx0aGlzLl90cmFuc2l0aW9uRW5naW5lLm9uUmVtb3ZhbENvbXBsZXRlPSh5LEMpPT50aGlzLm9uUmVtb3ZhbENv''@;'; put 'put ''bXBsZXRlKHksQyl9cmVnaXN0ZXJUcmlnZ2VyKGcsaCx2LHksQyl7Y29uc3QgST1nKyItIit5O2xldCBaPXRoaXMuX3RyaWdnZXJDYWNoZVtJXTtpZighWil7Y29uc3QgdWU9W10sQmU9U2hlKHRoaXMuX2RyaXZlcixDLHVlLFtdKTtpZih1ZS5sZW5ndGgpdGhyb3cgZnVuY3Rpb24gQlBlKGQs''@;'; put 'put ''Zyl7cmV0dXJuIG5ldyBlbigzNDA0LCExKX0oKTtaPWZ1bmN0aW9uIE9GZShkLGcsaCl7cmV0dXJuIG5ldyBSRmUoZCxnLGgpfSh5LEJlLHRoaXMuX25vcm1hbGl6ZXIpLHRoaXMuX3RyaWdnZXJDYWNoZVtJXT1afXRoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXJUcmlnZ2VyKGgseSxa''@;'; put 'put ''KX1yZWdpc3RlcihnLGgpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXIoZyxoKX1kZXN0cm95KGcsaCl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5kZXN0cm95KGcsaCl9b25JbnNlcnQoZyxoLHYseSl7dGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5pbnNlcnROb2RlKGcsaCx2LHkpfW9u''@;'; put 'put ''UmVtb3ZlKGcsaCx2LHkpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVtb3ZlTm9kZShnLGgseXx8ITEsdil9ZGlzYWJsZUFuaW1hdGlvbnMoZyxoKXt0aGlzLl90cmFuc2l0aW9uRW5naW5lLm1hcmtFbGVtZW50QXNEaXNhYmxlZChnLGgpfXByb2Nlc3MoZyxoLHYseSl7aWYoIkAiPT12LmNo''@;'; put 'put ''YXJBdCgwKSl7Y29uc3RbQyxJXT1pd2Uodik7dGhpcy5fdGltZWxpbmVFbmdpbmUuY29tbWFuZChDLGgsSSx5KX1lbHNlIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUudHJpZ2dlcihnLGgsdix5KX1saXN0ZW4oZyxoLHYseSxDKXtpZigiQCI9PXYuY2hhckF0KDApKXtjb25zdFtJLFpdPWl3ZSh2''@;'; put 'put ''KTtyZXR1cm4gdGhpcy5fdGltZWxpbmVFbmdpbmUubGlzdGVuKEksaCxaLEMpfXJldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLmxpc3RlbihnLGgsdix5LEMpfWZsdXNoKGc9LTEpe3RoaXMuX3RyYW5zaXRpb25FbmdpbmUuZmx1c2goZyl9Z2V0IHBsYXllcnMoKXtyZXR1cm4gdGhpcy5f''@;'; put 'put ''dHJhbnNpdGlvbkVuZ2luZS5wbGF5ZXJzLmNvbmNhdCh0aGlzLl90aW1lbGluZUVuZ2luZS5wbGF5ZXJzKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uRW5naW5lLndoZW5SZW5kZXJpbmdEb25lKCl9fWxldCBxRmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rv''@;'; put 'put ''cihoLHYseSl7dGhpcy5fZWxlbWVudD1oLHRoaXMuX3N0YXJ0U3R5bGVzPXYsdGhpcy5fZW5kU3R5bGVzPXksdGhpcy5fc3RhdGU9MDtsZXQgQz1kLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQuZ2V0KGgpO0N8fGQuaW5pdGlhbFN0eWxlc0J5RWxlbWVudC5zZXQoaCxDPW5ldyBNYXApLHRoaXMu''@;'; put 'put ''X2luaXRpYWxTdHlsZXM9Q31zdGFydCgpe3RoaXMuX3N0YXRlPDEmJih0aGlzLl9zdGFydFN0eWxlcyYmQ2codGhpcy5fZWxlbWVudCx0aGlzLl9zdGFydFN0eWxlcyx0aGlzLl9pbml0aWFsU3R5bGVzKSx0aGlzLl9zdGF0ZT0xKX1maW5pc2goKXt0aGlzLnN0YXJ0KCksdGhpcy5fc3RhdGU8''@;'; put 'put ''MiYmKENnKHRoaXMuX2VsZW1lbnQsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzJiYoQ2codGhpcy5fZWxlbWVudCx0aGlzLl9lbmRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSx0aGlzLl9zdGF0ZT0xKX1kZXN0cm95KCl7dGhpcy5maW5pc2goKSx0aGlzLl9zdGF0''@;'; put 'put ''ZTwzJiYoZC5pbml0aWFsU3R5bGVzQnlFbGVtZW50LmRlbGV0ZSh0aGlzLl9lbGVtZW50KSx0aGlzLl9zdGFydFN0eWxlcyYmKGtTKHRoaXMuX2VsZW1lbnQsdGhpcy5fc3RhcnRTdHlsZXMpLHRoaXMuX2VuZFN0eWxlcz1udWxsKSx0aGlzLl9lbmRTdHlsZXMmJihrUyh0aGlzLl9lbGVtZW50''@;'; put 'put ''LHRoaXMuX2VuZFN0eWxlcyksdGhpcy5fZW5kU3R5bGVzPW51bGwpLENnKHRoaXMuX2VsZW1lbnQsdGhpcy5faW5pdGlhbFN0eWxlcyksdGhpcy5fc3RhdGU9Myl9fXJldHVybiBkLmluaXRpYWxTdHlsZXNCeUVsZW1lbnQ9bmV3IFdlYWtNYXAsZH0pKCk7ZnVuY3Rpb24gUGhlKGQpe2xldCBn''@;'; put 'put ''PW51bGw7cmV0dXJuIGQuZm9yRWFjaCgoaCx2KT0+eyhmdW5jdGlvbiBlSGUoZCl7cmV0dXJuImRpc3BsYXkiPT09ZHx8InBvc2l0aW9uIj09PWR9KSh2KSYmKGc9Z3x8bmV3IE1hcCxnLnNldCh2LGgpKX0pLGd9Y2xhc3MgT3dle2NvbnN0cnVjdG9yKGcsaCx2LHkpe3RoaXMuZWxlbWVudD1n''@;'; put 'put ''LHRoaXMua2V5ZnJhbWVzPWgsdGhpcy5vcHRpb25zPXYsdGhpcy5fc3BlY2lhbFN0eWxlcz15LHRoaXMuX29uRG9uZUZucz1bXSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX29uRGVzdHJveUZucz1bXSx0aGlzLl9pbml0aWFsaXplZD0hMSx0aGlzLl9maW5pc2hlZD0hMSx0aGlzLl9zdGFy''@;'; put 'put ''dGVkPSExLHRoaXMuX2Rlc3Ryb3llZD0hMSx0aGlzLl9vcmlnaW5hbE9uRG9uZUZucz1bXSx0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnM9W10sdGhpcy50aW1lPTAsdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLmN1cnJlbnRTbmFwc2hvdD1uZXcgTWFwLHRoaXMuX2R1cmF0aW9uPXYuZHVy''@;'; put 'put ''YXRpb24sdGhpcy5fZGVsYXk9di5kZWxheXx8MCx0aGlzLnRpbWU9dGhpcy5fZHVyYXRpb24rdGhpcy5fZGVsYXl9X29uRmluaXNoKCl7dGhpcy5fZmluaXNoZWR8fCh0aGlzLl9maW5pc2hlZD0hMCx0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRG9uZUZucz1bXSl9''@;'; put 'put ''aW5pdCgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhpcy5fcHJlcGFyZVBsYXllckJlZm9yZVN0YXJ0KCl9X2J1aWxkUGxheWVyKCl7aWYodGhpcy5faW5pdGlhbGl6ZWQpcmV0dXJuO3RoaXMuX2luaXRpYWxpemVkPSEwO2NvbnN0IGc9dGhpcy5rZXlmcmFtZXM7dGhpcy5kb21QbGF5ZXI9dGhp''@;'; put 'put ''cy5fdHJpZ2dlcldlYkFuaW1hdGlvbih0aGlzLmVsZW1lbnQsZyx0aGlzLm9wdGlvbnMpLHRoaXMuX2ZpbmFsS2V5ZnJhbWU9Zy5sZW5ndGg/Z1tnLmxlbmd0aC0xXTpuZXcgTWFwLHRoaXMuZG9tUGxheWVyLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaCIsKCk9PnRoaXMuX29uRmluaXNoKCkp''@;'; put 'put ''fV9wcmVwYXJlUGxheWVyQmVmb3JlU3RhcnQoKXt0aGlzLl9kZWxheT90aGlzLl9yZXNldERvbVBsYXllclN0YXRlKCk6dGhpcy5kb21QbGF5ZXIucGF1c2UoKX1fY29udmVydEtleWZyYW1lc1RvT2JqZWN0KGcpe2NvbnN0IGg9W107cmV0dXJuIGcuZm9yRWFjaCh2PT57aC5wdXNoKE9iamVj''@;'; put 'put ''dC5mcm9tRW50cmllcyh2KSl9KSxofV90cmlnZ2VyV2ViQW5pbWF0aW9uKGcsaCx2KXtyZXR1cm4gZy5hbmltYXRlKHRoaXMuX2NvbnZlcnRLZXlmcmFtZXNUb09iamVjdChoKSx2KX1vblN0YXJ0KGcpe3RoaXMuX29yaWdpbmFsT25TdGFydEZucy5wdXNoKGcpLHRoaXMuX29uU3RhcnRGbnMu''@;'; put 'put ''cHVzaChnKX1vbkRvbmUoZyl7dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnMucHVzaChnKSx0aGlzLl9vbkRvbmVGbnMucHVzaChnKX1vbkRlc3Ryb3koZyl7dGhpcy5fb25EZXN0cm95Rm5zLnB1c2goZyl9cGxheSgpe3RoaXMuX2J1aWxkUGxheWVyKCksdGhpcy5oYXNTdGFydGVkKCl8fCh0aGlz''@;'; put 'put ''Ll9vblN0YXJ0Rm5zLmZvckVhY2goZz0+ZygpKSx0aGlzLl9vblN0YXJ0Rm5zPVtdLHRoaXMuX3N0YXJ0ZWQ9ITAsdGhpcy5fc3BlY2lhbFN0eWxlcyYmdGhpcy5fc3BlY2lhbFN0eWxlcy5zdGFydCgpKSx0aGlzLmRvbVBsYXllci5wbGF5KCl9cGF1c2UoKXt0aGlzLmluaXQoKSx0aGlzLmRv''@;'; put 'put ''bVBsYXllci5wYXVzZSgpfWZpbmlzaCgpe3RoaXMuaW5pdCgpLHRoaXMuX3NwZWNpYWxTdHlsZXMmJnRoaXMuX3NwZWNpYWxTdHlsZXMuZmluaXNoKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLmRvbVBsYXllci5maW5pc2goKX1yZXNldCgpe3RoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKSx0''@;'; put 'put ''aGlzLl9kZXN0cm95ZWQ9ITEsdGhpcy5fZmluaXNoZWQ9ITEsdGhpcy5fc3RhcnRlZD0hMSx0aGlzLl9vblN0YXJ0Rm5zPXRoaXMuX29yaWdpbmFsT25TdGFydEZucyx0aGlzLl9vbkRvbmVGbnM9dGhpcy5fb3JpZ2luYWxPbkRvbmVGbnN9X3Jlc2V0RG9tUGxheWVyU3RhdGUoKXt0aGlzLmRv''@;'; put 'put ''bVBsYXllciYmdGhpcy5kb21QbGF5ZXIuY2FuY2VsKCl9cmVzdGFydCgpe3RoaXMucmVzZXQoKSx0aGlzLnBsYXkoKX1oYXNTdGFydGVkKCl7cmV0dXJuIHRoaXMuX3N0YXJ0ZWR9ZGVzdHJveSgpe3RoaXMuX2Rlc3Ryb3llZHx8KHRoaXMuX2Rlc3Ryb3llZD0hMCx0aGlzLl9yZXNldERvbVBs''@;'; put 'put ''YXllclN0YXRlKCksdGhpcy5fb25GaW5pc2goKSx0aGlzLl9zcGVjaWFsU3R5bGVzJiZ0aGlzLl9zcGVjaWFsU3R5bGVzLmRlc3Ryb3koKSx0aGlzLl9vbkRlc3Ryb3lGbnMuZm9yRWFjaChnPT5nKCkpLHRoaXMuX29uRGVzdHJveUZucz1bXSl9c2V0UG9zaXRpb24oZyl7dm9pZCAwPT09dGhp''@;'; put 'put ''cy5kb21QbGF5ZXImJnRoaXMuaW5pdCgpLHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lPWcqdGhpcy50aW1lfWdldFBvc2l0aW9uKCl7cmV0dXJuIHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lL3RoaXMudGltZX1nZXQgdG90YWxUaW1lKCl7cmV0dXJuIHRoaXMuX2RlbGF5K3RoaXMuX2R1''@;'; put 'put ''cmF0aW9ufWJlZm9yZURlc3Ryb3koKXtjb25zdCBnPW5ldyBNYXA7dGhpcy5oYXNTdGFydGVkKCkmJnRoaXMuX2ZpbmFsS2V5ZnJhbWUuZm9yRWFjaCgodix5KT0+eyJvZmZzZXQiIT09eSYmZy5zZXQoeSx0aGlzLl9maW5pc2hlZD92OkF3ZSh0aGlzLmVsZW1lbnQseSkpfSksdGhpcy5jdXJy''@;'; put 'put ''ZW50U25hcHNob3Q9Z310cmlnZ2VyQ2FsbGJhY2soZyl7Y29uc3QgaD0ic3RhcnQiPT09Zz90aGlzLl9vblN0YXJ0Rm5zOnRoaXMuX29uRG9uZUZucztoLmZvckVhY2godj0+digpKSxoLmxlbmd0aD0wfX1jbGFzcyB0SGV7dmFsaWRhdGVTdHlsZVByb3BlcnR5KGcpe3JldHVybiEwfXZhbGlk''@;'; put 'put ''YXRlQW5pbWF0YWJsZVN0eWxlUHJvcGVydHkoZyl7cmV0dXJuITB9bWF0Y2hlc0VsZW1lbnQoZyxoKXtyZXR1cm4hMX1jb250YWluc0VsZW1lbnQoZyxoKXtyZXR1cm4gc3dlKGcsaCl9Z2V0UGFyZW50RWxlbWVudChnKXtyZXR1cm4gQWhlKGcpfXF1ZXJ5KGcsaCx2KXtyZXR1cm4gdXdlKGcs''@;'; put 'put ''aCx2KX1jb21wdXRlU3R5bGUoZyxoLHYpe3JldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShnKVtoXX1hbmltYXRlKGcsaCx2LHksQyxJPVtdKXtjb25zdCB1ZT17ZHVyYXRpb246dixkZWxheTp5LGZpbGw6MD09eT8iYm90aCI6ImZvcndhcmRzIn07QyYmKHVlLmVhc2luZz1DKTtjb25z''@;'; put 'put ''dCBfZT1uZXcgTWFwLEJlPUkuZmlsdGVyKHB0PT5wdCBpbnN0YW5jZW9mIE93ZSk7KGZ1bmN0aW9uIG9GZShkLGcpe3JldHVybiAwPT09ZHx8MD09PWd9KSh2LHkpJiZCZS5mb3JFYWNoKHB0PT57cHQuY3VycmVudFNuYXBzaG90LmZvckVhY2goKE90LCR0KT0+X2Uuc2V0KCR0LE90KSl9KTts''@;'; put 'put ''ZXQgTmU9ZnVuY3Rpb24gdEZlKGQpe3JldHVybiBkLmxlbmd0aD9kWzBdaW5zdGFuY2VvZiBNYXA/ZDpkLm1hcChnPT5kd2UoZykpOltdfShoKS5tYXAocHQ9Pnd3KHB0KSk7TmU9ZnVuY3Rpb24gYUZlKGQsZyxoKXtpZihoLnNpemUmJmcubGVuZ3RoKXtsZXQgdj1nWzBdLHk9W107aWYoaC5m''@;'; put 'put ''b3JFYWNoKChDLEkpPT57di5oYXMoSSl8fHkucHVzaChJKSx2LnNldChJLEMpfSkseS5sZW5ndGgpZm9yKGxldCBDPTE7QzxnLmxlbmd0aDtDKyspe2xldCBJPWdbQ107eS5mb3JFYWNoKFo9Pkkuc2V0KFosQXdlKGQsWikpKX19cmV0dXJuIGd9KGcsTmUsX2UpO2NvbnN0IEtlPWZ1bmN0aW9u''@;'; put 'put ''ICRGZShkLGcpe2xldCBoPW51bGwsdj1udWxsO3JldHVybiBBcnJheS5pc0FycmF5KGcpJiZnLmxlbmd0aD8oaD1QaGUoZ1swXSksZy5sZW5ndGg+MSYmKHY9UGhlKGdbZy5sZW5ndGgtMV0pKSk6ZyBpbnN0YW5jZW9mIE1hcCYmKGg9UGhlKGcpKSxofHx2P25ldyBxRmUoZCxoLHYpOm51bGx9''@;'; put 'put ''KGcsTmUpO3JldHVybiBuZXcgT3dlKGcsTmUsdWUsS2UpfX1sZXQgbkhlPSgoKT0+e2NsYXNzIGQgZXh0ZW5kcyBTWHtjb25zdHJ1Y3RvcihoLHYpe3N1cGVyKCksdGhpcy5fbmV4dEFuaW1hdGlvbklkPTAsdGhpcy5fcmVuZGVyZXI9aC5jcmVhdGVSZW5kZXJlcih2LmJvZHkse2lkOiIwIixl''@;'; put 'put ''bmNhcHN1bGF0aW9uOngyLk5vbmUsc3R5bGVzOltdLGRhdGE6e2FuaW1hdGlvbjpbXX19KX1idWlsZChoKXtjb25zdCB2PXRoaXMuX25leHRBbmltYXRpb25JZC50b1N0cmluZygpO3RoaXMuX25leHRBbmltYXRpb25JZCsrO2NvbnN0IHk9QXJyYXkuaXNBcnJheShoKT9UayhoKTpoO3JldHVy''@;'; put 'put ''biBSd2UodGhpcy5fcmVuZGVyZXIsbnVsbCx2LCJyZWdpc3RlciIsW3ldKSxuZXcgckhlKHYsdGhpcy5fcmVuZGVyZXIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShNZCksQ2koZ3MpKX0sZC5cdTAyNzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rv''@;'; put 'put ''cnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTtjbGFzcyBySGUgZXh0ZW5kcyBjbGFzcyBvMmV7fXtjb25zdHJ1Y3RvcihnLGgpe3N1cGVyKCksdGhpcy5faWQ9Zyx0aGlzLl9yZW5kZXJlcj1ofWNyZWF0ZShnLGgpe3JldHVybiBuZXcgaUhlKHRoaXMuX2lkLGcsaHx8e30sdGhpcy5fcmVuZGVyZXIp''@;'; put 'put ''fX1jbGFzcyBpSGV7Y29uc3RydWN0b3IoZyxoLHYseSl7dGhpcy5pZD1nLHRoaXMuZWxlbWVudD1oLHRoaXMuX3JlbmRlcmVyPXksdGhpcy5wYXJlbnRQbGF5ZXI9bnVsbCx0aGlzLl9zdGFydGVkPSExLHRoaXMudG90YWxUaW1lPTAsdGhpcy5fY29tbWFuZCgiY3JlYXRlIix2KX1fbGlzdGVu''@;'; put 'put ''KGcsaCl7cmV0dXJuIHRoaXMuX3JlbmRlcmVyLmxpc3Rlbih0aGlzLmVsZW1lbnQsYEBAJHt0aGlzLmlkfToke2d9YCxoKX1fY29tbWFuZChnLC4uLmgpe3JldHVybiBSd2UodGhpcy5fcmVuZGVyZXIsdGhpcy5lbGVtZW50LHRoaXMuaWQsZyxoKX1vbkRvbmUoZyl7dGhpcy5fbGlzdGVuKCJk''@;'; put 'put ''b25lIixnKX1vblN0YXJ0KGcpe3RoaXMuX2xpc3Rlbigic3RhcnQiLGcpfW9uRGVzdHJveShnKXt0aGlzLl9saXN0ZW4oImRlc3Ryb3kiLGcpfWluaXQoKXt0aGlzLl9jb21tYW5kKCJpbml0Iil9aGFzU3RhcnRlZCgpe3JldHVybiB0aGlzLl9zdGFydGVkfXBsYXkoKXt0aGlzLl9jb21tYW5k''@;'; put 'put ''KCJwbGF5IiksdGhpcy5fc3RhcnRlZD0hMH1wYXVzZSgpe3RoaXMuX2NvbW1hbmQoInBhdXNlIil9cmVzdGFydCgpe3RoaXMuX2NvbW1hbmQoInJlc3RhcnQiKX1maW5pc2goKXt0aGlzLl9jb21tYW5kKCJmaW5pc2giKX1kZXN0cm95KCl7dGhpcy5fY29tbWFuZCgiZGVzdHJveSIpfXJlc2V0''@;'; put 'put ''KCl7dGhpcy5fY29tbWFuZCgicmVzZXQiKSx0aGlzLl9zdGFydGVkPSExfXNldFBvc2l0aW9uKGcpe3RoaXMuX2NvbW1hbmQoInNldFBvc2l0aW9uIixnKX1nZXRQb3NpdGlvbigpe3ZhciBnLGg7cmV0dXJuIG51bGwhPT0oaD1udWxsPT09KGc9dGhpcy5fcmVuZGVyZXIuZW5naW5lLnBsYXll''@;'; put 'put ''cnNbK3RoaXMuaWRdKXx8dm9pZCAwPT09Zz92b2lkIDA6Zy5nZXRQb3NpdGlvbigpKSYmdm9pZCAwIT09aD9oOjB9fWZ1bmN0aW9uIFJ3ZShkLGcsaCx2LHkpe3JldHVybiBkLnNldFByb3BlcnR5KGcsYEBAJHtofToke3Z9YCx5KX1jb25zdCBCd2U9IkAuZGlzYWJsZWQiO2xldCBvSGU9KCgp''@;'; put 'put ''PT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5kZWxlZ2F0ZT1oLHRoaXMuZW5naW5lPXYsdGhpcy5fem9uZT15LHRoaXMuX2N1cnJlbnRJZD0wLHRoaXMuX21pY3JvdGFza0lkPTEsdGhpcy5fYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyPVtdLHRoaXMuX3JlbmRlcmVyQ2FjaGU9''@;'; put 'put ''bmV3IE1hcCx0aGlzLl9jZFJlY3VyRGVwdGg9MCx0aGlzLnByb21pc2U9UHJvbWlzZS5yZXNvbHZlKDApLHYub25SZW1vdmFsQ29tcGxldGU9KEMsSSk9Pntjb25zdCBaPW51bGw9PUk/dm9pZCAwOkkucGFyZW50Tm9kZShDKTtaJiZJLnJlbW92ZUNoaWxkKFosQyl9fWNyZWF0ZVJlbmRlcmVy''@;'; put 'put ''KGgsdil7Y29uc3QgQz10aGlzLmRlbGVnYXRlLmNyZWF0ZVJlbmRlcmVyKGgsdik7aWYoIShoJiZ2JiZ2LmRhdGEmJnYuZGF0YS5hbmltYXRpb24pKXtsZXQgQmU9dGhpcy5fcmVuZGVyZXJDYWNoZS5nZXQoQyk7cmV0dXJuIEJlfHwoQmU9bmV3IFB3ZSgiIixDLHRoaXMuZW5naW5lKSx0aGlz''@;'; put 'put ''Ll9yZW5kZXJlckNhY2hlLnNldChDLEJlKSksQmV9Y29uc3QgST12LmlkLFo9di5pZCsiLSIrdGhpcy5fY3VycmVudElkO3RoaXMuX2N1cnJlbnRJZCsrLHRoaXMuZW5naW5lLnJlZ2lzdGVyKFosaCk7Y29uc3QgdWU9QmU9PntBcnJheS5pc0FycmF5KEJlKT9CZS5mb3JFYWNoKHVlKTp0aGlz''@;'; put 'put ''LmVuZ2luZS5yZWdpc3RlclRyaWdnZXIoSSxaLGgsQmUubmFtZSxCZSl9O3JldHVybiB2LmRhdGEuYW5pbWF0aW9uLmZvckVhY2godWUpLG5ldyBhSGUodGhpcyxaLEMsdGhpcy5lbmdpbmUpfWJlZ2luKCl7dGhpcy5fY2RSZWN1ckRlcHRoKyssdGhpcy5kZWxlZ2F0ZS5iZWdpbiYmdGhpcy5k''@;'; put 'put ''ZWxlZ2F0ZS5iZWdpbigpfV9zY2hlZHVsZUNvdW50VGFzaygpe3RoaXMucHJvbWlzZS50aGVuKCgpPT57dGhpcy5fbWljcm90YXNrSWQrK30pfXNjaGVkdWxlTGlzdGVuZXJDYWxsYmFjayhoLHYseSl7aD49MCYmaDx0aGlzLl9taWNyb3Rhc2tJZD90aGlzLl96b25lLnJ1bigoKT0+dih5KSk6''@;'; put 'put ''KDA9PXRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlci5sZW5ndGgmJlByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKCgpPT57dGhpcy5fem9uZS5ydW4oKCk9Pnt0aGlzLl9hbmltYXRpb25DYWxsYmFja3NCdWZmZXIuZm9yRWFjaChDPT57Y29uc3RbSSxaXT1DO0koWil9KSx0aGlzLl9h''@;'; put 'put ''bmltYXRpb25DYWxsYmFja3NCdWZmZXI9W119KX0pLHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlci5wdXNoKFt2LHldKSl9ZW5kKCl7dGhpcy5fY2RSZWN1ckRlcHRoLS0sMD09dGhpcy5fY2RSZWN1ckRlcHRoJiZ0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpPT57dGhpcy5f''@;'; put 'put ''c2NoZWR1bGVDb3VudFRhc2soKSx0aGlzLmVuZ2luZS5mbHVzaCh0aGlzLl9taWNyb3Rhc2tJZCl9KSx0aGlzLmRlbGVnYXRlLmVuZCYmdGhpcy5kZWxlZ2F0ZS5lbmQoKX13aGVuUmVuZGVyaW5nRG9uZSgpe3JldHVybiB0aGlzLmVuZ2luZS53aGVuUmVuZGVyaW5nRG9uZSgpfX1yZXR1cm4g''@;'; put 'put ''ZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShNZCksQ2koVnEpLENpKF9sKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y2xhc3MgUHdle2NvbnN0cnVjdG9yKGcsaCx2KXt0aGlzLm5hbWVzcGFjZUlkPWcs''@;'; put 'put ''dGhpcy5kZWxlZ2F0ZT1oLHRoaXMuZW5naW5lPXYsdGhpcy5kZXN0cm95Tm9kZT10aGlzLmRlbGVnYXRlLmRlc3Ryb3lOb2RlP3k9PmguZGVzdHJveU5vZGUoeSk6bnVsbH1nZXQgZGF0YSgpe3JldHVybiB0aGlzLmRlbGVnYXRlLmRhdGF9ZGVzdHJveSgpe3RoaXMuZW5naW5lLmRlc3Ryb3ko''@;'; put 'put ''dGhpcy5uYW1lc3BhY2VJZCx0aGlzLmRlbGVnYXRlKSx0aGlzLmRlbGVnYXRlLmRlc3Ryb3koKX1jcmVhdGVFbGVtZW50KGcsaCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlRWxlbWVudChnLGgpfWNyZWF0ZUNvbW1lbnQoZyl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuY3JlYXRlQ29tbWVu''@;'; put 'put ''dChnKX1jcmVhdGVUZXh0KGcpe3JldHVybiB0aGlzLmRlbGVnYXRlLmNyZWF0ZVRleHQoZyl9YXBwZW5kQ2hpbGQoZyxoKXt0aGlzLmRlbGVnYXRlLmFwcGVuZENoaWxkKGcsaCksdGhpcy5lbmdpbmUub25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxoLGcsITEpfWluc2VydEJlZm9yZShnLGgs''@;'; put 'put ''dix5PSEwKXt0aGlzLmRlbGVnYXRlLmluc2VydEJlZm9yZShnLGgsdiksdGhpcy5lbmdpbmUub25JbnNlcnQodGhpcy5uYW1lc3BhY2VJZCxoLGcseSl9cmVtb3ZlQ2hpbGQoZyxoLHYpe3RoaXMuZW5naW5lLm9uUmVtb3ZlKHRoaXMubmFtZXNwYWNlSWQsaCx0aGlzLmRlbGVnYXRlLHYpfXNl''@;'; put 'put ''bGVjdFJvb3RFbGVtZW50KGcsaCl7cmV0dXJuIHRoaXMuZGVsZWdhdGUuc2VsZWN0Um9vdEVsZW1lbnQoZyxoKX1wYXJlbnROb2RlKGcpe3JldHVybiB0aGlzLmRlbGVnYXRlLnBhcmVudE5vZGUoZyl9bmV4dFNpYmxpbmcoZyl7cmV0dXJuIHRoaXMuZGVsZWdhdGUubmV4dFNpYmxpbmcoZyl9''@;'; put 'put ''c2V0QXR0cmlidXRlKGcsaCx2LHkpe3RoaXMuZGVsZWdhdGUuc2V0QXR0cmlidXRlKGcsaCx2LHkpfXJlbW92ZUF0dHJpYnV0ZShnLGgsdil7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVBdHRyaWJ1dGUoZyxoLHYpfWFkZENsYXNzKGcsaCl7dGhpcy5kZWxlZ2F0ZS5hZGRDbGFzcyhnLGgpfXJlbW92''@;'; put 'put ''ZUNsYXNzKGcsaCl7dGhpcy5kZWxlZ2F0ZS5yZW1vdmVDbGFzcyhnLGgpfXNldFN0eWxlKGcsaCx2LHkpe3RoaXMuZGVsZWdhdGUuc2V0U3R5bGUoZyxoLHYseSl9cmVtb3ZlU3R5bGUoZyxoLHYpe3RoaXMuZGVsZWdhdGUucmVtb3ZlU3R5bGUoZyxoLHYpfXNldFByb3BlcnR5KGcsaCx2KXsi''@;'; put 'put ''QCI9PWguY2hhckF0KDApJiZoPT1Cd2U/dGhpcy5kaXNhYmxlQW5pbWF0aW9ucyhnLCEhdik6dGhpcy5kZWxlZ2F0ZS5zZXRQcm9wZXJ0eShnLGgsdil9c2V0VmFsdWUoZyxoKXt0aGlzLmRlbGVnYXRlLnNldFZhbHVlKGcsaCl9bGlzdGVuKGcsaCx2KXtyZXR1cm4gdGhpcy5kZWxlZ2F0ZS5s''@;'; put 'put ''aXN0ZW4oZyxoLHYpfWRpc2FibGVBbmltYXRpb25zKGcsaCl7dGhpcy5lbmdpbmUuZGlzYWJsZUFuaW1hdGlvbnMoZyxoKX19Y2xhc3MgYUhlIGV4dGVuZHMgUHdle2NvbnN0cnVjdG9yKGcsaCx2LHkpe3N1cGVyKGgsdix5KSx0aGlzLmZhY3Rvcnk9Zyx0aGlzLm5hbWVzcGFjZUlkPWh9c2V0''@;'; put 'put ''UHJvcGVydHkoZyxoLHYpeyJAIj09aC5jaGFyQXQoMCk/Ii4iPT1oLmNoYXJBdCgxKSYmaD09QndlP3RoaXMuZGlzYWJsZUFuaW1hdGlvbnMoZyx2PXZvaWQgMD09PXZ8fCEhdik6dGhpcy5lbmdpbmUucHJvY2Vzcyh0aGlzLm5hbWVzcGFjZUlkLGcsaC5zbGljZSgxKSx2KTp0aGlzLmRlbGVn''@;'; put 'put ''YXRlLnNldFByb3BlcnR5KGcsaCx2KX1saXN0ZW4oZyxoLHYpe2lmKCJAIj09aC5jaGFyQXQoMCkpe2NvbnN0IHk9ZnVuY3Rpb24gbEhlKGQpe3N3aXRjaChkKXtjYXNlImJvZHkiOnJldHVybiBkb2N1bWVudC5ib2R5O2Nhc2UiZG9jdW1lbnQiOnJldHVybiBkb2N1bWVudDtjYXNlIndpbmRv''@;'; put 'put ''dyI6cmV0dXJuIHdpbmRvdztkZWZhdWx0OnJldHVybiBkfX0oZyk7bGV0IEM9aC5zbGljZSgxKSxJPSIiO3JldHVybiJAIiE9Qy5jaGFyQXQoMCkmJihbQyxJXT1mdW5jdGlvbiBzSGUoZCl7Y29uc3QgZz1kLmluZGV4T2YoIi4iKTtyZXR1cm5bZC5zdWJzdHJpbmcoMCxnKSxkLnNsaWNlKGcr''@;'; put 'put ''MSldfShDKSksdGhpcy5lbmdpbmUubGlzdGVuKHRoaXMubmFtZXNwYWNlSWQseSxDLEksWj0+e3RoaXMuZmFjdG9yeS5zY2hlZHVsZUxpc3RlbmVyQ2FsbGJhY2soWi5fZGF0YXx8LTEsdixaKX0pfXJldHVybiB0aGlzLmRlbGVnYXRlLmxpc3RlbihnLGgsdil9fWxldCB1SGU9KCgpPT57Y2xh''@;'; put 'put ''c3MgZCBleHRlbmRzIFZxe2NvbnN0cnVjdG9yKGgsdix5LEMpe3N1cGVyKGguYm9keSx2LHkpfW5nT25EZXN0cm95KCl7dGhpcy5mbHVzaCgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShncyksQ2koeWhlKSxDaShJaGUpLENpKGtDKSl9LGQu''@;'; put 'put ''XHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7Y29uc3QgRndlPVt7cHJvdmlkZTpTWCx1c2VDbGFzczpuSGV9LHtwcm92aWRlOkloZSx1c2VGYWN0b3J5OmZ1bmN0aW9uIGNIZSgpe3JldHVybiBuZXcgVEZlfX0se3Byb3ZpZGU6VnEsdXNlQ2xhc3M6''@;'; put 'put ''dUhlfSx7cHJvdmlkZTpNZCx1c2VGYWN0b3J5OmZ1bmN0aW9uIGZIZShkLGcsaCl7cmV0dXJuIG5ldyBvSGUoZCxnLGgpfSxkZXBzOltLVCxWcSxfbF19XSxGaGU9W3twcm92aWRlOnloZSx1c2VGYWN0b3J5OigpPT5uZXcgdEhlfSx7cHJvdmlkZTpJRyx1c2VWYWx1ZToiQnJvd3NlckFuaW1h''@;'; put 'put ''dGlvbnMifSwuLi5Gd2VdLEh3ZT1be3Byb3ZpZGU6eWhlLHVzZUNsYXNzOmN3ZX0se3Byb3ZpZGU6SUcsdXNlVmFsdWU6Ik5vb3BBbmltYXRpb25zIn0sLi4uRndlXTtsZXQgaEhlPSgoKT0+e2NsYXNzIGR7c3RhdGljIHdpdGhDb25maWcoaCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJz''@;'; put 'put ''OmguZGlzYWJsZUFuaW1hdGlvbnM/SHdlOkZoZX19fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe3Byb3ZpZGVyczpGaGUsaW1wb3J0czpbJFddfSksZH0pKCksZEhlPSgoKT0+''@;'; put 'put ''e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLm9wZW49ITF9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJuZy1jb21wb25lbnQiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRh''@;'; put 'put ''aW5lciJdLGRlY2xzOjMsdmFyczowLGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImRpdiIsMCkoMSwicCIpLFl0KDIsIlRoaXMgaXMgYSBwYWdlIHRvIGhlbHAgZGVtb25zdHJhdGUgcm91dGluZy4iKSxvdCgpKCkpfX0pLGR9''@;'; put 'put ''KSgpO2NvbnN0IHBIZT1bInNpZGViYXJOYXYiXTtmdW5jdGlvbiBnSGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJhIiwxOCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDMpLm5hdmlnYXRlVG9WaWV3ZXIoKSl9KSxZdCgxLCJEYXRhIiksb3QoKX19''@;'; put 'put ''ZnVuY3Rpb24gbUhlKGQsZyl7MSZkJiYobnQoMCwiYSIsMTkpLFl0KDEsIkxpbmVhZ2UiKSxvdCgpKX1mdW5jdGlvbiB2SGUoZCxnKXsxJmQmJihudCgwLCJhIiwyMCksWXQoMSwiTWV0YWRhdGEiKSxvdCgpKX1mdW5jdGlvbiBBSGUoZCxnKXsxJmQmJihudCgwLCJhIiwyMSksWXQoMSwiIFVz''@;'; put 'put ''ZXJzIiksb3QoKSl9ZnVuY3Rpb24geUhlKGQsZyl7MSZkJiYobnQoMCwiYSIsMjIpLFl0KDEsIlN1Ym1pdHRlZCIpLG90KCkpfWZ1bmN0aW9uIHdIZShkLGcpezEmZCYmKG50KDAsImEiLDIzKSxZdCgxLCJUbyBBcHByb3ZlIiksb3QoKSl9ZnVuY3Rpb24gYkhlKGQsZyl7aWYoMSZkJiYobnQo''@;'; put 'put ''MCwiY2xyLWRyb3Bkb3duLW1lbnUiKSxybigxLGdIZSwyLDAsImEiLDEyKSxybigyLG1IZSwyLDAsImEiLDEzKSxybigzLHZIZSwyLDAsImEiLDE0KSxybig0LEFIZSwyLDAsImEiLDE1KSxybig1LHlIZSwyLDAsImEiLDE2KSxybig2LHdIZSwyLDAsImEiLDE3KSxvdCgpKSwyJmQpe2NvbnN0''@;'; put 'put ''IGg9UXQoMik7dXQoMSksVHQoIm5nSWYiLGguaXNNYWluUm91dGUoInZpZXciKSksdXQoMSksVHQoIm5nSWYiLGguaXNNYWluUm91dGUoInZpZXciKSYmIlNBUzkiPT09aC5zZXJ2ZXJUeXBlKSx1dCgxKSxUdCgibmdJZiIsaC5pc01haW5Sb3V0ZSgidmlldyIpJiYiU0FTOSI9PT1oLnNlcnZl''@;'; put 'put ''clR5cGUpLHV0KDEpLFR0KCJuZ0lmIixoLmlzTWFpblJvdXRlKCJ2aWV3IikpLHV0KDEpLFR0KCJuZ0lmIixoLmlzTWFpblJvdXRlKCJhcHByb3ZlIikpLHV0KDEpLFR0KCJuZ0lmIixoLmlzTWFpblJvdXRlKCJhcHByb3ZlIikpfX1mdW5jdGlvbiBfSGUoZCxnKXtpZigxJmQmJihudCgwLCJk''@;'; put 'put ''aXYiLDgpKDEsImNsci1kcm9wZG93biIpKDIsImJ1dHRvbiIsOSksWXQoMyksQ3IoNCwiY2xyLWljb24iLDEwKSxvdCgpLHJuKDUsYkhlLDcsNiwiY2xyLWRyb3Bkb3duLW1lbnUiLDExKSxvdCgpKCkpLDImZCl7Y29uc3QgaD1RdCgpO3V0KDMpLEppKCIgIixoLmdldFN1YlBhZ2UoKSwiICIp''@;'; put 'put ''fX1mdW5jdGlvbiBDSGUoZCxnKXsxJmQmJkNyKDAsImNsci10YWItY29udGVudCIpfWZ1bmN0aW9uIGtIZShkLGcpezEmZCYmQ3IoMCwiY2xyLXRhYi1jb250ZW50Iil9Y29uc3QgU0hlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvdmlldy91c2VybmF2L3JvbGVzIl19O2Z1bmN0aW9uIE1IZShkLGcp''@;'; put 'put ''e2lmKDEmZCYmKG50KDAsImNsci10YWIiKSgxLCJidXR0b24iLDI1KSgyLCJwIiwyNiksQ3IoMywiY2xyLWljb24iLDMxKSxZdCg0LCIgUm9sZXMgIiksb3QoKSgpLHJuKDUsa0hlLDEsMCwiY2xyLXRhYi1jb250ZW50IiwyOSksb3QoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDEpLFR0KCJy''@;'; put 'put ''b3V0ZXJMaW5rIixjcygyLFNIZSkpLHV0KDQpLFR0KCJjbHJJZkFjdGl2ZSIsaC5pc01haW5Sb3V0ZSgiL3ZpZXcvdXNlcm5hdi9yb2xlcyIpKX19Y29uc3QgRUhlPWZ1bmN0aW9uKCl7cmV0dXJuWyIvdmlldy91c2VybmF2L3VzZXJzIl19LHhIZT1mdW5jdGlvbigpe3JldHVyblsiL3ZpZXcv''@;'; put 'put ''dXNlcm5hdi9ncm91cHMiXX07ZnVuY3Rpb24gVEhlKGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLXRhYnMiLDI0KSgxLCJjbHItdGFiIikoMiwiYnV0dG9uIiwyNSkoMywicCIsMjYpLENyKDQsImNsci1pY29uIiwyNyksWXQoNSwiIFVzZXJzIiksb3QoKSgpLENyKDYsImNsci10YWItY29udGVu''@;'; put 'put ''dCIpLG90KCksbnQoNywiY2xyLXRhYiIpKDgsImJ1dHRvbiIsMjUpKDksInAiLDI2KSxDcigxMCwiY2xyLWljb24iLDI4KSxZdCgxMSwiIEdyb3VwcyIpLG90KCkoKSxybigxMixDSGUsMSwwLCJjbHItdGFiLWNvbnRlbnQiLDI5KSxvdCgpLHJuKDEzLE1IZSw2LDMsImNsci10YWIiLDMwKSxv''@;'; put 'put ''dCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgyKSxUdCgicm91dGVyTGluayIsY3MoNCxFSGUpKSx1dCg2KSxUdCgicm91dGVyTGluayIsY3MoNSx4SGUpKSx1dCg0KSxUdCgiY2xySWZBY3RpdmUiLGguaXNNYWluUm91dGUoIi92aWV3L3VzZXJuYXYvZ3JvdXBzIikpLHV0KDEpLFR0KCJuZ0lm''@;'; put 'put ''IiwiU0FTOSI9PT1oLnNlcnZlclR5cGUpfX1mdW5jdGlvbiBJSGUoZCxnKXsxJmQmJihudCgwLCJwIiwzMiksWXQoMSwiRWRpdCIpLG90KCkpfWNvbnN0IERIZT1bIioiXTtsZXQgTVM9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSl7dGhpcy5fcm91dGVyPWgsdGhpcy5ldmVudFNl''@;'; put 'put ''cnZpY2U9dix0aGlzLl9zYXNTZXJ2aWNlPXksdGhpcy5zY3JvbGxlZFRvQm90dG9tPW5ldyBhcix0aGlzLnNpZGViYXJPcGVuPSEwLHRoaXMuc2lkZWJhcldpZHRoPW51bGwsdGhpcy5zaWRlYmFyTWF4V2lkdGg9bnVsbCx0aGlzLnJlc2l6aW5nPSExLHRoaXMuc2FzanNDb25maWc9bmV3IFUz''@;'; put 'put ''LlNBU2pzQ29uZmlnLHRoaXMuc2FzanNDb25maWc9dGhpcy5fc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLHRoaXMuc2VydmVyVHlwZT10aGlzLl9zYXNTZXJ2aWNlLmdldFNlcnZlclR5cGUoKX1uZ09uSW5pdCgpe3RoaXMuZXZlbnRTZXJ2aWNlLm9uU2lkZWJhclRvZ2dsZS5zdWJzY3Jp''@;'; put 'put ''YmUoaD0+e3RoaXMuc2lkZWJhck9wZW49aD9oLm9wZW46IXRoaXMuc2lkZWJhck9wZW4sdGhpcy5ldmVudFNlcnZpY2UuZGlzcGF0Y2hFdmVudCgicmVzaXplIil9KX1vblRyZWVTY3JvbGwoaCl7bGV0IHY9aC50YXJnZXQ7di5zY3JvbGxUb3A+PXYuc2Nyb2xsSGVpZ2h0LXYub2Zmc2V0SGVp''@;'; put 'put ''Z2h0LTEwJiZ0aGlzLnNjcm9sbGVkVG9Cb3R0b20uZW1pdCgpfWlzTWFpblJvdXRlKGgpe3JldHVybiB0aGlzLl9yb3V0ZXIudXJsLmluY2x1ZGVzKGgpfWdldFN1YlBhZ2UoKXtyZXR1cm4gdGhpcy5fcm91dGVyLnVybC5zcGxpdCgiLyIpWzJdfW5hdmlnYXRlVG9WaWV3ZXIoKXtuaS52aWV3''@;'; put 'put ''ZXIuY3VycmVudFNlbGVjdGlvbj0iIix0aGlzLl9yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YSIpfXJlc2l6ZVN0YXJ0KCl7dGhpcy5yZXNpemluZz0hMCxkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiYm9keSIpWzBdLnN0eWxlLmNzc1RleHQ9InVzZXItc2VsZWN0OiBu''@;'; put 'put ''b25lIn1yZXNpemVFbmQoKXt0aGlzLnJlc2l6aW5nPSExLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uc3R5bGUuY3NzVGV4dD0iIn1vbk1vdXNlTW92ZShoKXtpZih0aGlzLnJlc2l6aW5nKXt0aGlzLnNpZGViYXJXaWR0aD1oLmNsaWVudFg7bGV0IHY9ZG9jdW1l''@;'; put 'put ''bnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibmF2LXRyZWUiKVswXTt0aGlzLnNpZGViYXJXaWR0aCYmdGhpcy5pc092ZXJmbG93bih2KSYmKHRoaXMuc2lkZWJhck1heFdpZHRoPXRoaXMuc2lkZWJhcldpZHRoPj0zNzU/dGhpcy5zaWRlYmFyV2lkdGgrMTA6dGhpcy5zaWRlYmFyTWF4V2lk''@;'; put 'put ''dGgpfX1vbk1vdXNlVXAoaCl7dGhpcy5yZXNpemluZyYmdGhpcy5yZXNpemVFbmQoKX1pc092ZXJmbG93bihoKXtyZXR1cm4gaC5zY3JvbGxXaWR0aD5oLmNsaWVudFdpZHRofX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChabCksS3QobXUpLEt0''@;'; put 'put ''KGcyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1zaWRlYmFyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8ocEhlLDUpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuc2lkZWJhck5hdj15LmZpcnN0KX19LGhvc3RCaW5kaW5nczpmdW5j''@;'; put 'put ''dGlvbihoLHYpezEmaCYmR24oIm1vdXNlbW92ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25Nb3VzZU1vdmUoQyl9LDAsSGwpKCJtb3VzZXVwIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbk1vdXNlVXAoQyl9LCExLEhsKX0sb3V0cHV0czp7c2Nyb2xsZWRUb0JvdHRvbToic2Nyb2xsZWRUb0Jv''@;'; put 'put ''dHRvbSJ9LG5nQ29udGVudFNlbGVjdG9yczpESGUsZGVjbHM6OSx2YXJzOjEzLGNvbnN0czpbWyJpZCIsInNpZGViYXJOYXYiXSxbInNpZGViYXJOYXYiLCIiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgc3ViLWRyb3Bkb3duIiw0LCJuZ0lmIl0sWyJjbGFzcyIs''@;'; put 'put ''InAtMTAiLDQsIm5nSWYiXSxbImNsYXNzIiwicGFnZS10aXRsZSIsNCwibmdJZiJdLFsxLCJuYXYtZGl2aWRlciJdLFsxLCJuYXYtdHJlZSIsMywic2Nyb2xsIl0sWzEsInJlc2l6ZS1oYW5kbGUiLDMsIm1vdXNlZG93biJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwi''@;'; put 'put ''c3ViLWRyb3Bkb3duIl0sWyJjbHJEcm9wZG93blRyaWdnZXIiLCIiLDEsImRyb3Bkb3duLXRvZ2dsZSIsImJ0biIsImJ0bi1saW5rIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbNCwiY2xySWZPcGVuIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0''@;'; put 'put ''aXZlIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L2xpbmVhZ2UiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvbWV0''@;'; put 'put ''YWRhdGEiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdiIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiLDQsIm5nSWYiXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJv''@;'; put 'put ''dXRlckxpbmsiLCIvYXBwcm92ZS9zdWJtaXR0ZWQiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIiw0LCJuZ0lmIl0sWyJjbHJWZXJ0aWNhbE5hdkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL2FwcHJvdmUvdG9hcHByb3ZlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsNCwibmdJZiJd''@;'; put 'put ''LFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsMywiY2xpY2siXSxbImNsclZlcnRpY2FsTmF2TGluayIsIiIsInJvdXRlckxpbmsiLCIvdmlldy9saW5lYWdlIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZM''@;'; put 'put ''aW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L21ldGFkYXRhIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYiLCJyb3V0ZXJMaW5rQWN0aXZlIiwiYWN0aXZlIl0sWyJjbHJWZXJ0aWNhbE5h''@;'; put 'put ''dkxpbmsiLCIiLCJyb3V0ZXJMaW5rIiwiL2FwcHJvdmUvc3VibWl0dGVkIiwicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSJdLFsiY2xyVmVydGljYWxOYXZMaW5rIiwiIiwicm91dGVyTGluayIsIi9hcHByb3ZlL3RvYXBwcm92ZSIsInJvdXRlckxpbmtBY3RpdmUiLCJhY3RpdmUiXSxbMSwi''@;'; put 'put ''cC0xMCJdLFsiY2xyVGFiTGluayIsIiIsMSwidXNlci1uYXYtYnRuIiwzLCJyb3V0ZXJMaW5rIl0sWzEsInplcm8tbWFyZ2luIl0sWyJzaGFwZSIsInVzZXIiXSxbInNoYXBlIiwidXNlcnMiXSxbNCwiY2xySWZBY3RpdmUiXSxbNCwibmdJZiJdLFsic2hhcGUiLCJibG9ja3MtZ3JvdXAiXSxb''@;'; put 'put ''MSwicGFnZS10aXRsZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCksbnQoMCwiY2xyLXZlcnRpY2FsLW5hdiIsMCwxKSxybigyLF9IZSw2LDEsImRpdiIsMikscm4oMyxUSGUsMTQsNiwiY2xyLXRhYnMiLDMpLHJuKDQsSUhlLDIsMCwicCIsNCksQ3IoNSwiZGl2Iiw1KSxu''@;'; put 'put ''dCg2LCJkaXYiLDYpLEduKCJzY3JvbGwiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uVHJlZVNjcm9sbChDKX0pLE5pKDcpLG90KCksbnQoOCwic3BhbiIsNyksR24oIm1vdXNlZG93biIsZnVuY3Rpb24oKXtyZXR1cm4gdi5yZXNpemVTdGFydCgpfSksb3QoKSgpKSwyJmgmJihOZCgid2lkdGgi''@;'; put 'put ''LHYuc2lkZWJhcldpZHRoLCJweCIpKCJtYXgtd2lkdGgiLHYuc2lkZWJhck1heFdpZHRoLCJweCIpLEZpKCJjbG9zZWQiLCF2LnNpZGViYXJPcGVuKSgicmVzaXppbmciLHYucmVzaXppbmcpLHV0KDIpLFR0KCJuZ0lmIix2LmlzTWFpblJvdXRlKCJ2aWV3IikpLHV0KDEpLFR0KCJuZ0lmIix2''@;'; put 'put ''LmlzTWFpblJvdXRlKCJ2aWV3L3VzZXJuYXYiKSksdXQoMSksVHQoIm5nSWYiLHYuaXNNYWluUm91dGUoImhvbWUiKSksdXQoNCksRmkoInJlc2l6aW5nIix2LnJlc2l6aW5nKSl9LGRlcGVuZGVuY2llczpbTm8sd2wsRzIsUGEsS0wscUwsQVosJEwsWEwsbVosUnllLEJ5ZSx3dixiUyxfUyxZ''@;'; put 'put ''Nix2Nyxsa10sc3R5bGVzOlsiY2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MjcycHg7bWluLXdpZHRoOjI3MnB4O2hlaWdodDoxMDAlO21heC13aWR0aDozNzVweDtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2hhZG93OjAgMCA1cHggIzAwMDAwMDFmO2JhY2tncm91''@;'; put 'put ''bmQtY29sb3I6I2ZmZiFpbXBvcnRhbnR9Y2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV0gICAuc3VuLWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OjM2cHh9Y2xyLXZlcnRpY2FsLW5hdltfbmdjb250ZW50LSVDT01QJV0gICAubmF2LXRyZWVbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde2hlaWdodDoxMDAlO292ZXJmbG93LXk6YXV0b31jbHItdmVydGljYWwtbmF2LmNsb3NlZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLWxlZnQ6LTI3MnB4fWNsci12ZXJ0aWNhbC1uYXZbX25nY29udGVudC0lQ09NUCVdICAgLnJlc2l6ZS1oYW5kbGVbX25nY29udGVu''@;'; put 'put ''dC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0Oi0zcHg7Ym9yZGVyLXJpZ2h0OjRweCBzb2xpZCAjODBiNDQxO2N1cnNvcjpjb2wtcmVzaXplO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAuMXMgZWFzZS1pbi1vdXR9Y2xyLXZlcnRpY2FsLW5hdltfbmdj''@;'; put 'put ''b250ZW50LSVDT01QJV0gICAucmVzaXplLWhhbmRsZVtfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7b3BhY2l0eTouNX1jbHItdmVydGljYWwtbmF2W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZXNpemUtaGFuZGxlLnJlc2l6aW5nW19uZ2NvbnRlbnQtJUNPTVAlXXtvcGFjaXR5OjF9Y2xyLXZl''@;'; put 'put ''cnRpY2FsLW5hdi5yZXNpemluZ1tfbmdjb250ZW50LSVDT01QJV17dHJhbnNpdGlvbjpub25lIWltcG9ydGFudH0ubmF2LWRpdmlkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowO2JvcmRlci10b3A6MXB4IHNvbGlkICNkM2QzZDM7bWFyZ2luLWJvdHRvbTowfS5wYWdlLXRpdGxlW19u''@;'; put 'put ''Z2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MDtmb250LXNpemU6MThweDt0ZXh0LWFsaWduOmNlbnRlcn0uemVyby1tYXJnaW5bX25nY29udGVudC0lQ09NUCVde21hcmdpbjowfS51c2VyLW5hdi1idG5bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MCAycHh9I3NpZGViYXJOYXZbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde3otaW5kZXg6MjAwfUBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCl7I3NpZGViYXJOYXZbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO3RvcDowfX0iXX0pLGR9KSgpO2Z1bmN0aW9uIExIZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24i''@;'; put 'put ''LDEyKX1mdW5jdGlvbiBPSGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItaWNvbiIsMTMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpO3JldHVybiB5LmxpYnJhcmllc1NlYXJjaD0iIixhKHkubGlicmFyeU9uRmlsdGVyKCkpfSksb3QoKX19''@;'; put 'put ''ZnVuY3Rpb24gUkhlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRyZWUtbm9kZSIsNikoMSwiZGl2Iiw3KSgyLCJpbnB1dCIsOCw5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS5saWJyYXJpZXNTZWFyY2g9eSl9KSgia2V5''@;'; put 'put ''dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5saWJyYXJ5T25GaWx0ZXIoKSl9KSxvdCgpLHJuKDQsTEhlLDEsMCwiY2xyLWljb24iLDEwKSxybig1LE9IZSwxLDAsImNsci1pY29uIiwxMSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD12YSgzKSx2PVF0KCk7dXQoMiksVHQoIm5n''@;'; put 'put ''TW9kZWwiLHYubGlicmFyaWVzU2VhcmNoKSx1dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBCSGUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwxMil9ZnVuY3Rpb24gUEhlKGQsZyl7aWYoMSZkKXtj''@;'; put 'put ''b25zdCBoPXdpKCk7bnQoMCwiY2xyLWljb24iLDEzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCksUXQoKTtjb25zdCB5PXZhKDMpLEM9UXQoMikuJGltcGxpY2l0LEk9UXQoKTtyZXR1cm4geS52YWx1ZT0iIixDLnNlYXJjaFN0cmluZz0iIixhKEkudHJlZU9uRmlsdGVyKEMsInRhYmxl''@;'; put 'put ''cyIpKX0pLG90KCl9fWZ1bmN0aW9uIEZIZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10cmVlLW5vZGUiLDYpKDEsImRpdiIsNykoMiwiaW5wdXQiLDE4LDE5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoMikuJGltcGxpY2l0''@;'; put 'put ''LnNlYXJjaFN0cmluZz15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShRdCgpLnRyZWVPbkZpbHRlcih5LCJ0YWJsZXMiKSl9KSxvdCgpLHJuKDQsQkhlLDEsMCwiY2xyLWljb24iLDEwKSxybig1LFBIZSwxLDAsImNsci1pY29u''@;'; put 'put ''IiwxMSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD12YSgzKSx2PVF0KDIpLiRpbXBsaWNpdDt1dCgyKSxUdCgibmdNb2RlbCIsdi5zZWFyY2hTdHJpbmcpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9u''@;'; put 'put ''IEhIZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDI0KX1mdW5jdGlvbiBOSGUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwyNSl9ZnVuY3Rpb24gVkhlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRyZWUtbm9kZSIpKDEsImJ1dHRvbiIsMjApLEduKCJjbGljayIs''@;'; put 'put ''ZnVuY3Rpb24oKXtjb25zdCBDPWl0KGgpLiRpbXBsaWNpdCxJPVF0KDIpLiRpbXBsaWNpdCxaPVF0KCk7cmV0dXJuIFoudGFibGU9QyxaLmxpYj1JLkxJQlJBUllSRUYsWi5zZWxlY3RUYWJsZShDKSxhKFouZWRpdFRhYmxlKCkpfSksQjAoMiwyMSkscm4oMyxISGUsMSwwLCJjbHItaWNvbiIs''@;'; put 'put ''MjIpLHJuKDQsTkhlLDEsMCwiY2xyLWljb24iLDIzKSxQMCgpLFl0KDUpLG90KCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1RdCgyKS4kaW1wbGljaXQseT1RdCgpO3V0KDEpLEZpKCJ0YWJsZS1hY3RpdmUiLHkubGliVGFiQWN0aXZlKHYuTElCUkFSWVJFRixoKSksdXQoMSks''@;'; put 'put ''VHQoIm5nU3dpdGNoIixoLmluY2x1ZGVzKCItRkMiKSksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsITApLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCExKSx1dCgxKSxKaSgiICIsaC5yZXBsYWNlKCItRkMiLCIiKSwiICIpfX1mdW5jdGlvbiBqSGUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2ko''@;'; put 'put ''KTtudCgwLCJjbHItdHJlZS1ub2RlIiwxNSksR24oImNsaWNrIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPVF0KCkuJGltcGxpY2l0LEk9UXQoKTtyZXR1cm4gSS50cmVlTm9kZUNsaWNrZWQoeSxDKSxhKEkubGliPUMuTElCUkFSWVJFRil9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0''@;'; put 'put ''aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuJGltcGxpY2l0LmV4cGFuZGVkPXkpfSksbnQoMSwicCIsMTYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCkuJGltcGxpY2l0LEM9UXQoKTtyZXR1cm4gQy5saWI9eS5MSUJSQVJZUkVGLGEoQy5saWJyYXJ5T25DbGlj''@;'; put 'put ''ayh5LkxJQlJBUllSRUYseSkpfSksQ3IoMiwiY2xyLWljb24iLDE3KSxZdCgzKSxvdCgpLHJuKDQsRkhlLDYsMywiY2xyLXRyZWUtbm9kZSIsMCkscm4oNSxWSGUsNiw2LCJjbHItdHJlZS1ub2RlIiwxKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdDtGaSgiY2xyLWV4cGFu''@;'; put 'put ''ZGVkIixoLmV4cGFuZGVkKSxUdCgiY2xyRXhwYW5kZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdUYWJsZXMmJiFoLnRhYmxlcyksdXQoMyksSmkoIiAiLGguTElCUkFSWVJFRiwiICIpLHV0KDEpLFR0KCJuZ0lmIixoLnRhYmxlcyksdXQoMSksVHQoIm5nRm9yT2YiLGgu''@;'; put 'put ''dGFibGVzKX19ZnVuY3Rpb24gWkhlKGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxqSGUsNiw3LCJjbHItdHJlZS1ub2RlIiwxNCksUDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwhaC5oaWRkZW4pfX1mdW5jdGlvbiB6SGUoZCxnKXsxJmQmJihudCgwLCJk''@;'; put 'put ''aXYiLDI2KSgxLCJkaXYiLDI3KSgyLCJzcGFuIiwyOCksWXQoMywiIExvYWRpbmcuLi4gIiksb3QoKSgpKCkpfWZ1bmN0aW9uIEdIZShkLGcpezEmZCYmKG50KDAsImgzIiwzMiksWXQoMSwiIFBsZWFzZSBzZWxlY3QgYSB0YWJsZSAiKSxvdCgpKX1mdW5jdGlvbiBXSGUoZCxnKXsxJmQmJihu''@;'; put 'put ''dCgwLCJoMyIsMzIpLFl0KDEsIiBObyBFZGl0YWJsZSBUYWJsZXMgQ29uZmlndXJlZCAiKSxvdCgpKX1mdW5jdGlvbiBZSGUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDI5KSxDcigxLCJjbHItaWNvbiIsMzApLHJuKDIsR0hlLDIsMCwiaDMiLDMxKSxybigzLFdIZSwyLDAsImgzIiwzMSks''@;'; put 'put ''b3QoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMiksVHQoIm5nSWYiLChudWxsPT1oLnRyZWVOb2RlTGlicmFyaWVzP251bGw6aC50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPjApLHV0KDEpLFR0KCJuZ0lmIiwobnVsbD09aC50cmVlTm9kZUxpYnJhcmllcz9udWxsOmgudHJlZU5vZGVMaWJy''@;'; put 'put ''YXJpZXMubGVuZ3RoKTwxKX19bGV0IFVIZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5yb3V0ZT1oLHRoaXMucm91dGVyPXYsdGhpcy5oZWxwZXJTZXJ2aWNlPXksdGhpcy5ldmVudFNlcnZpY2U9Qyx0aGlzLnNhc1NlcnZpY2U9SSx0aGlzLnRyZWVOb2RlTGli''@;'; put 'put ''cmFyaWVzPW51bGwsdGhpcy5saWJyYXJpZXNTZWFyY2g9IiIsdGhpcy5saWI9IiIsdGhpcy50YWJsZT0iIix0aGlzLmVuY29kaW5nPSJVVEYtOCIsdGhpcy5sb2FkaW5nPSEwfWNvbGxhcHNlTGlicmFyeUl0ZW1zKGgsdil7aC5mb3JFYWNoKHk9Pnt5LkxJQlJBUllJRCE9PXYuTElCUkFSWUlE''@;'; put 'put ''JiYoeS5leHBhbmRlZD0hMSl9KX10cmVlTm9kZUNsaWNrZWQoaCx2KXsiQ29sbGFwc2UiPT09aC50YXJnZXQudGl0bGUmJnRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsdil9bGlicmFyeU9uQ2xpY2soaCx2KXt2LmV4cGFuZGVkPSF2LmV4cGFuZGVkLHYuZXhwYW5k''@;'; put 'put ''ZWQmJiF0aGlzLnRhYmxlJiZ0aGlzLnNlbGVjdExpYnJhcnkoaCwhMSx2KSx0aGlzLmNvbGxhcHNlTGlicmFyeUl0ZW1zKHRoaXMubGlicmFyaWVzLHYpfXNlbGVjdExpYnJhcnkoaCx2LHkpe3kubG9hZGluZ1RhYmxlcz0hMDtsZXQgQyxJPVtdO2lmKHRoaXMubGlic0FuZFRhYmxlcyYmKEM9''@;'; put 'put ''dGhpcy5saWJzQW5kVGFibGVzW2hdLHRoaXMudGFibGU9dm9pZCAwLCJQbGVhc2Ugc2VsZWN0IGxpYnJhcnkiIT09aCkpe2xldCBaPUMuZmlsdGVyKGZ1bmN0aW9uKHVlKXtyZXR1cm4tMT09PUkuaW5kZXhPZih1ZSkmJihJLnB1c2godWUpLCEwKX0pO3RoaXMudGFibGVzPVosbmkuZWRpdG9y''@;'; put 'put ''LmxpYnJhcmllcz10aGlzLmxpYnJhcmllc31uaS5lZGl0b3IubGlicmFyeT1oLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCkseS5sb2FkaW5nVGFibGVzPSExLHkuZXhwYW5kZWQ9ITB9c2VsZWN0VGFibGUoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigp''@;'; put 'put ''e3RoaXMubGliVGFiPXRoaXMubGliKyIuIit0aGlzLnRhYmxlLHRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLG5pLmVkaXRvci50YWJsZT1oLHZ8fHRoaXMuY2xlYXJHbG9iYWxzRmlsdGVyKCl9KX1jbGVhckdsb2JhbHNGaWx0ZXIoKXtuaS5lZGl0b3IuZmlsdGVyLmxpYmRzPSIi''@;'; put 'put ''LG5pLmVkaXRvci5maWx0ZXIud2hlcmVDbGF1c2U9IiIsbmkuZWRpdG9yLmZpbHRlci5ncm91cExvZ2ljPSIiLG5pLmVkaXRvci5maWx0ZXIuY2xhdXNlcz1bXSxuaS5lZGl0b3IuZmlsdGVyLnZhbHM9W10sbmkuZWRpdG9yLmZpbHRlci5jb2xzPVtdfWxpYlRhYkFjdGl2ZShoLHYpe3JldHVy''@;'; put 'put ''biEoIXRoaXMubGlifHwhdGhpcy50YWJsZSkmJmg9PT10aGlzLmxpYiYmdj09PXRoaXMudGFibGV9dHJlZU9uRmlsdGVyKGgsdil7dGhpcy5oZWxwZXJTZXJ2aWNlLnRyZWVPbkZpbHRlcihoLHYpfWxpYnJhcnlPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIo''@;'; put 'put ''dGhpcy50cmVlTm9kZUxpYnJhcmllcyx0aGlzLmxpYnJhcmllc1NlYXJjaCwiTElCUkFSWVJFRiIpLG5pLmxpbmVhZ2UubGlicmFyaWVzU2VhcmNoPXRoaXMubGlicmFyaWVzU2VhcmNofWVkaXRUYWJsZSgpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK3RoaXMubGliKyIu''@;'; put 'put ''Iit0aGlzLnRhYmxlKX1nZXRMaWJyYXJ5VGFibGVTdGF0ZSgpe2lmKG51bGwhPT1uaS5lZGl0b3IudHJlZU5vZGVMaWJyYXJpZXMmJih0aGlzLnRyZWVOb2RlTGlicmFyaWVzPW5pLmVkaXRvci50cmVlTm9kZUxpYnJhcmllcyksIiIhPT1uaS5lZGl0b3IubGlicmFyeSl7dGhpcy5saWI9bmku''@;'; put 'put ''ZWRpdG9yLmxpYnJhcnk7bGV0IGg9bnVsbDt0aGlzLnRyZWVOb2RlTGlicmFyaWVzJiYoaD10aGlzLnRyZWVOb2RlTGlicmFyaWVzLmZpbmQodj0+di5MSUJSQVJZUkVGPT09dGhpcy5saWIpKSx0aGlzLnNlbGVjdExpYnJhcnkobmkuZWRpdG9yLmxpYnJhcnksITAsaCl9fWdldEZyb21HbG9i''@;'; put 'put ''YWxzKCl7dGhpcy5saWJzQW5kVGFibGVzPW5pLmVkaXRvci5saWJzQW5kVGFibGVzLHRoaXMubGlicmFyaWVzPW5pLmVkaXRvci5saWJyYXJpZXMsdGhpcy5nZXRMaWJyYXJ5VGFibGVTdGF0ZSgpLHRoaXMubG9hZGluZz0hMX1uZ0FmdGVyQ29udGVudEluaXQoKXtuaS5lZGl0b3Iuc3RhcnR1''@;'; put 'put ''cFNldD90aGlzLmdldEZyb21HbG9iYWxzKCk6dGhpcy5ldmVudFNlcnZpY2Uub25TdGFydHVwRGF0YUxvYWRlZC5zdWJzY3JpYmUoKCk9Pnt0aGlzLmdldEZyb21HbG9iYWxzKCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWmwpLEt0KFB1''@;'; put 'put ''KSxLdChYYyksS3QobXUpLEt0KGcyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImhvbWUtY29tcG9uZW50Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo4LHZhcnM6NCxjb25zdHM6W1siY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJ''@;'; put 'put ''ZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQtYmxvY2siXSxbImNsYXNzIiwic3Bpbm5lci13cmFwcGVyLWZ1bGxwYWdlIiw0LCJuZ0lmIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0s''@;'; put 'put ''WzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJMaWJyYXJpZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJd''@;'; put 'put ''LFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywiY2xyRXhwYW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xyLWV4cGFuZGVkIiwiY2xpY2si''@;'; put 'put ''LCJjbHJFeHBhbmRlZENoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIl0sWzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJyYWNrLXNlcnZlciJdLFsiY2xySW5wdXQiLCIi''@;'; put 'put ''LCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoVHJlZUlucHV0IiwiIl0sWzEsImNsci10cmVlbm9kZS1saW5rIiwzLCJjbGljayJdLFszLCJuZ1N3aXRj''@;'; put 'put ''aCJdLFsic2hhcGUiLCJib2x0Iiw0LCJuZ1N3aXRjaENhc2UiXSxbInNoYXBlIiwidGFibGUiLDQsIm5nU3dpdGNoQ2FzZSJdLFsic2hhcGUiLCJib2x0Il0sWyJzaGFwZSIsInRhYmxlIl0sWzEsInNwaW5uZXItd3JhcHBlci1mdWxscGFnZSJdLFsxLCJsb2FkaW5nU3Bpbm5lciJdLFsxLCJz''@;'; put 'put ''cGlubmVyIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgY29sb3ItZ3JheSIsNCwibmdJZiJdLFsxLCJ0ZXh0LWNlbnRlciIsImNv''@;'; put 'put ''bG9yLWdyYXkiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJhcHAtc2lkZWJhciIpKDEsImNsci10cmVlIikscm4oMixSSGUsNiwzLCJjbHItdHJlZS1ub2RlIiwwKSxybigzLFpIZSwyLDEsIm5nLWNvbnRhaW5lciIsMSksb3QoKSgpLG50KDQsImRpdiIsMikoNSwiZGl2''@;'; put 'put ''IiwzKSxybig2LHpIZSw0LDAsImRpdiIsNCkscm4oNyxZSGUsNCwyLCJkaXYiLDUpLG90KCkoKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLChudWxsPT12LnRyZWVOb2RlTGlicmFyaWVzP251bGw6di50cmVlTm9kZUxpYnJhcmllcy5sZW5ndGgpPjApLHV0KDEpLFR0KCJuZ0Zvck9mIix2LnRy''@;'; put 'put ''ZWVOb2RlTGlicmFyaWVzKSx1dCgzKSxUdCgibmdJZiIsdi5sb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsIXYubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W3hzLE5vLEpkLGlwLG0xLFRzLElzLHl2LF9nLFFMLHdsLGdvLHB2LE1TXSxzdHlsZXM6WyJjbHItdHJlZS1ub2RlW19uZ2NvbnRlbnQt''@;'; put 'put ''JUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwfS5jYXJkLWJsb2NrW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6MTAwJTtwYWRkaW5nOjB9Lm5vLXRhYmxlLXNlbGVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZTto''@;'; put 'put ''ZWlnaHQ6MTAwJX0gIGNsci1pY29uLmlzLWJsdWUsICAgY2xyLWljb24uaXMtaW5mb3tmaWxsOiM2YTkyMzV9LnNwaW5uZXItd3JhcHBlci1mdWxscGFnZVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3dp''@;'; put 'put ''ZHRoOjEwMCU7aGVpZ2h0OjEwMCV9Il19KSxkfSkoKTt2YXIgYnc9TCgyOTc0OCk7bGV0IGtnPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuc2FzU2VydmljZT1oLHRoaXMuaGVscGVyU2VydmljZT12LHRoaXMubG9nZ2VyU2VydmljZT15LHRoaXMucmVzcG9uc2U9bmV3''@;'; put 'put ''ICRlLHRoaXMuY2hhbmdlZFRhYmxlPW5ldyAkZSx0aGlzLmRldGFpbHM9bmV3ICRlLHRoaXMuZGlmZnM9bmV3ICRlLHRoaXMuY29sdW1ucz1uZXcgJGUsdGhpcy52YWx1ZXM9bmV3ICRlLHRoaXMuZmlsdGVyPW5ldyAkZSx0aGlzLnF1ZXJ5PW5ldyAkZSx0aGlzLnN1Ym1pdHREZXRhaWw9bmV3''@;'; put 'put ''ICRlLHRoaXMucmVtb3ZlUXVlcnk9bmV3ICRlLHRoaXMuc2V0U3VibWl0PW5ldyAkZSx0aGlzLnNldFN1Ym1pdExpc3Q9bmV3ICRlfWNhbGxTZXJ2aWNlKGgsdix5LEMpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5saWJkcz1DO2xldCBJPXt9O3JldHVy''@;'; put 'put ''biBJW3ZdPVtoXSx7ZGF0YTp5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCh5LEkpLGxpYmRzOnRoaXMubGliZHN9fSl9dXBkYXRlVGFibGUoaCx2LHksQyxJKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBaPXtqc2RhdGE6dn07aWYoSSl7bGV0IF9l''@;'; put 'put ''PXRoaXMucGFyc2VGb3JtYXRzKEkpO1ouJGpzZGF0YT17Zm9ybWF0czpfZX19cmV0dXJuIFpbeV09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KEMsWil9KX1nZXRBcHByb3ZhbHMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9''@;'; put 'put ''e307cmV0dXJuIENbdl09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KHksQyl9KX1zZW5kRGV0YWlscyhoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz1PYmplY3QuYXNzaWduKHtzdWI6ITB9LGgpO3RoaXMuc3VibWl0dERldGFp''@;'; put 'put ''bC5uZXh0KHtkYXRhOnlbdl0sdmlld0RhdGE6Q30pfSl9Z2V0U3VibWl0dHMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgiZWRpdG9ycy9nZXRzdWJtaXRzIixudWxsKX0pfXZpZXdMaWJzKCl7''@;'; put 'put ''cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtyZXR1cm4gdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3bGlicyIsbnVsbCl9KX1yZWZyZXNoTGliSW5mbyhoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiB0''@;'; put 'put ''aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3JlZnJlc2hsaWJpbmZvIix7bGliMnJlZnJlc2g6W3tsaWJyZWY6aH1dfSl9KX12ZXJzaW9uSGlzdG9yeShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2NvbnN0IHY9e2l3YW50Olt7TElCRFM6aH1dfTty''@;'; put 'put ''ZXR1cm4geWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9nZXR2ZXJzaW9uaGlzdG9yeSIsdil9KX12aWV3VGFibGVzKGgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHY9e1NBU0NvbnRyb2xUYWJsZTpbe01QTElCOmh9XX07cmV0dXJu''@;'; put 'put ''IHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvdmlld3RhYmxlcyIsdil9KX12aWV3RGF0YShoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHk9e1NBU0NvbnRyb2xUYWJsZTpbe0xJQkRTOmgsRklMVEVSX1JLOnZ9XX07cmV0dXJu''@;'; put 'put ''IHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvdmlld2RhdGEiLHkpfSl9dmlld0RhdGFTZWFyY2goaCx2PSExLHksQyl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgWj17U0FTQ29udHJvbFRhYmxlOlt7U0VBUkNIVFlQRTpoLmxlbmd0''@;'; put 'put ''aD4wP3Y/Ik5VTSI6IkNIQVIiOiJOT05FIixTRUFSQ0hWQUw6aCxMSUJEUzp5LEZJTFRFUl9SSzpDfV19O3JldHVybiB5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVibGljL3ZpZXdkYXRhIixaKX0pfWdldERldGFpbHMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lk''@;'; put 'put ''IDAsZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJuIENbdl09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KHksQyl9KX1zaG93RGlmZnMoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJuIENbdl09W2hdLHlpZWxk''@;'; put 'put ''IHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KHksQyx7dXNlQ29tcHV0ZUFwaTohMX0pfSl9cmVqZWN0aW5nKGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXt9O3JldHVybiBDW3ZdPVtoXSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCh5''@;'; put 'put ''LEMse3VzZUNvbXB1dGVBcGk6ITF9KX0pfWFwcHJvdmVUYWJsZShoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz17fTtyZXR1cm4gQ1t2XT1baF0seWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoeSxDKX0pfWdldEhpc3RvcnkoaCx2LHkp''@;'; put 'put ''e3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IEM9e307cmV0dXJuIENbdl09W2hdLHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KHksQyl9KX1zZXRRdWVyeVZhcmlhYmxlcyhoLHYpe3RoaXMuY29sdW1ucy5uZXh0KHtkYXRhOntjb2xzOnZ9LGxpYmRz''@;'; put 'put ''Omh9KX1nZXRDaGFuZ2VJbmZvKGgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHk9e1NBU0NvbnRyb2xUYWJsZTpbe1RBQkxFOmh9XX07cmV0dXJuIHlpZWxkIHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJwdWJsaWMvZ2V0Y2hhbmdlaW5mbyIseSl9KX1n''@;'; put 'put ''ZXRRdWVyeVZhbHVlcyhoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgQz17aXdhbnQ6W3tsaWJkczp2LGNvbDpofV19O3JldHVybiB5Lmxlbmd0aD4wJiYoQy5GSUxURVJRVUVSWT15KSx5aWVsZCB0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgicHVi''@;'; put 'put ''bGljL2dldGNvbHZhbHMiLEMpLmNhdGNoKFo9Pnt0aHJvdyBafSl9KX1zYXZlUXVlcnkoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB5PXtpd2FudDpbe2ZpbHRlcl90YWJsZTpofV0sZmlsdGVycXVlcnk6dn0sQz15aWVsZCB0aGlzLnNhc1NlcnZp''@;'; put 'put ''Y2UucmVxdWVzdCgicHVibGljL3ZhbGlkYXRlZmlsdGVyIix5KTtyZXR1cm4gdGhpcy5maWx0ZXIubmV4dChDKSxDfSl9b3BlblRhYmxlKGgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHY9e2l3YW50Olt7dGFibGVfaWQ6aH1dfTtyZXR1cm4geWllbGQg''@;'; put 'put ''dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImF1ZGl0b3JzL2dldHN0YWdldGFibGUiLHYpfSl9Y2hlY2tPcGVyYXRvcihoLHYseSl7bGV0IEM7c3dpdGNoKGgpe2Nhc2UiQkVUV0VFTiI6diBpbnN0YW5jZW9mIEFycmF5JiYoIiIhPT12WzBdJiYiIiE9PXZbMV0/Qz12WzBdKyIgQU5EICIrdlsx''@;'; put 'put ''XToiIiE9PXZbMF0mJiIiPT09dlsxXT8odlsxXT0iLiIsQz12WzBdKyIgQU5EICIrdlsxXSk6IiI9PT12WzBdJiYiIiE9PXZbMV0/KHZbMF09Ii4iLEM9dlswXSsiIEFORCAiK3ZbMV0pOih2WzBdPSIuIix2WzFdPSIuIixDPXZbMF0rIiBBTkQgIit2WzFdKSk7YnJlYWs7Y2FzZSJJTiI6Y2Fz''@;'; put 'put ''ZSJOT1QgSU4iOmxldCBaPVtdO2lmKHZvaWQgMCE9PXYpZm9yKGxldCB1ZT0wO3VlPHYubGVuZ3RoO3VlKyspITA9PT12W3VlXS5jaGVja2VkJiYoImNoYXIiPT09eT8oInN0cmluZyI9PXR5cGVvZiB2W3VlXS52YWwmJih2W3VlXS52YWw9dlt1ZV0udmFsLnJlcGxhY2UoIiciLCInJyIpKSxa''@;'; put 'put ''LnB1c2goIiciK3ZbdWVdLnZhbCsiJyIpKToobnVsbD09PXZbdWVdLnZhbCYmKHZbdWVdLnZhbD0iLiIpLFoucHVzaCh2W3VlXS52YWwpKSk7dj0iKCIrWisiKSI7YnJlYWs7Y2FzZSJDT05UQUlOUyI6aD0iPyI7YnJlYWs7Y2FzZSJOT1QgRVFVQUwiOmg9Im5lIn1yZXR1cm4ibnVtIj09PXkm''@;'; put 'put ''Jm51bGw9PT12JiYodj0iLiIpLCJQbGVhc2Ugc2VsZWN0IHZhbHVlIj09PXYmJih2PSIiKSwtMSE9PVsiPSIsIj4iLCI8IiwiPD0iLCI+PSIsIm5lIl0uaW5kZXhPZihoKSYmIm51bSI9PT15JiYiIj09PXYmJih2PSIuIiksIkJFVFdFRU4iPT09aD97dmFsdWU6QyxvcGVyYXRvcjpofTp7dmFs''@;'; put 'put ''dWU6dixvcGVyYXRvcjpofX13aGVyZUNsYXVzZUNyZWF0b3IoaCx2LHkpe2xldCB1ZSxOZSxDPSIiLF9lPSIiLEJlPVtdO2ZvcihsZXQgcHQ9MDtwdDxoLnF1ZXJ5T2JqLmxlbmd0aDtwdCsrKXtsZXQgT3Q9IiIsJHQ9aC5xdWVyeU9ialtwdF07Zm9yKGxldCBmbj0wO2ZuPCR0LmVsZW1lbnRz''@;'; put 'put ''Lmxlbmd0aDtmbisrKXtsZXQgaXIsTG49JHQuZWxlbWVudHNbZm5dO3VlPWZuPCR0LmVsZW1lbnRzLmxlbmd0aC0xPyR0LmNsYXVzZUxvZ2ljOiIiO2ZvcihsZXQgeWk9MDt5aTxMbi52YWx1ZXMubGVuZ3RoO3lpKyspe2lmKCJzdHJpbmciPT10eXBlb2YgTG4udmFsdWUmJiJudW1iZXIiPT10''@;'; put 'put ''eXBlb2YgTG4udmFsdWVzW3lpXS5mb3JtYXR0ZWQpTG4udmFsdWU9PT1KU09OLnN0cmluZ2lmeShMbi52YWx1ZXNbeWldLmZvcm1hdHRlZCkmJihpcj1Mbi52YWx1ZXNbeWldLnVuZm9ybWF0dGVkKTtlbHNle2xldCBTbz0ibnVtYmVyIiE9dHlwZW9mIExuLnZhbHVlc1t5aV0uZm9ybWF0dGVk''@;'; put 'put ''JiZudWxsIT09TG4udmFsdWVzW3lpXS5mb3JtYXR0ZWQ/TG4udmFsdWVzW3lpXS5mb3JtYXR0ZWQudHJpbSgpOkxuLnZhbHVlc1t5aV0uZm9ybWF0dGVkO0xuLnZhbHVlPT09U28mJihpcj1Mbi52YWx1ZXNbeWldLnVuZm9ybWF0dGVkKX1sZXQgS2k9WyI9IiwiPiIsIjwiLCI8PSIsIj49Iiwi''@;'; put 'put ''bmUiXTsiUGxlYXNlIHNlbGVjdCB2YWx1ZSI9PT1Mbi52YWx1ZSYmLTEhPT1LaS5pbmRleE9mKExuLm9wZXJhdG9yKSYmKGlyPSIiKSwoIkNPTlRBSU5TIj09PUxuLm9wZXJhdG9yfHwiTElLRSI9PT1Mbi5vcGVyYXRvcnx8IkJFR0lOU19XSVRIIj09PUxuLm9wZXJhdG9yKSYmKGlyPUxuLnZh''@;'; put 'put ''bHVlKX1pZihpcnx8KGlyPUxuLnZhbHVlKSxMbi52YWx1ZSBpbnN0YW5jZW9mIEFycmF5JiYiQkVUV0VFTiI9PT1Mbi5vcGVyYXRvcil7aXI9W10saXIucHVzaChMbi52YWx1ZVswXSksaXIucHVzaChMbi52YWx1ZVsxXSk7Zm9yKGxldCB5aT0wO3lpPExuLnZhbHVlcy5sZW5ndGg7eWkrKylp''@;'; put 'put ''clswXT09PUxuLnZhbHVlc1t5aV0uZm9ybWF0dGVkJiYoaXJbMF09TG4udmFsdWVzW3lpXS51bmZvcm1hdHRlZCksaXJbMV09PT1Mbi52YWx1ZXNbeWldLmZvcm1hdHRlZCYmKGlyWzFdPUxuLnZhbHVlc1t5aV0udW5mb3JtYXR0ZWQpfWlmKExuLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkmJigi''@;'; put 'put ''SU4iPT09TG4ub3BlcmF0b3J8fCJOT1QgSU4iPT09TG4ub3BlcmF0b3IpKXtpcj1bXSxpcj1Mbi52YWx1ZTtmb3IobGV0IHlpPTA7eWk8TG4udmFsdWVzLmxlbmd0aDt5aSsrKWlyW3lpXSYmaXJbeWldLnZhbD09PUxuLnZhbHVlc1t5aV0uZm9ybWF0dGVkJiYoaXJbeWldLnZhbD1Mbi52YWx1''@;'; put 'put ''ZXNbeWldLnVuZm9ybWF0dGVkKX1sZXQgUXIsbXI9TG4udHlwZSxTcj1udWxsPT09TG4udmFyaWFibGU/IiI6TG4udmFyaWFibGUsd3I9bnVsbD09PUxuLm9wZXJhdG9yPyIiOkxuLm9wZXJhdG9yO1FyPXRoaXMuY2hlY2tPcGVyYXRvcih3cixpcixtcikudmFsdWUsInN0cmluZyI9PXR5cGVv''@;'; put 'put ''ZiBRciYmIigiIT09UXJbMF0mJihRcj1Rci5yZXBsYWNlKCInIiwiJyciKSksd3I9dGhpcy5jaGVja09wZXJhdG9yKHdyLFFyLG1yKS5vcGVyYXRvciwiY2hhciI9PT1tciYmIklOIiE9PXdyJiYiTk9UIElOIiE9PXdyPyh2b2lkIDA9PT1RciYmKFFyPSIiKSxRcj0iICciK1FyKyInICIsT3Q9''@;'; put 'put ''T3QrIiAiK1NyKyIgIit3citRcit1ZSk6KCJudW0iPT09bXImJnZvaWQgMD09PVFyJiYoUXI9Ii4iKSxRcj12b2lkIDA9PT1Rcj8iIjoiICIrUXIrIiAiLE90PU90KyIgIitTcisiICIrd3IrUXIrdWUpfUJlLnB1c2goT3QpfV9lPSIiO2ZvcihsZXQgcHQ9MDtwdDxCZS5sZW5ndGg7cHQrKylO''@;'; put 'put ''ZT1wdDxCZS5sZW5ndGgtMT92OiIiLF9lPTE9PT1CZS5sZW5ndGg/QmVbMF06X2UrIiAoIitCZVtwdF0rIikgIitOZTtyZXR1cm4gQz1fZS5zdWJzdHIoMSkuc2xpY2UoMCwtMSksX2U9IldIRVJFIitfZSsiOyIsdGhpcy5xdWVyeS5uZXh0KHt3aGVyZUNsYXVzZTpfZSxzdHJpbmc6QyxvYmo6''@;'; put 'put ''aCxsaWJkczp5fSkse3doZXJlQ2xhdXNlOl9lLHN0cmluZzpDfX1jcmVhdGVGaWx0ZXJRdWVyeVRhYmxlKGgpe2NvbnN0IHY9W107cmV0dXJuIGguZmlsdGVyR3JvdXBzLmZvckVhY2goKHksQyk9Pnt5LmZpbHRlckNsYXVzZXMuZm9yRWFjaChJPT57bGV0IFo9IiI7IkJFVFdFRU4iPT09SS5v''@;'; put 'put ''cGVyYXRvcj9aPWAke0kudmFsdWVbMF19IEFORCAke0kudmFsdWVbMV19YDoiSU4iPT09SS5vcGVyYXRvcnx8Ik5PVCBJTiI9PT1JLm9wZXJhdG9yPyhJLnZhbHVlLmZvckVhY2godWU9PntpZih1ZS5jaGVja2VkKXtjb25zdCBfZT11ZS52YWw7InN0cmluZyIhPXR5cGVvZiBfZXx8KDAsYncu''@;'; put 'put ''aXNTcGVjaWFsTWlzc2luZykoX2UpJiYiY2hhciIhPT1JLnR5cGU/Wi5sZW5ndGg+MD9aKz1gLCR7X2V9YDpaPWAoJHtfZX1gOloubGVuZ3RoPjA/Wis9YCwnJHtfZS5yZXBsYWNlKC8nL2csIicnIil9J2A6Wj1gKCcke19lLnJlcGxhY2UoLycvZywiJyciKX0nYH19KSxaLmxlbmd0aD4wJiYo''@;'; put 'put ''Wis9IikiKSk6IiI9PT1JLnZhbHVlP1o9ImNoYXIiPT09SS50eXBlPyInICciOiIuIjoiY2hhciI9PT1JLnR5cGUmJihaPWAnJHtJLnZhbHVlLnJlcGxhY2UoLycvZywiJyciKX0nYCksdi5wdXNoKHtHUk9VUF9MT0dJQzpoLmdyb3VwTG9naWMsU1VCR1JPVVBfTE9HSUM6eS5jbGF1c2VMb2dp''@;'; put 'put ''Y3x8IkFORCIsU1VCR1JPVVBfSUQ6QyxWQVJJQUJMRV9OTTpJLnZhcmlhYmxlLE9QRVJBVE9SX05NOkkub3BlcmF0b3IsUkFXX1ZBTFVFOlp8fEkudmFsdWV9KX0pfSksdn1pbml0aWFsaXplR2xvYmFsRmlsdGVyQ2xhdXNlKGgsdil7bGV0IHk9InZpZXdlciI7ImVkaXQiPT09aCYmKHk9ImVk''@;'; put 'put ''aXRvciIpLG5pW3ldLmZpbHRlci5jbGF1c2VzPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoe3F1ZXJ5T2JqOltdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6bmlbeV0uZmlsdGVyLnF1ZXJ5WzBdLkdST1VQX0xPR0lDfSksbmlbeV0uZmlsdGVyLmdyb3VwTG9naWM9bmlbeV0uZmls''@;'; put 'put ''dGVyLnF1ZXJ5WzBdLkdST1VQX0xPR0lDO2xldCBJPSIiLFo9e2VsZW1lbnRzOltdfSx1ZT0wO25pW3ldLmZpbHRlci5xdWVyeS5mb3JFYWNoKF9lPT57Y29uc3QgQmU9e307Zm9yKGxldCBOZT0wO05lPHYubGVuZ3RoO05lKyspaWYodltOZV0uTkFNRT09PV9lLlZBUklBQkxFX05NKXtpZihJ''@;'; put 'put ''PV9lLlNVQkdST1VQX0xPR0lDLEJlLmRkdHlwZT12W05lXS5ERFRZUEUsQmUudHlwZT12W05lXS5UWVBFLEJlLm9wZXJhdG9ycz0ibnVtIj09PXZbTmVdLlRZUEU/bmkub3BlcmF0b3JzLm51bU9wZXJhdG9yczpuaS5vcGVyYXRvcnMuY2hhck9wZXJhdG9ycyxCZS5sb2dpYz1udWxsLEJlLm9w''@;'; put 'put ''ZXJhdG9yPV9lLk9QRVJBVE9SX05NLEJlLnZhcmlhYmxlPV9lLlZBUklBQkxFX05NLCJjaGFyIj09PXZbTmVdLlRZUEUpaWYoIklOIj09PV9lLk9QRVJBVE9SX05NfHwiTk9UIElOIj09PV9lLk9QRVJBVE9SX05NKXtjb25zdCBLZT1bXSxPdD1fZS5SQVdfVkFMVUUuc2xpY2UoMSwtMSkuc3Bs''@;'; put 'put ''aXQoIicsJyIpOzE9PT1PdC5sZW5ndGg/S2UucHVzaCh7Y2hlY2tlZDohMCx2YWw6T3RbMF0uc2xpY2UoMSwtMSkucmVwbGFjZSgvJycvZywiJyIpfSk6T3QuZm9yRWFjaCgoJHQsZm4pPT57S2UucHVzaCgwPT09Zm4/e2NoZWNrZWQ6ITAsdmFsOiR0LnNsaWNlKDEpLnJlcGxhY2UoLycnL2cs''@;'; put 'put ''IiciKX06Zm49PT1PdC5sZW5ndGgtMT97Y2hlY2tlZDohMCx2YWw6JHQuc2xpY2UoMCwtMSkucmVwbGFjZSgvJycvZywiJyIpfTp7Y2hlY2tlZDohMCx2YWw6JHQucmVwbGFjZSgvJycvZywiJyIpfSl9KSxCZS52YWx1ZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKEtlKX1lbHNlIEJl''@;'; put 'put ''LnZhbHVlPV9lLlJBV19WQUxVRS5zbGljZSgxLC0xKS5yZXBsYWNlKC8nJy9nLCInIik7ZWxzZSBpZigiSU4iPT09X2UuT1BFUkFUT1JfTk18fCJOT1QgSU4iPT09X2UuT1BFUkFUT1JfTk0pe2NvbnN0IEtlPVtdO19lLlJBV19WQUxVRS5zbGljZSgxLC0xKS5zcGxpdCgiLCIpLmZvckVhY2go''@;'; put 'put ''KCR0LGZuKT0+e0tlLnB1c2goe2NoZWNrZWQ6ITAsdmFsOiR0fSl9KSxCZS52YWx1ZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKEtlKX1lbHNlIGlmKCJCRVRXRUVOIj09PV9lLk9QRVJBVE9SX05NKXtjb25zdCBLZT1fZS5SQVdfVkFMVUUuc3BsaXQoIiBBTkQgIik7QmUudmFsdWU9''@;'; put 'put ''S2V9ZWxzZSBCZS52YWx1ZT1fZS5SQVdfVkFMVUU7QmUudmFsdWVzPVtdLHVlPT09X2UuU1VCR1JPVVBfSUR8fChuaVt5XS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9iai5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoWikpLG5pW3ldLmZpbHRlci5jbGF1c2VzLnF1ZXJ5T2JqW3Vl''@;'; put 'put ''XS5jbGF1c2VMb2dpYz1JLG5pW3ldLmZpbHRlci5jbGF1c2VzLnF1ZXJ5T2JqW3VlXS5pbnZhbGlkQ2xhdXNlPSExLHVlKyssWi5lbGVtZW50cz1bXSksWi5lbGVtZW50cy5wdXNoKHRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoQmUpKTticmVha319KSxaLmVsZW1lbnRzLmxlbmd0aD4w''@;'; put 'put ''JiYobmlbeV0uZmlsdGVyLmNsYXVzZXMucXVlcnlPYmoucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKFopKSxuaVt5XS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9ialt1ZV0uY2xhdXNlTG9naWM9SSxuaVt5XS5maWx0ZXIuY2xhdXNlcy5xdWVyeU9ialt1ZV0uaW52YWxpZENsYXVz''@;'; put 'put ''ZT0hMSksbmlbeV0uZmlsdGVyLnF1ZXJ5PVtdfXJlbW92ZUNsYXVzZSgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7cmV0dXJuIHRoaXMucmVtb3ZlUXVlcnkubmV4dCghMCksITB9KX1zcGVjQ29udmVyc2lvbihoKXtsZXQgdj17fSx5PVtdO2lmKHk9aC5tYXAo''@;'; put 'put ''ZnVuY3Rpb24oQyl7cmV0dXJuIEMuTkFNRS50b1VwcGVyQ2FzZSgpfSksaCBpbnN0YW5jZW9mIEFycmF5KWZvcihsZXQgQz0wO0M8eS5sZW5ndGg7QysrKXZbeVtDXV09MT09PWhbQ10uVFlQRT97Y29sVHlwZToibnVtIixjb2xMZW5ndGg6aFtDXS5MRU5HVEh9Ontjb2xUeXBlOiJzdHJpbmci''@;'; put 'put ''LGNvbExlbmd0aDpoW0NdLkxFTkdUSH07cmV0dXJuIHZ9c2V0U3VibWl0UmVhZHkoKXt0aGlzLnNldFN1Ym1pdC5uZXh0KCEwKX1nb1RvU3VibWl0TGlzdCgpe3RoaXMuc2V0U3VibWl0TGlzdC5uZXh0KCEwKX1wYXJzZUZvcm1hdHMoaCl7Y29uc3Qgdj17fSx5PWgudmFycztmb3IobGV0IEMg''@;'; put 'put ''b2YgT2JqZWN0LmtleXMoeSkpe2NvbnN0IEk9eVtDXS50eXBlLFo9eVtDXS5sZW5ndGg7Im51bSI9PT1JP3ZbQ109ImJlc3QuIjoiY2hhciI9PT1JJiYodltDXT1gJGNoYXIke1p9LmApfXJldHVybiB2fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShD''@;'; put 'put ''aShnMiksQ2koWGMpLENpKHNjKSl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSksZH0pKCk7ZnVuY3Rpb24gUUhlKGQsZyl7MSZkJiYobnQoMCwiZGl2Iiw5KSgxLCJkaXYiLDEwKSxDcigyLCJjbHItaWNvbiIsMTEpLG50KDMsImgzIiwxMiksWXQoNCwi''@;'; put 'put ''VGhlcmUgYXJlIG5vIGFwcHJvdmFscyByZW1haW5pbmciKSxvdCgpKCkoKSl9ZnVuY3Rpb24gSkhlKGQsZyl7MSZkJiYobnQoMCwiaDMiLDEzKSxZdCgxLCIgUkVWSUVXICIpLG90KCkpfWZ1bmN0aW9uIFhIZShkLGcpe2lmKDEmZCYmKG50KDAsInAiLDE0KSxZdCgxLCIgWW91IGhhdmUgIiks''@;'; put 'put ''bnQoMiwic3BhbiIpLFl0KDMpLG90KCksWXQoNCwiYXBwcm92YWxzIHJlbWFpbmluZyAiKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgzKSxKaSgiIixoLnJlbWFpbmVkLCIgIil9fWZ1bmN0aW9uIEtIZShkLGcpezEmZCYmKG50KDAsInNwYW4iLDE3KSxZdCgxLCIgTG9hZGluZy4uLiAi''@;'; put 'put ''KSxvdCgpKX1mdW5jdGlvbiAkSGUoZCxnKXsxJmQmJihudCgwLCJkaXYiKSgxLCJoMyIpLFl0KDIsIkxvYWRpbmcgYXBwcm92YWxzIGxpc3QiKSxvdCgpKCkpfWZ1bmN0aW9uIHFIZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMTUpLHJuKDEsS0hlLDIsMCwic3BhbiIsMTYpLHJuKDIsJEhl''@;'; put 'put ''LDMsMCwiZGl2Iiw4KSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gZU5lKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMzgpfWZ1bmN0aW9uIHROZShkLGcpezEmZCYmQ3IoMCwi''@;'; put 'put ''Y2xyLXNwaW5uZXIiLDM5KSwyJmQmJlR0KCJjbHJTbWFsbCIsITApfWZ1bmN0aW9uIG5OZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1kZy1yb3ciKSgxLCJjbHItZGctY2VsbCIpLFl0KDIpLG90KCksbnQoMywiY2xyLWRnLWNlbGwiKSxZdCg0KSxvdCgpLG50KDUsImNs''@;'; put 'put ''ci1kZy1jZWxsIiksWXQoNiksb3QoKSxudCg3LCJjbHItZGctY2VsbCIpLFl0KDgpLG90KCksbnQoOSwiY2xyLWRnLWNlbGwiKSgxMCwiZGl2IiwyNikoMTEsImEiLDI3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1pdChoKS5pbmRleDtyZXR1cm4gYShRdCgyKS5nZXRDbGlja2Vk''@;'; put 'put ''KEMpKX0pLENyKDEyLCJjbHItaWNvbiIsMjgpLG50KDEzLCJzcGFuIiwyOSksWXQoMTQsIkdvIHRvIHJldmlldyBwYWdlIHNjcmVlbiIpLG90KCkoKSxudCgxNSwiYSIsMzApLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCB5PWl0KGgpLEM9eS4kaW1wbGljaXQsST15LmluZGV4LFo9UXQo''@;'; put 'put ''Mik7cmV0dXJuIGEoQy5yZWplY3RMb2FkaW5nPyIiOloucmVqZWN0aW5nKEkpKX0pLHJuKDE2LGVOZSwxLDAsImNsci1pY29uIiwzMSkscm4oMTcsdE5lLDEsMSwiY2xyLXNwaW5uZXIiLDMyKSxudCgxOCwic3BhbiIsMjkpLFl0KDE5LCJSZWplY3QiKSxvdCgpKCksbnQoMjAsImEiLDMzKSxH''@;'; put 'put ''bigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1pdChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoMikuZ2V0VGFibGUoQy50YWJsZUlkKSl9KSxDcigyMSwiY2xyLWljb24iLDM0KSxudCgyMiwic3BhbiIsMjkpLFl0KDIzLCJHbyB0byBzdGFnZWQgZGF0YSBzY3JlZW4iKSxvdCgpKCkoKSgp''@;'; put 'put ''LG50KDI0LCJjbHItZGctY2VsbCIsMzUpKDI1LCJidXR0b24iLDM2KSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2NvbnN0IEk9aXQoaCkuJGltcGxpY2l0O3JldHVybiBRdCgyKS5kb3dubG9hZChJLnRhYmxlSWQpLGEoeS5zdG9wUHJvcGFnYXRpb24oKSl9KSxDcigyNiwiY2xyLWljb24iLDM3''@;'; put 'put ''KSxvdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMiksamkoaC5zdWJtaXR0ZXIpLHV0KDIpLGppKGguYmFzZVRhYmxlKSx1dCgyKSxqaShoLnN1Ym1pdHRlZCksdXQoMiksamkoaC5zdWJtaXRSZWFzb24pLHV0KDgpLFR0KCJuZ0lmIiwhaC5yZWplY3RMb2FkaW5nKSx1''@;'; put 'put ''dCgxKSxUdCgibmdJZiIsaC5yZWplY3RMb2FkaW5nKSx1dCg4KSxUdCgiaWQiLGgudGFibGVJZCl9fWZ1bmN0aW9uIHJOZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIpKDEsImNsci1kYXRhZ3JpZCIsMTgpKDIsImNsci1kZy1jb2x1bW4iLDE5KSxZdCgzLCJTVUJNSVRU''@;'; put 'put ''RVIiKSxvdCgpLG50KDQsImNsci1kZy1jb2x1bW4iLDE5KSxZdCg1LCJCQVNFIFRBQkxFIiksb3QoKSxudCg2LCJjbHItZGctY29sdW1uIiwxOSksWXQoNywiU1VCTUlUVEVEIiksb3QoKSxudCg4LCJjbHItZGctY29sdW1uIiwxOSksWXQoOSwiU1VCTUlUIFJFQVNPTiIpLG90KCksbnQoMTAs''@;'; put 'put ''ImNsci1kZy1jb2x1bW4iKSxZdCgxMSwiQUNUSU9OIiksb3QoKSxudCgxMiwiY2xyLWRnLWNvbHVtbiIpLFl0KDEzLCJET1dOTE9BRCIpLG90KCkscm4oMTQsbk5lLDI3LDcsImNsci1kZy1yb3ciLDIwKSxudCgxNSwiY2xyLWRnLWZvb3RlciIsMjEpKDE2LCJzcGFuIiksWXQoMTcsIml0ZW1z''@;'; put 'put ''IHBlciBwYWdlIiksb3QoKSxudCgxOCwic2VsZWN0IiwyMiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuaXRlbXNOdW09eSl9KSxudCgxOSwib3B0aW9uIiwyMyksWXQoMjAsIjMiKSxvdCgpLG50KDIxLCJvcHRpb24iLDIzKSxZdCgyMiwiNSIp''@;'; put 'put ''LG90KCksbnQoMjMsIm9wdGlvbiIsMjMpLFl0KDI0LCIxMCIpLG90KCksbnQoMjUsIm9wdGlvbiIsMjMpLFl0KDI2LCIxNSIpLG90KCkoKSxudCgyNywiY2xyLWRnLXBhZ2luYXRpb24iLDI0LDI1KSxZdCgyOSksb3QoKSgpKCkoKX1pZigyJmQpe2NvbnN0IGg9dmEoMjgpLHY9UXQoKTt1dCgy''@;'; put 'put ''KSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlciIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwiYmFzZVRhYmxlIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJzdWJtaXR0ZWQiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdFJlYXNvbiIpLHV0KDYpLFR0KCJjbHJEZ0l0ZW1zT2YiLHYu''@;'; put 'put ''YXBwcm92ZUxpc3QpLHV0KDQpLFR0KCJuZ01vZGVsIix2Lml0ZW1zTnVtKSx1dCgxKSxUdCgibmdWYWx1ZSIsMyksdXQoMiksVHQoIm5nVmFsdWUiLDUpLHV0KDIpLFR0KCJuZ1ZhbHVlIiwxMCksdXQoMiksVHQoIm5nVmFsdWUiLDE1KSx1dCgyKSxUdCgiY2xyRGdQYWdlU2l6ZSIsdi5pdGVt''@;'; put 'put ''c051bSksdXQoMiksa2YoIiAiLGguZmlyc3RJdGVtKzEsIiAtICIsaC5sYXN0SXRlbSsxLCIgb2YgIixoLnRvdGFsSXRlbXMsIiBhcHByb3ZhbHMgIil9fWNvbnN0IGlOZT1mdW5jdGlvbihkKXtyZXR1cm57bm9Cb3JkZXI6ZH19O2xldCBOd2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvciho''@;'; put 'put ''LHYseSxDLEkpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLnJvdXRlPXksdGhpcy5zYXNTZXJ2aWNlPUMsdGhpcy5jZHI9SSx0aGlzLmxvYWRlZD0hMSx0aGlzLml0ZW1zTnVtPTEwfWdldFRhYmxlKGgpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgi''@;'; put 'put ''L3N0YWdlLyIraCl9Z2V0Q2xpY2tlZChoKXt2b2lkIDAhPT10aGlzLmFwcHJvdmVMaXN0JiYodGhpcy50YWJsZUlkPXRoaXMuYXBwcm92ZUxpc3RbaF0udGFibGVJZCx0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoImFwcHJvdmUvYXBwcm92ZURldC8iK3RoaXMuYXBwcm92ZUxpc3RbaF0udGFi''@;'; put 'put ''bGVJZCkpfXJlamVjdGluZyhoKXt2YXIgdjtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3ZvaWQgMCE9PXRoaXMuYXBwcm92ZUxpc3QmJih0aGlzLnRhYmxlSWQ9dGhpcy5hcHByb3ZlTGlzdFtoXS50YWJsZUlkKTtsZXQgeT17U1RQX0FDVElPTjoiUkVKRUNUX1RB''@;'; put 'put ''QkxFIixUQUJMRTp0aGlzLnRhYmxlSWQsU1RQX1JFQVNPTjoicXVpY2sgcmVqZWN0aW9uIn07dHJ5eyh0aGlzLmFwcHJvdmVMaXN0fHxbXSlbaF0ucmVqZWN0TG9hZGluZz0hMCwoeWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UucmVqZWN0aW5nKHksIkJyb3dzZXJQYXJhbXMiLCJhcHByb3Zl''@;'; put 'put ''cnMvcmVqZWN0aW9uIikpLmZyb21zYXNbMF0uUkVTUE9OU0UuaW5jbHVkZXMoIlNVQ0NFU1MiKSYmKCh0aGlzLmFwcHJvdmVMaXN0fHxbXSlbaF0ucmVqZWN0TG9hZGluZz0hMSxudWxsPT09KHY9dGhpcy5hcHByb3ZlTGlzdCl8fHZvaWQgMD09PXZ8fHYuc3BsaWNlKGgsMSksdGhpcy5yZW1h''@;'; put 'put ''aW5lZC0tLHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKSl9Y2F0Y2goQyl7dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhcHByb3ZlcnMvcmVqZWN0aW9uIixDKX19KX1uZ09uSW5pdCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5m''@;'; put 'put ''ZXRjaEFwcHJvdmFscygpfSl9ZmV0Y2hBcHByb3ZhbHMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuaXRlbXNOdW09MTA7bGV0IGg9e1NUUF9BQ1RJT046Ik9QRU5fQVBQUk9WQUxTIn07dHJ5e2xldCB2PXlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNl''@;'; put 'put ''LmdldEFwcHJvdmFscyhoLCJCcm93c2VyUGFyYW1zIiwiYXBwcm92ZXJzL2dldGFwcHJvdmFscyIpO3RoaXMucmVtYWluZWQ9di5mcm9tc2FzLmxlbmd0aDtsZXQgeT12LmZyb21zYXMubWFwKGZ1bmN0aW9uKEMpe3JldHVybnt0YWJsZUlkOkMuVEFCTEVfSUQsc3VibWl0dGVyOkMuU1VCTUlU''@;'; put 'put ''VEVEX0JZX05NLHN1Ym1pdHRlZDpDLlNVQk1JVFRFRF9PTl9EVFRNLGJhc2VUYWJsZTpDLkJBU0VfVEFCTEUsc3VibWl0UmVhc29uOkMuU1VCTUlUVEVEX1JFQVNPTl9UWFR9fSk7dGhpcy5hcHByb3ZlTGlzdD15LHRoaXMubG9hZGVkPSEwfWNhdGNoKHYpe3RoaXMuZXZlbnRTZXJ2aWNlLmNh''@;'; put 'put ''dGNoUmVzcG9uc2VFcnJvcigiYXBwcm92ZXJzL2dldGFwcHJvdmFscyIsdil9fSl9ZG93bmxvYWQoaCl7bGV0IHY9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkseT12LnNlcnZlclVybCxDPXYuYXBwTG9jLEk9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5k''@;'; put 'put ''b3cub3Blbih5K0krIi8/X3Byb2dyYW09IitDKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIraCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGtnKSxLdChtdSksS3QoWmwpLEt0KGcyKSxLdChkMSkpfSxkLlx1MDI3''@;'; put 'put ''NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtYXBwcm92ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6OSx2YXJzOjgsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1j''@;'; put 'put ''ZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwiY2VudGVyIGNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgZm9udC13ZWlnaHQtNzAwIGNvbG9yLWRhcmstZ3JheSIsNCwibmdJZiJd''@;'; put 'put ''LFsiY2xhc3MiLCJhcHByb3ZhbHMtbGlzdC13cmFwcGVyIiw0LCJuZ0lmIl0sWyJuZy1pZiIsImxvYWRlZCIsMSwiY2xyLWNvbC1tZC0xMiJdLFs0LCJuZ0lmIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiY2FyZC1ibG9jayIsIm5vYXBwcm92YWxzLWluZm8t''@;'; put 'put ''d3JhcHBlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIiwiaWNvbi1kYy1maWxsIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsxLCJjZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiXSxbMSwidGV4dC1jZW50''@;'; put 'put ''ZXIiLCJmb250LXdlaWdodC03MDAiLCJjb2xvci1kYXJrLWdyYXkiXSxbMSwiYXBwcm92YWxzLWxpc3Qtd3JhcHBlciJdLFsiY2xhc3MiLCJzcGlubmVyIiw0LCJuZ0lmIl0sWzEsInNwaW5uZXIiXSxbMSwiZGF0YWdyaWQtY29tcGFjdCIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywi''@;'; put 'put ''Y2xyRGdGaWVsZCJdLFs0LCJjbHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09mIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1zdGFydCJdLFszLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJuZ1ZhbHVlIl0sWzEsImNlbnRlciIsMywiY2xyRGdQYWdlU2l6ZSJdLFsicGFnaW5h''@;'; put 'put ''dGlvbiIsIiJdLFsicm9sZSIsInRvb2x0aXAiLDEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1hcm91bmQiXSxbMSwiY29sdW1uLWNlbnRlciIsImxpbmtzIiwidG9vbHRpcCIsInRvb2x0aXAtbWQiLCJ0b29sdGlwLWJvdHRvbS1sZWZ0IiwiY29sb3ItZ3JlZW4iLDMsImNsaWNrIl0sWyJz''@;'; put 'put ''aGFwZSIsImNoZWNrIiwic2l6ZSIsIjI0Il0sWzEsInRvb2x0aXAtY29udGVudCJdLFsxLCJjb2x1bW4tY2VudGVyIiwibGlua3MiLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLCJjb2xvci1yZWQiLDMsImNsaWNrIl0sWyJzaGFwZSIsImJhbiIsInNpemUi''@;'; put 'put ''LCIyMiIsNCwibmdJZiJdLFszLCJjbHJTbWFsbCIsNCwibmdJZiJdLFsxLCJjb2x1bW4tY2VudGVyIiwibGlua3MiLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtYm90dG9tLWxlZnQiLCJjb2xvci1ibHVlIiwzLCJjbGljayJdLFsic2hhcGUiLCJjb2RlIiwic2l6ZSIsIjI4Il0s''@;'; put 'put ''WzEsInAtMCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDMsImlkIiwiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQiXSxbInNoYXBlIiwiYmFuIiwic2l6ZSIsIjIyIl0sWzMsImNsclNtYWxsIl1dLHRlbXBsYXRlOmZ1bmN0aW9u''@;'; put 'put ''KGgsdil7MSZoJiYobnQoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLHJuKDIsUUhlLDUsMCwiZGl2IiwyKSxudCgzLCJkaXYiLDMpLHJuKDQsSkhlLDIsMCwiaDMiLDQpLHJuKDUsWEhlLDUsMSwicCIsNSksb3QoKSxybig2LHFIZSwzLDIsImRpdiIsNiksbnQoNywiZGl2Iiw3KSxybig4LHJOZSwz''@;'; put 'put ''MCwxNCwiZGl2Iiw4KSxvdCgpKCkoKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLDA9PT12LnJlbWFpbmVkKSx1dCgxKSxUdCgibmdDbGFzcyIsR2QoNixpTmUsIXYubG9hZGVkKSksdXQoMSksVHQoIm5nSWYiLHYubG9hZGVkJiYwIT09di5yZW1haW5lZCksdXQoMSksVHQoIm5nSWYiLHYubG9h''@;'; put 'put ''ZGVkJiYwIT09di5yZW1haW5lZCksdXQoMSksVHQoIm5nSWYiLCF2LmxvYWRlZCksdXQoMiksVHQoIm5nSWYiLHYuYXBwcm92ZUxpc3QmJjAhPT12LnJlbWFpbmVkKSl9LGRlcGVuZGVuY2llczpbbGMsTm8sJDMscTMsT2YsVHMsSXMsR0wsZ1MsekwsbVMsbXcsZlosaFosWUwsQVMseVMsdlMs''@;'; put 'put ''cHcsVkwsWkwsd2wsZ2FdLHN0eWxlczpbIi5jb2x1bW4tY2VudGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyfS5kYXRhZ3JpZFtfbmdjb250ZW50LSVDT01QJV0g''@;'; put 'put ''ICAuZGF0YWdyaWQtY29sdW1uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRhZ3JpZC1jb2x1bW4tdGl0bGVbX25nY29udGVudC0lQ09NUCVde291dGxpbmU6bm9uZSFpbXBvcnRhbnR9LmxpbmtzW19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXJ9LnRv''@;'; put 'put ''b2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdFtfbmdjb250ZW50LSVDT01QJV0gPiAudG9vbHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNP''@;'; put 'put ''TVAlXXtiYWNrZ3JvdW5kOiMzMTQzNTEhaW1wb3J0YW50fS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV06YmVmb3JlLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gICAudG9vbHRp''@;'; put 'put ''cC1jb250ZW50LnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLWJvdHRvbTouMjA4MzNyZW0gc29saWQgIzMxNDM1MX0ubm9Cb3JkZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci1i''@;'; put 'put ''b3R0b206MXB4IHNvbGlkIHRyYW5zcGFyZW50IWltcG9ydGFudH0uYXBwcm92YWxzLWxpc3Qtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0Ojcwdmg7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNl''@;'; put 'put ''bnRlcn0ubm9hcHByb3ZhbHMtaW5mby13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2hlaWdodDpjYWxjKDEwMHZoIC0gMjAwcHgpfSJdfSksZH0pKCk7''@;'; put 'put ''ZnVuY3Rpb24gb05lKGQsZyl7aWYoMSZkJiYobnQoMCwidHIiKSgxLCJ0ZCIsNCksWXQoMiksb3QoKSxudCgzLCJ0ZCIsNCksWXQoNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1RdCgpO3V0KDIpLGppKGgpLHV0KDIpLGppKHYuanNQYXJhbXNbaF0pfX1mdW5jdGlvbiBh''@;'; put 'put ''TmUoZCxnKXsxJmQmJihudCgwLCJwIiw2NiksWXQoMSwiIFRoZXJlIGFyZSBubyBkZXRhaWxzIHRvIHNob3cgIiksb3QoKSl9ZnVuY3Rpb24gbE5lKGQsZyl7aWYoMSZkJiYoQjAoMCksbnQoMSwiZGl2Iiw2NykoMiwic3BhbiIpLFl0KDMsIlRhYmxlIElkOiIpLG90KCksbnQoNCwic3Ryb25n''@;'; put 'put ''IiksWXQoNSksb3QoKSgpLG50KDYsImRpdiIpKDcsInNwYW4iKSxZdCg4LCJTdWJtaXR0ZXI6Iiksb3QoKSxudCg5LCJzcGFuIiw2OCksWXQoMTApLG90KCkoKSxudCgxMSwiZGl2IikoMTIsInNwYW4iKSxZdCgxMywiU3VibWl0dGVkIG9uOiIpLG90KCksbnQoMTQsInNwYW4iLDY4KSxZdCgx''@;'; put 'put ''NSksb3QoKSgpLG50KDE2LCJkaXYiKSgxNywic3BhbiIpLFl0KDE4LCJTdWJtaXR0ZWQgUmVhc29uOiIpLG90KCksbnQoMTksInNwYW4iLDY4KSxZdCgyMCksb3QoKSgpLFAwKCkpLDImZCl7Y29uc3QgaD1RdCg1KTt1dCg1KSxKaSgiICIsbnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRh''@;'; put 'put ''YmxlRGV0YWlscy5UQUJMRV9JRCwiICIpLHV0KDUpLEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9CWV9OTSwiICIpLHV0KDUpLEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9P''@;'; put 'put ''Tl9EVFRNLCIgIiksdXQoNSksSmkoIiAiLG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuU1VCTUlUVEVEX1JFQVNPTl9UWFQsIiAiKX19ZnVuY3Rpb24gc05lKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw0MykoMSwiZGl2Iiw0NCkoMiwiZGl2''@;'; put 'put ''Iiw0NSkscm4oMyxhTmUsMiwwLCJwIiwzOSkscm4oNCxsTmUsMjEsNCwibmctY29udGFpbmVyIiwxNiksb3QoKSxudCg1LCJkaXYiLDQ2KSg2LCJkaXYiLDQ3KSg3LCJkaXYiLDQ4KSg4LCJkaXYiLDQ5KSg5LCJidXR0b24iLDUwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3Qg''@;'; put 'put ''eT1RdCg0KTtyZXR1cm4gYSh5LmdvVG9CYXNlKG51bGw9PXkuanNQYXJhbXM/bnVsbDp5LmpzUGFyYW1zLlRBQkxFX05NKSl9KSxZdCgxMCwiIEdvIHRvIGJhc2UgdGFibGUgc2NyZWVuICIpLG90KCksbnQoMTEsImJ1dHRvbiIsNTEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25z''@;'; put 'put ''dCB5PVF0KDQpO3JldHVybiBhKHkuZ2V0VGFibGUoeS50YWJsZUlkKSl9KSxZdCgxMiwiIEdvIHRvIGVkaXRlZCBzY3JlZW4gIiksb3QoKSxudCgxMywiYnV0dG9uIiw1MiksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoNCk7cmV0dXJuIGEoeS5nb0JhY2sobnVsbD09''@;'; put 'put ''eS5qc1BhcmFtcz9udWxsOnkuanNQYXJhbXMuVEFCTEVfTk0pKX0pLFl0KDE0LCIgR28gYmFjayB0byBlZGl0b3IgIiksb3QoKSgpKCkoKSxudCgxNSwiZGl2Iiw1MykoMTYsImJ1dHRvbiIsNTQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCg0KS5hcHByb3ZlVGFi''@;'; put 'put ''bGUoKSl9KSxZdCgxNywiIEFDQ0VQVCAiKSxvdCgpLG50KDE4LCJidXR0b24iLDU1KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoNCkucmVqZWN0T3Blbj0hMCl9KSxZdCgxOSwiIFJFSkVDVCAiKSxvdCgpLG50KDIwLCJjbHItdG9nZ2xlLWNvbnRhaW5lciIsNTYp''@;'; put 'put ''KDIxLCJjbHItdG9nZ2xlLXdyYXBwZXIiKSgyMiwiaW5wdXQiLDU3KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoNCkuZm9ybWF0dGVkVmFsdWVzPXkpfSkoImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCg0KS5mb3JtYXR0aW5n''@;'; put 'put ''Q2hhbmdlZCgpKX0pLG90KCksbnQoMjMsImxhYmVsIiw1OCksWXQoMjQpLG90KCkoKSgpKCksbnQoMjUsImRpdiIsNDcpKDI2LCJkaXYiLDI1KSgyNywiZGl2Iiw1OSkoMjgsInNwYW4iLDYwKSxZdCgyOSwiIENoYW5nZWQgUm93cyAiKSxudCgzMCwic3BhbiIsNjEpLFl0KDMxKSxvdCgpKCks''@;'; put 'put ''bnQoMzIsInNwYW4iLDYyKSxZdCgzMywiIEFkZGVkIFJvd3MgIiksbnQoMzQsInNwYW4iLDYzKSxZdCgzNSksb3QoKSgpLG50KDM2LCJzcGFuIiw2NCksWXQoMzcsIiBEZWxldGVkIFJvd3MgIiksbnQoMzgsInNwYW4iLDY1KSxZdCgzOSksb3QoKSgpKCkoKSgpKCkoKSgpfWlmKDImZCl7Y29u''@;'; put 'put ''c3QgaD1RdCg0KTt1dCgzKSxUdCgibmdJZiIsIWgudGFibGVEZXRhaWxzKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZURldGFpbHMpLHV0KDEyKSxUdCgiY2xyTG9hZGluZyIsaC5hY2NlcHRMb2FkaW5nKSgiZGlzYWJsZWQiLCFoLmxvYWRpbmdUYWJsZXx8Ik5PIj09PShudWxsPT1oLnBhcmFt''@;'; put 'put ''cz9udWxsOmgucGFyYW1zLklTQVBQUk9WRVIpfHxoLm5vQ2hhbmdlcyksdXQoMiksVHQoImRpc2FibGVkIiwhaC5sb2FkaW5nVGFibGV8fCJOTyI9PT0obnVsbD09aC5wYXJhbXM/bnVsbDpoLnBhcmFtcy5JU0FQUFJPVkVSKXx8aC5ub0NoYW5nZXMpLHV0KDQpLFR0KCJuZ01vZGVsIixoLmZv''@;'; put 'put ''cm1hdHRlZFZhbHVlcyksdXQoMiksamkoaC5mb3JtYXR0ZWRWYWx1ZXM/IkZvcm1hdHRlZCI6IlVuZm9ybWF0dGVkIiksdXQoNyksamkoaC5sZW5zLnVwZGF0ZWQpLHV0KDQpLGppKGgubGVucy5uZXcpLHV0KDQpLGppKGgubGVucy5kZWxldGVkKX19ZnVuY3Rpb24gdU5lKGQsZyl7MSZkJiYo''@;'; put 'put ''bnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIHRhYmxlIiksb3QoKSgpKX1mdW5jdGlvbiBjTmUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDY5KSgxLCJzcGFuIiw3MCksWXQoMiwiIExvYWRpbmcuLi4gIiksb3QoKSxybigzLHVOZSwzLDAsImRpdiIsMTYpLG90KCkpLDImZCl7''@;'; put 'put ''Y29uc3QgaD1RdCg0KTt1dCgzKSxUdCgibmdJZiIsIWgubG9hZGluZ1RhYmxlKX19ZnVuY3Rpb24gZk5lKGQsZyl7MSZkJiYobnQoMCwicCIsNjYpLFl0KDEsIiBUaGVyZSBhcmUgbm8gY2hhbmdlcyB0byBzaG93ICIpLG90KCkpfWZ1bmN0aW9uIGhOZShkLGcpe2lmKDEmZCYmKG50KDAsInRo''@;'; put 'put ''Iiw0KSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksamkoaCl9fWZ1bmN0aW9uIGROZShkLGcpe2lmKDEmZCYmKG50KDAsInNwYW4iLDc1KSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKS5pbmRleCx2PVF0KDIpLmluZGV4LHk9UXQoNCk7dXQoMSksSmko''@;'; put 'put ''Ik9yaWdpbmFsIHZhbHVlIGlzOiAiLHkuYXJyT2ZDaGFuZ2VzW3ZdW2hdLCIiKX19Y29uc3QgVndlPWZ1bmN0aW9uKGQpe3JldHVybnsiY2ggdG9vbHRpcCB0b29sdGlwLW1kIHRvb2x0aXAtdG9wLXJpZ2h0IjpkfX07ZnVuY3Rpb24gcE5lKGQsZyl7aWYoMSZkJiYobnQoMCwidGQiLDczKSxZ''@;'; put 'put ''dCgxKSxybigyLGROZSwyLDEsInNwYW4iLDc0KSxvdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmluZGV4LHk9UXQoMikuaW5kZXgsQz1RdCg0KTtUdCgibmdDbGFzcyIsR2QoMyxWd2UsMT09Qy5hcnJDaGFuZ2VkW3ldW3ZdJiYidXBkYXRlZCI9PUMuY2hBcnJbeV0pKSx1dCgx''@;'; put 'put ''KSxKaSgiICIsQy5kaWZmVGFibGUuZGF0YVt5XVtoXSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwxPT1DLmFyckNoYW5nZWRbeV1bdl0mJiJ1cGRhdGVkIj09Qy5jaEFyclt5XSl9fWZ1bmN0aW9uIGdOZShkLGcpe2lmKDEmZCYmKEIwKDApLHJuKDEscE5lLDMsNSwidGQiLDcyKSxQMCgpKSwyJmQp''@;'; put 'put ''e2NvbnN0IGg9UXQoKS5pbmRleCx2PVF0KDQpO3V0KDEpLFR0KCJuZ0Zvck9mIix2LnJvd0tleXNbaF0pfX1mdW5jdGlvbiBtTmUoZCxnKXtpZigxJmQmJihudCgwLCJ0ZCIsNCksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9UXQoMikuaW5kZXgseT1RdCg0KTt1dCgx''@;'; put 'put ''KSxKaSgiICIseS5kaWZmVGFibGUuZGF0YVt2XVtoXSwiICIpfX1mdW5jdGlvbiB2TmUoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLG1OZSwyLDEsInRkIiw0MSksUDAoKSksMiZkKXtjb25zdCBoPVF0KCkuaW5kZXgsdj1RdCg0KTt1dCgxKSxUdCgibmdGb3JPZiIsdi5yb3dLZXlzW2hdKX19''@;'; put 'put ''Y29uc3QgandlPWZ1bmN0aW9uKGQsZyxoKXtyZXR1cm57YWRkZWRSb3c6ZCxkZWxldGVkUm93OmcsdXBkYXRlZFJvdzpofX07ZnVuY3Rpb24gQU5lKGQsZyl7aWYoMSZkJiYobnQoMCwidHIiLDcxKSxybigxLGdOZSwyLDEsIm5nLWNvbnRhaW5lciIsMTYpLHJuKDIsdk5lLDIsMSwibmctY29u''@;'; put 'put ''dGFpbmVyIiwxNiksb3QoKSksMiZkKXtjb25zdCBoPWcuaW5kZXgsdj1RdCg0KTtUdCgibmdDbGFzcyIsSCgzLGp3ZSwiYWRkZWQiPT12LmNoQXJyW2hdLCJkZWxldGVkIj09di5jaEFycltoXSwidXBkYXRlZCI9PXYuY2hBcnJbaF0pKSx1dCgxKSxUdCgibmdJZiIsInVwZGF0ZWQiPT09di5j''@;'; put 'put ''aEFycltoXSksdXQoMSksVHQoIm5nSWYiLCJ1cGRhdGVkIiE9PXYuY2hBcnJbaF0pfX1mdW5jdGlvbiB5TmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDIzKSgxLCJkaXYiLDI0KSgyLCJkaXYiLDI1KSgzLCJkaXYiLDI2KSg0LCJzcGFuIiwyNyksR24oImNsaWNrIixm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDMpLmdvVG9BcHByb3ZhbHNMaXN0KCkpfSksQ3IoNSwiY2xyLWljb24iLDI4KSxZdCg2LCJCYWNrIHRvIGFwcHJvdmFscyBsaXN0ICIpLG90KCkoKSxudCg3LCJkaXYiLDI5KSg4LCJoMyIsMzApLFl0KDkpLG90KCkoKSxudCgxMCwiZGl2Iiwz''@;'; put 'put ''MSkoMTEsImEiLDMyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMykuZ2V0RGV0YWlscygpKX0pLENyKDEyLCJjbHItaWNvbiIsMzMpLG90KCkoKSgpLG50KDEzLCJwIiwzNCksWXQoMTQpLG90KCkoKSxudCgxNSwiZGl2IiwzNSkscm4oMTYsc05lLDQwLDEwLCJk''@;'; put 'put ''aXYiLDM2KSxvdCgpLHJuKDE3LGNOZSw0LDEsImRpdiIsMzcpLG50KDE4LCJkaXYiLDM4KSxybigxOSxmTmUsMiwwLCJwIiwzOSksbnQoMjAsInRhYmxlIiwzKSgyMSwidGhlYWQiKSgyMiwidHIiLDQwKSxybigyMyxoTmUsMiwxLCJ0aCIsNDEpLG90KCkoKSxudCgyNCwidGJvZHkiKSxybigy''@;'; put 'put ''NSxBTmUsMyw3LCJ0ciIsNDIpLG90KCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KDMpO3V0KDkpLEppKCIgIixudWxsPT1oLmpzUGFyYW1zP251bGw6aC5qc1BhcmFtcy5UQUJMRV9OTSwiICIpLHV0KDUpLEppKCIgIixudWxsPT1oLmpzUGFyYW1zP251bGw6aC5qc1BhcmFtcy5UQUJMRV9E''@;'; put 'put ''RVNDLCIgIiksdXQoMiksVHQoIm5nSWYiLGgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGluZ1RhYmxlKSx1dCgyKSxUdCgibmdJZiIsaC5sb2FkaW5nVGFibGUmJmgubm9DaGFuZ2VzKSx1dCg0KSxUdCgibmdGb3JPZiIsaC5yb3dIZWFkZXIpLHV0KDIpLFR0KCJuZ0Zvck9mIixo''@;'; put 'put ''LnJvd0tleXMpfX1mdW5jdGlvbiB3TmUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDIxKSxybigxLHlOZSwyNiw3LCJkaXYiLDIyKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMSksVHQoIm5nSWYiLGgubG9hZGVkKX19ZnVuY3Rpb24gYk5lKGQsZyl7MSZkJiYobnQoMCwic3BhbiIs''@;'; put 'put ''NzApLFl0KDEsIiBMb2FkaW5nLi4uICIpLG90KCkpfWZ1bmN0aW9uIF9OZShkLGcpezEmZCYmKG50KDAsImRpdiIpKDEsImgzIiksWXQoMiwiTG9hZGluZyBwcmV2aWV3Iiksb3QoKSgpKX1mdW5jdGlvbiBDTmUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDc2KSxybigxLGJOZSwyLDAsInNw''@;'; put 'put ''YW4iLDc3KSxybigyLF9OZSwzLDAsImRpdiIsMTYpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24ga05lKGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2IiwxNykscm4oMSx3TmUsMiwx''@;'; put 'put ''LCJkaXYiLDE4KSxudCgyLCJkaXYiLDE5KSxybigzLENOZSwzLDIsImRpdiIsMjApLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMSksVHQoIm5nSWYiLGgubG9hZGVkKSx1dCgyKSxUdCgibmdJZiIsIWgubG9hZGVkKX19ZnVuY3Rpb24gU05lKGQsZyl7aWYoMSZkJiYobnQoMCwidHIi''@;'; put 'put ''KSgxLCJ0ZCIsNCksWXQoMiksb3QoKSxudCgzLCJ0ZCIsNCksWXQoNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1RdCg2KTt1dCgyKSxqaShoKSx1dCgyKSxqaSh2LnN1Ym1pdERldGFpbHNbaF0pfX1mdW5jdGlvbiBNTmUoZCxnKXtpZigxJmQmJihudCgwLCJjbHItdGFi''@;'; put 'put ''LWNvbnRlbnQiKSgxLCJkaXYiLDk3KSgyLCJ0YWJsZSIsMykoMywidGhlYWQiKSg0LCJ0ciIpKDUsInRoIiw0KSxZdCg2LCJOYW1lIiksb3QoKSxudCg3LCJ0aCIsNCksWXQoOCwiVmFsdWUiKSxvdCgpKCkoKSxudCg5LCJ0Ym9keSIpLHJuKDEwLFNOZSw1LDIsInRyIiw1KSxvdCgpKCkoKSgp''@;'; put 'put ''KSwyJmQpe2NvbnN0IGg9UXQoNSk7dXQoMTApLFR0KCJuZ0Zvck9mIixoLnN1Ym1pdEFycil9fWZ1bmN0aW9uIEVOZShkLGcpe2lmKDEmZCYmKG50KDAsInRyIikoMSwidGQiLDQpLFl0KDIpLG90KCksbnQoMywidGQiLDQpLFl0KDQpLG90KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0''@;'; put 'put ''LHY9UXQoNSk7dXQoMiksamkoaCksdXQoMiksamkodi5qc1BhcmFtc1toXSl9fWZ1bmN0aW9uIHhOZShkLGcpe2lmKDEmZCYmKG50KDAsImNsci10YWJzIikoMSwiY2xyLXRhYiIpKDIsImJ1dHRvbiIsOTUpLFl0KDMsIlN1Ym1pdHRlZCBUYWJsZSBEZXRhaWxzIiksb3QoKSxybig0LE1OZSwx''@;'; put 'put ''MSwxLCJjbHItdGFiLWNvbnRlbnQiLDk2KSxvdCgpLG50KDUsImNsci10YWIiKSg2LCJidXR0b24iLDk1KSxZdCg3LCJCYXNlIFRhYmxlIERldGFpbHMiKSxvdCgpLG50KDgsImNsci10YWItY29udGVudCIpKDksImRpdiIsOTcpKDEwLCJ0YWJsZSIsMykoMTEsInRoZWFkIikoMTIsInRyIiko''@;'; put 'put ''MTMsInRoIiw0KSxZdCgxNCwiTmFtZSIpLG90KCksbnQoMTUsInRoIiw0KSxZdCgxNiwiVmFsdWUiKSxvdCgpKCkoKSxudCgxNywidGJvZHkiKSxybigxOCxFTmUsNSwyLCJ0ciIsNSksb3QoKSgpKCkoKSgpKCkpLDImZCl7Y29uc3QgaD1RdCg0KTt1dCg0KSxUdCgiY2xySWZBY3RpdmUiLCEw''@;'; put 'put ''KSx1dCgxNCksVHQoIm5nRm9yT2YiLGgua2V5c0FycmF5KX19ZnVuY3Rpb24gVE5lKGQsZyl7MSZkJiZDcigwLCJkaXYiLDQzKX1mdW5jdGlvbiBJTmUoZCxnKXsxJmQmJihudCgwLCJkaXYiKSgxLCJoMyIpLFl0KDIsIkxvYWRpbmcgdGFibGUiKSxvdCgpKCkpfWZ1bmN0aW9uIEROZShkLGcp''@;'; put 'put ''e2lmKDEmZCYmKG50KDAsImRpdiIsOTgpKDEsInNwYW4iLDcwKSxZdCgyLCIgTG9hZGluZy4uLiAiKSxvdCgpLHJuKDMsSU5lLDMsMCwiZGl2IiwxNiksb3QoKSksMiZkKXtjb25zdCBoPVF0KDQpO3V0KDMpLFR0KCJuZ0lmIiwhaC5sb2FkaW5nVGFibGUpfX1mdW5jdGlvbiBMTmUoZCxnKXtp''@;'; put 'put ''ZigxJmQmJihudCgwLCJ0aCIsNCksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLGppKGgpfX1mdW5jdGlvbiBPTmUoZCxnKXtpZigxJmQmJihudCgwLCJzcGFuIiw3NSksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPVF0KCkuaW5kZXgsdj1RdCgyKS5pbmRleCx5''@;'; put 'put ''PVF0KDQpO3V0KDEpLEppKCJPcmlnaW5hbCB2YWx1ZSBpczogIix5LmFyck9mQ2hhbmdlc1t2XVtoXSwiIil9fWZ1bmN0aW9uIFJOZShkLGcpe2lmKDEmZCYmKG50KDAsInRkIiw3MyksWXQoMSkscm4oMixPTmUsMiwxLCJzcGFuIiw3NCksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0''@;'; put 'put ''LHY9Zy5pbmRleCx5PVF0KDIpLmluZGV4LEM9UXQoNCk7VHQoIm5nQ2xhc3MiLEdkKDMsVndlLDE9PUMuYXJyQ2hhbmdlZFt5XVt2XSYmInVwZGF0ZWQiPT1DLmNoQXJyW3ldKSksdXQoMSksSmkoIiAiLEMuZGlmZlRhYmxlLmRhdGFbeV1baF0sIiAiKSx1dCgxKSxUdCgibmdJZiIsMT09Qy5h''@;'; put 'put ''cnJDaGFuZ2VkW3ldW3ZdJiYidXBkYXRlZCI9PUMuY2hBcnJbeV0pfX1mdW5jdGlvbiBCTmUoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLFJOZSwzLDUsInRkIiw3MiksUDAoKSksMiZkKXtjb25zdCBoPVF0KCkuaW5kZXgsdj1RdCg0KTt1dCgxKSxUdCgibmdGb3JPZiIsdi5yb3dLZXlzW2hd''@;'; put 'put ''KX19ZnVuY3Rpb24gUE5lKGQsZyl7aWYoMSZkJiYobnQoMCwidGQiLDQpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PVF0KDIpLmluZGV4LHk9UXQoNCk7dXQoMSksSmkoIiAiLHkuZGlmZlRhYmxlLmRhdGFbdl1baF0sIiAiKX19ZnVuY3Rpb24gRk5lKGQsZyl7aWYo''@;'; put 'put ''MSZkJiYoQjAoMCkscm4oMSxQTmUsMiwxLCJ0ZCIsNDEpLFAwKCkpLDImZCl7Y29uc3QgaD1RdCgpLmluZGV4LHY9UXQoNCk7dXQoMSksVHQoIm5nRm9yT2YiLHYucm93S2V5c1toXSl9fWZ1bmN0aW9uIEhOZShkLGcpe2lmKDEmZCYmKG50KDAsInRyIiw3MSkscm4oMSxCTmUsMiwxLCJuZy1j''@;'; put 'put ''b250YWluZXIiLDE2KSxybigyLEZOZSwyLDEsIm5nLWNvbnRhaW5lciIsMTYpLG90KCkpLDImZCl7Y29uc3QgaD1nLmluZGV4LHY9UXQoNCk7VHQoIm5nQ2xhc3MiLEgoMyxqd2UsImFkZGVkIj09di5jaEFycltoXSwiZGVsZXRlZCI9PXYuY2hBcnJbaF0sInVwZGF0ZWQiPT12LmNoQXJyW2hd''@;'; put 'put ''KSksdXQoMSksVHQoIm5nSWYiLCJ1cGRhdGVkIj09PXYuY2hBcnJbaF0pLHV0KDEpLFR0KCJuZ0lmIiwidXBkYXRlZCIhPT12LmNoQXJyW2hdKX19ZnVuY3Rpb24gTk5lKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw4MikoMSwiZGl2Iiw4MykoMiwiZGl2IiwyNSkoMywi''@;'; put 'put ''ZGl2IiwyNikoNCwic3BhbiIsODQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgzKS5nb1RvU3VibWl0TGlzdCgpKX0pLENyKDUsImNsci1pY29uIiwyOCksWXQoNiwiQmFjayB0byBzdWJtaXR0ZWQgbGlzdCAiKSxvdCgpKCksbnQoNywiZGl2Iiw4NSkoOCwiaDMi''@;'; put 'put ''LDg2KSxZdCg5KSxvdCgpKCksbnQoMTAsImRpdiIsMzEpKDExLCJzZWN0aW9uIiw4KSgxMiwiZGl2Iiw5KSgxMywiZGl2Iiw4NykoMTQsImlucHV0Iiw4OCksR24oImNoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoMykuc2hvd0RldGFpbHNTZWxlY3QoeSkpfSksb3QoKSxu''@;'; put 'put ''dCgxNSwibGFiZWwiLDg5KSxZdCgxNiwiQWxsIERldGFpbHMiKSxvdCgpKCkoKSgpKCkoKSxudCgxNywicCIsOTApLFl0KDE4KSxvdCgpKCksbnQoMTksImRpdiIsNDQpKDIwLCJkaXYiLDQ1KSgyMSwiZGl2Iiw2NykoMjIsInNwYW4iKSxZdCgyMywiVGFibGUgSWQ6Iiksb3QoKSxudCgyNCwi''@;'; put 'put ''c3Ryb25nIikoMjUsInNwYW4iKSxZdCgyNiksb3QoKSgpKCksbnQoMjcsImRpdiIpKDI4LCJzcGFuIiksWXQoMjksIlN1Ym1pdHRlZCBvbjoiKSxvdCgpLG50KDMwLCJzcGFuIiw2OCksWXQoMzEpLG90KCkoKSxudCgzMiwiZGl2IikoMzMsInNwYW4iKSxZdCgzNCwiU3VibWl0IE1lc3NhZ2U6''@;'; put 'put ''Iiksb3QoKSxudCgzNSwic3BhbiIpLFl0KDM2KSxvdCgpKCkoKSxudCgzNywiZGl2Iiw0NikoMzgsImRpdiIsNDcpKDM5LCJkaXYiLDQ4KSg0MCwiZGl2Iiw0OSkoNDEsImJ1dHRvbiIsNTApLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDMpO3JldHVybiBhKHkuZ29U''@;'; put 'put ''b0Jhc2UoeS5zdWJPYmouYmFzZSkpfSksWXQoNDIsIiBHbyB0byBiYXNlIHRhYmxlIHNjcmVlbiAiKSxvdCgpLG50KDQzLCJidXR0b24iLDUxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgzKTtyZXR1cm4gYSh5LmdldFRhYmxlKHkuc3ViT2JqLnRhYmxlSWQpKX0p''@;'; put 'put ''LFl0KDQ0LCIgR28gdG8gZWRpdGVkIHNjcmVlbiAiKSxvdCgpLG50KDQ1LCJidXR0b24iLDUyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgzKTtyZXR1cm4gYSh5LmdvQmFjayh5LnN1Yk9iai5iYXNlKSl9KSxZdCg0NiwiIEdvIGJhY2sgdG8gZWRpdG9yICIpLG90''@;'; put 'put ''KCkoKSgpKCksbnQoNDcsImRpdiIsNDcpKDQ4LCJkaXYiLDI1KSg0OSwiZGl2Iiw1OSkoNTAsInNwYW4iLDYwKSxZdCg1MSwiIENoYW5nZWQgUm93cyAiKSxudCg1Miwic3BhbiIsNjEpLFl0KDUzKSxvdCgpKCksbnQoNTQsInNwYW4iLDYyKSxZdCg1NSwiIEFkZGVkIFJvd3MgIiksbnQoNTYs''@;'; put 'put ''InNwYW4iLDYzKSxZdCg1Nyksb3QoKSgpLG50KDU4LCJzcGFuIiw2NCksWXQoNTksIiBEZWxldGVkIFJvd3MgIiksbnQoNjAsInNwYW4iLDY1KSxZdCg2MSksb3QoKSgpKCkoKSgpLG50KDYyLCJkaXYiLDQ3KSg2MywiY2xyLXRvZ2dsZS1jb250YWluZXIiLDkxKSg2NCwiY2xyLXRvZ2dsZS13''@;'; put 'put ''cmFwcGVyIikoNjUsImlucHV0Iiw1NyksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDMpLmZvcm1hdHRlZFZhbHVlcz15KX0pKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMykuZm9ybWF0dGluZ0NoYW5nZWQoKSl9KSxvdCgp''@;'; put 'put ''LG50KDY2LCJsYWJlbCIpLFl0KDY3KSxvdCgpKCkoKSgpKCkoKSxybig2OCx4TmUsMTksMiwiY2xyLXRhYnMiLDE2KSxudCg2OSwiZGl2Iiw5Mikscm4oNzAsVE5lLDEsMCwiZGl2IiwzNiksb3QoKSxybig3MSxETmUsNCwxLCJkaXYiLDkzKSxudCg3MiwiZGl2Iiw5NCkoNzMsInRhYmxlIiwz''@;'; put 'put ''KSg3NCwidGhlYWQiKSg3NSwidHIiLDQwKSxybig3NixMTmUsMiwxLCJ0aCIsNDEpLG90KCkoKSxudCg3NywidGJvZHkiKSxybig3OCxITmUsMyw3LCJ0ciIsNDIpLG90KCkoKSgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KDMpO3V0KDkpLEppKCIgIixoLnN1Yk9iai5iYXNlLCIgIiksdXQoOSks''@;'; put 'put ''SmkoIiAiLGgudGFibGVEZXNjcmlwdGlvbiwiICIpLHV0KDgpLEppKCIgIixoLnN1Yk9iai50YWJsZUlkLCIiKSx1dCg1KSxKaSgiICIsaC5zdWJPYmouc3VibWl0dGVkLCIgIiksdXQoNSksSmkoIiAiLGguc3ViT2JqLnN1Ym1pdFJlYXNvbiwiICIpLHV0KDE3KSxqaShoLmxlbnMudXBkYXRl''@;'; put 'put ''ZCksdXQoNCksamkoaC5sZW5zLm5ldyksdXQoNCksamkoaC5sZW5zLmRlbGV0ZWQpLHV0KDQpLFR0KCJuZ01vZGVsIixoLmZvcm1hdHRlZFZhbHVlcyksdXQoMiksamkoaC5mb3JtYXR0ZWRWYWx1ZXM/IkZvcm1hdHRlZCI6IlVuZm9ybWF0dGVkIiksdXQoMSksVHQoIm5nSWYiLGgudGFibGVG''@;'; put 'put ''bGFnKSx1dCgyKSxUdCgibmdJZiIsaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkaW5nVGFibGUpLHV0KDUpLFR0KCJuZ0Zvck9mIixoLnJvd0hlYWRlciksdXQoMiksVHQoIm5nRm9yT2YiLGgucm93S2V5cyl9fWZ1bmN0aW9uIFZOZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIs''@;'; put 'put ''ODApLHJuKDEsTk5lLDc5LDE1LCJkaXYiLDgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMSksVHQoIm5nSWYiLGgubG9hZGVkKX19ZnVuY3Rpb24gak5lKGQsZyl7MSZkJiYobnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIHN1Ym1pdHRlZCB0YWJsZSIpLG90KCkoKSl9''@;'; put 'put ''ZnVuY3Rpb24gWk5lKGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw5OSkoMSwiZGl2IiwxMDApKDIsInNwYW4iLDcwKSxZdCgzLCIgTG9hZGluZy4uLiAiKSxvdCgpLHJuKDQsak5lLDMsMCwiZGl2IiwxNiksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoNCksVHQoIm5nSWYiLCFoLmxv''@;'; put 'put ''YWRlZCl9fWZ1bmN0aW9uIHpOZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIpLHJuKDEsVk5lLDIsMSwiZGl2Iiw3OCkscm4oMixaTmUsNSwxLCJkaXYiLDc5KSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxUdCgibmdJZiIsaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2Fk''@;'; put 'put ''ZWQpfX1jb25zdCBHTmU9ZnVuY3Rpb24oKXtyZXR1cm57c3RhbmRhbG9uZTohMH19O2xldCBad2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt0aGlzLnNhc1N0b3JlU2VydmljZT1oLHRoaXMuZXZlbnRTZXJ2aWNlPXYsdGhpcy5yb3V0ZXI9eSx0aGlzLnJvdXRlPUMsdGhp''@;'; put 'put ''cy5kZXRhaWxzT3Blbj0hMSx0aGlzLnJlamVjdE9wZW49ITEsdGhpcy5sZW5zPXtuZXc6MCx1cGRhdGVkOjAsZGVsZXRlZDowfSx0aGlzLmxvYWRlZD0hMSx0aGlzLmxvYWRpbmdUYWJsZT0hMSx0aGlzLnN1Ym1pdFJlYXNvbj0iIix0aGlzLmluc3RhbmNlPSJob3RJbnN0YW5jZSIsdGhpcy5h''@;'; put 'put ''Y2NlcHRMb2FkaW5nPSExLHRoaXMucmVqZWN0TG9hZGluZz0hMSx0aGlzLnN1Ym1pdHRlZD0hMSx0aGlzLnRhYmxlRmxhZz0hMSx0aGlzLnJvd0tleXM9W10sdGhpcy5zZWNvbmRPcGVuPSExLHRoaXMuZm9ybWF0dGVkVmFsdWVzPSEwLHRoaXMuY2hhbmdlc0Fycj1bXSx0aGlzLmRpZmZUYWJs''@;'; put 'put ''ZT17ZGF0YTpbXX19Z2V0IG5vQ2hhbmdlcygpe3JldHVybiAwPT09dGhpcy5sZW5zLm5ldyYmMD09PXRoaXMubGVucy51cGRhdGVkJiYwPT09dGhpcy5sZW5zLmRlbGV0ZWR9Z29Ub0Jhc2UoaCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhLyIraCl9Z29Ub0FwcHJvdmFs''@;'; put 'put ''c0xpc3QoKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9hcHByb3ZlIil9Z2V0VGFibGUoaCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIitoKX1nb0JhY2soaCl7dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvZWRpdG9yLyIraCl9Z29Ub1ZpZXdlcigpe3RoaXMucm91''@;'; put 'put ''dGUubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YSIpfXNob3dEZXRhaWxzU2VsZWN0KGgpe2gucHJldmVudERlZmF1bHQoKSx0aGlzLnRhYmxlRmxhZz0hdGhpcy50YWJsZUZsYWd9Z2V0RGV0YWlscygpe3RoaXMuZGV0YWlsc09wZW49ITB9b25Ib3RTZWxlY3Rpb24oaCl7dGhpcy5ob3RTZWxl''@;'; put 'put ''Y3Rpb249aC5zbGljZSgwLDQpfW9uSG90RGVzZWxlY3QoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5ob3RTZWxlY3Rpb249bnVsbH0sMTAwKX1yZWplY3RpbmcoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMucmVqZWN0TG9hZGluZz0hMCx0aGlzLnN1Ym1p''@;'; put 'put ''dFJlYXNvbj10aGlzLnN1Ym1pdFJlYXNvbi5yZXBsYWNlKC9cbi9nLCIuICIpO2xldCBoPXtTVFBfQUNUSU9OOiJSRUpFQ1RfVEFCTEUiLFRBQkxFOnRoaXMudGFibGVJZCxTVFBfUkVBU09OOnRoaXMuc3VibWl0UmVhc29ufTt5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5yZWplY3Rpbmco''@;'; put 'put ''aCwiQnJvd3NlclBhcmFtcyIsImFwcHJvdmVycy9yZWplY3Rpb24iKS50aGVuKHY9Pnt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9oaXN0b3J5Iil9KS5jYXRjaCh2PT57dGhpcy5hY2NlcHRMb2FkaW5nPSExLHRoaXMucmVqZWN0TG9hZGluZz0hMX0pfSl9YXBwcm92ZVRhYmxlKCl7dmFy''@;'; put 'put ''IGgsdjtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuYWNjZXB0TG9hZGluZz0hMDtsZXQgeT17QUNUSU9OOiJBUFBST1ZFX1RBQkxFIixUQUJMRTp0aGlzLnRhYmxlSWQsRElGRlRJTUU6bnVsbD09PShoPXRoaXMucGFyYW1zKXx8dm9pZCAwPT09aD92b2lk''@;'; put 'put ''IDA6aC5ESUZGVElNRSxMSUJEUzpudWxsPT09KHY9dGhpcy5wYXJhbXMpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LkxJQkRTfTt5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5hcHByb3ZlVGFibGUoeSwiU0FTQ29udHJvbFRhYmxlIiwiYXVkaXRvcnMvcG9zdGRhdGEiKS50aGVuKEM9Pnt0aGlz''@;'; put 'put ''LnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9oaXN0b3J5Iil9KS5jYXRjaChDPT57dGhpcy5hY2NlcHRMb2FkaW5nPSExfSl9KX1nb1RvU3VibWl0TGlzdCgpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlLmdvVG9TdWJtaXRMaXN0KCl9Y2FsbENoYW5nZXNJbmZvKGgpe3JldHVybiBubyh0aGlzLHZvaWQg''@;'; put 'put ''MCx2b2lkIDAsZnVuY3Rpb24qKCl7eWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UuZ2V0Q2hhbmdlSW5mbyhoKS50aGVuKHY9Pnt0aGlzLnRhYmxlRGV0YWlscz12LmpzcGFyYW1zWzBdLHRoaXMuanNQYXJhbXM9di5qc3BhcmFtc1swXTtsZXQgeT1bXTtmb3IoY29uc3QgQyBpbiB0aGlzLmpz''@;'; put 'put ''UGFyYW1zKXRoaXMuanNQYXJhbXMuaGFzT3duUHJvcGVydHkoQykmJnkucHVzaChDKTt0aGlzLmtleXNBcnJheT15fSkuY2F0Y2godj0+e3RoaXMuYWNjZXB0TG9hZGluZz0hMX0pLmZpbmFsbHkoKCk9Pnt0aGlzLmxvYWRlZD0hMH0pfSl9Zm9ybWF0dGluZ0NoYW5nZWQoKXt0aGlzLmNhbGNE''@;'; put 'put ''aWZmKCl9Y2FsY0RpZmYoKXt2YXIgaCx2LHk7aWYoIXRoaXMucmVzcG9uc2UpcmV0dXJuO2xldCBDPXRoaXMucmVzcG9uc2UubmV3LEk9dGhpcy5yZXNwb25zZS51cGRhdGVzLFo9dGhpcy5yZXNwb25zZS5kZWxldGVkLHVlPXRoaXMucmVzcG9uc2Uub3JpZ2luYWxzO3RoaXMuZm9ybWF0dGVk''@;'; put 'put ''VmFsdWVzJiYoQz10aGlzLnJlc3BvbnNlLmZtdF9uZXcsST10aGlzLnJlc3BvbnNlLmZtdF91cGRhdGVzLFo9dGhpcy5yZXNwb25zZS5mbXRfZGVsZXRlZCx1ZT10aGlzLnJlc3BvbnNlLmZtdF9vcmlnaW5hbHMpLHRoaXMub3JpZ2luYWxzPXVlLHRoaXMucm93S2V5cz1bXTtmb3IobGV0IHdy''@;'; put 'put ''PTA7d3I8SS5sZW5ndGg7d3IrKyl7bGV0IFFyPU9iamVjdC5rZXlzKElbd3JdKTtmb3IobGV0IHlpPTA7eWk8UXIubGVuZ3RoO3lpKyspSVt3cl1bUXJbeWldXSE9PXVlW3dyXVtRclt5aV1dJiZ0aGlzLmNoYW5nZXNBcnIucHVzaCh7aW5kOndyLGZpZWxkOlFyW3lpXSxwcm9wOklbd3JdW1Fy''@;'; put 'put ''W3lpXV0sb3JpZ2luYWw6dWVbd3JdW1FyW3lpXV19KX10aGlzLmxlbnM9e25ldzoobnVsbD09PShoPXRoaXMucGFyYW1zKXx8dm9pZCAwPT09aD92b2lkIDA6aC5OVU1fQURERUQpfHwwLHVwZGF0ZWQ6KG51bGw9PT0odj10aGlzLnBhcmFtcyl8fHZvaWQgMD09PXY/dm9pZCAwOnYuTlVNX1VQ''@;'; put 'put ''REFURUQpfHwwLGRlbGV0ZWQ6KG51bGw9PT0oeT10aGlzLnBhcmFtcyl8fHZvaWQgMD09PXk/dm9pZCAwOnkuTlVNX0RFTEVURUQpfHwwfTtsZXQgS2U9W10scHQ9SS5jb25jYXQoQyxaKTtmb3IobGV0IHdyPTA7d3I8dGhpcy5yZXNwb25zZS5jb2xzLmxlbmd0aDt3cisrKUtlLnB1c2godGhp''@;'; put 'put ''cy5yZXNwb25zZS5jb2xzW3dyXS5OQU1FKTtsZXQgT3Q9dGhpcy5sZW5zLm5ldzt0aGlzLmFkZENvdW50PU90O2xldCAkdD10aGlzLmxlbnMudXBkYXRlZCxMbj1bXSxpcj1bXTtmb3IobGV0IHdyPTA7d3I8S2UubGVuZ3RoO3dyKyspaXIucHVzaCh7ZGF0YTpLZVt3cl0scmVhZE9ubHk6ITB9''@;'; put 'put ''KTt0aGlzLmRpZmZUYWJsZS5kYXRhPXB0O2ZvcihsZXQgd3I9MDt3cjxwdC5sZW5ndGg7d3IrKyl7bGV0IHlpPU9iamVjdC5rZXlzKHB0W3dyXSk7dGhpcy5yb3dLZXlzLnB1c2goeWkpfWxldCBtcj1bXSxTcj1bXTtmb3IobGV0IHdyPTA7d3I8dGhpcy5kaWZmVGFibGUuZGF0YS5sZW5ndGg7''@;'; put 'put ''d3IrKyl7aWYod3I8JHQmJjAhPT0kdCl7bXIucHVzaChbXSksU3IucHVzaChbXSksTG4ucHVzaCgidXBkYXRlZCIpO2xldCBRcj1PYmplY3Qua2V5cyh0aGlzLmRpZmZUYWJsZS5kYXRhW3dyXSk7Zm9yKGxldCB5aT0wO3lpPFFyLmxlbmd0aDt5aSsrKXtsZXQgS2k9UXJbeWldO3VlW3dyXVtL''@;'; put 'put ''aV0hPT1JW3dyXVtLaV0/KG1yW3dyXS5wdXNoKCEwKSxTclt3cl0ucHVzaCh1ZVt3cl1bS2ldKSk6KG1yW3dyXS5wdXNoKCExKSxTclt3cl0ucHVzaChudWxsKSl9dGhpcy5hcnJDaGFuZ2VkPW1yLHRoaXMuYXJyT2ZDaGFuZ2VzPVNyfXdyPj0kdCYmd3I8JHQrT3QmJkxuLnB1c2goImFkZGVk''@;'; put 'put ''Iiksd3I+T3QrJHQtMSYmTG4ucHVzaCgiZGVsZXRlZCIpfXRoaXMuY2hBcnI9TG4sdGhpcy5yb3dIZWFkZXI9dGhpcy5yb3dLZXlzWzBdLHRoaXMuZGlmZlRhYmxlLmRhdGE9cHR9bmdBZnRlclZpZXdJbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih0''@;'; put 'put ''aGlzLl9kZXRhaWxzU3ViPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnN1Ym1pdHREZXRhaWwuc3Vic2NyaWJlKHY9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnN1Yk9iaj12LnZpZXdEYXRhLHRoaXMudGFibGVJZD12LnZpZXdEYXRhLnRhYmxlSWQsdGhpcy5zdWJtaXR0''@;'; put 'put ''ZWQ9di52aWV3RGF0YS5zdWIsdGhpcy5zdWJtaXREZXRhaWxzPXYuZGF0YSx0aGlzLnN1Ym1pdEFycj1bXTtmb3IobGV0IEMgaW4gdGhpcy5zdWJtaXREZXRhaWxzKSJzdWIiIT09QyYmdGhpcy5zdWJtaXRBcnIucHVzaChDKTtsZXQgeT17QUNUSU9OOiJTSE9XX0RJRkZTIixUQUJMRTp0aGlz''@;'; put 'put ''LnRhYmxlSWQsRElGRlRJTUU6KG5ldyBEYXRlKS50b1VUQ1N0cmluZygpfTt0aGlzLnNhc1N0b3JlU2VydmljZS5zaG93RGlmZnMoeSwiU0FTQ29udHJvbFRhYmxlIiwiYXVkaXRvcnMvcG9zdGRhdGEiKS50aGVuKEM9Pnt0aGlzLnBhcmFtcz1DLnBhcmFtc1swXSx0aGlzLnJlc3BvbnNlPUMs''@;'; put 'put ''dGhpcy5jYWxjRGlmZigpfSkuY2F0Y2goQz0+QykuZmluYWxseSgoKT0+e3RoaXMubG9hZGluZ1RhYmxlPSEwfSksdGhpcy5jYWxsQ2hhbmdlc0luZm8odGhpcy50YWJsZUlkKX0pKSx2b2lkIDA9PT10aGlzLnJvdXRlci5zbmFwc2hvdC5wYXJhbXMudGFibGVJZClyZXR1cm47dGhpcy50YWJs''@;'; put 'put ''ZUlkPXRoaXMucm91dGVyLnNuYXBzaG90LnBhcmFtcy50YWJsZUlkO2xldCBoPXtBQ1RJT046IlNIT1dfRElGRlMiLFRBQkxFOnRoaXMudGFibGVJZCxESUZGVElNRToobmV3IERhdGUpLnRvVVRDU3RyaW5nKCl9O3RoaXMuc2FzU3RvcmVTZXJ2aWNlLnNob3dEaWZmcyhoLCJTQVNDb250cm9s''@;'; put 'put ''VGFibGUiLCJhdWRpdG9ycy9wb3N0ZGF0YSIpLnRoZW4odj0+e3RoaXMucGFyYW1zPXYucGFyYW1zWzBdLHRoaXMucmVzcG9uc2U9dix0aGlzLmNhbGNEaWZmKCl9KS5jYXRjaCh2PT57dGhpcy5hY2NlcHRMb2FkaW5nPSExfSkuZmluYWxseSgoKT0+e3RoaXMubG9hZGluZ1RhYmxlPSEwLHRo''@;'; put 'put ''aXMuc2V0Rm9jdXMoKX0pLHRoaXMuY2FsbENoYW5nZXNJbmZvKHRoaXMudGFibGVJZCl9KX1uZ09uRGVzdHJveSgpe3RoaXMuX2RldGFpbHNTdWImJnRoaXMuX2RldGFpbHNTdWIudW5zdWJzY3JpYmUoKX1zZXRGb2N1cygpe3NldFRpbWVvdXQoKCk9PntsZXQgaD13aW5kb3cuZG9jdW1lbnQu''@;'; put 'put ''Z2V0RWxlbWVudEJ5SWQoImFjY2VwdEJ0biIpO2gmJmguZm9jdXMoKX0sMjAwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qoa2cpLEt0KG11KSxLdChQdSksS3QoWmwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBw''@;'; put 'put ''LWFwcHJvdmUtZGV0YWlscyJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MzQsdmFyczoxMCxjb25zdHM6W1szLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiXSxbMSwibW9kYWwtYm9keSJdLFsxLCJ0YWJsZSJd''@;'; put 'put ''LFsxLCJsZWZ0Il0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJtb2RhbC1mb290ZXIiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsxLCJmb3JtLWJsb2NrIl0sWzEsImZvcm0tZ3JvdXAiXSxbImZvciIsImZvcm1GaWVsZHNf''@;'; put 'put ''OCJdLFsiaWQiLCJmb3JtRmllbGRzXzgiLCJyb3dzIiwiNSIsMSwidy0xMDAiLDMsIm5nTW9kZWwiLCJuZ01vZGVsT3B0aW9ucyIsImlubmVySFRNTCIsIm5nTW9kZWxDaGFuZ2UiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsidHlwZSIsInN1''@;'; put 'put ''Ym1pdCIsMSwiYnRuIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwiY2FyZCJdLFsiY2xhc3MiLCJjYXJkLWhlYWRlciBkLWZsZXggZmxleC1jb2x1''@;'; put 'put ''bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciIsNCwibmdJZiJdLFsxLCJvdmVyZmxvdy1hdXRvIiwibXItMTIiXSxbImNsYXNzIiwiaC03MHZoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciIsNCwibmdJZiJdLFsxLCJjYXJkLWhl''@;'; put 'put ''YWRlciIsImQtZmxleCIsImZsZXgtY29sdW1uIiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsiY2xhc3MiLCJjYXJkIiwiY2xhc3MiLCJtdC0wIiw0LCJuZ0lmIl0sWzEsIm10LTAiXSxbMSwiY2FyZC1oZWFkZXIiLCJwLTAiXSxbMSwiY2xyLXJvdyJdLFsxLCJjbHItY29sLW1kLTQiLCJh''@;'; put 'put ''cHByb3ZhbEJhY2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJtLTAiLDMsImNsaWNrIl0sWyJzaGFwZSIsImNhcmV0IiwiZGlyIiwibGVmdCIsInNpemUiLCIyMCJdLFsxLCJjbHItY29sLW1kLTQiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsIm10''@;'; put 'put ''LTAiLCJmb250LXdlaWdodC0zMDAiXSxbMSwiY2xyLWNvbC1tZC00IiwiYXBwcm92YWxJbmZvIl0sWzEsInRvb2x0aXAiLCJ0b29sdGlwLXNtIiwidG9vbHRpcC10b3AtbGVmdCIsMywiY2xpY2siXSxbInNoYXBlIiwiaW5mby1zdGFuZGFyZCIsInNpemUiLCIyOCJdLFsxLCJ0ZXh0LWNlbnRl''@;'; put 'put ''ciIsIm10LTEwIl0sWzEsImNhcmQtYmxvY2siLCJwLTAiXSxbImNsYXNzIiwiY2FyZC10ZXh0Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsImgtMjR2aCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMSwidGFibGVD''@;'; put 'put ''b250IiwibXQtMCJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBmb250LXNpemUtMTgiLDQsIm5nSWYiXSxbMSwiZC1mbGV4Il0sWyJjbGFzcyIsImxlZnQiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xhc3MiLCJkLWZsZXgiLDMsIm5nQ2xhc3MiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJj''@;'; put 'put ''YXJkLXRleHQiXSxbMSwiY2xyLXJvdyIsImZvbnQtc2l6ZS0xNSJdLFsxLCJjbHItY29sLW1kLTUiXSxbMSwiY2xyLWNvbC1tZC03Il0sWzEsImNhcmQtYmxvY2siLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIi''@;'; put 'put ''LCJtdC0wIl0sWzEsImNsci1yb3ciLCJjbHItZ2FwLTUiLCJjbHItZ2FwLXNtLTAiXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsIm10LTUiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLCJ0ZXh0LWNlbnRl''@;'; put 'put ''ciIsIm10LTUiLDMsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1pbmZvLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsIm10LTUiLDMsImNsaWNrIl0sWzEsImNhcmQtYmxvY2siLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiY2xyLWZsZXgtY29sdW1uIiwiY2xyLWdh''@;'; put 'put ''cC01IiwiY2xyLWZsZXgtc20tcm93IiwiY2xyLWdhcC1zbS0wIiwiY2xyLWFsaWduLWl0ZW1zLWNlbnRlciJdLFsiaWQiLCJhY2NlcHRCdG4iLCJ0eXBlIiwic3VibWl0IiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2VzcyIsMywiY2xyTG9hZGluZyIsImRpc2FibGVkIiwiY2xpY2siXSxb''@;'; put 'put ''ImlkIiwicmVqZWN0QnRuIiwxLCJidG4iLCJidG4tc20iLCJidG4iLCJidG4tZGFuZ2VyIiwibXItMCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJtLTAiLCJtbC0yMGkiXSxbInR5cGUiLCJjaGVja2JveCIsImNsclRvZ2dsZSIsIiIsImNoZWNrZWQiLCIiLDMsIm5nTW9kZWwiLCJuZ01v''@;'; put 'put ''ZGVsQ2hhbmdlIiwiY2hhbmdlIl0sWzEsImZvcm1hdHRlZC12YWx1ZXMtdG9nZ2xlIl0sWzEsImQtZmxleCIsImNsci1mbGV4LWNvbHVtbiIsImNsci1nYXAtNSIsImNsci1mbGV4LXNtLXJvdyIsImNsci1nYXAtc20tMCJdLFsxLCJsYWJlbCIsImxhYmVsLXdhcm5pbmciXSxbMSwiYmFkZ2Ui''@;'; put 'put ''LCJiYWRnZS13YXJuaW5nIl0sWzEsImxhYmVsIiwibGFiZWwtc3VjY2VzcyJdLFsxLCJiYWRnZSIsImJhZGdlLXN1Y2Nlc3MiXSxbMSwibGFiZWwiLCJsYWJlbC1kYW5nZXIiXSxbMSwiYmFkZ2UiLCJiYWRnZS1kYW5nZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJmb250LXNpemUtMTgiXSxbMSwi''@;'; put 'put ''bXQtMTUiXSxbMSwibXQtMTAiXSxbMSwiaC0yNHZoIiwiZC1mbGV4IiwiZmxleC1jb2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsInNwaW5uZXIiXSxbMSwiZC1mbGV4IiwzLCJuZ0NsYXNzIl0sWyJjbGFzcyIsImxlZnQiLDMsIm5nQ2xh''@;'; put 'put ''c3MiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJsZWZ0IiwzLCJuZ0NsYXNzIl0sWyJjbGFzcyIsInRvb2x0aXAtY29udGVudCIsNCwibmdJZiJdLFsxLCJ0b29sdGlwLWNvbnRlbnQiXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1u''@;'; put 'put ''IiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiZC1mbGV4IGZsZXgtY29sdW1uIGp1c3RpZnktY29udGVudC1jZW50ZXIiLDQsIm5nSWYiXSxbImNsYXNzIiwiY2FyZC1ibG9jayIsNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJmbGV4''@;'; put 'put ''LWNvbHVtbiIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbImNsYXNzIiwiY2FyZCBtLTAiLDQsIm5nSWYiXSxbMSwiY2FyZCIsIm0tMCJdLFsxLCJjYXJkLWhlYWRlciJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbMSwiY2xyLWNvbC1tZC00Il0sWzEs''@;'; put 'put ''Im10LTAiLCJmb250LXdlaWdodC0zMDAiLCJ0ZXh0LWNlbnRlciJdLFsxLCJ0b2dnbGUtc3dpdGNoIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJpZCIsInRvZ2dsZV8xIiwzLCJjaGFuZ2UiXSxbImZvciIsInRvZ2dsZV8xIl0sWzEsIm0tMCIsInRleHQtY2VudGVyIiwiY29sb3ItZGFya2VyLWdy''@;'; put 'put ''YXkiXSxbMSwibS0wIiwibWwtMjAtaSJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIiwib3ZlcmZsb3ctYXV0byIsIm1yLTEyIl0sWyJjbGFzcyIsImgtMjV2aCBkLWZsZXggZmxleC1jb2x1bW4ganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMSwi''@;'; put 'put ''dGFibGVDb250Il0sWyJjbHJUYWJMaW5rIiwiIl0sWzQsImNscklmQWN0aXZlIl0sWzEsIm92ZXJmbG93LWF1dG8iXSxbMSwiaC0yNXZoIiwiZC1mbGV4IiwiZmxleC1jb2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWzEsImNhcmQtYmxvY2si''@;'; put 'put ''XSxbMSwibG9hZGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiY2xyLW1vZGFsIiwwKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kZXRhaWxzT3Blbj1DfSksbnQoMSwiaDMiLDEpLFl0KDIsIkFwcHJvdmFsIERldGFpbHMiKSxv''@;'; put 'put ''dCgpLG50KDMsImRpdiIsMikoNCwidGFibGUiLDMpKDUsInRoZWFkIikoNiwidHIiKSg3LCJ0aCIsNCksWXQoOCwiTmFtZSIpLG90KCksbnQoOSwidGgiLDQpLFl0KDEwLCJWYWx1ZSIpLG90KCkoKSgpLG50KDExLCJ0Ym9keSIpLHJuKDEyLG9OZSw1LDIsInRyIiw1KSxvdCgpKCkoKSxudCgx''@;'; put 'put ''MywiZGl2Iiw2KSgxNCwiYnV0dG9uIiw3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZGV0YWlsc09wZW49ITF9KSxZdCgxNSwiIE9rICIpLG90KCkoKSgpLG50KDE2LCJjbHItbW9kYWwiLDApLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnJl''@;'; put 'put ''amVjdE9wZW49Q30pLG50KDE3LCJoMyIsMSksWXQoMTgsIlJlYXNvbiBNZXNzYWdlIiksb3QoKSxudCgxOSwiZGl2IiwyKSgyMCwiZm9ybSIpKDIxLCJzZWN0aW9uIiw4KSgyMiwiZGl2Iiw5KSgyMywibGFiZWwiLDEwKSxZdCgyNCwiUmVhc29uIGZvciByZWplY3Rpbmc/Iiksb3QoKSxudCgy''@;'; put 'put ''NSwidGV4dGFyZWEiLDExKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuc3VibWl0UmVhc29uPUN9KSxvdCgpKCkoKSgpKCksbnQoMjYsImRpdiIsNikoMjcsImJ1dHRvbiIsMTIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5yZWplY3RPcGVuPSExfSks''@;'; put 'put ''WXQoMjgsIiBDYW5jZWwgIiksb3QoKSxudCgyOSwiYnV0dG9uIiwxMyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnJlamVjdGluZygpfSksWXQoMzAsIiBPSyAiKSxvdCgpKCkoKSxudCgzMSwiZGl2IiwxNCkscm4oMzIsa05lLDQsMiwiZGl2IiwxNSkscm4oMzMsek5lLDMsMiwi''@;'; put 'put ''ZGl2IiwxNiksb3QoKSksMiZoJiYoVHQoImNsck1vZGFsT3BlbiIsdi5kZXRhaWxzT3BlbiksdXQoMTIpLFR0KCJuZ0Zvck9mIix2LmtleXNBcnJheSksdXQoNCksVHQoImNsck1vZGFsT3BlbiIsdi5yZWplY3RPcGVuKSx1dCg5KSxUdCgibmdNb2RlbCIsdi5zdWJtaXRSZWFzb24pKCJuZ01v''@;'; put 'put ''ZGVsT3B0aW9ucyIsY3MoOSxHTmUpKSgiaW5uZXJIVE1MIix2LnN1Ym1pdFJlYXNvbixVOCksdXQoNCksVHQoImNsckxvYWRpbmciLHYucmVqZWN0TG9hZGluZyksdXQoMyksVHQoIm5nSWYiLCF2LnN1Ym1pdHRlZCksdXQoMSksVHQoIm5nSWYiLHYuc3VibWl0dGVkKSl9LGRlcGVuZGVuY2ll''@;'; put 'put ''czpbbGMseHMsTm8scGcsbTEsSWYsVHMsZGcsSXMsTGMsd2wsaWQsb2QsZ28sRzIsdyxhdCxSbyxsbyxPaSxLTCxxTCxBWiwkTCxYTCxtWl0sc3R5bGVzOlsnLmxvYWRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0Ojc1dmg7''@;'; put 'put ''YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0ubW9kYWxMYXJnZVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6NTByZW0haW1wb3J0YW50fS5hZGRlZFJvd1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2IoMTQ2LDIwOCwxNTQpO2JvcmRlcjoxcHggc29s''@;'; put 'put ''aWQgcmdiYSg5LDc3LDExNywuMik7Ym9yZGVyLXJhZGl1czo1cHh9LmRlbGV0ZWRSb3dbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6cmdiKDIzMCwxNzksMTc5KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNzAsNzEsNzAsLjIpO2JvcmRlci1yYWRpdXM6NXB4fS51cGRhdGVkUm93W19u''@;'; put 'put ''Z2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiNmYWZkYTg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDksMTE3LDksLjIpO2JvcmRlci1yYWRpdXM6NXB4fS5jaFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDpyZ2JhKDAsMCwwLC4xKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTA0LDEw''@;'; put 'put ''MCwwLC40KTtib3JkZXItcmFkaXVzOjVweH0uY2hbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQ6cmdiYSgyNTIsMTM1LDEyMCwuNCl9LnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXRvcC1yaWdodFtfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV0sIC50b29sdGlwLnRvb2x0aXAtdG9wLXJpZ2h0W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gPiAudG9vbHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXXtmb250LXNp''@;'; put 'put ''emU6LjU0MTY3cmVtO2ZvbnQtd2VpZ2h0OjQwMDtsZXR0ZXItc3BhY2luZzpub3JtYWw7YmFja2dyb3VuZDojMzE0MzUxO2JvcmRlci1yYWRpdXM6LjEyNXJlbTtjb2xvcjojZjBmMWVjO2xpbmUtaGVpZ2h0Oi43NXJlbTttYXJnaW46MDtwYWRkaW5nOi4zNzVyZW0gLjVyZW07d2lkdGg6MjM1''@;'; put 'put ''cHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG87Ym90dG9tOjEwMCU7bGVmdDoxMnB4O3JpZ2h0OmF1dG87Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO21hcmdpbi1ib3R0b206LjY2NjY3cmVtfS50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLWNvbnRlbnQudG9v''@;'; put 'put ''bHRpcC10b3AtcmlnaHRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZSwgLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVudFtfbmdjb250ZW50LSVDT01QJV06YmVmb3JlLCAudG9vbHRpcFtfbmdjb250ZW50LSVDT01QJV0gPiAu''@;'; put 'put ''dG9vbHRpcC1jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uMzc1cmVtO2xlZnQ6MDt0b3A6YXV0bztyaWdodDphdXRvO2NvbnRlbnQ6IiI7Ym9yZGVyLWxlZnQ6LjI1cmVtIHNvbGlkICMzMTQzNTE7Ym9yZGVyLXRvcDouMjA4MzNy''@;'; put 'put ''ZW0gc29saWQgIzMxNDM1MTtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjIwODMzcmVtIHNvbGlkIHRyYW5zcGFyZW50fS50YWJsZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjBweCBzb2xpZH0udG9nZ2xlLXN3aXRjaFtfbmdjb250ZW50''@;'; put 'put ''LSVDT01QJV0gICBpbnB1dFt0eXBlPWNoZWNrYm94XVtfbmdjb250ZW50LSVDT01QJV06Y2hlY2tlZCArIGxhYmVsW19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVyLWNvbG9yOiMzMTQzNTE7YmFja2dyb3VuZC1jb2xvcjojMzE0MzUxIWltcG9ydGFudDt0cmFuc2l0aW9uOi4xNXMg''@;'; put 'put ''ZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OmJvcmRlci1jb2xvcixiYWNrZ3JvdW5kLWNvbG9yfS50YWJsZUNvbnRbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93OmF1dG87bWFyZ2luOjE1cHggMTBweCAxMHB4fS50YWJsZUNvbnRbX25nY29udGVudC0lQ09NUCVdICAgdGRbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde3dvcmQtYnJlYWs6YnJlYWstd29yZH0uYXBwcm92YWxJbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5hcHByb3ZhbEJhY2tbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRl''@;'; put 'put ''bnQ6ZmxleC1zdGFydH1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LmFwcHJvdmFsSW5mb1tfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLXRvcDoxNXB4fS5hcHByb3ZhbEJhY2tbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi1ib3R0b206MTVweH0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowcmVtIWltcG9ydGFudDttaW4taGVpZ2h0OmNhbGMoMTAwdmggKyAtMHB4KSFpbXBvcnRhbnR9LnRhYmxlW19uZ2NvbnRl''@;'; put 'put ''bnQtJUNPTVAlXSAgIHRkLmxlZnRbX25nY29udGVudC0lQ09NUCVdLCAudGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGgubGVmdFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjE1MHB4IWltcG9ydGFudDtmbGV4OjB9fS50YWJsZVtfbmdjb250ZW50LSVDT01Q''@;'; put 'put ''JV0gICB0ZC5sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXSwgLnRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoLmxlZnRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246bGVmdDtmbGV4OjE7d2lkdGg6MzAwcHghaW1wb3J0YW50fS50b29sbFtfbmdjb250ZW50LSVDT01QJV17cG9zaXRp''@;'; put 'put ''b246YWJzb2x1dGU7YmFja2dyb3VuZDojZTZiM2IzO2NvbG9yOiMzMTQzNTE7dG9wOjBweDtoZWlnaHQ6MzZweDt3aWR0aDoxMDAlO2xlZnQ6MHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Rpc3BsYXk6ZmxleH0jYWNjZXB0QnRuW19uZ2NvbnRlbnQtJUNP''@;'; put 'put ''TVAlXSwgI3JlamVjdEJ0bltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTc1cHh9LmZvcm1hdHRlZC12YWx1ZXMtdG9nZ2xlW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4td2lkdGg6NzVweH1jbHItbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWwtYm9keS13cmFwcGVye292ZXJm''@;'; put 'put ''bG93OmF1dG99J119KSxkfSkoKSxXTmU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMucm91dGU9aCx0aGlzLnJvdXRlcj12fXN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3N0YWdlLyIrdGhpcy5kc2lkKX1hcHByb3ZlVGFibGVT''@;'; put 'put ''Y3JlZW4oKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvYXBwcm92ZS9hcHByb3ZlRGV0LyIrdGhpcy5kc2lkKX12aWV3ZXJUYWJsZVNjcmVlbigpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEvIit0aGlzLmxpYmRzKX1nb0JhY2soKXt0aGlzLnJvdXRlci5uYXZp''@;'; put 'put ''Z2F0ZUJ5VXJsKCIvZWRpdG9yLyIrdGhpcy5saWJkcyl9bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuZHNpZD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kc2lkLHRoaXMubGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMu''@;'; put 'put ''bGliZHN9KX1uZ0FmdGVyVmlld0luaXQoKXtzZXRUaW1lb3V0KCgpPT57bGV0IGg9d2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZhbEJ0biIpO2gmJmguZm9jdXMoKX0sNzAwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qo''@;'; put 'put ''UHUpLEt0KFpsKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hY3Rpb25zIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoxOSx2YXJzOjEsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFk''@;'; put 'put ''ZXIiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiXSxbMSwiY29sb3ItYmx1ZSIsImZvbnQtd2VpZ2h0LTcwMCJdLFsxLCJyb3ciLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwibXQtMjAiXSxbMSwiYnRu''@;'; put 'put ''IiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsMywiY2xpY2siXSxbImlkIiwiYXBwcm92YWxCdG4iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzLW91dGxpbmUiLCJ0ZXh0LWNlbnRlciIsMywiY2xpY2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0''@;'; put 'put ''bGluZSIsInRleHQtY2VudGVyIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImRpdiIsMCkoMSwiZGl2IiwxKSgyLCJkaXYiLDIpKDMsImgzIiwzKSxZdCg0LCIgWW91IHN1Y2Nlc2Z1bGx5IGVkaXRlZCB0YWJsZSAiKSxudCg1LCJzcGFuIiw0KSxZdCg2''@;'; put 'put ''KSxvdCgpKCksbnQoNywicCIsMykoOCwiYiIpLFl0KDksIlBsZWFzZSBjaG9vc2UgZnJvbSB0aGUgZm9sbG93aW5nIGFjdGlvbnMiKSxvdCgpKCksbnQoMTAsImRpdiIsNSkoMTEsImJ1dHRvbiIsNiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnN1Ym1pdHRlZFRhYmxlU2NyZWVu''@;'; put 'put ''KCl9KSxZdCgxMiwiIEdvIHRvIHN1Ym1pdHRlZCB0YWJsZSBzY3JlZW4gIiksb3QoKSxudCgxMywiYnV0dG9uIiw2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYudmlld2VyVGFibGVTY3JlZW4oKX0pLFl0KDE0LCIgR28gdG8gYmFzZSB0YWJsZSBzY3JlZW4gIiksb3QoKSxudCgx''@;'; put 'put ''NSwiYnV0dG9uIiw3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuYXBwcm92ZVRhYmxlU2NyZWVuKCl9KSxZdCgxNiwiIEdvIHRvIGFwcHJvdmFscyBzY3JlZW4gIiksb3QoKSxudCgxNywiYnV0dG9uIiw4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZ29CYWNrKCl9''@;'; put 'put ''KSxZdCgxOCwiIEdvIGJhY2sgdG8gZWRpdG9yICIpLG90KCkoKSgpKCkoKSksMiZoJiYodXQoNiksamkodi5saWJkcykpfX0pLGR9KSgpO2Z1bmN0aW9uIFlOZShkLGcpezEmZCYmKG50KDAsImRpdiIsMTIpLENyKDEsImNsci1pY29uIiwxMyksbnQoMiwiaDMiLDE0KSxZdCgzLCJUaGVyZSBp''@;'; put 'put ''cyBubyBoaXN0b3J5IHRvIHNob3ciKSxvdCgpKCkpfWZ1bmN0aW9uIFVOZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImEiLDE3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgpLiRpbXBsaWNpdCxDPVF0KCk7cmV0dXJuIGEoQy5nZXRUYWJsZShDLmFw''@;'; put 'put ''cHJvdmVEYXRhW3ldKSl9KSxZdCgxKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdCx2PVF0KCk7dXQoMSksamkodi5hcHByb3ZlRGF0YVtoXSl9fWZ1bmN0aW9uIFFOZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIpKDEsImEiLDE3KSxHbigiY2xpY2si''@;'; put 'put ''LGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgpLiRpbXBsaWNpdCxDPVF0KCk7cmV0dXJuIGEoQy5nZXRCYXNlVGFibGUoQy5hcHByb3ZlRGF0YVt5XSkpfSksWXQoMiwiVklFVyIpLG90KCksbnQoMywic3BhbiIpLFl0KDQsIiAvICIpLG90KCksbnQoNSwiYSIsMTcpLEduKCJjbGljayIs''@;'; put 'put ''ZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCkuJGltcGxpY2l0LEM9UXQoKTtyZXR1cm4gYShDLmdldEVkaXRUYWJsZShDLmFwcHJvdmVEYXRhW3ldKSl9KSxZdCg2LCJFRElUIiksb3QoKSgpfX1mdW5jdGlvbiBKTmUoZCxnKXtpZigxJmQmJihudCgwLCJzcGFuIiksWXQoMSksb3QoKSks''@;'; put 'put ''MiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0LHY9UXQoKTt1dCgxKSxqaSh2LmFwcHJvdmVEYXRhW2hdKX19ZnVuY3Rpb24gWE5lKGQsZyl7aWYoMSZkJiYobnQoMCwidHIiKSgxLCJ0ZCIsNiksWXQoMiksb3QoKSxudCgzLCJ0ZCIsNikscm4oNCxVTmUsMiwxLCJhIiwxNSkscm4oNSxRTmUs''@;'; put 'put ''NywwLCJkaXYiLDE2KSxybig2LEpOZSwyLDEsInNwYW4iLDE2KSxvdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXg7dXQoMiksamkoaCksdXQoMiksVHQoIm5nSWYiLHY8MSksdXQoMSksVHQoIm5nSWYiLHY8MiYmdj49MSksdXQoMSksVHQoIm5nSWYiLHY+PTIpfX1m''@;'; put 'put ''dW5jdGlvbiBLTmUoZCxnKXsxJmQmJihudCgwLCJzcGFuIiwyMCksWXQoMSwiIExvYWRpbmcuLi4gIiksb3QoKSl9ZnVuY3Rpb24gJE5lKGQsZyl7MSZkJiYobnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIGhpc3RvcnkiKSxvdCgpKCkpfWZ1bmN0aW9uIHFOZShkLGcpe2lmKDEm''@;'; put 'put ''ZCYmKG50KDAsImRpdiIsMTgpLHJuKDEsS05lLDIsMCwic3BhbiIsMTkpLHJuKDIsJE5lLDMsMCwiZGl2IiwxNiksb3QoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMSksVHQoIm5nSWYiLCFoLmxvYWRlZCksdXQoMSksVHQoIm5nSWYiLCFoLmxvYWRlZCl9fWZ1bmN0aW9uIGVWZShkLGcpezEm''@;'; put 'put ''ZCYmKG50KDAsImgzIiwyNSksWXQoMSwiSElTVE9SWSIpLG90KCkpfWNvbnN0IHRWZT1mdW5jdGlvbihkLGcpe3JldHVybntyZWplY3RlZDpkLGFjY2VwdGVkOmd9fTtmdW5jdGlvbiBuVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItZGctcm93IiwzNCksR24oImNsaWNr''@;'; put 'put ''IixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0O3JldHVybiBhKFF0KDMpLmdldEFwcHJJbmRleChDKSl9KSxudCgxLCJjbHItZGctY2VsbCIsMzUpKDIsImEiLDM2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7Y29uc3QgQz1pdChoKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoMyku''@;'; put 'put ''Z2V0QmFzZVRhYmxlKEMuYmFzZXRhYmxlKSl9KSxZdCgzKSxvdCgpKCksbnQoNCwiY2xyLWRnLWNlbGwiLDM3KSxZdCg1KSxvdCgpLG50KDYsImNsci1kZy1jZWxsIiwzNSksWXQoNyksb3QoKSxudCg4LCJjbHItZGctY2VsbCIsMzUpLFl0KDkpLG90KCksbnQoMTAsImNsci1kZy1jZWxsIiwz''@;'; put 'put ''NSksWXQoMTEpLG90KCksbnQoMTIsImNsci1kZy1jZWxsIiwzNSksWXQoMTMpLG90KCksbnQoMTQsImNsci1kZy1jZWxsIiwzOCkoMTUsImJ1dHRvbiIsMzkpLEduKCJjbGljayIsZnVuY3Rpb24oeSl7Y29uc3QgST1pdChoKS4kaW1wbGljaXQ7cmV0dXJuIFF0KDMpLmRvd25sb2FkKEkudGFi''@;'; put 'put ''bGVJZCksYSh5LnN0b3BQcm9wYWdhdGlvbigpKX0pLENyKDE2LCJjbHItaWNvbiIsNDApLG90KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgzKSxqaShoLmJhc2V0YWJsZSksdXQoMSksVHQoIm5nQ2xhc3MiLGozKDcsdFZlLCJSRUpFQ1RFRCI9PT1oLnN0YXR1cywiQVBQ''@;'; put 'put ''Uk9WRUQiPT09aC5zdGF0dXMpKSx1dCgxKSxqaShoLnN0YXR1cyksdXQoMiksamkoaC5zdWJtaXR0ZXIpLHV0KDIpLGppKGguc3VibWl0dGVkUmVhc29uKSx1dCgyKSxqaShoLnN1Ym1pdHRlZCksdXQoMiksamkoaC5yZXZpZXdlZCl9fWZ1bmN0aW9uIHJWZShkLGcpe2lmKDEmZCl7Y29uc3Qg''@;'; put 'put ''aD13aSgpO250KDAsImNsci1kYXRhZ3JpZCIsMjYpKDEsImNsci1kZy1jb2x1bW4iLDI3KSxZdCgyLCJCQVNFX1RBQkxFIiksb3QoKSxudCgzLCJjbHItZGctY29sdW1uIiwyNyksWXQoNCwiU1RBVFVTIiksb3QoKSxudCg1LCJjbHItZGctY29sdW1uIiwyNyksWXQoNiwiU1VCTUlUVEVSIiks''@;'; put 'put ''b3QoKSxudCg3LCJjbHItZGctY29sdW1uIiwyNyksWXQoOCwiU1VCTUlUIFJFQVNPTiIpLG90KCksbnQoOSwiY2xyLWRnLWNvbHVtbiIsMjcpLFl0KDEwLCJTVUJNSVRURUQiKSxvdCgpLG50KDExLCJjbHItZGctY29sdW1uIiwyNyksWXQoMTIsIkFQUFJPVkVEIC8gUkVKRUNURUQiKSxvdCgp''@;'; put 'put ''LG50KDEzLCJjbHItZGctY29sdW1uIiwyNyksWXQoMTQsIkRPV05MT0FEIiksb3QoKSxybigxNSxuVmUsMTcsMTAsImNsci1kZy1yb3ciLDI4KSxudCgxNiwiY2xyLWRnLWZvb3RlciIsMjkpKDE3LCJzcGFuIiksWXQoMTgsIml0ZW1zIHBlciBwYWdlIiksb3QoKSxudCgxOSwic2VsZWN0Iiwz''@;'; put 'put ''MCksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLml0ZW1zTnVtPXkpfSksbnQoMjAsIm9wdGlvbiIsMzEpLFl0KDIxLCIzIiksb3QoKSxudCgyMiwib3B0aW9uIiwzMSksWXQoMjMsIjUiKSxvdCgpLG50KDI0LCJvcHRpb24iLDMxKSxZdCgyNSwi''@;'; put 'put ''MTAiKSxvdCgpLG50KDI2LCJvcHRpb24iLDMxKSxZdCgyNywiMTUiKSxvdCgpKCksbnQoMjgsImNsci1kZy1wYWdpbmF0aW9uIiwzMiwzMyksWXQoMzApLG90KCkoKSgpfWlmKDImZCl7Y29uc3QgaD12YSgyOSksdj1RdCgyKTt1dCgxKSxUdCgiY2xyRGdGaWVsZCIsImJhc2V0YWJsZSIpLHV0''@;'; put 'put ''KDIpLFR0KCJjbHJEZ0ZpZWxkIiwic3RhdHVzIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJzdWJtaXR0ZXIiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdHRlZFJlYXNvbiIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwic3VibWl0dGVkIiksdXQoMiksVHQoImNsckRnRmllbGQiLCJy''@;'; put 'put ''ZXZpZXdlZCIpLHV0KDIpLFR0KCJjbHJEZ0ZpZWxkIiwicmV2aWV3ZWQiKSx1dCgyKSxUdCgiY2xyRGdJdGVtc09mIix2Lmhpc3RvcnkpLHV0KDQpLFR0KCJuZ01vZGVsIix2Lml0ZW1zTnVtKSx1dCgxKSxUdCgibmdWYWx1ZSIsMyksdXQoMiksVHQoIm5nVmFsdWUiLDUpLHV0KDIpLFR0KCJu''@;'; put 'put ''Z1ZhbHVlIiwxMCksdXQoMiksVHQoIm5nVmFsdWUiLDE1KSx1dCgyKSxUdCgiY2xyRGdQYWdlU2l6ZSIsdi5pdGVtc051bSksdXQoMiksa2YoIiAiLGguZmlyc3RJdGVtKzEsIiAtICIsaC5sYXN0SXRlbSsxLCIgb2YgIixoLnRvdGFsSXRlbXMsIiB1cGRhdGVzICIpfX1mdW5jdGlvbiBpVmUo''@;'; put 'put ''ZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDIxKSgxLCJkaXYiLDIyKSxybigyLGVWZSwyLDAsImgzIiwyMyksb3QoKSxybigzLHJWZSwzMSwxNywiY2xyLWRhdGFncmlkIiwyNCksb3QoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMiksVHQoIm5nSWYiLGgubG9hZGVkKSx1dCgxKSxUdCgibmdJ''@;'; put 'put ''ZiIsaC5sb2FkZWQpfX1sZXQgb1ZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMucm91dGVyPXksdGhpcy5zYXNTZXJ2aWNlPUMsdGhpcy5oaXN0b3J5PVtdLHRoaXMudGFibGVUaXRsZXM9''@;'; put 'put ''W10sdGhpcy5oaXN0b3J5QXJyPVtdLHRoaXMubG9hZGVkPSExLHRoaXMuaXRlbXNOdW09MTAsdGhpcy5vcGVuTW9kYWw9ITEsdGhpcy5ub0RhdGE9ITEsdGhpcy5hcHByb3ZlRGF0YT17fSx0aGlzLnNhc2pzQ29uZmlnPW5ldyBVMy5TQVNqc0NvbmZpZyx0aGlzLnNhc2pzQ29uZmlnPXRoaXMu''@;'; put 'put ''c2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpfWdldFRhYmxlKGgpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK2gpfWdldEJhc2VUYWJsZShoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhLyIraCl9Z2V0RWRpdFRhYmxlKGgpe3RoaXMucm91dGVy''@;'; put 'put ''Lm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIitoKX1nZXRBcHBySW5kZXgoaCl7Y29uc3Qgdj10aGlzLmhpc3RvcnlBcnIuZmluZEluZGV4KHk9PnkuVEFCTEVfSUQ9PT1oLnRhYmxlSWQpO3Y+LTEmJih0aGlzLmFwcHJvdmVEYXRhPXRoaXMuaGlzdG9yeUFyclt2XSx0aGlzLm9wZW5Nb2RhbD0h''@;'; put 'put ''MCl9ZG93bmxvYWQoaCl7bGV0IHY9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkseT12LnNlcnZlclVybCxDPXYuYXBwTG9jLEk9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3Blbih5K0krIi8/X3Byb2dyYW09IitDKyIvc2VydmljZXMvYXVkaXRv''@;'; put 'put ''cnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIraCsiJl9jb250ZXh0bmFtZT0iK3RoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUpfW5nT25Jbml0KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgdj17SElTVDo1MH07dHJ5e2xldCBDLHk9eWllbGQgdGhpcy5z''@;'; put 'put ''YXNTdG9yZVNlcnZpY2UuZ2V0SGlzdG9yeSh2LCJCcm93c2VyUGFyYW1zIiwiYXBwcm92ZXJzL2dldGhpc3RvcnkiKSxJPXkuZnJvbXNhcztpZih0aGlzLmhpc3RvcnlBcnI9eS5mcm9tc2FzLHkuZnJvbXNhcy5sZW5ndGg+MCl7Qz1PYmplY3Qua2V5cyhJWzBdKSx0aGlzLnRhYmxlVGl0bGVz''@;'; put 'put ''PUM7bGV0IFo9eS5mcm9tc2FzLm1hcChmdW5jdGlvbih1ZSl7cmV0dXJue3RhYmxlSWQ6dWUuVEFCTEVfSUQsc3VibWl0dGVyOnVlLlNVQk1JVFRFUixzdWJtaXR0ZWRSZWFzb246dWUuU1VCTUlUVEVEX1JFQVNPTl9UWFQsc3VibWl0dGVkOnVlLlNVQk1JVFRFRCxzdGF0dXM6dWUuU1RBVFVT''@;'; put 'put ''LHJldmlld1JlYXNvbjp1ZS5SRVZJRVdfUkVBU09OX1RYVCxyZXZpZXdlcjp1ZS5SRVZJRVdFUixyZXZpZXdlZDp1ZS5SRVZJRVdFRCxudW1PZkFwcHJvdmFsczp1ZS5OVU1fT0ZfQVBQUk9WQUxTX1JFUVVJUkVELGJhc2V0YWJsZTp1ZS5CQVNFX1RBQkxFfX0pO3RoaXMuaGlzdG9yeT1aLHRo''@;'; put 'put ''aXMubG9hZGVkPSEwfWVsc2UgdGhpcy5sb2FkZWQ9ITAsdGhpcy5ub0RhdGE9ITB9Y2F0Y2goeSl7dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJhcHByb3ZlcnMvZ2V0aGlzdG9yeSIseSl9fSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3''@;'; put 'put ''KGh8fGQpKEt0KGtnKSxLdChtdSksS3QoWmwpLEt0KGcyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1oaXN0b3J5Il1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczoyMCx2YXJzOjYsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl0s''@;'; put 'put ''WyJpZCIsIm5vRGF0YUNvbnRhaW5lciIsImNsYXNzIiwiY2FyZC1ibG9jayBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxTaXplIiwiY2xyTW9kYWxPcGVuQ2hh''@;'; put 'put ''bmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwidGFibGUiXSxbMSwibGVmdCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbImNsYXNzIiwi''@;'; put 'put ''aC03MHZoIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWyJpZCIsIm5vRGF0YUNvbnRhaW5lciIsMSwiY2FyZC1ibG9jayIsImQtZmxleCIsImp1c3RpZnktY29u''@;'; put 'put ''dGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsiY2xhc3MiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xp''@;'; put 'put ''Y2siLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsxLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYi''@;'; put 'put ''XSxbMSwic3Bpbm5lciJdLFsxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWyJjbGFzcyIsImNlbnRlciBjbHItY29sLW1kLTEyIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImRhdGFncmlkLWhpc3RvcnkgZGF0YWdyaWQtY3VzdG9tLWZvb3RlciIsNCwibmdJZiJdLFsxLCJj''@;'; put 'put ''ZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiXSxbMSwiZGF0YWdyaWQtaGlzdG9yeSIsImRhdGFncmlkLWN1c3RvbS1mb290ZXIiXSxbMywiY2xyRGdGaWVsZCJdLFszLCJjbGljayIsNCwiY2xyRGdJdGVtcyIsImNsckRnSXRlbXNPZiJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5''@;'; put 'put ''LWNvbnRlbnQtc3RhcnQiXSxbMSwibXgtNSIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywibmdWYWx1ZSJdLFsxLCJjZW50ZXIiLDMsImNsckRnUGFnZVNpemUiXSxbInBhZ2luYXRpb24iLCIiXSxbMywiY2xpY2siXSxbMSwidmVyQ2VudGVyIl0sWzEsImJ0biIsImJ0bi1zbSIs''@;'; put 'put ''ImJ0bi1saW5rIiwibS0wIiwzLCJjbGljayJdLFsxLCJ2ZXJDZW50ZXIiLDMsIm5nQ2xhc3MiXSxbMSwidmVyQ2VudGVyIiwicC0wIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJidG4iLCJidG4tc3VjY2VzcyIsMywiY2xpY2siXSxbInNoYXBlIiwiZG93bmxvYWQi''@;'; put 'put ''XV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJkaXYiLDApLHJuKDEsWU5lLDQsMCwiZGl2IiwxKSxudCgyLCJjbHItbW9kYWwiLDIpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9wZW5Nb2RhbD1DfSksbnQoMywiaDQiLDMpLFl0KDQs''@;'; put 'put ''IkFwcHJvdmFsIGRldGFpbHMiKSxvdCgpLG50KDUsImRpdiIsNCkoNiwidGFibGUiLDUpKDcsInRoZWFkIikoOCwidHIiKSg5LCJ0aCIsNiksWXQoMTAsIk5hbWUiKSxvdCgpLG50KDExLCJ0aCIsNiksWXQoMTIsIlZhbHVlIiksb3QoKSgpKCksbnQoMTMsInRib2R5Iikscm4oMTQsWE5lLDcs''@;'; put 'put ''NCwidHIiLDcpLG90KCkoKSgpLG50KDE1LCJkaXYiLDgpKDE2LCJidXR0b24iLDkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vcGVuTW9kYWw9ITF9KSxZdCgxNywiIE9LICIpLG90KCkoKSgpLHJuKDE4LHFOZSwzLDIsImRpdiIsMTApLHJuKDE5LGlWZSw0LDIsImRpdiIsMTEp''@;'; put 'put ''LG90KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIix2Lm5vRGF0YSksdXQoMSksVHQoImNsck1vZGFsT3BlbiIsdi5vcGVuTW9kYWwpKCJjbHJNb2RhbFNpemUiLCJ4bCIpLHV0KDEyKSxUdCgibmdGb3JPZiIsdi50YWJsZVRpdGxlcyksdXQoNCksVHQoIm5nSWYiLCF2LmxvYWRlZCksdXQoMSks''@;'; put 'put ''VHQoIm5nSWYiLCF2Lm5vRGF0YSYmdi5sb2FkZWQpKX0sZGVwZW5kZW5jaWVzOltsYyx4cyxObywkMyxxMyxPZixUcyxJcyxHTCxnUyx6TCxtUyxtdyxmWixoWixZTCxBUyx5Uyx2UyxwdyxWTCxaTCx3bCxpZCxvZF0sc3R5bGVzOlsiLnJlamVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xv''@;'; put 'put ''cjojZjgzMTI2O2ZvbnQtd2VpZ2h0OjcwMH0uYWNjZXB0ZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMzZmM0MjQ7Zm9udC13ZWlnaHQ6NzAwfS5oc0NlbGxbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFu''@;'; put 'put ''dDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudDthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50O3BhZGRpbmc6N3B4fS5idENlbGxbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnQ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LnZlckNl''@;'; put 'put ''bnRlcltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjt3b3JkLWJyZWFrOmJyZWFrLWFsbH0jbm9EYXRhQ29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtoZWlnaHQ6Y2FsYygxMDB2aCAtIDIwMHB4KX0iXX0pLGR9KSgpLGFWZT0oKCk9PntjbGFz''@;'; put 'put ''cyBke2NvbnN0cnVjdG9yKCl7fW5nT25Jbml0KCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLW5vdC1mb3VuZCJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVy''@;'; put 'put ''Il0sZGVjbHM6Myx2YXJzOjAsY29uc3RzOltbMSwiY29udGVudC1hcmVhIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiZGl2IiwwKSgxLCJwIiksWXQoMiwiNDA0IC0gTm90IEZvdW5kIiksb3QoKSgpKX19KSxkfSkoKTtmdW5jdGlvbiBsVmUoZCxnKXsxJmQmJihudCgw''@;'; put 'put ''LCJkaXYiLDEyKSgxLCJkaXYiLDEzKSxDcigyLCJjbHItaWNvbiIsMTQpLG50KDMsImgzIiwxNSksWXQoNCwiIFlvdSBoYXZlIG5vdCBzdWJtaXR0ZWQgYW55IHRhYmxlcyAiKSxvdCgpKCkoKSl9ZnVuY3Rpb24gc1ZlKGQsZyl7MSZkJiYobnQoMCwiaDMiLDE2KSxZdCgxLCIgU1VCTUlUIFFV''@;'; put 'put ''RVVFICIpLG90KCkpfWZ1bmN0aW9uIHVWZShkLGcpe2lmKDEmZCYmKG50KDAsInAiLDE3KSxZdCgxLCIgWW91IGhhdmUgIiksbnQoMiwic3BhbiIpLFl0KDMpLG90KCksWXQoNCwic3VibWlzc2lvbnMgd2FpdGluZyB0byBiZSBhcHByb3ZlZCAiKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMyk7''@;'; put 'put ''dXQoMyksSmkoIiIsaC5yZW1haW5lZCwiICIpfX1mdW5jdGlvbiBjVmUoZCxnKXsxJmQmJihudCgwLCJzcGFuIiwyMCksWXQoMSwiIExvYWRpbmcuLi4gIiksb3QoKSl9ZnVuY3Rpb24gZlZlKGQsZyl7MSZkJiYobnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIHN1Ym1pdHRlZCBs''@;'; put 'put ''aXN0Iiksb3QoKSgpKX1mdW5jdGlvbiBoVmUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDE4KSxybigxLGNWZSwyLDAsInNwYW4iLDE5KSxybigyLGZWZSwzLDAsImRpdiIsMiksb3QoKSksMiZkKXtjb25zdCBoPVF0KDMpO3V0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpLHV0KDEpLFR0KCJu''@;'; put 'put ''Z0lmIiwhaC5sb2FkZWQpfX1mdW5jdGlvbiBkVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItZGctcm93IiwzMCksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IHk9aXQoaCksQz15LiRpbXBsaWNpdCxJPXkuaW5kZXg7cmV0dXJuIGEoUXQoNSkuZ2V0RGV0YWlscyhD''@;'; put 'put ''LEkpKX0pLG50KDEsImNsci1kZy1jZWxsIiksWXQoMiksb3QoKSxudCgzLCJjbHItZGctY2VsbCIpLFl0KDQpLG90KCksbnQoNSwiY2xyLWRnLWNlbGwiKSxZdCg2KSxvdCgpLG50KDcsImNsci1kZy1jZWxsIikoOCwiZGl2IiwzMSkoOSwiYSIsMzIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtj''@;'; put 'put ''b25zdCBDPWl0KGgpLiRpbXBsaWNpdDtyZXR1cm4gYShRdCg1KS5nb1RvU3RhZ2UoQy50YWJsZUlkKSl9KSxDcigxMCwiY2xyLWljb24iLDMzKSxudCgxMSwic3BhbiIsMzQpLFl0KDEyLCJHbyB0byBzdGFnZWQgZGF0YSBzY3JlZW4iKSxvdCgpKCkoKSgpLG50KDEzLCJjbHItZGctY2VsbCIs''@;'; put 'put ''MzUpKDE0LCJidXR0b24iLDM2KSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2NvbnN0IEk9aXQoaCkuJGltcGxpY2l0O3JldHVybiBRdCg1KS5kb3dubG9hZChJLnRhYmxlSWQpLGEoeS5zdG9wUHJvcGFnYXRpb24oKSl9KSxDcigxNSwiY2xyLWljb24iLDM3KSxvdCgpKCkoKX1pZigyJmQpe2Nv''@;'; put 'put ''bnN0IGg9Zy4kaW1wbGljaXQ7dXQoMiksamkoaC5iYXNlKSx1dCgyKSxqaShoLnN1Ym1pdHRlZCksdXQoMiksamkoaC5zdWJtaXRSZWFzb24pfX1mdW5jdGlvbiBwVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiKSgxLCJjbHItZGF0YWdyaWQiLDIyKSgyLCJjbHItZGct''@;'; put 'put ''Y29sdW1uIiksWXQoMywiQkFTRSBUQUJMRSIpLG90KCksbnQoNCwiY2xyLWRnLWNvbHVtbiIsMjMpLFl0KDUsIlNVQk1JVFRFRCIpLG90KCksbnQoNiwiY2xyLWRnLWNvbHVtbiIsMjMpLFl0KDcsIlNVQk1JVCBSRUFTT04iKSxvdCgpLG50KDgsImNsci1kZy1jb2x1bW4iLDEyKSxZdCg5LCJB''@;'; put 'put ''Q1RJT04iKSxvdCgpLG50KDEwLCJjbHItZGctY29sdW1uIiwxMiksWXQoMTEsIkRPV05MT0FEIiksb3QoKSxybigxMixkVmUsMTYsMywiY2xyLWRnLXJvdyIsMjQpLG50KDEzLCJjbHItZGctZm9vdGVyIiwyNSkoMTQsInNwYW4iKSxZdCgxNSwiaXRlbXMgcGVyIHBhZ2UiKSxvdCgpLG50KDE2''@;'; put 'put ''LCJzZWxlY3QiLDI2KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoNCkuaXRlbXNOdW09eSl9KSxudCgxNywib3B0aW9uIiwyNyksWXQoMTgsIjMiKSxvdCgpLG50KDE5LCJvcHRpb24iLDI3KSxZdCgyMCwiNSIpLG90KCksbnQoMjEsIm9wdGlvbiIs''@;'; put 'put ''MjcpLFl0KDIyLCIxMCIpLG90KCksbnQoMjMsIm9wdGlvbiIsMjcpLFl0KDI0LCIxNSIpLG90KCkoKSxudCgyNSwiY2xyLWRnLXBhZ2luYXRpb24iLDI4LDI5KSxZdCgyNyksb3QoKSgpKCkoKX1pZigyJmQpe2NvbnN0IGg9dmEoMjYpLHY9UXQoNCk7dXQoNCksVHQoImNsckRnRmllbGQiLCJz''@;'; put 'put ''dWJtaXR0ZWQiKSx1dCgyKSxUdCgiY2xyRGdGaWVsZCIsInN1Ym1pdFJlYXNvbiIpLHV0KDYpLFR0KCJjbHJEZ0l0ZW1zT2YiLHYuc3VibWl0dGVyTGlzdCksdXQoNCksVHQoIm5nTW9kZWwiLHYuaXRlbXNOdW0pLHV0KDEpLFR0KCJuZ1ZhbHVlIiwzKSx1dCgyKSxUdCgibmdWYWx1ZSIsNSks''@;'; put 'put ''dXQoMiksVHQoIm5nVmFsdWUiLDEwKSx1dCgyKSxUdCgibmdWYWx1ZSIsMTUpLHV0KDIpLFR0KCJjbHJEZ1BhZ2VTaXplIix2Lml0ZW1zTnVtKSx1dCgyKSxrZigiICIsaC5maXJzdEl0ZW0rMSwiIC0gIixoLmxhc3RJdGVtKzEsIiBvZiAiLGgudG90YWxJdGVtcywiIHN1Ym1pc3Npb25zICIp''@;'; put 'put ''fX1mdW5jdGlvbiBnVmUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDIxKSxybigxLHBWZSwyOCwxMiwiZGl2IiwyKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMSksVHQoIm5nSWYiLGguc3VibWl0dGVyTGlzdCYmMCE9PWgucmVtYWluZWQpfX1jb25zdCBtVmU9ZnVuY3Rpb24oZCl7''@;'; put 'put ''cmV0dXJue25vQm9yZGVyOmR9fTtmdW5jdGlvbiB2VmUoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDUpLHJuKDEsbFZlLDUsMCwiZGl2Iiw2KSxudCgyLCJkaXYiLDcpLHJuKDMsc1ZlLDIsMCwiaDMiLDgpLHJuKDQsdVZlLDUsMSwicCIsOSksb3QoKSxybig1LGhWZSwzLDIsImRpdiIsMTAp''@;'; put 'put ''LHJuKDYsZ1ZlLDIsMSwiZGl2IiwxMSksb3QoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDEpLFR0KCJuZ0lmIiwwPT09aC5yZW1haW5lZCYmaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0NsYXNzIixHZCg2LG1WZSwhaC5sb2FkZWQpKSx1dCgxKSxUdCgibmdJZiIsMCE9PWgucmVtYWluZWQpLHV0''@;'; put 'put ''KDEpLFR0KCJuZ0lmIixoLmxvYWRlZCYmMCE9PWgucmVtYWluZWQpLHV0KDEpLFR0KCJuZ0lmIiwhaC5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIixoLmxvYWRlZCl9fWZ1bmN0aW9uIEFWZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMykscm4oMSx2VmUsNyw4LCJkaXYiLDQpLG90KCkpLDIm''@;'; put 'put ''ZCl7Y29uc3QgaD1RdCgpO3V0KDEpLFR0KCJuZ0lmIiwhaC5zdWJSZWFkeSl9fWZ1bmN0aW9uIHlWZShkLGcpezEmZCYmKG50KDAsImRpdiIpLENyKDEsImFwcC1hcHByb3ZlLWRldGFpbHMiKSxvdCgpKX1sZXQgendlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5z''@;'; put 'put ''YXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMucm91dGU9eSx0aGlzLnNhc1NlcnZpY2U9Qyx0aGlzLnJlbWFpbmVkPTAsdGhpcy5sb2FkZWQ9ITEsdGhpcy5zdWJSZWFkeT0hMSx0aGlzLmRldGFpbHNPcGVuPSExfWdvVG9TdGFnZShoKXt0aGlzLnJvdXRlLm5hdmln''@;'; put 'put ''YXRlQnlVcmwoIi9zdGFnZS8iK2gpfWdldERldGFpbHMoaCx2KXt0aGlzLnN1YlJlYWR5PSEwLHNldFRpbWVvdXQoKCk9Pnt0aGlzLnNhc1N0b3JlU2VydmljZS5zZW5kRGV0YWlscyhoLHYsdGhpcy5zdWJtaXREYXRhKX0sMCl9bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9p''@;'; put 'put ''ZCAwLGZ1bmN0aW9uKigpe3RoaXMuaXRlbXNOdW09MTA7dHJ5e2xldCBoPXlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmdldFN1Ym1pdHRzKCk7aWYodGhpcy5yZW1haW5lZD1oLmZyb21zYXMubGVuZ3RoLHRoaXMucmVtYWluZWQ+MCl7dGhpcy5zdWJtaXR0ZXI9aC5mcm9tc2FzWzBdLlNV''@;'; put 'put ''Qk1JVFRFRF9CWV9OTTtsZXQgdj1oLmZyb21zYXMubWFwKGZ1bmN0aW9uKHkpe3JldHVybnt0YWJsZUlkOnkuVEFCTEVfSUQsYmFzZTp5LkJBU0VfVEFCTEUsc3VibWl0dGVkOnkuU1VCTUlUVEVEX09OX0RUVE0sc3VibWl0dGVyOnkuU1VCTUlUVEVEX0JZX05NLHN1Ym1pdFJlYXNvbjp5LlNV''@;'; put 'put ''Qk1JVFRFRF9SRUFTT05fVFhUfX0pO3RoaXMuc3VibWl0dGVyTGlzdD12LHRoaXMuc3VibWl0RGF0YT1oLmZyb21zYXN9dGhpcy5sb2FkZWQ9ITB9Y2F0Y2goaCl7dGhpcy5ldmVudFNlcnZpY2UuY2F0Y2hSZXNwb25zZUVycm9yKCJlZGl0b3JzL2dldHN1Ym1pdHMiLGgpfX0pfW5nQWZ0ZXJW''@;'; put 'put ''aWV3SW5pdCgpe3RoaXMuX3JlYWR5U3ViPXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnNldFN1Ym1pdC5zdWJzY3JpYmUoaD0+e3RoaXMuc3ViUmVhZHk9aH0pLHRoaXMuX2JhY2tUb1N1Yj10aGlzLnNhc1N0b3JlU2VydmljZS5zZXRTdWJtaXRMaXN0LnN1YnNjcmliZShoPT57dGhpcy5zdWJSZWFk''@;'; put 'put ''eT0hdGhpcy5zdWJSZWFkeSx0aGlzLmRldGFpbHNPcGVuPSExfSl9ZG93bmxvYWQoaCl7bGV0IHY9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkseT12LnNlcnZlclVybCxDPXYuYXBwTG9jLEk9dGhpcy5zYXNTZXJ2aWNlLmdldEV4ZWN1dGlvblBhdGgoKTt3aW5kb3cub3Blbih5''@;'; put 'put ''K0krIi8/X3Byb2dyYW09IitDKyIvc2VydmljZXMvYXVkaXRvcnMvZ2V0YXVkaXRmaWxlJnRhYmxlPSIraCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGtnKSxLdChtdSksS3QoWmwpLEt0KGcyKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQs''@;'; put 'put ''c2VsZWN0b3JzOltbImFwcC1zdWJtaXR0ZXIiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjMsdmFyczoyLGNvbnN0czpbWzEsInctMTAwIl0sWyJjbGFzcyIsImNvbnRlbnQtYXJlYSIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsi''@;'; put 'put ''Y2xhc3MiLCJjYXJkIiw0LCJuZ0lmIl0sWzEsImNhcmQiXSxbImNsYXNzIiwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY2FyZC1oZWFkZXIiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwiY2VudGVyIGNsci1jb2wtbWQtMTIgdGV4dC1jZW50ZXIiLDQsIm5n''@;'; put 'put ''SWYiXSxbImNsYXNzIiwidGV4dC1jZW50ZXIgZm9udC13ZWlnaHQtNzAwIGNvbG9yLWRhcmstZ3JheSIsNCwibmdJZiJdLFsiY2xhc3MiLCJoLTcwdmggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbGFz''@;'; put 'put ''cyIsImNsci1jb2wtbWQtMTIiLDQsIm5nSWYiXSxbMSwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciJdLFsxLCJuby1zdWJtaXR0ZWQtdGFibGVzIiwiY2FyZC1ibG9jayIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1z''@;'; put 'put ''LWNlbnRlciJdLFsic2hhcGUiLCJ3YXJuaW5nLXN0YW5kYXJkIiwic2l6ZSIsIjYwIiwxLCJpcy1pbmZvIl0sWzEsInRleHQtY2VudGVyIiwiY29sb3ItZ3JheSJdLFsxLCJjZW50ZXIiLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiXSxbMSwidGV4dC1jZW50ZXIiLCJmb250LXdlaWdo''@;'; put 'put ''dC03MDAiLCJjb2xvci1kYXJrLWdyYXkiXSxbMSwiaC03MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbMSwic3Bpbm5lciJdLFsxLCJjbHItY29sLW1k''@;'; put 'put ''LTEyIl0sWzEsImRhdGFncmlkLWNvbXBhY3QiLCJkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIl0sWzMsImNsckRnRmllbGQiXSxbImNsYXNzIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIiw0LCJjbHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09mIl0sWzEsImQtZmxleCIsImp1c3RpZnktY29udGVu''@;'; put 'put ''dC1zdGFydCJdLFszLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJuZ1ZhbHVlIl0sWzEsImNlbnRlciIsMywiY2xyRGdQYWdlU2l6ZSJdLFsicGFnaW5hdGlvbiIsIiJdLFsxLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInJvbGUiLCJ0b29sdGlwIiwxLCJyb3ciLCJqdXN0''@;'; put 'put ''aWZ5LWNvbnRlbnQtYXJvdW5kIl0sWzEsImNvbHVtbi1jZW50ZXIiLCJsaW5rcyIsInRvb2x0aXAiLCJ0b29sdGlwLW1kIiwidG9vbHRpcC1ib3R0b20tbGVmdCIsImNvbG9yLWJsdWUiLDMsImNsaWNrIl0sWyJzaGFwZSIsImNvZGUiLCJzaXplIiwiMjgiXSxbMSwidG9vbHRpcC1jb250ZW50''@;'; put 'put ''Il0sWzEsInAtMCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50ZXIiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiZGl2IiwwKSxybigxLEFWZSwyLDEsImRpdiIs''@;'; put 'put ''MSkscm4oMix5VmUsMiwwLCJkaXYiLDIpLG90KCkpLDImaCYmKHV0KDEpLFR0KCJuZ0lmIiwhdi5zdWJSZWFkeSksdXQoMSksVHQoIm5nSWYiLHYuc3ViUmVhZHkpKX0sZGVwZW5kZW5jaWVzOltsYyxObywkMyxxMyxPZixUcyxJcyxHTCxnUyx6TCxtUyxtdyxmWixoWixZTCxBUyx5Uyx2Uyxw''@;'; put 'put ''dyxWTCxaTCx3bCxad2VdLHN0eWxlczpbIi5ub0JvcmRlcltfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdHJhbnNwYXJlbnQhaW1wb3J0YW50fS50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnRbX25nY29udGVudC0lQ09NUCVdID4gLnRvb2x0aXAtY29udGVu''@;'; put 'put ''dFtfbmdjb250ZW50LSVDT01QJV0sIC50b29sdGlwW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVmdFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZDojMzE0MzUxIWltcG9ydGFudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1sZWZ0''@;'; put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSA+IC50b29sdGlwLWNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZSwgLnRvb2x0aXBbX25nY29udGVudC0lQ09NUCVdICAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1sZWZ0W19uZ2NvbnRlbnQtJUNPTVAlXTpiZWZvcmV7Ym9yZGVy''@;'; put 'put ''LXJpZ2h0Oi4yNXJlbSBzb2xpZCAjMzE0MzUxO2JvcmRlci1ib3R0b206LjIwODMzcmVtIHNvbGlkICMzMTQzNTF9Lm5vLXN1Ym1pdHRlZC10YWJsZXNbX25nY29udGVudC0lQ09NUCVde2hlaWdodDpjYWxjKDEwMHZoIC0gMjAwcHgpfSJdfSksZH0pKCksd1ZlPSgoKT0+e2NsYXNzIGR7Y29u''@;'; put 'put ''c3RydWN0b3IoKXt9bmdPbkluaXQoKXt9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtYXBwcm92ZS1yb3V0ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0s''@;'; put 'put ''ZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJkNyKDAsInJvdXRlci1vdXRsZXQiKX0sZGVwZW5kZW5jaWVzOltheV19KSxkfSkoKSxHd2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe31kb3dubG9hZEZpbGUoaCx2LHk9InR4dCIpe2xldCBDPW5ldyBCbG9i''@;'; put 'put ''KFtoXSx7dHlwZToidGV4dC9wbGFpbiJ9KTtpZihuYXZpZ2F0b3IuYXBwVmVyc2lvbi50b1N0cmluZygpLmluZGV4T2YoIi5ORVQiKT4wKXdpbmRvdy5uYXZpZ2F0b3IubXNTYXZlQmxvYihDLGAke3Z9LiR7eX1gKTtlbHNle2xldCBJPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtJLmhy''@;'; put 'put ''ZWY9ImRhdGE6dGV4dC9wbGFpbiwiK2VuY29kZVVSSUNvbXBvbmVudChoKSxJLmRvd25sb2FkPWAke3Z9LiR7eX1gLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoSSksSS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoSSl9fXJlYWRGaWxlKGgpe3JldHVybiBuZXcgUHJvbWlz''@;'; put 'put ''ZSgodix5KT0+e2xldCBDPW5ldyBGaWxlUmVhZGVyO0Mub25sb2FkPSgpPT57Qy5yZXN1bHQmJnYoSlNPTi5wYXJzZShDLnJlc3VsdC50b1N0cmluZygpKSl9LEMucmVhZEFzVGV4dChoKX0pfWNsZWFyVXBsb2FkSW5wdXQoaCl7aC50YXJnZXQudmFsdWU9IiJ9fXJldHVybiBkLlx1MDI3NWZh''@;'; put 'put ''Yz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2Z1bmN0aW9uIGJWZShkLGcpezEmZCYmKG50KDAsImRpdiIsNikoMSwicCIsNyksWXQoMiwiUGxlYXNlIGxv''@;'; put 'put ''ZyBpbiBmaXJzdCIpLG90KCksbnQoMywibGFiZWwiLDgpLFl0KDQsIlVzZXJuYW1lIiksb3QoKSxudCg1LCJkaXYiLDkpKDYsImRpdiIsMTApLENyKDcsImlucHV0IiwxMSksb3QoKSgpLG50KDgsImxhYmVsIiwxMiksWXQoOSwiUGFzc3dvcmQiKSxvdCgpLG50KDEwLCJkaXYiLDkpKDExLCJk''@;'; put 'put ''aXYiLDEwKSxDcigxMiwiaW5wdXQiLDEzKSxvdCgpKCksbnQoMTMsImJ1dHRvbiIsMTQpLFl0KDE0LCJMb2cgaW4iKSxvdCgpKCkpfWZ1bmN0aW9uIF9WZShkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIsMzYpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFs''@;'; put 'put ''dWUiLGguaWQpLHV0KDEpLEppKCIgIixoLm5hbWUsIiAiKX19ZnVuY3Rpb24gQ1ZlKGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdDt1dCgxKSxKaSgiKCAiLGguYXR0cmlidXRlcy5zeXNVc2VySWQsIiApIil9fWZ1bmN0''@;'; put 'put ''aW9uIGtWZShkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIsMzYpLFl0KDEpLHJuKDIsQ1ZlLDIsMSwic3BhbiIsNSksbm4oMywianNvbiIpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGgubmFtZSksdXQoMSksSmkoIiAiLGgubmFtZSwiICIpLHV0KDEpLFR0''@;'; put 'put ''KCJuZ0lmIiwie30iIT16dCgzLDMsaC5hdHRyaWJ1dGVzKSl9fWZ1bmN0aW9uIFNWZShkLGcpezEmZCYmKG50KDAsInNwYW4iKSxZdCgxLCJKU09OIFN1Ym1pdHRlZCBTdWNjZXNzZnVsbHkiKSxvdCgpKX1mdW5jdGlvbiBNVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0''@;'; put 'put ''b24iLDM3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMikuZG93bmxvYWRTYXNQcmVjb2RlRmlsZSgpKX0pLENyKDEsImNsci1pY29uIiwzOCksb3QoKX19ZnVuY3Rpb24gRVZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7QjAoMCksbnQoMSwicCIsMzkpLFl0''@;'; put 'put ''KDIsIkZpbGUgZXhlY3V0ZSBjb21wbGV0ZWQiKSxvdCgpLENyKDMsImhyIiksbnQoNCwiZGl2IikoNSwiYnV0dG9uIiw0MCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoMik7cmV0dXJuIGEoeS5kb3dubG9hZEZpbGUoeS5qb2JMb2csImV4ZWN1dGUtc2NyaXB0LWxv''@;'; put 'put ''ZyIsInR4dCIpKX0pLFl0KDYsIiBEb3dubG9hZCBsb2cgIiksb3QoKSgpLFAwKCl9fWZ1bmN0aW9uIHhWZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsNDQpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgzKTt1dCgxKSxKaSgiICIsaC5tYWtlRGF0YVJlc3BvbnNlLCIgIil9fWZ1bmN0''@;'; put 'put ''aW9uIFRWZShkLGcpezEmZCYmKEIwKDApLG50KDEsInNwYW4iLDI1KSxZdCgyLCIgVmFsaWRhdGluZyBkZXBsb3kuLi4gIiksb3QoKSxudCgzLCJzcGFuIiksWXQoNCwiIFZhbGlkYXRpbmcgZGVwbG95Li4uICIpLG90KCksUDAoKSl9ZnVuY3Rpb24gSVZlKGQsZyl7MSZkJiYoQjAoMCksQ3Io''@;'; put 'put ''MSwiY2xyLWljb24iLDQ2KSxudCgyLCJzcGFuIiksWXQoMywiIFZhbGlkYXRpb24gZmFpbGVkICIpLG90KCksUDAoKSl9ZnVuY3Rpb24gRFZlKGQsZyl7MSZkJiYoQjAoMCksQ3IoMSwiY2xyLWljb24iLDQ3KSxudCgyLCJzcGFuIiksWXQoMywiIFZhbGlkYXRpb24gc3VjY2VlZGVkICIpLG90''@;'; put 'put ''KCksUDAoKSl9ZnVuY3Rpb24gTFZlKGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw0NSkscm4oMSxUVmUsNSwwLCJuZy1jb250YWluZXIiLDUpLHJuKDIsSVZlLDQsMCwibmctY29udGFpbmVyIiw1KSxybigzLERWZSw0LDAsIm5nLWNvbnRhaW5lciIsNSksb3QoKSksMiZkKXtjb25zdCBoPVF0''@;'; put 'put ''KDMpO3V0KDEpLFR0KCJuZ0lmIixoLmlzVmFsaWRhdGluZyksdXQoMSksVHQoIm5nSWYiLCFoLmlzVmFsaWRhdGluZyYmImVycm9yIj09PWgudmFsaWRhdGlvblN0YXRlKSx1dCgxKSxUdCgibmdJZiIsIWguaXNWYWxpZGF0aW5nJiYic3VjY2VzcyI9PT1oLnZhbGlkYXRpb25TdGF0ZSl9fWZ1''@;'; put 'put ''bmN0aW9uIE9WZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLG50KDEsInAiLDM5KSxZdCgyLCJDcmVhdGUgRGF0YWJhc2UgQ29tcGxldGVkIiksb3QoKSxDcigzLCJociIpLHJuKDQseFZlLDIsMSwiZGl2Iiw0MSksbnQoNSwiYnV0dG9uIiw0MiksR24oImNsaWNrIixmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiBpdChoKSxhKFF0KDIpLm5hdmlnYXRlVG9Ib21lKCkpfSksWXQoNiwiIExldCdzIGdldCBzdGFydGVkICIpLG90KCksbnQoNywiYnV0dG9uIiw0MiksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoMik7cmV0dXJuIGEoeS5kb3dubG9hZEZpbGUoeS5t''@;'; put 'put ''YWtlRGF0YVJlc3BvbnNlLCJjcmVhdGUtZGF0YWJhc2UtbG9nIiwidHh0IikpfSksWXQoOCwiIERvd25sb2FkIGxvZyAiKSxvdCgpLG50KDksImJ1dHRvbiIsNDIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS52YWxpZGF0ZURlcGxveSgpKX0pLFl0KDEwLCIg''@;'; put 'put ''VmFsaWRhdGUgIiksb3QoKSxybigxMSxMVmUsNCwzLCJkaXYiLDQzKSxQMCgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCg0KSxUdCgibmdJZiIsaC5tYWtlRGF0YVJlc3BvbnNlLmxlbmd0aD4wKSx1dCg3KSxUdCgibmdJZiIsIm5vbmUiIT09aC52YWxpZGF0aW9uU3RhdGV8fGguaXNWYWxp''@;'; put 'put ''ZGF0aW5nKX19Y29uc3QgSGhlPWZ1bmN0aW9uKCl7cmV0dXJue3N0YW5kYWxvbmU6ITB9fTtmdW5jdGlvbiBSVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtCMCgwKSxudCgxLCJmb3JtIikoMiwiZGl2IiwxNSkoMywibGFiZWwiLDE2KSxZdCg0LCJBZG1pbiBncm91cCIpLG90KCksbnQo''@;'; put 'put ''NSwiZGl2IiwxNykoNiwiZGl2IiwxOCkoNywic2VsZWN0IiwxOSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuc2VsZWN0ZWRBZG1pbkdyb3VwPXkpfSkscm4oOCxfVmUsMiwyLCJvcHRpb24iLDIwKSxvdCgpKCkoKSgpLG50KDksImRpdiIsMTUp''@;'; put 'put ''KDEwLCJkaXYiKSgxMSwibGFiZWwiLDE2KSxZdCgxMiwiQ29udGV4dCIpLG90KCksbnQoMTMsImRpdiIsMTcpKDE0LCJkaXYiLDE4KSgxNSwic2VsZWN0IiwyMSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuc2VsZWN0ZWRDb250ZXh0PXkpfSks''@;'; put 'put ''cm4oMTYsa1ZlLDQsNSwib3B0aW9uIiwyMCksb3QoKSgpKCksbnQoMTcsImJ1dHRvbiIsMjIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmV4ZWN1dGFibGVDb250ZXh0KCkpfSksQ3IoMTgsImNsci1pY29uIiwyMyksb3QoKSgpLG50KDE5LCJkaXYiLDI0KSgy''@;'; put 'put ''MCwic3BhbiIsMjUpLFl0KDIxLCIgTG9hZGluZyBjb250ZXh0cy4uLiAiKSxvdCgpLG50KDIyLCJzcGFuIiksWXQoMjMsIiBMb2FkaW5nIGNvbnRleHRzLi4uICIpLG90KCkoKSxudCgyNCwibGFiZWwiLDI2KSxZdCgyNSwiREMgTG9jIiksb3QoKSxudCgyNiwiZGl2Iiw5KSgyNywiZGl2Iiwx''@;'; put 'put ''MCkoMjgsImlucHV0IiwyNyksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuZGNQYXRoPXkpfSkoImZvY3Vzb3V0IixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuc2F2ZURjUGF0aCgpKX0pLG90KCkoKSgpLG50KDI5LCJwIiwyOCksWXQo''@;'; put 'put ''MzAsIiBTZWxlY3QgSlNPTiBmaWxlIHRvIHVwbG9hZCAoanNvbiBidWlsZCBmaWxlIHByZWxvYWRlZCk6ICIpLG90KCksbnQoMzEsImRpdiIsMjkpKDMyLCJpbnB1dCIsMzApLEduKCJjbGljayIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS5jbGVhclVwbG9hZElucHV0KHkpKX0p''@;'; put 'put ''KCJjaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkub25Kc29uRmlsZUNoYW5nZSh5KSl9KSxvdCgpKCksbnQoMzMsImRpdiIsMzEpKDM0LCJidXR0b24iLDMyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5leGVjdXRlSnNvbigpKX0pLFl0''@;'; put 'put ''KDM1LCIgU1VCTUlUIEpTT04gIiksb3QoKSxybigzNixTVmUsMiwwLCJzcGFuIiw1KSxvdCgpLG50KDM3LCJwIiwyOCksWXQoMzgsIlNlbGVjdCBTQVMgZmlsZSB0byB1cGxvYWQ6Iiksb3QoKSxudCgzOSwiZGl2IiwyOSkoNDAsImlucHV0IiwzMCksR24oImNsaWNrIixmdW5jdGlvbih5KXty''@;'; put 'put ''ZXR1cm4gaXQoaCksYShRdCgpLmNsZWFyVXBsb2FkSW5wdXQoeSkpfSkoImNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgpO3JldHVybiBDLm9uU2FzRmlsZUNoYW5nZSh5KSxhKEMuZG93bmxvYWRGaWxlQnRuPSEwKX0pLG90KCkscm4oNDEsTVZlLDIsMCwiYnV0dG9uIiwz''@;'; put 'put ''Myksb3QoKSxudCg0MiwiZGl2IiwzMSkoNDMsImJ1dHRvbiIsMzQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmV4ZWN1dGVTQVMoKSl9KSxZdCg0NCwiIFNVQk1JVCAiKSxvdCgpKCkoKSxybig0NSxFVmUsNywwLCJuZy1jb250YWluZXIiLDUpLG50KDQ2LCJi''@;'; put 'put ''dXR0b24iLDM1KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5jcmVhdGVEYXRhYmFzZSgpKX0pLFl0KDQ3LCIgQ3JlYXRlIERhdGFiYXNlICIpLG90KCkscm4oNDgsT1ZlLDEyLDIsIm5nLWNvbnRhaW5lciIsNSksb3QoKSxQMCgpfWlmKDImZCl7Y29uc3QgaD1R''@;'; put 'put ''dCgpO3V0KDcpLFR0KCJuZ01vZGVsIixoLnNlbGVjdGVkQWRtaW5Hcm91cCkoIm5nTW9kZWxPcHRpb25zIixjcygxOSxIaGUpKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5hZG1pbkdyb3VwcyksdXQoMiksRmkoImhpZGRlbiIsaC5jb250ZXh0c0xvYWRpbmcpLHV0KDUpLFR0KCJuZ01vZGVsIixo''@;'; put 'put ''LnNlbGVjdGVkQ29udGV4dCkoIm5nTW9kZWxPcHRpb25zIixjcygyMCxIaGUpKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5hbGxDb250ZXh0cyksdXQoMyksRmkoImhpZGRlbiIsIWguY29udGV4dHNMb2FkaW5nKSx1dCg5KSxUdCgibmdNb2RlbCIsaC5kY1BhdGgpKCJuZ01vZGVsT3B0aW9ucyIs''@;'; put 'put ''Y3MoMjEsSGhlKSksdXQoNiksVHQoImNsckxvYWRpbmciLGguaXNTdWJtaXR0aW5nSnNvbiksdXQoMiksVHQoIm5nSWYiLGguaXNKc29uU3VibWl0dGVkKSx1dCg1KSxUdCgibmdJZiIsaC5kb3dubG9hZEZpbGVCdG4pLHV0KDIpLFR0KCJjbHJMb2FkaW5nIixoLmV4ZWN1dGluZ1NjcmlwdCks''@;'; put 'put ''dXQoMiksVHQoIm5nSWYiLGguam9iTG9nLmxlbmd0aD4wKSx1dCgxKSxUdCgiY2xyTG9hZGluZyIsaC5jcmVhdGVEYXRhYmFzZUxvYWRpbmcpLHV0KDIpLFR0KCJuZ0lmIixoLm1ha2VEYXRhUmVzcG9uc2UubGVuZ3RoPjApfX1sZXQgQlZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2''@;'; put 'put ''LHksQyl7dGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5ldmVudFNlcnZpY2U9dix0aGlzLmxvZ2dlclNlcnZpY2U9eSx0aGlzLmRlcGxveVNlcnZpY2U9Qyx0aGlzLnNhc0pzQ29uZmlnPW5ldyBVMy5TQVNqc0NvbmZpZyx0aGlzLm9uTmF2aWdhdGVUb0hvbWU9bmV3IGFyLHRoaXMubmVlZHNMb2dp''@;'; put 'put ''bj0hMSx0aGlzLmFkbWluR3JvdXBzPVtdLHRoaXMuYWxsQ29udGV4dHM9W10sdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5zZWxlY3RlZENvbnRleHQ9IiIsdGhpcy5qb2JMb2c9IiIsdGhpcy5tYWtlRGF0YVJlc3BvbnNlPSIi''@;'; put 'put ''LHRoaXMubGluZXNPZkNvZGU9W10sdGhpcy5maWxlTmFtZT0iIix0aGlzLnByZWxvYWRlZEZpbGU9ITAsdGhpcy5leGVjdXRlU0FTRW5hYmxlZD0hMSx0aGlzLmNvbnRleHRzTG9hZGluZz0hMSx0aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMSx0aGlzLmV4ZWN1dGluZ1NjcmlwdD0hMSx0''@;'; put 'put ''aGlzLmRvd25sb2FkRmlsZUJ0bj0hMSx0aGlzLmlzVmFsaWRhdGluZz0hMSx0aGlzLmpzb25GaWxlPW51bGwsdGhpcy5pc1N1Ym1pdHRpbmdKc29uPSExLHRoaXMuaXNKc29uU3VibWl0dGVkPSExLHRoaXMudmFsaWRhdGlvblN0YXRlPSJub25lIn1uZ09uSW5pdCgpe31leGVjdXRhYmxlQ29u''@;'; put 'put ''dGV4dCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7fSl9Y2xlYXJVcGxvYWRJbnB1dChoKXt0aGlzLmRlcGxveVNlcnZpY2UuY2xlYXJVcGxvYWRJbnB1dChoKX1vblNhc0ZpbGVDaGFuZ2UoaCl7dGhpcy5wcmVsb2FkZWRGaWxlPSExO2xldCB2PWgudGFyZ2V0''@;'; put 'put ''LmZpbGVzWzBdO3RoaXMuZmlsZU5hbWU9di5uYW1lO2xldCB5PW5ldyBGaWxlUmVhZGVyO3kub25sb2FkPSgpPT57eS5yZXN1bHQmJih0aGlzLmxpbmVzT2ZDb2RlPXkucmVzdWx0LnNwbGl0KCJcbiIpLHRoaXMubGluZXNPZkNvZGU9dGhpcy5saW5lc09mQ29kZS5maWx0ZXIoQz0+IiIhPT1D''@;'; put 'put ''JiZudWxsIT09QyksdGhpcy5leGVjdXRlU0FTRW5hYmxlZD0hMCx0aGlzLmFkZFByZWNvZGVMaW5lcygpKX0seS5yZWFkQXNUZXh0KHYpfW9uSnNvbkZpbGVDaGFuZ2UoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtsZXQgdj1oLnRhcmdldC5maWxlc1swXTt0''@;'; put 'put ''aGlzLmpzb25GaWxlPXlpZWxkIHRoaXMuZGVwbG95U2VydmljZS5yZWFkRmlsZSh2KX0pfWFkZFByZWNvZGVMaW5lcygpe3RoaXMubGluZXNPZkNvZGUudW5zaGlmdChgJWxldCBjb250ZXh0PSR7dGhpcy5zZWxlY3RlZENvbnRleHR9O2AsYCVsZXQgYXBwTG9jPSR7dGhpcy5hcHBMb2N9O2As''@;'; put 'put ''YCVsZXQgYWRtaW49JHt0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cH07YCxgJWxldCBkY3BhdGg9JHt0aGlzLmRjUGF0aH07YCl9ZG93bmxvYWRTYXNQcmVjb2RlRmlsZSgpe2xldCBoPXRoaXMubGluZXNPZkNvZGUuam9pbigiXG4iKSx2PXRoaXMuZmlsZU5hbWUuc3BsaXQoIi4iKVswXTt0aGlz''@;'; put 'put ''LmRvd25sb2FkRmlsZShoLHYsInNhcyIpfWRvd25sb2FkRmlsZShoLHYseT0idHh0Iil7dGhpcy5kZXBsb3lTZXJ2aWNlLmRvd25sb2FkRmlsZShoLHYseSl9c2F2ZURjUGF0aCgpe2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJkZXBsb3lfZGNfbG9jIix0aGlzLmRjUGF0aCl9ZXhlY3V0ZUpzb24o''@;'; put 'put ''KXt2YXIgaDtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuaXNTdWJtaXR0aW5nSnNvbj0hMDt0cnl7eWllbGQgdGhpcy5zYXNKcy5kZXBsb3lTZXJ2aWNlUGFjayh0aGlzLmpzb25GaWxlLChudWxsPT09KGg9dGhpcy5kY0FkYXB0ZXJTZXR0aW5ncyl8fHZv''@;'; put 'put ''aWQgMD09PWg/dm9pZCAwOmguYXBwTG9jKXx8IiIsdm9pZCAwLHZvaWQgMCwhMCksdGhpcy5pc0pzb25TdWJtaXR0ZWQ9ITB9Y2F0Y2godil7bGV0IHk9IiI7cmV0dXJuIHk9InN0cmluZyIhPXR5cGVvZiB2Lm1lc3NhZ2U/SlNPTi5zdHJpbmdpZnkodikucmVwbGFjZSgvXFwvZ20sIiIpOnYu''@;'; put 'put ''bWVzc2FnZSx2b2lkIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dJbmZvTW9kYWwoIkRlcGxveSBlcnJvciIsYEV4Y2VwdGlvbjogXG4gJHsiIiE9PXk/eTp2fWApfXRoaXMuaXNTdWJtaXR0aW5nSnNvbj0hMX0pfWV4ZWN1dGVTQVMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0''@;'; put 'put ''aW9uKigpe3RoaXMuZXhlY3V0aW5nU2NyaXB0PSEwLHRoaXMuam9iTG9nPSIiLHRoaXMubWFrZURhdGFSZXNwb25zZT0iIjt0cnl7bGV0IGg9eWllbGQgdGhpcy5zYXNKcy5leGVjdXRlU2NyaXB0U0FTVml5YSh0aGlzLmZpbGVOYW1lLHRoaXMubGluZXNPZkNvZGUsdGhpcy5zZWxlY3RlZENv''@;'; put 'put ''bnRleHQpO3RoaXMubG9nZ2VyU2VydmljZS5sb2coaCksInN0cmluZyI9PXR5cGVvZiBoLmxvZyYmKGgubG9nPUpTT04ucGFyc2UoaC5sb2cpKSwiZXJyb3IiPT09aC5qb2JTdGF0dXM/YWxlcnQoIkVycm9yISIpOnRoaXMuam9iTG9nPWgubG9nLml0ZW1zP2gubG9nLml0ZW1zLm1hcCh2PT52''@;'; put 'put ''LmxpbmUpLmpvaW4oIlxuIik6SlNPTi5zdHJpbmdpZnkoaC5sb2cpLHRoaXMuZXhlY3V0aW5nU2NyaXB0PSExfWNhdGNoKGgpe3RoaXMuZXhlY3V0aW5nU2NyaXB0PSExfX0pfWNyZWF0ZURhdGFiYXNlKGg9ITApe3ZhciB2O2lmKGgpe2xldCBJPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0Nv''@;'; put 'put ''bmZpZygpLnNlcnZlclVybCsiL1NBU0pvYkV4ZWN1dGlvbi8/X3Byb2dyYW09IisobnVsbD09PSh2PXRoaXMuZGNBZGFwdGVyU2V0dGluZ3MpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmFwcExvYyl8fCIvYWRtaW4vbWFrZWRhdGEmQURNSU49Iit0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cCsiJkRD''@;'; put 'put ''UEFUSD0iK3RoaXMuZGNQYXRoKyImX2RlYnVnPTEzMSI7d2luZG93Lm9wZW4oSSwiX2JsYW5rIil9ZWxzZSB0aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMCx0aGlzLnNhc0pzLnJlcXVlc3QoInNlcnZpY2VzL2FkbWluL21ha2VkYXRhIix7ZnJvbWpzOlt7QURNSU46dGhpcy5zZWxlY3Rl''@;'; put 'put ''ZEFkbWluR3JvdXAsRENQQVRIOnRoaXMuZGNQYXRofV19LHt1c2VDb21wdXRlQXBpOiExLGNvbnRleHROYW1lOnRoaXMuc2FzSnNDb25maWcuY29udGV4dE5hbWUsZGVidWc6ITB9LCgpPT57dGhpcy5zYXNTZXJ2aWNlLnNob3VsZExvZ2luLm5leHQoITApfSkudGhlbihJPT57dHJ5e3RoaXMu''@;'; put 'put ''bWFrZURhdGFSZXNwb25zZT1KU09OLnN0cmluZ2lmeShJKX1jYXRjaChaKXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9SX10aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMX0pLmNhdGNoKEk9Pnt0aGlzLmNyZWF0ZURhdGFiYXNlTG9hZGluZz0hMTt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNl''@;'; put 'put ''PUpTT04uc3RyaW5naWZ5KEkpfWNhdGNoKFope3RoaXMubWFrZURhdGFSZXNwb25zZT1JfX0pfW5hdmlnYXRlVG9Ib21lKCl7dGhpcy5vbk5hdmlnYXRlVG9Ib21lLmVtaXQoKX12YWxpZGF0ZURlcGxveSgpe3RoaXMuaXNWYWxpZGF0aW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJw''@;'; put 'put ''dWJsaWMvc3RhcnR1cHNlcnZpY2UiLG51bGwpLnRoZW4oaD0+e3RoaXMubG9nZ2VyU2VydmljZS5sb2coaCksdGhpcy52YWxpZGF0aW9uU3RhdGU9aC5zYXNsaWJzPyJzdWNjZXNzIjoiZXJyb3IiLHRoaXMuaXNWYWxpZGF0aW5nPSExfSkuY2F0Y2goaD0+e3RoaXMuaXNWYWxpZGF0aW5nPSEx''@;'; put 'put ''LHRoaXMudmFsaWRhdGlvblN0YXRlPSJlcnJvciJ9KX1kZWxldGVLZXlzKCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImRlcGxveV9kY19sb2MiKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZzIpLEt0KG11KSxLdChzYyksS3QoR3dlKSl9''@;'; put 'put ''LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1tYW51YWwtZGVwbG95Il1dLGlucHV0czp7c2FzSnM6InNhc0pzIixzYXNKc0NvbmZpZzoic2FzSnNDb25maWciLGRjQWRhcHRlclNldHRpbmdzOiJkY0FkYXB0ZXJTZXR0aW5ncyJ9LG91dHB1dHM6e29uTmF2aWdhdGVU''@;'; put 'put ''b0hvbWU6Im9uTmF2aWdhdGVUb0hvbWUifSxkZWNsczo5LHZhcnM6Myxjb25zdHM6W1sxLCJjYXJkLWhlYWRlciIsInBvc2l0aW9uLXJlbGF0aXZlIl0sWzEsImQtaW5saW5lLWJsb2NrIiwibWwtMTAiLCJtYi0xMCIsIm10LTAiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJjbGVhci1tZW1v''@;'; put 'put ''cnktYnV0dG9uIiwicG9zaXRpb24tYWJzb2x1dGUiLDMsImNsaWNrIl0sWzEsImNhcmQtYmxvY2siXSxbImlkIiwibG9naW5Gb3JtIiwiY2xhc3MiLCJkLW5vbmUiLDQsIm5nSWYiXSxbNCwibmdJZiJdLFsiaWQiLCJsb2dpbkZvcm0iLDEsImQtbm9uZSJdLFsxLCJtYi0xMCJdLFsiZm9yIiwi''@;'; put 'put ''dXNlcm5hbWUiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWzEsIm1iLTEwIiwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWyJ0eXBlIiwidGV4dCIsImlkIiwidXNlcm5hbWUiLDEsImNsci1pbnB1dCJdLFsiZm9yIiwicGFzc3dvcmQiLDEsImNsci1j''@;'; put 'put ''b250cm9sLWxhYmVsIl0sWyJ0eXBlIiwicGFzc3dvcmQiLCJpZCIsInBhc3N3b3JkIiwxLCJjbHItaW5wdXQiXSxbImlkIiwibG9naW5CdG4iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwiZC1ub25lIl0sWzEsImNsci1mb3JtLWNvbnRyb2wiXSxbImZvciIsInNlbGVjdC1mdWxsIiwxLCJjbHIt''@;'; put 'put ''Y29udHJvbC1sYWJlbCJdLFsxLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbMSwiY2xyLXNlbGVjdC13cmFwcGVyIl0sWyJuYW1lIiwic2VsZWN0ZWRBZG1pbkdyb3VwIiwiaWQiLCJhZG1pbkdyb3Vwc1NlbGVjdCIsMSwiY2xyLXNlbGVjdCIsMywibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25z''@;'; put 'put ''IiwibmdNb2RlbENoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJuYW1lIiwic2VsZWN0ZWRDb250ZXh0IiwxLCJjbHItc2VsZWN0IiwzLCJuZ01vZGVsIiwibmdNb2RlbE9wdGlvbnMiLCJuZ01vZGVsQ2hhbmdlIl0sWyJ0eXBlIiwiYnV0dG9uIiwiaWQiLCJjb250''@;'; put 'put ''ZXh0cy1idG4iLDEsImJ0biIsImJ0bi1pY29uIiwzLCJjbGljayJdLFsic2hhcGUiLCJwbGF5Il0sWzEsImQtZmxleCJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1pbmxpbmUiLCJtci0xMCJdLFsiZm9yIiwiZGNsb2MiLDEsIm10LTIwIiwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbIm5hbWUiLCJk''@;'; put 'put ''Y1BhdGgiLCJ0eXBlIiwidGV4dCIsImlkIiwiZGNsb2MiLDEsImNsci1pbnB1dCIsMywibmdNb2RlbCIsIm5nTW9kZWxPcHRpb25zIiwibmdNb2RlbENoYW5nZSIsImZvY3Vzb3V0Il0sWzEsIm10LTEwIl0sWzEsImQtZmxleCIsImZsZXgtY29sdW1uIl0sWyJ0eXBlIiwiZmlsZSIsMywiY2xp''@;'; put 'put ''Y2siLCJjaGFuZ2UiXSxbMSwibXQtMjAiLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbImlkIiwiIiwxLCJtdC0wIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4taWNvbiBtaW4tdy0wIHctNDAiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJp''@;'; put 'put ''ZCIsImRlcGxveSIsMSwibXQtMCIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMTAiLDMsImNsckxvYWRpbmciLCJjbGljayJdLFszLCJ2YWx1ZSJdLFsxLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsIm1pbi13LTAiLCJ3LTQwIiwzLCJjbGlj''@;'; put 'put ''ayJdLFsic2hhcGUiLCJkb3dubG9hZCJdLFsxLCJtYi0wIiwibXQtMTAiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtdC0wIiwibXItMjAiLDMsImNsaWNrIl0sWyJjbGFzcyIsImxvZy13cmFwcGVyIiw0LCJuZ0lmIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMTUiLDMsImNsaWNr''@;'; put 'put ''Il0sWyJjbGFzcyIsInZhbGlkYXRpb24tYmFyIiw0LCJuZ0lmIl0sWzEsImxvZy13cmFwcGVyIl0sWzEsInZhbGlkYXRpb24tYmFyIl0sWyJzaGFwZSIsImV4Y2xhbWF0aW9uLWNpcmNsZSIsMSwiaXMtZXJyb3IiXSxbInNoYXBlIiwiY2hlY2stY2lyY2xlIiwxLCJpcy1zdWNjZXNzIl1dLHRl''@;'; put 'put ''bXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiZGl2IiwwKSxZdCgxLCIgQ29uZmlndXJhdG9yICIpLG50KDIsInAiLDEpLFl0KDMpLG90KCksbnQoNCwiYnV0dG9uIiwyKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZGVsZXRlS2V5cygpfSksWXQoNSwiIENsZWFyIG1l''@;'; put 'put ''bW9yeSAiKSxvdCgpKCksbnQoNiwiZGl2IiwzKSxybig3LGJWZSwxNSwwLCJkaXYiLDQpLHJuKDgsUlZlLDQ5LDIyLCJuZy1jb250YWluZXIiLDUpLG90KCkpLDImaCYmKHV0KDMpLEppKCJBcHAgTG9jYXRpb246ICIsdi5hcHBMb2MsIiIpLHV0KDQpLFR0KCJuZ0lmIix2Lm5lZWRzTG9naW4p''@;'; put 'put ''LHV0KDEpLFR0KCJuZ0lmIiwhdi5uZWVkc0xvZ2luKSl9LGRlcGVuZGVuY2llczpbeHMsTm8scGcsJDMscTMsbTEsT2YsVHMsZGcsSXMsTGMsd2wsZ28sdyxhdCxJV10sc3R5bGVzOlsiLmNsZWFyLW1lbW9yeS1idXR0b25bX25nY29udGVudC0lQ09NUCVde3JpZ2h0OjEwcHg7dG9wOjJweH0i''@;'; put 'put ''XX0pLGR9KSgpO2Z1bmN0aW9uIFBWZShkLGcpezEmZCYmKEIwKDApLG50KDEsInNwYW4iLDIxKSxZdCgyLCIgTG9hZGluZy4uLiAiKSxvdCgpLG50KDMsInAiKSxZdCg0LCJEZXBsb3lpbmcuLi4iKSxvdCgpLFAwKCkpfWZ1bmN0aW9uIEZWZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDMy''@;'; put 'put ''KX1mdW5jdGlvbiBIVmUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwzMyl9ZnVuY3Rpb24gTlZlKGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMzIpfWZ1bmN0aW9uIFZWZShkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDMzKX1mdW5jdGlvbiBqVmUoZCxnKXtpZigxJmQmJihudCgwLCJk''@;'; put 'put ''aXYiLDI0KSxybigxLE5WZSwxLDAsImNsci1pY29uIiwyNSkscm4oMixWVmUsMSwwLCJjbHItaWNvbiIsMjYpLG50KDMsInAiKSxZdCg0LCJDcmVhdGUgZGF0YWJhc2UiKSxvdCgpKCkpLDImZCl7Y29uc3QgaD1RdCgzKTt1dCgxKSxUdCgibmdJZiIsaC5hdXRvRGVwbG95U3RhdHVzLnJ1bk1h''@;'; put 'put ''a2VEYXRhKSx1dCgxKSxUdCgibmdJZiIsITE9PT1oLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGEpfX1mdW5jdGlvbiBaVmUoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwzMyl9ZnVuY3Rpb24gelZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7QjAoMCksbnQoMSwicCIsMjIpLFl0''@;'; put 'put ''KDIsIkRvbmUiKSxvdCgpLENyKDMsImhyIiwyMyksbnQoNCwiZGl2IiwyNCkscm4oNSxGVmUsMSwwLCJjbHItaWNvbiIsMjUpLHJuKDYsSFZlLDEsMCwiY2xyLWljb24iLDI2KSxudCg3LCJwIiksWXQoOCwiRGVwbG95IFNBUyBKb2JzIiksb3QoKSgpLHJuKDksalZlLDUsMiwiZGl2IiwyNyks''@;'; put 'put ''Q3IoMTAsImhyIiwyMyksbnQoMTEsImRpdiIsMjgpKDEyLCJidXR0b24iLDI5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMikubmF2aWdhdGVUb0hvbWUoKSl9KSxybigxMyxaVmUsMSwwLCJjbHItaWNvbiIsMjYpLFl0KDE0LCIgTEFVTkNIIC8gQ09ORklHVVJF''@;'; put 'put ''ICIpLG90KCksbnQoMTUsImJ1dHRvbiIsMzApLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpO3JldHVybiBhKHkuZG93bmxvYWRGaWxlKHkubWFrZURhdGFSZXNwb25zZSwiY3JlYXRlLWRhdGFiYXNlLWxvZyIsInR4dCIpKX0pLFl0KDE2LCIgRG93bmxvYWQgbG9n''@;'; put 'put ''ICIpLG90KCkoKSxDcigxNywiaHIiLDIzKSxudCgxOCwiZGl2IiwyOCkoMTksImJ1dHRvbiIsMzEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpO3JldHVybiB5LmF1dG9kZXBsb3lpbmc9ITEsYSh5LmF1dG9kZXBsb3lEb25lPSExKX0pLFl0KDIwLCIgQ2xvc2Ug''@;'; put 'put ''Iiksb3QoKSxudCgyMSwiYnV0dG9uIiwzMSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLm9wZW5TYXNSZXF1ZXN0c01vZGFsKCkpfSksWXQoMjIsIiBTQVMgUmVxdWVzdHMgIiksb3QoKSgpLFAwKCl9aWYoMiZkKXtjb25zdCBoPVF0KDIpO3V0KDUpLFR0KCJu''@;'; put 'put ''Z0lmIixoLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2spLHV0KDEpLFR0KCJuZ0lmIiwhaC5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrKSx1dCgzKSxUdCgibmdJZiIsbnVsbCE9PWguYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YSksdXQoNCksVHQoIm5n''@;'; put 'put ''SWYiLCExPT09aC5hdXRvRGVwbG95U3RhdHVzLmRlcGxveVNlcnZpY2VQYWNrfHwhMT09PWguYXV0b0RlcGxveVN0YXR1cy5ydW5NYWtlRGF0YSl9fWZ1bmN0aW9uIEdWZShkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMTgpKDEsImRpdiIsMTkpLHJuKDIsUFZlLDUsMCwibmctY29udGFpbmVy''@;'; put 'put ''IiwyMCkscm4oMyx6VmUsMjMsNCwibmctY29udGFpbmVyIiwyMCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgyKSxUdCgibmdJZiIsIWguYXV0b2RlcGxveURvbmUpLHV0KDEpLFR0KCJuZ0lmIixoLmF1dG9kZXBsb3lEb25lKX19bGV0IFdWZT0oKCk9PntjbGFzcyBke2NvbnN0cnVj''@;'; put 'put ''dG9yKGgsdix5LEMpe3RoaXMuZXZlbnRTZXJ2aWNlPWgsdGhpcy5kZXBsb3lTZXJ2aWNlPXYsdGhpcy5zYXNTZXJ2aWNlPXksdGhpcy5sb2dnZXJTZXJ2aWNlPUMsdGhpcy5zYXNKc0NvbmZpZz1uZXcgVTMuU0FTanNDb25maWcsdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5z''@;'; put 'put ''ZWxlY3RlZEFkbWluR3JvdXA9IiIsdGhpcy5vbk5hdmlnYXRlVG9Ib21lPW5ldyBhcix0aGlzLm1ha2VEYXRhUmVzcG9uc2U9IiIsdGhpcy5qc29uRmlsZT1udWxsLHRoaXMuYXV0b2RlcGxveWluZz0hMSx0aGlzLmF1dG9kZXBsb3lEb25lPSExLHRoaXMucmVjcmVhdGVEYXRhYmFzZU1vZGFs''@;'; put 'put ''PSExLHRoaXMuaXNTdWJtaXR0aW5nSnNvbj0hMSx0aGlzLmlzSnNvblN1Ym1pdHRlZD0hMSx0aGlzLnJlY3JlYXRlRGF0YWJhc2U9ITEsdGhpcy5jcmVhdGVEYXRhYmFzZUxvYWRpbmc9ITEsdGhpcy5hdXRvRGVwbG95U3RhdHVzPXtkZXBsb3lTZXJ2aWNlUGFjazpudWxsLHJ1bk1ha2VEYXRh''@;'; put 'put ''Om51bGx9fW5nT25Jbml0KCl7fWV4ZWN1dGVKc29uKCl7dmFyIGg7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLmF1dG9kZXBsb3lpbmc9ITAsdGhpcy5pc1N1Ym1pdHRpbmdKc29uPSEwO3RyeXt5aWVsZCB0aGlzLnNhc0pzLmRlcGxveVNlcnZpY2VQYWNr''@;'; put 'put ''KHRoaXMuanNvbkZpbGUsbnVsbD09PShoPXRoaXMuZGNBZGFwdGVyU2V0dGluZ3MpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLmFwcExvYyx2b2lkIDAsdm9pZCAwLCEwKSx0aGlzLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2s9ITAsdGhpcy5pc0pzb25TdWJtaXR0ZWQ9ITB9Y2F0''@;'; put 'put ''Y2godil7bGV0IHk9IiI7cmV0dXJuIHk9InN0cmluZyIhPXR5cGVvZiB2Lm1lc3NhZ2U/SlNPTi5zdHJpbmdpZnkodikucmVwbGFjZSgvXFwvZ20sIiIpOnYubWVzc2FnZSx0aGlzLmF1dG9EZXBsb3lTdGF0dXMuZGVwbG95U2VydmljZVBhY2s9ITEsdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0lu''@;'; put 'put ''Zm9Nb2RhbCgiRGVwbG95IGVycm9yIixgRXhjZXB0aW9uOiBcbiAkeyIiIT09eT95OnZ9YCksdGhpcy5hdXRvZGVwbG95aW5nPSExLHZvaWQodGhpcy5hdXRvZGVwbG95RG9uZT0hMSl9dGhpcy5pc1N1Ym1pdHRpbmdKc29uPSExLHRoaXMucmVjcmVhdGVEYXRhYmFzZT90aGlzLmNyZWF0ZURh''@;'; put 'put ''dGFiYXNlKCk6dGhpcy5hdXRvZGVwbG95RG9uZT0hMH0pfWNyZWF0ZURhdGFiYXNlKCl7dGhpcy5zYXNKcy5yZXF1ZXN0KCJzZXJ2aWNlcy9hZG1pbi9tYWtlZGF0YSIse2Zyb21qczpbe0FETUlOOnRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwLERDUEFUSDp0aGlzLmRjUGF0aH1dfSx7dXNlQ29t''@;'; put 'put ''cHV0ZUFwaTohMSxjb250ZXh0TmFtZTp0aGlzLnNhc0pzQ29uZmlnLmNvbnRleHROYW1lLGRlYnVnOiEwfSwoKT0+e3RoaXMuc2FzU2VydmljZS5zaG91bGRMb2dpbi5uZXh0KCEwKX0pLnRoZW4oeT0+e3RoaXMuYXV0b2RlcGxveURvbmU9ITA7dHJ5e3RoaXMubWFrZURhdGFSZXNwb25zZT1K''@;'; put 'put ''U09OLnN0cmluZ2lmeSh5KX1jYXRjaChDKXt0aGlzLm1ha2VEYXRhUmVzcG9uc2U9eX10aGlzLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGE9ISEoeS5yZXN1bHQmJnkucmVzdWx0Lmxlbmd0aD4wKX0pLmNhdGNoKHk9Pnt0aGlzLmF1dG9EZXBsb3lTdGF0dXMucnVuTWFrZURhdGE9ITEs''@;'; put 'put ''dGhpcy5hdXRvZGVwbG95RG9uZT0hMDt0cnl7dGhpcy5tYWtlRGF0YVJlc3BvbnNlPUpTT04uc3RyaW5naWZ5KHkpfWNhdGNoKEMpe3RoaXMubWFrZURhdGFSZXNwb25zZT15fX0pfWRvd25sb2FkRmlsZShoLHYseT0idHh0Iil7dGhpcy5kZXBsb3lTZXJ2aWNlLmRvd25sb2FkRmlsZShoLHYs''@;'; put 'put ''eSl9b25Kc29uRmlsZUNoYW5nZShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCB2PWgudGFyZ2V0LmZpbGVzWzBdO3RoaXMuanNvbkZpbGU9eWllbGQgdGhpcy5kZXBsb3lTZXJ2aWNlLnJlYWRGaWxlKHYpfSl9cmVjcmVhdGVEYXRhYmFzZUNsaWNrZWQo''@;'; put 'put ''aCl7ITA9PT1oLnRhcmdldC5jaGVja2VkJiYodGhpcy5yZWNyZWF0ZURhdGFiYXNlTW9kYWw9ITApfWNsZWFyVXBsb2FkSW5wdXQoaCl7dGhpcy5kZXBsb3lTZXJ2aWNlLmNsZWFyVXBsb2FkSW5wdXQoaCl9b3BlblNhc1JlcXVlc3RzTW9kYWwoKXt0aGlzLmV2ZW50U2VydmljZS5vcGVuUmVx''@;'; put 'put ''dWVzdHNNb2RhbCgpfW5hdmlnYXRlVG9Ib21lKCl7dGhpcy5vbk5hdmlnYXRlVG9Ib21lLmVtaXQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QobXUpLEt0KEd3ZSksS3QoZzIpLEt0KHNjKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2Vs''@;'; put 'put ''ZWN0b3JzOltbImFwcC1hdXRvbWF0aWMtZGVwbG95Il1dLGlucHV0czp7c2FzSnM6InNhc0pzIixzYXNKc0NvbmZpZzoic2FzSnNDb25maWciLGRjQWRhcHRlclNldHRpbmdzOiJkY0FkYXB0ZXJTZXR0aW5ncyIsYXBwTG9jOiJhcHBMb2MiLGRjUGF0aDoiZGNQYXRoIixzZWxlY3RlZEFkbWlu''@;'; put 'put ''R3JvdXA6InNlbGVjdGVkQWRtaW5Hcm91cCJ9LG91dHB1dHM6e29uTmF2aWdhdGVUb0hvbWU6Im9uTmF2aWdhdGVUb0hvbWUifSxkZWNsczo0Nix2YXJzOjEwLGNvbnN0czpbWyJjbGFzcyIsImF1dG8tZGVwbG95Iiw0LCJuZ0lmIl0sWzEsInRleHQtY2VudGVyIiwibXktMTUiXSxbImZvciIs''@;'; put 'put ''ImRjbG9jIiwxLCJtdC0yMCIsImNsci1jb250cm9sLWxhYmVsIl0sWzEsIm1iLTEwIiwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWzEsImNsci1pbnB1dC13cmFwcGVyIl0sWzEsIm10LTAiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsImlkIiwicmVj''@;'; put 'put ''cmVhdGVkYi1jaGVja2JveCIsImNoZWNrZWQiLCIiLDEsImNsci1jaGVja2JveCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJjbGljayJdLFsiZm9yIiwicmVjcmVhdGVkYi1jaGVja2JveCJdLFsxLCJidG4tYXV0b2RlcGxveSIsImJ0biIsImJ0bi1wcmltYXJ5IiwiZC1pbmxpbmUt''@;'; put 'put ''YmxvY2siLCJtci0xMCIsMywiZGlzYWJsZWQiLCJjbGljayJdLFsxLCJidG4tYXV0b2RlcGxveSIsImJ0biIsImJ0bi1wcmltYXJ5IiwiZC1pbmxpbmUtYmxvY2siLCJtci0xMCIsMywiY2xpY2siXSxbInR5cGUiLCJmaWxlIiwiaGlkZGVuIiwiIiwzLCJjbGljayIsImNoYW5nZSJdLFsidXBs''@;'; put 'put ''b2FkSnNvbkF1dG8iLCIiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSIsImNsck1vZGFsT3BlbkNoYW5nZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwi''@;'; put 'put ''YnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWzEsImF1dG8tZGVwbG95Il0sWzEsInNwaW5uZXItYm94Il0sWzQsIm5nSWYiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItbWQiXSxbMSwibS0wIiwiYWxpZ24tc2VsZi1zdGFydCJdLFsxLCJ3LTEwMCJdLFsxLCJkZXBsb3ktc3RhdHVzLXJvdyJdLFsi''@;'; put 'put ''Y2xhc3MiLCJkZXBsb3ktc3VjY2VzcyIsInNoYXBlIiwic3VjY2Vzcy1zdGFuZGFyZCIsNCwibmdJZiJdLFsiY2xhc3MiLCJkZXBsb3ktZXJyb3IiLCJzaGFwZSIsInRpbWVzLWNpcmNsZSIsNCwibmdJZiJdLFsiY2xhc3MiLCJkZXBsb3ktc3RhdHVzLXJvdyIsNCwibmdJZiJdLFsxLCJidXR0''@;'; put 'put ''b25zIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXQtMTUiLCJtci0wIiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tcHJpbWFyeS1vdXRsaW5lIiwibXQtMTUiLCJtci0wIiwzLCJjbGljayJdLFsxLCJidG4iLCJidG4tcHJpbWFyeS1vdXRsaW5lIiwibXQtMTUiLCJtci0wIiwiYWxpZ24t''@;'; put 'put ''c2VsZi1lbmQiLDMsImNsaWNrIl0sWyJzaGFwZSIsInN1Y2Nlc3Mtc3RhbmRhcmQiLDEsImRlcGxveS1zdWNjZXNzIl0sWyJzaGFwZSIsInRpbWVzLWNpcmNsZSIsMSwiZGVwbG95LWVycm9yIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7aWYoMSZoKXtjb25zdCB5PXdpKCk7cm4oMCxHVmUs''@;'; put 'put ''NCwyLCJkaXYiLDApLG50KDEsImg0IiwxKSxZdCgyLCJWaXlhIERlcGxveSIpLG90KCksQ3IoMywiaHIiKSxudCg0LCJsYWJlbCIsMiksWXQoNSwiQXBwIExvYyIpLG90KCksbnQoNiwiZGl2IiwzKSg3LCJkaXYiLDQpKDgsInAiLDUpLFl0KDkpLG90KCkoKSgpLG50KDEwLCJsYWJlbCIsMiks''@;'; put 'put ''WXQoMTEsIkRDIExvYyIpLG90KCksbnQoMTIsImRpdiIsMykoMTMsImRpdiIsNCkoMTQsInAiLDUpLFl0KDE1KSxvdCgpKCkoKSxudCgxNiwibGFiZWwiLDIpLFl0KDE3LCJTQVMgQWRtaW4gZ3JvdXAiKSxvdCgpLG50KDE4LCJkaXYiLDMpKDE5LCJkaXYiLDQpKDIwLCJwIiw1KSxZdCgyMSks''@;'; put 'put ''b3QoKSgpKCksbnQoMjIsImRpdiIsNikoMjMsImlucHV0Iiw3KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucmVjcmVhdGVEYXRhYmFzZT1JfSkoImNsaWNrIixmdW5jdGlvbihJKXtyZXR1cm4gdi5yZWNyZWF0ZURhdGFiYXNlQ2xpY2tlZChJKX0pLG90KCksbnQo''@;'; put 'put ''MjQsImxhYmVsIiw4KSxZdCgyNSwiUmVjcmVhdGUgZGF0YWJhc2UiKSxvdCgpKCksQ3IoMjYsImhyIiksbnQoMjcsImJ1dHRvbiIsOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmV4ZWN1dGVKc29uKCl9KSxZdCgyOCksb3QoKSxudCgyOSwiYnV0dG9uIiwxMCksR24oImNsaWNr''@;'; put 'put ''IixmdW5jdGlvbigpe3JldHVybiBpdCh5KSxhKHZhKDMyKS5jbGljaygpKX0pLFl0KDMwLCIgVXBsb2FkIGRpZmZlcmVudCBmaWxlIHRvIGRlcGxveVxuIiksb3QoKSxudCgzMSwiaW5wdXQiLDExLDEyKSxHbigiY2xpY2siLGZ1bmN0aW9uKEkpe3JldHVybiB2LmNsZWFyVXBsb2FkSW5wdXQo''@;'; put 'put ''SSl9KSgiY2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5vbkpzb25GaWxlQ2hhbmdlKEkpfSksb3QoKSxudCgzMywiY2xyLW1vZGFsIiwxMyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucmVjcmVhdGVEYXRhYmFzZU1vZGFsPUl9KSxudCgzNCwiaDMi''@;'; put 'put ''LDE0KSxZdCgzNSwiV2FybmluZyIpLG90KCksbnQoMzYsImRpdiIsMTUpLFl0KDM3LCIgVGhpcyBhY3Rpb24gd2lsbCByZWNyZWF0ZSB0aGUgZGF0YWJhc2UgKGlmIGl0IGV4aXN0cykuIEZvciBhbiBpbml0aWFsIGRlcGxveW1lbnQsIHRoaXMgaXMgZXhwZWN0ZWQuIElmIHRoaXMgaXMgYSBy''@;'; put 'put ''ZS1kZXBsb3ltZW50LCB5b3Ugd2lsbCBsb3NlIGFueSBleGlzdGluZyB0YWJsZXMgaW4gIiksbnQoMzgsInN0cm9uZyIpLFl0KDM5KSxvdCgpLFl0KDQwLCIuICIpLG90KCksbnQoNDEsImRpdiIsMTYpKDQyLCJidXR0b24iLDE3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVj''@;'; put 'put ''cmVhdGVEYXRhYmFzZU1vZGFsPSExLHYucmVjcmVhdGVEYXRhYmFzZT0hMX0pLFl0KDQzLCIgQ2FuY2VsICIpLG90KCksbnQoNDQsImJ1dHRvbiIsMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5yZWNyZWF0ZURhdGFiYXNlTW9kYWw9ITEsdi5yZWNyZWF0ZURhdGFiYXNlPSEw''@;'; put 'put ''fSksWXQoNDUsIiBPayAiKSxvdCgpKCkoKX0yJmgmJihUdCgibmdJZiIsdi5hdXRvZGVwbG95aW5nKSx1dCg5KSxqaSh2LmFwcExvYyksdXQoNiksamkodi5kY1BhdGgpLHV0KDYpLGppKHYuc2VsZWN0ZWRBZG1pbkdyb3VwKSx1dCgyKSxUdCgibmdNb2RlbCIsdi5yZWNyZWF0ZURhdGFiYXNl''@;'; put 'put ''KSx1dCg0KSxUdCgiZGlzYWJsZWQiLCF2Lmpzb25GaWxlKSx1dCgxKSxKaSgiIERlcGxveSAiLHYuanNvbkZpbGU/IiI6Iihqc29uIGZpbGUgaXMgbm90IGF2YWlsYWJsZSkiLCJcbiIpLHV0KDUpLFR0KCJjbHJNb2RhbE9wZW4iLHYucmVjcmVhdGVEYXRhYmFzZU1vZGFsKSgiY2xyTW9kYWxD''@;'; put 'put ''bG9zYWJsZSIsITEpLHV0KDYpLGppKHYuZGNQYXRoKSl9LGRlcGVuZGVuY2llczpbTm8sSWYsVHMsSXMsd2wsaWQsb2QsYXRdLHN0eWxlczpbIi5hdXRvLWRlcGxveVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2Vu''@;'; put 'put ''dGVyO3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDtyaWdodDowO3RvcDowO2JvdHRvbTowO2JhY2tncm91bmQ6cmdiYSgwLDAsMCwuNCk7ei1pbmRleDoxMDB9LnNwaW5uZXItYm94W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo0MDBweDtwYWRkaW5nOjIwcHg7Ym9yZGVyLXJhZGl1czozcHg7YmFj''@;'; put 'put ''a2dyb3VuZDojZmZmO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNoYWRvdzoxcHggMXB4IDhweCAjMDAwMDAwODJ9LnNwaW5uZXItYm94W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5idXR0b25z''@;'; put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47d2lkdGg6MTAwJX0uZGVwbG95LXN0YXR1cy1yb3dbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0''@;'; put 'put ''fS5kZXBsb3ktc3RhdHVzLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCAwIDAgMTBweH0uZGVwbG95LXN1Y2Nlc3NbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiM2ZWNmNDR9LmRlcGxveS1lcnJvcltfbmdjb250ZW50LSVDT01QJV17Y29s''@;'; put 'put ''b3I6I2U3NGMzY30uZGVwbG95LXVuZGV0ZXJtaW5hdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojY2FjYWNhfWhyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLC4yNzA1ODgyMzUzKX0iXX0pLGR9KSgpO2Z1bmN0aW9u''@;'; put 'put ''IFlWZShkLGcpezEmZCYmKG50KDAsImRpdiIsMTUpLENyKDEsInByb2dyZXNzIiksb3QoKSl9ZnVuY3Rpb24gVVZlKGQsZyl7aWYoMSZkJiYobnQoMCwib3B0aW9uIiwxNiksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJ2YWx1ZSIsaC5HUk9VUE5BTUUpLHV0KDEp''@;'; put 'put ''LEZoKCIgIixoLkdST1VQTkFNRSwiIC0gIixoLkdST1VQREVTQywiICIpfX1sZXQgUVZlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2KXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLnNhc2pzU2VydmljZT12LHRoaXMuc2FzSnNDb25maWc9bmV3IFUzLlNBU2pzQ29uZmlnLHRoaXMub25O''@;'; put 'put ''YXZpZ2F0ZVRvSG9tZT1uZXcgYXIsdGhpcy5kY0RpcmVjdG9yeT0iIix0aGlzLmRjQWRtaW5Hcm91cD0iRENERUZBVUxUIix0aGlzLk1FVEFQRVJTT049Im4vYSIsdGhpcy5NRVRBVVNFUj0ibi9hIix0aGlzLlNZU1VTRVJJRD0ibi9hIix0aGlzLlNZU0hPU1ROQU1FPSJuL2EiLHRoaXMuU1lT''@;'; put 'put ''VkxPTkc9Im4vYSIsdGhpcy5kY0FkbWluR3JvdXBMaXN0PVtdLHRoaXMubG9hZGluZz0hMSx0aGlzLnNob3dMb2dvdXQ9ITEsdGhpcy50bXBEaXJlY3Rvcmllcz17bGludXg6Ii90bXAvRGF0YUNvbnRyb2xsZXIiLHdpbmRvd3M6IkM6XFxEYXRhQ29udHJvbGxlciJ9fW5nT25Jbml0KCl7dGhp''@;'; put 'put ''cy5nZXRVc2VyR3JvdXBzKCksdGhpcy5nZXRTZXJ2ZXJJbmZvKCl9Z2V0U2VydmVySW5mbygpe3RoaXMuc2FzanNTZXJ2aWNlLmdldFNlcnZlckluZm8oKS5zdWJzY3JpYmUoaD0+eyJkZXNrdG9wIiE9PWgubW9kZSYmKHRoaXMuc2hvd0xvZ291dD0hMCl9KX1nZXRVc2VyR3JvdXBzKCl7dGhp''@;'; put 'put ''cy5sb2FkaW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJncm91cHNieW1lbWJlciIsbnVsbCkudGhlbihoPT57dGhpcy5NRVRBUEVSU09OPWguTUZfR0VUVVNFUix0aGlzLlNZU1VTRVJJRD1oLlNZU1VTRVJJRCx0aGlzLlNZU0hPU1ROQU1FPWguU1lTSE9TVE5B''@;'; put 'put ''TUUsdGhpcy5TWVNWTE9ORz1oLlNZU1ZMT05HLHRoaXMuZGNEaXJlY3Rvcnk9dGhpcy50bXBEaXJlY3Rvcmllc1tbIkwiLCJIIiwiQSIsIlMiXS5pbmNsdWRlcyhoLlNZU1NDUEwuc3Vic3RyaW5nKDAsMSkpPyJsaW51eCI6IndpbmRvd3MiXSx0aGlzLmRjQWRtaW5Hcm91cExpc3Q9aC5ncm91''@;'; put 'put ''cHMsdGhpcy5kY0FkbWluR3JvdXA9dGhpcy5kY0FkbWluR3JvdXBMaXN0WzBdLkdST1VQTkFNRSx0aGlzLmxvYWRpbmc9ITF9LGg9Pnt0aGlzLmxvYWRpbmc9ITF9KX1tYWtlRGF0YSgpe2xldCB2PXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7Y29uc3QgeT10aGlzLnNhc0pz''@;'; put 'put ''Q29uZmlnLmFwcExvYztsZXQgQz10aGlzLnNhc0pzQ29uZmlnLnNlcnZlclVybCxJPXRoaXMuZGNEaXJlY3Rvcnk7dGhpcy5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09SHUuRC5TYXNqcz90aGlzLnNhc1NlcnZpY2Uuc2FzanNNYWtlZGF0YUNoZWNraW5nKCkudGhlbih1ZT0+e3VlJiZsb2Nh''@;'; put 'put ''dGlvbi5yZWxvYWQoKX0pOnRoaXMuc2FzSnNDb25maWcuc2VydmVyVHlwZT09PUh1LkQuU2FzOSYmKEM9IiIsdj13aW5kb3cubG9jYXRpb24ub3JpZ2luK3YrIi8iLEk9ZW5jb2RlVVJJQ29tcG9uZW50KHRoaXMuZGNEaXJlY3RvcnkpKSx3aW5kb3cub3BlbihgJHtDfHwiIn0ke3Z9P19wcm9n''@;'; put 'put ''cmFtPSR7eX0vc2VydmljZXMvYWRtaW4vbWFrZWRhdGEmYWRtaW49JHt0aGlzLmRjQWRtaW5Hcm91cH0mcGF0aD0ke0l9IGAsIl9ibGFuayIpfWxvZ291dCgpe3RoaXMuc2FzU2VydmljZS5sb2dvdXQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCko''@;'; put 'put ''S3QoZzIpLEt0KGlRKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1zYXNqcy1jb25maWd1cmF0b3IiXV0saW5wdXRzOntzYXNKczoic2FzSnMiLHNhc0pzQ29uZmlnOiJzYXNKc0NvbmZpZyIsZGNBZGFwdGVyU2V0dGluZ3M6ImRjQWRhcHRlclNldHRpbmdzIn0s''@;'; put 'put ''b3V0cHV0czp7b25OYXZpZ2F0ZVRvSG9tZToib25OYXZpZ2F0ZVRvSG9tZSJ9LGRlY2xzOjQxLHZhcnM6OSxjb25zdHM6W1siY2xhc3MiLCJ0aGluUHJvZ3Jlc3MgcHJvZ3Jlc1N0YXRpYyBwcm9ncmVzcyBsb29wIiw0LCJuZ0lmIl0sWzEsInRleHQtY2VudGVyIiwibXktMTUiXSxbMSwibGln''@;'; put 'put ''aHQiXSxbMSwibS0wIl0sWzEsIm0tMCIsIm10LTEwIl0sWzEsIm10LTIwIiwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbMSwibWItMTAiLCJjbHItY29udHJvbC1jb250YWluZXIiXSxbMSwiY2xyLWlucHV0LXdyYXBwZXIiXSxbInBsYWNlaG9sZGVyIiwiVHlwZSBpbiBkaXJlY3RvcnkiLDEsImNs''@;'; put 'put ''ci1pbnB1dCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMSwibWItMTAiLCJtdC0wIiwidy01MHZ3Il0sWyJjbHJTZWxlY3QiLCIiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY2xyLWZsZXgiXSxbMSwiYnRu''@;'; put 'put ''IiwiYnRuLXN1Y2Nlc3MiLCJtdC0xNSIsInRleHQtY2VudGVyIiwzLCJjbGljayJdLFsxLCJjYXJkLXRleHQiLCJwYi0xMCJdLFsxLCJ0aGluUHJvZ3Jlc3MiLCJwcm9ncmVzU3RhdGljIiwicHJvZ3Jlc3MiLCJsb29wIl0sWzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZo''@;'; put 'put ''JiYocm4oMCxZVmUsMiwwLCJkaXYiLDApLG50KDEsImg0IiwxKSxZdCgyLCJTYXNqcyBEZXBsb3kiKSxvdCgpLENyKDMsImhyIiwyKSxudCg0LCJwIiwzKSxZdCg1LCIgVG8gY29uZmlndXJlIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhOSwgcGxlYXNlIHByb3ZpZGUgdGhlIGZvbGxvd2lu''@;'; put 'put ''ZyBkZXRhaWxzOlxuIiksb3QoKSxudCg2LCJwIiw0KSxZdCg3LCIgUGxlYXNlIHNwZWNpZnkgYSBwaHlzaWNhbCBkaXJlY3RvcnkgYmVsb3csIHRvIHdoaWNoIHVzZXIgIiksbnQoOCwic3Ryb25nIiksWXQoOSksb3QoKSxZdCgxMCwiIGNhbiB3cml0ZSwgb24gYmVoYWxmIG9mIERhdGEgQ29u''@;'; put 'put ''dHJvbGxlcjpcbiIpLG90KCksbnQoMTEsImxhYmVsIiw1KSxZdCgxMiwiREMgRGlyZWN0b3J5Iiksb3QoKSxudCgxMywiZGl2Iiw2KSgxNCwiZGl2Iiw3KSgxNSwiaW5wdXQiLDgpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kY0RpcmVjdG9yeT1DfSksb3QoKSgp''@;'; put 'put ''KCksbnQoMTYsInAiLDQpLFl0KDE3LCIgQmVsb3cgYXJlIHRoZSBsaXN0IG9mIGdyb3VwcyB0byB3aGljaCB5b3UgYmVsb25nLiBUaGUgZ3JvdXAgeW91IHNlbGVjdCB3aWxsIGJlY29tZSB0aGUgRGF0YSBDb250cm9sbGVyIEFkbWluIEdyb3VwLCBhbmQgZXZlcnlvbmUgaW4gaXQgd2lsbCBo''@;'; put 'put ''YXZlIHVucmVzdHJpY3RlZCBhY2Nlc3MgdG8gRGF0YSBDb250cm9sbGVyLlxuIiksb3QoKSxudCgxOCwibGFiZWwiLDUpLFl0KDE5LCJEYXRhIENvbnRyb2xsZXIgQWRtaW4gZ3JvdXAiKSxvdCgpLG50KDIwLCJjbHItc2VsZWN0LWNvbnRhaW5lciIsOSkoMjEsInNlbGVjdCIsMTApLEduKCJu''@;'; put 'put ''Z01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5kY0FkbWluR3JvdXA9Q30pLHJuKDIyLFVWZSwyLDMsIm9wdGlvbiIsMTEpLG90KCkoKSxudCgyMywicCIsNCksWXQoMjQsIiBOb3csIGNyZWF0ZSB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhbmQgZGVwbG95IHRoZSBjb250cm9sIGxp''@;'; put 'put ''YnJhcnkgdXNpbmcgdGhlIGFkbWluIGdyb3VwIHNlbGVjdGVkIGFib3ZlOlxuIiksb3QoKSxudCgyNSwiZGl2IiwxMikoMjYsImJ1dHRvbiIsMTMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5tYWtlRGF0YSgpfSksWXQoMjcsIiBTVUJNSVQgIiksb3QoKSgpLENyKDI4LCJociIs''@;'; put 'put ''MiksbnQoMjksImRpdiIsMTQpKDMwLCJwIiksWXQoMzEsIllvdSBhcmUgY29ubmVjdGVkIHdpdGggdGhlIGZvbGxvd2luZyBjcmVkZW50aWFsczoiKSxvdCgpLG50KDMyLCJ1bCIpKDMzLCJsaSIpLFl0KDM0KSxvdCgpLG50KDM1LCJsaSIpLFl0KDM2KSxvdCgpLG50KDM3LCJsaSIpLFl0KDM4''@;'; put 'put ''KSxvdCgpLG50KDM5LCJsaSIpLFl0KDQwKSxvdCgpKCkoKSksMiZoJiYoVHQoIm5nSWYiLHYubG9hZGluZyksdXQoOSksamkodi5TWVNVU0VSSUQpLHV0KDYpLFR0KCJuZ01vZGVsIix2LmRjRGlyZWN0b3J5KSx1dCg2KSxUdCgibmdNb2RlbCIsdi5kY0FkbWluR3JvdXApLHV0KDEpLFR0KCJu''@;'; put 'put ''Z0Zvck9mIix2LmRjQWRtaW5Hcm91cExpc3QpLHV0KDEyKSxKaSgiTUVUQVBFUlNPTjogIix2Lk1FVEFQRVJTT04sIiIpLHV0KDIpLEppKCJTWVNVU0VSSUQ6ICIsdi5TWVNVU0VSSUQsIiIpLHV0KDIpLEppKCJTWVNIT1NUTkFNRTogIix2LlNZU0hPU1ROQU1FLCIiKSx1dCgyKSxKaSgiU1lT''@;'; put 'put ''VkxPTkc6ICIsdi5TWVNWTE9ORywiIikpfSxkZXBlbmRlbmNpZXM6W3hzLE5vLCQzLHEzLG0xLE9mLFRzLElzLGF0LG9aLGlaXSxzdHlsZXM6WyIuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo1MHZ3fS5jbHItaW5wdXQtd3JhcHBlcltfbmdjb250ZW50''@;'; put 'put ''LSVDT01QJV0sIC5jbHItaW5wdXQtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICBpbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0udGhpblByb2dyZXNzW19uZ2NvbnRlbnQtJUNPTVAlXXtsZWZ0OjBweDtyaWdodDowO3dpZHRoOnVuc2V0O2hlaWdodDoxcHg7bWFyZ2lu''@;'; put 'put ''LXRvcDowIWltcG9ydGFudH0udGhpblByb2dyZXNzW19uZ2NvbnRlbnQtJUNPTVAlXTphZnRlcnt0b3A6MH0iXX0pLGR9KSgpO2Z1bmN0aW9uIEpWZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIsNCkoMSwiZGl2Iiw1KSxZdCgyLCJUZXJtcyBhbmQgQ29uZGl0aW9ucyIp''@;'; put 'put ''LG90KCksbnQoMywiZGl2Iiw2KSg0LCJkaXYiLDcpKDUsInAiKSxZdCg2LCIgVGhlIERlbW8gdmVyc2lvbiBvZiBEYXRhIENvbnRyb2xsZXIgaXMgZnJlZSBmb3IgRVZBTFVBVElPTiBwdXJwb3NlcyBvbmx5LiBCZWZvcmUgcHJvY2VlZGluZyB3aXRoIGNvbmZpZ3VyYXRpb24sIHBsZWFzZSBj''@;'; put 'put ''b25maXJtIHRoYXQgeW91IGhhdmUgcmVhZCwgdW5kZXJzdG9vZCwgYW5kIGFncmVlZCB0byB0aGUgIiksbnQoNywiYSIsOCksWXQoOCwiRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGE5IEV2YWx1YXRpb24gQWdyZWVtZW50Iiksb3QoKSxZdCg5LCIuICIpLG90KCkoKSxDcigxMCwiaHIiLDkp''@;'; put 'put ''LG50KDExLCJkaXYiLDEwKSgxMiwiaW5wdXQiLDExKSxHbigiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkudGVybXNBZ3JlZUNoYW5nZSgpKX0pLG90KCksbnQoMTMsImxhYmVsIiwxMiksWXQoMTQsIkkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgdGVybXMgb2Yg''@;'; put 'put ''dGhlICIpLG50KDE1LCJhIiw4KSxZdCgxNiwiRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGE5IEV2YWx1YXRpb24gQWdyZWVtZW50Iiksb3QoKSgpKCkoKSgpfX1mdW5jdGlvbiBYVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDE3KSgxLCJhcHAtYXV0b21hdGljLWRl''@;'; put 'put ''cGxveSIsMTgpLEduKCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDMpLm9uTmF2aWdhdGVUb0hvbWUoKSl9KSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KDMpO3V0KDEpLFR0KCJzYXNKcyIsaC5zYXNKcykoInNhc0pzQ29uZmlnIixoLnNhc0pzQ29u''@;'; put 'put ''ZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGguZGNBZGFwdGVyU2V0dGluZ3MpKCJhcHBMb2MiLGguYXBwTG9jKSgiZGNQYXRoIixoLmRjUGF0aCkoInNlbGVjdGVkQWRtaW5Hcm91cCIsaC5zZWxlY3RlZEFkbWluR3JvdXApfX1mdW5jdGlvbiBLVmUoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2ko''@;'; put 'put ''KTtudCgwLCJkaXYiLDE5KSgxLCJhcHAtbWFudWFsLWRlcGxveSIsMjApLEduKCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDMpLm9uTmF2aWdhdGVUb0hvbWUoKSl9KSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KDMpO3V0KDEpLFR0KCJzYXNKcyIs''@;'; put 'put ''aC5zYXNKcykoInNhc0pzQ29uZmlnIixoLnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGguZGNBZGFwdGVyU2V0dGluZ3MpfX1mdW5jdGlvbiAkVmUoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLFhWZSwyLDYsImRpdiIsMTUpLHJuKDIsS1ZlLDIsMywiZGl2IiwxNiksUDAoKSks''@;'; put 'put ''MiZkKXtjb25zdCBoPVF0KDIpO3V0KDEpLFR0KCJuZ0lmIixoLmF1dG9kZXBsb3kpLHV0KDEpLFR0KCJuZ0lmIiwhaC5hdXRvZGVwbG95KX19ZnVuY3Rpb24gcVZlKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7QjAoMCksbnQoMSwiZGl2IiwxNykoMiwiYXBwLXNhc2pzLWNvbmZpZ3VyYXRv''@;'; put 'put ''ciIsMjApLEduKCJvbk5hdmlnYXRlVG9Ib21lIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLm9uTmF2aWdhdGVUb0hvbWUoKSl9KSxvdCgpKCksUDAoKX1pZigyJmQpe2NvbnN0IGg9UXQoMik7dXQoMiksVHQoInNhc0pzIixoLnNhc0pzKSgic2FzSnNDb25maWciLGguc2FzSnND''@;'; put 'put ''b25maWcpKCJkY0FkYXB0ZXJTZXR0aW5ncyIsaC5kY0FkYXB0ZXJTZXR0aW5ncyl9fWZ1bmN0aW9uIGVqZShkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLG50KDEsImRpdiIsMTcpKDIsImFwcC1zYXNqcy1jb25maWd1cmF0b3IiLDIwKSxHbigib25OYXZpZ2F0ZVRvSG9tZSIsZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5vbk5hdmlnYXRlVG9Ib21lKCkpfSksb3QoKSgpLFAwKCl9aWYoMiZkKXtjb25zdCBoPVF0KDIpO3V0KDIpLFR0KCJzYXNKcyIsaC5zYXNKcykoInNhc0pzQ29uZmlnIixoLnNhc0pzQ29uZmlnKSgiZGNBZGFwdGVyU2V0dGluZ3MiLGguZGNB''@;'; put 'put ''ZGFwdGVyU2V0dGluZ3MpfX1mdW5jdGlvbiB0amUoZCxnKXtpZigxJmQmJihCMCgwLDEzKSxybigxLCRWZSwzLDIsIm5nLWNvbnRhaW5lciIsMTQpLHJuKDIscVZlLDMsMywibmctY29udGFpbmVyIiwxNCkscm4oMyxlamUsMywzLCJuZy1jb250YWluZXIiLDE0KSxQMCgpKSwyJmQpe2NvbnN0''@;'; put 'put ''IGg9UXQoKTtUdCgibmdTd2l0Y2giLCEwKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIixoLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzVml5YSksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsaC5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNh''@;'; put 'put ''c2pzKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIixoLnNhc0pzQ29uZmlnLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSl9fWxldCBXd2U9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDKXt2YXIgSTt0aGlzLmFwcFN0b3JlU2VydmljZT1oLHRoaXMuc2FzU2VydmljZT12''@;'; put 'put ''LHRoaXMubG9nZ2VyU2VydmljZT15LHRoaXMucm91dGVyPUMsdGhpcy5zdGVwPTAsdGhpcy5hZG1pbkdyb3Vwcz1bXSx0aGlzLmNsaWVudF9pZD0iIix0aGlzLmNsaWVudF9zZWNyZXQ9IiIsdGhpcy5hcHBMb2M9IiIsdGhpcy5kY1BhdGg9IiIsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9IiIs''@;'; put 'put ''dGhpcy5hdXRvZGVwbG95PSEwLHRoaXMuanNvbkZpbGU9bnVsbCx0aGlzLnNhc0pzQ29uZmlnPW5ldyBVMy5TQVNqc0NvbmZpZyx0aGlzLlNlcnZlclR5cGU9SHUuRCx0aGlzLmRjQWRhcHRlclNldHRpbmdzPXRoaXMuYXBwU3RvcmVTZXJ2aWNlLmdldERjQWRhcHRlclNldHRpbmdzKCksdGhp''@;'; put 'put ''cy5yb3V0ZXIudXJsLmluY2x1ZGVzKCJtYW51YWxkZXBsb3kiKSYmKHRoaXMuYXV0b2RlcGxveT0hMSksdGhpcy5zYXNKcz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNJbnN0YW5jZSgpLHRoaXMuc2FzSnNDb25maWc9dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCksdGhpcy5hcHBM''@;'; put 'put ''b2M9KG51bGw9PT0oST10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09ST92b2lkIDA6SS5hcHBMb2MpfHwiIix0aGlzLmNsaWVudF9pZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZGVwbG95X2NsaWVudF9pZCIpfHwiIix0aGlzLmNsaWVudF9zZWNyZXQ9bG9jYWxTdG9yYWdlLmdl''@;'; put 'put ''dEl0ZW0oImRlcGxveV9zZWNyZXRfa2V5Iil8fCIiLHRoaXMuZGNQYXRoPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJkZXBsb3lfZGNfbG9jIil8fCIifW5nT25Jbml0KCl7dGhpcy5zYXNKc0NvbmZpZy5zZXJ2ZXJUeXBlPT09SHUuRC5TYXNWaXlhJiZmZXRjaCgic2FzYnVpbGQvdml5YS5qc29u''@;'; put 'put ''IikudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IHY9bnVsbDt0cnl7dj1KU09OLnBhcnNlKGgpfWNhdGNoKHkpe2NvbnNvbGUuZXJyb3IoeSl9diYmKHRoaXMuanNvbkZpbGU9dix0aGlzLmxvZ2dlclNlcnZpY2UubG9nKHRoaXMuanNvbkZpbGUpKX0pLHRoaXMuc2V0RGVwbG95RGVm''@;'; put 'put ''YXVsdHMoKX1zZXREZXBsb3lEZWZhdWx0cygpe3ZhciBoLHY7dGhpcy5kY1BhdGg9KG51bGw9PT0oaD10aGlzLmRjQWRhcHRlclNldHRpbmdzKXx8dm9pZCAwPT09aD92b2lkIDA6aC5kY1BhdGgpfHwiIix0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cD0obnVsbD09PSh2PXRoaXMuZGNBZGFwdGVy''@;'; put 'put ''U2V0dGluZ3MpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmFkbWluR3JvdXApfHwiIix0aGlzLnNlbGVjdGVkQWRtaW5Hcm91cHx8KHRoaXMuc2VsZWN0ZWRBZG1pbkdyb3VwPSJTQVNBZG1pbmlzdHJhdG9ycyIpfXRlcm1zQWdyZWVDaGFuZ2UoKXt0aGlzLmF1dG9kZXBsb3l8fHRoaXMuZ2V0QWRt''@;'; put 'put ''aW5Hcm91cHMoKSx0aGlzLnN0ZXArK31nZXRBZG1pbkdyb3Vwcygpe2ZldGNoKHRoaXMuc2FzSnNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy9ncm91cHM/c29ydEJ5PW5hbWUmbGltaXQ9NTAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5o''@;'; put 'put ''LnRleHQoKSkudGhlbihoPT57bGV0IHY7dHJ5e3Y9SlNPTi5wYXJzZShoKX1jYXRjaCh5KXtjb25zb2xlLmVycm9yKHkpfXYmJih0aGlzLmFkbWluR3JvdXBzPXYuaXRlbXMsdGhpcy5zZWxlY3RlZEFkbWluR3JvdXA9dGhpcy5hZG1pbkdyb3Vwc1swXS5pZCl9KX1vbk5hdmlnYXRlVG9Ib21l''@;'; put 'put ''KCl7d2luZG93Lm9wZW4obG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdLCJfYmxhbmsiKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3Qoc2spLEt0KGcyKSxLdChzYyksS3QoWmwpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6''@;'; put 'put ''W1siYXBwLWRlcGxveSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6NCx2YXJzOjIsY29uc3RzOltbMSwiY29udGVudC1hcmVhIiwicG9zaXRpb24tcmVsYXRpdmUiXSxbMSwiY2xyLXJvdyJdLFsiaWQiLCJUQ1MiLCJjbGFzcyIsImNhcmQiLDQsIm5nSWYiXSxb''@;'; put 'put ''MywibmdTd2l0Y2giLDQsIm5nSWYiXSxbImlkIiwiVENTIiwxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtYmxvY2siXSxbMSwiY2FyZC10ZXh0Il0sWyJocmVmIiwiaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvL2V2YWx1YXRpb24tbGljZW5jZS1hZ3JlZW1lbnQi''@;'; put 'put ''LCJ0YXJnZXQiLCJfYmxhbmsiXSxbMSwibGlnaHQiXSxbMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiXSxbInR5cGUiLCJjaGVja2JveCIsImlkIiwiY2hlY2tib3gxIiwibmFtZSIsImNoZWNrYm94LWJhc2ljIiwidmFsdWUiLCJvcHRpb24xIiwxLCJjbHItY2hlY2tib3giLDMsImNoYW5nZSJd''@;'; put 'put ''LFsiZm9yIiwiY2hlY2tib3gxIl0sWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsiY2xhc3MiLCJhdXRvZGVwbG95LXNlY3Rpb24gY2FyZCIsNCwibmdJZiJdLFsiaWQiLCJtYWluYm9keSIsImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFsxLCJhdXRvZGVwbG95LXNlY3Rpb24i''@;'; put 'put ''LCJjYXJkIl0sWzMsInNhc0pzIiwic2FzSnNDb25maWciLCJkY0FkYXB0ZXJTZXR0aW5ncyIsImFwcExvYyIsImRjUGF0aCIsInNlbGVjdGVkQWRtaW5Hcm91cCIsIm9uTmF2aWdhdGVUb0hvbWUiXSxbImlkIiwibWFpbmJvZHkiLDEsImNhcmQiXSxbMywic2FzSnMiLCJzYXNKc0NvbmZpZyIs''@;'; put 'put ''ImRjQWRhcHRlclNldHRpbmdzIiwib25OYXZpZ2F0ZVRvSG9tZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImRpdiIsMCkoMSwiZGl2IiwxKSxybigyLEpWZSwxNywwLCJkaXYiLDIpLG90KCkscm4oMyx0amUsNCw0LCJuZy1jb250YWluZXIiLDMpLG90KCkpLDImaCYm''@;'; put 'put ''KHV0KDIpLFR0KCJuZ0lmIiwwPT09di5zdGVwKSx1dCgxKSxUdCgibmdJZiIsdi5zdGVwPjApKX0sZGVwZW5kZW5jaWVzOltObyxKZCxpcCxhdCxCVmUsV1ZlLFFWZV0sc3R5bGVzOlsiLmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MH0uYnRuW19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XXttYXJnaW4tdG9wOjEwcHh9LmxvZy13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO2JhY2tncm91bmQ6I2YwZjBmMDtib3JkZXI6MXB4IHNvbGlkICNjOWM5Yzk7cGFkZGluZzoxMHB4O292ZXJmbG93OmF1dG87d2hpdGUtc3BhY2U6cHJlLXdyYXB9I2NvbnRleHRzLWJ0''@;'; put 'put ''bltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzozcHggMCAwO21pbi13aWR0aDozMHB4O21hcmdpbi1sZWZ0OjEwcHg7aGVpZ2h0OjMwcHg7ZGlzcGxheTppbmxpbmUtZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcn0udmFsaWRhdGlvbi1iYXJbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOjIwcHg7YWxpZ24taXRlbXM6Y2VudGVyfS52YWxpZGF0aW9uLWJhcltfbmdjb250ZW50LSVDT01QJV0gICBjbHItaWNvbltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjVweH0uYXV0b2RlcGxveS1zZWN0aW9uW19u''@;'; put 'put ''Z2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjAgMTVweH0uYXV0b2RlcGxveS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbHItY2hlY2tib3gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luOjIwcHggMH0uYXV0b2RlcGxveS1zZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XSAgIC5idG4tYXV0b2RlcGxveVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpibG9jazttYXJnaW46MTVweCAwfSJdfSksZH0pKCk7ZnVuY3Rpb24gWXdlKGQpe3JldHVybiFBZShkKSYmZC1wYXJzZUZsb2F0KGQpKzE+PTB9ZnVuY3Rpb24gaWplKGQpe2NvbnN0e2luZGV4OmcscGVyaW9k''@;'; put 'put ''Omgsc3Vic2NyaWJlcjp2fT1kO2lmKHYubmV4dChnKSwhdi5jbG9zZWQpe2lmKC0xPT09aClyZXR1cm4gdi5jb21wbGV0ZSgpO2QuaW5kZXg9ZysxLHRoaXMuc2NoZWR1bGUoZCxoKX19bGV0IGlPPXtiYXNlVXJsOm51bGwsYnJlYWtzOiExLGV4dGVuc2lvbnM6bnVsbCxnZm06ITAsaGVhZGVy''@;'; put 'put ''SWRzOiEwLGhlYWRlclByZWZpeDoiIixoaWdobGlnaHQ6bnVsbCxsYW5nUHJlZml4OiJsYW5ndWFnZS0iLG1hbmdsZTohMCxwZWRhbnRpYzohMSxyZW5kZXJlcjpudWxsLHNhbml0aXplOiExLHNhbml0aXplcjpudWxsLHNpbGVudDohMSxzbWFydExpc3RzOiExLHNtYXJ0eXBhbnRzOiExLHRv''@;'; put 'put ''a2VuaXplcjpudWxsLHdhbGtUb2tlbnM6bnVsbCx4aHRtbDohMX07Y29uc3Qgc2plPS9bJjw+IiddLyx1amU9L1smPD4iJ10vZyxjamU9L1s8PiInXXwmKD8hIz9cdys7KS8sZmplPS9bPD4iJ118Jig/ISM/XHcrOykvZyxoamU9eyImIjoiJmFtcDsiLCI8IjoiJmx0OyIsIj4iOiImZ3Q7Iiwn''@;'; put 'put ''Iic6IiZxdW90OyIsIiciOiImIzM5OyJ9LFF3ZT1kPT5oamVbZF07ZnVuY3Rpb24gbmYoZCxnKXtpZihnKXtpZihzamUudGVzdChkKSlyZXR1cm4gZC5yZXBsYWNlKHVqZSxRd2UpfWVsc2UgaWYoY2plLnRlc3QoZCkpcmV0dXJuIGQucmVwbGFjZShmamUsUXdlKTtyZXR1cm4gZH1jb25zdCBk''@;'; put 'put ''amU9LyYoIyg/OlxkKyl8KD86I3hbMC05QS1GYS1mXSspfCg/Olx3KykpOz8vZ2k7ZnVuY3Rpb24gSndlKGQpe3JldHVybiBkLnJlcGxhY2UoZGplLChnLGgpPT4iY29sb24iPT09KGg9aC50b0xvd2VyQ2FzZSgpKT8iOiI6IiMiPT09aC5jaGFyQXQoMCk/IngiPT09aC5jaGFyQXQoMSk/U3Ry''@;'; put 'put ''aW5nLmZyb21DaGFyQ29kZShwYXJzZUludChoLnN1YnN0cmluZygyKSwxNikpOlN0cmluZy5mcm9tQ2hhckNvZGUoK2guc3Vic3RyaW5nKDEpKToiIil9Y29uc3QgcGplPS8oXnxbXlxbXSlcXi9nO2Z1bmN0aW9uIFkyKGQsZyl7ZD0ic3RyaW5nIj09dHlwZW9mIGQ/ZDpkLnNvdXJjZSxnPWd8''@;'; put 'put ''fCIiO2NvbnN0IGg9e3JlcGxhY2U6KHYseSk9Pih5PSh5PXkuc291cmNlfHx5KS5yZXBsYWNlKHBqZSwiJDEiKSxkPWQucmVwbGFjZSh2LHkpLGgpLGdldFJlZ2V4OigpPT5uZXcgUmVnRXhwKGQsZyl9O3JldHVybiBofWNvbnN0IGdqZT0vW15cdzpdL2csbWplPS9eJHxeW2Etel1bYS16MC05''@;'; put 'put ''Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rpb24gWHdlKGQsZyxoKXtpZihkKXtsZXQgdjt0cnl7dj1kZWNvZGVVUklDb21wb25lbnQoSndlKGgpKS5yZXBsYWNlKGdqZSwiIikudG9Mb3dlckNhc2UoKX1jYXRjaCh5KXtyZXR1cm4gbnVsbH1pZigwPT09di5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHww''@;'; put 'put ''PT09di5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PXYuaW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH1nJiYhbWplLnRlc3QoaCkmJihoPWZ1bmN0aW9uIHdqZShkLGcpe1pxWyIgIitkXXx8KFpxWyIgIitkXT12amUudGVzdChkKT9kKyIvIjpHcShkLCIvIiwhMCkpO2NvbnN0IGg9LTE9''@;'; put 'put ''PT0oZD1acVsiICIrZF0pLmluZGV4T2YoIjoiKTtyZXR1cm4iLy8iPT09Zy5zdWJzdHJpbmcoMCwyKT9oP2c6ZC5yZXBsYWNlKEFqZSwiJDEiKStnOiIvIj09PWcuY2hhckF0KDApP2g/ZzpkLnJlcGxhY2UoeWplLCIkMSIpK2c6ZCtnfShnLGgpKTt0cnl7aD1lbmNvZGVVUkkoaCkucmVwbGFj''@;'; put 'put ''ZSgvJTI1L2csIiUiKX1jYXRjaCh2KXtyZXR1cm4gbnVsbH1yZXR1cm4gaH1jb25zdCBacT17fSx2amU9L15bXjpdKzpcLypbXi9dKiQvLEFqZT0vXihbXjpdKzopW1xzXFNdKiQvLHlqZT0vXihbXjpdKzpcLypbXi9dKilbXHNcU10qJC8senE9e2V4ZWM6ZnVuY3Rpb24oKXt9fTtmdW5jdGlv''@;'; put 'put ''biB3OChkKXtsZXQgaCx2LGc9MTtmb3IoO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspZm9yKHYgaW4gaD1hcmd1bWVudHNbZ10saClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaCx2KSYmKGRbdl09aFt2XSk7cmV0dXJuIGR9ZnVuY3Rpb24gS3dlKGQsZyl7Y29uc3Qgdj1k''@;'; put 'put ''LnJlcGxhY2UoL1x8L2csKEMsSSxaKT0+e2xldCB1ZT0hMSxfZT1JO2Zvcig7LS1fZT49MCYmIlxcIj09PVpbX2VdOyl1ZT0hdWU7cmV0dXJuIHVlPyJ8IjoiIHwifSkuc3BsaXQoLyBcfC8pO2xldCB5PTA7aWYodlswXS50cmltKCl8fHYuc2hpZnQoKSx2Lmxlbmd0aD4wJiYhdlt2Lmxlbmd0''@;'; put 'put ''aC0xXS50cmltKCkmJnYucG9wKCksdi5sZW5ndGg+Zyl2LnNwbGljZShnKTtlbHNlIGZvcig7di5sZW5ndGg8Zzspdi5wdXNoKCIiKTtmb3IoO3k8di5sZW5ndGg7eSsrKXZbeV09dlt5XS50cmltKCkucmVwbGFjZSgvXFxcfC9nLCJ8Iik7cmV0dXJuIHZ9ZnVuY3Rpb24gR3EoZCxnLGgpe2Nv''@;'; put 'put ''bnN0IHY9ZC5sZW5ndGg7aWYoMD09PXYpcmV0dXJuIiI7bGV0IHk9MDtmb3IoO3k8djspe2NvbnN0IEM9ZC5jaGFyQXQodi15LTEpO2lmKEMhPT1nfHxoKXtpZihDPT09Z3x8IWgpYnJlYWs7eSsrfWVsc2UgeSsrfXJldHVybiBkLnNsaWNlKDAsdi15KX1mdW5jdGlvbiAkd2UoZCl7ZCYmZC5z''@;'; put 'put ''YW5pdGl6ZSYmIWQuc2lsZW50JiZjb25zb2xlLndhcm4oIm1hcmtlZCgpOiBzYW5pdGl6ZSBhbmQgc2FuaXRpemVyIHBhcmFtZXRlcnMgYXJlIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjcuMCwgc2hvdWxkIG5vdCBiZSB1c2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVy''@;'; put 'put ''ZS4gUmVhZCBtb3JlIGhlcmU6IGh0dHBzOi8vbWFya2VkLmpzLm9yZy8jL1VTSU5HX0FEVkFOQ0VELm1kI29wdGlvbnMiKX1mdW5jdGlvbiBxd2UoZCxnKXtpZihnPDEpcmV0dXJuIiI7bGV0IGg9IiI7Zm9yKDtnPjE7KTEmZyYmKGgrPWQpLGc+Pj0xLGQrPWQ7cmV0dXJuIGgrZH1mdW5jdGlv''@;'; put 'put ''biBlYmUoZCxnLGgsdil7Y29uc3QgeT1nLmhyZWYsQz1nLnRpdGxlP25mKGcudGl0bGUpOm51bGwsST1kWzFdLnJlcGxhY2UoL1xcKFtcW1xdXSkvZywiJDEiKTtpZigiISIhPT1kWzBdLmNoYXJBdCgwKSl7di5zdGF0ZS5pbkxpbms9ITA7Y29uc3QgWj17dHlwZToibGluayIscmF3OmgsaHJl''@;'; put 'put ''Zjp5LHRpdGxlOkMsdGV4dDpJLHRva2Vuczp2LmlubGluZVRva2VucyhJLFtdKX07cmV0dXJuIHYuc3RhdGUuaW5MaW5rPSExLFp9cmV0dXJue3R5cGU6ImltYWdlIixyYXc6aCxocmVmOnksdGl0bGU6Qyx0ZXh0Om5mKEkpfX1jbGFzcyBOaGV7Y29uc3RydWN0b3IoZyl7dGhpcy5vcHRpb25z''@;'; put 'put ''PWd8fGlPfXNwYWNlKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5uZXdsaW5lLmV4ZWMoZyk7aWYoaCYmaFswXS5sZW5ndGg+MClyZXR1cm57dHlwZToic3BhY2UiLHJhdzpoWzBdfX1jb2RlKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5jb2RlLmV4ZWMoZyk7aWYoaCl7Y29uc3Qg''@;'; put 'put ''dj1oWzBdLnJlcGxhY2UoL14gezEsNH0vZ20sIiIpO3JldHVybnt0eXBlOiJjb2RlIixyYXc6aFswXSxjb2RlQmxvY2tTdHlsZToiaW5kZW50ZWQiLHRleHQ6dGhpcy5vcHRpb25zLnBlZGFudGljP3Y6R3EodiwiXG4iKX19fWZlbmNlcyhnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2suZmVu''@;'; put 'put ''Y2VzLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj1oWzBdLHk9ZnVuY3Rpb24gX2plKGQsZyl7Y29uc3QgaD1kLm1hdGNoKC9eKFxzKykoPzpgYGApLyk7aWYobnVsbD09PWgpcmV0dXJuIGc7Y29uc3Qgdj1oWzFdO3JldHVybiBnLnNwbGl0KCJcbiIpLm1hcCh5PT57Y29uc3QgQz15Lm1hdGNoKC9e''@;'; put 'put ''XHMrLyk7aWYobnVsbD09PUMpcmV0dXJuIHk7Y29uc3RbSV09QztyZXR1cm4gSS5sZW5ndGg+PXYubGVuZ3RoP3kuc2xpY2Uodi5sZW5ndGgpOnl9KS5qb2luKCJcbiIpfSh2LGhbM118fCIiKTtyZXR1cm57dHlwZToiY29kZSIscmF3OnYsbGFuZzpoWzJdP2hbMl0udHJpbSgpOmhbMl0sdGV4''@;'; put 'put ''dDp5fX19aGVhZGluZyhnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKGcpO2lmKGgpe2xldCB2PWhbMl0udHJpbSgpO2lmKC8jJC8udGVzdCh2KSl7Y29uc3QgQz1HcSh2LCIjIik7KHRoaXMub3B0aW9ucy5wZWRhbnRpY3x8IUN8fC8gJC8udGVzdChDKSkmJih2PUMu''@;'; put 'put ''dHJpbSgpKX1jb25zdCB5PXt0eXBlOiJoZWFkaW5nIixyYXc6aFswXSxkZXB0aDpoWzFdLmxlbmd0aCx0ZXh0OnYsdG9rZW5zOltdfTtyZXR1cm4gdGhpcy5sZXhlci5pbmxpbmUoeS50ZXh0LHkudG9rZW5zKSx5fX1ocihnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2suaHIuZXhlYyhnKTtp''@;'; put 'put ''ZihoKXJldHVybnt0eXBlOiJociIscmF3OmhbMF19fWJsb2NrcXVvdGUoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLmJsb2NrcXVvdGUuZXhlYyhnKTtpZihoKXtjb25zdCB2PWhbMF0ucmVwbGFjZSgvXiAqPlsgXHRdPy9nbSwiIik7cmV0dXJue3R5cGU6ImJsb2NrcXVvdGUiLHJhdzpo''@;'; put 'put ''WzBdLHRva2Vuczp0aGlzLmxleGVyLmJsb2NrVG9rZW5zKHYsW10pLHRleHQ6dn19fWxpc3QoZyl7bGV0IGg9dGhpcy5ydWxlcy5ibG9jay5saXN0LmV4ZWMoZyk7aWYoaCl7bGV0IHYseSxDLEksWix1ZSxfZSxCZSxOZSxLZSxwdCxPdCwkdD1oWzFdLnRyaW0oKTtjb25zdCBmbj0kdC5sZW5n''@;'; put 'put ''dGg+MSxMbj17dHlwZToibGlzdCIscmF3OiIiLG9yZGVyZWQ6Zm4sc3RhcnQ6Zm4/KyR0LnNsaWNlKDAsLTEpOiIiLGxvb3NlOiExLGl0ZW1zOltdfTskdD1mbj9gXFxkezEsOX1cXCR7JHQuc2xpY2UoLTEpfWA6YFxcJHskdH1gLHRoaXMub3B0aW9ucy5wZWRhbnRpYyYmKCR0PWZuPyR0OiJb''@;'; put 'put ''KistXSIpO2NvbnN0IGlyPW5ldyBSZWdFeHAoYF4oIHswLDN9JHskdH0pKCg/OltcdCBdW15cXG5dKik/KD86XFxufCQpKWApO2Zvcig7ZyYmKE90PSExLChoPWlyLmV4ZWMoZykpJiYhdGhpcy5ydWxlcy5ibG9jay5oci50ZXN0KGcpKTspe2lmKHY9aFswXSxnPWcuc3Vic3RyaW5nKHYubGVu''@;'; put 'put ''Z3RoKSxCZT1oWzJdLnNwbGl0KCJcbiIsMSlbMF0sTmU9Zy5zcGxpdCgiXG4iLDEpWzBdLHRoaXMub3B0aW9ucy5wZWRhbnRpYz8oST0yLHB0PUJlLnRyaW1MZWZ0KCkpOihJPWhbMl0uc2VhcmNoKC9bXiBdLyksST1JPjQ/MTpJLHB0PUJlLnNsaWNlKEkpLEkrPWhbMV0ubGVuZ3RoKSx1ZT0h''@;'; put 'put ''MSwhQmUmJi9eICokLy50ZXN0KE5lKSYmKHYrPU5lKyJcbiIsZz1nLnN1YnN0cmluZyhOZS5sZW5ndGgrMSksT3Q9ITApLCFPdCl7Y29uc3QgU3I9bmV3IFJlZ0V4cChgXiB7MCwke01hdGgubWluKDMsSS0xKX19KD86WyorLV18XFxkezEsOX1bLildKSgoPzogW15cXG5dKik/KD86XFxufCQp''@;'; put 'put ''KWApLHdyPW5ldyBSZWdFeHAoYF4gezAsJHtNYXRoLm1pbigzLEktMSl9fSgoPzotICopezMsfXwoPzpfICopezMsfXwoPzpcXCogKil7Myx9KSg/Olxcbit8JClgKSxRcj1uZXcgUmVnRXhwKGBeIHswLCR7TWF0aC5taW4oMyxJLTEpfX0oPzpcYFxgXGB8fn5+KWApLHlpPW5ldyBSZWdFeHAo''@;'; put 'put ''YF4gezAsJHtNYXRoLm1pbigzLEktMSl9fSNgKTtmb3IoO2cmJihLZT1nLnNwbGl0KCJcbiIsMSlbMF0sQmU9S2UsdGhpcy5vcHRpb25zLnBlZGFudGljJiYoQmU9QmUucmVwbGFjZSgvXiB7MSw0fSg/PSggezR9KSpbXiBdKS9nLCIgICIpKSwhKFFyLnRlc3QoQmUpfHx5aS50ZXN0KEJlKXx8''@;'; put 'put ''U3IudGVzdChCZSl8fHdyLnRlc3QoZykpKTspe2lmKEJlLnNlYXJjaCgvW14gXS8pPj1JfHwhQmUudHJpbSgpKXB0Kz0iXG4iK0JlLnNsaWNlKEkpO2Vsc2V7aWYodWUpYnJlYWs7cHQrPSJcbiIrQmV9IXVlJiYhQmUudHJpbSgpJiYodWU9ITApLHYrPUtlKyJcbiIsZz1nLnN1YnN0cmluZyhL''@;'; put 'put ''ZS5sZW5ndGgrMSl9fUxuLmxvb3NlfHwoX2U/TG4ubG9vc2U9ITA6L1xuICpcbiAqJC8udGVzdCh2KSYmKF9lPSEwKSksdGhpcy5vcHRpb25zLmdmbSYmKHk9L15cW1sgeFhdXF0gLy5leGVjKHB0KSx5JiYoQz0iWyBdICIhPT15WzBdLHB0PXB0LnJlcGxhY2UoL15cW1sgeFhdXF0gKy8sIiIp''@;'; put 'put ''KSksTG4uaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6dix0YXNrOiEheSxjaGVja2VkOkMsbG9vc2U6ITEsdGV4dDpwdH0pLExuLnJhdys9dn1Mbi5pdGVtc1tMbi5pdGVtcy5sZW5ndGgtMV0ucmF3PXYudHJpbVJpZ2h0KCksTG4uaXRlbXNbTG4uaXRlbXMubGVuZ3RoLTFdLnRl''@;'; put 'put ''eHQ9cHQudHJpbVJpZ2h0KCksTG4ucmF3PUxuLnJhdy50cmltUmlnaHQoKTtjb25zdCBtcj1Mbi5pdGVtcy5sZW5ndGg7Zm9yKFo9MDtaPG1yO1orKyl7dGhpcy5sZXhlci5zdGF0ZS50b3A9ITEsTG4uaXRlbXNbWl0udG9rZW5zPXRoaXMubGV4ZXIuYmxvY2tUb2tlbnMoTG4uaXRlbXNbWl0u''@;'; put 'put ''dGV4dCxbXSk7Y29uc3QgU3I9TG4uaXRlbXNbWl0udG9rZW5zLmZpbHRlcihRcj0+InNwYWNlIj09PVFyLnR5cGUpLHdyPVNyLmV2ZXJ5KFFyPT57Y29uc3QgeWk9UXIucmF3LnNwbGl0KCIiKTtsZXQgS2k9MDtmb3IoY29uc3QgU28gb2YgeWkpaWYoIlxuIj09PVNvJiYoS2krPTEpLEtpPjEp''@;'; put 'put ''cmV0dXJuITA7cmV0dXJuITF9KTshTG4ubG9vc2UmJlNyLmxlbmd0aCYmd3ImJihMbi5sb29zZT0hMCxMbi5pdGVtc1taXS5sb29zZT0hMCl9cmV0dXJuIExufX1odG1sKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay5odG1sLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToiaHRtbCIs''@;'; put 'put ''cmF3OmhbMF0scHJlOiF0aGlzLm9wdGlvbnMuc2FuaXRpemVyJiYoInByZSI9PT1oWzFdfHwic2NyaXB0Ij09PWhbMV18fCJzdHlsZSI9PT1oWzFdKSx0ZXh0OmhbMF19O3JldHVybiB0aGlzLm9wdGlvbnMuc2FuaXRpemUmJih2LnR5cGU9InBhcmFncmFwaCIsdi50ZXh0PXRoaXMub3B0aW9u''@;'; put 'put ''cy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcihoWzBdKTpuZihoWzBdKSx2LnRva2Vucz1bXSx0aGlzLmxleGVyLmlubGluZSh2LnRleHQsdi50b2tlbnMpKSx2fX1kZWYoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLmRlZi5leGVjKGcpO2lmKGgpcmV0dXJuIGhbM10mJiho''@;'; put 'put ''WzNdPWhbM10uc3Vic3RyaW5nKDEsaFszXS5sZW5ndGgtMSkpLHt0eXBlOiJkZWYiLHRhZzpoWzFdLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXHMrL2csIiAiKSxyYXc6aFswXSxocmVmOmhbMl0sdGl0bGU6aFszXX19dGFibGUoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLnRhYmxlLmV4''@;'; put 'put ''ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToidGFibGUiLGhlYWRlcjpLd2UoaFsxXSkubWFwKHk9Pih7dGV4dDp5fSkpLGFsaWduOmhbMl0ucmVwbGFjZSgvXiAqfFx8ICokL2csIiIpLnNwbGl0KC8gKlx8ICovKSxyb3dzOmhbM10mJmhbM10udHJpbSgpP2hbM10ucmVwbGFjZSgvXG5bIFx0''@;'; put 'put ''XSokLywiIikuc3BsaXQoIlxuIik6W119O2lmKHYuaGVhZGVyLmxlbmd0aD09PXYuYWxpZ24ubGVuZ3RoKXt2LnJhdz1oWzBdO2xldCBDLEksWix1ZSx5PXYuYWxpZ24ubGVuZ3RoO2ZvcihDPTA7Qzx5O0MrKyl2LmFsaWduW0NdPS9eICotKzogKiQvLnRlc3Qodi5hbGlnbltDXSk/InJpZ2h0''@;'; put 'put ''IjovXiAqOi0rOiAqJC8udGVzdCh2LmFsaWduW0NdKT8iY2VudGVyIjovXiAqOi0rICokLy50ZXN0KHYuYWxpZ25bQ10pPyJsZWZ0IjpudWxsO2Zvcih5PXYucm93cy5sZW5ndGgsQz0wO0M8eTtDKyspdi5yb3dzW0NdPUt3ZSh2LnJvd3NbQ10sdi5oZWFkZXIubGVuZ3RoKS5tYXAoX2U9Pih7''@;'; put 'put ''dGV4dDpfZX0pKTtmb3IoeT12LmhlYWRlci5sZW5ndGgsST0wO0k8eTtJKyspdi5oZWFkZXJbSV0udG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKHYuaGVhZGVyW0ldLnRleHQsdi5oZWFkZXJbSV0udG9rZW5zKTtmb3IoeT12LnJvd3MubGVuZ3RoLEk9MDtJPHk7SSsrKWZvcih1ZT12LnJv''@;'; put 'put ''d3NbSV0sWj0wO1o8dWUubGVuZ3RoO1orKyl1ZVtaXS50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxpbmUodWVbWl0udGV4dCx1ZVtaXS50b2tlbnMpO3JldHVybiB2fX19bGhlYWRpbmcoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmJsb2NrLmxoZWFkaW5nLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17''@;'; put 'put ''dHlwZToiaGVhZGluZyIscmF3OmhbMF0sZGVwdGg6Ij0iPT09aFsyXS5jaGFyQXQoMCk/MToyLHRleHQ6aFsxXSx0b2tlbnM6W119O3JldHVybiB0aGlzLmxleGVyLmlubGluZSh2LnRleHQsdi50b2tlbnMpLHZ9fXBhcmFncmFwaChnKXtjb25zdCBoPXRoaXMucnVsZXMuYmxvY2sucGFyYWdy''@;'; put 'put ''YXBoLmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToicGFyYWdyYXBoIixyYXc6aFswXSx0ZXh0OiJcbiI9PT1oWzFdLmNoYXJBdChoWzFdLmxlbmd0aC0xKT9oWzFdLnNsaWNlKDAsLTEpOmhbMV0sdG9rZW5zOltdfTtyZXR1cm4gdGhpcy5sZXhlci5pbmxpbmUodi50ZXh0LHYudG9rZW5z''@;'; put 'put ''KSx2fX10ZXh0KGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5ibG9jay50ZXh0LmV4ZWMoZyk7aWYoaCl7Y29uc3Qgdj17dHlwZToidGV4dCIscmF3OmhbMF0sdGV4dDpoWzBdLHRva2VuczpbXX07cmV0dXJuIHRoaXMubGV4ZXIuaW5saW5lKHYudGV4dCx2LnRva2Vucyksdn19ZXNjYXBlKGcpe2Nv''@;'; put 'put ''bnN0IGg9dGhpcy5ydWxlcy5pbmxpbmUuZXNjYXBlLmV4ZWMoZyk7aWYoaClyZXR1cm57dHlwZToiZXNjYXBlIixyYXc6aFswXSx0ZXh0Om5mKGhbMV0pfX10YWcoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS50YWcuZXhlYyhnKTtpZihoKXJldHVybiF0aGlzLmxleGVyLnN0YXRlLmlu''@;'; put 'put ''TGluayYmL148YSAvaS50ZXN0KGhbMF0pP3RoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxcL2E+L2kudGVzdChoWzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSExKSwhdGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjwocHJl''@;'; put 'put ''fGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KGhbMF0pP3RoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePFwvKHByZXxjb2RlfGtiZHxzY3JpcHQpKFxzfD4pL2kudGVzdChoWzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5S''@;'; put 'put ''YXdCbG9jaz0hMSkse3R5cGU6dGhpcy5vcHRpb25zLnNhbml0aXplPyJ0ZXh0IjoiaHRtbCIscmF3OmhbMF0saW5MaW5rOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rLGluUmF3QmxvY2s6dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrLHRleHQ6dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMu''@;'; put 'put ''b3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcihoWzBdKTpuZihoWzBdKTpoWzBdfX1saW5rKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5pbmxpbmUubGluay5leGVjKGcpO2lmKGgpe2NvbnN0IHY9aFsyXS50cmltKCk7aWYoIXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmL148''@;'; put 'put ''Ly50ZXN0KHYpKXtpZighLz4kLy50ZXN0KHYpKXJldHVybjtjb25zdCBJPUdxKHYuc2xpY2UoMCwtMSksIlxcIik7aWYoKHYubGVuZ3RoLUkubGVuZ3RoKSUyPT0wKXJldHVybn1lbHNle2NvbnN0IEk9ZnVuY3Rpb24gYmplKGQsZyl7aWYoLTE9PT1kLmluZGV4T2YoZ1sxXSkpcmV0dXJuLTE7''@;'; put 'put ''Y29uc3QgaD1kLmxlbmd0aDtsZXQgdj0wLHk9MDtmb3IoO3k8aDt5KyspaWYoIlxcIj09PWRbeV0peSsrO2Vsc2UgaWYoZFt5XT09PWdbMF0pdisrO2Vsc2UgaWYoZFt5XT09PWdbMV0mJih2LS0sdjwwKSlyZXR1cm4geTtyZXR1cm4tMX0oaFsyXSwiKCkiKTtpZihJPi0xKXtjb25zdCB1ZT0o''@;'; put 'put ''MD09PWhbMF0uaW5kZXhPZigiISIpPzU6NCkraFsxXS5sZW5ndGgrSTtoWzJdPWhbMl0uc3Vic3RyaW5nKDAsSSksaFswXT1oWzBdLnN1YnN0cmluZygwLHVlKS50cmltKCksaFszXT0iIn19bGV0IHk9aFsyXSxDPSIiO2lmKHRoaXMub3B0aW9ucy5wZWRhbnRpYyl7Y29uc3QgST0vXihbXici''@;'; put 'put ''XSpbXlxzXSlccysoWyciXSkoLiopXDIvLmV4ZWMoeSk7SSYmKHk9SVsxXSxDPUlbM10pfWVsc2UgQz1oWzNdP2hbM10uc2xpY2UoMSwtMSk6IiI7cmV0dXJuIHk9eS50cmltKCksL148Ly50ZXN0KHkpJiYoeT10aGlzLm9wdGlvbnMucGVkYW50aWMmJiEvPiQvLnRlc3Qodik/eS5zbGljZSgx''@;'; put 'put ''KTp5LnNsaWNlKDEsLTEpKSxlYmUoaCx7aHJlZjp5JiZ5LnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIiksdGl0bGU6QyYmQy5yZXBsYWNlKHRoaXMucnVsZXMuaW5saW5lLl9lc2NhcGVzLCIkMSIpfSxoWzBdLHRoaXMubGV4ZXIpfX1yZWZsaW5rKGcsaCl7bGV0IHY7''@;'; put 'put ''aWYoKHY9dGhpcy5ydWxlcy5pbmxpbmUucmVmbGluay5leGVjKGcpKXx8KHY9dGhpcy5ydWxlcy5pbmxpbmUubm9saW5rLmV4ZWMoZykpKXtsZXQgeT0odlsyXXx8dlsxXSkucmVwbGFjZSgvXHMrL2csIiAiKTtpZih5PWhbeS50b0xvd2VyQ2FzZSgpXSwheXx8IXkuaHJlZil7Y29uc3QgQz12''@;'; put 'put ''WzBdLmNoYXJBdCgwKTtyZXR1cm57dHlwZToidGV4dCIscmF3OkMsdGV4dDpDfX1yZXR1cm4gZWJlKHYseSx2WzBdLHRoaXMubGV4ZXIpfX1lbVN0cm9uZyhnLGgsdj0iIil7bGV0IHk9dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcubERlbGltLmV4ZWMoZyk7aWYoIXl8fHlbM10mJnYubWF0''@;'; put 'put ''Y2goL1tccHtMfVxwe059XS91KSlyZXR1cm47Y29uc3QgQz15WzFdfHx5WzJdfHwiIjtpZighQ3x8QyYmKCIiPT09dnx8dGhpcy5ydWxlcy5pbmxpbmUucHVuY3R1YXRpb24uZXhlYyh2KSkpe2NvbnN0IEk9eVswXS5sZW5ndGgtMTtsZXQgWix1ZSxfZT1JLEJlPTA7Y29uc3QgTmU9IioiPT09''@;'; put 'put ''eVswXVswXT90aGlzLnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2ZvcihOZS5sYXN0SW5kZXg9MCxoPWguc2xpY2UoLTEqZy5sZW5ndGgrSSk7bnVsbCE9KHk9TmUuZXhlYyhoKSk7KXtpZihaPXlbMV18fHlbMl18''@;'; put 'put ''fHlbM118fHlbNF18fHlbNV18fHlbNl0sIVopY29udGludWU7aWYodWU9Wi5sZW5ndGgseVszXXx8eVs0XSl7X2UrPXVlO2NvbnRpbnVlfWlmKCh5WzVdfHx5WzZdKSYmSSUzJiYhKChJK3VlKSUzKSl7QmUrPXVlO2NvbnRpbnVlfWlmKF9lLT11ZSxfZT4wKWNvbnRpbnVlO2lmKHVlPU1hdGgu''@;'; put 'put ''bWluKHVlLHVlK19lK0JlKSxNYXRoLm1pbihJLHVlKSUyKXtjb25zdCBwdD1nLnNsaWNlKDEsSSt5LmluZGV4K3VlKTtyZXR1cm57dHlwZToiZW0iLHJhdzpnLnNsaWNlKDAsSSt5LmluZGV4K3VlKzEpLHRleHQ6cHQsdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKHB0LFtdKX19Y29u''@;'; put 'put ''c3QgS2U9Zy5zbGljZSgyLEkreS5pbmRleCt1ZS0xKTtyZXR1cm57dHlwZToic3Ryb25nIixyYXc6Zy5zbGljZSgwLEkreS5pbmRleCt1ZSsxKSx0ZXh0OktlLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhLZSxbXSl9fX19Y29kZXNwYW4oZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlu''@;'; put 'put ''bGluZS5jb2RlLmV4ZWMoZyk7aWYoaCl7bGV0IHY9aFsyXS5yZXBsYWNlKC9cbi9nLCIgIik7Y29uc3QgeT0vW14gXS8udGVzdCh2KSxDPS9eIC8udGVzdCh2KSYmLyAkLy50ZXN0KHYpO3JldHVybiB5JiZDJiYodj12LnN1YnN0cmluZygxLHYubGVuZ3RoLTEpKSx2PW5mKHYsITApLHt0eXBl''@;'; put 'put ''OiJjb2Rlc3BhbiIscmF3OmhbMF0sdGV4dDp2fX19YnIoZyl7Y29uc3QgaD10aGlzLnJ1bGVzLmlubGluZS5ici5leGVjKGcpO2lmKGgpcmV0dXJue3R5cGU6ImJyIixyYXc6aFswXX19ZGVsKGcpe2NvbnN0IGg9dGhpcy5ydWxlcy5pbmxpbmUuZGVsLmV4ZWMoZyk7aWYoaClyZXR1cm57dHlw''@;'; put 'put ''ZToiZGVsIixyYXc6aFswXSx0ZXh0OmhbMl0sdG9rZW5zOnRoaXMubGV4ZXIuaW5saW5lVG9rZW5zKGhbMl0sW10pfX1hdXRvbGluayhnLGgpe2NvbnN0IHY9dGhpcy5ydWxlcy5pbmxpbmUuYXV0b2xpbmsuZXhlYyhnKTtpZih2KXtsZXQgeSxDO3JldHVybiJAIj09PXZbMl0/KHk9bmYodGhp''@;'; put 'put ''cy5vcHRpb25zLm1hbmdsZT9oKHZbMV0pOnZbMV0pLEM9Im1haWx0bzoiK3kpOih5PW5mKHZbMV0pLEM9eSkse3R5cGU6ImxpbmsiLHJhdzp2WzBdLHRleHQ6eSxocmVmOkMsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OnksdGV4dDp5fV19fX11cmwoZyxoKXtsZXQgdjtpZih2PXRoaXMucnVs''@;'; put 'put ''ZXMuaW5saW5lLnVybC5leGVjKGcpKXtsZXQgeSxDO2lmKCJAIj09PXZbMl0peT1uZih0aGlzLm9wdGlvbnMubWFuZ2xlP2godlswXSk6dlswXSksQz0ibWFpbHRvOiIreTtlbHNle2xldCBJO2Rve0k9dlswXSx2WzBdPXRoaXMucnVsZXMuaW5saW5lLl9iYWNrcGVkYWwuZXhlYyh2WzBdKVsw''@;'; put 'put ''XX13aGlsZShJIT09dlswXSk7eT1uZih2WzBdKSxDPSJ3d3cuIj09PXZbMV0/Imh0dHA6Ly8iK3k6eX1yZXR1cm57dHlwZToibGluayIscmF3OnZbMF0sdGV4dDp5LGhyZWY6Qyx0b2tlbnM6W3t0eXBlOiJ0ZXh0IixyYXc6eSx0ZXh0Onl9XX19fWlubGluZVRleHQoZyxoKXtjb25zdCB2PXRo''@;'; put 'put ''aXMucnVsZXMuaW5saW5lLnRleHQuZXhlYyhnKTtpZih2KXtsZXQgeTtyZXR1cm4geT10aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2s/dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXplcih2WzBdKTpuZih2WzBdKTp2WzBd''@;'; put 'put ''Om5mKHRoaXMub3B0aW9ucy5zbWFydHlwYW50cz9oKHZbMF0pOnZbMF0pLHt0eXBlOiJ0ZXh0IixyYXc6dlswXSx0ZXh0Onl9fX19Y29uc3QgRmE9e25ld2xpbmU6L14oPzogKig/OlxufCQpKSsvLGNvZGU6L14oIHs0fVteXG5dKyg/OlxuKD86ICooPzpcbnwkKSkqKT8pKy8sZmVuY2VzOi9e''@;'; put 'put ''IHswLDN9KGB7Myx9KD89W15gXG5dKlxuKXx+ezMsfSkoW15cbl0qKVxuKD86fChbXHNcU10qPylcbikoPzogezAsM31cMVt+YF0qICooPz1cbnwkKXwkKS8saHI6L14gezAsM30oKD86LVtcdCBdKil7Myx9fCg/Ol9bIFx0XSopezMsfXwoPzpcKlsgXHRdKil7Myx9KSg/OlxuK3wkKS8saGVh''@;'; put 'put ''ZGluZzovXiB7MCwzfSgjezEsNn0pKD89XHN8JCkoLiopKD86XG4rfCQpLyxibG9ja3F1b3RlOi9eKCB7MCwzfT4gPyhwYXJhZ3JhcGh8W15cbl0qKSg/OlxufCQpKSsvLGxpc3Q6L14oIHswLDN9YnVsbCkoWyBcdF1bXlxuXSs/KT8oPzpcbnwkKS8saHRtbDoiXiB7MCwzfSg/Ojwoc2NyaXB0''@;'; put 'put ''fHByZXxzdHlsZXx0ZXh0YXJlYSlbXFxzPl1bXFxzXFxTXSo/KD86PC9cXDE+W15cXG5dKlxcbit8JCl8Y29tbWVudFteXFxuXSooXFxuK3wkKXw8XFw/W1xcc1xcU10qPyg/OlxcPz5cXG4qfCQpfDwhW0EtWl1bXFxzXFxTXSo/KD86Plxcbip8JCl8PCFcXFtDREFUQVxcW1tcXHNcXFNdKj8o''@;'; put 'put ''PzpcXF1cXF0+XFxuKnwkKXw8Lz8odGFnKSg/OiArfFxcbnwvPz4pW1xcc1xcU10qPyg/Oig/OlxcbiAqKStcXG58JCl8PCg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpKFthLXpdW1xcdy1dKikoPzphdHRyaWJ1dGUpKj8gKi8/Pig/PVsgXFx0XSooPzpcXG58JCkpW1xcc1xcU10qPyg/''@;'; put 'put ''Oig/OlxcbiAqKStcXG58JCl8PC8oPyFzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVthLXpdW1xcdy1dKlxccyo+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKSkiLGRlZjovXiB7MCwzfVxbKGxhYmVsKVxdOiAqKD86XG4gKik/PD8oW15ccz5dKyk+''@;'; put 'put ''Pyg/Oig/OiArKD86XG4gKik/fCAqXG4gKikodGl0bGUpKT8gKig/OlxuK3wkKS8sdGFibGU6enEsbGhlYWRpbmc6L14oW15cbl0rKVxuIHswLDN9KD0rfC0rKSAqKD86XG4rfCQpLyxfcGFyYWdyYXBoOi9eKFteXG5dKyg/OlxuKD8haHJ8aGVhZGluZ3xsaGVhZGluZ3xibG9ja3F1b3RlfGZl''@;'; put 'put ''bmNlc3xsaXN0fGh0bWx8dGFibGV8ICtcbilbXlxuXSspKikvLHRleHQ6L15bXlxuXSsvLF9sYWJlbDovKD8hXHMqXF0pKD86XFwufFteXFtcXVxcXSkrLyxfdGl0bGU6Lyg/OiIoPzpcXCI/fFteIlxcXSkqInwnW14nXG5dKig/OlxuW14nXG5dKykqXG4/J3xcKFteKCldKlwpKS99O0ZhLmRl''@;'; put 'put ''Zj1ZMihGYS5kZWYpLnJlcGxhY2UoImxhYmVsIixGYS5fbGFiZWwpLnJlcGxhY2UoInRpdGxlIixGYS5fdGl0bGUpLmdldFJlZ2V4KCksRmEuYnVsbGV0PS8oPzpbKistXXxcZHsxLDl9Wy4pXSkvLEZhLmxpc3RJdGVtU3RhcnQ9WTIoL14oICopKGJ1bGwpICovKS5yZXBsYWNlKCJidWxsIixG''@;'; put 'put ''YS5idWxsZXQpLmdldFJlZ2V4KCksRmEubGlzdD1ZMihGYS5saXN0KS5yZXBsYWNlKC9idWxsL2csRmEuYnVsbGV0KS5yZXBsYWNlKCJociIsIlxcbisoPz1cXDE/KD86KD86LSAqKXszLH18KD86XyAqKXszLH18KD86XFwqICopezMsfSkoPzpcXG4rfCQpKSIpLnJlcGxhY2UoImRlZiIsIlxc''@;'; put 'put ''bisoPz0iK0ZhLmRlZi5zb3VyY2UrIikiKS5nZXRSZWdleCgpLEZhLl90YWc9ImFkZHJlc3N8YXJ0aWNsZXxhc2lkZXxiYXNlfGJhc2Vmb250fGJsb2NrcXVvdGV8Ym9keXxjYXB0aW9ufGNlbnRlcnxjb2x8Y29sZ3JvdXB8ZGR8ZGV0YWlsc3xkaWFsb2d8ZGlyfGRpdnxkbHxkdHxmaWVsZHNl''@;'; put 'put ''dHxmaWdjYXB0aW9ufGZpZ3VyZXxmb290ZXJ8Zm9ybXxmcmFtZXxmcmFtZXNldHxoWzEtNl18aGVhZHxoZWFkZXJ8aHJ8aHRtbHxpZnJhbWV8bGVnZW5kfGxpfGxpbmt8bWFpbnxtZW51fG1lbnVpdGVtfG1ldGF8bmF2fG5vZnJhbWVzfG9sfG9wdGdyb3VwfG9wdGlvbnxwfHBhcmFtfHNlY3Rp''@;'; put 'put ''b258c291cmNlfHN1bW1hcnl8dGFibGV8dGJvZHl8dGR8dGZvb3R8dGh8dGhlYWR8dGl0bGV8dHJ8dHJhY2t8dWwiLEZhLl9jb21tZW50PS88IS0tKD8hLT8+KVtcc1xTXSo/KD86LS0+fCQpLyxGYS5odG1sPVkyKEZhLmh0bWwsImkiKS5yZXBsYWNlKCJjb21tZW50IixGYS5fY29tbWVudCku''@;'; put 'put ''cmVwbGFjZSgidGFnIixGYS5fdGFnKS5yZXBsYWNlKCJhdHRyaWJ1dGUiLC8gK1thLXpBLVo6X11bXHcuOi1dKig/OiAqPSAqIlteIlxuXSoifCAqPSAqJ1teJ1xuXSonfCAqPSAqW15ccyInPTw+YF0rKT8vKS5nZXRSZWdleCgpLEZhLnBhcmFncmFwaD1ZMihGYS5fcGFyYWdyYXBoKS5yZXBs''@;'; put 'put ''YWNlKCJociIsRmEuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgifHRhYmxlIiwiIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNlKCJmZW5jZXMiLCIgezAsM30oPzpgezMsfSg/PVte''@;'; put 'put ''YFxcbl0qXFxuKXx+ezMsfSlbXlxcbl0qXFxuIikucmVwbGFjZSgibGlzdCIsIiB7MCwzfSg/OlsqKy1dfDFbLildKSAiKS5yZXBsYWNlKCJodG1sIiwiPC8/KD86dGFnKSg/OiArfFxcbnwvPz4pfDwoPzpzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhfCEtLSkiKS5yZXBsYWNlKCJ0YWciLEZh''@;'; put 'put ''Ll90YWcpLmdldFJlZ2V4KCksRmEuYmxvY2txdW90ZT1ZMihGYS5ibG9ja3F1b3RlKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLEZhLnBhcmFncmFwaCkuZ2V0UmVnZXgoKSxGYS5ub3JtYWw9dzgoe30sRmEpLEZhLmdmbT13OCh7fSxGYS5ub3JtYWwse3RhYmxlOiJeICooW15cXG4gXS4qXFx8Liop''@;'; put 'put ''XFxuIHswLDN9KD86XFx8ICopPyg6Py0rOj8gKig/OlxcfCAqOj8tKzo/ICopKikoPzpcXHwgKik/KD86XFxuKCg/Oig/ISAqXFxufGhyfGhlYWRpbmd8YmxvY2txdW90ZXxjb2RlfGZlbmNlc3xsaXN0fGh0bWwpLiooPzpcXG58JCkpKilcXG4qfCQpIn0pLEZhLmdmbS50YWJsZT1ZMihGYS5n''@;'; put 'put ''Zm0udGFibGUpLnJlcGxhY2UoImhyIixGYS5ocikucmVwbGFjZSgiaGVhZGluZyIsIiB7MCwzfSN7MSw2fSAiKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImNvZGUiLCIgezR9W15cXG5dIikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBc''@;'; put 'put ''XG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixGYS5f''@;'; put 'put ''dGFnKS5nZXRSZWdleCgpLEZhLmdmbS5wYXJhZ3JhcGg9WTIoRmEuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLEZhLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJlcGxhY2UoInRhYmxlIixGYS5nZm0udGFibGUpLnJlcGxh''@;'; put 'put ''Y2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwvPyg/OnRhZykoPzog''@;'; put 'put ''K3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixGYS5fdGFnKS5nZXRSZWdleCgpLEZhLnBlZGFudGljPXc4KHt9LEZhLm5vcm1hbCx7aHRtbDpZMigiXiAqKD86Y29tbWVudCAqKD86XFxufFxccyokKXw8KHRhZylbXFxzXFxTXSs/''@;'; put 'put ''PC9cXDE+ICooPzpcXG57Mix9fFxccyokKXw8dGFnKD86XCJbXlwiXSpcInwnW14nXSonfFxcc1teJ1wiLz5cXHNdKikqPy8/PiAqKD86XFxuezIsfXxcXHMqJCkpIikucmVwbGFjZSgiY29tbWVudCIsRmEuX2NvbW1lbnQpLnJlcGxhY2UoL3RhZy9nLCIoPyEoPzphfGVtfHN0cm9uZ3xzbWFs''@;'; put 'put ''bHxzfGNpdGV8cXxkZm58YWJicnxkYXRhfHRpbWV8Y29kZXx2YXJ8c2FtcHxrYmR8c3VifHN1cHxpfGJ8dXxtYXJrfHJ1Ynl8cnR8cnB8YmRpfGJkb3xzcGFufGJyfHdicnxpbnN8ZGVsfGltZylcXGIpXFx3Kyg/ITp8W15cXHdcXHNAXSpAKVxcYiIpLmdldFJlZ2V4KCksZGVmOi9eICpcWyhb''@;'; put 'put ''XlxdXSspXF06ICo8PyhbXlxzPl0rKT4/KD86ICsoWyIoXVteXG5dK1siKV0pKT8gKig/OlxuK3wkKS8saGVhZGluZzovXigjezEsNn0pKC4qKSg/OlxuK3wkKS8sZmVuY2VzOnpxLHBhcmFncmFwaDpZMihGYS5ub3JtYWwuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLEZhLmhyKS5yZXBsYWNl''@;'; put 'put ''KCJoZWFkaW5nIiwiICojezEsNn0gKlteXG5dIikucmVwbGFjZSgibGhlYWRpbmciLEZhLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBsYWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgo''@;'; put 'put ''KX0pO2NvbnN0IFhvPXtlc2NhcGU6L15cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cc1x4MDAtXHgxZjw+XSp8ZW1haWwpPi8sdXJsOnpxLHRhZzoiXmNvbW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2Et''@;'; put 'put ''ekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iLGxpbms6L14hP1xbKGxhYmVsKVxdXChccyooaHJlZikoPzpccysodGl0bGUpKT9ccypc''@;'; put 'put ''KS8scmVmbGluazovXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vLG5vbGluazovXiE/XFsocmVmKVxdKD86XFtcXSk/LyxyZWZsaW5rU2VhcmNoOiJyZWZsaW5rfG5vbGluayg/IVxcKCkiLGVtU3Ryb25nOntsRGVsaW06L14oPzpcKisoPzooW3B1bmN0X10pfFteXHMqXSkpfF5fKyg/OihbcHVu''@;'; put 'put ''Y3QqXSl8KFteXHNfXSkpLyxyRGVsaW1Bc3Q6L15bXl8qXSo/XF9cX1teXypdKj9cKlteXypdKj8oPz1cX1xfKXxbXipdKyg/PVteKl0pfFtwdW5jdF9dKFwqKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcKispKD89W3B1bmN0X1xzXXwkKXxbcHVuY3RfXHNdKFwqKykoPz1bXnB1bmN0Kl9c''@;'; put 'put ''c10pfFtcc10oXCorKSg/PVtwdW5jdF9dKXxbcHVuY3RfXShcKispKD89W3B1bmN0X10pfFtecHVuY3QqX1xzXShcKispKD89W15wdW5jdCpfXHNdKS8sckRlbGltVW5kOi9eW15fKl0qP1wqXCpbXl8qXSo/XF9bXl8qXSo/KD89XCpcKil8W15fXSsoPz1bXl9dKXxbcHVuY3QqXShcXyspKD89''@;'; put 'put ''W1xzXXwkKXxbXnB1bmN0Kl9cc10oXF8rKSg/PVtwdW5jdCpcc118JCl8W3B1bmN0KlxzXShcXyspKD89W15wdW5jdCpfXHNdKXxbXHNdKFxfKykoPz1bcHVuY3QqXSl8W3B1bmN0Kl0oXF8rKSg/PVtwdW5jdCpdKS99LGNvZGU6L14oYCspKFteYF18W15gXVtcc1xTXSo/W15gXSlcMSg/IWAp''@;'; put 'put ''LyxicjovXiggezIsfXxcXClcbig/IVxzKiQpLyxkZWw6enEsdGV4dDovXihgK3xbXmBdKSg/Oig/PSB7Mix9XG4pfFtcc1xTXSo/KD86KD89W1xcPCFcW2AqX118XGJffCQpfFteIF0oPz0gezIsfVxuKSkpLyxwdW5jdHVhdGlvbjovXihbXHNwdW5jdHVhdGlvbl0pL307ZnVuY3Rpb24gQ2pl''@;'; put 'put ''KGQpe3JldHVybiBkLnJlcGxhY2UoLy0tLS9nLCJcdTIwMTQiKS5yZXBsYWNlKC8tLS9nLCJcdTIwMTMiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7IlxzXSknL2csIiQxXHUyMDE4IikucmVwbGFjZSgvJy9nLCJcdTIwMTkiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7XHUyMDE4XHNd''@;'; put 'put ''KSIvZywiJDFcdTIwMWMiKS5yZXBsYWNlKC8iL2csIlx1MjAxZCIpLnJlcGxhY2UoL1wuezN9L2csIlx1MjAyNiIpfWZ1bmN0aW9uIHRiZShkKXtsZXQgaCx2LGc9IiI7Y29uc3QgeT1kLmxlbmd0aDtmb3IoaD0wO2g8eTtoKyspdj1kLmNoYXJDb2RlQXQoaCksTWF0aC5yYW5kb20oKT4uNSYm''@;'; put 'put ''KHY9IngiK3YudG9TdHJpbmcoMTYpKSxnKz0iJiMiK3YrIjsiO3JldHVybiBnfVhvLl9wdW5jdHVhdGlvbj0iIVwiIyQlJicoKStcXC0uLC86Ozw9Pj9AXFxbXFxdYF57fH1+IixYby5wdW5jdHVhdGlvbj1ZMihYby5wdW5jdHVhdGlvbikucmVwbGFjZSgvcHVuY3R1YXRpb24vZyxYby5fcHVu''@;'; put 'put ''Y3R1YXRpb24pLmdldFJlZ2V4KCksWG8uYmxvY2tTa2lwPS9cW1teXF1dKj9cXVwoW15cKV0qP1wpfGBbXmBdKj9gfDxbXj5dKj8+L2csWG8uZXNjYXBlZEVtU3Q9L1xcXCp8XFxfL2csWG8uX2NvbW1lbnQ9WTIoRmEuX2NvbW1lbnQpLnJlcGxhY2UoIig/Oi0tXHgzZXwkKSIsIi0tXHgzZSIp''@;'; put 'put ''LmdldFJlZ2V4KCksWG8uZW1TdHJvbmcubERlbGltPVkyKFhvLmVtU3Ryb25nLmxEZWxpbSkucmVwbGFjZSgvcHVuY3QvZyxYby5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksWG8uZW1TdHJvbmcuckRlbGltQXN0PVkyKFhvLmVtU3Ryb25nLnJEZWxpbUFzdCwiZyIpLnJlcGxhY2UoL3B1bmN0''@;'; put 'put ''L2csWG8uX3B1bmN0dWF0aW9uKS5nZXRSZWdleCgpLFhvLmVtU3Ryb25nLnJEZWxpbVVuZD1ZMihYby5lbVN0cm9uZy5yRGVsaW1VbmQsImciKS5yZXBsYWNlKC9wdW5jdC9nLFhvLl9wdW5jdHVhdGlvbikuZ2V0UmVnZXgoKSxYby5fZXNjYXBlcz0vXFwoWyEiIyQlJicoKSorLFwtLi86Ozw9''@;'; put 'put ''Pj9AXFtcXVxcXl9ge3x9fl0pL2csWG8uX3NjaGVtZT0vW2EtekEtWl1bYS16QS1aMC05Ky4tXXsxLDMxfS8sWG8uX2VtYWlsPS9bYS16QS1aMC05LiEjJCUmJyorLz0/Xl9ge3x9fi1dKyhAKVthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPyg/OlwuW2EtekEt''@;'; put 'put ''WjAtOV0oPzpbYS16QS1aMC05LV17MCw2MX1bYS16QS1aMC05XSk/KSsoPyFbLV9dKS8sWG8uYXV0b2xpbms9WTIoWG8uYXV0b2xpbmspLnJlcGxhY2UoInNjaGVtZSIsWG8uX3NjaGVtZSkucmVwbGFjZSgiZW1haWwiLFhvLl9lbWFpbCkuZ2V0UmVnZXgoKSxYby5fYXR0cmlidXRlPS9ccytb''@;'; put 'put ''YS16QS1aOl9dW1x3LjotXSooPzpccyo9XHMqIlteIl0qInxccyo9XHMqJ1teJ10qJ3xccyo9XHMqW15ccyInPTw+YF0rKT8vLFhvLnRhZz1ZMihYby50YWcpLnJlcGxhY2UoImNvbW1lbnQiLFhvLl9jb21tZW50KS5yZXBsYWNlKCJhdHRyaWJ1dGUiLFhvLl9hdHRyaWJ1dGUpLmdldFJlZ2V4''@;'; put 'put ''KCksWG8uX2xhYmVsPS8oPzpcWyg/OlxcLnxbXlxbXF1cXF0pKlxdfFxcLnxgW15gXSpgfFteXFtcXVxcYF0pKj8vLFhvLl9ocmVmPS88KD86XFwufFteXG48PlxcXSkrPnxbXlxzXHgwMC1ceDFmXSovLFhvLl90aXRsZT0vIig/OlxcIj98W14iXFxdKSoifCcoPzpcXCc/fFteJ1xcXSkqJ3xc''@;'; put 'put ''KCg/OlxcXCk/fFteKVxcXSkqXCkvLFhvLmxpbms9WTIoWG8ubGluaykucmVwbGFjZSgibGFiZWwiLFhvLl9sYWJlbCkucmVwbGFjZSgiaHJlZiIsWG8uX2hyZWYpLnJlcGxhY2UoInRpdGxlIixYby5fdGl0bGUpLmdldFJlZ2V4KCksWG8ucmVmbGluaz1ZMihYby5yZWZsaW5rKS5yZXBsYWNl''@;'; put 'put ''KCJsYWJlbCIsWG8uX2xhYmVsKS5yZXBsYWNlKCJyZWYiLEZhLl9sYWJlbCkuZ2V0UmVnZXgoKSxYby5ub2xpbms9WTIoWG8ubm9saW5rKS5yZXBsYWNlKCJyZWYiLEZhLl9sYWJlbCkuZ2V0UmVnZXgoKSxYby5yZWZsaW5rU2VhcmNoPVkyKFhvLnJlZmxpbmtTZWFyY2gsImciKS5yZXBsYWNl''@;'; put 'put ''KCJyZWZsaW5rIixYby5yZWZsaW5rKS5yZXBsYWNlKCJub2xpbmsiLFhvLm5vbGluaykuZ2V0UmVnZXgoKSxYby5ub3JtYWw9dzgoe30sWG8pLFhvLnBlZGFudGljPXc4KHt9LFhvLm5vcm1hbCx7c3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMp''@;'; put 'put ''X18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFcKikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8h''@;'; put 'put ''XykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9nfSxsaW5rOlkyKC9eIT9cWyhsYWJlbClcXVwoKC4qPylcKS8pLnJlcGxhY2UoImxhYmVsIixYby5fbGFiZWwpLmdldFJlZ2V4KCkscmVmbGluazpZMigvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNl''@;'; put 'put ''KCJsYWJlbCIsWG8uX2xhYmVsKS5nZXRSZWdleCgpfSksWG8uZ2ZtPXc4KHt9LFhvLm5vcm1hbCx7ZXNjYXBlOlkyKFhvLmVzY2FwZSkucmVwbGFjZSgiXSkiLCJ+fF0pIikuZ2V0UmVnZXgoKSxfZXh0ZW5kZWRfZW1haWw6L1tBLVphLXowLTkuXystXSsoQClbYS16QS1aMC05LV9dKyg/Olwu''@;'; put 'put ''W2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpmdHB8aHR0cHM/KTpcL1wvfHd3d1wuKSg/OlthLXpBLVowLTlcLV0rXC4/KStbXlxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/IS4sOjsqX34oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTld''@;'; put 'put ''KzskKXxbPyEuLDo7Kl9+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0pKFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/''@;'; put 'put ''PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSksWG8uZ2ZtLnVybD1ZMihYby5nZm0udXJs''@;'; put 'put ''LCJpIikucmVwbGFjZSgiZW1haWwiLFhvLmdmbS5fZXh0ZW5kZWRfZW1haWwpLmdldFJlZ2V4KCksWG8uYnJlYWtzPXc4KHt9LFhvLmdmbSx7YnI6WTIoWG8uYnIpLnJlcGxhY2UoInsyLH0iLCIqIikuZ2V0UmVnZXgoKSx0ZXh0OlkyKFhvLmdmbS50ZXh0KS5yZXBsYWNlKCJcXGJfIiwiXFxi''@;'; put 'put ''X3wgezIsfVxcbiIpLnJlcGxhY2UoL1x7MixcfS9nLCIqIikuZ2V0UmVnZXgoKX0pO2NsYXNzIEN2e2NvbnN0cnVjdG9yKGcpe3RoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5zLmxpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5vcHRpb25zPWd8fGlPLHRoaXMub3B0aW9ucy50b2tlbml6''@;'; put 'put ''ZXI9dGhpcy5vcHRpb25zLnRva2VuaXplcnx8bmV3IE5oZSx0aGlzLnRva2VuaXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyLHRoaXMudG9rZW5pemVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudG9rZW5pemVyLmxleGVyPXRoaXMsdGhpcy5pbmxpbmVRdWV1ZT1bXSx0aGlzLnN0YXRl''@;'; put 'put ''PXtpbkxpbms6ITEsaW5SYXdCbG9jazohMSx0b3A6ITB9O2NvbnN0IGg9e2Jsb2NrOkZhLm5vcm1hbCxpbmxpbmU6WG8ubm9ybWFsfTt0aGlzLm9wdGlvbnMucGVkYW50aWM/KGguYmxvY2s9RmEucGVkYW50aWMsaC5pbmxpbmU9WG8ucGVkYW50aWMpOnRoaXMub3B0aW9ucy5nZm0mJihoLmJs''@;'; put 'put ''b2NrPUZhLmdmbSxoLmlubGluZT10aGlzLm9wdGlvbnMuYnJlYWtzP1hvLmJyZWFrczpYby5nZm0pLHRoaXMudG9rZW5pemVyLnJ1bGVzPWh9c3RhdGljIGdldCBydWxlcygpe3JldHVybntibG9jazpGYSxpbmxpbmU6WG99fXN0YXRpYyBsZXgoZyxoKXtyZXR1cm4gbmV3IEN2KGgpLmxleChn''@;'; put 'put ''KX1zdGF0aWMgbGV4SW5saW5lKGcsaCl7cmV0dXJuIG5ldyBDdihoKS5pbmxpbmVUb2tlbnMoZyl9bGV4KGcpe2xldCBoO2ZvcihnPWcucmVwbGFjZSgvXHJcbnxcci9nLCJcbiIpLHRoaXMuYmxvY2tUb2tlbnMoZyx0aGlzLnRva2Vucyk7aD10aGlzLmlubGluZVF1ZXVlLnNoaWZ0KCk7KXRo''@;'; put 'put ''aXMuaW5saW5lVG9rZW5zKGguc3JjLGgudG9rZW5zKTtyZXR1cm4gdGhpcy50b2tlbnN9YmxvY2tUb2tlbnMoZyxoPVtdKXtsZXQgdix5LEMsSTtmb3IoZz10aGlzLm9wdGlvbnMucGVkYW50aWM/Zy5yZXBsYWNlKC9cdC9nLCIgICAgIikucmVwbGFjZSgvXiArJC9nbSwiIik6Zy5yZXBsYWNl''@;'; put 'put ''KC9eKCAqKShcdCspL2dtLChaLHVlLF9lKT0+dWUrIiAgICAiLnJlcGVhdChfZS5sZW5ndGgpKTtnOylpZighKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5ibG9jayYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2suc29tZShaPT4hISh2PVou''@;'; put 'put ''Y2FsbCh7bGV4ZXI6dGhpc30sZyxoKSkmJihnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpLCEwKSkpKXtpZih2PXRoaXMudG9rZW5pemVyLnNwYWNlKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksMT09PXYucmF3Lmxlbmd0aCYmaC5sZW5ndGg+MD9oW2gubGVu''@;'; put 'put ''Z3RoLTFdLnJhdys9IlxuIjpoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5jb2RlKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCkseT1oW2gubGVuZ3RoLTFdLCF5fHwicGFyYWdyYXBoIiE9PXkudHlwZSYmInRleHQiIT09eS50eXBlP2gucHVzaCh2KTooeS5y''@;'; put 'put ''YXcrPSJcbiIrdi5yYXcseS50ZXh0Kz0iXG4iK3YudGV4dCx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz15LnRleHQpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuZmVuY2VzKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNo''@;'; put 'put ''KHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuaGVhZGluZyhnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmhyKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVl''@;'; put 'put ''fWlmKHY9dGhpcy50b2tlbml6ZXIuYmxvY2txdW90ZShnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmxpc3QoZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10''@;'; put 'put ''aGlzLnRva2VuaXplci5odG1sKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIuZGVmKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCkseT1oW2gubGVuZ3RoLTFdLCF5fHwicGFyYWdyYXBoIiE9PXkudHlw''@;'; put 'put ''ZSYmInRleHQiIT09eS50eXBlP3RoaXMudG9rZW5zLmxpbmtzW3YudGFnXXx8KHRoaXMudG9rZW5zLmxpbmtzW3YudGFnXT17aHJlZjp2LmhyZWYsdGl0bGU6di50aXRsZX0pOih5LnJhdys9IlxuIit2LnJhdyx5LnRleHQrPSJcbiIrdi5yYXcsdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGlu''@;'; put 'put ''ZVF1ZXVlLmxlbmd0aC0xXS5zcmM9eS50ZXh0KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLnRhYmxlKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIubGhlYWRpbmcoZykpe2c9Zy5zdWJzdHJpbmcodi5y''@;'; put 'put ''YXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYoQz1nLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydEJsb2NrKXtsZXQgWj0xLzA7Y29uc3QgdWU9Zy5zbGljZSgxKTtsZXQgX2U7dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRC''@;'; put 'put ''bG9jay5mb3JFYWNoKGZ1bmN0aW9uKEJlKXtfZT1CZS5jYWxsKHtsZXhlcjp0aGlzfSx1ZSksIm51bWJlciI9PXR5cGVvZiBfZSYmX2U+PTAmJihaPU1hdGgubWluKFosX2UpKX0pLFo8MS8wJiZaPj0wJiYoQz1nLnN1YnN0cmluZygwLForMSkpfWlmKHRoaXMuc3RhdGUudG9wJiYodj10aGlz''@;'; put 'put ''LnRva2VuaXplci5wYXJhZ3JhcGgoQykpKXt5PWhbaC5sZW5ndGgtMV0sSSYmInBhcmFncmFwaCI9PT15LnR5cGU/KHkucmF3Kz0iXG4iK3YucmF3LHkudGV4dCs9IlxuIit2LnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3AoKSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVu''@;'; put 'put ''Z3RoLTFdLnNyYz15LnRleHQpOmgucHVzaCh2KSxJPUMubGVuZ3RoIT09Zy5sZW5ndGgsZz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIudGV4dChnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLHk9aFtoLmxlbmd0aC0xXSx5JiYi''@;'; put 'put ''dGV4dCI9PT15LnR5cGU/KHkucmF3Kz0iXG4iK3YucmF3LHkudGV4dCs9IlxuIit2LnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3AoKSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz15LnRleHQpOmgucHVzaCh2KTtjb250aW51ZX1pZihnKXtjb25zdCBa''@;'; put 'put ''PSJJbmZpbml0ZSBsb29wIG9uIGJ5dGU6ICIrZy5jaGFyQ29kZUF0KDApO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpe2NvbnNvbGUuZXJyb3IoWik7YnJlYWt9dGhyb3cgbmV3IEVycm9yKFopfX1yZXR1cm4gdGhpcy5zdGF0ZS50b3A9ITAsaH1pbmxpbmUoZyxoKXt0aGlzLmlubGluZVF1ZXVl''@;'; put 'put ''LnB1c2goe3NyYzpnLHRva2VuczpofSl9aW5saW5lVG9rZW5zKGcsaD1bXSl7bGV0IHYseSxDLFosdWUsX2UsST1nO2lmKHRoaXMudG9rZW5zLmxpbmtzKXtjb25zdCBCZT1PYmplY3Qua2V5cyh0aGlzLnRva2Vucy5saW5rcyk7aWYoQmUubGVuZ3RoPjApZm9yKDtudWxsIT0oWj10aGlzLnRv''@;'; put 'put ''a2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5leGVjKEkpKTspQmUuaW5jbHVkZXMoWlswXS5zbGljZShaWzBdLmxhc3RJbmRleE9mKCJbIikrMSwtMSkpJiYoST1JLnNsaWNlKDAsWi5pbmRleCkrIlsiK3F3ZSgiYSIsWlswXS5sZW5ndGgtMikrIl0iK0kuc2xpY2UodGhpcy50''@;'; put 'put ''b2tlbml6ZXIucnVsZXMuaW5saW5lLnJlZmxpbmtTZWFyY2gubGFzdEluZGV4KSl9Zm9yKDtudWxsIT0oWj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmV4ZWMoSSkpOylJPUkuc2xpY2UoMCxaLmluZGV4KSsiWyIrcXdlKCJhIixaWzBdLmxlbmd0aC0yKSsiXSIrSS5z''@;'; put 'put ''bGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmxhc3RJbmRleCk7Zm9yKDtudWxsIT0oWj10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QuZXhlYyhJKSk7KUk9SS5zbGljZSgwLFouaW5kZXgpKyIrKyIrSS5zbGljZSh0aGlzLnRva2VuaXpl''@;'; put 'put ''ci5ydWxlcy5pbmxpbmUuZXNjYXBlZEVtU3QubGFzdEluZGV4KTtmb3IoO2c7KWlmKHVlfHwoX2U9IiIpLHVlPSExLCEodGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmlubGluZSYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuaW5saW5lLnNvbWUoQmU9''@;'; put 'put ''PiEhKHY9QmUuY2FsbCh7bGV4ZXI6dGhpc30sZyxoKSkmJihnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpLCEwKSkpKXtpZih2PXRoaXMudG9rZW5pemVyLmVzY2FwZShnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRo''@;'; put 'put ''aXMudG9rZW5pemVyLnRhZyhnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLHk9aFtoLmxlbmd0aC0xXSx5JiYidGV4dCI9PT12LnR5cGUmJiJ0ZXh0Ij09PXkudHlwZT8oeS5yYXcrPXYucmF3LHkudGV4dCs9di50ZXh0KTpoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2Vu''@;'; put 'put ''aXplci5saW5rKGcpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9dGhpcy50b2tlbml6ZXIucmVmbGluayhnLHRoaXMudG9rZW5zLmxpbmtzKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLHk9aFtoLmxlbmd0aC0xXSx5JiYidGV4dCI9''@;'; put 'put ''PT12LnR5cGUmJiJ0ZXh0Ij09PXkudHlwZT8oeS5yYXcrPXYucmF3LHkudGV4dCs9di50ZXh0KTpoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5lbVN0cm9uZyhnLEksX2UpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKHY9''@;'; put 'put ''dGhpcy50b2tlbml6ZXIuY29kZXNwYW4oZykpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSxoLnB1c2godik7Y29udGludWV9aWYodj10aGlzLnRva2VuaXplci5icihnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5p''@;'; put 'put ''emVyLmRlbChnKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZih2PXRoaXMudG9rZW5pemVyLmF1dG9saW5rKGcsdGJlKSl7Zz1nLnN1YnN0cmluZyh2LnJhdy5sZW5ndGgpLGgucHVzaCh2KTtjb250aW51ZX1pZighdGhpcy5zdGF0ZS5pbkxpbmsm''@;'; put 'put ''Jih2PXRoaXMudG9rZW5pemVyLnVybChnLHRiZSkpKXtnPWcuc3Vic3RyaW5nKHYucmF3Lmxlbmd0aCksaC5wdXNoKHYpO2NvbnRpbnVlfWlmKEM9Zyx0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUpe2xldCBCZT0xLzA7Y29uc3Qg''@;'; put 'put ''TmU9Zy5zbGljZSgxKTtsZXQgS2U7dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUuZm9yRWFjaChmdW5jdGlvbihwdCl7S2U9cHQuY2FsbCh7bGV4ZXI6dGhpc30sTmUpLCJudW1iZXIiPT10eXBlb2YgS2UmJktlPj0wJiYoQmU9TWF0aC5taW4oQmUsS2UpKX0pLEJlPDEvMCYm''@;'; put 'put ''QmU+PTAmJihDPWcuc3Vic3RyaW5nKDAsQmUrMSkpfWlmKHY9dGhpcy50b2tlbml6ZXIuaW5saW5lVGV4dChDLENqZSkpe2c9Zy5zdWJzdHJpbmcodi5yYXcubGVuZ3RoKSwiXyIhPT12LnJhdy5zbGljZSgtMSkmJihfZT12LnJhdy5zbGljZSgtMSkpLHVlPSEwLHk9aFtoLmxlbmd0aC0xXSx5''@;'; put 'put ''JiYidGV4dCI9PT15LnR5cGU/KHkucmF3Kz12LnJhdyx5LnRleHQrPXYudGV4dCk6aC5wdXNoKHYpO2NvbnRpbnVlfWlmKGcpe2NvbnN0IEJlPSJJbmZpbml0ZSBsb29wIG9uIGJ5dGU6ICIrZy5jaGFyQ29kZUF0KDApO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpe2NvbnNvbGUuZXJyb3IoQmUp''@;'; put 'put ''O2JyZWFrfXRocm93IG5ldyBFcnJvcihCZSl9fXJldHVybiBofX1jbGFzcyBTWntjb25zdHJ1Y3RvcihnKXt0aGlzLm9wdGlvbnM9Z3x8aU99Y29kZShnLGgsdil7Y29uc3QgeT0oaHx8IiIpLm1hdGNoKC9cUyovKVswXTtpZih0aGlzLm9wdGlvbnMuaGlnaGxpZ2h0KXtjb25zdCBDPXRoaXMu''@;'; put 'put ''b3B0aW9ucy5oaWdobGlnaHQoZyx5KTtudWxsIT1DJiZDIT09ZyYmKHY9ITAsZz1DKX1yZXR1cm4gZz1nLnJlcGxhY2UoL1xuJC8sIiIpKyJcbiIseT8nPHByZT48Y29kZSBjbGFzcz0iJyt0aGlzLm9wdGlvbnMubGFuZ1ByZWZpeCtuZih5LCEwKSsnIj4nKyh2P2c6bmYoZywhMCkpKyI8L2Nv''@;'; put 'put ''ZGU+PC9wcmU+XG4iOiI8cHJlPjxjb2RlPiIrKHY/ZzpuZihnLCEwKSkrIjwvY29kZT48L3ByZT5cbiJ9YmxvY2txdW90ZShnKXtyZXR1cm5gPGJsb2NrcXVvdGU+XG4ke2d9PC9ibG9ja3F1b3RlPlxuYH1odG1sKGcpe3JldHVybiBnfWhlYWRpbmcoZyxoLHYseSl7cmV0dXJuIHRoaXMub3B0''@;'; put 'put ''aW9ucy5oZWFkZXJJZHM/YDxoJHtofSBpZD0iJHt0aGlzLm9wdGlvbnMuaGVhZGVyUHJlZml4K3kuc2x1Zyh2KX0iPiR7Z308L2gke2h9PlxuYDpgPGgke2h9PiR7Z308L2gke2h9PlxuYH1ocigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifWxpc3QoZyxo''@;'; put 'put ''LHYpe2NvbnN0IHk9aD8ib2wiOiJ1bCI7cmV0dXJuIjwiK3krKGgmJjEhPT12Pycgc3RhcnQ9IicrdisnIic6IiIpKyI+XG4iK2crIjwvIit5KyI+XG4ifWxpc3RpdGVtKGcpe3JldHVybmA8bGk+JHtnfTwvbGk+XG5gfWNoZWNrYm94KGcpe3JldHVybiI8aW5wdXQgIisoZz8nY2hlY2tlZD0i''@;'; put 'put ''IiAnOiIiKSsnZGlzYWJsZWQ9IiIgdHlwZT0iY2hlY2tib3giJysodGhpcy5vcHRpb25zLnhodG1sPyIgLyI6IiIpKyI+ICJ9cGFyYWdyYXBoKGcpe3JldHVybmA8cD4ke2d9PC9wPlxuYH10YWJsZShnLGgpe3JldHVybiBoJiYoaD1gPHRib2R5PiR7aH08L3Rib2R5PmApLCI8dGFibGU+XG48''@;'; put 'put ''dGhlYWQ+XG4iK2crIjwvdGhlYWQ+XG4iK2grIjwvdGFibGU+XG4ifXRhYmxlcm93KGcpe3JldHVybmA8dHI+XG4ke2d9PC90cj5cbmB9dGFibGVjZWxsKGcsaCl7Y29uc3Qgdj1oLmhlYWRlcj8idGgiOiJ0ZCI7cmV0dXJuKGguYWxpZ24/YDwke3Z9IGFsaWduPSIke2guYWxpZ259Ij5gOmA8''@;'; put 'put ''JHt2fT5gKStnK2A8LyR7dn0+XG5gfXN0cm9uZyhnKXtyZXR1cm5gPHN0cm9uZz4ke2d9PC9zdHJvbmc+YH1lbShnKXtyZXR1cm5gPGVtPiR7Z308L2VtPmB9Y29kZXNwYW4oZyl7cmV0dXJuYDxjb2RlPiR7Z308L2NvZGU+YH1icigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxici8+''@;'; put 'put ''IjoiPGJyPiJ9ZGVsKGcpe3JldHVybmA8ZGVsPiR7Z308L2RlbD5gfWxpbmsoZyxoLHYpe2lmKG51bGw9PT0oZz1Yd2UodGhpcy5vcHRpb25zLnNhbml0aXplLHRoaXMub3B0aW9ucy5iYXNlVXJsLGcpKSlyZXR1cm4gdjtsZXQgeT0nPGEgaHJlZj0iJytuZihnKSsnIic7cmV0dXJuIGgmJih5''@;'; put 'put ''Kz0nIHRpdGxlPSInK2grJyInKSx5Kz0iPiIrdisiPC9hPiIseX1pbWFnZShnLGgsdil7aWYobnVsbD09PShnPVh3ZSh0aGlzLm9wdGlvbnMuc2FuaXRpemUsdGhpcy5vcHRpb25zLmJhc2VVcmwsZykpKXJldHVybiB2O2xldCB5PWA8aW1nIHNyYz0iJHtnfSIgYWx0PSIke3Z9ImA7cmV0dXJu''@;'; put 'put ''IGgmJih5Kz1gIHRpdGxlPSIke2h9ImApLHkrPXRoaXMub3B0aW9ucy54aHRtbD8iLz4iOiI+Iix5fXRleHQoZyl7cmV0dXJuIGd9fWNsYXNzIG5iZXtzdHJvbmcoZyl7cmV0dXJuIGd9ZW0oZyl7cmV0dXJuIGd9Y29kZXNwYW4oZyl7cmV0dXJuIGd9ZGVsKGcpe3JldHVybiBnfWh0bWwoZyl7''@;'; put 'put ''cmV0dXJuIGd9dGV4dChnKXtyZXR1cm4gZ31saW5rKGcsaCx2KXtyZXR1cm4iIit2fWltYWdlKGcsaCx2KXtyZXR1cm4iIit2fWJyKCl7cmV0dXJuIiJ9fWNsYXNzIHJiZXtjb25zdHJ1Y3Rvcigpe3RoaXMuc2Vlbj17fX1zZXJpYWxpemUoZyl7cmV0dXJuIGcudG9Mb3dlckNhc2UoKS50cmlt''@;'; put 'put ''KCkucmVwbGFjZSgvPFshXC9hLXpdLio/Pi9naSwiIikucmVwbGFjZSgvW1x1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGXFwnISIjJCUmKCkqKywuLzo7PD0+P0BbXF1eYHt8fX5dL2csIiIpLnJlcGxhY2UoL1xzL2csIi0iKX1nZXROZXh0U2FmZVNsdWcoZyxoKXtsZXQgdj1nLHk9MDtpZih0''@;'; put 'put ''aGlzLnNlZW4uaGFzT3duUHJvcGVydHkodikpe3k9dGhpcy5zZWVuW2ddO2Rve3krKyx2PWcrIi0iK3l9d2hpbGUodGhpcy5zZWVuLmhhc093blByb3BlcnR5KHYpKX1yZXR1cm4gaHx8KHRoaXMuc2VlbltnXT15LHRoaXMuc2Vlblt2XT0wKSx2fXNsdWcoZyxoPXt9KXtjb25zdCB2PXRoaXMu''@;'; put 'put ''c2VyaWFsaXplKGcpO3JldHVybiB0aGlzLmdldE5leHRTYWZlU2x1Zyh2LGguZHJ5cnVuKX19Y2xhc3Mga3Z7Y29uc3RydWN0b3IoZyl7dGhpcy5vcHRpb25zPWd8fGlPLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyBTWix0aGlzLnJlbmRlcmVyPXRo''@;'; put 'put ''aXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyBuYmUsdGhpcy5zbHVnZ2VyPW5ldyByYmV9c3RhdGljIHBhcnNlKGcsaCl7cmV0dXJuIG5ldyBrdihoKS5wYXJzZShnKX1zdGF0aWMgcGFyc2VJbmxpbmUo''@;'; put 'put ''ZyxoKXtyZXR1cm4gbmV3IGt2KGgpLnBhcnNlSW5saW5lKGcpfXBhcnNlKGcsaD0hMCl7bGV0IHksQyxJLFosdWUsX2UsQmUsTmUsS2UscHQsT3QsJHQsZm4sTG4saXIsbXIsU3Isd3IsUXIsdj0iIjtjb25zdCB5aT1nLmxlbmd0aDtmb3IoeT0wO3k8eWk7eSsrKWlmKHB0PWdbeV0sdGhpcy5v''@;'; put 'put ''cHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW3B0LnR5cGVdJiYoUXI9dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW3B0LnR5cGVdLmNhbGwoe3BhcnNlcjp0aGlzfSxw''@;'; put 'put ''dCksITEhPT1Rcnx8IVsic3BhY2UiLCJociIsImhlYWRpbmciLCJjb2RlIiwidGFibGUiLCJibG9ja3F1b3RlIiwibGlzdCIsImh0bWwiLCJwYXJhZ3JhcGgiLCJ0ZXh0Il0uaW5jbHVkZXMocHQudHlwZSkpKXYrPVFyfHwiIjtlbHNlIHN3aXRjaChwdC50eXBlKXtjYXNlInNwYWNlIjpjb250''@;'; put 'put ''aW51ZTtjYXNlImhyIjp2Kz10aGlzLnJlbmRlcmVyLmhyKCk7Y29udGludWU7Y2FzZSJoZWFkaW5nIjp2Kz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShwdC50b2tlbnMpLHB0LmRlcHRoLEp3ZSh0aGlzLnBhcnNlSW5saW5lKHB0LnRva2Vucyx0aGlzLnRleHRSZW5k''@;'; put 'put ''ZXJlcikpLHRoaXMuc2x1Z2dlcik7Y29udGludWU7Y2FzZSJjb2RlIjp2Kz10aGlzLnJlbmRlcmVyLmNvZGUocHQudGV4dCxwdC5sYW5nLHB0LmVzY2FwZWQpO2NvbnRpbnVlO2Nhc2UidGFibGUiOmZvcihOZT0iIixCZT0iIixaPXB0LmhlYWRlci5sZW5ndGgsQz0wO0M8WjtDKyspQmUrPXRo''@;'; put 'put ''aXMucmVuZGVyZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUocHQuaGVhZGVyW0NdLnRva2Vucykse2hlYWRlcjohMCxhbGlnbjpwdC5hbGlnbltDXX0pO2ZvcihOZSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhCZSksS2U9IiIsWj1wdC5yb3dzLmxlbmd0aCxDPTA7QzxaO0MrKyl7Zm9y''@;'; put 'put ''KF9lPXB0LnJvd3NbQ10sQmU9IiIsdWU9X2UubGVuZ3RoLEk9MDtJPHVlO0krKylCZSs9dGhpcy5yZW5kZXJlci50YWJsZWNlbGwodGhpcy5wYXJzZUlubGluZShfZVtJXS50b2tlbnMpLHtoZWFkZXI6ITEsYWxpZ246cHQuYWxpZ25bSV19KTtLZSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhC''@;'; put 'put ''ZSl9dis9dGhpcy5yZW5kZXJlci50YWJsZShOZSxLZSk7Y29udGludWU7Y2FzZSJibG9ja3F1b3RlIjpLZT10aGlzLnBhcnNlKHB0LnRva2Vucyksdis9dGhpcy5yZW5kZXJlci5ibG9ja3F1b3RlKEtlKTtjb250aW51ZTtjYXNlImxpc3QiOmZvcihPdD1wdC5vcmRlcmVkLCR0PXB0LnN0YXJ0''@;'; put 'put ''LGZuPXB0Lmxvb3NlLFo9cHQuaXRlbXMubGVuZ3RoLEtlPSIiLEM9MDtDPFo7QysrKWlyPXB0Lml0ZW1zW0NdLG1yPWlyLmNoZWNrZWQsU3I9aXIudGFzayxMbj0iIixpci50YXNrJiYod3I9dGhpcy5yZW5kZXJlci5jaGVja2JveChtciksZm4/aXIudG9rZW5zLmxlbmd0aD4wJiYicGFyYWdy''@;'; put 'put ''YXBoIj09PWlyLnRva2Vuc1swXS50eXBlPyhpci50b2tlbnNbMF0udGV4dD13cisiICIraXIudG9rZW5zWzBdLnRleHQsaXIudG9rZW5zWzBdLnRva2VucyYmaXIudG9rZW5zWzBdLnRva2Vucy5sZW5ndGg+MCYmInRleHQiPT09aXIudG9rZW5zWzBdLnRva2Vuc1swXS50eXBlJiYoaXIudG9r''@;'; put 'put ''ZW5zWzBdLnRva2Vuc1swXS50ZXh0PXdyKyIgIitpci50b2tlbnNbMF0udG9rZW5zWzBdLnRleHQpKTppci50b2tlbnMudW5zaGlmdCh7dHlwZToidGV4dCIsdGV4dDp3cn0pOkxuKz13ciksTG4rPXRoaXMucGFyc2UoaXIudG9rZW5zLGZuKSxLZSs9dGhpcy5yZW5kZXJlci5saXN0aXRlbShM''@;'; put 'put ''bixTcixtcik7dis9dGhpcy5yZW5kZXJlci5saXN0KEtlLE90LCR0KTtjb250aW51ZTtjYXNlImh0bWwiOnYrPXRoaXMucmVuZGVyZXIuaHRtbChwdC50ZXh0KTtjb250aW51ZTtjYXNlInBhcmFncmFwaCI6dis9dGhpcy5yZW5kZXJlci5wYXJhZ3JhcGgodGhpcy5wYXJzZUlubGluZShwdC50''@;'; put 'put ''b2tlbnMpKTtjb250aW51ZTtjYXNlInRleHQiOmZvcihLZT1wdC50b2tlbnM/dGhpcy5wYXJzZUlubGluZShwdC50b2tlbnMpOnB0LnRleHQ7eSsxPHlpJiYidGV4dCI9PT1nW3krMV0udHlwZTspcHQ9Z1srK3ldLEtlKz0iXG4iKyhwdC50b2tlbnM/dGhpcy5wYXJzZUlubGluZShwdC50b2tl''@;'; put 'put ''bnMpOnB0LnRleHQpO3YrPWg/dGhpcy5yZW5kZXJlci5wYXJhZ3JhcGgoS2UpOktlO2NvbnRpbnVlO2RlZmF1bHQ6e2NvbnN0IEtpPSdUb2tlbiB3aXRoICInK3B0LnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xl''@;'; put 'put ''LmVycm9yKEtpKTt0aHJvdyBuZXcgRXJyb3IoS2kpfX1yZXR1cm4gdn1wYXJzZUlubGluZShnLGgpe2g9aHx8dGhpcy5yZW5kZXJlcjtsZXQgeSxDLEksdj0iIjtjb25zdCBaPWcubGVuZ3RoO2Zvcih5PTA7eTxaO3krKylpZihDPWdbeV0sdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMu''@;'; put 'put ''b3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW0MudHlwZV0mJihJPXRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1tDLnR5cGVdLmNhbGwoe3BhcnNlcjp0aGlzfSxDKSwhMSE9PUl8fCFbImVzY2FwZSIsImh0bWwi''@;'; put 'put ''LCJsaW5rIiwiaW1hZ2UiLCJzdHJvbmciLCJlbSIsImNvZGVzcGFuIiwiYnIiLCJkZWwiLCJ0ZXh0Il0uaW5jbHVkZXMoQy50eXBlKSkpdis9SXx8IiI7ZWxzZSBzd2l0Y2goQy50eXBlKXtjYXNlImVzY2FwZSI6Y2FzZSJ0ZXh0Ijp2Kz1oLnRleHQoQy50ZXh0KTticmVhaztjYXNlImh0bWwi''@;'; put 'put ''OnYrPWguaHRtbChDLnRleHQpO2JyZWFrO2Nhc2UibGluayI6dis9aC5saW5rKEMuaHJlZixDLnRpdGxlLHRoaXMucGFyc2VJbmxpbmUoQy50b2tlbnMsaCkpO2JyZWFrO2Nhc2UiaW1hZ2UiOnYrPWguaW1hZ2UoQy5ocmVmLEMudGl0bGUsQy50ZXh0KTticmVhaztjYXNlInN0cm9uZyI6dis9''@;'; put 'put ''aC5zdHJvbmcodGhpcy5wYXJzZUlubGluZShDLnRva2VucyxoKSk7YnJlYWs7Y2FzZSJlbSI6dis9aC5lbSh0aGlzLnBhcnNlSW5saW5lKEMudG9rZW5zLGgpKTticmVhaztjYXNlImNvZGVzcGFuIjp2Kz1oLmNvZGVzcGFuKEMudGV4dCk7YnJlYWs7Y2FzZSJiciI6dis9aC5icigpO2JyZWFr''@;'; put 'put ''O2Nhc2UiZGVsIjp2Kz1oLmRlbCh0aGlzLnBhcnNlSW5saW5lKEMudG9rZW5zLGgpKTticmVhaztkZWZhdWx0Ontjb25zdCB1ZT0nVG9rZW4gd2l0aCAiJytDLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVy''@;'; put 'put ''cm9yKHVlKTt0aHJvdyBuZXcgRXJyb3IodWUpfX1yZXR1cm4gdn19ZnVuY3Rpb24gZWwoZCxnLGgpe2lmKG51bGw9PWQpdGhyb3cgbmV3IEVycm9yKCJtYXJrZWQoKTogaW5wdXQgcGFyYW1ldGVyIGlzIHVuZGVmaW5lZCBvciBudWxsIik7aWYoInN0cmluZyIhPXR5cGVvZiBkKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyBvZiB0eXBlICIrT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpKyIsIHN0cmluZyBleHBlY3RlZCIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBnJiYoaD1nLGc9bnVsbCksJHdlKGc9dzgoe30sZWwuZGVmYXVsdHMs''@;'; put 'put ''Z3x8e30pKSxoKXtjb25zdCB2PWcuaGlnaGxpZ2h0O2xldCB5O3RyeXt5PUN2LmxleChkLGcpfWNhdGNoKFope3JldHVybiBoKFopfWNvbnN0IEM9ZnVuY3Rpb24oWil7bGV0IHVlO2lmKCFaKXRyeXtnLndhbGtUb2tlbnMmJmVsLndhbGtUb2tlbnMoeSxnLndhbGtUb2tlbnMpLHVlPWt2LnBh''@;'; put 'put ''cnNlKHksZyl9Y2F0Y2goX2Upe1o9X2V9cmV0dXJuIGcuaGlnaGxpZ2h0PXYsWj9oKFopOmgobnVsbCx1ZSl9O2lmKCF2fHx2Lmxlbmd0aDwzfHwoZGVsZXRlIGcuaGlnaGxpZ2h0LCF5Lmxlbmd0aCkpcmV0dXJuIEMoKTtsZXQgST0wO3JldHVybiBlbC53YWxrVG9rZW5zKHksZnVuY3Rpb24o''@;'; put 'put ''Wil7ImNvZGUiPT09Wi50eXBlJiYoSSsrLHNldFRpbWVvdXQoKCk9Pnt2KFoudGV4dCxaLmxhbmcsZnVuY3Rpb24odWUsX2Upe2lmKHVlKXJldHVybiBDKHVlKTtudWxsIT1fZSYmX2UhPT1aLnRleHQmJihaLnRleHQ9X2UsWi5lc2NhcGVkPSEwKSxJLS0sMD09PUkmJkMoKX0pfSwwKSl9KSx2''@;'; put 'put ''b2lkKDA9PT1JJiZDKCkpfXRyeXtjb25zdCB2PUN2LmxleChkLGcpO3JldHVybiBnLndhbGtUb2tlbnMmJmVsLndhbGtUb2tlbnModixnLndhbGtUb2tlbnMpLGt2LnBhcnNlKHYsZyl9Y2F0Y2godil7aWYodi5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRo''@;'; put 'put ''dWIuY29tL21hcmtlZGpzL21hcmtlZC4iLGcuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK25mKHYubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgdn19ZWwub3B0aW9ucz1lbC5zZXRPcHRpb25zPWZ1bmN0aW9uKGQpe3JldHVybiB3OChlbC5kZWZh''@;'; put 'put ''dWx0cyxkKSxmdW5jdGlvbiBsamUoZCl7aU89ZH0oZWwuZGVmYXVsdHMpLGVsfSxlbC5nZXREZWZhdWx0cz1mdW5jdGlvbiBVd2UoKXtyZXR1cm57YmFzZVVybDpudWxsLGJyZWFrczohMSxleHRlbnNpb25zOm51bGwsZ2ZtOiEwLGhlYWRlcklkczohMCxoZWFkZXJQcmVmaXg6IiIsaGlnaGxp''@;'; put 'put ''Z2h0Om51bGwsbGFuZ1ByZWZpeDoibGFuZ3VhZ2UtIixtYW5nbGU6ITAscGVkYW50aWM6ITEscmVuZGVyZXI6bnVsbCxzYW5pdGl6ZTohMSxzYW5pdGl6ZXI6bnVsbCxzaWxlbnQ6ITEsc21hcnRMaXN0czohMSxzbWFydHlwYW50czohMSx0b2tlbml6ZXI6bnVsbCx3YWxrVG9rZW5zOm51bGws''@;'; put 'put ''eGh0bWw6ITF9fSxlbC5kZWZhdWx0cz1pTyxlbC51c2U9ZnVuY3Rpb24oLi4uZCl7Y29uc3QgZz13OCh7fSwuLi5kKSxoPWVsLmRlZmF1bHRzLmV4dGVuc2lvbnN8fHtyZW5kZXJlcnM6e30sY2hpbGRUb2tlbnM6e319O2xldCB2O2QuZm9yRWFjaCh5PT57aWYoeS5leHRlbnNpb25zJiYodj0h''@;'; put 'put ''MCx5LmV4dGVuc2lvbnMuZm9yRWFjaChDPT57aWYoIUMubmFtZSl0aHJvdyBuZXcgRXJyb3IoImV4dGVuc2lvbiBuYW1lIHJlcXVpcmVkIik7aWYoQy5yZW5kZXJlcil7Y29uc3QgST1oLnJlbmRlcmVycz9oLnJlbmRlcmVyc1tDLm5hbWVdOm51bGw7aC5yZW5kZXJlcnNbQy5uYW1lXT1JP2Z1''@;'; put 'put ''bmN0aW9uKC4uLlope2xldCB1ZT1DLnJlbmRlcmVyLmFwcGx5KHRoaXMsWik7cmV0dXJuITE9PT11ZSYmKHVlPUkuYXBwbHkodGhpcyxaKSksdWV9OkMucmVuZGVyZXJ9aWYoQy50b2tlbml6ZXIpe2lmKCFDLmxldmVsfHwiYmxvY2siIT09Qy5sZXZlbCYmImlubGluZSIhPT1DLmxldmVsKXRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigiZXh0ZW5zaW9uIGxldmVsIG11c3QgYmUgJ2Jsb2NrJyBvciAnaW5saW5lJyIpO2hbQy5sZXZlbF0/aFtDLmxldmVsXS51bnNoaWZ0KEMudG9rZW5pemVyKTpoW0MubGV2ZWxdPVtDLnRva2VuaXplcl0sQy5zdGFydCYmKCJibG9jayI9PT1DLmxldmVsP2guc3RhcnRC''@;'; put 'put ''bG9jaz9oLnN0YXJ0QmxvY2sucHVzaChDLnN0YXJ0KTpoLnN0YXJ0QmxvY2s9W0Muc3RhcnRdOiJpbmxpbmUiPT09Qy5sZXZlbCYmKGguc3RhcnRJbmxpbmU/aC5zdGFydElubGluZS5wdXNoKEMuc3RhcnQpOmguc3RhcnRJbmxpbmU9W0Muc3RhcnRdKSl9Qy5jaGlsZFRva2VucyYmKGguY2hp''@;'; put 'put ''bGRUb2tlbnNbQy5uYW1lXT1DLmNoaWxkVG9rZW5zKX0pKSx5LnJlbmRlcmVyKXtjb25zdCBDPWVsLmRlZmF1bHRzLnJlbmRlcmVyfHxuZXcgU1o7Zm9yKGNvbnN0IEkgaW4geS5yZW5kZXJlcil7Y29uc3QgWj1DW0ldO0NbSV09KC4uLnVlKT0+e2xldCBfZT15LnJlbmRlcmVyW0ldLmFwcGx5''@;'; put 'put ''KEMsdWUpO3JldHVybiExPT09X2UmJihfZT1aLmFwcGx5KEMsdWUpKSxfZX19Zy5yZW5kZXJlcj1DfWlmKHkudG9rZW5pemVyKXtjb25zdCBDPWVsLmRlZmF1bHRzLnRva2VuaXplcnx8bmV3IE5oZTtmb3IoY29uc3QgSSBpbiB5LnRva2VuaXplcil7Y29uc3QgWj1DW0ldO0NbSV09KC4uLnVl''@;'; put 'put ''KT0+e2xldCBfZT15LnRva2VuaXplcltJXS5hcHBseShDLHVlKTtyZXR1cm4hMT09PV9lJiYoX2U9Wi5hcHBseShDLHVlKSksX2V9fWcudG9rZW5pemVyPUN9aWYoeS53YWxrVG9rZW5zKXtjb25zdCBDPWVsLmRlZmF1bHRzLndhbGtUb2tlbnM7Zy53YWxrVG9rZW5zPWZ1bmN0aW9uKEkpe3ku''@;'; put 'put ''d2Fsa1Rva2Vucy5jYWxsKHRoaXMsSSksQyYmQy5jYWxsKHRoaXMsSSl9fXYmJihnLmV4dGVuc2lvbnM9aCksZWwuc2V0T3B0aW9ucyhnKX0pfSxlbC53YWxrVG9rZW5zPWZ1bmN0aW9uKGQsZyl7Zm9yKGNvbnN0IGggb2YgZClzd2l0Y2goZy5jYWxsKGVsLGgpLGgudHlwZSl7Y2FzZSJ0YWJs''@;'; put 'put ''ZSI6Zm9yKGNvbnN0IHYgb2YgaC5oZWFkZXIpZWwud2Fsa1Rva2Vucyh2LnRva2VucyxnKTtmb3IoY29uc3QgdiBvZiBoLnJvd3MpZm9yKGNvbnN0IHkgb2YgdillbC53YWxrVG9rZW5zKHkudG9rZW5zLGcpO2JyZWFrO2Nhc2UibGlzdCI6ZWwud2Fsa1Rva2VucyhoLml0ZW1zLGcpO2JyZWFr''@;'; put 'put ''O2RlZmF1bHQ6ZWwuZGVmYXVsdHMuZXh0ZW5zaW9ucyYmZWwuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2VucyYmZWwuZGVmYXVsdHMuZXh0ZW5zaW9ucy5jaGlsZFRva2Vuc1toLnR5cGVdP2VsLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnNbaC50eXBlXS5mb3JFYWNoKGZ1''@;'; put 'put ''bmN0aW9uKHYpe2VsLndhbGtUb2tlbnMoaFt2XSxnKX0pOmgudG9rZW5zJiZlbC53YWxrVG9rZW5zKGgudG9rZW5zLGcpfX0sZWwucGFyc2VJbmxpbmU9ZnVuY3Rpb24oZCxnKXtpZihudWxsPT1kKXRocm93IG5ldyBFcnJvcigibWFya2VkLnBhcnNlSW5saW5lKCk6IGlucHV0IHBhcmFtZXRl''@;'; put 'put ''ciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgZCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZC5wYXJzZUlubGluZSgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKSsiLCBzdHJpbmcgZXhwZWN0''@;'; put 'put ''ZWQiKTskd2UoZz13OCh7fSxlbC5kZWZhdWx0cyxnfHx7fSkpO3RyeXtjb25zdCBoPUN2LmxleElubGluZShkLGcpO3JldHVybiBnLndhbGtUb2tlbnMmJmVsLndhbGtUb2tlbnMoaCxnLndhbGtUb2tlbnMpLGt2LnBhcnNlSW5saW5lKGgsZyl9Y2F0Y2goaCl7aWYoaC5tZXNzYWdlKz0iXG5Q''@;'; put 'put ''bGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLGcuc2lsZW50KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK25mKGgubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgaH19LGVsLlBhcnNlcj1rdixlbC5wYXJz''@;'; put 'put ''ZXI9a3YucGFyc2UsZWwuUmVuZGVyZXI9U1osZWwuVGV4dFJlbmRlcmVyPW5iZSxlbC5MZXhlcj1DdixlbC5sZXhlcj1Ddi5sZXgsZWwuVG9rZW5pemVyPU5oZSxlbC5TbHVnZ2VyPXJiZSxlbC5wYXJzZT1lbDtjb25zdCBramU9WyIqIl07bGV0IFZoZT0oKCk9PntjbGFzcyBke2NvbnN0cnVj''@;'; put 'put ''dG9yKCl7dGhpcy5fYnV0dG9uQ2xpY2skPW5ldyAkZSx0aGlzLmNvcGllZCQ9dGhpcy5fYnV0dG9uQ2xpY2skLnBpcGUoWWgoKCk9Pm5yKGFhKCEwKSxmdW5jdGlvbiByamUoZD0wLGcsaCl7bGV0IHY9LTE7cmV0dXJuIFl3ZShnKT92PU51bWJlcihnKTwxPzE6TnVtYmVyKGcpOnd0KGcpJiYo''@;'; put 'put ''aD1nKSx3dChoKXx8KGg9cFYpLG5ldyBGKHk9Pntjb25zdCBDPVl3ZShkKT9kOitkLWgubm93KCk7cmV0dXJuIGguc2NoZWR1bGUoaWplLEMse2luZGV4OjAscGVyaW9kOnYsc3Vic2NyaWJlcjp5fSl9KX0oM2UzKS5waXBlKEc1KCExKSkpKSxmdW5jdGlvbiBBWChkLGcpe3JldHVybiBoPT5o''@;'; put 'put ''LmxpZnQobmV3IFlzZShkLGcpKX0oKSxmdW5jdGlvbiBvamUoZCxnLGgpe2xldCB2O3JldHVybiB2PWQmJiJvYmplY3QiPT10eXBlb2YgZD9kOntidWZmZXJTaXplOmQsd2luZG93VGltZTpnLHJlZkNvdW50OiExLHNjaGVkdWxlcjpofSx5PT55LmxpZnQoZnVuY3Rpb24gYWplKHtidWZmZXJT''@;'; put 'put ''aXplOmQ9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHdpbmRvd1RpbWU6Zz1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkscmVmQ291bnQ6aCxzY2hlZHVsZXI6dn0pe2xldCB5LEksQz0wLFo9ITEsdWU9ITE7cmV0dXJuIGZ1bmN0aW9uKEJlKXtsZXQgTmU7QysrLCF5fHxaPyhaPSExLHk9bmV3''@;'; put 'put ''IHhrKGQsZyx2KSxOZT15LnN1YnNjcmliZSh0aGlzKSxJPUJlLnN1YnNjcmliZSh7bmV4dChLZSl7eS5uZXh0KEtlKX0sZXJyb3IoS2Upe1o9ITAseS5lcnJvcihLZSl9LGNvbXBsZXRlKCl7dWU9ITAsST12b2lkIDAseS5jb21wbGV0ZSgpfX0pLHVlJiYoST12b2lkIDApKTpOZT15LnN1YnNj''@;'; put 'put ''cmliZSh0aGlzKSx0aGlzLmFkZCgoKT0+e0MtLSxOZS51bnN1YnNjcmliZSgpLE5lPXZvaWQgMCxJJiYhdWUmJmgmJjA9PT1DJiYoSS51bnN1YnNjcmliZSgpLEk9dm9pZCAwLHk9dm9pZCAwKX0pfX0odikpfSgxKSksdGhpcy5jb3BpZWRUZXh0JD10aGlzLmNvcGllZCQucGlwZShONSghMSks''@;'; put 'put ''bXQoaD0+aD8iQ29waWVkIjoiQ29weSIpKX1vbkNvcHlUb0NsaXBib2FyZENsaWNrKCl7dGhpcy5fYnV0dG9uQ2xpY2skLm5leHQoKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm1h''@;'; put 'put ''cmtkb3duLWNsaXBib2FyZCJdXSxkZWNsczo0LHZhcnM6Nyxjb25zdHM6W1sxLCJtYXJrZG93bi1jbGlwYm9hcmQtYnV0dG9uIiwzLCJjbGljayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImJ1dHRvbiIsMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2Lm9u''@;'; put 'put ''Q29weVRvQ2xpcGJvYXJkQ2xpY2soKX0pLG5uKDEsImFzeW5jIiksWXQoMiksbm4oMywiYXN5bmMiKSxvdCgpKSwyJmgmJihGaSgiY29waWVkIix6dCgxLDMsdi5jb3BpZWQkKSksdXQoMiksamkoenQoMyw1LHYuY29waWVkVGV4dCQpKSl9LGRlcGVuZGVuY2llczpbV2hdLGVuY2Fwc3VsYXRp''@;'; put 'put ''b246MixjaGFuZ2VEZXRlY3Rpb246MH0pLGR9KSgpO2NsYXNzIEVqZXt9dmFyIE1aPSgoKT0+KGZ1bmN0aW9uKGQpe2QuQ29tbWFuZExpbmU9ImNvbW1hbmQtbGluZSIsZC5MaW5lSGlnaGxpZ2h0PSJsaW5lLWhpZ2hsaWdodCIsZC5MaW5lTnVtYmVycz0ibGluZS1udW1iZXJzIn0oTVp8fChN''@;'; put 'put ''Wj17fSkpLE1aKSkoKTtjbGFzcyBUamV7fWNvbnN0IGliZT1uZXcgemUoIlNFQ1VSSVRZX0NPTlRFWFQiKTtsZXQgamhlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMucGxhdGZvcm09aCx0aGlzLnNlY3VyaXR5Q29udGV4dD12LHRoaXMuaHR0cD15LHRoaXMu''@;'; put 'put ''Y2xpcGJvYXJkT3B0aW9ucz1DLHRoaXMuc2FuaXRpemVyPVosdGhpcy5ERUZBVUxUX1BBUlNFX09QVElPTlM9e2RlY29kZUh0bWw6ITEsaW5saW5lOiExLGVtb2ppOiExLG1lcm1haWQ6ITEsbWFya2VkT3B0aW9uczp2b2lkIDB9LHRoaXMuREVGQVVMVF9SRU5ERVJfT1BUSU9OUz17Y2xpcGJv''@;'; put 'put ''YXJkOiExLGNsaXBib2FyZE9wdGlvbnM6dm9pZCAwLGthdGV4OiExLGthdGV4T3B0aW9uczp2b2lkIDAsbWVybWFpZDohMSxtZXJtYWlkT3B0aW9uczp2b2lkIDB9LHRoaXMuREVGQVVMVF9NQVJLRURfT1BUSU9OUz17cmVuZGVyZXI6bmV3IFNafSx0aGlzLkRFRkFVTFRfS0FURVhfT1BUSU9O''@;'; put 'put ''Uz17ZGVsaW1pdGVyczpbe2xlZnQ6IiQkIixyaWdodDoiJCQiLGRpc3BsYXk6ITB9LHtsZWZ0OiIkIixyaWdodDoiJCIsZGlzcGxheTohMX0se2xlZnQ6IlxcKCIscmlnaHQ6IlxcKSIsZGlzcGxheTohMX0se2xlZnQ6IlxcYmVnaW57ZXF1YXRpb259IixyaWdodDoiXFxlbmR7ZXF1YXRpb259''@;'; put 'put ''IixkaXNwbGF5OiEwfSx7bGVmdDoiXFxiZWdpbnthbGlnbn0iLHJpZ2h0OiJcXGVuZHthbGlnbn0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXGJlZ2lue2FsaWduYXR9IixyaWdodDoiXFxlbmR7YWxpZ25hdH0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXGJlZ2lue2dhdGhlcn0iLHJpZ2h0OiJcXGVu''@;'; put 'put ''ZHtnYXRoZXJ9IixkaXNwbGF5OiEwfSx7bGVmdDoiXFxiZWdpbntDRH0iLHJpZ2h0OiJcXGVuZHtDRH0iLGRpc3BsYXk6ITB9LHtsZWZ0OiJcXFsiLHJpZ2h0OiJcXF0iLGRpc3BsYXk6ITB9XX0sdGhpcy5ERUZBVUxUX01FUk1BSURfT1BUSU9OUz17c3RhcnRPbkxvYWQ6ITF9LHRoaXMuREVG''@;'; put 'put ''QVVMVF9DTElQQk9BUkRfT1BUSU9OUz17YnV0dG9uQ29tcG9uZW50OnZvaWQgMH0sdGhpcy5fcmVsb2FkJD1uZXcgJGUsdGhpcy5yZWxvYWQkPXRoaXMuX3JlbG9hZCQuYXNPYnNlcnZhYmxlKCksdGhpcy5vcHRpb25zPUl9Z2V0IG9wdGlvbnMoKXtyZXR1cm4gdGhpcy5fb3B0aW9uc31zZXQg''@;'; put 'put ''b3B0aW9ucyhoKXt0aGlzLl9vcHRpb25zPU9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0aGlzLkRFRkFVTFRfTUFSS0VEX09QVElPTlMpLGgpfWdldCByZW5kZXJlcigpe3JldHVybiB0aGlzLm9wdGlvbnMucmVuZGVyZXJ9c2V0IHJlbmRlcmVyKGgpe3RoaXMub3B0aW9ucy5yZW5k''@;'; put 'put ''ZXJlcj1ofXBhcnNlKGgsdj10aGlzLkRFRkFVTFRfUEFSU0VfT1BUSU9OUyl7Y29uc3R7ZGVjb2RlSHRtbDp5LGlubGluZTpDLGVtb2ppOkksbWVybWFpZDpaLG1hcmtlZE9wdGlvbnM6dWU9dGhpcy5vcHRpb25zfT12O1omJih0aGlzLnJlbmRlcmVyPXRoaXMuZXh0ZW5kUmVuZGVyZXIodWUu''@;'; put 'put ''cmVuZGVyZXJ8fG5ldyBTWikpO2NvbnN0IF9lPXRoaXMudHJpbUluZGVudGF0aW9uKGgpLEJlPXk/dGhpcy5kZWNvZGVIdG1sKF9lKTpfZSxOZT1JP3RoaXMucGFyc2VFbW9qaShCZSk6QmUsS2U9dGhpcy5wYXJzZU1hcmtlZChOZSx1ZSxDKTtyZXR1cm4gdGhpcy5zYW5pdGl6ZXIuc2FuaXRp''@;'; put 'put ''emUodGhpcy5zZWN1cml0eUNvbnRleHQsS2UpfHwiIn1yZW5kZXIoaCx2PXRoaXMuREVGQVVMVF9SRU5ERVJfT1BUSU9OUyx5KXtjb25zdHtjbGlwYm9hcmQ6QyxjbGlwYm9hcmRPcHRpb25zOkksa2F0ZXg6WixrYXRleE9wdGlvbnM6dWUsbWVybWFpZDpfZSxtZXJtYWlkT3B0aW9uczpCZX09''@;'; put 'put ''djtDJiZ0aGlzLnJlbmRlckNsaXBib2FyZChoLHksT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5ERUZBVUxUX0NMSVBCT0FSRF9PUFRJT05TKSx0aGlzLmNsaXBib2FyZE9wdGlvbnMpLEkpKSxaJiZ0aGlzLnJlbmRlckthdGV4KGgsT2JqZWN0LmFz''@;'; put 'put ''c2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuREVGQVVMVF9LQVRFWF9PUFRJT05TKSx1ZSkpLF9lJiZ0aGlzLnJlbmRlck1lcm1haWQoaCxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5ERUZBVUxUX01FUk1BSURfT1BUSU9OUyksQmUpKSx0aGlzLmhpZ2hsaWdodChoKX1y''@;'; put 'put ''ZWxvYWQoKXt0aGlzLl9yZWxvYWQkLm5leHQoKX1nZXRTb3VyY2UoaCl7aWYoIXRoaXMuaHR0cCl0aHJvdyBuZXcgRXJyb3IoIltuZ3gtbWFya2Rvd25dIFdoZW4gdXNpbmcgdGhlIGBzcmNgIGF0dHJpYnV0ZSB5b3UgKmhhdmUgdG8qIHBhc3MgdGhlIGBIdHRwQ2xpZW50YCBhcyBhIHBhcmFt''@;'; put 'put ''ZXRlciBvZiB0aGUgYGZvclJvb3RgIG1ldGhvZC4gU2VlIFJFQURNRSBmb3IgbW9yZSBpbmZvcm1hdGlvbiIpO3JldHVybiB0aGlzLmh0dHAuZ2V0KGgse3Jlc3BvbnNlVHlwZToidGV4dCJ9KS5waXBlKG10KHY9PnRoaXMuaGFuZGxlRXh0ZW5zaW9uKGgsdikpKX1oaWdobGlnaHQoaCl7aWYo''@;'; put 'put ''IVNsKHRoaXMucGxhdGZvcm0pfHwidW5kZWZpbmVkIj09dHlwZW9mIFByaXNtfHx2b2lkIDA9PT1QcmlzbS5oaWdobGlnaHRBbGxVbmRlcilyZXR1cm47aHx8KGg9ZG9jdW1lbnQpO2NvbnN0IHY9aC5xdWVyeVNlbGVjdG9yQWxsKCdwcmUgY29kZTpub3QoW2NsYXNzKj0ibGFuZ3VhZ2UtIl0p''@;'; put 'put ''Jyk7QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbCh2LHk9PnkuY2xhc3NMaXN0LmFkZCgibGFuZ3VhZ2Utbm9uZSIpKSxQcmlzbS5oaWdobGlnaHRBbGxVbmRlcihoKX1kZWNvZGVIdG1sKGgpe2lmKCFTbCh0aGlzLnBsYXRmb3JtKSlyZXR1cm4gaDtjb25zdCB2PWRvY3VtZW50LmNyZWF0''@;'; put 'put ''ZUVsZW1lbnQoInRleHRhcmVhIik7cmV0dXJuIHYuaW5uZXJIVE1MPWgsdi52YWx1ZX1leHRlbmRSZW5kZXJlcihoKXtjb25zdCB2PWg7aWYoITA9PT12Llx1MDI3NU5neE1hcmtkb3duUmVuZGVyZXJFeHRlbmRlZClyZXR1cm4gaDtjb25zdCB5PWguY29kZTtyZXR1cm4gaC5jb2RlPWZ1bmN0''@;'; put 'put ''aW9uKEMsSSxaKXtyZXR1cm4ibWVybWFpZCI9PT1JP2A8ZGl2IGNsYXNzPSJtZXJtYWlkIj4ke0N9PC9kaXY+YDp5LmNhbGwodGhpcyxDLEksWil9LHYuXHUwMjc1Tmd4TWFya2Rvd25SZW5kZXJlckV4dGVuZGVkPSEwLGh9aGFuZGxlRXh0ZW5zaW9uKGgsdil7Y29uc3QgeT1oLmxhc3RJbmRl''@;'; put 'put ''eE9mKCI6Ly8iKSxDPXk+LTE/aC5zdWJzdHJpbmcoeSs0KTpoLEk9Qy5sYXN0SW5kZXhPZigiLyIpLFo9ST4tMT9DLnN1YnN0cmluZyhJKzEpLnNwbGl0KCI/IilbMF06IiIsdWU9Wi5sYXN0SW5kZXhPZigiLiIpLF9lPXVlPi0xP1ouc3Vic3RyaW5nKHVlKzEpOiIiO3JldHVybiBfZSYmIm1k''@;'; put 'put ''IiE9PV9lPyJgYGAiK19lKyJcbiIrdisiXG5gYGAiOnZ9cGFyc2VNYXJrZWQoaCx2LHk9ITEpe3JldHVybiBTbCh0aGlzLnBsYXRmb3JtKT95P2VsLnBhcnNlSW5saW5lKGgsdik6ZWwucGFyc2UoaCx2KTpofXBhcnNlRW1vamkoaCl7aWYoIVNsKHRoaXMucGxhdGZvcm0pKXJldHVybiBoO2lm''@;'; put 'put ''KCJ1bmRlZmluZWQiPT10eXBlb2Ygam95cGl4ZWxzfHx2b2lkIDA9PT1qb3lwaXhlbHMuc2hvcnRuYW1lVG9Vbmljb2RlKXRocm93IG5ldyBFcnJvcigiW25neC1tYXJrZG93bl0gV2hlbiB1c2luZyB0aGUgYGVtb2ppYCBhdHRyaWJ1dGUgeW91ICpoYXZlIHRvKiBpbmNsdWRlIEVtb2ppLVRv''@;'; put 'put ''b2xraXQgZmlsZXMgdG8gYGFuZ3VsYXIuanNvbmAgb3IgdXNlIGltcG9ydHMuIFNlZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24iKTtyZXR1cm4gam95cGl4ZWxzLnNob3J0bmFtZVRvVW5pY29kZShoKX1yZW5kZXJLYXRleChoLHYpe2lmKFNsKHRoaXMucGxhdGZvcm0pKXtpZigidW5k''@;'; put 'put ''ZWZpbmVkIj09dHlwZW9mIGthdGV4fHwidW5kZWZpbmVkIj09dHlwZW9mIHJlbmRlck1hdGhJbkVsZW1lbnQpdGhyb3cgbmV3IEVycm9yKCJbbmd4LW1hcmtkb3duXSBXaGVuIHVzaW5nIHRoZSBga2F0ZXhgIGF0dHJpYnV0ZSB5b3UgKmhhdmUgdG8qIGluY2x1ZGUgS2FUZVggZmlsZXMgdG8g''@;'; put 'put ''YGFuZ3VsYXIuanNvbmAgb3IgdXNlIGltcG9ydHMuIFNlZSBSRUFETUUgZm9yIG1vcmUgaW5mb3JtYXRpb24iKTtyZW5kZXJNYXRoSW5FbGVtZW50KGgsdil9fXJlbmRlckNsaXBib2FyZChoLHYseSl7aWYoIVNsKHRoaXMucGxhdGZvcm0pKXJldHVybjtpZigidW5kZWZpbmVkIj09dHlwZW9m''@;'; put 'put ''IENsaXBib2FyZEpTKXRocm93IG5ldyBFcnJvcigiW25neC1tYXJrZG93bl0gV2hlbiB1c2luZyB0aGUgYGNsaXBib2FyZGAgYXR0cmlidXRlIHlvdSAqaGF2ZSB0byogaW5jbHVkZSBDbGlwYm9hcmQgZmlsZXMgdG8gYGFuZ3VsYXIuanNvbmAgb3IgdXNlIGltcG9ydHMuIFNlZSBSRUFETUUg''@;'; put 'put ''Zm9yIG1vcmUgaW5mb3JtYXRpb24iKTtpZighdil0aHJvdyBuZXcgRXJyb3IoIltuZ3gtbWFya2Rvd25dIFdoZW4gdXNpbmcgdGhlIGBjbGlwYm9hcmRgIGF0dHJpYnV0ZSB5b3UgKmhhdmUgdG8qIHByb3ZpZGUgdGhlIGB2aWV3Q29udGFpbmVyUmVmYCBwYXJhbWV0ZXIgdG8gYE1hcmtkb3du''@;'; put 'put ''U2VydmljZS5yZW5kZXIoKWAgZnVuY3Rpb24iKTtjb25zdHtidXR0b25Db21wb25lbnQ6QyxidXR0b25UZW1wbGF0ZTpJfT15LFo9aC5xdWVyeVNlbGVjdG9yQWxsKCJwcmUiKTtmb3IobGV0IHVlPTA7dWU8Wi5sZW5ndGg7dWUrKyl7Y29uc3QgX2U9Wi5pdGVtKHVlKSxCZT1kb2N1bWVudC5j''@;'; put 'put ''cmVhdGVFbGVtZW50KCJkaXYiKTtCZS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLF9lLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEJlLF9lKSxCZS5hcHBlbmRDaGlsZChfZSk7Y29uc3QgTmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bGV0IEtlLHB0O05lLnN0eWxlLnBvc2l0''@;'; put 'put ''aW9uPSJhYnNvbHV0ZSIsTmUuc3R5bGUudG9wPSIuNWVtIixOZS5zdHlsZS5yaWdodD0iLjVlbSIsTmUuc3R5bGUub3BhY2l0eT0iMCIsTmUuc3R5bGUudHJhbnNpdGlvbj0ib3BhY2l0eSAyNTBtcyBlYXNlLW91dCIsQmUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50KCJiZWZvcmVlbmQiLE5lKSxf''@;'; put 'put ''ZS5vbm1vdXNlb3Zlcj0oKT0+TmUuc3R5bGUub3BhY2l0eT0iMSIsX2Uub25tb3VzZW91dD0oKT0+TmUuc3R5bGUub3BhY2l0eT0iMCIsS2U9Qz92LmNyZWF0ZUNvbXBvbmVudChDKS5ob3N0VmlldzpJP3YuY3JlYXRlRW1iZWRkZWRWaWV3KEkpOnYuY3JlYXRlQ29tcG9uZW50KFZoZSkuaG9z''@;'; put 'put ''dFZpZXcsS2Uucm9vdE5vZGVzLmZvckVhY2goT3Q9PntPdC5vbm1vdXNlb3Zlcj0oKT0+TmUuc3R5bGUub3BhY2l0eT0iMSIsTmUuYXBwZW5kQ2hpbGQoT3QpLHB0PW5ldyBDbGlwYm9hcmRKUyhPdCx7dGV4dDooKT0+X2UuaW5uZXJUZXh0fSl9KSxLZS5vbkRlc3Ryb3koKCk9PnB0LmRlc3Ry''@;'; put 'put ''b3koKSl9fXJlbmRlck1lcm1haWQoaCx2PXRoaXMuREVGQVVMVF9NRVJNQUlEX09QVElPTlMpe2lmKCFTbCh0aGlzLnBsYXRmb3JtKSlyZXR1cm47aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBtZXJtYWlkfHx2b2lkIDA9PT1tZXJtYWlkLmluaXQpdGhyb3cgbmV3IEVycm9yKCJbbmd4LW1hcmtk''@;'; put 'put ''b3duXSBXaGVuIHVzaW5nIHRoZSBgbWVybWFpZGAgYXR0cmlidXRlIHlvdSAqaGF2ZSB0byogaW5jbHVkZSBNZXJtYWlkIGZpbGVzIHRvIGBhbmd1bGFyLmpzb25gIG9yIHVzZSBpbXBvcnRzLiBTZWUgUkVBRE1FIGZvciBtb3JlIGluZm9ybWF0aW9uIik7Y29uc3QgeT1oLnF1ZXJ5U2VsZWN0''@;'; put 'put ''b3JBbGwoIi5tZXJtYWlkIik7MCE9PXkubGVuZ3RoJiYobWVybWFpZC5pbml0aWFsaXplKHYpLG1lcm1haWQuaW5pdCh5KSl9dHJpbUluZGVudGF0aW9uKGgpe2lmKCFoKXJldHVybiIiO2xldCB2O3JldHVybiBoLnNwbGl0KCJcbiIpLm1hcCh5PT57bGV0IEM9djtyZXR1cm4geS5sZW5ndGg+''@;'; put 'put ''MCYmKEM9aXNOYU4oQyk/eS5zZWFyY2goL1xTfCQvKTpNYXRoLm1pbih5LnNlYXJjaCgvXFN8JC8pLEMpKSxpc05hTih2KSYmKHY9QyksQz95LnN1YnN0cmluZyhDKTp5fSkuam9pbigiXG4iKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoQ2koTDIp''@;'; put 'put ''LENpKGliZSksQ2koSEgsOCksQ2koRWplLDgpLENpKFRqZSw4KSxDaShjNykpfSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpLG9iZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5KXt0aGlzLmVsZW1lbnQ9aCx0aGlzLm1hcmtkb3du''@;'; put 'put ''U2VydmljZT12LHRoaXMudmlld0NvbnRhaW5lclJlZj15LHRoaXMuZXJyb3I9bmV3IGFyLHRoaXMubG9hZD1uZXcgYXIsdGhpcy5yZWFkeT1uZXcgYXIsdGhpcy5fY29tbWFuZExpbmU9ITEsdGhpcy5fY2xpcGJvYXJkPSExLHRoaXMuX2Vtb2ppPSExLHRoaXMuX2lubGluZT0hMSx0aGlzLl9r''@;'; put 'put ''YXRleD0hMSx0aGlzLl9saW5lSGlnaGxpZ2h0PSExLHRoaXMuX2xpbmVOdW1iZXJzPSExLHRoaXMuX21lcm1haWQ9ITEsdGhpcy5kZXN0cm95ZWQkPW5ldyAkZX1nZXQgaW5saW5lKCl7cmV0dXJuIHRoaXMuX2lubGluZX1zZXQgaW5saW5lKGgpe3RoaXMuX2lubGluZT10aGlzLmNvZXJjZUJv''@;'; put 'put ''b2xlYW5Qcm9wZXJ0eShoKX1nZXQgY2xpcGJvYXJkKCl7cmV0dXJuIHRoaXMuX2NsaXBib2FyZH1zZXQgY2xpcGJvYXJkKGgpe3RoaXMuX2NsaXBib2FyZD10aGlzLmNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShoKX1nZXQgZW1vamkoKXtyZXR1cm4gdGhpcy5fZW1vaml9c2V0IGVtb2ppKGgpe3Ro''@;'; put 'put ''aXMuX2Vtb2ppPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBrYXRleCgpe3JldHVybiB0aGlzLl9rYXRleH1zZXQga2F0ZXgoaCl7dGhpcy5fa2F0ZXg9dGhpcy5jb2VyY2VCb29sZWFuUHJvcGVydHkoaCl9Z2V0IG1lcm1haWQoKXtyZXR1cm4gdGhpcy5fbWVybWFpZH1zZXQg''@;'; put 'put ''bWVybWFpZChoKXt0aGlzLl9tZXJtYWlkPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBsaW5lSGlnaGxpZ2h0KCl7cmV0dXJuIHRoaXMuX2xpbmVIaWdobGlnaHR9c2V0IGxpbmVIaWdobGlnaHQoaCl7dGhpcy5fbGluZUhpZ2hsaWdodD10aGlzLmNvZXJjZUJvb2xlYW5Qcm9w''@;'; put 'put ''ZXJ0eShoKX1nZXQgbGluZU51bWJlcnMoKXtyZXR1cm4gdGhpcy5fbGluZU51bWJlcnN9c2V0IGxpbmVOdW1iZXJzKGgpe3RoaXMuX2xpbmVOdW1iZXJzPXRoaXMuY29lcmNlQm9vbGVhblByb3BlcnR5KGgpfWdldCBjb21tYW5kTGluZSgpe3JldHVybiB0aGlzLl9jb21tYW5kTGluZX1zZXQg''@;'; put 'put ''Y29tbWFuZExpbmUoaCl7dGhpcy5fY29tbWFuZExpbmU9dGhpcy5jb2VyY2VCb29sZWFuUHJvcGVydHkoaCl9bmdPbkNoYW5nZXMoKXt0aGlzLmxvYWRDb250ZW50KCl9bG9hZENvbnRlbnQoKXtudWxsPT10aGlzLmRhdGE/bnVsbD09dGhpcy5zcmN8fHRoaXMuaGFuZGxlU3JjKCk6dGhpcy5o''@;'; put 'put ''YW5kbGVEYXRhKCl9bmdBZnRlclZpZXdJbml0KCl7IXRoaXMuZGF0YSYmIXRoaXMuc3JjJiZ0aGlzLmhhbmRsZVRyYW5zY2x1c2lvbigpLHRoaXMubWFya2Rvd25TZXJ2aWNlLnJlbG9hZCQucGlwZShqNyh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCk9PnRoaXMubG9hZENvbnRlbnQo''@;'; put 'put ''KSl9bmdPbkRlc3Ryb3koKXt0aGlzLmRlc3Ryb3llZCQubmV4dCgpLHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpfXJlbmRlcihoLHY9ITEpe2NvbnN0IEM9e2NsaXBib2FyZDp0aGlzLmNsaXBib2FyZCxjbGlwYm9hcmRPcHRpb25zOntidXR0b25Db21wb25lbnQ6dGhpcy5jbGlwYm9hcmRC''@;'; put 'put ''dXR0b25Db21wb25lbnQsYnV0dG9uVGVtcGxhdGU6dGhpcy5jbGlwYm9hcmRCdXR0b25UZW1wbGF0ZX0sa2F0ZXg6dGhpcy5rYXRleCxrYXRleE9wdGlvbnM6dGhpcy5rYXRleE9wdGlvbnMsbWVybWFpZDp0aGlzLm1lcm1haWQsbWVybWFpZE9wdGlvbnM6dGhpcy5tZXJtYWlkT3B0aW9uc30s''@;'; put 'put ''ST10aGlzLm1hcmtkb3duU2VydmljZS5wYXJzZShoLHtkZWNvZGVIdG1sOnYsaW5saW5lOnRoaXMuaW5saW5lLGVtb2ppOnRoaXMuZW1vamksbWVybWFpZDp0aGlzLm1lcm1haWR9KTt0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUw9SSx0aGlzLmhhbmRsZVBsdWdpbnMoKSx0''@;'; put 'put ''aGlzLm1hcmtkb3duU2VydmljZS5yZW5kZXIodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsQyx0aGlzLnZpZXdDb250YWluZXJSZWYpLHRoaXMucmVhZHkuZW1pdCgpfWNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShoKXtyZXR1cm4gbnVsbCE9aCYmImZhbHNlIiE9YCR7U3RyaW5nKGgpfWB9aGFu''@;'; put 'put ''ZGxlRGF0YSgpe3RoaXMucmVuZGVyKHRoaXMuZGF0YSl9aGFuZGxlU3JjKCl7dGhpcy5tYXJrZG93blNlcnZpY2UuZ2V0U291cmNlKHRoaXMuc3JjKS5zdWJzY3JpYmUoe25leHQ6aD0+e3RoaXMucmVuZGVyKGgpLHRoaXMubG9hZC5lbWl0KGgpfSxlcnJvcjpoPT50aGlzLmVycm9yLmVtaXQo''@;'; put 'put ''aCl9KX1oYW5kbGVUcmFuc2NsdXNpb24oKXt0aGlzLnJlbmRlcih0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwsITApfWhhbmRsZVBsdWdpbnMoKXt0aGlzLmNvbW1hbmRMaW5lJiYodGhpcy5zZXRQbHVnaW5DbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxNWi5D''@;'; put 'put ''b21tYW5kTGluZSksdGhpcy5zZXRQbHVnaW5PcHRpb25zKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LHtkYXRhRmlsdGVyT3V0cHV0OnRoaXMuZmlsdGVyT3V0cHV0LGRhdGFIb3N0OnRoaXMuaG9zdCxkYXRhUHJvbXB0OnRoaXMucHJvbXB0LGRhdGFPdXRwdXQ6dGhpcy5vdXRwdXQsZGF0''@;'; put 'put ''YVVzZXI6dGhpcy51c2VyfSkpLHRoaXMubGluZUhpZ2hsaWdodCYmdGhpcy5zZXRQbHVnaW5PcHRpb25zKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LHtkYXRhTGluZTp0aGlzLmxpbmUsZGF0YUxpbmVPZmZzZXQ6dGhpcy5saW5lT2Zmc2V0fSksdGhpcy5saW5lTnVtYmVycyYmKHRoaXMu''@;'; put 'put ''c2V0UGx1Z2luQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsTVouTGluZU51bWJlcnMpLHRoaXMuc2V0UGx1Z2luT3B0aW9ucyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCx7ZGF0YVN0YXJ0OnRoaXMuc3RhcnR9KSl9c2V0UGx1Z2luQ2xhc3MoaCx2KXtjb25zdCB5PWgucXVl''@;'; put 'put ''cnlTZWxlY3RvckFsbCgicHJlIik7Zm9yKGxldCBDPTA7Qzx5Lmxlbmd0aDtDKyspe2NvbnN0IEk9diBpbnN0YW5jZW9mIEFycmF5P3Y6W3ZdO3kuaXRlbShDKS5jbGFzc0xpc3QuYWRkKC4uLkkpfX1zZXRQbHVnaW5PcHRpb25zKGgsdil7Y29uc3QgeT1oLnF1ZXJ5U2VsZWN0b3JBbGwoInBy''@;'; put 'put ''ZSIpO2ZvcihsZXQgQz0wO0M8eS5sZW5ndGg7QysrKU9iamVjdC5rZXlzKHYpLmZvckVhY2goST0+e2NvbnN0IFo9dltJXTtpZihaKXtjb25zdCB1ZT10aGlzLnRvTGlzcENhc2UoSSk7eS5pdGVtKEMpLnNldEF0dHJpYnV0ZSh1ZSxaLnRvU3RyaW5nKCkpfX0pfXRvTGlzcENhc2UoaCl7Y29u''@;'; put 'put ''c3Qgdj1oLm1hdGNoKC8oW0EtWl0pL2cpO2lmKCF2KXJldHVybiBoO2xldCB5PWgudG9TdHJpbmcoKTtmb3IobGV0IEM9MCxJPXYubGVuZ3RoO0M8STtDKyspeT15LnJlcGxhY2UobmV3IFJlZ0V4cCh2W0NdKSwiLSIrdltDXS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4iLSI9PT15LnNsaWNlKDAs''@;'; put 'put ''MSkmJih5PXkuc2xpY2UoMSkpLHl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSxLdChqaGUpLEt0KFVpKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbIm1hcmtkb3duIl0sWyIiLCJtYXJrZG93biIsIiJdXSxpbnB1''@;'; put 'put ''dHM6e2RhdGE6ImRhdGEiLHNyYzoic3JjIixpbmxpbmU6ImlubGluZSIsY2xpcGJvYXJkOiJjbGlwYm9hcmQiLGNsaXBib2FyZEJ1dHRvbkNvbXBvbmVudDoiY2xpcGJvYXJkQnV0dG9uQ29tcG9uZW50IixjbGlwYm9hcmRCdXR0b25UZW1wbGF0ZToiY2xpcGJvYXJkQnV0dG9uVGVtcGxhdGUi''@;'; put 'put ''LGVtb2ppOiJlbW9qaSIsa2F0ZXg6ImthdGV4IixrYXRleE9wdGlvbnM6ImthdGV4T3B0aW9ucyIsbWVybWFpZDoibWVybWFpZCIsbWVybWFpZE9wdGlvbnM6Im1lcm1haWRPcHRpb25zIixsaW5lSGlnaGxpZ2h0OiJsaW5lSGlnaGxpZ2h0IixsaW5lOiJsaW5lIixsaW5lT2Zmc2V0OiJsaW5l''@;'; put 'put ''T2Zmc2V0IixsaW5lTnVtYmVyczoibGluZU51bWJlcnMiLHN0YXJ0OiJzdGFydCIsY29tbWFuZExpbmU6ImNvbW1hbmRMaW5lIixmaWx0ZXJPdXRwdXQ6ImZpbHRlck91dHB1dCIsaG9zdDoiaG9zdCIscHJvbXB0OiJwcm9tcHQiLG91dHB1dDoib3V0cHV0Iix1c2VyOiJ1c2VyIn0sb3V0cHV0''@;'; put 'put ''czp7ZXJyb3I6ImVycm9yIixsb2FkOiJsb2FkIixyZWFkeToicmVhZHkifSxmZWF0dXJlczpbRDJdLG5nQ29udGVudFNlbGVjdG9yczpramUsZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLE5pKDApKX0sZW5jYXBzdWxhdGlvbjoyfSksZH0pKCksUGpl''@;'; put 'put ''PSgoKT0+e2NsYXNzIGR7c3RhdGljIGZvclJvb3QoaCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOltqaGUsaCYmaC5sb2FkZXJ8fFtdLGgmJmguY2xpcGJvYXJkT3B0aW9uc3x8W10saCYmaC5tYXJrZWRPcHRpb25zfHxbXSx7cHJvdmlkZTppYmUsdXNlVmFsdWU6aCYmbnVsbCE9aC5z''@;'; put 'put ''YW5pdGl6ZT9oLnNhbml0aXplOmEyLkhUTUx9XX19c3RhdGljIGZvckNoaWxkKCl7cmV0dXJue25nTW9kdWxlOmR9fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRz''@;'; put 'put ''OltiYV19KSxkfSkoKTt2YXIgYWJlOyFmdW5jdGlvbihkKXtsZXQgZzt2YXIgeTtsZXQgaCx2Oyh5PWc9ZC5TZWN1cml0eUxldmVsfHwoZC5TZWN1cml0eUxldmVsPXt9KSkuU3RyaWN0PSJzdHJpY3QiLHkuTG9vc2U9Imxvb3NlIix5LkFudGlzY3JpcHQ9ImFudGlzY3JpcHQiLHkuU2FuZGJv''@;'; put 'put ''eD0ic2FuZGJveCIsZnVuY3Rpb24oeSl7eS5CYXNlPSJiYXNlIix5LkZvcmVzdD0iZm9yZXN0Iix5LkRhcms9ImRhcmsiLHkuRGVmYXVsdD0iZGVmYXVsdCIseS5OZXV0cmFsPSJuZXV0cmFsIn0oaD1kLlRoZW1lfHwoZC5UaGVtZT17fSkpLGZ1bmN0aW9uKHkpe3lbeS5EZWJ1Zz0xXT0iRGVi''@;'; put 'put ''dWciLHlbeS5JbmZvPTJdPSJJbmZvIix5W3kuV2Fybj0zXT0iV2FybiIseVt5LkVycm9yPTRdPSJFcnJvciIseVt5LkZhdGFsPTVdPSJGYXRhbCJ9KHY9ZC5Mb2dMZXZlbHx8KGQuTG9nTGV2ZWw9e30pKX0oYWJlfHwoYWJlPXt9KSk7bGV0IEZqZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9y''@;'; put 'put ''KGgpe3RoaXMuc2FzU2VydmljZT1oLHRoaXMuYWdyZWVDaGVja2VkPSExLHRoaXMuYWdyZWVCb3hMb2NrZWQ9ITAsdGhpcy5hZ3JlZUNsaWNrZWQ9ITEsdGhpcy5ldWxhX21hcmtkb3duPSdcbkVuZCBVc2VyIExpY2VuY2UgQWdyZWVtZW50IGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4''@;'; put 'put ''YWVcbj09PT09PT09PT09PT09PT09PT09XG5QbGVhc2UgcmVhZCB0aGlzIEVuZCBVc2VyIExpY2Vuc2UgQWdyZWVtZW50ICgiRVVMQSIpIGJlZm9yZSBZb3UgZG93bmxvYWQsIGluc3RhbGwsIGV4YW1pbmUsIG9yIG90aGVyd2lzZSB1c2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlXG5c''@;'; put 'put ''bkJ5IGRvd25sb2FkaW5nIGFuZCB1c2luZyBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUsIFlvdSBhZ3JlZSwgd2l0aG91dCByZXNlcnZhdGlvbiB0byBiZSBib3VuZCBieSB0aGUgdGVybXMgb2YgdGhpcyBFVUxBLiBJZiBZb3UgZG8gbm90IGFncmVlIHdpdGggdGhlIHRlcm1zIG9mIHRo''@;'; put 'put ''aXMgRVVMQSwgcGxlYXNlIGRvIG5vdCBwdXJjaGFzZSBhIExpY2Vuc2UgS2V5IGFuZC9vciBkb3dubG9hZCBhbmQgdXNlIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZS5cblxuSWYgWW91IGFjY2VwdCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgaW4gdGhpcyBFVUxBIG9uIGJlaGFsZiBv''@;'; put 'put ''ZiBhIGNvbXBhbnkgb3Igb3RoZXIgbGVnYWwgZW50aXR5LCBZb3Ugd2FycmFudCB0aGF0IFlvdSBoYXZlIGZ1bGwgbGVnYWwgYXV0aG9yaXR5IHRvIGFjY2VwdCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgaW4gdGhpcyBFVUxBIG9uIGJlaGFsZiBvZiBzdWNoIGNvbXBhbnkgb3Igb3RoZXIg''@;'; put 'put ''bGVnYWwgZW50aXR5LCBhbmQgdG8gbGVnYWxseSBiaW5kIHN1Y2ggY29tcGFueSBvciBvdGhlciBsZWdhbCBlbnRpdHkuXG5cbllvdSBtYXkgbm90IGFjY2VwdCB0aGlzIEVVTEEgaWYgWW91IGFyZSBub3Qgb2YgbGVnYWwgYWdlIHRvIGZvcm0gYSBiaW5kaW5nIGNvbnRyYWN0IHdpdGggNEdM''@;'; put 'put ''IEFwcHMuXG5cbiMjIERlZmluaXRpb25zXG5JbiB0aGlzIEVVTEEgdGhlIGV4cHJlc3Npb25zIGJlbG93IHNoYWxsIGhhdmUgdGhlIG1lYW5pbmcgYXNzaWduZWQgdG8gdGhlbSBpbiB0aGlzIGNsYXVzZSwgdW5sZXNzIHRoZSBjb250ZXh0IHJlcXVpcmVzIG90aGVyd2lzZTpcblxuKiAqKiJB''@;'; put 'put ''Y3RpdmF0ZSIqKiB0dXJuaW5nIHRoZSBUcmlhbCB2ZXJzaW9uIGludG8gdGhlIEZ1bGwgdmVyc2lvbiBvZiB0aGUgc2FtZSBhcHBsaWNhdGlvbiB3aXRoIHRoZSBMaWNlbnNlIEtleSBwcm92aWRlZCBieSA0R0wgQXBwcztcbiogKioiRG9jdW1lbnRhdGlvbiIqKiB0aGUgZGV0YWlsZWQgaW5m''@;'; put 'put ''b3JtYXRpb24gYWJvdXQgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLCBpdHMgZmVhdHVyZXMgYW5kIHRoZSBzeXN0ZW0gcmVxdWlyZW1lbnRzIGFzIG1hZGUgYXZhaWxhYmxlIG9uIGh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pbywgYXMgYW1lbmRlZCBmcm9tIHRpbWUgdG8gdGlt''@;'; put 'put ''ZTtcbiogKioiRnVsbCB2ZXJzaW9uIioqIHRoZSBsaWNlbnNlIGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgZm9yIHRoZSB0ZXJtIHNwZWNpZmllZCBvbiB0aGUgd2VicGFnZSBvZiB0aGUgc3RvcmUgd2hlcmUgWW91IHB1cmNoYXNlIHRoZSBsaWNlbnNlLCBvciBpbiBhbnkgYXBw''@;'; put 'put ''bGljYWJsZSBhZ3JlZW1lbnQgY29uY2VybmluZyB0aGUgcHVyY2hhc2Ugb2YgdGhlIGxpY2Vuc2UgKGFzIHN0YW5kLWFsb25lIHByb2R1Y3Qgb3IgYXMgcGFydCBvZiBhIHN1YnNjcmlwdGlvbikgdG8gVXNlIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZTtcbiogKioiTGljZW5zZSBLZXki''@;'; put 'put ''KiogYW4gdW5pcXVlIGNvZGUgcHJvdmlkZWQgYnkgNEdMIEFwcHMsIHdoaWNoIGVuYWJsZXMgWW91IHRvIGFjdGl2YXRlIHRoZSBGdWxsIHZlcnNpb24gYnkgZW50ZXJpbmcgdGhlIGNvZGUgaW50byBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYW5kIHRvIHN1YnNlcXVlbnRseSB1c2Ug''@;'; put 'put ''RGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGR1cmluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIHRlcm07XG4qICoqIk9wZW4gU291cmNlIFNvZnR3YXJlXHUyMDFkKiogYW55IHNvZnR3YXJlIHRoYXQgcmVxdWlyZXMgYXMgYSBjb25kaXRpb24gb2YgdXNlLCBjb3B5aW5nLCBtb2RpZmlj''@;'; put 'put ''YXRpb24gYW5kL29yIGRpc3RyaWJ1dGlvbiBvZiBzdWNoIHNvZnR3YXJlIHRoYXQgc3VjaCBzb2Z0d2FyZSBvciBvdGhlciBzb2Z0d2FyZSBpbmNvcnBvcmF0ZWQgaW50bywgZGVyaXZlZCBmcm9tIG9yIGRpc3RyaWJ1dGVkIHdpdGggc3VjaCBzb2Z0d2FyZSAoYSkgYmUgZGlzY2xvc2VkIG9y''@;'; put 'put ''IGRpc3RyaWJ1dGVkIGluIHNvdXJjZSBjb2RlIGZvcm0sIGFuZCAoYikgYmUgbGljZW5zZWQgZm9yIHRoZSBwdXJwb3NlIG9mIG1ha2luZyBhbmQvb3IgZGlzdHJpYnV0aW5nIGRlcml2YXRpdmUgd29ya3MsIGFuZCAoYykgYmUgcmVkaXN0cmlidXRhYmxlIGF0IG5vIGNoYXJnZTtcbiogKioi''@;'; put 'put ''NEdMIEFwcHMiKiogYSBicmFuZCBvd25lZCBhbmQgbWFuYWdlZCBieSBCb3dlIElPIEx0ZCwgYSBjb21wYW55IGluY29ycG9yYXRlZCBhbmQgcmVnaXN0ZXJlZCBpbiBFbmdsYW5kIHdpdGggUmVnaXN0ZXJlZCBOdW1iZXIgMDg3NzcxNzEgd2hvc2UgcmVnaXN0ZXJlZCBvZmZpY2UgaXMgYXQg''@;'; put 'put ''MjkgT2xkZmllbGQgUmQsIFdpbmRlcm1lcmUsIEN1bWJyaWEsIExBMjMgMkFaXG4qICoqIkRhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZVx1MjAxZCBhbnkgc29mdHdhcmUgYXBwbGljYXRpb24gYW5kL29yIGFsbCBvZiB0aGUgY29udGVudHMgb2YgdGhlIGZpbGVzIGFuZC9vciBvdGhlciBt''@;'; put 'put ''ZWRpYSwgaW5jbHVkaW5nIHNvZnR3YXJlIHNldHVwIGZpbGVzLCBsaWNlbnNlZCB0byBZb3UgYnkgNEdMIEFwcHMsIGluY2x1ZGluZyBhbnkgVXBkYXRlcztcbiogKioiVHJpYWwgdmVyc2lvblx1MjAxZCoqIHRoZSBsaWNlbnNlIGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgZm9y''@;'; put 'put ''IHRoZSB0ZXJtIG9mIDMwIGRheXMgdG8gVXNlIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBmb3IgdGhlIHNvbGUgcHVycG9zZSBvZiB0ZXN0aW5nIGFuZCBldmFsdWF0aW5nIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZTtcbiogKioiVXBkYXRlcyIqKiBhbnkgbW9kaWZpZWQgdmVy''@;'; put 'put ''c2lvbnMgYW5kIHVwZGF0ZXMgb2YsIGFuZCBhZGRpdGlvbnMgdG8gRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIChleGNsdWRpbmcgdXBncmFkZXMgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlKTtcbiogKioiVXNlIioqIHRoZSBhY2Nlc3MsIGRvd25sb2FkLCBpbnN0YWxsLCBj''@;'; put 'put ''b3B5IG9yIGdldCBiZW5lZml0IGZyb20gdXNpbmcgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgZG9jdW1lbnRhdGlvbjtcbiogKioiWW91IioqIHlvdSwgdGhlIGZpbmFsIGFuZCB1bHRpbWF0ZSB1c2VyIG9mIERhdGEgQ29udHJvbGxlciBmb3Ig''@;'; put 'put ''U0FTXHhhZSBvciB0aGUgYXV0aG9yaXplZCByZXByZXNlbnRhdGl2ZSBvZiBhIGNvbXBhbnkgb3Igb3RoZXIgbGVnYWwgZW50aXR5IHRoYXQgd2lsbCBiZSB0aGUgZmluYWwgYW5kIHVsdGltYXRlIHVzZXIgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlICBhbmQgdGhlIGNvbXBhbnkg''@;'; put 'put ''b3Igb3RoZXIgbGVnYWwgZW50aXR5IHRoYXQgd2lsbCBiZSB0aGUgZmluYWwgYW5kIHVsdGltYXRlIHVzZXIgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlICBpZiBhcHBsaWNhYmxlLlxuXG4jIyBHZW5lcmFsXG5UaGlzIEVVTEEgYXBwbGllcyB0byBhbnkgbGljZW5zZXMgZ3JhbnRl''@;'; put 'put ''ZCB0byBZb3UgYnkgNEdMIEFwcHMgZm9yIHRoZSB1c2Ugb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLlxuQnkgcHVyY2hhc2luZyBhIExpY2Vuc2UgS2V5IGZvciBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYW5kL29yIGRvd25sb2FkaW5nIGFuZCB1c2luZyBEYXRhIENvbnRy''@;'; put 'put ''b2xsZXIgZm9yIFNBU1x4YWUsIFlvdSBlbnRlciBpbnRvIHRoaXMgRVVMQSB3aXRoIDRHTCBBcHBzLlxuVGhpcyBFVUxBIG1heSBiZSBtb2RpZmllZCBmcm9tIHRpbWUgdG8gdGltZS4gNEdMIEFwcHMgd2lsbCBub3RpZnkgeW91IG9mIHN1Y2ggbW9kaWZpY2F0aW9ucyBvbiBpdHMgd2Vic2l0''@;'; put 'put ''ZSBvciBvdGhlcndpc2UsIGUuZy4gYnkgdXNpbmcgdGhlIGVtYWlsIGFkZHJlc3MgdXNlZCBmb3IgdGhlIHByb3Zpc2lvbiBvZiB0aGUgTGljZW5zZSBLZXkuIEFueSBtb2RpZmljYXRpb25zIHRvIHRoaXMgRVVMQSBzaGFsbCBvbmx5IGFwcGx5IHVwb24gYWNjZXB0YW5jZSBieSBZb3UuXG5c''@;'; put 'put ''biMjIExpY2Vuc2VcbjRHTCBBcHBzIGdyYW50cyBZb3UgYSBub24tZXhjbHVzaXZlLCBub24tdHJhbnNmZXJhYmxlLCBsaW1pdGVkLCByZXZvY2FibGUgbGljZW5zZSB0byBVc2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzIEVVTEEuIE1hY2Vv''@;'; put 'put ''IFBlb3BsZSByZXNlcnZlcyBhbGwgcmlnaHRzIG5vdCBleHByZXNzbHkgZ3JhbnRlZCB0byBZb3UuXG40R0wgQXBwcyBpcyBhbmQgcmVtYWlucyB0aGUgb3duZXIgb2YgYW55IGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgd2l0aCByZXNwZWN0IHRvIERhdGEgQ29udHJvbGxlciBmb3Ig''@;'; put 'put ''U0FTXHhhZS4gWW91IHNoYWxsIG5vdCBhY3F1aXJlIGFueSBvd25lcnNoaXAgdG8gRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGFzIHJlc3VsdCBvZiBZb3VyIHB1cmNoYXNlIG9mIHRoZSBMaWNlbnNlIEtleSBvciBZb3VyIFVzZSBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUu''@;'; put 'put ''XG5cbiMjIFBlcm1pdHRlZCB1c2UgYW5kIHJlc3RyaWN0aW9uc1xuSW4gb3JkZXIgdG8gYmUgYWJsZSB0byBpbnN0YWxsIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQgcmVjZWl2ZSBVcGRhdGVzIGFuZCB1cGdyYWRlcywgWW91ciBjb21wdXRlciBzaGFsbCBtZWV0IHRoZSBzeXN0''@;'; put 'put ''ZW0gcmVxdWlyZW1lbnRzIGRlc2NyaWJlZCBpbiB0aGUgRG9jdW1lbnRhdGlvbiB0aGF0IGNhbiBiZSBmb3VuZCBvbiB0aGUgd2VicGFnZTogaHR0cHM6Ly9kb2NzLmRhdGFjb250cm9sbGVyLmlvLlxuWW91IG1heSBVc2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIHVwIHRvIHRoZSBs''@;'; put 'put ''aWNlbmNlZCBjYXBhY2l0eSBvbmx5IChudW1iZXIgb2YgdXNlcnMgb3IgQ1BVIGNvcmVzKS4gSWYgWW91IGV4Y2VlZCB0aGUgbGltaXQsIDRHTCBBcHBzIG1heSB0ZXJtaW5hdGUgdGhlIGFncmVlbWVudC5cbllvdSBzaGFsbCBVc2UgdGhlIEZ1bGwgdmVyc2lvbiBvciBUcmlhbCB2ZXJzaW9u''@;'; put 'put ''IGluIGFjY29yZGFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MgYW5kIHNoYWxsIG5vdDpcblxuKiByZW50LCBsZWFzZSwgbGVuZCwgc2VsbCwgcmVkaXN0cmlidXRlLCBzdWJsaWNlbnNlIG9yIG90aGVyd2lzZSBjb21tZXJjaWFsbHkgZXhwbG9pdCB0aGUgTGljZW5zZSBLZXksIHRoZSBGdWxs''@;'; put 'put ''IHZlcnNpb24sIG9yIHRoZSBUcmlhbCB2ZXJzaW9uO1xuKiBhc3NpZ24gdGhlIExpY2Vuc2UgS2V5LCB0aGUgRnVsbCB2ZXJzaW9uLCBvciB0aGUgVHJpYWwgdmVyc2lvbiB3aXRob3V0IHByaW9yIHdyaXR0ZW4gYXBwcm92YWwgb2YgNEdMIEFwcHM7XG4qIFVzZSB0aGUgRnVsbCB2ZXJzaW9u''@;'; put 'put ''IG9yIFRyaWFsIHZlcnNpb24gZm9yIGFueSB1bmxhd2Z1bCBvciBpbGxlZ2FsIGFjdGl2aXR5LCBvciB0byBmYWNpbGl0YXRlIGFuIHVubGF3ZnVsIG9yIGlsbGVnYWwgYWN0aXZpdHk7XG4qIGRlbGV0ZSBvciBhbHRlciBhbnkgZGlzY2xhaW1lcnMsIHdhcm5pbmdzLCBjb3B5cmlnaHQgb3Ig''@;'; put 'put ''b3RoZXIgcHJvcHJpZXRhcnkgbm90aWNlcyBhY2NvbXBhbnlpbmcgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlOyBvclxuKiBjb3B5IChleGNlcHQgYXMgb3RoZXJ3aXNlIHByb3ZpZGVkIGluIHRoaXMgRVVMQSksIGFkYXB0LCB0cmFuc2xhdGUsIGRlY29tcGlsZSwgcmV2ZXJzZSBlbmdp''@;'; put 'put ''bmVlciwgZGlzYXNzZW1ibGUsIGF0dGVtcHQgdG8gZGVyaXZlIHRoZSBzb3VyY2UgY29kZSBvZiwgbW9kaWZ5IG9yIGNyZWF0ZSBkZXJpdmF0aXZlIHdvcmtzIG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQgdGhlIExpY2Vuc2UgS2V5IG9yIGFueSBwYXJ0cyB0aGVyZW9mLCBl''@;'; put 'put ''eGNlcHQgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcuXG5cbjRHTCBBcHBzIG1heSBtb2RpZnkgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGF0IGFueSB0aW1lIGF0IGl0cyBzb2xlIGRpc2NyZXRpb24gYW5kIHdpdGhvdXQgbm90aWNlIHRvIFlvdSwgZm9y''@;'; put 'put ''IGV4YW1wbGUgdG8gY29tcGx5IHdpdGggYXBwbGljYWJsZSBsYXcgb3IgYSBjb3VydCBvcmRlciwgdG8gYXZvaWQgYSB0aGlyZCBwYXJ0eSBpbmZyaW5nZW1lbnQgY2xhaW0gb3IgdG8gcHJvdmlkZSBVcGRhdGVzIGFuZCB1cGdyYWRlcy5cbkNlcnRhaW4gY29tcG9uZW50cyBvZiBEYXRhIENv''@;'; put 'put ''bnRyb2xsZXIgZm9yIFNBU1x4YWUgYXJlIE9wZW4gU291cmNlIFNvZnR3YXJlIGFuZCBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIGFwcGxpY2FibGUgbGljZW5zZShzKSBvZiB0aGUgT3BlbiBTb3VyY2UgU29mdHdhcmUuIFlvdSBzaGFsbCBhZGhlcmUgdG8gdGhlc2UgdGVybXMg''@;'; put 'put ''YW5kIGNvbmRpdGlvbnMsIHdoaWNoIGNhbiBiZSBmb3VuZCB2aWEgdGhlIHdlYnBhZ2U6IGh0dHBzOi8vZG9jcy5kYXRhY29udHJvbGxlci5pby9saWNlbmNlcy5cblxuIyMgTWFpbnRlbmFuY2UgYW5kIHN1cHBvcnRcbjRHTCBBcHBzIHdpbGwgbm90aWZ5IFlvdSBvZiBhbnkgYXZhaWxhYmxl''@;'; put 'put ''IFVwZGF0ZXMgYW5kIHVwZ3JhZGVzLlxuWW91IHdpbGwgYmUgZW50aXRsZWQgdG8gcmVjZWl2ZSBVcGRhdGVzIGZyZWUgb2YgY2hhcmdlIGR1cmluZyB0aGUgbGljZW5jZSBwZXJpb2QsIHVwb24gcHVyY2hhc2luZyB0aGUgTGljZW5zZSBLZXkgZm9yIHRoZSBGdWxsIHZlcnNpb24uIEluIG9y''@;'; put 'put ''ZGVyIHRvIHJlY2VpdmUgVXBkYXRlcyBhZnRlciB0aGlzIHR3ZWx2ZSBtb250aHNcdTIwMTkgcGVyaW9kLCBZb3Ugd2lsbCBuZWVkIHRvIHJlbmV3IHlvdXIgTGljZW5zZSBLZXkgZm9yIHRoZSBGdWxsIHZlcnNpb247XG5BbnkgbWFpbnRlbmFuY2UgYW5kIHN1cHBvcnQgcHJvdmlkZWQgYnkg''@;'; put 'put ''NEdMIEFwcHMsIGluY2x1ZGluZyB0aGUgcHJvdmlzaW9uIG9mIFVwZGF0ZXMgYW5kIHVwZ3JhZGVzLCB3aWxsIGJlIHByb3ZpZGVkIGluIGFuIGFkZXF1YXRlIHdheSBvbiBhbiBcdTIwMWNhcyBpc1x1MjAxZCBiYXNpcyB3aXRob3V0IGFueSB3YXJyYW50eSwgYXMgc29vbiBhcyByZWFzb25h''@;'; put 'put ''Ymx5IHByYWN0aWNhYmxlLCBzdWJqZWN0IHRvIGF2YWlsYWJpbGl0eSBvZiBwZXJzb25uZWwuXG5cbiMjIFVzZSBvZiBkYXRhXG40R0wgQXBwcyBhbmQgaXRzIHN1YnNpZGlhcmllcyBtYXkgcGVyaW9kaWNhbGx5IHJlcXVlc3QgdGVjaG5pY2FsIGFuZCByZWxhdGVkIGRhdGEgY29uY2Vybmlu''@;'; put 'put ''ZyBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgWW91IGhhdmUgbGljZW5zZWQsIGluY2x1ZGluZyBhYm91dCB0aGUgdmVyc2lvbiBudW1iZXIgb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIFlvdSBoYXZlIGluc3RhbGxlZCBhbmQgYWJvdXQgdGhlIHN5c3RlbSBZb3UgaGF2ZSBp''@;'; put 'put ''bnN0YWxsZWQgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIG9uLiA0R0wgQXBwcyB3aWxsIHVzZSBzdWNoIGRhdGEgdG8gZmFjaWxpdGF0ZSBtYWludGVuYW5jZSBhbmQgc3VwcG9ydCB3aXRoIHJlc3BlY3QgdG8gRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlICB0byBpbXByb3ZlIGl0''@;'; put 'put ''cyBwcm9kdWN0cyBhbmQgdG8gcHJvdmlkZSBmdXJ0aGVyIHNlcnZpY2VzIG9yIHRlY2hub2xvZ2llcyB0byBZb3UuXG40R0wgQXBwcyBtYXkgcHJvY2VzcyBwZXJzb25hbCBkYXRhIHdpdGggcmVzcGVjdCB0byBZb3UsIGlmIGFuZCB0byB0aGUgZXh0ZW50IG5lY2Vzc2FyeSB0byBwcm92aWRl''@;'; put 'put ''IHRoZSBMaWNlbnNlIEtleSwgdG8gcHJvdmlkZSBtYWludGVuYW5jZSBhbmQgc3VwcG9ydCB0byBZb3Ugd2l0aCByZXNwZWN0IHRvIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBhbmQgdG8gY29tcGx5IHdpdGggaXRzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgRVVMQS4gVG8gdGhlIGV4''@;'; put 'put ''dGVudCA0R0wgQXBwcyB3aWxsIHByb2Nlc3MgcGVyc29uYWwgZGF0YSwgaXQgd2lsbCBjb21wbHkgd2l0aCBpdHMgb2JsaWdhdGlvbnMgdW5kZXIgYXBwbGljYWJsZSBkYXRhIHByb3RlY3Rpb24gbGF3LiBQbGVhc2Ugc2VlIG91ciBwcml2YWN5IHN0YXRlbWVudCBmb3IgbW9yZSBkZXRhaWxz''@;'; put 'put ''IG9uIHRoZSBwcm9jZXNzaW5nIG9mIFlvdXIgcGVyc29uYWwgZGF0YSB0aGF0IDRHTCBBcHBzIGhhcyBjb2xsZWN0ZWQgYW5kIHJlY2VpdmVkIHRocm91Z2ggaXRzIHdlYnNpdGUuXG5cbiMjIERpc2NsYWltZXJcbllvdSBVc2UgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGF0IFlvdXIg''@;'; put 'put ''b3duIHJpc2sgYW5kIHRoZSBlbnRpcmUgcmlzayBhcyB0byBzYXRpc2ZhY3RvcnkgcXVhbGl0eSwgcGVyZm9ybWFuY2UgYW5kIGFjY3VyYWN5IGlzIHdpdGggWW91LlxuRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlIGFuZCBhY2NvbXBhbnlpbmcgZG9jdW1lbnRhdGlvbiBhcmUgcHJvdmlk''@;'; put 'put ''ZWQgb24gYW4gXHUyMDFjYXMgaXNcdTIwMWQgYW5kIFx1MjAxY2FzIGF2YWlsYWJsZVx1MjAxZCBiYXNpcyB3aXRob3V0IHdhcnJhbnR5IC0gZXhwcmVzcyBvciBpbXBsaWVkIC0gb2YgYW55IGtpbmQsIGFuZCA0R0wgQXBwcyBzcGVjaWZpY2FsbHkgZGlzY2xhaW1zIHRoZSB3YXJyYW50eSBv''@;'; put 'put ''ZiBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZS4gTm8gb3JhbCBvciB3cml0dGVuIGFkdmljZSBnaXZlbiBieSA0R0wgQXBwcywgaXRzIGRlYWxlcnMsIGRpc3RyaWJ1dG9ycywgYWdlbnRzIG9yIGVtcGxveWVlcyBzaGFsbCBjcmVhdGUgYSB3YXJyYW50eSBvciBpbiBhbnkgd2F5''@;'; put 'put ''IGluY3JlYXNlIHRoZSBzY29wZSBvZiB0aGlzIHdhcnJhbnR5IGFuZCBZb3UgbWF5IG5vdCByZWx5IHVwb24gc3VjaCBpbmZvcm1hdGlvbiBvciBhZHZpY2UuXG5cbiMjIExpYWJpbGl0eSBsaW1pdGF0aW9uXG5UaGUgbGlhYmlsaXR5IG9mIDRHTCBBcHBzIGFuZCBhbnkgdGhpcmQgcGFydHkg''@;'; put 'put ''dGhhdCBoYXMgYmVlbiBpbnZvbHZlZCBpbiB0aGUgY3JlYXRpb24sIHByb2R1Y3Rpb24sIG9yIGRlbGl2ZXJ5IG9mIERhdGEgQ29udHJvbGxlciBmb3IgU0FTXHhhZSBmb3IgYWxsIGRhbWFnZXMgYXJpc2luZyBvdXQgb2Ygb3IgaW4gYW55IHdheSByZWxhdGluZyB0byB0aGUgRnVsbCB2ZXJz''@;'; put 'put ''aW9uLCB0aGUgVHJpYWwgdmVyc2lvbiwgdGhlIExpY2Vuc2UgS2V5LCBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYW5kL29yIHRoaXMgRVVMQSBzaGFsbCBpbiBubyBldmVudCBleGNlZWQgdGhlIGxpc3QgcHJpY2Ugb2YgdGhlIHNvZnR3YXJlLlxuXG40R0wgQXBwcyBhbmQgYW55IHRo''@;'; put 'put ''aXJkIHBhcnR5IHRoYXQgaGFzIGJlZW4gaW52b2x2ZWQgaW4gdGhlIGNyZWF0aW9uLCBwcm9kdWN0aW9uLCBvciBkZWxpdmVyeSBvZiBEYXRhIENvbnRyb2xsZXIgZm9yIFNBU1x4YWUgYXJlIHVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgbGlhYmxlIGZvciBjb25zZXF1ZW50aWFsIG9yIGluZGly''@;'; put 'put ''ZWN0IGRhbWFnZXMgKGluY2x1ZGluZyBkYW1hZ2UgZm9yIGxvc3Mgb2YgcHJvZml0LCBidXNpbmVzcyBpbnRlcnJ1cHRpb24sIGxvc3Mgb2YgZGF0YSwgYW5kIHRoZSBsaWtlIGFyaXNpbmcgb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSBEYXRhIENvbnRyb2xsZXIgZm9yIFNB''@;'; put 'put ''U1x4YWUuXG5UaGUgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5IHJlZmVycmVkIHRvIGluIGNsYXVzZSA5LjEgYW5kIDkuMiBzaGFsbCBub3QgYXBwbHkgaW4gdGhlIGV2ZW50IHRoYXQ6IChpKSBhbnkgbmVnbGlnZW5jZSBvbiB0aGUgcGFydCBvZiA0R0wgQXBwcyBsZWFkcyB0byBkZWF0aCBv''@;'; put 'put ''ciBwaHlzaWNhbCBpbmp1cnkgb3IgKGlpKSBkYW1hZ2VzIGFyaXNlIGZyb20gdGhlIGludGVudCwgd2lsbGZ1bCBtaXNjb25kdWN0IG9yIGdyb3NzIG5lZ2xpZ2VuY2Ugb2YgNEdMIEFwcHMgb3IgdGhlIG1hbmFnZW1lbnQgb2YgNEdMIEFwcHMuXG5cbiMjIFRlcm1pbmF0aW9uXG5UaGlzIEVV''@;'; put 'put ''TEEgd2lsbCBjb250aW51ZSB0byBiZSBpbiBmb3JjZSB1bnRpbCB0aGUgZXhwaXJ5IG9yIHRlcm1pbmF0aW9uIG9mIHRoZSBGdWxsIHZlcnNpb24gb3IgdGhlIFRyaWFsIHZlcnNpb24uXG5UaGUgRnVsbCB2ZXJzaW9uIG9yIFRyaWFsIHZlcnNpb24gd2lsbCB0ZXJtaW5hdGUgYXV0b21hdGlj''@;'; put 'put ''YWxseSBhdCB0aGUgZW5kIG9mIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgdGVybSwgdW5sZXNzIHJlbmV3ZWQgb3IgQWN0aXZhdGVkIHByaW9yIHRvIHRoZSBlbmQgb2YgdGhlIGFwcGxpY2FibGUgbGljZW5zZSB0ZXJtLlxuXG40R0wgQXBwcyBpcyBlbnRpdGxlZCB0byB0ZXJtaW5hdGUgdGhl''@;'; put 'put ''IEZ1bGwgdmVyc2lvbiB3aXRoIGltbWVkaWF0ZSBlZmZlY3QgYW5kIHdpdGhvdXQgcHJpb3Igbm90aWNlIGluIHRoZSBldmVudCBZb3UgZmFpbCB0byBjb21wbHkgd2l0aCB0aGUgdGVybXMgaW4gdGhpcyBFVUxBLCBvciBpbiB0aGUgZXZlbnQgNEdMIEFwcHMgaXMgcmVxdWlyZWQgdG8gZG8g''@;'; put 'put ''c28gYnkgbGF3IG9yIGFuIG9yZGVyIG9mIGFuIGFwcGxpY2FibGUgY291cnQuXG5VcG9uIHRlcm1pbmF0aW9uIG9mIHRoZSBGdWxsIHZlcnNpb24gb3IgdGhlIFRyaWFsIHZlcnNpb24gWW91IHNoYWxsIGNlYXNlIGFsbCB1c2Ugb2YgRGF0YSBDb250cm9sbGVyIGZvciBTQVNceGFlLlxuWW91''@;'; put 'put ''IGFja25vd2xlZGdlIHRoYXQgdGhlIHByb3Zpc2lvbnMgb2YgdGhpcyBFVUxBLCB3aGljaCBieSB0aGVpciBuYXR1cmUgYXJlIGludGVuZGVkIHRvIHN1cnZpdmUgdGVybWluYXRpb24sIHdpbGwgcmVtYWluIGluIGVmZmVjdCBhZnRlciB0ZXJtaW5hdGlvbiBvZiB0aGlzIEVVTEEuXG5cblxu''@;'; put 'put ''IyMgR292ZXJuaW5nIGxhdyBhbmQganVyaXNkaWN0aW9uXG5UaGlzIGFncmVlbWVudCBhbmQgYW55IGRpc3B1dGVzIG9yIGNsYWltcyBhcmlzaW5nIG91dCBvZiBvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzIHN1YmplY3QgbWF0dGVyIGFyZSBnb3Zlcm5lZCBieSBhbmQgY29uc3RydWVkIGlu''@;'; put 'put ''IGFjY29yZGFuY2Ugd2l0aCB0aGUgbGF3IG9mIEVuZ2xhbmQuXG5UaGUgcGFydGllcyBpcnJldm9jYWJseSBhZ3JlZSB0aGF0IHRoZSBjb3VydHMgb2YgRW5nbGFuZCBoYXZlIGV4Y2x1c2l2ZSBqdXJpc2RpY3Rpb24gdG8gc2V0dGxlIGFueSBkaXNwdXRlIG9yIGNsYWltIHRoYXQgYXJpc2Vz''@;'; put 'put ''IG91dCBvZiBvciBpbiBjb25uZWN0aW9uIHdpdGggdGhpcyBhZ3JlZW1lbnQuXG4nfW5nT25Jbml0KCl7fXRlcm1zQWdyZWVDaGFuZ2UoKXt0aGlzLmFncmVlQ2hlY2tlZCYmKHRoaXMuYWdyZWVCb3hMb2NrZWQ9ITAsdGhpcy5hZ3JlZUNsaWNrZWQ9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVl''@;'; put 'put ''c3QoInB1YmxpYy9yZWdpc3RlcnVzZXIiLHtTQVNDb250cm9sVGFibGU6W3tBQ0NFUFRFRDoieWVzIn1dfSkudGhlbih2PT57di5yZXR1cm4mJnYucmV0dXJuWzBdJiYiU1VDQ0VTUyI9PT12LnJldHVyblswXS5NU0cmJmxvY2F0aW9uLnJlbG9hZCgpfSkuY2F0Y2godj0+dikuZmluYWxseSgo''@;'; put 'put ''KT0+e3RoaXMuYWdyZWVCb3hMb2NrZWQ9ITEsdGhpcy5hZ3JlZUNsaWNrZWQ9ITEsdGhpcy5hZ3JlZUNoZWNrZWQ9ITF9KSl9b25DYXJkQmxvY2tTY3JvbGwoaCl7aWYoIXRoaXMuYWdyZWVDbGlja2VkKXtsZXQgdj1oLnRhcmdldDt2JiYodGhpcy5hZ3JlZUJveExvY2tlZD0hKHYuc2Nyb2xs''@;'; put 'put ''VG9wK3Yub2Zmc2V0SGVpZ2h0Pj12LnNjcm9sbEhlaWdodC0yMCkpfX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZzIpKX0sZC5cdTAyNzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXRlcm1zIl1dLGRlY2xzOjExLHZhcnM6NSxj''@;'; put 'put ''b25zdHM6W1sxLCJjYXJkIl0sWzEsImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtYmxvY2siLDMsInNjcm9sbCJdLFszLCJkYXRhIl0sWzEsImNsci1jaGVja2JveC13cmFwcGVyIiwiYWNjZXB0LWNoZWNrYm94Il0sWyJ0eXBlIiwiY2hlY2tib3giLCJpZCIsImNoZWNrYm94MSIsIm5hbWUiLCJj''@;'; put 'put ''aGVja2JveC1iYXNpYyIsMSwiY2xyLWNoZWNrYm94IiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJuZ01vZGVsQ2hhbmdlIiwiY2hhbmdlIl0sWyJmb3IiLCJjaGVja2JveDEiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJkaXYiLDApKDEsImRpdiIsMSksWXQoMiwiIEVu''@;'; put 'put ''ZCBVc2VyIExpY2Vuc2UgQWdyZWVtZW50ICIpLG50KDMsInAiKSxZdCg0LCIgV2VsY29tZSB0byBEYXRhIENvbnRyb2xsZXIgZm9yIFNBUyEgUGxlYXNlIHJldmlldyBhbmQgYWNjZXB0IGFncmVlbWVudCBiZWxvdyBpbiBvcmRlciB0byBwcm9jZWVkLiAiKSxvdCgpKCksbnQoNSwiZGl2Iiwy''@;'; put 'put ''KSxHbigic2Nyb2xsIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkNhcmRCbG9ja1Njcm9sbChDKX0pLENyKDYsIm1hcmtkb3duIiwzKSxvdCgpLG50KDcsImRpdiIsNCkoOCwiaW5wdXQiLDUpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5hZ3JlZUNoZWNrZWQ9Q30p''@;'; put 'put ''KCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYudGVybXNBZ3JlZUNoYW5nZSgpfSksb3QoKSxudCg5LCJsYWJlbCIsNiksWXQoMTAsIkkgaGF2ZSByZWFkIGFuZCBhZ3JlZSB0byB0aGUgdGVybXMgb2YgYWJvdmUuIiksb3QoKSgpKCkpLDImaCYmKHV0KDYpLFR0KCJkYXRhIix2LmV1bGFf''@;'; put 'put ''bWFya2Rvd24pLHV0KDEpLEZpKCJkaXNhYmxlZCIsdi5hZ3JlZUJveExvY2tlZCksdXQoMSksVHQoIm5nTW9kZWwiLHYuYWdyZWVDaGVja2VkKSgiZGlzYWJsZWQiLHYuYWdyZWVCb3hMb2NrZWQpKX0sZGVwZW5kZW5jaWVzOltJZixUcyxJcyxhdCxvYmVdLHN0eWxlczpbIltfbmdob3N0LSVD''@;'; put 'put ''T01QJV17aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojZjVmNmZmfS5jbHItY2hlY2tib3gtd3JhcHBlci5kaXNhYmxlZFtfbmdjb250ZW50LSVDT01QJV17b3BhY2l0eTouNX0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNv''@;'; put 'put ''bHVtbjttYXJnaW4tdG9wOjB9LmNhcmRbX25nY29udGVudC0lQ09NUCVdICAgLmNhcmQtYmxvY2tbX25nY29udGVudC0lQ09NUCVde2ZsZXg6MTtvdmVyZmxvdzphdXRvO2JhY2tncm91bmQtY29sb3I6I2Y0ZjRmNH0uYWNjZXB0LWNoZWNrYm94W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5n''@;'; put 'put ''OjEwcHggMTVweH0iXX0pLGR9KSgpO2Z1bmN0aW9uIEhqZShkLGcpezEmZCYmKG50KDAsInAiLDIwKSxZdCgxLCIgTGljZW5jZSBrZXkgaXMgaW52YWxpZC4gV2UgY2FuJ3QgcHJvdmlkZSB5b3UgbW9yZSBkZXRhaWxzIGF0IHRoZSBtb21lbnQgIiksb3QoKSl9ZnVuY3Rpb24gTmplKGQsZyl7''@;'; put 'put ''aWYoMSZkJiZDcigwLCJwIiwyMSksMiZkKXtjb25zdCBoPVF0KDMpO1R0KCJpbm5lckhUTUwiLGgubGljZW5zZUVycm9yc1toLmtleUVycm9yXSxVOCl9fWZ1bmN0aW9uIFZqZShkLGcpe2lmKDEmZCYmKG50KDAsInAiKSgxLCJzdHJvbmciKSxZdCgyLCJEZXRhaWxzOiIpLG90KCksWXQoMyks''@;'; put 'put ''b3QoKSksMiZkKXtjb25zdCBoPVF0KDMpO3V0KDMpLEppKCIgIixoLmVycm9yRGV0YWlscywiIil9fWZ1bmN0aW9uIGpqZShkLGcpe2lmKDEmZCYmKEIwKDApLHJuKDEsSGplLDIsMCwicCIsMTgpLHJuKDIsTmplLDEsMSwicCIsMTkpLHJuKDMsVmplLDQsMSwicCIsMSksUDAoKSksMiZkKXtj''@;'; put 'put ''b25zdCBoPVF0KDIpO3V0KDEpLFR0KCJuZ0lmIiwhaC5rZXlFcnJvciksdXQoMSksVHQoIm5nSWYiLGgua2V5RXJyb3IpLHV0KDEpLFR0KCJuZ0lmIixoLmVycm9yRGV0YWlscyl9fWZ1bmN0aW9uIFpqZShkLGcpezEmZCYmKEIwKDApLG50KDEsInAiLDIwKSxZdCgyLCIgVGhlIHJlZ2lzdGVy''@;'; put 'put ''ZWQgbnVtYmVyIG9mIHVzZXJzIHJlYWNoZWQgdGhlIGxpbWl0IHNwZWNpZmllZCBmb3IgeW91ciBsaWNlbmNlLiBQbGVhc2UgY29udGFjdCAiKSxudCgzLCJhIiwyMiksWXQoNCwic3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyIpLG90KCksWXQoNSwiIG9yIHlvdXIgcmVzZWxsZXIgdG8gYXJy''@;'; put 'put ''YW5nZSBhZGRpdGlvbmFsIGxpY2VuY2VzIGZvciB0aGlzIHByb2R1Y3QuICIpLG90KCksUDAoKSl9ZnVuY3Rpb24gemplKGQsZyl7MSZkJiYoQjAoMCksbnQoMSwicCIsMjApLFl0KDIsIiBVcGRhdGUgdGhlIGxpY2Vuc2Uga2V5IGJ5IHBhc3RpbmcgbGljZW5zZSBrZXkgYW5kIGFjdGl2YXRp''@;'; put 'put ''b24ga2V5IGluIHRoZSBpbnB1dHMgYmVsb3cuICIpLG90KCksUDAoKSl9ZnVuY3Rpb24gR2plKGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1RdCgyKTtGaSgibWlzc2tleSIseS5taXNzbWF0Y2hlZEtl''@;'; put 'put ''eSYmeS5taXNzbWF0Y2hlZEtleT09PWgpLHV0KDEpLEZoKCIgIixoLCIiLHY9PT0obnVsbD09eS5zeXNzaXRlLnZhbHVlP251bGw6eS5zeXNzaXRlLnZhbHVlLmxlbmd0aCktMT8iIjoiLCIsIiAiKX19ZnVuY3Rpb24gV2plKGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiwy''@;'; put 'put ''KSgxLCJkaXYiLDMpLFl0KDIsIkxpY2VuY2luZyIpLG90KCksbnQoMywiZGl2Iiw0KSxybig0LGpqZSw0LDMsIm5nLWNvbnRhaW5lciIsNSkscm4oNSxaamUsNiwwLCJuZy1jb250YWluZXIiLDUpLHJuKDYsemplLDMsMCwibmctY29udGFpbmVyIiw1KSxudCg3LCJwIikoOCwic3Ryb25nIiks''@;'; put 'put ''WXQoOSwiU1lTU0lURToiKSxvdCgpLHJuKDEwLEdqZSwyLDQsInNwYW4iLDYpLG50KDExLCJhIiw3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT12YSgxMyksQz12YSgxNSksST1RdCgpO3JldHVybiBhKEkuY29weVN5c3NpdGUoeSxDLEkuc3lzc2l0ZS52YWx1ZXx8W10p''@;'; put 'put ''KX0pLENyKDEyLCJjbHItaWNvbiIsOCw5KSxudCgxNCwic3BhbiIsMTAsMTEpLFl0KDE2LCJDb3B5IHRvIGNsaXBib2FyZCIpLG90KCkoKSgpLG50KDE3LCJmb3JtIiwxMikoMTgsInAiKSxZdCgxOSwiTGljZW5jZSBrZXk6Iiksb3QoKSxudCgyMCwiZGl2IiwxMykoMjEsInRleHRhcmVhIiwx''@;'; put 'put ''NCksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkubGljZW5zZUtleVZhbHVlPXkpfSkoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS50cmltS2V5cygpKX0pLG90KCkoKSgpLG50KDIyLCJmb3JtIiwxNSkoMjMsInAi''@;'; put 'put ''KSxZdCgyNCwiQWN0aXZhdGlvbiBrZXk6Iiksb3QoKSxudCgyNSwiZGl2IiwxMykoMjYsInRleHRhcmVhIiwxNiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuYWN0aXZhdGlvbktleVZhbHVlPXkpfSkoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIGl0KGgpLGEoUXQoKS50cmltS2V5cygpKX0pLG90KCkoKSgpLG50KDI3LCJidXR0b24iLDE3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5hcHBseUtleXMoKSl9KSxZdCgyOCwiIEFwcGx5IGxpY2VuY2Uga2V5cyAiKSxvdCgpKCkoKX1pZigyJmQp''@;'; put 'put ''e2NvbnN0IGg9UXQoKTt1dCgzKSxUdCgibmdTd2l0Y2giLGguYWN0aW9uKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwia2V5IiksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsImxpbWl0IiksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsInVwZGF0ZSIpLHV0KDQpLFR0KCJuZ0Zvck9mIixoLnN5''@;'; put 'put ''c3NpdGUudmFsdWUpLHV0KDExKSxUdCgibmdNb2RlbCIsaC5saWNlbnNlS2V5VmFsdWUpLHV0KDUpLFR0KCJuZ01vZGVsIixoLmFjdGl2YXRpb25LZXlWYWx1ZSksdXQoMSksVHQoImNsckxvYWRpbmciLGguYXBwbHlpbmdLZXlzKSgiZGlzYWJsZWQiLGgubGljZW5zZUtleVZhbHVlLmxlbmd0''@;'; put 'put ''aDwxfHxoLmFjdGl2YXRpb25LZXlWYWx1ZS5sZW5ndGg8MSl9fWZ1bmN0aW9uIFlqZShkLGcpezEmZCYmQ3IoMCwiYXBwLXRlcm1zIil9dmFyIFdxPSgoKT0+KGZ1bmN0aW9uKGQpe2Qua2V5PSJrZXkiLGQucmVnaXN0ZXI9InJlZ2lzdGVyIixkLmxpbWl0PSJsaW1pdCIsZC51cGRhdGU9InVw''@;'; put 'put ''ZGF0ZSJ9KFdxfHwoV3E9e30pKSxXcSkpKCk7bGV0IFVqZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5yb3V0ZT1oLHRoaXMucm91dGVyPXYsdGhpcy5ldmVudFNlcnZpY2U9eSx0aGlzLnNhc1NlcnZpY2U9Qyx0aGlzLmFwcFNlcnZpY2U9SSx0aGlzLmFjdGlv''@;'; put 'put ''bj1udWxsLHRoaXMubGljZW5zZUVycm9ycz17bWlzc2luZzonTGljZW5jZSBrZXkgaXMgbWlzc2luZyAtIHBsZWFzZSBjb250YWN0IDxhIGNsYXNzPSJjb2xvci1ncmVlbiIgaHJlZj0ibWFpbHRvOiBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIj5zdXBwb3J0QGRhdGFjb250cm9sbGVyLmlv''@;'; put 'put ''PC9hPiBhbmQgZW50ZXIgdmFsaWQga2V5cyBiZWxvdy4nLGV4cGlyZWQ6J0xpY2VuY2Uga2V5IGlzIGV4cGlyZWQgLSBwbGVhc2UgY29udGFjdCA8YSBjbGFzcz0iY29sb3ItZ3JlZW4iIGhyZWY9Im1haWx0bzogc3VwcG9ydEBkYXRhY29udHJvbGxlci5pbyI+c3VwcG9ydEBkYXRhY29udHJv''@;'; put 'put ''bGxlci5pbzwvYT4gYW5kIGVudGVyIHZhbGlkIGtleXMgYmVsb3cuJyxpbnZhbGlkOidMaWNlbmNlIGtleSBpcyBpbnZhbGlkIC0gcGxlYXNlIGNvbnRhY3QgPGEgY2xhc3M9ImNvbG9yLWdyZWVuIiBocmVmPSJtYWlsdG86IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iPnN1cHBvcnRAZGF0''@;'; put 'put ''YWNvbnRyb2xsZXIuaW88L2E+IGFuZCBlbnRlciB2YWxpZCBrZXlzIGJlbG93LicsbWlzc21hdGNoOidZb3VyIFNZU1NJVEUgKGJlbG93KSBpcyBub3QgZm91bmQgaW4gdGhlIGxpY2VuY2Uga2V5IC0gcGxlYXNlIGNvbnRhY3QgPGEgY2xhc3M9ImNvbG9yLWdyZWVuIiBocmVmPSJtYWlsdG86''@;'; put 'put ''IHN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW8iPnN1cHBvcnRAZGF0YWNvbnRyb2xsZXIuaW88L2E+IGFuZCBlbnRlciB2YWxpZCBrZXlzIGJlbG93Lid9LHRoaXMubGljZW5zZUtleVZhbHVlPSIiLHRoaXMuYWN0aXZhdGlvbktleVZhbHVlPSIiLHRoaXMuYXBwbHlpbmdLZXlzPSExLHRoaXMu''@;'; put 'put ''c3lzc2l0ZT10aGlzLmFwcFNlcnZpY2Uuc3lzc2l0ZSx0aGlzLmxpY2VuY2VLZXk9dGhpcy5hcHBTZXJ2aWNlLmxpY2VuY2VLZXksdGhpcy5hY3RpdmF0aW9uS2V5PXRoaXMuYXBwU2VydmljZS5hY3RpdmF0aW9uS2V5fW5nT25Jbml0KCl7dGhpcy5saWNlbnNlS2V5VmFsdWU9dGhpcy5saWNl''@;'; put 'put ''bmNlS2V5fHwiIix0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZT10aGlzLmFjdGl2YXRpb25LZXl8fCIiLHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKGg9Pnt0aGlzLmtleUVycm9yPWguZXJyb3IsdGhpcy5taXNzbWF0Y2hlZEtleT1oLm1pc3NtYXRjaElkLGguZGV0YWlscyYmKHRo''@;'; put 'put ''aXMuZXJyb3JEZXRhaWxzPWF0b2IoaC5kZXRhaWxzKSl9KSx0aGlzLnJvdXRlLnBhcmFtcy5zdWJzY3JpYmUoaD0+e2xldCB2PWguYWN0aW9uO3YmJk9iamVjdC52YWx1ZXMoV3EpLmluY2x1ZGVzKHYpJiYodGhpcy5hY3Rpb249dil9KX10cmltS2V5cygpe3RoaXMubGljZW5zZUtleVZhbHVl''@;'; put 'put ''PXRoaXMubGljZW5zZUtleVZhbHVlLnRyaW0oKSx0aGlzLmFjdGl2YXRpb25LZXlWYWx1ZT10aGlzLmFjdGl2YXRpb25LZXlWYWx1ZS50cmltKCl9Y29weVN5c3NpdGUoaCx2LHkpe2NvbnN0IEM9eS5qb2luKCJcbiIpO25hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEMpLnRoZW4oKCk9''@;'; put 'put ''PntoLnNldEF0dHJpYnV0ZSgic2hhcGUiLCJjaGVjayIpLGguc2V0QXR0cmlidXRlKCJjbGFzcyIsImlzLXN1Y2Nlc3MiKSx2LmlubmVyVGV4dD0iQ29waWVkISIsc2V0VGltZW91dCgoKT0+e2guc2V0QXR0cmlidXRlKCJzaGFwZSIsImNvcHkiKSxoLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3Mi''@;'; put 'put ''KSx2LmlubmVyVGV4dD0iQ29weSB0byBjbGlwYm9hcmQifSwxZTMpfSl9YXBwbHlLZXlzKCl7dGhpcy5hcHBseWluZ0tleXM9ITAsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImFkbWluL3JlZ2lzdGVya2V5Iix7a2V5dXBsb2FkOlt7QUNUSVZBVElPTl9LRVk6dGhpcy5hY3RpdmF0aW9uS2V5''@;'; put 'put ''VmFsdWUsTElDRU5DRV9LRVk6dGhpcy5saWNlbnNlS2V5VmFsdWV9XX0pLnRoZW4odj0+e3YucmV0dXJuJiZ2LnJldHVyblswXSYmIlNVQ0NFU1MiPT09di5yZXR1cm5bMF0uTVNHJiZsb2NhdGlvbi5yZXBsYWNlKGxvY2F0aW9uLmhyZWYuc3BsaXQoIiMiKVswXSl9KS5maW5hbGx5KCgpPT57''@;'; put 'put ''dGhpcy5hcHBseWluZ0tleXM9ITF9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUHUpLEt0KFpsKSxLdChtdSksS3QoZzIpLEt0KFI3KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1saWNlbnNpbmciXV0sZGVj''@;'; put 'put ''bHM6Mix2YXJzOjIsY29uc3RzOltbImNsYXNzIiwiY2FyZCIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsImNhcmQiXSxbMSwiY2FyZC1oZWFkZXIiXSxbMSwiY2FyZC1ibG9jayIsMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWzMsIm1pc3NrZXkiLDQsIm5nRm9yIiwibmdGb3JP''@;'; put 'put ''ZiJdLFsxLCJ0b29sdGlwIiwidG9vbHRpcC1tZCIsInRvb2x0aXAtdG9wLXJpZ2h0IiwzLCJjbGljayJdLFsic2hhcGUiLCJjb3B5Iiwic2l6ZSIsIjE1IiwxLCJjdXJzb3ItcG9pbnRlciJdLFsiY29weUljb24iLCIiXSxbMSwidG9vbHRpcC1jb250ZW50Il0sWyJjb3B5VG9vbHRpcCIsIiJd''@;'; put 'put ''LFsxLCJjbHItZm9ybSIsImxpY2Vuc2Uta2V5LWZvcm0iXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIl0sWyJuYW1lIiwibGljZW5zZS1rZXktYXJlYSIsInBsYWNlaG9sZGVyIiwiUGFzdGUgbGljZW5jZSBrZXkgaGVyZSIsMSwiY2xyLXRleHRhcmVhIiwzLCJuZ01vZGVsIiwibmdNb2Rl''@;'; put 'put ''bENoYW5nZSIsIm1vdXNlbGVhdmUiXSxbMSwiY2xyLWZvcm0iLCJhY3RpdmF0aW9uLWtleS1mb3JtIl0sWyJuYW1lIiwiYWN0aXZhdGlvbi1rZXktYXJlYSIsInBsYWNlaG9sZGVyIiwiUGFzdGUgYWN0aXZhdGlvbiBrZXkgaGVyZSIsMSwiY2xyLXRleHRhcmVhIiwzLCJuZ01vZGVsIiwibmdN''@;'; put 'put ''b2RlbENoYW5nZSIsIm1vdXNlbGVhdmUiXSxbMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJhcHBseS1rZXlzIiwzLCJjbHJMb2FkaW5nIiwiZGlzYWJsZWQiLCJjbGljayJdLFsiY2xhc3MiLCJrZXktZXJyb3IiLDQsIm5nSWYiXSxbImNsYXNzIiwia2V5LWVycm9yIiwzLCJpbm5lckhUTUwiLDQs''@;'; put 'put ''Im5nSWYiXSxbMSwia2V5LWVycm9yIl0sWzEsImtleS1lcnJvciIsMywiaW5uZXJIVE1MIl0sWyJocmVmIiwibWFpbHRvOiBzdXBwb3J0QGRhdGFjb250cm9sbGVyLmlvIiwxLCJjb2xvci1ncmVlbiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKHJuKDAsV2plLDI5LDksImRpdiIs''@;'; put 'put ''MCkscm4oMSxZamUsMSwwLCJhcHAtdGVybXMiLDEpKSwyJmgmJihUdCgibmdJZiIsInJlZ2lzdGVyIiE9PXYuYWN0aW9uKSx1dCgxKSxUdCgibmdJZiIsInJlZ2lzdGVyIj09PXYuYWN0aW9uKSl9LGRlcGVuZGVuY2llczpbeHMsTm8sSmQsaXAscGcsbTEsVHMsZGcsSXMsTGMsRmplLHdsLGdv''@;'; put 'put ''LHddLHN0eWxlczpbIltfbmdob3N0LSVDT01QJV17aGVpZ2h0OmNhbGMoMTAwJSAtIDk2cHgpO3BhZGRpbmc6MjBweH0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowfS5rZXktZXJyb3JbX25nY29udGVudC0lQ09NUCVde2ZvbnQtc2l6ZToxNnB4fS5taXNza2V5W19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXXtjb2xvcjojZTc0YzNjfS5saWNlbnNlLWtleS1mb3JtW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVde3BhZGRpbmc6MH0ubGljZW5zZS1rZXktZm9ybVtfbmdjb250ZW50LSVDT01QJV0gICAuY2xyLWNvbnRy''@;'; put 'put ''b2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVdICAgLmNsci1jb250cm9sLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0ubGljZW5zZS1rZXktZm9ybVtfbmdjb250ZW50LSVDT01QJV0g''@;'; put 'put ''ICAuY2xyLWNvbnRyb2wtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRleHRhcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSwgLmFjdGl2YXRpb24ta2V5LWZvcm1bX25nY29udGVudC0lQ09NUCVdICAgLmNsci1jb250cm9sLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICB0ZXh0''@;'; put 'put ''YXJlYVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtoZWlnaHQ6MTcwcHg7bWF4LWhlaWdodDoxNzBweDttaW4taGVpZ2h0OjE3MHB4O3Jlc2l6ZTpub25lfS5hcHBseS1rZXlzW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjEwcHg7aGVpZ2h0OjQwcHg7d2lkdGg6MjAwcHh9''@;'; put 'put ''Il19KSxkfSkoKSxaaGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuYXBwU2VydmljZT1oLHRoaXMucm91dGVyPXZ9Y2FuQWN0aXZhdGUoaCx2KXtyZXR1cm4hIShudWxsIT12JiZ2LnVybC5pbmNsdWRlcygibGljZW5zaW5nL3VwZGF0ZSIpJiZ0aGlzLmFwcFNlcnZpY2Uu''@;'; put 'put ''aXNBcHBBY3RpdmF0ZWR8fG51bGwhPT10aGlzLmFwcFNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQudmFsdWUmJiExPT09dGhpcy5hcHBTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlKXx8KHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9ob21lIiksITEpfWNhbkRlYWN0aXZhdGUoaCx2LHks''@;'; put 'put ''Qyl7cmV0dXJuIG51bGw9PT10aGlzLmFwcFNlcnZpY2UuaXNBcHBBY3RpdmF0ZWQudmFsdWV8fCEhdGhpcy5hcHBTZXJ2aWNlLmlzQXBwQWN0aXZhdGVkLnZhbHVlfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShDaShSNyksQ2koWmwpKX0sZC5cdTAy''@;'; put 'put ''NzVwcm92PUFpKHt0b2tlbjpkLGZhY3Rvcnk6ZC5cdTAyNzVmYWN9KSxkfSkoKTt2YXIgWWhlLG9PLElaO2Z1bmN0aW9uIHpoZShkKXtyZXR1cm4oemhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVy''@;'; put 'put ''biB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9TCgxMzQwMCksTCgxMzI3OCksTCg1MjMxMyksTCg3MDg2NCks''@;'; put 'put ''TCg2NDk1MiksTCg5NzA4NyksTCgzMTEyMyksTCgyNDgwKSxMKDgzMDI4KSxMKDQyNzYwKSxMKDEwNDE0KSxMKDY5MTApLEwoNTM5NTApLEwoNjM5NjcpLEwoODM1OTApLEwoMjA2NDcpLEwoNTg1OTQpLEwoNTgzMjQpLEwoOTE5NDUpLEwoNTc5NDMpLEwoOTY2NCksTCg1ODI3MiksTCgyNjU3''@;'; put 'put ''KSxMKDg2NDI3KSxMKDMzNTgzKSxMKDE4MTU4KSxMKDI4NzY0KSxMKDQ1MTM1KSxMKDM0NzcwKSxMKDY0NDE4KSxMKDE2ODI1KSxMKDMwNTcxKSxMKDc2NzQ5KSxMKDgzNjIwKTtmb3IodmFyIGxiZT0wLFlxPVsibXMiLCJtb3oiLCJ3ZWJraXQiLCJvIl0sRVo9d2luZG93LnJlcXVlc3RBbmlt''@;'; put 'put ''YXRpb25GcmFtZSxVcT13aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUseFo9MDt4WjxZcS5sZW5ndGgmJiFFWjsrK3haKUVaPXdpbmRvd1siIi5jb25jYXQoWXFbeFpdLCJSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKV0sVXE9d2luZG93WyIiLmNvbmNhdChZcVt4Wl0sIkNhbmNlbEFuaW1hdGlv''@;'; put 'put ''bkZyYW1lIildfHx3aW5kb3dbIiIuY29uY2F0KFlxW3haXSwiQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lIildO2Z1bmN0aW9uIEdoZShkKXtyZXR1cm4gRVouY2FsbCh3aW5kb3csZCl9ZnVuY3Rpb24gc2JlKCl7cmV0dXJuISFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0''@;'; put 'put ''fWZ1bmN0aW9uIHViZSgpe3JldHVybiEhZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoInRlc3QiKS50ZXh0Q29udGVudH1mdW5jdGlvbiBjYmUoKXtyZXR1cm4hIXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlfWZ1bmN0aW9uIFRaKGQpe1VxLmNhbGwod2luZG93LGQpfWZ1bmN0aW9uIFdoZSgpe3Jl''@;'; put 'put ''dHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fWZ1bmN0aW9uIFVoZSgpe3JldHVybiB2b2lkIDA9PT1ZaGUmJmZ1bmN0aW9uIFFqZSgpe3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRBQkxFIik7ZC5zdHlsZS5ib3JkZXJTcGFjaW5nPSIwIixkLnN0eWxlLmJvcmRlcldpZHRoPSIw''@;'; put 'put ''IixkLnN0eWxlLnBhZGRpbmc9IjAiO3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRCT0RZIik7ZC5hcHBlbmRDaGlsZChnKSxnLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlRSIikpLGcuZmlyc3RDaGlsZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt''@;'; put 'put ''ZW50KCJURCIpKSxnLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZC5pbm5lckhUTUw9Ijx0cj48dGQ+dDxicj50PC90ZD48L3RyPiI7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiQ0FQVElPTiIpO2guaW5uZXJIVE1MPSJjPGJyPmM8YnI+Yzxicj5jIixoLnN0eWxlLnBhZGRpbmc9IjAiLGgu''@;'; put 'put ''c3R5bGUubWFyZ2luPSIwIixkLmluc2VydEJlZm9yZShoLGcpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZCksWWhlPWQub2Zmc2V0SGVpZ2h0PDIqZC5sYXN0Q2hpbGQub2Zmc2V0SGVpZ2h0LGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZCl9KCksWWhlfWZ1bmN0aW9uIGZiZShkKXt2''@;'; put 'put ''YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG9PfHwob089Im9iamVjdCI9PT0oInVuZGVmaW5lZCI9PXR5cGVvZiBJbnRsPyJ1bmRlZmluZWQiOnpoZShJbnRsKSk/bmV3IEludGwuQ29sbGF0b3IoZCxnKS5jb21w''@;'; put 'put ''YXJlOiJmdW5jdGlvbiI9PXR5cGVvZiBTdHJpbmcucHJvdG90eXBlLmxvY2FsZUNvbXBhcmU/ZnVuY3Rpb24odix5KXtyZXR1cm4iIi5jb25jYXQodikubG9jYWxlQ29tcGFyZSh5KX06ZnVuY3Rpb24odix5KXtyZXR1cm4gdj09PXk/MDp2Pnk/LTE6MX0pfWZ1bmN0aW9uIGhiZSgpe2lmKHZv''@;'; put 'put ''aWQgMCE9PUlaKXJldHVybiBJWjt0cnl7dmFyIGQ9e2dldCBwYXNzaXZlKCl7SVo9ITB9fTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsZCxkKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsZCxkKX1jYXRjaChnKXtJWj0hMX1yZXR1cm4gSVp9ZnVuY3Rpb24gZGJl''@;'; put 'put ''KGQpe2Zvcih2YXIgZz1kLmxlbmd0aCxoPTA7aDxnOylkW2hdPVtkW2hdXSxoKz0xfWZ1bmN0aW9uIFFoZShkLGcpe2Zvcih2YXIgaD1nLmxlbmd0aCx2PTA7djxoOylkLnB1c2goZ1t2XSksdis9MX1mdW5jdGlvbiBEWihkKXt2YXIgZz1bXTtpZighZHx8MD09PWQubGVuZ3RofHwhZFswXXx8''@;'; put 'put ''MD09PWRbMF0ubGVuZ3RoKXJldHVybiBnO2Zvcih2YXIgaD1kLmxlbmd0aCx2PWRbMF0ubGVuZ3RoLHk9MDt5PGg7eSsrKWZvcih2YXIgQz0wO0M8djtDKyspZ1tDXXx8KGdbQ109W10pLGdbQ11beV09ZFt5XVtDXTtyZXR1cm4gZ31mdW5jdGlvbiBTdShkLGcsaCx2KXt2YXIgeT0tMSxDPWQs''@;'; put 'put ''ST1oO0FycmF5LmlzQXJyYXkoZCl8fChDPUFycmF5LmZyb20oZCkpO3ZhciBaPUMubGVuZ3RoO2Zvcih2JiZaJiYoST1DW3krPTFdKSx5Kz0xO3k8WjspST1nKEksQ1t5XSx5LEMpLHkrPTE7cmV0dXJuIEl9ZnVuY3Rpb24gZzQoZCxnKXt2YXIgaD0wLHY9ZDtBcnJheS5pc0FycmF5KGQpfHwo''@;'; put 'put ''dj1BcnJheS5mcm9tKGQpKTtmb3IodmFyIHk9di5sZW5ndGgsQz1bXSxJPS0xO2g8eTspe3ZhciBaPXZbaF07ZyhaLGgsdikmJihDW0krPTFdPVopLGgrPTF9cmV0dXJuIEN9ZnVuY3Rpb24gT2woZCxnKXt2YXIgaD0wLHY9ZDtBcnJheS5pc0FycmF5KGQpfHwodj1BcnJheS5mcm9tKGQpKTtm''@;'; put 'put ''b3IodmFyIHk9di5sZW5ndGgsQz1bXSxJPS0xO2g8eTspQ1tJKz0xXT1nKHZbaF0saCx2KSxoKz0xO3JldHVybiBDfWZ1bmN0aW9uIFVyKGQsZyl7dmFyIGg9MCx2PWQ7QXJyYXkuaXNBcnJheShkKXx8KHY9QXJyYXkuZnJvbShkKSk7Zm9yKHZhciB5PXYubGVuZ3RoO2g8eSYmITEhPT1nKHZb''@;'; put 'put ''aF0saCx2KTspaCs9MTtyZXR1cm4gZH1mdW5jdGlvbiBwYmUoZCl7cmV0dXJuIFN1KGQsZnVuY3Rpb24oZyxoKXtyZXR1cm4gZytofSwwKX1mdW5jdGlvbiBKamUoZCl7cmV0dXJuIFN1KGQsZnVuY3Rpb24oZyxoKXtyZXR1cm4gZz5oP2c6aH0sQXJyYXkuaXNBcnJheShkKT9kWzBdOnZvaWQg''@;'; put 'put ''MCl9ZnVuY3Rpb24gWGplKGQpe3JldHVybiBTdShkLGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGc8aD9nOmh9LEFycmF5LmlzQXJyYXkoZCk/ZFswXTp2b2lkIDApfWZ1bmN0aW9uIEtqZShkKXtyZXR1cm4gZC5sZW5ndGg/cGJlKGQpL2QubGVuZ3RoOjB9ZnVuY3Rpb24gZ2JlKGQpe3JldHVybiBT''@;'; put 'put ''dShkLGZ1bmN0aW9uKGcsaCl7cmV0dXJuIGcuY29uY2F0KEFycmF5LmlzQXJyYXkoaCk/Z2JlKGgpOmgpfSxbXSl9ZnVuY3Rpb24gSmhlKGQpe3ZhciBnPVtdO3JldHVybiBVcihkLGZ1bmN0aW9uKGgpey0xPT09Zy5pbmRleE9mKGgpJiZnLnB1c2goaCl9KSxnfWZ1bmN0aW9uIFhoZSgpe2Zv''@;'; put 'put ''cih2YXIgZD1hcmd1bWVudHMubGVuZ3RoLGc9bmV3IEFycmF5KGQpLGg9MDtoPGQ7aCsrKWdbaF09YXJndW1lbnRzW2hdO3ZhciB2PVtdLmNvbmNhdChnKSx5PXZbMF0sQz12LnNsaWNlKDEpLEk9eTtyZXR1cm4gVXIoQyxmdW5jdGlvbihaKXtJPUkuZmlsdGVyKGZ1bmN0aW9uKHVlKXtyZXR1''@;'; put 'put ''cm4hWi5pbmNsdWRlcyh1ZSl9KX0pLEl9ZnVuY3Rpb24gJGplKCl7Zm9yKHZhciBkPWFyZ3VtZW50cy5sZW5ndGgsZz1uZXcgQXJyYXkoZCksaD0wO2g8ZDtoKyspZ1toXT1hcmd1bWVudHNbaF07dmFyIHY9W10uY29uY2F0KGcpLHk9dlswXSxDPXYuc2xpY2UoMSksST15O3JldHVybiBVcihD''@;'; put 'put ''LGZ1bmN0aW9uKFope0k9SS5maWx0ZXIoZnVuY3Rpb24odWUpe3JldHVybiBaLmluY2x1ZGVzKHVlKX0pfSksSX1mdW5jdGlvbiBxamUoKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxnPW5ldyBBcnJheShkKSxoPTA7aDxkO2grKylnW2hdPWFyZ3VtZW50c1toXTt2YXIgdj1bXS5jb25j''@;'; put 'put ''YXQoZykseT12WzBdLEM9di5zbGljZSgxKSxJPW5ldyBTZXQoeSk7cmV0dXJuIFVyKEMsZnVuY3Rpb24oWil7VXIoWixmdW5jdGlvbih1ZSl7SS5oYXModWUpfHxJLmFkZCh1ZSl9KX0pLEFycmF5LmZyb20oSSl9ZnVuY3Rpb24gS2hlKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9p''@;'; put 'put ''ZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiICI7cmV0dXJuIGQuc3BsaXQoZyl9ZnVuY3Rpb24gbWJlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9''@;'; put 'put ''KTpkW2ddPWgsZH1mdW5jdGlvbiBhTyhkKXtyZXR1cm4oYU89ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9m''@;'; put 'put ''IFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBsTyhkKXt2YXIgZztyZXR1cm4gQXJyYXkuaXNBcnJheShkKT9nPVtdOihnPXt9LEdsKGQsZnVuY3Rpb24oaCx2KXsiX19jaGlsZHJlbiIh''@;'; put 'put ''PT12JiYoZ1t2XT1oJiYib2JqZWN0Ij09PWFPKGgpJiYhQXJyYXkuaXNBcnJheShoKT9sTyhoKTpBcnJheS5pc0FycmF5KGgpP2gubGVuZ3RoJiYib2JqZWN0Ij09PWFPKGhbMF0pJiYhQXJyYXkuaXNBcnJheShoWzBdKT9bbE8oaFswXSldOltdOm51bGwpfSkpLGd9ZnVuY3Rpb24gU3YoZCxn''@;'; put 'put ''KXtyZXR1cm4gZy5wcm90b3R5cGUuY29uc3RydWN0b3I9ZyxkLnByb3RvdHlwZT1uZXcgZyxkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1kLGR9ZnVuY3Rpb24gSTEoZCxnLGgpe3ZhciB2PUFycmF5LmlzQXJyYXkoaCk7cmV0dXJuIEdsKGcsZnVuY3Rpb24oeSxDKXsoITE9PT12fHxoLmluY2x1''@;'; put 'put ''ZGVzKEMpKSYmKGRbQ109eSl9KSxkfWZ1bmN0aW9uIExaKGQsZyl7R2woZyxmdW5jdGlvbihoLHYpe2dbdl0mJiJvYmplY3QiPT09YU8oZ1t2XSk/KGRbdl18fChkW3ZdPUFycmF5LmlzQXJyYXkoZ1t2XSk/W106IltvYmplY3QgRGF0ZV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j''@;'; put 'put ''YWxsKGdbdl0pP2dbdl06e30pLExaKGRbdl0sZ1t2XSkpOmRbdl09Z1t2XX0pfWZ1bmN0aW9uIGdoKGQpe3JldHVybiJvYmplY3QiPT09YU8oZCk/SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkKSk6ZH1mdW5jdGlvbiBhMyhkKXt2YXIgZz17fTtyZXR1cm4gR2woZCxmdW5jdGlvbihoLHYp''@;'; put 'put ''e2dbdl09aH0pLGd9ZnVuY3Rpb24gQjIoZCl7ZC5NSVhJTlN8fChkLk1JWElOUz1bXSk7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZz4xP2ctMTowKSx2PTE7djxnO3YrKyloW3YtMV09YXJndW1lbnRzW3ZdO3JldHVybiBVcihoLGZ1bmN0aW9uKHkpe2QuTUlYSU5T''@;'; put 'put ''LnB1c2goeS5NSVhJTl9OQU1FKSxHbCh5LGZ1bmN0aW9uKEMsSSl7aWYodm9pZCAwIT09ZC5wcm90b3R5cGVbSV0pdGhyb3cgbmV3IEVycm9yKCJNaXhpbiBjb25mbGljdC4gUHJvcGVydHkgJyIuY29uY2F0KEksIicgYWxyZWFkeSBleGlzdCBhbmQgY2Fubm90IGJlIG92ZXJ3cml0dGVuLiIp''@;'; put 'put ''KTt2YXIgQmUsTmUsS2U7ImZ1bmN0aW9uIj09dHlwZW9mIEM/ZC5wcm90b3R5cGVbSV09QzpPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5wcm90b3R5cGUsSSx7Z2V0OihCZT1JLE5lPUMsS2U9Il8iLmNvbmNhdChCZSksZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09dGhpc1tLZV0mJih0aGlz''@;'; put 'put ''W0tlXT0oZm49TmUsKEFycmF5LmlzQXJyYXkoZm4pfHx4bChmbikpJiYoZm49Z2goZm4pKSxmbikpLHRoaXNbS2VdO3ZhciBmbn0pLHNldDpmdW5jdGlvbihCZSl7dmFyIE5lPSJfIi5jb25jYXQoQmUpO3JldHVybiBmdW5jdGlvbihLZSl7dGhpc1tOZV09S2V9fShJKSxjb25maWd1cmFibGU6''@;'; put 'put ''ITB9KX0pfSksZH1mdW5jdGlvbiAkaGUoZCxnKXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZCk9PT1KU09OLnN0cmluZ2lmeShnKX1mdW5jdGlvbiB4bChkKXtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKX1mdW5jdGlvbiBTZyhkLGcs''@;'; put 'put ''aCx2KXt2LnZhbHVlPWgsdi53cml0YWJsZT0hMSE9PXYud3JpdGFibGUsdi5lbnVtZXJhYmxlPSExIT09di5lbnVtZXJhYmxlLHYuY29uZmlndXJhYmxlPSExIT09di5jb25maWd1cmFibGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx2KX1mdW5jdGlvbiBHbChkLGcpe2Zvcih2YXIgaCBp''@;'; put 'put ''biBkKWlmKCghZC5oYXNPd25Qcm9wZXJ0eXx8ZC5oYXNPd25Qcm9wZXJ0eSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsaCkpJiYhMT09PWcoZFtoXSxoLGQpKWJyZWFrO3JldHVybiBkfWZ1bmN0aW9uIHZiZShkLGcpe3ZhciBoPWcuc3BsaXQoIi4iKSx2PWQ7cmV0''@;'; put 'put ''dXJuIEdsKGgsZnVuY3Rpb24oeSl7aWYodm9pZCAwPT09KHY9dlt5XSkpcmV0dXJuIHY9dm9pZCAwLCExfSksdn1mdW5jdGlvbiBRcShkLGcsaCl7dmFyIHY9Zy5zcGxpdCgiLiIpLHk9ZDt2LmZvckVhY2goZnVuY3Rpb24oQyxJKXtJIT09di5sZW5ndGgtMT8obzEoeSxDKXx8KHlbQ109e30p''@;'; put 'put ''LHk9eVtDXSk6eVtDXT1ofSl9ZnVuY3Rpb24gSnEoZCl7cmV0dXJuIHhsKGQpP2Z1bmN0aW9uIGgodil7dmFyIHk9MDtyZXR1cm4geGwodik/R2wodixmdW5jdGlvbihDLEkpeyJfX2NoaWxkcmVuIiE9PUkmJih5Kz1oKEMpKX0pOnkrPTEseX0oZCk6MH1mdW5jdGlvbiBFUyhkKXt2YXIgZyxo''@;'; put 'put ''PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToidmFsdWUiLHY9Il8iLmNvbmNhdChoKSx5PShtYmUoZz17X3RvdWNoZWQ6ITF9LHYsZCksbWJlKGcsImlzVG91Y2hlZCIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdG91Y2hlZH0pLGcpO3Jl''@;'; put 'put ''dHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoeSxoLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1t2XX0sc2V0OmZ1bmN0aW9uKEkpe3RoaXMuX3RvdWNoZWQ9ITAsdGhpc1t2XT1JfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHl9ZnVuY3Rpb24gbzEoZCxnKXtyZXR1cm4g''@;'; put 'put ''T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZyl9RVp8fChFWj1mdW5jdGlvbihnKXt2YXIgaD0obmV3IERhdGUpLmdldFRpbWUoKSx2PU1hdGgubWF4KDAsMTYtKGgtbGJlKSkseT13aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpe2coaCt2KX0sdik7cmV0dXJuIGxi''@;'; put 'put ''ZT1oK3YseX0pLFVxfHwoVXE9ZnVuY3Rpb24oZyl7Y2xlYXJUaW1lb3V0KGcpfSksTCgxODMyMyk7dmFyIGFkPWZ1bmN0aW9uKGcpe3ZhciBoPXt2YWx1ZTohMSx0ZXN0OmZ1bmN0aW9uKHYseSl7aC52YWx1ZT1nKHYseSl9fTtyZXR1cm4gaH0sbTQ9e2Nocm9tZTphZChmdW5jdGlvbihkLGcp''@;'; put 'put ''e3JldHVybi9DaHJvbWUvLnRlc3QoZCkmJi9Hb29nbGUvLnRlc3QoZyl9KSxjaHJvbWVXZWJLaXQ6YWQoZnVuY3Rpb24oZCl7cmV0dXJuL0NyaU9TLy50ZXN0KGQpfSksZWRnZTphZChmdW5jdGlvbihkKXtyZXR1cm4vRWRnZS8udGVzdChkKX0pLGVkZ2VXZWJLaXQ6YWQoZnVuY3Rpb24oZCl7''@;'; put 'put ''cmV0dXJuL0VkZ2lPUy8udGVzdChkKX0pLGZpcmVmb3g6YWQoZnVuY3Rpb24oZCl7cmV0dXJuL0ZpcmVmb3gvLnRlc3QoZCl9KSxmaXJlZm94V2ViS2l0OmFkKGZ1bmN0aW9uKGQpe3JldHVybi9GeGlPUy8udGVzdChkKX0pLGllOmFkKGZ1bmN0aW9uKGQpe3JldHVybi9UcmlkZW50Ly50ZXN0''@;'; put 'put ''KGQpfSksaWU5OmFkKGZ1bmN0aW9uKCl7cmV0dXJuISFkb2N1bWVudC5kb2N1bWVudE1vZGV9KSxtb2JpbGU6YWQoZnVuY3Rpb24oZCl7cmV0dXJuL0FuZHJvaWR8d2ViT1N8aVBob25lfGlQYWR8aVBvZHxCbGFja0JlcnJ5fElFTW9iaWxlfE9wZXJhIE1pbmkvaS50ZXN0KGQpfSksc2FmYXJp''@;'; put 'put ''OmFkKGZ1bmN0aW9uKGQsZyl7cmV0dXJuL1NhZmFyaS8udGVzdChkKSYmL0FwcGxlIENvbXB1dGVyLy50ZXN0KGcpfSl9LHNPPXttYWM6YWQoZnVuY3Rpb24oZCl7cmV0dXJuL15NYWMvLnRlc3QoZCl9KSx3aW46YWQoZnVuY3Rpb24oZCl7cmV0dXJuL15XaW4vLnRlc3QoZCl9KSxsaW51eDph''@;'; put 'put ''ZChmdW5jdGlvbihkKXtyZXR1cm4vXkxpbnV4Ly50ZXN0KGQpfSksaW9zOmFkKGZ1bmN0aW9uKGQpe3JldHVybi9pUGhvbmV8aVBhZHxpUG9kL2kudGVzdChkKX0pfTtmdW5jdGlvbiBBYmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVu''@;'; put 'put ''dHNbMF06e30sZz1kLnVzZXJBZ2VudCxoPXZvaWQgMD09PWc/bmF2aWdhdG9yLnVzZXJBZ2VudDpnLHY9ZC52ZW5kb3IseT12b2lkIDA9PT12P25hdmlnYXRvci52ZW5kb3I6djtHbChtNCxmdW5jdGlvbihDKXsoMCxDLnRlc3QpKGgseSl9KX1mdW5jdGlvbiB5YmUoKXt2YXIgZD1hcmd1bWVu''@;'; put 'put ''dHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sZz1kLnBsYXRmb3JtLGg9dm9pZCAwPT09Zz9uYXZpZ2F0b3IucGxhdGZvcm06ZztHbChzTyxmdW5jdGlvbih2KXsoMCx2LnRlc3QpKGgpfSl9ZnVuY3Rpb24gd2JlKCl7cmV0dXJuIG00LmNocm9tZS52''@;'; put 'put ''YWx1ZX1mdW5jdGlvbiBiYmUoKXtyZXR1cm4gbTQuY2hyb21lV2ViS2l0LnZhbHVlfWZ1bmN0aW9uIFhxKCl7cmV0dXJuIG00LmZpcmVmb3gudmFsdWV9ZnVuY3Rpb24gX2JlKCl7cmV0dXJuIG00LmZpcmVmb3hXZWJLaXQudmFsdWV9ZnVuY3Rpb24gQ2JlKCl7cmV0dXJuIG00LnNhZmFyaS52''@;'; put 'put ''YWx1ZX1mdW5jdGlvbiBrYmUoKXtyZXR1cm4gbTQuZWRnZS52YWx1ZX1mdW5jdGlvbiBlWmUoKXtyZXR1cm4gbTQuZWRnZVdlYktpdC52YWx1ZX1mdW5jdGlvbiBTYmUoKXtyZXR1cm4gbTQuaWUudmFsdWV9ZnVuY3Rpb24gTWJlKCl7cmV0dXJuIG00LmllOS52YWx1ZX1mdW5jdGlvbiB0WmUo''@;'; put 'put ''KXtyZXR1cm4gbTQuaWUudmFsdWV8fG00LmVkZ2UudmFsdWV9ZnVuY3Rpb24gYjgoKXtyZXR1cm4gbTQubW9iaWxlLnZhbHVlfWZ1bmN0aW9uIHFoZSgpe3JldHVybiBzTy5pb3MudmFsdWV9ZnVuY3Rpb24gZTNlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVu''@;'; put 'put ''dHNbMF0/YXJndW1lbnRzWzBdOm5hdmlnYXRvcixnPWQubWF4VG91Y2hQb2ludHM7cmV0dXJuIGc+MiYmc08ubWFjLnZhbHVlfWZ1bmN0aW9uIHQzZSgpe3JldHVybiBzTy53aW4udmFsdWV9ZnVuY3Rpb24gS3EoKXtyZXR1cm4gc08ubWFjLnZhbHVlfWZ1bmN0aW9uIG5aZSgpe3JldHVybiBz''@;'; put 'put ''Ty5saW51eC52YWx1ZX1BYmUoKSx5YmUoKTt2YXIgRWJlLHhiZSxUYmUsSWJlLERiZSxMYmUsclplPUwoOTI3MzUpO2Z1bmN0aW9uIFAyKGQpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoLGg9bmV3IEFycmF5KGc+MT9nLTE6MCksdj0xO3Y8Zzt2KyspaFt2LTFdPWFyZ3VtZW50c1t2XTt2''@;'; put 'put ''YXIgeT1TdShkLGZ1bmN0aW9uKEMsSSxaKXtyZXR1cm4gQytJLnJlcGxhY2UoL1xyP1xuXHMqL2csIiIpKyhoW1pdP2hbWl06IiIpfSwiIik7cmV0dXJuIHkudHJpbSgpfWZ1bmN0aW9uIHVPKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX1mdW5jdGlvbiBuM2UoZCl7cmV0dXJuKG4zZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1''@;'; put 'put ''bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGV1KGQpe3ZhciBnO3N3aXRjaChuM2UoZCkpe2Nhc2Uic3RyaW5nIjpj''@;'; put 'put ''YXNlIm51bWJlciI6Zz0iIi5jb25jYXQoZCk7YnJlYWs7Y2FzZSJvYmplY3QiOmc9bnVsbD09PWQ/IiI6ZC50b1N0cmluZygpO2JyZWFrO2Nhc2UidW5kZWZpbmVkIjpnPSIiO2JyZWFrO2RlZmF1bHQ6Zz1kLnRvU3RyaW5nKCl9cmV0dXJuIGd9ZnVuY3Rpb24gVG8oZCl7cmV0dXJuIHZvaWQg''@;'; put 'put ''MCE9PWR9ZnVuY3Rpb24gYTEoZCl7cmV0dXJuIHZvaWQgMD09PWR9ZnVuY3Rpb24gZGMoZCl7cmV0dXJuIG51bGw9PT1kfHwiIj09PWR8fGExKGQpfWZ1bmN0aW9uIE9iZShkKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKX1MKDgy''@;'; put 'put ''NzU2KSxMKDE2NjYxKSxMKDc4MjQ2KTt2YXIgYzNlLGYzZSxoM2UsT1o9Imxlbmd0aCIsUlo9ZnVuY3Rpb24oZyl7cmV0dXJuIHBhcnNlSW50KGcsMTYpfSxSYmU9ZnVuY3Rpb24oZyl7cmV0dXJuIHBhcnNlSW50KGcsMTApfSwkcT1mdW5jdGlvbihnLGgsdil7cmV0dXJuIGcuc3Vic3RyKGgs''@;'; put 'put ''dil9LEJaPWZ1bmN0aW9uKGcpe3JldHVybiBnLmNvZGVQb2ludEF0KDApLTY1fSxyM2U9ZnVuY3Rpb24oZyl7cmV0dXJuIiIuY29uY2F0KGcpLnJlcGxhY2UoL1wtL2csIiIpfSxCYmU9ITEsUGJlPXtpbnZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIFAyKEViZXx8KEViZT11TyhbIlxuICAgIFRo''@;'; put 'put ''ZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIGludmFsaWQuIFxuICAgIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS4iXSxbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIGludmFsaWQu''@;'; put 'put ''XFx4MjBcbiAgICBJZiB5b3UgbmVlZCBhbnkgaGVscCwgY29udGFjdCB1cyBhdCBzdXBwb3J0QGhhbmRzb250YWJsZS5jb20uIl0pKSl9LGV4cGlyZWQ6ZnVuY3Rpb24oZyl7dmFyIGg9Zy5rZXlWYWxpZGl0eURhdGUsdj1nLmhvdFZlcnNpb247cmV0dXJuIFAyKHhiZXx8KHhiZT11TyhbIlxu''@;'; put 'put ''ICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGV4cGlyZWQgb24gIiwiLCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkIFxuICAgIHZlcnNpb24gIiwiLiBSZW5ldyB5b3VyIGxpY2Vuc2Uga2V5IGF0IGhhbmRzb250YWJsZS5jb20gb3IgZG93bmdyYWRlIHRv''@;'; put 'put ''IGEgdmVyc2lvbiByZWxlYXNlZCBwcmlvciBcbiAgICB0byAiLCIuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHNhbGVzQGhhbmRzb250YWJsZS5jb20uIl0sWyJcbiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBleHBpcmVkIG9uICIsIiwgYW5kIGlz''@;'; put 'put ''IG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFxceDIwXG4gICAgdmVyc2lvbiAiLCIuIFJlbmV3IHlvdXIgbGljZW5zZSBrZXkgYXQgaGFuZHNvbnRhYmxlLmNvbSBvciBkb3duZ3JhZGUgdG8gYSB2ZXJzaW9uIHJlbGVhc2VkIHByaW9yXFx4MjBcbiAgICB0byAiLCIuIElmIHlvdSBuZWVk''@;'; put 'put ''IGFueSBoZWxwLCBjb250YWN0IHVzIGF0IHNhbGVzQGhhbmRzb250YWJsZS5jb20uIl0pKSxoLHYsaCl9LG1pc3Npbmc6ZnVuY3Rpb24oKXtyZXR1cm4gUDIoVGJlfHwoVGJlPXVPKFsiXG4gICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgbWlzc2luZy4gVXNlIHlvdXIg''@;'; put 'put ''cHVyY2hhc2VkIGtleSB0byBhY3RpdmF0ZSB0aGUgcHJvZHVjdC4gXG4gICAgQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBhY3RpdmF0ZSBIYW5kc29udGFibGUgdG8gdXNlIGZvciBub24tY29tbWVyY2lhbCBwdXJwb3NlcyBieSBcbiAgICBwYXNzaW5nIHRoZSBrZXk6ICdub24tY29tbWVyY2lh''@;'; put 'put ''bC1hbmQtZXZhbHVhdGlvbicuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0IFxuICAgIHVzIGF0IHN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbS4iXSxbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVzZSB5b3VyIHB1cmNoYXNlZCBrZXkg''@;'; put 'put ''dG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuXFx4MjBcbiAgICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFjdGl2YXRlIEhhbmRzb250YWJsZSB0byB1c2UgZm9yIG5vbi1jb21tZXJjaWFsIHB1cnBvc2VzIGJ5XFx4MjBcbiAgICBwYXNzaW5nIHRoZSBrZXk6ICdub24tY29tbWVyY2lhbC1hbmQt''@;'; put 'put ''ZXZhbHVhdGlvbicuIElmIHlvdSBuZWVkIGFueSBoZWxwLCBjb250YWN0XFx4MjBcbiAgICB1cyBhdCBzdXBwb3J0QGhhbmRzb250YWJsZS5jb20uIl0pKSl9LG5vbl9jb21tZXJjaWFsOmZ1bmN0aW9uKCl7cmV0dXJuIiJ9fSxGYmU9e2ludmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gUDIoSWJl''@;'; put 'put ''fHwoSWJlPXVPKFsnXG4gICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFibGUgaXMgaW52YWxpZC4gXG4gICAgPGEgaHJlZj0iaHR0cHM6Ly9oYW5kc29udGFibGUuY29tL2RvY3MvdHV0b3JpYWwtbGljZW5zZS1rZXkuaHRtbCIgdGFyZ2V0PSJfYmxhbmsiPlJlYWQgbW9yZTwvYT4g''@;'; put 'put ''b24gaG93IHRvIFxuICAgIGluc3RhbGwgaXQgcHJvcGVybHkgb3IgY29udGFjdCB1cyBhdCA8YSBocmVmPSJtYWlsdG86c3VwcG9ydEBoYW5kc29udGFibGUuY29tIj5zdXBwb3J0QGhhbmRzb250YWJsZS5jb208L2E+LiddLFsnXG4gICAgVGhlIGxpY2Vuc2Uga2V5IGZvciBIYW5kc29udGFi''@;'; put 'put ''bGUgaXMgaW52YWxpZC5cXHgyMFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1vcmU8L2E+IG9uIGhvdyB0b1xceDIwXG4gICAgaW5zdGFsbCBpdCBwcm9wZXJseSBvciBj''@;'; put 'put ''b250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10pKSl9LGV4cGlyZWQ6ZnVuY3Rpb24oZyl7dmFyIGg9Zy5rZXlWYWxpZGl0eURhdGUsdj1nLmhvdFZlcnNpb247cmV0dXJuIFAyKERiZXx8''@;'; put 'put ''KERiZT11TyhbIlxuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGV4cGlyZWQgb24gIiwiLCBhbmQgaXMgbm90IHZhbGlkIGZvciB0aGUgaW5zdGFsbGVkIFxuICAgIHZlcnNpb24gIiwnLiA8YSBocmVmPSJodHRwczovL2hhbmRzb250YWJsZS5jb20vcHJpY2luZyIgdGFy''@;'; put 'put ''Z2V0PSJfYmxhbmsiPlJlbmV3PC9hPiB5b3VyIFxuICAgIGxpY2Vuc2Uga2V5IG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3IgdG8gJywnLiBJZiB5b3UgbmVlZCBhbnkgXG4gICAgaGVscCwgY29udGFjdCB1cyBhdCA8YSBocmVmPSJtYWlsdG86c2FsZXNAaGFuZHNv''@;'; put 'put ''bnRhYmxlLmNvbSI+c2FsZXNAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10sWyJcbiAgICBUaGUgbGljZW5zZSBrZXkgZm9yIEhhbmRzb250YWJsZSBleHBpcmVkIG9uICIsIiwgYW5kIGlzIG5vdCB2YWxpZCBmb3IgdGhlIGluc3RhbGxlZFxceDIwXG4gICAgdmVyc2lvbiAiLCcuIDxhIGhyZWY9''@;'; put 'put ''Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9wcmljaW5nIiB0YXJnZXQ9Il9ibGFuayI+UmVuZXc8L2E+IHlvdXJcXHgyMFxuICAgIGxpY2Vuc2Uga2V5IG9yIGRvd25ncmFkZSB0byBhIHZlcnNpb24gcmVsZWFzZWQgcHJpb3IgdG8gJywnLiBJZiB5b3UgbmVlZCBhbnlcXHgyMFxuICAgIGhl''@;'; put 'put ''bHAsIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFpbHRvOnNhbGVzQGhhbmRzb250YWJsZS5jb20iPnNhbGVzQGhhbmRzb250YWJsZS5jb208L2E+LiddKSksaCx2LGgpfSxtaXNzaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFAyKExiZXx8KExiZT11TyhbJ1xuICAgIFRoZSBsaWNlbnNlIGtleSBm''@;'; put 'put ''b3IgSGFuZHNvbnRhYmxlIGlzIG1pc3NpbmcuIFVzZSB5b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuIFxuICAgIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gYWN0aXZhdGUgSGFuZHNvbnRhYmxlIHRvIHVzZSBmb3Igbm9uLWNvbW1lcmNpYWwgcHVycG9zZXMgYnkg''@;'; put 'put ''XG4gICAgcGFzc2luZyB0aGUga2V5OiBcJ25vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uXCcuIFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1vcmU8L2E+IGFib3V0''@;'; put 'put ''IGl0IGluIFxuICAgIHRoZSBkb2N1bWVudGF0aW9uIG9yIGNvbnRhY3QgdXMgYXQgPGEgaHJlZj0ibWFpbHRvOnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbSI+c3VwcG9ydEBoYW5kc29udGFibGUuY29tPC9hPi4nXSxbJ1xuICAgIFRoZSBsaWNlbnNlIGtleSBmb3IgSGFuZHNvbnRhYmxlIGlz''@;'; put 'put ''IG1pc3NpbmcuIFVzZSB5b3VyIHB1cmNoYXNlZCBrZXkgdG8gYWN0aXZhdGUgdGhlIHByb2R1Y3QuXFx4MjBcbiAgICBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIGFjdGl2YXRlIEhhbmRzb250YWJsZSB0byB1c2UgZm9yIG5vbi1jb21tZXJjaWFsIHB1cnBvc2VzIGJ5XFx4MjBcbiAgICBwYXNz''@;'; put 'put ''aW5nIHRoZSBrZXk6IFwnbm9uLWNvbW1lcmNpYWwtYW5kLWV2YWx1YXRpb25cJy5cXHgyMFxuICAgIDxhIGhyZWY9Imh0dHBzOi8vaGFuZHNvbnRhYmxlLmNvbS9kb2NzL3R1dG9yaWFsLWxpY2Vuc2Uta2V5Lmh0bWwiIHRhcmdldD0iX2JsYW5rIj5SZWFkIG1vcmU8L2E+IGFib3V0IGl0IGlu''@;'; put 'put ''XFx4MjBcbiAgICB0aGUgZG9jdW1lbnRhdGlvbiBvciBjb250YWN0IHVzIGF0IDxhIGhyZWY9Im1haWx0bzpzdXBwb3J0QGhhbmRzb250YWJsZS5jb20iPnN1cHBvcnRAaGFuZHNvbnRhYmxlLmNvbTwvYT4uJ10pKSl9LG5vbl9jb21tZXJjaWFsOmZ1bmN0aW9uKCl7cmV0dXJuIiJ9fTtmdW5j''@;'; put 'put ''dGlvbiBIYmUoZCxnKXt2YXIgQyxoPSFkYyhkKSx2PSJzdHJpbmciPT10eXBlb2YgZCYmIm5vbi1jb21tZXJjaWFsLWFuZC1ldmFsdWF0aW9uIj09PWQudG9Mb3dlckNhc2UoKSx5PSIxMi4xLjIiLEk9ImludmFsaWQiLFo9ImludmFsaWQiLHVlPWZ1bmN0aW9uIGFaZShkKXt2YXIgZz1bXVtP''@;'; put 'put ''Wl0saD1nO2lmKGRbT1pdIT09QlooIloiKSlyZXR1cm4hMTtmb3IodmFyIHY9IiIseT0iQjxINFArIi5zcGxpdCgiIiksQz1CWih5LnNoaWZ0KCkpO0M7Qz1CWih5LnNoaWZ0KCl8fCJBIikpLS1DPCIiW09aXT9ofD0oUmJlKCIiLmNvbmNhdChSYmUoUloodikrKFJaKCRxKGQsTWF0aC5hYnMo''@;'; put 'put ''QyksMikpK1tdKS5wYWRTdGFydCgyLCIwIikpKSklOTd8fDIpPj4xOnY9JHEoZCxDLEM/MT09PXlbT1pdPzk6ODo2KTtyZXR1cm4gaD09PWd9KGQ9cjNlKGR8fCIiKSk7aWYoaHx8dnx8dWUpaWYodWUpe3ZhciBfZT1UbCgiMDgvMDcvMjAyMiIsIkREL01NL1lZWVkiKSxCZT1NYXRoLmZsb29y''@;'; put 'put ''KF9lLnRvRGF0ZSgpLmdldFRpbWUoKS84NjRlNSksTmU9ZnVuY3Rpb24oZyl7cmV0dXJuIFJaKCRxKHIzZShnKSxSWigiMTIiKSxCWigiRiIpKSkvKFJaKCRxKHIzZShnKSxCWigiQiIpLH5+IVtdW09aXSkpfHw5KX0oZCk7aWYoQz1UbCg4NjRlNSooTmUrMSksIngiKS5mb3JtYXQoIk1NTU0g''@;'; put 'put ''REQsIFlZWVkiKSxCZT5OZSl7dmFyIEtlPVRsKCkuZGlmZihfZSwiZGF5cyIpO0k9S2U8PTE/InZhbGlkIjoiZXhwaXJlZCIsWj1LZTw9MTU/InZhbGlkIjoiZXhwaXJlZCJ9ZWxzZSBJPSJ2YWxpZCIsWj0idmFsaWQifWVsc2Ugdj8oST0ibm9uX2NvbW1lcmNpYWwiLFo9InZhbGlkIik6KEk9''@;'; put 'put ''ImludmFsaWQiLFo9ImludmFsaWQiKTtlbHNlIEk9Im1pc3NpbmciLFo9Im1pc3NpbmciO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbG9jYXRpb24mJi9eKFthLXowLTlcLV0rXC4pP1x4NjhceDYxXHg2RVx4NjRceDczXHg2Rlx4NkVceDc0XHg2MVx4NjJceDZDXHg2NVx4MkVceDYzXHg2Rlx4''@;'; put 'put ''NkQkL2kudGVzdChsb2NhdGlvbi5ob3N0KSYmKEk9InZhbGlkIixaPSJ2YWxpZCIpLEJiZXx8InZhbGlkIj09PUl8fChQYmVbSV0oe2tleVZhbGlkaXR5RGF0ZTpDLGhvdFZlcnNpb246eX0pJiZjb25zb2xlWyJub25fY29tbWVyY2lhbCI9PT1JPyJpbmZvIjoid2FybiJdKFBiZVtJXSh7a2V5''@;'; put 'put ''VmFsaWRpdHlEYXRlOkMsaG90VmVyc2lvbjp5fSkpLEJiZT0hMCksInZhbGlkIiE9PVomJmcucGFyZW50Tm9kZSYmRmJlW1pdKHtrZXlWYWxpZGl0eURhdGU6Qyxob3RWZXJzaW9uOnl9KSl7dmFyICR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOyR0LmlkPSJob3QtZGlzcGxheS1s''@;'; put 'put ''aWNlbnNlLWluZm8iLCR0LmlubmVySFRNTD1GYmVbWl0oe2tleVZhbGlkaXR5RGF0ZTpDLGhvdFZlcnNpb246eX0pLGcucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoJHQsZy5uZXh0U2libGluZyl9fWZ1bmN0aW9uIGxkKGQpe3JldHVybiBkWzBdLnRvVXBwZXJDYXNlKCkrZC5zdWJzdHIoMSl9''@;'; put 'put ''ZnVuY3Rpb24gbFplKCl7Zm9yKHZhciBkPVtdLGc9YXJndW1lbnRzLmxlbmd0aCxoPW5ldyBBcnJheShnKSx2PTA7djxnO3YrKyloW3ZdPWFyZ3VtZW50c1t2XTtmb3IodmFyIHk9aC5sZW5ndGg7eTspe3ZhciBDPWV1KGhbeS09MV0pLnRvTG93ZXJDYXNlKCk7LTE9PT1kLmluZGV4T2YoQykm''@;'; put 'put ''JmQucHVzaChDKX1yZXR1cm4gMT09PWQubGVuZ3RofWZ1bmN0aW9uIGkzZSgpe2Z1bmN0aW9uIGQoKXtyZXR1cm4gTWF0aC5mbG9vcig2NTUzNiooMStNYXRoLnJhbmRvbSgpKSkudG9TdHJpbmcoMTYpLnN1YnN0cmluZygxKX1yZXR1cm4gZCgpK2QoKStkKCkrZCgpfWZ1bmN0aW9uIG8zZShk''@;'; put 'put ''KXtyZXR1cm4vXihbMC05XVswLTldPyUkKXwoXjEwMCUkKS8udGVzdChkKX1mdW5jdGlvbiBhM2UoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiIiLmNvbmNhdChkKS5yZXBsYWNlKC8oPzpcXCk/XFsoW15b''@;'; put 'put ''XF1dKyldL2csZnVuY3Rpb24oaCx2KXtyZXR1cm4iXFwiPT09aC5jaGFyQXQoMCk/aC5zdWJzdHIoMSxoLmxlbmd0aC0xKTp2b2lkIDA9PT1nW3ZdPyIiOmdbdl19KX1mdW5jdGlvbiBsM2UoZCl7cmV0dXJuIHFxKCIiLmNvbmNhdChkKSx7QUxMT1dFRF9UQUdTOltdfSl9ZnVuY3Rpb24gcXEo''@;'; put 'put ''ZCxnKXtyZXR1cm4gclplLnNhbml0aXplKGQsZyl9ZnVuY3Rpb24gTmJlKGQpe3JldHVybiBmdW5jdGlvbiBmWmUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gczNlKGQpfShkKXx8ZnVuY3Rpb24gY1plKGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5''@;'; put 'put ''bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIHVaZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gczNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQp''@;'; put 'put ''LnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/''@;'; put 'put ''QXJyYXkkLy50ZXN0KGgpKXJldHVybiBzM2UoZCxnKX19KGQpfHxmdW5jdGlvbiBzWmUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0''@;'; put 'put ''cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBzM2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBW''@;'; put 'put ''YmUoZCl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLGg9LTEsdj1udWxsLHk9ZDtudWxsIT09eTspe2lmKGg9PT1nKXt2PXk7YnJlYWt9eS5ob3N0JiZ5Lm5vZGVUeXBlPT09Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9O''@;'; put 'put ''T0RFP3k9eS5ob3N0OihoKz0xLHk9eS5wYXJlbnROb2RlKX1yZXR1cm4gdn1mdW5jdGlvbiBqYmUoZCl7cmV0dXJuIE9iamVjdC5nZXRQcm90b3R5cGVPZihkLnBhcmVudCkmJmQuZnJhbWVFbGVtZW50fWZ1bmN0aW9uIHUzZShkKXtyZXR1cm4gamJlKGQpJiZkLnBhcmVudH1mdW5jdGlvbiBo''@;'; put 'put ''WmUoZCl7cmV0dXJuISFPYmplY3QuZ2V0UHJvdG90eXBlT2YoZC5wYXJlbnQpfWZ1bmN0aW9uIE12KGQpe2Zvcih2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saD1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZv''@;'; put 'put ''aWQgMCx2PU5vZGUseT12LkVMRU1FTlRfTk9ERSxDPXYuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSxJPWQ7bnVsbCE9SSYmSSE9PWg7KXt2YXIgWj1JLHVlPVoubm9kZVR5cGUsX2U9Wi5ub2RlTmFtZTtpZih1ZT09PXkmJihnLmluY2x1ZGVzKF9lKXx8Zy5pbmNsdWRlcyhJKSkpcmV0dXJuIEk7''@;'; put 'put ''dmFyIEJlPUksTmU9QmUuaG9zdDtJPU5lJiZ1ZT09PUM/TmU6SS5wYXJlbnROb2RlfXJldHVybiBudWxsfWZ1bmN0aW9uIFBaKGQsZyxoKXtmb3IodmFyIHY9W10seT1kO3kmJih5PU12KHksZyxoKSkmJighaHx8aC5jb250YWlucyh5KSk7KXYucHVzaCh5KSx5PXkuaG9zdCYmeS5ub2RlVHlw''@;'; put 'put ''ZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERT95Lmhvc3Q6eS5wYXJlbnROb2RlO3ZhciBDPXYubGVuZ3RoO3JldHVybiBDP3ZbQy0xXTpudWxsfWZ1bmN0aW9uIF93KGQsZyl7dmFyIGg9ZC5wYXJlbnROb2RlLHY9W107Zm9yKCJzdHJpbmciPT10eXBlb2YgZz92PUFycmF5LnByb3Rv''@;'; put 'put ''dHlwZS5zbGljZS5jYWxsKGQuZGVmYXVsdFZpZXc/ZC5xdWVyeVNlbGVjdG9yQWxsKGcpOmQub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGcpLDApOnYucHVzaChnKTtudWxsIT09aDspe2lmKHYuaW5kZXhPZihoKT4tMSlyZXR1cm4hMDtoPWgucGFyZW50Tm9kZX1yZXR1cm4hMX1m''@;'; put 'put ''dW5jdGlvbiBaYmUoZCl7dmFyIGc9MCxoPWQ7aWYoaC5wcmV2aW91c1NpYmxpbmcpZm9yKDtoPWgucHJldmlvdXNTaWJsaW5nOylnKz0xO3JldHVybiBnfWZ1bmN0aW9uIEN3KGQsZyxoKXt2YXIgdj1oLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvcigiLmh0X2Nsb25lXyIuY29uY2F0KGQp''@;'; put 'put ''KTtyZXR1cm4gdj92LmNvbnRhaW5zKGcpOm51bGx9ZnVuY3Rpb24gZWVlKGQpe3JldHVybiBkJiZkLmxlbmd0aD9kLmZpbHRlcihmdW5jdGlvbihnKXtyZXR1cm4hIWd9KTpbXX1pZihzYmUoKSl7dmFyIHpiZT1mdW5jdGlvbihnKXt2YXIgaD1nLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVy''@;'; put 'put ''biBoLmNsYXNzTGlzdC5hZGQoInRlc3QiLCJ0ZXN0MiIpLGguY2xhc3NMaXN0LmNvbnRhaW5zKCJ0ZXN0MiIpfTtjM2U9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gdm9pZCAwIT09Zy5jbGFzc0xpc3QmJiJzdHJpbmciPT10eXBlb2YgaCYmIiIhPT1oJiZnLmNsYXNzTGlzdC5jb250YWlucyhoKX0s''@;'; put 'put ''ZjNlPWZ1bmN0aW9uKGcsaCl7dmFyIHY9Zy5vd25lckRvY3VtZW50LHk9aDtpZigic3RyaW5nIj09dHlwZW9mIHkmJih5PXkuc3BsaXQoIiAiKSksKHk9ZWVlKHkpKS5sZW5ndGg+MClpZih6YmUodikpe3ZhciBDOyhDPWcuY2xhc3NMaXN0KS5hZGQuYXBwbHkoQyxOYmUoeSkpfWVsc2UgZm9y''@;'; put 'put ''KHZhciBJPTA7eVtJXTspZy5jbGFzc0xpc3QuYWRkKHlbSV0pLEkrPTF9LGgzZT1mdW5jdGlvbihnLGgpe3ZhciB2PWcub3duZXJEb2N1bWVudCx5PWg7aWYoInN0cmluZyI9PXR5cGVvZiB5JiYoeT15LnNwbGl0KCIgIikpLCh5PWVlZSh5KSkubGVuZ3RoPjApaWYoemJlKHYpKXt2YXIgQzso''@;'; put 'put ''Qz1nLmNsYXNzTGlzdCkucmVtb3ZlLmFwcGx5KEMsTmJlKHkpKX1lbHNlIGZvcih2YXIgST0wO3lbSV07KWcuY2xhc3NMaXN0LnJlbW92ZSh5W0ldKSxJKz0xfX1lbHNle3ZhciBkM2U9ZnVuY3Rpb24oZyl7cmV0dXJuIG5ldyBSZWdFeHAoIihcXHN8XikiLmNvbmNhdChnLCIoXFxzfCQpIikp''@;'; put 'put ''fTtjM2U9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gdm9pZCAwIT09Zy5jbGFzc05hbWUmJmQzZShoKS50ZXN0KGcuY2xhc3NOYW1lKX0sZjNlPWZ1bmN0aW9uKGcsaCl7dmFyIHY9Zy5jbGFzc05hbWUseT1oO2lmKCJzdHJpbmciPT10eXBlb2YgeSYmKHk9eS5zcGxpdCgiICIpKSx5PWVlZSh5KSwi''@;'; put 'put ''Ij09PXYpdj15LmpvaW4oIiAiKTtlbHNlIGZvcih2YXIgQz0wO0M8eS5sZW5ndGg7QysrKXlbQ10mJiFkM2UoeVtDXSkudGVzdCh2KSYmKHYrPSIgIi5jb25jYXQoeVtDXSkpO2cuY2xhc3NOYW1lPXZ9LGgzZT1mdW5jdGlvbihnLGgpe3ZhciB2PTAseT1nLmNsYXNzTmFtZSxDPWg7Zm9yKCJz''@;'; put 'put ''dHJpbmciPT10eXBlb2YgQyYmKEM9Qy5zcGxpdCgiICIpKSxDPWVlZShDKTtDW3ZdOyl5PXkucmVwbGFjZShkM2UoQ1t2XSksIiAiKS50cmltKCksdis9MTtnLmNsYXNzTmFtZSE9PXkmJihnLmNsYXNzTmFtZT15KX19ZnVuY3Rpb24gdGwoZCxnKXtyZXR1cm4gYzNlKGQsZyl9ZnVuY3Rpb24g''@;'; put 'put ''TzAoZCxnKXtmM2UoZCxnKX1mdW5jdGlvbiBwbChkLGcpe2gzZShkLGcpfWZ1bmN0aW9uIHAzZShkKXtpZigzPT09ZC5ub2RlVHlwZSlkLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZCk7ZWxzZSBpZihbIlRBQkxFIiwiVEhFQUQiLCJUQk9EWSIsIlRGT09UIiwiVFIiXS5pbmRleE9mKGQubm9k''@;'; put 'put ''ZU5hbWUpPi0xKWZvcih2YXIgZz1kLmNoaWxkTm9kZXMsaD1nLmxlbmd0aC0xO2g+PTA7aC0tKXAzZShnW2hdKX1mdW5jdGlvbiBEcChkKXtmb3IodmFyIGc7Zz1kLmxhc3RDaGlsZDspZC5yZW1vdmVDaGlsZChnKX12YXIgdjNlLEdiZT0vKDwoLiopPnwmKC4qKTspLztmdW5jdGlvbiBrdyhk''@;'; put 'put ''LGcpe3ZhciBoPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl07R2JlLnRlc3QoZyk/ZC5pbm5lckhUTUw9aD9xcShnKTpnOlN3KGQsZyl9ZnVuY3Rpb24gU3coZCxnKXt2YXIgaD1kLmZpcnN0Q2hpbGQ7aCYmMz09PWgubm9kZVR5cGUm''@;'; put 'put ''Jm51bGw9PT1oLm5leHRTaWJsaW5nP3ViZT9oLnRleHRDb250ZW50PWc6aC5kYXRhPWc6KERwKGQpLGQuYXBwZW5kQ2hpbGQoZC5vd25lckRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGcpKSl9ZnVuY3Rpb24gY08oZCl7Zm9yKHZhciBnPWQub3duZXJEb2N1bWVudC5kb2N1bWVudEVsZW1lbnQs''@;'; put 'put ''aD1kO2ghPT1nOyl7aWYobnVsbD09PWgpcmV0dXJuITE7aWYoaC5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSl7aWYoaC5ob3N0KXtpZihoLmhvc3QuaW1wbClyZXR1cm4gY08oaC5ob3N0LmltcGwpO2lmKGguaG9zdClyZXR1cm4gY08oaC5ob3N0KTt0aHJvdyBuZXcg''@;'; put 'put ''RXJyb3IoIkxvc3QgaW4gV2ViIENvbXBvbmVudHMgd29ybGQiKX1yZXR1cm4hMX1pZihoLnN0eWxlJiYibm9uZSI9PT1oLnN0eWxlLmRpc3BsYXkpcmV0dXJuITE7aD1oLnBhcmVudE5vZGV9cmV0dXJuITB9ZnVuY3Rpb24ganUoZCl7dmFyIEMsSSxaLHVlLGc9ZC5vd25lckRvY3VtZW50LGg9''@;'; put 'put ''Zy5kZWZhdWx0Vmlldyx2PWcuZG9jdW1lbnRFbGVtZW50LHk9ZDtpZihVaGUoKSYmeS5maXJzdENoaWxkJiYiQ0FQVElPTiI9PT15LmZpcnN0Q2hpbGQubm9kZU5hbWUpcmV0dXJue3RvcDoodWU9eS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkudG9wKyhoLnBhZ2VZT2Zmc2V0fHx2LnNjcm9s''@;'; put 'put ''bFRvcCktKHYuY2xpZW50VG9wfHwwKSxsZWZ0OnVlLmxlZnQrKGgucGFnZVhPZmZzZXR8fHYuc2Nyb2xsTGVmdCktKHYuY2xpZW50TGVmdHx8MCl9O2ZvcihDPXkub2Zmc2V0TGVmdCxJPXkub2Zmc2V0VG9wLFo9eTsoeT15Lm9mZnNldFBhcmVudCkmJnkhPT1nLmJvZHk7KUMrPXkub2Zmc2V0''@;'; put 'put ''TGVmdCxJKz15Lm9mZnNldFRvcCxaPXk7cmV0dXJuIFomJiJmaXhlZCI9PT1aLnN0eWxlLnBvc2l0aW9uJiYoQys9aC5wYWdlWE9mZnNldHx8di5zY3JvbGxMZWZ0LEkrPWgucGFnZVlPZmZzZXR8fHYuc2Nyb2xsVG9wKSx7bGVmdDpDLHRvcDpJfX1mdW5jdGlvbiBmTygpe3ZhciBkPWFyZ3Vt''@;'; put 'put ''ZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLnNjcm9sbFk7cmV0dXJuIHZvaWQgMD09PWcmJihnPWQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCksZ31mdW5jdGlvbiB4Uygpe3ZhciBkPWFyZ3VtZW50cy5sZW5n''@;'; put 'put ''dGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLnNjcm9sbFg7cmV0dXJuIHZvaWQgMD09PWcmJihnPWQuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQpLGd9ZnVuY3Rpb24gRlooZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2''@;'; put 'put ''b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOndpbmRvdztyZXR1cm4gZD09PWc/Zk8oZyk6ZC5zY3JvbGxUb3B9ZnVuY3Rpb24gdGVlKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7cmV0dXJuIGQ9''@;'; put 'put ''PT1nP3hTKGcpOmQuc2Nyb2xsTGVmdH1mdW5jdGlvbiBIWihkKXt2YXIgZz1kLm93bmVyRG9jdW1lbnQsaD1nP2cuZGVmYXVsdFZpZXc6dm9pZCAwO2d8fChoPShnPWQuZG9jdW1lbnQ/ZC5kb2N1bWVudDpkKS5kZWZhdWx0Vmlldyk7Zm9yKHZhciB2PVsiYXV0byIsInNjcm9sbCJdLHk9Y2Jl''@;'; put 'put ''KCksQz1kLnBhcmVudE5vZGU7QyYmQy5zdHlsZSYmZy5ib2R5IT09Qzspe3ZhciBJPUMuc3R5bGUsWj1JLm92ZXJmbG93LHVlPUkub3ZlcmZsb3dYLF9lPUkub3ZlcmZsb3dZO2lmKFtaLHVlLF9lXS5pbmNsdWRlcygic2Nyb2xsIikpcmV0dXJuIEM7aWYoeSl7dmFyIEJlPWguZ2V0Q29tcHV0''@;'; put 'put ''ZWRTdHlsZShDKTtpZih1ZT1CZS5vdmVyZmxvd1gsX2U9QmUub3ZlcmZsb3dZLHYuaW5jbHVkZXMoWj1CZS5vdmVyZmxvdyl8fHYuaW5jbHVkZXModWUpfHx2LmluY2x1ZGVzKF9lKSlyZXR1cm4gQ31pZihDLmNsaWVudEhlaWdodDw9Qy5zY3JvbGxIZWlnaHQrMSYmKHYuaW5jbHVkZXMoX2Up''@;'; put 'put ''fHx2LmluY2x1ZGVzKFopKXx8Qy5jbGllbnRXaWR0aDw9Qy5zY3JvbGxXaWR0aCsxJiYodi5pbmNsdWRlcyh1ZSl8fHYuaW5jbHVkZXMoWikpKXJldHVybiBDO0M9Qy5wYXJlbnROb2RlfXJldHVybiBofWZ1bmN0aW9uIGhPKGQpe2Zvcih2YXIgZz1kLm93bmVyRG9jdW1lbnQsaD1nLmRlZmF1''@;'; put 'put ''bHRWaWV3LHY9ZC5wYXJlbnROb2RlO3YmJnYuc3R5bGUmJmcuYm9keSE9PXY7KXtpZigidmlzaWJsZSIhPT12LnN0eWxlLm92ZXJmbG93JiYiIiE9PXYuc3R5bGUub3ZlcmZsb3cpcmV0dXJuIHY7dmFyIHk9TXcodixoKSxDPVsic2Nyb2xsIiwiaGlkZGVuIiwiYXV0byJdLEk9eS5nZXRQcm9w''@;'; put 'put ''ZXJ0eVZhbHVlKCJvdmVyZmxvdyIpLFo9eS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy15IiksdWU9eS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdy14Iik7aWYoQy5pbmNsdWRlcyhJKXx8Qy5pbmNsdWRlcyhaKXx8Qy5pbmNsdWRlcyh1ZSkpcmV0dXJuIHY7dj12LnBhcmVudE5vZGV9''@;'; put 'put ''cmV0dXJuIGh9ZnVuY3Rpb24gbmVlKGQsZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOndpbmRvdztpZihkKXtpZihkPT09aClyZXR1cm4id2lkdGgiPT09Zz8iIi5jb25jYXQoaC5pbm5lcldpZHRoLCJweCIpOiJoZWlnaHQi''@;'; put 'put ''PT09Zz8iIi5jb25jYXQoaC5pbm5lckhlaWdodCwicHgiKTp2b2lkIDA7dmFyIHY9ZC5zdHlsZVtnXTtpZigiIiE9PXYmJnZvaWQgMCE9PXYpcmV0dXJuIHY7dmFyIHk9TXcoZCxoKTtyZXR1cm4iIiE9PXlbZ10mJnZvaWQgMCE9PXlbZ10/eVtnXTp2b2lkIDB9fWZ1bmN0aW9uIGRaZShkLGcp''@;'; put 'put ''e3ZhciBoPWcuc2VsZWN0b3JUZXh0LHY9ITE7cmV0dXJuIGcudHlwZT09PUNTU1J1bGUuU1RZTEVfUlVMRSYmaCYmKGQubXNNYXRjaGVzU2VsZWN0b3I/dj1kLm1zTWF0Y2hlc1NlbGVjdG9yKGgpOmQubWF0Y2hlcyYmKHY9ZC5tYXRjaGVzKGgpKSksdn1mdW5jdGlvbiBNdyhkKXt2YXIgZz1h''@;'; put 'put ''cmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06d2luZG93O3JldHVybiBkLmN1cnJlbnRTdHlsZXx8Zy5nZXRDb21wdXRlZFN0eWxlKGQpfWZ1bmN0aW9uIEUyKGQpe3JldHVybiBkLm9mZnNldFdpZHRofWZ1bmN0aW9uIEQxKGQpe3JldHVybiBV''@;'; put 'put ''aGUoKSYmZC5maXJzdENoaWxkJiYiQ0FQVElPTiI9PT1kLmZpcnN0Q2hpbGQubm9kZU5hbWU/ZC5vZmZzZXRIZWlnaHQrZC5maXJzdENoaWxkLm9mZnNldEhlaWdodDpkLm9mZnNldEhlaWdodH1mdW5jdGlvbiBFdihkKXtyZXR1cm4gZC5jbGllbnRIZWlnaHR8fGQuaW5uZXJIZWlnaHR9ZnVu''@;'; put 'put ''Y3Rpb24gTlooZCl7cmV0dXJuIGQuY2xpZW50V2lkdGh8fGQuaW5uZXJXaWR0aH1mdW5jdGlvbiBwWmUoZCxnLGgpe2QuYWRkRXZlbnRMaXN0ZW5lcihnLGgsITEpfWZ1bmN0aW9uIGdaZShkLGcsaCl7ZC5yZW1vdmVFdmVudExpc3RlbmVyKGcsaCwhMSl9ZnVuY3Rpb24gZzNlKGQpe3ZhciBn''@;'; put 'put ''PWQub3duZXJEb2N1bWVudDtpZihkLnNlbGVjdGlvblN0YXJ0KXJldHVybiBkLnNlbGVjdGlvblN0YXJ0O2lmKGcuc2VsZWN0aW9uKXtkLmZvY3VzKCk7dmFyIGg9Zy5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKTtpZihudWxsPT09aClyZXR1cm4gMDt2YXIgdj1kLmNyZWF0ZVRleHRSYW5nZSgp''@;'; put 'put ''LHk9di5kdXBsaWNhdGUoKTtyZXR1cm4gdi5tb3ZlVG9Cb29rbWFyayhoLmdldEJvb2ttYXJrKCkpLHkuc2V0RW5kUG9pbnQoIkVuZFRvU3RhcnQiLHYpLHkudGV4dC5sZW5ndGh9cmV0dXJuIDB9ZnVuY3Rpb24gV2JlKGQpe3ZhciBnPWQub3duZXJEb2N1bWVudDtpZihkLnNlbGVjdGlvbkVu''@;'; put 'put ''ZClyZXR1cm4gZC5zZWxlY3Rpb25FbmQ7aWYoZy5zZWxlY3Rpb24pe3ZhciBoPWcuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKCk7cmV0dXJuIG51bGw9PT1oPzA6ZC5jcmVhdGVUZXh0UmFuZ2UoKS50ZXh0LmluZGV4T2YoaC50ZXh0KStoLnRleHQubGVuZ3RofXJldHVybiAwfWZ1bmN0aW9uIFli''@;'; put 'put ''ZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp3aW5kb3csZz1kLmRvY3VtZW50LGg9IiI7cmV0dXJuIGQuZ2V0U2VsZWN0aW9uP2g9ZC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOmcuc2VsZWN0aW9uJiYiQ29udHJvbCIh''@;'; put 'put ''PT1nLnNlbGVjdGlvbi50eXBlJiYoaD1nLnNlbGVjdGlvbi5jcmVhdGVSYW5nZSgpLnRleHQpLGh9ZnVuY3Rpb24gbTNlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOndpbmRvdyxnPWQuZG9jdW1lbnQ7ZC5nZXRTZWxlY3Rp''@;'; put 'put ''b24/ZC5nZXRTZWxlY3Rpb24oKS5lbXB0eT9kLmdldFNlbGVjdGlvbigpLmVtcHR5KCk6ZC5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMmJmQuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk6Zy5zZWxlY3Rpb24mJmcuc2VsZWN0aW9uLmVtcHR5KCl9ZnVuY3Rpb24gVloo''@;'; put 'put ''ZCxnLGgpe2lmKHZvaWQgMD09PWgmJihoPWcpLGQuc2V0U2VsZWN0aW9uUmFuZ2Upe2QuZm9jdXMoKTt0cnl7ZC5zZXRTZWxlY3Rpb25SYW5nZShnLGgpfWNhdGNoKEMpe3ZhciB2PWQucGFyZW50Tm9kZSx5PXYuc3R5bGUuZGlzcGxheTt2LnN0eWxlLmRpc3BsYXk9ImJsb2NrIixkLnNldFNl''@;'; put 'put ''bGVjdGlvblJhbmdlKGcsaCksdi5zdHlsZS5kaXNwbGF5PXl9fX1mdW5jdGlvbiBtWmUoKXt2YXIgZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06ZG9jdW1lbnQsZz1kLmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuc3R5bGUuaGVpZ2h0PSIy''@;'; put 'put ''MDBweCIsZy5zdHlsZS53aWR0aD0iMTAwJSI7dmFyIGg9ZC5jcmVhdGVFbGVtZW50KCJkaXYiKTtoLnN0eWxlLmJveFNpemluZz0iY29udGVudC1ib3giLGguc3R5bGUuaGVpZ2h0PSIxNTBweCIsaC5zdHlsZS5sZWZ0PSIwcHgiLGguc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsaC5zdHlsZS5w''@;'; put 'put ''b3NpdGlvbj0iYWJzb2x1dGUiLGguc3R5bGUudG9wPSIwcHgiLGguc3R5bGUud2lkdGg9IjIwMHB4IixoLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsaC5hcHBlbmRDaGlsZChnKSwoZC5ib2R5fHxkLmRvY3VtZW50RWxlbWVudCkuYXBwZW5kQ2hpbGQoaCk7dmFyIHY9Zy5vZmZzZXRXaWR0''@;'; put 'put ''aDtoLnN0eWxlLm92ZXJmbG93PSJzY3JvbGwiO3ZhciB5PWcub2Zmc2V0V2lkdGg7cmV0dXJuIHY9PT15JiYoeT1oLmNsaWVudFdpZHRoKSwoZC5ib2R5fHxkLmRvY3VtZW50RWxlbWVudCkucmVtb3ZlQ2hpbGQoaCksdi15fWZ1bmN0aW9uIEJjKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4w''@;'; put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmRvY3VtZW50O3JldHVybiB2b2lkIDA9PT12M2UmJih2M2U9bVplKGQpKSx2M2V9ZnVuY3Rpb24gVWJlKGQpe3JldHVybiBkLm9mZnNldFdpZHRoIT09ZC5jbGllbnRXaWR0aH1mdW5jdGlvbiBRYmUoZCl7cmV0dXJuIGQub2Zm''@;'; put 'put ''c2V0SGVpZ2h0IT09ZC5jbGllbnRIZWlnaHR9ZnVuY3Rpb24gcmVlKGQsZyxoKXtNYmUoKT8oZC5zdHlsZS50b3A9aCxkLnN0eWxlLmxlZnQ9Zyk6Q2JlKCk/ZC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXT0idHJhbnNsYXRlM2QoIi5jb25jYXQoZywiLCIpLmNvbmNhdChoLCIsMCkiKTpk''@;'; put 'put ''LnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlM2QoIi5jb25jYXQoZywiLCIpLmNvbmNhdChoLCIsMCkiKX1mdW5jdGlvbiB2WmUoZCl7dmFyIGc7cmV0dXJuIGQuc3R5bGUudHJhbnNmb3JtJiYiIiE9PShnPWQuc3R5bGUudHJhbnNmb3JtKT9bInRyYW5zZm9ybSIsZ106ZC5zdHlsZVsiLXdl''@;'; put 'put ''YmtpdC10cmFuc2Zvcm0iXSYmIiIhPT0oZz1kLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdKT9bIi13ZWJraXQtdHJhbnNmb3JtIixnXTotMX1mdW5jdGlvbiBqWihkKXtkLnN0eWxlLnRyYW5zZm9ybSYmIiIhPT1kLnN0eWxlLnRyYW5zZm9ybT9kLnN0eWxlLnRyYW5zZm9ybT0iIjpkLnN0''@;'; put 'put ''eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdJiYiIiE9PWQuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0mJihkLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybSJdPSIiKX1mdW5jdGlvbiBaWihkKXtyZXR1cm4gZCYmKFsiSU5QVVQiLCJTRUxFQ1QiLCJURVhUQVJFQSJdLmluZGV4T2YoZC5ub2Rl''@;'; put 'put ''TmFtZSk+LTF8fCJ0cnVlIj09PWQuY29udGVudEVkaXRhYmxlKX1mdW5jdGlvbiBBM2UoZCl7cmV0dXJuIFpaKGQpJiYhMT09PWQuaGFzQXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIpfWZ1bmN0aW9uIEpiZShkKXtBM2UoZC5vd25lckRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpfHxkLnNlbGVj''@;'; put 'put ''dCgpfWZ1bmN0aW9uIHkzZShkKXtyZXR1cm4hZC5wYXJlbnROb2RlfWZ1bmN0aW9uIFUyKGQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBkfWZ1bmN0aW9uIFhiZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjAwLGg9''@;'; put 'put ''MCx2PXtsYXN0Q2FsbFRocm90dGxlZDohMH0seT1udWxsO2Z1bmN0aW9uIEMoKXtmb3IodmFyIEk9dGhpcyxaPWFyZ3VtZW50cy5sZW5ndGgsdWU9bmV3IEFycmF5KFopLF9lPTA7X2U8WjtfZSsrKXVlW19lXT1hcmd1bWVudHNbX2VdO3ZhciBCZT1EYXRlLm5vdygpLE5lPSExO3YubGFzdENh''@;'; put 'put ''bGxUaHJvdHRsZWQ9ITAsaHx8KGg9QmUsTmU9ITApO3ZhciBLZT1nLShCZS1oKTtyZXR1cm4gTmU/KHYubGFzdENhbGxUaHJvdHRsZWQ9ITEsZC5hcHBseSh0aGlzLHVlKSk6KHkmJmNsZWFyVGltZW91dCh5KSx5PXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2Lmxhc3RDYWxsVGhyb3R0bGVkPSEx''@;'; put 'put ''LGQuYXBwbHkoSSx1ZSksaD0wLHk9dm9pZCAwfSxLZSkpLHZ9cmV0dXJuIEN9ZnVuY3Rpb24gQVplKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToyMDAsaD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50''@;'; put 'put ''c1syXT9hcmd1bWVudHNbMl06MTAsdj1YYmUoZCxnKSx5PWg7ZnVuY3Rpb24gQygpe3k9aH1mdW5jdGlvbiBJKCl7Zm9yKHZhciBaPWFyZ3VtZW50cy5sZW5ndGgsdWU9bmV3IEFycmF5KFopLF9lPTA7X2U8WjtfZSsrKXVlW19lXT1hcmd1bWVudHNbX2VdO3JldHVybiB5Pyh5LT0xLGQuYXBw''@;'; put 'put ''bHkodGhpcyx1ZSkpOnYuYXBwbHkodGhpcyx1ZSl9cmV0dXJuIEkuY2xlYXJIaXRzPUMsSX1mdW5jdGlvbiB3M2UoZCl7dmFyIHYsZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MjAwLGg9bnVsbDtmdW5jdGlvbiB5KCl7Zm9yKHZhciBD''@;'; put 'put ''PXRoaXMsST1hcmd1bWVudHMubGVuZ3RoLFo9bmV3IEFycmF5KEkpLHVlPTA7dWU8STt1ZSsrKVpbdWVdPWFyZ3VtZW50c1t1ZV07cmV0dXJuIGgmJmNsZWFyVGltZW91dChoKSxoPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2PWQuYXBwbHkoQyxaKX0sZyksdn1yZXR1cm4geX1mdW5jdGlvbiB5''@;'; put 'put ''WmUoKXtmb3IodmFyIGQ9YXJndW1lbnRzLmxlbmd0aCxnPW5ldyBBcnJheShkKSxoPTA7aDxkO2grKylnW2hdPWFyZ3VtZW50c1toXTt2YXIgdj1nWzBdLHk9Zy5zbGljZSgxKTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIEk9YXJndW1lbnRzLmxlbmd0aCxaPW5ldyBBcnJheShJKSx1ZT0w''@;'; put 'put ''O3VlPEk7dWUrKylaW3VlXT1hcmd1bWVudHNbdWVdO3JldHVybiBTdSh5LGZ1bmN0aW9uKF9lLEJlKXtyZXR1cm4gQmUoX2UpfSx2LmFwcGx5KHRoaXMsWikpfX1mdW5jdGlvbiBiM2UoZCl7Zm9yKHZhciBnPWFyZ3VtZW50cy5sZW5ndGgsaD1uZXcgQXJyYXkoZz4xP2ctMTowKSx2PTE7djxn''@;'; put 'put ''O3YrKyloW3YtMV09YXJndW1lbnRzW3ZdO3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgQz1hcmd1bWVudHMubGVuZ3RoLEk9bmV3IEFycmF5KEMpLFo9MDtaPEM7WisrKUlbWl09YXJndW1lbnRzW1pdO3JldHVybiBkLmFwcGx5KHRoaXMsaC5jb25jYXQoSSkpfX1mdW5jdGlvbiBLYmUoZCl7''@;'; put 'put ''dmFyIGc9ZC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uIGgodil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBDPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoQyksWj0wO1o8QztaKyspSVtaXT1hcmd1bWVudHNbWl07dmFyIHVlPXYuY29uY2F0KEkpO3JldHVybiB1ZS5sZW5ndGg+PWc/''@;'; put 'put ''ZC5hcHBseSh0aGlzLHVlKTpoKHVlKX19KFtdKX1mdW5jdGlvbiB3WmUoZCl7dmFyIGc9ZC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uIGgodil7cmV0dXJuIGZ1bmN0aW9uKCl7Zm9yKHZhciBDPWFyZ3VtZW50cy5sZW5ndGgsST1uZXcgQXJyYXkoQyksWj0wO1o8QztaKyspSVtaXT1hcmd1bWVu''@;'; put 'put ''dHNbWl07dmFyIHVlPXYuY29uY2F0KEkucmV2ZXJzZSgpKTtyZXR1cm4gdWUubGVuZ3RoPj1nP2QuYXBwbHkodGhpcyx1ZSk6aCh1ZSl9fShbXSl9ZnVuY3Rpb24gaWVlKGQsZyxoLHYseSxDLEksWil7cmV0dXJuIFRvKFopP2QuY2FsbChnLGgsdix5LEMsSSxaKTpUbyhJKT9kLmNhbGwoZyxo''@;'; put 'put ''LHYseSxDLEkpOlRvKEMpP2QuY2FsbChnLGgsdix5LEMpOlRvKHkpP2QuY2FsbChnLGgsdix5KTpUbyh2KT9kLmNhbGwoZyxoLHYpOlRvKGgpP2QuY2FsbChnLGgpOmQuY2FsbChnKX1MKDY1MTI1KTt2YXIgZV9lLFFvPXtBTFQ6MTgsQVJST1dfRE9XTjo0MCxBUlJPV19MRUZUOjM3LEFSUk9X''@;'; put 'put ''X1JJR0hUOjM5LEFSUk9XX1VQOjM4LEFVRElPX0RPV046WHEoKT8xODI6MTc0LEFVRElPX01VVEU6WHEoKT8xODE6MTczLEFVRElPX1VQOlhxKCk/MTgzOjE3NSxCQUNLU1BBQ0U6OCxDQVBTX0xPQ0s6MjAsQ09NTUE6MTg4LENPTU1BTkRfTEVGVDo5MSxDT01NQU5EX1JJR0hUOjkzLENPTU1B''@;'; put 'put ''TkRfRklSRUZPWDoyMjQsQ09OVFJPTDoxNyxERUxFVEU6NDYsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxGMToxMTIsRjI6MTEzLEYzOjExNCxGNDoxMTUsRjU6MTE2LEY2OjExNyxGNzoxMTgsRjg6MTE5LEY5OjEyMCxGMTA6MTIxLEYxMToxMjIsRjEyOjEyMyxGMTM6MTI0LEYxNDoxMjUs''@;'; put 'put ''RjE1OjEyNixGMTY6MTI3LEYxNzoxMjgsRjE4OjEyOSxGMTk6MTMwLEhPTUU6MzYsSU5TRVJUOjQ1LE1FRElBX05FWFQ6MTc2LE1FRElBX1BMQVlfUEFVU0U6MTc5LE1FRElBX1BSRVY6MTc3LE1FRElBX1NUT1A6MTc4LE5VTEw6MCxOVU1fTE9DSzoxNDQsUEFHRV9ET1dOOjM0LFBBR0VfVVA6''@;'; put 'put ''MzMsUEFVU0U6MTksUEVSSU9EOjE5MCxTQ1JPTExfTE9DSzoxNDUsU0hJRlQ6MTYsU1BBQ0U6MzIsVEFCOjksQTo2NSxDOjY3LEQ6NjgsRjo3MCxMOjc2LE86NzksUDo4MCxTOjgzLFY6ODYsWDo4OCxZOjg5LFo6OTB9LGJaZT1bUW8uQUxULFFvLkFSUk9XX0RPV04sUW8uQVJST1dfTEVGVCxR''@;'; put 'put ''by5BUlJPV19SSUdIVCxRby5BUlJPV19VUCxRby5BVURJT19ET1dOLFFvLkFVRElPX01VVEUsUW8uQVVESU9fVVAsUW8uQkFDS1NQQUNFLFFvLkNBUFNfTE9DSyxRby5ERUxFVEUsUW8uRU5ELFFvLkVOVEVSLFFvLkVTQ0FQRSxRby5GMSxRby5GMixRby5GMyxRby5GNCxRby5GNSxRby5GNixR''@;'; put 'put ''by5GNyxRby5GOCxRby5GOSxRby5GMTAsUW8uRjExLFFvLkYxMixRby5GMTMsUW8uRjE0LFFvLkYxNSxRby5GMTYsUW8uRjE3LFFvLkYxOCxRby5GMTksUW8uSE9NRSxRby5JTlNFUlQsUW8uTUVESUFfTkVYVCxRby5NRURJQV9QTEFZX1BBVVNFLFFvLk1FRElBX1BSRVYsUW8uTUVESUFfU1RP''@;'; put 'put ''UCxRby5OVUxMLFFvLk5VTV9MT0NLLFFvLlBBR0VfRE9XTixRby5QQUdFX1VQLFFvLlBBVVNFLFFvLlNDUk9MTF9MT0NLLFFvLlNISUZULFFvLlRBQl07ZnVuY3Rpb24gJGJlKGQpe3JldHVybiAzMj09PWR8fGQ+PTQ4JiZkPD01N3x8ZD49OTYmJmQ8PTExMXx8ZD49MTg2JiZkPD0xOTJ8fGQ+''@;'; put 'put ''PTIxOSYmZDw9MjIyfHxkPj0yMjZ8fGQ+PTY1JiZkPD05MH1mdW5jdGlvbiBfM2UoZCl7cmV0dXJuIGJaZS5pbmNsdWRlcyhkKX1mdW5jdGlvbiBfWmUoZCl7dmFyIGc9W107cmV0dXJuIEtxKCk/Zy5wdXNoKFFvLkNPTU1BTkRfTEVGVCxRby5DT01NQU5EX1JJR0hULFFvLkNPTU1BTkRfRklS''@;'; put 'put ''RUZPWCk6Zy5wdXNoKFFvLkNPTlRST0wpLGcuaW5jbHVkZXMoZCl9ZnVuY3Rpb24gcWJlKGQpe3JldHVybltRby5DT05UUk9MLFFvLkNPTU1BTkRfTEVGVCxRby5DT01NQU5EX1JJR0hULFFvLkNPTU1BTkRfRklSRUZPWF0uaW5jbHVkZXMoZCl9ZnVuY3Rpb24gZE8oZCxnKXt2YXIgaD1nLnNw''@;'; put 'put ''bGl0KCJ8Iiksdj0hMTtyZXR1cm4gVXIoaCxmdW5jdGlvbih5KXtpZihkPT09UW9beV0pcmV0dXJuIHY9ITAsITF9KSx2fWZ1bmN0aW9uIF84KGQpe2QuaXNJbW1lZGlhdGVQcm9wYWdhdGlvbkVuYWJsZWQ9ITEsZC5jYW5jZWxCdWJibGU9ITB9ZnVuY3Rpb24gVFMoZCl7cmV0dXJuITE9PT1k''@;'; put 'put ''LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25FbmFibGVkfWZ1bmN0aW9uIEV3KGQpe3JldHVybiAyPT09ZC5idXR0b259ZnVuY3Rpb24gb2VlKGQpe3JldHVybiAwPT09ZC5idXR0b259ZnVuY3Rpb24gbDEoKXt2YXIgZDtUbyhjb25zb2xlKSYmKGQ9Y29uc29sZSkud2Fybi5hcHBseShkLGFyZ3Vt''@;'; put 'put ''ZW50cyl9ZnVuY3Rpb24gQzNlKCl7dmFyIGQ7VG8oY29uc29sZSkmJihkPWNvbnNvbGUpLmVycm9yLmFwcGx5KGQsYXJndW1lbnRzKX1mdW5jdGlvbiB0X2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2''@;'; put 'put ''LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgcE89WyJhZnRlckNlbGxNZXRhUmVzZXQiLCJhZnRlckNoYW5nZSIsImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsImJlZm9yZUNv''@;'; put 'put ''bnRleHRNZW51U2V0SXRlbXMiLCJhZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zIiwiYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXMiLCJhZnRlckNvbnRleHRNZW51SGlkZSIsImJlZm9yZUNvbnRleHRNZW51U2hvdyIsImFmdGVyQ29udGV4dE1lbnVTaG93IiwiYWZ0ZXJDb3B5TGlt''@;'; put 'put ''aXQiLCJiZWZvcmVDcmVhdGVDb2wiLCJhZnRlckNyZWF0ZUNvbCIsImJlZm9yZUNyZWF0ZVJvdyIsImFmdGVyQ3JlYXRlUm93IiwiYWZ0ZXJEZXNlbGVjdCIsImFmdGVyRGVzdHJveSIsImFmdGVyRG9jdW1lbnRLZXlEb3duIiwiYWZ0ZXJEcmF3U2VsZWN0aW9uIiwiYmVmb3JlUmVtb3ZlQ2Vs''@;'; put 'put ''bENsYXNzTmFtZXMiLCJhZnRlckdldENlbGxNZXRhIiwiYWZ0ZXJHZXRDb2xIZWFkZXIiLCJhZnRlckdldFJvd0hlYWRlciIsImFmdGVySW5pdCIsImFmdGVyTG9hZERhdGEiLCJhZnRlclVwZGF0ZURhdGEiLCJhZnRlck1vbWVudHVtU2Nyb2xsIiwiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURv''@;'; put 'put ''d24iLCJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIiwiYWZ0ZXJPbkNlbGxNb3VzZURvd24iLCJhZnRlck9uQ2VsbE1vdXNlVXAiLCJhZnRlck9uQ2VsbENvbnRleHRNZW51IiwiYWZ0ZXJPbkNlbGxNb3VzZU92ZXIiLCJhZnRlck9uQ2VsbE1vdXNlT3V0IiwiYWZ0ZXJSZW1vdmVDb2wiLCJh''@;'; put 'put ''ZnRlclJlbW92ZVJvdyIsImJlZm9yZVJlbmRlcmVyIiwiYWZ0ZXJSZW5kZXJlciIsImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IiwiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IiwiYWZ0ZXJTZWxlY3Rpb24iLCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsImFmdGVyU2VsZWN0aW9uRW5kIiwiYWZ0ZXJT''@;'; put 'put ''ZWxlY3Rpb25FbmRCeVByb3AiLCJhZnRlclNldENlbGxNZXRhIiwiYWZ0ZXJSZW1vdmVDZWxsTWV0YSIsImFmdGVyU2V0RGF0YUF0Q2VsbCIsImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIsImFmdGVyVXBkYXRlU2V0dGluZ3MiLCJhZnRlclZhbGlk''@;'; put 'put ''YXRlIiwiYmVmb3JlTGFuZ3VhZ2VDaGFuZ2UiLCJhZnRlckxhbmd1YWdlQ2hhbmdlIiwiYmVmb3JlQXV0b2ZpbGwiLCJhZnRlckF1dG9maWxsIiwiYmVmb3JlQ2VsbEFsaWdubWVudCIsImJlZm9yZUNoYW5nZSIsImJlZm9yZUNoYW5nZVJlbmRlciIsImJlZm9yZURyYXdCb3JkZXJzIiwiYmVm''@;'; put 'put ''b3JlR2V0Q2VsbE1ldGEiLCJiZWZvcmVSZW1vdmVDZWxsTWV0YSIsImJlZm9yZUluaXQiLCJiZWZvcmVJbml0V2Fsa29udGFibGUiLCJiZWZvcmVMb2FkRGF0YSIsImJlZm9yZVVwZGF0ZURhdGEiLCJiZWZvcmVLZXlEb3duIiwiYmVmb3JlT25DZWxsTW91c2VEb3duIiwiYmVmb3JlT25DZWxs''@;'; put 'put ''TW91c2VVcCIsImJlZm9yZU9uQ2VsbENvbnRleHRNZW51IiwiYmVmb3JlT25DZWxsTW91c2VPdmVyIiwiYmVmb3JlT25DZWxsTW91c2VPdXQiLCJiZWZvcmVSZW1vdmVDb2wiLCJiZWZvcmVSZW1vdmVSb3ciLCJiZWZvcmVWaWV3UmVuZGVyIiwiYWZ0ZXJWaWV3UmVuZGVyIiwiYmVmb3JlUmVu''@;'; put 'put ''ZGVyIiwiYWZ0ZXJSZW5kZXIiLCJiZWZvcmVTZXRDZWxsTWV0YSIsImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IiwiYmVmb3JlU2V0UmFuZ2VTdGFydCIsImJlZm9yZVNldFJhbmdlRW5kIiwiYmVmb3JlVG91Y2hTY3JvbGwiLCJiZWZvcmVWYWxpZGF0ZSIsImJlZm9yZVZhbHVlUmVuZGVyIiwi''@;'; put 'put ''Y29uc3RydWN0IiwiaW5pdCIsIm1vZGlmeUNvbEhlYWRlciIsIm1vZGlmeUNvbFdpZHRoIiwibW9kaWZ5Um93SGVhZGVyIiwibW9kaWZ5Um93SGVpZ2h0IiwibW9kaWZ5RGF0YSIsIm1vZGlmeVNvdXJjZURhdGEiLCJtb2RpZnlSb3dEYXRhIiwibW9kaWZ5R2V0Q2VsbENvb3JkcyIsImJlZm9y''@;'; put 'put ''ZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIsImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJwZXJzaXN0ZW50U3RhdGVSZXNldCIsInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJiZWZvcmVDb2x1bW5Tb3J0IiwiYWZ0ZXJDb2x1bW5Tb3J0IiwibW9k''@;'; put 'put ''aWZ5QXV0b2ZpbGxSYW5nZSIsIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLCJiZWZvcmVDdXQiLCJhZnRlckN1dCIsImJlZm9yZUNvcHkiLCJhZnRlckNvcHkiLCJiZWZvcmVQYXN0ZSIsImFmdGVyUGFzdGUiLCJiZWZvcmVDb2x1bW5GcmVlemUiLCJhZnRlckNvbHVtbkZyZWV6ZSIsImJlZm9yZUNv''@;'; put 'put ''bHVtbk1vdmUiLCJhZnRlckNvbHVtbk1vdmUiLCJiZWZvcmVDb2x1bW5VbmZyZWV6ZSIsImFmdGVyQ29sdW1uVW5mcmVlemUiLCJiZWZvcmVSb3dNb3ZlIiwiYWZ0ZXJSb3dNb3ZlIiwiYmVmb3JlQ29sdW1uUmVzaXplIiwiYWZ0ZXJDb2x1bW5SZXNpemUiLCJiZWZvcmVSb3dSZXNpemUiLCJh''@;'; put 'put ''ZnRlclJvd1Jlc2l6ZSIsImFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzIiwiYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnMiLCJiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGgiLCJiZWZvcmVGaWx0ZXIiLCJhZnRlckZpbHRlciIsImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLCJh''@;'; put 'put ''ZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIiwiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIiwiYWZ0ZXJTaGVldEFkZGVkIiwiYWZ0ZXJTaGVldFJlbmFtZWQiLCJhZnRlclNoZWV0UmVtb3ZlZCIsIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIsImJlZm9yZVVuZG8iLCJiZWZvcmVVbmRv''@;'; put 'put ''U3RhY2tDaGFuZ2UiLCJhZnRlclVuZG8iLCJhZnRlclVuZG9TdGFja0NoYW5nZSIsImJlZm9yZVJlZG8iLCJiZWZvcmVSZWRvU3RhY2tDaGFuZ2UiLCJhZnRlclJlZG8iLCJhZnRlclJlZG9TdGFja0NoYW5nZSIsIm1vZGlmeVJvd0hlYWRlcldpZHRoIiwiYmVmb3JlQXV0b2ZpbGxJbnNpZGVQ''@;'; put 'put ''b3B1bGF0ZSIsIm1vZGlmeVRyYW5zZm9ybVN0YXJ0IiwibW9kaWZ5VHJhbnNmb3JtRW5kIiwiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCIsImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIiwiYWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSIsImFmdGVyVmlld3BvcnRDb2x1bW5D''@;'; put 'put ''YWxjdWxhdG9yT3ZlcnJpZGUiLCJhZnRlclBsdWdpbnNJbml0aWFsaXplZCIsImJlZm9yZUhpZGVSb3dzIiwiYWZ0ZXJIaWRlUm93cyIsImJlZm9yZVVuaGlkZVJvd3MiLCJhZnRlclVuaGlkZVJvd3MiLCJiZWZvcmVIaWRlQ29sdW1ucyIsImFmdGVySGlkZUNvbHVtbnMiLCJiZWZvcmVVbmhp''@;'; put 'put ''ZGVDb2x1bW5zIiwiYWZ0ZXJVbmhpZGVDb2x1bW5zIiwiYmVmb3JlVHJpbVJvdyIsImFmdGVyVHJpbVJvdyIsImJlZm9yZVVudHJpbVJvdyIsImFmdGVyVW50cmltUm93IiwiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIsImFmdGVyRHJvcGRvd25NZW51U2hvdyIsImFmdGVyRHJvcGRvd25NZW51''@;'; put 'put ''SGlkZSIsImJlZm9yZUFkZENoaWxkIiwiYWZ0ZXJBZGRDaGlsZCIsImJlZm9yZURldGFjaENoaWxkIiwiYWZ0ZXJEZXRhY2hDaGlsZCIsImFmdGVyQmVnaW5FZGl0aW5nIiwiYmVmb3JlTWVyZ2VDZWxscyIsImFmdGVyTWVyZ2VDZWxscyIsImJlZm9yZVVubWVyZ2VDZWxscyIsImFmdGVyVW5t''@;'; put 'put ''ZXJnZUNlbGxzIiwiYWZ0ZXJMaXN0ZW4iLCJhZnRlclVubGlzdGVuIiwiYWZ0ZXJSZWZyZXNoRGltZW5zaW9ucyIsImJlZm9yZVJlZnJlc2hEaW1lbnNpb25zIiwiYmVmb3JlQ29sdW1uQ29sbGFwc2UiLCJhZnRlckNvbHVtbkNvbGxhcHNlIiwiYmVmb3JlQ29sdW1uRXhwYW5kIiwiYWZ0ZXJD''@;'; put 'put ''b2x1bW5FeHBhbmQiLCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiXSxNWmU9UDIoZV9lfHwoZV9lPWZ1bmN0aW9uIFNaZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6''@;'; put 'put ''ZShnKX19KSl9KFsnVGhlIHBsdWdpbiBob29rICJbaG9va05hbWVdIiB3YXMgcmVtb3ZlZCBpbiBIYW5kc29udGFibGUgW3JlbW92ZWRJblZlcnNpb25dLiBcbiAgUGxlYXNlIGNvbnN1bHQgcmVsZWFzZSBub3RlcyBodHRwczovL2dpdGh1Yi5jb20vaGFuZHNvbnRhYmxlL2hhbmRzb250YWJs''@;'; put 'put ''ZS9yZWxlYXNlcy90YWcvW3JlbW92ZWRJblZlcnNpb25dIHRvIFxuICBsZWFybiBhYm91dCB0aGUgbWlncmF0aW9uIHBhdGguJ10sWydUaGUgcGx1Z2luIGhvb2sgIltob29rTmFtZV0iIHdhcyByZW1vdmVkIGluIEhhbmRzb250YWJsZSBbcmVtb3ZlZEluVmVyc2lvbl0uXFx4MjBcbiAgUGxl''@;'; put 'put ''YXNlIGNvbnN1bHQgcmVsZWFzZSBub3RlcyBodHRwczovL2dpdGh1Yi5jb20vaGFuZHNvbnRhYmxlL2hhbmRzb250YWJsZS9yZWxlYXNlcy90YWcvW3JlbW92ZWRJblZlcnNpb25dIHRvXFx4MjBcbiAgbGVhcm4gYWJvdXQgdGhlIG1pZ3JhdGlvbiBwYXRoLiddKSkpLGszZT1uZXcgTWFwKFtb''@;'; put 'put ''Im1vZGlmeVJvdyIsIjguMC4wIl0sWyJtb2RpZnlDb2wiLCI4LjAuMCJdLFsidW5tb2RpZnlSb3ciLCI4LjAuMCJdLFsidW5tb2RpZnlDb2wiLCI4LjAuMCJdLFsic2tpcExlbmd0aENhY2hlIiwiOC4wLjAiXSxbImhpZGRlbkNvbHVtbiIsIjguMC4wIl0sWyJoaWRkZW5Sb3ciLCI4LjAuMCJd''@;'; put 'put ''XSksUzNlPW5ldyBNYXAoW1siYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSIsJ1RoZSBwbHVnaW4gaG9vayAiYmVmb3JlQXV0b2ZpbGxJbnNpZGVQb3B1bGF0ZSIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHJlbGVhc2UuJ11dKSxuX2U9''@;'; put 'put ''ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIENaZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmdsb2JhbEJ1Y2tldD10aGlzLmNyZWF0ZUVtcHR5''@;'; put 'put ''QnVja2V0KCl9cmV0dXJuIGZ1bmN0aW9uIGtaZShkLGcsaCl7ZyYmdF9lKGQucHJvdG90eXBlLGcpLGgmJnRfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJjcmVhdGVFbXB0eUJ1Y2tldCIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgaD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBVcihwTyxmdW5jdGlvbih2KXtyZXR1cm4gaFt2XT1bXX0pLGh9fSx7a2V5OiJnZXRCdWNrZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRz''@;'; put 'put ''WzBdOm51bGw7cmV0dXJuIGg/KGgucGx1Z2luSG9va0J1Y2tldHx8KGgucGx1Z2luSG9va0J1Y2tldD10aGlzLmNyZWF0ZUVtcHR5QnVja2V0KCkpLGgucGx1Z2luSG9va0J1Y2tldCk6dGhpcy5nbG9iYWxCdWNrZXR9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhp''@;'; put 'put ''cyxDPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpudWxsO2lmKEFycmF5LmlzQXJyYXkodikpVXIodixmdW5jdGlvbih1ZSl7cmV0dXJuIHkuYWRkKGgsdWUsQyl9KTtlbHNle2szZS5oYXMoaCkmJmwxKGEzZShNWmUse2hvb2tOYW1lOmgs''@;'; put 'put ''cmVtb3ZlZEluVmVyc2lvbjprM2UuZ2V0KGgpfSkpLFMzZS5oYXMoaCkmJmwxKFMzZS5nZXQoaCkpO3ZhciBJPXRoaXMuZ2V0QnVja2V0KEMpO2lmKHZvaWQgMD09PUlbaF0mJih0aGlzLnJlZ2lzdGVyKGgpLElbaF09W10pLHYuc2tpcD0hMSwtMT09PUlbaF0uaW5kZXhPZih2KSl7dmFyIFo9''@;'; put 'put ''ITE7di5pbml0aWFsSG9vayYmVXIoSVtoXSxmdW5jdGlvbih1ZSxfZSl7aWYodWUuaW5pdGlhbEhvb2spcmV0dXJuIElbaF1bX2VdPXYsWj0hMCwhMX0pLFp8fElbaF0ucHVzaCh2KX19cmV0dXJuIHRoaXN9fSx7a2V5OiJvbmNlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMsQz1h''@;'; put 'put ''cmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06bnVsbDtBcnJheS5pc0FycmF5KHYpP1VyKHYsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25jZShoLEksQyl9KToodi5ydW5PbmNlPSEwLHRoaXMuYWRkKGgsdixDKSl9fSx7a2V5OiJyZW1vdmUiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOm51bGwsQz10aGlzLmdldEJ1Y2tldCh5KTtyZXR1cm4gdm9pZCAwIT09Q1toXSYmQ1toXS5pbmRleE9mKHYpPj0wJiYodi5za2lwPSEwLCEwKX19LHtr''@;'; put 'put ''ZXk6ImhhcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGwseT10aGlzLmdldEJ1Y2tldCh2KTtyZXR1cm4hKHZvaWQgMD09PXlbaF18fCF5W2hdLmxlbmd0aCl9fSx7a2V5OiJydW4iLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxaLHVlLF9lKXt2YXIgQmU9dGhpcy5nbG9iYWxCdWNrZXRbdl0sTmU9QmU/QmUubGVuZ3RoOjAsS2U9MDtpZihOZSlmb3IoO0tlPE5lOylpZihCZVtLZV0mJiFCZVtLZV0uc2tpcCl7dmFyIHB0PWllZShCZVtLZV0saCx5LEMsSSxaLHVlLF9lKTt2b2lk''@;'; put 'put ''IDAhPT1wdCYmKHk9cHQpLEJlW0tlXSYmQmVbS2VdLnJ1bk9uY2UmJnRoaXMucmVtb3ZlKHYsQmVbS2VdKSxLZSs9MX1lbHNlIEtlKz0xO3ZhciBPdD10aGlzLmdldEJ1Y2tldChoKVt2XSwkdD1PdD9PdC5sZW5ndGg6MCxmbj0wO2lmKCR0KWZvcig7Zm48JHQ7KWlmKE90W2ZuXSYmIU90W2Zu''@;'; put 'put ''XS5za2lwKXt2YXIgTG49aWVlKE90W2ZuXSxoLHksQyxJLFosdWUsX2UpO3ZvaWQgMCE9PUxuJiYoeT1MbiksT3RbZm5dJiZPdFtmbl0ucnVuT25jZSYmdGhpcy5yZW1vdmUodixPdFtmbl0saCksZm4rPTF9ZWxzZSBmbis9MTtyZXR1cm4geX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7R2wodGhpcy5nZXRCdWNrZXQoaCksZnVuY3Rpb24odix5LEMpe3JldHVybiBDW3ldLmxlbmd0aD0wfSl9fSx7a2V5OiJyZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''aCl7dGhpcy5pc1JlZ2lzdGVyZWQoaCl8fHBPLnB1c2goaCl9fSx7a2V5OiJkZXJlZ2lzdGVyIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmlzUmVnaXN0ZXJlZChoKSYmcE8uc3BsaWNlKHBPLmluZGV4T2YoaCksMSl9fSx7a2V5OiJpc0RlcHJlY2F0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3Jl''@;'; put 'put ''dHVybiBTM2UuaGFzKGgpfHxrM2UuaGFzKGgpfX0se2tleToiaXNSZWdpc3RlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gcE8uaW5kZXhPZihoKT49MH19LHtrZXk6ImdldFJlZ2lzdGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHBPfX1dLFt7a2V5OiJnZXRTaW5nbGV0b24i''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHhaZSgpe3JldHVybiBFWmV9KCl9fV0pLGR9KCksRVplPW5ldyBuX2U7Y29uc3Qgem89bl9lO2Z1bmN0aW9uIHJfZShkKXtyZXR1cm4gZnVuY3Rpb24gTFplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIE0zZShkKX0oZCl8''@;'; put 'put ''fGZ1bmN0aW9uIERaZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBJWmUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9m''@;'; put 'put ''IGQpcmV0dXJuIE0zZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20o''@;'; put 'put ''ZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gTTNlKGQsZyl9fShkKXx8ZnVuY3Rpb24gVFplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRl''@;'; put 'put ''cmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gTTNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZh''@;'; put 'put ''ciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIEUzZT1uZXcgTWFwO2Z1bmN0aW9uIExwKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiJjb21tb24iO0UzZS5oYXMoZCl8fEUzZS5z''@;'; put 'put ''ZXQoZCxuZXcgTWFwKTt2YXIgZz1FM2UuZ2V0KGQpO2Z1bmN0aW9uIGgoWix1ZSl7Zy5zZXQoWix1ZSl9ZnVuY3Rpb24gdihaKXtyZXR1cm4gZy5nZXQoWil9ZnVuY3Rpb24geShaKXtyZXR1cm4gZy5oYXMoWil9ZnVuY3Rpb24gQygpe3JldHVybiByX2UoZy5rZXlzKCkpfWZ1bmN0aW9uIEko''@;'; put 'put ''KXtyZXR1cm4gcl9lKGcudmFsdWVzKCkpfXJldHVybntyZWdpc3RlcjpoLGdldEl0ZW06dixoYXNJdGVtOnksZ2V0TmFtZXM6QyxnZXRWYWx1ZXM6SX19dmFyIHgzZT1uZXcgV2Vha01hcCx6Wj1McCgiZWRpdG9ycyIpLE9aZT16Wi5yZWdpc3RlcixpX2U9elouZ2V0SXRlbSxvX2U9elouaGFz''@;'; put 'put ''SXRlbSxSWmU9elouZ2V0TmFtZXM7ZnVuY3Rpb24gQlplKGQpe3ZhciBnPXt9LGg9ZDt0aGlzLmdldENvbnN0cnVjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIGR9LHRoaXMuZ2V0SW5zdGFuY2U9ZnVuY3Rpb24odil7cmV0dXJuIHYuZ3VpZCBpbiBnfHwoZ1t2Lmd1aWRdPW5ldyBoKHYpKSxnW3Yu''@;'; put 'put ''Z3VpZF19LHpvLmdldFNpbmdsZXRvbigpLmFkZCgiYWZ0ZXJEZXN0cm95IixmdW5jdGlvbigpe2dbdGhpcy5ndWlkXT1udWxsfSl9ZnVuY3Rpb24gYV9lKGQsZyl7dmFyIGg7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGQpeDNlLmdldChkKXx8c2QobnVsbCxkKSxoPXgzZS5nZXQoZCk7ZWxzZXtp''@;'; put 'put ''Zigic3RyaW5nIiE9dHlwZW9mIGQpdGhyb3cgRXJyb3IoJ09ubHkgc3RyaW5ncyBhbmQgZnVuY3Rpb25zIGNhbiBiZSBwYXNzZWQgYXMgImVkaXRvciIgcGFyYW1ldGVyJyk7aD1pX2UoZCl9aWYoIWgpdGhyb3cgRXJyb3IoJ05vIGVkaXRvciByZWdpc3RlcmVkIHVuZGVyIG5hbWUgIicuY29u''@;'; put 'put ''Y2F0KGQsJyInKSk7cmV0dXJuIGguZ2V0SW5zdGFuY2UoZyl9ZnVuY3Rpb24gbF9lKGQpe2lmKCFvX2UoZCkpdGhyb3cgRXJyb3IoJ05vIHJlZ2lzdGVyZWQgZWRpdG9yIGZvdW5kIHVuZGVyICInLmNvbmNhdChkLCciIG5hbWUnKSk7cmV0dXJuIGlfZShkKS5nZXRDb25zdHJ1Y3RvcigpfWZ1''@;'; put 'put ''bmN0aW9uIHNkKGQsZyl7ZCYmInN0cmluZyIhPXR5cGVvZiBkJiYoZD0oZz1kKS5FRElUT1JfVFlQRSk7dmFyIGg9bmV3IEJaZShnKTsic3RyaW5nIj09dHlwZW9mIGQmJk9aZShkLGgpLHgzZS5zZXQoZyxoKX1mdW5jdGlvbiBQWmUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBzX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4g''@;'; put 'put ''diYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgYWVlPTAsSFplPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO1BaZSh0aGlz''@;'; put 'put ''LGQpLHRoaXMuY29udGV4dD1nfHx0aGlzLHRoaXMuY29udGV4dC5ldmVudExpc3RlbmVyc3x8KHRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycz1bXSl9cmV0dXJuIGZ1bmN0aW9uIEZaZShkLGcsaCl7ZyYmc19lKGQucHJvdG90eXBlLGcpLGgmJnNfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9w''@;'; put 'put ''ZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJhZGRFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107ZnVuY3Rpb24gWih1''@;'; put 'put ''ZSl7eS5jYWxsKHRoaXMsTlplKHVlKSl9cmV0dXJuImJvb2xlYW4iIT10eXBlb2YgSSYmIWhiZSgpJiYoST0hMSksdGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnB1c2goe2VsZW1lbnQ6aCxldmVudDp2LGNhbGxiYWNrOnksY2FsbGJhY2tQcm94eTpaLG9wdGlvbnM6SSxldmVudE1hbmFn''@;'; put 'put ''ZXI6dGhpc30pLGguYWRkRXZlbnRMaXN0ZW5lcih2LFosSSksYWVlKz0xLGZ1bmN0aW9uKCl7Qy5yZW1vdmVFdmVudExpc3RlbmVyKGgsdix5KX19fSx7a2V5OiJyZW1vdmVFdmVudExpc3RlbmVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7Zm9yKHZhciBaLEM9YXJndW1lbnRzLmxlbmd0aD4z''@;'; put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXSxJPXRoaXMuY29udGV4dC5ldmVudExpc3RlbmVycy5sZW5ndGg7STspaWYoKFo9dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzW0ktPTFdKS5ldmVudD09PXYmJlouZWxlbWVudD09PWgpe2lmKHkmJnkhPT1aLmNhbGxiYWNr''@;'; put 'put ''fHxDJiZaLmV2ZW50TWFuYWdlciE9PXRoaXMpY29udGludWU7dGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnNwbGljZShJLDEpLFouZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFouZXZlbnQsWi5jYWxsYmFja1Byb3h5LFoub3B0aW9ucyksYWVlLT0xfX19LHtrZXk6ImNsZWFyRXZl''@;'; put 'put ''bnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07aWYodGhpcy5jb250ZXh0KWZvcih2YXIgdj10aGlzLmNvbnRleHQuZXZlbnRMaXN0ZW5lcnMubGVuZ3RoO3Y7KXt2YXIgeT10aGlzLmNvbnRl''@;'; put 'put ''eHQuZXZlbnRMaXN0ZW5lcnNbdi09MV07aCYmeS5ldmVudE1hbmFnZXIhPT10aGlzfHwodGhpcy5jb250ZXh0LmV2ZW50TGlzdGVuZXJzLnNwbGljZSh2LDEpLHkuZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHkuZXZlbnQseS5jYWxsYmFja1Byb3h5LHkub3B0aW9ucyksYWVlLT0xKX19''@;'; put 'put ''fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyRXZlbnRzKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXJFdmVudHMoKSx0aGlzLmNvbnRleHQ9bnVsbH19LHtrZXk6ImRlc3Ryb3lXaXRoT3duRXZlbnRzT25seSIsdmFsdWU6ZnVu''@;'; put 'put ''Y3Rpb24oKXt0aGlzLmNsZWFyRXZlbnRzKCEwKSx0aGlzLmNvbnRleHQ9bnVsbH19LHtrZXk6ImZpcmVFdmVudCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1oLmRvY3VtZW50LEM9aDt5fHwoQz0oeT1oLm93bmVyRG9jdW1lbnQ/aC5vd25lckRvY3VtZW50OmgpLmRlZmF1bHRWaWV3KTt2''@;'; put 'put ''YXIgWixJPXtidWJibGVzOiEwLGNhbmNlbGFibGU6Im1vdXNlbW92ZSIhPT12LHZpZXc6QyxkZXRhaWw6MCxzY3JlZW5YOjAsc2NyZWVuWTowLGNsaWVudFg6MSxjbGllbnRZOjEsY3RybEtleTohMSxhbHRLZXk6ITEsc2hpZnRLZXk6ITEsbWV0YUtleTohMSxidXR0b246MCxyZWxhdGVkVGFy''@;'; put 'put ''Z2V0OnZvaWQgMH07eS5jcmVhdGVFdmVudD8oWj15LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpKS5pbml0TW91c2VFdmVudCh2LEkuYnViYmxlcyxJLmNhbmNlbGFibGUsSS52aWV3LEkuZGV0YWlsLEkuc2NyZWVuWCxJLnNjcmVlblksSS5jbGllbnRYLEkuY2xpZW50WSxJLmN0cmxLZXks''@;'; put 'put ''SS5hbHRLZXksSS5zaGlmdEtleSxJLm1ldGFLZXksSS5idXR0b24sSS5yZWxhdGVkVGFyZ2V0fHx5LmJvZHkucGFyZW50Tm9kZSk6Wj15LmNyZWF0ZUV2ZW50T2JqZWN0KCksaC5kaXNwYXRjaEV2ZW50P2guZGlzcGF0Y2hFdmVudChaKTpoLmZpcmVFdmVudCgib24iLmNvbmNhdCh2KSxaKX19''@;'; put 'put ''XSksZH0oKTtmdW5jdGlvbiBOWmUoZCl7dmFyIGc9ZC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb247cmV0dXJuIGQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uPWZ1bmN0aW9uKCl7Zy5hcHBseSh0aGlzKSxfOCh0aGlzKX0sZH1jb25zdCBMMT1IWmU7ZnVuY3Rpb24gdV9lKGQsZyl7KG51bGw9''@;'; put 'put ''PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gY19lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJs''@;'; put 'put ''ZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGxlZT0iZWRpdG9yTWFuYWdlci5uYXZpZ2F0aW9uIixHWj0iZWRpdG9yTWFuYWdlci5oYW5kbGluZ0VkaXRvciIsVDNlPWZ1bmN0''@;'; put 'put ''aW9uKCl7ZnVuY3Rpb24gZChnLGgsdil7dmFyIHk9dGhpczsoZnVuY3Rpb24gWVplKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaW5zdGFuY2U9Zyx0aGlzLnRh''@;'; put 'put ''YmxlTWV0YT1oLHRoaXMuc2VsZWN0aW9uPXYsdGhpcy5ldmVudE1hbmFnZXI9bmV3IEwxKGcpLHRoaXMuZGVzdHJveWVkPSExLHRoaXMubG9jaz0hMSx0aGlzLmFjdGl2ZUVkaXRvcj12b2lkIDAsdGhpcy5jZWxsUHJvcGVydGllcz12b2lkIDAsdGhpcy5pbnN0YW5jZS5nZXRTaG9ydGN1dE1h''@;'; put 'put ''bmFnZXIoKS5hZGRDb250ZXh0KCJlZGl0b3IiKSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksdGhpcy5pbnN0YW5jZS5hZGRIb29rKCJhZnRlckRvY3VtZW50S2V5RG93biIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25BZnRlckRvY3VtZW50S2V5RG93bihJKX0pLHRoaXMuZXZlbnRNYW5hZ2Vy''@;'; put 'put ''LmFkZEV2ZW50TGlzdGVuZXIodGhpcy5pbnN0YW5jZS5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbihJKXsheS5kZXN0cm95ZWQmJnkuYWN0aXZlRWRpdG9yJiYheS5hY3RpdmVFZGl0b3IuaXNPcGVuZWQoKSYmeS5pbnN0YW5jZS5pc0xp''@;'; put 'put ''c3RlbmluZygpJiZ5Lm9wZW5FZGl0b3IoIiIsSSl9KSx0aGlzLmluc3RhbmNlLnZpZXcuX3d0LnVwZGF0ZSgib25DZWxsRGJsQ2xpY2siLGZ1bmN0aW9uKEksWix1ZSl7cmV0dXJuIHkub25DZWxsRGJsQ2xpY2soSSxaLHVlKX0pfXJldHVybiBmdW5jdGlvbiBVWmUoZCxnLGgpe2cmJmNfZShk''@;'; put 'put ''LnByb3RvdHlwZSxnKSxoJiZjX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXRoaXMuaW5zdGFuY2UuZ2V0U2hvcnRjdXRNYW5h''@;'; put 'put ''Z2VyKCkseT12LmdldENvbnRleHQoImdyaWQiKSxDPXYuZ2V0Q29udGV4dCgiZWRpdG9yIiksST17Z3JvdXA6R1p9O0MuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJFbnRlciJdLFsiRW50ZXIiLCJTaGlmdCJdLFsiRW50ZXIiLCJDb250cm9sL01ldGEiXSxbIkVudGVyIiwiQ29udHJvbC9NZXRh''@;'; put 'put ''IiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24odWUsX2Upe2guY2xvc2VFZGl0b3JBbmRTYXZlQ2hhbmdlcyh2LmlzQ3RybFByZXNzZWQoKSksaC5tb3ZlU2VsZWN0aW9uQWZ0ZXJFbnRlcihfZS5pbmNsdWRlcygic2hpZnQiKSl9fSx7a2V5czpbWyJFc2NhcGUiXSxbIkVzY2FwZSIsIkNv''@;'; put 'put ''bnRyb2wvTWV0YSJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2guY2xvc2VFZGl0b3JBbmRSZXN0b3JlT3JpZ2luYWxWYWx1ZSh2LmlzQ3RybFByZXNzZWQoKSksaC5hY3RpdmVFZGl0b3IuZm9jdXMoKX19XSxJKSx5LmFkZFNob3J0Y3V0cyhbe2tleXM6W1siRjIiXV0sY2FsbGJhY2s6ZnVuY3Rp''@;'; put 'put ''b24odWUpe2guYWN0aXZlRWRpdG9yJiZoLmFjdGl2ZUVkaXRvci5lbmFibGVGdWxsRWRpdE1vZGUoKSxoLm9wZW5FZGl0b3IobnVsbCx1ZSl9fSx7a2V5czpbWyJCYWNrc3BhY2UiXSxbIkRlbGV0ZSJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2guaW5zdGFuY2UuZW1wdHlTZWxlY3RlZENlbGxz''@;'; put 'put ''KCksaC5wcmVwYXJlRWRpdG9yKCl9fSx7a2V5czpbWyJFbnRlciJdLFsiRW50ZXIiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbih1ZSxfZSl7aC5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLmVudGVyQmVnaW5zRWRpdGluZz9oLmNlbGxQcm9wZXJ0aWVzLnJlYWRPbmx5P2gubW92ZVNlbGVj''@;'; put 'put ''dGlvbkFmdGVyRW50ZXIoKTpoLmFjdGl2ZUVkaXRvciYmKGguYWN0aXZlRWRpdG9yLmVuYWJsZUZ1bGxFZGl0TW9kZSgpLGgub3BlbkVkaXRvcihudWxsLHVlKSk6aC5tb3ZlU2VsZWN0aW9uQWZ0ZXJFbnRlcihfZS5pbmNsdWRlcygic2hpZnQiKSksXzgodWUpfX1dLEkpfX0se2tleToibG9j''@;'; put 'put ''a0VkaXRvciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmxvY2s9ITB9fSx7a2V5OiJ1bmxvY2tFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5sb2NrPSExfX0se2tleToiZGVzdHJveUVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5sb2NrfHx0aGlzLmNsb3NlRWRpdG9yKGgpfX0s''@;'; put 'put ''e2tleToiZ2V0QWN0aXZlRWRpdG9yIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFjdGl2ZUVkaXRvcn19LHtrZXk6InByZXBhcmVFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztpZighdGhpcy5sb2NrKXtpZih0aGlzLmFjdGl2ZUVkaXRvciYmdGhpcy5hY3RpdmVF''@;'; put 'put ''ZGl0b3IuaXNXYWl0aW5nKCkpcmV0dXJuIHZvaWQgdGhpcy5jbG9zZUVkaXRvcighMSwhMSxmdW5jdGlvbigkdCl7JHQmJmgucHJlcGFyZUVkaXRvcigpfSk7dmFyIHY9dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24uc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkuaGlnaGxpZ2h0LHk9di5yb3csQz12''@;'; put 'put ''LmNvbCxJPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLHksQyksWj15LHVlPUM7aWYoQXJyYXkuaXNBcnJheShJKSl7dmFyIF9lPWZ1bmN0aW9uIGpaZShkLGcpe3JldHVybiBmdW5jdGlvbiBXWmUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0o''@;'; put 'put ''ZCl8fGZ1bmN0aW9uIEdaZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0o''@;'; put 'put ''ST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1''@;'; put 'put ''bmN0aW9uIHpaZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gdV9lKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1l''@;'; put 'put ''KSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiB1X2UoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIFpaZSgpe3Rocm93IG5ldyBU''@;'; put 'put ''eXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEksMik7Wj1fZVsw''@;'; put 'put ''XSx1ZT1fZVsxXX10aGlzLmNlbGxQcm9wZXJ0aWVzPXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbE1ldGEoWix1ZSk7dmFyIEJlPXRoaXMuaW5zdGFuY2Uucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYoQmUmJkJlLmJsdXIoKSx0aGlzLmNlbGxQcm9wZXJ0aWVzLnJlYWRPbmx5KXJldHVybiB2''@;'; put 'put ''b2lkIHRoaXMuY2xlYXJBY3RpdmVFZGl0b3IoKTt2YXIgTmU9dGhpcy5pbnN0YW5jZS5nZXRDZWxsRWRpdG9yKHRoaXMuY2VsbFByb3BlcnRpZXMpLEtlPXRoaXMuaW5zdGFuY2UuZ2V0Q2VsbCh5LEMsITApO2lmKE5lJiZLZSl7dmFyIHB0PXRoaXMuaW5zdGFuY2UuY29sVG9Qcm9wKHVlKSxP''@;'; put 'put ''dD10aGlzLmluc3RhbmNlLmdldFNvdXJjZURhdGFBdENlbGwodGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KFopLHVlKTt0aGlzLmFjdGl2ZUVkaXRvcj1hX2UoTmUsdGhpcy5pbnN0YW5jZSksdGhpcy5hY3RpdmVFZGl0b3IucHJlcGFyZSh5LEMscHQsS2UsT3QsdGhpcy5jZWxsUHJvcGVy''@;'; put 'put ''dGllcyl9ZWxzZSB0aGlzLmNsZWFyQWN0aXZlRWRpdG9yKCl9fX0se2tleToiaXNFZGl0b3JPcGVuZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlRWRpdG9yJiZ0aGlzLmFjdGl2ZUVkaXRvci5pc09wZW5lZCgpfX0se2tleToib3BlbkVkaXRvciIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oaCx2KXshdGhpcy5hY3RpdmVFZGl0b3J8fHRoaXMuYWN0aXZlRWRpdG9yLmJlZ2luRWRpdGluZyhoLHYpfX0se2tleToiY2xvc2VFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmFjdGl2ZUVkaXRvcj90aGlzLmFjdGl2ZUVkaXRvci5maW5pc2hFZGl0aW5nKGgsdix5KTp5''@;'; put 'put ''JiZ5KCExKX19LHtrZXk6ImNsb3NlRWRpdG9yQW5kU2F2ZUNoYW5nZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuY2xvc2VFZGl0b3IoITEsaCl9fSx7a2V5OiJjbG9zZUVkaXRvckFuZFJlc3RvcmVPcmlnaW5hbFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmNsb3NlRWRpdG9yKCEw''@;'; put 'put ''LGgpfX0se2tleToiY2xlYXJBY3RpdmVFZGl0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5hY3RpdmVFZGl0b3I9dm9pZCAwfX0se2tleToibW92ZVNlbGVjdGlvbkFmdGVyRW50ZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnRhYmxlTWV0YS5l''@;'; put 'put ''bnRlck1vdmVzP3RoaXMudGFibGVNZXRhLmVudGVyTW92ZXMoZXZlbnQpOnRoaXMudGFibGVNZXRhLmVudGVyTW92ZXM7aD90aGlzLnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtdi5yb3csLXYuY29sKTp0aGlzLnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCh2LnJvdyx2LmNvbCwhMCl9fSx7''@;'; put 'put ''a2V5OiJvbkFmdGVyRG9jdW1lbnRLZXlEb3duIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzO2lmKHRoaXMuaW5zdGFuY2UuaXNMaXN0ZW5pbmcoKSl7dmFyIHk9aC5rZXlDb2RlO2lmKDIyOSE9PXkmJnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWQoKSl7dmFyIEM9KGguY3RybEtleXx8''@;'; put 'put ''aC5tZXRhS2V5KSYmIWguYWx0S2V5OyF0aGlzLmFjdGl2ZUVkaXRvcnx8dGhpcy5hY3RpdmVFZGl0b3IuaXNXYWl0aW5nKCl8fF8zZSh5KXx8cWJlKHkpfHxDfHx0aGlzLmlzRWRpdG9yT3BlbmVkKCl8fCh0aGlzLmluc3RhbmNlLmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVk''@;'; put 'put ''aXRvciIpLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3YuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KC0xLDApfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7di5pbnN0YW5jZS5zZWxlY3Rp''@;'; put 'put ''b24udHJhbnNmb3JtU3RhcnQoMSwwKX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3YuaW5zdGFuY2Uuc2VsZWN0aW9uLnRyYW5zZm9ybVN0YXJ0KDAsLTEqdi5pbnN0YW5jZS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0Il1d''@;'; put 'put ''LGNhbGxiYWNrOmZ1bmN0aW9uKCl7di5pbnN0YW5jZS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoMCx2Lmluc3RhbmNlLmdldERpcmVjdGlvbkZhY3RvcigpKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKHYuaW5zdGFuY2UuZ2V0U2VsZWN0ZWQoKSl9LGdyb3VwOmxlZX0p''@;'; put 'put ''LHRoaXMub3BlbkVkaXRvcigiIixoKSl9fX19LHtrZXk6Im9uQ2VsbERibENsaWNrIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7IlREIj09PXkubm9kZU5hbWUmJih0aGlzLmFjdGl2ZUVkaXRvciYmdGhpcy5hY3RpdmVFZGl0b3IuZW5hYmxlRnVsbEVkaXRNb2RlKCksdGhpcy5vcGVuRWRpdG9y''@;'; put 'put ''KG51bGwsaCkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRlc3Ryb3llZD0hMCx0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fV0pLGR9KCksZl9lPW5ldyBXZWFrTWFwO1QzZS5nZXRJbnN0YW5jZT1mdW5jdGlvbihkLGcsaCl7dmFyIHY9Zl9lLmdldChkKTty''@;'; put 'put ''ZXR1cm4gdnx8KHY9bmV3IFQzZShkLGcsaCksZl9lLnNldChkLHYpKSx2fTtjb25zdCBRWmU9VDNlO2Z1bmN0aW9uIEkzZShkKXtyZXR1cm4gZnVuY3Rpb24gJFplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIEQzZShkKX0oZCl8fGZ1bmN0aW9uIEtaZShkKXtpZigidW5kZWZpbmVk''@;'; put 'put ''IiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBYWmUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEQzZShkLGcpO3ZhciBoPU9iamVj''@;'; put 'put ''dC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVp''@;'; put 'put ''fEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRDNlKGQsZyl9fShkKXx8ZnVuY3Rpb24gSlplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBi''@;'; put 'put ''ZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gRDNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2''@;'; put 'put ''W2hdPWRbaF07cmV0dXJuIHZ9TCg5NjI1MSksTCgyNzYyKSxMKDU4MCksTCg3MTc3MiksTCgzNTgxMCk7dmFyIGhfZT17IiZuYnNwOyI6IiAiLCImYW1wOyI6IiYiLCImbHQ7IjoiPCIsIiZndDsiOiI+In0scVplPW5ldyBSZWdFeHAoT2JqZWN0LmtleXMoaF9lKS5tYXAoZnVuY3Rpb24oZCl7''@;'; put 'put ''cmV0dXJuIigiLmNvbmNhdChkLCIpIil9KS5qb2luKCJ8IiksImdpIik7ZnVuY3Rpb24gZXplKGQpe3JldHVybiJUQUJMRSI9PT0oZCYmZC5ub2RlTmFtZXx8IiIpfWZ1bmN0aW9uIEwzZShkKXtmb3IodmFyIGc9ZC5oYXNDb2xIZWFkZXJzKCksaD1kLmhhc1Jvd0hlYWRlcnMoKSx2PVtnPy0x''@;'; put 'put ''OjAsaD8tMTowLGQuY291bnRSb3dzKCktMSxkLmNvdW50Q29scygpLTFdLHk9ZC5nZXREYXRhLmFwcGx5KGQsdiksQz15Lmxlbmd0aCxJPUM+MD95WzBdLmxlbmd0aDowLFo9WyI8dGFibGU+IiwiPC90YWJsZT4iXSx1ZT1nP1siPHRoZWFkPiIsIjwvdGhlYWQ+Il06W10sX2U9WyI8dGJvZHk+''@;'; put 'put ''IiwiPC90Ym9keT4iXSxCZT1oPzE6MCxOZT1nPzE6MCxLZT0wO0tlPEM7S2UrPTEpe2Zvcih2YXIgcHQ9ZyYmMD09PUtlLE90PVtdLCR0PTA7JHQ8STskdCs9MSl7dmFyIGZuPSFwdCYmaCYmMD09PSR0LExuPSIiO2lmKHB0KUxuPSI8dGg+Ii5jb25jYXQoZC5nZXRDb2xIZWFkZXIoJHQtQmUp''@;'; put 'put ''LCI8L3RoPiIpO2Vsc2UgaWYoZm4pTG49Ijx0aD4iLmNvbmNhdChkLmdldFJvd0hlYWRlcihLZS1OZSksIjwvdGg+Iik7ZWxzZXt2YXIgaXI9eVtLZV1bJHRdLG1yPWQuZ2V0Q2VsbE1ldGEoS2UtTmUsJHQtQmUpLHdyPW1yLnJvd3NwYW4sUXI9bXIuY29sc3BhbjtpZighbXIuaGlkZGVuKXt2''@;'; put 'put ''YXIgeWk9W107aWYod3ImJnlpLnB1c2goJ3Jvd3NwYW49IicuY29uY2F0KHdyLCciJykpLFFyJiZ5aS5wdXNoKCdjb2xzcGFuPSInLmNvbmNhdChRciwnIicpKSxkYyhpcikpTG49Ijx0ZCAiLmNvbmNhdCh5aS5qb2luKCIgIiksIj48L3RkPiIpO2Vsc2V7dmFyIEtpPWlyLnRvU3RyaW5nKCku''@;'; put 'put ''cmVwbGFjZSgiPCIsIiZsdDsiKS5yZXBsYWNlKCI+IiwiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMC9naSwiJm5ic3A7IikucmVwbGFjZSgvXHQvZ2ksIiYjOTsiKTtMbj0iPHRkICIuY29uY2F0KHlp''@;'; put 'put ''LmpvaW4oIiAiKSwiPiIpLmNvbmNhdChLaSwiPC90ZD4iKX19fU90LnB1c2goTG4pfXZhciBTbz1bIjx0cj4iXS5jb25jYXQoT3QsWyI8L3RyPiJdKS5qb2luKCIiKTtwdD91ZS5zcGxpY2UoMSwwLFNvKTpfZS5zcGxpY2UoLTEsMCxTbyl9cmV0dXJuIFouc3BsaWNlKDEsMCx1ZS5qb2luKCIi''@;'; put 'put ''KSxfZS5qb2luKCIiKSksWi5qb2luKCIiKX1mdW5jdGlvbiBPM2UoZCl7Zm9yKHZhciBnPWQubGVuZ3RoLGg9WyI8dGFibGU+Il0sdj0wO3Y8Zzt2Kz0xKXt2YXIgeT1kW3ZdLEM9eS5sZW5ndGgsST1bXTswPT09diYmaC5wdXNoKCI8dGJvZHk+Iik7Zm9yKHZhciBaPTA7WjxDO1orPTEpe3Zh''@;'; put 'put ''ciB1ZT15W1pdLF9lPWRjKHVlKT8iIjp1ZS50b1N0cmluZygpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyg8YnIoXHMqfFwvKT4oXHJcbnxcbik/fFxyXG58XG4pL2csIjxicj5cclxuIikucmVwbGFjZSgvXHgyMC9naSwiJm5ic3A7IikucmVw''@;'; put 'put ''bGFjZSgvXHQvZ2ksIiYjOTsiKTtJLnB1c2goIjx0ZD4iLmNvbmNhdChfZSwiPC90ZD4iKSl9aC5wdXNoLmFwcGx5KGgsWyI8dHI+Il0uY29uY2F0KEksWyI8L3RyPiJdKSksdisxPT09ZyYmaC5wdXNoKCI8L3Rib2R5PiIpfXJldHVybiBoLnB1c2goIjwvdGFibGU+IiksaC5qb2luKCIiKX1m''@;'; put 'put ''dW5jdGlvbiBkX2UoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmRvY3VtZW50LGg9e30sdj1nLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSx5PWcuY3JlYXRlRWxlbWVudCgiZGl2Iik7di5hcHBlbmRDaGlsZCh5KTt2YXIg''@;'; put 'put ''Qz1kO2lmKCJzdHJpbmciPT10eXBlb2YgQyl7dmFyIEk9Qy5yZXBsYWNlKC88dGRcYltePl0qPz4oW1xzXFNdKj8pPFwvXHMqdGQ+L2csZnVuY3Rpb24oWm4pe3ZhciBfcj1abi5tYXRjaCgvPHRkXGJbXj5dKj8+L2cpWzBdLFhyPVpuLnN1YnN0cmluZyhfci5sZW5ndGgsWm4ubGFzdEluZGV4''@;'; put 'put ''T2YoIjwiKSkucmVwbGFjZSgvKDwoPyFicikoW14+XSspPikvZ2ksIiIpO3JldHVybiIiLmNvbmNhdChfcikuY29uY2F0KFhyKS5jb25jYXQoIjwvdGQ+Iil9KTt5Lmluc2VydEFkamFjZW50SFRNTCgiYWZ0ZXJiZWdpbiIsIiIuY29uY2F0KEkpKSxDPXkucXVlcnlTZWxlY3RvcigidGFibGUi''@;'; put 'put ''KX1pZihDJiZlemUoQykpe3ZhciBaPXkucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lJD0iZW5lcmF0b3IiXScpLHVlPW51bGwhPT1DLnF1ZXJ5U2VsZWN0b3IoInRib2R5IHRoIiksX2U9Qy5xdWVyeVNlbGVjdG9yKCJ0ciIpLEJlPV9lP0FycmF5LmZyb20oX2UuY2VsbHMpLnJlZHVjZShmdW5j''@;'; put 'put ''dGlvbihabixfcil7cmV0dXJuIFpuK19yLmNvbFNwYW59LDApLSh1ZT8xOjApOjAsTmU9Qy50Rm9vdCYmQXJyYXkuZnJvbShDLnRGb290LnJvd3MpfHxbXSxLZT1bXSxwdD0hMSxPdD0wLCR0PTA7aWYoQy50SGVhZCl7dmFyIGZuPUFycmF5LmZyb20oQy50SGVhZC5yb3dzKS5maWx0ZXIoZnVu''@;'; put 'put ''Y3Rpb24oWm4pe3ZhciBfcj1udWxsIT09Wm4ucXVlcnlTZWxlY3RvcigidGQiKTtyZXR1cm4gX3ImJktlLnB1c2goWm4pLCFfcn0pO3B0PShPdD1mbi5sZW5ndGgpPjAsT3Q+MT9oLm5lc3RlZEhlYWRlcnM9QXJyYXkuZnJvbShmbikucmVkdWNlKGZ1bmN0aW9uKFpuLF9yKXt2YXIgWHI9QXJy''@;'; put 'put ''YXkuZnJvbShfci5jZWxscykucmVkdWNlKGZ1bmN0aW9uKGNpLGMwLFhpKXtpZih1ZSYmMD09PVhpKXJldHVybiBjaTt2YXIgRTA9YzAuY29sU3Bhbix6MD1jMC5pbm5lckhUTUw7cmV0dXJuIGNpLnB1c2goRTA+MT97bGFiZWw6ejAsY29sc3BhbjpFMH06ejApLGNpfSxbXSk7cmV0dXJuIFpu''@;'; put 'put ''LnB1c2goWHIpLFpufSxbXSk6cHQmJihoLmNvbEhlYWRlcnM9QXJyYXkuZnJvbShmblswXS5jaGlsZHJlbikucmVkdWNlKGZ1bmN0aW9uKFpuLF9yLFhyKXtyZXR1cm4gdWUmJjA9PT1Ycnx8Wm4ucHVzaChfci5pbm5lckhUTUwpLFpufSxbXSkpfUtlLmxlbmd0aCYmKGguZml4ZWRSb3dzVG9w''@;'; put 'put ''PUtlLmxlbmd0aCksTmUubGVuZ3RoJiYoaC5maXhlZFJvd3NCb3R0b209TmUubGVuZ3RoKTt2YXIgTG49W10uY29uY2F0KEtlLEkzZShBcnJheS5mcm9tKEMudEJvZGllcykucmVkdWNlKGZ1bmN0aW9uKFpuLF9yKXtyZXR1cm4gWm4ucHVzaC5hcHBseShabixJM2UoQXJyYXkuZnJvbShfci5y''@;'; put 'put ''b3dzKSkpLFpufSxbXSkpLEkzZShOZSkpOyR0PUxuLmxlbmd0aDtmb3IodmFyIGlyPW5ldyBBcnJheSgkdCksbXI9MDttcjwkdDttcisrKWlyW21yXT1uZXcgQXJyYXkoQmUpO2Zvcih2YXIgU3I9W10sd3I9W10sUXI9MDtRcjwkdDtRcisrKWZvcih2YXIgeWk9TG5bUXJdLEtpPUFycmF5LmZy''@;'; put 'put ''b20oeWkuY2VsbHMpLFNvPUtpLmxlbmd0aCxQbz0wO1BvPFNvO1BvKyspe3ZhciBTYT1LaVtQb10sSmE9U2Eubm9kZU5hbWUsbGE9U2EuaW5uZXJIVE1MLGFsPVNhLnJvd1NwYW4sUnM9U2EuY29sU3BhbixIMD1pcltRcl0uZmluZEluZGV4KGZ1bmN0aW9uKFpuKXtyZXR1cm4gdm9pZCAwPT09''@;'; put 'put ''Wm59KTtpZigiVEQiPT09SmEpe2lmKGFsPjF8fFJzPjEpe2Zvcih2YXIgcm89UXI7cm88UXIrYWw7cm8rKylpZihybzwkdClmb3IodmFyIGZvPUgwO2ZvPEgwK1JzO2ZvKyspaXJbcm9dW2ZvXT1udWxsO3ZhciBJYT1TYS5nZXRBdHRyaWJ1dGUoInN0eWxlIiksWGw9SWEmJklhLmluY2x1ZGVz''@;'; put 'put ''KCJtc28taWdub3JlOmNvbHNwYW4iKTtYbHx8U3IucHVzaCh7Y29sOkgwLHJvdzpRcixyb3dzcGFuOmFsLGNvbHNwYW46UnN9KX12YXIgRm49IiI7Rm49WiYmL2V4Y2VsL2dpLnRlc3QoWi5jb250ZW50KT9sYS5yZXBsYWNlKC9bXHJcbl1bXHgyMF17MCwyfS9nLCIgIikucmVwbGFjZSgvPGJy''@;'; put 'put ''KFxzKnxcLyk+W1xyXG5dP1tceDIwXXswLDN9L2dpbSwiXHJcbiIpOmxhLnJlcGxhY2UoLzxicihccyp8XC8pPltcclxuXT8vZ2ltLCJcclxuIiksaXJbUXJdW0gwXT1Gbi5yZXBsYWNlKHFaZSxmdW5jdGlvbihabil7cmV0dXJuIGhfZVtabl19KX1lbHNlIHdyLnB1c2gobGEpfXJldHVybiBT''@;'; put 'put ''ci5sZW5ndGgmJihoLm1lcmdlQ2VsbHM9U3IpLHdyLmxlbmd0aCYmKGgucm93SGVhZGVycz13ciksaXIubGVuZ3RoJiYoaC5kYXRhPWlyKSxofX1mdW5jdGlvbiB0emUoZCl7cmV0dXJuIGZ1bmN0aW9uIG96ZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBSM2UoZCl9KGQpfHxmdW5j''@;'; put 'put ''dGlvbiBpemUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gcnplKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJl''@;'; put 'put ''dHVybiBSM2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lm''@;'; put 'put ''KCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFIzZShkLGcpfX0oZCl8fGZ1bmN0aW9uIG56ZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxl''@;'; put 'put ''IGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFIzZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0w''@;'; put 'put ''LHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEIzZShkKXtyZXR1cm4oQjNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rp''@;'; put 'put ''b24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdjQoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1''@;'; put 'put ''bWVudHNbMV0/YXJndW1lbnRzWzFdOltdLGg9QjNlKGQpO2lmKCJudW1iZXIiPT09aClyZXR1cm4haXNOYU4oZCkmJmlzRmluaXRlKGQpO2lmKCJzdHJpbmciPT09aCl7aWYoMD09PWQubGVuZ3RoKXJldHVybiExO2lmKDE9PT1kLmxlbmd0aClyZXR1cm4vXGQvLnRlc3QoZCk7dmFyIHY9QXJy''@;'; put 'put ''YXkuZnJvbShuZXcgU2V0KFsiLiJdLmNvbmNhdCh0emUoZykpKSkubWFwKGZ1bmN0aW9uKHkpe3JldHVybiJcXCIuY29uY2F0KHkpfSkuam9pbigifCIpO3JldHVybiBuZXcgUmVnRXhwKCJeWystXT9cXHMqKCgoIi5jb25jYXQodiwiKT9cXGQrKCgiKS5jb25jYXQodiwiKVxcZCspPyhlWyst''@;'; put 'put ''XT9cXGQrKT8pfCgweFthLWZcXGRdKykpJCIpLCJpIikudGVzdChkLnRyaW0oKSl9cmV0dXJuIm9iamVjdCI9PT1oJiYhKCFkfHwibnVtYmVyIiE9dHlwZW9mIGQudmFsdWVPZigpfHxkIGluc3RhbmNlb2YgRGF0ZSl9ZnVuY3Rpb24gcF9lKGQpe3JldHVybiB2NChkLFsiLCJdKX1mdW5jdGlv''@;'; put 'put ''biBpYShkLGcsaCl7dmFyIHY9LTE7Zm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBnPyhoPWcsZz1kKTp2PWQtMTsrK3Y8PWcmJiExIT09aCh2KTspO31mdW5jdGlvbiBzZWUoZCxnLGgpe3ZhciB2PWQrMTtmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGcmJihoPWcsZz0wKTstLXY+PWcmJiExIT09aCh2''@;'; put 'put ''KTspO31mdW5jdGlvbiBQM2UoZCxnKXtyZXR1cm4gZz1wYXJzZUludChnLnRvU3RyaW5nKCkucmVwbGFjZSgiJSIsIiIpLDEwKSxnPWlzTmFOKGcpPzA6ZyxwYXJzZUludChkKmcvMTAwLDEwKX1mdW5jdGlvbiBhemUoZCl7cmV0dXJuIGZ1bmN0aW9uIHV6ZShkKXtpZihBcnJheS5pc0FycmF5''@;'; put 'put ''KGQpKXJldHVybiBGM2UoZCl9KGQpfHxmdW5jdGlvbiBzemUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8Z19lKGQpfHxmdW5jdGlvbiBsemUo''@;'; put 'put ''KXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5j''@;'; put 'put ''dGlvbiBjemUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gZHplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBoemUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVy''@;'; put 'put ''YXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZu''@;'; put 'put ''dWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxnX2UoZCxnKXx8ZnVuY3Rpb24gZnplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5c''@;'; put 'put ''bkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBnX2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEYzZShkLGcpO3ZhciBoPU9iamVjdC5w''@;'; put 'put ''cm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkp''@;'; put 'put ''bnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRjNlKGQsZyl9fWZ1bmN0aW9uIEYzZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2''@;'; put 'put ''fXZhciBIM2U9ImFzYyIsbV9lPW5ldyBNYXAoW1tIM2UsWy0xLDFdXSxbImRlc2MiLFsxLC0xXV1dKSxnemU9ZnVuY3Rpb24oZyl7cmV0dXJuIlRoZSBwcmlvcml0eSAnIi5jb25jYXQoZywiJyBpcyBhbHJlYWR5IGRlY2xhcmVkIGluIGEgbWFwLiIpfSxtemU9ZnVuY3Rpb24oZyl7cmV0dXJu''@;'; put 'put ''IlRoZSBwcmlvcml0eSAnIi5jb25jYXQoZywiJyBpcyBub3QgYSBudW1iZXIuIil9O2Z1bmN0aW9uIEF6ZShkKXtyZXR1cm4gZnVuY3Rpb24gYnplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIE4zZShkKX0oZCl8fGZ1bmN0aW9uIHd6ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9m''@;'; put 'put ''IFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxBX2UoZCl8fGZ1bmN0aW9uIHl6ZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxl''@;'; put 'put ''IGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHZfZShkLGcpe3JldHVybiBmdW5jdGlvbiBremUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1''@;'; put 'put ''cm4gZH0oZCl8fGZ1bmN0aW9uIEN6ZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQp''@;'; put 'put ''OyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQs''@;'; put 'put ''Zyl8fEFfZShkLGcpfHxmdW5jdGlvbiBfemUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1i''@;'; put 'put ''b2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEFfZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTjNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25z''@;'; put 'put ''dHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBOM2UoZCxnKX19ZnVu''@;'; put 'put ''Y3Rpb24gTjNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9TCg1NDY3OSk7dmFyIFN6ZT1mdW5jdGlvbihnKXtyZXR1cm4iVGhlIGlkICciLmNvbmNhdChnLCInIGlz''@;'; put 'put ''IGFscmVhZHkgZGVjbGFyZWQgaW4gYSBtYXAuIil9O2Z1bmN0aW9uIHVlZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JJZEV4aXN0cyxoPW5ldyBNYXA7ZnVuY3Rpb24gdihCZSxOZSl7aWYoX2UoQmUp''@;'; put 'put ''KXRocm93IG5ldyBFcnJvcihnKEJlKSk7aC5zZXQoQmUsTmUpfWZ1bmN0aW9uIHkoQmUpe3JldHVybiBoLmRlbGV0ZShCZSl9ZnVuY3Rpb24gQygpe2guY2xlYXIoKX1mdW5jdGlvbiBJKEJlKXt2YXIgTmU9dWUoKS5maW5kKGZ1bmN0aW9uKE90KXt2YXIgJHQ9dl9lKE90LDIpO3JldHVybiBC''@;'; put 'put ''ZT09PSR0WzFdJiYkdFswXX0pfHxbbnVsbF07cmV0dXJuIHZfZShOZSwxKVswXX1mdW5jdGlvbiBaKEJlKXtyZXR1cm4gaC5nZXQoQmUpfWZ1bmN0aW9uIHVlKCl7cmV0dXJuIEF6ZShoKX1mdW5jdGlvbiBfZShCZSl7cmV0dXJuIGguaGFzKEJlKX1yZXR1cm4gZz1VMihnKT9nOlN6ZSx7YWRk''@;'; put 'put ''SXRlbTp2LGNsZWFyOkMsZ2V0SWQ6SSxnZXRJdGVtOlosZ2V0SXRlbXM6dWUsaGFzSXRlbTpfZSxyZW1vdmVJdGVtOnl9fWZ1bmN0aW9uIE16ZShkKXtyZXR1cm4gZnVuY3Rpb24gSXplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIFYzZShkKX0oZCl8fGZ1bmN0aW9uIFR6ZShkKXtp''@;'; put 'put ''ZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiB4emUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFYzZShkLGcp''@;'; put 'put ''O3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9''@;'; put 'put ''PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gVjNlKGQsZyl9fShkKXx8ZnVuY3Rpb24gRXplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5J''@;'; put 'put ''biBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gVjNlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXko''@;'; put 'put ''Zyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIER6ZT1mdW5jdGlvbihnKXtyZXR1cm4iJyIuY29uY2F0KGcsIicgdmFsdWUgaXMgYWxyZWFkeSBkZWNsYXJlZCBpbiBhIHVuaXF1ZSBzZXQuIil9O2Z1bmN0aW9uIHlfZShkKXtyZXR1cm4gZnVuY3Rpb24gTnplKGQpe2lmKEFycmF5''@;'; put 'put ''LmlzQXJyYXkoZCkpcmV0dXJuIGozZShkKX0oZCl8fGZ1bmN0aW9uIEh6ZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHx3X2UoZCl8fGZ1bmN0''@;'; put 'put ''aW9uIEZ6ZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIp''@;'; put 'put ''fSgpfWZ1bmN0aW9uIHdfZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gajNlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rv''@;'; put 'put ''ci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBqM2UoZCxnKX19ZnVuY3Rpb24gajNlKGQsZyl7KG51bGw9PWd8''@;'; put 'put ''fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9dmFyIFozZT1mdW5jdGlvbihnKXtyZXR1cm4nVGhlcmUgaXMgYWxyZWFkeSByZWdpc3RlcmVkICInLmNvbmNhdChnLCciIHBsdWdpbi4nKX0sYl9l''@;'; put 'put ''PWZ1bmN0aW9uIHZ6ZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JQcmlvcml0eUV4aXN0cyxoPWQuZXJyb3JQcmlvcml0eU5hTix2PW5ldyBNYXA7ZnVuY3Rpb24geShJLFope2lmKCF2NChJKSl0aHJv''@;'; put 'put ''dyBuZXcgRXJyb3IoaChJKSk7aWYodi5oYXMoSSkpdGhyb3cgbmV3IEVycm9yKGcoSSkpO3Yuc2V0KEksWil9ZnVuY3Rpb24gQygpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpIM2UsWj1tX2UuZ2V0KEkpfHxtX2UuZ2V0KEgz''@;'; put 'put ''ZSksdWU9Y3plKFosMiksX2U9dWVbMF0sQmU9dWVbMV07cmV0dXJuIGF6ZSh2KS5zb3J0KGZ1bmN0aW9uKE5lLEtlKXtyZXR1cm4gTmVbMF08S2VbMF0/X2U6QmV9KS5tYXAoZnVuY3Rpb24oTmUpe3JldHVybiBOZVsxXX0pfXJldHVybiBnPVUyKGcpP2c6Z3plLGg9VTIoaCk/aDptemUse2Fk''@;'; put 'put ''ZEl0ZW06eSxnZXRJdGVtczpDfX0oe2Vycm9yUHJpb3JpdHlFeGlzdHM6ZnVuY3Rpb24oZyl7cmV0dXJuJ1RoZXJlIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBwbHVnaW4gb24gcHJpb3JpdHkgIicuY29uY2F0KGcsJyIuJyl9LGVycm9yUHJpb3JpdHlOYU46ZnVuY3Rpb24oZyl7cmV0dXJuJ1Ro''@;'; put 'put ''ZSBwcmlvcml0eSAiJy5jb25jYXQoZywnIiBpcyBub3QgYSBudW1iZXIuJyl9fSksQ19lPWZ1bmN0aW9uIEx6ZSgpe3ZhciBkPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxnPWQuZXJyb3JJdGVtRXhpc3RzLGg9bmV3IFNldDtmdW5j''@;'; put 'put ''dGlvbiB2KEkpe2lmKGguaGFzKEkpKXRocm93IG5ldyBFcnJvcihnKEkpKTtoLmFkZChJKX1mdW5jdGlvbiB5KCl7cmV0dXJuIE16ZShoKX1mdW5jdGlvbiBDKCl7aC5jbGVhcigpfXJldHVybiBnPVUyKGcpP2c6RHplLHthZGRJdGVtOnYsY2xlYXI6QyxnZXRJdGVtczp5fX0oe2Vycm9ySXRl''@;'; put 'put ''bUV4aXN0czpaM2V9KSx6M2U9dWVlKHtlcnJvcklkRXhpc3RzOlozZX0pO2Z1bmN0aW9uIEczZSgpe3JldHVybltdLmNvbmNhdCh5X2UoYl9lLmdldEl0ZW1zKCkpLHlfZShDX2UuZ2V0SXRlbXMoKSkpfWZ1bmN0aW9uIFdaKGQpe3ZhciBnPWxkKGQpO3JldHVybiB6M2UuZ2V0SXRlbShnKX1m''@;'; put 'put ''dW5jdGlvbiBPcyhkLGcsaCl7dmFyIHY9ZnVuY3Rpb24gR3plKGQsZyxoKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZCYmKGQ9KGc9ZCkuUExVR0lOX0tFWSxoPWcuUExVR0lOX1BSSU9SSVRZKSxbZCxnLGhdfShkLGcsaCkseT1mdW5jdGlvbiBPemUoZCxnKXtyZXR1cm4gZnVuY3Rpb24g''@;'; put 'put ''UHplKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBCemUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1b''@;'; put 'put ''XSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5h''@;'; put 'put ''bGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHx3X2UoZCxnKXx8ZnVuY3Rpb24gUnplKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24t''@;'; put 'put ''YXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odiwzKTtnPXlbMV0saD15WzJdLHZvaWQgMD09PVdaKGQ9eVswXSkmJmZ1bmN0aW9uIHp6ZShkLGcsaCl7dmFyIHY9bGQoZCk7aWYoejNlLmhhc0l0ZW0odikpdGhyb3cgbmV3IEVycm9y''@;'; put 'put ''KFozZSh2KSk7dm9pZCAwPT09aD9DX2UuYWRkSXRlbSh2KTpiX2UuYWRkSXRlbShoLHYpLHozZS5hZGRJdGVtKHYsZyl9KGQsZyxoKX12YXIgWVo9THAoInJlbmRlcmVycyIpLFd6ZT1ZWi5yZWdpc3RlcixZemU9WVouZ2V0SXRlbSxrX2U9WVouaGFzSXRlbSxVemU9WVouZ2V0TmFtZXM7ZnVu''@;'; put 'put ''Y3Rpb24gVzNlKGQpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBkKXJldHVybiBkO2lmKCFrX2UoZCkpdGhyb3cgRXJyb3IoJ05vIHJlZ2lzdGVyZWQgcmVuZGVyZXIgZm91bmQgdW5kZXIgIicuY29uY2F0KGQsJyIgbmFtZScpKTtyZXR1cm4gWXplKGQpfWZ1bmN0aW9uIE1nKGQsZyl7InN0cmlu''@;'; put 'put ''ZyIhPXR5cGVvZiBkJiYoZD0oZz1kKS5SRU5ERVJFUl9UWVBFKSxXemUoZCxnKX12YXIgVVo9THAoInZhbGlkYXRvcnMiKSxRemU9VVoucmVnaXN0ZXIsSnplPVVaLmdldEl0ZW0sU19lPVVaLmhhc0l0ZW0sWHplPVVaLmdldE5hbWVzO2Z1bmN0aW9uIFkzZShkKXtpZigiZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgZClyZXR1cm4gZDtpZighU19lKGQpKXRocm93IEVycm9yKCdObyByZWdpc3RlcmVkIHZhbGlkYXRvciBmb3VuZCB1bmRlciAiJy5jb25jYXQoZCwnIiBuYW1lJykpO3JldHVybiBKemUoZCl9ZnVuY3Rpb24gZ08oZCxnKXsic3RyaW5nIiE9dHlwZW9mIGQmJihkPShnPWQpLlZBTElE''@;'; put 'put ''QVRPUl9UWVBFKSxRemUoZCxnKX1mdW5jdGlvbiBLemUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBNX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFy''@;'; put 'put ''IHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDE2MTYxKSxMKDkxNjgzKTt2YXIgbU89bmV3IFdlYWtNYXAscXplPWZ1bmN0''@;'; put 'put ''aW9uKCl7ZnVuY3Rpb24gZChnLGgsdix5LEMsSSl7dmFyIFo9YXJndW1lbnRzLmxlbmd0aD42JiZ2b2lkIDAhPT1hcmd1bWVudHNbNl0/YXJndW1lbnRzWzZdOm51bGw7S3plKHRoaXMsZCksdGhpcy53dFNldHRpbmdzPXYsdGhpcy5kb21CaW5kaW5ncz1oLHRoaXMud3RUYWJsZT1DLHRoaXMu''@;'; put 'put ''c2VsZWN0aW9ucz1JLHRoaXMucGFyZW50PVosdGhpcy5ldmVudE1hbmFnZXI9eSx0aGlzLmZhY2FkZUdldHRlcj1nLG1PLnNldCh0aGlzLHtzZWxlY3RlZENlbGxCZWZvcmVUb3VjaEVuZDp2b2lkIDAsZGJsQ2xpY2tUaW1lb3V0OltudWxsLG51bGxdLGRibENsaWNrT3JpZ2luOltudWxsLG51''@;'; put 'put ''bGxdfSksdGhpcy5yZWdpc3RlckV2ZW50cygpfXJldHVybiBmdW5jdGlvbiAkemUoZCxnLGgpe2cmJk1fZShkLnByb3RvdHlwZSxnKSxoJiZNX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVnaXN0ZXJFdmVudHMi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5ob2xkZXIsImNvbnRleHRtZW51IixmdW5jdGlvbihDKXtyZXR1cm4gaC5vbkNvbnRleHRNZW51KEMpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRM''@;'; put 'put ''aXN0ZW5lcih0aGlzLnd0VGFibGUuVEFCTEUsIm1vdXNlb3ZlciIsZnVuY3Rpb24oQyl7cmV0dXJuIGgub25Nb3VzZU92ZXIoQyl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS5UQUJMRSwibW91c2VvdXQiLGZ1bmN0aW9uKEMpe3JldHVybiBoLm9u''@;'; put 'put ''TW91c2VPdXQoQyl9KTt2YXIgdj1mdW5jdGlvbigpe2guZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaC53dFRhYmxlLmhvbGRlciwidG91Y2hzdGFydCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Ub3VjaFN0YXJ0KEkpfSksaC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lciho''@;'; put 'put ''Lnd0VGFibGUuaG9sZGVyLCJ0b3VjaGVuZCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Ub3VjaEVuZChJKX0pLGgubW9tZW50dW1TY3JvbGxpbmd8fChoLm1vbWVudHVtU2Nyb2xsaW5nPXt9KSxoLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKGgud3RUYWJsZS5ob2xkZXIsInNjcm9s''@;'; put 'put ''bCIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQoaC5tb21lbnR1bVNjcm9sbGluZy5fdGltZW91dCksaC5tb21lbnR1bVNjcm9sbGluZy5vbmdvaW5nfHxoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25CZWZvcmVUb3VjaFNjcm9sbCIpLGgubW9tZW50dW1TY3JvbGxpbmcub25nb2luZz0hMCxo''@;'; put 'put ''Lm1vbWVudHVtU2Nyb2xsaW5nLl90aW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtoLnRvdWNoQXBwbGllZHx8KGgubW9tZW50dW1TY3JvbGxpbmcub25nb2luZz0hMSxoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25BZnRlck1vbWVudHVtU2Nyb2xsIikpfSwyMDApfSl9O2I4KCk/digp''@;'; put 'put ''OihXaGUoKSYmdigpLGguZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoaC53dFRhYmxlLmhvbGRlciwibW91c2V1cCIsZnVuY3Rpb24oSSl7cmV0dXJuIGgub25Nb3VzZVVwKEkpfSksaC5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLnd0VGFibGUuaG9sZGVyLCJtb3VzZWRv''@;'; put 'put ''d24iLGZ1bmN0aW9uKEkpe3JldHVybiBoLm9uTW91c2VEb3duKEkpfSkpfX0se2tleToic2VsZWN0ZWRDZWxsV2FzVG91Y2hlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9bU8uZ2V0KHRoaXMpLEM9dGhpcy5wYXJlbnRDZWxsKGgpLmNvb3JkcztpZih2LnNlbGVjdGVkQ2VsbEJlZm9yZVRv''@;'; put 'put ''dWNoRW5kJiZDKXt2YXIgST1bQy5yb3csdi5zZWxlY3RlZENlbGxCZWZvcmVUb3VjaEVuZC5mcm9tLnJvd10sX2U9W0MuY29sLHYuc2VsZWN0ZWRDZWxsQmVmb3JlVG91Y2hFbmQuZnJvbS5jb2xdO3JldHVybiBJWzBdPT09SVsxXSYmX2VbMF09PT1fZVsxXX1yZXR1cm4hMX19LHtrZXk6InBh''@;'; put 'put ''cmVudENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXt9LEM9UFooaCxbIlREIiwiVEgiXSx0aGlzLnd0VGFibGUuVEFCTEUpO3JldHVybiBDPyh2LmNvb3Jkcz10aGlzLnd0VGFibGUuZ2V0Q29vcmRzKEMpLHYuVEQ9Qyk6dGwoaCwid3RCb3JkZXIiKSYmdGwoaCwiY3VycmVudCIpPyh2''@;'; put 'put ''LmNvb3Jkcz10aGlzLnNlbGVjdGlvbnMuZ2V0Q2VsbCgpLmNlbGxSYW5nZS5oaWdobGlnaHQsdi5URD10aGlzLnd0VGFibGUuZ2V0Q2VsbCh2LmNvb3JkcykpOnRsKGgsInd0Qm9yZGVyIikmJnRsKGgsImFyZWEiKSYmdGhpcy5zZWxlY3Rpb25zLmNyZWF0ZU9yR2V0QXJlYSgpLmNlbGxSYW5n''@;'; put 'put ''ZSYmKHYuY29vcmRzPXRoaXMuc2VsZWN0aW9ucy5jcmVhdGVPckdldEFyZWEoKS5jZWxsUmFuZ2UudG8sdi5URD10aGlzLnd0VGFibGUuZ2V0Q2VsbCh2LmNvb3JkcykpLHZ9fSx7a2V5OiJvbk1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9bU8uZ2V0KHRoaXMpLHk9dGhpcy5k''@;'; put 'put ''b21CaW5kaW5ncy5yb290RG9jdW1lbnQuYWN0aXZlRWxlbWVudCxDPWIzZShWYmUsaC50YXJnZXQpLEk9aC50YXJnZXQ7aWYoSSE9PXkmJkMoMCkhPT15JiZDKDEpIT09eSl7dmFyIFo9dGhpcy5wYXJlbnRDZWxsKEkpO3RsKEksImNvcm5lciIpP3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5n''@;'; put 'put ''KCJvbkNlbGxDb3JuZXJNb3VzZURvd24iLGgsSSk6Wi5URCYmdGhpcy53dFNldHRpbmdzLmhhcygib25DZWxsTW91c2VEb3duIikmJnRoaXMuY2FsbExpc3RlbmVyKCJvbkNlbGxNb3VzZURvd24iLGgsWi5jb29yZHMsWi5URCksKDA9PT1oLmJ1dHRvbnx8dGhpcy50b3VjaEFwcGxpZWQpJiZa''@;'; put 'put ''LlREJiYodi5kYmxDbGlja09yaWdpblswXT1aLlRELGNsZWFyVGltZW91dCh2LmRibENsaWNrVGltZW91dFswXSksdi5kYmxDbGlja1RpbWVvdXRbMF09c2V0VGltZW91dChmdW5jdGlvbigpe3YuZGJsQ2xpY2tPcmlnaW5bMF09bnVsbH0sMWUzKSl9fX0se2tleToib25Db250ZXh0TWVudSIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oaCl7aWYodGhpcy53dFNldHRpbmdzLmhhcygib25DZWxsQ29udGV4dE1lbnUiKSl7dmFyIHY9dGhpcy5wYXJlbnRDZWxsKGgudGFyZ2V0KTt2LlREJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsQ29udGV4dE1lbnUiLGgsdi5jb29yZHMsdi5URCl9fX0se2tleToi''@;'; put 'put ''b25Nb3VzZU92ZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRoaXMud3RTZXR0aW5ncy5oYXMoIm9uQ2VsbE1vdXNlT3ZlciIpKXt2YXIgdj10aGlzLnd0VGFibGUuVEFCTEUseT1QWihoLnRhcmdldCxbIlREIiwiVEgiXSx2KSxDPXRoaXMucGFyZW50fHx0aGlzO3kmJnkhPT1DLmxhc3RNb3Vz''@;'; put 'put ''ZU92ZXImJl93KHksdikmJihDLmxhc3RNb3VzZU92ZXI9eSx0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VPdmVyIixoLHRoaXMud3RUYWJsZS5nZXRDb29yZHMoeSkseSkpfX19LHtrZXk6Im9uTW91c2VPdXQiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRoaXMud3RTZXR0aW5ncy5oYXMo''@;'; put 'put ''Im9uQ2VsbE1vdXNlT3V0Iikpe3ZhciB2PXRoaXMud3RUYWJsZS5UQUJMRSx5PVBaKGgudGFyZ2V0LFsiVEQiLCJUSCJdLHYpLEM9UFooaC5yZWxhdGVkVGFyZ2V0LFsiVEQiLCJUSCJdLHYpO3kmJnkhPT1DJiZfdyh5LHYpJiZ0aGlzLmNhbGxMaXN0ZW5lcigib25DZWxsTW91c2VPdXQiLGgs''@;'; put 'put ''dGhpcy53dFRhYmxlLmdldENvb3Jkcyh5KSx5KX19fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PW1PLmdldCh0aGlzKSx5PXRoaXMucGFyZW50Q2VsbChoLnRhcmdldCk7eS5URCYmdGhpcy53dFNldHRpbmdzLmhhcygib25DZWxsTW91c2VVcCIpJiZ0aGlzLmNh''@;'; put 'put ''bGxMaXN0ZW5lcigib25DZWxsTW91c2VVcCIsaCx5LmNvb3Jkcyx5LlREKSwoMD09PWguYnV0dG9ufHx0aGlzLnRvdWNoQXBwbGllZCkmJih5LlREPT09di5kYmxDbGlja09yaWdpblswXSYmeS5URD09PXYuZGJsQ2xpY2tPcmlnaW5bMV0/KHRsKGgudGFyZ2V0LCJjb3JuZXIiKT90aGlzLmNh''@;'; put 'put ''bGxMaXN0ZW5lcigib25DZWxsQ29ybmVyRGJsQ2xpY2siLGgseS5jb29yZHMseS5URCk6dGhpcy5jYWxsTGlzdGVuZXIoIm9uQ2VsbERibENsaWNrIixoLHkuY29vcmRzLHkuVEQpLHYuZGJsQ2xpY2tPcmlnaW5bMF09bnVsbCx2LmRibENsaWNrT3JpZ2luWzFdPW51bGwpOnkuVEQ9PT12LmRi''@;'; put 'put ''bENsaWNrT3JpZ2luWzBdJiYodi5kYmxDbGlja09yaWdpblsxXT15LlRELGNsZWFyVGltZW91dCh2LmRibENsaWNrVGltZW91dFsxXSksdi5kYmxDbGlja1RpbWVvdXRbMV09c2V0VGltZW91dChmdW5jdGlvbigpe3YuZGJsQ2xpY2tPcmlnaW5bMV09bnVsbH0sNTAwKSkpfX0se2tleToib25U''@;'; put 'put ''b3VjaFN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoKXttTy5nZXQodGhpcykuc2VsZWN0ZWRDZWxsQmVmb3JlVG91Y2hFbmQ9dGhpcy5zZWxlY3Rpb25zLmdldENlbGwoKS5jZWxsUmFuZ2UsdGhpcy50b3VjaEFwcGxpZWQ9ITAsdGhpcy5vbk1vdXNlRG93bihoKX19LHtrZXk6Im9uVG91Y2hFbmQi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2LHk9aC50YXJnZXQsQz1udWxsPT09KHY9dGhpcy5wYXJlbnRDZWxsKHkpKXx8dm9pZCAwPT09dj92b2lkIDA6di5jb29yZHMsST1UbyhDKSYmQy5yb3c+PTAmJkMuY29sPj0wO2guY2FuY2VsYWJsZSYmSSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRp''@;'; put 'put ''bmcoImlzRGF0YVZpZXdJbnN0YW5jZSIpJiYocWhlKCkmJihiYmUoKXx8X2JlKCkpJiZ0aGlzLnNlbGVjdGVkQ2VsbFdhc1RvdWNoZWQoeSkmJiFbIkEiLCJCVVRUT04iLCJJTlBVVCJdLmluY2x1ZGVzKHkudGFnTmFtZSk/aC5wcmV2ZW50RGVmYXVsdCgpOnRoaXMuc2VsZWN0ZWRDZWxsV2Fz''@;'; put 'put ''VG91Y2hlZCh5KXx8aC5wcmV2ZW50RGVmYXVsdCgpKSx0aGlzLm9uTW91c2VVcChoKSx0aGlzLnRvdWNoQXBwbGllZD0hMX19LHtrZXk6ImNhbGxMaXN0ZW5lciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmdQdXJlKGgpO0kmJkkodix5''@;'; put 'put ''LEMsdGhpcy5mYWNhZGVHZXR0ZXIoKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPW1PLmdldCh0aGlzKTtjbGVhclRpbWVvdXQoaC5kYmxDbGlja1RpbWVvdXRbMF0pLGNsZWFyVGltZW91dChoLmRibENsaWNrVGltZW91dFsxXSksdGhpcy5ldmVudE1hbmFnZXIu''@;'; put 'put ''ZGVzdHJveSgpfX1dKSxkfSgpO2NvbnN0IEVfZT1xemU7ZnVuY3Rpb24geF9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEw''@;'; put 'put ''KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIG5HZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiBlR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rp''@;'; put 'put ''b24iKX0pKHRoaXMsZCksdGhpcy5vZmZzZXQ9Zyx0aGlzLnRvdGFsPWgsdGhpcy5jb3VudFRIPXZ9cmV0dXJuIGZ1bmN0aW9uIHRHZShkLGcsaCl7ZyYmeF9lKGQucHJvdG90eXBlLGcpLGgmJnhfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZToh''@;'; put 'put ''MX0pfShkLFt7a2V5OiJvZmZzZXR0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoK3RoaXMub2Zmc2V0fX0se2tleToidW5PZmZzZXR0ZWQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLXRoaXMub2Zmc2V0fX0se2tleToicmVuZGVyZWRUb1NvdXJjZSIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''aCl7cmV0dXJuIHRoaXMub2Zmc2V0dGVkKGgpfX0se2tleToic291cmNlVG9SZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMudW5PZmZzZXR0ZWQoaCl9fSx7a2V5OiJvZmZzZXR0ZWRUSCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgtdGhpcy5jb3VudFRIfX0se2tl''@;'; put 'put ''eToidW5PZmZzZXR0ZWRUSCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgrdGhpcy5jb3VudFRIfX0se2tleToidmlzaWJsZVJvd0hlYWRlZENvbHVtblRvU291cmNlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5yZW5kZXJlZFRvU291cmNlKHRoaXMub2Zmc2V0dGVk''@;'; put 'put ''VEgoaCkpfX0se2tleToic291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZFRIKHRoaXMuc291cmNlVG9SZW5kZXJlZChoKSl9fV0pLGR9KCk7Y29uc3QgckdlPW5HZTtmdW5jdGlvbiBUX2UoZCxnKXtm''@;'; put 'put ''b3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgYUdlPWZ1bmN0aW9u''@;'; put 'put ''KCl7ZnVuY3Rpb24gZChnLGgsdil7KGZ1bmN0aW9uIGlHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm9mZnNldD1nLHRoaXMudG90YWw9aCx0aGlzLmNvdW50''@;'; put 'put ''VEg9dn1yZXR1cm4gZnVuY3Rpb24gb0dlKGQsZyxoKXtnJiZUX2UoZC5wcm90b3R5cGUsZyksaCYmVF9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Im9mZnNldHRlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgr''@;'; put 'put ''dGhpcy5vZmZzZXR9fSx7a2V5OiJ1bk9mZnNldHRlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGgtdGhpcy5vZmZzZXR9fSx7a2V5OiJyZW5kZXJlZFRvU291cmNlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5vZmZzZXR0ZWQoaCl9fSx7a2V5OiJzb3VyY2VUb1JlbmRlcmVk''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy51bk9mZnNldHRlZChoKX19LHtrZXk6Im9mZnNldHRlZFRIIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaC10aGlzLmNvdW50VEh9fSx7a2V5OiJ1bk9mZnNldHRlZFRIIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaCt0aGlzLmNv''@;'; put 'put ''dW50VEh9fSx7a2V5OiJ2aXNpYmxlQ29sSGVhZGVkUm93VG9Tb3VyY2VSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJlbmRlcmVkVG9Tb3VyY2UodGhpcy5vZmZzZXR0ZWRUSChoKSl9fSx7a2V5OiJzb3VyY2VSb3dUb1Zpc2libGVDb2xIZWFkZWRSb3ciLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKGgpe3JldHVybiB0aGlzLnVuT2Zmc2V0dGVkVEgodGhpcy5zb3VyY2VUb1JlbmRlcmVkKGgpKX19XSksZH0oKTtjb25zdCBsR2U9YUdlO2Z1bmN0aW9uIElfZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8''@;'; put 'put ''fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBEX2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIHVHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5l''@;'; put 'put ''dyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmN1cnJlbnRTaXplPTAsdGhpcy5uZXh0U2l6ZT0wLHRoaXMuY3VycmVudE9mZnNldD0wLHRoaXMubmV4dE9mZnNldD0wfXJldHVybiBmdW5jdGlvbiBjR2UoZCxnLGgpe2cmJklf''@;'; put 'put ''ZShkLnByb3RvdHlwZSxnKSxoJiZJX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50U2l6ZT10aGlzLm5leHRTaXplLHRoaXMubmV4dFNpemU9aH19''@;'; put 'put ''LHtrZXk6InNldE9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50T2Zmc2V0PXRoaXMubmV4dE9mZnNldCx0aGlzLm5leHRPZmZzZXQ9aH19XSksZH0oKTtmdW5jdGlvbiBMX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFi''@;'; put 'put ''bGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgZEdlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpeyhmdW5jdGlvbiBmR2UoZCxnKXtpZighKGQgaW5zdGFu''@;'; put 'put ''Y2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5zaXplPW5ldyBEX2UsdGhpcy53b3JraW5nU3BhY2U9MCx0aGlzLnNoYXJlZFNpemU9bnVsbH1yZXR1cm4gZnVuY3Rpb24gaEdlKGQsZyxoKXtnJiZM''@;'; put 'put ''X2UoZC5wcm90b3R5cGUsZyksaCYmTF9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuc2l6ZS5zZXRTaXplKGgpfX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbihoKXt0aGlzLnNpemUuc2V0T2Zmc2V0KGgpfX0se2tleToiZ2V0Vmlld1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l6ZX19LHtrZXk6ImlzU2hhcmVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXJlZFNpemUgaW5zdGFuY2VvZiBEX2V9fSx7''@;'; put 'put ''a2V5OiJpc1BsYWNlT24iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLndvcmtpbmdTcGFjZT09PWh9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMud29ya2luZ1NwYWNlPTEsaC53b3JraW5nU3BhY2U9Mix0aGlzLnNoYXJlZFNpemU9aC5nZXRWaWV3U2l6ZSgp''@;'; put 'put ''fX0se2tleToicHJlcGVuZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy53b3JraW5nU3BhY2U9MixoLndvcmtpbmdTcGFjZT0xLHRoaXMuc2hhcmVkU2l6ZT1oLmdldFZpZXdTaXplKCl9fV0pLGR9KCk7ZnVuY3Rpb24gT19lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2''@;'; put 'put ''PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFJfZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiBw''@;'; put 'put ''R2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5yb290Tm9kZT1nLHRoaXMubm9kZXNQb29sPWgsdGhpcy5zaXplU2V0PW5ldyBkR2UsdGhpcy5jaGlsZE5vZGVU''@;'; put 'put ''eXBlPXYudG9VcHBlckNhc2UoKSx0aGlzLnZpc3VhbEluZGV4PTAsdGhpcy5jb2xsZWN0ZWROb2Rlcz1bXX1yZXR1cm4gZnVuY3Rpb24gZ0dlKGQsZyxoKXtnJiZPX2UoZC5wcm90b3R5cGUsZyksaCYmT19lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRh''@;'; put 'put ''YmxlOiExfSl9KGQsW3trZXk6InNldFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNpemVTZXQuc2V0U2l6ZShoKSx0aGlzfX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5zaXplU2V0LnNldE9mZnNldChoKSx0aGlzfX0se2tleToi''@;'; put 'put ''aXNTaGFyZWRWaWV3U2V0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNpemVTZXQuaXNTaGFyZWQoKX19LHtrZXk6ImdldE5vZGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoPHRoaXMuY29sbGVjdGVkTm9kZXMubGVuZ3RoP3RoaXMuY29sbGVjdGVkTm9kZXNbaF06bnVsbH19''@;'; put 'put ''LHtrZXk6ImdldEN1cnJlbnROb2RlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY29sbGVjdGVkTm9kZXMubGVuZ3RoO3JldHVybiBoPjA/dGhpcy5jb2xsZWN0ZWROb2Rlc1toLTFdOm51bGx9fSx7a2V5OiJnZXRSZW5kZXJlZENoaWxkQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; put 'put ''IGg9dGhpcy5yb290Tm9kZSx2PXRoaXMuc2l6ZVNldCx5PTA7aWYodGhpcy5pc1NoYXJlZFZpZXdTZXQoKSlmb3IodmFyIEM9aC5maXJzdEVsZW1lbnRDaGlsZDtDOyl7aWYoQy50YWdOYW1lPT09dGhpcy5jaGlsZE5vZGVUeXBlKXkrPTE7ZWxzZSBpZih2LmlzUGxhY2VPbigxKSlicmVhaztD''@;'; put 'put ''PUMubmV4dEVsZW1lbnRTaWJsaW5nfWVsc2UgeT1oLmNoaWxkRWxlbWVudENvdW50O3JldHVybiB5fX0se2tleToic3RhcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb2xsZWN0ZWROb2Rlcy5sZW5ndGg9MCx0aGlzLnZpc3VhbEluZGV4PTA7Zm9yKHZhciBoPXRoaXMucm9vdE5vZGUsdj10''@;'; put 'put ''aGlzLnNpemVTZXQseT10aGlzLmlzU2hhcmVkVmlld1NldCgpLEk9di5nZXRWaWV3U2l6ZSgpLm5leHRTaXplLFo9dGhpcy5nZXRSZW5kZXJlZENoaWxkQ291bnQoKTtaPEk7KXt2YXIgdWU9dGhpcy5ub2Rlc1Bvb2woKTsheXx8eSYmdi5pc1BsYWNlT24oMik/aC5hcHBlbmRDaGlsZCh1ZSk6''@;'; put 'put ''aC5pbnNlcnRCZWZvcmUodWUsaC5maXJzdENoaWxkKSxaKz0xfWZvcih2YXIgX2U9eSYmdi5pc1BsYWNlT24oMSk7Wj5JOyloLnJlbW92ZUNoaWxkKF9lP2guZmlyc3RDaGlsZDpoLmxhc3RDaGlsZCksWi09MX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnJv''@;'; put 'put ''b3ROb2RlLHY9dGhpcy5zaXplU2V0LHk9dGhpcy52aXN1YWxJbmRleDt0aGlzLmlzU2hhcmVkVmlld1NldCgpJiZ2LmlzUGxhY2VPbigyKSYmKHkrPXYuc2hhcmVkU2l6ZS5uZXh0U2l6ZSk7dmFyIEM9aC5jaGlsZE5vZGVzW3ldO2lmKEMudGFnTmFtZSE9PXRoaXMuY2hpbGROb2RlVHlwZSl7''@;'; put 'put ''dmFyIEk9dGhpcy5ub2Rlc1Bvb2woKTtoLnJlcGxhY2VDaGlsZChJLEMpLEM9SX10aGlzLmNvbGxlY3RlZE5vZGVzLnB1c2goQyksdGhpcy52aXN1YWxJbmRleCs9MX19LHtrZXk6ImVuZCIsdmFsdWU6ZnVuY3Rpb24oKXt9fV0pLGR9KCk7ZnVuY3Rpb24gVTNlKGQpe3JldHVybihVM2U9ImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5''@;'; put 'put ''bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBtR2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBCX2UoZCxnKXtmb3IodmFyIGg9MDto''@;'; put 'put ''PGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBRM2UoZCxnKXtyZXR1cm4oUTNl''@;'; put 'put ''PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gd0dlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09VTNlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0''@;'; put 'put ''dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBiR2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRo''@;'; put 'put ''aXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBoZWUoZCl7cmV0dXJuKGhlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1''@;'; put 'put ''cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBQX2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEFHZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0''@;'; put 'put ''aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; put 'put ''bGU6ITF9KSxnJiZRM2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB5R2UoZCl7dmFyIGc9ZnVuY3Rpb24gX0dlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9u''@;'; put 'put ''Ij09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9aGVl''@;'; put 'put ''KGQpO2lmKGcpe3ZhciBDPWhlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gd0dlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIG1HZSh0aGlzLGgpLGcuYXBw''@;'; put 'put ''bHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiB2R2UoZCxnLGgpe2cmJkJfZShkLnByb3RvdHlwZSxnKSxoJiZCX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToicHJlcGVuZFZpZXciLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKHkpe3JldHVybiB0aGlzLnNpemVTZXQucHJlcGVuZCh5LnNpemVTZXQpLHkuc2l6ZVNldC5hcHBlbmQodGhpcy5zaXplU2V0KSx0aGlzfX0se2tleToiYXBwZW5kVmlldyIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuc2l6ZVNldC5hcHBlbmQoeS5zaXplU2V0KSx5LnNpemVT''@;'; put 'put ''ZXQucHJlcGVuZCh0aGlzLnNpemVTZXQpLHRoaXN9fV0pLGh9KFJfZSk7ZnVuY3Rpb24gRl9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2Lndy''@;'; put 'put ''aXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFNHZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIENHZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBm''@;'; put 'put ''dW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm5vZGVUeXBlPWcudG9VcHBlckNhc2UoKX1yZXR1cm4gZnVuY3Rpb24ga0dlKGQsZyxoKXtnJiZGX2UoZC5wcm90b3R5cGUsZyksaCYmRl9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQs''@;'; put 'put ''W3trZXk6InNldFJvb3REb2N1bWVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5yb290RG9jdW1lbnQ9aH19LHtrZXk6Im9idGFpbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0aGlzLm5vZGVUeXBlKX19XSksZH0oKTtmdW5jdGlv''@;'; put 'put ''biBIX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIg''@;'; put 'put ''UVo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIE1HZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLm5vZGVzUG9vbD0ic3RyaW5nIj09dHlw''@;'; put 'put ''ZW9mIGc/bmV3IFNHZShnKTpudWxsLHRoaXMubm9kZVR5cGU9Zyx0aGlzLnJvb3ROb2RlPWgsdGhpcy50YWJsZT1udWxsLHRoaXMucmVuZGVyZWROb2Rlcz0wfXJldHVybiBmdW5jdGlvbiBFR2UoZCxnLGgpe2cmJkhfZShkLnByb3RvdHlwZSxnKSxoJiZIX2UoZCxoKSxPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0VGFibGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMubm9kZXNQb29sJiZ0aGlzLm5vZGVzUG9vbC5zZXRSb290RG9jdW1lbnQoaC5yb290RG9jdW1lbnQpLHRoaXMudGFibGU9aH19LHtrZXk6ImFkanVz''@;'; put 'put ''dCIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dKSxkfSgpO2Z1bmN0aW9uIEozZShkKXtyZXR1cm4oSjNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3Jl''@;'; put 'put ''dHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gTl9lKGQsZyl7Zm9yKHZhciBoPTA7aDxn''@;'; put 'put ''Lmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gWDNlKGQsZyl7cmV0dXJuKFgzZT1P''@;'; put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIExHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PUozZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVy''@;'; put 'put ''biBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gT0dlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlz''@;'; put 'put ''IGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZGVlKGQpe3JldHVybihkZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; put 'put ''IGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgQkdlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBJR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhl''@;'; put 'put ''ciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxl''@;'; put 'put ''OiExfSksZyYmWDNlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gREdlKGQpe3ZhciBnPWZ1bmN0aW9uIFJHZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9''@;'; put 'put ''PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWRlZShk''@;'; put 'put ''KTtpZihnKXt2YXIgQz1kZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIExHZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2O3JldHVybiBmdW5jdGlvbiB4R2Uo''@;'; put 'put ''ZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwodj1nLmNhbGwodGhpcywiVEgiKSkub3JkZXJWaWV3cz1uZXcgV2Vha01hcCx2LnNvdXJjZVJvd0luZGV4PTAsdn1yZXR1cm4g''@;'; put 'put ''ZnVuY3Rpb24gVEdlKGQsZyxoKXtnJiZOX2UoZC5wcm90b3R5cGUsZyksaCYmTl9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6Im9idGFpbk9yZGVyVmlldyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEksQz10aGlzO3Jl''@;'; put 'put ''dHVybiB0aGlzLm9yZGVyVmlld3MuaGFzKHkpP0k9dGhpcy5vcmRlclZpZXdzLmdldCh5KTooST1uZXcgUF9lKHksZnVuY3Rpb24oWil7cmV0dXJuIEMubm9kZXNQb29sLm9idGFpbihDLnNvdXJjZVJvd0luZGV4LFopfSx0aGlzLm5vZGVUeXBlKSx0aGlzLm9yZGVyVmlld3Muc2V0KHksSSkp''@;'; put 'put ''LEl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUsQz15LnJvd3NUb1JlbmRlcixJPXkucm93SGVhZGVyRnVuY3Rpb25zLFo9eS5yb3dIZWFkZXJzQ291bnQsdWU9eS5yb3dzLF9lPXkuY2VsbHMsQmU9MDtCZTxDO0JlKyspe3ZhciBOZT10aGlz''@;'; put 'put ''LnRhYmxlLnJlbmRlcmVkUm93VG9Tb3VyY2UoQmUpLEtlPXVlLmdldFJlbmRlcmVkTm9kZShCZSk7dGhpcy5zb3VyY2VSb3dJbmRleD1OZTt2YXIgcHQ9dGhpcy5vYnRhaW5PcmRlclZpZXcoS2UpLE90PV9lLm9idGFpbk9yZGVyVmlldyhLZSk7cHQuYXBwZW5kVmlldyhPdCkuc2V0U2l6ZSha''@;'; put 'put ''KS5zZXRPZmZzZXQodGhpcy50YWJsZS5yZW5kZXJlZENvbHVtblRvU291cmNlKDApKS5zdGFydCgpO2Zvcih2YXIgJHQ9MDskdDxaOyR0Kyspe3B0LnJlbmRlcigpO3ZhciBmbj1wdC5nZXRDdXJyZW50Tm9kZSgpO2ZuLmNsYXNzTmFtZT0iIixmbi5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiks''@;'; put 'put ''SVskdF0oTmUsZm4sJHQpfXB0LmVuZCgpfX19XSksaH0oUVopO2Z1bmN0aW9uIEszZShkKXtyZXR1cm4oSzNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7''@;'; put 'put ''cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gVl9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5l''@;'; put 'put ''bnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gJDNlKGQsZyl7cmV0dXJuKCQzZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0''@;'; put 'put ''LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFZHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PUszZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3''@;'; put 'put ''IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gakdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0g''@;'; put 'put ''c3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gcGVlKGQpe3JldHVybihwZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJv''@;'; put 'put ''dG90eXBlT2YoaCl9KShkKX12YXIgekdlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBIR2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtk''@;'; put 'put ''LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmJDNlKGQsZyl9KGgsZCk7dmFy''@;'; put 'put ''IGc9ZnVuY3Rpb24gTkdlKGQpe3ZhciBnPWZ1bmN0aW9uIFpHZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7''@;'; put 'put ''cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXBlZShkKTtpZihnKXt2YXIgQz1wZWUodGhpcykuY29u''@;'; put 'put ''c3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFZHZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZnVuY3Rpb24gUEdlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cg''@;'; put 'put ''bmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsbnVsbCx2KX1yZXR1cm4gZnVuY3Rpb24gRkdlKGQsZyxoKXtnJiZWX2UoZC5wcm90b3R5cGUsZyksaCYmVl9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQs''@;'; put 'put ''InByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFkanVzdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnRhYmxlLEM9eS5jb2x1bW5IZWFkZXJzQ291bnQsWj10aGlzLnJvb3ROb2RlLmZpcnN0Q2hpbGQ7aWYoQyl7Zm9yKHZhciBfZT10aGlzLnRhYmxlLmNvbHVtbnNU''@;'; put 'put ''b1JlbmRlcit5LnJvd0hlYWRlcnNDb3VudCxCZT0wLE5lPUM7QmU8TmU7QmUrKyl7Zm9yKChaPXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tCZV0pfHwoWj10aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpLHRoaXMucm9vdE5vZGUuYXBwZW5kQ2hpbGQoWikpLHRo''@;'; put 'put ''aXMucmVuZGVyZWROb2Rlcz1aLmNoaWxkTm9kZXMubGVuZ3RoO3RoaXMucmVuZGVyZWROb2RlczxfZTspWi5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpKSx0aGlzLnJlbmRlcmVkTm9kZXMrPTE7Zm9yKDt0aGlzLnJlbmRlcmVkTm9kZXM+''@;'; put 'put ''X2U7KVoucmVtb3ZlQ2hpbGQoWi5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rlcy09MX12YXIgS2U9dGhpcy5yb290Tm9kZS5jaGlsZE5vZGVzLmxlbmd0aDtpZihLZT5DKWZvcih2YXIgcHQ9QztwdDxLZTtwdCsrKXRoaXMucm9vdE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5yb290Tm9kZS5s''@;'; put 'put ''YXN0Q2hpbGQpfWVsc2UgWiYmRHAoWil9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUuY29sdW1uSGVhZGVyc0NvdW50LEM9MDtDPHk7Qys9MSlmb3IodmFyIEk9dGhpcy50YWJsZSxaPUkuY29sdW1uSGVhZGVyRnVuY3Rpb25zLHVlPUkuY29s''@;'; put 'put ''dW1uc1RvUmVuZGVyLF9lPUkucm93SGVhZGVyc0NvdW50LEJlPXRoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tDXSxOZT0tMSpfZTtOZTx1ZTtOZSs9MSl7dmFyIEtlPXRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZShOZSkscHQ9QmUuY2hpbGROb2Rlc1tOZStfZV07cHQuY2xhc3NO''@;'; put 'put ''YW1lPSIiLHB0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSxaW0NdKEtlLHB0LEMpfX19XSksaH0oUVopO2Z1bmN0aW9uIHEzZShkKXtyZXR1cm4ocTNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVy''@;'; put 'put ''biB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gal9lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxl''@;'; put 'put ''bmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZWRlKGQsZyl7cmV0dXJuKGVkZT1PYmpl''@;'; put 'put ''Y3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFFHZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PXEzZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBn''@;'; put 'put ''O2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gSkdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhh''@;'; put 'put ''c24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZ2VlKGQpe3JldHVybihnZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGgu''@;'; put 'put ''X19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgWl9lLEtHZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gWUdlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRo''@;'; put 'put ''ZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJs''@;'; put 'put ''ZTohMX0pLGcmJmVkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFVHZShkKXt2YXIgZz1mdW5jdGlvbiBYR2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24i''@;'; put 'put ''PT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1nZWUo''@;'; put 'put ''ZCk7aWYoZyl7dmFyIEM9Z2VlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBRR2UodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7cmV0dXJuIGZ1bmN0aW9uIEdHZShkLGcp''@;'; put 'put ''e2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLG51bGwsdil9cmV0dXJuIGZ1bmN0aW9uIFdHZShkLGcsaCl7ZyYmal9lKGQucHJvdG90eXBlLGcpLGgmJmpfZShk''@;'; put 'put ''LGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJhZGp1c3QiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PXRoaXMudGFibGUsWj15LmNvbHVtbnNUb1JlbmRlcit5LnJvd0hlYWRlcnNDb3VudDt0aGlzLnJlbmRlcmVkTm9k''@;'; put 'put ''ZXM8WjspdGhpcy5yb290Tm9kZS5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjb2wiKSksdGhpcy5yZW5kZXJlZE5vZGVzKz0xO2Zvcig7dGhpcy5yZW5kZXJlZE5vZGVzPlo7KXRoaXMucm9vdE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5yb290Tm9k''@;'; put 'put ''ZS5sYXN0Q2hpbGQpLHRoaXMucmVuZGVyZWROb2Rlcy09MX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmFkanVzdCgpO2Zvcih2YXIgeT10aGlzLnRhYmxlLEM9eS5jb2x1bW5zVG9SZW5kZXIsST15LnJvd0hlYWRlcnNDb3VudCxaPTA7WjxJO1orKyl7dmFyIHVlPXRo''@;'; put 'put ''aXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZShaKSxfZT10aGlzLnRhYmxlLmNvbHVtblV0aWxzLmdldEhlYWRlcldpZHRoKHVlKTt0aGlzLnJvb3ROb2RlLmNoaWxkTm9kZXNbWl0uc3R5bGUud2lkdGg9IiIuY29uY2F0KF9lLCJweCIpfWZvcih2YXIgQmU9MDtCZTxDO0JlKyspe3Zh''@;'; put 'put ''ciBOZT10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UoQmUpLEtlPXRoaXMudGFibGUuY29sdW1uVXRpbHMuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoTmUpO3RoaXMucm9vdE5vZGUuY2hpbGROb2Rlc1tCZStJXS5zdHlsZS53aWR0aD0iIi5jb25jYXQoS2UsInB4Iil9dmFyIHB0''@;'; put 'put ''PXRoaXMucm9vdE5vZGUuZmlyc3RDaGlsZDtwdCYmTzAocHQsInJvd0hlYWRlciIpfX1dKSxofShRWik7ZnVuY3Rpb24gdGRlKGQpe3JldHVybih0ZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJu''@;'; put 'put ''IHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiB6X2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVu''@;'; put 'put ''Z3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBuZGUoZCxnKXtyZXR1cm4obmRlPU9iamVj''@;'; put 'put ''dC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gcldlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09dGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7''@;'; put 'put ''aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBpV2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFz''@;'; put 'put ''bid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBtZWUoZCl7cmV0dXJuKG1lZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5f''@;'; put 'put ''X3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBHX2U9ITEsYVdlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiB0V2UoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVp''@;'; put 'put ''dGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRh''@;'; put 'put ''YmxlOiExfSksZyYmbmRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gbldlKGQpe3ZhciBnPWZ1bmN0aW9uIG9XZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PW1l''@;'; put 'put ''ZShkKTtpZihnKXt2YXIgQz1tZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHJXZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24g''@;'; put 'put ''cUdlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsIlRSIix2KSkub3JkZXJWaWV3PW5ldyBSX2UodixmdW5jdGlvbihDKXtyZXR1cm4geS5ub2Rl''@;'; put 'put ''c1Bvb2wub2J0YWluKEMpfSx5Lm5vZGVUeXBlKSx5fXJldHVybiBmdW5jdGlvbiBlV2UoZCxnLGgpe2cmJnpfZShkLnByb3RvdHlwZSxnKSxoJiZ6X2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0UmVuZGVyZWRO''@;'; put 'put ''b2RlIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5vcmRlclZpZXcuZ2V0Tm9kZSh5KX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnRhYmxlLnJvd3NUb1JlbmRlcjshR19lJiZ5PjFlMyYmKEdfZT0hMCxsMShQMihaX2V8fChaX2U9ZnVuY3Rpb24g''@;'; put 'put ''JEdlKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWydQZXJmb3JtYW5jZSB0aXA6IEhhbmRzb250YWJsZSByZW5kZXJlZCBtb3JlIHRoYW4gMTAwMCB2''@;'; put 'put ''aXNpYmxlIHJvd3MuIENvbnNpZGVyIGxpbWl0aW5nIFxuICAgICAgICB0aGUgbnVtYmVyIG9mIHJlbmRlcmVkIHJvd3MgYnkgc3BlY2lmeWluZyB0aGUgdGFibGUgaGVpZ2h0IGFuZC9vciB0dXJuaW5nIG9mZiB0aGUgInJlbmRlckFsbFJvd3MiIG9wdGlvbi4nXSxbJ1BlcmZvcm1hbmNlIHRp''@;'; put 'put ''cDogSGFuZHNvbnRhYmxlIHJlbmRlcmVkIG1vcmUgdGhhbiAxMDAwIHZpc2libGUgcm93cy4gQ29uc2lkZXIgbGltaXRpbmdcXHgyMFxuICAgICAgICB0aGUgbnVtYmVyIG9mIHJlbmRlcmVkIHJvd3MgYnkgc3BlY2lmeWluZyB0aGUgdGFibGUgaGVpZ2h0IGFuZC9vciB0dXJuaW5nIG9mZiB0''@;'; put 'put ''aGUgInJlbmRlckFsbFJvd3MiIG9wdGlvbi4nXSkpKSkpLHRoaXMub3JkZXJWaWV3LnNldFNpemUoeSkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRSb3dUb1NvdXJjZSgwKSkuc3RhcnQoKTtmb3IodmFyIEM9MDtDPHk7QysrKXRoaXMub3JkZXJWaWV3LnJlbmRlcigpO3RoaXMub3Jk''@;'; put 'put ''ZXJWaWV3LmVuZCgpfX1dKSxofShRWik7ZnVuY3Rpb24gcmRlKGQpe3JldHVybihyZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBXX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5l''@;'; put 'put ''bnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBpZGUoZCxnKXtyZXR1cm4oaWRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBl''@;'; put 'put ''T2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gZldlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09cmRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJE''@;'; put 'put ''ZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBoV2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24n''@;'; put 'put ''dCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiB2ZWUoZCl7cmV0dXJuKHZlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0p''@;'; put 'put ''KGQpfXZhciBwV2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHVXZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9i''@;'; put 'put ''amVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZpZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBj''@;'; put 'put ''V2UoZCl7dmFyIGc9ZnVuY3Rpb24gZFdlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVh''@;'; put 'put ''bi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9dmVlKGQpO2lmKGcpe3ZhciBDPXZlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJl''@;'; put 'put ''ZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZldlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7dmFyIHY7cmV0dXJuIGZ1bmN0aW9uIGxXZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBl''@;'; put 'put ''RXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh2PWcuY2FsbCh0aGlzLCJURCIpKS5vcmRlclZpZXdzPW5ldyBXZWFrTWFwLHYuc291cmNlUm93SW5kZXg9MCx2fXJldHVybiBmdW5jdGlvbiBzV2UoZCxnLGgpe2cmJldfZShkLnByb3RvdHlwZSxn''@;'; put 'put ''KSxoJiZXX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToib2J0YWluT3JkZXJWaWV3Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgSSxDPXRoaXM7cmV0dXJuIHRoaXMub3JkZXJWaWV3cy5oYXMoeSk/ST10aGlzLm9yZGVy''@;'; put 'put ''Vmlld3MuZ2V0KHkpOihJPW5ldyBQX2UoeSxmdW5jdGlvbihaKXtyZXR1cm4gQy5ub2Rlc1Bvb2wub2J0YWluKEMuc291cmNlUm93SW5kZXgsWil9LHRoaXMubm9kZVR5cGUpLHRoaXMub3JkZXJWaWV3cy5zZXQoeSxJKSksSX19LHtrZXk6InJlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXtmb3Io''@;'; put 'put ''dmFyIHk9dGhpcy50YWJsZSxDPXkucm93c1RvUmVuZGVyLEk9eS5jb2x1bW5zVG9SZW5kZXIsWj15LnJvd3MsdWU9eS5yb3dIZWFkZXJzLF9lPTA7X2U8QztfZSsrKXt2YXIgQmU9dGhpcy50YWJsZS5yZW5kZXJlZFJvd1RvU291cmNlKF9lKSxOZT1aLmdldFJlbmRlcmVkTm9kZShfZSk7dGhp''@;'; put 'put ''cy5zb3VyY2VSb3dJbmRleD1CZTt2YXIgS2U9dGhpcy5vYnRhaW5PcmRlclZpZXcoTmUpLHB0PXVlLm9idGFpbk9yZGVyVmlldyhOZSk7S2UucHJlcGVuZFZpZXcocHQpLnNldFNpemUoSSkuc2V0T2Zmc2V0KHRoaXMudGFibGUucmVuZGVyZWRDb2x1bW5Ub1NvdXJjZSgwKSkuc3RhcnQoKTtm''@;'; put 'put ''b3IodmFyIE90PTA7T3Q8STtPdCsrKXtLZS5yZW5kZXIoKTt2YXIgJHQ9S2UuZ2V0Q3VycmVudE5vZGUoKSxmbj10aGlzLnRhYmxlLnJlbmRlcmVkQ29sdW1uVG9Tb3VyY2UoT3QpO3RsKCR0LCJoaWRlIil8fCgkdC5jbGFzc05hbWU9IiIpLCR0LnJlbW92ZUF0dHJpYnV0ZSgic3R5bGUiKSwk''@;'; put 'put ''dC5yZW1vdmVBdHRyaWJ1dGUoImRpciIpLHRoaXMudGFibGUuY2VsbFJlbmRlcmVyKEJlLGZuLCR0KX1LZS5lbmQoKX19fV0pLGh9KFFaKTtmdW5jdGlvbiBnV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEg''@;'; put 'put ''ZnVuY3Rpb24iKX1mdW5jdGlvbiBZX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShkLHYua2V5LHYpfX12YXIgdldlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sdj1oLmNlbGxSZW5kZXJlcjtnV2UodGhpcyxkKSx0aGlzLnJvb3ROb2RlPWcsdGhpcy5yb290''@;'; put 'put ''RG9jdW1lbnQ9dGhpcy5yb290Tm9kZS5vd25lckRvY3VtZW50LHRoaXMucm93SGVhZGVycz1udWxsLHRoaXMuY29sdW1uSGVhZGVycz1udWxsLHRoaXMuY29sR3JvdXA9bnVsbCx0aGlzLnJvd3M9bnVsbCx0aGlzLmNlbGxzPW51bGwsdGhpcy5yb3dGaWx0ZXI9bnVsbCx0aGlzLmNvbHVtbkZp''@;'; put 'put ''bHRlcj1udWxsLHRoaXMucm93VXRpbHM9bnVsbCx0aGlzLmNvbHVtblV0aWxzPW51bGwsdGhpcy5yb3dzVG9SZW5kZXI9MCx0aGlzLmNvbHVtbnNUb1JlbmRlcj0wLHRoaXMucm93SGVhZGVyRnVuY3Rpb25zPVtdLHRoaXMucm93SGVhZGVyc0NvdW50PTAsdGhpcy5jb2x1bW5IZWFkZXJGdW5j''@;'; put 'put ''dGlvbnM9W10sdGhpcy5jb2x1bW5IZWFkZXJzQ291bnQ9MCx0aGlzLmNlbGxSZW5kZXJlcj12fXJldHVybiBmdW5jdGlvbiBtV2UoZCxnLGgpe2cmJllfZShkLnByb3RvdHlwZSxnKSxoJiZZX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9''@;'; put 'put ''KX0oZCxbe2tleToic2V0QXhpc1V0aWxzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMucm93VXRpbHM9aCx0aGlzLmNvbHVtblV0aWxzPXZ9fSx7a2V5OiJzZXRWaWV3cG9ydFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dGhpcy5yb3dzVG9SZW5kZXI9aCx0aGlzLmNvbHVtbnNUb1JlbmRl''@;'; put 'put ''cj12fX0se2tleToic2V0RmlsdGVycyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnJvd0ZpbHRlcj1oLHRoaXMuY29sdW1uRmlsdGVyPXZ9fSx7a2V5OiJzZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMucm93SGVhZGVyRnVuY3Rpb25zPWgsdGhp''@;'; put 'put ''cy5yb3dIZWFkZXJzQ291bnQ9aC5sZW5ndGgsdGhpcy5jb2x1bW5IZWFkZXJGdW5jdGlvbnM9dix0aGlzLmNvbHVtbkhlYWRlcnNDb3VudD12Lmxlbmd0aH19LHtrZXk6InNldFJlbmRlcmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFy''@;'; put 'put ''Z3VtZW50c1swXT9hcmd1bWVudHNbMF06e30sdj1oLnJvd0hlYWRlcnMseT1oLmNvbHVtbkhlYWRlcnMsQz1oLmNvbEdyb3VwLEk9aC5yb3dzLFo9aC5jZWxsczt2LnNldFRhYmxlKHRoaXMpLHkuc2V0VGFibGUodGhpcyksQy5zZXRUYWJsZSh0aGlzKSxJLnNldFRhYmxlKHRoaXMpLFouc2V0''@;'; put 'put ''VGFibGUodGhpcyksdGhpcy5yb3dIZWFkZXJzPXYsdGhpcy5jb2x1bW5IZWFkZXJzPXksdGhpcy5jb2xHcm91cD1DLHRoaXMucm93cz1JLHRoaXMuY2VsbHM9Wn19LHtrZXk6InJlbmRlcmVkUm93VG9Tb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJvd0ZpbHRlci5yZW5k''@;'; put 'put ''ZXJlZFRvU291cmNlKGgpfX0se2tleToicmVuZGVyZWRDb2x1bW5Ub1NvdXJjZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoaCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jb2xHcm91cC5hZGp1c3Qo''@;'; put 'put ''KSx0aGlzLmNvbHVtbkhlYWRlcnMuYWRqdXN0KCksdGhpcy5yb3dzLmFkanVzdCgpLHRoaXMucm93SGVhZGVycy5hZGp1c3QoKSx0aGlzLmNvbHVtbkhlYWRlcnMucmVuZGVyKCksdGhpcy5yb3dzLnJlbmRlcigpLHRoaXMucm93SGVhZGVycy5yZW5kZXIoKSx0aGlzLmNlbGxzLnJlbmRlcigp''@;'; put 'put ''LHRoaXMuY29sdW1uVXRpbHMuY2FsY3VsYXRlV2lkdGhzKCksdGhpcy5jb2xHcm91cC5yZW5kZXIoKTtmb3IodmFyIGg9dGhpcy5yb3dzVG9SZW5kZXIsdj10aGlzLnJvd3MseT0wO3k8aDt5Kyspe3ZhciBDPXYuZ2V0UmVuZGVyZWROb2RlKHkpO2lmKEMuZmlyc3RDaGlsZCl7dmFyIEk9dGhp''@;'; put 'put ''cy5yZW5kZXJlZFJvd1RvU291cmNlKHkpLFo9dGhpcy5yb3dVdGlscy5nZXRIZWlnaHQoSSk7Qy5maXJzdENoaWxkLnN0eWxlLmhlaWdodD1aPyIiLmNvbmNhdChaLTEsInB4Iik6IiJ9fX19XSksZH0oKTtmdW5jdGlvbiBBV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcg''@;'; put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBVX2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYm''@;'; put 'put ''KHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgd1dlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxoPWcuVEFCTEUsdj1nLlRIRUFE''@;'; put 'put ''LHk9Zy5DT0xHUk9VUCxDPWcuVEJPRFksST1nLnJvd1V0aWxzLFo9Zy5jb2x1bW5VdGlscyx1ZT1nLmNlbGxSZW5kZXJlcjtBV2UodGhpcyxkKSx0aGlzLnJlbmRlcmVyPW5ldyB2V2UoaCx7Y2VsbFJlbmRlcmVyOnVlfSksdGhpcy5yZW5kZXJlci5zZXRSZW5kZXJlcnMoe3Jvd0hlYWRlcnM6''@;'; put 'put ''bmV3IEJHZSxjb2x1bW5IZWFkZXJzOm5ldyB6R2UodiksY29sR3JvdXA6bmV3IEtHZSh5KSxyb3dzOm5ldyBhV2UoQyksY2VsbHM6bmV3IHBXZX0pLHRoaXMucmVuZGVyZXIuc2V0QXhpc1V0aWxzKEksWil9cmV0dXJuIGZ1bmN0aW9uIHlXZShkLGcsaCl7ZyYmVV9lKGQucHJvdG90eXBlLGcp''@;'; put 'put ''LGgmJlVfZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRGaWx0ZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEZpbHRlcnMoaCx2KSx0aGlzfX0se2tleToic2V0Vmlld3Bv''@;'; put 'put ''cnRTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldFZpZXdwb3J0U2l6ZShoLHYpLHRoaXN9fSx7a2V5OiJzZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLnJlbmRlcmVyLnNldEhlYWRlckNvbnRl''@;'; put 'put ''bnRSZW5kZXJlcnMoaCx2KSx0aGlzfX0se2tleToiYWRqdXN0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucmVuZGVyZXIuYWRqdXN0KCl9fSx7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yZW5kZXJlci5yZW5kZXIoKX19XSksZH0oKTtmdW5jdGlvbiBRX2UoZCxnKXtmb3Io''@;'; put 'put ''dmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgQ1dlPWZ1bmN0aW9uKCl7''@;'; put 'put ''ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBiV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWcsdGhpcy53dFNldHRpbmdzPWgs''@;'; put 'put ''dGhpcy5oZWFkZXJXaWR0aHM9bmV3IE1hcH1yZXR1cm4gZnVuY3Rpb24gX1dlKGQsZyxoKXtnJiZRX2UoZC5wcm90b3R5cGUsZyksaCYmUV9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldFdpZHRoIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbihoKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbldpZHRoIixoKXx8dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5XaWR0aCIpfX0se2tleToiZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3Zh''@;'; put 'put ''ciB2PXRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLHk9dGhpcy5nZXRXaWR0aChoKTtpZih2KXt2YXIgQz12LmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGgseSk7QyYmKHk9Qyl9cmV0dXJuIHl9fSx7a2V5OiJnZXRIZWFkZXJIZWlnaHQi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IikseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzW2hdO3JldHVybiB2b2lkIDAhPT15JiYodj12P01hdGgubWF4''@;'; put 'put ''KHYseSk6eSksdn19LHtrZXk6ImdldEhlYWRlcldpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5oZWFkZXJXaWR0aHMuZ2V0KHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFRhYmxlLmNvbHVtbkZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGgpKX19LHtrZXk6ImNhbGN1bGF0ZVdp''@;'; put 'put ''ZHRocyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnd0U2V0dGluZ3Msdj10aGlzLmRhdGFBY2Nlc3NPYmplY3QsQz12Lnd0Vmlld3BvcnQsST12LmNsb25lU291cmNlLFo9ST9JLnd0VGFibGUuaG9sZGVyOnYud3RUYWJsZS5ob2xkZXIsdWU9Wi5vZmZzZXRIZWlnaHQ8Wi5zY3JvbGxI''@;'; put 'put ''ZWlnaHQ/QmMoKTowLF9lPWguZ2V0U2V0dGluZygicm93SGVhZGVyV2lkdGgiKTtpZihDLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnJlZnJlc2hTdHJldGNoaW5nKEMuZ2V0Vmlld3BvcnRXaWR0aCgpLXVlKSxudWxsIT0oX2U9aC5nZXRTZXR0aW5nKCJvbk1vZGlmeVJvd0hlYWRlcldpZHRo''@;'; put 'put ''IixfZSkpKWZvcih2YXIgQmU9aC5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoLE5lPWguZ2V0U2V0dGluZygiZGVmYXVsdENvbHVtbldpZHRoIiksS2U9MDtLZTxCZTtLZSsrKXt2YXIgcHQ9QXJyYXkuaXNBcnJheShfZSk/X2VbS2VdOl9lO3RoaXMuaGVhZGVyV2lkdGhzLnNldChL''@;'; put 'put ''ZSxwdD1udWxsPT1wdD9OZTpwdCl9fX1dKSxkfSgpO2Z1bmN0aW9uIEpfZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCks''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBNV2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGtXZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIp''@;'; put 'put ''fSkodGhpcyxkKSx0aGlzLmRhdGFBY2Nlc3NPYmplY3Q9Zyx0aGlzLnd0U2V0dGluZ3M9aH1yZXR1cm4gZnVuY3Rpb24gU1dlKGQsZyxoKXtnJiZKX2UoZC5wcm90b3R5cGUsZyksaCYmSl9lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9''@;'; put 'put ''KGQsW3trZXk6ImdldEhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlaWdodCIsaCkseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW2hdO3JldHVybiB2b2lkIDAhPT15JiYodj12b2lk''@;'; put 'put ''IDA9PT12P3k6TWF0aC5tYXgodix5KSksdn19XSksZH0oKSxJUz0idG9wIixFZz0iYm90dG9tIixEUz0iaW5saW5lX3N0YXJ0IixMUz0idG9wX2lubGluZV9zdGFydF9jb3JuZXIiLHh3PSJib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciIsRVdlPVtJUyxFZyxEUyxMUyx4d10seFdlPW5ldyBN''@;'; put 'put ''YXAoW1tJUywiaHRfY2xvbmVfIi5jb25jYXQoSVMpXSxbRWcsImh0X2Nsb25lXyIuY29uY2F0KEVnKV0sW0RTLCJodF9jbG9uZV8iLmNvbmNhdChEUywiIGh0X2Nsb25lX2xlZnQiKV0sW0xTLCJodF9jbG9uZV8iLmNvbmNhdChMUywiIGh0X2Nsb25lX3RvcF9sZWZ0X2Nvcm5lciIpXSxbeHcs''@;'; put 'put ''Imh0X2Nsb25lXyIuY29uY2F0KHh3LCIgaHRfY2xvbmVfYm90dG9tX2xlZnRfY29ybmVyIildXSk7ZnVuY3Rpb24gWF9lKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBvZGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2Uo''@;'; put 'put ''OCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQv''@;'; put 'put ''LnRlc3QoaCkpcmV0dXJuIG9kZShkLGcpfX1mdW5jdGlvbiBvZGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBLX2UoZCxnKXtmb3IodmFyIGg9MDto''@;'; put 'put ''PGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB4ZyhkLGcsaCl7cmV0dXJuIGcg''@;'; put 'put ''aW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIE5XZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYseSxDKXt2YXIgST10aGlzOyhmdW5jdGlvbiBGV2UoZCxnKXtp''@;'; put 'put ''ZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCkseGcodGhpcywid3RTZXR0aW5ncyIsbnVsbCkseGcodGhpcywiZG9tQmluZGluZ3MiLHZvaWQgMCkseGcodGhpcywiVEJPRFkiLG51bGwp''@;'; put 'put ''LHhnKHRoaXMsIlRIRUFEIixudWxsKSx4Zyh0aGlzLCJDT0xHUk9VUCIsbnVsbCkseGcodGhpcywiaGFzVGFibGVIZWlnaHQiLCEwKSx4Zyh0aGlzLCJoYXNUYWJsZVdpZHRoIiwhMCkseGcodGhpcywiaXNUYWJsZVZpc2libGUiLCExKSx4Zyh0aGlzLCJ0YWJsZU9mZnNldCIsMCkseGcodGhp''@;'; put 'put ''cywiaG9sZGVyT2Zmc2V0IiwwKSx0aGlzLmRvbUJpbmRpbmdzPXYsdGhpcy5pc01hc3Rlcj0ibWFzdGVyIj09PUMsdGhpcy5uYW1lPUMsdGhpcy5kYXRhQWNjZXNzT2JqZWN0PWcsdGhpcy5mYWNhZGVHZXR0ZXI9aCx0aGlzLnd0U2V0dGluZ3M9eSx0aGlzLmluc3RhbmNlPXRoaXMuZGF0YUFj''@;'; put 'put ''Y2Vzc09iamVjdC53b3QsdGhpcy53b3Q9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LndvdCx0aGlzLlRBQkxFPXYucm9vdFRhYmxlLHAzZSh0aGlzLlRBQkxFKSx0aGlzLnNwcmVhZGVyPXRoaXMuY3JlYXRlU3ByZWFkZXIodGhpcy5UQUJMRSksdGhpcy5oaWRlcj10aGlzLmNyZWF0ZUhpZGVyKHRo''@;'; put 'put ''aXMuc3ByZWFkZXIpLHRoaXMuaG9sZGVyPXRoaXMuY3JlYXRlSG9sZGVyKHRoaXMuaGlkZXIpLHRoaXMud3RSb290RWxlbWVudD10aGlzLmhvbGRlci5wYXJlbnROb2RlLHRoaXMuaXNNYXN0ZXImJnRoaXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpLHRoaXMuZml4VGFi''@;'; put 'put ''bGVEb21UcmVlKCksdGhpcy5yb3dGaWx0ZXI9bnVsbCx0aGlzLmNvbHVtbkZpbHRlcj1udWxsLHRoaXMuY29ycmVjdEhlYWRlcldpZHRoPSExO3ZhciBaPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZSgicm93SGVhZGVyV2lkdGgiKTt0aGlzLnd0U2V0dGluZ3MudXBkYXRlKCJyb3dI''@;'; put 'put ''ZWFkZXJXaWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4gSS5fbW9kaWZ5Um93SGVhZGVyV2lkdGgoWil9KSx0aGlzLnJvd1V0aWxzPW5ldyBNV2UodGhpcy5kYXRhQWNjZXNzT2JqZWN0LHRoaXMud3RTZXR0aW5ncyksdGhpcy5jb2x1bW5VdGlscz1uZXcgQ1dlKHRoaXMuZGF0YUFjY2Vzc09iamVj''@;'; put 'put ''dCx0aGlzLnd0U2V0dGluZ3MpLHRoaXMudGFibGVSZW5kZXJlcj1uZXcgd1dlKHtUQUJMRTp0aGlzLlRBQkxFLFRIRUFEOnRoaXMuVEhFQUQsQ09MR1JPVVA6dGhpcy5DT0xHUk9VUCxUQk9EWTp0aGlzLlRCT0RZLHJvd1V0aWxzOnRoaXMucm93VXRpbHMsY29sdW1uVXRpbHM6dGhpcy5jb2x1''@;'; put 'put ''bW5VdGlscyxjZWxsUmVuZGVyZXI6dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmdQdXJlKCJjZWxsUmVuZGVyZXIiKX0pfXJldHVybiBmdW5jdGlvbiBIV2UoZCxnLGgpe2cmJktfZShkLnByb3RvdHlwZSxnKSxoJiZLX2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBl''@;'; put 'put ''Iix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLm5hbWU9PT1ofX0se2tleToiZml4VGFibGVEb21UcmVlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50O3RoaXMuVEJPRFk9dGhpcy5U''@;'; put 'put ''QUJMRS5xdWVyeVNlbGVjdG9yKCJ0Ym9keSIpLHRoaXMuVEJPRFl8fCh0aGlzLlRCT0RZPWguY3JlYXRlRWxlbWVudCgidGJvZHkiKSx0aGlzLlRBQkxFLmFwcGVuZENoaWxkKHRoaXMuVEJPRFkpKSx0aGlzLlRIRUFEPXRoaXMuVEFCTEUucXVlcnlTZWxlY3RvcigidGhlYWQiKSx0aGlzLlRI''@;'; put 'put ''RUFEfHwodGhpcy5USEVBRD1oLmNyZWF0ZUVsZW1lbnQoInRoZWFkIiksdGhpcy5UQUJMRS5pbnNlcnRCZWZvcmUodGhpcy5USEVBRCx0aGlzLlRCT0RZKSksdGhpcy5DT0xHUk9VUD10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoImNvbGdyb3VwIiksdGhpcy5DT0xHUk9VUHx8KHRoaXMuQ09M''@;'; put 'put ''R1JPVVA9aC5jcmVhdGVFbGVtZW50KCJjb2xncm91cCIpLHRoaXMuVEFCTEUuaW5zZXJ0QmVmb3JlKHRoaXMuQ09MR1JPVVAsdGhpcy5USEVBRCkpfX0se2tleToiY3JlYXRlU3ByZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnROb2RlO3JldHVybighdnx8di5ub2Rl''@;'; put 'put ''VHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NOYW1lPSJ3dFNwcmVhZGVyIix2JiZ2Lmluc2VydEJlZm9yZSh5LGgpLHkuYXBwZW5kQ2hpbGQoaCkp''@;'; put 'put ''LHkuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix5fX0se2tleToiY3JlYXRlSGlkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnROb2RlO3JldHVybighdnx8di5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRv''@;'; put 'put ''bUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuY2xhc3NOYW1lPSJ3dEhpZGVyIix2JiZ2Lmluc2VydEJlZm9yZSh5LGgpLHkuYXBwZW5kQ2hpbGQoaCkpLHl9fSx7a2V5OiJjcmVhdGVIb2xkZXIiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5LHY9aC5wYXJlbnRO''@;'; put 'put ''b2RlO3JldHVybighdnx8di5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFfHwhdGwodiwid3RIb2xkZXIiKSkmJigoeT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIix5LmNsYXNzTmFtZT0id3RI''@;'; put 'put ''b2xkZXIiLHYmJnYuaW5zZXJ0QmVmb3JlKHksaCksdGhpcy5pc01hc3RlciYmKHkucGFyZW50Tm9kZS5jbGFzc05hbWUrPSJodF9tYXN0ZXIgaGFuZHNvbnRhYmxlIix5LnBhcmVudE5vZGUuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nUHVyZSgicnRsTW9k''@;'; put 'put ''ZSIpPyJydGwiOiJsdHIiKSkseS5hcHBlbmRDaGlsZChoKSkseX19LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PXRoaXMud3RTZXR0aW5ncyx5PXRoaXMuZGF0YUFjY2Vz''@;'; put 'put ''c09iamVjdCxDPXkud3RPdmVybGF5cyxJPXkud3RWaWV3cG9ydCxaPXYuZ2V0U2V0dGluZygidG90YWxSb3dzIiksdWU9di5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxfZT12LmdldFNldHRpbmcoInJvd0hlYWRlcnMiKSxCZT1fZS5sZW5ndGgsTmU9di5nZXRTZXR0aW5nKCJjb2x1bW5I''@;'; put 'put ''ZWFkZXJzIiksS2U9TmUubGVuZ3RoLHB0PSExLE90PWg7aWYodGhpcy5pc01hc3RlciYmKHRoaXMuaG9sZGVyT2Zmc2V0PWp1KHRoaXMuaG9sZGVyKSxPdD1JLmNyZWF0ZVJlbmRlckNhbGN1bGF0b3JzKE90KSxCZSYmIXYuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSkpe3ZhciAk''@;'; put 'put ''dD1DLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLGZuPXRoaXMuY29ycmVjdEhlYWRlcldpZHRoO3RoaXMuY29ycmVjdEhlYWRlcldpZHRoPTAhPT0kdCxmbiE9PXRoaXMuY29ycmVjdEhlYWRlcldpZHRoJiYoT3Q9ITEpfWlmKHRoaXMuaXNNYXN0ZXImJihwdD1DLnVw''@;'; put 'put ''ZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoKSksT3QpdGhpcy5pc01hc3RlciYmSS5jcmVhdGVWaXNpYmxlQ2FsY3VsYXRvcnMoKSxDJiZDLnJlZnJlc2goITApO2Vsc2V7dGhpcy50YWJsZU9mZnNldD10aGlzLmlzTWFzdGVyP2p1KHRoaXMuVEFCTEUpOnRoaXMuZGF0YUFjY2Vzc09iamVjdC5wYXJl''@;'; put 'put ''bnRUYWJsZU9mZnNldDt2YXIgTG49Wj4wP3RoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpOjAsaXI9dWU+MD90aGlzLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTowO3RoaXMucm93RmlsdGVyPW5ldyBsR2UoTG4sWixLZSksdGhpcy5jb2x1bW5GaWx0ZXI9bmV3IHJHZShpcix1ZSxCZSk7dmFy''@;'; put 'put ''IHdyLG1yPSEwO2lmKHRoaXMuaXNNYXN0ZXIpe3RoaXMuYWxpZ25PdmVybGF5c1dpdGhUcmltbWluZ0NvbnRhaW5lcigpO3ZhciBTcj17fTt0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiYmVmb3JlRHJhdyIsITAsU3IpLG1yPSEwIT09U3Iuc2tpcFJlbmRlcn1pZihtcilpZih0aGlzLnRh''@;'; put 'put ''YmxlUmVuZGVyZXIuc2V0SGVhZGVyQ29udGVudFJlbmRlcmVycyhfZSxOZSksKHRoaXMuaXMoRWcpfHx0aGlzLmlzKHh3KSkmJnRoaXMudGFibGVSZW5kZXJlci5zZXRIZWFkZXJDb250ZW50UmVuZGVyZXJzKF9lLFtdKSx0aGlzLnJlc2V0T3ZlcnNpemVkUm93cygpLHRoaXMudGFibGVSZW5k''@;'; put 'put ''ZXJlci5zZXRWaWV3cG9ydFNpemUodGhpcy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLHRoaXMuZ2V0UmVuZGVyZWRDb2x1bW5zQ291bnQoKSkuc2V0RmlsdGVycyh0aGlzLnJvd0ZpbHRlcix0aGlzLmNvbHVtbkZpbHRlcikucmVuZGVyKCksdGhpcy5pc01hc3RlciYmKHdyPXRoaXMuZGF0YUFj''@;'; put 'put ''Y2Vzc09iamVjdC53b3Jrc3BhY2VXaWR0aCx0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5jb250YWluZXJXaWR0aD1udWxsLHRoaXMubWFya092ZXJzaXplZENvbHVtbkhlYWRlcnMoKSksdGhpcy5hZGp1c3RDb2x1bW5IZWFkZXJIZWlnaHRzKCksKHRoaXMuaXNNYXN0ZXJ8fHRo''@;'; put 'put ''aXMuaXMoRWcpKSYmdGhpcy5tYXJrT3ZlcnNpemVkUm93cygpLHRoaXMuaXNNYXN0ZXIpe3RoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNyZWF0ZVZpc2libGVDYWxjdWxhdG9ycygpLHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dE92ZXJsYXlzLnJlZnJlc2goITEpLHRoaXMuZGF0''@;'; put 'put ''YUFjY2Vzc09iamVjdC53dE92ZXJsYXlzLmFwcGx5VG9ET00oKTt2YXIgUXI9RTIodGhpcy5oaWRlcikseWk9RTIodGhpcy5UQUJMRSk7MCE9PVFyJiZ5aSE9PVFyJiYodGhpcy5jb2x1bW5VdGlscy5jYWxjdWxhdGVXaWR0aHMoKSx0aGlzLnRhYmxlUmVuZGVyZXIucmVuZGVyZXIuY29sR3Jv''@;'; put 'put ''dXAucmVuZGVyKCkpLHdyIT09dGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlV2lkdGgoKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0LmNvbnRhaW5lcldpZHRoPW51bGwsdGhpcy5jb2x1bW5VdGlscy5jYWxjdWxhdGVXaWR0aHMoKSx0aGlz''@;'; put 'put ''LnRhYmxlUmVuZGVyZXIucmVuZGVyZXIuY29sR3JvdXAucmVuZGVyKCkpLHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbkRyYXciLCEwKX1lbHNlIHRoaXMuaXMoRWcpJiZ0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY2xvbmVTb3VyY2Uud3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUo''@;'; put 'put ''KX1pZih0aGlzLmlzTWFzdGVyKXt2YXIgS2k9Qy50b3BPdmVybGF5LnJlc2V0Rml4ZWRQb3NpdGlvbigpO0MuYm90dG9tT3ZlcmxheS5jbG9uZSYmKEtpPUMuYm90dG9tT3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKXx8S2kpLEtpPUMuaW5saW5lU3RhcnRPdmVybGF5LnJlc2V0Rml4ZWRQ''@;'; put 'put ''b3NpdGlvbigpfHxLaSxDLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSYmQy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkucmVzZXRGaXhlZFBvc2l0aW9uKCksQy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJkMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNs''@;'; put 'put ''b25lJiZDLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5yZXNldEZpeGVkUG9zaXRpb24oKSxLaSYmKEMucmVmcmVzaEFsbCgpLEMuYWRqdXN0RWxlbWVudHNTaXplKCkpfXJldHVybiB0aGlzLnJlZnJlc2hTZWxlY3Rpb25zKE90KSxwdCYmQy5zeW5jU2Nyb2xsV2l0aE1hc3Rlcigp''@;'; put 'put ''LHRoaXMuZGF0YUFjY2Vzc09iamVjdC5kcmF3bj0hMCx0aGlzfX0se2tleToibWFya0lmT3ZlcnNpemVkQ29sdW1uSGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoKXtmb3IodmFyIEksWix1ZSx2PXRoaXMuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2UoaCkseT10aGlzLnd0U2V0dGluZ3Mu''@;'; put 'put ''Z2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxlbmd0aCxDPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IiksX2U9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlckhlaWdodCIpfHxbXTt5OylJPXRoaXMuZ2V0Q29sdW1uSGVhZGVy''@;'; put 'put ''SGVpZ2h0KHktPTEpLChaPXRoaXMuZ2V0Q29sdW1uSGVhZGVyKHYseSkpJiYodWU9RXYoWiksKCFJJiZDPHVlfHxJPHVlKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbeV09dWUpLEFycmF5LmlzQXJyYXkoX2UpP251bGwhPV9lW3ld''@;'; put 'put ''JiYodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XT1fZVt5XSk6aXNOYU4oX2UpfHwodGhpcy5kYXRhQWNjZXNzT2JqZWN0Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XT1fZSksdGhpcy5kYXRhQWNjZXNzT2JqZWN0''@;'; put 'put ''Lnd0Vmlld3BvcnQub3ZlcnNpemVkQ29sdW1uSGVhZGVyc1t5XTwoX2VbeV18fF9lKSYmKHRoaXMuZGF0YUFjY2Vzc09iamVjdC53dFZpZXdwb3J0Lm92ZXJzaXplZENvbHVtbkhlYWRlcnNbeV09X2VbeV18fF9lKSl9fSx7a2V5OiJhZGp1c3RDb2x1bW5IZWFkZXJIZWlnaHRzIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbigpe2Zvcih2YXIgdj10aGlzLlRIRUFELmNoaWxkTm9kZXMseT10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRDb2x1bW5IZWFkZXJzLEk9MCxaPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO0k8WjtJKysp''@;'; put 'put ''aWYoeVtJXSl7aWYoIXZbSV18fDA9PT12W0ldLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybjt2W0ldLmNoaWxkTm9kZXNbMF0uc3R5bGUuaGVpZ2h0PSIiLmNvbmNhdCh5W0ldLCJweCIpfX19LHtrZXk6InJlc2V0T3ZlcnNpemVkUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnd0''@;'; put 'put ''U2V0dGluZ3Msdj10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydDtpZigodGhpcy5pc01hc3Rlcnx8dGhpcy5pcyhFZykpJiYhaC5nZXRTZXR0aW5nKCJleHRlcm5hbFJvd0NhbGN1bGF0b3IiKSlmb3IodmFyIHk9dGhpcy5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLEM9MDtDPHk7Qysr''@;'; put 'put ''KXt2YXIgST10aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKEMpO3Yub3ZlcnNpemVkUm93cyYmdi5vdmVyc2l6ZWRSb3dzW0ldJiYodi5vdmVyc2l6ZWRSb3dzW0ldPXZvaWQgMCl9fX0se2tleToicmVtb3ZlQ2xhc3NGcm9tQ2VsbHMiLHZhbHVlOmZ1bmN0aW9uKGgpe2Zvcih2YXIg''@;'; put 'put ''dj10aGlzLlRBQkxFLnF1ZXJ5U2VsZWN0b3JBbGwoIi4iLmNvbmNhdChoKSkseT0wLEM9di5sZW5ndGg7eTxDO3krKylwbCh2W3ldLGgpfX0se2tleToicmVmcmVzaFNlbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud3RTZXR0aW5ncyx5PXRoaXMuZGF0YUFjY2Vzc09i''@;'; put 'put ''amVjdC5zZWxlY3Rpb25zO2lmKHkpe3ZhciBDPUFycmF5LmZyb20oeSksST1DLmxlbmd0aDtpZihoKXtmb3IodmFyIFo9W10sdWU9MDt1ZTxJO3VlKyspe2Zvcih2YXIgX2U9Q1t1ZV0uc2V0dGluZ3MsQmU9X2UuaGlnaGxpZ2h0SGVhZGVyQ2xhc3NOYW1lLE5lPV9lLmhpZ2hsaWdodFJvd0Ns''@;'; put 'put ''YXNzTmFtZSxLZT1fZS5oaWdobGlnaHRDb2x1bW5DbGFzc05hbWUscHQ9Q1t1ZV0uY2xhc3NOYW1lcyxPdD1wdC5sZW5ndGgsJHQ9MDskdDxPdDskdCsrKVouaW5jbHVkZXMocHRbJHRdKXx8Wi5wdXNoKHB0WyR0XSk7QmUmJiFaLmluY2x1ZGVzKEJlKSYmWi5wdXNoKEJlKSxOZSYmIVouaW5j''@;'; put 'put ''bHVkZXMoTmUpJiZaLnB1c2goTmUpLEtlJiYhWi5pbmNsdWRlcyhLZSkmJloucHVzaChLZSl9dmFyIGZuPXYuZ2V0U2V0dGluZygib25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIpO2lmKEFycmF5LmlzQXJyYXkoZm4pKWZvcih2YXIgTG49MDtMbjxmbi5sZW5ndGg7TG4rKylaLnB1c2go''@;'; put 'put ''Zm5bTG5dKTtmb3IodmFyIGlyPVoubGVuZ3RoLG1yPTA7bXI8aXI7bXIrKyl0aGlzLnJlbW92ZUNsYXNzRnJvbUNlbGxzKFpbbXJdKX1mb3IodmFyIFNyPTA7U3I8STtTcisrKUNbU3JdLmRyYXcodGhpcy5mYWNhZGVHZXR0ZXIoKSxoKX19fSx7a2V5OiJnZXRDZWxsIix2YWx1ZTpmdW5jdGlv''@;'; put 'put ''bihoKXt2YXIgWix2PWgucm93LHk9aC5jb2wsQz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygib25Nb2RpZnlHZXRDZWxsQ29vcmRzIix2LHkpO2lmKEMmJkFycmF5LmlzQXJyYXkoQykpe3ZhciBJPWZ1bmN0aW9uIE9XZShkLGcpe3JldHVybiBmdW5jdGlvbiBQV2UoZCl7aWYoQXJyYXku''@;'; put 'put ''aXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIEJXZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7''@;'; put 'put ''Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBa''@;'; put 'put ''fX1yZXR1cm4gdn19KGQsZyl8fFhfZShkLGcpfHxmdW5jdGlvbiBSV2UoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11''@;'; put 'put ''c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShDLDIpO3Y9SVswXSx5PUlbMV19aWYodGhpcy5pc1Jvd0JlZm9yZVJlbmRlcmVkUm93cyh2KSlyZXR1cm4tMTtpZih0aGlzLmlzUm93QWZ0ZXJSZW5kZXJlZFJvd3ModikpcmV0dXJuLTI7aWYodGhpcy5pc0NvbHVt''@;'; put 'put ''bkJlZm9yZVJlbmRlcmVkQ29sdW1ucyh5KSlyZXR1cm4tMztpZih0aGlzLmlzQ29sdW1uQWZ0ZXJSZW5kZXJlZENvbHVtbnMoeSkpcmV0dXJuLTQ7aWYoIShaPXY8MD90aGlzLlRIRUFELmNoaWxkTm9kZXNbdGhpcy5yb3dGaWx0ZXIuc291cmNlUm93VG9WaXNpYmxlQ29sSGVhZGVkUm93KHYp''@;'; put 'put ''XTp0aGlzLlRCT0RZLmNoaWxkTm9kZXNbdGhpcy5yb3dGaWx0ZXIuc291cmNlVG9SZW5kZXJlZCh2KV0pJiZ2Pj0wKXRocm93IG5ldyBFcnJvcigiVFIgd2FzIGV4cGVjdGVkIHRvIGJlIHJlbmRlcmVkIGJ1dCBpcyBub3QiKTt2YXIgdWU9Wi5jaGlsZE5vZGVzW3RoaXMuY29sdW1uRmlsdGVy''@;'; put 'put ''LnNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbih5KV07aWYoIXVlJiZ5Pj0wKXRocm93IG5ldyBFcnJvcigiVEQgb3IgVEggd2FzIGV4cGVjdGVkIHRvIGJlIHJlbmRlcmVkIGJ1dCBpcyBub3QiKTtyZXR1cm4gdWV9fSx7a2V5OiJnZXRDb2x1bW5IZWFkZXIiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowLHk9dGhpcy5USEVBRC5jaGlsZE5vZGVzW3ZdO3JldHVybiBudWxsPT15P3ZvaWQgMDp5LmNoaWxkTm9kZXNbdGhpcy5jb2x1bW5GaWx0ZXIuc291cmNlQ29sdW1u''@;'; put 'put ''VG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGgpXX19LHtrZXk6ImdldENvbHVtbkhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PVtdLHk9dGhpcy5jb2x1bW5GaWx0ZXIuc291cmNlQ29sdW1uVG9WaXNpYmxlUm93SGVhZGVkQ29sdW1uKGgpO3JldHVybiB0aGlzLlRIRUFELmNoaWxk''@;'; put 'put ''Tm9kZXMuZm9yRWFjaChmdW5jdGlvbihDKXt2YXIgST1DLmNoaWxkTm9kZXNbeV07SSYmdi5wdXNoKEkpfSksdn19LHtrZXk6ImdldFJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFd''@;'; put 'put ''OjA7aWYoMCE9PXRoaXMuY29sdW1uRmlsdGVyLnNvdXJjZUNvbHVtblRvVmlzaWJsZVJvd0hlYWRlZENvbHVtbigwKSl7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGg7aWYoISh2Pj15KSl7dmFyIEM9dGhpcy5UQk9EWS5jaGlsZE5vZGVzW3Ro''@;'; put 'put ''aXMucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQoaCldO3JldHVybiBudWxsPT1DP3ZvaWQgMDpDLmNoaWxkTm9kZXNbdl19fX19LHtrZXk6ImdldFJvd0hlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKDA9PT10aGlzLmNvbHVtbkZpbHRlci5zb3VyY2VDb2x1bW5Ub1Zpc2libGVSb3dI''@;'; put 'put ''ZWFkZWRDb2x1bW4oMCkpcmV0dXJuW107Zm9yKHZhciB2PVtdLHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGgsQz0wO0M8eTtDKyspe3ZhciBJPXRoaXMuVEJPRFkuY2hpbGROb2Rlc1t0aGlzLnJvd0ZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKGgpXSxa''@;'; put 'put ''PW51bGw9PUk/dm9pZCAwOkkuY2hpbGROb2Rlc1tDXTtaJiZ2LnB1c2goWil9cmV0dXJuIHZ9fSx7a2V5OiJnZXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWg7aWYoIlREIiE9PXYubm9kZU5hbWUmJiJUSCIhPT12Lm5vZGVOYW1lJiYodj1Ndih2LFsiVEQiLCJUSCJdKSksbnVs''@;'; put 'put ''bD09PXYpcmV0dXJuIG51bGw7dmFyIHk9di5wYXJlbnROb2RlLEM9eS5wYXJlbnROb2RlLEk9WmJlKHkpLFo9di5jZWxsSW5kZXg7cmV0dXJuIEN3KExTLHYsdGhpcy53dFJvb3RFbGVtZW50KXx8Q3coSVMsdix0aGlzLnd0Um9vdEVsZW1lbnQpPyJUSEVBRCI9PT1DLm5vZGVOYW1lJiYoSS09''@;'; put 'put ''Qy5jaGlsZE5vZGVzLmxlbmd0aCk6ST1Ddyh4dyx2LHRoaXMud3RSb290RWxlbWVudCl8fEN3KEVnLHYsdGhpcy53dFJvb3RFbGVtZW50KT90aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktQy5jaGlsZE5vZGVzLmxlbmd0aCtJOkM9PT10aGlzLlRIRUFEP3RoaXMucm93''@;'; put 'put ''RmlsdGVyLnZpc2libGVDb2xIZWFkZWRSb3dUb1NvdXJjZVJvdyhJKTp0aGlzLnJvd0ZpbHRlci5yZW5kZXJlZFRvU291cmNlKEkpLFo9Q3coTFMsdix0aGlzLnd0Um9vdEVsZW1lbnQpfHxDdyhEUyx2LHRoaXMud3RSb290RWxlbWVudCl8fEN3KHh3LHYsdGhpcy53dFJvb3RFbGVtZW50KT90''@;'; put 'put ''aGlzLmNvbHVtbkZpbHRlci5vZmZzZXR0ZWRUSChaKTp0aGlzLmNvbHVtbkZpbHRlci52aXNpYmxlUm93SGVhZGVkQ29sdW1uVG9Tb3VyY2VDb2x1bW4oWiksdGhpcy53b3QuY3JlYXRlQ2VsbENvb3JkcyhJLFopfX0se2tleToibWFya092ZXJzaXplZFJvd3MiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''aWYoIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJleHRlcm5hbFJvd0NhbGN1bGF0b3IiKSl7dmFyIEMsSSxaLHVlLF9lLGg9dGhpcy5UQk9EWS5jaGlsZE5vZGVzLmxlbmd0aDtpZihoKnRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJkZWZhdWx0Um93SGVpZ2h0IikhPUV2KHRoaXMu''@;'; put 'put ''VEJPRFkpLTF8fHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSlmb3IoO2g7KVo9dGhpcy5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShoLT0xKSxDPXRoaXMuZ2V0Um93SGVpZ2h0KFopLEk9KF9lPSh1ZT10aGlzLmdldFRyRm9yUm93KFopKS5xdWVyeVNl''@;'; put 'put ''bGVjdG9yKCJ0aCIpKT9FdihfZSk6RXYodWUpLTEsKCFDJiZ0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpPEl8fEM8SSkmJih0aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydC5vdmVyc2l6ZWRSb3dzW1pdPUkrPTEpfX19LHtrZXk6ImdldFRyRm9y''@;'; put 'put ''Um93Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5UQk9EWS5jaGlsZE5vZGVzW3RoaXMucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVyZWQoaCldfX0se2tleToiaXNDb2x1bW5IZWFkZXJSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoaD49MClyZXR1cm4hMTt2YXIgeT10aGlz''@;'; put 'put ''Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpLmxlbmd0aDtyZXR1cm4gTWF0aC5hYnMoaCk8PXl9fSx7a2V5OiJpc1Jvd0hlYWRlclJlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtpZihoPj0wKXJldHVybiExO3ZhciB5PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJj''@;'; put 'put ''b2x1bW5IZWFkZXJzIikubGVuZ3RoO3JldHVybiBNYXRoLmFicyhoKTw9eX19LHtrZXk6ImlzUm93QmVmb3JlUmVuZGVyZWRSb3dzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLmdldEZpcnN0UmVuZGVyZWRSb3coKTtyZXR1cm4gaDwwJiZ2PD0wPyF0aGlzLmlzUm93SGVhZGVyUmVu''@;'; put 'put ''ZGVyZWQoaCk6aDx2fX0se2tleToiaXNSb3dBZnRlclJlbmRlcmVkUm93cyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGg+dGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzQ29sdW1uQmVmb3JlUmVuZGVyZWRDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlz''@;'; put 'put ''LmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTtyZXR1cm4gaDwwJiZ2PD0wPyF0aGlzLmlzQ29sdW1uSGVhZGVyUmVuZGVyZWQoaCk6aDx2fX0se2tleToiaXNDb2x1bW5BZnRlclJlbmRlcmVkQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uRmlsdGVyJiZoPnRo''@;'; put 'put ''aXMuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9fSx7a2V5OiJpc0NvbHVtbkFmdGVyVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmNvbHVtbkZpbHRlciYmaD50aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCl9fSx7a2V5OiJpc1Jvd0FmdGVyVmlld3BvcnQiLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJvd0ZpbHRlciYmaD50aGlzLmdldExhc3RWaXNpYmxlUm93KCl9fSx7a2V5OiJpc0NvbHVtbkJlZm9yZVZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5jb2x1bW5GaWx0ZXImJnRoaXMuY29sdW1uRmlsdGVyLnNvdXJjZVRv''@;'; put 'put ''UmVuZGVyZWQoaCk8MCYmaD49MH19LHtrZXk6ImlzTGFzdFJvd0Z1bGx5VmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzTGFzdENvbHVtbkZ1bGx5VmlzaWJsZSIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRMYXN0VmlzaWJsZUNvbHVtbigpPT09dGhpcy5nZXRMYXN0UmVuZGVyZWRDb2x1bW4oKX19LHtrZXk6ImFsbFJvd3NJblZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxS''@;'; put 'put ''b3dzIik9PT10aGlzLmdldFZpc2libGVSb3dzQ291bnQoKX19LHtrZXk6ImFsbENvbHVtbnNJblZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik9PT10aGlzLmdldFZpc2libGVDb2x1bW5zQ291bnQoKX19''@;'; put 'put ''LHtrZXk6ImdldFJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93VXRpbHMuZ2V0SGVpZ2h0KGgpfX0se2tleToiZ2V0Q29sdW1uSGVhZGVySGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5jb2x1bW5VdGlscy5nZXRIZWFkZXJIZWlnaHQoaCl9''@;'; put 'put ''fSx7a2V5OiJnZXRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uVXRpbHMuZ2V0V2lkdGgoaCl9fSx7a2V5OiJnZXRTdHJldGNoZWRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1uVXRpbHMuZ2V0U3RyZXRjaGVk''@;'; put 'put ''Q29sdW1uV2lkdGgoaCl9fSx7a2V5OiJoYXNEZWZpbmVkU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNUYWJsZUhlaWdodCYmdGhpcy5oYXNUYWJsZVdpZHRofX0se2tleToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEUyKHRoaXMuVEFCTEUpfX0se2tl''@;'; put 'put ''eToiZ2V0SGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBEMSh0aGlzLlRBQkxFKX19LHtrZXk6ImdldFRvdGFsV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9RTIodGhpcy5oaWRlcik7cmV0dXJuIDAhPT1oP2g6dGhpcy5nZXRXaWR0aCgpfX0se2tleToiZ2V0VG90YWxIZWln''@;'; put 'put ''aHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9RDEodGhpcy5oaWRlcik7cmV0dXJuIDAhPT1oP2g6dGhpcy5nZXRIZWlnaHQoKX19LHtrZXk6ImlzVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gY08odGhpcy5UQUJMRSl9fSx7a2V5OiJfbW9kaWZ5Um93SGVhZGVyV2lkdGgiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgpe3ZhciB2PVUyKGgpP2goKTpudWxsO3JldHVybiBBcnJheS5pc0FycmF5KHYpPyh2PWZ1bmN0aW9uIFRXZShkKXtyZXR1cm4gZnVuY3Rpb24gTFdlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIG9kZShkKX0oZCl8fGZ1bmN0aW9uIERXZShkKXtpZigidW5k''@;'; put 'put ''ZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxYX2UoZCl8fGZ1bmN0aW9uIElXZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJl''@;'; put 'put ''YWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh2KSlbdi5sZW5ndGgtMV09dGhpcy5fY29ycmVjdFJvd0hlYWRlcldpZHRoKHZbdi5s''@;'; put 'put ''ZW5ndGgtMV0pOnY9dGhpcy5fY29ycmVjdFJvd0hlYWRlcldpZHRoKHYpLHZ9fSx7a2V5OiJfY29ycmVjdFJvd0hlYWRlcldpZHRoIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oO3JldHVybiJudW1iZXIiIT10eXBlb2YgaCYmKHY9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1''@;'; put 'put ''bHRDb2x1bW5XaWR0aCIpKSx0aGlzLmNvcnJlY3RIZWFkZXJXaWR0aCYmKHYrPTEpLHZ9fV0pLGR9KCk7Y29uc3Qgdk89TldlO3ZhciAkX2U9e2dldEZpcnN0UmVuZGVyZWRSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKT8t''@;'; put 'put ''MTowfSxnZXRGaXJzdFZpc2libGVSb3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGaXJzdFJlbmRlcmVkUm93KCl9LGdldExhc3RSZW5kZXJlZFJvdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCktMX0sZ2V0TGFzdFZpc2libGVSb3c6ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5nZXRMYXN0UmVuZGVyZWRSb3coKX0sZ2V0UmVuZGVyZWRSb3dzQ291bnQ6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7cmV0dXJuIE1hdGgubWluKHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJv''@;'; put 'put ''d3NUb3AiKSxnKX0sZ2V0VmlzaWJsZVJvd3NDb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkUm93c0NvdW50KCl9fTtTZygkX2UsIk1JWElOX05BTUUiLCJzdGlja3lSb3dzVG9wIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IHFfZT0kX2U7dmFyIGVD''@;'; put 'put ''ZT17Z2V0Rmlyc3RSZW5kZXJlZENvbHVtbjpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zdGFydENvbHVtblJlbmRlcmVkO3JldHVybiBudWxsPT09Zz8tMTpnfSxnZXRGaXJzdFZpc2libGVDb2x1bW46ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmpl''@;'; put 'put ''Y3Quc3RhcnRDb2x1bW5WaXNpYmxlO3JldHVybiBudWxsPT09Zz8tMTpnfSxnZXRMYXN0UmVuZGVyZWRDb2x1bW46ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmplY3QuZW5kQ29sdW1uUmVuZGVyZWQ7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldExhc3RWaXNpYmxlQ29sdW1u''@;'; put 'put ''OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmVuZENvbHVtblZpc2libGU7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldFJlbmRlcmVkQ29sdW1uc0NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb3VudENvbHVtbnNSZW5kZXJlZH0s''@;'; put 'put ''Z2V0VmlzaWJsZUNvbHVtbnNDb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGFBY2Nlc3NPYmplY3QuY291bnRDb2x1bW5zVmlzaWJsZX19O1NnKGVDZSwiTUlYSU5fTkFNRSIsImNhbGN1bGF0ZWRDb2x1bW5zIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IGFkZT1l''@;'; put 'put ''Q2U7ZnVuY3Rpb24gbGRlKGQpe3JldHVybihsZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJv''@;'; put 'put ''bCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiB0Q2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZp''@;'; put 'put ''Z3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBzZGUoZCxnKXtyZXR1cm4oc2RlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYs''@;'; put 'put ''eSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gWVdlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09bGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBt''@;'; put 'put ''YXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBVV2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVy''@;'; put 'put ''biBkfShkKX1mdW5jdGlvbiBBZWUoZCl7cmV0dXJuKEFlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciB1ZGU9ZnVuY3Rpb24o''@;'; put 'put ''ZCl7IWZ1bmN0aW9uIEdXZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90''@;'; put 'put ''b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZzZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBXV2UoZCl7dmFyIGc9ZnVuY3Rpb24g''@;'; put 'put ''UVdlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5j''@;'; put 'put ''YWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9QWVlKGQpO2lmKGcpe3ZhciBDPUFlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJn''@;'; put 'put ''dW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWVdlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiB6V2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBh''@;'; put 'put ''IGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyx2LHksQyxJLElTKX1yZXR1cm4gZnVuY3Rpb24gWldlKGQsZyxoKXtyZXR1cm4gZyYmdENlKGQucHJvdG90eXBlLGcpLGgmJnRDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0''@;'; put 'put ''YWJsZTohMX0pLGR9KGgpfSh2Tyk7QjIodWRlLHFfZSksQjIodWRlLGFkZSk7Y29uc3QgSldlPXVkZTtmdW5jdGlvbiBuQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwi''@;'; put 'put ''dmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBjZGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0''@;'; put 'put ''YWJsZTohMH0pOmRbZ109aCxkfXZhciAkV2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBYV2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksY2RlKHRo''@;'; put 'put ''aXMsImRhdGFBY2Nlc3NPYmplY3QiLHZvaWQgMCksY2RlKHRoaXMsImxhc3RTY3JvbGxlZENvbHVtblBvcyIsLTEpLGNkZSh0aGlzLCJsYXN0U2Nyb2xsZWRSb3dQb3MiLC0xKSx0aGlzLmRhdGFBY2Nlc3NPYmplY3Q9Z31yZXR1cm4gZnVuY3Rpb24gS1dlKGQsZyxoKXtnJiZuQ2UoZC5wcm90''@;'; put 'put ''b3R5cGUsZyksaCYmbkNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNjcm9sbFZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbihoLHYseSxDLEkpe3ZhciBaPXRoaXMuc2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoaC5j''@;'; put 'put ''b2wseSxJKSx1ZT10aGlzLnNjcm9sbFZpZXdwb3J0VmVydGljYWxseShoLnJvdyx2LEMpO3JldHVybiBafHx1ZX19LHtrZXk6InNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LFo9Qy50b3RhbENvbHVt''@;'; put 'put ''bnM7aWYoIUMuZHJhd258fCFOdW1iZXIuaXNJbnRlZ2VyKGgpfHxoPDB8fGg+WilyZXR1cm4hMTt2YXIgdWU9dGhpcy5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSxfZT10aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCksQmU9dm9pZCAwPT09diYmdm9pZCAwPT09eSxOZT10aGlzLmRhdGFBY2Nl''@;'; put 'put ''c3NPYmplY3QscHQ9TmUuaW5saW5lU3RhcnRPdmVybGF5O2lmKEJlJiZoPE5lLmZpeGVkQ29sdW1uc1N0YXJ0KXJldHVybiExO3ZhciBPdD0hMTtyZXR1cm4tMT09PXVlP090PXB0LnNjcm9sbFRvKGgsQmU/aD50aGlzLmxhc3RTY3JvbGxlZENvbHVtblBvczp2KTooQmUmJihoPHVlfHxoPl9l''@;'; put 'put ''KXx8IUJlKSYmKE90PXB0LnNjcm9sbFRvKGgsQmU/aD5fZTp2KSksT3QmJih0aGlzLmxhc3RTY3JvbGxlZENvbHVtblBvcz1oKSxPdH19LHtrZXk6InNjcm9sbFZpZXdwb3J0VmVydGljYWxseSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZGF0YUFjY2Vzc09iamVjdCxaPUMu''@;'; put 'put ''dG90YWxSb3dzO2lmKCFDLmRyYXdufHwhTnVtYmVyLmlzSW50ZWdlcihoKXx8aDwwfHxoPlopcmV0dXJuITE7dmFyIHVlPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlUm93KCksX2U9dGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpLEJlPXZvaWQgMD09PXYmJnZvaWQgMD09PXksTmU9dGhpcy5kYXRhQWNj''@;'; put 'put ''ZXNzT2JqZWN0LE90PU5lLnRvcE92ZXJsYXk7aWYoQmUmJihoPE5lLmZpeGVkUm93c1RvcHx8aD5aLU5lLmZpeGVkUm93c0JvdHRvbS0xKSlyZXR1cm4hMTt2YXIgJHQ9ITE7cmV0dXJuLTE9PT11ZT8kdD1PdC5zY3JvbGxUbyhoLEJlP2g+dGhpcy5sYXN0U2Nyb2xsZWRSb3dQb3M6eSk6KEJl''@;'; put 'put ''JiYoaDx1ZXx8aD5fZSl8fCFCZSkmJigkdD1PdC5zY3JvbGxUbyhoLEJlP2g+X2U6eSkpLCR0JiYodGhpcy5sYXN0U2Nyb2xsZWRSb3dQb3M9aCksJHR9fSx7a2V5OiJnZXRGaXJzdFZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LHY9aC50''@;'; put 'put ''b3BPdmVybGF5LHk9aC53dFRhYmxlLEM9aC53dFZpZXdwb3J0LEk9aC50b3RhbFJvd3MsWj1oLmZpeGVkUm93c1RvcCx1ZT1oLnJvb3RXaW5kb3csX2U9eS5nZXRGaXJzdFZpc2libGVSb3coKTtpZih2Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dWUpe3ZhciBCZT1qdSh5Lnd0Um9v''@;'; put 'put ''dEVsZW1lbnQpLE5lPUV2KHkuaGlkZXIpLEtlPUV2KHVlKSxwdD1GWih1ZSx1ZSk7aWYoQmUudG9wK05lLUtlPD1wdCl7dmFyIE90PUMuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCk7T3QrPXYuc3VtQ2VsbFNpemVzKDAsWik7Zm9yKHZhciAkdD1JOyR0PjA7JHQtLSlpZihPdCs9di5zdW1DZWxs''@;'; put 'put ''U2l6ZXMoJHQtMSwkdCksQmUudG9wK05lLU90PD1wdCl7X2U9JHQ7YnJlYWt9fX1yZXR1cm4gX2V9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLnRvcE92ZXJsYXkseT1oLnd0VGFibGUsQz1oLnd0Vmll''@;'; put 'put ''d3BvcnQsST1oLnRvdGFsUm93cyxaPWgucm9vdFdpbmRvdyx1ZT15LmdldExhc3RWaXNpYmxlUm93KCk7aWYodi5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PVope3ZhciBfZT1qdSh5Lnd0Um9vdEVsZW1lbnQpLEJlPUZaKFosWik7aWYoX2UudG9wPkJlKWZvcih2YXIgTmU9RXYoWiks''@;'; put 'put ''S2U9Qy5nZXRDb2x1bW5IZWFkZXJIZWlnaHQoKSxwdD0xO3B0PD1JO3B0KyspaWYoS2UrPXYuc3VtQ2VsbFNpemVzKHB0LTEscHQpLF9lLnRvcCtLZS1CZT49TmUpe3VlPXB0LTI7YnJlYWt9fXJldHVybiB1ZX19LHtrZXk6ImdldEZpcnN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLmlubGluZVN0YXJ0T3ZlcmxheSx5PWgud3RUYWJsZSxDPWgud3RWaWV3cG9ydCxJPWgudG90YWxDb2x1bW5zLFo9aC5yb290V2luZG93LHVlPXkuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCk7aWYodi5tYWluVGFibGVTY3JvbGxhYmxl''@;'; put 'put ''RWxlbWVudD09PVope3ZhciBfZT1qdSh5Lnd0Um9vdEVsZW1lbnQpLEJlPU5aKHkuaGlkZXIpLE5lPU5aKFopLEtlPU1hdGguYWJzKHRlZShaLFopKTtpZihfZS5sZWZ0K0JlLU5lPD1LZSlmb3IodmFyIHB0PUMuZ2V0Um93SGVhZGVyV2lkdGgoKSxPdD1JO090PjA7T3QtLSlpZihwdCs9di5z''@;'; put 'put ''dW1DZWxsU2l6ZXMoT3QtMSxPdCksX2UubGVmdCtCZS1wdDw9S2Upe3VlPU90O2JyZWFrfX1yZXR1cm4gdWV9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmRhdGFBY2Nlc3NPYmplY3Qsdj1oLmlubGluZVN0YXJ0T3ZlcmxheSx5PWgu''@;'; put 'put ''d3RUYWJsZSxDPWgud3RWaWV3cG9ydCxJPWgudG90YWxDb2x1bW5zLFo9aC5yb290V2luZG93LHVlPXkuZ2V0TGFzdFZpc2libGVDb2x1bW4oKTtpZih2Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09Wil7dmFyIF9lPWp1KHkud3RSb290RWxlbWVudCksQmU9TWF0aC5hYnModGVlKFos''@;'; put 'put ''WikpO2lmKF9lLmxlZnQ+QmUpZm9yKHZhciBOZT1OWihaKSxLZT1DLmdldFJvd0hlYWRlcldpZHRoKCkscHQ9MTtwdDw9STtwdCsrKWlmKEtlKz12LnN1bUNlbGxTaXplcyhwdC0xLHB0KSxfZS5sZWZ0K0tlLUJlPj1OZSl7dWU9cHQtMjticmVha319cmV0dXJuIHVlfX1dKSxkfSgpO2NvbnN0''@;'; put 'put ''IHFXZT0kV2U7ZnVuY3Rpb24gZVllKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gckNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5l''@;'; put 'put ''bnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gblllKGQsZyxoKXsoZnVuY3Rpb24gclllKGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cg''@;'; put 'put ''bmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBpQ2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6''@;'; put 'put ''aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIEpaKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGlZZShkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsb0NlKGQsZywiZ2V0IikpfWZ1bmN0aW9uIG9ZZShk''@;'; put 'put ''LGcsaCl7cmV0dXJuIGZ1bmN0aW9uIGFZZShkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFsdWU9aH19KGQsb0NlKGQsZywi''@;'; put 'put ''c2V0IiksaCksaH1mdW5jdGlvbiBvQ2UoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIE9TPW5ldyBXZWFrTWFwLGxZZT1mdW5jdGlvbigp''@;'; put 'put ''e2Z1bmN0aW9uIGQoZyxoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdO2VZZSh0aGlzLGQpLGlDZSh0aGlzLCJyb3ciLG51bGwpLGlDZSh0aGlzLCJjb2wiLG51bGwpLG5ZZSh0aGlzLE9TLHt3cml0YWJsZTohMCx2YWx1ZToh''@;'; put 'put ''MX0pLG9ZZSh0aGlzLE9TLHYpLHZvaWQgMCE9PWcmJnZvaWQgMCE9PWgmJih0aGlzLnJvdz1nLHRoaXMuY29sPWgpfXJldHVybiBmdW5jdGlvbiB0WWUoZCxnLGgpe2cmJnJDZShkLnByb3RvdHlwZSxnKSxoJiZyQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; put 'put ''d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaXNWYWxpZCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuISh0aGlzLnJvdzwwfHx0aGlzLmNvbDwwfHx0aGlzLnJvdz49aC5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKXx8dGhpcy5jb2w+PWguZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIikpfX0se2tl''@;'; put 'put ''eToiaXNFcXVhbCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGg9PT10aGlzfHx0aGlzLnJvdz09PWgucm93JiZ0aGlzLmNvbD09PWguY29sfX0se2tleToiaXNTb3V0aEVhc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93Pj1oLnJvdyYmKEpaKHRoaXMsT1MpP3RoaXMu''@;'; put 'put ''Y29sPD1oLmNvbDp0aGlzLmNvbD49aC5jb2wpfX0se2tleToiaXNOb3J0aFdlc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93PD1oLnJvdyYmKEpaKHRoaXMsT1MpP3RoaXMuY29sPj1oLmNvbDp0aGlzLmNvbDw9aC5jb2wpfX0se2tleToiaXNTb3V0aFdlc3RPZiIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93Pj1oLnJvdyYmKEpaKHRoaXMsT1MpP3RoaXMuY29sPj1oLmNvbDp0aGlzLmNvbDw9aC5jb2wpfX0se2tleToiaXNOb3J0aEVhc3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMucm93PD1oLnJvdyYmKEpaKHRoaXMsT1MpP3Ro''@;'; put 'put ''aXMuY29sPD1oLmNvbDp0aGlzLmNvbD49aC5jb2wpfX0se2tleToibm9ybWFsaXplIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvdz1udWxsPT09dGhpcy5yb3c/dGhpcy5yb3c6TWF0aC5tYXgodGhpcy5yb3csMCksdGhpcy5jb2w9bnVsbD09PXRoaXMuY29sP3RoaXMuY29sOk1h''@;'; put 'put ''dGgubWF4KHRoaXMuY29sLDApLHRoaXN9fSx7a2V5OiJjbG9uZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGQodGhpcy5yb3csdGhpcy5jb2wsSloodGhpcyxPUykpfX0se2tleToidG9PYmplY3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3Jvdzp0aGlzLnJvdyxjb2w6dGhpcy5j''@;'; put 'put ''b2x9fX1dKSxkfSgpO2NvbnN0IGZkZT1sWWU7ZnVuY3Rpb24gc1llKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gYUNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDto''@;'; put 'put ''Kyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gY1llKGQsZyxoKXsoZnVuY3Rpb24gZlllKGQsZyl7''@;'; put 'put ''aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBoZGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIFRnKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGhZZShkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsbENlKGQsZywiZ2V0''@;'; put 'put ''IikpfWZ1bmN0aW9uIGRZZShkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uIHBZZShkLGcsaCl7aWYoZy5zZXQpZy5zZXQuY2FsbChkLGgpO2Vsc2V7aWYoIWcud3JpdGFibGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvIHNldCByZWFkIG9ubHkgcHJpdmF0ZSBmaWVsZCIpO2cudmFs''@;'; put 'put ''dWU9aH19KGQsbENlKGQsZywic2V0IiksaCksaH1mdW5jdGlvbiBsQ2UoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIE9wPW5ldyBXZWFr''@;'; put 'put ''TWFwLGdZZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmcsdj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06Zyx5PWFyZ3VtZW50''@;'; put 'put ''cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107c1llKHRoaXMsZCksaGRlKHRoaXMsImhpZ2hsaWdodCIsbnVsbCksaGRlKHRoaXMsImZyb20iLG51bGwpLGhkZSh0aGlzLCJ0byIsbnVsbCksY1llKHRoaXMsT3Ase3dyaXRhYmxlOiEwLHZhbHVlOiExfSks''@;'; put 'put ''dGhpcy5oaWdobGlnaHQ9Zy5jbG9uZSgpLm5vcm1hbGl6ZSgpLHRoaXMuZnJvbT1oLmNsb25lKCksdGhpcy50bz12LmNsb25lKCksZFllKHRoaXMsT3AseSl9cmV0dXJuIGZ1bmN0aW9uIHVZZShkLGcsaCl7ZyYmYUNlKGQucHJvdG90eXBlLGcpLGgmJmFDZShkLGgpLE9iamVjdC5kZWZpbmVQ''@;'; put 'put ''cm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRIaWdobGlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmhpZ2hsaWdodD1oLmNsb25lKCkubm9ybWFsaXplKCksdGhpc319LHtrZXk6InNldEZyb20iLHZhbHVlOmZ1bmN0aW9uKGgpe3Jl''@;'; put 'put ''dHVybiB0aGlzLmZyb209aC5jbG9uZSgpLHRoaXN9fSx7a2V5OiJzZXRUbyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMudG89aC5jbG9uZSgpLHRoaXN9fSx7a2V5OiJpc1ZhbGlkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5mcm9tLmlzVmFsaWQoaCkmJnRoaXMudG8u''@;'; put 'put ''aXNWYWxpZChoKX19LHtrZXk6ImlzU2luZ2xlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZyb20ucm93Pj0wJiZ0aGlzLmZyb20ucm93PT09dGhpcy50by5yb3cmJnRoaXMuZnJvbS5jb2w+PTAmJnRoaXMuZnJvbS5jb2w9PT10aGlzLnRvLmNvbH19LHtrZXk6ImdldE91dGVySGVp''@;'; put 'put ''Z2h0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KS1NYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSsxfX0se2tleToiZ2V0T3V0ZXJXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5m''@;'; put 'put ''cm9tLmNvbCx0aGlzLnRvLmNvbCktTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkrMX19LHtrZXk6ImdldEhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1NYXRoLm1heCh0aGlzLmZyb20ucm93LDApLHY9TWF0aC5tYXgodGhpcy50by5yb3csMCk7cmV0dXJuIE1hdGgu''@;'; put 'put ''bWF4KGgsdiktTWF0aC5taW4oaCx2KSsxfX0se2tleToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9TWF0aC5tYXgodGhpcy5mcm9tLmNvbCwwKSx2PU1hdGgubWF4KHRoaXMudG8uY29sLDApO3JldHVybiBNYXRoLm1heChoLHYpLU1hdGgubWluKGgsdikrMX19LHtrZXk6Imdl''@;'; put 'put ''dENlbGxzQ291bnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0V2lkdGgoKSp0aGlzLmdldEhlaWdodCgpfX0se2tleToiaW5jbHVkZXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWgucm93LHk9aC5jb2wsQz10aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSxJPXRoaXMu''@;'; put 'put ''Z2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTtyZXR1cm4gQy5yb3c8PXYmJkkucm93Pj12JiZDLmNvbDw9eSYmSS5jb2w+PXl9fSx7a2V5OiJpbmNsdWRlc1JhbmdlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pbmNsdWRlcyhoLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSkmJnRo''@;'; put 'put ''aXMuaW5jbHVkZXMoaC5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpKX19LHtrZXk6ImlzRXF1YWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KT09PU1hdGgubWluKGguZnJvbS5yb3csaC50by5yb3cpJiZNYXRoLm1heCh0aGlz''@;'; put 'put ''LmZyb20ucm93LHRoaXMudG8ucm93KT09PU1hdGgubWF4KGguZnJvbS5yb3csaC50by5yb3cpJiZNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKT09PU1hdGgubWluKGguZnJvbS5jb2wsaC50by5jb2wpJiZNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKT09PU1h''@;'; put 'put ''dGgubWF4KGguZnJvbS5jb2wsaC50by5jb2wpfX0se2tleToib3ZlcmxhcHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLmlzU291dGhFYXN0T2YodGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKSkmJmguaXNOb3J0aFdlc3RPZih0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIo''@;'; put 'put ''KSl9fSx7a2V5OiJpc1NvdXRoRWFzdE9mIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5pc1NvdXRoRWFzdE9mKGgpfHx0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5pc1NvdXRoRWFzdE9mKGgpfX0se2tleToiaXNOb3J0aFdl''@;'; put 'put ''c3RPZiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuaXNOb3J0aFdlc3RPZihoKXx8dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkuaXNOb3J0aFdlc3RPZihoKX19LHtrZXk6ImlzT3ZlcmxhcHBpbmdIb3Jpem9udGFsbHkiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5jb2w+PWguZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuY29sJiZ0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5jb2w8PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbHx8dGhpcy5nZXRP''@;'; put 'put ''dXRlclRvcExlZnRDb3JuZXIoKS5jb2w8PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbCYmdGhpcy5nZXRPdXRlclRvcExlZnRDb3JuZXIoKS5jb2w+PWguZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCkuY29sfX0se2tleToiaXNPdmVybGFwcGluZ1ZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKGgpe3JldHVybiB0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5yb3c+PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdyYmdGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93PD1oLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKS5yb3d8fHRoaXMuZ2V0''@;'; put 'put ''T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvdzw9aC5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93JiZ0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5yb3c+PWguZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLnJvd319LHtrZXk6ImV4cGFuZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFy''@;'; put 'put ''IHY9dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkseT10aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuKGgucm93PHYucm93fHxoLmNvbDx2LmNvbHx8aC5yb3c+eS5yb3d8fGguY29sPnkuY29sKSYmKHRoaXMuZnJvbT10aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgu''@;'; put 'put ''bWluKHYucm93LGgucm93KSxNYXRoLm1pbih2LmNvbCxoLmNvbCkpLHRoaXMudG89dGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh5LnJvdyxoLnJvdyksTWF0aC5tYXgoeS5jb2wsaC5jb2wpKSwhMCl9fSx7a2V5OiJleHBhbmRCeVJhbmdlIix2YWx1ZTpmdW5jdGlvbihoKXtpZih0''@;'; put 'put ''aGlzLmluY2x1ZGVzUmFuZ2UoaCl8fCF0aGlzLm92ZXJsYXBzKGgpKXJldHVybiExO3ZhciB2PXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHk9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLEM9dGhpcy5nZXREaXJlY3Rpb24oKSxJPWguZ2V0T3V0ZXJUb3BTdGFydENvcm5l''@;'; put 'put ''cigpLFo9aC5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLHVlPU1hdGgubWluKHYucm93LEkucm93KSxfZT1NYXRoLm1pbih2LmNvbCxJLmNvbCksQmU9TWF0aC5tYXgoeS5yb3csWi5yb3cpLE5lPU1hdGgubWF4KHkuY29sLFouY29sKSxLZT10aGlzLl9jcmVhdGVDZWxsQ29vcmRzKHVlLF9l''@;'; put 'put ''KSxwdD10aGlzLl9jcmVhdGVDZWxsQ29vcmRzKEJlLE5lKTtyZXR1cm4gdGhpcy5mcm9tPUtlLHRoaXMudG89cHQsdGhpcy5zZXREaXJlY3Rpb24oQyksdGhpcy5oaWdobGlnaHQucm93PT09dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkucm93JiYiTi1TIj09PXRoaXMuZ2V0VmVy''@;'; put 'put ''dGljYWxEaXJlY3Rpb24oKSYmdGhpcy5mbGlwRGlyZWN0aW9uVmVydGljYWxseSgpLHRoaXMuaGlnaGxpZ2h0LmNvbD09PXRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpLmNvbCYmIlctRSI9PT10aGlzLmdldEhvcml6b250YWxEaXJlY3Rpb24oKSYmdGhpcy5mbGlwRGlyZWN0aW9uSG9y''@;'; put 'put ''aXpvbnRhbGx5KCksITB9fSx7a2V5OiJnZXREaXJlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZnJvbS5pc05vcnRoV2VzdE9mKHRoaXMudG8pPyJOVy1TRSI6dGhpcy5mcm9tLmlzTm9ydGhFYXN0T2YodGhpcy50byk/Ik5FLVNXIjp0aGlzLmZyb20uaXNTb3V0aEVhc3RP''@;'; put 'put ''Zih0aGlzLnRvKT8iU0UtTlciOnRoaXMuZnJvbS5pc1NvdXRoV2VzdE9mKHRoaXMudG8pPyJTVy1ORSI6dm9pZCAwfX0se2tleToic2V0RGlyZWN0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXtzd2l0Y2goaCl7Y2FzZSJOVy1TRSI6dmFyIHY9W3RoaXMuZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyKCks''@;'; put 'put ''dGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCldO3RoaXMuZnJvbT12WzBdLHRoaXMudG89dlsxXTticmVhaztjYXNlIk5FLVNXIjp2YXIgeT1bdGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCksdGhpcy5nZXRPdXRlckJvdHRvbUxlZnRDb3JuZXIoKV07dGhpcy5mcm9tPXlbMF0s''@;'; put 'put ''dGhpcy50bz15WzFdO2JyZWFrO2Nhc2UiU0UtTlciOnZhciBDPVt0aGlzLmdldE91dGVyQm90dG9tUmlnaHRDb3JuZXIoKSx0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpXTt0aGlzLmZyb209Q1swXSx0aGlzLnRvPUNbMV07YnJlYWs7Y2FzZSJTVy1ORSI6dmFyIEk9W3RoaXMuZ2V0T3V0''@;'; put 'put ''ZXJCb3R0b21MZWZ0Q29ybmVyKCksdGhpcy5nZXRPdXRlclRvcFJpZ2h0Q29ybmVyKCldO3RoaXMuZnJvbT1JWzBdLHRoaXMudG89SVsxXX19fSx7a2V5OiJnZXRWZXJ0aWNhbERpcmVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bIk5FLVNXIiwiTlctU0UiXS5pbmRleE9mKHRoaXMu''@;'; put 'put ''Z2V0RGlyZWN0aW9uKCkpPi0xPyJOLVMiOiJTLU4ifX0se2tleToiZ2V0SG9yaXpvbnRhbERpcmVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bIk5XLVNFIiwiU1ctTkUiXS5pbmRleE9mKHRoaXMuZ2V0RGlyZWN0aW9uKCkpPi0xPyJXLUUiOiJFLVcifX0se2tleToiZmxpcERpcmVj''@;'; put 'put ''dGlvblZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9uKCkpe2Nhc2UiTlctU0UiOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJTRS1OVyIpO2JyZWFrO2Nhc2UiU0UtTlciOnRo''@;'; put 'put ''aXMuc2V0RGlyZWN0aW9uKCJORS1TVyIpO2JyZWFrO2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpfX19LHtrZXk6ImZsaXBEaXJlY3Rpb25Ib3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGlyZWN0aW9uKCkpe2Nhc2UiTlctU0UiOnRo''@;'; put 'put ''aXMuc2V0RGlyZWN0aW9uKCJORS1TVyIpO2JyZWFrO2Nhc2UiTkUtU1ciOnRoaXMuc2V0RGlyZWN0aW9uKCJOVy1TRSIpO2JyZWFrO2Nhc2UiU0UtTlciOnRoaXMuc2V0RGlyZWN0aW9uKCJTVy1ORSIpO2JyZWFrO2Nhc2UiU1ctTkUiOnRoaXMuc2V0RGlyZWN0aW9uKCJTRS1OVyIpfX19LHtr''@;'; put 'put ''ZXk6ImdldFRvcFN0YXJ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWluKHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3JtYWxpemUoKX19LHtrZXk6Imdl''@;'; put 'put ''dFRvcExlZnRDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFRnKHRoaXMsT3ApP3RoaXMuZ2V0VG9wRW5kQ29ybmVyKCk6dGhpcy5nZXRUb3BTdGFydENvcm5lcigpfX0se2tleToiZ2V0Qm90dG9tRW5kQ29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVD''@;'; put 'put ''ZWxsQ29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWF4KHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKS5ub3JtYWxpemUoKX19LHtrZXk6ImdldEJvdHRvbVJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlz''@;'; put 'put ''LmdldEJvdHRvbVN0YXJ0Q29ybmVyKCk6dGhpcy5nZXRCb3R0b21FbmRDb3JuZXIoKX19LHtrZXk6ImdldFRvcEVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1h''@;'; put 'put ''eCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXplKCl9fSx7a2V5OiJnZXRUb3BSaWdodENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gVGcodGhpcyxPcCk/dGhpcy5nZXRUb3BTdGFydENvcm5lcigpOnRoaXMuZ2V0VG9wRW5kQ29ybmVyKCl9fSx7a2V5OiJnZXRC''@;'; put 'put ''b3R0b21TdGFydENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1pbih0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSkubm9ybWFsaXplKCl9fSx7a2V5OiJnZXRCb3R0''@;'; put 'put ''b21MZWZ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldEJvdHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0Qm90dG9tU3RhcnRDb3JuZXIoKX19LHtrZXk6ImdldE91dGVyVG9wU3RhcnRDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''X2NyZWF0ZUNlbGxDb29yZHMoTWF0aC5taW4odGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksTWF0aC5taW4odGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkpfX0se2tleToiZ2V0T3V0ZXJUb3BMZWZ0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdl''@;'; put 'put ''dE91dGVyVG9wRW5kQ29ybmVyKCk6dGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbUVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1heCh0aGlzLmZyb20ucm93LHRoaXMudG8ucm93''@;'; put 'put ''KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTp0aGlzLmdldE91dGVyQm90dG9tRW5k''@;'; put 'put ''Q29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlclRvcEVuZENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY3JlYXRlQ2VsbENvb3JkcyhNYXRoLm1pbih0aGlzLmZyb20ucm93LHRoaXMudG8ucm93KSxNYXRoLm1heCh0aGlzLmZyb20uY29sLHRoaXMudG8uY29sKSl9fSx7a2V5''@;'; put 'put ''OiJnZXRPdXRlclRvcFJpZ2h0Q29ybmVyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBUZyh0aGlzLE9wKT90aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKTp0aGlzLmdldE91dGVyVG9wRW5kQ29ybmVyKCl9fSx7a2V5OiJnZXRPdXRlckJvdHRvbVN0YXJ0Q29ybmVyIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiB0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKE1hdGgubWF4KHRoaXMuZnJvbS5yb3csdGhpcy50by5yb3cpLE1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpKX19LHtrZXk6ImdldE91dGVyQm90dG9tTGVmdENvcm5lciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gVGcodGhpcyxPcCk/dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpOnRoaXMuZ2V0T3V0ZXJCb3R0b21TdGFydENvcm5lcigpfX0se2tleToiaXNDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuISEodiYmdi5pbmNsdWRlcyhoKSYmKHRoaXMuZ2V0T3V0ZXJUb3BMZWZ0''@;'; put 'put ''Q29ybmVyKCkuaXNFcXVhbCh0aGlzLl9jcmVhdGVDZWxsQ29vcmRzKHYuZnJvbS5yb3csdi5mcm9tLmNvbCkpfHx0aGlzLmdldE91dGVyVG9wUmlnaHRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHModi5mcm9tLnJvdyx2LnRvLmNvbCkpfHx0aGlzLmdldE91dGVyQm90''@;'; put 'put ''dG9tTGVmdENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh2LnRvLnJvdyx2LmZyb20uY29sKSl8fHRoaXMuZ2V0T3V0ZXJCb3R0b21SaWdodENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh2LnRvLnJvdyx2LnRvLmNvbCkpKSl8fGguaXNFcXVh''@;'; put 'put ''bCh0aGlzLmdldE91dGVyVG9wTGVmdENvcm5lcigpKXx8aC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJUb3BSaWdodENvcm5lcigpKXx8aC5pc0VxdWFsKHRoaXMuZ2V0T3V0ZXJCb3R0b21MZWZ0Q29ybmVyKCkpfHxoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbVJpZ2h0Q29ybmVyKCkpfX0s''@;'; put 'put ''e2tleToiZ2V0T3Bwb3NpdGVDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdil7aWYoIShoIGluc3RhbmNlb2YgZmRlKSlyZXR1cm4hMTtpZih2KXt2YXIgeT12LmZyb20sQz12LnRvO2lmKHYuaW5jbHVkZXMoaCkpe2lmKHRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLmlzRXF1YWwodGhp''@;'; put 'put ''cy5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyx5LmNvbCkpKXJldHVybiB0aGlzLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7aWYodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpLmlzRXF1YWwodGhpcy5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyxDLmNvbCkpKXJldHVybiB0aGlzLmdldE91''@;'; put 'put ''dGVyQm90dG9tU3RhcnRDb3JuZXIoKTtpZih0aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3cseS5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpO2lmKHRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRD''@;'; put 'put ''b3JuZXIoKS5pc0VxdWFsKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3csQy5jb2wpKSlyZXR1cm4gdGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCl9fXJldHVybiBoLmlzRXF1YWwodGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpKT90aGlzLmdldE91dGVyVG9wU3RhcnRDb3Ju''@;'; put 'put ''ZXIoKTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcFN0YXJ0Q29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKTpoLmlzRXF1YWwodGhpcy5nZXRPdXRlclRvcEVuZENvcm5lcigpKT90aGlzLmdldE91dGVyQm90dG9tU3RhcnRDb3JuZXIoKTpoLmlzRXF1YWwodGhpcy5n''@;'; put 'put ''ZXRPdXRlckJvdHRvbVN0YXJ0Q29ybmVyKCkpP3RoaXMuZ2V0T3V0ZXJUb3BFbmRDb3JuZXIoKTp2b2lkIDB9fSx7a2V5OiJnZXRCb3JkZXJzU2hhcmVkV2l0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoIXRoaXMuaW5jbHVkZXNSYW5nZShoKSlyZXR1cm5bXTt2YXIgdl90b3A9TWF0aC5taW4o''@;'; put 'put ''dGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksdl9ib3R0b209TWF0aC5tYXgodGhpcy5mcm9tLnJvdyx0aGlzLnRvLnJvdyksdl9sZWZ0PU1hdGgubWluKHRoaXMuZnJvbS5jb2wsdGhpcy50by5jb2wpLHZfcmlnaHQ9TWF0aC5tYXgodGhpcy5mcm9tLmNvbCx0aGlzLnRvLmNvbCkseV90b3A9''@;'; put 'put ''TWF0aC5taW4oaC5mcm9tLnJvdyxoLnRvLnJvdykseV9ib3R0b209TWF0aC5tYXgoaC5mcm9tLnJvdyxoLnRvLnJvdykseV9sZWZ0PU1hdGgubWluKGguZnJvbS5jb2wsaC50by5jb2wpLHlfcmlnaHQ9TWF0aC5tYXgoaC5mcm9tLmNvbCxoLnRvLmNvbCksQz1bXTtyZXR1cm4gdl90b3A9PT15''@;'; put 'put ''X3RvcCYmQy5wdXNoKCJ0b3AiKSx2X3JpZ2h0PT09eV9yaWdodCYmQy5wdXNoKCJyaWdodCIpLHZfYm90dG9tPT09eV9ib3R0b20mJkMucHVzaCgiYm90dG9tIiksdl9sZWZ0PT09eV9sZWZ0JiZDLnB1c2goImxlZnQiKSxDfX0se2tleToiZ2V0SW5uZXIiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9y''@;'; put 'put ''KHZhciBoPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHY9dGhpcy5nZXRPdXRlckJvdHRvbUVuZENvcm5lcigpLHk9W10sQz1oLnJvdztDPD12LnJvdztDKyspZm9yKHZhciBJPWguY29sO0k8PXYuY29sO0krKykodGhpcy5mcm9tLnJvdyE9PUN8fHRoaXMuZnJvbS5jb2whPT1JKSYm''@;'; put 'put ''KHRoaXMudG8ucm93IT09Q3x8dGhpcy50by5jb2whPT1JKSYmeS5wdXNoKHRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSk7cmV0dXJuIHl9fSx7a2V5OiJnZXRBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0T3V0ZXJUb3BTdGFydENvcm5lcigpLHY9dGhpcy5nZXRP''@;'; put 'put ''dXRlckJvdHRvbUVuZENvcm5lcigpLHk9W10sQz1oLnJvdztDPD12LnJvdztDKyspZm9yKHZhciBJPWguY29sO0k8PXYuY29sO0krKyl5LnB1c2goaC5yb3c9PT1DJiZoLmNvbD09PUk/aDp2LnJvdz09PUMmJnYuY29sPT09ST92OnRoaXMuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSk7cmV0dXJu''@;'; put 'put ''IHl9fSx7a2V5OiJmb3JBbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe2Zvcih2YXIgdj10aGlzLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx5PXRoaXMuZ2V0T3V0ZXJCb3R0b21FbmRDb3JuZXIoKSxDPXYucm93O0M8PXkucm93O0MrKylmb3IodmFyIEk9di5jb2w7STw9eS5jb2w7SSsrKWlmKCEx''@;'; put 'put ''PT09aChDLEkpKXJldHVybn19LHtrZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgZCh0aGlzLmhpZ2hsaWdodCx0aGlzLmZyb20sdGhpcy50byxUZyh0aGlzLE9wKSl9fSx7a2V5OiJ0b09iamVjdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57ZnJvbTp0aGlzLmZyb20u''@;'; put 'put ''dG9PYmplY3QoKSx0bzp0aGlzLnRvLnRvT2JqZWN0KCl9fX0se2tleToiX2NyZWF0ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIG5ldyBmZGUoaCx2LFRnKHRoaXMsT3ApKX19XSksZH0oKTtjb25zdCBzQ2U9Z1llO2Z1bmN0aW9uIHVDZShkLGcpe2Zvcih2YXIgaD0w''@;'; put 'put ''O2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEM4KGQsZyxoKXtyZXR1cm4g''@;'; put 'put ''ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgZGRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBtWWUoZCxnKXtpZighKGQgaW5zdGFuY2Vv''@;'; put 'put ''ZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksQzgodGhpcywid3RUYWJsZSIsdm9pZCAwKSxDOCh0aGlzLCJ3dFNjcm9sbCIsdm9pZCAwKSxDOCh0aGlzLCJ3dFZpZXdwb3J0Iix2b2lkIDApLEM4KHRoaXMsInd0''@;'; put 'put ''T3ZlcmxheXMiLHZvaWQgMCksQzgodGhpcywic2VsZWN0aW9ucyIsdm9pZCAwKSxDOCh0aGlzLCJ3dEV2ZW50Iix2b2lkIDApLEM4KHRoaXMsImd1aWQiLCJ3dF8iLmNvbmNhdChpM2UoKSkpLEM4KHRoaXMsImRyYXdJbnRlcnJ1cHRlZCIsITEpLEM4KHRoaXMsImRyYXduIiwhMSksQzgodGhp''@;'; put 'put ''cywiZG9tQmluZGluZ3MiLHZvaWQgMCksQzgodGhpcywid3RTZXR0aW5ncyIsdm9pZCAwKSx0aGlzLmRvbUJpbmRpbmdzPXtyb290VGFibGU6Zyxyb290RG9jdW1lbnQ6Zy5vd25lckRvY3VtZW50LHJvb3RXaW5kb3c6Zy5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fSx0aGlzLnd0U2V0dGlu''@;'; put 'put ''Z3M9aCx0aGlzLnd0U2Nyb2xsPW5ldyBxV2UodGhpcy5jcmVhdGVTY3JvbGxEYW8oKSl9cmV0dXJuIGZ1bmN0aW9uIHZZZShkLGcsaCl7ZyYmdUNlKGQucHJvdG90eXBlLGcpLGgmJnVDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShk''@;'; put 'put ''LFt7a2V5OiJldmVudE1hbmFnZXIiLGdldDpmdW5jdGlvbigpe3JldHVybiBuZXcgTDEodGhpcyl9fSx7a2V5OiJmaW5kT3JpZ2luYWxIZWFkZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPVtdO2lmKHRoaXMud3RUYWJsZS5USEVBRC5jaGlsZE5vZGVzLmxlbmd0aCYmdGhpcy53dFRhYmxl''@;'; put 'put ''LlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcy5sZW5ndGgpe2Zvcih2YXIgdj0wLHk9dGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlcy5sZW5ndGg7djx5O3YrKyloLnB1c2godGhpcy53dFRhYmxlLlRIRUFELmNoaWxkTm9kZXNbMF0uY2hpbGROb2Rlc1t2''@;'; put 'put ''XS5pbm5lckhUTUwpO3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RofHx0aGlzLnd0U2V0dGluZ3MudXBkYXRlKCJjb2x1bW5IZWFkZXJzIixbZnVuY3Rpb24oQyxJKXtTdyhJLGhbQ10pfV0pfX19LHtrZXk6ImNyZWF0ZUNlbGxDb29yZHMiLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKGgsdil7cmV0dXJuIG5ldyBmZGUoaCx2LHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJydGxNb2RlIikpfX0se2tleToiY3JlYXRlQ2VsbFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7cmV0dXJuIG5ldyBzQ2UoaCx2LHksdGhpcy53dFNldHRpbmdzLmdldFNldHRp''@;'; put 'put ''bmcoInJ0bE1vZGUiKSl9fSx7a2V5OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuZHJhd0ludGVycnVwdGVkPSExLGh8fHRoaXMud3RUYWJsZS5pc1Zpc2libGUo''@;'; put 'put ''KT90aGlzLnd0VGFibGUuZHJhdyhoKTp0aGlzLmRyYXdJbnRlcnJ1cHRlZD0hMCx0aGlzfX0se2tleToiZ2V0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZighdilyZXR1cm4gdGhp''@;'; put 'put ''cy53dFRhYmxlLmdldENlbGwoaCk7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLFo9dGhp''@;'; put 'put ''cy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik7aWYoaC5yb3c8QyYmaC5jb2w8WilyZXR1cm4gdGhpcy53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwoaCk7aWYoaC5yb3c8QylyZXR1cm4gdGhpcy53''@;'; put 'put ''dE92ZXJsYXlzLnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5nZXRDZWxsKGgpO2lmKGguY29sPFomJmgucm93Pj15LUkpe2lmKHRoaXMud3RPdmVybGF5cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMud3RPdmVybGF5cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJs''@;'; put 'put ''YXkuY2xvbmUpcmV0dXJuIHRoaXMud3RPdmVybGF5cy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5nZXRDZWxsKGgpfWVsc2V7aWYoaC5jb2w8WilyZXR1cm4gdGhpcy53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENl''@;'; put 'put ''bGwoaCk7aWYoaC5yb3c8eSYmaC5yb3c+PXktSSYmdGhpcy53dE92ZXJsYXlzLmJvdHRvbU92ZXJsYXkmJnRoaXMud3RPdmVybGF5cy5ib3R0b21PdmVybGF5LmNsb25lKXJldHVybiB0aGlzLnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheS5jbG9uZS53dFRhYmxlLmdldENlbGwoaCl9cmV0dXJu''@;'; put 'put ''IHRoaXMud3RUYWJsZS5nZXRDZWxsKGgpfX0se2tleToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIShoLmNvbDwwfHxoLnJvdzwwKSYmdGhpcy53dFNjcm9sbC5zY3JvbGxWaWV3cG9ydChoLHYseSxDLEkpfX0se2tleToic2Nyb2xsVmlld3BvcnRI''@;'; put 'put ''b3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4hKGg8MCkmJnRoaXMud3RTY3JvbGwuc2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoaCx2LHkpfX0se2tleToic2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7cmV0dXJuIShoPDAp''@;'; put 'put ''JiZ0aGlzLnd0U2Nyb2xsLnNjcm9sbFZpZXdwb3J0VmVydGljYWxseShoLHYseSl9fSx7a2V5OiJnZXRWaWV3cG9ydCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy53dFRhYmxlLmdldEZpcnN0VmlzaWJsZVJvdygpLHRoaXMud3RUYWJsZS5nZXRGaXJzdFZpc2libGVDb2x1bW4oKSx0''@;'; put 'put ''aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVSb3coKSx0aGlzLnd0VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4oKV19fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RPdmVybGF5cy5kZXN0cm95KCksdGhpcy53dEV2ZW50LmRlc3Ryb3koKX19LHtrZXk6ImNyZWF0''@;'; put 'put ''ZVNjcm9sbERhbyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3JldHVybntnZXQgZHJhd24oKXtyZXR1cm4gaC5kcmF3bn0sZ2V0IHRvcE92ZXJsYXkoKXtyZXR1cm4gaC53dE92ZXJsYXlzLnRvcE92ZXJsYXl9LGdldCBpbmxpbmVTdGFydE92ZXJsYXkoKXtyZXR1cm4gaC53dE92ZXJs''@;'; put 'put ''YXlzLmlubGluZVN0YXJ0T3ZlcmxheX0sZ2V0IHd0VGFibGUoKXtyZXR1cm4gaC53dFRhYmxlfSxnZXQgd3RWaWV3cG9ydCgpe3JldHVybiBoLnd0Vmlld3BvcnR9LGdldCByb290V2luZG93KCl7cmV0dXJuIGguZG9tQmluZGluZ3Mucm9vdFdpbmRvd30sZ2V0IHRvdGFsUm93cygpe3JldHVy''@;'; put 'put ''biBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIil9LGdldCB0b3RhbENvbHVtbnMoKXtyZXR1cm4gaC53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpfSxnZXQgZml4ZWRSb3dzVG9wKCl7cmV0dXJuIGgud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJv''@;'; put 'put ''d3NUb3AiKX0sZ2V0IGZpeGVkUm93c0JvdHRvbSgpe3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIil9LGdldCBmaXhlZENvbHVtbnNTdGFydCgpe3JldHVybiBoLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKX19fX0se2tl''@;'; put 'put ''eToiZ2V0VGFibGVEYW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiBofSxnZXQgcGFyZW50VGFibGVPZmZzZXQoKXtyZXR1cm4gaC5jbG9uZVNvdXJjZS53dFRhYmxlLnRhYmxlT2Zmc2V0fSxnZXQgY2xvbmVTb3VyY2UoKXtyZXR1cm4gaC5j''@;'; put 'put ''bG9uZVNvdXJjZX0sZ2V0IHdvcmtzcGFjZVdpZHRoKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5nZXRXb3Jrc3BhY2VXaWR0aCgpfSxnZXQgd3RWaWV3cG9ydCgpe3JldHVybiBoLnd0Vmlld3BvcnR9LGdldCB3dE92ZXJsYXlzKCl7cmV0dXJuIGgud3RPdmVybGF5c30sZ2V0IHNlbGVjdGlvbnMo''@;'; put 'put ''KXtyZXR1cm4gaC5zZWxlY3Rpb25zfSxnZXQgZHJhd24oKXtyZXR1cm4gaC5kcmF3bn0sc2V0IGRyYXduKHYpe2guZHJhd249dn0sZ2V0IHd0VGFibGUoKXtyZXR1cm4gaC53dFRhYmxlfSxnZXQgc3RhcnRDb2x1bW5SZW5kZXJlZCgpe3JldHVybiBoLnd0Vmlld3BvcnQuY29sdW1uc1JlbmRl''@;'; put 'put ''ckNhbGN1bGF0b3Iuc3RhcnRDb2x1bW59LGdldCBzdGFydENvbHVtblZpc2libGUoKXtyZXR1cm4gaC53dFZpZXdwb3J0LmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvci5zdGFydENvbHVtbn0sZ2V0IGVuZENvbHVtblJlbmRlcmVkKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVy''@;'; put 'put ''Q2FsY3VsYXRvci5lbmRDb2x1bW59LGdldCBlbmRDb2x1bW5WaXNpYmxlKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IuZW5kQ29sdW1ufSxnZXQgY291bnRDb2x1bW5zUmVuZGVyZWQoKXtyZXR1cm4gaC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxj''@;'; put 'put ''dWxhdG9yLmNvdW50fSxnZXQgY291bnRDb2x1bW5zVmlzaWJsZSgpe3JldHVybiBoLnd0Vmlld3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fSxnZXQgc3RhcnRSb3dSZW5kZXJlZCgpe3JldHVybiBoLnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRSb3d9''@;'; put 'put ''LGdldCBzdGFydFJvd1Zpc2libGUoKXtyZXR1cm4gaC53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvci5zdGFydFJvd30sZ2V0IGVuZFJvd1JlbmRlcmVkKCl7cmV0dXJuIGgud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5lbmRSb3d9LGdldCBlbmRSb3dWaXNpYmxlKCl7''@;'; put 'put ''cmV0dXJuIGgud3RWaWV3cG9ydC5yb3dzVmlzaWJsZUNhbGN1bGF0b3IuZW5kUm93fSxnZXQgY291bnRSb3dzUmVuZGVyZWQoKXtyZXR1cm4gaC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLmNvdW50fSxnZXQgY291bnRSb3dzVmlzaWJsZSgpe3JldHVybiBoLnd0Vmlld3BvcnQu''@;'; put 'put ''cm93c1Zpc2libGVDYWxjdWxhdG9yLmNvdW50fX19fV0pLGR9KCk7ZnVuY3Rpb24gcGRlKGQpe3JldHVybihwZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihn''@;'; put 'put ''KXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBjQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2''@;'; put 'put ''LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBnZGUoZCxnKXtyZXR1cm4oZ2RlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmpl''@;'; put 'put ''Y3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gX1llKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09cGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiB5ZWUoZCl9ZnVuY3Rpb24geWVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRp''@;'; put 'put ''YWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiB3ZWUoZCl7cmV0dXJuKHdlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5n''@;'; put 'put ''ZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIGZDZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIGtZZT1mdW5jdGlvbihkKXsh''@;'; put 'put ''ZnVuY3Rpb24gd1llKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlw''@;'; put 'put ''ZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmdkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGJZZShkKXt2YXIgZz1mdW5jdGlvbiBDWWUo''@;'; put 'put ''KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwo''@;'; put 'put ''UmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj13ZWUoZCk7aWYoZyl7dmFyIEM9d2VlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVu''@;'; put 'put ''dHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBfWWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMpe3ZhciBJOyhmdW5jdGlvbiB5WWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNz''@;'; put 'put ''IGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsaCksZkNlKHllZShJPWcuY2FsbCh0aGlzLHYseSkpLCJjbG9uZVNvdXJjZSIsdm9pZCAwKSxmQ2UoeWVlKEkpLCJjbG9uZU92ZXJsYXkiLHZvaWQgMCk7dmFyIFo9SS53dFNldHRpbmdzLmdldFNldHRpbmcoImZhY2FkZSIseWVlKEkpKTtyZXR1cm4g''@;'; put 'put ''SS5jbG9uZVNvdXJjZT1DLnNvdXJjZSxJLmNsb25lT3ZlcmxheT1DLm92ZXJsYXksSS53dFRhYmxlPUkuY2xvbmVPdmVybGF5LmNyZWF0ZVRhYmxlKEkuZ2V0VGFibGVEYW8oKSxaLEkuZG9tQmluZGluZ3MsSS53dFNldHRpbmdzKSxJLnd0Vmlld3BvcnQ9Qy52aWV3cG9ydCxJLnNlbGVjdGlv''@;'; put 'put ''bnM9Qy5zZWxlY3Rpb25zLEkud3RFdmVudD1uZXcgRV9lKFosSS5kb21CaW5kaW5ncyxJLnd0U2V0dGluZ3MsSS5ldmVudE1hbmFnZXIsSS53dFRhYmxlLEkuc2VsZWN0aW9ucyxDLmV2ZW50KSxJLmZpbmRPcmlnaW5hbEhlYWRlcnMoKSxJfXJldHVybiBmdW5jdGlvbiBBWWUoZCxnLGgpe3Jl''@;'; put 'put ''dHVybiBnJiZjQ2UoZC5wcm90b3R5cGUsZyksaCYmY0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH0oaCl9KGRkZSk7ZnVuY3Rpb24gaENlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVt''@;'; put 'put ''ZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFhaPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdix5LEMpeyhmdW5jdGlvbiBTWWUoZCxnKXtp''@;'; put 'put ''ZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksZnVuY3Rpb24gRVllKGQsZyxoKXtnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNv''@;'; put 'put ''bmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aH0odGhpcywid3RTZXR0aW5ncyIsbnVsbCksU2codGhpcywid290IixnLHt3cml0YWJsZTohMX0pLHRoaXMuZG9tQmluZGluZ3M9Qyx0aGlzLmZhY2FkZUdldHRlcj1oLHRoaXMud3RTZXR0aW5ncz15O3ZhciBJPXRoaXMud290Lnd0''@;'; put 'put ''VGFibGUsWj1JLlRBQkxFLHVlPUkuaGlkZXIsX2U9SS5zcHJlYWRlcixCZT1JLmhvbGRlcixOZT1JLnd0Um9vdEVsZW1lbnQ7dGhpcy5pbnN0YW5jZT10aGlzLndvdCx0aGlzLnR5cGU9dix0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PW51bGwsdGhpcy5UQUJMRT1aLHRoaXMuaGlk''@;'; put 'put ''ZXI9dWUsdGhpcy5zcHJlYWRlcj1fZSx0aGlzLmhvbGRlcj1CZSx0aGlzLnd0Um9vdEVsZW1lbnQ9TmUsdGhpcy50cmltbWluZ0NvbnRhaW5lcj1oTyh0aGlzLmhpZGVyLnBhcmVudE5vZGUucGFyZW50Tm9kZSksdGhpcy51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCksdGhpcy5jbG9uZT10aGlz''@;'; put 'put ''Lm1ha2VDbG9uZSgpfXJldHVybiBmdW5jdGlvbiBNWWUoZCxnLGgpe2cmJmhDZShkLnByb3RvdHlwZSxnKSxoJiZoQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXBkYXRlU3RhdGVPZlJlbmRlcmluZyIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oKXt2YXIgaD10aGlzLm5lZWRGdWxsUmVuZGVyO3RoaXMubmVlZEZ1bGxSZW5kZXI9dGhpcy5zaG91bGRCZVJlbmRlcmVkKCk7dmFyIHY9aCE9PXRoaXMubmVlZEZ1bGxSZW5kZXI7cmV0dXJuIHYmJiF0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnJlc2V0KCksdn19LHtrZXk6''@;'; put 'put ''InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJ1cGRhdGVUcmltbWluZ0NvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnRyaW1taW5nQ29udGFpbmVyPWhPKHRoaXMuaGlkZXIucGFyZW50Tm9kZS5wYXJlbnROb2RlKX19LHtrZXk6InVw''@;'; put 'put ''ZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLndvdC53dFRhYmxlO3RoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9ImhpZGRlbiI9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShoLnd0Um9vdEVs''@;'; put 'put ''ZW1lbnQucGFyZW50Tm9kZSkuZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKT90aGlzLndvdC53dFRhYmxlLmhvbGRlcjpIWihoLlRBQkxFKX19LHtrZXk6ImdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7aWYoITEhPT10aGlzLmNsb25lLnd0VGFibGUu''@;'; put 'put ''aG9sZGVyLmNvbnRhaW5zKGgpKXt2YXIgQz10aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50PT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9eTx0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxaPXY8dGhpcy53dFNldHRpbmdzLmdldFNl''@;'; put 'put ''dHRpbmcoImZpeGVkUm93c1RvcCIpLHVlPXY+PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKS10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksX2U9dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLEJlPXtzdGFydDp0aGlzLmdldFJl''@;'; put 'put ''bGF0aXZlU3RhcnRQb3NpdGlvbihfZSksdG9wOl9lLm9mZnNldFRvcH0sTmU9e3N0YXJ0OnRoaXMuZ2V0UmVsYXRpdmVTdGFydFBvc2l0aW9uKGgpLHRvcDpoLm9mZnNldFRvcH07cmV0dXJuIEM/dGhpcy5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbldpdGhpbldpbmRvdyhaLEksTmUsQmUpOnRo''@;'; put 'put ''aXMuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5Ib2xkZXIoWix1ZSxJLE5lLEJlKX1sMSgiVGhlIHByb3ZpZGVkIGVsZW1lbnQgaXMgbm90IGEgY2hpbGQgb2YgdGhlICIuY29uY2F0KHRoaXMudHlwZSwiIG92ZXJsYXkiKSl9fSx7a2V5OiJnZXRSZWxhdGl2ZVN0YXJ0UG9zaXRpb24i''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmlzUnRsKCk/aC5vZmZzZXRQYXJlbnQub2Zmc2V0V2lkdGgtaC5vZmZzZXRMZWZ0LWgub2Zmc2V0V2lkdGg6aC5vZmZzZXRMZWZ0fX0se2tleToiZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5XaW5kb3ciLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KGgsdix5LEMpe3ZhciBJPXRoaXMud290Lnd0VGFibGUud3RSb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxaPTAsdWU9MDtpZih2KXt2YXIgX2U9SS5sZWZ0O3RoaXMuaXNSdGwoKSYmKF9lPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdy5pbm5lcldpZHRoLShJLmxlZnQr''@;'; put 'put ''SS53aWR0aCtCYygpKSksWj1fZTw9MD8tMSpfZTowfWVsc2UgWj1DLnN0YXJ0O3JldHVybiB1ZT1oP3RoaXMuY2xvbmUud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AtSS50b3A6Qy50b3Ase3N0YXJ0Onkuc3RhcnQrWix0b3A6eS50b3ArdWV9fX0se2tleToiZ2V0''@;'; put 'put ''UmVsYXRpdmVDZWxsUG9zaXRpb25XaXRoaW5Ib2xkZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7dmFyIFpfaG9yaXpvbnRhbD10aGlzLndvdC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLFpfdmVydGljYWw9dGhpcy53b3Qud3RPdmVybGF5''@;'; put 'put ''cy50b3BPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCksdWU9MCxfZT0wO2lmKHl8fCh1ZT1aX2hvcml6b250YWwtSS5zdGFydCksdil7dmFyIEJlPXRoaXMud290Lnd0VGFibGUud3RSb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtfZT0tMSp0aGlzLmNsb25lLnd0VGFibGUu''@;'; put 'put ''VEFCTEUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wK0JlLnRvcH1lbHNlIGh8fChfZT1aX3ZlcnRpY2FsLUkudG9wKTtyZXR1cm57c3RhcnQ6Qy5zdGFydC11ZSx0b3A6Qy50b3AtX2V9fX0se2tleToibWFrZUNsb25lIix2YWx1ZTpmdW5jdGlvbigpe2lmKC0xPT09RVdlLmluZGV4T2Yo''@;'; put 'put ''dGhpcy50eXBlKSl0aHJvdyBuZXcgRXJyb3IoJ0Nsb25lIHR5cGUgIicuY29uY2F0KHRoaXMudHlwZSwnIiBpcyBub3Qgc3VwcG9ydGVkLicpKTt2YXIgaD10aGlzLndvdC53dFRhYmxlLHY9dGhpcy5kb21CaW5kaW5ncyx5PXYucm9vdERvY3VtZW50LEM9di5yb290V2luZG93LEk9eS5jcmVh''@;'; put 'put ''dGVFbGVtZW50KCJESVYiKSxaPXkuY3JlYXRlRWxlbWVudCgiVEFCTEUiKSx1ZT1oLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZTtJLmNsYXNzTmFtZT0iIi5jb25jYXQoeFdlLmdldCh0aGlzLnR5cGUpLCIgaGFuZHNvbnRhYmxlIiksSS5zZXRBdHRyaWJ1dGUoImRpciIsdGhpcy5pc1J0bCgp''@;'; put 'put ''PyJydGwiOiJsdHIiKSxJLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsSS5zdHlsZS50b3A9MCxJLnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIix0aGlzLmlzUnRsKCk/SS5zdHlsZS5yaWdodD0wOkkuc3R5bGUubGVmdD0wLFouY2xhc3NOYW1lPWguVEFCTEUuY2xhc3NOYW1lLEkuYXBwZW5k''@;'; put 'put ''Q2hpbGQoWiksdWUuYXBwZW5kQ2hpbGQoSSk7dmFyIF9lPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtyZXR1cm4gdGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD0hMD09PV9lfHwiaG9yaXpvbnRhbCI9PT1fZSYmdGhpcy50eXBlPT09SVN8fCJ2''@;'; put 'put ''ZXJ0aWNhbCI9PT1fZSYmdGhpcy50eXBlPT09RFM/QzoiaGlkZGVuIj09PUMuZ2V0Q29tcHV0ZWRTdHlsZSh1ZSkuZ2V0UHJvcGVydHlWYWx1ZSgib3ZlcmZsb3ciKT9oLmhvbGRlcjpIWihoLlRBQkxFKSxuZXcga1llKFosdGhpcy53dFNldHRpbmdzLHtzb3VyY2U6dGhpcy53b3Qsb3Zlcmxh''@;'; put 'put ''eTp0aGlzLHZpZXdwb3J0OnRoaXMud290Lnd0Vmlld3BvcnQsZXZlbnQ6dGhpcy53b3Qud3RFdmVudCxzZWxlY3Rpb25zOnRoaXMud290LnNlbGVjdGlvbnN9KX19LHtrZXk6InJlZnJlc2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1''@;'; put 'put ''bWVudHNbMF0mJmFyZ3VtZW50c1swXSx2PXRoaXMuc2hvdWxkQmVSZW5kZXJlZCgpO3RoaXMuY2xvbmUmJih0aGlzLm5lZWRGdWxsUmVuZGVyfHx2KSYmdGhpcy5jbG9uZS5kcmF3KGgpLHRoaXMubmVlZEZ1bGxSZW5kZXI9dn19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe2lmKHRo''@;'; put 'put ''aXMuY2xvbmUpe3ZhciBoPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXI7VXIoW2guc3R5bGUsdGhpcy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLGgucGFyZW50Tm9kZS5zdHlsZV0sZnVuY3Rpb24oWil7Wi53aWR0aD0iIixaLmhlaWdodD0iIn0pfX19LHtrZXk6ImlzUnRsIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb25lLmV2ZW50TWFuYWdlci5kZXN0cm95KCl9fV0pLGR9KCk7ZnVuY3Rpb24gbWRlKGQpe3JldHVybihtZGU9ImZ1bmN0''@;'; put 'put ''aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJv''@;'; put 'put ''bC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBiZWUoZCxnLGgpe3JldHVybihiZWU9Z0NlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj1bbnVsbF07Wi5wdXNoLmFwcGx5KFosQyk7dmFyIF9lPW5ldyhGdW5jdGlvbi5i''@;'; put 'put ''aW5kLmFwcGx5KHksWikpO3JldHVybiBJJiZfZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIGRDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29u''@;'; put 'put ''ZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIF9lZShkLGcpe3JldHVybihfZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24o''@;'; put 'put ''dix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBMWWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1tZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3Jz''@;'; put 'put ''IG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHBDZShkKX1mdW5jdGlvbiBwQ2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxl''@;'; put 'put ''ZCIpO3JldHVybiBkfWZ1bmN0aW9uIGdDZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xl''@;'; put 'put ''YW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBDZWUoZCl7cmV0dXJuKENlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJp''@;'; put 'put ''bmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBSWWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIElZZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBl''@;'; put 'put ''ciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; put 'put ''ZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZfZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBEWWUoZCl7dmFyIGc9Z0NlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1DZWUoZCk7aWYoZyl7dmFyIEM9Q2VlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1''@;'; put 'put ''Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBMWWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7dmFyIFo7cmV0dXJuIGZ1bmN0aW9uIHhZZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; put 'put ''IkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGZ1bmN0aW9uIE9ZZShkLGcsaCl7ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWh9KHBDZSha''@;'; put 'put ''PWcuY2FsbCh0aGlzLHYseSxJUyxDLEkpKSwiY2FjaGVkRml4ZWRSb3dzVG9wIiwtMSksWi5jYWNoZWRGaXhlZFJvd3NUb3A9Wi53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLFp9cmV0dXJuIGZ1bmN0aW9uIFRZZShkLGcsaCl7ZyYmZENlKGQucHJvdG90eXBlLGcpLGgm''@;'; put 'put ''JmRDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3Vt''@;'; put 'put ''ZW50c1tJXTtyZXR1cm4gYmVlKEpXZSxDKX19LHtrZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJUb3BPdmVybGF5Iil9fSx7a2V5OiJyZXNldEZpeGVkUG9zaXRpb24iLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciB5PXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSxDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxJPXRoaXMud3RTZXR0''@;'; put 'put ''aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSxaPTAsdWU9ITE7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PUN8fEkmJiJ2ZXJ0aWNhbCI9PT1JKVo9dGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLGpaKHkpO2Vsc2V7dmFyIEJlPXRoaXMud290Lnd0VGFibGUuaGlkZXIuZ2V0''@;'; put 'put ''Qm91bmRpbmdDbGllbnRSZWN0KCk7dWU9TWF0aC5jZWlsKEJlLmJvdHRvbSk9PT15Lm9mZnNldEhlaWdodCxaPXRoaXMuZ2V0T3ZlcmxheU9mZnNldCgpLHJlZSh5LCIwcHgiLCIiLmNvbmNhdChaLCJweCIpKX12YXIgcHQ9dGhpcy5hZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24oWix1ZSk7''@;'; put 'put ''cmV0dXJuIHRoaXMuYWRqdXN0RWxlbWVudHNTaXplKCkscHR9fSx7a2V5OiJzZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9ITE7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1DJiZD''@;'; put 'put ''LnNjcm9sbFkhPT15PyhDLnNjcm9sbFRvKHhTKEMpLHkpLEk9ITApOnRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wIT09eSYmKHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wPXksST0hMCksSX19LHtrZXk6Im9uU2Nyb2xsIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxseSIpfX0se2tleToic3VtQ2VsbFNpemVzIix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpLFo9eSx1''@;'; put 'put ''ZT0wO1o8Qzspe3ZhciBfZT10aGlzLndvdC53dFRhYmxlLmdldFJvd0hlaWdodChaKTt1ZSs9dm9pZCAwPT09X2U/STpfZSxaKz0xfXJldHVybiB1ZX19LHtrZXk6ImFkanVzdEVsZW1lbnRzU2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9''@;'; put 'put ''PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO3RoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwodGhpcy5uZWVkRnVsbFJlbmRlcnx8eSkmJih0aGlzLmFkanVzdFJvb3RFbGVtZW50U2l6ZSgpLHRoaXMuYWRqdXN0Um9vdENoaWxkcmVuU2l6ZSgpKX19LHtrZXk6ImFkanVzdFJvb3RF''@;'; put 'put ''bGVtZW50U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLndvdC53dFRhYmxlLEM9dGhpcy5kb21CaW5kaW5ncyxaPUMucm9vdFdpbmRvdyx1ZT1CYyhDLnJvb3REb2N1bWVudCksQmU9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLnN0eWxlLE5lPXRoaXMud3RT''@;'; put 'put ''ZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKTtpZih0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09Wnx8Imhvcml6b250YWwiPT09TmUpe3ZhciBLZT10aGlzLndvdC53dFZpZXdwb3J0LmdldFdvcmtzcGFjZVdpZHRoKCk7dGhpcy53b3Qud3RPdmVybGF5cy5oYXNTY3JvbGxi''@;'; put 'put ''YXJSaWdodCYmKEtlLT11ZSksS2U9TWF0aC5taW4oS2UseS53dFJvb3RFbGVtZW50LnNjcm9sbFdpZHRoKSxCZS53aWR0aD0iIi5jb25jYXQoS2UsInB4Iil9ZWxzZSBCZS53aWR0aD0iIjt0aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnN0eWxlLndpZHRoPUJlLndpZHRoO3ZhciBwdD1EMSh0''@;'; put 'put ''aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3RoaXMud290Lnd0VGFibGUuaGFzRGVmaW5lZFNpemUoKXx8KHB0PTApLEJlLmhlaWdodD0iIi5jb25jYXQocHQsInB4Iil9fSx7a2V5OiJhZGp1c3RSb290Q2hpbGRyZW5TaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LEM9dGhpcy5jbG9uZS53''@;'; put 'put ''dFRhYmxlLmhvbGRlcixJPXRoaXMud290LnNlbGVjdGlvbnMsWj10aGlzLmZhY2FkZUdldHRlcigpLHVlPU1hdGguYWJzKG51bGwhPT0oeT1udWxsPT1JP3ZvaWQgMDpJLmdldENlbGwoKS5nZXRCb3JkZXIoWikuY29ybmVyQ2VudGVyUG9pbnRPZmZzZXQpJiZ2b2lkIDAhPT15P3k6MCk7dGhp''@;'; put 'put ''cy5jbG9uZS53dFRhYmxlLmhpZGVyLnN0eWxlLndpZHRoPXRoaXMuaGlkZXIuc3R5bGUud2lkdGgsQy5zdHlsZS53aWR0aD1DLnBhcmVudE5vZGUuc3R5bGUud2lkdGgsQy5zdHlsZS5oZWlnaHQ9IiIuY29uY2F0KHBhcnNlSW50KEMucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQsMTApK3VlLCJw''@;'; put 'put ''eCIpfX0se2tleToiYXBwbHlUb0RPTSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYoIm51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24pdGhp''@;'; put 'put ''cy5zcHJlYWRlci5zdHlsZS50b3A9IiIuY29uY2F0KHRoaXMud290Lnd0Vmlld3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSByb3dzUmVuZGVyQ2FsY3VsYXRv''@;'; put 'put ''ciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIwIn10aGlzLnNwcmVhZGVyLnN0eWxlLmJvdHRvbT0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmlz''@;'; put 'put ''UnRsKCk/InJpZ2h0IjoibGVmdCI7dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLnN0eWxlW3ldPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlzLndvdC53dFZpZXdwb3J0LmNv''@;'; put 'put ''bHVtbnNSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLndvdCxaPXRoaXMud3RTZXR0aW5ncyxfZT0oSS5jbG9uZVNvdXJjZT9JLmNsb25lU291cmNlOkkpLnd0VGFibGUuaG9sZGVy''@;'; put 'put ''LEJlPXRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKSxOZT0wO2lmKEMmJnRoaXMud290Lnd0VGFibGUuZ2V0Um93SGVpZ2h0KHkpPnRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKSYmKEM9ITEpLEMmJl9lLm9mZnNldEhlaWdodCE9PV9lLmNsaWVudEhlaWdodCYmKE5l''@;'; put 'put ''PUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksQyl7dmFyIE90PVouZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksJHQ9Wi5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKTtCZSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEJlLT1JLnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRI''@;'; put 'put ''ZWlnaHQoKS10aGlzLnN1bUNlbGxTaXplcygkdC1PdCwkdCksQmUrPTF9ZWxzZSBCZSs9dGhpcy5zdW1DZWxsU2l6ZXMoWi5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKSx5KTtyZXR1cm4gdGhpcy5zZXRTY3JvbGxQb3NpdGlvbihCZSs9TmUpfX0se2tleToiZ2V0VGFibGVQYXJlbnRPZmZz''@;'; put 'put ''ZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3c/dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQudG9wOjB9fSx7a2V5OiJnZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gRloodGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCx0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpfX0se2tleToiZ2V0T3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3csQz10aGlzLnd0U2V0''@;'; put 'put ''dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93IiksST0wO2lmKHRoaXMudHJpbW1pbmdDb250YWluZXI9PT15JiYoIUN8fCJ2ZXJ0aWNhbCIhPT1DKSl7dmFyIF9lPXRoaXMud290Lnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKS10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxIZWln''@;'; put 'put ''aHQoKTsoST1NYXRoLm1heCh0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktdGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApKT5fZSYmKEk9MCl9cmV0dXJuIEl9fSx7a2V5OiJhZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5s''@;'; put 'put ''ZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sST10aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLFo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpO1o/cGwoSSwiZW1wdHlDb2x1bW5zIik6TzAoSSwiZW1wdHlDb2x1''@;'; put 'put ''bW5zIik7dmFyIHVlPSExO2lmKCFDKXt2YXIgX2U9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEJlPXRoaXMuY2FjaGVkRml4ZWRSb3dzVG9wIT09X2UsTmU9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKTtpZigoQmV8fDA9PT1f''@;'; put 'put ''ZSkmJk5lLmxlbmd0aD4wKXt2YXIgS2U9dGwoSSwiaW5uZXJCb3JkZXJUb3AiKTt0aGlzLmNhY2hlZEZpeGVkUm93c1RvcD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIikseXx8MD09PXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKT8oTzAo''@;'; put 'put ''SSwiaW5uZXJCb3JkZXJUb3AiKSx1ZT0hS2UpOihwbChJLCJpbm5lckJvcmRlclRvcCIpLHVlPUtlKX19cmV0dXJuIHVlfX1dKSxofShYWiksbUNlPXtnZXRGaXJzdFJlbmRlcmVkUm93OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLGg9''@;'; put 'put ''dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLHY9Zy1oO3JldHVybiAwPT09Z3x8MD09PWg/LTE6djwwPzA6dn0sZ2V0Rmlyc3RWaXNpYmxlUm93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpfSxnZXRMYXN0UmVuZGVyZWRS''@;'; put 'put ''b3c6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLTF9LGdldExhc3RWaXNpYmxlUm93OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkUm93KCl9LGdldFJlbmRlcmVkUm93c0NvdW50OmZ1bmN0aW9uKCl7dmFyIGc9''@;'; put 'put ''dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpO3JldHVybiBNYXRoLm1pbih0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksZyl9LGdldFZpc2libGVSb3dzQ291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRSZW5kZXJlZFJvd3ND''@;'; put 'put ''b3VudCgpfX07U2cobUNlLCJNSVhJTl9OQU1FIiwic3RpY2t5Um93c0JvdHRvbSIse3dyaXRhYmxlOiExLGVudW1lcmFibGU6ITF9KTtjb25zdCB2Q2U9bUNlO2Z1bmN0aW9uIHZkZShkKXtyZXR1cm4odmRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rp''@;'; put 'put ''b24gQUNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVu''@;'; put 'put ''Y3Rpb24gQWRlKGQsZyl7cmV0dXJuKEFkZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFZZZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PXZkZShnKXx8''@;'; put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24galllKGQpe2lmKHZvaWQgMD09PWQpdGhy''@;'; put 'put ''b3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24ga2VlKGQpe3JldHVybihrZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVP''@;'; put 'put ''Zi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgeWRlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBIWWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; put 'put ''U3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmQWRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gTlllKGQpe3ZhciBnPWZ1bmN0aW9uIFpZZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5z''@;'; put 'put ''aGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1''@;'; put 'put ''cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWtlZShkKTtpZihnKXt2YXIgQz1rZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFZZZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2''@;'; put 'put ''LHksQyxJKXtyZXR1cm4gZnVuY3Rpb24gRlllKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsdix5LEMsSSxFZyl9cmV0dXJuIGZ1bmN0aW9uIFBZZShk''@;'; put 'put ''LGcsaCl7cmV0dXJuIGcmJkFDZShkLnByb3RvdHlwZSxnKSxoJiZBQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfShoKX0odk8pO0IyKHlkZSx2Q2UpLEIyKHlkZSxhZGUpO2NvbnN0IHpZZT15ZGU7ZnVuY3Rpb24gd2RlKGQpe3Jl''@;'; put 'put ''dHVybih3ZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5''@;'; put 'put ''bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBTZWUoZCxnLGgpe3JldHVybihTZWU9YkNlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj1bbnVsbF07Wi5wdXNoLmFwcGx5KFosQyk7dmFyIF9l''@;'; put 'put ''PW5ldyhGdW5jdGlvbi5iaW5kLmFwcGx5KHksWikpO3JldHVybiBJJiZNZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIHlDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1l''@;'; put 'put ''cmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIE1lZShkLGcpe3JldHVybihNZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5i''@;'; put 'put ''aW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBRWWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT13ZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2''@;'; put 'put ''ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHdDZShkKX1mdW5jdGlvbiB3Q2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhh''@;'; put 'put ''c24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGJDZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0''@;'; put 'put ''cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBFZWUoZCl7cmV0dXJuKEVlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0Lmdl''@;'; put 'put ''dFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBYWWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFlZZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcg''@;'; put 'put ''VHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3Qu''@;'; put 'put ''ZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZNZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBVWWUoZCl7dmFyIGc9YkNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1FZWUoZCk7aWYoZyl7dmFyIEM9RWVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9''@;'; put 'put ''UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBRWWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7dmFyIFo7cmV0dXJuIGZ1bmN0aW9uIEdZZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGZ1bmN0aW9uIEpZZShkLGcsaCl7ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9''@;'; put 'put ''KTpkW2ddPWh9KHdDZShaPWcuY2FsbCh0aGlzLHYseSxFZyxDLEkpKSwiY2FjaGVkRml4ZWRSb3dzQm90dG9tIiwtMSksWi5jYWNoZWRGaXhlZFJvd3NCb3R0b209Wi53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpLFp9cmV0dXJuIGZ1bmN0aW9uIFdZZShkLGcsaCl7''@;'; put 'put ''ZyYmeUNlKGQucHJvdG90eXBlLGcpLGgmJnlDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5''@;'; put 'put ''KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gU2VlKHpZZSxDKX19LHtrZXk6InNob3VsZEJlUmVuZGVyZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5Iil9fSx7a2V5OiJy''@;'; put 'put ''ZXNldEZpeGVkUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMubmVlZEZ1bGxSZW5kZXJ8fCF0aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJldHVybiExO3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xk''@;'; put 'put ''ZXIucGFyZW50Tm9kZTtDLnN0eWxlLnRvcD0iIjt2YXIgST0wLFo9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpO3RoaXMudHJpbW1pbmdDb250YWluZXIhPT15fHxaJiYidmVydGljYWwiPT09Wj8oST10aGlzLmdldFNjcm9sbFBvc2l0aW9uKCksdGhpcy5y''@;'; put 'put ''ZXBvc2l0aW9uT3ZlcmxheSgpKTooST10aGlzLmdldE92ZXJsYXlPZmZzZXQoKSxDLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoSSwicHgiKSk7dmFyIHVlPXRoaXMuYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uKEkpO3JldHVybiB0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpLHVlfX0se2tl''@;'; put 'put ''eToicmVwb3NpdGlvbk92ZXJsYXkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy53b3QsQz15Lnd0VGFibGUsST15Lnd0Vmlld3BvcnQsWj10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudCx1ZT10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsX2U9MDtJLmhhc1Zl''@;'; put 'put ''cnRpY2FsU2Nyb2xsKCl8fChfZSs9SS5nZXRXb3Jrc3BhY2VIZWlnaHQoKS1DLmdldFRvdGFsSGVpZ2h0KCkpLEkuaGFzVmVydGljYWxTY3JvbGwoKSYmSS5oYXNIb3Jpem9udGFsU2Nyb2xsKCkmJihfZSs9QmMoWikpLHVlLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoX2UsInB4Iil9fSx7a2V5''@;'; put 'put ''OiJzZXRTY3JvbGxQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEk9ITE7cmV0dXJuIHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQ9PT1DPyhDLnNjcm9sbFRvKHhTKEMpLHkpLEk9ITApOnRoaXMubWFpblRhYmxlU2Ny''@;'; put 'put ''b2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wIT09eSYmKHRoaXMubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wPXksST0hMCksSX19LHtrZXk6Im9uU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbEhvcml6b250YWxs''@;'; put 'put ''eSIpfX0se2tleToic3VtQ2VsbFNpemVzIix2YWx1ZTpmdW5jdGlvbih5LEMpe2Zvcih2YXIgST10aGlzLndvdCxaPUkud3RUYWJsZSxfZT1JLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZGVmYXVsdFJvd0hlaWdodCIpLEJlPXksTmU9MDtCZTxDOyl7dmFyIEtlPVouZ2V0Um93SGVpZ2h0KEJl''@;'; put 'put ''KTtOZSs9dm9pZCAwPT09S2U/X2U6S2UsQmUrPTF9cmV0dXJuIE5lfX0se2tleToiYWRqdXN0RWxlbWVudHNTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07dGhpcy51cGRhdGVUcmltbWlu''@;'; put 'put ''Z0NvbnRhaW5lcigpLCh0aGlzLm5lZWRGdWxsUmVuZGVyfHx5KSYmKHRoaXMuYWRqdXN0Um9vdEVsZW1lbnRTaXplKCksdGhpcy5hZGp1c3RSb290Q2hpbGRyZW5TaXplKCkpfX0se2tleToiYWRqdXN0Um9vdEVsZW1lbnRTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMud290LEM9''@;'; put 'put ''eS53dFRhYmxlLEk9eS53dFZpZXdwb3J0LFo9dGhpcy5kb21CaW5kaW5ncyxfZT1aLnJvb3RXaW5kb3csQmU9QmMoWi5yb290RG9jdW1lbnQpLEtlPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxwdD10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVu''@;'; put 'put ''dE92ZXJmbG93Iik7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PV9lfHwiaG9yaXpvbnRhbCI9PT1wdCl7dmFyIE90PUkuZ2V0V29ya3NwYWNlV2lkdGgoKTt0aGlzLndvdC53dE92ZXJsYXlzLmhhc1Njcm9sbGJhclJpZ2h0JiYoT3QtPUJlKSxPdD1NYXRoLm1pbihPdCxDLnd0Um9vdEVs''@;'; put 'put ''ZW1lbnQuc2Nyb2xsV2lkdGgpLEtlLndpZHRoPSIiLmNvbmNhdChPdCwicHgiKX1lbHNlIEtlLndpZHRoPSIiO3RoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIuc3R5bGUud2lkdGg9S2Uud2lkdGg7dmFyICR0PUQxKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSk7dGhpcy53b3Qud3RUYWJsZS5o''@;'; put 'put ''YXNEZWZpbmVkU2l6ZSgpfHwoJHQ9MCksS2UuaGVpZ2h0PSIiLmNvbmNhdCgkdCwicHgiKX19LHtrZXk6ImFkanVzdFJvb3RDaGlsZHJlblNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlcjt0aGlzLmNsb25lLnd0VGFibGUuaGlkZXIuc3R5bGUu''@;'; put 'put ''d2lkdGg9dGhpcy5oaWRlci5zdHlsZS53aWR0aCx5LnN0eWxlLndpZHRoPXkucGFyZW50Tm9kZS5zdHlsZS53aWR0aCx5LnN0eWxlLmhlaWdodD15LnBhcmVudE5vZGUuc3R5bGUuaGVpZ2h0fX0se2tleToiYXBwbHlUb0RPTSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGlu''@;'; put 'put ''Z3MuZ2V0U2V0dGluZygidG90YWxSb3dzIik7aWYoIm51bWJlciI9PXR5cGVvZiB0aGlzLndvdC53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24pdGhpcy5zcHJlYWRlci5zdHlsZS50b3A9IiIuY29uY2F0KHRoaXMud290Lnd0Vmlld3BvcnQucm93c1JlbmRl''@;'; put 'put ''ckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSByb3dzUmVuZGVyQ2FsY3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGUudG9wPSIwIn10aGlzLnNwcmVhZGVyLnN0eWxlLmJvdHRvbT0i''@;'; put 'put ''Iix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5jT3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmlzUnRsKCk/InJpZ2h0IjoibGVmdCI7dGhpcy5jbG9uZS53dFRhYmxlLnNwcmVhZGVyLnN0eWxlW3ldPSJu''@;'; put 'put ''dW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlzLndvdC53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxU''@;'; put 'put ''byIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCksdWU9KHRoaXMud290LmNsb25lU291cmNlP3RoaXMud290LmNsb25lU291cmNlOnRoaXMud290KS53dFRhYmxlLmhvbGRlcixfZT0wO0MmJnVlLm9mZnNldEhlaWdodCE9PXVlLmNsaWVudEhl''@;'; put 'put ''aWdodCYmKF9lPUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksQz8oSSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEktPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRIZWlnaHQoKSxJKz0xKTpJKz10aGlzLnN1bUNlbGxTaXplcyh0aGlzLnd0U2V0dGluZ3MuZ2V0''@;'; put 'put ''U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIikseSksdGhpcy5zZXRTY3JvbGxQb3NpdGlvbihJKz1fZSl9fSx7a2V5OiJnZXRUYWJsZVBhcmVudE9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudD09PXRoaXMuZG9tQmluZGluZ3Mu''@;'; put 'put ''cm9vdFdpbmRvdz90aGlzLndvdC53dFRhYmxlLmhvbGRlck9mZnNldC50b3A6MH19LHtrZXk6ImdldFNjcm9sbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBGWih0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LHRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyl9fSx7''@;'; put 'put ''a2V5OiJnZXRPdmVybGF5T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSxJPTA7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXkmJighQ3x8InZl''@;'; put 'put ''cnRpY2FsIiE9PUMpKXt2YXIgWj10aGlzLndvdC53dFRhYmxlLmdldFRvdGFsSGVpZ2h0KCksX2U9Wi10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxIZWlnaHQoKSxCZT10aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OyhJPU1hdGgu''@;'; put 'put ''bWF4KHRoaXMuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKS10aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktQmUrWiwwKSk+X2UmJihJPTApfXJldHVybiBJfX0se2tleToiYWRqdXN0SGVhZGVyQm9yZGVyc1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLnd0U2V0dGluZ3MuZ2V0''@;'; put 'put ''U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksST10aGlzLmNhY2hlZEZpeGVkUm93c0JvdHRvbSE9PUMsWj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLHVlPSExO2lmKChJfHwwPT09QykmJloubGVuZ3RoPjApe3ZhciBfZT10aGlzLndvdC53dFRhYmxlLmhv''@;'; put 'put ''bGRlci5wYXJlbnROb2RlLEJlPXRsKF9lLCJpbm5lckJvcmRlckJvdHRvbSIpO3RoaXMuY2FjaGVkRml4ZWRSb3dzQm90dG9tPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKSx5fHwwPT09dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIp''@;'; put 'put ''PyhPMChfZSwiaW5uZXJCb3JkZXJCb3R0b20iKSx1ZT0hQmUpOihwbChfZSwiaW5uZXJCb3JkZXJCb3R0b20iKSx1ZT1CZSl9cmV0dXJuIHVlfX1dKSxofShYWiksX0NlPXtnZXRGaXJzdFJlbmRlcmVkUm93OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnN0YXJ0Um93''@;'; put 'put ''UmVuZGVyZWQ7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldEZpcnN0VmlzaWJsZVJvdzpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZGF0YUFjY2Vzc09iamVjdC5zdGFydFJvd1Zpc2libGU7cmV0dXJuIG51bGw9PT1nPy0xOmd9LGdldExhc3RSZW5kZXJlZFJvdzpmdW5jdGlvbigpe3ZhciBnPXRo''@;'; put 'put ''aXMuZGF0YUFjY2Vzc09iamVjdC5lbmRSb3dSZW5kZXJlZDtyZXR1cm4gbnVsbD09PWc/LTE6Z30sZ2V0TGFzdFZpc2libGVSb3c6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmRhdGFBY2Nlc3NPYmplY3QuZW5kUm93VmlzaWJsZTtyZXR1cm4gbnVsbD09PWc/LTE6Z30sZ2V0UmVuZGVyZWRSb3dz''@;'; put 'put ''Q291bnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kYXRhQWNjZXNzT2JqZWN0LmNvdW50Um93c1JlbmRlcmVkfSxnZXRWaXNpYmxlUm93c0NvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YUFjY2Vzc09iamVjdC5jb3VudFJvd3NWaXNpYmxlfX07U2coX0NlLCJNSVhJTl9OQU1FIiwi''@;'; put 'put ''Y2FsY3VsYXRlZFJvd3MiLHt3cml0YWJsZTohMSxlbnVtZXJhYmxlOiExfSk7Y29uc3QgQ0NlPV9DZTt2YXIga0NlPXtnZXRGaXJzdFJlbmRlcmVkQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxDb2x1bW5zIik/LTE6MH0sZ2V0''@;'; put 'put ''Rmlyc3RWaXNpYmxlQ29sdW1uOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RSZW5kZXJlZENvbHVtbigpfSxnZXRMYXN0UmVuZGVyZWRDb2x1bW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLTF9LGdldExhc3RWaXNpYmxlQ29sdW1uOmZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9LGdldFJlbmRlcmVkQ29sdW1uc0NvdW50OmZ1bmN0aW9uKCl7dmFyIGc9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpO3JldHVybiBNYXRoLm1pbih0aGlzLnd0U2V0dGluZ3MuZ2V0''@;'; put 'put ''U2V0dGluZygiZml4ZWRDb2x1bW5zU3RhcnQiKSxnKX0sZ2V0VmlzaWJsZUNvbHVtbnNDb3VudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCl9fTtTZyhrQ2UsIk1JWElOX05BTUUiLCJzdGlja3lDb2x1bW5zU3RhcnQiLHt3cml0YWJsZTohMSxlbnVt''@;'; put 'put ''ZXJhYmxlOiExfSk7Y29uc3QgYmRlPWtDZTtmdW5jdGlvbiBfZGUoZCl7cmV0dXJuKF9kZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYi''@;'; put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFNDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12''@;'; put 'put ''LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIENkZShkLGcpe3JldHVybihDZGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5''@;'; put 'put ''cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiByVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1fZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; put 'put ''IkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIGlVZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFz''@;'; put 'put ''bid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIHhlZShkKXtyZXR1cm4oeGVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgp''@;'; put 'put ''fSkoZCl9dmFyIGtkZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gdFVlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9''@;'; put 'put ''T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkNkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9u''@;'; put 'put ''IG5VZShkKXt2YXIgZz1mdW5jdGlvbiBvVWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29s''@;'; put 'put ''ZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj14ZWUoZCk7aWYoZyl7dmFyIEM9eGVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9''@;'; put 'put ''UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiByVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7cmV0dXJuIGZ1bmN0aW9uIGVVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBU''@;'; put 'put ''eXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYseSxDLEksRFMpfXJldHVybiBmdW5jdGlvbiBxWWUoZCxnLGgpe3JldHVybiBnJiZTQ2UoZC5wcm90b3R5cGUsZyksaCYmU0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH0oaCl9KHZPKTtCMihrZGUsQ0NlKSxCMihrZGUsYmRlKTtjb25zdCBhVWU9a2RlO2Z1bmN0aW9uIFNkZShkKXtyZXR1cm4oU2RlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJh''@;'; put 'put ''dG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gVGVlKGQs''@;'; put 'put ''ZyxoKXtyZXR1cm4oVGVlPUVDZSgpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbih5LEMsSSl7dmFyIFo9W251bGxdO1oucHVzaC5hcHBseShaLEMpO3ZhciBfZT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5LFopKTtyZXR1cm4gSSYmSWVlKF9lLEkucHJvdG90eXBlKSxfZX0p''@;'; put 'put ''LmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBNQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBJZWUoZCxnKXtyZXR1cm4oSWVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gZlVlKGQs''@;'; put 'put ''Zyl7aWYoZyYmKCJvYmplY3QiPT09U2RlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5j''@;'; put 'put ''dGlvbiBoVWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBFQ2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJl''@;'; put 'put ''ZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixb''@;'; put 'put ''XSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rpb24gRGVlKGQpe3JldHVybihEZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90''@;'; put 'put ''eXBlT2YoaCl9KShkKX12YXIgZFVlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiB1VWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnBy''@;'; put 'put ''b3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSWVlKGQsZyl9KGgsZCk7dmFyIGc9''@;'; put 'put ''ZnVuY3Rpb24gY1VlKGQpe3ZhciBnPUVDZSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9RGVlKGQpO2lmKGcpe3ZhciBDPURlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1''@;'; put 'put ''cm4gZlVlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBsVWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyx2''@;'; put 'put ''LHksRFMsQyxJKX1yZXR1cm4gZnVuY3Rpb24gc1VlKGQsZyxoKXtnJiZNQ2UoZC5wcm90b3R5cGUsZyksaCYmTUNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zv''@;'; put 'put ''cih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBUZWUoYVVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmco''@;'; put 'put ''InNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe2lmKCF0aGlzLm5lZWRGdWxsUmVuZGVyfHwhdGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4hMTt2YXIgQz10aGlzLmRvbUJp''@;'; put 'put ''bmRpbmdzLnJvb3RXaW5kb3csST10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUsWj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93IiksdWU9MDt0aGlzLnRyaW1taW5nQ29udGFpbmVyIT09Q3x8WiYmImhvcml6b250YWwiPT09Wj8odWU9dGhp''@;'; put 'put ''cy5nZXRTY3JvbGxQb3NpdGlvbigpLGpaKEkpKToodWU9dGhpcy5nZXRPdmVybGF5T2Zmc2V0KCkqKHRoaXMuaXNSdGwoKT8tMToxKSxyZWUoSSwiIi5jb25jYXQodWUsInB4IiksIjBweCIpKTt2YXIgX2U9dGhpcy5hZGp1c3RIZWFkZXJCb3JkZXJzUG9zaXRpb24odWUpO3JldHVybiB0aGlz''@;'; put 'put ''LmFkanVzdEVsZW1lbnRzU2l6ZSgpLF9lfX0se2tleToic2V0U2Nyb2xsUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxJPSExO3JldHVybiB0aGlzLmlzUnRsKCkmJih5PS15KSx0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVt''@;'; put 'put ''ZW50PT09QyYmQy5zY3JvbGxYIT09eT8oQy5zY3JvbGxUbyh5LGZPKEMpKSxJPSEwKTp0aGlzLm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQhPT15JiYodGhpcy5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0PXksST0hMCksSX19LHtrZXk6Im9uU2Ny''@;'; put 'put ''b2xsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvblNjcm9sbFZlcnRpY2FsbHkiKX19LHtrZXk6InN1bUNlbGxTaXplcyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImRlZmF1bHRDb2x1bW5X''@;'; put 'put ''aWR0aCIpLFo9eSx1ZT0wO1o8QzspdWUrPXRoaXMud290Lnd0VGFibGUuZ2V0U3RyZXRjaGVkQ29sdW1uV2lkdGgoWil8fEksWis9MTtyZXR1cm4gdWV9fSx7a2V5OiJhZGp1c3RFbGVtZW50c1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAh''@;'; put 'put ''PT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0aGlzLnVwZGF0ZVRyaW1taW5nQ29udGFpbmVyKCksKHRoaXMubmVlZEZ1bGxSZW5kZXJ8fHkpJiYodGhpcy5hZGp1c3RSb290RWxlbWVudFNpemUoKSx0aGlzLmFkanVzdFJvb3RDaGlsZHJlblNpemUoKSl9fSx7a2V5OiJhZGp1c3RSb290''@;'; put 'put ''RWxlbWVudFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy53b3Qud3RUYWJsZSxDPXRoaXMuZG9tQmluZGluZ3MsWj1DLnJvb3RXaW5kb3csdWU9QmMoQy5yb290RG9jdW1lbnQpLEJlPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZS5zdHlsZSxOZT10aGlzLnd0''@;'; put 'put ''U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iik7aWYodGhpcy50cmltbWluZ0NvbnRhaW5lciE9PVp8fCJ2ZXJ0aWNhbCI9PT1OZSl7dmFyIEtlPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlSGVpZ2h0KCk7dGhpcy53b3Qud3RPdmVybGF5cy5oYXNTY3JvbGxi''@;'; put 'put ''YXJCb3R0b20mJihLZS09dWUpLEtlPU1hdGgubWluKEtlLHkud3RSb290RWxlbWVudC5zY3JvbGxIZWlnaHQpLEJlLmhlaWdodD0iIi5jb25jYXQoS2UsInB4Iil9ZWxzZSBCZS5oZWlnaHQ9IiI7dGhpcy5jbG9uZS53dFRhYmxlLmhvbGRlci5zdHlsZS5oZWlnaHQ9QmUuaGVpZ2h0O3ZhciBw''@;'; put 'put ''dD1FMih0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO0JlLndpZHRoPSIiLmNvbmNhdChwdCwicHgiKX19LHtrZXk6ImFkanVzdFJvb3RDaGlsZHJlblNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksQz10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLEk9dGhpcy53b3Quc2VsZWN0aW9ucyxa''@;'; put 'put ''PXRoaXMuZmFjYWRlR2V0dGVyKCksdWU9TWF0aC5hYnMobnVsbCE9PSh5PW51bGw9PUk/dm9pZCAwOkkuZ2V0Q2VsbCgpLmdldEJvcmRlcihaKS5jb3JuZXJDZW50ZXJQb2ludE9mZnNldCkmJnZvaWQgMCE9PXk/eTowKTt0aGlzLmNsb25lLnd0VGFibGUuaGlkZXIuc3R5bGUuaGVpZ2h0PXRo''@;'; put 'put ''aXMuaGlkZXIuc3R5bGUuaGVpZ2h0LEMuc3R5bGUuaGVpZ2h0PUMucGFyZW50Tm9kZS5zdHlsZS5oZWlnaHQsQy5zdHlsZS53aWR0aD0iIi5jb25jYXQocGFyc2VJbnQoQy5wYXJlbnROb2RlLnN0eWxlLndpZHRoLDEwKSt1ZSwicHgiKX19LHtrZXk6ImFwcGx5VG9ET00iLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIHk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLEM9dGhpcy5pc1J0bCgpPyJyaWdodCI6ImxlZnQiO2lmKCJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uKXRo''@;'; put 'put ''aXMuc3ByZWFkZXIuc3R5bGVbQ109IiIuY29uY2F0KHRoaXMud290Lnd0Vmlld3BvcnQuY29sdW1uc1JlbmRlckNhbGN1bGF0b3Iuc3RhcnRQb3NpdGlvbiwicHgiKTtlbHNle2lmKDAhPT15KXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IHZhbHVlIG9mIHRoZSBjb2x1bW5zUmVuZGVyQ2Fs''@;'; put 'put ''Y3VsYXRvciIpO3RoaXMuc3ByZWFkZXIuc3R5bGVbQ109IjAifXRoaXMuaXNSdGwoKT90aGlzLnNwcmVhZGVyLnN0eWxlLmxlZnQ9IiI6dGhpcy5zcHJlYWRlci5zdHlsZS5yaWdodD0iIix0aGlzLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLnN5bmNPdmVybGF5T2Zmc2V0KCl9fSx7a2V5OiJzeW5j''@;'; put 'put ''T3ZlcmxheU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsb25lLnd0VGFibGUuc3ByZWFkZXIuc3R5bGUudG9wPSJudW1iZXIiPT10eXBlb2YgdGhpcy53b3Qud3RWaWV3cG9ydC5yb3dzUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uPyIiLmNvbmNhdCh0aGlzLndvdC53dFZp''@;'; put 'put ''ZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0UG9zaXRpb24sInB4Iik6IiJ9fSx7a2V5OiJzY3JvbGxUbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCksdWU9KHRoaXMud290LmNsb25lU291cmNlP3RoaXMud290LmNsb25lU291''@;'; put 'put ''cmNlOnRoaXMud290KS53dFRhYmxlLmhvbGRlcixfZT0wO3JldHVybiBDJiZ0aGlzLndvdC53dFRhYmxlLmdldENvbHVtbldpZHRoKHkpPnRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRXaWR0aCgpJiYoQz0hMSksQyYmdWUub2Zmc2V0V2lkdGghPT11ZS5jbGllbnRXaWR0aCYmKF9l''@;'; put 'put ''PUJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSksQz8oSSs9dGhpcy5zdW1DZWxsU2l6ZXMoMCx5KzEpLEktPXRoaXMud290Lnd0Vmlld3BvcnQuZ2V0Vmlld3BvcnRXaWR0aCgpKTpJKz10aGlzLnN1bUNlbGxTaXplcyh0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRD''@;'; put 'put ''b2x1bW5zU3RhcnQiKSx5KSx0aGlzLnNldFNjcm9sbFBvc2l0aW9uKEkrPV9lKX19LHtrZXk6ImdldFRhYmxlUGFyZW50T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBDPTA7cmV0dXJuIXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJwcmV2ZW50T3ZlcmZsb3ciKSYmdGhpcy50cmlt''@;'; put 'put ''bWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyYmKEM9dGhpcy53b3Qud3RUYWJsZS5ob2xkZXJPZmZzZXQubGVmdCksQ319LHtrZXk6ImdldFNjcm9sbFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNYXRoLmFicyh0ZWUodGhpcy5tYWluVGFibGVT''@;'; put 'put ''Y3JvbGxhYmxlRWxlbWVudCx0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3cpKX19LHtrZXk6ImdldE92ZXJsYXlPZmZzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRPdmVy''@;'; put 'put ''ZmxvdyIpLEk9MDtyZXR1cm4gdGhpcy50cmltbWluZ0NvbnRhaW5lciE9PXl8fEMmJiJob3Jpem9udGFsIj09PUN8fChJPXRoaXMuaXNSdGwoKT9NYXRoLmFicyhNYXRoLm1pbih0aGlzLmdldFRhYmxlUGFyZW50T2Zmc2V0KCktdGhpcy5nZXRTY3JvbGxQb3NpdGlvbigpLDApKTpNYXRoLm1h''@;'; put 'put ''eCh0aGlzLmdldFNjcm9sbFBvc2l0aW9uKCktdGhpcy5nZXRUYWJsZVBhcmVudE9mZnNldCgpLDApKT50aGlzLndvdC53dFRhYmxlLmdldFRvdGFsV2lkdGgoKS10aGlzLmNsb25lLnd0VGFibGUuZ2V0VG90YWxXaWR0aCgpJiYoST0wKSxJfX0se2tleToiYWRqdXN0SGVhZGVyQm9yZGVyc1Bv''@;'; put 'put ''c2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLndvdC53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcnMiKSxaPXRoaXMud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpO3RoaXMu''@;'; put 'put ''d3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKT9wbChDLCJlbXB0eVJvd3MiKTpPMChDLCJlbXB0eVJvd3MiKTt2YXIgX2U9ITE7aWYoWiYmIUkubGVuZ3RoKU8wKEMsImlubmVyQm9yZGVyTGVmdCBpbm5lckJvcmRlcklubGluZVN0YXJ0Iik7ZWxzZSBpZighWiYmSS5sZW5ndGgp''@;'; put 'put ''e3ZhciBCZT10bChDLCJpbm5lckJvcmRlcklubGluZVN0YXJ0Iik7eT8oTzAoQywiaW5uZXJCb3JkZXJMZWZ0IGlubmVyQm9yZGVySW5saW5lU3RhcnQiKSxfZT0hQmUpOihwbChDLCJpbm5lckJvcmRlckxlZnQgaW5uZXJCb3JkZXJJbmxpbmVTdGFydCIpLF9lPUJlKX1yZXR1cm4gX2V9fV0p''@;'; put 'put ''LGh9KFhaKTtmdW5jdGlvbiBNZGUoZCl7cmV0dXJuKE1kZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; put 'put ''U3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHhDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYu''@;'; put 'put ''Y29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEVkZShkLGcpe3JldHVybihFZGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rp''@;'; put 'put ''b24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBBVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1NZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0''@;'; put 'put ''b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIHlVZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7''@;'; put 'put ''cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIExlZShkKXtyZXR1cm4oTGVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHhkZT1mdW5j''@;'; put 'put ''dGlvbihkKXshZnVuY3Rpb24gbVVlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZn''@;'; put 'put ''LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkVkZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHZVZShkKXt2YXIgZz1mdW5j''@;'; put 'put ''dGlvbiB3VWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1''@;'; put 'put ''ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1MZWUoZCk7aWYoZyl7dmFyIEM9TGVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qo''@;'; put 'put ''dixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBBVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSl7cmV0dXJuIGZ1bmN0aW9uIGdVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBj''@;'; put 'put ''YWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLGcuY2FsbCh0aGlzLHYseSxDLEksTFMpfXJldHVybiBmdW5jdGlvbiBwVWUoZCxnLGgpe3JldHVybiBnJiZ4Q2UoZC5wcm90b3R5cGUsZyksaCYmeENlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIs''@;'; put 'put ''e3dyaXRhYmxlOiExfSksZH0oaCl9KHZPKTtCMih4ZGUscV9lKSxCMih4ZGUsYmRlKTtjb25zdCBiVWU9eGRlO2Z1bmN0aW9uIFRkZShkKXtyZXR1cm4oVGRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3Jl''@;'; put 'put ''dHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gT2VlKGQsZyxoKXtyZXR1cm4oT2VlPUlD''@;'; put 'put ''ZSgpP1JlZmxlY3QuY29uc3RydWN0LmJpbmQoKTpmdW5jdGlvbih5LEMsSSl7dmFyIFo9W251bGxdO1oucHVzaC5hcHBseShaLEMpO3ZhciBfZT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5LFopKTtyZXR1cm4gSSYmUmVlKF9lLEkucHJvdG90eXBlKSxfZX0pLmFwcGx5KG51bGwsYXJndW1l''@;'; put 'put ''bnRzKX1mdW5jdGlvbiBUQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYu''@;'; put 'put ''a2V5LHYpfX1mdW5jdGlvbiBSZWUoZCxnKXtyZXR1cm4oUmVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gTVVlKGQsZyl7aWYoZyYmKCJvYmplY3Qi''@;'; put 'put ''PT09VGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBJZGUoZCl9ZnVuY3Rpb24gSWRlKGQp''@;'; put 'put ''e2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBJQ2UoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0''@;'; put 'put ''LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30p''@;'; put 'put ''KSwhMH1jYXRjaChkKXtyZXR1cm4hMX19ZnVuY3Rpb24gQmVlKGQpe3JldHVybihCZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1m''@;'; put 'put ''dW5jdGlvbiBEQ2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBFVWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGtVZShkLGcpe2lmKCJm''@;'; put 'put ''dW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpk''@;'; put 'put ''LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZSZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBTVWUoZCl7dmFyIGc9SUNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1CZWUo''@;'; put 'put ''ZCk7aWYoZyl7dmFyIEM9QmVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBNVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSxaLHVlKXt2YXIgX2U7cmV0dXJu''@;'; put 'put ''IGZ1bmN0aW9uIF9VZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLERDZShJZGUoX2U9Zy5jYWxsKHRoaXMsdix5LExTLEMsSSkpLCJ0b3BPdmVybGF5Iix2b2lkIDApLERD''@;'; put 'put ''ZShJZGUoX2UpLCJpbmxpbmVTdGFydE92ZXJsYXkiLHZvaWQgMCksX2UudG9wT3ZlcmxheT1aLF9lLmlubGluZVN0YXJ0T3ZlcmxheT11ZSxfZX1yZXR1cm4gZnVuY3Rpb24gQ1VlKGQsZyxoKXtnJiZUQ2UoZC5wcm90b3R5cGUsZyksaCYmVENlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; put 'put ''KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBPZWUoYlVlLEMpfX0se2tl''@;'; put 'put ''eToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlclRvcE92ZXJsYXkiKSYmdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfX0se2tl''@;'; put 'put ''eToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwhdGhpcy53b3Qud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4hMTt2YXIgeT10aGlzLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGU7aWYo''@;'; put 'put ''dGhpcy50cmltbWluZ0NvbnRhaW5lcj09PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyl7dmFyIEM9dGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpKih0aGlzLmlzUnRsKCk/LTE6MSksST10aGlzLnRvcE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpO3JlZSh5''@;'; put 'put ''LCIiLmNvbmNhdChDLCJweCIpLCIiLmNvbmNhdChJLCJweCIpKX1lbHNlIGpaKHkpO3ZhciBaPUQxKHRoaXMuY2xvbmUud3RUYWJsZS5UQUJMRSksdWU9RTIodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKTtyZXR1cm4gdGhpcy53b3Qud3RUYWJsZS5oYXNEZWZpbmVkU2l6ZSgpfHwoWj0wKSx5''@;'; put 'put ''LnN0eWxlLmhlaWdodD0iIi5jb25jYXQoWiwicHgiKSx5LnN0eWxlLndpZHRoPSIiLmNvbmNhdCh1ZSwicHgiKSwhMX19XSksaH0oWFopO2Z1bmN0aW9uIERkZShkKXtyZXR1cm4oRGRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9y''@;'; put 'put ''P2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gTENlKGQsZyl7''@;'; put 'put ''Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gTGRlKGQs''@;'; put 'put ''Zyl7cmV0dXJuKExkZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIExVZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PURkZShnKXx8ImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gT1VlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVy''@;'; put 'put ''ZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gUGVlKGQpe3JldHVybihQZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVu''@;'; put 'put ''Y3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgT2RlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBJVWUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVz''@;'; put 'put ''c2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3Rv''@;'; put 'put ''dHlwZSIse3dyaXRhYmxlOiExfSksZyYmTGRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gRFVlKGQpe3ZhciBnPWZ1bmN0aW9uIFJVZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiEx''@;'; put 'put ''O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgeSx2PVBlZShkKTtpZihnKXt2YXIgQz1QZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIExVZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHksQyxJKXtyZXR1''@;'; put 'put ''cm4gZnVuY3Rpb24gVFVlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsdix5LEMsSSx4dyl9cmV0dXJuIGZ1bmN0aW9uIHhVZShkLGcsaCl7cmV0dXJu''@;'; put 'put ''IGcmJkxDZShkLnByb3RvdHlwZSxnKSxoJiZMQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfShoKX0odk8pO0IyKE9kZSx2Q2UpLEIyKE9kZSxiZGUpO2NvbnN0IEJVZT1PZGU7ZnVuY3Rpb24gUmRlKGQpe3JldHVybihSZGU9ImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5''@;'; put 'put ''bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBGZWUoZCxnLGgpe3JldHVybihGZWU9UkNlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj1bbnVsbF07Wi5wdXNoLmFwcGx5KFosQyk7dmFyIF9lPW5ldyhGdW5jdGlv''@;'; put 'put ''bi5iaW5kLmFwcGx5KHksWikpO3JldHVybiBJJiZIZWUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIE9DZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYu''@;'; put 'put ''Y29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEhlZShkLGcpe3JldHVybihIZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rp''@;'; put 'put ''b24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBWVWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1SZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0''@;'; put 'put ''b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIGpVZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7''@;'; put 'put ''cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFJDZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xl''@;'; put 'put ''YW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBOZWUoZCl7cmV0dXJuKE5lZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJp''@;'; put 'put ''bmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBaVWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEhVZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBl''@;'; put 'put ''ciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; put 'put ''ZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZIZWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBOVWUoZCl7dmFyIGc9UkNlKCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1OZWUoZCk7aWYoZyl7dmFyIEM9TmVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1''@;'; put 'put ''Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBWVWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5LEMsSSxaLHVlKXt2YXIgX2U7cmV0dXJuIGZ1bmN0aW9uIFBVZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBl''@;'; put 'put ''RXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLChfZT1nLmNhbGwodGhpcyx2LHkseHcsQyxJKSkuYm90dG9tT3ZlcmxheT1aLF9lLmlubGluZVN0YXJ0T3ZlcmxheT11ZSxfZX1yZXR1cm4gZnVuY3Rpb24gRlVlKGQsZyxoKXtnJiZPQ2UoZC5wcm90''@;'; put 'put ''b3R5cGUsZyksaCYmT0NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImNyZWF0ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsr''@;'; put 'put ''KUNbSV09YXJndW1lbnRzW0ldO3JldHVybiBGZWUoQlVlLEMpfX0se2tleToic2hvdWxkQmVSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInNob3VsZFJlbmRlckJvdHRvbU92ZXJsYXkiKSYmdGhpcy53dFNldHRpbmdzLmdldFNl''@;'; put 'put ''dHRpbmcoInNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheSIpfX0se2tleToicmVzZXRGaXhlZFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMud290O2lmKHRoaXMudXBkYXRlVHJpbW1pbmdDb250YWluZXIoKSwheS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKXJl''@;'; put 'put ''dHVybiExO3ZhciBDPXRoaXMuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZTtpZihDLnN0eWxlLnRvcD0iIix0aGlzLnRyaW1taW5nQ29udGFpbmVyPT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93KXt2YXIgST10aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRPdmVybGF5T2Zm''@;'; put 'put ''c2V0KCksWj10aGlzLmJvdHRvbU92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpO0Muc3R5bGVbdGhpcy5pc1J0bCgpPyJyaWdodCI6ImxlZnQiXT0iIi5jb25jYXQoSSwicHgiKSxDLnN0eWxlLmJvdHRvbT0iIi5jb25jYXQoWiwicHgiKX1lbHNlIGpaKEMpLHRoaXMucmVwb3NpdGlvbk92ZXJs''@;'; put 'put ''YXkoKTt2YXIgdWU9RDEodGhpcy5jbG9uZS53dFRhYmxlLlRBQkxFKSxfZT1FMih0aGlzLmNsb25lLnd0VGFibGUuVEFCTEUpO3JldHVybiB0aGlzLndvdC53dFRhYmxlLmhhc0RlZmluZWRTaXplKCl8fCh1ZT0wKSxDLnN0eWxlLmhlaWdodD0iIi5jb25jYXQodWUsInB4IiksQy5zdHlsZS53''@;'; put 'put ''aWR0aD0iIi5jb25jYXQoX2UsInB4IiksITF9fSx7a2V5OiJyZXBvc2l0aW9uT3ZlcmxheSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLndvdCxDPXkud3RUYWJsZSxJPXkud3RWaWV3cG9ydCxaPXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LHVlPXRoaXMuY2xvbmUud3RUYWJs''@;'; put 'put ''ZS5ob2xkZXIucGFyZW50Tm9kZSxfZT0wO0kuaGFzVmVydGljYWxTY3JvbGwoKXx8KF9lKz1JLmdldFdvcmtzcGFjZUhlaWdodCgpLUMuZ2V0VG90YWxIZWlnaHQoKSksSS5oYXNWZXJ0aWNhbFNjcm9sbCgpJiZJLmhhc0hvcml6b250YWxTY3JvbGwoKSYmKF9lKz1CYyhaKSksdWUuc3R5bGUu''@;'; put 'put ''Ym90dG9tPSIiLmNvbmNhdChfZSwicHgiKX19XSksaH0oWFopO2Z1bmN0aW9uIFR3KGQsZyxoKXtyZXR1cm4oVHc9elVlKCk/UmVmbGVjdC5jb25zdHJ1Y3QuYmluZCgpOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj1bbnVsbF07Wi5wdXNoLmFwcGx5KFosQyk7dmFyIF9lPW5ldyhGdW5jdGlvbi5i''@;'; put 'put ''aW5kLmFwcGx5KHksWikpO3JldHVybiBJJiZCZGUoX2UsSS5wcm90b3R5cGUpLF9lfSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIHpVZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJl''@;'; put 'put ''dHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX1mdW5jdGlvbiBCZGUo''@;'; put 'put ''ZCxnKXtyZXR1cm4oQmRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gQkNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdb''@;'; put 'put ''aF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSXcoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBZVWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCx2LHksQyxJKXsoZnVuY3Rpb24gR1VlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5''@;'; put 'put ''cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLEl3KHRoaXMsIndvdCIsbnVsbCksSXcodGhpcywidG9wT3ZlcmxheSIsbnVsbCksSXcodGhpcywiYm90dG9tT3ZlcmxheSIsbnVsbCksSXcodGhpcywiaW5saW5lU3RhcnRPdmVybGF5IixudWxs''@;'; put 'put ''KSxJdyh0aGlzLCJ0b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkiLG51bGwpLEl3KHRoaXMsImJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSIsbnVsbCksSXcodGhpcywiYnJvd3NlckxpbmVIZWlnaHQiLHZvaWQgMCksSXcodGhpcywid3RTZXR0aW5ncyIsbnVsbCksdGhpcy53b3Q9''@;'; put 'put ''Zyx0aGlzLnd0U2V0dGluZ3M9eSx0aGlzLmRvbUJpbmRpbmdzPXYsdGhpcy5mYWNhZGVHZXR0ZXI9aCx0aGlzLnd0VGFibGU9STt2YXIgWj10aGlzLmRvbUJpbmRpbmdzLHVlPVoucm9vdERvY3VtZW50LF9lPVoucm9vdFdpbmRvdzt0aGlzLmluc3RhbmNlPXRoaXMud290LHRoaXMuZXZlbnRN''@;'; put 'put ''YW5hZ2VyPUMsdGhpcy5zY3JvbGxiYXJTaXplPUJjKHVlKTt2YXIgQmU9ImhpZGRlbiI9PT1fZS5nZXRDb21wdXRlZFN0eWxlKEkud3RSb290RWxlbWVudC5wYXJlbnROb2RlKS5nZXRQcm9wZXJ0eVZhbHVlKCJvdmVyZmxvdyIpO3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnQ9QmU/SS5ob2xkZXI6''@;'; put 'put ''SFooSS5UQUJMRSksdGhpcy5pbml0T3ZlcmxheXMoKSx0aGlzLmhhc1Njcm9sbGJhckJvdHRvbT0hMSx0aGlzLmhhc1Njcm9sbGJhclJpZ2h0PSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMua2V5UHJlc3NlZD0hMSx0aGlzLnNwcmVhZGVyTGFzdFNpemU9e3dpZHRoOm51bGwsaGVpZ2h0Om51''@;'; put 'put ''bGx9LHRoaXMudmVydGljYWxTY3JvbGxpbmc9ITEsdGhpcy5ob3Jpem9udGFsU2Nyb2xsaW5nPSExLHRoaXMuaW5pdEJyb3dzZXJMaW5lSGVpZ2h0KCksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpLHRoaXMubGFzdFNjcm9sbFg9X2Uuc2Nyb2xsWCx0aGlzLmxhc3RTY3JvbGxZPV9lLnNjcm9s''@;'; put 'put ''bFl9cmV0dXJuIGZ1bmN0aW9uIFdVZShkLGcsaCl7ZyYmQkNlKGQucHJvdG90eXBlLGcpLGgmJkJDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJpbml0QnJvd3NlckxpbmVIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''dmFyIGg9dGhpcy5kb21CaW5kaW5ncyxDPWgucm9vdFdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGgucm9vdERvY3VtZW50LmJvZHkpLEk9cGFyc2VJbnQoQy5saW5lSGVpZ2h0LDEwKSxaPTEuMipwYXJzZUludChDLmZvbnRTaXplLDEwKTt0aGlzLmJyb3dzZXJMaW5lSGVpZ2h0PUl8fFp9fSx7''@;'; put 'put ''a2V5OiJpbml0T3ZlcmxheXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9W3RoaXMud290LHRoaXMuZmFjYWRlR2V0dGVyLHRoaXMud3RTZXR0aW5ncyx0aGlzLmRvbUJpbmRpbmdzXTt0aGlzLnRvcE92ZXJsYXk9VHcoUlllLGgpLHRoaXMuYm90dG9tT3ZlcmxheT1UdyhYWWUsaCksdGhpcy5p''@;'; put 'put ''bmxpbmVTdGFydE92ZXJsYXk9VHcoZFVlLGgpLHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5PVR3KEVVZSxoLmNvbmNhdChbdGhpcy50b3BPdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5XSkpLHRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5PVR3KFpVZSxo''@;'; put 'put ''LmNvbmNhdChbdGhpcy5ib3R0b21PdmVybGF5LHRoaXMuaW5saW5lU3RhcnRPdmVybGF5XSkpfX0se2tleToidXBkYXRlU3RhdGVPZlJlbmRlcmluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnRvcE92ZXJsYXkudXBkYXRlU3RhdGVPZlJlbmRlcmluZygpO3JldHVybiBoPXRoaXMu''@;'; put 'put ''Ym90dG9tT3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGgsaD10aGlzLmlubGluZVN0YXJ0T3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5nKCl8fGgsdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLnRvcE92ZXJsYXkubmVlZEZ1bGxSZW5k''@;'; put 'put ''ZXImJihoPXRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnVwZGF0ZVN0YXRlT2ZSZW5kZXJpbmcoKXx8aCksdGhpcy5ib3R0b21PdmVybGF5Lm5lZWRGdWxsUmVuZGVyJiYoaD10aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS51cGRhdGVTdGF0ZU9mUmVuZGVyaW5n''@;'; put 'put ''KCl8fGgpKSxofX0se2tleToicmVmcmVzaEFsbCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLndvdC5kcmF3bil7aWYoIXRoaXMud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSlyZXR1cm4gdm9pZCB0aGlzLmRlc3Ryb3koKTt0aGlzLndvdC5kcmF3KCEwKSx0aGlzLnZlcnRpY2FsU2Nyb2xs''@;'; put 'put ''aW5nJiZ0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5vblNjcm9sbCgpLHRoaXMuaG9yaXpvbnRhbFNjcm9sbGluZyYmdGhpcy50b3BPdmVybGF5Lm9uU2Nyb2xsKCksdGhpcy52ZXJ0aWNhbFNjcm9sbGluZz0hMSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmc9ITF9fX0se2tleToicmVnaXN0ZXJM''@;'; put 'put ''aXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXRoaXMuZG9tQmluZGluZ3MseT12LnJvb3REb2N1bWVudCxDPXYucm9vdFdpbmRvdyxJPXRoaXMudG9wT3ZlcmxheS5tYWluVGFibGVTY3JvbGxhYmxlRWxlbWVudCxaPXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5U''@;'; put 'put ''YWJsZVNjcm9sbGFibGVFbGVtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoeS5kb2N1bWVudEVsZW1lbnQsImtleWRvd24iLGZ1bmN0aW9uKE90KXtyZXR1cm4gaC5vbktleURvd24oT3QpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih5LmRvY3Vt''@;'; put 'put ''ZW50RWxlbWVudCwia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25LZXlVcCgpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih5LCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe3JldHVybiBoLm9uS2V5VXAoKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50''@;'; put 'put ''TGlzdGVuZXIoSSwic2Nyb2xsIixmdW5jdGlvbihPdCl7cmV0dXJuIGgub25UYWJsZVNjcm9sbChPdCl9LHtwYXNzaXZlOiEwfSksSSE9PVomJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoWiwic2Nyb2xsIixmdW5jdGlvbihPdCl7cmV0dXJuIGgub25UYWJsZVNjcm9sbChP''@;'; put 'put ''dCl9LHtwYXNzaXZlOiEwfSk7dmFyIHB0LHVlPUMuZGV2aWNlUGl4ZWxSYXRpbyYmQy5kZXZpY2VQaXhlbFJhdGlvPjEsX2U9dGhpcy5zY3JvbGxhYmxlRWxlbWVudD09PUMsQmU9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInByZXZlbnRXaGVlbCIpLE5lPXtwYXNzaXZlOl9lfTsoQmV8''@;'; put 'put ''fHVlfHwhd2JlKCkpJiZ0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMud3RUYWJsZS53dFJvb3RFbGVtZW50LCJ3aGVlbCIsZnVuY3Rpb24oT3Qpe3JldHVybiBoLm9uQ2xvbmVXaGVlbChPdCxCZSl9LE5lKSxbdGhpcy50b3BPdmVybGF5LHRoaXMuYm90dG9tT3Zlcmxh''@;'; put 'put ''eSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0uZm9yRWFjaChmdW5jdGlvbihPdCl7T3QmJk90Lm5lZWRGdWxsUmVuZGVyJiZoLmV2ZW50TWFuYWdlci5hZGRFdmVudExp''@;'; put 'put ''c3RlbmVyKE90LmNsb25lLnd0VGFibGUuaG9sZGVyLCJ3aGVlbCIsZnVuY3Rpb24oZm4pe3JldHVybiBoLm9uQ2xvbmVXaGVlbChmbixCZSl9LE5lKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywicmVzaXplIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChwdCkscHQ9''@;'; put 'put ''c2V0VGltZW91dChmdW5jdGlvbigpe2gud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJvbldpbmRvd1Jlc2l6ZSIpfSwyMDApfSl9fSx7a2V5OiJkZXJlZ2lzdGVyTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyRXZlbnRzKCEwKX19LHtrZXk6Im9uVGFi''@;'; put 'put ''bGVTY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyx5PXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEM9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEk9aC50''@;'; put 'put ''YXJnZXQ7dGhpcy5rZXlQcmVzc2VkJiYoQyE9PXYmJkkhPT12JiYhaC50YXJnZXQuY29udGFpbnMoQyl8fHkhPT12JiZJIT09diYmIWgudGFyZ2V0LmNvbnRhaW5zKHkpKXx8dGhpcy5zeW5jU2Nyb2xsUG9zaXRpb25zKGgpfX0se2tleToib25DbG9uZVdoZWVsIix2YWx1ZTpmdW5jdGlvbiho''@;'; put 'put ''LHYpe3ZhciB5PXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyxDPXRoaXMuaW5saW5lU3RhcnRPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LEk9dGhpcy50b3BPdmVybGF5Lm1haW5UYWJsZVNjcm9sbGFibGVFbGVtZW50LFo9aC50YXJnZXQsdWU9SSE9PXkmJlohPT15JiYh''@;'; put 'put ''Wi5jb250YWlucyhJKSxfZT1DIT09eSYmWiE9PXkmJiFaLmNvbnRhaW5zKEMpO2lmKCF0aGlzLmtleVByZXNzZWR8fCF1ZSYmIV9lKXt2YXIgQmU9dGhpcy50cmFuc2xhdGVNb3VzZVdoZWVsVG9TY3JvbGwoaCk7KHZ8fHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQhPT15JiZCZSkmJmgucHJldmVu''@;'; put 'put ''dERlZmF1bHQoKX19fSx7a2V5OiJvbktleURvd24iLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMua2V5UHJlc3NlZD1kTyhoLmtleUNvZGUsIkFSUk9XX1VQfEFSUk9XX1JJR0hUfEFSUk9XX0RPV058QVJST1dfTEVGVCIpfX0se2tleToib25LZXlVcCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmtl''@;'; put 'put ''eVByZXNzZWQ9ITF9fSx7a2V5OiJ0cmFuc2xhdGVNb3VzZVdoZWVsVG9TY3JvbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWlzTmFOKGguZGVsdGFZKT8tMSpoLndoZWVsRGVsdGFZOmguZGVsdGFZLHk9aXNOYU4oaC5kZWx0YVgpPy0xKmgud2hlZWxEZWx0YVg6aC5kZWx0YVg7MT09PWgu''@;'; put 'put ''ZGVsdGFNb2RlJiYoeSs9eSp0aGlzLmJyb3dzZXJMaW5lSGVpZ2h0LHYrPXYqdGhpcy5icm93c2VyTGluZUhlaWdodCk7dmFyIEM9dGhpcy5zY3JvbGxWZXJ0aWNhbGx5KHYpLEk9dGhpcy5zY3JvbGxIb3Jpem9udGFsbHkoeSk7cmV0dXJuIEN8fEl9fSx7a2V5OiJzY3JvbGxWZXJ0aWNhbGx5''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcDtyZXR1cm4gdGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxUb3ArPWgsdiE9PXRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsVG9wfX0se2tleToic2Nyb2xsSG9yaXpvbnRhbGx5''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbExlZnQ7cmV0dXJuIHRoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCs9aCx2IT09dGhpcy5zY3JvbGxhYmxlRWxlbWVudC5zY3JvbGxMZWZ0fX0se2tleToic3luY1Njcm9sbFBvc2l0''@;'; put 'put ''aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5kZXN0cm95ZWQpe3ZhciBoPXRoaXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdyx2PXRoaXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLmhvbGRlcix5PXRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyLEM9''@;'; put 'put ''W3RoaXMuc2Nyb2xsYWJsZUVsZW1lbnQuc2Nyb2xsTGVmdCx0aGlzLnNjcm9sbGFibGVFbGVtZW50LnNjcm9sbFRvcF0sST1DWzBdLFo9Q1sxXTtpZih0aGlzLmhvcml6b250YWxTY3JvbGxpbmc9di5zY3JvbGxMZWZ0IT09SXx8dGhpcy5sYXN0U2Nyb2xsWCE9PWguc2Nyb2xsWCx0aGlzLnZl''@;'; put 'put ''cnRpY2FsU2Nyb2xsaW5nPXkuc2Nyb2xsVG9wIT09Wnx8dGhpcy5sYXN0U2Nyb2xsWSE9PWguc2Nyb2xsWSx0aGlzLmxhc3RTY3JvbGxYPWguc2Nyb2xsWCx0aGlzLmxhc3RTY3JvbGxZPWguc2Nyb2xsWSx0aGlzLmhvcml6b250YWxTY3JvbGxpbmcpe3Yuc2Nyb2xsTGVmdD1JO3ZhciB1ZT10''@;'; put 'put ''aGlzLmJvdHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5kZXI/dGhpcy5ib3R0b21PdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyOm51bGw7dWUmJih1ZS5zY3JvbGxMZWZ0PUkpfXRoaXMudmVydGljYWxTY3JvbGxpbmcmJih5LnNjcm9sbFRvcD1aKSx0aGlzLnJlZnJlc2hBbGwoKX19fSx7a2V5''@;'; put 'put ''OiJzeW5jU2Nyb2xsV2l0aE1hc3RlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnRvcE92ZXJsYXkubWFpblRhYmxlU2Nyb2xsYWJsZUVsZW1lbnQsdj1oLnNjcm9sbExlZnQseT1oLnNjcm9sbFRvcDt0aGlzLnRvcE92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLnRvcE92ZXJs''@;'; put 'put ''YXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xsTGVmdD12KSx0aGlzLmJvdHRvbU92ZXJsYXkubmVlZEZ1bGxSZW5kZXImJih0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUud3RUYWJsZS5ob2xkZXIuc2Nyb2xsTGVmdD12KSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5uZWVkRnVsbFJlbmRl''@;'; put 'put ''ciYmKHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmNsb25lLnd0VGFibGUuaG9sZGVyLnNjcm9sbFRvcD15KX19LHtrZXk6InVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kZXJlZ2lzdGVyTGlzdGVuZXJzKCksdGhpcy5pbmxpbmVTdGFydE92ZXJs''@;'; put 'put ''YXkudXBkYXRlTWFpblNjcm9sbGFibGVFbGVtZW50KCksdGhpcy50b3BPdmVybGF5LnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCgpLHRoaXMuYm90dG9tT3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmdGhpcy5ib3R0b21PdmVybGF5LnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudCgpO3Zh''@;'; put 'put ''ciBoPXRoaXMud3RUYWJsZTt0aGlzLnNjcm9sbGFibGVFbGVtZW50PSJoaWRkZW4iPT09dGhpcy5kb21CaW5kaW5ncy5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUoaC53dFJvb3RFbGVtZW50LnBhcmVudE5vZGUpLmdldFByb3BlcnR5VmFsdWUoIm92ZXJmbG93Iik/aC5ob2xkZXI6SFoo''@;'; put 'put ''aC5UQUJMRSksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy50b3BPdmVybGF5LmRlc3Ryb3koKSx0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tT3Zlcmxh''@;'; put 'put ''eS5kZXN0cm95KCksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXkuZGVzdHJveSgpLHRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5JiZ0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMu''@;'; put 'put ''Ym90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5kZXN0cm95KCksdGhpcy5kZXN0cm95ZWQ9ITB9fSx7a2V5OiJyZWZyZXNoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9p''@;'; put 'put ''ZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdj10aGlzLnd0VGFibGUuc3ByZWFkZXIseT12LmNsaWVudFdpZHRoLEM9di5jbGllbnRIZWlnaHQ7KHkhPT10aGlzLnNwcmVhZGVyTGFzdFNpemUud2lkdGh8fEMhPT10aGlzLnNwcmVhZGVyTGFzdFNpemUuaGVpZ2h0KSYmKHRoaXMu''@;'; put 'put ''c3ByZWFkZXJMYXN0U2l6ZS53aWR0aD15LHRoaXMuc3ByZWFkZXJMYXN0U2l6ZS5oZWlnaHQ9Qyx0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSgpKSx0aGlzLmJvdHRvbU92ZXJsYXkuY2xvbmUmJnRoaXMuYm90dG9tT3ZlcmxheS5yZWZyZXNoKGgpLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LnJl''@;'; put 'put ''ZnJlc2goaCksdGhpcy50b3BPdmVybGF5LnJlZnJlc2goaCksdGhpcy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LnJlZnJlc2goaCksdGhpcy5ib3R0b21JbmxpbmVTdGFydENvcm5lck92ZXJsYXkmJnRoaXMuYm90dG9tSW5s''@;'; put 'put ''aW5lU3RhcnRDb3JuZXJPdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5yZWZyZXNoKGgpfX0se2tleToiYWRqdXN0RWxlbWVudHNTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRz''@;'; put 'put ''WzBdJiZhcmd1bWVudHNbMF0sdj10aGlzLndvdC53dFZpZXdwb3J0LHk9dGhpcy53dFRhYmxlLEM9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLEk9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInRvdGFsUm93cyIpLFo9di5nZXRSb3dIZWFkZXJXaWR0aCgp''@;'; put 'put ''LHVlPXYuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCksX2U9eS5oaWRlci5zdHlsZTtpZihfZS53aWR0aD0iIi5jb25jYXQoWit0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCxDKSwicHgiKSxfZS5oZWlnaHQ9IiIuY29uY2F0KHVlK3RoaXMudG9wT3ZlcmxheS5zdW1DZWxs''@;'; put 'put ''U2l6ZXMoMCxJKSsxLCJweCIpLHRoaXMuc2Nyb2xsYmFyU2l6ZT4wKXt2YXIgQmU9eS53dFJvb3RFbGVtZW50LE5lPUJlLnNjcm9sbEhlaWdodCxLZT1CZS5zY3JvbGxXaWR0aCxwdD15LmhvbGRlcixPdD1wdC5zY3JvbGxIZWlnaHQsJHQ9cHQuc2Nyb2xsV2lkdGg7dGhpcy5oYXNTY3JvbGxi''@;'; put 'put ''YXJSaWdodD1OZTxPdCx0aGlzLmhhc1Njcm9sbGJhckJvdHRvbT1LZTwkdCx0aGlzLmhhc1Njcm9sbGJhclJpZ2h0JiZ5LmhpZGVyLnNjcm9sbFdpZHRoK3RoaXMuc2Nyb2xsYmFyU2l6ZT5LZT90aGlzLmhhc1Njcm9sbGJhckJvdHRvbT0hMDp0aGlzLmhhc1Njcm9sbGJhckJvdHRvbSYmeS5o''@;'; put 'put ''aWRlci5zY3JvbGxIZWlnaHQrdGhpcy5zY3JvbGxiYXJTaXplPk5lJiYodGhpcy5oYXNTY3JvbGxiYXJSaWdodD0hMCl9dGhpcy50b3BPdmVybGF5LmFkanVzdEVsZW1lbnRzU2l6ZShoKSx0aGlzLmlubGluZVN0YXJ0T3ZlcmxheS5hZGp1c3RFbGVtZW50c1NpemUoaCksdGhpcy5ib3R0b21P''@;'; put 'put ''dmVybGF5LmFkanVzdEVsZW1lbnRzU2l6ZShoKX19LHtrZXk6ImFwcGx5VG9ET00iLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMud3RUYWJsZS5pc1Zpc2libGUoKXx8KHRoaXMudG9wT3ZlcmxheS5hcHBseVRvRE9NKCksdGhpcy5ib3R0b21PdmVybGF5LmNsb25lJiZ0aGlzLmJvdHRvbU92ZXJs''@;'; put 'put ''YXkuYXBwbHlUb0RPTSgpLHRoaXMuaW5saW5lU3RhcnRPdmVybGF5LmFwcGx5VG9ET00oKSl9fSx7a2V5OiJnZXRQYXJlbnRPdmVybGF5Iix2YWx1ZTpmdW5jdGlvbihoKXtpZighaClyZXR1cm4gbnVsbDt2YXIgeT1udWxsO3JldHVybiBVcihbdGhpcy50b3BPdmVybGF5LHRoaXMuaW5saW5l''@;'; put 'put ''U3RhcnRPdmVybGF5LHRoaXMuYm90dG9tT3ZlcmxheSx0aGlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheSx0aGlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheV0sZnVuY3Rpb24oQyl7IUN8fEMuY2xvbmUmJkMuY2xvbmUud3RUYWJsZS5UQUJMRS5jb250YWlucyhoKSYmKHk9''@;'; put 'put ''Qy5jbG9uZSl9KSx5fX0se2tleToic3luY092ZXJsYXlUYWJsZUNsYXNzTmFtZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy53dFRhYmxlLlRBQkxFO1VyKFt0aGlzLnRvcE92ZXJsYXksdGhpcy5pbmxpbmVTdGFydE92ZXJsYXksdGhpcy5ib3R0b21PdmVybGF5LHRoaXMudG9wSW5s''@;'; put 'put ''aW5lU3RhcnRDb3JuZXJPdmVybGF5LHRoaXMuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5XSxmdW5jdGlvbih5KXsheXx8KHkuY2xvbmUud3RUYWJsZS5UQUJMRS5jbGFzc05hbWU9aC5jbGFzc05hbWUpfSl9fV0pLGR9KCk7Y29uc3QgVVVlPVlVZTtmdW5jdGlvbiBQQ2UoZCxnKXtm''@;'; put 'put ''b3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBGQ2UoZCxn''@;'; put 'put ''LGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBYVWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPXRoaXM7KGZ1bmN0aW9uIFFVZShk''@;'; put 'put ''LGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxGQ2UodGhpcywic2V0dGluZ3MiLHt9KSxGQ2UodGhpcywiZGVmYXVsdHMiLE9iamVjdC5mcmVlemUodGhpcy5nZXREZWZhdWx0''@;'; put 'put ''cygpKSksR2wodGhpcy5kZWZhdWx0cyxmdW5jdGlvbih2LHkpe2lmKHZvaWQgMCE9PWdbeV0paC5zZXR0aW5nc1t5XT1nW3ldO2Vsc2V7aWYodm9pZCAwPT09dil0aHJvdyBuZXcgRXJyb3IoJ0EgcmVxdWlyZWQgc2V0dGluZyAiJy5jb25jYXQoeSwnIiB3YXMgbm90IHByb3ZpZGVkJykpO2gu''@;'; put 'put ''c2V0dGluZ3NbeV09dn19KX1yZXR1cm4gZnVuY3Rpb24gSlVlKGQsZyxoKXtnJiZQQ2UoZC5wcm90b3R5cGUsZyksaCYmUENlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldERlZmF1bHRzIix2YWx1ZTpmdW5jdGlv''@;'; put 'put ''bigpe3ZhciBoPXRoaXM7cmV0dXJue2ZhY2FkZTp2b2lkIDAsdGFibGU6dm9pZCAwLGlzRGF0YVZpZXdJbnN0YW5jZTohMCxleHRlcm5hbFJvd0NhbGN1bGF0b3I6ITEsc3RyZXRjaEg6Im5vbmUiLGN1cnJlbnRSb3dDbGFzc05hbWU6bnVsbCxjdXJyZW50Q29sdW1uQ2xhc3NOYW1lOm51bGws''@;'; put 'put ''cHJldmVudE92ZXJmbG93OmZ1bmN0aW9uKCl7cmV0dXJuITF9LHByZXZlbnRXaGVlbDohMSxkYXRhOnZvaWQgMCxmcmVlemVPdmVybGF5czohMSxmaXhlZENvbHVtbnNTdGFydDowLGZpeGVkUm93c1RvcDowLGZpeGVkUm93c0JvdHRvbTowLHNob3VsZFJlbmRlcklubGluZVN0YXJ0T3Zlcmxh''@;'; put 'put ''eTpmdW5jdGlvbigpe3JldHVybiBoLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik+MHx8aC5nZXRTZXR0aW5nKCJyb3dIZWFkZXJzIikubGVuZ3RoPjB9LHNob3VsZFJlbmRlclRvcE92ZXJsYXk6ZnVuY3Rpb24oKXtyZXR1cm4gaC5nZXRTZXR0aW5nKCJmaXhlZFJvd3NUb3AiKT4w''@;'; put 'put ''fHxoLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg+MH0sc2hvdWxkUmVuZGVyQm90dG9tT3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpPjB9LG1pblNwYXJlUm93czowLHJvd0hlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm5b''@;'; put 'put ''XX0sY29sdW1uSGVhZGVyczpmdW5jdGlvbigpe3JldHVybltdfSx0b3RhbFJvd3M6dm9pZCAwLHRvdGFsQ29sdW1uczp2b2lkIDAsY2VsbFJlbmRlcmVyOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj1oLmdldFNldHRpbmcoImRhdGEiLHksQyk7U3coSSxudWxsPT1aPyIiOlopfSxjb2x1bW5XaWR0''@;'; put 'put ''aDpmdW5jdGlvbigpe30scm93SGVpZ2h0OmZ1bmN0aW9uKCl7fSxkZWZhdWx0Um93SGVpZ2h0OjIzLGRlZmF1bHRDb2x1bW5XaWR0aDo1MCxzZWxlY3Rpb25zOm51bGwsaGlkZUJvcmRlck9uTW91c2VEb3duT3ZlcjohMSx2aWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZTpudWxsLHZpZXdw''@;'; put 'put ''b3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlOm51bGwsb25DZWxsTW91c2VEb3duOm51bGwsb25DZWxsQ29udGV4dE1lbnU6bnVsbCxvbkNlbGxNb3VzZU92ZXI6bnVsbCxvbkNlbGxNb3VzZU91dDpudWxsLG9uQ2VsbE1vdXNlVXA6bnVsbCxvbkNlbGxEYmxDbGljazpudWxsLG9uQ2VsbENv''@;'; put 'put ''cm5lck1vdXNlRG93bjpudWxsLG9uQ2VsbENvcm5lckRibENsaWNrOm51bGwsYmVmb3JlRHJhdzpudWxsLG9uRHJhdzpudWxsLG9uQmVmb3JlUmVtb3ZlQ2VsbENsYXNzTmFtZXM6bnVsbCxvbkFmdGVyRHJhd1NlbGVjdGlvbjpudWxsLG9uQmVmb3JlRHJhd0JvcmRlcnM6bnVsbCxvblNjcm9s''@;'; put 'put ''bFZlcnRpY2FsbHk6bnVsbCxvblNjcm9sbEhvcml6b250YWxseTpudWxsLG9uQmVmb3JlVG91Y2hTY3JvbGw6bnVsbCxvbkFmdGVyTW9tZW50dW1TY3JvbGw6bnVsbCxvbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aDpmdW5jdGlvbih5KXtyZXR1cm4geX0sb25Nb2RpZnlSb3dIZWFkZXJX''@;'; put 'put ''aWR0aDpudWxsLG9uTW9kaWZ5R2V0Q2VsbENvb3JkczpudWxsLG9uQmVmb3JlSGlnaGxpZ2h0aW5nUm93SGVhZGVyOmZ1bmN0aW9uKHkpe3JldHVybiB5fSxvbkJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlcjpmdW5jdGlvbih5KXtyZXR1cm4geX0sb25XaW5kb3dSZXNpemU6bnVsbCxy''@;'; put 'put ''ZW5kZXJBbGxSb3dzOiExLGdyb3VwczohMSxyb3dIZWFkZXJXaWR0aDpudWxsLGNvbHVtbkhlYWRlckhlaWdodDpudWxsLGhlYWRlckNsYXNzTmFtZTpudWxsLHJ0bE1vZGU6ITF9fX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXM7cmV0dXJuIHZvaWQgMD09''@;'; put 'put ''PXY/R2woaCxmdW5jdGlvbihDLEkpe3kuc2V0dGluZ3NbSV09Q30pOnRoaXMuc2V0dGluZ3NbaF09dix0aGlzfX0se2tleToiZ2V0U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyxJKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5zZXR0aW5nc1toXT90aGlzLnNldHRpbmdz''@;'; put 'put ''W2hdKHYseSxDLEkpOnZvaWQgMCE9PXYmJkFycmF5LmlzQXJyYXkodGhpcy5zZXR0aW5nc1toXSk/dGhpcy5zZXR0aW5nc1toXVt2XTp0aGlzLnNldHRpbmdzW2hdfX0se2tleToiZ2V0U2V0dGluZ1B1cmUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNldHRpbmdzW2hdfX0se2tl''@;'; put 'put ''eToiaGFzIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4hIXRoaXMuc2V0dGluZ3NbaF19fV0pLGR9KCk7ZnVuY3Rpb24gUGRlKGQpe3JldHVybihQZGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJu''@;'; put 'put ''IHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBIQ2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVu''@;'; put 'put ''Z3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBGZGUoZCxnKXtyZXR1cm4oRmRlPU9iamVj''@;'; put 'put ''dC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gdFFlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09UGRlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7''@;'; put 'put ''aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBuUWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFz''@;'; put 'put ''bid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBWZWUoZCl7cmV0dXJuKFZlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5f''@;'; put 'put ''X3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBIZGU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHFVZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJl''@;'; put 'put ''IG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9''@;'; put 'put ''KSxnJiZGZGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBlUWUoZCl7dmFyIGc9ZnVuY3Rpb24gclFlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlw''@;'; put 'put ''ZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9VmVlKGQpO2lm''@;'; put 'put ''KGcpe3ZhciBDPVZlZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdFFlKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSxDLEkpe3JldHVybiBmdW5jdGlvbiBLVWUoZCxn''@;'; put 'put ''KXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyx2LHksQyxJLCJtYXN0ZXIiKX1yZXR1cm4gZnVuY3Rpb24gJFVlKGQsZyxoKXtnJiZIQ2UoZC5wcm90b3R5cGUs''@;'; put 'put ''ZyksaCYmSENlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFsaWduT3ZlcmxheXNXaXRoVHJpbW1pbmdDb250YWluZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9aE8odGhpcy53dFJvb3RFbGVtZW50KSxDPXRoaXMu''@;'; put 'put ''ZG9tQmluZGluZ3Mucm9vdFdpbmRvdztpZih5PT09Qyl0aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicHJldmVudE92ZXJmbG93Iil8fCh0aGlzLmhvbGRlci5zdHlsZS5vdmVyZmxvdz0idmlzaWJsZSIsdGhpcy53dFJvb3RFbGVtZW50LnN0eWxlLm92ZXJmbG93PSJ2aXNpYmxlIik7ZWxz''@;'; put 'put ''ZXt2YXIgWj15LnBhcmVudEVsZW1lbnQsdWU9bmVlKHksImhlaWdodCIsQyksX2U9bmVlKHksIm92ZXJmbG93IixDKSxCZT10aGlzLmhvbGRlci5zdHlsZSxOZT15LnNjcm9sbFdpZHRoLEtlPXkuc2Nyb2xsSGVpZ2h0LHB0PXkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksT3Q9cHQud2lkdGgs''@;'; put 'put ''JHQ9cHQuaGVpZ2h0O2lmKFomJlsiYXV0byIsImhpZGRlbiIsInNjcm9sbCJdLmluY2x1ZGVzKF9lKSl7dmFyIExuPXkuY2xvbmVOb2RlKCExKTtMbi5zdHlsZS5vdmVyZmxvdz0iYXV0byIseS5uZXh0RWxlbWVudFNpYmxpbmc/Wi5pbnNlcnRCZWZvcmUoTG4seS5uZXh0RWxlbWVudFNpYmxp''@;'; put 'put ''bmcpOlouYXBwZW5kQ2hpbGQoTG4pO3ZhciBpcj1wYXJzZUludChNdyhMbixDKS5oZWlnaHQsMTApO1oucmVtb3ZlQ2hpbGQoTG4pLDA9PT1pciYmKCR0PTApfSR0PU1hdGgubWluKCR0LEtlKSxCZS5oZWlnaHQ9ImF1dG8iPT09dWU/ImF1dG8iOiIiLmNvbmNhdCgkdCwicHgiKSxPdD1NYXRo''@;'; put 'put ''Lm1pbihPdCxOZSksQmUud2lkdGg9IiIuY29uY2F0KE90LCJweCIpLEJlLm92ZXJmbG93PSIiLHRoaXMuaGFzVGFibGVIZWlnaHQ9ImF1dG8iPT09QmUuaGVpZ2h0fHwkdD4wLHRoaXMuaGFzVGFibGVXaWR0aD1PdD4wfXRoaXMuaXNUYWJsZVZpc2libGU9Y08odGhpcy5UQUJMRSl9fSx7a2V5''@;'; put 'put ''OiJtYXJrT3ZlcnNpemVkQ29sdW1uSGVhZGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLnd0U2V0dGluZ3MsQz10aGlzLmRhdGFBY2Nlc3NPYmplY3Qud3RWaWV3cG9ydCxJPSJtYXN0ZXIiLHVlPXkuZ2V0U2V0dGluZygiY29sdW1uSGVhZGVycyIpLmxlbmd0aDtpZih1ZSYmIUMu''@;'; put 'put ''aGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZFtJXSl7Zm9yKHZhciBCZT15LmdldFNldHRpbmcoInJvd0hlYWRlcnMiKS5sZW5ndGgsTmU9dGhpcy5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLEtlPTA7S2U8dWU7S2UrKylmb3IodmFyIHB0PS0xKkJlO3B0PE5lO3B0KyspdGhpcy5t''@;'; put 'put ''YXJrSWZPdmVyc2l6ZWRDb2x1bW5IZWFkZXIocHQpO0MuaGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZFtJXT0hMH19fV0pLGh9KHZPKTtCMihIZGUsQ0NlKSxCMihIZGUsYWRlKTtjb25zdCBpUWU9SGRlO2Z1bmN0aW9uIG9RZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIE5DZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJp''@;'; put 'put ''biB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBWQ2U9bmV3IFdlYWtNYXAsbFFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7''@;'; put 'put ''fSxoPWcudmlld3BvcnRTaXplLHY9Zy5zY3JvbGxPZmZzZXQseT1nLnRvdGFsSXRlbXMsQz1nLml0ZW1TaXplRm4sST1nLm92ZXJyaWRlRm4sWj1nLmNhbGN1bGF0aW9uVHlwZSx1ZT1nLnNjcm9sbGJhckhlaWdodDtvUWUodGhpcyxkKSxWQ2Uuc2V0KHRoaXMse3ZpZXdwb3J0SGVpZ2h0Omgs''@;'; put 'put ''c2Nyb2xsT2Zmc2V0OnYsdG90YWxSb3dzOnkscm93SGVpZ2h0Rm46QyxvdmVycmlkZUZuOkksY2FsY3VsYXRpb25UeXBlOlosaG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodDp1ZX0pLHRoaXMuY291bnQ9MCx0aGlzLnN0YXJ0Um93PW51bGwsdGhpcy5lbmRSb3c9bnVsbCx0aGlzLnN0YXJ0UG9z''@;'; put 'put ''aXRpb249bnVsbCx0aGlzLmNhbGN1bGF0ZSgpfXJldHVybiBmdW5jdGlvbiBhUWUoZCxnLGgpe2cmJk5DZShkLnByb3RvdHlwZSxnKSxoJiZOQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiY2FsY3VsYXRlIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbigpe2Zvcih2YXIgcHQsaD0wLHY9ITAseT1bXSxDPVZDZS5nZXQodGhpcyksST1DLmNhbGN1bGF0aW9uVHlwZSxaPUMub3ZlcnJpZGVGbix1ZT1DLnJvd0hlaWdodEZuLF9lPUMuc2Nyb2xsT2Zmc2V0LEJlPUMudG90YWxSb3dzLE5lPUMudmlld3BvcnRIZWlnaHQsS2U9Qy5o''@;'; put 'put ''b3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0fHwwLE90PTA7T3Q8QmU7T3QrKylpZihwdD11ZShPdCksaXNOYU4ocHQpJiYocHQ9ZC5ERUZBVUxUX0hFSUdIVCksaDw9X2UmJjIhPT1JJiYodGhpcy5zdGFydFJvdz1PdCksaD49X2UmJmgrKDI9PT1JP3B0OjApPD1fZStOZS1LZSYmKG51bGw9PT10''@;'; put 'put ''aGlzLnN0YXJ0Um93JiYodGhpcy5zdGFydFJvdz1PdCksdGhpcy5lbmRSb3c9T3QpLHkucHVzaChoKSxoKz1wdCwyIT09SSYmKHRoaXMuZW5kUm93PU90KSxoPj1fZStOZS1LZSl7dj0hMTticmVha31pZih0aGlzLmVuZFJvdz09PUJlLTEmJnYpZm9yKHRoaXMuc3RhcnRSb3c9dGhpcy5lbmRS''@;'; put 'put ''b3c7dGhpcy5zdGFydFJvdz4wOyl7dmFyICR0PXlbdGhpcy5lbmRSb3ddK3B0LXlbdGhpcy5zdGFydFJvdy0xXTtpZigoJHQ8PU5lLUtlfHwyIT09SSkmJih0aGlzLnN0YXJ0Um93LT0xKSwkdD49TmUtS2UpYnJlYWt9MT09PUkmJm51bGwhPT10aGlzLnN0YXJ0Um93JiZaJiZaKHRoaXMpLHRo''@;'; put 'put ''aXMuc3RhcnRQb3NpdGlvbj15W3RoaXMuc3RhcnRSb3ddLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxCZTx0aGlzLmVuZFJvdyYmKHRoaXMuZW5kUm93PUJlLTEpLG51bGwhPT10aGlzLnN0YXJ0Um93JiYodGhpcy5jb3VudD10aGlzLmVu''@;'; put 'put ''ZFJvdy10aGlzLnN0YXJ0Um93KzEpfX1dLFt7a2V5OiJERUZBVUxUX0hFSUdIVCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDIzfX1dKSxkfSgpO2NvbnN0IGpDZT1sUWU7ZnVuY3Rpb24gc1FlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNh''@;'; put 'put ''bGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gWkNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmpl''@;'; put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEFPPW5ldyBXZWFrTWFwLGNRZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30saD1nLnZpZXdwb3J0U2l6ZSx2PWcuc2Ny''@;'; put 'put ''b2xsT2Zmc2V0LHk9Zy50b3RhbEl0ZW1zLEM9Zy5pdGVtU2l6ZUZuLEk9Zy5vdmVycmlkZUZuLFo9Zy5jYWxjdWxhdGlvblR5cGUsdWU9Zy5zdHJldGNoTW9kZSxfZT1nLnN0cmV0Y2hpbmdJdGVtV2lkdGhGbixCZT12b2lkIDA9PT1fZT9mdW5jdGlvbihOZSl7cmV0dXJuIE5lfTpfZTtzUWUo''@;'; put 'put ''dGhpcyxkKSxBTy5zZXQodGhpcyx7dmlld3BvcnRXaWR0aDpoLHNjcm9sbE9mZnNldDp2LHRvdGFsQ29sdW1uczp5LGNvbHVtbldpZHRoRm46QyxvdmVycmlkZUZuOkksY2FsY3VsYXRpb25UeXBlOlosc3RyZXRjaGluZ0NvbHVtbldpZHRoRm46QmV9KSx0aGlzLmNvdW50PTAsdGhpcy5zdGFy''@;'; put 'put ''dENvbHVtbj1udWxsLHRoaXMuZW5kQ29sdW1uPW51bGwsdGhpcy5zdGFydFBvc2l0aW9uPW51bGwsdGhpcy5zdHJldGNoQWxsUmF0aW89MCx0aGlzLnN0cmV0Y2hMYXN0V2lkdGg9MCx0aGlzLnN0cmV0Y2g9dWUsdGhpcy50b3RhbFRhcmdldFdpZHRoPTAsdGhpcy5uZWVkVmVyaWZ5TGFzdENv''@;'; put 'put ''bHVtbldpZHRoPSEwLHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aD1bXSx0aGlzLmNhbGN1bGF0ZSgpfXJldHVybiBmdW5jdGlvbiB1UWUoZCxnLGgpe2cmJlpDZShkLnByb3RvdHlwZSxnKSxoJiZaQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; put 'put ''bGU6ITF9KX0oZCxbe2tleToiY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgQyxoPTAsdj0hMCx5PVtdLEk9QU8uZ2V0KHRoaXMpLFo9SS5jYWxjdWxhdGlvblR5cGUsdWU9SS5vdmVycmlkZUZuLF9lPUkuc2Nyb2xsT2Zmc2V0LEJlPUkudG90YWxDb2x1bW5zLE5lPUkudmll''@;'; put 'put ''d3BvcnRXaWR0aCxLZT0wO0tlPEJlO0tlKyspaWYoQz10aGlzLl9nZXRDb2x1bW5XaWR0aChLZSksaDw9X2UmJjIhPT1aJiYodGhpcy5zdGFydENvbHVtbj1LZSksaD49X2UmJmgrKDI9PT1aP0M6MCk8PV9lKyhfZT4wP05lKzE6TmUpJiYobnVsbD09dGhpcy5zdGFydENvbHVtbiYmKHRoaXMu''@;'; put 'put ''c3RhcnRDb2x1bW49S2UpLHRoaXMuZW5kQ29sdW1uPUtlKSx5LnB1c2goaCksaCs9QywyIT09WiYmKHRoaXMuZW5kQ29sdW1uPUtlKSxoPj1fZStOZSl7dj0hMTticmVha31pZih0aGlzLmVuZENvbHVtbj09PUJlLTEmJnYpZm9yKHRoaXMuc3RhcnRDb2x1bW49dGhpcy5lbmRDb2x1bW47dGhp''@;'; put 'put ''cy5zdGFydENvbHVtbj4wOyl7dmFyIE90PXlbdGhpcy5lbmRDb2x1bW5dK0MteVt0aGlzLnN0YXJ0Q29sdW1uLTFdO2lmKChPdDw9TmV8fDIhPT1aKSYmKHRoaXMuc3RhcnRDb2x1bW4tPTEpLE90Pk5lKWJyZWFrfTE9PT1aJiZudWxsIT09dGhpcy5zdGFydENvbHVtbiYmdWUmJnVlKHRoaXMp''@;'; put 'put ''LHRoaXMuc3RhcnRQb3NpdGlvbj15W3RoaXMuc3RhcnRDb2x1bW5dLHZvaWQgMD09PXRoaXMuc3RhcnRQb3NpdGlvbiYmKHRoaXMuc3RhcnRQb3NpdGlvbj1udWxsKSxCZTx0aGlzLmVuZENvbHVtbiYmKHRoaXMuZW5kQ29sdW1uPUJlLTEpLG51bGwhPT10aGlzLnN0YXJ0Q29sdW1uJiYodGhp''@;'; put 'put ''cy5jb3VudD10aGlzLmVuZENvbHVtbi10aGlzLnN0YXJ0Q29sdW1uKzEpfX0se2tleToicmVmcmVzaFN0cmV0Y2hpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCJub25lIiE9PXRoaXMuc3RyZXRjaCl7dmFyIHY9aDt0aGlzLnRvdGFsVGFyZ2V0V2lkdGg9djtmb3IodmFyIHk9QU8uZ2V0KHRo''@;'; put 'put ''aXMpLEM9eS50b3RhbENvbHVtbnMsST0wLFo9MDtaPEM7WisrKXt2YXIgdWU9dGhpcy5fZ2V0Q29sdW1uV2lkdGgoWiksX2U9eS5zdHJldGNoaW5nQ29sdW1uV2lkdGhGbih2b2lkIDAsWik7Im51bWJlciI9PXR5cGVvZiBfZT92LT1fZTpJKz11ZX12YXIgQmU9di1JO2lmKCJhbGwiPT09dGhp''@;'; put 'put ''cy5zdHJldGNoJiZCZT4wKXRoaXMuc3RyZXRjaEFsbFJhdGlvPXYvSSx0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGg9W10sdGhpcy5uZWVkVmVyaWZ5TGFzdENvbHVtbldpZHRoPSEwO2Vsc2UgaWYoImxhc3QiPT09dGhpcy5zdHJldGNoJiZ2IT09MS8wKXt2YXIgTmU9dGhpcy5fZ2V0Q29s''@;'; put 'put ''dW1uV2lkdGgoQy0xKSxLZT1CZStOZTt0aGlzLnN0cmV0Y2hMYXN0V2lkdGg9S2U+PTA/S2U6TmV9fX19LHtrZXk6ImdldFN0cmV0Y2hlZENvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PW51bGw7cmV0dXJuImFsbCI9PT10aGlzLnN0cmV0Y2gmJjAhPT10aGlzLnN0cmV0''@;'; put 'put ''Y2hBbGxSYXRpbz95PXRoaXMuX2dldFN0cmV0Y2hlZEFsbENvbHVtbldpZHRoKGgsdik6Imxhc3QiPT09dGhpcy5zdHJldGNoJiYwIT09dGhpcy5zdHJldGNoTGFzdFdpZHRoJiYoeT10aGlzLl9nZXRTdHJldGNoZWRMYXN0Q29sdW1uV2lkdGgoaCkpLHl9fSx7a2V5OiJfZ2V0U3RyZXRjaGVk''@;'; put 'put ''QWxsQ29sdW1uV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9MCxDPUFPLmdldCh0aGlzKSxJPUMudG90YWxDb2x1bW5zO2lmKCF0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbaF0pe3ZhciBaPU1hdGgucm91bmQodip0aGlzLnN0cmV0Y2hBbGxSYXRpbyksdWU9Qy5zdHJldGNo''@;'; put 'put ''aW5nQ29sdW1uV2lkdGhGbihaLGgpO3RoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aFtoXT12b2lkIDA9PT11ZT9aOmlzTmFOKHVlKT90aGlzLl9nZXRDb2x1bW5XaWR0aChoKTp1ZX1pZih0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGgubGVuZ3RoPT09SSYmdGhpcy5uZWVkVmVyaWZ5TGFz''@;'; put 'put ''dENvbHVtbldpZHRoKXt0aGlzLm5lZWRWZXJpZnlMYXN0Q29sdW1uV2lkdGg9ITE7Zm9yKHZhciBfZT0wO19lPHRoaXMuc3RyZXRjaEFsbENvbHVtbnNXaWR0aC5sZW5ndGg7X2UrKyl5Kz10aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbX2VdO3khPT10aGlzLnRvdGFsVGFyZ2V0V2lkdGgm''@;'; put 'put ''Jih0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbdGhpcy5zdHJldGNoQWxsQ29sdW1uc1dpZHRoLmxlbmd0aC0xXSs9dGhpcy50b3RhbFRhcmdldFdpZHRoLXkpfXJldHVybiB0aGlzLnN0cmV0Y2hBbGxDb2x1bW5zV2lkdGhbaF19fSx7a2V5OiJfZ2V0U3RyZXRjaGVkTGFzdENvbHVtbldp''@;'; put 'put ''ZHRoIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gaD09PUFPLmdldCh0aGlzKS50b3RhbENvbHVtbnMtMT90aGlzLnN0cmV0Y2hMYXN0V2lkdGg6bnVsbH19LHtrZXk6Il9nZXRDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9QU8uZ2V0KHRoaXMpLmNvbHVtbldpZHRoRm4o''@;'; put 'put ''aCk7cmV0dXJuIGlzTmFOKHYpJiYodj1kLkRFRkFVTFRfV0lEVEgpLHZ9fV0sW3trZXk6IkRFRkFVTFRfV0lEVEgiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19XSksZH0oKTtjb25zdCBOZGU9Y1FlO2Z1bmN0aW9uIHpDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIg''@;'; put 'put ''dj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBkUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCx2LHksQyl7dmFyIEk9''@;'; put 'put ''dGhpczsoZnVuY3Rpb24gZlFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuZGF0YUFjY2Vzc09iamVjdD1nLHRoaXMud290PWcud290LHRoaXMuaW5zdGFuY2U9''@;'; put 'put ''dGhpcy53b3QsdGhpcy5kb21CaW5kaW5ncz1oLHRoaXMud3RTZXR0aW5ncz12LHRoaXMud3RUYWJsZT1DLHRoaXMub3ZlcnNpemVkUm93cz1bXSx0aGlzLm92ZXJzaXplZENvbHVtbkhlYWRlcnM9W10sdGhpcy5oYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFya2VkPXt9LHRoaXMuY2xpZW50''@;'; put 'put ''SGVpZ2h0PTAsdGhpcy5jb250YWluZXJXaWR0aD1OYU4sdGhpcy5yb3dIZWFkZXJXaWR0aD1OYU4sdGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9bnVsbCx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHRoaXMuZXZlbnRNYW5hZ2VyPXksdGhpcy5ldmVudE1hbmFnZXIuYWRk''@;'; put 'put ''RXZlbnRMaXN0ZW5lcih0aGlzLmRvbUJpbmRpbmdzLnJvb3RXaW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtJLmNsaWVudEhlaWdodD1JLmdldFdvcmtzcGFjZUhlaWdodCgpfSl9cmV0dXJuIGZ1bmN0aW9uIGhRZShkLGcsaCl7ZyYmekNlKGQucHJvdG90eXBlLGcpLGgmJnpDZShkLGgpLE9i''@;'; put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRXb3Jrc3BhY2VIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lcjtyZXR1cm4gdj09PXRo''@;'; put 'put ''aXMuZG9tQmluZGluZ3Mucm9vdFdpbmRvdz90aGlzLmRvbUJpbmRpbmdzLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0OkQxKHYpPjAmJnYuY2xpZW50SGVpZ2h0PjA/di5jbGllbnRIZWlnaHQ6MS8wfX0se2tleToiZ2V0V29ya3NwYWNlV2lkdGgiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIE90LCR0LGg9dGhpcy53dFNldHRpbmdzLHY9dGhpcy5kb21CaW5kaW5ncyx5PXYucm9vdERvY3VtZW50LEM9di5yb290V2luZG93LEk9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LmlubGluZVN0YXJ0T3ZlcmxheVRyaW1taW5nQ29udGFpbmVyLFo9eS5kb2N1bWVudEVsZW1l''@;'; put 'put ''bnQub2Zmc2V0V2lkdGgsdWU9aC5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKSxfZT1oLmdldFNldHRpbmcoInByZXZlbnRPdmVyZmxvdyIpLEJlPWguZ2V0U2V0dGluZygicnRsTW9kZSIpLE5lPXRoaXMud3RUYWJsZS5UQUJMRS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxwdD1aLShCZT9O''@;'; put 'put ''ZS5yaWdodC1aOk5lLmxlZnQpO2lmKF9lKXJldHVybiBFMih0aGlzLnd0VGFibGUud3RSb290RWxlbWVudCk7aWYoT3Q9aC5nZXRTZXR0aW5nKCJmcmVlemVPdmVybGF5cyIpP01hdGgubWluKHB0LFopOk1hdGgubWluKHRoaXMuZ2V0Q29udGFpbmVyRmlsbFdpZHRoKCkscHQsWiksST09PUMm''@;'; put 'put ''JnVlPjAmJnRoaXMuc3VtQ29sdW1uV2lkdGhzKDAsdWUtMSk+T3QpcmV0dXJuIHkuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO2lmKEkhPT1DJiYoInNjcm9sbCI9PT0oJHQ9bmVlKHRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydE92ZXJsYXlUcmltbWluZ0NvbnRhaW5lciwi''@;'; put 'put ''b3ZlcmZsb3ciLEMpKXx8ImhpZGRlbiI9PT0kdHx8ImF1dG8iPT09JHQpKXJldHVybiBNYXRoLm1heChPdCxJLmNsaWVudFdpZHRoKTt2YXIgZm49aC5nZXRTZXR0aW5nKCJzdHJldGNoSCIpO3JldHVybiJub25lIiE9PWZuJiZmbj9PdDpNYXRoLm1heChPdCxFMih0aGlzLnd0VGFibGUuVEFC''@;'; put 'put ''TEUpKX19LHtrZXk6Imhhc1ZlcnRpY2FsU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnd0VGFibGUuaGlkZXIub2Zmc2V0SGVpZ2h0PnRoaXMuZ2V0V29ya3NwYWNlSGVpZ2h0KCl9fSx7a2V5OiJoYXNIb3Jpem9udGFsU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biB0aGlzLnd0VGFibGUuaGlkZXIub2Zmc2V0V2lkdGg+dGhpcy5nZXRXb3Jrc3BhY2VXaWR0aCgpfX0se2tleToic3VtQ29sdW1uV2lkdGhzIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT0wLEM9aDtDPHY7KXkrPXRoaXMud3RUYWJsZS5nZXRDb2x1bW5XaWR0aChDKSxDKz0xO3Jl''@;'; put 'put ''dHVybiB5fX0se2tleToiZ2V0Q29udGFpbmVyRmlsbFdpZHRoIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuY29udGFpbmVyV2lkdGgpcmV0dXJuIHRoaXMuY29udGFpbmVyV2lkdGg7dmFyIGg9dGhpcy53dFRhYmxlLmhvbGRlcix2PXRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50LmNy''@;'; put 'put ''ZWF0ZUVsZW1lbnQoImRpdiIpO3Yuc3R5bGUud2lkdGg9IjEwMCUiLHYuc3R5bGUuaGVpZ2h0PSIxcHgiLGguYXBwZW5kQ2hpbGQodik7dmFyIHk9di5vZmZzZXRXaWR0aDtyZXR1cm4gdGhpcy5jb250YWluZXJXaWR0aD15LGgucmVtb3ZlQ2hpbGQodikseX19LHtrZXk6ImdldFdvcmtzcGFj''@;'; put 'put ''ZU9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4ganUodGhpcy53dFRhYmxlLlRBQkxFKX19LHtrZXk6ImdldENvbHVtbkhlYWRlckhlaWdodCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoImNvbHVtbkhlYWRlcnMiKS5sZW5ndGg/aXNO''@;'; put 'put ''YU4odGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQpJiYodGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9RDEodGhpcy53dFRhYmxlLlRIRUFEKSk6dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9MCx0aGlzLmNvbHVtbkhlYWRlckhlaWdodH19LHtrZXk6ImdldFZpZXdwb3J0SGVpZ2h0Iix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbigpe3ZhciBoPXRoaXMuZ2V0V29ya3NwYWNlSGVpZ2h0KCk7aWYoaD09PTEvMClyZXR1cm4gaDt2YXIgdj10aGlzLmdldENvbHVtbkhlYWRlckhlaWdodCgpO3JldHVybiB2PjAmJihoLT12KSxofX0se2tleToiZ2V0Um93SGVhZGVyV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9''@;'; put 'put ''dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoInJvd0hlYWRlcldpZHRoIiksdj10aGlzLnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicm93SGVhZGVycyIpO2lmKGgpe3RoaXMucm93SGVhZGVyV2lkdGg9MDtmb3IodmFyIHk9MCxDPXYubGVuZ3RoO3k8Qzt5KyspdGhpcy5yb3dIZWFkZXJXaWR0''@;'; put 'put ''aCs9aFt5XXx8aH1pZihpc05hTih0aGlzLnJvd0hlYWRlcldpZHRoKSlpZih2Lmxlbmd0aCl7dmFyIEk9dGhpcy53dFRhYmxlLlRBQkxFLnF1ZXJ5U2VsZWN0b3IoIlRIIik7dGhpcy5yb3dIZWFkZXJXaWR0aD0wO2Zvcih2YXIgWj0wLHVlPXYubGVuZ3RoO1o8dWU7WisrKUk/KHRoaXMucm93''@;'; put 'put ''SGVhZGVyV2lkdGgrPUUyKEkpLEk9SS5uZXh0U2libGluZyk6dGhpcy5yb3dIZWFkZXJXaWR0aCs9NTB9ZWxzZSB0aGlzLnJvd0hlYWRlcldpZHRoPTA7cmV0dXJuIHRoaXMucm93SGVhZGVyV2lkdGg9dGhpcy53dFNldHRpbmdzLmdldFNldHRpbmcoIm9uTW9kaWZ5Um93SGVhZGVyV2lkdGgi''@;'; put 'put ''LHRoaXMucm93SGVhZGVyV2lkdGgpfHx0aGlzLnJvd0hlYWRlcldpZHRoLHRoaXMucm93SGVhZGVyV2lkdGh9fSx7a2V5OiJnZXRWaWV3cG9ydFdpZHRoIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0V29ya3NwYWNlV2lkdGgoKTtpZihoPT09MS8wKXJldHVybiBoO3ZhciB2PXRo''@;'; put 'put ''aXMuZ2V0Um93SGVhZGVyV2lkdGgoKTtyZXR1cm4gdj4wP2gtdjpofX0se2tleToiY3JlYXRlUm93c0NhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEMsSSxaLGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEsdj10aGlzLnd0''@;'; put 'put ''U2V0dGluZ3MseT10aGlzLnd0VGFibGU7dGhpcy5yb3dIZWFkZXJXaWR0aD1OYU4sQz12LmdldFNldHRpbmcoInJlbmRlckFsbFJvd3MiKSYmMT09PWg/MS8wOnRoaXMuZ2V0Vmlld3BvcnRIZWlnaHQoKTt2YXIgdWU9dGhpcy5kYXRhQWNjZXNzT2JqZWN0LnRvcFNjcm9sbFBvc2l0aW9uLXRo''@;'; put 'put ''aXMuZGF0YUFjY2Vzc09iamVjdC50b3BQYXJlbnRPZmZzZXQ7dWU8MCYmKHVlPTApO3ZhciBfZT12LmdldFNldHRpbmcoImZpeGVkUm93c1RvcCIpLEJlPXYuZ2V0U2V0dGluZygiZml4ZWRSb3dzQm90dG9tIiksTmU9di5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKTtyZXR1cm4gX2UmJih1ZSs9''@;'; put 'put ''Wj10aGlzLmRhdGFBY2Nlc3NPYmplY3QudG9wT3ZlcmxheS5zdW1DZWxsU2l6ZXMoMCxfZSksQy09WiksQmUmJnRoaXMuZGF0YUFjY2Vzc09iamVjdC5ib3R0b21PdmVybGF5LmNsb25lJiYoQy09Wj10aGlzLmRhdGFBY2Nlc3NPYmplY3QuYm90dG9tT3ZlcmxheS5zdW1DZWxsU2l6ZXMoTmUt''@;'; put 'put ''QmUsTmUpKSxJPXkuaG9sZGVyLmNsaWVudEhlaWdodD09PXkuaG9sZGVyLm9mZnNldEhlaWdodD8wOkJjKHRoaXMuZG9tQmluZGluZ3Mucm9vdERvY3VtZW50KSxuZXcgakNlKHt2aWV3cG9ydFNpemU6QyxzY3JvbGxPZmZzZXQ6dWUsdG90YWxJdGVtczp2LmdldFNldHRpbmcoInRvdGFsUm93''@;'; put 'put ''cyIpLGl0ZW1TaXplRm46ZnVuY3Rpb24ocHQpe3JldHVybiB5LmdldFJvd0hlaWdodChwdCl9LG92ZXJyaWRlRm46di5nZXRTZXR0aW5nUHVyZSgidmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiKSxjYWxjdWxhdGlvblR5cGU6aCxzY3JvbGxiYXJIZWlnaHQ6SX0pfX0se2tleToiY3Jl''@;'; put 'put ''YXRlQ29sdW1uc0NhbGN1bGF0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjEsdj10aGlzLnd0U2V0dGluZ3MseT10aGlzLnd0VGFibGUsQz10aGlzLmdldFZpZXdwb3J0V2lkdGgoKSxJPU1h''@;'; put 'put ''dGguYWJzKHRoaXMuZGF0YUFjY2Vzc09iamVjdC5pbmxpbmVTdGFydFNjcm9sbFBvc2l0aW9uKS10aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRQYXJlbnRPZmZzZXQ7dGhpcy5jb2x1bW5IZWFkZXJIZWlnaHQ9TmFOLEk8MCYmKEk9MCk7dmFyIFo9di5nZXRTZXR0aW5nKCJmaXhl''@;'; put 'put ''ZENvbHVtbnNTdGFydCIpO2lmKFope3ZhciB1ZT10aGlzLmRhdGFBY2Nlc3NPYmplY3QuaW5saW5lU3RhcnRPdmVybGF5LnN1bUNlbGxTaXplcygwLFopO0krPXVlLEMtPXVlfXJldHVybiB5LmhvbGRlci5jbGllbnRXaWR0aCE9PXkuaG9sZGVyLm9mZnNldFdpZHRoJiYoQy09QmModGhpcy5k''@;'; put 'put ''b21CaW5kaW5ncy5yb290RG9jdW1lbnQpKSxuZXcgTmRlKHt2aWV3cG9ydFNpemU6QyxzY3JvbGxPZmZzZXQ6TWF0aC5hYnMoSSksdG90YWxJdGVtczp2LmdldFNldHRpbmcoInRvdGFsQ29sdW1ucyIpLGl0ZW1TaXplRm46ZnVuY3Rpb24oQmUpe3JldHVybiB5LmdldENvbHVtbldpZHRoKEJl''@;'; put 'put ''KX0sb3ZlcnJpZGVGbjp2LmdldFNldHRpbmdQdXJlKCJ2aWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIpLGNhbGN1bGF0aW9uVHlwZTpoLHN0cmV0Y2hNb2RlOnYuZ2V0U2V0dGluZygic3RyZXRjaEgiKSxzdHJldGNoaW5nSXRlbVdpZHRoRm46ZnVuY3Rpb24oQmUsTmUpe3JldHVy''@;'; put 'put ''biB2LmdldFNldHRpbmcoIm9uQmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixCZSxOZSl9fSl9fSx7a2V5OiJjcmVhdGVSZW5kZXJDYWxjdWxhdG9ycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRz''@;'; put 'put ''WzBdLHY9aDtpZih2KXt2YXIgeT10aGlzLmNyZWF0ZVJvd3NDYWxjdWxhdG9yKDIpLEM9dGhpcy5jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigyKTt0aGlzLmFyZUFsbFByb3Bvc2VkVmlzaWJsZVJvd3NBbHJlYWR5UmVuZGVyZWQoeSkmJnRoaXMuYXJlQWxsUHJvcG9zZWRWaXNpYmxlQ29sdW1u''@;'; put 'put ''c0FscmVhZHlSZW5kZXJlZChDKXx8KHY9ITEpfXJldHVybiB2fHwodGhpcy5yb3dzUmVuZGVyQ2FsY3VsYXRvcj10aGlzLmNyZWF0ZVJvd3NDYWxjdWxhdG9yKDEpLHRoaXMuY29sdW1uc1JlbmRlckNhbGN1bGF0b3I9dGhpcy5jcmVhdGVDb2x1bW5zQ2FsY3VsYXRvcigxKSksdGhpcy5yb3dz''@;'; put 'put ''VmlzaWJsZUNhbGN1bGF0b3I9bnVsbCx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj1udWxsLHZ9fSx7a2V5OiJjcmVhdGVWaXNpYmxlQ2FsY3VsYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yb3dzVmlzaWJsZUNhbGN1bGF0b3I9dGhpcy5jcmVhdGVSb3dzQ2FsY3VsYXRvcigy''@;'; put 'put ''KSx0aGlzLmNvbHVtbnNWaXNpYmxlQ2FsY3VsYXRvcj10aGlzLmNyZWF0ZUNvbHVtbnNDYWxjdWxhdG9yKDIpfX0se2tleToiYXJlQWxsUHJvcG9zZWRWaXNpYmxlUm93c0FscmVhZHlSZW5kZXJlZCIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYoIXRoaXMucm93c1Zpc2libGVDYWxjdWxhdG9yKXJl''@;'; put 'put ''dHVybiExO3ZhciB2PWguc3RhcnRSb3cseT1oLmVuZFJvdztpZihudWxsPT09diYmbnVsbD09PXkpcmV0dXJuITE7dmFyIEM9dGhpcy5yb3dzUmVuZGVyQ2FsY3VsYXRvcixJPUMuc3RhcnRSb3csWj1DLmVuZFJvdztyZXR1cm4hKHY8SXx8dj09PUkmJnY+MHx8eT5afHx5PT09WiYmeTx0aGlz''@;'; put 'put ''Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygidG90YWxSb3dzIiktMSl9fSx7a2V5OiJhcmVBbGxQcm9wb3NlZFZpc2libGVDb2x1bW5zQWxyZWFkeVJlbmRlcmVkIix2YWx1ZTpmdW5jdGlvbihoKXtpZighdGhpcy5jb2x1bW5zVmlzaWJsZUNhbGN1bGF0b3IpcmV0dXJuITE7dmFyIHY9aC5zdGFy''@;'; put 'put ''dENvbHVtbix5PWguZW5kQ29sdW1uO2lmKG51bGw9PT12JiZudWxsPT09eSlyZXR1cm4hMTt2YXIgQz10aGlzLmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yLEk9Qy5zdGFydENvbHVtbixaPUMuZW5kQ29sdW1uO3JldHVybiEodjxJfHx2PT09SSYmdj4wfHx5Plp8fHk9PT1aJiZ5PHRoaXMud3RT''@;'; put 'put ''ZXR0aW5ncy5nZXRTZXR0aW5nKCJ0b3RhbENvbHVtbnMiKS0xKX19LHtrZXk6InJlc2V0SGFzT3ZlcnNpemVkQ29sdW1uSGVhZGVyc01hcmtlZCIsdmFsdWU6ZnVuY3Rpb24oKXtHbCh0aGlzLmhhc092ZXJzaXplZENvbHVtbkhlYWRlcnNNYXJrZWQsZnVuY3Rpb24oaCx2LHkpe3lbdl09dm9p''@;'; put 'put ''ZCAwfSl9fV0pLGR9KCk7Y29uc3QgcFFlPWRRZTtmdW5jdGlvbiBWZGUoZCl7cmV0dXJuKFZkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBn''@;'; put 'put ''JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEdDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJs''@;'; put 'put ''ZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGpkZShkLGcpe3JldHVybihqZGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90''@;'; put 'put ''b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB5UWUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1WZGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJy''@;'; put 'put ''b3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIFpkZShkKX1mdW5jdGlvbiBaZGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBz''@;'; put 'put ''dXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGplZShkKXtyZXR1cm4oamVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlw''@;'; put 'put ''ZU9mKGgpfSkoZCl9dmFyIGJRZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gdlFlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90''@;'; put 'put ''b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmpkZShkLGcpfShoLGQpO3ZhciBnPWZ1''@;'; put 'put ''bmN0aW9uIEFRZShkKXt2YXIgZz1mdW5jdGlvbiB3UWUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVy''@;'; put 'put ''biBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1qZWUoZCk7aWYoZyl7dmFyIEM9amVlKHRoaXMpLmNvbnN0cnVj''@;'; put 'put ''dG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB5UWUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQzshZnVuY3Rpb24gZ1FlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3''@;'; put 'put ''IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCk7dmFyIEk9KEM9Zy5jYWxsKHRoaXMsdixuZXcgWFVlKHkpKSkud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJmYWNhZGUiLFpkZShDKSk7cmV0dXJuIEMud3RUYWJsZT1uZXcgaVFlKEMuZ2V0VGFi''@;'; put 'put ''bGVEYW8oKSxJLEMuZG9tQmluZGluZ3MsQy53dFNldHRpbmdzKSxDLnd0Vmlld3BvcnQ9bmV3IHBRZShDLmdldFZpZXdwb3J0RGFvKCksQy5kb21CaW5kaW5ncyxDLnd0U2V0dGluZ3MsQy5ldmVudE1hbmFnZXIsQy53dFRhYmxlKSxDLnNlbGVjdGlvbnM9Qy53dFNldHRpbmdzLmdldFNldHRp''@;'; put 'put ''bmcoInNlbGVjdGlvbnMiKSxDLnd0RXZlbnQ9bmV3IEVfZShJLEMuZG9tQmluZGluZ3MsQy53dFNldHRpbmdzLEMuZXZlbnRNYW5hZ2VyLEMud3RUYWJsZSxDLnNlbGVjdGlvbnMpLEMud3RPdmVybGF5cz1uZXcgVVVlKFpkZShDKSxJLEMuZG9tQmluZGluZ3MsQy53dFNldHRpbmdzLEMuZXZl''@;'; put 'put ''bnRNYW5hZ2VyLEMud3RUYWJsZSksQy5leHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcygpLEMuZmluZE9yaWdpbmFsSGVhZGVycygpLEN9cmV0dXJuIGZ1bmN0aW9uIG1RZShkLGcsaCl7ZyYmR0NlKGQucHJvdG90eXBlLGcpLGgmJkdDZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJw''@;'; put 'put ''cm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJleHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEk9W10sWj1bXTtHbCh7cm93SGVhZGVyczoiaHRSb3dIZWFkZXJzIixjb2x1bW5IZWFkZXJzOiJodENvbHVtbkhlYWRlcnMifSxm''@;'; put 'put ''dW5jdGlvbih1ZSxfZSl7eS53dFNldHRpbmdzLmdldFNldHRpbmcoX2UpLmxlbmd0aCYmWi5wdXNoKHVlKSxJLnB1c2godWUpfSkscGwodGhpcy53dFRhYmxlLnd0Um9vdEVsZW1lbnQucGFyZW50Tm9kZSxJKSxPMCh0aGlzLnd0VGFibGUud3RSb290RWxlbWVudC5wYXJlbnROb2RlLFopfX0s''@;'; put 'put ''e2tleToiZ2V0Vmlld3BvcnREYW8iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57Z2V0IHdvdCgpe3JldHVybiB5fSxnZXQgdG9wT3ZlcmxheVRyaW1taW5nQ29udGFpbmVyKCl7cmV0dXJuIHkud3RPdmVybGF5cy50b3BPdmVybGF5LnRyaW1taW5nQ29udGFpbmVyfSxnZXQg''@;'; put 'put ''aW5saW5lU3RhcnRPdmVybGF5VHJpbW1pbmdDb250YWluZXIoKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS50cmltbWluZ0NvbnRhaW5lcn0sZ2V0IHRvcFNjcm9sbFBvc2l0aW9uKCl7cmV0dXJuIHkud3RPdmVybGF5cy50b3BPdmVybGF5LmdldFNjcm9sbFBvc2l0''@;'; put 'put ''aW9uKCl9LGdldCB0b3BQYXJlbnRPZmZzZXQoKXtyZXR1cm4geS53dE92ZXJsYXlzLnRvcE92ZXJsYXkuZ2V0VGFibGVQYXJlbnRPZmZzZXQoKX0sZ2V0IGlubGluZVN0YXJ0U2Nyb2xsUG9zaXRpb24oKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRTY3JvbGxQ''@;'; put 'put ''b3NpdGlvbigpfSxnZXQgaW5saW5lU3RhcnRQYXJlbnRPZmZzZXQoKXtyZXR1cm4geS53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5nZXRUYWJsZVBhcmVudE9mZnNldCgpfSxnZXQgdG9wT3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMudG9wT3ZlcmxheX0sZ2V0IGlubGluZVN0''@;'; put 'put ''YXJ0T3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5fSxnZXQgYm90dG9tT3ZlcmxheSgpe3JldHVybiB5Lnd0T3ZlcmxheXMuYm90dG9tT3ZlcmxheX19fX1dKSxofShkZGUpO2Z1bmN0aW9uIFdDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsr''@;'; put 'put ''KXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBrUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlv''@;'; put 'put ''biBfUWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksZyBpbnN0YW5jZW9mIGRkZT90aGlzLl93b3Q9Zzp0aGlzLl9pbml0RnJvbVNldHRpbmdzKGcpfXJldHVybiBmdW5j''@;'; put 'put ''dGlvbiBDUWUoZCxnLGgpe2cmJldDZShkLnByb3RvdHlwZSxnKSxoJiZXQ2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiX2luaXRGcm9tU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgpe2guZmFjYWRlPWZ1bmN0aW9u''@;'; put 'put ''KHYpe3ZhciB5PW5ldyBkKHYpO3JldHVybiBmdW5jdGlvbigpe3JldHVybiB5fX0sdGhpcy5fd290PW5ldyBiUWUoaC50YWJsZSxoKX19LHtrZXk6Imd1aWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZ3VpZH19LHtrZXk6InJvb3REb2N1bWVudCIsZ2V0OmZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIHRoaXMuX3dvdC5kb21CaW5kaW5ncy5yb290RG9jdW1lbnR9fSx7a2V5OiJyb290V2luZG93IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmRvbUJpbmRpbmdzLnJvb3RXaW5kb3d9fSx7a2V5OiJ3dFNldHRpbmdzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5f''@;'; put 'put ''d290Lnd0U2V0dGluZ3N9fSx7a2V5OiJjbG9uZVNvdXJjZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZVNvdXJjZX19LHtrZXk6ImNsb25lT3ZlcmxheSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5jbG9uZU92ZXJsYXl9fSx7a2V5OiJzZWxlY3Rpb25z''@;'; put 'put ''IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LnNlbGVjdGlvbnN9fSx7a2V5OiJ3dFZpZXdwb3J0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0Vmlld3BvcnR9fSx7a2V5OiJ3dE92ZXJsYXlzIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0T3Zl''@;'; put 'put ''cmxheXN9fSx7a2V5OiJ3dFRhYmxlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0VGFibGV9fSx7a2V5OiJ3dEV2ZW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lnd0RXZlbnR9fSx7a2V5OiJ3dFNjcm9sbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''X3dvdC53dFNjcm9sbH19LHtrZXk6ImRyYXduIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmRyYXdufSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LmRyYXduPWh9fSx7a2V5OiJkcmF3SW50ZXJydXB0ZWQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZHJhd0lu''@;'; put 'put ''dGVycnVwdGVkfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LmRyYXdJbnRlcnJ1cHRlZD1ofX0se2tleToibGFzdE1vdXNlT3ZlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5sYXN0TW91c2VPdmVyfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290Lmxhc3RNb3VzZU92ZXI9''@;'; put 'put ''aH19LHtrZXk6Im1vbWVudHVtU2Nyb2xsaW5nIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290Lm1vbWVudHVtU2Nyb2xsaW5nfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290Lm1vbWVudHVtU2Nyb2xsaW5nPWh9fSx7a2V5OiJ0b3VjaEFwcGxpZWQiLGdldDpmdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiB0aGlzLl93b3QudG91Y2hBcHBsaWVkfSxzZXQ6ZnVuY3Rpb24oaCl7dGhpcy5fd290LnRvdWNoQXBwbGllZD1ofX0se2tleToiZG9tQmluZGluZ3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZG9tQmluZGluZ3N9fSx7a2V5OiJldmVudExpc3RlbmVycyIsZ2V0OmZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dvdC5ldmVudExpc3RlbmVyc30sc2V0OmZ1bmN0aW9uKGgpe3RoaXMuX3dvdC5ldmVudExpc3RlbmVycz1ofX0se2tleToiZXZlbnRNYW5hZ2VyIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd290LmV2ZW50TWFuYWdlcn19LHtrZXk6ImNyZWF0''@;'; put 'put ''ZUNlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIHRoaXMuX3dvdC5jcmVhdGVDZWxsQ29vcmRzKGgsdil9fSx7a2V5OiJjcmVhdGVDZWxsUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd290LmNyZWF0ZUNlbGxSYW5nZShoLHYseSl9fSx7a2V5''@;'; put 'put ''OiJkcmF3Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuX3dvdC5kcmF3KGgpLHRoaXN9fSx7a2V5OiJnZXRDZWxsIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVu''@;'; put 'put ''dHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiB0aGlzLl93b3QuZ2V0Q2VsbChoLHYpfX0se2tleToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3dvdC5zY3JvbGxWaWV3cG9ydChoLHYs''@;'; put 'put ''eSxDLEkpfX0se2tleToic2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd290LnNjcm9sbFZpZXdwb3J0SG9yaXpvbnRhbGx5KGgsdix5KX19LHtrZXk6InNjcm9sbFZpZXdwb3J0VmVydGljYWxseSIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''aCx2LHkpe3JldHVybiB0aGlzLl93b3Quc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGgsdix5KX19LHtrZXk6ImdldFZpZXdwb3J0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZ2V0Vmlld3BvcnQoKX19LHtrZXk6ImdldE92ZXJsYXlOYW1lIix2YWx1ZTpmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiB0aGlzLl93b3QuY2xvbmVPdmVybGF5P3RoaXMuX3dvdC5jbG9uZU92ZXJsYXkudHlwZToibWFzdGVyIn19LHtrZXk6ImV4cG9ydFNldHRpbmdzQXNDbGFzc05hbWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93b3QuZXhwb3J0U2V0dGluZ3NBc0NsYXNzTmFtZXMo''@;'; put 'put ''KX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gdGhpcy5fd290Lnd0U2V0dGluZ3MudXBkYXRlKGgsdiksdGhpc319LHtrZXk6ImdldFNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSl7cmV0dXJuIHRoaXMuX3dvdC53dFNldHRpbmdzLmdldFNldHRp''@;'; put 'put ''bmcoaCx2LHksQyxJKX19LHtrZXk6Imhhc1NldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLl93b3Qud3RTZXR0aW5ncy5oYXNTZXR0aW5nKGgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl93b3QuZGVzdHJveSgpfX1dKSxkfSgpO2Z1bmN0aW9u''@;'; put 'put ''IFlDZShkKXt2YXIgZz1kLmlzU2hpZnRLZXksaD1kLmlzTGVmdENsaWNrLHY9ZC5pc1JpZ2h0Q2xpY2sseT1kLmNvb3JkcyxDPWQuc2VsZWN0aW9uLEk9ZC5jb250cm9sbGVyLFo9ZC5jZWxsQ29vcmRzRmFjdG9yeSx1ZT1DLmlzU2VsZWN0ZWQoKT9DLmdldFNlbGVjdGVkUmFuZ2UoKS5jdXJy''@;'; put 'put ''ZW50KCk6bnVsbCxfZT1DLmlzU2VsZWN0ZWRCeUNvcm5lcigpLEJlPUMuaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCk7aWYoZyYmdWUpeS5yb3c+PTAmJnkuY29sPj0wJiYhSS5jZWxsP0Muc2V0UmFuZ2VFbmQoeSk6KF9lfHxCZSkmJnkucm93Pj0wJiZ5LmNvbD49MCYmIUkuY2VsbD9DLnNldFJh''@;'; put 'put ''bmdlRW5kKFooeS5yb3cseS5jb2wpKTpfZSYmeS5yb3c8MCYmIUkuY29sdW1uP0Muc2V0UmFuZ2VFbmQoWih1ZS50by5yb3cseS5jb2wpKTpCZSYmeS5jb2w8MCYmIUkucm93P0Muc2V0UmFuZ2VFbmQoWih5LnJvdyx1ZS50by5jb2wpKTooIV9lJiYhQmUmJnkuY29sPDB8fF9lJiZ5LmNvbDww''@;'; put 'put ''KSYmIUkucm93P0Muc2VsZWN0Um93cyhNYXRoLm1heCh1ZS5mcm9tLnJvdywwKSx5LnJvdyx5LmNvbCk6KCFfZSYmIUJlJiZ5LnJvdzwwfHxCZSYmeS5yb3c8MCkmJiFJLmNvbHVtbiYmQy5zZWxlY3RDb2x1bW5zKE1hdGgubWF4KHVlLmZyb20uY29sLDApLHkuY29sLHkucm93KTtlbHNle3Zh''@;'; put 'put ''ciBOZT0hQy5pbkluU2VsZWN0aW9uKHkpLEtlPWh8fHYmJk5lO3kucm93PDAmJnkuY29sPj0wJiYhSS5jb2x1bW4/S2UmJkMuc2VsZWN0Q29sdW1ucyh5LmNvbCx5LmNvbCx5LnJvdyk6eS5jb2w8MCYmeS5yb3c+PTAmJiFJLnJvdz9LZSYmQy5zZWxlY3RSb3dzKHkucm93LHkucm93LHkuY29s''@;'; put 'put ''KTp5LmNvbD49MCYmeS5yb3c+PTAmJiFJLmNlbGw/S2UmJkMuc2V0UmFuZ2VTdGFydCh5KTp5LmNvbDwwJiZ5LnJvdzwwJiZDLnNlbGVjdEFsbCghMCwhMCl9fXZhciBNUWU9bmV3IE1hcChbWyJtb3VzZWRvd24iLFlDZV0sWyJtb3VzZW92ZXIiLGZ1bmN0aW9uIFNRZShkKXt2YXIgaD1kLmNv''@;'; put 'put ''b3Jkcyx2PWQuc2VsZWN0aW9uLHk9ZC5jb250cm9sbGVyLEM9ZC5jZWxsQ29vcmRzRmFjdG9yeTtpZihkLmlzTGVmdENsaWNrKXt2YXIgST12LmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpLFo9di5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKSx1ZT12LnRhYmxlUHJvcHMuY291bnRDb2xzKCks''@;'; put 'put ''X2U9di50YWJsZVByb3BzLmNvdW50Um93cygpO1omJiF5LmNvbHVtbj92LnNldFJhbmdlRW5kKEMoX2UtMSxoLmNvbCkpOkkmJiF5LnJvdz92LnNldFJhbmdlRW5kKEMoaC5yb3csdWUtMSkpOnkuY2VsbHx8di5zZXRSYW5nZUVuZChoKX19XSxbInRvdWNoc3RhcnQiLFlDZV1dKTtmdW5jdGlv''@;'; put 'put ''biBVQ2UoZCxnKXt2YXIgaD1nLmNvb3Jkcyx2PWcuc2VsZWN0aW9uLHk9Zy5jb250cm9sbGVyLEM9Zy5jZWxsQ29vcmRzRmFjdG9yeTtNUWUuZ2V0KGQudHlwZSkoe2Nvb3JkczpoLHNlbGVjdGlvbjp2LGNvbnRyb2xsZXI6eSxjZWxsQ29vcmRzRmFjdG9yeTpDLGlzU2hpZnRLZXk6ZC5zaGlm''@;'; put 'put ''dEtleSxpc0xlZnRDbGljazpvZWUoZCl8fCJ0b3VjaHN0YXJ0Ij09PWQudHlwZSxpc1JpZ2h0Q2xpY2s6RXcoZCl9KX12YXIgUUNlPW5ldyBXZWFrTWFwLHpkZT1TeW1ib2woInJvb3RJbnN0YW5jZSIpO2Z1bmN0aW9uIEVRZShkKXtRQ2Uuc2V0KGQsITApfWZ1bmN0aW9uIHhRZShkKXtyZXR1''@;'; put 'put ''cm4gZD09PXpkZX1mdW5jdGlvbiBHZGUoZCl7cmV0dXJuIFFDZS5oYXMoZCl9ZnVuY3Rpb24gS1ooZCxnKXtyZXR1cm4gZnVuY3Rpb24gRFFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBJUWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5l''@;'; put 'put ''ZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9''@;'; put 'put ''PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxYQ2UoZCxnKXx8ZnVuY3Rpb24gVFFlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxp''@;'; put 'put ''ZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBKQ2UoZCl7cmV0dXJuIGZ1bmN0''@;'; put 'put ''aW9uIFJRZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBXZGUoZCl9KGQpfHxmdW5jdGlvbiBPUWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQp''@;'; put 'put ''fShkKXx8WENlKGQpfHxmdW5jdGlvbiBMUWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0''@;'; put 'put ''ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBYQ2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFdkZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0''@;'; put 'put ''b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gV2RlKGQsZyl9fWZ1bmN0aW9u''@;'; put 'put ''IFdkZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEtDZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVy''@;'; put 'put ''YWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBCUz1uZXcgV2Vha01hcCxGUWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBCUWUo''@;'; put 'put ''ZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5pbnN0YW5jZT1nLHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBMMShnKSx0aGlzLnNldHRpbmdzPWcuZ2V0U2V0dGluZ3Mo''@;'; put 'put ''KSx0aGlzLlRIRUFEPXZvaWQgMCx0aGlzLlRCT0RZPXZvaWQgMCx0aGlzLl93dD12b2lkIDAsdGhpcy5hY3RpdmVXdD12b2lkIDAsdGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemU9ITEsQlMuc2V0KHRoaXMse3NlbGVjdGlvbk1vdXNlRG93bjohMSxtb3VzZURvd246dm9pZCAwLHRh''@;'; put 'put ''YmxlOnZvaWQgMCxsYXN0V2lkdGg6MCxsYXN0SGVpZ2h0OjB9KSx0aGlzLmNyZWF0ZUVsZW1lbnRzKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLHRoaXMuaW5pdGlhbGl6ZVdhbGtvbnRhYmxlKCl9cmV0dXJuIGZ1bmN0aW9uIFBRZShkLGcsaCl7ZyYmS0NlKGQucHJvdG90eXBlLGcpLGgmJktD''@;'; put 'put ''ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pbnN0YW5jZS5pc1JlbmRlclN1c3BlbmRlZCgpfHwodGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVuZGVy''@;'; put 'put ''Iix0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlciksdGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemUmJih0aGlzLnBvc3Rwb25lZEFkanVzdEVsZW1lbnRzU2l6ZT0hMSx0aGlzLmFkanVzdEVsZW1lbnRzU2l6ZSghMCkpLHRoaXMuX3d0LmRyYXcoIXRoaXMuaW5zdGFuY2UuZm9y''@;'; put 'put ''Y2VGdWxsUmVuZGVyKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlbmRlciIsdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXIpLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyPSExLHRoaXMuaW5zdGFuY2UucmVuZGVyQ2FsbD0hMSl9fSx7a2V5OiJhZGp1c3RFbGVtZW50''@;'; put 'put ''c1NpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTt0aGlzLmluc3RhbmNlLmlzUmVuZGVyU3VzcGVuZGVkKCk/dGhpcy5wb3N0cG9uZWRBZGp1c3RFbGVtZW50c1NpemU9ITA6dGhpcy5fd3Qu''@;'; put 'put ''d3RPdmVybGF5cy5hZGp1c3RFbGVtZW50c1NpemUoaCl9fSx7a2V5OiJnZXRDZWxsQXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5fd3QuZ2V0Q2VsbChoLHYpO3JldHVybiB5PDA/bnVsbDp5fX0se2tleToic2Nyb2xsVmlld3BvcnQiLHZhbHVlOmZ1bmN0aW9uKGgs''@;'; put 'put ''dix5LEMsSSl7cmV0dXJuIHRoaXMuX3d0LnNjcm9sbFZpZXdwb3J0KGgsdix5LEMsSSl9fSx7a2V5OiJzY3JvbGxWaWV3cG9ydEhvcml6b250YWxseSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3JldHVybiB0aGlzLl93dC5zY3JvbGxWaWV3cG9ydEhvcml6b250YWxseShoLHYseSl9fSx7a2V5''@;'; put 'put ''OiJzY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5fd3Quc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KGgsdix5KX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPUJTLmdldCh0aGlzKSx2PXRoaXMu''@;'; put 'put ''aW5zdGFuY2UseT12LnJvb3RFbGVtZW50LEM9di5yb290RG9jdW1lbnQsST15LmdldEF0dHJpYnV0ZSgic3R5bGUiKTtJJiZ5LnNldEF0dHJpYnV0ZSgiZGF0YS1vcmlnaW5hbHN0eWxlIixJKSxPMCh5LCJoYW5kc29udGFibGUiKSxoLnRhYmxlPUMuY3JlYXRlRWxlbWVudCgiVEFCTEUiKSxP''@;'; put 'put ''MChoLnRhYmxlLCJodENvcmUiKSx0aGlzLmluc3RhbmNlLmdldFNldHRpbmdzKCkudGFibGVDbGFzc05hbWUmJk8wKGgudGFibGUsdGhpcy5pbnN0YW5jZS5nZXRTZXR0aW5ncygpLnRhYmxlQ2xhc3NOYW1lKSx0aGlzLlRIRUFEPUMuY3JlYXRlRWxlbWVudCgiVEhFQUQiKSxoLnRhYmxlLmFw''@;'; put 'put ''cGVuZENoaWxkKHRoaXMuVEhFQUQpLHRoaXMuVEJPRFk9Qy5jcmVhdGVFbGVtZW50KCJUQk9EWSIpLGgudGFibGUuYXBwZW5kQ2hpbGQodGhpcy5UQk9EWSksdGhpcy5pbnN0YW5jZS50YWJsZT1oLnRhYmxlLHRoaXMuaW5zdGFuY2UuY29udGFpbmVyLmluc2VydEJlZm9yZShoLnRhYmxlLHRo''@;'; put 'put ''aXMuaW5zdGFuY2UuY29udGFpbmVyLmZpcnN0Q2hpbGQpfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PUJTLmdldCh0aGlzKSx5PXRoaXMuaW5zdGFuY2UsQz15LnJvb3RFbGVtZW50LEk9eS5yb290RG9jdW1lbnQsWj15LnNlbGVjdGlvbix1''@;'; put 'put ''ZT1JLmRvY3VtZW50RWxlbWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlZG93biIsZnVuY3Rpb24oX2Upe2lmKHYuc2VsZWN0aW9uTW91c2VEb3duPSEwLCFoLmlzVGV4dFNlbGVjdGlvbkFsbG93ZWQoX2UudGFyZ2V0KSl7dmFyIEJlPWguaW5zdGFuY2Uu''@;'; put 'put ''cm9vdFdpbmRvdzttM2UoQmUpLF9lLnByZXZlbnREZWZhdWx0KCksQmUuZm9jdXMoKX19KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNldXAiLGZ1bmN0aW9uKCl7di5zZWxlY3Rpb25Nb3VzZURvd249ITF9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExp''@;'; put 'put ''c3RlbmVyKEMsIm1vdXNlbW92ZSIsZnVuY3Rpb24oX2Upe3Yuc2VsZWN0aW9uTW91c2VEb3duJiYhaC5pc1RleHRTZWxlY3Rpb25BbGxvd2VkKF9lLnRhcmdldCkmJihoLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZtM2UoaC5pbnN0YW5jZS5yb290V2luZG93KSxfZS5wcmV2ZW50RGVm''@;'; put 'put ''YXVsdCgpKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodWUsImtleXVwIixmdW5jdGlvbihfZSl7Wi5pc0luUHJvZ3Jlc3MoKSYmIV9lLnNoaWZ0S2V5JiZaLmZpbmlzaCgpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih1ZSwibW91c2V1cCIsZnVu''@;'; put 'put ''Y3Rpb24oX2Upe1ouaXNJblByb2dyZXNzKCkmJm9lZShfZSkmJlouZmluaXNoKCksdi5tb3VzZURvd249ITEsKEEzZShJLmFjdGl2ZUVsZW1lbnQpfHwhWi5pc1NlbGVjdGVkKCkmJiFaLmlzU2VsZWN0ZWRCeUFueUhlYWRlcigpJiYhQy5jb250YWlucyhfZS50YXJnZXQpJiYhRXcoX2UpKSYm''@;'; put 'put ''aC5pbnN0YW5jZS51bmxpc3RlbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih1ZSwiY29udGV4dG1lbnUiLGZ1bmN0aW9uKF9lKXtaLmlzSW5Qcm9ncmVzcygpJiZFdyhfZSkmJihaLmZpbmlzaCgpLHYubW91c2VEb3duPSExKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFk''@;'; put 'put ''ZEV2ZW50TGlzdGVuZXIodWUsInRvdWNoZW5kIixmdW5jdGlvbigpe1ouaXNJblByb2dyZXNzKCkmJlouZmluaXNoKCksdi5tb3VzZURvd249ITF9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHVlLCJtb3VzZWRvd24iLGZ1bmN0aW9uKF9lKXt2YXIgQmU9X2UudGFyZ2V0''@;'; put 'put ''LE5lPV9lLnh8fF9lLmNsaWVudFgsS2U9X2UueXx8X2UuY2xpZW50WSxwdD1fZS50YXJnZXQ7aWYoIXYubW91c2VEb3duJiZDJiZoLmluc3RhbmNlLnZpZXcpe3ZhciBPdD1oLmluc3RhbmNlLnZpZXcuX3d0Lnd0VGFibGUuaG9sZGVyO2lmKHB0PT09T3Qpe3ZhciAkdD1CYyhJKTtpZihJLmVs''@;'; put 'put ''ZW1lbnRGcm9tUG9pbnQoTmUrJHQsS2UpIT09T3R8fEkuZWxlbWVudEZyb21Qb2ludChOZSxLZSskdCkhPT1PdClyZXR1cm59ZWxzZSBmb3IoO3B0IT09dWU7KXtpZihudWxsPT09cHQpe2lmKF9lLmlzVGFyZ2V0V2ViQ29tcG9uZW50KWJyZWFrO3JldHVybn1pZihwdD09PUMpcmV0dXJuO3B0''@;'; put 'put ''PXB0LnBhcmVudE5vZGV9KCJmdW5jdGlvbiI9PXR5cGVvZiBoLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cz9oLnNldHRpbmdzLm91dHNpZGVDbGlja0Rlc2VsZWN0cyhCZSk6aC5zZXR0aW5ncy5vdXRzaWRlQ2xpY2tEZXNlbGVjdHMpP2guaW5zdGFuY2UuZGVzZWxlY3RDZWxsKCk6''@;'; put 'put ''aC5pbnN0YW5jZS5kZXN0cm95RWRpdG9yKCExLCExKX19KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYudGFibGUsInNlbGVjdHN0YXJ0IixmdW5jdGlvbihfZSl7aC5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbnx8WlooX2UudGFyZ2V0KXx8X2UucHJldmVudERlZmF1''@;'; put 'put ''bHQoKX0pfX0se2tleToidHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY7cmV0dXJuKHY9dGhpcy5pbnN0YW5jZSkuX2NyZWF0ZUNlbGxDb29yZHMuYXBwbHkodixKQ2UodGhpcy50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlz''@;'; put 'put ''dWFsSW5kZXgoaC5yb3csaC5jb2wpKSl9fSx7a2V5OiJ0cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9aD49MD90aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoaCk6aCxD''@;'; put 'put ''PXY+PTA/dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHYpOnY7cmV0dXJuIG51bGw9PT15JiYoeT1oKSxudWxsPT09QyYmKEM9diksW3ksQ119fSx7a2V5OiJjb3VudFJlbmRlcmFibGVJbmRleGVzIix2YWx1ZTpmdW5jdGlvbiho''@;'; put 'put ''LHYpe3ZhciB5PU1hdGgubWluKGguZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKSx2KSxDPWguZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHktMSwtMSk7cmV0dXJuIG51bGw9PT1DPzA6aC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEMpKzF9fSx7a2V5OiJjb3VudFJlbmRlcmFi''@;'; put 'put ''bGVDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvdW50UmVuZGVyYWJsZUluZGV4ZXModGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlcix0aGlzLnNldHRpbmdzLm1heENvbHMpfX0se2tleToiY291bnRSZW5kZXJhYmxlUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5jb3VudFJlbmRlcmFibGVJbmRleGVzKHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsdGhpcy5zZXR0aW5ncy5tYXhSb3dzKX19LHtrZXk6ImNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gdGhpcy5jb3VudE5vdEhpZGRl''@;'; put 'put ''bkluZGV4ZXMoaCx2LHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsdGhpcy5jb3VudFJlbmRlcmFibGVSb3dzKCkpfX0se2tleToiY291bnROb3RIaWRkZW5Db2x1bW5JbmRleGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLmNvdW50Tm90SGlkZGVuSW5kZXhlcyhoLHYs''@;'; put 'put ''dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlcix0aGlzLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMoKSl9fSx7a2V5OiJjb3VudE5vdEhpZGRlbkluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe2lmKGlzTmFOKGgpfHxoPDApcmV0dXJuIDA7dmFyIEk9eS5nZXROZWFyZXN0Tm90''@;'; put 'put ''SGlkZGVuSW5kZXgoaCx2KSxaPXkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJKTtpZighTnVtYmVyLmlzSW50ZWdlcihaKSlyZXR1cm4gMDt2YXIgdWU9MDtyZXR1cm4gdjwwP3VlPVorMTp2PjAmJih1ZT1DLVopLHVlfX0se2tleToiY291bnROb3RIaWRkZW5GaXhlZENvbHVtbnNT''@;'; put 'put ''dGFydCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmluc3RhbmNlLmNvdW50Q29scygpLHY9TWF0aC5taW4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZENvbHVtbnNTdGFydCwxMCksaCktMTtyZXR1cm4gdGhpcy5jb3VudE5vdEhpZGRlbkNvbHVtbkluZGV4ZXModiwtMSl9fSx7''@;'; put 'put ''a2V5OiJjb3VudE5vdEhpZGRlbkZpeGVkUm93c1RvcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmluc3RhbmNlLmNvdW50Um93cygpLHY9TWF0aC5taW4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZFJvd3NUb3AsMTApLGgpLTE7cmV0dXJuIHRoaXMuY291bnROb3RIaWRkZW5S''@;'; put 'put ''b3dJbmRleGVzKHYsLTEpfX0se2tleToiY291bnROb3RIaWRkZW5GaXhlZFJvd3NCb3R0b20iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5pbnN0YW5jZS5jb3VudFJvd3MoKSx2PU1hdGgubWF4KGgtcGFyc2VJbnQodGhpcy5zZXR0aW5ncy5maXhlZFJvd3NCb3R0b20sMTApLDApO3Jl''@;'; put 'put ''dHVybiB0aGlzLmNvdW50Tm90SGlkZGVuUm93SW5kZXhlcyh2LDEpfX0se2tleToiaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY291bnROb3RIaWRkZW5GaXhlZFJvd3NUb3AoKSt0aGlzLmNvdW50Tm90SGlkZGVuRml4''@;'; put 'put ''ZWRSb3dzQm90dG9tKCksdj10aGlzLmNvdW50Tm90SGlkZGVuRml4ZWRDb2x1bW5zU3RhcnQoKTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5jb3VudFJlbmRlcmVkUm93cygpPmgmJnRoaXMuaW5zdGFuY2UuY291bnRSZW5kZXJlZENvbHMoKT52fX0se2tleToiaW5pdGlhbGl6ZVdhbGtvbnRhYmxl''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1CUy5nZXQodGhpcykseT17cnRsTW9kZTp0aGlzLmluc3RhbmNlLmlzUnRsKCksZXh0ZXJuYWxSb3dDYWxjdWxhdG9yOnRoaXMuaW5zdGFuY2UuZ2V0UGx1Z2luKCJhdXRvUm93U2l6ZSIpJiZ0aGlzLmluc3RhbmNlLmdldFBsdWdpbigi''@;'; put 'put ''YXV0b1Jvd1NpemUiKS5pc0VuYWJsZWQoKSx0YWJsZTp2LnRhYmxlLGlzRGF0YVZpZXdJbnN0YW5jZTpmdW5jdGlvbigpe3JldHVybiBHZGUoaC5pbnN0YW5jZSl9LHByZXZlbnRPdmVyZmxvdzpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLnByZXZlbnRPdmVyZmxvd30scHJldmVudFdo''@;'; put 'put ''ZWVsOmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGluZ3MucHJldmVudFdoZWVsfSxzdHJldGNoSDpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLnN0cmV0Y2hIfSxkYXRhOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U7cmV0dXJuKEtlPWguaW5zdGFuY2UpLmdldERhdGFBdENlbGwuYXBwbHko''@;'; put 'put ''S2UsSkNlKGgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbEluZGV4KEJlLE5lKSkpfSx0b3RhbFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gaC5jb3VudFJlbmRlcmFibGVSb3dzKCl9LHRvdGFsQ29sdW1uczpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50UmVuZGVyYWJsZUNvbHVtbnMo''@;'; put 'put ''KX0sZml4ZWRDb2x1bW5zU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gaC5jb3VudE5vdEhpZGRlbkZpeGVkQ29sdW1uc1N0YXJ0KCl9LGZpeGVkUm93c1RvcDpmdW5jdGlvbigpe3JldHVybiBoLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzVG9wKCl9LGZpeGVkUm93c0JvdHRvbTpmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiBoLmNvdW50Tm90SGlkZGVuRml4ZWRSb3dzQm90dG9tKCl9LHNob3VsZFJlbmRlcklubGluZVN0YXJ0T3ZlcmxheTpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLmZpeGVkQ29sdW1uc1N0YXJ0PjB8fHkucm93SGVhZGVycygpLmxlbmd0aD4wfSxzaG91bGRSZW5kZXJUb3BP''@;'; put 'put ''dmVybGF5OmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGluZ3MuZml4ZWRSb3dzVG9wPjB8fHkuY29sdW1uSGVhZGVycygpLmxlbmd0aD4wfSxzaG91bGRSZW5kZXJCb3R0b21PdmVybGF5OmZ1bmN0aW9uKCl7cmV0dXJuIGguc2V0dGluZ3MuZml4ZWRSb3dzQm90dG9tPjB9LG1pblNwYXJlUm93''@;'; put 'put ''czpmdW5jdGlvbigpe3JldHVybiBoLnNldHRpbmdzLm1pblNwYXJlUm93c30scmVuZGVyQWxsUm93czp0aGlzLnNldHRpbmdzLnJlbmRlckFsbFJvd3Mscm93SGVhZGVyczpmdW5jdGlvbigpe3ZhciBCZT1bXTtyZXR1cm4gaC5pbnN0YW5jZS5oYXNSb3dIZWFkZXJzKCkmJkJlLnB1c2goZnVu''@;'; put 'put ''Y3Rpb24oTmUsS2Upe3ZhciBwdD1OZT49MD9oLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoTmUpOk5lO2guYXBwZW5kUm93SGVhZGVyKHB0LEtlKX0pLGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzIixC''@;'; put 'put ''ZSksQmV9LGNvbHVtbkhlYWRlcnM6ZnVuY3Rpb24oKXt2YXIgQmU9W107cmV0dXJuIGguaW5zdGFuY2UuaGFzQ29sSGVhZGVycygpJiZCZS5wdXNoKGZ1bmN0aW9uKE5lLEtlKXt2YXIgcHQ9TmU+PTA/aC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJs''@;'; put 'put ''ZUluZGV4KE5lKTpOZTtoLmFwcGVuZENvbEhlYWRlcihwdCxLZSl9KSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVycyIsQmUpLEJlfSxjb2x1bW5XaWR0aDpmdW5jdGlvbihCZSl7dmFyIE5lPWguaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0''@;'; put 'put ''VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSk7cmV0dXJuIGguaW5zdGFuY2UuZ2V0Q29sV2lkdGgobnVsbD09PU5lP0JlOk5lKX0scm93SGVpZ2h0OmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5pbnN0YW5jZS5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KEJl''@;'; put 'put ''KTtyZXR1cm4gaC5pbnN0YW5jZS5nZXRSb3dIZWlnaHQobnVsbD09PU5lP0JlOk5lKX0sY2VsbFJlbmRlcmVyOmZ1bmN0aW9uKEJlLE5lLEtlKXt2YXIgT3Q9S1ooaC50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoQmUsTmUpLDIpLCR0PU90WzBdLGZuPU90WzFdLExuPWgu''@;'; put 'put ''aW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLCR0LGZuKSxpcj0kdCxtcj1mbjtpZihBcnJheS5pc0FycmF5KExuKSl7dmFyIFNyPUtaKExuLDIpO2lyPVNyWzBdLG1yPVNyWzFdfXZhciB3cj1oLmluc3RhbmNlLmdldENlbGxNZXRhKGlyLG1yKSxRcj1oLmluc3RhbmNl''@;'; put 'put ''LmNvbFRvUHJvcChtcikseWk9aC5pbnN0YW5jZS5nZXREYXRhQXRSb3dQcm9wKGlyLFFyKTtoLmluc3RhbmNlLmhhc0hvb2soImJlZm9yZVZhbHVlUmVuZGVyIikmJih5aT1oLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVWYWx1ZVJlbmRlciIseWksd3IpKSxoLmluc3RhbmNlLnJ1bkhvb2tz''@;'; put 'put ''KCJiZWZvcmVSZW5kZXJlciIsS2UsJHQsZm4sUXIseWksd3IpLGguaW5zdGFuY2UuZ2V0Q2VsbFJlbmRlcmVyKHdyKShoLmluc3RhbmNlLEtlLCR0LGZuLFFyLHlpLHdyKSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlbmRlcmVyIixLZSwkdCxmbixRcix5aSx3cil9LHNlbGVjdGlvbnM6''@;'; put 'put ''dGhpcy5pbnN0YW5jZS5zZWxlY3Rpb24uaGlnaGxpZ2h0LGhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbn0sb25XaW5kb3dSZXNpemU6ZnVuY3Rpb24oKXshaC5pbnN0YW5jZXx8aC5pbnN0YW5jZS5pc0Rlc3Ry''@;'; put 'put ''b3llZHx8aC5pbnN0YW5jZS5yZWZyZXNoRGltZW5zaW9ucygpfSxvbkNlbGxNb3VzZURvd246ZnVuY3Rpb24oQmUsTmUsS2UscHQpe3ZhciBPdD1oLnRyYW5zbGF0ZUZyb21SZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoTmUpLCR0PXtyb3c6ITEsY29sdW1uOiExLGNlbGw6ITF9O2guaW5zdGFu''@;'; put 'put ''Y2UubGlzdGVuKCksaC5hY3RpdmVXdD1wdCx2Lm1vdXNlRG93bj0hMCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLEJlLE90LEtlLCR0KSwhVFMoQmUpJiYoVUNlKEJlLHtjb29yZHM6T3Qsc2VsZWN0aW9uOmguaW5zdGFuY2Uuc2VsZWN0aW9uLGNvbnRyb2xs''@;'; put 'put ''ZXI6JHQsY2VsbENvb3Jkc0ZhY3Rvcnk6ZnVuY3Rpb24oTG4saXIpe3JldHVybiBoLmluc3RhbmNlLl9jcmVhdGVDZWxsQ29vcmRzKExuLGlyKX19KSxoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsQmUsT3QsS2UpLGguYWN0aXZlV3Q9aC5fd3QpfSxvbkNlbGxD''@;'; put 'put ''b250ZXh0TWVudTpmdW5jdGlvbihCZSxOZSxLZSxwdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1wdCx2Lm1vdXNlRG93bj0hMSxoLmluc3RhbmNlLnNlbGVjdGlvbi5pc0luUHJvZ3Jlc3MoKSYmaC5pbnN0YW5jZS5zZWxl''@;'; put 'put ''Y3Rpb24uZmluaXNoKCksaC5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlT25DZWxsQ29udGV4dE1lbnUiLEJlLE90LEtlKSwhVFMoQmUpJiYoaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxDb250ZXh0TWVudSIsQmUsT3QsS2UpLGguYWN0aXZlV3Q9aC5fd3QpfSxvbkNlbGxNb3Vz''@;'; put 'put ''ZU91dDpmdW5jdGlvbihCZSxOZSxLZSxwdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1wdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZU91dCIsQmUsT3QsS2UpLCFUUyhCZSkmJihoLmluc3RhbmNl''@;'; put 'put ''LnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlT3V0IixCZSxPdCxLZSksaC5hY3RpdmVXdD1oLl93dCl9LG9uQ2VsbE1vdXNlT3ZlcjpmdW5jdGlvbihCZSxOZSxLZSxwdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSksJHQ9e3JvdzohMSxjb2x1''@;'; put 'put ''bW46ITEsY2VsbDohMX07aC5hY3RpdmVXdD1wdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLEJlLE90LEtlLCR0KSwhVFMoQmUpJiYodi5tb3VzZURvd24mJlVDZShCZSx7Y29vcmRzOk90LHNlbGVjdGlvbjpoLmluc3RhbmNlLnNlbGVjdGlvbixjb250cm9s''@;'; put 'put ''bGVyOiR0LGNlbGxDb29yZHNGYWN0b3J5OmZ1bmN0aW9uKExuLGlyKXtyZXR1cm4gaC5pbnN0YW5jZS5fY3JlYXRlQ2VsbENvb3JkcyhMbixpcil9fSksaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJPbkNlbGxNb3VzZU92ZXIiLEJlLE90LEtlKSxoLmFjdGl2ZVd0PWguX3d0KX0sb25DZWxs''@;'; put 'put ''TW91c2VVcDpmdW5jdGlvbihCZSxOZSxLZSxwdCl7dmFyIE90PWgudHJhbnNsYXRlRnJvbVJlbmRlcmFibGVUb1Zpc3VhbENvb3JkcyhOZSk7aC5hY3RpdmVXdD1wdCxoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVPbkNlbGxNb3VzZVVwIixCZSxPdCxLZSksIVRTKEJlKSYmIWguaW5zdGFu''@;'; put 'put ''Y2UuaXNEZXN0cm95ZWQmJihoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck9uQ2VsbE1vdXNlVXAiLEJlLE90LEtlKSxoLmFjdGl2ZVd0PWguX3d0KX0sb25DZWxsQ29ybmVyTW91c2VEb3duOmZ1bmN0aW9uKEJlKXtCZS5wcmV2ZW50RGVmYXVsdCgpLGguaW5zdGFuY2UucnVuSG9va3MoImFm''@;'; put 'put ''dGVyT25DZWxsQ29ybmVyTW91c2VEb3duIixCZSl9LG9uQ2VsbENvcm5lckRibENsaWNrOmZ1bmN0aW9uKEJlKXtCZS5wcmV2ZW50RGVmYXVsdCgpLGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyT25DZWxsQ29ybmVyRGJsQ2xpY2siLEJlKX0sYmVmb3JlRHJhdzpmdW5jdGlvbihCZSxOZSl7''@;'; put 'put ''cmV0dXJuIGguYmVmb3JlUmVuZGVyKEJlLE5lKX0sb25EcmF3OmZ1bmN0aW9uKEJlKXtyZXR1cm4gaC5hZnRlclJlbmRlcihCZSl9LG9uU2Nyb2xsVmVydGljYWxseTpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiKX0sb25TY3Jv''@;'; put 'put ''bGxIb3Jpem9udGFsbHk6ZnVuY3Rpb24oKXtyZXR1cm4gaC5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiKX0sb25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lczpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW1vdmVDZWxs''@;'; put 'put ''Q2xhc3NOYW1lcyIpfSxvbkJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlcjpmdW5jdGlvbihCZSxOZSxLZSl7dmFyIHB0PWguaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIsT3Q9cHQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSksJHQ9aC5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3Jl''@;'; put 'put ''SGlnaGxpZ2h0aW5nUm93SGVhZGVyIixPdCxOZSxLZSk7cmV0dXJuIHB0LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgocHQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KCR0LDEpKX0sb25CZWZvcmVIaWdobGlnaHRpbmdDb2x1bW5IZWFkZXI6ZnVuY3Rpb24oQmUsTmUsS2Upe3ZhciBw''@;'; put 'put ''dD1oLmluc3RhbmNlLmNvbHVtbkluZGV4TWFwcGVyLE90PXB0LmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoQmUpLCR0PWguaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZUhpZ2hsaWdodGluZ0NvbHVtbkhlYWRlciIsT3QsTmUsS2UpO3JldHVybiBwdC5nZXRSZW5kZXJhYmxlRnJvbVZp''@;'; put 'put ''c3VhbEluZGV4KHB0LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgkdCwxKSl9LG9uQWZ0ZXJEcmF3U2VsZWN0aW9uOmZ1bmN0aW9uKEJlLE5lLEtlKXt2YXIgcHQsJHQ9S1ooaC50cmFuc2xhdGVGcm9tUmVuZGVyYWJsZVRvVmlzdWFsSW5kZXgoQmUsTmUpLDIpLGZuPSR0WzBdLExuPSR0WzFd''@;'; put 'put ''LGlyPWguaW5zdGFuY2Uuc2VsZWN0aW9uLmdldFNlbGVjdGVkUmFuZ2UoKSxtcj1pci5zaXplKCk7aWYobXI+MCl7dmFyIHdyPWlyLnBlZWtCeUluZGV4KChudWxsIT1LZT9LZTowKSsxLW1yKTtwdD1bd3IuZnJvbS5yb3csd3IuZnJvbS5jb2wsd3IudG8ucm93LHdyLnRvLmNvbF19cmV0dXJu''@;'; put 'put ''IGguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyRHJhd1NlbGVjdGlvbiIsZm4sTG4scHQsS2UpfSxvbkJlZm9yZURyYXdCb3JkZXJzOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9S1ooQmUsNCksT3Q9S2VbMV0sJHQ9S2VbMl0sZm49S2VbM10sTG49W2guaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIu''@;'; put 'put ''Z2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChLZVswXSksaC5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE90KSxoLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoJHQpLGguaW5zdGFu''@;'; put 'put ''Y2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChmbildO3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVEcmF3Qm9yZGVycyIsTG4sTmUpfSxvbkJlZm9yZVRvdWNoU2Nyb2xsOmZ1bmN0aW9uKCl7cmV0dXJuIGguaW5zdGFuY2UucnVuSG9v''@;'; put 'put ''a3MoImJlZm9yZVRvdWNoU2Nyb2xsIil9LG9uQWZ0ZXJNb21lbnR1bVNjcm9sbDpmdW5jdGlvbigpe3JldHVybiBoLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlck1vbWVudHVtU2Nyb2xsIil9LG9uQmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoOmZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9aC5p''@;'; put 'put ''bnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KE5lKTtyZXR1cm4gaC5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixCZSxLZSl9LG9uTW9kaWZ5Um93SGVhZGVyV2lkdGg6ZnVuY3Rpb24oQmUpe3JldHVy''@;'; put 'put ''biBoLmluc3RhbmNlLnJ1bkhvb2tzKCJtb2RpZnlSb3dIZWFkZXJXaWR0aCIsQmUpfSxvbk1vZGlmeUdldENlbGxDb29yZHM6ZnVuY3Rpb24oQmUsTmUsS2Upe3ZhciBwdD1oLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLE90PWguaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIsJHQ9TmU+PTA/''@;'; put 'put ''T3QuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChOZSk6TmUsZm49QmU+PTA/cHQuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleChCZSk6QmUsTG49aC5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5R2V0Q2VsbENvb3JkcyIsZm4sJHQsS2UpO2lmKEFycmF5LmlzQXJyYXkoTG4pKXt2''@;'; put 'put ''YXIgaXI9S1ooTG4sNCksbXI9aXJbMF0sU3I9aXJbMV0sd3I9aXJbMl0sUXI9aXJbM107cmV0dXJuW21yPj0wP3B0LmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgocHQuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KG1yLDEpKTptcixTcj49MD9PdC5nZXRSZW5kZXJhYmxlRnJvbVZpc3Vh''@;'; put 'put ''bEluZGV4KE90LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChTciwxKSk6U3Isd3I+PTA/cHQuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChwdC5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgod3IsLTEpKTp3cixRcj49MD9PdC5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KE90Lmdl''@;'; put 'put ''dE5lYXJlc3ROb3RIaWRkZW5JbmRleChRciwtMSkpOlFyXX19LHZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5zZXR0aW5ncy52aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDtpZigiYXV0byI9PT1OZSYmaC5zZXR0aW5ncy5maXhlZFJvd3NUb3Am''@;'; put 'put ''JihOZT0xMCksTmU+MHx8ImF1dG8iPT09TmUpe3ZhciBLZT1oLmNvdW50UmVuZGVyYWJsZVJvd3MoKSxwdD1CZS5zdGFydFJvdyxPdD1CZS5lbmRSb3c7aWYoIm51bWJlciI9PXR5cGVvZiBOZSlCZS5zdGFydFJvdz1NYXRoLm1heChwdC1OZSwwKSxCZS5lbmRSb3c9TWF0aC5taW4oT3QrTmUs''@;'; put 'put ''S2UtMSk7ZWxzZSBpZigiYXV0byI9PT1OZSl7dmFyICR0PU1hdGguY2VpbChPdC9LZSoxMik7QmUuc3RhcnRSb3c9TWF0aC5tYXgocHQtJHQsMCksQmUuZW5kUm93PU1hdGgubWluKE90KyR0LEtlLTEpfX1oLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92''@;'; put 'put ''ZXJyaWRlIixCZSl9LHZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlOmZ1bmN0aW9uKEJlKXt2YXIgTmU9aC5zZXR0aW5ncy52aWV3cG9ydENvbHVtblJlbmRlcmluZ09mZnNldDtpZigiYXV0byI9PT1OZSYmaC5zZXR0aW5ncy5maXhlZENvbHVtbnNTdGFydCYmKE5lPTEwKSxOZT4w''@;'; put 'put ''fHwiYXV0byI9PT1OZSl7dmFyIEtlPWguY291bnRSZW5kZXJhYmxlQ29sdW1ucygpLHB0PUJlLnN0YXJ0Q29sdW1uLE90PUJlLmVuZENvbHVtbjtpZigibnVtYmVyIj09dHlwZW9mIE5lJiYoQmUuc3RhcnRDb2x1bW49TWF0aC5tYXgocHQtTmUsMCksQmUuZW5kQ29sdW1uPU1hdGgubWluKE90''@;'; put 'put ''K05lLEtlLTEpKSwiYXV0byI9PT1OZSl7dmFyICR0PU1hdGguY2VpbChPdC9LZSo2KTtCZS5zdGFydENvbHVtbj1NYXRoLm1heChwdC0kdCwwKSxCZS5lbmRDb2x1bW49TWF0aC5taW4oT3QrJHQsS2UtMSl9fWguaW5zdGFuY2UucnVuSG9va3MoImFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxh''@;'; put 'put ''dG9yT3ZlcnJpZGUiLEJlKX0scm93SGVhZGVyV2lkdGg6ZnVuY3Rpb24oKXtyZXR1cm4gaC5zZXR0aW5ncy5yb3dIZWFkZXJXaWR0aH0sY29sdW1uSGVhZGVySGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIEJlPWguaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeUNvbHVtbkhlYWRlckhlaWdodCIpO3Jl''@;'; put 'put ''dHVybiBoLnNldHRpbmdzLmNvbHVtbkhlYWRlckhlaWdodHx8QmV9fTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVJbml0V2Fsa29udGFibGUiLHkpLHRoaXMuX3d0PW5ldyBrUWUoeSksdGhpcy5hY3RpdmVXdD10aGlzLl93dDt2YXIgQz10aGlzLl93dC53dFRhYmxlLnNwcmVhZGVy''@;'; put 'put ''LEk9dGhpcy5pbnN0YW5jZS5yb290RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLnNldExhc3RTaXplKEkud2lkdGgsSS5oZWlnaHQpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vkb3duIixmdW5jdGlvbihfZSl7X2UudGFyZ2V0PT09QyYm''@;'; put 'put ''Mz09PV9lLndoaWNoJiZfZS5zdG9wUHJvcGFnYXRpb24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywiY29udGV4dG1lbnUiLGZ1bmN0aW9uKF9lKXtfZS50YXJnZXQ9PT1DJiYzPT09X2Uud2hpY2gmJl9lLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5ldmVudE1h''@;'; put 'put ''bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmluc3RhbmNlLnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsImNsaWNrIixmdW5jdGlvbigpe2guc2V0dGluZ3Mub2JzZXJ2ZURPTVZpc2liaWxpdHkmJmguX3d0LmRyYXdJbnRlcnJ1cHRlZCYmKGguaW5zdGFuY2UuZm9yY2VGdWxsUmVu''@;'; put 'put ''ZGVyPSEwLGgucmVuZGVyKCkpfSl9fSx7a2V5OiJpc1RleHRTZWxlY3Rpb25BbGxvd2VkIix2YWx1ZTpmdW5jdGlvbihoKXtpZihaWihoKSlyZXR1cm4hMDt2YXIgdj1fdyhoLHRoaXMuaW5zdGFuY2Uudmlldy5fd3Qud3RUYWJsZS5zcHJlYWRlcik7cmV0dXJuISEoITA9PT10aGlzLnNldHRp''@;'; put 'put ''bmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ2fHwiY2VsbCI9PT10aGlzLnNldHRpbmdzLmZyYWdtZW50U2VsZWN0aW9uJiZ0aGlzLmlzU2VsZWN0ZWRPbmx5Q2VsbCgpJiZ2fHwhdGhpcy5zZXR0aW5ncy5mcmFnbWVudFNlbGVjdGlvbiYmdGhpcy5pc0NlbGxFZGl0ZWQoKSYmdGhpcy5pc1NlbGVj''@;'; put 'put ''dGVkT25seUNlbGwoKSl9fSx7a2V5OiJpc01vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gQlMuZ2V0KHRoaXMpLm1vdXNlRG93bn19LHtrZXk6ImlzU2VsZWN0ZWRPbmx5Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaCx2O3JldHVybiBudWxsIT09KGg9bnVsbD09PSh2PXRo''@;'; put 'put ''aXMuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSl8fHZvaWQgMD09PXY/dm9pZCAwOnYuaXNTaW5nbGUoKSkmJnZvaWQgMCE9PWgmJmh9fSx7a2V5OiJpc0NlbGxFZGl0ZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5pbnN0YW5jZS5nZXRBY3RpdmVFZGl0b3IoKTtyZXR1''@;'; put 'put ''cm4gaCYmaC5pc09wZW5lZCgpfX0se2tleToiYmVmb3JlUmVuZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2gmJnRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVZpZXdSZW5kZXIiLHRoaXMuaW5zdGFuY2UuZm9yY2VGdWxsUmVuZGVyLHYpfX0se2tleToiYWZ0ZXJSZW5kZXIiLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKGgpe2gmJnRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyVmlld1JlbmRlciIsdGhpcy5pbnN0YW5jZS5mb3JjZUZ1bGxSZW5kZXIpfX0se2tleToiYXBwZW5kUm93SGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHYuZmlyc3RDaGlsZCl7dmFyIHk9di5maXJzdENo''@;'; put 'put ''aWxkO2lmKCF0bCh5LCJyZWxhdGl2ZSIpKXJldHVybiBEcCh2KSx2b2lkIHRoaXMuYXBwZW5kUm93SGVhZGVyKGgsdik7dGhpcy51cGRhdGVDZWxsSGVhZGVyKHkucXVlcnlTZWxlY3RvcigiLnJvd0hlYWRlciIpLGgsdGhpcy5pbnN0YW5jZS5nZXRSb3dIZWFkZXIpfWVsc2V7dmFyIEM9dGhp''@;'; put 'put ''cy5pbnN0YW5jZSxJPUMucm9vdERvY3VtZW50LFo9Qy5nZXRSb3dIZWFkZXIsdWU9SS5jcmVhdGVFbGVtZW50KCJkaXYiKSxfZT1JLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTt1ZS5jbGFzc05hbWU9InJlbGF0aXZlIixfZS5jbGFzc05hbWU9InJvd0hlYWRlciIsdGhpcy51cGRhdGVDZWxsSGVh''@;'; put 'put ''ZGVyKF9lLGgsWiksdWUuYXBwZW5kQ2hpbGQoX2UpLHYuYXBwZW5kQ2hpbGQodWUpfXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Um93SGVhZGVyIixoLHYpfX0se2tleToiYXBwZW5kQ29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHYuZmlyc3RDaGlsZCl7dmFyIHk9''@;'; put 'put ''di5maXJzdENoaWxkO3RsKHksInJlbGF0aXZlIik/dGhpcy51cGRhdGVDZWxsSGVhZGVyKHkucXVlcnlTZWxlY3RvcigiLmNvbEhlYWRlciIpLGgsdGhpcy5pbnN0YW5jZS5nZXRDb2xIZWFkZXIpOihEcCh2KSx0aGlzLmFwcGVuZENvbEhlYWRlcihoLHYpKX1lbHNle3ZhciBDPXRoaXMuaW5z''@;'; put 'put ''dGFuY2Uucm9vdERvY3VtZW50LEk9Qy5jcmVhdGVFbGVtZW50KCJkaXYiKSxaPUMuY3JlYXRlRWxlbWVudCgic3BhbiIpO0kuY2xhc3NOYW1lPSJyZWxhdGl2ZSIsWi5jbGFzc05hbWU9ImNvbEhlYWRlciIsdGhpcy51cGRhdGVDZWxsSGVhZGVyKFosaCx0aGlzLmluc3RhbmNlLmdldENvbEhl''@;'; put 'put ''YWRlciksSS5hcHBlbmRDaGlsZChaKSx2LmFwcGVuZENoaWxkKEkpfXRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyR2V0Q29sSGVhZGVyIixoLHYpfX0se2tleToidXBkYXRlQ2VsbEhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXYsST10aGlzLl93dC53dE92ZXJsYXlz''@;'; put 'put ''LmdldFBhcmVudE92ZXJsYXkoaCl8fHRoaXMuX3d0O2gucGFyZW50Tm9kZSYmKHRsKGgsImNvbEhlYWRlciIpP0M9SS53dFRhYmxlLmNvbHVtbkZpbHRlci5zb3VyY2VUb1JlbmRlcmVkKHYpOnRsKGgsInJvd0hlYWRlciIpJiYoQz1JLnd0VGFibGUucm93RmlsdGVyLnNvdXJjZVRvUmVuZGVy''@;'; put 'put ''ZWQodikpKSxDPi0xP2t3KGgseSh2KSk6KFN3KGgsU3RyaW5nLmZyb21DaGFyQ29kZSgxNjApKSxPMChoLCJjb3JuZXJIZWFkZXIiKSl9fSx7a2V5OiJtYXhpbXVtVmlzaWJsZUVsZW1lbnRXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHk9dGhpcy5fd3Qud3RWaWV3cG9ydC5nZXRXb3Jr''@;'; put 'put ''c3BhY2VXaWR0aCgpLWg7cmV0dXJuIHk+MD95OjB9fSx7a2V5OiJtYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB5PXRoaXMuX3d0Lnd0Vmlld3BvcnQuZ2V0V29ya3NwYWNlSGVpZ2h0KCktaDtyZXR1cm4geT4wP3k6MH19LHtrZXk6InNldExhc3RT''@;'; put 'put ''aXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PUJTLmdldCh0aGlzKSxDPVtoLHZdO3kubGFzdFdpZHRoPUNbMF0seS5sYXN0SGVpZ2h0PUNbMV19fSx7a2V5OiJnZXRMYXN0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1CUy5nZXQodGhpcyk7cmV0dXJue3dpZHRoOmgubGFzdFdp''@;'; put 'put ''ZHRoLGhlaWdodDpoLmxhc3RIZWlnaHR9fX0se2tleToiZ2V0Rmlyc3RGdWxseVZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0''@;'; put 'put ''U2Nyb2xsLmdldEZpcnN0VmlzaWJsZVJvdygpKX19LHtrZXk6ImdldExhc3RGdWxseVZpc2libGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNlLnZpZXcuX3d0''@;'; put 'put ''Lnd0U2Nyb2xsLmdldExhc3RWaXNpYmxlUm93KCkpfX0se2tleToiZ2V0Rmlyc3RGdWxseVZpc2libGVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0aGlzLmluc3RhbmNl''@;'; put 'put ''LnZpZXcuX3d0Lnd0U2Nyb2xsLmdldEZpcnN0VmlzaWJsZUNvbHVtbigpKX19LHtrZXk6ImdldExhc3RGdWxseVZpc2libGVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh0''@;'; put 'put ''aGlzLmluc3RhbmNlLnZpZXcuX3d0Lnd0U2Nyb2xsLmdldExhc3RWaXNpYmxlQ29sdW1uKCkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl93dC5kZXN0cm95KCksdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpfX1dKSxkfSgpO2NvbnN0IEhRZT1GUWU7dmFyICRa''@;'; put 'put ''PUxwKCJjZWxsVHlwZXMiKSxOUWU9JFoucmVnaXN0ZXIsVlFlPSRaLmdldEl0ZW0sJENlPSRaLmhhc0l0ZW0salFlPSRaLmdldE5hbWVzO2Z1bmN0aW9uIFplZShkKXtpZighJENlKGQpKXRocm93IEVycm9yKCdZb3UgZGVjbGFyZWQgY2VsbCB0eXBlICInLmNvbmNhdChkLCciIGFzIGEgc3Ry''@;'; put 'put ''aW5nIHRoYXQgaXMgbm90IG1hcHBlZCB0byBhIGtub3duIG9iamVjdC5cbiAgICAgICAgICAgICAgICAgQ2VsbCB0eXBlIG11c3QgYmUgYW4gb2JqZWN0IG9yIGEgc3RyaW5nIG1hcHBlZCB0byBhbiBvYmplY3QgcmVnaXN0ZXJlZCBieVxuICAgICAgICAgICAgICAgICAiSGFuZHNvbnRhYmxl''@;'; put 'put ''LmNlbGxUeXBlcy5yZWdpc3RlckNlbGxUeXBlIiBtZXRob2QnKSk7cmV0dXJuIFZRZShkKX1mdW5jdGlvbiBrOChkLGcpeyJzdHJpbmciIT10eXBlb2YgZCYmKGQ9KGc9ZCkuQ0VMTF9UWVBFKTt2YXIgdj1nLmVkaXRvcix5PWcucmVuZGVyZXIsQz1nLnZhbGlkYXRvcjt2JiZzZChkLHYpLHkm''@;'; put 'put ''Jk1nKGQseSksQyYmZ08oZCxDKSxOUWUoZCxnKX1mdW5jdGlvbiBZZGUoZCl7cmV0dXJuKFlkZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBn''@;'; put 'put ''JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBxQ2U9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIixVZGU9cUNlLmxlbmd0aDtmdW5jdGlvbiB6ZWUoZCl7''@;'; put 'put ''Zm9yKHZhciB2LGc9ZCsxLGg9IiI7Zz4wOyl2PShnLTEpJVVkZSxoPVN0cmluZy5mcm9tQ2hhckNvZGUoNjUrdikraCxnPXBhcnNlSW50KChnLXYpL1VkZSwxMCk7cmV0dXJuIGh9ZnVuY3Rpb24gWlFlKGQpe3ZhciBnPTA7aWYoZClmb3IodmFyIGg9MCx2PWQubGVuZ3RoLTE7aDxkLmxlbmd0''@;'; put 'put ''aDtoKz0xLHYtPTEpZys9TWF0aC5wb3coVWRlLHYpKihxQ2UuaW5kZXhPZihkW2hdKSsxKTtyZXR1cm4gZy0xfWZ1bmN0aW9uIHpRZSgpe3ZhciB2LHksZD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MTAwLGc9YXJndW1lbnRzLmxlbmd0''@;'; put 'put ''aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjQsaD1bXTtmb3Iodj0wO3Y8ZDt2Kyspe3ZhciBDPVtdO2Zvcih5PTA7eTxnO3krKylDLnB1c2goemVlKHkpKyh2KzEpKTtoLnB1c2goQyl9cmV0dXJuIGh9ZnVuY3Rpb24gR1FlKCl7dmFyIHYseSxkPWFyZ3VtZW50cy5s''@;'; put 'put ''ZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToxMDAsZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06NCxoPVtdO2Zvcih2PTA7djxkO3YrKyl7dmFyIEM9e307Zm9yKHk9MDt5PGc7eSsrKUNbInByb3AiLmNv''@;'; put 'put ''bmNhdCh5KV09emVlKHkpKyh2KzEpO2gucHVzaChDKX1yZXR1cm4gaH1mdW5jdGlvbiBXUWUoZCxnKXtmb3IodmFyIHYsaD1bXSx5PTA7eTxkO3krKyl7dj1bXTtmb3IodmFyIEM9MDtDPGc7QysrKXYucHVzaCgiIik7aC5wdXNoKHYpfXJldHVybiBofWZ1bmN0aW9uIHFaKGQsZyl7dmFyIGg9''@;'; put 'put ''dm9pZCAwPT09Z3x8ZztyZXR1cm4gZnVuY3Rpb24oeSxDKXtyZXR1cm4gZnVuY3Rpb24gSShaKXtpZihaKXtpZihvMShaLGQpJiZ2b2lkIDAhPT1aW2RdKXJldHVybiBaW2RdO2lmKG8xKFosInR5cGUiKSYmWi50eXBlKXtpZigic3RyaW5nIiE9dHlwZW9mIFoudHlwZSl0aHJvdyBuZXcgRXJy''@;'; put 'put ''b3IoJ0NlbGwgInR5cGUiIG11c3QgYmUgYSBzdHJpbmcnKTt2YXIgdWU9WmVlKFoudHlwZSk7aWYobzEodWUsZCkpcmV0dXJuIHVlW2RdO2lmKGgpcmV0dXJufXJldHVybiBJKE9iamVjdC5nZXRQcm90b3R5cGVPZihaKSl9fSgibnVtYmVyIj09dHlwZW9mIHk/dGhpcy5nZXRDZWxsTWV0YSh5''@;'; put 'put ''LEMpOnkpfX1mdW5jdGlvbiBRZGUoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsaD1kLHY9W107cmV0dXJuKCFBcnJheS5pc0FycmF5KGQpfHwhQXJyYXkuaXNBcnJheShkWzBdKSkmJihoPVtkXSksaC5mb3JFYWNoKGZ1''@;'; put 'put ''bmN0aW9uKHksQyl7QXJyYXkuaXNBcnJheSh5KT95LmZvckVhY2goZnVuY3Rpb24oSSxaKXt2LnB1c2goW0MrZyxaLEldKX0pOk9iamVjdC5rZXlzKHkpLmZvckVhY2goZnVuY3Rpb24oSSl7di5wdXNoKFtDK2csSSx5W0ldXSl9KX0pLHZ9ZnVuY3Rpb24gSmRlKGQpe3ZhciBnPTA7cmV0dXJu''@;'; put 'put ''IEFycmF5LmlzQXJyYXkoZCkmJihkWzBdJiZBcnJheS5pc0FycmF5KGRbMF0pP2c9ZFswXS5sZW5ndGg6ZFswXSYmeGwoZFswXSkmJihnPUpxKGRbMF0pKSksZ31mdW5jdGlvbiBla2UoZCl7cmV0dXJuISEoQXJyYXkuaXNBcnJheShkKSYmZC5sZW5ndGgmJmQuZXZlcnkoZnVuY3Rpb24oZyl7''@;'; put 'put ''cmV0dXJuIEFycmF5LmlzQXJyYXkoZyl9KSl9ZnVuY3Rpb24gdGtlKGQpe3JldHVybiEhKEFycmF5LmlzQXJyYXkoZCkmJmQubGVuZ3RoJiZkLmV2ZXJ5KGZ1bmN0aW9uKGcpe3JldHVybiJvYmplY3QiPT09WWRlKGcpJiYhQXJyYXkuaXNBcnJheShnKSYmbnVsbCE9PWd9KSl9ZnVuY3Rpb24g''@;'; put 'put ''WVFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbmtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVy''@;'; put 'put ''YWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFFRZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVu''@;'; put 'put ''dHNbMV0/YXJndW1lbnRzWzFdOltdO1lRZSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5kYXRhPWgsdGhpcy5kYXRhVHlwZT0iYXJyYXkiLHRoaXMuY29sVG9Qcm9wPWZ1bmN0aW9uKCl7fSx0aGlzLnByb3BUb0NvbD1mdW5jdGlvbigpe319cmV0dXJuIGZ1bmN0aW9uIFVRZShkLGcsaCl7ZyYm''@;'; put 'put ''bmtlKGQucHJvdG90eXBlLGcpLGgmJm5rZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJtb2RpZnlSb3dEYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gdGhpcy5ob3QuaGFzSG9vaygibW9kaWZ5Um93''@;'; put 'put ''RGF0YSIpJiYodj10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5Um93RGF0YSIsaCkpLHZvaWQgMD09PXZ8fE51bWJlci5pc0ludGVnZXIodik/dGhpcy5kYXRhW2hdOnZ9fSx7a2V5OiJnZXREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09''@;'; put 'put ''YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIHRoaXMuZGF0YSYmMCE9PXRoaXMuZGF0YS5sZW5ndGg/dGhpcy5nZXRCeVJhbmdlKG51bGwsbnVsbCxoKTp0aGlzLmRhdGF9fSx7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmRhdGE9aH19LHtrZXk6ImdldEF0''@;'; put 'put ''Q29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9W107cmV0dXJuIFVyKHRoaXMuZGF0YSxmdW5jdGlvbihDLEkpe3ZhciBaPXYuZ2V0QXRDZWxsKEksaCk7eS5wdXNoKFopfSkseX19LHtrZXk6ImdldEF0Um93Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJ''@;'; put 'put ''PWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM10sWj12b2lkIDA9PT12JiZ2b2lkIDA9PT15LHVlPW51bGwsX2U9bnVsbDtpZih1ZT10aGlzLm1vZGlmeVJvd0RhdGEoaCksQXJyYXkuaXNBcnJheSh1ZSkpX2U9W10sWj91ZS5mb3JFYWNoKGZ1''@;'; put 'put ''bmN0aW9uKEtlLHB0KXtfZVtwdF09Qy5nZXRBdFBoeXNpY2FsQ2VsbChoLHB0LHVlKX0pOmlhKHYseSxmdW5jdGlvbihLZSl7X2VbS2Utdl09Qy5nZXRBdFBoeXNpY2FsQ2VsbChoLEtlLHVlKX0pO2Vsc2UgaWYoeGwodWUpfHxVMih1ZSkpaWYoX2U9ST9bXTp7fSwhWnx8SSl7dmFyIEJlPTAs''@;'; put 'put ''TmU9dGhpcy5jb3VudEZpcnN0Um93S2V5cygpLTE7aWEoQmUsTmUsZnVuY3Rpb24oS2Upe3ZhciBwdD1DLmNvbFRvUHJvcChLZSk7aWYoS2U+PSh2fHxCZSkmJktlPD0oeXx8TmUpJiYhTnVtYmVyLmlzSW50ZWdlcihwdCkpe3ZhciBPdD1DLmdldEF0UGh5c2ljYWxDZWxsKGgscHQsdWUpO0k/''@;'; put 'put ''X2UucHVzaChPdCk6UXEoX2UscHQsT3QpfX0pfWVsc2UgR2wodWUsZnVuY3Rpb24oS2UscHQpe1FxKF9lLHB0LEMuZ2V0QXRQaHlzaWNhbENlbGwoaCxwdCx1ZSkpfSk7cmV0dXJuIF9lfX0se2tleToic2V0QXRDZWxsIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7aWYoIShoPj10aGlzLmNvdW50''@;'; put 'put ''Um93cygpfHx2Pj10aGlzLmNvdW50Rmlyc3RSb3dLZXlzKCkpKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VEYXRhIikpe3ZhciBDPUVTKHkpO3RoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlTb3VyY2VEYXRhIixoLHRoaXMucHJvcFRvQ29sKHYpLEMsInNldCIpLEMuaXNUb3Vj''@;'; put 'put ''aGVkKCkmJih5PUMudmFsdWUpfU51bWJlci5pc0ludGVnZXIodik/dGhpcy5kYXRhW2hdW3ZdPXk6UXEodGhpcy5kYXRhW2hdLHYseSl9fX0se2tleToiZ2V0QXRQaHlzaWNhbENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz1udWxsO2lmKHkmJihDPSJzdHJpbmciPT10eXBlb2Yg''@;'; put 'put ''dj92YmUoeSx2KToiZnVuY3Rpb24iPT10eXBlb2Ygdj92KHkpOnlbdl0pLHRoaXMuaG90Lmhhc0hvb2soIm1vZGlmeVNvdXJjZURhdGEiKSl7dmFyIEk9RVMoQyk7dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZURhdGEiLGgsdGhpcy5jb2xUb1Byb3AodiksSSwiZ2V0IiksSS5pc1Rv''@;'; put 'put ''dWNoZWQoKSYmKEM9SS52YWx1ZSl9cmV0dXJuIEN9fSx7a2V5OiJnZXRBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5tb2RpZnlSb3dEYXRhKGgpO3JldHVybiB0aGlzLmdldEF0UGh5c2ljYWxDZWxsKGgsdGhpcy5jb2xUb1Byb3AodikseSl9fSx7a2V5OiJnZXRCeVJh''@;'; put 'put ''bmdlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCx5PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsLEM9YXJndW1l''@;'; put 'put ''bnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxJPSExLFo9bnVsbCx1ZT1udWxsLF9lPW51bGwsQmU9bnVsbDtudWxsPT09dnx8bnVsbD09PXk/KEk9ITAsWj0wLF9lPXRoaXMuY291bnRSb3dzKCktMSk6KFo9TWF0aC5taW4odi5yb3cseS5yb3cpLHVl''@;'; put 'put ''PU1hdGgubWluKHYuY29sLHkuY29sKSxfZT1NYXRoLm1heCh2LnJvdyx5LnJvdyksQmU9TWF0aC5tYXgodi5jb2wseS5jb2wpKTt2YXIgTmU9W107cmV0dXJuIGlhKFosX2UsZnVuY3Rpb24oS2Upe05lLnB1c2goST9oLmdldEF0Um93KEtlLHZvaWQgMCx2b2lkIDAsQyk6aC5nZXRBdFJvdyhL''@;'; put 'put ''ZSx1ZSxCZSxDKSl9KSxOZX19LHtrZXk6ImNvdW50Um93cyIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC5oYXNIb29rKCJtb2RpZnlTb3VyY2VMZW5ndGgiKSl7dmFyIGg9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeVNvdXJjZUxlbmd0aCIpO2lmKE51bWJlci5pc0ludGVnZXIoaCkp''@;'; put 'put ''cmV0dXJuIGh9cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGh9fSx7a2V5OiJjb3VudEZpcnN0Um93S2V5cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gSmRlKHRoaXMuZGF0YSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGF0YT1udWxsLHRoaXMuaG90PW51bGx9fV0p''@;'; put 'put ''LGR9KCk7Y29uc3QgSlFlPVFRZTtMKDIwMjczKSxMKDU0NzQwKTt2YXIgcmtlPXtfbG9jYWxIb29rczpPYmplY3QuY3JlYXRlKG51bGwpLGFkZExvY2FsSG9vazpmdW5jdGlvbihnLGgpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzW2ddfHwodGhpcy5fbG9jYWxIb29rc1tnXT1bXSksdGhpcy5f''@;'; put 'put ''bG9jYWxIb29rc1tnXS5wdXNoKGgpLHRoaXN9LHJ1bkxvY2FsSG9va3M6ZnVuY3Rpb24oZyxoLHYseSxDLEksWil7aWYodGhpcy5fbG9jYWxIb29rc1tnXSlmb3IodmFyIHVlPXRoaXMuX2xvY2FsSG9va3NbZ10ubGVuZ3RoLF9lPTA7X2U8dWU7X2UrKylpZWUodGhpcy5fbG9jYWxIb29rc1tn''@;'; put 'put ''XVtfZV0sdGhpcyxoLHYseSxDLEksWil9LGNsZWFyTG9jYWxIb29rczpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2NhbEhvb2tzPXt9LHRoaXN9fTtTZyhya2UsIk1JWElOX05BTUUiLCJsb2NhbEhvb2tzIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IHVkPXJrZTtmdW5j''@;'; put 'put ''dGlvbiBLUWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBpa2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5l''@;'; put 'put ''bnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgUFM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1''@;'; put 'put ''bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7S1FlKHRoaXMsZCksdGhpcy5pbmRleGVkVmFsdWVzPVtdLHRoaXMuaW5pdFZhbHVlT3JGbj1nfXJldHVybiBmdW5jdGlvbiAkUWUoZCxnLGgpe2cmJmlrZShkLnByb3RvdHlwZSxnKSxoJiZpa2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; put 'put ''ZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmluZGV4ZWRWYWx1ZXN9fSx7a2V5OiJnZXRWYWx1ZUF0SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuaW5kZXhlZFZhbHVlcztpZiho''@;'; put 'put ''PHYubGVuZ3RoKXJldHVybiB2W2hdfX0se2tleToic2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmluZGV4ZWRWYWx1ZXM9aC5zbGljZSgpLHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9fSx7a2V5OiJzZXRWYWx1ZUF0SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0''@;'; put 'put ''dXJuIGg8dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0aCYmKHRoaXMuaW5kZXhlZFZhbHVlc1toXT12LHRoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIiksITApfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZXREZWZhdWx0VmFsdWVzKCl9fSx7a2V5OiJnZXRMZW5ndGgi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VmFsdWVzKCkubGVuZ3RofX0se2tleToic2V0RGVmYXVsdFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMu''@;'; put 'put ''aW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5pbmRleGVkVmFsdWVzLmxlbmd0aD0wLFUyKHRoaXMuaW5pdFZhbHVlT3JGbik/aWEodi0xLGZ1bmN0aW9uKHkpe3JldHVybiBoLmluZGV4ZWRWYWx1ZXMucHVzaChoLmluaXRWYWx1ZU9yRm4oeSkpfSk6aWEodi0xLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IGguaW5kZXhlZFZhbHVlcy5wdXNoKGguaW5pdFZhbHVlT3JGbil9KSx0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIpfX0se2tleToiaW5pdCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuc2V0RGVmYXVsdFZhbHVlcyhoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImluaXQiKSx0aGlz''@;'; put 'put ''fX0se2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucnVuTG9jYWxIb29rcygiY2hhbmdlIil9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5j''@;'; put 'put ''bGVhckxvY2FsSG9va3MoKSx0aGlzLmluZGV4ZWRWYWx1ZXM9bnVsbCx0aGlzLmluaXRWYWx1ZU9yRm49bnVsbH19XSksZH0oKTtmdW5jdGlvbiBYZGUoZCl7cmV0dXJuIGZ1bmN0aW9uIG5KZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBLZGUoZCl9KGQpfHxmdW5jdGlvbiB0SmUo''@;'; put 'put ''ZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gZUplKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBLZGUo''@;'; put 'put ''ZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVu''@;'; put 'put ''dHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEtkZShkLGcpfX0oZCl8fGZ1bmN0aW9uIHFRZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNl''@;'; put 'put ''LlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEtkZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFy''@;'; put 'put ''cmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uICRkZShkLGcsaCx2KXt2YXIgeT1oLmxlbmd0aD9oWzBdOnZvaWQgMDtyZXR1cm5bXS5jb25jYXQoWGRlKGQuc2xpY2UoMCx5KSksWGRlKGgubWFwKGZ1bmN0aW9uKEMsSSl7cmV0dXJuIFUyKHYpP3YoQyxJKTp2fSkp''@;'; put 'put ''LFhkZSh2b2lkIDA9PT15P1tdOmQuc2xpY2UoeSkpKX1mdW5jdGlvbiBxZGUoZCxnKXtyZXR1cm4gZzQoZCxmdW5jdGlvbihoLHYpe3JldHVybiExPT09Zy5pbmNsdWRlcyh2KX0pfWZ1bmN0aW9uIGU0ZShkKXtyZXR1cm4oZTRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wi''@;'; put 'put ''PT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBn''@;'; put 'put ''fSkoZCl9ZnVuY3Rpb24gckplKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gb2tlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVt''@;'; put 'put ''ZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZXooKXtyZXR1cm4gZXo9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0''@;'; put 'put ''LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PW9KZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sZXou''@;'; put 'put ''YXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIG9KZShkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9RlMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gdDRlKGQsZyl7cmV0dXJuKHQ0ZT1PYmplY3Quc2V0UHJvdG90eXBl''@;'; put 'put ''T2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHNKZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PWU0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcp''@;'; put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gdUplKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRp''@;'; put 'put ''YWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gRlMoZCl7cmV0dXJuKEZTPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0''@;'; put 'put ''LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9QjIoUFMsdWQpO3ZhciBEdz1mdW5jdGlvbihkKXshZnVuY3Rpb24gYUplKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBv''@;'; put 'put ''ciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnQ0''@;'; put 'put ''ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGxKZShkKXt2YXIgZz1mdW5jdGlvbiBjSmUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJv''@;'; put 'put ''eHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1GUyhkKTtpZihnKXt2YXIg''@;'; put 'put ''Qz1GUyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gc0plKHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIHJKZSh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVu''@;'; put 'put ''dHMpfXJldHVybiBmdW5jdGlvbiBpSmUoZCxnLGgpe2cmJm9rZShkLnByb3RvdHlwZSxnKSxoJiZva2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaW5kZXhl''@;'; put 'put ''ZFZhbHVlcz0kZGUodGhpcy5pbmRleGVkVmFsdWVzLDAsQyx0aGlzLmluaXRWYWx1ZU9yRm4pLGV6KEZTKGgucHJvdG90eXBlKSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pbmRleGVkVmFsdWVzPXFkZSh0aGlz''@;'; put 'put ''LmluZGV4ZWRWYWx1ZXMseSksZXooRlMoaC5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19XSksaH0oUFMpO2Z1bmN0aW9uIG40ZShkKXtyZXR1cm4objRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1''@;'; put 'put ''bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gZkplKGQsZyl7aWYo''@;'; put 'put ''IShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gYWtlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5j''@;'; put 'put ''b25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gcjRlKGQsZyl7cmV0dXJuKHI0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlv''@;'; put 'put ''bih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGdKZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PW40ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3Rv''@;'; put 'put ''cnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gbUplKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTty''@;'; put 'put ''ZXR1cm4gZH0oZCl9ZnVuY3Rpb24gR2VlKGQpe3JldHVybihHZWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgV2VlPWZ1bmN0''@;'; put 'put ''aW9uKGQpeyFmdW5jdGlvbiBkSmUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcu''@;'; put 'put ''cHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmcjRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gcEplKGQpe3ZhciBnPWZ1bmN0''@;'; put 'put ''aW9uIHZKZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVl''@;'; put 'put ''T2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUdlZShkKTtpZihnKXt2YXIgQz1HZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2''@;'; put 'put ''LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGdKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIGZKZSh0aGlzLGgpLGcu''@;'; put 'put ''Y2FsbCh0aGlzLHYpfXJldHVybiBmdW5jdGlvbiBoSmUoZCxnLGgpe2cmJmFrZShkLnByb3RvdHlwZSxnKSxoJiZha2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0SGlkZGVuSW5kZXhlcyIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gU3UodGhpcy5nZXRWYWx1ZXMoKSxmdW5jdGlvbih5LEMsSSl7cmV0dXJuIEMmJnkucHVzaChJKSx5fSxbXSl9fV0pLGh9KER3KTtmdW5jdGlvbiBpNGUoZCl7cmV0dXJuIGZ1bmN0aW9uIGJKZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBvNGUoZCl9KGQpfHxm''@;'; put 'put ''dW5jdGlvbiB3SmUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24geUplKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBk''@;'; put 'put ''KXJldHVybiBvNGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQp''@;'; put 'put ''O2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIG80ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEFKZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJh''@;'; put 'put ''YmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIG80ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIg''@;'; put 'put ''aD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIGE0ZShkLGcsaCl7cmV0dXJuW10uY29uY2F0KGk0ZShkLnNsaWNlKDAsZykpLGk0ZShoKSxpNGUoZC5zbGljZShnKSkpfWZ1bmN0aW9uIHR6KGQsZyl7cmV0dXJuIGc0KGQsZnVuY3Rpb24oaCl7''@;'; put 'put ''cmV0dXJuITE9PT1nLmluY2x1ZGVzKGgpfSl9ZnVuY3Rpb24gbDRlKGQsZyl7cmV0dXJuIE9sKGQsZnVuY3Rpb24oaCl7cmV0dXJuIGgtZy5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIHY8aH0pLmxlbmd0aH0pfWZ1bmN0aW9uIHM0ZShkLGcpe3ZhciBoPWdbMF0sdj1nLmxlbmd0aDtyZXR1''@;'; put 'put ''cm4gT2woZCxmdW5jdGlvbih5KXtyZXR1cm4geT49aD95K3Y6eX0pfWZ1bmN0aW9uIHU0ZShkKXtyZXR1cm4odTRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24o''@;'; put 'put ''Zyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gYzRlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9y''@;'; put 'put ''KHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gRUplKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbGtlKGQsZyl7''@;'; put 'put ''Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24geHYoKXty''@;'; put 'put ''ZXR1cm4geHY9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVRKZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5n''@;'; put 'put ''ZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0seHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFRKZShkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UzgoZCkpOyk7cmV0dXJuIGR9ZnVu''@;'; put 'put ''Y3Rpb24gZjRlKGQsZyl7cmV0dXJuKGY0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIExKZShkLGcpe2lmKGcmJigib2JqZWN0Ij09PXU0ZShnKXx8''@;'; put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gc2tlKGQpfWZ1bmN0aW9uIHNrZShkKXtpZih2b2lkIDA9''@;'; put 'put ''PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gUzgoZCl7cmV0dXJuKFM4PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBl''@;'; put 'put ''T2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9ZnVuY3Rpb24gUkplKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFi''@;'; put 'put ''bGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgWWVlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBJSmUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEg''@;'; put 'put ''ZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZjRlKGQs''@;'; put 'put ''Zyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gREplKGQpe3ZhciBnPWZ1bmN0aW9uIE9KZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSly''@;'; put 'put ''ZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVM4KGQpO2lmKGcpe3ZhciBDPVM4''@;'; put 'put ''KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBMSmUodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtFSmUodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0''@;'; put 'put ''aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gUkplKHNrZSh2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQoQykpKSwib3JkZXJPZkluZGV4ZXMiLFtdKSx2fXJldHVybiBmdW5jdGlvbiB4SmUoZCxnLGgpe2cmJmxrZShkLnByb3RvdHlw''@;'; put 'put ''ZSxnKSxoJiZsa2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0VmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7cmV0dXJuIHRoaXMub3JkZXJPZkluZGV4ZXMubWFwKGZ1bmN0aW9uKEMpe3JldHVy''@;'; put 'put ''biB5LmluZGV4ZWRWYWx1ZXNbQ119KX19LHtrZXk6InNldFZhbHVlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5vcmRlck9mSW5kZXhlcz1mdW5jdGlvbiBfSmUoZCl7cmV0dXJuIGZ1bmN0aW9uIE1KZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBjNGUoZCl9KGQpfHxmdW5jdGlv''@;'; put 'put ''biBTSmUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24ga0plKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVy''@;'; put 'put ''biBjNGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJB''@;'; put 'put ''cmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGM0ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIENKZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGlu''@;'; put 'put ''c3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShBcnJheSh5Lmxlbmd0aCkua2V5cygpKSx4dihTOChoLnByb3RvdHlwZSksInNldFZhbHVlcyIsdGhpcykuY2FsbCh0''@;'; put 'put ''aGlzLHkpfX0se2tleToic2V0VmFsdWVBdEluZGV4Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp0aGlzLm9yZGVyT2ZJbmRleGVzLmxlbmd0aDtyZXR1cm4geTx0aGlzLmluZGV4ZWRWYWx1''@;'; put 'put ''ZXMubGVuZ3RoJiYodGhpcy5pbmRleGVkVmFsdWVzW3ldPUMsITE9PT10aGlzLm9yZGVyT2ZJbmRleGVzLmluY2x1ZGVzKHkpJiZ0aGlzLm9yZGVyT2ZJbmRleGVzLnNwbGljZShJLDAseSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiKSwhMCl9fSx7a2V5OiJjbGVhclZhbHVlIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbih5KXt0aGlzLm9yZGVyT2ZJbmRleGVzPXR6KHRoaXMub3JkZXJPZkluZGV4ZXMsW3ldKSxVMih0aGlzLmluaXRWYWx1ZU9yRm4pP3h2KFM4KGgucHJvdG90eXBlKSwic2V0VmFsdWVBdEluZGV4Iix0aGlzKS5jYWxsKHRoaXMseSx0aGlzLmluaXRWYWx1ZU9yRm4oeSkpOnh2''@;'; put 'put ''KFM4KGgucHJvdG90eXBlKSwic2V0VmFsdWVBdEluZGV4Iix0aGlzKS5jYWxsKHRoaXMseSx0aGlzLmluaXRWYWx1ZU9yRm4pfX0se2tleToiZ2V0TGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9yZGVyT2ZJbmRleGVzLmxlbmd0aH19LHtrZXk6InNldERlZmF1bHRWYWx1''@;'; put 'put ''ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuaW5kZXhlZFZhbHVlcy5sZW5ndGg7dGhpcy5vcmRlck9mSW5kZXhlcy5sZW5ndGg9MCx4dihTOChoLnByb3RvdHlwZSksInNldERlZmF1''@;'; put 'put ''bHRWYWx1ZXMiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6Imluc2VydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmluZGV4ZWRWYWx1ZXM9JGRlKHRoaXMuaW5kZXhlZFZhbHVlcywwLEMsdGhpcy5pbml0VmFsdWVPckZuKSx0aGlzLm9yZGVyT2ZJbmRleGVzPXM0ZSh0aGlzLm9yZGVy''@;'; put 'put ''T2ZJbmRleGVzLEMpLHh2KFM4KGgucHJvdG90eXBlKSwiaW5zZXJ0Iix0aGlzKS5jYWxsKHRoaXMseSxDKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5pbmRleGVkVmFsdWVzPXFkZSh0aGlzLmluZGV4ZWRWYWx1ZXMseSksdGhpcy5vcmRlck9mSW5kZXhlcz10eih0''@;'; put 'put ''aGlzLm9yZGVyT2ZJbmRleGVzLHkpLHRoaXMub3JkZXJPZkluZGV4ZXM9bDRlKHRoaXMub3JkZXJPZkluZGV4ZXMseSkseHYoUzgoaC5wcm90b3R5cGUpLCJyZW1vdmUiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6ImdldEVudHJpZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczty''@;'; put 'put ''ZXR1cm4gdGhpcy5vcmRlck9mSW5kZXhlcy5tYXAoZnVuY3Rpb24oQyl7cmV0dXJuW0MseS5nZXRWYWx1ZUF0SW5kZXgoQyldfSl9fV0pLGh9KFBTKTtmdW5jdGlvbiBoNGUoZCl7cmV0dXJuKGg0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5p''@;'; put 'put ''dGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEJK''@;'; put 'put ''ZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHVrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFi''@;'; put 'put ''bGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGQ0ZShkLGcpe3JldHVybihkNGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5k''@;'; put 'put ''KCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBOSmUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1oNGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQg''@;'; put 'put ''Y29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFZKZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4g''@;'; put 'put ''Y2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFVlZShkKXtyZXR1cm4oVWVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFy''@;'; put 'put ''IG56PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBGSmUoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3Jl''@;'; put 'put ''YXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmZDRlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSEplKGQpe3Zh''@;'; put 'put ''ciBnPWZ1bmN0aW9uIGpKZSgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90''@;'; put 'put ''eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVVlZShkKTtpZihnKXt2YXIgQz1VZWUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNv''@;'; put 'put ''bnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIE5KZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07cmV0dXJuIEJKZSh0''@;'; put 'put ''aGlzLGgpLGcuY2FsbCh0aGlzLHYpfXJldHVybiBmdW5jdGlvbiBQSmUoZCxnLGgpe2cmJnVrZShkLnByb3RvdHlwZSxnKSxoJiZ1a2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiZ2V0VHJpbW1lZEluZGV4ZXMiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFN1KHRoaXMuZ2V0VmFsdWVzKCksZnVuY3Rpb24oeSxDLEkpe3JldHVybiBDJiZ5LnB1c2goSSkseX0sW10pfX1dKSxofShEdyksY2tlPW5ldyBNYXAoW1siaGlkaW5nIixXZWVdLFsiaW5kZXgiLFBTXSxbImxpbmtlZFBoeXNpY2FsSW5kZXhUb1ZhbHVl''@;'; put 'put ''IixZZWVdLFsicGh5c2ljYWxJbmRleFRvVmFsdWUiLER3XSxbInRyaW1taW5nIixuel1dKTtmdW5jdGlvbiBwNGUoZCl7cmV0dXJuKHA0ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9m''@;'; put 'put ''IGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGZrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsr''@;'; put 'put ''KXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHJ6KCl7cmV0dXJuIHJ6PSJ1bmRlZmluZWQiIT10eXBl''@;'; put 'put ''b2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1XSmUoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwz''@;'; put 'put ''P2c6dik6Qy52YWx1ZX19LHJ6LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBXSmUoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUhTKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGc0ZShkLGcpe3JldHVybihnNGU9''@;'; put 'put ''T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBRSmUoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1wNGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1''@;'; put 'put ''cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEpKZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhp''@;'; put 'put ''cyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEhTKGQpe3JldHVybihIUz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4g''@;'; put 'put ''aC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBoa2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFlKZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVy''@;'; put 'put ''IGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6''@;'; put 'put ''ITF9KSxnJiZnNGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBVSmUoZCl7dmFyIGc9ZnVuY3Rpb24gWEplKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9SFMoZCk7''@;'; put 'put ''aWYoZyl7dmFyIEM9SFModGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFFKZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBmdW5jdGlvbiB6SmUoZCxnKXtpZigh''@;'; put 'put ''KGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyxmdW5jdGlvbih2KXtyZXR1cm4gdn0pfXJldHVybiBmdW5jdGlvbiBHSmUoZCxnLGgpe2cmJmZrZShkLnByb3RvdHlwZSxn''@;'; put 'put ''KSxoJiZma2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXM0ZSh0aGlzLmluZGV4ZWRWYWx1ZXMsQyk7dGhpcy5pbmRleGVkVmFsdWVzPWE0ZShJLHksQyks''@;'; put 'put ''cnooSFMoaC5wcm90b3R5cGUpLCJpbnNlcnQiLHRoaXMpLmNhbGwodGhpcyx5LEMpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10eih0aGlzLmluZGV4ZWRWYWx1ZXMseSk7dGhpcy5pbmRleGVkVmFsdWVzPWw0ZShDLHkpLHJ6KEhTKGgucHJvdG90eXBlKSwicmVt''@;'; put 'put ''b3ZlIix0aGlzKS5jYWxsKHRoaXMseSl9fV0pLGh9KFBTKTtmdW5jdGlvbiBka2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9''@;'; put 'put ''ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgbTRlPTAsdjRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpeyhmdW5jdGlvbiBLSmUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVu''@;'; put 'put ''Y3Rpb24iKX0pKHRoaXMsZCksdGhpcy5jb2xsZWN0aW9uPW5ldyBNYXB9cmV0dXJuIGZ1bmN0aW9uICRKZShkLGcsaCl7ZyYmZGtlKGQucHJvdG90eXBlLGcpLGgmJmRrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJy''@;'; put 'put ''ZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzOyExPT09dGhpcy5jb2xsZWN0aW9uLmhhcyhoKSYmKHRoaXMuY29sbGVjdGlvbi5zZXQoaCx2KSx2LmFkZExvY2FsSG9vaygiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB5LnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsdil9''@;'; put 'put ''KSxtNGUrPTEpfX0se2tleToidW5yZWdpc3RlciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5jb2xsZWN0aW9uLmdldChoKTtUbyh2KSYmKHYuZGVzdHJveSgpLHRoaXMuY29sbGVjdGlvbi5kZWxldGUoaCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLHYpLG00ZS09MSl9fSx7''@;'; put 'put ''a2V5OiJ1bnJlZ2lzdGVyQWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24odix5KXtyZXR1cm4gaC51bnJlZ2lzdGVyKHkpfSksdGhpcy5jb2xsZWN0aW9uLmNsZWFyKCl9fSx7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGgp''@;'; put 'put ''e3JldHVybiBhMShoKT9BcnJheS5mcm9tKHRoaXMuY29sbGVjdGlvbi52YWx1ZXMoKSk6dGhpcy5jb2xsZWN0aW9uLmdldChoKX19LHtrZXk6ImdldExlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2xsZWN0aW9uLnNpemV9fSx7a2V5OiJyZW1vdmVGcm9tRXZlcnkiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKHYpe3YucmVtb3ZlKGgpfSl9fSx7a2V5OiJpbnNlcnRUb0V2ZXJ5Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuY29sbGVjdGlvbi5mb3JFYWNoKGZ1bmN0aW9uKHkpe3kuaW5zZXJ0KGgsdil9KX19LHtr''@;'; put 'put ''ZXk6ImluaXRFdmVyeSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jb2xsZWN0aW9uLmZvckVhY2goZnVuY3Rpb24odil7di5pbml0KGgpfSl9fV0pLGR9KCk7ZnVuY3Rpb24gQTRlKGQpe3JldHVybihBNGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1i''@;'; put 'put ''b2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlv''@;'; put 'put ''biBwa2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5j''@;'; put 'put ''dGlvbiB5NGUoZCxnKXtyZXR1cm4oeTRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gaVhlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09QTRlKGcpfHwi''@;'; put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBvWGUoZCl7aWYodm9pZCAwPT09ZCl0aHJv''@;'; put 'put ''dyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBRZWUoZCl7cmV0dXJuKFFlZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9m''@;'; put 'put ''LmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfUIyKHY0ZSx1ZCk7dmFyIGdrZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gblhlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBU''@;'; put 'put ''eXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnk0ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHJYZShkKXt2YXIgZz1mdW5jdGlvbiBhWGUoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5j''@;'; put 'put ''b25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4h''@;'; put 'put ''MX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1RZWUoZCk7aWYoZyl7dmFyIEM9UWVlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBpWGUodGhpcyx5KX19KGgpO2Z1''@;'; put 'put ''bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gZVhlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMpKS5tZXJnZWRWYWx1ZXNDYWNo''@;'; put 'put ''ZT1bXSxDLmFnZ3JlZ2F0aW9uRnVuY3Rpb249dixDLmZhbGxiYWNrVmFsdWU9eSxDfXJldHVybiBmdW5jdGlvbiB0WGUoZCxnLGgpe2cmJnBrZShkLnByb3RvdHlwZSxnKSxoJiZwa2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxb''@;'; put 'put ''e2tleToiZ2V0TWVyZ2VkVmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoITA9PT15KXJldHVybiB0aGlzLm1lcmdlZFZhbHVlc0NhY2hlO2lmKDA9PT10aGlzLmdldExlbmd0''@;'; put 'put ''aCgpKXJldHVybltdO2Zvcih2YXIgQz1PbCh0aGlzLmdldCgpLGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmUuZ2V0VmFsdWVzKCl9KSxJPVtdLFo9VG8oQ1swXSkmJkNbMF0ubGVuZ3RofHwwLHVlPTA7dWU8Wjt1ZSs9MSl7Zm9yKHZhciBfZT1bXSxCZT0wO0JlPHRoaXMuZ2V0TGVuZ3RoKCk7QmUr''@;'; put 'put ''PTEpX2UucHVzaChDW0JlXVt1ZV0pO0kucHVzaChfZSl9cmV0dXJuIE9sKEksdGhpcy5hZ2dyZWdhdGlvbkZ1bmN0aW9uKX19LHtrZXk6ImdldE1lcmdlZFZhbHVlQXRJbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmdldE1lcmdlZFZhbHVlcyhDKVt5XTtyZXR1cm4gVG8o''@;'; put 'put ''SSk/STp0aGlzLmZhbGxiYWNrVmFsdWV9fSx7a2V5OiJ1cGRhdGVDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1lcmdlZFZhbHVlc0NhY2hlPXRoaXMuZ2V0TWVyZ2VkVmFsdWVzKCExKX19XSksaH0odjRlKTtmdW5jdGlvbiBta2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2gr''@;'; put 'put ''Kyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB2a2UoZCxnLGgpe2lmKCFnLmhhcyhkKSl0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gIitoKyIgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gZy5nZXQoZCl9dmFyIHc0ZT1uZXcgV2Vha01hcCxBa2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIGxYZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9m''@;'; put 'put ''IGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxmdW5jdGlvbiB1WGUoZCxnLGgpeyhmdW5jdGlvbiBjWGUoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUg''@;'; put 'put ''c2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxnLnNldChkLGgpfSh0aGlzLHc0ZSx7d3JpdGFibGU6ITAsdmFsdWU6W119KX1yZXR1cm4gZnVuY3Rpb24gc1hlKGQsZyxoKXtnJiZta2UoZC5wcm90b3R5cGUsZyksaCYmbWtlKGQsaCksT2JqZWN0LmRl''@;'; put 'put ''ZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InN1YnNjcmliZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGgpLHRoaXMuX3dyaXRlKGZ1bmN0aW9uIGRYZShkLGcpe3JldHVybiBmdW5jdGlvbiBw''@;'; put 'put ''WGUoZCxnKXtyZXR1cm4gZy5nZXQ/Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLHZrZShkLGcsImdldCIpKX0odGhpcyx3NGUpKSx0aGlzfX0se2tleToidW5zdWJzY3JpYmUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucnVuTG9jYWxIb29rcygidW5zdWJzY3JpYmUiKSx0aGlzLmNs''@;'; put 'put ''ZWFyTG9jYWxIb29rcygpLHRoaXN9fSx7a2V5OiJfd3JpdGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLmxlbmd0aD4wJiZ0aGlzLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsaCksdGhpc319LHtrZXk6Il93cml0ZUluaXRpYWxDaGFuZ2VzIix2YWx1ZTpmdW5jdGlvbihoKXshZnVuY3Rp''@;'; put 'put ''b24gZlhlKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gaFhlKGQsZyxoKXtpZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7Zy52YWx1ZT1ofX0oZCx2''@;'; put 'put ''a2UoZCxnLCJzZXQiKSxoKSxofSh0aGlzLHc0ZSxoKX19XSksZH0oKTtmdW5jdGlvbiB5a2UoZCxnKXtmb3IodmFyIGg9W10sdj0wLHk9MDt2PGQubGVuZ3RoJiZ5PGcubGVuZ3RoO3YrKyx5KyspZFt2XSE9PWdbeV0mJmgucHVzaCh7b3A6InJlcGxhY2UiLGluZGV4Onksb2xkVmFsdWU6ZFt2''@;'; put 'put ''XSxuZXdWYWx1ZTpnW3ldfSk7Zm9yKDt2PGcubGVuZ3RoO3YrKyloLnB1c2goe29wOiJpbnNlcnQiLGluZGV4OnYsb2xkVmFsdWU6dm9pZCAwLG5ld1ZhbHVlOmdbdl19KTtmb3IoO3k8ZC5sZW5ndGg7eSsrKWgucHVzaCh7b3A6InJlbW92ZSIsaW5kZXg6eSxvbGRWYWx1ZTpkW3ldLG5ld1Zh''@;'; put 'put ''bHVlOnZvaWQgMH0pO3JldHVybiBofWZ1bmN0aW9uIGdYZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHdrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2''@;'; put 'put ''YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGl6KGQsZyxoKXsoZnVuY3Rpb24gdlhlKGQsZyl7aWYoZy5o''@;'; put 'put ''YXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBCcChkLGcpe3JldHVybiBmdW5jdGlvbiBBWGUoZCxnKXtyZXR1cm4gZy5nZXQ/''@;'; put 'put ''Zy5nZXQuY2FsbChkKTpnLnZhbHVlfShkLGJrZShkLGcsImdldCIpKX1mdW5jdGlvbiBKZWUoZCxnLGgpe3JldHVybiBmdW5jdGlvbiB5WGUoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0''@;'; put 'put ''byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLGJrZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gYmtlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3Rh''@;'; put 'put ''bmNlIik7cmV0dXJuIGcuZ2V0KGQpfUIyKEFrZSx1ZCk7dmFyIF9rZSxYZWU9bmV3IFdlYWtNYXAsb3o9bmV3IFdlYWtNYXAsS2VlPW5ldyBXZWFrTWFwLCRlZT1uZXcgV2Vha01hcCxxZWU9bmV3IFdlYWtNYXAsd1hlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPWFyZ3VtZW50cy5s''@;'; put 'put ''ZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxoPWcuaW5pdGlhbEluZGV4VmFsdWU7Z1hlKHRoaXMsZCksaXoodGhpcyxYZWUse3dyaXRhYmxlOiEwLHZhbHVlOm5ldyBTZXR9KSxpeih0aGlzLG96LHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLGl6KHRoaXMs''@;'; put 'put ''S2VlLHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLGl6KHRoaXMsJGVlLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLGl6KHRoaXMscWVlLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLEplZSh0aGlzLHFlZSxudWxsIT1oJiZoKX1yZXR1cm4gZnVuY3Rpb24gbVhlKGQsZyxoKXtnJiZ3a2UoZC5wcm90''@;'; put 'put ''b3R5cGUsZyksaCYmd2tlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImNyZWF0ZU9ic2VydmVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1uZXcgQWtlO3JldHVybiBCcCh0aGlzLFhlZSkuYWRkKHYpLHYu''@;'; put 'put ''YWRkTG9jYWxIb29rKCJ1bnN1YnNjcmliZSIsZnVuY3Rpb24oKXtCcChoLFhlZSkuZGVsZXRlKHYpfSksdi5fd3JpdGVJbml0aWFsQ2hhbmdlcyh5a2UoQnAodGhpcyxveiksQnAodGhpcyxLZWUpKSksdn19LHtrZXk6ImVtaXQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PUJwKHRoaXMsS2Vl''@;'; put 'put ''KTsoIUJwKHRoaXMsJGVlKXx8QnAodGhpcyxveikubGVuZ3RoIT09aC5sZW5ndGgpJiYoMD09PWgubGVuZ3RoP2g9bmV3IEFycmF5KHYubGVuZ3RoKS5maWxsKEJwKHRoaXMscWVlKSk6SmVlKHRoaXMsb3osbmV3IEFycmF5KGgubGVuZ3RoKS5maWxsKEJwKHRoaXMscWVlKSkpLEJwKHRoaXMs''@;'; put 'put ''JGVlKXx8KEplZSh0aGlzLCRlZSwhMCksdj1CcCh0aGlzLG96KSkpO3ZhciB5PXlrZSh2LGgpO0JwKHRoaXMsWGVlKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3JldHVybiBDLl93cml0ZSh5KX0pLEplZSh0aGlzLEtlZSxoKX19XSksZH0oKTtmdW5jdGlvbiBiNGUoZCl7cmV0dXJuIGZ1bmN0aW9u''@;'; put 'put ''IGtYZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBfNGUoZCl9KGQpfHxmdW5jdGlvbiBDWGUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShk''@;'; put 'put ''KXx8ZnVuY3Rpb24gX1hlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBfNGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9y''@;'; put 'put ''Lm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIF80ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIGJYZSgpe3Rocm93IG5l''@;'; put 'put ''dyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIF80ZShk''@;'; put 'put ''LGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFNYZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQ''@;'; put 'put ''cm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9ZnVuY3Rpb24gQ2tlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2''@;'; put 'put ''LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFNrZSxra2U9bmV3IFNldChbImdldEZpcnN0Tm90SGlkZGVuSW5kZXgiXSksQzRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe3ZhciBnPXRoaXM7KGZ1bmN0aW9uIE1YZShkLGcpe2lmKCEoZCBpbnN0''@;'; put 'put ''YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmluZGV4ZXNTZXF1ZW5jZT1uZXcgaGtlLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbj1uZXcgZ2tlKGZ1bmN0aW9uKGgpe3JldHVybiBoLnNv''@;'; put 'put ''bWUoZnVuY3Rpb24odil7cmV0dXJuITA9PT12fSl9LCExKSx0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uPW5ldyBna2UoZnVuY3Rpb24oaCl7cmV0dXJuIGguc29tZShmdW5jdGlvbih2KXtyZXR1cm4hMD09PXZ9KX0sITEpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uPW5ldyB2NGUsdGhp''@;'; put 'put ''cy5oaWRpbmdDaGFuZ2VzT2JzZXJ2YWJsZT1uZXcgd1hlKHtpbml0aWFsSW5kZXhWYWx1ZTohMX0pLHRoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZT1bXSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT1bXSx0aGlzLmlzQmF0Y2hlZD0hMSx0aGlzLmluZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ9''@;'; put 'put ''ITEsdGhpcy50cmltbWVkSW5kZXhlc0NoYW5nZWQ9ITEsdGhpcy5oaWRkZW5JbmRleGVzQ2hhbmdlZD0hMSx0aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNoZT1bXSx0aGlzLmZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlc0NhY2hlPW5ldyBNYXAsdGhpcy5mcm9tVmlzdWFsVG9S''@;'; put 'put ''ZW5kZXJhYmxlSW5kZXhlc0NhY2hlPW5ldyBNYXAsdGhpcy5pbmRleGVzU2VxdWVuY2UuYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7Zy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSEwLGcudXBkYXRlQ2FjaGUoKSxnLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsZy5pbmRleGVzU2Vx''@;'; put 'put ''dWVuY2UsbnVsbCl9KSx0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKGgpe2cudHJpbW1lZEluZGV4ZXNDaGFuZ2VkPSEwLGcudXBkYXRlQ2FjaGUoKSxnLnJ1bkxvY2FsSG9va3MoImNoYW5nZSIsaCxnLnRyaW1taW5nTWFwc0NvbGxl''@;'; put 'put ''Y3Rpb24pfSksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImNoYW5nZSIsZnVuY3Rpb24oaCl7Zy5oaWRkZW5JbmRleGVzQ2hhbmdlZD0hMCxnLnVwZGF0ZUNhY2hlKCksZy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGgsZy5oaWRpbmdNYXBzQ29sbGVjdGlvbil9KSx0''@;'; put 'put ''aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5hZGRMb2NhbEhvb2soImNoYW5nZSIsZnVuY3Rpb24oaCl7Zy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLGgsZy52YXJpb3VzTWFwc0NvbGxlY3Rpb24pfSl9cmV0dXJuIGZ1bmN0aW9uIEVYZShkLGcsaCl7ZyYmQ2tlKGQucHJvdG90eXBlLGcpLGgm''@;'; put 'put ''JkNrZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzdXNwZW5kT3BlcmF0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQmF0Y2hlZD0hMH19LHtrZXk6InJlc3VtZU9wZXJhdGlvbnMiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KCl7dGhpcy5pc0JhdGNoZWQ9ITEsdGhpcy51cGRhdGVDYWNoZSgpfX0se2tleToiY3JlYXRlQ2hhbmdlc09ic2VydmVyIix2YWx1ZTpmdW5jdGlvbihoKXtpZigiaGlkaW5nIiE9PWgpdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBpbmRleCBtYXAgdHlwZSAiJy5jb25jYXQoaCwnIi4n''@;'; put 'put ''KSk7cmV0dXJuIHRoaXMuaGlkaW5nQ2hhbmdlc09ic2VydmFibGUuY3JlYXRlT2JzZXJ2ZXIoKX19LHtrZXk6ImNyZWF0ZUFuZFJlZ2lzdGVySW5kZXhNYXAiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXtyZXR1cm4gdGhpcy5yZWdpc3Rlck1hcChoLGZ1bmN0aW9uIFpKZShkKXt2YXIgZz1hcmd1''@;'; put 'put ''bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbDtpZighY2tlLmhhcyhkKSl0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwcm92aWRlZCBtYXAgdHlwZSAoIicuY29uY2F0KGQsJyIpIGRvZXMgbm90IGV4aXN0LicpKTtyZXR1cm4gbmV3KGNrZS5nZXQo''@;'; put 'put ''ZCkpKGcpfSh2LHkpKX19LHtrZXk6InJlZ2lzdGVyTWFwIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5nZXQoaCl8fHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24uZ2V0KGgpfHx0aGlzLnZhcmlvdXNNYXBzQ29sbGVjdGlvbi5nZXQoaCkpdGhy''@;'; put 'put ''b3cgRXJyb3IoJ01hcCB3aXRoIG5hbWUgIicuY29uY2F0KGgsJyIgaGFzIGJlZW4gYWxyZWFkeSByZWdpc3RlcmVkLicpKTt2IGluc3RhbmNlb2Ygbno/dGhpcy50cmltbWluZ01hcHNDb2xsZWN0aW9uLnJlZ2lzdGVyKGgsdik6diBpbnN0YW5jZW9mIFdlZT90aGlzLmhpZGluZ01hcHNDb2xs''@;'; put 'put ''ZWN0aW9uLnJlZ2lzdGVyKGgsdik6dGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24ucmVnaXN0ZXIoaCx2KTt2YXIgeT10aGlzLmdldE51bWJlck9mSW5kZXhlcygpO3JldHVybiB5PjAmJnYuaW5pdCh5KSx2fX0se2tleToidW5yZWdpc3Rlck1hcCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy50''@;'; put 'put ''cmltbWluZ01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXIoaCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyKGgpLHRoaXMudmFyaW91c01hcHNDb2xsZWN0aW9uLnVucmVnaXN0ZXIoaCl9fSx7a2V5OiJ1bnJlZ2lzdGVyQWxsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudHJp''@;'; put 'put ''bW1pbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyQWxsKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi51bnJlZ2lzdGVyQWxsKCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24udW5yZWdpc3RlckFsbCgpfX0se2tleToiZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKGgpe3ZhciB2PXRoaXMubm90VHJpbW1lZEluZGV4ZXNDYWNoZVtoXTtyZXR1cm4gVG8odik/djpudWxsfX0se2tleToiZ2V0UGh5c2ljYWxGcm9tUmVuZGVyYWJsZUluZGV4Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNo''@;'; put 'put ''ZVtoXTtyZXR1cm4gVG8odik/djpudWxsfX0se2tleToiZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzQ2FjaGUuZ2V0KGgpO3JldHVybiBUbyh2KT92Om51bGx9fSx7a2V5OiJnZXRWaXN1''@;'; put 'put ''YWxGcm9tUmVuZGVyYWJsZUluZGV4Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5nZXRWaXN1YWxGcm9tUGh5c2ljYWxJbmRleCh0aGlzLmdldFBoeXNpY2FsRnJvbVJlbmRlcmFibGVJbmRleChoKSl9fSx7a2V5OiJnZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4Iix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbihoKXt2YXIgdj10aGlzLmZyb21WaXN1YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUuZ2V0KGgpO3JldHVybiBUbyh2KT92Om51bGx9fSx7a2V5OiJnZXRGaXJzdE5vdEhpZGRlbkluZGV4Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9p''@;'; put 'put ''ZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106aC12O2trZS5oYXMoImdldEZpcnN0Tm90SGlkZGVuSW5kZXgiKSYmKGtrZS5kZWxldGUoImdldEZpcnN0Tm90SGlkZGVuSW5kZXgi''@;'; put 'put ''KSxsMShQMihfa2V8fChfa2U9U1hlKFsnVGhlIG1ldGhvZCAiZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFqb3IgcmVsZWFzZS4gUGxlYXNlIHVzZSAiZ2V0TmVh''@;'; put 'put ''cmVzdE5vdEhpZGRlbkluZGV4IiBpbnN0ZWFkLiddLFsnVGhlIG1ldGhvZCAiZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleCIgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0XFx4MjBcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ham9yIHJlbGVhc2UuIFBsZWFz''@;'; put 'put ''ZSB1c2UgImdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCIgaW5zdGVhZC4nXSkpKSkpO3ZhciBJPXRoaXMuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgoaCk7cmV0dXJuIG51bGw9PT1JPyEwPT09eSYmQyE9PWgtdj90aGlzLmdldEZpcnN0Tm90SGlkZGVuSW5kZXgoQywtdiwhMSxDKTpudWxs''@;'; put 'put ''OiExPT09dGhpcy5pc0hpZGRlbihJKT9oOnRoaXMuZ2V0Rmlyc3ROb3RIaWRkZW5JbmRleChoK3Ysdix5LEMpfX0se2tleToiZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJd''@;'; put 'put ''JiZhcmd1bWVudHNbMl0sQz10aGlzLmdldFBoeXNpY2FsRnJvbVZpc3VhbEluZGV4KGgpO2lmKG51bGw9PT1DKXJldHVybiBudWxsO2lmKHRoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5oYXMoaCkpcmV0dXJuIGg7dmFyIEk9QXJyYXkuZnJvbSh0aGlzLmZyb21WaXN1''@;'; put 'put ''YWxUb1JlbmRlcmFibGVJbmRleGVzQ2FjaGUua2V5cygpKSxaPS0xO3JldHVybi0xPT09KFo9dj4wP0kuZmluZEluZGV4KGZ1bmN0aW9uKHVlKXtyZXR1cm4gdWU+aH0pOkkucmV2ZXJzZSgpLmZpbmRJbmRleChmdW5jdGlvbih1ZSl7cmV0dXJuIHVlPGh9KSk/eT90aGlzLmdldE5lYXJlc3RO''@;'; put 'put ''b3RIaWRkZW5JbmRleChoLC12LCExKTpudWxsOklbWl19fSx7a2V5OiJpbml0VG9MZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCk7dGhpcy5u''@;'; put 'put ''b3RUcmltbWVkSW5kZXhlc0NhY2hlPWI0ZShuZXcgQXJyYXkoaCkua2V5cygpKSx0aGlzLm5vdEhpZGRlbkluZGV4ZXNDYWNoZT1iNGUobmV3IEFycmF5KGgpLmtleXMoKSksdGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLmluaXQoaCksdGhpcy50cmltbWlu''@;'; put 'put ''Z01hcHNDb2xsZWN0aW9uLmluaXRFdmVyeShoKSx0aGlzLnJlc3VtZU9wZXJhdGlvbnMoKSx0aGlzLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5pbml0RXZlcnkoaCksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uaW5pdEV2ZXJ5KGgpLHRoaXMucmVz''@;'; put 'put ''dW1lT3BlcmF0aW9ucygpLHRoaXMucnVuTG9jYWxIb29rcygiaW5pdCIpfX0se2tleToiZml0VG9MZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMuZ2V0TnVtYmVyT2ZJbmRleGVzKCk7aWYoaDx2KXt2YXIgeT1iNGUoQXJyYXkodGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKS1o''@;'; put 'put ''KS5rZXlzKCkpLm1hcChmdW5jdGlvbihDKXtyZXR1cm4gQytofSk7dGhpcy5yZW1vdmVJbmRleGVzKHkpfWVsc2UgdGhpcy5pbnNlcnRJbmRleGVzKHYsaC12KX19LHtrZXk6ImdldEluZGV4ZXNTZXF1ZW5jZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRleGVzU2VxdWVuY2Uu''@;'; put 'put ''Z2V0VmFsdWVzKCl9fSx7a2V5OiJzZXRJbmRleGVzU2VxdWVuY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuaW5kZXhlc1NlcXVlbmNlLnNldFZhbHVlcyhoKX19LHtrZXk6ImdldE5vdFRyaW1tZWRJbmRleGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj0hKGFyZ3VtZW50cy5s''@;'; put 'put ''ZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO2lmKCEwPT09dilyZXR1cm4gdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlO3ZhciB5PXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7cmV0dXJuIHkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiExPT09aC5p''@;'; put 'put ''c1RyaW1tZWQoQyl9KX19LHtrZXk6ImdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzKCkubGVuZ3RofX0se2tleToiZ2V0Tm90SGlkZGVuSW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlz''@;'; put 'put ''LHY9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtpZighMD09PXYpcmV0dXJuIHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlO3ZhciB5PXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCk7cmV0dXJuIHkuZmlsdGVyKGZ1bmN0aW9uKEMp''@;'; put 'put ''e3JldHVybiExPT09aC5pc0hpZGRlbihDKX0pfX0se2tleToiZ2V0Tm90SGlkZGVuSW5kZXhlc0xlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXROb3RIaWRkZW5JbmRleGVzKCkubGVuZ3RofX0se2tleToiZ2V0UmVuZGVyYWJsZUluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KCl7dmFyIGg9dGhpcyx2PSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1bWVudHNbMF07aWYoITA9PT12KXJldHVybiB0aGlzLnJlbmRlcmFibGVQaHlzaWNhbEluZGV4ZXNDYWNoZTt2YXIgeT10aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzKCk7cmV0''@;'; put 'put ''dXJuIHkuZmlsdGVyKGZ1bmN0aW9uKEMpe3JldHVybiExPT09aC5pc0hpZGRlbihDKX0pfX0se2tleToiZ2V0UmVuZGVyYWJsZUluZGV4ZXNMZW5ndGgiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0UmVuZGVyYWJsZUluZGV4ZXMoKS5sZW5ndGh9fSx7a2V5OiJnZXROdW1iZXJP''@;'; put 'put ''ZkluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkubGVuZ3RofX0se2tleToibW92ZUluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpczsibnVtYmVyIj09dHlwZW9mIGgmJihoPVtoXSk7dmFyIEM9T2woaCxmdW5jdGlv''@;'; put 'put ''bihOZSl7cmV0dXJuIHkuZ2V0UGh5c2ljYWxGcm9tVmlzdWFsSW5kZXgoTmUpfSksST10aGlzLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCksWj1oLmxlbmd0aCx1ZT10eih0aGlzLmdldEluZGV4ZXNTZXF1ZW5jZSgpLEMpLF9lPUktWjtpZih2K1o8SSl7dmFyIEJlPXVlLmZpbHRlcihm''@;'; put 'put ''dW5jdGlvbihOZSl7cmV0dXJuITE9PT15LmlzVHJpbW1lZChOZSl9KVt2XTtfZT11ZS5pbmRleE9mKEJlKX10aGlzLnNldEluZGV4ZXNTZXF1ZW5jZShhNGUodWUsX2UsQykpfX0se2tleToiaXNUcmltbWVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy50cmltbWluZ01hcHNDb2xs''@;'; put 'put ''ZWN0aW9uLmdldE1lcmdlZFZhbHVlQXRJbmRleChoKX19LHtrZXk6ImlzSGlkZGVuIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5nZXRNZXJnZWRWYWx1ZUF0SW5kZXgoaCl9fSx7a2V5OiJpbnNlcnRJbmRleGVzIix2YWx1ZTpmdW5jdGlvbiho''@;'; put 'put ''LHYpe3ZhciB5PXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoKVtoXSxDPVRvKHkpP3k6dGhpcy5nZXROdW1iZXJPZkluZGV4ZXMoKSxJPXRoaXMuZ2V0SW5kZXhlc1NlcXVlbmNlKCkuaW5jbHVkZXMoeSk/dGhpcy5nZXRJbmRleGVzU2VxdWVuY2UoKS5pbmRleE9mKHkpOnRoaXMuZ2V0TnVt''@;'; put 'put ''YmVyT2ZJbmRleGVzKCksWj1PbChuZXcgQXJyYXkodikuZmlsbChDKSxmdW5jdGlvbih1ZSxfZSl7cmV0dXJuIHVlK19lfSk7dGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLmluc2VydChJLFopLHRoaXMudHJpbW1pbmdNYXBzQ29sbGVjdGlvbi5pbnNlcnRU''@;'; put 'put ''b0V2ZXJ5KEksWiksdGhpcy5oaWRpbmdNYXBzQ29sbGVjdGlvbi5pbnNlcnRUb0V2ZXJ5KEksWiksdGhpcy52YXJpb3VzTWFwc0NvbGxlY3Rpb24uaW5zZXJ0VG9FdmVyeShJLFopLHRoaXMucmVzdW1lT3BlcmF0aW9ucygpfX0se2tleToicmVtb3ZlSW5kZXhlcyIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''aCl7dGhpcy5zdXNwZW5kT3BlcmF0aW9ucygpLHRoaXMuaW5kZXhlc1NlcXVlbmNlLnJlbW92ZShoKSx0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5KGgpLHRoaXMuaGlkaW5nTWFwc0NvbGxlY3Rpb24ucmVtb3ZlRnJvbUV2ZXJ5KGgpLHRoaXMudmFyaW91c01h''@;'; put 'put ''cHNDb2xsZWN0aW9uLnJlbW92ZUZyb21FdmVyeShoKSx0aGlzLnJlc3VtZU9wZXJhdGlvbnMoKX19LHtrZXk6InVwZGF0ZUNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sdj10aGlzLmlu''@;'; put 'put ''ZGV4ZXNTZXF1ZW5jZUNoYW5nZWR8fHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2VkfHx0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkOyghMD09PWh8fCExPT09dGhpcy5pc0JhdGNoZWQmJiEwPT09dikmJih0aGlzLnRyaW1taW5nTWFwc0NvbGxlY3Rpb24udXBkYXRlQ2FjaGUoKSx0aGlzLmhp''@;'; put 'put ''ZGluZ01hcHNDb2xsZWN0aW9uLnVwZGF0ZUNhY2hlKCksdGhpcy5ub3RUcmltbWVkSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoITEpLHRoaXMubm90SGlkZGVuSW5kZXhlc0NhY2hlPXRoaXMuZ2V0Tm90SGlkZGVuSW5kZXhlcyghMSksdGhpcy5yZW5kZXJhYmxlUGh5''@;'; put 'put ''c2ljYWxJbmRleGVzQ2FjaGU9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlcyghMSksdGhpcy5jYWNoZUZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlcygpLHRoaXMuY2FjaGVGcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlcygpLHRoaXMuaGlkZGVuSW5kZXhlc0NoYW5nZWQmJnRoaXMuaGlk''@;'; put 'put ''aW5nQ2hhbmdlc09ic2VydmFibGUuZW1pdCh0aGlzLmhpZGluZ01hcHNDb2xsZWN0aW9uLmdldE1lcmdlZFZhbHVlcygpKSx0aGlzLnJ1bkxvY2FsSG9va3MoImNhY2hlVXBkYXRlZCIse2luZGV4ZXNTZXF1ZW5jZUNoYW5nZWQ6dGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkLHRyaW1tZWRJ''@;'; put 'put ''bmRleGVzQ2hhbmdlZDp0aGlzLnRyaW1tZWRJbmRleGVzQ2hhbmdlZCxoaWRkZW5JbmRleGVzQ2hhbmdlZDp0aGlzLmhpZGRlbkluZGV4ZXNDaGFuZ2VkfSksdGhpcy5pbmRleGVzU2VxdWVuY2VDaGFuZ2VkPSExLHRoaXMudHJpbW1lZEluZGV4ZXNDaGFuZ2VkPSExLHRoaXMuaGlkZGVuSW5k''@;'; put 'put ''ZXhlc0NoYW5nZWQ9ITEpfX0se2tleToiY2FjaGVGcm9tUGh5c2ljYWxUb1Zpc3VhbEluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVBoeXNpY2FsVG9WaXN1YWxJbmRleGVzQ2FjaGUuY2xlYXIoKTtmb3Io''@;'; put 'put ''dmFyIHY9MDt2PGg7dis9MSl7dmFyIHk9dGhpcy5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleCh2KTt0aGlzLmZyb21QaHlzaWNhbFRvVmlzdWFsSW5kZXhlc0NhY2hlLnNldCh5LHYpfX19LHtrZXk6ImNhY2hlRnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXMiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KCl7dmFyIGg9dGhpcy5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpO3RoaXMuZnJvbVZpc3VhbFRvUmVuZGVyYWJsZUluZGV4ZXNDYWNoZS5jbGVhcigpO2Zvcih2YXIgdj0wO3Y8aDt2Kz0xKXt2YXIgeT10aGlzLmdldFBoeXNpY2FsRnJvbVJlbmRlcmFibGVJbmRleCh2KSxDPXRoaXMu''@;'; put 'put ''Z2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgoeSk7dGhpcy5mcm9tVmlzdWFsVG9SZW5kZXJhYmxlSW5kZXhlc0NhY2hlLnNldChDLHYpfX19XSksZH0oKTtmdW5jdGlvbiBNa2UoZCl7dmFyIGg9L14oW2EtekEtWl17Mn0pLShbYS16QS1aXXsyfSkkLy5leGVjKGQpO3JldHVybiBoPyIiLmNv''@;'; put 'put ''bmNhdChoWzFdLnRvTG93ZXJDYXNlKCksIi0iKS5jb25jYXQoaFsyXS50b1VwcGVyQ2FzZSgpKTpkfWZ1bmN0aW9uIEVrZShkKXtUbyhkKSYmQzNlKFAyKFNrZXx8KFNrZT1mdW5jdGlvbiB4WGUoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVm''@;'; put 'put ''aW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbJ0xhbmd1YWdlIHdpdGggY29kZSAiJywnIiB3YXMgbm90IGZvdW5kLiBZb3Ugc2hvdWxkIHJlZ2lzdGVyIHBhcnRpY3VsYXIgbGFuZ3VhZ2UgXG4gICAgYmVmb3JlIHVzaW5nIGl0LiBSZWFkIG1vcmUg''@;'; put 'put ''YWJvdXQgdGhpcyBpc3N1ZSBhdDogaHR0cHM6Ly9kb2NzLmhhbmRzb250YWJsZS5jb20vaTE4bi9taXNzaW5nLWxhbmd1YWdlLWNvZGUuJ10sWydMYW5ndWFnZSB3aXRoIGNvZGUgIicsJyIgd2FzIG5vdCBmb3VuZC4gWW91IHNob3VsZCByZWdpc3RlciBwYXJ0aWN1bGFyIGxhbmd1YWdlXFx4''@;'; put 'put ''MjBcbiAgICBiZWZvcmUgdXNpbmcgaXQuIFJlYWQgbW9yZSBhYm91dCB0aGlzIGlzc3VlIGF0OiBodHRwczovL2RvY3MuaGFuZHNvbnRhYmxlLmNvbS9pMThuL21pc3NpbmctbGFuZ3VhZ2UtY29kZS4nXSkpLGQpKX1CMihDNGUsdWQpO3ZhciB4a2U9THAoInBocmFzZUZvcm1hdHRlcnMiKSxE''@;'; put 'put ''WGU9eGtlLnJlZ2lzdGVyLExYZT14a2UuZ2V0VmFsdWVzOyFmdW5jdGlvbiBPWGUoZCxnKXtEWGUoZCxnKX0oInBsdXJhbGl6ZSIsZnVuY3Rpb24gSVhlKGQsZyl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZCkmJk51bWJlci5pc0ludGVnZXIoZyk/ZFtnXTpkfSk7dmFyIElvLFJsPSJDb250ZXh0''@;'; put 'put ''TWVudTppdGVtcyIsazRlPSIiLmNvbmNhdChSbCwiLm5vSXRlbXMiKSxTNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Um93QWJvdmUiKSxNNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Um93QmVsb3ciKSxFNGU9IiIuY29uY2F0KFJsLCIuaW5zZXJ0Q29sdW1uT25UaGVMZWZ0IikseDRlPSIiLmNv''@;'; put 'put ''bmNhdChSbCwiLmluc2VydENvbHVtbk9uVGhlUmlnaHQiKSxUNGU9IiIuY29uY2F0KFJsLCIucmVtb3ZlUm93IiksSTRlPSIiLmNvbmNhdChSbCwiLnJlbW92ZUNvbHVtbiIpLEQ0ZT0iIi5jb25jYXQoUmwsIi51bmRvIiksTDRlPSIiLmNvbmNhdChSbCwiLnJlZG8iKSxPNGU9IiIuY29uY2F0''@;'; put 'put ''KFJsLCIucmVhZE9ubHkiKSxSNGU9IiIuY29uY2F0KFJsLCIuY2xlYXJDb2x1bW4iKSxCNGU9IiIuY29uY2F0KFJsLCIuY29weSIpLFA0ZT0iIi5jb25jYXQoUmwsIi5jdXQiKSxGNGU9IiIuY29uY2F0KFJsLCIuZnJlZXplQ29sdW1uIiksSDRlPSIiLmNvbmNhdChSbCwiLnVuZnJlZXplQ29s''@;'; put 'put ''dW1uIiksTjRlPSIiLmNvbmNhdChSbCwiLm1lcmdlQ2VsbHMiKSxWNGU9IiIuY29uY2F0KFJsLCIudW5tZXJnZUNlbGxzIiksajRlPSIiLmNvbmNhdChSbCwiLmFkZENvbW1lbnQiKSxaNGU9IiIuY29uY2F0KFJsLCIuZWRpdENvbW1lbnQiKSx6NGU9IiIuY29uY2F0KFJsLCIucmVtb3ZlQ29t''@;'; put 'put ''bWVudCIpLEc0ZT0iIi5jb25jYXQoUmwsIi5yZWFkT25seUNvbW1lbnQiKSxXNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24iKSxZNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ubGVmdCIpLFU0ZT0iIi5jb25jYXQoUmwsIi5hbGlnbi5jZW50ZXIiKSxRNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ucmln''@;'; put 'put ''aHQiKSxKNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24uanVzdGlmeSIpLFg0ZT0iIi5jb25jYXQoUmwsIi5hbGlnbi50b3AiKSxLNGU9IiIuY29uY2F0KFJsLCIuYWxpZ24ubWlkZGxlIiksJDRlPSIiLmNvbmNhdChSbCwiLmFsaWduLmJvdHRvbSIpLHE0ZT0iIi5jb25jYXQoUmwsIi5ib3JkZXJz''@;'; put 'put ''IiksZXBlPSIiLmNvbmNhdChSbCwiLmJvcmRlcnMudG9wIiksdHBlPSIiLmNvbmNhdChSbCwiLmJvcmRlcnMucmlnaHQiKSxucGU9IiIuY29uY2F0KFJsLCIuYm9yZGVycy5ib3R0b20iKSxycGU9IiIuY29uY2F0KFJsLCIuYm9yZGVycy5sZWZ0IiksaXBlPSIiLmNvbmNhdChSbCwiLmJvcmRl''@;'; put 'put ''cnMucmVtb3ZlIiksb3BlPSIiLmNvbmNhdChSbCwiLm5lc3RlZEhlYWRlcnMuaW5zZXJ0Q2hpbGRSb3ciKSxhcGU9IiIuY29uY2F0KFJsLCIubmVzdGVkSGVhZGVycy5kZXRhY2hGcm9tUGFyZW50IiksbHBlPSIiLmNvbmNhdChSbCwiLmhpZGVDb2x1bW4iKSxzcGU9IiIuY29uY2F0KFJsLCIu''@;'; put 'put ''c2hvd0NvbHVtbiIpLHVwZT0iIi5jb25jYXQoUmwsIi5oaWRlUm93IiksY3BlPSIiLmNvbmNhdChSbCwiLnNob3dSb3ciKSxsMz0iRmlsdGVyczoiLHR1PSIiLmNvbmNhdChsMywiY29uZGl0aW9ucyIpLGV0ZT0iIi5jb25jYXQodHUsIi5ub25lIiksZnBlPSIiLmNvbmNhdCh0dSwiLmlzRW1w''@;'; put 'put ''dHkiKSxocGU9IiIuY29uY2F0KHR1LCIuaXNOb3RFbXB0eSIpLGRwZT0iIi5jb25jYXQodHUsIi5pc0VxdWFsVG8iKSxwcGU9IiIuY29uY2F0KHR1LCIuaXNOb3RFcXVhbFRvIiksZ3BlPSIiLmNvbmNhdCh0dSwiLmJlZ2luc1dpdGgiKSxtcGU9IiIuY29uY2F0KHR1LCIuZW5kc1dpdGgiKSx2''@;'; put 'put ''cGU9IiIuY29uY2F0KHR1LCIuY29udGFpbnMiKSxBcGU9IiIuY29uY2F0KHR1LCIuZG9lc05vdENvbnRhaW4iKSxCWGU9IiIuY29uY2F0KHR1LCIuYnlWYWx1ZSIpLHlwZT0iIi5jb25jYXQodHUsIi5ncmVhdGVyVGhhbiIpLHdwZT0iIi5jb25jYXQodHUsIi5ncmVhdGVyVGhhbk9yRXF1YWxU''@;'; put 'put ''byIpLGJwZT0iIi5jb25jYXQodHUsIi5sZXNzVGhhbiIpLF9wZT0iIi5jb25jYXQodHUsIi5sZXNzVGhhbk9yRXF1YWxUbyIpLENwZT0iIi5jb25jYXQodHUsIi5pc0JldHdlZW4iKSxrcGU9IiIuY29uY2F0KHR1LCIuaXNOb3RCZXR3ZWVuIiksU3BlPSIiLmNvbmNhdCh0dSwiLmFmdGVyIiks''@;'; put 'put ''TXBlPSIiLmNvbmNhdCh0dSwiLmJlZm9yZSIpLEVwZT0iIi5jb25jYXQodHUsIi50b2RheSIpLHhwZT0iIi5jb25jYXQodHUsIi50b21vcnJvdyIpLFRwZT0iIi5jb25jYXQodHUsIi55ZXN0ZXJkYXkiKSxJcGU9IiIuY29uY2F0KGwzLCJsYWJlbHMuZmlsdGVyQnlDb25kaXRpb24iKSxEcGU9''@;'; put 'put ''IiIuY29uY2F0KGwzLCJsYWJlbHMuZmlsdGVyQnlWYWx1ZSIpLExwZT0iIi5jb25jYXQobDMsImxhYmVscy5jb25qdW5jdGlvbiIpLHR0ZT0iIi5jb25jYXQobDMsImxhYmVscy5kaXNqdW5jdGlvbiIpLG50ZT0iIi5jb25jYXQobDMsInZhbHVlcy5ibGFua0NlbGxzIiksT3BlPSIiLmNvbmNh''@;'; put 'put ''dChsMywiYnV0dG9ucy5zZWxlY3RBbGwiKSxScGU9IiIuY29uY2F0KGwzLCJidXR0b25zLmNsZWFyIiksQnBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5vayIpLFBwZT0iIi5jb25jYXQobDMsImJ1dHRvbnMuY2FuY2VsIiksRnBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5wbGFjZWhvbGRlci5z''@;'; put 'put ''ZWFyY2giKSxIcGU9IiIuY29uY2F0KGwzLCJidXR0b25zLnBsYWNlaG9sZGVyLnZhbHVlIiksTnBlPSIiLmNvbmNhdChsMywiYnV0dG9ucy5wbGFjZWhvbGRlci5zZWNvbmRWYWx1ZSIpO2Z1bmN0aW9uIEJvKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcs''@;'; put 'put ''e3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1jb25zdCBUa2U9KEJvKElvPXtsYW5ndWFnZUNvZGU6ImVuLVVTIn0sazRlLCJObyBhdmFpbGFibGUgb3B0aW9ucyIpLEJvKElvLFM0ZSwiSW5zZXJ0IHJvdyBhYm92ZSIpLEJvKElv''@;'; put 'put ''LE00ZSwiSW5zZXJ0IHJvdyBiZWxvdyIpLEJvKElvLEU0ZSwiSW5zZXJ0IGNvbHVtbiBsZWZ0IiksQm8oSW8seDRlLCJJbnNlcnQgY29sdW1uIHJpZ2h0IiksQm8oSW8sVDRlLFsiUmVtb3ZlIHJvdyIsIlJlbW92ZSByb3dzIl0pLEJvKElvLEk0ZSxbIlJlbW92ZSBjb2x1bW4iLCJSZW1vdmUg''@;'; put 'put ''Y29sdW1ucyJdKSxCbyhJbyxENGUsIlVuZG8iKSxCbyhJbyxMNGUsIlJlZG8iKSxCbyhJbyxPNGUsIlJlYWQgb25seSIpLEJvKElvLFI0ZSwiQ2xlYXIgY29sdW1uIiksQm8oSW8sVzRlLCJBbGlnbm1lbnQiKSxCbyhJbyxZNGUsIkxlZnQiKSxCbyhJbyxVNGUsIkNlbnRlciIpLEJvKElvLFE0''@;'; put 'put ''ZSwiUmlnaHQiKSxCbyhJbyxKNGUsIkp1c3RpZnkiKSxCbyhJbyxYNGUsIlRvcCIpLEJvKElvLEs0ZSwiTWlkZGxlIiksQm8oSW8sJDRlLCJCb3R0b20iKSxCbyhJbyxGNGUsIkZyZWV6ZSBjb2x1bW4iKSxCbyhJbyxINGUsIlVuZnJlZXplIGNvbHVtbiIpLEJvKElvLHE0ZSwiQm9yZGVycyIp''@;'; put 'put ''LEJvKElvLGVwZSwiVG9wIiksQm8oSW8sdHBlLCJSaWdodCIpLEJvKElvLG5wZSwiQm90dG9tIiksQm8oSW8scnBlLCJMZWZ0IiksQm8oSW8saXBlLCJSZW1vdmUgYm9yZGVyKHMpIiksQm8oSW8sajRlLCJBZGQgY29tbWVudCIpLEJvKElvLFo0ZSwiRWRpdCBjb21tZW50IiksQm8oSW8sejRl''@;'; put 'put ''LCJEZWxldGUgY29tbWVudCIpLEJvKElvLEc0ZSwiUmVhZC1vbmx5IGNvbW1lbnQiKSxCbyhJbyxONGUsIk1lcmdlIGNlbGxzIiksQm8oSW8sVjRlLCJVbm1lcmdlIGNlbGxzIiksQm8oSW8sQjRlLCJDb3B5IiksQm8oSW8sUDRlLCJDdXQiKSxCbyhJbyxvcGUsIkluc2VydCBjaGlsZCByb3ci''@;'; put 'put ''KSxCbyhJbyxhcGUsIkRldGFjaCBmcm9tIHBhcmVudCIpLEJvKElvLGxwZSxbIkhpZGUgY29sdW1uIiwiSGlkZSBjb2x1bW5zIl0pLEJvKElvLHNwZSxbIlNob3cgY29sdW1uIiwiU2hvdyBjb2x1bW5zIl0pLEJvKElvLHVwZSxbIkhpZGUgcm93IiwiSGlkZSByb3dzIl0pLEJvKElvLGNwZSxb''@;'; put 'put ''IlNob3cgcm93IiwiU2hvdyByb3dzIl0pLEJvKElvLGV0ZSwiTm9uZSIpLEJvKElvLGZwZSwiSXMgZW1wdHkiKSxCbyhJbyxocGUsIklzIG5vdCBlbXB0eSIpLEJvKElvLGRwZSwiSXMgZXF1YWwgdG8iKSxCbyhJbyxwcGUsIklzIG5vdCBlcXVhbCB0byIpLEJvKElvLGdwZSwiQmVnaW5zIHdp''@;'; put 'put ''dGgiKSxCbyhJbyxtcGUsIkVuZHMgd2l0aCIpLEJvKElvLHZwZSwiQ29udGFpbnMiKSxCbyhJbyxBcGUsIkRvZXMgbm90IGNvbnRhaW4iKSxCbyhJbyx5cGUsIkdyZWF0ZXIgdGhhbiIpLEJvKElvLHdwZSwiR3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIiksQm8oSW8sYnBlLCJMZXNzIHRoYW4i''@;'; put 'put ''KSxCbyhJbyxfcGUsIkxlc3MgdGhhbiBvciBlcXVhbCB0byIpLEJvKElvLENwZSwiSXMgYmV0d2VlbiIpLEJvKElvLGtwZSwiSXMgbm90IGJldHdlZW4iKSxCbyhJbyxTcGUsIkFmdGVyIiksQm8oSW8sTXBlLCJCZWZvcmUiKSxCbyhJbyxFcGUsIlRvZGF5IiksQm8oSW8seHBlLCJUb21vcnJv''@;'; put 'put ''dyIpLEJvKElvLFRwZSwiWWVzdGVyZGF5IiksQm8oSW8sbnRlLCJCbGFuayBjZWxscyIpLEJvKElvLElwZSwiRmlsdGVyIGJ5IGNvbmRpdGlvbiIpLEJvKElvLERwZSwiRmlsdGVyIGJ5IHZhbHVlIiksQm8oSW8sTHBlLCJBbmQiKSxCbyhJbyx0dGUsIk9yIiksQm8oSW8sT3BlLCJTZWxlY3Qg''@;'; put 'put ''YWxsIiksQm8oSW8sUnBlLCJDbGVhciIpLEJvKElvLEJwZSwiT0siKSxCbyhJbyxQcGUsIkNhbmNlbCIpLEJvKElvLEZwZSwiU2VhcmNoIiksQm8oSW8sSHBlLCJWYWx1ZSIpLEJvKElvLE5wZSwiU2Vjb25kIHZhbHVlIiksSW8pO3ZhciBWcGU9VGtlLmxhbmd1YWdlQ29kZSxydGU9THAoImxh''@;'; put 'put ''bmd1YWdlc0RpY3Rpb25hcmllcyIpLEZYZT1ydGUucmVnaXN0ZXIsSWtlPXJ0ZS5nZXRJdGVtLEhYZT1ydGUuaGFzSXRlbSxOWGU9cnRlLmdldFZhbHVlcztmdW5jdGlvbiBEa2UoZCxnKXt2YXIgaD1kLHY9ZztyZXR1cm4geGwoZCkmJihoPSh2PWQpLmxhbmd1YWdlQ29kZSksZnVuY3Rpb24g''@;'; put 'put ''VlhlKGQsZyl7ZCE9PVZwZSYmZnVuY3Rpb24gVFhlKGQsZyl7R2woZyxmdW5jdGlvbihoLHYpe2ExKGRbdl0pJiYoZFt2XT1oKX0pfShnLElrZShWcGUpKX0oaCx2KSxGWGUoaCxnaCh2KSksZ2godil9ZnVuY3Rpb24gTGtlKGQpe3JldHVybiBqcGUoZCk/Z2goSWtlKGQpKTpudWxsfWZ1bmN0''@;'; put 'put ''aW9uIGpwZShkKXtyZXR1cm4gSFhlKGQpfWZ1bmN0aW9uIE9rZShkLGcsaCl7dmFyIHY9TGtlKGQpO2lmKG51bGw9PT12KXJldHVybiBudWxsO3ZhciB5PXZbZ107aWYoYTEoeSkpcmV0dXJuIG51bGw7dmFyIEM9ZnVuY3Rpb24gWlhlKGQsZyl7dmFyIGg9ZDtyZXR1cm4gVXIoZnVuY3Rpb24g''@;'; put 'put ''UlhlKCl7cmV0dXJuIExYZSgpfSgpLGZ1bmN0aW9uKHYpe2g9dihkLGcpfSksaH0oeSxoKTtyZXR1cm4gQXJyYXkuaXNBcnJheShDKT9DWzBdOkN9ZnVuY3Rpb24gelhlKGQpe3ZhciBnPU1rZShkKTtyZXR1cm4ganBlKGcpfHwoZz1WcGUsRWtlKGQpKSxnfURrZShUa2UpLEwoNTU2MTUpO3Zh''@;'; put 'put ''ciBpdGU9ImFjdGl2ZS1oZWFkZXIiLG90ZT0iYXJlYSIsYXo9ImNlbGwiLGx6PSJoZWFkZXIiLHpwZT0iY3VzdG9tLXNlbGVjdGlvbiI7ZnVuY3Rpb24gR3BlKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFVYZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gWVhl''@;'; put 'put ''KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25l''@;'; put 'put ''KSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gV1hlKGQsZyl7''@;'; put 'put ''aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBSa2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNl''@;'; put 'put ''dCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFJrZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gR1hlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxp''@;'; put 'put ''ZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBSa2UoZCxnKXsobnVsbD09Z3x8''@;'; put 'put ''Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBCa2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwh''@;'; put 'put ''MSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDgzODU3KTt2YXIgWFhlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBRWGUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBn''@;'; put 'put ''KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksaCYmKHRoaXMuZXZlbnRNYW5hZ2VyPWcuZXZlbnRNYW5hZ2VyLHRoaXMuaW5zdGFuY2U9Zyx0aGlzLndvdD1nLHRoaXMuc2V0dGluZ3M9aCx0aGlzLm1vdXNlRG93bj0h''@;'; put 'put ''MSx0aGlzLm1haW49bnVsbCx0aGlzLnRvcD1udWxsLHRoaXMuYm90dG9tPW51bGwsdGhpcy5zdGFydD1udWxsLHRoaXMuZW5kPW51bGwsdGhpcy50b3BTdHlsZT1udWxsLHRoaXMuYm90dG9tU3R5bGU9bnVsbCx0aGlzLnN0YXJ0U3R5bGU9bnVsbCx0aGlzLmVuZFN0eWxlPW51bGwsdGhpcy5j''@;'; put 'put ''b3JuZXJEZWZhdWx0U3R5bGU9e3dpZHRoOiI2cHgiLGhlaWdodDoiNnB4Iixib3JkZXJXaWR0aDoiMXB4Iixib3JkZXJTdHlsZToic29saWQiLGJvcmRlckNvbG9yOiIjRkZGIn0sdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldD0tcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUu''@;'; put 'put ''d2lkdGgsMTApLzIsdGhpcy5jb3JuZXI9bnVsbCx0aGlzLmNvcm5lclN0eWxlPW51bGwsdGhpcy5jcmVhdGVCb3JkZXJzKGgpLHRoaXMucmVnaXN0ZXJMaXN0ZW5lcnMoKSl9cmV0dXJuIGZ1bmN0aW9uIEpYZShkLGcsaCl7ZyYmQmtlKGQucHJvdG90eXBlLGcpLGgmJkJrZShkLGgpLE9iamVj''@;'; put 'put ''dC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJyZWdpc3Rlckxpc3RlbmVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy53b3Qucm9vdERvY3VtZW50LmJvZHk7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5l''@;'; put 'put ''cih2LCJtb3VzZWRvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25Nb3VzZURvd24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vbk1vdXNlVXAoKX0pO2Zvcih2YXIgeT1mdW5jdGlvbih1ZSxfZSl7aC5ldmVu''@;'; put 'put ''dE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihoLm1haW4uY2hpbGROb2Rlc1t1ZV0sIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKE5lKXtyZXR1cm4gaC5vbk1vdXNlRW50ZXIoTmUsaC5tYWluLmNoaWxkTm9kZXNbdWVdKX0pfSxDPTAsST10aGlzLm1haW4uY2hpbGROb2Rlcy5sZW5ndGg7QzxJO0Mr''@;'; put 'put ''Kyl5KEMpfX0se2tleToib25Nb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3VzZURvd249ITB9fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3VzZURvd249ITF9fSx7a2V5OiJvbk1vdXNlRW50ZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdil7aWYodGhp''@;'; put 'put ''cy5tb3VzZURvd24mJnRoaXMud290LmdldFNldHRpbmcoImhpZGVCb3JkZXJPbk1vdXNlRG93bk92ZXIiKSl7aC5wcmV2ZW50RGVmYXVsdCgpLF84KGgpO3ZhciB5PXRoaXMsQz10aGlzLndvdC5yb290RG9jdW1lbnQuYm9keSxJPXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7di5zdHlsZS5k''@;'; put 'put ''aXNwbGF5PSJub25lIix0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsZnVuY3Rpb24gdWUoX2UpeyhmdW5jdGlvbiBaKF9lKXtpZihfZS5jbGllbnRZPE1hdGguZmxvb3IoSS50b3ApfHxfZS5jbGllbnRZPk1hdGguY2VpbChJLnRvcCtJLmhlaWdodCl8''@;'; put 'put ''fF9lLmNsaWVudFg8TWF0aC5mbG9vcihJLmxlZnQpfHxfZS5jbGllbnRYPk1hdGguY2VpbChJLmxlZnQrSS53aWR0aCkpcmV0dXJuITB9KShfZSkmJih5LmV2ZW50TWFuYWdlci5yZW1vdmVFdmVudExpc3RlbmVyKEMsIm1vdXNlbW92ZSIsdWUpLHYuc3R5bGUuZGlzcGxheT0iYmxvY2siKX0p''@;'; put 'put ''fX19LHtrZXk6ImNyZWF0ZUJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMud290LnJvb3REb2N1bWVudDt0aGlzLm1haW49di5jcmVhdGVFbGVtZW50KCJkaXYiKTt2YXIgeT1bInRvcCIsInN0YXJ0IiwiYm90dG9tIiwiZW5kIiwiY29ybmVyIl0sQz10aGlzLm1haW4uc3R5''@;'; put 'put ''bGU7Qy5wb3NpdGlvbj0iYWJzb2x1dGUiLEMudG9wPTAsQy5sZWZ0PTA7Zm9yKHZhciBJPTA7STw1O0krKyl7dmFyIFo9eVtJXSx1ZT12LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3VlLmNsYXNzTmFtZT0id3RCb3JkZXIgIi5jb25jYXQodGhpcy5zZXR0aW5ncy5jbGFzc05hbWV8fCIiKSx0aGlz''@;'; put 'put ''LnNldHRpbmdzW1pdJiZ0aGlzLnNldHRpbmdzW1pdLmhpZGUmJih1ZS5jbGFzc05hbWUrPSIgaGlkZGVuIiksKEM9dWUuc3R5bGUpLmJhY2tncm91bmRDb2xvcj10aGlzLnNldHRpbmdzW1pdJiZ0aGlzLnNldHRpbmdzW1pdLmNvbG9yP3RoaXMuc2V0dGluZ3NbWl0uY29sb3I6aC5ib3JkZXIu''@;'; put 'put ''Y29sb3IsQy5oZWlnaHQ9IiIuY29uY2F0KHRoaXMuc2V0dGluZ3NbWl0mJnRoaXMuc2V0dGluZ3NbWl0ud2lkdGg/dGhpcy5zZXR0aW5nc1taXS53aWR0aDpoLmJvcmRlci53aWR0aCwicHgiKSxDLndpZHRoPSIiLmNvbmNhdCh0aGlzLnNldHRpbmdzW1pdJiZ0aGlzLnNldHRpbmdzW1pdLndp''@;'; put 'put ''ZHRoP3RoaXMuc2V0dGluZ3NbWl0ud2lkdGg6aC5ib3JkZXIud2lkdGgsInB4IiksdGhpcy5tYWluLmFwcGVuZENoaWxkKHVlKX10aGlzLnRvcD10aGlzLm1haW4uY2hpbGROb2Rlc1swXSx0aGlzLnN0YXJ0PXRoaXMubWFpbi5jaGlsZE5vZGVzWzFdLHRoaXMuYm90dG9tPXRoaXMubWFpbi5j''@;'; put 'put ''aGlsZE5vZGVzWzJdLHRoaXMuZW5kPXRoaXMubWFpbi5jaGlsZE5vZGVzWzNdLHRoaXMudG9wU3R5bGU9dGhpcy50b3Auc3R5bGUsdGhpcy5zdGFydFN0eWxlPXRoaXMuc3RhcnQuc3R5bGUsdGhpcy5ib3R0b21TdHlsZT10aGlzLmJvdHRvbS5zdHlsZSx0aGlzLmVuZFN0eWxlPXRoaXMuZW5k''@;'; put 'put ''LnN0eWxlLHRoaXMuY29ybmVyPXRoaXMubWFpbi5jaGlsZE5vZGVzWzRdLHRoaXMuY29ybmVyLmNsYXNzTmFtZSs9IiBjb3JuZXIiLHRoaXMuY29ybmVyU3R5bGU9dGhpcy5jb3JuZXIuc3R5bGUsdGhpcy5jb3JuZXJTdHlsZS53aWR0aD10aGlzLmNvcm5lckRlZmF1bHRTdHlsZS53aWR0aCx0''@;'; put 'put ''aGlzLmNvcm5lclN0eWxlLmhlaWdodD10aGlzLmNvcm5lckRlZmF1bHRTdHlsZS5oZWlnaHQsdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXI9W3RoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlcldpZHRoLHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRlclN0eWxlLHRoaXMuY29ybmVyRGVm''@;'; put 'put ''YXVsdFN0eWxlLmJvcmRlckNvbG9yXS5qb2luKCIgIiksYjgoKSYmdGhpcy5jcmVhdGVNdWx0aXBsZVNlbGVjdG9ySGFuZGxlcygpLHRoaXMuZGlzYXBwZWFyKCk7dmFyIF9lPXRoaXMud290Lnd0VGFibGUsQmU9X2UuYm9yZGVyc0hvbGRlcjtCZXx8KChCZT12LmNyZWF0ZUVsZW1lbnQoImRp''@;'; put 'put ''diIpKS5jbGFzc05hbWU9Imh0Qm9yZGVycyIsX2UuYm9yZGVyc0hvbGRlcj1CZSxfZS5zcHJlYWRlci5hcHBlbmRDaGlsZChCZSkpLEJlLmFwcGVuZENoaWxkKHRoaXMubWFpbil9fSx7a2V5OiJjcmVhdGVNdWx0aXBsZVNlbGVjdG9ySGFuZGxlcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10''@;'; put 'put ''aGlzLHY9dGhpcy53b3Qucm9vdERvY3VtZW50O3RoaXMuc2VsZWN0aW9uSGFuZGxlcz17dG9wOnYuY3JlYXRlRWxlbWVudCgiRElWIiksdG9wSGl0QXJlYTp2LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRvbTp2LmNyZWF0ZUVsZW1lbnQoIkRJViIpLGJvdHRvbUhpdEFyZWE6di5jcmVhdGVF''@;'; put 'put ''bGVtZW50KCJESVYiKX0sdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcC5jbGFzc05hbWU9InRvcFNlbGVjdGlvbkhhbmRsZSB0b3BMZWZ0U2VsZWN0aW9uSGFuZGxlIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wSGl0QXJlYS5jbGFzc05hbWU9InRvcFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVh''@;'; put 'put ''IHRvcExlZnRTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbS5jbGFzc05hbWU9ImJvdHRvbVNlbGVjdGlvbkhhbmRsZSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbUhpdEFyZWEuY2xhc3NO''@;'; put 'put ''YW1lPSJib3R0b21TZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSBib3R0b21SaWdodFNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzPXt0b3A6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnRvcC5zdHlsZSx0b3BIaXRBcmVhOnRoaXMuc2VsZWN0aW9uSGFu''@;'; put 'put ''ZGxlcy50b3BIaXRBcmVhLnN0eWxlLGJvdHRvbTp0aGlzLnNlbGVjdGlvbkhhbmRsZXMuYm90dG9tLnN0eWxlLGJvdHRvbUhpdEFyZWE6dGhpcy5zZWxlY3Rpb25IYW5kbGVzLmJvdHRvbUhpdEFyZWEuc3R5bGV9LEdsKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoiIi5jb25jYXQoNDAs''@;'; put 'put ''InB4Iiksd2lkdGg6IiIuY29uY2F0KDQwLCJweCIpLCJib3JkZXItcmFkaXVzIjoiIi5jb25jYXQocGFyc2VJbnQoNDAvMS41LDEwKSwicHgiKX0sZnVuY3Rpb24odWUsX2Upe2guc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYVtfZV09dWUsaC5zZWxlY3Rpb25IYW5kbGVz''@;'; put 'put ''LnN0eWxlcy50b3BIaXRBcmVhW19lXT11ZX0pLEdsKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGhlaWdodDoiIi5jb25jYXQoMTAsInB4Iiksd2lkdGg6IiIuY29uY2F0KDEwLCJweCIpLCJib3JkZXItcmFkaXVzIjoiIi5jb25jYXQocGFyc2VJbnQoMTAvMS41LDEwKSwicHgiKSxiYWNrZ3JvdW5k''@;'; put 'put ''OiIjRjVGNUZGIixib3JkZXI6IjFweCBzb2xpZCAjNDI4NWM4In0sZnVuY3Rpb24odWUsX2Upe2guc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tW19lXT11ZSxoLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcFtfZV09dWV9KSx0aGlzLm1haW4uYXBwZW5kQ2hpbGQodGhpcy5zZWxl''@;'; put 'put ''Y3Rpb25IYW5kbGVzLnRvcCksdGhpcy5tYWluLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5ib3R0b20pLHRoaXMubWFpbi5hcHBlbmRDaGlsZCh0aGlzLnNlbGVjdGlvbkhhbmRsZXMudG9wSGl0QXJlYSksdGhpcy5tYWluLmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0aW9uSGFu''@;'; put 'put ''ZGxlcy5ib3R0b21IaXRBcmVhKX19LHtrZXk6ImlzUGFydFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMud290LnNlbGVjdGlvbnMuY3JlYXRlT3JHZXRBcmVhKCk7cmV0dXJuISgheS5jZWxsUmFuZ2V8fGg9PT15LmNlbGxSYW5nZS50by5yb3cmJnY9PT15LmNlbGxSYW5n''@;'; put 'put ''ZS50by5jb2wpfX0se2tleToidXBkYXRlTXVsdGlwbGVTZWxlY3Rpb25IYW5kbGVzUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxaKXt2YXIgX2U9dGhpcy53b3Qud3RTZXR0aW5ncy5nZXRTZXR0aW5nKCJydGxNb2RlIik/InJpZ2h0IjoibGVmdCIsQmU9cGFyc2VJbnQodGhp''@;'; put 'put ''cy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3Aud2lkdGgsMTApLE5lPXBhcnNlSW50KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wSGl0QXJlYS53aWR0aCwxMCk7dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3AudG9wPSIiLmNvbmNhdChwYXJzZUludCh5LUJlLTEs''@;'; put 'put ''MTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wW19lXT0iIi5jb25jYXQocGFyc2VJbnQoQy1CZS0xLDEwKSwicHgiKSx0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcEhpdEFyZWEudG9wPSIiLmNvbmNhdChwYXJzZUludCh5LU5lLzQqMywxMCksInB4Iiks''@;'; put 'put ''dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhW19lXT0iIi5jb25jYXQocGFyc2VJbnQoQy1OZS80KjMsMTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tLnRvcD0iIi5jb25jYXQocGFyc2VJbnQoeStaLDEwKSwicHgiKSx0aGlzLnNlbGVj''@;'; put 'put ''dGlvbkhhbmRsZXMuc3R5bGVzLmJvdHRvbVtfZV09IiIuY29uY2F0KHBhcnNlSW50KEMrSSwxMCksInB4IiksdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRBcmVhLnRvcD0iIi5jb25jYXQocGFyc2VJbnQoeStaLU5lLzQsMTApLCJweCIpLHRoaXMuc2VsZWN0aW9uSGFu''@;'; put 'put ''ZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYVtfZV09IiIuY29uY2F0KHBhcnNlSW50KEMrSS1OZS80LDEwKSwicHgiKSx0aGlzLnNldHRpbmdzLmJvcmRlci5jb3JuZXJWaXNpYmxlJiZ0aGlzLnNldHRpbmdzLmJvcmRlci5jb3JuZXJWaXNpYmxlKCk/KHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5z''@;'; put 'put ''dHlsZXMudG9wLmRpc3BsYXk9ImJsb2NrIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcEhpdEFyZWEuZGlzcGxheT0iYmxvY2siLHRoaXMuaXNQYXJ0UmFuZ2UoaCx2KT8odGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxl''@;'; put 'put ''Y3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b21IaXRBcmVhLmRpc3BsYXk9Im5vbmUiKToodGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0iYmxvY2siLHRoaXMuc2VsZWN0aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYS5kaXNwbGF5PSJibG9jayIpKToo''@;'; put 'put ''dGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3AuZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy5ib3R0b20uZGlzcGxheT0ibm9uZSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLmRpc3BsYXk9Im5vbmUiLHRoaXMuc2VsZWN0''@;'; put 'put ''aW9uSGFuZGxlcy5zdHlsZXMuYm90dG9tSGl0QXJlYS5kaXNwbGF5PSJub25lIiksaD09PXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIil8fHY9PT10aGlzLndvdC53dFNldHRpbmdzLmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik/KHRoaXMuc2Vs''@;'; put 'put ''ZWN0aW9uSGFuZGxlcy5zdHlsZXMudG9wLnpJbmRleD0iOTk5OSIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxlcy50b3BIaXRBcmVhLnpJbmRleD0iOTk5OSIpOih0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLnRvcC56SW5kZXg9IiIsdGhpcy5zZWxlY3Rpb25IYW5kbGVzLnN0eWxl''@;'; put 'put ''cy50b3BIaXRBcmVhLnpJbmRleD0iIil9fSx7a2V5OiJhcHBlYXIiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCF0aGlzLmRpc2FibGVkKXtmb3IodmFyIFosdWUsX2UsQmUsTmUsS2Usdj10aGlzLndvdCx5PXYud3RUYWJsZSxDPXYucm9vdERvY3VtZW50LEk9di5yb290V2luZG93LHB0PXkuZ2V0''@;'; put 'put ''UmVuZGVyZWRSb3dzQ291bnQoKSxPdD0wO090PHB0O090Kz0xKXt2YXIgJHQ9eS5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShPdCk7aWYoJHQ+PWhbMF0mJiR0PD1oWzJdKXtaPSR0LE5lPWhbMF07YnJlYWt9fWZvcih2YXIgZm49cHQtMTtmbj49MDtmbi09MSl7dmFyIExuPXkucm93Rmls''@;'; put 'put ''dGVyLnJlbmRlcmVkVG9Tb3VyY2UoZm4pO2lmKExuPj1oWzBdJiZMbjw9aFsyXSl7dWU9TG47YnJlYWt9fWZvcih2YXIgaXI9eS5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpLG1yPTA7bXI8aXI7bXIrPTEpe3ZhciBTcj15LmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKG1yKTtpZihT''@;'; put 'put ''cj49aFsxXSYmU3I8PWhbM10pe19lPVNyLEtlPWhbMV07YnJlYWt9fWZvcih2YXIgd3I9aXItMTt3cj49MDt3ci09MSl7dmFyIFFyPXkuY29sdW1uRmlsdGVyLnJlbmRlcmVkVG9Tb3VyY2Uod3IpO2lmKFFyPj1oWzFdJiZRcjw9aFszXSl7QmU9UXI7YnJlYWt9fWlmKHZvaWQgMD09PVp8fHZv''@;'; put 'put ''aWQgMD09PV9lKXJldHVybiB2b2lkIHRoaXMuZGlzYXBwZWFyKCk7dmFyIHlpPXkuZ2V0Q2VsbCh0aGlzLndvdC5jcmVhdGVDZWxsQ29vcmRzKFosX2UpKSxLaT1aIT09dWV8fF9lIT09QmUsU289S2k/eS5nZXRDZWxsKHRoaXMud290LmNyZWF0ZUNlbGxDb29yZHModWUsQmUpKTp5aSxQbz1q''@;'; put 'put ''dSh5aSksU2E9S2k/anUoU28pOlBvLEphPWp1KHkuVEFCTEUpLGxhPUUyKHkuVEFCTEUpLGFsPVBvLnRvcCxScz1Qby5sZWZ0LEgwPXRoaXMud290Lnd0U2V0dGluZ3MuZ2V0U2V0dGluZygicnRsTW9kZSIpLHJvPTAsZm89MDtpZihIMCl7dmFyIElhPUUyKHlpKTtmbz1ScytJYS1TYS5sZWZ0''@;'; put 'put ''LHJvPUkuaW5uZXJXaWR0aC1Scy1JYS0oSS5pbm5lcldpZHRoLUphLmxlZnQtbGEpLTF9ZWxzZSBmbz1TYS5sZWZ0K0UyKFNvKS1Scyxybz1Scy1KYS5sZWZ0LTE7aWYodGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKFosdWUpKXt2YXIgRm49dGhpcy5nZXREaW1lbnNpb25zRnJvbUhlYWRl''@;'; put 'put ''cigiY29sdW1ucyIsX2UsQmUsTmUsSmEpLFpuPW51bGw7aWYoRm4pe3ZhciBfcj1HcGUoRm4sMyk7Wm49X3JbMF0scm89X3JbMV0sZm89X3JbMl19Wm4mJih5aT1abil9dmFyIFhyPWFsLUphLnRvcC0xLGNpPVNhLnRvcCtEMShTbyktYWw7aWYodGhpcy5pc0VudGlyZVJvd1NlbGVjdGVkKF9l''@;'; put 'put ''LEJlKSl7dmFyIGMwPXRoaXMuZ2V0RGltZW5zaW9uc0Zyb21IZWFkZXIoInJvd3MiLFosdWUsS2UsSmEpLFhpPW51bGw7aWYoYzApe3ZhciBFMD1HcGUoYzAsMyk7WGk9RTBbMF0sWHI9RTBbMV0sY2k9RTBbMl19WGkmJih5aT1YaSl9dmFyIHowPU13KHlpLEkpO3BhcnNlSW50KHowLmJvcmRl''@;'; put 'put ''clRvcFdpZHRoLDEwKT4wJiYoWHIrPTEsY2k9Y2k+MD9jaS0xOjApLHBhcnNlSW50KHowW0gwPyJib3JkZXJSaWdodFdpZHRoIjoiYm9yZGVyTGVmdFdpZHRoIl0sMTApPjAmJihybys9MSxmbz1mbz4wP2ZvLTE6MCk7dmFyIGtvPUgwPyJyaWdodCI6ImxlZnQiO3RoaXMudG9wU3R5bGUudG9w''@;'; put 'put ''PSIiLmNvbmNhdChYciwicHgiKSx0aGlzLnRvcFN0eWxlW2tvXT0iIi5jb25jYXQocm8sInB4IiksdGhpcy50b3BTdHlsZS53aWR0aD0iIi5jb25jYXQoZm8sInB4IiksdGhpcy50b3BTdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5zdGFydFN0eWxlLnRvcD0iIi5jb25jYXQoWHIsInB4Iiks''@;'; put 'put ''dGhpcy5zdGFydFN0eWxlW2tvXT0iIi5jb25jYXQocm8sInB4IiksdGhpcy5zdGFydFN0eWxlLmhlaWdodD0iIi5jb25jYXQoY2ksInB4IiksdGhpcy5zdGFydFN0eWxlLmRpc3BsYXk9ImJsb2NrIjt2YXIgd289TWF0aC5mbG9vcih0aGlzLnNldHRpbmdzLmJvcmRlci53aWR0aC8yKTt0aGlz''@;'; put 'put ''LmJvdHRvbVN0eWxlLnRvcD0iIi5jb25jYXQoWHIrY2ktd28sInB4IiksdGhpcy5ib3R0b21TdHlsZVtrb109IiIuY29uY2F0KHJvLCJweCIpLHRoaXMuYm90dG9tU3R5bGUud2lkdGg9IiIuY29uY2F0KGZvLCJweCIpLHRoaXMuYm90dG9tU3R5bGUuZGlzcGxheT0iYmxvY2siLHRoaXMuZW5k''@;'; put 'put ''U3R5bGUudG9wPSIiLmNvbmNhdChYciwicHgiKSx0aGlzLmVuZFN0eWxlW2tvXT0iIi5jb25jYXQocm8rZm8td28sInB4IiksdGhpcy5lbmRTdHlsZS5oZWlnaHQ9IiIuY29uY2F0KGNpKzEsInB4IiksdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJibG9jayI7dmFyIFdhPXRoaXMuc2V0dGluZ3Mu''@;'; put 'put ''Ym9yZGVyLmNvcm5lclZpc2libGU7V2E9ImZ1bmN0aW9uIj09dHlwZW9mIFdhP1dhKHRoaXMuc2V0dGluZ3MubGF5ZXJMZXZlbCk6V2E7dmFyIGUyPXRoaXMud290LmdldFNldHRpbmcoIm9uTW9kaWZ5R2V0Q2VsbENvb3JkcyIsdWUsQmUpLEhhPXVlLHQyPUJlO2lmKGUyJiZBcnJheS5pc0Fy''@;'; put 'put ''cmF5KGUyKSl7dmFyIE8xPUdwZShlMiw0KTtIYT1PMVsyXSx0Mj1PMVszXX1pZihiOCgpfHwhV2F8fHRoaXMuaXNQYXJ0UmFuZ2UoSGEsdDIpKXRoaXMuY29ybmVyU3R5bGUuZGlzcGxheT0ibm9uZSI7ZWxzZXt0aGlzLmNvcm5lclN0eWxlLnRvcD0iIi5jb25jYXQoWHIrY2krdGhpcy5jb3Ju''@;'; put 'put ''ZXJDZW50ZXJQb2ludE9mZnNldC0xLCJweCIpLHRoaXMuY29ybmVyU3R5bGVba29dPSIiLmNvbmNhdChybytmbyt0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LTEsInB4IiksdGhpcy5jb3JuZXJTdHlsZS5ib3JkZXJSaWdodFdpZHRoPXRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmJvcmRl''@;'; put 'put ''cldpZHRoLHRoaXMuY29ybmVyU3R5bGUud2lkdGg9dGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsdGhpcy5jb3JuZXJTdHlsZS5kaXNwbGF5PSJub25lIjt2YXIgUjE9aE8oeS5UQUJMRSksenU9UjE9PT1JO2lmKHp1JiYoUjE9Qy5kb2N1bWVudEVsZW1lbnQpLEJlPT09dGhpcy53b3Qu''@;'; put 'put ''Z2V0U2V0dGluZygidG90YWxDb2x1bW5zIiktMSl7dmFyIFBjPXp1P1NvLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ6U28ub2Zmc2V0TGVmdDsoSDA/UGMtcGFyc2VJbnQodGhpcy5jb3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzI8MDpQYytFMihTbykrcGFyc2VJbnQodGhpcy5j''@;'; put 'put ''b3JuZXJEZWZhdWx0U3R5bGUud2lkdGgsMTApLzI+PU5aKFIxKSkmJih0aGlzLmNvcm5lclN0eWxlW2tvXT0iIi5jb25jYXQoTWF0aC5mbG9vcihybytmbyt0aGlzLmNvcm5lckNlbnRlclBvaW50T2Zmc2V0LXBhcnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLndpZHRoLDEwKS8yKSwi''@;'; put 'put ''cHgiKSx0aGlzLmNvcm5lclN0eWxlW0gwPyJib3JkZXJMZWZ0V2lkdGgiOiJib3JkZXJSaWdodFdpZHRoIl09MCl9dWU9PT10aGlzLndvdC5nZXRTZXR0aW5nKCJ0b3RhbFJvd3MiKS0xJiYoenU/U28uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wOlNvLm9mZnNldFRvcCkrRDEoU28pK3Bh''@;'; put 'put ''cnNlSW50KHRoaXMuY29ybmVyRGVmYXVsdFN0eWxlLmhlaWdodCwxMCkvMj49RXYoUjEpJiYodGhpcy5jb3JuZXJTdHlsZS50b3A9IiIuY29uY2F0KE1hdGguZmxvb3IoWHIrY2krdGhpcy5jb3JuZXJDZW50ZXJQb2ludE9mZnNldC1wYXJzZUludCh0aGlzLmNvcm5lckRlZmF1bHRTdHlsZS5o''@;'; put 'put ''ZWlnaHQsMTApLzIpLCJweCIpLHRoaXMuY29ybmVyU3R5bGUuYm9yZGVyQm90dG9tV2lkdGg9MCksdGhpcy5jb3JuZXJTdHlsZS5kaXNwbGF5PSJibG9jayJ9YjgoKSYmdGhpcy51cGRhdGVNdWx0aXBsZVNlbGVjdGlvbkhhbmRsZXNQb3NpdGlvbih1ZSxCZSxYcixybyxmbyxjaSl9fX0se2tl''@;'; put 'put ''eToiaXNFbnRpcmVDb2x1bW5TZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gaD09PXRoaXMud290Lnd0VGFibGUuZ2V0Rmlyc3RSZW5kZXJlZFJvdygpJiZ2PT09dGhpcy53b3Qud3RUYWJsZS5nZXRMYXN0UmVuZGVyZWRSb3coKX19LHtrZXk6ImlzRW50aXJlUm93U2VsZWN0''@;'; put 'put ''ZWQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIGg9PT10aGlzLndvdC53dFRhYmxlLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKSYmdj09PXRoaXMud290Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCl9fSx7a2V5OiJnZXREaW1lbnNpb25zRnJvbUhlYWRlciIsdmFsdWU6ZnVu''@;'; put 'put ''Y3Rpb24oaCx2LHksQyxJKXt2YXIgWj10aGlzLndvdC53dFRhYmxlLHVlPVoud3RSb290RWxlbWVudC5wYXJlbnROb2RlLF9lPW51bGwsQmU9bnVsbCxOZT1udWxsLEtlPW51bGwscHQ9bnVsbCxPdD1udWxsLCR0PW51bGwsZm49bnVsbDtzd2l0Y2goaCl7Y2FzZSJyb3dzIjpfZT1mdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiBaLmdldFJvd0hlYWRlci5hcHBseShaLGFyZ3VtZW50cyl9LEJlPWZ1bmN0aW9uKCl7cmV0dXJuIEQxLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSxOZT0iaHRfX3NlbGVjdGlvbi0tcm93cyIsT3Q9InRvcCI7YnJlYWs7Y2FzZSJjb2x1bW5zIjpfZT1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBaLmdldENvbHVtbkhlYWRlci5hcHBseShaLGFyZ3VtZW50cyl9LEJlPWZ1bmN0aW9uKCl7cmV0dXJuIEUyLmFwcGx5KHZvaWQgMCxhcmd1bWVudHMpfSxOZT0iaHRfX3NlbGVjdGlvbi0tY29sdW1ucyIsT3Q9ImxlZnQifWlmKHVlLmNsYXNzTGlzdC5jb250YWlucyhOZSkpe3ZhciBM''@;'; put 'put ''bj10aGlzLndvdC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoO2lmKCR0PV9lKHYsTG4tQyksZm49X2UoeSxMbi1DKSwhJHR8fCFmbilyZXR1cm4hMTt2YXIgaXI9anUoJHQpLG1yPWp1KGZuKTtyZXR1cm4gJHQmJmZuJiYoS2U9aXJbT3RdLUlbT3RdLTEscHQ9bXJbT3RdK0Jl''@;'; put 'put ''KGZuKS1pcltPdF0pLFskdCxLZSxwdF19cmV0dXJuITF9fSx7a2V5OiJjaGFuZ2VCb3JkZXJTdHlsZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzW2hdLnN0eWxlLEM9dltoXTshQ3x8Qy5oaWRlP08wKHRoaXNbaF0sImhpZGRlbiIpOih0bCh0aGlzW2hdLCJoaWRkZW4iKSYmcGwo''@;'; put 'put ''dGhpc1toXSwiaGlkZGVuIikseS5iYWNrZ3JvdW5kQ29sb3I9Qy5jb2xvciwoInRvcCI9PT1ofHwiYm90dG9tIj09PWgpJiYoeS5oZWlnaHQ9IiIuY29uY2F0KEMud2lkdGgsInB4IikpLCgic3RhcnQiPT09aHx8ImVuZCI9PT1oKSYmKHkud2lkdGg9IiIuY29uY2F0KEMud2lkdGgsInB4Iikp''@;'; put 'put ''KX19LHtrZXk6ImNoYW5nZUJvcmRlclRvRGVmYXVsdFN0eWxlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgeT10aGlzW2hdLnN0eWxlO3kuYmFja2dyb3VuZENvbG9yPSIjMDAwIix5LndpZHRoPSIiLmNvbmNhdCgxLCJweCIpLHkuaGVpZ2h0PSIiLmNvbmNhdCgxLCJweCIpfX0se2tleToidG9n''@;'; put 'put ''Z2xlSGlkZGVuQ2xhc3MiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dGhpcy5jaGFuZ2VCb3JkZXJUb0RlZmF1bHRTdHlsZShoKSx2P08wKHRoaXNbaF0sImhpZGRlbiIpOnBsKHRoaXNbaF0sImhpZGRlbiIpfX0se2tleToiZGlzYXBwZWFyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudG9wU3R5bGUu''@;'; put 'put ''ZGlzcGxheT0ibm9uZSIsdGhpcy5ib3R0b21TdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLnN0YXJ0U3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5lbmRTdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLmNvcm5lclN0eWxlLmRpc3BsYXk9Im5vbmUiLGI4KCkmJih0aGlzLnNlbGVjdGlvbkhhbmRs''@;'; put 'put ''ZXMuc3R5bGVzLnRvcC5kaXNwbGF5PSJub25lIix0aGlzLnNlbGVjdGlvbkhhbmRsZXMuc3R5bGVzLmJvdHRvbS5kaXNwbGF5PSJub25lIil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmRlc3Ryb3lXaXRoT3duRXZlbnRzT25seSgpLHRoaXMu''@;'; put 'put ''bWFpbi5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMubWFpbil9fV0pLGR9KCk7Y29uc3QgS1hlPVhYZTtmdW5jdGlvbiBQa2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1''@;'; put 'put ''cm4gdn1mdW5jdGlvbiBXcGUoZCl7cmV0dXJuKFdwZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEZrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29u''@;'; put 'put ''ZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBvS2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIHJLZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBl''@;'; put 'put ''RXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnNldHRpbmdzPWcsdGhpcy5jZWxsUmFuZ2U9aHx8bnVsbCx0aGlzLmluc3RhbmNlQm9yZGVycz17fSx0aGlzLmNsYXNzTmFtZXM9W3RoaXMuc2V0dGluZ3MuY2xhc3NOYW1lXSx0aGlzLmNs''@;'; put 'put ''YXNzTmFtZUdlbmVyYXRvcj10aGlzLmxpbmVhckNsYXNzTmFtZUdlbmVyYXRvcih0aGlzLnNldHRpbmdzLmNsYXNzTmFtZSx0aGlzLnNldHRpbmdzLmxheWVyTGV2ZWwpfXJldHVybiBmdW5jdGlvbiBpS2UoZCxnLGgpe2cmJkZrZShkLnByb3RvdHlwZSxnKSxoJiZGa2UoZCxoKSxPYmplY3Qu''@;'; put 'put ''ZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0Qm9yZGVyIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pbnN0YW5jZUJvcmRlcnNbaC5ndWlkXXx8KHRoaXMuaW5zdGFuY2VCb3JkZXJzW2guZ3VpZF09bmV3IEtYZShoLHRoaXMu''@;'; put 'put ''c2V0dGluZ3MpKSx0aGlzLmluc3RhbmNlQm9yZGVyc1toLmd1aWRdfX0se2tleToiaXNFbXB0eSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXRoaXMuY2VsbFJhbmdlfX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5pc0VtcHR5KCk/dGhpcy5jZWxs''@;'; put 'put ''UmFuZ2U9dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFuZ2UoaCk6dGhpcy5jZWxsUmFuZ2UuZXhwYW5kKGgpLHRoaXN9fSx7a2V5OiJyZXBsYWNlIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKCF0aGlzLmlzRW1wdHkoKSl7aWYodGhpcy5jZWxsUmFuZ2UuZnJvbS5pc0VxdWFsKGgpKXJldHVy''@;'; put 'put ''biB0aGlzLmNlbGxSYW5nZS5mcm9tPXYsITA7aWYodGhpcy5jZWxsUmFuZ2UudG8uaXNFcXVhbChoKSlyZXR1cm4gdGhpcy5jZWxsUmFuZ2UudG89diwhMH1yZXR1cm4hMX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbGxSYW5nZT1udWxsLHRoaXN9fSx7''@;'; put 'put ''a2V5OiJnZXRDb3JuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY2VsbFJhbmdlLmdldE91dGVyVG9wU3RhcnRDb3JuZXIoKSx2PXRoaXMuY2VsbFJhbmdlLmdldE91dGVyQm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuW2gucm93LGguY29sLHYucm93LHYuY29sXX19LHtrZXk6ImFk''@;'; put 'put ''ZENsYXNzQXRDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdJiZhcmd1bWVudHNbNF0sWj1oLnd0VGFibGUuZ2V0Q2VsbCh0aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxDb29yZHModix5KSk7aWYoIm9i''@;'; put 'put ''amVjdCI9PT1XcGUoWikpe3ZhciB1ZT1DO0kmJih1ZT10aGlzLmNsYXNzTmFtZUdlbmVyYXRvcihaKSx0aGlzLmNsYXNzTmFtZXMuaW5jbHVkZXModWUpfHx0aGlzLmNsYXNzTmFtZXMucHVzaCh1ZSkpLE8wKFosdWUpfXJldHVybiB0aGlzfX0se2tleToibGluZWFyQ2xhc3NOYW1lR2VuZXJh''@;'; put 'put ''dG9yIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBmdW5jdGlvbiB5KEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTotMTtpZigwPT09dnx8MD09PUkpcmV0dXJuIGg7dmFyIFo9ST49MD9JOnYsdWU9aCxfZT0wPT0oWi09''@;'; put 'put ''MSk/aDoiIi5jb25jYXQoaCwiLSIpLmNvbmNhdChaKTtpZih0bChDLF9lKSl7dmFyIEJlPVorMTt1ZT0iIi5jb25jYXQoaCwiLSIpLmNvbmNhdChCZSl9ZWxzZSB1ZT15KEMsWik7cmV0dXJuIHVlfX19LHtrZXk6ImRyYXciLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKHRoaXMuaXNFbXB0eSgpKXRo''@;'; put 'put ''aXMuc2V0dGluZ3MuYm9yZGVyJiZ0aGlzLmdldEJvcmRlcihoKS5kaXNhcHBlYXIoKTtlbHNle3ZhciB2PWgud3RUYWJsZS5nZXRSZW5kZXJlZFJvd3NDb3VudCgpLHk9aC53dFRhYmxlLmdldFJlbmRlcmVkQ29sdW1uc0NvdW50KCksQz10aGlzLmdldENvcm5lcnMoKSxJPWZ1bmN0aW9uICRY''@;'; put 'put ''ZShkLGcpe3JldHVybiBmdW5jdGlvbiBuS2UoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHRLZShkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07''@;'; put 'put ''aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgu''@;'; put 'put ''cmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIGVLZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gUGtlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNl''@;'; put 'put ''KDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkk''@;'; put 'put ''Ly50ZXN0KGgpKXJldHVybiBQa2UoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIHFYZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVj''@;'; put 'put ''dHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEMsNCksWj1JWzBdLHVlPUlbMV0sX2U9SVsyXSxCZT1JWzNdLE5lPXRoaXMuc2V0dGluZ3MsS2U9TmUuaGlnaGxpZ2h0SGVhZGVyQ2xhc3NOYW1lLHB0PU5lLmhpZ2hsaWdodENvbHVtbkNsYXNzTmFtZSxP''@;'; put 'put ''dD1OZS5oaWdobGlnaHRSb3dDbGFzc05hbWUsJHQ9TmUuaGlnaGxpZ2h0T25seUNsb3Nlc3RIZWFkZXIsZm49TmUuc2VsZWN0aW9uVHlwZSxMbj12b2lkIDA9PT1mbnx8WyJhY3RpdmUtaGVhZGVyIiwiaGVhZGVyIl0uaW5jbHVkZXMoZm4pO2lmKExuJiZudWxsIT09dWUmJm51bGwhPT1CZSlm''@;'; put 'put ''b3IodmFyIGlyPTAsbXI9MDttcjx5O21yKz0xKXt2YXIgU3I9aC53dFRhYmxlLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKG1yKTtpZihTcj49dWUmJlNyPD1CZSl7dmFyIHdyPWgud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXJzKFNyKSxRcj13ci5sZW5ndGgtMTskdCYmd3IubGVuZ3Ro''@;'; put 'put ''PjEmJih3cj1bd3JbUXJdXSk7Zm9yKHZhciB5aT0wO3lpPHdyLmxlbmd0aDt5aSs9MSl7dmFyIEtpPVtdLFNvPXdyW3lpXTtLZSYmS2kucHVzaChLZSkscHQmJktpLnB1c2gocHQpO3ZhciBQbz1oLmdldFNldHRpbmcoIm9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIixTcix5aT0k''@;'; put 'put ''dD9Rcjp5aSx7c2VsZWN0aW9uVHlwZTpmbixjb2x1bW5DdXJzb3I6aXIsc2VsZWN0aW9uV2lkdGg6QmUtdWUrMSxjbGFzc05hbWVzOktpfSk7UG8hPT1TciYmKFNvPWgud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXIoUG8seWkpKSxPMChTbyxLaSl9aXIrPTF9fWlmKG51bGwhPT1aJiZudWxsIT09''@;'; put 'put ''X2UpZm9yKHZhciBTYT0wLEphPTA7SmE8djtKYSs9MSl7dmFyIGxhPWgud3RUYWJsZS5yb3dGaWx0ZXIucmVuZGVyZWRUb1NvdXJjZShKYSk7aWYoTG4mJmxhPj1aJiZsYTw9X2Upe3ZhciBhbD1oLnd0VGFibGUuZ2V0Um93SGVhZGVycyhsYSksUnM9YWwubGVuZ3RoLTE7JHQmJmFsLmxlbmd0''@;'; put 'put ''aD4xJiYoYWw9W2FsW1JzXV0pO2Zvcih2YXIgSDA9MDtIMDxhbC5sZW5ndGg7SDArPTEpe3ZhciBybz1bXSxmbz1hbFtIMF07S2UmJnJvLnB1c2goS2UpLE90JiZyby5wdXNoKE90KTt2YXIgSWE9aC5nZXRTZXR0aW5nKCJvbkJlZm9yZUhpZ2hsaWdodGluZ1Jvd0hlYWRlciIsbGEsSDA9JHQ/''@;'; put 'put ''UnM6SDAse3NlbGVjdGlvblR5cGU6Zm4scm93Q3Vyc29yOlNhLHNlbGVjdGlvbkhlaWdodDpfZS1aKzEsY2xhc3NOYW1lczpyb30pO0lhIT09bGEmJihmbz1oLnd0VGFibGUuZ2V0Um93SGVhZGVyKElhLEgwKSksTzAoZm8scm8pfVNhKz0xfWlmKG51bGwhPT11ZSYmbnVsbCE9PUJlKWZvcih2''@;'; put 'put ''YXIgWGw9MDtYbDx5O1hsKz0xKXt2YXIgRm49aC53dFRhYmxlLmNvbHVtbkZpbHRlci5yZW5kZXJlZFRvU291cmNlKFhsKTtsYT49WiYmbGE8PV9lJiZGbj49dWUmJkZuPD1CZT90aGlzLnNldHRpbmdzLmNsYXNzTmFtZSYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEsRm4sdGhpcy5zZXR0''@;'; put 'put ''aW5ncy5jbGFzc05hbWUsdGhpcy5zZXR0aW5ncy5tYXJrSW50ZXJzZWN0aW9ucyk6bGE+PVomJmxhPD1fZT9PdCYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEsRm4sT3QpOkZuPj11ZSYmRm48PUJlJiZwdCYmdGhpcy5hZGRDbGFzc0F0Q29vcmRzKGgsbGEsRm4scHQpO3ZhciBabj1oLmdl''@;'; put 'put ''dFNldHRpbmcoIm9uQWZ0ZXJEcmF3U2VsZWN0aW9uIixsYSxGbix0aGlzLnNldHRpbmdzLmxheWVyTGV2ZWwpOyJzdHJpbmciPT10eXBlb2YgWm4mJnRoaXMuYWRkQ2xhc3NBdENvb3JkcyhoLGxhLEZuLFpuKX19aC5nZXRTZXR0aW5nKCJvbkJlZm9yZURyYXdCb3JkZXJzIixDLHRoaXMuc2V0''@;'; put 'put ''dGluZ3MuY2xhc3NOYW1lKSx0aGlzLnNldHRpbmdzLmJvcmRlciYmdGhpcy5nZXRCb3JkZXIoaCkuYXBwZWFyKEMpfX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7T2JqZWN0LnZhbHVlcyh0aGlzLmluc3RhbmNlQm9yZGVycykuZm9yRWFjaChmdW5jdGlvbihoKXtyZXR1cm4g''@;'; put 'put ''aC5kZXN0cm95KCl9KX19XSksZH0oKTtmdW5jdGlvbiBZcGUoZCl7cmV0dXJuKFlwZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVu''@;'; put 'put ''Y3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEhrZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVu''@;'; put 'put ''dW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGF0ZSgpe3JldHVybiBhdGU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZs''@;'; put 'put ''ZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PXVLZShnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sYXRlLmFwcGx5KHRo''@;'; put 'put ''aXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1S2UoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPXlPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFVwZShkLGcpe3JldHVybihVcGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVj''@;'; put 'put ''dC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBoS2UoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1ZcGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5l''@;'; put 'put ''dyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIE5rZShkKX1mdW5jdGlvbiBOa2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlh''@;'; put 'put ''bGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIHlPKGQpe3JldHVybih5Tz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQ''@;'; put 'put ''cm90b3R5cGVPZihoKX0pKGQpfXZhciBnS2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGNLZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIp''@;'; put 'put ''O2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZVcGUoZCxnKX0oaCxkKTt2''@;'; put 'put ''YXIgZz1mdW5jdGlvbiBmS2UoZCl7dmFyIGc9ZnVuY3Rpb24gZEtlKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3Ry''@;'; put 'put ''eXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9eU8oZCk7aWYoZyl7dmFyIEM9eU8odGhpcykuY29u''@;'; put 'put ''c3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGhLZSh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBsS2UoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBn''@;'; put 'put ''KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxmdW5jdGlvbiBwS2UoZCxnLGgpe2cgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRh''@;'; put 'put ''YmxlOiEwfSk6ZFtnXT1ofShOa2UoQz1nLmNhbGwodGhpcyx2LG51bGwpKSwidmlzdWFsQ2VsbFJhbmdlIixudWxsKSxDLnZpc3VhbENlbGxSYW5nZT15fHxudWxsLEMuY29tbWl0KCksQ31yZXR1cm4gZnVuY3Rpb24gc0tlKGQsZyxoKXtnJiZIa2UoZC5wcm90b3R5cGUsZyksaCYmSGtlKGQs''@;'; put 'put ''aCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIG51bGw9PT10aGlzLnZpc3VhbENlbGxSYW5nZT90aGlzLnZpc3VhbENlbGxSYW5nZT10aGlzLnNldHRpbmdzLmNyZWF0ZUNl''@;'; put 'put ''bGxSYW5nZSh5KTp0aGlzLnZpc3VhbENlbGxSYW5nZS5leHBhbmQoeSksdGhpc319LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZpc3VhbENlbGxSYW5nZT1udWxsLGF0ZSh5TyhoLnByb3RvdHlwZSksImNsZWFyIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToi''@;'; put 'put ''dHJpbVRvVmlzaWJsZUNlbGxzUmFuZ2VPbmx5Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz15LmZyb20sST15LnRvLFo9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKEMsMSksdWU9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzKEksLTEpO2lmKG51bGw9PT1afHxudWxsPT09''@;'; put 'put ''dWUpcmV0dXJuIG51bGw7aWYoWi5yb3c+dWUucm93fHxaLmNvbD51ZS5jb2wpe2lmKCJoZWFkZXIiIT09dGhpcy5zZXR0aW5ncy50eXBlJiYiYWN0aXZlLWhlYWRlciIhPT10aGlzLnNldHRpbmdzLnR5cGUpcmV0dXJuIG51bGw7Wj1DLHVlPUl9cmV0dXJuIHRoaXMuc2V0dGluZ3MuY3JlYXRl''@;'; put 'put ''Q2VsbFJhbmdlKFosWix1ZSl9fSx7a2V5OiJnZXROZWFyZXN0Tm90SGlkZGVuQ29vcmRzIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpDLFo9dGhpcy5nZXROZWFyZXN0Tm90SGlkZGVuSW5k''@;'; put 'put ''ZXgodGhpcy5zZXR0aW5ncy5yb3dJbmRleE1hcHBlcigpLHkucm93LEMpO2lmKG51bGw9PT1aKXJldHVybiBudWxsO3ZhciB1ZT10aGlzLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh0aGlzLnNldHRpbmdzLmNvbHVtbkluZGV4TWFwcGVyKCkseS5jb2wsSSk7cmV0dXJuIG51bGw9PT11ZT9u''@;'; put 'put ''dWxsOnRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbENvb3JkcyhaLHVlKX19LHtrZXk6ImdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKEM8MClyZXR1cm4gQzt2YXIgWj15LmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChDLEkpO3JldHVybiJoZWFkZXIi''@;'; put 'put ''IT09dGhpcy5zZXR0aW5ncy50eXBlJiYiYWN0aXZlLWhlYWRlciIhPT10aGlzLnNldHRpbmdzLnR5cGV8fG51bGwhPT1aP1o6LTF9fSx7a2V5OiJjb21taXQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYobnVsbD09PXRoaXMudmlzdWFsQ2VsbFJhbmdlKXJldHVybiB0aGlzO3ZhciB5PXRoaXMudHJp''@;'; put 'put ''bVRvVmlzaWJsZUNlbGxzUmFuZ2VPbmx5KHRoaXMudmlzdWFsQ2VsbFJhbmdlKTtyZXR1cm4gdGhpcy5jZWxsUmFuZ2U9bnVsbD09PXk/bnVsbDp0aGlzLmNyZWF0ZVJlbmRlcmFibGVDZWxsUmFuZ2UoeS5mcm9tLHkudG8pLHRoaXN9fSx7a2V5OiJzeW5jV2l0aCIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''eSl7dmFyIEM9Ik4tUyI9PT15LmdldFZlcnRpY2FsRGlyZWN0aW9uKCk/MTotMSxJPSJXLUUiPT09eS5nZXRIb3Jpem9udGFsRGlyZWN0aW9uKCk/MTotMSxaPXRoaXMuZ2V0TmVhcmVzdE5vdEhpZGRlbkNvb3Jkcyh5LmZyb20uY2xvbmUoKS5ub3JtYWxpemUoKSxDLEkpO2lmKG51bGwhPT1a''@;'; put 'put ''JiZ5Lm92ZXJsYXBzKFopKXtpZihudWxsPT09dGhpcy5jZWxsUmFuZ2Upe3ZhciB1ZT10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhaKTt0aGlzLmNlbGxSYW5nZT10aGlzLnNldHRpbmdzLmNyZWF0ZUNlbGxSYW5nZSh1ZSl9cmV0dXJuIHkuc2V0SGlnaGxpZ2h0KFop''@;'; put 'put ''LHRoaXN9cmV0dXJuIHkuc2V0SGlnaGxpZ2h0KHkuZnJvbSksdGhpc319LHtrZXk6ImdldENvcm5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5jZWxsUmFuZ2UsQz15LmZyb20sST15LnRvLFo9bnVsbD09PUMucm93fHxudWxsPT09SS5yb3csdWU9bnVsbD09PUMuY29sfHxudWxs''@;'; put 'put ''PT09SS5jb2wsX2U9dGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsQ29vcmRzKFo/bnVsbDpNYXRoLm1pbihDLnJvdyxJLnJvdyksdWU/bnVsbDpNYXRoLm1pbihDLmNvbCxJLmNvbCkpLEJlPXRoaXMuc2V0dGluZ3MuY3JlYXRlQ2VsbENvb3JkcyhaP251bGw6TWF0aC5tYXgoQy5yb3csSS5yb3cp''@;'; put 'put ''LHVlP251bGw6TWF0aC5tYXgoQy5jb2wsSS5jb2wpKTtyZXR1cm5bX2Uucm93LF9lLmNvbCxCZS5yb3csQmUuY29sXX19LHtrZXk6ImdldFZpc3VhbENvcm5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5zZXR0aW5ncy5yZW5kZXJhYmxlVG9WaXN1YWxDb29yZHModGhpcy5jZWxs''@;'; put 'put ''UmFuZ2UuZ2V0VG9wU3RhcnRDb3JuZXIoKSksQz10aGlzLnNldHRpbmdzLnJlbmRlcmFibGVUb1Zpc3VhbENvb3Jkcyh0aGlzLmNlbGxSYW5nZS5nZXRCb3R0b21FbmRDb3JuZXIoKSk7cmV0dXJuW3kucm93LHkuY29sLEMucm93LEMuY29sXX19LHtrZXk6ImNyZWF0ZVJlbmRlcmFibGVDZWxs''@;'; put 'put ''UmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5zZXR0aW5ncy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoeSksWj10aGlzLnNldHRpbmdzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhDKTtyZXR1cm4gdGhpcy5zZXR0aW5ncy5jcmVhdGVDZWxsUmFuZ2UoSSxJLFopfX1d''@;'; put 'put ''KSxofShvS2UpO2NvbnN0IHdPPWdLZTt2YXIgbUtlPVsiYWN0aXZlSGVhZGVyQ2xhc3NOYW1lIl07ZnVuY3Rpb24gVmtlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhk''@;'; put 'put ''KTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gamtlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKysp''@;'; put 'put ''e3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP1ZrZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7dktlKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0''@;'; put 'put ''LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOlZrZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gdktlKGQsZyxoKXtyZXR1''@;'; put 'put ''cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH12YXIgX0tlPVsibGF5ZXJMZXZlbCIsImFyZWFDb3JuZXJWaXNpYmxlIl07ZnVuY3Rpb24gWmtlKGQsZyl7dmFyIGg9''@;'; put 'put ''T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFi''@;'; put 'put ''bGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gemtlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP1prZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24o''@;'; put 'put ''dil7Q0tlKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOlprZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gQ0tlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFi''@;'; put 'put ''bGU6ITB9KTpkW2ddPWgsZH12YXIgeEtlPVsiY2VsbENvcm5lclZpc2libGUiXTtmdW5jdGlvbiBHa2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYu''@;'; put 'put ''ZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBXa2UoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVs''@;'; put 'put ''bCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/R2tlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtUS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJv''@;'; put 'put ''cGVydHlEZXNjcmlwdG9ycyhoKSk6R2tlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBUS2UoZCxnLGgpe3JldHVybiBnIGluIGQ/''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBSS2U9WyJib3JkZXIiLCJ2aXN1YWxDZWxsUmFuZ2UiXTtmdW5jdGlvbiBZa2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtp''@;'; put 'put ''ZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBw''@;'; put 'put ''bHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBRcGUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/WWtlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtCS2UoZCx2LGhbdl0p''@;'; put 'put ''fSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6WWtlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVj''@;'; put 'put ''dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBCS2UoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxk''@;'; put 'put ''fWZ1bmN0aW9uIFVrZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0''@;'; put 'put ''eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIFFrZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9Va2UoT2JqZWN0''@;'; put 'put ''KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe1ZLZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpVa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1''@;'; put 'put ''bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIFZLZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6''@;'; put 'put ''ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9TCgzMzQ3MCk7dmFyIHpLZT1bImhlYWRlckNsYXNzTmFtZSIsInJvd0NsYXNzTmFtZSIsImNvbHVtbkNsYXNzTmFtZSJdO2Z1bmN0aW9uIEprZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRP''@;'; put 'put ''d25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVy''@;'; put 'put ''biBofWZ1bmN0aW9uIFhrZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9Ka2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe0dLZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0''@;'; put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpKa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3Bl''@;'; put 'put ''cnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIEdLZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gS2tl''@;'; put 'put ''KGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihk''@;'; put 'put ''LHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gWEtlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgs''@;'; put 'put ''ZH12YXIgJGtlPUxwKCJoaWdobGlnaHQvdHlwZXMiKSxiTz0ka2UucmVnaXN0ZXIsS0tlPSRrZS5nZXRJdGVtO2Z1bmN0aW9uIF9PKGQsZyl7cmV0dXJuIEtLZShkKShmdW5jdGlvbiBKS2UoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1l''@;'; put 'put ''bnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/S2tlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtYS2UoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj''@;'; put 'put ''cmlwdG9ycyhoKSk6S2tlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH0oe3R5cGU6ZH0sZykpfWZ1bmN0aW9uIEx3KGQpe3JldHVybiBmdW5jdGlv''@;'; put 'put ''biB0JGUoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gSnBlKGQpfShkKXx8ZnVuY3Rpb24gZSRlKGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0o''@;'; put 'put ''ZCl8fGZ1bmN0aW9uIHFLZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gSnBlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rv''@;'; put 'put ''ci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBKcGUoZCxnKX19KGQpfHxmdW5jdGlvbiAkS2UoKXt0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBKcGUo''@;'; put 'put ''ZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBxa2UoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xz''@;'; put 'put ''KXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBzeihk''@;'; put 'put ''KXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9xa2UoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe24kZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw''@;'; put 'put ''dG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpxa2UoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYp''@;'; put 'put ''KX0pfXJldHVybiBkfWZ1bmN0aW9uIG4kZShkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gZVNlKGQsZyl7Zm9yKHZhciBoPTA7''@;'; put 'put ''aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19Yk8oaXRlLGZ1bmN0aW9uIHdLZShkKXt2YXIg''@;'; put 'put ''Zz1kLmFjdGl2ZUhlYWRlckNsYXNzTmFtZSxoPWZ1bmN0aW9uIEFLZShkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1bmN0aW9uIHlLZShkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9yKEM9MDtDPHYubGVuZ3RoO0Mr''@;'; put 'put ''KykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhbeV09ZFt5XSk7cmV0dXJuIGh9KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsrKSEoZy5pbmRleE9mKHY9Q1t5''@;'; put 'put ''XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJuIGh9KGQsbUtlKTtyZXR1cm4gbmV3IHdPKGprZShqa2Uoe2hpZ2hsaWdodEhlYWRlckNsYXNzTmFtZTpnfSxoKSx7fSx7c2VsZWN0aW9uVHlwZTppdGV9''@;'; put 'put ''KSl9KSxiTyhvdGUsZnVuY3Rpb24gTUtlKGQpe3ZhciBnPWQubGF5ZXJMZXZlbCxoPWQuYXJlYUNvcm5lclZpc2libGUsdj1mdW5jdGlvbiBrS2UoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB2LHksaD1mdW5jdGlvbiBTS2UoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB5LEMs''@;'; put 'put ''aD17fSx2PU9iamVjdC5rZXlzKGQpO2ZvcihDPTA7Qzx2Lmxlbmd0aDtDKyspIShnLmluZGV4T2YoeT12W0NdKT49MCkmJihoW3ldPWRbeV0pO3JldHVybiBofShkLGcpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMo''@;'; put 'put ''ZCk7Zm9yKHk9MDt5PEMubGVuZ3RoO3krKykhKGcuaW5kZXhPZih2PUNbeV0pPj0wKSYmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZCx2KXx8KGhbdl09ZFt2XSkpfXJldHVybiBofShkLF9LZSk7cmV0dXJuIG5ldyB3Tyh6a2UoemtlKHtjbGFzc05hbWU6''@;'; put 'put ''ImFyZWEiLG1hcmtJbnRlcnNlY3Rpb25zOiEwLGxheWVyTGV2ZWw6TWF0aC5taW4oZyw3KSxib3JkZXI6e3dpZHRoOjEsY29sb3I6IiM0Yjg5ZmYiLGNvcm5lclZpc2libGU6aH19LHYpLHt9LHtzZWxlY3Rpb25UeXBlOm90ZX0pKX0pLGJPKGF6LGZ1bmN0aW9uIExLZShkKXt2YXIgZz1kLmNl''@;'; put 'put ''bGxDb3JuZXJWaXNpYmxlLGg9ZnVuY3Rpb24gSUtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gREtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRl''@;'; put 'put ''eE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJigh''@;'; put 'put ''T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCx4S2UpO3JldHVybiBuZXcgd08oV2tlKFdrZSh7Y2xhc3NOYW1lOiJjdXJyZW50Iixib3JkZXI6e3dpZHRoOjIsY29sb3I6IiM0Yjg5ZmYiLGNvcm5lclZpc2li''@;'; put 'put ''bGU6Z319LGgpLHt9LHtzZWxlY3Rpb25UeXBlOmF6fSkpfSksYk8oenBlLGZ1bmN0aW9uIEhLZShkKXt2YXIgZz1kLmJvcmRlcixoPWQudmlzdWFsQ2VsbFJhbmdlLHY9ZnVuY3Rpb24gUEtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gRktlKGQsZyl7aWYo''@;'; put 'put ''bnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmpl''@;'; put 'put ''Y3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCxSS2UpO3JldHVybiBu''@;'; put 'put ''ZXcgd08oUXBlKFFwZShRcGUoe30sZyksdikse30se3NlbGVjdGlvblR5cGU6enBlfSksaCl9KSxiTygiZmlsbCIsZnVuY3Rpb24gaktlKGQpe3ZhciBnPU9iamVjdC5hc3NpZ24oe30sZCk7cmV0dXJuIG5ldyB3TyhRa2UoUWtlKHtjbGFzc05hbWU6ImZpbGwiLGJvcmRlcjp7d2lkdGg6MSxj''@;'; put 'put ''b2xvcjoiI2ZmMDAwMCJ9fSxnKSx7fSx7c2VsZWN0aW9uVHlwZToiZmlsbCJ9KSl9KSxiTyhseixmdW5jdGlvbiBVS2UoZCl7dmFyIGc9ZC5oZWFkZXJDbGFzc05hbWUsaD1kLnJvd0NsYXNzTmFtZSx2PWQuY29sdW1uQ2xhc3NOYW1lLHk9ZnVuY3Rpb24gV0tlKGQsZyl7aWYobnVsbD09ZCly''@;'; put 'put ''ZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gWUtlKGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxnKTtpZihP''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGQsdil8''@;'; put 'put ''fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH0oZCx6S2UpO3JldHVybiBuZXcgd08oWGtlKFhrZSh7Y2xhc3NOYW1lOiJoaWdobGlnaHQiLGhpZ2hsaWdodEhlYWRlckNsYXNzTmFtZTpnLGhpZ2hsaWdodFJvd0NsYXNzTmFtZTpoLGhpZ2hsaWdodENvbHVtbkNsYXNzTmFtZTp2fSx5KSx7fSx7aGln''@;'; put 'put ''aGxpZ2h0T25seUNsb3Nlc3RIZWFkZXI6ITAsc2VsZWN0aW9uVHlwZTpsen0pKX0pO3ZhciBvJGU9ZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZyhoKXsoZnVuY3Rpb24gciRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBh''@;'; put 'put ''cyBhIGZ1bmN0aW9uIil9KSh0aGlzLGcpLHRoaXMub3B0aW9ucz1oLHRoaXMubGF5ZXJMZXZlbD0wLHRoaXMuY2VsbD1fTyhheixoKSx0aGlzLmZpbGw9X08oImZpbGwiLGgpLHRoaXMuYXJlYXM9bmV3IE1hcCx0aGlzLmhlYWRlcnM9bmV3IE1hcCx0aGlzLmFjdGl2ZUhlYWRlcnM9bmV3IE1h''@;'; put 'put ''cCx0aGlzLmN1c3RvbVNlbGVjdGlvbnM9W119cmV0dXJuIGZ1bmN0aW9uIGkkZShkLGcsaCl7ZyYmZVNlKGQucHJvdG90eXBlLGcpLGgmJmVTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShnLFt7a2V5OiJpc0VuYWJsZWRGb3IiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKHYseSl7dmFyIEM9djt2PT09YXomJihDPSJjdXJyZW50Iik7dmFyIEk9dGhpcy5vcHRpb25zLmRpc2FibGVkQ2VsbFNlbGVjdGlvbih5LnJvdyx5LmNvbCk7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBJJiYoST1bSV0pLCExPT09SXx8QXJyYXkuaXNBcnJheShJKSYmIUku''@;'; put 'put ''aW5jbHVkZXMoQyl9fSx7a2V5OiJ1c2VMYXllckxldmVsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowO3JldHVybiB0aGlzLmxheWVyTGV2ZWw9dix0aGlzfX0se2tleToiZ2V0Q2VsbCIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jZWxsfX0se2tleToiZ2V0RmlsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsfX0se2tleToiY3JlYXRlT3JHZXRBcmVhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LHY9dGhpcy5sYXllckxldmVsO3JldHVybiB0aGlzLmFyZWFz''@;'; put 'put ''Lmhhcyh2KT95PXRoaXMuYXJlYXMuZ2V0KHYpOih5PV9PKG90ZSxzeih7bGF5ZXJMZXZlbDp2fSx0aGlzLm9wdGlvbnMpKSx0aGlzLmFyZWFzLnNldCh2LHkpKSx5fX0se2tleToiZ2V0QXJlYXMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEx3KHRoaXMuYXJlYXMudmFsdWVzKCkpfX0se2tl''@;'; put 'put ''eToiY3JlYXRlT3JHZXRIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksdj10aGlzLmxheWVyTGV2ZWw7cmV0dXJuIHRoaXMuaGVhZGVycy5oYXModik/eT10aGlzLmhlYWRlcnMuZ2V0KHYpOih5PV9PKGx6LHN6KHt9LHRoaXMub3B0aW9ucykpLHRoaXMuaGVhZGVycy5zZXQodix5KSks''@;'; put 'put ''eX19LHtrZXk6ImdldEhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEx3KHRoaXMuaGVhZGVycy52YWx1ZXMoKSl9fSx7a2V5OiJjcmVhdGVPckdldEFjdGl2ZUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeSx2PXRoaXMubGF5ZXJMZXZlbDtyZXR1cm4gdGhpcy5hY3RpdmVI''@;'; put 'put ''ZWFkZXJzLmhhcyh2KT95PXRoaXMuYWN0aXZlSGVhZGVycy5nZXQodik6KHk9X08oaXRlLHN6KHt9LHRoaXMub3B0aW9ucykpLHRoaXMuYWN0aXZlSGVhZGVycy5zZXQodix5KSkseX19LHtrZXk6ImdldEFjdGl2ZUhlYWRlcnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEx3KHRoaXMuYWN0''@;'; put 'put ''aXZlSGVhZGVycy52YWx1ZXMoKSl9fSx7a2V5OiJnZXRDdXN0b21TZWxlY3Rpb25zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBMdyh0aGlzLmN1c3RvbVNlbGVjdGlvbnMudmFsdWVzKCkpfX0se2tleToiYWRkQ3VzdG9tU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbih2KXt0aGlzLmN1c3Rv''@;'; put 'put ''bVNlbGVjdGlvbnMucHVzaChfTyh6cGUsc3ooc3ooe30sdGhpcy5vcHRpb25zKSx2KSkpfX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jZWxsLmNsZWFyKCksdGhpcy5maWxsLmNsZWFyKCksVXIodGhpcy5hcmVhcy52YWx1ZXMoKSxmdW5jdGlvbih2KXt2LmNsZWFyKCl9''@;'; put 'put ''KSxVcih0aGlzLmhlYWRlcnMudmFsdWVzKCksZnVuY3Rpb24odil7di5jbGVhcigpfSksVXIodGhpcy5hY3RpdmVIZWFkZXJzLnZhbHVlcygpLGZ1bmN0aW9uKHYpe3YuY2xlYXIoKX0pfX0se2tleTpTeW1ib2wuaXRlcmF0b3IsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5jZWxsLHRo''@;'; put 'put ''aXMuZmlsbF0uY29uY2F0KEx3KHRoaXMuYXJlYXMudmFsdWVzKCkpLEx3KHRoaXMuaGVhZGVycy52YWx1ZXMoKSksTHcodGhpcy5hY3RpdmVIZWFkZXJzLnZhbHVlcygpKSxMdyh0aGlzLmN1c3RvbVNlbGVjdGlvbnMpKVtTeW1ib2wuaXRlcmF0b3JdKCl9fV0pLGd9KCk7Y29uc3QgYSRlPW8k''@;'; put 'put ''ZTtmdW5jdGlvbiB0U2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5''@;'; put 'put ''LHYpfX12YXIgdSRlPWZ1bmN0aW9uKGQpe2Z1bmN0aW9uIGcoaCl7KGZ1bmN0aW9uIGwkZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxnKSx0aGlzLnJhbmdlcz1bXSx0aGlz''@;'; put 'put ''LmNyZWF0ZUNlbGxSYW5nZT1ofXJldHVybiBmdW5jdGlvbiBzJGUoZCxnLGgpe2cmJnRTZShkLnByb3RvdHlwZSxnKSxoJiZ0U2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZyxbe2tleToiaXNFbXB0eSIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gMD09PXRoaXMuc2l6ZSgpfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5jbGVhcigpLHRoaXMucmFuZ2VzLnB1c2godGhpcy5jcmVhdGVDZWxsUmFuZ2UodikpLHRoaXN9fSx7a2V5OiJhZGQiLHZhbHVlOmZ1bmN0aW9uKHYpe3JldHVybiB0aGlz''@;'; put 'put ''LnJhbmdlcy5wdXNoKHRoaXMuY3JlYXRlQ2VsbFJhbmdlKHYpKSx0aGlzfX0se2tleToicG9wIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmdlcy5wb3AoKSx0aGlzfX0se2tleToiY3VycmVudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wZWVrQnlJbmRleCgwKX19''@;'; put 'put ''LHtrZXk6InByZXZpb3VzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBlZWtCeUluZGV4KC0xKX19LHtrZXk6ImluY2x1ZGVzIix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5yYW5nZXMuc29tZShmdW5jdGlvbih5KXtyZXR1cm4geS5pbmNsdWRlcyh2KX0pfX0se2tleToi''@;'; put 'put ''Y2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmFuZ2VzLmxlbmd0aD0wLHRoaXN9fSx7a2V5OiJzaXplIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmdlcy5sZW5ndGh9fSx7a2V5OiJwZWVrQnlJbmRleCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQyx2PWFyZ3Vt''@;'; put 'put ''ZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLHk9dGhpcy5zaXplKCkrdi0xO3JldHVybiB5Pj0wJiYoQz10aGlzLnJhbmdlc1t5XSksQ319LHtrZXk6U3ltYm9sLml0ZXJhdG9yLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmFuZ2VzW1N5''@;'; put 'put ''bWJvbC5pdGVyYXRvcl0oKX19XSksZ30oKTtjb25zdCBjJGU9dSRlO2Z1bmN0aW9uIG5TZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0''@;'; put 'put ''YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciByU2U9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGYkZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBm''@;'; put 'put ''dW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJhbmdlPWcsdGhpcy5vcHRpb25zPWh9cmV0dXJuIGZ1bmN0aW9uIGgkZShkLGcsaCl7ZyYmblNlKGQucHJvdG90eXBlLGcpLGgmJm5TZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7''@;'; put 'put ''a2V5OiJ0cmFuc2Zvcm1TdGFydCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLEM9dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29yZHMoaCx2KSxJPXRoaXMucmFuZ2UuY3VycmVudCgpLmhp''@;'; put 'put ''Z2hsaWdodCxaPXRoaXMub3B0aW9ucy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoSSksdWU9Wi5yb3csX2U9Wi5jb2wsQmU9SSxOZT0wLEtlPTA7aWYodGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVUcmFuc2Zvcm1TdGFydCIsQyksbnVsbCE9PXVlJiZudWxsIT09X2Upe3ZhciBwdD10aGlz''@;'; put 'put ''Lm9wdGlvbnMuY291bnRSb3dzKCksT3Q9dGhpcy5vcHRpb25zLmNvdW50Q29scygpLCR0PXRoaXMub3B0aW9ucy5maXhlZFJvd3NCb3R0b20oKSxmbj10aGlzLm9wdGlvbnMubWluU3BhcmVSb3dzKCksTG49dGhpcy5vcHRpb25zLm1pblNwYXJlQ29scygpLGlyPXRoaXMub3B0aW9ucy5hdXRv''@;'; put 'put ''V3JhcFJvdygpLG1yPXRoaXMub3B0aW9ucy5hdXRvV3JhcENvbCgpO3VlK2g+cHQtMT95JiZmbj4wJiYhKCR0JiZ1ZT49cHQtJHQtMSk/KHRoaXMucnVuTG9jYWxIb29rcygiaW5zZXJ0Um93UmVxdWlyZSIscHQpLHB0PXRoaXMub3B0aW9ucy5jb3VudFJvd3MoKSk6bXImJihDLnJvdz0xLXB0''@;'; put 'put ''LEMuY29sPV9lK0MuY29sPT09T3QtMT8xLU90OjEpOm1yJiZ1ZStDLnJvdzwwJiZfZStDLmNvbD49MCYmKEMucm93PXB0LTEsQy5jb2w9X2UrQy5jb2w9PT0wP090LTE6LTEpLF9lK0MuY29sPk90LTE/eSYmTG4+MD8odGhpcy5ydW5Mb2NhbEhvb2tzKCJpbnNlcnRDb2xSZXF1aXJlIixPdCks''@;'; put 'put ''T3Q9dGhpcy5vcHRpb25zLmNvdW50Q29scygpKTppciYmKEMucm93PXVlK0Mucm93PT09cHQtMT8xLXB0OjEsQy5jb2w9MS1PdCk6aXImJl9lK0MuY29sPDAmJnVlK0Mucm93Pj0wJiYoQy5yb3c9dWUrQy5yb3c9PT0wP3B0LTE6LTEsQy5jb2w9T3QtMSk7dmFyIFNyPXRoaXMub3B0aW9ucy5j''@;'; put 'put ''cmVhdGVDZWxsQ29vcmRzKHVlK0Mucm93LF9lK0MuY29sKTtOZT0wLEtlPTAsU3Iucm93PDA/KE5lPS0xLFNyLnJvdz0wKTpTci5yb3c+MCYmU3Iucm93Pj1wdCYmKE5lPTEsU3Iucm93PXB0LTEpLFNyLmNvbDwwPyhLZT0tMSxTci5jb2w9MCk6U3IuY29sPjAmJlNyLmNvbD49T3QmJihLZT0x''@;'; put 'put ''LFNyLmNvbD1PdC0xKSxCZT10aGlzLm9wdGlvbnMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKFNyKX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixCZSxOZSxLZSksQmV9fSx7a2V5OiJ0cmFuc2Zvcm1FbmQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFy''@;'; put 'put ''IHk9dGhpcy5vcHRpb25zLmNyZWF0ZUNlbGxDb29yZHMoaCx2KSxDPXRoaXMucmFuZ2UuY3VycmVudCgpLEk9Qy50byxaPTAsdWU9MDt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZVRyYW5zZm9ybUVuZCIseSk7dmFyIF9lPXRoaXMub3B0aW9ucy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMo''@;'; put 'put ''Qy5oaWdobGlnaHQpO2lmKG51bGwhPT1fZS5yb3cmJm51bGwhPT1fZS5jb2wpe3ZhciBLZT10aGlzLm9wdGlvbnMuY291bnRSb3dzKCkscHQ9dGhpcy5vcHRpb25zLmNvdW50Q29scygpLE90PXRoaXMub3B0aW9ucy52aXN1YWxUb1JlbmRlcmFibGVDb29yZHMoQy50byksTG49dGhpcy5vcHRp''@;'; put 'put ''b25zLmNyZWF0ZUNlbGxDb29yZHMoT3Qucm93K3kucm93LE90LmNvbCt5LmNvbCk7Wj0wLHVlPTAsTG4ucm93PDA/KFo9LTEsTG4ucm93PTApOkxuLnJvdz4wJiZMbi5yb3c+PUtlJiYoWj0xLExuLnJvdz1LZS0xKSxMbi5jb2w8MD8odWU9LTEsTG4uY29sPTApOkxuLmNvbD4wJiZMbi5jb2w+''@;'; put 'put ''PXB0JiYodWU9MSxMbi5jb2w9cHQtMSksST10aGlzLm9wdGlvbnMucmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzKExuKX1yZXR1cm4gdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlclRyYW5zZm9ybUVuZCIsSSxaLHVlKSxJfX1dKSxkfSgpO0IyKHJTZSx1ZCk7Y29uc3QgZCRlPXJTZTtmdW5jdGlv''@;'; put 'put ''biBpU2UoZCxnKXtyZXR1cm4gZnVuY3Rpb24gdiRlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBtJGUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRv''@;'; put 'put ''ciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxs''@;'; put 'put ''IT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBnJGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG9TZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5z''@;'; put 'put ''bGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0Fy''@;'; put 'put ''cmF5JC8udGVzdChoKSlyZXR1cm4gb1NlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBwJGUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBv''@;'; put 'put ''YmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIG9TZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0''@;'; put 'put ''aW9uIFhwZShkKXtyZXR1cm4oWHBlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29u''@;'; put 'put ''c3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIHNTZSxBJGU9WzMsMl0seSRlPVtbIm51bWJlciJdLFsibnVtYmVyIiwic3RyaW5nIl0sWyJudW1iZXIiLCJ1bmRlZmluZWQiXSxbIm51bWJlciIsInN0cmluZyIsInVuZGVm''@;'; put 'put ''aW5lZCJdXSwkcGU9U3ltYm9sKCJyb290IiksbFNlPVN5bWJvbCgiY2hpbGQiKTtmdW5jdGlvbiBDTyhkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06JHBlO2lmKGchPT0kcGUmJmchPT1sU2UpdGhyb3cgbmV3IEVycm9yKCJU''@;'; put 'put ''aGUgc2Vjb25kIGFyZ3VtZW50IGlzIHVzZWQgaW50ZXJuYWxseSBvbmx5IGFuZCBjYW5ub3QgYmUgb3ZlcndyaXR0ZW4uIik7dmFyIGg9QXJyYXkuaXNBcnJheShkKSx2PWc9PT0kcGUseT0wO2lmKGgpe3ZhciBDPWRbMF07aWYoMD09PWQubGVuZ3RoKXk9MTtlbHNlIGlmKHYmJkMgaW5zdGFu''@;'; put 'put ''Y2VvZiBzQ2UpeT0zO2Vsc2UgaWYodiYmQXJyYXkuaXNBcnJheShDKSl5PUNPKEMsbFNlKTtlbHNlIGlmKGQubGVuZ3RoPj0yJiZkLmxlbmd0aDw9NCl7dmFyIEk9IWQuc29tZShmdW5jdGlvbihaLHVlKXtyZXR1cm4heSRlW3VlXS5pbmNsdWRlcyhYcGUoWikpfSk7SSYmKHk9Mil9fXJldHVy''@;'; put 'put ''biB5fWZ1bmN0aW9uIHV6KGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxoPWcua2VlcERpcmVjdGlvbix2PXZvaWQgMCE9PWgmJmgseT1nLnByb3BUb0NvbDtpZighQSRlLmluY2x1ZGVzKGQpKXRocm93IG5ldyBFcnJv''@;'; put 'put ''cigiVW5zdXBwb3J0ZWQgc2VsZWN0aW9uIHJhbmdlcyBzY2hlbWEgdHlwZSB3YXMgcHJvdmlkZWQuIik7cmV0dXJuIGZ1bmN0aW9uKEMpe3ZhciBJPTM9PT1kLFo9ST9DLmZyb20ucm93OkNbMF0sdWU9ST9DLmZyb20uY29sOkNbMV0sX2U9ST9DLnRvLnJvdzpDWzJdLEJlPUk/Qy50by5jb2w6''@;'; put 'put ''Q1szXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeSYmKCJzdHJpbmciPT10eXBlb2YgdWUmJih1ZT15KHVlKSksInN0cmluZyI9PXR5cGVvZiBCZSYmKEJlPXkoQmUpKSksYTEoX2UpJiYoX2U9WiksYTEoQmUpJiYoQmU9dWUpLCF2KXt2YXIgTmU9WixLZT11ZSxwdD1fZSxPdD1CZTtaPU1hdGgu''@;'; put 'put ''bWluKE5lLHB0KSx1ZT1NYXRoLm1pbihLZSxPdCksX2U9TWF0aC5tYXgoTmUscHQpLEJlPU1hdGgubWF4KEtlLE90KX1yZXR1cm5bWix1ZSxfZSxCZV19fWZ1bmN0aW9uIE93KGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTox''@;'; put 'put ''LzA7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkJiZkPj0wJiZkPGd9ZnVuY3Rpb24gdVNlKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFMkZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gayRlKGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10''@;'; put 'put ''eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5''@;'; put 'put ''PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gQyRlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBjU2Uo''@;'; put 'put ''ZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVu''@;'; put 'put ''dHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGNTZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gXyRlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBp''@;'; put 'put ''bnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBjU2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2''@;'; put 'put ''PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBmU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3Jp''@;'; put 'put ''dGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgaFNlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpe3ZhciB2PXRoaXM7KGZ1bmN0aW9uIEUkZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEg''@;'; put 'put ''Y2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnNldHRpbmdzPWcsdGhpcy50YWJsZVByb3BzPWgsdGhpcy5pblByb2dyZXNzPSExLHRoaXMuc2VsZWN0ZWRCeUNvcm5lcj0hMSx0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXI9bmV3IFNldCx0aGlzLnNlbGVjdGVkQnlDb2x1bW5I''@;'; put 'put ''ZWFkZXI9bmV3IFNldCx0aGlzLnNlbGVjdGVkUmFuZ2U9bmV3IGMkZShmdW5jdGlvbih5LEMsSSl7cmV0dXJuIHYudGFibGVQcm9wcy5jcmVhdGVDZWxsUmFuZ2UoeSxDLEkpfSksdGhpcy5oaWdobGlnaHQ9bmV3IGEkZSh7aGVhZGVyQ2xhc3NOYW1lOmcuY3VycmVudEhlYWRlckNsYXNzTmFt''@;'; put 'put ''ZSxhY3RpdmVIZWFkZXJDbGFzc05hbWU6Zy5hY3RpdmVIZWFkZXJDbGFzc05hbWUscm93Q2xhc3NOYW1lOmcuY3VycmVudFJvd0NsYXNzTmFtZSxjb2x1bW5DbGFzc05hbWU6Zy5jdXJyZW50Q29sQ2xhc3NOYW1lLGRpc2FibGVkQ2VsbFNlbGVjdGlvbjpmdW5jdGlvbihDLEkpe3JldHVybiB2''@;'; put 'put ''LnRhYmxlUHJvcHMuaXNEaXNhYmxlZENlbGxTZWxlY3Rpb24oQyxJKX0sY2VsbENvcm5lclZpc2libGU6ZnVuY3Rpb24oKXtyZXR1cm4gdi5pc0NlbGxDb3JuZXJWaXNpYmxlLmFwcGx5KHYsYXJndW1lbnRzKX0sYXJlYUNvcm5lclZpc2libGU6ZnVuY3Rpb24oKXtyZXR1cm4gdi5pc0FyZWFD''@;'; put 'put ''b3JuZXJWaXNpYmxlLmFwcGx5KHYsYXJndW1lbnRzKX0sdmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzOmZ1bmN0aW9uKEMpe3JldHVybiB2LnRhYmxlUHJvcHMudmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzKEMpfSxyZW5kZXJhYmxlVG9WaXN1YWxDb29yZHM6ZnVuY3Rpb24oQyl7cmV0dXJuIHYu''@;'; put 'put ''dGFibGVQcm9wcy5yZW5kZXJhYmxlVG9WaXN1YWxDb29yZHMoQyl9LGNyZWF0ZUNlbGxDb29yZHM6ZnVuY3Rpb24oQyxJKXtyZXR1cm4gdi50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoQyxJKX0sY3JlYXRlQ2VsbFJhbmdlOmZ1bmN0aW9uKEMsSSxaKXtyZXR1cm4gdi50YWJsZVByb3Bz''@;'; put 'put ''LmNyZWF0ZUNlbGxSYW5nZShDLEksWil9LHJvd0luZGV4TWFwcGVyOmZ1bmN0aW9uKCl7cmV0dXJuIHYudGFibGVQcm9wcy5yb3dJbmRleE1hcHBlcigpfSxjb2x1bW5JbmRleE1hcHBlcjpmdW5jdGlvbigpe3JldHVybiB2LnRhYmxlUHJvcHMuY29sdW1uSW5kZXhNYXBwZXIoKX19KSx0aGlz''@;'; put 'put ''LnRyYW5zZm9ybWF0aW9uPW5ldyBkJGUodGhpcy5zZWxlY3RlZFJhbmdlLHtjb3VudFJvd3M6ZnVuY3Rpb24oKXtyZXR1cm4gdi50YWJsZVByb3BzLmNvdW50Um93c1RyYW5zbGF0ZWQoKX0sY291bnRDb2xzOmZ1bmN0aW9uKCl7cmV0dXJuIHYudGFibGVQcm9wcy5jb3VudENvbHNUcmFuc2xh''@;'; put 'put ''dGVkKCl9LHZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkczpmdW5jdGlvbihDKXtyZXR1cm4gdi50YWJsZVByb3BzLnZpc3VhbFRvUmVuZGVyYWJsZUNvb3JkcyhDKX0scmVuZGVyYWJsZVRvVmlzdWFsQ29vcmRzOmZ1bmN0aW9uKEMpe3JldHVybiB2LnRhYmxlUHJvcHMucmVuZGVyYWJsZVRvVmlz''@;'; put 'put ''dWFsQ29vcmRzKEMpfSxjcmVhdGVDZWxsQ29vcmRzOmZ1bmN0aW9uKEMsSSl7cmV0dXJuIHYudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKEMsSSl9LGZpeGVkUm93c0JvdHRvbTpmdW5jdGlvbigpe3JldHVybiBnLmZpeGVkUm93c0JvdHRvbX0sbWluU3BhcmVSb3dzOmZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIGcubWluU3BhcmVSb3dzfSxtaW5TcGFyZUNvbHM6ZnVuY3Rpb24oKXtyZXR1cm4gZy5taW5TcGFyZUNvbHN9LGF1dG9XcmFwUm93OmZ1bmN0aW9uKCl7cmV0dXJuIGcuYXV0b1dyYXBSb3d9LGF1dG9XcmFwQ29sOmZ1bmN0aW9uKCl7cmV0dXJuIGcuYXV0b1dyYXBDb2x9fSksdGhp''@;'; put 'put ''cy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHko''@;'; put 'put ''dixbImJlZm9yZU1vZGlmeVRyYW5zZm9ybVN0YXJ0Il0uY29uY2F0KEMpKX0pLHRoaXMudHJhbnNmb3JtYXRpb24uYWRkTG9jYWxIb29rKCJhZnRlclRyYW5zZm9ybVN0YXJ0IixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsr''@;'; put 'put ''KUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oKXtmb3IodmFy''@;'; put 'put ''IHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gdi5ydW5Mb2NhbEhvb2tzLmFwcGx5KHYsWyJiZWZvcmVNb2RpZnlUcmFuc2Zvcm1FbmQiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2Nh''@;'; put 'put ''bEhvb2soImFmdGVyVHJhbnNmb3JtRW5kIixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxvY2FsSG9va3MuYXBwbHkodixbImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5k''@;'; put 'put ''Il0uY29uY2F0KEMpKX0pLHRoaXMudHJhbnNmb3JtYXRpb24uYWRkTG9jYWxIb29rKCJpbnNlcnRSb3dSZXF1aXJlIixmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3JldHVybiB2LnJ1bkxv''@;'; put 'put ''Y2FsSG9va3MuYXBwbHkodixbImluc2VydFJvd1JlcXVpcmUiXS5jb25jYXQoQykpfSksdGhpcy50cmFuc2Zvcm1hdGlvbi5hZGRMb2NhbEhvb2soImluc2VydENvbFJlcXVpcmUiLGZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJ''@;'; put 'put ''KyspQ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIHYucnVuTG9jYWxIb29rcy5hcHBseSh2LFsiaW5zZXJ0Q29sUmVxdWlyZSJdLmNvbmNhdChDKSl9KX1yZXR1cm4gZnVuY3Rpb24geCRlKGQsZyxoKXtnJiZmU2UoZC5wcm90b3R5cGUsZyksaCYmZlNlKGQsaCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldFNlbGVjdGVkUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRSYW5nZX19LHtrZXk6ImJlZ2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaW5Qcm9ncmVzcz0hMH19LHtrZXk6ImZp''@;'; put 'put ''bmlzaCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLEFycmF5LmZyb20odGhpcy5zZWxlY3RlZFJhbmdlKSksdGhpcy5pblByb2dyZXNzPSExfX0se2tleToiaXNJblByb2dyZXNzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0''@;'; put 'put ''aGlzLmluUHJvZ3Jlc3N9fSx7a2V5OiJzZXRSYW5nZVN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz0ibXVsdGlwbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlLEk9''@;'; put 'put ''YTEodik/dGhpcy50YWJsZVByb3BzLmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKTp2LFo9aC5yb3c8MCx1ZT1oLmNvbDwwLF9lPVomJnVlLEJlPWguY2xvbmUoKTt0aGlzLnNlbGVjdGVkQnlDb3JuZXI9X2UsdGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVTZXRSYW5nZVN0''@;'; put 'put ''YXJ0Ii5jb25jYXQoeT8iT25seSI6IiIpLEJlKSwoIUN8fEMmJiFJJiZhMSh2KSkmJnRoaXMuc2VsZWN0ZWRSYW5nZS5jbGVhcigpLHRoaXMuc2VsZWN0ZWRSYW5nZS5hZGQoQmUpLDA9PT10aGlzLmdldExheWVyTGV2ZWwoKSYmKHRoaXMuc2VsZWN0ZWRCeVJvd0hlYWRlci5jbGVhcigpLHRo''@;'; put 'put ''aXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5jbGVhcigpKSwhX2UmJnVlJiZ0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSwhX2UmJlomJnRoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5hZGQodGhpcy5nZXRMYXllckxldmVsKCkpLHl8fHRoaXMu''@;'; put 'put ''c2V0UmFuZ2VFbmQoaCl9fSx7a2V5OiJzZXRSYW5nZVN0YXJ0T25seSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnNldFJhbmdlU3RhcnQoaCx2LCEwKX19LHtrZXk6InNldFJhbmdlRW5kIix2YWx1ZTpmdW5jdGlvbihoKXtpZighdGhpcy5zZWxlY3RlZFJhbmdlLmlzRW1wdHkoKSl7dmFy''@;'; put 'put ''IHY9aC5jbG9uZSgpO3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlU2V0UmFuZ2VFbmQiLHYpLHRoaXMuYmVnaW4oKTt2YXIgeT10aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpOyJzaW5nbGUiIT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlJiZ5LnNldFRvKHRoaXMudGFibGVQcm9w''@;'; put 'put ''cy5jcmVhdGVDZWxsQ29vcmRzKHYucm93LHYuY29sKSksdGhpcy5oaWdobGlnaHQuZ2V0Q2VsbCgpLmNsZWFyKCksdGhpcy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKGF6LHkuaGlnaGxpZ2h0KSYmdGhpcy5oaWdobGlnaHQuZ2V0Q2VsbCgpLmFkZCh0aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVu''@;'; put 'put ''dCgpLmhpZ2hsaWdodCkuY29tbWl0KCkuc3luY1dpdGgoeSk7dmFyIEM9dGhpcy5nZXRMYXllckxldmVsKCk7Qzx0aGlzLmhpZ2hsaWdodC5sYXllckxldmVsJiYoVXIodGhpcy5oaWdobGlnaHQuZ2V0QXJlYXMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0pLFVyKHRoaXMuaGlnaGxpZ2h0''@;'; put 'put ''LmdldEhlYWRlcnMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0pLFVyKHRoaXMuaGlnaGxpZ2h0LmdldEFjdGl2ZUhlYWRlcnMoKSxmdW5jdGlvbigkdCl7JHQuY2xlYXIoKX0pKSx0aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKEMpO3ZhciBJPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9y''@;'; put 'put ''R2V0QXJlYSgpLFo9dGhpcy5oaWdobGlnaHQuY3JlYXRlT3JHZXRIZWFkZXIoKSx1ZT10aGlzLmhpZ2hsaWdodC5jcmVhdGVPckdldEFjdGl2ZUhlYWRlcigpO2lmKEkuY2xlYXIoKSxaLmNsZWFyKCksdWUuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5pc0VuYWJsZWRGb3Iob3RlLHkuaGlnaGxp''@;'; put 'put ''Z2h0KSYmKHRoaXMuaXNNdWx0aXBsZSgpfHxDPj0xKSYmKEkuYWRkKHkuZnJvbSkuYWRkKHkudG8pLmNvbW1pdCgpLDE9PT1DKSl7dmFyIF9lPXRoaXMuc2VsZWN0ZWRSYW5nZS5wcmV2aW91cygpO3RoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoQy0xKS5jcmVhdGVPckdldEFyZWEoKS5h''@;'; put 'put ''ZGQoX2UuZnJvbSkuY29tbWl0KCkuc3luY1dpdGgoX2UpLHRoaXMuaGlnaGxpZ2h0LnVzZUxheWVyTGV2ZWwoQyl9aWYodGhpcy5oaWdobGlnaHQuaXNFbmFibGVkRm9yKGx6LHkuaGlnaGxpZ2h0KSl7dmFyIEJlPTA9PT10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzVHJhbnNsYXRlZCgpLE5l''@;'; put 'put ''PTA9PT10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzVHJhbnNsYXRlZCgpLEtlPXk7KEJlfHxOZSkmJihLZT15LmNsb25lKCkpLEJlJiYoS2UuZnJvbS5yb3c9LTEpLE5lJiYoS2UuZnJvbS5jb2w9LTEpLCJzaW5nbGUiPT09dGhpcy5zZXR0aW5ncy5zZWxlY3Rpb25Nb2RlPyh0aGlzLmlzU2Vs''@;'; put 'put ''ZWN0ZWRCeUFueUhlYWRlcigpJiZLZS5mcm9tLm5vcm1hbGl6ZSgpLFouYWRkKEtlLmZyb20pLmNvbW1pdCgpKTpaLmFkZChLZS5mcm9tKS5hZGQoS2UudG8pLmNvbW1pdCgpLHRoaXMuaXNFbnRpcmVSb3dTZWxlY3RlZCgpJiZ0aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCk9PT15LmdldFdp''@;'; put 'put ''ZHRoKCkmJnVlLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh5LmZyb20ucm93LC0xKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHkudG8ucm93LC0xKSkuY29tbWl0KCksdGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKCkmJnRoaXMudGFibGVQ''@;'; put 'put ''cm9wcy5jb3VudFJvd3MoKT09PXkuZ2V0SGVpZ2h0KCkmJnVlLmFkZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcygtMSx5LmZyb20uY29sKSkuYWRkKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKC0xLHkudG8uY29sKSkuY29tbWl0KCl9dGhpcy5ydW5Mb2NhbEhv''@;'; put 'put ''b2tzKCJhZnRlclNldFJhbmdlRW5kIixoKX19fSx7a2V5OiJpc011bHRpcGxlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPUVTKCF0aGlzLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmlzU2luZ2xlKCkpO3JldHVybiB0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVySXNNdWx0aXBsZVNlbGVjdGlv''@;'; put 'put ''biIsaCksaC52YWx1ZX19LHtrZXk6InRyYW5zZm9ybVN0YXJ0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl07dGhpcy5zZXRSYW5nZVN0YXJ0KHRoaXMudHJhbnNmb3JtYXRpb24udHJhbnNm''@;'; put 'put ''b3JtU3RhcnQoaCx2LHkpKX19LHtrZXk6InRyYW5zZm9ybUVuZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLnNldFJhbmdlRW5kKHRoaXMudHJhbnNmb3JtYXRpb24udHJhbnNmb3JtRW5kKGgsdikpfX0se2tleToiZ2V0TGF5ZXJMZXZlbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5zZWxlY3RlZFJhbmdlLnNpemUoKS0xfX0se2tleToiaXNTZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zZWxlY3RlZFJhbmdlLmlzRW1wdHkoKX19LHtrZXk6ImlzU2VsZWN0ZWRCeVJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVu''@;'; put 'put ''Z3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRMYXllckxldmVsKCk7cmV0dXJuIXRoaXMuaXNTZWxlY3RlZEJ5Q29ybmVyKGgpJiZ0aGlzLmlzRW50aXJlUm93U2VsZWN0ZWQoaCl9fSx7a2V5OiJpc0VudGlyZVJvd1NlbGVjdGVkIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4tMT09PWg/dGhpcy5zZWxlY3RlZEJ5Um93SGVhZGVyLnNpemU+MDp0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuaGFzKGgp''@;'; put 'put ''fX0se2tleToiaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmdldExheWVyTGV2ZWwoKTtyZXR1cm4hdGhpcy5pc1NlbGVjdGVkQnlDb3JuZXIo''@;'; put 'put ''KSYmdGhpcy5pc0VudGlyZUNvbHVtblNlbGVjdGVkKGgpfX0se2tleToiaXNFbnRpcmVDb2x1bW5TZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5nZXRMYXllckxldmVsKCk7''@;'; put 'put ''cmV0dXJuLTE9PT1oP3RoaXMuc2VsZWN0ZWRCeUNvbHVtbkhlYWRlci5zaXplPjA6dGhpcy5zZWxlY3RlZEJ5Q29sdW1uSGVhZGVyLmhhcyhoKX19LHtrZXk6ImlzU2VsZWN0ZWRCeUFueUhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1NlbGVjdGVkQnlSb3dIZWFkZXIo''@;'; put 'put ''LTEpfHx0aGlzLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigtMSl8fHRoaXMuaXNTZWxlY3RlZEJ5Q29ybmVyKCl9fSx7a2V5OiJpc1NlbGVjdGVkQnlDb3JuZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0ZWRCeUNvcm5lcn19LHtrZXk6ImluSW5TZWxlY3Rpb24iLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNlbGVjdGVkUmFuZ2UuaW5jbHVkZXMoaCl9fSx7a2V5OiJpc0NlbGxDb3JuZXJWaXNpYmxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNldHRpbmdzLmZpbGxIYW5kbGUmJiF0aGlzLnRhYmxlUHJvcHMuaXNFZGl0b3JPcGVuZWQo''@;'; put 'put ''KSYmIXRoaXMuaXNNdWx0aXBsZSgpfX0se2tleToiaXNBcmVhQ29ybmVyVmlzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuKCFOdW1iZXIuaXNJbnRlZ2VyKGgpfHxoPT09dGhpcy5nZXRMYXllckxldmVsKCkpJiZ0aGlzLnNldHRpbmdzLmZpbGxIYW5kbGUmJiF0aGlzLnRhYmxlUHJv''@;'; put 'put ''cHMuaXNFZGl0b3JPcGVuZWQoKSYmdGhpcy5pc011bHRpcGxlKCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkUmFuZ2UuY2xlYXIoKSx0aGlzLmhpZ2hsaWdodC5jbGVhcigpfX0se2tleToiZGVzZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMuaXNT''@;'; put 'put ''ZWxlY3RlZCgpfHwodGhpcy5pblByb2dyZXNzPSExLHRoaXMuY2xlYXIoKSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyRGVzZWxlY3QiKSl9fSx7a2V5OiJzZWxlY3RBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0m''@;'; put 'put ''JmFyZ3VtZW50c1swXSx2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0seT10aGlzLnRhYmxlUHJvcHMuY291bnRSb3dzKCksQz10aGlzLnRhYmxlUHJvcHMuY291bnRDb2xzKCk7aWYoaHx8dnx8MCE9PXkmJjAhPT1DKXt2YXIgST10aGlz''@;'; put 'put ''LnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2Py0xOjAsaD8tMTowKTt0aGlzLmNsZWFyKCksdGhpcy5zZXRSYW5nZVN0YXJ0T25seShJKSx0aGlzLnNlbGVjdGVkQnlSb3dIZWFkZXIuYWRkKHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSx0aGlzLnNlbGVjdGVkQnlDb2x1bW5IZWFkZXIuYWRk''@;'; put 'put ''KHRoaXMuZ2V0TGF5ZXJMZXZlbCgpKSx0aGlzLnNldFJhbmdlRW5kKHRoaXMudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKHktMSxDLTEpKSx0aGlzLmZpbmlzaCgpfX19LHtrZXk6InNlbGVjdENlbGxzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9Q08oaCk7aWYoMT09PXkp''@;'; put 'put ''cmV0dXJuITE7aWYoMD09PXkpdGhyb3cgbmV3IEVycm9yKFAyKHNTZXx8KHNTZT1mdW5jdGlvbiBNJGUoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShb''@;'; put 'put ''IlVuc3VwcG9ydGVkIGZvcm1hdCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlcyB3YXMgcGFzc2VkLiBUbyBzZWxlY3QgY2VsbHMgcGFzcyBcbiAgICAgICAgdGhlIGNvb3JkaW5hdGVzIGFzIGFuIGFycmF5IG9mIGFycmF5cyAoW1tyb3dTdGFydCwgY29sdW1uU3RhcnQvY29sdW1uUHJvcFN0YXJ0''@;'; put 'put ''LCByb3dFbmQsIFxuICAgICAgICBjb2x1bW5FbmQvY29sdW1uUHJvcEVuZF1dKSBvciBhcyBhbiBhcnJheSBvZiBDZWxsUmFuZ2Ugb2JqZWN0cy4iXSxbIlVuc3VwcG9ydGVkIGZvcm1hdCBvZiB0aGUgc2VsZWN0aW9uIHJhbmdlcyB3YXMgcGFzc2VkLiBUbyBzZWxlY3QgY2VsbHMgcGFzc1xc''@;'; put 'put ''eDIwXG4gICAgICAgIHRoZSBjb29yZGluYXRlcyBhcyBhbiBhcnJheSBvZiBhcnJheXMgKFtbcm93U3RhcnQsIGNvbHVtblN0YXJ0L2NvbHVtblByb3BTdGFydCwgcm93RW5kLFxceDIwXG4gICAgICAgIGNvbHVtbkVuZC9jb2x1bW5Qcm9wRW5kXV0pIG9yIGFzIGFuIGFycmF5IG9mIENlbGxS''@;'; put 'put ''YW5nZSBvYmplY3RzLiJdKSkpKTt2YXIgQz11eih5LHtwcm9wVG9Db2w6ZnVuY3Rpb24oQmUpe3JldHVybiB2LnRhYmxlUHJvcHMucHJvcFRvQ29sKEJlKX0sa2VlcERpcmVjdGlvbjohMH0pLEk9dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLFo9dGhpcy50YWJsZVByb3BzLmNvdW50Q29s''@;'; put 'put ''cygpLHVlPSFoLnNvbWUoZnVuY3Rpb24oX2Upe3ZhciBOZT11U2UoQyhfZSksNCkscHQ9TmVbMV0sT3Q9TmVbMl0sJHQ9TmVbM107cmV0dXJuIShPdyhOZVswXSxJKSYmT3cocHQsWikmJk93KE90LEkpJiZPdygkdCxaKSl9KTtyZXR1cm4gdWUmJih0aGlzLmNsZWFyKCksVXIoaCxmdW5jdGlv''@;'; put 'put ''bihfZSl7dmFyIE5lPXVTZShDKF9lKSw0KSxPdD1OZVsyXSwkdD1OZVszXTt2LnNldFJhbmdlU3RhcnRPbmx5KHYudGFibGVQcm9wcy5jcmVhdGVDZWxsQ29vcmRzKE5lWzBdLE5lWzFdKSwhMSksdi5zZXRSYW5nZUVuZCh2LnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3JkcyhPdCwkdCkpLHYu''@;'; put 'put ''ZmluaXNoKCl9KSksdWV9fSx7a2V5OiJzZWxlY3RDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06aCx5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2Fy''@;'; put 'put ''Z3VtZW50c1syXTotMSxDPSJzdHJpbmciPT10eXBlb2YgaD90aGlzLnRhYmxlUHJvcHMucHJvcFRvQ29sKGgpOmgsST0ic3RyaW5nIj09dHlwZW9mIHY/dGhpcy50YWJsZVByb3BzLnByb3BUb0NvbCh2KTp2LFo9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLHVlPXRoaXMudGFibGVQcm9w''@;'; put 'put ''cy5jb3VudFJvd3MoKSxfZT1PdyhDLFopJiZPdyhJLFopO3JldHVybiBfZSYmKHRoaXMuc2V0UmFuZ2VTdGFydE9ubHkodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoeSxDKSksdGhpcy5zZXRSYW5nZUVuZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh1ZS0xLEkp''@;'; put 'put ''KSx0aGlzLmZpbmlzaCgpKSxfZX19LHtrZXk6InNlbGVjdFJvd3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpoLHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/''@;'; put 'put ''YXJndW1lbnRzWzJdOi0xLEM9dGhpcy50YWJsZVByb3BzLmNvdW50Um93cygpLEk9dGhpcy50YWJsZVByb3BzLmNvdW50Q29scygpLFo9T3coaCxDKSYmT3codixDKTtyZXR1cm4gWiYmKHRoaXMuc2V0UmFuZ2VTdGFydE9ubHkodGhpcy50YWJsZVByb3BzLmNyZWF0ZUNlbGxDb29yZHMoaCx5''@;'; put 'put ''KSksdGhpcy5zZXRSYW5nZUVuZCh0aGlzLnRhYmxlUHJvcHMuY3JlYXRlQ2VsbENvb3Jkcyh2LEktMSkpLHRoaXMuZmluaXNoKCkpLFp9fSx7a2V5OiJyZWZyZXNoIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaGlnaGxpZ2h0LmdldEN1c3RvbVNlbGVjdGlvbnMoKS5mb3JFYWNoKGZ1bmN0''@;'; put 'put ''aW9uKF9lKXtfZS5jb21taXQoKX0pLHRoaXMuaXNTZWxlY3RlZCgpKXt2YXIgdj10aGlzLmhpZ2hsaWdodC5nZXRDZWxsKCkseT10aGlzLmdldExheWVyTGV2ZWwoKTt2LmNvbW1pdCgpLnN5bmNXaXRoKHRoaXMuc2VsZWN0ZWRSYW5nZS5jdXJyZW50KCkpO2Zvcih2YXIgQz0wO0M8dGhpcy5z''@;'; put 'put ''ZWxlY3RlZFJhbmdlLnNpemUoKTtDKz0xKXt0aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKEMpO3ZhciBJPXRoaXMuaGlnaGxpZ2h0LmNyZWF0ZU9yR2V0QXJlYSgpLFo9dGhpcy5oaWdobGlnaHQuY3JlYXRlT3JHZXRIZWFkZXIoKSx1ZT10aGlzLmhpZ2hsaWdodC5jcmVhdGVPckdldEFj''@;'; put 'put ''dGl2ZUhlYWRlcigpO0kuY29tbWl0KCksWi5jb21taXQoKSx1ZS5jb21taXQoKX10aGlzLmhpZ2hsaWdodC51c2VMYXllckxldmVsKHkpfX19XSksZH0oKTtCMihoU2UsdWQpO2NvbnN0IFQkZT1oU2U7ZnVuY3Rpb24gdXRlKGQsZyl7dmFyIGg9InN0cmluZyI9PXR5cGVvZiBkP1plZShkKTpk''@;'; put 'put ''O2lmKHhsKGgpKXt2YXIgdj14bChnKSx5PXt9O3JldHVybiBHbChoLGZ1bmN0aW9uKEMsSSl7IkNFTExfVFlQRSIhPT1JJiYoIXZ8fHYmJiFvMShnLEkpKSYmKHlbSV09Qyl9KSx5fX1mdW5jdGlvbiBjdGUoZCl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoZCkmJmQ+PTB9ZnVuY3Rpb24gZnRl''@;'; put 'put ''KGQsZyl7aWYoIWQoKSl0aHJvdyBuZXcgRXJyb3IoIkFzc2VydGlvbiBmYWlsZWQ6ICIuY29uY2F0KGcpKX1mdW5jdGlvbiBodGUoZCl7cmV0dXJuIG51bGw9PWR9ZnVuY3Rpb24gcXBlKGQpe3JldHVybihxcGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBT''@;'; put 'put ''eW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1jb25z''@;'; put 'put ''dCBkU2U9ZnVuY3Rpb24oKXtyZXR1cm57YWN0aXZlSGVhZGVyQ2xhc3NOYW1lOiJodF9fYWN0aXZlX2hpZ2hsaWdodCIsYWxsb3dFbXB0eTohMCxhbGxvd0h0bWw6ITEsYWxsb3dJbnNlcnRDb2x1bW46ITAsYWxsb3dJbnNlcnRSb3c6ITAsYWxsb3dJbnZhbGlkOiEwLGFsbG93UmVtb3ZlQ29s''@;'; put 'put ''dW1uOiEwLGFsbG93UmVtb3ZlUm93OiEwLGF1dG9Db2x1bW5TaXplOnZvaWQgMCxhdXRvUm93U2l6ZTp2b2lkIDAsYXV0b1dyYXBDb2w6ITEsYXV0b1dyYXBSb3c6ITEsYmluZFJvd3NXaXRoSGVhZGVyczp2b2lkIDAsY2VsbDpbXSxjZWxsczp2b2lkIDAsY2hlY2tlZFRlbXBsYXRlOnZvaWQg''@;'; put 'put ''MCxjbGFzc05hbWU6dm9pZCAwLGNvbEhlYWRlcnM6bnVsbCxjb2xsYXBzaWJsZUNvbHVtbnM6dm9pZCAwLGNvbHVtbkhlYWRlckhlaWdodDp2b2lkIDAsY29sdW1uczp2b2lkIDAsY29sdW1uU29ydGluZzp2b2lkIDAsY29sdW1uU3VtbWFyeTp2b2lkIDAsY29sV2lkdGhzOnZvaWQgMCxjb21t''@;'; put 'put ''ZW50ZWRDZWxsQ2xhc3NOYW1lOiJodENvbW1lbnRDZWxsIixjb21tZW50czohMSxjb250ZXh0TWVudTp2b2lkIDAsY29weWFibGU6ITAsY29weVBhc3RlOiEwLGNvcnJlY3RGb3JtYXQ6ITEsY3VycmVudENvbENsYXNzTmFtZTp2b2lkIDAsY3VycmVudEhlYWRlckNsYXNzTmFtZToiaHRfX2hp''@;'; put 'put ''Z2hsaWdodCIsY3VycmVudFJvd0NsYXNzTmFtZTp2b2lkIDAsY3VzdG9tQm9yZGVyczohMSxkYXRhOnZvaWQgMCxkYXRhU2NoZW1hOnZvaWQgMCxkYXRlRm9ybWF0OiJERC9NTS9ZWVlZIixkYXRlUGlja2VyQ29uZmlnOnZvaWQgMCxkZWZhdWx0RGF0ZTp2b2lkIDAsZGlzYWJsZVZpc3VhbFNl''@;'; put 'put ''bGVjdGlvbjohMSxkcmFnVG9TY3JvbGw6ITAsZHJvcGRvd25NZW51OnZvaWQgMCxlZGl0b3I6dm9pZCAwLGVudGVyQmVnaW5zRWRpdGluZzohMCxlbnRlck1vdmVzOntjb2w6MCxyb3c6MX0sZmlsbEhhbmRsZTp7YXV0b0luc2VydFJvdzohMX0sZmlsdGVyOiEwLGZpbHRlcmluZ0Nhc2VTZW5z''@;'; put 'put ''aXRpdmU6ITEsZmlsdGVyczp2b2lkIDAsZml4ZWRDb2x1bW5zTGVmdDowLGZpeGVkQ29sdW1uc1N0YXJ0OjAsZml4ZWRSb3dzQm90dG9tOjAsZml4ZWRSb3dzVG9wOjAsZm9ybXVsYXM6dm9pZCAwLGZyYWdtZW50U2VsZWN0aW9uOiExLGhlaWdodDp2b2lkIDAsaGlkZGVuQ29sdW1uczp2b2lk''@;'; put 'put ''IDAsaGlkZGVuUm93czp2b2lkIDAsaW52YWxpZENlbGxDbGFzc05hbWU6Imh0SW52YWxpZCIsaXNFbXB0eUNvbDpmdW5jdGlvbihnKXt2YXIgaCx2O2ZvcihoPTAsdj10aGlzLmNvdW50Um93cygpO2g8djtoKyspaWYoITE9PT1kYyh0aGlzLmdldERhdGFBdENlbGwoaCxnKSkpcmV0dXJuITE7''@;'; put 'put ''cmV0dXJuITB9LGlzRW1wdHlSb3c6ZnVuY3Rpb24oZyl7dmFyIGgsdix5LEM7Zm9yKGg9MCx2PXRoaXMuY291bnRDb2xzKCk7aDx2O2grKylpZighMT09PWRjKHk9dGhpcy5nZXREYXRhQXRDZWxsKGcsaCkpKXJldHVybiJvYmplY3QiPT09cXBlKHkpJiYoQz10aGlzLmdldENlbGxNZXRhKGcs''@;'; put 'put ''aCksJGhlKHRoaXMuZ2V0U2NoZW1hKClbQy5wcm9wXSx5KSk7cmV0dXJuITB9LGxhYmVsOnZvaWQgMCxsYW5ndWFnZToiZW4tVVMiLGxheW91dERpcmVjdGlvbjoiaW5oZXJpdCIsbGljZW5zZUtleTp2b2lkIDAsbG9jYWxlOiJlbi1VUyIsbWFudWFsQ29sdW1uRnJlZXplOnZvaWQgMCxtYW51''@;'; put 'put ''YWxDb2x1bW5Nb3ZlOnZvaWQgMCxtYW51YWxDb2x1bW5SZXNpemU6dm9pZCAwLG1hbnVhbFJvd01vdmU6dm9pZCAwLG1hbnVhbFJvd1Jlc2l6ZTp2b2lkIDAsbWF4Q29sczoxLzAsbWF4Um93czoxLzAsbWVyZ2VDZWxsczohMSxtaW5Db2xzOjAsbWluUm93czowLG1pblNwYXJlQ29sczowLG1p''@;'; put 'put ''blNwYXJlUm93czowLG11bHRpQ29sdW1uU29ydGluZzp2b2lkIDAsbmVzdGVkSGVhZGVyczp2b2lkIDAsbmVzdGVkUm93czp2b2lkIDAsbm9Xb3JkV3JhcENsYXNzTmFtZToiaHROb1dyYXAiLG51bWVyaWNGb3JtYXQ6dm9pZCAwLG9ic2VydmVET01WaXNpYmlsaXR5OiEwLG91dHNpZGVDbGlj''@;'; put 'put ''a0Rlc2VsZWN0czohMCxwZXJzaXN0ZW50U3RhdGU6dm9pZCAwLHBsYWNlaG9sZGVyOnZvaWQgMCxwbGFjZWhvbGRlckNlbGxDbGFzc05hbWU6Imh0UGxhY2Vob2xkZXIiLHByZXZlbnRPdmVyZmxvdzohMSxwcmV2ZW50V2hlZWw6ITEscmVhZE9ubHk6ITEscmVhZE9ubHlDZWxsQ2xhc3NOYW1l''@;'; put 'put ''OiJodERpbW1lZCIscmVuZGVyQWxsUm93czp2b2lkIDAscmVuZGVyZXI6dm9pZCAwLHJvd0hlYWRlcnM6dm9pZCAwLHJvd0hlYWRlcldpZHRoOnZvaWQgMCxyb3dIZWlnaHRzOnZvaWQgMCxzZWFyY2g6ITEsc2VsZWN0aW9uTW9kZToibXVsdGlwbGUiLHNlbGVjdE9wdGlvbnM6dm9pZCAwLHNr''@;'; put 'put ''aXBDb2x1bW5PblBhc3RlOiExLHNraXBSb3dPblBhc3RlOiExLHNvcnRCeVJlbGV2YW5jZTohMCxzb3VyY2U6dm9pZCAwLHN0YXJ0Q29sczo1LHN0YXJ0Um93czo1LHN0cmV0Y2hIOiJub25lIixzdHJpY3Q6dm9pZCAwLHRhYmxlQ2xhc3NOYW1lOnZvaWQgMCx0YWJNb3Zlczp7cm93OjAsY29s''@;'; put 'put ''OjF9LHRpdGxlOnZvaWQgMCx0cmltRHJvcGRvd246ITAsdHJpbVJvd3M6dm9pZCAwLHRyaW1XaGl0ZXNwYWNlOiEwLHR5cGU6InRleHQiLHVuY2hlY2tlZFRlbXBsYXRlOnZvaWQgMCx1bmRvOnZvaWQgMCx2YWxpZGF0b3I6dm9pZCAwLHZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0OiJh''@;'; put 'put ''dXRvIix2aWV3cG9ydFJvd1JlbmRlcmluZ09mZnNldDoiYXV0byIsdmlzaWJsZVJvd3M6MTAsd2lkdGg6dm9pZCAwLHdvcmRXcmFwOiEwfX07ZnVuY3Rpb24gcFNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8''@;'; put 'put ''ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZ1NlKGQsZyxoKXtyZXR1cm4gZyYmcFNlKGQucHJvdG90eXBlLGcpLGgmJnBTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9ZnVuY3Rpb24gbVNlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9dmFyIEwkZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7bVNl''@;'; put 'put ''KHRoaXMsZCksdGhpcy5tZXRhQ3Rvcj1mdW5jdGlvbiBEJGUoKXtyZXR1cm4gZ1NlKGZ1bmN0aW9uIGQoKXttU2UodGhpcyxkKX0pfSgpLHRoaXMubWV0YT10aGlzLm1ldGFDdG9yLnByb3RvdHlwZSxJMSh0aGlzLm1ldGEsZFNlKCkpLHRoaXMubWV0YS5pbnN0YW5jZT1nfXJldHVybiBnU2Uo''@;'; put 'put ''ZCxbe2tleToiZ2V0TWV0YUNvbnN0cnVjdG9yIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGFDdG9yfX0se2tleToiZ2V0TWV0YSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXRhfX0se2tleToidXBkYXRlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7STEodGhpcy5t''@;'; put 'put ''ZXRhLGgpLEkxKHRoaXMubWV0YSx1dGUoaC50eXBlLGgpKX19XSksZH0oKTtmdW5jdGlvbiB2U2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYu''@;'; put 'put ''d3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgQiRlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXshZnVuY3Rpb24gTyRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBh''@;'; put 'put ''IGZ1bmN0aW9uIil9KHRoaXMsZCk7dmFyIGg9Zy5nZXRNZXRhQ29uc3RydWN0b3IoKTt0aGlzLm1ldGE9bmV3IGh9cmV0dXJuIGZ1bmN0aW9uIFIkZShkLGcsaCl7ZyYmdlNlKGQucHJvdG90eXBlLGcpLGgmJnZTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3''@;'; put 'put ''cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXRNZXRhIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1ldGF9fSx7a2V5OiJ1cGRhdGVNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXtJMSh0aGlzLm1ldGEsaCksSTEodGhpcy5tZXRhLHV0ZShoLnR5cGUsaCkpfX1dKSxkfSgpO2Z1bmN0aW9u''@;'; put 'put ''IEFTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBl''@;'; put 'put ''NmU9ZnVuY3Rpb24oZCl7ZnVuY3Rpb24gZyhoKXsoZnVuY3Rpb24gUCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGcpLHRoaXMudmFsdWVGYWN0b3J5PWgsdGhpcy5kYXRh''@;'; put 'put ''PVtdLHRoaXMuaW5kZXg9W10sdGhpcy5ob2xlcz1uZXcgU2V0fXJldHVybiBmdW5jdGlvbiBGJGUoZCxnLGgpe2cmJkFTZShkLnByb3RvdHlwZSxnKSxoJiZBU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZyxbe2tleToib2J0YWlu''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbih2KXtmdGUoZnVuY3Rpb24oKXtyZXR1cm4gY3RlKHYpfSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlci4iKTt2YXIgQyx5PXRoaXMuX2dldFN0b3JhZ2VJbmRleEJ5S2V5KHYpO2lmKHk+PTApdm9pZCAwPT09KEM9dGhpcy5kYXRhW3ldKSYmKEM9dGhpcy52''@;'; put 'put ''YWx1ZUZhY3RvcnkodiksdGhpcy5kYXRhW3ldPUMpO2Vsc2UgaWYoQz10aGlzLnZhbHVlRmFjdG9yeSh2KSx0aGlzLmhvbGVzLnNpemU+MCl7dmFyIEk9dGhpcy5ob2xlcy52YWx1ZXMoKS5uZXh0KCkudmFsdWU7dGhpcy5ob2xlcy5kZWxldGUoSSksdGhpcy5kYXRhW0ldPUMsdGhpcy5pbmRl''@;'; put 'put ''eFt2XT1JfWVsc2UgdGhpcy5kYXRhLnB1c2goQyksdGhpcy5pbmRleFt2XT10aGlzLmRhdGEubGVuZ3RoLTE7cmV0dXJuIEN9fSx7a2V5OiJpbnNlcnQiLHZhbHVlOmZ1bmN0aW9uKHYpe3ZhciB5LEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRz''@;'; put 'put ''WzFdOjE7ZnRlKGZ1bmN0aW9uKCl7cmV0dXJuIGN0ZSh2KXx8aHRlKHYpfSwiRXhwZWN0aW5nIGFuIHVuc2lnbmVkIG51bWJlciBvciBudWxsL3VuZGVmaW5lZCBhcmd1bWVudC4iKTtmb3IodmFyIEk9W10sWj10aGlzLmRhdGEubGVuZ3RoLHVlPTA7dWU8Qzt1ZSsrKUkucHVzaChaK3VlKSx0''@;'; put 'put ''aGlzLmRhdGEucHVzaCh2b2lkIDApOyh5PXRoaXMuaW5kZXgpLnNwbGljZS5hcHBseSh5LFtodGUodik/dGhpcy5pbmRleC5sZW5ndGg6diwwXS5jb25jYXQoSSkpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbih2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFy''@;'; put 'put ''Z3VtZW50c1sxXT9hcmd1bWVudHNbMV06MTtmdGUoZnVuY3Rpb24oKXtyZXR1cm4gY3RlKHYpfHxodGUodil9LCJFeHBlY3RpbmcgYW4gdW5zaWduZWQgbnVtYmVyIG9yIG51bGwvdW5kZWZpbmVkIGFyZ3VtZW50LiIpO2Zvcih2YXIgQz10aGlzLmluZGV4LnNwbGljZShodGUodik/dGhpcy5p''@;'; put 'put ''bmRleC5sZW5ndGgteTp2LHkpLEk9MDtJPEMubGVuZ3RoO0krKyl7dmFyIFo9Q1tJXTsibnVtYmVyIj09dHlwZW9mIFomJnRoaXMuaG9sZXMuYWRkKFopfX19LHtrZXk6InNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5sZW5ndGgtdGhpcy5ob2xlcy5zaXplfX0se2tl''@;'; put 'put ''eToidmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB2PXRoaXM7cmV0dXJuIGc0KHRoaXMuZGF0YSxmdW5jdGlvbih5LEMpe3JldHVybiF2LmhvbGVzLmhhcyhDKX0pW1N5bWJvbC5pdGVyYXRvcl0oKX19LHtrZXk6ImVudHJpZXMiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB2PVtdLHk9''@;'; put 'put ''MDt5PHRoaXMuZGF0YS5sZW5ndGg7eSsrKXt2YXIgQz10aGlzLl9nZXRLZXlCeVN0b3JhZ2VJbmRleCh5KTstMSE9PUMmJnYucHVzaChbQyx0aGlzLmRhdGFbeV1dKX12YXIgST0wO3JldHVybntuZXh0OmZ1bmN0aW9uKCl7aWYoSTx2Lmxlbmd0aCl7dmFyIHVlPXZbSV07cmV0dXJuIEkrPTEs''@;'; put 'put ''e3ZhbHVlOnVlLGRvbmU6ITF9fXJldHVybntkb25lOiEwfX19fX0se2tleToiY2xlYXIiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kYXRhPVtdLHRoaXMuaW5kZXg9W10sdGhpcy5ob2xlcy5jbGVhcigpfX0se2tleToiX2dldFN0b3JhZ2VJbmRleEJ5S2V5Iix2YWx1ZTpmdW5jdGlvbih2KXty''@;'; put 'put ''ZXR1cm4gdGhpcy5pbmRleC5sZW5ndGg+dj90aGlzLmluZGV4W3ZdOi0xfX0se2tleToiX2dldEtleUJ5U3RvcmFnZUluZGV4Iix2YWx1ZTpmdW5jdGlvbih2KXtyZXR1cm4gdGhpcy5pbmRleC5pbmRleE9mKHYpfX0se2tleTpTeW1ib2wuaXRlcmF0b3IsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5lbnRyaWVzKCl9fV0pLGd9KCk7ZnVuY3Rpb24geVNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmpl''@;'; put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFYkZT1bImRhdGEiLCJ3aWR0aCJdLGokZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gSCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNh''@;'; put 'put ''bGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuZ2xvYmFsTWV0YT1nLHRoaXMubWV0YXM9bmV3IGU2ZShmdW5jdGlvbigpe3JldHVybiBoLl9jcmVhdGVNZXRhKCl9KX1yZXR1cm4gZnVuY3Rpb24gTiRlKGQsZyxoKXtnJiZ5U2UoZC5wcm90b3R5cGUsZyksaCYmeVNl''@;'; put 'put ''KGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InVwZGF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXRNZXRhKGgpO0kxKHksdiksSTEoeSx1dGUodi50eXBlLHkpKX19LHtrZXk6ImNyZWF0ZUNv''@;'; put 'put ''bHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLm1ldGFzLmluc2VydChoLHYpfX0se2tleToicmVtb3ZlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMubWV0YXMucmVtb3ZlKGgsdil9fSx7a2V5OiJnZXRNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5tZXRh''@;'; put 'put ''cy5vYnRhaW4oaCl9fSx7a2V5OiJnZXRNZXRhQ29uc3RydWN0b3IiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLm1ldGFzLm9idGFpbihoKS5jb25zdHJ1Y3Rvcn19LHtrZXk6ImNsZWFyQ2FjaGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tZXRhcy5jbGVhcigpfX0se2tleToiX2Ny''@;'; put 'put ''ZWF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIEkkZShkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W107ZnVuY3Rpb24gaCgpe31TdihoLGQpO2Zvcih2YXIgdj0wO3Y8Zy5sZW5ndGg7disrKWgu''@;'; put 'put ''cHJvdG90eXBlW2dbdl1dPXZvaWQgMDtyZXR1cm4gaH0odGhpcy5nbG9iYWxNZXRhLmdldE1ldGFDb25zdHJ1Y3RvcigpLFYkZSkucHJvdG90eXBlfX1dKSxkfSgpO2Z1bmN0aW9uIFokZShkKXtyZXR1cm4gZnVuY3Rpb24gWSRlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHQ2ZShk''@;'; put 'put ''KX0oZCl8fGZ1bmN0aW9uIFckZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBHJGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09''@;'; put 'put ''dHlwZW9mIGQpcmV0dXJuIHQ2ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5''@;'; put 'put ''LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gdDZlKGQsZyl9fShkKXx8ZnVuY3Rpb24geiRlKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBu''@;'; put 'put ''b24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gdDZlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7''@;'; put 'put ''Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gd1NlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVl''@;'; put 'put ''ImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEokZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gVSRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fu''@;'; put 'put ''bm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuY29sdW1uTWV0YT1nLHRoaXMubWV0YXM9bmV3IGU2ZShmdW5jdGlvbigpe3JldHVybiBoLl9jcmVhdGVSb3coKX0pfXJldHVybiBmdW5jdGlvbiBRJGUoZCxnLGgpe2cmJndTZShkLnByb3RvdHlwZSxnKSxo''@;'; put 'put ''JiZ3U2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXBkYXRlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZ2V0TWV0YShoLHYpO0kxKEMseSksSTEoQyx1dGUoeS50eXBlLEMpKX19LHtrZXk6''@;'; put 'put ''ImNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLm1ldGFzLmluc2VydChoLHYpfX0se2tleToiY3JlYXRlQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT0wO3k8dGhpcy5tZXRhcy5zaXplKCk7eSsrKXRoaXMubWV0YXMub2J0YWluKHkpLmluc2VydChoLHYp''@;'; put 'put ''fX0se2tleToicmVtb3ZlUm93Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMubWV0YXMucmVtb3ZlKGgsdil9fSx7a2V5OiJyZW1vdmVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgsdil7Zm9yKHZhciB5PTA7eTx0aGlzLm1ldGFzLnNpemUoKTt5KyspdGhpcy5tZXRhcy5vYnRhaW4oeSkucmVt''@;'; put 'put ''b3ZlKGgsdil9fSx7a2V5OiJnZXRNZXRhIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcy5tZXRhcy5vYnRhaW4oaCkub2J0YWluKHYpO3JldHVybiB2b2lkIDA9PT15P0M6Q1t5XX19LHtrZXk6InNldE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3RoaXMubWV0YXMub2J0''@;'; put 'put ''YWluKGgpLm9idGFpbih2KVt5XT1DfX0se2tleToicmVtb3ZlTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2RlbGV0ZSB0aGlzLm1ldGFzLm9idGFpbihoKS5vYnRhaW4odilbeV19fSx7a2V5OiJnZXRNZXRhcyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGg9W10sdj1BcnJheS5mcm9t''@;'; put 'put ''KHRoaXMubWV0YXMudmFsdWVzKCkpLHk9MDt5PHYubGVuZ3RoO3krKyloLnB1c2guYXBwbHkoaCxaJGUodlt5XS52YWx1ZXMoKSkpO3JldHVybiBofX0se2tleToiZ2V0TWV0YXNBdFJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7ZnRlKGZ1bmN0aW9uKCl7cmV0dXJuIGN0ZShoKX0sIkV4cGVjdGlu''@;'; put 'put ''ZyBhbiB1bnNpZ25lZCBudW1iZXIuIik7dmFyIHY9bmV3IE1hcCh0aGlzLm1ldGFzKTtyZXR1cm4gdi5oYXMoaCk/QXJyYXkuZnJvbSh2LmdldChoKS52YWx1ZXMoKSk6W119fSx7a2V5OiJjbGVhckNhY2hlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWV0YXMuY2xlYXIoKX19LHtrZXk6Il9j''@;'; put 'put ''cmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcztyZXR1cm4gbmV3IGU2ZShmdW5jdGlvbih2KXtyZXR1cm4gaC5fY3JlYXRlTWV0YSh2KX0pfX0se2tleToiX2NyZWF0ZU1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBuZXcodGhpcy5jb2x1bW5NZXRhLmdldE1ldGFD''@;'; put 'put ''b25zdHJ1Y3RvcihoKSl9fV0pLGR9KCk7ZnVuY3Rpb24gWCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gYlNlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKysp''@;'; put 'put ''e3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIF9TZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhp''@;'; put 'put ''cyx2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSx5PWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTpbXTtYJGUodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMuZ2xvYmFsTWV0YT1uZXcg''@;'; put 'put ''TCRlKGcpLHRoaXMudGFibGVNZXRhPW5ldyBCJGUodGhpcy5nbG9iYWxNZXRhKSx0aGlzLmNvbHVtbk1ldGE9bmV3IGokZSh0aGlzLmdsb2JhbE1ldGEpLHRoaXMuY2VsbE1ldGE9bmV3IEokZSh0aGlzLmNvbHVtbk1ldGEpLHkuZm9yRWFjaChmdW5jdGlvbihDKXtyZXR1cm4gbmV3IEMoaCl9''@;'; put 'put ''KSx0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YSh2KX1yZXR1cm4gZnVuY3Rpb24gSyRlKGQsZyxoKXtnJiZiU2UoZC5wcm90b3R5cGUsZyksaCYmYlNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldEdsb2JhbE1l''@;'; put 'put ''dGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2xvYmFsTWV0YS5nZXRNZXRhKCl9fSx7a2V5OiJ1cGRhdGVHbG9iYWxNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmdsb2JhbE1ldGEudXBkYXRlTWV0YShoKX19LHtrZXk6ImdldFRhYmxlTWV0YSIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gdGhpcy50YWJsZU1ldGEuZ2V0TWV0YSgpfX0se2tleToidXBkYXRlVGFibGVNZXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnRhYmxlTWV0YS51cGRhdGVNZXRhKGgpfX0se2tleToiZ2V0Q29sdW1uTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuY29sdW1u''@;'; put 'put ''TWV0YS5nZXRNZXRhKGgpfX0se2tleToidXBkYXRlQ29sdW1uTWV0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLmNvbHVtbk1ldGEudXBkYXRlTWV0YShoLHYpfX0se2tleToiZ2V0Q2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz15LnZpc3VhbFJvdyxJPXkudmlzdWFs''@;'; put 'put ''Q29sdW1uLFo9dGhpcy5jZWxsTWV0YS5nZXRNZXRhKGgsdik7cmV0dXJuIFoudmlzdWFsUm93PUMsWi52aXN1YWxDb2w9SSxaLnJvdz1oLFouY29sPXYsdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckdldENlbGxNZXRhIixaKSxafX0se2tleToiZ2V0Q2VsbE1ldGFLZXlWYWx1ZSIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oaCx2LHkpe2lmKCJzdHJpbmciIT10eXBlb2YgeSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQgY2VsbCBtZXRhIG9iamVjdCBrZXkgaXMgbm90IGEgc3RyaW5nIik7cmV0dXJuIHRoaXMuY2VsbE1ldGEuZ2V0TWV0YShoLHYseSl9fSx7a2V5OiJzZXRDZWxsTWV0YSIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oaCx2LHksQyl7dGhpcy5jZWxsTWV0YS5zZXRNZXRhKGgsdix5LEMpfX0se2tleToidXBkYXRlQ2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt0aGlzLmNlbGxNZXRhLnVwZGF0ZU1ldGEoaCx2LHkpfX0se2tleToicmVtb3ZlQ2VsbE1ldGEiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKGgsdix5KXt0aGlzLmNlbGxNZXRhLnJlbW92ZU1ldGEoaCx2LHkpfX0se2tleToiZ2V0Q2VsbHNNZXRhIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbGxNZXRhLmdldE1ldGFzKCl9fSx7a2V5OiJnZXRDZWxsc01ldGFBdFJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; put 'put ''IHRoaXMuY2VsbE1ldGEuZ2V0TWV0YXNBdFJvdyhoKX19LHtrZXk6ImNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5jcmVhdGVSb3coaCx2KX19LHtr''@;'; put 'put ''ZXk6InJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5yZW1vdmVSb3coaCx2KX19LHtrZXk6ImNyZWF0ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oaCl7''@;'; put 'put ''dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjE7dGhpcy5jZWxsTWV0YS5jcmVhdGVDb2x1bW4oaCx2KSx0aGlzLmNvbHVtbk1ldGEuY3JlYXRlQ29sdW1uKGgsdil9fSx7a2V5OiJyZW1vdmVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToxO3RoaXMuY2VsbE1ldGEucmVtb3ZlQ29sdW1uKGgsdiksdGhpcy5jb2x1bW5NZXRhLnJlbW92ZUNvbHVtbihoLHYpfX0se2tleToiY2xlYXJDZWxsc0NhY2hlIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbigpe3RoaXMuY2VsbE1ldGEuY2xlYXJDYWNoZSgpfX0se2tleToiY2xlYXJDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNlbGxNZXRhLmNsZWFyQ2FjaGUoKSx0aGlzLmNvbHVtbk1ldGEuY2xlYXJDYWNoZSgpfX1dKSxkfSgpO2Z1bmN0aW9uIENTZShkLGcpe2Zvcih2YXIg''@;'; put 'put ''aD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fUIyKF9TZSx1ZCk7dmFyIGVxZT1mdW5j''@;'; put 'put ''dGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9dGhpczsoZnVuY3Rpb24gJCRlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMubWV0YU1hbmFnZXI9Zyx0aGlzLm1l''@;'; put 'put ''dGFTeW5jTWVtbz1uZXcgTWFwLGcuYWRkTG9jYWxIb29rKCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbih2KXtyZXR1cm4gaC5leHRlbmRDZWxsTWV0YSh2KX0pLHpvLmdldFNpbmdsZXRvbigpLmFkZCgiYmVmb3JlUmVuZGVyIixmdW5jdGlvbih2KXt2JiZoLm1ldGFTeW5jTWVtby5jbGVh''@;'; put 'put ''cigpfSx0aGlzLm1ldGFNYW5hZ2VyLmhvdCl9cmV0dXJuIGZ1bmN0aW9uIHEkZShkLGcsaCl7ZyYmQ1NlKGQucHJvdG90eXBlLGcpLGgmJkNTZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJleHRlbmRDZWxsTWV0YSIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHYseT1oLnJvdyxDPWguY29sO2lmKG51bGw9PT0odj10aGlzLm1ldGFTeW5jTWVtby5nZXQoeSkpfHx2b2lkIDA9PT12fHwhdi5oYXMoQykpe3ZhciBJPWgudmlzdWFsUm93LFo9aC52aXN1YWxDb2wsdWU9dGhpcy5tZXRhTWFuYWdlci5ob3QsX2U9dWUu''@;'; put 'put ''Y29sVG9Qcm9wKFopO2gucHJvcD1fZSx1ZS5ydW5Ib29rcygiYmVmb3JlR2V0Q2VsbE1ldGEiLEksWixoKTt2YXIgQmU9bzEoaCwidHlwZSIpP2gudHlwZTpudWxsLE5lPVUyKGguY2VsbHMpP2guY2VsbHMoeSxDLF9lKTpudWxsO2lmKEJlKWlmKE5lKXt2YXIgS2U7TmUudHlwZT1udWxsIT09''@;'; put 'put ''KEtlPU5lLnR5cGUpJiZ2b2lkIDAhPT1LZT9LZTpCZX1lbHNlIE5lPXt0eXBlOkJlfTtOZSYmdGhpcy5tZXRhTWFuYWdlci51cGRhdGVDZWxsTWV0YSh5LEMsTmUpLHVlLnJ1bkhvb2tzKCJhZnRlckdldENlbGxNZXRhIixJLFosaCksdGhpcy5tZXRhU3luY01lbW8uaGFzKHkpfHx0aGlzLm1l''@;'; put 'put ''dGFTeW5jTWVtby5zZXQoeSxuZXcgU2V0KSx0aGlzLm1ldGFTeW5jTWVtby5nZXQoeSkuYWRkKEMpfX19XSksZH0oKTtmdW5jdGlvbiBrU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3Vy''@;'; put 'put ''YWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgcnFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gdHFlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; put 'put ''Q2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMubWV0YU1hbmFnZXI9Zyx0aGlzLnVzYWdlVHJhY2tlcj1uZXcgU2V0LHRoaXMucHJvcERlc2NyaXB0b3JzPW5ldyBNYXAoW1siZml4ZWRDb2x1bW5zTGVmdCIse3RhcmdldDoiZml4ZWRDb2x1bW5zU3Rh''@;'; put 'put ''cnQiLG9uQ2hhbmdlOmZ1bmN0aW9uKHYpe2lmKHRoaXMubWV0YU1hbmFnZXIuaG90LmlzUnRsKCkmJiJmaXhlZENvbHVtbnNMZWZ0Ij09PXYpdGhyb3cgbmV3IEVycm9yKCJUaGUgYGZpeGVkQ29sdW1uc0xlZnRgIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFJUTC4gUGxlYXNlIHVzZSBvcHRpb24g''@;'; put 'put ''YGZpeGVkQ29sdW1uc1N0YXJ0YC4iKTtpZih0aGlzLnVzYWdlVHJhY2tlci5oYXMoImZpeGVkQ29sdW1uc0xlZnQiKSYmdGhpcy51c2FnZVRyYWNrZXIuaGFzKCJmaXhlZENvbHVtbnNTdGFydCIpKXRocm93IG5ldyBFcnJvcigiVGhlIGBmaXhlZENvbHVtbnNMZWZ0YCBhbmQgYGZpeGVkQ29s''@;'; put 'put ''dW1uc1N0YXJ0YCBzaG91bGQgbm90IGJlIHVzZWQgdG9nZXRoZXIuIFBsZWFzZSB1c2Ugb25seSB0aGUgb3B0aW9uIGBmaXhlZENvbHVtbnNTdGFydGAuIil9fV0sWyJsYXlvdXREaXJlY3Rpb24iLHtvbkNoYW5nZTpmdW5jdGlvbih2LHksQyl7aWYoIUMpdGhyb3cgbmV3IEVycm9yKCJUaGUg''@;'; put 'put ''YCIuY29uY2F0KHYsImAgb3B0aW9uIGNhbiBub3QgYmUgdXBkYXRlZCBhZnRlciB0aGUgSGFuZHNvbnRhYmxlIGlzIGluaXRpYWxpemVkLiIpKX19XV0pLHRoaXMuZXh0ZW5kTWV0YVByb3BzKCl9cmV0dXJuIGZ1bmN0aW9uIG5xZShkLGcsaCl7ZyYma1NlKGQucHJvdG90eXBlLGcpLGgmJmtT''@;'; put 'put ''ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJleHRlbmRNZXRhUHJvcHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLnByb3BEZXNjcmlwdG9ycy5mb3JFYWNoKGZ1bmN0aW9uKHYseSl7dmFyIEM9di50''@;'; put 'put ''YXJnZXQsST12Lm9uQ2hhbmdlLFo9dm9pZCAwPT09ST9mdW5jdGlvbigpe306SSx1ZT0ic3RyaW5nIj09dHlwZW9mIEMsX2U9dWU/Qzp5LEJlPSJfIi5jb25jYXQoX2UpO2gubWV0YU1hbmFnZXIuZ2xvYmFsTWV0YS5tZXRhW0JlXT1oLm1ldGFNYW5hZ2VyLmdsb2JhbE1ldGEubWV0YVtfZV0s''@;'; put 'put ''aC5pbnN0YWxsUHJvcFdhdGNoZXIoeSxCZSxaKSx1ZSYmaC5pbnN0YWxsUHJvcFdhdGNoZXIoQyxCZSxaKX0pfX0se2tleToiaW5zdGFsbFByb3BXYXRjaGVyIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcztPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcy5tZXRhTWFuYWdlci5n''@;'; put 'put ''bG9iYWxNZXRhLm1ldGEsaCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXNbdl19LHNldDpmdW5jdGlvbihaKXt2YXIgdWU9IUMudXNhZ2VUcmFja2VyLmhhcyhoKTtDLnVzYWdlVHJhY2tlci5hZGQoaCkseS5jYWxsKEMsaCxaLHVlKSx0aGlzW3ZdPVp9LGVudW1lcmFibGU6ITAsY29uZmln''@;'; put 'put ''dXJhYmxlOiEwfSl9fV0pLGR9KCksU1NlPShMKDg1NzM1KSwvXihcclxufFxuXHJ8XHJ8XG4pLyksaXFlPS9eW15cdFxyXG5dKy8sTVNlPS9eXHQvO2Z1bmN0aW9uIGN6KGQpe3ZhciBnLGgsdix5LEksQz0iIjtmb3IoZz0wLGg9ZC5sZW5ndGg7ZzxoO2crPTEpe2Zvcih5PWRbZ10ubGVuZ3Ro''@;'; put 'put ''LHY9MDt2PHk7dis9MSl2PjAmJihDKz0iXHQiKSwic3RyaW5nIj09dHlwZW9mKEk9ZFtnXVt2XSk/SS5pbmRleE9mKCJcbiIpPi0xP0MrPSciJy5jb25jYXQoSS5yZXBsYWNlKC8iL2csJyIiJyksJyInKTpDKz1JOkMrPW51bGw9PUk/IiI6STtnIT09aC0xJiYoQys9IlxuIil9cmV0dXJuIEN9''@;'; put 'put ''ZnVuY3Rpb24gbjZlKGQpe3JldHVybihuNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm''@;'; put 'put ''Zy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBFU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3Vy''@;'; put 'put ''YWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgc3FlPXFaKCJjb3B5YWJsZSIsITEpLHVxZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoLHYpeyhmdW5jdGlvbiBhcWUoZCxnKXtpZighKGQgaW5zdGFuY2Vv''@;'; put 'put ''ZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5pbnN0YW5jZT1nLHRoaXMudGFibGVNZXRhPXYsdGhpcy5kYXRhU291cmNlPWgsdGhpcy5kdWNrU2NoZW1hPXRoaXMuZGF0YVNvdXJjZSYmdGhpcy5kYXRh''@;'; put 'put ''U291cmNlWzBdP2xPKHRoaXMuZGF0YVNvdXJjZVswXSk6e30sdGhpcy5jb2xUb1Byb3BDYWNoZT12b2lkIDAsdGhpcy5wcm9wVG9Db2xDYWNoZT12b2lkIDAsdGhpcy5jcmVhdGVNYXAoKX1yZXR1cm4gZnVuY3Rpb24gbHFlKGQsZyxoKXtnJiZFU2UoZC5wcm90b3R5cGUsZyksaCYmRVNlKGQs''@;'; put 'put ''aCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImNyZWF0ZU1hcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNjaGVtYSgpO2lmKHZvaWQgMD09PWgpdGhyb3cgbmV3IEVycm9yKCJ0cnlpbmcgdG8gY3JlYXRlIGBj''@;'; put 'put ''b2x1bW5zYCBkZWZpbml0aW9uIGJ1dCB5b3UgZGlkbid0IHByb3ZpZGUgYHNjaGVtYWAgbm9yIGBkYXRhYCIpO3ZhciB5LHY9dGhpcy50YWJsZU1ldGEuY29sdW1ucztpZih0aGlzLmNvbFRvUHJvcENhY2hlPVtdLHRoaXMucHJvcFRvQ29sQ2FjaGU9bmV3IE1hcCx2KXt2YXIgQz0wLEk9MCxa''@;'; put 'put ''PSExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2KXt2YXIgdWU9SnEoaCk7Qz11ZT4wP3VlOnRoaXMuY291bnRGaXJzdFJvd0tleXMoKSxaPSEwfWVsc2UgQz1NYXRoLm1pbih0aGlzLnRhYmxlTWV0YS5tYXhDb2xzLHYubGVuZ3RoKTtmb3IoeT0wO3k8Qzt5Kyspe3ZhciBCZT1aP3YoeSk6dlt5''@;'; put 'put ''XTtpZih4bChCZSkpe2lmKHZvaWQgMCE9PUJlLmRhdGEpe3ZhciBOZT1aP0k6eTt0aGlzLmNvbFRvUHJvcENhY2hlW05lXT1CZS5kYXRhLHRoaXMucHJvcFRvQ29sQ2FjaGUuc2V0KEJlLmRhdGEsTmUpfUkrPTF9fX1lbHNlIHRoaXMucmVjdXJzaXZlRHVja0NvbHVtbnMoaCl9fSx7a2V5OiJj''@;'; put 'put ''b3VudEZpcnN0Um93S2V5cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gSmRlKHRoaXMuZGF0YVNvdXJjZSl9fSx7a2V5OiJyZWN1cnNpdmVEdWNrQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciB1ZSxDPXRoaXMsST12LFo9eTtyZXR1cm4gdm9pZCAwPT09SSYmKEk9MCxaPSIi''@;'; put 'put ''KSwib2JqZWN0Ij09PW42ZShoKSYmIUFycmF5LmlzQXJyYXkoaCkmJkdsKGgsZnVuY3Rpb24oX2UsQmUpe251bGw9PT1fZT8oQy5jb2xUb1Byb3BDYWNoZS5wdXNoKHVlPVorQmUpLEMucHJvcFRvQ29sQ2FjaGUuc2V0KHVlLEkpLEkrPTEpOkk9Qy5yZWN1cnNpdmVEdWNrQ29sdW1ucyhfZSxJ''@;'; put 'put ''LCIiLmNvbmNhdChCZSwiLiIpKX0pLEl9fSx7a2V5OiJjb2xUb1Byb3AiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCExPT09TnVtYmVyLmlzSW50ZWdlcihoKSlyZXR1cm4gaDt2YXIgdj10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oaCk7cmV0dXJuIG51bGw9PT12P2g6dGhpcy5jb2xU''@;'; put 'put ''b1Byb3BDYWNoZSYmVG8odGhpcy5jb2xUb1Byb3BDYWNoZVt2XSk/dGhpcy5jb2xUb1Byb3BDYWNoZVt2XTp2fX0se2tleToicHJvcFRvQ29sIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLnByb3BUb0NvbENhY2hlLmdldChoKTtpZihUbyh2KSlyZXR1cm4gdGhpcy5pbnN0YW5jZS50''@;'; put 'put ''b1Zpc3VhbENvbHVtbih2KTt2YXIgeT10aGlzLmluc3RhbmNlLnRvVmlzdWFsQ29sdW1uKGgpO3JldHVybiBudWxsPT09eT9oOnl9fSx7a2V5OiJnZXRTY2hlbWEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy50YWJsZU1ldGEuZGF0YVNjaGVtYTtyZXR1cm4gaD8iZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgaD9oKCk6aDp0aGlzLmR1Y2tTY2hlbWF9fSx7a2V5OiJjcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MSxDPWFyZ3VtZW50cy5sZW5ndGg+Mj9hcmd1bWVu''@;'; put 'put ''dHNbMl06dm9pZCAwLEk9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxaPUksdWU9MCxfZT1oOygibnVtYmVyIiE9dHlwZW9mIF9lfHxfZT49SSkmJihfZT1JKSxfZTx0aGlzLmluc3RhbmNlLmNvdW50Um93cygpJiYoWj10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coX2UpKTt2''@;'; put 'put ''YXIgQmU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93IixfZSx5LEMpO2lmKCExPT09QmV8fG51bGw9PT1aKXJldHVybiAwO2Zvcih2YXIgTmU9dGhpcy50YWJsZU1ldGEubWF4Um93cyxLZT10aGlzLmluc3RhbmNlLmNvdW50Q29scygpLHB0PVtdLE90PWZ1bmN0aW9u''@;'; put 'put ''KCl7dmFyIGZuPW51bGw7ImFycmF5Ij09PXYuaW5zdGFuY2UuZGF0YVR5cGU/di50YWJsZU1ldGEuZGF0YVNjaGVtYT9mbj1naCh2LmdldFNjaGVtYSgpKTooZm49W10saWEoS2UtMSxmdW5jdGlvbigpe3JldHVybiBmbi5wdXNoKG51bGwpfSkpOiJmdW5jdGlvbiI9PT12Lmluc3RhbmNlLmRh''@;'; put 'put ''dGFUeXBlP2ZuPXYudGFibGVNZXRhLmRhdGFTY2hlbWEoX2UrdWUpOkxaKGZuPXt9LHYuZ2V0U2NoZW1hKCkpLHB0LnB1c2goZm4pLHVlKz0xfTt1ZTx5JiZJK3VlPE5lOylPdCgpO3JldHVybiB0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoX2UsdWUpLHRoaXMu''@;'; put 'put ''c3BsaWNlRGF0YS5hcHBseSh0aGlzLFtaLDBdLmNvbmNhdChwdCkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyQ3JlYXRlUm93IixfZSx1ZSxDKSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCx1ZX19LHtrZXk6ImNyZWF0ZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFy''@;'; put 'put ''IHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZighdGhpcy5pbnN0YW5jZS5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQoKSl0aHJvdyBuZXcgRXJyb3Io''@;'; put 'put ''IkNhbm5vdCBjcmVhdGUgbmV3IGNvbHVtbi4gV2hlbiBkYXRhIHNvdXJjZSBpbiBhbiBvYmplY3QsIHlvdSBjYW4gb25seSBoYXZlIGFzIG11Y2ggY29sdW1ucyBhcyBkZWZpbmVkIGluIGZpcnN0IGRhdGEgcm93LCBkYXRhIHNjaGVtYSBvciBpbiB0aGUgJ2NvbHVtbnMnIHNldHRpbmcuSWYg''@;'; put 'put ''eW91IHdhbnQgdG8gYmUgYWJsZSB0byBhZGQgbmV3IGNvbHVtbnMsIHlvdSBoYXZlIHRvIHVzZSBhcnJheSBkYXRhc291cmNlLiIpO3ZhciBDPXRoaXMuZGF0YVNvdXJjZSxJPXRoaXMudGFibGVNZXRhLm1heENvbHMsWj1oOygibnVtYmVyIiE9dHlwZW9mIFp8fFo+PXRoaXMuaW5zdGFuY2Uu''@;'; put 'put ''Y291bnRTb3VyY2VDb2xzKCkpJiYoWj10aGlzLmluc3RhbmNlLmNvdW50U291cmNlQ29scygpKTt2YXIgdWU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlQ29sIixaLHYseSk7aWYoITE9PT11ZSlyZXR1cm4gMDt2YXIgX2U9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZUNv''@;'; put 'put ''bHMoKTtaPHRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCkmJihfZT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxDb2x1bW4oWikpO2Zvcih2YXIgQmU9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxOZT10aGlzLmluc3RhbmNlLmNvdW50Q29scygpLEtlPTAscHQ9X2U7S2U8diYmTmU8''@;'; put 'put ''STspe2lmKCJudW1iZXIiIT10eXBlb2YgWnx8Wj49TmUpaWYoQmU+MClmb3IodmFyIE90PTA7T3Q8QmU7T3QrPTEpdm9pZCAwPT09Q1tPdF0mJihDW090XT1bXSksQ1tPdF0ucHVzaChudWxsKTtlbHNlIEMucHVzaChbbnVsbF0pO2Vsc2UgZm9yKHZhciAkdD0wOyR0PEJlOyR0KyspQ1skdF0u''@;'; put 'put ''c3BsaWNlKHB0LDAsbnVsbCk7S2UrPTEscHQrPTEsTmUrPTF9cmV0dXJuIHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuaW5zZXJ0SW5kZXhlcyhaLEtlKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlckNyZWF0ZUNvbCIsWixLZSx5KSx0aGlzLmluc3RhbmNlLmZvcmNlRnVs''@;'; put 'put ''bFJlbmRlcj0hMCxLZX19LHtrZXk6InJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxDPU51bWJlci5p''@;'; put 'put ''c0ludGVnZXIoaCk/aDotdixJPXRoaXMudmlzdWFsUm93c1RvUGh5c2ljYWwoQyx2KSxaPXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VSb3dzKCksdWU9dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlUm93IixDPShaK0MpJVosSS5sZW5ndGgsSSx5KTtpZighMT09PXVlKXJl''@;'; put 'put ''dHVybiExO3ZhciBfZT1JLmxlbmd0aDtpZih0aGlzLmZpbHRlckRhdGEoQyxfZSxJKSxDPHRoaXMuaW5zdGFuY2UuY291bnRSb3dzKCkpe3RoaXMuaW5zdGFuY2Uucm93SW5kZXhNYXBwZXIucmVtb3ZlSW5kZXhlcyhJKTt2YXIgQmU9VG8odGhpcy50YWJsZU1ldGEuY29sdW1ucyl8fFRvKHRo''@;'; put 'put ''aXMudGFibGVNZXRhLmRhdGFTY2hlbWEpOzA9PT10aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLmdldE5vdFRyaW1tZWRJbmRleGVzTGVuZ3RoKCkmJiExPT09QmUmJnRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKFtdKX1yZXR1cm4gdGhpcy5p''@;'; put 'put ''bnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJSZW1vdmVSb3ciLEMsX2UsSSx5KSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCwhMH19LHtrZXk6InJlbW92ZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/''@;'; put 'put ''YXJndW1lbnRzWzFdOjEseT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnZvaWQgMDtpZigib2JqZWN0Ij09PXRoaXMuaW5zdGFuY2UuZGF0YVR5cGV8fHRoaXMudGFibGVNZXRhLmNvbHVtbnMpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgcmVtb3ZlIGNvbHVtbiB3aXRoIG9iamVj''@;'; put 'put ''dCBkYXRhIHNvdXJjZSBvciBjb2x1bW5zIG9wdGlvbiBzcGVjaWZpZWQiKTt2YXIgQz0ibnVtYmVyIiE9dHlwZW9mIGg/LXY6aDtDPSh0aGlzLmluc3RhbmNlLmNvdW50Q29scygpK0MpJXRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCk7dmFyIEk9dGhpcy52aXN1YWxDb2x1bW5zVG9QaHlzaWNh''@;'; put 'put ''bChDLHYpLFo9SS5zbGljZSgwKS5zb3J0KGZ1bmN0aW9uKGlyLG1yKXtyZXR1cm4gbXItaXJ9KSx1ZT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVSZW1vdmVDb2wiLEMsdixJLHkpO2lmKCExPT09dWUpcmV0dXJuITE7Zm9yKHZhciBfZT0hMCxCZT1aLmxlbmd0aCxOZT10aGlzLmRh''@;'; put 'put ''dGFTb3VyY2UsS2U9MDtLZTxCZTtLZSsrKV9lJiZJWzBdIT09SVtLZV0tS2UmJihfZT0hMSk7aWYoX2UpZm9yKHZhciBwdD0wLE90PXRoaXMuaW5zdGFuY2UuY291bnRTb3VyY2VSb3dzKCk7cHQ8T3Q7cHQrKylOZVtwdF0uc3BsaWNlKElbMF0sdik7ZWxzZSBmb3IodmFyICR0PTAsZm49dGhp''@;'; put 'put ''cy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTskdDxmbjskdCsrKWZvcih2YXIgTG49MDtMbjxCZTtMbisrKU5lWyR0XS5zcGxpY2UoWltMbl0sMSk7cmV0dXJuIEM8dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSYmKHRoaXMuaW5zdGFuY2UuY29sdW1uSW5kZXhNYXBwZXIucmVtb3ZlSW5k''@;'; put 'put ''ZXhlcyhJKSwwPT09dGhpcy5pbnN0YW5jZS5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpJiZ0aGlzLmluc3RhbmNlLnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZShbXSkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImFmdGVyUmVtb3ZlQ29s''@;'; put 'put ''IixDLHYsSSx5KSx0aGlzLmluc3RhbmNlLmZvcmNlRnVsbFJlbmRlcj0hMCwhMH19LHtrZXk6InNwbGljZUNvbCIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2Zvcih2YXIgQz10aGlzLmluc3RhbmNlLmdldERhdGFBdENvbChoKSxJPUMuc2xpY2Uodix2K3kpLFo9Qy5zbGljZSh2K3kpLHVlPWFy''@;'; put 'put ''Z3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5KHVlPjM/dWUtMzowKSxCZT0zO0JlPHVlO0JlKyspX2VbQmUtM109YXJndW1lbnRzW0JlXTtRaGUoX2UsWik7Zm9yKHZhciBOZT0wO05lPHk7KV9lLnB1c2gobnVsbCksTmUrPTE7cmV0dXJuIGRiZShfZSksdGhpcy5pbnN0YW5jZS5wb3B1bGF0''@;'; put 'put ''ZUZyb21BcnJheSh2LGgsX2UsbnVsbCxudWxsLCJzcGxpY2VDb2wiKSxJfX0se2tleToic3BsaWNlUm93Iix2YWx1ZTpmdW5jdGlvbihoLHYseSl7Zm9yKHZhciBDPXRoaXMuaW5zdGFuY2UuZ2V0U291cmNlRGF0YUF0Um93KGgpLEk9Qy5zbGljZSh2LHYreSksWj1DLnNsaWNlKHYreSksdWU9''@;'; put 'put ''YXJndW1lbnRzLmxlbmd0aCxfZT1uZXcgQXJyYXkodWU+Mz91ZS0zOjApLEJlPTM7QmU8dWU7QmUrKylfZVtCZS0zXT1hcmd1bWVudHNbQmVdO1FoZShfZSxaKTtmb3IodmFyIE5lPTA7TmU8eTspX2UucHVzaChudWxsKSxOZSs9MTtyZXR1cm4gdGhpcy5pbnN0YW5jZS5wb3B1bGF0ZUZyb21B''@;'; put 'put ''cnJheShoLHYsW19lXSxudWxsLG51bGwsInNwbGljZVJvdyIpLEl9fSx7a2V5OiJzcGxpY2VEYXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHk+Mj95LTI6MCksST0yO0k8eTtJKyspQ1tJLTJdPWFyZ3VtZW50c1tJXTt2YXIg''@;'; put 'put ''dWUsWj10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVEYXRhU3BsaWNlIixoLHYsQyk7ITEhPT1aJiYodWU9dGhpcy5kYXRhU291cmNlKS5zcGxpY2UuYXBwbHkodWUsW2gsdl0uY29uY2F0KEMpKX19LHtrZXk6ImZpbHRlckRhdGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10''@;'; put 'put ''aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJmaWx0ZXJEYXRhIixoLHYseSk7ITE9PT1BcnJheS5pc0FycmF5KEMpJiYoQz10aGlzLmRhdGFTb3VyY2UuZmlsdGVyKGZ1bmN0aW9uKEksWil7cmV0dXJuLTE9PT15LmluZGV4T2YoWil9KSksdGhpcy5kYXRhU291cmNlLmxlbmd0aD0wLEFycmF5LnBy''@;'; put 'put ''b3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMuZGF0YVNvdXJjZSxDKX19LHtrZXk6ImdldCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coaCksQz10aGlzLmRhdGFTb3VyY2VbeV0sST10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJtb2RpZnlSb3dE''@;'; put 'put ''YXRhIix5KSxaPW51bGw7aWYoKEM9aXNOYU4oSSk/STpDKSYmQy5oYXNPd25Qcm9wZXJ0eSYmbzEoQyx2KSlaPUNbdl07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIHYmJnYuaW5kZXhPZigiLiIpPi0xKXt2YXIgdWU9di5zcGxpdCgiLiIpLF9lPUM7aWYoIV9lKXJldHVybiBudWxsO2Zvcih2''@;'; put 'put ''YXIgQmU9MCxOZT11ZS5sZW5ndGg7QmU8TmU7QmUrKylpZih2b2lkIDA9PT0oX2U9X2VbdWVbQmVdXSkpcmV0dXJuIG51bGw7Wj1fZX1lbHNlImZ1bmN0aW9uIj09dHlwZW9mIHYmJihaPXYodGhpcy5kYXRhU291cmNlLnNsaWNlKHkseSsxKVswXSkpO2lmKHRoaXMuaW5zdGFuY2UuaGFzSG9v''@;'; put 'put ''aygibW9kaWZ5RGF0YSIpKXt2YXIgS2U9RVMoWik7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygibW9kaWZ5RGF0YSIseSx0aGlzLnByb3BUb0NvbCh2KSxLZSwiZ2V0IiksS2UuaXNUb3VjaGVkKCkmJihaPUtlLnZhbHVlKX1yZXR1cm4gWn19LHtrZXk6ImdldENvcHlhYmxlIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbihoLHYpe3JldHVybiBzcWUuY2FsbCh0aGlzLmluc3RhbmNlLGgsdGhpcy5wcm9wVG9Db2wodikpP3RoaXMuZ2V0KGgsdik6IiJ9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3coaCksST15LFo9dGhpcy5kYXRh''@;'; put 'put ''U291cmNlW0NdLHVlPXRoaXMuaW5zdGFuY2UucnVuSG9va3MoIm1vZGlmeVJvd0RhdGEiLEMpO2lmKFo9aXNOYU4odWUpP3VlOlosdGhpcy5pbnN0YW5jZS5oYXNIb29rKCJtb2RpZnlEYXRhIikpe3ZhciBfZT1FUyhJKTt0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJtb2RpZnlEYXRhIixDLHRo''@;'; put 'put ''aXMucHJvcFRvQ29sKHYpLF9lLCJzZXQiKSxfZS5pc1RvdWNoZWQoKSYmKEk9X2UudmFsdWUpfWlmKFomJlouaGFzT3duUHJvcGVydHkmJm8xKFosdikpWlt2XT1JO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB2JiZ2LmluZGV4T2YoIi4iKT4tMSl7dmFyIHB0LEJlPXYuc3BsaXQoIi4iKSxO''@;'; put 'put ''ZT1aLEtlPTA7Zm9yKEtlPTAscHQ9QmUubGVuZ3RoLTE7S2U8cHQ7S2UrKyl2b2lkIDA9PT1OZVtCZVtLZV1dJiYoTmVbQmVbS2VdXT17fSksTmU9TmVbQmVbS2VdXTtOZVtCZVtLZV1dPUl9ZWxzZSJmdW5jdGlvbiI9PXR5cGVvZiB2P3YodGhpcy5kYXRhU291cmNlLnNsaWNlKEMsQysxKVsw''@;'; put 'put ''XSxJKTpaW3ZdPUl9fSx7a2V5OiJ2aXN1YWxSb3dzVG9QaHlzaWNhbCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtmb3IodmFyIHVlLHk9dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKSxDPVtdLEk9KHkraCkleSxaPXY7STx5JiZaOyl1ZT10aGlzLmluc3RhbmNlLnRvUGh5c2ljYWxSb3co''@;'; put 'put ''SSksQy5wdXNoKHVlKSxaLT0xLEkrPTE7cmV0dXJuIEN9fSx7a2V5OiJ2aXN1YWxDb2x1bW5zVG9QaHlzaWNhbCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtmb3IodmFyIHk9dGhpcy5pbnN0YW5jZS5jb3VudENvbHMoKSxDPVtdLEk9KHkraCkleSxaPXY7STx5JiZaOyl7dmFyIHVlPXRoaXMuaW5z''@;'; put 'put ''dGFuY2UudG9QaHlzaWNhbENvbHVtbihJKTtDLnB1c2godWUpLFotPTEsSSs9MX1yZXR1cm4gQ319LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgaD0wO2g8dGhpcy5pbnN0YW5jZS5jb3VudFNvdXJjZVJvd3MoKTtoKyspZm9yKHZhciB2PTA7djx0aGlzLmluc3RhbmNl''@;'; put 'put ''LmNvdW50Q29scygpO3YrKyl0aGlzLnNldChoLHRoaXMuY29sVG9Qcm9wKHYpLCIiKX19LHtrZXk6ImdldExlbmd0aCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdixoPXRoaXMudGFibGVNZXRhLm1heFJvd3M7dj1oPDB8fDA9PT1oPzA6aHx8MS8wO3ZhciB5PXRoaXMuaW5zdGFuY2Uucm93SW5k''@;'; put 'put ''ZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKTtyZXR1cm4gTWF0aC5taW4oeSx2KX19LHtrZXk6ImdldEFsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD17cm93OjAsY29sOjB9LHY9e3JvdzpNYXRoLm1heCh0aGlzLmluc3RhbmNlLmNvdW50Um93cygpLTEsMCksY29sOk1h''@;'; put 'put ''dGgubWF4KHRoaXMuaW5zdGFuY2UuY291bnRDb2xzKCktMSwwKX07cmV0dXJuIGgucm93LXYucm93IT0wfHx0aGlzLmluc3RhbmNlLmNvdW50U291cmNlUm93cygpP3RoaXMuZ2V0UmFuZ2UoaCx2LGQuREVTVElOQVRJT05fUkVOREVSRVIpOltdfX0se2tleToiY291bnRDYWNoZWRDb2x1bW5z''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbFRvUHJvcENhY2hlLmxlbmd0aH19LHtrZXk6ImdldFJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEksWix1ZSxDPVtdLF9lPXRoaXMudGFibGVNZXRhLm1heFJvd3MsQmU9dGhpcy50YWJsZU1ldGEubWF4Q29scztpZigw''@;'; put 'put ''PT09X2V8fDA9PT1CZSlyZXR1cm5bXTt2YXIgTmU9eT09PWQuREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUj90aGlzLmdldENvcHlhYmxlOnRoaXMuZ2V0LEtlPU1hdGgubWluKE1hdGgubWF4KF9lLTEsMCksTWF0aC5tYXgoaC5yb3csdi5yb3cpKSxwdD1NYXRoLm1pbihNYXRoLm1h''@;'; put 'put ''eChCZS0xLDApLE1hdGgubWF4KGguY29sLHYuY29sKSk7Zm9yKEk9TWF0aC5taW4oaC5yb3csdi5yb3cpO0k8PUtlO0krKyl7dWU9W107dmFyIE90PUk+PTA/dGhpcy5pbnN0YW5jZS50b1BoeXNpY2FsUm93KEkpOkk7Zm9yKFo9TWF0aC5taW4oaC5jb2wsdi5jb2wpO1o8PXB0JiZudWxsIT09''@;'; put 'put ''T3Q7WisrKXVlLnB1c2goTmUuY2FsbCh0aGlzLEksdGhpcy5jb2xUb1Byb3AoWikpKTtudWxsIT09T3QmJkMucHVzaCh1ZSl9cmV0dXJuIEN9fSx7a2V5OiJnZXRUZXh0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiBjeih0aGlzLmdldFJhbmdlKGgsdixkLkRFU1RJTkFUSU9OX1JFTkRF''@;'; put 'put ''UkVSKSl9fSx7a2V5OiJnZXRDb3B5YWJsZVRleHQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIGN6KHRoaXMuZ2V0UmFuZ2UoaCx2LGQuREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUikpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmluc3RhbmNlPW51''@;'; put 'put ''bGwsdGhpcy50YWJsZU1ldGE9bnVsbCx0aGlzLmRhdGFTb3VyY2U9bnVsbCx0aGlzLmR1Y2tTY2hlbWE9bnVsbCx0aGlzLmNvbFRvUHJvcENhY2hlLmxlbmd0aD0wLHRoaXMucHJvcFRvQ29sQ2FjaGUuY2xlYXIoKSx0aGlzLnByb3BUb0NvbENhY2hlPXZvaWQgMH19XSxbe2tleToiREVTVElO''@;'; put 'put ''QVRJT05fUkVOREVSRVIiLGdldDpmdW5jdGlvbigpe3JldHVybiAxfX0se2tleToiREVTVElOQVRJT05fQ0xJUEJPQVJEX0dFTkVSQVRPUiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDJ9fV0pLGR9KCk7Y29uc3QgY3FlPXVxZTtmdW5jdGlvbiBkdGUoZCl7cmV0dXJuKGR0ZT0iZnVuY3Rpb24i''@;'; put 'put ''PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnBy''@;'; put 'put ''b3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHhTZShkLGcsaCx2KXt2YXIgeT12LmhvdEluc3RhbmNlLEM9di5kYXRhTWFwLEk9di5kYXRhU291cmNlLFo9di5pbnRlcm5hbFNvdXJjZSx1ZT12LnNvdXJjZSxfZT12LmZpcnN0UnVuLEJlPWxkKFopLE5lPXkuZ2V0U2V0''@;'; put 'put ''dGluZ3MoKTt5LmRhdGFUeXBlPUFycmF5LmlzQXJyYXkoTmUuZGF0YVNjaGVtYSk/ImFycmF5IjpVMihOZS5kYXRhU2NoZW1hKT8iZnVuY3Rpb24iOiJvYmplY3QiLEMmJkMuZGVzdHJveSgpLGQ9eS5ydW5Ib29rcygiYmVmb3JlIi5jb25jYXQoQmUpLGQsX2UsdWUpO3ZhciBLZT1uZXcgY3Fl''@;'; put 'put ''KHksZCxOZSk7aWYoZyhLZSksIm9iamVjdCI9PT1kdGUoZCkmJm51bGwhPT1kKWQucHVzaCYmZC5zcGxpY2V8fChkPVtkXSk7ZWxzZXtpZihudWxsIT09ZCl0aHJvdyBuZXcgRXJyb3IoIiIuY29uY2F0KFosIiBvbmx5IGFjY2VwdHMgYXJyYXkgb2Ygb2JqZWN0cyBvciBhcnJheSBvZiBhcnJh''@;'; put 'put ''eXMgKCIpLmNvbmNhdChkdGUoZCksIiBnaXZlbikiKSk7dmFyIHB0PUtlLmdldFNjaGVtYSgpO2Q9W107dmFyIE90LGZuLCR0PTA7Zm9yKCR0PTAsZm49TmUuc3RhcnRSb3dzOyR0PGZuOyR0KyspaWYoIm9iamVjdCIhPT15LmRhdGFUeXBlJiYiZnVuY3Rpb24iIT09eS5kYXRhVHlwZXx8IU5l''@;'; put 'put ''LmRhdGFTY2hlbWEpaWYoImFycmF5Ij09PXkuZGF0YVR5cGUpT3Q9Z2gocHRbMF0pLGQucHVzaChPdCk7ZWxzZXtPdD1bXTtmb3IodmFyIExuPTAsaXI9TmUuc3RhcnRDb2xzO0xuPGlyO0xuKyspT3QucHVzaChudWxsKTtkLnB1c2goT3QpfWVsc2UgT3Q9Z2gocHQpLGQucHVzaChPdCl9QXJy''@;'; put 'put ''YXkuaXNBcnJheShkWzBdKSYmKHkuZGF0YVR5cGU9ImFycmF5IiksTmUuZGF0YT1kLEtlLmRhdGFTb3VyY2U9ZCxJLmRhdGE9ZCxJLmRhdGFUeXBlPXkuZGF0YVR5cGUsSS5jb2xUb1Byb3A9S2UuY29sVG9Qcm9wLmJpbmQoS2UpLEkucHJvcFRvQ29sPUtlLnByb3BUb0NvbC5iaW5kKEtlKSxJ''@;'; put 'put ''LmNvdW50Q2FjaGVkQ29sdW1ucz1LZS5jb3VudENhY2hlZENvbHVtbnMuYmluZChLZSksaChLZSkseS5ydW5Ib29rcygiYWZ0ZXIiLmNvbmNhdChCZSksZCxfZSx1ZSksX2V8fCh5LnJ1bkhvb2tzKCJhZnRlckNoYW5nZSIsbnVsbCxaKSx5LnJlbmRlcigpKX12YXIgRFNlLFRTZT1uZXcgTWFw''@;'; put 'put ''KFtbIiAiLCJzcGFjZSJdLFsic3BhY2ViYXIiLCJzcGFjZSJdLFsic2Nyb2xsIiwic2Nyb2xsbG9jayJdLFsiZGVsIiwiZGVsZXRlIl0sWyJlc2MiLCJlc2NhcGUiXSxbIm1lZGlhbmV4dHRyYWNrIiwibWVkaWF0cmFja25leHQiXSxbIm1lZGlhcHJldmlvdXN0cmFjayIsIm1lZGlhdHJhY2tw''@;'; put 'put ''cmV2aW91cyJdLFsidm9sdW1ldXAiLCJhdWRpb3ZvbHVtZXVwIl0sWyJ2b2x1bWVkb3duIiwiYXVkaW92b2x1bWVkb3duIl0sWyJ2b2x1bWVtdXRlIiwiYXVkaW92b2x1bWVtdXRlIl0sWyJtdWx0aXBseSIsIioiXSxbImFkZCIsIisiXSxbImRpdmlkZSIsIi8iXSxbInN1YnRyYWN0IiwiLSJd''@;'; put 'put ''LFsibGVmdCIsImFycm93bGVmdCJdLFsicmlnaHQiLCJhcnJvd3JpZ2h0Il0sWyJ1cCIsImFycm93dXAiXSxbImRvd24iLCJhcnJvd2Rvd24iXV0pLHB0ZT1mdW5jdGlvbihnKXtyZXR1cm4gZy5tYXAoZnVuY3Rpb24oaCl7dmFyIHY9aC50b0xvd2VyQ2FzZSgpO3JldHVybiBUU2UuaGFzKHYp''@;'; put 'put ''P1RTZS5nZXQodik6dn0pLnNvcnQoKS5qb2luKCIrIil9LElTZT1mdW5jdGlvbihnKXtyZXR1cm4gZy50b0xvd2VyQ2FzZSgpfTtmdW5jdGlvbiBMU2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHI2ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJp''@;'; put 'put ''bmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/''@;'; put 'put ''OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gcjZlKGQsZyl9fWZ1bmN0aW9uIHI2ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHdxZShk''@;'; put 'put ''LGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9dmFyIENxZT1bIm1ldGEiLCJhbHQiLCJzaGlmdCIsImNvbnRyb2wiXSxndGU9ZnVuY3Rpb24gX3FlKCl7dmFy''@;'; put 'put ''IGQ9bmV3IFNldDtyZXR1cm57cHJlc3M6ZnVuY3Rpb24oaCl7ZC5hZGQoaCl9LHJlbGVhc2U6ZnVuY3Rpb24oaCl7ZC5kZWxldGUoaCl9LHJlbGVhc2VBbGw6ZnVuY3Rpb24oKXtkLmNsZWFyKCl9LGlzUHJlc3NlZDpmdW5jdGlvbihoKXtyZXR1cm4gZC5oYXMoaCl9fX0oKSxTcWU9ZnVuY3Rp''@;'; put 'put ''b24oZyl7dmFyIGg9Zy5vd25lcldpbmRvdyx2PWcuaGFuZGxlRXZlbnQseT1nLmJlZm9yZUtleURvd24sQz1nLmFmdGVyS2V5RG93bixJPXVlZSh7ZXJyb3JJZEV4aXN0czpmdW5jdGlvbigkdCl7cmV0dXJuJ1RoZSAiJy5jb25jYXQoJHQsJyIgY29udGV4dCBuYW1lIGlzIGFscmVhZHkgcmVn''@;'; put 'put ''aXN0ZXJlZC4nKX19KSxaPSJncmlkIixfZT1mdW5jdGlvbigpe3JldHVybiBafSxCZT1mdW5jdGlvbigkdCl7cmV0dXJuIEkuZ2V0SXRlbSgkdCl9LEtlPSExLHB0PWZ1bmN0aW9uIGtxZShkLGcsaCx2LHkpe3ZhciBDPWZ1bmN0aW9uKHB0KXtyZXR1cm4gQ3FlLmluY2x1ZGVzKHB0KX0sST1m''@;'; put 'put ''dW5jdGlvbihwdCl7dmFyIE90PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sJHQ9W107cmV0dXJuIHB0LmFsdEtleSYmJHQucHVzaCgiYWx0IiksT3QmJihwdC5jdHJsS2V5fHxwdC5tZXRhS2V5KT8kdC5wdXNoKCJjb250cm9sL21ldGEi''@;'; put 'put ''KToocHQuY3RybEtleSYmJHQucHVzaCgiY29udHJvbCIpLHB0Lm1ldGFLZXkmJiR0LnB1c2goIm1ldGEiKSkscHQuc2hpZnRLZXkmJiR0LnB1c2goInNoaWZ0IiksJHR9LFo9ZnVuY3Rpb24ocHQpe2lmKCExIT09ZyhwdCkmJiExIT09aChwdCkmJiFUUyhwdCkpe3ZhciAkdD1JU2UocHQua2V5''@;'; put 'put ''KSxmbj1bXTtDKCR0KT9ndGUucHJlc3MoJHQpOmZuPUkocHQpO3ZhciBMbj1bJHRdLmNvbmNhdChmbik7IXkocHQsTG4pJiYoS3EoKSYmZm4uaW5jbHVkZXMoIm1ldGEiKXx8IUtxKCkmJmZuLmluY2x1ZGVzKCJjb250cm9sIikpJiZ5KHB0LFskdF0uY29uY2F0KEkocHQsITApKSksdihwdCl9''@;'; put 'put ''fSx1ZT1mdW5jdGlvbihwdCl7aWYoITEhPT1nKHB0KSl7dmFyIE90PUlTZShwdC5rZXkpOyExIT09QyhPdCkmJmd0ZS5yZWxlYXNlKE90KX19LF9lPWZ1bmN0aW9uKCl7Z3RlLnJlbGVhc2VBbGwoKX07cmV0dXJue21vdW50OmZ1bmN0aW9uKCl7Zm9yKHZhciBwdD1kO3B0OylwdC5hZGRFdmVu''@;'; put 'put ''dExpc3RlbmVyKCJrZXlkb3duIixaKSxwdC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsdWUpLHB0LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLF9lKSxwdD1wdC5mcmFtZUVsZW1lbnR9LHVubW91bnQ6ZnVuY3Rpb24oKXtmb3IodmFyIHB0PWQ7cHQ7KXB0LnJlbW92ZUV2ZW50TGlzdGVuZXIo''@;'; put 'put ''ImtleWRvd24iLFopLHB0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXVwIix1ZSkscHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsX2UpLHB0PXB0LmZyYW1lRWxlbWVudH0saXNQcmVzc2VkOmZ1bmN0aW9uKHB0KXtyZXR1cm4gZ3RlLmlzUHJlc3NlZChwdCl9fX0oaCx2LHksQyxmdW5j''@;'; put 'put ''dGlvbihPdCwkdCl7dmFyIGZuPUJlKF9lKCkpLExuPSExO2lmKCFmbi5oYXNTaG9ydGN1dCgkdCkpcmV0dXJuIExuO2Zvcih2YXIgaXI9Zm4uZ2V0U2hvcnRjdXRzKCR0KSxtcj0wO21yPGlyLmxlbmd0aDttcisrKXt2YXIgU3I9aXJbbXJdLHdyPVNyLmNhbGxiYWNrLHlpPVNyLnByZXZlbnRE''@;'; put 'put ''ZWZhdWx0LEtpPVNyLnN0b3BQcm9wYWdhdGlvbixTbz1Tci5jYXB0dXJlQ3RybDtpZighMSE9PSgwLFNyLnJ1bk9ubHlJZikoT3QpJiYoS2U9U28sTG49ITE9PT13cihPdCwkdCksS2U9ITEseWkmJk90LnByZXZlbnREZWZhdWx0KCksS2kmJk90LnN0b3BQcm9wYWdhdGlvbigpLExuKSlicmVh''@;'; put 'put ''a31yZXR1cm4gTG59KTtyZXR1cm4gcHQubW91bnQoKSx7YWRkQ29udGV4dDpmdW5jdGlvbigkdCl7dmFyIGZuPWZ1bmN0aW9uKGcpe3ZhciBoPXVlZSh7ZXJyb3JJZEV4aXN0czpmdW5jdGlvbihCZSl7cmV0dXJuJ1RoZSAiJy5jb25jYXQoQmUsJyIgc2hvcnRjdXQgaXMgYWxyZWFkeSByZWdp''@;'; put 'put ''c3RlcmVkIGluIHRoZSAiJykuY29uY2F0KGcsJyIgY29udGV4dC4nKX19KSx2PWZ1bmN0aW9uKCl7dmFyIEJlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fSxOZT1CZS5rZXlzLEtlPUJlLmNhbGxiYWNrLHB0PUJlLmdyb3VwLE90PUJl''@;'; put 'put ''LnJ1bk9ubHlJZiwkdD12b2lkIDA9PT1PdD9mdW5jdGlvbigpe3JldHVybiEwfTpPdCxmbj1CZS5jYXB0dXJlQ3RybCxMbj12b2lkIDAhPT1mbiYmZm4saXI9QmUucHJldmVudERlZmF1bHQsbXI9dm9pZCAwPT09aXJ8fGlyLFNyPUJlLnN0b3BQcm9wYWdhdGlvbix3cj12b2lkIDAhPT1TciYm''@;'; put 'put ''U3IsUXI9QmUucmVsYXRpdmVUb0dyb3VwLHlpPUJlLnBvc2l0aW9uO2lmKGExKHB0KSl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGRlZmluZSB0aGUgc2hvcnRjdXQncyBncm91cC4iKTtpZighMT09PVUyKEtlKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBzaG9ydGN1dCdzIGNhbGxiYWNr''@;'; put 'put ''IG5lZWRzIHRvIGJlIGEgZnVuY3Rpb24uIik7aWYoITE9PT1BcnJheS5pc0FycmF5KE5lKSl0aHJvdyBuZXcgRXJyb3IoUDIoRFNlfHwoRFNlPXdxZShbIlBhc3MgdGhlIHNob3J0Y3V0J3Mga2V5cyBhcyBhbiBhcnJheSBvZiBhcnJheXMsIFxuICAgICAgdXNpbmcgdGhlIEtleWJvYXJkRXZl''@;'; put 'put ''bnQua2V5IHByb3BlcnRpZXM6IFxuICAgICAgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQva2V5L0tleV9WYWx1ZXMuIl0sWyJQYXNzIHRoZSBzaG9ydGN1dFxcJ3Mga2V5cyBhcyBhbiBhcnJheSBvZiBhcnJheXMsXFx4MjBc''@;'; put 'put ''biAgICAgIHVzaW5nIHRoZSBLZXlib2FyZEV2ZW50LmtleSBwcm9wZXJ0aWVzOlxceDIwXG4gICAgICBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvS2V5Ym9hcmRFdmVudC9rZXkvS2V5X1ZhbHVlcy4iXSkpKSk7dmFyIEtpPXtjYWxsYmFjazpLZSxn''@;'; put 'put ''cm91cDpwdCxydW5Pbmx5SWY6JHQsY2FwdHVyZUN0cmw6TG4scHJldmVudERlZmF1bHQ6bXIsc3RvcFByb3BhZ2F0aW9uOndyfTtpZihUbyhRcikpe3ZhciBTbz1bUXIseWldO0tpLnJlbGF0aXZlVG9Hcm91cD1Tb1swXSxLaS5wb3NpdGlvbj1Tb1sxXX1OZS5mb3JFYWNoKGZ1bmN0aW9uKFBv''@;'; put 'put ''KXt2YXIgU2E9cHRlKFBvKTtpZihoLmhhc0l0ZW0oU2EpKXt2YXIgbGE9aC5nZXRJdGVtKFNhKSxhbD1sYS5maW5kSW5kZXgoZnVuY3Rpb24oUnMpe3JldHVybiBScy5ncm91cD09PVFyfSk7LTEhPT1hbD8iYmVmb3JlIj09PXlpP2FsLT0xOmFsKz0xOmFsPWxhLmxlbmd0aCxsYS5zcGxpY2Uo''@;'; put 'put ''YWwsMCxLaSl9ZWxzZSBoLmFkZEl0ZW0oU2EsW0tpXSl9KX0sQz1mdW5jdGlvbihCZSl7dmFyIE5lPXB0ZShCZSk7aC5yZW1vdmVJdGVtKE5lKX07cmV0dXJue2FkZFNob3J0Y3V0OnYsYWRkU2hvcnRjdXRzOmZ1bmN0aW9uKEJlKXt2YXIgTmU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAh''@;'; put 'put ''PT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O0JlLmZvckVhY2goZnVuY3Rpb24oS2Upe0dsKE5lLGZ1bmN0aW9uKHB0LE90KXshMT09PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChLZSxPdCkmJihLZVtPdF09TmVbT3RdKX0pLHYoS2UpfSl9LGdldFNob3J0Y3V0''@;'; put 'put ''czpmdW5jdGlvbihCZSl7dmFyIE5lPXB0ZShCZSksS2U9aC5nZXRJdGVtKE5lKTtyZXR1cm4gVG8oS2UpP0tlLnNsaWNlKCk6W119LGhhc1Nob3J0Y3V0OmZ1bmN0aW9uKEJlKXt2YXIgTmU9cHRlKEJlKTtyZXR1cm4gaC5oYXNJdGVtKE5lKX0scmVtb3ZlU2hvcnRjdXRzQnlLZXlzOkMscmVt''@;'; put 'put ''b3ZlU2hvcnRjdXRzQnlHcm91cDpmdW5jdGlvbihCZSl7aC5nZXRJdGVtcygpLmZvckVhY2goZnVuY3Rpb24oS2Upe3ZhciBwdD1mdW5jdGlvbiBtcWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24geXFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBBcWUoZCxn''@;'; put 'put ''KXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYo''@;'; put 'put ''di5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxMU2UoZCxnKXx8ZnVuY3Rpb24gdnFl''@;'; put 'put ''KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0o''@;'; put 'put ''KX0oS2UsMiksT3Q9cHRbMF0sJHQ9cHRbMV0sZm49JHQuZmlsdGVyKGZ1bmN0aW9uKExuKXtyZXR1cm4gTG4uZ3JvdXAhPT1CZX0pOzA9PT1mbi5sZW5ndGg/QyhmdW5jdGlvbihnKXtyZXR1cm4gZy5zcGxpdCgiKyIpfShPdCkpOigkdC5sZW5ndGg9MCwkdC5wdXNoLmFwcGx5KCR0LGZ1bmN0''@;'; put 'put ''aW9uIGhxZShkKXtyZXR1cm4gZnVuY3Rpb24gZ3FlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHI2ZShkKX0oZCl8fGZ1bmN0aW9uIHBxZShkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9y''@;'; put 'put ''Il0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxMU2UoZCl8fGZ1bmN0aW9uIGRxZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3Rz''@;'; put 'put ''IG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShmbikpKX0pfX19KCR0KTtyZXR1cm4gSS5hZGRJdGVtKCR0LGZuKSxmbn0sZ2V0QWN0aXZlQ29udGV4dE5hbWU6X2UsZ2V0Q29udGV4dDpCZSxzZXRBY3RpdmVDb250ZXh0TmFtZTpmdW5jdGlvbigkdCl7Wj0k''@;'; put 'put ''dH0saXNDdHJsUHJlc3NlZDpmdW5jdGlvbigpe3JldHVybiFLZSYmKHB0LmlzUHJlc3NlZCgiY29udHJvbCIpfHxwdC5pc1ByZXNzZWQoIm1ldGEiKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4gcHQudW5tb3VudCgpfX19O2Z1bmN0aW9uIGNkKGQpe3JldHVybihjZD0iZnVuY3Rpb24i''@;'; put 'put ''PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnBy''@;'; put 'put ''b3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIElnKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHhxZShkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gRXFlKGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0''@;'; put 'put ''Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8T1NlKGQsZyl8fGZ1bmN0aW9uIE1xZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBk''@;'; put 'put ''ZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gUncoZCl7cmV0dXJuIGZ1bmN0aW9uIERxZShkKXtpZihB''@;'; put 'put ''cnJheS5pc0FycmF5KGQpKXJldHVybiBpNmUoZCl9KGQpfHxmdW5jdGlvbiBJcWUoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8T1NlKGQpfHxm''@;'; put 'put ''dW5jdGlvbiBUcWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhv''@;'; put 'put ''ZC4iKX0oKX1mdW5jdGlvbiBPU2UoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGk2ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3Ry''@;'; put 'put ''dWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gaTZlKGQsZyl9fWZ1bmN0aW9uIGk2ZShkLGcpeyhudWxs''@;'; put 'put ''PT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fXZhciBMcWU9ImdyaWREZWZhdWx0IixvNmU9bnVsbDtmdW5jdGlvbiBhNmUoZCxnKXt2YXIgaCx1ZSxfZSxCZSxOZSx2PXRoaXMseT1hcmd1''@;'; put 'put ''bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLEM9ITEsST10aGlzLFo9bmV3IEwxKEkpLEtlPSEwO3hRZSh5KSYmRVFlKHRoaXMpLHRoaXMucm9vdEVsZW1lbnQ9ZCx0aGlzLnJvb3REb2N1bWVudD1kLm93bmVyRG9jdW1lbnQsdGhpcy5yb290V2lu''@;'; put 'put ''ZG93PXRoaXMucm9vdERvY3VtZW50LmRlZmF1bHRWaWV3LHRoaXMuaXNEZXN0cm95ZWQ9ITEsdGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPTAsdGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyPTA7dmFyIHB0PW51bGwhPT0oaD1udWxsPT1nP3ZvaWQgMDpnLmxheW91dERpcmVjdGlv''@;'; put 'put ''bikmJnZvaWQgMCE9PWg/aDoiaW5oZXJpdCIsT3Q9WyJydGwiLCJsdHIiXS5pbmNsdWRlcyhwdCk/cHQ6dGhpcy5yb290V2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudCkuZGlyZWN0aW9uO3RoaXMucm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJkaXIiLE90KSx0aGlz''@;'; put 'put ''LmlzUnRsPWZ1bmN0aW9uKCl7cmV0dXJuInJ0bCI9PT1PdH0sdGhpcy5pc0x0cj1mdW5jdGlvbigpe3JldHVybiFJLmlzUnRsKCl9LHRoaXMuZ2V0RGlyZWN0aW9uRmFjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIEkuaXNMdHIoKT8xOi0xfSxnLmxhbmd1YWdlPXpYZShnLmxhbmd1YWdlKTt2YXIg''@;'; put 'put ''JHQ9bmV3IF9TZShJLGcsW2VxZSxycWVdKSxmbj0kdC5nZXRUYWJsZU1ldGEoKSxMbj0kdC5nZXRHbG9iYWxNZXRhKCksaXI9dWVlKCk7dGhpcy5jb250YWluZXI9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5yZW5kZXJDYWxsPSExLGQuaW5zZXJ0QmVmb3Jl''@;'; put 'put ''KHRoaXMuY29udGFpbmVyLGQuZmlyc3RDaGlsZCksR2RlKHRoaXMpJiZIYmUoZy5saWNlbnNlS2V5LGQpLHRoaXMuZ3VpZD0iaHRfIi5jb25jYXQoaTNlKCkpLHRoaXMuY29sdW1uSW5kZXhNYXBwZXI9bmV3IEM0ZSx0aGlzLnJvd0luZGV4TWFwcGVyPW5ldyBDNGUsX2U9bmV3IEpRZShJKSwo''@;'; put 'put ''IXRoaXMucm9vdEVsZW1lbnQuaWR8fCJodF8iPT09dGhpcy5yb290RWxlbWVudC5pZC5zdWJzdHJpbmcoMCwzKSkmJih0aGlzLnJvb3RFbGVtZW50LmlkPXRoaXMuZ3VpZCk7dmFyIG1yPWZ1bmN0aW9uKFpuKXt2YXIgX3I9Wm4ucm93LFhyPVpuLmNvbDtyZXR1cm4gSS5fY3JlYXRlQ2VsbENv''@;'; put 'put ''b3Jkcyhfcj49MD9JLnJvd0luZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoX3IpOl9yLFhyPj0wP0kuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChYcik6WHIpfSxTcj1mdW5jdGlvbihabil7dmFyIF9yPVpuLnJvdyxYcj1abi5j''@;'; put 'put ''b2w7cmV0dXJuIEkuX2NyZWF0ZUNlbGxDb29yZHMoX3I+PTA/SS5yb3dJbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF9yKTpfcixYcj49MD9JLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoWHIpOlhyKX0sd3I9bmV3IFQkZShm''@;'; put 'put ''bix7cm93SW5kZXhNYXBwZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSS5yb3dJbmRleE1hcHBlcn0sY29sdW1uSW5kZXhNYXBwZXI6ZnVuY3Rpb24oKXtyZXR1cm4gSS5jb2x1bW5JbmRleE1hcHBlcn0sY291bnRDb2xzOmZ1bmN0aW9uKCl7cmV0dXJuIEkuY291bnRDb2xzKCl9LGNvdW50Um93czpm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiBJLmNvdW50Um93cygpfSxwcm9wVG9Db2w6ZnVuY3Rpb24oWm4pe3JldHVybiB1ZS5wcm9wVG9Db2woWm4pfSxpc0VkaXRvck9wZW5lZDpmdW5jdGlvbigpe3JldHVybiEhSS5nZXRBY3RpdmVFZGl0b3IoKSYmSS5nZXRBY3RpdmVFZGl0b3IoKS5pc09wZW5lZCgp''@;'; put 'put ''fSxjb3VudENvbHNUcmFuc2xhdGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHYudmlldy5jb3VudFJlbmRlcmFibGVDb2x1bW5zKCl9LGNvdW50Um93c1RyYW5zbGF0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdi52aWV3LmNvdW50UmVuZGVyYWJsZVJvd3MoKX0sZ2V0U2hvcnRjdXRNYW5hZ2VyOmZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIEkuZ2V0U2hvcnRjdXRNYW5hZ2VyKCl9LGNyZWF0ZUNlbGxDb29yZHM6ZnVuY3Rpb24oWm4sX3Ipe3JldHVybiBJLl9jcmVhdGVDZWxsQ29vcmRzKFpuLF9yKX0sY3JlYXRlQ2VsbFJhbmdlOmZ1bmN0aW9uKFpuLF9yLFhyKXtyZXR1cm4gSS5fY3JlYXRlQ2VsbFJhbmdl''@;'; put 'put ''KFpuLF9yLFhyKX0sdmlzdWFsVG9SZW5kZXJhYmxlQ29vcmRzOm1yLHJlbmRlcmFibGVUb1Zpc3VhbENvb3JkczpTcixpc0Rpc2FibGVkQ2VsbFNlbGVjdGlvbjpmdW5jdGlvbihabixfcil7cmV0dXJuIEkuZ2V0Q2VsbE1ldGEoWm4sX3IpLmRpc2FibGVWaXN1YWxTZWxlY3Rpb259fSk7dGhp''@;'; put 'put ''cy5zZWxlY3Rpb249d3I7dmFyIFFyPWZ1bmN0aW9uKFpuKXtabi5oaWRkZW5JbmRleGVzQ2hhbmdlZCYmdi5zZWxlY3Rpb24ucmVmcmVzaCgpfTtmdW5jdGlvbiB5aShGbil7dmFyIFpuPU1rZShGbik7anBlKFpuKT8oSS5ydW5Ib29rcygiYmVmb3JlTGFuZ3VhZ2VDaGFuZ2UiLFpuKSxMbi5s''@;'; put 'put ''YW5ndWFnZT1abixJLnJ1bkhvb2tzKCJhZnRlckxhbmd1YWdlQ2hhbmdlIixabikpOkVrZShGbil9ZnVuY3Rpb24gS2koRm4sWm4pe3ZhciBfcj0iY2xhc3NOYW1lIj09PUZuP0kucm9vdEVsZW1lbnQ6SS50YWJsZTtpZihLZSlPMChfcixabik7ZWxzZXt2YXIgWHI9W10sY2k9W107TG5bRm5d''@;'; put 'put ''JiYoWHI9QXJyYXkuaXNBcnJheShMbltGbl0pP0xuW0ZuXTpLaGUoTG5bRm5dKSksWm4mJihjaT1BcnJheS5pc0FycmF5KFpuKT9abjpLaGUoWm4pKTt2YXIgYzA9WGhlKFhyLGNpKSxYaT1YaGUoY2ksWHIpO2MwLmxlbmd0aCYmcGwoX3IsYzApLFhpLmxlbmd0aCYmTzAoX3IsWGkpfUxuW0Zu''@;'; put 'put ''XT1abn1mdW5jdGlvbiBTbygpe3ZhciBGbj0hMTtyZXR1cm57dmFsaWRhdG9yc0luUXVldWU6MCx2YWxpZDohMCxhZGRWYWxpZGF0b3JUb1F1ZXVlOmZ1bmN0aW9uKCl7dGhpcy52YWxpZGF0b3JzSW5RdWV1ZSs9MSxGbj0hMX0scmVtb3ZlVmFsaWRhdG9yRm9ybVF1ZXVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''dGhpcy52YWxpZGF0b3JzSW5RdWV1ZT10aGlzLnZhbGlkYXRvcnNJblF1ZXVlLTE8MD8wOnRoaXMudmFsaWRhdG9yc0luUXVldWUtMSx0aGlzLmNoZWNrSWZRdWV1ZUlzRW1wdHkoKX0sb25RdWV1ZUVtcHR5OmZ1bmN0aW9uKCl7fSxjaGVja0lmUXVldWVJc0VtcHR5OmZ1bmN0aW9uKCl7MD09''@;'; put 'put ''PXRoaXMudmFsaWRhdG9yc0luUXVldWUmJiExPT09Rm4mJihGbj0hMCx0aGlzLm9uUXVldWVFbXB0eSh0aGlzLnZhbGlkKSl9fX1mdW5jdGlvbiBQbyhGbil7dmFyIFpuPUZuLnJlcGxhY2UoIiwiLCIuIik7cmV0dXJuITE9PT1pc05hTihwYXJzZUZsb2F0KFpuKSk/cGFyc2VGbG9hdChabik6''@;'; put 'put ''Rm59ZnVuY3Rpb24gU2EoRm4sWm4sX3Ipe2lmKEZuLmxlbmd0aCl7dmFyIFhyPUkuZ2V0QWN0aXZlRWRpdG9yKCksY2k9SS5ydW5Ib29rcygiYmVmb3JlQ2hhbmdlIixGbixabnx8ImVkaXQiKSxjMD0hMDtpZighMT09PWNpKXJldHVybiB2b2lkKFhyJiZYci5jYW5jZWxDaGFuZ2VzKCkpO3Zh''@;'; put 'put ''ciBYaT1uZXcgU287WGkub25RdWV1ZUVtcHR5PWZ1bmN0aW9uKHQyKXtYciYmYzAmJlhyLmNhbmNlbENoYW5nZXMoKSxfcih0Mil9O2Zvcih2YXIgRTA9Rm4ubGVuZ3RoLTE7RTA+PTA7RTAtLSlpZihudWxsPT09Rm5bRTBdKUZuLnNwbGljZShFMCwxKTtlbHNle3ZhciB6MD1JZyhGbltFMF0s''@;'; put 'put ''NCksa289ejBbMF0sV2E9ejBbM10sZTI9dWUucHJvcFRvQ29sKHowWzFdKSxIYT1JLmdldENlbGxNZXRhKGtvLGUyKTsibnVtZXJpYyI9PT1IYS50eXBlJiYic3RyaW5nIj09dHlwZW9mIFdhJiZwX2UoV2EpJiYoRm5bRTBdWzNdPVBvKFdhKSksSS5nZXRDZWxsVmFsaWRhdG9yKEhhKSYmKFhp''@;'; put 'put ''LmFkZFZhbGlkYXRvclRvUXVldWUoKSxJLnZhbGlkYXRlQ2VsbChGbltFMF1bM10sSGEsZnVuY3Rpb24odDIsTzEpe3JldHVybiBmdW5jdGlvbihSMSl7aWYoImJvb2xlYW4iIT10eXBlb2YgUjEpdGhyb3cgbmV3IEVycm9yKCJWYWxpZGF0aW9uIGVycm9yOiByZXN1bHQgaXMgbm90IGJvb2xl''@;'; put 'put ''YW4iKTtpZighMT09PVIxJiYhMT09PU8xLmFsbG93SW52YWxpZCl7YzA9ITEsRm4uc3BsaWNlKHQyLDEpLE8xLnZhbGlkPSEwO3ZhciB6dT1JLmdldENlbGwoTzEudmlzdWFsUm93LE8xLnZpc3VhbENvbCk7bnVsbCE9PXp1JiZwbCh6dSxmbi5pbnZhbGlkQ2VsbENsYXNzTmFtZSl9WGkucmVt''@;'; put 'put ''b3ZlVmFsaWRhdG9yRm9ybVF1ZXVlKCl9fShFMCxIYSksWm4pKX1YaS5jaGVja0lmUXVldWVJc0VtcHR5KCl9fWZ1bmN0aW9uIEphKEZuLFpuKXt2YXIgX3I9Rm4ubGVuZ3RoLTE7aWYoIShfcjwwKSl7Zm9yKDtfcj49MDtfci0tKXt2YXIgWHI9ITE7aWYobnVsbCE9PUZuW19yXSl7aWYobnVs''@;'; put 'put ''bCE9Rm5bX3JdWzJdfHxudWxsIT1Gbltfcl1bM10pe2lmKGZuLmFsbG93SW5zZXJ0Um93KWZvcig7Rm5bX3JdWzBdPkkuY291bnRSb3dzKCktMTspe3ZhciBjaT11ZS5jcmVhdGVSb3codm9pZCAwLHZvaWQgMCxabik7aWYoIShjaT49MSkpe1hyPSEwO2JyZWFrfSR0LmNyZWF0ZVJvdyhudWxs''@;'; put 'put ''LGNpKX1pZigiYXJyYXkiPT09SS5kYXRhVHlwZSYmKCFmbi5jb2x1bW5zfHwwPT09Zm4uY29sdW1ucy5sZW5ndGgpJiZmbi5hbGxvd0luc2VydENvbHVtbilmb3IoO3VlLnByb3BUb0NvbChGbltfcl1bMV0pPkkuY291bnRDb2xzKCktMTspe3ZhciBjMD11ZS5jcmVhdGVDb2wodm9pZCAwLHZv''@;'; put 'put ''aWQgMCxabik7aWYoIShjMD49MSkpe1hyPSEwO2JyZWFrfSR0LmNyZWF0ZUNvbHVtbihudWxsLGMwKX1Ycnx8dWUuc2V0KEZuW19yXVswXSxGbltfcl1bMV0sRm5bX3JdWzNdKX19ZWxzZSBGbi5zcGxpY2UoX3IsMSl9SS5mb3JjZUZ1bGxSZW5kZXI9ITAsQmUuYWRqdXN0Um93c0FuZENvbHMo''@;'; put 'put ''KSxJLnJ1bkhvb2tzKCJiZWZvcmVDaGFuZ2VSZW5kZXIiLEZuLFpuKSxOZS5sb2NrRWRpdG9yKCksSS5fcmVmcmVzaEJvcmRlcnMobnVsbCksTmUudW5sb2NrRWRpdG9yKCksSS52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpLEkucnVuSG9va3MoImFmdGVyQ2hhbmdlIixGbixabnx8ImVkaXQi''@;'; put 'put ''KTt2YXIgWGk9SS5nZXRBY3RpdmVFZGl0b3IoKTtYaSYmVG8oWGkucmVmcmVzaFZhbHVlKSYmWGkucmVmcmVzaFZhbHVlKCl9fWZ1bmN0aW9uIGxhKEZuLFpuLF9yKXtyZXR1cm4gQXJyYXkuaXNBcnJheShGbik/Rm46W1tGbixabixfcl1dfXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuYWRkTG9j''@;'; put 'put ''YWxIb29rKCJjYWNoZVVwZGF0ZWQiLFFyKSx0aGlzLnJvd0luZGV4TWFwcGVyLmFkZExvY2FsSG9vaygiY2FjaGVVcGRhdGVkIixRciksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0IixmdW5jdGlvbihGbil7di5ydW5Ib29rcygiYmVmb3JlU2V0UmFu''@;'; put 'put ''Z2VTdGFydCIsRm4pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVTZXRSYW5nZVN0YXJ0T25seSIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoImJlZm9yZVNldFJhbmdlU3RhcnRPbmx5IixGbil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZVNldFJh''@;'; put 'put ''bmdlRW5kIixmdW5jdGlvbihGbil7di5ydW5Ib29rcygiYmVmb3JlU2V0UmFuZ2VFbmQiLEZuKSxGbi5yb3c8MCYmKEZuLnJvdz12LnZpZXcuX3d0Lnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlUm93KCkpLEZuLmNvbDwwJiYoRm4uY29sPXYudmlldy5fd3Qud3RUYWJsZS5nZXRGaXJzdFZpc2li''@;'; put 'put ''bGVDb2x1bW4oKSl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2V0UmFuZ2VFbmQiLGZ1bmN0aW9uKEZuKXt2YXIgWm49RVMoITEpLF9yPXYuc2VsZWN0aW9uLmdldFNlbGVjdGVkUmFuZ2UoKSxYcj1fci5jdXJyZW50KCksY2k9WHIuZnJvbSxjMD1Yci50byxYaT1fci5z''@;'; put 'put ''aXplKCktMTt2LnJ1bkhvb2tzKCJhZnRlclNlbGVjdGlvbiIsY2kucm93LGNpLmNvbCxjMC5yb3csYzAuY29sLFpuLFhpKSx2LnJ1bkhvb2tzKCJhZnRlclNlbGVjdGlvbkJ5UHJvcCIsY2kucm93LEkuY29sVG9Qcm9wKGNpLmNvbCksYzAucm93LEkuY29sVG9Qcm9wKGMwLmNvbCksWm4sWGkp''@;'; put 'put ''O3ZhciBFMD12LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlBbnlIZWFkZXIoKSx6MD12LnNlbGVjdGlvbi5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSxrbz0hMDtDJiYoa289ITEpLFpuLmlzVG91Y2hlZCgpJiYoa289IVpuLnZhbHVlKTt2YXIgd289di5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93''@;'; put 'put ''SGVhZGVyKCksV2E9di5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCk7ITEhPT1rbyYmKEUwP3dvP3Yudmlldy5zY3JvbGxWaWV3cG9ydFZlcnRpY2FsbHkoSS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuLnJvdykpOldhJiZ2LnZpZXcu''@;'; put 'put ''c2Nyb2xsVmlld3BvcnRIb3Jpem9udGFsbHkoSS5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuLmNvbCkpOnowJiYhdi5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpP3Yudmlldy5zY3JvbGxWaWV3cG9ydChtcih6MC5mcm9tKSk6di52aWV3LnNjcm9sbFZp''@;'; put 'put ''ZXdwb3J0KG1yKEZuKSkpLHdvJiZXYT9PMCh2LnJvb3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiXSk6d28/KHBsKHYucm9vdEVsZW1lbnQsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMiKSxPMCh2LnJvb3RFbGVtZW50LCJodF9fc2VsZWN0''@;'; put 'put ''aW9uLS1yb3dzIikpOldhPyhwbCh2LnJvb3RFbGVtZW50LCJodF9fc2VsZWN0aW9uLS1yb3dzIiksTzAodi5yb290RWxlbWVudCwiaHRfX3NlbGVjdGlvbi0tY29sdW1ucyIpKTpwbCh2LnJvb3RFbGVtZW50LFsiaHRfX3NlbGVjdGlvbi0tcm93cyIsImh0X19zZWxlY3Rpb24tLWNvbHVtbnMi''@;'; put 'put ''XSksdi5fcmVmcmVzaEJvcmRlcnMobnVsbCl9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyU2VsZWN0aW9uRmluaXNoZWQiLGZ1bmN0aW9uKEZuKXt2YXIgWm49Rm4ubGVuZ3RoLTEsX3I9Rm5bWm5dLFhyPV9yLmZyb20sY2k9X3IudG87di5ydW5Ib29rcygiYWZ0ZXJTZWxl''@;'; put 'put ''Y3Rpb25FbmQiLFhyLnJvdyxYci5jb2wsY2kucm93LGNpLmNvbCxabiksdi5ydW5Ib29rcygiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLFhyLnJvdyxJLmNvbFRvUHJvcChYci5jb2wpLGNpLnJvdyxJLmNvbFRvUHJvcChjaS5jb2wpLFpuKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9v''@;'; put 'put ''aygiYWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIixmdW5jdGlvbihGbil7dmFyIFpuPXYucnVuSG9va3MoImFmdGVySXNNdWx0aXBsZVNlbGVjdGlvbiIsRm4udmFsdWUpO0ZuLnZhbHVlJiYoRm4udmFsdWU9Wm4pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVNb2RpZnlU''@;'; put 'put ''cmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybVN0YXJ0IixGbil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLGZ1bmN0aW9uKEZuLFpuLF9yKXt2LnJ1bkhvb2tzKCJhZnRlck1vZGlm''@;'; put 'put ''eVRyYW5zZm9ybVN0YXJ0IixGbixabixfcil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImJlZm9yZU1vZGlmeVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oRm4pe3YucnVuSG9va3MoIm1vZGlmeVRyYW5zZm9ybUVuZCIsRm4pfSksdGhpcy5zZWxlY3Rpb24uYWRkTG9jYWxIb29rKCJh''@;'; put 'put ''ZnRlck1vZGlmeVRyYW5zZm9ybUVuZCIsZnVuY3Rpb24oRm4sWm4sX3Ipe3YucnVuSG9va3MoImFmdGVyTW9kaWZ5VHJhbnNmb3JtRW5kIixGbixabixfcil9KSx0aGlzLnNlbGVjdGlvbi5hZGRMb2NhbEhvb2soImFmdGVyRGVzZWxlY3QiLGZ1bmN0aW9uKCl7TmUuZGVzdHJveUVkaXRvcigp''@;'; put 'put ''LHYuX3JlZnJlc2hCb3JkZXJzKCkscGwodi5yb290RWxlbWVudCxbImh0X19zZWxlY3Rpb24tLXJvd3MiLCJodF9fc2VsZWN0aW9uLS1jb2x1bW5zIl0pLHYucnVuSG9va3MoImFmdGVyRGVzZWxlY3QiKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiaW5zZXJ0Um93UmVxdWlyZSIs''@;'; put 'put ''ZnVuY3Rpb24oRm4pe3YuYWx0ZXIoImluc2VydF9yb3ciLEZuLDEsImF1dG8iKX0pLHRoaXMuc2VsZWN0aW9uLmFkZExvY2FsSG9vaygiaW5zZXJ0Q29sUmVxdWlyZSIsZnVuY3Rpb24oRm4pe3YuYWx0ZXIoImluc2VydF9jb2wiLEZuLDEsImF1dG8iKX0pLEJlPXthbHRlcjpmdW5jdGlvbiha''@;'; put 'put ''bixfcil7dmFyIFhpLFhyPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxLGNpPWFyZ3VtZW50cy5sZW5ndGg+Mz9hcmd1bWVudHNbM106dm9pZCAwLGMwPWFyZ3VtZW50cy5sZW5ndGg+ND9hcmd1bWVudHNbNF06dm9pZCAwLEUwPWZ1bmN0''@;'; put 'put ''aW9uKGpnKXtpZigwPT09amcubGVuZ3RoKXJldHVybltdO3ZhciBoZD1SdyhqZyk7cmV0dXJuIGhkLnNvcnQoZnVuY3Rpb24oaDMsR3Upe3ZhciBXdT1JZyhoMywxKVswXSxIcD1JZyhHdSwxKVswXTtyZXR1cm4gV3U9PT1IcD8wOld1PkhwPzE6LTF9KSxTdShoZCxmdW5jdGlvbihoMyxHdSl7''@;'; put 'put ''dmFyIEV1PUlnKEd1LDIpLFd1PUV1WzBdLGRkPUV1WzFdLEhwPWgzW2gzLmxlbmd0aC0xXSxOcD1JZyhIcCwyKSxkUj1OcFswXStOcFsxXTtpZihXdTw9ZFIpe3ZhciBXbmU9TWF0aC5tYXgoZGQtKGRSLVd1KSwwKTtIcFsxXSs9V25lfWVsc2UgaDMucHVzaChbV3UsZGRdKTtyZXR1cm4gaDN9''@;'; put 'put ''LFtoZFswXV0pfTtzd2l0Y2goWm4pe2Nhc2UiaW5zZXJ0X3JvdyI6dmFyIHowPUkuY291bnRTb3VyY2VSb3dzKCk7aWYoZm4ubWF4Um93cz09PXowKXJldHVybjtpZihfcj1Ubyhfcik/X3I6ejAsWGk9dWUuY3JlYXRlUm93KF9yLFhyLGNpKSl7JHQuY3JlYXRlUm93KEkudG9QaHlzaWNhbFJv''@;'; put 'put ''dyhfciksWHIpO3ZhciBrbz13ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSx3bz1udWxsPT1rbz92b2lkIDA6a28uZnJvbSxXYT1udWxsPT13bz92b2lkIDA6d28ucm93O2lmKFRvKFdhKSYmV2E+PV9yKXt2YXIgZTI9a28udG8sSGE9ZTIucm93LHQyPWUyLmNvbCxPMT13by5jb2w7d3IuaXNT''@;'; put 'put ''ZWxlY3RlZEJ5Um93SGVhZGVyKCkmJihPMT0tMSksd3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLnBvcCgpLHdyLnNldFJhbmdlU3RhcnRPbmx5KEkuX2NyZWF0ZUNlbGxDb29yZHMoV2ErWGksTzEpLCEwKSx3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRzKEhhK1hpLHQyKSl9ZWxzZSBJ''@;'; put 'put ''Ll9yZWZyZXNoQm9yZGVycygpfWJyZWFrO2Nhc2UiaW5zZXJ0X2NvbCI6aWYoWGk9dWUuY3JlYXRlQ29sKF9yLFhyLGNpKSl7aWYoJHQuY3JlYXRlQ29sdW1uKEkudG9QaHlzaWNhbENvbHVtbihfciksWHIpLEFycmF5LmlzQXJyYXkoZm4uY29sSGVhZGVycykpe3ZhciBSMT1bX3IsMF07UjEu''@;'; put 'put ''bGVuZ3RoKz1YaSxBcnJheS5wcm90b3R5cGUuc3BsaWNlLmFwcGx5KGZuLmNvbEhlYWRlcnMsUjEpfXZhciB6dT13ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKSxQYz1udWxsPT16dT92b2lkIDA6enUuZnJvbSxpdT1udWxsPT1QYz92b2lkIDA6UGMuY29sO2lmKFRvKGl1KSYmaXU+PV9yKXt2''@;'; put 'put ''YXIgRmM9enUudG8sZmQ9RmMucm93LGhSPUZjLmNvbCxLdz1QYy5yb3c7d3IuaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkmJihLdz0tMSksd3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLnBvcCgpLHdyLnNldFJhbmdlU3RhcnRPbmx5KEkuX2NyZWF0ZUNlbGxDb29yZHMoS3csaXUrWGkpLCEwKSx3''@;'; put 'put ''ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRzKGZkLGhSK1hpKSl9ZWxzZSBJLl9yZWZyZXNoQm9yZGVycygpfWJyZWFrO2Nhc2UicmVtb3ZlX3JvdyI6dmFyIFp6PWZ1bmN0aW9uKGpnKXt2YXIgaGQ9MDtVcihqZyxmdW5jdGlvbihFTSl7dmFyIGgzPUlnKEVNLDIpLEd1PWgzWzBd''@;'; put 'put ''LEV1PWgzWzFdLFd1PWRjKEd1KT9JLmNvdW50Um93cygpLTE6TWF0aC5tYXgoR3UtaGQsMCk7aWYoTnVtYmVyLmlzSW50ZWdlcihHdSkmJihHdT1NYXRoLm1heChHdS1oZCwwKSksdWUucmVtb3ZlUm93KEd1LEV1LGNpKSl7JHQucmVtb3ZlUm93KEkudG9QaHlzaWNhbFJvdyhXdSksRXUpO3Zh''@;'; put 'put ''ciBIcD1JLmNvdW50Um93cygpLE5wPWZuLmZpeGVkUm93c1RvcDtOcD49V3UrMSYmKGZuLmZpeGVkUm93c1RvcC09TWF0aC5taW4oRXUsTnAtV3UpKTt2YXIgYTk9Zm4uZml4ZWRSb3dzQm90dG9tO2E5JiZXdT49SHAtYTkmJihmbi5maXhlZFJvd3NCb3R0b20tPU1hdGgubWluKEV1LGE5KSks''@;'; put 'put ''aGQrPUV1fX0pfTtBcnJheS5pc0FycmF5KF9yKT9aeihFMChfcikpOlp6KFtbX3IsWHJdXSksQmUuYWRqdXN0Um93c0FuZENvbHMoKSxJLl9yZWZyZXNoQm9yZGVycygpO2JyZWFrO2Nhc2UicmVtb3ZlX2NvbCI6dmFyIHp6PWZ1bmN0aW9uKGpnKXt2YXIgaGQ9MDtVcihqZyxmdW5jdGlvbihF''@;'; put 'put ''TSl7dmFyIGgzPUlnKEVNLDIpLEd1PWgzWzBdLEV1PWgzWzFdLFd1PWRjKEd1KT9JLmNvdW50Q29scygpLTE6TWF0aC5tYXgoR3UtaGQsMCksZGQ9SS50b1BoeXNpY2FsQ29sdW1uKFd1KTtpZihOdW1iZXIuaXNJbnRlZ2VyKEd1KSYmKEd1PU1hdGgubWF4KEd1LWhkLDApKSx1ZS5yZW1vdmVD''@;'; put 'put ''b2woR3UsRXUsY2kpKXskdC5yZW1vdmVDb2x1bW4oZGQsRXUpO3ZhciBOcD1mbi5maXhlZENvbHVtbnNTdGFydDtOcD49V3UrMSYmKGZuLmZpeGVkQ29sdW1uc1N0YXJ0LT1NYXRoLm1pbihFdSxOcC1XdSkpLEFycmF5LmlzQXJyYXkoZm4uY29sSGVhZGVycykmJih2b2lkIDA9PT1kZCYmKGRk''@;'; put 'put ''PS0xKSxmbi5jb2xIZWFkZXJzLnNwbGljZShkZCxFdSkpLGhkKz1FdX19KX07QXJyYXkuaXNBcnJheShfcik/enooRTAoX3IpKTp6eihbW19yLFhyXV0pLEJlLmFkanVzdFJvd3NBbmRDb2xzKCksSS5fcmVmcmVzaEJvcmRlcnMoKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcignVGhl''@;'; put 'put ''cmUgaXMgbm8gc3VjaCBhY3Rpb24gIicuY29uY2F0KFpuLCciJykpfWMwfHxCZS5hZGp1c3RSb3dzQW5kQ29scygpfSxhZGp1c3RSb3dzQW5kQ29sczpmdW5jdGlvbigpe3ZhciBrbyxabj1mbi5taW5Sb3dzLF9yPWZuLm1pblNwYXJlUm93cyxYcj1mbi5taW5Db2xzLGNpPWZuLm1pblNwYXJl''@;'; put 'put ''Q29scztpZihabil7dmFyIGMwPUkuY291bnRSb3dzKCk7YzA8Wm4mJnVlLmNyZWF0ZVJvdyhjMCxabi1jMCwiYXV0byIpfWlmKF9yKXt2YXIgWGk9SS5jb3VudEVtcHR5Um93cyghMCk7aWYoWGk8X3Ipe3ZhciB6MD1NYXRoLm1pbihfci1YaSxmbi5tYXhSb3dzLUkuY291bnRTb3VyY2VSb3dz''@;'; put 'put ''KCkpO3VlLmNyZWF0ZVJvdyhJLmNvdW50Um93cygpLHowLCJhdXRvIil9fShYcnx8Y2kpJiYoa289SS5jb3VudEVtcHR5Q29scyghMCkpO3ZhciB3bz1JLmNvdW50Q29scygpO2lmKFhyJiYhZm4uY29sdW1ucyYmd288WHIpe3ZhciBXYT1Yci13bztrbys9V2EsdWUuY3JlYXRlQ29sKHdvLFdh''@;'; put 'put ''LCJhdXRvIil9aWYoY2kmJiFmbi5jb2x1bW5zJiYiYXJyYXkiPT09SS5kYXRhVHlwZSYma288Y2kpe3dvPUkuY291bnRDb2xzKCk7dmFyIEhhPU1hdGgubWluKGNpLWtvLGZuLm1heENvbHMtd28pO3VlLmNyZWF0ZUNvbCh3byxIYSwiYXV0byIpfXZhciB0Mj1JLmNvdW50Um93cygpLE8xPUku''@;'; put 'put ''Y291bnRDb2xzKCk7KDA9PT10Mnx8MD09PU8xKSYmd3IuZGVzZWxlY3QoKSx3ci5pc1NlbGVjdGVkKCkmJlVyKHdyLnNlbGVjdGVkUmFuZ2UsZnVuY3Rpb24oUjEpe3ZhciB6dT0hMSxQYz1SMS5mcm9tLnJvdyxpdT1SMS5mcm9tLmNvbCxGYz1SMS50by5yb3csZmQ9UjEudG8uY29sO1BjPnQy''@;'; put 'put ''LTE/KHp1PSEwLEZjPihQYz10Mi0xKSYmKEZjPVBjKSk6RmM+dDItMSYmKHp1PSEwLFBjPihGYz10Mi0xKSYmKFBjPUZjKSksaXU+TzEtMT8oenU9ITAsZmQ+KGl1PU8xLTEpJiYoZmQ9aXUpKTpmZD5PMS0xJiYoenU9ITAsaXU+KGZkPU8xLTEpJiYoaXU9ZmQpKSx6dSYmSS5zZWxlY3RDZWxs''@;'; put 'put ''KFBjLGl1LEZjLGZkKX0pLEkudmlldyYmSS52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpfSxwb3B1bGF0ZUZyb21BcnJheTpmdW5jdGlvbihabixfcixYcixjaSxjMCxYaSxFMCl7dmFyIHowLGtvLHdvLFdhLGUyPVtdLEhhPXt9LHQyPVtdLE8xPVpuLnJvdyxSMT1abi5jb2w7aWYoMD09PShr''@;'; put 'put ''bz1fci5sZW5ndGgpKXJldHVybiExO3ZhciB6dT0wLFBjPTA7c3dpdGNoKHhsKFhyKSYmKHp1PVhyLmNvbC1SMSsxLFBjPVhyLnJvdy1PMSsxKSxjMCl7Y2FzZSJzaGlmdF9kb3duIjp2YXIgaXU9RFooX3IpLEZjPWl1Lmxlbmd0aCxmZD1NYXRoLm1heChGYyx6dSksaFI9SS5nZXREYXRhKCku''@;'; put 'put ''c2xpY2UoTzEpLEt3PURaKGhSKS5zbGljZShSMSxSMStmZCk7Zm9yKHdvPTA7d288ZmQ7d28rPTEpaWYod288RmMpe2Zvcih6MD0wLGtvPWl1W3dvXS5sZW5ndGg7ejA8UGMta287ejArPTEpaXVbd29dLnB1c2goaXVbd29dW3owJWtvXSk7dDIucHVzaChpdVt3b10uY29uY2F0KHdvPEt3Lmxl''@;'; put 'put ''bmd0aD9Ld1t3b106bmV3IEFycmF5KGhSLmxlbmd0aCkuZmlsbChudWxsKSkpfWVsc2UgdDIucHVzaChpdVt3byVGY10uY29uY2F0KEt3W3dvXSkpO0kucG9wdWxhdGVGcm9tQXJyYXkoTzEsUjEsRFoodDIpKTticmVhaztjYXNlInNoaWZ0X3JpZ2h0Ijp2YXIgWno9X3IubGVuZ3RoLHp6PU1h''@;'; put 'put ''dGgubWF4KFp6LFBjKSwkdz1JLmdldERhdGEoKS5zbGljZShPMSkubWFwKGZ1bmN0aW9uKEhMZSl7cmV0dXJuIEhMZS5zbGljZShSMSl9KTtmb3IoejA9MDt6MDx6ejt6MCs9MSlpZih6MDxaeil7Zm9yKHdvPTAsV2E9X3JbejBdLmxlbmd0aDt3bzx6dS1XYTt3bys9MSlfclt6MF0ucHVzaChf''@;'; put 'put ''clt6MF1bd28lV2FdKTt2YXIgaGQ7aWYoejA8JHcubGVuZ3RoKWZvcih2YXIgamc9MDtqZzwkd1t6MF0ubGVuZ3RoO2pnKz0xKV9yW3owXS5wdXNoKCR3W3owXVtqZ10pO2Vsc2UoaGQ9X3JbejBdKS5wdXNoLmFwcGx5KGhkLFJ3KG5ldyBBcnJheSgkd1swXS5sZW5ndGgpLmZpbGwobnVsbCkp''@;'; put 'put ''KX1lbHNlIF9yLnB1c2goX3JbejAla29dLnNsaWNlKDAsenopLmNvbmNhdCgkd1t6MF0pKTtJLnBvcHVsYXRlRnJvbUFycmF5KE8xLFIxLF9yKTticmVhaztkZWZhdWx0OkhhLnJvdz1abi5yb3csSGEuY29sPVpuLmNvbDt2YXIgV3UsRU09e3JvdzpYciYmWm4/WHIucm93LVpuLnJvdysxOjEs''@;'; put 'put ''Y29sOlhyJiZabj9Yci5jb2wtWm4uY29sKzE6MX0saDM9MCxHdT0wLEV1PSEwLGRkPWZ1bmN0aW9uKFFBdCl7dmFyIE5MZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06bnVsbCxCbWU9X3JbUUF0JV9yLmxlbmd0aF07cmV0dXJuIG51bGwh''@;'; put 'put ''PT1OTGU/Qm1lW05MZSVCbWUubGVuZ3RoXTpCbWV9LEhwPV9yLmxlbmd0aCxOcD1Ycj9Yci5yb3ctWm4ucm93KzE6MDtmb3Ioa289WHI/TnA6TWF0aC5tYXgoSHAsTnApLHowPTA7ejA8a28mJiEoWHImJkhhLnJvdz5Yci5yb3cmJk5wPkhwfHwhZm4uYWxsb3dJbnNlcnRSb3cmJkhhLnJvdz5J''@;'; put 'put ''LmNvdW50Um93cygpLTF8fEhhLnJvdz49Zm4ubWF4Um93cyk7ejArKyl7dmFyIGE5PXowLWgzLEduZT1kZChhOSkubGVuZ3RoLGRSPVhyP1hyLmNvbC1abi5jb2wrMTowO2lmKFdhPVhyP2RSOk1hdGgubWF4KEduZSxkUiksSGEuY29sPVpuLmNvbCxXdT1JLmdldENlbGxNZXRhKEhhLnJvdyxI''@;'; put 'put ''YS5jb2wpLCJDb3B5UGFzdGUucGFzdGUiIT09Y2kmJiJBdXRvZmlsbC5maWxsIiE9PWNpfHwhV3Uuc2tpcFJvd09uUGFzdGUpe2ZvcihHdT0wLHdvPTA7d288V2EmJiEoWHImJkhhLmNvbD5Yci5jb2wmJmRSPkduZXx8IWZuLmFsbG93SW5zZXJ0Q29sdW1uJiZIYS5jb2w+SS5jb3VudENvbHMo''@;'; put 'put ''KS0xfHxIYS5jb2w+PWZuLm1heENvbHMpO3dvKyspaWYoV3U9SS5nZXRDZWxsTWV0YShIYS5yb3csSGEuY29sKSwiQ29weVBhc3RlLnBhc3RlIiE9PWNpJiYiQXV0b2ZpbGwuZmlsbCIhPT1jaXx8IVd1LnNraXBDb2x1bW5PblBhc3RlKWlmKFd1LnJlYWRPbmx5JiYiVW5kb1JlZG8udW5kbyIh''@;'; put 'put ''PT1jaSlIYS5jb2wrPTE7ZWxzZXt2YXIgV25lPXdvLUd1LFZwPWRkKGE5LFduZSksWmc9SS5nZXREYXRhQXRDZWxsKEhhLnJvdyxIYS5jb2wpO2lmKCJBdXRvZmlsbC5maWxsIj09PWNpKXt2YXIgUm1lPUkucnVuSG9va3MoImJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGUiLHtyb3c6YTks''@;'; put 'put ''Y29sOlduZX0sWGksX3IsRTAse30sRU0pO1JtZSYmKFZwPWExKFJtZS52YWx1ZSk/VnA6Um1lLnZhbHVlKX1udWxsIT09VnAmJiJvYmplY3QiPT09Y2QoVnApPyhBcnJheS5pc0FycmF5KFZwKSYmbnVsbD09PVpnJiYoWmc9W10pLG51bGw9PT1aZ3x8Im9iamVjdCIhPT1jZChaZyk/RXU9ITE6''@;'; put 'put ''JGhlKGxPKEFycmF5LmlzQXJyYXkoWmcpP1pnOlpnWzBdfHxaZyksbE8oQXJyYXkuaXNBcnJheShWcCk/VnA6VnBbMF18fFZwKSk/VnA9Z2goVnApOkV1PSExKTpudWxsIT09WmcmJiJvYmplY3QiPT09Y2QoWmcpJiYoRXU9ITEpLEV1JiZlMi5wdXNoKFtIYS5yb3csSGEuY29sLFZwXSksRXU9''@;'; put 'put ''ITAsSGEuY29sKz0xfWVsc2UgR3UrPTEsSGEuY29sKz0xLFdhKz0xO0hhLnJvdys9MX1lbHNlIGgzKz0xLEhhLnJvdys9MSxrbys9MX1JLnNldERhdGFBdENlbGwoZTIsbnVsbCxudWxsLGNpfHwicG9wdWxhdGVGcm9tQXJyYXkiKX19fSx0aGlzLmluaXQ9ZnVuY3Rpb24oKXtfZS5zZXREYXRh''@;'; put 'put ''KGZuLmRhdGEpLEkucnVuSG9va3MoImJlZm9yZUluaXQiKSwoYjgoKXx8ZTNlKCkpJiZPMChJLnJvb3RFbGVtZW50LCJtb2JpbGUiKSx0aGlzLnVwZGF0ZVNldHRpbmdzKGZuLCEwKSx0aGlzLnZpZXc9bmV3IEhRZSh0aGlzKSxOZT1RWmUuZ2V0SW5zdGFuY2UoSSxmbix3ciksSS5ydW5Ib29r''@;'; put 'put ''cygiaW5pdCIpLHRoaXMuZm9yY2VGdWxsUmVuZGVyPSEwLHRoaXMudmlldy5yZW5kZXIoKSwib2JqZWN0Ij09PWNkKEtlKSYmKEkucnVuSG9va3MoImFmdGVyQ2hhbmdlIixLZVswXSxLZVsxXSksS2U9ITEpLEkucnVuSG9va3MoImFmdGVySW5pdCIpfSx0aGlzLl9jcmVhdGVDZWxsQ29vcmRz''@;'; put 'put ''PWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gSS52aWV3Ll93dC5jcmVhdGVDZWxsQ29vcmRzKEZuLFpuKX0sdGhpcy5fY3JlYXRlQ2VsbFJhbmdlPWZ1bmN0aW9uKEZuLFpuLF9yKXtyZXR1cm4gSS52aWV3Ll93dC5jcmVhdGVDZWxsUmFuZ2UoRm4sWm4sX3IpfSx0aGlzLnZhbGlkYXRlQ2VsbD1m''@;'; put 'put ''dW5jdGlvbihGbixabixfcixYcil7dmFyIFhpLGNpPUkuZ2V0Q2VsbFZhbGlkYXRvcihabik7ZnVuY3Rpb24gYzAoWGkpe3ZhciBFMD0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO2lmKEUwJiYhMCE9PVpuLmhpZGRlbil7dmFyIHow''@;'; put 'put ''PVpuLnZpc3VhbENvbCxrbz1abi52aXN1YWxSb3csd289SS5nZXRDZWxsKGtvLHowLCEwKTtpZih3byYmIlRIIiE9PXdvLm5vZGVOYW1lKXt2YXIgV2E9SS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGtvKSxlMj1JLmNvbHVtbkluZGV4TWFwcGVyLmdldFJl''@;'; put 'put ''bmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoejApO0kudmlldy5fd3QuZ2V0U2V0dGluZygiY2VsbFJlbmRlcmVyIixXYSxlMix3byl9X3IoWGkpfWVsc2UgX3IoWGkpfU9iZShjaSkmJihYaT1jaSxjaT1mdW5jdGlvbihFMCx6MCl7ejAoWGkudGVzdChFMCkpfSksVTIoY2kpPyhGbj1JLnJ1bkhv''@;'; put 'put ''b2tzKCJiZWZvcmVWYWxpZGF0ZSIsRm4sWm4udmlzdWFsUm93LFpuLnByb3AsWHIpLEkuX3JlZ2lzdGVySW1tZWRpYXRlKGZ1bmN0aW9uKCl7Y2kuY2FsbChabixGbixmdW5jdGlvbihYaSl7IUl8fChYaT1JLnJ1bkhvb2tzKCJhZnRlclZhbGlkYXRlIixYaSxGbixabi52aXN1YWxSb3csWm4u''@;'; put 'put ''cHJvcCxYciksWm4udmFsaWQ9WGksYzAoWGkpLEkucnVuSG9va3MoInBvc3RBZnRlclZhbGlkYXRlIixYaSxGbixabi52aXN1YWxSb3csWm4ucHJvcCxYcikpfSl9KSk6SS5fcmVnaXN0ZXJJbW1lZGlhdGUoZnVuY3Rpb24oKXtabi52YWxpZD0hMCxjMChabi52YWxpZCwhMSl9KX0sdGhpcy5z''@;'; put 'put ''ZXREYXRhQXRDZWxsPWZ1bmN0aW9uKEZuLFpuLF9yLFhyKXt2YXIgRTAsejAsa28sY2k9bGEoRm4sWm4sX3IpLGMwPVtdLFhpPVhyO2ZvcihFMD0wLHowPWNpLmxlbmd0aDtFMDx6MDtFMCsrKXtpZigib2JqZWN0IiE9PWNkKGNpW0UwXSkpdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERh''@;'; put 'put ''dGFBdENlbGxgIGFjY2VwdHMgcm93IG51bWJlciBvciBjaGFuZ2VzIGFycmF5IG9mIGFycmF5cyBhcyBpdHMgZmlyc3QgcGFyYW1ldGVyIik7aWYoIm51bWJlciIhPXR5cGVvZiBjaVtFMF1bMV0pdGhyb3cgbmV3IEVycm9yKCJNZXRob2QgYHNldERhdGFBdENlbGxgIGFjY2VwdHMgcm93IGFu''@;'; put 'put ''ZCBjb2x1bW4gbnVtYmVyIGFzIGl0cyBwYXJhbWV0ZXJzLiBJZiB5b3Ugd2FudCB0byB1c2Ugb2JqZWN0IHByb3BlcnR5IG5hbWUsIHVzZSBtZXRob2QgYHNldERhdGFBdFJvd1Byb3BgIik7a289Y2lbRTBdWzFdPj10aGlzLmNvdW50Q29scygpP2NpW0UwXVsxXTp1ZS5jb2xUb1Byb3AoY2lb''@;'; put 'put ''RTBdWzFdKSxjMC5wdXNoKFtjaVtFMF1bMF0sa28sX2UuZ2V0QXRDZWxsKHRoaXMudG9QaHlzaWNhbFJvdyhjaVtFMF1bMF0pLGNpW0UwXVsxXSksY2lbRTBdWzJdXSl9IVhpJiYib2JqZWN0Ij09PWNkKEZuKSYmKFhpPVpuKSxJLnJ1bkhvb2tzKCJhZnRlclNldERhdGFBdENlbGwiLGMwLFhp''@;'; put 'put ''KSxTYShjMCxYaSxmdW5jdGlvbigpe0phKGMwLFhpKX0pfSx0aGlzLnNldERhdGFBdFJvd1Byb3A9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe3ZhciBFMCx6MCxjaT1sYShGbixabixfciksYzA9W10sWGk9WHI7Zm9yKEUwPTAsejA9Y2kubGVuZ3RoO0UwPHowO0UwKyspYzAucHVzaChbY2lbRTBd''@;'; put 'put ''WzBdLGNpW0UwXVsxXSxfZS5nZXRBdENlbGwodGhpcy50b1BoeXNpY2FsUm93KGNpW0UwXVswXSksY2lbRTBdWzFdKSxjaVtFMF1bMl1dKTshWGkmJiJvYmplY3QiPT09Y2QoRm4pJiYoWGk9Wm4pLEkucnVuSG9va3MoImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsYzAsWGkpLFNhKGMwLFhpLGZ1''@;'; put 'put ''bmN0aW9uKCl7SmEoYzAsWGkpfSl9LHRoaXMubGlzdGVuPWZ1bmN0aW9uKCl7SSYmIUkuaXNMaXN0ZW5pbmcoKSYmKG82ZT1JLmd1aWQsSS5ydW5Ib29rcygiYWZ0ZXJMaXN0ZW4iKSl9LHRoaXMudW5saXN0ZW49ZnVuY3Rpb24oKXt0aGlzLmlzTGlzdGVuaW5nKCkmJihvNmU9bnVsbCxJLnJ1''@;'; put 'put ''bkhvb2tzKCJhZnRlclVubGlzdGVuIikpfSx0aGlzLmlzTGlzdGVuaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIG82ZT09PUkuZ3VpZH0sdGhpcy5kZXN0cm95RWRpdG9yPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNb''@;'; put 'put ''MF0sWm49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtJLl9yZWZyZXNoQm9yZGVycyhGbixabil9LHRoaXMucG9wdWxhdGVGcm9tQXJyYXk9ZnVuY3Rpb24oRm4sWm4sX3IsWHIsY2ksYzAsWGksRTAsejApe2lmKCJvYmplY3QiIT09''@;'; put 'put ''Y2QoX3IpfHwib2JqZWN0IiE9PWNkKF9yWzBdKSl0aHJvdyBuZXcgRXJyb3IoInBvcHVsYXRlRnJvbUFycmF5IHBhcmFtZXRlciBgaW5wdXRgIG11c3QgYmUgYW4gYXJyYXkgb2YgYXJyYXlzIik7dmFyIGtvPSJudW1iZXIiPT10eXBlb2YgWHI/SS5fY3JlYXRlQ2VsbENvb3JkcyhYcixjaSk6''@;'; put 'put ''bnVsbDtyZXR1cm4gQmUucG9wdWxhdGVGcm9tQXJyYXkoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbixabiksX3Isa28sYzAsWGksRTAsejApfSx0aGlzLnNwbGljZUNvbD1mdW5jdGlvbihGbixabixfcil7Zm9yKHZhciBYcixjaT1hcmd1bWVudHMubGVuZ3RoLGMwPW5ldyBBcnJheShjaT4zP2Np''@;'; put 'put ''LTM6MCksWGk9MztYaTxjaTtYaSsrKWMwW1hpLTNdPWFyZ3VtZW50c1tYaV07cmV0dXJuKFhyPXVlKS5zcGxpY2VDb2wuYXBwbHkoWHIsW0ZuLFpuLF9yXS5jb25jYXQoYzApKX0sdGhpcy5zcGxpY2VSb3c9ZnVuY3Rpb24oRm4sWm4sX3Ipe2Zvcih2YXIgWHIsY2k9YXJndW1lbnRzLmxlbmd0''@;'; put 'put ''aCxjMD1uZXcgQXJyYXkoY2k+Mz9jaS0zOjApLFhpPTM7WGk8Y2k7WGkrKyljMFtYaS0zXT1hcmd1bWVudHNbWGldO3JldHVybihYcj11ZSkuc3BsaWNlUm93LmFwcGx5KFhyLFtGbixabixfcl0uY29uY2F0KGMwKSl9LHRoaXMuZ2V0U2VsZWN0ZWQ9ZnVuY3Rpb24oKXtpZih3ci5pc1NlbGVj''@;'; put 'put ''dGVkKCkpcmV0dXJuIE9sKHdyLmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5jdGlvbihGbil7dmFyIFpuPUZuLmZyb20sX3I9Rm4udG87cmV0dXJuW1puLnJvdyxabi5jb2wsX3Iucm93LF9yLmNvbF19KX0sdGhpcy5nZXRTZWxlY3RlZExhc3Q9ZnVuY3Rpb24oKXt2YXIgWm4sRm49dGhpcy5nZXRT''@;'; put 'put ''ZWxlY3RlZCgpO3JldHVybiBGbiYmRm4ubGVuZ3RoPjAmJihabj1GbltGbi5sZW5ndGgtMV0pLFpufSx0aGlzLmdldFNlbGVjdGVkUmFuZ2U9ZnVuY3Rpb24oKXtpZih3ci5pc1NlbGVjdGVkKCkpcmV0dXJuIEFycmF5LmZyb20od3IuZ2V0U2VsZWN0ZWRSYW5nZSgpKX0sdGhpcy5nZXRTZWxl''@;'; put 'put ''Y3RlZFJhbmdlTGFzdD1mdW5jdGlvbigpe3ZhciBabixGbj10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKTtyZXR1cm4gRm4mJkZuLmxlbmd0aD4wJiYoWm49Rm5bRm4ubGVuZ3RoLTFdKSxabn0sdGhpcy5lbXB0eVNlbGVjdGVkQ2VsbHM9ZnVuY3Rpb24oRm4pe3ZhciBabj10aGlzO2lmKHdyLmlz''@;'; put 'put ''U2VsZWN0ZWQoKSYmMCE9PXRoaXMuY291bnRSb3dzKCkmJjAhPT10aGlzLmNvdW50Q29scygpKXt2YXIgX3I9W107VXIod3IuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKFhyKXt2YXIgY2k9WHIuZ2V0VG9wU3RhcnRDb3JuZXIoKSxjMD1Yci5nZXRCb3R0b21FbmRDb3JuZXIoKTtpYShj''@;'; put 'put ''aS5yb3csYzAucm93LGZ1bmN0aW9uKFhpKXtpYShjaS5jb2wsYzAuY29sLGZ1bmN0aW9uKEUwKXtabi5nZXRDZWxsTWV0YShYaSxFMCkucmVhZE9ubHl8fF9yLnB1c2goW1hpLEUwLG51bGxdKX0pfSl9KSxfci5sZW5ndGg+MCYmdGhpcy5zZXREYXRhQXRDZWxsKF9yLEZuKX19LHRoaXMuaXNS''@;'; put 'put ''ZW5kZXJTdXNwZW5kZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPjB9LHRoaXMuc3VzcGVuZFJlbmRlcj1mdW5jdGlvbigpe3RoaXMucmVuZGVyU3VzcGVuZGVkQ291bnRlcis9MX0sdGhpcy5yZXN1bWVSZW5kZXI9ZnVuY3Rpb24oKXt2YXIgRm49dGhp''@;'; put 'put ''cy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyLTE7dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyPU1hdGgubWF4KEZuLDApLCF0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCkmJkZuPT09dGhpcy5yZW5kZXJTdXNwZW5kZWRDb3VudGVyJiYodGhpcy5yZW5kZXJDYWxsP3RoaXMucmVuZGVyKCk6dGhp''@;'; put 'put ''cy5fcmVmcmVzaEJvcmRlcnMobnVsbCkpfSx0aGlzLnJlbmRlcj1mdW5jdGlvbigpe3RoaXMudmlldyYmKHRoaXMucmVuZGVyQ2FsbD0hMCx0aGlzLmZvcmNlRnVsbFJlbmRlcj0hMCx0aGlzLmlzUmVuZGVyU3VzcGVuZGVkKCl8fChOZS5sb2NrRWRpdG9yKCksdGhpcy5fcmVmcmVzaEJvcmRl''@;'; put 'put ''cnMobnVsbCksTmUudW5sb2NrRWRpdG9yKCkpKX0sdGhpcy5iYXRjaFJlbmRlcj1mdW5jdGlvbihGbil7dGhpcy5zdXNwZW5kUmVuZGVyKCk7dmFyIFpuPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lUmVuZGVyKCksWm59LHRoaXMuaXNFeGVjdXRpb25TdXNwZW5kZWQ9ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5leGVjdXRpb25TdXNwZW5kZWRDb3VudGVyPjB9LHRoaXMuc3VzcGVuZEV4ZWN1dGlvbj1mdW5jdGlvbigpe3RoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlcis9MSx0aGlzLmNvbHVtbkluZGV4TWFwcGVyLnN1c3BlbmRPcGVyYXRpb25zKCksdGhpcy5yb3dJbmRleE1hcHBl''@;'; put 'put ''ci5zdXNwZW5kT3BlcmF0aW9ucygpfSx0aGlzLnJlc3VtZUV4ZWN1dGlvbj1mdW5jdGlvbigpe3ZhciBGbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLFpuPXRoaXMuZXhlY3V0aW9uU3VzcGVuZGVkQ291bnRlci0xO3RoaXMuZXhlY3V0''@;'; put 'put ''aW9uU3VzcGVuZGVkQ291bnRlcj1NYXRoLm1heChabiwwKSwoIXRoaXMuaXNFeGVjdXRpb25TdXNwZW5kZWQoKSYmWm49PT10aGlzLmV4ZWN1dGlvblN1c3BlbmRlZENvdW50ZXJ8fEZuKSYmKHRoaXMuY29sdW1uSW5kZXhNYXBwZXIucmVzdW1lT3BlcmF0aW9ucygpLHRoaXMucm93SW5kZXhN''@;'; put 'put ''YXBwZXIucmVzdW1lT3BlcmF0aW9ucygpKX0sdGhpcy5iYXRjaEV4ZWN1dGlvbj1mdW5jdGlvbihGbil7dmFyIFpuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07dGhpcy5zdXNwZW5kRXhlY3V0aW9uKCk7dmFyIF9yPUZuKCk7cmV0dXJu''@;'; put 'put ''IHRoaXMucmVzdW1lRXhlY3V0aW9uKFpuKSxfcn0sdGhpcy5iYXRjaD1mdW5jdGlvbihGbil7dGhpcy5zdXNwZW5kUmVuZGVyKCksdGhpcy5zdXNwZW5kRXhlY3V0aW9uKCk7dmFyIFpuPUZuKCk7cmV0dXJuIHRoaXMucmVzdW1lRXhlY3V0aW9uKCksdGhpcy5yZXN1bWVSZW5kZXIoKSxabn0s''@;'; put 'put ''dGhpcy5yZWZyZXNoRGltZW5zaW9ucz1mdW5jdGlvbigpe2lmKEkudmlldyl7dmFyIEZuPUkudmlldy5nZXRMYXN0U2l6ZSgpLFpuPUZuLndpZHRoLF9yPUZuLmhlaWdodCxYcj1JLnJvb3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGNpPVhyLndpZHRoLGMwPVhyLmhlaWdodCxY''@;'; put 'put ''aT1jaSE9PVpufHxjMCE9PV9yOyExPT09SS5ydW5Ib29rcygiYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMiLHt3aWR0aDpabixoZWlnaHQ6X3J9LHt3aWR0aDpjaSxoZWlnaHQ6YzB9LFhpKXx8KChYaXx8SS52aWV3Ll93dC53dE92ZXJsYXlzLnNjcm9sbGFibGVFbGVtZW50PT09SS5yb290V2lu''@;'; put 'put ''ZG93KSYmKEkudmlldy5zZXRMYXN0U2l6ZShjaSxjMCksSS5yZW5kZXIoKSksSS5ydW5Ib29rcygiYWZ0ZXJSZWZyZXNoRGltZW5zaW9ucyIse3dpZHRoOlpuLGhlaWdodDpfcn0se3dpZHRoOmNpLGhlaWdodDpjMH0sWGkpKX19LHRoaXMudXBkYXRlRGF0YT1mdW5jdGlvbihGbixabil7dmFy''@;'; put 'put ''IF9yPXRoaXM7eFNlKEZuLGZ1bmN0aW9uKFhyKXt1ZT1Ycn0sZnVuY3Rpb24oWHIpe3VlPVhyLEkuY29sdW1uSW5kZXhNYXBwZXIuZml0VG9MZW5ndGgoX3IuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLEkucm93SW5kZXhNYXBwZXIuZml0VG9MZW5ndGgoX3IuY291bnRTb3VyY2VSb3dzKCkp''@;'; put 'put ''LEJlLmFkanVzdFJvd3NBbmRDb2xzKCl9LHtob3RJbnN0YW5jZTpJLGRhdGFNYXA6dWUsZGF0YVNvdXJjZTpfZSxpbnRlcm5hbFNvdXJjZToidXBkYXRlRGF0YSIsc291cmNlOlpuLGZpcnN0UnVuOktlfSl9LHRoaXMubG9hZERhdGE9ZnVuY3Rpb24oRm4sWm4pe3hTZShGbixmdW5jdGlvbihf''@;'; put 'put ''cil7dWU9X3J9LGZ1bmN0aW9uKCl7JHQuY2xlYXJDZWxsc0NhY2hlKCksSS5pbml0SW5kZXhNYXBwZXJzKCksQmUuYWRqdXN0Um93c0FuZENvbHMoKSxLZSYmKEtlPVtudWxsLCJsb2FkRGF0YSJdKX0se2hvdEluc3RhbmNlOkksZGF0YU1hcDp1ZSxkYXRhU291cmNlOl9lLGludGVybmFsU291''@;'; put 'put ''cmNlOiJsb2FkRGF0YSIsc291cmNlOlpuLGZpcnN0UnVuOktlfSl9LHRoaXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50PWZ1bmN0aW9uKCl7dmFyIEZuPWZuLmNvbHVtbnMsWm49MDtpZihBcnJheS5pc0FycmF5KEZuKSlabj1Gbi5sZW5ndGg7ZWxzZSBpZihVMihGbikpaWYoImFycmF5Ij09PUku''@;'; put 'put ''ZGF0YVR5cGUpZm9yKHZhciBfcj10aGlzLmNvdW50U291cmNlQ29scygpLFhyPTA7WHI8X3I7WHIrPTEpRm4oWHIpJiYoWm4rPTEpO2Vsc2UoIm9iamVjdCI9PT1JLmRhdGFUeXBlfHwiZnVuY3Rpb24iPT09SS5kYXRhVHlwZSkmJihabj11ZS5jb2xUb1Byb3BDYWNoZS5sZW5ndGgpO2Vsc2Ug''@;'; put 'put ''aWYoVG8oZm4uZGF0YVNjaGVtYSkpe3ZhciBjaT11ZS5nZXRTY2hlbWEoKTtabj1BcnJheS5pc0FycmF5KGNpKT9jaS5sZW5ndGg6SnEoY2kpfWVsc2UgWm49dGhpcy5jb3VudFNvdXJjZUNvbHMoKTtyZXR1cm4gWm59LHRoaXMuaW5pdEluZGV4TWFwcGVycz1mdW5jdGlvbigpe3RoaXMuY29s''@;'; put 'put ''dW1uSW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRoaXMuZ2V0SW5pdGlhbENvbHVtbkNvdW50KCkpLHRoaXMucm93SW5kZXhNYXBwZXIuaW5pdFRvTGVuZ3RoKHRoaXMuY291bnRTb3VyY2VSb3dzKCkpfSx0aGlzLmdldERhdGE9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe3JldHVybiBhMShGbik/''@;'; put 'put ''dWUuZ2V0QWxsKCk6dWUuZ2V0UmFuZ2UoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbixabiksSS5fY3JlYXRlQ2VsbENvb3JkcyhfcixYciksdWUuREVTVElOQVRJT05fUkVOREVSRVIpfSx0aGlzLmdldENvcHlhYmxlVGV4dD1mdW5jdGlvbihGbixabixfcixYcil7cmV0dXJuIHVlLmdldENvcHlh''@;'; put 'put ''YmxlVGV4dChJLl9jcmVhdGVDZWxsQ29vcmRzKEZuLFpuKSxJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhyKSl9LHRoaXMuZ2V0Q29weWFibGVEYXRhPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gdWUuZ2V0Q29weWFibGUoRm4sdWUuY29sVG9Qcm9wKFpuKSl9LHRoaXMuZ2V0U2NoZW1hPWZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIHVlLmdldFNjaGVtYSgpfSx0aGlzLnVwZGF0ZVNldHRpbmdzPWZ1bmN0aW9uKEZuKXt2YXIgY2ksYzAsWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxfcj0oS2U/SS5sb2FkRGF0YTpJLnVwZGF0ZURhdGEpLmJp''@;'; put 'put ''bmQodGhpcyksWHI9ITE7aWYoVG8oRm4ucm93cykpdGhyb3cgbmV3IEVycm9yKCdUaGUgInJvd3MiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRSb3dzLCBtaW5Sb3dzIG9yIG1heFJvd3M/Jyk7aWYoVG8oRm4uY29scykpdGhyb3cgbmV3IEVycm9y''@;'; put 'put ''KCdUaGUgImNvbHMiIHNldHRpbmcgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gRG8geW91IG1lYW4gc3RhcnRDb2xzLCBtaW5Db2xzIG9yIG1heENvbHM/Jyk7aWYoVG8oRm4uZ2FudHRDaGFydCkpdGhyb3cgbmV3IEVycm9yKCdTaW5jZSA4LjAuMCB0aGUgImdhbnR0Q2hhcnQiIHNldHRpbmcg''@;'; put 'put ''aXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4nKTtmb3IoY2kgaW4gRm4pImRhdGEiPT09Y2l8fCgibGFuZ3VhZ2UiPT09Y2k/eWkoRm4ubGFuZ3VhZ2UpOiJjbGFzc05hbWUiPT09Y2k/S2koImNsYXNzTmFtZSIsRm4uY2xhc3NOYW1lKToidGFibGVDbGFzc05hbWUiPT09Y2kmJkkudGFibGU/KEtp''@;'; put 'put ''KCJ0YWJsZUNsYXNzTmFtZSIsRm4udGFibGVDbGFzc05hbWUpLEkudmlldy5fd3Qud3RPdmVybGF5cy5zeW5jT3ZlcmxheVRhYmxlQ2xhc3NOYW1lcygpKTp6by5nZXRTaW5nbGV0b24oKS5pc1JlZ2lzdGVyZWQoY2kpfHx6by5nZXRTaW5nbGV0b24oKS5pc0RlcHJlY2F0ZWQoY2kpPyhVMihG''@;'; put 'put ''bltjaV0pfHxBcnJheS5pc0FycmF5KEZuW2NpXSkpJiYoRm5bY2ldLmluaXRpYWxIb29rPSEwLEkuYWRkSG9vayhjaSxGbltjaV0pKTohWm4mJm8xKEZuLGNpKSYmKExuW2NpXT1GbltjaV0pKTt2b2lkIDA9PT1Gbi5kYXRhJiZ2b2lkIDA9PT1mbi5kYXRhP19yKG51bGwsInVwZGF0ZVNldHRp''@;'; put 'put ''bmdzIik6dm9pZCAwIT09Rm4uZGF0YT9fcihGbi5kYXRhLCJ1cGRhdGVTZXR0aW5ncyIpOnZvaWQgMCE9PUZuLmNvbHVtbnMmJih1ZS5jcmVhdGVNYXAoKSxJLmluaXRJbmRleE1hcHBlcnMoKSk7dmFyIFhpPUkuY291bnRDb2xzKCksRTA9Zm4uY29sdW1ucztpZihFMCYmVTIoRTApJiYoWHI9''@;'; put 'put ''ITApLCh2b2lkIDAhPT1Gbi5jZWxsfHx2b2lkIDAhPT1Gbi5jZWxsc3x8dm9pZCAwIT09Rm4uY29sdW1ucykmJiR0LmNsZWFyQ2FjaGUoKSxYaT4wKWZvcihjaT0wLGMwPTA7Y2k8WGk7Y2krKyl7aWYoRTApe3ZhciB6MD1Ycj9FMChjaSk6RTBbYzBdO3owJiYkdC51cGRhdGVDb2x1bW5NZXRh''@;'; put 'put ''KGMwLHowKX1jMCs9MX1UbyhGbi5jZWxsKSYmR2woRm4uY2VsbCxmdW5jdGlvbih0Mil7SS5zZXRDZWxsTWV0YU9iamVjdCh0Mi5yb3csdDIuY29sLHQyKX0pLEkucnVuSG9va3MoImFmdGVyQ2VsbE1ldGFSZXNldCIpO3ZhciBrbz1JLnJvb3RFbGVtZW50LnN0eWxlLmhlaWdodDsiIiE9PWtv''@;'; put 'put ''JiYoa289cGFyc2VJbnQoSS5yb290RWxlbWVudC5zdHlsZS5oZWlnaHQsMTApKTt2YXIgd289Rm4uaGVpZ2h0O2lmKFUyKHdvKSYmKHdvPXdvKCkpLFpuKXt2YXIgV2E9SS5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIik7V2EmJkkucm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJk''@;'; put 'put ''YXRhLWluaXRpYWxzdHlsZSIsSS5yb290RWxlbWVudC5nZXRBdHRyaWJ1dGUoInN0eWxlIikpfWlmKG51bGw9PT13byl7dmFyIGUyPUkucm9vdEVsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWluaXRpYWxzdHlsZSIpO2UyJiYoZTIuaW5kZXhPZigiaGVpZ2h0Iik+LTF8fGUyLmluZGV4T2Yo''@;'; put 'put ''Im92ZXJmbG93Iik+LTEpP0kucm9vdEVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdHlsZSIsZTIpOihJLnJvb3RFbGVtZW50LnN0eWxlLmhlaWdodD0iIixJLnJvb3RFbGVtZW50LnN0eWxlLm92ZXJmbG93PSIiKX1lbHNlIHZvaWQgMCE9PXdvJiYoSS5yb290RWxlbWVudC5zdHlsZS5oZWlnaHQ9''@;'; put 'put ''aXNOYU4od28pPyIiLmNvbmNhdCh3byk6IiIuY29uY2F0KHdvLCJweCIpLEkucm9vdEVsZW1lbnQuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIpO2lmKHZvaWQgMCE9PUZuLndpZHRoKXt2YXIgSGE9Rm4ud2lkdGg7VTIoSGEpJiYoSGE9SGEoKSksSS5yb290RWxlbWVudC5zdHlsZS53aWR0aD1p''@;'; put 'put ''c05hTihIYSk/IiIuY29uY2F0KEhhKToiIi5jb25jYXQoSGEsInB4Iil9Wm58fChJLnZpZXcmJihJLnZpZXcuX3d0Lnd0Vmlld3BvcnQucmVzZXRIYXNPdmVyc2l6ZWRDb2x1bW5IZWFkZXJzTWFya2VkKCksSS52aWV3Ll93dC5leHBvcnRTZXR0aW5nc0FzQ2xhc3NOYW1lcygpKSxJLnJ1bkhv''@;'; put 'put ''b2tzKCJhZnRlclVwZGF0ZVNldHRpbmdzIixGbikpLEJlLmFkanVzdFJvd3NBbmRDb2xzKCksSS52aWV3JiYhS2UmJihJLmZvcmNlRnVsbFJlbmRlcj0hMCxOZS5sb2NrRWRpdG9yKCksSS5fcmVmcmVzaEJvcmRlcnMobnVsbCksSS52aWV3Ll93dC53dE92ZXJsYXlzLmFkanVzdEVsZW1lbnRz''@;'; put 'put ''U2l6ZSgpLE5lLnVubG9ja0VkaXRvcigpKSwhWm4mJkkudmlldyYmKCIiPT09a298fCIiPT09d298fHZvaWQgMD09PXdvKSYma28hPT13byYmSS52aWV3Ll93dC53dE92ZXJsYXlzLnVwZGF0ZU1haW5TY3JvbGxhYmxlRWxlbWVudHMoKX0sdGhpcy5nZXRWYWx1ZT1mdW5jdGlvbigpe3ZhciBG''@;'; put 'put ''bj1JLmdldFNlbGVjdGVkTGFzdCgpO2lmKGZuLmdldFZhbHVlKXtpZihVMihmbi5nZXRWYWx1ZSkpcmV0dXJuIGZuLmdldFZhbHVlLmNhbGwoSSk7aWYoRm4pcmV0dXJuIEkuZ2V0RGF0YSgpW0ZuWzBdWzBdXVtmbi5nZXRWYWx1ZV19ZWxzZSBpZihGbilyZXR1cm4gSS5nZXREYXRhQXRDZWxs''@;'; put 'put ''KEZuWzBdLEZuWzFdKX0sdGhpcy5nZXRTZXR0aW5ncz1mdW5jdGlvbigpe3JldHVybiBmbn0sdGhpcy5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2VsZWN0QWxsKCksdGhpcy5lbXB0eVNlbGVjdGVkQ2VsbHMoKX0sdGhpcy5hbHRlcj1mdW5jdGlvbihGbixabixfcixYcixjaSl7QmUuYWx0ZXIo''@;'; put 'put ''Rm4sWm4sX3IsWHIsY2kpfSx0aGlzLmdldENlbGw9ZnVuY3Rpb24oRm4sWm4pe3ZhciBfcj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLFhyPVpuLGNpPUZuO2lmKFpuPj0wKXtpZih0aGlzLmNvbHVtbkluZGV4TWFwcGVyLmlzSGlkZGVu''@;'; put 'put ''KHRoaXMudG9QaHlzaWNhbENvbHVtbihabikpKXJldHVybiBudWxsO1hyPXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChabil9aWYoRm4+PTApe2lmKHRoaXMucm93SW5kZXhNYXBwZXIuaXNIaWRkZW4odGhpcy50b1BoeXNpY2FsUm93KEZuKSkp''@;'; put 'put ''cmV0dXJuIG51bGw7Y2k9dGhpcy5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEZuKX1yZXR1cm4gbnVsbD09PWNpfHxudWxsPT09WHI/bnVsbDpJLnZpZXcuZ2V0Q2VsbEF0Q29vcmRzKEkuX2NyZWF0ZUNlbGxDb29yZHMoY2ksWHIpLF9yKX0sdGhpcy5nZXRD''@;'; put 'put ''b29yZHM9ZnVuY3Rpb24oRm4pe3ZhciBabj10aGlzLnZpZXcuX3d0Lnd0VGFibGUuZ2V0Q29vcmRzKEZuKTtpZihudWxsPT09Wm4pcmV0dXJuIG51bGw7dmFyIF9yPVpuLnJvdyxYcj1abi5jb2wsY2k9X3IsYzA9WHI7cmV0dXJuIF9yPj0wJiYoY2k9dGhpcy5yb3dJbmRleE1hcHBlci5nZXRW''@;'; put 'put ''aXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KF9yKSksWHI+PTAmJihjMD10aGlzLmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoWHIpKSxJLl9jcmVhdGVDZWxsQ29vcmRzKGNpLGMwKX0sdGhpcy5jb2xUb1Byb3A9ZnVuY3Rpb24oRm4pe3JldHVybiB1ZS5j''@;'; put 'put ''b2xUb1Byb3AoRm4pfSx0aGlzLnByb3BUb0NvbD1mdW5jdGlvbihGbil7cmV0dXJuIHVlLnByb3BUb0NvbChGbil9LHRoaXMudG9WaXN1YWxSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiB2LnJvd0luZGV4TWFwcGVyLmdldFZpc3VhbEZyb21QaHlzaWNhbEluZGV4KEZuKX0sdGhpcy50b1Zpc3Vh''@;'; put 'put ''bENvbHVtbj1mdW5jdGlvbihGbil7cmV0dXJuIHYuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVBoeXNpY2FsSW5kZXgoRm4pfSx0aGlzLnRvUGh5c2ljYWxSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiB2LnJvd0luZGV4TWFwcGVyLmdldFBoeXNpY2FsRnJvbVZpc3VhbEluZGV4KEZu''@;'; put 'put ''KX0sdGhpcy50b1BoeXNpY2FsQ29sdW1uPWZ1bmN0aW9uKEZuKXtyZXR1cm4gdi5jb2x1bW5JbmRleE1hcHBlci5nZXRQaHlzaWNhbEZyb21WaXN1YWxJbmRleChGbil9LHRoaXMuZ2V0RGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabil7cmV0dXJuIHVlLmdldChGbix1ZS5jb2xUb1Byb3AoWm4p''@;'; put 'put ''KX0sdGhpcy5nZXREYXRhQXRSb3dQcm9wPWZ1bmN0aW9uKEZuLFpuKXtyZXR1cm4gdWUuZ2V0KEZuLFpuKX0sdGhpcy5nZXREYXRhQXRDb2w9ZnVuY3Rpb24oRm4pe3ZhciBabjtyZXR1cm4oWm49W10pLmNvbmNhdC5hcHBseShabixSdyh1ZS5nZXRSYW5nZShJLl9jcmVhdGVDZWxsQ29vcmRz''@;'; put 'put ''KDAsRm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoZm4uZGF0YS5sZW5ndGgtMSxGbiksdWUuREVTVElOQVRJT05fUkVOREVSRVIpKSl9LHRoaXMuZ2V0RGF0YUF0UHJvcD1mdW5jdGlvbihGbil7dmFyIFpuLF9yPXVlLmdldFJhbmdlKEkuX2NyZWF0ZUNlbGxDb29yZHMoMCx1ZS5wcm9wVG9Db2wo''@;'; put 'put ''Rm4pKSxJLl9jcmVhdGVDZWxsQ29vcmRzKGZuLmRhdGEubGVuZ3RoLTEsdWUucHJvcFRvQ29sKEZuKSksdWUuREVTVElOQVRJT05fUkVOREVSRVIpO3JldHVybihabj1bXSkuY29uY2F0LmFwcGx5KFpuLFJ3KF9yKSl9LHRoaXMuZ2V0U291cmNlRGF0YT1mdW5jdGlvbihGbixabixfcixYcil7''@;'; put 'put ''cmV0dXJuIHZvaWQgMD09PUZuP19lLmdldERhdGEoKTpfZS5nZXRCeVJhbmdlKEkuX2NyZWF0ZUNlbGxDb29yZHMoRm4sWm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXJyYXk9ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe3JldHVybiB2b2lkIDA9PT1G''@;'; put 'put ''bj9fZS5nZXREYXRhKCEwKTpfZS5nZXRCeVJhbmdlKEkuX2NyZWF0ZUNlbGxDb29yZHMoRm4sWm4pLEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpLCEwKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRDb2w9ZnVuY3Rpb24oRm4pe3JldHVybiBfZS5nZXRBdENvbHVtbihGbil9LHRoaXMuc2V0U291''@;'; put 'put ''cmNlRGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPWxhKEZuLFpuLF9yKSxjMD10aGlzLmhhc0hvb2soImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIpLFhpPVtdO2MwJiZVcihjaSxmdW5jdGlvbih6MCl7dmFyIGtvPUlnKHowLDMpLHdvPWtvWzBdLFdhPWtvWzFdLGUy''@;'; put 'put ''PWtvWzJdO1hpLnB1c2goW3dvLFdhLF9lLmdldEF0Q2VsbCh3byxXYSksZTJdKX0pLFVyKGNpLGZ1bmN0aW9uKHowKXt2YXIga289SWcoejAsMyk7X2Uuc2V0QXRDZWxsKGtvWzBdLGtvWzFdLGtvWzJdKX0pLGMwJiZ0aGlzLnJ1bkhvb2tzKCJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiLFhp''@;'; put 'put ''LFhyKSx0aGlzLnJlbmRlcigpO3ZhciBFMD1JLmdldEFjdGl2ZUVkaXRvcigpO0UwJiZUbyhFMC5yZWZyZXNoVmFsdWUpJiZFMC5yZWZyZXNoVmFsdWUoKX0sdGhpcy5nZXRTb3VyY2VEYXRhQXRSb3c9ZnVuY3Rpb24oRm4pe3JldHVybiBfZS5nZXRBdFJvdyhGbil9LHRoaXMuZ2V0U291cmNl''@;'; put 'put ''RGF0YUF0Q2VsbD1mdW5jdGlvbihGbixabil7cmV0dXJuIF9lLmdldEF0Q2VsbChGbixabil9LHRoaXMuZ2V0RGF0YUF0Um93PWZ1bmN0aW9uKEZuKXtyZXR1cm4gdWUuZ2V0UmFuZ2UoSS5fY3JlYXRlQ2VsbENvb3JkcyhGbiwwKSxJLl9jcmVhdGVDZWxsQ29vcmRzKEZuLHRoaXMuY291bnRD''@;'; put 'put ''b2xzKCktMSksdWUuREVTVElOQVRJT05fUkVOREVSRVIpWzBdfHxbXX0sdGhpcy5nZXREYXRhVHlwZT1mdW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPXRoaXMsYzA9dm9pZCAwPT09Rm4/WzAsMCx0aGlzLmNvdW50Um93cygpLHRoaXMuY291bnRDb2xzKCldOltGbixabixfcixYcl0sWGk9''@;'; put 'put ''YzBbMF0sRTA9YzBbMV0sejA9YzBbMl0sa289YzBbM10sd289bnVsbCxXYT1udWxsO3ZvaWQgMD09PXowJiYoejA9WGkpLHZvaWQgMD09PWtvJiYoa289RTApO3ZhciBlMj0ibWl4ZWQiO3JldHVybiBpYShNYXRoLm1heChNYXRoLm1pbihYaSx6MCksMCksTWF0aC5tYXgoWGksejApLGZ1bmN0''@;'; put 'put ''aW9uKEhhKXt2YXIgdDI9ITA7cmV0dXJuIGlhKE1hdGgubWF4KE1hdGgubWluKEUwLGtvKSwwKSxNYXRoLm1heChFMCxrbyksZnVuY3Rpb24oTzEpe3ZhciBSMT1jaS5nZXRDZWxsTWV0YShIYSxPMSk7cmV0dXJuIFdhPVIxLnR5cGUsd28/dDI9d289PT1XYTp3bz1XYSx0Mn0pLGUyPXQyP1dh''@;'; put 'put ''OiJtaXhlZCIsdDJ9KSxlMn0sdGhpcy5yZW1vdmVDZWxsTWV0YT1mdW5jdGlvbihGbixabixfcil7dmFyIFhyPVt0aGlzLnRvUGh5c2ljYWxSb3coRm4pLHRoaXMudG9QaHlzaWNhbENvbHVtbihabildLGNpPVhyWzBdLGMwPVhyWzFdLFhpPSR0LmdldENlbGxNZXRhS2V5VmFsdWUoY2ksYzAs''@;'; put 'put ''X3IpOyExIT09SS5ydW5Ib29rcygiYmVmb3JlUmVtb3ZlQ2VsbE1ldGEiLEZuLFpuLF9yLFhpKSYmKCR0LnJlbW92ZUNlbGxNZXRhKGNpLGMwLF9yKSxJLnJ1bkhvb2tzKCJhZnRlclJlbW92ZUNlbGxNZXRhIixGbixabixfcixYaSkpLFhpPW51bGx9LHRoaXMuc3BsaWNlQ2VsbHNNZXRhPWZ1''@;'; put 'put ''bmN0aW9uKEZuKXtmb3IodmFyIFpuPXRoaXMsX3I9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsWHI9YXJndW1lbnRzLmxlbmd0aCxjaT1uZXcgQXJyYXkoWHI+Mj9Yci0yOjApLGMwPTI7YzA8WHI7YzArKyljaVtjMC0yXT1hcmd1bWVu''@;'; put 'put ''dHNbYzBdO2lmKGNpLmxlbmd0aD4wJiYhQXJyYXkuaXNBcnJheShjaVswXSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgM3JkIGFyZ3VtZW50IChjZWxsTWV0YVJvd3MpIGhhcyB0byBiZSBwYXNzZWQgYXMgYW4gYXJyYXkgb2YgY2VsbCBtZXRhIG9iamVjdHMgYXJyYXkuIik7X3I+MCYmJHQucmVt''@;'; put 'put ''b3ZlUm93KHRoaXMudG9QaHlzaWNhbFJvdyhGbiksX3IpLGNpLmxlbmd0aD4wJiZVcihjaS5yZXZlcnNlKCksZnVuY3Rpb24oWGkpeyR0LmNyZWF0ZVJvdyhabi50b1BoeXNpY2FsUm93KEZuKSksVXIoWGksZnVuY3Rpb24oRTAsejApe3JldHVybiBabi5zZXRDZWxsTWV0YU9iamVjdChGbix6''@;'; put 'put ''MCxFMCl9KX0pLEkucmVuZGVyKCl9LHRoaXMuc2V0Q2VsbE1ldGFPYmplY3Q9ZnVuY3Rpb24oRm4sWm4sX3Ipe3ZhciBYcj10aGlzOyJvYmplY3QiPT09Y2QoX3IpJiZHbChfcixmdW5jdGlvbihjaSxjMCl7WHIuc2V0Q2VsbE1ldGEoRm4sWm4sYzAsY2kpfSl9LHRoaXMuc2V0Q2VsbE1ldGE9''@;'; put 'put ''ZnVuY3Rpb24oRm4sWm4sX3IsWHIpe2lmKCExIT09SS5ydW5Ib29rcygiYmVmb3JlU2V0Q2VsbE1ldGEiLEZuLFpuLF9yLFhyKSl7dmFyIGMwPUZuLFhpPVpuO0ZuPHRoaXMuY291bnRSb3dzKCkmJihjMD10aGlzLnRvUGh5c2ljYWxSb3coRm4pKSxabjx0aGlzLmNvdW50Q29scygpJiYoWGk9''@;'; put 'put ''dGhpcy50b1BoeXNpY2FsQ29sdW1uKFpuKSksJHQuc2V0Q2VsbE1ldGEoYzAsWGksX3IsWHIpLEkucnVuSG9va3MoImFmdGVyU2V0Q2VsbE1ldGEiLEZuLFpuLF9yLFhyKX19LHRoaXMuZ2V0Q2VsbHNNZXRhPWZ1bmN0aW9uKCl7cmV0dXJuICR0LmdldENlbGxzTWV0YSgpfSx0aGlzLmdldENl''@;'; put 'put ''bGxNZXRhPWZ1bmN0aW9uKEZuLFpuKXt2YXIgX3I9dGhpcy50b1BoeXNpY2FsUm93KEZuKSxYcj10aGlzLnRvUGh5c2ljYWxDb2x1bW4oWm4pO3JldHVybiBudWxsPT09X3ImJihfcj1GbiksbnVsbD09PVhyJiYoWHI9Wm4pLCR0LmdldENlbGxNZXRhKF9yLFhyLHt2aXN1YWxSb3c6Rm4sdmlz''@;'; put 'put ''dWFsQ29sdW1uOlpufSl9LHRoaXMuZ2V0Q2VsbE1ldGFBdFJvdz1mdW5jdGlvbihGbil7cmV0dXJuICR0LmdldENlbGxzTWV0YUF0Um93KEZuKX0sdGhpcy5pc0NvbHVtbk1vZGlmaWNhdGlvbkFsbG93ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hKCJvYmplY3QiPT09SS5kYXRhVHlwZXx8Zm4uY29s''@;'; put 'put ''dW1ucyl9O3ZhciBhbD1xWigicmVuZGVyZXIiKTt0aGlzLmdldENlbGxSZW5kZXJlcj1mdW5jdGlvbihGbixabil7cmV0dXJuIFczZShhbC5jYWxsKHRoaXMsRm4sWm4pKX0sdGhpcy5nZXRDZWxsRWRpdG9yPXFaKCJlZGl0b3IiKTt2YXIgUnM9cVooInZhbGlkYXRvciIpO3RoaXMuZ2V0Q2Vs''@;'; put 'put ''bFZhbGlkYXRvcj1mdW5jdGlvbihGbixabil7dmFyIF9yPVJzLmNhbGwodGhpcyxGbixabik7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBfciYmKF9yPVkzZShfcikpLF9yfSx0aGlzLnZhbGlkYXRlQ2VsbHM9ZnVuY3Rpb24oRm4pe3RoaXMuX3ZhbGlkYXRlQ2VsbHMoRm4pfSx0aGlzLnZhbGlk''@;'; put 'put ''YXRlUm93cz1mdW5jdGlvbihGbixabil7aWYoIUFycmF5LmlzQXJyYXkoRm4pKXRocm93IG5ldyBFcnJvcigidmFsaWRhdGVSb3dzIHBhcmFtZXRlciBgcm93c2AgbXVzdCBiZSBhbiBhcnJheSIpO3RoaXMuX3ZhbGlkYXRlQ2VsbHMoWm4sRm4pfSx0aGlzLnZhbGlkYXRlQ29sdW1ucz1mdW5j''@;'; put 'put ''dGlvbihGbixabil7aWYoIUFycmF5LmlzQXJyYXkoRm4pKXRocm93IG5ldyBFcnJvcigidmFsaWRhdGVDb2x1bW5zIHBhcmFtZXRlciBgY29sdW1uc2AgbXVzdCBiZSBhbiBhcnJheSIpO3RoaXMuX3ZhbGlkYXRlQ2VsbHMoWm4sdm9pZCAwLEZuKX0sdGhpcy5fdmFsaWRhdGVDZWxscz1mdW5j''@;'; put 'put ''dGlvbihGbixabixfcil7dmFyIFhyPW5ldyBTbztGbiYmKFhyLm9uUXVldWVFbXB0eT1Gbik7Zm9yKHZhciBjaT1JLmNvdW50Um93cygpLTE7Y2k+PTA7KWlmKHZvaWQgMD09PVpufHwtMSE9PVpuLmluZGV4T2YoY2kpKXtmb3IodmFyIGMwPUkuY291bnRDb2xzKCktMTtjMD49MDspdm9pZCAw''@;'; put 'put ''PT09X3J8fC0xIT09X3IuaW5kZXhPZihjMCk/KFhyLmFkZFZhbGlkYXRvclRvUXVldWUoKSxJLnZhbGlkYXRlQ2VsbChJLmdldERhdGFBdENlbGwoY2ksYzApLEkuZ2V0Q2VsbE1ldGEoY2ksYzApLGZ1bmN0aW9uKFhpKXtpZigiYm9vbGVhbiIhPXR5cGVvZiBYaSl0aHJvdyBuZXcgRXJyb3Io''@;'; put 'put ''IlZhbGlkYXRpb24gZXJyb3I6IHJlc3VsdCBpcyBub3QgYm9vbGVhbiIpOyExPT09WGkmJihYci52YWxpZD0hMSksWHIucmVtb3ZlVmFsaWRhdG9yRm9ybVF1ZXVlKCl9LCJ2YWxpZGF0ZUNlbGxzIiksYzAtPTEpOmMwLT0xO2NpLT0xfWVsc2UgY2ktPTE7WHIuY2hlY2tJZlF1ZXVlSXNFbXB0''@;'; put 'put ''eSgpfSx0aGlzLmdldFJvd0hlYWRlcj1mdW5jdGlvbihGbil7dmFyIFpuPWZuLnJvd0hlYWRlcnMsX3I9Rm47cmV0dXJuIHZvaWQgMCE9PV9yJiYoX3I9SS5ydW5Ib29rcygibW9kaWZ5Um93SGVhZGVyIixfcikpLHZvaWQgMD09PV9yPyhabj1bXSxpYShJLmNvdW50Um93cygpLTEsZnVuY3Rp''@;'; put 'put ''b24oWHIpe1puLnB1c2goSS5nZXRSb3dIZWFkZXIoWHIpKX0pKTpBcnJheS5pc0FycmF5KFpuKSYmdm9pZCAwIT09Wm5bX3JdP1puPVpuW19yXTpVMihabik/Wm49Wm4oX3IpOlpuJiYic3RyaW5nIiE9dHlwZW9mIFpuJiYibnVtYmVyIiE9dHlwZW9mIFpuJiYoWm49X3IrMSksWm59LHRoaXMu''@;'; put 'put ''aGFzUm93SGVhZGVycz1mdW5jdGlvbigpe3JldHVybiEhZm4ucm93SGVhZGVyc30sdGhpcy5oYXNDb2xIZWFkZXJzPWZ1bmN0aW9uKCl7aWYobnVsbCE9Zm4uY29sSGVhZGVycylyZXR1cm4hIWZuLmNvbEhlYWRlcnM7Zm9yKHZhciBGbj0wLFpuPUkuY291bnRDb2xzKCk7Rm48Wm47Rm4rKylp''@;'; put 'put ''ZihJLmdldENvbEhlYWRlcihGbikpcmV0dXJuITA7cmV0dXJuITF9LHRoaXMuZ2V0Q29sSGVhZGVyPWZ1bmN0aW9uKEZuKXt2YXIgWm49SS5ydW5Ib29rcygibW9kaWZ5Q29sSGVhZGVyIixGbiksX3I9Zm4uY29sSGVhZGVycztpZih2b2lkIDA9PT1abil7Zm9yKHZhciBYcj1bXSxjaT1JLmNv''@;'; put 'put ''dW50Q29scygpLGMwPTA7YzA8Y2k7YzArKylYci5wdXNoKEkuZ2V0Q29sSGVhZGVyKGMwKSk7X3I9WHJ9ZWxzZXt2YXIgRTA9SS50b1BoeXNpY2FsQ29sdW1uKFpuKSx6MD1mdW5jdGlvbih3byl7Zm9yKHZhciBXYT1bXSxlMj1JLmNvdW50Q29scygpLEhhPTA7SGE8ZTI7SGErKylVMihmbi5j''@;'; put 'put ''b2x1bW5zKSYmZm4uY29sdW1ucyhIYSkmJldhLnB1c2goSGEpO3JldHVybiBXYVt3b119KEUwKTshMT09PWZuLmNvbEhlYWRlcnM/X3I9bnVsbDpmbi5jb2x1bW5zJiZVMihmbi5jb2x1bW5zKSYmZm4uY29sdW1ucyh6MCkmJmZuLmNvbHVtbnMoejApLnRpdGxlP19yPWZuLmNvbHVtbnMoejAp''@;'; put 'put ''LnRpdGxlOmZuLmNvbHVtbnMmJmZuLmNvbHVtbnNbRTBdJiZmbi5jb2x1bW5zW0UwXS50aXRsZT9fcj1mbi5jb2x1bW5zW0UwXS50aXRsZTpBcnJheS5pc0FycmF5KGZuLmNvbEhlYWRlcnMpJiZ2b2lkIDAhPT1mbi5jb2xIZWFkZXJzW0UwXT9fcj1mbi5jb2xIZWFkZXJzW0UwXTpVMihmbi5j''@;'; put 'put ''b2xIZWFkZXJzKT9fcj1mbi5jb2xIZWFkZXJzKEUwKTpmbi5jb2xIZWFkZXJzJiYic3RyaW5nIiE9dHlwZW9mIGZuLmNvbEhlYWRlcnMmJiJudW1iZXIiIT10eXBlb2YgZm4uY29sSGVhZGVycyYmKF9yPXplZShabikpfXJldHVybiBfcn0sdGhpcy5fZ2V0Q29sV2lkdGhGcm9tU2V0dGluZ3M9''@;'; put 'put ''ZnVuY3Rpb24oRm4pe3ZhciBabjtpZihGbj49MCYmKFpuPUkuZ2V0Q2VsbE1ldGEoMCxGbikud2lkdGgpLCh2b2lkIDA9PT1abnx8Wm49PT1mbi53aWR0aCkmJihabj1mbi5jb2xXaWR0aHMpLG51bGwhPVpuKXtzd2l0Y2goY2QoWm4pKXtjYXNlIm9iamVjdCI6Wm49Wm5bRm5dO2JyZWFrO2Nh''@;'; put 'put ''c2UiZnVuY3Rpb24iOlpuPVpuKEZuKX0ic3RyaW5nIj09dHlwZW9mIFpuJiYoWm49cGFyc2VJbnQoWm4sMTApKX1yZXR1cm4gWm59LHRoaXMuZ2V0Q29sV2lkdGg9ZnVuY3Rpb24oRm4pe3ZhciBabj1JLl9nZXRDb2xXaWR0aEZyb21TZXR0aW5ncyhGbik7cmV0dXJuIHZvaWQgMD09PShabj1J''@;'; put 'put ''LnJ1bkhvb2tzKCJtb2RpZnlDb2xXaWR0aCIsWm4sRm4pKSYmKFpuPU5kZS5ERUZBVUxUX1dJRFRIKSxabn0sdGhpcy5fZ2V0Um93SGVpZ2h0RnJvbVNldHRpbmdzPWZ1bmN0aW9uKEZuKXt2YXIgWm49Zm4ucm93SGVpZ2h0cztpZihudWxsIT1abil7c3dpdGNoKGNkKFpuKSl7Y2FzZSJvYmpl''@;'; put 'put ''Y3QiOlpuPVpuW0ZuXTticmVhaztjYXNlImZ1bmN0aW9uIjpabj1abihGbil9InN0cmluZyI9PXR5cGVvZiBabiYmKFpuPXBhcnNlSW50KFpuLDEwKSl9cmV0dXJuIFpufSx0aGlzLmdldFJvd0hlaWdodD1mdW5jdGlvbihGbil7dmFyIFpuPUkuX2dldFJvd0hlaWdodEZyb21TZXR0aW5ncyhG''@;'; put 'put ''bik7cmV0dXJuIEkucnVuSG9va3MoIm1vZGlmeVJvd0hlaWdodCIsWm4sRm4pfSx0aGlzLmNvdW50U291cmNlUm93cz1mdW5jdGlvbigpe3JldHVybiBfZS5jb3VudFJvd3MoKX0sdGhpcy5jb3VudFNvdXJjZUNvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gX2UuY291bnRGaXJzdFJvd0tleXMoKX0s''@;'; put 'put ''dGhpcy5jb3VudFJvd3M9ZnVuY3Rpb24oKXtyZXR1cm4gdWUuZ2V0TGVuZ3RoKCl9LHRoaXMuY291bnRDb2xzPWZ1bmN0aW9uKCl7dmFyIEZuPWZuLm1heENvbHMsWm49dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpO3JldHVybiBNYXRoLm1pbihG''@;'; put 'put ''bixabil9LHRoaXMuY291bnRSZW5kZXJlZFJvd3M9ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3Ll93dC5kcmF3bj9JLnZpZXcuX3d0Lnd0VGFibGUuZ2V0UmVuZGVyZWRSb3dzQ291bnQoKTotMX0sdGhpcy5jb3VudFZpc2libGVSb3dzPWZ1bmN0aW9uKCl7cmV0dXJuIEkudmlldy5fd3QuZHJh''@;'; put 'put ''d24/SS52aWV3Ll93dC53dFRhYmxlLmdldFZpc2libGVSb3dzQ291bnQoKTotMX0sdGhpcy5jb3VudFJlbmRlcmVkQ29scz1mdW5jdGlvbigpe3JldHVybiBJLnZpZXcuX3d0LmRyYXduP0kudmlldy5fd3Qud3RUYWJsZS5nZXRSZW5kZXJlZENvbHVtbnNDb3VudCgpOi0xfSx0aGlzLmNvdW50''@;'; put 'put ''VmlzaWJsZUNvbHM9ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3Ll93dC5kcmF3bj9JLnZpZXcuX3d0Lnd0VGFibGUuZ2V0VmlzaWJsZUNvbHVtbnNDb3VudCgpOi0xfSx0aGlzLmNvdW50RW1wdHlSb3dzPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJn''@;'; put 'put ''dW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sWm49MDtyZXR1cm4gc2VlKEkuY291bnRSb3dzKCktMSxmdW5jdGlvbihfcil7aWYoSS5pc0VtcHR5Um93KF9yKSlabis9MTtlbHNlIGlmKCEwPT09Rm4pcmV0dXJuITF9KSxabn0sdGhpcy5jb3VudEVtcHR5Q29scz1mdW5jdGlvbigpe3ZhciBGbj1h''@;'; put 'put ''cmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdO2lmKEkuY291bnRSb3dzKCk8MSlyZXR1cm4gMDt2YXIgWm49MDtyZXR1cm4gc2VlKEkuY291bnRDb2xzKCktMSxmdW5jdGlvbihfcil7aWYoSS5pc0VtcHR5Q29sKF9yKSlabis9MTtlbHNlIGlm''@;'; put 'put ''KCEwPT09Rm4pcmV0dXJuITF9KSxabn0sdGhpcy5pc0VtcHR5Um93PWZ1bmN0aW9uKEZuKXtyZXR1cm4gZm4uaXNFbXB0eVJvdy5jYWxsKEksRm4pfSx0aGlzLmlzRW1wdHlDb2w9ZnVuY3Rpb24oRm4pe3JldHVybiBmbi5pc0VtcHR5Q29sLmNhbGwoSSxGbil9LHRoaXMuc2VsZWN0Q2VsbD1m''@;'; put 'put ''dW5jdGlvbihGbixabixfcixYcil7dmFyIGNpPSEoYXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sYzA9IShhcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSl8fGFyZ3VtZW50c1s1XTtyZXR1cm4hYTEoRm4pJiYh''@;'; put 'put ''YTEoWm4pJiZ0aGlzLnNlbGVjdENlbGxzKFtbRm4sWm4sX3IsWHJdXSxjaSxjMCl9LHRoaXMuc2VsZWN0Q2VsbHM9ZnVuY3Rpb24oKXt2YXIgRm49YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltbXV0sWm49IShhcmd1bWVudHMubGVuZ3Ro''@;'; put 'put ''PjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxfcj0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdOyExPT09Wm4mJihDPSEwKTt2YXIgWHI9d3Iuc2VsZWN0Q2VsbHMoRm4pO3JldHVybiBYciYmX3ImJkkubGlz''@;'; put 'put ''dGVuKCksQz0hMSxYcn0sdGhpcy5zZWxlY3RDb2x1bW5zPWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOkZuO3JldHVybiB3ci5zZWxlY3RDb2x1bW5zKEZuLFpuKX0sdGhpcy5zZWxlY3RSb3dzPWZ1bmN0''@;'; put 'put ''aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOkZuO3JldHVybiB3ci5zZWxlY3RSb3dzKEZuLFpuKX0sdGhpcy5kZXNlbGVjdENlbGw9ZnVuY3Rpb24oKXt3ci5kZXNlbGVjdCgpfSx0aGlzLnNlbGVjdEFsbD1mdW5j''@;'; put 'put ''dGlvbigpe3ZhciBGbj0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdLFpuPUZuJiZ0aGlzLmhhc1Jvd0hlYWRlcnMoKSxfcj1GbiYmdGhpcy5oYXNDb2xIZWFkZXJzKCk7Qz0hMCx3ci5zZWxlY3RBbGwoWm4sX3IpLEM9ITF9O3ZhciBI''@;'; put 'put ''MD1mdW5jdGlvbihabixfcil7cmV0dXJuIFpuLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfciwxLCEwKX07ZnVuY3Rpb24gcm8oRm4pe3JldHVybiBmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcignVGhlICInLmNvbmNhdChGbiwnIiBtZXRob2QgY2Fubm90IGJlIGNhbGxlZCBiZWNhdXNl''@;'; put 'put ''IHRoaXMgSGFuZHNvbnRhYmxlIGluc3RhbmNlIGhhcyBiZWVuIGRlc3Ryb3llZCcpKX19dGhpcy5zY3JvbGxWaWV3cG9ydFRvPWZ1bmN0aW9uKEZuLFpuKXt2YXIgX3I9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0mJmFyZ3VtZW50c1syXSxYcj1hcmd1bWVudHMu''@;'; put 'put ''bGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXSYmYXJndW1lbnRzWzNdLGNpPSEoYXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0pfHxhcmd1bWVudHNbNF0sYzA9IV9yLFhpPSFYcixFMD1Gbix6MD1abjtpZihjaSl7dmFyIGtvPU51bWJlci5pc0ludGVnZXIo''@;'; put 'put ''Rm4pLHdvPU51bWJlci5pc0ludGVnZXIoWm4pLFdhPWtvP0gwKHRoaXMucm93SW5kZXhNYXBwZXIsRm4pOnZvaWQgMCxlMj13bz9IMCh0aGlzLmNvbHVtbkluZGV4TWFwcGVyLFpuKTp2b2lkIDA7aWYobnVsbD09PVdhfHxudWxsPT09ZTIpcmV0dXJuITE7RTA9a28/SS5yb3dJbmRleE1hcHBl''@;'; put 'put ''ci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KFdhKTp2b2lkIDAsejA9d28/SS5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KGUyKTp2b2lkIDB9dmFyIEhhPU51bWJlci5pc0ludGVnZXIoRTApLHQyPU51bWJlci5pc0ludGVnZXIoejApO3JldHVy''@;'; put 'put ''biBIYSYmdDI/SS52aWV3LnNjcm9sbFZpZXdwb3J0KEkuX2NyZWF0ZUNlbGxDb29yZHMoRTAsejApLGMwLFhyLF9yLFhpKTpIYSYmITE9PT10Mj9JLnZpZXcuc2Nyb2xsVmlld3BvcnRWZXJ0aWNhbGx5KEUwLGMwLF9yKTohKCF0Mnx8ITEhPT1IYSkmJkkudmlldy5zY3JvbGxWaWV3cG9ydEhv''@;'; put 'put ''cml6b250YWxseSh6MCxYcixYaSl9LHRoaXMuZGVzdHJveT1mdW5jdGlvbigpe2lmKEkuX2NsZWFyVGltZW91dHMoKSxJLl9jbGVhckltbWVkaWF0ZXMoKSxJLnZpZXcmJkkudmlldy5kZXN0cm95KCksX2UmJl9lLmRlc3Ryb3koKSxfZT1udWxsLHRoaXMuZ2V0U2hvcnRjdXRNYW5hZ2VyKCku''@;'; put 'put ''ZGVzdHJveSgpLCR0LmNsZWFyQ2FjaGUoKSxHZGUoSSkpe3ZhciBGbj10aGlzLnJvb3REb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG90LWRpc3BsYXktbGljZW5zZS1pbmZvIik7Rm4mJkZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoRm4pfURwKEkucm9vdEVsZW1lbnQpLFouZGVzdHJveSgp''@;'; put 'put ''LE5lJiZOZS5kZXN0cm95KCksSS5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe0kucm93SW5kZXhNYXBwZXIudW5yZWdpc3RlckFsbCgpLEkuY29sdW1uSW5kZXhNYXBwZXIudW5yZWdpc3RlckFsbCgpLGlyLmdldEl0ZW1zKCkuZm9yRWFjaChmdW5jdGlvbihabil7SWcoWm4sMilbMV0uZGVz''@;'; put 'put ''dHJveSgpfSksaXIuY2xlYXIoKSxJLnJ1bkhvb2tzKCJhZnRlckRlc3Ryb3kiKX0sITApLHpvLmdldFNpbmdsZXRvbigpLmRlc3Ryb3koSSksR2woSSxmdW5jdGlvbihabixfcixYcil7VTIoWm4pP1hyW19yXT1ybyhfcik6Imd1aWQiIT09X3ImJihYcltfcl09bnVsbCl9KSxJLmlzRGVzdHJv''@;'; put 'put ''eWVkPSEwLHVlJiZ1ZS5kZXN0cm95KCksSS5yb3dJbmRleE1hcHBlcj1udWxsLEkuY29sdW1uSW5kZXhNYXBwZXI9bnVsbCx1ZT1udWxsLEJlPW51bGwsd3I9bnVsbCxOZT1udWxsLEk9bnVsbH0sdGhpcy5nZXRBY3RpdmVFZGl0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gTmUuZ2V0QWN0aXZlRWRp''@;'; put 'put ''dG9yKCl9LHRoaXMuZ2V0UGx1Z2luPWZ1bmN0aW9uKEZuKXt2YXIgWm49bGQoRm4pO3JldHVybiJVbmRvUmVkbyI9PT1abj90aGlzLnVuZG9SZWRvOmlyLmdldEl0ZW0oWm4pfSx0aGlzLmdldFBsdWdpbk5hbWU9ZnVuY3Rpb24oRm4pe3JldHVybiBGbj09PXRoaXMudW5kb1JlZG8/dGhpcy51''@;'; put 'put ''bmRvUmVkby5jb25zdHJ1Y3Rvci5QTFVHSU5fS0VZOmlyLmdldElkKEZuKX0sdGhpcy5nZXRJbnN0YW5jZT1mdW5jdGlvbigpe3JldHVybiBJfSx0aGlzLmFkZEhvb2s9ZnVuY3Rpb24oRm4sWm4pe3pvLmdldFNpbmdsZXRvbigpLmFkZChGbixabixJKX0sdGhpcy5oYXNIb29rPWZ1bmN0aW9u''@;'; put 'put ''KEZuKXtyZXR1cm4gem8uZ2V0U2luZ2xldG9uKCkuaGFzKEZuLEkpfHx6by5nZXRTaW5nbGV0b24oKS5oYXMoRm4pfSx0aGlzLmFkZEhvb2tPbmNlPWZ1bmN0aW9uKEZuLFpuKXt6by5nZXRTaW5nbGV0b24oKS5vbmNlKEZuLFpuLEkpfSx0aGlzLnJlbW92ZUhvb2s9ZnVuY3Rpb24oRm4sWm4p''@;'; put 'put ''e3pvLmdldFNpbmdsZXRvbigpLnJlbW92ZShGbixabixJKX0sdGhpcy5ydW5Ib29rcz1mdW5jdGlvbihGbixabixfcixYcixjaSxjMCxYaSl7cmV0dXJuIHpvLmdldFNpbmdsZXRvbigpLnJ1bihJLEZuLFpuLF9yLFhyLGNpLGMwLFhpKX0sdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlPWZ1bmN0''@;'; put 'put ''aW9uKEZuLFpuKXtyZXR1cm4gT2tlKGZuLmxhbmd1YWdlLEZuLFpuKX0sdGhpcy50b0hUTUw9ZnVuY3Rpb24oKXtyZXR1cm4gTDNlKHYpfSx0aGlzLnRvVGFibGVFbGVtZW50PWZ1bmN0aW9uKCl7dmFyIEZuPXYucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBGbi5p''@;'; put 'put ''bnNlcnRBZGphY2VudEhUTUwoImFmdGVyYmVnaW4iLEwzZSh2KSksRm4uZmlyc3RFbGVtZW50Q2hpbGR9LHRoaXMudGltZW91dHM9W10sdGhpcy5fcmVnaXN0ZXJUaW1lb3V0PWZ1bmN0aW9uKEZuKXt2YXIgWm49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJn''@;'; put 'put ''dW1lbnRzWzFdOjAsX3I9Rm47ImZ1bmN0aW9uIj09dHlwZW9mIF9yJiYoX3I9c2V0VGltZW91dChfcixabikpLHRoaXMudGltZW91dHMucHVzaChfcil9LHRoaXMuX2NsZWFyVGltZW91dHM9ZnVuY3Rpb24oKXtVcih0aGlzLnRpbWVvdXRzLGZ1bmN0aW9uKEZuKXtjbGVhclRpbWVvdXQoRm4p''@;'; put 'put ''fSl9LHRoaXMuaW1tZWRpYXRlcz1bXSx0aGlzLl9yZWdpc3RlckltbWVkaWF0ZT1mdW5jdGlvbihGbil7dGhpcy5pbW1lZGlhdGVzLnB1c2goc2V0SW1tZWRpYXRlKEZuKSl9LHRoaXMuX2NsZWFySW1tZWRpYXRlcz1mdW5jdGlvbigpe1VyKHRoaXMuaW1tZWRpYXRlcyxmdW5jdGlvbihGbil7''@;'; put 'put ''Y2xlYXJJbW1lZGlhdGUoRm4pfSl9LHRoaXMuX3JlZnJlc2hCb3JkZXJzPWZ1bmN0aW9uKCl7dmFyIEZuPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sWm49IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8''@;'; put 'put ''fGFyZ3VtZW50c1sxXTtOZS5kZXN0cm95RWRpdG9yKEZuKSxJLnZpZXcucmVuZGVyKCksWm4mJndyLmlzU2VsZWN0ZWQoKSYmTmUucHJlcGFyZUVkaXRvcigpfSx0aGlzLmlzUnRsPWZ1bmN0aW9uKCl7cmV0dXJuInJ0bCI9PT1JLnJvb3RXaW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShJLnJvb3RF''@;'; put 'put ''bGVtZW50KS5kaXJlY3Rpb259LHRoaXMuaXNMdHI9ZnVuY3Rpb24oKXtyZXR1cm4hSS5pc1J0bCgpfSx0aGlzLmdldERpcmVjdGlvbkZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiBJLmlzTHRyKCk/MTotMX07dmFyIGZvPVNxZSh7aGFuZGxlRXZlbnQ6ZnVuY3Rpb24oWm4pe3JldHVybiBJLmlz''@;'; put 'put ''TGlzdGVuaW5nKCkmJnZvaWQgMCE9PShudWxsPT1abj92b2lkIDA6Wm4ua2V5KX0sYmVmb3JlS2V5RG93bjpmdW5jdGlvbihabil7cmV0dXJuIHYucnVuSG9va3MoImJlZm9yZUtleURvd24iLFpuKX0sYWZ0ZXJLZXlEb3duOmZ1bmN0aW9uKFpuKXt2LmlzRGVzdHJveWVkfHxJLnJ1bkhvb2tz''@;'; put 'put ''KCJhZnRlckRvY3VtZW50S2V5RG93biIsWm4pfSxvd25lcldpbmRvdzp0aGlzLnJvb3RXaW5kb3d9KTt0aGlzLmdldFNob3J0Y3V0TWFuYWdlcj1mdW5jdGlvbigpe3JldHVybiBmb307dmFyIElhPWZvLmFkZENvbnRleHQoImdyaWQiKSxYbD17cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IFRvKEkuZ2V0U2VsZWN0ZWQoKSkmJkkuY291bnRSZW5kZXJlZFJvd3MoKT4wJiZJLmNvdW50UmVuZGVyZWRDb2xzKCk+MH0sZ3JvdXA6THFlfTtmby5zZXRBY3RpdmVDb250ZXh0TmFtZSgiZ3JpZCIpLElhLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQ29udHJvbC9NZXRhIiwiQSJdXSxjYWxs''@;'; put 'put ''YmFjazpmdW5jdGlvbigpe0kuc2VsZWN0QWxsKCl9fSx7a2V5czpbWyJDb250cm9sL01ldGEiLCJFbnRlciJdXSxjYWxsYmFjazpmdW5jdGlvbigpe2Zvcih2YXIgWm49SS5nZXRTZWxlY3RlZFJhbmdlKCksX3I9Wm5bWm4ubGVuZ3RoLTFdLmhpZ2hsaWdodCxYcj1fci5yb3csY2k9X3IuY29s''@;'; put 'put ''LGMwPUkuZ2V0RGF0YUF0Q2VsbChYcixjaSksWGk9bmV3IE1hcCxFMD0wO0UwPFpuLmxlbmd0aDtFMCsrKVpuW0UwXS5mb3JBbGwoZnVuY3Rpb24oejAsa28pe3owPj0wJiZrbz49MCYmKHowIT09WHJ8fGtvIT09Y2kpJiYoSS5nZXRDZWxsTWV0YSh6MCxrbykucmVhZE9ubHl8fFhpLnNldCgi''@;'; put 'put ''Ii5jb25jYXQoejAsIngiKS5jb25jYXQoa28pLFt6MCxrbyxjMF0pKX0pO0kuc2V0RGF0YUF0Q2VsbChBcnJheS5mcm9tKFhpLnZhbHVlcygpKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuZ2V0Q2VsbHNDb3VudCgpPjF9fSx7a2V5czpb''@;'; put 'put ''WyJBcnJvd1VwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoLTEsMCl9fSx7a2V5czpbWyJBcnJvd1VwIiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVhdGVDZWxsQ29vcmRz''@;'; put 'put ''KEkucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KDAsMSksSS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5jb2wpKX19LHtrZXlzOltbIkFycm93VXAiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybUVuZCgtMSwwKX19LHtr''@;'; put 'put ''ZXlzOltbIkFycm93VXAiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksX3I9Wm4uZnJvbSxYcj1abi50byxjaT1JLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRk''@;'; put 'put ''ZW5JbmRleCgwLDEpO3dyLnNldFJhbmdlU3RhcnQoX3IuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaSxYci5jb2wpKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8SS5zZWxlY3Rpb24u''@;'; put 'put ''aXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCkpfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoMSwwKX19LHtrZXlzOltbIkFycm93RG93biIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlv''@;'; put 'put ''bigpe3dyLnNldFJhbmdlU3RhcnQoSS5fY3JlYXRlQ2VsbENvb3JkcyhJLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLmNvdW50Um93cygpLTEsLTEpLEkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQuY29sKSl9fSx7a2V5czpbWyJBcnJvd0Rvd24i''@;'; put 'put ''LCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybUVuZCgxLDApfX0se2tleXM6W1siQXJyb3dEb3duIiwiU2hpZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgWm49SS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgp''@;'; put 'put ''LF9yPVpuLmZyb20sWHI9Wm4udG8sY2k9SS5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS5jb3VudFJvd3MoKS0xLC0xKTt3ci5zZXRSYW5nZVN0YXJ0KF9yLmNsb25lKCkpLHdyLnNldFJhbmdlRW5kKEkuX2NyZWF0ZUNlbGxDb29yZHMoY2ksWHIuY29sKSl9LHJ1''@;'; put 'put ''bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiEoSS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fEkuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpKX19LHtrZXlzOltbIkFycm93TGVmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybVN0YXJ0KDAs''@;'; put 'put ''LTEqSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd0xlZnQiLCJDb250cm9sL01ldGEiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgWm4sX3I9SS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csWHI9KFpuPUkuY29sdW1u''@;'; put 'put ''SW5kZXhNYXBwZXIpLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleC5hcHBseShabixSdyhJLmlzUnRsKCk/W0kuY291bnRDb2xzKCktMSwtMV06WzAsMV0pKTt3ci5zZXRSYW5nZVN0YXJ0KEkuX2NyZWF0ZUNlbGxDb29yZHMoX3IsWHIpKX19LHtrZXlzOltbIkFycm93TGVmdCIsIlNoaWZ0Il1d''@;'; put 'put ''LGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtRW5kKDAsLTEqSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd0xlZnQiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabixfcj1JLmdldFNl''@;'; put 'put ''bGVjdGVkUmFuZ2VMYXN0KCksWHI9X3IuZnJvbSxjaT1fci50byxjMD0oWm49SS5jb2x1bW5JbmRleE1hcHBlcikuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4LmFwcGx5KFpuLFJ3KEkuaXNSdGwoKT9bSS5jb3VudENvbHMoKS0xLC0xXTpbMCwxXSkpO3dyLnNldFJhbmdlU3RhcnQoWHIuY2xv''@;'; put 'put ''bmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaS5yb3csYzApKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkpfX0se2tleXM6W1si''@;'; put 'put ''QXJyb3dSaWdodCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3dyLnRyYW5zZm9ybVN0YXJ0KDAsSS5nZXREaXJlY3Rpb25GYWN0b3IoKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0IiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIFpuLF9yPUku''@;'; put 'put ''Z2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS5oaWdobGlnaHQucm93LFhyPShabj1JLmNvbHVtbkluZGV4TWFwcGVyKS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXguYXBwbHkoWm4sUncoSS5pc1J0bCgpP1swLDFdOltJLmNvdW50Q29scygpLTEsLTFdKSk7d3Iuc2V0UmFuZ2VTdGFydChJLl9jcmVh''@;'; put 'put ''dGVDZWxsQ29vcmRzKF9yLFhyKSl9fSx7a2V5czpbWyJBcnJvd1JpZ2h0IiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci50cmFuc2Zvcm1FbmQoMCxJLmdldERpcmVjdGlvbkZhY3RvcigpKX19LHtrZXlzOltbIkFycm93UmlnaHQiLCJTaGlmdCIsIkNvbnRyb2wvTWV0YSJdXSxj''@;'; put 'put ''YXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabixfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksWHI9X3IuZnJvbSxjaT1fci50byxjMD0oWm49SS5jb2x1bW5JbmRleE1hcHBlcikuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4LmFwcGx5KFpuLFJ3KEkuaXNSdGwoKT9b''@;'; put 'put ''MCwxXTpbSS5jb3VudENvbHMoKS0xLC0xXSkpO3dyLnNldFJhbmdlU3RhcnQoWHIuY2xvbmUoKSksd3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3JkcyhjaS5yb3csYzApKX0scnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIShJLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIo''@;'; put 'put ''KXx8SS5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkpfX0se2tleXM6W1siSG9tZSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1wYXJzZUludChJLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQsMTApLF9yPUkuZ2V0U2VsZWN0ZWRS''@;'; put 'put ''YW5nZUxhc3QoKS5oaWdobGlnaHQucm93LFhyPUkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KFpuLDEpO3dyLnNldFJhbmdlU3RhcnQoSS5fY3JlYXRlQ2VsbENvb3JkcyhfcixYcikpfSxydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gSS52aWV3LmlzTWFp''@;'; put 'put ''blRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfX0se2tleXM6W1siSG9tZSIsIlNoaWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3Iuc2V0UmFuZ2VFbmQoSS5fY3JlYXRlQ2VsbENvb3Jkcyh3ci5zZWxlY3RlZFJhbmdlLmN1cnJlbnQoKS5mcm9tLnJvdyxJLmNvbHVtbkluZGV4''@;'; put 'put ''TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCgwLDEpKSl9fSx7a2V5czpbWyJIb21lIiwiQ29udHJvbC9NZXRhIl1dLGNhcHR1cmVDdHJsOiEwLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIFpuPXBhcnNlSW50KEkuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3AsMTApLF9yPXBhcnNl''@;'; put 'put ''SW50KEkuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCwxMCksWHI9SS5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoWm4sMSksY2k9SS5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoX3IsMSk7d3Iuc2V0UmFuZ2VTdGFydChJ''@;'; put 'put ''Ll9jcmVhdGVDZWxsQ29vcmRzKFhyLGNpKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9fSx7a2V5czpbWyJFbmQiXV0sY2FwdHVyZUN0cmw6ITAsY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci5zZXRSYW5n''@;'; put 'put ''ZVN0YXJ0KEkuX2NyZWF0ZUNlbGxDb29yZHMoSS5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLmhpZ2hsaWdodC5yb3csSS5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSS5jb3VudENvbHMoKS0xLC0xKSkpfSxydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gSS52''@;'; put 'put ''aWV3LmlzTWFpblRhYmxlTm90RnVsbHlDb3ZlcmVkQnlPdmVybGF5cygpfX0se2tleXM6W1siRW5kIiwiU2hpZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci5zZXRSYW5nZUVuZChJLl9jcmVhdGVDZWxsQ29vcmRzKHdyLnNlbGVjdGVkUmFuZ2UuY3VycmVudCgpLmZyb20ucm93LEkuY29s''@;'; put 'put ''dW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEkuY291bnRDb2xzKCktMSwtMSkpKX19LHtrZXlzOltbIkVuZCIsIkNvbnRyb2wvTWV0YSJdXSxjYXB0dXJlQ3RybDohMCxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBabj1wYXJzZUludChJLmdldFNldHRpbmdzKCkuZml4''@;'; put 'put ''ZWRSb3dzQm90dG9tLDEwKSxfcj1JLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJLmNvdW50Um93cygpLVpuLTEsLTEpLFhyPUkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEkuY291bnRDb2xzKCktMSwtMSk7d3Iuc2V0UmFuZ2VT''@;'; put 'put ''dGFydChJLl9jcmVhdGVDZWxsQ29vcmRzKF9yLFhyKSl9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiBJLnZpZXcuaXNNYWluVGFibGVOb3RGdWxseUNvdmVyZWRCeU92ZXJsYXlzKCl9fSx7a2V5czpbWyJQYWdlVXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt3ci50cmFuc2Zvcm1TdGFy''@;'; put 'put ''dCgtSS5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlVXAiLCJTaGlmdCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBfcj1JLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkudG8sWHI9TWF0aC5tYXgoX3Iucm93LUkuY291bnRWaXNpYmxlUm93cygpLDApLGNpPUkucm93SW5k''@;'; put 'put ''ZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KFhyLDEpO2lmKG51bGwhPT1jaSl7dmFyIGMwPUkuX2NyZWF0ZUNlbGxDb29yZHMoY2ksX3IuY29sKSxYaT1fci5yb3ctSS52aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCksRTA9TWF0aC5tYXgoYzAucm93LVhpLDApO3dyLnNl''@;'; put 'put ''dFJhbmdlRW5kKGMwKSxJLnNjcm9sbFZpZXdwb3J0VG8oRTApfX19LHtrZXlzOltbIlBhZ2VEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7d3IudHJhbnNmb3JtU3RhcnQoSS5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlRG93biIsIlNoaWZ0Il1dLGNhbGxiYWNrOmZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIF9yPUkuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKS50byxYcj1NYXRoLm1pbihfci5yb3crSS5jb3VudFZpc2libGVSb3dzKCksSS5jb3VudFJvd3MoKS0xKSxjaT1JLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChYciwtMSk7aWYobnVsbCE9PWNp''@;'; put 'put ''KXt2YXIgYzA9SS5fY3JlYXRlQ2VsbENvb3JkcyhjaSxfci5jb2wpLFhpPV9yLnJvdy1JLnZpZXcuZ2V0Rmlyc3RGdWxseVZpc2libGVSb3coKSxFMD1NYXRoLm1pbihjMC5yb3ctWGksSS5jb3VudFJvd3MoKS0xKTt3ci5zZXRSYW5nZUVuZChjMCksSS5zY3JvbGxWaWV3cG9ydFRvKEUwKX19''@;'; put 'put ''fSx7a2V5czpbWyJUYWIiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oWm4pe3ZhciBfcj0iZnVuY3Rpb24iPT10eXBlb2YgZm4udGFiTW92ZXM/Zm4udGFiTW92ZXMoWm4pOmZuLnRhYk1vdmVzO3dyLnRyYW5zZm9ybVN0YXJ0KF9yLnJvdyxfci5jb2wsITApfX0se2tleXM6W1siU2hpZnQiLCJUYWIi''@;'; put 'put ''XV0sY2FsbGJhY2s6ZnVuY3Rpb24oWm4pe3ZhciBfcj0iZnVuY3Rpb24iPT10eXBlb2YgZm4udGFiTW92ZXM/Zm4udGFiTW92ZXMoWm4pOmZuLnRhYk1vdmVzO3dyLnRyYW5zZm9ybVN0YXJ0KC1fci5yb3csLV9yLmNvbCl9fV0sWGwpLEczZSgpLmZvckVhY2goZnVuY3Rpb24oRm4pe3ZhciBa''@;'; put 'put ''bj1XWihGbik7aXIuYWRkSXRlbShGbixuZXcgWm4odikpfSksem8uZ2V0U2luZ2xldG9uKCkucnVuKEksImNvbnN0cnVjdCIpfXZhciBSU2U9e19ob29rc1N0b3JhZ2U6T2JqZWN0LmNyZWF0ZShudWxsKSxhZGRIb29rOmZ1bmN0aW9uKGcsaCl7cmV0dXJuIHRoaXMuX2hvb2tzU3RvcmFnZVtn''@;'; put 'put ''XXx8KHRoaXMuX2hvb2tzU3RvcmFnZVtnXT1bXSksdGhpcy5ob3QuYWRkSG9vayhnLGgpLHRoaXMuX2hvb2tzU3RvcmFnZVtnXS5wdXNoKGgpLHRoaXN9LHJlbW92ZUhvb2tzQnlLZXk6ZnVuY3Rpb24oZyl7dmFyIGg9dGhpcztVcih0aGlzLl9ob29rc1N0b3JhZ2VbZ118fFtdLGZ1bmN0aW9u''@;'; put 'put ''KHYpe2guaG90LnJlbW92ZUhvb2soZyx2KX0pfSxjbGVhckhvb2tzOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcztHbCh0aGlzLl9ob29rc1N0b3JhZ2UsZnVuY3Rpb24oaCx2KXtyZXR1cm4gZy5yZW1vdmVIb29rc0J5S2V5KHYpfSksdGhpcy5faG9va3NTdG9yYWdlPXt9fX07U2coUlNlLCJNSVhJ''@;'; put 'put ''Tl9OQU1FIiwiaG9va3NSZWZSZWdpc3RlcmVyIix7d3JpdGFibGU6ITEsZW51bWVyYWJsZTohMX0pO2NvbnN0IFJxZT1SU2U7ZnVuY3Rpb24gbDZlKGQpe3JldHVybihsNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rp''@;'; put 'put ''b24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBCU2UoZCxnKXsobnVsbD09''@;'; put 'put ''Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBzNmUoZCxnKXtyZXR1cm4oczZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1''@;'; put 'put ''bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gWnFlKGQsZyl7aWYoZyYmKCJvYmplY3QiPT09bDZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0''@;'; put 'put ''cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB6cWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxl''@;'; put 'put ''ZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBtdGUoZCl7cmV0dXJuKG10ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9u''@;'; put 'put ''IFBTZShkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIEZTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1l''@;'; put 'put ''cmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEhTZShkLGcsaCl7cmV0dXJuIGcmJkZTZShkLnByb3RvdHlwZSxnKSxoJiZGU2UoZCxoKSxPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfXZhciByZj1PYmplY3QuZnJlZXplKHtWSVJHSU46IlNUQVRFX1ZJUkdJTiIsRURJVElORzoiU1RBVEVfRURJVElORyIsV0FJVElORzoiU1RBVEVfV0FJVElORyIsRklOSVNIRUQ6IlNUQVRFX0ZJTklTSEVEIn0pLHU2ZT0i''@;'; put 'put ''YmFzZUVkaXRvciIsa089ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe1BTZSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5pbnN0YW5jZT1nLHRoaXMuc3RhdGU9cmYuVklSR0lOLHRoaXMuX29wZW5lZD0hMSx0aGlzLl9mdWxsRWRpdE1vZGU9ITEsdGhpcy5fY2xvc2VDYWxsYmFjaz1udWxsLHRo''@;'; put 'put ''aXMuVEQ9bnVsbCx0aGlzLnJvdz1udWxsLHRoaXMuY29sPW51bGwsdGhpcy5wcm9wPW51bGwsdGhpcy5vcmlnaW5hbFZhbHVlPW51bGwsdGhpcy5jZWxsUHJvcGVydGllcz1udWxsLHRoaXMuaW5pdCgpfXJldHVybiBIU2UoZCxbe2tleToiX2ZpcmVDYWxsYmFja3MiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KGgpe3RoaXMuX2Nsb3NlQ2FsbGJhY2smJih0aGlzLl9jbG9zZUNhbGxiYWNrKGgpLHRoaXMuX2Nsb3NlQ2FsbGJhY2s9bnVsbCl9fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IEVycm9yKCJFZGl0b3IgZ2V0''@;'; put 'put ''VmFsdWUoKSBtZXRob2QgdW5pbXBsZW1lbnRlZCIpfX0se2tleToic2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhyb3cgRXJyb3IoIkVkaXRvciBzZXRWYWx1ZSgpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3Rocm93IEVycm9yKCJF''@;'; put 'put ''ZGl0b3Igb3BlbigpIG1ldGhvZCB1bmltcGxlbWVudGVkIil9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBFcnJvcigiRWRpdG9yIGNsb3NlKCkgbWV0aG9kIHVuaW1wbGVtZW50ZWQiKX19LHtrZXk6InByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxaKXt0''@;'; put 'put ''aGlzLlREPUMsdGhpcy5yb3c9aCx0aGlzLmNvbD12LHRoaXMucHJvcD15LHRoaXMub3JpZ2luYWxWYWx1ZT1JLHRoaXMuY2VsbFByb3BlcnRpZXM9Wix0aGlzLnN0YXRlPXJmLlZJUkdJTn19LHtrZXk6ImV4dGVuZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24oaCl7IWZ1bmN0''@;'; put 'put ''aW9uIFZxZShkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2Nv''@;'; put 'put ''bnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZzNmUoZCxnKX0oeSxoKTt2YXIgdj1mdW5jdGlvbiBqcWUoZCl7dmFyIGc9ZnVuY3Rpb24gR3FlKCl7aWYo''@;'; put 'put ''InVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxl''@;'; put 'put ''Y3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9bXRlKGQpO2lmKGcpe3ZhciBDPW10ZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMp''@;'; put 'put ''fWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWnFlKHRoaXMseSl9fSh5KTtmdW5jdGlvbiB5KCl7cmV0dXJuIFBTZSh0aGlzLHkpLHYuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBIU2UoeSl9KHRoaXMuY29uc3RydWN0b3IpfX0se2tleToic2F2ZVZhbHVlIix2''@;'; put 'put ''YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciBDLEksWix1ZSx5PXRoaXM7aWYodil7dmFyIF9lPXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpO0M9TWF0aC5tYXgoTWF0aC5taW4oX2VbMF0sX2VbMl0pLDApLEk9TWF0aC5tYXgoTWF0aC5taW4oX2VbMV0sX2VbM10pLDApLFo9TWF0aC5tYXgoX2Vb''@;'; put 'put ''MF0sX2VbMl0pLHVlPU1hdGgubWF4KF9lWzFdLF9lWzNdKX1lbHNle3ZhciBCZT1bdGhpcy5yb3csdGhpcy5jb2wsbnVsbCxudWxsXTtDPUJlWzBdLEk9QmVbMV0sWj1CZVsyXSx1ZT1CZVszXX12YXIgTmU9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUdldENlbGxDb29yZHMiLEMsSSk7aWYo''@;'; put 'put ''QXJyYXkuaXNBcnJheShOZSkpe3ZhciBLZT1mdW5jdGlvbiBCcWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gTnFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBIcWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wm''@;'; put 'put ''JmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1''@;'; put 'put ''ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBGcWUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEJTZShkLGcpO3ZhciBoPU9i''@;'; put 'put ''amVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/''@;'; put 'put ''OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gQlNlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBQcWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4g''@;'; put 'put ''b3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShOZSwyKTtDPUtlWzBdLEk9S2VbMV19dmFyIE90PXRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIp''@;'; put 'put ''LCR0PXtydW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gVG8oeS5ob3QuZ2V0U2VsZWN0ZWQoKSl9LGdyb3VwOnU2ZX07dGhpcy5pc0luRnVsbEVkaXRNb2RlKCkmJk90LmFkZFNob3J0Y3V0cyhbe2tleXM6W1siQXJyb3dVcCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlv''@;'; put 'put ''bi50cmFuc2Zvcm1TdGFydCgtMSwwKX19LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgxLDApfX0se2tleXM6W1siQXJyb3dMZWZ0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7eS5ob3Quc2VsZWN0aW9uLnRy''@;'; put 'put ''YW5zZm9ybVN0YXJ0KDAsLTEqeS5ob3QuZ2V0RGlyZWN0aW9uRmFjdG9yKCkpfX0se2tleXM6W1siQXJyb3dSaWdodCJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgwLHkuaG90LmdldERpcmVjdGlvbkZhY3RvcigpKX19XSwkdCksdGhpcy5o''@;'; put 'put ''b3QucG9wdWxhdGVGcm9tQXJyYXkoQyxJLGgsWix1ZSwiZWRpdCIpfX0se2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMuc3RhdGU9PT1yZi5WSVJHSU4pe3ZhciB5PXRoaXMuaG90LEM9eS5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3Vh''@;'; put 'put ''bEluZGV4KHRoaXMucm93KSxJPXkuY29sdW1uSW5kZXhNYXBwZXIuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh0aGlzLmNvbCk7aWYoeS52aWV3LnNjcm9sbFZpZXdwb3J0KHkuX2NyZWF0ZUNlbGxDb29yZHMoQyxJKSksdGhpcy5zdGF0ZT1yZi5FRElUSU5HLHRoaXMuaXNJbkZ1bGxF''@;'; put 'put ''ZGl0TW9kZSgpKXt2YXIgWj0ic3RyaW5nIj09dHlwZW9mIGg/aDpldSh0aGlzLm9yaWdpbmFsVmFsdWUpO3RoaXMuc2V0VmFsdWUoWil9dGhpcy5vcGVuKHYpLHRoaXMuX29wZW5lZD0hMCx0aGlzLmZvY3VzKCkseS52aWV3LnJlbmRlcigpLHkucnVuSG9va3MoImFmdGVyQmVnaW5FZGl0aW5n''@;'; put 'put ''Iix0aGlzLnJvdyx0aGlzLmNvbCl9fX0se2tleToiZmluaXNoRWRpdGluZyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBJLEM9dGhpcztpZih5KXt2YXIgWj10aGlzLl9jbG9zZUNhbGxiYWNrO3RoaXMuX2Nsb3NlQ2FsbGJhY2s9ZnVuY3Rpb24oTmUpe1omJlooTmUpLHkoTmUpLEMuaG90''@;'; put 'put ''LnZpZXcucmVuZGVyKCl9fWlmKCF0aGlzLmlzV2FpdGluZygpKXt2YXIgX2U9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7aWYoX2UucmVtb3ZlU2hvcnRjdXRzQnlHcm91cCh1NmUpLF9lLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAobGVlKSx0aGlz''@;'; put 'put ''LnN0YXRlPT09cmYuVklSR0lOKXJldHVybiB2b2lkIHRoaXMuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXtDLl9maXJlQ2FsbGJhY2tzKCEwKX0pO2lmKHRoaXMuc3RhdGU9PT1yZi5FRElUSU5HKXtpZihoKXJldHVybiB0aGlzLmNhbmNlbENoYW5nZXMoKSx2b2lkIHRoaXMuaG90''@;'; put 'put ''LnZpZXcucmVuZGVyKCk7dmFyIEJlPXRoaXMuZ2V0VmFsdWUoKTtJPXRoaXMuaG90LmdldFNldHRpbmdzKCkudHJpbVdoaXRlc3BhY2U/W1sic3RyaW5nIj09dHlwZW9mIEJlP1N0cmluZy5wcm90b3R5cGUudHJpbS5jYWxsKEJlfHwiIik6QmVdXTpbW0JlXV0sdGhpcy5zdGF0ZT1yZi5XQUlU''@;'; put 'put ''SU5HLHRoaXMuc2F2ZVZhbHVlKEksdiksdGhpcy5ob3QuZ2V0Q2VsbFZhbGlkYXRvcih0aGlzLmNlbGxQcm9wZXJ0aWVzKT90aGlzLmhvdC5hZGRIb29rT25jZSgicG9zdEFmdGVyVmFsaWRhdGUiLGZ1bmN0aW9uKE5lKXtDLnN0YXRlPXJmLkZJTklTSEVELEMuZGlzY2FyZEVkaXRvcihOZSl9''@;'; put 'put ''KToodGhpcy5zdGF0ZT1yZi5GSU5JU0hFRCx0aGlzLmRpc2NhcmRFZGl0b3IoITApKX19fX0se2tleToiY2FuY2VsQ2hhbmdlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnN0YXRlPXJmLkZJTklTSEVELHRoaXMuZGlzY2FyZEVkaXRvcigpfX0se2tleToiZGlzY2FyZEVkaXRvciIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oaCl7dGhpcy5zdGF0ZT09PXJmLkZJTklTSEVEJiYoITE9PT1oJiYhMCE9PXRoaXMuY2VsbFByb3BlcnRpZXMuYWxsb3dJbnZhbGlkPyh0aGlzLmhvdC5zZWxlY3RDZWxsKHRoaXMucm93LHRoaXMuY29sKSx0aGlzLmZvY3VzKCksdGhpcy5zdGF0ZT1yZi5FRElUSU5HLHRoaXMu''@;'; put 'put ''X2ZpcmVDYWxsYmFja3MoITEpKToodGhpcy5jbG9zZSgpLHRoaXMuX29wZW5lZD0hMSx0aGlzLl9mdWxsRWRpdE1vZGU9ITEsdGhpcy5zdGF0ZT1yZi5WSVJHSU4sdGhpcy5fZmlyZUNhbGxiYWNrcyghMCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5h''@;'; put 'put ''bWUoImdyaWQiKSkpfX0se2tleToiZW5hYmxlRnVsbEVkaXRNb2RlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2Z1bGxFZGl0TW9kZT0hMH19LHtrZXk6ImlzSW5GdWxsRWRpdE1vZGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Z1bGxFZGl0TW9kZX19LHtrZXk6ImlzT3BlbmVk''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcGVuZWR9fSx7a2V5OiJpc1dhaXRpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU9PT1yZi5XQUlUSU5HfX0se2tleToiZ2V0RWRpdGVkQ2VsbFJlY3QiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGgsdj10aGlzLmdl''@;'; put 'put ''dEVkaXRlZENlbGwoKTtpZih2KXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dCxDPXkud3RPdmVybGF5cyxJPXkud3RWaWV3cG9ydCxaPXRoaXMuaG90LnJvb3RXaW5kb3csdWU9anUodiksX2U9RTIodiksQmU9anUodGhpcy5ob3Qucm9vdEVsZW1lbnQpLE5lPUUyKHRoaXMuaG90LnJvb3RFbGVt''@;'; put 'put ''ZW50KSxLZT1DLnRvcE92ZXJsYXkuaG9sZGVyLHB0PUMuaW5saW5lU3RhcnRPdmVybGF5LmhvbGRlcixPdD1LZSE9PVo/S2Uuc2Nyb2xsVG9wOjAsJHQ9cHQhPT1aP3B0LnNjcm9sbExlZnQ6MCxmbj1aLmlubmVyV2lkdGgtQmUubGVmdC1OZSxpcj0obnVsbCE9PShoPUMuZ2V0UGFyZW50T3Zl''@;'; put 'put ''cmxheSh2KSkmJnZvaWQgMCE9PWg/aDp0aGlzLmhvdC52aWV3Ll93dCkud3RUYWJsZSxtcj1pci5uYW1lLFNyPVsibWFzdGVyIiwiaW5saW5lX3N0YXJ0Il0uaW5jbHVkZXMobXIpP090OjAsd3I9WyJtYXN0ZXIiLCJ0b3AiLCJib3R0b20iXS5pbmNsdWRlcyhtcik/JHQ6MCx5aT11ZS50b3At''@;'; put 'put ''QmUudG9wLSh1ZS50b3A9PT1CZS50b3A/MDoxKS1TcixLaT0wO0tpPXRoaXMuaG90LmlzUnRsKCk/Wi5pbm5lcldpZHRoLXVlLmxlZnQtX2UtZm4tMSt3cjp1ZS5sZWZ0LUJlLmxlZnQtMS13cixbInRvcCIsInRvcF9pbmxpbmVfc3RhcnRfY29ybmVyIl0uaW5jbHVkZXMobXIpJiYoeWkrPUMu''@;'; put 'put ''dG9wT3ZlcmxheS5nZXRPdmVybGF5T2Zmc2V0KCkpLFsiaW5saW5lX3N0YXJ0IiwidG9wX2lubGluZV9zdGFydF9jb3JuZXIiXS5pbmNsdWRlcyhtcikmJihLaSs9TWF0aC5hYnMoQy5pbmxpbmVTdGFydE92ZXJsYXkuZ2V0T3ZlcmxheU9mZnNldCgpKSk7dmFyIFNvPXRoaXMuaG90Lmhhc0Nv''@;'; put 'put ''bEhlYWRlcnMoKSxQbz10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMucm93KSxTYT10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHRoaXMuY29sKSxsYT10aGlzLmhvdC5yb3dJbmRl''@;'; put 'put ''eE1hcHBlci5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpLXRoaXMuaG90LnZpZXcuX3d0LmdldFNldHRpbmcoImZpeGVkUm93c0JvdHRvbSIpOyhTbyYmUG88PTB8fFBvPT09bGEpJiYoeWkrPTEpLFNhPD0wJiYoS2krPTEpO3ZhciBhbD1JLnJvd3NSZW5kZXJDYWxjdWxhdG9yLnN0YXJ0''@;'; put 'put ''UG9zaXRpb24sUnM9SS5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvci5zdGFydFBvc2l0aW9uLEgwPU1hdGguYWJzKEMuaW5saW5lU3RhcnRPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCkpLHJvPUMudG9wT3ZlcmxheS5nZXRTY3JvbGxQb3NpdGlvbigpLGZvPUJjKHRoaXMuaG90LnJvb3REb2N1''@;'; put 'put ''bWVudCksSWE9di5vZmZzZXRUb3ArYWwtcm8sWGw9MDtpZih0aGlzLmhvdC5pc1J0bCgpKXt2YXIgRm49di5vZmZzZXRMZWZ0O1hsPUZuPj0wP2lyLmdldFdpZHRoKCktdi5vZmZzZXRMZWZ0Ok1hdGguYWJzKEZuKSxYbCs9UnMtSDAtX2V9ZWxzZSBYbD12Lm9mZnNldExlZnQrUnMtSDA7dmFy''@;'; put 'put ''IFpuPU13KHRoaXMuVEQsdGhpcy5ob3Qucm9vdFdpbmRvdyksX3I9dGhpcy5ob3QuaXNSdGwoKT8iYm9yZGVyUmlnaHRXaWR0aCI6ImJvcmRlckxlZnRXaWR0aCIsWHI9cGFyc2VJbnQoWm5bX3JdLDEwKT4wPzA6MSxjaT1wYXJzZUludChabi5ib3JkZXJUb3BXaWR0aCwxMCk+MD8wOjEsYzA9''@;'; put 'put ''RTIodikrWHIsWGk9RDEodikrY2ksRTA9VWJlKEtlKT9mbzowLHowPVFiZShwdCk/Zm86MCxrbz10aGlzLmhvdC52aWV3Lm1heGltdW1WaXNpYmxlRWxlbWVudFdpZHRoKFhsKS1FMCtYcjtyZXR1cm57dG9wOnlpLHN0YXJ0OktpLGhlaWdodDpYaSxtYXhIZWlnaHQ6TWF0aC5tYXgodGhpcy5o''@;'; put 'put ''b3Qudmlldy5tYXhpbXVtVmlzaWJsZUVsZW1lbnRIZWlnaHQoSWEpLXowK2NpLDIzKSx3aWR0aDpjMCxtYXhXaWR0aDprb319fX0se2tleToiZ2V0RWRpdGVkQ2VsbHNMYXllckNsYXNzIix2YWx1ZTpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmNoZWNrRWRpdG9yU2VjdGlvbigpKXtjYXNlImlu''@;'; put 'put ''bGluZS1zdGFydCI6cmV0dXJuImh0X2Nsb25lX2xlZnQgaHRfY2xvbmVfaW5saW5lX3N0YXJ0IjtjYXNlImJvdHRvbSI6cmV0dXJuImh0X2Nsb25lX2JvdHRvbSI7Y2FzZSJib3R0b20taW5saW5lLXN0YXJ0LWNvcm5lciI6cmV0dXJuImh0X2Nsb25lX2JvdHRvbV9sZWZ0X2Nvcm5lciBodF9j''@;'; put 'put ''bG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lciI7Y2FzZSJ0b3AiOnJldHVybiJodF9jbG9uZV90b3AiO2Nhc2UidG9wLWlubGluZS1zdGFydC1jb3JuZXIiOnJldHVybiJodF9jbG9uZV90b3BfbGVmdF9jb3JuZXIgaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIiO2RlZmF1''@;'; put 'put ''bHQ6cmV0dXJuImh0X2Nsb25lX21hc3RlciJ9fX0se2tleToiZ2V0RWRpdGVkQ2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3QuZ2V0Q2VsbCh0aGlzLnJvdyx0aGlzLmNvbCwhMCl9fSx7a2V5OiJjaGVja0VkaXRvclNlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9''@;'; put 'put ''dGhpcy5ob3QuY291bnRSb3dzKCksdj0iIjtyZXR1cm4gdGhpcy5yb3c8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NUb3A/dj10aGlzLmNvbDx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0PyJ0b3AtaW5saW5lLXN0YXJ0LWNvcm5lciI6InRvcCI6dGhp''@;'; put 'put ''cy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NCb3R0b20mJnRoaXMucm93Pj1oLXRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzQm90dG9tP3Y9dGhpcy5jb2w8dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydD8iYm90dG9tLWlubGluZS1zdGFydC1jb3Ju''@;'; put 'put ''ZXIiOiJib3R0b20iOnRoaXMuY29sPHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQmJih2PSJpbmxpbmUtc3RhcnQiKSx2fX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImJhc2UifX1dKSxkfSgpO2Z1bmN0aW9uIFlxZSgpe3ZhciBn''@;'; put 'put ''LGQ9e21pbkhlaWdodDoyMDAsbWF4SGVpZ2h0OjMwMCxtaW5XaWR0aDoxMDAsbWF4V2lkdGg6MzAwfSxoPWRvY3VtZW50LmJvZHksdj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIikseT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJTUEFOIiksQz1mdW5jdGlvbihwdCxPdCwkdCl7cHQuYWRk''@;'; put 'put ''RXZlbnRMaXN0ZW5lcihPdCwkdCwhMSl9LEk9ZnVuY3Rpb24ocHQsT3QsJHQpe3B0LnJlbW92ZUV2ZW50TGlzdGVuZXIoT3QsJHQsITEpfSxaPWZ1bmN0aW9uKHB0KXt2YXIgT3QsJHQ7cHQ/L15bYS16QS1aIFwuLFxcXC9cfDAtOV0kLy50ZXN0KHB0KXx8KHB0PSIuIik6cHQ9IiIsdm9pZCAw''@;'; put 'put ''IT09di50ZXh0Q29udGVudD92LnRleHRDb250ZW50PWcudmFsdWUrcHQ6di5kYXRhPWcudmFsdWUrcHQseS5zdHlsZS5mb250U2l6ZT1OZShnKS5mb250U2l6ZSx5LnN0eWxlLmZvbnRGYW1pbHk9TmUoZykuZm9udEZhbWlseSx5LnN0eWxlLndoaXRlU3BhY2U9InByZSIsaC5hcHBlbmRDaGls''@;'; put 'put ''ZCh5KSxPdD15LmNsaWVudFdpZHRoKzIsaC5yZW1vdmVDaGlsZCh5KSxnLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiLGcuc3R5bGUud2lkdGg9ZC5taW5XaWR0aD5PdD9kLm1pbldpZHRoKyJweCI6T3Q+ZC5tYXhXaWR0aD9kLm1heFdpZHRoKyJweCI6T3QrInB4IixkLm1pbkhlaWdo''@;'; put 'put ''dD4oJHQ9Zy5zY3JvbGxIZWlnaHQ/Zy5zY3JvbGxIZWlnaHQtMTowKT9nLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiOmQubWF4SGVpZ2h0PCR0PyhnLnN0eWxlLmhlaWdodD1kLm1heEhlaWdodCsicHgiLGcuc3R5bGUub3ZlcmZsb3dZPSJ2aXNpYmxlIik6Zy5zdHlsZS5oZWlnaHQ9''@;'; put 'put ''JHQrInB4In0sdWU9ZnVuY3Rpb24oKXt3aW5kb3cuc2V0VGltZW91dChaLDApfTtmdW5jdGlvbiBOZShLZSl7cmV0dXJuIEtlLmN1cnJlbnRTdHlsZXx8ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShLZSl9cmV0dXJue2luaXQ6ZnVuY3Rpb24ocHQsT3QsJHQpeyFmdW5j''@;'; put 'put ''dGlvbihwdCxPdCwkdCl7Zz1wdCxmdW5jdGlvbihwdCl7aWYocHQmJnB0Lm1pbkhlaWdodClpZigiaW5oZXJpdCI9PXB0Lm1pbkhlaWdodClkLm1pbkhlaWdodD1nLmNsaWVudEhlaWdodDtlbHNle3ZhciBPdD1wYXJzZUludChwdC5taW5IZWlnaHQpO2lzTmFOKE90KXx8KGQubWluSGVpZ2h0''@;'; put 'put ''PU90KX1pZihwdCYmcHQubWF4SGVpZ2h0KWlmKCJpbmhlcml0Ij09cHQubWF4SGVpZ2h0KWQubWF4SGVpZ2h0PWcuY2xpZW50SGVpZ2h0O2Vsc2V7dmFyICR0PXBhcnNlSW50KHB0Lm1heEhlaWdodCk7aXNOYU4oJHQpfHwoZC5tYXhIZWlnaHQ9JHQpfWlmKHB0JiZwdC5taW5XaWR0aClpZigi''@;'; put 'put ''aW5oZXJpdCI9PXB0Lm1pbldpZHRoKWQubWluV2lkdGg9Zy5jbGllbnRXaWR0aDtlbHNle3ZhciBmbj1wYXJzZUludChwdC5taW5XaWR0aCk7aXNOYU4oZm4pfHwoZC5taW5XaWR0aD1mbil9aWYocHQmJnB0Lm1heFdpZHRoKWlmKCJpbmhlcml0Ij09cHQubWF4V2lkdGgpZC5tYXhXaWR0aD1n''@;'; put 'put ''LmNsaWVudFdpZHRoO2Vsc2V7dmFyIExuPXBhcnNlSW50KHB0Lm1heFdpZHRoKTtpc05hTihMbil8fChkLm1heFdpZHRoPUxuKX15LmZpcnN0Q2hpbGR8fCh5LmNsYXNzTmFtZT0iYXV0b1Jlc2l6ZSIseS5zdHlsZS5kaXNwbGF5PSJpbmxpbmUtYmxvY2siLHkuYXBwZW5kQ2hpbGQodikpfShP''@;'; put 'put ''dCksIlRFWFRBUkVBIj09Zy5ub2RlTmFtZSYmKGcuc3R5bGUucmVzaXplPSJub25lIixnLnN0eWxlLm92ZXJmbG93WT0iIixnLnN0eWxlLmhlaWdodD1kLm1pbkhlaWdodCsicHgiLGcuc3R5bGUubWluV2lkdGg9ZC5taW5XaWR0aCsicHgiLGcuc3R5bGUubWF4V2lkdGg9ZC5tYXhXaWR0aCsi''@;'; put 'put ''cHgiLGcuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iKSwkdCYmKEMoZywiY2hhbmdlIixaKSxDKGcsImN1dCIsdWUpLEMoZywicGFzdGUiLHVlKSxDKGcsImRyb3AiLHVlKSxDKGcsImtleWRvd24iLHVlKSxDKGcsImZvY3VzIixaKSxDKGcsImNvbXBvc2l0aW9uc3RhcnQiLHVlKSxDKGcsImNv''@;'; put 'put ''bXBvc2l0aW9udXBkYXRlIix1ZSksQyhnLCJjb21wb3NpdGlvbmVuZCIsdWUpKSxaKCl9KHB0LE90LCR0KX0sdW5PYnNlcnZlOmZ1bmN0aW9uKCl7SShnLCJjaGFuZ2UiLFopLEkoZywiY3V0Iix1ZSksSShnLCJwYXN0ZSIsdWUpLEkoZywiZHJvcCIsdWUpLEkoZywia2V5ZG93biIsdWUpLEko''@;'; put 'put ''ZywiZm9jdXMiLFopLEkoZywiY29tcG9zaXRpb25zdGFydCIsdWUpLEkoZywiY29tcG9zaXRpb251cGRhdGUiLHVlKSxJKGcsImNvbXBvc2l0aW9uZW5kIix1ZSl9LHJlc2l6ZTpafX1mdW5jdGlvbiBOU2UoZCxnKXtmb3IodmFyIGg9ZzNlKGcpLHY9Zy52YWx1ZS5zcGxpdCgiXG4iKSx5PWgs''@;'; put 'put ''Qz0wLEk9MDtJPHYubGVuZ3RoO0krKyl7MCE9PUkmJihDKz12W0ktMV0ubGVuZ3RoKzEpO3ZhciB1ZT1DK3ZbSV0ubGVuZ3RoO2lmKCJob21lIj09PWQ/eT1DOiJlbmQiPT09ZCYmKHk9dWUpLGg8PXVlKWJyZWFrfVZaKGcseSl9ZnVuY3Rpb24gYzZlKGQpe3JldHVybihjNmU9ImZ1bmN0aW9u''@;'; put 'put ''Ij09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5w''@;'; put 'put ''cm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBWU2UoZCxnKXtyZXR1cm4gZnVuY3Rpb24gWHFlKGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBKcWUoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBT''@;'; put 'put ''eW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31j''@;'; put 'put ''YXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBRcWUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGpTZShkLGcpO3Zh''@;'; put 'put ''ciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1o''@;'; put 'put ''fHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4galNlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBVcWUoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNl''@;'; put 'put ''LlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGpTZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFy''@;'; put 'put ''cmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFpTZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0h''@;'; put 'put ''MCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGZ6KCl7cmV0dXJuIGZ6PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1xcWUoZyxoKTtpZih5KXt2YXIgQz1P''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGZ6LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBxcWUoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093''@;'; put 'put ''blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPU5TKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGY2ZShkLGcpe3JldHVybihmNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2''@;'; put 'put ''fSkoZCxnKX1mdW5jdGlvbiBuZXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1jNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3Ig''@;'; put 'put ''dW5kZWZpbmVkIik7cmV0dXJuIHpTZShkKX1mdW5jdGlvbiB6U2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIE5TKGQp''@;'; put 'put ''e3JldHVybihOUz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfUIyKGtPLFJxZSk7dmFyIHZ0ZT0iaHRfZWRpdG9yX2hpZGRlbiIsR1Nl''@;'; put 'put ''PSJ0ZXh0RWRpdG9yIixWUz1mdW5jdGlvbihkKXshZnVuY3Rpb24gZWV0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5''@;'; put 'put ''cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmY2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0''@;'; put 'put ''aW9uIHRldChkKXt2YXIgZz1mdW5jdGlvbiByZXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBC''@;'; put 'put ''b29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1OUyhkKTtpZihnKXt2YXIgQz1OUyh0aGlzKS5jb25zdHJ1Y3Rvcjt5''@;'; put 'put ''PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbmV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBLcWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcg''@;'; put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMSh6U2UoeSkpLHkuYXV0b1Jlc2l6ZT1ZcWUoKSx5LlRFWFRBUkVBPXZvaWQgMCx5LnRleHRhcmVhU3R5bGU9dm9pZCAwLHku''@;'; put 'put ''VEVYVEFSRUFfUEFSRU5UPXZvaWQgMCx5LnRleHRhcmVhUGFyZW50U3R5bGU9dm9pZCAwLHkubGF5ZXJDbGFzcz12b2lkIDAseS5jcmVhdGVFbGVtZW50cygpLHkuYmluZEV2ZW50cygpLHkuaG90LmFkZEhvb2tPbmNlKCJhZnRlckRlc3Ryb3kiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVzdHJv''@;'; put 'put ''eSgpfSkseX1yZXR1cm4gZnVuY3Rpb24gJHFlKGQsZyxoKXtnJiZaU2UoZC5wcm90b3R5cGUsZyksaCYmWlNlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0''@;'; put 'put ''aGlzLlRFWFRBUkVBLnZhbHVlfX0se2tleToic2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuVEVYVEFSRUEudmFsdWU9eX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLnJlZnJlc2hEaW1lbnNpb25zKCksdGhpcy5zaG93RWRpdGFibGVFbGVt''@;'; put 'put ''ZW50KCksdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImVkaXRvciIpLHRoaXMuYWRkSG9vaygiYWZ0ZXJEb2N1bWVudEtleURvd24iLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uQWZ0ZXJEb2N1bWVudEtleURvd24oSSl9KSx0aGlzLnJlZ2lzdGVy''@;'; put 'put ''U2hvcnRjdXRzKCl9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmF1dG9SZXNpemUudW5PYnNlcnZlKCksdGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT10aGlzLlRFWFRBUkVBJiZ0aGlzLmhvdC5saXN0ZW4oKSx0aGlzLmhpZGVFZGl0YWJsZUVsZW1l''@;'; put 'put ''bnQoKSx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMoKSx0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImFmdGVyRG9jdW1lbnRLZXlEb3duIil9fSx7a2V5OiJwcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxaLHVlLF9lKXt2YXIgQmU9dGhpcy5zdGF0ZTtpZihmeihOUyhoLnByb3RvdHlwZSks''@;'; put 'put ''InByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxaLHVlLF9lKSwhX2UucmVhZE9ubHkpe3RoaXMucmVmcmVzaERpbWVuc2lvbnMoITApO3ZhciBLZT1fZS5mcmFnbWVudFNlbGVjdGlvbjtfZS5hbGxvd0ludmFsaWQmJih0aGlzLlRFWFRBUkVBLnZhbHVlPSIiKSxCZSE9PXJmLkZJTklT''@;'; put 'put ''SEVEJiZ0aGlzLmhpZGVFZGl0YWJsZUVsZW1lbnQoKSwhS2UmJiFiOCgpJiZ0aGlzLmZvY3VzKCl9fX0se2tleToiYmVnaW5FZGl0aW5nIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuc3RhdGU9PT1yZi5WSVJHSU4mJih0aGlzLlRFWFRBUkVBLnZhbHVlPSIiLGZ6KE5TKGgucHJvdG90eXBl''@;'; put 'put ''KSwiYmVnaW5FZGl0aW5nIix0aGlzKS5jYWxsKHRoaXMseSxDKSl9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLlRFWFRBUkVBLnNlbGVjdCgpLFZaKHRoaXMuVEVYVEFSRUEsdGhpcy5URVhUQVJFQS52YWx1ZS5sZW5ndGgpfX0se2tleToiY3JlYXRlRWxlbWVudHMiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3Qucm9vdERvY3VtZW50O3RoaXMuVEVYVEFSRUE9eS5jcmVhdGVFbGVtZW50KCJURVhUQVJFQSIpLHRoaXMuVEVYVEFSRUEuc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLHRoaXMuVEVYVEFSRUEudGFiSW5kZXg9LTEsTzAodGhp''@;'; put 'put ''cy5URVhUQVJFQSwiaGFuZHNvbnRhYmxlSW5wdXQiKSx0aGlzLnRleHRhcmVhU3R5bGU9dGhpcy5URVhUQVJFQS5zdHlsZSx0aGlzLnRleHRhcmVhU3R5bGUud2lkdGg9MCx0aGlzLnRleHRhcmVhU3R5bGUuaGVpZ2h0PTAsdGhpcy50ZXh0YXJlYVN0eWxlLm92ZXJmbG93WT0idmlzaWJsZSIs''@;'; put 'put ''dGhpcy5URVhUQVJFQV9QQVJFTlQ9eS5jcmVhdGVFbGVtZW50KCJESVYiKSxPMCh0aGlzLlRFWFRBUkVBX1BBUkVOVCwiaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXIiKSx0bCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpJiZwbCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlz''@;'; put 'put ''LmxheWVyQ2xhc3MpLE8wKHRoaXMuVEVYVEFSRUFfUEFSRU5ULHZ0ZSksdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlPXRoaXMuVEVYVEFSRUFfUEFSRU5ULnN0eWxlLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUEpLHRoaXMuaG90LnJvb3RFbGVtZW50LmFw''@;'; put 'put ''cGVuZENoaWxkKHRoaXMuVEVYVEFSRUFfUEFSRU5UKX19LHtrZXk6ImhpZGVFZGl0YWJsZUVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7KFNiZSgpfHxrYmUoKSkmJih0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iLTk5OTk5cHgiKSx0aGlzLnRleHRhcmVhU3R5bGUub3ZlcmZsb3dZ''@;'; put 'put ''PSJ2aXNpYmxlIix0aGlzLnRleHRhcmVhUGFyZW50U3R5bGUub3BhY2l0eT0iMCIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLmhlaWdodD0iMXB4IixwbCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpLE8wKHRoaXMuVEVYVEFSRUFfUEFSRU5ULHZ0ZSl9fSx7a2V5OiJz''@;'; put 'put ''aG93RWRpdGFibGVFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5oZWlnaHQ9IiIsdGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLm92ZXJmbG93PSIiLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5wb3NpdGlvbj0iIix0aGlzLnRleHRhcmVhUGFyZW50''@;'; put 'put ''U3R5bGVbdGhpcy5ob3QuaXNSdGwoKT8ibGVmdCI6InJpZ2h0Il09ImF1dG8iLHRoaXMudGV4dGFyZWFQYXJlbnRTdHlsZS5vcGFjaXR5PSIxIix0aGlzLnRleHRhcmVhU3R5bGUudGV4dEluZGVudD0iIix0aGlzLnRleHRhcmVhU3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iO3ZhciB5PXRoaXMu''@;'; put 'put ''VEVYVEFSRUFfUEFSRU5ULmNoaWxkTm9kZXMsQz0hMTtpYSh5Lmxlbmd0aC0xLGZ1bmN0aW9uKEkpe2lmKHRsKHlbSV0sImhhbmRzb250YWJsZUVkaXRvciIpKXJldHVybiBDPSEwLCExfSksdGwodGhpcy5URVhUQVJFQV9QQVJFTlQsdnRlKSYmcGwodGhpcy5URVhUQVJFQV9QQVJFTlQsdnRl''@;'; put 'put ''KSxDPyh0aGlzLmxheWVyQ2xhc3M9Imh0X2VkaXRvcl92aXNpYmxlIixPMCh0aGlzLlRFWFRBUkVBX1BBUkVOVCx0aGlzLmxheWVyQ2xhc3MpKToodGhpcy5sYXllckNsYXNzPXRoaXMuZ2V0RWRpdGVkQ2VsbHNMYXllckNsYXNzKCksTzAodGhpcy5URVhUQVJFQV9QQVJFTlQsdGhpcy5sYXll''@;'; put 'put ''ckNsYXNzKSl9fSx7a2V5OiJyZWZyZXNoVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh0aGlzLnJvdyksQz10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXRDZWxsKHksdGhpcy5jb2wpO3RoaXMub3JpZ2luYWxWYWx1ZT1DLHRoaXMuc2V0VmFsdWUo''@;'; put 'put ''QyksdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpfX0se2tleToicmVmcmVzaERpbWVuc2lvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZih0aGlzLnN0YXRlPT09cmYuRURJVElOR3x8eSl7''@;'; put 'put ''aWYodGhpcy5URD10aGlzLmdldEVkaXRlZENlbGwoKSwhdGhpcy5URClyZXR1cm4gdm9pZCh5fHx0aGlzLmNsb3NlKCkpO3ZhciBDPXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKSxJPUMudG9wLFo9Qy5zdGFydCx1ZT1DLndpZHRoLF9lPUMubWF4V2lkdGgsQmU9Qy5oZWlnaHQsTmU9Qy5tYXhI''@;'; put 'put ''ZWlnaHQ7dGhpcy50ZXh0YXJlYVBhcmVudFN0eWxlLnRvcD0iIi5jb25jYXQoSSwicHgiKSx0aGlzLnRleHRhcmVhUGFyZW50U3R5bGVbdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09IiIuY29uY2F0KFosInB4IiksdGhpcy5zaG93RWRpdGFibGVFbGVtZW50KCk7dmFyIEtlPU13''@;'; put 'put ''KHRoaXMuVEQsdGhpcy5ob3Qucm9vdFdpbmRvdyk7dGhpcy5URVhUQVJFQS5zdHlsZS5mb250U2l6ZT1LZS5mb250U2l6ZSx0aGlzLlRFWFRBUkVBLnN0eWxlLmZvbnRGYW1pbHk9S2UuZm9udEZhbWlseSx0aGlzLlRFWFRBUkVBLnN0eWxlLmJhY2tncm91bmRDb2xvcj10aGlzLlRELnN0eWxl''@;'; put 'put ''LmJhY2tncm91bmRDb2xvcjt2YXIgcHQ9TXcodGhpcy5URVhUQVJFQSksT3Q9cGFyc2VJbnQocHQucGFkZGluZ0xlZnQsMTApK3BhcnNlSW50KHB0LnBhZGRpbmdSaWdodCwxMCksJHQ9cGFyc2VJbnQocHQucGFkZGluZ1RvcCwxMCkrcGFyc2VJbnQocHQucGFkZGluZ0JvdHRvbSwxMCksZm49''@;'; put 'put ''dWUtT3QsTG49QmUtJHQsaXI9X2UtT3QsbXI9TmUtJHQ7dGhpcy5hdXRvUmVzaXplLmluaXQodGhpcy5URVhUQVJFQSx7bWluV2lkdGg6TWF0aC5taW4oZm4saXIpLG1pbkhlaWdodDpNYXRoLm1pbihMbixtciksbWF4V2lkdGg6aXIsbWF4SGVpZ2h0Om1yfSwhMCl9fX0se2tleToiYmluZEV2''@;'; put 'put ''ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwiY3V0IixmdW5jdGlvbihDKXtyZXR1cm4gQy5zdG9wUHJvcGFnYXRpb24oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo''@;'; put 'put ''dGhpcy5URVhUQVJFQSwicGFzdGUiLGZ1bmN0aW9uKEMpe3JldHVybiBDLnN0b3BQcm9wYWdhdGlvbigpfSkscWhlKCkmJnRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5URVhUQVJFQSwiZm9jdXNvdXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuZmluaXNoRWRpdGluZygh''@;'; put 'put ''MSl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZyZXNoRGltZW5zaW9ucygpfSks''@;'; put 'put ''dGhpcy5hZGRIb29rKCJhZnRlckNvbHVtblJlc2l6ZSIsZnVuY3Rpb24oKXt5LnJlZnJlc2hEaW1lbnNpb25zKCkseS5mb2N1cygpfSksdGhpcy5hZGRIb29rKCJhZnRlclJvd1Jlc2l6ZSIsZnVuY3Rpb24oKXt5LnJlZnJlc2hEaW1lbnNpb25zKCkseS5mb2N1cygpfSl9fSx7a2V5OiJhbGxv''@;'; put 'put ''d0tleUV2ZW50UHJvcGFnYXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95KCksdGhpcy5jbGVhckhvb2tzKCl9fSx7a2V5OiJyZWdpc3RlclNob3J0Y3V0cyIsdmFsdWU6ZnVuY3Rpb24oKXt2''@;'; put 'put ''YXIgeT10aGlzLEk9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIiksdWU9ZnVuY3Rpb24oKXt5LmhvdC5yb290RG9jdW1lbnQuZXhlY0NvbW1hbmQoImluc2VydFRleHQiLCExLCJcbiIpfTtJLmFkZFNob3J0Y3V0cyhbe2tleXM6W1siVGFiIl1dLGNh''@;'; put 'put ''bGxiYWNrOmZ1bmN0aW9uKEJlKXt2YXIgTmU9eS5ob3QuZ2V0U2V0dGluZ3MoKSxLZT0iZnVuY3Rpb24iPT10eXBlb2YgTmUudGFiTW92ZXM/TmUudGFiTW92ZXMoQmUpOk5lLnRhYk1vdmVzO3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydChLZS5yb3csS2UuY29sLCEwKX19LHtrZXlz''@;'; put 'put ''OltbIlNoaWZ0IiwiVGFiIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlKXt2YXIgTmU9eS5ob3QuZ2V0U2V0dGluZ3MoKSxLZT0iZnVuY3Rpb24iPT10eXBlb2YgTmUudGFiTW92ZXM/TmUudGFiTW92ZXMoQmUpOk5lLnRhYk1vdmVzO3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCgtS2Uu''@;'; put 'put ''cm93LC1LZS5jb2wpfX0se2tleXM6W1siQ29udHJvbCIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJ1bk9ubHlJZjpmdW5jdGlvbihCZSl7cmV0dXJuIXkuaG90LnNlbGVjdGlvbi5pc011bHRpcGxlKCkmJiFCZS5hbHRLZXl9LHJlbGF0aXZlVG9Hcm91''@;'; put 'put ''cDpHWixwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6W1siTWV0YSIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJ1bk9ubHlJZjpmdW5jdGlvbigpe3JldHVybiF5LmhvdC5zZWxlY3Rpb24uaXNNdWx0aXBsZSgpfSxyZWxhdGl2ZVRvR3JvdXA6R1oscG9z''@;'; put 'put ''aXRpb246ImJlZm9yZSJ9LHtrZXlzOltbIkFsdCIsIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuIHVlKCksITF9LHJlbGF0aXZlVG9Hcm91cDpHWixwb3NpdGlvbjoiYmVmb3JlIn0se2tleXM6W1siUGFnZVVwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7eS5ob3Quc2VsZWN0''@;'; put 'put ''aW9uLnRyYW5zZm9ybVN0YXJ0KC15LmhvdC5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJQYWdlRG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydCh5LmhvdC5jb3VudFZpc2libGVSb3dzKCksMCl9fSx7a2V5czpbWyJIb21l''@;'; put 'put ''Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlLE5lKXtOU2UoVlNlKE5lLDEpWzBdLHkuVEVYVEFSRUEpfX0se2tleXM6W1siRW5kIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlLE5lKXtOU2UoVlNlKE5lLDEpWzBdLHkuVEVYVEFSRUEpfX0se2tleXM6W1siQ29udHJvbC9NZXRhIiwiWiJdXSxwcmV2''@;'; put 'put ''ZW50RGVmYXVsdDohMSxjYWxsYmFjazpmdW5jdGlvbigpe3kuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXt5LmF1dG9SZXNpemUucmVzaXplKCl9LDEwKX19LHtrZXlzOltbIkNvbnRyb2wvTWV0YSIsIlNoaWZ0IiwiWiJdXSxwcmV2ZW50RGVmYXVsdDohMSxjYWxsYmFjazpmdW5j''@;'; put 'put ''dGlvbigpe3kuaG90Ll9yZWdpc3RlclRpbWVvdXQoZnVuY3Rpb24oKXt5LmF1dG9SZXNpemUucmVzaXplKCl9LDEwKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKCl7cmV0dXJuIFRvKHkuaG90LmdldFNlbGVjdGVkKCkpfSxncm91cDpHU2V9KX19LHtrZXk6InVucmVnaXN0ZXJTaG9ydGN1dHMi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEM9dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIik7Qy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKGxlZSksQy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKEdTZSksQy5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKHU2ZSl9''@;'; put 'put ''fSx7a2V5OiJvbkFmdGVyRG9jdW1lbnRLZXlEb3duIix2YWx1ZTpmdW5jdGlvbih5KXstMT09PVtRby5BUlJPV19VUCxRby5BUlJPV19SSUdIVCxRby5BUlJPV19ET1dOLFFvLkFSUk9XX0xFRlRdLmluZGV4T2YoeS5rZXlDb2RlKSYmdGhpcy5hdXRvUmVzaXplLnJlc2l6ZShTdHJpbmcuZnJv''@;'; put 'put ''bUNoYXJDb2RlKHkua2V5Q29kZSkpfX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuInRleHQifX1dKSxofShrTyk7ZnVuY3Rpb24gaHooZCxnLGgsdix5LEMsSSl7dmFyIFo9W10sdWU9W107SS5jbGFzc05hbWUmJk8wKGcsSS5jbGFzc05hbWUpLEkucmVhZE9u''@;'; put 'put ''bHkmJloucHVzaChJLnJlYWRPbmx5Q2VsbENsYXNzTmFtZSksITE9PT1JLnZhbGlkJiZJLmludmFsaWRDZWxsQ2xhc3NOYW1lP1oucHVzaChJLmludmFsaWRDZWxsQ2xhc3NOYW1lKTp1ZS5wdXNoKEkuaW52YWxpZENlbGxDbGFzc05hbWUpLCExPT09SS53b3JkV3JhcCYmSS5ub1dvcmRXcmFw''@;'; put 'put ''Q2xhc3NOYW1lJiZaLnB1c2goSS5ub1dvcmRXcmFwQ2xhc3NOYW1lKSwhQyYmSS5wbGFjZWhvbGRlciYmWi5wdXNoKEkucGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lKSxwbChnLHVlKSxPMChnLFopfWZ1bmN0aW9uIEJ3KGQsZyxoLHYseSxDLEkpe2h6LmFwcGx5KHRoaXMsW2QsZyxoLHYseSxD''@;'; put 'put ''LEldKTt2YXIgWj1DO2lmKCFaJiZJLnBsYWNlaG9sZGVyJiYoWj1JLnBsYWNlaG9sZGVyKSxaPWV1KFopLGQuZ2V0U2V0dGluZ3MoKS50cmltV2hpdGVzcGFjZSYmKFo9Wi50cmltKCkpLEkucmVuZGVyZXJUZW1wbGF0ZSl7RHAoZyk7dmFyIHVlPWQucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1l''@;'; put 'put ''bnQoIlRFTVBMQVRFIik7dWUuc2V0QXR0cmlidXRlKCJiaW5kIiwie3t9fSIpLHVlLmlubmVySFRNTD1JLnJlbmRlcmVyVGVtcGxhdGUsSFRNTFRlbXBsYXRlRWxlbWVudC5kZWNvcmF0ZSh1ZSksdWUubW9kZWw9ZC5nZXRTb3VyY2VEYXRhQXRSb3coaCksZy5hcHBlbmRDaGlsZCh1ZSl9ZWxz''@;'; put 'put ''ZSBTdyhnLFopfWh6LlJFTkRFUkVSX1RZUEU9ImJhc2UiLEJ3LlJFTkRFUkVSX1RZUEU9InRleHQiO3ZhciBXU2U9e0NFTExfVFlQRToidGV4dCIsZWRpdG9yOlZTLHJlbmRlcmVyOkJ3fTtmdW5jdGlvbiBUdihkLGcpe3ZhciBoPW5ldyBhNmUoZCxnfHx7fSx6ZGUpO3JldHVybiBoLmluaXQo''@;'; put 'put ''KSxofWs4KFdTZSksVHYuZWRpdG9ycz17QmFzZUVkaXRvcjprT30sVHYuQ29yZT1mdW5jdGlvbihkKXt2YXIgZz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIG5ldyBhNmUoZCxnLHpkZSl9LFR2LkRlZmF1bHRTZXR0aW5n''@;'; put 'put ''cz1kU2UoKSxUdi5ob29rcz16by5nZXRTaW5nbGV0b24oKSxUdi5wYWNrYWdlTmFtZT0iaGFuZHNvbnRhYmxlIixUdi5idWlsZERhdGU9IjA4LzA3LzIwMjIgMTU6MjQ6MDgiLFR2LnZlcnNpb249IjEyLjEuMiIsVHYubGFuZ3VhZ2VzPXtkaWN0aW9uYXJ5S2V5czpLLGdldExhbmd1YWdlRGlj''@;'; put 'put ''dGlvbmFyeTpMa2UsZ2V0TGFuZ3VhZ2VzRGljdGlvbmFyaWVzOmZ1bmN0aW9uIGpYZSgpe3JldHVybiBOWGUoKX0scmVnaXN0ZXJMYW5ndWFnZURpY3Rpb25hcnk6RGtlLGdldFRyYW5zbGF0ZWRQaHJhc2U6T2tlfTtjb25zdCBKbD1UdixjZXQ9WyJjb250YWluZXIiXSxoNmU9bmV3IE1hcCxZ''@;'; put 'put ''U2U9IlRoZSBIYW5kc29udGFibGUgaW5zdGFuY2UgYm91bmQgdG8gdGhpcyBjb21wb25lbnQgd2FzIGRlc3Ryb3llZCBhbmQgY2Fubm90IGJlIHVzZWQgcHJvcGVybHkuIjtsZXQgU089KCgpPT57Y2xhc3MgZHtnZXRJbnN0YW5jZShoKXtjb25zdCB2PWg2ZS5nZXQoaCk7cmV0dXJuIHYuaXNE''@;'; put 'put ''ZXN0cm95ZWQ/KGNvbnNvbGUud2FybihZU2UpLG51bGwpOnZ9cmVnaXN0ZXJJbnN0YW5jZShoLHYpe3JldHVybiBoNmUuc2V0KGgsdil9cmVtb3ZlSW5zdGFuY2UoaCl7cmV0dXJuIGg2ZS5kZWxldGUoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQp''@;'; put 'put ''fSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhY30pLGR9KSgpO2NvbnN0IGZldD1PYmplY3Qua2V5cyhKbC5EZWZhdWx0U2V0dGluZ3MpLFVTZT1KbC5ob29rcy5nZXRSZWdpc3RlcmVkKCk7bGV0IFFTZT0oKCk9PntjbGFzcyBke21lcmdlU2V0dGluZ3MoaCl7''@;'; put 'put ''Y29uc3Qgdj0ib2JqZWN0Ij09dHlwZW9mIGguc2V0dGluZ3MseT12P2guc2V0dGluZ3M6e307cmV0dXJuIFVTZS5jb25jYXQoZmV0KS5mb3JFYWNoKEk9Pntjb25zdCBaPVVTZS5pbmRleE9mKEkpPi0xO2xldCB1ZTt2JiZaJiYodWU9aC5zZXR0aW5nc1tJXSksdm9pZCAwIT09aFtJXSYmKHVl''@;'; put 'put ''PWhbSV0pLHZvaWQgMCE9PXVlJiYoeVtJXT0iZnVuY3Rpb24iPT10eXBlb2YgdWUmJlo/ZnVuY3Rpb24oLi4uX2Upe3JldHVybiBoLl9uZ1pvbmUucnVuKCgpPT51ZS5hcHBseSh0aGlzLF9lKSl9OnVlKX0pLHl9cHJlcGFyZUNoYW5nZXMoaCl7Y29uc3Qgdj17fTtyZXR1cm4gT2JqZWN0Lmtl''@;'; put 'put ''eXMoaCkuZm9yRWFjaChDPT57aC5oYXNPd25Qcm9wZXJ0eShDKSYmKHZbQ109aFtDXS5jdXJyZW50VmFsdWUpfSksdn19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1cHJvdj1BaSh7dG9rZW46ZCxmYWN0b3J5OmQuXHUwMjc1ZmFjfSks''@;'; put 'put ''ZH0pKCksQXRlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHkpe3RoaXMuX25nWm9uZT1oLHRoaXMuX2hvdFRhYmxlUmVnaXN0ZXJlcj12LHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXI9eSx0aGlzLl9faG90SW5zdGFuY2U9bnVsbCx0aGlzLmNvbHVtbnNDb21wb25lbnRzPVtdLHRo''@;'; put 'put ''aXMuaG90SWQ9IiJ9Z2V0IGhvdEluc3RhbmNlKCl7cmV0dXJuIXRoaXMuX19ob3RJbnN0YW5jZXx8dGhpcy5fX2hvdEluc3RhbmNlJiYhdGhpcy5fX2hvdEluc3RhbmNlLmlzRGVzdHJveWVkP3RoaXMuX19ob3RJbnN0YW5jZToodGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3Rh''@;'; put 'put ''bmNlKHRoaXMuaG90SWQpLGNvbnNvbGUud2FybihZU2UpLG51bGwpfXNldCBob3RJbnN0YW5jZShoKXt0aGlzLl9faG90SW5zdGFuY2U9aH1uZ0FmdGVyVmlld0luaXQoKXtjb25zdCBoPXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh0aGlzKTtpZih0aGlzLmNvbHVt''@;'; put 'put ''bnNDb21wb25lbnRzLmxlbmd0aD4wKXtjb25zdCB2PVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh5PT57di5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh5KSl9KSxoLmNvbHVtbnM9dn10aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIo''@;'; put 'put ''KCk9Pnt0aGlzLmhvdEluc3RhbmNlPW5ldyBKbC5Db3JlKHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsaCksdGhpcy5ob3RJZCYmdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlZ2lzdGVySW5zdGFuY2UodGhpcy5ob3RJZCx0aGlzLmhvdEluc3RhbmNlKSx0aGlzLmhvdEluc3RhbmNl''@;'; put 'put ''LmluaXQoKX0pfW5nT25DaGFuZ2VzKGgpe2lmKG51bGw9PT10aGlzLmhvdEluc3RhbmNlKXJldHVybjtjb25zdCB2PXRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIucHJlcGFyZUNoYW5nZXMoaCk7dGhpcy51cGRhdGVIb3RUYWJsZSh2KX1uZ09uRGVzdHJveSgpe3RoaXMuX25nWm9uZS5ydW5P''@;'; put 'put ''dXRzaWRlQW5ndWxhcigoKT0+e3RoaXMuaG90SW5zdGFuY2UmJnRoaXMuaG90SW5zdGFuY2UuZGVzdHJveSgpfSksdGhpcy5ob3RJZCYmdGhpcy5faG90VGFibGVSZWdpc3RlcmVyLnJlbW92ZUluc3RhbmNlKHRoaXMuaG90SWQpfXVwZGF0ZUhvdFRhYmxlKGgpeyF0aGlzLmhvdEluc3RhbmNl''@;'; put 'put ''fHx0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCk9Pnt0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKGgsITEpfSl9b25BZnRlckNvbHVtbnNDaGFuZ2UoKXtpZih2b2lkIDAhPT10aGlzLmNvbHVtbnNDb21wb25lbnRzJiZ0aGlzLmNvbHVtbnNDb21wb25lbnRzLmxlbmd0''@;'; put 'put ''aD4wKXtjb25zdCBoPVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh5PT57aC5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh5KSl9KSx0aGlzLnVwZGF0ZUhvdFRhYmxlKHtjb2x1bW5zOmh9KX19b25BZnRlckNvbHVtbnNOdW1iZXJDaGFuZ2Uo''@;'; put 'put ''KXtjb25zdCBoPVtdO3RoaXMuY29sdW1uc0NvbXBvbmVudHMubGVuZ3RoPjAmJnRoaXMuY29sdW1uc0NvbXBvbmVudHMuZm9yRWFjaCh2PT57aC5wdXNoKHRoaXMuX2hvdFNldHRpbmdzUmVzb2x2ZXIubWVyZ2VTZXR0aW5ncyh2KSl9KSx0aGlzLnVwZGF0ZUhvdFRhYmxlKHtjb2x1bW5zOmh9''@;'; put 'put ''KX1hZGRDb2x1bW4oaCl7dGhpcy5jb2x1bW5zQ29tcG9uZW50cy5wdXNoKGgpLHRoaXMub25BZnRlckNvbHVtbnNOdW1iZXJDaGFuZ2UoKX1yZW1vdmVDb2x1bW4oaCl7Y29uc3Qgdj10aGlzLmNvbHVtbnNDb21wb25lbnRzLmluZGV4T2YoaCk7dGhpcy5jb2x1bW5zQ29tcG9uZW50cy5zcGxp''@;'; put 'put ''Y2UodiwxKSx0aGlzLm9uQWZ0ZXJDb2x1bW5zTnVtYmVyQ2hhbmdlKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KF9sKSxLdChTTyksS3QoUVNlKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImhvdC10YWJsZSJdXSx2''@;'; put 'put ''aWV3UXVlcnk6ZnVuY3Rpb24oaCx2KXtpZigxJmgmJnZvKGNldCw1KSwyJmgpe2xldCB5O0hpKHk9JGkoKSkmJih2LmNvbnRhaW5lcj15LmZpcnN0KX19LGlucHV0czp7aG90SWQ6ImhvdElkIixzZXR0aW5nczoic2V0dGluZ3MiLGFjdGl2ZUhlYWRlckNsYXNzTmFtZToiYWN0aXZlSGVhZGVy''@;'; put 'put ''Q2xhc3NOYW1lIixhbGxvd0VtcHR5OiJhbGxvd0VtcHR5IixhbGxvd0h0bWw6ImFsbG93SHRtbCIsYWxsb3dJbnNlcnRDb2x1bW46ImFsbG93SW5zZXJ0Q29sdW1uIixhbGxvd0luc2VydFJvdzoiYWxsb3dJbnNlcnRSb3ciLGFsbG93SW52YWxpZDoiYWxsb3dJbnZhbGlkIixhbGxvd1JlbW92''@;'; put 'put ''ZUNvbHVtbjoiYWxsb3dSZW1vdmVDb2x1bW4iLGFsbG93UmVtb3ZlUm93OiJhbGxvd1JlbW92ZVJvdyIsYXV0b0NvbHVtblNpemU6ImF1dG9Db2x1bW5TaXplIixhdXRvUm93U2l6ZToiYXV0b1Jvd1NpemUiLGF1dG9XcmFwQ29sOiJhdXRvV3JhcENvbCIsYXV0b1dyYXBSb3c6ImF1dG9XcmFw''@;'; put 'put ''Um93IixiaW5kUm93c1dpdGhIZWFkZXJzOiJiaW5kUm93c1dpdGhIZWFkZXJzIixjZWxsOiJjZWxsIixjZWxsczoiY2VsbHMiLGNoZWNrZWRUZW1wbGF0ZToiY2hlY2tlZFRlbXBsYXRlIixjbGFzc05hbWU6ImNsYXNzTmFtZSIsY29sSGVhZGVyczoiY29sSGVhZGVycyIsY29sbGFwc2libGVD''@;'; put 'put ''b2x1bW5zOiJjb2xsYXBzaWJsZUNvbHVtbnMiLGNvbHVtbkhlYWRlckhlaWdodDoiY29sdW1uSGVhZGVySGVpZ2h0Iixjb2x1bW5zOiJjb2x1bW5zIixjb2x1bW5Tb3J0aW5nOiJjb2x1bW5Tb3J0aW5nIixjb2x1bW5TdW1tYXJ5OiJjb2x1bW5TdW1tYXJ5Iixjb2xXaWR0aHM6ImNvbFdpZHRo''@;'; put 'put ''cyIsY29tbWVudGVkQ2VsbENsYXNzTmFtZToiY29tbWVudGVkQ2VsbENsYXNzTmFtZSIsY29tbWVudHM6ImNvbW1lbnRzIixjb250ZXh0TWVudToiY29udGV4dE1lbnUiLGNvcHlhYmxlOiJjb3B5YWJsZSIsY29weVBhc3RlOiJjb3B5UGFzdGUiLGNvcnJlY3RGb3JtYXQ6ImNvcnJlY3RGb3Jt''@;'; put 'put ''YXQiLGN1cnJlbnRDb2xDbGFzc05hbWU6ImN1cnJlbnRDb2xDbGFzc05hbWUiLGN1cnJlbnRIZWFkZXJDbGFzc05hbWU6ImN1cnJlbnRIZWFkZXJDbGFzc05hbWUiLGN1cnJlbnRSb3dDbGFzc05hbWU6ImN1cnJlbnRSb3dDbGFzc05hbWUiLGN1c3RvbUJvcmRlcnM6ImN1c3RvbUJvcmRlcnMi''@;'; put 'put ''LGRhdGE6ImRhdGEiLGRhdGFTY2hlbWE6ImRhdGFTY2hlbWEiLGRhdGVGb3JtYXQ6ImRhdGVGb3JtYXQiLGRlZmF1bHREYXRlOiJkZWZhdWx0RGF0ZSIsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiZGlzYWJsZVZpc3VhbFNlbGVjdGlvbiIsZHJhZ1RvU2Nyb2xsOiJkcmFnVG9TY3JvbGwiLGRy''@;'; put 'put ''b3Bkb3duTWVudToiZHJvcGRvd25NZW51IixlZGl0b3I6ImVkaXRvciIsZW50ZXJCZWdpbnNFZGl0aW5nOiJlbnRlckJlZ2luc0VkaXRpbmciLGVudGVyTW92ZXM6ImVudGVyTW92ZXMiLGZpbGxIYW5kbGU6ImZpbGxIYW5kbGUiLGZpbHRlcjoiZmlsdGVyIixmaWx0ZXJpbmdDYXNlU2Vuc2l0''@;'; put 'put ''aXZlOiJmaWx0ZXJpbmdDYXNlU2Vuc2l0aXZlIixmaWx0ZXJzOiJmaWx0ZXJzIixmaXhlZENvbHVtbnNMZWZ0OiJmaXhlZENvbHVtbnNMZWZ0IixmaXhlZENvbHVtbnNTdGFydDoiZml4ZWRDb2x1bW5zU3RhcnQiLGZpeGVkUm93c0JvdHRvbToiZml4ZWRSb3dzQm90dG9tIixmaXhlZFJvd3NU''@;'; put 'put ''b3A6ImZpeGVkUm93c1RvcCIsZm9ybXVsYXM6ImZvcm11bGFzIixmcmFnbWVudFNlbGVjdGlvbjoiZnJhZ21lbnRTZWxlY3Rpb24iLGhlaWdodDoiaGVpZ2h0IixoaWRkZW5Db2x1bW5zOiJoaWRkZW5Db2x1bW5zIixoaWRkZW5Sb3dzOiJoaWRkZW5Sb3dzIixpbnZhbGlkQ2VsbENsYXNzTmFt''@;'; put 'put ''ZToiaW52YWxpZENlbGxDbGFzc05hbWUiLGxhYmVsOiJsYWJlbCIsbGFuZ3VhZ2U6Imxhbmd1YWdlIixsYXlvdXREaXJlY3Rpb246ImxheW91dERpcmVjdGlvbiIsbGljZW5zZUtleToibGljZW5zZUtleSIsbWFudWFsQ29sdW1uRnJlZXplOiJtYW51YWxDb2x1bW5GcmVlemUiLG1hbnVhbENv''@;'; put 'put ''bHVtbk1vdmU6Im1hbnVhbENvbHVtbk1vdmUiLG1hbnVhbENvbHVtblJlc2l6ZToibWFudWFsQ29sdW1uUmVzaXplIixtYW51YWxSb3dNb3ZlOiJtYW51YWxSb3dNb3ZlIixtYW51YWxSb3dSZXNpemU6Im1hbnVhbFJvd1Jlc2l6ZSIsbWF4Q29sczoibWF4Q29scyIsbWF4Um93czoibWF4Um93''@;'; put 'put ''cyIsbWVyZ2VDZWxsczoibWVyZ2VDZWxscyIsbWluQ29sczoibWluQ29scyIsbWluUm93czoibWluUm93cyIsbWluU3BhcmVDb2xzOiJtaW5TcGFyZUNvbHMiLG1pblNwYXJlUm93czoibWluU3BhcmVSb3dzIixtdWx0aUNvbHVtblNvcnRpbmc6Im11bHRpQ29sdW1uU29ydGluZyIsbmVzdGVk''@;'; put 'put ''SGVhZGVyczoibmVzdGVkSGVhZGVycyIsbmVzdGVkUm93czoibmVzdGVkUm93cyIsbm9Xb3JkV3JhcENsYXNzTmFtZToibm9Xb3JkV3JhcENsYXNzTmFtZSIsbnVtZXJpY0Zvcm1hdDoibnVtZXJpY0Zvcm1hdCIsb2JzZXJ2ZURPTVZpc2liaWxpdHk6Im9ic2VydmVET01WaXNpYmlsaXR5Iixv''@;'; put 'put ''dXRzaWRlQ2xpY2tEZXNlbGVjdHM6Im91dHNpZGVDbGlja0Rlc2VsZWN0cyIscGVyc2lzdGVudFN0YXRlOiJwZXJzaXN0ZW50U3RhdGUiLHBsYWNlaG9sZGVyOiJwbGFjZWhvbGRlciIscGxhY2Vob2xkZXJDZWxsQ2xhc3NOYW1lOiJwbGFjZWhvbGRlckNlbGxDbGFzc05hbWUiLHByZXZlbnRP''@;'; put 'put ''dmVyZmxvdzoicHJldmVudE92ZXJmbG93IixwcmV2ZW50V2hlZWw6InByZXZlbnRXaGVlbCIscmVhZE9ubHk6InJlYWRPbmx5IixyZWFkT25seUNlbGxDbGFzc05hbWU6InJlYWRPbmx5Q2VsbENsYXNzTmFtZSIscmVuZGVyQWxsUm93czoicmVuZGVyQWxsUm93cyIscmVuZGVyZXI6InJlbmRl''@;'; put 'put ''cmVyIixyb3dIZWFkZXJzOiJyb3dIZWFkZXJzIixyb3dIZWFkZXJXaWR0aDoicm93SGVhZGVyV2lkdGgiLHJvd0hlaWdodHM6InJvd0hlaWdodHMiLHNlYXJjaDoic2VhcmNoIixzZWxlY3Rpb25Nb2RlOiJzZWxlY3Rpb25Nb2RlIixzZWxlY3RPcHRpb25zOiJzZWxlY3RPcHRpb25zIixza2lw''@;'; put 'put ''Q29sdW1uT25QYXN0ZToic2tpcENvbHVtbk9uUGFzdGUiLHNraXBSb3dPblBhc3RlOiJza2lwUm93T25QYXN0ZSIsc29ydEJ5UmVsZXZhbmNlOiJzb3J0QnlSZWxldmFuY2UiLHNvdXJjZToic291cmNlIixzdGFydENvbHM6InN0YXJ0Q29scyIsc3RhcnRSb3dzOiJzdGFydFJvd3MiLHN0cmV0''@;'; put 'put ''Y2hIOiJzdHJldGNoSCIsc3RyaWN0OiJzdHJpY3QiLHRhYmxlQ2xhc3NOYW1lOiJ0YWJsZUNsYXNzTmFtZSIsdGFiTW92ZXM6InRhYk1vdmVzIix0aXRsZToidGl0bGUiLHRyaW1Ecm9wZG93bjoidHJpbURyb3Bkb3duIix0cmltUm93czoidHJpbVJvd3MiLHRyaW1XaGl0ZXNwYWNlOiJ0cmlt''@;'; put 'put ''V2hpdGVzcGFjZSIsdHlwZToidHlwZSIsdW5jaGVja2VkVGVtcGxhdGU6InVuY2hlY2tlZFRlbXBsYXRlIix1bmRvOiJ1bmRvIix2YWxpZGF0b3I6InZhbGlkYXRvciIsdmlld3BvcnRDb2x1bW5SZW5kZXJpbmdPZmZzZXQ6InZpZXdwb3J0Q29sdW1uUmVuZGVyaW5nT2Zmc2V0Iix2aWV3cG9y''@;'; put 'put ''dFJvd1JlbmRlcmluZ09mZnNldDoidmlld3BvcnRSb3dSZW5kZXJpbmdPZmZzZXQiLHZpc2libGVSb3dzOiJ2aXNpYmxlUm93cyIsd2lkdGg6IndpZHRoIix3b3JkV3JhcDoid29yZFdyYXAiLGFmdGVyQWRkQ2hpbGQ6ImFmdGVyQWRkQ2hpbGQiLGFmdGVyQXV0b2ZpbGw6ImFmdGVyQXV0b2Zp''@;'; put 'put ''bGwiLGFmdGVyQmVnaW5FZGl0aW5nOiJhZnRlckJlZ2luRWRpdGluZyIsYWZ0ZXJDZWxsTWV0YVJlc2V0OiJhZnRlckNlbGxNZXRhUmVzZXQiLGFmdGVyQ2hhbmdlOiJhZnRlckNoYW5nZSIsYWZ0ZXJDaGFuZ2VzT2JzZXJ2ZWQ6ImFmdGVyQ2hhbmdlc09ic2VydmVkIixhZnRlckNvbHVtbkNv''@;'; put 'put ''bGxhcHNlOiJhZnRlckNvbHVtbkNvbGxhcHNlIixhZnRlckNvbHVtbkV4cGFuZDoiYWZ0ZXJDb2x1bW5FeHBhbmQiLGFmdGVyQ29sdW1uTW92ZToiYWZ0ZXJDb2x1bW5Nb3ZlIixhZnRlckNvbHVtblJlc2l6ZToiYWZ0ZXJDb2x1bW5SZXNpemUiLGFmdGVyQ29sdW1uU29ydDoiYWZ0ZXJDb2x1''@;'; put 'put ''bW5Tb3J0IixhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnM6ImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsYWZ0ZXJDb250ZXh0TWVudUhpZGU6ImFmdGVyQ29udGV4dE1lbnVIaWRlIixhZnRlckNvbnRleHRNZW51U2hvdzoiYWZ0ZXJDb250ZXh0TWVudVNob3ciLGFmdGVy''@;'; put 'put ''Q29weToiYWZ0ZXJDb3B5IixhZnRlckNvcHlMaW1pdDoiYWZ0ZXJDb3B5TGltaXQiLGFmdGVyQ3JlYXRlQ29sOiJhZnRlckNyZWF0ZUNvbCIsYWZ0ZXJDcmVhdGVSb3c6ImFmdGVyQ3JlYXRlUm93IixhZnRlckN1dDoiYWZ0ZXJDdXQiLGFmdGVyRGVzZWxlY3Q6ImFmdGVyRGVzZWxlY3QiLGFm''@;'; put 'put ''dGVyRGVzdHJveToiYWZ0ZXJEZXN0cm95IixhZnRlckRldGFjaENoaWxkOiJhZnRlckRldGFjaENoaWxkIixhZnRlckRvY3VtZW50S2V5RG93bjoiYWZ0ZXJEb2N1bWVudEtleURvd24iLGFmdGVyRHJhd1NlbGVjdGlvbjoiYWZ0ZXJEcmF3U2VsZWN0aW9uIixhZnRlckRyb3Bkb3duTWVudURl''@;'; put 'put ''ZmF1bHRPcHRpb25zOiJhZnRlckRyb3Bkb3duTWVudURlZmF1bHRPcHRpb25zIixhZnRlckRyb3Bkb3duTWVudUhpZGU6ImFmdGVyRHJvcGRvd25NZW51SGlkZSIsYWZ0ZXJEcm9wZG93bk1lbnVTaG93OiJhZnRlckRyb3Bkb3duTWVudVNob3ciLGFmdGVyRmlsdGVyOiJhZnRlckZpbHRlciIs''@;'; put 'put ''YWZ0ZXJHZXRDZWxsTWV0YToiYWZ0ZXJHZXRDZWxsTWV0YSIsYWZ0ZXJHZXRDb2xIZWFkZXI6ImFmdGVyR2V0Q29sSGVhZGVyIixhZnRlckdldENvbHVtbkhlYWRlclJlbmRlcmVyczoiYWZ0ZXJHZXRDb2x1bW5IZWFkZXJSZW5kZXJlcnMiLGFmdGVyR2V0Um93SGVhZGVyOiJhZnRlckdldFJv''@;'; put 'put ''d0hlYWRlciIsYWZ0ZXJHZXRSb3dIZWFkZXJSZW5kZXJlcnM6ImFmdGVyR2V0Um93SGVhZGVyUmVuZGVyZXJzIixhZnRlckhpZGVDb2x1bW5zOiJhZnRlckhpZGVDb2x1bW5zIixhZnRlckhpZGVSb3dzOiJhZnRlckhpZGVSb3dzIixhZnRlckluaXQ6ImFmdGVySW5pdCIsYWZ0ZXJMYW5ndWFn''@;'; put 'put ''ZUNoYW5nZToiYWZ0ZXJMYW5ndWFnZUNoYW5nZSIsYWZ0ZXJMaXN0ZW46ImFmdGVyTGlzdGVuIixhZnRlckxvYWREYXRhOiJhZnRlckxvYWREYXRhIixhZnRlck1lcmdlQ2VsbHM6ImFmdGVyTWVyZ2VDZWxscyIsYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1FbmQ6ImFmdGVyTW9kaWZ5VHJhbnNmb3Jt''@;'; put 'put ''RW5kIixhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0OiJhZnRlck1vZGlmeVRyYW5zZm9ybVN0YXJ0IixhZnRlck1vbWVudHVtU2Nyb2xsOiJhZnRlck1vbWVudHVtU2Nyb2xsIixhZnRlck9uQ2VsbENvbnRleHRNZW51OiJhZnRlck9uQ2VsbENvbnRleHRNZW51IixhZnRlck9uQ2VsbENvcm5l''@;'; put 'put ''ckRibENsaWNrOiJhZnRlck9uQ2VsbENvcm5lckRibENsaWNrIixhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93bjoiYWZ0ZXJPbkNlbGxDb3JuZXJNb3VzZURvd24iLGFmdGVyT25DZWxsTW91c2VEb3duOiJhZnRlck9uQ2VsbE1vdXNlRG93biIsYWZ0ZXJPbkNlbGxNb3VzZU91dDoiYWZ0ZXJP''@;'; put 'put ''bkNlbGxNb3VzZU91dCIsYWZ0ZXJPbkNlbGxNb3VzZU92ZXI6ImFmdGVyT25DZWxsTW91c2VPdmVyIixhZnRlck9uQ2VsbE1vdXNlVXA6ImFmdGVyT25DZWxsTW91c2VVcCIsYWZ0ZXJQYXN0ZToiYWZ0ZXJQYXN0ZSIsYWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQ6ImFmdGVyUGx1Z2luc0luaXRp''@;'; put 'put ''YWxpemVkIixhZnRlclJlZG86ImFmdGVyUmVkbyIsYWZ0ZXJSZWRvU3RhY2tDaGFuZ2U6ImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixhZnRlclJlZnJlc2hEaW1lbnNpb25zOiJhZnRlclJlZnJlc2hEaW1lbnNpb25zIixhZnRlclJlbW92ZUNlbGxNZXRhOiJhZnRlclJlbW92ZUNlbGxNZXRhIixh''@;'; put 'put ''ZnRlclJlbW92ZUNvbDoiYWZ0ZXJSZW1vdmVDb2wiLGFmdGVyUmVtb3ZlUm93OiJhZnRlclJlbW92ZVJvdyIsYWZ0ZXJSZW5kZXI6ImFmdGVyUmVuZGVyIixhZnRlclJlbmRlcmVyOiJhZnRlclJlbmRlcmVyIixhZnRlclJvd01vdmU6ImFmdGVyUm93TW92ZSIsYWZ0ZXJSb3dSZXNpemU6ImFm''@;'; put 'put ''dGVyUm93UmVzaXplIixhZnRlclNjcm9sbEhvcml6b250YWxseToiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLGFmdGVyU2Nyb2xsVmVydGljYWxseToiYWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5IixhZnRlclNlbGVjdGlvbjoiYWZ0ZXJTZWxlY3Rpb24iLGFmdGVyU2VsZWN0aW9uQnlQcm9wOiJh''@;'; put 'put ''ZnRlclNlbGVjdGlvbkJ5UHJvcCIsYWZ0ZXJTZWxlY3Rpb25FbmQ6ImFmdGVyU2VsZWN0aW9uRW5kIixhZnRlclNlbGVjdGlvbkVuZEJ5UHJvcDoiYWZ0ZXJTZWxlY3Rpb25FbmRCeVByb3AiLGFmdGVyU2V0Q2VsbE1ldGE6ImFmdGVyU2V0Q2VsbE1ldGEiLGFmdGVyU2V0RGF0YUF0Q2VsbDoi''@;'; put 'put ''YWZ0ZXJTZXREYXRhQXRDZWxsIixhZnRlclNldERhdGFBdFJvd1Byb3A6ImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsYWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsOiJhZnRlclNldFNvdXJjZURhdGFBdENlbGwiLGFmdGVyVHJpbVJvdzoiYWZ0ZXJUcmltUm93IixhZnRlclVuZG86ImFmdGVyVW5k''@;'; put 'put ''byIsYWZ0ZXJVbmRvU3RhY2tDaGFuZ2U6ImFmdGVyVW5kb1N0YWNrQ2hhbmdlIixhZnRlclVuaGlkZUNvbHVtbnM6ImFmdGVyVW5oaWRlQ29sdW1ucyIsYWZ0ZXJVbmhpZGVSb3dzOiJhZnRlclVuaGlkZVJvd3MiLGFmdGVyVW5saXN0ZW46ImFmdGVyVW5saXN0ZW4iLGFmdGVyVW5tZXJnZUNl''@;'; put 'put ''bGxzOiJhZnRlclVubWVyZ2VDZWxscyIsYWZ0ZXJVbnRyaW1Sb3c6ImFmdGVyVW50cmltUm93IixhZnRlclVwZGF0ZVNldHRpbmdzOiJhZnRlclVwZGF0ZVNldHRpbmdzIixhZnRlclZhbGlkYXRlOiJhZnRlclZhbGlkYXRlIixhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRl''@;'; put 'put ''OiJhZnRlclZpZXdwb3J0Q29sdW1uQ2FsY3VsYXRvck92ZXJyaWRlIixhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlOiJhZnRlclZpZXdwb3J0Um93Q2FsY3VsYXRvck92ZXJyaWRlIixhZnRlclZpZXdSZW5kZXI6ImFmdGVyVmlld1JlbmRlciIsYmVmb3JlQWRkQ2hpbGQ6ImJl''@;'; put 'put ''Zm9yZUFkZENoaWxkIixiZWZvcmVBdXRvZmlsbDoiYmVmb3JlQXV0b2ZpbGwiLGJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGU6ImJlZm9yZUF1dG9maWxsSW5zaWRlUG9wdWxhdGUiLGJlZm9yZUNlbGxBbGlnbm1lbnQ6ImJlZm9yZUNlbGxBbGlnbm1lbnQiLGJlZm9yZUNoYW5nZToiYmVm''@;'; put 'put ''b3JlQ2hhbmdlIixiZWZvcmVDaGFuZ2VSZW5kZXI6ImJlZm9yZUNoYW5nZVJlbmRlciIsYmVmb3JlQ29sdW1uQ29sbGFwc2U6ImJlZm9yZUNvbHVtbkNvbGxhcHNlIixiZWZvcmVDb2x1bW5FeHBhbmQ6ImJlZm9yZUNvbHVtbkV4cGFuZCIsYmVmb3JlQ29sdW1uTW92ZToiYmVmb3JlQ29sdW1u''@;'; put 'put ''TW92ZSIsYmVmb3JlQ29sdW1uUmVzaXplOiJiZWZvcmVDb2x1bW5SZXNpemUiLGJlZm9yZUNvbHVtblNvcnQ6ImJlZm9yZUNvbHVtblNvcnQiLGJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXM6ImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLGJlZm9yZUNvbnRleHRNZW51U2hvdzoiYmVmb3Jl''@;'; put 'put ''Q29udGV4dE1lbnVTaG93IixiZWZvcmVDb3B5OiJiZWZvcmVDb3B5IixiZWZvcmVDcmVhdGVDb2w6ImJlZm9yZUNyZWF0ZUNvbCIsYmVmb3JlQ3JlYXRlUm93OiJiZWZvcmVDcmVhdGVSb3ciLGJlZm9yZUN1dDoiYmVmb3JlQ3V0IixiZWZvcmVEZXRhY2hDaGlsZDoiYmVmb3JlRGV0YWNoQ2hp''@;'; put 'put ''bGQiLGJlZm9yZURyYXdCb3JkZXJzOiJiZWZvcmVEcmF3Qm9yZGVycyIsYmVmb3JlRHJvcGRvd25NZW51U2V0SXRlbXM6ImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixiZWZvcmVEcm9wZG93bk1lbnVTaG93OiJiZWZvcmVEcm9wZG93bk1lbnVTaG93IixiZWZvcmVGaWx0ZXI6ImJlZm9y''@;'; put 'put ''ZUZpbHRlciIsYmVmb3JlR2V0Q2VsbE1ldGE6ImJlZm9yZUdldENlbGxNZXRhIixiZWZvcmVIaWRlQ29sdW1uczoiYmVmb3JlSGlkZUNvbHVtbnMiLGJlZm9yZUhpZGVSb3dzOiJiZWZvcmVIaWRlUm93cyIsYmVmb3JlSW5pdDoiYmVmb3JlSW5pdCIsYmVmb3JlSW5pdFdhbGtvbnRhYmxlOiJi''@;'; put 'put ''ZWZvcmVJbml0V2Fsa29udGFibGUiLGJlZm9yZUtleURvd246ImJlZm9yZUtleURvd24iLGJlZm9yZUxhbmd1YWdlQ2hhbmdlOiJiZWZvcmVMYW5ndWFnZUNoYW5nZSIsYmVmb3JlTG9hZERhdGE6ImJlZm9yZUxvYWREYXRhIixiZWZvcmVNZXJnZUNlbGxzOiJiZWZvcmVNZXJnZUNlbGxzIixi''@;'; put 'put ''ZWZvcmVPbkNlbGxDb250ZXh0TWVudToiYmVmb3JlT25DZWxsQ29udGV4dE1lbnUiLGJlZm9yZU9uQ2VsbE1vdXNlRG93bjoiYmVmb3JlT25DZWxsTW91c2VEb3duIixiZWZvcmVPbkNlbGxNb3VzZU91dDoiYmVmb3JlT25DZWxsTW91c2VPdXQiLGJlZm9yZU9uQ2VsbE1vdXNlT3ZlcjoiYmVm''@;'; put 'put ''b3JlT25DZWxsTW91c2VPdmVyIixiZWZvcmVPbkNlbGxNb3VzZVVwOiJiZWZvcmVPbkNlbGxNb3VzZVVwIixiZWZvcmVQYXN0ZToiYmVmb3JlUGFzdGUiLGJlZm9yZVJlZG86ImJlZm9yZVJlZG8iLGJlZm9yZVJlZG9TdGFja0NoYW5nZToiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixiZWZvcmVS''@;'; put 'put ''ZWZyZXNoRGltZW5zaW9uczoiYmVmb3JlUmVmcmVzaERpbWVuc2lvbnMiLGJlZm9yZVJlbW92ZUNlbGxDbGFzc05hbWVzOiJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsYmVmb3JlUmVtb3ZlQ2VsbE1ldGE6ImJlZm9yZVJlbW92ZUNlbGxNZXRhIixiZWZvcmVSZW1vdmVDb2w6ImJlZm9y''@;'; put 'put ''ZVJlbW92ZUNvbCIsYmVmb3JlUmVtb3ZlUm93OiJiZWZvcmVSZW1vdmVSb3ciLGJlZm9yZVJlbmRlcjoiYmVmb3JlUmVuZGVyIixiZWZvcmVSZW5kZXJlcjoiYmVmb3JlUmVuZGVyZXIiLGJlZm9yZVJvd01vdmU6ImJlZm9yZVJvd01vdmUiLGJlZm9yZVJvd1Jlc2l6ZToiYmVmb3JlUm93UmVz''@;'; put 'put ''aXplIixiZWZvcmVTZXRDZWxsTWV0YToiYmVmb3JlU2V0Q2VsbE1ldGEiLGJlZm9yZVNldFJhbmdlRW5kOiJiZWZvcmVTZXRSYW5nZUVuZCIsYmVmb3JlU2V0UmFuZ2VTdGFydDoiYmVmb3JlU2V0UmFuZ2VTdGFydCIsYmVmb3JlU2V0UmFuZ2VTdGFydE9ubHk6ImJlZm9yZVNldFJhbmdlU3Rh''@;'; put 'put ''cnRPbmx5IixiZWZvcmVTdHJldGNoaW5nQ29sdW1uV2lkdGg6ImJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCIsYmVmb3JlVG91Y2hTY3JvbGw6ImJlZm9yZVRvdWNoU2Nyb2xsIixiZWZvcmVUcmltUm93OiJiZWZvcmVUcmltUm93IixiZWZvcmVVbmRvOiJiZWZvcmVVbmRvIixiZWZvcmVV''@;'; put 'put ''bmRvU3RhY2tDaGFuZ2U6ImJlZm9yZVVuZG9TdGFja0NoYW5nZSIsYmVmb3JlVW5oaWRlQ29sdW1uczoiYmVmb3JlVW5oaWRlQ29sdW1ucyIsYmVmb3JlVW5oaWRlUm93czoiYmVmb3JlVW5oaWRlUm93cyIsYmVmb3JlVW5tZXJnZUNlbGxzOiJiZWZvcmVVbm1lcmdlQ2VsbHMiLGJlZm9yZVVu''@;'; put 'put ''dHJpbVJvdzoiYmVmb3JlVW50cmltUm93IixiZWZvcmVWYWxpZGF0ZToiYmVmb3JlVmFsaWRhdGUiLGJlZm9yZVZhbHVlUmVuZGVyOiJiZWZvcmVWYWx1ZVJlbmRlciIsYmVmb3JlVmlld1JlbmRlcjoiYmVmb3JlVmlld1JlbmRlciIsY29uc3RydWN0OiJjb25zdHJ1Y3QiLGluaXQ6ImluaXQi''@;'; put 'put ''LG1vZGlmeUF1dG9Db2x1bW5TaXplU2VlZDoibW9kaWZ5QXV0b0NvbHVtblNpemVTZWVkIixtb2RpZnlBdXRvZmlsbFJhbmdlOiJtb2RpZnlBdXRvZmlsbFJhbmdlIixtb2RpZnlDb2xIZWFkZXI6Im1vZGlmeUNvbEhlYWRlciIsbW9kaWZ5Q29sdW1uSGVhZGVySGVpZ2h0OiJtb2RpZnlDb2x1''@;'; put 'put ''bW5IZWFkZXJIZWlnaHQiLG1vZGlmeUNvbFdpZHRoOiJtb2RpZnlDb2xXaWR0aCIsbW9kaWZ5Q29weWFibGVSYW5nZToibW9kaWZ5Q29weWFibGVSYW5nZSIsbW9kaWZ5RGF0YToibW9kaWZ5RGF0YSIsbW9kaWZ5R2V0Q2VsbENvb3JkczoibW9kaWZ5R2V0Q2VsbENvb3JkcyIsbW9kaWZ5Um93''@;'; put 'put ''RGF0YToibW9kaWZ5Um93RGF0YSIsbW9kaWZ5Um93SGVhZGVyOiJtb2RpZnlSb3dIZWFkZXIiLG1vZGlmeVJvd0hlYWRlcldpZHRoOiJtb2RpZnlSb3dIZWFkZXJXaWR0aCIsbW9kaWZ5Um93SGVpZ2h0OiJtb2RpZnlSb3dIZWlnaHQiLG1vZGlmeVNvdXJjZURhdGE6Im1vZGlmeVNvdXJjZURh''@;'; put 'put ''dGEiLG1vZGlmeVRyYW5zZm9ybUVuZDoibW9kaWZ5VHJhbnNmb3JtRW5kIixtb2RpZnlUcmFuc2Zvcm1TdGFydDoibW9kaWZ5VHJhbnNmb3JtU3RhcnQiLHBlcnNpc3RlbnRTdGF0ZUxvYWQ6InBlcnNpc3RlbnRTdGF0ZUxvYWQiLHBlcnNpc3RlbnRTdGF0ZVJlc2V0OiJwZXJzaXN0ZW50U3Rh''@;'; put 'put ''dGVSZXNldCIscGVyc2lzdGVudFN0YXRlU2F2ZToicGVyc2lzdGVudFN0YXRlU2F2ZSJ9LGZlYXR1cmVzOltobyhbU08sUVNlXSksRDJdLGRlY2xzOjIsdmFyczoxLGNvbnN0czpbWzMsImlkIl0sWyJjb250YWluZXIiLCIiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJkNyKDAsImRp''@;'; put 'put ''diIsMCwxKSwyJmgmJlR0KCJpZCIsdi5ob3RJZCl9LGVuY2Fwc3VsYXRpb246Mn0pLGR9KSgpLGQ2ZT0oKCk9PntjbGFzcyBke3N0YXRpYyBmb3JSb290KCl7cmV0dXJue25nTW9kdWxlOmQscHJvdmlkZXJzOltTT119fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5l''@;'; put 'put ''dyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHt9KSxkLnZlcnNpb249IjEyLjEuMiIsZH0pKCk7ZnVuY3Rpb24gaGV0KGQsZyl7MSZkJiYobnQoMCwic3BhbiIsNiksWXQoMSwiIExvYWRpbmcuLi4gIiksb3QoKSl9ZnVuY3Rpb24gZGV0KGQsZyl7MSZk''@;'; put 'put ''JiYobnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyLCJMb2FkaW5nIHN1Ym1pdHRlZCB0YWJsZSIpLG90KCkoKSl9ZnVuY3Rpb24gcGV0KGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw0KSxybigxLGhldCwyLDAsInNwYW4iLDUpLHJuKDIsZGV0LDMsMCwiZGl2IiwzKSxvdCgpKSwyJmQpe2NvbnN0''@;'; put 'put ''IGg9UXQoKTt1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKSx1dCgxKSxUdCgibmdJZiIsIWgubG9hZGVkKX19Y29uc3QgZ2V0PWZ1bmN0aW9uKGQsZyl7cmV0dXJue3JlamVjdGVkOmQsYWNjZXB0ZWQ6Z319O2Z1bmN0aW9uIG1ldChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRp''@;'; put 'put ''diIpKDEsImRpdiIsNykoMiwiZGl2Iiw4KSgzLCJoNCIsOSksWXQoNCwiU3RhZ2VkIERhdGEiKSxvdCgpKCkoKSxudCg1LCJkaXYiLDEwKSg2LCJkaXYiLDExKSg3LCJkaXYiLDEyKSg4LCJkaXYiLDgpLFl0KDksIkJhc2ljIFN1Ym1pdHRlZCBEZXRhaWxzIiksb3QoKSgpLG50KDEwLCJkaXYi''@;'; put 'put ''KSgxMSwic3BhbiIpLFl0KDEyLCJUYWJsZSBJZDoiKSxvdCgpLG50KDEzLCJzdHJvbmciKSgxNCwic3BhbiIpLFl0KDE1KSxvdCgpKCkoKSxudCgxNiwiZGl2IikoMTcsInNwYW4iKSxZdCgxOCwiQmFzZSBUYWJsZToiKSxvdCgpLG50KDE5LCJhIiwxMyksR24oImNsaWNrIixmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiBpdChoKSxhKFF0KCkudmlld2VyVGFibGVTY3JlZW4oKSl9KSxZdCgyMCksb3QoKSgpLG50KDIxLCJkaXYiKSgyMiwic3BhbiIpLFl0KDIzLCJTdWJtaXQgRGF0ZToiKSxvdCgpLG50KDI0LCJzcGFuIiwxNCksWXQoMjUpLG90KCkoKSxudCgyNiwiZGl2IikoMjcsInNwYW4iKSxZ''@;'; put 'put ''dCgyOCwiUmV2aWV3IFN0YXR1czoiKSxvdCgpLG50KDI5LCJzcGFuIiwxNSksWXQoMzApLG90KCkoKSgpLG50KDMxLCJkaXYiLDE2KSgzMiwiZGl2IiwxMikoMzMsImRpdiIsOCksWXQoMzQsIkFjdGlvbnMiKSxvdCgpKCksbnQoMzUsImRpdiIsMTcpKDM2LCJkaXYiLDE4KSgzNywiYnV0dG9u''@;'; put 'put ''IiwxOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkudmlld2VyVGFibGVTY3JlZW4oKSl9KSxZdCgzOCwiIEdvIHRvIGJhc2UgdGFibGUgc2NyZWVuICIpLG90KCksbnQoMzksImJ1dHRvbiIsMjApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCks''@;'; put 'put ''YShRdCgpLmFwcHJvdmVUYWJsZVNjcmVlbigpKX0pLFl0KDQwLCIgR28gdG8gYXBwcm92YWxzIHNjcmVlbiAiKSxvdCgpLG50KDQxLCJidXR0b24iLDIxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5nb0JhY2soKSl9KSxZdCg0MiwiIEdvIGJhY2sgdG8gZWRp''@;'; put 'put ''dG9yICIpLG90KCksbnQoNDMsImJ1dHRvbiIsMjIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCk7cmV0dXJuIGEoeS5kb3dubG9hZChudWxsPT15LnRhYmxlRGV0YWlscz9udWxsOnkudGFibGVEZXRhaWxzLlRBQkxFX0lEKSl9KSxDcig0NCwiY2xyLWljb24iLDIz''@;'; put 'put ''KSxvdCgpKCkoKSgpKCksbnQoNDUsImRpdiIsMjQpLENyKDQ2LCJob3QtdGFibGUiLDI1KSxvdCgpLENyKDQ3LCJkaXYiLDI2KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO3V0KDE1KSxKaSgiICIsbnVsbD09aC50YWJsZURldGFpbHM/bnVsbDpoLnRhYmxlRGV0YWlscy5UQUJMRV9JRCwi''@;'; put 'put ''IiksdXQoNSksSmkoIiAiLG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuQkFTRV9UQUJMRSwiICIpLHV0KDUpLEppKCIgIixudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlNVQk1JVFRFRF9PTl9EVFRNLCIgIiksdXQoNCksVHQoIm5nQ2xh''@;'; put 'put ''c3MiLGozKDEzLGdldCwiUkVKRUNURUQiPT09KG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCksIkFQUFJPVkVEIj09PShudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlJFVklFV19TVEFUVVNfSUQpKSksdXQo''@;'; put 'put ''MSksSmkoIiAiLG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCwiICIpLHV0KDkpLFR0KCJkaXNhYmxlZCIsIkFQUFJPVkVEIj09PShudWxsPT1oLnRhYmxlRGV0YWlscz9udWxsOmgudGFibGVEZXRhaWxzLlJFVklFV19TVEFUVVNfSUQp''@;'; put 'put ''fHwiUkVKRUNURUQiPT09KG51bGw9PWgudGFibGVEZXRhaWxzP251bGw6aC50YWJsZURldGFpbHMuUkVWSUVXX1NUQVRVU19JRCkpLHV0KDcpLFR0KCJkYXRhIixoLmhvdFRhYmxlLmRhdGEpKCJjb2xIZWFkZXJzIixoLmhvdFRhYmxlLmNvbEhlYWRlcnMpKCJjb2x1bW5zIixoLmhvdFRhYmxl''@;'; put 'put ''LmNvbHVtbnMpKCJtYXhSb3dzIixoLmhvdFRhYmxlLm1heFJvd3MpKCJoZWlnaHQiLGguaG90VGFibGUuaGVpZ2h0KSgibGljZW5zZUtleSIsaC5ob3RUYWJsZS5saWNlbnNlS2V5KSgiY2VsbHMiLGguaG90VGFibGUuY2VsbHMpfX1jb25zdCB2ZXQ9W3twYXRoOiI6dGFibGVJZCIsY29tcG9u''@;'; put 'put ''ZW50OigoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMuYXBwU2VydmljZT1oLHRoaXMuc2FzU3RvcmVTZXJ2aWNlPXYsdGhpcy5ldmVudFNlcnZpY2U9eSx0aGlzLnJvdXRlPUMsdGhpcy5yb3V0ZXI9SSx0aGlzLnNhc1NlcnZpY2U9Wix0aGlzLmxvYWRlZD0hMSx0''@;'; put 'put ''aGlzLmhvdFRhYmxlPXtkYXRhOltdLGNvbEhlYWRlcnM6W10sY29sdW1uczpbXSxoZWlnaHQ6NTAwLHNldHRpbmdzOnt9LGxpY2Vuc2VLZXk6dm9pZCAwLG1heFJvd3M6dGhpcy5hcHBTZXJ2aWNlLmRlbW9MaW1pdHMucm93c19hbGxvd2VkfHwxLzB9fXN1Ym1pdHRlZFRhYmxlU2NyZWVuKCl7''@;'; put 'put ''dGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKCIvc3RhZ2UvIit0aGlzLnRhYmxlX2lkKX1hcHByb3ZlVGFibGVTY3JlZW4oKXt0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoIi9hcHByb3ZlL2FwcHJvdmVEZXQvIit0aGlzLnRhYmxlX2lkKX12aWV3ZXJUYWJsZVNjcmVlbigpe3RoaXMucm91dGUu''@;'; put 'put ''bmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK3RoaXMudGFibGVEZXRhaWxzLkJBU0VfVEFCTEUpfWdvQmFjaygpe3RoaXMucm91dGUubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK3RoaXMudGFibGVEZXRhaWxzLkJBU0VfVEFCTEUpfWRvd25sb2FkKGgpe2xldCB2PXRoaXMuc2FzU2Vydmlj''@;'; put 'put ''ZS5nZXRTYXNqc0NvbmZpZygpLHk9di5zZXJ2ZXJVcmwsQz12LmFwcExvYyxJPXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7d2luZG93Lm9wZW4oeStJKyIvP19wcm9ncmFtPSIrQysiL3NlcnZpY2VzL2F1ZGl0b3JzL2dldGF1ZGl0ZmlsZSZ0YWJsZT0iK2gpfW5nT25Jbml0''@;'; put 'put ''KCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih0aGlzLmFwcFNlcnZpY2UuaG90X2xpY2Vuc2Vfa2V5LnN1YnNjcmliZShoPT57dGhpcy5ob3RUYWJsZS5saWNlbnNlS2V5PWh9KSx2b2lkIDAhPT10aGlzLnJvdXRlci5zbmFwc2hvdC5wYXJhbXMudGFibGVJ''@;'; put 'put ''ZCl7dGhpcy50YWJsZV9pZD10aGlzLnJvdXRlci5zbmFwc2hvdC5wYXJhbXMudGFibGVJZDt0cnl7bGV0IGg9eWllbGQgdGhpcy5zYXNTdG9yZVNlcnZpY2UuZ2V0Q2hhbmdlSW5mbyh0aGlzLnRhYmxlX2lkKTtpZighaHx8IWguanNwYXJhbXMpdGhyb3cgbmV3IEVycm9yKCJqc3BhcmFtcyBw''@;'; put 'put ''cm9wZXJ0eSBpcyBtaXNzaW5nIGZyb20gcmVzcG9uc2UuIik7dGhpcy50YWJsZURldGFpbHM9aC5qc3BhcmFtc1swXX1jYXRjaChoKXtsZXQgdj17fTtoLk1FU1NBR0U/dj1oOnYuTUVTU0FHRT1oLHRoaXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigicHVibGljL2dldGNoYW5n''@;'; put 'put ''ZWluZm8iLHYpfXRyeXtsZXQgaD15aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5vcGVuVGFibGUodGhpcy50YWJsZV9pZCk7aWYoIWh8fCFoLnN0YWdldGFibGUpdGhyb3cgbmV3IEVycm9yKCJTdGFnZXRhYmxlIHByb3BlcnR5IGlzIG1pc3NpbmcgZnJvbSByZXNwb25zZS4iKTtsZXQgdj1o''@;'; put 'put ''LnN0YWdldGFibGVbMF0seT1bXSxDPVtdO2ZvcihsZXQgWiBpbiB2KXYmJnkucHVzaChaKTtmb3IobGV0IFo9MDtaPHkubGVuZ3RoO1orKylDLnB1c2goe2RhdGE6eVtaXX0pO2xldCBJPWZ1bmN0aW9uKCl7cmV0dXJue3JlYWRPbmx5OiEwfX07dGhpcy5ob3RUYWJsZS5kYXRhPWguc3RhZ2V0''@;'; put 'put ''YWJsZSx0aGlzLmhvdFRhYmxlLmNvbEhlYWRlcnM9eSx0aGlzLmhvdFRhYmxlLmNvbHVtbnM9Qyx0aGlzLmhvdFRhYmxlLmNlbGxzPUksdGhpcy5sb2FkZWQ9ITAsdGhpcy5zZXRGb2N1cygpfWNhdGNoKGgpe2xldCB2PXt9O2guTUVTU0FHRXx8KHYuTUVTU0FHRT1oKSx0aGlzLmV2ZW50U2Vy''@;'; put 'put ''dmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoImF1ZGl0b3JzL2dldHN0YWdldGFibGUiLHYpLHRoaXMubG9hZGVkPSExfX19KX1zZXRGb2N1cygpe3NldFRpbWVvdXQoKCk9PntsZXQgaD13aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLWJ0biIpO2gmJmguZm9jdXMoKX0s''@;'; put 'put ''MjAwKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoUjcpLEt0KGtnKSxLdChtdSksS3QoWmwpLEt0KFB1KSxLdChnMikpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc3RhZ2UiXV0saG9zdEF0dHJzOlsxLCJjb250''@;'; put 'put ''ZW50LWNvbnRhaW5lciJdLGRlY2xzOjQsdmFyczoyLGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjbHItY29sLW1kLTEyIiwiY2FyZCJdLFsiY2xhc3MiLCJoLTgwdmggZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtY2VudGVyIiw0''@;'; put 'put ''LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwiaC04MHZoIiwiZC1mbGV4IiwianVzdGlmeS1jb250ZW50LWNlbnRlciIsImZsZXgtY29sdW1uIiwiYWxpZ24taXRlbXMtY2VudGVyIl0sWyJjbGFzcyIsInNwaW5uZXIiLDQsIm5nSWYiXSxbMSwic3Bpbm5lciJdLFsibmctaWYiLCJsb2FkZWQiLDEs''@;'; put 'put ''ImNhcmQtaGVhZGVyIl0sWzEsImNhcmQtdGl0bGUiLCJ0ZXh0LWNlbnRlciJdLFsxLCJtdC0wIl0sWyJuZy1pZiIsImxvYWRlZCIsMSwiY2xyLXJvdyJdLFsxLCJjYXJkLWJsb2NrIiwiY2xyLWNvbC1tZC02Il0sWzEsImNhcmQtaGVhZGVyIiwicHktNSJdLFsxLCJiYXNlVGFibGVMaW5rIiwz''@;'; put 'put ''LCJjbGljayJdLFsxLCJtdC0xMCJdLFsxLCJtdC0xMCIsMywibmdDbGFzcyJdLFsxLCJjbHItY29sLW1kLTYiLCJjYXJkLWJsb2NrIl0sWzEsIm10LTIwIl0sWzEsInJvdyJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImNsaWNrIl0s''@;'; put 'put ''WyJpZCIsImFwcHJvdmFsLWJ0biIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbMSwiYnRuIiwiYnRuLXNtIiwiYnRuLWluZm8tb3V0bGluZSIsInRleHQtY2VudGVyIiwibXQtMjAiLDMs''@;'; put 'put ''ImNsaWNrIl0sWzEsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwidGV4dC1jZW50ZXIiLCJtdC0yMCIsIm1pbi13LTAiLDMsImNsaWNrIl0sWyJzaGFwZSIsImRvd25sb2FkIl0sWzEsImNhcmQtYmxvY2siXSxbImhvdElkIiwiaG90SW5zdGFuY2UiLCJpZCIsImhvdFRhYmxlIiwic3Ry''@;'; put 'put ''ZXRjaEgiLCJhbGwiLDMsImRhdGEiLCJjb2xIZWFkZXJzIiwiY29sdW1ucyIsIm1heFJvd3MiLCJoZWlnaHQiLCJsaWNlbnNlS2V5IiwiY2VsbHMiXSxbMSwiY2FyZC1mb290ZXIiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZo''@;'; put 'put ''JiYobnQoMCwiZGl2IiwwKSgxLCJkaXYiLDEpLHJuKDIscGV0LDMsMiwiZGl2IiwyKSxybigzLG1ldCw0OCwxNiwiZGl2IiwzKSxvdCgpKCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIiwhdi5sb2FkZWQpLHV0KDEpLFR0KCJuZ0lmIix2LmxvYWRlZCkpfSxkZXBlbmRlbmNpZXM6W2xjLE5vLHds''@;'; put 'put ''LEF0ZV0sc3R5bGVzOlsiLnJlamVjdGVkW19uZ2NvbnRlbnQtJUNPTVAlXXtjb2xvcjojZjgzMTI2O2ZvbnQtd2VpZ2h0OjcwMH0uYWNjZXB0ZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiMzZmM0MjQ7Zm9udC13ZWlnaHQ6NzAwfS5iYXNlVGFibGVMaW5rW19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XXtjdXJzb3I6cG9pbnRlcjttYXJnaW4tdG9wOjEwcHg7Y29sb3I6IzAwN2NiYn0iXX0pLGR9KSgpfV07bGV0IEFldD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1''@;'; put 'put ''aW5qPWIwKHtpbXBvcnRzOltiYSxuTyxYaC5mb3JDaGlsZCh2ZXQpLGQ2ZS5mb3JSb290KCldfSksZH0pKCk7ZnVuY3Rpb24gcDZlKGQpe3JldHVybihwNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0''@;'; put 'put ''dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiB5ZXQoZCxnKXtpZighKGQgaW5zdGFuY2Vv''@;'; put 'put ''ZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBKU2UoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0h''@;'; put 'put ''MCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBNOCgpe3JldHVybiBNOD0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7''@;'; put 'put ''dmFyIHk9YmV0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxNOC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gYmV0KGQsZyl7''@;'; put 'put ''Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1BNChkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBnNmUoZCxnKXtyZXR1cm4oZzZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9u''@;'; put 'put ''KHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24ga2V0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09cDZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9y''@;'; put 'put ''cyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBNZXQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3Jl''@;'; put 'put ''dHVybiBkfShkKX1mdW5jdGlvbiBBNChkKXtyZXR1cm4oQTQ9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgWFNlPSJoYW5kc29u''@;'; put 'put ''dGFibGVFZGl0b3IiLG02ZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gX2V0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5''@;'; put 'put ''cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmc2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0''@;'; put 'put ''aW9uIENldChkKXt2YXIgZz1mdW5jdGlvbiBFZXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBC''@;'; put 'put ''b29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1BNChkKTtpZihnKXt2YXIgQz1BNCh0aGlzKS5jb25zdHJ1Y3Rvcjt5''@;'; put 'put ''PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4ga2V0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIHlldCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiB3ZXQo''@;'; put 'put ''ZCxnLGgpe2cmJkpTZShkLnByb3RvdHlwZSxnKSxoJiZKU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXtNOChBNChoLnByb3RvdHlwZSksIm9wZW4iLHRoaXMpLmNhbGwodGhp''@;'; put 'put ''cyksdGhpcy5odEVkaXRvciYmdGhpcy5odEVkaXRvci5kZXN0cm95KCksIm5vbmUiPT09dGhpcy5odENvbnRhaW5lci5zdHlsZS5kaXNwbGF5JiYodGhpcy5odENvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSIiKSx0aGlzLmh0RWRpdG9yPW5ldyB0aGlzLmhvdC5jb25zdHJ1Y3Rvcih0aGlzLmh0''@;'; put 'put ''Q29udGFpbmVyLHRoaXMuaHRPcHRpb25zKSx0aGlzLmh0RWRpdG9yLmluaXQoKSx0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLmRpc3BsYXk9IiIsdGhpcy5jZWxsUHJvcGVydGllcy5zdHJpY3Q/dGhpcy5odEVkaXRvci5zZWxlY3RDZWxsKDAsMCk6dGhpcy5odEVkaXRvci5kZXNl''@;'; put 'put ''bGVjdENlbGwoKSxWWih0aGlzLlRFWFRBUkVBLDAsdGhpcy5URVhUQVJFQS52YWx1ZS5sZW5ndGgpLHRoaXMucmVmcmVzaERpbWVuc2lvbnMoKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaHRFZGl0b3ImJih0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLmRp''@;'; put 'put ''c3BsYXk9Im5vbmUiKSx0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImJlZm9yZUtleURvd24iKSxNOChBNChoLnByb3RvdHlwZSksImNsb3NlIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToicHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWix1ZSxfZSl7TTgoQTQoaC5wcm90b3R5cGUpLCJw''@;'; put 'put ''cmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEksWix1ZSxfZSk7dmFyIEJlPXRoaXMsTmU9e3N0YXJ0Um93czowLHN0YXJ0Q29sczowLG1pblJvd3M6MCxtaW5Db2xzOjAsY2xhc3NOYW1lOiJsaXN0Ym94Iixjb3B5UGFzdGU6ITEsYXV0b0NvbHVtblNpemU6ITEsYXV0b1Jvd1NpemU6ITEs''@;'; put 'put ''cmVhZE9ubHk6ITAsZmlsbEhhbmRsZTohMSxhdXRvV3JhcENvbDohMSxhdXRvV3JhcFJvdzohMSxhZnRlck9uQ2VsbE1vdXNlRG93bjpmdW5jdGlvbihwdCxPdCl7dmFyICR0PXRoaXMuZ2V0U291cmNlRGF0YShPdC5yb3csT3QuY29sKTt2b2lkIDAhPT0kdCYmQmUuc2V0VmFsdWUoJHQpLEJl''@;'; put 'put ''Lmluc3RhbmNlLmRlc3Ryb3lFZGl0b3IoKX0scHJldmVudFdoZWVsOiEwLGxheW91dERpcmVjdGlvbjp0aGlzLmhvdC5pc1J0bCgpPyJydGwiOiJsdHIifTt0aGlzLmNlbGxQcm9wZXJ0aWVzLmhhbmRzb250YWJsZSYmSTEoTmUsX2UuaGFuZHNvbnRhYmxlKSx0aGlzLmh0T3B0aW9ucz1OZX19''@;'; put 'put ''LHtrZXk6ImJlZ2luRWRpdGluZyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm9uQmVnaW5FZGl0aW5nO0kmJiExPT09SSgpfHxNOChBNChoLnByb3RvdHlwZSksImJlZ2luRWRpdGluZyIsdGhpcykuY2FsbCh0aGlzLHksQyl9fSx7a2V5OiJjcmVh''@;'; put 'put ''dGVFbGVtZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtNOChBNChoLnByb3RvdHlwZSksImNyZWF0ZUVsZW1lbnRzIix0aGlzKS5jYWxsKHRoaXMpO3ZhciB5PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKTt5LmNsYXNzTmFtZT0iaGFuZHNvbnRhYmxlRWRpdG9yIix0''@;'; put 'put ''aGlzLlRFWFRBUkVBX1BBUkVOVC5hcHBlbmRDaGlsZCh5KSx0aGlzLmh0Q29udGFpbmVyPXksdGhpcy5hc3NpZ25Ib29rcygpfX0se2tleToiZmluaXNoRWRpdGluZyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKHRoaXMuaHRFZGl0b3ImJnRoaXMuaHRFZGl0b3IuaXNMaXN0ZW5pbmcoKSYm''@;'; put 'put ''dGhpcy5ob3QubGlzdGVuKCksdGhpcy5odEVkaXRvciYmdGhpcy5odEVkaXRvci5nZXRTZWxlY3RlZExhc3QoKSl7dmFyIFo9dGhpcy5odEVkaXRvci5nZXRJbnN0YW5jZSgpLmdldFZhbHVlKCk7dm9pZCAwIT09WiYmdGhpcy5zZXRWYWx1ZShaKX1NOChBNChoLnByb3RvdHlwZSksImZpbmlz''@;'; put 'put ''aEVkaXRpbmciLHRoaXMpLmNhbGwodGhpcyx5LEMsSSl9fSx7a2V5OiJhc3NpZ25Ib29rcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuaG90LmFkZEhvb2soImFmdGVyRGVzdHJveSIsZnVuY3Rpb24oKXt5Lmh0RWRpdG9yJiZ5Lmh0RWRpdG9yLmRlc3Ryb3koKX0pfX0se2tl''@;'; put 'put ''eToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxJPXRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpO004KEE0KGgucHJvdG90eXBlKSwicmVnaXN0ZXJTaG9ydGN1dHMiLHRoaXMpLmNhbGwodGhpcyk7dmFyIHVl''@;'; put 'put ''PWZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9eS5odEVkaXRvci5nZXRJbnN0YW5jZSgpO2lmKHZvaWQgMCE9PUJlJiYoQmU8MHx8S2UuZmxpcHBlZCYmQmU+S2UuY291bnRSb3dzKCktMT9LZS5kZXNlbGVjdENlbGwoKTpLZS5zZWxlY3RDZWxsKEJlLDApLEtlLmdldERhdGEoKS5sZW5ndGgpKXJl''@;'; put 'put ''dHVybiBOZS5wcmV2ZW50RGVmYXVsdCgpLF84KE5lKSx5LmhvdC5saXN0ZW4oKSx5LlRFWFRBUkVBLmZvY3VzKCksITF9O0kuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJBcnJvd1VwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKEJlKXt2YXIgS2UscHQsTmU9eS5odEVkaXRvci5nZXRJbnN0YW5jZSgp''@;'; put 'put ''O3JldHVybiFOZS5nZXRTZWxlY3RlZExhc3QoKSYmTmUuZmxpcHBlZD9LZT1OZS5jb3VudFJvd3MoKS0xOk5lLmdldFNlbGVjdGVkTGFzdCgpJiYoTmUuZmxpcHBlZD8ocHQ9TmUuZ2V0U2VsZWN0ZWRMYXN0KClbMF0sS2U9TWF0aC5tYXgoMCxwdC0xKSk6S2U9KHB0PU5lLmdldFNlbGVjdGVk''@;'; put 'put ''TGFzdCgpWzBdKS0xKSx1ZShLZSxCZSl9LHByZXZlbnREZWZhdWx0OiExfSx7a2V5czpbWyJBcnJvd0Rvd24iXV0sY2FsbGJhY2s6ZnVuY3Rpb24oQmUpe3ZhciBLZSxwdCxOZT15Lmh0RWRpdG9yLmdldEluc3RhbmNlKCk7aWYoTmUuZ2V0U2VsZWN0ZWRMYXN0KCl8fE5lLmZsaXBwZWQpe2lm''@;'; put 'put ''KE5lLmdldFNlbGVjdGVkTGFzdCgpKWlmKE5lLmZsaXBwZWQpS2U9TmUuZ2V0U2VsZWN0ZWRMYXN0KClbMF0rMTtlbHNlIGlmKCFOZS5mbGlwcGVkKXt2YXIgT3Q9TmUuY291bnRSb3dzKCktMTtwdD1OZS5nZXRTZWxlY3RlZExhc3QoKVswXSxLZT1NYXRoLm1pbihPdCxwdCsxKX19ZWxzZSBL''@;'; put 'put ''ZT0wO3JldHVybiB1ZShLZSxCZSl9LHByZXZlbnREZWZhdWx0OiExfV0se2dyb3VwOlhTZSxyZWxhdGl2ZVRvR3JvdXA6bGVlLHBvc2l0aW9uOiJiZWZvcmUifSl9fSx7a2V5OiJ1bnJlZ2lzdGVyU2hvcnRjdXRzIix2YWx1ZTpmdW5jdGlvbigpe004KEE0KGgucHJvdG90eXBlKSwidW5yZWdp''@;'; put 'put ''c3RlclNob3J0Y3V0cyIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLmhvdC5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJlZGl0b3IiKS5yZW1vdmVTaG9ydGN1dHNCeUdyb3VwKFhTZSl9fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iaGFuZHNvbnRh''@;'; put 'put ''YmxlIn19XSksaH0oVlMpO2Z1bmN0aW9uIHY2ZShkKXtyZXR1cm4odjZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9''@;'; put 'put ''PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gS1NlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJs''@;'; put 'put ''ZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24galMoKXtyZXR1cm4galM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5i''@;'; put 'put ''aW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PURldChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0salMuYXBwbHkodGhpcyxhcmd1bWVu''@;'; put 'put ''dHMpfWZ1bmN0aW9uIERldChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9SXYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gQTZlKGQsZyl7cmV0dXJuKEE2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3Rv''@;'; put 'put ''dHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFJldChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXY2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; put 'put ''cigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4geTZlKGQpfWZ1bmN0aW9uIHk2ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1''@;'; put 'put ''cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gSXYoZCl7cmV0dXJuKEl2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9m''@;'; put 'put ''KGgpfSkoZCl9dmFyIHc2ZT1uZXcgV2Vha01hcCxiNmU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIExldChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5j''@;'; put 'put ''dGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZBNmUoZCxnKX0o''@;'; put 'put ''aCxkKTt2YXIgZz1mdW5jdGlvbiBPZXQoZCl7dmFyIGc9ZnVuY3Rpb24gQmV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVy''@;'; put 'put ''biEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9SXYoZCk7aWYoZyl7dmFyIEM9SXYodGhp''@;'; put 'put ''cykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFJldCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gVGV0KGQsZyl7aWYoIShkIGluc3RhbmNl''@;'; put 'put ''b2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZnVuY3Rpb24gUGV0KGQsZyxoKXtnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3''@;'; put 'put ''cml0YWJsZTohMH0pOmRbZ109aH0oeTZlKHk9Zy5jYWxsKHRoaXMsdikpLCJzb3J0QnlSZWxldmFuY2UiLGZ1bmN0aW9uKEMsSSxaKXt2YXIgcHQsT3QsJHQsdWU9W10sX2U9W10sQmU9Qy5sZW5ndGgsTmU9SS5sZW5ndGg7aWYoMD09PUJlKXtmb3IoT3Q9MDtPdDxOZTtPdCsrKV9lLnB1c2go''@;'; put 'put ''T3QpO3JldHVybiBfZX1mb3IoT3Q9MDtPdDxOZTtPdCsrKXtpZihwdD1sM2UoZXUoSVtPdF0pKSxaKSR0PXB0LmluZGV4T2YoQyk7ZWxzZXt2YXIgZm49dGhpcy5jZWxsUHJvcGVydGllcy5sb2NhbGU7JHQ9cHQudG9Mb2NhbGVMb3dlckNhc2UoZm4pLmluZGV4T2YoQy50b0xvY2FsZUxvd2Vy''@;'; put 'put ''Q2FzZShmbikpfS0xIT09JHQmJnVlLnB1c2goe2Jhc2VJbmRleDpPdCxpbmRleDokdCxjaGFyc0xlZnQ6cHQubGVuZ3RoLSR0LUJlLHZhbHVlOnB0fSl9Zm9yKHVlLnNvcnQoZnVuY3Rpb24oTG4saXIpe2lmKC0xPT09aXIuaW5kZXgpcmV0dXJuLTE7aWYoLTE9PT1Mbi5pbmRleClyZXR1cm4g''@;'; put 'put ''MTtpZihMbi5pbmRleDxpci5pbmRleClyZXR1cm4tMTtpZihpci5pbmRleDxMbi5pbmRleClyZXR1cm4gMTtpZihMbi5pbmRleD09PWlyLmluZGV4KXtpZihMbi5jaGFyc0xlZnQ8aXIuY2hhcnNMZWZ0KXJldHVybi0xO2lmKExuLmNoYXJzTGVmdD5pci5jaGFyc0xlZnQpcmV0dXJuIDF9cmV0''@;'; put 'put ''dXJuIDB9KSxPdD0wLE5lPXVlLmxlbmd0aDtPdDxOZTtPdCsrKV9lLnB1c2godWVbT3RdLmJhc2VJbmRleCk7cmV0dXJuIF9lfSkseS5xdWVyeT1udWxsLHkuc3RyaXBwZWRDaG9pY2VzPVtdLHkucmF3Q2hvaWNlcz1bXSx3NmUuc2V0KHk2ZSh5KSx7c2tpcE9uZTohMSxpc01hY09TOnkuaG90''@;'; put 'put ''LnJvb3RXaW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoIk1hYyIpPi0xfSkseX1yZXR1cm4gZnVuY3Rpb24gSWV0KGQsZyxoKXtnJiZLU2UoZC5wcm90b3R5cGUsZyksaCYmS1NlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9''@;'; put 'put ''KGgsW3trZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLnJhd0Nob2ljZXMuZmluZChmdW5jdGlvbihJKXtyZXR1cm4geS5zdHJpcFZhbHVlSWZOZWVkZWQoSSk9PT15LlRFWFRBUkVBLnZhbHVlfSk7cmV0dXJuIFRvKEMpP0M6dGhpcy5URVhUQVJFQS52''@;'; put 'put ''YWx1ZX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe2pTKEl2KGgucHJvdG90eXBlKSwiY3JlYXRlRWxlbWVudHMiLHRoaXMpLmNhbGwodGhpcyksTzAodGhpcy5odENvbnRhaW5lciwiYXV0b2NvbXBsZXRlRWRpdG9yIiksTzAodGhpcy5odENvbnRhaW5lciwtMT09''@;'; put 'put ''PXRoaXMuaG90LnJvb3RXaW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoIk1hYyIpPyIiOiJodE1hY1Njcm9sbCIpfX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dzZlLmdldCh0aGlzKTtqUyhJdihoLnByb3RvdHlwZSksIm9wZW4iLHRoaXMpLmNh''@;'; put 'put ''bGwodGhpcyk7dmFyIEk9dGhpcy5odEVkaXRvci5nZXRJbnN0YW5jZSgpLFo9dm9pZCAwPT09dGhpcy5jZWxsUHJvcGVydGllcy50cmltRHJvcGRvd258fHRoaXMuY2VsbFByb3BlcnRpZXMudHJpbURyb3Bkb3duO3RoaXMuc2hvd0VkaXRhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXMoKTt2YXIg''@;'; put 'put ''dWU9QmMoKTswPT09dWUmJkMuaXNNYWNPUyYmKHVlKz0xNSksdGhpcy5hZGRIb29rKCJiZWZvcmVLZXlEb3duIixmdW5jdGlvbihfZSl7cmV0dXJuIHkub25CZWZvcmVLZXlEb3duKF9lKX0pLEkudXBkYXRlU2V0dGluZ3Moe2NvbFdpZHRoczpaP1tFMih0aGlzLlRFWFRBUkVBKS0yXTp2b2lk''@;'; put 'put ''IDAsd2lkdGg6Wj9FMih0aGlzLlRFWFRBUkVBKSt1ZTp2b2lkIDAscmVuZGVyZXI6ZnVuY3Rpb24oQmUsTmUsS2UscHQsT3QsJHQsZm4pe0J3KEJlLE5lLEtlLHB0LE90LCR0LGZuKTt2YXIgeWksS2ksTG49eS5jZWxsUHJvcGVydGllcyxpcj1Mbi5maWx0ZXJpbmdDYXNlU2Vuc2l0aXZlLG1y''@;'; put 'put ''PUxuLmFsbG93SHRtbCxTcj1Mbi5sb2NhbGUsd3I9eS5xdWVyeSxRcj1ldSgkdCk7UXImJiFtciYmLTEhPT0oeWk9ITA9PT1pcj9Rci5pbmRleE9mKHdyKTpRci50b0xvY2FsZUxvd2VyQ2FzZShTcikuaW5kZXhPZih3ci50b0xvY2FsZUxvd2VyQ2FzZShTcikpKSYmKEtpPVFyLnN1YnN0cih5''@;'; put 'put ''aSx3ci5sZW5ndGgpLFFyPVFyLnJlcGxhY2UoS2ksIjxzdHJvbmc+Ii5jb25jYXQoS2ksIjwvc3Ryb25nPiIpKSksTmUuaW5uZXJIVE1MPVFyfSxhdXRvQ29sdW1uU2l6ZTohMH0pLEMuc2tpcE9uZSYmKEMuc2tpcE9uZT0hMSksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dChmdW5jdGlvbigp''@;'; put 'put ''e3kucXVlcnlDaG9pY2VzKHkuVEVYVEFSRUEudmFsdWUpfSl9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUhvb2tzQnlLZXkoImJlZm9yZUtleURvd24iKSxqUyhJdihoLnByb3RvdHlwZSksImNsb3NlIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzY2Fy''@;'; put 'put ''ZEVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oeSl7alMoSXYoaC5wcm90b3R5cGUpLCJkaXNjYXJkRWRpdG9yIix0aGlzKS5jYWxsKHRoaXMseSksdGhpcy5ob3Qudmlldy5yZW5kZXIoKX19LHtrZXk6InF1ZXJ5Q2hvaWNlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuY2Vs''@;'; put 'put ''bFByb3BlcnRpZXMuc291cmNlO3RoaXMucXVlcnk9eSwiZnVuY3Rpb24iPT10eXBlb2YgST9JLmNhbGwodGhpcy5jZWxsUHJvcGVydGllcyx5LGZ1bmN0aW9uKFope0MucmF3Q2hvaWNlcz1aLEMudXBkYXRlQ2hvaWNlc0xpc3QoQy5zdHJpcFZhbHVlc0lmTmVlZGVkKFopKX0pOkFycmF5Lmlz''@;'; put 'put ''QXJyYXkoSSk/KHRoaXMucmF3Q2hvaWNlcz1JLHRoaXMudXBkYXRlQ2hvaWNlc0xpc3QodGhpcy5zdHJpcFZhbHVlc0lmTmVlZGVkKEkpKSk6dGhpcy51cGRhdGVDaG9pY2VzTGlzdChbXSl9fSx7a2V5OiJ1cGRhdGVDaG9pY2VzTGlzdCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9ZzNlKHRo''@;'; put 'put ''aXMuVEVYVEFSRUEpLEk9V2JlKHRoaXMuVEVYVEFSRUEpLFo9dGhpcy5jZWxsUHJvcGVydGllcy5zb3J0QnlSZWxldmFuY2UsdWU9dGhpcy5jZWxsUHJvcGVydGllcy5maWx0ZXIsX2U9bnVsbCxCZT1udWxsLE5lPXk7WiYmKF9lPXRoaXMuc29ydEJ5UmVsZXZhbmNlKHRoaXMuc3RyaXBWYWx1''@;'; put 'put ''ZUlmTmVlZGVkKHRoaXMuZ2V0VmFsdWUoKSksTmUsdGhpcy5jZWxsUHJvcGVydGllcy5maWx0ZXJpbmdDYXNlU2Vuc2l0aXZlKSk7dmFyIEtlPUFycmF5LmlzQXJyYXkoX2UpP19lLmxlbmd0aDowO2lmKCExPT09dWUpS2UmJihCZT1fZVswXSk7ZWxzZXtmb3IodmFyIHB0PVtdLE90PTAsJHQ9''@;'; put 'put ''TmUubGVuZ3RoO090PCR0JiYhKFomJktlPD1PdCk7T3QrKylwdC5wdXNoKEtlP05lW19lW090XV06TmVbT3RdKTtCZT0wLE5lPXB0fXRoaXMuc3RyaXBwZWRDaG9pY2VzPU5lLHRoaXMuaHRFZGl0b3IubG9hZERhdGEoRFooW05lXSkpLHRoaXMudXBkYXRlRHJvcGRvd25IZWlnaHQoKSx0aGlz''@;'; put 'put ''LmZsaXBEcm9wZG93bklmTmVlZGVkKCksITA9PT10aGlzLmNlbGxQcm9wZXJ0aWVzLnN0cmljdCYmdGhpcy5oaWdobGlnaHRCZXN0TWF0Y2hpbmdDaG9pY2UoQmUpLHRoaXMuaG90Lmxpc3RlbigpLFZaKHRoaXMuVEVYVEFSRUEsQyxDPT09ST92b2lkIDA6SSl9fSx7a2V5OiJmbGlwRHJvcGRv''@;'; put 'put ''d25JZk5lZWRlZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1oTyh0aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLlRBQkxFKSxDPXk9PT10aGlzLmhvdC5yb290V2luZG93LEk9dGhpcy5jZWxsUHJvcGVydGllcy5wcmV2ZW50T3ZlcmZsb3c7aWYoQ3x8IUMmJihJfHwiaG9yaXpvbnRhbCI9PT1J''@;'; put 'put ''KSlyZXR1cm4hMTt2YXIgWj1qdSh0aGlzLlRFWFRBUkVBKSx1ZT1EMSh0aGlzLlRFWFRBUkVBKSxfZT10aGlzLmdldERyb3Bkb3duSGVpZ2h0KCksQmU9eS5zY3JvbGxUb3AsTmU9RDEodGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5USEVBRCksS2U9anUoeSkscHQ9Wi50b3AtS2UudG9wLU5l''@;'; put 'put ''K0JlLE90PXkuc2Nyb2xsSGVpZ2h0LXB0LU5lLXVlLCR0PV9lPk90JiZwdD5PdDtyZXR1cm4gJHQ/dGhpcy5mbGlwRHJvcGRvd24oX2UpOnRoaXMudW5mbGlwRHJvcGRvd24oKSx0aGlzLmxpbWl0RHJvcGRvd25JZk5lZWRlZCgkdD9wdDpPdCxfZSksJHR9fSx7a2V5OiJsaW1pdERyb3Bkb3du''@;'; put 'put ''SWZOZWVkZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYoQz55KXt2YXIgX2UsST0wLFo9MCx1ZT0wO2Rve0krPXVlPXRoaXMuaHRFZGl0b3IuZ2V0Um93SGVpZ2h0KFopfHx0aGlzLmh0RWRpdG9yLnZpZXcuX3d0LmdldFNldHRpbmcoImRlZmF1bHRSb3dIZWlnaHQiKSxaKz0xfXdoaWxlKEk8''@;'; put 'put ''eSk7X2U9SS11ZSx0aGlzLmh0RWRpdG9yLmZsaXBwZWQmJih0aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlLnRvcD0iIi5jb25jYXQocGFyc2VJbnQodGhpcy5odEVkaXRvci5yb290RWxlbWVudC5zdHlsZS50b3AsMTApK0MtX2UsInB4IikpLHRoaXMuc2V0RHJvcGRvd25IZWlnaHQo''@;'; put 'put ''SS11ZSl9fX0se2tleToiZmxpcERyb3Bkb3duIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmh0RWRpdG9yLnJvb3RFbGVtZW50LnN0eWxlO0MucG9zaXRpb249ImFic29sdXRlIixDLnRvcD0iIi5jb25jYXQoLXksInB4IiksdGhpcy5odEVkaXRvci5mbGlwcGVkPSEwfX0se2tleToi''@;'; put 'put ''dW5mbGlwRHJvcGRvd24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5odEVkaXRvci5yb290RWxlbWVudC5zdHlsZTt5LnBvc2l0aW9uPSJhYnNvbHV0ZSIseS50b3A9IiIsdGhpcy5odEVkaXRvci5mbGlwcGVkPXZvaWQgMH19LHtrZXk6InVwZGF0ZURyb3Bkb3duSGVpZ2h0Iix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaHRFZGl0b3IuZ2V0Q29sV2lkdGgoMCkrQmModGhpcy5ob3Qucm9vdERvY3VtZW50KSsyLEM9dGhpcy5jZWxsUHJvcGVydGllcy50cmltRHJvcGRvd247dGhpcy5odEVkaXRvci51cGRhdGVTZXR0aW5ncyh7aGVpZ2h0OnRoaXMuZ2V0RHJvcGRvd25I''@;'; put 'put ''ZWlnaHQoKSx3aWR0aDpDP3ZvaWQgMDp5fSksdGhpcy5odEVkaXRvci52aWV3Ll93dC53dFRhYmxlLmFsaWduT3ZlcmxheXNXaXRoVHJpbW1pbmdDb250YWluZXIoKX19LHtrZXk6InNldERyb3Bkb3duSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmh0RWRpdG9yLnVwZGF0ZVNldHRp''@;'; put 'put ''bmdzKHtoZWlnaHQ6eX0pfX0se2tleToiaGlnaGxpZ2h0QmVzdE1hdGNoaW5nQ2hvaWNlIix2YWx1ZTpmdW5jdGlvbih5KXsibnVtYmVyIj09dHlwZW9mIHk/dGhpcy5odEVkaXRvci5zZWxlY3RDZWxsKHksMCx2b2lkIDAsdm9pZCAwLHZvaWQgMCwhMSk6dGhpcy5odEVkaXRvci5kZXNlbGVj''@;'; put 'put ''dENlbGwoKX19LHtrZXk6ImdldERyb3Bkb3duSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaHRFZGl0b3IuZ2V0SW5zdGFuY2UoKS5nZXRSb3dIZWlnaHQoMCl8fDIzLEM9dGhpcy5jZWxsUHJvcGVydGllcy52aXNpYmxlUm93cztyZXR1cm4gdGhpcy5zdHJpcHBlZENob2lj''@;'; put 'put ''ZXMubGVuZ3RoPj1DP0MqeTp0aGlzLnN0cmlwcGVkQ2hvaWNlcy5sZW5ndGgqeSs4fX0se2tleToic3RyaXBWYWx1ZUlmTmVlZGVkIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5zdHJpcFZhbHVlc0lmTmVlZGVkKFt5XSlbMF19fSx7a2V5OiJzdHJpcFZhbHVlc0lmTmVlZGVkIix2''@;'; put 'put ''YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmNlbGxQcm9wZXJ0aWVzLmFsbG93SHRtbCxJPU9sKHksZnVuY3Rpb24odWUpe3JldHVybiBldSh1ZSl9KTtyZXR1cm4gT2woSSxmdW5jdGlvbih1ZSl7cmV0dXJuIEM/dWU6bDNlKHVlKX0pfX0se2tleToiYWxsb3dLZXlFdmVudFByb3BhZ2F0''@;'; put 'put ''aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmh0RWRpdG9yLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksSV9yb3c9Qz9DLmZyb20ucm93Oi0xLFo9ITE7cmV0dXJuIHk9PT1Rby5BUlJPV19ET1dOJiZJX3Jvdz4wJiZJX3Jvdzx0aGlzLmh0RWRpdG9yLmNvdW50Um93cygpLTEmJiha''@;'; put 'put ''PSEwKSx5PT09UW8uQVJST1dfVVAmJklfcm93Pi0xJiYoWj0hMCksWn19LHtrZXk6Im9uQmVmb3JlS2V5RG93biIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXc2ZS5nZXQodGhpcyk7aWYoSS5za2lwT25lPSExLCRiZSh5LmtleUNvZGUpfHx5LmtleUNvZGU9PT1Rby5CQUNLU1BB''@;'; put 'put ''Q0V8fHkua2V5Q29kZT09PVFvLkRFTEVURXx8eS5rZXlDb2RlPT09UW8uSU5TRVJUKXt2YXIgWj0xMDtpZih5LmtleUNvZGU9PT1Rby5DJiYoeS5jdHJsS2V5fHx5Lm1ldGFLZXkpKXJldHVybjt0aGlzLmlzT3BlbmVkKCl8fChaKz0xMCksdGhpcy5odEVkaXRvciYmdGhpcy5ob3QuX3JlZ2lz''@;'; put 'put ''dGVyVGltZW91dChmdW5jdGlvbigpe0MucXVlcnlDaG9pY2VzKEMuVEVYVEFSRUEudmFsdWUpLEkuc2tpcE9uZT0hMH0sWil9fX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImF1dG9jb21wbGV0ZSJ9fV0pLGh9KG02ZSk7ZnVuY3Rpb24gXzZlKGQpe3JldHVy''@;'; put 'put ''bihfNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJv''@;'; put 'put ''bCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBIZXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiAkU2UoZCxnKXtmb3Io''@;'; put 'put ''dmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBDNmUoZCxnKXty''@;'; put 'put ''ZXR1cm4oQzZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gWmV0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09XzZlKGcpfHwiZnVuY3Rpb24iPT10eXBl''@;'; put 'put ''b2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiB6ZXQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNl''@;'; put 'put ''RXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiB5dGUoZCl7cmV0dXJuKHl0ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlv''@;'; put 'put ''bihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBxU2U9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFZldChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9u''@;'; put 'put ''IG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBl''@;'; put 'put ''Iix7d3JpdGFibGU6ITF9KSxnJiZDNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBqZXQoZCl7dmFyIGc9ZnVuY3Rpb24gR2V0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYo''@;'; put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3Zh''@;'; put 'put ''ciB5LHY9eXRlKGQpO2lmKGcpe3ZhciBDPXl0ZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWmV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIEhldCh0aGlz''@;'; put 'put ''LGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBOZXQoZCxnLGgpe2cmJiRTZShkLnByb3RvdHlwZSxnKSxoJiYkU2UoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYmVnaW5FZGl0aW5nIix2''@;'; put 'put ''YWx1ZTpmdW5jdGlvbih5LEMpe2lmKEMmJiJtb3VzZXVwIj09PUMudHlwZSl7dmFyIEk9dGhpcy5URC5xdWVyeVNlbGVjdG9yKCdpbnB1dFt0eXBlPSJjaGVja2JveCJdJyk7dGwoSSwiaHRCYWRWYWx1ZSIpfHxJLmNsaWNrKCl9fX0se2tleToiZmluaXNoRWRpdGluZyIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oKXt9fSx7a2V5OiJpbml0Iix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToiZ2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToic2V0VmFsdWUiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7fX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7fX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNoZWNrYm94In19XSksaH0oa08pLGVNZT1MKDQxMDc4KTtmdW5jdGlvbiBrNmUoZCl7cmV0dXJuKGs2ZT0iZnVuY3Rpb24iPT10eXBl''@;'; put 'put ''b2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlw''@;'; put 'put ''ZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHRNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIER2KCl7cmV0dXJuIER2PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1RZXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0''@;'; put 'put ''T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LER2LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBRZXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5''@;'; put 'put ''LmNhbGwoZCxnKSYmbnVsbCE9PShkPUU4KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFM2ZShkLGcpe3JldHVybihTNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1m''@;'; put 'put ''dW5jdGlvbiBLZXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1rNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVk''@;'; put 'put ''Iik7cmV0dXJuIGZ1bmN0aW9uICRldChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEU4KGQpe3JldHVybihFOD1P''@;'; put 'put ''YmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciByTWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEpldChkLGcpe2lmKCJmdW5jdGlvbiIh''@;'; put 'put ''PXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxl''@;'; put 'put ''OiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZTNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBYZXQoZCl7dmFyIGc9ZnVuY3Rpb24gcWV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0''@;'; put 'put ''fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVu''@;'; put 'put ''Y3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9RTgoZCk7aWYoZyl7dmFyIEM9RTgodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; put 'put ''cyk7cmV0dXJuIEtldCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gWWV0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5j''@;'; put 'put ''YWxsKHRoaXMsdikpLmRlZmF1bHREYXRlRm9ybWF0PSJERC9NTS9ZWVlZIix5LmlzQ2VsbEVkaXRlZD0hMSx5LnBhcmVudERlc3Ryb3llZD0hMSx5LiRkYXRlUGlja2VyPW51bGwseX1yZXR1cm4gZnVuY3Rpb24gVWV0KGQsZyxoKXtnJiZ0TWUoZC5wcm90b3R5cGUsZyksaCYmdE1lKGQsaCks''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZigiZnVuY3Rpb24iIT10eXBlb2YgVGwpdGhyb3cgbmV3IEVycm9yKCJZb3UgbmVlZCB0byBpbmNsdWRlIG1vbWVudC5q''@;'; put 'put ''cyB0byB5b3VyIHByb2plY3QuIik7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGVNZSl0aHJvdyBuZXcgRXJyb3IoIllvdSBuZWVkIHRvIGluY2x1ZGUgUGlrYWRheSB0byB5b3VyIHByb2plY3QuIik7RHYoRTgoaC5wcm90b3R5cGUpLCJpbml0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuaW5zdGFu''@;'; put 'put ''Y2UuYWRkSG9vaygiYWZ0ZXJEZXN0cm95IixmdW5jdGlvbigpe3kucGFyZW50RGVzdHJveWVkPSEwLHkuZGVzdHJveUVsZW1lbnRzKCl9KX19LHtrZXk6ImNyZWF0ZUVsZW1lbnRzIix2YWx1ZTpmdW5jdGlvbigpe0R2KEU4KGgucHJvdG90eXBlKSwiY3JlYXRlRWxlbWVudHMiLHRoaXMpLmNh''@;'; put 'put ''bGwodGhpcyksdGhpcy5kYXRlUGlja2VyPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJESVYiKSx0aGlzLmRhdGVQaWNrZXJTdHlsZT10aGlzLmRhdGVQaWNrZXIuc3R5bGUsdGhpcy5kYXRlUGlja2VyU3R5bGUucG9zaXRpb249ImFic29sdXRlIix0aGlzLmRhdGVQaWNr''@;'; put 'put ''ZXJTdHlsZS50b3A9MCx0aGlzLmRhdGVQaWNrZXJTdHlsZS5sZWZ0PTAsdGhpcy5kYXRlUGlja2VyU3R5bGUuekluZGV4PTk5OTksdGhpcy5kYXRlUGlja2VyLnNldEF0dHJpYnV0ZSgiZGlyIix0aGlzLmhvdC5pc1J0bCgpPyJydGwiOiJsdHIiKSxPMCh0aGlzLmRhdGVQaWNrZXIsImh0RGF0''@;'; put 'put ''ZXBpY2tlckhvbGRlciIpLHRoaXMuaG90LnJvb3REb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMuZGF0ZVBpY2tlciksbmV3IEwxKHRoaXMpLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5kYXRlUGlja2VyLCJtb3VzZWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiBDLnN0b3BQcm9wYWdhdGlv''@;'; put 'put ''bigpfSl9fSx7a2V5OiJkZXN0cm95RWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5kYXRlUGlja2VyLnBhcmVudE5vZGU7dGhpcy4kZGF0ZVBpY2tlciYmdGhpcy4kZGF0ZVBpY2tlci5kZXN0cm95KCkseSYmeS5yZW1vdmVDaGlsZCh0aGlzLmRhdGVQaWNrZXIpfX0se2tl''@;'; put 'put ''eToicHJlcGFyZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWix1ZSxfZSl7RHYoRTgoaC5wcm90b3R5cGUpLCJwcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEksWix1ZSxfZSl9fSx7a2V5OiJvcGVuIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAw''@;'; put 'put ''IT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO0R2KEU4KGgucHJvdG90eXBlKSwib3BlbiIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLnNob3dEYXRlcGlja2VyKHkpfX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHksQz10aGlzO3RoaXMuX29wZW5lZD0hMSxudWxs''@;'; put 'put ''IT09KHk9dGhpcy4kZGF0ZVBpY2tlcikmJnZvaWQgMCE9PXkmJnkuZGVzdHJveSYmdGhpcy4kZGF0ZVBpY2tlci5kZXN0cm95KCksdGhpcy5pbnN0YW5jZS5fcmVnaXN0ZXJUaW1lb3V0KGZ1bmN0aW9uKCl7Qy5pbnN0YW5jZS5fcmVmcmVzaEJvcmRlcnMoKX0pLER2KEU4KGgucHJvdG90eXBl''@;'; put 'put ''KSwiY2xvc2UiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJmaW5pc2hFZGl0aW5nIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF0sQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3Vt''@;'; put 'put ''ZW50c1sxXSYmYXJndW1lbnRzWzFdO2lmKHkpe3ZhciBJPXRoaXMub3JpZ2luYWxWYWx1ZTt2b2lkIDAhPT1JJiZ0aGlzLnNldFZhbHVlKEkpfUR2KEU4KGgucHJvdG90eXBlKSwiZmluaXNoRWRpdGluZyIsdGhpcykuY2FsbCh0aGlzLHksQyl9fSx7a2V5OiJzaG93RGF0ZXBpY2tlciIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oeSl7dmFyIF9lLEM9dGhpcy5URC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxJPXRoaXMuY2VsbFByb3BlcnRpZXMuZGF0ZUZvcm1hdHx8dGhpcy5kZWZhdWx0RGF0ZUZvcm1hdCxaPXRoaXMuaW5zdGFuY2Uudmlldy5pc01vdXNlRG93bigpLHVlPSEheSYmXzNlKHkua2V5''@;'; put 'put ''Q29kZSk7dGhpcy5kYXRlUGlja2VyLnN0eWxlLmRpc3BsYXk9ImJsb2NrIix0aGlzLiRkYXRlUGlja2VyPW5ldyBlTWUodGhpcy5nZXREYXRlUGlja2VyQ29uZmlnKCkpLHRoaXMuJGRhdGVQaWNrZXIuX29uSW5wdXRGb2N1cz1mdW5jdGlvbigpe30sdGhpcy5kYXRlUGlja2VyU3R5bGUudG9w''@;'; put 'put ''PSIiLmNvbmNhdCh0aGlzLmhvdC5yb290V2luZG93LnBhZ2VZT2Zmc2V0K0MudG9wK0QxKHRoaXMuVEQpLCJweCIpO3ZhciBCZTtCZT10aGlzLmhvdC5pc1J0bCgpP0MucmlnaHQtRTIodGhpcy5kYXRlUGlja2VyKTpDLmxlZnQsdGhpcy5kYXRlUGlja2VyU3R5bGUubGVmdD0iIi5jb25jYXQo''@;'; put 'put ''QmUsInB4IiksdGhpcy5vcmlnaW5hbFZhbHVlPyhUbChfZT10aGlzLm9yaWdpbmFsVmFsdWUsSSwhMCkuaXNWYWxpZCgpJiZ0aGlzLiRkYXRlUGlja2VyLnNldE1vbWVudChUbChfZSxJKSwhMCksdGhpcy5nZXRWYWx1ZSgpIT09dGhpcy5vcmlnaW5hbFZhbHVlJiZ0aGlzLnNldFZhbHVlKHRo''@;'; put 'put ''aXMub3JpZ2luYWxWYWx1ZSksIXVlJiYhWiYmdGhpcy5zZXRWYWx1ZSgiIikpOnRoaXMuY2VsbFByb3BlcnRpZXMuZGVmYXVsdERhdGU/KFRsKF9lPXRoaXMuY2VsbFByb3BlcnRpZXMuZGVmYXVsdERhdGUsSSwhMCkuaXNWYWxpZCgpJiZ0aGlzLiRkYXRlUGlja2VyLnNldE1vbWVudChUbChf''@;'; put 'put ''ZSxJKSwhMCksIXVlJiYhWiYmdGhpcy5zZXRWYWx1ZSgiIikpOnRoaXMuJGRhdGVQaWNrZXIuZ290b1RvZGF5KCl9fSx7a2V5OiJoaWRlRGF0ZXBpY2tlciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRhdGVQaWNrZXJTdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLiRkYXRlUGlja2VyLmhpZGUo''@;'; put 'put ''KX19LHtrZXk6ImdldERhdGVQaWNrZXJDb25maWciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuVEVYVEFSRUEsST17fTt0aGlzLmNlbGxQcm9wZXJ0aWVzJiZ0aGlzLmNlbGxQcm9wZXJ0aWVzLmRhdGVQaWNrZXJDb25maWcmJkxaKEksdGhpcy5jZWxsUHJvcGVydGllcy5k''@;'; put 'put ''YXRlUGlja2VyQ29uZmlnKTt2YXIgWj1JLm9uU2VsZWN0LHVlPUkub25DbG9zZTtyZXR1cm4gSS5maWVsZD1DLEkudHJpZ2dlcj1DLEkuY29udGFpbmVyPXRoaXMuZGF0ZVBpY2tlcixJLmJvdW5kPSExLEkuZm9ybWF0PUkuZm9ybWF0fHx0aGlzLmRlZmF1bHREYXRlRm9ybWF0LEkucmVwb3Np''@;'; put 'put ''dGlvbj1JLnJlcG9zaXRpb258fCExLEkuaXNSVEw9ITEsSS5vblNlbGVjdD1mdW5jdGlvbihfZSl7dmFyIEJlPV9lO2lzTmFOKEJlLmdldFRpbWUoKSl8fChCZT1UbChCZSkuZm9ybWF0KHkuY2VsbFByb3BlcnRpZXMuZGF0ZUZvcm1hdHx8eS5kZWZhdWx0RGF0ZUZvcm1hdCkpLHkuc2V0VmFs''@;'; put 'put ''dWUoQmUpLHkuaGlkZURhdGVwaWNrZXIoKSxaJiZaKCl9LEkub25DbG9zZT1mdW5jdGlvbigpe3kucGFyZW50RGVzdHJveWVkfHx5LmZpbmlzaEVkaXRpbmcoITEpLHVlJiZ1ZSgpfSxJfX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImRhdGUifX1dKSxofShW''@;'; put 'put ''Uyk7ZnVuY3Rpb24gTTZlKGQpe3JldHVybihNNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJv''@;'; put 'put ''bCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBldHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24i''@;'; put 'put ''KX1mdW5jdGlvbiBpTWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5''@;'; put 'put ''LHYpfX1mdW5jdGlvbiB3dGUoKXtyZXR1cm4gd3RlPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1udHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y''@;'; put 'put ''KHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHd0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbnR0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0o''@;'; put 'put ''ZD1NTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBFNmUoZCxnKXtyZXR1cm4oRTZlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gb3R0KGQsZyl7aWYo''@;'; put 'put ''ZyYmKCJvYmplY3QiPT09TTZlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBh''@;'; put 'put ''dHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBNTyhkKXtyZXR1cm4oTU89T2JqZWN0LnNldFByb3RvdHlwZU9m''@;'; put 'put ''P09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgeDZlPWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBydHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcp''@;'; put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9''@;'; put 'put ''fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRTZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gaXR0KGQpe3ZhciBnPWZ1bmN0aW9uIGx0dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0''@;'; put 'put ''fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNo''@;'; put 'put ''KGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PU1PKGQpO2lmKGcpe3ZhciBDPU1PKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvdHQodGhpcyx5''@;'; put 'put ''KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gZXR0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIHR0dChkLGcsaCl7ZyYmaU1lKGQucHJvdG90eXBlLGcpLGgmJmlNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0''@;'; put 'put ''YWJsZTohMX0pfShoLFt7a2V5OiJwcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxaLHVlLF9lKXt3dGUoTU8oaC5wcm90b3R5cGUpLCJwcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEksWix1ZSxfZSksdGhpcy5jZWxsUHJvcGVydGllcy5maWx0ZXI9ITEsdGhpcy5jZWxsUHJvcGVy''@;'; put 'put ''dGllcy5zdHJpY3Q9ITB9fV0sW3trZXk6IkVESVRPUl9UWVBFIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iZHJvcGRvd24ifX1dKSxofShiNmUpO2Z1bmN0aW9uIFQ2ZShkKXtyZXR1cm4oVDZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJh''@;'; put 'put ''dG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdXR0KGQs''@;'; put 'put ''Zyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gb01lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8''@;'; put 'put ''ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSTZlKGQsZyl7cmV0dXJuKEk2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpm''@;'; put 'put ''dW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGR0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVQ2ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25z''@;'; put 'put ''dHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gcHR0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxs''@;'; put 'put ''ZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gYnRlKGQpe3JldHVybihidGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX16by5nZXRT''@;'; put 'put ''aW5nbGV0b24oKS5hZGQoImJlZm9yZVZhbGlkYXRlIixmdW5jdGlvbihkLGcsaCl7dmFyIHY9dGhpcy5nZXRDZWxsTWV0YShnLHRoaXMucHJvcFRvQ29sKGgpKTt2LmVkaXRvcj09PXg2ZSYmdm9pZCAwPT09di5zdHJpY3QmJih2LmZpbHRlcj0hMSx2LnN0cmljdD0hMCl9KTt2YXIgYU1lPWZ1''@;'; put 'put ''bmN0aW9uKGQpeyFmdW5jdGlvbiBmdHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcm''@;'; put 'put ''JmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSTZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gaHR0KGQpe3ZhciBnPWZ1''@;'; put 'put ''bmN0aW9uIGd0dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZh''@;'; put 'put ''bHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWJ0ZShkKTtpZihnKXt2YXIgQz1idGUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVj''@;'; put 'put ''dCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGR0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiB1dHQodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gY3R0KGQsZyxoKXtnJiZvTWUoZC5w''@;'; put 'put ''cm90b3R5cGUsZyksaCYmb01lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsbnVsbCxbe2tleToiRURJVE9SX1RZUEUiLGdldDpmdW5jdGlvbigpe3JldHVybiJudW1lcmljIn19XSksaH0oVlMpO2Z1bmN0aW9uIEQ2ZShkKXtyZXR1''@;'; put 'put ''cm4oRDZlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1i''@;'; put 'put ''b2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdnR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gbE1lKGQsZyl7Zm9y''@;'; put 'put ''KHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gX3RlKCl7cmV0''@;'; put 'put ''dXJuIF90ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9eXR0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdl''@;'; put 'put ''dC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxfdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHl0dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9RU8oZCkpOyk7cmV0dXJuIGR9ZnVu''@;'; put 'put ''Y3Rpb24gTDZlKGQsZyl7cmV0dXJuKEw2ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIF90dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUQ2ZShnKXx8''@;'; put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gQ3R0KGQpe2lmKHZvaWQgMD09PWQpdGhy''@;'; put 'put ''b3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gRU8oZCl7cmV0dXJuKEVPPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Yu''@;'; put 'put ''YmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHNNZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gd3R0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1''@;'; put 'put ''cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkw2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGJ0dChkKXt2YXIgZz1mdW5jdGlvbiBrdHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hh''@;'; put 'put ''bSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJu''@;'; put 'put ''IGZ1bmN0aW9uKCl7dmFyIHksdj1FTyhkKTtpZihnKXt2YXIgQz1FTyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gX3R0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0''@;'; put 'put ''dXJuIHZ0dCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlvbiBBdHQoZCxnLGgpe2cmJmxNZShkLnByb3RvdHlwZSxnKSxoJiZsTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiY3Jl''@;'; put 'put ''YXRlRWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7X3RlKEVPKGgucHJvdG90eXBlKSwiY3JlYXRlRWxlbWVudHMiLHRoaXMpLmNhbGwodGhpcyksdGhpcy5URVhUQVJFQT10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSx0aGlzLlRFWFRBUkVBLnNldEF0dHJp''@;'; put 'put ''YnV0ZSgidHlwZSIsInBhc3N3b3JkIiksdGhpcy5URVhUQVJFQS5zZXRBdHRyaWJ1dGUoImRhdGEtaG90LWlucHV0IiwiIiksdGhpcy5URVhUQVJFQS5jbGFzc05hbWU9ImhhbmRzb250YWJsZUlucHV0Iix0aGlzLnRleHRhcmVhU3R5bGU9dGhpcy5URVhUQVJFQS5zdHlsZSx0aGlzLnRleHRh''@;'; put 'put ''cmVhU3R5bGUud2lkdGg9MCx0aGlzLnRleHRhcmVhU3R5bGUuaGVpZ2h0PTAsRHAodGhpcy5URVhUQVJFQV9QQVJFTlQpLHRoaXMuVEVYVEFSRUFfUEFSRU5ULmFwcGVuZENoaWxkKHRoaXMuVEVYVEFSRUEpfX1dLFt7a2V5OiJFRElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuInBh''@;'; put 'put ''c3N3b3JkIn19XSksaH0oVlMpO2Z1bmN0aW9uIEN0ZShkKXtyZXR1cm4oQ3RlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gTXR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFz''@;'; put 'put ''cyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gdU1lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24ga3RlKCl7cmV0dXJuIGt0ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9eHR0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blBy''@;'; put 'put ''b3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxrdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIHh0dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2Fs''@;'; put 'put ''bChkLGcpJiZudWxsIT09KGQ9eE8oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gTzZlKGQsZyl7cmV0dXJuKE82ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0''@;'; put 'put ''aW9uIER0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PUN0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTty''@;'; put 'put ''ZXR1cm4gZnVuY3Rpb24gTHR0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24geE8oZCl7cmV0dXJuKHhPPU9iamVj''@;'; put 'put ''dC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFI2ZT0iaHRfZWRpdG9yX3Zpc2libGUiLGNNZT0ic2VsZWN0RWRpdG9yIixCdHQ9ZnVuY3Rp''@;'; put 'put ''b24oZCl7IWZ1bmN0aW9uIFR0dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5w''@;'; put 'put ''cm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZPNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBJdHQoZCl7dmFyIGc9ZnVuY3Rp''@;'; put 'put ''b24gT3R0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVP''@;'; put 'put ''Zi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9eE8oZCk7aWYoZyl7dmFyIEM9eE8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFy''@;'; put 'put ''Z3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIER0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBNdHQodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gRXR0KGQsZyxoKXtnJiZ1TWUoZC5wcm90b3R5''@;'; put 'put ''cGUsZyksaCYmdU1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3Q9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlNFTEVDVCIpLE8wKHRo''@;'; put 'put ''aXMuc2VsZWN0LCJodFNlbGVjdEVkaXRvciIpLHRoaXMuc2VsZWN0LnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2VsZWN0KSx0aGlzLnJlZ2lzdGVySG9va3MoKX19LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiB0aGlzLnNlbGVjdC52YWx1ZX19LHtrZXk6InNldFZhbHVlIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLnNlbGVjdC52YWx1ZT15fX0se2tleToib3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9vcGVuZWQ9ITAsdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpLHRoaXMuc2VsZWN0LnN0''@;'; put 'put ''eWxlLmRpc3BsYXk9IiIsdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuc2V0QWN0aXZlQ29udGV4dE5hbWUoImVkaXRvciIpLHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX29wZW5lZD0hMSx0aGlzLnNlbGVjdC5zdHls''@;'; put 'put ''ZS5kaXNwbGF5PSJub25lIix0bCh0aGlzLnNlbGVjdCxSNmUpJiZwbCh0aGlzLnNlbGVjdCxSNmUpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLHRoaXMuY2xlYXJIb29rcygpfX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3QuZm9jdXMoKX19LHtrZXk6InJl''@;'; put 'put ''Z2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5IixmdW5jdGlvbigpe3JldHVybiB5LnJlZnJlc2hEaW1lbnNpb25zKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4geS5yZWZyZXNoRGltZW5zaW9ucygpfSksdGhpcy5hZGRIb29rKCJhZnRlckNvbHVtblJlc2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZyZXNoRGltZW5zaW9ucygpfSksdGhpcy5hZGRIb29rKCJhZnRlclJvd1Jlc2l6ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZWZy''@;'; put 'put ''ZXNoRGltZW5zaW9ucygpfSl9fSx7a2V5OiJwcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxaLHVlLF9lKXt2YXIgQmU9dGhpcztrdGUoeE8oaC5wcm90b3R5cGUpLCJwcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMseSxDLEksWix1ZSxfZSk7dmFyIEtlLE5lPXRoaXMuY2VsbFByb3BlcnRp''@;'; put 'put ''ZXMuc2VsZWN0T3B0aW9ucztLZT10aGlzLnByZXBhcmVPcHRpb25zKCJmdW5jdGlvbiI9PXR5cGVvZiBOZT9OZSh0aGlzLnJvdyx0aGlzLmNvbCx0aGlzLnByb3ApOk5lKSxEcCh0aGlzLnNlbGVjdCksR2woS2UsZnVuY3Rpb24ocHQsT3Qpe3ZhciAkdD1CZS5ob3Qucm9vdERvY3VtZW50LmNy''@;'; put 'put ''ZWF0ZUVsZW1lbnQoIk9QVElPTiIpOyR0LnZhbHVlPU90LGt3KCR0LHB0KSxCZS5zZWxlY3QuYXBwZW5kQ2hpbGQoJHQpfSl9fSx7a2V5OiJwcmVwYXJlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9e307aWYoQXJyYXkuaXNBcnJheSh5KSlmb3IodmFyIEk9MCxaPXkubGVuZ3Ro''@;'; put 'put ''O0k8WjtJKyspQ1t5W0ldXT15W0ldO2Vsc2Uib2JqZWN0Ij09PUN0ZSh5KSYmKEM9eSk7cmV0dXJuIEN9fSx7a2V5OiJyZWZyZXNoVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q2VsbCh0aGlzLnJvdyx0aGlzLnByb3ApO3RoaXMub3JpZ2lu''@;'; put 'put ''YWxWYWx1ZT15LHRoaXMuc2V0VmFsdWUoeSksdGhpcy5yZWZyZXNoRGltZW5zaW9ucygpfX0se2tleToicmVmcmVzaERpbWVuc2lvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0ZT09PXJmLkVESVRJTkcpe2lmKHRoaXMuVEQ9dGhpcy5nZXRFZGl0ZWRDZWxsKCksIXRoaXMuVEQp''@;'; put 'put ''cmV0dXJuIHZvaWQgdGhpcy5jbG9zZSgpO3ZhciB5PXRoaXMuZ2V0RWRpdGVkQ2VsbFJlY3QoKSxDPXkudG9wLEk9eS5zdGFydCxaPXkud2lkdGgsX2U9dGhpcy5zZWxlY3Quc3R5bGU7X2UuaGVpZ2h0PSIiLmNvbmNhdCh5LmhlaWdodCwicHgiKSxfZS53aWR0aD0iIi5jb25jYXQoWiwicHgi''@;'; put 'put ''KSxfZS50b3A9IiIuY29uY2F0KEMsInB4IiksX2VbdGhpcy5ob3QuaXNSdGwoKT8icmlnaHQiOiJsZWZ0Il09IiIuY29uY2F0KEksInB4IiksX2UubWFyZ2luPSIwcHgiLE8wKHRoaXMuc2VsZWN0LFI2ZSl9fX0se2tleToicmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; put 'put ''IHk9dGhpcyxJPXRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImVkaXRvciIpLFo9e2dyb3VwOmNNZX07ITEhPT10aGlzLmlzSW5GdWxsRWRpdE1vZGUoKSYmSS5hZGRTaG9ydGN1dHMoW3trZXlzOltbIkFycm93VXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIg''@;'; put 'put ''X2U9eS5zZWxlY3Quc2VsZWN0ZWRJbmRleC0xO19lPj0wJiYoeS5zZWxlY3RbX2VdLnNlbGVjdGVkPSEwKX19LHtrZXlzOltbIkFycm93RG93biJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBfZT15LnNlbGVjdC5zZWxlY3RlZEluZGV4KzE7X2U8PXkuc2VsZWN0Lmxlbmd0aC0xJiYoeS5z''@;'; put 'put ''ZWxlY3RbX2VdLnNlbGVjdGVkPSEwKX19XSxaKX19LHtrZXk6InVucmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZWRpdG9yIikucmVtb3ZlU2hvcnRjdXRzQnlHcm91cChjTWUpfX1dLFt7a2V5OiJF''@;'; put 'put ''RElUT1JfVFlQRSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuInNlbGVjdCJ9fV0pLGh9KGtPKTtmdW5jdGlvbiBCNmUoZCl7cmV0dXJuKEI2ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9m''@;'; put 'put ''IGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFB0dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGZNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJp''@;'; put 'put ''biB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFN0ZSgpe3JldHVybiBTdGU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUh0''@;'; put 'put ''dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sU3RlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBIdHQoZCxnKXtmb3IoOyFP''@;'; put 'put ''YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVRPKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFA2ZShkLGcpe3JldHVybihQNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXty''@;'; put 'put ''ZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBqdHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1CNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBv''@;'; put 'put ''bmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFp0dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9''@;'; put 'put ''KGQpfWZ1bmN0aW9uIFRPKGQpe3JldHVybihUTz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBoTWU9ZnVuY3Rpb24oZCl7IWZ1''@;'; put 'put ''bmN0aW9uIE50dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUs''@;'; put 'put ''e2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZQNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBWdHQoZCl7dmFyIGc9ZnVuY3Rpb24genR0KCl7''@;'; put 'put ''aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJl''@;'; put 'put ''ZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9VE8oZCk7aWYoZyl7dmFyIEM9VE8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxD''@;'; put 'put ''KX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGp0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBQdHQodGhpcyxoKSxnLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZnVuY3Rpb24gRnR0KGQsZyxoKXtnJiZmTWUoZC5wcm90b3R5cGUsZyksaCYm''@;'; put 'put ''Zk1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFosdWUsX2Upe1N0ZShUTyhoLnByb3RvdHlwZSksInByZXBhcmUiLHRoaXMpLmNhbGwodGhpcyx5LEMsSSxaLHVl''@;'; put 'put ''LF9lKSx0aGlzLlRFWFRBUkVBLmRpcj0ibHRyIn19XSxbe2tleToiRURJVE9SX1RZUEUiLGdldDpmdW5jdGlvbigpe3JldHVybiJ0aW1lIn19XSksaH0oVlMpO2Z1bmN0aW9uIEY2ZShkLGcsaCx2LHksQyxJKXtoei5hcHBseSh0aGlzLFtkLGcsaCx2LHksQyxJXSksa3coZyxudWxsPT1DPyIi''@;'; put 'put ''OkMsITEpfWZ1bmN0aW9uIElPKGQsZyxoLHYseSxDLEkpe3ZhciBaPWQucm9vdERvY3VtZW50LHVlPUkuYWxsb3dIdG1sP0Y2ZTpCdyxfZT1aLmNyZWF0ZUVsZW1lbnQoIkRJViIpO2lmKF9lLmNsYXNzTmFtZT0iaHRBdXRvY29tcGxldGVBcnJvdyIsX2UuYXBwZW5kQ2hpbGQoWi5jcmVhdGVU''@;'; put 'put ''ZXh0Tm9kZShTdHJpbmcuZnJvbUNoYXJDb2RlKDk2NjApKSksdWUuYXBwbHkodGhpcyxbZCxnLGgsdix5LEMsSV0pLGcuZmlyc3RDaGlsZHx8Zy5hcHBlbmRDaGlsZChaLmNyZWF0ZVRleHROb2RlKFN0cmluZy5mcm9tQ2hhckNvZGUoMTYwKSkpLGcuaW5zZXJ0QmVmb3JlKF9lLGcuZmlyc3RD''@;'; put 'put ''aGlsZCksTzAoZywiaHRBdXRvY29tcGxldGUiKSwhZC5hY0Fycm93TGlzdGVuZXIpe3ZhciBCZT1uZXcgTDEoZCk7ZC5hY0Fycm93TGlzdGVuZXI9ZnVuY3Rpb24oTmUpe3RsKE5lLnRhcmdldCwiaHRBdXRvY29tcGxldGVBcnJvdyIpJiZkLnZpZXcuX3d0LmdldFNldHRpbmcoIm9uQ2VsbERi''@;'; put 'put ''bENsaWNrIixudWxsLGQuX2NyZWF0ZUNlbGxDb29yZHMoaCx2KSxnKX0sQmUuYWRkRXZlbnRMaXN0ZW5lcihkLnJvb3RFbGVtZW50LCJtb3VzZWRvd24iLGQuYWNBcnJvd0xpc3RlbmVyKSxkLmFkZEhvb2tPbmNlKCJhZnRlckRlc3Ryb3kiLGZ1bmN0aW9uKCl7QmUuZGVzdHJveSgpfSl9fUY2''@;'; put 'put ''ZS5SRU5ERVJFUl9UWVBFPSJodG1sIixJTy5SRU5ERVJFUl9UWVBFPSJhdXRvY29tcGxldGUiO3ZhciBkTWU9bmV3IFdlYWtNYXAscE1lPW5ldyBXZWFrTWFwLERPPSJkYXRhLXJvdyIsTE89ImRhdGEtY29sIjtmdW5jdGlvbiBINmUoZCxnLGgsdix5LEMsSSl7dmFyIFo9ZC5yb290RG9jdW1l''@;'; put 'put ''bnQ7aHouYXBwbHkodGhpcyxbZCxnLGgsdix5LEMsSV0pLGZ1bmN0aW9uIFh0dChkKXt2YXIgZz1wTWUuZ2V0KGQpO2lmKCFnKXt2YXIgaD1kLnJvb3RFbGVtZW50OyhnPW5ldyBMMShkKSkuYWRkRXZlbnRMaXN0ZW5lcihoLCJjbGljayIsZnVuY3Rpb24odil7cmV0dXJuIGZ1bmN0aW9uIGVu''@;'; put 'put ''dChkLGcpe3ZhciBoPWQudGFyZ2V0O2lmKE42ZShoKSYmaC5oYXNBdHRyaWJ1dGUoRE8pJiZoLmhhc0F0dHJpYnV0ZShMTykpe3ZhciB2PXBhcnNlSW50KGguZ2V0QXR0cmlidXRlKERPKSwxMCkseT1wYXJzZUludChoLmdldEF0dHJpYnV0ZShMTyksMTApO2cuZ2V0Q2VsbE1ldGEodix5KS5y''@;'; put 'put ''ZWFkT25seSYmZC5wcmV2ZW50RGVmYXVsdCgpfX0odixkKX0pLGcuYWRkRXZlbnRMaXN0ZW5lcihoLCJtb3VzZXVwIixmdW5jdGlvbih2KXtyZXR1cm4gZnVuY3Rpb24gcXR0KGQsZyl7dmFyIGg9ZC50YXJnZXQ7IU42ZShoKXx8IWguaGFzQXR0cmlidXRlKERPKXx8IWguaGFzQXR0cmlidXRl''@;'; put 'put ''KExPKXx8c2V0VGltZW91dChnLmxpc3RlbiwxMCl9KHYsZCl9KSxnLmFkZEV2ZW50TGlzdGVuZXIoaCwiY2hhbmdlIixmdW5jdGlvbih2KXtyZXR1cm4gZnVuY3Rpb24gdG50KGQsZyl7dmFyIGg9ZC50YXJnZXQ7aWYoTjZlKGgpJiZoLmhhc0F0dHJpYnV0ZShETykmJmguaGFzQXR0cmlidXRl''@;'; put 'put ''KExPKSl7dmFyIHY9cGFyc2VJbnQoaC5nZXRBdHRyaWJ1dGUoRE8pLDEwKSx5PXBhcnNlSW50KGguZ2V0QXR0cmlidXRlKExPKSwxMCksQz1nLmdldENlbGxNZXRhKHYseSk7Qy5yZWFkT25seXx8Zy5zZXREYXRhQXRDZWxsKHYseSxkLnRhcmdldC5jaGVja2VkP3ZvaWQgMD09PUMudW5jaGVj''@;'; put 'put ''a2VkVGVtcGxhdGV8fEMuY2hlY2tlZFRlbXBsYXRlOnZvaWQgMCE9PUMudW5jaGVja2VkVGVtcGxhdGUmJkMudW5jaGVja2VkVGVtcGxhdGUpfX0odixkKX0pLHBNZS5zZXQoZCxnKX19KGQpO3ZhciB1ZT1mdW5jdGlvbiBLdHQoZCl7dmFyIGc9ZC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Jl''@;'; put 'put ''dHVybiBnLmNsYXNzTmFtZT0iaHRDaGVja2JveFJlbmRlcmVySW5wdXQiLGcudHlwZT0iY2hlY2tib3giLGcuc2V0QXR0cmlidXRlKCJhdXRvY29tcGxldGUiLCJvZmYiKSxnLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCItMSIpLGcuY2xvbmVOb2RlKCExKX0oWiksX2U9SS5sYWJlbCxCZT0h''@;'; put 'put ''MTtpZih2b2lkIDA9PT1JLmNoZWNrZWRUZW1wbGF0ZSYmKEkuY2hlY2tlZFRlbXBsYXRlPSEwKSx2b2lkIDA9PT1JLnVuY2hlY2tlZFRlbXBsYXRlJiYoSS51bmNoZWNrZWRUZW1wbGF0ZT0hMSksRHAoZyksQz09PUkuY2hlY2tlZFRlbXBsYXRlfHxldShDKS50b0xvY2FsZUxvd2VyQ2FzZShJ''@;'; put 'put ''LmxvY2FsZSk9PT1ldShJLmNoZWNrZWRUZW1wbGF0ZSkudG9Mb2NhbGVMb3dlckNhc2UoSS5sb2NhbGUpP3VlLmNoZWNrZWQ9ITA6Qz09PUkudW5jaGVja2VkVGVtcGxhdGV8fGV1KEMpLnRvTG9jYWxlTG93ZXJDYXNlKEkubG9jYWxlKT09PWV1KEkudW5jaGVja2VkVGVtcGxhdGUpLnRvTG9j''@;'; put 'put ''YWxlTG93ZXJDYXNlKEkubG9jYWxlKT91ZS5jaGVja2VkPSExOmRjKEMpP08wKHVlLCJub1ZhbHVlIik6KHVlLnN0eWxlLmRpc3BsYXk9Im5vbmUiLE8wKHVlLCJodEJhZFZhbHVlIiksQmU9ITApLHVlLnNldEF0dHJpYnV0ZShETyxoKSx1ZS5zZXRBdHRyaWJ1dGUoTE8sdiksIUJlJiZfZSl7''@;'; put 'put ''dmFyIE5lPSIiO2lmKF9lLnZhbHVlKU5lPSJmdW5jdGlvbiI9PXR5cGVvZiBfZS52YWx1ZT9fZS52YWx1ZS5jYWxsKHRoaXMsaCx2LHksQyk6X2UudmFsdWU7ZWxzZSBpZihfZS5wcm9wZXJ0eSl7dmFyIEtlPWQuZ2V0RGF0YUF0Um93UHJvcChoLF9lLnByb3BlcnR5KTtOZT1udWxsIT09S2U/''@;'; put 'put ''S2U6IiJ9dmFyIHB0PWZ1bmN0aW9uICR0dChkLGcsaCl7dmFyIHY9ZC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpO3JldHVybiB2LmNsYXNzTmFtZT0iaHRDaGVja2JveFJlbmRlcmVyTGFiZWwgIi5jb25jYXQoaD8iZnVsbFdpZHRoIjoiIiksdi5hcHBlbmRDaGlsZChkLmNyZWF0ZVRleHROb2Rl''@;'; put 'put ''KGcpKSx2LmNsb25lTm9kZSghMCl9KFosTmUsITAhPT1fZS5zZXBhcmF0ZWQpOyJiZWZvcmUiPT09X2UucG9zaXRpb24/X2Uuc2VwYXJhdGVkPyhnLmFwcGVuZENoaWxkKHB0KSxnLmFwcGVuZENoaWxkKHVlKSk6KHB0LmFwcGVuZENoaWxkKHVlKSx1ZT1wdCk6KCFfZS5wb3NpdGlvbnx8ImFm''@;'; put 'put ''dGVyIj09PV9lLnBvc2l0aW9uKSYmKF9lLnNlcGFyYXRlZD8oZy5hcHBlbmRDaGlsZCh1ZSksZy5hcHBlbmRDaGlsZChwdCkpOihwdC5pbnNlcnRCZWZvcmUodWUscHQuZmlyc3RDaGlsZCksdWU9cHQpKX1mdW5jdGlvbiAkdCgpe3ZhciBMbj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9''@;'; put 'put ''PWFyZ3VtZW50c1swXSYmYXJndW1lbnRzWzBdLGlyPWQuZ2V0U2VsZWN0ZWRSYW5nZSgpO2lmKGlyKWZvcih2YXIgbXI9MDttcjxpci5sZW5ndGg7bXIrKyl7Zm9yKHZhciBTcj1pclttcl0uZ2V0VG9wU3RhcnRDb3JuZXIoKSx3cj1Tci5yb3csUXI9U3IuY29sLHlpPWlyW21yXS5nZXRCb3R0''@;'; put 'put ''b21FbmRDb3JuZXIoKSxLaT15aS5yb3csU289eWkuY29sLFBvPVtdLFNhPXdyO1NhPD1LaTtTYSs9MSlmb3IodmFyIEphPVFyO0phPD1TbztKYSs9MSl7dmFyIGxhPWQuZ2V0Q2VsbE1ldGEoU2EsSmEpO2lmKCJjaGVja2JveCIhPT1sYS50eXBlKXJldHVybjtpZighMCE9PWxhLnJlYWRPbmx5''@;'; put 'put ''KXt2b2lkIDA9PT1sYS5jaGVja2VkVGVtcGxhdGUmJihsYS5jaGVja2VkVGVtcGxhdGU9ITApLHZvaWQgMD09PWxhLnVuY2hlY2tlZFRlbXBsYXRlJiYobGEudW5jaGVja2VkVGVtcGxhdGU9ITEpO3ZhciBhbD1kLmdldERhdGFBdENlbGwoU2EsSmEpOyExPT09TG4/W2xhLmNoZWNrZWRUZW1w''@;'; put 'put ''bGF0ZSxsYS5jaGVja2VkVGVtcGxhdGUudG9TdHJpbmcoKV0uaW5jbHVkZXMoYWwpP1BvLnB1c2goW1NhLEphLGxhLnVuY2hlY2tlZFRlbXBsYXRlXSk6W2xhLnVuY2hlY2tlZFRlbXBsYXRlLGxhLnVuY2hlY2tlZFRlbXBsYXRlLnRvU3RyaW5nKCksbnVsbCx2b2lkIDBdLmluY2x1ZGVzKGFs''@;'; put 'put ''KSYmUG8ucHVzaChbU2EsSmEsbGEuY2hlY2tlZFRlbXBsYXRlXSk6UG8ucHVzaChbU2EsSmEsbGEudW5jaGVja2VkVGVtcGxhdGVdKX19UG8ubGVuZ3RoPjAmJmQuc2V0RGF0YUF0Q2VsbChQbyl9fWZ1bmN0aW9uIGZuKCl7dmFyIExuPWQuZ2V0U2VsZWN0ZWRSYW5nZSgpO2lmKExuKXtmb3Io''@;'; put 'put ''dmFyIGlyPTA7aXI8TG4ubGVuZ3RoO2lyKyspZm9yKHZhciBtcj1Mbltpcl0uZ2V0VG9wU3RhcnRDb3JuZXIoKSxTcj1Mbltpcl0uZ2V0Qm90dG9tRW5kQ29ybmVyKCksd3I9bXIucm93O3dyPD1Tci5yb3c7d3IrKylmb3IodmFyIFFyPW1yLmNvbDtRcjw9U3IuY29sO1FyKyspe3ZhciB5aT1k''@;'; put 'put ''LmdldENlbGxNZXRhKHdyLFFyKTtpZigiY2hlY2tib3giIT09eWkudHlwZSlyZXR1cm4hMTt2YXIgS2k9ZC5nZXRDZWxsKHdyLFFyKTtpZihudWxsPT1LaSlyZXR1cm4hMDtpZihLaS5xdWVyeVNlbGVjdG9yQWxsKCJpbnB1dFt0eXBlPWNoZWNrYm94XSIpLmxlbmd0aD4wJiYheWkucmVhZE9u''@;'; put 'put ''bHkpcmV0dXJuITB9cmV0dXJuITF9fSghX2V8fF9lJiYhX2Uuc2VwYXJhdGVkKSYmZy5hcHBlbmRDaGlsZCh1ZSksQmUmJmcuYXBwZW5kQ2hpbGQoWi5jcmVhdGVUZXh0Tm9kZSgiI2JhZC12YWx1ZSMiKSksZE1lLmhhcyhkKXx8KGRNZS5zZXQoZCwhMCksZnVuY3Rpb24gT3QoKXtkLmdldFNo''@;'; put 'put ''b3J0Y3V0TWFuYWdlcigpLmdldENvbnRleHQoImdyaWQiKS5hZGRTaG9ydGN1dHMoW3trZXlzOltbInNwYWNlIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuICR0KCksIWZuKCl9fSx7a2V5czpbWyJlbnRlciJdXSxjYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiAkdCgpLCFmbigpfSxy''@;'; put 'put ''dW5Pbmx5SWY6ZnVuY3Rpb24oKXtyZXR1cm4gZC5nZXRTZXR0aW5ncygpLmVudGVyQmVnaW5zRWRpdGluZ319LHtrZXlzOltbImRlbGV0ZSJdLFsiYmFja3NwYWNlIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJuICR0KCEwKSwhZm4oKX0scmVsYXRpdmVUb0dyb3VwOkdaLHBvc2l0aW9u''@;'; put 'put ''OiJiZWZvcmUifV0se2dyb3VwOiJjaGVja2JveFJlbmRlcmVyIn0pfSgpKX1mdW5jdGlvbiBONmUoZCl7cmV0dXJuIklOUFVUIj09PWQudGFnTmFtZSYmImNoZWNrYm94Ij09PWQuZ2V0QXR0cmlidXRlKCJ0eXBlIil9em8uZ2V0U2luZ2xldG9uKCkuYWRkKCJtb2RpZnlBdXRvQ29sdW1uU2l6''@;'; put 'put ''ZVNlZWQiLGZ1bmN0aW9uKGQsZyxoKXt2YXIgdj1nLmxhYmVsLEM9Zy5yb3c7aWYoImNoZWNrYm94Ij09PWcudHlwZSl7aWYodil7dmFyIHVlPXYudmFsdWUsX2U9di5wcm9wZXJ0eSxCZT1oO2lmKHVlKUJlPSJmdW5jdGlvbiI9PXR5cGVvZiB1ZT91ZShDLGcuY29sdW1uLGcucHJvcCxoKTp1''@;'; put 'put ''ZTtlbHNlIGlmKF9lKXt2YXIgTmU9dGhpcy5nZXREYXRhQXRSb3dQcm9wKEMsX2UpO0JlPW51bGwhPT1OZT9OZTpofWQ9QmV9cmV0dXJuIGR9fSksSDZlLlJFTkRFUkVSX1RZUEU9ImNoZWNrYm94Ijt2YXIgWlM9TCgyNDcxNSk7ZnVuY3Rpb24gVjZlKGQsZyxoLHYseSxDLEkpe3ZhciBaPUM7''@;'; put 'put ''aWYodjQoWikpe3ZhciB1ZT1JLm51bWVyaWNGb3JtYXQsX2U9dWUmJnVlLmN1bHR1cmV8fCItIixCZT11ZSYmdWUucGF0dGVybixOZT1JLmNsYXNzTmFtZXx8IiIsS2U9TmUubGVuZ3RoP05lLnNwbGl0KCIgIik6W107aWYodm9pZCAwIT09X2UmJiFaUy5sYW5ndWFnZXMoKVtfZV0pe3ZhciBw''@;'; put 'put ''dD1fZS5yZXBsYWNlKCItIiwiIiksT3Q9WlMuYWxsTGFuZ3VhZ2VzP1pTLmFsbExhbmd1YWdlc1tfZV06WlNbcHRdO090JiZaUy5yZWdpc3Rlckxhbmd1YWdlKE90KX1aUy5zZXRMYW5ndWFnZShfZSksWj1aUyhaKS5mb3JtYXQoQmV8fCIwIiksS2UuaW5kZXhPZigiaHRMZWZ0Iik8MCYmS2Uu''@;'; put 'put ''aW5kZXhPZigiaHRDZW50ZXIiKTwwJiZLZS5pbmRleE9mKCJodFJpZ2h0Iik8MCYmS2UuaW5kZXhPZigiaHRKdXN0aWZ5Iik8MCYmS2UucHVzaCgiaHRSaWdodCIpLEtlLmluZGV4T2YoImh0TnVtZXJpYyIpPDAmJktlLnB1c2goImh0TnVtZXJpYyIpLEkuY2xhc3NOYW1lPUtlLmpvaW4oIiAi''@;'; put 'put ''KSxnLmRpcj0ibHRyIn1CdyhkLGcsaCx2LHksWixJKX1mdW5jdGlvbiBqNmUoZCxnLGgsdix5LEMsSSl7QncuYXBwbHkodGhpcyxbZCxnLGgsdix5LEMsSV0pO3ZhciB1ZT1JLmhhc2hTeW1ib2x8fCIqIixfZT0iIjtpYSgoSS5oYXNoTGVuZ3RofHxnLmlubmVySFRNTC5sZW5ndGgpLTEsZnVu''@;'; put 'put ''Y3Rpb24oKXtfZSs9dWV9KSxrdyhnLF9lKX1mdW5jdGlvbiBaNmUoZCxnLGgsdix5LEMsSSl7QncuYXBwbHkodGhpcyxbZCxnLGgsdix5LEMsSV0pLGcuZGlyPSJsdHIifWZ1bmN0aW9uIGR6KGQsZyl7dmFyIGg9ZDtudWxsPT1oJiYoaD0iIiksdGhpcy5hbGxvd0VtcHR5JiYiIj09PWg/Zygh''@;'; put 'put ''MCk6dGhpcy5zdHJpY3QmJnRoaXMuc291cmNlPyJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLnNvdXJjZT90aGlzLnNvdXJjZShoLG1NZShoLGcpKTptTWUoaCxnKSh0aGlzLnNvdXJjZSk6ZyghMCl9ZnVuY3Rpb24gbU1lKGQsZyl7dmFyIGg9ZDtyZXR1cm4gZnVuY3Rpb24odil7Zm9yKHZhciB5''@;'; put 'put ''PSExLEM9MCxJPXYubGVuZ3RoO0M8STtDKyspaWYoaD09PXZbQ10pe3k9ITA7YnJlYWt9Zyh5KX19ZnVuY3Rpb24gdk1lKGQpe3ZhciBnPW5ldyBEYXRlKGQpO3JldHVybiBpc05hTihuZXcgRGF0ZSgiIi5jb25jYXQoZCwiVDAwOjAwIikpLmdldERhdGUoKSk/ZzpuZXcgRGF0ZShnLmdldFRp''@;'; put 'put ''bWUoKSs2ZTQqZy5nZXRUaW1lem9uZU9mZnNldCgpKX1mdW5jdGlvbiBNdGUoZCxnKXt2YXIgaD1hX2UoImRhdGUiLHRoaXMuaW5zdGFuY2UpLHY9ZCx5PSEwO251bGw9PXYmJih2PSIiKTt2YXIgQz1UbCh2LHRoaXMuZGF0ZUZvcm1hdHx8aC5kZWZhdWx0RGF0ZUZvcm1hdCwhMCkuaXNWYWxp''@;'; put 'put ''ZCgpLEk9VGwobmV3IERhdGUodikpLmlzVmFsaWQoKXx8QztpZih0aGlzLmFsbG93RW1wdHkmJiIiPT09diYmKEk9ITAsQz0hMCksSXx8KHk9ITEpLCFJJiZDJiYoeT0hMCksSSYmIUMpaWYoITA9PT10aGlzLmNvcnJlY3RGb3JtYXQpe3ZhciBaPWZ1bmN0aW9uIHNudChkLGcpe3ZhciBoPVRs''@;'; put 'put ''KHZNZShkKSksdj1UbChkLGcpLHk9ZC5zZWFyY2goL1tBLXpdL2cpPi0xO3JldHVybihoLmlzVmFsaWQoKSYmaC5mb3JtYXQoIngiKT09PXYuZm9ybWF0KCJ4Iil8fCF2LmlzVmFsaWQoKXx8eT9oOnYpLmZvcm1hdChnKX0odix0aGlzLmRhdGVGb3JtYXQpLHVlPXRoaXMuaW5zdGFuY2UudG9W''@;'; put 'put ''aXN1YWxSb3codGhpcy5yb3cpLF9lPXRoaXMuaW5zdGFuY2UudG9WaXN1YWxDb2x1bW4odGhpcy5jb2wpO3RoaXMuaW5zdGFuY2Uuc2V0RGF0YUF0Q2VsbCh1ZSxfZSxaLCJkYXRlVmFsaWRhdG9yIikseT0hMH1lbHNlIHk9ITE7Zyh5KX1mdW5jdGlvbiB6NmUoZCxnKXt2YXIgaD1kO251bGw9''@;'; put 'put ''PWgmJihoPSIiKSxnKCEoIXRoaXMuYWxsb3dFbXB0eXx8IiIhPT1oKXx8IiIhPT1oJiZ2NChkKSl9VjZlLlJFTkRFUkVSX1RZUEU9Im51bWVyaWMiLGo2ZS5SRU5ERVJFUl9UWVBFPSJwYXNzd29yZCIsWjZlLlJFTkRFUkVSX1RZUEU9InRpbWUiLGR6LlZBTElEQVRPUl9UWVBFPSJhdXRvY29t''@;'; put 'put ''cGxldGUiLEwoNzc5NCksTXRlLlZBTElEQVRPUl9UWVBFPSJkYXRlIix6NmUuVkFMSURBVE9SX1RZUEU9Im51bWVyaWMiO3ZhciBjbnQ9WyJZWVlZLU1NLUREVEhIOm1tOnNzLlNTU1oiLCJYIiwieCJdO2Z1bmN0aW9uIEV0ZShkLGcpe3ZhciBoPXRoaXMudGltZUZvcm1hdHx8Img6bW06c3Mg''@;'; put 'put ''YSIsdj0hMCx5PWQ7bnVsbD09PXkmJih5PSIiKSx5PS9eXGR7Myx9JC8udGVzdCh5KT9wYXJzZUludCh5LDEwKTp5O3ZhciBDPS9eXGR7MSwyfSQvLnRlc3QoeSk7QyYmKHkrPSI6MDAiKTt2YXIgST1UbCh5LGNudCwhMCkuaXNWYWxpZCgpP1RsKHkpOlRsKHksaCksWj1JLmlzVmFsaWQoKSx1''@;'; put 'put ''ZT1UbCh5LGgsITApLmlzVmFsaWQoKSYmIUM7aWYodGhpcy5hbGxvd0VtcHR5JiYiIj09PXkmJihaPSEwLHVlPSEwKSxafHwodj0hMSksIVomJnVlJiYodj0hMCksWiYmIXVlKWlmKCEwPT09dGhpcy5jb3JyZWN0Rm9ybWF0KXt2YXIgX2U9SS5mb3JtYXQoaCksQmU9dGhpcy5pbnN0YW5jZS50''@;'; put 'put ''b1Zpc3VhbFJvdyh0aGlzLnJvdyksTmU9dGhpcy5pbnN0YW5jZS50b1Zpc3VhbENvbHVtbih0aGlzLmNvbCk7dGhpcy5pbnN0YW5jZS5zZXREYXRhQXRDZWxsKEJlLE5lLF9lLCJ0aW1lVmFsaWRhdG9yIiksdj0hMH1lbHNlIHY9ITE7Zyh2KX1FdGUuVkFMSURBVE9SX1RZUEU9InRpbWUiO3Zh''@;'; put 'put ''ciBwbnQ9e0NFTExfVFlQRToiYXV0b2NvbXBsZXRlIixlZGl0b3I6YjZlLHJlbmRlcmVyOklPLHZhbGlkYXRvcjpken0sbW50PXtDRUxMX1RZUEU6ImNoZWNrYm94IixlZGl0b3I6cVNlLHJlbmRlcmVyOkg2ZX0sQW50PXtDRUxMX1RZUEU6ImRhdGUiLGVkaXRvcjpyTWUscmVuZGVyZXI6SU8s''@;'; put 'put ''dmFsaWRhdG9yOk10ZX0sd250PXtDRUxMX1RZUEU6ImRyb3Bkb3duIixlZGl0b3I6eDZlLHJlbmRlcmVyOklPLHZhbGlkYXRvcjpken0sX250PXtDRUxMX1RZUEU6ImhhbmRzb250YWJsZSIsZWRpdG9yOm02ZSxyZW5kZXJlcjpJT30sa250PXtDRUxMX1RZUEU6Im51bWVyaWMiLGVkaXRvcjph''@;'; put 'put ''TWUscmVuZGVyZXI6VjZlLHZhbGlkYXRvcjp6NmUsZGF0YVR5cGU6Im51bWJlciJ9LE1udD17Q0VMTF9UWVBFOiJwYXNzd29yZCIsZWRpdG9yOnNNZSxyZW5kZXJlcjpqNmUsY29weWFibGU6ITF9LHhudD17Q0VMTF9UWVBFOiJ0aW1lIixlZGl0b3I6aE1lLHJlbmRlcmVyOlo2ZSx2YWxpZGF0''@;'; put 'put ''b3I6RXRlfTtmdW5jdGlvbiBBTWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiB5TWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFy''@;'; put 'put ''IHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1MKDM4MTgzKTt2YXIgd01lPW5ldyBNYXAoW1sicGx1Z2luIixmdW5jdGlvbiBa''@;'; put 'put ''emUoZCl7cmV0dXJuISFXWihkKX1dLFsiY2VsbC10eXBlIiwkQ2VdLFsiZWRpdG9yIixvX2VdLFsicmVuZGVyZXIiLGtfZV0sWyJ2YWxpZGF0b3IiLFNfZV1dKSx6Uz1uZXcgV2Vha01hcCxHNmU9W10sRGc9bnVsbCxiTWU9bmV3IFdlYWtTZXQsWXM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcp''@;'; put 'put ''e3ZhciBoPXRoaXM7KGZ1bmN0aW9uIEJudChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxmdW5jdGlvbiBGbnQoZCxnKXsoZnVuY3Rpb24gSG50KGQsZyl7aWYoZy5oYXMo''@;'; put 'put ''ZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5hZGQoZCl9KHRoaXMsYk1lKSxTZyh0aGlzLCJob3QiLGcse3dyaXRhYmxlOiExfSkselMuc2V0KHRoaXMse2hvb2tz''@;'; put 'put ''Ont9fSksRGc9bnVsbCx0aGlzLnBsdWdpbk5hbWU9bnVsbCx0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcz1bXSx0aGlzLmlzUGx1Z2luc1JlYWR5PSExLHRoaXMuZW5hYmxlZD0hMSx0aGlzLmluaXRpYWxpemVkPSExLHRoaXMuaG90LmFkZEhvb2soImFmdGVyUGx1Z2luc0luaXRp''@;'; put 'put ''YWxpemVkIixmdW5jdGlvbigpe3JldHVybiBoLm9uQWZ0ZXJQbHVnaW5zSW5pdGlhbGl6ZWQoKX0pLHRoaXMuaG90LmFkZEhvb2soImFmdGVyVXBkYXRlU2V0dGluZ3MiLGZ1bmN0aW9uKHYpe3JldHVybiBoLm9uVXBkYXRlU2V0dGluZ3Modil9KSx0aGlzLmhvdC5hZGRIb29rKCJiZWZvcmVJ''@;'; put 'put ''bml0IixmdW5jdGlvbigpe3JldHVybiBoLmluaXQoKX0pfXJldHVybiBmdW5jdGlvbiBQbnQoZCxnLGgpe2cmJnlNZShkLnByb3RvdHlwZSxnKSxoJiZ5TWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiaW5pdCIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO3RoaXMucGx1Z2luTmFtZT10aGlzLmhvdC5nZXRQbHVnaW5OYW1lKHRoaXMpO3ZhciB2PXRoaXMuY29uc3RydWN0b3IuUExVR0lOX0RFUFMseT1BcnJheS5pc0FycmF5KHYpP3Y6W107aWYoeS5sZW5ndGg+MCl7dmFyIEM9W107aWYoeS5mb3JFYWNo''@;'; put 'put ''KGZ1bmN0aW9uKF9lKXt2YXIgTmU9ZnVuY3Rpb24gSW50KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFJudChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gT250KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5''@;'; put 'put ''bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9''@;'; put 'put ''ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gTG50KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBBTWUoZCxnKTt2YXIgaD1PYmplY3Qu''@;'; put 'put ''cHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJ''@;'; put 'put ''KW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEFNZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gRG50KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVy''@;'; put 'put ''IHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oX2Uuc3BsaXQoIjoiKSwyKSxLZT1OZVswXSxwdD1OZVsxXTtpZighd01lLmhhcyhLZSkpdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHBsdWdpbiBk''@;'; put 'put ''ZXBlbmRlbmN5IHR5cGUgIicuY29uY2F0KEtlLCciIHdhcyBmb3VuZC4nKSk7d01lLmdldChLZSkocHQpfHxDLnB1c2goIiAtICIuY29uY2F0KHB0LCIgKCIpLmNvbmNhdChLZSwiKSIpKX0pLEMubGVuZ3RoPjApe3ZhciBJPVsiVGhlICIuY29uY2F0KHRoaXMucGx1Z2luTmFtZSwiIHBsdWdp''@;'; put 'put ''biByZXF1aXJlcyB0aGUgZm9sbG93aW5nIG1vZHVsZXM6XG4iKSwiIi5jb25jYXQoQy5qb2luKCJcbiIpLCJcbiIpXS5qb2luKCIiKTtHNmUucHVzaChJKX19aWYoRGd8fChEZz1HM2UoKSksRGcuaW5kZXhPZigiVW5kb1JlZG8iKT49MCYmRGcuc3BsaWNlKERnLmluZGV4T2YoIlVuZG9SZWRv''@;'; put 'put ''IiksMSksRGcuaW5kZXhPZih0aGlzLnBsdWdpbk5hbWUpPj0wJiZEZy5zcGxpY2UoRGcuaW5kZXhPZih0aGlzLnBsdWdpbk5hbWUpLDEpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclBsdWdpbnNJbml0aWFsaXplZCIsZnVuY3Rpb24oKXtoLmlzRW5hYmxlZCYmaC5pc0VuYWJsZWQoKSYm''@;'; put 'put ''aC5lbmFibGVQbHVnaW4oKX0pLDA9PT1EZy5sZW5ndGgpe2lmKEc2ZS5sZW5ndGg+MCl7dmFyIHVlPVsiIi5jb25jYXQoRzZlLmpvaW4oIlxuIiksIlxuIiksIllvdSBoYXZlIHRvIGltcG9ydCBhbmQgcmVnaXN0ZXIgdGhlbSBtYW51YWxseS4iXS5qb2luKCIiKTt0aHJvdyBuZXcgRXJyb3Io''@;'; put 'put ''dWUpfXRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclBsdWdpbnNJbml0aWFsaXplZCIpfXRoaXMuaW5pdGlhbGl6ZWQ9ITB9fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0''@;'; put 'put ''aGlzLmV2ZW50TWFuYWdlciYmdGhpcy5ldmVudE1hbmFnZXIuY2xlYXIoKSx0aGlzLmNsZWFySG9va3MoKSx0aGlzLmVuYWJsZWQ9ITF9fSx7a2V5OiJhZGRIb29rIix2YWx1ZTpmdW5jdGlvbihoLHYpe3pTLmdldCh0aGlzKS5ob29rc1toXT16Uy5nZXQodGhpcykuaG9va3NbaF18fFtdO3Zh''@;'; put 'put ''ciB5PXpTLmdldCh0aGlzKS5ob29rc1toXTt0aGlzLmhvdC5hZGRIb29rKGgsdikseS5wdXNoKHYpLHpTLmdldCh0aGlzKS5ob29rc1toXT15fX0se2tleToicmVtb3ZlSG9va3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXM7VXIoelMuZ2V0KHRoaXMpLmhvb2tzW2hdfHxbXSxmdW5j''@;'; put 'put ''dGlvbih5KXt2LmhvdC5yZW1vdmVIb29rKGgseSl9KX19LHtrZXk6ImNsZWFySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXpTLmdldCh0aGlzKS5ob29rcztHbCh2LGZ1bmN0aW9uKHksQyl7cmV0dXJuIGgucmVtb3ZlSG9va3MoQyl9KSx2Lmxlbmd0aD0wfX0se2tleToi''@;'; put 'put ''Y2FsbE9uUGx1Z2luc1JlYWR5Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmlzUGx1Z2luc1JlYWR5P2goKTp0aGlzLnBsdWdpbnNJbml0aWFsaXplZENhbGxiYWNrcy5wdXNoKGgpfX0se2tleToib25BZnRlclBsdWdpbnNJbml0aWFsaXplZCIsdmFsdWU6ZnVuY3Rpb24oKXtVcih0aGlzLnBs''@;'; put 'put ''dWdpbnNJbml0aWFsaXplZENhbGxiYWNrcyxmdW5jdGlvbihoKXtyZXR1cm4gaCgpfSksdGhpcy5wbHVnaW5zSW5pdGlhbGl6ZWRDYWxsYmFja3MubGVuZ3RoPTAsdGhpcy5pc1BsdWdpbnNSZWFkeT0hMH19LHtrZXk6Im9uVXBkYXRlU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2''@;'; put 'put ''PWZ1bmN0aW9uIE5udChkLGcsaCl7aWYoIWcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBnZXQgcHJpdmF0ZSBmaWVsZCBvbiBub24taW5zdGFuY2UiKTtyZXR1cm4gaH0odGhpcyxiTWUsam50KS5jYWxsKHRoaXMsaCk7dGhpcy5pc0VuYWJsZWQmJih0aGlzLmVu''@;'; put 'put ''YWJsZWQmJiF0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLmRpc2FibGVQbHVnaW4oKSwhdGhpcy5lbmFibGVkJiZ0aGlzLmlzRW5hYmxlZCgpJiZ0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlZCYmdGhpcy5pc0VuYWJsZWQoKSYmdiYmdGhpcy51cGRhdGVQbHVnaW4oaCkpfX0se2tleToi''@;'; put 'put ''dXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmV2ZW50TWFuYWdlciYmdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpLHRoaXMuY2xlYXJIb29rcygpLEdsKHRoaXMsZnVuY3Rpb24odix5KXsi''@;'; put 'put ''aG90IiE9PXkmJihoW3ldPW51bGwpfSksZGVsZXRlIHRoaXMudCxkZWxldGUgdGhpcy5ob3R9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiJiYXNlIn19LHtrZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMuUExVR0lOX0tFWV19''@;'; put 'put ''fV0pLGR9KCk7ZnVuY3Rpb24gam50KGQpe2lmKCFkKXJldHVybiExO3ZhciBnPXRoaXMuY29uc3RydWN0b3IuU0VUVElOR19LRVlTO2lmKCJib29sZWFuIj09dHlwZW9mIGcpcmV0dXJuIGc7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspaWYodm9pZCAwIT09ZFtnW2hdXSlyZXR1cm4hMDty''@;'; put 'put ''ZXR1cm4hMX1mdW5jdGlvbiBfTWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBDTWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFy''@;'; put 'put ''IHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgSm50PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gVW50''@;'; put 'put ''KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5jb250YWluZXI9bnVsbCx0aGlzLmluamVjdGVkPSExLHRoaXMucm93cz1bXSx0aGlzLmNvbHVt''@;'; put 'put ''bnM9W10sdGhpcy5zYW1wbGVzPW51bGwsdGhpcy5zZXR0aW5ncz17dXNlSGVhZGVyczohMH19cmV0dXJuIGZ1bmN0aW9uIFFudChkLGcsaCl7ZyYmQ01lKGQucHJvdG90eXBlLGcpLGgmJkNNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0p''@;'; put 'put ''fShkLFt7a2V5OiJhZGRSb3ciLHZhbHVlOmZ1bmN0aW9uKGgsdil7aWYodGhpcy5jb2x1bW5zLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkRvZXNuJ3Qgc3VwcG9ydCBtdWx0aS1kaW1lbnNpb25hbCB0YWJsZSIpO3RoaXMucm93cy5sZW5ndGh8fCh0aGlzLmNvbnRhaW5lcj10aGlzLmNyZWF0''@;'; put 'put ''ZUNvbnRhaW5lcih0aGlzLmhvdC5yb290RWxlbWVudC5jbGFzc05hbWUpKTt2YXIgeT17cm93Omh9O3RoaXMucm93cy5wdXNoKHkpLHRoaXMuc2FtcGxlcz12LHRoaXMudGFibGU9dGhpcy5jcmVhdGVUYWJsZSh0aGlzLmhvdC50YWJsZS5jbGFzc05hbWUpLHRoaXMudGFibGUuY29sR3JvdXAu''@;'; put 'put ''YXBwZW5kQ2hpbGQodGhpcy5jcmVhdGVDb2xHcm91cHNDb2woKSksdGhpcy50YWJsZS50ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZVJvdyhoKSksdGhpcy5jb250YWluZXIuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMudGFibGUuZnJhZ21lbnQpLHkudGFibGU9dGhpcy50YWJsZS50YWJs''@;'; put 'put ''ZX19LHtrZXk6ImFkZENvbHVtbkhlYWRlcnNSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKG51bGwhPXRoaXMuaG90LmdldENvbEhlYWRlcigwKSl7dmFyIHk9e3JvdzotMX07dGhpcy5yb3dzLnB1c2goeSksdGhpcy5jb250YWluZXI9dGhpcy5jcmVhdGVDb250YWluZXIodGhpcy5ob3Qucm9v''@;'; put 'put ''dEVsZW1lbnQuY2xhc3NOYW1lKSx0aGlzLnNhbXBsZXM9aCx0aGlzLnRhYmxlPXRoaXMuY3JlYXRlVGFibGUodGhpcy5ob3QudGFibGUuY2xhc3NOYW1lKSx0aGlzLnRhYmxlLmNvbEdyb3VwLmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sR3JvdXBzQ29sKCkpLHRoaXMuYXBwZW5kQ29sdW1u''@;'; put 'put ''SGVhZGVyc1JvdygpLHRoaXMuY29udGFpbmVyLmNvbnRhaW5lci5hcHBlbmRDaGlsZCh0aGlzLnRhYmxlLmZyYWdtZW50KSx5LnRhYmxlPXRoaXMudGFibGUudGFibGV9fX0se2tleToiYWRkQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKHRoaXMucm93cy5sZW5ndGgpdGhyb3cgbmV3''@;'; put 'put ''IEVycm9yKCJEb2Vzbid0IHN1cHBvcnQgbXVsdGktZGltZW5zaW9uYWwgdGFibGUiKTt0aGlzLmNvbHVtbnMubGVuZ3RofHwodGhpcy5jb250YWluZXI9dGhpcy5jcmVhdGVDb250YWluZXIodGhpcy5ob3Qucm9vdEVsZW1lbnQuY2xhc3NOYW1lKSk7dmFyIHk9e2NvbDpofTt0aGlzLmNvbHVt''@;'; put 'put ''bnMucHVzaCh5KSx0aGlzLnNhbXBsZXM9dix0aGlzLnRhYmxlPXRoaXMuY3JlYXRlVGFibGUodGhpcy5ob3QudGFibGUuY2xhc3NOYW1lKSx0aGlzLmdldFNldHRpbmcoInVzZUhlYWRlcnMiKSYmbnVsbCE9PXRoaXMuaG90LmdldENvbEhlYWRlcihoKSYmdGhpcy5ob3Qudmlldy5hcHBlbmRD''@;'; put 'put ''b2xIZWFkZXIoaCx0aGlzLnRhYmxlLnRoKSx0aGlzLnRhYmxlLnRCb2R5LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sKGgpKSx0aGlzLmNvbnRhaW5lci5jb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy50YWJsZS5mcmFnbWVudCkseS50YWJsZT10aGlzLnRhYmxlLnRhYmxlfX0se2tleToi''@;'; put 'put ''Z2V0SGVpZ2h0cyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5pbmplY3RlZHx8dGhpcy5pbmplY3RUYWJsZSgpLFVyKHRoaXMucm93cyxmdW5jdGlvbih2KXtoKHYucm93LEQxKHYudGFibGUpLTEpfSl9fSx7a2V5OiJnZXRXaWR0aHMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuaW5qZWN0ZWR8''@;'; put 'put ''fHRoaXMuaW5qZWN0VGFibGUoKSxVcih0aGlzLmNvbHVtbnMsZnVuY3Rpb24odil7dmFyIHk9di50YWJsZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtoKHYuY29sLE1hdGguY2VpbCh5LndpZHRoKSl9KX19LHtrZXk6InNldFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnNldHRp''@;'; put 'put ''bmdzPWh9fSx7a2V5OiJzZXRTZXR0aW5nIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuc2V0dGluZ3N8fCh0aGlzLnNldHRpbmdzPXt9KSx0aGlzLnNldHRpbmdzW2hdPXZ9fSx7a2V5OiJnZXRTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZXR0aW5nc319LHtrZXk6''@;'; put 'put ''ImdldFNldHRpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnNldHRpbmdzP3RoaXMuc2V0dGluZ3NbaF06bnVsbH19LHtrZXk6ImNyZWF0ZUNvbEdyb3Vwc0NvbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZURvY3Vt''@;'; put 'put ''ZW50RnJhZ21lbnQoKTtyZXR1cm4gdGhpcy5ob3QuaGFzUm93SGVhZGVycygpJiZ2LmFwcGVuZENoaWxkKHRoaXMuY3JlYXRlQ29sRWxlbWVudCgtMSkpLHRoaXMuc2FtcGxlcy5mb3JFYWNoKGZ1bmN0aW9uKHkpe1VyKHkuc3RyaW5ncyxmdW5jdGlvbihDKXt2LmFwcGVuZENoaWxkKGguY3Jl''@;'; put 'put ''YXRlQ29sRWxlbWVudChDLmNvbCkpfSl9KSx2fX0se2tleToiY3JlYXRlUm93Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LEM9eS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksST15LmNyZWF0ZUVsZW1lbnQoInRoIik7cmV0dXJuIHRoaXMu''@;'; put 'put ''aG90Lmhhc1Jvd0hlYWRlcnMoKSYmKHRoaXMuaG90LnZpZXcuYXBwZW5kUm93SGVhZGVyKGgsSSksQy5hcHBlbmRDaGlsZChJKSksdGhpcy5zYW1wbGVzLmZvckVhY2goZnVuY3Rpb24oWil7VXIoWi5zdHJpbmdzLGZ1bmN0aW9uKHVlKXt2YXIgX2U9dWUuY29sLEJlPXYuaG90LmdldENlbGxN''@;'; put 'put ''ZXRhKGgsX2UpO0JlLmNvbD1fZSxCZS5yb3c9aDt2YXIgTmU9di5ob3QuZ2V0Q2VsbFJlbmRlcmVyKEJlKSxLZT15LmNyZWF0ZUVsZW1lbnQoInRkIik7S2Uuc2V0QXR0cmlidXRlKCJnaG9zdC10YWJsZSIsMSksTmUodi5ob3QsS2UsaCxfZSx2LmhvdC5jb2xUb1Byb3AoX2UpLHVlLnZhbHVl''@;'; put 'put ''LEJlKSxDLmFwcGVuZENoaWxkKEtlKX0pfSksQ319LHtrZXk6ImFwcGVuZENvbHVtbkhlYWRlcnNSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PXRoaXMuaG90LnJvb3REb2N1bWVudCx5PXYuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEM9W107aWYodGhpcy5ob3QuaGFzUm93''@;'; put 'put ''SGVhZGVycygpKXt2YXIgST12LmNyZWF0ZUVsZW1lbnQoInRoIik7Qy5wdXNoKFstMSxJXSkseS5hcHBlbmRDaGlsZChJKX10aGlzLnNhbXBsZXMuZm9yRWFjaChmdW5jdGlvbihaKXtVcihaLnN0cmluZ3MsZnVuY3Rpb24odWUpe3ZhciBfZT11ZS5jb2wsQmU9di5jcmVhdGVFbGVtZW50KCJ0''@;'; put 'put ''aCIpO0MucHVzaChbX2UsQmVdKSx5LmFwcGVuZENoaWxkKEJlKX0pfSksdGhpcy50YWJsZS50SGVhZC5hcHBlbmRDaGlsZCh5KSxVcihDLGZ1bmN0aW9uKFope3ZhciB1ZT1mdW5jdGlvbiBabnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gWW50KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJu''@;'; put 'put ''IGR9KGQpfHxmdW5jdGlvbiBXbnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTsh''@;'; put 'put ''KHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcp''@;'; put 'put ''fHxmdW5jdGlvbiBHbnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIF9NZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3Iu''@;'; put 'put ''bmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gX01lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiB6bnQoKXt0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShaLDIpO2gu''@;'; put 'put ''aG90LnZpZXcuYXBwZW5kQ29sSGVhZGVyKHVlWzBdLHVlWzFdKX0pfX0se2tleToiY3JlYXRlQ29sIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LEM9eS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7cmV0dXJuIHRoaXMuc2FtcGxlcy5mb3JF''@;'; put 'put ''YWNoKGZ1bmN0aW9uKEkpe1VyKEkuc3RyaW5ncyxmdW5jdGlvbihaKXt2YXIgdWU9Wi5yb3csX2U9di5ob3QuZ2V0Q2VsbE1ldGEodWUsaCk7X2UuY29sPWgsX2Uucm93PXVlO3ZhciBCZT12LmhvdC5nZXRDZWxsUmVuZGVyZXIoX2UpLE5lPXkuY3JlYXRlRWxlbWVudCgidGQiKSxLZT15LmNy''@;'; put 'put ''ZWF0ZUVsZW1lbnQoInRyIik7TmUuc2V0QXR0cmlidXRlKCJnaG9zdC10YWJsZSIsMSksQmUodi5ob3QsTmUsdWUsaCx2LmhvdC5jb2xUb1Byb3AoaCksWi52YWx1ZSxfZSksS2UuYXBwZW5kQ2hpbGQoTmUpLEMuYXBwZW5kQ2hpbGQoS2UpfSl9KSxDfX0se2tleToiY2xlYW4iLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7dGhpcy5yb3dzLmxlbmd0aD0wLHRoaXMucm93c1stMV09dm9pZCAwLHRoaXMuY29sdW1ucy5sZW5ndGg9MCx0aGlzLnNhbXBsZXMmJnRoaXMuc2FtcGxlcy5jbGVhcigpLHRoaXMuc2FtcGxlcz1udWxsLHRoaXMucmVtb3ZlVGFibGUoKX19LHtrZXk6ImluamVjdFRhYmxlIix2''@;'; put 'put ''YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsO3RoaXMuaW5qZWN0ZWR8fCgoaHx8dGhpcy5ob3Qucm9vdEVsZW1lbnQpLmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyLmZyYWdtZW50KSx0aGlz''@;'; put 'put ''LmluamVjdGVkPSEwKX19LHtrZXk6InJlbW92ZVRhYmxlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaW5qZWN0ZWQmJnRoaXMuY29udGFpbmVyLmNvbnRhaW5lci5wYXJlbnROb2RlJiYodGhpcy5jb250YWluZXIuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5jb250YWlu''@;'; put 'put ''ZXIuY29udGFpbmVyKSx0aGlzLmNvbnRhaW5lcj1udWxsLHRoaXMuaW5qZWN0ZWQ9ITEpfX0se2tleToiY3JlYXRlQ29sRWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNvbCIpO3JldHVybiB2LnN0eWxlLndpZHRo''@;'; put 'put ''PSIiLmNvbmNhdCh0aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKGgpLCJweCIpLHZ9fSx7a2V5OiJjcmVhdGVUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVu''@;'; put 'put ''dHNbMF06IiIsdj10aGlzLmhvdC5yb290RG9jdW1lbnQseT12LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxDPXYuY3JlYXRlRWxlbWVudCgidGFibGUiKSxJPXYuY3JlYXRlRWxlbWVudCgidGhlYWQiKSxaPXYuY3JlYXRlRWxlbWVudCgidGJvZHkiKSx1ZT12LmNyZWF0ZUVsZW1lbnQoImNv''@;'; put 'put ''bGdyb3VwIiksX2U9di5jcmVhdGVFbGVtZW50KCJ0ciIpLEJlPXYuY3JlYXRlRWxlbWVudCgidGgiKTtyZXR1cm4gdGhpcy5pc1ZlcnRpY2FsKCkmJkMuYXBwZW5kQ2hpbGQodWUpLHRoaXMuaXNIb3Jpem9udGFsKCkmJihfZS5hcHBlbmRDaGlsZChCZSksSS5hcHBlbmRDaGlsZChfZSksQy5z''@;'; put 'put ''dHlsZS50YWJsZUxheW91dD0iYXV0byIsQy5zdHlsZS53aWR0aD0iYXV0byIpLEMuYXBwZW5kQ2hpbGQoSSksdGhpcy5pc1ZlcnRpY2FsKCkmJlouYXBwZW5kQ2hpbGQoX2UpLEMuYXBwZW5kQ2hpbGQoWiksTzAoQyxoKSx5LmFwcGVuZENoaWxkKEMpLHtmcmFnbWVudDp5LHRhYmxlOkMsdEhl''@;'; put 'put ''YWQ6SSx0Qm9keTpaLGNvbEdyb3VwOnVlLHRyOl9lLHRoOkJlfX19LHtrZXk6ImNyZWF0ZUNvbnRhaW5lciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06IiIsdj10aGlzLmhvdC5yb290RG9jdW1l''@;'; put 'put ''bnQseT12LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxDPXYuY3JlYXRlRWxlbWVudCgiZGl2IiksST0iaHRHaG9zdFRhYmxlIGh0QXV0b1NpemUgIi5jb25jYXQoaC50cmltKCkpO3JldHVybiBPMChDLEkpLHkuYXBwZW5kQ2hpbGQoQykse2ZyYWdtZW50OnksY29udGFpbmVyOkN9fX0se2tl''@;'; put 'put ''eToiaXNWZXJ0aWNhbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLnJvd3MubGVuZ3RofHx0aGlzLmNvbHVtbnMubGVuZ3RoKX19LHtrZXk6ImlzSG9yaXpvbnRhbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLmNvbHVtbnMubGVuZ3RofHx0aGlzLnJvd3MubGVuZ3Ro''@;'; put 'put ''KX19XSksZH0oKTtjb25zdCBXNmU9Sm50O2Z1bmN0aW9uIGtNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBxbnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBLbnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMs''@;'; put 'put ''ZCksdGhpcy5zYW1wbGVzPW51bGwsdGhpcy5kYXRhRmFjdG9yeT1nLHRoaXMuY3VzdG9tU2FtcGxlQ291bnQ9bnVsbCx0aGlzLmFsbG93RHVwbGljYXRlcz0hMX1yZXR1cm4gZnVuY3Rpb24gJG50KGQsZyxoKXtnJiZrTWUoZC5wcm90b3R5cGUsZyksaCYma01lKGQsaCksT2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImdldFNhbXBsZUNvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1c3RvbVNhbXBsZUNvdW50P3RoaXMuY3VzdG9tU2FtcGxlQ291bnQ6ZC5TQU1QTEVfQ09VTlR9fSx7a2V5OiJzZXRTYW1w''@;'; put 'put ''bGVDb3VudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXN0b21TYW1wbGVDb3VudD1ofX0se2tleToic2V0QWxsb3dEdXBsaWNhdGVzIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmFsbG93RHVwbGljYXRlcz1ofX0se2tleToiZ2VuZXJhdGVSb3dTYW1wbGVzIix2YWx1ZTpmdW5jdGlvbiho''@;'; put 'put ''LHYpe3JldHVybiB0aGlzLmdlbmVyYXRlU2FtcGxlcygicm93Iix2LGgpfX0se2tleToiZ2VuZXJhdGVDb2x1bW5TYW1wbGVzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLmdlbmVyYXRlU2FtcGxlcygiY29sIix2LGgpfX0se2tleToiZ2VuZXJhdGVTYW1wbGVzIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPW5ldyBNYXAsWj0ibnVtYmVyIj09dHlwZW9mIHk/e2Zyb206eSx0bzp5fTp5O3JldHVybiBpYShaLmZyb20sWi50byxmdW5jdGlvbihCZSl7dmFyIE5lPUMuZ2VuZXJhdGVTYW1wbGUoaCx2LEJlKTtJLnNldChCZSxOZSl9KSxJfX0se2tleToi''@;'; put 'put ''Z2VuZXJhdGVTYW1wbGUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzO2lmKCJyb3ciIT09aCYmImNvbCIhPT1oKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc2FtcGxlIHR5cGUiKTt2YXIgST1uZXcgTWFwLFo9InJvdyI9PT1oPyJjb2wiOiJyb3ciLHVlPVtdO3JldHVy''@;'; put 'put ''biBpYSh2LmZyb20sdi50byxmdW5jdGlvbihfZSl7dmFyIE90LEJlPSJyb3ciPT09aD9DLmRhdGFGYWN0b3J5KHksX2UpOkMuZGF0YUZhY3RvcnkoX2UseSksTmU9QmUudmFsdWUsS2U9QmUuYnVuZGxlU2VlZCxwdD0ic3RyaW5nIj09dHlwZW9mIEtlJiZLZS5sZW5ndGg+MDtPdD1wdD9LZTp4''@;'; put 'put ''bChOZSk/IiIuY29uY2F0KE9iamVjdC5rZXlzKE5lKS5sZW5ndGgpOkFycmF5LmlzQXJyYXkoTmUpPyIiLmNvbmNhdChOZS5sZW5ndGgpOiIiLmNvbmNhdChldShOZSkubGVuZ3RoKSxJLmhhcyhPdCl8fEkuc2V0KE90LHtuZWVkZWQ6Qy5nZXRTYW1wbGVDb3VudCgpLHN0cmluZ3M6W119KTt2''@;'; put 'put ''YXIgJHQ9SS5nZXQoT3QpOyR0Lm5lZWRlZCYmKCEodWUuaW5kZXhPZihOZSk+LTEpfHxDLmFsbG93RHVwbGljYXRlc3x8cHQpJiYoJHQuc3RyaW5ncy5wdXNoKGZ1bmN0aW9uIFhudChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1l''@;'; put 'put ''cmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9KHt2YWx1ZTpOZX0sWixfZSkpLHVlLnB1c2goTmUpLCR0Lm5lZWRlZC09MSl9KSxJfX1dLFt7a2V5OiJTQU1QTEVfQ09VTlQiLGdldDpmdW5jdGlvbigpe3JldHVybiAzfX1dKSxkfSgpO2NvbnN0IFNNZT1x''@;'; put 'put ''bnQ7ZnVuY3Rpb24gWTZlKGQpe3JldHVybihZNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJv''@;'; put 'put ''bCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBNTWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gcnJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBucnQoZCxnKXt2''@;'; put 'put ''YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5w''@;'; put 'put ''dXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiB0cnQoZCxnKXtpZihkKXtp''@;'; put 'put ''Zigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEVNZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgp''@;'; put 'put ''cmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRU1lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBlcnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVt''@;'; put 'put ''cHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIEVNZShkLGcpeyhudWxsPT1nfHxnPmQubGVu''@;'; put 'put ''Z3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHhNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29u''@;'; put 'put ''ZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEdTKCl7cmV0dXJuIEdTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0''@;'; put 'put ''aW9uKGcsaCx2KXt2YXIgeT1hcnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LEdTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlv''@;'; put 'put ''biBhcnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUx2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFU2ZShkLGcpe3JldHVybihVNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5k''@;'; put 'put ''KCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB1cnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1ZNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQg''@;'; put 'put ''Y29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIFRNZShkKX1mdW5jdGlvbiBUTWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24n''@;'; put 'put ''dCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEx2KGQpe3JldHVybihMdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpv''@;'; put 'put ''LmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiKTt2YXIgcHo9ImF1dG9Db2x1bW5TaXplIixRNmU9bmV3IFdlYWtNYXAsZHJ0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBscnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhy''@;'; put 'put ''b3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSks''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmVTZlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gc3J0KGQpe3ZhciBnPWZ1bmN0aW9uIGNydCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxS''@;'; put 'put ''ZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQp''@;'; put 'put ''e3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUx2KGQpO2lmKGcpe3ZhciBDPUx2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB1cnQodGhpcyx5KX19''@;'; put 'put ''KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIGlydChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLHk9Zy5jYWxsKHRoaXMsdiksUTZlLnNldChUTWUo''@;'; put 'put ''eSkse2NhY2hlZENvbHVtbkhlYWRlcnM6W119KSx5Lmdob3N0VGFibGU9bmV3IFc2ZSh5LmhvdCkseS5zYW1wbGVzR2VuZXJhdG9yPW5ldyBTTWUoZnVuY3Rpb24oQyxJKXt2YXIgWj15LmhvdC5nZXRDZWxsTWV0YShDLEkpLHVlPSIiO1ouc3Bhbm5lZHx8KHVlPXkuaG90LmdldERhdGFBdENl''@;'; put 'put ''bGwoQyxJKSk7dmFyIF9lPSIiO3JldHVybiB5LmhvdC5oYXNIb29rKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiKSYmKF9lPXkuaG90LnJ1bkhvb2tzKCJtb2RpZnlBdXRvQ29sdW1uU2l6ZVNlZWQiLF9lLFosdWUpKSx7dmFsdWU6dWUsYnVuZGxlU2VlZDpfZX19KSx5LmZpcnN0Q2FsY3Vs''@;'; put 'put ''YXRpb249ITAseS5pblByb2dyZXNzPSExLHkubWVhc3VyZWRDb2x1bW5zPTAseS5jb2x1bW5XaWR0aHNNYXA9bmV3IER3LHkuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJhdXRvQ29sdW1uU2l6ZSIseS5jb2x1bW5XaWR0aHNNYXApLHkuYWRkSG9vaygiYmVmb3JlQ29sdW1u''@;'; put 'put ''UmVzaXplIixmdW5jdGlvbihDLEksWil7cmV0dXJuIHkub25CZWZvcmVDb2x1bW5SZXNpemUoQyxJLFopfSkseX1yZXR1cm4gZnVuY3Rpb24gb3J0KGQsZyxoKXtnJiZ4TWUoZC5wcm90b3R5cGUsZyksaCYmeE1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dy''@;'; put 'put ''aXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hMSE9PXRoaXMuaG90LmdldFNldHRpbmdzKClbcHpdJiYhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5jb2xXaWR0aHN9fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFy''@;'; put 'put ''IHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3B6XTtDJiZudWxsIT1DLnVzZUhlYWRlcnMmJnRoaXMuZ2hvc3RUYWJsZS5zZXRTZXR0aW5nKCJ1c2VIZWFkZXJzIixDLnVzZUhlYWRlcnMpLHRoaXMuc2V0U2FtcGxpbmdPcHRpb25zKCksdGhp''@;'; put 'put ''cy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNoYW5nZVJlbmRlciIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25CZWZvcmVDaGFuZ2UoSSl9KSx0aGlzLmFk''@;'; put 'put ''ZEhvb2soImFmdGVyRm9ybXVsYXNWYWx1ZXNVcGRhdGUiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uQWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZShJKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmlld1JlbmRlciIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25CZWZvcmVWaWV3UmVuZGVyKEkpfSks''@;'; put 'put ''dGhpcy5hZGRIb29rKCJtb2RpZnlDb2xXaWR0aCIsZnVuY3Rpb24oSSxaKXtyZXR1cm4geS5nZXRDb2x1bW5XaWR0aChaLEkpfSksdGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckluaXQoKX0pLEdTKEx2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1''@;'; put 'put ''Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmZpbmRDb2x1bW5zV2hlcmVIZWFkZXJXYXNDaGFuZ2VkKCk7eS5sZW5ndGgmJih0aGlzLmNsZWFyQ2FjaGUoeSksdGhpcy5jYWxjdWxhdGVWaXNpYmxlQ29sdW1u''@;'; put 'put ''c1dpZHRoKCkpLEdTKEx2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO0dTKEx2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSx0''@;'; put 'put ''aGlzLmFkZEhvb2soImJlZm9yZUNvbHVtblJlc2l6ZSIsZnVuY3Rpb24oQyxJLFope3JldHVybiB5Lm9uQmVmb3JlQ29sdW1uUmVzaXplKEMsSSxaKX0pfX0se2tleToiY2FsY3VsYXRlVmlzaWJsZUNvbHVtbnNXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC5jb3VudFJvd3Mo''@;'; put 'put ''KSl7dmFyIEM9dGhpcy5ob3QucmVuZGVyQ2FsbCxJPXRoaXMuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCksWj10aGlzLmdldExhc3RWaXNpYmxlQ29sdW1uKCk7LTE9PT1JfHwtMT09PVp8fHRoaXMuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHtmcm9tOkksdG86Wn0sdm9pZCAwLEMpfX19LHtrZXk6''@;'; put 'put ''ImNhbGN1bGF0ZUNvbHVtbnNXaWR0aCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRDb2xzKCktMX0sST1hcmd1bWVudHMubGVuZ3RoPjEm''@;'; put 'put ''JnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudFJvd3MoKS0xfSxaPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sdWU9Im51bWJlciI9PXR5cGVvZiBDP3tmcm9tOkMsdG86Q306''@;'; put 'put ''QyxfZT0ibnVtYmVyIj09dHlwZW9mIEk/e2Zyb206SSx0bzpJfTpJO2lhKHVlLmZyb20sdWUudG8sZnVuY3Rpb24oQmUpe3ZhciBOZT15LmhvdC50b1BoeXNpY2FsQ29sdW1uKEJlKTtudWxsPT09TmUmJihOZT1CZSksKFp8fG51bGw9PT15LmNvbHVtbldpZHRoc01hcC5nZXRWYWx1ZUF0SW5k''@;'; put 'put ''ZXgoTmUpJiYheS5ob3QuX2dldENvbFdpZHRoRnJvbVNldHRpbmdzKE5lKSkmJlVyKHkuc2FtcGxlc0dlbmVyYXRvci5nZW5lcmF0ZUNvbHVtblNhbXBsZXMoQmUsX2UpLGZ1bmN0aW9uKHB0KXt2YXIgT3Q9TU1lKHB0LDIpO3JldHVybiB5Lmdob3N0VGFibGUuYWRkQ29sdW1uKE90WzBdLE90''@;'; put 'put ''WzFdKX0pfSksdGhpcy5naG9zdFRhYmxlLmNvbHVtbnMubGVuZ3RoJiYodGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXt5Lmdob3N0VGFibGUuZ2V0V2lkdGhzKGZ1bmN0aW9uKEJlLE5lKXt2YXIgS2U9eS5ob3QudG9QaHlzaWNhbENvbHVtbihCZSk7eS5jb2x1bW5XaWR0aHNN''@;'; put 'put ''YXAuc2V0VmFsdWVBdEluZGV4KEtlLE5lKX0pfSwhMCksdGhpcy5tZWFzdXJlZENvbHVtbnM9dWUudG8rMSx0aGlzLmdob3N0VGFibGUuY2xlYW4oKSl9fSx7a2V5OiJjYWxjdWxhdGVBbGxDb2x1bW5zV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWFyZ3VtZW50cy5sZW5n''@;'; put 'put ''dGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Um93cygpLTF9LEk9MCxaPXRoaXMuaG90LmNvdW50Q29scygpLTEsdWU9bnVsbDt0aGlzLmluUHJvZ3Jlc3M9ITA7dmFyIF9lPWZ1bmN0aW9uIE5lKCl7aWYoIXkuaG90KXJl''@;'; put 'put ''dHVybiBUWih1ZSksdm9pZCh5LmluUHJvZ3Jlc3M9ITEpO3kuY2FsY3VsYXRlQ29sdW1uc1dpZHRoKHtmcm9tOkksdG86TWF0aC5taW4oSStoLkNBTENVTEFUSU9OX1NURVAsWil9LEMpLChJPUkraC5DQUxDVUxBVElPTl9TVEVQKzEpPFo/dWU9R2hlKE5lKTooVFoodWUpLHkuaW5Qcm9ncmVz''@;'; put 'put ''cz0hMSx5LmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSgpKX0sQmU9dGhpcy5nZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCgpO3RoaXMuZmlyc3RDYWxjdWxhdGlvbiYmQmU+PTAmJih0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aCh7ZnJvbTowLHRvOkJlfSxDKSx0aGlzLmZpcnN0Q2FsY3Vs''@;'; put 'put ''YXRpb249ITEsST1CZSsxKSxJPFo/X2UoKTp0aGlzLmluUHJvZ3Jlc3M9ITF9fSx7a2V5OiJzZXRTYW1wbGluZ09wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtwel0sQz15JiZvMSh5LCJzYW1wbGluZ1JhdGlvIik/eS5zYW1wbGluZ1JhdGlv''@;'; put 'put ''OnZvaWQgMCxJPXkmJm8xKHksImFsbG93U2FtcGxlRHVwbGljYXRlcyIpP3kuYWxsb3dTYW1wbGVEdXBsaWNhdGVzOnZvaWQgMDtDJiYhaXNOYU4oQykmJnRoaXMuc2FtcGxlc0dlbmVyYXRvci5zZXRTYW1wbGVDb3VudChwYXJzZUludChDLDEwKSksSSYmdGhpcy5zYW1wbGVzR2VuZXJhdG9y''@;'; put 'put ''LnNldEFsbG93RHVwbGljYXRlcyhJKX19LHtrZXk6InJlY2FsY3VsYXRlQWxsQ29sdW1uc1dpZHRoIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnZpZXcmJnRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuaXNWaXNpYmxlKCkmJih0aGlzLmNsZWFyQ2FjaGUoKSx0aGlzLmNhbGN1bGF0ZUFs''@;'; put 'put ''bENvbHVtbnNXaWR0aCgpKX19LHtrZXk6ImdldFN5bmNDYWxjdWxhdGlvbkxpbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNldHRpbmdzKClbcHpdLEM9aC5TWU5DX0NBTENVTEFUSU9OX0xJTUlULEk9dGhpcy5ob3QuY291bnRDb2xzKCktMTtyZXR1cm4geGwoeSkm''@;'; put 'put ''JihvM2UoQz15LnN5bmNMaW1pdCk/Qz1QM2UoSSxDKTpDPj49MCksTWF0aC5taW4oQyxJKX19LHtrZXk6ImdldENvbHVtbldpZHRoIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dm9pZCAwLEk9''@;'; put 'put ''IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSxaPUM7cmV0dXJuIHZvaWQgMD09PVomJihaPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleCh0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpKSxJJiYibnVtYmVyIj09''@;'; put 'put ''dHlwZW9mIFomJihaPU1hdGgubWF4KFosTmRlLkRFRkFVTFRfV0lEVEgpKSksWn19LHtrZXk6ImdldEZpcnN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dDtpZih5Lnd0Vmlld3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yKXt2YXIg''@;'; put 'put ''Qz15Lnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlQ29sdW1uKCk7aWYoLTEhPT1DKXJldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KEMpfWlmKHkud3RWaWV3cG9ydC5jb2x1bW5zUmVuZGVyQ2FsY3VsYXRvcil7dmFyIEk9eS53dFRh''@;'; put 'put ''YmxlLmdldEZpcnN0UmVuZGVyZWRDb2x1bW4oKTtpZigtMSE9PUkpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoSSl9cmV0dXJuLTF9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIg''@;'; put 'put ''eT10aGlzLmhvdC52aWV3Ll93dDtpZih5Lnd0Vmlld3BvcnQuY29sdW1uc1Zpc2libGVDYWxjdWxhdG9yKXt2YXIgQz15Lnd0VGFibGUuZ2V0TGFzdFZpc2libGVDb2x1bW4oKTtpZigtMSE9PUMpcmV0dXJuIHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFZpc3VhbEZyb21SZW5kZXJh''@;'; put 'put ''YmxlSW5kZXgoQyl9aWYoeS53dFZpZXdwb3J0LmNvbHVtbnNSZW5kZXJDYWxjdWxhdG9yKXt2YXIgST15Lnd0VGFibGUuZ2V0TGFzdFJlbmRlcmVkQ29sdW1uKCk7aWYoLTEhPT1JKXJldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4''@;'; put 'put ''KEkpfXJldHVybi0xfX0se2tleToiZmluZENvbHVtbnNXaGVyZUhlYWRlcldhc0NoYW5nZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKCksST1RNmUuZ2V0KHRoaXMpLmNhY2hlZENvbHVtbkhlYWRlcnM7cmV0dXJuIFN1KHksZnVuY3Rpb24odWUsX2Us''@;'; put 'put ''QmUpe3ZhciBOZT1JLmxlbmd0aDtyZXR1cm4oTmUtMTxCZXx8SVtCZV0hPT1fZSkmJnVlLnB1c2goQmUpLE5lLTE8QmU/SS5wdXNoKF9lKTpJW0JlXT1fZSx1ZX0sW10pfX0se2tleToiY2xlYXJDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4w''@;'; put 'put ''JiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO0MubGVuZ3RoP3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoQyxmdW5jdGlvbihJKXt5LmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoSSxudWxsKX0pfSwhMCk6dGhpcy5jb2x1bW5XaWR0''@;'; put 'put ''aHNNYXAuY2xlYXIoKX19LHtrZXk6ImlzTmVlZFJlY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhZzQodGhpcy5jb2x1bW5XaWR0aHNNYXAuZ2V0VmFsdWVzKCkuc2xpY2UoMCx0aGlzLm1lYXN1cmVkQ29sdW1ucyksZnVuY3Rpb24oeSl7cmV0dXJuIG51bGw9PT15fSkubGVu''@;'; put 'put ''Z3RofX0se2tleToib25CZWZvcmVWaWV3UmVuZGVyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2FsY3VsYXRlVmlzaWJsZUNvbHVtbnNXaWR0aCgpLHRoaXMuaXNOZWVkUmVjYWxjdWxhdGUoKSYmIXRoaXMuaW5Qcm9ncmVzcyYmdGhpcy5jYWxjdWxhdGVBbGxDb2x1bW5zV2lkdGgoKX19LHtr''@;'; put 'put ''ZXk6Im9uQWZ0ZXJMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuaG90LnZpZXc/dGhpcy5yZWNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmhvdCYmeS5yZWNhbGN1bGF0ZUFsbENvbHVtbnNXaWR0aCgpfSwwKX19LHtr''@;'; put 'put ''ZXk6Im9uQmVmb3JlQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9T2woeSxmdW5jdGlvbihaKXt2YXIgdWU9TU1lKFosMik7cmV0dXJuIEMuaG90LnRvUGh5c2ljYWxDb2x1bW4oQy5ob3QucHJvcFRvQ29sKHVlWzFdKSl9KTt0aGlzLmNsZWFyQ2FjaGUoQXJyYXkuZnJv''@;'; put 'put ''bShuZXcgU2V0KEkpKSl9fSx7a2V5OiJvbkJlZm9yZUNvbHVtblJlc2l6ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBaPXk7cmV0dXJuIEkmJih0aGlzLmNhbGN1bGF0ZUNvbHVtbnNXaWR0aChDLHZvaWQgMCwhMCksWj10aGlzLmdldENvbHVtbldpZHRoKEMsdm9pZCAwLCExKSksWn19''@;'; put 'put ''LHtrZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5jdGlvbigpe1E2ZS5nZXQodGhpcykuY2FjaGVkQ29sdW1uSGVhZGVycz10aGlzLmhvdC5nZXRDb2xIZWFkZXIoKX19LHtrZXk6Im9uQWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEk9T2woZzQoeSxm''@;'; put 'put ''dW5jdGlvbihaKXt2YXIgdWU7cmV0dXJuIFRvKG51bGw9PT0odWU9Wi5hZGRyZXNzKXx8dm9pZCAwPT09dWU/dm9pZCAwOnVlLmNvbCl9KSxmdW5jdGlvbihaKXtyZXR1cm4gWi5hZGRyZXNzLmNvbH0pO3RoaXMuY2xlYXJDYWNoZShBcnJheS5mcm9tKG5ldyBTZXQoSSkpKX19LHtrZXk6ImRl''@;'; put 'put ''c3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5naG9zdFRhYmxlLmNsZWFuKCksR1MoTHYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcHp9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFki''@;'; put 'put ''LGdldDpmdW5jdGlvbigpe3JldHVybiAxMH19LHtrZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJDQUxDVUxBVElPTl9TVEVQIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNTB9fSx7a2V5OiJTWU5DX0NBTENVTEFUSU9OX0xJTUlUIixnZXQ6ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gNTB9fV0pLGh9KFlzKSxXUz17aG9yaXpvbnRhbDoiaG9yaXpvbnRhbCIsdmVydGljYWw6InZlcnRpY2FsIn07ZnVuY3Rpb24gSjZlKGQpe3JldHVybihKNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVu''@;'; put 'put ''Y3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBJTWUoZCxnKXtpZihk''@;'; put 'put ''KXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFg2ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09''@;'; put 'put ''PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gWDZlKGQsZyl9fWZ1bmN0aW9uIFg2ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgp''@;'; put 'put ''O2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIERNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1''@;'; put 'put ''ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFlTKCl7cmV0dXJuIFlTPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1F''@;'; put 'put ''cnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFlTLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBFcnQoZCxnKXtmb3IoOyFP''@;'; put 'put ''YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPU92KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEs2ZShkLGcpe3JldHVybihLNmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXty''@;'; put 'put ''ZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBJcnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1KNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBv''@;'; put 'put ''bmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIExNZShkKX1mdW5jdGlvbiBMTWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3Jl''@;'; put 'put ''dHVybiBkfWZ1bmN0aW9uIE92KGQpe3JldHVybihPdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJl''@;'; put 'put ''Z2lzdGVyKCJtb2RpZnlBdXRvZmlsbFJhbmdlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUF1dG9maWxsIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQXV0b2ZpbGwiKTt2YXIgT01lPSJhdXRvZmlsbCIsT3J0PVsiZmlsbEhhbmRsZSJdLFBydD1mdW5j''@;'; put 'put ''dGlvbihkKXshZnVuY3Rpb24geHJ0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZn''@;'; put 'put ''LnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJks2ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFRydChkKXt2YXIgZz1mdW5j''@;'; put 'put ''dGlvbiBEcnQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1''@;'; put 'put ''ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1PdihkKTtpZihnKXt2YXIgQz1Pdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYs''@;'; put 'put ''YXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gSXJ0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBTcnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2Fs''@;'; put 'put ''bCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMShMTWUoeSkpLHkuYWRkaW5nU3RhcnRlZD0hMSx5Lm1vdXNlRG93bk9uQ2VsbENvcm5lcj0hMSx5Lm1vdXNlRHJhZ091dHNpZGU9ITEseS5oYW5kbGVEcmFnZ2Vk''@;'; put 'put ''Q2VsbHM9MCx5LmRpcmVjdGlvbnM9W10seS5hdXRvSW5zZXJ0Um93PSExLHl9cmV0dXJuIGZ1bmN0aW9uIE1ydChkLGcsaCl7ZyYmRE1lKGQucHJvdG90eXBlLGcpLGgmJkRNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5''@;'; put 'put ''OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKCkuZmlsbEhhbmRsZX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMubWFwU2V0dGluZ3MoKSx0aGlzLnJlZ2lz''@;'; put 'put ''dGVyRXZlbnRzKCksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbENvcm5lck1vdXNlRG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25BZnRlckNlbGxDb3JuZXJNb3VzZURvd24oQyl9KSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsQ29ybmVyRGJsQ2xpY2siLGZ1bmN0aW9uKEMpe3JldHVy''@;'; put 'put ''biB5Lm9uQ2VsbENvcm5lckRibENsaWNrKEMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkub25CZWZvcmVDZWxsTW91c2VPdmVyKEkpfSksWVMoT3YoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhp''@;'; put 'put ''cykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksWVMoT3YoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbigpe3RoaXMuY2xlYXJNYXBwZWRTZXR0aW5ncygpLFlTKE92KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImdldFNlbGVjdGlvbkRhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LmdldFNlbGVjdGVk''@;'; put 'put ''UmFuZ2VMYXN0KCksST1DLmdldFRvcFN0YXJ0Q29ybmVyKCksWj1JLnJvdyx1ZT1JLmNvbCxfZT1DLmdldEJvdHRvbUVuZENvcm5lcigpLEtlPXRoaXMuaG90LnJ1bkhvb2tzKCJtb2RpZnlDb3B5YWJsZVJhbmdlIixbe3N0YXJ0Um93Olosc3RhcnRDb2w6dWUsZW5kUm93Ol9lLnJvdyxlbmRD''@;'; put 'put ''b2w6X2UuY29sfV0pLHB0PVtdLE90PVtdLCR0PVtdO3JldHVybiBVcihLZSxmdW5jdGlvbihmbil7Zm9yKHZhciBMbj1mbi5zdGFydFJvdztMbjw9Zm4uZW5kUm93O0xuKz0xKS0xPT09cHQuaW5kZXhPZihMbikmJnB0LnB1c2goTG4pO2Zvcih2YXIgaXI9Zm4uc3RhcnRDb2w7aXI8PWZuLmVu''@;'; put 'put ''ZENvbDtpcis9MSktMT09PU90LmluZGV4T2YoaXIpJiZPdC5wdXNoKGlyKX0pLFVyKHB0LGZ1bmN0aW9uKGZuKXt2YXIgTG49W107VXIoT3QsZnVuY3Rpb24oaXIpe0xuLnB1c2goeS5ob3QuZ2V0Q29weWFibGVEYXRhKGZuLGlyKSl9KSwkdC5wdXNoKExuKX0pLCR0fX0se2tleToiZmlsbElu''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYodGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuaXNFbXB0eSgpKXJldHVybiExO3ZhciBJPWZ1bmN0aW9uIGJydChkLGcpe3JldHVybiBmdW5jdGlvbiBrcnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4g''@;'; put 'put ''ZH0oZCl8fGZ1bmN0aW9uIENydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEo''@;'; put 'put ''eT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8''@;'; put 'put ''fElNZShkLGcpfHxmdW5jdGlvbiBfcnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wu''@;'; put 'put ''aXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5nZXRWaXN1YWxDb3JuZXJzKCksNCksWj1JWzBdLHVlPUlbMV0sX2U9SVsyXSxCZT1JWzNdLE5lPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksS2U9TmUuZ2V0VG9w''@;'; put 'put ''U3RhcnRDb3JuZXIoKSxwdD1OZS5nZXRCb3R0b21FbmRDb3JuZXIoKTt0aGlzLnJlc2V0U2VsZWN0aW9uT2ZEcmFnZ2VkQXJlYSgpO3ZhciBPdD1bS2Uucm93LEtlLmNvbCxwdC5yb3cscHQuY29sXSwkdD10aGlzLmhvdC5ydW5Ib29rcygibW9kaWZ5QXV0b2ZpbGxSYW5nZSIsW01hdGgubWlu''@;'; put 'put ''KEtlLnJvdyxaKSxNYXRoLm1pbihLZS5jb2wsdWUpLE1hdGgubWF4KHB0LnJvdyxfZSksTWF0aC5tYXgocHQuY29sLEJlKV0sT3QpLGZuPWZ1bmN0aW9uIGdydChkLGcsaCl7dmFyIHYseSxDO3JldHVybiBnWzBdPT09ZFswXSYmZ1sxXTxkWzFdPyhDPSJsZWZ0Iix2PWgoZ1swXSxnWzFdKSx5''@;'; put 'put ''PWgoZ1syXSxkWzFdLTEpKTpnWzJdPT09ZFsyXSYmZ1swXT09PWRbMF0mJmdbM10+ZFszXT8oQz0icmlnaHQiLHY9aChnWzBdLGRbM10rMSkseT1oKGdbMl0sZ1szXSkpOmdbMF08ZFswXSYmZ1sxXT09PWRbMV0/KEM9InVwIix2PWgoZ1swXSxnWzFdKSx5PWgoZFswXS0xLGdbM10pKTpnWzJd''@;'; put 'put ''PmRbMl0mJmdbMV09PT1kWzFdJiYoQz0iZG93biIsdj1oKGRbMl0rMSxnWzFdKSx5PWgoZ1syXSxnWzNdKSksdiYmdi5ub3JtYWxpemUoKSx5JiZ5Lm5vcm1hbGl6ZSgpLHtkaXJlY3Rpb25PZkRyYWc6QyxzdGFydE9mRHJhZ0Nvb3Jkczp2LGVuZE9mRHJhZ0Nvb3Jkczp5fX0oT3QsJHQsZnVu''@;'; put 'put ''Y3Rpb24oZm8sSWEpe3JldHVybiB5LmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhmbyxJYSl9KSxMbj1mbi5kaXJlY3Rpb25PZkRyYWcsaXI9Zm4uc3RhcnRPZkRyYWdDb29yZHMsbXI9Zm4uZW5kT2ZEcmFnQ29vcmRzO2lmKGlyJiZpci5yb3c+LTEmJmlyLmNvbD4tMSl7dmFyIFNyPXRoaXMuZ2V0''@;'; put 'put ''U2VsZWN0aW9uRGF0YSgpLHdyPU5lLmNsb25lKCksUXI9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZShpcixpcixtcikseWk9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUF1dG9maWxsIixTcix3cixRcixMbik7aWYoITE9PT15aSlyZXR1cm4gdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdo''@;'; put 'put ''dC5nZXRGaWxsKCkuY2xlYXIoKSx0aGlzLmhvdC5yZW5kZXIoKSwhMTt2YXIgS2k9ZnVuY3Rpb24gcHJ0KGQsZyxoLHYpe3ZhciB5PWgubGVuZ3RoLEM9aD9oWzBdLmxlbmd0aDowLEk9W10sWj1nLnJvdy1kLnJvdyx1ZT1nLmNvbC1kLmNvbDtpZigtMSE9PVsiZG93biIsInVwIl0uaW5kZXhP''@;'; put 'put ''Zih2KSl7Zm9yKHZhciBfZT1bXSxCZT0wO0JlPHVlO0JlKyspe3ZhciBOZT1wYXJzZUludChoWzBdW0JlXSwxMCksS2U9cGFyc2VJbnQoaFt5LTFdW0JlXSwxMCk7X2UucHVzaCgoImRvd24iPT09dj9LZS1OZTpOZS1LZSkvKHktMSl8fDApfUkucHVzaChfZSl9aWYoLTEhPT1bInJpZ2h0Iiwi''@;'; put 'put ''bGVmdCJdLmluZGV4T2YodikpZm9yKHZhciBPdD0wO090PFo7T3QrKyl7dmFyICR0PXBhcnNlSW50KGhbT3RdWzBdLDEwKSxmbj1wYXJzZUludChoW090XVtDLTFdLDEwKTtJLnB1c2goWygicmlnaHQiPT09dj9mbi0kdDokdC1mbikvKEMtMSl8fDBdKX1yZXR1cm4gSX0oaXIsbXIsU3IsTG4p''@;'; put 'put ''LFNvPXlpLFBvPXlpO2lmKFsidXAiLCJsZWZ0Il0uaW5kZXhPZihMbik+LTEmJigxIT09UG8ubGVuZ3RofHwwIT09UG9bMF0ubGVuZ3RoKSlpZihTbz1bXSwidXAiPT09TG4pZm9yKHZhciBTYT1tci5yb3ctaXIucm93KzEsSmE9U2ElUG8ubGVuZ3RoLGxhPTA7bGE8U2E7bGErKylTby5wdXNo''@;'; put 'put ''KFBvWyhsYSsoUG8ubGVuZ3RoLUphKSklUG8ubGVuZ3RoXSk7ZWxzZSBmb3IodmFyIGFsPW1yLmNvbC1pci5jb2wrMSxScz1hbCVQb1swXS5sZW5ndGgsSDA9MDtIMDxQby5sZW5ndGg7SDArKyl7U28ucHVzaChbXSk7Zm9yKHZhciBybz0wO3JvPGFsO3JvKyspU29bSDBdLnB1c2goUG9bSDBd''@;'; put 'put ''WyhybysoUG9bSDBdLmxlbmd0aC1ScykpJVBvW0gwXS5sZW5ndGhdKX10aGlzLmhvdC5wb3B1bGF0ZUZyb21BcnJheShpci5yb3csaXIuY29sLFNvLG1yLnJvdyxtci5jb2wsIiIuY29uY2F0KHRoaXMucGx1Z2luTmFtZSwiLmZpbGwiKSxudWxsLExuLEtpKSx0aGlzLnNldFNlbGVjdGlvbigk''@;'; put 'put ''dCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQXV0b2ZpbGwiLFNvLHdyLFFyLExuKSx0aGlzLmhvdC5yZW5kZXIoKX1lbHNlIHRoaXMuaG90Ll9yZWZyZXNoQm9yZGVycygpO3JldHVybiEwfX0se2tleToicmVkdWNlU2VsZWN0aW9uQXJlYUlmTmVlZGVkIix2YWx1ZTpmdW5jdGlvbih5KXty''@;'; put 'put ''ZXR1cm4geS5yb3c8MCYmKHkucm93PTApLHkuY29sPDAmJih5LmNvbD0wKSx5fX0se2tleToiZ2V0Q29vcmRzT2ZEcmFnQW5kRHJvcEJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksST1DLmdldEJvdHRvbUVuZENvcm5lcigp''@;'; put 'put ''LFo9eTtpZih0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoV1MudmVydGljYWwpJiZ0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoV1MuaG9yaXpvbnRhbCkpe3ZhciB1ZT1DLmdldFRvcFN0YXJ0Q29ybmVyKCk7KEkuY29sPD15LmNvbHx8dWUuY29sPj15LmNvbCkmJihaPXRoaXMuaG90Ll9jcmVh''@;'; put 'put ''dGVDZWxsQ29vcmRzKEkucm93LHkuY29sKSksKEkucm93PHkucm93fHx1ZS5yb3c+eS5yb3cpJiYoWj10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyxJLmNvbCkpfWVsc2UgaWYodGhpcy5kaXJlY3Rpb25zLmluY2x1ZGVzKFdTLnZlcnRpY2FsKSlaPXRoaXMuaG90Ll9jcmVhdGVD''@;'; put 'put ''ZWxsQ29vcmRzKHkucm93LEkuY29sKTtlbHNle2lmKCF0aGlzLmRpcmVjdGlvbnMuaW5jbHVkZXMoV1MuaG9yaXpvbnRhbCkpcmV0dXJuO1o9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5yb3cseS5jb2wpfXJldHVybiB0aGlzLnJlZHVjZVNlbGVjdGlvbkFyZWFJZk5lZWRlZChaKX19''@;'; put 'put ''LHtrZXk6InNob3dCb3JkZXIiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZ2V0Q29vcmRzT2ZEcmFnQW5kRHJvcEJvcmRlcnMoeSk7QyYmdGhpcy5yZWRyYXdCb3JkZXJzKEMpfX0se2tleToiYWRkUm93Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ob3QuX3JlZ2lz''@;'; put 'put ''dGVyVGltZW91dChmdW5jdGlvbigpe3kuaG90LmFsdGVyKCJpbnNlcnRfcm93Iix2b2lkIDAsMSwiIi5jb25jYXQoeS5wbHVnaW5OYW1lLCIuZmlsbCIpKSx5LmFkZGluZ1N0YXJ0ZWQ9ITF9LDIwMCl9fSx7a2V5OiJhZGROZXdSb3dJZk5lZWRlZCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhp''@;'; put 'put ''cy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuaXNFbXB0eSgpJiYhMT09PXRoaXMuYWRkaW5nU3RhcnRlZCYmdGhpcy5hdXRvSW5zZXJ0Um93KXt2YXIgeT10aGlzLmhvdC5nZXRTZWxlY3RlZExhc3QoKSxDPXRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgp''@;'; put 'put ''LmdldFZpc3VhbENvcm5lcnMoKSxJPXRoaXMuaG90LmNvdW50Um93cygpO3lbMl08SS0xJiZDWzJdPT09SS0xJiYodGhpcy5hZGRpbmdTdGFydGVkPSEwLHRoaXMuYWRkUm93KCkpfX19LHtrZXk6ImdldEluZGV4T2ZMYXN0QWRqYWNlbnRGaWxsZWRJblJvdyIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; put 'put ''Zm9yKHZhciBaLEM9dGhpcy5ob3QuZ2V0RGF0YSgpLEk9dGhpcy5ob3QuY291bnRSb3dzKCksdWU9eVsyXSsxO3VlPEk7dWUrKyl7Zm9yKHZhciBfZT15WzFdO19lPD15WzNdO19lKyspaWYoQ1t1ZV1bX2VdKXJldHVybi0xOyhDW3VlXVt5WzFdLTFdfHxDW3VlXVt5WzNdKzFdKSYmKFo9dWUp''@;'; put 'put ''fXJldHVybiBafX0se2tleToiYWRkU2VsZWN0aW9uRnJvbVN0YXJ0QXJlYVRvU3BlY2lmaWNSb3dJbmRleCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmdldEZpbGwoKS5jbGVhcigpLmFkZCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5WzBd''@;'; put 'put ''LHlbMV0pKS5hZGQodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQyx5WzNdKSkuY29tbWl0KCl9fSx7a2V5OiJzZXRTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDOyhDPXRoaXMuaG90KS5zZWxlY3RDZWxsLmFwcGx5KEMsZnVuY3Rpb24gdnJ0KGQpe3JldHVybiBmdW5jdGlv''@;'; put 'put ''biB3cnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gWDZlKGQpfShkKXx8ZnVuY3Rpb24geXJ0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0o''@;'; put 'put ''ZCl8fElNZShkKXx8ZnVuY3Rpb24gQXJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVy''@;'; put 'put ''YXRvcl0oKSBtZXRob2QuIil9KCl9KE9sKHksZnVuY3Rpb24oSSl7cmV0dXJuIE1hdGgubWF4KEksMCl9KSkuY29uY2F0KFshMSwhMV0pKX19LHtrZXk6InNlbGVjdEFkamFjZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkTGFzdCgpLEM9dGhpcy5nZXRJ''@;'; put 'put ''bmRleE9mTGFzdEFkamFjZW50RmlsbGVkSW5Sb3coeSk7cmV0dXJuLTEhPT1DJiZ2b2lkIDAhPT1DJiYodGhpcy5hZGRTZWxlY3Rpb25Gcm9tU3RhcnRBcmVhVG9TcGVjaWZpY1Jvd0luZGV4KHksQyksITApfX0se2tleToicmVzZXRTZWxlY3Rpb25PZkRyYWdnZWRBcmVhIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbigpe3RoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPTAsdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5nZXRGaWxsKCkuY2xlYXIoKX19LHtrZXk6InJlZHJhd0JvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuZ2V0RmlsbCgpLmNsZWFy''@;'; put 'put ''KCkuYWRkKHRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkuZnJvbSkuYWRkKHRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkudG8pLmFkZCh5KS5jb21taXQoKSx0aGlzLmhvdC52aWV3LnJlbmRlcigpfX0se2tleToiZ2V0SWZNb3VzZVdhc0RyYWdnZWRPdXRzaWRlIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEk9anUodGhpcy5ob3QudGFibGUpLnRvcC0odGhpcy5ob3Qucm9vdFdpbmRvdy5wYWdlWU9mZnNldHx8Qy5zY3JvbGxUb3ApK0QxKHRoaXMuaG90LnRhYmxlKSxaPWp1KHRoaXMuaG90LnRh''@;'; put 'put ''YmxlKS5sZWZ0LSh0aGlzLmhvdC5yb290V2luZG93LnBhZ2VYT2Zmc2V0fHxDLnNjcm9sbExlZnQpK0UyKHRoaXMuaG90LnRhYmxlKTtyZXR1cm4geS5jbGllbnRZPkkmJnkuY2xpZW50WDw9Wn19LHtrZXk6InJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10''@;'; put 'put ''aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vdXNlVXAoKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vtb3Zl''@;'; put 'put ''IixmdW5jdGlvbihJKXtyZXR1cm4geS5vbk1vdXNlTW92ZShJKX0pfX0se2tleToib25DZWxsQ29ybmVyRGJsQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RBZGphY2VudCgpJiZ0aGlzLmZpbGxJbigpfX0se2tleToib25BZnRlckNlbGxDb3JuZXJNb3VzZURvd24iLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHM9MSx0aGlzLm1vdXNlRG93bk9uQ2VsbENvcm5lcj0hMH19LHtrZXk6Im9uQmVmb3JlQ2VsbE1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5tb3VzZURvd25PbkNlbGxDb3JuZXImJiF0aGlzLmhvdC52aWV3LmlzTW91''@;'; put 'put ''c2VEb3duKCkmJnRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzJiYodGhpcy5oYW5kbGVEcmFnZ2VkQ2VsbHMrPTEsdGhpcy5zaG93Qm9yZGVyKHkpLHRoaXMuYWRkTmV3Um93SWZOZWVkZWQoKSl9fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVEcmFnZ2VkQ2Vs''@;'; put 'put ''bHMmJih0aGlzLmhhbmRsZURyYWdnZWRDZWxscz4xJiZ0aGlzLmZpbGxJbigpLHRoaXMuaGFuZGxlRHJhZ2dlZENlbGxzPTAsdGhpcy5tb3VzZURvd25PbkNlbGxDb3JuZXI9ITEpfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZ2V0SWZNb3VzZVdh''@;'; put 'put ''c0RyYWdnZWRPdXRzaWRlKHkpOyExPT09dGhpcy5hZGRpbmdTdGFydGVkJiZ0aGlzLmhhbmRsZURyYWdnZWRDZWxscz4wJiZDPyh0aGlzLm1vdXNlRHJhZ091dHNpZGU9ITAsdGhpcy5hZGRpbmdTdGFydGVkPSEwKTp0aGlzLm1vdXNlRHJhZ091dHNpZGU9ITEsdGhpcy5tb3VzZURyYWdPdXRz''@;'; put 'put ''aWRlJiZ0aGlzLmF1dG9JbnNlcnRSb3cmJnRoaXMuYWRkUm93KCl9fSx7a2V5OiJjbGVhck1hcHBlZFNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlyZWN0aW9ucy5sZW5ndGg9MCx0aGlzLmF1dG9JbnNlcnRSb3c9ITF9fSx7a2V5OiJtYXBTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oKXt2YXIgeT1mdW5jdGlvbiBtcnQoZCl7dmFyIGc9e307cmV0dXJuITA9PT1kPyhnLmRpcmVjdGlvbnM9T2JqZWN0LmtleXMoV1MpLGcuYXV0b0luc2VydFJvdz0hMCk6eGwoZCk/KGcuYXV0b0luc2VydFJvdz0hIVRvKGQuYXV0b0luc2VydFJvdykmJmQuZGlyZWN0aW9uIT09V1MuaG9y''@;'; put 'put ''aXpvbnRhbCYmZC5hdXRvSW5zZXJ0Um93LGcuZGlyZWN0aW9ucz1UbyhkLmRpcmVjdGlvbik/W2QuZGlyZWN0aW9uXTpPYmplY3Qua2V5cyhXUykpOiJzdHJpbmciPT10eXBlb2YgZD8oZy5kaXJlY3Rpb25zPVtkXSxnLmF1dG9JbnNlcnRSb3c9ITApOihnLmRpcmVjdGlvbnM9W10sZy5hdXRv''@;'; put 'put ''SW5zZXJ0Um93PSExKSxnfSh0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZpbGxIYW5kbGUpO3RoaXMuZGlyZWN0aW9ucz15LmRpcmVjdGlvbnMsdGhpcy5hdXRvSW5zZXJ0Um93PXkuYXV0b0luc2VydFJvd319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7WVMoT3YoaC5wcm90b3R5''@;'; put 'put ''cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT01lfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjB9fSx7a2V5OiJTRVRUSU5HX0tFWVMiLGdldDpmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybltPTWVdLmNvbmNhdChPcnQpfX1dKSxofShZcyk7ZnVuY3Rpb24gJDZlKGQpe3JldHVybigkNmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXty''@;'; put 'put ''ZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBGcnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24ganJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkp''@;'; put 'put ''cmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBWcnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2Fs''@;'; put 'put ''bChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9''@;'; put 'put ''fShkLGcpfHxmdW5jdGlvbiBOcnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFJNZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3Ry''@;'; put 'put ''dWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gUk1lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBIcnQoKXt0''@;'; put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1''@;'; put 'put ''bmN0aW9uIFJNZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEJNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3Yu''@;'; put 'put ''ZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIE9PKCl7cmV0dXJuIE9PPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVm''@;'; put 'put ''bGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1HcnQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19''@;'; put 'put ''LE9PLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBHcnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVB3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIHE2ZShkLGcpe3JldHVybihxNmU9T2JqZWN0LnNldFByb3Rv''@;'; put 'put ''dHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBVcnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT0kNmUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAh''@;'; put 'put ''PT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFFydChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBp''@;'; put 'put ''bml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFB3KGQpe3JldHVybihQdz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9i''@;'; put 'put ''amVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciB4dGU9ImF1dG9Sb3dTaXplIiwkcnQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIFdydChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0''@;'; put 'put ''aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFi''@;'; put 'put ''bGU6ITF9KSxnJiZxNmUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBZcnQoZCl7dmFyIGc9ZnVuY3Rpb24gSnJ0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9u''@;'; put 'put ''Ij09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UHco''@;'; put 'put ''ZCk7aWYoZyl7dmFyIEM9UHcodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIFVydCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gWnJ0''@;'; put 'put ''KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLnJvd0hlaWdodHNNYXA9dm9pZCAwLHkuaGVhZGVySGVpZ2h0PW51bGwseS5naG9zdFRhYmxl''@;'; put 'put ''PW5ldyBXNmUoeS5ob3QpLHkuc2FtcGxlc0dlbmVyYXRvcj1uZXcgU01lKGZ1bmN0aW9uKEMsSSl7dmFyIFo7cmV0dXJuIEM+PTA/Wj15LmhvdC5nZXREYXRhQXRDZWxsKEMsSSk6LTE9PT1DJiYoWj15LmhvdC5nZXRDb2xIZWFkZXIoSSkpLHt2YWx1ZTpafX0pLHkuZmlyc3RDYWxjdWxhdGlv''@;'; put 'put ''bj0hMCx5LmluUHJvZ3Jlc3M9ITEseS5tZWFzdXJlZFJvd3M9MCx5LnJvd0hlaWdodHNNYXA9bmV3IER3LHkuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJhdXRvUm93U2l6ZSIseS5yb3dIZWlnaHRzTWFwKSx5LmFkZEhvb2soImJlZm9yZVJvd1Jlc2l6ZSIsZnVuY3Rpb24oQyxJ''@;'; put 'put ''LFope3JldHVybiB5Lm9uQmVmb3JlUm93UmVzaXplKEMsSSxaKX0pLHl9cmV0dXJuIGZ1bmN0aW9uIHpydChkLGcsaCl7ZyYmQk1lKGQucHJvdG90eXBlLGcpLGgmJkJNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJp''@;'; put 'put ''c0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt4dGVdO3JldHVybiEwPT09eXx8eGwoeSl9fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnNldFNhbXBsaW5nT3B0''@;'; put 'put ''aW9ucygpLHRoaXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTG9hZERhdGEuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVDaGFuZ2VSZW5kZXIiLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uQmVmb3JlQ2hhbmdlKEMp''@;'; put 'put ''fSksdGhpcy5hZGRIb29rKCJiZWZvcmVDb2x1bW5SZXNpemUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkucmVjYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVZpZXdSZW5kZXIiLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uQmVmb3JlVmlld1JlbmRlcihDKX0pLHRo''@;'; put 'put ''aXMuYWRkSG9vaygibW9kaWZ5Um93SGVpZ2h0IixmdW5jdGlvbihDLEkpe3JldHVybiB5LmdldFJvd0hlaWdodChJLEMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2x1bW5IZWFkZXJIZWlnaHQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuZ2V0Q29sdW1uSGVhZGVySGVpZ2h0KCl9KSxPTyhQdyho''@;'; put 'put ''LnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5oZWFkZXJIZWlnaHQ9bnVsbCxPTyhQdyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwo''@;'; put 'put ''dGhpcyksdGhpcy5hZGRIb29rKCJiZWZvcmVSb3dSZXNpemUiLGZ1bmN0aW9uKEMsSSxaKXtyZXR1cm4geS5vbkJlZm9yZVJvd1Jlc2l6ZShDLEksWil9KX19LHtrZXk6ImNhbGN1bGF0ZVJvd3NIZWlnaHQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWFyZ3VtZW50cy5sZW5ndGg+''@;'; put 'put ''MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7ZnJvbTowLHRvOnRoaXMuaG90LmNvdW50Um93cygpLTF9LEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOntmcm9tOjAsdG86dGhpcy5ob3QuY291bnRDb2xzKCktMX0s''@;'; put 'put ''Wj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHVlPSJudW1iZXIiPT10eXBlb2YgQz97ZnJvbTpDLHRvOkN9OkMsX2U9Im51bWJlciI9PXR5cGVvZiBJP3tmcm9tOkksdG86SX06STtpZihudWxsIT09dGhpcy5ob3QuZ2V0Q29sSGVhZGVy''@;'; put 'put ''KDApKXt2YXIgQmU9dGhpcy5zYW1wbGVzR2VuZXJhdG9yLmdlbmVyYXRlUm93U2FtcGxlcygtMSxfZSk7dGhpcy5naG9zdFRhYmxlLmFkZENvbHVtbkhlYWRlcnNSb3coQmUuZ2V0KC0xKSl9aWEodWUuZnJvbSx1ZS50byxmdW5jdGlvbihOZSl7KFp8fG51bGw9PT15LnJvd0hlaWdodHNNYXAu''@;'; put 'put ''Z2V0VmFsdWVBdEluZGV4KE5lKSkmJlVyKHkuc2FtcGxlc0dlbmVyYXRvci5nZW5lcmF0ZVJvd1NhbXBsZXMoTmUsX2UpLGZ1bmN0aW9uKHB0KXt2YXIgT3Q9RnJ0KHB0LDIpO3JldHVybiB5Lmdob3N0VGFibGUuYWRkUm93KE90WzBdLE90WzFdKX0pfSksdGhpcy5naG9zdFRhYmxlLnJvd3Mu''@;'; put 'put ''bGVuZ3RoJiYodGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXt5Lmdob3N0VGFibGUuZ2V0SGVpZ2h0cyhmdW5jdGlvbihOZSxLZSl7TmU8MD95LmhlYWRlckhlaWdodD1LZTp5LnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KHkuaG90LnRvUGh5c2ljYWxSb3coTmUpLEtl''@;'; put 'put ''KX0pfSwhMCksdGhpcy5tZWFzdXJlZFJvd3M9dWUudG8rMSx0aGlzLmdob3N0VGFibGUuY2xlYW4oKSl9fSx7a2V5OiJjYWxjdWxhdGVBbGxSb3dzSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9h''@;'; put 'put ''cmd1bWVudHNbMF06e2Zyb206MCx0bzp0aGlzLmhvdC5jb3VudENvbHMoKS0xfSxJPTAsWj10aGlzLmhvdC5jb3VudFJvd3MoKS0xLHVlPW51bGw7dGhpcy5pblByb2dyZXNzPSEwO3ZhciBfZT1mdW5jdGlvbiBOZSgpe2lmKCF5LmhvdClyZXR1cm4gVFoodWUpLHZvaWQoeS5pblByb2dyZXNz''@;'; put 'put ''PSExKTt5LmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206SSx0bzpNYXRoLm1pbihJK2guQ0FMQ1VMQVRJT05fU1RFUCxaKX0sQyksKEk9SStoLkNBTENVTEFUSU9OX1NURVArMSk8Wj91ZT1HaGUoTmUpOihUWih1ZSkseS5pblByb2dyZXNzPSExLHkuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNT''@;'; put 'put ''aXplKCEwKSx5LmhvdC52aWV3Ll93dC53dE92ZXJsYXlzLmlubGluZVN0YXJ0T3ZlcmxheS5uZWVkRnVsbFJlbmRlciYmeS5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuY2xvbmUuZHJhdygpKX0sQmU9dGhpcy5nZXRTeW5jQ2FsY3VsYXRpb25MaW1pdCgpO3Ro''@;'; put 'put ''aXMuZmlyc3RDYWxjdWxhdGlvbiYmQmU+PTAmJih0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206MCx0bzpCZX0sQyksdGhpcy5maXJzdENhbGN1bGF0aW9uPSExLEk9QmUrMSksSTxaP19lKCk6KHRoaXMuaW5Qcm9ncmVzcz0hMSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6''@;'; put 'put ''ZSghMSkpfX0se2tleToic2V0U2FtcGxpbmdPcHRpb25zIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNldHRpbmdzKClbeHRlXSxDPXkmJm8xKHksInNhbXBsaW5nUmF0aW8iKT95LnNhbXBsaW5nUmF0aW86dm9pZCAwLEk9eSYmbzEoeSwiYWxsb3dTYW1wbGVEdXBsaWNh''@;'; put 'put ''dGVzIik/eS5hbGxvd1NhbXBsZUR1cGxpY2F0ZXM6dm9pZCAwO0MmJiFpc05hTihDKSYmdGhpcy5zYW1wbGVzR2VuZXJhdG9yLnNldFNhbXBsZUNvdW50KHBhcnNlSW50KEMsMTApKSxJJiZ0aGlzLnNhbXBsZXNHZW5lcmF0b3Iuc2V0QWxsb3dEdXBsaWNhdGVzKEkpfX0se2tleToicmVjYWxj''@;'; put 'put ''dWxhdGVBbGxSb3dzSGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe2NPKHRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUuVEFCTEUpJiYodGhpcy5jbGVhckNhY2hlKCksdGhpcy5jYWxjdWxhdGVBbGxSb3dzSGVpZ2h0KCkpfX0se2tleToiZ2V0U3luY0NhbGN1bGF0aW9uTGltaXQiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt4dGVdLEM9aC5TWU5DX0NBTENVTEFUSU9OX0xJTUlULEk9dGhpcy5ob3QuY291bnRSb3dzKCktMTtyZXR1cm4geGwoeSkmJihvM2UoQz15LnN5bmNMaW1pdCk/Qz1QM2UoSSxDKTpDPj49MCksTWF0aC5taW4oQyxJKX19LHtr''@;'; put 'put ''ZXk6ImdldFJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnZvaWQgMCxJPXk8MD90aGlzLmhlYWRlckhlaWdodDp0aGlzLnJvd0hlaWdodHNNYXAuZ2V0VmFsdWVBdEluZGV4KHRo''@;'; put 'put ''aXMuaG90LnRvUGh5c2ljYWxSb3coeSkpLFo9QztyZXR1cm4gbnVsbCE9PUkmJkk+KEN8fDApJiYoWj1JKSxafX0se2tleToiZ2V0Q29sdW1uSGVhZGVySGVpZ2h0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlYWRlckhlaWdodH19LHtrZXk6ImdldEZpcnN0VmlzaWJsZVJvdyIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dDtyZXR1cm4geS53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvcj95Lnd0VGFibGUuZ2V0Rmlyc3RWaXNpYmxlUm93KCk6eS53dFZpZXdwb3J0LnJvd3NSZW5kZXJDYWxjdWxhdG9yP3kud3RUYWJsZS5nZXRGaXJz''@;'; put 'put ''dFJlbmRlcmVkUm93KCk6LTF9fSx7a2V5OiJnZXRMYXN0VmlzaWJsZVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dDtyZXR1cm4geS53dFZpZXdwb3J0LnJvd3NWaXNpYmxlQ2FsY3VsYXRvcj95Lnd0VGFibGUuZ2V0TGFzdFZpc2libGVSb3coKTp5Lnd0Vmll''@;'; put 'put ''d3BvcnQucm93c1JlbmRlckNhbGN1bGF0b3I/eS53dFRhYmxlLmdldExhc3RSZW5kZXJlZFJvdygpOi0xfX0se2tleToiY2xlYXJDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhlYWRlckhlaWdodD1udWxsLHRoaXMucm93SGVpZ2h0c01hcC5pbml0KCl9fSx7a2V5OiJjbGVhckNhY2hl''@;'; put 'put ''QnlSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPSJudW1iZXIiPT10eXBlb2YgeT97ZnJvbTp5LHRvOnl9OnksWj1JLmZyb20sdWU9SS50bzt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe2lhKE1hdGgubWluKFosdWUpLE1hdGgubWF4KFosdWUpLGZ1bmN0''@;'; put 'put ''aW9uKF9lKXtDLnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLG51bGwpfSl9LCEwKX19LHtrZXk6ImlzTmVlZFJlY2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhZzQodGhpcy5yb3dIZWlnaHRzTWFwLmdldFZhbHVlcygpLnNsaWNlKDAsdGhpcy5tZWFzdXJlZFJv''@;'; put 'put ''d3MpLGZ1bmN0aW9uKHkpe3JldHVybiBudWxsPT09eX0pLmxlbmd0aH19LHtrZXk6Im9uQmVmb3JlVmlld1JlbmRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5yZW5kZXJDYWxsLEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZFJvd3NCb3R0b20sST10aGlzLmdldEZp''@;'; put 'put ''cnN0VmlzaWJsZVJvdygpLFo9dGhpcy5nZXRMYXN0VmlzaWJsZVJvdygpO2lmKC0xIT09SSYmLTEhPT1aKXtpZih0aGlzLmNhbGN1bGF0ZVJvd3NIZWlnaHQoe2Zyb206SSx0bzpafSx2b2lkIDAseSksQyl7dmFyIHVlPXRoaXMuaG90LmNvdW50Um93cygpLTE7dGhpcy5jYWxjdWxhdGVSb3dz''@;'; put 'put ''SGVpZ2h0KHtmcm9tOnVlLUMsdG86dWV9KX10aGlzLmlzTmVlZFJlY2FsY3VsYXRlKCkmJiF0aGlzLmluUHJvZ3Jlc3MmJnRoaXMuY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpfX19LHtrZXk6Im9uQmVmb3JlUm93TW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmNsZWFyQ2FjaGVCeVJh''@;'; put 'put ''bmdlKHtmcm9tOnksdG86Q30pLHRoaXMuY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpfX0se2tleToib25CZWZvcmVSb3dSZXNpemUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj15O3JldHVybiBJJiYodGhpcy5jYWxjdWxhdGVSb3dzSGVpZ2h0KEMsdm9pZCAwLCEwKSxaPXRoaXMuZ2V0''@;'; put 'put ''Um93SGVpZ2h0KEMpKSxafX0se2tleToib25BZnRlckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ob3Qudmlldz90aGlzLnJlY2FsY3VsYXRlQWxsUm93c0hlaWdodCgpOnNldFRpbWVvdXQoZnVuY3Rpb24oKXt5LmhvdCYmeS5yZWNhbGN1bGF0ZUFsbFJvd3NI''@;'; put 'put ''ZWlnaHQoKX0sMCl9fSx7a2V5OiJvbkJlZm9yZUNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9bnVsbDsxPT09eS5sZW5ndGg/Qz15WzBdWzBdOnkubGVuZ3RoPjEmJihDPXtmcm9tOnlbMF1bMF0sdG86eVt5Lmxlbmd0aC0xXVswXX0pLG51bGwhPT1DJiZ0aGlzLmNsZWFyQ2FjaGVC''@;'; put 'put ''eVJhbmdlKEMpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmdob3N0VGFibGUuY2xlYW4oKSxPTyhQdyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiB4dGV9fSx7''@;'; put 'put ''a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiA0MH19LHtrZXk6IlNFVFRJTkdfS0VZUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJDQUxDVUxBVElPTl9TVEVQIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNTB9fSx7a2V5OiJTWU5DX0NBTENVTEFU''@;'; put 'put ''SU9OX0xJTUlUIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNTAwfX1dKSxofShZcyksUE1lPW5ldyBNYXAoW1siaW5kZXhlc1NlcXVlbmNlIix7Z2V0TGlzdFdpdGhJbnNlcnRlZEl0ZW1zOmE0ZSxnZXRMaXN0V2l0aFJlbW92ZWRJdGVtczp0en1dLFsicGh5c2ljYWxseUluZGV4ZWQiLHtnZXRM''@;'; put 'put ''aXN0V2l0aEluc2VydGVkSXRlbXM6JGRlLGdldExpc3RXaXRoUmVtb3ZlZEl0ZW1zOnFkZX1dXSksRk1lPWZ1bmN0aW9uKGcpe2lmKCExPT09UE1lLmhhcyhnKSl0aHJvdyBuZXcgRXJyb3IoIkFsdGVyIHN0cmF0ZWd5IHdpdGggSUQgJyIuY29uY2F0KGcsIicgZG9lcyBub3QgZXhpc3QuIikp''@;'; put 'put ''O3JldHVybiBQTWUuZ2V0KGcpfTtmdW5jdGlvbiBlOGUoZCl7cmV0dXJuKGU4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rp''@;'; put 'put ''b24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIEhNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1l''@;'; put 'put ''cmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGd6KCl7cmV0dXJuIGd6PSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5n''@;'; put 'put ''ZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT10aXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGd6LmFwcGx5KHRoaXMsYXJn''@;'; put 'put ''dW1lbnRzKX1mdW5jdGlvbiB0aXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVVTKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIHQ4ZShkLGcpe3JldHVybih0OGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQ''@;'; put 'put ''cm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBpaXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1lOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBl''@;'; put 'put ''RXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIG9pdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVy''@;'; put 'put ''KCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFVTKGQpe3JldHVybihVUz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVP''@;'; put 'put ''ZihoKX0pKGQpfXZhciBOTWU9Rk1lKCJwaHlzaWNhbGx5SW5kZXhlZCIpLGxpdD1OTWUuZ2V0TGlzdFdpdGhJbnNlcnRlZEl0ZW1zLHNpdD1OTWUuZ2V0TGlzdFdpdGhSZW1vdmVkSXRlbXMsdWl0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBuaXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2Yg''@;'; put 'put ''ZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25m''@;'; put 'put ''aWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmdDhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gcml0KGQpe3ZhciBnPWZ1bmN0aW9uIGFpdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxl''@;'; put 'put ''Y3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7''@;'; put 'put ''fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVVTKGQpO2lmKGcpe3ZhciBDPVVTKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVy''@;'; put 'put ''biBpaXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gZnVuY3Rpb24gcXJ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksZy5jYWxsKHRoaXMsZnVuY3Rpb24o''@;'; put 'put ''dil7cmV0dXJuIHZ9KX1yZXR1cm4gZnVuY3Rpb24gZWl0KGQsZyxoKXtnJiZITWUoZC5wcm90b3R5cGUsZyksaCYmSE1lKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6Imluc2VydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2''@;'; put 'put ''YXIgST1zNGUodGhpcy5pbmRleGVkVmFsdWVzLEMpO3RoaXMuaW5kZXhlZFZhbHVlcz1saXQoSSx5LEMsdGhpcy5pbml0VmFsdWVPckZuKSxneihVUyhoLnByb3RvdHlwZSksImluc2VydCIsdGhpcykuY2FsbCh0aGlzLHksQyl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3Zh''@;'; put 'put ''ciBDPXNpdCh0aGlzLmluZGV4ZWRWYWx1ZXMseSk7dGhpcy5pbmRleGVkVmFsdWVzPWw0ZShDLHkpLGd6KFVTKGgucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMseSl9fV0pLGh9KFBTKTtjb25zdCBjaXQ9dWl0O2Z1bmN0aW9uIG44ZShkKXtyZXR1cm4objhlPSJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wu''@;'; put 'put ''cHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gcjhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gVk1lKGQsZyl7Zm9yKHZh''@;'; put 'put ''ciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gbXooKXtyZXR1cm4g''@;'; put 'put ''bXo9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUFpdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2Fs''@;'; put 'put ''bChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sbXouYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEFpdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UVMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24g''@;'; put 'put ''aThlKGQsZyl7cmV0dXJuKGk4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGJpdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PW44ZShnKXx8ImZ1bmN0''@;'; put 'put ''aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gX2l0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3''@;'; put 'put ''IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gUVMoZCl7cmV0dXJuKFFTPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgp''@;'; put 'put ''OmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGpNZT1GTWUoInBoeXNpY2FsbHlJbmRleGVkIiksa2l0PWpNZS5nZXRMaXN0V2l0aEluc2VydGVkSXRlbXMsU2l0PWpNZS5nZXRMaXN0V2l0aFJlbW92ZWRJdGVtcyxNaXQ9''@;'; put 'put ''ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHlpdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUo''@;'; put 'put ''ZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZpOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB3aXQoZCl7dmFyIGc9''@;'; put 'put ''ZnVuY3Rpb24gQ2l0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUu''@;'; put 'put ''dmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UVMoZCk7aWYoZyl7dmFyIEM9UVModGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVj''@;'; put 'put ''dCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGJpdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCgpe3JldHVybiBmdW5jdGlvbiBtaXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBh''@;'; put 'put ''IGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxnLmNhbGwodGhpcyxmdW5jdGlvbih2KXtyZXR1cm4gdn0pfXJldHVybiBmdW5jdGlvbiB2aXQoZCxnLGgpe2cmJlZNZShkLnByb3RvdHlwZSxnKSxoJiZWTWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; put 'put ''d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaW5zZXJ0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXM7dGhpcy5pbmRleGVkVmFsdWVzPWtpdCh0aGlzLmluZGV4ZWRWYWx1ZXMseSxDLGZ1bmN0aW9uKFosdWUpe3JldHVybiBJLmdldE5leHRWYWx1ZSh1ZSl9KSxteihRUyhoLnByb3Rv''@;'; put 'put ''dHlwZSksImluc2VydCIsdGhpcykuY2FsbCh0aGlzLHksQyl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaW5kZXhlZFZhbHVlcz1TaXQodGhpcy5pbmRleGVkVmFsdWVzLHkpLG16KFFTKGgucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMseSl9fSx7''@;'; put 'put ''a2V5OiJnZXROZXh0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiBNYXRoLm1heC5hcHBseShNYXRoLGZ1bmN0aW9uIGZpdChkKXtyZXR1cm4gZnVuY3Rpb24gZ2l0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHI4ZShkKX0oZCl8fGZ1bmN0aW9uIHBpdChkKXtpZigidW5k''@;'; put 'put ''ZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBkaXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHI4ZShkLGcpO3ZhciBo''@;'; put 'put ''PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwv''@;'; put 'put ''Xig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gcjhlKGQsZyl9fShkKXx8ZnVuY3Rpb24gaGl0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRl''@;'; put 'put ''ciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KHRoaXMuZ2V0VmFsdWVzKCkpKSsxK3l9fV0pLGh9KFBTKTtmdW5jdGlvbiBvOGUoZCl7cmV0dXJuKG84ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3lt''@;'; put 'put ''Ym9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFpNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFJPKCl7cmV0dXJuIFJPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1JaXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJv''@;'; put 'put ''cGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFJPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBJaXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo''@;'; put 'put ''ZCxnKSYmbnVsbCE9PShkPUZ3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGE4ZShkLGcpe3JldHVybihhOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlv''@;'; put 'put ''biBPaXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1vOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0''@;'; put 'put ''dXJuIGZ1bmN0aW9uIFJpdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEZ3KGQpe3JldHVybihGdz1PYmplY3Qu''@;'; put 'put ''c2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBsOGU9ImJpbmRSb3dzV2l0aEhlYWRlcnMiLEhpdD1uZXcgTWFwKFtbImxvb3NlIixjaXRdLFsi''@;'; put 'put ''c3RyaWN0IixNaXRdXSksTml0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBEaXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3Rv''@;'; put 'put ''dHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmYThlKGQsZyl9KGgsZCk7dmFyIGc9ZnVu''@;'; put 'put ''Y3Rpb24gTGl0KGQpe3ZhciBnPWZ1bmN0aW9uIEJpdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJu''@;'; put 'put ''IEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUZ3KGQpO2lmKGcpe3ZhciBDPUZ3KHRoaXMpLmNvbnN0cnVjdG9y''@;'; put 'put ''O3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBPaXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIHhpdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5l''@;'; put 'put ''dyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5oZWFkZXJJbmRleGVzPW51bGwseX1yZXR1cm4gZnVuY3Rpb24gVGl0KGQsZyxoKXtnJiZaTWUoZC5wcm90b3R5cGUsZyksaCYmWk1lKGQsaCksT2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbbDhlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10''@;'; put 'put ''aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbbDhlXTsic3RyaW5nIiE9dHlwZW9mIEMmJihDPSJsb29zZSIpO3ZhciBJPUhpdC5nZXQoQyk7dGhpcy5oZWFkZXJJbmRleGVzPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJiaW5k''@;'; put 'put ''Um93c1dpdGhIZWFkZXJzIixuZXcgSSksdGhpcy5hZGRIb29rKCJtb2RpZnlSb3dIZWFkZXIiLGZ1bmN0aW9uKFope3JldHVybiB5Lm9uTW9kaWZ5Um93SGVhZGVyKFopfSksUk8oRncoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToiZGlzYWJs''@;'; put 'put ''ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKCJiaW5kUm93c1dpdGhIZWFkZXJzIiksUk8oRncoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToib25Nb2RpZnlSb3dIZWFkZXIi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlzLmhlYWRlckluZGV4ZXMuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxSb3coeSkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtSTyhGdyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhp''@;'; put 'put ''cyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBsOGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyMTB9fV0pLGh9KFlzKTtmdW5jdGlvbiBzOGUoZCl7cmV0dXJuKHM4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9s''@;'; put 'put ''JiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9s''@;'; put 'put ''Ijp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHpNZShkKXtyZXR1cm4gZnVuY3Rpb24geml0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIHU4ZShkKX0oZCl8fGZ1bmN0aW9uIFppdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3Jd''@;'; put 'put ''fHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBqaXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHU4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtp''@;'; put 'put ''ZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdCho''@;'; put 'put ''KSlyZXR1cm4gdThlKGQsZyl9fShkKXx8ZnVuY3Rpb24gVml0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEg''@;'; put 'put ''W1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gdThlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gR2l0KGQsZyl7aWYoIShk''@;'; put 'put ''IGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gR01lKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25m''@;'; put 'put ''aWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gSlMoKXtyZXR1cm4gSlM9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rp''@;'; put 'put ''b24oZyxoLHYpe3ZhciB5PVlpdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sSlMuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9u''@;'; put 'put ''IFlpdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UnYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gYzhlKGQsZyl7cmV0dXJuKGM4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQo''@;'; put 'put ''KTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEppdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXM4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBj''@;'; put 'put ''b25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gQk8oZCl9ZnVuY3Rpb24gQk8oZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBi''@;'; put 'put ''ZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFJ2KGQpe3JldHVybihSdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0''@;'; put 'put ''aW9uIEtpdChkLGcsaCl7KGZ1bmN0aW9uICRpdChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gZjhlKGQs''@;'; put 'put ''ZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBXTWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gcWl0KGQsZyl7cmV0dXJuIGcuZ2V0P2cu''@;'; put 'put ''Z2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxZTWUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gaDhlKGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gZTB0KGQsZyxoKXtpZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8g''@;'; put 'put ''c2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7Zy52YWx1ZT1ofX0oZCxZTWUoZCxnLCJzZXQiKSxoKSxofWZ1bmN0aW9uIFlNZShkLGcsaCl7aWYoIWcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2grIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5j''@;'; put 'put ''ZSIpO3JldHVybiBnLmdldChkKX12YXIgZDhlPSJjb2xsYXBzaWJsZUNvbHVtbnMiLG4wdD1bIm5lc3RlZEhlYWRlcnMiXSxVTWU9bmV3IE1hcChbWyJjb2xsYXBzZSIse2hpZGVDb2x1bW46ITAsYmVmb3JlSG9vazoiYmVmb3JlQ29sdW1uQ29sbGFwc2UiLGFmdGVySG9vazoiYWZ0ZXJDb2x1''@;'; put 'put ''bW5Db2xsYXBzZSJ9XSxbImV4cGFuZCIse2hpZGVDb2x1bW46ITEsYmVmb3JlSG9vazoiYmVmb3JlQ29sdW1uRXhwYW5kIixhZnRlckhvb2s6ImFmdGVyQ29sdW1uRXhwYW5kIn1dXSksUE89bmV3IFdlYWtNYXAscjB0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBVaXQoZCxnKXtpZigiZnVuY3Rp''@;'; put 'put ''b24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0''@;'; put 'put ''YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmYzhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gUWl0KGQpe3ZhciBnPWZ1bmN0aW9uIFhpdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVm''@;'; put 'put ''bGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtd''@;'; put 'put ''LGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVJ2KGQpO2lmKGcpe3ZhciBDPVJ2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1''@;'; put 'put ''bWVudHMpO3JldHVybiBKaXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtHaXQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gZjhlKEJPKHY9Zy5jYWxsLmFwcGx5KGcs''@;'; put 'put ''W3RoaXNdLmNvbmNhdChDKSkpLCJuZXN0ZWRIZWFkZXJzUGx1Z2luIixudWxsKSxmOGUoQk8odiksImV2ZW50TWFuYWdlciIsbmV3IEwxKEJPKHYpKSksZjhlKEJPKHYpLCJoZWFkZXJTdGF0ZU1hbmFnZXIiLG51bGwpLEtpdChCTyh2KSxQTyx7d3JpdGFibGU6ITAsdmFsdWU6bnVsbH0pLHZ9''@;'; put 'put ''cmV0dXJuIGZ1bmN0aW9uIFdpdChkLGcsaCl7ZyYmR01lKGQucHJvdG90eXBlLGcpLGgmJkdNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhv''@;'; put 'put ''dC5nZXRTZXR0aW5ncygpW2Q4ZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmhvdC5nZXRTZXR0aW5ncygpLm5lc3RlZEhlYWRlcnN8fGwxKCJZb3UgbmVlZCB0byBjb25maWd1cmUgdGhlIE5lc3RlZCBIZWFk''@;'; put 'put ''ZXJzIHBsdWdpbiBpbiBvcmRlciB0byB1c2UgY29sbGFwc2libGUgaGVhZGVycy4iKSxoOGUodGhpcyxQTyx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5jcmVhdGVBbmRSZWdpc3RlckluZGV4TWFwKHRoaXMucGx1Z2luTmFtZSwiaGlkaW5nIikpLHRoaXMubmVzdGVkSGVhZGVyc1BsdWdp''@;'; put 'put ''bj10aGlzLmhvdC5nZXRQbHVnaW4oIm5lc3RlZEhlYWRlcnMiKSx0aGlzLmhlYWRlclN0YXRlTWFuYWdlcj10aGlzLm5lc3RlZEhlYWRlcnNQbHVnaW4uZ2V0U3RhdGVNYW5hZ2VyKCksdGhpcy5hZGRIb29rKCJpbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uSW5pdCgpfSksdGhpcy5hZGRI''@;'; put 'put ''b29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixmdW5jdGlvbihaLHVlKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sSGVhZGVyKFosdWUpfSksdGhp''@;'; put 'put ''cy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKFosdWUsX2Upe3JldHVybiB5Lm9uQmVmb3JlT25DZWxsTW91c2VEb3duKFosdWUsX2UpfSksSlMoUnYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy51cGRhdGVQbHVnaW4o''@;'; put 'put ''KSl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcy5ob3Qudmlldyl7aWYoIXRoaXMubmVzdGVkSGVhZGVyc1BsdWdpbi5kZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmNvbGxhcHNpYmxlQ29sdW1uczsi''@;'; put 'put ''Ym9vbGVhbiI9PXR5cGVvZiBDP3RoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLm1hcFN0YXRlKGZ1bmN0aW9uKEkpe3JldHVybntjb2xsYXBzaWJsZTpJLm9yaWdDb2xzcGFuPjF9fSk6QXJyYXkuaXNBcnJheShDKSYmKHRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLm1hcFN0YXRlKGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJue2NvbGxhcHNpYmxlOiExfX0pLHRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLm1lcmdlU3RhdGVXaXRoKEMpKX1KUyhSdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMu''@;'; put 'put ''aG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lKSxoOGUodGhpcyxQTyxudWxsKSx0aGlzLm5lc3RlZEhlYWRlcnNQbHVnaW49bnVsbCx0aGlzLmNsZWFyQnV0dG9ucygpLEpTKFJ2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2Fs''@;'; put 'put ''bCh0aGlzKX19LHtrZXk6ImNsZWFyQnV0dG9ucyIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmhvdC52aWV3KXt2YXIgeT10aGlzLmhvdC52aWV3Ll93dC5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoLEM9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5USEVBRCxJPXRoaXMu''@;'; put 'put ''aG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMudG9wT3ZlcmxheS5jbG9uZS53dFRhYmxlLlRIRUFELFo9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXk/dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92''@;'; put 'put ''ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRDpudWxsLHVlPWZ1bmN0aW9uKEJlKXtCZSYmQmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChCZSl9O2lhKDAseS0xLGZ1bmN0aW9uKF9lKXt2YXIgQmU9Qy5jaGlsZE5vZGVzW19lXSxOZT1JLmNoaWxkTm9kZXNbX2VdLEtlPVo/Wi5jaGlsZE5vZGVz''@;'; put 'put ''W19lXTpudWxsO2lhKDAsQmUuY2hpbGROb2Rlcy5sZW5ndGgtMSxmdW5jdGlvbihwdCl7dmFyIE90PUJlLmNoaWxkTm9kZXNbcHRdLnF1ZXJ5U2VsZWN0b3IoIi5jb2xsYXBzaWJsZUluZGljYXRvciIpO3VlKE90KSxOZSYmTmUuY2hpbGROb2Rlc1twdF0mJihPdD1OZS5jaGlsZE5vZGVzW3B0''@;'; put 'put ''XS5xdWVyeVNlbGVjdG9yKCIuY29sbGFwc2libGVJbmRpY2F0b3IiKSx1ZShPdCkpLFomJktlJiZLZS5jaGlsZE5vZGVzW3B0XSYmKE90PUtlLmNoaWxkTm9kZXNbcHRdLnF1ZXJ5U2VsZWN0b3IoIi5jb2xsYXBzaWJsZUluZGljYXRvciIpLHVlKE90KSl9KX0pfX19LHtrZXk6ImV4cGFuZFNl''@;'; put 'put ''Y3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFt5XSwiZXhwYW5kIil9fSx7a2V5OiJjb2xsYXBzZVNlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFt5XSwiY29sbGFwc2UiKX19LHtrZXk6''@;'; put 'put ''InRvZ2dsZUFsbENvbGxhcHNpYmxlU2VjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmhlYWRlclN0YXRlTWFuYWdlci5tYXBOb2RlcyhmdW5jdGlvbihaKXt2YXIgTmU9Wi5jb2x1bW5JbmRleCxLZT1aLmlzQ29sbGFwc2VkO2lmKCEwPT09Wi5jb2xsYXBzaWJs''@;'; put 'put ''ZSYmWi5vcmlnQ29sc3Bhbj4xJiYoS2UmJiJleHBhbmQiPT09eXx8IUtlJiYiY29sbGFwc2UiPT09eSkpcmV0dXJue3JvdzpDLmhlYWRlclN0YXRlTWFuYWdlci5sZXZlbFRvUm93Q29vcmRzKFouaGVhZGVyTGV2ZWwpLGNvbDpOZX19KTt0aGlzLnRvZ2dsZUNvbGxhcHNpYmxlU2VjdGlvbihJ''@;'; put 'put ''LHkpfX0se2tleToiY29sbGFwc2VBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy50b2dnbGVBbGxDb2xsYXBzaWJsZVNlY3Rpb25zKCJjb2xsYXBzZSIpfX0se2tleToiZXhwYW5kQWxsIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudG9nZ2xlQWxsQ29sbGFwc2libGVTZWN0aW9ucygiZXhwYW5k''@;'; put 'put ''Iil9fSx7a2V5OiJ0b2dnbGVDb2xsYXBzaWJsZVNlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcztpZighVU1lLmhhcyhDKSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGFjdGlvbiBpcyBwYXNzZWQgKCIuY29uY2F0KEMsIikuIikpO2lmKEFycmF5LmlzQXJyYXko''@;'; put 'put ''eSkpe3ZhciBaPWc0KHksZnVuY3Rpb24oZm4pe3JldHVybiBmbi5yb3c8MH0pLHVlPVoubGVuZ3RoPjA7VXIoWixmdW5jdGlvbihmbil7dmFyIExuLFNyPW51bGwhPT0oTG49SS5oZWFkZXJTdGF0ZU1hbmFnZXIuZ2V0SGVhZGVyU2V0dGluZ3MoZm4ucm93LGZuLmNvbCkpJiZ2b2lkIDAhPT1M''@;'; put 'put ''bj9Mbjp7fSxRcj1Tci5pc0NvbGxhcHNlZDtpZighU3IuY29sbGFwc2libGV8fFFyJiYiY29sbGFwc2UiPT09Q3x8IVFyJiYiZXhwYW5kIj09PUMpcmV0dXJuIHVlPSExLCExfSk7dmFyIF9lPVtdLEJlPVtdO3VlJiZVcihaLGZ1bmN0aW9uKGZuKXt2YXIgbXI9SS5oZWFkZXJTdGF0ZU1hbmFn''@;'; put 'put ''ZXIudHJpZ2dlck5vZGVNb2RpZmljYXRpb24oQyxmbi5yb3csZm4uY29sKSxRcj1tci5yb2xsYmFja01vZGlmaWNhdGlvbjttci5jb2xzcGFuQ29tcGVuc2F0aW9uPjAmJihCZS5wdXNoLmFwcGx5KEJlLHpNZShtci5hZmZlY3RlZENvbHVtbnMpKSxfZS5wdXNoKFFyKSl9KTt2YXIgTmU9dGhp''@;'; put 'put ''cy5nZXRDb2xsYXBzZWRDb2x1bW5zKCksS2U9W107ImNvbGxhcHNlIj09PUM/S2U9SmhlKFtdLmNvbmNhdCh6TWUoTmUpLEJlKSk6ImV4cGFuZCI9PT1DJiYoS2U9ZzQoTmUsZnVuY3Rpb24oZm4pe3JldHVybiFCZS5pbmNsdWRlcyhmbil9KSk7dmFyIHB0PVVNZS5nZXQoQyk7aWYoITE9PT10''@;'; put 'put ''aGlzLmhvdC5ydW5Ib29rcyhwdC5iZWZvcmVIb29rLE5lLEtlLHVlKSlyZXR1cm4gdm9pZCBVcihfZSxmdW5jdGlvbihmbil7Zm4oKX0pO3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoQmUsZnVuY3Rpb24oZm4pe1dNZShJLFBPKS5zZXRWYWx1ZUF0SW5kZXgoSS5ob3Qu''@;'; put 'put ''dG9QaHlzaWNhbENvbHVtbihmbikscHQuaGlkZUNvbHVtbil9KX0sITApO3ZhciAkdD10aGlzLmdldENvbGxhcHNlZENvbHVtbnMoKS5sZW5ndGghPT1OZS5sZW5ndGg7dGhpcy5ob3QucnVuSG9va3MocHQuYWZ0ZXJIb29rLE5lLEtlLHVlLCR0KSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhv''@;'; put 'put ''dC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9fX0se2tleToiZ2V0Q29sbGFwc2VkQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gV01lKHRoaXMsUE8pLmdldEhpZGRlbkluZGV4ZXMoKX19LHtrZXk6ImdlbmVyYXRlSW5kaWNhdG9yIix2YWx1ZTpmdW5jdGlvbih5LEMpe3Zh''@;'; put 'put ''ciBJPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxaPXRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLmdldEhlYWRlclNldHRpbmdzKHksQyk7cmV0dXJuIE8wKEksImNvbGxhcHNpYmxlSW5kaWNhdG9yIiksWi5pc0NvbGxhcHNlZD8oTzAoSSwiY29sbGFwc2VkIiks''@;'; put 'put ''U3coSSwiKyIpKTooTzAoSSwiZXhwYW5kZWQiKSxTdyhJLCItIikpLEl9fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJLFo9Qy5wYXJlbnROb2RlLHVlPVoucGFyZW50Tm9kZSxfZT0tMSp1ZS5jaGlsZE5vZGVzLmxlbmd0aCtBcnJheS5wcm90''@;'; put 'put ''b3R5cGUuaW5kZXhPZi5jYWxsKHVlLmNoaWxkTm9kZXMsWiksQmU9bnVsbCE9PShJPXRoaXMuaGVhZGVyU3RhdGVNYW5hZ2VyLmdldEhlYWRlclNldHRpbmdzKF9lLHkpKSYmdm9pZCAwIT09ST9JOnt9O2lmKEJlLmNvbGxhcHNpYmxlJiZCZS5vcmlnQ29sc3Bhbj4xJiZ5Pj10aGlzLmhvdC5n''@;'; put 'put ''ZXRTZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0KXt2YXIgcHQ9dGhpcy5nZW5lcmF0ZUluZGljYXRvcihfZSx5KTtDLnF1ZXJ5U2VsZWN0b3IoImRpdjpmaXJzdC1jaGlsZCIpLmFwcGVuZENoaWxkKHB0KX19fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oeSxDKXt0bCh5LnRhcmdldCwiY29sbGFwc2libGVJbmRpY2F0b3IiKSYmKHRsKHkudGFyZ2V0LCJleHBhbmRlZCIpPyh0aGlzLmV2ZW50TWFuYWdlci5maXJlRXZlbnQoeS50YXJnZXQsIm1vdXNldXAiKSx0aGlzLnRvZ2dsZUNvbGxhcHNpYmxlU2VjdGlvbihbQ10sImNvbGxhcHNlIikp''@;'; put 'put ''OnRsKHkudGFyZ2V0LCJjb2xsYXBzZWQiKSYmKHRoaXMuZXZlbnRNYW5hZ2VyLmZpcmVFdmVudCh5LnRhcmdldCwibW91c2V1cCIpLHRoaXMudG9nZ2xlQ29sbGFwc2libGVTZWN0aW9uKFtDXSwiZXhwYW5kIikpLF84KHkpKX19LHtrZXk6Im9uSW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlz''@;'; put 'put ''LnVwZGF0ZVBsdWdpbigpfX0se2tleToib25BZnRlckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbih5LEMpe0N8fHRoaXMudXBkYXRlUGx1Z2luKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2g4ZSh0aGlzLFBPLG51bGwpLEpTKFJ2KGgucHJvdG90eXBlKSwiZGVzdHJveSIs''@;'; put 'put ''dGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGQ4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDI5MH19LHtrZXk6IlBMVUdJTl9ERVBTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bInBsdWdp''@;'; put 'put ''bjpOZXN0ZWRIZWFkZXJzIl19fSx7a2V5OiJTRVRUSU5HX0tFWVMiLGdldDpmdW5jdGlvbigpe3JldHVybltkOGVdLmNvbmNhdChuMHQpfX1dKSxofShZcyk7ZnVuY3Rpb24gUU1lKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFy''@;'; put 'put ''IHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gbzB0KGQsZyxo''@;'; put 'put ''KXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBKTWUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gdTB0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkp''@;'; put 'put ''cmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBzMHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2Fs''@;'; put 'put ''bChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9''@;'; put 'put ''fShkLGcpfHxmdW5jdGlvbiBsMHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFhNZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3Ry''@;'; put 'put ''dWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gWE1lKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBhMHQoKXt0''@;'; put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1''@;'; put 'put ''bmN0aW9uIFhNZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEtNZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3Yu''@;'; put 'put ''ZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBoMHQ9WyJzb3J0RW1wdHlDZWxscyIsImluZGljYXRvciIsImhlYWRlckFjdGlvbiIsImNv''@;'; put 'put ''bXBhcmVGdW5jdGlvbkZhY3RvcnkiXSxtMHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGMwdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlz''@;'; put 'put ''LmhvdD1nLHRoaXMuc29ydGluZ1N0YXRlcz1uZXcgWWVlLHRoaXMuc29ydEVtcHR5Q2VsbHM9ITEsdGhpcy5pbmRpY2F0b3I9ITAsdGhpcy5oZWFkZXJBY3Rpb249ITAsdGhpcy5jb21wYXJlRnVuY3Rpb25GYWN0b3J5PXZvaWQgMCx0aGlzLm1hcE5hbWU9aCx0aGlzLmhvdC5jb2x1bW5JbmRl''@;'; put 'put ''eE1hcHBlci5yZWdpc3Rlck1hcChoLHRoaXMuc29ydGluZ1N0YXRlcyl9cmV0dXJuIGZ1bmN0aW9uIGYwdChkLGcsaCl7ZyYmS01lKGQucHJvdG90eXBlLGcpLGgmJktNZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJ1''@;'; put 'put ''cGRhdGVBbGxDb2x1bW5zUHJvcGVydGllcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpczsheGwoaCl8fEdsKGgsZnVuY3Rpb24oeSxDKXtoMHQuaW5jbHVkZXMoQykmJih2W0NdPXkpfSl9fSx7a2V5OiJnZXRBbGxDb2x1bW5zUHJvcGVydGllcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIg''@;'; put 'put ''aD17c29ydEVtcHR5Q2VsbHM6dGhpcy5zb3J0RW1wdHlDZWxscyxpbmRpY2F0b3I6dGhpcy5pbmRpY2F0b3IsaGVhZGVyQWN0aW9uOnRoaXMuaGVhZGVyQWN0aW9ufTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcy5jb21wYXJlRnVuY3Rpb25GYWN0b3J5JiYoaC5jb21wYXJlRnVuY3Rp''@;'; put 'put ''b25GYWN0b3J5PXRoaXMuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeSksaH19LHtrZXk6ImdldFNvcnRPcmRlck9mQ29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gbnVsbD09PSh2PXRoaXMuc29ydGluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNh''@;'; put 'put ''bENvbHVtbihoKSkpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LnNvcnRPcmRlcn19LHtrZXk6ImdldEluZGV4T2ZDb2x1bW5JblNvcnRRdWV1ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIGg9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihoKSx0aGlzLnNvcnRpbmdTdGF0ZXMuZ2V0RW50cmll''@;'; put 'put ''cygpLmZpbmRJbmRleChmdW5jdGlvbih2KXtyZXR1cm4gSk1lKHYsMSlbMF09PT1ofSl9fSx7a2V5OiJnZXROdW1iZXJPZlNvcnRlZENvbHVtbnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc29ydGluZ1N0YXRlcy5nZXRMZW5ndGgoKX19LHtrZXk6ImlzTGlzdE9mU29ydGVkQ29s''@;'; put 'put ''dW1uc0VtcHR5Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5nZXROdW1iZXJPZlNvcnRlZENvbHVtbnMoKX19LHtrZXk6ImlzQ29sdW1uU29ydGVkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4geGwodGhpcy5zb3J0aW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleCh0aGlzLmhv''@;'; put 'put ''dC50b1BoeXNpY2FsQ29sdW1uKGgpKSl9fSx7a2V5OiJnZXRTb3J0U3RhdGVzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7cmV0dXJuIG51bGw9PT10aGlzLnNvcnRpbmdTdGF0ZXM/W106dGhpcy5zb3J0aW5nU3RhdGVzLmdldEVudHJpZXMoKS5tYXAoZnVuY3Rpb24oeSl7dmFyIEM9''@;'; put 'put ''Sk1lKHksMiksWj1DWzFdO3JldHVybiBmdW5jdGlvbiBpMHQoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/UU1lKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtvMHQoZCx2''@;'; put 'put ''LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6UU1lKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2''@;'; put 'put ''LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH0oe2NvbHVtbjpoLmhvdC50b1Zpc3VhbENvbHVtbihDWzBdKX0sWil9KX19LHtrZXk6ImdldENvbHVtblNvcnRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5nZXRTb3J0T3JkZXJPZkNv''@;'; put 'put ''bHVtbihoKTtpZihUbyh2KSlyZXR1cm57Y29sdW1uOmgsc29ydE9yZGVyOnZ9fX0se2tleToic2V0U29ydFN0YXRlcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zb3J0aW5nU3RhdGVzLmNsZWFyKCk7Zm9yKHZhciB2PTA7djxoLmxlbmd0aDt2Kz0xKXRoaXMuc29ydGluZ1N0YXRlcy5zZXRW''@;'; put 'put ''YWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihoW3ZdLmNvbHVtbikse3NvcnRPcmRlcjpoW3ZdLnNvcnRPcmRlcn0pfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMubWFwTmFt''@;'; put 'put ''ZSksdGhpcy5zb3J0aW5nU3RhdGVzPW51bGx9fV0pLGR9KCksVHRlPSJhc2MiLEl0ZT0iZGVzYyI7ZnVuY3Rpb24gJE1lKGQpe2lmKGQhPT1JdGUpcmV0dXJuIGQ9PT1UdGU/SXRlOlR0ZX1mdW5jdGlvbiBxTWUoZCl7cmV0dXJuIGQucXVlcnlTZWxlY3RvcigiLiIuY29uY2F0KCJjb2xIZWFk''@;'; put 'put ''ZXIiKSl9ZnVuY3Rpb24gZUVlKGQsZyl7aWYoZDwwfHwhZy5wYXJlbnROb2RlKXJldHVybiExO3ZhciBoPWcucGFyZW50Tm9kZS5wYXJlbnROb2RlLmNoaWxkTm9kZXM7cmV0dXJuLTE9PUFycmF5LmZyb20oaCkuaW5kZXhPZihnLnBhcmVudE5vZGUpLWgubGVuZ3RofWZ1bmN0aW9uIHA4ZShk''@;'; put 'put ''LGcsaCl7cmV0dXJuLTE9PT1kJiZnPj0wJiYhMT09PUV3KGgpfXZhciB0RWU9ImluZGljYXRvckRpc2FibGVkIixuRWU9ImNvbHVtblNvcnRpbmciLHJFZT0ic29ydEFjdGlvbiIsaUVlPW5ldyBNYXAoW1tUdGUsImFzY2VuZGluZyJdLFtJdGUsImRlc2NlbmRpbmciXV0pO2Z1bmN0aW9uIF8w''@;'; put 'put ''dChkLGcsaCx2KXt2YXIgeT1bbkVlXTtpZih2JiZ5LnB1c2gockVlKSwhMT09PWgpcmV0dXJuIHkucHVzaCh0RWUpLHk7dmFyIEM9ZC5nZXRTb3J0T3JkZXJPZkNvbHVtbihnKTtyZXR1cm4gVG8oQykmJnkucHVzaChpRWUuZ2V0KEMpKSx5fWZ1bmN0aW9uIEMwdCgpe3JldHVybiBBcnJheS5m''@;'; put 'put ''cm9tKGlFZS52YWx1ZXMoKSkuY29uY2F0KHJFZSx0RWUsbkVlKX1mdW5jdGlvbiBvRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFi''@;'; put 'put ''bGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBhRWUoZCxnLGgpe3JldHVybiBnJiZvRWUoZC5wcm90b3R5cGUsZyksaCYmb0VlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZH1mdW5jdGlvbiBs''@;'; put 'put ''RWUoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX12YXIgc0VlPWFFZShmdW5jdGlvbiBkKGcpe2xFZSh0aGlzLGQpLHRoaXMuZGF0YT1nLHRoaXMubmV4dD1udWxsLHRoaXMucHJldj1udWxs''@;'; put 'put ''fSksazB0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZCgpe2xFZSh0aGlzLGQpLHRoaXMuZmlyc3Q9bnVsbCx0aGlzLmxhc3Q9bnVsbH1yZXR1cm4gYUVlKGQsW3trZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PW5ldyBzRWUoaCk7aWYobnVsbD09PXRoaXMuZmlyc3QpdGhpcy5maXJz''@;'; put 'put ''dD12LHRoaXMubGFzdD12O2Vsc2V7dmFyIHk9dGhpcy5sYXN0O3RoaXMubGFzdD12LHYucHJldj15LHkubmV4dD12fX19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PW5ldyBzRWUoaCk7aWYobnVsbD09PXRoaXMuZmlyc3QpdGhpcy5maXJzdD12LHRoaXMubGFzdD12''@;'; put 'put ''O2Vsc2V7dmFyIHk9dGhpcy5maXJzdDt0aGlzLmZpcnN0PXYsdi5uZXh0PXkseS5wcmV2PXZ9fX0se2tleToiaW5vcmRlciIsdmFsdWU6ZnVuY3Rpb24oaCl7Zm9yKHZhciB2PXRoaXMuZmlyc3Q7djspaCh2KSx2PXYubmV4dH19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7aWYo''@;'; put 'put ''bnVsbD09PXRoaXMuZmlyc3QpcmV0dXJuITE7Zm9yKHZhciB5LEMsdj10aGlzLmZpcnN0O3Y7KXtpZih2LmRhdGE9PT1oKXJldHVybiBDPXYucHJldiwoeT12Lm5leHQpJiYoeS5wcmV2PUMpLEMmJihDLm5leHQ9eSksdj09PXRoaXMuZmlyc3QmJih0aGlzLmZpcnN0PXkpLHY9PT10aGlzLmxh''@;'; put 'put ''c3QmJih0aGlzLmxhc3Q9QyksITA7dj12Lm5leHR9cmV0dXJuITF9fSx7a2V5OiJoYXNDeWNsZSIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIGg9dGhpcy5maXJzdCx2PXRoaXMuZmlyc3Q7Oyl7aWYobnVsbD09PWh8fG51bGw9PT0oaD1oLm5leHQpKXJldHVybiExO2lmKChoPWgubmV4dCk9''@;'; put 'put ''PT0odj12Lm5leHQpKXJldHVybiEwfX19LHtrZXk6InBvcCIsdmFsdWU6ZnVuY3Rpb24oKXtpZihudWxsPT09dGhpcy5sYXN0KXJldHVybiBudWxsO3ZhciBoPXRoaXMubGFzdDtyZXR1cm4gdGhpcy5sYXN0PXRoaXMubGFzdC5wcmV2LGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''KXtpZihudWxsPT09dGhpcy5maXJzdClyZXR1cm4gbnVsbDt2YXIgaD10aGlzLmZpcnN0O3JldHVybiB0aGlzLmZpcnN0PXRoaXMuZmlyc3QubmV4dCxofX0se2tleToicmVjdXJzaXZlUmV2ZXJzZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLmZpcnN0KXsoZnVuY3Rpb24gaCh5LEMpeyFD''@;'; put 'put ''fHwoaChDLEMubmV4dCksQy5uZXh0PXkpfSkodGhpcy5maXJzdCx0aGlzLmZpcnN0Lm5leHQpLHRoaXMuZmlyc3QubmV4dD1udWxsO3ZhciB2PXRoaXMuZmlyc3Q7dGhpcy5maXJzdD10aGlzLmxhc3QsdGhpcy5sYXN0PXZ9fX0se2tleToicmV2ZXJzZSIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0''@;'; put 'put ''aGlzLmZpcnN0JiZ0aGlzLmZpcnN0Lm5leHQpe2Zvcih2YXIgeSxoPXRoaXMuZmlyc3QubmV4dCx2PXRoaXMuZmlyc3Q7aDspeT1oLm5leHQsaC5uZXh0PXYsdi5wcmV2PWgsdj1oLGg9eTt0aGlzLmZpcnN0Lm5leHQ9bnVsbCx0aGlzLmxhc3QucHJldj1udWxsLHk9dGhpcy5maXJzdCx0aGlz''@;'; put 'put ''LmZpcnN0PXYsdGhpcy5sYXN0PXl9fX1dKSxkfSgpO2NvbnN0IHVFZT1rMHQ7dmFyIFMwdD1mdW5jdGlvbihnLGgpe3ZhciB2PWcudG9TdHJpbmcoKSx5PWgudG9TdHJpbmcoKTtyZXR1cm4gdj09PXk/MDp2PHk/LTE6MX07ZnVuY3Rpb24gZzhlKGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+''@;'; put 'put ''MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpTMHQsaD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MCx2PWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpkLmxlbmd0''@;'; put 'put ''aDtpZihNYXRoLmFicyh2LWgpPD0xKXJldHVybltdO3ZhciB5PU1hdGguY2VpbCgoaCt2KS8yKTtyZXR1cm4gZzhlKGQsZyxoLHkpLGc4ZShkLGcseSx2KSxNMHQoZCxnLGgseSx2KX1mdW5jdGlvbiBNMHQoZCxnLGgsdix5KXtmb3IodmFyIEM9bmV3IHVFZSxJPW5ldyB1RWUsWj12LWgsdWU9''@;'; put 'put ''eS12LF9lPU1hdGgubWF4KFosdWUpLEJlPXktaCxOZT0wO05lPF9lO05lKz0xKU5lPFomJkMucHVzaChkW2grTmVdKSxOZTx1ZSYmSS5wdXNoKGRbditOZV0pO2Zvcih2YXIgS2U9MDtLZTxCZTspZFtoK0tlXT1DLmZpcnN0JiZJLmZpcnN0P2coQy5maXJzdC5kYXRhLEkuZmlyc3QuZGF0YSk+''@;'; put 'put ''MD9JLnNoaWZ0KCkuZGF0YTpDLnNoaWZ0KCkuZGF0YTpDLmZpcnN0P0Muc2hpZnQoKS5kYXRhOkkuc2hpZnQoKS5kYXRhLEtlKz0xO3JldHVybiBkfWZ1bmN0aW9uIGNFZShkLGcsaCl7dmFyIHY9Zy5sb2NhbGU7cmV0dXJuIGZ1bmN0aW9uKHksQyl7dmFyIEk9aC5zb3J0RW1wdHlDZWxsczty''@;'; put 'put ''ZXR1cm4ic3RyaW5nIj09dHlwZW9mIHkmJih5PXkudG9Mb2NhbGVMb3dlckNhc2UodikpLCJzdHJpbmciPT10eXBlb2YgQyYmKEM9Qy50b0xvY2FsZUxvd2VyQ2FzZSh2KSkseT09PUM/MDpkYyh5KT9kYyhDKT8wOkkmJiJhc2MiPT09ZD8tMToxOmRjKEMpP0kmJiJhc2MiPT09ZD8xOi0xOmlz''@;'; put 'put ''TmFOKHkpJiYhaXNOYU4oQyk/ImFzYyI9PT1kPzE6LTE6IWlzTmFOKHkpJiZpc05hTihDKXx8KGlzTmFOKHkpfHxpc05hTihDKXx8KHk9cGFyc2VGbG9hdCh5KSxDPXBhcnNlRmxvYXQoQykpLHk8Qyk/ImFzYyI9PT1kPy0xOjE6eT5DPyJhc2MiPT09ZD8xOi0xOjB9fXZhciBtOGU9THAoInNv''@;'; put 'put ''cnRpbmcuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeSIpLER0ZT1tOGUucmVnaXN0ZXIsaEVlPW04ZS5nZXRJdGVtLFIwdD1tOGUuaGFzSXRlbSxkRWU9THAoInNvcnRpbmcubWFpblNvcnRDb21wYXJhdG9yIikscEVlPWRFZS5yZWdpc3RlcixCMHQ9ZEVlLmdldEl0ZW07ZnVuY3Rpb24gZ0VlKGQp''@;'; put 'put ''e3JldHVybiBSMHQoZCk/aEVlKGQpOmhFZSgiZGVmYXVsdCIpfWZ1bmN0aW9uIG1FZShkKXtyZXR1cm4gZnVuY3Rpb24gTjB0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBIMHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRb''@;'; put 'put ''U3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gRjB0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiB2RWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwo''@;'; put 'put ''ZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVk''@;'; put 'put ''KT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHZFZShkLGcpfX0oZCl8fGZ1bmN0aW9uIFAwdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5''@;'; put 'put ''IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gdkVlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVu''@;'; put 'put ''Y3Rpb24gdjhlKGQpe3JldHVybih2OGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5j''@;'; put 'put ''b25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1EdGUoIm51bWVyaWMiLGZ1bmN0aW9uIHgwdChkLGcsaCl7cmV0dXJuIGZ1bmN0aW9uKHYseSl7dmFyIEM9cGFyc2VGbG9hdCh2KSxJPXBhcnNlRmxvYXQoeSksWj1oLnNvcnRF''@;'; put 'put ''bXB0eUNlbGxzO2lmKEM9PT1JfHxpc05hTihDKSYmaXNOYU4oSSkpcmV0dXJuIDA7aWYoWil7aWYoZGModikpcmV0dXJuImFzYyI9PT1kPy0xOjE7aWYoZGMoeSkpcmV0dXJuImFzYyI9PT1kPzE6LTF9cmV0dXJuIGlzTmFOKEMpPzE6aXNOYU4oSSk/LTE6QzxJPyJhc2MiPT09ZD8tMToxOkM+''@;'; put 'put ''ST8iYXNjIj09PWQ/MTotMTowfX0pLER0ZSgiY2hlY2tib3giLGZ1bmN0aW9uIEkwdChkLGcsaCl7dmFyIHY9Zy5jaGVja2VkVGVtcGxhdGUseT1nLnVuY2hlY2tlZFRlbXBsYXRlLEM9aC5zb3J0RW1wdHlDZWxscztyZXR1cm4gZnVuY3Rpb24oSSxaKXt2YXIgdWU9ZGMoSSksX2U9ZGMoWiks''@;'; put 'put ''QmU9dWU/eTpJLE5lPV9lP3k6WixLZT1CZT09PXl8fEJlPT09dixwdD1OZT09PXl8fE5lPT09djtpZighMT09PUMpe2lmKHVlJiYhMT09PV9lKXJldHVybiAxO2lmKCExPT09dWUmJl9lKXJldHVybi0xfXJldHVybiExPT09S2UmJnB0PyJhc2MiPT09ZD8tMToxOktlJiYhMT09PXB0PyJhc2Mi''@;'; put 'put ''PT09ZD8xOi0xOiExPT09S2UmJiExPT09cHQ/Y0VlKGQsZyxoKShJLFopOkJlPT09eSYmTmU9PT12PyJhc2MiPT09ZD8tMToxOkJlPT09diYmTmU9PT15PyJhc2MiPT09ZD8xOi0xOjB9fSksRHRlKCJkYXRlIixmdW5jdGlvbiBMMHQoZCxnLGgpe3JldHVybiBmdW5jdGlvbih2LHkpe3ZhciBD''@;'; put 'put ''PWguc29ydEVtcHR5Q2VsbHM7aWYodj09PXkpcmV0dXJuIDA7aWYoZGModikpcmV0dXJuIGRjKHkpPzA6QyYmImFzYyI9PT1kPy0xOjE7aWYoZGMoeSkpcmV0dXJuIEMmJiJhc2MiPT09ZD8xOi0xO3ZhciBJPWcuZGF0ZUZvcm1hdCxaPVRsKHYsSSksdWU9VGwoeSxJKTtyZXR1cm4gWi5pc1Zh''@;'; put 'put ''bGlkKCk/dWUuaXNWYWxpZCgpP3VlLmlzQWZ0ZXIoWik/ImFzYyI9PT1kPy0xOjE6dWUuaXNCZWZvcmUoWik/ImFzYyI9PT1kPzE6LTE6MDotMToxfX0pLER0ZSgiZGVmYXVsdCIsY0VlKTt2YXIgajB0PVsiY29sdW1uIl0sWjB0PVsiY29sdW1uIl07ZnVuY3Rpb24gRk8oZCl7cmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uIFkwdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBBOGUoZCl9KGQpfHxmdW5jdGlvbiBXMHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9t''@;'; put 'put ''KGQpfShkKXx8ZnVuY3Rpb24gRzB0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBBOGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0''@;'; put 'put ''cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEE4ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIHowdCgpe3Ro''@;'; put 'put ''cm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9u''@;'; put 'put ''IEE4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEFFZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5''@;'; put 'put ''bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9u''@;'; put 'put ''IHlFZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj9BRWUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe1UwdChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlE''@;'; put 'put ''ZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTpBRWUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv''@;'; put 'put ''cihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIFUwdChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gd0VlKGQsZyl7aWYobnVs''@;'; put 'put ''bD09ZClyZXR1cm57fTt2YXIgdix5LGg9ZnVuY3Rpb24gUTB0KGQsZyl7aWYobnVsbD09ZClyZXR1cm57fTt2YXIgeSxDLGg9e30sdj1PYmplY3Qua2V5cyhkKTtmb3IoQz0wO0M8di5sZW5ndGg7QysrKSEoZy5pbmRleE9mKHk9dltDXSk+PTApJiYoaFt5XT1kW3ldKTtyZXR1cm4gaH0oZCxn''@;'; put 'put ''KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2Zvcih5PTA7eTxDLmxlbmd0aDt5KyspIShnLmluZGV4T2Yodj1DW3ldKT49MCkmJighT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxs''@;'; put 'put ''KGQsdil8fChoW3ZdPWRbdl0pKX1yZXR1cm4gaH1mdW5jdGlvbiBiRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9i''@;'; put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBYUygpe3JldHVybiBYUz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9SzB0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0''@;'; put 'put ''LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxYUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gSzB0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9w''@;'; put 'put ''ZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1CdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiB5OGUoZCxnKXtyZXR1cm4oeThlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQs''@;'; put 'put ''Zyl9ZnVuY3Rpb24gZW90KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09djhlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVm''@;'; put 'put ''aW5lZCIpO3JldHVybiBmdW5jdGlvbiB0b3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBCdihkKXtyZXR1cm4o''@;'; put 'put ''QnY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgdzhlPSJjb2x1bW5Tb3J0aW5nIixfRWU9ImFwcGVuZCI7cEVlKHc4ZSxmdW5j''@;'; put 'put ''dGlvbiBWMHQoZCxnKXtyZXR1cm4gZnVuY3Rpb24oaCx2KXt2YXIgQmUsTmUsS2UscHQsT3QsQz1tRWUoaCkuc2xpY2UoMSksWj1tRWUodikuc2xpY2UoMSk7cmV0dXJuIEJlPWRbMF0sS2U9Q1swXSxwdD1aWzBdLCgoT3Q9KE5lPWdbMF0pLmNvbHVtblNvcnRpbmcpLmNvbXBhcmVGdW5jdGlv''@;'; put 'put ''bkZhY3Rvcnk/T3QuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeTpnRWUoTmUudHlwZSkpKEJlLE5lLE90KShLZSxwdCl9fSksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbHVtblNvcnQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb2x1bW5Tb3J0Iik7dmFy''@;'; put 'put ''IENFZT1mdW5jdGlvbihkKXshZnVuY3Rpb24gJDB0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNy''@;'; put 'put ''ZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnk4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHEwdChkKXt2''@;'; put 'put ''YXIgZz1mdW5jdGlvbiBub3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3Rv''@;'; put 'put ''dHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1CdihkKTtpZihnKXt2YXIgQz1Cdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29u''@;'; put 'put ''c3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZW90KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBKMHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; put 'put ''YW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuY29sdW1uU3RhdGVzTWFuYWdlcj1udWxsLHkuY29sdW1uTWV0YUNhY2hlPW51bGwseS5wbHVnaW5LZXk9dzhlLHkuaW5kZXhlc1NlcXVlbmNlQ2FjaGU9bnVsbCx5fXJldHVybiBm''@;'; put 'put ''dW5jdGlvbiBYMHQoZCxnLGgpe2cmJmJFZShkLnByb3RvdHlwZSxnKSxoJiZiRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0''@;'; put 'put ''dGluZ3MoKVt0aGlzLnBsdWdpbktleV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmNvbHVtblN0YXRlc01hbmFnZXI9bmV3IG0wdCh0aGlzLmhvdCwiIi5jb25jYXQodGhpcy5wbHVnaW5LZXksIi5zb3J0aW5n''@;'; put 'put ''U3RhdGVzIikpLHRoaXMuY29sdW1uTWV0YUNhY2hlPW5ldyBEdyhmdW5jdGlvbihDKXt2YXIgST15LmhvdC50b1Zpc3VhbENvbHVtbihDKTtyZXR1cm4gbnVsbD09PUkmJihJPUMpLHkuZ2V0TWVyZ2VkUGx1Z2luU2V0dGluZ3MoSSl9KSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5yZWdp''@;'; put 'put ''c3Rlck1hcCgiIi5jb25jYXQodGhpcy5wbHVnaW5LZXksIi5jb2x1bW5NZXRhIiksdGhpcy5jb2x1bW5NZXRhQ2FjaGUpLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKEMsSSl7cmV0dXJuIHkub25BZnRlckdldENvbEhlYWRlcihDLEkpfSksdGhpcy5hZGRIb29r''@;'; put 'put ''KCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkFmdGVyT25DZWxsTW91''@;'; put 'put ''c2VEb3duKEMsSSl9KSx0aGlzLmFkZEhvb2soImFmdGVySW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5sb2FkT3JTb3J0QnlTZXR0aW5ncygpfSksdGhpcy5hZGRIb29rKCJhZnRlckxvYWREYXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJMb2FkRGF0YS5hcHBseSh5LGFyZ3VtZW50''@;'; put 'put ''cyl9KSx0aGlzLmhvdC52aWV3JiZ0aGlzLmxvYWRPclNvcnRCeVNldHRpbmdzKCksWFMoQnYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oWix1''@;'; put 'put ''ZSl7dmFyIF9lPXFNZSh1ZSk7ITE9PT1lRWUoWix1ZSl8fG51bGw9PT1fZXx8eS51cGRhdGVIZWFkZXJDbGFzc2VzKF9lKX07dGhpcy5ob3QuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLEMpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGZ1bmN0aW9uKCl7eS5o''@;'; put 'put ''b3QucmVtb3ZlSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLEMpfSksdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtudWxsIT09eS5pbmRleGVzU2VxdWVuY2VDYWNoZSYmKHkuaG90LnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZSh5LmluZGV4ZXNTZXF1ZW5jZUNh''@;'; put 'put ''Y2hlLmdldFZhbHVlcygpKSx5LmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHkucGx1Z2luS2V5KSl9LCEwKSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKCIiLmNvbmNhdCh0aGlzLnBsdWdpbktleSwiLmNvbHVtbk1ldGEiKSksdGhpcy5jb2x1bW5T''@;'; put 'put ''dGF0ZXNNYW5hZ2VyLmRlc3Ryb3koKSx0aGlzLmNvbHVtbk1ldGFDYWNoZT1udWxsLHRoaXMuY29sdW1uU3RhdGVzTWFuYWdlcj1udWxsLFhTKEJ2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InNvcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3Zh''@;'; put 'put ''ciBDPXRoaXMuZ2V0U29ydENvbmZpZygpLEk9dGhpcy5nZXROb3JtYWxpemVkU29ydENvbmZpZ3MoeSksWj10aGlzLmFyZVZhbGlkU29ydENvbmZpZ3MoSSk7ITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uU29ydCIsQyxJLFopJiYoMD09PUMubGVuZ3RoJiZudWxsPT09dGhp''@;'; put 'put ''cy5pbmRleGVzU2VxdWVuY2VDYWNoZSYmKHRoaXMuaW5kZXhlc1NlcXVlbmNlQ2FjaGU9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5LZXksbmV3IGhrZSksdGhpcy5pbmRleGVzU2VxdWVuY2VDYWNoZS5zZXRWYWx1ZXModGhpcy5ob3Qucm93SW5kZXhN''@;'; put 'put ''YXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCkpKSxaJiYodGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLnNldFNvcnRTdGF0ZXMoSSksdGhpcy5zb3J0QnlQcmVzZXRTb3J0U3RhdGVzKEkpLHRoaXMuc2F2ZUFsbFNvcnRTZXR0aW5ncyhJKSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQ29sdW1u''@;'; put 'put ''U29ydCIsQyxaP0k6QyxaKSxaJiYodGhpcy5ob3QucmVuZGVyKCksdGhpcy5ob3QuZm9yY2VGdWxsUmVuZGVyPSExLHRoaXMuaG90LnZpZXcucmVuZGVyKCkpKX19LHtrZXk6ImNsZWFyU29ydCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNvcnQoW10pfX0se2tleToiaXNTb3J0ZWQiLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5hYmxlZCYmIXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5pc0xpc3RPZlNvcnRlZENvbHVtbnNFbXB0eSgpfX0se2tleToiZ2V0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIFRvKHkpP3RoaXMuY29sdW1uU3RhdGVzTWFuYWdl''@;'; put 'put ''ci5nZXRDb2x1bW5Tb3J0U3RhdGUoeSk6dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldFNvcnRTdGF0ZXMoKX19LHtrZXk6InNldFNvcnRDb25maWciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuZ2V0Tm9ybWFsaXplZFNvcnRDb25maWdzKHkpO3RoaXMuYXJlVmFsaWRTb3J0Q29u''@;'; put 'put ''ZmlncyhDKSYmdGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLnNldFNvcnRTdGF0ZXMoQyl9fSx7a2V5OiJnZXROb3JtYWxpemVkU29ydENvbmZpZ3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltd''@;'; put 'put ''O3JldHVybiBBcnJheS5pc0FycmF5KHkpP3kuc2xpY2UoMCwxKTpbeV19fSx7a2V5OiJhcmVWYWxpZFNvcnRDb25maWdzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5jb3VudENvbHMoKTtyZXR1cm4gZnVuY3Rpb24geTB0KGQpe2lmKGQuc29tZShmdW5jdGlvbihoKXtyZXR1''@;'; put 'put ''cm4hMT09PWZ1bmN0aW9uIEEwdChkKXtpZighMT09PXhsKGQpKXJldHVybiExO3ZhciBoPWQuc29ydE9yZGVyO3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGQuY29sdW1uKSYmW1R0ZSxJdGVdLmluY2x1ZGVzKGgpfShoKX0pKXJldHVybiExO3ZhciBnPWQubWFwKGZ1bmN0aW9uKGgpe3JldHVy''@;'; put 'put ''biBoLmNvbHVtbn0pO3JldHVybiBuZXcgU2V0KGcpLnNpemU9PT1nLmxlbmd0aH0oeSkmJnkuZXZlcnkoZnVuY3Rpb24oSSl7dmFyIFo9SS5jb2x1bW47cmV0dXJuIFo8PUMmJlo+PTB9KX19LHtrZXk6InNhdmVBbGxTb3J0U2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMs''@;'; put 'put ''ST10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIuZ2V0QWxsQ29sdW1uc1Byb3BlcnRpZXMoKTtJLmluaXRpYWxDb25maWc9T2woeSxmdW5jdGlvbihfZSl7dmFyIEJlPV9lLmNvbHVtbixOZT13RWUoX2UsajB0KTtyZXR1cm4geUVlKHtjb2x1bW46Qy5ob3QudG9QaHlzaWNhbENvbHVtbihCZSl9''@;'; put 'put ''LE5lKX0pLHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIiwiY29sdW1uU29ydGluZyIsSSl9fSx7a2V5OiJnZXRBbGxTYXZlZFNvcnRTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9e307dGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0''@;'; put 'put ''ZUxvYWQiLCJjb2x1bW5Tb3J0aW5nIixDKTt2YXIgST1DLnZhbHVlO3JldHVybiBUbyhJKSYmQXJyYXkuaXNBcnJheShJLmluaXRpYWxDb25maWcpJiYoSS5pbml0aWFsQ29uZmlnPU9sKEkuaW5pdGlhbENvbmZpZyxmdW5jdGlvbihfZSl7dmFyIEJlPV9lLmNvbHVtbixOZT13RWUoX2UsWjB0''@;'; put 'put ''KTtyZXR1cm4geUVlKHtjb2x1bW46eS5ob3QudG9WaXN1YWxDb2x1bW4oQmUpfSxOZSl9KSksSX19LHtrZXk6ImdldENvbHVtbk5leHRDb25maWciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRTb3J0T3JkZXJPZkNvbHVtbih5KTtpZihUbyhD''@;'; put 'put ''KSl7dmFyIEk9JE1lKEMpO3JldHVybiBUbyhJKT97Y29sdW1uOnksc29ydE9yZGVyOkl9OnZvaWQgMH12YXIgWj10aGlzLmhvdC5jb3VudENvbHMoKTtpZihOdW1iZXIuaXNJbnRlZ2VyKHkpJiZ5Pj0wJiZ5PFopcmV0dXJue2NvbHVtbjp5LHNvcnRPcmRlcjokTWUoKX19fSx7a2V5OiJnZXRO''@;'; put 'put ''ZXh0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOl9FZSxJPXRoaXMuY29sdW1uU3RhdGVzTWFuYWdlci5nZXRJbmRleE9mQ29sdW1uSW5Tb3J0UXVldWUoeSksWj0tMSE9PUks''@;'; put 'put ''dWU9dGhpcy5nZXRTb3J0Q29uZmlnKCksX2U9dGhpcy5nZXRDb2x1bW5OZXh0Q29uZmlnKHkpO2lmKFope2lmKGExKF9lKSlyZXR1cm5bXS5jb25jYXQoRk8odWUuc2xpY2UoMCxJKSksRk8odWUuc2xpY2UoSSsxKSkpO2lmKEM9PT1fRWUpcmV0dXJuW10uY29uY2F0KEZPKHVlLnNsaWNlKDAs''@;'; put 'put ''SSkpLEZPKHVlLnNsaWNlKEkrMSkpLFtfZV0pO2lmKCJyZXBsYWNlIj09PUMpcmV0dXJuW10uY29uY2F0KEZPKHVlLnNsaWNlKDAsSSkpLFtfZV0sRk8odWUuc2xpY2UoSSsxKSkpfXJldHVybiBUbyhfZSk/dWUuY29uY2F0KF9lKTp1ZX19LHtrZXk6ImdldFBsdWdpbkNvbHVtbkNvbmZpZyIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7aWYoeGwoeSkpe3ZhciBDPXlbdGhpcy5wbHVnaW5LZXldO2lmKHhsKEMpKXJldHVybiBDfXJldHVybnt9fX0se2tleToiZ2V0TWVyZ2VkUGx1Z2luU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5w''@;'; put 'put ''bHVnaW5LZXldLEk9dGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLmdldEFsbENvbHVtbnNQcm9wZXJ0aWVzKCksWj10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLHkpLHVlPU9iamVjdC5nZXRQcm90b3R5cGVPZihaKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh1ZS5jb2x1bW5zKT9PYmplY3QuYXNzaWdu''@;'; put 'put ''KEksQyx0aGlzLmdldFBsdWdpbkNvbHVtbkNvbmZpZyh1ZS5jb2x1bW5zW3ldKSk6VTIodWUuY29sdW1ucyk/T2JqZWN0LmFzc2lnbihJLEMsdGhpcy5nZXRQbHVnaW5Db2x1bW5Db25maWcodWUuY29sdW1ucyh5KSkpOk9iamVjdC5hc3NpZ24oSSxDKX19LHtrZXk6ImdldEZpcnN0Q2VsbFNl''@;'; put 'put ''dHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLHkpLEk9T2JqZWN0LmNyZWF0ZShDKTtyZXR1cm4gSVt0aGlzLnBsdWdpbktleV09dGhpcy5jb2x1bW5NZXRhQ2FjaGUuZ2V0VmFsdWVBdEluZGV4KHRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4o''@;'; put 'put ''eSkpLEl9fSx7a2V5OiJnZXROdW1iZXJPZlJvd3NUb1NvcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCk7cmV0dXJuIEMubWF4Um93czw9eT9DLm1heFJvd3M6eS1DLm1pblNwYXJlUm93c319LHtrZXk6InNvcnRCeVByZXNldFNvcnRTdGF0ZXMiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYoMCE9PXkubGVuZ3RoKXtmb3IodmFyIEk9W10sWj10aGlzLmhvdC5jb3VudFJvd3MoKSx1ZT1mdW5jdGlvbihmbil7cmV0dXJuIE9sKHksZnVuY3Rpb24oTG4pe3JldHVybiBDLmhvdC5nZXREYXRhQXRDZWxsKGZuLExuLmNvbHVtbil9KX0s''@;'; put 'put ''X2U9MDtfZTx0aGlzLmdldE51bWJlck9mUm93c1RvU29ydChaKTtfZSs9MSlJLnB1c2goW3RoaXMuaG90LnRvUGh5c2ljYWxSb3coX2UpXS5jb25jYXQodWUoX2UpKSk7dmFyIEJlPU9sKEksZnVuY3Rpb24oJHQpe3JldHVybiAkdFswXX0pOyFmdW5jdGlvbiBFMHQoZCxnKXtmb3IodmFyIGg9''@;'; put 'put ''QjB0KGcpLHY9YXJndW1lbnRzLmxlbmd0aCx5PW5ldyBBcnJheSh2PjI/di0yOjApLEM9MjtDPHY7QysrKXlbQy0yXT1hcmd1bWVudHNbQ107ZzhlKGQsaC5hcHBseSh2b2lkIDAseSkpfShJLHRoaXMucGx1Z2luS2V5LE9sKHksZnVuY3Rpb24oJHQpe3JldHVybiAkdC5zb3J0T3JkZXJ9KSxP''@;'; put 'put ''bCh5LGZ1bmN0aW9uKCR0KXtyZXR1cm4gQy5nZXRGaXJzdENlbGxTZXR0aW5ncygkdC5jb2x1bW4pfSkpO2Zvcih2YXIgTmU9SS5sZW5ndGg7TmU8WjtOZSs9MSlJLnB1c2goW05lXS5jb25jYXQodWUoTmUpKSk7dmFyIEtlPU9sKEksZnVuY3Rpb24oJHQpe3JldHVybiAkdFswXX0pLHB0PW5l''@;'; put 'put ''dyBNYXAoT2woQmUsZnVuY3Rpb24oJHQsZm4pe3JldHVyblskdCxLZVtmbl1dfSkpLE90PU9sKHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldEluZGV4ZXNTZXF1ZW5jZSgpLGZ1bmN0aW9uKCR0KXtyZXR1cm4gcHQuaGFzKCR0KT9wdC5nZXQoJHQpOiR0fSk7dGhpcy5ob3Qucm93SW5kZXhN''@;'; put 'put ''YXBwZXIuc2V0SW5kZXhlc1NlcXVlbmNlKE90KX1lbHNlIHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZSh0aGlzLmluZGV4ZXNTZXF1ZW5jZUNhY2hlLmdldFZhbHVlcygpKX19LHtrZXk6ImxvYWRPclNvcnRCeVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbigpe3Zh''@;'; put 'put ''ciB5PXRoaXMuZ2V0QWxsU2F2ZWRTb3J0U2V0dGluZ3MoKTtpZih4bCh5KSl0aGlzLnNvcnRCeVNldHRpbmdzKHkpO2Vsc2V7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0aGlzLnBsdWdpbktleV07dGhpcy5zb3J0QnlTZXR0aW5ncyhDKX19fSx7a2V5OiJzb3J0QnlTZXR0aW5ncyIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7aWYoeGwoeSkpe3RoaXMuY29sdW1uU3RhdGVzTWFuYWdlci51cGRhdGVBbGxDb2x1bW5zUHJvcGVydGllcyh5KTt2YXIgQz15LmluaXRpYWxDb25maWc7KEFycmF5LmlzQXJyYXkoQyl8fHhsKEMpKSYmdGhpcy5zb3J0KEMpfWVsc2UgdGhpcy5ob3QucmVuZGVy''@;'; put 'put ''KCl9fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXFNZShDKTtpZighMSE9PWVFZSh5LEMpJiZudWxsIT09SSl7dmFyIFo9dGhpcy5nZXRGaXJzdENlbGxTZXR0aW5ncyh5KVt0aGlzLnBsdWdpbktleV07dGhpcy51cGRhdGVIZWFkZXJDbGFz''@;'; put 'put ''c2VzKEksdGhpcy5jb2x1bW5TdGF0ZXNNYW5hZ2VyLHksWi5pbmRpY2F0b3IsWi5oZWFkZXJBY3Rpb24pfX19LHtrZXk6InVwZGF0ZUhlYWRlckNsYXNzZXMiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHBsKHksQzB0KCkpLCExIT09dGhpcy5lbmFibGVkKXtmb3IodmFyIEM9YXJndW1lbnRzLmxl''@;'; put 'put ''bmd0aCxJPW5ldyBBcnJheShDPjE/Qy0xOjApLFo9MTtaPEM7WisrKUlbWi0xXT1hcmd1bWVudHNbWl07TzAoeSxfMHQuYXBwbHkodm9pZCAwLEkpKX19fSx7a2V5OiJvblVwZGF0ZVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5KXtYUyhCdihoLnByb3RvdHlwZSksIm9uVXBkYXRlU2V0dGlu''@;'; put 'put ''Z3MiLHRoaXMpLmNhbGwodGhpcyksbnVsbCE9PXRoaXMuY29sdW1uTWV0YUNhY2hlJiZ0aGlzLmNvbHVtbk1ldGFDYWNoZS5pbml0KHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE51bWJlck9mSW5kZXhlcygpKSxUbyh5W3RoaXMucGx1Z2luS2V5XSkmJnRoaXMuc29ydEJ5U2V0dGlu''@;'; put 'put ''Z3MoeVt0aGlzLnBsdWdpbktleV0pfX0se2tleToib25BZnRlckxvYWREYXRhIix2YWx1ZTpmdW5jdGlvbih5KXshMD09PXkmJnRoaXMuaG90LnZpZXcmJnRoaXMubG9hZE9yU29ydEJ5U2V0dGluZ3MoKX19LHtrZXk6Indhc0NsaWNrYWJsZUhlYWRlckNsaWNrZWQiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KHksQyl7cmV0dXJuIHRoaXMuZ2V0Rmlyc3RDZWxsU2V0dGluZ3MoQylbdGhpcy5wbHVnaW5LZXldLmhlYWRlckFjdGlvbiYmIlNQQU4iPT09eS50YXJnZXQubm9kZU5hbWV9fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7ITEhPT1wOGUo''@;'; put 'put ''Qy5yb3csQy5jb2wseSkmJnRoaXMud2FzQ2xpY2thYmxlSGVhZGVyQ2xpY2tlZCh5LEMuY29sKSYmdGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuaXNDdHJsUHJlc3NlZCgpJiYoWi5jb2x1bW49ITApfX0se2tleToib25BZnRlck9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''eSxDKXshMSE9PXA4ZShDLnJvdyxDLmNvbCx5KSYmdGhpcy53YXNDbGlja2FibGVIZWFkZXJDbGlja2VkKHksQy5jb2wpJiYodGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuaXNDdHJsUHJlc3NlZCgpJiYodGhpcy5ob3QuZGVzZWxlY3RDZWxsKCksdGhpcy5ob3Quc2VsZWN0Q29sdW1u''@;'; put 'put ''cyhDLmNvbCkpLHRoaXMuc29ydCh0aGlzLmdldENvbHVtbk5leHRDb25maWcoQy5jb2wpKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5O251bGw9PT0oeT10aGlzLmNvbHVtblN0YXRlc01hbmFnZXIpfHx2b2lkIDA9PT15fHx5LmRlc3Ryb3koKSxYUyhCdihoLnBy''@;'; put 'put ''b3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiB3OGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiA1MH19XSksaH0oWXMpO2Z1bmN0aW9uIGtFZShkLGcpe2Zv''@;'; put 'put ''cih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fUwoNDIxNDApO3ZhciBsb3Q9''@;'; put 'put ''ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIG9vdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnBsdWdpbj1nLHRoaXMuaG90PXRoaXMucGx1''@;'; put 'put ''Z2luLmhvdCx0aGlzLmVuZHBvaW50cz1bXSx0aGlzLnNldHRpbmdzPWgsdGhpcy5zZXR0aW5nc1R5cGU9ImFycmF5Iix0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsLHRoaXMuY2VsbHNUb1NldENhY2hlPVtdfXJldHVybiBmdW5jdGlvbiBhb3QoZCxnLGgpe2cmJmtFZShkLnByb3RvdHlwZSxn''@;'; put 'put ''KSxoJiZrRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0RW5kcG9pbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiJmdW5jdGlvbiI9PT10aGlzLnNldHRpbmdzVHlwZT90aGlzLmZpbGxNaXNzaW5nRW5kcG9p''@;'; put 'put ''bnREYXRhKHRoaXMuc2V0dGluZ3MpW2hdOnRoaXMuZW5kcG9pbnRzW2hdfX0se2tleToiZ2V0QWxsRW5kcG9pbnRzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PT10aGlzLnNldHRpbmdzVHlwZT90aGlzLmZpbGxNaXNzaW5nRW5kcG9pbnREYXRhKHRoaXMuc2V0dGluZ3Mp''@;'; put 'put ''OnRoaXMuZW5kcG9pbnRzfX0se2tleToiZmlsbE1pc3NpbmdFbmRwb2ludERhdGEiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnBhcnNlU2V0dGluZ3MoaC5jYWxsKHRoaXMpKX19LHtrZXk6InBhcnNlU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1bXSxD''@;'; put 'put ''PWg7aWYoQ3x8ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuc2V0dGluZ3MpcmV0dXJuIEN8fChDPXRoaXMuc2V0dGluZ3MpLFVyKEMsZnVuY3Rpb24oSSl7dmFyIFo9e307di5hc3NpZ25TZXR0aW5nKEksWiwicmFuZ2VzIixbWzAsdi5ob3QuY291bnRSb3dzKCktMV1dKSx2LmFzc2lnblNldHRp''@;'; put 'put ''bmcoSSxaLCJyZXZlcnNlZFJvd0Nvb3JkcyIsITEpLHYuYXNzaWduU2V0dGluZyhJLFosImRlc3RpbmF0aW9uUm93IixuZXcgRXJyb3IoIlxuICAgICAgICBZb3UgbXVzdCBwcm92aWRlIGEgZGVzdGluYXRpb24gcm93IGZvciB0aGUgQ29sdW1uIFN1bW1hcnkgcGx1Z2luIGluIG9yZGVyIHRv''@;'; put 'put ''IHdvcmsgcHJvcGVybHkhXG4gICAgICAiKSksdi5hc3NpZ25TZXR0aW5nKEksWiwiZGVzdGluYXRpb25Db2x1bW4iLG5ldyBFcnJvcigiXG4gICAgICAgIFlvdSBtdXN0IHByb3ZpZGUgYSBkZXN0aW5hdGlvbiBjb2x1bW4gZm9yIHRoZSBDb2x1bW4gU3VtbWFyeSBwbHVnaW4gaW4gb3JkZXIg''@;'; put 'put ''dG8gd29yayBwcm9wZXJseSFcbiAgICAgICIpKSx2LmFzc2lnblNldHRpbmcoSSxaLCJzb3VyY2VDb2x1bW4iLEkuZGVzdGluYXRpb25Db2x1bW4pLHYuYXNzaWduU2V0dGluZyhJLFosInR5cGUiLCJzdW0iKSx2LmFzc2lnblNldHRpbmcoSSxaLCJmb3JjZU51bWVyaWMiLCExKSx2LmFzc2ln''@;'; put 'put ''blNldHRpbmcoSSxaLCJzdXBwcmVzc0RhdGFUeXBlRXJyb3JzIiwhMCksdi5hc3NpZ25TZXR0aW5nKEksWiwic3VwcHJlc3NEYXRhVHlwZUVycm9ycyIsITApLHYuYXNzaWduU2V0dGluZyhJLFosImN1c3RvbUZ1bmN0aW9uIixudWxsKSx2LmFzc2lnblNldHRpbmcoSSxaLCJyZWFkT25seSIs''@;'; put 'put ''ITApLHYuYXNzaWduU2V0dGluZyhJLFosInJvdW5kRmxvYXQiLCExKSx5LnB1c2goWil9KSx5O3RoaXMuc2V0dGluZ3NUeXBlPSJmdW5jdGlvbiJ9fSx7a2V5OiJhc3NpZ25TZXR0aW5nIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXtpZigicmFuZ2VzIiE9PXl8fHZvaWQgMCE9PWhbeV0pe2lm''@;'; put 'put ''KCJyYW5nZXMiIT09eXx8MCE9PWhbeV0ubGVuZ3RoKWlmKHZvaWQgMD09PWhbeV0pe2lmKEMgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBDO3ZbeV09Q31lbHNlIHZbeV09ImRlc3RpbmF0aW9uUm93Ij09PXkmJnYucmV2ZXJzZWRSb3dDb29yZHM/dGhpcy5ob3QuY291bnRSb3dzKCktaFt5XS0x''@;'; put 'put ''OmhbeV19ZWxzZSB2W3ldPUN9fSx7a2V5OiJyZXNldFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe2lmKCJmdW5jdGlvbiI9PT10aGlzLnNldHRpbmdzVHlwZSl7dmFyIEM9aC5pbmRleE9mKCJyb3ciKT4tMT8icm93IjoiY29sIixJPXRoaXMu''@;'; put 'put ''Z2V0QWxsRW5kcG9pbnRzKCk7VXIoSSxmdW5jdGlvbihaKXsicm93Ij09PUMmJlouZGVzdGluYXRpb25Sb3c+PXYmJigiaW5zZXJ0X3JvdyI9PT1oP1ouYWx0ZXJSb3dPZmZzZXQ9eToicmVtb3ZlX3JvdyI9PT1oJiYoWi5hbHRlclJvd09mZnNldD0tMSp5KSksImNvbCI9PT1DJiZaLmRlc3Rp''@;'; put 'put ''bmF0aW9uQ29sdW1uPj12JiYoImluc2VydF9jb2wiPT09aD9aLmFsdGVyQ29sdW1uT2Zmc2V0PXk6InJlbW92ZV9jb2wiPT09aCYmKFouYWx0ZXJDb2x1bW5PZmZzZXQ9LTEqeSkpfSksdGhpcy5yZXNldEFsbEVuZHBvaW50cyhJLCExKX19fSx7a2V5OiJyZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1''@;'; put 'put ''cmVBbHRlcmF0aW9uIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDLEkpe3ZhciBaPXRoaXMsdWU9IShhcmd1bWVudHMubGVuZ3RoPjUmJnZvaWQgMCE9PWFyZ3VtZW50c1s1XSl8fGFyZ3VtZW50c1s1XTtpZigiZnVuY3Rpb24iIT09dGhpcy5zZXR0aW5nc1R5cGUpe3ZhciBCZT1oLmluZGV4T2Yo''@;'; put 'put ''InJvdyIpPi0xPyJyb3ciOiJjb2wiLE5lPWguaW5kZXhPZigicmVtb3ZlIik+LTE/LTE6MSxLZT10aGlzLmdldEFsbEVuZHBvaW50cygpLHB0PTA9PT1oLmluZGV4T2YoIm1vdmVfcm93IiksT3Q9djtVcihLZSxmdW5jdGlvbigkdCl7InJvdyI9PT1CZSYmJHQuZGVzdGluYXRpb25Sb3c+PU90''@;'; put 'put ''JiYoJHQuYWx0ZXJSb3dPZmZzZXQ9TmUqeSksImNvbCI9PT1CZSYmJHQuZGVzdGluYXRpb25Db2x1bW4+PU90JiYoJHQuYWx0ZXJDb2x1bW5PZmZzZXQ9TmUqeSl9KSx0aGlzLnJlc2V0QWxsRW5kcG9pbnRzKEtlLCFwdCksVXIoS2UscHQ/ZnVuY3Rpb24oJHQpe1ouZXh0ZW5kRW5kcG9pbnRS''@;'; put 'put ''YW5nZXMoJHQsT3QsQ1swXSxDLmxlbmd0aCksWi5yZWNyZWF0ZVBoeXNpY2FsUmFuZ2VzKCR0KSxaLmNsZWFyT2Zmc2V0SW5mb3JtYXRpb24oJHQpfTpmdW5jdGlvbigkdCl7Wi5zaGlmdEVuZHBvaW50Q29vcmRpbmF0ZXMoJHQsT3QpfSksdWUmJnRoaXMucmVmcmVzaEFsbEVuZHBvaW50cygp''@;'; put 'put ''fWVsc2V7dmFyIF9lPWZ1bmN0aW9uICR0KCl7cmV0dXJuIFouaG90LnJlbW92ZUhvb2soImJlZm9yZVZpZXdSZW5kZXIiLCR0KSxaLnJlZnJlc2hBbGxFbmRwb2ludHMoKX07dGhpcy5ob3QuYWRkSG9va09uY2UoImJlZm9yZVZpZXdSZW5kZXIiLF9lKX19fSx7a2V5OiJjbGVhck9mZnNldElu''@;'; put 'put ''Zm9ybWF0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXtoLmFsdGVyUm93T2Zmc2V0PXZvaWQgMCxoLmFsdGVyQ29sdW1uT2Zmc2V0PXZvaWQgMH19LHtrZXk6ImV4dGVuZEVuZHBvaW50UmFuZ2VzIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXtVcihoLnJhbmdlcyxmdW5jdGlvbihJKXtJWzFdJiYo''@;'; put 'put ''dj49SVswXSYmdjw9SVsxXT95PklbMV0/SVsxXSs9Qzp5PElbMF0mJihJWzBdLT1DKTp5Pj1JWzBdJiZ5PD1JWzFdJiYoSVsxXS09Qyx2PD1JWzBdJiYoSVswXSs9MSxJWzFdKz0xKSkpfSl9fSx7a2V5OiJyZWNyZWF0ZVBoeXNpY2FsUmFuZ2VzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10''@;'; put 'put ''aGlzLEM9W10sST1bXTtVcihoLnJhbmdlcyxmdW5jdGlvbihaKXt2YXIgdWU9W107aWYoWlsxXSlmb3IodmFyIF9lPVpbMF07X2U8PVpbMV07X2UrKyl1ZS5wdXNoKHYuaG90LnRvUGh5c2ljYWxSb3coX2UpKTtlbHNlIHVlLnB1c2godi5ob3QudG9QaHlzaWNhbFJvdyhaWzBdKSk7SS5wdXNo''@;'; put 'put ''KHVlKX0pLFVyKEksZnVuY3Rpb24oWil7dmFyIHVlPVtdO1VyKFosZnVuY3Rpb24oX2UsQmUpezA9PT1CZT91ZS5wdXNoKF9lKTpaW0JlXSE9PVpbQmUtMV0rMSYmKHVlLnB1c2goWltCZS0xXSksQy5wdXNoKHVlKSwodWU9W10pLnB1c2goX2UpKSxCZT09PVoubGVuZ3RoLTEmJih1ZS5wdXNo''@;'; put 'put ''KF9lKSxDLnB1c2godWUpKX0pfSksaC5yYW5nZXM9Q319LHtrZXk6InNoaWZ0RW5kcG9pbnRDb29yZGluYXRlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtoLmFsdGVyUm93T2Zmc2V0JiYwIT09aC5hbHRlclJvd09mZnNldD8oaC5kZXN0aW5hdGlvblJvdys9aC5hbHRlclJvd09mZnNldHx8MCxV''@;'; put 'put ''cihoLnJhbmdlcyxmdW5jdGlvbih5KXtVcih5LGZ1bmN0aW9uKEMsSSl7Qz49diYmKHlbSV0rPWguYWx0ZXJSb3dPZmZzZXR8fDApfSl9KSk6aC5hbHRlckNvbHVtbk9mZnNldCYmMCE9PWguYWx0ZXJDb2x1bW5PZmZzZXQmJihoLmRlc3RpbmF0aW9uQ29sdW1uKz1oLmFsdGVyQ29sdW1uT2Zm''@;'; put 'put ''c2V0fHwwLGguc291cmNlQ29sdW1uKz1oLmFsdGVyQ29sdW1uT2Zmc2V0fHwwKX19LHtrZXk6InJlc2V0QWxsRW5kcG9pbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5n''@;'; put 'put ''ZXRBbGxFbmRwb2ludHMoKSx5PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sQz12LnNvbWUoZnVuY3Rpb24oSSl7dmFyIHVlPUkuYWx0ZXJDb2x1bW5PZmZzZXR8fDA7cmV0dXJuIEkuZGVzdGluYXRpb25Sb3crKEkuYWx0ZXJSb3dP''@;'; put 'put ''ZmZzZXR8fDApPj1oLmhvdC5jb3VudFJvd3MoKXx8SS5kZXN0aW5hdGlvbkNvbHVtbit1ZT49aC5ob3QuY291bnRDb2xzKCl9KTtDfHwodGhpcy5jZWxsc1RvU2V0Q2FjaGU9W10sVXIodixmdW5jdGlvbihJKXtoLnJlc2V0RW5kcG9pbnRWYWx1ZShJLHkpfSksdGhpcy5ob3Quc2V0RGF0YUF0''@;'; put 'put ''Q2VsbCh0aGlzLmNlbGxzVG9TZXRDYWNoZSwiQ29sdW1uU3VtbWFyeS5yZXNldCIpLHRoaXMuY2VsbHNUb1NldENhY2hlPVtdKX19LHtrZXk6InJlZnJlc2hBbGxFbmRwb2ludHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXSxVcih0aGlzLmdl''@;'; put 'put ''dEFsbEVuZHBvaW50cygpLGZ1bmN0aW9uKHYpe2guY3VycmVudEVuZHBvaW50PXYsaC5wbHVnaW4uY2FsY3VsYXRlKHYpLGguc2V0RW5kcG9pbnRWYWx1ZSh2LCJpbml0Iil9KSx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsLHRoaXMuaG90LnNldERhdGFBdENlbGwodGhpcy5jZWxsc1RvU2V0''@;'; put 'put ''Q2FjaGUsIkNvbHVtblN1bW1hcnkucmVzZXQiKSx0aGlzLmNlbGxzVG9TZXRDYWNoZT1bXX19LHtrZXk6InJlZnJlc2hDaGFuZ2VkRW5kcG9pbnRzIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLHk9W107dGhpcy5jZWxsc1RvU2V0Q2FjaGU9W10sVXIoaCxmdW5jdGlvbihDLEksWil7''@;'; put 'put ''IiIuY29uY2F0KENbMl18fCIiKSE9PSIiLmNvbmNhdChDWzNdKSYmVXIodi5nZXRBbGxFbmRwb2ludHMoKSxmdW5jdGlvbih1ZSxfZSl7di5ob3QucHJvcFRvQ29sKFpbSV1bMV0pPT09dWUuc291cmNlQ29sdW1uJiYtMT09PXkuaW5kZXhPZihfZSkmJnkucHVzaChfZSl9KX0pLFVyKHksZnVu''@;'; put 'put ''Y3Rpb24oQyl7di5yZWZyZXNoRW5kcG9pbnQodi5nZXRFbmRwb2ludChDKSl9KSx0aGlzLmhvdC5zZXREYXRhQXRDZWxsKHRoaXMuY2VsbHNUb1NldENhY2hlLCJDb2x1bW5TdW1tYXJ5LnJlc2V0IiksdGhpcy5jZWxsc1RvU2V0Q2FjaGU9W119fSx7a2V5OiJyZWZyZXNoRW5kcG9pbnQiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgpe3RoaXMuY3VycmVudEVuZHBvaW50PWgsdGhpcy5wbHVnaW4uY2FsY3VsYXRlKGgpLHRoaXMuc2V0RW5kcG9pbnRWYWx1ZShoKSx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsfX0se2tleToicmVzZXRFbmRwb2ludFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIg''@;'; put 'put ''dj0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdLHk9aC5hbHRlclJvd09mZnNldHx8MCxDPWguYWx0ZXJDb2x1bW5PZmZzZXR8fDAsST1bdGhpcy5ob3QudG9WaXN1YWxSb3coaC5kZXN0aW5hdGlvblJvdyksdGhpcy5ob3QudG9WaXN1''@;'; put 'put ''YWxDb2x1bW4oaC5kZXN0aW5hdGlvbkNvbHVtbildLFo9SVswXSx1ZT1JWzFdO2lmKG51bGwhPT11ZSYmbnVsbCE9PVope3ZhciBfZT10aGlzLmhvdC5nZXRDZWxsTWV0YShaLHVlKTtfZS5yZWFkT25seT0hMSxfZS5jbGFzc05hbWU9IiJ9dGhpcy5jZWxsc1RvU2V0Q2FjaGUucHVzaChbdGhp''@;'; put 'put ''cy5ob3QudG9WaXN1YWxSb3coaC5kZXN0aW5hdGlvblJvdysodj95OjApKSx0aGlzLmhvdC50b1Zpc3VhbENvbHVtbihoLmRlc3RpbmF0aW9uQ29sdW1uKyh2P0M6MCkpLCIiXSl9fSx7a2V5OiJzZXRFbmRwb2ludFZhbHVlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWFyZ3VtZW50cy5s''@;'; put 'put ''ZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdJiZhcmd1bWVudHNbMl0sQz0tMSpoLmFsdGVyUm93T2Zmc2V0fHwwLEk9LTEqaC5hbHRlckNvbHVtbk9mZnNldHx8MCxaPXRoaXMuaG90LnRvVmlzdWFsUm93KGguZGVzdGluYXRpb25Sb3cpO2lmKGguZGVzdGluYXRpb25Sb3c+PXRoaXMu''@;'; put 'put ''aG90LmNvdW50Um93cygpfHxoLmRlc3RpbmF0aW9uQ29sdW1uPj10aGlzLmhvdC5jb3VudENvbHMoKSl0aGlzLnRocm93T3V0T2ZCb3VuZHNXYXJuaW5nKCk7ZWxzZXt2YXIgdWU9dGhpcy5ob3QudG9WaXN1YWxSb3coaC5kZXN0aW5hdGlvblJvdytDKTtpZihudWxsIT09dWUpe3ZhciBfZT10''@;'; put 'put ''aGlzLmhvdC5nZXRDZWxsTWV0YSh1ZSxoLmRlc3RpbmF0aW9uQ29sdW1uK0kpOygiaW5pdCI9PT12fHxfZS5yZWFkT25seSE9PWgucmVhZE9ubHkpJiYoX2UucmVhZE9ubHk9aC5yZWFkT25seSxfZS5jbGFzc05hbWU9ImNvbHVtblN1bW1hcnlSZXN1bHQiKX1oLnJvdW5kRmxvYXQmJiFpc05h''@;'; put 'put ''TihoLnJlc3VsdCkmJihoLnJlc3VsdD1oLnJlc3VsdC50b0ZpeGVkKGgucm91bmRGbG9hdCkpLHk/dGhpcy5ob3Quc2V0RGF0YUF0Q2VsbChaLGguZGVzdGluYXRpb25Db2x1bW4saC5yZXN1bHQsIkNvbHVtblN1bW1hcnkuc2V0Iik6dGhpcy5jZWxsc1RvU2V0Q2FjaGUucHVzaChbWixoLmRl''@;'; put 'put ''c3RpbmF0aW9uQ29sdW1uLGgucmVzdWx0XSksaC5hbHRlclJvd09mZnNldD12b2lkIDAsaC5hbHRlckNvbHVtbk9mZnNldD12b2lkIDB9fX0se2tleToidGhyb3dPdXRPZkJvdW5kc1dhcm5pbmciLHZhbHVlOmZ1bmN0aW9uKCl7bDEoIk9uZSBvZiB0aGUgQ29sdW1uIFN1bW1hcnkgcGx1Z2lu''@;'; put 'put ''cycgZGVzdGluYXRpb24gcG9pbnRzIHlvdSBwcm92aWRlZCBpcyBiZXlvbmQgdGhlIHRhYmxlIGJvdW5kYXJpZXMhIil9fV0pLGR9KCk7Y29uc3Qgc290PWxvdDtmdW5jdGlvbiBiOGUoZCl7cmV0dXJuKGI4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5''@;'; put 'put ''bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBT''@;'; put 'put ''RWU7ZnVuY3Rpb24gTUVlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2Lmtl''@;'; put 'put ''eSx2KX19ZnVuY3Rpb24gTHRlKCl7cmV0dXJuIEx0ZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9aG90KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv''@;'; put 'put ''cih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxMdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGhvdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09''@;'; put 'put ''KGQ9SE8oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gXzhlKGQsZyl7cmV0dXJuKF84ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGdvdChkLGcpe2lm''@;'; put 'put ''KGcmJigib2JqZWN0Ij09PWI4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24g''@;'; put 'put ''bW90KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gSE8oZCl7cmV0dXJuKEhPPU9iamVjdC5zZXRQcm90b3R5cGVP''@;'; put 'put ''Zj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEM4ZT0iY29sdW1uU3VtbWFyeSIseW90PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBkb3QoZCxnKXtpZigiZnVuY3Rpb24i''@;'; put 'put ''IT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJs''@;'; put 'put ''ZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmXzhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gcG90KGQpe3ZhciBnPWZ1bmN0aW9uIHZvdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVj''@;'; put 'put ''dHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1''@;'; put 'put ''bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUhPKGQpO2lmKGcpe3ZhciBDPUhPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVu''@;'; put 'put ''dHMpO3JldHVybiBnb3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIGNvdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcu''@;'; put 'put ''Y2FsbCh0aGlzLHYpKS5lbmRwb2ludHM9bnVsbCx5fXJldHVybiBmdW5jdGlvbiBmb3QoZCxnLGgpe2cmJk1FZShkLnByb3RvdHlwZSxnKSxoJiZNRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2''@;'; put 'put ''YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtDOGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5zZXR0aW5ncz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW0M4ZV0sdGhpcy5l''@;'; put 'put ''bmRwb2ludHM9bmV3IHNvdCh0aGlzLHRoaXMuc2V0dGluZ3MpLHRoaXMuYWRkSG9vaygiYWZ0ZXJJbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJJbml0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25B''@;'; put 'put ''ZnRlckNoYW5nZS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZVJvdyIsZnVuY3Rpb24oQyxJLFope3JldHVybiB5LmVuZHBvaW50cy5yZXNldFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbigiaW5zZXJ0X3JvdyIsQyxJLG51bGwsWil9KSx0aGlz''@;'; put 'put ''LmFkZEhvb2soImJlZm9yZUNyZWF0ZUNvbCIsZnVuY3Rpb24oQyxJLFope3JldHVybiB5LmVuZHBvaW50cy5yZXNldFNldHVwQmVmb3JlU3RydWN0dXJlQWx0ZXJhdGlvbigiaW5zZXJ0X2NvbCIsQyxJLG51bGwsWil9KSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbW92ZVJvdyIsZnVuY3Rpb24o''@;'; put 'put ''KXtmb3IodmFyIEMsST1hcmd1bWVudHMubGVuZ3RoLFo9bmV3IEFycmF5KEkpLHVlPTA7dWU8STt1ZSsrKVpbdWVdPWFyZ3VtZW50c1t1ZV07cmV0dXJuKEM9eS5lbmRwb2ludHMpLnJlc2V0U2V0dXBCZWZvcmVTdHJ1Y3R1cmVBbHRlcmF0aW9uLmFwcGx5KEMsWyJyZW1vdmVfcm93Il0uY29u''@;'; put 'put ''Y2F0KFopKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsWj1uZXcgQXJyYXkoSSksdWU9MDt1ZTxJO3VlKyspWlt1ZV09YXJndW1lbnRzW3VlXTtyZXR1cm4oQz15LmVuZHBvaW50cykucmVzZXRTZXR1cEJl''@;'; put 'put ''Zm9yZVN0cnVjdHVyZUFsdGVyYXRpb24uYXBwbHkoQyxbInJlbW92ZV9jb2wiXS5jb25jYXQoWikpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIsZnVuY3Rpb24oQyxJLFope3JldHVybiB5LmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJpbnNl''@;'; put 'put ''cnRfcm93IixDLEksbnVsbCxaKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVDb2wiLGZ1bmN0aW9uKEMsSSxaKXtyZXR1cm4geS5lbmRwb2ludHMucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0ZXJhdGlvbigiaW5zZXJ0X2NvbCIsQyxJLG51bGwsWil9KSx0aGlzLmFkZEhvb2soImFm''@;'; put 'put ''dGVyUmVtb3ZlUm93IixmdW5jdGlvbigpe2Zvcih2YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsWj1uZXcgQXJyYXkoSSksdWU9MDt1ZTxJO3VlKyspWlt1ZV09YXJndW1lbnRzW3VlXTtyZXR1cm4oQz15LmVuZHBvaW50cykucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0ZXJhdGlvbi5hcHBs''@;'; put 'put ''eShDLFsicmVtb3ZlX3JvdyJdLmNvbmNhdChaKSl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe2Zvcih2YXIgQyxJPWFyZ3VtZW50cy5sZW5ndGgsWj1uZXcgQXJyYXkoSSksdWU9MDt1ZTxJO3VlKyspWlt1ZV09YXJndW1lbnRzW3VlXTtyZXR1cm4oQz15LmVu''@;'; put 'put ''ZHBvaW50cykucmVzZXRTZXR1cEFmdGVyU3RydWN0dXJlQWx0ZXJhdGlvbi5hcHBseShDLFsicmVtb3ZlX2NvbCJdLmNvbmNhdChaKSl9KSx0aGlzLmFkZEhvb2soImFmdGVyUm93TW92ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyUm93TW92ZS5hcHBseSh5LGFyZ3VtZW50cyl9KSxM''@;'; put 'put ''dGUoSE8oaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVuZHBvaW50cz1udWxsLHRoaXMuc2V0dGluZ3M9bnVsbCx0aGlzLmN1cnJlbnRFbmRwb2ludD1udWxsfX0se2tleToi''@;'; put 'put ''Y2FsY3VsYXRlIix2YWx1ZTpmdW5jdGlvbih5KXtzd2l0Y2goeS50eXBlLnRvTG93ZXJDYXNlKCkpe2Nhc2Uic3VtIjp5LnJlc3VsdD10aGlzLmNhbGN1bGF0ZVN1bSh5KTticmVhaztjYXNlIm1pbiI6Y2FzZSJtYXgiOnkucmVzdWx0PXRoaXMuY2FsY3VsYXRlTWluTWF4KHkseS50eXBlKTti''@;'; put 'put ''cmVhaztjYXNlImNvdW50Ijp5LnJlc3VsdD10aGlzLmNvdW50RW50cmllcyh5KTticmVhaztjYXNlImF2ZXJhZ2UiOnkucmVzdWx0PXRoaXMuY2FsY3VsYXRlQXZlcmFnZSh5KTticmVhaztjYXNlImN1c3RvbSI6eS5yZXN1bHQ9eS5jdXN0b21GdW5jdGlvbi5jYWxsKHRoaXMseSl9fX0se2tl''@;'; put 'put ''eToiY2FsY3VsYXRlU3VtIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9MDtyZXR1cm4gR2woeS5yYW5nZXMsZnVuY3Rpb24oWil7SSs9Qy5nZXRQYXJ0aWFsU3VtKFoseS5zb3VyY2VDb2x1bW4pfSksSX19LHtrZXk6ImdldFBhcnRpYWxTdW0iLHZhbHVlOmZ1bmN0aW9uKHksQyl7''@;'; put 'put ''dmFyIEk9MCxaPXlbMV18fHlbMF0sdWU9bnVsbCxfZT0wO2Rve3VlPXRoaXMuZ2V0Q2VsbFZhbHVlKFosQyl8fDA7dmFyIEJlPSgiIi5jb25jYXQodWUpLnNwbGl0KCIuIilbMV18fFtdKS5sZW5ndGh8fDE7QmU+X2UmJihfZT1CZSksSSs9dWV8fDAsWi09MX13aGlsZShaPj15WzBdKTtyZXR1''@;'; put 'put ''cm4gTWF0aC5yb3VuZChJKk1hdGgucG93KDEwLF9lKSkvTWF0aC5wb3coMTAsX2UpfX0se2tleToiY2FsY3VsYXRlTWluTWF4Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMsWj1udWxsO3JldHVybiBHbCh5LnJhbmdlcyxmdW5jdGlvbih1ZSl7dmFyIF9lPUkuZ2V0UGFydGlhbE1p''@;'; put 'put ''bk1heCh1ZSx5LnNvdXJjZUNvbHVtbixDKTtpZihudWxsPT09WiYmbnVsbCE9PV9lJiYoWj1fZSksbnVsbCE9PV9lKXN3aXRjaChDKXtjYXNlIm1pbiI6Wj1NYXRoLm1pbihaLF9lKTticmVhaztjYXNlIm1heCI6Wj1NYXRoLm1heChaLF9lKX19KSxudWxsPT09Wj8iTm90IGVub3VnaCBkYXRh''@;'; put 'put ''IjpafX0se2tleToiZ2V0UGFydGlhbE1pbk1heCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBfZSxaPW51bGwsdWU9eVsxXXx8eVswXTtkb3tpZihfZT10aGlzLmdldENlbGxWYWx1ZSh1ZSxDKXx8bnVsbCxudWxsPT09WilaPV9lO2Vsc2UgaWYobnVsbCE9PV9lKXN3aXRjaChJKXtjYXNl''@;'; put 'put ''Im1pbiI6Wj1NYXRoLm1pbihaLF9lKTticmVhaztjYXNlIm1heCI6Wj1NYXRoLm1heChaLF9lKX11ZS09MX13aGlsZSh1ZT49eVswXSk7cmV0dXJuIFp9fSx7a2V5OiJjb3VudEVtcHR5Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBaPTAsdWU9eVsxXXx8eVswXTtkb3t0aGlzLmdldENlbGxW''@;'; put 'put ''YWx1ZSh1ZSxDKXx8KForPTEpLHVlLT0xfXdoaWxlKHVlPj15WzBdKTtyZXR1cm4gWn19LHtrZXk6ImNvdW50RW50cmllcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPTA7cmV0dXJuIEdsKHkucmFuZ2VzLGZ1bmN0aW9uKHVlKXt2YXIgX2U9dm9pZCAwPT09dWVbMV0/MTp1ZVsx''@;'; put 'put ''XS11ZVswXSsxLEJlPUMuY291bnRFbXB0eSh1ZSx5LnNvdXJjZUNvbHVtbik7SSs9X2UsSS09QmV9KSxJfX0se2tleToiY2FsY3VsYXRlQXZlcmFnZSIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuY2FsY3VsYXRlU3VtKHkpL3RoaXMuY291bnRFbnRyaWVzKHkpfX0se2tleToiZ2V0''@;'; put 'put ''Q2VsbFZhbHVlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuaG90LnRvVmlzdWFsUm93KHkpLFo9dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4oQyksdWU9dGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q2VsbCh5LEMpLF9lPSIiO2lmKG51bGwhPT1JJiZudWxsIT09WiYmKF9lPXRoaXMu''@;'; put 'put ''aG90LmdldENlbGxNZXRhKEksWikuY2xhc3NOYW1lfHwiIiksX2UuaW5kZXhPZigiY29sdW1uU3VtbWFyeVJlc3VsdCIpPi0xKXJldHVybiBudWxsO2lmKHRoaXMuZW5kcG9pbnRzLmN1cnJlbnRFbmRwb2ludC5mb3JjZU51bWVyaWMmJigic3RyaW5nIj09dHlwZW9mIHVlJiYodWU9dWUucmVw''@;'; put 'put ''bGFjZSgvLC8sIi4iKSksdWU9cGFyc2VGbG9hdCh1ZSkpLGlzTmFOKHVlKSYmIXRoaXMuZW5kcG9pbnRzLmN1cnJlbnRFbmRwb2ludC5zdXBwcmVzc0RhdGFUeXBlRXJyb3JzKXRocm93IG5ldyBFcnJvcihQMihTRWV8fChTRWU9ZnVuY3Rpb24gdW90KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xp''@;'; put 'put ''Y2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWyJDb2x1bW5TdW1tYXJ5IHBsdWdpbjogY2VsbCBhdCAoIiwiLCAiLCIpIGlzIG5vdCBpbiBhIFxuICAgICAgICAgIG51bWVyaWMgZm9ybWF0LiBD''@;'; put 'put ''YW5ub3QgZG8gdGhlIGNhbGN1bGF0aW9uLiJdLFsiQ29sdW1uU3VtbWFyeSBwbHVnaW46IGNlbGwgYXQgKCIsIiwgIiwiKSBpcyBub3QgaW4gYVxceDIwXG4gICAgICAgICAgbnVtZXJpYyBmb3JtYXQuIENhbm5vdCBkbyB0aGUgY2FsY3VsYXRpb24uIl0pKSx5LEMpKTtyZXR1cm4gdWV9fSx7''@;'; put 'put ''a2V5OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVuZHBvaW50cy5lbmRwb2ludHM9dGhpcy5lbmRwb2ludHMucGFyc2VTZXR0aW5ncygpLHRoaXMuZW5kcG9pbnRzLnJlZnJlc2hBbGxFbmRwb2ludHMoITApfX0se2tleToib25BZnRlckNoYW5nZSIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oeSxDKXt5JiYiQ29sdW1uU3VtbWFyeS5yZXNldCIhPT1DJiYiQ29sdW1uU3VtbWFyeS5zZXQiIT09QyYmImxvYWREYXRhIiE9PUMmJnRoaXMuZW5kcG9pbnRzLnJlZnJlc2hDaGFuZ2VkRW5kcG9pbnRzKHkpfX0se2tleToib25BZnRlclJvd01vdmUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7''@;'; put 'put ''dGhpcy5lbmRwb2ludHMucmVzZXRTZXR1cEJlZm9yZVN0cnVjdHVyZUFsdGVyYXRpb24oIm1vdmVfcm93Iix5WzBdLHkubGVuZ3RoLHksdGhpcy5wbHVnaW5OYW1lKSx0aGlzLmVuZHBvaW50cy5yZXNldFNldHVwQWZ0ZXJTdHJ1Y3R1cmVBbHRlcmF0aW9uKCJtb3ZlX3JvdyIsQyx5Lmxlbmd0''@;'; put 'put ''aCx5LHRoaXMucGx1Z2luTmFtZSl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBDOGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAyMjB9fV0pLGh9KFlzKTtmdW5jdGlvbiBFRWUoZCxnKXtmb3IodmFyIGg9MDtoPGcu''@;'; put 'put ''bGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgX290PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChn''@;'; put 'put ''LGgpeyhmdW5jdGlvbiB3b3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5yb290RG9jdW1lbnQ9Zyx0aGlzLmlzUnRsPWgsdGhpcy5jb250YWluZXI9bnVsbCx0''@;'; put 'put ''aGlzLmVkaXRvcj10aGlzLmNyZWF0ZUVkaXRvcigpLHRoaXMuZWRpdG9yU3R5bGU9dGhpcy5lZGl0b3Iuc3R5bGUsdGhpcy5oaWRkZW49ITAsdGhpcy5oaWRlKCl9cmV0dXJuIGZ1bmN0aW9uIGJvdChkLGcsaCl7ZyYmRUVlKGQucHJvdG90eXBlLGcpLGgmJkVFZShkLGgpLE9iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLmVkaXRvclN0eWxlLmxlZnQ9IiIuY29uY2F0KGgsInB4IiksdGhpcy5lZGl0b3JTdHlsZS50b3A9IiIuY29uY2F0KHYsInB4Iil9fSx7''@;'; put 'put ''a2V5OiJzZXRTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe2lmKGgmJnYpe3ZhciB5PXRoaXMuZ2V0SW5wdXRFbGVtZW50KCk7eS5zdHlsZS53aWR0aD0iIi5jb25jYXQoaCwicHgiKSx5LnN0eWxlLmhlaWdodD0iIi5jb25jYXQodiwicHgiKX19fSx7a2V5OiJnZXRTaXplIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbigpe3JldHVybnt3aWR0aDpFMih0aGlzLmdldElucHV0RWxlbWVudCgpKSxoZWlnaHQ6RDEodGhpcy5nZXRJbnB1dEVsZW1lbnQoKSl9fX0se2tleToicmVzZXRTaXplIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuZ2V0SW5wdXRFbGVtZW50KCk7aC5zdHlsZS53aWR0aD0iIixo''@;'; put 'put ''LnN0eWxlLmhlaWdodD0iIn19LHtrZXk6InNldFJlYWRPbmx5U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMuZ2V0SW5wdXRFbGVtZW50KCkucmVhZE9ubHk9aH19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lZGl0b3JTdHlsZS5kaXNwbGF5PSJibG9jayIsdGhpcy5o''@;'; put 'put ''aWRkZW49ITF9fSx7a2V5OiJoaWRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGlkZGVufHwodGhpcy5lZGl0b3JTdHlsZS5kaXNwbGF5PSJub25lIiksdGhpcy5oaWRkZW49ITB9fSx7a2V5OiJpc1Zpc2libGUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuImJsb2NrIj09PXRoaXMuZWRpdG9y''@;'; put 'put ''U3R5bGUuZGlzcGxheX19LHtrZXk6InNldFZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiIix2PWh8fCIiO3RoaXMuZ2V0SW5wdXRFbGVtZW50KCkudmFsdWU9dn19LHtrZXk6ImdldFZh''@;'; put 'put ''bHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldElucHV0RWxlbWVudCgpLnZhbHVlfX0se2tleToiaXNGb2N1c2VkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3REb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dGhpcy5nZXRJbnB1dEVsZW1lbnQoKX19LHtrZXk6''@;'; put 'put ''ImZvY3VzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZ2V0SW5wdXRFbGVtZW50KCkuZm9jdXMoKX19LHtrZXk6ImNyZWF0ZUVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx2PXRoaXMucm9vdERvY3VtZW50LmNyZWF0''@;'; put 'put ''ZUVsZW1lbnQoInRleHRhcmVhIik7cmV0dXJuIGguc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5jb250YWluZXI9dGhpcy5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5jb250YWluZXIuc2V0QXR0cmlidXRlKCJkaXIiLHRoaXMuaXNSdGw/InJ0bCI6Imx0ciIpLE8w''@;'; put 'put ''KHRoaXMuY29udGFpbmVyLGQuQ0xBU1NfRURJVE9SX0NPTlRBSU5FUiksdGhpcy5yb290RG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lciksTzAoaCxkLkNMQVNTX0VESVRPUiksTzAodixkLkNMQVNTX0lOUFVUKSxoLmFwcGVuZENoaWxkKHYpLHRoaXMuY29udGFpbmVy''@;'; put 'put ''LmFwcGVuZENoaWxkKGgpLGh9fSx7a2V5OiJnZXRJbnB1dEVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRpdG9yLnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdChkLkNMQVNTX0lOUFVUKSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMu''@;'; put 'put ''Y29udGFpbmVyP3RoaXMuY29udGFpbmVyLnBhcmVudE5vZGU6bnVsbDt0aGlzLmVkaXRvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuZWRpdG9yKSx0aGlzLmVkaXRvcj1udWxsLHRoaXMuZWRpdG9yU3R5bGU9bnVsbCxoJiZoLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKX19XSxb''@;'; put 'put ''e2tleToiQ0xBU1NfRURJVE9SX0NPTlRBSU5FUiIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImh0Q29tbWVudHNDb250YWluZXIifX0se2tleToiQ0xBU1NfRURJVE9SIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4iaHRDb21tZW50cyJ9fSx7a2V5OiJDTEFTU19JTlBVVCIsZ2V0OmZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuImh0Q29tbWVudFRleHRBcmVhIn19LHtrZXk6IkNMQVNTX0NFTEwiLGdldDpmdW5jdGlvbigpe3JldHVybiJodENvbW1lbnRDZWxsIn19XSksZH0oKTtjb25zdCBDb3Q9X290O3ZhciBXbD0iLS0tLS0tLS0tIjtmdW5jdGlvbiBPdGUoZCl7cmV0dXJuIHRsKGQsImh0U2VwYXJhdG9y''@;'; put 'put ''Iil9ZnVuY3Rpb24gUnRlKGQpe3JldHVybiB0bChkLCJodERpc2FibGVkIil9ZnVuY3Rpb24gQnRlKGQpe3JldHVybiB0bChkLCJodFNlbGVjdGlvbkRpc2FibGVkIil9ZnVuY3Rpb24gS1MoZCl7dmFyIGc9ZC5nZXRTZWxlY3RlZCgpO3JldHVybiFnfHxnWzBdPDA/bnVsbDpnfWZ1bmN0aW9u''@;'; put 'put ''ICRTKGQsZyl7dmFyIGg9e307cmV0dXJuIFVyKGQsZnVuY3Rpb24odil7di5mb3JBbGwoZnVuY3Rpb24oeSxDKXt5Pj0wJiZDPj0wJiYoaFt5XXx8KGhbeV09W10pLGhbeV1bQ109Zyh5LEMpKX0pfSksaH1mdW5jdGlvbiBIdyhkLGcsaCx2LHkpe1VyKGQsZnVuY3Rpb24oQyl7Qy5mb3JBbGwo''@;'; put 'put ''ZnVuY3Rpb24oSSxaKXtJPj0wJiZaPj0wJiZmdW5jdGlvbiBUb3QoZCxnLGgsdix5LEMpe3ZhciBJPXkoZCxnKSxaPXY7SS5jbGFzc05hbWUmJihaPSJ2ZXJ0aWNhbCI9PT1oP2Z1bmN0aW9uIEVvdChkLGcpe2lmKC0xIT09ZC5pbmRleE9mKGcpKXJldHVybiBkO3ZhciBoPWQucmVwbGFjZSgi''@;'; put 'put ''aHRUb3AiLCIiKS5yZXBsYWNlKCJodE1pZGRsZSIsIiIpLnJlcGxhY2UoImh0Qm90dG9tIiwiIikucmVwbGFjZSgiICAiLCIiKTtyZXR1cm4iIi5jb25jYXQoaCwiICIpLmNvbmNhdChnKX0oSS5jbGFzc05hbWUsdik6ZnVuY3Rpb24geG90KGQsZyl7aWYoLTEhPT1kLmluZGV4T2YoZykpcmV0''@;'; put 'put ''dXJuIGQ7dmFyIGg9ZC5yZXBsYWNlKCJodExlZnQiLCIiKS5yZXBsYWNlKCJodENlbnRlciIsIiIpLnJlcGxhY2UoImh0UmlnaHQiLCIiKS5yZXBsYWNlKCJodEp1c3RpZnkiLCIiKS5yZXBsYWNlKCIgICIsIiIpO3JldHVybiIiLmNvbmNhdChoLCIgIikuY29uY2F0KGcpfShJLmNsYXNzTmFt''@;'; put 'put ''ZSx2KSksQyhkLGcsImNsYXNzTmFtZSIsWil9KEksWixnLGgsdix5KX0pfSl9ZnVuY3Rpb24gT2coZCxnKXt2YXIgaD0hMTtyZXR1cm4gQXJyYXkuaXNBcnJheShkKSYmVXIoZCxmdW5jdGlvbih2KXtyZXR1cm4gdi5mb3JBbGwoZnVuY3Rpb24oeSxDKXtpZih5Pj0wJiZDPj0wJiZnKHksQykp''@;'; put 'put ''cmV0dXJuIGg9ITAsITF9KSxofSksaH1mdW5jdGlvbiBQdihkKXtyZXR1cm4nPHNwYW4gY2xhc3M9InNlbGVjdGVkIj4nLmNvbmNhdChTdHJpbmcuZnJvbUNoYXJDb2RlKDEwMDAzKSwiPC9zcGFuPiIpLmNvbmNhdChkKX1mdW5jdGlvbiB4RWUoZCxnKXtmb3IodmFyIGg9ZC5zbGljZSgwKTsw''@;'; put 'put ''PGgubGVuZ3RoJiZoWzBdLm5hbWU9PT1nOyloLnNoaWZ0KCk7cmV0dXJuIGh9ZnVuY3Rpb24gRG90KGQsZyl7dmFyIGg9ZC5zbGljZSgwKTtyZXR1cm4gaC5yZXZlcnNlKCksKGg9eEVlKGgsZykpLnJldmVyc2UoKSxofWZ1bmN0aW9uIExvdChkKXt2YXIgZz1bXTtyZXR1cm4gVXIoZCxmdW5j''@;'; put 'put ''dGlvbihoLHYpe3Y+MD9nW2cubGVuZ3RoLTFdLm5hbWUhPT1oLm5hbWUmJmcucHVzaChoKTpnLnB1c2goaCl9KSxnfWZ1bmN0aW9uIFRFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJh''@;'; put 'put ''YmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBJRWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBSb3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; put 'put ''YW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy53YXNMYXN0QWN0aW9uU2hvdz0hMCx0aGlzLnNob3dEZWJvdW5jZWQ9bnVsbCx0aGlzLmhpZGluZ1RpbWVyPW51bGwsdGhpcy51cGRhdGVEZWxheShnKX1yZXR1cm4gZnVuY3Rpb24gQm90KGQsZyxoKXtn''@;'; put 'put ''JiZURWUoZC5wcm90b3R5cGUsZyksaCYmVEVlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImhpZGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLndhc0xhc3RBY3Rpb25TaG93PSExLHRoaXMuaGlkaW5n''@;'; put 'put ''VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpeyExPT09aC53YXNMYXN0QWN0aW9uU2hvdyYmaC5ydW5Mb2NhbEhvb2tzKCJoaWRlIil9LDI1MCl9fSx7a2V5OiJzaG93Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLndhc0xhc3RBY3Rpb25TaG93PSEwLHRoaXMuc2hvd0RlYm91bmNlZChoKX19''@;'; put 'put ''LHtrZXk6ImNhbmNlbEhpZGluZyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLndhc0xhc3RBY3Rpb25TaG93PSEwLGNsZWFyVGltZW91dCh0aGlzLmhpZGluZ1RpbWVyKSx0aGlzLmhpZGluZ1RpbWVyPW51bGx9fSx7a2V5OiJ1cGRhdGVEZWxheSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlz''@;'; put 'put ''LHY9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOjI1MDt0aGlzLnNob3dEZWJvdW5jZWQ9dzNlKGZ1bmN0aW9uKHkpe2gud2FzTGFzdEFjdGlvblNob3cmJmgucnVuTG9jYWxIb29rcygic2hvdyIseS5mcm9tLnJvdyx5LmZyb20uY29sKX0s''@;'; put 'put ''dil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xlYXJMb2NhbEhvb2tzKCl9fV0pLGR9KCk7QjIoSUVlLHVkKTtjb25zdCBIb3Q9SUVlO2Z1bmN0aW9uIGs4ZShkKXtyZXR1cm4oazhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2Yg''@;'; put 'put ''U3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVu''@;'; put 'put ''Y3Rpb24gUzhlKGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBERWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7''@;'; put 'put ''dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBxUygpe3JldHVybiBxUz0idW5kZWZpbmVkIiE9dHlwZW9m''@;'; put 'put ''IFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9am90KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9n''@;'; put 'put ''OnYpOkMudmFsdWV9fSxxUy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gam90KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1GdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBNOGUoZCxnKXtyZXR1cm4oTThlPU9i''@;'; put 'put ''amVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gR290KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09azhlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJu''@;'; put 'put ''IGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBMRWUoZCl9ZnVuY3Rpb24gTEVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9y''@;'; put 'put ''KCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBGdihkKXtyZXR1cm4oRnY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJu''@;'; put 'put ''IGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgRThlPSJjb21tZW50cyIsUHRlPW5ldyBXZWFrTWFwLFJnPSJjb21tZW50IixOTz0idmFsdWUiLEZ0ZT0icmVhZE9ubHkiLFVvdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gWm90KGQsZyl7aWYoImZ1bmN0aW9u''@;'; put 'put ''IiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFi''@;'; put 'put ''bGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJk04ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHpvdChkKXt2YXIgZz1mdW5jdGlvbiBXb3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxl''@;'; put 'put ''Y3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxm''@;'; put 'put ''dW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1GdihkKTtpZihnKXt2YXIgQz1Gdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1l''@;'; put 'put ''bnRzKTtyZXR1cm4gR290KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBOb3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1n''@;'; put 'put ''LmNhbGwodGhpcyx2KSkuZWRpdG9yPW51bGwseS5kaXNwbGF5U3dpdGNoPW51bGwseS5ldmVudE1hbmFnZXI9bnVsbCx5LnJhbmdlPXt9LHkucHJldmVudEVkaXRvckF1dG9Td2l0Y2g9ITEsUHRlLnNldChMRWUoeSkse3RlbXBFZGl0b3JEaW1lbnNpb25zOnt9LGNlbGxCZWxvd0N1cnNvcjpu''@;'; put 'put ''dWxsfSkseX1yZXR1cm4gZnVuY3Rpb24gVm90KGQsZyxoKXtnJiZERWUoZC5wcm90b3R5cGUsZyksaCYmREVlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4h''@;'; put 'put ''IXRoaXMuaG90LmdldFNldHRpbmdzKClbRThlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuZWRpdG9yfHwodGhpcy5lZGl0b3I9bmV3IENvdCh0aGlzLmhvdC5yb290RG9jdW1lbnQsdGhpcy5ob3QuaXNSdGwo''@;'; put 'put ''KSkpLHRoaXMuZXZlbnRNYW5hZ2VyfHwodGhpcy5ldmVudE1hbmFnZXI9bmV3IEwxKHRoaXMpKSx0aGlzLmRpc3BsYXlTd2l0Y2h8fCh0aGlzLmRpc3BsYXlTd2l0Y2g9bmV3IEhvdCh0aGlzLmdldERpc3BsYXlEZWxheVNldHRpbmcoKSkpLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVu''@;'; put 'put ''dURlZmF1bHRPcHRpb25zIixmdW5jdGlvbihDKXtyZXR1cm4geS5hZGRUb0NvbnRleHRNZW51KEMpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbmRlcmVyIixmdW5jdGlvbihDLEksWix1ZSxfZSxCZSl7cmV0dXJuIHkub25BZnRlclJlbmRlcmVyKEMsQmUpfSksdGhpcy5hZGRIb29rKCJhZnRl''@;'; put 'put ''clNjcm9sbEhvcml6b250YWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5oaWRlKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5oaWRlKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQmVnaW5FZGl0aW5nIixmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biB5LmhpZGUoKX0pLHRoaXMuZGlzcGxheVN3aXRjaC5hZGRMb2NhbEhvb2soImhpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkuaGlkZSgpfSksdGhpcy5kaXNwbGF5U3dpdGNoLmFkZExvY2FsSG9vaygic2hvdyIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5zaG93QXRDZWxsKEMsSSl9KSx0aGlz''@;'; put 'put ''LnJlZ2lzdGVyTGlzdGVuZXJzKCkscVMoRnYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCkscVMoRnYoaC5wcm90''@;'; put 'put ''b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy5kaXNwbGF5U3dpdGNoLnVwZGF0ZURlbGF5KHRoaXMuZ2V0RGlzcGxheURlbGF5U2V0dGluZygpKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7cVMoRnYoaC5wcm90b3R5cGUpLCJkaXNh''@;'; put 'put ''YmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToicmVnaXN0ZXJMaXN0ZW5lcnMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LnJvb3REb2N1bWVudDt0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlb3ZlciIsZnVuY3Rpb24o''@;'; put 'put ''SSl7cmV0dXJuIHkub25Nb3VzZU92ZXIoSSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNlZG93biIsZnVuY3Rpb24oSSl7cmV0dXJuIHkub25Nb3VzZURvd24oSSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEMsIm1vdXNldXAiLGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIHkub25Nb3VzZVVwKCl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHRoaXMuZWRpdG9yLmdldElucHV0RWxlbWVudCgpLCJibHVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uRWRpdG9yQmx1cigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZl''@;'; put 'put ''bnRMaXN0ZW5lcih0aGlzLmVkaXRvci5nZXRJbnB1dEVsZW1lbnQoKSwibW91c2Vkb3duIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbkVkaXRvck1vdXNlRG93bihJKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5lZGl0b3IuZ2V0SW5wdXRFbGVtZW50KCksIm1v''@;'; put 'put ''dXNldXAiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uRWRpdG9yTW91c2VVcChJKX0pfX0se2tleToic2V0UmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMucmFuZ2U9eX19LHtrZXk6ImNsZWFyUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yYW5nZT17fX19LHtrZXk6InRhcmdldElz''@;'; put 'put ''Q2VsbFdpdGhDb21tZW50Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1Ndih5LnRhcmdldCwiVEQiLCJUQk9EWSIpO3JldHVybiEhKEMmJnRsKEMsImh0Q29tbWVudENlbGwiKSYmTXYoQyxbdGhpcy5ob3Qucm9vdEVsZW1lbnRdKSl9fSx7a2V5OiJ0YXJnZXRJc0NvbW1lbnRUZXh0QXJlYSIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuZWRpdG9yLmdldElucHV0RWxlbWVudCgpPT09eS50YXJnZXR9fSx7a2V5OiJzZXRDb21tZW50Iix2YWx1ZTpmdW5jdGlvbih5KXtpZighdGhpcy5yYW5nZS5mcm9tKXRocm93IG5ldyBFcnJvcignQmVmb3JlIHVzaW5nIHRoaXMgbWV0aG9k''@;'; put 'put ''LCBmaXJzdCBzZXQgY2VsbCByYW5nZSAoaG90LmdldFBsdWdpbigiY29tbWVudCIpLnNldFJhbmdlKCkpJyk7dmFyIEM9dGhpcy5lZGl0b3IuZ2V0VmFsdWUoKSxJPSIiO251bGwhPXk/ST15Om51bGwhPUMmJihJPUMpLHRoaXMudXBkYXRlQ29tbWVudE1ldGEodGhpcy5yYW5nZS5mcm9tLnJv''@;'; put 'put ''dyx0aGlzLnJhbmdlLmZyb20uY29sLFM4ZSh7fSxOTyxJKSksdGhpcy5ob3QucmVuZGVyKCl9fSx7a2V5OiJzZXRDb21tZW50QXRDZWxsIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dGhpcy5zZXRSYW5nZSh7ZnJvbTp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LEMpfSksdGhpcy5zZXRD''@;'; put 'put ''b21tZW50KEkpfX0se2tleToicmVtb3ZlQ29tbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT0hKGFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdKXx8YXJndW1lbnRzWzBdO2lmKCF0aGlzLnJhbmdlLmZyb20pdGhyb3cgbmV3IEVycm9yKCdCZWZvcmUgdXNpbmcg''@;'; put 'put ''dGhpcyBtZXRob2QsIGZpcnN0IHNldCBjZWxsIHJhbmdlIChob3QuZ2V0UGx1Z2luKCJjb21tZW50Iikuc2V0UmFuZ2UoKSknKTt0aGlzLmhvdC5zZXRDZWxsTWV0YSh0aGlzLnJhbmdlLmZyb20ucm93LHRoaXMucmFuZ2UuZnJvbS5jb2wsUmcpLHkmJnRoaXMuaG90LnJlbmRlcigpLHRoaXMu''@;'; put 'put ''aGlkZSgpfX0se2tleToicmVtb3ZlQ29tbWVudEF0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdO3RoaXMuc2V0UmFuZ2Uoe2Zyb206dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29y''@;'; put 'put ''ZHMoeSxDKX0pLHRoaXMucmVtb3ZlQ29tbWVudChJKX19LHtrZXk6ImdldENvbW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0Q29tbWVudE1ldGEodGhpcy5yYW5nZS5mcm9tLnJvdyx0aGlzLnJhbmdlLmZyb20uY29sLE5PKX19LHtrZXk6ImdldENvbW1lbnRBdENlbGwi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHRoaXMuZ2V0Q29tbWVudE1ldGEoeSxDLE5PKX19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMucmFuZ2UuZnJvbSl0aHJvdyBuZXcgRXJyb3IoJ0JlZm9yZSB1c2luZyB0aGlzIG1ldGhvZCwgZmlyc3Qgc2V0IGNlbGwg''@;'; put 'put ''cmFuZ2UgKGhvdC5nZXRQbHVnaW4oImNvbW1lbnQiKS5zZXRSYW5nZSgpKScpO3ZhciB5PXRoaXMucmFuZ2UuZnJvbSxDPXkucm93LEk9eS5jb2w7aWYoQzwwfHxDPnRoaXMuaG90LmNvdW50U291cmNlUm93cygpLTF8fEk8MHx8ST50aGlzLmhvdC5jb3VudFNvdXJjZUNvbHMoKS0xKXJldHVy''@;'; put 'put ''biExO3ZhciBaPXRoaXMuaG90LmdldENlbGxNZXRhKHRoaXMucmFuZ2UuZnJvbS5yb3csdGhpcy5yYW5nZS5mcm9tLmNvbCk7cmV0dXJuIHRoaXMuZWRpdG9yLnNldFZhbHVlKFpbUmddP1pbUmddW05PXToiIiksdGhpcy5lZGl0b3Iuc2hvdygpLHRoaXMucmVmcmVzaEVkaXRvcighMCksITB9''@;'; put 'put ''fSx7a2V5OiJzaG93QXRDZWxsIix2YWx1ZTpmdW5jdGlvbih5LEMpe3JldHVybiB0aGlzLnNldFJhbmdlKHtmcm9tOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHksQyl9KSx0aGlzLnNob3coKX19LHtrZXk6ImhpZGUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lZGl0b3IuaGlkZSgpfX0s''@;'; put 'put ''e2tleToicmVmcmVzaEVkaXRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeSxDLEk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0mJmFyZ3VtZW50c1swXTtpZihJfHx0aGlzLnJhbmdlLmZyb20mJnRoaXMuZWRpdG9yLmlzVmlzaWJsZSgpKXt2YXIgWj10aGlzLmhv''@;'; put 'put ''dCx1ZT1aLnJvd0luZGV4TWFwcGVyLF9lPVouY29sdW1uSW5kZXhNYXBwZXIsQmU9dGhpcy5yYW5nZS5mcm9tLE5lPUJlLnJvdyxLZT1CZS5jb2wscHQ9dWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChOZSksT3Q9X2UuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChLZSksJHQ9''@;'; put 'put ''bnVsbD09PXB0O251bGw9PT1wdCYmKHB0PXVlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodWUuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KE5lLC0xKSkpLG51bGw9PT1PdCYmKE90PV9lLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoX2UuZ2V0TmVhcmVzdE5vdEhpZGRlbklu''@;'; put 'put ''ZGV4KEtlLC0xKSkpO3ZhciBmbj1udWxsPT09cHQsTG49bnVsbD09PU90O3B0PW51bGwhPT0oeT1wdCkmJnZvaWQgMCE9PXk/eTowLE90PW51bGwhPT0oQz1PdCkmJnZvaWQgMCE9PUM/QzowO3ZhciBpcj10aGlzLmhvdCxtcj1pci5yb290V2luZG93LFNyPWlyLnZpZXcuX3d0LHdyPVNyLnd0''@;'; put 'put ''VGFibGUsUXI9d3IuZ2V0Q2VsbCh7cm93OnB0LGNvbDpPdH0pLHlpPXRoaXMuZ2V0Q29tbWVudE1ldGEoTmUsS2UsInN0eWxlIik7eWk/dGhpcy5lZGl0b3Iuc2V0U2l6ZSh5aS53aWR0aCx5aS5oZWlnaHQpOnRoaXMuZWRpdG9yLnJlc2V0U2l6ZSgpO3ZhciBLaT1Mbj8wOndyLmdldFN0cmV0''@;'; put 'put ''Y2hlZENvbHVtbldpZHRoKE90KSxTbz0kdCYmIWZuP0QxKFFyKTowLFBvPVFyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLFNhPVBvLmxlZnQsSmE9UG8udG9wLGxhPVBvLndpZHRoLGFsPVBvLmhlaWdodCxScz10aGlzLmVkaXRvci5nZXRTaXplKCksSDA9UnMud2lkdGgscm89UnMuaGVpZ2h0''@;'; put 'put ''LGZvPXRoaXMuaG90LnJvb3RXaW5kb3csSWE9Zm8uaW5uZXJXaWR0aCxYbD1mby5pbm5lckhlaWdodCxGbj10aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LFpuPVNhK21yLnNjcm9sbFgrS2ksX3I9SmErbXIuc2Nyb2xsWStTbzt0aGlzLmhvdC5pc1J0bCgpJiYoWm4tPUgw''@;'; put 'put ''K0tpKSx0aGlzLmhvdC5pc0x0cigpJiZTYStsYStIMD5JYT9abj1TYSttci5zY3JvbGxYLUgwLTE6dGhpcy5ob3QuaXNSdGwoKSYmWm48LShGbi5zY3JvbGxXaWR0aC1Gbi5jbGllbnRXaWR0aCkmJihabj1TYSttci5zY3JvbGxYK0tpKzEpLEphK3JvPlhsJiYoX3ItPXJvLWFsKzEpLHRoaXMu''@;'; put 'put ''ZWRpdG9yLnNldFBvc2l0aW9uKFpuLF9yKSx0aGlzLmVkaXRvci5zZXRSZWFkT25seVN0YXRlKHRoaXMuZ2V0Q29tbWVudE1ldGEoTmUsS2UsRnRlKSl9fX0se2tleToiY2hlY2tTZWxlY3Rpb25Db21tZW50c0NvbnNpc3RlbmN5Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90Lmdl''@;'; put 'put ''dFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoIXkpcmV0dXJuITE7dmFyIEM9ITEsST15LmdldFRvcFN0YXJ0Q29ybmVyKCk7cmV0dXJuIHRoaXMuZ2V0Q29tbWVudE1ldGEoSS5yb3csSS5jb2wsTk8pJiYoQz0hMCksQ319LHtrZXk6InVwZGF0ZUNvbW1lbnRNZXRhIix2YWx1ZTpmdW5jdGlvbih5''@;'; put 'put ''LEMsSSl7dmFyIHVlLFo9dGhpcy5ob3QuZ2V0Q2VsbE1ldGEoeSxDKVtSZ107Wj9MWih1ZT1naChaKSxJKTp1ZT1JLHRoaXMuaG90LnNldENlbGxNZXRhKHksQyxSZyx1ZSl9fSx7a2V5OiJnZXRDb21tZW50TWV0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBaPXRoaXMuaG90LmdldENl''@;'; put 'put ''bGxNZXRhKHksQyk7aWYoWltSZ10pcmV0dXJuIFpbUmddW0ldfX0se2tleToib25Nb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMuaG90LnZpZXcmJnRoaXMuaG90LnZpZXcuX3d0JiYhdGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaCYmIXRoaXMudGFyZ2V0SXNDb21tZW50''@;'; put 'put ''VGV4dEFyZWEoeSkpe3ZhciBDPU12KHkudGFyZ2V0LCJURCIsIlRCT0RZIiksST1udWxsO0MmJihJPXRoaXMuaG90LmdldENvb3JkcyhDKSksKCFDfHx0aGlzLnJhbmdlLmZyb20mJkkmJih0aGlzLnJhbmdlLmZyb20ucm93IT09SS5yb3d8fHRoaXMucmFuZ2UuZnJvbS5jb2whPT1JLmNvbCkp''@;'; put 'put ''JiZ0aGlzLmhpZGUoKX19fSx7a2V5OiJvbk1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9UHRlLmdldCh0aGlzKSxJPXRoaXMuaG90LnJvb3REb2N1bWVudDtpZighKHRoaXMucHJldmVudEVkaXRvckF1dG9Td2l0Y2h8fHRoaXMuZWRpdG9yLmlzRm9jdXNlZCgpfHx0bCh5LnRh''@;'; put 'put ''cmdldCwid3RCb3JkZXIiKXx8Qy5jZWxsQmVsb3dDdXJzb3I9PT15LnRhcmdldCkmJnRoaXMuZWRpdG9yKWlmKEMuY2VsbEJlbG93Q3Vyc29yPUkuZWxlbWVudEZyb21Qb2ludCh5LmNsaWVudFgseS5jbGllbnRZKSx0aGlzLnRhcmdldElzQ2VsbFdpdGhDb21tZW50KHkpKXt2YXIgWj10aGlz''@;'; put 'put ''LmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHRoaXMuaG90LmdldENvb3Jkcyh5LnRhcmdldCkpO3RoaXMuZGlzcGxheVN3aXRjaC5zaG93KFopfWVsc2UgX3coeS50YXJnZXQsSSkmJiF0aGlzLnRhcmdldElzQ29tbWVudFRleHRBcmVhKHkpJiZ0aGlzLmRpc3BsYXlTd2l0Y2guaGlkZSgpfX0se2tl''@;'; put 'put ''eToib25Nb3VzZVVwIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucHJldmVudEVkaXRvckF1dG9Td2l0Y2g9ITF9fSx7a2V5OiJvbkFmdGVyUmVuZGVyZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Q1tSZ10mJkNbUmddW05PXSYmTzAoeSxDLmNvbW1lbnRlZENlbGxDbGFzc05hbWUpfX0se2tleToi''@;'; put 'put ''b25FZGl0b3JCbHVyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2V0Q29tbWVudCgpfX0se2tleToib25FZGl0b3JNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHkpe1B0ZS5nZXQodGhpcykudGVtcEVkaXRvckRpbWVuc2lvbnM9e3dpZHRoOkUyKHkudGFyZ2V0KSxoZWlnaHQ6RDEoeS50YXJn''@;'; put 'put ''ZXQpfX19LHtrZXk6Im9uRWRpdG9yTW91c2VVcCIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9UHRlLmdldCh0aGlzKSxJPUUyKHkudGFyZ2V0KSxaPUQxKHkudGFyZ2V0KTsoSSE9PUMudGVtcEVkaXRvckRpbWVuc2lvbnMud2lkdGgrMXx8WiE9PUMudGVtcEVkaXRvckRpbWVuc2lvbnMuaGVp''@;'; put 'put ''Z2h0KzIpJiZ0aGlzLnVwZGF0ZUNvbW1lbnRNZXRhKHRoaXMucmFuZ2UuZnJvbS5yb3csdGhpcy5yYW5nZS5mcm9tLmNvbCxTOGUoe30sInN0eWxlIix7d2lkdGg6SSxoZWlnaHQ6Wn0pKX19LHtrZXk6Im9uQ29udGV4dE1lbnVBZGRDb21tZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRo''@;'; put 'put ''aXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7dGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaD0hMCx0aGlzLmRpc3BsYXlTd2l0Y2guY2FuY2VsSGlkaW5nKCksdGhpcy5zZXRSYW5nZSh7ZnJvbTp5LmhpZ2hsaWdodH0pLHRoaXMuc2hvdygpLHRoaXMuaG90LmRlc2VsZWN0Q2VsbCgp''@;'; put 'put ''LHRoaXMuZWRpdG9yLmZvY3VzKCl9fSx7a2V5OiJvbkNvbnRleHRNZW51UmVtb3ZlQ29tbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTt0aGlzLnByZXZlbnRFZGl0b3JBdXRvU3dpdGNoPSEwLEMuZm9yQWxsKGZ1bmN0''@;'; put 'put ''aW9uKEksWil7ST49MCYmWj49MCYmeS5yZW1vdmVDb21tZW50QXRDZWxsKEksWiwhMSl9KSx0aGlzLmhvdC5yZW5kZXIoKX19LHtrZXk6Im9uQ29udGV4dE1lbnVNYWtlUmVhZE9ubHkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0''@;'; put 'put ''KCk7dGhpcy5wcmV2ZW50RWRpdG9yQXV0b1N3aXRjaD0hMCxDLmZvckFsbChmdW5jdGlvbihJLFope2lmKEk+PTAmJlo+PTApe3ZhciB1ZT0hIXkuZ2V0Q29tbWVudE1ldGEoSSxaLEZ0ZSk7eS51cGRhdGVDb21tZW50TWV0YShJLFosUzhlKHt9LEZ0ZSwhdWUpKX19KX19LHtrZXk6ImFkZFRv''@;'; put 'put ''Q29udGV4dE1lbnUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1mdW5jdGlvbigpe3JldHVybiBDLmhvdC5yb3dJbmRleE1hcHBlci5nZXRSZW5kZXJhYmxlSW5kZXhlc0xlbmd0aCgpPjAmJkMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3Ro''@;'; put 'put ''KCk+MH07eS5pdGVtcy5wdXNoKHtuYW1lOiItLS0tLS0tLS0ifSx7a2V5OiJjb21tZW50c0FkZEVkaXQiLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gQy5jaGVja1NlbGVjdGlvbkNvbW1lbnRzQ29uc2lzdGVuY3koKT9DLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKFo0ZSk6Qy5ob3QuZ2V0VHJh''@;'; put 'put ''bnNsYXRlZFBocmFzZShqNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3JldHVybiBDLm9uQ29udGV4dE1lbnVBZGRDb21tZW50KCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIUkoKXx8IShDLmhvdC5nZXRTZWxlY3RlZExhc3QoKSYmIUMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlD''@;'; put 'put ''b3JuZXIoKSl9fSx7a2V5OiJjb21tZW50c1JlbW92ZSIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoejRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkNvbnRleHRNZW51UmVtb3ZlQ29tbWVudCgpfSxkaXNhYmxlZDpmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiFJKCl8fCEoQy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCkmJiFDLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpfX0se2tleToiY29tbWVudHNSZWFkT25seSIsbmFtZTpmdW5jdGlvbigpe3ZhciB1ZT10aGlzLF9lPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShHNGUp''@;'; put 'put ''O3JldHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksZnVuY3Rpb24oTmUsS2Upe3ZhciBwdD11ZS5nZXRDZWxsTWV0YShOZSxLZSlbUmddO2lmKHB0JiYocHQ9cHRbRnRlXSkscHQpcmV0dXJuITB9KSYmKF9lPVB2KF9lKSksX2V9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IEMub25Db250ZXh0TWVudU1ha2VSZWFkT25seSgpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFJKCl8fCEoQy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCkmJiFDLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkmJkMuY2hlY2tTZWxlY3Rpb25Db21tZW50c0NvbnNpc3RlbmN5''@;'; put 'put ''KCkpfX0pfX0se2tleToiZ2V0RGlzcGxheURlbGF5U2V0dGluZyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW0U4ZV07aWYoeGwoeSkpcmV0dXJuIHkuZGlzcGxheURlbGF5fX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVkaXRv''@;'; put 'put ''ciYmdGhpcy5lZGl0b3IuZGVzdHJveSgpLHRoaXMuZGlzcGxheVN3aXRjaCYmdGhpcy5kaXNwbGF5U3dpdGNoLmRlc3Ryb3koKSxxUyhGdihoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBF''@;'; put 'put ''OGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiA2MH19XSksaH0oWXMpO2Z1bmN0aW9uIFJFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxl''@;'; put 'put ''PSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBYb3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiBRb3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5u''@;'; put 'put ''b3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmNvbW1hbmRzPXt9LHRoaXMuY29tbW9uQ2FsbGJhY2s9bnVsbH1yZXR1cm4gZnVuY3Rpb24gSm90KGQsZyxoKXtnJiZSRWUoZC5wcm90b3R5cGUsZyksaCYmUkVlKGQsaCksT2JqZWN0LmRl''@;'; put 'put ''ZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InJlZ2lzdGVyQ29tbWFuZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0aGlzLmNvbW1hbmRzW2hdPXZ9fSx7a2V5OiJzZXRDb21tb25DYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jb21tb25D''@;'; put 'put ''YWxsYmFjaz1ofX0se2tleToiZXhlY3V0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7Zm9yKHZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHk+MT95LTE6MCksST0xO0k8eTtJKyspQ1tJLTFdPWFyZ3VtZW50c1tJXTt2YXIgWj1oLnNwbGl0KCI6IiksdWU9WlswXSxfZT0y''@;'; put 'put ''PT09Wi5sZW5ndGg/WlsxXTpudWxsLEJlPXRoaXMuY29tbWFuZHNbdWVdO2lmKCFCZSl0aHJvdyBuZXcgRXJyb3IoIk1lbnUgY29tbWFuZCAnIi5jb25jYXQodWUsIicgbm90IGV4aXN0cy4iKSk7aWYoX2UmJkJlLnN1Ym1lbnUmJihCZT1Lb3QoX2UsQmUuc3VibWVudS5pdGVtcykpLCEwIT09''@;'; put 'put ''QmUuZGlzYWJsZWQmJigiZnVuY3Rpb24iIT10eXBlb2YgQmUuZGlzYWJsZWR8fCEwIT09QmUuZGlzYWJsZWQuY2FsbCh0aGlzLmhvdCkpJiYhbzEoQmUsInN1Ym1lbnUiKSl7dmFyIE5lPVtdOyJmdW5jdGlvbiI9PXR5cGVvZiBCZS5jYWxsYmFjayYmTmUucHVzaChCZS5jYWxsYmFjayksImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIHRoaXMuY29tbW9uQ2FsbGJhY2smJk5lLnB1c2godGhpcy5jb21tb25DYWxsYmFjayksQy51bnNoaWZ0KFouam9pbigiOiIpKSxVcihOZSxmdW5jdGlvbihLZSl7cmV0dXJuIEtlLmFwcGx5KHYuaG90LEMpfSl9fX1dKSxkfSgpO2Z1bmN0aW9uIEtvdChkLGcpe3Zh''@;'; put 'put ''ciBoO3JldHVybiBVcihnLGZ1bmN0aW9uKHYpe3ZhciB5PXYua2V5P3Yua2V5LnNwbGl0KCI6Iik6bnVsbDtpZihBcnJheS5pc0FycmF5KHkpJiZ5WzFdPT09ZClyZXR1cm4gaD12LCExfSksaH1jb25zdCBCRWU9WG90O3ZhciBQcD0iYWxpZ25tZW50IixIdGU9ImNsZWFyX2NvbHVtbiIsdno9''@;'; put 'put ''ImNvbF9sZWZ0IixBej0iY29sX3JpZ2h0Iix5ej0ibWFrZV9yZWFkX29ubHkiLE50ZT0icmVkbyI7ZnVuY3Rpb24gUEVlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9''@;'; put 'put ''dmFyIHd6PSJyZW1vdmVfY29sIjtmdW5jdGlvbiBGRWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn12YXIgczMsVnRlPSJyZW1vdmVfcm93IixqdGU9InJvd19hYm92''@;'; put 'put ''ZSIsWnRlPSJyb3dfYmVsb3ciLGJ6PSJub19pdGVtcyIsenRlPSJ1bmRvIjtmdW5jdGlvbiB5NChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9''@;'; put 'put ''dmFyIEhFZT1banRlLFp0ZSx2eixBeixIdGUsVnRlLHd6LHp0ZSxOdGUseXosUHAsV2wsYnpdLE5FZT0oeTQoczM9e30sV2wsZnVuY3Rpb24ga290KCl7cmV0dXJue25hbWU6V2x9fSkseTQoczMsYnosZnVuY3Rpb24gQWF0KCl7cmV0dXJue2tleTpieixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShrNGUpfSxkaXNhYmxlZDohMCxpc0NvbW1hbmQ6ITF9fSkseTQoczMsanRlLGZ1bmN0aW9uIG1hdCgpe3JldHVybntrZXk6anRlLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFM0ZSl9LGNhbGxiYWNrOmZ1''@;'; put 'put ''bmN0aW9uKGcsaCl7dmFyIHY9dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkseT0wO3Z8fCh5PWhbTWF0aC5tYXgoaC5sZW5ndGgtMSwwKV0uc3RhcnQucm93KSx0aGlzLmFsdGVyKCJpbnNlcnRfcm93Iix5LDEsIkNvbnRleHRNZW51LnJvd0Fib3ZlIiksdiYmdGhpcy5zZWxl''@;'; put 'put ''Y3RBbGwoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hS1ModGhpcyl8fCh0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKT8wPT09dGhpcy5jb3VudFJvd3MoKTp0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXx8dGhpcy5jb3VudFJvd3MoKT49''@;'; put 'put ''dGhpcy5nZXRTZXR0aW5ncygpLm1heFJvd3MpfSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93SW5zZXJ0Um93fX19KSx5NChzMyxadGUsZnVuY3Rpb24gdmF0KCl7cmV0dXJue2tleTpadGUsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRy''@;'; put 'put ''YW5zbGF0ZWRQaHJhc2UoTTRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oZyxoKXt2YXIgdj10aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSx5PTA7aWYodil5PXRoaXMuY291bnRSb3dzKCk7ZWxzZXt2YXIgQyxJPWhbTWF0aC5tYXgoaC5sZW5ndGgtMSwwKV0sWj1udWxsPT1JfHxu''@;'; put 'put ''dWxsPT09KEM9SS5lbmQpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnJvdzt5PVRvKFopP1orMTowfXRoaXMuYWx0ZXIoImluc2VydF9yb3ciLHksMSwiQ29udGV4dE1lbnUucm93QmVsb3ciKSx2JiZ0aGlzLnNlbGVjdEFsbCgpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFLUyh0aGlzKXx8''@;'; put 'put ''IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpJiYodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRoaXMuY291bnRSb3dzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhSb3dzKX0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0U2V0''@;'; put 'put ''dGluZ3MoKS5hbGxvd0luc2VydFJvd319fSkseTQoczMsdnosZnVuY3Rpb24gZWF0KCl7cmV0dXJue2tleTp2eixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShFNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMuc2VsZWN0aW9uLmlzU2Vs''@;'; put 'put ''ZWN0ZWRCeUNvcm5lcigpLGg9dGhpcy5pc1J0bCgpP3RoaXMuY291bnRDb2xzKCk6MDtpZighZyl7dmFyIHY9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKFRvKHYpKXt2YXIgQz12LmdldFRvcExlZnRDb3JuZXIoKS5jb2w7aD10aGlzLmlzUnRsKCk/QysxOkN9fXRoaXMuYWx0ZXIo''@;'; put 'put ''Imluc2VydF9jb2wiLGgsMSwiQ29udGV4dE1lbnUuY29sdW1uTGVmdCIpLGcmJnRoaXMuc2VsZWN0QWxsKCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCl8fCFLUyh0aGlzKXx8KHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRC''@;'; put 'put ''eUNvcm5lcigpPzA9PT10aGlzLmNvdW50Q29scygpOnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpfHx0aGlzLmNvdW50Q29scygpPj10aGlzLmdldFNldHRpbmdzKCkubWF4Q29scyl9LGhpZGRlbjpmdW5jdGlvbigpe3JldHVybiF0aGlzLmdldFNldHRpbmdzKCkuYWxs''@;'; put 'put ''b3dJbnNlcnRDb2x1bW59fX0pLHk0KHMzLEF6LGZ1bmN0aW9uIHRhdCgpe3JldHVybntrZXk6QXosbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoeDRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlD''@;'; put 'put ''b3JuZXIoKSxoPXRoaXMuaXNSdGwoKT8wOnRoaXMuY291bnRDb2xzKCk7aWYoIWcpe3ZhciB2PXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZihUbyh2KSl7dmFyIEM9di5nZXRUb3BSaWdodENvcm5lcigpLmNvbDtoPXRoaXMuaXNSdGwoKT9DOkMrMX19dGhpcy5hbHRlcigiaW5zZXJ0''@;'; put 'put ''X2NvbCIsaCwxLCJDb250ZXh0TWVudS5jb2x1bW5SaWdodCIpLGcmJnRoaXMuc2VsZWN0QWxsKCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCl8fCFLUyh0aGlzKXx8IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5l''@;'; put 'put ''cigpJiYodGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCl8fHRoaXMuY291bnRDb2xzKCk+PXRoaXMuZ2V0U2V0dGluZ3MoKS5tYXhDb2xzKX0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd0luc2VydENvbHVtbn19fSkseTQoczMs''@;'; put 'put ''SHRlLGZ1bmN0aW9uIHFvdCgpe3JldHVybntrZXk6SHRlLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFI0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKGcsaCl7dmFyIHY9aFswXS5zdGFydC5jb2wseT1oWzBdLmVuZC5jb2w7dGhpcy5jb3VudFJvd3MoKSYm''@;'; put 'put ''dGhpcy5wb3B1bGF0ZUZyb21BcnJheSgwLHYsW1tudWxsXV0sTWF0aC5tYXgoaFswXS5zdGFydC5yb3csaFswXS5lbmQucm93KSx5LCJDb250ZXh0TWVudS5jbGVhckNvbHVtbiIpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFLUyh0aGlzKXx8IXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0''@;'; put 'put ''ZWRCeUNvbHVtbkhlYWRlcigpfX19KSx5NChzMyxWdGUsZnVuY3Rpb24gZ2F0KCl7cmV0dXJue2tleTpWdGUsbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMuZ2V0U2VsZWN0ZWQoKSxoPTA7aWYoZylpZihnLmxlbmd0aD4xKWg9MTtlbHNle3ZhciB2PWZ1bmN0aW9uIGNhdChkLGcpe3JldHVy''@;'; put 'put ''biBmdW5jdGlvbiBwYXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGRhdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7''@;'; put 'put ''dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJl''@;'; put 'put ''dHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIGhhdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gRkVlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJP''@;'; put 'put ''YmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJl''@;'; put 'put ''dHVybiBGRWUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIGZhdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZl''@;'; put 'put ''IGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGdbMF0sMyk7dlswXS12WzJdIT0wJiYoaD0xKX1yZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFQ0ZSxoKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt0aGlzLmFsdGVyKCJyZW1vdmVfcm93IixmdW5jdGlvbiBiJGUoZCl7''@;'; put 'put ''dmFyIGc9Q08oZCk7aWYoMD09PWd8fDE9PT1nKXJldHVybltdO3ZhciBoPXV6KGcpLHY9bmV3IFNldDtyZXR1cm4gVXIoZCxmdW5jdGlvbihJKXt2YXIgdWU9aVNlKGgoSSksMyksQmU9dWVbMl0sTmU9TWF0aC5tYXgodWVbMF0sMCk7VXIoQXJyYXkuZnJvbShuZXcgQXJyYXkoQmUtTmUrMSks''@;'; put 'put ''ZnVuY3Rpb24ocHQsT3Qpe3JldHVybiBOZStPdH0pLGZ1bmN0aW9uKHB0KXt2LmhhcyhwdCl8fHYuYWRkKHB0KX0pfSksU3UoQXJyYXkuZnJvbSh2KS5zb3J0KGZ1bmN0aW9uKEksWil7cmV0dXJuIEktWn0pLGZ1bmN0aW9uKEksWix1ZSxfZSl7cmV0dXJuIDAhPT11ZSYmWj09PV9lW3VlLTFd''@;'; put 'put ''KzE/SVtJLmxlbmd0aC0xXVsxXSs9MTpJLnB1c2goW1osMV0pLEl9LFtdKX0odGhpcy5nZXRTZWxlY3RlZCgpKSwxLCJDb250ZXh0TWVudS5yZW1vdmVSb3ciKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtpZighS1ModGhpcykpcmV0dXJuITA7dmFyIGg9dGhpcy5jb3VudFJvd3MoKTtyZXR1cm4g''@;'; put 'put ''dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCk/MD09PWg6dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fDA9PT1ofSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRTZXR0aW5ncygpLmFsbG93UmVtb3ZlUm93fX19KSx5NChzMyx3eixm''@;'; put 'put ''dW5jdGlvbiB1YXQoKXtyZXR1cm57a2V5Ond6LG5hbWU6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmdldFNlbGVjdGVkKCksaD0wO2lmKGcpaWYoZy5sZW5ndGg+MSloPTE7ZWxzZXt2YXIgdj1mdW5jdGlvbiBpYXQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gc2F0KGQpe2lmKEFycmF5LmlzQXJyYXko''@;'; put 'put ''ZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBsYXQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWgu''@;'; put 'put ''Y2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJu''@;'; put 'put ''IHZ9fShkLGcpfHxmdW5jdGlvbiBhYXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFBFZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29u''@;'; put 'put ''c3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gUEVlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBvYXQo''@;'; put 'put ''KXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgp''@;'; put 'put ''fShnWzBdLDQpO3ZbMV0tdlszXSE9MCYmKGg9MSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShJNGUsaCl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy5hbHRlcigicmVtb3ZlX2NvbCIsZnVuY3Rpb24gdyRlKGQpe3ZhciBnPUNPKGQpO2lmKDA9PT1nfHwxPT09ZylyZXR1cm5b''@;'; put 'put ''XTt2YXIgaD11eihnKSx2PW5ldyBTZXQ7cmV0dXJuIFVyKGQsZnVuY3Rpb24oSSl7dmFyIHVlPWlTZShoKEkpLDQpLEJlPXVlWzNdLE5lPU1hdGgubWF4KHVlWzFdLDApO1VyKEFycmF5LmZyb20obmV3IEFycmF5KEJlLU5lKzEpLGZ1bmN0aW9uKHB0LE90KXtyZXR1cm4gTmUrT3R9KSxmdW5j''@;'; put 'put ''dGlvbihwdCl7di5oYXMocHQpfHx2LmFkZChwdCl9KX0pLFN1KEFycmF5LmZyb20odikuc29ydChmdW5jdGlvbihJLFope3JldHVybiBJLVp9KSxmdW5jdGlvbihJLFosdWUsX2Upe3JldHVybiAwIT09dWUmJlo9PT1fZVt1ZS0xXSsxP0lbSS5sZW5ndGgtMV1bMV0rPTE6SS5wdXNoKFtaLDFd''@;'; put 'put ''KSxJfSxbXSl9KHRoaXMuZ2V0U2VsZWN0ZWQoKSksbnVsbCwiQ29udGV4dE1lbnUucmVtb3ZlQ29sdW1uIil9LGRpc2FibGVkOmZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNDb2x1bW5Nb2RpZmljYXRpb25BbGxvd2VkKCkpcmV0dXJuITA7aWYoIUtTKHRoaXMpKXJldHVybiEwO3ZhciBoPXRoaXMu''@;'; put 'put ''Y291bnRDb2xzKCk7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpPzA9PT1oOnRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpfHwwPT09aH0saGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0U2V0dGluZ3MoKS5hbGxvd1JlbW92ZUNv''@;'; put 'put ''bHVtbn19fSkseTQoczMsenRlLGZ1bmN0aW9uIHlhdCgpe3JldHVybntrZXk6enRlLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEQ0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dGhpcy51bmRvKCl9LGhpZGRlbjpmdW5jdGlvbigpe3ZhciBnPXRoaXMu''@;'; put 'put ''Z2V0UGx1Z2luKCJ1bmRvUmVkbyIpO3JldHVybiFnfHwhZy5pc0VuYWJsZWQoKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5nZXRQbHVnaW4oInVuZG9SZWRvIikuaXNVbmRvQXZhaWxhYmxlKCl9fX0pLHk0KHMzLE50ZSxmdW5jdGlvbiByYXQoKXtyZXR1cm57a2V5Ok50ZSxu''@;'; put 'put ''YW1lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShMNGUpfSxjYWxsYmFjazpmdW5jdGlvbigpe3RoaXMucmVkbygpfSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmdldFBsdWdpbigidW5kb1JlZG8iKTtyZXR1cm4hZ3x8IWcuaXNFbmFibGVkKCl9LGRp''@;'; put 'put ''c2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMuZ2V0UGx1Z2luKCJ1bmRvUmVkbyIpLmlzUmVkb0F2YWlsYWJsZSgpfX19KSx5NChzMyx5eixmdW5jdGlvbiBuYXQoKXtyZXR1cm57a2V5Onl6LG5hbWU6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNl''@;'; put 'put ''KE80ZSk7cmV0dXJuIE9nKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKHksQyl7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoeSxDKS5yZWFkT25seX0pJiYoaD1QdihoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj1P''@;'; put 'put ''ZyhoLGZ1bmN0aW9uKHksQyl7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoeSxDKS5yZWFkT25seX0pO1VyKGgsZnVuY3Rpb24oeSl7eS5mb3JBbGwoZnVuY3Rpb24oQyxJKXtDPj0wJiZJPj0wJiZnLnNldENlbGxNZXRhKEMsSSwicmVhZE9ubHkiLCF2KX0pfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJs''@;'; put 'put ''ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hKCF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSYmMCE9PXRoaXMuY291bnRSb3dzKCkmJjAhPT10aGlzLmNvdW50Q29scygpJiZ0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSYmMCE9PXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLmxlbmd0aCl9''@;'; put 'put ''fX0pLHk0KHMzLFBwLGZ1bmN0aW9uICRvdCgpe3JldHVybntrZXk6UHAsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoVzRlKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuY291bnRSb3dzKCl8fDA9PT10aGlzLmNvdW50Q29scygp''@;'; put 'put ''fHwhKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpJiYhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCkpfSxzdWJtZW51OntpdGVtczpbe2tleToiIi5jb25jYXQoUHAsIjpsZWZ0IiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2Uo''@;'; put 'put ''WTRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodExlZnQiKSlyZXR1cm4hMH0pJiYoaD1QdihoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2''@;'; put 'put ''YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj0kUyhoLGZ1bmN0aW9uKEksWil7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxaKS5jbGFzc05hbWV9KSx5PSJob3Jpem9udGFsIixDPSJodExlZnQiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLHYsaCx5LEMp''@;'; put 'put ''LEh3KGgseSxDLGZ1bmN0aW9uKEksWil7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxaKX0sZnVuY3Rpb24oSSxaLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLFosdWUsX2UpfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtrZXk6IiIuY29uY2F0KFBwLCI6Y2VudGVyIiksbmFt''@;'; put 'put ''ZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoVTRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodENl''@;'; put 'put ''bnRlciIpKXJldHVybiEwfSkmJihoPVB2KGgpKSxofSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PSRTKGgsZnVuY3Rpb24oSSxaKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLFopLmNsYXNzTmFtZX0pLHk9Imhvcml6b250YWwiLEM9''@;'; put 'put ''Imh0Q2VudGVyIjt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50Iix2LGgseSxDKSxIdyhoLHksQyxmdW5jdGlvbihJLFope3JldHVybiBnLmdldENlbGxNZXRhKEksWil9LGZ1bmN0aW9uKEksWix1ZSxfZSl7cmV0dXJuIGcuc2V0Q2VsbE1ldGEoSSxaLHVlLF9lKX0pLHRoaXMu''@;'; put 'put ''cmVuZGVyKCl9LGRpc2FibGVkOiExfSx7a2V5OiIiLmNvbmNhdChQcCwiOnJpZ2h0IiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoUTRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1n''@;'; put 'put ''LmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodFJpZ2h0IikpcmV0dXJuITB9KSYmKGg9UHYoaCkpLGh9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLHY9JFMoaCxmdW5jdGlvbihJLFope3Jl''@;'; put 'put ''dHVybiBnLmdldENlbGxNZXRhKEksWikuY2xhc3NOYW1lfSkseT0iaG9yaXpvbnRhbCIsQz0iaHRSaWdodCI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsdixoLHksQyksSHcoaCx5LEMsZnVuY3Rpb24oSSxaKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLFopfSxmdW5jdGlv''@;'; put 'put ''bihJLFosdWUsX2Upe3JldHVybiBnLnNldENlbGxNZXRhKEksWix1ZSxfZSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleToiIi5jb25jYXQoUHAsIjpqdXN0aWZ5IiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoSjRlKTty''@;'; put 'put ''ZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1nLmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodEp1c3RpZnkiKSlyZXR1cm4hMH0pJiYoaD1QdihoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIg''@;'; put 'put ''Zz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj0kUyhoLGZ1bmN0aW9uKEksWil7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxaKS5jbGFzc05hbWV9KSx5PSJob3Jpem9udGFsIixDPSJodEp1c3RpZnkiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLHYsaCx5LEMp''@;'; put 'put ''LEh3KGgseSxDLGZ1bmN0aW9uKEksWil7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxaKX0sZnVuY3Rpb24oSSxaLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLFosdWUsX2UpfSksdGhpcy5yZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtuYW1lOldsfSx7a2V5OiIiLmNvbmNhdChQcCwiOnRv''@;'; put 'put ''cCIpLG5hbWU6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKFg0ZSk7cmV0dXJuIE9nKHRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKHksQyl7dmFyIEk9Zy5nZXRDZWxsTWV0YSh5LEMpLmNsYXNzTmFtZTtpZihJJiYtMSE9PUkuaW5kZXhP''@;'; put 'put ''ZigiaHRUb3AiKSlyZXR1cm4hMH0pJiYoaD1QdihoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgZz10aGlzLGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj0kUyhoLGZ1bmN0aW9uKEksWil7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxaKS5jbGFzc05hbWV9KSx5PSJ2ZXJ0aWNhbCIs''@;'; put 'put ''Qz0iaHRUb3AiO3RoaXMucnVuSG9va3MoImJlZm9yZUNlbGxBbGlnbm1lbnQiLHYsaCx5LEMpLEh3KGgseSxDLGZ1bmN0aW9uKEksWil7cmV0dXJuIGcuZ2V0Q2VsbE1ldGEoSSxaKX0sZnVuY3Rpb24oSSxaLHVlLF9lKXtyZXR1cm4gZy5zZXRDZWxsTWV0YShJLFosdWUsX2UpfSksdGhpcy5y''@;'; put 'put ''ZW5kZXIoKX0sZGlzYWJsZWQ6ITF9LHtrZXk6IiIuY29uY2F0KFBwLCI6bWlkZGxlIiksbmFtZTpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoSzRlKTtyZXR1cm4gT2codGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oeSxDKXt2YXIgST1n''@;'; put 'put ''LmdldENlbGxNZXRhKHksQykuY2xhc3NOYW1lO2lmKEkmJi0xIT09SS5pbmRleE9mKCJodE1pZGRsZSIpKXJldHVybiEwfSkmJihoPVB2KGgpKSxofSxjYWxsYmFjazpmdW5jdGlvbigpe3ZhciBnPXRoaXMsaD10aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PSRTKGgsZnVuY3Rpb24oSSxaKXty''@;'; put 'put ''ZXR1cm4gZy5nZXRDZWxsTWV0YShJLFopLmNsYXNzTmFtZX0pLHk9InZlcnRpY2FsIixDPSJodE1pZGRsZSI7dGhpcy5ydW5Ib29rcygiYmVmb3JlQ2VsbEFsaWdubWVudCIsdixoLHksQyksSHcoaCx5LEMsZnVuY3Rpb24oSSxaKXtyZXR1cm4gZy5nZXRDZWxsTWV0YShJLFopfSxmdW5jdGlv''@;'; put 'put ''bihJLFosdWUsX2Upe3JldHVybiBnLnNldENlbGxNZXRhKEksWix1ZSxfZSl9KSx0aGlzLnJlbmRlcigpfSxkaXNhYmxlZDohMX0se2tleToiIi5jb25jYXQoUHAsIjpib3R0b20iKSxuYW1lOmZ1bmN0aW9uKCl7dmFyIGc9dGhpcyxoPXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZSgkNGUpO3Jl''@;'; put 'put ''dHVybiBPZyh0aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSxmdW5jdGlvbih5LEMpe3ZhciBJPWcuZ2V0Q2VsbE1ldGEoeSxDKS5jbGFzc05hbWU7aWYoSSYmLTEhPT1JLmluZGV4T2YoImh0Qm90dG9tIikpcmV0dXJuITB9KSYmKGg9UHYoaCkpLGh9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGc9''@;'; put 'put ''dGhpcyxoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZSgpLHY9JFMoaCxmdW5jdGlvbihJLFope3JldHVybiBnLmdldENlbGxNZXRhKEksWikuY2xhc3NOYW1lfSkseT0idmVydGljYWwiLEM9Imh0Qm90dG9tIjt0aGlzLnJ1bkhvb2tzKCJiZWZvcmVDZWxsQWxpZ25tZW50Iix2LGgseSxDKSxIdyho''@;'; put 'put ''LHksQyxmdW5jdGlvbihJLFope3JldHVybiBnLmdldENlbGxNZXRhKEksWil9LGZ1bmN0aW9uKEksWix1ZSxfZSl7cmV0dXJuIGcuc2V0Q2VsbE1ldGEoSSxaLHVlLF9lKX0pLHRoaXMucmVuZGVyKCl9LGRpc2FibGVkOiExfV19fX0pLHMzKTtmdW5jdGlvbiBWRWUoKXt2YXIgZD17fTtyZXR1''@;'; put 'put ''cm4gR2woTkVlLGZ1bmN0aW9uKGcsaCl7ZFtoXT1nKCl9KSxkfWZ1bmN0aW9uIHdhdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGpFZShkLGcpe2Zvcih2YXIgaD0wO2g8''@;'; put 'put ''Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBfYXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBk''@;'; put 'put ''KGcpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpudWxsO3dhdCh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5wcmVkZWZpbmVkSXRlbXM9VkVlKCksdGhpcy5kZWZhdWx0T3JkZXJQYXR0ZXJuPWh9cmV0dXJuIGZ1bmN0aW9uIGJh''@;'; put 'put ''dChkLGcsaCl7ZyYmakVlKGQucHJvdG90eXBlLGcpLGgmJmpFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRQcmVkZWZpbmVkSXRlbXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT17fTt0aGlzLmRl''@;'; put 'put ''ZmF1bHRPcmRlclBhdHRlcm4ubGVuZ3RoPTAsR2woaCxmdW5jdGlvbihDLEkpe3ZhciBaPSIiO0MubmFtZT09PVdsPyh5W1dsXT1DLFo9V2wpOmlzTmFOKHBhcnNlSW50KEksMTApKT8oQy5rZXk9dm9pZCAwPT09Qy5rZXk/STpDLmtleSx5W0ldPUMsWj1DLmtleSk6KHlbQy5rZXldPUMsWj1D''@;'; put 'put ''LmtleSksdi5kZWZhdWx0T3JkZXJQYXR0ZXJuLnB1c2goWil9KSx0aGlzLnByZWRlZmluZWRJdGVtcz15fX0se2tleToiZ2V0SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGw7cmV0''@;'; put 'put ''dXJuIENhdChoLHRoaXMuZGVmYXVsdE9yZGVyUGF0dGVybix0aGlzLnByZWRlZmluZWRJdGVtcyl9fV0pLGR9KCk7ZnVuY3Rpb24gQ2F0KCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOm51bGwsZz1hcmd1bWVudHMubGVuZ3Ro''@;'; put 'put ''PjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10saD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06e30sdj1bXSx5PWQ7cmV0dXJuIHkmJnkuaXRlbXM/eT15Lml0ZW1zOkFycmF5LmlzQXJyYXkoeSl8fCh5PWcpLHhs''@;'; put 'put ''KHkpP0dsKHksZnVuY3Rpb24oQyxJKXt2YXIgWj1oWyJzdHJpbmciPT10eXBlb2YgQz9DOkldO1p8fChaPUMpLHhsKEMpP0kxKFosQyk6InN0cmluZyI9PXR5cGVvZiBaJiYoWj17bmFtZTpafSksdm9pZCAwPT09Wi5rZXkmJihaLmtleT1JKSx2LnB1c2goWil9KTpVcih5LGZ1bmN0aW9uKEMs''@;'; put 'put ''SSl7dmFyIFo9aFtDXTshWiYmSEVlLmluZGV4T2YoQyk+PTB8fChafHwoWj17bmFtZTpDLGtleToiIi5jb25jYXQoSSl9KSx4bChDKSYmSTEoWixDKSx2b2lkIDA9PT1aLmtleSYmKFoua2V5PUkpLHYucHVzaChaKSl9KSx2fWNvbnN0IFpFZT1fYXQ7ZnVuY3Rpb24gekVlKGQsZyl7Zm9yKHZh''@;'; put 'put ''ciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIE1hdD1mdW5jdGlvbigpe2Z1''@;'; put 'put ''bmN0aW9uIGQoZyxoKXshZnVuY3Rpb24ga2F0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZCk7dmFyIEMsSSxaLHVlLF9lLEJlLHY9Zk8oaCkseT14UyhoKTt0aGlzLnJvb3RX''@;'; put 'put ''aW5kb3c9aCx0aGlzLnR5cGU9dGhpcy5nZXRTb3VyY2VUeXBlKGcpLCJsaXRlcmFsIj09PXRoaXMudHlwZT8oQz1wYXJzZUludChnLnRvcCwxMCksWj1wYXJzZUludChnLmxlZnQsMTApLF9lPWcuaGVpZ2h0fHwwLEJlPWcud2lkdGh8fDAsST1DLHVlPVosQys9dixaKz15KToiZXZlbnQiPT09''@;'; put 'put ''dGhpcy50eXBlJiYoQz1wYXJzZUludChnLnBhZ2VZLDEwKSxaPXBhcnNlSW50KGcucGFnZVgsMTApLF9lPWcudGFyZ2V0LmNsaWVudEhlaWdodCxCZT1nLnRhcmdldC5jbGllbnRXaWR0aCxJPUMtdix1ZT1aLXkpLHRoaXMudG9wPUMsdGhpcy50b3BSZWxhdGl2ZT1JLHRoaXMubGVmdD1aLHRo''@;'; put 'put ''aXMubGVmdFJlbGF0aXZlPXVlLHRoaXMuc2Nyb2xsVG9wPXYsdGhpcy5zY3JvbGxMZWZ0PXksdGhpcy5jZWxsSGVpZ2h0PV9lLHRoaXMuY2VsbFdpZHRoPUJlfXJldHVybiBmdW5jdGlvbiBTYXQoZCxnLGgpe2cmJnpFZShkLnByb3RvdHlwZSxnKSxoJiZ6RWUoZCxoKSxPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0U291cmNlVHlwZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9ImxpdGVyYWwiO3JldHVybiBoIGluc3RhbmNlb2YgRXZlbnQmJih2PSJldmVudCIpLHZ9fSx7a2V5OiJmaXRzQWJvdmUiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKGgpe3JldHVybiB0aGlzLnRvcFJlbGF0aXZlPj1oLm9mZnNldEhlaWdodH19LHtrZXk6ImZpdHNCZWxvdyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnRoaXMucm9vdFdpbmRvdy5p''@;'; put 'put ''bm5lckhlaWdodDtyZXR1cm4gdGhpcy50b3BSZWxhdGl2ZStoLm9mZnNldEhlaWdodDw9dn19LHtrZXk6ImZpdHNPblJpZ2h0Iix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy5yb290V2lu''@;'; put 'put ''ZG93LmlubmVyV2lkdGg7cmV0dXJuIHRoaXMubGVmdFJlbGF0aXZlK3RoaXMuY2VsbFdpZHRoK2gub2Zmc2V0V2lkdGg8PXZ9fSx7a2V5OiJmaXRzT25MZWZ0Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5sZWZ0UmVsYXRpdmU+PWgub2Zmc2V0V2lkdGh9fV0pLGR9KCk7Y29uc3Qg''@;'; put 'put ''RWF0PU1hdDtmdW5jdGlvbiBHRWUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3du''@;'; put 'put ''UHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBXRWUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/R0Vl''@;'; put 'put ''KE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXt4YXQoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6R0VlKE9iamVjdChoKSkuZm9y''@;'; put 'put ''RWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiB4YXQoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVt''@;'; put 'put ''ZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIFlFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2''@;'; put 'put ''JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBKRWU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIFRhdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xh''@;'; put 'put ''c3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmhvdD1nLHRoaXMub3B0aW9ucz1ofHx7cGFyZW50Om51bGwsbmFtZTpudWxsLGNsYXNzTmFtZToiIixrZWVwSW5WaWV3cG9ydDohMCxzdGFuZGFsb25lOiExLG1pbldpZHRoOjIxNSxjb250YWluZXI6dGhpcy5ob3Qucm9vdERvY3Vt''@;'; put 'put ''ZW50LmRvY3VtZW50RWxlbWVudH0sdGhpcy5ldmVudE1hbmFnZXI9bmV3IEwxKHRoaXMpLHRoaXMuY29udGFpbmVyPXRoaXMuY3JlYXRlQ29udGFpbmVyKHRoaXMub3B0aW9ucy5uYW1lKSx0aGlzLmhvdE1lbnU9bnVsbCx0aGlzLmhvdFN1Yk1lbnVzPXt9LHRoaXMucGFyZW50TWVudT10aGlz''@;'; put 'put ''Lm9wdGlvbnMucGFyZW50fHxudWxsLHRoaXMubWVudUl0ZW1zPW51bGwsdGhpcy5vcmlnT3V0c2lkZUNsaWNrRGVzZWxlY3RzPW51bGwsdGhpcy5rZXlFdmVudD0hMSx0aGlzLm9mZnNldD17YWJvdmU6MCxiZWxvdzowLGxlZnQ6MCxyaWdodDowfSx0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNr''@;'; put 'put ''PW51bGwsdGhpcy5yZWdpc3RlckV2ZW50cygpfXJldHVybiBmdW5jdGlvbiBJYXQoZCxnLGgpe2cmJllFZShkLnByb3RvdHlwZSxnKSxoJiZZRWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToicmVnaXN0ZXJFdmVudHMi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMsdj10aGlzLmhvdC5yb290V2luZG93O3Y7KXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodi5kb2N1bWVudCwibW91c2Vkb3duIixmdW5jdGlvbih5KXtyZXR1cm4gaC5vbkRvY3VtZW50TW91c2VEb3duKHkpfSksdGhp''@;'; put 'put ''cy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih2LmRvY3VtZW50LCJjb250ZXh0bWVudSIsZnVuY3Rpb24oeSl7cmV0dXJuIGgub25Eb2N1bWVudENvbnRleHRNZW51KHkpfSksdj11M2Uodil9fSx7a2V5OiJzZXRNZW51SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMubWVudUl0''@;'; put 'put ''ZW1zPWh9fSx7a2V5OiJnZXRTZWxlY3RlZEl0ZW0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzU2VsZWN0ZWRJdGVtKCk/dGhpcy5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdyh0aGlzLmhvdE1lbnUuZ2V0U2VsZWN0ZWRMYXN0KClbMF0pOm51bGx9fSx7a2V5OiJoYXNTZWxl''@;'; put 'put ''Y3RlZEl0ZW0iLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpKX19LHtrZXk6InNldE9mZnNldCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/''@;'; put 'put ''YXJndW1lbnRzWzFdOjA7dGhpcy5vZmZzZXRbaF09dn19LHtrZXk6ImlzU3ViTWVudSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PXRoaXMucGFyZW50TWVudX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9y''@;'; put 'put ''ZU9wZW4iKSx0aGlzLmNvbnRhaW5lci5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIiksdGhpcy5jb250YWluZXIuc3R5bGUuZGlzcGxheT0iYmxvY2siO3ZhciB2PXczZShmdW5jdGlvbihwdCl7cmV0dXJuIGgub3BlblN1Yk1lbnUocHQpfSwzMDApLHk9dGhpcy5vcHRpb25zLm1pbldpZHRofHwy''@;'; put 'put ''MTUsQz0hMSxJPWc0KHRoaXMubWVudUl0ZW1zLGZ1bmN0aW9uKHB0KXtyZXR1cm4gcHQua2V5PT09YnomJihDPSEwKSxmdW5jdGlvbiBJb3QoZCxnKXtyZXR1cm4hZC5oaWRkZW58fCEoImZ1bmN0aW9uIj09dHlwZW9mIGQuaGlkZGVuJiZkLmhpZGRlbi5jYWxsKGcpKX0ocHQsaC5ob3QpfSk7''@;'; put 'put ''aWYoSS5sZW5ndGg8MSYmIUMpSS5wdXNoKFZFZSgpW2J6XSk7ZWxzZSBpZigwPT09SS5sZW5ndGgpcmV0dXJuO0k9ZnVuY3Rpb24gT290KGQpe3ZhciBnPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpXbCxoPWQuc2xpY2UoMCk7cmV0dXJu''@;'; put 'put ''IExvdChoPURvdChoPXhFZShoLGcpLGcpKX0oSSxXbCk7dmFyIFo9ITEsdWU9e2RhdGE6SSxjb2xIZWFkZXJzOiExLGF1dG9Db2x1bW5TaXplOiEwLGF1dG9XcmFwUm93OiExLG1vZGlmeUNvbFdpZHRoOmZ1bmN0aW9uKE90KXtyZXR1cm4gVG8oT3QpJiZPdDx5P3k6T3R9LGF1dG9Sb3dTaXpl''@;'; put 'put ''OiExLHJlYWRPbmx5OiEwLGVkaXRvcjohMSxjb3B5UGFzdGU6ITEsbWF4Q29sczoxLGNvbHVtbnM6W3tkYXRhOiJuYW1lIixyZW5kZXJlcjpmdW5jdGlvbihPdCwkdCxmbixMbixpcixtcil7cmV0dXJuIGgubWVudUl0ZW1SZW5kZXJlcihPdCwkdCxmbixMbixpcixtcil9fV0scmVuZGVyQWxs''@;'; put 'put ''Um93czohMCxmcmFnbWVudFNlbGVjdGlvbjohMSxvdXRzaWRlQ2xpY2tEZXNlbGVjdHM6ITEsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiYXJlYSIsbGF5b3V0RGlyZWN0aW9uOnRoaXMuaG90LmlzUnRsKCk/InJ0bCI6Imx0ciIsYWZ0ZXJPbkNlbGxNb3VzZU92ZXI6ZnVuY3Rpb24oT3QsJHQp''@;'; put 'put ''e2guaXNBbGxTdWJNZW51c0Nsb3NlZCgpP3YoJHQucm93KTpoLm9wZW5TdWJNZW51KCR0LnJvdyl9LHJvd0hlaWdodHM6ZnVuY3Rpb24oT3Qpe3JldHVybiBJW090XS5uYW1lPT09V2w/MToyM30sYWZ0ZXJPbkNlbGxDb250ZXh0TWVudTpmdW5jdGlvbihPdCl7T3QucHJldmVudERlZmF1bHQo''@;'; put 'put ''KSx0M2UoKSYmWiYmaC5oYXNTZWxlY3RlZEl0ZW0oKSYmaC5jbG9zZSghMCl9LGJlZm9yZU9uQ2VsbE1vdXNlVXA6ZnVuY3Rpb24oT3Qpe2guaGFzU2VsZWN0ZWRJdGVtKCkmJihaPSFoLmlzQ29tbWFuZFBhc3NpdmUoaC5nZXRTZWxlY3RlZEl0ZW0oKSksaC5leGVjdXRlQ29tbWFuZChPdCkp''@;'; put 'put ''fSxhZnRlck9uQ2VsbE1vdXNlVXA6ZnVuY3Rpb24oT3QpeyghdDNlKCl8fCFFdyhPdCkpJiZaJiZoLmhhc1NlbGVjdGVkSXRlbSgpJiYoYjgoKXx8ZTNlKCk/c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBoLmNsb3NlKCEwKX0sMzI1KTpoLmNsb3NlKCEwKSl9LGFmdGVyVW5saXN0ZW46''@;'; put 'put ''ZnVuY3Rpb24oKXshaC5oYXNTZWxlY3RlZEl0ZW0oKSYmaC5pc09wZW5lZCgpJiZoLmhvdE1lbnUubGlzdGVuKCl9fTt0aGlzLm9yaWdPdXRzaWRlQ2xpY2tEZXNlbGVjdHM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5vdXRzaWRlQ2xpY2tEZXNlbGVjdHMsdGhpcy5ob3QuZ2V0U2V0dGluZ3Mo''@;'; put 'put ''KS5vdXRzaWRlQ2xpY2tEZXNlbGVjdHM9ITEsdGhpcy5ob3RNZW51PW5ldyBhNmUodGhpcy5jb250YWluZXIsdWUpLHRoaXMuaG90TWVudS5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGgub25BZnRlckluaXQoKX0pLHRoaXMuaG90TWVudS5hZGRIb29rKCJhZnRlclNl''@;'; put 'put ''bGVjdGlvbiIsZnVuY3Rpb24oKXtyZXR1cm4gaC5vbkFmdGVyU2VsZWN0aW9uLmFwcGx5KGgsYXJndW1lbnRzKX0pLHRoaXMuaG90TWVudS5pbml0KCksdGhpcy5ob3RNZW51Lmxpc3RlbigpO3ZhciBfZT10aGlzLmhvdE1lbnUuZ2V0U2hvcnRjdXRNYW5hZ2VyKCksQmU9X2UuYWRkQ29udGV4''@;'; put 'put ''dCgibWVudSIpLEtlPVdFZShXRWUoe30se2dyb3VwOiJtZW51In0pLHt9LHtydW5Pbmx5SWY6ZnVuY3Rpb24oT3Qpe3JldHVybiExPT09WlooT3QudGFyZ2V0KXx8ITE9PT1oLmNvbnRhaW5lci5jb250YWlucyhPdC50YXJnZXQpfX0pO19lLnNldEFjdGl2ZUNvbnRleHROYW1lKCJtZW51Iiks''@;'; put 'put ''QmUuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJFc2NhcGUiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtoLmtleUV2ZW50PSEwLGguY2xvc2UoKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siQXJyb3dEb3duIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIE90PWguaG90TWVudS5nZXRTZWxlY3Rl''@;'; put 'put ''ZExhc3QoKTtoLmtleUV2ZW50PSEwLE90P2guc2VsZWN0TmV4dENlbGwoT3RbMF0sT3RbMV0pOmguc2VsZWN0Rmlyc3RDZWxsKCksaC5rZXlFdmVudD0hMX19LHtrZXlzOltbIkFycm93VXAiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgp''@;'; put 'put ''O2gua2V5RXZlbnQ9ITAsT3Q/aC5zZWxlY3RQcmV2Q2VsbChPdFswXSxPdFsxXSk6aC5zZWxlY3RMYXN0Q2VsbCgpLGgua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJBcnJvd1JpZ2h0Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIE90PWguaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTtpZiho''@;'; put 'put ''LmtleUV2ZW50PSEwLE90KXt2YXIgJHQ9aC5vcGVuU3ViTWVudShPdFswXSk7JHQmJiR0LnNlbGVjdEZpcnN0Q2VsbCgpfWgua2V5RXZlbnQ9ITF9fSx7a2V5czpbWyJBcnJvd0xlZnQiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gu''@;'; put 'put ''a2V5RXZlbnQ9ITAsT3QmJmguaXNTdWJNZW51KCkmJihoLmNsb3NlKCksaC5wYXJlbnRNZW51JiZoLnBhcmVudE1lbnUuaG90TWVudS5saXN0ZW4oKSksaC5rZXlFdmVudD0hMX19LHtrZXlzOltbIkVudGVyIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKE90KXt2YXIgJHQ9aC5ob3RNZW51LmdldFNl''@;'; put 'put ''bGVjdGVkTGFzdCgpO2gua2V5RXZlbnQ9ITAsaC5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdygkdFswXSkuc3VibWVudXx8KGguZXhlY3V0ZUNvbW1hbmQoT3QpLGguY2xvc2UoITApKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siUGFnZVVwIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7dmFy''@;'; put 'put ''IE90PWguaG90TWVudS5nZXRTZWxlY3RlZExhc3QoKTtoLmtleUV2ZW50PSEwLE90P2guaG90TWVudS5zZWxlY3Rpb24udHJhbnNmb3JtU3RhcnQoLWguaG90TWVudS5jb3VudFZpc2libGVSb3dzKCksMCk6aC5zZWxlY3RGaXJzdENlbGwoKSxoLmtleUV2ZW50PSExfX0se2tleXM6W1siUGFn''@;'; put 'put ''ZURvd24iXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgT3Q9aC5ob3RNZW51LmdldFNlbGVjdGVkTGFzdCgpO2gua2V5RXZlbnQ9ITAsT3Q/aC5ob3RNZW51LnNlbGVjdGlvbi50cmFuc2Zvcm1TdGFydChoLmhvdE1lbnUuY291bnRWaXNpYmxlUm93cygpLDApOmguc2VsZWN0TGFzdENlbGwo''@;'; put 'put ''KSxoLmtleUV2ZW50PSExfX1dLEtlKSx0aGlzLmJsb2NrTWFpblRhYmxlQ2FsbGJhY2tzKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlck9wZW4iKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd''@;'; put 'put ''JiZhcmd1bWVudHNbMF07IXRoaXMuaXNPcGVuZWQoKXx8KGgmJnRoaXMucGFyZW50TWVudT90aGlzLnBhcmVudE1lbnUuY2xvc2UoKToodGhpcy5jbG9zZUFsbFN1Yk1lbnVzKCksdGhpcy5jb250YWluZXIuc3R5bGUuZGlzcGxheT0ibm9uZSIsdGhpcy5yZWxlYXNlTWFpblRhYmxlQ2FsbGJh''@;'; put 'put ''Y2tzKCksdGhpcy5ob3RNZW51LmRlc3Ryb3koKSx0aGlzLmhvdE1lbnU9bnVsbCx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLm91dHNpZGVDbGlja0Rlc2VsZWN0cz10aGlzLm9yaWdPdXRzaWRlQ2xpY2tEZXNlbGVjdHMsdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsb3NlIiksdGhpcy5wYXJl''@;'; put 'put ''bnRNZW51JiZ0aGlzLnBhcmVudE1lbnUuaG90TWVudS5saXN0ZW4oKSkpfX0se2tleToib3BlblN1Yk1lbnUiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKCF0aGlzLmhvdE1lbnUpcmV0dXJuITE7dmFyIHY9dGhpcy5ob3RNZW51LmdldENlbGwoaCwwKTtpZih0aGlzLmNsb3NlQWxsU3ViTWVudXMo''@;'; put 'put ''KSwhdnx8IWZ1bmN0aW9uIE1vdChkKXtyZXR1cm4gdGwoZCwiaHRTdWJtZW51Iil9KHYpKXJldHVybiExO3ZhciB5PXRoaXMuaG90TWVudS5nZXRTb3VyY2VEYXRhQXRSb3coaCksQz1uZXcgZCh0aGlzLmhvdCx7cGFyZW50OnRoaXMsbmFtZTp5Lm5hbWUsY2xhc3NOYW1lOnRoaXMub3B0aW9u''@;'; put 'put ''cy5jbGFzc05hbWUsa2VlcEluVmlld3BvcnQ6ITAsY29udGFpbmVyOnRoaXMub3B0aW9ucy5jb250YWluZXJ9KTtyZXR1cm4gQy5zZXRNZW51SXRlbXMoeS5zdWJtZW51Lml0ZW1zKSxDLm9wZW4oKSxDLnNldFBvc2l0aW9uKHYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLHRoaXMuaG90U3Vi''@;'; put 'put ''TWVudXNbeS5rZXldPUMsQ319LHtrZXk6ImNsb3NlU3ViTWVudSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5ob3RNZW51LmdldFNvdXJjZURhdGFBdFJvdyhoKSx5PXRoaXMuaG90U3ViTWVudXNbdi5rZXldO3kmJih5LmRlc3Ryb3koKSxkZWxldGUgdGhpcy5ob3RTdWJNZW51c1t2''@;'; put 'put ''LmtleV0pfX0se2tleToiY2xvc2VBbGxTdWJNZW51cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO1VyKHRoaXMuaG90TWVudS5nZXREYXRhKCksZnVuY3Rpb24odix5KXtyZXR1cm4gaC5jbG9zZVN1Yk1lbnUoeSl9KX19LHtrZXk6ImlzQWxsU3ViTWVudXNDbG9zZWQiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIDA9PT1PYmplY3Qua2V5cyh0aGlzLmhvdFN1Yk1lbnVzKS5sZW5ndGh9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuY29udGFpbmVyLnBhcmVudE5vZGU7dGhpcy5jbGVhckxvY2FsSG9va3MoKSx0aGlzLmNsb3NlKCksdGhpcy5w''@;'; put 'put ''YXJlbnRNZW51PW51bGwsdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpLGgmJmgucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXIpfX0se2tleToiaXNPcGVuZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT10aGlzLmhvdE1lbnV9fSx7a2V5OiJleGVjdXRlQ29tbWFuZCIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oaCl7aWYodGhpcy5pc09wZW5lZCgpJiZ0aGlzLmhhc1NlbGVjdGVkSXRlbSgpKXt2YXIgdj10aGlzLmdldFNlbGVjdGVkSXRlbSgpO2lmKHRoaXMucnVuTG9jYWxIb29rcygic2VsZWN0Iix2LGgpLCF0aGlzLmlzQ29tbWFuZFBhc3NpdmUodikpe3ZhciB5PXRoaXMuaG90''@;'; put 'put ''LmdldFNlbGVjdGVkUmFuZ2UoKSxDPXk/ZnVuY3Rpb24gU290KGQpe3JldHVybiBPbChkLGZ1bmN0aW9uKGcpe3JldHVybntzdGFydDpnLmdldFRvcFN0YXJ0Q29ybmVyKCksZW5kOmcuZ2V0Qm90dG9tRW5kQ29ybmVyKCl9fSl9KHkpOltdO3RoaXMucnVuTG9jYWxIb29rcygiZXhlY3V0ZUNv''@;'; put 'put ''bW1hbmQiLHYua2V5LEMsaCksdGhpcy5pc1N1Yk1lbnUoKSYmdGhpcy5wYXJlbnRNZW51LnJ1bkxvY2FsSG9va3MoImV4ZWN1dGVDb21tYW5kIix2LmtleSxDLGgpfX19fSx7a2V5OiJpc0NvbW1hbmRQYXNzaXZlIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1oLmlzQ29tbWFuZCx5PWgubmFt''@;'; put 'put ''ZSxDPWguZGlzYWJsZWQsST1oLnN1Ym1lbnUsWj0hMD09PUN8fCJmdW5jdGlvbiI9PXR5cGVvZiBDJiYhMD09PUMuY2FsbCh0aGlzLmhvdCk7cmV0dXJuITE9PT12fHx5PT09V2x8fCEwPT09Wnx8SX19LHtrZXk6InNldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj1uZXcgRWF0''@;'; put 'put ''KGgsdGhpcy5jb250YWluZXIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyk7dGhpcy5vcHRpb25zLmtlZXBJblZpZXdwb3J0Pyh2LmZpdHNCZWxvdyh0aGlzLmNvbnRhaW5lcik/dGhpcy5zZXRQb3NpdGlvbkJlbG93Q3Vyc29yKHYpOnYuZml0c0Fib3ZlKHRoaXMuY29udGFpbmVyKT90aGlz''@;'; put 'put ''LnNldFBvc2l0aW9uQWJvdmVDdXJzb3Iodik6dGhpcy5zZXRQb3NpdGlvbkJlbG93Q3Vyc29yKHYpLHRoaXMuaG90LmlzTHRyKCk/dGhpcy5zZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JMdHIodik6dGhpcy5zZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JSdGwodikpOih0aGlzLnNldFBvc2l0aW9u''@;'; put 'put ''QmVsb3dDdXJzb3IodiksdGhpcy5zZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvcih2KSl9fSx7a2V5OiJzZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JSdGwiLHZhbHVlOmZ1bmN0aW9uKGgpe2guZml0c09uTGVmdCh0aGlzLmNvbnRhaW5lcik/dGhpcy5zZXRQb3NpdGlvbk9uTGVmdE9mQ3Vyc29y''@;'; put 'put ''KGgpOnRoaXMuc2V0UG9zaXRpb25PblJpZ2h0T2ZDdXJzb3IoaCl9fSx7a2V5OiJzZXRIb3Jpem9udGFsUG9zaXRpb25Gb3JMdHIiLHZhbHVlOmZ1bmN0aW9uKGgpe2guZml0c09uUmlnaHQodGhpcy5jb250YWluZXIpP3RoaXMuc2V0UG9zaXRpb25PblJpZ2h0T2ZDdXJzb3IoaCk6dGhpcy5z''@;'; put 'put ''ZXRQb3NpdGlvbk9uTGVmdE9mQ3Vyc29yKGgpfX0se2tleToic2V0UG9zaXRpb25BYm92ZUN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5vZmZzZXQuYWJvdmUraC50b3AtdGhpcy5jb250YWluZXIub2Zmc2V0SGVpZ2h0O3RoaXMuaXNTdWJNZW51KCkmJih2PWgudG9wK2gu''@;'; put 'put ''Y2VsbEhlaWdodC10aGlzLmNvbnRhaW5lci5vZmZzZXRIZWlnaHQrMyksdGhpcy5jb250YWluZXIuc3R5bGUudG9wPSIiLmNvbmNhdCh2LCJweCIpfX0se2tleToic2V0UG9zaXRpb25CZWxvd0N1cnNvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5vZmZzZXQuYmVsb3craC50b3Ar''@;'; put 'put ''MTt0aGlzLmlzU3ViTWVudSgpJiYodj1oLnRvcC0xKSx0aGlzLmNvbnRhaW5lci5zdHlsZS50b3A9IiIuY29uY2F0KHYsInB4Iil9fSx7a2V5OiJzZXRQb3NpdGlvbk9uUmlnaHRPZkN1cnNvciIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aC5sZWZ0O2lmKHRoaXMuaXNTdWJNZW51KCkpe3Zh''@;'; put 'put ''ciB5PXRoaXMucGFyZW50TWVudS5jb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dis9aC5jZWxsV2lkdGgreS5yaWdodC0oaC5sZWZ0K2guY2VsbFdpZHRoKX1lbHNlIHYrPXRoaXMub2Zmc2V0LnJpZ2h0O3RoaXMuY29udGFpbmVyLnN0eWxlLmxlZnQ9IiIuY29uY2F0KHYsInB4''@;'; put 'put ''Iil9fSx7a2V5OiJzZXRQb3NpdGlvbk9uTGVmdE9mQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzLm9mZnNldC5sZWZ0K2gubGVmdC10aGlzLmNvbnRhaW5lci5vZmZzZXRXaWR0aDtpZih0aGlzLmlzU3ViTWVudSgpKXt2YXIgeT10aGlzLnBhcmVudE1lbnUuY29udGFpbmVy''@;'; put 'put ''LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3YtPWgubGVmdC15LmxlZnR9dGhpcy5jb250YWluZXIuc3R5bGUubGVmdD0iIi5jb25jYXQodiwicHgiKX19LHtrZXk6InNlbGVjdEZpcnN0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmhvdE1lbnUuZ2V0Q2VsbCgwLDApO090ZSho''@;'; put 'put ''KXx8UnRlKGgpfHxCdGUoaCk/dGhpcy5zZWxlY3ROZXh0Q2VsbCgwLDApOnRoaXMuaG90TWVudS5zZWxlY3RDZWxsKDAsMCl9fSx7a2V5OiJzZWxlY3RMYXN0Q2VsbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmhvdE1lbnUuY291bnRSb3dzKCktMSx2PXRoaXMuaG90TWVudS5nZXRD''@;'; put 'put ''ZWxsKGgsMCk7T3RlKHYpfHxSdGUodil8fEJ0ZSh2KT90aGlzLnNlbGVjdFByZXZDZWxsKGgsMCk6KHRoaXMuaG90TWVudS5zZWxlY3RDZWxsKGgsMCx2b2lkIDAsdm9pZCAwLCExKSx0aGlzLmhvdE1lbnUuc2Nyb2xsVmlld3BvcnRUbyhoLDAsITAsITEpKX19LHtrZXk6InNlbGVjdE5leHRD''@;'; put 'put ''ZWxsIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PWgrMSxDPXk8dGhpcy5ob3RNZW51LmNvdW50Um93cygpP3RoaXMuaG90TWVudS5nZXRDZWxsKHksdik6bnVsbDshQ3x8KE90ZShDKXx8UnRlKEMpfHxCdGUoQyk/dGhpcy5zZWxlY3ROZXh0Q2VsbCh5LHYpOnRoaXMuaG90TWVudS5zZWxl''@;'; put 'put ''Y3RDZWxsKHksdikpfX0se2tleToic2VsZWN0UHJldkNlbGwiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9aC0xLEM9eT49MD90aGlzLmhvdE1lbnUuZ2V0Q2VsbCh5LHYpOm51bGw7IUN8fChPdGUoQyl8fFJ0ZShDKXx8QnRlKEMpP3RoaXMuc2VsZWN0UHJldkNlbGwoeSx2KTp0aGlzLmhv''@;'; put 'put ''dE1lbnUuc2VsZWN0Q2VsbCh5LHYpKX19LHtrZXk6Im1lbnVJdGVtUmVuZGVyZXIiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMsSSxaKXt2YXIgTG4sdWU9dGhpcyxfZT1oLmdldFNvdXJjZURhdGFBdFJvdyh5KSxCZT10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiks''@;'; put 'put ''T3Q9ZnVuY3Rpb24oTG4pe3JldHVybiBMbi5kaXNhYmxlU2VsZWN0aW9ufSwkdD1aOyJmdW5jdGlvbiI9PXR5cGVvZiAkdCYmKCR0PSR0LmNhbGwodGhpcy5ob3QpKSxEcCh2KSxPMChCZSwiaHRJdGVtV3JhcHBlciIpLHYuYXBwZW5kQ2hpbGQoQmUpLExuPV9lLG5ldyBSZWdFeHAoV2wsImki''@;'; put 'put ''KS50ZXN0KExuLm5hbWUpP08wKHYsImh0U2VwYXJhdG9yIik6ImZ1bmN0aW9uIj09dHlwZW9mIF9lLnJlbmRlcmVyPyhPMCh2LCJodEN1c3RvbU1lbnVSZW5kZXJlciIpLHYuYXBwZW5kQ2hpbGQoX2UucmVuZGVyZXIoaCxCZSx5LEMsSSwkdCkpKTprdyhCZSwkdCksZnVuY3Rpb24oTG4pe3Jl''@;'; put 'put ''dHVybiEwPT09TG4uZGlzYWJsZWR8fCJmdW5jdGlvbiI9PXR5cGVvZiBMbi5kaXNhYmxlZCYmITA9PT1Mbi5kaXNhYmxlZC5jYWxsKHVlLmhvdCl9KF9lKT8oTzAodiwiaHREaXNhYmxlZCIpLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodiwibW91c2VlbnRlciIsZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gaC5kZXNlbGVjdENlbGwoKX0pKTpPdChfZSk/KE8wKHYsImh0U2VsZWN0aW9uRGlzYWJsZWQiKSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguZGVzZWxlY3RDZWxsKCl9KSk6ZnVuY3Rpb24o''@;'; put 'put ''TG4pe3JldHVybiBvMShMbiwic3VibWVudSIpfShfZSk/KE8wKHYsImh0U3VibWVudSIpLE90KF9lKT90aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguZGVzZWxlY3RDZWxsKCl9KTp0aGlzLmV2ZW50TWFuYWdlci5h''@;'; put 'put ''ZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguc2VsZWN0Q2VsbCh5LEMsdm9pZCAwLHZvaWQgMCwhMSwhMSl9KSk6KHBsKHYsWyJodFN1Ym1lbnUiLCJodERpc2FibGVkIl0pLE90KF9lKT90aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVy''@;'; put 'put ''KHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguZGVzZWxlY3RDZWxsKCl9KTp0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKHYsIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIGguc2VsZWN0Q2VsbCh5LEMsdm9pZCAwLHZvaWQgMCwhMSwhMSl9KSl9fSx7''@;'; put 'put ''a2V5OiJjcmVhdGVDb250YWluZXIiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEMsaD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06bnVsbCx2PXRoaXMub3B0aW9ucy5jb250YWluZXIub3duZXJEb2N1bWVudCx5PWg7cmV0dXJuIHkmJihVMih5''@;'; put 'put ''KSYmKHk9bnVsbD09PSh5PXkuY2FsbCh0aGlzLmhvdCkpfHxhMSh5KT8iIjp5LnRvU3RyaW5nKCkpLHk9eS5yZXBsYWNlKC9bXkEtejAtOV0vZywiXyIpLHk9IiIuY29uY2F0KHRoaXMub3B0aW9ucy5jbGFzc05hbWUsIlN1Yl8iKS5jb25jYXQoeSksQz12LnF1ZXJ5U2VsZWN0b3IoIi4iLmNv''@;'; put 'put ''bmNhdCh0aGlzLm9wdGlvbnMuY2xhc3NOYW1lLCIuIikuY29uY2F0KHkpKSksQ3x8KE8wKEM9di5jcmVhdGVFbGVtZW50KCJkaXYiKSwiaHRNZW51ICIuY29uY2F0KHRoaXMub3B0aW9ucy5jbGFzc05hbWUpKSx5JiZPMChDLHkpLHRoaXMub3B0aW9ucy5jb250YWluZXIuYXBwZW5kQ2hpbGQo''@;'; put 'put ''QykpLEN9fSx7a2V5OiJibG9ja01haW5UYWJsZUNhbGxiYWNrcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrPWZ1bmN0aW9uKCl7fSx0aGlzLmhvdC5hZGRIb29rKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiLHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2spLHRo''@;'; put 'put ''aXMuaG90LmFkZEhvb2soImFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5Iix0aGlzLl9hZnRlclNjcm9sbENhbGxiYWNrKX19LHtrZXk6InJlbGVhc2VNYWluVGFibGVDYWxsYmFja3MiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjayYmKHRoaXMuaG90LnJlbW92ZUhv''@;'; put 'put ''b2soImFmdGVyU2Nyb2xsVmVydGljYWxseSIsdGhpcy5fYWZ0ZXJTY3JvbGxDYWxsYmFjayksdGhpcy5ob3QucmVtb3ZlSG9vaygiYWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2spLHRoaXMuX2FmdGVyU2Nyb2xsQ2FsbGJhY2s9bnVsbCl9fSx7a2V5''@;'; put 'put ''OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmhvdE1lbnUudmlldy5fd3Qud3RUYWJsZSx2PXRoaXMuaG90TWVudS5nZXRTZXR0aW5ncygpLmRhdGEseT1oLmhpZGVyLnN0eWxlLEM9aC5ob2xkZXIuc3R5bGUsST1wYXJzZUludCh5LndpZHRoLDEwKSxaPVN1KHYs''@;'; put 'put ''ZnVuY3Rpb24odWUsX2Upe3JldHVybiB1ZSsoX2UubmFtZT09PVdsPzE6MjYpfSwwKTtDLndpZHRoPSIiLmNvbmNhdChJKzMsInB4IiksQy5oZWlnaHQ9IiIuY29uY2F0KForMywicHgiKSx5LmhlaWdodD1DLmhlaWdodH19LHtrZXk6Im9uQWZ0ZXJTZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KGgsdix5LEMsSSl7ITE9PT10aGlzLmtleUV2ZW50JiYoSS52YWx1ZT0hMCl9fSx7a2V5OiJvbkRvY3VtZW50TW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbihoKXshdGhpcy5pc09wZW5lZCgpfHwodGhpcy5vcHRpb25zLnN0YW5kYWxvbmUmJnRoaXMuaG90TWVudSYmIV93KGgudGFyZ2V0LHRo''@;'; put 'put ''aXMuaG90TWVudS5yb290RWxlbWVudCl8fCh0aGlzLmlzQWxsU3ViTWVudXNDbG9zZWQoKXx8dGhpcy5pc1N1Yk1lbnUoKSkmJiFfdyhoLnRhcmdldCwiLmh0TWVudSIpKSYmdGhpcy5jbG9zZSghMCl9fSx7a2V5OiJvbkRvY3VtZW50Q29udGV4dE1lbnUiLHZhbHVlOmZ1bmN0aW9uKGgpeyF0''@;'; put 'put ''aGlzLmlzT3BlbmVkKCl8fHRsKGgudGFyZ2V0LCJodENvcmUiKSYmX3coaC50YXJnZXQsdGhpcy5ob3RNZW51LnJvb3RFbGVtZW50KSYmaC5wcmV2ZW50RGVmYXVsdCgpfX1dKSxkfSgpO0IyKEpFZSx1ZCk7Y29uc3QgeDhlPUpFZTtmdW5jdGlvbiBUOGUoZCl7cmV0dXJuKFQ4ZT0iZnVuY3Rp''@;'; put 'put ''b24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9s''@;'; put 'put ''LnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFhFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0h''@;'; put 'put ''MCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGVNKCl7cmV0dXJuIGVNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1SYXQoZyxoKTtpZih5KXt2YXIgQz1P''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGVNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBSYXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093''@;'; put 'put ''blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUh2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEk4ZShkLGcpe3JldHVybihJOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2''@;'; put 'put ''fSkoZCxnKX1mdW5jdGlvbiBGYXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1UOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3Ig''@;'; put 'put ''dW5kZWZpbmVkIik7cmV0dXJuIEtFZShkKX1mdW5jdGlvbiBLRWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEh2KGQp''@;'; put 'put ''e3JldHVybihIdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBHdGU9ImNvbnRleHRNZW51Ijt6by5nZXRTaW5nbGV0b24oKS5y''@;'; put 'put ''ZWdpc3RlcigiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZUNvbnRleHRNZW51U2hvdyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbnRleHRNZW51U2hvdyIpLHpvLmdldFNpbmdsZXRvbigpLnJl''@;'; put 'put ''Z2lzdGVyKCJhZnRlckNvbnRleHRNZW51SGlkZSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckNvbnRleHRNZW51RXhlY3V0ZSIpO3ZhciAkRWU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIEJhdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmpl''@;'; put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZJOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBQYXQoZCl7dmFyIGc9ZnVuY3Rpb24gSGF0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxl''@;'; put 'put ''Y3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0''@;'; put 'put ''dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9SHYoZCk7aWYoZyl7dmFyIEM9SHYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEZhdCh0aGlzLHkpfX0oaCk7''@;'; put 'put ''ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gTGF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmV2ZW50TWFuYWdlcj1u''@;'; put 'put ''ZXcgTDEoS0VlKHkpKSx5LmNvbW1hbmRFeGVjdXRvcj1uZXcgQkVlKHkuaG90KSx5Lml0ZW1zRmFjdG9yeT1udWxsLHkubWVudT1udWxsLHl9cmV0dXJuIGZ1bmN0aW9uIE9hdChkLGcsaCl7ZyYmWEVlKGQucHJvdG90eXBlLGcpLGgmJlhFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0d0ZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFi''@;'; put 'put ''bGVkKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW0d0ZV07ImZ1bmN0aW9uIj09dHlwZW9mIEMuY2FsbGJhY2smJnRoaXMuY29tbWFuZEV4ZWN1dG9yLnNldENvbW1vbkNhbGxiYWNrKEMuY2FsbGJhY2spLHRoaXMubWVudT1uZXcgeDhlKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0Q29u''@;'; put 'put ''dGV4dE1lbnUiLGtlZXBJblZpZXdwb3J0OiEwLGNvbnRhaW5lcjpDLnVpQ29udGFpbmVyfHx0aGlzLmhvdC5yb290RG9jdW1lbnQuYm9keX0pLHRoaXMubWVudS5hZGRMb2NhbEhvb2soImJlZm9yZU9wZW4iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NZW51QmVmb3JlT3BlbigpfSksdGhpcy5t''@;'; put 'put ''ZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWVudUFmdGVyT3BlbigpfSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1lbnVBZnRlckNsb3NlKCl9KSx0aGlzLm1lbnUuYWRkTG9jYWxI''@;'; put 'put ''b29rKCJleGVjdXRlQ29tbWFuZCIsZnVuY3Rpb24oKXtmb3IodmFyIEksWj1hcmd1bWVudHMubGVuZ3RoLHVlPW5ldyBBcnJheShaKSxfZT0wO19lPFo7X2UrKyl1ZVtfZV09YXJndW1lbnRzW19lXTtyZXR1cm4oST15LmV4ZWN1dGVDb21tYW5kKS5jYWxsLmFwcGx5KEksW3ldLmNvbmNhdCh1''@;'; put 'put ''ZSkpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbENvbnRleHRNZW51IixmdW5jdGlvbihJKXtyZXR1cm4geS5vbkFmdGVyT25DZWxsQ29udGV4dE1lbnUoSSl9KSxlTShIdihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJ1cGRhdGVQbHVn''@;'; put 'put ''aW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxlTShIdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgp''@;'; put 'put ''LHRoaXMubWVudSYmKHRoaXMubWVudS5kZXN0cm95KCksdGhpcy5tZW51PW51bGwpLGVNKEh2KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMubWVudSYmKHRoaXMucHJlcGFyZU1lbnVJ''@;'; put 'put ''dGVtcygpLHRoaXMubWVudS5vcGVuKCksdGhpcy5tZW51LmlzT3BlbmVkKCkpKXt2YXIgQz0wLEk9MDtpZih0aGlzLmhvdC5yb290RG9jdW1lbnQhPT10aGlzLm1lbnUuY29udGFpbmVyLm93bmVyRG9jdW1lbnQpe3ZhciB1ZT10aGlzLmhvdC5yb290V2luZG93LmZyYW1lRWxlbWVudC5nZXRC''@;'; put 'put ''b3VuZGluZ0NsaWVudFJlY3QoKSxCZT11ZS5sZWZ0O0M9dWUudG9wLWZPKHkudmlldyksST1CZS14Uyh5LnZpZXcpfWVsc2UgQz0tMSpmTyh0aGlzLm1lbnUuaG90TWVudS5yb290V2luZG93KSxJPS0xKnhTKHRoaXMubWVudS5ob3RNZW51LnJvb3RXaW5kb3cpO3RoaXMubWVudS5zZXRQb3Np''@;'; put 'put ''dGlvbih7dG9wOnBhcnNlSW50KHkucGFnZVksMTApK0MsbGVmdDpwYXJzZUludCh5LnBhZ2VYLDEwKStJfSl9fX0se2tleToiY2xvc2UiLHZhbHVlOmZ1bmN0aW9uKCl7IXRoaXMubWVudXx8KHRoaXMubWVudS5jbG9zZSgpLHRoaXMuaXRlbXNGYWN0b3J5PW51bGwpfX0se2tleToiZXhlY3V0''@;'; put 'put ''ZUNvbW1hbmQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDO251bGw9PT10aGlzLml0ZW1zRmFjdG9yeSYmdGhpcy5wcmVwYXJlTWVudUl0ZW1zKCk7Zm9yKHZhciBJPWFyZ3VtZW50cy5sZW5ndGgsWj1uZXcgQXJyYXkoST4xP0ktMTowKSx1ZT0xO3VlPEk7dWUrKylaW3VlLTFdPWFyZ3VtZW50''@;'; put 'put ''c1t1ZV07KEM9dGhpcy5jb21tYW5kRXhlY3V0b3IpLmV4ZWN1dGUuYXBwbHkoQyxbeV0uY29uY2F0KFopKX19LHtrZXk6InByZXBhcmVNZW51SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLml0ZW1zRmFjdG9yeT1uZXcgWkVlKHRoaXMuaG90LGguREVGQVVMVF9JVEVN''@;'; put 'put ''Uyk7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtHdGVdLEk9e2l0ZW1zOnRoaXMuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKEMpfTt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixJKSx0aGlzLml0ZW1zRmFjdG9yeS5zZXRQcmVkZWZpbmVkSXRl''@;'; put 'put ''bXMoSS5pdGVtcyk7dmFyIFo9dGhpcy5pdGVtc0ZhY3RvcnkuZ2V0SXRlbXMoQyk7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbnRleHRNZW51U2V0SXRlbXMiLFopLHRoaXMubWVudS5zZXRNZW51SXRlbXMoWiksVXIoWixmdW5jdGlvbih1ZSl7cmV0dXJuIHkuY29tbWFuZEV4ZWN1dG9y''@;'; put 'put ''LnJlZ2lzdGVyQ29tbWFuZCh1ZS5rZXksdWUpfSl9fSx7a2V5OiJvbkFmdGVyT25DZWxsQ29udGV4dE1lbnUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCksST1DLnJvd0hlYWRlcnMsWj1DLmNvbEhlYWRlcnMsX2U9eS50YXJnZXQ7dGhpcy5jbG9zZSgp''@;'; put 'put ''LCF0bChfZSwiaGFuZHNvbnRhYmxlSW5wdXQiKSYmKHkucHJldmVudERlZmF1bHQoKSx5LnN0b3BQcm9wYWdhdGlvbigpLChJfHxafHxmdW5jdGlvbiB1ZShCZSl7cmV0dXJuIlREIj09PUJlLm5vZGVOYW1lfHwiVEQiPT09QmUucGFyZW50Tm9kZS5ub2RlTmFtZX0oX2UpfHx0bChfZSwiY3Vy''@;'; put 'put ''cmVudCIpJiZ0bChfZSwid3RCb3JkZXIiKSkmJnRoaXMub3Blbih5KSl9fSx7a2V5OiJvbk1lbnVCZWZvcmVPcGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb250ZXh0TWVudVNob3ciLHRoaXMpfX0se2tleToib25NZW51QWZ0ZXJPcGVuIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbnRleHRNZW51U2hvdyIsdGhpcyl9fSx7a2V5OiJvbk1lbnVBZnRlckNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90Lmxpc3RlbigpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbnRleHRNZW51SGlkZSIsdGhpcyl9''@;'; put 'put ''fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY2xvc2UoKSx0aGlzLm1lbnUmJnRoaXMubWVudS5kZXN0cm95KCksZU0oSHYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gR3RlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNzB9fSx7a2V5OiJQTFVHSU5fREVQUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuWyJwbHVnaW46QXV0b0NvbHVtblNpemUiXX19LHtrZXk6IkRFRkFVTFRfSVRFTVMiLGdldDpmdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybltqdGUsWnRlLFdsLHZ6LEF6LFdsLFZ0ZSx3eixXbCx6dGUsTnRlLFdsLHl6LFdsLFBwXX19XSksaH0oWXMpO2Z1bmN0aW9uIHFFZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJh''@;'; put 'put ''YmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fSRFZS5TRVBBUkFUT1I9e25hbWU6V2x9O3ZhciBHYXQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIFphdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcp''@;'; put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmRhdGE9e319cmV0dXJuIGZ1bmN0aW9uIHphdChkLGcsaCl7ZyYmcUVlKGQucHJvdG90eXBlLGcpLGgmJnFFZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe3RoaXMuZGF0YVtoXT12fX0se2tleToiZ2V0RGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuZGF0YVtoXXx8dm9pZCAwfX1dKSxkfSgpO2Z1bmN0aW9uIGV4''@;'; put 'put ''ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9u''@;'; put 'put ''IFdhdChkLGcsaCl7cmV0dXJuIGcmJmV4ZShkLnByb3RvdHlwZSxnKSxoJiZleGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxkfXZhciBVYXQ9V2F0KGZ1bmN0aW9uIGQoKXsoZnVuY3Rpb24gWWF0KGQsZyl7aWYoIShkIGluc3RhbmNl''@;'; put 'put ''b2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuY2xpcGJvYXJkRGF0YT1uZXcgR2F0fSk7ZnVuY3Rpb24gdHhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVt''@;'; put 'put ''ZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIEQ4ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIFFhdChkLGcpe2lmKCEoZCBp''@;'; put 'put ''bnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJvb3REb2N1bWVudD1nLmRlZmF1bHRWaWV3P2c6Zy5vd25lckRvY3VtZW50LHRoaXMubWFpbkVsZW1lbnQ9bnVsbCx0aGlzLmV2ZW50TWFu''@;'; put 'put ''YWdlcj1uZXcgTDEodGhpcyksdGhpcy5saXN0ZW5lcnNDb3VudD1uZXcgV2Vha1NldCx0aGlzLmNvbnRhaW5lcj1nfXJldHVybiBmdW5jdGlvbiBKYXQoZCxnLGgpe2cmJnR4ZShkLnByb3RvdHlwZSxnKSxoJiZ0eGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7''@;'; put 'put ''d3JpdGFibGU6ITF9KX0oZCxbe2tleToidXNlU2Vjb25kYXJ5RWxlbWVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD1mdW5jdGlvbiAkYXQoZCl7dmFyIGc9WXRlLmdldChkKTtpZihnKXJldHVybiBnLnBhcmVudEVsZW1lbnR8fGQuYXBwZW5kQ2hpbGQoZyksZzt2YXIgdj0oZC5kZWZhdWx0''@;'; put 'put ''Vmlldz9kOmQub3duZXJEb2N1bWVudCkuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtyZXR1cm4gWXRlLnNldChkLHYpLHYuc2V0QXR0cmlidXRlKCJkYXRhLWhvdC1pbnB1dCIsIiIpLHYuY2xhc3NOYW1lPSJIYW5kc29udGFibGVDb3B5UGFzdGUiLHYudGFiSW5kZXg9LTEsdi5hdXRvY29t''@;'; put 'put ''cGxldGU9Im9mZiIsdi53cmFwPSJoYXJkIix2LnZhbHVlPSIgIixkLmFwcGVuZENoaWxkKHYpLHZ9KHRoaXMuY29udGFpbmVyKTt0aGlzLmxpc3RlbmVyc0NvdW50LmhhcyhoKXx8KHRoaXMubGlzdGVuZXJzQ291bnQuYWRkKGgpLG54ZSh0aGlzLmV2ZW50TWFuYWdlcixoLHRoaXMpKSx0aGlz''@;'; put 'put ''Lm1haW5FbGVtZW50PWh9fSx7a2V5OiJzZXRGb2N1c2FibGVFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmxpc3RlbmVyc0NvdW50LmhhcyhoKXx8KHRoaXMubGlzdGVuZXJzQ291bnQuYWRkKGgpLG54ZSh0aGlzLmV2ZW50TWFuYWdlcixoLHRoaXMpKSx0aGlzLm1haW5FbGVtZW50''@;'; put 'put ''PWh9fSx7a2V5OiJnZXRGb2N1c2FibGVFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1haW5FbGVtZW50fX0se2tleToiZm9jdXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tYWluRWxlbWVudC52YWx1ZT0iICIsYjgoKXx8SmJlKHRoaXMubWFpbkVsZW1lbnQpfX1dKSxk''@;'; put 'put ''fSgpO0IyKEQ4ZSx1ZCk7dmFyIFd0ZT1uZXcgV2Vha01hcCxMOGU9ZnVuY3Rpb24oZyxoKXtyZXR1cm4gZnVuY3Rpb24odil7cmV0dXJuIGgucnVuTG9jYWxIb29rcyhnLHYpfX07ZnVuY3Rpb24gbnhlKGQsZyxoKXtkLmFkZEV2ZW50TGlzdGVuZXIoZywiY29weSIsTDhlKCJjb3B5IixoKSks''@;'; put 'put ''ZC5hZGRFdmVudExpc3RlbmVyKGcsImN1dCIsTDhlKCJjdXQiLGgpKSxkLmFkZEV2ZW50TGlzdGVuZXIoZywicGFzdGUiLEw4ZSgicGFzdGUiLGgpKX12YXIgWXRlPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHJ4ZShkKXtpZihkIGluc3RhbmNlb2YgRDhlKXt2YXIgZz1XdGUuZ2V0KGQuY29udGFp''@;'; put 'put ''bmVyKTtpZigoZz1pc05hTihnKT8wOmcpPjAmJihnLT0xKSxmdW5jdGlvbiBLYXQoZCl7ZC5ldmVudE1hbmFnZXIuY2xlYXIoKX0oZCksZzw9MCl7Zz0wO3ZhciBoPVl0ZS5nZXQoZC5jb250YWluZXIpO2gmJmgucGFyZW50Tm9kZSYmKGgucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChoKSxZdGUu''@;'; put 'put ''ZGVsZXRlKGQuY29udGFpbmVyKSksZC5tYWluRWxlbWVudD1udWxsfVd0ZS5zZXQoZC5jb250YWluZXIsZyl9fWZ1bmN0aW9uIGl4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3Jl''@;'; put 'put ''dHVybiB2fWZ1bmN0aW9uIFV0ZShkKXtyZXR1cm4oVXRlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBT''@;'; put 'put ''eW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gb3hlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5j''@;'; put 'put ''b25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gdE0oKXtyZXR1cm4gdE09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVu''@;'; put 'put ''Y3Rpb24oZyxoLHYpe3ZhciB5PWFsdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sdE0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0''@;'; put 'put ''aW9uIGFsdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9TnYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gTzhlKGQsZyl7cmV0dXJuKE84ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJp''@;'; put 'put ''bmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHVsdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVV0ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZl''@;'; put 'put ''ZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gYXhlKGQpfWZ1bmN0aW9uIGF4ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFz''@;'; put 'put ''bid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gTnYoZCl7cmV0dXJuKE52PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9''@;'; put 'put ''em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29weUxpbWl0Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoIm1vZGlmeUNvcHlhYmxlUmFuZ2UiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ3V0Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFm''@;'; put 'put ''dGVyQ3V0Iiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVBhc3RlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyUGFzdGUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29weSIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRl''@;'; put 'put ''ckNvcHkiKTt2YXIgUXRlPSJjb3B5UGFzdGUiLGhsdD1bImZyYWdtZW50U2VsZWN0aW9uIl0sbk09bmV3IFdlYWtNYXAsbHhlPVsnPG1ldGEgbmFtZT0iZ2VuZXJhdG9yIiBjb250ZW50PSJIYW5kc29udGFibGUiLz4nLCc8c3R5bGUgdHlwZT0idGV4dC9jc3MiPnRke3doaXRlLXNwYWNlOm5v''@;'; put 'put ''cm1hbH1icnttc28tZGF0YS1wbGFjZW1lbnQ6c2FtZS1jZWxsfTwvc3R5bGU+J10uam9pbigiIiksZ2x0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBsbHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBt''@;'; put 'put ''dXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIs''@;'; put 'put ''e3dyaXRhYmxlOiExfSksZyYmTzhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gc2x0KGQpe3ZhciBnPWZ1bmN0aW9uIGNsdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJm''@;'; put 'put ''dW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIg''@;'; put 'put ''eSx2PU52KGQpO2lmKGcpe3ZhciBDPU52KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB1bHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0''@;'; put 'put ''aW9uIGlsdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5jb2x1bW5zTGltaXQ9MS8wLHkuY29weWFibGVSYW5nZXM9W10seS5mb2N1c2Fi''@;'; put 'put ''bGVFbGVtZW50PXZvaWQgMCx5LnBhc3RlTW9kZT0ib3ZlcndyaXRlIix5LnJvd3NMaW1pdD0xLzAseS51aUNvbnRhaW5lcj15LmhvdC5yb290RG9jdW1lbnQuYm9keSxuTS5zZXQoYXhlKHkpLHtpc1RyaWdnZXJlZEJ5Q29weTohMSxpc1RyaWdnZXJlZEJ5Q3V0OiExLGlzQmVnaW5FZGl0aW5n''@;'; put 'put ''OiExLGlzRnJhZ21lbnRTZWxlY3Rpb25FbmFibGVkOiExfSkseX1yZXR1cm4gZnVuY3Rpb24gb2x0KGQsZyxoKXtnJiZveGUoZC5wcm90b3R5cGUsZyksaCYmb3hlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5h''@;'; put 'put ''YmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbUXRlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCksST1DW1F0ZV0s''@;'; put 'put ''Wj1DLmZyYWdtZW50U2VsZWN0aW9uO25NLmdldCh0aGlzKS5pc0ZyYWdtZW50U2VsZWN0aW9uRW5hYmxlZD0hIVosIm9iamVjdCI9PT1VdGUoSSkmJih0aGlzLnBhc3RlTW9kZT1JLnBhc3RlTW9kZXx8dGhpcy5wYXN0ZU1vZGUsdGhpcy5yb3dzTGltaXQ9aXNOYU4oSS5yb3dzTGltaXQpP3Ro''@;'; put 'put ''aXMucm93c0xpbWl0Okkucm93c0xpbWl0LHRoaXMuY29sdW1uc0xpbWl0PWlzTmFOKEkuY29sdW1uc0xpbWl0KT90aGlzLmNvbHVtbnNMaW1pdDpJLmNvbHVtbnNMaW1pdCx0aGlzLnVpQ29udGFpbmVyPUkudWlDb250YWluZXJ8fHRoaXMudWlDb250YWluZXIpLHRoaXMuYWRkSG9vaygiYWZ0''@;'; put 'put ''ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbihfZSl7cmV0dXJuIHkub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMoX2UpfSksdGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlVXAiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlck9uQ2VsbE1vdXNlVXAo''@;'; put 'put ''KX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJTZWxlY3Rpb25FbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclNlbGVjdGlvbkVuZCgpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVLZXlEb3duIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlS2V5RG93bigpfSksdGhpcy5mb2N1c2FibGVF''@;'; put 'put ''bGVtZW50PWZ1bmN0aW9uIFhhdChkKXt2YXIgZz1uZXcgRDhlKGQpLGg9V3RlLmdldChkKTtyZXR1cm4gaD1pc05hTihoKT8wOmgsV3RlLnNldChkLGgrMSksZ30odGhpcy51aUNvbnRhaW5lciksdGhpcy5mb2N1c2FibGVFbGVtZW50LmFkZExvY2FsSG9vaygiY29weSIsZnVuY3Rpb24oX2Up''@;'; put 'put ''e3JldHVybiB5Lm9uQ29weShfZSl9KS5hZGRMb2NhbEhvb2soImN1dCIsZnVuY3Rpb24oX2Upe3JldHVybiB5Lm9uQ3V0KF9lKX0pLmFkZExvY2FsSG9vaygicGFzdGUiLGZ1bmN0aW9uKF9lKXtyZXR1cm4geS5vblBhc3RlKF9lKX0pLHRNKE52KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2lu''@;'; put 'put ''Iix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksdE0oTnYoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVn''@;'; put 'put ''aW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZm9jdXNhYmxlRWxlbWVudCYmcnhlKHRoaXMuZm9jdXNhYmxlRWxlbWVudCksdE0oTnYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0s''@;'; put 'put ''e2tleToiY29weSIsdmFsdWU6ZnVuY3Rpb24oKXtuTS5nZXQodGhpcykuaXNUcmlnZ2VyZWRCeUNvcHk9ITAsdGhpcy5nZXRPckNyZWF0ZUZvY3VzYWJsZUVsZW1lbnQoKSx0aGlzLmZvY3VzYWJsZUVsZW1lbnQuZm9jdXMoKSx0aGlzLmhvdC5yb290RG9jdW1lbnQuZXhlY0NvbW1hbmQoImNv''@;'; put 'put ''cHkiKX19LHtrZXk6ImN1dCIsdmFsdWU6ZnVuY3Rpb24oKXtuTS5nZXQodGhpcykuaXNUcmlnZ2VyZWRCeUN1dD0hMCx0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpLHRoaXMuaG90LnJvb3REb2N1bWVudC5leGVjQ29tbWFu''@;'; put 'put ''ZCgiY3V0Iil9fSx7a2V5OiJnZXRSYW5nZWRDb3B5YWJsZURhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1bXSxaPVtdLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXtpYShfZS5zdGFydFJvdyxfZS5lbmRSb3csZnVuY3Rpb24oQmUpey0xPT09Wi5pbmRleE9mKEJl''@;'; put 'put ''KSYmWi5wdXNoKEJlKX0pLGlhKF9lLnN0YXJ0Q29sLF9lLmVuZENvbCxmdW5jdGlvbihCZSl7LTE9PT11ZS5pbmRleE9mKEJlKSYmdWUucHVzaChCZSl9KX0pLFVyKFosZnVuY3Rpb24oX2Upe3ZhciBCZT1bXTtVcih1ZSxmdW5jdGlvbihOZSl7QmUucHVzaChDLmhvdC5nZXRDb3B5YWJsZURh''@;'; put 'put ''dGEoX2UsTmUpKX0pLEkucHVzaChCZSl9KSxjeihJKX19LHtrZXk6ImdldFJhbmdlZERhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1bXSxaPVtdLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXtpYShfZS5zdGFydFJvdyxfZS5lbmRSb3csZnVuY3Rpb24oQmUpey0x''@;'; put 'put ''PT09Wi5pbmRleE9mKEJlKSYmWi5wdXNoKEJlKX0pLGlhKF9lLnN0YXJ0Q29sLF9lLmVuZENvbCxmdW5jdGlvbihCZSl7LTE9PT11ZS5pbmRleE9mKEJlKSYmdWUucHVzaChCZSl9KX0pLFVyKFosZnVuY3Rpb24oX2Upe3ZhciBCZT1bXTtVcih1ZSxmdW5jdGlvbihOZSl7QmUucHVzaChDLmhv''@;'; put 'put ''dC5nZXRDb3B5YWJsZURhdGEoX2UsTmUpKX0pLEkucHVzaChCZSl9KSxJfX0se2tleToicGFzdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOiIiLEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lk''@;'; put 'put ''IDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnk7aWYoeXx8Qyl7dmFyIEk9bmV3IFVhdDt5JiZJLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9wbGFpbiIseSksQyYmSS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvaHRtbCIsQyksdGhpcy5nZXRPckNyZWF0ZUZvY3VzYWJs''@;'; put 'put ''ZUVsZW1lbnQoKSx0aGlzLm9uUGFzdGUoSSl9fX0se2tleToic2V0Q29weWFibGVUZXh0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCk7aWYoeSl7dmFyIEM9eS5nZXRUb3BTdGFydENvcm5lcigpLEk9eS5nZXRCb3R0b21FbmRDb3JuZXIo''@;'; put 'put ''KSxaPUMucm93LHVlPUMuY29sLF9lPUkucm93LEJlPUkuY29sLE5lPU1hdGgubWluKF9lLFordGhpcy5yb3dzTGltaXQtMSksS2U9TWF0aC5taW4oQmUsdWUrdGhpcy5jb2x1bW5zTGltaXQtMSk7dGhpcy5jb3B5YWJsZVJhbmdlcy5sZW5ndGg9MCx0aGlzLmNvcHlhYmxlUmFuZ2VzLnB1c2go''@;'; put 'put ''e3N0YXJ0Um93Olosc3RhcnRDb2w6dWUsZW5kUm93Ok5lLGVuZENvbDpLZX0pLHRoaXMuY29weWFibGVSYW5nZXM9dGhpcy5ob3QucnVuSG9va3MoIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLHRoaXMuY29weWFibGVSYW5nZXMpLChfZSE9PU5lfHxCZSE9PUtlKSYmdGhpcy5ob3QucnVuSG9va3Mo''@;'; put 'put ''ImFmdGVyQ29weUxpbWl0IixfZS1aKzEsQmUtdWUrMSx0aGlzLnJvd3NMaW1pdCx0aGlzLmNvbHVtbnNMaW1pdCl9fX0se2tleToiZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldEFjdGl2ZUVkaXRvcigpLEM9eT95LlRFWFRB''@;'; put 'put ''UkVBOnZvaWQgMDtDP3RoaXMuZm9jdXNhYmxlRWxlbWVudC5zZXRGb2N1c2FibGVFbGVtZW50KEMpOnRoaXMuZm9jdXNhYmxlRWxlbWVudC51c2VTZWNvbmRhcnlFbGVtZW50KCl9fSx7a2V5OiJpc0VkaXRvck9wZW5lZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRBY3Rp''@;'; put 'put ''dmVFZGl0b3IoKTtyZXR1cm4geSYmeS5pc09wZW5lZCgpfX0se2tleToicG9wdWxhdGVWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFz''@;'; put 'put ''dCgpO2lmKHkubGVuZ3RoKXtmb3IodmFyIEk9eS5sZW5ndGgsWj15WzBdLmxlbmd0aCx1ZT1bXSxfZT1DLmdldFRvcFN0YXJ0Q29ybmVyKCksQmU9X2Uucm93LE5lPV9lLmNvbCxLZT1DLmdldEJvdHRvbUVuZENvcm5lcigpLHB0PUtlLnJvdyxPdD1LZS5jb2wsJHQ9QmUsZm49TmUsTG49QmUs''@;'; put 'put ''aXI9TmU7dWUubGVuZ3RoPEl8fCR0PD1wdDspe3ZhciBtcj10aGlzLmhvdC5nZXRDZWxsTWV0YSgkdCxOZSksU3I9bXIuc2tpcFJvd09uUGFzdGUsd3I9bXIudmlzdWFsUm93O2lmKCR0PXdyKzEsITAhPT1Tcil7TG49d3IsZm49TmU7Zm9yKHZhciBRcj1bXSx5aT11ZS5sZW5ndGglSTtRci5s''@;'; put 'put ''ZW5ndGg8Wnx8Zm48PU90Oyl7dmFyIEtpPXRoaXMuaG90LmdldENlbGxNZXRhKEJlLGZuKSxTbz1LaS5za2lwQ29sdW1uT25QYXN0ZSxQbz1LaS52aXN1YWxDb2w7aWYoZm49UG8rMSwhMCE9PVNvKXtpcj1Qbzt2YXIgU2E9UXIubGVuZ3RoJVo7UXIucHVzaCh5W3lpXVtTYV0pfX11ZS5wdXNo''@;'; put 'put ''KFFyKX19cmV0dXJuIHRoaXMuaG90LnBvcHVsYXRlRnJvbUFycmF5KEJlLE5lLHVlLHZvaWQgMCx2b2lkIDAsIkNvcHlQYXN0ZS5wYXN0ZSIsdGhpcy5wYXN0ZU1vZGUpLFtCZSxOZSxMbixpcl19fX0se2tleToib25Db3B5Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1uTS5nZXQodGhpcyk7''@;'; put 'put ''aWYoKHRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fEMuaXNUcmlnZ2VyZWRCeUNvcHkpJiYhdGhpcy5pc0VkaXRvck9wZW5lZCgpKXt0aGlzLnNldENvcHlhYmxlVGV4dCgpLEMuaXNUcmlnZ2VyZWRCeUNvcHk9ITE7dmFyIEk9dGhpcy5nZXRSYW5nZWREYXRhKHRoaXMuY29weWFibGVSYW5nZXMp''@;'; put 'put ''O2lmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVDb3B5IixJLHRoaXMuY29weWFibGVSYW5nZXMpKXt2YXIgdWU9Y3ooSSk7aWYoeSYmeS5jbGlwYm9hcmREYXRhKXt2YXIgX2U9TzNlKEkpO3kuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIix1ZSkseS5jbGlwYm9hcmREYXRh''@;'; put 'put ''LnNldERhdGEoInRleHQvaHRtbCIsW2x4ZSxfZV0uam9pbigiIikpfWVsc2UidW5kZWZpbmVkIj09dHlwZW9mIENsaXBib2FyZEV2ZW50JiZ0aGlzLmhvdC5yb290V2luZG93LmNsaXBib2FyZERhdGEuc2V0RGF0YSgiVGV4dCIsdWUpO3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvcHkiLEks''@;'; put 'put ''dGhpcy5jb3B5YWJsZVJhbmdlcyl9eS5wcmV2ZW50RGVmYXVsdCgpfX19LHtrZXk6Im9uQ3V0Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1uTS5nZXQodGhpcyk7aWYoKHRoaXMuaG90LmlzTGlzdGVuaW5nKCl8fEMuaXNUcmlnZ2VyZWRCeUN1dCkmJiF0aGlzLmlzRWRpdG9yT3BlbmVkKCkp''@;'; put 'put ''e3RoaXMuc2V0Q29weWFibGVUZXh0KCksQy5pc1RyaWdnZXJlZEJ5Q3V0PSExO3ZhciBJPXRoaXMuZ2V0UmFuZ2VkRGF0YSh0aGlzLmNvcHlhYmxlUmFuZ2VzKTtpZih0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3V0IixJLHRoaXMuY29weWFibGVSYW5nZXMpKXt2YXIgdWU9Y3ooSSk7aWYo''@;'; put 'put ''eSYmeS5jbGlwYm9hcmREYXRhKXt2YXIgX2U9TzNlKEkpO3kuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIix1ZSkseS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvaHRtbCIsW2x4ZSxfZV0uam9pbigiIikpfWVsc2UidW5kZWZpbmVkIj09dHlwZW9mIENsaXBib2FyZEV2''@;'; put 'put ''ZW50JiZ0aGlzLmhvdC5yb290V2luZG93LmNsaXBib2FyZERhdGEuc2V0RGF0YSgiVGV4dCIsdWUpO3RoaXMuaG90LmVtcHR5U2VsZWN0ZWRDZWxscygiQ29weVBhc3RlLmN1dCIpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckN1dCIsSSx0aGlzLmNvcHlhYmxlUmFuZ2VzKX15LnByZXZlbnRE''@;'; put 'put ''ZWZhdWx0KCl9fX0se2tleToib25QYXN0ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYodGhpcy5ob3QuaXNMaXN0ZW5pbmcoKSYmIXRoaXMuaXNFZGl0b3JPcGVuZWQoKSl7dmFyIEM7aWYoeSYmeS5wcmV2ZW50RGVmYXVsdCYmeS5wcmV2ZW50RGVmYXVsdCgpLHkmJnZvaWQgMCE9PXkuY2xpcGJv''@;'; put 'put ''YXJkRGF0YSl7dmFyIEk9cXEoeS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQvaHRtbCIpLHtBRERfVEFHUzpbIm1ldGEiXSxBRERfQVRUUjpbImNvbnRlbnQiXSxGT1JDRV9CT0RZOiEwfSk7Qz1JJiYvKDx0YWJsZSl8KDxUQUJMRSkvZy50ZXN0KEkpP2RfZShJLHRoaXMuaG90LnJvb3RE''@;'; put 'put ''b2N1bWVudCkuZGF0YTp5LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dC9wbGFpbiIpfWVsc2UidW5kZWZpbmVkIj09dHlwZW9mIENsaXBib2FyZEV2ZW50JiZ2b2lkIDAhPT10aGlzLmhvdC5yb290V2luZG93LmNsaXBib2FyZERhdGEmJihDPXRoaXMuaG90LnJvb3RXaW5kb3cuY2xpcGJv''@;'; put 'put ''YXJkRGF0YS5nZXREYXRhKCJUZXh0IikpO2lmKCJzdHJpbmciPT10eXBlb2YgQyYmKEM9ZnVuY3Rpb24gb3FlKGQpe3ZhciBnPVtbIiJdXTtpZigwPT09ZC5sZW5ndGgpcmV0dXJuIGc7Zm9yKHZhciB5LGg9MCx2PTA7ZC5sZW5ndGg+MCYmeSE9PWQubGVuZ3RoOylpZih5PWQubGVuZ3RoLGQu''@;'; put 'put ''bWF0Y2goTVNlKSlkPWQucmVwbGFjZShNU2UsIiIpLGdbdl1baCs9MV09IiI7ZWxzZSBpZihkLm1hdGNoKFNTZSkpZD1kLnJlcGxhY2UoU1NlLCIiKSxoPTAsZ1t2Kz0xXT1bIiJdO2Vsc2V7dmFyIEM9IiI7aWYoZC5zdGFydHNXaXRoKCciJykpe2Zvcih2YXIgST0wLFo9ITA7Wjspe3ZhciB1''@;'; put 'put ''ZT1kLnNsaWNlKDAsMSk7JyInPT09dWUmJihJKz0xKSxDKz11ZSwoMD09PShkPWQuc2xpY2UoMSkpLmxlbmd0aHx8ZC5tYXRjaCgvXltcdFxyXG5dLykmJkklMj09MCkmJihaPSExKX1DPUMucmVwbGFjZSgvXiIvLCIiKS5yZXBsYWNlKC8iJC8sIiIpLnJlcGxhY2UoL1siXSovZyxmdW5jdGlv''@;'; put 'put ''bihCZSl7cmV0dXJuIG5ldyBBcnJheShNYXRoLmZsb29yKEJlLmxlbmd0aC8yKSkuZmlsbCgnIicpLmpvaW4oIiIpfSl9ZWxzZXt2YXIgX2U9ZC5tYXRjaChpcWUpO2Q9ZC5zbGljZSgoQz1fZT9fZVswXToiIikubGVuZ3RoKX1nW3ZdW2hdPUN9cmV0dXJuIGd9KEMpKSwoIUN8fDAhPT1DLmxl''@;'; put 'put ''bmd0aCkmJiExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZVBhc3RlIixDLHRoaXMuY29weWFibGVSYW5nZXMpKXt2YXIgX2U9ZnVuY3Rpb24gcWF0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHJsdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gbmx0KGQs''@;'; put 'put ''Zyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYm''@;'; put 'put ''KHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gdGx0KGQsZyl7aWYo''@;'; put 'put ''ZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBpeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9''@;'; put 'put ''PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGl4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gZWx0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBh''@;'; put 'put ''dHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odGhpcy5wb3B1bGF0ZVZhbHVlcyhDKSw0KSxLZT1f''@;'; put 'put ''ZVsyXSxwdD1fZVszXTt0aGlzLmhvdC5zZWxlY3RDZWxsKF9lWzBdLF9lWzFdLE1hdGgubWluKHRoaXMuaG90LmNvdW50Um93cygpLTEsS2UpLE1hdGgubWluKHRoaXMuaG90LmNvdW50Q29scygpLTEscHQpKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJQYXN0ZSIsQyx0aGlzLmNvcHlhYmxl''@;'; put 'put ''UmFuZ2VzKX19fX0se2tleToib25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gVmF0KGQpe3JldHVybntrZXk6ImNvcHkiLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5n''@;'; put 'put ''ZXRUcmFuc2xhdGVkUGhyYXNlKEI0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7ZC5jb3B5KCl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7aWYoMD09PXRoaXMuY291bnRSb3dzKCl8fDA9PT10aGlzLmNvdW50Q29scygpKXJldHVybiEwO3ZhciBoPXRoaXMuZ2V0U2VsZWN0ZWQoKTtyZXR1cm4haHx8''@;'; put 'put ''aC5sZW5ndGg+MX0saGlkZGVuOiExfX0odGhpcyksZnVuY3Rpb24gamF0KGQpe3JldHVybntrZXk6ImN1dCIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoUDRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtkLmN1dCgpfSxkaXNhYmxlZDpmdW5jdGlvbigp''@;'; put 'put ''e2lmKDA9PT10aGlzLmNvdW50Um93cygpfHwwPT09dGhpcy5jb3VudENvbHMoKSlyZXR1cm4hMDt2YXIgaD10aGlzLmdldFNlbGVjdGVkKCk7cmV0dXJuIWh8fGgubGVuZ3RoPjF9LGhpZGRlbjohMX19KHRoaXMpKX19LHtrZXk6Im9uQWZ0ZXJPbkNlbGxNb3VzZVVwIix2YWx1ZTpmdW5jdGlv''@;'; put 'put ''bigpeyF0aGlzLmhvdC5pc0xpc3RlbmluZygpfHx0aGlzLmlzRWRpdG9yT3BlbmVkKCl8fHRoaXMuaG90LmdldFNldHRpbmdzKCkuZnJhZ21lbnRTZWxlY3Rpb258fCh0aGlzLmdldE9yQ3JlYXRlRm9jdXNhYmxlRWxlbWVudCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpKX19LHtr''@;'; put 'put ''ZXk6Im9uQWZ0ZXJTZWxlY3Rpb25FbmQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEM9bk0uZ2V0KHRoaXMpLmlzRnJhZ21lbnRTZWxlY3Rpb25FbmFibGVkO3RoaXMuaXNFZGl0b3JPcGVuZWQoKXx8KHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksKCFDfHx0aGlzLmZvY3VzYWJs''@;'; put 'put ''ZUVsZW1lbnQuZ2V0Rm9jdXNhYmxlRWxlbWVudCgpPT09dGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fCFZYmUoKSkmJih0aGlzLnNldENvcHlhYmxlVGV4dCgpLHRoaXMuZm9jdXNhYmxlRWxlbWVudC5mb2N1cygpKSl9fSx7a2V5OiJvbkJlZm9yZUtleURvd24iLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKCl7aWYodGhpcy5ob3QuaXNMaXN0ZW5pbmcoKSYmIXRoaXMuaXNFZGl0b3JPcGVuZWQoKSl7dmFyIHk9dGhpcy5ob3Qucm9vdERvY3VtZW50LmFjdGl2ZUVsZW1lbnQsQz10aGlzLmhvdC5nZXRBY3RpdmVFZGl0b3IoKTshQ3x8eSE9PXRoaXMuZm9jdXNhYmxlRWxlbWVudC5n''@;'; put 'put ''ZXRGb2N1c2FibGVFbGVtZW50KCkmJnkhPT1DLnNlbGVjdHx8KHRoaXMuZ2V0T3JDcmVhdGVGb2N1c2FibGVFbGVtZW50KCksdGhpcy5mb2N1c2FibGVFbGVtZW50LmZvY3VzKCkpfX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5mb2N1c2FibGVFbGVtZW50JiYocnhl''@;'; put 'put ''KHRoaXMuZm9jdXNhYmxlRWxlbWVudCksdGhpcy5mb2N1c2FibGVFbGVtZW50PW51bGwpLHRNKE52KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFF0ZX19LHtrZXk6IlNFVFRJTkdfS0VZ''@;'; put 'put ''UyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW1F0ZV0uY29uY2F0KGhsdCl9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiA4MH19XSksaH0oWXMpO2Z1bmN0aW9uIHN4ZShkLGcpe3JldHVybiJib3JkZXJfcm93Ii5jb25jYXQoZCwiY29sIikuY29uY2F0KGcp''@;'; put 'put ''fWZ1bmN0aW9uIFI4ZShkKXt2YXIgZyxoO3JldHVybihUbyhkLnN0YXJ0KXx8VG8oZC5sZWZ0KSkmJihkLnN0YXJ0PW51bGwhPT0oZz1kLnN0YXJ0KSYmdm9pZCAwIT09Zz9nOmQubGVmdCksKFRvKGQuZW5kKXx8VG8oZC5yaWdodCkpJiYoZC5lbmQ9bnVsbCE9PShoPWQuZW5kKSYmdm9pZCAw''@;'; put 'put ''IT09aD9oOmQucmlnaHQpLGRlbGV0ZSBkLmxlZnQsZGVsZXRlIGQucmlnaHQsZH1mdW5jdGlvbiBDeihkKXtyZXR1cm4gVG8oZC5zdGFydCkmJihkLmxlZnQ9ZC5zdGFydCksVG8oZC5lbmQpJiYoZC5yaWdodD1kLmVuZCksZH1mdW5jdGlvbiBCOGUoZCxnKXtyZXR1cm57aWQ6c3hlKGQsZyks''@;'; put 'put ''Ym9yZGVyOnt3aWR0aDoxLGNvbG9yOiIjMDAwIixjb3JuZXJWaXNpYmxlOiExfSxyb3c6ZCxjb2w6Zyx0b3A6e2hpZGU6ITB9LGJvdHRvbTp7aGlkZTohMH0sc3RhcnQ6e2hpZGU6ITB9LGVuZDp7aGlkZTohMH19fWZ1bmN0aW9uIGp2KGQsZyl7dmFyIGg9ITE7cmV0dXJuIFVyKGQuZ2V0U2Vs''@;'; put 'put ''ZWN0ZWRSYW5nZSgpLGZ1bmN0aW9uKHYpe3YuZm9yQWxsKGZ1bmN0aW9uKHksQyl7aWYoISh5PDB8fEM8MCkpe3ZhciBJPWQuZ2V0Q2VsbE1ldGEoeSxDKS5ib3JkZXJzO2lmKEkpe2lmKCFnKXJldHVybiBoPSEwLCExO2lmKCFvMShJW2ddLCJoaWRlIil8fCExPT09SVtnXS5oaWRlKXJldHVy''@;'; put 'put ''biBoPSEwLCExfX19KX0pLGh9ZnVuY3Rpb24gSnRlKGQpe3JldHVybic8c3BhbiBjbGFzcz0ic2VsZWN0ZWQiPicuY29uY2F0KFN0cmluZy5mcm9tQ2hhckNvZGUoMTAwMDMpLCI8L3NwYW4+IikuY29uY2F0KGQpfXZhciB3bHQ9bmV3IE1hcChbWyJsZWZ0Iiwic3RhcnQiXSxbInJpZ2h0Iiwi''@;'; put 'put ''ZW5kIl1dKTtmdW5jdGlvbiBfbHQoZCl7cmV0dXJue2tleToiYm9yZGVyczp0b3AiLG5hbWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoZXBlKTtyZXR1cm4ganYodGhpcywidG9wIikmJihoPUp0ZShoKSksaH0sY2FsbGJhY2s6ZnVuY3Rpb24oaCx2KXt2YXIg''@;'; put 'put ''eT1qdih0aGlzLCJ0b3AiKTtkLnByZXBhcmVCb3JkZXIodiwidG9wIix5KX19fWZ1bmN0aW9uIENsdChkKXt2YXIgZz1kLmhvdC5pc1J0bCgpPyJzdGFydCI6ImVuZCI7cmV0dXJue2tleToiYm9yZGVyczpyaWdodCIsbmFtZTpmdW5jdGlvbigpe3ZhciB2PXRoaXMuZ2V0VHJhbnNsYXRlZFBo''@;'; put 'put ''cmFzZSh0cGUpO3JldHVybiBqdih0aGlzLGcpJiYodj1KdGUodikpLHZ9LGNhbGxiYWNrOmZ1bmN0aW9uKHYseSl7dmFyIEM9anYodGhpcyxnKTtkLnByZXBhcmVCb3JkZXIoeSxnLEMpfX19ZnVuY3Rpb24ga2x0KGQpe3JldHVybntrZXk6ImJvcmRlcnM6Ym90dG9tIixuYW1lOmZ1bmN0aW9u''@;'; put 'put ''KCl7dmFyIGg9dGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKG5wZSk7cmV0dXJuIGp2KHRoaXMsImJvdHRvbSIpJiYoaD1KdGUoaCkpLGh9LGNhbGxiYWNrOmZ1bmN0aW9uKGgsdil7dmFyIHk9anYodGhpcywiYm90dG9tIik7ZC5wcmVwYXJlQm9yZGVyKHYsImJvdHRvbSIseSl9fX1mdW5jdGlv''@;'; put 'put ''biBTbHQoZCl7dmFyIGc9ZC5ob3QuaXNSdGwoKT8iZW5kIjoic3RhcnQiO3JldHVybntrZXk6ImJvcmRlcnM6bGVmdCIsbmFtZTpmdW5jdGlvbigpe3ZhciB2PXRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShycGUpO3JldHVybiBqdih0aGlzLGcpJiYodj1KdGUodikpLHZ9LGNhbGxiYWNrOmZ1''@;'; put 'put ''bmN0aW9uKHYseSl7dmFyIEM9anYodGhpcyxnKTtkLnByZXBhcmVCb3JkZXIoeSxnLEMpfX19ZnVuY3Rpb24gTWx0KGQpe3JldHVybntrZXk6ImJvcmRlcnM6bm9fYm9yZGVycyIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoaXBlKX0sY2FsbGJhY2s6''@;'; put 'put ''ZnVuY3Rpb24oaCx2KXtkLnByZXBhcmVCb3JkZXIodiwibm9Cb3JkZXJzIil9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIWp2KHRoaXMpfX19ZnVuY3Rpb24gUDhlKGQpe3JldHVybihQOGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRl''@;'; put 'put ''cmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiB1eGUo''@;'; put 'put ''ZCxnKXtyZXR1cm4gZnVuY3Rpb24gSWx0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBUbHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lm''@;'; put 'put ''KG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJl''@;'; put 'put ''dHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiB4bHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGN4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4''@;'; put 'put ''LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8u''@;'; put 'put ''dGVzdChoKSlyZXR1cm4gY3hlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBFbHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3Rz''@;'; put 'put ''IG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGN4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIERs''@;'; put 'put ''dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIGZ4ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFi''@;'; put 'put ''bGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHJNKCl7cmV0dXJuIHJNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQu''@;'; put 'put ''YmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1PbHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHJNLmFwcGx5KHRoaXMsYXJndW1l''@;'; put 'put ''bnRzKX1mdW5jdGlvbiBPbHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVp2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEY4ZShkLGcpe3JldHVybihGOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90''@;'; put 'put ''b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBQbHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1QOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJy''@;'; put 'put ''b3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGh4ZShkKX1mdW5jdGlvbiBoeGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBz''@;'; put 'put ''dXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFp2KGQpe3JldHVybihadj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVP''@;'; put 'put ''ZihoKX0pKGQpfWZ1bmN0aW9uIEhsdChkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIFh0ZT0iY3VzdG9tQm9yZGVycyIsVmx0PWZ1bmN0''@;'; put 'put ''aW9uKGQpeyFmdW5jdGlvbiBSbHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcu''@;'; put 'put ''cHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRjhlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gQmx0KGQpe3ZhciBnPWZ1bmN0''@;'; put 'put ''aW9uIEZsdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVl''@;'; put 'put ''T2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVp2KGQpO2lmKGcpe3ZhciBDPVp2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixh''@;'; put 'put ''cmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBQbHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtEbHQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50''@;'; put 'put ''c1tJXTtyZXR1cm4gSGx0KGh4ZSh2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQoQykpKSwic2F2ZWRCb3JkZXJzIixbXSksdn1yZXR1cm4gZnVuY3Rpb24gTGx0KGQsZyxoKXtnJiZmeGUoZC5wcm90b3R5cGUsZyksaCYmZnhlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInBy''@;'; put 'put ''b3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbWHRlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRo''@;'; put 'put ''aXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbihDKXtyZXR1cm4geS5vbkFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyhDKX0pLHRoaXMuYWRkSG9vaygiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVySW5pdCgpfSksck0oWnYo''@;'; put 'put ''aC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhpZGVCb3JkZXJzKCksck0oWnYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToi''@;'; put 'put ''dXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5jaGFuZ2VCb3JkZXJTZXR0aW5ncygpLHJNKFp2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2V0Qm9y''@;'; put 'put ''ZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLFo9WyJ0b3AiLCJib3R0b20iLCJzdGFydCIsImVuZCJdLHVlPW51bGw7QyYmKHRoaXMuY2hlY2tTZXR0aW5nc0NvaGVzaW9uKFtDXSksWj1PYmplY3Qua2V5cyhDKSx1ZT1SOGUoQykpO3ZhciBCZT11eihDTyh5KSk7VXIoeSxm''@;'; put 'put ''dW5jdGlvbihOZSl7Zm9yKHZhciBwdD11eGUoQmUoTmUpLDQpLCR0PXB0WzFdLGZuPXB0WzJdLExuPXB0WzNdLGlyPWZ1bmN0aW9uKHdyKXtmb3IodmFyIFFyPWZ1bmN0aW9uKFNvKXtVcihaLGZ1bmN0aW9uKFBvKXtJLnByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWQod3IsU28sdWUsZnVu''@;'; put 'put ''Y3Rpb24gYmx0KGQpe3ZhciBnO3JldHVybiBudWxsIT09KGc9d2x0LmdldChkKSkmJnZvaWQgMCE9PWc/ZzpkfShQbykpfSl9LHlpPSR0O3lpPD1Mbjt5aSs9MSlRcih5aSl9LG1yPXB0WzBdO21yPD1mbjttcis9MSlpcihtcil9KSx0aGlzLmhvdC52aWV3LnJlbmRlcigpfX0se2tleToiZ2V0''@;'; put 'put ''Qm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcztpZighQXJyYXkuaXNBcnJheSh5KSlyZXR1cm4gdGhpcy5zYXZlZEJvcmRlcnM7dmFyIFo9dXooQ08oeSkpLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXtmb3IodmFyIE5lPXV4ZShaKF9lKSw0KSxwdD1OZVsxXSxP''@;'; put 'put ''dD1OZVsyXSwkdD1OZVszXSxmbj1mdW5jdGlvbihtcil7Zm9yKHZhciBTcj1mdW5jdGlvbih5aSl7VXIoQy5zYXZlZEJvcmRlcnMsZnVuY3Rpb24oS2kpe0tpLnJvdz09PW1yJiZLaS5jb2w9PT15aSYmdWUucHVzaChDeihLaSkpfSl9LHdyPXB0O3dyPD0kdDt3cis9MSlTcih3cil9LExuPU5l''@;'; put 'put ''WzBdO0xuPD1PdDtMbis9MSlmbihMbil9KSx1ZX19LHtrZXk6ImNsZWFyQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt5P3RoaXMuc2V0Qm9yZGVycyh5KTooVXIodGhpcy5zYXZlZEJvcmRlcnMsZnVuY3Rpb24oSSl7Qy5jbGVhckJvcmRlcnNGcm9tU2VsZWN0aW9uU2V0''@;'; put 'put ''dGluZ3MoSS5pZCksQy5jbGVhck51bGxDZWxsUmFuZ2UoKSxDLmhvdC5yZW1vdmVDZWxsTWV0YShJLnJvdyxJLmNvbCwiYm9yZGVycyIpfSksdGhpcy5zYXZlZEJvcmRlcnMubGVuZ3RoPTApfX0se2tleToiaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5LEMpe3Ro''@;'; put 'put ''aXMuY2hlY2tTYXZlZEJvcmRlcnMoeSl8fHRoaXMuc2F2ZWRCb3JkZXJzLnB1c2goeSk7dmFyIFo9dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LnJvdyx5LmNvbCkpO3RoaXMuY2hlY2tDdXN0b21TZWxlY3Rpb25zKHksWixDKXx8dGhpcy5o''@;'; put 'put ''b3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5hZGRDdXN0b21TZWxlY3Rpb24oe2JvcmRlcjp5LHZpc3VhbENlbGxSYW5nZTpafSl9fSx7a2V5OiJwcmVwYXJlQm9yZGVyRnJvbUN1c3RvbUFkZGVkIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxaKXt2YXIgdWU9dGhpcy5ob3QuY291bnRSb3dzKCksX2U9''@;'; put 'put ''dGhpcy5ob3QuY291bnRDb2xzKCk7aWYoISh5Pj11ZXx8Qz49X2UpKXt2YXIgQmU9QjhlKHksQyk7SSYmKEJlPWZ1bmN0aW9uIHZsdChkLGcpe3JldHVybiBvMShnLCJib3JkZXIiKSYmZy5ib3JkZXImJihkLmJvcmRlcj1nLmJvcmRlciksbzEoZywidG9wIikmJlRvKGcudG9wKSYmKGcudG9w''@;'; put 'put ''Pyh4bChnLnRvcCl8fChnLnRvcD17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9KSxkLnRvcD1nLnRvcCk6KGcudG9wPXtoaWRlOiEwfSxkLnRvcD1nLnRvcCkpLG8xKGcsImJvdHRvbSIpJiZUbyhnLmJvdHRvbSkmJihnLmJvdHRvbT8oeGwoZy5ib3R0b20pfHwoZy5ib3R0b209e3dpZHRoOjEsY29s''@;'; put 'put ''b3I6IiMwMDAifSksZC5ib3R0b209Zy5ib3R0b20pOihnLmJvdHRvbT17aGlkZTohMH0sZC5ib3R0b209Zy5ib3R0b20pKSxvMShnLCJzdGFydCIpJiZUbyhnLnN0YXJ0KSYmKGcuc3RhcnQ/KHhsKGcuc3RhcnQpfHwoZy5zdGFydD17d2lkdGg6MSxjb2xvcjoiIzAwMCJ9KSxkLnN0YXJ0PWcu''@;'; put 'put ''c3RhcnQpOihnLnN0YXJ0PXtoaWRlOiEwfSxkLnN0YXJ0PWcuc3RhcnQpKSxvMShnLCJlbmQiKSYmVG8oZy5lbmQpJiYoZy5lbmQ/KHhsKGcuZW5kKXx8KGcuZW5kPXt3aWR0aDoxLGNvbG9yOiIjMDAwIn0pLGQuZW5kPWcuZW5kKTooZy5lbmQ9e2hpZGU6ITB9LGQuZW5kPWcuZW5kKSksZH0o''@;'; put 'put ''QmUsSSksVXIodGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLGZ1bmN0aW9uKE5lKXtpZihCZS5pZD09PU5lLnNldHRpbmdzLmlkKXJldHVybiBPYmplY3QuYXNzaWduKE5lLnNldHRpbmdzLEkpLEJlLmlkPU5lLnNldHRpbmdzLmlkLEJlLnRvcD1OZS5zZXR0''@;'; put 'put ''aW5ncy50b3AsQmUuYm90dG9tPU5lLnNldHRpbmdzLmJvdHRvbSxCZS5zdGFydD1OZS5zZXR0aW5ncy5zdGFydCxCZS5lbmQ9TmUuc2V0dGluZ3MuZW5kLCExfSkpLHRoaXMuaG90LnNldENlbGxNZXRhKHksQywiYm9yZGVycyIsQ3ooQmUpKSx0aGlzLmluc2VydEJvcmRlckludG9TZXR0aW5n''@;'; put 'put ''cyhCZSxaKX19fSx7a2V5OiJwcmVwYXJlQm9yZGVyRnJvbUN1c3RvbUFkZGVkUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcyxaPU1hdGgubWluKHkudG8ucm93LHRoaXMuaG90LmNvdW50Um93cygpLTEpLHVlPU1hdGgubWluKHkudG8uY29sLHRoaXMuaG90LmNvdW50Q29s''@;'; put 'put ''cygpLTEpO2lhKHkuZnJvbS5yb3csWixmdW5jdGlvbihfZSl7aWEoeS5mcm9tLmNvbCx1ZSxmdW5jdGlvbihCZSl7dmFyIE5lPUI4ZShfZSxCZSksS2U9MDtfZT09PXkuZnJvbS5yb3cmJm8xKEMsInRvcCIpJiYoS2UrPTEsTmUudG9wPUMudG9wKSxfZT09PXkudG8ucm93JiZvMShDLCJib3R0''@;'; put 'put ''b20iKSYmKEtlKz0xLE5lLmJvdHRvbT1DLmJvdHRvbSksQmU9PT15LmZyb20uY29sJiZvMShDLCJzdGFydCIpJiYoS2UrPTEsTmUuc3RhcnQ9Qy5zdGFydCksQmU9PT15LnRvLmNvbCYmbzEoQywiZW5kIikmJihLZSs9MSxOZS5lbmQ9Qy5lbmQpLEtlPjAmJihJLmhvdC5zZXRDZWxsTWV0YShf''@;'; put 'put ''ZSxCZSwiYm9yZGVycyIsQ3ooTmUpKSxJLmluc2VydEJvcmRlckludG9TZXR0aW5ncyhOZSkpfSl9KX19LHtrZXk6InJlbW92ZUFsbEJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9c3hlKHksQyk7dGhpcy5zcGxpY2VCb3JkZXIoSSksdGhpcy5jbGVhckJvcmRlcnNGcm9tU2Vs''@;'; put 'put ''ZWN0aW9uU2V0dGluZ3MoSSksdGhpcy5jbGVhck51bGxDZWxsUmFuZ2UoKSx0aGlzLmhvdC5yZW1vdmVDZWxsTWV0YSh5LEMsImJvcmRlcnMiKX19LHtrZXk6InNldEJvcmRlciIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7dmFyIHVlPXRoaXMuaG90LmdldENlbGxNZXRhKHksQykuYm9yZGVy''@;'; put 'put ''czt1ZT11ZSYmdm9pZCAwIT09dWUuYm9yZGVyP1I4ZSh1ZSk6QjhlKHksQyksWj8odWVbSV09e2hpZGU6ITB9LDQ9PT10aGlzLmNvdW50SGlkZSh1ZSk/dGhpcy5yZW1vdmVBbGxCb3JkZXJzKHksQyk6KHRoaXMuY2hlY2tDdXN0b21TZWxlY3Rpb25zRnJvbUNvbnRleHRNZW51KHVlLEksWil8''@;'; put 'put ''fHRoaXMuaW5zZXJ0Qm9yZGVySW50b1NldHRpbmdzKHVlKSx0aGlzLmhvdC5zZXRDZWxsTWV0YSh5LEMsImJvcmRlcnMiLEN6KHVlKSkpKToodWVbSV09e3dpZHRoOjEsY29sb3I6IiMwMDAifSx0aGlzLmNoZWNrQ3VzdG9tU2VsZWN0aW9uc0Zyb21Db250ZXh0TWVudSh1ZSxJLFopfHx0aGlz''@;'; put 'put ''Lmluc2VydEJvcmRlckludG9TZXR0aW5ncyh1ZSksdGhpcy5ob3Quc2V0Q2VsbE1ldGEoeSxDLCJib3JkZXJzIixDeih1ZSkpKX19LHtrZXk6InByZXBhcmVCb3JkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj10aGlzO1VyKHksZnVuY3Rpb24odWUpe3ZhciBfZT11ZS5zdGFydCxC''@;'; put 'put ''ZT11ZS5lbmQ7aWYoX2Uucm93PT09QmUucm93JiZfZS5jb2w9PT1CZS5jb2wpIm5vQm9yZGVycyI9PT1DP1oucmVtb3ZlQWxsQm9yZGVycyhfZS5yb3csX2UuY29sKTpaLnNldEJvcmRlcihfZS5yb3csX2UuY29sLEMsSSk7ZWxzZSBzd2l0Y2goQyl7Y2FzZSJub0JvcmRlcnMiOmlhKF9lLmNv''@;'; put 'put ''bCxCZS5jb2wsZnVuY3Rpb24oTmUpe2lhKF9lLnJvdyxCZS5yb3csZnVuY3Rpb24oS2Upe1oucmVtb3ZlQWxsQm9yZGVycyhLZSxOZSl9KX0pO2JyZWFrO2Nhc2UidG9wIjppYShfZS5jb2wsQmUuY29sLGZ1bmN0aW9uKE5lKXtaLnNldEJvcmRlcihfZS5yb3csTmUsQyxJKX0pO2JyZWFrO2Nh''@;'; put 'put ''c2UiYm90dG9tIjppYShfZS5jb2wsQmUuY29sLGZ1bmN0aW9uKE5lKXtaLnNldEJvcmRlcihCZS5yb3csTmUsQyxJKX0pO2JyZWFrO2Nhc2Uic3RhcnQiOmlhKF9lLnJvdyxCZS5yb3csZnVuY3Rpb24oTmUpe1ouc2V0Qm9yZGVyKE5lLF9lLmNvbCxDLEkpfSk7YnJlYWs7Y2FzZSJlbmQiOmlh''@;'; put 'put ''KF9lLnJvdyxCZS5yb3csZnVuY3Rpb24oTmUpe1ouc2V0Qm9yZGVyKE5lLEJlLmNvbCxDLEkpfSl9fSl9fSx7a2V5OiJjcmVhdGVDdXN0b21Cb3JkZXJzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO1VyKHksZnVuY3Rpb24oSSl7dmFyIFo9UjhlKEkpO0kucmFuZ2U/Qy5wcmVwYXJl''@;'; put 'put ''Qm9yZGVyRnJvbUN1c3RvbUFkZGVkUmFuZ2UoSS5yYW5nZSxaKTpDLnByZXBhcmVCb3JkZXJGcm9tQ3VzdG9tQWRkZWQoSS5yb3csSS5jb2wsWil9KX19LHtrZXk6ImNvdW50SGlkZSIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIFN1KFt5LnRvcCx5LmJvdHRvbSx5LnN0YXJ0LHkuZW5kXSxm''@;'; put 'put ''dW5jdGlvbihCZSxOZSl7dmFyIEtlPUJlO3JldHVybiBOZSYmTmUuaGlkZSYmKEtlKz0xKSxLZX0sMCl9fSx7a2V5OiJjbGVhckJvcmRlcnNGcm9tU2VsZWN0aW9uU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPU9sKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9t''@;'; put 'put ''U2VsZWN0aW9ucyxmdW5jdGlvbihJKXtyZXR1cm4gSS5zZXR0aW5ncy5pZH0pLmluZGV4T2YoeSk7Qz4tMSYmdGhpcy5ob3Quc2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zW0NdLmNsZWFyKCl9fSx7a2V5OiJjbGVhck51bGxDZWxsUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''dmFyIHk9dGhpcztVcih0aGlzLmhvdC5zZWxlY3Rpb24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnMsZnVuY3Rpb24oQyxJKXtpZihudWxsPT09Qy5jZWxsUmFuZ2UpcmV0dXJuIHkuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2VsZWN0aW9uc1tJXS5kZXN0cm95KCkseS5ob3Qu''@;'; put 'put ''c2VsZWN0aW9uLmhpZ2hsaWdodC5jdXN0b21TZWxlY3Rpb25zLnNwbGljZShJLDEpLCExfSl9fSx7a2V5OiJoaWRlQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1VyKHRoaXMuc2F2ZWRCb3JkZXJzLGZ1bmN0aW9uKEMpe3kuY2xlYXJCb3JkZXJzRnJvbVNlbGVjdGlvblNl''@;'; put 'put ''dHRpbmdzKEMuaWQpLHkuY2xlYXJOdWxsQ2VsbFJhbmdlKCl9KX19LHtrZXk6InNwbGljZUJvcmRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9T2wodGhpcy5zYXZlZEJvcmRlcnMsZnVuY3Rpb24oSSl7cmV0dXJuIEkuaWR9KS5pbmRleE9mKHkpO0M+LTEmJnRoaXMuc2F2ZWRCb3JkZXJz''@;'; put 'put ''LnNwbGljZShDLDEpfX0se2tleToiY2hlY2tTYXZlZEJvcmRlcnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST0hMTtyZXR1cm4gND09PXRoaXMuY291bnRIaWRlKHkpPyh0aGlzLnNwbGljZUJvcmRlcih5LmlkKSxJPSEwKTpVcih0aGlzLnNhdmVkQm9yZGVycyxmdW5jdGlvbih1''@;'; put 'put ''ZSxfZSl7aWYoeS5pZD09PXVlLmlkKXJldHVybiBDLnNhdmVkQm9yZGVyc1tfZV09eSxJPSEwLCExfSksSX19LHtrZXk6ImNoZWNrQ3VzdG9tU2VsZWN0aW9uc0Zyb21Db250ZXh0TWVudSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBaPSExO3JldHVybiBVcih0aGlzLmhvdC5zZWxlY3Rp''@;'; put 'put ''b24uaGlnaGxpZ2h0LmN1c3RvbVNlbGVjdGlvbnMsZnVuY3Rpb24odWUpe2lmKHkuaWQ9PT11ZS5zZXR0aW5ncy5pZClyZXR1cm4gR2wodWUuaW5zdGFuY2VCb3JkZXJzLGZ1bmN0aW9uKF9lKXtfZS50b2dnbGVIaWRkZW5DbGFzcyhDLEkpfSksWj0hMCwhMX0pLFp9fSx7a2V5OiJjaGVja0N1''@;'; put 'put ''c3RvbVNlbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj10aGlzLmNvdW50SGlkZSh5KSx1ZT0hMTtyZXR1cm4gND09PVo/KHRoaXMucmVtb3ZlQWxsQm9yZGVycyh5LnJvdyx5LmNvbCksdWU9ITApOlVyKHRoaXMuaG90LnNlbGVjdGlvbi5oaWdobGlnaHQuY3VzdG9tU2Vs''@;'; put 'put ''ZWN0aW9ucyxmdW5jdGlvbihfZSl7aWYoeS5pZD09PV9lLnNldHRpbmdzLmlkKXJldHVybiBfZS52aXN1YWxDZWxsUmFuZ2U9QyxfZS5jb21taXQoKSxJJiZHbChfZS5pbnN0YW5jZUJvcmRlcnMsZnVuY3Rpb24oQmUpe0JlLmNoYW5nZUJvcmRlclN0eWxlKEkseSl9KSx1ZT0hMCwhMX0pLHVl''@;'; put 'put ''fX0se2tleToiY2hhbmdlQm9yZGVyU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtYdGVdO2lmKEFycmF5LmlzQXJyYXkoeSkpe3ZhciBDPWdoKHkpO3RoaXMuY2hlY2tTZXR0aW5nc0NvaGVzaW9uKEMpLEMubGVuZ3RofHwodGhpcy5zYXZl''@;'; put 'put ''ZEJvcmRlcnM9QyksdGhpcy5jcmVhdGVDdXN0b21Cb3JkZXJzKEMpfWVsc2Ugdm9pZCAwIT09eSYmdGhpcy5jcmVhdGVDdXN0b21Cb3JkZXJzKHRoaXMuc2F2ZWRCb3JkZXJzKX19LHtrZXk6ImNoZWNrU2V0dGluZ3NDb2hlc2lvbiIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9ZnVuY3Rpb24g''@;'; put 'put ''QWx0KGQpe3JldHVybiBkLnNvbWUoZnVuY3Rpb24oZyl7cmV0dXJuIFRvKGcubGVmdCl8fFRvKGcucmlnaHQpfSl9KHkpLEk9ZnVuY3Rpb24geWx0KGQpe3JldHVybiBkLnNvbWUoZnVuY3Rpb24oZyl7cmV0dXJuIFRvKGcuc3RhcnQpfHxUbyhnLmVuZCl9KX0oeSk7aWYoQyYmSSl0aHJvdyBu''@;'; put 'put ''ZXcgRXJyb3IoJ1RoZSAibGVmdCIvInJpZ2h0IiBhbmQgInN0YXJ0Ii8iZW5kIiBvcHRpb25zIHNob3VsZCBub3QgYmUgdXNlZCB0b2dldGhlci4gUGxlYXNlIHVzZSBvbmx5IHRoZSBvcHRpb24gInN0YXJ0Ii8iZW5kIi4nKTtpZih0aGlzLmhvdC5pc1J0bCgpJiZDKXRocm93IG5ldyBFcnJv''@;'; put 'put ''cignVGhlICJsZWZ0Ii8icmlnaHQiIHByb3BlcnRpZXMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIFJUTC4gUGxlYXNlIHVzZSBvcHRpb24gInN0YXJ0Ii8iZW5kIi4nKX19LHtrZXk6Im9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXshdGhpcy5ob3Qu''@;'; put 'put ''Z2V0U2V0dGluZ3MoKVtYdGVdfHx5Lml0ZW1zLnB1c2goe25hbWU6Ii0tLS0tLS0tLSJ9LHtrZXk6ImJvcmRlcnMiLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKHE0ZSl9LGRpc2FibGVkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2VsZWN0aW9uLmlz''@;'; put 'put ''U2VsZWN0ZWRCeUNvcm5lcigpfSxzdWJtZW51OntpdGVtczpbX2x0KHRoaXMpLENsdCh0aGlzKSxrbHQodGhpcyksU2x0KHRoaXMpLE1sdCh0aGlzKV19fSl9fSx7a2V5OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNoYW5nZUJvcmRlclNldHRpbmdzKCl9fSx7a2V5OiJk''@;'; put 'put ''ZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3JNKFp2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFh0ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IDkwfX1dKSxofShZcyk7ZnVuY3Rpb24gSDhlKGQpe3JldHVybihIOGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBkeGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxl''@;'; put 'put ''fHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBpTSgpe3JldHVybiBpTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJp''@;'; put 'put ''bmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9emx0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxpTS5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; put 'put ''cyl9ZnVuY3Rpb24gemx0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD16dihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBOOGUoZCxnKXtyZXR1cm4oTjhlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90''@;'; put 'put ''eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gWWx0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09SDhlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; put 'put ''KCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBweGUoZCl9ZnVuY3Rpb24gcHhlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3Vw''@;'; put 'put ''ZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiB6dihkKXtyZXR1cm4oenY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2Yo''@;'; put 'put ''aCl9KShkKX12YXIgZ3hlPSJkcmFnVG9TY3JvbGwiLEpsdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gR2x0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1''@;'; put 'put ''bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJk44ZShkLGcp''@;'; put 'put ''fShoLGQpO3ZhciBnPWZ1bmN0aW9uIFdsdChkKXt2YXIgZz1mdW5jdGlvbiBVbHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0''@;'; put 'put ''dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj16dihkKTtpZihnKXt2YXIgQz16dih0''@;'; put 'put ''aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gWWx0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBqbHQoZCxnKXtpZighKGQgaW5zdGFu''@;'; put 'put ''Y2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuZXZlbnRNYW5hZ2VyPW5ldyBMMShweGUoeSkpLHkuYm91bmRhcmllcz1udWxsLHkuY2FsbGJhY2s9bnVsbCx5Lmxpc3Rlbmlu''@;'; put 'put ''Zz0hMSx5fXJldHVybiBmdW5jdGlvbiBabHQoZCxnLGgpe2cmJmR4ZShkLnByb3RvdHlwZSxnKSxoJiZkeGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEh''@;'; put 'put ''dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtneGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJhZnRlck9uQ2VsbE1vdXNlRG93biIsZnVuY3Rpb24oQyl7cmV0dXJuIHkuc2V0dXBMaXN0ZW5pbmco''@;'; put 'put ''Qyl9KSx0aGlzLmFkZEhvb2soImFmdGVyT25DZWxsQ29ybmVyTW91c2VEb3duIixmdW5jdGlvbihDKXtyZXR1cm4geS5zZXR1cExpc3RlbmluZyhDKX0pLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxpTSh6dihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7''@;'; put 'put ''a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxpTSh6dihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KCl7dGhpcy51bnJlZ2lzdGVyRXZlbnRzKCksaU0oenYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2V0Qm91bmRhcmllcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5ib3VuZGFyaWVzPXl9fSx7a2V5OiJzZXRDYWxsYmFjayIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oeSl7dGhpcy5jYWxsYmFjaz15fX0se2tleToiY2hlY2siLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9MCxaPTA7Qzx0aGlzLmJvdW5kYXJpZXMudG9wP1o9Qy10aGlzLmJvdW5kYXJpZXMudG9wOkM+dGhpcy5ib3VuZGFyaWVzLmJvdHRvbSYmKFo9Qy10aGlzLmJvdW5kYXJp''@;'; put 'put ''ZXMuYm90dG9tKSx5PHRoaXMuYm91bmRhcmllcy5sZWZ0P0k9eS10aGlzLmJvdW5kYXJpZXMubGVmdDp5PnRoaXMuYm91bmRhcmllcy5yaWdodCYmKEk9eS10aGlzLmJvdW5kYXJpZXMucmlnaHQpLHRoaXMuY2FsbGJhY2soSSxaKX19LHtrZXk6Imxpc3RlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0''@;'; put 'put ''aGlzLmxpc3RlbmluZz0hMH19LHtrZXk6InVubGlzdGVuIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubGlzdGVuaW5nPSExfX0se2tleToiaXNMaXN0ZW5pbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGlzdGVuaW5nfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKCl7Zm9yKHZhciB5PXRoaXMsST10aGlzLmhvdC5yb290V2luZG93O0k7KXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSS5kb2N1bWVudCwiY29udGV4dG1lbnUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkudW5saXN0ZW4oKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50''@;'; put 'put ''TGlzdGVuZXIoSS5kb2N1bWVudCwibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4geS51bmxpc3RlbigpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLmRvY3VtZW50LCJtb3VzZW1vdmUiLGZ1bmN0aW9uKFope3JldHVybiB5Lm9uTW91c2VNb3ZlKFopfSksST11M2Uo''@;'; put 'put ''SSl9fSx7a2V5OiJ1bnJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZlbnRNYW5hZ2VyLmNsZWFyKCl9fSx7a2V5OiJzZXR1cExpc3RlbmluZyIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIUV3KHkpKXt2YXIgQz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLmhvbGRlcjtD''@;'; put 'put ''IT09dGhpcy5ob3Qucm9vdFdpbmRvdyYmKHRoaXMuc2V0Qm91bmRhcmllcyhDLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSx0aGlzLnNldENhbGxiYWNrKGZ1bmN0aW9uKEksWil7STwwP0Muc2Nyb2xsTGVmdC09NTA6ST4wJiYoQy5zY3JvbGxMZWZ0Kz01MCksWjwwP0Muc2Nyb2xsVG9wLT0y''@;'; put 'put ''MDpaPjAmJihDLnNjcm9sbFRvcCs9MjApfSksdGhpcy5saXN0ZW4oKSl9fX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpeyF0aGlzLmlzTGlzdGVuaW5nKCl8fHRoaXMuY2hlY2soeS5jbGllbnRYLHkuY2xpZW50WSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlv''@;'; put 'put ''bigpe2lNKHp2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGd4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDEwMH19XSksaH0oWXMpO2Z1bmN0''@;'; put 'put ''aW9uIFY4ZShkKXtyZXR1cm4oVjhlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29u''@;'; put 'put ''c3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gbXhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9''@;'; put 'put ''ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gb00oKXtyZXR1cm4gb009InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYp''@;'; put 'put ''e3ZhciB5PSRsdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sb00uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uICRsdChkLGcp''@;'; put 'put ''e2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9R3YoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gajhlKGQsZyl7cmV0dXJuKGo4ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlv''@;'; put 'put ''bih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHRzdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVY4ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3Rv''@;'; put 'put ''cnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gdnhlKGQpfWZ1bmN0aW9uIHZ4ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2Fs''@;'; put 'put ''bGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gR3YoZCl7cmV0dXJuKEd2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xl''@;'; put 'put ''dG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckRyb3Bkb3duTWVudVNob3ciKSx6by5nZXRTaW5n''@;'; put 'put ''bGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJEcm9wZG93bk1lbnVIaWRlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyRHJvcGRvd25NZW51RXhlY3V0ZSIpO3ZhciBaOGU9ImRyb3Bkb3duTWVudSIsejhlPSJjaGFuZ2VUeXBlIixBeGU9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHFs''@;'; put 'put ''dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVj''@;'; put 'put ''dG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZqOGUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBlc3QoZCl7dmFyIGc9ZnVuY3Rpb24gbnN0KCl7aWYoInVuZGVm''@;'; put 'put ''aW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29u''@;'; put 'put ''c3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9R3YoZCk7aWYoZyl7dmFyIEM9R3YodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9''@;'; put 'put ''di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRzdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gWGx0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0''@;'; put 'put ''aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmV2ZW50TWFuYWdlcj1uZXcgTDEodnhlKHkpKSx5LmNvbW1hbmRFeGVjdXRvcj1uZXcgQkVlKHkuaG90KSx5Lml0ZW1zRmFjdG9yeT1udWxsLHkubWVudT1udWxsLHkuaG90LmFkZEhvb2soImFmdGVyR2V0Q29sSGVhZGVyIixmdW5j''@;'; put 'put ''dGlvbihDLEkpe3JldHVybiB5Lm9uQWZ0ZXJHZXRDb2xIZWFkZXIoQyxJKX0pLHl9cmV0dXJuIGZ1bmN0aW9uIEtsdChkLGcsaCl7ZyYmbXhlKGQucHJvdG90eXBlLGcpLGgmJm14ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7''@;'; put 'put ''a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaG90LmdldFNldHRpbmdzKClbWjhlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3RoaXMuaXRlbXNGYWN0b3J5PW5ldyBaRWUodGhp''@;'; put 'put ''cy5ob3QsaC5ERUZBVUxUX0lURU1TKTt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW1o4ZV0sST17aXRlbXM6dGhpcy5pdGVtc0ZhY3RvcnkuZ2V0SXRlbXMoQyl9O3RoaXMucmVnaXN0ZXJFdmVudHMoKSwiZnVuY3Rpb24iPT10eXBlb2YgQy5jYWxsYmFjayYmdGhpcy5jb21tYW5kRXhl''@;'; put 'put ''Y3V0b3Iuc2V0Q29tbW9uQ2FsbGJhY2soQy5jYWxsYmFjayksb00oR3YoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyksdGhpcy5jYWxsT25QbHVnaW5zUmVhZHkoZnVuY3Rpb24oKXt5LmhvdC5ydW5Ib29rcygiYWZ0ZXJEcm9wZG93bk1lbnVEZWZhdWx0T3B0''@;'; put 'put ''aW9ucyIsSSkseS5pdGVtc0ZhY3Rvcnkuc2V0UHJlZGVmaW5lZEl0ZW1zKEkuaXRlbXMpO3ZhciBaPXkuaXRlbXNGYWN0b3J5LmdldEl0ZW1zKEMpO3kubWVudSYmeS5tZW51LmRlc3Ryb3koKSx5Lm1lbnU9bmV3IHg4ZSh5LmhvdCx7Y2xhc3NOYW1lOiJodERyb3Bkb3duTWVudSIsa2VlcElu''@;'; put 'put ''Vmlld3BvcnQ6ITAsY29udGFpbmVyOkMudWlDb250YWluZXJ8fHkuaG90LnJvb3REb2N1bWVudC5ib2R5fSkseS5ob3QucnVuSG9va3MoImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixaKSx5Lm1lbnUuc2V0TWVudUl0ZW1zKFopLHkubWVudS5hZGRMb2NhbEhvb2soImJlZm9yZU9wZW4i''@;'; put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NZW51QmVmb3JlT3BlbigpfSkseS5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWVudUFmdGVyT3BlbigpfSkseS5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''eS5vbk1lbnVBZnRlckNsb3NlKCl9KSx5Lm1lbnUuYWRkTG9jYWxIb29rKCJleGVjdXRlQ29tbWFuZCIsZnVuY3Rpb24oKXtmb3IodmFyIHVlLF9lPWFyZ3VtZW50cy5sZW5ndGgsQmU9bmV3IEFycmF5KF9lKSxOZT0wO05lPF9lO05lKyspQmVbTmVdPWFyZ3VtZW50c1tOZV07cmV0dXJuKHVl''@;'; put 'put ''PXkuZXhlY3V0ZUNvbW1hbmQpLmNhbGwuYXBwbHkodWUsW3ldLmNvbmNhdChCZSkpfSksVXIoWixmdW5jdGlvbih1ZSl7cmV0dXJuIHkuY29tbWFuZEV4ZWN1dG9yLnJlZ2lzdGVyQ29tbWFuZCh1ZS5rZXksdWUpfSl9KX19fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSxvTShHdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jbG9zZSgpLHRoaXMubWVudSYmdGhpcy5tZW51''@;'; put 'put ''LmRlc3Ryb3koKSxvTShHdihoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJyZWdpc3RlckV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3Qucm9vdEVs''@;'; put 'put ''ZW1lbnQsImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4geS5vblRhYmxlQ2xpY2soQyl9KX19LHtrZXk6Im9wZW4iLHZhbHVlOmZ1bmN0aW9uKHkpeyF0aGlzLm1lbnV8fCh0aGlzLm1lbnUub3BlbigpLHkud2lkdGgmJnRoaXMubWVudS5zZXRPZmZzZXQoImxlZnQiLHkud2lkdGgpLHRoaXMu''@;'; put 'put ''bWVudS5zZXRQb3NpdGlvbih5KSl9fSx7a2V5OiJjbG9zZSIsdmFsdWU6ZnVuY3Rpb24oKXshdGhpcy5tZW51fHx0aGlzLm1lbnUuY2xvc2UoKX19LHtrZXk6ImV4ZWN1dGVDb21tYW5kIix2YWx1ZTpmdW5jdGlvbih5KXtmb3IodmFyIEMsST1hcmd1bWVudHMubGVuZ3RoLFo9bmV3IEFycmF5''@;'; put 'put ''KEk+MT9JLTE6MCksdWU9MTt1ZTxJO3VlKyspWlt1ZS0xXT1hcmd1bWVudHNbdWVdOyhDPXRoaXMuY29tbWFuZEV4ZWN1dG9yKS5leGVjdXRlLmFwcGx5KEMsW3ldLmNvbmNhdChaKSl9fSx7a2V5OiJzZXRMaXN0ZW5pbmciLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9IShhcmd1bWVudHMubGVu''@;'; put 'put ''Z3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTt0aGlzLm1lbnUuaXNPcGVuZWQoKSYmKHk/dGhpcy5tZW51LmhvdE1lbnUubGlzdGVuKCk6dGhpcy5tZW51LmhvdE1lbnUudW5saXN0ZW4oKSl9fSx7a2V5OiJvblRhYmxlQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHkp''@;'; put 'put ''e2lmKHkuc3RvcFByb3BhZ2F0aW9uKCksdGwoeS50YXJnZXQsejhlKSYmIXRoaXMubWVudS5pc09wZW5lZCgpKXt2YXIgQz0wLEk9MDtpZih0aGlzLmhvdC5yb290RG9jdW1lbnQhPT10aGlzLm1lbnUuY29udGFpbmVyLm93bmVyRG9jdW1lbnQpe3ZhciB1ZT10aGlzLmhvdC5yb290V2luZG93''@;'; put 'put ''LmZyYW1lRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtDPXVlLnRvcCxJPXVlLmxlZnR9dmFyIE5lPXkudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMub3Blbih7bGVmdDpOZS5sZWZ0K0ksdG9wOk5lLnRvcCt5LnRhcmdldC5vZmZzZXRIZWlnaHQrMytDLHdpZHRo''@;'; put 'put ''Ok5lLndpZHRoLGhlaWdodDpOZS5oZWlnaHR9KX19fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPUMucGFyZW50Tm9kZTtpZihJKXt2YXIgWj1JLnBhcmVudE5vZGUuY2hpbGROb2Rlcyx1ZT1BcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxs''@;'; put 'put ''KFosSSk7aWYoISh5PDB8fHVlIT09Wi5sZW5ndGgtMSkpe3ZhciBfZT1DLnF1ZXJ5U2VsZWN0b3IoIi4iLmNvbmNhdCh6OGUpKTtpZighdGhpcy5lbmFibGVkfHwhX2Upe2lmKCF0aGlzLmVuYWJsZWQpcmV0dXJuIHZvaWQoX2UmJl9lLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoX2UpKTt2YXIg''@;'; put 'put ''QmU9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO0JlLmNsYXNzTmFtZT16OGUsQmUudHlwZT0iYnV0dG9uIixCZS5vbmNsaWNrPWZ1bmN0aW9uKCl7cmV0dXJuITF9LEMuZmlyc3RDaGlsZC5pbnNlcnRCZWZvcmUoQmUsQy5maXJzdENoaWxkLmZpcnN0Q2hp''@;'; put 'put ''bGQpfX19fX0se2tleToib25NZW51QmVmb3JlT3BlbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlRHJvcGRvd25NZW51U2hvdyIsdGhpcyl9fSx7a2V5OiJvbk1lbnVBZnRlck9wZW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoImFmdGVy''@;'; put 'put ''RHJvcGRvd25NZW51U2hvdyIsdGhpcyl9fSx7a2V5OiJvbk1lbnVBZnRlckNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90Lmxpc3RlbigpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckRyb3Bkb3duTWVudUhpZGUiLHRoaXMpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''KXt0aGlzLmNsb3NlKCksdGhpcy5tZW51JiZ0aGlzLm1lbnUuZGVzdHJveSgpLG9NKEd2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFo4ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIs''@;'; put 'put ''Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDIzMH19LHtrZXk6IlBMVUdJTl9ERVBTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bInBsdWdpbjpBdXRvQ29sdW1uU2l6ZSJdfX0se2tleToiREVGQVVMVF9JVEVNUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuW3Z6LEF6LFdsLHd6LFdsLEh0ZSxXbCx5eixX''@;'; put 'put ''bCxQcF19fV0pLGh9KFlzKTtmdW5jdGlvbiB5eGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiB3eGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3Ro''@;'; put 'put ''O2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1BeGUuU0VQQVJBVE9SPXtuYW1lOldsfTt2YXIgZnN0PWZ1bmN0''@;'; put 'put ''aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gdXN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5vcHRpb25zPXt9fXJldHVybiBmdW5j''@;'; put 'put ''dGlvbiBjc3QoZCxnLGgpe2cmJnd4ZShkLnByb3RvdHlwZSxnKSxoJiZ3eGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic2V0T3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5vcHRpb25zPWh9fSx7a2V5OiJn''@;'; put 'put ''ZXREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMsdj10aGlzLl9nZXREYXRhUmFuZ2UoKSxDPXYuc3RhcnRDb2wsWj12LmVuZENvbCx1ZT10aGlzLm9wdGlvbnMsX2U9W107cmV0dXJuIGlhKHYuc3RhcnRSb3csdi5lbmRSb3csZnVuY3Rpb24oQmUpe3ZhciBOZT1bXTshdWUuZXhw''@;'; put 'put ''b3J0SGlkZGVuUm93cyYmaC5faXNIaWRkZW5Sb3coQmUpfHwoaWEoQyxaLGZ1bmN0aW9uKEtlKXshdWUuZXhwb3J0SGlkZGVuQ29sdW1ucyYmaC5faXNIaWRkZW5Db2x1bW4oS2UpfHxOZS5wdXNoKGguaG90LmdldERhdGFBdENlbGwoQmUsS2UpKX0pLF9lLnB1c2goTmUpKX0pLF9lfX0se2tl''@;'; put 'put ''eToiZ2V0Um93SGVhZGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9W107aWYodGhpcy5vcHRpb25zLnJvd0hlYWRlcnMpe3ZhciB5PXRoaXMuX2dldERhdGFSYW5nZSgpLEM9eS5zdGFydFJvdyxJPXkuZW5kUm93LFo9dGhpcy5ob3QuZ2V0Um93SGVhZGVyKCk7aWEoQyxJLGZ1''@;'; put 'put ''bmN0aW9uKHVlKXshaC5vcHRpb25zLmV4cG9ydEhpZGRlblJvd3MmJmguX2lzSGlkZGVuUm93KHVlKXx8di5wdXNoKFpbdWVdKX0pfXJldHVybiB2fX0se2tleToiZ2V0Q29sdW1uSGVhZGVycyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9W107aWYodGhpcy5vcHRpb25zLmNvbHVt''@;'; put 'put ''bkhlYWRlcnMpe3ZhciB5PXRoaXMuX2dldERhdGFSYW5nZSgpLEM9eS5zdGFydENvbCxJPXkuZW5kQ29sLFo9dGhpcy5ob3QuZ2V0Q29sSGVhZGVyKCk7aWEoQyxJLGZ1bmN0aW9uKHVlKXshaC5vcHRpb25zLmV4cG9ydEhpZGRlbkNvbHVtbnMmJmguX2lzSGlkZGVuQ29sdW1uKHVlKXx8di5w''@;'; put 'put ''dXNoKFpbdWVdKX0pfXJldHVybiB2fX0se2tleToiX2dldERhdGFSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmhvdC5jb3VudENvbHMoKS0xLHY9dGhpcy5ob3QuY291bnRSb3dzKCktMSx5PWZ1bmN0aW9uIGlzdChkLGcpe3JldHVybiBmdW5jdGlvbiBzc3QoZCl7aWYoQXJy''@;'; put 'put ''YXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGxzdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0''@;'; put 'put ''cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJv''@;'; put 'put ''dyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIGFzdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4geXhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3Rv''@;'; put 'put ''ciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiB5eGUoZCxnKX19KGQsZyl8fGZ1''@;'; put 'put ''bmN0aW9uIG9zdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBt''@;'; put 'put ''ZXRob2QuIil9KCl9KHRoaXMub3B0aW9ucy5yYW5nZSw0KSxDPXlbMF0sST12b2lkIDA9PT1DPzA6QyxaPXlbMV0sdWU9dm9pZCAwPT09Wj8wOlosX2U9eVsyXSxCZT12b2lkIDA9PT1fZT92Ol9lLE5lPXlbM10sS2U9dm9pZCAwPT09TmU/aDpOZTtyZXR1cm57c3RhcnRSb3c6ST1NYXRoLm1h''@;'; put 'put ''eChJLDApLHN0YXJ0Q29sOnVlPU1hdGgubWF4KHVlLDApLGVuZFJvdzpCZT1NYXRoLm1pbihCZSx2KSxlbmRDb2w6S2U9TWF0aC5taW4oS2UsaCl9fX0se2tleToiX2lzSGlkZGVuUm93Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuaXNIaWRkZW4o''@;'; put 'put ''dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhoKSl9fSx7a2V5OiJfaXNIaWRkZW5Db2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5pc0hpZGRlbih0aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKGgpKX19XSksZH0oKTtjb25zdCBoc3Q9ZnN0''@;'; put 'put ''O2Z1bmN0aW9uIGJ4ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXks''@;'; put 'put ''dil9fXZhciBnc3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcsaCl7KGZ1bmN0aW9uIGRzdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLmRhdGFQcm92aWRlcj1n''@;'; put 'put ''LHRoaXMub3B0aW9ucz10aGlzLl9tZXJnZU9wdGlvbnMoaCksdGhpcy5kYXRhUHJvdmlkZXIuc2V0T3B0aW9ucyh0aGlzLm9wdGlvbnMpfXJldHVybiBmdW5jdGlvbiBwc3QoZCxnLGgpe2cmJmJ4ZShkLnByb3RvdHlwZSxnKSxoJiZieGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwi''@;'; put 'put ''cHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiX21lcmdlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9YTModGhpcy5jb25zdHJ1Y3Rvci5ERUZBVUxUX09QVElPTlMpLHk9bmV3IERhdGU7cmV0dXJuIHY9STEoYTMoZC5ERUZBVUxUX09QVElPTlMpLHYpLCh2PUkx''@;'; put 'put ''KHYsaCkpLmZpbGVuYW1lPWEzZSh2LmZpbGVuYW1lLHtZWVlZOnkuZ2V0RnVsbFllYXIoKSxNTToiIi5jb25jYXQoeS5nZXRNb250aCgpKzEpLnBhZFN0YXJ0KDIsIjAiKSxERDoiIi5jb25jYXQoeS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsIjAiKX0pLHZ9fV0sW3trZXk6IkRFRkFVTFRfT1BU''@;'; put 'put ''SU9OUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue21pbWVUeXBlOiJ0ZXh0L3BsYWluIixmaWxlRXh0ZW5zaW9uOiJ0eHQiLGZpbGVuYW1lOiJIYW5kc29udGFibGUgW1lZWVldLVtNTV0tW0REXSIsZW5jb2Rpbmc6InV0Zi04Iixib206ITEsY29sdW1uSGVhZGVyczohMSxyb3dIZWFkZXJzOiEx''@;'; put 'put ''LGV4cG9ydEhpZGRlbkNvbHVtbnM6ITEsZXhwb3J0SGlkZGVuUm93czohMSxyYW5nZTpbXX19fV0pLGR9KCk7Y29uc3QgbXN0PWdzdDtmdW5jdGlvbiBHOGUoZCl7cmV0dXJuKEc4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9m''@;'; put 'put ''dW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHZzdChkLGcpe2lm''@;'; put 'put ''KCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIF94ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYu''@;'; put 'put ''Y29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFc4ZShkLGcpe3JldHVybihXOGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rp''@;'; put 'put ''b24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBic3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1HOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0''@;'; put 'put ''b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIF9zdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7''@;'; put 'put ''cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIEt0ZShkKXtyZXR1cm4oS3RlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGtzdD1TdHJp''@;'; put 'put ''bmcuZnJvbUNoYXJDb2RlKDEzKSxTc3Q9U3RyaW5nLmZyb21DaGFyQ29kZSgzNCksTXN0PVN0cmluZy5mcm9tQ2hhckNvZGUoMTApLEVzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24geXN0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; put 'put ''IlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9w''@;'; put 'put ''ZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlc4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHdzdChkKXt2YXIgZz1mdW5jdGlvbiBDc3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Qu''@;'; put 'put ''c2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0''@;'; put 'put ''dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1LdGUoZCk7aWYoZyl7dmFyIEM9S3RlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBic3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgo''@;'; put 'put ''KXtyZXR1cm4gdnN0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIEFzdChkLGcsaCl7ZyYmX3hlKGQucHJvdG90eXBlLGcpLGgmJl94ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5''@;'; put 'put ''OiJleHBvcnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMub3B0aW9ucyxJPXRoaXMuZGF0YVByb3ZpZGVyLmdldERhdGEoKSxaPXRoaXMuZGF0YVByb3ZpZGVyLmdldENvbHVtbkhlYWRlcnMoKSx1ZT1aLmxlbmd0aD4wLF9lPXRoaXMuZGF0YVByb3ZpZGVyLmdldFJvd0hl''@;'; put 'put ''YWRlcnMoKSxCZT1fZS5sZW5ndGg+MCxOZT1DLmJvbT9TdHJpbmcuZnJvbUNoYXJDb2RlKDY1Mjc5KToiIjtyZXR1cm4gdWUmJihaPU9sKFosZnVuY3Rpb24oS2Upe3JldHVybiB5Ll9lc2NhcGVDZWxsKEtlLCEwKX0pLEJlJiYoTmUrPUMuY29sdW1uRGVsaW1pdGVyKSxOZSs9Wi5qb2luKEMu''@;'; put 'put ''Y29sdW1uRGVsaW1pdGVyKSxOZSs9Qy5yb3dEZWxpbWl0ZXIpLFVyKEksZnVuY3Rpb24oS2UscHQpe3B0PjAmJihOZSs9Qy5yb3dEZWxpbWl0ZXIpLEJlJiYoTmUrPXkuX2VzY2FwZUNlbGwoX2VbcHRdKStDLmNvbHVtbkRlbGltaXRlciksTmUrPUtlLm1hcChmdW5jdGlvbihPdCl7cmV0dXJu''@;'; put 'put ''IHkuX2VzY2FwZUNlbGwoT3QpfSkuam9pbihDLmNvbHVtbkRlbGltaXRlcil9KSxOZX19LHtrZXk6Il9lc2NhcGVDZWxsIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLEk9ZXUoeSk7cmV0dXJu''@;'; put 'put ''IiIhPT1JJiYoQ3x8SS5pbmRleE9mKGtzdCk+PTB8fEkuaW5kZXhPZihTc3QpPj0wfHxJLmluZGV4T2YoTXN0KT49MHx8SS5pbmRleE9mKHRoaXMub3B0aW9ucy5jb2x1bW5EZWxpbWl0ZXIpPj0wKSYmKEk9SS5yZXBsYWNlKG5ldyBSZWdFeHAoJyInLCJnIiksJyIiJyksST0nIicuY29uY2F0''@;'; put 'put ''KEksJyInKSksSX19XSxbe2tleToiREVGQVVMVF9PUFRJT05TIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57bWltZVR5cGU6InRleHQvY3N2IixmaWxlRXh0ZW5zaW9uOiJjc3YiLGJvbTohMCxjb2x1bW5EZWxpbWl0ZXI6IiwiLHJvd0RlbGltaXRlcjoiXHJcbiJ9fX1dKSxofShtc3QpLFk4ZT1m''@;'; put 'put ''dW5jdGlvbiBUc3QoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfSh7fSwiY3N2IixFc3QpO2Z1bmN0aW9uIERzdChkLGcsaCl7cmV0dXJuImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIFk4ZVtkXT9uZXcgWThlW2RdKGcsaCk6bnVsbH1mdW5jdGlvbiBVOGUoZCl7cmV0dXJuKFU4ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0''@;'; put 'put ''aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIExzdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBl''@;'; put 'put ''RXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIEN4ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53''@;'; put 'put ''cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFE4ZShkLGcpe3JldHVybihROGU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSko''@;'; put 'put ''ZCxnKX1mdW5jdGlvbiBQc3QoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1VOGUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5k''@;'; put 'put ''ZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIEZzdChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uICR0ZShkKXtyZXR1''@;'; put 'put ''cm4oJHRlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGpzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gUnN0KGQsZyl7aWYoImZ1''@;'; put 'put ''bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQs''@;'; put 'put ''d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlE4ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEJzdChkKXt2YXIgZz1mdW5jdGlvbiBIc3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9m''@;'; put 'put ''IFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVh''@;'; put 'put ''bixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj0kdGUoZCk7aWYoZyl7dmFyIEM9JHRlKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhp''@;'; put 'put ''cyxhcmd1bWVudHMpO3JldHVybiBQc3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gTHN0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9uIE9zdChkLGcsaCl7ZyYmQ3hlKGQucHJvdG90eXBlLGcpLGgmJkN4ZShkLGgpLE9iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJleHBvcnRBc1N0cmluZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1h''@;'; put 'put ''cmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLl9jcmVhdGVUeXBlRm9ybWF0dGVyKHksQykuZXhwb3J0KCl9fSx7a2V5OiJleHBvcnRBc0Jsb2IiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2Fy''@;'; put 'put ''Z3VtZW50c1sxXTp7fTtyZXR1cm4gdGhpcy5fY3JlYXRlQmxvYih0aGlzLl9jcmVhdGVUeXBlRm9ybWF0dGVyKHksQykpfX0se2tleToiZG93bmxvYWRGaWxlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVu''@;'; put 'put ''dHNbMV06e30sST10aGlzLmhvdCxaPUkucm9vdERvY3VtZW50LHVlPUkucm9vdFdpbmRvdyxfZT10aGlzLl9jcmVhdGVUeXBlRm9ybWF0dGVyKHksQyksQmU9dGhpcy5fY3JlYXRlQmxvYihfZSksTmU9dWUuVVJMfHx1ZS53ZWJraXRVUkwsS2U9Wi5jcmVhdGVFbGVtZW50KCJhIikscHQ9IiIu''@;'; put 'put ''Y29uY2F0KF9lLm9wdGlvbnMuZmlsZW5hbWUsIi4iKS5jb25jYXQoX2Uub3B0aW9ucy5maWxlRXh0ZW5zaW9uKTtpZih2b2lkIDAhPT1LZS5kb3dubG9hZCl7dmFyIE90PU5lLmNyZWF0ZU9iamVjdFVSTChCZSk7S2Uuc3R5bGUuZGlzcGxheT0ibm9uZSIsS2Uuc2V0QXR0cmlidXRlKCJocmVm''@;'; put 'put ''IixPdCksS2Uuc2V0QXR0cmlidXRlKCJkb3dubG9hZCIscHQpLFouYm9keS5hcHBlbmRDaGlsZChLZSksS2UuZGlzcGF0Y2hFdmVudChuZXcgTW91c2VFdmVudCgiY2xpY2siKSksWi5ib2R5LnJlbW92ZUNoaWxkKEtlKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7TmUucmV2b2tlT2JqZWN0VVJM''@;'; put 'put ''KE90KX0sMTAwKX1lbHNlIG5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iJiZuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYihCZSxwdCl9fSx7a2V5OiJfY3JlYXRlVHlwZUZvcm1hdHRlciIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1''@;'; put 'put ''bWVudHNbMV0/YXJndW1lbnRzWzFdOnt9O2lmKCFZOGVbeV0pdGhyb3cgbmV3IEVycm9yKCdFeHBvcnQgZm9ybWF0IHR5cGUgIicuY29uY2F0KHksJyIgaXMgbm90IHN1cHBvcnRlZC4nKSk7cmV0dXJuIERzdCh5LG5ldyBoc3QodGhpcy5ob3QpLEMpfX0se2tleToiX2NyZWF0ZUJsb2IiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKHkpe3ZhciBDPW51bGw7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBCbG9iJiYoQz1uZXcgQmxvYihbeS5leHBvcnQoKV0se3R5cGU6IiIuY29uY2F0KHkub3B0aW9ucy5taW1lVHlwZSwiO2NoYXJzZXQ9IikuY29uY2F0KHkub3B0aW9ucy5lbmNvZGluZyl9KSksQ319''@;'; put 'put ''XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImV4cG9ydEZpbGUifX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjQwfX1dKSxofShZcyk7ZnVuY3Rpb24ga3hlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3Zh''@;'; put 'put ''ciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIFN4ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXt2YXIgdj1oLmlk''@;'; put 'put ''LHk9aC5zdGF0ZWxlc3MsQz12b2lkIDA9PT15fHx5OyhmdW5jdGlvbiBac3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmlkPXYsdGhpcy5l''@;'; put 'put ''bGVtZW50cz1bXSx0aGlzLmhpZGRlbj0hMSx0aGlzLnN0YXRlSWQ9IkZpbHRlcnMuY29tcG9uZW50LiIuY29uY2F0KHRoaXMuaWQpLHRoaXMuc3RhdGU9Qz9udWxsOnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMuc3RhdGVJZCxuZXcgWWVlKX1yZXR1cm4gZnVu''@;'; put 'put ''Y3Rpb24genN0KGQsZyxoKXtnJiZreGUoZC5wcm90b3R5cGUsZyksaCYma3hlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe1VyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oaCl7''@;'; put 'put ''cmV0dXJuIGgucmVzZXQoKX0pfX0se2tleToiaGlkZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhpZGRlbj0hMH19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oaWRkZW49ITF9fSx7a2V5OiJpc0hpZGRlbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXRoaXMu''@;'; put 'put ''aG90fHx0aGlzLmhpZGRlbn19LHtrZXk6InJlc3RvcmVTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zdGF0ZSYmdGhpcy5zZXRTdGF0ZSh0aGlzLnN0YXRlLmdldFZhbHVlQXRJbmRleChoKSl9fSx7a2V5OiJzZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3Io''@;'; put 'put ''IlRoZSBzdGF0ZSBzZXR0aW5nIGxvZ2ljIGlzIG5vdCBpbXBsZW1lbnRlZCIpfX0se2tleToic2F2ZVN0YXRlIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnN0YXRlJiZ0aGlzLnN0YXRlLnNldFZhbHVlQXRJbmRleChoLHRoaXMuZ2V0U3RhdGUoKSl9fSx7a2V5OiJnZXRTdGF0ZSIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlRoZSBzdGF0ZSBnYXRoZXJpbmcgbG9naWMgaXMgbm90IGltcGxlbWVudGVkIil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAodGhpcy5zdGF0ZUlkKSx0''@;'; put 'put ''aGlzLmNsZWFyTG9jYWxIb29rcygpLFVyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oaCl7cmV0dXJuIGguZGVzdHJveSgpfSksdGhpcy5zdGF0ZT1udWxsLHRoaXMuZWxlbWVudHM9bnVsbCx0aGlzLmhvdD1udWxsfX1dKSxkfSgpO0IyKFN4ZSx1ZCk7Y29uc3QgcXRlPVN4ZTt2YXIga3o9e307''@;'; put 'put ''ZnVuY3Rpb24gTncoZCxnKXtpZigha3pbZF0pdGhyb3cgRXJyb3IoJ0ZpbHRlciBjb25kaXRpb24gIicuY29uY2F0KGQsJyIgZG9lcyBub3QgZXhpc3QuJykpO3ZhciBoPWt6W2RdLHY9aC5jb25kaXRpb24seT1oLmRlc2NyaXB0b3IsQz1nO3JldHVybiB5LmlucHV0VmFsdWVzRGVjb3JhdG9y''@;'; put 'put ''JiYoQz15LmlucHV0VmFsdWVzRGVjb3JhdG9yKEMpKSxmdW5jdGlvbihJKXtyZXR1cm4gdi5hcHBseShJLm1ldGEuaW5zdGFuY2UsW10uY29uY2F0KFtJXSxbQ10pKX19ZnVuY3Rpb24gVk8oZCl7aWYoIWt6W2RdKXRocm93IEVycm9yKCdGaWx0ZXIgY29uZGl0aW9uICInLmNvbmNhdChkLCci''@;'; put 'put ''IGRvZXMgbm90IGV4aXN0LicpKTtyZXR1cm4ga3pbZF0uZGVzY3JpcHRvcn1mdW5jdGlvbiBadShkLGcsaCl7aC5rZXk9ZCxreltkXT17Y29uZGl0aW9uOmcsZGVzY3JpcHRvcjpofX12YXIgSGY9Im5vbmUiO1p1KEhmLGZ1bmN0aW9uIEdzdCgpe3JldHVybiEwfSx7bmFtZTpldGUsaW5wdXRz''@;'; put 'put ''Q291bnQ6MCxzaG93T3BlcmF0b3JzOiExfSk7dmFyIFN6PSJlbXB0eSI7WnUoU3osZnVuY3Rpb24gV3N0KGQpe3JldHVybiBkYyhkLnZhbHVlKX0se25hbWU6ZnBlLGlucHV0c0NvdW50OjAsc2hvd09wZXJhdG9yczohMH0pO3ZhciBlbmU9Im5vdF9lbXB0eSI7ZnVuY3Rpb24gTXhlKGQsZyl7''@;'; put 'put ''KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9WnUoZW5lLGZ1bmN0aW9uIFlzdChkLGcpe3JldHVybiFOdyhTeixnKShkKX0se25hbWU6aHBlLGlucHV0c0NvdW50OjAsc2hvd09w''@;'; put 'put ''ZXJhdG9yczohMH0pO3ZhciBNej0iZXEiO2Z1bmN0aW9uIEV4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFR4ZShkLGcpeyhudWxsPT1nfHxnPmQu''@;'; put 'put ''bGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIER4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKysp''@;'; put 'put ''dltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIE94ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEJ4ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3Ro''@;'; put 'put ''KSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fVp1KE16LGZ1bmN0aW9uICRzdChkLGcpe3ZhciB2PWZ1bmN0aW9uIFVzdChkLGcpe3JldHVybiBmdW5jdGlvbiBLc3QoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1''@;'; put 'put ''cm4gZH0oZCl8fGZ1bmN0aW9uIFhzdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQp''@;'; put 'put ''OyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQs''@;'; put 'put ''Zyl8fGZ1bmN0aW9uIEpzdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTXhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rv''@;'; put 'put ''ci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBNeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIFFzdCgpe3Rocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlb''@;'; put 'put ''MF07cmV0dXJuIGV1KGQudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKGQubWV0YS5sb2NhbGUpPT09ZXUodil9LHtuYW1lOmRwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KSxadSgibmVxIixmdW5jdGlvbiBxc3QoZCxnKXtyZXR1cm4hTncoTXosZykoZCl9LHtuYW1lOnBwZSxp''@;'; put 'put ''bnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KSxadSgiZ3QiLGZ1bmN0aW9uIG8ydChkLGcpe3ZhciB5PWZ1bmN0aW9uIGUydChkLGcpe3JldHVybiBmdW5jdGlvbiBpMnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHIydChkLGcpe3ZhciBoPW51''@;'; put 'put ''bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52''@;'; put 'put ''YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIG4ydChkLGcpe2lmKGQpe2lmKCJzdHJp''@;'; put 'put ''bmciPT10eXBlb2YgZClyZXR1cm4gRXhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4g''@;'; put 'put ''QXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBFeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIHQydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBk''@;'; put 'put ''ZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUmJih5''@;'; put 'put ''PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU+eX0se25hbWU6eXBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLFp1KCJndGUiLGZ1bmN0aW9uIGYydChkLGcpe3ZhciB5PWZ1bmN0aW9uIGEydChkLGcpe3JldHVybiBmdW5jdGlvbiBjMnQoZCl7aWYoQXJyYXkuaXNBcnJheShk''@;'; put 'put ''KSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHUydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5j''@;'; put 'put ''YWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4g''@;'; put 'put ''dn19KGQsZyl8fGZ1bmN0aW9uIHMydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gVHhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25z''@;'; put 'put ''dHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBUeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIGwydCgp''@;'; put 'put ''e3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9''@;'; put 'put ''KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUmJih5PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU+PXl9LHtuYW1lOndwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KSxadSgibHQiLGZ1bmN0aW9uIHYydChkLGcpe3ZhciB5PWZ1bmN0aW9uIGgydChkLGcp''@;'; put 'put ''e3JldHVybiBmdW5jdGlvbiBtMnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGcydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVs''@;'; put 'put ''bCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJu''@;'; put 'put ''JiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHAydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gRHhlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEp''@;'; put 'put ''O2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0''@;'; put 'put ''KGgpKXJldHVybiBEeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIGQydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVz''@;'; put 'put ''dCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUmJih5PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU8eX0se25hbWU6YnBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pLFp1KCJsdGUi''@;'; put 'put ''LGZ1bmN0aW9uIEMydChkLGcpe3ZhciB5PWZ1bmN0aW9uIEEydChkLGcpe3JldHVybiBmdW5jdGlvbiBfMnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIGIydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYm''@;'; put 'put ''ZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVl''@;'; put 'put ''KXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIHcydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gT3hlKGQsZyk7dmFyIGg9T2Jq''@;'; put 'put ''ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86''@;'; put 'put ''VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBPeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIHkydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBv''@;'; put 'put ''cmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUmJih5PXBhcnNlRmxvYXQoeSwxMCkpLGQudmFsdWU8PXl9LHtuYW1lOl9w''@;'; put 'put ''ZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTt2YXIgSjhlPSJkYXRlX2FmdGVyIjtmdW5jdGlvbiBQeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1a''@;'; put 'put ''dShKOGUsZnVuY3Rpb24gVDJ0KGQsZyl7dmFyIHY9ZnVuY3Rpb24gazJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHgydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gRTJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0''@;'; put 'put ''Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gTTJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBCeGUoZCxnKTt2YXIg''@;'; put 'put ''aD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8''@;'; put 'put ''L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEJ4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gUzJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5c''@;'; put 'put ''bkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXSx5PVRsKGQudmFsdWUsZC5tZXRhLmRhdGVGb3JtYXQpLEM9VGwodixkLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISgh''@;'; put 'put ''eS5pc1ZhbGlkKCl8fCFDLmlzVmFsaWQoKSkmJnkuZGlmZihDKT49MH0se25hbWU6U3BlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO3ZhciBYOGU9ImRhdGVfYmVmb3JlIjtmdW5jdGlvbiBGeGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3Io''@;'; put 'put ''dmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1adShYOGUsZnVuY3Rpb24gQjJ0KGQsZyl7dmFyIHY9ZnVuY3Rpb24gSTJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFIydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24g''@;'; put 'put ''TzJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5k''@;'; put 'put ''b25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gTDJ0KGQs''@;'; put 'put ''Zyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBQeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8''@;'; put 'put ''IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIFB4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gRDJ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52''@;'; put 'put ''YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXSx5PVRsKGQudmFsdWUsZC5t''@;'; put 'put ''ZXRhLmRhdGVGb3JtYXQpLEM9VGwodixkLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISgheS5pc1ZhbGlkKCl8fCFDLmlzVmFsaWQoKSkmJnkuZGlmZihDKTw9MH0se25hbWU6TXBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9yczohMH0pO3ZhciBubmU9ImJldHdlZW4iO1p1KG5uZSxmdW5j''@;'; put 'put ''dGlvbiBqMnQoZCxnKXt2YXIgaD1mdW5jdGlvbiBQMnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gVjJ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBOMnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3lt''@;'; put 'put ''Ym9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0h''@;'; put 'put ''MCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBIMnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEZ4ZShkLGcpO3ZhciBoPU9iamVjdC5w''@;'; put 'put ''cm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkp''@;'; put 'put ''bnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gRnhlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBGMnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIg''@;'; put 'put ''dG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShnLDIpLEM9aFswXSxJPWhbMV07aWYoIm51bWVyaWMiPT09ZC5tZXRhLnR5cGUpe3ZhciBaPXBhcnNlRmxvYXQoQywxMCksdWU9cGFyc2VGbG9hdChJ''@;'; put 'put ''LDEwKTtDPU1hdGgubWluKFosdWUpLEk9TWF0aC5tYXgoWix1ZSl9ZWxzZSBpZigiZGF0ZSI9PT1kLm1ldGEudHlwZSl7dmFyIF9lPU53KFg4ZSxbSV0pLEJlPU53KEo4ZSxbQ10pO3JldHVybiBfZShkKSYmQmUoZCl9cmV0dXJuIGQudmFsdWU+PUMmJmQudmFsdWU8PUl9LHtuYW1lOkNwZSxp''@;'; put 'put ''bnB1dHNDb3VudDoyLHNob3dPcGVyYXRvcnM6ITB9KTt2YXIgSHhlPSJub3RfYmV0d2VlbiI7ZnVuY3Rpb24gTnhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9WnUo''@;'; put 'put ''SHhlLGZ1bmN0aW9uIFoydChkLGcpe3JldHVybiFOdyhubmUsZykoZCl9LHtuYW1lOmtwZSxpbnB1dHNDb3VudDoyLHNob3dPcGVyYXRvcnM6ITB9KTt2YXIgVnhlPSJiZWdpbnNfd2l0aCI7ZnVuY3Rpb24ganhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9y''@;'; put 'put ''KHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24genhlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9WnUoVnhl''@;'; put 'put ''LGZ1bmN0aW9uIFEydChkLGcpe3ZhciB2PWZ1bmN0aW9uIHoydChkLGcpe3JldHVybiBmdW5jdGlvbiBVMnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFkydChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYm''@;'; put 'put ''ZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVl''@;'; put 'put ''KXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIFcydChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTnhlKGQsZyk7dmFyIGg9T2Jq''@;'; put 'put ''ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86''@;'; put 'put ''VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBOeGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIEcydCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBv''@;'; put 'put ''cmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGcsMSlbMF07cmV0dXJuIGV1KGQudmFsdWUpLnRvTG9jYWxlTG93ZXJDYXNlKGQubWV0YS5sb2NhbGUpLnN0YXJ0c1dpdGgoZXUodikpfSx7''@;'; put 'put ''bmFtZTpncGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSksTCgzNzQ5OSksWnUoImVuZHNfd2l0aCIsZnVuY3Rpb24gZTF0KGQsZyl7dmFyIHY9ZnVuY3Rpb24gSjJ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHEydChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8''@;'; put 'put ''ZnVuY3Rpb24gJDJ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgu''@;'; put 'put ''bmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rp''@;'; put 'put ''b24gSzJ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBqeGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJN''@;'; put 'put ''YXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGp4ZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gWDJ0KCl7dGhyb3cgbmV3IFR5cGVF''@;'; put 'put ''cnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oZywxKVswXTtyZXR1cm4g''@;'; put 'put ''ZXUoZC52YWx1ZSkudG9Mb2NhbGVMb3dlckNhc2UoZC5tZXRhLmxvY2FsZSkuZW5kc1dpdGgoZXUodikpfSx7bmFtZTptcGUsaW5wdXRzQ291bnQ6MSxzaG93T3BlcmF0b3JzOiEwfSk7dmFyIEs4ZT0iY29udGFpbnMiO1p1KEs4ZSxmdW5jdGlvbiBhMXQoZCxnKXt2YXIgdj1mdW5jdGlvbiB0''@;'; put 'put ''MXQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gbzF0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBpMXQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJd''@;'; put 'put ''O2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1o''@;'; put 'put ''LnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiByMXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHp4ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGlj''@;'; put 'put ''ZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5''@;'; put 'put ''JC8udGVzdChoKSlyZXR1cm4genhlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBuMXQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmpl''@;'; put 'put ''Y3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShnLDEpWzBdO3JldHVybiBldShkLnZhbHVlKS50b0xvY2FsZUxvd2VyQ2FzZShkLm1ldGEubG9jYWxlKS5pbmRleE9mKGV1KHYpKT49MH0se25hbWU6dnBlLGlucHV0c0NvdW50OjEsc2hvd09wZXJhdG9y''@;'; put 'put ''czohMH0pO3ZhciBHeGU9Im5vdF9jb250YWlucyI7WnUoR3hlLGZ1bmN0aW9uIGwxdChkLGcpe3JldHVybiFOdyhLOGUsZykoZCl9LHtuYW1lOkFwZSxpbnB1dHNDb3VudDoxLHNob3dPcGVyYXRvcnM6ITB9KTt2YXIgV3hlPSJkYXRlX3RvbW9ycm93IjtadShXeGUsZnVuY3Rpb24gczF0KGQp''@;'; put 'put ''e3ZhciBnPVRsKGQudmFsdWUsZC5tZXRhLmRhdGVGb3JtYXQpO3JldHVybiEhZy5pc1ZhbGlkKCkmJmcuaXNTYW1lKFRsKCkuc3VidHJhY3QoLTEsImRheXMiKS5zdGFydE9mKCJkYXkiKSwiZCIpfSx7bmFtZTp4cGUsaW5wdXRzQ291bnQ6MH0pO3ZhciBZeGU9ImRhdGVfdG9kYXkiO1p1KFl4''@;'; put 'put ''ZSxmdW5jdGlvbiB1MXQoZCl7dmFyIGc9VGwoZC52YWx1ZSxkLm1ldGEuZGF0ZUZvcm1hdCk7cmV0dXJuISFnLmlzVmFsaWQoKSYmZy5pc1NhbWUoVGwoKS5zdGFydE9mKCJkYXkiKSwiZCIpfSx7bmFtZTpFcGUsaW5wdXRzQ291bnQ6MH0pO3ZhciBFeixVeGU9ImRhdGVfeWVzdGVyZGF5Ijtm''@;'; put 'put ''dW5jdGlvbiAkOGUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfVp1KFV4ZSxmdW5jdGlvbiBjMXQoZCl7dmFyIGc9VGwoZC52YWx1ZSxkLm1l''@;'; put 'put ''dGEuZGF0ZUZvcm1hdCk7cmV0dXJuISFnLmlzVmFsaWQoKSYmZy5pc1NhbWUoVGwoKS5zdWJ0cmFjdCgxLCJkYXlzIikuc3RhcnRPZigiZGF5IiksImQiKX0se25hbWU6VHBlLGlucHV0c0NvdW50OjB9KTt2YXIgSnhlPSgkOGUoRXo9e30sIm51bWVyaWMiLFtIZixXbCxTeixlbmUsV2wsTXos''@;'; put 'put ''Im5lcSIsV2wsImd0IiwiZ3RlIiwibHQiLCJsdGUiLG5uZSxIeGVdKSwkOGUoRXosInRleHQiLFtIZixXbCxTeixlbmUsV2wsTXosIm5lcSIsV2wsVnhlLCJlbmRzX3dpdGgiLFdsLEs4ZSxHeGVdKSwkOGUoRXosImRhdGUiLFtIZixXbCxTeixlbmUsV2wsTXosIm5lcSIsV2wsWDhlLEo4ZSxu''@;'; put 'put ''bmUsV2wsV3hlLFl4ZSxVeGVdKSxFeik7ZnVuY3Rpb24gWHhlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3Qu''@;'; put 'put ''ZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGU1ZT0iYnVpbGRpbmciLEt4ZT1bImNsaWNrIiwiaW5wdXQiLCJrZXlkb3duIiwia2V5cHJlc3MiLCJrZXl1cCIsImZvY3VzIiwiYmx1ciIsImNoYW5nZSJdLCR4ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyxoKXsoZnVuY3Rpb24gcDF0''@;'; put 'put ''KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5ldmVudE1hbmFnZXI9bmV3IEwxKHRoaXMpLHRoaXMub3B0aW9ucz1JMShkLkRFRkFVTFRTLGgp''@;'; put 'put ''LHRoaXMuX2VsZW1lbnQ9dGhpcy5ob3Qucm9vdERvY3VtZW50LmNyZWF0ZUVsZW1lbnQodGhpcy5vcHRpb25zLndyYXBJdD8iZGl2Ijp0aGlzLm9wdGlvbnMudGFnTmFtZSksdGhpcy5idWlsZFN0YXRlPW51bGx9cmV0dXJuIGZ1bmN0aW9uIGcxdChkLGcsaCl7ZyYmWHhlKGQucHJvdG90eXBl''@;'; put 'put ''LGcpLGgmJlh4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5vcHRpb25zLnZhbHVlPWgsdGhpcy51cGRhdGUoKX19LHtrZXk6ImdldFZhbHVlIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMudmFsdWV9fSx7a2V5OiJlbGVtZW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5idWlsZFN0YXRlPT09ZTVlP3RoaXMuX2VsZW1lbnQ6ImJ1aWx0Ij09PXRoaXMuYnVpbGRTdGF0ZT8odGhpcy51cGRhdGUoKSx0aGlzLl9lbGVtZW50''@;'; put 'put ''KToodGhpcy5idWlsZFN0YXRlPWU1ZSx0aGlzLmJ1aWxkKCksdGhpcy5idWlsZFN0YXRlPSJidWlsdCIsdGhpcy5fZWxlbWVudCl9fSx7a2V5OiJpc0J1aWx0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiJidWlsdCI9PT10aGlzLmJ1aWxkU3RhdGV9fSx7a2V5OiJ0cmFuc2xhdGVJZlBvc3Np''@;'; put 'put ''YmxlIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGgmJmguc3RhcnRzV2l0aChsMyk/dGhpcy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShoKTpofX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PWZ1bmN0aW9uKEksWil7aC5ldmVu''@;'; put 'put ''dE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLFosZnVuY3Rpb24odWUpe3JldHVybiBoLnJ1bkxvY2FsSG9va3MoWix1ZSxoKX0pfTtpZih0aGlzLmJ1aWxkU3RhdGV8fCh0aGlzLmJ1aWxkU3RhdGU9ZTVlKSx0aGlzLm9wdGlvbnMuY2xhc3NOYW1lJiZPMCh0aGlzLl9lbGVtZW50LHRoaXMu''@;'; put 'put ''b3B0aW9ucy5jbGFzc05hbWUpLHRoaXMub3B0aW9ucy5jaGlsZHJlbi5sZW5ndGgpVXIodGhpcy5vcHRpb25zLmNoaWxkcmVuLGZ1bmN0aW9uKEMpe3JldHVybiBoLl9lbGVtZW50LmFwcGVuZENoaWxkKEMuZWxlbWVudCl9KTtlbHNlIGlmKHRoaXMub3B0aW9ucy53cmFwSXQpe3ZhciB5PXRo''@;'; put 'put ''aXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMub3B0aW9ucy50YWdOYW1lKTtHbCh0aGlzLm9wdGlvbnMsZnVuY3Rpb24oQyxJKXt2b2lkIDAhPT15W0ldJiYiY2xhc3NOYW1lIiE9PUkmJiJ0YWdOYW1lIiE9PUkmJiJjaGlsZHJlbiIhPT1JJiYoeVtJXT1oLnRyYW5zbGF0''@;'; put 'put ''ZUlmUG9zc2libGUoQykpfSksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh5KSxVcihLeGUsZnVuY3Rpb24oQyl7cmV0dXJuIHYoeSxDKX0pfWVsc2UgVXIoS3hlLGZ1bmN0aW9uKEMpe3JldHVybiB2KGguX2VsZW1lbnQsQyl9KX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt9''@;'; put 'put ''fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMudmFsdWU9IiIsdGhpcy51cGRhdGUoKX19LHtrZXk6InNob3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnN0eWxlLmRpc3BsYXk9IiJ9fSx7a2V5OiJoaWRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMu''@;'; put 'put ''ZWxlbWVudC5zdHlsZS5kaXNwbGF5PSJub25lIn19LHtrZXk6ImZvY3VzIix2YWx1ZTpmdW5jdGlvbigpe319LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveSgpLHRoaXMuZXZlbnRNYW5hZ2VyPW51bGwsdGhpcy5ob3Q9bnVsbCx0aGlz''@;'; put 'put ''Ll9lbGVtZW50LnBhcmVudE5vZGUmJnRoaXMuX2VsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlzLl9lbGVtZW50PW51bGx9fV0sW3trZXk6IkRFRkFVTFRTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYTMoe2NsYXNzTmFtZToiIix2YWx1ZToiIix0YWdO''@;'; put 'put ''YW1lOiJkaXYiLGNoaWxkcmVuOltdLHdyYXBJdDohMH0pfX1dKSxkfSgpO0IyKCR4ZSx1ZCk7Y29uc3QgVnc9JHhlO2Z1bmN0aW9uIHQ1ZShkKXtyZXR1cm4odDVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcp''@;'; put 'put ''e3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gcXhlKGQsZyl7Zm9yKHZhciBoPTA7''@;'; put 'put ''aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gcm5lKCl7cmV0dXJuIHJuZT0i''@;'; put 'put ''dW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9QTF0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFy''@;'; put 'put ''Z3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxybmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEExdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9ak8oZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gbjVl''@;'; put 'put ''KGQsZyl7cmV0dXJuKG41ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGIxdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXQ1ZShnKXx8ImZ1bmN0aW9u''@;'; put 'put ''Ij09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZVRlKGQpfWZ1bmN0aW9uIGVUZShkKXtpZih2b2lkIDA9PT1kKXRocm93''@;'; put 'put ''IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gak8oZCl7cmV0dXJuKGpPPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgp''@;'; put 'put ''OmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGluZT1uZXcgV2Vha01hcCxDMXQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIHkxdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlw''@;'; put 'put ''ZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVm''@;'; put 'put ''aW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZuNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiB3MXQoZCl7dmFyIGc9ZnVuY3Rpb24gXzF0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29u''@;'; put 'put ''c3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9''@;'; put 'put ''fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9ak8oZCk7aWYoZyl7dmFyIEM9ak8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGIxdCh0aGlzLHkpfX0oaCk7ZnVuY3Rp''@;'; put 'put ''b24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBtMXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSxDPWcuY2FsbCh0aGlzLHYsSTEoaC5ERUZBVUxUUyx5KSksaW5l''@;'; put 'put ''LnNldChlVGUoQykse30pLEMucmVnaXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIHYxdChkLGcsaCl7ZyYmcXhlKGQucHJvdG90eXBlLGcpLGgmJnF4ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rl''@;'; put 'put ''ckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5hZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQ2xpY2soKX0pLHRoaXMuYWRkTG9jYWxIb29rKCJrZXl1cCIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25LZXl1cChDKX0pfX0se2tleToiYnVp''@;'; put 'put ''bGQiLHZhbHVlOmZ1bmN0aW9uKCl7cm5lKGpPKGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyk7dmFyIHk9aW5lLmdldCh0aGlzKSxDPXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt5LmlucHV0PXRoaXMuX2VsZW1lbnQuZmlyc3RDaGlsZCxP''@;'; put 'put ''MCh0aGlzLl9lbGVtZW50LCJodFVJSW5wdXQiKSxPMChDLCJodFVJSW5wdXRJY29uIiksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChDKSx0aGlzLnVwZGF0ZSgpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaXNCdWlsdCgpKXt2YXIgeT1pbmUuZ2V0KHRoaXMp''@;'; put 'put ''LmlucHV0O3kudHlwZT10aGlzLm9wdGlvbnMudHlwZSx5LnBsYWNlaG9sZGVyPXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMucGxhY2Vob2xkZXIpLHkudmFsdWU9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy52YWx1ZSl9fX0se2tleToiZm9jdXMi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0J1aWx0KCkmJmluZS5nZXQodGhpcykuaW5wdXQuZm9jdXMoKX19LHtrZXk6Im9uQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKCl7fX0se2tleToib25LZXl1cCIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5vcHRpb25zLnZhbHVlPXkudGFyZ2V0LnZhbHVl''@;'; put 'put ''fX1dLFt7a2V5OiJERUZBVUxUUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEzKHtwbGFjZWhvbGRlcjoiIix0eXBlOiJ0ZXh0Iix0YWdOYW1lOiJpbnB1dCJ9KX19XSksaH0oVncpO2NvbnN0IFpPPUMxdDtmdW5jdGlvbiByNWUoZCl7cmV0dXJuKHI1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3lt''@;'; put 'put ''Ym9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIHRUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIHpPKCl7cmV0dXJuIHpPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1NMXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJv''@;'; put 'put ''cGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHpPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBNMXQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo''@;'; put 'put ''ZCxnKSYmbnVsbCE9PShkPWp3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIGk1ZShkLGcpe3JldHVybihpNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlv''@;'; put 'put ''biBUMXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1yNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0''@;'; put 'put ''dXJuIG5UZShkKX1mdW5jdGlvbiBuVGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIGp3KGQpe3JldHVybihqdz1PYmpl''@;'; put 'put ''Y3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBvbmU9bmV3IFdlYWtNYXAsRDF0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBFMXQoZCxnKXtp''@;'; put 'put ''ZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFs''@;'; put 'put ''dWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmaTVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24geDF0KGQpe3ZhciBnPWZ1bmN0aW9uIEkxdCgpe2lmKCJ1bmRlZmluZWQiPT10''@;'; put 'put ''eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChC''@;'; put 'put ''b29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWp3KGQpO2lmKGcpe3ZhciBDPWp3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHko''@;'; put 'put ''dGhpcyxhcmd1bWVudHMpO3JldHVybiBUMXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gazF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9''@;'; put 'put ''KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LEkxKGguREVGQVVMVFMseSkpLG9uZS5zZXQoblRlKEMpLHt9KSxDLm1lbnU9bnVsbCxDLml0ZW1zPVtdLEMucmVnaXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIFMxdChkLGcsaCl7ZyYmdFRlKGQucHJvdG90eXBlLGcpLGgmJnRUZShkLGgp''@;'; put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5hZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQ2xpY2soKX0pfX0s''@;'; put 'put ''e2tleToic2V0SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaXRlbXM9dGhpcy50cmFuc2xhdGVOYW1lcyh5KSx0aGlzLm1lbnUmJnRoaXMubWVudS5zZXRNZW51SXRlbXModGhpcy5pdGVtcyl9fSx7a2V5OiJ0cmFuc2xhdGVOYW1lcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhp''@;'; put 'put ''cztyZXR1cm4gVXIoeSxmdW5jdGlvbihJKXtJLm5hbWU9Qy50cmFuc2xhdGVJZlBvc3NpYmxlKEkubmFtZSl9KSx5fX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt6TyhqdyhoLnByb3RvdHlwZSksImJ1aWxkIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMubWVudT1u''@;'; put 'put ''ZXcgeDhlKHRoaXMuaG90LHtjbGFzc05hbWU6Imh0U2VsZWN0VUkgaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUiLGtlZXBJblZpZXdwb3J0OiExLHN0YW5kYWxvbmU6ITAsY29udGFpbmVyOnRoaXMub3B0aW9ucy5tZW51Q29udGFpbmVyfSksdGhpcy5tZW51LnNldE1lbnVJdGVtcyh0aGlzLml0''@;'; put 'put ''ZW1zKTt2YXIgQz1uZXcgVncodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRVSVNlbGVjdENhcHRpb24ifSksST1uZXcgVncodGhpcy5ob3Qse2NsYXNzTmFtZToiaHRVSVNlbGVjdERyb3Bkb3duIn0pLFo9b25lLmdldCh0aGlzKTtaLmNhcHRpb249QyxaLmNhcHRpb25FbGVtZW50PUMuZWxlbWVu''@;'; put 'put ''dCxaLmRyb3Bkb3duPUksVXIoW0MsSV0sZnVuY3Rpb24odWUpe3JldHVybiB5Ll9lbGVtZW50LmFwcGVuZENoaWxkKHVlLmVsZW1lbnQpfSksdGhpcy5tZW51LmFkZExvY2FsSG9vaygic2VsZWN0IixmdW5jdGlvbih1ZSl7cmV0dXJuIHkub25NZW51U2VsZWN0KHVlKX0pLHRoaXMubWVudS5h''@;'; put 'put ''ZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NZW51Q2xvc2VkKCl9KSx0aGlzLnVwZGF0ZSgpfX0se2tleToidXBkYXRlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5O3RoaXMuaXNCdWlsdCgpJiYoeT10aGlzLm9wdGlvbnMudmFsdWU/dGhpcy5vcHRpb25z''@;'; put 'put ''LnZhbHVlLm5hbWU6dGhpcy5tZW51LmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKGV0ZSksb25lLmdldCh0aGlzKS5jYXB0aW9uRWxlbWVudC50ZXh0Q29udGVudD15LHpPKGp3KGgucHJvdG90eXBlKSwidXBkYXRlIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6Im9wZW5PcHRpb25zIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTt0aGlzLm1lbnUmJih0aGlzLm1lbnUub3BlbigpLHRoaXMubWVudS5zZXRQb3NpdGlvbih7bGVmdDp0aGlzLmhvdC5pc0x0cigpP3kubGVmdC01OnkubGVmdC0zMSx0b3A6eS50b3AtMSx3aWR0''@;'; put 'put ''aDp5LndpZHRoLGhlaWdodDp5LmhlaWdodH0pKX19LHtrZXk6ImNsb3NlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1lbnUmJnRoaXMubWVudS5jbG9zZSgpfX0se2tleToib25NZW51U2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih5KXt5Lm5hbWUhPT1XbCYmKHRoaXMub3B0aW9ucy52''@;'; put 'put ''YWx1ZT15LHRoaXMudXBkYXRlKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJzZWxlY3QiLHRoaXMub3B0aW9ucy52YWx1ZSkpfX0se2tleToib25NZW51Q2xvc2VkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJDbG9zZSIpfX0se2tleToib25DbGljayIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oKXt0aGlzLm9wZW5PcHRpb25zKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubWVudSYmKHRoaXMubWVudS5kZXN0cm95KCksdGhpcy5tZW51PW51bGwpO3ZhciB5PW9uZS5nZXQodGhpcyksQz15LmNhcHRpb24sST15LmRyb3Bkb3duO0MmJkMuZGVz''@;'; put 'put ''dHJveSgpLEkmJkkuZGVzdHJveSgpLHpPKGp3KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiREVGQVVMVFMiLGdldDpmdW5jdGlvbigpe3JldHVybiBhMyh7Y2xhc3NOYW1lOiJodFVJU2VsZWN0Iix3cmFwSXQ6ITF9KX19XSksaH0oVncpO2NvbnN0''@;'; put 'put ''IHJUZT1EMXQ7ZnVuY3Rpb24gbzVlKGQpe3JldHVybihvNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9m''@;'; put 'put ''IFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBhNWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsr''@;'; put 'put ''KXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBpVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBhbmUoKXtyZXR1cm4gYW5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1OMXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3du''@;'; put 'put ''UHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGFuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gTjF0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5j''@;'; put 'put ''YWxsKGQsZykmJm51bGwhPT0oZD1HTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBsNWUoZCxnKXtyZXR1cm4obDVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVu''@;'; put 'put ''Y3Rpb24gWjF0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09bzVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIp''@;'; put 'put ''O3JldHVybiBmdW5jdGlvbiB6MXQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBHTyhkKXtyZXR1cm4oR089T2Jq''@;'; put 'put ''ZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgVzF0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBWMXQoZCxnKXtpZigiZnVuY3Rpb24iIT10''@;'; put 'put ''eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZToh''@;'; put 'put ''MCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmbDVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gajF0KGQpe3ZhciBnPWZ1bmN0aW9uIEcxdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8''@;'; put 'put ''IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0''@;'; put 'put ''aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUdPKGQpO2lmKGcpe3ZhciBDPUdPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMp''@;'; put 'put ''O3JldHVybiBaMXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gRjF0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5j''@;'; put 'put ''YWxsKHRoaXMsdix7aWQ6eS5pZCxzdGF0ZWxlc3M6ITF9KSkubmFtZT15Lm5hbWUsQy5hZGRTZXBhcmF0b3I9eS5hZGRTZXBhcmF0b3IsQy5lbGVtZW50cy5wdXNoKG5ldyByVGUoQy5ob3Qse21lbnVDb250YWluZXI6eS5tZW51Q29udGFpbmVyfSkpLEMuZWxlbWVudHMucHVzaChuZXcgWk8o''@;'; put 'put ''Qy5ob3Qse3BsYWNlaG9sZGVyOkhwZX0pKSxDLmVsZW1lbnRzLnB1c2gobmV3IFpPKEMuaG90LHtwbGFjZWhvbGRlcjpOcGV9KSksQy5yZWdpc3Rlckhvb2tzKCksQ31yZXR1cm4gZnVuY3Rpb24gSDF0KGQsZyxoKXtnJiZpVGUoZC5wcm90b3R5cGUsZyksaCYmaVRlKGQsaCksT2JqZWN0LmRl''@;'; put 'put ''ZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InJlZ2lzdGVySG9va3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soInNlbGVjdCIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25D''@;'; put 'put ''b25kaXRpb25TZWxlY3QoQyl9KSx0aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2soImFmdGVyQ2xvc2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25TZWxlY3RVSUNsb3NlZCgpfSksVXIodGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksZnVuY3Rpb24oQyl7Qy5hZGRMb2NhbEhvb2so''@;'; put 'put ''ImtleWRvd24iLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uSW5wdXRLZXlEb3duKEkpfSl9KX19LHtrZXk6InNldFN0YXRlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO2lmKHRoaXMucmVzZXQoKSx5KXt2YXIgST1hMyh5LmNvbW1hbmQpO0kubmFtZS5zdGFydHNXaXRoKHR1KSYmKEku''@;'; put 'put ''bmFtZT10aGlzLmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKEkubmFtZSkpLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNldFZhbHVlKEkpLFVyKHkuYXJncyxmdW5jdGlvbihaLHVlKXtpZih1ZT5JLmlucHV0c0NvdW50LTEpcmV0dXJuITE7dmFyIF9lPUMuZ2V0SW5wdXRFbGVtZW50KHVlKTtf''@;'; put 'put ''ZS5zZXRWYWx1ZShaKSxfZVtJLmlucHV0c0NvdW50PnVlPyJzaG93IjoiaGlkZSJdKCksdWV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gX2UuZm9jdXMoKX0sMTApfSl9fX0se2tleToiZ2V0U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5nZXRTZWxlY3RFbGVtZW50''@;'; put 'put ''KCkuZ2V0VmFsdWUoKXx8Vk8oSGYpLEM9W107cmV0dXJuIFVyKHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLGZ1bmN0aW9uKEksWil7eS5pbnB1dHNDb3VudD5aJiZDLnB1c2goSS5nZXRWYWx1ZSgpKX0pLHtjb21tYW5kOnksYXJnczpDfX19LHtrZXk6InVwZGF0ZVN0YXRlIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbih5LEMpe3ZhciBJPVZPKHk/eS5uYW1lOkhmKTt0aGlzLnN0YXRlLnNldFZhbHVlQXRJbmRleChDLHtjb21tYW5kOkksYXJnczp5P3kuYXJnczpbXX0pLHl8fFVyKHRoaXMuZ2V0SW5wdXRFbGVtZW50cygpLGZ1bmN0aW9uKFope3JldHVybiBaLnNldFZhbHVlKG51bGwpfSl9fSx7a2V5''@;'; put 'put ''OiJnZXRTZWxlY3RFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4geSBpbnN0YW5jZW9mIHJUZX0pWzBdfX0se2tleToiZ2V0SW5wdXRFbGVtZW50Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5s''@;'; put 'put ''ZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowO3JldHVybiB0aGlzLmdldElucHV0RWxlbWVudHMoKVt5XX19LHtrZXk6ImdldElucHV0RWxlbWVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKHkpe3Jl''@;'; put 'put ''dHVybiB5IGluc3RhbmNlb2YgWk99KX19LHtrZXk6ImdldE1lbnVJdGVtRGVzY3JpcHRvciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3JldHVybntrZXk6dGhpcy5pZCxuYW1lOnRoaXMubmFtZSxpc0NvbW1hbmQ6ITEsZGlzYWJsZVNlbGVjdGlvbjohMCxoaWRkZW46ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4geS5pc0hpZGRlbigpfSxyZW5kZXJlcjpmdW5jdGlvbihJLFosdWUsX2UsQmUsTmUpe08wKFoucGFyZW50Tm9kZSwiaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiIpLHkuYWRkU2VwYXJhdG9yJiZPMChaLnBhcmVudE5vZGUsImJvcmRlciIpO3ZhciBLZT15LmhvdC5yb290RG9jdW1l''@;'; put 'put ''bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIE8wKEtlLCJodEZpbHRlcnNNZW51TGFiZWwiKSxLZS50ZXh0Q29udGVudD1OZSxaLmFwcGVuZENoaWxkKEtlKSxaLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxVcih5LmVsZW1lbnRzLGZ1bmN0aW9uKHB0KXty''@;'; put 'put ''ZXR1cm4gWi5hcHBlbmRDaGlsZChwdC5lbGVtZW50KX0pLFp9fX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5LEM9dGhpcy5ob3QuZ2V0UGx1Z2luKCJmaWx0ZXJzIikuZ2V0U2VsZWN0ZWRDb2x1bW4oKSxJPUMmJkMudmlzdWFsSW5kZXgsdWU9ZnVuY3Rpb24gZDF0KGQp''@;'; put 'put ''e3ZhciBnPVtdLGg9ZDtyZXR1cm4gSnhlW2hdfHwoaD0idGV4dCIpLFVyKEp4ZVtoXSxmdW5jdGlvbih2KXt2YXIgeTt5PXY9PT1XbD97bmFtZTpXbH06YTMoVk8odikpLGcucHVzaCh5KX0pLGd9KCh5PXRoaXMuaG90KS5nZXREYXRhVHlwZS5hcHBseSh5LGZ1bmN0aW9uIEwxdChkKXtyZXR1''@;'; put 'put ''cm4gZnVuY3Rpb24gUDF0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGE1ZShkKX0oZCl8fGZ1bmN0aW9uIEIxdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5''@;'; put 'put ''LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBSMXQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGE1ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQu''@;'; put 'put ''Y29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gYTVlKGQsZyl9fShkKXx8ZnVuY3Rpb24gTzF0''@;'; put 'put ''KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KHRo''@;'; put 'put ''aXMuaG90LmdldFNlbGVjdGVkTGFzdCgpfHxbMCxJXSkpKTtVcih0aGlzLmdldElucHV0RWxlbWVudHMoKSxmdW5jdGlvbihfZSl7cmV0dXJuIF9lLmhpZGUoKX0pLHRoaXMuZ2V0U2VsZWN0RWxlbWVudCgpLnNldEl0ZW1zKHVlKSxhbmUoR08oaC5wcm90b3R5cGUpLCJyZXNldCIsdGhpcyku''@;'; put 'put ''Y2FsbCh0aGlzKSx0aGlzLmdldFNlbGVjdEVsZW1lbnQoKS5zZXRWYWx1ZSh1ZVswXSl9fSx7a2V5OiJvbkNvbmRpdGlvblNlbGVjdCIsdmFsdWU6ZnVuY3Rpb24oeSl7VXIodGhpcy5nZXRJbnB1dEVsZW1lbnRzKCksZnVuY3Rpb24oQyxJKXtDW3kuaW5wdXRzQ291bnQ+ST8ic2hvdyI6Imhp''@;'; put 'put ''ZGUiXSgpLDA9PT1JJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIEMuZm9jdXMoKX0sMTApfSksdGhpcy5ydW5Mb2NhbEhvb2tzKCJjaGFuZ2UiLHkpfX0se2tleToib25TZWxlY3RVSUNsb3NlZCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyQ2xvc2Ui''@;'; put 'put ''KX19LHtrZXk6Im9uSW5wdXRLZXlEb3duIix2YWx1ZTpmdW5jdGlvbih5KXtkTyh5LmtleUNvZGUsIkVOVEVSIik/KHRoaXMucnVuTG9jYWxIb29rcygiYWNjZXB0IiksXzgoeSkpOmRPKHkua2V5Q29kZSwiRVNDQVBFIikmJih0aGlzLnJ1bkxvY2FsSG9va3MoImNhbmNlbCIpLF84KHkpKX19''@;'; put 'put ''XSksaH0ocXRlKTtjb25zdCBzNWU9VzF0O3ZhciB4ej17fTtmdW5jdGlvbiBZMXQoZCl7aWYoIXh6W2RdKXRocm93IEVycm9yKCdPcGVyYXRpb24gd2l0aCBpZCAiJy5jb25jYXQoZCwnIiBkb2VzIG5vdCBleGlzdC4nKSk7dmFyIGc9eHpbZF0uZnVuYztyZXR1cm4gZnVuY3Rpb24oaCx2KXty''@;'; put 'put ''ZXR1cm4gZyhoLHYpfX1mdW5jdGlvbiBVMXQoZCl7cmV0dXJuIHh6W2RdLm5hbWV9ZnVuY3Rpb24gdTVlKGQsZyxoKXt4eltkXT17bmFtZTpnLGZ1bmM6aH19dmFyIFp3PSJjb25qdW5jdGlvbiI7dTVlKFp3LExwZSxmdW5jdGlvbiBKMXQoZCxnKXtyZXR1cm4gZC5ldmVyeShmdW5jdGlvbiho''@;'; put 'put ''KXtyZXR1cm4gaC5mdW5jKGcpfSl9KTt2YXIgbG5lPSJkaXNqdW5jdGlvbiI7dTVlKGxuZSx0dGUsZnVuY3Rpb24gSzF0KGQsZyl7cmV0dXJuIGQuc29tZShmdW5jdGlvbihoKXtyZXR1cm4gaC5mdW5jKGcpfSl9KTt2YXIgYzVlPSJkaXNqdW5jdGlvbldpdGhFeHRyYUNvbmRpdGlvbiI7ZnVu''@;'; put 'put ''Y3Rpb24gZjVlKGQpe3JldHVybihmNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5j''@;'; put 'put ''b25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBvVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJs''@;'; put 'put ''ZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBzbmUoKXtyZXR1cm4gc25lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcs''@;'; put 'put ''aCx2KXt2YXIgeT1udXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHNuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbnV0''@;'; put 'put ''KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1XTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBoNWUoZCxnKXtyZXR1cm4oaDVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1''@;'; put 'put ''bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gb3V0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZjVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0''@;'; put 'put ''cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBhVGUoZCl9ZnVuY3Rpb24gYVRlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVl''@;'; put 'put ''biBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBXTyhkKXtyZXR1cm4oV089T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX11NWUoYzVl''@;'; put 'put ''LHR0ZSxmdW5jdGlvbiBxMXQoZCxnKXtpZihkLmxlbmd0aDwzKXRocm93IEVycm9yKCJPcGVyYXRpb24gZG9lc24ndCB3b3JrIG9uIGxlc3MgdGhlbiB0aHJlZSBjb25kaXRpb25zLiIpO3JldHVybiBkLnNsaWNlKDAsZC5sZW5ndGgtMSkuc29tZShmdW5jdGlvbihoKXtyZXR1cm4gaC5mdW5j''@;'; put 'put ''KGcpfSkmJmRbZC5sZW5ndGgtMV0uZnVuYyhnKX0pO3ZhciB1bmU9bmV3IFdlYWtNYXAsbHV0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBydXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVp''@;'; put 'put ''dGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRh''@;'; put 'put ''YmxlOiExfSksZyYmaDVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gaXV0KGQpe3ZhciBnPWZ1bmN0aW9uIGF1dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVdP''@;'; put 'put ''KGQpO2lmKGcpe3ZhciBDPVdPKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBvdXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24g''@;'; put 'put ''ZXV0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LEkxKGguREVGQVVMVFMseSkpLHVuZS5zZXQoYVRlKEMpLHt9KSxDfXJldHVybiBmdW5jdGlv''@;'; put 'put ''biB0dXQoZCxnLGgpe2cmJm9UZShkLnByb3RvdHlwZSxnKSxoJiZvVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7c25lKFdPKGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMp''@;'; put 'put ''LmNhbGwodGhpcyk7dmFyIHk9dW5lLmdldCh0aGlzKTt5LmlucHV0PXRoaXMuX2VsZW1lbnQuZmlyc3RDaGlsZDt2YXIgQz10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGFiZWwiKTtDLnRleHRDb250ZW50PXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlv''@;'; put 'put ''bnMubGFiZWwudGV4dENvbnRlbnQpLEMuaHRtbEZvcj10aGlzLnRyYW5zbGF0ZUlmUG9zc2libGUodGhpcy5vcHRpb25zLmxhYmVsLmh0bWxGb3IpLHkubGFiZWw9Qyx0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKEMpLHRoaXMudXBkYXRlKCl9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKCl7aWYodGhpcy5pc0J1aWx0KCkpe3ZhciB5PXVuZS5nZXQodGhpcyk7eS5pbnB1dC5jaGVja2VkPXRoaXMub3B0aW9ucy5jaGVja2VkLHkubGFiZWwudGV4dENvbnRlbnQ9dGhpcy50cmFuc2xhdGVJZlBvc3NpYmxlKHRoaXMub3B0aW9ucy5sYWJlbC50ZXh0Q29udGVudCl9fX0se2tl''@;'; put 'put ''eToiaXNDaGVja2VkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMuY2hlY2tlZH19LHtrZXk6InNldENoZWNrZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTt0aGlz''@;'; put 'put ''Lm9wdGlvbnMuY2hlY2tlZD15LHRoaXMudXBkYXRlKCl9fSx7a2V5OiJmb2N1cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQnVpbHQoKSYmdW5lLmdldCh0aGlzKS5pbnB1dC5mb2N1cygpfX1dLFt7a2V5OiJERUZBVUxUUyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGEzKHt0eXBlOiJyYWRp''@;'; put 'put ''byIsdGFnTmFtZToiaW5wdXQiLGNsYXNzTmFtZToiaHRVSVJhZGlvIixsYWJlbDp7fX0pfX1dKSxofShWdyk7Y29uc3QgbFRlPWx1dDtmdW5jdGlvbiBkNWUoZCl7cmV0dXJuKGQ1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9m''@;'; put 'put ''dW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBzVGU7ZnVuY3Rpb24gdVRl''@;'; put 'put ''KGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24g''@;'; put 'put ''cDVlKGQsZyl7cmV0dXJuKHA1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGR1dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWQ1ZShnKXx8ImZ1bmN0''@;'; put 'put ''aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gcHV0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3''@;'; put 'put ''IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gY25lKGQpe3JldHVybihjbmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5k''@;'; put 'put ''KCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgbXV0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBmdXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIg''@;'; put 'put ''ZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQs''@;'; put 'put ''InByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmcDVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gaHV0KGQpe3ZhciBnPWZ1bmN0aW9uIGd1dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJl''@;'; put 'put ''dHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVu''@;'; put 'put ''Y3Rpb24oKXt2YXIgeSx2PWNuZShkKTtpZihnKXt2YXIgQz1jbmUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGR1dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3Zh''@;'; put 'put ''ciBDO3JldHVybiBmdW5jdGlvbiB1dXQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2LHtpZDp5LmlkLHN0YXRlbGVzczohMX0pKS5uYW1lPXku''@;'; put 'put ''bmFtZSxDLmJ1aWxkT3BlcmF0b3JzRWxlbWVudCgpLEN9cmV0dXJuIGZ1bmN0aW9uIGN1dChkLGcsaCl7ZyYmdVRlKGQucHJvdG90eXBlLGcpLGgmJnVUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJnZXRNZW51SXRl''@;'; put 'put ''bURlc2NyaXB0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57a2V5OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXNIaWRkZW4oKX0scmVuZGVyZXI6ZnVuY3Rpb24o''@;'; put 'put ''SSxaKXtyZXR1cm4gTzAoWi5wYXJlbnROb2RlLCJodEZpbHRlcnNNZW51T3BlcmF0b3JzIiksWi5wYXJlbnROb2RlLmhhc0F0dHJpYnV0ZSgiZ2hvc3QtdGFibGUiKXx8VXIoeS5lbGVtZW50cyxmdW5jdGlvbih1ZSl7cmV0dXJuIFouYXBwZW5kQ2hpbGQodWUuZWxlbWVudCl9KSxafX19fSx7''@;'; put 'put ''a2V5OiJidWlsZE9wZXJhdG9yc0VsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPVtadyxsbmVdO1VyKEMsZnVuY3Rpb24oSSl7dmFyIFo9bmV3IGxUZSh5LmhvdCx7bmFtZToib3BlcmF0b3IiLGxhYmVsOntodG1sRm9yOkksdGV4dENvbnRlbnQ6VTF0KEkpfSx2YWx1ZTpJ''@;'; put 'put ''LGNoZWNrZWQ6ST09PUNbMF0saWQ6SX0pO1ouYWRkTG9jYWxIb29rKCJjaGFuZ2UiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vblJhZGlvSW5wdXRDaGFuZ2UodWUpfSkseS5lbGVtZW50cy5wdXNoKFopfSl9fSx7a2V5OiJzZXRDaGVja2VkIix2YWx1ZTpmdW5jdGlvbih5KXtpZih0aGlzLmVs''@;'; put 'put ''ZW1lbnRzLmxlbmd0aDx5KXRocm93IEVycm9yKFAyKHNUZXx8KHNUZT1mdW5jdGlvbiBzdXQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlJhZGlv''@;'; put 'put ''IGJ1dHRvbiB3aXRoIGluZGV4ICIsIiBkb2Vzbid0IGV4aXN0LiJdKSkseSkpO1VyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oQyxJKXtDLnNldENoZWNrZWQoST09PXkpfSl9fSx7a2V5OiJnZXRBY3RpdmVPcGVyYXRpb25JZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmVsZW1lbnRz''@;'; put 'put ''LmZpbmQoZnVuY3Rpb24oQyl7cmV0dXJuIEMgaW5zdGFuY2VvZiBsVGUmJkMuaXNDaGVja2VkKCl9KTtyZXR1cm4geT95LmdldFZhbHVlKCk6Wnd9fSx7a2V5OiJnZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRBY3RpdmVPcGVyYXRpb25JZCgpfX0se2tleToic2V0''@;'; put 'put ''U3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMucmVzZXQoKSx5JiZ0aGlzLmdldEFjdGl2ZU9wZXJhdGlvbklkKCkhPT15JiZVcih0aGlzLmVsZW1lbnRzLGZ1bmN0aW9uKEMpe0Muc2V0Q2hlY2tlZChDLmdldFZhbHVlKCk9PT15KX0pfX0se2tleToidXBkYXRlU3RhdGUiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOlp3LEM9YXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsST15O0k9PT1jNWUmJihJPWxuZSksdGhpcy5zdGF0ZS5zZXRWYWx1ZUF0SW5kZXgoQyxJ''@;'; put 'put ''KX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2V0Q2hlY2tlZCgwKX19LHtrZXk6Im9uUmFkaW9JbnB1dENoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5zZXRTdGF0ZSh5LnRhcmdldC52YWx1ZSl9fV0pLGh9KHF0ZSk7Y29uc3QgdnV0PW11dDtmdW5jdGlvbiB5''@;'; put 'put ''dXQoZCxnKXt2YXIgaD1kO3JldHVybiIiPT09aCYmKGg9IigiLmNvbmNhdChnLCIpIikpLGh9ZmJlKCk7dmFyIGc1ZT1uZXcgU2V0KFsxXSkuaGFzKDEpLHd1dD1nNWUmJiJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheS5mcm9tO2Z1bmN0aW9uIFR6KGQpe3ZhciBnPWQ7cmV0dXJuIGc1ZSYmKGc9''@;'; put 'put ''bmV3IFNldChnKSksZnVuY3Rpb24oaCl7cmV0dXJuIGc1ZT9nLmhhcyhoKTohIX5nLmluZGV4T2YoaCl9fWZ1bmN0aW9uIGZUZShkKXtyZXR1cm4gbnVsbD09ZD8iIjpkfWZ1bmN0aW9uIG01ZShkKXt2YXIgZz1kO3JldHVybihnPXd1dD9BcnJheS5mcm9tKG5ldyBTZXQoZykpOkpoZShnKSku''@;'; put 'put ''c29ydChmdW5jdGlvbihoLHYpe3JldHVybiJudW1iZXIiPT10eXBlb2YgaCYmIm51bWJlciI9PXR5cGVvZiB2P2gtdjpoPT09dj8wOmg+dj8xOi0xfSl9ZnVuY3Rpb24gaFRlKGQsZyxoLHYpe3ZhciBJLHk9W10sQz1kPT09ZztyZXR1cm4gQ3x8KEk9VHooZykpLFVyKGQsZnVuY3Rpb24oWil7''@;'; put 'put ''dmFyIHVlPSExOyhDfHxJKFopKSYmKHVlPSEwKTt2YXIgX2U9e2NoZWNrZWQ6dWUsdmFsdWU6Wix2aXN1YWxWYWx1ZTp5dXQoWixoKX07diYmdihfZSkseS5wdXNoKF9lKX0pLHl9ZnVuY3Rpb24gdjVlKGQpe3JldHVybih2NWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9''@;'; put 'put ''PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9''@;'; put 'put ''KShkKX1mdW5jdGlvbiBkVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYu''@;'; put 'put ''a2V5LHYpfX1mdW5jdGlvbiBmbmUoKXtyZXR1cm4gZm5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1DdXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw''@;'; put 'put ''dG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGZuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQ3V0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwh''@;'; put 'put ''PT0oZD1ZTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBBNWUoZCxnKXtyZXR1cm4oQTVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gTXV0KGQsZyl7''@;'; put 'put ''aWYoZyYmKCJvYmplY3QiPT09djVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBwVGUoZCl9''@;'; put 'put ''ZnVuY3Rpb24gcFRlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBZTyhkKXtyZXR1cm4oWU89T2JqZWN0LnNldFByb3Rv''@;'; put 'put ''dHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1MKDQ5Mjk1KTt2YXIgeTVlPW5ldyBXZWFrTWFwLHh1dD1mdW5jdGlvbihkKXshZnVuY3Rpb24ga3V0KGQsZyl7aWYo''@;'; put 'put ''ImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVl''@;'; put 'put ''OmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJkE1ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFN1dChkKXt2YXIgZz1mdW5jdGlvbiBFdXQoKXtpZigidW5kZWZpbmVkIj09dHlw''@;'; put 'put ''ZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9v''@;'; put 'put ''bGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1ZTyhkKTtpZihnKXt2YXIgQz1ZTyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRo''@;'; put 'put ''aXMsYXJndW1lbnRzKTtyZXR1cm4gTXV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7cmV0dXJuIGZ1bmN0aW9uIGJ1dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0''@;'; put 'put ''aGlzLGgpLEM9Zy5jYWxsKHRoaXMsdixJMShoLkRFRkFVTFRTLHkpKSx5NWUuc2V0KHBUZShDKSx7fSksQ31yZXR1cm4gZnVuY3Rpb24gX3V0KGQsZyxoKXtnJiZkVGUoZC5wcm90b3R5cGUsZyksaCYmZFRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRh''@;'; put 'put ''YmxlOiExfSl9KGgsW3trZXk6ImJ1aWxkIix2YWx1ZTpmdW5jdGlvbigpe2ZuZShZTyhoLnByb3RvdHlwZSksImJ1aWxkIix0aGlzKS5jYWxsKHRoaXMpLHk1ZS5nZXQodGhpcykubGluaz10aGlzLl9lbGVtZW50LmZpcnN0Q2hpbGR9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''IXRoaXMuaXNCdWlsdCgpfHwoeTVlLmdldCh0aGlzKS5saW5rLnRleHRDb250ZW50PXRoaXMudHJhbnNsYXRlSWZQb3NzaWJsZSh0aGlzLm9wdGlvbnMudGV4dENvbnRlbnQpKX19XSxbe2tleToiREVGQVVMVFMiLGdldDpmdW5jdGlvbigpe3JldHVybiBhMyh7aHJlZjoiIyIsdGFnTmFtZToi''@;'; put 'put ''YSJ9KX19XSksaH0oVncpO2NvbnN0IGdUZT14dXQ7ZnVuY3Rpb24gdzVlKGQpe3JldHVybih3NWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4g''@;'; put 'put ''ZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBtVGUoZCl7cmV0dXJuIGZ1bmN0aW9uIEx1dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBi''@;'; put 'put ''NWUoZCl9KGQpfHxmdW5jdGlvbiBEdXQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gSXV0KGQsZyl7aWYoZCl7aWYoInN0cmlu''@;'; put 'put ''ZyI9PXR5cGVvZiBkKXJldHVybiBiNWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBB''@;'; put 'put ''cnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGI1ZShkLGcpfX0oZCl8fGZ1bmN0aW9uIFR1dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJl''@;'; put 'put ''YWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGI1ZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5n''@;'; put 'put ''dGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHZUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2''@;'; put 'put ''YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFVPKCl7cmV0dXJuIFVPPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIg''@;'; put 'put ''eT1CdXQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LFVPLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBCdXQoZCxnKXtmb3Io''@;'; put 'put ''OyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPXp3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIF81ZShkLGcpe3JldHVybihfNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5''@;'; put 'put ''KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBIdXQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT13NWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1h''@;'; put 'put ''eSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIEFUZShkKX1mdW5jdGlvbiBBVGUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIp''@;'; put 'put ''O3JldHVybiBkfWZ1bmN0aW9uIHp3KGQpe3JldHVybih6dz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZhciBWdXQ9bmV3IFdlYWtN''@;'; put 'put ''YXAsWnV0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBQdXQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3Qu''@;'; put 'put ''Y3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmXzVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gRnV0KGQp''@;'; put 'put ''e3ZhciBnPWZ1bmN0aW9uIE51dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJv''@;'; put 'put ''dG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXp3KGQpO2lmKGcpe3ZhciBDPXp3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5j''@;'; put 'put ''b25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBIdXQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gT3V0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJv''@;'; put 'put ''cigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwodGhpcyx2LEkxKGguREVGQVVMVFMseSkpLFZ1dC5zZXQoQVRlKEMpLHt9KSxDLnNlYXJjaElucHV0PW5ldyBaTyhDLmhvdCx7cGxhY2Vob2xkZXI6RnBlLGNsYXNzTmFtZToiaHRVSU11bHRp''@;'; put 'put ''cGxlU2VsZWN0U2VhcmNoIn0pLEMuc2VsZWN0QWxsVUk9bmV3IGdUZShDLmhvdCx7dGV4dENvbnRlbnQ6T3BlLGNsYXNzTmFtZToiaHRVSVNlbGVjdEFsbCJ9KSxDLmNsZWFyQWxsVUk9bmV3IGdUZShDLmhvdCx7dGV4dENvbnRlbnQ6UnBlLGNsYXNzTmFtZToiaHRVSUNsZWFyQWxsIn0pLEMu''@;'; put 'put ''aXRlbXM9W10sQy5pdGVtc0JveD1udWxsLEMucmVnaXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIFJ1dChkLGcsaCl7ZyYmdlRlKGQucHJvdG90eXBlLGcpLGgmJnZUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5''@;'; put 'put ''OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5zZWFyY2hJbnB1dC5hZGRMb2NhbEhvb2soImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uSW5wdXRLZXlEb3duKEMpfSksdGhpcy5zZWFyY2hJbnB1dC5hZGRMb2NhbEhvb2soImlucHV0Iixm''@;'; put 'put ''dW5jdGlvbihDKXtyZXR1cm4geS5vbklucHV0KEMpfSksdGhpcy5zZWxlY3RBbGxVSS5hZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbihDKXtyZXR1cm4geS5vblNlbGVjdEFsbENsaWNrKEMpfSksdGhpcy5jbGVhckFsbFVJLmFkZExvY2FsSG9vaygiY2xpY2siLGZ1bmN0aW9uKEMpe3Jl''@;'; put 'put ''dHVybiB5Lm9uQ2xlYXJBbGxDbGljayhDKX0pfX0se2tleToic2V0SXRlbXMiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaXRlbXM9eSx0aGlzLml0ZW1zQm94JiZ0aGlzLml0ZW1zQm94LmxvYWREYXRhKHRoaXMuaXRlbXMpfX0se2tleToic2V0TG9jYWxlIix2YWx1ZTpmdW5jdGlvbih5KXt0''@;'; put 'put ''aGlzLmxvY2FsZT15fX0se2tleToiZ2V0TG9jYWxlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxvY2FsZX19LHtrZXk6ImdldEl0ZW1zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBtVGUodGhpcy5pdGVtcyl9fSx7a2V5OiJnZXRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gZnVuY3Rpb24gR3V0KGQpe3ZhciBnPVtdO3JldHVybiBVcihkLGZ1bmN0aW9uKGgpe2guY2hlY2tlZCYmZy5wdXNoKGgudmFsdWUpfSksZ30odGhpcy5pdGVtcyl9fSx7a2V5OiJpc1NlbGVjdGVkQWxsVmFsdWVzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLml0ZW1zLmxlbmd0''@;'; put 'put ''aD09PXRoaXMuZ2V0VmFsdWUoKS5sZW5ndGh9fSx7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1VPKHp3KGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyk7dmFyIEM9dGhpcy5ob3Qucm9vdERvY3VtZW50LEk9Qy5jcmVhdGVFbGVtZW50KCJkaXYi''@;'; put 'put ''KSxaPW5ldyBWdyh0aGlzLmhvdCx7Y2xhc3NOYW1lOiJodFVJU2VsZWN0aW9uQ29udHJvbHMiLGNoaWxkcmVuOlt0aGlzLnNlbGVjdEFsbFVJLHRoaXMuY2xlYXJBbGxVSV19KTt0aGlzLl9lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuc2VhcmNoSW5wdXQuZWxlbWVudCksdGhpcy5fZWxlbWVu''@;'; put 'put ''dC5hcHBlbmRDaGlsZChaLmVsZW1lbnQpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQoSSk7dmFyIHVlPWZ1bmN0aW9uKEJlKXt5Ll9lbGVtZW50JiYoeS5pdGVtc0JveCYmeS5pdGVtc0JveC5kZXN0cm95KCksTzAoQmUsImh0VUlNdWx0aXBsZVNlbGVjdEhvdCIpLHkuaXRlbXNCb3g9bmV3''@;'; put 'put ''IHkuaG90LmNvbnN0cnVjdG9yKEJlLHtkYXRhOnkuaXRlbXMsY29sdW1uczpbe2RhdGE6ImNoZWNrZWQiLHR5cGU6ImNoZWNrYm94IixsYWJlbDp7cHJvcGVydHk6InZpc3VhbFZhbHVlIixwb3NpdGlvbjoiYWZ0ZXIifX1dLGJlZm9yZVJlbmRlcmVyOmZ1bmN0aW9uKE90LCR0LGZuLExuLGly''@;'; put 'put ''LG1yKXtPdC50aXRsZT1tci5pbnN0YW5jZS5nZXREYXRhQXRSb3dQcm9wKCR0LG1yLmxhYmVsLnByb3BlcnR5KX0sbWF4Q29sczoxLGF1dG9XcmFwQ29sOiEwLGhlaWdodDoxMTAsY29sV2lkdGhzOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXRlbXNCb3guY29udGFpbmVyLnNjcm9sbFdpZHRoLUJj''@;'; put 'put ''KEMpfSxjb3B5UGFzdGU6ITEsZGlzYWJsZVZpc3VhbFNlbGVjdGlvbjoiYXJlYSIsZmlsbEhhbmRsZTohMSxmcmFnbWVudFNlbGVjdGlvbjoiY2VsbCIsdGFiTW92ZXM6e3JvdzoxLGNvbDowfSxsYXlvdXREaXJlY3Rpb246eS5ob3QuaXNSdGwoKT8icnRsIjoibHRyIn0pLHkuaXRlbXNCb3gu''@;'; put 'put ''aW5pdCgpLHkuaXRlbXNCb3guZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFkZFNob3J0Y3V0KHtrZXlzOltbIkVzY2FwZSJdXSxjYWxsYmFjazpmdW5jdGlvbihPdCl7eS5ydW5Mb2NhbEhvb2tzKCJrZXlkb3duIixPdCx5KX0sZ3JvdXA6Im11bHRpcGxlU2VsZWN0''@;'; put 'put ''Lml0ZW1Cb3gifSkpfTt1ZShJKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cmV0dXJuIHVlKEkpfSwxMDApfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5zZWFyY2hJbnB1dC5yZXNldCgpLHRoaXMuc2VsZWN0QWxsVUkucmVzZXQoKSx0aGlzLmNsZWFyQWxsVUkucmVzZXQo''@;'; put 'put ''KX19LHtrZXk6InVwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXshdGhpcy5pc0J1aWx0KCl8fCh0aGlzLml0ZW1zQm94LmxvYWREYXRhKGZ1bmN0aW9uIHp1dChkLGcpe3ZhciBoPVR6KGcpO3JldHVybiBPbChkLGZ1bmN0aW9uKHYpe3JldHVybiB2LmNoZWNrZWQ9aCh2LnZhbHVlKSx2fSl9KHRo''@;'; put 'put ''aXMuaXRlbXMsdGhpcy5vcHRpb25zLnZhbHVlKSksVU8oencoaC5wcm90b3R5cGUpLCJ1cGRhdGUiLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLml0ZW1zQm94JiZ0aGlzLml0ZW1zQm94LmRlc3Ryb3koKSx0aGlzLnNlYXJjaElucHV0''@;'; put 'put ''LmRlc3Ryb3koKSx0aGlzLmNsZWFyQWxsVUkuZGVzdHJveSgpLHRoaXMuc2VsZWN0QWxsVUkuZGVzdHJveSgpLHRoaXMuc2VhcmNoSW5wdXQ9bnVsbCx0aGlzLmNsZWFyQWxsVUk9bnVsbCx0aGlzLnNlbGVjdEFsbFVJPW51bGwsdGhpcy5pdGVtc0JveD1udWxsLHRoaXMuaXRlbXM9bnVsbCxV''@;'; put 'put ''Tyh6dyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJvbklucHV0Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgWixDPXRoaXMsST15LnRhcmdldC52YWx1ZS50b0xvY2FsZUxvd2VyQ2FzZSh0aGlzLmdldExvY2FsZSgpKTtaPSIiPT09ST9tVGUodGhpcy5p''@;'; put 'put ''dGVtcyk6ZzQodGhpcy5pdGVtcyxmdW5jdGlvbih1ZSl7cmV0dXJuIiIuY29uY2F0KHVlLnZhbHVlKS50b0xvY2FsZUxvd2VyQ2FzZShDLmdldExvY2FsZSgpKS5pbmRleE9mKEkpPj0wfSksdGhpcy5pdGVtc0JveC5sb2FkRGF0YShaKX19LHtrZXk6Im9uSW5wdXRLZXlEb3duIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbih5KXt0aGlzLnJ1bkxvY2FsSG9va3MoImtleWRvd24iLHksdGhpcyksYjNlKGRPLHkua2V5Q29kZSkoIkFSUk9XX0RPV058VEFCIikmJiF0aGlzLml0ZW1zQm94LmlzTGlzdGVuaW5nKCkmJihfOCh5KSx0aGlzLml0ZW1zQm94Lmxpc3RlbigpLHRoaXMuaXRlbXNCb3guc2VsZWN0''@;'; put 'put ''Q2VsbCgwLDApKX19LHtrZXk6Im9uU2VsZWN0QWxsQ2xpY2siLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVtdO3kucHJldmVudERlZmF1bHQoKSxVcih0aGlzLml0ZW1zQm94LmdldFNvdXJjZURhdGEoKSxmdW5jdGlvbihJLFope0kuY2hlY2tlZD0hMCxDLnB1c2goUWRlKEksWilbMF0pfSks''@;'; put 'put ''dGhpcy5pdGVtc0JveC5zZXRTb3VyY2VEYXRhQXRDZWxsKEMpfX0se2tleToib25DbGVhckFsbENsaWNrIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1bXTt5LnByZXZlbnREZWZhdWx0KCksVXIodGhpcy5pdGVtc0JveC5nZXRTb3VyY2VEYXRhKCksZnVuY3Rpb24oSSxaKXtJLmNoZWNrZWQ9''@;'; put 'put ''ITEsQy5wdXNoKFFkZShJLFopWzBdKX0pLHRoaXMuaXRlbXNCb3guc2V0U291cmNlRGF0YUF0Q2VsbChDKX19XSxbe2tleToiREVGQVVMVFMiLGdldDpmdW5jdGlvbigpe3JldHVybiBhMyh7Y2xhc3NOYW1lOiJodFVJTXVsdGlwbGVTZWxlY3QiLHZhbHVlOltdfSl9fV0pLGh9KFZ3KTtjb25z''@;'; put 'put ''dCB5VGU9WnV0O2Z1bmN0aW9uIHdUZShkLGcpe3JldHVybiBmdW5jdGlvbiBRdXQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFV1dChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0''@;'; put 'put ''b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9Zmlu''@;'; put 'put ''YWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uIFl1dChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gYlRlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50''@;'; put 'put ''b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8''@;'; put 'put ''MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBiVGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIFd1dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVy''@;'; put 'put ''YWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gYlRlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRb''@;'; put 'put ''aF07cmV0dXJuIHZ9dmFyIGFNPSJieV92YWx1ZSI7ZnVuY3Rpb24gQzVlKGQpe3JldHVybihDNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4g''@;'; put 'put ''ZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBfVGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2''@;'; put 'put ''PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBDVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3Jp''@;'; put 'put ''dGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBobmUoKXtyZXR1cm4gaG5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1yY3QoZyxoKTtpZih5''@;'; put 'put ''KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGhuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gcmN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3Rv''@;'; put 'put ''dHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1RTyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBrNWUoZCxnKXtyZXR1cm4oazVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19w''@;'; put 'put ''cm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gYWN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09QzVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4g''@;'; put 'put ''b2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBsY3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlv''@;'; put 'put ''biBRTyhkKXtyZXR1cm4oUU89T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1adShhTSxmdW5jdGlvbiBKdXQoZCxnKXtyZXR1cm4oMCx3''@;'; put 'put ''VGUoZywxKVswXSkoZC52YWx1ZSl9LHtuYW1lOiJCeSB2YWx1ZSIsaW5wdXRzQ291bnQ6MCxpbnB1dFZhbHVlc0RlY29yYXRvcjpmdW5jdGlvbihnKXtyZXR1cm5bVHood1RlKGcsMSlbMF0pXX0sc2hvd09wZXJhdG9yczohMX0pO3ZhciB1Y3Q9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGljdChk''@;'; put 'put ''LGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9y''@;'; put 'put ''Ont2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZrNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBvY3QoZCl7dmFyIGc9ZnVuY3Rpb24gc2N0KCl7aWYoInVuZGVmaW5l''@;'; put 'put ''ZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3Ry''@;'; put 'put ''dWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9UU8oZCk7aWYoZyl7dmFyIEM9UU8odGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5h''@;'; put 'put ''cHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGFjdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiB0Y3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rp''@;'; put 'put ''b24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2LHtpZDp5LmlkLHN0YXRlbGVzczohMX0pKS5uYW1lPXkubmFtZSxDLmVsZW1lbnRzLnB1c2gobmV3IHlUZShDLmhvdCkpLEMucmVnaXN0ZXJIb29rcygpLEN9cmV0dXJuIGZ1bmN0aW9uIG5jdChkLGcsaCl7ZyYmQ1RlKGQucHJvdG90eXBl''@;'; put 'put ''LGcpLGgmJkNUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJyZWdpc3Rlckhvb2tzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKS5hZGRMb2NhbEhvb2so''@;'; put 'put ''ImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB5Lm9uSW5wdXRLZXlEb3duKEMpfSl9fSx7a2V5OiJzZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYodGhpcy5yZXNldCgpLHkmJnkuY29tbWFuZC5rZXk9PT1hTSl7dmFyIEM9dGhpcy5nZXRNdWx0aXBsZVNlbGVjdEVsZW1lbnQoKTtD''@;'; put 'put ''LnNldEl0ZW1zKHkuaXRlbXNTbmFwc2hvdCksQy5zZXRWYWx1ZSh5LmFyZ3NbMF0pLEMuc2V0TG9jYWxlKHkubG9jYWxlKX19fSx7a2V5OiJnZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLEM9eS5nZXRJdGVtcygpO3JldHVy''@;'; put 'put ''bntjb21tYW5kOntrZXk6eS5pc1NlbGVjdGVkQWxsVmFsdWVzKCl8fCFDLmxlbmd0aD9IZjphTX0sYXJnczpbeS5nZXRWYWx1ZSgpXSxpdGVtc1NuYXBzaG90OkN9fX0se2tleToidXBkYXRlU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1mdW5jdGlvbih1ZSxfZSxCZSxO''@;'; put 'put ''ZSxLZSl7dmFyICR0PWZ1bmN0aW9uIFh1dChkLGcpe3JldHVybiBmdW5jdGlvbiBlY3QoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIHF1dChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRl''@;'; put 'put ''cmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxsKGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9''@;'; put 'put ''ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19KGQsZyl8fGZ1bmN0aW9uICR1dChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gX1RlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlw''@;'; put 'put ''ZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8''@;'; put 'put ''MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBfVGUoZCxnKX19KGQsZyl8fGZ1bmN0aW9uIEt1dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBp''@;'; put 'put ''dGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KGc0KF9lLGZ1bmN0aW9uKFFyKXtyZXR1cm4gUXIubmFtZT09PWFNfSksMSlbMF0sZm49e30sTG49Qy5ob3QuZ2V0VHJhbnNsYXRlZFBocmFzZShudGUpO2lmKCR0''@;'; put 'put ''KXt2YXIgaXI9bTVlKE9sKE5lKHVlLEtlKSxmdW5jdGlvbihRcil7cmV0dXJuIFFyLnZhbHVlfSkpO0JlJiYoJHQuYXJnc1swXT1CZSk7dmFyIG1yPVtdLFNyPWhUZShpciwkdC5hcmdzWzBdLExuLGZ1bmN0aW9uKFFyKXtRci5jaGVja2VkJiZtci5wdXNoKFFyLnZhbHVlKX0pO2ZuLmxvY2Fs''@;'; put 'put ''ZT1DLmhvdC5nZXRDZWxsTWV0YSgwLHkuZWRpdGVkQ29uZGl0aW9uU3RhY2suY29sdW1uKS5sb2NhbGUsZm4uYXJncz1bbXJdLGZuLmNvbW1hbmQ9Vk8oYU0pLGZuLml0ZW1zU25hcHNob3Q9U3J9ZWxzZSBmbi5hcmdzPVtdLGZuLmNvbW1hbmQ9Vk8oSGYpO0Muc3RhdGUuc2V0VmFsdWVBdElu''@;'; put 'put ''ZGV4KHVlLGZuKX07SSh5LmVkaXRlZENvbmRpdGlvblN0YWNrLmNvbHVtbix5LmVkaXRlZENvbmRpdGlvblN0YWNrLmNvbmRpdGlvbnMseS5jb25kaXRpb25BcmdzQ2hhbmdlLHkuZmlsdGVyZWRSb3dzRmFjdG9yeSkseS5kZXBlbmRlbnRDb25kaXRpb25TdGFja3MubGVuZ3RoJiZJKHkuZGVw''@;'; put 'put ''ZW5kZW50Q29uZGl0aW9uU3RhY2tzWzBdLmNvbHVtbix5LmRlcGVuZGVudENvbmRpdGlvblN0YWNrc1swXS5jb25kaXRpb25zLHkuY29uZGl0aW9uQXJnc0NoYW5nZSx5LmZpbHRlcmVkUm93c0ZhY3RvcnkseS5lZGl0ZWRDb25kaXRpb25TdGFjayl9fSx7a2V5OiJnZXRNdWx0aXBsZVNlbGVj''@;'; put 'put ''dEVsZW1lbnQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudHMuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiB5IGluc3RhbmNlb2YgeVRlfSlbMF19fSx7a2V5OiJnZXRNZW51SXRlbURlc2NyaXB0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57a2V5''@;'; put 'put ''OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21tYW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXNIaWRkZW4oKX0scmVuZGVyZXI6ZnVuY3Rpb24oSSxaLHVlLF9lLEJlLE5lKXtPMChaLnBhcmVudE5vZGUsImh0RmlsdGVyc01lbnVWYWx1''@;'; put 'put ''ZSIpO3ZhciBLZT15LmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cmV0dXJuIE8wKEtlLCJodEZpbHRlcnNNZW51TGFiZWwiKSxLZS50ZXh0Q29udGVudD1OZSxaLmFwcGVuZENoaWxkKEtlKSxaLnBhcmVudE5vZGUuaGFzQXR0cmlidXRlKCJnaG9zdC10YWJsZSIpfHxV''@;'; put 'put ''cih5LmVsZW1lbnRzLGZ1bmN0aW9uKHB0KXtyZXR1cm4gWi5hcHBlbmRDaGlsZChwdC5lbGVtZW50KX0pLFp9fX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UobnRlKSxDPW01ZSh0aGlzLl9nZXRDb2x1bW5WaXNpYmxl''@;'; put 'put ''VmFsdWVzKCkpLEk9aFRlKEMsQyx5KTt0aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLnNldEl0ZW1zKEkpLGhuZShRTyhoLnByb3RvdHlwZSksInJlc2V0Iix0aGlzKS5jYWxsKHRoaXMpLHRoaXMuZ2V0TXVsdGlwbGVTZWxlY3RFbGVtZW50KCkuc2V0VmFsdWUoQyk7dmFyIFo9dGhp''@;'; put 'put ''cy5ob3QuZ2V0UGx1Z2luKCJmaWx0ZXJzIikuZ2V0U2VsZWN0ZWRDb2x1bW4oKS52aXN1YWxJbmRleDt0aGlzLmdldE11bHRpcGxlU2VsZWN0RWxlbWVudCgpLnNldExvY2FsZSh0aGlzLmhvdC5nZXRDZWxsTWV0YSgwLFopLmxvY2FsZSl9fSx7a2V5OiJvbklucHV0S2V5RG93biIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oeSl7ZE8oeS5rZXlDb2RlLCJFU0NBUEUiKSYmKHRoaXMucnVuTG9jYWxIb29rcygiY2FuY2VsIiksXzgoeSkpfX0se2tleToiX2dldENvbHVtblZpc2libGVWYWx1ZXMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0UGx1Z2luKCJmaWx0ZXJzIikuZ2V0U2Vs''@;'; put 'put ''ZWN0ZWRDb2x1bW4oKTtyZXR1cm4gT2wodGhpcy5ob3QuZ2V0RGF0YUF0Q29sKHkmJnkudmlzdWFsSW5kZXgpLGZ1bmN0aW9uKEkpe3JldHVybiBmVGUoSSl9KX19XSksaH0ocXRlKTtjb25zdCBjY3Q9dWN0O2Z1bmN0aW9uIFM1ZShkKXtyZXR1cm4oUzVlPSJmdW5jdGlvbiI9PXR5cGVvZiBT''@;'; put 'put ''eW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJz''@;'; put 'put ''eW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24ga1RlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVm''@;'; put 'put ''aW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gTTVlKGQsZyl7cmV0dXJuKE01ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGdjdChkLGcp''@;'; put 'put ''e2lmKGcmJigib2JqZWN0Ij09PVM1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rp''@;'; put 'put ''b24gbWN0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gZG5lKGQpe3JldHVybihkbmU9T2JqZWN0LnNldFByb3Rv''@;'; put 'put ''dHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgQWN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBkY3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVs''@;'; put 'put ''bCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFi''@;'; put 'put ''bGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmTTVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gcGN0KGQpe3ZhciBnPWZ1bmN0aW9uIHZjdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29u''@;'; put 'put ''c3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEw''@;'; put 'put ''fWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWRuZShkKTtpZihnKXt2YXIgQz1kbmUodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGdj''@;'; put 'put ''dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2LHkpe3ZhciBDO3JldHVybiBmdW5jdGlvbiBmY3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoQz1nLmNhbGwodGhpcyx2''@;'; put 'put ''LHtpZDp5LmlkLHN0YXRlbGVzczohMH0pKS5uYW1lPXkubmFtZSxDLmVsZW1lbnRzLnB1c2gobmV3IFpPKEMuaG90LHt0eXBlOiJidXR0b24iLHZhbHVlOkJwZSxjbGFzc05hbWU6Imh0VUlCdXR0b24gaHRVSUJ1dHRvbk9LIixpZGVudGlmaWVyOmguQlVUVE9OX09LfSkpLEMuZWxlbWVudHMu''@;'; put 'put ''cHVzaChuZXcgWk8oQy5ob3Qse3R5cGU6ImJ1dHRvbiIsdmFsdWU6UHBlLGNsYXNzTmFtZToiaHRVSUJ1dHRvbiBodFVJQnV0dG9uQ2FuY2VsIixpZGVudGlmaWVyOmguQlVUVE9OX0NBTkNFTH0pKSxDLnJlZ2lzdGVySG9va3MoKSxDfXJldHVybiBmdW5jdGlvbiBoY3QoZCxnLGgpe2cmJmtU''@;'; put 'put ''ZShkLnByb3RvdHlwZSxnKSxoJiZrVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToicmVnaXN0ZXJIb29rcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO1VyKHRoaXMuZWxlbWVudHMsZnVuY3Rpb24oQyl7Qy5h''@;'; put 'put ''ZGRMb2NhbEhvb2soImNsaWNrIixmdW5jdGlvbihJLFope3JldHVybiB5Lm9uQnV0dG9uQ2xpY2soSSxaKX0pfSl9fSx7a2V5OiJnZXRNZW51SXRlbURlc2NyaXB0b3IiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm57a2V5OnRoaXMuaWQsbmFtZTp0aGlzLm5hbWUsaXNDb21t''@;'; put 'put ''YW5kOiExLGRpc2FibGVTZWxlY3Rpb246ITAsaGlkZGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHkuaXNIaWRkZW4oKX0scmVuZGVyZXI6ZnVuY3Rpb24oSSxaKXtyZXR1cm4gTzAoWi5wYXJlbnROb2RlLCJodEZpbHRlcnNNZW51QWN0aW9uQmFyIiksWi5wYXJlbnROb2RlLmhhc0F0dHJpYnV0ZSgi''@;'; put 'put ''Z2hvc3QtdGFibGUiKXx8VXIoeS5lbGVtZW50cyxmdW5jdGlvbih1ZSl7cmV0dXJuIFouYXBwZW5kQ2hpbGQodWUuZWxlbWVudCl9KSxafX19fSx7a2V5OiJhY2NlcHQiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ydW5Mb2NhbEhvb2tzKCJhY2NlcHQiKX19LHtrZXk6ImNhbmNlbCIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oKXt0aGlzLnJ1bkxvY2FsSG9va3MoImNhbmNlbCIpfX0se2tleToib25CdXR0b25DbGljayIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtDLm9wdGlvbnMuaWRlbnRpZmllcj09PWguQlVUVE9OX09LP3RoaXMuYWNjZXB0KCk6dGhpcy5jYW5jZWwoKX19XSxbe2tleToiQlVUVE9OX09L''@;'; put 'put ''IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ib2sifX0se2tleToiQlVUVE9OX0NBTkNFTCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuImNhbmNlbCJ9fV0pLGh9KHF0ZSk7Y29uc3QgeWN0PUFjdDt2YXIgU1RlLE1UZTtmdW5jdGlvbiBFVGUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gQ2N0KGQpe2lmKEFy''@;'; put 'put ''cmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBfY3QoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7''@;'; put 'put ''dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhy''@;'; put 'put ''b3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBiY3QoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHhUZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0''@;'; put 'put ''b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4geFRlKGQsZyl9fShkLGcpfHxm''@;'; put 'put ''dW5jdGlvbiB3Y3QoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkg''@;'; put 'put ''bWV0aG9kLiIpfSgpfWZ1bmN0aW9uIHhUZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFRUZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxP''@;'; put 'put ''YmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9ZnVuY3Rpb24ga2N0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9u''@;'; put 'put ''Iil9ZnVuY3Rpb24gSVRlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2Lmtl''@;'; put 'put ''eSx2KX19dmFyIERUZT0iQ29uZGl0aW9uQ29sbGVjdGlvbi5maWx0ZXJpbmdTdGF0ZXMiLExUZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7dmFyIGg9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTtrY3QodGhpcyxkKSx0aGlzLmhv''@;'; put 'put ''dD1nLHRoaXMuaXNNYXBSZWdpc3RyYWJsZT1oLHRoaXMuZmlsdGVyaW5nU3RhdGVzPW5ldyBZZWUsITA9PT10aGlzLmlzTWFwUmVnaXN0cmFibGU/dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAoRFRlLHRoaXMuZmlsdGVyaW5nU3RhdGVzKTp0aGlzLmZpbHRlcmluZ1N0''@;'; put 'put ''YXRlcy5pbml0KHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE51bWJlck9mSW5kZXhlcygpKX1yZXR1cm4gZnVuY3Rpb24gU2N0KGQsZyxoKXtnJiZJVGUoZC5wcm90b3R5cGUsZyksaCYmSVRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxl''@;'; put 'put ''OiExfSl9KGQsW3trZXk6ImlzRW1wdHkiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmdldEZpbHRlcmVkQ29sdW1ucygpLmxlbmd0aH19LHtrZXk6ImlzTWF0Y2giLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHksQz10aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRWYWx1ZUF0SW5k''@;'; put 'put ''ZXgodiksST1udWxsIT09KHk9bnVsbD09Qz92b2lkIDA6Qy5jb25kaXRpb25zKSYmdm9pZCAwIT09eT95OltdO3JldHVybiB0aGlzLmlzTWF0Y2hJbkNvbmRpdGlvbnMoSSxoLG51bGw9PUM/dm9pZCAwOkMub3BlcmF0aW9uKX19LHtrZXk6ImlzTWF0Y2hJbkNvbmRpdGlvbnMiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKGgsdil7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOlp3O3JldHVybiFoLmxlbmd0aHx8WTF0KHkpKGgsdil9fSx7a2V5OiJhZGRDb25kaXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9YXJndW1lbnRzLmxl''@;'; put 'put ''bmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOlp3LEM9YXJndW1lbnRzLmxlbmd0aD4zP2FyZ3VtZW50c1szXTp2b2lkIDAsST10aGlzLmhvdC5nZXRDZWxsTWV0YSgwLGgpLmxvY2FsZSxaPU9sKHYuYXJncyxmdW5jdGlvbihOZSl7cmV0dXJuInN0cmluZyI9PXR5''@;'; put 'put ''cGVvZiBOZT9OZS50b0xvY2FsZUxvd2VyQ2FzZShJKTpOZX0pLHVlPXYubmFtZXx8di5jb21tYW5kLmtleTt0aGlzLnJ1bkxvY2FsSG9va3MoImJlZm9yZUFkZCIsaCk7dmFyIF9lPXRoaXMuZ2V0T3BlcmF0aW9uKGgpO2lmKF9lKXtpZihfZSE9PXkpdGhyb3cgRXJyb3IoUDIoU1RlfHwoU1Rl''@;'; put 'put ''PVRUZShbIlRoZSBjb2x1bW4gb2YgaW5kZXggIiwiIGhhcyBiZWVuIGFscmVhZHkgYXBwbGllZCB3aXRoIGEgYCIsImAgXG4gICAgICAgIGZpbHRlciBvcGVyYXRpb24uIFVzZSBgcmVtb3ZlQ29uZGl0aW9uc2AgdG8gY2xlYXIgdGhlIGN1cnJlbnQgY29uZGl0aW9ucyBhbmQgdGhlbiBhZGQg''@;'; put 'put ''bmV3IG9uZXMuIFxuICAgICAgICBNaW5kIHRoYXQgeW91IGNhbm5vdCBtaXggZGlmZmVyZW50IHR5cGVzIG9mIG9wZXJhdGlvbnMgKGZvciBpbnN0YW5jZSwgaWYgeW91IHVzZSBgY29uanVuY3Rpb25gLCBcbiAgICAgICAgdXNlIGl0IGNvbnNlcXVlbnRseSBmb3IgYSBwYXJ0aWN1bGFyIGNv''@;'; put 'put ''bHVtbikuIl0sWyJUaGUgY29sdW1uIG9mIGluZGV4ICIsIiBoYXMgYmVlbiBhbHJlYWR5IGFwcGxpZWQgd2l0aCBhIFxcYCIsIlxcYFxceDIwXG4gICAgICAgIGZpbHRlciBvcGVyYXRpb24uIFVzZSBcXGByZW1vdmVDb25kaXRpb25zXFxgIHRvIGNsZWFyIHRoZSBjdXJyZW50IGNvbmRpdGlv''@;'; put 'put ''bnMgYW5kIHRoZW4gYWRkIG5ldyBvbmVzLlxceDIwXG4gICAgICAgIE1pbmQgdGhhdCB5b3UgY2Fubm90IG1peCBkaWZmZXJlbnQgdHlwZXMgb2Ygb3BlcmF0aW9ucyAoZm9yIGluc3RhbmNlLCBpZiB5b3UgdXNlIFxcYGNvbmp1bmN0aW9uXFxgLFxceDIwXG4gICAgICAgIHVzZSBpdCBjb25z''@;'; put 'put ''ZXF1ZW50bHkgZm9yIGEgcGFydGljdWxhciBjb2x1bW4pLiJdKSksaCxfZSkpfWVsc2UgaWYoYTEoeHpbeV0pKXRocm93IG5ldyBFcnJvcihQMihNVGV8fChNVGU9VFRlKFsiVW5leHBlY3RlZCBvcGVyYXRpb24gbmFtZWQgYCIsImAuIFBvc3NpYmxlIG9uZXMgYXJlIFxuICAgICAgICBgZGlz''@;'; put 'put ''anVuY3Rpb25gIGFuZCBgY29uanVuY3Rpb25gLiJdLFsiVW5leHBlY3RlZCBvcGVyYXRpb24gbmFtZWQgXFxgIiwiXFxgLiBQb3NzaWJsZSBvbmVzIGFyZVxceDIwXG4gICAgICAgIFxcYGRpc2p1bmN0aW9uXFxgIGFuZCBcXGBjb25qdW5jdGlvblxcYC4iXSkpLHkpKTt2YXIgQmU9dGhpcy5n''@;'; put 'put ''ZXRDb25kaXRpb25zKGgpOzA9PT1CZS5sZW5ndGg/dGhpcy5maWx0ZXJpbmdTdGF0ZXMuc2V0VmFsdWVBdEluZGV4KGgse29wZXJhdGlvbjp5LGNvbmRpdGlvbnM6W3tuYW1lOnVlLGFyZ3M6WixmdW5jOk53KHVlLFopfV19LEMpOkJlLnB1c2goe25hbWU6dWUsYXJnczpaLGZ1bmM6TncodWUs''@;'; put 'put ''Wil9KSx0aGlzLnJ1bkxvY2FsSG9va3MoImFmdGVyQWRkIixoKX19LHtrZXk6ImdldENvbmRpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2LHk7cmV0dXJuIG51bGwhPT0odj1udWxsPT09KHk9dGhpcy5maWx0ZXJpbmdTdGF0ZXMuZ2V0VmFsdWVBdEluZGV4KGgpKXx8dm9pZCAwPT09''@;'; put 'put ''eT92b2lkIDA6eS5jb25kaXRpb25zKSYmdm9pZCAwIT09dj92OltdfX0se2tleToiZ2V0T3BlcmF0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gbnVsbD09PSh2PXRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldFZhbHVlQXRJbmRleChoKSl8fHZvaWQgMD09PXY/dm9pZCAwOnYu''@;'; put 'put ''b3BlcmF0aW9ufX0se2tleToiZ2V0RmlsdGVyZWRDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZpbHRlcmluZ1N0YXRlcy5nZXRFbnRyaWVzKCkubWFwKGZ1bmN0aW9uKGgpe3JldHVybiBFVGUoaCwxKVswXX0pfX0se2tleToiZ2V0Q29sdW1uU3RhY2tQb3NpdGlvbiIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuZ2V0RmlsdGVyZWRDb2x1bW5zKCkuaW5kZXhPZihoKX19LHtrZXk6ImV4cG9ydEFsbENvbmRpdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIFN1KHRoaXMuZmlsdGVyaW5nU3RhdGVzLmdldEVudHJpZXMoKSxmdW5jdGlvbihoLHYp''@;'; put 'put ''e3ZhciB5PUVUZSh2LDIpLEk9eVsxXTtyZXR1cm4gaC5wdXNoKHtjb2x1bW46eVswXSxvcGVyYXRpb246SS5vcGVyYXRpb24sY29uZGl0aW9uczpPbChJLmNvbmRpdGlvbnMsZnVuY3Rpb24oX2Upe3JldHVybntuYW1lOl9lLm5hbWUsYXJnczpfZS5hcmdzfX0pfSksaH0sW10pfX0se2tleToi''@;'; put 'put ''aW1wb3J0QWxsQ29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpczt0aGlzLmNsZWFuKCksVXIoaCxmdW5jdGlvbih5KXtVcih5LmNvbmRpdGlvbnMsZnVuY3Rpb24oQyl7cmV0dXJuIHYuYWRkQ29uZGl0aW9uKHkuY29sdW1uLEMpfSl9KX19LHtrZXk6InJlbW92ZUNvbmRp''@;'; put 'put ''dGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgpe3RoaXMucnVuTG9jYWxIb29rcygiYmVmb3JlUmVtb3ZlIixoKSx0aGlzLmZpbHRlcmluZ1N0YXRlcy5jbGVhclZhbHVlKGgpLHRoaXMucnVuTG9jYWxIb29rcygiYWZ0ZXJSZW1vdmUiLGgpfX0se2tleToiY2xlYW4iLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''dGhpcy5ydW5Mb2NhbEhvb2tzKCJiZWZvcmVDbGVhbiIpLHRoaXMuZmlsdGVyaW5nU3RhdGVzLmNsZWFyKCksdGhpcy5ydW5Mb2NhbEhvb2tzKCJhZnRlckNsZWFuIil9fSx7a2V5OiJoYXNDb25kaXRpb25zIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMuZ2V0Q29uZGl0aW9ucyho''@;'; put 'put ''KTtyZXR1cm4gdj95LnNvbWUoZnVuY3Rpb24oQyl7cmV0dXJuIEMubmFtZT09PXZ9KTp5Lmxlbmd0aD4wfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzTWFwUmVnaXN0cmFibGUmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLnVucmVnaXN0ZXJNYXAoRFRlKSx0''@;'; put 'put ''aGlzLmZpbHRlcmluZ1N0YXRlcz1udWxsLHRoaXMuY2xlYXJMb2NhbEhvb2tzKCl9fV0pLGR9KCk7QjIoTFRlLHVkKTtjb25zdCBPVGU9TFRlO2Z1bmN0aW9uIE1jdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMg''@;'; put 'put ''YSBmdW5jdGlvbiIpfWZ1bmN0aW9uIFJUZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KGQsdi5rZXksdil9fXZhciB4Y3Q9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpmdW5jdGlvbigpe3JldHVybltdfTtNY3QodGhpcyxkKSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rp''@;'; put 'put ''b249Zyx0aGlzLmNvbHVtbkRhdGFGYWN0b3J5PWh9cmV0dXJuIGZ1bmN0aW9uIEVjdChkLGcsaCl7ZyYmUlRlKGQucHJvdG90eXBlLGcpLGgmJlJUZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJmaWx0ZXIiLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKCl7dmFyIGg9dGhpcyx2PVtdO3JldHVybiBVcih0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0RmlsdGVyZWRDb2x1bW5zKCksZnVuY3Rpb24oeSxDKXt2YXIgST1oLmNvbHVtbkRhdGFGYWN0b3J5KHkpO0MmJihJPWguX2dldEludGVyc2VjdERhdGEoSSx2KSksdj1oLmZp''@;'; put 'put ''bHRlckJ5Q29sdW1uKHksSSl9KSx2fX0se2tleToiZmlsdGVyQnlDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10sQz1bXTtyZXR1cm4gVXIoeSxmdW5jdGlvbihJKXt2''@;'; put 'put ''b2lkIDAhPT1JJiZ2LmNvbmRpdGlvbkNvbGxlY3Rpb24uaXNNYXRjaChJLGgpJiZDLnB1c2goSSl9KSxDfX0se2tleToiX2dldEludGVyc2VjdERhdGEiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9W107cmV0dXJuIFVyKHYsZnVuY3Rpb24oQyl7dmFyIEk9Qy5tZXRhLnZpc3VhbFJvdzt2''@;'; put 'put ''b2lkIDAhPT1oW0ldJiYoeVtJXT1oW0ldKX0pLHl9fV0pLGR9KCk7Y29uc3QgQlRlPXhjdDtmdW5jdGlvbiBUY3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBQVGUoZCxn''@;'; put 'put ''KXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgRlRlPWZ1bmN0''@;'; put 'put ''aW9uKCl7ZnVuY3Rpb24gZChnLGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06ZnVuY3Rpb24oKXtyZXR1cm5bXX07VGN0KHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb249aCx0aGlz''@;'; put 'put ''LmNvbHVtbkRhdGFGYWN0b3J5PXksdGhpcy5jaGFuZ2VzPVtdLHRoaXMuZ3JvdXBpbmc9ITEsdGhpcy5sYXRlc3RFZGl0ZWRDb2x1bW5Qb3NpdGlvbj0tMSx0aGlzLmxhdGVzdE9yZGVyU3RhY2s9W10sdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZExvY2FsSG9vaygiYmVmb3JlUmVtb3Zl''@;'; put 'put ''IixmdW5jdGlvbihDKXtyZXR1cm4gdi5fb25Db25kaXRpb25CZWZvcmVNb2RpZnkoQyl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlclJlbW92ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudXBkYXRlU3RhdGVzQXRDb2x1bW4oQyl9KSx0aGlzLmNvbmRpdGlv''@;'; put 'put ''bkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJhZnRlckFkZCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudXBkYXRlU3RhdGVzQXRDb2x1bW4oQyl9KSx0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uYWRkTG9jYWxIb29rKCJiZWZvcmVDbGVhbiIsZnVuY3Rpb24oKXtyZXR1cm4gdi5fb25Db25kaXRp''@;'; put 'put ''b25CZWZvcmVDbGVhbigpfSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZExvY2FsSG9vaygiYWZ0ZXJDbGVhbiIsZnVuY3Rpb24oKXtyZXR1cm4gdi5fb25Db25kaXRpb25BZnRlckNsZWFuKCl9KX1yZXR1cm4gZnVuY3Rpb24gSWN0KGQsZyxoKXtnJiZQVGUoZC5wcm90b3R5cGUsZyks''@;'; put 'put ''aCYmUFRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Imdyb3VwQ2hhbmdlcyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmdyb3VwaW5nPSEwfX0se2tleToiZmx1c2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0''@;'; put 'put ''aGlzLmdyb3VwaW5nPSExLFVyKHRoaXMuY2hhbmdlcyxmdW5jdGlvbih2KXtoLnVwZGF0ZVN0YXRlc0F0Q29sdW1uKHYpfSksdGhpcy5jaGFuZ2VzLmxlbmd0aD0wfX0se2tleToiX29uQ29uZGl0aW9uQmVmb3JlTW9kaWZ5Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmxhdGVzdEVkaXRlZENv''@;'; put 'put ''bHVtblBvc2l0aW9uPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRDb2x1bW5TdGFja1Bvc2l0aW9uKGgpfX0se2tleToidXBkYXRlU3RhdGVzQXRDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcztpZih0aGlzLmdyb3VwaW5nKS0xPT09dGhpcy5jaGFuZ2VzLmluZGV4''@;'; put 'put ''T2YoaCkmJnRoaXMuY2hhbmdlcy5wdXNoKGgpO2Vsc2V7dmFyIEM9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmV4cG9ydEFsbENvbmRpdGlvbnMoKSxJPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRDb2x1bW5TdGFja1Bvc2l0aW9uKGgpOy0xPT09SSYmKEk9dGhpcy5sYXRlc3RFZGl0''@;'; put 'put ''ZWRDb2x1bW5Qb3NpdGlvbik7dmFyIFo9Qy5zbGljZSgwLEkpLHVlPUMuc2xpY2UoSSk7dWUubGVuZ3RoJiZ1ZVswXS5jb2x1bW49PT1oJiZ1ZS5zaGlmdCgpO3ZhciBfZT1LYmUoZnVuY3Rpb24oTmUsS2Upe3ZhciBwdD1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1sy''@;'; put 'put ''XT9hcmd1bWVudHNbMl06W10sT3Q9bmV3IE9UZSh5LmhvdCwhMSksJHQ9W10uY29uY2F0KE5lLHB0KTtPdC5pbXBvcnRBbGxDb25kaXRpb25zKCR0KTt2YXIgZm49eS5jb2x1bW5EYXRhRmFjdG9yeShLZSksaXI9VHooT2woT3QuaXNFbXB0eSgpP2ZuOm5ldyBCVGUoT3QsZnVuY3Rpb24obXIp''@;'; put 'put ''e3JldHVybiB5LmNvbHVtbkRhdGFGYWN0b3J5KG1yKX0pLmZpbHRlcigpLGZ1bmN0aW9uKG1yKXtyZXR1cm4gbXIubWV0YS52aXN1YWxSb3d9KSk7cmV0dXJuIE90LmRlc3Ryb3koKSxnNChmbixmdW5jdGlvbihtcil7cmV0dXJuIGlyKG1yLm1ldGEudmlzdWFsUm93KX0pfSkoWiksQmU9W10u''@;'; put 'put ''Y29uY2F0KHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5nZXRDb25kaXRpb25zKGgpKTt0aGlzLnJ1bkxvY2FsSG9va3MoInVwZGF0ZSIse2VkaXRlZENvbmRpdGlvblN0YWNrOntjb2x1bW46aCxjb25kaXRpb25zOkJlfSxkZXBlbmRlbnRDb25kaXRpb25TdGFja3M6dWUsZmlsdGVyZWRSb3dz''@;'; put 'put ''RmFjdG9yeTpfZSxjb25kaXRpb25BcmdzQ2hhbmdlOnZ9KX19fSx7a2V5OiJfb25Db25kaXRpb25CZWZvcmVDbGVhbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmxhdGVzdE9yZGVyU3RhY2s9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldEZpbHRlcmVkQ29sdW1ucygpfX0se2tleToiX29u''@;'; put 'put ''Q29uZGl0aW9uQWZ0ZXJDbGVhbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzO1VyKHRoaXMubGF0ZXN0T3JkZXJTdGFjayxmdW5jdGlvbih2KXtoLnVwZGF0ZVN0YXRlc0F0Q29sdW1uKHYpfSl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXM7dGhpcy5j''@;'; put 'put ''bGVhckxvY2FsSG9va3MoKSxHbCh0aGlzLGZ1bmN0aW9uKHYseSl7aFt5XT1udWxsfSl9fV0pLGR9KCk7QjIoRlRlLHVkKTtjb25zdCBEY3Q9RlRlO2Z1bmN0aW9uIEU1ZShkKXtyZXR1cm4oRTVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0''@;'; put 'put ''ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9dmFyIEhUZTtmdW5j''@;'; put 'put ''dGlvbiBOVGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBWVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVu''@;'; put 'put ''dW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBKTygpe3JldHVybiBKTz0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxl''@;'; put 'put ''Y3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9VmN0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxK''@;'; put 'put ''Ty5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gVmN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1HdyhkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiB4NWUoZCxnKXtyZXR1cm4oeDVlPU9iamVjdC5zZXRQcm90b3R5''@;'; put 'put ''cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gemN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09RTVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09''@;'; put 'put ''Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBqVGUoZCl9ZnVuY3Rpb24galRlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBi''@;'; put 'put ''ZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBHdyhkKXtyZXR1cm4oR3c9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxP''@;'; put 'put ''YmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgWWN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBqY3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEg''@;'; put 'put ''ZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmeDVlKGQs''@;'; put 'put ''Zyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gWmN0KGQpe3ZhciBnPWZ1bmN0aW9uIEdjdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSly''@;'; put 'put ''ZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PUd3KGQpO2lmKGcpe3ZhciBDPUd3''@;'; put 'put ''KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB6Y3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIEhjdChkLGcpe2lmKCEoZCBpbnN0''@;'; put 'put ''YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYpKS5ldmVudE1hbmFnZXI9bmV3IEwxKGpUZSh5KSkseS5kcm9wZG93bk1lbnVQbHVnaW49bnVsbCx5LmNvbmRpdGlvbkNvbGxl''@;'; put 'put ''Y3Rpb249bnVsbCx5LmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyPW51bGwseS5jb21wb25lbnRzPW5ldyBNYXAoW1siZmlsdGVyX2J5X2NvbmRpdGlvbiIsbnVsbF0sWyJmaWx0ZXJfb3BlcmF0b3JzIixudWxsXSxbImZpbHRlcl9ieV9jb25kaXRpb24yIixudWxsXSxbImZpbHRlcl9ieV92YWx1''@;'; put 'put ''ZSIsbnVsbF0sWyJmaWx0ZXJfYWN0aW9uX2JhciIsbnVsbF1dKSx5Lmxhc3RTZWxlY3RlZENvbHVtbj1udWxsLHkuZmlsdGVyc1Jvd3NNYXA9bnVsbCx5LmhvdC5hZGRIb29rKCJhZnRlckdldENvbEhlYWRlciIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sSGVhZGVyKEMs''@;'; put 'put ''SSl9KSx5fXJldHVybiBmdW5jdGlvbiBOY3QoZCxnLGgpe2cmJlZUZShkLnByb3RvdHlwZSxnKSxoJiZWVGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEh''@;'; put 'put ''dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maWx0ZXJzfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dGhpcy5maWx0ZXJzUm93c01hcD10aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdp''@;'; put 'put ''bk5hbWUsbmV3IG56KSx0aGlzLmRyb3Bkb3duTWVudVBsdWdpbj10aGlzLmhvdC5nZXRQbHVnaW4oImRyb3Bkb3duTWVudSIpO3ZhciBDPXRoaXMuaG90LmdldFNldHRpbmdzKCkuZHJvcGRvd25NZW51LEk9QyYmQy51aUNvbnRhaW5lcnx8dGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHksWj1m''@;'; put 'put ''dW5jdGlvbihwdCl7cmV0dXJuIHB0LmFkZExvY2FsSG9vaygiYWNjZXB0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWN0aW9uQmFyU3VibWl0KCJhY2NlcHQiKX0pLHB0LmFkZExvY2FsSG9vaygiY2FuY2VsIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWN0aW9uQmFyU3VibWl0KCJjYW5jZWwi''@;'; put 'put ''KX0pLHB0LmFkZExvY2FsSG9vaygiY2hhbmdlIixmdW5jdGlvbihPdCl7cmV0dXJuIHkub25Db21wb25lbnRDaGFuZ2UocHQsT3QpfSkscHR9O2lmKCF0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikpe3ZhciBCZT1uZXcgczVlKHRoaXMuaG90LHtpZDoiZmlsdGVy''@;'; put 'put ''X2J5X2NvbmRpdGlvbiIsbmFtZTpmdW5jdGlvbigpe3JldHVybiIiLmNvbmNhdCh5LmhvdC5nZXRUcmFuc2xhdGVkUGhyYXNlKElwZSksIjoiKX0sYWRkU2VwYXJhdG9yOiExLG1lbnVDb250YWluZXI6SX0pO0JlLmFkZExvY2FsSG9vaygiYWZ0ZXJDbG9zZSIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''eS5vblNlbGVjdFVJQ2xvc2VkKCl9KSx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIixaKEJlKSl9aWYodGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX29wZXJhdG9ycyIpfHx0aGlzLmNvbXBvbmVudHMuc2V0KCJmaWx0ZXJfb3BlcmF0b3JzIixuZXcgdnV0KHRo''@;'; put 'put ''aXMuaG90LHtpZDoiZmlsdGVyX29wZXJhdG9ycyIsbmFtZToiT3BlcmF0b3JzIn0pKSwhdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbjIiKSl7dmFyIE5lPW5ldyBzNWUodGhpcy5ob3Qse2lkOiJmaWx0ZXJfYnlfY29uZGl0aW9uMiIsbmFtZToiIixhZGRTZXBhcmF0''@;'; put 'put ''b3I6ITAsbWVudUNvbnRhaW5lcjpJfSk7TmUuYWRkTG9jYWxIb29rKCJhZnRlckNsb3NlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uU2VsZWN0VUlDbG9zZWQoKX0pLHRoaXMuY29tcG9uZW50cy5zZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIixaKE5lKSl9dGhpcy5jb21wb25lbnRzLmdldCgi''@;'; put 'put ''ZmlsdGVyX2J5X3ZhbHVlIil8fHRoaXMuY29tcG9uZW50cy5zZXQoImZpbHRlcl9ieV92YWx1ZSIsWihuZXcgY2N0KHRoaXMuaG90LHtpZDoiZmlsdGVyX2J5X3ZhbHVlIixuYW1lOmZ1bmN0aW9uKCl7cmV0dXJuIiIuY29uY2F0KHkuaG90LmdldFRyYW5zbGF0ZWRQaHJhc2UoRHBlKSwiOiIp''@;'; put 'put ''fX0pKSksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2FjdGlvbl9iYXIiKXx8dGhpcy5jb21wb25lbnRzLnNldCgiZmlsdGVyX2FjdGlvbl9iYXIiLFoobmV3IHljdCh0aGlzLmhvdCx7aWQ6ImZpbHRlcl9hY3Rpb25fYmFyIixuYW1lOiJBY3Rpb24gYmFyIn0pKSksdGhpcy5jb25kaXRp''@;'; put 'put ''b25Db2xsZWN0aW9ufHwodGhpcy5jb25kaXRpb25Db2xsZWN0aW9uPW5ldyBPVGUodGhpcy5ob3QpKSx0aGlzLmNvbmRpdGlvblVwZGF0ZU9ic2VydmVyfHwodGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlcj1uZXcgRGN0KHRoaXMuaG90LHRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbixmdW5j''@;'; put 'put ''dGlvbihLZSl7cmV0dXJuIHkuZ2V0RGF0YU1hcEF0Q29sdW1uKEtlKX0pLHRoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIuYWRkTG9jYWxIb29rKCJ1cGRhdGUiLGZ1bmN0aW9uKEtlKXtyZXR1cm4geS51cGRhdGVDb21wb25lbnRzKEtlKX0pKSx0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChm''@;'; put 'put ''dW5jdGlvbihLZSl7cmV0dXJuIEtlLnNob3coKX0pLHRoaXMucmVnaXN0ZXJFdmVudHMoKSx0aGlzLmFkZEhvb2soImJlZm9yZURyb3Bkb3duTWVudVNldEl0ZW1zIixmdW5jdGlvbihLZSl7cmV0dXJuIHkub25CZWZvcmVEcm9wZG93bk1lbnVTZXRJdGVtcyhLZSl9KSx0aGlzLmFkZEhvb2so''@;'; put 'put ''ImFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKEtlKXtyZXR1cm4geS5vbkFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMoS2UpfSksdGhpcy5hZGRIb29rKCJhZnRlckRyb3Bkb3duTWVudVNob3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckRyb3Bk''@;'; put 'put ''b3duTWVudVNob3coKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJEcm9wZG93bk1lbnVIaWRlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJEcm9wZG93bk1lbnVIaWRlKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ2hhbmdlIixmdW5jdGlvbihLZSl7cmV0dXJuIHkub25BZnRlckNoYW5nZShL''@;'; put 'put ''ZSl9KSx0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmRyb3Bkb3duTWVudSYmdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4mJih0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5kaXNhYmxlUGx1Z2luKCksdGhpcy5kcm9wZG93bk1lbnVQbHVnaW4uZW5hYmxlUGx1Z2luKCkpLEpPKEd3KGgucHJvdG90eXBl''@;'; put 'put ''KSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvdC5yb290RWxlbWVudCwiY2xpY2siLGZ1bmN0aW9uKEMpe3Jl''@;'; put 'put ''dHVybiB5Lm9uVGFibGVDbGljayhDKX0pfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgQyx5PXRoaXM7dGhpcy5lbmFibGVkJiYobnVsbCE9PShDPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKSYmdm9pZCAwIT09QyYmQy5lbmFibGVkJiZ0aGlzLmRyb3Bkb3du''@;'; put 'put ''TWVudVBsdWdpbi5tZW51LmNsZWFyTG9jYWxIb29rcygpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKGZ1bmN0aW9uKEksWil7SS5kZXN0cm95KCkseS5jb21wb25lbnRzLnNldChaLG51bGwpfSksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmRlc3Ryb3koKSx0aGlzLmNvbmRpdGlvbkNvbGxl''@;'; put 'put ''Y3Rpb249bnVsbCx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSkpLEpPKEd3KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImFkZENvbmRpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3Zh''@;'; put 'put ''ciBaPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTpadyx1ZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpO3RoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRpb24odWUse2NvbW1hbmQ6e2tleTpDfSxhcmdzOkl9LFopfX0s''@;'; put 'put ''e2tleToicmVtb3ZlQ29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5KTt0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24ucmVtb3ZlQ29uZGl0aW9ucyhDKX19LHtrZXk6ImNsZWFyQ29uZGl0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oeSl7''@;'; put 'put ''aWYodm9pZCAwPT09eSl0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uY2xlYW4oKTtlbHNle3ZhciBDPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSk7dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLnJlbW92ZUNvbmRpdGlvbnMoQyl9fX0se2tleToiZmlsdGVyIix2YWx1ZTpmdW5jdGlvbigp''@;'; put 'put ''e3ZhciB5PXRoaXMsQz10aGlzLl9jcmVhdGVEYXRhRmlsdGVyKCksST0hdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmlzRW1wdHkoKSxaPVtdLHVlPXRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5leHBvcnRBbGxDb25kaXRpb25zKCk7aWYoITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3Jl''@;'; put 'put ''RmlsdGVyIix1ZSkpaWYoSSl7dmFyIEJlPVtdO3RoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7eS5maWx0ZXJzUm93c01hcC5jbGVhcigpO3ZhciBOZT1UeihaPU9sKEMuZmlsdGVyKCksZnVuY3Rpb24oS2Upe3JldHVybiBLZS5tZXRhLnZpc3VhbFJvd30pKTtpYSh5LmhvdC5j''@;'; put 'put ''b3VudFNvdXJjZVJvd3MoKS0xLGZ1bmN0aW9uKEtlKXtOZShLZSl8fEJlLnB1c2goS2UpfSksVXIoQmUsZnVuY3Rpb24oS2Upe3kuZmlsdGVyc1Jvd3NNYXAuc2V0VmFsdWVBdEluZGV4KEtlLCEwKX0pfSwhMCksWi5sZW5ndGh8fHRoaXMuaG90LmRlc2VsZWN0Q2VsbCgpfWVsc2UgdGhpcy5m''@;'; put 'put ''aWx0ZXJzUm93c01hcC5jbGVhcigpO3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckZpbHRlciIsdWUpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmNsZWFyQ29sdW1uU2VsZWN0aW9uKCl9fSx7a2V5OiJnZXRTZWxlY3RlZENvbHVt''@;'; put 'put ''biIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sYXN0U2VsZWN0ZWRDb2x1bW59fSx7a2V5OiJjbGVhckNvbHVtblNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeSxDPW51bGw9PT0oeT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpKXx8dm9pZCAwPT09eT92b2lk''@;'; put 'put ''IDA6eS5nZXRUb3BTdGFydENvcm5lcigpO3ZvaWQgMCE9PUMmJnRoaXMuaG90LnNlbGVjdENlbGwoQy5yb3csQy5jb2wpfX0se2tleToiZ2V0RGF0YU1hcEF0Q29sdW1uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5ob3QudG9WaXN1YWxDb2x1bW4oeSksWj1bXTtyZXR1''@;'; put 'put ''cm4gVXIodGhpcy5ob3QuZ2V0U291cmNlRGF0YUF0Q29sKEkpLGZ1bmN0aW9uKHVlLF9lKXt2YXIgQmUsTmU9Qy5ob3QuZ2V0Q2VsbE1ldGEoX2UsSSksS2U9TmUucm93LHB0PU5lLmNvbCxPdD1OZS52aXN1YWxDb2wsJHQ9TmUudmlzdWFsUm93LGZuPU5lLnR5cGUsTG49TmUuaW5zdGFuY2Us''@;'; put 'put ''aXI9TmUuZGF0ZUZvcm1hdCxtcj1OZS5sb2NhbGUsU3I9bnVsbCE9PShCZT1DLmhvdC5nZXREYXRhQXRDZWxsKEMuaG90LnRvVmlzdWFsUm93KF9lKSxJKSkmJnZvaWQgMCE9PUJlP0JlOnVlO1oucHVzaCh7bWV0YTp7cm93OktlLGNvbDpwdCx2aXN1YWxDb2w6T3QsdmlzdWFsUm93OiR0LHR5''@;'; put 'put ''cGU6Zm4saW5zdGFuY2U6TG4sZGF0ZUZvcm1hdDppcixsb2NhbGU6bXJ9LHZhbHVlOmZUZShTcil9KX0pLFp9fSx7a2V5OiJvbkFmdGVyQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3kmJlVyKHksZnVuY3Rpb24oSSl7dmFyIFo9ZnVuY3Rpb24gT2N0KGQsZyl7cmV0dXJu''@;'; put 'put ''IGZ1bmN0aW9uIEZjdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gUGN0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2''@;'; put 'put ''YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0''@;'; put 'put ''dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gQmN0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBOVGUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9i''@;'; put 'put ''amVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0''@;'; put 'put ''dXJuIE5UZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gUmN0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUg''@;'; put 'put ''YSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oSSwyKSxfZT1DLmhvdC5wcm9wVG9Db2woWlsxXSk7Qy5jb25kaXRpb25Db2xsZWN0aW9uLmhhc0NvbmRpdGlvbnMoX2UpJiZDLnVwZGF0ZVZhbHVlQ29tcG9uZW50Q29uZGl0aW9uKF9lKX0pfX0se2tleToidXBkYXRlVmFsdWVD''@;'; put 'put ''b21wb25lbnRDb25kaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBJPW01ZSh0aGlzLmhvdC5nZXREYXRhQXRDb2woeSkpO3RoaXMuY29uZGl0aW9uVXBkYXRlT2JzZXJ2ZXIudXBkYXRlU3RhdGVzQXRDb2x1bW4oeSxJKX19LHtrZXk6InJlc3RvcmVDb21wb25lbnRzIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbih5KXt2YXIgQyxJPW51bGw9PT0oQz10aGlzLmdldFNlbGVjdGVkQ29sdW1uKCkpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnBoeXNpY2FsSW5kZXg7eS5mb3JFYWNoKGZ1bmN0aW9uKFope1ouaXNIaWRkZW4oKXx8Wi5yZXN0b3JlU3RhdGUoSSl9KSx0aGlzLnVwZGF0ZURlcGVuZGVudENv''@;'; put 'put ''bXBvbmVudHNWaXNpYmlsaXR5KCl9fSx7a2V5OiJvbkFmdGVyRHJvcGRvd25NZW51U2hvdyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnJlc3RvcmVDb21wb25lbnRzKEFycmF5LmZyb20odGhpcy5jb21wb25lbnRzLnZhbHVlcygpKSl9fSx7a2V5OiJvbkFmdGVyRHJvcGRvd25NZW51SGlkZSIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3NlT3B0aW9ucygpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikuZ2V0U2VsZWN0RWxlbWVudCgpLmNsb3NlT3B0''@;'; put 'put ''aW9ucygpfX0se2tleToib25CZWZvcmVEcm9wZG93bk1lbnVTZXRJdGVtcyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZHJvcGRvd25NZW51UGx1Z2luJiZ0aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5tZW51LmFkZExvY2FsSG9vaygiYWZ0ZXJPcGVuIixmdW5jdGlvbigpe3ku''@;'; put 'put ''ZHJvcGRvd25NZW51UGx1Z2luLm1lbnUuaG90TWVudS51cGRhdGVTZXR0aW5ncyh7aGlkZGVuUm93czohMH0pfSl9fSx7a2V5OiJvbkFmdGVyRHJvcGRvd25NZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZTpXbH0pLHRoaXMuY29tcG9uZW50''@;'; put 'put ''cy5mb3JFYWNoKGZ1bmN0aW9uKEMpe3kuaXRlbXMucHVzaChDLmdldE1lbnVJdGVtRGVzY3JpcHRvcigpKX0pfX0se2tleToiZ2V0T3BlcmF0aW9uQmFzZWRPbkFyZ3VtZW50cyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7dmFyIHVlPXk7cmV0dXJuIHVlPT09bG5lJiZDLmNvbW1hbmQua2V5''@;'; put 'put ''IT09SGYmJkkuY29tbWFuZC5rZXkhPT1IZiYmWi5jb21tYW5kLmtleSE9PUhmP3VlPWM1ZTpaLmNvbW1hbmQua2V5IT09SGYmJihDLmNvbW1hbmQua2V5PT09SGZ8fEkuY29tbWFuZC5rZXk9PT1IZikmJih1ZT1adyksdWV9fSx7a2V5OiJvbkFjdGlvbkJhclN1Ym1pdCIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oeSl7aWYoImFjY2VwdCI9PT15KXt2YXIgQyxJPW51bGw9PT0oQz10aGlzLmdldFNlbGVjdGVkQ29sdW1uKCkpfHx2b2lkIDA9PT1DP3ZvaWQgMDpDLnBoeXNpY2FsSW5kZXgsWj10aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikuZ2V0U3RhdGUoKSx1ZT10aGlz''@;'; put 'put ''LmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uMiIpLmdldFN0YXRlKCksX2U9dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X3ZhbHVlIikuZ2V0U3RhdGUoKSxCZT10aGlzLmdldE9wZXJhdGlvbkJhc2VkT25Bcmd1bWVudHModGhpcy5jb21wb25lbnRzLmdldCgiZmls''@;'; put 'put ''dGVyX29wZXJhdG9ycyIpLmdldEFjdGl2ZU9wZXJhdGlvbklkKCksWix1ZSxfZSk7dGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci5ncm91cENoYW5nZXMoKTt2YXIgTmU9dGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmdldENvbHVtblN0YWNrUG9zaXRpb24oSSk7LTE9PT1OZSYmKE5lPXZv''@;'; put 'put ''aWQgMCksdGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLnJlbW92ZUNvbmRpdGlvbnMoSSksWi5jb21tYW5kLmtleSE9PUhmJiYodGhpcy5jb25kaXRpb25Db2xsZWN0aW9uLmFkZENvbmRpdGlvbihJLFosQmUsTmUpLHVlLmNvbW1hbmQua2V5IT09SGYmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlv''@;'; put 'put ''bi5hZGRDb25kaXRpb24oSSx1ZSxCZSxOZSkpLF9lLmNvbW1hbmQua2V5IT09SGYmJnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbi5hZGRDb25kaXRpb24oSSxfZSxCZSxOZSksdGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci5mbHVzaCgpLHRoaXMuY29tcG9uZW50cy5mb3JFYWNoKGZ1bmN0''@;'; put 'put ''aW9uKEtlKXtyZXR1cm4gS2Uuc2F2ZVN0YXRlKEkpfSksdGhpcy5maWx0ZXJzUm93c01hcC5jbGVhcigpLHRoaXMuZmlsdGVyKCl9dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4mJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLmNsb3NlKCl9fSx7a2V5OiJvbkNvbXBvbmVudENoYW5nZSIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oeSxDKXt0aGlzLnVwZGF0ZURlcGVuZGVudENvbXBvbmVudHNWaXNpYmlsaXR5KCkseS5jb25zdHJ1Y3Rvcj09PXM1ZSYmIUMuaW5wdXRzQ291bnQmJnRoaXMuc2V0TGlzdGVuaW5nRHJvcGRvd25NZW51KCl9fSx7a2V5OiJvblNlbGVjdFVJQ2xvc2VkIix2YWx1ZTpmdW5jdGlv''@;'; put 'put ''bigpe3RoaXMuc2V0TGlzdGVuaW5nRHJvcGRvd25NZW51KCl9fSx7a2V5OiJzZXRMaXN0ZW5pbmdEcm9wZG93bk1lbnUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kcm9wZG93bk1lbnVQbHVnaW4mJnRoaXMuZHJvcGRvd25NZW51UGx1Z2luLnNldExpc3RlbmluZygpfX0se2tleToidXBkYXRl''@;'; put 'put ''RGVwZW5kZW50Q29tcG9uZW50c1Zpc2liaWxpdHkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIEk9dGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X2NvbmRpdGlvbiIpLmdldFN0YXRlKCkuY29tbWFuZCxaPVt0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uMiIpLHRo''@;'; put 'put ''aXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9vcGVyYXRvcnMiKV07SS5zaG93T3BlcmF0b3JzP3RoaXMuc2hvd0NvbXBvbmVudHMuYXBwbHkodGhpcyxaKTp0aGlzLmhpZGVDb21wb25lbnRzLmFwcGx5KHRoaXMsWil9fSx7a2V5OiJvbkFmdGVyR2V0Q29sSGVhZGVyIix2YWx1ZTpmdW5jdGlv''@;'; put 'put ''bih5LEMpe3ZhciBJPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oeSk7dGhpcy5lbmFibGVkJiZ0aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uaGFzQ29uZGl0aW9ucyhJKT9PMChDLCJodEZpbHRlcnNBY3RpdmUiKTpwbChDLCJodEZpbHRlcnNBY3RpdmUiKX19LHtrZXk6Im9uVGFibGVDbGlj''@;'; put 'put ''ayIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9TXYoeS50YXJnZXQsIlRIIik7aWYoQyl7dmFyIEk9dGhpcy5ob3QuZ2V0Q29vcmRzKEMpLmNvbCxaPXRoaXMuaG90LnRvUGh5c2ljYWxDb2x1bW4oSSk7dGhpcy5sYXN0U2VsZWN0ZWRDb2x1bW49e3Zpc3VhbEluZGV4OkkscGh5c2ljYWxJbmRl''@;'; put 'put ''eDpafX19fSx7a2V5OiJfY3JlYXRlRGF0YUZpbHRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnRoaXMuY29uZGl0aW9uQ29sbGVjdGlvbjtyZXR1cm4gbmV3IEJUZShDLGZ1bmN0''@;'; put 'put ''aW9uKEkpe3JldHVybiB5LmdldERhdGFNYXBBdENvbHVtbihJKX0pfX0se2tleToidXBkYXRlQ29tcG9uZW50cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM7aWYobnVsbCE9PShDPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luKSYmdm9pZCAwIT09QyYmQy5lbmFibGVkKXt2YXIgST15LmVkaXRl''@;'; put 'put ''ZENvbmRpdGlvblN0YWNrLFo9SS5jb25kaXRpb25zLHVlPUkuY29sdW1uLF9lPVouZmlsdGVyKGZ1bmN0aW9uKEtlKXtyZXR1cm4gS2UubmFtZT09PWFNfSksQmU9Wi5maWx0ZXIoZnVuY3Rpb24oS2Upe3JldHVybiBLZS5uYW1lIT09YU19KTtpZihfZS5sZW5ndGg+PTJ8fEJlLmxlbmd0aD49''@;'; put 'put ''MylsMShQMihIVGV8fChIVGU9ZnVuY3Rpb24gTGN0KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWyJUaGUgZmlsdGVyIGNvbmRpdGlvbnMgaGF2ZSBi''@;'; put 'put ''ZWVuIGFwcGxpZWQgcHJvcGVybHksIGJ1dCBjb3VsZG5cdTIwMTl0IGJlIGRpc3BsYXllZCB2aXN1YWxseS4gXG4gICAgICAgIFRoZSBvdmVyYWxsIGFtb3VudCBvZiBjb25kaXRpb25zIGV4Y2VlZCB0aGUgY2FwYWJpbGl0eSBvZiB0aGUgZHJvcGRvd24gbWVudS4gXG4gICAgICAgIEZvciBt''@;'; put 'put ''b3JlIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0aW9uLiJdLFsiVGhlIGZpbHRlciBjb25kaXRpb25zIGhhdmUgYmVlbiBhcHBsaWVkIHByb3Blcmx5LCBidXQgY291bGRuXHUyMDE5dCBiZSBkaXNwbGF5ZWQgdmlzdWFsbHkuXFx4MjBcbiAgICAgICAgVGhlIG92ZXJhbGwgYW1vdW50IG9m''@;'; put 'put ''IGNvbmRpdGlvbnMgZXhjZWVkIHRoZSBjYXBhYmlsaXR5IG9mIHRoZSBkcm9wZG93biBtZW51LlxceDIwXG4gICAgICAgIEZvciBtb3JlIGRldGFpbHMgc2VlIHRoZSBkb2N1bWVudGF0aW9uLiJdKSkpKTtlbHNle3ZhciBOZT10aGlzLmNvbmRpdGlvbkNvbGxlY3Rpb24uZ2V0T3BlcmF0aW9u''@;'; put 'put ''KHVlKTt0aGlzLmNvbXBvbmVudHMuZ2V0KCJmaWx0ZXJfYnlfY29uZGl0aW9uIikudXBkYXRlU3RhdGUoQmVbMF0sdWUpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9ieV9jb25kaXRpb24yIikudXBkYXRlU3RhdGUoQmVbMV0sdWUpLHRoaXMuY29tcG9uZW50cy5nZXQoImZpbHRlcl9v''@;'; put 'put ''cGVyYXRvcnMiKS51cGRhdGVTdGF0ZShOZSx1ZSksdGhpcy5jb21wb25lbnRzLmdldCgiZmlsdGVyX2J5X3ZhbHVlIikudXBkYXRlU3RhdGUoeSl9fX19LHtrZXk6ImdldEluZGV4ZXNPZkNvbXBvbmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9W107aWYoIXRoaXMuZHJvcGRvd25NZW51''@;'; put 'put ''UGx1Z2luKXJldHVybiB5O2Zvcih2YXIgQz10aGlzLmRyb3Bkb3duTWVudVBsdWdpbi5tZW51LEk9YXJndW1lbnRzLmxlbmd0aCxaPW5ldyBBcnJheShJKSx1ZT0wO3VlPEk7dWUrKylaW3VlXT1hcmd1bWVudHNbdWVdO3JldHVybiBVcihaLGZ1bmN0aW9uKF9lKXtVcihDLm1lbnVJdGVtcyxm''@;'; put 'put ''dW5jdGlvbihCZSxOZSl7QmUua2V5PT09X2UuZ2V0TWVudUl0ZW1EZXNjcmlwdG9yKCkua2V5JiZ5LnB1c2goTmUpfSl9KSx5fX0se2tleToiY2hhbmdlQ29tcG9uZW50c1Zpc2liaWxpdHkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9IShhcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFy''@;'; put 'put ''Z3VtZW50c1swXSl8fGFyZ3VtZW50c1swXTtpZih0aGlzLmRyb3Bkb3duTWVudVBsdWdpbil7Zm9yKHZhciBDPXRoaXMuZHJvcGRvd25NZW51UGx1Z2luLm1lbnUsST1DLmhvdE1lbnUsWj1JLmdldFBsdWdpbigiaGlkZGVuUm93cyIpLHVlPWFyZ3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5''@;'; put 'put ''KHVlPjE/dWUtMTowKSxCZT0xO0JlPHVlO0JlKyspX2VbQmUtMV09YXJndW1lbnRzW0JlXTt2YXIgTmU9dGhpcy5nZXRJbmRleGVzT2ZDb21wb25lbnRzLmFwcGx5KHRoaXMsX2UpO3k/Wi5zaG93Um93cyhOZSk6Wi5oaWRlUm93cyhOZSksSS5yZW5kZXIoKX19fSx7a2V5OiJoaWRlQ29tcG9u''@;'; put 'put ''ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLmNoYW5nZUNvbXBvbmVudHNWaXNpYmlsaXR5LmFwcGx5KHRoaXMsWyExXS5jb25jYXQoQykpfX0se2tleToic2hv''@;'; put 'put ''d0NvbXBvbmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy5jaGFuZ2VDb21wb25lbnRzVmlzaWJpbGl0eS5hcHBseSh0aGlzLFshMF0uY29uY2F0KEMpKX19LHtr''@;'; put 'put ''ZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWQmJih0aGlzLmNvbXBvbmVudHMuZm9yRWFjaChmdW5jdGlvbihDLEkpe251bGwhPT1DJiYoQy5kZXN0cm95KCkseS5jb21wb25lbnRzLnNldChJLG51bGwpKX0pLHRoaXMuY29uZGl0aW9uQ29sbGVj''@;'; put 'put ''dGlvbi5kZXN0cm95KCksdGhpcy5jb25kaXRpb25VcGRhdGVPYnNlcnZlci5kZXN0cm95KCksdGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUpKSxKTyhHdyhoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6''@;'; put 'put ''IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiJmaWx0ZXJzIn19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDI1MH19LHtrZXk6IlBMVUdJTl9ERVBTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm5bInBsdWdpbjpEcm9wZG93bk1lbnUiLCJwbHVn''@;'; put 'put ''aW46SGlkZGVuUm93cyIsImNlbGwtdHlwZTpjaGVja2JveCJdfX1dKSxofShZcyk7ZnVuY3Rpb24gelRlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12''@;'; put 'put ''LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gSXooZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3RoO2crKyl7dmFyIGg9bnVs''@;'; put 'put ''bCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/elRlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtVY3QoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxPYmplY3QuZ2V0T3duUHJv''@;'; put 'put ''cGVydHlEZXNjcmlwdG9ycyhoKSk6elRlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBVY3QoZCxnLGgpe3JldHVybiBnIGluIGQ/''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfXZhciBHVGU9ImludGVybmFsLXVzZS1pbi1oYW5kc29udGFibGUiLFFjdD17bGljZW5zZUtleTpHVGUsdXNlQXJyYXlBcml0aG1ldGlj''@;'; put 'put ''OiEwLHVzZUNvbHVtbkluZGV4OiExLHVzZVN0YXRzOiExLGV2YWx1YXRlTnVsbFRvWmVybzohMCxwcmVjaXNpb25FcHNpbG9uOjFlLTEzLHByZWNpc2lvblJvdW5kaW5nOjE0LHNtYXJ0Um91bmRpbmc6ITAsbGVhcFllYXIxOTAwOiEwLG51bGxEYXRlOnt5ZWFyOjE4OTksbW9udGg6MTIsZGF5''@;'; put 'put ''OjMxfSxudWxsWWVhcjozMCxkYXRlRm9ybWF0czpbIkREL01NL1lZWVkiLCJERC9NTS9ZWSJdLHRpbWVGb3JtYXRzOlsiaGg6bW0iLCJoaDptbTpzcy5zc3MiXSxtYXRjaFdob2xlQ2VsbDohMCx1c2VSZWd1bGFyRXhwcmVzc2lvbnM6ITEsdXNlV2lsZGNhcmRzOiEwLGZ1bmN0aW9uQXJnU2Vw''@;'; put 'put ''YXJhdG9yOiIsIix0aG91c2FuZFNlcGFyYXRvcjoiIixkZWNpbWFsU2VwYXJhdG9yOiIuIixsYW5ndWFnZToiZW5HQiJ9O2Z1bmN0aW9uIFdUZShkKXt2YXIgZyxoO3JldHVybnttYXhDb2x1bW5zOmQubWF4Q29sdW1ucyxtYXhSb3dzOmQubWF4Um93cyxsYW5ndWFnZTpudWxsPT09KGc9ZFt1''@;'; put 'put ''M10pfHx2b2lkIDA9PT1nfHxudWxsPT09KGg9Zy5sYW5ndWFnZSl8fHZvaWQgMD09PWg/dm9pZCAwOmgubGFuZ0NvZGV9fWZ1bmN0aW9uIFlUZShkKXtyZXR1cm4gT2JqZWN0LmtleXMoZCkucmVkdWNlKGZ1bmN0aW9uKGcsaCl7cmV0dXJuImh5cGVyZm9ybXVsYSIhPT1oJiYoZ1toXT1kW2hd''@;'; put 'put ''KSxnfSx7fSl9ZnVuY3Rpb24gVDVlKGQpe3JldHVybihUNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9m''@;'; put 'put ''IFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBwbmUoKXt2YXIgZD0iZW5naW5lX3JlbGF0aW9uc2hpcCIsZz1McCh1Myk7cmV0dXJuIGcuaGFzSXRlbShkKXx8Zy5yZWdpc3RlcihkLG5l''@;'; put 'put ''dyBNYXApLGcuZ2V0SXRlbShkKX1mdW5jdGlvbiBJNWUoKXt2YXIgZD0ic2hhcmVkX2VuZ2luZV91c2FnZSIsZz1McCh1Myk7cmV0dXJuIGcuaGFzSXRlbShkKXx8Zy5yZWdpc3RlcihkLG5ldyBNYXApLGcuZ2V0SXRlbShkKX1mdW5jdGlvbiBVVGUoZCl7dmFyIGcsaD1wbmUoKSx2PTA9PT1o''@;'; put 'put ''LnNpemU/W106QXJyYXkuZnJvbShudWxsIT09KGc9aC5nZXQoZCkpJiZ2b2lkIDAhPT1nP2c6W10pO3JldHVybiBuZXcgTWFwKHYubWFwKGZ1bmN0aW9uKHkpe3JldHVyblt5LmdldFBsdWdpbigiZm9ybXVsYXMiKS5zaGVldElkLHldfSkpfWZ1bmN0aW9uIFFUZShkLGcpe2lmKGQpe3ZhciBo''@;'; put 'put ''PXBuZSgpLHY9aC5nZXQoZCkseT1JNWUoKSxDPXkuZ2V0KGQpO3YmJnYuaW5jbHVkZXMoZykmJih2LnNwbGljZSh2LmluZGV4T2YoZyksMSksMD09PXYubGVuZ3RoJiZoLmRlbGV0ZShkKSksQyYmQy5pbmNsdWRlcyhnLmd1aWQpJiYoQy5zcGxpY2UoQy5pbmRleE9mKGcuZ3VpZCksMSksMD09''@;'; put 'put ''PUMubGVuZ3RoJiYoeS5kZWxldGUoZCksZC5kZXN0cm95KCkpKX19ZnVuY3Rpb24gbmZ0KGQsZyl7cmV0dXJuKGExKGcpfHwhZC5kb2VzU2hlZXRFeGlzdChnKSkmJihnPWQuYWRkU2hlZXQoZykpLGd9ZnVuY3Rpb24gSlRlKGQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZCYmIiciPT09ZC5j''@;'; put 'put ''aGFyQXQoMCkmJiI9Ij09PWQuY2hhckF0KDEpfWZ1bmN0aW9uIFhUZShkLGcpe3ZhciBoPU9iamVjdC5rZXlzKGQpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB2PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7ZyYmKHY9di5maWx0ZXIoZnVuY3Rpb24oeSl7''@;'; put 'put ''cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZCx5KS5lbnVtZXJhYmxlfSkpLGgucHVzaC5hcHBseShoLHYpfXJldHVybiBofWZ1bmN0aW9uIEtUZShkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIgaD1udWxsIT1hcmd1bWVudHNbZ10/YXJn''@;'; put 'put ''dW1lbnRzW2ddOnt9O2clMj9YVGUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe2duZShkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgp''@;'; put 'put ''KTpYVGUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfWZ1bmN0aW9uIER6KGQpe3JldHVybihEej0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYi''@;'; put 'put ''c3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0''@;'; put 'put ''eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFhPKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGNmdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gdWZ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVy''@;'; put 'put ''YXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1m''@;'; put 'put ''aW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8JFRlKGQsZyl8fGZ1bmN0aW9uIHNmdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRl''@;'; put 'put ''cmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gJFRlKGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBENWUoZCxn''@;'; put 'put ''KTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMi''@;'; put 'put ''PT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEQ1ZShkLGcpfX1mdW5jdGlvbiBENWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZb''@;'; put 'put ''aF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBmZnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBxVGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9''@;'; put 'put ''Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBsTSgpe3JldHVybiBsTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxl''@;'; put 'put ''Y3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9ZGZ0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMu''@;'; put 'put ''dmFsdWV9fSxsTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gZGZ0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1XdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBMNWUoZCxnKXtyZXR1cm4oTDVlPU9iamVjdC5z''@;'; put 'put ''ZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gbWZ0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09RHooZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2''@;'; put 'put ''b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHNNKGQpfWZ1bmN0aW9uIHNNKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhh''@;'; put 'put ''c24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBXdihkKXtyZXR1cm4oV3Y9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90''@;'; put 'put ''b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1mdW5jdGlvbiBnbmUoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9u''@;'; put 'put ''IE81ZShkLGcsaCl7KGZ1bmN0aW9uIEFmdChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gS08oZCxnLGgp''@;'; put 'put ''e3JldHVybiBmdW5jdGlvbiB5ZnQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLGVJZShkLGcsInNldCIp''@;'; put 'put ''LGgpLGh9ZnVuY3Rpb24gJE8oZCxnKXtyZXR1cm4gZnVuY3Rpb24gd2Z0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxlSWUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gZUllKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVk''@;'; put 'put ''IHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciB1Mz0iZm9ybXVsYXMiO3pvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVy''@;'; put 'put ''TmFtZWRFeHByZXNzaW9uUmVtb3ZlZCIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclNoZWV0QWRkZWQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJTaGVldFJlbW92ZWQiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJTaGVldFJlbmFtZWQi''@;'; put 'put ''KSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJGb3JtdWxhc1ZhbHVlc1VwZGF0ZSIpO3ZhciBxTz1mdW5jdGlvbihnKXtyZXR1cm4iVW5kb1JlZG8udW5kbyI9PT1nfHwiVW5kb1JlZG8ucmVkbyI9PT1nfHwiYXV0byI9PT1nfSx1TT1uZXcgV2Vha01hcCxSNWU9bmV3IFdlYWtN''@;'; put 'put ''YXAsTHo9bmV3IFdlYWtNYXAsX2Z0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBwZnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnBy''@;'; put 'put ''b3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmTDVlKGQsZyl9KGgsZCk7dmFyIGc9''@;'; put 'put ''ZnVuY3Rpb24gZ2Z0KGQpe3ZhciBnPWZ1bmN0aW9uIHZmdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0''@;'; put 'put ''dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVd2KGQpO2lmKGcpe3ZhciBDPVd2KHRoaXMpLmNvbnN0cnVj''@;'; put 'put ''dG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBtZnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtmZnQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5''@;'; put 'put ''KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gTzVlKHNNKHY9Zy5jYWxsLmFwcGx5KGcsW3RoaXNdLmNvbmNhdChDKSkpLHVNLHt3cml0YWJsZTohMCx2YWx1ZTohMX0pLE81ZShzTSh2KSxSNWUse3dyaXRhYmxlOiEwLHZhbHVlOiExfSksTzVlKHNNKHYpLEx6LHt3cml0''@;'; put 'put ''YWJsZTohMCx2YWx1ZTpbWyJ2YWx1ZXNVcGRhdGVkIixmdW5jdGlvbigpe3ZhciBaO3JldHVybihaPXYpLm9uRW5naW5lVmFsdWVzVXBkYXRlZC5hcHBseShaLGFyZ3VtZW50cyl9XSxbIm5hbWVkRXhwcmVzc2lvbkFkZGVkIixmdW5jdGlvbigpe3ZhciBaO3JldHVybihaPXYpLm9uRW5naW5l''@;'; put 'put ''TmFtZWRFeHByZXNzaW9uc0FkZGVkLmFwcGx5KFosYXJndW1lbnRzKX1dLFsibmFtZWRFeHByZXNzaW9uUmVtb3ZlZCIsZnVuY3Rpb24oKXt2YXIgWjtyZXR1cm4oWj12KS5vbkVuZ2luZU5hbWVkRXhwcmVzc2lvbnNSZW1vdmVkLmFwcGx5KFosYXJndW1lbnRzKX1dLFsic2hlZXRBZGRlZCIs''@;'; put 'put ''ZnVuY3Rpb24oKXt2YXIgWjtyZXR1cm4oWj12KS5vbkVuZ2luZVNoZWV0QWRkZWQuYXBwbHkoWixhcmd1bWVudHMpfV0sWyJzaGVldFJlbmFtZWQiLGZ1bmN0aW9uKCl7dmFyIFo7cmV0dXJuKFo9dikub25FbmdpbmVTaGVldFJlbmFtZWQuYXBwbHkoWixhcmd1bWVudHMpfV0sWyJzaGVldFJl''@;'; put 'put ''bW92ZWQiLGZ1bmN0aW9uKCl7dmFyIFo7cmV0dXJuKFo9dikub25FbmdpbmVTaGVldFJlbW92ZWQuYXBwbHkoWixhcmd1bWVudHMpfV1dfSksZ25lKHNNKHYpLCJzdGF0aWNSZWdpc3RlciIsTHAoImZvcm11bGFzIikpLGduZShzTSh2KSwiZW5naW5lIixudWxsKSxnbmUoc00odiksInNoZWV0''@;'; put 'put ''TmFtZSIsbnVsbCksdn1yZXR1cm4gZnVuY3Rpb24gaGZ0KGQsZyxoKXtnJiZxVGUoZC5wcm90b3R5cGUsZyksaCYmcVRlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6InNoZWV0SWQiLGdldDpmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biBudWxsPT09dGhpcy5zaGVldE5hbWU/bnVsbDp0aGlzLmVuZ2luZS5nZXRTaGVldElkKHRoaXMuc2hlZXROYW1lKX19LHtrZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbdTNdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbigpe3ZhciB5LEM9dGhpcztpZighdGhpcy5lbmFibGVkKXtpZih0aGlzLmVuZ2luZT1udWxsIT09KHk9ZnVuY3Rpb24gS2N0KGQpe3ZhciB5LGc9ZC5nZXRTZXR0aW5ncygpLGg9Z1t1M10sdj1udWxsPT1oP3ZvaWQgMDpoLmVuZ2luZTtpZighMD09PWh8fGExKHYpKXJldHVy''@;'; put 'put ''biBudWxsO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2Lmh5cGVyZm9ybXVsYXx8ImZ1bmN0aW9uIj09dHlwZW9mIHYpcmV0dXJuIGZ1bmN0aW9uICRjdChkLGcsaCl7dmFyIHY9Z1t1M10seT1mdW5jdGlvbiBKY3QoZCl7dmFyIGcsaD1kW3UzXSx2PVlUZShudWxsIT1oJiZudWxsIT09KGc9aC5l''@;'; put 'put ''bmdpbmUpJiZ2b2lkIDAhPT1nJiZnLmh5cGVyZm9ybXVsYT9oLmVuZ2luZTp7fSkseT1XVGUoZCk7cmV0dXJuIEl6KEl6KEl6KHt9LFFjdCksdikseSl9KGcpLEM9cG5lKCksST1JNWUoKTsoZnVuY3Rpb24gcWN0KGQsZyl7ZyYmZy5mb3JFYWNoKGZ1bmN0aW9uKGgpe3ZhciB2PWgubmFtZSx5''@;'; put 'put ''PWgucGx1Z2luLEM9aC50cmFuc2xhdGlvbnM7dHJ5e2QucmVnaXN0ZXJGdW5jdGlvbih2LHksQyl9Y2F0Y2goSSl7bDEoSS5tZXNzYWdlKX19KX0pKGQsdi5mdW5jdGlvbnMpLGZ1bmN0aW9uIGVmdChkLGcpe2lmKGcpe3ZhciBoPWcubGFuZ0NvZGU7dHJ5e2QucmVnaXN0ZXJMYW5ndWFnZSho''@;'; put 'put ''LGcpfWNhdGNoKHYpe2wxKHYubWVzc2FnZSl9fX0oZCx2Lmxhbmd1YWdlKTt2YXIgWj1kLmJ1aWxkRW1wdHkoeSk7cmV0dXJuIEMuc2V0KFosW2hdKSxJLnNldChaLFtoLmd1aWRdKSxmdW5jdGlvbiB0ZnQoZCxnKXtnJiYoZC5zdXNwZW5kRXZhbHVhdGlvbigpLGcuZm9yRWFjaChmdW5jdGlv''@;'; put 'put ''bihoKXt2YXIgdj1oLm5hbWUseT1oLmV4cHJlc3Npb24sQz1oLnNjb3BlLEk9aC5vcHRpb25zO3RyeXtkLmFkZE5hbWVkRXhwcmVzc2lvbih2LHksQyxJKX1jYXRjaChaKXtsMShaLm1lc3NhZ2UpfX0pLGQucmVzdW1lRXZhbHVhdGlvbigpKX0oWix2Lm5hbWVkRXhwcmVzc2lvbnMpLFoub24o''@;'; put 'put ''InNoZWV0QWRkZWQiLGZ1bmN0aW9uKCl7Wi5yZWJ1aWxkQW5kUmVjYWxjdWxhdGUoKX0pLFoub24oInNoZWV0UmVtb3ZlZCIsZnVuY3Rpb24oKXtaLnJlYnVpbGRBbmRSZWNhbGN1bGF0ZSgpfSksWn0obnVsbCE9PSh5PXYuaHlwZXJmb3JtdWxhKSYmdm9pZCAwIT09eT95OnYsZyxkKTtpZigi''@;'; put 'put ''b2JqZWN0Ij09PVQ1ZSh2KSYmYTEodi5oeXBlcmZvcm11bGEpKXt2YXIgQz1wbmUoKSxJPUk1ZSgpLmdldCh2KTtyZXR1cm4gQy5oYXModil8fEMuc2V0KHYsW10pLEMuZ2V0KHYpLnB1c2goZCksSSYmSS5wdXNoKGQuZ3VpZCksdi5nZXRDb25maWcoKS5saWNlbnNlS2V5fHx2LnVwZGF0ZUNv''@;'; put 'put ''bmZpZyh7bGljZW5zZUtleTpHVGV9KSx2fXJldHVybiBudWxsfSh0aGlzLmhvdCkpJiZ2b2lkIDAhPT15P3k6dGhpcy5lbmdpbmUsIXRoaXMuZW5naW5lKXJldHVybiB2b2lkIGwxKCJNaXNzaW5nIHRoZSByZXF1aXJlZCBgZW5naW5lYCBrZXkgaW4gdGhlIEZvcm11bGFzIHNldHRpbmdzLiBQ''@;'; put 'put ''bGVhc2UgZmlsbCBpdCB3aXRoIGVpdGhlciBhbiBlbmdpbmUgY2xhc3Mgb3IgYW4gZW5naW5lIGluc3RhbmNlLiIpO2lmKG51bGwhPT10aGlzLnNoZWV0TmFtZSYmIXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKSl7dmFyIEk9dGhpcy5hZGRTaGVldCh0aGlzLnNo''@;'; put 'put ''ZWV0TmFtZSx0aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJyYXkoKSk7ITEhPT1JJiYodGhpcy5zaGVldE5hbWU9SSl9dGhpcy5hZGRIb29rKCJiZWZvcmVMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkJlZm9yZUxvYWREYXRhLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9v''@;'; put 'put ''aygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyTG9hZERhdGEuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlEYXRhIixmdW5jdGlvbigpe3JldHVybiBDLm9uTW9kaWZ5RGF0YS5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhv''@;'; put 'put ''b2soIm1vZGlmeVNvdXJjZURhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25Nb2RpZnlTb3VyY2VEYXRhLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmFsaWRhdGUiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25CZWZvcmVWYWxpZGF0ZS5hcHBseShDLGFyZ3VtZW50''@;'; put 'put ''cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyU2V0U291cmNlRGF0YUF0Q2VsbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0RGF0YUF0Q2VsbCIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''Qy5vbkFmdGVyU2V0RGF0YUF0Q2VsbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyU2V0RGF0YUF0Um93UHJvcCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyU2V0RGF0YUF0Q2VsbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNy''@;'; put 'put ''ZWF0ZVJvdyIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkJlZm9yZUNyZWF0ZVJvdy5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNyZWF0ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkJlZm9yZUNyZWF0ZUNvbC5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFk''@;'; put 'put ''ZEhvb2soImFmdGVyQ3JlYXRlUm93IixmdW5jdGlvbigpe3JldHVybiBDLm9uQWZ0ZXJDcmVhdGVSb3cuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4gQy5vbkFmdGVyQ3JlYXRlQ29sLmFwcGx5KEMsYXJndW1lbnRz''@;'; put 'put ''KX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiBDLm9uQmVmb3JlUmVtb3ZlUm93LmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlQ29sIixmdW5jdGlvbigpe3JldHVybiBDLm9uQmVmb3JlUmVtb3ZlQ29sLmFw''@;'; put 'put ''cGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25BZnRlclJlbW92ZVJvdy5hcHBseShDLGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlQ29sIixmdW5jdGlvbigpe3JldHVybiBDLm9uQWZ0ZXJS''@;'; put 'put ''ZW1vdmVDb2wuYXBwbHkoQyxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVVbmRvIixmdW5jdGlvbihaKXsicm93X21vdmUiIT09KG51bGw9PVo/dm9pZCAwOlouYWN0aW9uVHlwZSkmJkMuZW5naW5lLnVuZG8oKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVkbyIsZnVuY3Rpb24o''@;'; put 'put ''Wil7InJvd19tb3ZlIiE9PShudWxsPT1aP3ZvaWQgMDpaLmFjdGlvblR5cGUpJiZDLmVuZ2luZS5yZWRvKCl9KSx0aGlzLmFkZEhvb2soImFmdGVyRGV0YWNoQ2hpbGQiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25BZnRlckRldGFjaENoaWxkLmFwcGx5KEMsYXJndW1lbnRzKX0pLHRoaXMuYWRk''@;'; put 'put ''SG9vaygiYmVmb3JlQXV0b2ZpbGwiLGZ1bmN0aW9uKCl7cmV0dXJuIEMub25CZWZvcmVBdXRvZmlsbC5hcHBseShDLGFyZ3VtZW50cyl9KSwkTyh0aGlzLEx6KS5mb3JFYWNoKGZ1bmN0aW9uKFope3ZhciB1ZT1YTyhaLDIpO3JldHVybiBDLmVuZ2luZS5vbih1ZVswXSx1ZVsxXSl9KSxsTShX''@;'; put 'put ''dihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7JE8odGhpcyxMeikuZm9yRWFjaChmdW5jdGlvbihDKXt2YXIgST1YTyhDLDIpO3JldHVybiB5LmVuZ2luZS5vZmYo''@;'; put 'put ''SVswXSxJWzFdKX0pLFFUZSh0aGlzLmVuZ2luZSx0aGlzLmhvdCksdGhpcy5lbmdpbmU9bnVsbCxsTShXdihoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuZW5naW5lLnVwZGF0''@;'; put 'put ''ZUNvbmZpZyhmdW5jdGlvbiBYY3QoZCl7dmFyIGcsaD1kW3UzXSx2PVlUZShudWxsIT1oJiZudWxsIT09KGc9aC5lbmdpbmUpJiZ2b2lkIDAhPT1nJiZnLmh5cGVyZm9ybXVsYT9oLmVuZ2luZTp7fSkseT1XVGUoZCk7cmV0dXJuIEl6KEl6KHt9LHYpLHkpfSh0aGlzLmhvdC5nZXRTZXR0aW5n''@;'; put 'put ''cygpKSk7dmFyIEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt1M107aWYoVG8oQykmJlRvKEMuc2hlZXROYW1lKSYmQy5zaGVldE5hbWUhPT10aGlzLnNoZWV0TmFtZSYmdGhpcy5zd2l0Y2hTaGVldChDLnNoZWV0TmFtZSksIXkuZGF0YSYmbnVsbD09PXRoaXMuc2hlZXROYW1lKXt2YXIgST10''@;'; put 'put ''aGlzLmhvdC5nZXRTZXR0aW5ncygpW3UzXS5zaGVldE5hbWU7SSYmdGhpcy5lbmdpbmUuZG9lc1NoZWV0RXhpc3QoSSk/dGhpcy5zd2l0Y2hTaGVldCh0aGlzLnNoZWV0TmFtZSk6dGhpcy5zaGVldE5hbWU9dGhpcy5hZGRTaGVldChudWxsIT1JP0k6dm9pZCAwLHRoaXMuaG90LmdldFNvdXJj''@;'; put 'put ''ZURhdGFBcnJheSgpKX1sTShXdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzLHkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzOyRPKHRoaXMsTHopLmZvckVhY2goZnVuY3Rpb24oQyl7dmFyIEksWj1YTyhDLDIpO3JldHVy''@;'; put 'put ''biBudWxsPT09KEk9eS5lbmdpbmUpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLm9mZihaWzBdLFpbMV0pfSksS08odGhpcyxMeixudWxsKSxRVGUodGhpcy5lbmdpbmUsdGhpcy5ob3QpLHRoaXMuZW5naW5lPW51bGwsbE0oV3YoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMp''@;'; put 'put ''fX0se2tleToiZ2V0UGh5c2ljYWxJbmRleFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxaLHVlKXtyZXR1cm4hdWUmJnk+PUk/WisoeS1JKTpDfX0se2tleToidG9QaHlzaWNhbFJvd1Bvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1hcmd1bWVudHMubGVuZ3RoPjEmJnZv''@;'; put 'put ''aWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdO3JldHVybiB0aGlzLmdldFBoeXNpY2FsSW5kZXhQb3NpdGlvbih5LHRoaXMuaG90LnRvUGh5c2ljYWxSb3coeSksdGhpcy5ob3QuY291bnRSb3dzKCksdGhpcy5ob3QuY291bnRTb3VyY2VSb3dzKCksQyl9fSx7a2V5OiJ0b1BoeXNp''@;'; put 'put ''Y2FsQ29sdW1uUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuIHRoaXMuZ2V0UGh5c2ljYWxJbmRleFBvc2l0aW9uKHksdGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5''@;'; put 'put ''KSx0aGlzLmhvdC5jb3VudENvbHMoKSx0aGlzLmhvdC5jb3VudFNvdXJjZUNvbHMoKSxDKX19LHtrZXk6ImFkZFNoZWV0Iix2YWx1ZTpmdW5jdGlvbih5LEMpe2lmKFRvKEMpJiYhZWtlKEMpKXJldHVybiBsMSgiVGhlIHByb3ZpZGVkIGRhdGEgc2hvdWxkIGJlIGFuIGFycmF5IG9mIGFycmF5''@;'; put 'put ''cy4iKSwhMTtpZihudWxsIT15JiZ0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdCh5KSlyZXR1cm4gbDEoIlNoZWV0IHdpdGggdGhlIHByb3ZpZGVkIG5hbWUgYWxyZWFkeSBleGlzdHMuIiksITE7dHJ5e3ZhciBJPXRoaXMuZW5naW5lLmFkZFNoZWV0KG51bGwhPXk/eTp2b2lkIDApO3JldHVy''@;'; put 'put ''biBDJiZ0aGlzLmVuZ2luZS5zZXRTaGVldENvbnRlbnQodGhpcy5lbmdpbmUuZ2V0U2hlZXRJZChJKSxDKSxJfWNhdGNoKFope3JldHVybiBsMShaLm1lc3NhZ2UpLCExfX19LHtrZXk6InN3aXRjaFNoZWV0Iix2YWx1ZTpmdW5jdGlvbih5KXtpZih0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlz''@;'; put 'put ''dCh5KSl7dGhpcy5zaGVldE5hbWU9eTt2YXIgQz10aGlzLmVuZ2luZS5nZXRTaGVldFNlcmlhbGl6ZWQodGhpcy5zaGVldElkKTtDLmxlbmd0aD4wJiZ0aGlzLmhvdC5sb2FkRGF0YShDLCIiLmNvbmNhdChsZCh1MyksIi5zd2l0Y2hTaGVldCIpKX1lbHNlIEMzZSgiVGhlIHNoZWV0IG5hbWVk''@;'; put 'put ''IGAiLmNvbmNhdCh5LCJgIGRvZXMgbm90IGV4aXN0LCBzd2l0Y2ggYWJvcnRlZC4iKSl9fSx7a2V5OiJnZXRDZWxsVHlwZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5zaGVldElk''@;'; put 'put ''LFo9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSx1ZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKEMpO3JldHVybiBudWxsIT09WiYmbnVsbCE9PXVlP3RoaXMuZW5naW5lLmdldENlbGxUeXBlKHtzaGVldDpJLHJvdzpaLGNvbDp1ZX0pOiJFTVBUWSJ9fSx7a2V5OiJpc0Zvcm11bGFDZWxs''@;'; put 'put ''VHlwZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5zaGVldElkLFo9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSx1ZT10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKEMpO3JldHVy''@;'; put 'put ''biBudWxsIT09WiYmbnVsbCE9PXVlJiZ0aGlzLmVuZ2luZS5kb2VzQ2VsbEhhdmVGb3JtdWxhKHtzaGVldDpJLHJvdzpaLGNvbDp1ZX0pfX0se2tleToicmVuZGVyRGVwZW5kZW50U2hlZXRzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lk''@;'; put 'put ''IDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXSxaPW5ldyBTZXQ7eS5mb3JFYWNoKGZ1bmN0aW9uKHVlKXt2YXIgX2UsQmU9bnVsbD09dWV8fG51bGw9PT0oX2U9dWUuYWRkcmVzcyl8fHZvaWQgMD09PV9lP3ZvaWQgMDpfZS5zaGVldDt2b2lkIDAhPT1CZSYmKFouaGFzKEJlKXx8Wi5h''@;'; put 'put ''ZGQoQmUpKX0pLFVUZSh0aGlzLmVuZ2luZSkuZm9yRWFjaChmdW5jdGlvbih1ZSxfZSl7dmFyIEJlOyhJfHxfZSE9PUMuc2hlZXRJZCkmJlouaGFzKF9lKSYmKHVlLnJlbmRlcigpLG51bGw9PT0oQmU9dWUudmlldyl8fHZvaWQgMD09PUJlfHxCZS5hZGp1c3RFbGVtZW50c1NpemUoKSl9KX19''@;'; put 'put ''LHtrZXk6InZhbGlkYXRlRGVwZW5kZW50Q2VsbHMiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10sWj1mdW5jdGlvbihCZSl7dmFyIE5lLEtlPW51bGwhPT0oTmU9bnVsbD09QmU/''@;'; put 'put ''dm9pZCAwOkJlLmFkZHJlc3MpJiZ2b2lkIDAhPT1OZT9OZTp7fSxwdD1LZS5yb3csT3Q9S2UuY29sLCR0PUtlLnNoZWV0O3JldHVybiBUbygkdCk/IiIuY29uY2F0KCR0LCI6IikuY29uY2F0KHB0LCJ4IikuY29uY2F0KE90KToiIn0sdWU9bmV3IFNldChJLm1hcChmdW5jdGlvbihfZSl7cmV0''@;'; put 'put ''dXJuIFooX2UpfSkpO3kuZm9yRWFjaChmdW5jdGlvbihfZSl7dmFyIEJlLE5lLEtlPW51bGwhPT0oQmU9X2UuYWRkcmVzcykmJnZvaWQgMCE9PUJlP0JlOnt9LHB0PUtlLnJvdyxPdD1LZS5jb2wsJHQ9VG8ocHQpP0MuaG90LnRvVmlzdWFsUm93KHB0KTpudWxsLGZuPVRvKE90KT9DLmhvdC50''@;'; put 'put ''b1Zpc3VhbENvbHVtbihPdCk6bnVsbDtpZihudWxsIT09JHQmJm51bGwhPT1mbil7dmFyIExuPW51bGw9PV9lfHxudWxsPT09KE5lPV9lLmFkZHJlc3MpfHx2b2lkIDA9PT1OZT92b2lkIDA6TmUuc2hlZXQsaXI9WihfZSk7aWYodm9pZCAwIT09TG4mJiF1ZS5oYXMoaXIpKXt2YXIgbXI9VVRl''@;'; put 'put ''KEMuZW5naW5lKS5nZXQoTG4pO2lmKCFtcilyZXR1cm47bXIudmFsaWRhdGVDZWxsKG1yLmdldERhdGFBdENlbGwoJHQsZm4pLG1yLmdldENlbGxNZXRhKCR0LGZuKSxmdW5jdGlvbigpe30pfX19KX19LHtrZXk6InN5bmNDaGFuZ2VXaXRoRW5naW5lIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7''@;'; put 'put ''dmFyIFo9e3Jvdzp0aGlzLnRvUGh5c2ljYWxSb3dQb3NpdGlvbih5KSxjb2w6dGhpcy50b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24oQyksc2hlZXQ6dGhpcy5zaGVldElkfTtpZih0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1NldENlbGxDb250ZW50cyhaKSlyZXR1cm4gdGhpcy5lbmdpbmUu''@;'; put 'put ''c2V0Q2VsbENvbnRlbnRzKFosSSk7bDEoIk5vdCBwb3NzaWJsZSB0byBzZXQgY2VsbCBkYXRhIGF0ICIuY29uY2F0KEpTT04uc3RyaW5naWZ5KFopKSl9fSx7a2V5OiJvbkJlZm9yZVZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIFo9dGhpcy5ob3QucHJvcFRvQ29sKEkpO2lm''@;'; put 'put ''KHRoaXMuaXNGb3JtdWxhQ2VsbFR5cGUoQyxaKSl7dmFyIHVlPXtyb3c6dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhDKSxjb2w6dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihaKSxzaGVldDp0aGlzLnNoZWV0SWR9LF9lPXRoaXMuZW5naW5lLmdldENlbGxWYWx1ZSh1ZSk7cmV0dXJuIm9iamVj''@;'; put 'put ''dCI9PT1EeihfZSkmJm51bGwhPT1fZT9fZS52YWx1ZTpfZX1yZXR1cm4geX19LHtrZXk6Im9uQmVmb3JlQXV0b2ZpbGwiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj10aGlzLHVlPWZ1bmN0aW9uKEtlKXtyZXR1cm4gS1RlKEtUZSh7fSxLZSkse30se3NoZWV0Olouc2hlZXRJZH0pfSxf''@;'; put 'put ''ZT17c3RhcnQ6dWUoQy5nZXRUb3BTdGFydENvcm5lcigpKSxlbmQ6dWUoQy5nZXRCb3R0b21FbmRDb3JuZXIoKSl9LEJlPXtzdGFydDp1ZShJLmdldFRvcFN0YXJ0Q29ybmVyKCkpLGVuZDp1ZShJLmdldEJvdHRvbUVuZENvcm5lcigpKX07cmV0dXJuITEhPT10aGlzLmVuZ2luZS5pc0l0UG9z''@;'; put 'put ''c2libGVUb1NldENlbGxDb250ZW50cyhCZSkmJnRoaXMuZW5naW5lLmdldEZpbGxSYW5nZURhdGEoX2UsQmUpfX0se2tleToib25CZWZvcmVMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVu''@;'; put 'put ''dHNbMl06IiI7SS5pbmNsdWRlcyhsZCh1MykpfHxLTyh0aGlzLFI1ZSxhMSh0aGlzLmhvdC5nZXRTZXR0aW5ncygpLmRhdGEpKX19LHtrZXk6Im9uQWZ0ZXJMb2FkRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1sy''@;'; put 'put ''XT9hcmd1bWVudHNbMl06IiI7aWYoIUkuaW5jbHVkZXMobGQodTMpKSlpZih0aGlzLnNoZWV0TmFtZT1uZnQodGhpcy5lbmdpbmUsdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt1M10uc2hlZXROYW1lKSwkTyh0aGlzLFI1ZSkpdGhpcy5zd2l0Y2hTaGVldCh0aGlzLnNoZWV0TmFtZSk7ZWxzZXt2''@;'; put 'put ''YXIgWj10aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJyYXkoKTtpZih0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb1JlcGxhY2VTaGVldENvbnRlbnQodGhpcy5zaGVldElkLFopKXtLTyh0aGlzLHVNLCEwKTt2YXIgdWU9dGhpcy5lbmdpbmUuc2V0U2hlZXRDb250ZW50KHRoaXMuc2hlZXRJZCx0''@;'; put 'put ''aGlzLmhvdC5nZXRTb3VyY2VEYXRhQXJyYXkoKSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHModWUpLEtPKHRoaXMsdU0sITEpfX19fSx7a2V5OiJvbk1vZGlmeURhdGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFope2lmKCJnZXQiPT09WiYmISRPKHRoaXMsdU0pJiZudWxsIT09dGhpcy5z''@;'; put 'put ''aGVldE5hbWUmJnRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKSl7dmFyIHVlPXRoaXMuaG90LnRvVmlzdWFsUm93KHkpO2lmKCF0aGlzLmlzRm9ybXVsYUNlbGxUeXBlKHVlLEMpJiYiQVJSQVkiIT09dGhpcy5nZXRDZWxsVHlwZSh1ZSxDKSlyZXR1cm4gdm9pZChK''@;'; put 'put ''VGUoSS52YWx1ZSkmJihJLnZhbHVlPWZ1bmN0aW9uIHJmdChkKXtyZXR1cm4gSlRlKGQpP2Quc3Vic3RyKDEpOmR9KEkudmFsdWUpKSk7dmFyIE5lPXtyb3c6eSxjb2w6dGhpcy50b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24oQyksc2hlZXQ6dGhpcy5zaGVldElkfSxLZT10aGlzLmVuZ2luZS5n''@;'; put 'put ''ZXRDZWxsVmFsdWUoTmUpLHB0PSJvYmplY3QiPT09RHooS2UpJiZudWxsIT09S2U/S2UudmFsdWU6S2U7SS52YWx1ZT1wdH19fSx7a2V5OiJvbk1vZGlmeVNvdXJjZURhdGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFope2lmKCJnZXQiPT09WiYmISRPKHRoaXMsdU0pJiZudWxsIT09dGhpcy5z''@;'; put 'put ''aGVldE5hbWUmJnRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKSl7dmFyIHVlPXRoaXMuaG90LnRvVmlzdWFsUm93KHkpLF9lPXRoaXMuaG90LnByb3BUb0NvbChDKTtpZighdGhpcy5pc0Zvcm11bGFDZWxsVHlwZSh1ZSxfZSkmJiJBUlJBWSIhPT10aGlzLmdldENl''@;'; put 'put ''bGxUeXBlKHVlLF9lKSlyZXR1cm47dmFyIEtlPXRoaXMuZW5naW5lLmdldFNoZWV0RGltZW5zaW9ucyh0aGlzLmVuZ2luZS5nZXRTaGVldElkKHRoaXMuc2hlZXROYW1lKSk7aWYoMCE9PUtlLndpZHRofHwwIT09S2UuaGVpZ2h0KXt2YXIgcHQ9e3Jvdzp5LGNvbDp0aGlzLnRvUGh5c2ljYWxD''@;'; put 'put ''b2x1bW5Qb3NpdGlvbihfZSksc2hlZXQ6dGhpcy5zaGVldElkfTtJLnZhbHVlPXRoaXMuZW5naW5lLmdldENlbGxTZXJpYWxpemVkKHB0KX19fX0se2tleToib25BZnRlclNldERhdGFBdENlbGwiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcztpZighcU8oQykpe3ZhciBaPVtdLHVl''@;'; put 'put ''PVtdLF9lPXRoaXMuZW5naW5lLmJhdGNoKGZ1bmN0aW9uKCl7eS5mb3JFYWNoKGZ1bmN0aW9uKEJlKXt2YXIgTmU9WE8oQmUsNCksS2U9TmVbMF0sT3Q9TmVbM10sJHQ9SS5ob3QucHJvcFRvQ29sKE5lWzFdKSxmbj1JLmhvdC50b1BoeXNpY2FsUm93KEtlKSxMbj1JLmhvdC50b1BoeXNpY2Fs''@;'; put 'put ''Q29sdW1uKCR0KSxpcj17cm93OmZuLGNvbDpMbixzaGVldDpJLnNoZWV0SWR9O251bGwhPT1mbiYmbnVsbCE9PUxuP0kuc3luY0NoYW5nZVdpdGhFbmdpbmUoS2UsJHQsT3QpOloucHVzaChbS2UsJHQsT3RdKSx1ZS5wdXNoKHthZGRyZXNzOmlyfSl9KX0pO1oubGVuZ3RoJiZ0aGlzLmhvdC5h''@;'; put 'put ''ZGRIb29rT25jZSgiYWZ0ZXJDaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIEJlPUkuZW5naW5lLmJhdGNoKGZ1bmN0aW9uKCl7Wi5mb3JFYWNoKGZ1bmN0aW9uKE5lKXt2YXIgS2U9WE8oTmUsMyk7SS5zeW5jQ2hhbmdlV2l0aEVuZ2luZShLZVswXSxLZVsxXSxLZVsyXSl9KX0pO0kucmVuZGVyRGVw''@;'; put 'put ''ZW5kZW50U2hlZXRzKEJlLCEwKX0pLHRoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKF9lKSx0aGlzLnZhbGlkYXRlRGVwZW5kZW50Q2VsbHMoX2UsdWUpfX19LHtrZXk6Im9uQWZ0ZXJTZXRTb3VyY2VEYXRhQXRDZWxsIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXM7aWYoIXFPKEMp''@;'; put 'put ''KXt2YXIgWj1bXSx1ZT1bXTt5LmZvckVhY2goZnVuY3Rpb24oX2Upe3ZhciBCZT1YTyhfZSw0KSxOZT1CZVswXSxwdD1CZVszXSxPdD1JLmhvdC5wcm9wVG9Db2woQmVbMV0pO2lmKHY0KE90KSl7dmFyICR0PXtyb3c6TmUsY29sOkkudG9QaHlzaWNhbENvbHVtblBvc2l0aW9uKE90KSxzaGVl''@;'; put 'put ''dDpJLnNoZWV0SWR9O2lmKCFJLmVuZ2luZS5pc0l0UG9zc2libGVUb1NldENlbGxDb250ZW50cygkdCkpcmV0dXJuIHZvaWQgbDEoIk5vdCBwb3NzaWJsZSB0byBzZXQgc291cmNlIGNlbGwgZGF0YSBhdCAiLmNvbmNhdChKU09OLnN0cmluZ2lmeSgkdCkpKTt1ZS5wdXNoKHthZGRyZXNzOiR0''@;'; put 'put ''fSksWi5wdXNoLmFwcGx5KFosZnVuY3Rpb24gaWZ0KGQpe3JldHVybiBmdW5jdGlvbiBsZnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gRDVlKGQpfShkKXx8ZnVuY3Rpb24gYWZ0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRv''@;'; put 'put ''cl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fCRUZShkKXx8ZnVuY3Rpb24gb2Z0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVy''@;'; put 'put ''YWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9KEkuZW5naW5lLnNldENlbGxDb250ZW50cygkdCxwdCkpKX19KSx0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhaKSx0aGlzLnZhbGlkYXRlRGVwZW5kZW50Q2VsbHMo''@;'; put 'put ''Wix1ZSl9fX0se2tleToib25CZWZvcmVDcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYobnVsbD09PXRoaXMuc2hlZXRJZHx8IXRoaXMuZW5naW5lLmRvZXNTaGVldEV4aXN0KHRoaXMuc2hlZXROYW1lKXx8IXRoaXMuZW5naW5lLmlzSXRQb3NzaWJsZVRvQWRkUm93cyh0aGlzLnNo''@;'; put 'put ''ZWV0SWQsW3RoaXMudG9QaHlzaWNhbFJvd1Bvc2l0aW9uKHkpLENdKSlyZXR1cm4hMX19LHtrZXk6Im9uQmVmb3JlQ3JlYXRlQ29sIix2YWx1ZTpmdW5jdGlvbih5LEMpe2lmKG51bGw9PT10aGlzLnNoZWV0SWR8fCF0aGlzLmVuZ2luZS5kb2VzU2hlZXRFeGlzdCh0aGlzLnNoZWV0TmFtZSl8''@;'; put 'put ''fCF0aGlzLmVuZ2luZS5pc0l0UG9zc2libGVUb0FkZENvbHVtbnModGhpcy5zaGVldElkLFt0aGlzLnRvUGh5c2ljYWxDb2x1bW5Qb3NpdGlvbih5KSxDXSkpcmV0dXJuITF9fSx7a2V5OiJvbkJlZm9yZVJlbW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBaPXRoaXM7cmV0dXJu''@;'; put 'put ''ITEhPT1JLmV2ZXJ5KGZ1bmN0aW9uKF9lKXtyZXR1cm4gWi5lbmdpbmUuaXNJdFBvc3NpYmxlVG9SZW1vdmVSb3dzKFouc2hlZXRJZCxbX2UsMV0pfSkmJnZvaWQgMH19LHtrZXk6Im9uQmVmb3JlUmVtb3ZlQ29sIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIFo9dGhpcztyZXR1cm4hMSE9''@;'; put 'put ''PUkuZXZlcnkoZnVuY3Rpb24oX2Upe3JldHVybiBaLmVuZ2luZS5pc0l0UG9zc2libGVUb1JlbW92ZUNvbHVtbnMoWi5zaGVldElkLFtfZSwxXSl9KSYmdm9pZCAwfX0se2tleToib25BZnRlckNyZWF0ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKCFxTyhJKSl7dmFyIFo9dGhpcy5l''@;'; put 'put ''bmdpbmUuYWRkUm93cyh0aGlzLnNoZWV0SWQsW3RoaXMudG9QaHlzaWNhbFJvd1Bvc2l0aW9uKHkpLENdKTt0aGlzLnJlbmRlckRlcGVuZGVudFNoZWV0cyhaKX19fSx7a2V5OiJvbkFmdGVyQ3JlYXRlQ29sIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7aWYoIXFPKEkpKXt2YXIgWj10aGlzLmVu''@;'; put 'put ''Z2luZS5hZGRDb2x1bW5zKHRoaXMuc2hlZXRJZCxbdGhpcy50b1BoeXNpY2FsQ29sdW1uUG9zaXRpb24oeSksQ10pO3RoaXMucmVuZGVyRGVwZW5kZW50U2hlZXRzKFopfX19LHtrZXk6Im9uQWZ0ZXJSZW1vdmVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFope3ZhciB1ZT10aGlzO2lmKCFx''@;'; put 'put ''TyhaKSl7dmFyIF9lPUkuc29ydCgpLnJldmVyc2UoKSxCZT10aGlzLmVuZ2luZS5iYXRjaChmdW5jdGlvbigpe19lLmZvckVhY2goZnVuY3Rpb24oTmUpe3VlLmVuZ2luZS5yZW1vdmVSb3dzKHVlLnNoZWV0SWQsW05lLDFdKX0pfSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoQmUpfX19''@;'; put 'put ''LHtrZXk6Im9uQWZ0ZXJSZW1vdmVDb2wiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFope3ZhciB1ZT10aGlzO2lmKCFxTyhaKSl7dmFyIF9lPUkuc29ydCgpLnJldmVyc2UoKSxCZT10aGlzLmVuZ2luZS5iYXRjaChmdW5jdGlvbigpe19lLmZvckVhY2goZnVuY3Rpb24oTmUpe3VlLmVuZ2luZS5y''@;'; put 'put ''ZW1vdmVDb2x1bW5zKHVlLnNoZWV0SWQsW05lLDFdKX0pfSk7dGhpcy5yZW5kZXJEZXBlbmRlbnRTaGVldHMoQmUpfX19LHtrZXk6Im9uQWZ0ZXJEZXRhY2hDaGlsZCIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBaLHVlPXRoaXM7S08odGhpcyx1TSwhMCk7dmFyIF9lPXRoaXMuaG90Lmdl''@;'; put 'put ''dFNvdXJjZURhdGFBcnJheShJLDAsSSsoKG51bGw9PT0oWj1DLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT1aP3ZvaWQgMDpaLmxlbmd0aCl8fDApLHRoaXMuaG90LmNvdW50U291cmNlQ29scygpKTtLTyh0aGlzLHVNLCExKSxfZS5mb3JFYWNoKGZ1bmN0aW9uKEJlLE5lKXtCZS5mb3JFYWNoKGZ1''@;'; put 'put ''bmN0aW9uKEtlLHB0KXt1ZS5lbmdpbmUuc2V0Q2VsbENvbnRlbnRzKHtjb2w6cHQscm93OkkrTmUsc2hlZXQ6dWUuc2hlZXRJZH0sW1tLZV1dKX0pfSl9fSx7a2V5OiJvbkVuZ2luZVZhbHVlc1VwZGF0ZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckZvcm11''@;'; put 'put ''bGFzVmFsdWVzVXBkYXRlIix5KX19LHtrZXk6Im9uRW5naW5lTmFtZWRFeHByZXNzaW9uc0FkZGVkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlck5hbWVkRXhwcmVzc2lvbkFkZGVkIix5LEMpfX0se2tleToib25FbmdpbmVOYW1lZEV4cHJlc3Npb25zUmVt''@;'; put 'put ''b3ZlZCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJOYW1lZEV4cHJlc3Npb25SZW1vdmVkIix5LEMpfX0se2tleToib25FbmdpbmVTaGVldEFkZGVkIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJTaGVldEFkZGVkIix5KX19''@;'; put 'put ''LHtrZXk6Im9uRW5naW5lU2hlZXRSZW5hbWVkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclNoZWV0UmVuYW1lZCIseSxDKX19LHtrZXk6Im9uRW5naW5lU2hlZXRSZW1vdmVkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaG90LnJ1bkhvb2tzKCJhZnRl''@;'; put 'put ''clNoZWV0UmVtb3ZlZCIseSxDKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHUzfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjYwfX1dKSxofShZcyk7ZnVuY3Rpb24gbkllKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5n''@;'; put 'put ''dGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gbW5lKGQpe3JldHVybiBmdW5jdGlvbiBMZnQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gQjVlKGQpfShkKXx8ZnVuY3Rpb24gRGZ0KGQp''@;'; put 'put ''e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fGZ1bmN0aW9uIElmdChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gQjVlKGQs''@;'; put 'put ''Zyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRz''@;'; put 'put ''Ij09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBCNWUoZCxnKX19KGQpfHxmdW5jdGlvbiBUZnQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5c''@;'; put 'put ''bkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBCNWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJh''@;'; put 'put ''eShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBQNWUoZCl7cmV0dXJuKFA1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVy''@;'; put 'put ''biBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFJmdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5v''@;'; put 'put ''dCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHJJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCks''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGNNKCl7cmV0dXJuIGNNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1QZnQoZyxoKTtpZih5KXt2YXIgQz1PYmpl''@;'; put 'put ''Y3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGNNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBQZnQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blBy''@;'; put 'put ''b3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVl2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIEY1ZShkLGcpe3JldHVybihGNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSko''@;'; put 'put ''ZCxnKX1mdW5jdGlvbiBOZnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1QNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5k''@;'; put 'put ''ZWZpbmVkIik7cmV0dXJuIEg1ZShkKX1mdW5jdGlvbiBINWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFl2KGQpe3Jl''@;'; put 'put ''dHVybihZdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIGlJZShkLGcsaCl7KGZ1bmN0aW9uIGpmdChkLGcpe2lmKGcu''@;'; put 'put ''aGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gdzQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gWmZ0KGQsZyl7cmV0dXJuIGcuZ2V0''@;'; put 'put ''P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxvSWUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gT3ooZCxnLGgpe3JldHVybiBmdW5jdGlvbiB6ZnQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0''@;'; put 'put ''byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLG9JZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gb0llKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3Rh''@;'; put 'put ''bmNlIik7cmV0dXJuIGcuZ2V0KGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVIaWRlQ29sdW1ucyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlckhpZGVDb2x1bW5zIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVVuaGlkZUNvbHVtbnMi''@;'; put 'put ''KSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJVbmhpZGVDb2x1bW5zIik7dmFyIE41ZT0iaGlkZGVuQ29sdW1ucyIsQmc9bmV3IFdlYWtNYXAsUGc9bmV3IFdlYWtNYXAsV2Z0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBGZnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYm''@;'; put 'put ''bnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1''@;'; put 'put ''cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRjVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSGZ0KGQpe3ZhciBnPWZ1bmN0aW9uIFZmdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3Qu''@;'; put 'put ''Y29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkp''@;'; put 'put ''LCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVl2KGQpO2lmKGcpe3ZhciBDPVl2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBO''@;'; put 'put ''ZnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXt2YXIgdjtSZnQodGhpcyxoKTtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTtyZXR1cm4gaUllKEg1ZSh2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQo''@;'; put 'put ''QykpKSxCZyx7d3JpdGFibGU6ITAsdmFsdWU6e319KSxpSWUoSDVlKHYpLFBnLHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksdn1yZXR1cm4gZnVuY3Rpb24gQmZ0KGQsZyxoKXtnJiZySWUoZC5wcm90b3R5cGUsZyksaCYmckllKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3Rv''@;'; put 'put ''dHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuaG90LmdldFNldHRpbmdzKClbTjVlXX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO2lmKCF0aGlzLmVuYWJsZWQpe3Zh''@;'; put 'put ''ciBDPXRoaXMuaG90LmdldFNldHRpbmdzKClbTjVlXTt4bChDKSYmKE96KHRoaXMsQmcsQyksYTEoQy5jb3B5UGFzdGVFbmFibGVkKSYmKEMuY29weVBhc3RlRW5hYmxlZD0hMCkpLE96KHRoaXMsUGcsbmV3IFdlZSksdzQodGhpcyxQZykuYWRkTG9jYWxIb29rKCJpbml0IixmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiB5Lm9uTWFwSW5pdCgpfSksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhpcy5wbHVnaW5OYW1lLHc0KHRoaXMsUGcpKSx0aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVy''@;'; put 'put ''Q29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q2VsbE1ldGEiLGZ1bmN0aW9uKEksWix1ZSl7cmV0dXJuIHkub25BZnRlckdldENlbGxNZXRhKEksWix1ZSl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIixm''@;'; put 'put ''dW5jdGlvbihJLFope3JldHVybiB5Lm9uTW9kaWZ5Q29sV2lkdGgoSSxaKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRDb2xIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckdldENvbEhlYWRlci5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvcHlh''@;'; put 'put ''YmxlUmFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uTW9kaWZ5Q29weWFibGVSYW5nZShJKX0pLGNNKFl2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVn''@;'; put 'put ''aW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLGNNKFl2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1''@;'; put 'put ''Z2luTmFtZSksT3oodGhpcyxCZyx7fSksY00oWXYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMucmVzZXRDZWxsc01ldGEoKX19LHtrZXk6InNob3dDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5nZXRIaWRkZW5D''@;'; put 'put ''b2x1bW5zKCksWj10aGlzLmlzVmFsaWRDb25maWcoeSksdWU9SSxfZT13NCh0aGlzLFBnKS5nZXRWYWx1ZXMoKS5zbGljZSgpLEJlPXkubGVuZ3RoPjA7WiYmQmUmJihVcih5Lm1hcChmdW5jdGlvbihwdCl7cmV0dXJuIEMuaG90LnRvUGh5c2ljYWxDb2x1bW4ocHQpfSksZnVuY3Rpb24ocHQp''@;'; put 'put ''e19lW3B0XT0hMX0pLHVlPVN1KF9lLGZ1bmN0aW9uKHB0LE90LCR0KXtyZXR1cm4gT3QmJnB0LnB1c2goQy5ob3QudG9WaXN1YWxDb2x1bW4oJHQpKSxwdH0sW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbmhpZGVDb2x1bW5zIixJLHVlLFomJkJlKSYmKFomJkJlJiZ3NCh0''@;'; put 'put ''aGlzLFBnKS5zZXRWYWx1ZXMoX2UpLHRoaXMuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVW5oaWRlQ29sdW1ucyIsSSx1ZSxaJiZCZSxaJiZ1ZS5sZW5ndGg8SS5sZW5ndGgpKX19LHtrZXk6InNob3dDb2x1bW4iLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KCl7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy5zaG93Q29sdW1ucyhDKX19LHtrZXk6ImhpZGVDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5nZXRIaWRkZW5Db2x1''@;'; put 'put ''bW5zKCksWj10aGlzLmlzVmFsaWRDb25maWcoeSksdWU9STtaJiYodWU9QXJyYXkuZnJvbShuZXcgU2V0KEkuY29uY2F0KHkpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUhpZGVDb2x1bW5zIixJLHVlLFopJiYoWiYmdGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24o''@;'; put 'put ''KXtVcih5LGZ1bmN0aW9uKEJlKXt3NChDLFBnKS5zZXRWYWx1ZUF0SW5kZXgoQy5ob3QudG9QaHlzaWNhbENvbHVtbihCZSksITApfSl9LCEwKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJIaWRlQ29sdW1ucyIsSSx1ZSxaLFomJnVlLmxlbmd0aD5JLmxlbmd0aCkpfX0se2tleToiaGlkZUNv''@;'; put 'put ''bHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLmhpZGVDb2x1bW5zKEMpfX0se2tleToiZ2V0SGlkZGVuQ29sdW1ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10''@;'; put 'put ''aGlzO3JldHVybiBPbCh3NCh0aGlzLFBnKS5nZXRIaWRkZW5JbmRleGVzKCksZnVuY3Rpb24oQyl7cmV0dXJuIHkuaG90LnRvVmlzdWFsQ29sdW1uKEMpfSl9fSx7a2V5OiJpc0hpZGRlbiIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHc0KHRoaXMsUGcpLmdldFZhbHVlQXRJbmRleCh0aGlz''@;'; put 'put ''LmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpKXx8ITF9fSx7a2V5OiJpc1ZhbGlkQ29uZmlnIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5jb3VudENvbHMoKTtyZXR1cm4hIShBcnJheS5pc0FycmF5KHkpJiZ5Lmxlbmd0aD4wKSYmeS5ldmVyeShmdW5jdGlvbihJKXtyZXR1cm4g''@;'; put 'put ''TnVtYmVyLmlzSW50ZWdlcihJKSYmST49MCYmSTxDfSl9fSx7a2V5OiJyZXNldENlbGxzTWV0YSIsdmFsdWU6ZnVuY3Rpb24oKXtVcih0aGlzLmhvdC5nZXRDZWxsc01ldGEoKSxmdW5jdGlvbih5KXt5JiYoeS5za2lwQ29sdW1uT25QYXN0ZT0hMSl9KX19LHtrZXk6Im9uTW9kaWZ5Q29sV2lk''@;'; put 'put ''dGgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHRoaXMuaXNIaWRkZW4oQyk/MDp3NCh0aGlzLEJnKS5pbmRpY2F0b3JzJiYodGhpcy5pc0hpZGRlbihDKzEpfHx0aGlzLmlzSGlkZGVuKEMtMSkpJiYibnVtYmVyIj09dHlwZW9mIHkmJnRoaXMuaG90Lmhhc0NvbEhlYWRlcnMoKT95KzE1''@;'; put 'put ''OnZvaWQgMH19LHtrZXk6Im9uQWZ0ZXJHZXRDZWxsTWV0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe2lmKCExPT09dzQodGhpcyxCZykuY29weVBhc3RlRW5hYmxlZCYmdGhpcy5pc0hpZGRlbihDKSYmKEkuc2tpcENvbHVtbk9uUGFzdGU9ITApLHRoaXMuaXNIaWRkZW4oQy0xKSlJLmNsYXNz''@;'; put 'put ''TmFtZT1JLmNsYXNzTmFtZXx8IiIsLTE9PT1JLmNsYXNzTmFtZS5pbmRleE9mKCJhZnRlckhpZGRlbkNvbHVtbiIpJiYoSS5jbGFzc05hbWUrPSIgYWZ0ZXJIaWRkZW5Db2x1bW4iKTtlbHNlIGlmKEkuY2xhc3NOYW1lKXt2YXIgWj1JLmNsYXNzTmFtZS5zcGxpdCgiICIpO2lmKFoubGVuZ3Ro''@;'; put 'put ''PjApe3ZhciB1ZT1aLmluZGV4T2YoImFmdGVySGlkZGVuQ29sdW1uIik7dWU+LTEmJlouc3BsaWNlKHVlLDEpLEkuY2xhc3NOYW1lPVouam9pbigiICIpfX19fSx7a2V5OiJvbk1vZGlmeUNvcHlhYmxlUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYodzQodGhpcyxCZyku''@;'; put 'put ''Y29weVBhc3RlRW5hYmxlZClyZXR1cm4geTt2YXIgST1bXSxaPWZ1bmN0aW9uKF9lLEJlLE5lLEtlKXtJLnB1c2goe3N0YXJ0Um93Ol9lLGVuZFJvdzpCZSxzdGFydENvbDpOZSxlbmRDb2w6S2V9KX07cmV0dXJuIFVyKHksZnVuY3Rpb24odWUpe3ZhciBfZT0hMCxCZT0wO2lhKHVlLnN0YXJ0''@;'; put 'put ''Q29sLHVlLmVuZENvbCxmdW5jdGlvbihOZSl7Qy5pc0hpZGRlbihOZSk/KF9lfHxaKHVlLnN0YXJ0Um93LHVlLmVuZFJvdyxCZSxOZS0xKSxfZT0hMCk6KF9lJiYoQmU9TmUpLE5lPT09dWUuZW5kQ29sJiZaKHVlLnN0YXJ0Um93LHVlLmVuZFJvdyxCZSxOZSksX2U9ITEpfSl9KSxJfX0se2tl''@;'; put 'put ''eToib25BZnRlckdldENvbEhlYWRlciIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZih3NCh0aGlzLEJnKS5pbmRpY2F0b3JzJiYhKHk8MCkpe3ZhciBJPVtdO3k+PTEmJnRoaXMuaXNIaWRkZW4oeS0xKSYmSS5wdXNoKCJhZnRlckhpZGRlbkNvbHVtbiIpLHk8dGhpcy5ob3QuY291bnRDb2xzKCkt''@;'; put 'put ''MSYmdGhpcy5pc0hpZGRlbih5KzEpJiZJLnB1c2goImJlZm9yZUhpZGRlbkNvbHVtbiIpLE8wKEMsSSl9fX0se2tleToib25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZTpXbH0sZnVuY3Rpb24geGZ0KGQpe3JldHVy''@;'; put 'put ''bntrZXk6ImhpZGRlbl9jb2x1bW5zX2hpZGUiLG5hbWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNlbGVjdGVkTGFzdCgpLHY9MDtpZihBcnJheS5pc0FycmF5KGgpKXt2YXIgeT1mdW5jdGlvbiBDZnQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gRWZ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkp''@;'; put 'put ''cmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBNZnQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2Fs''@;'; put 'put ''bChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9''@;'; put 'put ''fShkLGcpfHxmdW5jdGlvbiBTZnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG5JZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3Ry''@;'; put 'put ''dWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gbkllKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBrZnQoKXt0''@;'; put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSho''@;'; put 'put ''LDQpO3lbMV0teVszXSE9MCYmKHY9MSl9cmV0dXJuIHRoaXMuZ2V0VHJhbnNsYXRlZFBocmFzZShscGUsdil9LGNhbGxiYWNrOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPXRoaXMuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSx2PWguZnJvbSx5PWgudG8sQz1NYXRoLm1heChNYXRoLm1pbih2LmNvbCx5''@;'; put 'put ''LmNvbCksMCksST1NYXRoLm1heCh2LmNvbCx5LmNvbCksWj1bXSx1ZT1DO3VlPD1JO3VlKz0xKVoucHVzaCh1ZSk7ZC5oaWRlQ29sdW1ucyhaKTt2YXIgQmU9dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoWltaLmxlbmd0aC0xXSwxLCEwKTtOdW1iZXIu''@;'; put 'put ''aXNJbnRlZ2VyKEJlKSYmQmU+PTA/dGhpcy5zZWxlY3RDb2x1bW5zKEJlKTp0aGlzLmRlc2VsZWN0Q2VsbCgpLHRoaXMucmVuZGVyKCksdGhpcy52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LGRpc2FibGVkOiExLGhpZGRlbjpmdW5jdGlvbigpe3JldHVybiEodGhpcy5zZWxlY3Rpb24u''@;'; put 'put ''aXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVyKCl8fHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpKX19fSh0aGlzKSxmdW5jdGlvbiBPZnQoZCl7dmFyIGc9W107cmV0dXJue2tleToiaGlkZGVuX2NvbHVtbnNfc2hvdyIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRy''@;'; put 'put ''YW5zbGF0ZWRQaHJhc2Uoc3BlLGcubGVuZ3RoPjE/MTowKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgdix5O2lmKDAhPT1nLmxlbmd0aCl7dmFyIEM9Z1swXSxJPWdbZy5sZW5ndGgtMV07Qz1udWxsIT09KHY9dGhpcy5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5k''@;'; put 'put ''ZXgoQy0xLC0xKSkmJnZvaWQgMCE9PXY/djowLEk9bnVsbCE9PSh5PXRoaXMuY29sdW1uSW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEkrMSwxKSkmJnZvaWQgMCE9PXk/eTp0aGlzLmNvdW50Q29scygpLTEsZC5zaG93Q29sdW1ucyhnKSx0aGlzLnJlbmRlcigpLHRoaXMu''@;'; put 'put ''dmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApLEktQysxPT09dGhpcy5jb3VudENvbHMoKXx8dGhpcy5zZWxlY3RDb2x1bW5zKEMsSSl9fSxkaXNhYmxlZDohMSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgdj10aGlzLHk9T2woZC5nZXRIaWRkZW5Db2x1bW5zKCksZnVuY3Rpb24oaXIpe3JldHVy''@;'; put 'put ''biB2LnRvUGh5c2ljYWxDb2x1bW4oaXIpfSk7aWYoIXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpJiYhdGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29ybmVyKCl8fHkubGVuZ3RoPDEpcmV0dXJuITA7Zy5sZW5ndGg9MDt2YXIgQz10aGlzLmdldFNlbGVjdGVk''@;'; put 'put ''UmFuZ2VMYXN0KCksST1DLmdldFRvcFN0YXJ0Q29ybmVyKCkuY29sLFo9Qy5nZXRCb3R0b21FbmRDb3JuZXIoKS5jb2wsdWU9dGhpcy5jb2x1bW5JbmRleE1hcHBlcixfZT11ZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkpLEJlPXVlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5k''@;'; put 'put ''ZXgoWiksTmU9dWUuZ2V0Tm90VHJpbW1lZEluZGV4ZXMoKSxLZT1bXTtpZihJIT09Wil7aWYoWi1JKzE+QmUtX2UrMSl7dmFyICR0PU5lLnNsaWNlKEksWisxKTtLZS5wdXNoLmFwcGx5KEtlLG1uZSgkdC5maWx0ZXIoZnVuY3Rpb24oaXIpe3JldHVybiB5LmluY2x1ZGVzKGlyKX0pKSl9fWVs''@;'; put 'put ''c2UgaWYoMD09PV9lJiZfZTxJKUtlLnB1c2guYXBwbHkoS2UsbW5lKE5lLnNsaWNlKDAsSSkpKTtlbHNlIGlmKG51bGw9PT1fZSlLZS5wdXNoLmFwcGx5KEtlLG1uZShOZS5zbGljZSgwLHRoaXMuY291bnRDb2xzKCkpKSk7ZWxzZXt2YXIgZm49dGhpcy5jb3VudENvbHMoKS0xO0JlPT09dWUu''@;'; put 'put ''Z2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh1ZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoZm4sLTEpKSYmZm4+WiYmS2UucHVzaC5hcHBseShLZSxtbmUoTmUuc2xpY2UoWisxKSkpfXJldHVybiBVcihLZSxmdW5jdGlvbihpcil7Zy5wdXNoKHYudG9WaXN1YWxDb2x1bW4oaXIpKX0p''@;'; put 'put ''LDA9PT1nLmxlbmd0aH19fSh0aGlzKSl9fSx7a2V5OiJvbk1hcEluaXQiLHZhbHVlOmZ1bmN0aW9uKCl7QXJyYXkuaXNBcnJheSh3NCh0aGlzLEJnKS5jb2x1bW5zKSYmdGhpcy5oaWRlQ29sdW1ucyh3NCh0aGlzLEJnKS5jb2x1bW5zKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KCl7T3oodGhpcyxCZyxudWxsKSxPeih0aGlzLFBnLG51bGwpLGNNKFl2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE41ZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIDMxMH19XSksaH0oWXMpO2Z1bmN0aW9uIGFJZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHZuZShkKXtyZXR1cm4gZnVuY3Rp''@;'; put 'put ''b24gdGh0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIFY1ZShkKX0oZCl8fGZ1bmN0aW9uIGVodChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9''@;'; put 'put ''KGQpfHxmdW5jdGlvbiBxZnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIFY1ZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0''@;'; put 'put ''b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gVjVlKGQsZyl9fShkKXx8ZnVuY3Rpb24gJGZ0KCl7dGhyb3cg''@;'; put 'put ''bmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gVjVl''@;'; put 'put ''KGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gajVlKGQpe3JldHVybihqNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVv''@;'; put 'put ''ZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1m''@;'; put 'put ''dW5jdGlvbiByaHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBsSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9''@;'; put 'put ''di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBmTSgpe3JldHVybiBmTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1Jl''@;'; put 'put ''ZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9b2h0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxmTS5hcHBseSh0''@;'; put 'put ''aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gb2h0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1VdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBaNWUoZCxnKXtyZXR1cm4oWjVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmpl''@;'; put 'put ''Y3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gc2h0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ajVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiB6NWUoZCl9ZnVuY3Rpb24gejVlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRp''@;'; put 'put ''YWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBVdihkKXtyZXR1cm4oVXY9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0''@;'; put 'put ''UHJvdG90eXBlT2YoaCl9KShkKX1mdW5jdGlvbiBzSWUoZCxnLGgpeyhmdW5jdGlvbiBjaHQoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxn''@;'; put 'put ''LnNldChkLGgpfWZ1bmN0aW9uIEZwKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGZodChkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsdUllKGQsZywiZ2V0IikpfWZ1bmN0aW9uIFJ6KGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gaGh0KGQsZyxoKXtpZihnLnNldClnLnNl''@;'; put 'put ''dC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7Zy52YWx1ZT1ofX0oZCx1SWUoZCxnLCJzZXQiKSxoKSxofWZ1bmN0aW9uIHVJZShkLGcsaCl7aWYoIWcuaGFzKGQpKXRo''@;'; put 'put ''cm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2grIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBnLmdldChkKX16by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlSGlkZVJvd3MiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJI''@;'; put 'put ''aWRlUm93cyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVVbmhpZGVSb3dzIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyVW5oaWRlUm93cyIpO3ZhciBHNWU9ImhpZGRlblJvd3MiLFF2PW5ldyBXZWFrTWFwLEZnPW5ldyBXZWFrTWFwLHBodD1mdW5jdGlv''@;'; put 'put ''bihkKXshZnVuY3Rpb24gYWh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnBy''@;'; put 'put ''b3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlo1ZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGxodChkKXt2YXIgZz1mdW5jdGlv''@;'; put 'put ''biB1aHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9m''@;'; put 'put ''LmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1VdihkKTtpZihnKXt2YXIgQz1Vdih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJn''@;'; put 'put ''dW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gc2h0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7dmFyIHY7cmh0KHRoaXMsaCk7Zm9yKHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNb''@;'; put 'put ''SV07cmV0dXJuIHNJZSh6NWUodj1nLmNhbGwuYXBwbHkoZyxbdGhpc10uY29uY2F0KEMpKSksUXYse3dyaXRhYmxlOiEwLHZhbHVlOnt9fSksc0llKHo1ZSh2KSxGZyx7d3JpdGFibGU6ITAsdmFsdWU6bnVsbH0pLHZ9cmV0dXJuIGZ1bmN0aW9uIGlodChkLGcsaCl7ZyYmbEllKGQucHJvdG90''@;'; put 'put ''eXBlLGcpLGgmJmxJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW0c1ZV19fSx7a2V5OiJlbmFibGVQbHVnaW4i''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW0c1ZV07eGwoQykmJihSeih0aGlzLFF2LEMpLGExKEMuY29weVBhc3RlRW5hYmxlZCkmJihDLmNvcHlQYXN0ZUVuYWJsZWQ9ITApKSxSeih0aGlzLEZnLG5l''@;'; put 'put ''dyBXZWUpLEZwKHRoaXMsRmcpLmFkZExvY2FsSG9vaygiaW5pdCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1hcEluaXQoKX0pLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSxGcCh0aGlzLEZnKSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRN''@;'; put 'put ''ZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbihJLFosdWUpe3JldHVybiB5Lm9uQWZ0ZXJHZXRDZWxs''@;'; put 'put ''TWV0YShJLFosdWUpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlSb3dIZWlnaHQiLGZ1bmN0aW9uKEksWil7cmV0dXJuIHkub25Nb2RpZnlSb3dIZWlnaHQoSSxaKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJHZXRSb3dIZWFkZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckdldFJvd0hlYWRl''@;'; put 'put ''ci5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvcHlhYmxlUmFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB5Lm9uTW9kaWZ5Q29weWFibGVSYW5nZShJKX0pLGZNKFV2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX19LHtrZXk6''@;'; put 'put ''InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLGZNKFV2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0''@;'; put 'put ''aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSksUnoodGhpcyxRdix7fSksZk0oVXYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpLHRoaXMucmVzZXRDZWxsc01ldGEoKX19LHtrZXk6InNob3dSb3dzIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9dGhpcy5nZXRIaWRkZW5Sb3dzKCksWj10aGlzLmlzVmFsaWRDb25maWcoeSksdWU9SSxfZT1GcCh0aGlzLEZnKS5nZXRWYWx1ZXMoKS5zbGljZSgpLEJlPXkubGVuZ3RoPjA7WiYmQmUmJihVcih5Lm1hcChmdW5jdGlvbihwdCl7cmV0dXJuIEMu''@;'; put 'put ''aG90LnRvUGh5c2ljYWxSb3cocHQpfSksZnVuY3Rpb24ocHQpe19lW3B0XT0hMX0pLHVlPVN1KF9lLGZ1bmN0aW9uKHB0LE90LCR0KXtyZXR1cm4gT3QmJnB0LnB1c2goQy5ob3QudG9WaXN1YWxSb3coJHQpKSxwdH0sW10pKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVVbmhpZGVS''@;'; put 'put ''b3dzIixJLHVlLFomJkJlKSYmKFomJkJlJiZGcCh0aGlzLEZnKS5zZXRWYWx1ZXMoX2UpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlclVuaGlkZVJvd3MiLEksdWUsWiYmQmUsWiYmdWUubGVuZ3RoPEkubGVuZ3RoKSl9fSx7a2V5OiJzaG93Um93Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIg''@;'; put 'put ''eT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJndW1lbnRzW0ldO3RoaXMuc2hvd1Jvd3MoQyl9fSx7a2V5OiJoaWRlUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPXRoaXMuZ2V0SGlkZGVuUm93cygpLFo9dGhpcy5pc1ZhbGlk''@;'; put 'put ''Q29uZmlnKHkpLHVlPUk7WiYmKHVlPUFycmF5LmZyb20obmV3IFNldChJLmNvbmNhdCh5KSkpKSwhMSE9PXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVIaWRlUm93cyIsSSx1ZSxaKSYmKFomJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoeSxmdW5jdGlvbihCZSl7RnAo''@;'; put 'put ''QyxGZykuc2V0VmFsdWVBdEluZGV4KEMuaG90LnRvUGh5c2ljYWxSb3coQmUpLCEwKX0pfSwhMCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVySGlkZVJvd3MiLEksdWUsWixaJiZ1ZS5sZW5ndGg+SS5sZW5ndGgpKX19LHtrZXk6ImhpZGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB5''@;'; put 'put ''PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07dGhpcy5oaWRlUm93cyhDKX19LHtrZXk6ImdldEhpZGRlblJvd3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztyZXR1cm4gT2woRnAodGhpcyxGZykuZ2V0SGlkZGVuSW5k''@;'; put 'put ''ZXhlcygpLGZ1bmN0aW9uKEMpe3JldHVybiB5LmhvdC50b1Zpc3VhbFJvdyhDKX0pfX0se2tleToiaXNIaWRkZW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiBGcCh0aGlzLEZnKS5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSl8fCExfX0se2tleToiaXNWYWxp''@;'; put 'put ''ZENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuY291bnRSb3dzKCk7cmV0dXJuISEoQXJyYXkuaXNBcnJheSh5KSYmeS5sZW5ndGg+MCkmJnkuZXZlcnkoZnVuY3Rpb24oSSl7cmV0dXJuIE51bWJlci5pc0ludGVnZXIoSSkmJkk+PTAmJkk8Q30pfX0se2tleToicmVz''@;'; put 'put ''ZXRDZWxsc01ldGEiLHZhbHVlOmZ1bmN0aW9uKCl7VXIodGhpcy5ob3QuZ2V0Q2VsbHNNZXRhKCksZnVuY3Rpb24oeSl7eSYmKHkuc2tpcFJvd09uUGFzdGU9ITEpfSl9fSx7a2V5OiJvbk1vZGlmeVJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5pc0hpZGRlbihD''@;'; put 'put ''KT8wOnl9fSx7a2V5OiJvbkFmdGVyR2V0Q2VsbE1ldGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXtpZighMT09PUZwKHRoaXMsUXYpLmNvcHlQYXN0ZUVuYWJsZWQmJnRoaXMuaXNIaWRkZW4oeSkmJihJLnNraXBSb3dPblBhc3RlPSEwKSx0aGlzLmlzSGlkZGVuKHktMSkpSS5jbGFzc05hbWU9''@;'; put 'put ''SS5jbGFzc05hbWV8fCIiLC0xPT09SS5jbGFzc05hbWUuaW5kZXhPZigiYWZ0ZXJIaWRkZW5Sb3ciKSYmKEkuY2xhc3NOYW1lKz0iIGFmdGVySGlkZGVuUm93Iik7ZWxzZSBpZihJLmNsYXNzTmFtZSl7dmFyIFo9SS5jbGFzc05hbWUuc3BsaXQoIiAiKTtpZihaLmxlbmd0aD4wKXt2YXIgdWU9''@;'; put 'put ''Wi5pbmRleE9mKCJhZnRlckhpZGRlblJvdyIpO3VlPi0xJiZaLnNwbGljZSh1ZSwxKSxJLmNsYXNzTmFtZT1aLmpvaW4oIiAiKX19fX0se2tleToib25Nb2RpZnlDb3B5YWJsZVJhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO2lmKEZwKHRoaXMsUXYpLmNvcHlQYXN0ZUVuYWJs''@;'; put 'put ''ZWQpcmV0dXJuIHk7dmFyIEk9W10sWj1mdW5jdGlvbihfZSxCZSxOZSxLZSl7SS5wdXNoKHtzdGFydFJvdzpfZSxlbmRSb3c6QmUsc3RhcnRDb2w6TmUsZW5kQ29sOktlfSl9O3JldHVybiBVcih5LGZ1bmN0aW9uKHVlKXt2YXIgX2U9ITAsQmU9MDtpYSh1ZS5zdGFydFJvdyx1ZS5lbmRSb3cs''@;'; put 'put ''ZnVuY3Rpb24oTmUpe0MuaXNIaWRkZW4oTmUpPyhfZXx8WihCZSxOZS0xLHVlLnN0YXJ0Q29sLHVlLmVuZENvbCksX2U9ITApOihfZSYmKEJlPU5lKSxOZT09PXVlLmVuZFJvdyYmWihCZSxOZSx1ZS5zdGFydENvbCx1ZS5lbmRDb2wpLF9lPSExKX0pfSksSX19LHtrZXk6Im9uQWZ0ZXJHZXRS''@;'; put 'put ''b3dIZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYoRnAodGhpcyxRdikuaW5kaWNhdG9ycyYmISh5PDApKXt2YXIgST1bXTt5Pj0xJiZ0aGlzLmlzSGlkZGVuKHktMSkmJkkucHVzaCgiYWZ0ZXJIaWRkZW5Sb3ciKSx5PHRoaXMuaG90LmNvdW50Um93cygpLTEmJnRoaXMuaXNIaWRkZW4o''@;'; put 'put ''eSsxKSYmSS5wdXNoKCJiZWZvcmVIaWRkZW5Sb3ciKSxPMChDLEkpfX19LHtrZXk6Im9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXt5Lml0ZW1zLnB1c2goe25hbWU6V2x9LGZ1bmN0aW9uIEtmdChkKXtyZXR1cm57a2V5OiJoaWRkZW5fcm93c19o''@;'; put 'put ''aWRlIixuYW1lOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRTZWxlY3RlZExhc3QoKSx2PTA7aWYoQXJyYXkuaXNBcnJheShoKSl7dmFyIHk9ZnVuY3Rpb24gWWZ0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFhmdChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24g''@;'; put 'put ''SmZ0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5k''@;'; put 'put ''b25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gUWZ0KGQs''@;'; put 'put ''Zyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBhSWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8''@;'; put 'put ''IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGFJZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gVWZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52''@;'; put 'put ''YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0oaCwzKTt5WzBdLXlbMl0hPTAmJih2PTEp''@;'; put 'put ''fXJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UodXBlLHYpfSxjYWxsYmFjazpmdW5jdGlvbigpe2Zvcih2YXIgaD10aGlzLmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksdj1oLmZyb20seT1oLnRvLEM9TWF0aC5tYXgoTWF0aC5taW4odi5yb3cseS5yb3cpLDApLEk9TWF0aC5tYXgodi5y''@;'; put 'put ''b3cseS5yb3cpLFo9W10sdWU9Qzt1ZTw9STt1ZSs9MSlaLnB1c2godWUpO2QuaGlkZVJvd3MoWik7dmFyIEJlPXRoaXMucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KFpbWi5sZW5ndGgtMV0sMSwhMCk7TnVtYmVyLmlzSW50ZWdlcihCZSkmJkJlPj0wP3RoaXMuc2Vs''@;'; put 'put ''ZWN0Um93cyhCZSk6dGhpcy5kZXNlbGVjdENlbGwoKSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxkaXNhYmxlZDohMSxoaWRkZW46ZnVuY3Rpb24oKXtyZXR1cm4hKHRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpfHx0aGlzLnNl''@;'; put 'put ''bGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKSl9fX0odGhpcyksZnVuY3Rpb24gbmh0KGQpe3ZhciBnPVtdO3JldHVybntrZXk6ImhpZGRlbl9yb3dzX3Nob3ciLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKGNwZSxnLmxlbmd0aD4xPzE6MCl9LGNh''@;'; put 'put ''bGxiYWNrOmZ1bmN0aW9uKCl7dmFyIHYseTtpZigwIT09Zy5sZW5ndGgpe3ZhciBDPWdbMF0sST1nW2cubGVuZ3RoLTFdO0M9bnVsbCE9PSh2PXRoaXMucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEMtMSwtMSkpJiZ2b2lkIDAhPT12P3Y6MCxJPW51bGwhPT0oeT10''@;'; put 'put ''aGlzLnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChJKzEsMSkpJiZ2b2lkIDAhPT15P3k6dGhpcy5jb3VudFJvd3MoKS0xLGQuc2hvd1Jvd3MoZyksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKSxJLUMrMT09PXRoaXMuY291bnRS''@;'; put 'put ''b3dzKCl8fHRoaXMuc2VsZWN0Um93cyhDLEkpfX0sZGlzYWJsZWQ6ITEsaGlkZGVuOmZ1bmN0aW9uKCl7dmFyIHY9dGhpcyx5PU9sKGQuZ2V0SGlkZGVuUm93cygpLGZ1bmN0aW9uKGlyKXtyZXR1cm4gdi50b1BoeXNpY2FsUm93KGlyKX0pO2lmKCF0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVk''@;'; put 'put ''QnlSb3dIZWFkZXIoKSYmIXRoaXMuc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvcm5lcigpfHx5Lmxlbmd0aDwxKXJldHVybiEwO2cubGVuZ3RoPTA7dmFyIEM9dGhpcy5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLEk9Qy5nZXRUb3BTdGFydENvcm5lcigpLnJvdyxaPUMuZ2V0Qm90dG9tRW5kQ29y''@;'; put 'put ''bmVyKCkucm93LHVlPXRoaXMucm93SW5kZXhNYXBwZXIsX2U9dWUuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJKSxCZT11ZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KFopLE5lPXVlLmdldE5vdFRyaW1tZWRJbmRleGVzKCksS2U9W107aWYoSSE9PVope2lmKFotSSsxPkJl''@;'; put 'put ''LV9lKzEpe3ZhciAkdD1OZS5zbGljZShJLForMSk7S2UucHVzaC5hcHBseShLZSx2bmUoJHQuZmlsdGVyKGZ1bmN0aW9uKGlyKXtyZXR1cm4geS5pbmNsdWRlcyhpcil9KSkpfX1lbHNlIGlmKDA9PT1fZSYmX2U8SSlLZS5wdXNoLmFwcGx5KEtlLHZuZShOZS5zbGljZSgwLEkpKSk7ZWxzZSBp''@;'; put 'put ''ZihudWxsPT09X2UpS2UucHVzaC5hcHBseShLZSx2bmUoTmUuc2xpY2UoMCx0aGlzLmNvdW50Um93cygpKSkpO2Vsc2V7dmFyIGZuPXRoaXMuY291bnRSb3dzKCktMTtCZT09PXVlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgodWUuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KGZuLC0x''@;'; put 'put ''KSkmJmZuPlomJktlLnB1c2guYXBwbHkoS2Usdm5lKE5lLnNsaWNlKForMSkpKX1yZXR1cm4gVXIoS2UsZnVuY3Rpb24oaXIpe2cucHVzaCh2LnRvVmlzdWFsUm93KGlyKSl9KSwwPT09Zy5sZW5ndGh9fX0odGhpcykpfX0se2tleToib25NYXBJbml0Iix2YWx1ZTpmdW5jdGlvbigpe0FycmF5''@;'; put 'put ''LmlzQXJyYXkoRnAodGhpcyxRdikucm93cykmJnRoaXMuaGlkZVJvd3MoRnAodGhpcyxRdikucm93cyl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe1J6KHRoaXMsUXYsbnVsbCksUnoodGhpcyxGZyxudWxsKSxmTShVdihoLnByb3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNh''@;'; put 'put ''bGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBHNWV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAzMjB9fV0pLGh9KFlzKTtmdW5jdGlvbiBjSWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQu''@;'; put 'put ''bGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBmSWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1''@;'; put 'put ''cm4gdn1mdW5jdGlvbiBXNWUoZCl7cmV0dXJuKFc1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGhJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29u''@;'; put 'put ''ZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGVSKCl7cmV0dXJuIGVSPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0''@;'; put 'put ''aW9uKGcsaCx2KXt2YXIgeT1UaHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGVSLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlv''@;'; put 'put ''biBUaHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPVd3KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIFk1ZShkLGcpe3JldHVybihZNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5k''@;'; put 'put ''KCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBMaHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1XNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQg''@;'; put 'put ''Y29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGRJZShkKX1mdW5jdGlvbiBkSWUoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24n''@;'; put 'put ''dCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIFd3KGQpe3JldHVybihXdz1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpv''@;'; put 'put ''LmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb2x1bW5GcmVlemUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJDb2x1bW5GcmVlemUiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYmVmb3JlQ29sdW1uVW5mcmVlemUiKSx6by5nZXRTaW5nbGV0b24oKS5y''@;'; put 'put ''ZWdpc3RlcigiYWZ0ZXJDb2x1bW5VbmZyZWV6ZSIpO3ZhciBwSWU9Im1hbnVhbENvbHVtbkZyZWV6ZSIsQno9bmV3IFdlYWtNYXAsQmh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBJaHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; put 'put ''U3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmWTVlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gRGh0KGQpe3ZhciBnPWZ1bmN0aW9uIE9odCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5z''@;'; put 'put ''aGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1''@;'; put 'put ''cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVd3KGQpO2lmKGcpe3ZhciBDPVd3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBMaHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7''@;'; put 'put ''dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIEVodChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLHk9Zy5jYWxsKHRoaXMsdiksQnouc2V0KGRJZSh5KSx7YWZ0ZXJGaXJzdFVzZToh''@;'; put 'put ''MX0pLHl9cmV0dXJuIGZ1bmN0aW9uIHhodChkLGcsaCl7ZyYmaEllKGQucHJvdG90eXBlLGcpLGgmJmhJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuISF0''@;'; put 'put ''aGlzLmhvdC5nZXRTZXR0aW5ncygpW3BJZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmFkZEhvb2soImFmdGVyQ29udGV4dE1lbnVEZWZhdWx0T3B0aW9ucyIsZnVuY3Rpb24oQyl7cmV0dXJuIHkuYWRkQ29u''@;'; put 'put ''dGV4dE1lbnVFbnRyeShDKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlQ29sdW1uTW92ZSIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbkJlZm9yZUNvbHVtbk1vdmUoQyxJKX0pLGVSKFd3KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6ImRpc2Fi''@;'; put 'put ''bGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7QnouZ2V0KHRoaXMpLmFmdGVyRmlyc3RVc2U9ITEsZVIoV3coaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdp''@;'; put 'put ''bigpLHRoaXMuZW5hYmxlUGx1Z2luKCksZVIoV3coaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJmcmVlemVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPUJ6LmdldCh0aGlzKSxJPXRoaXMuaG90LmdldFNldHRpbmdzKCksWj1JLmZp''@;'; put 'put ''eGVkQ29sdW1uc1N0YXJ0PHRoaXMuaG90LmNvdW50Q29scygpJiZ5PkkuZml4ZWRDb2x1bW5zU3RhcnQtMTtDLmFmdGVyRmlyc3RVc2V8fChDLmFmdGVyRmlyc3RVc2U9ITApLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtbkZyZWV6ZSIseSxaKSYmKFomJih0aGlzLmhvdC5j''@;'; put 'put ''b2x1bW5JbmRleE1hcHBlci5tb3ZlSW5kZXhlcyh5LEkuZml4ZWRDb2x1bW5zU3RhcnQpLEkuX2ZpeGVkQ29sdW1uc1N0YXJ0Kz0xKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDb2x1bW5GcmVlemUiLHksWikpfX0se2tleToidW5mcmVlemVDb2x1bW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3Zh''@;'; put 'put ''ciBDPUJ6LmdldCh0aGlzKSxJPXRoaXMuaG90LmdldFNldHRpbmdzKCksWj1JLmZpeGVkQ29sdW1uc1N0YXJ0PjAmJnk8PUkuZml4ZWRDb2x1bW5zU3RhcnQtMTtDLmFmdGVyRmlyc3RVc2V8fChDLmFmdGVyRmlyc3RVc2U9ITApLCExIT09dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVt''@;'; put 'put ''blVuZnJlZXplIix5LFopJiYoWiYmKEkuX2ZpeGVkQ29sdW1uc1N0YXJ0LT0xLHRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLm1vdmVJbmRleGVzKHksSS5maXhlZENvbHVtbnNTdGFydCkpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtblVuZnJlZXplIix5LFopKX19LHtrZXk6ImFk''@;'; put 'put ''ZENvbnRleHRNZW51RW50cnkiLHZhbHVlOmZ1bmN0aW9uKHkpe3kuaXRlbXMucHVzaCh7bmFtZToiLS0tLS0tLS0tIn0sZnVuY3Rpb24gd2h0KGQpe3JldHVybntrZXk6ImZyZWV6ZV9jb2x1bW4iLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEY0ZSl9''@;'; put 'put ''LGNhbGxiYWNrOmZ1bmN0aW9uKGgsdil7dmFyIHk9ZnVuY3Rpb24gZ2h0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIHlodChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24gQWh0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0''@;'; put 'put ''Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gdmh0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBjSWUoZCxnKTt2YXIg''@;'; put 'put ''aD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8''@;'; put 'put ''L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGNJZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gbWh0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5c''@;'; put 'put ''bkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odiwxKTtkLmZyZWV6ZUNvbHVtbih5WzBdLnN0YXJ0LmNvbCksdGhpcy5yZW5kZXIoKSx0aGlzLnZpZXcuYWRqdXN0RWxlbWVudHNT''@;'; put 'put ''aXplKCEwKX0saGlkZGVuOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCksdj0hMTtyZXR1cm4odm9pZCAwPT09aHx8aC5sZW5ndGg+MXx8aFswXS5mcm9tLmNvbCE9PWhbMF0udG8uY29sfHxoWzBdLmZyb20uY29sPD10aGlzLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1''@;'; put 'put ''bW5zU3RhcnQtMSkmJih2PSEwKSx2fX19KHRoaXMpLGZ1bmN0aW9uIE1odChkKXtyZXR1cm57a2V5OiJ1bmZyZWV6ZV9jb2x1bW4iLG5hbWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUcmFuc2xhdGVkUGhyYXNlKEg0ZSl9LGNhbGxiYWNrOmZ1bmN0aW9uKGgsdil7dmFyIHk9ZnVuY3Rp''@;'; put 'put ''b24gYmh0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFNodChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24ga2h0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0''@;'; put 'put ''b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxDPSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVs''@;'; put 'put ''bCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihDKXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gQ2h0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBmSWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCku''@;'; put 'put ''c2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9B''@;'; put 'put ''cnJheSQvLnRlc3QoaCkpcmV0dXJuIGZJZShkLGcpfX0oZCxnKXx8ZnVuY3Rpb24gX2h0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkg''@;'; put 'put ''b2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX0odiwxKTtkLnVuZnJlZXplQ29sdW1uKHlbMF0uc3RhcnQuY29sKSx0aGlzLnJlbmRlcigpLHRoaXMudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxoaWRkZW46ZnVuY3Rpb24oKXt2YXIgaD10''@;'; put 'put ''aGlzLmdldFNlbGVjdGVkUmFuZ2UoKSx2PSExO3JldHVybih2b2lkIDA9PT1ofHxoLmxlbmd0aD4xfHxoWzBdLmZyb20uY29sIT09aFswXS50by5jb2x8fGhbMF0uZnJvbS5jb2w+PXRoaXMuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydCkmJih2PSEwKSx2fX19KHRoaXMpKX19LHtr''@;'; put 'put ''ZXk6Im9uQmVmb3JlQ29sdW1uTW92ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZihCei5nZXQodGhpcykuYWZ0ZXJGaXJzdFVzZSl7dmFyIFo9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5maXhlZENvbHVtbnNTdGFydDtpZihDPFp8fHkuc29tZShmdW5jdGlvbih1ZSl7cmV0dXJuIHVlPFp9KSly''@;'; put 'put ''ZXR1cm4hMX19fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBwSWV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAxMTB9fV0pLGh9KFlzKTtmdW5jdGlvbiBnSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7''@;'; put 'put ''dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgdFI9InB4IixIaHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhm''@;'; put 'put ''dW5jdGlvbiBQaHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9Zyx0aGlzLl9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wLHRoaXMuaW5saW5lUHJvcGVy''@;'; put 'put ''dHk9Zy5pc1J0bCgpPyJyaWdodCI6ImxlZnQifXJldHVybiBmdW5jdGlvbiBGaHQoZCxnLGgpe2cmJmdJZShkLnByb3RvdHlwZSxnKSxoJiZnSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiYXBwZW5kVG8iLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKGgpe2guYXBwZW5kQ2hpbGQodGhpcy5fZWxlbWVudCksdGhpcy5zdGF0ZT0yfX0se2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7MD09PXRoaXMuc3RhdGUmJih0aGlzLl9lbGVtZW50PXRoaXMuaG90LnJvb3REb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlz''@;'; put 'put ''LnN0YXRlPTEpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmlzQXBwZW5kZWQoKSYmdGhpcy5fZWxlbWVudC5wYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuX2VsZW1lbnQ9bnVsbCx0aGlzLnN0YXRlPTB9fSx7a2V5OiJpc0FwcGVu''@;'; put 'put ''ZGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiAyPT09dGhpcy5zdGF0ZX19LHtrZXk6ImlzQnVpbHQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3RhdGU+PTF9fSx7a2V5OiJzZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2NChoKSYmKHRoaXMuX2VsZW1lbnQuc3R5''@;'; put 'put ''bGUudG9wPWgrdFIpLHY0KHYpJiYodGhpcy5fZWxlbWVudC5zdHlsZVt0aGlzLmlubGluZVByb3BlcnR5XT12K3RSKX19LHtrZXk6ImdldFBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuX2VsZW1lbnQuc3R5bGU7cmV0dXJue3RvcDpoLnRvcD9wYXJzZUludChoLnRvcCwx''@;'; put 'put ''MCk6MCxzdGFydDpoW3RoaXMuaW5saW5lUHJvcGVydHldP3BhcnNlSW50KGhbdGhpcy5pbmxpbmVQcm9wZXJ0eV0sMTApOjB9fX0se2tleToic2V0U2l6ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2NChoKSYmKHRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg9aCt0UiksdjQodikmJih0aGlzLl9l''@;'; put 'put ''bGVtZW50LnN0eWxlLmhlaWdodD12K3RSKX19LHtrZXk6ImdldFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOnRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS53aWR0aCwxMCk6MCxoZWlnaHQ6dGhpcy5fZWxlbWVudC5zdHls''@;'; put 'put ''ZS5oZWlnaHQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQsMTApOjB9fX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3Y0KGgpJiYodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3A9aCt0UiksdjQodikmJih0aGlzLl9lbGVtZW50LnN0eWxlWyJt''@;'; put 'put ''YXJnaW4iLmNvbmNhdChsZCh0aGlzLmlubGluZVByb3BlcnR5KSldPXYrdFIpfX0se2tleToiZ2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMuX2VsZW1lbnQuc3R5bGUsdj0ibWFyZ2luIi5jb25jYXQobGQodGhpcy5pbmxpbmVQcm9wZXJ0eSkpO3JldHVybnt0b3A6aC5t''@;'; put 'put ''YXJnaW5Ub3A/cGFyc2VJbnQoaC5tYXJnaW5Ub3AsMTApOjAsc3RhcnQ6aFt2XT9wYXJzZUludChoW3ZdLDEwKTowfX19XSksZH0oKTtjb25zdCBBSWU9SGh0O2Z1bmN0aW9uIFE1ZShkKXtyZXR1cm4oUTVlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rp''@;'; put 'put ''b24gTmh0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24geUllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51''@;'; put 'put ''bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gQW5lKCl7cmV0dXJuIEFuZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxl''@;'; put 'put ''Y3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9amh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxBbmUuYXBwbHkodGhp''@;'; put 'put ''cyxhcmd1bWVudHMpfWZ1bmN0aW9uIGpodChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9blIoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gSjVlKGQsZyl7cmV0dXJuKEo1ZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0''@;'; put 'put ''LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIEdodChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVE1ZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3''@;'; put 'put ''IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gV2h0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0g''@;'; put 'put ''c3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gblIoZCl7cmV0dXJuKG5SPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3Rv''@;'; put 'put ''dHlwZU9mKGgpfSkoZCl9dmFyIFFodD1mdW5jdGlvbihkKXshZnVuY3Rpb24gWmh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5w''@;'; put 'put ''cm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJko1ZShkLGcpfShoLGQpO3ZhciBn''@;'; put 'put ''PWZ1bmN0aW9uIHpodChkKXt2YXIgZz1mdW5jdGlvbiBZaHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3Jl''@;'; put 'put ''dHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1uUihkKTtpZihnKXt2YXIgQz1uUih0aGlzKS5jb25zdHJ1''@;'; put 'put ''Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gR2h0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIE5odCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBmdW5jdGlv''@;'; put 'put ''biBWaHQoZCxnLGgpe2cmJnlJZShkLnByb3RvdHlwZSxnKSxoJiZ5SWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7QW5lKG5SKGgucHJvdG90eXBlKSwiYnVpbGQiLHRoaXMp''@;'; put 'put ''LmNhbGwodGhpcyksTzAodGhpcy5fZWxlbWVudCwiaHRfX21hbnVhbENvbHVtbk1vdmUtLWJhY2tsaWdodCIpfX1dKSxofShBSWUpO2NvbnN0IEpodD1RaHQ7ZnVuY3Rpb24gWDVlKGQpe3JldHVybihYNWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1i''@;'; put 'put ''b2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlv''@;'; put 'put ''biBYaHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiB3SWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVt''@;'; put 'put ''ZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiB5bmUoKXtyZXR1cm4geW5lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVj''@;'; put 'put ''dC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT0kaHQoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHluZS5hcHBseSh0aGlz''@;'; put 'put ''LGFyZ3VtZW50cyl9ZnVuY3Rpb24gJGh0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1yUihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBLNWUoZCxnKXtyZXR1cm4oSzVlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Qu''@;'; put 'put ''c2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gdDN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09WDVlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcg''@;'; put 'put ''VHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBuM3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBz''@;'; put 'put ''dXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiByUihkKXtyZXR1cm4oclI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90''@;'; put 'put ''eXBlT2YoaCl9KShkKX12YXIgbzN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBxaHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnBy''@;'; put 'put ''b3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmSzVlKGQsZyl9KGgsZCk7dmFyIGc9''@;'; put 'put ''ZnVuY3Rpb24gZTN0KGQpe3ZhciBnPWZ1bmN0aW9uIHIzdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0''@;'; put 'put ''dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXJSKGQpO2lmKGcpe3ZhciBDPXJSKHRoaXMpLmNvbnN0cnVj''@;'; put 'put ''dG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0M3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gWGh0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIGZ1bmN0aW9u''@;'; put 'put ''IEtodChkLGcsaCl7ZyYmd0llKGQucHJvdG90eXBlLGcpLGgmJndJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXt5bmUoclIoaC5wcm90b3R5cGUpLCJidWlsZCIsdGhpcyku''@;'; put 'put ''Y2FsbCh0aGlzKSxPMCh0aGlzLl9lbGVtZW50LCJodF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lIil9fV0pLGh9KEFJZSk7Y29uc3QgYTN0PW8zdDtmdW5jdGlvbiAkNWUoZCl7cmV0dXJuKCQ1ZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJv''@;'; put 'put ''bC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9u''@;'; put 'put ''IGJJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0''@;'; put 'put ''aW9uIGhNKCl7cmV0dXJuIGhNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT11M3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJu''@;'; put 'put ''IEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LGhNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiB1M3QoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPUp2KGQpKTspO3Jl''@;'; put 'put ''dHVybiBkfWZ1bmN0aW9uIHE1ZShkLGcpe3JldHVybihxNWU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBoM3QoZCxnKXtpZihnJiYoIm9iamVjdCI9''@;'; put 'put ''PT0kNWUoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGVnZShkKX1mdW5jdGlvbiBlZ2UoZCl7''@;'; put 'put ''aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEp2KGQpe3JldHVybihKdj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0Lmdl''@;'; put 'put ''dFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVDb2x1bW5Nb3ZlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImFmdGVyQ29s''@;'; put 'put ''dW1uTW92ZSIpO3ZhciB0Z2U9Im1hbnVhbENvbHVtbk1vdmUiLFl3PW5ldyBXZWFrTWFwLF9JZT0iaHRfX21hbnVhbENvbHVtbk1vdmUiLHduZT0ic2hvdy11aSIsbmdlPSJvbi1tb3ZpbmctLWNvbHVtbnMiLHJnZT0iYWZ0ZXItc2VsZWN0aW9uLS1jb2x1bW5zIixnM3Q9ZnVuY3Rpb24oZCl7''@;'; put 'put ''IWZ1bmN0aW9uIGMzdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5''@;'; put 'put ''cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZxNWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBmM3QoZCl7dmFyIGc9ZnVuY3Rpb24gZDN0''@;'; put 'put ''KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxs''@;'; put 'put ''KFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9SnYoZCk7aWYoZyl7dmFyIEM9SnYodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50''@;'; put 'put ''cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGgzdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gbDN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFz''@;'; put 'put ''cyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCkseT1nLmNhbGwodGhpcyx2KSxZdy5zZXQoZWdlKHkpLHtjb2x1bW5zVG9Nb3ZlOltdLGNvdW50Q29sczowLGZpeGVkQ29sdW1uczowLHByZXNzZWQ6dm9pZCAwLHRhcmdldDp7ZXZlbnRQYWdlWDp2b2lkIDAsY29vcmRzOnZvaWQgMCxURDp2b2lk''@;'; put 'put ''IDAsY29sOnZvaWQgMH0sY2FjaGVkRHJvcEluZGV4OnZvaWQgMH0pLHkuZXZlbnRNYW5hZ2VyPW5ldyBMMShlZ2UoeSkpLHkuYmFja2xpZ2h0PW5ldyBKaHQodikseS5ndWlkZWxpbmU9bmV3IGEzdCh2KSx5fXJldHVybiBmdW5jdGlvbiBzM3QoZCxnLGgpe2cmJmJJZShkLnByb3RvdHlwZSxn''@;'; put 'put ''KSxoJiZiSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVt0Z2VdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNl''@;'; put 'put ''bGxNb3VzZU92ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZU92ZXIuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbFZlcnRpY2FsbHkiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclNjcm9sbFZlcnRpY2FsbHkoKX0pLHRo''@;'; put 'put ''aXMuYWRkSG9vaygiYWZ0ZXJMb2FkRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTG9hZERhdGEuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5idWlsZFBsdWdpblVJKCksdGhpcy5yZWdpc3RlckV2ZW50cygpLE8wKHRoaXMuaG90LnJvb3RFbGVtZW50LF9JZSksaE0oSnYoaC5w''@;'; put 'put ''cm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksdGhpcy5tb3ZlQnlTZXR0aW5nc09yTG9hZCgpLGhNKEp2KGgucHJvdG90''@;'; put 'put ''eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtwbCh0aGlzLmhvdC5yb290RWxlbWVudCxfSWUpLHRoaXMudW5yZWdpc3RlckV2ZW50cygpLHRoaXMuYmFja2xpZ2h0LmRlc3Ryb3koKSx0aGlzLmd1aWRl''@;'; put 'put ''bGluZS5kZXN0cm95KCksaE0oSnYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToibW92ZUNvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5tb3ZlQ29sdW1ucyhbeV0sQyl9fSx7a2V5OiJtb3ZlQ29sdW1ucyIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oeSxDKXt2YXIgST1Zdy5nZXQodGhpcyksWj1JLmNhY2hlZERyb3BJbmRleCx1ZT10aGlzLmlzTW92ZVBvc3NpYmxlKHksQyksX2U9dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNvbHVtbk1vdmUiLHksQyxaLHVlKTtpZihJLmNhY2hlZERyb3BJbmRleD12b2lkIDAsITEhPT1f''@;'; put 'put ''ZSl7dWUmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLm1vdmVJbmRleGVzKHksQyk7dmFyIEJlPXVlJiZ0aGlzLmlzQ29sdW1uT3JkZXJDaGFuZ2VkKHksQyk7cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtbk1vdmUiLHksQyxaLHVlLEJlKSxCZX19fSx7a2V5OiJkcmFn''@;'; put 'put ''Q29sdW1uIix2YWx1ZTpmdW5jdGlvbih5LEMpe3JldHVybiB0aGlzLmRyYWdDb2x1bW5zKFt5XSxDKX19LHtrZXk6ImRyYWdDb2x1bW5zIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuY291bnRGaW5hbEluZGV4KHksQyk7cmV0dXJuIFl3LmdldCh0aGlzKS5jYWNoZWREcm9wSW5k''@;'; put 'put ''ZXg9Qyx0aGlzLm1vdmVDb2x1bW5zKHksSSl9fSx7a2V5OiJpc01vdmVQb3NzaWJsZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROb3RUcmltbWVkSW5kZXhlc0xlbmd0aCgpLFo9eS5sZW5ndGgrQz5JLHVlPUM8MCxfZT15LnNvbWUo''@;'; put 'put ''ZnVuY3Rpb24oTmUpe3JldHVybiBOZTwwfSksQmU9eS5zb21lKGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmU+PUl9KTtyZXR1cm4hKFp8fHVlfHxfZXx8QmUpfX0se2tleToiaXNDb2x1bW5PcmRlckNoYW5nZWQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHkuc29tZShmdW5jdGlvbihJLFop''@;'; put 'put ''e3JldHVybiBJLVohPT1DfSl9fSx7a2V5OiJjb3VudEZpbmFsSW5kZXgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9U3UoeSxmdW5jdGlvbihaLHVlKXtyZXR1cm4gdWU8QyYmKForPTEpLFp9LDApO3JldHVybiBDLUl9fSx7a2V5OiJnZXRDb2x1bW5zV2lkdGgiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KHksQyl7Zm9yKHZhciBJPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLFo9MCx1ZT15O3VlPD1DO3VlKz0xKXt2YXIgX2U9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KHVlKTt1ZTwwP1orPXRoaXMuaG90LnZpZXcuX3d0Lnd0Vmlld3BvcnQuZ2V0Um93SGVhZGVyV2lkdGgoKXx8''@;'; put 'put ''MDpudWxsIT09X2UmJihaKz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLmdldFN0cmV0Y2hlZENvbHVtbldpZHRoKF9lKXx8MCl9cmV0dXJuIFp9fSx7a2V5OiJtb3ZlQnlTZXR0aW5nc09yTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhvdC5nZXRTZXR0aW5ncygpW3RnZV07''@;'; put 'put ''aWYoQXJyYXkuaXNBcnJheSh5KSl0aGlzLm1vdmVDb2x1bW5zKHksMCk7ZWxzZSBpZih2b2lkIDAhPT15KXt2YXIgQz10aGlzLnBlcnNpc3RlbnRTdGF0ZUxvYWQoKTtDLmxlbmd0aCYmdGhpcy5tb3ZlQ29sdW1ucyhDLDApfX19LHtrZXk6ImlzRml4ZWRDb2x1bW5zU3RhcnQiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKHkpe3JldHVybiB5PHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnR9fSx7a2V5OiJwZXJzaXN0ZW50U3RhdGVTYXZlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVTYXZlIiwibWFudWFsQ29sdW1uTW92ZSIs''@;'; put 'put ''dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCkpfX0se2tleToicGVyc2lzdGVudFN0YXRlTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT17fTtyZXR1cm4gdGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZUxvYWQiLCJtYW51YWxDb2x1bW5N''@;'; put 'put ''b3ZlIix5KSx5LnZhbHVlP3kudmFsdWU6W119fSx7a2V5OiJwcmVwYXJlQ29sdW1uc1RvTW92aW5nIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPVtdO3JldHVybiBpYSh5LEMsZnVuY3Rpb24oWil7SS5wdXNoKFopfSksSX19LHtrZXk6InJlZnJlc2hQb3NpdGlvbnMiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIHk9WXcuZ2V0KHRoaXMpLEM9dGhpcy5ob3Qudmlldy5nZXRGaXJzdEZ1bGx5VmlzaWJsZUNvbHVtbigpO3RoaXMuaXNGaXhlZENvbHVtbnNTdGFydCh5LmhvdmVyZWRDb2x1bW4pJiZDPjAmJnRoaXMuaG90LnNjcm9sbFZpZXdwb3J0VG8odm9pZCAwLHRoaXMuaG90LmNvbHVt''@;'; put 'put ''bkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChDLTEsLTEpKTt2YXIgST10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLFo9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5zY3JvbGxhYmxlRWxlbWVudCx1ZT0ibnVtYmVyIj09dHlwZW9mIFouc2Nyb2xsWD9aLnNjcm9s''@;'; put 'put ''bFg6Wi5zY3JvbGxMZWZ0LF9lPXRoaXMuaG90LnZpZXcuVEhFQUQub2Zmc2V0TGVmdCt0aGlzLmdldENvbHVtbnNXaWR0aCgwLHkuaG92ZXJlZENvbHVtbi0xKSxCZT1JLmhpZGVyLm9mZnNldFdpZHRoLE5lPUkuVEJPRFkub2Zmc2V0TGVmdCxLZT10aGlzLmJhY2tsaWdodC5nZXRPZmZzZXQo''@;'; put 'put ''KS5zdGFydCxwdD10aGlzLmJhY2tsaWdodC5nZXRTaXplKCkud2lkdGgsT3Q9MCwkdD0wO2lmKHRoaXMuaG90LmlzUnRsKCkpe3ZhciBmbj10aGlzLmhvdC5yb290V2luZG93LExuPUUyKHRoaXMuaG90LnJvb3RFbGVtZW50KTskdD1mbi5pbm5lcldpZHRoLXkudGFyZ2V0LmV2ZW50UGFnZVgt''@;'; put 'put ''KGZuLmlubmVyV2lkdGgteS5yb290RWxlbWVudE9mZnNldC1MbiktKHZvaWQgMD09PVouc2Nyb2xsWD91ZTowKX1lbHNlICR0PXkudGFyZ2V0LmV2ZW50UGFnZVgtKHkucm9vdEVsZW1lbnRPZmZzZXQtKHZvaWQgMD09PVouc2Nyb2xsWD91ZTowKSk7eS5oYXNSb3dIZWFkZXJzJiYoT3Q9dGhp''@;'; put 'put ''cy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5pbmxpbmVTdGFydE92ZXJsYXkuY2xvbmUud3RUYWJsZS5nZXRDb2x1bW5IZWFkZXIoLTEpLm9mZnNldFdpZHRoKSx0aGlzLmlzRml4ZWRDb2x1bW5zU3RhcnQoeS5ob3ZlcmVkQ29sdW1uKSYmKF9lKz11ZSksX2UrPU90LHkuaG92ZXJlZENvbHVt''@;'; put 'put ''bjwwP3kudGFyZ2V0LmNvbD15LmZpeGVkQ29sdW1uc1N0YXJ0PjA/MDpDPjA/Qy0xOkM6eS50YXJnZXQuVEQub2Zmc2V0V2lkdGgvMitfZTw9JHQ/KHkudGFyZ2V0LmNvbD0oeS5ob3ZlcmVkQ29sdW1uPj15LmNvdW50Q29scz95LmNvdW50Q29scy0xOnkuaG92ZXJlZENvbHVtbikrMSxfZSs9''@;'; put 'put ''eS50YXJnZXQuVEQub2Zmc2V0V2lkdGgpOnkudGFyZ2V0LmNvbD15LmhvdmVyZWRDb2x1bW47dmFyIFNyPSR0LHdyPV9lOyR0K3B0K0tlPj1CZT9Tcj1CZS1wdC1LZTokdCtLZTxOZStPdCYmKFNyPU5lK090K01hdGguYWJzKEtlKSksX2U+PUJlLTE/d3I9QmUtMTowPT09d3I/d3I9MTp2b2lk''@;'; put 'put ''IDAhPT1aLnNjcm9sbFgmJnkuaG92ZXJlZENvbHVtbjx5LmZpeGVkQ29sdW1uc1N0YXJ0JiYod3ItPXkucm9vdEVsZW1lbnRPZmZzZXQ8PVouc2Nyb2xsWD95LnJvb3RFbGVtZW50T2Zmc2V0OjApLHRoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsU3IpLHRoaXMuZ3VpZGVsaW5lLnNl''@;'; put 'put ''dFBvc2l0aW9uKG51bGwsd3IpfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LnJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZW1vdmUiLGZ1bmN0''@;'; put 'put ''aW9uKEkpe3JldHVybiB5Lm9uTW91c2VNb3ZlKEkpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihDLCJtb3VzZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW91c2VVcCgpfSl9fSx7a2V5OiJ1bnJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZXZl''@;'; put 'put ''bnRNYW5hZ2VyLmNsZWFyKCl9fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7dmFyIHVlPXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsX2U9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpLEJlPXRoaXMu''@;'; put 'put ''aG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksTmU9WXcuZ2V0KHRoaXMpLEtlPXRsKHkudGFyZ2V0LCJzb3J0QWN0aW9uIik7aWYoIUJlfHwhX2V8fE5lLnByZXNzZWR8fDAhPT15LmJ1dHRvbnx8S2UpcmV0dXJuIE5lLnByZXNzZWQ9ITEsTmUuY29sdW1uc1RvTW92ZS5sZW5ndGg9MCx2b2lk''@;'; put 'put ''IHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LFtuZ2Usd25lXSk7dmFyIHB0PXRoaXMuZ3VpZGVsaW5lLmlzQnVpbHQoKSYmIXRoaXMuZ3VpZGVsaW5lLmlzQXBwZW5kZWQoKSxPdD10aGlzLmJhY2tsaWdodC5pc0J1aWx0KCkmJiF0aGlzLmJhY2tsaWdodC5pc0FwcGVuZGVkKCk7cHQmJk90JiYo''@;'; put 'put ''dGhpcy5ndWlkZWxpbmUuYXBwZW5kVG8odWUuaGlkZXIpLHRoaXMuYmFja2xpZ2h0LmFwcGVuZFRvKHVlLmhpZGVyKSk7dmFyICR0PUJlLmZyb20sZm49QmUudG8sTG49TWF0aC5taW4oJHQuY29sLGZuLmNvbCksaXI9TWF0aC5tYXgoJHQuY29sLGZuLmNvbCk7aWYoQy5yb3c8MCYmQy5jb2w+''@;'; put 'put ''PUxuJiZDLmNvbDw9aXIpe1ouY29sdW1uPSEwLE5lLnByZXNzZWQ9ITAsTmUudGFyZ2V0LmV2ZW50UGFnZVg9eS5wYWdlWCxOZS50YXJnZXQuZXZlbnRPZmZzZXRYPXkub2Zmc2V0WCxOZS5ob3ZlcmVkQ29sdW1uPUMuY29sLE5lLnRhcmdldC5URD1JLE5lLnRhcmdldC5jb2w9Qy5jb2wsTmUu''@;'; put 'put ''Y29sdW1uc1RvTW92ZT10aGlzLnByZXBhcmVDb2x1bW5zVG9Nb3ZpbmcoTG4saXIpLE5lLmhhc1Jvd0hlYWRlcnM9ISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpLnJvd0hlYWRlcnMsTmUuY291bnRDb2xzPXRoaXMuaG90LmNvdW50Q29scygpLE5lLmZpeGVkQ29sdW1uc1N0YXJ0PXRoaXMuaG90''@;'; put 'put ''LmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQsTmUucm9vdEVsZW1lbnRPZmZzZXQ9anUodGhpcy5ob3Qucm9vdEVsZW1lbnQpLmxlZnQ7dmFyIG1yPU5lLmhhc1Jvd0hlYWRlcnM/LTE6MCxTcj11ZS5ob2xkZXIuc2Nyb2xsVG9wK3VlLmdldENvbHVtbkhlYWRlckhlaWdodCgwKSsx''@;'; put 'put ''LHdyPUMuY29sPE5lLmZpeGVkQ29sdW1uc1N0YXJ0LFFyPU1hdGguYWJzKHRoaXMuaG90LnZpZXcuX3d0Lnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmdldFNjcm9sbFBvc2l0aW9uKCkpLHlpPU1hdGguYWJzKHkub2Zmc2V0WC0odGhpcy5ob3QuaXNSdGwoKT95LnRhcmdldC5vZmZz''@;'; put 'put ''ZXRXaWR0aDowKSksS2k9dGhpcy5nZXRDb2x1bW5zV2lkdGgoTG4sQy5jb2wtMSkreWksU289dGhpcy5nZXRDb2x1bW5zV2lkdGgobXIsTG4tMSkrKHdyP1FyOjApK0tpO3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKFNyLFNvKSx0aGlzLmJhY2tsaWdodC5zZXRTaXplKHRoaXMuZ2V0Q29s''@;'; put 'put ''dW1uc1dpZHRoKExuLGlyKSx1ZS5oaWRlci5vZmZzZXRIZWlnaHQtU3IpLHRoaXMuYmFja2xpZ2h0LnNldE9mZnNldChudWxsLC1LaSksTzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsbmdlKX1lbHNlIHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LHJnZSksTmUucHJlc3NlZD0hMSxOZS5jb2x1bW5z''@;'; put 'put ''VG9Nb3ZlLmxlbmd0aD0wfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVl3LmdldCh0aGlzKTtpZihDLnByZXNzZWQpe2lmKHkudGFyZ2V0PT09dGhpcy5iYWNrbGlnaHQuZWxlbWVudCl7dmFyIEk9dGhpcy5iYWNrbGlnaHQuZ2V0U2l6ZSgpLndpZHRoO3Ro''@;'; put 'put ''aXMuYmFja2xpZ2h0LnNldFNpemUoMCksc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKEkpfSl9Qy50YXJnZXQuZXZlbnRQYWdlWD15LnBhZ2VYLHRoaXMucmVmcmVzaFBvc2l0aW9ucygpfX19LHtrZXk6Im9uQmVmb3JlT25DZWxsTW91c2VPdmVyIix2''@;'; put 'put ''YWx1ZTpmdW5jdGlvbih5LEMsSSxaKXt2YXIgdWU9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxfZT1Zdy5nZXQodGhpcyk7IXVlfHwhX2UucHJlc3NlZHx8KF9lLmNvbHVtbnNUb01vdmUuaW5kZXhPZihDLmNvbCk+LTE/cGwodGhpcy5ob3Qucm9vdEVsZW1lbnQsd25lKTpPMCh0''@;'; put 'put ''aGlzLmhvdC5yb290RWxlbWVudCx3bmUpLFoucm93PSEwLFouY29sdW1uPSEwLFouY2VsbD0hMCxfZS5ob3ZlcmVkQ29sdW1uPUMuY29sLF9lLnRhcmdldC5URD1JKX19LHtrZXk6Im9uTW91c2VVcCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1Zdy5nZXQodGhpcyksQz15LnRhcmdldC5jb2ws''@;'; put 'put ''ST15LmNvbHVtbnNUb01vdmUubGVuZ3RoO2lmKHkuaG92ZXJlZENvbHVtbj12b2lkIDAseS5wcmVzc2VkPSExLHkuYmFja2xpZ2h0V2lkdGg9MCxwbCh0aGlzLmhvdC5yb290RWxlbWVudCxbbmdlLHduZSxyZ2VdKSx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Q29sdW1uSGVhZGVy''@;'; put 'put ''KCkmJk8wKHRoaXMuaG90LnJvb3RFbGVtZW50LHJnZSksIShJPDF8fHZvaWQgMD09PUMpKXt2YXIgdWU9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbih5LmNvbHVtbnNUb01vdmVbMF0pLF9lPXRoaXMuZHJhZ0NvbHVtbnMoeS5jb2x1bW5zVG9Nb3ZlLEMpO2lmKHkuY29sdW1uc1RvTW92ZS5s''@;'; put 'put ''ZW5ndGg9MCwhMD09PV9lKXt0aGlzLnBlcnNpc3RlbnRTdGF0ZVNhdmUoKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCk7dmFyIEJlPXRoaXMuaG90LnRvVmlzdWFsQ29sdW1uKHVlKTt0aGlzLmhvdC5zZWxlY3RDb2x1bW5zKEJlLEJlK0kt''@;'; put 'put ''MSl9fX19LHtrZXk6Im9uQWZ0ZXJTY3JvbGxWZXJ0aWNhbGx5Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMuaG90LnZpZXcuX3d0Lnd0VGFibGUsWj15LmdldENvbHVtbkhlYWRlckhlaWdodCgwKSsxK3kuaG9sZGVyLnNjcm9sbFRvcDt0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbiha''@;'; put 'put ''KSx0aGlzLmJhY2tsaWdodC5zZXRTaXplKG51bGwseS5oaWRlci5vZmZzZXRIZWlnaHQtWil9fSx7a2V5OiJidWlsZFBsdWdpblVJIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LmJ1aWxkKCksdGhpcy5ndWlkZWxpbmUuYnVpbGQoKX19LHtrZXk6Im9uQWZ0ZXJMb2FkRGF0YSIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1vdmVCeVNldHRpbmdzT3JMb2FkKCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LmRlc3Ryb3koKSx0aGlzLmd1aWRlbGluZS5kZXN0cm95KCksaE0oSnYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5j''@;'; put 'put ''YWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGdlfX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTIwfX1dKSxofShZcyk7ZnVuY3Rpb24gaWdlKGQpe3JldHVybihpZ2U9ImZ1bmN0aW9uIj09dHlwZW9m''@;'; put 'put ''IFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/''@;'; put 'put ''InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBDSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBkTSgpe3JldHVybiBkTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9QTN0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93''@;'; put 'put ''blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxkTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gQTN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5j''@;'; put 'put ''YWxsKGQsZykmJm51bGwhPT0oZD1YdihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBvZ2UoZCxnKXtyZXR1cm4ob2dlPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVu''@;'; put 'put ''Y3Rpb24gYjN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09aWdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIp''@;'; put 'put ''O3JldHVybiBhZ2UoZCl9ZnVuY3Rpb24gYWdlKGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH1mdW5jdGlvbiBYdihkKXtyZXR1cm4oWHY9''@;'; put 'put ''T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgYm5lPSJtYW51YWxDb2x1bW5SZXNpemUiLGtJZT0ibWFudWFsQ29sdW1uV2lkdGhz''@;'; put 'put ''IixsZ2U9bmV3IFdlYWtNYXAsazN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiB5M3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnBy''@;'; put 'put ''b3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmb2dlKGQsZyl9KGgsZCk7dmFyIGc9''@;'; put 'put ''ZnVuY3Rpb24gdzN0KGQpe3ZhciBnPWZ1bmN0aW9uIF8zdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0''@;'; put 'put ''dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVh2KGQpO2lmKGcpe3ZhciBDPVh2KHRoaXMpLmNvbnN0cnVj''@;'; put 'put ''dG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBiM3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7IWZ1bmN0aW9uIG0zdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBU''@;'; put 'put ''eXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpO3ZhciBDPSh5PWcuY2FsbCh0aGlzLHYpKS5ob3Qucm9vdERvY3VtZW50O3JldHVybiB5LmN1cnJlbnRUSD1udWxsLHkuY3VycmVudENvbD1udWxsLHkuc2VsZWN0ZWRDb2xzPVtdLHkuY3VycmVu''@;'; put 'put ''dFdpZHRoPW51bGwseS5uZXdTaXplPW51bGwseS5zdGFydFk9bnVsbCx5LnN0YXJ0V2lkdGg9bnVsbCx5LnN0YXJ0T2Zmc2V0PW51bGwseS5oYW5kbGU9Qy5jcmVhdGVFbGVtZW50KCJESVYiKSx5Lmd1aWRlPUMuY3JlYXRlRWxlbWVudCgiRElWIikseS5ldmVudE1hbmFnZXI9bmV3IEwxKGFn''@;'; put 'put ''ZSh5KSkseS5wcmVzc2VkPW51bGwseS5kYmxjbGljaz0wLHkuYXV0b3Jlc2l6ZVRpbWVvdXQ9bnVsbCx5LmNvbHVtbldpZHRoc01hcD12b2lkIDAsbGdlLnNldChhZ2UoeSkse2NvbmZpZzp2b2lkIDB9KSxPMCh5LmhhbmRsZSwibWFudWFsQ29sdW1uUmVzaXplciIpLE8wKHkuZ3VpZGUsIm1h''@;'; put 'put ''bnVhbENvbHVtblJlc2l6ZXJHdWlkZSIpLHl9cmV0dXJuIGZ1bmN0aW9uIHYzdChkLGcsaCl7ZyYmQ0llKGQucHJvdG90eXBlLGcpLGgmJkNJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpbmxpbmVEaXIiLGdldDpm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5pc1J0bCgpPyJyaWdodCI6ImxlZnQifX0se2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2JuZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9''@;'; put 'put ''dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLmNvbHVtbldpZHRoc01hcD1uZXcgRHcsdGhpcy5jb2x1bW5XaWR0aHNNYXAuYWRkTG9jYWxIb29rKCJpbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uTWFwSW5pdCgpfSksdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIucmVnaXN0ZXJNYXAodGhp''@;'; put 'put ''cy5wbHVnaW5OYW1lLHRoaXMuY29sdW1uV2lkdGhzTWFwKSx0aGlzLmFkZEhvb2soIm1vZGlmeUNvbFdpZHRoIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lm9uTW9kaWZ5Q29sV2lkdGgoQyxJKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoIixmdW5jdGlvbihD''@;'; put 'put ''LEkpe3JldHVybiB5Lm9uQmVmb3JlU3RyZXRjaGluZ0NvbHVtbldpZHRoKEMsSSl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUNvbHVtblJlc2l6ZSIsZnVuY3Rpb24oQyxJLFope3JldHVybiB5Lm9uQmVmb3JlQ29sdW1uUmVzaXplKEMsSSxaKX0pLHRoaXMuYmluZEV2ZW50cygpLGRNKFh2KGgu''@;'; put 'put ''cHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLGRNKFh2KGgucHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5j''@;'; put 'put ''YWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtsZ2UuZ2V0KHRoaXMpLmNvbmZpZz10aGlzLmNvbHVtbldpZHRoc01hcC5nZXRWYWx1ZXMoKSx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRoaXMucGx1Z2luTmFtZSksZE0o''@;'; put 'put ''WHYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2F2ZU1hbnVhbENvbHVtbldpZHRocyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlU2F2ZSIsa0llLHRoaXMuY29sdW1uV2lkdGhzTWFwLmdl''@;'; put 'put ''dFZhbHVlcygpKX19LHtrZXk6ImxvYWRNYW51YWxDb2x1bW5XaWR0aHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9e307cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVMb2FkIixrSWUseSkseS52YWx1ZX19LHtrZXk6InNldE1hbnVhbFNpemUiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKHksQyl7dmFyIEk9TWF0aC5tYXgoQywyMCksWj10aGlzLmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpO3JldHVybiB0aGlzLmNvbHVtbldpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoWixJKSxJfX0se2tleToiY2xlYXJNYW51YWxTaXplIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlz''@;'; put 'put ''LmhvdC50b1BoeXNpY2FsQ29sdW1uKHkpO3RoaXMuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChDLG51bGwpfX0se2tleToib25NYXBJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1sZ2UuZ2V0KHRoaXMpLEk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtibmVdLFo9''@;'; put 'put ''dGhpcy5sb2FkTWFudWFsQ29sdW1uV2lkdGhzKCk7dm9pZCAwIT09Wj90aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe1ouZm9yRWFjaChmdW5jdGlvbih1ZSxfZSl7eS5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pfSwhMCk6QXJyYXkuaXNBcnJheShJ''@;'; put 'put ''KT8odGhpcy5ob3QuYmF0Y2hFeGVjdXRpb24oZnVuY3Rpb24oKXtJLmZvckVhY2goZnVuY3Rpb24odWUsX2Upe3kuY29sdW1uV2lkdGhzTWFwLnNldFZhbHVlQXRJbmRleChfZSx1ZSl9KX0sITApLEMuY29uZmlnPUkpOiEwPT09SSYmQXJyYXkuaXNBcnJheShDLmNvbmZpZykmJnRoaXMuaG90''@;'; put 'put ''LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7Qy5jb25maWcuZm9yRWFjaChmdW5jdGlvbih1ZSxfZSl7eS5jb2x1bW5XaWR0aHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pfSwhMCl9fSx7a2V5OiJzZXR1cEhhbmRsZVBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlz''@;'; put 'put ''O2lmKHkucGFyZW50Tm9kZSl7dGhpcy5jdXJyZW50VEg9eTt2YXIgST10aGlzLmhvdC52aWV3Ll93dCxaPUkud3RUYWJsZS5nZXRDb29yZHModGhpcy5jdXJyZW50VEgpLHVlPVouY29sO2lmKCEodWU8MCkpe3ZhciBLZSxfZT1EMSh0aGlzLmN1cnJlbnRUSCksQmU9dGhpcy5jdXJyZW50VEgu''@;'; put 'put ''Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dWU8SS5nZXRTZXR0aW5nKCJmaXhlZENvbHVtbnNTdGFydCIpJiYoS2U9SS53dE92ZXJsYXlzLnRvcElubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCxaLnJvdyxaLmNvbCkpLEtlfHwo''@;'; put 'put ''S2U9SS53dE92ZXJsYXlzLnRvcE92ZXJsYXkuZ2V0UmVsYXRpdmVDZWxsUG9zaXRpb24odGhpcy5jdXJyZW50VEgsWi5yb3csWi5jb2wpKSx0aGlzLmN1cnJlbnRDb2w9dGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuZ2V0VmlzdWFsRnJvbVJlbmRlcmFibGVJbmRleCh1ZSksdGhpcy5zZWxl''@;'; put 'put ''Y3RlZENvbHM9W107dmFyIHB0PXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpO3RoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkKCkmJnB0JiZVcih0aGlzLmhvdC5nZXRTZWxlY3Rl''@;'; put 'put ''ZFJhbmdlKCksZnVuY3Rpb24oJHQpe2lhKCR0LmdldFRvcFN0YXJ0Q29ybmVyKCkuY29sLCR0LmdldEJvdHRvbUVuZENvcm5lcigpLmNvbCxmdW5jdGlvbihpcil7Qy5zZWxlY3RlZENvbHMuaW5jbHVkZXMoaXIpfHxDLnNlbGVjdGVkQ29scy5wdXNoKGlyKX0pfSksdGhpcy5zZWxlY3RlZENv''@;'; put 'put ''bHMuaW5jbHVkZXModGhpcy5jdXJyZW50Q29sKXx8KHRoaXMuc2VsZWN0ZWRDb2xzPVt0aGlzLmN1cnJlbnRDb2xdKSx0aGlzLnN0YXJ0T2Zmc2V0PUtlLnN0YXJ0LTYsdGhpcy5zdGFydFdpZHRoPXBhcnNlSW50KEJlLndpZHRoLDEwKSx0aGlzLmhhbmRsZS5zdHlsZS50b3A9IiIuY29uY2F0''@;'; put 'put ''KEtlLnRvcCwicHgiKSx0aGlzLmhhbmRsZS5zdHlsZVt0aGlzLmlubGluZURpcl09IiIuY29uY2F0KHRoaXMuc3RhcnRPZmZzZXQrdGhpcy5zdGFydFdpZHRoLCJweCIpLHRoaXMuaGFuZGxlLnN0eWxlLmhlaWdodD0iIi5jb25jYXQoX2UsInB4IiksdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBw''@;'; put 'put ''ZW5kQ2hpbGQodGhpcy5oYW5kbGUpfX19fSx7a2V5OiJyZWZyZXNoSGFuZGxlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdPSIiLmNvbmNhdCh0aGlzLnN0YXJ0T2Zmc2V0K3RoaXMuY3VycmVudFdpZHRoLCJweCIpfX0se2tleToi''@;'; put 'put ''c2V0dXBHdWlkZVBvc2l0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXBhcnNlSW50KEQxKHRoaXMuaGFuZGxlKSwxMCksQz1wYXJzZUludCh0aGlzLmhhbmRsZS5zdHlsZS50b3AsMTApK3ksST1wYXJzZUludCh0aGlzLmhvdC52aWV3Lm1heGltdW1WaXNpYmxlRWxlbWVudEhlaWdodCgw''@;'; put 'put ''KSwxMCk7TzAodGhpcy5oYW5kbGUsImFjdGl2ZSIpLE8wKHRoaXMuZ3VpZGUsImFjdGl2ZSIpLHRoaXMuZ3VpZGUuc3R5bGUudG9wPSIiLmNvbmNhdChDLCJweCIpLHRoaXMucmVmcmVzaEd1aWRlUG9zaXRpb24oKSx0aGlzLmd1aWRlLnN0eWxlLmhlaWdodD0iIi5jb25jYXQoSS15LCJweCIp''@;'; put 'put ''LHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuZ3VpZGUpfX0se2tleToicmVmcmVzaEd1aWRlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ndWlkZS5zdHlsZVt0aGlzLmlubGluZURpcl09dGhpcy5oYW5kbGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdfX0se2tl''@;'; put 'put ''eToiaGlkZUhhbmRsZUFuZEd1aWRlIix2YWx1ZTpmdW5jdGlvbigpe3BsKHRoaXMuaGFuZGxlLCJhY3RpdmUiKSxwbCh0aGlzLmd1aWRlLCJhY3RpdmUiKX19LHtrZXk6ImNoZWNrSWZDb2x1bW5IZWFkZXIiLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiEhTXYoeSxbIlRIRUFEIl0sdGhpcy5o''@;'; put 'put ''b3Qucm9vdEVsZW1lbnQpfX0se2tleToiZ2V0Q2xvc2VzdFRIUGFyZW50Iix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4iVEFCTEUiIT09eS50YWdOYW1lPyJUSCI9PT15LnRhZ05hbWU/eTp0aGlzLmdldENsb3Nlc3RUSFBhcmVudCh5LnBhcmVudE5vZGUpOm51bGx9fSx7a2V5OiJvbk1vdXNl''@;'; put 'put ''T3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIXkzZSh5LnRhcmdldCkmJnRoaXMuY2hlY2tJZkNvbHVtbkhlYWRlcih5LnRhcmdldCkpe3ZhciBDPXRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KHkudGFyZ2V0KTtpZighQylyZXR1cm47dmFyIEk9Qy5nZXRBdHRyaWJ1dGUoImNvbHNwYW4iKTtD''@;'; put 'put ''JiYobnVsbD09PUl8fCIxIj09PUkpJiYodGhpcy5wcmVzc2VkfHx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24oQykpfX19LHtrZXk6ImFmdGVyTW91c2VEb3duVGltZW91dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oKXt5LmhvdC5mb3JjZUZ1bGxSZW5kZXI9ITAs''@;'; put 'put ''eS5ob3Qudmlldy5yZW5kZXIoKSx5LmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LEk9ZnVuY3Rpb24oX2UsQmUpe3ZhciBOZT15LmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uUmVzaXplIix5Lm5ld1NpemUsX2UsITApO3ZvaWQgMCE9PU5lJiYoeS5uZXdTaXplPU5lKSwiYWxs''@;'; put 'put ''Ij09PXkuaG90LmdldFNldHRpbmdzKCkuc3RyZXRjaEg/eS5jbGVhck1hbnVhbFNpemUoX2UpOnkuc2V0TWFudWFsU2l6ZShfZSx5Lm5ld1NpemUpLHkuc2F2ZU1hbnVhbENvbHVtbldpZHRocygpLHkuaG90LnJ1bkhvb2tzKCJhZnRlckNvbHVtblJlc2l6ZSIseS5uZXdTaXplLF9lLCEwKSxC''@;'; put 'put ''ZSYmQygpfTt0aGlzLmRibGNsaWNrPj0yJiYodGhpcy5zZWxlY3RlZENvbHMubGVuZ3RoPjE/KFVyKHRoaXMuc2VsZWN0ZWRDb2xzLGZ1bmN0aW9uKHVlKXtJKHVlKX0pLEMoKSk6VXIodGhpcy5zZWxlY3RlZENvbHMsZnVuY3Rpb24odWUpe0kodWUsITApfSkpLHRoaXMuZGJsY2xpY2s9MCx0''@;'; put 'put ''aGlzLmF1dG9yZXNpemVUaW1lb3V0PW51bGx9fSx7a2V5OiJvbk1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0bCh5LnRhcmdldCwibWFudWFsQ29sdW1uUmVzaXplciIpJiYodGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHRoaXMuY3VycmVudFRIKSx0aGlzLnNldHVw''@;'; put 'put ''R3VpZGVQb3NpdGlvbigpLHRoaXMucHJlc3NlZD0hMCxudWxsPT09dGhpcy5hdXRvcmVzaXplVGltZW91dCYmKHRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQ9c2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybiBDLmFmdGVyTW91c2VEb3duVGltZW91dCgpfSw1MDApLHRoaXMuaG90Ll9yZWdpc3Rl''@;'; put 'put ''clRpbWVvdXQodGhpcy5hdXRvcmVzaXplVGltZW91dCkpLHRoaXMuZGJsY2xpY2srPTEsdGhpcy5zdGFydFg9eS5wYWdlWCx0aGlzLm5ld1NpemU9dGhpcy5zdGFydFdpZHRoKX19LHtrZXk6Im9uTW91c2VNb3ZlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO2lmKHRoaXMucHJlc3Nl''@;'; put 'put ''ZCl7dmFyIEk9KHkucGFnZVgtdGhpcy5zdGFydFgpKnRoaXMuaG90LmdldERpcmVjdGlvbkZhY3RvcigpO3RoaXMuY3VycmVudFdpZHRoPXRoaXMuc3RhcnRXaWR0aCtJLFVyKHRoaXMuc2VsZWN0ZWRDb2xzLGZ1bmN0aW9uKFope0MubmV3U2l6ZT1DLnNldE1hbnVhbFNpemUoWixDLmN1cnJl''@;'; put 'put ''bnRXaWR0aCl9KSx0aGlzLnJlZnJlc2hIYW5kbGVQb3NpdGlvbigpLHRoaXMucmVmcmVzaEd1aWRlUG9zaXRpb24oKX19fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPWZ1bmN0aW9uKCl7eS5ob3QuZm9yY2VGdWxsUmVuZGVyPSEwLHkuaG90LnZpZXcu''@;'; put 'put ''cmVuZGVyKCkseS5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoITApfSxJPWZ1bmN0aW9uKF9lLEJlKXt5LmhvdC5ydW5Ib29rcygiYmVmb3JlQ29sdW1uUmVzaXplIix5Lm5ld1NpemUsX2UsITEpLEJlJiZDKCkseS5zYXZlTWFudWFsQ29sdW1uV2lkdGhzKCkseS5ob3QucnVuSG9va3Mo''@;'; put 'put ''ImFmdGVyQ29sdW1uUmVzaXplIix5Lm5ld1NpemUsX2UsITEpfTt0aGlzLnByZXNzZWQmJih0aGlzLmhpZGVIYW5kbGVBbmRHdWlkZSgpLHRoaXMucHJlc3NlZD0hMSx0aGlzLm5ld1NpemUhPT10aGlzLnN0YXJ0V2lkdGgmJih0aGlzLnNlbGVjdGVkQ29scy5sZW5ndGg+MT8oVXIodGhpcy5z''@;'; put 'put ''ZWxlY3RlZENvbHMsZnVuY3Rpb24odWUpe0kodWUpfSksQygpKTpVcih0aGlzLnNlbGVjdGVkQ29scyxmdW5jdGlvbih1ZSl7SSh1ZSwhMCl9KSksdGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHRoaXMuY3VycmVudFRIKSl9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3Zh''@;'; put 'put ''ciB5PXRoaXMsQz10aGlzLmhvdCxJPUMucm9vdFdpbmRvdyxaPUMucm9vdEVsZW1lbnQ7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihaLCJtb3VzZW92ZXIiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vbk1vdXNlT3Zlcih1ZSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVu''@;'; put 'put ''dExpc3RlbmVyKFosIm1vdXNlZG93biIsZnVuY3Rpb24odWUpe3JldHVybiB5Lm9uTW91c2VEb3duKHVlKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwibW91c2Vtb3ZlIixmdW5jdGlvbih1ZSl7cmV0dXJuIHkub25Nb3VzZU1vdmUodWUpfSksdGhpcy5ldmVudE1h''@;'; put 'put ''bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLCJtb3VzZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW91c2VVcCgpfSl9fSx7a2V5OiJvbk1vZGlmeUNvbFdpZHRoIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXk7aWYodGhpcy5lbmFibGVkKXt2YXIgWj10aGlzLmhvdC50b1BoeXNpY2Fs''@;'; put 'put ''Q29sdW1uKEMpLHVlPXRoaXMuY29sdW1uV2lkdGhzTWFwLmdldFZhbHVlQXRJbmRleChaKTt0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2JuZV0mJnVlJiYoST11ZSl9cmV0dXJuIEl9fSx7a2V5OiJvbkJlZm9yZVN0cmV0Y2hpbmdDb2x1bW5XaWR0aCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIg''@;'; put 'put ''ST10aGlzLmNvbHVtbldpZHRoc01hcC5nZXRWYWx1ZUF0SW5kZXgoQyk7cmV0dXJuIG51bGw9PT1JJiYoST15KSxJfX0se2tleToib25CZWZvcmVDb2x1bW5SZXNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3Qudmlldy5fd3Qud3RWaWV3cG9ydC5yZXNldEhhc092ZXJzaXplZENvbHVt''@;'; put 'put ''bkhlYWRlcnNNYXJrZWQoKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7ZE0oWHYoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYm5lfX0se2tleToiUExVR0lOX1BSSU9S''@;'; put 'put ''SVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTMwfX1dKSxofShZcyk7ZnVuY3Rpb24gU0llKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2Lndy''@;'; put 'put ''aXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGlSPSJweCIsRTN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gUzN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFz''@;'; put 'put ''cyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMuaG90PWcsdGhpcy5fZWxlbWVudD1udWxsLHRoaXMuc3RhdGU9MH1yZXR1cm4gZnVuY3Rpb24gTTN0KGQsZyxoKXtnJiZTSWUoZC5wcm90b3R5cGUsZyksaCYmU0llKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlw''@;'; put 'put ''ZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbihoKXtoLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHRoaXMuc3RhdGU9Mn19LHtrZXk6ImJ1aWxkIix2YWx1ZTpmdW5jdGlvbigpezA9PT10aGlzLnN0YXRlJiYodGhpcy5fZWxlbWVudD10aGlz''@;'; put 'put ''LmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5zdGF0ZT0xKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5pc0FwcGVuZGVkKCkmJnRoaXMuX2VsZW1lbnQucGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9lbGVtZW50KSx0aGlz''@;'; put 'put ''Ll9lbGVtZW50PW51bGwsdGhpcy5zdGF0ZT0wfX0se2tleToiaXNBcHBlbmRlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gMj09PXRoaXMuc3RhdGV9fSx7a2V5OiJpc0J1aWx0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN0YXRlPj0xfX0se2tleToic2V0UG9zaXRpb24iLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgsdil7dm9pZCAwIT09aCYmKHRoaXMuX2VsZW1lbnQuc3R5bGUudG9wPWgraVIpLHZvaWQgMCE9PXYmJih0aGlzLl9lbGVtZW50LnN0eWxlLmxlZnQ9ditpUil9fSx7a2V5OiJnZXRQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm57dG9wOnRoaXMuX2VsZW1l''@;'; put 'put ''bnQuc3R5bGUudG9wP3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUudG9wLDEwKTowLGxlZnQ6dGhpcy5fZWxlbWVudC5zdHlsZS5sZWZ0P3BhcnNlSW50KHRoaXMuX2VsZW1lbnQuc3R5bGUubGVmdCwxMCk6MH19fSx7a2V5OiJzZXRTaXplIix2YWx1ZTpmdW5jdGlvbihoLHYpe2gmJih0''@;'; put 'put ''aGlzLl9lbGVtZW50LnN0eWxlLndpZHRoPWgraVIpLHYmJih0aGlzLl9lbGVtZW50LnN0eWxlLmhlaWdodD12K2lSKX19LHtrZXk6ImdldFNpemUiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJue3dpZHRoOnRoaXMuX2VsZW1lbnQuc3R5bGUud2lkdGg/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5z''@;'; put 'put ''dHlsZS53aWR0aCwxMCk6MCxoZWlnaHQ6dGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5oZWlnaHQsMTApOjB9fX0se2tleToic2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbihoLHYpe2gmJih0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpblRv''@;'; put 'put ''cD1oK2lSKSx2JiYodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0PXYraVIpfX0se2tleToiZ2V0T2Zmc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybnt0b3A6dGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3A/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5Ub3As''@;'; put 'put ''MTApOjAsbGVmdDp0aGlzLl9lbGVtZW50LnN0eWxlLm1hcmdpbkxlZnQ/cGFyc2VJbnQodGhpcy5fZWxlbWVudC5zdHlsZS5tYXJnaW5MZWZ0LDEwKTowfX19XSksZH0oKTtjb25zdCB4SWU9RTN0O2Z1bmN0aW9uIHVnZShkKXtyZXR1cm4odWdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wm''@;'; put 'put ''JiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wi''@;'; put 'put ''OnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24geDN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gVEllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdb''@;'; put 'put ''aF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gX25lKCl7cmV0dXJuIF9uZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxl''@;'; put 'put ''Y3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9STN0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMu''@;'; put 'put ''dmFsdWV9fSxfbmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEkzdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9b1IoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gY2dlKGQsZyl7cmV0dXJuKGNnZT1PYmplY3Qu''@;'; put 'put ''c2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIE8zdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXVnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lm''@;'; put 'put ''KHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gUjN0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24n''@;'; put 'put ''dCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gb1IoZCl7cmV0dXJuKG9SPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJv''@;'; put 'put ''dG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIEYzdD1mdW5jdGlvbihkKXshZnVuY3Rpb24gRDN0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVs''@;'; put 'put ''bCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcm''@;'; put 'put ''JmNnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEwzdChkKXt2YXIgZz1mdW5jdGlvbiBCM3QoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; put 'put ''UHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1vUihkKTtpZihnKXt2''@;'; put 'put ''YXIgQz1vUih0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gTzN0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7cmV0dXJuIHgzdCh0aGlzLGgpLGcuYXBwbHkodGhpcyxhcmd1''@;'; put 'put ''bWVudHMpfXJldHVybiBmdW5jdGlvbiBUM3QoZCxnLGgpe2cmJlRJZShkLnByb3RvdHlwZSxnKSxoJiZUSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiYnVpbGQiLHZhbHVlOmZ1bmN0aW9uKCl7X25lKG9SKGgucHJv''@;'; put 'put ''dG90eXBlKSwiYnVpbGQiLHRoaXMpLmNhbGwodGhpcyksTzAodGhpcy5fZWxlbWVudCwiaHRfX21hbnVhbFJvd01vdmUtLWJhY2tsaWdodCIpfX1dKSxofSh4SWUpO2NvbnN0IEgzdD1GM3Q7ZnVuY3Rpb24gZmdlKGQpe3JldHVybihmZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5''@;'; put 'put ''bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlw''@;'; put 'put ''ZW9mIGd9KShkKX1mdW5jdGlvbiBOM3QoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBJSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2''@;'; put 'put ''LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBDbmUoKXtyZXR1cm4gQ25lPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYm''@;'; put 'put ''UmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT1qM3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1''@;'; put 'put ''ZX19LENuZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gajN0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1hUihkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBoZ2UoZCxnKXtyZXR1cm4oaGdlPU9iamVjdC5zZXRQ''@;'; put 'put ''cm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gRzN0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09ZmdlKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9p''@;'; put 'put ''ZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBXM3QoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJl''@;'; put 'put ''ZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBhUihkKXtyZXR1cm4oYVI9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19f''@;'; put 'put ''fHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgUTN0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBaM3QoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9y''@;'; put 'put ''IGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmaGdl''@;'; put 'put ''KGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gejN0KGQpe3ZhciBnPWZ1bmN0aW9uIFkzdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94''@;'; put 'put ''eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWFSKGQpO2lmKGcpe3ZhciBD''@;'; put 'put ''PWFSKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBHM3QodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgoKXtyZXR1cm4gTjN0KHRoaXMsaCksZy5hcHBseSh0aGlzLGFyZ3VtZW50''@;'; put 'put ''cyl9cmV0dXJuIGZ1bmN0aW9uIFYzdChkLGcsaCl7ZyYmSUllKGQucHJvdG90eXBlLGcpLGgmJklJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJidWlsZCIsdmFsdWU6ZnVuY3Rpb24oKXtDbmUoYVIoaC5wcm90b3R5''@;'; put 'put ''cGUpLCJidWlsZCIsdGhpcykuY2FsbCh0aGlzKSxPMCh0aGlzLl9lbGVtZW50LCJodF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5lIil9fV0pLGh9KHhJZSk7Y29uc3QgSjN0PVEzdDtmdW5jdGlvbiBkZ2UoZCl7cmV0dXJuKGRnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9s''@;'; put 'put ''Ij09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2Yg''@;'; put 'put ''Z30pKGQpfWZ1bmN0aW9uIERJZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQs''@;'; put 'put ''di5rZXksdil9fWZ1bmN0aW9uIHBNKCl7cmV0dXJuIHBNPSJ1bmRlZmluZWQiIT10eXBlb2YgUmVmbGVjdCYmUmVmbGVjdC5nZXQ/UmVmbGVjdC5nZXQuYmluZCgpOmZ1bmN0aW9uKGcsaCx2KXt2YXIgeT0kM3QoZyxoKTtpZih5KXt2YXIgQz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw''@;'; put 'put ''dG9yKHksaCk7cmV0dXJuIEMuZ2V0P0MuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP2c6dik6Qy52YWx1ZX19LHBNLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiAkM3QoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9''@;'; put 'put ''PShkPUt2KGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIHBnZShkLGcpe3JldHVybihwZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiB0ZHQoZCxnKXtp''@;'; put 'put ''ZihnJiYoIm9iamVjdCI9PT1kZ2UoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGdnZShkKX1m''@;'; put 'put ''dW5jdGlvbiBnZ2UoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfWZ1bmN0aW9uIEt2KGQpe3JldHVybihLdj1PYmplY3Quc2V0UHJvdG90''@;'; put 'put ''eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJiZWZvcmVSb3dNb3ZlIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0''@;'; put 'put ''ZXIoImFmdGVyUm93TW92ZSIpO3ZhciBtZ2U9Im1hbnVhbFJvd01vdmUiLFV3PW5ldyBXZWFrTWFwLExJZT0iaHRfX21hbnVhbFJvd01vdmUiLGtuZT0ic2hvdy11aSIsdmdlPSJvbi1tb3ZpbmctLXJvd3MiLEFnZT0iYWZ0ZXItc2VsZWN0aW9uLS1yb3dzIixpZHQ9ZnVuY3Rpb24oZCl7IWZ1''@;'; put 'put ''bmN0aW9uIHEzdChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUs''@;'; put 'put ''e2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZwZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBlZHQoZCl7dmFyIGc9ZnVuY3Rpb24gbmR0KCl7''@;'; put 'put ''aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJl''@;'; put 'put ''ZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9S3YoZCk7aWYoZyl7dmFyIEM9S3YodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxD''@;'; put 'put ''KX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIHRkdCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gWDN0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBh''@;'; put 'put ''cyBhIGZ1bmN0aW9uIil9KHRoaXMsaCkseT1nLmNhbGwodGhpcyx2KSxVdy5zZXQoZ2dlKHkpLHtyb3dzVG9Nb3ZlOltdLHByZXNzZWQ6dm9pZCAwLHRhcmdldDp7ZXZlbnRQYWdlWTp2b2lkIDAsY29vcmRzOnZvaWQgMCxURDp2b2lkIDAscm93OnZvaWQgMH0sY2FjaGVkRHJvcEluZGV4OnZv''@;'; put 'put ''aWQgMH0pLHkuZXZlbnRNYW5hZ2VyPW5ldyBMMShnZ2UoeSkpLHkuYmFja2xpZ2h0PW5ldyBIM3QodikseS5ndWlkZWxpbmU9bmV3IEozdCh2KSx5fXJldHVybiBmdW5jdGlvbiBLM3QoZCxnLGgpe2cmJkRJZShkLnByb3RvdHlwZSxnKSxoJiZESWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVttZ2VdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFi''@;'; put 'put ''bGVkfHwodGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZURvd24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVPbkNlbGxNb3VzZURvd24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVPbkNlbGxNb3VzZU92ZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHku''@;'; put 'put ''b25CZWZvcmVPbkNlbGxNb3VzZU92ZXIuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclNjcm9sbEhvcml6b250YWxseSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyU2Nyb2xsSG9yaXpvbnRhbGx5KCl9KSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckxvYWREYXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYnVpbGRQbHVnaW5VSSgpLHRoaXMucmVnaXN0ZXJFdmVudHMoKSxPMCh0aGlzLmhvdC5yb290RWxlbWVudCxMSWUpLHBNKEt2KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlz''@;'; put 'put ''KS5jYWxsKHRoaXMpKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQbHVnaW4oKSx0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMubW92ZUJ5U2V0dGluZ3NPckxvYWQoKSxwTShLdihoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2Fs''@;'; put 'put ''bCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7cGwodGhpcy5ob3Qucm9vdEVsZW1lbnQsTEllKSx0aGlzLnVucmVnaXN0ZXJFdmVudHMoKSx0aGlzLmJhY2tsaWdodC5kZXN0cm95KCksdGhpcy5ndWlkZWxpbmUuZGVzdHJveSgpLHBNKEt2KGgucHJvdG90''@;'; put 'put ''eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im1vdmVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHRoaXMubW92ZVJvd3MoW3ldLEMpfX0se2tleToibW92ZVJvd3MiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9VXcuZ2V0KHRoaXMpLFo9SS5j''@;'; put 'put ''YWNoZWREcm9wSW5kZXgsdWU9dGhpcy5pc01vdmVQb3NzaWJsZSh5LEMpLF9lPXRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVSb3dNb3ZlIix5LEMsWix1ZSk7aWYoSS5jYWNoZWREcm9wSW5kZXg9dm9pZCAwLCExIT09X2Upe3VlJiZ0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5tb3ZlSW5kZXhl''@;'; put 'put ''cyh5LEMpO3ZhciBCZT11ZSYmdGhpcy5pc1Jvd09yZGVyQ2hhbmdlZCh5LEMpO3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dNb3ZlIix5LEMsWix1ZSxCZSksQmV9fX0se2tleToiZHJhZ1JvdyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtyZXR1cm4gdGhpcy5kcmFnUm93cyhbeV0s''@;'; put 'put ''Qyl9fSx7a2V5OiJkcmFnUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST10aGlzLmNvdW50RmluYWxJbmRleCh5LEMpO3JldHVybiBVdy5nZXQodGhpcykuY2FjaGVkRHJvcEluZGV4PUMsdGhpcy5tb3ZlUm93cyh5LEkpfX0se2tleToiaXNNb3ZlUG9zc2libGUiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKHksQyl7dmFyIEk9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0Tm90VHJpbW1lZEluZGV4ZXNMZW5ndGgoKSxaPXkubGVuZ3RoK0M+SSx1ZT1DPDAsX2U9eS5zb21lKGZ1bmN0aW9uKE5lKXtyZXR1cm4gTmU8MH0pLEJlPXkuc29tZShmdW5jdGlvbihOZSl7cmV0dXJuIE5lPj1JfSk7''@;'; put 'put ''cmV0dXJuIShafHx1ZXx8X2V8fEJlKX19LHtrZXk6ImlzUm93T3JkZXJDaGFuZ2VkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3JldHVybiB5LnNvbWUoZnVuY3Rpb24oSSxaKXtyZXR1cm4gSS1aIT09Q30pfX0se2tleToiY291bnRGaW5hbEluZGV4Iix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJ''@;'; put 'put ''PVN1KHksZnVuY3Rpb24oWix1ZSl7cmV0dXJuIHVlPEMmJihaKz0xKSxafSwwKTtyZXR1cm4gQy1JfX0se2tleToiZ2V0Um93c0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIsWj0wLHVlPXk7dWU8PUM7dWUrKyl7dmFyIF9lPUku''@;'; put 'put ''Z2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleCh1ZSk7bnVsbCE9PV9lJiYoWis9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZS5nZXRSb3dIZWlnaHQoX2UpfHwyMyl9cmV0dXJuIFp9fSx7a2V5OiJtb3ZlQnlTZXR0aW5nc09yTG9hZCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLmhv''@;'; put 'put ''dC5nZXRTZXR0aW5ncygpW21nZV07aWYoQXJyYXkuaXNBcnJheSh5KSl0aGlzLm1vdmVSb3dzKHksMCk7ZWxzZSBpZih2b2lkIDAhPT15KXt2YXIgQz10aGlzLnBlcnNpc3RlbnRTdGF0ZUxvYWQoKTtDLmxlbmd0aCYmdGhpcy5tb3ZlUm93cyhDLDApfX19LHtrZXk6ImlzRml4ZWRSb3dUb3Ai''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB5PHRoaXMuaG90LmdldFNldHRpbmdzKCkuZml4ZWRSb3dzVG9wfX0se2tleToiaXNGaXhlZFJvd0JvdHRvbSIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHk+dGhpcy5ob3QuY291bnRSb3dzKCktMS10aGlzLmhvdC5nZXRTZXR0aW5ncygpLmZp''@;'; put 'put ''eGVkUm93c0JvdHRvbX19LHtrZXk6InBlcnNpc3RlbnRTdGF0ZVNhdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZVNhdmUiLCJtYW51YWxSb3dNb3ZlIix0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKSl9fSx7''@;'; put 'put ''a2V5OiJwZXJzaXN0ZW50U3RhdGVMb2FkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXt9O3JldHVybiB0aGlzLmhvdC5ydW5Ib29rcygicGVyc2lzdGVudFN0YXRlTG9hZCIsIm1hbnVhbFJvd01vdmUiLHkpLHkudmFsdWU/eS52YWx1ZTpbXX19LHtrZXk6InByZXBhcmVSb3dzVG9Nb3Zpbmci''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxDPVtdO2lmKCF5KXJldHVybiBDO3ZhciBJPXkuZnJvbSxaPXkudG87cmV0dXJuIGlhKE1hdGgubWluKEkucm93LFoucm93KSxNYXRoLm1heChJLnJvdyxaLnJvdyksZnVuY3Rpb24oQmUpe0Mu''@;'; put 'put ''cHVzaChCZSl9KSxDfX0se2tleToicmVmcmVzaFBvc2l0aW9ucyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1Vdy5nZXQodGhpcyksQz15LnRhcmdldC5jb29yZHMsST10aGlzLmhvdC52aWV3LmdldEZpcnN0RnVsbHlWaXNpYmxlUm93KCksWj10aGlzLmhvdC52aWV3LmdldExhc3RGdWxseVZp''@;'; put 'put ''c2libGVSb3coKSx1ZT10aGlzLmhvdC5jb3VudFJvd3MoKTt0aGlzLmlzRml4ZWRSb3dUb3AoQy5yb3cpJiZJPjAmJnRoaXMuaG90LnNjcm9sbFZpZXdwb3J0VG8odGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KEktMSwtMSkpLHRoaXMuaXNGaXhlZFJv''@;'; put 'put ''d0JvdHRvbShDLnJvdykmJlo8dWUmJnRoaXMuaG90LnNjcm9sbFZpZXdwb3J0VG8odGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KForMSwxKSx2b2lkIDAsITApO3ZhciBfZT10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLEJlPXkudGFyZ2V0LlRELE5l''@;'; put 'put ''PWp1KHRoaXMuaG90LnJvb3RFbGVtZW50KSxLZT10aGlzLmhvdC52aWV3LlRIRUFELm9mZnNldEhlaWdodCt0aGlzLmdldFJvd3NIZWlnaHQoMCxDLnJvdy0xKSxwdD15LnRhcmdldC5ldmVudFBhZ2VZLU5lLnRvcCtfZS5ob2xkZXIuc2Nyb2xsVG9wLE90PV9lLmhpZGVyLm9mZnNldEhlaWdo''@;'; put 'put ''dCwkdD1fZS5UQk9EWS5vZmZzZXRUb3AsZm49dGhpcy5iYWNrbGlnaHQuZ2V0T2Zmc2V0KCkudG9wLExuPXRoaXMuYmFja2xpZ2h0LmdldFNpemUoKS5oZWlnaHQ7dGhpcy5pc0ZpeGVkUm93VG9wKEMucm93KSYmKEtlKz1fZS5ob2xkZXIuc2Nyb2xsVG9wKSxDLnJvdzwwP3kudGFyZ2V0LnJv''@;'; put 'put ''dz1JPjA/SS0xOkk6QmUub2Zmc2V0SGVpZ2h0LzIrS2U8PXB0Pyh5LnRhcmdldC5yb3c9Qy5yb3crMSxLZSs9MD09PUMucm93P0JlLm9mZnNldEhlaWdodC0xOkJlLm9mZnNldEhlaWdodCk6eS50YXJnZXQucm93PUMucm93O3ZhciBpcj1wdCxtcj1LZTtwdCtMbitmbj49T3Q/aXI9T3QtTG4t''@;'; put 'put ''Zm46cHQrZm48JHQmJihpcj0kdCtNYXRoLmFicyhmbikpLEtlPj1PdC0xJiYobXI9T3QtMSksdGhpcy5iYWNrbGlnaHQuc2V0UG9zaXRpb24oaXIpLHRoaXMuZ3VpZGVsaW5lLnNldFBvc2l0aW9uKG1yKX19LHtrZXk6InJlZ2lzdGVyRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRo''@;'; put 'put ''aXMsQz10aGlzLmhvdC5yb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3RoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoQywibW91c2Vtb3ZlIixmdW5jdGlvbihJKXtyZXR1cm4geS5vbk1vdXNlTW92ZShJKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo''@;'; put 'put ''QywibW91c2V1cCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vdXNlVXAoKX0pfX0se2tleToidW5yZWdpc3RlckV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmV2ZW50TWFuYWdlci5jbGVhcigpfX0se2tleToib25CZWZvcmVPbkNlbGxNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHks''@;'; put 'put ''QyxJLFope3ZhciB1ZT10aGlzLmhvdC52aWV3Ll93dCxfZT11ZS53dFRhYmxlLEJlPXVlLnd0Vmlld3BvcnQsTmU9dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpLEtlPXRoaXMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCkscHQ9VXcuZ2V0KHRoaXMpO2lmKCFL''@;'; put 'put ''ZXx8IU5lfHxwdC5wcmVzc2VkfHwwIT09eS5idXR0b24pcmV0dXJuIHB0LnByZXNzZWQ9ITEscHQucm93c1RvTW92ZS5sZW5ndGg9MCx2b2lkIHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LFt2Z2Usa25lXSk7dmFyIE90PXRoaXMuZ3VpZGVsaW5lLmlzQnVpbHQoKSYmIXRoaXMuZ3VpZGVsaW5l''@;'; put 'put ''LmlzQXBwZW5kZWQoKSwkdD10aGlzLmJhY2tsaWdodC5pc0J1aWx0KCkmJiF0aGlzLmJhY2tsaWdodC5pc0FwcGVuZGVkKCk7T3QmJiR0JiYodGhpcy5ndWlkZWxpbmUuYXBwZW5kVG8oX2UuaGlkZXIpLHRoaXMuYmFja2xpZ2h0LmFwcGVuZFRvKF9lLmhpZGVyKSk7dmFyIGZuPUtlLmZyb20s''@;'; put 'put ''TG49S2UudG8saXI9TWF0aC5taW4oZm4ucm93LExuLnJvdyksbXI9TWF0aC5tYXgoZm4ucm93LExuLnJvdyk7aWYoQy5jb2w8MCYmQy5yb3c+PWlyJiZDLnJvdzw9bXIpe1oucm93PSEwLHB0LnByZXNzZWQ9ITAscHQudGFyZ2V0LmV2ZW50UGFnZVk9eS5wYWdlWSxwdC50YXJnZXQuY29vcmRz''@;'; put 'put ''PUMscHQudGFyZ2V0LlREPUkscHQucm93c1RvTW92ZT10aGlzLnByZXBhcmVSb3dzVG9Nb3ZpbmcoKTt2YXIgU3I9X2UuaG9sZGVyLnNjcm9sbExlZnQrQmUuZ2V0Um93SGVhZGVyV2lkdGgoKTt0aGlzLmJhY2tsaWdodC5zZXRQb3NpdGlvbihudWxsLFNyKSx0aGlzLmJhY2tsaWdodC5zZXRT''@;'; put 'put ''aXplKF9lLmhpZGVyLm9mZnNldFdpZHRoLVNyLHRoaXMuZ2V0Um93c0hlaWdodChpcixtcikpLHRoaXMuYmFja2xpZ2h0LnNldE9mZnNldCgtMSoodGhpcy5nZXRSb3dzSGVpZ2h0KGlyLEMucm93LTEpK3kub2Zmc2V0WSksbnVsbCksTzAodGhpcy5ob3Qucm9vdEVsZW1lbnQsdmdlKSx0aGlz''@;'; put 'put ''LnJlZnJlc2hQb3NpdGlvbnMoKX1lbHNlIHBsKHRoaXMuaG90LnJvb3RFbGVtZW50LEFnZSkscHQucHJlc3NlZD0hMSxwdC5yb3dzVG9Nb3ZlLmxlbmd0aD0wfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPVV3LmdldCh0aGlzKTtpZihDLnByZXNzZWQpe2lm''@;'; put 'put ''KHkudGFyZ2V0PT09dGhpcy5iYWNrbGlnaHQuZWxlbWVudCl7dmFyIEk9dGhpcy5iYWNrbGlnaHQuZ2V0U2l6ZSgpLmhlaWdodDt0aGlzLmJhY2tsaWdodC5zZXRTaXplKG51bGwsMCksc2V0VGltZW91dChmdW5jdGlvbigpe3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsSSl9KX1D''@;'; put 'put ''LnRhcmdldC5ldmVudFBhZ2VZPXkucGFnZVksdGhpcy5yZWZyZXNoUG9zaXRpb25zKCl9fX0se2tleToib25CZWZvcmVPbkNlbGxNb3VzZU92ZXIiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFope3ZhciB1ZT10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLF9lPVV3LmdldCh0aGlzKTsh''@;'; put 'put ''dWV8fCFfZS5wcmVzc2VkfHwoX2Uucm93c1RvTW92ZS5pbmRleE9mKEMucm93KT4tMT9wbCh0aGlzLmhvdC5yb290RWxlbWVudCxrbmUpOk8wKHRoaXMuaG90LnJvb3RFbGVtZW50LGtuZSksWi5yb3c9ITAsWi5jb2x1bW49ITAsWi5jZWxsPSEwLF9lLnRhcmdldC5jb29yZHM9QyxfZS50YXJn''@;'; put 'put ''ZXQuVEQ9SSl9fSx7a2V5OiJvbk1vdXNlVXAiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9VXcuZ2V0KHRoaXMpLEM9eS50YXJnZXQucm93LEk9eS5yb3dzVG9Nb3ZlLmxlbmd0aDtpZih5LnByZXNzZWQ9ITEseS5iYWNrbGlnaHRIZWlnaHQ9MCxwbCh0aGlzLmhvdC5yb290RWxlbWVudCxbdmdl''@;'; put 'put ''LGtuZSxBZ2VdKSx0aGlzLmhvdC5zZWxlY3Rpb24uaXNTZWxlY3RlZEJ5Um93SGVhZGVyKCkmJk8wKHRoaXMuaG90LnJvb3RFbGVtZW50LEFnZSksIShJPDF8fHZvaWQgMD09PUMpKXt2YXIgdWU9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5LnJvd3NUb01vdmVbMF0pLF9lPXRoaXMuZHJhZ1Jv''@;'; put 'put ''d3MoeS5yb3dzVG9Nb3ZlLEMpO2lmKHkucm93c1RvTW92ZS5sZW5ndGg9MCwhMD09PV9lKXt0aGlzLnBlcnNpc3RlbnRTdGF0ZVNhdmUoKSx0aGlzLmhvdC5yZW5kZXIoKSx0aGlzLmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCk7dmFyIEJlPXRoaXMuaG90LnRvVmlzdWFsUm93KHVl''@;'; put 'put ''KTt0aGlzLmhvdC5zZWxlY3RSb3dzKEJlLEJlK0ktMSl9fX19LHtrZXk6Im9uQWZ0ZXJTY3JvbGxIb3Jpem9udGFsbHkiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3Qudmlldy5fd3Qud3RUYWJsZSxaPXRoaXMuaG90LnZpZXcuX3d0Lnd0Vmlld3BvcnQuZ2V0Um93SGVhZGVyV2lk''@;'; put 'put ''dGgoKSt5LmhvbGRlci5zY3JvbGxMZWZ0O3RoaXMuYmFja2xpZ2h0LnNldFBvc2l0aW9uKG51bGwsWiksdGhpcy5iYWNrbGlnaHQuc2V0U2l6ZSh5LmhpZGVyLm9mZnNldFdpZHRoLVopfX0se2tleToiYnVpbGRQbHVnaW5VSSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmJhY2tsaWdodC5idWls''@;'; put 'put ''ZCgpLHRoaXMuZ3VpZGVsaW5lLmJ1aWxkKCl9fSx7a2V5OiJvbkFmdGVyTG9hZERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tb3ZlQnlTZXR0aW5nc09yTG9hZCgpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmJhY2tsaWdodC5kZXN0cm95KCksdGhpcy5ndWlk''@;'; put 'put ''ZWxpbmUuZGVzdHJveSgpLHBNKEt2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG1nZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDE0MH19XSks''@;'; put 'put ''aH0oWXMpO2Z1bmN0aW9uIHlnZShkKXtyZXR1cm4oeWdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBT''@;'; put 'put ''eW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gT0llKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5j''@;'; put 'put ''b25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZ00oKXtyZXR1cm4gZ009InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVu''@;'; put 'put ''Y3Rpb24oZyxoLHYpe3ZhciB5PWxkdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sZ00uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0''@;'; put 'put ''aW9uIGxkdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9JHYoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gd2dlKGQsZyl7cmV0dXJuKHdnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJp''@;'; put 'put ''bmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGNkdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXlnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZl''@;'; put 'put ''ZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gYmdlKGQpfWZ1bmN0aW9uIGJnZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFz''@;'; put 'put ''bid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gJHYoZCl7cmV0dXJuKCR2PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9''@;'; put 'put ''dmFyIEJJZSxQSWUsRkllLEhJZSxTbmU9Im1hbnVhbFJvd1Jlc2l6ZSIsUkllPSJtYW51YWxSb3dIZWlnaHRzIixfZ2U9bmV3IFdlYWtNYXAsZGR0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBzZHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVF''@;'; put 'put ''cnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmd2dlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gdWR0KGQpe3ZhciBnPWZ1bmN0aW9uIGZkdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0''@;'; put 'put ''cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0o''@;'; put 'put ''KTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PSR2KGQpO2lmKGcpe3ZhciBDPSR2KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBjZHQodGhpcyx5KX19KGgpO2Z1bmN0aW9u''@;'; put 'put ''IGgodil7dmFyIHk7IWZ1bmN0aW9uIG9kdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpO3ZhciBDPSh5PWcuY2FsbCh0aGlzLHYpKS5ob3Qucm9vdERvY3VtZW50O3JldHVy''@;'; put 'put ''biB5LmN1cnJlbnRUSD1udWxsLHkuY3VycmVudFJvdz1udWxsLHkuc2VsZWN0ZWRSb3dzPVtdLHkuY3VycmVudEhlaWdodD1udWxsLHkubmV3U2l6ZT1udWxsLHkuc3RhcnRZPW51bGwseS5zdGFydEhlaWdodD1udWxsLHkuc3RhcnRPZmZzZXQ9bnVsbCx5LmhhbmRsZT1DLmNyZWF0ZUVsZW1l''@;'; put 'put ''bnQoIkRJViIpLHkuZ3VpZGU9Qy5jcmVhdGVFbGVtZW50KCJESVYiKSx5LmV2ZW50TWFuYWdlcj1uZXcgTDEoYmdlKHkpKSx5LnByZXNzZWQ9bnVsbCx5LmRibGNsaWNrPTAseS5hdXRvcmVzaXplVGltZW91dD1udWxsLHkucm93SGVpZ2h0c01hcD12b2lkIDAsX2dlLnNldChiZ2UoeSkse2Nv''@;'; put 'put ''bmZpZzp2b2lkIDB9KSxPMCh5LmhhbmRsZSwibWFudWFsUm93UmVzaXplciIpLE8wKHkuZ3VpZGUsIm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZSIpLHl9cmV0dXJuIGZ1bmN0aW9uIGFkdChkLGcsaCl7ZyYmT0llKGQucHJvdG90eXBlLGcpLGgmJk9JZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpbmxpbmVEaXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5pc1J0bCgpPyJyaWdodCI6ImxlZnQifX0se2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0''@;'; put 'put ''aW5ncygpW1NuZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnJvd0hlaWdodHNNYXA9bmV3IER3LHRoaXMucm93SGVpZ2h0c01hcC5hZGRMb2NhbEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25N''@;'; put 'put ''YXBJbml0KCl9KSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci5yZWdpc3Rlck1hcCh0aGlzLnBsdWdpbk5hbWUsdGhpcy5yb3dIZWlnaHRzTWFwKSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlaWdodCIsZnVuY3Rpb24oQyxJKXtyZXR1cm4geS5vbk1vZGlmeVJvd0hlaWdodChDLEkpfSksdGhp''@;'; put 'put ''cy5iaW5kRXZlbnRzKCksZ00oJHYoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksZ00oJHYoaC5wcm90b3R5cGUp''@;'; put 'put ''LCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe19nZS5nZXQodGhpcykuY29uZmlnPXRoaXMucm93SGVpZ2h0c01hcC5nZXRWYWx1ZXMoKSx0aGlzLmhvdC5yb3dJbmRleE1hcHBlci51bnJlZ2lzdGVyTWFwKHRo''@;'; put 'put ''aXMucGx1Z2luTmFtZSksZ00oJHYoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToic2F2ZU1hbnVhbFJvd0hlaWdodHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucnVuSG9va3MoInBlcnNpc3RlbnRTdGF0ZVNhdmUiLFJJZSx0aGlzLnJv''@;'; put 'put ''d0hlaWdodHNNYXAuZ2V0VmFsdWVzKCkpfX0se2tleToibG9hZE1hbnVhbFJvd0hlaWdodHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9e307cmV0dXJuIHRoaXMuaG90LnJ1bkhvb2tzKCJwZXJzaXN0ZW50U3RhdGVMb2FkIixSSWUseSkseS52YWx1ZX19LHtrZXk6InNldE1hbnVhbFNpemUi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyh5KSxaPU1hdGgubWF4KEMsakNlLkRFRkFVTFRfSEVJR0hUKTtyZXR1cm4gdGhpcy5yb3dIZWlnaHRzTWFwLnNldFZhbHVlQXRJbmRleChJLFopLFp9fSx7a2V5OiJzZXR1cEhhbmRsZVBvc2l0aW9uIix2''@;'; put 'put ''YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzO3RoaXMuY3VycmVudFRIPXk7dmFyIEk9dGhpcy5ob3QudmlldyxaPUkuX3d0LHVlPVoud3RUYWJsZS5nZXRDb29yZHModGhpcy5jdXJyZW50VEgpLF9lPXVlLnJvdztpZighKF9lPDApKXt2YXIgT3QsQmU9RTIodGhpcy5jdXJyZW50VEgpLE5l''@;'; put 'put ''PXRoaXMuY3VycmVudFRILmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEtlPV9lPFouZ2V0U2V0dGluZygiZml4ZWRSb3dzVG9wIikscHQ9X2U+PUkuY291bnROb3RIaWRkZW5Sb3dJbmRleGVzKDAsMSktWi5nZXRTZXR0aW5nKCJmaXhlZFJvd3NCb3R0b20iKTtLZT9PdD1aLnd0T3ZlcmxheXMu''@;'; put 'put ''dG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LmdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uKHRoaXMuY3VycmVudFRILHVlLnJvdyx1ZS5jb2wpOnB0JiYoT3Q9Wi53dE92ZXJsYXlzLmJvdHRvbUlubGluZVN0YXJ0Q29ybmVyT3ZlcmxheS5nZXRSZWxhdGl2ZUNlbGxQb3NpdGlvbih0aGlzLmN1''@;'; put 'put ''cnJlbnRUSCx1ZS5yb3csdWUuY29sKSksT3R8fChPdD1aLnd0T3ZlcmxheXMuaW5saW5lU3RhcnRPdmVybGF5LmdldFJlbGF0aXZlQ2VsbFBvc2l0aW9uKHRoaXMuY3VycmVudFRILHVlLnJvdyx1ZS5jb2wpKSx0aGlzLmN1cnJlbnRSb3c9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIuZ2V0Vmlz''@;'; put 'put ''dWFsRnJvbVJlbmRlcmFibGVJbmRleChfZSksdGhpcy5zZWxlY3RlZFJvd3M9W107dmFyICR0PXRoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKXx8dGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpO3RoaXMuaG90LnNlbGVjdGlvbi5pc1NlbGVj''@;'; put 'put ''dGVkKCkmJiR0JiZVcih0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlKCksZnVuY3Rpb24oTG4pe2lhKExuLmdldFRvcFN0YXJ0Q29ybmVyKCkucm93LExuLmdldEJvdHRvbVN0YXJ0Q29ybmVyKCkucm93LGZ1bmN0aW9uKFNyKXtDLnNlbGVjdGVkUm93cy5pbmNsdWRlcyhTcil8fEMuc2VsZWN0''@;'; put 'put ''ZWRSb3dzLnB1c2goU3IpfSl9KSx0aGlzLnNlbGVjdGVkUm93cy5pbmNsdWRlcyh0aGlzLmN1cnJlbnRSb3cpfHwodGhpcy5zZWxlY3RlZFJvd3M9W3RoaXMuY3VycmVudFJvd10pLHRoaXMuc3RhcnRPZmZzZXQ9T3QudG9wLTYsdGhpcy5zdGFydEhlaWdodD1wYXJzZUludChOZS5oZWlnaHQs''@;'; put 'put ''MTApLHRoaXMuaGFuZGxlLnN0eWxlLnRvcD0iIi5jb25jYXQodGhpcy5zdGFydE9mZnNldCt0aGlzLnN0YXJ0SGVpZ2h0LCJweCIpLHRoaXMuaGFuZGxlLnN0eWxlW3RoaXMuaW5saW5lRGlyXT0iIi5jb25jYXQoT3Quc3RhcnQsInB4IiksdGhpcy5oYW5kbGUuc3R5bGUud2lkdGg9IiIuY29u''@;'; put 'put ''Y2F0KEJlLCJweCIpLHRoaXMuaG90LnJvb3RFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuaGFuZGxlKX19fSx7a2V5OiJyZWZyZXNoSGFuZGxlUG9zaXRpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGUuc3R5bGUudG9wPSIiLmNvbmNhdCh0aGlzLnN0YXJ0T2Zmc2V0K3RoaXMuY3Vy''@;'; put 'put ''cmVudEhlaWdodCwicHgiKX19LHtrZXk6InNldHVwR3VpZGVQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT1wYXJzZUludChFMih0aGlzLmhhbmRsZSksMTApLEM9cGFyc2VJbnQodGhpcy5oYW5kbGUuc3R5bGVbdGhpcy5pbmxpbmVEaXJdLDEwKSt5LEk9cGFyc2VJbnQodGhpcy5o''@;'; put 'put ''b3Qudmlldy5tYXhpbXVtVmlzaWJsZUVsZW1lbnRXaWR0aCgwKSwxMCk7TzAodGhpcy5oYW5kbGUsImFjdGl2ZSIpLE8wKHRoaXMuZ3VpZGUsImFjdGl2ZSIpLHRoaXMuZ3VpZGUuc3R5bGUudG9wPXRoaXMuaGFuZGxlLnN0eWxlLnRvcCx0aGlzLmd1aWRlLnN0eWxlW3RoaXMuaW5saW5lRGly''@;'; put 'put ''XT0iIi5jb25jYXQoQywicHgiKSx0aGlzLmd1aWRlLnN0eWxlLndpZHRoPSIiLmNvbmNhdChJLXksInB4IiksdGhpcy5ob3Qucm9vdEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5ndWlkZSl9fSx7a2V5OiJyZWZyZXNoR3VpZGVQb3NpdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmd1aWRl''@;'; put 'put ''LnN0eWxlLnRvcD10aGlzLmhhbmRsZS5zdHlsZS50b3B9fSx7a2V5OiJoaWRlSGFuZGxlQW5kR3VpZGUiLHZhbHVlOmZ1bmN0aW9uKCl7cGwodGhpcy5oYW5kbGUsImFjdGl2ZSIpLHBsKHRoaXMuZ3VpZGUsImFjdGl2ZSIpfX0se2tleToiY2hlY2tJZlJvd0hlYWRlciIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oeSl7dmFyIEMsSTtyZXR1cm4gTXYoeSxbIlRIIl0sdGhpcy5ob3Qucm9vdEVsZW1lbnQpJiYiVEJPRFkiPT09KG51bGw9PT0oQz15LnBhcmVudE5vZGUpfHx2b2lkIDA9PT1DfHxudWxsPT09KEk9Qy5wYXJlbnROb2RlKXx8dm9pZCAwPT09ST92b2lkIDA6SS50YWdOYW1lKX19LHtrZXk6''@;'; put 'put ''ImdldENsb3Nlc3RUSFBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIlRBQkxFIiE9PXkudGFnTmFtZT8iVEgiPT09eS50YWdOYW1lP3k6dGhpcy5nZXRDbG9zZXN0VEhQYXJlbnQoeS5wYXJlbnROb2RlKTpudWxsfX0se2tleToiZ2V0QWN0dWFsUm93SGVpZ2h0Iix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbih5KXt2YXIgQz10aGlzLmhvdC52aWV3Ll93dC53dFRhYmxlLmdldFJvd0hlaWdodCh5KTtyZXR1cm4gdm9pZCAwIT09QyYmdGhpcy5uZXdTaXplPEM/Qzp0aGlzLm5ld1NpemV9fSx7a2V5OiJvbk1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSl7aWYoIXkzZSh5LnRhcmdldCkmJnRo''@;'; put 'put ''aXMuY2hlY2tJZlJvd0hlYWRlcih5LnRhcmdldCkpe3ZhciBDPXRoaXMuZ2V0Q2xvc2VzdFRIUGFyZW50KHkudGFyZ2V0KTtDJiYodGhpcy5wcmVzc2VkfHx0aGlzLnNldHVwSGFuZGxlUG9zaXRpb24oQykpfX19LHtrZXk6ImFmdGVyTW91c2VEb3duVGltZW91dCIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24oKXt5LmhvdC5mb3JjZUZ1bGxSZW5kZXI9ITAseS5ob3Qudmlldy5yZW5kZXIoKSx5LmhvdC52aWV3LmFkanVzdEVsZW1lbnRzU2l6ZSghMCl9LEk9ZnVuY3Rpb24oX2UsQmUpe3ZhciBOZT15LmhvdC5ydW5Ib29rcygiYmVmb3JlUm93UmVzaXplIix5''@;'; put 'put ''LmdldEFjdHVhbFJvd0hlaWdodChfZSksX2UsITApO3ZvaWQgMCE9PU5lJiYoeS5uZXdTaXplPU5lKSx5LnNldE1hbnVhbFNpemUoX2UseS5uZXdTaXplKSx5LmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dSZXNpemUiLHkuZ2V0QWN0dWFsUm93SGVpZ2h0KF9lKSxfZSwhMCksQmUmJkMoKX07dGhp''@;'; put 'put ''cy5kYmxjbGljaz49MiYmKHRoaXMuc2VsZWN0ZWRSb3dzLmxlbmd0aD4xPyhVcih0aGlzLnNlbGVjdGVkUm93cyxmdW5jdGlvbih1ZSl7SSh1ZSl9KSxDKCkpOlVyKHRoaXMuc2VsZWN0ZWRSb3dzLGZ1bmN0aW9uKHVlKXtJKHVlLCEwKX0pKSx0aGlzLmRibGNsaWNrPTAsdGhpcy5hdXRvcmVz''@;'; put 'put ''aXplVGltZW91dD1udWxsfX0se2tleToib25Nb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7dGwoeS50YXJnZXQsIm1hbnVhbFJvd1Jlc2l6ZXIiKSYmKHRoaXMuc2V0dXBIYW5kbGVQb3NpdGlvbih0aGlzLmN1cnJlbnRUSCksdGhpcy5zZXR1cEd1aWRlUG9zaXRpb24o''@;'; put 'put ''KSx0aGlzLnByZXNzZWQ9ITAsbnVsbD09PXRoaXMuYXV0b3Jlc2l6ZVRpbWVvdXQmJih0aGlzLmF1dG9yZXNpemVUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyZXR1cm4gQy5hZnRlck1vdXNlRG93blRpbWVvdXQoKX0sNTAwKSx0aGlzLmhvdC5fcmVnaXN0ZXJUaW1lb3V0KHRoaXMu''@;'; put 'put ''YXV0b3Jlc2l6ZVRpbWVvdXQpKSx0aGlzLmRibGNsaWNrKz0xLHRoaXMuc3RhcnRZPXkucGFnZVksdGhpcy5uZXdTaXplPXRoaXMuc3RhcnRIZWlnaHQpfX0se2tleToib25Nb3VzZU1vdmUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7dGhpcy5wcmVzc2VkJiYodGhpcy5jdXJyZW50''@;'; put 'put ''SGVpZ2h0PXRoaXMuc3RhcnRIZWlnaHQrKHkucGFnZVktdGhpcy5zdGFydFkpLFVyKHRoaXMuc2VsZWN0ZWRSb3dzLGZ1bmN0aW9uKEkpe0MubmV3U2l6ZT1DLnNldE1hbnVhbFNpemUoSSxDLmN1cnJlbnRIZWlnaHQpfSksdGhpcy5yZWZyZXNoSGFuZGxlUG9zaXRpb24oKSx0aGlzLnJlZnJl''@;'; put 'put ''c2hHdWlkZVBvc2l0aW9uKCkpfX0se2tleToib25Nb3VzZVVwIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz1mdW5jdGlvbigpe3kuaG90LmZvcmNlRnVsbFJlbmRlcj0hMCx5LmhvdC52aWV3LnJlbmRlcigpLHkuaG90LnZpZXcuYWRqdXN0RWxlbWVudHNTaXplKCEwKX0sST1mdW5j''@;'; put 'put ''dGlvbihfZSxCZSl7eS5ob3QucnVuSG9va3MoImJlZm9yZVJvd1Jlc2l6ZSIseS5nZXRBY3R1YWxSb3dIZWlnaHQoX2UpLF9lLCExKSxCZSYmQygpLHkuc2F2ZU1hbnVhbFJvd0hlaWdodHMoKSx5LmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dSZXNpemUiLHkuZ2V0QWN0dWFsUm93SGVpZ2h0KF9l''@;'; put 'put ''KSxfZSwhMSl9O3RoaXMucHJlc3NlZCYmKHRoaXMuaGlkZUhhbmRsZUFuZEd1aWRlKCksdGhpcy5wcmVzc2VkPSExLHRoaXMubmV3U2l6ZSE9PXRoaXMuc3RhcnRIZWlnaHQmJih0aGlzLnNlbGVjdGVkUm93cy5sZW5ndGg+MT8oVXIodGhpcy5zZWxlY3RlZFJvd3MsZnVuY3Rpb24odWUpe0ko''@;'; put 'put ''dWUpfSksQygpKTpVcih0aGlzLnNlbGVjdGVkUm93cyxmdW5jdGlvbih1ZSl7SSh1ZSwhMCl9KSksdGhpcy5zZXR1cEhhbmRsZVBvc2l0aW9uKHRoaXMuY3VycmVudFRIKSl9fSx7a2V5OiJiaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmhvdCxJPUMucm9v''@;'; put 'put ''dEVsZW1lbnQsWj1DLnJvb3RXaW5kb3c7dGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihJLCJtb3VzZW92ZXIiLGZ1bmN0aW9uKHVlKXtyZXR1cm4geS5vbk1vdXNlT3Zlcih1ZSl9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEksIm1vdXNlZG93biIsZnVu''@;'; put 'put ''Y3Rpb24odWUpe3JldHVybiB5Lm9uTW91c2VEb3duKHVlKX0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoWiwibW91c2Vtb3ZlIixmdW5jdGlvbih1ZSl7cmV0dXJuIHkub25Nb3VzZU1vdmUodWUpfSksdGhpcy5ldmVudE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihaLCJt''@;'; put 'put ''b3VzZXVwIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW91c2VVcCgpfSl9fSx7a2V5OiJvbk1vZGlmeVJvd0hlaWdodCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST15O2lmKHRoaXMuZW5hYmxlZCl7dmFyIFo9dGhpcy5ob3QudG9QaHlzaWNhbFJvdyhDKSx1ZT10aGlzLnJvd0hlaWdodHNN''@;'; put 'put ''YXAuZ2V0VmFsdWVBdEluZGV4KFopO3RoaXMuaG90LmdldFNldHRpbmdzKClbU25lXSYmdWUmJihJPXVlKX1yZXR1cm4gSX19LHtrZXk6Im9uTWFwSW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9X2dlLmdldCh0aGlzKSxJPXRoaXMuaG90LmdldFNldHRpbmdzKClbU25lXSxa''@;'; put 'put ''PXRoaXMubG9hZE1hbnVhbFJvd0hlaWdodHMoKTt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe3ZvaWQgMCE9PVo/Wi5mb3JFYWNoKGZ1bmN0aW9uKHVlLF9lKXt5LnJvd0hlaWdodHNNYXAuc2V0VmFsdWVBdEluZGV4KF9lLHVlKX0pOkFycmF5LmlzQXJyYXkoSSk/KEkuZm9y''@;'; put 'put ''RWFjaChmdW5jdGlvbih1ZSxfZSl7eS5yb3dIZWlnaHRzTWFwLnNldFZhbHVlQXRJbmRleChfZSx1ZSl9KSxDLmNvbmZpZz1JKTohMD09PUkmJkFycmF5LmlzQXJyYXkoQy5jb25maWcpJiZDLmNvbmZpZy5mb3JFYWNoKGZ1bmN0aW9uKHVlLF9lKXt5LnJvd0hlaWdodHNNYXAuc2V0VmFsdWVB''@;'; put 'put ''dEluZGV4KF9lLHVlKX0pfSwhMCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2dNKCR2KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFNuZX19LHtrZXk6IlBMVUdJTl9Q''@;'; put 'put ''UklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDMwfX1dKSxofShZcyk7ZnVuY3Rpb24gTW5lKGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX1mdW5j''@;'; put 'put ''dGlvbiBOSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12''@;'; put 'put ''YXIgbWR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgsdix5LEMsSSl7KGZ1bmN0aW9uIHBkdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnJvdz1nLHRoaXMu''@;'; put 'put ''Y29sPWgsdGhpcy5yb3dzcGFuPXYsdGhpcy5jb2xzcGFuPXksdGhpcy5yZW1vdmVkPSExLHRoaXMuY2VsbENvb3Jkc0ZhY3Rvcnk9Qyx0aGlzLmNlbGxSYW5nZUZhY3Rvcnk9SX1yZXR1cm4gZnVuY3Rpb24gZ2R0KGQsZyxoKXtnJiZOSWUoZC5wcm90b3R5cGUsZyksaCYmTkllKGQsaCksT2Jq''@;'; put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6Im5vcm1hbGl6ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aC5jb3VudFJvd3MoKSx5PWguY291bnRDb2xzKCk7dGhpcy5yb3c8MD90aGlzLnJvdz0wOnRoaXMucm93PnYtMSYmKHRoaXMu''@;'; put 'put ''cm93PXYtMSksdGhpcy5jb2w8MD90aGlzLmNvbD0wOnRoaXMuY29sPnktMSYmKHRoaXMuY29sPXktMSksdGhpcy5yb3crdGhpcy5yb3dzcGFuPnYtMSYmKHRoaXMucm93c3Bhbj12LXRoaXMucm93KSx0aGlzLmNvbCt0aGlzLmNvbHNwYW4+eS0xJiYodGhpcy5jb2xzcGFuPXktdGhpcy5jb2wp''@;'; put 'put ''fX0se2tleToiaW5jbHVkZXMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuIHRoaXMucm93PD1oJiZ0aGlzLmNvbDw9diYmdGhpcy5yb3crdGhpcy5yb3dzcGFuLTE+PWgmJnRoaXMuY29sK3RoaXMuY29sc3Bhbi0xPj12fX0se2tleToiaW5jbHVkZXNIb3Jpem9udGFsbHkiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKGgpe3JldHVybiB0aGlzLmNvbDw9aCYmdGhpcy5jb2wrdGhpcy5jb2xzcGFuLTE+PWh9fSx7a2V5OiJpbmNsdWRlc1ZlcnRpY2FsbHkiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnJvdzw9aCYmdGhpcy5yb3crdGhpcy5yb3dzcGFuLTE+PWh9fSx7a2V5OiJzaGlmdCIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1oWzBdfHxoWzFdLEM9ditNYXRoLmFicyhoWzBdfHxoWzFdKS0xLEk9aFswXT8iY29sc3BhbiI6InJvd3NwYW4iLFo9aFswXT8iY29sIjoicm93Iix1ZT1NYXRoLm1pbih2LEMpLF9lPU1hdGgubWF4KHYsQyksQmU9dGhpc1taXSxOZT10aGlzW1pd''@;'; put 'put ''K3RoaXNbSV0tMTtpZihCZT49diYmKHRoaXNbWl0rPXkpLHk+MCl2PD1OZSYmdj5CZSYmKHRoaXNbSV0rPXkpO2Vsc2UgaWYoeTwwKXtpZih1ZTw9QmUmJl9lPj1OZSlyZXR1cm4gdGhpcy5yZW1vdmVkPSEwLCExO2lmKEJlPj11ZSYmQmU8PV9lKXt2YXIgS2U9X2UtQmUrMSxwdD1NYXRoLmFi''@;'; put 'put ''cyh5KS1LZTt0aGlzW1pdLT1wdCt5LHRoaXNbSV0tPUtlfWVsc2UgQmU8PXVlJiZOZT49X2U/dGhpc1tJXSs9eTpCZTw9dWUmJk5lPj11ZSYmTmU8X2UmJih0aGlzW0ldLT1OZS11ZSsxKX1yZXR1cm4hMH19LHtrZXk6ImlzRmFydGhlciIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4haHx8''@;'; put 'put ''KCJkb3duIj09PXY/aC5yb3craC5yb3dzcGFuLTE8dGhpcy5yb3crdGhpcy5yb3dzcGFuLTE6InVwIj09PXY/aC5yb3c+dGhpcy5yb3c6InJpZ2h0Ij09PXY/aC5jb2wraC5jb2xzcGFuLTE8dGhpcy5jb2wrdGhpcy5jb2xzcGFuLTE6ImxlZnQiPT09dj9oLmNvbD50aGlzLmNvbDpudWxsKX19''@;'; put 'put ''LHtrZXk6ImdldExhc3RSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm93K3RoaXMucm93c3Bhbi0xfX0se2tleToiZ2V0TGFzdENvbHVtbiIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb2wrdGhpcy5jb2xzcGFuLTF9fSx7a2V5OiJnZXRSYW5nZSIsdmFsdWU6ZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5jZWxsUmFuZ2VGYWN0b3J5KHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5yb3csdGhpcy5jb2wpLHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5yb3csdGhpcy5jb2wpLHRoaXMuY2VsbENvb3Jkc0ZhY3RvcnkodGhpcy5nZXRMYXN0Um93KCksdGhp''@;'; put 'put ''cy5nZXRMYXN0Q29sdW1uKCkpKX19XSxbe2tleToiTkVHQVRJVkVfVkFMVUVTX1dBUk5JTkciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBQMihCSWV8fChCSWU9TW5lKFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIHdpdGgge3JvdzogIiwiLCBjb2w6ICIsIiwgXG4gICAgICByb3dzcGFu''@;'; put 'put ''OiAiLCIsIGNvbHNwYW46ICIsIn0gY29udGFpbnMgbmVnYXRpdmUgdmFsdWVzLCB3aGljaCBpcyBcbiAgICAgIG5vdCBzdXBwb3J0ZWQuIEl0IHdpbGwgbm90IGJlIGFkZGVkIHRvIHRoZSBjb2xsZWN0aW9uLiJdLFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIHdpdGgge3JvdzogIiwiLCBj''@;'; put 'put ''b2w6ICIsIixcXHgyMFxuICAgICAgcm93c3BhbjogIiwiLCBjb2xzcGFuOiAiLCJ9IGNvbnRhaW5zIG5lZ2F0aXZlIHZhbHVlcywgd2hpY2ggaXNcXHgyMFxuICAgICAgbm90IHN1cHBvcnRlZC4gSXQgd2lsbCBub3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxlY3Rpb24uIl0pKSxoLnJvdyxoLmNv''@;'; put 'put ''bCxoLnJvd3NwYW4saC5jb2xzcGFuKX19LHtrZXk6IklTX09VVF9PRl9CT1VORFNfV0FSTklORyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIFAyKFBJZXx8KFBJZT1NbmUoWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyIsIiwgIiwiXSBpcyBwb3NpdGlvbmVkIFxuICAgICAgKG9y''@;'; put 'put ''IHBvc2l0aW9uZWQgcGFydGlhbGx5KSBvdXRzaWRlIG9mIHRoZSB0YWJsZSByYW5nZS4gSXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZSBmaXggeW91ciBzZXR1cC4iXSxbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCJdIGlzIHBvc2l0aW9uZWRcXHgy''@;'; put 'put ''MFxuICAgICAgKG9yIHBvc2l0aW9uZWQgcGFydGlhbGx5KSBvdXRzaWRlIG9mIHRoZSB0YWJsZSByYW5nZS4gSXQgd2FzIG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZSBmaXggeW91ciBzZXR1cC4iXSkpLGgucm93LGguY29sKX19LHtrZXk6IklTX1NJTkdMRV9DRUxMIix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbihoKXtyZXR1cm4gUDIoRkllfHwoRkllPU1uZShbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCddIGhhcyBib3RoICJyb3dzcGFuIiBcbiAgICAgIGFuZCAiY29sc3BhbiIgZGVjbGFyZWQgYXMgIjEiLCB3aGljaCBtYWtlcyBpdCBhIHNpbmdsZSBjZWxsLiBJ''@;'; put 'put ''dCBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxlY3Rpb24uJ10sWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyIsIiwgIiwnXSBoYXMgYm90aCAicm93c3BhbiJcXHgyMFxuICAgICAgYW5kICJjb2xzcGFuIiBkZWNsYXJlZCBhcyAiMSIsIHdoaWNoIG1ha2VzIGl0IGEgc2luZ2xl''@;'; put 'put ''IGNlbGwuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi4nXSkpLGgucm93LGguY29sKX19LHtrZXk6IlpFUk9fU1BBTl9XQVJOSU5HIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gUDIoSEllfHwoSEllPU1uZShbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwi''@;'; put 'put ''LCAiLCddIGhhcyAicm93c3BhbiIgXG4gICAgICBvciAiY29sc3BhbiIgZGVjbGFyZWQgYXMgIjAiLCB3aGljaCBpcyBub3Qgc3VwcG9ydGVkLiBJdCBjYW5ub3QgYmUgYWRkZWQgdG8gdGhlIGNvbGxlY3Rpb24uJ10sWyJUaGUgbWVyZ2VkIGNlbGwgZGVjbGFyZWQgYXQgWyIsIiwgIiwnXSBo''@;'; put 'put ''YXMgInJvd3NwYW4iXFx4MjBcbiAgICAgIG9yICJjb2xzcGFuIiBkZWNsYXJlZCBhcyAiMCIsIHdoaWNoIGlzIG5vdCBzdXBwb3J0ZWQuIEl0IGNhbm5vdCBiZSBhZGRlZCB0byB0aGUgY29sbGVjdGlvbi4nXSkpLGgucm93LGguY29sKX19LHtrZXk6ImNvbnRhaW5zTmVnYXRpdmVWYWx1ZXMi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoLnJvdzwwfHxoLmNvbDwwfHxoLnJvd3NwYW48MHx8aC5jb2xzcGFuPDB9fSx7a2V5OiJpc1NpbmdsZUNlbGwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiAxPT09aC5jb2xzcGFuJiYxPT09aC5yb3dzcGFufX0se2tleToiY29udGFpbnNaZXJv''@;'; put 'put ''U3BhbiIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIDA9PT1oLmNvbHNwYW58fDA9PT1oLnJvd3NwYW59fSx7a2V5OiJpc091dE9mQm91bmRzIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7cmV0dXJuIGgucm93PDB8fGguY29sPDB8fGgucm93Pj12fHxoLnJvdytoLnJvd3NwYW4tMT49dnx8aC5j''@;'; put 'put ''b2w+PXl8fGguY29sK2guY29sc3Bhbi0xPj15fX1dKSxkfSgpO2NvbnN0IEhnPW1kdDtmdW5jdGlvbiBDZ2UoZCxnLGgsdil7Zz9nLnJvdz09PWgmJmcuY29sPT09dj8oZC5zZXRBdHRyaWJ1dGUoInJvd3NwYW4iLGcucm93c3Bhbi50b1N0cmluZygpKSxkLnNldEF0dHJpYnV0ZSgiY29sc3Bh''@;'; put 'put ''biIsZy5jb2xzcGFuLnRvU3RyaW5nKCkpKTooZC5yZW1vdmVBdHRyaWJ1dGUoInJvd3NwYW4iKSxkLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLGQuc3R5bGUuZGlzcGxheT0ibm9uZSIpOihkLnJlbW92ZUF0dHJpYnV0ZSgicm93c3BhbiIpLGQucmVtb3ZlQXR0cmlidXRlKCJjb2xzcGFu''@;'; put 'put ''IiksZC5zdHlsZS5kaXNwbGF5PSIiKX12YXIgVkllO2Z1bmN0aW9uIGpJZShkKXtyZXR1cm4gZnVuY3Rpb24gYmR0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGtnZShkKX0oZCl8fGZ1bmN0aW9uIHdkdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtT''@;'; put 'put ''eW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiB5ZHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGtnZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChk''@;'; put 'put ''KS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQp''@;'; put 'put ''P0FycmF5JC8udGVzdChoKSlyZXR1cm4ga2dlKGQsZyl9fShkKXx8ZnVuY3Rpb24gQWR0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVj''@;'; put 'put ''dHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24ga2dlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24g''@;'; put 'put ''WkllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19dmFyIGtk''@;'; put 'put ''dD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIF9kdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx0aGlzLnBsdWdpbj1nLHRoaXMubWVyZ2VkQ2VsbHM9''@;'; put 'put ''W10sdGhpcy5ob3Q9Zy5ob3R9cmV0dXJuIGZ1bmN0aW9uIENkdChkLGcsaCl7ZyYmWkllKGQucHJvdG90eXBlLGcpLGgmJlpJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKGgsdil7''@;'; put 'put ''dmFyIEM9ITE7cmV0dXJuIFVyKHRoaXMubWVyZ2VkQ2VsbHMsZnVuY3Rpb24oSSl7cmV0dXJuIShJLnJvdzw9aCYmSS5yb3crSS5yb3dzcGFuLTE+PWgmJkkuY29sPD12JiZJLmNvbCtJLmNvbHNwYW4tMT49diYmKEM9SSwxKSl9KSxDfX0se2tleToiZ2V0QnlSYW5nZSIsdmFsdWU6ZnVuY3Rp''@;'; put 'put ''b24oaCl7dmFyIHk9ITE7cmV0dXJuIFVyKHRoaXMubWVyZ2VkQ2VsbHMsZnVuY3Rpb24oQyl7cmV0dXJuIShDLnJvdzw9aC5mcm9tLnJvdyYmQy5yb3crQy5yb3dzcGFuLTE+PWgudG8ucm93JiZDLmNvbDw9aC5mcm9tLmNvbCYmQy5jb2wrQy5jb2xzcGFuLTE+PWgudG8uY29sKXx8KHk9Qyl9''@;'; put 'put ''KSx5fX0se2tleToiZ2V0V2l0aGluUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLEM9dGhpcy5tZXJnZWRDZWxscyxJPVtdLFo9aDtpZighWi5pbmNsdWRlc1JhbmdlKXt2''@;'; put 'put ''YXIgdWU9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoWi5mcm9tLnJvdyxaLmZyb20uY29sKSxfZT10aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhaLnRvLnJvdyxaLnRvLmNvbCk7Wj10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHVlLHVlLF9lKX1yZXR1cm4gVXIoQyxmdW5jdGlvbihC''@;'; put 'put ''ZSl7dmFyIE5lPXYuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEJlLnJvdyxCZS5jb2wpLEtlPXYuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEJlLnJvdytCZS5yb3dzcGFuLTEsQmUuY29sK0JlLmNvbHNwYW4tMSkscHQ9di5ob3QuX2NyZWF0ZUNlbGxSYW5nZShOZSxOZSxLZSk7eT9aLm92ZXJsYXBz''@;'; put 'put ''KHB0KSYmSS5wdXNoKEJlKTpaLmluY2x1ZGVzUmFuZ2UocHQpJiZJLnB1c2goQmUpfSksISFJLmxlbmd0aCYmSX19LHtrZXk6ImFkZCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcy5tZXJnZWRDZWxscyx5PWgucm93LEM9aC5jb2wsdWU9bmV3IEhnKHksQyxoLnJvd3NwYW4saC5jb2xz''@;'; put 'put ''cGFuLHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzLHRoaXMuaG90Ll9jcmVhdGVDZWxsUmFuZ2UpLF9lPXRoaXMuZ2V0KHksQyksQmU9dGhpcy5pc092ZXJsYXBwaW5nKHVlKTtyZXR1cm4gX2V8fEJlPyhsMShkLklTX09WRVJMQVBQSU5HX1dBUk5JTkcodWUpKSwhMSk6KHRoaXMuaG90JiZ1''@;'; put 'put ''ZS5ub3JtYWxpemUodGhpcy5ob3QpLHYucHVzaCh1ZSksdWUpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRoaXMubWVyZ2VkQ2VsbHMsQz10aGlzLmdldChoLHYpLEk9Qz90aGlzLm1lcmdlZENlbGxzLmluZGV4T2YoQyk6LTE7cmV0dXJuISghQ3x8LTE9PT1J''@;'; put 'put ''KSYmKHkuc3BsaWNlKEksMSksQyl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHk9W10sQz1bXTtVcih0aGlzLm1lcmdlZENlbGxzLGZ1bmN0aW9uKEkpe3ZhciBaPWguaG90LmdldENlbGwoSS5yb3csSS5jb2wpO1omJnkucHVzaChbWixoLmdldChJLnJvdyxJ''@;'; put 'put ''LmNvbCksSS5yb3csSS5jb2xdKX0pLHRoaXMubWVyZ2VkQ2VsbHMubGVuZ3RoPTAsVXIoeSxmdW5jdGlvbihJLFope2lhKDAsSS5yb3dzcGFuLTEsZnVuY3Rpb24odWUpe2lhKDAsSS5jb2xzcGFuLTEsZnVuY3Rpb24oX2Upe2lmKDAhPT1fZXx8MCE9PXVlKXt2YXIgQmU9aC5ob3QuZ2V0Q2Vs''@;'; put 'put ''bChJLnJvdyt1ZSxJLmNvbCtfZSk7QmUmJkMucHVzaChbQmUsbnVsbCxudWxsLG51bGxdKX19KX0pLHlbWl1bMV09bnVsbH0pLFVyKHksZnVuY3Rpb24oSSl7Q2dlLmFwcGx5KHZvaWQgMCxqSWUoSSkpfSksVXIoQyxmdW5jdGlvbihJKXtDZ2UuYXBwbHkodm9pZCAwLGpJZShJKSl9KX19LHtr''@;'; put 'put ''ZXk6ImlzT3ZlcmxhcHBpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXMseT10aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKDAsMCksdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoaC5yb3csaC5jb2wpLHRoaXMuaG90Ll9jcmVhdGVD''@;'; put 'put ''ZWxsQ29vcmRzKGgucm93K2gucm93c3Bhbi0xLGguY29sK2guY29sc3Bhbi0xKSksQz0hMTtyZXR1cm4gVXIodGhpcy5tZXJnZWRDZWxscyxmdW5jdGlvbihJKXtyZXR1cm4hdi5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh2LmhvdC5fY3JlYXRlQ2VsbENvb3JkcygwLDApLHYuaG90Ll9jcmVhdGVD''@;'; put 'put ''ZWxsQ29vcmRzKEkucm93LEkuY29sKSx2LmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhJLnJvdytJLnJvd3NwYW4tMSxJLmNvbCtJLmNvbHNwYW4tMSkpLm92ZXJsYXBzKHkpfHwoQz0hMCwhMSl9KSxDfX0se2tleToiaXNGaXJzdFJlbmRlcmFibGVNZXJnZWRDZWxsIix2YWx1ZTpmdW5jdGlvbiho''@;'; put 'put ''LHYpe3ZhciB5PXRoaXMuZ2V0KGgsdik7cmV0dXJuIHkmJnRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh5LnJvdywxKT09PWgmJnRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh5LmNvbCwxKT09PXZ9fSx7''@;'; put 'put ''a2V5OiJnZXRGaXJzdFJlbmRlcmFibGVDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHk9dGhpcy5nZXQoaCx2KTtpZigheXx8dGhpcy5pc0ZpcnN0UmVuZGVyYWJsZU1lcmdlZENlbGwoaCx2KSlyZXR1cm4gdGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoaCx2KTt2YXIgQz10aGlz''@;'; put 'put ''LmhvdC5yb3dJbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoeS5yb3csMSksST10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoeS5jb2wsMSk7cmV0dXJuIHRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEMsSSl9fSx7a2V5OiJz''@;'; put 'put ''aGlmdENvbGxlY3Rpb25zIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9dGhpcyxJPVswLDBdO3N3aXRjaChoKXtjYXNlInJpZ2h0IjpJWzBdKz15O2JyZWFrO2Nhc2UibGVmdCI6SVswXS09eTticmVhaztjYXNlImRvd24iOklbMV0rPXk7YnJlYWs7Y2FzZSJ1cCI6SVsxXS09eX1Vcih0''@;'; put 'put ''aGlzLm1lcmdlZENlbGxzLGZ1bmN0aW9uKFope1ouc2hpZnQoSSx2KX0pLHNlZSh0aGlzLm1lcmdlZENlbGxzLmxlbmd0aC0xLDAsZnVuY3Rpb24oWil7dmFyIHVlPUMubWVyZ2VkQ2VsbHNbWl07dWUmJnVlLnJlbW92ZWQmJkMubWVyZ2VkQ2VsbHMuc3BsaWNlKEMubWVyZ2VkQ2VsbHMuaW5k''@;'; put 'put ''ZXhPZih1ZSksMSl9KX19XSxbe2tleToiSVNfT1ZFUkxBUFBJTkdfV0FSTklORyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIFAyKFZJZXx8KFZJZT1mdW5jdGlvbiB2ZHQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGll''@;'; put 'put ''cyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlRoZSBtZXJnZWQgY2VsbCBkZWNsYXJlZCBhdCBbIiwiLCAiLCJdLCBvdmVybGFwcyBcbiAgICAgIHdpdGggdGhlIG90aGVyIGRlY2xhcmVkIG1lcmdlZCBjZWxsLiBUaGUgb3ZlcmxhcHBpbmcgbWVyZ2VkIGNlbGwgd2Fz''@;'; put 'put ''IG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZSBcbiAgICAgIGZpeCB5b3VyIHNldHVwLiJdLFsiVGhlIG1lcmdlZCBjZWxsIGRlY2xhcmVkIGF0IFsiLCIsICIsIl0sIG92ZXJsYXBzXFx4MjBcbiAgICAgIHdpdGggdGhlIG90aGVyIGRlY2xhcmVkIG1lcmdlZCBjZWxsLiBUaGUgb3Zl''@;'; put 'put ''cmxhcHBpbmcgbWVyZ2VkIGNlbGwgd2FzIG5vdCBhZGRlZCB0byB0aGUgdGFibGUsIHBsZWFzZVxceDIwXG4gICAgICBmaXggeW91ciBzZXR1cC4iXSkpLGgucm93LGguY29sKX19XSksZH0oKTtjb25zdCBTZHQ9a2R0O2Z1bmN0aW9uIG1NKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIFRkdChkKXtp''@;'; put 'put ''ZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBkfShkKXx8ZnVuY3Rpb24geGR0KGQsZyl7dmFyIGg9bnVsbD09ZD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZkW1N5bWJvbC5pdGVyYXRvcl18fGRbIkBAaXRlcmF0b3IiXTtpZihudWxsIT1oKXt2YXIgSSxaLHY9W10seT0hMCxD''@;'; put 'put ''PSExO3RyeXtmb3IoaD1oLmNhbGwoZCk7ISh5PShJPWgubmV4dCgpKS5kb25lKSYmKHYucHVzaChJLnZhbHVlKSwhZ3x8di5sZW5ndGghPT1nKTt5PSEwKTt9Y2F0Y2godWUpe0M9ITAsWj11ZX1maW5hbGx5e3RyeXsheSYmbnVsbCE9aC5yZXR1cm4mJmgucmV0dXJuKCl9ZmluYWxseXtpZihD''@;'; put 'put ''KXRocm93IFp9fXJldHVybiB2fX0oZCxnKXx8ZnVuY3Rpb24gRWR0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiB6SWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0''@;'; put 'put ''cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHpJZShkLGcpfX0oZCxn''@;'; put 'put ''KXx8ZnVuY3Rpb24gTWR0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9y''@;'; put 'put ''XSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB6SWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBHSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3Ro''@;'; put 'put ''O2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgTGR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVu''@;'; put 'put ''Y3Rpb24gSWR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucGx1Z2luPWcsdGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb249dGhpcy5wbHVnaW4ubWVyZ2VkQ2Vs''@;'; put 'put ''bHNDb2xsZWN0aW9uLHRoaXMuY3VycmVudEZpbGxEYXRhPW51bGx9cmV0dXJuIGZ1bmN0aW9uIERkdChkLGcsaCl7ZyYmR0llKGQucHJvdG90eXBlLGcpLGgmJkdJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJjb3Jy''@;'; put 'put ''ZWN0U2VsZWN0aW9uQXJlYVNpemUiLHZhbHVlOmZ1bmN0aW9uKGgpe2lmKGhbMF09PT1oWzJdJiZoWzFdPT09aFszXSl7dmFyIHY9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KGhbMF0saFsxXSk7diYmKGhbMl09aFswXSt2LnJvd3NwYW4tMSxoWzNdPWhbMV0rdi5jb2xzcGFuLTEp''@;'; put 'put ''fX19LHtrZXk6ImdldERpcmVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gdlswXT09PWhbMF0mJnZbMV09PT1oWzFdJiZ2WzNdPT09aFszXT8iZG93biI6dlsyXT09PWhbMl0mJnZbMV09PT1oWzFdJiZ2WzNdPT09aFszXT8idXAiOnZbMV09PT1oWzFdJiZ2WzJdPT09aFsyXT8i''@;'; put 'put ''cmlnaHQiOiJsZWZ0In19LHtrZXk6InNuYXBEcmFnQXJlYSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9di5zbGljZSgwKSxaPXRoaXMuZ2V0QXV0b2ZpbGxTaXplKGgsdix5KSx1ZT1tTShoLDQpLF9lPXVlWzBdLEJlPXVlWzFdLE5lPXVlWzJdLEtlPXVlWzNdLE90PVsidXAiLCJk''@;'; put 'put ''b3duIl0uaW5kZXhPZih5KT4tMT9OZS1fZSsxOktlLUJlKzEsZm49Wi1NYXRoLmZsb29yKFovT3QpKk90LExuPXRoaXMuZ2V0RmFydGhlc3RDb2xsZWN0aW9uKGgsdix5LEMpO2lmKExuKWlmKCJkb3duIj09PXkpe3ZhciBpcj1Mbi5yb3crTG4ucm93c3Bhbi1fZS1mbjtJWzJdK2lyPj10aGlz''@;'; put 'put ''LnBsdWdpbi5ob3QuY291bnRSb3dzKCk/SVsyXS09Zm46SVsyXSs9Zm4/aXI6MH1lbHNlIGlmKCJyaWdodCI9PT15KXt2YXIgU3I9TG4uY29sK0xuLmNvbHNwYW4tQmUtZm47SVszXStTcj49dGhpcy5wbHVnaW4uaG90LmNvdW50Q29scygpP0lbM10tPWZuOklbM10rPWZuP1NyOjB9ZWxzZSBp''@;'; put 'put ''ZigidXAiPT09eSl7dmFyIFFyPU5lLWZuLUxuLnJvdysxO0lbMF0rUXI8MD9JWzBdKz1mbjpJWzBdLT1mbj9RcjowfWVsc2UgaWYoImxlZnQiPT09eSl7dmFyIEtpPUtlLWZuLUxuLmNvbCsxO0lbMV0rS2k8MD9JWzFdKz1mbjpJWzFdLT1mbj9LaTowfXJldHVybiB0aGlzLnVwZGF0ZUN1cnJl''@;'; put 'put ''bnRGaWxsQ2FjaGUoe2Jhc2VBcmVhOmgsZHJhZ0RpcmVjdGlvbjp5LGZvdW5kTWVyZ2VkQ2VsbHM6QyxmaWxsU2l6ZTpaLGRyYWdBcmVhOkksY3ljbGVMZW5ndGg6T3R9KSxJfX0se2tleToidXBkYXRlQ3VycmVudEZpbGxDYWNoZSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5jdXJyZW50Rmls''@;'; put 'put ''bERhdGF8fCh0aGlzLmN1cnJlbnRGaWxsRGF0YT17fSksSTEodGhpcy5jdXJyZW50RmlsbERhdGEsaCl9fSx7a2V5OiJnZXRBdXRvZmlsbFNpemUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz1tTShoLDQpLEk9Q1swXSxaPUNbMV0sdWU9Q1syXSxfZT1DWzNdLEJlPW1NKHYsNCksTmU9''@;'; put 'put ''QmVbMF0sS2U9QmVbMV0scHQ9QmVbMl0sT3Q9QmVbM107c3dpdGNoKHkpe2Nhc2UidXAiOnJldHVybiBJLU5lO2Nhc2UiZG93biI6cmV0dXJuIHB0LXVlO2Nhc2UibGVmdCI6cmV0dXJuIFotS2U7Y2FzZSJyaWdodCI6cmV0dXJuIE90LV9lO2RlZmF1bHQ6cmV0dXJuIG51bGx9fX0se2tleToi''@;'; put 'put ''Z2V0RHJhZ0FyZWEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz1tTShoLDQpLEk9Q1swXSxaPUNbMV0sdWU9Q1syXSxfZT1DWzNdLEJlPW1NKHYsNCksTmU9QmVbMF0sS2U9QmVbMV0scHQ9QmVbMl0sT3Q9QmVbM107c3dpdGNoKHkpe2Nhc2UidXAiOnJldHVybltOZSxLZSxJLTEsX2Vd''@;'; put 'put ''O2Nhc2UiZG93biI6cmV0dXJuW3VlKzEsWixwdCxfZV07Y2FzZSJsZWZ0IjpyZXR1cm5bTmUsS2UsdWUsWi0xXTtjYXNlInJpZ2h0IjpyZXR1cm5bSSxfZSsxLHB0LE90XTtkZWZhdWx0OnJldHVybiBudWxsfX19LHtrZXk6ImdldEZhcnRoZXN0Q29sbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''aCx2LHksQyl7dmFyIEk9bU0oaCw0KSxaPUlbMF0sdWU9SVsxXSxfZT1JWzJdLEJlPUlbM10sTmU9WyJ1cCIsImRvd24iXS5pbmRleE9mKHkpPi0xLEtlPU5lP19lOkJlLHB0PU5lP1o6dWUsT3Q9dGhpcy5nZXRBdXRvZmlsbFNpemUoaCx2LHkpLCR0PU5lP19lLVorMTpCZS11ZSsxLExuPU90''@;'; put 'put ''LU1hdGguZmxvb3IoT3QvJHQpKiR0LGlyPW51bGwsbXI9bnVsbCxTcj1udWxsO3N3aXRjaCh5KXtjYXNlInVwIjppcj0iaW5jbHVkZXNWZXJ0aWNhbGx5IixTcj1LZS1MbisxO2JyZWFrO2Nhc2UibGVmdCI6aXI9ImluY2x1ZGVzSG9yaXpvbnRhbGx5IixTcj1LZS1MbisxO2JyZWFrO2Nhc2Ui''@;'; put 'put ''ZG93biI6aXI9ImluY2x1ZGVzVmVydGljYWxseSIsU3I9cHQrTG4tMTticmVhaztjYXNlInJpZ2h0Ijppcj0iaW5jbHVkZXNIb3Jpem9udGFsbHkiLFNyPXB0K0xuLTF9cmV0dXJuIFVyKEMsZnVuY3Rpb24od3Ipe3dyW2lyXShTcikmJndyLmlzRmFydGhlcihtcix5KSYmKG1yPXdyKX0pLG1y''@;'; put 'put ''fX0se2tleToicmVjcmVhdGVBZnRlckRhdGFQb3B1bGF0aW9uIix2YWx1ZTpmdW5jdGlvbihoKXtpZih0aGlzLmN1cnJlbnRGaWxsRGF0YSl7dmFyIHY9dGhpcy5nZXRSYW5nZUZyb21DaGFuZ2VzKGgpLHk9dGhpcy5jdXJyZW50RmlsbERhdGEuZm91bmRNZXJnZWRDZWxscyxDPXRoaXMuY3Vy''@;'; put 'put ''cmVudEZpbGxEYXRhLmRyYWdEaXJlY3Rpb24sST1mdW5jdGlvbihLZSxwdCl7c3dpdGNoKEMpe2Nhc2UidXAiOnJldHVybiBLZS5yb3ctcHQ+PXYuZnJvbS5yb3c7Y2FzZSJkb3duIjpyZXR1cm4gS2Uucm93K0tlLnJvd3NwYW4tMStwdDw9di50by5yb3c7Y2FzZSJsZWZ0IjpyZXR1cm4gS2Uu''@;'; put 'put ''Y29sLXB0Pj12LmZyb20uY29sdW1uO2Nhc2UicmlnaHQiOnJldHVybiBLZS5jb2wrS2UuY29sc3Bhbi0xK3B0PD12LnRvLmNvbHVtbjtkZWZhdWx0OnJldHVybiBudWxsfX0sWj0wLHVlPW51bGwsX2U9MTtkb3tmb3IodmFyIEJlPTA7QmU8eS5sZW5ndGg7QmUrPTEpe2lmKEkodWU9eVtCZV0s''@;'; put 'put ''Wj1fZSp0aGlzLmN1cnJlbnRGaWxsRGF0YS5jeWNsZUxlbmd0aCkpc3dpdGNoKEMpe2Nhc2UidXAiOnRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5hZGQoe3Jvdzp1ZS5yb3ctWixyb3dzcGFuOnVlLnJvd3NwYW4sY29sOnVlLmNvbCxjb2xzcGFuOnVlLmNvbHNwYW59KTticmVh''@;'; put 'put ''aztjYXNlImRvd24iOnRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5hZGQoe3Jvdzp1ZS5yb3crWixyb3dzcGFuOnVlLnJvd3NwYW4sY29sOnVlLmNvbCxjb2xzcGFuOnVlLmNvbHNwYW59KTticmVhaztjYXNlImxlZnQiOnRoaXMucGx1Z2luLm1lcmdlZENlbGxzQ29sbGVjdGlv''@;'; put 'put ''bi5hZGQoe3Jvdzp1ZS5yb3cscm93c3Bhbjp1ZS5yb3dzcGFuLGNvbDp1ZS5jb2wtWixjb2xzcGFuOnVlLmNvbHNwYW59KTticmVhaztjYXNlInJpZ2h0Ijp0aGlzLnBsdWdpbi5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uYWRkKHtyb3c6dWUucm93LHJvd3NwYW46dWUucm93c3Bhbixjb2w6dWUu''@;'; put 'put ''Y29sK1osY29sc3Bhbjp1ZS5jb2xzcGFufSl9QmU9PT15Lmxlbmd0aC0xJiYoX2UrPTEpfX13aGlsZShJKHVlLFopKTt0aGlzLmN1cnJlbnRGaWxsRGF0YT1udWxsLHRoaXMucGx1Z2luLmhvdC5yZW5kZXIoKX19fSx7a2V5OiJnZXRSYW5nZUZyb21DaGFuZ2VzIix2YWx1ZTpmdW5jdGlvbiho''@;'; put 'put ''KXt2YXIgdj10aGlzLHk9e21pbjpudWxsLG1heDpudWxsfSxDPXttaW46bnVsbCxtYXg6bnVsbH07cmV0dXJuIFVyKGgsZnVuY3Rpb24oSSl7dmFyIFo9SVswXSx1ZT12LnBsdWdpbi5ob3QucHJvcFRvQ29sKElbMV0pOyhudWxsPT09eS5taW58fFo8eS5taW4pJiYoeS5taW49WiksKG51bGw9''@;'; put 'put ''PT15Lm1heHx8Wj55Lm1heCkmJih5Lm1heD1aKSwobnVsbD09PUMubWlufHx1ZTxDLm1pbikmJihDLm1pbj11ZSksKG51bGw9PT1DLm1heHx8dWU+Qy5tYXgpJiYoQy5tYXg9dWUpfSkse2Zyb206e3Jvdzp5Lm1pbixjb2x1bW46Qy5taW59LHRvOntyb3c6eS5tYXgsY29sdW1uOkMubWF4fX19''@;'; put 'put ''fSx7a2V5OiJkcmFnQXJlYU92ZXJsYXBzQ29sbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgST1tTSh0aGlzLmdldERyYWdBcmVhKGgsdix5KSw0KSxfZT1JWzJdLEJlPUlbM10sTmU9dGhpcy5wbHVnaW4uaG90Ll9jcmVhdGVDZWxsQ29vcmRzKElbMF0sSVsxXSksS2U9dGhp''@;'; put 'put ''cy5wbHVnaW4uaG90Ll9jcmVhdGVDZWxsQ29vcmRzKF9lLEJlKSxwdD10aGlzLnBsdWdpbi5ob3QuX2NyZWF0ZUNlbGxSYW5nZShOZSxOZSxLZSk7cmV0dXJuISF0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXRXaXRoaW5SYW5nZShwdCwhMCl9fV0pLGR9KCk7Y29uc3QgT2R0PUxkdDtm''@;'; put 'put ''dW5jdGlvbiBXSWUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYp''@;'; put 'put ''fX12YXIgUGR0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnKXsoZnVuY3Rpb24gUmR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLHRoaXMucGx1Z2luPWcsdGhpcy5ob3Q9''@;'; put 'put ''Zy5ob3QsdGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZT0iZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwifXJldHVybiBmdW5jdGlvbiBCZHQoZCxnLGgpe2cmJldJZShkLnByb3RvdHlwZSxnKSxoJiZXSWUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBl''@;'; put 'put ''Iix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToic25hcERlbHRhIix2YWx1ZTpmdW5jdGlvbihoLHYseSl7dmFyIEM9di50byxaPUMuY29sK2guY29sO2gucm93P3RoaXMuanVtcE92ZXJNZXJnZWRDZWxsKGgseSxDLnJvdytoLnJvdyk6aC5jb2wmJnRoaXMuanVtcE92ZXJNZXJnZWRDZWxsKGgs''@;'; put 'put ''eSxaKX19LHtrZXk6Imp1bXBPdmVyTWVyZ2VkQ2VsbCIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPWgucm93fHxoLmNvbCxJPW51bGwsWj1udWxsLHVlPW51bGw7aC5yb3c/KEk9di5pbmNsdWRlc1ZlcnRpY2FsbHkoeSksWj12LnJvdyx1ZT12LmdldExhc3RSb3coKSk6aC5jb2wmJihJ''@;'; put 'put ''PXYuaW5jbHVkZXNIb3Jpem9udGFsbHkoeSksWj12LmNvbCx1ZT12LmdldExhc3RDb2x1bW4oKSksMCE9PUMmJihDPjA/SSYmeSE9PVomJihDKz11ZS15KzEpOkkmJnkhPT11ZSYmKEMtPXktWisxKSxoLnJvdz9oLnJvdz1DOmguY29sJiYoaC5jb2w9QykpfX0se2tleToiZ2V0VXBkYXRlZFNl''@;'; put 'put ''bGVjdGlvblJhbmdlIix2YWx1ZTpmdW5jdGlvbihoLHYpe3JldHVybiB0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKGguaGlnaGxpZ2h0LGguZnJvbSx0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLnRvLnJvdyt2LnJvdyxoLnRvLmNvbCt2LmNvbCkpfX0se2tleToiZ2V0U2VsZWN0ZWRN''@;'; put 'put ''ZXJnZWRDZWxsQ2xhc3NOYW1lIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXt2YXIgST1NYXRoLm1pbih5WzBdLHlbMl0pLFo9TWF0aC5taW4oeVsxXSx5WzNdKSx1ZT1NYXRoLm1heCh5WzBdLHlbMl0pLF9lPU1hdGgubWF4KHlbMV0seVszXSk7aWYodm9pZCAwIT09QyYmdGhpcy5wbHVnaW4u''@;'; put 'put ''bWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmlzRmlyc3RSZW5kZXJhYmxlTWVyZ2VkQ2VsbChoLHYpKXt2YXIgTmU9dGhpcy5wbHVnaW4ubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChoLHYpO2lmKE5lKXt2YXIgS2U9TmUuZ2V0TGFzdFJvdygpLHB0PU5lLmdldExhc3RDb2x1bW4oKTtpZihJPD1O''@;'; put 'put ''ZS5yb3cmJlo8PU5lLmNvbCYmdWU+PUtlJiZfZT49cHQpcmV0dXJuIiIuY29uY2F0KHRoaXMuZnVsbHlTZWxlY3RlZE1lcmdlZENlbGxDbGFzc05hbWUsIi0iKS5jb25jYXQoQyk7aWYodGhpcy5wbHVnaW4uc2VsZWN0aW9uQ2FsY3VsYXRpb25zLmlzTWVyZ2VDZWxsRnVsbHlTZWxlY3RlZChO''@;'; put 'put ''ZSx0aGlzLnBsdWdpbi5ob3QuZ2V0U2VsZWN0ZWRSYW5nZSgpKSlyZXR1cm4iIi5jb25jYXQodGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZSwiLW11bHRpcGxlIil9fX19LHtrZXk6ImlzTWVyZ2VDZWxsRnVsbHlTZWxlY3RlZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIg''@;'; put 'put ''eT1bXTtpZighdnx8IWgpcmV0dXJuITE7Zm9yKHZhciBDPTA7QzxoLnJvd3NwYW47Qys9MSlmb3IodmFyIEk9MDtJPGguY29sc3BhbjtJKz0xKXkucHVzaCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhoLnJvdytDLGguY29sK0kpKTtmb3IodmFyIFo9MDtaPHkubGVuZ3RoO1orPTEpe2Zv''@;'; put 'put ''cih2YXIgdWU9W10sX2U9MDtfZTx2Lmxlbmd0aDtfZSs9MSl1ZVtfZV09dltfZV0uaW5jbHVkZXMoeVtaXSk7aWYoIXVlLmluY2x1ZGVzKCEwKSlyZXR1cm4hMX1yZXR1cm4hMH19LHtrZXk6ImdldFNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZVRvUmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigp''@;'; put 'put ''e2Zvcih2YXIgaD1bXSx2PTA7djw9Nzt2Kz0xKWgucHVzaCgiIi5jb25jYXQodGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZSwiLSIpLmNvbmNhdCh2KSk7cmV0dXJuIGgucHVzaCgiIi5jb25jYXQodGhpcy5mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbENsYXNzTmFtZSwiLW11''@;'; put 'put ''bHRpcGxlIikpLGh9fV0pLGR9KCk7Y29uc3QgRmR0PVBkdDtmdW5jdGlvbiBTZ2UoZCl7cmV0dXJuKFNnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3Jl''@;'; put 'put ''dHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFlJZShkLGcpe3JldHVybiBmdW5jdGlvbiBqZHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSly''@;'; put 'put ''ZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIFZkdChkLGcpe3ZhciBoPW51bGw9PWQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmZFtTeW1ib2wuaXRlcmF0b3JdfHxkWyJAQGl0ZXJhdG9yIl07aWYobnVsbCE9aCl7dmFyIEksWix2PVtdLHk9ITAsQz0hMTt0cnl7Zm9yKGg9aC5jYWxs''@;'; put 'put ''KGQpOyEoeT0oST1oLm5leHQoKSkuZG9uZSkmJih2LnB1c2goSS52YWx1ZSksIWd8fHYubGVuZ3RoIT09Zyk7eT0hMCk7fWNhdGNoKHVlKXtDPSEwLFo9dWV9ZmluYWxseXt0cnl7IXkmJm51bGwhPWgucmV0dXJuJiZoLnJldHVybigpfWZpbmFsbHl7aWYoQyl0aHJvdyBafX1yZXR1cm4gdn19''@;'; put 'put ''KGQsZyl8fFFJZShkLGcpfHxmdW5jdGlvbiBOZHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtT''@;'; put 'put ''eW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFVJZShkKXtyZXR1cm4gZnVuY3Rpb24gR2R0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIE1nZShkKX0oZCl8fGZ1bmN0aW9uIHpkdChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtT''@;'; put 'put ''eW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxRSWUoZCl8fGZ1bmN0aW9uIFpkdCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3Jk''@;'; put 'put ''ZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFFJZShkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gTWdlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlw''@;'; put 'put ''ZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8''@;'; put 'put ''MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBNZ2UoZCxnKX19ZnVuY3Rpb24gTWdlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rp''@;'; put 'put ''b24gSkllKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVu''@;'; put 'put ''Y3Rpb24gbFIoKXtyZXR1cm4gbFI9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVVkdChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1''@;'; put 'put ''cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sbFIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFVkdChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9UXcoZCkpOyk7''@;'; put 'put ''cmV0dXJuIGR9ZnVuY3Rpb24gRWdlKGQsZyl7cmV0dXJuKEVnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFhkdChkLGcpe2lmKGcmJigib2JqZWN0''@;'; put 'put ''Ij09PVNnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gWEllKGQpfWZ1bmN0aW9uIFhJZShk''@;'; put 'put ''KXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gUXcoZCl7cmV0dXJuKFF3PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Qu''@;'; put 'put ''Z2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9em8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZU1lcmdlQ2VsbHMiKSx6by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigiYWZ0ZXJN''@;'; put 'put ''ZXJnZUNlbGxzIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoImJlZm9yZVVubWVyZ2VDZWxscyIpLHpvLmdldFNpbmdsZXRvbigpLnJlZ2lzdGVyKCJhZnRlclVubWVyZ2VDZWxscyIpO3ZhciB0RGUsUHo9Im1lcmdlQ2VsbHMiLEtJZT1uZXcgV2Vha01hcCwkSWU9UHoscWR0PWZ1bmN0''@;'; put 'put ''aW9uKGQpeyFmdW5jdGlvbiBRZHQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcu''@;'; put 'put ''cHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmRWdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gSmR0KGQpe3ZhciBnPWZ1bmN0''@;'; put 'put ''aW9uIEtkdCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVl''@;'; put 'put ''T2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PVF3KGQpO2lmKGcpe3ZhciBDPVF3KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixh''@;'; put 'put ''cmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBYZHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIFdkdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxs''@;'; put 'put ''IGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLHk9Zy5jYWxsKHRoaXMsdiksS0llLnNldChYSWUoeSkse2xhc3REZXNpcmVkQ29vcmRzOm51bGx9KSx5Lm1lcmdlZENlbGxzQ29sbGVjdGlvbj1udWxsLHkuYXV0b2ZpbGxDYWxjdWxhdGlvbnM9bnVsbCx5LnNlbGVjdGlvbkNhbGN1''@;'; put 'put ''bGF0aW9ucz1udWxsLHl9cmV0dXJuIGZ1bmN0aW9uIFlkdChkLGcsaCl7ZyYmSkllKGQucHJvdG90eXBlLGcpLGgmJkpJZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW1B6XX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uPW5ldyBTZHQodGhpcyksdGhpcy5hdXRvZmlsbENhbGN1bGF0aW9u''@;'; put 'put ''cz1uZXcgT2R0KHRoaXMpLHRoaXMuc2VsZWN0aW9uQ2FsY3VsYXRpb25zPW5ldyBGZHQodGhpcyksdGhpcy5hZGRIb29rKCJhZnRlckluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckluaXQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlUcmFuc2Zvcm1T''@;'; put 'put ''dGFydCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vZGlmeVRyYW5zZm9ybVN0YXJ0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJNb2RpZnlUcmFuc2Zvcm1TdGFydCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTW9kaWZ5VHJhbnNmb3JtU3RhcnQuYXBwbHko''@;'; put 'put ''eSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlUcmFuc2Zvcm1FbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Nb2RpZnlUcmFuc2Zvcm1FbmQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlHZXRDZWxsQ29vcmRzIixmdW5jdGlvbigpe3JldHVybiB5''@;'; put 'put ''Lm9uTW9kaWZ5R2V0Q2VsbENvb3Jkcy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZVNldFJhbmdlU3RhcnQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVTZXRSYW5nZVN0YXJ0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0''@;'; put 'put ''UmFuZ2VTdGFydE9ubHkiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVTZXRSYW5nZVN0YXJ0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlU2V0UmFuZ2VFbmQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVTZXRSYW5nZUVuZC5hcHBseSh5LGFyZ3Vt''@;'; put 'put ''ZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVySXNNdWx0aXBsZVNlbGVjdGlvbiIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVySXNNdWx0aXBsZVNlbGVjdGlvbi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVuZGVyZXIiLGZ1bmN0aW9uKCl7cmV0dXJuIHku''@;'; put 'put ''b25BZnRlclJlbmRlcmVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIixmdW5jdGlvbigpe3JldHVybiB5LmFkZE1lcmdlQWN0aW9uc1RvQ29udGV4dE1lbnUuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29r''@;'; put 'put ''KCJhZnRlckdldENlbGxNZXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJHZXRDZWxsTWV0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyVmlld3BvcnRSb3dDYWxjdWxhdG9yT3ZlcnJpZGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlclZpZXdwb3J0''@;'; put 'put ''Um93Q2FsY3VsYXRvck92ZXJyaWRlLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUuYXBwbHkoeSxh''@;'; put 'put ''cmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlBdXRvZmlsbFJhbmdlIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5QXV0b2ZpbGxSYW5nZS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0''@;'; put 'put ''ZXJDcmVhdGVDb2wuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlclJlbW92ZUNvbCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyUmVtb3ZlQ29sLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLGZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIHkub25BZnRlckNyZWF0ZVJvdy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImFmdGVyUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJSZW1vdmVSb3cuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNoYW5nZSIsZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4geS5vbkFmdGVyQ2hhbmdlLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlRHJhd0JvcmRlcnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVEcmF3QXJlYUJvcmRlcnMuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRl''@;'; put 'put ''ckRyYXdTZWxlY3Rpb24iLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckRyYXdTZWxlY3Rpb24uYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVJlbW92ZUNlbGxDbGFzc05h''@;'; put 'put ''bWVzLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVW5kb1N0YWNrQ2hhbmdlIixmdW5jdGlvbihDLEkpe2lmKCJNZXJnZUNlbGxzIj09PUkpcmV0dXJuITF9KSx0aGlzLnJlZ2lzdGVyU2hvcnRjdXRzKCksbFIoUXcoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4i''@;'; put 'put ''LHRoaXMpLmNhbGwodGhpcykpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyQ29sbGVjdGlvbnMoKSx0aGlzLnVucmVnaXN0ZXJTaG9ydGN1dHMoKSx0aGlzLmhvdC5yZW5kZXIoKSxsUihRdyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRo''@;'; put 'put ''aXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQel07dGhpcy5kaXNhYmxlUGx1Z2luKCksdGhpcy5lbmFibGVQbHVnaW4oKSx0aGlzLmdlbmVyYXRlRnJvbVNldHRpbmdzKHkpLGxSKFF3KGgu''@;'; put 'put ''cHJvdG90eXBlKSwidXBkYXRlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidmFsaWRhdGVTZXR0aW5nIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz0hMDtyZXR1cm4hIXkmJihIZy5jb250YWluc05lZ2F0aXZlVmFsdWVzKHkpPyhsMShIZy5ORUdBVElWRV9WQUxVRVNfV0FSTklO''@;'; put 'put ''Ryh5KSksQz0hMSk6SGcuaXNPdXRPZkJvdW5kcyh5LHRoaXMuaG90LmNvdW50Um93cygpLHRoaXMuaG90LmNvdW50Q29scygpKT8obDEoSGcuSVNfT1VUX09GX0JPVU5EU19XQVJOSU5HKHkpKSxDPSExKTpIZy5pc1NpbmdsZUNlbGwoeSk/KGwxKEhnLklTX1NJTkdMRV9DRUxMKHkpKSxDPSEx''@;'; put 'put ''KTpIZy5jb250YWluc1plcm9TcGFuKHkpJiYobDEoSGcuWkVST19TUEFOX1dBUk5JTkcoeSkpLEM9ITEpLEMpfX0se2tleToiZ2VuZXJhdGVGcm9tU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXM7aWYoQXJyYXkuaXNBcnJheSh5KSl7dmFyIEksWj1bXTtVcih5LGZ1bmN0''@;'; put 'put ''aW9uKF9lKXtpZihDLnZhbGlkYXRlU2V0dGluZyhfZSkpe3ZhciBCZT1DLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhfZS5yb3csX2UuY29sKSxOZT1DLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhfZS5yb3crX2Uucm93c3Bhbi0xLF9lLmNvbCtfZS5jb2xzcGFuLTEpLEtlPUMuaG90Ll9jcmVhdGVD''@;'; put 'put ''ZWxsUmFuZ2UoQmUsQmUsTmUpO1oucHVzaChDLm1lcmdlUmFuZ2UoS2UsITAsITApKX19KSxaPVouZmlsdGVyKGZ1bmN0aW9uKF9lKXtyZXR1cm4hMCE9PV9lfSk7dmFyIHVlPXRoaXMuZ2V0QnVsa0NvbGxlY3Rpb25EYXRhKFopOyhJPXRoaXMuaG90KS5wb3B1bGF0ZUZyb21BcnJheS5hcHBs''@;'; put 'put ''eShJLFVJZSh1ZSkpfX19LHtrZXk6ImdldEJ1bGtDb2xsZWN0aW9uRGF0YSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEMsST10aGlzLmdldEJ1bGtDb2xsZWN0aW9uRGF0YVJhbmdlKHkpLHVlPShDPXRoaXMuaG90KS5nZXREYXRhLmFwcGx5KEMsVUllKEkpKS5zcGxpY2UoMCk7cmV0dXJuIFVy''@;'; put 'put ''KHksZnVuY3Rpb24oX2Upe3ZhciBCZT1ZSWUoX2UsMyksTmU9QmVbMF0sS2U9QmVbMV07VXIoQmVbMl0sZnVuY3Rpb24oT3QsJHQpe1VyKE90LGZ1bmN0aW9uKGZuLExuKXt1ZVtOZS1JWzBdKyR0XVtLZS1JWzFdK0xuXT1mbn0pfSl9KSxbSVswXSxJWzFdLHVlXX19LHtrZXk6ImdldEJ1bGtD''@;'; put 'put ''b2xsZWN0aW9uRGF0YVJhbmdlIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz1bMCwwXSxJPVswLDBdLFo9bnVsbCx1ZT1udWxsLF9lPW51bGw7cmV0dXJuIFVyKHksZnVuY3Rpb24oQmUpe1o9QmVbMF0sdWU9QmVbMV0sX2U9QmVbMl0sQ1swXT1NYXRoLm1pbihaLENbMF0pLENbMV09TWF0aC5t''@;'; put 'put ''aW4odWUsQ1sxXSksSVswXT1NYXRoLm1heChaK19lLmxlbmd0aC0xLElbMF0pLElbMV09TWF0aC5tYXgodWUrX2VbMF0ubGVuZ3RoLTEsSVsxXSl9KSxbXS5jb25jYXQoQyxJKX19LHtrZXk6ImNsZWFyQ29sbGVjdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5tZXJnZWRDZWxsc0NvbGxl''@;'; put 'put ''Y3Rpb24uY2xlYXIoKX19LHtrZXk6ImNhbk1lcmdlUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV07cmV0dXJuISFDfHx0aGlzLnZhbGlkYXRlU2V0dGluZyh5KX19LHtrZXk6InRvZ2ds''@;'; put 'put ''ZU1lcmdlT25TZWxlY3Rpb24iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKTtpZih5KXt5LnNldERpcmVjdGlvbih0aGlzLmhvdC5pc1J0bCgpPyJORS1TVyI6Ik5XLVNFIik7dmFyIEM9eS5mcm9tLEk9eS50bzt0aGlzLnRvZ2dsZU1lcmdl''@;'; put 'put ''KHkpLHRoaXMuaG90LnNlbGVjdENlbGwoQy5yb3csQy5jb2wsSS5yb3csSS5jb2wsITEpfX19LHtrZXk6Im1lcmdlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmhvdC5n''@;'; put 'put ''ZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKHkpe3kuc2V0RGlyZWN0aW9uKHRoaXMuaG90LmlzUnRsKCk/Ik5FLVNXIjoiTlctU0UiKTt2YXIgQz15LmZyb20sST15LnRvO3RoaXMudW5tZXJnZVJhbmdlKHksITApLHRoaXMubWVyZ2VSYW5nZSh5KSx0aGlzLmhvdC5zZWxlY3RDZWxsKEMucm93''@;'; put 'put ''LEMuY29sLEkucm93LEkuY29sLCExKX19fSx7a2V5OiJ1bm1lcmdlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp0aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO2lmKHkp''@;'; put 'put ''e3ZhciBDPXkuZnJvbSxJPXkudG87dGhpcy51bm1lcmdlUmFuZ2UoeSwhMCksdGhpcy5ob3Quc2VsZWN0Q2VsbChDLnJvdyxDLmNvbCxJLnJvdyxJLmNvbCwhMSl9fX0se2tleToibWVyZ2VSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYm''@;'; put 'put ''dm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sWj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHVlPXkuZ2V0VG9wU3RhcnRDb3JuZXIoKSxfZT15LmdldEJvdHRvbUVuZENvcm5lcigpLEJlPXtyb3c6dWUucm93LGNvbDp1''@;'; put 'put ''ZS5jb2wscm93c3BhbjpfZS5yb3ctdWUucm93KzEsY29sc3BhbjpfZS5jb2wtdWUuY29sKzF9LE5lPVtdLEtlPW51bGw7aWYoIXRoaXMuY2FuTWVyZ2VSYW5nZShCZSxJKSlyZXR1cm4hMTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlTWVyZ2VDZWxscyIseSxJKSxpYSgwLEJlLnJvd3NwYW4t''@;'; put 'put ''MSxmdW5jdGlvbihPdCl7aWEoMCxCZS5jb2xzcGFuLTEsZnVuY3Rpb24oJHQpe3ZhciBmbj1udWxsO05lW090XXx8KE5lW090XT1bXSksMD09PU90JiYwPT09JHQ/Zm49Qy5ob3QuZ2V0RGF0YUF0Q2VsbChCZS5yb3csQmUuY29sKTpDLmhvdC5zZXRDZWxsTWV0YShCZS5yb3crT3QsQmUuY29s''@;'; put 'put ''KyR0LCJoaWRkZW4iLCEwKSxOZVtPdF1bJHRdPWZufSl9KSx0aGlzLmhvdC5zZXRDZWxsTWV0YShCZS5yb3csQmUuY29sLCJzcGFubmVkIiwhMCk7dmFyIHB0PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmFkZChCZSk7cmV0dXJuIXB0fHwoWj9LZT1bQmUucm93LEJlLmNvbCxOZV06dGhp''@;'; put 'put ''cy5ob3QucG9wdWxhdGVGcm9tQXJyYXkoQmUucm93LEJlLmNvbCxOZSx2b2lkIDAsdm9pZCAwLHRoaXMucGx1Z2luTmFtZSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyTWVyZ2VDZWxscyIseSxCZSxJKSxLZSl9fSx7a2V5OiJ1bm1lcmdlUmFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBD''@;'; put 'put ''PXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSYmYXJndW1lbnRzWzFdLFo9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2UoeSk7IVp8fCh0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVW5tZXJnZUNlbGxzIix5LEkpLFVyKFos''@;'; put 'put ''ZnVuY3Rpb24odWUpe0MubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLnJlbW92ZSh1ZS5yb3csdWUuY29sKSxpYSgwLHVlLnJvd3NwYW4tMSxmdW5jdGlvbihfZSl7aWEoMCx1ZS5jb2xzcGFuLTEsZnVuY3Rpb24oQmUpe0MuaG90LnJlbW92ZUNlbGxNZXRhKHVlLnJvdytfZSx1ZS5jb2wrQmUsImhp''@;'; put 'put ''ZGRlbiIpfSl9KSxDLmhvdC5yZW1vdmVDZWxsTWV0YSh1ZS5yb3csdWUuY29sLCJzcGFubmVkIil9KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbm1lcmdlQ2VsbHMiLHksSSksdGhpcy5ob3QucmVuZGVyKCkpfX0se2tleToidG9nZ2xlTWVyZ2UiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBD''@;'; put 'put ''PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LmZyb20ucm93LHkuZnJvbS5jb2wpO0Mucm93PT09eS5mcm9tLnJvdyYmQy5jb2w9PT15LmZyb20uY29sJiZDLnJvdytDLnJvd3NwYW4tMT09PXkudG8ucm93JiZDLmNvbCtDLmNvbHNwYW4tMT09PXkudG8uY29sP3RoaXMudW5tZXJn''@;'; put 'put ''ZVJhbmdlKHkpOnRoaXMubWVyZ2VTZWxlY3Rpb24oeSl9fSx7a2V5OiJtZXJnZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7dmFyIHVlPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHksQyksX2U9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSSxaKTt0aGlzLm1lcmdlUmFuZ2UodGhp''@;'; put 'put ''cy5ob3QuX2NyZWF0ZUNlbGxSYW5nZSh1ZSx1ZSxfZSkpfX0se2tleToidW5tZXJnZSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7dmFyIHVlPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHksQyksX2U9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSSxaKTt0aGlzLnVubWVyZ2VSYW5n''@;'; put 'put ''ZSh0aGlzLmhvdC5fY3JlYXRlQ2VsbFJhbmdlKHVlLHVlLF9lKSl9fSx7a2V5OiJvbkFmdGVySW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmdlbmVyYXRlRnJvbVNldHRpbmdzKHRoaXMuaG90LmdldFNldHRpbmdzKClbUHpdKSx0aGlzLmhvdC5yZW5kZXIoKX19LHtrZXk6InJlZ2lzdGVy''@;'; put 'put ''U2hvcnRjdXRzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLmFkZFNob3J0Y3V0KHtrZXlzOltbIkNvbnRyb2wiLCJtIl1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7eS50b2dnbGVNZXJnZSh5LmhvdC5n''@;'; put 'put ''ZXRTZWxlY3RlZFJhbmdlTGFzdCgpKSx5LmhvdC5yZW5kZXIoKX0scnVuT25seUlmOmZ1bmN0aW9uKHVlKXtyZXR1cm4hdWUuYWx0S2V5fSxncm91cDokSWV9KX19LHtrZXk6InVucmVnaXN0ZXJTaG9ydGN1dHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QuZ2V0U2hvcnRjdXRNYW5hZ2Vy''@;'; put 'put ''KCkuZ2V0Q29udGV4dCgiZ3JpZCIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoJEllKX19LHtrZXk6Im9uQWZ0ZXJJc011bHRpcGxlU2VsZWN0aW9uIix2YWx1ZTpmdW5jdGlvbih5KXtpZih5KWZvcih2YXIgQz10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5tZXJnZWRDZWxscyxJPXRoaXMu''@;'; put 'put ''aG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksWj0wO1o8Qy5sZW5ndGg7Wis9MSlpZihJLmZyb20ucm93PT09Q1taXS5yb3cmJkkuZnJvbS5jb2w9PT1DW1pdLmNvbCYmSS50by5yb3c9PT1DW1pdLnJvdytDW1pdLnJvd3NwYW4tMSYmSS50by5jb2w9PT1DW1pdLmNvbCtDW1pdLmNvbHNwYW4t''@;'; put 'put ''MSlyZXR1cm4hMTtyZXR1cm4geX19LHtrZXk6Im9uTW9kaWZ5VHJhbnNmb3JtU3RhcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciB1ZSxDPUtJZS5nZXQodGhpcyksST10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLFo9e3Jvdzp5LnJvdyxjb2w6eS5jb2x9LF9lPXRoaXMuaG90Ll9j''@;'; put 'put ''cmVhdGVDZWxsQ29vcmRzKEkuaGlnaGxpZ2h0LnJvdyxJLmhpZ2hsaWdodC5jb2wpLEJlPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldChfZS5yb3csX2UuY29sKTtpZihDLmxhc3REZXNpcmVkQ29vcmRzfHwoQy5sYXN0RGVzaXJlZENvb3Jkcz10aGlzLmhvdC5fY3JlYXRlQ2VsbENv''@;'; put 'put ''b3JkcyhudWxsLG51bGwpKSxCZSl7dmFyIE5lPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEJlLnJvdyxCZS5jb2wpLEtlPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEJlLnJvdytCZS5yb3dzcGFuLTEsQmUuY29sK0JlLmNvbHNwYW4tMSk7dGhpcy5ob3QuX2NyZWF0ZUNlbGxSYW5n''@;'; put 'put ''ZShOZSxOZSxLZSkuaW5jbHVkZXMoQy5sYXN0RGVzaXJlZENvb3Jkcyl8fChDLmxhc3REZXNpcmVkQ29vcmRzPXRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKG51bGwsbnVsbCkpLFoucm93PUMubGFzdERlc2lyZWRDb29yZHMucm93P0MubGFzdERlc2lyZWRDb29yZHMucm93LV9lLnJvdzpa''@;'; put 'put ''LnJvdyxaLmNvbD1DLmxhc3REZXNpcmVkQ29vcmRzLmNvbD9DLmxhc3REZXNpcmVkQ29vcmRzLmNvbC1fZS5jb2w6Wi5jb2wseS5yb3c+MD9aLnJvdz1CZS5yb3crQmUucm93c3Bhbi0xLV9lLnJvdyt5LnJvdzp5LnJvdzwwJiYoWi5yb3c9X2Uucm93LUJlLnJvdyt5LnJvdykseS5jb2w+MD9a''@;'; put 'put ''LmNvbD1CZS5jb2wrQmUuY29sc3Bhbi0xLV9lLmNvbCt5LmNvbDp5LmNvbDwwJiYoWi5jb2w9X2UuY29sLUJlLmNvbCt5LmNvbCl9dWU9dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoSS5oaWdobGlnaHQucm93K1oucm93LEkuaGlnaGxpZ2h0LmNvbCtaLmNvbCk7dmFyIE90PXRoaXMubWVy''@;'; put 'put ''Z2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh1ZS5yb3csdWUuY29sKTtpZihPdCl7dmFyICR0PXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldEZpcnN0UmVuZGVyYWJsZUNvb3JkcyhPdC5yb3csT3QuY29sKTtDLmxhc3REZXNpcmVkQ29vcmRzPXVlLFo9e3JvdzokdC5yb3ctX2Uucm93LGNv''@;'; put 'put ''bDokdC5jb2wtX2UuY29sfX0wIT09Wi5yb3cmJih5LnJvdz1aLnJvdyksMCE9PVouY29sJiYoeS5jb2w9Wi5jb2wpfX0se2tleToib25Nb2RpZnlUcmFuc2Zvcm1FbmQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLFo9YTMo''@;'; put 'put ''eSksdWU9dGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuZ2V0VXBkYXRlZFNlbGVjdGlvblJhbmdlKEkseSksX2U9YTMoWiksQmU9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0V2l0aGluUmFuZ2UodWUsITApO2Rve19lPWEzKFopLHRoaXMuc2VsZWN0aW9uQ2FsY3VsYXRpb25zLmdl''@;'; put 'put ''dFVwZGF0ZWRTZWxlY3Rpb25SYW5nZShJLFopLFVyKEJlLGZ1bmN0aW9uKE5lKXtDLnNlbGVjdGlvbkNhbGN1bGF0aW9ucy5zbmFwRGVsdGEoWixJLE5lKX0pfXdoaWxlKFoucm93IT09X2Uucm93fHxaLmNvbCE9PV9lLmNvbCk7eS5yb3c9Wi5yb3cseS5jb2w9Wi5jb2x9fSx7a2V5OiJvbk1v''@;'; put 'put ''ZGlmeUdldENlbGxDb29yZHMiLHZhbHVlOmZ1bmN0aW9uKHksQyl7aWYoISh5PDB8fEM8MCkpe3ZhciBJPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LEMpO2lmKEkpe3ZhciBaPUkucm93LHVlPUkuY29sO3JldHVybltaLHVlLForSS5yb3dzcGFuLTEsdWUrSS5jb2xzcGFuLTFd''@;'; put 'put ''fX19fSx7a2V5OiJhZGRNZXJnZUFjdGlvbnNUb0NvbnRleHRNZW51Iix2YWx1ZTpmdW5jdGlvbih5KXt5Lml0ZW1zLnB1c2goe25hbWU6Ii0tLS0tLS0tLSJ9LGZ1bmN0aW9uIEhkdChkKXtyZXR1cm57a2V5OiJtZXJnZUNlbGxzIixuYW1lOmZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5nZXRTZWxl''@;'; put 'put ''Y3RlZExhc3QoKTtpZihoKXt2YXIgdj1kLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQoaFswXSxoWzFdKTtpZih2LnJvdz09PWhbMF0mJnYuY29sPT09aFsxXSYmdi5yb3crdi5yb3dzcGFuLTE9PT1oWzJdJiZ2LmNvbCt2LmNvbHNwYW4tMT09PWhbM10pcmV0dXJuIHRoaXMuZ2V0VHJhbnNs''@;'; put 'put ''YXRlZFBocmFzZShWNGUpfXJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoTjRlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtkLnRvZ2dsZU1lcmdlT25TZWxlY3Rpb24oKX0sZGlzYWJsZWQ6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLmdldFNlbGVjdGVkTGFzdCgpO3JldHVybiFofHxIZy5p''@;'; put 'put ''c1NpbmdsZUNlbGwoe3JvdzpoWzBdLGNvbDpoWzFdLHJvd3NwYW46aFsyXS1oWzBdKzEsY29sc3BhbjpoWzNdLWhbMV0rMX0pfHx0aGlzLnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb3JuZXIoKX0saGlkZGVuOiExfX0odGhpcykpfX0se2tleToib25BZnRlclJlbmRlcmVyIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbih5LEMsSSl7dmFyIFo9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KEMsSSksdWU9eGwoWik/YTMoWik6dm9pZCAwO2lmKHhsKHVlKSl7dmFyIF9lPXRoaXMuaG90LEJlPV9lLnJvd0luZGV4TWFwcGVyLE5lPV9lLmNvbHVtbkluZGV4TWFwcGVyLExuPVlJZSh0aGlzLnRyYW5z''@;'; put 'put ''bGF0ZU1lcmdlZENlbGxUb1JlbmRlcmFibGUodWUucm93LHVlLnJvd3NwYW4sdWUuY29sLHVlLmNvbHNwYW4pLDIpLG1yPUxuWzFdLFFyPUxuWzBdLUJlLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoQykrMSx5aT1tci1OZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkpKzE7''@;'; put 'put ''dWUucm93PUJlLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh1ZS5yb3csMSksdWUuY29sPU5lLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleCh1ZS5jb2wsMSksdWUucm93c3Bhbj1NYXRoLm1pbih1ZS5yb3dzcGFuLFFyKSx1ZS5jb2xzcGFuPU1hdGgubWluKHVlLmNvbHNwYW4seWkpfUNnZSh5''@;'; put 'put ''LHVlLEMsSSl9fSx7a2V5OiJvbkJlZm9yZVNldFJhbmdlU3RhcnQiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmlzRmlyc3RSZW5kZXJhYmxlTWVyZ2VkQ2VsbCh5LnJvdyx5LmNvbCkpe3ZhciBDPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdl''@;'; put 'put ''dCh5LnJvdyx5LmNvbCksST1bQy5yb3csQy5jb2xdO3kucm93PUlbMF0seS5jb2w9SVsxXX19fSx7a2V5OiJvbkJlZm9yZVNldFJhbmdlRW5kIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO0MuaGlnaGxpZ2h0PXRoaXMuaG90Ll9jcmVh''@;'; put 'put ''dGVDZWxsQ29vcmRzKEMuaGlnaGxpZ2h0LnJvdyxDLmhpZ2hsaWdodC5jb2wpLEMudG89eTt2YXIgST0hMTtpZighdGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpJiYhdGhpcy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeVJvd0hlYWRlcigpKWRve0k9ITE7''@;'; put 'put ''Zm9yKHZhciBaPTA7Wjx0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5tZXJnZWRDZWxscy5sZW5ndGg7Wis9MSl7dmFyIF9lPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLm1lcmdlZENlbGxzW1pdLmdldFJhbmdlKCk7Qy5leHBhbmRCeVJhbmdlKF9lKSYmKHkucm93PUMudG8ucm93LHku''@;'; put 'put ''Y29sPUMudG8uY29sLEk9ITApfX13aGlsZShJKX19LHtrZXk6Im9uQWZ0ZXJHZXRDZWxsTWV0YSIsdmFsdWU6ZnVuY3Rpb24oeSxDLEkpe3ZhciBaPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LEMpO1omJihaLnJvdyE9PXl8fFouY29sIT09Qz9JLmNvcHlhYmxlPSExOihJLnJv''@;'; put 'put ''d3NwYW49Wi5yb3dzcGFuLEkuY29sc3Bhbj1aLmNvbHNwYW4pKX19LHtrZXk6Im9uQWZ0ZXJWaWV3cG9ydFJvd0NhbGN1bGF0b3JPdmVycmlkZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5ob3QuY291bnRDb2xzKCk7dGhpcy5tb2RpZnlWaWV3cG9ydFJvd1N0YXJ0KHksQyksdGhp''@;'; put 'put ''cy5tb2RpZnlWaWV3cG9ydFJvd0VuZCh5LEMpfX0se2tleToibW9kaWZ5Vmlld3BvcnRSb3dTdGFydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIsWj1JLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoeS5zdGFydFJvdyksdWU9MDt1''@;'; put 'put ''ZTxDO3VlKz0xKXt2YXIgX2U9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KFosdWUpO2lmKHhsKF9lKSl7dmFyIEJlPUkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJbmRleChJLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfZS5yb3csMSkpO2lmKEJlPHkuc3RhcnRSb3cpcmV0dXJu''@;'; put 'put ''IHkuc3RhcnRSb3c9QmUsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Um93U3RhcnQoeSxDKX19fX0se2tleToibW9kaWZ5Vmlld3BvcnRSb3dFbmQiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Zm9yKHZhciBJPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLFo9SS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJs''@;'; put 'put ''ZUluZGV4KHkuZW5kUm93KSx1ZT0wO3VlPEM7dWUrPTEpe3ZhciBfZT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQoWix1ZSk7aWYoeGwoX2UpKXt2YXIgTmU9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KF9lLnJvdytfZS5y''@;'; put 'put ''b3dzcGFuLTEsLTEpKTtpZihOZT55LmVuZFJvdylyZXR1cm4geS5lbmRSb3c9TmUsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Um93RW5kKHksQyl9fX19LHtrZXk6Im9uQWZ0ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5o''@;'; put 'put ''b3QuY291bnRSb3dzKCk7dGhpcy5tb2RpZnlWaWV3cG9ydENvbHVtblN0YXJ0KHksQyksdGhpcy5tb2RpZnlWaWV3cG9ydENvbHVtbkVuZCh5LEMpfX0se2tleToibW9kaWZ5Vmlld3BvcnRDb2x1bW5TdGFydCIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtmb3IodmFyIEk9dGhpcy5ob3QuY29sdW1u''@;'; put 'put ''SW5kZXhNYXBwZXIsWj1JLmdldFZpc3VhbEZyb21SZW5kZXJhYmxlSW5kZXgoeS5zdGFydENvbHVtbiksdWU9MDt1ZTxDO3VlKz0xKXt2YXIgX2U9dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uZ2V0KHVlLFopO2lmKHhsKF9lKSl7dmFyIEJlPUkuZ2V0UmVuZGVyYWJsZUZyb21WaXN1YWxJ''@;'; put 'put ''bmRleChJLmdldE5lYXJlc3ROb3RIaWRkZW5JbmRleChfZS5jb2wsMSkpO2lmKEJlPHkuc3RhcnRDb2x1bW4pcmV0dXJuIHkuc3RhcnRDb2x1bW49QmUsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Q29sdW1uU3RhcnQoeSxDKX19fX0se2tleToibW9kaWZ5Vmlld3BvcnRDb2x1bW5FbmQiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKHksQyl7Zm9yKHZhciBJPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLFo9SS5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUluZGV4KHkuZW5kQ29sdW1uKSx1ZT0wO3VlPEM7dWUrPTEpe3ZhciBfZT10aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5nZXQodWUsWik7aWYo''@;'; put 'put ''eGwoX2UpKXt2YXIgTmU9SS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEkuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KF9lLmNvbCtfZS5jb2xzcGFuLTEsLTEpKTtpZihOZT55LmVuZENvbHVtbilyZXR1cm4geS5lbmRDb2x1bW49TmUsdm9pZCB0aGlzLm1vZGlmeVZpZXdwb3J0Q29s''@;'; put 'put ''dW1uRW5kKHksQyl9fX19LHtrZXk6InRyYW5zbGF0ZU1lcmdlZENlbGxUb1JlbmRlcmFibGUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFope3ZhciBOZSxLZSx1ZT10aGlzLmhvdCxfZT11ZS5yb3dJbmRleE1hcHBlcixCZT11ZS5jb2x1bW5JbmRleE1hcHBlcjtyZXR1cm4gTmU9MD09PUM/X2Uu''@;'; put 'put ''Z2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHksMSk6X2UuZ2V0TmVhcmVzdE5vdEhpZGRlbkluZGV4KHkrQy0xLC0xKSxLZT0wPT09Wj9CZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSSwxKTpCZS5nZXROZWFyZXN0Tm90SGlkZGVuSW5kZXgoSStaLTEsLTEpLFt5Pj0wP19lLmdldFJlbmRl''@;'; put 'put ''cmFibGVGcm9tVmlzdWFsSW5kZXgoTmUpOnksST49MD9CZS5nZXRSZW5kZXJhYmxlRnJvbVZpc3VhbEluZGV4KEtlKTpJXX19LHtrZXk6Im9uTW9kaWZ5QXV0b2ZpbGxSYW5nZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zLmNvcnJlY3RTZWxlY3Rpb25B''@;'; put 'put ''cmVhU2l6ZShDKTt2YXIgST10aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zLmdldERpcmVjdGlvbihDLHkpLFo9eTtpZih0aGlzLmF1dG9maWxsQ2FsY3VsYXRpb25zLmRyYWdBcmVhT3ZlcmxhcHNDb2xsZWN0aW9ucyhDLFosSSkpcmV0dXJuIEM7dmFyIHVlPXRoaXMubWVyZ2VkQ2VsbHNDb2xs''@;'; put 'put ''ZWN0aW9uLmdldFdpdGhpblJhbmdlKHtmcm9tOntyb3c6Q1swXSxjb2w6Q1sxXX0sdG86e3JvdzpDWzJdLGNvbDpDWzNdfX0pO3JldHVybiB1ZSYmKFo9dGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucy5zbmFwRHJhZ0FyZWEoQyxaLEksdWUpKSxafX0se2tleToib25BZnRlckNyZWF0ZUNvbCIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oeSxDKXt0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJyaWdodCIseSxDKX19LHtrZXk6Im9uQWZ0ZXJSZW1vdmVDb2wiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dGhpcy5tZXJnZWRDZWxsc0NvbGxlY3Rpb24uc2hpZnRDb2xsZWN0aW9u''@;'; put 'put ''cygibGVmdCIseSxDKX19LHtrZXk6Im9uQWZ0ZXJDcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXsiYXV0byIhPT1JJiZ0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJkb3duIix5LEMpfX0se2tleToib25BZnRlclJlbW92ZVJvdyIsdmFsdWU6ZnVu''@;'; put 'put ''Y3Rpb24oeSxDKXt0aGlzLm1lcmdlZENlbGxzQ29sbGVjdGlvbi5zaGlmdENvbGxlY3Rpb25zKCJ1cCIseSxDKX19LHtrZXk6Im9uQWZ0ZXJDaGFuZ2UiLHZhbHVlOmZ1bmN0aW9uKHksQyl7IkF1dG9maWxsLmZpbGwiPT09QyYmdGhpcy5hdXRvZmlsbENhbGN1bGF0aW9ucy5yZWNyZWF0ZUFm''@;'; put 'put ''dGVyRGF0YVBvcHVsYXRpb24oeSl9fSx7a2V5OiJvbkJlZm9yZURyYXdBcmVhQm9yZGVycyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZihDJiYiYXJlYSI9PT1DKXt2YXIgST10aGlzLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpO1VyKHRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldFdp''@;'; put 'put ''dGhpblJhbmdlKEkpLGZ1bmN0aW9uKHVlKXtJLmdldEJvdHRvbUVuZENvcm5lcigpLnJvdz09PXVlLmdldExhc3RSb3coKSYmSS5nZXRCb3R0b21FbmRDb3JuZXIoKS5jb2w9PT11ZS5nZXRMYXN0Q29sdW1uKCkmJih5WzJdPXVlLnJvdyx5WzNdPXVlLmNvbCl9KX19fSx7a2V5OiJvbkFmdGVy''@;'; put 'put ''TW9kaWZ5VHJhbnNmb3JtU3RhcnQiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXtpZih0aGlzLmVuYWJsZWQpe3ZhciBaPXRoaXMubWVyZ2VkQ2VsbHNDb2xsZWN0aW9uLmdldCh5LnJvdyx5LmNvbCk7aWYoWil7dmFyIHVlPUM+MCxfZT1DPDAsQmU9STwwLE5lPUk+MCxLZT1aLnJvdytaLnJvd3Nw''@;'; put 'put ''YW4tMT09dGhpcy5ob3QuY291bnRSb3dzKCktMSxwdD0wPT09Wi5yb3csT3Q9Wi5jb2wrWi5jb2xzcGFuLTE9PXRoaXMuaG90LmNvdW50Q29scygpLTE7KHVlJiZLZXx8X2UmJnB0fHxOZSYmT3R8fEJlJiYwPT09Wi5jb2wpJiYoeS5yb3c9Wi5yb3cseS5jb2w9Wi5jb2wpfX19fSx7a2V5OiJv''@;'; put 'put ''bkFmdGVyRHJhd1NlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7aWYoSSlyZXR1cm4gdGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuZ2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lKHksQyxJLFopfX0se2tleToib25CZWZvcmVSZW1vdmVDZWxsQ2xhc3NOYW1lcyIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zZWxlY3Rpb25DYWxjdWxhdGlvbnMuZ2V0U2VsZWN0ZWRNZXJnZWRDZWxsQ2xhc3NOYW1lVG9SZW1vdmUoKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFB6fX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gMTUwfX1dKSxofShZcyk7ZnVuY3Rpb24gcUllKGQpe3JldHVybiBmdW5jdGlvbiByNHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gZH0oZCl8fGZ1bmN0aW9uIG40dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1i''@;'; put 'put ''b2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiB0NHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIGVEZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5z''@;'; put 'put ''bGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0Fy''@;'; put 'put ''cmF5JC8udGVzdChoKSlyZXR1cm4gZURlKGQsZyl9fShkKXx8ZnVuY3Rpb24gZTR0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2Jq''@;'; put 'put ''ZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBlRGUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlv''@;'; put 'put ''biBuRGUoKXtsMShQMih0RGV8fCh0RGU9ZnVuY3Rpb24gbzR0KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0oWyJQbHVnaW5zIGBjb2x1bW5Tb3J0aW5n''@;'; put 'put ''YCBhbmQgYG11bHRpQ29sdW1uU29ydGluZ2Agc2hvdWxkIG5vdCBiZSBlbmFibGVkIHNpbXVsdGFuZW91c2x5LiBcbiAgICBPbmx5IGBtdWx0aUNvbHVtblNvcnRpbmdgIHdpbGwgd29yay4iXSxbIlBsdWdpbnMgXFxgY29sdW1uU29ydGluZ1xcYCBhbmQgXFxgbXVsdGlDb2x1bW5Tb3J0aW5n''@;'; put 'put ''XFxgIHNob3VsZCBub3QgYmUgZW5hYmxlZCBzaW11bHRhbmVvdXNseS4gXG4gICAgT25seSBcXGBtdWx0aUNvbHVtblNvcnRpbmdcXGAgd2lsbCB3b3JrLiJdKSkpKX1mdW5jdGlvbiBhNHQoZCxnLGgpe3ZhciB2PVtdO3JldHVybiExPT09aHx8ZC5pc0NvbHVtblNvcnRlZChnKSYmZC5nZXRO''@;'; put 'put ''dW1iZXJPZlNvcnRlZENvbHVtbnMoKT4xJiZ2LnB1c2goIiIuY29uY2F0KCJzb3J0IiwiLSIpLmNvbmNhdChkLmdldEluZGV4T2ZDb2x1bW5JblNvcnRRdWV1ZShnKSsxKSksdn1mdW5jdGlvbiBsNHQoZCl7dmFyIGc9ZC5jbGFzc05hbWUuc3BsaXQoIiAiKSxoPW5ldyBSZWdFeHAoIl4iLmNv''@;'; put 'put ''bmNhdCgic29ydCIsIi1bMC05XXsxLDJ9JCIpKTtyZXR1cm4gZy5maWx0ZXIoZnVuY3Rpb24odil7cmV0dXJuIGgudGVzdCh2KX0pfWZ1bmN0aW9uIHhnZShkKXtyZXR1cm4oeGdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1''@;'; put 'put ''bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gaURlKGQsZyl7Zm9y''@;'; put 'put ''KHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gYjQoKXtyZXR1''@;'; put 'put ''cm4gYjQ9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PWM0dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQu''@;'; put 'put ''Y2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sYjQuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGM0dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9YzMoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rp''@;'; put 'put ''b24gVGdlKGQsZyl7cmV0dXJuKFRnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGQ0dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXhnZShnKXx8ImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gcDR0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cg''@;'; put 'put ''bmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gYzMoZCl7cmV0dXJuKGMzPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmlu''@;'; put 'put ''ZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIElnZT0ibXVsdGlDb2x1bW5Tb3J0aW5nIixvRGU9ImNvbHVtblNvcnRpbmciO3BFZShJZ2UsZnVuY3Rpb24gaTR0KGQsZyl7cmV0dXJuIGZ1bmN0aW9uKGgsdil7dmFy''@;'; put 'put ''IEM9cUllKGgpLnNsaWNlKDEpLFo9cUllKHYpLnNsaWNlKDEpO3JldHVybiBmdW5jdGlvbiB1ZShfZSl7dmFyIEJlPWRbX2VdLE5lPWdbX2VdLEtlPUNbX2VdLHB0PVpbX2VdLE90PU5lLm11bHRpQ29sdW1uU29ydGluZyxmbj0oT3QuY29tcGFyZUZ1bmN0aW9uRmFjdG9yeT9PdC5jb21wYXJl''@;'; put 'put ''RnVuY3Rpb25GYWN0b3J5OmdFZShOZS50eXBlKSkoQmUsTmUsT3QpKEtlLHB0KTtpZigwPT09Zm4pe3ZhciBMbj1fZSsxO2lmKHZvaWQgMCE9PWdbTG5dKXJldHVybiB1ZShMbil9cmV0dXJuIGZufSgwKX19KTt2YXIgQTR0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBmNHQoZCxnKXtpZigiZnVu''@;'; put 'put ''Y3Rpb24iIT10eXBlb2YgZyYmbnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3''@;'; put 'put ''cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmVGdlKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gaDR0KGQpe3ZhciBnPWZ1bmN0aW9uIGc0dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2Yg''@;'; put 'put ''UmVmbGVjdHx8IVJlZmxlY3QuY29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFu''@;'; put 'put ''LFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PWMzKGQpO2lmKGcpe3ZhciBDPWMzKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxh''@;'; put 'put ''cmd1bWVudHMpO3JldHVybiBkNHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIHM0dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgp''@;'; put 'put ''LCh5PWcuY2FsbCh0aGlzLHYpKS5wbHVnaW5LZXk9SWdlLHl9cmV0dXJuIGZ1bmN0aW9uIHU0dChkLGcsaCl7ZyYmaURlKGQucHJvdG90eXBlLGcpLGgmJmlEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJs''@;'; put 'put ''ZWQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGI0KGMzKGgucHJvdG90eXBlKSwiaXNFbmFibGVkIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpeyF0aGlzLmVuYWJsZWQmJnRoaXMuaG90LmdldFNldHRpbmdzKClbdGhpcy5wbHVnaW5L''@;'; put 'put ''ZXldJiZ0aGlzLmhvdC5nZXRTZXR0aW5ncygpW29EZV0mJm5EZSgpLGI0KGMzKGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXtiNChjMyhoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4i''@;'; put 'put ''LHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJzb3J0Iix2YWx1ZTpmdW5jdGlvbih5KXtiNChjMyhoLnByb3RvdHlwZSksInNvcnQiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6ImNsZWFyU29ydCIsdmFsdWU6ZnVuY3Rpb24oKXtiNChjMyhoLnByb3RvdHlwZSksImNsZWFyU29ydCIsdGhp''@;'; put 'put ''cykuY2FsbCh0aGlzKX19LHtrZXk6ImlzU29ydGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBiNChjMyhoLnByb3RvdHlwZSksImlzU29ydGVkIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZ2V0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIGI0KGMzKGgucHJvdG90''@;'; put 'put ''eXBlKSwiZ2V0U29ydENvbmZpZyIsdGhpcykuY2FsbCh0aGlzLHkpfX0se2tleToic2V0U29ydENvbmZpZyIsdmFsdWU6ZnVuY3Rpb24oeSl7YjQoYzMoaC5wcm90b3R5cGUpLCJzZXRTb3J0Q29uZmlnIix0aGlzKS5jYWxsKHRoaXMseSl9fSx7a2V5OiJnZXROb3JtYWxpemVkU29ydENvbmZp''@;'; put 'put ''Z3MiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOltdO3JldHVybiBBcnJheS5pc0FycmF5KHkpP3k6W3ldfX0se2tleToidXBkYXRlSGVhZGVyQ2xhc3NlcyIsdmFsdWU6ZnVuY3Rpb24oeSl7Zm9y''@;'; put 'put ''KHZhciBDLEk9YXJndW1lbnRzLmxlbmd0aCxaPW5ldyBBcnJheShJPjE/SS0xOjApLHVlPTE7dWU8STt1ZSsrKVpbdWUtMV09YXJndW1lbnRzW3VlXTsoQz1iNChjMyhoLnByb3RvdHlwZSksInVwZGF0ZUhlYWRlckNsYXNzZXMiLHRoaXMpKS5jYWxsLmFwcGx5KEMsW3RoaXMseV0uY29uY2F0''@;'; put 'put ''KFopKSxwbCh5LGw0dCh5KSksITEhPT10aGlzLmVuYWJsZWQmJk8wKHksYTR0LmFwcGx5KHZvaWQgMCxaKSl9fSx7a2V5OiJvblVwZGF0ZVNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbih5KXt0aGlzLmhvdC5nZXRTZXR0aW5ncygpW3RoaXMucGx1Z2luS2V5XSYmdGhpcy5ob3QuZ2V0U2V0dGlu''@;'; put 'put ''Z3MoKVtvRGVdJiZuRGUoKSxiNChjMyhoLnByb3RvdHlwZSksIm9uVXBkYXRlU2V0dGluZ3MiLHRoaXMpLmNhbGwodGhpcyx5KX19LHtrZXk6Im9uQWZ0ZXJPbkNlbGxNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHksQyl7ITEhPT1wOGUoQy5yb3csQy5jb2wseSkmJnRoaXMud2FzQ2xpY2th''@;'; put 'put ''YmxlSGVhZGVyQ2xpY2tlZCh5LEMuY29sKSYmKHRoaXMuaG90LmdldFNob3J0Y3V0TWFuYWdlcigpLmlzQ3RybFByZXNzZWQoKT8odGhpcy5ob3QuZGVzZWxlY3RDZWxsKCksdGhpcy5ob3Quc2VsZWN0Q29sdW1ucyhDLmNvbCksdGhpcy5zb3J0KHRoaXMuZ2V0TmV4dFNvcnRDb25maWcoQy5j''@;'; put 'put ''b2wsImFwcGVuZCIpKSk6dGhpcy5zb3J0KHRoaXMuZ2V0Q29sdW1uTmV4dENvbmZpZyhDLmNvbCkpKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIElnZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDE3MH19XSksaH0o''@;'; put 'put ''Q0VlKTtmdW5jdGlvbiBEZ2UoZCl7cmV0dXJuKERnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIGFEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29u''@;'; put 'put ''ZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEVuZSgpe3JldHVybiBFbmU9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVu''@;'; put 'put ''Y3Rpb24oZyxoLHYpe3ZhciB5PWI0dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sRW5lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5j''@;'; put 'put ''dGlvbiBiNHQoZCxnKXtmb3IoOyFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZCxnKSYmbnVsbCE9PShkPXNSKGQpKTspO3JldHVybiBkfWZ1bmN0aW9uIExnZShkLGcpe3JldHVybihMZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5i''@;'; put 'put ''aW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBrNHQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1EZ2UoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2''@;'; put 'put ''ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIFM0dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJl''@;'; put 'put ''ZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIHNSKGQpe3JldHVybihzUj1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfXZh''@;'; put 'put ''ciBUNHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIF80dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5j''@;'; put 'put ''cmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZMZ2UoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBDNHQoZCl7''@;'; put 'put ''dmFyIGc9ZnVuY3Rpb24gTTR0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90''@;'; put 'put ''b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9c1IoZCk7aWYoZyl7dmFyIEM9c1IodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNv''@;'; put 'put ''bnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIGs0dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24geTR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigi''@;'; put 'put ''Q2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxsKHRoaXMsdikpLmRyYWdnZWQ9W10seS5ldmVudE1hbmFnZXI9bnVsbCx5Lmxhc3RTZXRDZWxsPW51bGwseX1yZXR1cm4gZnVuY3Rpb24gdzR0KGQsZyxoKXtnJiZhRGUoZC5wcm90b3R5cGUsZyks''@;'; put 'put ''aCYmYURlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGgsW3trZXk6ImlzRW5hYmxlZCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYjgoKX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmVuYWJsZWR8''@;'; put 'put ''fCh0aGlzLmV2ZW50TWFuYWdlcnx8KHRoaXMuZXZlbnRNYW5hZ2VyPW5ldyBMMSh0aGlzKSksdGhpcy5yZWdpc3Rlckxpc3RlbmVycygpLEVuZShzUihoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJyZWdpc3Rlckxpc3RlbmVycyIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcyxJPXRoaXMuaG90LnJvb3RFbGVtZW50O2Z1bmN0aW9uIFoodWUpe2lmKDE9PT1DLmRyYWdnZWQubGVuZ3RoKXJldHVybiBDLmRyYWdnZWQuc3BsaWNlKDAsQy5kcmFnZ2VkLmxlbmd0aCksITA7dmFyIF9lPUMuZHJhZ2dlZC5pbmRleE9mKHVl''@;'; put 'put ''KTtpZigtMT09PV9lKXJldHVybiExOzA9PT1fZT9DLmRyYWdnZWQ9Qy5kcmFnZ2VkLnNsaWNlKDAsMSk6MT09PV9lJiYoQy5kcmFnZ2VkPUMuZHJhZ2dlZC5zbGljZSgtMSkpfXRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwidG91Y2hzdGFydCIsZnVuY3Rpb24odWUpe3Zh''@;'; put 'put ''ciBfZTtyZXR1cm4gdGwodWUudGFyZ2V0LCJ0b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhfZT1DLmhvdC5nZXRTZWxlY3RlZFJhbmdlTGFzdCgpLEMuZHJhZ2dlZC5wdXNoKCJ0b3AiKSxDLnRvdWNoU3RhcnRSYW5nZT17d2lkdGg6X2UuZ2V0V2lkdGgoKSxoZWlnaHQ6X2UuZ2V0SGVp''@;'; put 'put ''Z2h0KCksZGlyZWN0aW9uOl9lLmdldERpcmVjdGlvbigpfSx1ZS5wcmV2ZW50RGVmYXVsdCgpLCExKTp0bCh1ZS50YXJnZXQsImJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhIik/KF9lPUMuaG90LmdldFNlbGVjdGVkUmFuZ2VMYXN0KCksQy5kcmFnZ2VkLnB1c2goImJvdHRvbSIpLEMu''@;'; put 'put ''dG91Y2hTdGFydFJhbmdlPXt3aWR0aDpfZS5nZXRXaWR0aCgpLGhlaWdodDpfZS5nZXRIZWlnaHQoKSxkaXJlY3Rpb246X2UuZ2V0RGlyZWN0aW9uKCl9LHVlLnByZXZlbnREZWZhdWx0KCksITEpOnZvaWQgMH0pLHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoSSwidG91Y2hl''@;'; put 'put ''bmQiLGZ1bmN0aW9uKHVlKXtyZXR1cm4gdGwodWUudGFyZ2V0LCJ0b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSIpPyhaLmNhbGwoQywidG9wIiksQy50b3VjaFN0YXJ0UmFuZ2U9dm9pZCAwLHVlLnByZXZlbnREZWZhdWx0KCksITEpOnRsKHVlLnRhcmdldCwiYm90dG9tU2VsZWN0aW9uSGFu''@;'; put 'put ''ZGxlLUhpdEFyZWEiKT8oWi5jYWxsKEMsImJvdHRvbSIpLEMudG91Y2hTdGFydFJhbmdlPXZvaWQgMCx1ZS5wcmV2ZW50RGVmYXVsdCgpLCExKTp2b2lkIDB9KSx0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKEksInRvdWNobW92ZSIsZnVuY3Rpb24odWUpe3ZhciBCZSxOZSxL''@;'; put 'put ''ZSxwdCxPdCwkdDtpZigwIT09Qy5kcmFnZ2VkLmxlbmd0aCl7dmFyIGZuPXkuaG90LnJvb3REb2N1bWVudC5lbGVtZW50RnJvbVBvaW50KHVlLnRvdWNoZXNbMF0uY2xpZW50WCx1ZS50b3VjaGVzWzBdLmNsaWVudFkpOyFmbnx8Zm49PT1DLmxhc3RTZXRDZWxsfHwoKCJURCI9PT1mbi5ub2Rl''@;'; put 'put ''TmFtZXx8IlRIIj09PWZuLm5vZGVOYW1lKSYmKC0xPT09KEJlPUMuaG90LmdldENvb3JkcyhmbikpLmNvbCYmKEJlLmNvbD0wKSxLZT0oTmU9Qy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSkuZ2V0V2lkdGgoKSxwdD1OZS5nZXRIZWlnaHQoKSxPdD1OZS5nZXREaXJlY3Rpb24oKSwxPT09''@;'; put 'put ''S2UmJjE9PT1wdCYmQy5ob3Quc2VsZWN0aW9uLnNldFJhbmdlRW5kKEJlKSxudWxsIT09KCR0PUMuZ2V0Q3VycmVudFJhbmdlQ29vcmRzKE5lLEJlLEMudG91Y2hTdGFydFJhbmdlLmRpcmVjdGlvbixPdCxDLmRyYWdnZWRbMF0pKS5zdGFydCYmQy5ob3Quc2VsZWN0aW9uLnNldFJhbmdlU3Rh''@;'; put 'put ''cnQoJHQuc3RhcnQpLEMuaG90LnNlbGVjdGlvbi5zZXRSYW5nZUVuZCgkdC5lbmQpLEMubGFzdFNldENlbGw9Zm4pLHVlLnByZXZlbnREZWZhdWx0KCkpfX0pfX0se2tleToiZ2V0Q3VycmVudFJhbmdlQ29vcmRzIix2YWx1ZTpmdW5jdGlvbih5LEMsSSxaLHVlKXt2YXIgX2U9eS5nZXRUb3BT''@;'; put 'put ''dGFydENvcm5lcigpLEJlPXkuZ2V0Qm90dG9tRW5kQ29ybmVyKCksTmU9eS5nZXRCb3R0b21TdGFydENvcm5lcigpLEtlPXkuZ2V0VG9wRW5kQ29ybmVyKCkscHQ9e3N0YXJ0Om51bGwsZW5kOm51bGx9O3N3aXRjaChJKXtjYXNlIk5FLVNXIjpzd2l0Y2goWil7Y2FzZSJORS1TVyI6Y2FzZSJO''@;'; put 'put ''Vy1TRSI6cHQ9InRvcCI9PT11ZT97c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3cseS5oaWdobGlnaHQuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoTmUucm93LEMuY29sKX06e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKHkuaGlnaGxp''@;'; put 'put ''Z2h0LnJvdyxDLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEMucm93LF9lLmNvbCl9O2JyZWFrO2Nhc2UiU0UtTlciOiJib3R0b20iPT09dWUmJihwdD17c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQmUucm93LEMuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0''@;'; put 'put ''ZUNlbGxDb29yZHMoQy5yb3csX2UuY29sKX0pfWJyZWFrO2Nhc2UiTlctU0UiOnN3aXRjaChaKXtjYXNlIk5FLVNXIjoidG9wIj09PXVlP3B0PXtzdGFydDpDLGVuZDpOZX06cHQuZW5kPUM7YnJlYWs7Y2FzZSJOVy1TRSI6InRvcCI9PT11ZT9wdD17c3RhcnQ6QyxlbmQ6QmV9OnB0LmVuZD1D''@;'; put 'put ''O2JyZWFrO2Nhc2UiU0UtTlciOiJ0b3AiPT09dWU/cHQ9e3N0YXJ0OkMsZW5kOl9lfTpwdC5lbmQ9QzticmVhaztjYXNlIlNXLU5FIjoidG9wIj09PXVlP3B0PXtzdGFydDpDLGVuZDpLZX06cHQuZW5kPUN9YnJlYWs7Y2FzZSJTVy1ORSI6c3dpdGNoKFope2Nhc2UiTlctU0UiOnB0PSJib3R0''@;'; put 'put ''b20iPT09dWU/e3N0YXJ0OnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKEMucm93LF9lLmNvbCksZW5kOnRoaXMuaG90Ll9jcmVhdGVDZWxsQ29vcmRzKE5lLnJvdyxDLmNvbCl9OntzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhfZS5yb3csQy5jb2wpLGVuZDp0aGlzLmhvdC5f''@;'; put 'put ''Y3JlYXRlQ2VsbENvb3JkcyhDLnJvdyxCZS5jb2wpfTticmVhaztjYXNlIlNXLU5FIjpwdD0idG9wIj09PXVlP3tzdGFydDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3Jkcyh5LmhpZ2hsaWdodC5yb3csQy5jb2wpLGVuZDp0aGlzLmhvdC5fY3JlYXRlQ2VsbENvb3JkcyhDLnJvdyxCZS5jb2wp''@;'; put 'put ''fTp7c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQy5yb3csX2UuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoX2Uucm93LEMuY29sKX07YnJlYWs7Y2FzZSJTRS1OVyI6ImJvdHRvbSI9PT11ZT9wdD17c3RhcnQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMo''@;'; put 'put ''Qy5yb3csS2UuY29sKSxlbmQ6dGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoX2Uucm93LEMuY29sKX06InRvcCI9PT11ZSYmKHB0PXtzdGFydDpOZSxlbmQ6Q30pfWJyZWFrO2Nhc2UiU0UtTlciOnN3aXRjaChaKXtjYXNlIk5XLVNFIjpjYXNlIk5FLVNXIjpjYXNlIlNXLU5FIjoidG9wIj09''@;'; put 'put ''PXVlJiYocHQuZW5kPUMpO2JyZWFrO2Nhc2UiU0UtTlciOiJ0b3AiPT09dWU/cHQuZW5kPUM6cHQ9e3N0YXJ0OkMsZW5kOl9lfX19cmV0dXJuIHB0fX0se2tleToiaXNEcmFnZ2VkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRyYWdnZWQubGVuZ3RoPjB9fV0sW3trZXk6IlBMVUdJ''@;'; put 'put ''Tl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiJtdWx0aXBsZVNlbGVjdGlvbkhhbmRsZXMifX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTYwfX1dKSxofShZcyk7ZnVuY3Rpb24gT2dlKCl7dmFyIGQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAh''@;'; put 'put ''PT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOnt9LGc9ZC5sYWJlbCxoPXZvaWQgMD09PWc/IiI6Zyx2PWQuY29sc3Bhbix5PXZvaWQgMD09PXY/MTp2LEM9ZC5vcmlnQ29sc3BhbixJPXZvaWQgMD09PUM/MTpDLFo9ZC5jb2xsYXBzaWJsZSx1ZT12b2lkIDAhPT1aJiZaLF9lPWQuY3Jvc3NI''@;'; put 'put ''aWRkZW5Db2x1bW5zLEJlPXZvaWQgMD09PV9lP1tdOl9lLE5lPWQuaXNDb2xsYXBzZWQsS2U9dm9pZCAwIT09TmUmJk5lLHB0PWQuaXNIaWRkZW4sT3Q9dm9pZCAwIT09cHQmJnB0LCR0PWQuaXNSb290LGZuPXZvaWQgMCE9PSR0JiYkdCxMbj1kLmlzUGxhY2Vob2xkZXIsaXI9dm9pZCAwIT09''@;'; put 'put ''TG4mJkxuO3JldHVybntsYWJlbDpoLGNvbHNwYW46eSxvcmlnQ29sc3BhbjpJLGNvbGxhcHNpYmxlOnVlLGlzQ29sbGFwc2VkOktlLGNyb3NzSGlkZGVuQ29sdW1uczpCZSxpc0hpZGRlbjpPdCxpc1Jvb3Q6Zm4saXNQbGFjZWhvbGRlcjppcn19ZnVuY3Rpb24gc0RlKGQpe3JldHVybiBmdW5j''@;'; put 'put ''dGlvbiBPNHQoZCl7aWYoQXJyYXkuaXNBcnJheShkKSlyZXR1cm4gUmdlKGQpfShkKXx8ZnVuY3Rpb24gTDR0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShk''@;'; put 'put ''KX0oZCl8fGZ1bmN0aW9uIEQ0dChkLGcpe2lmKGQpe2lmKCJzdHJpbmciPT10eXBlb2YgZClyZXR1cm4gUmdlKGQsZyk7dmFyIGg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGQpLnNsaWNlKDgsLTEpO2lmKCJPYmplY3QiPT09aCYmZC5jb25zdHJ1Y3RvciYmKGg9ZC5jb25zdHJ1''@;'; put 'put ''Y3Rvci5uYW1lKSwiTWFwIj09PWh8fCJTZXQiPT09aClyZXR1cm4gQXJyYXkuZnJvbShkKTtpZigiQXJndW1lbnRzIj09PWh8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KGgpKXJldHVybiBSZ2UoZCxnKX19KGQpfHxmdW5jdGlvbiBJNHQoKXt0aHJv''@;'; put 'put ''dyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiBS''@;'; put 'put ''Z2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBSNHQoZCl7dmFyIGc9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJn''@;'; put 'put ''dW1lbnRzWzFdOjEvMCxoPVtdO2lmKDA9PT1nKXJldHVybiBoO1VyKGQsZnVuY3Rpb24oeSl7dmFyIEM9W10sST0wO2gucHVzaChDKSxVcih5LGZ1bmN0aW9uKFope3ZhciB1ZT1PZ2UoKTtpZih4bChaKSl7dmFyIEJlPVouY29sc3Bhbjt1ZS5sYWJlbD1ldShaLmxhYmVsKSwibnVtYmVyIj09''@;'; put 'put ''dHlwZW9mIEJlJiZCZT4xJiYodWUuY29sc3Bhbj1CZSx1ZS5vcmlnQ29sc3Bhbj1CZSl9ZWxzZSB1ZS5sYWJlbD1ldShaKTt2YXIgTmU9ITE7aWYoKEkrPXVlLm9yaWdDb2xzcGFuKT49ZyYmKHVlLmNvbHNwYW49dWUub3JpZ0NvbHNwYW4tKEktZyksdWUub3JpZ0NvbHNwYW49dWUuY29sc3Bh''@;'; put 'put ''bixOZT0hMCksQy5wdXNoKHVlKSx1ZS5jb2xzcGFuPjEpZm9yKHZhciBLZT0wO0tlPHVlLmNvbHNwYW4tMTtLZSsrKUMucHVzaCh7bGFiZWw6IiIsaXNQbGFjZWhvbGRlcjohMH0pO3JldHVybiFOZX0pfSk7dmFyIHY9TWF0aC5tYXguYXBwbHkoTWF0aCxzRGUoT2woaCxmdW5jdGlvbih5KXty''@;'; put 'put ''ZXR1cm4geS5sZW5ndGh9KSkpO3JldHVybiBVcihoLGZ1bmN0aW9uKHkpe2lmKHkubGVuZ3RoPHYpe3ZhciBDPU9sKG5ldyBBcnJheSh2LXkubGVuZ3RoKSxmdW5jdGlvbigpe3JldHVybiBPZ2UoKX0pO3kuc3BsaWNlLmFwcGx5KHksW3kubGVuZ3RoLDBdLmNvbmNhdChzRGUoQykpKX19KSxo''@;'; put 'put ''fXZhciBCNHQ9WyJyb3ciLCJjb2wiXTtmdW5jdGlvbiB1RGUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVy''@;'; put 'put ''biBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBGNHQoZCxnLGgpe3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNv''@;'; put 'put ''bmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIGNEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJs''@;'; put 'put ''ZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIEJnZShkLGcsaCl7KGZ1bmN0aW9uIFo0dChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24g''@;'; put 'put ''YW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24geDgoZCxnKXtyZXR1cm4gZnVuY3Rpb24gejR0KGQsZyl7cmV0dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxmRGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gRnooZCxnLGgpe3JldHVybiBmdW5jdGlvbiBHNHQo''@;'; put 'put ''ZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLGZEZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gZkRlKGQs''@;'; put 'put ''ZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQpfXZhciBoRGU9WyJsYWJlbCIsImNvbGxhcHNpYmxlIl0scXY9bmV3IFdlYWtNYXAsdk09bmV3IFdlYWtN''@;'; put 'put ''YXAsUGdlPW5ldyBXZWFrTWFwLFc0dD1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoKXsoZnVuY3Rpb24gVjR0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLEJnZSh0aGlzLHF2''@;'; put 'put ''LHt3cml0YWJsZTohMCx2YWx1ZTpbXX0pLEJnZSh0aGlzLHZNLHt3cml0YWJsZTohMCx2YWx1ZTowfSksQmdlKHRoaXMsUGdlLHt3cml0YWJsZTohMCx2YWx1ZToxLzB9KX1yZXR1cm4gZnVuY3Rpb24gajR0KGQsZyxoKXtnJiZjRGUoZC5wcm90b3R5cGUsZyksaCYmY0RlKGQsaCksT2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNldENvbHVtbnNMaW1pdCIsdmFsdWU6ZnVuY3Rpb24oaCl7RnoodGhpcyxQZ2UsaCl9fSx7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYm''@;'; put 'put ''dm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXTtGeih0aGlzLHF2LFI0dChoLHg4KHRoaXMsUGdlKSkpLEZ6KHRoaXMsdk0seDgodGhpcyxxdikubGVuZ3RoKX19LHtrZXk6ImdldERhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHg4KHRoaXMscXYpfX0se2tleToibWVy''@;'; put 'put ''Z2VXaXRoIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdj10aGlzO1VyKGgsZnVuY3Rpb24oeSl7dmFyIEM9eS5yb3csST15LmNvbCxaPWZ1bmN0aW9uIEg0dChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1bmN0aW9uIE40dChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFy''@;'; put 'put ''IHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9yKEM9MDtDPHYubGVuZ3RoO0MrKykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhbeV09ZFt5XSk7cmV0dXJuIGh9KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5U3lt''@;'; put 'put ''Ym9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsrKSEoZy5pbmRleE9mKHY9Q1t5XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJuIGh9KHksQjR0KSx1ZT12LmdldEhlYWRlclNldHRpbmdzKEMsSSk7''@;'; put 'put ''bnVsbCE9PXVlJiZJMSh1ZSxaLGhEZSl9KX19LHtrZXk6Im1hcCIsdmFsdWU6ZnVuY3Rpb24oaCl7VXIoeDgodGhpcyxxdiksZnVuY3Rpb24odil7VXIodixmdW5jdGlvbih5KXt2YXIgQz1oKGZ1bmN0aW9uIFA0dChkKXtmb3IodmFyIGc9MTtnPGFyZ3VtZW50cy5sZW5ndGg7ZysrKXt2YXIg''@;'; put 'put ''aD1udWxsIT1hcmd1bWVudHNbZ10/YXJndW1lbnRzW2ddOnt9O2clMj91RGUoT2JqZWN0KGgpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe0Y0dChkLHYsaFt2XSl9KTpPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycz9PYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLE9iamVjdC5nZXRP''@;'; put 'put ''d25Qcm9wZXJ0eURlc2NyaXB0b3JzKGgpKTp1RGUoT2JqZWN0KGgpKS5mb3JFYWNoKGZ1bmN0aW9uKHYpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihoLHYpKX0pfXJldHVybiBkfSh7fSx5KSk7eGwoQykmJkkxKHksQyxoRGUpfSl9''@;'; put 'put ''KX19LHtrZXk6ImdldEhlYWRlclNldHRpbmdzIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5O2lmKGg+PXg4KHRoaXMsdk0pfHxoPDApcmV0dXJuIG51bGw7dmFyIEM9eDgodGhpcyxxdilbaF07cmV0dXJuIHY+PUMubGVuZ3RoP251bGw6bnVsbCE9PSh5PUNbdl0pJiZ2b2lkIDAhPT15P3k6''@;'; put 'put ''bnVsbH19LHtrZXk6ImdldEhlYWRlcnNTZXR0aW5ncyIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06MSxDPVtdO2lmKGg+PXg4KHRoaXMsdk0pfHxoPDApcmV0dXJuIEM7Zm9yKHZhciBJPXg4''@;'; put 'put ''KHRoaXMscXYpW2hdLFo9MCx1ZT12O3VlPEkubGVuZ3RoO3VlKyspe3ZhciBfZT1JW3VlXTtpZihfZS5pc1BsYWNlaG9sZGVyKXRocm93IG5ldyBFcnJvcigiVGhlIGZpcnN0IGNvbHVtbiBzZXR0aW5ncyBjYW5ub3Qgb3ZlcmxhcCB0aGUgb3RoZXIgaGVhZGVyIGxheWVycyIpO2lmKForPV9l''@;'; put 'put ''LmNvbHNwYW4sQy5wdXNoKF9lKSxfZS5jb2xzcGFuPjEmJih1ZSs9X2UuY29sc3Bhbi0xKSxaPT09eSlicmVhaztpZihaPnkpdGhyb3cgbmV3IEVycm9yKCJUaGUgbGFzdCBjb2x1bW4gc2V0dGluZ3MgY2Fubm90IG92ZXJsYXAgdGhlIG90aGVyIGhlYWRlciBsYXllcnMiKX1yZXR1cm4gQ319''@;'; put 'put ''LHtrZXk6ImdldExheWVyc0NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB4OCh0aGlzLHZNKX19LHtrZXk6ImdldENvbHVtbnNDb3VudCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4geDgodGhpcyx2TSk+MD94OCh0aGlzLHF2KVswXS5sZW5ndGg6MH19LHtrZXk6ImNsZWFyIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbigpe0Z6KHRoaXMscXYsW10pLEZ6KHRoaXMsdk0sMCl9fV0pLGR9KCk7ZnVuY3Rpb24gZERlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYo''@;'; put 'put ''dj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVuY3Rpb24gcERlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBo''@;'; put 'put ''PW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP2REZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7eG5lKGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93''@;'; put 'put ''blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOmREZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gZ0RlKGQsZyl7Zm9yKHZhciBoPTA7''@;'; put 'put ''aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24geG5lKGQsZyxoKXtyZXR1cm4g''@;'; put 'put ''ZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBGZ2UoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5l''@;'; put 'put ''dyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn12YXIgeURlPW5ldyBNYXAoW1siREYtcHJlLW9yZGVyIixmdW5jdGlvbiBtRGUoZCxnKXtmb3IodmFyIGg9ZC5jYWxsKGcsdGhpcyksdj0wO3Y8dGhpcy5jaGlsZHMubGVuZ3RoO3YrKyl7aWYoITE9PT1oKXJldHVybiExO2g9''@;'; put 'put ''bURlLmNhbGwodGhpcy5jaGlsZHNbdl0sZCxnKX1yZXR1cm4gaH1dLFsiREYtcG9zdC1vcmRlciIsZnVuY3Rpb24gdkRlKGQsZyl7Zm9yKHZhciBoPTA7aDx0aGlzLmNoaWxkcy5sZW5ndGg7aCsrKWlmKCExPT09dkRlLmNhbGwodGhpcy5jaGlsZHNbaF0sZCxnKSlyZXR1cm4hMTtyZXR1cm4g''@;'; put 'put ''ZC5jYWxsKGcsdGhpcyl9XSxbIkJGIixmdW5jdGlvbiB0cHQoZCxnKXt2YXIgaD1bdGhpc107IWZ1bmN0aW9uIHYoKXtpZigwIT09aC5sZW5ndGgpe3ZhciB5PWguc2hpZnQoKTtoLnB1c2guYXBwbHkoaCxmdW5jdGlvbiBRNHQoZCl7cmV0dXJuIGZ1bmN0aW9uICQ0dChkKXtpZihBcnJheS5p''@;'; put 'put ''c0FycmF5KGQpKXJldHVybiBGZ2UoZCl9KGQpfHxmdW5jdGlvbiBLNHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gWDR0KGQs''@;'; put 'put ''Zyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBGZ2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8''@;'; put 'put ''IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIEZnZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEo0dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFs''@;'; put 'put ''aWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh5LmNoaWxkcykpLCExIT09ZC5jYWxsKGcseSkmJnYo''@;'; put 'put ''KX19KCl9XV0pLHdEZT1mdW5jdGlvbigpe2Z1bmN0aW9uIGQoZyl7KGZ1bmN0aW9uIFk0dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSx4bmUodGhpcywiZGF0YSIse30p''@;'; put 'put ''LHhuZSh0aGlzLCJwYXJlbnQiLG51bGwpLHhuZSh0aGlzLCJjaGlsZHMiLFtdKSx0aGlzLmRhdGE9Z31yZXR1cm4gZnVuY3Rpb24gVTR0KGQsZyxoKXtnJiZnRGUoZC5wcm90b3R5cGUsZyksaCYmZ0RlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxl''@;'; put 'put ''OiExfSl9KGQsW3trZXk6ImFkZENoaWxkIix2YWx1ZTpmdW5jdGlvbihoKXtoLnBhcmVudD10aGlzLHRoaXMuY2hpbGRzLnB1c2goaCl9fSx7a2V5OiJjbG9uZVRyZWUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBd''@;'; put 'put ''P2FyZ3VtZW50c1swXTp0aGlzLHY9bmV3IGQocERlKHt9LGguZGF0YSkpLHk9MDt5PGguY2hpbGRzLmxlbmd0aDt5Kyspdi5hZGRDaGlsZCh0aGlzLmNsb25lVHJlZShoLmNoaWxkc1t5XSkpO3JldHVybiB2fX0se2tleToicmVwbGFjZVRyZWVXaXRoIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlz''@;'; put 'put ''LmRhdGE9cERlKHt9LGguZGF0YSksdGhpcy5jaGlsZHM9W107Zm9yKHZhciB2PTA7djxoLmNoaWxkcy5sZW5ndGg7disrKXRoaXMuYWRkQ2hpbGQoaC5jaGlsZHNbdl0pfX0se2tleToid2Fsa0Rvd24iLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAw''@;'; put 'put ''IT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXToiQkYiO2lmKCF5RGUuaGFzKHYpKXRocm93IG5ldyBFcnJvcignVHJhdmVyc2FsIHN0cmF0ZWd5ICInLmNvbmNhdCh2LCciIGRvZXMgbm90IGV4aXN0JykpO3lEZS5nZXQodikuY2FsbCh0aGlzLGgsdGhpcyl9fSx7a2V5OiJ3YWxrVXAiLHZh''@;'; put 'put ''bHVlOmZ1bmN0aW9uKGgpe3ZhciB2PXRoaXM7IWZ1bmN0aW9uIEMoSSl7ITEhPT1oLmNhbGwodixJKSYmbnVsbCE9PUkucGFyZW50JiZDKEkucGFyZW50KX0odGhpcyl9fV0pLGR9KCk7ZnVuY3Rpb24gYkRlKGQsZyl7dmFyIGg9T2JqZWN0LmtleXMoZCk7aWYoT2JqZWN0LmdldE93blByb3Bl''@;'; put 'put ''cnR5U3ltYm9scyl7dmFyIHY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtnJiYodj12LmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihkLHkpLmVudW1lcmFibGV9KSksaC5wdXNoLmFwcGx5KGgsdil9cmV0dXJuIGh9ZnVu''@;'; put 'put ''Y3Rpb24gX0RlKGQpe2Zvcih2YXIgZz0xO2c8YXJndW1lbnRzLmxlbmd0aDtnKyspe3ZhciBoPW51bGwhPWFyZ3VtZW50c1tnXT9hcmd1bWVudHNbZ106e307ZyUyP2JEZShPYmplY3QoaCksITApLmZvckVhY2goZnVuY3Rpb24odil7cnB0KGQsdixoW3ZdKX0pOk9iamVjdC5nZXRPd25Qcm9w''@;'; put 'put ''ZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoaCkpOmJEZShPYmplY3QoaCkpLmZvckVhY2goZnVuY3Rpb24odil7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdixPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj''@;'; put 'put ''cmlwdG9yKGgsdikpfSl9cmV0dXJuIGR9ZnVuY3Rpb24gcnB0KGQsZyxoKXtyZXR1cm4gZyBpbiBkP09iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGcse3ZhbHVlOmgsZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTpkW2ddPWgsZH1mdW5jdGlvbiBDRGUoZCxnKXso''@;'; put 'put ''bnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBrRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVt''@;'; put 'put ''ZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBIZ2UoZCxnLGgpeyhmdW5jdGlvbiBmcHQoZCxnKXtpZihnLmhhcyhkKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJD''@;'; put 'put ''YW5ub3QgaW5pdGlhbGl6ZSB0aGUgc2FtZSBwcml2YXRlIGVsZW1lbnRzIHR3aWNlIG9uIGFuIG9iamVjdCIpfSkoZCxnKSxnLnNldChkLGgpfWZ1bmN0aW9uIGYzKGQsZyl7cmV0dXJuIGZ1bmN0aW9uIGhwdChkLGcpe3JldHVybiBnLmdldD9nLmdldC5jYWxsKGQpOmcudmFsdWV9KGQsU0Rl''@;'; put 'put ''KGQsZywiZ2V0IikpfWZ1bmN0aW9uIFNEZShkLGcsaCl7aWYoIWcuaGFzKGQpKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byAiK2grIiBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZSIpO3JldHVybiBnLmdldChkKX12YXIgRURlLHhEZSx1Uj1uZXcgV2Vha01hcCxBTT1u''@;'; put 'put ''ZXcgV2Vha01hcCxjUj1uZXcgV2Vha01hcCxncHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiB1cHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksSGdl''@;'; put 'put ''KHRoaXMsdVIse3dyaXRhYmxlOiEwLHZhbHVlOm5ldyBNYXB9KSxIZ2UodGhpcyxBTSx7d3JpdGFibGU6ITAsdmFsdWU6bmV3IE1hcH0pLEhnZSh0aGlzLGNSLHt3cml0YWJsZTohMCx2YWx1ZTpudWxsfSksZnVuY3Rpb24gZHB0KGQsZyxoKXtyZXR1cm4gZnVuY3Rpb24gcHB0KGQsZyxoKXtp''@;'; put 'put ''ZihnLnNldClnLnNldC5jYWxsKGQsaCk7ZWxzZXtpZighZy53cml0YWJsZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJhdHRlbXB0ZWQgdG8gc2V0IHJlYWQgb25seSBwcml2YXRlIGZpZWxkIik7Zy52YWx1ZT1ofX0oZCxTRGUoZCxnLCJzZXQiKSxoKSxofSh0aGlzLGNSLGcpfXJldHVybiBmdW5j''@;'; put 'put ''dGlvbiBjcHQoZCxnLGgpe2cmJmtEZShkLnByb3RvdHlwZSxnKSxoJiZrRGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oZCxbe2tleToiZ2V0Um9vdHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIEFycmF5LmZyb20oZjModGhpcyx1''@;'; put 'put ''UikudmFsdWVzKCkpfX0se2tleToiZ2V0Um9vdEJ5Q29sdW1uIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4gZjModGhpcyxBTSkuaGFzKGgpJiYodj1mMyh0aGlzLHVSKS5nZXQoZjModGhpcyxBTSkuZ2V0KGgpKSksdn19LHtrZXk6ImdldE5vZGUiLHZhbHVlOmZ1bmN0aW9uKGgs''@;'; put 'put ''dil7dmFyIHk9dGhpcy5nZXRSb290QnlDb2x1bW4odik7aWYoeSl7dmFyIFosQz12LWYzKHRoaXMsQU0pLmdldCh2KSxJPTA7cmV0dXJuIHkud2Fsa0Rvd24oZnVuY3Rpb24odWUpe3ZhciBfZT11ZS5kYXRhLEJlPV9lLm9yaWdDb2xzcGFuO2lmKGg9PT1fZS5oZWFkZXJMZXZlbCl7aWYoQz49''@;'; put 'put ''SSYmQzw9SStCZS0xKXJldHVybiBaPXVlLCExO0krPUJlfX0pLFp9fX0se2tleToicmVidWlsZFRyZWVJbmRleCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLHY9MDtmMyh0aGlzLEFNKS5jbGVhcigpLFVyKGYzKHRoaXMsdVIpLGZ1bmN0aW9uKHkpe2Zvcih2YXIgST1mdW5jdGlvbiBp''@;'; put 'put ''cHQoZCxnKXtyZXR1cm4gZnVuY3Rpb24gc3B0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBscHQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJd''@;'; put 'put ''O2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEwLEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1o''@;'; put 'put ''LnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lmKEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHxmdW5jdGlvbiBhcHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIENEZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGlj''@;'; put 'put ''ZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5''@;'; put 'put ''JC8udGVzdChoKSlyZXR1cm4gQ0RlKGQsZyl9fShkLGcpfHxmdW5jdGlvbiBvcHQoKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmpl''@;'; put 'put ''Y3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfSh5LDIpWzFdLmRhdGEuY29sc3BhbixaPXY7Wjx2K0k7WisrKWYzKGgsQU0pLnNldChaLHYpO3YrPUl9KX19LHtrZXk6ImJ1aWxkVHJlZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyKCk7Zm9yKHZh''@;'; put 'put ''ciBoPWYzKHRoaXMsY1IpLmdldENvbHVtbnNDb3VudCgpLHY9MDt2PGg7KXt2YXIgeT1mMyh0aGlzLGNSKS5nZXRIZWFkZXJTZXR0aW5ncygwLHYpLEM9bmV3IHdEZTtmMyh0aGlzLHVSKS5zZXQodixDKSx0aGlzLmJ1aWxkTGVhdmVzKEMsdiwwLHkub3JpZ0NvbHNwYW4pLHYrPXkub3JpZ0Nv''@;'; put 'put ''bHNwYW59dGhpcy5yZWJ1aWxkVHJlZUluZGV4KCl9fSx7a2V5OiJidWlsZExlYXZlcyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106MSxaPWYzKHRoaXMsY1IpLmdldEhlYWRl''@;'; put 'put ''cnNTZXR0aW5ncyh5LHYsSSk7eSs9MSxVcihaLGZ1bmN0aW9uKHVlKXt2YXIgQmUsX2U9X0RlKF9EZSh7fSx1ZSkse30se2hlYWRlckxldmVsOnktMSxjb2x1bW5JbmRleDp2fSk7MT09PXk/KGguZGF0YT1fZSxCZT1oKTooQmU9bmV3IHdEZShfZSksaC5hZGRDaGlsZChCZSkpLHk8ZjMoQyxj''@;'; put 'put ''UikuZ2V0TGF5ZXJzQ291bnQoKSYmQy5idWlsZExlYXZlcyhCZSx2LHksdWUub3JpZ0NvbHNwYW4pLHYrPXVlLm9yaWdDb2xzcGFufSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXtmMyh0aGlzLHVSKS5jbGVhcigpLGYzKHRoaXMsQU0pLmNsZWFyKCl9fV0pLGR9KCk7ZnVuY3Rp''@;'; put 'put ''b24gTURlKGQsZyl7ZC53YWxrRG93bihmdW5jdGlvbihoKXt2YXIgdj1oLmRhdGEseT1oLmNoaWxkcztpZighdi5pc0hpZGRlbiYmKGcodi5jb2x1bW5JbmRleCksMD09PXkubGVuZ3RoKSlmb3IodmFyIEM9MTtDPHYuY29sc3BhbjtDKyspZyh2LmNvbHVtbkluZGV4K0MpfSl9ZnVuY3Rpb24g''@;'; put 'put ''VG5lKGQsZyl7dmFyIGg9ZC5jaGlsZHM7aWYoMCE9PWgubGVuZ3RoKXJldHVybiBoWzBdLmRhdGFbZ119ZnVuY3Rpb24gSW5lKGQpe3JldHVybiBUbmUoZCwib3JpZ0NvbHNwYW4iKT09PWQuZGF0YS5vcmlnQ29sc3Bhbn1mdW5jdGlvbiBOZ2UoZCl7dmFyIGc9ZC5kYXRhLGg9ZC5jaGlsZHM7''@;'; put 'put ''aWYoIWcuaXNDb2xsYXBzZWR8fGcuaXNIaWRkZW58fGcub3JpZ0NvbHNwYW48PTEpcmV0dXJue3JvbGxiYWNrTW9kaWZpY2F0aW9uOmZ1bmN0aW9uKCl7fSxhZmZlY3RlZENvbHVtbnM6W10sY29sc3BhbkNvbXBlbnNhdGlvbjowfTtpZihJbmUoZCkpcmV0dXJuIE5nZShoWzBdKTtnLmlzQ29s''@;'; put 'put ''bGFwc2VkPSExO3ZhciB5PWguc2xpY2UoMSksQz1uZXcgU2V0LEk9MDtpZih5Lmxlbmd0aD4wKVVyKHksZnVuY3Rpb24oTmUpe05lLnJlcGxhY2VUcmVlV2l0aChOZS5kYXRhLmNsb25lZFRyZWUpLE5lLmRhdGEuY2xvbmVkVHJlZT1udWxsLEkrPU5lLmRhdGEuY29sc3BhbixNRGUoTmUsZnVu''@;'; put 'put ''Y3Rpb24ocHQpe0MuYWRkKHB0KX0pfSk7ZWxzZXt2YXIgdWU9Zy5vcmlnQ29sc3BhbixfZT1nLmNvbHVtbkluZGV4O0k9dWUtZy5jb2xzcGFuO2Zvcih2YXIgQmU9MTtCZTx1ZTtCZSsrKUMuYWRkKF9lK0JlKX1yZXR1cm4gZC53YWxrVXAoZnVuY3Rpb24oTmUpe3ZhciBLZT1OZS5kYXRhO0tl''@;'; put 'put ''LmNvbHNwYW4rPUksS2UuY29sc3Bhbj49S2Uub3JpZ0NvbHNwYW4/KEtlLmNvbHNwYW49S2Uub3JpZ0NvbHNwYW4sS2UuaXNDb2xsYXBzZWQ9ITEpOkluZShOZSkmJihLZS5pc0NvbGxhcHNlZD1UbmUoTmUsImlzQ29sbGFwc2VkIikpfSkse3JvbGxiYWNrTW9kaWZpY2F0aW9uOmZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIFZnZShkKX0sYWZmZWN0ZWRDb2x1bW5zOkFycmF5LmZyb20oQyksY29sc3BhbkNvbXBlbnNhdGlvbjpJfX1mdW5jdGlvbiBWZ2UoZCl7dmFyIGcsaD1kLmRhdGEsdj1kLmNoaWxkcztpZihoLmlzQ29sbGFwc2VkfHxoLmlzSGlkZGVufHxoLm9yaWdDb2xzcGFuPD0xKXJldHVy''@;'; put 'put ''bntyb2xsYmFja01vZGlmaWNhdGlvbjpmdW5jdGlvbigpe30sYWZmZWN0ZWRDb2x1bW5zOltdLGNvbHNwYW5Db21wZW5zYXRpb246MH07aWYoSW5lKGQpKXJldHVybiBWZ2UodlswXSk7aC5pc0NvbGxhcHNlZD0hMDt2YXIgQz12LnNsaWNlKDEpLEk9bmV3IFNldDtpZihDLmxlbmd0aD4wKVVy''@;'; put 'put ''KEMsZnVuY3Rpb24oS2Upe01EZShLZSxmdW5jdGlvbihwdCl7SS5hZGQocHQpfSksS2UuZGF0YS5jbG9uZWRUcmVlPUtlLmNsb25lVHJlZSgpLEtlLndhbGtEb3duKGZ1bmN0aW9uKHB0KXtwdC5kYXRhLmlzSGlkZGVuPSEwfSl9KTtlbHNlIGZvcih2YXIgWj1oLm9yaWdDb2xzcGFuLHVlPWgu''@;'; put 'put ''Y29sdW1uSW5kZXgsX2U9MTtfZTxaO19lKyspSS5hZGQodWUrX2UpO3ZhciBOZT1oLmNvbHNwYW4tKG51bGwhPT0oZz1UbmUoZCwiY29sc3BhbiIpKSYmdm9pZCAwIT09Zz9nOjEpO3JldHVybiBkLndhbGtVcChmdW5jdGlvbihLZSl7dmFyIHB0PUtlLmRhdGE7cHQuY29sc3Bhbi09TmUscHQu''@;'; put 'put ''Y29sc3Bhbjw9MT8ocHQuY29sc3Bhbj0xLHB0LmlzQ29sbGFwc2VkPSEwKTpJbmUoS2UpJiYocHQuaXNDb2xsYXBzZWQ9VG5lKEtlLCJpc0NvbGxhcHNlZCIpKX0pLHtyb2xsYmFja01vZGlmaWNhdGlvbjpmdW5jdGlvbigpe3JldHVybiBOZ2UoZCl9LGFmZmVjdGVkQ29sdW1uczpBcnJheS5m''@;'; put 'put ''cm9tKEkpLGNvbHNwYW5Db21wZW5zYXRpb246TmV9fXZhciBURGU9bmV3IE1hcChbWyJjb2xsYXBzZSIsVmdlXSxbImV4cGFuZCIsTmdlXSxbImhpZGUtY29sdW1uIixmdW5jdGlvbiB2cHQoZCxnKXtpZighTnVtYmVyLmlzSW50ZWdlcihnKSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBwYXNzZWQg''@;'; put 'put ''Z3JpZENvbHVtbkluZGV4IGFyZ3VtZW50IGhhcyBpbnZhbGlkIHR5cGUuIik7aWYoZC5jaGlsZHMubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKFAyKEVEZXx8KEVEZT1mdW5jdGlvbiBtcHQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlRoZSBwYXNzZWQgbm9kZSBpcyBub3QgdGhlIGxhc3Qgbm9kZSBvbiB0aGUgdHJlZS4gT25seSBmb3IgXG50aGUgbGFzdCBub2RlLCB0aGUgaGlkZSBjb2x1bW4gbW9kaWZpY2F0aW9uIGNhbiBiZSBhcHBs''@;'; put 'put ''aWVkLiJdLFsiVGhlIHBhc3NlZCBub2RlIGlzIG5vdCB0aGUgbGFzdCBub2RlIG9uIHRoZSB0cmVlLiBPbmx5IGZvclxceDIwXG50aGUgbGFzdCBub2RlLCB0aGUgaGlkZSBjb2x1bW4gbW9kaWZpY2F0aW9uIGNhbiBiZSBhcHBsaWVkLiJdKSkpKTtpZighZC5kYXRhLmNyb3NzSGlkZGVuQ29s''@;'; put 'put ''dW1ucy5pbmNsdWRlcyhnKSl7dmFyIHY9ITE7ZC53YWxrVXAoZnVuY3Rpb24oeSl7aWYoeS5kYXRhLmNvbGxhcHNpYmxlKXJldHVybiB2PSEwLCExfSksIXYmJmQud2Fsa1VwKGZ1bmN0aW9uKHkpe3ZhciBDPXkuZGF0YTtDLmNyb3NzSGlkZGVuQ29sdW1ucy5wdXNoKGcpLEMuY29sc3Bhbj4x''@;'; put 'put ''P0MuY29sc3Bhbi09MTpDLmlzSGlkZGVuPSEwfSl9fV0sWyJzaG93LWNvbHVtbiIsZnVuY3Rpb24geXB0KGQsZyl7aWYoIU51bWJlci5pc0ludGVnZXIoZykpdGhyb3cgbmV3IEVycm9yKCJUaGUgcGFzc2VkIGdyaWRDb2x1bW5JbmRleCBhcmd1bWVudCBoYXMgaW52YWxpZCB0eXBlLiIpO2lm''@;'; put 'put ''KGQuY2hpbGRzLmxlbmd0aD4wKXRocm93IG5ldyBFcnJvcihQMih4RGV8fCh4RGU9ZnVuY3Rpb24gQXB0KGQsZyl7cmV0dXJuIGd8fChnPWQuc2xpY2UoMCkpLE9iamVjdC5mcmVlemUoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7cmF3Ont2YWx1ZTpPYmplY3QuZnJlZXplKGcpfX0pKX0o''@;'; put 'put ''WyJUaGUgcGFzc2VkIG5vZGUgaXMgbm90IHRoZSBsYXN0IG5vZGUgb24gdGhlIHRyZWUuIE9ubHkgZm9yIFxudGhlIGxhc3Qgbm9kZSwgdGhlIHNob3cgY29sdW1uIG1vZGlmaWNhdGlvbiBjYW4gYmUgYXBwbGllZC4iXSxbIlRoZSBwYXNzZWQgbm9kZSBpcyBub3QgdGhlIGxhc3Qgbm9kZSBv''@;'; put 'put ''biB0aGUgdHJlZS4gT25seSBmb3JcXHgyMFxudGhlIGxhc3Qgbm9kZSwgdGhlIHNob3cgY29sdW1uIG1vZGlmaWNhdGlvbiBjYW4gYmUgYXBwbGllZC4iXSkpKSk7aWYoZC5kYXRhLmNyb3NzSGlkZGVuQ29sdW1ucy5pbmNsdWRlcyhnKSl7dmFyIHY9ITE7ZC53YWxrVXAoZnVuY3Rpb24oeSl7''@;'; put 'put ''aWYoeS5kYXRhLmNvbGxhcHNpYmxlKXJldHVybiB2PSEwLCExfSksIXYmJmQud2Fsa1VwKGZ1bmN0aW9uKHkpe3ZhciBDPXkuZGF0YTtDLmNyb3NzSGlkZGVuQ29sdW1ucy5zcGxpY2UoQy5jcm9zc0hpZGRlbkNvbHVtbnMuaW5kZXhPZihnKSwxKSwhQy5pc0hpZGRlbiYmQy5jb2xzcGFuPEMu''@;'; put 'put ''b3JpZ0NvbHNwYW4mJihDLmNvbHNwYW4rPTEpLEMuaXNIaWRkZW49ITF9KX19XV0pLGJwdD1bImNyb3NzSGlkZGVuQ29sdW1ucyJdO2Z1bmN0aW9uIERuZShkKXt2YXIgZz1bXTtyZXR1cm4gVXIoZCxmdW5jdGlvbihoKXtoLndhbGtEb3duKGZ1bmN0aW9uKHYpe2Zvcih2YXIgeT12LmRhdGEs''@;'; put 'put ''Qz15Lm9yaWdDb2xzcGFuLEk9eS5jb2x1bW5JbmRleCx1ZT15LmNyb3NzSGlkZGVuQ29sdW1ucyxfZT1mdW5jdGlvbiBTcHQoZCxnKXt2YXIgaDtyZXR1cm4gQXJyYXkuaXNBcnJheShkW2ddKT9oPWRbZ106ZFtnXT1oPVtdLGh9KGcseS5oZWFkZXJMZXZlbCksQmU9ITEsTmU9STtOZTxJK0M7''@;'; put 'put ''TmUrKylpZih1ZS5pbmNsdWRlcyhOZSl8fEJlKV9lLnB1c2goe2xhYmVsOiIiLGlzUGxhY2Vob2xkZXI6ITB9KTtlbHNle3ZhciBwdD1rcHQoeSk7cHQuaXNSb290PSEwLF9lLnB1c2gocHQpLEJlPSEwfX0pfSksZ31mdW5jdGlvbiBrcHQoZCl7cmV0dXJuIGZ1bmN0aW9uIF9wdChkLGcpe2lm''@;'; put 'put ''KG51bGw9PWQpcmV0dXJue307dmFyIHYseSxoPWZ1bmN0aW9uIENwdChkLGcpe2lmKG51bGw9PWQpcmV0dXJue307dmFyIHksQyxoPXt9LHY9T2JqZWN0LmtleXMoZCk7Zm9yKEM9MDtDPHYubGVuZ3RoO0MrKykhKGcuaW5kZXhPZih5PXZbQ10pPj0wKSYmKGhbeV09ZFt5XSk7cmV0dXJuIGh9''@;'; put 'put ''KGQsZyk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhkKTtmb3IoeT0wO3k8Qy5sZW5ndGg7eSsrKSEoZy5pbmRleE9mKHY9Q1t5XSk+PTApJiYoIU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUu''@;'; put 'put ''Y2FsbChkLHYpfHwoaFt2XT1kW3ZdKSl9cmV0dXJuIGh9KE9nZShkKSxicHQpfXZhciBNcHQ9WyJyb3ciXTtmdW5jdGlvbiBJRGUoZCxnKXt2YXIgaD1PYmplY3Qua2V5cyhkKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgdj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1i''@;'; put 'put ''b2xzKGQpO2cmJih2PXYuZmlsdGVyKGZ1bmN0aW9uKHkpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGQseSkuZW51bWVyYWJsZX0pKSxoLnB1c2guYXBwbHkoaCx2KX1yZXR1cm4gaH1mdW5jdGlvbiBERGUoZCl7Zm9yKHZhciBnPTE7Zzxhcmd1bWVudHMubGVuZ3Ro''@;'; put 'put ''O2crKyl7dmFyIGg9bnVsbCE9YXJndW1lbnRzW2ddP2FyZ3VtZW50c1tnXTp7fTtnJTI/SURlKE9iamVjdChoKSwhMCkuZm9yRWFjaChmdW5jdGlvbih2KXtFcHQoZCx2LGhbdl0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCxP''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhoKSk6SURlKE9iamVjdChoKSkuZm9yRWFjaChmdW5jdGlvbih2KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaCx2KSl9KX1yZXR1cm4gZH1mdW5jdGlvbiBFcHQoZCxnLGgp''@;'; put 'put ''e3JldHVybiBnIGluIGQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsZyx7dmFsdWU6aCxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmRbZ109aCxkfWZ1bmN0aW9uIExEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51''@;'; put 'put ''bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIGpnZShkLGcsaCl7KGZ1bmN0aW9uIExwdChkLGcpe2lmKGcuaGFzKGQpKXRocm93IG5l''@;'; put 'put ''dyBUeXBlRXJyb3IoIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0Iil9KShkLGcpLGcuc2V0KGQsaCl9ZnVuY3Rpb24gSHooZCxnLGgpe3JldHVybiBmdW5jdGlvbiBPcHQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxo''@;'; put 'put ''KTtlbHNle2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLE9EZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gTXUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gUnB0KGQsZyl7cmV0''@;'; put 'put ''dXJuIGcuZ2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxPRGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gT0RlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcu''@;'; put 'put ''Z2V0KGQpfXZhciBOZz1uZXcgV2Vha01hcCxfND1uZXcgV2Vha01hcCx5TT1uZXcgV2Vha01hcCxCcHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKCl7KGZ1bmN0aW9uIElwdChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3Mg''@;'; put 'put ''YXMgYSBmdW5jdGlvbiIpfSkodGhpcyxkKSxqZ2UodGhpcyxOZyx7d3JpdGFibGU6ITAsdmFsdWU6bmV3IFc0dH0pLGpnZSh0aGlzLF80LHt3cml0YWJsZTohMCx2YWx1ZTpuZXcgZ3B0KE11KHRoaXMsTmcpKX0pLGpnZSh0aGlzLHlNLHt3cml0YWJsZTohMCx2YWx1ZTpbW11dfSl9cmV0dXJu''@;'; put 'put ''IGZ1bmN0aW9uIERwdChkLGcsaCl7ZyYmTERlKGQucHJvdG90eXBlLGcpLGgmJkxEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oaCl7TXUodGhpcyxOZykuc2V0RGF0YSho''@;'; put 'put ''KTt2YXIgdj0hMTt0cnl7TXUodGhpcyxfNCkuYnVpbGRUcmVlKCl9Y2F0Y2goeSl7TXUodGhpcyxfNCkuY2xlYXIoKSxNdSh0aGlzLE5nKS5jbGVhcigpLHY9ITB9cmV0dXJuIEh6KHRoaXMseU0sRG5lKE11KHRoaXMsXzQpLmdldFJvb3RzKCkpKSx2fX0se2tleToic2V0Q29sdW1uc0xpbWl0''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoKXtNdSh0aGlzLE5nKS5zZXRDb2x1bW5zTGltaXQoaCl9fSx7a2V5OiJtZXJnZVN0YXRlV2l0aCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PU9sKGgsZnVuY3Rpb24oQyl7dmFyIEk9Qy5yb3csWj1mdW5jdGlvbiB4cHQoZCxnKXtpZihudWxsPT1k''@;'; put 'put ''KXJldHVybnt9O3ZhciB2LHksaD1mdW5jdGlvbiBUcHQoZCxnKXtpZihudWxsPT1kKXJldHVybnt9O3ZhciB5LEMsaD17fSx2PU9iamVjdC5rZXlzKGQpO2ZvcihDPTA7Qzx2Lmxlbmd0aDtDKyspIShnLmluZGV4T2YoeT12W0NdKT49MCkmJihoW3ldPWRbeV0pO3JldHVybiBofShkLGcpO2lm''@;'; put 'put ''KE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMoZCk7Zm9yKHk9MDt5PEMubGVuZ3RoO3krKykhKGcuaW5kZXhPZih2PUNbeV0pPj0wKSYmKCFPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwoZCx2''@;'; put 'put ''KXx8KGhbdl09ZFt2XSkpfXJldHVybiBofShDLE1wdCk7cmV0dXJuIEREZSh7cm93Okk8MD92LnJvd0Nvb3Jkc1RvTGV2ZWwoSSk6SX0sWil9KTtNdSh0aGlzLE5nKS5tZXJnZVdpdGgoeSksTXUodGhpcyxfNCkuYnVpbGRUcmVlKCksSHoodGhpcyx5TSxEbmUoTXUodGhpcyxfNCkuZ2V0Um9v''@;'; put 'put ''dHMoKSkpfX0se2tleToibWFwU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKGgpe011KHRoaXMsTmcpLm1hcChoKSxNdSh0aGlzLF80KS5idWlsZFRyZWUoKSxIeih0aGlzLHlNLERuZShNdSh0aGlzLF80KS5nZXRSb290cygpKSl9fSx7a2V5OiJtYXBOb2RlcyIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0''@;'; put 'put ''dXJuIFN1KE11KHRoaXMsXzQpLmdldFJvb3RzKCksZnVuY3Rpb24odix5KXtyZXR1cm4geS53YWxrRG93bihmdW5jdGlvbihDKXt2YXIgST1oKEMuZGF0YSk7dm9pZCAwIT09SSYmdi5wdXNoKEkpfSksdn0sW10pfX0se2tleToidHJpZ2dlck5vZGVNb2RpZmljYXRpb24iLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKGgsdix5KXt2PDAmJih2PXRoaXMucm93Q29vcmRzVG9MZXZlbCh2KSk7dmFyIEksQz1NdSh0aGlzLF80KS5nZXROb2RlKHYseSk7cmV0dXJuIEMmJihJPWZ1bmN0aW9uIHdwdChkLGcsaCl7aWYoIVREZS5oYXMoZCkpdGhyb3cgbmV3IEVycm9yKCdUaGUgbm9kZSBtb2RpZmllciBhY3Rp''@;'; put 'put ''b24gKCInLmNvbmNhdChkLCciKSBkb2VzIG5vdCBleGlzdC4nKSk7cmV0dXJuIFREZS5nZXQoZCkoZyxoKX0oaCxDLHkpLEh6KHRoaXMseU0sRG5lKE11KHRoaXMsXzQpLmdldFJvb3RzKCkpKSksSX19LHtrZXk6InRyaWdnZXJDb2x1bW5Nb2RpZmljYXRpb24iLHZhbHVlOmZ1bmN0aW9uKGgs''@;'; put 'put ''dil7cmV0dXJuIHRoaXMudHJpZ2dlck5vZGVNb2RpZmljYXRpb24oaCwtMSx2KX19LHtrZXk6InJvd0Nvb3Jkc1RvTGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PU1hdGgubWF4KHRoaXMuZ2V0TGF5ZXJzQ291bnQoKSwxKSx5PXYtMTtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoaCt2''@;'; put 'put ''LDApLHkpfX0se2tleToibGV2ZWxUb1Jvd0Nvb3JkcyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9TWF0aC5tYXgodGhpcy5nZXRMYXllcnNDb3VudCgpLDEpO3JldHVybiBNYXRoLm1pbihNYXRoLm1heChoLXYsLXYpLC0xKX19LHtrZXk6ImdldEhlYWRlclNldHRpbmdzIix2YWx1ZTpmdW5j''@;'; put 'put ''dGlvbihoLHYpe3ZhciB5LEM7cmV0dXJuIGg8MCYmKGg9dGhpcy5yb3dDb29yZHNUb0xldmVsKGgpKSxoPj10aGlzLmdldExheWVyc0NvdW50KCk/bnVsbDpudWxsIT09KHk9bnVsbD09PShDPU11KHRoaXMseU0pW2hdKXx8dm9pZCAwPT09Qz92b2lkIDA6Q1t2XSkmJnZvaWQgMCE9PXk/eTpu''@;'; put 'put ''dWxsfX0se2tleToiZ2V0SGVhZGVyVHJlZU5vZGVEYXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe2g8MCYmKGg9dGhpcy5yb3dDb29yZHNUb0xldmVsKGgpKTt2YXIgeT1NdSh0aGlzLF80KS5nZXROb2RlKGgsdik7cmV0dXJuIHk/RERlKHt9LHkuZGF0YSk6bnVsbH19LHtrZXk6ImZpbmRMZWZ0''@;'; put 'put ''TW9zdENvbHVtbkluZGV4Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5O2lmKChudWxsIT09KHk9dGhpcy5nZXRIZWFkZXJTZXR0aW5ncyhoLHYpKSYmdm9pZCAwIT09eT95Ontpc1Jvb3Q6ITB9KS5pc1Jvb3QpcmV0dXJuIHY7Zm9yKHZhciBaPXYtMTtaPj0wOyl7dmFyIHVlO2lmKChudWxs''@;'; put 'put ''IT09KHVlPXRoaXMuZ2V0SGVhZGVyU2V0dGluZ3MoaCxaKSkmJnZvaWQgMCE9PXVlP3VlOntpc1Jvb3Q6ITB9KS5pc1Jvb3QpYnJlYWs7Wi09MX1yZXR1cm4gWn19LHtrZXk6ImdldExheWVyc0NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNdSh0aGlzLE5nKS5nZXRMYXllcnNDb3Vu''@;'; put 'put ''dCgpfX0se2tleToiZ2V0Q29sdW1uc0NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBNdSh0aGlzLE5nKS5nZXRDb2x1bW5zQ291bnQoKX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe0h6KHRoaXMseU0sW10pLE11KHRoaXMsTmcpLmNsZWFyKCksTXUodGhpcyxfNCkuY2xl''@;'; put 'put ''YXIoKX19XSksZH0oKTtmdW5jdGlvbiBSRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9w''@;'; put 'put ''ZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBOeihkLGcsaCl7cmV0dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9dmFyIEhwdD1mdW5jdGlvbigpe2Z1bmN0aW9u''@;'; put 'put ''IGQoZyxoKXsoZnVuY3Rpb24gUHB0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLGQpLE56KHRoaXMsImhvdCIsdm9pZCAwKSxOeih0aGlzLCJuZXN0ZWRIZWFkZXJTZXR0aW5n''@;'; put 'put ''c0dldHRlciIsdm9pZCAwKSxOeih0aGlzLCJsYXllcnNDb3VudCIsMCksTnoodGhpcywiY29udGFpbmVyIix2b2lkIDApLE56KHRoaXMsIndpZHRoc01hcCIsdm9pZCAwKSx0aGlzLmhvdD1nLHRoaXMubmVzdGVkSGVhZGVyU2V0dGluZ3NHZXR0ZXI9aCx0aGlzLndpZHRoc01hcD10aGlzLmhv''@;'; put 'put ''dC5jb2x1bW5JbmRleE1hcHBlci5jcmVhdGVBbmRSZWdpc3RlckluZGV4TWFwKCJuZXN0ZWRIZWFkZXJzLndpZHRoc01hcCIsInBoeXNpY2FsSW5kZXhUb1ZhbHVlIil9cmV0dXJuIGZ1bmN0aW9uIEZwdChkLGcsaCl7ZyYmUkRlKGQucHJvdG90eXBlLGcpLGgmJlJEZShkLGgpLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXRMYXllcnNDb3VudCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMubGF5ZXJzQ291bnQ9aCx0aGlzfX0se2tleToiZ2V0V2lkdGgiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlz''@;'; put 'put ''LndpZHRoc01hcC5nZXRWYWx1ZUF0SW5kZXgodGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihoKSl9fSx7a2V5OiJidWlsZFdpZHRoc01hcCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbnRhaW5lcj10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdGhpcy5jb250''@;'; put 'put ''YWluZXIuY2xhc3NMaXN0LmFkZCgiaGFuZHNvbnRhYmxlIiwiaHRHaG9zdFRhYmxlIiwiaHRBdXRvU2l6ZSIpLHRoaXMuX2J1aWxkR2hvc3RUYWJsZSh0aGlzLmNvbnRhaW5lciksdGhpcy5ob3Qucm9vdERvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXIpO3ZhciBoPXRo''@;'; put 'put ''aXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoInRyOmxhc3Qtb2YtdHlwZSB0aCIpLHY9aC5sZW5ndGg7dGhpcy53aWR0aHNNYXAuY2xlYXIoKTtmb3IodmFyIHk9MDt5PHY7eSsrKXt2YXIgQz10aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVyYWJsZUlu''@;'; put 'put ''ZGV4KHkpLEk9dGhpcy5ob3QudG9QaHlzaWNhbENvbHVtbihDKTt0aGlzLndpZHRoc01hcC5zZXRWYWx1ZUF0SW5kZXgoSSxoW3ldLm9mZnNldFdpZHRoKX10aGlzLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKSx0aGlzLmNvbnRhaW5lcj1udWxsfX0s''@;'; put 'put ''e2tleToiX2J1aWxkR2hvc3RUYWJsZSIsdmFsdWU6ZnVuY3Rpb24oaCl7Zm9yKHZhciB2PXRoaXMuaG90LHk9di5yb290RG9jdW1lbnQsQz12LmNvbHVtbkluZGV4TWFwcGVyLEk9eS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksWj15LmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksdWU9ISF0aGlz''@;'; put 'put ''LmhvdC5nZXRTZXR0aW5ncygpLmRyb3Bkb3duTWVudSxfZT1DLmdldFJlbmRlcmFibGVJbmRleGVzTGVuZ3RoKCksQmU9MDtCZTx0aGlzLmxheWVyc0NvdW50O0JlKyspe2Zvcih2YXIgTmU9eS5jcmVhdGVFbGVtZW50KCJ0ciIpLEtlPTA7S2U8X2U7S2UrKyl7dmFyIHB0PUMuZ2V0VmlzdWFs''@;'; put 'put ''RnJvbVJlbmRlcmFibGVJbmRleChLZSk7bnVsbD09PXB0JiYocHQ9S2UpO3ZhciBPdD15LmNyZWF0ZUVsZW1lbnQoInRoIiksJHQ9dGhpcy5uZXN0ZWRIZWFkZXJTZXR0aW5nc0dldHRlcihCZSxwdCk7aWYoJHQmJighJHQuaXNQbGFjZWhvbGRlcnx8JHQuaXNIaWRkZW4pKXt2YXIgZm49JHQu''@;'; put 'put ''bGFiZWw7dWUmJihmbis9JzxidXR0b24gY2xhc3M9ImNoYW5nZVR5cGUiPjwvYnV0dG9uPicpLGt3KE90LGZuKSxPdC5jb2xTcGFuPSR0LmNvbHNwYW4sTmUuYXBwZW5kQ2hpbGQoT3QpfX1aLmFwcGVuZENoaWxkKE5lKX1JLmFwcGVuZENoaWxkKFopLGguYXBwZW5kQ2hpbGQoSSl9fSx7a2V5''@;'; put 'put ''OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLndpZHRoc01hcC5jbGVhcigpLHRoaXMuY29udGFpbmVyPW51bGx9fV0pLGR9KCk7Y29uc3QgTnB0PUhwdDtmdW5jdGlvbiBaZ2UoZCl7cmV0dXJuKFpnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5''@;'; put 'put ''bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfXZhciBC''@;'; put 'put ''RGUsUERlO2Z1bmN0aW9uIEZEZShkLGcpe3JldHVybiBnfHwoZz1kLnNsaWNlKDApKSxPYmplY3QuZnJlZXplKE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse3Jhdzp7dmFsdWU6T2JqZWN0LmZyZWV6ZShnKX19KSl9ZnVuY3Rpb24gVnB0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhy''@;'; put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gSERlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVl''@;'; put 'put ''ImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gd00oKXtyZXR1cm4gd009InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVpw''@;'; put 'put ''dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sd00uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFpwdChkLGcpe2Zvcig7IU9i''@;'; put 'put ''amVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9ZTkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gemdlKGQsZyl7cmV0dXJuKHpnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3Jl''@;'; put 'put ''dHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFdwdChkLGcpe2lmKGcmJigib2JqZWN0Ij09PVpnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9u''@;'; put 'put ''bHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gVnooZCl9ZnVuY3Rpb24gVnooZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVy''@;'; put 'put ''biBkfWZ1bmN0aW9uIGU5KGQpe3JldHVybihlOT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbihoKXtyZXR1cm4gaC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihoKX0pKGQpfWZ1bmN0aW9uIE5EZShkLGcsaCl7cmV0''@;'; put 'put ''dXJuIGcgaW4gZD9PYmplY3QuZGVmaW5lUHJvcGVydHkoZCxnLHt2YWx1ZTpoLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6ZFtnXT1oLGR9ZnVuY3Rpb24gVkRlKGQsZyxoKXsoZnVuY3Rpb24gVXB0KGQsZyl7aWYoZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVF''@;'; put 'put ''cnJvcigiQ2Fubm90IGluaXRpYWxpemUgdGhlIHNhbWUgcHJpdmF0ZSBlbGVtZW50cyB0d2ljZSBvbiBhbiBvYmplY3QiKX0pKGQsZyksZy5zZXQoZCxoKX1mdW5jdGlvbiBMbmUoZCxnLGgpe3JldHVybiBmdW5jdGlvbiBRcHQoZCxnLGgpe2lmKGcuc2V0KWcuc2V0LmNhbGwoZCxoKTtlbHNl''@;'; put 'put ''e2lmKCFnLndyaXRhYmxlKXRocm93IG5ldyBUeXBlRXJyb3IoImF0dGVtcHRlZCB0byBzZXQgcmVhZCBvbmx5IHByaXZhdGUgZmllbGQiKTtnLnZhbHVlPWh9fShkLGpEZShkLGcsInNldCIpLGgpLGh9ZnVuY3Rpb24gcGMoZCxnKXtyZXR1cm4gZnVuY3Rpb24gSnB0KGQsZyl7cmV0dXJuIGcu''@;'; put 'put ''Z2V0P2cuZ2V0LmNhbGwoZCk6Zy52YWx1ZX0oZCxqRGUoZCxnLCJnZXQiKSl9ZnVuY3Rpb24gakRlKGQsZyxoKXtpZighZy5oYXMoZCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXR0ZW1wdGVkIHRvICIraCsiIHByaXZhdGUgZmllbGQgb24gbm9uLWluc3RhbmNlIik7cmV0dXJuIGcuZ2V0KGQp''@;'; put 'put ''fXZhciBaRGU9Im5lc3RlZEhlYWRlcnMiLGFmPW5ldyBXZWFrTWFwLEp3PW5ldyBXZWFrTWFwLEtwdD1mdW5jdGlvbihkKXshZnVuY3Rpb24genB0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVz''@;'; put 'put ''dCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3''@;'; put 'put ''cml0YWJsZTohMX0pLGcmJnpnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIEdwdChkKXt2YXIgZz1mdW5jdGlvbiBZcHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVu''@;'; put 'put ''Y3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHks''@;'; put 'put ''dj1lOShkKTtpZihnKXt2YXIgQz1lOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gV3B0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKCl7dmFyIHY7VnB0KHRoaXMsaCk7Zm9y''@;'; put 'put ''KHZhciB5PWFyZ3VtZW50cy5sZW5ndGgsQz1uZXcgQXJyYXkoeSksST0wO0k8eTtJKyspQ1tJXT1hcmd1bWVudHNbSV07cmV0dXJuIFZEZShWeih2PWcuY2FsbC5hcHBseShnLFt0aGlzXS5jb25jYXQoQykpKSxhZix7d3JpdGFibGU6ITAsdmFsdWU6bmV3IEJwdH0pLFZEZShWeih2KSxKdyx7''@;'; put 'put ''d3JpdGFibGU6ITAsdmFsdWU6bnVsbH0pLE5EZShWeih2KSwiZ2hvc3RUYWJsZSIsbmV3IE5wdCh2LmhvdCxmdW5jdGlvbihaLHVlKXtyZXR1cm4gdi5nZXRIZWFkZXJTZXR0aW5ncyhaLHVlKX0pKSxORGUoVnoodiksImRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnMiLCExKSx2fXJldHVybiBm''@;'; put 'put ''dW5jdGlvbiBqcHQoZCxnLGgpe2cmJkhEZShkLnByb3RvdHlwZSxnKSxoJiZIRGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0''@;'; put 'put ''dGluZ3MoKVtaRGVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7aWYoIXRoaXMuZW5hYmxlZCl7dmFyIEk9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKS5uZXN0ZWRIZWFkZXJzOyghQXJyYXkuaXNBcnJheShJKXx8IUFycmF5LmlzQXJyYXkoSVswXSkp''@;'; put 'put ''JiZsMShQMihCRGV8fChCRGU9RkRlKFsiWW91ciBOZXN0ZWQgSGVhZGVycyBwbHVnaW4gY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkLiBUaGUgc2V0dGluZ3MgaGFzIHRvIGJlIFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkIGFzIGFuIGFycmF5IG9mIGFycmF5cyBlLnEuIFtbJ0Ex''@;'; put 'put ''JywgeyBsYWJlbDogJ0EyJywgY29sc3BhbjogMiB9XV0iXSxbIllvdXIgTmVzdGVkIEhlYWRlcnMgcGx1Z2luIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZC4gVGhlIHNldHRpbmdzIGhhcyB0byBiZVxceDIwXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgYXMgYW4gYXJyYXkgb2Yg''@;'; put 'put ''YXJyYXlzIGUucS4gW1snQTEnLCB7IGxhYmVsOiAnQTInLCBjb2xzcGFuOiAyIH1dXSJdKSkpKSx0aGlzLmFkZEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25Jbml0KCl9KSx0aGlzLmFkZEhvb2soImFmdGVyTG9hZERhdGEiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckxv''@;'; put 'put ''YWREYXRhLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VEb3duIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlT25DZWxsTW91c2VEb3duLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJPbkNlbGxNb3VzZURvd24i''@;'; put 'put ''LGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlck9uQ2VsbE1vdXNlRG93bi5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZU9uQ2VsbE1vdXNlT3Zlci5hcHBseSh5LGFyZ3VtZW50cyl9''@;'; put 'put ''KSx0aGlzLmFkZEhvb2soImFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzIixmdW5jdGlvbihaKXtyZXR1cm4geS5vbkFmdGVyR2V0Q29sdW1uSGVhZGVyUmVuZGVyZXJzKFopfSksdGhpcy5hZGRIb29rKCJtb2RpZnlDb2xXaWR0aCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vZGlmeUNv''@;'; put 'put ''bFdpZHRoLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0''@;'; put 'put ''ZXJWaWV3cG9ydENvbHVtbkNhbGN1bGF0b3JPdmVycmlkZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxhdG9yT3ZlcnJpZGUuYXBwbHkoeSxhcmd1bWVudHMpfSksd00oZTkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhp''@;'; put 'put ''cyksdGhpcy51cGRhdGVQbHVnaW4oKX19fSx7a2V5OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZih0aGlzLmhvdC52aWV3KXt2YXIgST10aGlzLmhvdC5nZXRTZXR0aW5ncygpLm5lc3RlZEhlYWRlcnM7cGModGhpcyxhZikuc2V0Q29sdW1uc0xpbWl0KHRo''@;'; put 'put ''aXMuaG90LmNvdW50Q29scygpKSxBcnJheS5pc0FycmF5KEkpJiYodGhpcy5kZXRlY3RlZE92ZXJsYXBwZWRIZWFkZXJzPXBjKHRoaXMsYWYpLnNldFN0YXRlKEkpKSx0aGlzLmRldGVjdGVkT3ZlcmxhcHBlZEhlYWRlcnMmJmwxKFAyKFBEZXx8KFBEZT1GRGUoWyJZb3VyIE5lc3RlZCBIZWFk''@;'; put 'put ''ZXJzIHBsdWdpbiBzZXR1cCBjb250YWlucyBvdmVybGFwcGluZyBoZWFkZXJzLiBUaGlzIGtpbmQgb2YgY29uZmlndXJhdGlvbiBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLiJdLFsiWW91ciBOZXN0ZWQgSGVhZGVycyBwbHVnaW4gc2V0dXAg''@;'; put 'put ''Y29udGFpbnMgb3ZlcmxhcHBpbmcgaGVhZGVycy4gVGhpcyBraW5kIG9mIGNvbmZpZ3VyYXRpb25cXHgyMFxuICAgICAgICAgICAgICAgICAgICAgICAgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQuIl0pKSkpLHRoaXMuZW5hYmxlZCYmdGhpcy5ob3QuY29sdW1uSW5kZXhNYXBwZXIuaGlk''@;'; put 'put ''aW5nTWFwc0NvbGxlY3Rpb24uZ2V0TWVyZ2VkVmFsdWVzKCkuZm9yRWFjaChmdW5jdGlvbihaLHVlKXt2YXIgX2U9ITA9PT1aPyJoaWRlLWNvbHVtbiI6InNob3ctY29sdW1uIjtwYyh5LGFmKS50cmlnZ2VyQ29sdW1uTW9kaWZpY2F0aW9uKF9lLHVlKX0pLCFwYyh0aGlzLEp3KSYmdGhpcy5l''@;'; put 'put ''bmFibGVkJiZMbmUodGhpcyxKdyx0aGlzLmhvdC5jb2x1bW5JbmRleE1hcHBlci5jcmVhdGVDaGFuZ2VzT2JzZXJ2ZXIoImhpZGluZyIpLnN1YnNjcmliZShmdW5jdGlvbihaKXtaLmZvckVhY2goZnVuY3Rpb24odWUpe3ZhciBCZT11ZS5pbmRleDtpZigicmVwbGFjZSI9PT11ZS5vcCl7dmFy''@;'; put 'put ''IEtlPSEwPT09dWUubmV3VmFsdWU/ImhpZGUtY29sdW1uIjoic2hvdy1jb2x1bW4iO3BjKHksYWYpLnRyaWdnZXJDb2x1bW5Nb2RpZmljYXRpb24oS2UsQmUpfX0pLHkuZ2hvc3RUYWJsZS5idWlsZFdpZHRoc01hcCgpfSkpLHRoaXMuZ2hvc3RUYWJsZS5zZXRMYXllcnNDb3VudCh0aGlzLmdl''@;'; put 'put ''dExheWVyc0NvdW50KCkpLmJ1aWxkV2lkdGhzTWFwKCksd00oZTkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNsZWFyQ29sc3BhbnMoKSxwYyh0aGlzLGFmKS5jbGVhcigp''@;'; put 'put ''LHBjKHRoaXMsSncpLnVuc3Vic2NyaWJlKCksTG5lKHRoaXMsSncsbnVsbCksdGhpcy5naG9zdFRhYmxlLmNsZWFyKCksd00oZTkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiZ2V0U3RhdGVNYW5hZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBwYyh0aGlzLGFmKX19LHtrZXk6ImdldExheWVyc0NvdW50Iix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBwYyh0aGlzLGFmKS5nZXRMYXllcnNDb3VudCgpfX0se2tleToiZ2V0SGVhZGVyU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHBjKHRoaXMsYWYpLmdldEhl''@;'; put 'put ''YWRlclNldHRpbmdzKHksQyl9fSx7a2V5OiJjbGVhckNvbHNwYW5zIix2YWx1ZTpmdW5jdGlvbigpe2lmKHRoaXMuaG90LnZpZXcpZm9yKHZhciB5PXRoaXMuaG90LnZpZXcuX3d0LEM9eS5nZXRTZXR0aW5nKCJjb2x1bW5IZWFkZXJzIikubGVuZ3RoLEk9eS53dFRhYmxlLlRIRUFELFo9eS53''@;'; put 'put ''dE92ZXJsYXlzLnRvcE92ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRCx1ZT15Lnd0T3ZlcmxheXMudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5P3kud3RPdmVybGF5cy50b3BJbmxpbmVTdGFydENvcm5lck92ZXJsYXkuY2xvbmUud3RUYWJsZS5USEVBRDpudWxsLF9lPTA7X2U8QztfZSsr''@;'; put 'put ''KXt2YXIgQmU9SS5jaGlsZE5vZGVzW19lXTtpZighQmUpYnJlYWs7Zm9yKHZhciBOZT1aLmNoaWxkTm9kZXNbX2VdLEtlPXVlP3VlLmNoaWxkTm9kZXNbX2VdOm51bGwscHQ9MCxPdD1CZS5jaGlsZE5vZGVzLmxlbmd0aDtwdDxPdDtwdCsrKUJlLmNoaWxkTm9kZXNbcHRdLnJlbW92ZUF0dHJp''@;'; put 'put ''YnV0ZSgiY29sc3BhbiIpLHBsKEJlLmNoaWxkTm9kZXNbcHRdLCJoaWRkZW5IZWFkZXIiKSxOZSYmTmUuY2hpbGROb2Rlc1twdF0mJihOZS5jaGlsZE5vZGVzW3B0XS5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxwbChOZS5jaGlsZE5vZGVzW3B0XSwiaGlkZGVuSGVhZGVyIikpLHVlJiZL''@;'; put 'put ''ZSYmS2UuY2hpbGROb2Rlc1twdF0mJihLZS5jaGlsZE5vZGVzW3B0XS5yZW1vdmVBdHRyaWJ1dGUoImNvbHNwYW4iKSxwbChLZS5jaGlsZE5vZGVzW3B0XSwiaGlkZGVuSGVhZGVyIikpfX19LHtrZXk6ImhlYWRlclJlbmRlcmVyRmFjdG9yeSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhp''@;'; put 'put ''cyxJPXRoaXMuaG90LnZpZXcuX3d0LmdldFNldHRpbmcoImZpeGVkQ29sdW1uc1N0YXJ0Iik7cmV0dXJuIGZ1bmN0aW9uKFosdWUpe3ZhciBfZSxCZT1DLmhvdCxOZT1CZS5yb290RG9jdW1lbnQscHQ9QmUudmlldyxPdD1CZS5jb2x1bW5JbmRleE1hcHBlci5nZXRWaXN1YWxGcm9tUmVuZGVy''@;'; put 'put ''YWJsZUluZGV4KFopO251bGw9PT1PdCYmKE90PVopLHVlLnJlbW92ZUF0dHJpYnV0ZSgiY29sc3BhbiIpLHBsKHVlLCJoaWRkZW5IZWFkZXIiKTt2YXIgJHQ9bnVsbCE9PShfZT1wYyhDLGFmKS5nZXRIZWFkZXJTZXR0aW5ncyh5LE90KSkmJnZvaWQgMCE9PV9lP19lOntsYWJlbDoiIn0sZm49''@;'; put 'put ''JHQuY29sc3BhbixMbj0kdC5sYWJlbDtpZigkdC5pc1BsYWNlaG9sZGVyfHwkdC5pc0hpZGRlbilPMCh1ZSwiaGlkZGVuSGVhZGVyIik7ZWxzZSBpZihmbj4xKXt2YXIgU3Isd3IsUXI9cHQuX3d0Lnd0T3ZlcmxheXMseWk9bnVsbD09PShTcj1Rci50b3BJbmxpbmVTdGFydENvcm5lck92ZXJs''@;'; put 'put ''YXkpfHx2b2lkIDA9PT1Tcj92b2lkIDA6U3IuY2xvbmUud3RUYWJsZS5USEVBRC5jb250YWlucyh1ZSksS2k9bnVsbD09PSh3cj1Rci5pbmxpbmVTdGFydE92ZXJsYXkpfHx2b2lkIDA9PT13cj92b2lkIDA6d3IuY2xvbmUud3RUYWJsZS5USEVBRC5jb250YWlucyh1ZSksU289eWl8fEtpP01h''@;'; put 'put ''dGgubWluKGZuLEktWik6Zm47U28+MSYmdWUuc2V0QXR0cmlidXRlKCJjb2xzcGFuIixTbyl9dmFyIFBvPU5lLmNyZWF0ZUVsZW1lbnQoImRpdiIpLFNhPU5lLmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtPMChQbywicmVsYXRpdmUiKSxPMChTYSwiY29sSGVhZGVyIiksa3coU2EsTG4pLFBvLmFw''@;'; put 'put ''cGVuZENoaWxkKFNhKSxEcCh1ZSksdWUuYXBwZW5kQ2hpbGQoUG8pLEMuaG90LnJ1bkhvb2tzKCJhZnRlckdldENvbEhlYWRlciIsT3QsdWUpfX19LHtrZXk6Im9uQmVmb3JlSGlnaGxpZ2h0aW5nQ29sdW1uSGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMsSSl7dmFyIFo9cGModGhpcyxhZiku''@;'; put 'put ''Z2V0SGVhZGVyVHJlZU5vZGVEYXRhKEMseSk7aWYoIVopcmV0dXJuIHk7dmFyIHVlPUkuY2xhc3NOYW1lcyxfZT1JLmNvbHVtbkN1cnNvcixCZT1JLnNlbGVjdGlvblR5cGUsTmU9SS5zZWxlY3Rpb25XaWR0aCxLZT1wYyh0aGlzLGFmKS5nZXRIZWFkZXJTZXR0aW5ncyhDLHkpLHB0PUtlLmlz''@;'; put 'put ''Um9vdDtpZihCZT09PWx6KXtpZighcHQpcmV0dXJuIFouY29sdW1uSW5kZXh9ZWxzZSBCZT09PWl0ZSYmKEtlLmNvbHNwYW4+TmUtX2V8fCFwdCkmJih1ZS5sZW5ndGg9MCk7cmV0dXJuIHl9fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlRG93biIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7''@;'; put 'put ''dGhpcy5fZ2V0SGVhZGVyVHJlZU5vZGVEYXRhQnlDb29yZHMoQykmJihaLmNvbHVtbj0hMCl9fSx7a2V5OiJvbkFmdGVyT25DZWxsTW91c2VEb3duIix2YWx1ZTpmdW5jdGlvbih5LEMpe3ZhciBJPXRoaXMuX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRzKEMpO2lmKEkpe3ZhciBaPXRo''@;'; put 'put ''aXMuaG90LnNlbGVjdGlvbix1ZT1aLmlzU2VsZWN0ZWQoKT9aLmdldFNlbGVjdGVkUmFuZ2UoKS5jdXJyZW50KCk6bnVsbCxfZT1bXSxCZT1JLmNvbHVtbkluZGV4LE5lPUkub3JpZ0NvbHNwYW4sS2U9IVouaW5JblNlbGVjdGlvbihDKTt5LnNoaWZ0S2V5JiZ1ZT9DLmNvbDx1ZS5mcm9tLmNv''@;'; put 'put ''bD9fZS5wdXNoKHVlLmdldFRvcEVuZENvcm5lcigpLmNvbCxCZSxDLnJvdyk6X2UucHVzaChDLmNvbD51ZS5mcm9tLmNvbD91ZS5nZXRUb3BTdGFydENvcm5lcigpLmNvbDpCZSxCZStOZS0xLEMucm93KToob2VlKHkpfHxFdyh5KSYmS2UpJiZfZS5wdXNoKEJlLEJlK05lLTEsQy5yb3cpLFou''@;'; put 'put ''c2VsZWN0Q29sdW1ucy5hcHBseShaLF9lKX19fSx7a2V5OiJvbkJlZm9yZU9uQ2VsbE1vdXNlT3ZlciIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWil7dmFyIHVlO2lmKHRoaXMuaG90LnZpZXcuaXNNb3VzZURvd24oKSl7dmFyIF9lPXRoaXMuX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRz''@;'; put 'put ''KEMpO2lmKF9lKXt2YXIgQmU9X2UuY29sdW1uSW5kZXgsTmU9X2Uub3JpZ0NvbHNwYW4sS2U9dGhpcy5ob3QuZ2V0U2VsZWN0ZWRSYW5nZUxhc3QoKSxwdD1LZS5nZXRUb3BTdGFydENvcm5lcigpLE90PUtlLmdldEJvdHRvbUVuZENvcm5lcigpLCR0PUtlLmZyb207Wi5jb2x1bW49ITAsWi5j''@;'; put 'put ''ZWxsPSEwO3ZhciBmbj1bXTtDLmNvbDwkdC5jb2w/Zm4ucHVzaChPdC5jb2wsQmUpOmZuLnB1c2goQy5jb2w+JHQuY29sP3B0LmNvbDpCZSxCZStOZS0xKSwodWU9dGhpcy5ob3QpLnNlbGVjdENvbHVtbnMuYXBwbHkodWUsZm4pfX19fSx7a2V5OiJvbkFmdGVyR2V0Q29sdW1uSGVhZGVyUmVu''@;'; put 'put ''ZGVyZXJzIix2YWx1ZTpmdW5jdGlvbih5KXtpZih5KXt5Lmxlbmd0aD0wO2Zvcih2YXIgQz0wO0M8cGModGhpcyxhZikuZ2V0TGF5ZXJzQ291bnQoKTtDKyspeS5wdXNoKHRoaXMuaGVhZGVyUmVuZGVyZXJGYWN0b3J5KEMpKX19fSx7a2V5OiJvbkFmdGVyVmlld3BvcnRDb2x1bW5DYWxjdWxh''@;'; put 'put ''dG9yT3ZlcnJpZGUiLHZhbHVlOmZ1bmN0aW9uKHkpe2Zvcih2YXIgQz1wYyh0aGlzLGFmKS5nZXRMYXllcnNDb3VudCgpLEk9eS5zdGFydENvbHVtbixaPSEhQyx1ZT0wO3VlPEM7dWUrKyl7dmFyIF9lPXBjKHRoaXMsYWYpLmZpbmRMZWZ0TW9zdENvbHVtbkluZGV4KHVlLHkuc3RhcnRDb2x1''@;'; put 'put ''bW4pLEJlPXRoaXMuaG90LmNvbHVtbkluZGV4TWFwcGVyLmdldFJlbmRlcmFibGVGcm9tVmlzdWFsSW5kZXgoX2UpO2lmKF9lPj0wJiYoWj0hMSksdjQoQmUpJiZCZTx5LnN0YXJ0Q29sdW1uKXtJPUJlO2JyZWFrfX15LnN0YXJ0Q29sdW1uPVo/cGModGhpcyxhZikuZ2V0SGVhZGVyVHJlZU5v''@;'; put 'put ''ZGVEYXRhKDAsSSkuY29sdW1uSW5kZXg6SX19LHtrZXk6Im9uTW9kaWZ5Q29sV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5naG9zdFRhYmxlLmdldFdpZHRoKEMpO3JldHVybiB5Pkk/eTpJfX0se2tleToib25Jbml0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMudXBkYXRl''@;'; put 'put ''UGx1Z2luKCl9fSx7a2V5OiJvbkFmdGVyTG9hZERhdGEiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Q3x8dGhpcy51cGRhdGVQbHVnaW4oKX19LHtrZXk6ImRlc3Ryb3kiLHZhbHVlOmZ1bmN0aW9uKCl7TG5lKHRoaXMsYWYsbnVsbCksbnVsbCE9PXBjKHRoaXMsSncpJiYocGModGhpcyxKdykudW5z''@;'; put 'put ''dWJzY3JpYmUoKSxMbmUodGhpcyxKdyxudWxsKSksd00oZTkoaC5wcm90b3R5cGUpLCJkZXN0cm95Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToiX2dldEhlYWRlclRyZWVOb2RlRGF0YUJ5Q29vcmRzIix2YWx1ZTpmdW5jdGlvbih5KXtpZighKHkucm93Pj0wfHx5LmNvbDwwKSlyZXR1cm4g''@;'; put 'put ''cGModGhpcyxhZikuZ2V0SGVhZGVyVHJlZU5vZGVEYXRhKHkucm93LHkuY29sKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFpEZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDI4MH19XSksaH0oWXMpO2Z1bmN0aW9u''@;'; put 'put ''IHpEZShkKXtyZXR1cm4gZnVuY3Rpb24gdDZ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIEdnZShkKX0oZCl8fGZ1bmN0aW9uIGU2dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0p''@;'; put 'put ''cmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBxcHQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIEdnZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0xKTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3Ry''@;'; put 'put ''dWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChoKSlyZXR1cm4gR2dlKGQsZyl9fShkKXx8''@;'; put 'put ''ZnVuY3Rpb24gJHB0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRo''@;'; put 'put ''b2QuIil9KCl9ZnVuY3Rpb24gR2dlKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gV2dlKGQpe3JldHVybihXZ2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5''@;'; put 'put ''bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5''@;'; put 'put ''bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBHRGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eShkLHYua2V5LHYpfX12YXIgaTZ0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBuNnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCks''@;'; put 'put ''dGhpcy5ob3Q9aCx0aGlzLmRhdGE9bnVsbCx0aGlzLnBsdWdpbj1nLHRoaXMucGFyZW50UmVmZXJlbmNlPW5ldyBXZWFrTWFwLHRoaXMuY2FjaGU9e2xldmVsczpbXSxsZXZlbENvdW50OjAscm93czpbXSxub2RlSW5mbzpuZXcgV2Vha01hcH19cmV0dXJuIGZ1bmN0aW9uIHI2dChkLGcsaCl7''@;'; put 'put ''ZyYmR0RlKGQucHJvdG90eXBlLGcpLGgmJkdEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJzZXREYXRhIix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLmRhdGE9aH19LHtrZXk6ImdldERhdGEiLHZhbHVlOmZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIHRoaXMuZGF0YX19LHtrZXk6ImdldFJhd1NvdXJjZURhdGEiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg7cmV0dXJuIHRoaXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZpZXJzKCksaD10aGlzLmhvdC5nZXRTb3VyY2VEYXRhKCksdGhpcy5wbHVnaW4uZW5hYmxlQ29yZUFQ''@;'; put 'put ''SU1vZGlmaWVycygpLGh9fSx7a2V5OiJ1cGRhdGVXaXRoRGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCl7dGhpcy5zZXREYXRhKGgpLHRoaXMucmV3cml0ZUNhY2hlKCl9fSx7a2V5OiJyZXdyaXRlQ2FjaGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGg9dGhpczt0aGlzLmNhY2hlPXtsZXZlbHM6W10s''@;'; put 'put ''bGV2ZWxDb3VudDowLHJvd3M6W10sbm9kZUluZm86bmV3IFdlYWtNYXB9LGlhKDAsdGhpcy5kYXRhLmxlbmd0aC0xLGZ1bmN0aW9uKHYpe2guY2FjaGVOb2RlKGguZGF0YVt2XSwwLG51bGwpfSl9fSx7a2V5OiJjYWNoZU5vZGUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzO3Ro''@;'; put 'put ''aXMuY2FjaGUubGV2ZWxzW3ZdfHwodGhpcy5jYWNoZS5sZXZlbHNbdl09W10sdGhpcy5jYWNoZS5sZXZlbENvdW50Kz0xKSx0aGlzLmNhY2hlLmxldmVsc1t2XS5wdXNoKGgpLHRoaXMuY2FjaGUucm93cy5wdXNoKGgpLHRoaXMuY2FjaGUubm9kZUluZm8uc2V0KGgse3BhcmVudDp5LHJvdzp0''@;'; put 'put ''aGlzLmNhY2hlLnJvd3MubGVuZ3RoLTEsbGV2ZWw6dn0pLHRoaXMuaGFzQ2hpbGRyZW4oaCkmJlVyKGguX19jaGlsZHJlbixmdW5jdGlvbihJKXtDLmNhY2hlTm9kZShJLHYrMSxoKX0pfX0se2tleToiZ2V0RGF0YU9iamVjdCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIG51bGw9PWg/bnVs''@;'; put 'put ''bDp0aGlzLmNhY2hlLnJvd3NbaF19fSx7a2V5OiJyZWFkVHJlZU5vZGVzIix2YWx1ZTpmdW5jdGlvbihoLHYseSxDKXt2YXIgST10aGlzLFo9ITEsdWU9djtpZihpc05hTih1ZSkmJnVlLmVuZClyZXR1cm4gdWU7dmFyIF9lPWg7cmV0dXJuIF9lfHwoX2U9e19fY2hpbGRyZW46dGhpcy5kYXRh''@;'; put 'put ''fSxaPSEwLHVlLT0xKSxudWxsIT15JiZ1ZT09PXk/e3Jlc3VsdDpfZSxlbmQ6ITB9Om51bGwhPUMmJl9lPT09Qz97cmVzdWx0OnVlLGVuZDohMH06KHVlKz0xLF9lLl9fY2hpbGRyZW4mJlVyKF9lLl9fY2hpbGRyZW4sZnVuY3Rpb24oQmUpe2lmKEkucGFyZW50UmVmZXJlbmNlLnNldChCZSxa''@;'; put 'put ''P251bGw6X2UpLHVlPUkucmVhZFRyZWVOb2RlcyhCZSx1ZSx5LEMpLGlzTmFOKHVlKSYmdWUuZW5kKXJldHVybiExfSksdWUpfX0se2tleToibW9ja1BhcmVudCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgaD10aGlzLm1vY2tOb2RlKCk7cmV0dXJuIGguX19jaGlsZHJlbj10aGlzLmRhdGEsaH19''@;'; put 'put ''LHtrZXk6Im1vY2tOb2RlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXt9O3JldHVybiBHbCh0aGlzLmRhdGFbMF0sZnVuY3Rpb24odix5KXtoW3ldPW51bGx9KSxofX0se2tleToiZ2V0Um93SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBudWxsPT1oP251bGw6dGhpcy5jYWNoZS5u''@;'; put 'put ''b2RlSW5mby5nZXQoaCkucm93fX0se2tleToiZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2O3Y9aXNOYU4oaCk/aDp0aGlzLmdldERhdGFPYmplY3QoaCk7dmFyIHk9dGhpcy5nZXRSb3dQYXJlbnQoaCk7cmV0dXJuIG51bGw9PXk/dGhpcy5kYXRhLmlu''@;'; put 'put ''ZGV4T2Yodik6eS5fX2NoaWxkcmVuLmluZGV4T2Yodil9fSx7a2V5OiJjb3VudEFsbFJvd3MiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY291bnRDaGlsZHJlbih7X19jaGlsZHJlbjp0aGlzLmRhdGF9KX19LHtrZXk6ImNvdW50Q2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKGgpe3Zh''@;'; put 'put ''ciB2PXRoaXMseT0wLEM9aDtyZXR1cm4gaXNOYU4oQyl8fChDPXRoaXMuZ2V0RGF0YU9iamVjdChDKSksQyYmQy5fX2NoaWxkcmVuPyhVcihDLl9fY2hpbGRyZW4sZnVuY3Rpb24oSSl7eSs9MSxJLl9fY2hpbGRyZW4mJih5Kz12LmNvdW50Q2hpbGRyZW4oSSkpfSkseSk6MH19LHtrZXk6Imdl''@;'; put 'put ''dFJvd1BhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY7cmV0dXJuIHY9aXNOYU4oaCk/aDp0aGlzLmdldERhdGFPYmplY3QoaCksdGhpcy5nZXRSb3dPYmplY3RQYXJlbnQodil9fSx7a2V5OiJnZXRSb3dPYmplY3RQYXJlbnQiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBoJiYib2Jq''@;'; put 'put ''ZWN0Ij09PVdnZShoKT90aGlzLmNhY2hlLm5vZGVJbmZvLmdldChoKS5wYXJlbnQ6bnVsbH19LHtrZXk6ImdldFJvd0xldmVsIix2YWx1ZTpmdW5jdGlvbihoKXt2YXIgdjtyZXR1cm4odj1pc05hTihoKT9oOnRoaXMuZ2V0RGF0YU9iamVjdChoKSk/dGhpcy5nZXRSb3dPYmplY3RMZXZlbCh2''@;'; put 'put ''KTpudWxsfX0se2tleToiZ2V0Um93T2JqZWN0TGV2ZWwiLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiBudWxsPT1oP251bGw6dGhpcy5jYWNoZS5ub2RlSW5mby5nZXQoaCkubGV2ZWx9fSx7a2V5OiJoYXNDaGlsZHJlbiIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aDtyZXR1cm4gaXNOYU4o''@;'; put 'put ''dil8fCh2PXRoaXMuZ2V0RGF0YU9iamVjdCh2KSksISghdi5fX2NoaWxkcmVufHwhdi5fX2NoaWxkcmVuLmxlbmd0aCl9fSx7a2V5OiJpc0NoaWxkIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gbnVsbCE9PXRoaXMuZ2V0Um93UGFyZW50KGgpfX0se2tleToiZ2V0Q2hpbGQiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKGgsdil7dmFyIHk7cmV0dXJuKG51bGw9PT0oeT1oLl9fY2hpbGRyZW4pfHx2b2lkIDA9PT15P3ZvaWQgMDp5W3ZdKXx8bnVsbH19LHtrZXk6ImlzUm93SGlnaGVzdExldmVsIix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4hdGhpcy5pc0NoaWxkKGgpfX0se2tleToiaXNQYXJlbnQi''@;'; put 'put ''LHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2LHk9aDtyZXR1cm4gaXNOYU4oeSl8fCh5PXRoaXMuZ2V0RGF0YU9iamVjdCh5KSkseSYmISF5Ll9fY2hpbGRyZW4mJjAhPT0obnVsbD09PSh2PXkuX19jaGlsZHJlbil8fHZvaWQgMD09PXY/dm9pZCAwOnYubGVuZ3RoKX19LHtrZXk6ImFkZENoaWxk''@;'; put 'put ''Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXY7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUFkZENoaWxkIixoLHkpO3ZhciBDPW51bGw7aCYmKEM9dGhpcy5nZXRSb3dJbmRleChoKSksdGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsQyt0aGlzLmNvdW50Q2hpbGRyZW4o''@;'; put 'put ''aCkrMSwxKTt2YXIgST1oO2h8fChJPXRoaXMubW9ja1BhcmVudCgpKSxJLl9fY2hpbGRyZW58fChJLl9fY2hpbGRyZW49W10pLHl8fCh5PXRoaXMubW9ja05vZGUoKSksSS5fX2NoaWxkcmVuLnB1c2goeSksdGhpcy5yZXdyaXRlQ2FjaGUoKTt2YXIgWj10aGlzLmdldFJvd0luZGV4KHkpO3Ro''@;'; put 'put ''aXMuaG90LnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoWiwxKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDcmVhdGVSb3ciLFosMSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGgseSl9fSx7a2V5OiJhZGRDaGlsZEF0SW5kZXgiLHZhbHVlOmZ1bmN0aW9uKGgsdix5''@;'; put 'put ''KXt2YXIgSSxDPXk7aWYoQ3x8KEM9dGhpcy5tb2NrTm9kZSgpKSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQWRkQ2hpbGQiLGgsQyx2KSxoKXt2YXIgdWU9dGhpcy5nZXRSb3dJbmRleChoKSt2KzE7dGhpcy5ob3QucnVuSG9va3MoImJlZm9yZUNyZWF0ZVJvdyIsdWUsMSksaC5fX2NoaWxk''@;'; put 'put ''cmVuLnNwbGljZSh2LG51bGwsQyksdGhpcy5yZXdyaXRlQ2FjaGUoKSx0aGlzLnBsdWdpbi5kaXNhYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnNldFNvdXJjZURhdGFBdENlbGwodGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChoKSwiX19jaGlsZHJlbiIsaC5fX2NoaWxkcmVu''@;'; put 'put ''LCJOZXN0ZWRSb3dzLmFkZENoaWxkQXRJbmRleCIpLHRoaXMuaG90LnJvd0luZGV4TWFwcGVyLmluc2VydEluZGV4ZXModWUsMSksdGhpcy5wbHVnaW4uZW5hYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnJ1bkhvb2tzKCJhZnRlckNyZWF0ZVJvdyIsdWUsMSksST11ZX1lbHNlIHRo''@;'; put 'put ''aXMucGx1Z2luLmRpc2FibGVDb3JlQVBJTW9kaWZpZXJzKCksdGhpcy5ob3QuYWx0ZXIoImluc2VydF9yb3ciLHYsMSwiTmVzdGVkUm93cy5hZGRDaGlsZEF0SW5kZXgiKSx0aGlzLnBsdWdpbi5lbmFibGVDb3JlQVBJTW9kaWZpZXJzKCksST10aGlzLmdldFJvd0luZGV4KHRoaXMuZGF0YVt2''@;'; put 'put ''XSk7Qz10aGlzLmdldERhdGFPYmplY3QoSSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyQWRkQ2hpbGQiLGgsQyx2KX19LHtrZXk6ImFkZFNpYmxpbmciLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sx''@;'; put 'put ''XToiYmVsb3ciLHk9dGhpcy50cmFuc2xhdGVUcmltbWVkUm93KGgpLEM9dGhpcy5nZXRSb3dQYXJlbnQoeSksST10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KHkpO3N3aXRjaCh2KXtjYXNlImJlbG93Ijp0aGlzLmFkZENoaWxkQXRJbmRleChDLEkrMSxudWxsKTticmVhaztjYXNlImFi''@;'; put 'put ''b3ZlIjp0aGlzLmFkZENoaWxkQXRJbmRleChDLEksbnVsbCl9fX0se2tleToiZGV0YWNoRnJvbVBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9dGhpcyx5PSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sQz1udWxsLEk9W107''@;'; put 'put ''QXJyYXkuaXNBcnJheShoKT8oaWEoaFswXSxoWzJdLGZ1bmN0aW9uKExuKXt2YXIgaXI9di50cmFuc2xhdGVUcmltbWVkUm93KExuKTtJLnB1c2godi5nZXREYXRhT2JqZWN0KGlyKSl9KSxpYSgwLEkubGVuZ3RoLTIsZnVuY3Rpb24oTG4pe3YuZGV0YWNoRnJvbVBhcmVudChJW0xuXSwhMSl9''@;'; put 'put ''KSxDPUlbSS5sZW5ndGgtMV0pOkM9aDt2YXIgWj10aGlzLmdldFJvd0luZGV4KEMpLHVlPXRoaXMuY291bnRDaGlsZHJlbihDKSxfZT10aGlzLmdldFJvd0luZGV4V2l0aGluUGFyZW50KEMpLEJlPXRoaXMuZ2V0Um93UGFyZW50KEMpLE5lPXRoaXMuZ2V0Um93UGFyZW50KEJlKSxLZT10aGlz''@;'; put 'put ''LmdldFJvd0luZGV4KE5lKSxwdD1udWxsO2lmKHRoaXMuaG90LnJ1bkhvb2tzKCJiZWZvcmVEZXRhY2hDaGlsZCIsQmUsQyksbnVsbCE9X2Upe3ZhciBPdD1BcnJheS5mcm9tKG5ldyBBcnJheShaK3VlKzEpLmtleXMoKSkuc3BsaWNlKC0xKih1ZSsxKSk7aWYodGhpcy5ob3QucnVuSG9va3Mo''@;'; put 'put ''ImJlZm9yZVJlbW92ZVJvdyIsWix1ZSsxLE90LHRoaXMucGx1Z2luLnBsdWdpbk5hbWUpLEJlLl9fY2hpbGRyZW4uc3BsaWNlKF9lLDEpLHRoaXMucmV3cml0ZUNhY2hlKCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUmVtb3ZlUm93IixaLHVlKzEsT3QsdGhpcy5wbHVnaW4ucGx1Z2luTmFt''@;'; put 'put ''ZSksTmUpe3B0PUtlK3RoaXMuY291bnRDaGlsZHJlbihOZSk7dmFyICR0PXRoaXMuZ2V0Q2hpbGQoTmUsdGhpcy5jb3VudENoaWxkcmVuKE5lKS0xKSxmbj10aGlzLmdldFJvd0luZGV4KCR0KTt0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93IixmbisxLHVlKzEsdGhpcy5wbHVn''@;'; put 'put ''aW4ucGx1Z2luTmFtZSksTmUuX19jaGlsZHJlbi5wdXNoKEMpfWVsc2UgcHQ9dGhpcy5ob3QuY291bnRSb3dzKCkrMSx0aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlQ3JlYXRlUm93IixwdC0yLHVlKzEsdGhpcy5wbHVnaW4ucGx1Z2luTmFtZSksdGhpcy5kYXRhLnB1c2goQyl9dGhpcy5yZXdy''@;'; put 'put ''aXRlQ2FjaGUoKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJDcmVhdGVSb3ciLHB0LTIsdWUrMSx0aGlzLnBsdWdpbi5wbHVnaW5OYW1lKSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJEZXRhY2hDaGlsZCIsQmUsQyx0aGlzLmdldFJvd0luZGV4KEMpKSx5JiZ0aGlzLmhvdC5yZW5kZXIoKX19''@;'; put 'put ''LHtrZXk6ImZpbHRlckRhdGEiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt2YXIgQz10aGlzLEk9W107VXIoeSxmdW5jdGlvbihaKXtJLnB1c2goQy5nZXREYXRhT2JqZWN0KFopKX0pLFVyKEksZnVuY3Rpb24oWil7dmFyIHVlPUMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoWiksX2U9Qy5nZXRS''@;'; put 'put ''b3dQYXJlbnQoWik7bnVsbD09PV9lP0MuZGF0YS5zcGxpY2UodWUsMSk6X2UuX19jaGlsZHJlbi5zcGxpY2UodWUsMSl9KSx0aGlzLnJld3JpdGVDYWNoZSgpfX0se2tleToic3BsaWNlRGF0YSIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMuZ2V0RGF0YU9iamVjdChoLTEpLEk9''@;'; put 'put ''bnVsbCxaPWg7aWYoQyYmQy5fX2NoaWxkcmVuJiYwPT09Qy5fX2NoaWxkcmVuLmxlbmd0aD8oST1DLFo9MCk6aDx0aGlzLmNvdW50QWxsUm93cygpJiYoST10aGlzLmdldFJvd1BhcmVudChoKSxaPXRoaXMuZ2V0Um93SW5kZXhXaXRoaW5QYXJlbnQoaCkpLEkpaWYoeSl7dmFyIHVlOyh1ZT1J''@;'; put 'put ''Ll9fY2hpbGRyZW4pLnNwbGljZS5hcHBseSh1ZSxbWix2XS5jb25jYXQoekRlKHkpKSl9ZWxzZSBJLl9fY2hpbGRyZW4uc3BsaWNlKFosdik7ZWxzZSBpZih5KXt2YXIgX2U7KF9lPXRoaXMuZGF0YSkuc3BsaWNlLmFwcGx5KF9lLFtaLHZdLmNvbmNhdCh6RGUoeSkpKX1lbHNlIHRoaXMuZGF0''@;'; put 'put ''YS5zcGxpY2UoWix2KTt0aGlzLnJld3JpdGVDYWNoZSgpfX0se2tleToic3luY1Jvd1dpdGhSYXdTb3VyY2UiLHZhbHVlOmZ1bmN0aW9uKGgpe3ZhciB2PWgseT1udWxsO2Rve251bGwhPT0oeT10aGlzLmdldFJvd1BhcmVudCh5KSkmJih2PXkpfXdoaWxlKG51bGwhPT15KTt0aGlzLnBsdWdp''@;'; put 'put ''bi5kaXNhYmxlQ29yZUFQSU1vZGlmaWVycygpLHRoaXMuaG90LnNldFNvdXJjZURhdGFBdENlbGwodGhpcy5nZXRSb3dJbmRleCh2KSwiX19jaGlsZHJlbiIsdi5fX2NoaWxkcmVuLCJOZXN0ZWRSb3dzLnN5bmNSb3dXaXRoUmF3U291cmNlIiksdGhpcy5wbHVnaW4uZW5hYmxlQ29yZUFQSU1v''@;'; put 'put ''ZGlmaWVycygpfX0se2tleToibW92ZVJvdyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHksQyl7dmFyIEk9dj09PXRoaXMuaG90LmNvdW50Um93cygpLFo9dGhpcy5nZXRSb3dQYXJlbnQoaCksdWU9dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudChoKSxfZT1aLl9fY2hpbGRyZW4uc2xpY2UodWUs''@;'; put 'put ''dWUrMSksQmU9aD52LE5lPXRoaXMuZ2V0Um93UGFyZW50KEk/di0xOnYpO251bGw9PU5lJiYoTmU9dGhpcy5nZXRSb3dQYXJlbnQodi0xKSksbnVsbD09TmUmJihOZT10aGlzLmdldERhdGFPYmplY3Qodi0xKSksTmU/TmUuX19jaGlsZHJlbnx8KE5lLl9fY2hpbGRyZW49W10pOihOZT10aGlz''@;'; put 'put ''LmdldERhdGFPYmplY3QodikpLl9fY2hpbGRyZW49W107dmFyIEtlPUl8fHl8fEM/TmUuX19jaGlsZHJlbi5sZW5ndGg6dGhpcy5nZXRSb3dJbmRleFdpdGhpblBhcmVudCh2KSxwdD1aPT09TmU7TmUuX19jaGlsZHJlbi5zcGxpY2UoS2UsMCxfZVswXSksWi5fX2NoaWxkcmVuLnNwbGljZSh1''@;'; put 'put ''ZSsoQmUmJnB0PzE6MCksMSksdGhpcy5zeW5jUm93V2l0aFJhd1NvdXJjZShaKSxwdHx8dGhpcy5zeW5jUm93V2l0aFJhd1NvdXJjZShOZSl9fSx7a2V5OiJ0cmFuc2xhdGVUcmltbWVkUm93Iix2YWx1ZTpmdW5jdGlvbihoKXtyZXR1cm4gdGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJP3RoaXMu''@;'; put 'put ''cGx1Z2luLmNvbGxhcHNpbmdVSS50cmFuc2xhdGVUcmltbWVkUm93KGgpOmh9fSx7a2V5OiJ1bnRyYW5zbGF0ZVRyaW1tZWRSb3ciLHZhbHVlOmZ1bmN0aW9uKGgpe3JldHVybiB0aGlzLnBsdWdpbi5jb2xsYXBzaW5nVUk/dGhpcy5wbHVnaW4uY29sbGFwc2luZ1VJLnVudHJhbnNsYXRlVHJp''@;'; put 'put ''bW1lZFJvdyhoKTpofX1dKSxkfSgpO2NvbnN0IG82dD1pNnQ7ZnVuY3Rpb24gV0RlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxl''@;'; put 'put ''PSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gYTZ0KGQsZyxoKXtyZXR1cm4gZyYmV0RlKGQucHJvdG90eXBlLGcpLGgmJldEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGR9dmFyIHM2dD1hNnQo''@;'; put 'put ''ZnVuY3Rpb24gZChnLGgpeyhmdW5jdGlvbiBsNnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsZCksdGhpcy5ob3Q9aCx0aGlzLnBsdWdpbj1nfSk7Y29uc3QgWWdlPXM2dDtm''@;'; put 'put ''dW5jdGlvbiBVZ2UoZCl7cmV0dXJuKFVnZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZn''@;'; put 'put ''LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3ltYm9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIFlEZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJh''@;'; put 'put ''YmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9uIFFnZShkLGcpe3JldHVybihRZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXty''@;'; put 'put ''ZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBkNnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1VZ2UoZyl8fCJmdW5jdGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBv''@;'; put 'put ''bmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIHA2dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9''@;'; put 'put ''KGQpfWZ1bmN0aW9uIE9uZShkKXtyZXR1cm4oT25lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIG02dD1mdW5jdGlvbihkKXsh''@;'; put 'put ''ZnVuY3Rpb24gZjZ0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlw''@;'; put 'put ''ZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJlFnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGg2dChkKXt2YXIgZz1mdW5jdGlvbiBnNnQo''@;'; put 'put ''KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwo''@;'; put 'put ''UmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1PbmUoZCk7aWYoZyl7dmFyIEM9T25lKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVu''@;'; put 'put ''dHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBkNnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gdTZ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBj''@;'; put 'put ''bGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMsdix5KSkuZGF0YU1hbmFnZXI9Qy5wbHVnaW4uZGF0YU1hbmFnZXIsQy5jb2xsYXBzaW5nVUk9Qy5wbHVnaW4uY29sbGFwc2luZ1VJLEMucm93SGVhZGVyV2lkdGhDYWNoZT1udWxsLEN9cmV0dXJuIGZ1bmN0aW9u''@;'; put 'put ''IGM2dChkLGcsaCl7ZyYmWURlKGQucHJvdG90eXBlLGcpLGgmJllEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJhcHBlbmRMZXZlbEluZGljYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9dGhpcy5ob3Qu''@;'; put 'put ''dG9QaHlzaWNhbFJvdyh5KSxaPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93TGV2ZWwoSSksdWU9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KEkpLF9lPUMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIkRJViIpWzBdLEJlPV9lLnF1ZXJ5U2VsZWN0b3IoInNwYW4ucm93SGVhZGVyIik7aWYo''@;'; put 'put ''VXIoX2UucXVlcnlTZWxlY3RvckFsbCgnW2NsYXNzXj0iaHRfbmVzdGluZyJdJyksZnVuY3Rpb24oJHQpeyR0JiZfZS5yZW1vdmVDaGlsZCgkdCl9KSxPMChDLGguQ1NTX0NMQVNTRVMuaW5kaWNhdG9yQ29udGFpbmVyKSxaKXt2YXIgS2U9dGhpcy5ob3Qucm9vdERvY3VtZW50LHB0PUJlLmNs''@;'; put 'put ''b25lTm9kZSghMCk7X2UuaW5uZXJIVE1MPSIiLGlhKDAsWi0xLGZ1bmN0aW9uKCl7dmFyICR0PUtlLmNyZWF0ZUVsZW1lbnQoIlNQQU4iKTtPMCgkdCxoLkNTU19DTEFTU0VTLmVtcHR5SW5kaWNhdG9yKSxfZS5hcHBlbmRDaGlsZCgkdCl9KSxfZS5hcHBlbmRDaGlsZChwdCl9aWYodGhpcy5k''@;'; put 'put ''YXRhTWFuYWdlci5oYXNDaGlsZHJlbih1ZSkpe3ZhciBPdD10aGlzLmhvdC5yb290RG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiRElWIik7TzAoQyxoLkNTU19DTEFTU0VTLnBhcmVudCksdGhpcy5jb2xsYXBzaW5nVUkuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoSSk/TzAoT3QsIiIuY29uY2F0KGgu''@;'; put 'put ''Q1NTX0NMQVNTRVMuYnV0dG9uLCIgIikuY29uY2F0KGguQ1NTX0NMQVNTRVMuZXhwYW5kQnV0dG9uKSk6TzAoT3QsIiIuY29uY2F0KGguQ1NTX0NMQVNTRVMuYnV0dG9uLCIgIikuY29uY2F0KGguQ1NTX0NMQVNTRVMuY29sbGFwc2VCdXR0b24pKSxfZS5hcHBlbmRDaGlsZChPdCl9fX0se2tl''@;'; put 'put ''eToidXBkYXRlUm93SGVhZGVyV2lkdGgiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXk7Q3x8KEM9dGhpcy5kYXRhTWFuYWdlci5jYWNoZS5sZXZlbENvdW50KSx0aGlzLnJvd0hlYWRlcldpZHRoQ2FjaGU9TWF0aC5tYXgoNTAsMTErMTAqQysyNSksdGhpcy5ob3QucmVuZGVyKCl9fV0sW3tr''@;'; put 'put ''ZXk6IkNTU19DTEFTU0VTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm57aW5kaWNhdG9yQ29udGFpbmVyOiJodF9uZXN0aW5nTGV2ZWxzIixwYXJlbnQ6Imh0X25lc3RpbmdQYXJlbnQiLGluZGljYXRvcjoiaHRfbmVzdGluZ0xldmVsIixlbXB0eUluZGljYXRvcjoiaHRfbmVzdGluZ0xldmVsX2Vt''@;'; put 'put ''cHR5IixidXR0b246Imh0X25lc3RpbmdCdXR0b24iLGV4cGFuZEJ1dHRvbjoiaHRfbmVzdGluZ0V4cGFuZCIsY29sbGFwc2VCdXR0b246Imh0X25lc3RpbmdDb2xsYXBzZSJ9fX1dKSxofShZZ2UpO2NvbnN0IFVEZT1tNnQ7ZnVuY3Rpb24gSmdlKGQpe3JldHVybihKZ2U9ImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90''@;'; put 'put ''b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBRRGUoZCl7cmV0dXJuIGZ1bmN0aW9uIHc2dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBYZ2UoZCl9KGQpfHxmdW5jdGlvbiB5NnQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3lt''@;'; put 'put ''Ym9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gQTZ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBYZ2UoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCku''@;'; put 'put ''c2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9B''@;'; put 'put ''cnJheSQvLnRlc3QoaCkpcmV0dXJuIFhnZShkLGcpfX0oZCl8fGZ1bmN0aW9uIHY2dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3Rz''@;'; put 'put ''IG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIFhnZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIEpE''@;'; put 'put ''ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fWZ1bmN0aW9u''@;'; put 'put ''IEtnZShkLGcpe3JldHVybihLZ2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBTNnQoZCxnKXtpZihnJiYoIm9iamVjdCI9PT1KZ2UoZyl8fCJmdW5j''@;'; put 'put ''dGlvbiI9PXR5cGVvZiBnKSlyZXR1cm4gZztpZih2b2lkIDAhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIkRlcml2ZWQgY29uc3RydWN0b3JzIG1heSBvbmx5IHJldHVybiBvYmplY3Qgb3IgdW5kZWZpbmVkIik7cmV0dXJuIGZ1bmN0aW9uIE02dChkKXtpZih2b2lkIDA9PT1kKXRocm93IG5l''@;'; put 'put ''dyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9KGQpfWZ1bmN0aW9uIFJuZShkKXtyZXR1cm4oUm5lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmlu''@;'; put 'put ''ZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIHg2dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gQzZ0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVy''@;'; put 'put ''IGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShk''@;'; put 'put ''LCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJktnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIGs2dChkKXt2YXIgZz1mdW5jdGlvbiBFNnQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSly''@;'; put 'put ''ZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIHksdj1SbmUoZCk7aWYoZyl7dmFyIEM9Um5lKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBTNnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2''@;'; put 'put ''YXIgQztyZXR1cm4gZnVuY3Rpb24gYjZ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMsdix5KSkuZGF0YU1hbmFnZXI9Qy5wbHVnaW4uZGF0YU1h''@;'; put 'put ''bmFnZXIsQy5jb2xsYXBzZWRSb3dzPVtdLEMuY29sbGFwc2VkUm93c1N0YXNoPXtzdGFzaDpmdW5jdGlvbigpe3ZhciBaPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdJiZhcmd1bWVudHNbMF07Qy5sYXN0Q29sbGFwc2VkUm93cz1DLmNvbGxhcHNlZFJvd3Muc2xp''@;'; put 'put ''Y2UoMCksQy5leHBhbmRNdWx0aXBsZUNoaWxkcmVuKEMubGFzdENvbGxhcHNlZFJvd3MsWil9LHNoaWZ0U3Rhc2g6ZnVuY3Rpb24oWix1ZSl7dmFyIF9lPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToxO251bGw9PXVlJiYodWU9MS8wKSxV''@;'; put 'put ''cihDLmxhc3RDb2xsYXBzZWRSb3dzLGZ1bmN0aW9uKEJlLE5lKXtCZT49WiYmQmU8dWUmJihDLmxhc3RDb2xsYXBzZWRSb3dzW05lXT1CZStfZSl9KX0sYXBwbHlTdGFzaDpmdW5jdGlvbigpe3ZhciBaPSEoYXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0pfHxhcmd1''@;'; put 'put ''bWVudHNbMF07Qy5jb2xsYXBzZU11bHRpcGxlQ2hpbGRyZW4oQy5sYXN0Q29sbGFwc2VkUm93cyxaKSxDLmxhc3RDb2xsYXBzZWRSb3dzPXZvaWQgMH0sdHJpbVN0YXNoOmZ1bmN0aW9uKFosdWUpe2lhKFosWit1ZS0xLGZ1bmN0aW9uKF9lKXt2YXIgQmU9Qy5sYXN0Q29sbGFwc2VkUm93cy5p''@;'; put 'put ''bmRleE9mKF9lKTtCZT4tMSYmQy5sYXN0Q29sbGFwc2VkUm93cy5zcGxpY2UoQmUsMSl9KX19LEN9cmV0dXJuIGZ1bmN0aW9uIF82dChkLGcsaCl7ZyYmSkRlKGQucHJvdG90eXBlLGcpLGgmJkpEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZToh''@;'; put 'put ''MX0pfShoLFt7a2V5OiJjb2xsYXBzZUNoaWxkcmVuIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxaPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNb''@;'; put 'put ''Ml0pfHxhcmd1bWVudHNbMl0sdWU9W10sX2U9bnVsbCxCZT1udWxsLE5lPW51bGw7cmV0dXJuIGlzTmFOKHkpP0JlPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoX2U9eSk6KF9lPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh5KSxCZT15KSx0aGlzLmRhdGFNYW5hZ2VyLmhh''@;'; put 'put ''c0NoaWxkcmVuKF9lKSYmVXIoX2UuX19jaGlsZHJlbixmdW5jdGlvbihLZSl7dWUucHVzaChDLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEtlKSl9KSxOZT10aGlzLmNvbGxhcHNlUm93cyh1ZSwhMCwhMSksWiYmdGhpcy50cmltUm93cyhOZSksSSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKSwt''@;'; put 'put ''MT09PXRoaXMuY29sbGFwc2VkUm93cy5pbmRleE9mKEJlKSYmdGhpcy5jb2xsYXBzZWRSb3dzLnB1c2goQmUpLE5lfX0se2tleToiY29sbGFwc2VNdWx0aXBsZUNoaWxkcmVuIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFy''@;'; put 'put ''Z3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXSxaPSEoYXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sdWU9W107VXIoeSxmdW5jdGlvbihfZSl7dWUucHVzaC5hcHBseSh1ZSxRRGUoQy5jb2xsYXBzZUNoaWxkcmVuKF9lLCExLCExKSkpfSks''@;'; put 'put ''WiYmdGhpcy50cmltUm93cyh1ZSksSSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKX19LHtrZXk6ImNvbGxhcHNlUm93Iix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFdO3RoaXMuY29sbGFwc2VS''@;'; put 'put ''b3dzKFt5XSxDKX19LHtrZXk6ImNvbGxhcHNlUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sWj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1sy''@;'; put 'put ''XSYmYXJndW1lbnRzWzJdLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXt1ZS5wdXNoKF9lKSxJJiZDLmNvbGxhcHNlQ2hpbGRSb3dzKF9lLHVlKX0pLFomJnRoaXMudHJpbVJvd3ModWUpLHVlfX0se2tleToiY29sbGFwc2VDaGlsZFJvd3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBD''@;'; put 'put ''PXRoaXMsST1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06W10sdWU9YXJndW1lbnRzLmxlbmd0aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10mJmFyZ3VtZW50c1szXTtpZih0aGlzLmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKHkpKXt2YXIg''@;'; put 'put ''X2U9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KHkpO1VyKF9lLl9fY2hpbGRyZW4sZnVuY3Rpb24oQmUpe3ZhciBOZT1DLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEJlKTtJLnB1c2goTmUpLEMuY29sbGFwc2VDaGlsZFJvd3MoTmUsSSl9KX11ZSYmdGhpcy50cmltUm93cyhJKX19''@;'; put 'put ''LHtrZXk6ImV4cGFuZFJvdyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9IShhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXSl8fGFyZ3VtZW50c1sxXTt0aGlzLmV4cGFuZFJvd3MoW3ldLEMpfX0se2tleToiZXhwYW5kUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFy''@;'; put 'put ''IEM9dGhpcyxJPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sWj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSYmYXJndW1lbnRzWzJdLHVlPVtdO3JldHVybiBVcih5LGZ1bmN0aW9uKF9lKXt1ZS5wdXNo''@;'; put 'put ''KF9lKSxJJiZDLmV4cGFuZENoaWxkUm93cyhfZSx1ZSl9KSxaJiZ0aGlzLnVudHJpbVJvd3ModWUpLHVlfX0se2tleToiZXhwYW5kQ2hpbGRSb3dzIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1l''@;'; put 'put ''bnRzWzFdOltdLHVlPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdJiZhcmd1bWVudHNbM107aWYodGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbih5KSl7dmFyIF9lPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh5KTtVcihfZS5fX2NoaWxkcmVuLGZ1''@;'; put 'put ''bmN0aW9uKEJlKXtpZighQy5pc0FueVBhcmVudENvbGxhcHNlZChCZSkpe3ZhciBOZT1DLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEJlKTtJLnB1c2goTmUpLEMuZXhwYW5kQ2hpbGRSb3dzKE5lLEkpfX0pfXVlJiZ0aGlzLnVudHJpbVJvd3MoSSl9fSx7a2V5OiJleHBhbmRDaGlsZHJlbiIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPSEoYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0pfHxhcmd1bWVudHNbMV0sWj0hKGFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLHVlPVtdLF9lPW51bGws''@;'; put 'put ''QmU9bnVsbCxOZT1udWxsO3JldHVybiBpc05hTih5KT8oX2U9eSxCZT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KHkpKTooX2U9dGhpcy5kYXRhTWFuYWdlci5nZXREYXRhT2JqZWN0KHkpLEJlPXkpLHRoaXMuY29sbGFwc2VkUm93cy5zcGxpY2UodGhpcy5jb2xsYXBzZWRSb3dzLmlu''@;'; put 'put ''ZGV4T2YoQmUpLDEpLHRoaXMuZGF0YU1hbmFnZXIuaGFzQ2hpbGRyZW4oX2UpJiZVcihfZS5fX2NoaWxkcmVuLGZ1bmN0aW9uKEtlKXt2YXIgcHQ9Qy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChLZSk7dWUucHVzaChwdCl9KSxOZT10aGlzLmV4cGFuZFJvd3ModWUsITAsITEpLFomJnRoaXMu''@;'; put 'put ''dW50cmltUm93cyhOZSksSSYmdGhpcy5yZW5kZXJBbmRBZGp1c3QoKSxOZX19LHtrZXk6ImV4cGFuZE11bHRpcGxlQ2hpbGRyZW4iLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST0hKGFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdKXx8YXJndW1lbnRzWzFd''@;'; put 'put ''LFo9IShhcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXSl8fGFyZ3VtZW50c1syXSx1ZT1bXTtVcih5LGZ1bmN0aW9uKF9lKXt1ZS5wdXNoLmFwcGx5KHVlLFFEZShDLmV4cGFuZENoaWxkcmVuKF9lLCExLCExKSkpfSksWiYmdGhpcy51bnRyaW1Sb3dzKHVlKSxJJiZ0''@;'; put 'put ''aGlzLnJlbmRlckFuZEFkanVzdCgpfX0se2tleToiY29sbGFwc2VBbGwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YSgpLEk9W107VXIoQyxmdW5jdGlvbihaKXt5LmRhdGFNYW5hZ2VyLmhhc0NoaWxkcmVuKFopJiZJLnB1c2goWil9KSx0''@;'; put 'put ''aGlzLmNvbGxhcHNlTXVsdGlwbGVDaGlsZHJlbihJKSx0aGlzLnJlbmRlckFuZEFkanVzdCgpfX0se2tleToiZXhwYW5kQWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXMsQz10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGEoKSxJPVtdO1VyKEMsZnVuY3Rpb24oWil7eS5kYXRhTWFuYWdl''@;'; put 'put ''ci5oYXNDaGlsZHJlbihaKSYmSS5wdXNoKFopfSksdGhpcy5leHBhbmRNdWx0aXBsZUNoaWxkcmVuKEkpLHRoaXMucmVuZGVyQW5kQWRqdXN0KCl9fSx7a2V5OiJ0cmltUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigp''@;'; put 'put ''e1VyKHksZnVuY3Rpb24oSSl7Qy5wbHVnaW4uY29sbGFwc2VkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoSSwhMCl9KX0sITApfX0se2tleToidW50cmltUm93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpczt0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe1VyKHksZnVu''@;'; put 'put ''Y3Rpb24oSSl7Qy5wbHVnaW4uY29sbGFwc2VkUm93c01hcC5zZXRWYWx1ZUF0SW5kZXgoSSwhMSl9KX0sITApfX0se2tleToiYXJlQ2hpbGRyZW5Db2xsYXBzZWQiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST1pc05hTih5KT95OnRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVj''@;'; put 'put ''dCh5KSxaPSEwO3JldHVybiBudWxsPT09SSYmKEk9e19fY2hpbGRyZW46dGhpcy5kYXRhTWFuYWdlci5kYXRhfSksdGhpcy5kYXRhTWFuYWdlci5oYXNDaGlsZHJlbihJKSYmVXIoSS5fX2NoaWxkcmVuLGZ1bmN0aW9uKHVlKXt2YXIgX2U9Qy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleCh1ZSk7''@;'; put 'put ''aWYoIUMucGx1Z2luLmNvbGxhcHNlZFJvd3NNYXAuZ2V0VmFsdWVBdEluZGV4KF9lKSlyZXR1cm4gWj0hMSwhMX0pLFp9fSx7a2V5OiJpc0FueVBhcmVudENvbGxhcHNlZCIsdmFsdWU6ZnVuY3Rpb24oeSl7Zm9yKHZhciBDPXk7bnVsbCE9PUM7KXtDPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93''@;'; put 'put ''UGFyZW50KEMpO3ZhciBJPXRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoQyk7aWYodGhpcy5jb2xsYXBzZWRSb3dzLmluZGV4T2YoSSk+LTEpcmV0dXJuITB9cmV0dXJuITF9fSx7a2V5OiJ0b2dnbGVTdGF0ZSIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtpZighKEMuY29sPj0wKSl7dmFyIEk9''@;'; put 'put ''dGhpcy50cmFuc2xhdGVUcmltbWVkUm93KEMucm93KTt0bCh5LnRhcmdldCxVRGUuQ1NTX0NMQVNTRVMuYnV0dG9uKSYmKHRoaXMuYXJlQ2hpbGRyZW5Db2xsYXBzZWQoSSk/dGhpcy5leHBhbmRDaGlsZHJlbihJKTp0aGlzLmNvbGxhcHNlQ2hpbGRyZW4oSSksXzgoeSkpfX19LHtrZXk6InRy''@;'; put 'put ''YW5zbGF0ZVRyaW1tZWRSb3ciLHZhbHVlOmZ1bmN0aW9uKHkpe3JldHVybiB0aGlzLmhvdC50b1BoeXNpY2FsUm93KHkpfX0se2tleToidW50cmFuc2xhdGVUcmltbWVkUm93Iix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1cm4gdGhpcy5ob3QudG9WaXN1YWxSb3coeSl9fSx7a2V5OiJyZW5kZXJB''@;'; put 'put ''bmRBZGp1c3QiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3QucmVuZGVyKCksdGhpcy5ob3Qudmlldy5hZGp1c3RFbGVtZW50c1NpemUoKX19XSksaH0oWWdlKTtjb25zdCBUNnQ9eDZ0O2Z1bmN0aW9uICRnZShkKXtyZXR1cm4oJGdlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1i''@;'; put 'put ''b2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVv''@;'; put 'put ''ZiBnfSkoZCl9ZnVuY3Rpb24gWERlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHko''@;'; put 'put ''ZCx2LmtleSx2KX19ZnVuY3Rpb24gcWdlKGQsZyl7cmV0dXJuKHFnZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIFI2dChkLGcpe2lmKGcmJigib2Jq''@;'; put 'put ''ZWN0Ij09PSRnZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gS0RlKGQpfWZ1bmN0aW9uIEtE''@;'; put 'put ''ZShkKXtpZih2b2lkIDA9PT1kKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gQm5lKGQpe3JldHVybihCbmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09i''@;'; put 'put ''amVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgJERlPW5ldyBXZWFrTWFwLFA2dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gTDZ0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9m''@;'; put 'put ''IGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29u''@;'; put 'put ''ZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnFnZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIE82dChkKXt2YXIgZz1mdW5jdGlvbiBCNnQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZs''@;'; put 'put ''ZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigp''@;'; put 'put ''e30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1CbmUoZCk7aWYoZyl7dmFyIEM9Qm5lKHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Jl''@;'; put 'put ''dHVybiBSNnQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodix5KXt2YXIgQztyZXR1cm4gZnVuY3Rpb24gSTZ0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksQz1nLmNhbGwo''@;'; put 'put ''dGhpcyx2LHkpLCREZS5zZXQoS0RlKEMpLHtyb3dfYWJvdmU6ZnVuY3Rpb24oWix1ZSl7Qy5kYXRhTWFuYWdlci5hZGRTaWJsaW5nKHVlW3VlLmxlbmd0aC0xXS5zdGFydC5yb3csImFib3ZlIil9LHJvd19iZWxvdzpmdW5jdGlvbihaLHVlKXtDLmRhdGFNYW5hZ2VyLmFkZFNpYmxpbmcodWVb''@;'; put 'put ''dWUubGVuZ3RoLTFdLnN0YXJ0LnJvdywiYmVsb3ciKX19KSxDLmRhdGFNYW5hZ2VyPUMucGx1Z2luLmRhdGFNYW5hZ2VyLEN9cmV0dXJuIGZ1bmN0aW9uIEQ2dChkLGcsaCl7ZyYmWERlKGQucHJvdG90eXBlLGcpLGgmJlhEZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5''@;'; put 'put ''cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJhcHBlbmRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz10aGlzLEk9W3trZXk6ImFkZF9jaGlsZCIsbmFtZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2Uob3BlKX0sY2FsbGJhY2s6ZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgdWU9Qy5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KEMuaG90LmdldFNlbGVjdGVkTGFzdCgpWzBdKSxfZT1DLmRhdGFNYW5hZ2VyLmdldERhdGFPYmplY3QodWUpO0MuZGF0YU1hbmFnZXIuYWRkQ2hpbGQoX2UpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3ZhciB1ZT1DLmhv''@;'; put 'put ''dC5nZXRTZWxlY3RlZExhc3QoKTtyZXR1cm4hdWV8fHVlWzBdPDB8fEMuaG90LnNlbGVjdGlvbi5pc1NlbGVjdGVkQnlDb2x1bW5IZWFkZXIoKXx8Qy5ob3QuY291bnRSb3dzKCk+PUMuaG90LmdldFNldHRpbmdzKCkubWF4Um93c319LHtrZXk6ImRldGFjaF9mcm9tX3BhcmVudCIsbmFtZTpm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRQaHJhc2UoYXBlKX0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtDLmRhdGFNYW5hZ2VyLmRldGFjaEZyb21QYXJlbnQoQy5ob3QuZ2V0U2VsZWN0ZWRMYXN0KCkpfSxkaXNhYmxlZDpmdW5jdGlvbigpe3ZhciB1ZT1DLmhvdC5nZXRTZWxl''@;'; put 'put ''Y3RlZExhc3QoKSxfZT1DLmRhdGFNYW5hZ2VyLnRyYW5zbGF0ZVRyaW1tZWRSb3codWVbMF0pO3JldHVybiFDLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudChfZSl8fCF1ZXx8dWVbMF08MHx8Qy5ob3Quc2VsZWN0aW9uLmlzU2VsZWN0ZWRCeUNvbHVtbkhlYWRlcigpfHxDLmhvdC5jb3VudFJv''@;'; put 'put ''d3MoKT49Qy5ob3QuZ2V0U2V0dGluZ3MoKS5tYXhSb3dzfX0se25hbWU6Ii0tLS0tLS0tLSJ9XTtyZXR1cm4gaWEoMCx5Lml0ZW1zLmxlbmd0aC0xLGZ1bmN0aW9uKFope2lmKDA9PT1aKXJldHVybiBVcihJLGZ1bmN0aW9uKHVlLF9lKXt5Lml0ZW1zLnNwbGljZShaK19lLDAsdWUpfSksITF9''@;'; put 'put ''KSx0aGlzLm1vZGlmeVJvd0luc2VydGluZ09wdGlvbnMoeSl9fSx7a2V5OiJtb2RpZnlSb3dJbnNlcnRpbmdPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXt2YXIgQz0kRGUuZ2V0KHRoaXMpO3JldHVybiBpYSgwLHkuaXRlbXMubGVuZ3RoLTEsZnVuY3Rpb24oSSl7dmFyIFo9Q1t5Lml0ZW1z''@;'; put 'put ''W0ldLmtleV07bnVsbCE9WiYmKHkuaXRlbXNbSV0uY2FsbGJhY2s9Wil9KSx5fX1dKSxofShZZ2UpO2NvbnN0IEY2dD1QNnQ7dmFyIHFEZTtmdW5jdGlvbiBlTGUoZCl7cmV0dXJuIGZ1bmN0aW9uIGo2dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBlbWUoZCl9KGQpfHxmdW5jdGlv''@;'; put 'put ''biBWNnQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQpfShkKXx8ZnVuY3Rpb24gTjZ0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVy''@;'; put 'put ''biBlbWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVjdG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJB''@;'; put 'put ''cmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIGVtZShkLGcpfX0oZCl8fGZ1bmN0aW9uIEg2dCgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGlu''@;'; put 'put ''c3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGVtZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9''@;'; put 'put ''bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIHRMZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0''@;'; put 'put ''YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBXNnQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpeyhmdW5jdGlvbiB6NnQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVu''@;'; put 'put ''Y3Rpb24iKX0pKHRoaXMsZCksdGhpcy5wbHVnaW49Zyx0aGlzLmhvdD1nLmhvdCx0aGlzLmRhdGFNYW5hZ2VyPWcuZGF0YU1hbmFnZXIsdGhpcy5jb2xsYXBzaW5nVUk9Zy5jb2xsYXBzaW5nVUl9cmV0dXJuIGZ1bmN0aW9uIEc2dChkLGcsaCl7ZyYmdExlKGQucHJvdG90eXBlLGcpLGgmJnRM''@;'; put 'put ''ZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShkLFt7a2V5OiJvbkJlZm9yZVJvd01vdmUiLHZhbHVlOmZ1bmN0aW9uKGgsdix5LEMpe3ZhciBJPXRoaXM7aWYodGhpcy5kaXNwbGF5QVBJQ29tcGF0aWJpbGl0eVdhcm5pbmcoe3Jvd3M6''@;'; put 'put ''aCxmaW5hbEluZGV4OnYsZHJvcEluZGV4OnksbW92ZVBvc3NpYmxlOkN9KSlyZXR1cm4hMTt0aGlzLm1vdmVkVG9Db2xsYXBzZWQ9ITE7dmFyIHVlPXk9PT10aGlzLmhvdC5jb3VudFJvd3MoKSxfZT11ZT90aGlzLmhvdC5jb3VudFNvdXJjZVJvd3MoKTp0aGlzLmRhdGFNYW5hZ2VyLnRyYW5z''@;'; put 'put ''bGF0ZVRyaW1tZWRSb3coeSksQmU9ITAsTmU9aC5tYXAoZnVuY3Rpb24oZm4pe2lmKCFCZSlyZXR1cm4hMTt2YXIgTG49SS5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGZuKTtyZXR1cm4gQmU9SS5zaG91bGRBbGxvd01vdmluZyhMbixfZSksTG59KSxLZT0tMT09PU5lLmluZGV4''@;'; put 'put ''T2YoX2UpO2lmKCFCZXx8IUtlKXJldHVybiExO3ZhciBwdD10aGlzLmdldEJhc2VQYXJlbnQoTmUpLE90PXRoaXMuZ2V0VGFyZ2V0UGFyZW50KHVlLF9lKSwkdD1wdD09PU90O3JldHVybiB0aGlzLm1vdmVkVG9Db2xsYXBzZWQ9dGhpcy5jb2xsYXBzaW5nVUkuYXJlQ2hpbGRyZW5Db2xsYXBz''@;'; put 'put ''ZWQoT3QpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpLHRoaXMuc2hpZnRDb2xsYXBzaWJsZVBhcmVudHNMb2NhdGlvbnMoTmUsX2UsJHQpLHRoaXMubW92ZVJvd3MoTmUsX2UsT3QpLHRoaXMuZGF0YU1hbmFnZXIucmV3cml0ZUNhY2hlKCksdGhpcy5tb3Zl''@;'; put 'put ''Q2VsbHNNZXRhKE5lLF9lKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guYXBwbHlTdGFzaCghMSksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyUm93TW92ZSIsaCx2LHksQyxDJiZ0aGlzLmlzUm93T3JkZXJDaGFuZ2VkKGgsdikpLHRoaXMuaG90LnJlbmRlcigpLHRoaXMu''@;'; put 'put ''c2VsZWN0Q2VsbHMoaCx5KSwhMX19LHtrZXk6ImRpc3BsYXlBUElDb21wYXRpYmlsaXR5V2FybmluZyIsdmFsdWU6ZnVuY3Rpb24oaCl7dmFyIHY9aC5yb3dzLHk9aC5maW5hbEluZGV4LEM9aC5kcm9wSW5kZXgsST1oLm1vdmVQb3NzaWJsZSxaPSExO3JldHVybiBhMShDKSYmKGwxKFAyKHFE''@;'; put 'put ''ZXx8KHFEZT1mdW5jdGlvbiBaNnQoZCxnKXtyZXR1cm4gZ3x8KGc9ZC5zbGljZSgwKSksT2JqZWN0LmZyZWV6ZShPYmplY3QuZGVmaW5lUHJvcGVydGllcyhkLHtyYXc6e3ZhbHVlOk9iamVjdC5mcmVlemUoZyl9fSkpfShbIlNpbmNlIHZlcnNpb24gOC4wLjAgb2YgdGhlIEhhbmRzb250YWJs''@;'; put 'put ''ZSB0aGUgJ21vdmVSb3dzJyBtZXRob2QgaXNuJ3QgdXNlZCBmb3IgbW92aW5nIHJvd3MgXG4gICAgICB3aGVuIHRoZSBOZXN0ZWRSb3dzIHBsdWdpbiBpcyBlbmFibGVkLiBQbGVhc2UgdXNlIHRoZSAnZHJhZ1Jvd3MnIG1ldGhvZCBpbnN0ZWFkLiJdLFsiU2luY2UgdmVyc2lvbiA4LjAuMCBv''@;'; put 'put ''ZiB0aGUgSGFuZHNvbnRhYmxlIHRoZSAnbW92ZVJvd3MnIG1ldGhvZCBpc24ndCB1c2VkIGZvciBtb3Zpbmcgcm93c1xceDIwXG4gICAgICB3aGVuIHRoZSBOZXN0ZWRSb3dzIHBsdWdpbiBpcyBlbmFibGVkLiBQbGVhc2UgdXNlIHRoZSAnZHJhZ1Jvd3MnIG1ldGhvZCBpbnN0ZWFkLiJdKSkp''@;'; put 'put ''KSx0aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJSb3dNb3ZlIix2LHksQyxJLCExKSxaPSEwKSxafX0se2tleToic2hvdWxkQWxsb3dNb3ZpbmciLHZhbHVlOmZ1bmN0aW9uKGgsdil7cmV0dXJuISh0aGlzLmRhdGFNYW5hZ2VyLmlzUGFyZW50KGgpfHx0aGlzLmRhdGFNYW5hZ2VyLmlzUm93SGln''@;'; put 'put ''aGVzdExldmVsKGgpfHxoPT09dnx8MD09PXYpfX0se2tleToiZ2V0QmFzZVBhcmVudCIsdmFsdWU6ZnVuY3Rpb24oaCl7cmV0dXJuIHRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KGhbMF0pfX0se2tleToiZ2V0VGFyZ2V0UGFyZW50Iix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciB5PXRo''@;'; put 'put ''aXMuZGF0YU1hbmFnZXIuZ2V0Um93UGFyZW50KGg/di0xOnYpO3JldHVybiBudWxsPT15JiYoeT10aGlzLmRhdGFNYW5hZ2VyLmdldFJvd1BhcmVudCh2LTEpKSx5fX0se2tleToic2hpZnRDb2xsYXBzaWJsZVBhcmVudHNMb2NhdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKGgsdix5KXt5fHwoTWF0''@;'; put 'put ''aC5tYXguYXBwbHkoTWF0aCxlTGUoaCkpPD12P3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlmdFN0YXNoKGhbMF0sdiwtMSpoLmxlbmd0aCk6dGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnNoaWZ0U3Rhc2godixoWzBdLGgubGVuZ3RoKSl9fSx7''@;'; put 'put ''a2V5OiJtb3ZlUm93cyIsdmFsdWU6ZnVuY3Rpb24oaCx2LHkpe3ZhciBDPXRoaXMsST12PT09dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleCh5KSt0aGlzLmRhdGFNYW5hZ2VyLmNvdW50Q2hpbGRyZW4oeSkrMTt0aGlzLmhvdC5iYXRjaFJlbmRlcihmdW5jdGlvbigpe2guZm9yRWFjaChm''@;'; put 'put ''dW5jdGlvbihaKXtDLmRhdGFNYW5hZ2VyLm1vdmVSb3coWix2LEMubW92ZWRUb0NvbGxhcHNlZCxJKX0pfSl9fSx7a2V5OiJtb3ZlQ2VsbHNNZXRhIix2YWx1ZTpmdW5jdGlvbihoLHYpe3ZhciBDLHk9dGhpcyxJPVtdLFo9TWF0aC5tYXguYXBwbHkoTWF0aCxlTGUoaCkpPHY7aC5mb3JFYWNo''@;'; put 'put ''KGZ1bmN0aW9uKHVlKXtJLnB1c2goeS5ob3QuZ2V0Q2VsbE1ldGFBdFJvdyh1ZSkpfSksdGhpcy5ob3Quc3BsaWNlQ2VsbHNNZXRhKGhbMF0saC5sZW5ndGgpLChDPXRoaXMuaG90KS5zcGxpY2VDZWxsc01ldGEuYXBwbHkoQyxbdi0oWj9JLmxlbmd0aDowKSwwXS5jb25jYXQoSSkpfX0se2tl''@;'; put 'put ''eToic2VsZWN0Q2VsbHMiLHZhbHVlOmZ1bmN0aW9uKGgsdil7dmFyIHVlLHk9aC5sZW5ndGgsQz0wLEk9MCxaPW51bGw7aWYodGhpcy5tb3ZlZFRvQ29sbGFwc2VkKXt2YXIgX2U7X2U9dGhpcy5kYXRhTWFuYWdlci50cmFuc2xhdGVUcmltbWVkUm93KGhbeS0xXTx2P3YteTp2KTt2YXIgQmU9''@;'; put 'put ''dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dQYXJlbnQobnVsbD09PV9lP3RoaXMuaG90LmNvdW50U291cmNlUm93cygpLTE6X2UtMSksTmU9dGhpcy5kYXRhTWFuYWdlci5nZXRSb3dJbmRleChCZSk7ST1DPXRoaXMuZGF0YU1hbmFnZXIudW50cmFuc2xhdGVUcmltbWVkUm93KE5lKX1lbHNlIGhb''@;'; put 'put ''eS0xXTx2P0M9KEk9di0xKS15KzE6ST0oQz12KSt5LTE7Wj10aGlzLmhvdC5zZWxlY3Rpb24sdWU9dGhpcy5ob3QuY291bnRDb2xzKCktMSxaLnNldFJhbmdlU3RhcnQodGhpcy5ob3QuX2NyZWF0ZUNlbGxDb29yZHMoQywwKSksWi5zZXRSYW5nZUVuZCh0aGlzLmhvdC5fY3JlYXRlQ2VsbENv''@;'; put 'put ''b3JkcyhJLHVlKSwhMCl9fSx7a2V5OiJpc1Jvd09yZGVyQ2hhbmdlZCIsdmFsdWU6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gaC5zb21lKGZ1bmN0aW9uKHksQyl7cmV0dXJuIHktQyE9PXZ9KX19XSksZH0oKTtmdW5jdGlvbiB0bWUoZCl7cmV0dXJuKHRtZT0iZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcj9mdW5jdGlvbihnKXtyZXR1cm4gdHlwZW9mIGd9OmZ1bmN0aW9uKGcpe3JldHVybiBnJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZnLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZnIT09U3ltYm9sLnByb3RvdHlwZT8ic3lt''@;'; put 'put ''Ym9sIjp0eXBlb2YgZ30pKGQpfWZ1bmN0aW9uIG5MZShkKXtyZXR1cm4gZnVuY3Rpb24gSjZ0KGQpe2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIG5tZShkKX0oZCl8fGZ1bmN0aW9uIFE2dChkKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9ZFtTeW1ib2wuaXRlcmF0''@;'; put 'put ''b3JdfHxudWxsIT1kWyJAQGl0ZXJhdG9yIl0pcmV0dXJuIEFycmF5LmZyb20oZCl9KGQpfHxmdW5jdGlvbiBVNnQoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIG5tZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0x''@;'; put 'put ''KTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVz''@;'; put 'put ''dChoKSlyZXR1cm4gbm1lKGQsZyl9fShkKXx8ZnVuY3Rpb24gWTZ0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZl''@;'; put 'put ''IGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gbm1lKGQsZyl7KG51bGw9PWd8fGc+ZC5sZW5ndGgpJiYoZz1kLmxlbmd0aCk7Zm9yKHZhciBoPTAsdj1uZXcgQXJyYXkoZyk7aDxnO2grKyl2W2hdPWRbaF07cmV0dXJuIHZ9ZnVuY3Rpb24gckxlKGQsZyl7Zm9y''@;'; put 'put ''KHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gYk0oKXtyZXR1''@;'; put 'put ''cm4gYk09InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PSQ2dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQu''@;'; put 'put ''Y2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sYk0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uICQ2dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9dDkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rp''@;'; put 'put ''b24gcm1lKGQsZyl7cmV0dXJuKHJtZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHQ4dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PXRtZShnKXx8ImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gaUxlKGQpfWZ1bmN0aW9uIGlMZShkKXtpZih2b2lkIDA9PT1k''@;'; put 'put ''KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGR9ZnVuY3Rpb24gdDkoZCl7cmV0dXJuKHQ5PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2Yu''@;'; put 'put ''YmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIGltZT0ibmVzdGVkUm93cyIsbjk9bmV3IFdlYWtNYXAsbzh0PWZ1bmN0aW9uKGQpeyFmdW5jdGlvbiBxNnQoZCxnKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZyYm''@;'; put 'put ''bnVsbCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGcmJmcucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6ZCx3cml0YWJsZTohMCxjb25maWd1''@;'; put 'put ''cmFibGU6ITB9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksZyYmcm1lKGQsZyl9KGgsZCk7dmFyIGc9ZnVuY3Rpb24gZTh0KGQpe3ZhciBnPWZ1bmN0aW9uIG44dCgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdHx8IVJlZmxlY3Qu''@;'; put 'put ''Y29uc3RydWN0fHxSZWZsZWN0LmNvbnN0cnVjdC5zaGFtKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBQcm94eSlyZXR1cm4hMDt0cnl7cmV0dXJuIEJvb2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChCb29sZWFuLFtdLGZ1bmN0aW9uKCl7fSkp''@;'; put 'put ''LCEwfWNhdGNoKGQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgeSx2PXQ5KGQpO2lmKGcpe3ZhciBDPXQ5KHRoaXMpLmNvbnN0cnVjdG9yO3k9UmVmbGVjdC5jb25zdHJ1Y3Qodixhcmd1bWVudHMsQyl9ZWxzZSB5PXYuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0''@;'; put 'put ''OHQodGhpcyx5KX19KGgpO2Z1bmN0aW9uIGgodil7dmFyIHk7cmV0dXJuIGZ1bmN0aW9uIFg2dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGgpLCh5PWcuY2FsbCh0aGlzLHYp''@;'; put 'put ''KS5kYXRhTWFuYWdlcj1udWxsLHkuaGVhZGVyc1VJPW51bGwseS5jb2xsYXBzZWRSb3dzTWFwPW51bGwsbjkuc2V0KGlMZSh5KSx7bW92ZWRUb0NvbGxhcHNlZDohMSxza2lwUmVuZGVyOm51bGwsc2tpcENvcmVBUElNb2RpZmllcnM6ITF9KSx5fXJldHVybiBmdW5jdGlvbiBLNnQoZCxnLGgp''@;'; put 'put ''e2cmJnJMZShkLnByb3RvdHlwZSxnKSxoJiZyTGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtpbWVdfX0se2tl''@;'; put 'put ''eToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy5jb2xsYXBzZWRSb3dzTWFwPXRoaXMuaG90LnJvd0luZGV4TWFwcGVyLnJlZ2lzdGVyTWFwKCJuZXN0ZWRSb3dzIixuZXcgbnopLHRoaXMuZGF0YU1hbmFnZXI9bmV3IG82dCh0''@;'; put 'put ''aGlzLHRoaXMuaG90KSx0aGlzLmNvbGxhcHNpbmdVST1uZXcgVDZ0KHRoaXMsdGhpcy5ob3QpLHRoaXMuaGVhZGVyc1VJPW5ldyBVRGUodGhpcyx0aGlzLmhvdCksdGhpcy5jb250ZXh0TWVudVVJPW5ldyBGNnQodGhpcyx0aGlzLmhvdCksdGhpcy5yb3dNb3ZlQ29udHJvbGxlcj1uZXcgVzZ0''@;'; put 'put ''KHRoaXMpLHRoaXMuYWRkSG9vaygiYWZ0ZXJJbml0IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJJbml0LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlVmlld1JlbmRlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVZpZXdSZW5kZXIuYXBwbHkoeSxh''@;'; put 'put ''cmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJtb2RpZnlSb3dEYXRhIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5Um93RGF0YS5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVNvdXJjZUxlbmd0aCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbk1vZGlmeVNvdXJj''@;'; put 'put ''ZUxlbmd0aC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZURhdGFTcGxpY2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25CZWZvcmVEYXRhU3BsaWNlLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiZmlsdGVyRGF0YSIsZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''eS5vbkZpbHRlckRhdGEuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25BZnRlckNvbnRleHRNZW51RGVmYXVsdE9wdGlvbnMuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRI''@;'; put 'put ''b29rKCJhZnRlckdldFJvd0hlYWRlciIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyR2V0Um93SGVhZGVyLmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlT25DZWxsTW91c2VEb3duIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlT25DZWxsTW91c2VEb3du''@;'; put 'put ''LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUmVtb3ZlUm93IixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlUmVtb3ZlUm93LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJSZW1vdmVSb3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25B''@;'; put 'put ''ZnRlclJlbW92ZVJvdy5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZUFkZENoaWxkIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlQWRkQ2hpbGQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckFkZENoaWxkIixmdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiB5Lm9uQWZ0ZXJBZGRDaGlsZC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soImJlZm9yZURldGFjaENoaWxkIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlRGV0YWNoQ2hpbGQuYXBwbHkoeSxhcmd1bWVudHMpfSksdGhpcy5hZGRIb29rKCJhZnRlckRldGFjaENo''@;'; put 'put ''aWxkIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJEZXRhY2hDaGlsZC5hcHBseSh5LGFyZ3VtZW50cyl9KSx0aGlzLmFkZEhvb2soIm1vZGlmeVJvd0hlYWRlcldpZHRoIixmdW5jdGlvbigpe3JldHVybiB5Lm9uTW9kaWZ5Um93SGVhZGVyV2lkdGguYXBwbHkoeSxhcmd1bWVudHMpfSks''@;'; put 'put ''dGhpcy5hZGRIb29rKCJhZnRlckNyZWF0ZVJvdyIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyQ3JlYXRlUm93LmFwcGx5KHksYXJndW1lbnRzKX0pLHRoaXMuYWRkSG9vaygiYmVmb3JlUm93TW92ZSIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkJlZm9yZVJvd01vdmUuYXBwbHkoeSxhcmd1''@;'; put 'put ''bWVudHMpfSksdGhpcy5hZGRIb29rKCJiZWZvcmVMb2FkRGF0YSIsZnVuY3Rpb24oQyl7cmV0dXJuIHkub25CZWZvcmVMb2FkRGF0YShDKX0pLGJNKHQ5KGgucHJvdG90eXBlKSwiZW5hYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIudW5yZWdpc3Rlck1hcCgibmVzdGVkUm93cyIpLGJNKHQ5KGgucHJvdG90eXBlKSwiZGlzYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6InVwZGF0ZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmRpc2FibGVQ''@;'; put 'put ''bHVnaW4oKTt2YXIgeT10aGlzLmRhdGFNYW5hZ2VyLmdldERhdGEoKTt0aGlzLmVuYWJsZVBsdWdpbigpLHRoaXMuZGF0YU1hbmFnZXIudXBkYXRlV2l0aERhdGEoeSksYk0odDkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJvbkJlZm9yZVJv''@;'; put 'put ''d01vdmUiLHZhbHVlOmZ1bmN0aW9uKHksQyxJLFope3JldHVybiB0aGlzLnJvd01vdmVDb250cm9sbGVyLm9uQmVmb3JlUm93TW92ZSh5LEMsSSxaKX19LHtrZXk6ImRpc2FibGVDb3JlQVBJTW9kaWZpZXJzIix2YWx1ZTpmdW5jdGlvbigpe245LmdldCh0aGlzKS5za2lwQ29yZUFQSU1vZGlm''@;'; put 'put ''aWVycz0hMH19LHtrZXk6ImVuYWJsZUNvcmVBUElNb2RpZmllcnMiLHZhbHVlOmZ1bmN0aW9uKCl7bjkuZ2V0KHRoaXMpLnNraXBDb3JlQVBJTW9kaWZpZXJzPSExfX0se2tleToib25CZWZvcmVPbkNlbGxNb3VzZURvd24iLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt0aGlzLmNvbGxhcHNpbmdV''@;'; put 'put ''SS50b2dnbGVTdGF0ZSh5LEMsSSl9fSx7a2V5OiJvbk1vZGlmeVJvd0RhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKCFuOS5nZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnMpcmV0dXJuIHRoaXMuZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdCh5KX19LHtrZXk6Im9uTW9kaWZ5U291cmNl''@;'; put 'put ''TGVuZ3RoIix2YWx1ZTpmdW5jdGlvbigpe2lmKCFuOS5nZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnMpcmV0dXJuIHRoaXMuZGF0YU1hbmFnZXIuY291bnRBbGxSb3dzKCl9fSx7a2V5OiJvbkJlZm9yZURhdGFTcGxpY2UiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXtyZXR1cm4hKCFuOS5n''@;'; put 'put ''ZXQodGhpcykuc2tpcENvcmVBUElNb2RpZmllcnMmJiF0aGlzLmRhdGFNYW5hZ2VyLmlzUm93SGlnaGVzdExldmVsKHkpJiYodGhpcy5kYXRhTWFuYWdlci5zcGxpY2VEYXRhKHksQyxJKSwxKSl9fSx7a2V5OiJvbkZpbHRlckRhdGEiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt2YXIgWj1uOS5n''@;'; put 'put ''ZXQodGhpcyk7cmV0dXJuIHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC50cmltU3Rhc2goSVswXSxDKSx0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc2hpZnRTdGFzaChJ''@;'; put 'put ''WzBdLG51bGwsLTEqQyksdGhpcy5kYXRhTWFuYWdlci5maWx0ZXJEYXRhKHksQyxJKSxaLnNraXBSZW5kZXI9ITAsdGhpcy5kYXRhTWFuYWdlci5nZXREYXRhKCkuc2xpY2UoKX19LHtrZXk6Im9uQWZ0ZXJDb250ZXh0TWVudURlZmF1bHRPcHRpb25zIix2YWx1ZTpmdW5jdGlvbih5KXtyZXR1''@;'; put 'put ''cm4gdGhpcy5jb250ZXh0TWVudVVJLmFwcGVuZE9wdGlvbnMoeSl9fSx7a2V5OiJvbkFmdGVyR2V0Um93SGVhZGVyIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuaGVhZGVyc1VJLmFwcGVuZExldmVsSW5kaWNhdG9ycyh5LEMpfX0se2tleToib25Nb2RpZnlSb3dIZWFkZXJXaWR0aCIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMuaGVhZGVyc1VJLnJvd0hlYWRlcldpZHRoQ2FjaGV8fHl9fSx7a2V5OiJvbkFmdGVyUmVtb3ZlUm93Iix2YWx1ZTpmdW5jdGlvbih5LEMsSSxaKXt2YXIgdWU9dGhpcztpZihaIT09dGhpcy5wbHVnaW5OYW1lKXt2YXIgX2U9bjkuZ2V0KHRoaXMp''@;'; put 'put ''O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtfZS5za2lwUmVuZGVyPW51bGwsdWUuaGVhZGVyc1VJLnVwZGF0ZVJvd0hlYWRlcldpZHRoKCksdWUuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCl9LDApfX19LHtrZXk6Im9uQmVmb3JlUmVtb3ZlUm93Iix2YWx1ZTpm''@;'; put 'put ''dW5jdGlvbih5LEMsSSl7dmFyIFo9dGhpcyx1ZT1BcnJheS5mcm9tKEkucmVkdWNlKGZ1bmN0aW9uKF9lLEJlKXtpZihaLmRhdGFNYW5hZ2VyLmlzUGFyZW50KEJlKSl7dmFyIE5lPVouZGF0YU1hbmFnZXIuZ2V0RGF0YU9iamVjdChCZSkuX19jaGlsZHJlbjtyZXR1cm4gX2UuYWRkKEJlKSxB''@;'; put 'put ''cnJheS5pc0FycmF5KE5lKSYmTmUuZm9yRWFjaChmdW5jdGlvbihLZSl7cmV0dXJuIF9lLmFkZChaLmRhdGFNYW5hZ2VyLmdldFJvd0luZGV4KEtlKSl9KSxfZX1yZXR1cm4gX2UuYWRkKEJlKX0sbmV3IFNldCkpO0kubGVuZ3RoPTAsSS5wdXNoLmFwcGx5KEksbkxlKHVlKSl9fSx7a2V5OiJv''@;'; put 'put ''bkJlZm9yZUFkZENoaWxkIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zdGFzaCgpfX0se2tleToib25BZnRlckFkZENoaWxkIix2YWx1ZTpmdW5jdGlvbih5LEMpe3RoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5zaGlm''@;'; put 'put ''dFN0YXNoKHRoaXMuZGF0YU1hbmFnZXIuZ2V0Um93SW5kZXgoQykpLHRoaXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCksdGhpcy5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKX19LHtrZXk6Im9uQmVmb3JlRGV0YWNoQ2hpbGQiLHZhbHVlOmZ1''@;'; put 'put ''bmN0aW9uKCl7dGhpcy5jb2xsYXBzaW5nVUkuY29sbGFwc2VkUm93c1N0YXNoLnN0YXNoKCl9fSx7a2V5OiJvbkFmdGVyRGV0YWNoQ2hpbGQiLHZhbHVlOmZ1bmN0aW9uKHksQyxJKXt0aGlzLmNvbGxhcHNpbmdVSS5jb2xsYXBzZWRSb3dzU3Rhc2guc2hpZnRTdGFzaChJLG51bGwsLTEpLHRo''@;'; put 'put ''aXMuY29sbGFwc2luZ1VJLmNvbGxhcHNlZFJvd3NTdGFzaC5hcHBseVN0YXNoKCksdGhpcy5oZWFkZXJzVUkudXBkYXRlUm93SGVhZGVyV2lkdGgoKX19LHtrZXk6Im9uQWZ0ZXJDcmVhdGVSb3ciLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5kYXRhTWFuYWdlci5yZXdyaXRlQ2FjaGUoKX19LHtr''@;'; put 'put ''ZXk6Im9uQWZ0ZXJJbml0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PU1hdGgubWF4LmFwcGx5KE1hdGgsbkxlKHRoaXMuZGF0YU1hbmFnZXIuY2FjaGUubGV2ZWxzKSk7eT4wJiZ0aGlzLmhlYWRlcnNVSS51cGRhdGVSb3dIZWFkZXJXaWR0aCh5KX19LHtrZXk6Im9uQmVmb3JlVmlld1JlbmRl''@;'; put 'put ''ciIsdmFsdWU6ZnVuY3Rpb24oeSxDKXtuOS5nZXQodGhpcykuc2tpcFJlbmRlciYmKEMuc2tpcFJlbmRlcj0hMCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2JNKHQ5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6Im9uQmVmb3JlTG9h''@;'; put 'put ''ZERhdGEiLHZhbHVlOmZ1bmN0aW9uKHkpe2lmKCF0a2UoeSkpcmV0dXJuIEMzZSgiVGhlIE5lc3RlZCBSb3dzIHBsdWdpbiByZXF1aXJlcyBhbiBBcnJheSBvZiBPYmplY3RzIGFzIGEgZGF0YXNldCB0byBiZSBwcm92aWRlZC4gVGhlIHBsdWdpbiBoYXMgYmVlbiBkaXNhYmxlZC4iKSx0aGlz''@;'; put 'put ''LmhvdC5nZXRTZXR0aW5ncygpW2ltZV09ITEsdm9pZCB0aGlzLmRpc2FibGVQbHVnaW4oKTt0aGlzLmRhdGFNYW5hZ2VyLnNldERhdGEoeSksdGhpcy5kYXRhTWFuYWdlci5yZXdyaXRlQ2FjaGUoKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGltZX19LHtr''@;'; put 'put ''ZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDMwMH19XSksaH0oWXMpO2Z1bmN0aW9uIGE4dChkLGcpe2lmKCEoZCBpbnN0YW5jZW9mIGcpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIG9M''@;'; put 'put ''ZShkLGcpe2Zvcih2YXIgaD0wO2g8Zy5sZW5ndGg7aCsrKXt2YXIgdj1nW2hdO3YuZW51bWVyYWJsZT12LmVudW1lcmFibGV8fCExLHYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiB2JiYodi53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsdi5rZXksdil9fXZhciBzOHQ9''@;'; put 'put ''ZnVuY3Rpb24oKXtmdW5jdGlvbiBkKGcpe3ZhciBoPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp3aW5kb3c7YTh0KHRoaXMsZCksdGhpcy5yb290V2luZG93PWgsdGhpcy5wcmVmaXg9Zyx0aGlzLnNhdmVkS2V5cz1bXSx0aGlzLmxvYWRT''@;'; put 'put ''YXZlZEtleXMoKX1yZXR1cm4gZnVuY3Rpb24gbDh0KGQsZyxoKXtnJiZvTGUoZC5wcm90b3R5cGUsZyksaCYmb0xlKGQsaCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSl9KGQsW3trZXk6InNhdmVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt0''@;'; put 'put ''aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oIiIuY29uY2F0KHRoaXMucHJlZml4LCJfIikuY29uY2F0KGgpLEpTT04uc3RyaW5naWZ5KHYpKSwtMT09PXRoaXMuc2F2ZWRLZXlzLmluZGV4T2YoaCkmJih0aGlzLnNhdmVkS2V5cy5wdXNoKGgpLHRoaXMuc2F2ZVNhdmVkS2V5''@;'; put 'put ''cygpKX19LHtrZXk6ImxvYWRWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oaCx2KXt2YXIgeT12b2lkIDA9PT1oP3Y6aCxDPXRoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiIi5jb25jYXQodGhpcy5wcmVmaXgsIl8iKS5jb25jYXQoeSkpO3JldHVybiBudWxsPT09Qz92b2lkIDA6''@;'; put 'put ''SlNPTi5wYXJzZShDKX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbihoKXt0aGlzLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIiIuY29uY2F0KHRoaXMucHJlZml4LCJfIikuY29uY2F0KGgpKX19LHtrZXk6InJlc2V0QWxsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBo''@;'; put 'put ''PXRoaXM7VXIodGhpcy5zYXZlZEtleXMsZnVuY3Rpb24odix5KXtoLnJvb3RXaW5kb3cubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIiIuY29uY2F0KGgucHJlZml4LCJfIikuY29uY2F0KGguc2F2ZWRLZXlzW3ldKSl9KSx0aGlzLmNsZWFyU2F2ZWRLZXlzKCl9fSx7a2V5OiJsb2FkU2F2ZWRL''@;'; put 'put ''ZXlzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciBoPXRoaXMucm9vdFdpbmRvdy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiIi5jb25jYXQodGhpcy5wcmVmaXgsIl9fcGVyc2lzdGVudFN0YXRlS2V5cyIpKSx2PSJzdHJpbmciPT10eXBlb2YgaD9KU09OLnBhcnNlKGgpOnZvaWQgMDt0aGlzLnNhdmVk''@;'; put 'put ''S2V5cz12fHxbXX19LHtrZXk6InNhdmVTYXZlZEtleXMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5yb290V2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCIiLmNvbmNhdCh0aGlzLnByZWZpeCwiX19wZXJzaXN0ZW50U3RhdGVLZXlzIiksSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlZEtleXMp''@;'; put 'put ''KX19LHtrZXk6ImNsZWFyU2F2ZWRLZXlzIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuc2F2ZWRLZXlzLmxlbmd0aD0wLHRoaXMuc2F2ZVNhdmVkS2V5cygpfX1dKSxkfSgpO2NvbnN0IHU4dD1zOHQ7ZnVuY3Rpb24gb21lKGQpe3JldHVybihvbWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYm''@;'; put 'put ''InN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6''@;'; put 'put ''dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBhTGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9w''@;'; put 'put ''ZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlvbiBfTSgpe3JldHVybiBfTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9aDh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5''@;'; put 'put ''RGVzY3JpcHRvcih5LGgpO3JldHVybiBDLmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxfTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gaDh0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykm''@;'; put 'put ''Jm51bGwhPT0oZD1yOShkKSk7KTtyZXR1cm4gZH1mdW5jdGlvbiBhbWUoZCxnKXtyZXR1cm4oYW1lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gZzh0''@;'; put 'put ''KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09b21lKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBm''@;'; put 'put ''dW5jdGlvbiBtOHQoZCl7aWYodm9pZCAwPT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiByOShkKXtyZXR1cm4ocjk9T2JqZWN0LnNldFBy''@;'; put 'put ''b3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX16by5nZXRTaW5nbGV0b24oKS5yZWdpc3RlcigicGVyc2lzdGVudFN0YXRlU2F2ZSIpLHpvLmdldFNpbmdsZXRv''@;'; put 'put ''bigpLnJlZ2lzdGVyKCJwZXJzaXN0ZW50U3RhdGVMb2FkIiksem8uZ2V0U2luZ2xldG9uKCkucmVnaXN0ZXIoInBlcnNpc3RlbnRTdGF0ZVJlc2V0Iik7dmFyIGxMZT0icGVyc2lzdGVudFN0YXRlIix5OHQ9ZnVuY3Rpb24oZCl7IWZ1bmN0aW9uIGQ4dChkLGcpe2lmKCJmdW5jdGlvbiIhPXR5''@;'; put 'put ''cGVvZiBnJiZudWxsIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZyYmZy5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpkLHdyaXRhYmxlOiEw''@;'; put 'put ''LGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxnJiZhbWUoZCxnKX0oaCxkKTt2YXIgZz1mdW5jdGlvbiBwOHQoZCl7dmFyIGc9ZnVuY3Rpb24gdjh0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwh''@;'; put 'put ''UmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rp''@;'; put 'put ''b24oKXt9KSksITB9Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9cjkoZCk7aWYoZyl7dmFyIEM9cjkodGhpcykuY29uc3RydWN0b3I7eT1SZWZsZWN0LmNvbnN0cnVjdCh2LGFyZ3VtZW50cyxDKX1lbHNlIHk9di5hcHBseSh0aGlzLGFyZ3VtZW50cyk7''@;'; put 'put ''cmV0dXJuIGc4dCh0aGlzLHkpfX0oaCk7ZnVuY3Rpb24gaCh2KXt2YXIgeTtyZXR1cm4gZnVuY3Rpb24gYzh0KGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsaCksKHk9Zy5jYWxs''@;'; put 'put ''KHRoaXMsdikpLnN0b3JhZ2U9dm9pZCAwLHl9cmV0dXJuIGZ1bmN0aW9uIGY4dChkLGcsaCl7ZyYmYUxlKGQucHJvdG90eXBlLGcpLGgmJmFMZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pfShoLFt7a2V5OiJpc0VuYWJsZWQiLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2xMZV19fSx7a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpczt0aGlzLmVuYWJsZWR8fCh0aGlzLnN0b3JhZ2V8fCh0aGlzLnN0b3JhZ2U9bmV3IHU4dCh0aGlzLmhvdC5yb290RWxl''@;'; put 'put ''bWVudC5pZCx0aGlzLmhvdC5yb290V2luZG93KSksdGhpcy5hZGRIb29rKCJwZXJzaXN0ZW50U3RhdGVTYXZlIixmdW5jdGlvbihDLEkpe3JldHVybiB5LnNhdmVWYWx1ZShDLEkpfSksdGhpcy5hZGRIb29rKCJwZXJzaXN0ZW50U3RhdGVMb2FkIixmdW5jdGlvbihDLEkpe3JldHVybiB5Lmxv''@;'; put 'put ''YWRWYWx1ZShDLEkpfSksdGhpcy5hZGRIb29rKCJwZXJzaXN0ZW50U3RhdGVSZXNldCIsZnVuY3Rpb24oKXtyZXR1cm4geS5yZXNldFZhbHVlKCl9KSxfTShyOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5OiJkaXNhYmxlUGx1Z2luIix2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbigpe3RoaXMuc3RvcmFnZT12b2lkIDAsX00ocjkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCks''@;'; put 'put ''X00ocjkoaC5wcm90b3R5cGUpLCJ1cGRhdGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJsb2FkVmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHksQyl7Qy52YWx1ZT10aGlzLnN0b3JhZ2UubG9hZFZhbHVlKHkpfX0se2tleToic2F2ZVZhbHVlIix2YWx1ZTpmdW5jdGlvbih5LEMpe3Ro''@;'; put 'put ''aXMuc3RvcmFnZS5zYXZlVmFsdWUoeSxDKX19LHtrZXk6InJlc2V0VmFsdWUiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZvaWQgMD09PXk/dGhpcy5zdG9yYWdlLnJlc2V0QWxsKCk6dGhpcy5zdG9yYWdlLnJlc2V0KHkpfX0se2tleToiZGVzdHJveSIsdmFsdWU6ZnVuY3Rpb24oKXtfTShyOShoLnBy''@;'; put 'put ''b3RvdHlwZSksImRlc3Ryb3kiLHRoaXMpLmNhbGwodGhpcyl9fV0sW3trZXk6IlBMVUdJTl9LRVkiLGdldDpmdW5jdGlvbigpe3JldHVybiBsTGV9fSx7a2V5OiJQTFVHSU5fUFJJT1JJVFkiLGdldDpmdW5jdGlvbigpe3JldHVybiAwfX1dKSxofShZcyk7ZnVuY3Rpb24gbG1lKGQpe3JldHVy''@;'; put 'put ''bihsbWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZyl7cmV0dXJuIHR5cGVvZiBnfTpmdW5jdGlvbihnKXtyZXR1cm4gZyYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZy5jb25zdHJ1Y3Rvcj09PVN5bWJv''@;'; put 'put ''bCYmZyE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGd9KShkKX1mdW5jdGlvbiBzbWUoZCxnKXsobnVsbD09Z3x8Zz5kLmxlbmd0aCkmJihnPWQubGVuZ3RoKTtmb3IodmFyIGg9MCx2PW5ldyBBcnJheShnKTtoPGc7aCsrKXZbaF09ZFtoXTtyZXR1cm4gdn1mdW5jdGlvbiBz''@;'; put 'put ''TGUoZCxnKXtmb3IodmFyIGg9MDtoPGcubGVuZ3RoO2grKyl7dmFyIHY9Z1toXTt2LmVudW1lcmFibGU9di5lbnVtZXJhYmxlfHwhMSx2LmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gdiYmKHYud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLHYua2V5LHYpfX1mdW5jdGlv''@;'; put 'put ''biBDTSgpe3JldHVybiBDTT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QuZ2V0P1JlZmxlY3QuZ2V0LmJpbmQoKTpmdW5jdGlvbihnLGgsdil7dmFyIHk9RTh0KGcsaCk7aWYoeSl7dmFyIEM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih5LGgpO3JldHVybiBD''@;'; put 'put ''LmdldD9DLmdldC5jYWxsKGFyZ3VtZW50cy5sZW5ndGg8Mz9nOnYpOkMudmFsdWV9fSxDTS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZnVuY3Rpb24gRTh0KGQsZyl7Zm9yKDshT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZykmJm51bGwhPT0oZD1pOShkKSk7KTtyZXR1''@;'; put 'put ''cm4gZH1mdW5jdGlvbiB1bWUoZCxnKXtyZXR1cm4odW1lPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKHYseSl7cmV0dXJuIHYuX19wcm90b19fPXksdn0pKGQsZyl9ZnVuY3Rpb24gSTh0KGQsZyl7aWYoZyYmKCJvYmplY3QiPT09''@;'; put 'put ''bG1lKGcpfHwiZnVuY3Rpb24iPT10eXBlb2YgZykpcmV0dXJuIGc7aWYodm9pZCAwIT09Zyl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbiBEOHQoZCl7aWYodm9pZCAw''@;'; put 'put ''PT09ZCl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVybiBkfShkKX1mdW5jdGlvbiBpOShkKXtyZXR1cm4oaTk9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90''@;'; put 'put ''b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX12YXIgY21lPSJzZWFyY2giLEI4dD1mdW5jdGlvbihnLGgsdix5LEMpe2cuZ2V0Q2VsbE1ldGEoaCx2KS5pc1NlYXJjaFJlc3VsdD1DfSxQOHQ9ZnVuY3Rp''@;'; put 'put ''b24oZyxoLHYpe3JldHVybiEoYTEoZyl8fG51bGw9PT1nfHwhZy50b0xvY2FsZUxvd2VyQ2FzZXx8MD09PWcubGVuZ3RofHxhMShoKXx8bnVsbD09PWgpJiYtMSE9PWgudG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSh2LmxvY2FsZSkuaW5kZXhPZihnLnRvTG9jYWxlTG93ZXJDYXNlKHYu''@;'; put 'put ''bG9jYWxlKSl9LEY4dD1mdW5jdGlvbihkKXshZnVuY3Rpb24geDh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9''@;'; put 'put ''T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnVtZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9u''@;'; put 'put ''IFQ4dChkKXt2YXIgZz1mdW5jdGlvbiBMOHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29s''@;'; put 'put ''ZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1pOShkKTtpZihnKXt2YXIgQz1pOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJl''@;'; put 'put ''ZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gSTh0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBTOHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlw''@;'; put 'put ''ZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuY2FsbGJhY2s9Qjh0LHkucXVlcnlNZXRob2Q9UDh0LHkuc2VhcmNoUmVzdWx0Q2xhc3M9Imh0U2VhcmNoUmVzdWx0Iix5fXJldHVybiBmdW5jdGlvbiBNOHQoZCxn''@;'; put 'put ''LGgpe2cmJnNMZShkLnByb3RvdHlwZSxnKSxoJiZzTGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhvdC5nZXRTZXR0aW5ncygpW2NtZV19fSx7''@;'; put 'put ''a2V5OiJlbmFibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcztpZighdGhpcy5lbmFibGVkKXt2YXIgQz10aGlzLmhvdC5nZXRTZXR0aW5ncygpW2NtZV07dGhpcy51cGRhdGVQbHVnaW5TZXR0aW5ncyhDKSx0aGlzLmFkZEhvb2soImJlZm9yZVJlbmRlcmVyIixmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB5Lm9uQmVmb3JlUmVuZGVyZXIuYXBwbHkoeSxhcmd1bWVudHMpfSksQ00oaTkoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fX0se2tleToiZGlzYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4geS5vbkJlZm9yZVJlbmRlcmVyLmFwcGx5KHksYXJndW1lbnRzKX07dGhpcy5ob3QuYWRkSG9vaygiYmVmb3JlUmVuZGVyZXIiLEMpLHRoaXMuaG90LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGZ1bmN0aW9uKCl7eS5ob3QucmVtb3ZlSG9vaygiYmVmb3JlUmVuZGVy''@;'; put 'put ''ZXIiLEMpfSksQ00oaTkoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuZGlzYWJsZVBsdWdpbigpLHRoaXMuZW5hYmxlUGx1Z2luKCksQ00oaTkoaC5wcm90b3R5cGUpLCJ1cGRh''@;'; put 'put ''dGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJxdWVyeSIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcyxJPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLmdldENhbGxiYWNrKCksWj1hcmd1bWVudHMubGVuZ3Ro''@;'; put 'put ''PjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06dGhpcy5nZXRRdWVyeU1ldGhvZCgpLHVlPXRoaXMuaG90LmNvdW50Um93cygpLF9lPXRoaXMuaG90LmNvdW50Q29scygpLEJlPVtdLE5lPXRoaXMuaG90O3JldHVybiBpYSgwLHVlLTEsZnVuY3Rpb24oS2Upe2lhKDAsX2Ut''@;'; put 'put ''MSxmdW5jdGlvbihwdCl7dmFyIE90PUMuaG90LmdldERhdGFBdENlbGwoS2UscHQpLCR0PUMuaG90LmdldENlbGxNZXRhKEtlLHB0KSxmbj0kdC5zZWFyY2guY2FsbGJhY2t8fEksaXI9KCR0LnNlYXJjaC5xdWVyeU1ldGhvZHx8WikoeSxPdCwkdCk7aXImJkJlLnB1c2goe3JvdzpLZSxjb2w6''@;'; put 'put ''cHQsZGF0YTpPdH0pLGZuJiZmbihOZSxLZSxwdCxPdCxpcil9KX0pLEJlfX0se2tleToiZ2V0Q2FsbGJhY2siLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2FsbGJhY2t9fSx7a2V5OiJzZXRDYWxsYmFjayIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5jYWxsYmFjaz15fX0se2tleToi''@;'; put 'put ''Z2V0UXVlcnlNZXRob2QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucXVlcnlNZXRob2R9fSx7a2V5OiJzZXRRdWVyeU1ldGhvZCIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5xdWVyeU1ldGhvZD15fX0se2tleToiZ2V0U2VhcmNoUmVzdWx0Q2xhc3MiLHZhbHVlOmZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3N9fSx7a2V5OiJzZXRTZWFyY2hSZXN1bHRDbGFzcyIsdmFsdWU6ZnVuY3Rpb24oeSl7dGhpcy5zZWFyY2hSZXN1bHRDbGFzcz15fX0se2tleToidXBkYXRlUGx1Z2luU2V0dGluZ3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3hsKHkpJiYoeS5zZWFy''@;'; put 'put ''Y2hSZXN1bHRDbGFzcyYmdGhpcy5zZXRTZWFyY2hSZXN1bHRDbGFzcyh5LnNlYXJjaFJlc3VsdENsYXNzKSx5LnF1ZXJ5TWV0aG9kJiZ0aGlzLnNldFF1ZXJ5TWV0aG9kKHkucXVlcnlNZXRob2QpLHkuY2FsbGJhY2smJnRoaXMuc2V0Q2FsbGJhY2soeS5jYWxsYmFjaykpfX0se2tleToib25C''@;'; put 'put ''ZWZvcmVSZW5kZXJlciIsdmFsdWU6ZnVuY3Rpb24oeSxDLEksWix1ZSxfZSl7dmFyIEtlLEJlPV9lLmNsYXNzTmFtZXx8W10sTmU9W107InN0cmluZyI9PXR5cGVvZiBCZT9OZT1CZS5zcGxpdCgiICIpOihLZT1OZSkucHVzaC5hcHBseShLZSxmdW5jdGlvbiB3OHQoZCl7cmV0dXJuIGZ1bmN0''@;'; put 'put ''aW9uIGs4dChkKXtpZihBcnJheS5pc0FycmF5KGQpKXJldHVybiBzbWUoZCl9KGQpfHxmdW5jdGlvbiBDOHQoZCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPWRbU3ltYm9sLml0ZXJhdG9yXXx8bnVsbCE9ZFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGQp''@;'; put 'put ''fShkKXx8ZnVuY3Rpb24gXzh0KGQsZyl7aWYoZCl7aWYoInN0cmluZyI9PXR5cGVvZiBkKXJldHVybiBzbWUoZCxnKTt2YXIgaD1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1oJiZkLmNvbnN0cnVjdG9yJiYoaD1kLmNvbnN0cnVj''@;'; put 'put ''dG9yLm5hbWUpLCJNYXAiPT09aHx8IlNldCI9PT1oKXJldHVybiBBcnJheS5mcm9tKGQpO2lmKCJBcmd1bWVudHMiPT09aHx8L14oPzpVaXxJKW50KD86OHwxNnwzMikoPzpDbGFtcGVkKT9BcnJheSQvLnRlc3QoaCkpcmV0dXJuIHNtZShkLGcpfX0oZCl8fGZ1bmN0aW9uIGI4dCgpe3Rocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRlcmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfShCZSkpLHRoaXMu''@;'; put 'put ''aXNFbmFibGVkKCkmJl9lLmlzU2VhcmNoUmVzdWx0P05lLmluY2x1ZGVzKHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3MpfHxOZS5wdXNoKCIiLmNvbmNhdCh0aGlzLnNlYXJjaFJlc3VsdENsYXNzKSk6TmUuaW5jbHVkZXModGhpcy5zZWFyY2hSZXN1bHRDbGFzcykmJk5lLnNwbGljZShOZS5pbmRl''@;'; put 'put ''eE9mKHRoaXMuc2VhcmNoUmVzdWx0Q2xhc3MpLDEpLF9lLmNsYXNzTmFtZT1OZS5qb2luKCIgIil9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe0NNKGk5KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIGNtZX19LHtrZXk6IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDE5MH19XSksaH0oWXMpO2Z1bmN0aW9uIGZtZShkKXtyZXR1cm4oZm1lPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJh''@;'; put 'put ''dG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gdUxlKGQs''@;'; put 'put ''Zyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZlIo''@;'; put 'put ''KXtyZXR1cm4gZlI9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PVY4dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/''@;'; put 'put ''Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sZlIuYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIFY4dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZudWxsIT09KGQ9WHcoZCkpOyk7cmV0dXJuIGR9''@;'; put 'put ''ZnVuY3Rpb24gaG1lKGQsZyl7cmV0dXJuKGhtZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIHo4dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWZtZShn''@;'; put 'put ''KXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gRzh0KGQpe2lmKHZvaWQgMD09PWQp''@;'; put 'put ''dGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gWHcoZCl7cmV0dXJuKFh3PU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBl''@;'; put 'put ''T2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFE4dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gajh0KGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; put 'put ''IlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9w''@;'; put 'put ''ZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJmhtZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIFo4dChkKXt2YXIgZz1mdW5jdGlvbiBXOHQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxlY3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Qu''@;'; put 'put ''c2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxmdW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0''@;'; put 'put ''dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1YdyhkKTtpZihnKXt2YXIgQz1Ydyh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gejh0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYp''@;'; put 'put ''e3ZhciB5O3JldHVybiBmdW5jdGlvbiBIOHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1nLmNhbGwodGhpcyx2KSkuc2Nyb2xsYmFycz1bXSx5LmNsb25lcz1bXSx5''@;'; put 'put ''LmxvY2tlZENvbGxlY3Rpb249ITEseS5mcmVlemVPdmVybGF5cz0hMSx5fXJldHVybiBmdW5jdGlvbiBOOHQoZCxnLGgpe2cmJnVMZShkLnByb3RvdHlwZSxnKSxoJiZ1TGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToi''@;'; put 'put ''aXNFbmFibGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBXaGUoKX19LHtrZXk6ImVuYWJsZVBsdWdpbiIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzO3RoaXMuZW5hYmxlZHx8KHRoaXMuYWRkSG9vaygiYWZ0ZXJWaWV3UmVuZGVyIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQWZ0ZXJW''@;'; put 'put ''aWV3UmVuZGVyKCl9KSx0aGlzLnJlZ2lzdGVyRXZlbnRzKCksZlIoWHcoaC5wcm90b3R5cGUpLCJlbmFibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcykpfX0se2tleToidXBkYXRlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMubG9ja2VkQ29sbGVjdGlvbj0hMSxmUihYdyhoLnByb3Rv''@;'; put 'put ''dHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7ZlIoWHcoaC5wcm90b3R5cGUpLCJkaXNhYmxlUGx1Z2luIix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToicmVnaXN0ZXJFdmVudHMiLHZhbHVlOmZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIHk9dGhpczt0aGlzLmFkZEhvb2soImJlZm9yZVRvdWNoU2Nyb2xsIixmdW5jdGlvbigpe3JldHVybiB5Lm9uQmVmb3JlVG91Y2hTY3JvbGwoKX0pLHRoaXMuYWRkSG9vaygiYWZ0ZXJNb21lbnR1bVNjcm9sbCIsZnVuY3Rpb24oKXtyZXR1cm4geS5vbkFmdGVyTW9tZW50dW1T''@;'; put 'put ''Y3JvbGwoKX0pfX0se2tleToib25BZnRlclZpZXdSZW5kZXIiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMubG9ja2VkQ29sbGVjdGlvbil7dmFyIHk9dGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cyxDPXkudG9wT3ZlcmxheSxJPXkuYm90dG9tT3ZlcmxheSxaPXkuaW5saW5lU3RhcnRP''@;'; put 'put ''dmVybGF5LHVlPXkudG9wSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5LF9lPXkuYm90dG9tSW5saW5lU3RhcnRDb3JuZXJPdmVybGF5O3RoaXMubG9ja2VkQ29sbGVjdGlvbj0hMCx0aGlzLnNjcm9sbGJhcnMubGVuZ3RoPTAsdGhpcy5zY3JvbGxiYXJzLnB1c2goQyksSS5jbG9uZSYmdGhpcy5z''@;'; put 'put ''Y3JvbGxiYXJzLnB1c2goSSksdGhpcy5zY3JvbGxiYXJzLnB1c2goWiksdWUmJnRoaXMuc2Nyb2xsYmFycy5wdXNoKHVlKSxfZSYmX2UuY2xvbmUmJnRoaXMuc2Nyb2xsYmFycy5wdXNoKF9lKSx0aGlzLmNsb25lcz1bXSxDLm5lZWRGdWxsUmVuZGVyJiZ0aGlzLmNsb25lcy5wdXNoKEMuY2xv''@;'; put 'put ''bmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSksSS5uZWVkRnVsbFJlbmRlciYmdGhpcy5jbG9uZXMucHVzaChJLmNsb25lLnd0VGFibGUuaG9sZGVyLnBhcmVudE5vZGUpLFoubmVlZEZ1bGxSZW5kZXImJnRoaXMuY2xvbmVzLnB1c2goWi5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnRO''@;'; put 'put ''b2RlKSx1ZSYmdGhpcy5jbG9uZXMucHVzaCh1ZS5jbG9uZS53dFRhYmxlLmhvbGRlci5wYXJlbnROb2RlKSxfZSYmX2UuY2xvbmUmJnRoaXMuY2xvbmVzLnB1c2goX2UuY2xvbmUud3RUYWJsZS5ob2xkZXIucGFyZW50Tm9kZSl9fX0se2tleToib25CZWZvcmVUb3VjaFNjcm9sbCIsdmFsdWU6''@;'; put 'put ''ZnVuY3Rpb24oKXt0aGlzLmZyZWV6ZU92ZXJsYXlzPSEwLFVyKHRoaXMuY2xvbmVzLGZ1bmN0aW9uKHkpe08wKHksImhpZGUtdHdlZW4iKX0pfX0se2tleToib25BZnRlck1vbWVudHVtU2Nyb2xsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5mcmVlemVPdmVybGF5cz0hMSxV''@;'; put 'put ''cih0aGlzLmNsb25lcyxmdW5jdGlvbihDKXtwbChDLCJoaWRlLXR3ZWVuIiksTzAoQywic2hvdy10d2VlbiIpfSksdGhpcy5ob3QuX3JlZ2lzdGVyVGltZW91dChmdW5jdGlvbigpe1VyKHkuY2xvbmVzLGZ1bmN0aW9uKEMpe3BsKEMsInNob3ctdHdlZW4iKX0pfSw0MDApLFVyKHRoaXMuc2Ny''@;'; put 'put ''b2xsYmFycyxmdW5jdGlvbihDKXtDLnJlZnJlc2goKSxDLnJlc2V0Rml4ZWRQb3NpdGlvbigpfSksdGhpcy5ob3Qudmlldy5fd3Qud3RPdmVybGF5cy5zeW5jU2Nyb2xsV2l0aE1hc3RlcigpfX1dLFt7a2V5OiJQTFVHSU5fS0VZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4idG91Y2hTY3JvbGwi''@;'; put 'put ''fX0se2tleToiUExVR0lOX1BSSU9SSVRZIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMjAwfX0se2tleToiU0VUVElOR19LRVlTIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19XSksaH0oWXMpO2Z1bmN0aW9uIGRtZShkKXtyZXR1cm4oZG1lPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJz''@;'; put 'put ''eW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBlb2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5''@;'; put 'put ''cGVvZiBnfSkoZCl9ZnVuY3Rpb24gY0xlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoZCx2LmtleSx2KX19ZnVuY3Rpb24ga00oKXtyZXR1cm4ga009InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldC5iaW5kKCk6ZnVuY3Rpb24oZyxoLHYpe3ZhciB5PUs4dChnLGgpO2lmKHkpe3ZhciBDPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURl''@;'; put 'put ''c2NyaXB0b3IoeSxoKTtyZXR1cm4gQy5nZXQ/Qy5nZXQuY2FsbChhcmd1bWVudHMubGVuZ3RoPDM/Zzp2KTpDLnZhbHVlfX0sa00uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIEs4dChkLGcpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkLGcpJiZu''@;'; put 'put ''dWxsIT09KGQ9bzkoZCkpOyk7cmV0dXJuIGR9ZnVuY3Rpb24gcG1lKGQsZyl7cmV0dXJuKHBtZT1PYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKTpmdW5jdGlvbih2LHkpe3JldHVybiB2Ll9fcHJvdG9fXz15LHZ9KShkLGcpfWZ1bmN0aW9uIGU1dChk''@;'; put 'put ''LGcpe2lmKGcmJigib2JqZWN0Ij09PWRtZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWQiKTtyZXR1cm4gZnVu''@;'; put 'put ''Y3Rpb24gdDV0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gbzkoZCl7cmV0dXJuKG85PU9iamVjdC5zZXRQcm90''@;'; put 'put ''b3R5cGVPZj9PYmplY3QuZ2V0UHJvdG90eXBlT2YuYmluZCgpOmZ1bmN0aW9uKGgpe3JldHVybiBoLl9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKGgpfSkoZCl9dmFyIFBuZT0idHJpbVJvd3MiLGk1dD1mdW5jdGlvbihkKXshZnVuY3Rpb24gJDh0KGQsZyl7aWYoImZ1bmN0aW9u''@;'; put 'put ''IiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFi''@;'; put 'put ''bGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJnBtZShkLGcpfShoLGQpO3ZhciBnPWZ1bmN0aW9uIHE4dChkKXt2YXIgZz1mdW5jdGlvbiBuNXQoKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFJlZmxl''@;'; put 'put ''Y3R8fCFSZWZsZWN0LmNvbnN0cnVjdHx8UmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSxm''@;'; put 'put ''dW5jdGlvbigpe30pKSwhMH1jYXRjaChkKXtyZXR1cm4hMX19KCk7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHksdj1vOShkKTtpZihnKXt2YXIgQz1vOSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1l''@;'; put 'put ''bnRzKTtyZXR1cm4gZTV0KHRoaXMseSl9fShoKTtmdW5jdGlvbiBoKHYpe3ZhciB5O3JldHVybiBmdW5jdGlvbiBKOHQoZCxnKXtpZighKGQgaW5zdGFuY2VvZiBnKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxoKSwoeT1n''@;'; put 'put ''LmNhbGwodGhpcyx2KSkudHJpbW1lZFJvd3NNYXA9bnVsbCx5fXJldHVybiBmdW5jdGlvbiBYOHQoZCxnLGgpe2cmJmNMZShkLnByb3RvdHlwZSxnKSxoJiZjTGUoZCxoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KX0oaCxbe2tleToiaXNFbmFi''@;'; put 'put ''bGVkIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiEhdGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQbmVdfX0se2tleToiZW5hYmxlUGx1Z2luIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB5PXRoaXM7dGhpcy5lbmFibGVkfHwodGhpcy50cmltbWVkUm93c01hcD10aGlzLmhvdC5yb3dJbmRleE1hcHBl''@;'; put 'put ''ci5yZWdpc3Rlck1hcCgidHJpbVJvd3MiLG5ldyBueiksdGhpcy50cmltbWVkUm93c01hcC5hZGRMb2NhbEhvb2soImluaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIHkub25NYXBJbml0KCl9KSxrTShvOShoLnByb3RvdHlwZSksImVuYWJsZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKSl9fSx7a2V5''@;'; put 'put ''OiJ1cGRhdGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHk9dGhpcyxDPXRoaXMuaG90LmdldFNldHRpbmdzKClbUG5lXTtBcnJheS5pc0FycmF5KEMpJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe3kudHJpbW1lZFJvd3NNYXAuY2xlYXIoKSxVcihDLGZ1bmN0aW9u''@;'; put 'put ''KEkpe3kudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KEksITApfSl9LCEwKSxrTShvOShoLnByb3RvdHlwZSksInVwZGF0ZVBsdWdpbiIsdGhpcykuY2FsbCh0aGlzKX19LHtrZXk6ImRpc2FibGVQbHVnaW4iLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5ob3Qucm93SW5kZXhNYXBwZXIu''@;'; put 'put ''dW5yZWdpc3Rlck1hcCgidHJpbVJvd3MiKSxrTShvOShoLnByb3RvdHlwZSksImRpc2FibGVQbHVnaW4iLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJnZXRUcmltbWVkUm93cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmltbWVkUm93c01hcC5nZXRUcmltbWVkSW5kZXhlcygp''@;'; put 'put ''fX0se2tleToidHJpbVJvd3MiLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMsST10aGlzLmdldFRyaW1tZWRSb3dzKCksWj10aGlzLmlzVmFsaWRDb25maWcoeSksdWU9STtaJiYodWU9QXJyYXkuZnJvbShuZXcgU2V0KEkuY29uY2F0KHkpKSkpLCExIT09dGhpcy5ob3QucnVuSG9va3Mo''@;'; put 'put ''ImJlZm9yZVRyaW1Sb3ciLEksdWUsWikmJihaJiZ0aGlzLmhvdC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe1VyKHksZnVuY3Rpb24oQmUpe0MudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVBdEluZGV4KEJlLCEwKX0pfSwhMCksdGhpcy5ob3QucnVuSG9va3MoImFmdGVyVHJpbVJvdyIsSSx1''@;'; put 'put ''ZSxaLFomJnVlLmxlbmd0aD5JLmxlbmd0aCkpfX0se2tleToidHJpbVJvdyIsdmFsdWU6ZnVuY3Rpb24oKXtmb3IodmFyIHk9YXJndW1lbnRzLmxlbmd0aCxDPW5ldyBBcnJheSh5KSxJPTA7STx5O0krKylDW0ldPWFyZ3VtZW50c1tJXTt0aGlzLnRyaW1Sb3dzKEMpfX0se2tleToidW50cmlt''@;'; put 'put ''Um93cyIsdmFsdWU6ZnVuY3Rpb24oeSl7dmFyIEM9dGhpcy5nZXRUcmltbWVkUm93cygpLEk9dGhpcy5pc1ZhbGlkQ29uZmlnKHkpLFo9Qyx1ZT10aGlzLnRyaW1tZWRSb3dzTWFwLmdldFZhbHVlcygpLnNsaWNlKCksX2U9eS5sZW5ndGg+MDtJJiZfZSYmKFVyKHksZnVuY3Rpb24oTmUpe3Vl''@;'; put 'put ''W05lXT0hMX0pLFo9U3UodWUsZnVuY3Rpb24oTmUsS2UscHQpe3JldHVybiBLZSYmTmUucHVzaChwdCksTmV9LFtdKSksITEhPT10aGlzLmhvdC5ydW5Ib29rcygiYmVmb3JlVW50cmltUm93IixDLFosSSYmX2UpJiYoSSYmX2UmJnRoaXMudHJpbW1lZFJvd3NNYXAuc2V0VmFsdWVzKHVlKSx0''@;'; put 'put ''aGlzLmhvdC5ydW5Ib29rcygiYWZ0ZXJVbnRyaW1Sb3ciLEMsWixJJiZfZSxJJiZaLmxlbmd0aDxDLmxlbmd0aCkpfX0se2tleToidW50cmltUm93Iix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgeT1hcmd1bWVudHMubGVuZ3RoLEM9bmV3IEFycmF5KHkpLEk9MDtJPHk7SSsrKUNbSV09YXJn''@;'; put 'put ''dW1lbnRzW0ldO3RoaXMudW50cmltUm93cyhDKX19LHtrZXk6ImlzVHJpbW1lZCIsdmFsdWU6ZnVuY3Rpb24oeSl7cmV0dXJuIHRoaXMudHJpbW1lZFJvd3NNYXAuZ2V0VmFsdWVBdEluZGV4KHkpfHwhMX19LHtrZXk6InVudHJpbUFsbCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnVudHJpbVJv''@;'; put 'put ''d3ModGhpcy5nZXRUcmltbWVkUm93cygpKX19LHtrZXk6ImlzVmFsaWRDb25maWciLHZhbHVlOmZ1bmN0aW9uKHkpe3ZhciBDPXRoaXMuaG90LmNvdW50U291cmNlUm93cygpO3JldHVybiB5LmV2ZXJ5KGZ1bmN0aW9uKEkpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKEkpJiZJPj0wJiZJPEN9''@;'; put 'put ''KX19LHtrZXk6Im9uTWFwSW5pdCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgeT10aGlzLEM9dGhpcy5ob3QuZ2V0U2V0dGluZ3MoKVtQbmVdO0FycmF5LmlzQXJyYXkoQykmJnRoaXMuaG90LmJhdGNoRXhlY3V0aW9uKGZ1bmN0aW9uKCl7VXIoQyxmdW5jdGlvbihJKXt5LnRyaW1tZWRSb3dzTWFw''@;'; put 'put ''LnNldFZhbHVlQXRJbmRleChJLCEwKX0pfSwhMCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe2tNKG85KGgucHJvdG90eXBlKSwiZGVzdHJveSIsdGhpcykuY2FsbCh0aGlzKX19XSxbe2tleToiUExVR0lOX0tFWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFBuZX19LHtrZXk6''@;'; put 'put ''IlBMVUdJTl9QUklPUklUWSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDMzMH19XSksaH0oWXMpO2Z1bmN0aW9uIGdtZShkKXtyZXR1cm4oZ21lPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGcpe3JldHVybiB0eXBl''@;'; put 'put ''b2YgZ306ZnVuY3Rpb24oZyl7cmV0dXJuIGcmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmcuY29uc3RydWN0b3I9PT1TeW1ib2wmJmchPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBnfSkoZCl9ZnVuY3Rpb24gZkxlKGQsZyl7aWYoIShkIGluc3RhbmNlb2YgZykpdGhy''@;'; put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gaExlKGQsZyl7Zm9yKHZhciBoPTA7aDxnLmxlbmd0aDtoKyspe3ZhciB2PWdbaF07di5lbnVtZXJhYmxlPXYuZW51bWVyYWJsZXx8ITEsdi5jb25maWd1cmFibGU9ITAsInZhbHVl''@;'; put 'put ''ImluIHYmJih2LndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZCx2LmtleSx2KX19ZnVuY3Rpb24gZExlKGQsZyxoKXtyZXR1cm4gZyYmaExlKGQucHJvdG90eXBlLGcpLGgmJmhMZShkLGgpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZToh''@;'; put 'put ''MX0pLGR9ZnVuY3Rpb24gcExlKGQsZyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGcmJm51bGwhPT1nKXRocm93IG5ldyBUeXBlRXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9uIik7ZC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShnJiZnLnBy''@;'; put 'put ''b3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmQsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pLGcmJm1tZShkLGcpfWZ1bmN0aW9uIG1tZShkLGcpe3JldHVybihtbWU9T2JqZWN0LnNldFBy''@;'; put 'put ''b3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24odix5KXtyZXR1cm4gdi5fX3Byb3RvX189eSx2fSkoZCxnKX1mdW5jdGlvbiBnTGUoZCl7dmFyIGc9ZnVuY3Rpb24gbDV0KCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25z''@;'; put 'put ''dHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9''@;'; put 'put ''Y2F0Y2goZCl7cmV0dXJuITF9fSgpO3JldHVybiBmdW5jdGlvbigpe3ZhciB5LHY9Rm5lKGQpO2lmKGcpe3ZhciBDPUZuZSh0aGlzKS5jb25zdHJ1Y3Rvcjt5PVJlZmxlY3QuY29uc3RydWN0KHYsYXJndW1lbnRzLEMpfWVsc2UgeT12LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbzV0''@;'; put 'put ''KHRoaXMseSl9fWZ1bmN0aW9uIG81dChkLGcpe2lmKGcmJigib2JqZWN0Ij09PWdtZShnKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGcpKXJldHVybiBnO2lmKHZvaWQgMCE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcigiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBv''@;'; put 'put ''ciB1bmRlZmluZWQiKTtyZXR1cm4gZnVuY3Rpb24gYTV0KGQpe2lmKHZvaWQgMD09PWQpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4gZH0oZCl9ZnVuY3Rpb24gRm5lKGQp''@;'; put 'put ''e3JldHVybihGbmU9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5nZXRQcm90b3R5cGVPZi5iaW5kKCk6ZnVuY3Rpb24oaCl7cmV0dXJuIGguX19wcm90b19ffHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoaCl9KShkKX1mdW5jdGlvbiBtTGUoZCxnKXtyZXR1cm4gZnVuY3Rpb24gcDV0KGQp''@;'; put 'put ''e2lmKEFycmF5LmlzQXJyYXkoZCkpcmV0dXJuIGR9KGQpfHxmdW5jdGlvbiBkNXQoZCxnKXt2YXIgaD1udWxsPT1kP251bGw6InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJmRbU3ltYm9sLml0ZXJhdG9yXXx8ZFsiQEBpdGVyYXRvciJdO2lmKG51bGwhPWgpe3ZhciBJLFosdj1bXSx5PSEw''@;'; put 'put ''LEM9ITE7dHJ5e2ZvcihoPWguY2FsbChkKTshKHk9KEk9aC5uZXh0KCkpLmRvbmUpJiYodi5wdXNoKEkudmFsdWUpLCFnfHx2Lmxlbmd0aCE9PWcpO3k9ITApO31jYXRjaCh1ZSl7Qz0hMCxaPXVlfWZpbmFsbHl7dHJ5eyF5JiZudWxsIT1oLnJldHVybiYmaC5yZXR1cm4oKX1maW5hbGx5e2lm''@;'; put 'put ''KEMpdGhyb3cgWn19cmV0dXJuIHZ9fShkLGcpfHx2TGUoZCxnKXx8ZnVuY3Rpb24gaDV0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkg''@;'; put 'put ''b2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX0oKX1mdW5jdGlvbiB2TGUoZCxnKXtpZihkKXtpZigic3RyaW5nIj09dHlwZW9mIGQpcmV0dXJuIHZtZShkLGcpO3ZhciBoPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChkKS5zbGljZSg4LC0x''@;'; put 'put ''KTtpZigiT2JqZWN0Ij09PWgmJmQuY29uc3RydWN0b3ImJihoPWQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1ofHwiU2V0Ij09PWgpcmV0dXJuIEFycmF5LmZyb20oZCk7aWYoIkFyZ3VtZW50cyI9PT1ofHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVz''@;'; put 'put ''dChoKSlyZXR1cm4gdm1lKGQsZyl9fWZ1bmN0aW9uIHZtZShkLGcpeyhudWxsPT1nfHxnPmQubGVuZ3RoKSYmKGc9ZC5sZW5ndGgpO2Zvcih2YXIgaD0wLHY9bmV3IEFycmF5KGcpO2g8ZztoKyspdltoXT1kW2hdO3JldHVybiB2fWZ1bmN0aW9uIFZvKGQpe3ZhciBnPXRoaXM7dGhpcy5pbnN0''@;'; put 'put ''YW5jZT1kLHRoaXMuZG9uZUFjdGlvbnM9W10sdGhpcy51bmRvbmVBY3Rpb25zPVtdLHRoaXMuaWdub3JlTmV3QWN0aW9ucz0hMSx0aGlzLmVuYWJsZWQ9ITEsZC5hZGRIb29rKCJhZnRlckNoYW5nZSIsZnVuY3Rpb24oaCx2KXt2YXIgeT10aGlzLEM9aCYmaC5sZW5ndGg7QyYmaC5maW5kKGZ1''@;'; put 'put ''bmN0aW9uKHVlKXt2YXIgX2U9bUxlKHVlLDQpO3JldHVybiBfZVsyXSE9PV9lWzNdfSkmJmcuZG9uZShmdW5jdGlvbigpe3ZhciBfZT1oLnJlZHVjZShmdW5jdGlvbihOZSxLZSl7cmV0dXJuIE5lLnB1c2goZnVuY3Rpb24gczV0KGQpe3JldHVybiBmdW5jdGlvbiBmNXQoZCl7aWYoQXJyYXku''@;'; put 'put ''aXNBcnJheShkKSlyZXR1cm4gdm1lKGQpfShkKXx8ZnVuY3Rpb24gYzV0KGQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1kW1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPWRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbShkKX0oZCl8fHZMZShkKXx8ZnVuY3Rp''@;'; put 'put ''b24gdTV0KCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9''@;'; put 'put ''KCl9KEtlKSksTmV9LFtdKTtVcihfZSxmdW5jdGlvbihOZSl7TmVbMV09ZC5wcm9wVG9Db2woTmVbMV0pfSk7dmFyIEJlPUM+MT95LmdldFNlbGVjdGVkKCk6W1tfZVswXVswXSxfZVswXVsxXV1dO3JldHVybiBuZXcgVm8uQ2hhbmdlQWN0aW9uKF9lLEJlKX0sdil9KSxkLmFkZEhvb2soImFm''@;'; put 'put ''dGVyQ3JlYXRlUm93IixmdW5jdGlvbihoLHYseSl7Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWby5DcmVhdGVSb3dBY3Rpb24oaCx2KX0seSl9KSxkLmFkZEhvb2soImJlZm9yZVJlbW92ZVJvdyIsZnVuY3Rpb24oaCx2LHksQyl7Zy5kb25lKGZ1bmN0aW9uKCl7dmFyIHVlPWcuaW5z''@;'; put 'put ''dGFuY2UuZ2V0U291cmNlRGF0YUFycmF5KCksX2U9KHVlLmxlbmd0aCtoKSV1ZS5sZW5ndGgsQmU9ZC50b1BoeXNpY2FsUm93KF9lKSxOZT1naCh1ZS5zbGljZShCZSxCZSt2KSk7cmV0dXJuIG5ldyBWby5SZW1vdmVSb3dBY3Rpb24oX2UsTmUsZC5nZXRTZXR0aW5ncygpLmZpeGVkUm93c0Jv''@;'; put 'put ''dHRvbSxkLmdldFNldHRpbmdzKCkuZml4ZWRSb3dzVG9wKX0sQyl9KSxkLmFkZEhvb2soImFmdGVyQ3JlYXRlQ29sIixmdW5jdGlvbihoLHYseSl7Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWby5DcmVhdGVDb2x1bW5BY3Rpb24oaCx2KX0seSl9KSxkLmFkZEhvb2soImJlZm9yZVJl''@;'; put 'put ''bW92ZUNvbCIsZnVuY3Rpb24oaCx2LHksQyl7Zy5kb25lKGZ1bmN0aW9uKCl7dmFyIHVlPWcuaW5zdGFuY2UuZ2V0U291cmNlRGF0YUFycmF5KCksX2U9KGcuaW5zdGFuY2UuY291bnRDb2xzKCkraCklZy5pbnN0YW5jZS5jb3VudENvbHMoKSxCZT1bXSxOZT1bXSxLZT1bXTtpYSh1ZS5sZW5n''@;'; put 'put ''dGgtMSxmdW5jdGlvbigkdCl7dmFyIGZuPVtdLExuPXVlWyR0XTtpYShfZSxfZSsodi0xKSxmdW5jdGlvbihpcil7Zm4ucHVzaChMbltkLnRvUGh5c2ljYWxDb2x1bW4oaXIpXSl9KSxCZS5wdXNoKGZuKX0pLGlhKHYtMSxmdW5jdGlvbigkdCl7S2UucHVzaChkLnRvUGh5c2ljYWxDb2x1bW4o''@;'; put 'put ''X2UrJHQpKX0pLEFycmF5LmlzQXJyYXkoZC5nZXRTZXR0aW5ncygpLmNvbEhlYWRlcnMpJiZpYSh2LTEsZnVuY3Rpb24oJHQpe05lLnB1c2goZC5nZXRTZXR0aW5ncygpLmNvbEhlYWRlcnNbZC50b1BoeXNpY2FsQ29sdW1uKF9lKyR0KV18fG51bGwpfSk7dmFyIHB0PWQuY29sdW1uSW5kZXhN''@;'; put 'put ''YXBwZXIuZ2V0SW5kZXhlc1NlcXVlbmNlKCksT3Q9ZC5yb3dJbmRleE1hcHBlci5nZXRJbmRleGVzU2VxdWVuY2UoKTtyZXR1cm4gbmV3IFZvLlJlbW92ZUNvbHVtbkFjdGlvbihfZSxLZSxCZSxOZSxwdCxPdCxkLmdldFNldHRpbmdzKCkuZml4ZWRDb2x1bW5zU3RhcnQpfSxDKX0pLGQuYWRk''@;'; put 'put ''SG9vaygiYmVmb3JlQ2VsbEFsaWdubWVudCIsZnVuY3Rpb24oaCx2LHksQyl7Zy5kb25lKGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBWby5DZWxsQWxpZ25tZW50QWN0aW9uKGgsdix5LEMpfSl9KSxkLmFkZEhvb2soImJlZm9yZUZpbHRlciIsZnVuY3Rpb24oaCl7Zy5kb25lKGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIG5ldyBWby5GaWx0ZXJzQWN0aW9uKGgpfSl9KSxkLmFkZEhvb2soImJlZm9yZVJvd01vdmUiLGZ1bmN0aW9uKGgsdil7ITEhPT1oJiZnLmRvbmUoZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZvLlJvd01vdmVBY3Rpb24oaCx2KX0pfSksZC5hZGRIb29rKCJiZWZvcmVNZXJnZUNlbGxz''@;'; put 'put ''IixmdW5jdGlvbihoLHYpe3Z8fGcuZG9uZShmdW5jdGlvbigpe3JldHVybiBuZXcgVm8uTWVyZ2VDZWxsc0FjdGlvbihkLGgpfSl9KSxkLmFkZEhvb2soImFmdGVyVW5tZXJnZUNlbGxzIixmdW5jdGlvbihoLHYpe3Z8fGcuZG9uZShmdW5jdGlvbigpe3JldHVybiBuZXcgVm8uVW5tZXJnZUNl''@;'; put 'put ''bGxzQWN0aW9uKGQsaCl9KX0pLGQuYWRkSG9vaygiYWZ0ZXJJbml0IixmdW5jdGlvbigpe2cuaW5pdCgpfSl9Vm8ucHJvdG90eXBlLmRvbmU9ZnVuY3Rpb24oZCxnKXtpZighdGhpcy5pZ25vcmVOZXdBY3Rpb25zJiYiVW5kb1JlZG8udW5kbyIhPT1nJiYiVW5kb1JlZG8ucmVkbyIhPT1nJiYi''@;'; put 'put ''YXV0byIhPT1nKXt2YXIgdj10aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCk7aWYoITEhPT10aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLHYsZykpe3ZhciBDPWQoKSxJPXRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuZG9uZUFjdGlvbnMucHVzaChD''@;'; put 'put ''KSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclVuZG9TdGFja0NoYW5nZSIsdix0aGlzLmRvbmVBY3Rpb25zLnNsaWNlKCkpLHRoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVJlZG9TdGFja0NoYW5nZSIsSSksdGhpcy51bmRvbmVBY3Rpb25zLmxlbmd0aD0wLHRoaXMuaW5zdGFu''@;'; put 'put ''Y2UucnVuSG9va3MoImFmdGVyUmVkb1N0YWNrQ2hhbmdlIixJLHRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpKX19fSxWby5wcm90b3R5cGUudW5kbz1mdW5jdGlvbigpe2lmKHRoaXMuaXNVbmRvQXZhaWxhYmxlKCkpe3ZhciBkPXRoaXMuZG9uZUFjdGlvbnMuc2xpY2UoKTt0aGlzLmluc3Rh''@;'; put 'put ''bmNlLnJ1bkhvb2tzKCJiZWZvcmVVbmRvU3RhY2tDaGFuZ2UiLGQpO3ZhciBnPXRoaXMuZG9uZUFjdGlvbnMucG9wKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJVbmRvU3RhY2tDaGFuZ2UiLGQsdGhpcy5kb25lQWN0aW9ucy5zbGljZSgpKTt2YXIgaD1naChnKTtpZighMT09PXRo''@;'; put 'put ''aXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVVuZG8iLGgpKXJldHVybjt0aGlzLmlnbm9yZU5ld0FjdGlvbnM9ITA7dmFyIHk9dGhpcyxDPXRoaXMudW5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVJlZG9TdGFja0NoYW5nZSIsQyksZy51bmRv''@;'; put 'put ''KHRoaXMuaW5zdGFuY2UsZnVuY3Rpb24oKXt5Lmlnbm9yZU5ld0FjdGlvbnM9ITEseS51bmRvbmVBY3Rpb25zLnB1c2goZyl9KSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlZG9TdGFja0NoYW5nZSIsQyx0aGlzLnVuZG9uZUFjdGlvbnMuc2xpY2UoKSksdGhpcy5pbnN0YW5jZS5y''@;'; put 'put ''dW5Ib29rcygiYWZ0ZXJVbmRvIixoKX19LFZvLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1JlZG9BdmFpbGFibGUoKSl7dmFyIGQ9dGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVkb1N0YWNrQ2hhbmdlIixkKTt2''@;'; put 'put ''YXIgZz10aGlzLnVuZG9uZUFjdGlvbnMucG9wKCk7dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJSZWRvU3RhY2tDaGFuZ2UiLGQsdGhpcy51bmRvbmVBY3Rpb25zLnNsaWNlKCkpO3ZhciBoPWdoKGcpO2lmKCExPT09dGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYmVmb3JlUmVkbyIsaCkp''@;'; put 'put ''cmV0dXJuO3RoaXMuaWdub3JlTmV3QWN0aW9ucz0hMDt2YXIgeT10aGlzLEM9dGhpcy5kb25lQWN0aW9ucy5zbGljZSgpO3RoaXMuaW5zdGFuY2UucnVuSG9va3MoImJlZm9yZVVuZG9TdGFja0NoYW5nZSIsQyksZy5yZWRvKHRoaXMuaW5zdGFuY2UsZnVuY3Rpb24oKXt5Lmlnbm9yZU5ld0Fj''@;'; put 'put ''dGlvbnM9ITEseS5kb25lQWN0aW9ucy5wdXNoKGcpfSksdGhpcy5pbnN0YW5jZS5ydW5Ib29rcygiYWZ0ZXJVbmRvU3RhY2tDaGFuZ2UiLEMsdGhpcy5kb25lQWN0aW9ucy5zbGljZSgpKSx0aGlzLmluc3RhbmNlLnJ1bkhvb2tzKCJhZnRlclJlZG8iLGgpfX0sVm8ucHJvdG90eXBlLmlzVW5k''@;'; put 'put ''b0F2YWlsYWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbmVBY3Rpb25zLmxlbmd0aD4wfSxWby5wcm90b3R5cGUuaXNSZWRvQXZhaWxhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudW5kb25lQWN0aW9ucy5sZW5ndGg+MH0sVm8ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhp''@;'; put 'put ''cy5kb25lQWN0aW9ucy5sZW5ndGg9MCx0aGlzLnVuZG9uZUFjdGlvbnMubGVuZ3RoPTB9LFZvLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmFibGVkfSxWby5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuaXNFbmFibGVkKCkpe3ZhciBk''@;'; put 'put ''PXRoaXMuaW5zdGFuY2U7dGhpcy5lbmFibGVkPSEwLGZ1bmN0aW9uIEE1dChkKXtkLnVuZG89ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmRvUmVkby51bmRvKCl9LGQucmVkbz1mdW5jdGlvbigpe3JldHVybiBkLnVuZG9SZWRvLnJlZG8oKX0sZC5pc1VuZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gZC51bmRvUmVkby5pc1VuZG9BdmFpbGFibGUoKX0sZC5pc1JlZG9BdmFpbGFibGU9ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmRvUmVkby5pc1JlZG9BdmFpbGFibGUoKX0sZC5jbGVhclVuZG89ZnVuY3Rpb24oKXtyZXR1cm4gZC51bmRvUmVkby5jbGVhcigpfX0oZCksdGhpcy5yZWdp''@;'; put 'put ''c3RlclNob3J0Y3V0cygpLGQuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLHlMZSl9fSxWby5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe2lmKHRoaXMuaXNFbmFibGVkKCkpe3ZhciBkPXRoaXMuaW5zdGFuY2U7dGhpcy5lbmFibGVkPSExLGZ1bmN0aW9uIHk1dChkKXtkZWxldGUgZC51bmRv''@;'; put 'put ''LGRlbGV0ZSBkLnJlZG8sZGVsZXRlIGQuaXNVbmRvQXZhaWxhYmxlLGRlbGV0ZSBkLmlzUmVkb0F2YWlsYWJsZSxkZWxldGUgZC5jbGVhclVuZG99KGQpLHRoaXMudW5yZWdpc3RlclNob3J0Y3V0cygpLGQucmVtb3ZlSG9vaygiYWZ0ZXJDaGFuZ2UiLHlMZSl9fSxWby5wcm90b3R5cGUuZGVz''@;'; put 'put ''dHJveT1mdW5jdGlvbigpe3RoaXMuY2xlYXIoKSx0aGlzLmluc3RhbmNlPW51bGwsdGhpcy5kb25lQWN0aW9ucz1udWxsLHRoaXMudW5kb25lQWN0aW9ucz1udWxsfSwoVm8uQWN0aW9uPWZ1bmN0aW9uKCl7fSkucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oKXt9LFZvLkFjdGlvbi5wcm90b3R5''@;'; put 'put ''cGUucmVkbz1mdW5jdGlvbigpe30sU3YoVm8uQ2hhbmdlQWN0aW9uPWZ1bmN0aW9uKGQsZyl7dGhpcy5jaGFuZ2VzPWQsdGhpcy5zZWxlY3RlZD1nLHRoaXMuYWN0aW9uVHlwZT0iY2hhbmdlIn0sVm8uQWN0aW9uKSxWby5DaGFuZ2VBY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oZCxn''@;'; put 'put ''KXtmb3IodmFyIGg9Z2godGhpcy5jaGFuZ2VzKSx2PWQuY291bnRFbXB0eVJvd3MoITApLHk9ZC5jb3VudEVtcHR5Q29scyghMCksQz0wLEk9aC5sZW5ndGg7QzxJO0MrKyloW0NdLnNwbGljZSgzLDEpO2QuYWRkSG9va09uY2UoImFmdGVyQ2hhbmdlIixnKSxkLnNldERhdGFBdENlbGwoaCxu''@;'; put 'put ''dWxsLG51bGwsIlVuZG9SZWRvLnVuZG8iKTtmb3IodmFyIFo9MCx1ZT1oLmxlbmd0aDtaPHVlO1orKyl7dmFyIF9lPW1MZShoW1pdLDIpLEJlPV9lWzBdLE5lPV9lWzFdO2QuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZVJvd3MmJkJlKzErZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93cz09PWQu''@;'; put 'put ''Y291bnRSb3dzKCkmJnY9PT1kLmdldFNldHRpbmdzKCkubWluU3BhcmVSb3dzJiYoZC5hbHRlcigicmVtb3ZlX3JvdyIscGFyc2VJbnQoQmUrMSwxMCksZC5nZXRTZXR0aW5ncygpLm1pblNwYXJlUm93cyksZC51bmRvUmVkby5kb25lQWN0aW9ucy5wb3AoKSksZC5nZXRTZXR0aW5ncygpLm1p''@;'; put 'put ''blNwYXJlQ29scyYmTmUrMStkLmdldFNldHRpbmdzKCkubWluU3BhcmVDb2xzPT09ZC5jb3VudENvbHMoKSYmeT09PWQuZ2V0U2V0dGluZ3MoKS5taW5TcGFyZUNvbHMmJihkLmFsdGVyKCJyZW1vdmVfY29sIixwYXJzZUludChOZSsxLDEwKSxkLmdldFNldHRpbmdzKCkubWluU3BhcmVDb2xz''@;'; put 'put ''KSxkLnVuZG9SZWRvLmRvbmVBY3Rpb25zLnBvcCgpKX1kLnNlbGVjdENlbGxzKHRoaXMuc2VsZWN0ZWQsITEsITEpfSxWby5DaGFuZ2VBY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oZCxnKXtmb3IodmFyIGg9Z2godGhpcy5jaGFuZ2VzKSx2PTAseT1oLmxlbmd0aDt2PHk7disrKWhb''@;'; put 'put ''dl0uc3BsaWNlKDIsMSk7ZC5hZGRIb29rT25jZSgiYWZ0ZXJDaGFuZ2UiLGcpLGQuc2V0RGF0YUF0Q2VsbChoLG51bGwsbnVsbCwiVW5kb1JlZG8ucmVkbyIpLHRoaXMuc2VsZWN0ZWQmJmQuc2VsZWN0Q2VsbHModGhpcy5zZWxlY3RlZCwhMSwhMSl9LFN2KFZvLkNyZWF0ZVJvd0FjdGlvbj1m''@;'; put 'put ''dW5jdGlvbihkLGcpe3RoaXMuaW5kZXg9ZCx0aGlzLmFtb3VudD1nLHRoaXMuYWN0aW9uVHlwZT0iaW5zZXJ0X3JvdyJ9LFZvLkFjdGlvbiksVm8uQ3JlYXRlUm93QWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9ZC5jb3VudFJvd3MoKSx2PWQuZ2V0U2V0dGluZ3Mo''@;'; put 'put ''KS5taW5TcGFyZVJvd3M7dGhpcy5pbmRleD49aCYmdGhpcy5pbmRleC12PGgmJih0aGlzLmluZGV4LT12KSxkLmFkZEhvb2tPbmNlKCJhZnRlclJlbW92ZVJvdyIsZyksZC5hbHRlcigicmVtb3ZlX3JvdyIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8udW5kbyIpfSxWby5DcmVh''@;'; put 'put ''dGVSb3dBY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oZCxnKXtkLmFkZEhvb2tPbmNlKCJhZnRlckNyZWF0ZVJvdyIsZyksZC5hbHRlcigiaW5zZXJ0X3JvdyIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8ucmVkbyIpfSxTdihWby5SZW1vdmVSb3dBY3Rpb249ZnVuY3Rp''@;'; put 'put ''b24oZCxnLGgsdil7dGhpcy5pbmRleD1kLHRoaXMuZGF0YT1nLHRoaXMuYWN0aW9uVHlwZT0icmVtb3ZlX3JvdyIsdGhpcy5maXhlZFJvd3NCb3R0b209aCx0aGlzLmZpeGVkUm93c1RvcD12fSxWby5BY3Rpb24pLFZvLlJlbW92ZVJvd0FjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihk''@;'; put 'put ''LGcpe3ZhciBoPWQuZ2V0U2V0dGluZ3MoKTtoLmZpeGVkUm93c0JvdHRvbT10aGlzLmZpeGVkUm93c0JvdHRvbSxoLmZpeGVkUm93c1RvcD10aGlzLmZpeGVkUm93c1RvcCxkLmFsdGVyKCJpbnNlcnRfcm93Iix0aGlzLmluZGV4LHRoaXMuZGF0YS5sZW5ndGgsIlVuZG9SZWRvLnVuZG8iKSxk''@;'; put 'put ''LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGQucG9wdWxhdGVGcm9tQXJyYXkodGhpcy5pbmRleCwwLHRoaXMuZGF0YSx2b2lkIDAsdm9pZCAwLCJVbmRvUmVkby51bmRvIil9LFZvLlJlbW92ZVJvd0FjdGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihkLGcpe2QuYWRkSG9v''@;'; put 'put ''a09uY2UoImFmdGVyUmVtb3ZlUm93IixnKSxkLmFsdGVyKCJyZW1vdmVfcm93Iix0aGlzLmluZGV4LHRoaXMuZGF0YS5sZW5ndGgsIlVuZG9SZWRvLnJlZG8iKX0sU3YoVm8uQ3JlYXRlQ29sdW1uQWN0aW9uPWZ1bmN0aW9uKGQsZyl7dGhpcy5pbmRleD1kLHRoaXMuYW1vdW50PWcsdGhpcy5h''@;'; put 'put ''Y3Rpb25UeXBlPSJpbnNlcnRfY29sIn0sVm8uQWN0aW9uKSxWby5DcmVhdGVDb2x1bW5BY3Rpb24ucHJvdG90eXBlLnVuZG89ZnVuY3Rpb24oZCxnKXtkLmFkZEhvb2tPbmNlKCJhZnRlclJlbW92ZUNvbCIsZyksZC5hbHRlcigicmVtb3ZlX2NvbCIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwi''@;'; put 'put ''VW5kb1JlZG8udW5kbyIpfSxWby5DcmVhdGVDb2x1bW5BY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oZCxnKXtkLmFkZEhvb2tPbmNlKCJhZnRlckNyZWF0ZUNvbCIsZyksZC5hbHRlcigiaW5zZXJ0X2NvbCIsdGhpcy5pbmRleCx0aGlzLmFtb3VudCwiVW5kb1JlZG8ucmVkbyIpfSxT''@;'; put 'put ''dihWby5SZW1vdmVDb2x1bW5BY3Rpb249ZnVuY3Rpb24oZCxnLGgsdix5LEMsSSl7dGhpcy5pbmRleD1kLHRoaXMuaW5kZXhlcz1nLHRoaXMuZGF0YT1oLHRoaXMuYW1vdW50PXRoaXMuZGF0YVswXS5sZW5ndGgsdGhpcy5oZWFkZXJzPXYsdGhpcy5jb2x1bW5Qb3NpdGlvbnM9eS5zbGljZSgw''@;'; put 'put ''KSx0aGlzLnJvd1Bvc2l0aW9ucz1DLnNsaWNlKDApLHRoaXMuYWN0aW9uVHlwZT0icmVtb3ZlX2NvbCIsdGhpcy5maXhlZENvbHVtbnNTdGFydD1JfSxWby5BY3Rpb24pLFZvLlJlbW92ZUNvbHVtbkFjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihkLGcpe3ZhciBoPXRoaXM7ZC5nZXRT''@;'; put 'put ''ZXR0aW5ncygpLmZpeGVkQ29sdW1uc1N0YXJ0PXRoaXMuZml4ZWRDb2x1bW5zU3RhcnQ7Zm9yKHZhciB5PXRoaXMuaW5kZXhlcy5zbGljZSgwKS5zb3J0KCksQz1mdW5jdGlvbihLZSxwdCxPdCl7cmV0dXJuIE90W2guaW5kZXhlcy5pbmRleE9mKHlbcHRdKV19LEk9dGhpcy5kYXRhLmxlbmd0''@;'; put 'put ''aCxaPVtdLHVlPTA7dWU8STt1ZSsrKVoucHVzaChPbCh0aGlzLmRhdGFbdWVdLEMpKTt2YXIgX2U9T2wodGhpcy5oZWFkZXJzLEMpLEJlPVtdO2QuYWx0ZXIoImluc2VydF9jb2wiLHRoaXMuaW5kZXhlc1swXSx0aGlzLmluZGV4ZXMubGVuZ3RoLCJVbmRvUmVkby51bmRvIiksVXIoZC5nZXRT''@;'; put 'put ''b3VyY2VEYXRhQXJyYXkoKSxmdW5jdGlvbihOZSxLZSl7VXIoeSxmdW5jdGlvbihwdCxPdCl7TmVbcHRdPVpbS2VdW090XSxCZS5wdXNoKFtLZSxwdCxOZVtwdF1dKX0pfSksZC5zZXRTb3VyY2VEYXRhQXRDZWxsKEJlLHZvaWQgMCx2b2lkIDAsIlVuZG9SZWRvLnVuZG8iKSxkLmNvbHVtbklu''@;'; put 'put ''ZGV4TWFwcGVyLmluc2VydEluZGV4ZXMoeVswXSx5Lmxlbmd0aCksdm9pZCAwIT09dGhpcy5oZWFkZXJzJiZVcihfZSxmdW5jdGlvbihOZSxLZSl7ZC5nZXRTZXR0aW5ncygpLmNvbEhlYWRlcnNbeVtLZV1dPU5lfSksZC5iYXRjaEV4ZWN1dGlvbihmdW5jdGlvbigpe2Qucm93SW5kZXhNYXBw''@;'; put 'put ''ZXIuc2V0SW5kZXhlc1NlcXVlbmNlKGgucm93UG9zaXRpb25zKSxkLmNvbHVtbkluZGV4TWFwcGVyLnNldEluZGV4ZXNTZXF1ZW5jZShoLmNvbHVtblBvc2l0aW9ucyl9LCEwKSxkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGQucmVuZGVyKCl9LFZvLlJlbW92ZUNvbHVtbkFj''@;'; put 'put ''dGlvbi5wcm90b3R5cGUucmVkbz1mdW5jdGlvbihkLGcpe2QuYWRkSG9va09uY2UoImFmdGVyUmVtb3ZlQ29sIixnKSxkLmFsdGVyKCJyZW1vdmVfY29sIix0aGlzLmluZGV4LHRoaXMuYW1vdW50LCJVbmRvUmVkby5yZWRvIil9LChWby5DZWxsQWxpZ25tZW50QWN0aW9uPWZ1bmN0aW9uKGQs''@;'; put 'put ''ZyxoLHYpe3RoaXMuc3RhdGVCZWZvcmU9ZCx0aGlzLnJhbmdlPWcsdGhpcy50eXBlPWgsdGhpcy5hbGlnbm1lbnQ9dn0pLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9dGhpcztVcih0aGlzLnJhbmdlLGZ1bmN0aW9uKHYpe3YuZm9yQWxsKGZ1bmN0aW9uKHksQyl7eT49MCYm''@;'; put 'put ''Qz49MCYmZC5zZXRDZWxsTWV0YSh5LEMsImNsYXNzTmFtZSIsaC5zdGF0ZUJlZm9yZVt5XVtDXXx8IiBodExlZnQiKX0pfSksZC5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixnKSxkLnJlbmRlcigpfSxWby5DZWxsQWxpZ25tZW50QWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9u''@;'; put 'put ''KGQsZyl7SHcodGhpcy5yYW5nZSx0aGlzLnR5cGUsdGhpcy5hbGlnbm1lbnQsZnVuY3Rpb24oaCx2KXtyZXR1cm4gZC5nZXRDZWxsTWV0YShoLHYpfSxmdW5jdGlvbihoLHYseSxDKXtyZXR1cm4gZC5zZXRDZWxsTWV0YShoLHYseSxDKX0pLGQuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRl''@;'; put 'put ''ciIsZyksZC5yZW5kZXIoKX0sU3YoVm8uRmlsdGVyc0FjdGlvbj1mdW5jdGlvbihkKXt0aGlzLmNvbmRpdGlvbnNTdGFjaz1kLHRoaXMuYWN0aW9uVHlwZT0iZmlsdGVyIn0sVm8uQWN0aW9uKSxWby5GaWx0ZXJzQWN0aW9uLnByb3RvdHlwZS51bmRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9ZC5n''@;'; put 'put ''ZXRQbHVnaW4oImZpbHRlcnMiKTtkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGguY29uZGl0aW9uQ29sbGVjdGlvbi5pbXBvcnRBbGxDb25kaXRpb25zKHRoaXMuY29uZGl0aW9uc1N0YWNrLnNsaWNlKDAsdGhpcy5jb25kaXRpb25zU3RhY2subGVuZ3RoLTEpKSxoLmZpbHRl''@;'; put 'put ''cigpfSxWby5GaWx0ZXJzQWN0aW9uLnByb3RvdHlwZS5yZWRvPWZ1bmN0aW9uKGQsZyl7dmFyIGg9ZC5nZXRQbHVnaW4oImZpbHRlcnMiKTtkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcpLGguY29uZGl0aW9uQ29sbGVjdGlvbi5pbXBvcnRBbGxDb25kaXRpb25zKHRoaXMuY29u''@;'; put 'put ''ZGl0aW9uc1N0YWNrKSxoLmZpbHRlcigpfTt2YXIgbTV0PWZ1bmN0aW9uKGQpe3BMZShoLGQpO3ZhciBnPWdMZShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7ZkxlKHRoaXMsaCksKEM9Zy5jYWxsKHRoaXMpKS5jZWxsUmFuZ2U9eTt2YXIgST1DLmNlbGxSYW5nZS5nZXRUb3BTdGFydENvcm5l''@;'; put 'put ''cigpLFo9Qy5jZWxsUmFuZ2UuZ2V0Qm90dG9tRW5kQ29ybmVyKCk7cmV0dXJuIEMucmFuZ2VEYXRhPXYuZ2V0RGF0YShJLnJvdyxJLmNvbCxaLnJvdyxaLmNvbCksQ31yZXR1cm4gZExlKGgsW3trZXk6InVuZG8iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9eS5nZXRQbHVnaW4oIm1lcmdl''@;'; put 'put ''Q2VsbHMiKTt5LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLEMpLEkudW5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlLCEwKTt2YXIgWj10aGlzLmNlbGxSYW5nZS5nZXRUb3BTdGFydENvcm5lcigpO3kucG9wdWxhdGVGcm9tQXJyYXkoWi5yb3csWi5jb2wsdGhpcy5yYW5nZURhdGEs''@;'; put 'put ''dm9pZCAwLHZvaWQgMCwiTWVyZ2VDZWxscyIpfX0se2tleToicmVkbyIsdmFsdWU6ZnVuY3Rpb24oeSxDKXt2YXIgST15LmdldFBsdWdpbigibWVyZ2VDZWxscyIpO3kuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsQyksSS5tZXJnZVJhbmdlKHRoaXMuY2VsbFJhbmdlKX19XSksaH0o''@;'; put 'put ''Vm8uQWN0aW9uKTtWby5NZXJnZUNlbGxzQWN0aW9uPW01dDt2YXIgdjV0PWZ1bmN0aW9uKGQpe3BMZShoLGQpO3ZhciBnPWdMZShoKTtmdW5jdGlvbiBoKHYseSl7dmFyIEM7cmV0dXJuIGZMZSh0aGlzLGgpLChDPWcuY2FsbCh0aGlzKSkuY2VsbFJhbmdlPXksQ31yZXR1cm4gZExlKGgsW3tr''@;'; put 'put ''ZXk6InVuZG8iLHZhbHVlOmZ1bmN0aW9uKHksQyl7dmFyIEk9eS5nZXRQbHVnaW4oIm1lcmdlQ2VsbHMiKTt5LmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLEMpLEkubWVyZ2VSYW5nZSh0aGlzLmNlbGxSYW5nZSwhMCl9fSx7a2V5OiJyZWRvIix2YWx1ZTpmdW5jdGlvbih5LEMpe3Zh''@;'; put 'put ''ciBJPXkuZ2V0UGx1Z2luKCJtZXJnZUNlbGxzIik7eS5hZGRIb29rT25jZSgiYWZ0ZXJWaWV3UmVuZGVyIixDKSxJLnVubWVyZ2VSYW5nZSh0aGlzLmNlbGxSYW5nZSwhMCkseS5yZW5kZXIoKX19XSksaH0oVm8uQWN0aW9uKTtmdW5jdGlvbiB5TGUoZCxnKXtpZigibG9hZERhdGEiPT09Zyly''@;'; put 'put ''ZXR1cm4gdGhpcy51bmRvUmVkby5jbGVhcigpfVZvLlVubWVyZ2VDZWxsc0FjdGlvbj12NXQsU3YoVm8uUm93TW92ZUFjdGlvbj1mdW5jdGlvbihkLGcpe3RoaXMucm93cz1kLnNsaWNlKCksdGhpcy5maW5hbEluZGV4PWcsdGhpcy5hY3Rpb25UeXBlPSJyb3dfbW92ZSJ9LFZvLkFjdGlvbiks''@;'; put 'put ''Vm8uUm93TW92ZUFjdGlvbi5wcm90b3R5cGUudW5kbz1mdW5jdGlvbihkLGcpe3ZhciBoPXRoaXMsdj1kLmdldFBsdWdpbigibWFudWFsUm93TW92ZSIpLHk9W10uY29uY2F0KHRoaXMucm93cyksQz15LmZpbHRlcihmdW5jdGlvbihCZSl7cmV0dXJuIEJlPmguZmluYWxJbmRleH0pLEk9eS5m''@;'; put 'put ''aWx0ZXIoZnVuY3Rpb24oQmUpe3JldHVybiBCZTw9aC5maW5hbEluZGV4fSksWj1DLnNvcnQoZnVuY3Rpb24oQmUsTmUpe3JldHVybiBOZS1CZX0pLmNvbmNhdChJLnNvcnQoZnVuY3Rpb24oQmUsTmUpe3JldHVybiBCZS1OZX0pKTtkLmFkZEhvb2tPbmNlKCJhZnRlclZpZXdSZW5kZXIiLGcp''@;'; put 'put ''O2Zvcih2YXIgdWU9MDt1ZTxaLmxlbmd0aDt1ZSs9MSl7dmFyIF9lPWQudG9WaXN1YWxSb3coWlt1ZV0pO3YubW92ZVJvdyhfZSxaW3VlXSl9ZC5yZW5kZXIoKSxkLmRlc2VsZWN0Q2VsbCgpLGQuc2VsZWN0Um93cyh0aGlzLnJvd3NbMF0sdGhpcy5yb3dzWzBdK3RoaXMucm93cy5sZW5ndGgt''@;'; put 'put ''MSl9LFZvLlJvd01vdmVBY3Rpb24ucHJvdG90eXBlLnJlZG89ZnVuY3Rpb24oZCxnKXt2YXIgaD1kLmdldFBsdWdpbigibWFudWFsUm93TW92ZSIpO2QuYWRkSG9va09uY2UoImFmdGVyVmlld1JlbmRlciIsZyksaC5tb3ZlUm93cyh0aGlzLnJvd3Muc2xpY2UoKSx0aGlzLmZpbmFsSW5kZXgp''@;'; put 'put ''LGQucmVuZGVyKCksZC5kZXNlbGVjdENlbGwoKSxkLnNlbGVjdFJvd3ModGhpcy5maW5hbEluZGV4LHRoaXMuZmluYWxJbmRleCt0aGlzLnJvd3MubGVuZ3RoLTEpfSxWby5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3ZhciBkPXRoaXMuaW5zdGFuY2UuZ2V0U2V0dGluZ3MoKS51bmRvLGc9''@;'; put 'put ''dm9pZCAwPT09ZHx8ZDt0aGlzLmluc3RhbmNlLnVuZG9SZWRvfHwodGhpcy5pbnN0YW5jZS51bmRvUmVkbz10aGlzKSxnP3RoaXMuaW5zdGFuY2UudW5kb1JlZG8uZW5hYmxlKCk6dGhpcy5pbnN0YW5jZS51bmRvUmVkby5kaXNhYmxlKCl9LFZvLnByb3RvdHlwZS5yZWdpc3RlclNob3J0Y3V0''@;'; put 'put ''cz1mdW5jdGlvbigpe3ZhciBkPXRoaXM7dGhpcy5pbnN0YW5jZS5nZXRTaG9ydGN1dE1hbmFnZXIoKS5nZXRDb250ZXh0KCJncmlkIikuYWRkU2hvcnRjdXRzKFt7a2V5czpbWyJDb250cm9sL01ldGEiLCJ6Il1dLGNhbGxiYWNrOmZ1bmN0aW9uKCl7ZC51bmRvKCl9fSx7a2V5czpbWyJDb250''@;'; put 'put ''cm9sL01ldGEiLCJ5Il0sWyJDb250cm9sL01ldGEiLCJTaGlmdCIsInoiXV0sY2FsbGJhY2s6ZnVuY3Rpb24oKXtkLnJlZG8oKX19XSx7cnVuT25seUlmOmZ1bmN0aW9uKEkpe3JldHVybiFJLmFsdEtleX0sZ3JvdXA6InVuZG9SZWRvIn0pfSxWby5wcm90b3R5cGUudW5yZWdpc3RlclNob3J0''@;'; put 'put ''Y3V0cz1mdW5jdGlvbigpe3RoaXMuaW5zdGFuY2UuZ2V0U2hvcnRjdXRNYW5hZ2VyKCkuZ2V0Q29udGV4dCgiZ3JpZCIpLnJlbW92ZVNob3J0Y3V0c0J5R3JvdXAoInVuZG9SZWRvIil9O3ZhciBqej16by5nZXRTaW5nbGV0b24oKTtqei5hZGQoImFmdGVyVXBkYXRlU2V0dGluZ3MiLGZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIGQ7bnVsbD09PShkPXRoaXMuZ2V0UGx1Z2luKCJ1bmRvUmVkbyIpKXx8dm9pZCAwPT09ZHx8ZC5pbml0KCl9KSxqei5yZWdpc3RlcigiYmVmb3JlVW5kbyIpLGp6LnJlZ2lzdGVyKCJhZnRlclVuZG8iKSxqei5yZWdpc3RlcigiYmVmb3JlUmVkbyIpLGp6LnJlZ2lzdGVyKCJh''@;'; put 'put ''ZnRlclJlZG8iKSxWby5QTFVHSU5fS0VZPSJ1bmRvUmVkbyIsVm8uU0VUVElOR19LRVlTPSEwO2NvbnN0IHc1dD1WbztmdW5jdGlvbiB3TGUoKXsoZnVuY3Rpb24gV3R0KCl7c2Qoa08pLHNkKGI2ZSksc2QocVNlKSxzZChyTWUpLHNkKHg2ZSksc2QobTZlKSxzZChhTWUpLHNkKHNNZSksc2Qo''@;'; put 'put ''QnR0KSxzZChWUyksc2QoaE1lKX0pKCksZnVuY3Rpb24gb250KCl7TWcoSU8pLE1nKGh6KSxNZyhINmUpLE1nKEY2ZSksTWcoVjZlKSxNZyhqNmUpLE1nKEJ3KSxNZyhaNmUpfSgpLGZ1bmN0aW9uIGhudCgpe2dPKGR6KSxnTyhNdGUpLGdPKHo2ZSksZ08oRXRlKX0oKSxmdW5jdGlvbiBUbnQo''@;'; put 'put ''KXtrOChwbnQpLGs4KG1udCksazgoQW50KSxrOCh3bnQpLGs4KF9udCksazgoa250KSxrOChNbnQpLGs4KFdTZSksazgoeG50KX0oKSxmdW5jdGlvbiBiNXQoKXtPcyhkcnQpLE9zKFBydCksT3MoJHJ0KSxPcyhOaXQpLE9zKHIwdCksT3MoQ0VlKSxPcyh5b3QpLE9zKFVvdCksT3MoJEVlKSxP''@;'; put 'put ''cyhnbHQpLE9zKFZsdCksT3MoSmx0KSxPcyhBeGUpLE9zKGpzdCksT3MoWWN0KSxPcyhfZnQpLE9zKFdmdCksT3MocGh0KSxPcyhCaHQpLE9zKGczdCksT3MoazN0KSxPcyhpZHQpLE9zKGRkdCksT3MocWR0KSxPcyhBNHQpLE9zKFQ0dCksT3MoS3B0KSxPcyhvOHQpLE9zKHk4dCksT3MoRjh0''@;'; put 'put ''KSxPcyhROHQpLE9zKGk1dCksT3ModzV0KX0oKX1jbGFzcyBBbWV7Y29uc3RydWN0b3IoZyl7dGhpcy5yYXdGaWxlPWc7bGV0IHY9ZnVuY3Rpb24gXzV0KGQpe3JldHVybiEoIWR8fCEoZC5ub2RlTmFtZXx8ZC5wcm9wJiZkLmF0dHImJmQuZmluZCkpfShnKT9nLnZhbHVlOmc7dGhpc1siX2Ny''@;'; put 'put ''ZWF0ZUZyb20iKygic3RyaW5nIj09dHlwZW9mIHY/IkZha2VQYXRoIjoiT2JqZWN0IildKHYpfV9jcmVhdGVGcm9tRmFrZVBhdGgoZyl7dGhpcy5sYXN0TW9kaWZpZWREYXRlPXZvaWQgMCx0aGlzLnNpemU9dm9pZCAwLHRoaXMudHlwZT0ibGlrZS8iK2cuc2xpY2UoZy5sYXN0SW5kZXhPZigi''@;'; put 'put ''LiIpKzEpLnRvTG93ZXJDYXNlKCksdGhpcy5uYW1lPWcuc2xpY2UoZy5sYXN0SW5kZXhPZigiLyIpK2cubGFzdEluZGV4T2YoIlxcIikrMil9X2NyZWF0ZUZyb21PYmplY3QoZyl7dGhpcy5zaXplPWcuc2l6ZSx0aGlzLnR5cGU9Zy50eXBlLHRoaXMubmFtZT1nLm5hbWV9fWNsYXNzIEM1dHtj''@;'; put 'put ''b25zdHJ1Y3RvcihnLGgsdil7dGhpcy51cmw9Ii8iLHRoaXMuaGVhZGVycz1bXSx0aGlzLndpdGhDcmVkZW50aWFscz0hMCx0aGlzLmZvcm1EYXRhPVtdLHRoaXMuaXNSZWFkeT0hMSx0aGlzLmlzVXBsb2FkaW5nPSExLHRoaXMuaXNVcGxvYWRlZD0hMSx0aGlzLmlzU3VjY2Vzcz0hMSx0aGlz''@;'; put 'put ''LmlzQ2FuY2VsPSExLHRoaXMuaXNFcnJvcj0hMSx0aGlzLnByb2dyZXNzPTAsdGhpcy5pbmRleD12b2lkIDAsdGhpcy51cGxvYWRlcj1nLHRoaXMuc29tZT1oLHRoaXMub3B0aW9ucz12LHRoaXMuZmlsZT1uZXcgQW1lKGgpLHRoaXMuX2ZpbGU9aCxnLm9wdGlvbnMmJih0aGlzLm1ldGhvZD1n''@;'; put 'put ''Lm9wdGlvbnMubWV0aG9kfHwiUE9TVCIsdGhpcy5hbGlhcz1nLm9wdGlvbnMuaXRlbUFsaWFzfHwiZmlsZSIpLHRoaXMudXJsPWcub3B0aW9ucy51cmx9dXBsb2FkKCl7dHJ5e3RoaXMudXBsb2FkZXIudXBsb2FkSXRlbSh0aGlzKX1jYXRjaChnKXt0aGlzLnVwbG9hZGVyLl9vbkNvbXBsZXRl''@;'; put 'put ''SXRlbSh0aGlzLCIiLDAse30pLHRoaXMudXBsb2FkZXIuX29uRXJyb3JJdGVtKHRoaXMsIiIsMCx7fSl9fWNhbmNlbCgpe3RoaXMudXBsb2FkZXIuY2FuY2VsSXRlbSh0aGlzKX1yZW1vdmUoKXt0aGlzLnVwbG9hZGVyLnJlbW92ZUZyb21RdWV1ZSh0aGlzKX1vbkJlZm9yZVVwbG9hZCgpe31v''@;'; put 'put ''bkJ1aWxkRm9ybShnKXtyZXR1cm57Zm9ybTpnfX1vblByb2dyZXNzKGcpe3JldHVybntwcm9ncmVzczpnfX1vblN1Y2Nlc3MoZyxoLHYpe3JldHVybntyZXNwb25zZTpnLHN0YXR1czpoLGhlYWRlcnM6dn19b25FcnJvcihnLGgsdil7cmV0dXJue3Jlc3BvbnNlOmcsc3RhdHVzOmgsaGVhZGVy''@;'; put 'put ''czp2fX1vbkNhbmNlbChnLGgsdil7cmV0dXJue3Jlc3BvbnNlOmcsc3RhdHVzOmgsaGVhZGVyczp2fX1vbkNvbXBsZXRlKGcsaCx2KXtyZXR1cm57cmVzcG9uc2U6ZyxzdGF0dXM6aCxoZWFkZXJzOnZ9fV9vbkJlZm9yZVVwbG9hZCgpe3RoaXMuaXNSZWFkeT0hMCx0aGlzLmlzVXBsb2FkaW5n''@;'; put 'put ''PSEwLHRoaXMuaXNVcGxvYWRlZD0hMSx0aGlzLmlzU3VjY2Vzcz0hMSx0aGlzLmlzQ2FuY2VsPSExLHRoaXMuaXNFcnJvcj0hMSx0aGlzLnByb2dyZXNzPTAsdGhpcy5vbkJlZm9yZVVwbG9hZCgpfV9vbkJ1aWxkRm9ybShnKXt0aGlzLm9uQnVpbGRGb3JtKGcpfV9vblByb2dyZXNzKGcpe3Ro''@;'; put 'put ''aXMucHJvZ3Jlc3M9Zyx0aGlzLm9uUHJvZ3Jlc3MoZyl9X29uU3VjY2VzcyhnLGgsdil7dGhpcy5pc1JlYWR5PSExLHRoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5pc1VwbG9hZGVkPSEwLHRoaXMuaXNTdWNjZXNzPSEwLHRoaXMuaXNDYW5jZWw9ITEsdGhpcy5pc0Vycm9yPSExLHRoaXMucHJv''@;'; put 'put ''Z3Jlc3M9MTAwLHRoaXMuaW5kZXg9dm9pZCAwLHRoaXMub25TdWNjZXNzKGcsaCx2KX1fb25FcnJvcihnLGgsdil7dGhpcy5pc1JlYWR5PSExLHRoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5pc1VwbG9hZGVkPSEwLHRoaXMuaXNTdWNjZXNzPSExLHRoaXMuaXNDYW5jZWw9ITEsdGhpcy5pc0Vy''@;'; put 'put ''cm9yPSEwLHRoaXMucHJvZ3Jlc3M9MCx0aGlzLmluZGV4PXZvaWQgMCx0aGlzLm9uRXJyb3IoZyxoLHYpfV9vbkNhbmNlbChnLGgsdil7dGhpcy5pc1JlYWR5PSExLHRoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5pc1VwbG9hZGVkPSExLHRoaXMuaXNTdWNjZXNzPSExLHRoaXMuaXNDYW5jZWw9''@;'; put 'put ''ITAsdGhpcy5pc0Vycm9yPSExLHRoaXMucHJvZ3Jlc3M9MCx0aGlzLmluZGV4PXZvaWQgMCx0aGlzLm9uQ2FuY2VsKGcsaCx2KX1fb25Db21wbGV0ZShnLGgsdil7dGhpcy5vbkNvbXBsZXRlKGcsaCx2KSx0aGlzLnVwbG9hZGVyLm9wdGlvbnMucmVtb3ZlQWZ0ZXJVcGxvYWQmJnRoaXMucmVt''@;'; put 'put ''b3ZlKCl9X3ByZXBhcmVUb1VwbG9hZGluZygpe3RoaXMuaW5kZXg9dGhpcy5pbmRleHx8Kyt0aGlzLnVwbG9hZGVyLl9uZXh0SW5kZXgsdGhpcy5pc1JlYWR5PSEwfX1sZXQgazV0PSgoKT0+e2NsYXNzIGR7c3RhdGljIGdldE1pbWVDbGFzcyhoKXtsZXQgdj0iYXBwbGljYXRpb24iO3JldHVy''@;'; put 'put ''bi0xIT09dGhpcy5taW1lX3BzZC5pbmRleE9mKGgudHlwZSl8fGgudHlwZS5tYXRjaCgiaW1hZ2UuKiIpP3Y9ImltYWdlIjpoLnR5cGUubWF0Y2goInZpZGVvLioiKT92PSJ2aWRlbyI6aC50eXBlLm1hdGNoKCJhdWRpby4qIik/dj0iYXVkaW8iOiJhcHBsaWNhdGlvbi9wZGYiPT09aC50eXBl''@;'; put 'put ''P3Y9InBkZiI6LTEhPT10aGlzLm1pbWVfY29tcHJlc3MuaW5kZXhPZihoLnR5cGUpP3Y9ImNvbXByZXNzIjotMSE9PXRoaXMubWltZV9kb2MuaW5kZXhPZihoLnR5cGUpP3Y9ImRvYyI6LTEhPT10aGlzLm1pbWVfeHNsLmluZGV4T2YoaC50eXBlKT92PSJ4bHMiOi0xIT09dGhpcy5taW1lX3Bw''@;'; put 'put ''dC5pbmRleE9mKGgudHlwZSkmJih2PSJwcHQiKSwiYXBwbGljYXRpb24iPT09diYmKHY9dGhpcy5maWxlVHlwZURldGVjdGlvbihoLm5hbWUpKSx2fXN0YXRpYyBmaWxlVHlwZURldGVjdGlvbihoKXtsZXQgdj17anBnOiJpbWFnZSIsanBlZzoiaW1hZ2UiLHRpZjoiaW1hZ2UiLHBzZDoiaW1h''@;'; put 'put ''Z2UiLGJtcDoiaW1hZ2UiLHBuZzoiaW1hZ2UiLG5lZjoiaW1hZ2UiLHRpZmY6ImltYWdlIixjcjI6ImltYWdlIixkd2c6ImltYWdlIixjZHI6ImltYWdlIixhaToiaW1hZ2UiLGluZGQ6ImltYWdlIixwaW46ImltYWdlIixjZHA6ImltYWdlIixza3A6ImltYWdlIixzdHA6ImltYWdlIiwiM2Rt''@;'; put 'put ''IjoiaW1hZ2UiLG1wMzoiYXVkaW8iLHdhdjoiYXVkaW8iLHdtYToiYXVkaW8iLG1vZDoiYXVkaW8iLG00YToiYXVkaW8iLGNvbXByZXNzOiJjb21wcmVzcyIsemlwOiJjb21wcmVzcyIscmFyOiJjb21wcmVzcyIsIjd6IjoiY29tcHJlc3MiLGx6OiJjb21wcmVzcyIsejAxOiJjb21wcmVzcyIs''@;'; put 'put ''YnoyOiJjb21wcmVzcyIsZ3o6ImNvbXByZXNzIixwZGY6InBkZiIseGxzOiJ4bHMiLHhsc3g6InhscyIsb2RzOiJ4bHMiLG1wNDoidmlkZW8iLGF2aToidmlkZW8iLHdtdjoidmlkZW8iLG1wZzoidmlkZW8iLG10czoidmlkZW8iLGZsdjoidmlkZW8iLCIzZ3AiOiJ2aWRlbyIsdm9iOiJ2aWRl''@;'; put 'put ''byIsbTR2OiJ2aWRlbyIsbXBlZzoidmlkZW8iLG0ydHM6InZpZGVvIixtb3Y6InZpZGVvIixkb2M6ImRvYyIsZG9jeDoiZG9jIixlcHM6ImRvYyIsdHh0OiJkb2MiLG9kdDoiZG9jIixydGY6ImRvYyIscHB0OiJwcHQiLHBwdHg6InBwdCIscHBzOiJwcHQiLHBwc3g6InBwdCIsb2RwOiJwcHQi''@;'; put 'put ''fSx5PWguc3BsaXQoIi4iKTtpZih5Lmxlbmd0aDwyKXJldHVybiJhcHBsaWNhdGlvbiI7bGV0IEM9eVt5Lmxlbmd0aC0xXS50b0xvd2VyQ2FzZSgpO3JldHVybiB2b2lkIDA9PT12W0NdPyJhcHBsaWNhdGlvbiI6dltDXX19cmV0dXJuIGQubWltZV9kb2M9WyJhcHBsaWNhdGlvbi9tc3dvcmQi''@;'; put 'put ''LCJhcHBsaWNhdGlvbi9tc3dvcmQiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBs''@;'; put 'put ''YXRlIiwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQuZG9jdW1lbnQubWFjcm9FbmFibGVkLjEyIiwiYXBwbGljYXRpb24vdm5kLm1zLXdvcmQudGVtcGxhdGUubWFjcm9FbmFibGVkLjEyIl0sZC5taW1lX3hzbD1bImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCIsImFwcGxpY2F0aW9uL3ZuZC5t''@;'; put 'put ''cy1leGNlbCIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0IiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwu''@;'; put 'put ''dGVtcGxhdGUiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQubWFjcm9FbmFibGVkLjEyIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnRlbXBsYXRlLm1hY3JvRW5hYmxlZC4xMiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hZGRpbi5tYWNyb0VuYWJsZWQuMTIiLCJhcHBs''@;'; put 'put ''aWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXQuYmluYXJ5Lm1hY3JvRW5hYmxlZC4xMiJdLGQubWltZV9wcHQ9WyJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCIsImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50IiwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQiLCJhcHBs''@;'; put 'put ''aWNhdGlvbi92bmQubXMtcG93ZXJwb2ludCIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwu''@;'; put 'put ''dGVtcGxhdGUiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGVzaG93IiwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQuYWRkaW4ubWFjcm9FbmFibGVkLjEyIiwiYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9p''@;'; put 'put ''bnQucHJlc2VudGF0aW9uLm1hY3JvRW5hYmxlZC4xMiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1wb3dlcnBvaW50LnByZXNlbnRhdGlvbi5tYWNyb0VuYWJsZWQuMTIiLCJhcHBsaWNhdGlvbi92bmQubXMtcG93ZXJwb2ludC5zbGlkZXNob3cubWFjcm9FbmFibGVkLjEyIl0sZC5taW1lX3BzZD1b''@;'; put 'put ''ImltYWdlL3Bob3Rvc2hvcCIsImltYWdlL3gtcGhvdG9zaG9wIiwiaW1hZ2UvcHNkIiwiYXBwbGljYXRpb24vcGhvdG9zaG9wIiwiYXBwbGljYXRpb24vcHNkIiwienotYXBwbGljYXRpb24venotd2luYXNzb2MtcHNkIl0sZC5taW1lX2NvbXByZXNzPVsiYXBwbGljYXRpb24veC1ndGFyIiwi''@;'; put 'put ''YXBwbGljYXRpb24veC1nY29tcHJlc3MiLCJhcHBsaWNhdGlvbi9jb21wcmVzcyIsImFwcGxpY2F0aW9uL3gtdGFyIiwiYXBwbGljYXRpb24veC1yYXItY29tcHJlc3NlZCIsImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIsImFwcGxpY2F0aW9uL3gtemlwLWNvbXByZXNzZWQiLCJhcHBsaWNh''@;'; put 'put ''dGlvbi96aXAtY29tcHJlc3NlZCIsImFwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCIsImFwcGxpY2F0aW9uL2d6aXAiLCJhcHBsaWNhdGlvbi94LWJ6aXAyIl0sZH0pKCk7Y2xhc3MgTTV0e2NvbnN0cnVjdG9yKGcpe3RoaXMuaXNVcGxvYWRpbmc9ITEsdGhpcy5xdWV1ZT1bXSx0aGlzLnBy''@;'; put 'put ''b2dyZXNzPTAsdGhpcy5fbmV4dEluZGV4PTAsdGhpcy5vcHRpb25zPXthdXRvVXBsb2FkOiExLGlzSFRNTDU6ITAsZmlsdGVyczpbXSxyZW1vdmVBZnRlclVwbG9hZDohMSxkaXNhYmxlTXVsdGlwYXJ0OiExLGZvcm1hdERhdGFGdW5jdGlvbjpoPT5oLl9maWxlLGZvcm1hdERhdGFGdW5jdGlv''@;'; put 'put ''bklzQXN5bmM6ITF9LHRoaXMuc2V0T3B0aW9ucyhnKSx0aGlzLnJlc3BvbnNlPW5ldyBhcn1zZXRPcHRpb25zKGcpe3RoaXMub3B0aW9ucz1PYmplY3QuYXNzaWduKHRoaXMub3B0aW9ucyxnKSx0aGlzLmF1dGhUb2tlbj10aGlzLm9wdGlvbnMuYXV0aFRva2VuLHRoaXMuYXV0aFRva2VuSGVh''@;'; put 'put ''ZGVyPXRoaXMub3B0aW9ucy5hdXRoVG9rZW5IZWFkZXJ8fCJBdXRob3JpemF0aW9uIix0aGlzLmF1dG9VcGxvYWQ9dGhpcy5vcHRpb25zLmF1dG9VcGxvYWQsdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToicXVldWVMaW1pdCIsZm46dGhpcy5fcXVldWVMaW1pdEZpbHRlcn0p''@;'; put 'put ''LHRoaXMub3B0aW9ucy5tYXhGaWxlU2l6ZSYmdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToiZmlsZVNpemUiLGZuOnRoaXMuX2ZpbGVTaXplRmlsdGVyfSksdGhpcy5vcHRpb25zLmFsbG93ZWRGaWxlVHlwZSYmdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToi''@;'; put 'put ''ZmlsZVR5cGUiLGZuOnRoaXMuX2ZpbGVUeXBlRmlsdGVyfSksdGhpcy5vcHRpb25zLmFsbG93ZWRNaW1lVHlwZSYmdGhpcy5vcHRpb25zLmZpbHRlcnMudW5zaGlmdCh7bmFtZToibWltZVR5cGUiLGZuOnRoaXMuX21pbWVUeXBlRmlsdGVyfSk7Zm9yKGxldCBoPTA7aDx0aGlzLnF1ZXVlLmxl''@;'; put 'put ''bmd0aDtoKyspdGhpcy5xdWV1ZVtoXS51cmw9dGhpcy5vcHRpb25zLnVybH1hZGRUb1F1ZXVlKGcsaCx2KXtsZXQgeT1bXTtmb3IobGV0IHVlIG9mIGcpeS5wdXNoKHVlKTtsZXQgQz10aGlzLl9nZXRGaWx0ZXJzKHYpLEk9dGhpcy5xdWV1ZS5sZW5ndGgsWj1bXTt5Lm1hcCh1ZT0+e2h8fCho''@;'; put 'put ''PXRoaXMub3B0aW9ucyk7bGV0IF9lPW5ldyBBbWUodWUpO2lmKHRoaXMuX2lzVmFsaWRGaWxlKF9lLEMsaCkpe2xldCBCZT1uZXcgQzV0KHRoaXMsdWUsaCk7Wi5wdXNoKEJlKSx0aGlzLnF1ZXVlLnB1c2goQmUpLHRoaXMuX29uQWZ0ZXJBZGRpbmdGaWxlKEJlKX1lbHNlIHRoaXMuX29uV2hl''@;'; put 'put ''bkFkZGluZ0ZpbGVGYWlsZWQoX2UsQ1t0aGlzLl9mYWlsRmlsdGVySW5kZXhdLGgpfSksdGhpcy5xdWV1ZS5sZW5ndGghPT1JJiYodGhpcy5fb25BZnRlckFkZGluZ0FsbChaKSx0aGlzLnByb2dyZXNzPXRoaXMuX2dldFRvdGFsUHJvZ3Jlc3MoKSksdGhpcy5fcmVuZGVyKCksdGhpcy5vcHRp''@;'; put 'put ''b25zLmF1dG9VcGxvYWQmJnRoaXMudXBsb2FkQWxsKCl9cmVtb3ZlRnJvbVF1ZXVlKGcpe2xldCBoPXRoaXMuZ2V0SW5kZXhPZkl0ZW0oZyksdj10aGlzLnF1ZXVlW2hdO3YuaXNVcGxvYWRpbmcmJnYuY2FuY2VsKCksdGhpcy5xdWV1ZS5zcGxpY2UoaCwxKSx0aGlzLnByb2dyZXNzPXRoaXMu''@;'; put 'put ''X2dldFRvdGFsUHJvZ3Jlc3MoKX1jbGVhclF1ZXVlKCl7Zm9yKDt0aGlzLnF1ZXVlLmxlbmd0aDspdGhpcy5xdWV1ZVswXS5yZW1vdmUoKTt0aGlzLnByb2dyZXNzPTB9dXBsb2FkSXRlbShnKXtsZXQgaD10aGlzLmdldEluZGV4T2ZJdGVtKGcpLHY9dGhpcy5xdWV1ZVtoXSx5PXRoaXMub3B0''@;'; put 'put ''aW9ucy5pc0hUTUw1PyJfeGhyVHJhbnNwb3J0IjoiX2lmcmFtZVRyYW5zcG9ydCI7di5fcHJlcGFyZVRvVXBsb2FkaW5nKCksIXRoaXMuaXNVcGxvYWRpbmcmJih0aGlzLmlzVXBsb2FkaW5nPSEwLHRoaXNbeV0odikpfWNhbmNlbEl0ZW0oZyl7bGV0IGg9dGhpcy5nZXRJbmRleE9mSXRlbShn''@;'; put 'put ''KSx2PXRoaXMucXVldWVbaF07diYmdi5pc1VwbG9hZGluZyYmKHRoaXMub3B0aW9ucy5pc0hUTUw1P3YuX3hocjp2Ll9mb3JtKS5hYm9ydCgpfXVwbG9hZEFsbCgpe2xldCBnPXRoaXMuZ2V0Tm90VXBsb2FkZWRJdGVtcygpLmZpbHRlcihoPT4haC5pc1VwbG9hZGluZyk7IWcubGVuZ3RofHwo''@;'; put 'put ''Zy5tYXAoaD0+aC5fcHJlcGFyZVRvVXBsb2FkaW5nKCkpLGdbMF0udXBsb2FkKCkpfWNhbmNlbEFsbCgpe3RoaXMuZ2V0Tm90VXBsb2FkZWRJdGVtcygpLm1hcChoPT5oLmNhbmNlbCgpKX1pc0ZpbGUoZyl7cmV0dXJuIGZ1bmN0aW9uIFM1dChkKXtyZXR1cm4gRmlsZSYmZCBpbnN0YW5jZW9m''@;'; put 'put ''IEZpbGV9KGcpfWlzRmlsZUxpa2VPYmplY3QoZyl7cmV0dXJuIGcgaW5zdGFuY2VvZiBBbWV9Z2V0SW5kZXhPZkl0ZW0oZyl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBnP2c6dGhpcy5xdWV1ZS5pbmRleE9mKGcpfWdldE5vdFVwbG9hZGVkSXRlbXMoKXtyZXR1cm4gdGhpcy5xdWV1ZS5maWx0''@;'; put 'put ''ZXIoZz0+IWcuaXNVcGxvYWRlZCl9Z2V0UmVhZHlJdGVtcygpe3JldHVybiB0aGlzLnF1ZXVlLmZpbHRlcihnPT5nLmlzUmVhZHkmJiFnLmlzVXBsb2FkaW5nKS5zb3J0KChnLGgpPT5nLmluZGV4LWguaW5kZXgpfWRlc3Ryb3koKXt9b25BZnRlckFkZGluZ0FsbChnKXtyZXR1cm57ZmlsZUl0''@;'; put 'put ''ZW1zOmd9fW9uQnVpbGRJdGVtRm9ybShnLGgpe3JldHVybntmaWxlSXRlbTpnLGZvcm06aH19b25BZnRlckFkZGluZ0ZpbGUoZyl7cmV0dXJue2ZpbGVJdGVtOmd9fW9uV2hlbkFkZGluZ0ZpbGVGYWlsZWQoZyxoLHYpe3JldHVybntpdGVtOmcsZmlsdGVyOmgsb3B0aW9uczp2fX1vbkJlZm9y''@;'; put 'put ''ZVVwbG9hZEl0ZW0oZyl7cmV0dXJue2ZpbGVJdGVtOmd9fW9uUHJvZ3Jlc3NJdGVtKGcsaCl7cmV0dXJue2ZpbGVJdGVtOmcscHJvZ3Jlc3M6aH19b25Qcm9ncmVzc0FsbChnKXtyZXR1cm57cHJvZ3Jlc3M6Z319b25TdWNjZXNzSXRlbShnLGgsdix5KXtyZXR1cm57aXRlbTpnLHJlc3BvbnNl''@;'; put 'put ''Omgsc3RhdHVzOnYsaGVhZGVyczp5fX1vbkVycm9ySXRlbShnLGgsdix5KXtyZXR1cm57aXRlbTpnLHJlc3BvbnNlOmgsc3RhdHVzOnYsaGVhZGVyczp5fX1vbkNhbmNlbEl0ZW0oZyxoLHYseSl7cmV0dXJue2l0ZW06ZyxyZXNwb25zZTpoLHN0YXR1czp2LGhlYWRlcnM6eX19b25Db21wbGV0''@;'; put 'put ''ZUl0ZW0oZyxoLHYseSl7cmV0dXJue2l0ZW06ZyxyZXNwb25zZTpoLHN0YXR1czp2LGhlYWRlcnM6eX19b25Db21wbGV0ZUFsbCgpe31fbWltZVR5cGVGaWx0ZXIoZyl7cmV0dXJuISh0aGlzLm9wdGlvbnMuYWxsb3dlZE1pbWVUeXBlJiYtMT09PXRoaXMub3B0aW9ucy5hbGxvd2VkTWltZVR5''@;'; put 'put ''cGUuaW5kZXhPZihnLnR5cGUpKX1fZmlsZVNpemVGaWx0ZXIoZyl7cmV0dXJuISh0aGlzLm9wdGlvbnMubWF4RmlsZVNpemUmJmcuc2l6ZT50aGlzLm9wdGlvbnMubWF4RmlsZVNpemUpfV9maWxlVHlwZUZpbHRlcihnKXtyZXR1cm4hKHRoaXMub3B0aW9ucy5hbGxvd2VkRmlsZVR5cGUmJi0x''@;'; put 'put ''PT09dGhpcy5vcHRpb25zLmFsbG93ZWRGaWxlVHlwZS5pbmRleE9mKGs1dC5nZXRNaW1lQ2xhc3MoZykpKX1fb25FcnJvckl0ZW0oZyxoLHYseSl7Zy5fb25FcnJvcihoLHYseSksdGhpcy5vbkVycm9ySXRlbShnLGgsdix5KX1fb25Db21wbGV0ZUl0ZW0oZyxoLHYseSl7Zy5fb25Db21wbGV0''@;'; put 'put ''ZShoLHYseSksdGhpcy5vbkNvbXBsZXRlSXRlbShnLGgsdix5KTtsZXQgQz10aGlzLmdldFJlYWR5SXRlbXMoKVswXTt0aGlzLmlzVXBsb2FkaW5nPSExLEM/Qy51cGxvYWQoKToodGhpcy5vbkNvbXBsZXRlQWxsKCksdGhpcy5wcm9ncmVzcz10aGlzLl9nZXRUb3RhbFByb2dyZXNzKCksdGhp''@;'; put 'put ''cy5fcmVuZGVyKCkpfV9oZWFkZXJzR2V0dGVyKGcpe3JldHVybiBoPT5oP2dbaC50b0xvd2VyQ2FzZSgpXXx8dm9pZCAwOmd9X3hoclRyYW5zcG9ydChnKXtsZXQgeSxoPXRoaXMsdj1nLl94aHI9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKHRoaXMuX29uQmVmb3JlVXBsb2FkSXRlbShnKSwibnVt''@;'; put 'put ''YmVyIiE9dHlwZW9mIGcuX2ZpbGUuc2l6ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlsZSBzcGVjaWZpZWQgaXMgbm8gbG9uZ2VyIHZhbGlkIik7aWYodGhpcy5vcHRpb25zLmRpc2FibGVNdWx0aXBhcnQpeT10aGlzLm9wdGlvbnMuZm9ybWF0RGF0YUZ1bmN0aW9uKGcpO2Vsc2V7eT1u''@;'; put 'put ''ZXcgRm9ybURhdGEsdGhpcy5fb25CdWlsZEl0ZW1Gb3JtKGcseSk7Y29uc3QgQz0oKT0+eS5hcHBlbmQoZy5hbGlhcyxnLl9maWxlLGcuZmlsZS5uYW1lKTt0aGlzLm9wdGlvbnMucGFyYW1ldGVyc0JlZm9yZUZpbGVzfHxDKCksdm9pZCAwIT09dGhpcy5vcHRpb25zLmFkZGl0aW9uYWxQYXJh''@;'; put 'put ''bWV0ZXImJk9iamVjdC5rZXlzKHRoaXMub3B0aW9ucy5hZGRpdGlvbmFsUGFyYW1ldGVyKS5mb3JFYWNoKEk9PntsZXQgWj10aGlzLm9wdGlvbnMuYWRkaXRpb25hbFBhcmFtZXRlcltJXTsic3RyaW5nIj09dHlwZW9mIFomJlouaW5kZXhPZigie3tmaWxlX25hbWV9fSIpPj0wJiYoWj1aLnJl''@;'; put 'put ''cGxhY2UoInt7ZmlsZV9uYW1lfX0iLGcuZmlsZS5uYW1lKSkseS5hcHBlbmQoSSxaKX0pLHRoaXMub3B0aW9ucy5wYXJhbWV0ZXJzQmVmb3JlRmlsZXMmJkMoKX1pZih2LnVwbG9hZC5vbnByb2dyZXNzPUM9PntsZXQgST1NYXRoLnJvdW5kKEMubGVuZ3RoQ29tcHV0YWJsZT8xMDAqQy5sb2Fk''@;'; put 'put ''ZWQvQy50b3RhbDowKTt0aGlzLl9vblByb2dyZXNzSXRlbShnLEkpfSx2Lm9ubG9hZD0oKT0+e2xldCBDPXRoaXMuX3BhcnNlSGVhZGVycyh2LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSxJPXRoaXMuX3RyYW5zZm9ybVJlc3BvbnNlKHYucmVzcG9uc2UsQyk7dGhpc1siX29uIisodGhpcy5f''@;'; put 'put ''aXNTdWNjZXNzQ29kZSh2LnN0YXR1cyk/IlN1Y2Nlc3MiOiJFcnJvciIpKyJJdGVtIl0oZyxJLHYuc3RhdHVzLEMpLHRoaXMuX29uQ29tcGxldGVJdGVtKGcsSSx2LnN0YXR1cyxDKX0sdi5vbmVycm9yPSgpPT57bGV0IEM9dGhpcy5fcGFyc2VIZWFkZXJzKHYuZ2V0QWxsUmVzcG9uc2VIZWFk''@;'; put 'put ''ZXJzKCkpLEk9dGhpcy5fdHJhbnNmb3JtUmVzcG9uc2Uodi5yZXNwb25zZSxDKTt0aGlzLl9vbkVycm9ySXRlbShnLEksdi5zdGF0dXMsQyksdGhpcy5fb25Db21wbGV0ZUl0ZW0oZyxJLHYuc3RhdHVzLEMpfSx2Lm9uYWJvcnQ9KCk9PntsZXQgQz10aGlzLl9wYXJzZUhlYWRlcnModi5nZXRB''@;'; put 'put ''bGxSZXNwb25zZUhlYWRlcnMoKSksST10aGlzLl90cmFuc2Zvcm1SZXNwb25zZSh2LnJlc3BvbnNlLEMpO3RoaXMuX29uQ2FuY2VsSXRlbShnLEksdi5zdGF0dXMsQyksdGhpcy5fb25Db21wbGV0ZUl0ZW0oZyxJLHYuc3RhdHVzLEMpfSx2Lm9wZW4oZy5tZXRob2QsZy51cmwsITApLHYud2l0''@;'; put 'put ''aENyZWRlbnRpYWxzPWcud2l0aENyZWRlbnRpYWxzLHRoaXMub3B0aW9ucy5oZWFkZXJzKWZvcihsZXQgQyBvZiB0aGlzLm9wdGlvbnMuaGVhZGVycyl2LnNldFJlcXVlc3RIZWFkZXIoQy5uYW1lLEMudmFsdWUpO2lmKGcuaGVhZGVycy5sZW5ndGgpZm9yKGxldCBDIG9mIGcuaGVhZGVycyl2''@;'; put 'put ''LnNldFJlcXVlc3RIZWFkZXIoQy5uYW1lLEMudmFsdWUpO3RoaXMuYXV0aFRva2VuJiZ2LnNldFJlcXVlc3RIZWFkZXIodGhpcy5hdXRoVG9rZW5IZWFkZXIsdGhpcy5hdXRoVG9rZW4pLHYub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7di5yZWFkeVN0YXRlPT1YTUxIdHRwUmVxdWVz''@;'; put 'put ''dC5ET05FJiZoLnJlc3BvbnNlLmVtaXQodi5yZXNwb25zZVRleHQpfSx0aGlzLm9wdGlvbnMuZm9ybWF0RGF0YUZ1bmN0aW9uSXNBc3luYz95LnRoZW4oQz0+di5zZW5kKEpTT04uc3RyaW5naWZ5KEMpKSk6di5zZW5kKHkpLHRoaXMuX3JlbmRlcigpfV9nZXRUb3RhbFByb2dyZXNzKGc9MCl7''@;'; put 'put ''aWYodGhpcy5vcHRpb25zLnJlbW92ZUFmdGVyVXBsb2FkKXJldHVybiBnO2xldCBoPXRoaXMuZ2V0Tm90VXBsb2FkZWRJdGVtcygpLmxlbmd0aCx5PTEwMC90aGlzLnF1ZXVlLmxlbmd0aDtyZXR1cm4gTWF0aC5yb3VuZCgoaD90aGlzLnF1ZXVlLmxlbmd0aC1oOnRoaXMucXVldWUubGVuZ3Ro''@;'; put 'put ''KSp5K2cqeS8xMDApfV9nZXRGaWx0ZXJzKGcpe2lmKCFnKXJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVycztpZihBcnJheS5pc0FycmF5KGcpKXJldHVybiBnO2lmKCJzdHJpbmciPT10eXBlb2YgZyl7bGV0IGg9Zy5tYXRjaCgvW15ccyxdKy9nKTtyZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRl''@;'; put 'put ''cnMuZmlsdGVyKHY9Pi0xIT09aC5pbmRleE9mKHYubmFtZSkpfXJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVyc31fcmVuZGVyKCl7fV9xdWV1ZUxpbWl0RmlsdGVyKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMub3B0aW9ucy5xdWV1ZUxpbWl0fHx0aGlzLnF1ZXVlLmxlbmd0aDx0aGlzLm9wdGlv''@;'; put 'put ''bnMucXVldWVMaW1pdH1faXNWYWxpZEZpbGUoZyxoLHYpe3JldHVybiB0aGlzLl9mYWlsRmlsdGVySW5kZXg9LTEsIWgubGVuZ3RofHxoLmV2ZXJ5KHk9Pih0aGlzLl9mYWlsRmlsdGVySW5kZXgrKyx5LmZuLmNhbGwodGhpcyxnLHYpKSl9X2lzU3VjY2Vzc0NvZGUoZyl7cmV0dXJuIGc+PTIw''@;'; put 'put ''MCYmZzwzMDB8fDMwND09PWd9X3RyYW5zZm9ybVJlc3BvbnNlKGcsaCl7cmV0dXJuIGd9X3BhcnNlSGVhZGVycyhnKXtsZXQgdix5LEMsaD17fTtyZXR1cm4gZyYmZy5zcGxpdCgiXG4iKS5tYXAoST0+e0M9SS5pbmRleE9mKCI6Iiksdj1JLnNsaWNlKDAsQykudHJpbSgpLnRvTG93ZXJDYXNl''@;'; put 'put ''KCkseT1JLnNsaWNlKEMrMSkudHJpbSgpLHYmJihoW3ZdPWhbdl0/aFt2XSsiLCAiK3k6eSl9KSxofV9vbldoZW5BZGRpbmdGaWxlRmFpbGVkKGcsaCx2KXt0aGlzLm9uV2hlbkFkZGluZ0ZpbGVGYWlsZWQoZyxoLHYpfV9vbkFmdGVyQWRkaW5nRmlsZShnKXt0aGlzLm9uQWZ0ZXJBZGRpbmdG''@;'; put 'put ''aWxlKGcpfV9vbkFmdGVyQWRkaW5nQWxsKGcpe3RoaXMub25BZnRlckFkZGluZ0FsbChnKX1fb25CZWZvcmVVcGxvYWRJdGVtKGcpe2cuX29uQmVmb3JlVXBsb2FkKCksdGhpcy5vbkJlZm9yZVVwbG9hZEl0ZW0oZyl9X29uQnVpbGRJdGVtRm9ybShnLGgpe2cuX29uQnVpbGRGb3JtKGgpLHRo''@;'; put 'put ''aXMub25CdWlsZEl0ZW1Gb3JtKGcsaCl9X29uUHJvZ3Jlc3NJdGVtKGcsaCl7bGV0IHY9dGhpcy5fZ2V0VG90YWxQcm9ncmVzcyhoKTt0aGlzLnByb2dyZXNzPXYsZy5fb25Qcm9ncmVzcyhoKSx0aGlzLm9uUHJvZ3Jlc3NJdGVtKGcsaCksdGhpcy5vblByb2dyZXNzQWxsKHYpLHRoaXMuX3Jl''@;'; put 'put ''bmRlcigpfV9vblN1Y2Nlc3NJdGVtKGcsaCx2LHkpe2cuX29uU3VjY2VzcyhoLHYseSksdGhpcy5vblN1Y2Nlc3NJdGVtKGcsaCx2LHkpfV9vbkNhbmNlbEl0ZW0oZyxoLHYseSl7Zy5fb25DYW5jZWwoaCx2LHkpLHRoaXMub25DYW5jZWxJdGVtKGcsaCx2LHkpfX1sZXQgRTV0PSgoKT0+e2Ns''@;'; put 'put ''YXNzIGR7Y29uc3RydWN0b3IoaCl7dGhpcy5vbkZpbGVTZWxlY3RlZD1uZXcgYXIsdGhpcy5lbGVtZW50PWh9Z2V0T3B0aW9ucygpe3JldHVybiB0aGlzLnVwbG9hZGVyLm9wdGlvbnN9Z2V0RmlsdGVycygpe3JldHVybnt9fWlzRW1wdHlBZnRlclNlbGVjdGlvbigpe3JldHVybiEhdGhpcy5l''@;'; put 'put ''bGVtZW50Lm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlcy5tdWx0aXBsZX1vbkNoYW5nZSgpe2xldCBoPXRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmZpbGVzLHY9dGhpcy5nZXRPcHRpb25zKCkseT10aGlzLmdldEZpbHRlcnMoKTt0aGlzLnVwbG9hZGVyLmFkZFRvUXVldWUoaCx2LHkpLHRo''@;'; put 'put ''aXMub25GaWxlU2VsZWN0ZWQuZW1pdChoKSx0aGlzLmlzRW1wdHlBZnRlclNlbGVjdGlvbigpJiYodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQudmFsdWU9IiIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChibykpfSxkLlx1MDI3NWRpcj1X''@;'; put 'put ''aSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZzJGaWxlU2VsZWN0IiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImNoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNoYW5nZSgpfSl9LGlucHV0czp7dXBsb2FkZXI6InVwbG9hZGVyIn0sb3V0cHV0czp7b25G''@;'; put 'put ''aWxlU2VsZWN0ZWQ6Im9uRmlsZVNlbGVjdGVkIn19KSxkfSkoKSx4NXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmZpbGVPdmVyPW5ldyBhcix0aGlzLm9uRmlsZURyb3A9bmV3IGFyLHRoaXMuZWxlbWVudD1ofWdldE9wdGlvbnMoKXtyZXR1cm4gdGhpcy51cGxvYWRlci5v''@;'; put 'put ''cHRpb25zfWdldEZpbHRlcnMoKXtyZXR1cm57fX1vbkRyb3AoaCl7bGV0IHY9dGhpcy5fZ2V0VHJhbnNmZXIoaCk7aWYoIXYpcmV0dXJuO2xldCB5PXRoaXMuZ2V0T3B0aW9ucygpLEM9dGhpcy5nZXRGaWx0ZXJzKCk7dGhpcy5fcHJldmVudEFuZFN0b3AoaCksdGhpcy51cGxvYWRlci5hZGRU''@;'; put 'put ''b1F1ZXVlKHYuZmlsZXMseSxDKSx0aGlzLmZpbGVPdmVyLmVtaXQoITEpLHRoaXMub25GaWxlRHJvcC5lbWl0KHYuZmlsZXMpfW9uRHJhZ092ZXIoaCl7bGV0IHY9dGhpcy5fZ2V0VHJhbnNmZXIoaCk7IXRoaXMuX2hhdmVGaWxlcyh2LnR5cGVzKXx8KHYuZHJvcEVmZmVjdD0iY29weSIsdGhp''@;'; put 'put ''cy5fcHJldmVudEFuZFN0b3AoaCksdGhpcy5maWxlT3Zlci5lbWl0KCEwKSl9b25EcmFnTGVhdmUoaCl7dGhpcy5lbGVtZW50JiZoLmN1cnJlbnRUYXJnZXQ9PT10aGlzLmVsZW1lbnRbMF18fCh0aGlzLl9wcmV2ZW50QW5kU3RvcChoKSx0aGlzLmZpbGVPdmVyLmVtaXQoITEpKX1fZ2V0VHJh''@;'; put 'put ''bnNmZXIoaCl7cmV0dXJuIGguZGF0YVRyYW5zZmVyP2guZGF0YVRyYW5zZmVyOmgub3JpZ2luYWxFdmVudC5kYXRhVHJhbnNmZXJ9X3ByZXZlbnRBbmRTdG9wKGgpe2gucHJldmVudERlZmF1bHQoKSxoLnN0b3BQcm9wYWdhdGlvbigpfV9oYXZlRmlsZXMoaCl7cmV0dXJuISFoJiYoaC5pbmRl''@;'; put 'put ''eE9mPy0xIT09aC5pbmRleE9mKCJGaWxlcyIpOiEhaC5jb250YWlucyYmaC5jb250YWlucygiRmlsZXMiKSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGJvKSl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsIm5nMkZp''@;'; put 'put ''bGVEcm9wIiwiIl1dLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYpezEmaCYmR24oImRyb3AiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRHJvcChDKX0pKCJkcmFnb3ZlciIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EcmFnT3ZlcihDKX0pKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKEMpe3JldHVy''@;'; put 'put ''biB2Lm9uRHJhZ0xlYXZlKEMpfSl9LGlucHV0czp7dXBsb2FkZXI6InVwbG9hZGVyIn0sb3V0cHV0czp7ZmlsZU92ZXI6ImZpbGVPdmVyIixvbkZpbGVEcm9wOiJvbkZpbGVEcm9wIn19KSxkfSkoKSxUNXQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3Jl''@;'; put 'put ''dHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmFdfSksZH0pKCkseW1lPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlw''@;'; put 'put ''ZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhXX0pLGR9KSgpLEhuZT0oKCk9PntjbGFzcyBke25nT25Jbml0KCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtw''@;'; put 'put ''cm92aWRlcnM6W09ILExIXSxpbXBvcnRzOltiYSx0ZCxYaCxuTyx5bWUsUGplLmZvclJvb3QoKV19KSxkfSkoKSxObmU9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3''@;'; put 'put ''NWluaj1iMCh7aW1wb3J0czpbYmFdfSksZH0pKCksd21lPSgoKT0+e2NsYXNzIGR7fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NW1vZD1jbyh7dHlwZTpkfSksZC5cdTAyNzVpbmo9YjAoe2ltcG9ydHM6W2JhLHRkLG5PLFhoLEhuZSxO''@;'; put 'put ''bmUseW1lXX0pLGR9KSgpO3ZhciBibWUsX21lLENtZSxrbWUsU21lLFNNPUwoMzA2MjgpO0woNDM5OSksd0xlKCksZnVuY3Rpb24gSTV0KGQpe3ZhciBnPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cualF1ZXJ5OyFnfHwoZy5mbi5oYW5kc29udGFibGU9ZnVuY3Rpb24oaCl7''@;'; put 'put ''dmFyIEksdj10aGlzLmZpcnN0KCkseT12LmRhdGEoImhhbmRzb250YWJsZSIpO2lmKCJzdHJpbmciIT10eXBlb2YgaCl7dmFyIEM9aHx8e307cmV0dXJuIHk/eS51cGRhdGVTZXR0aW5ncyhDKTooeT1uZXcgZC5Db3JlKHZbMF0sQyksdi5kYXRhKCJoYW5kc29udGFibGUiLHkpLHkuaW5pdCgp''@;'; put 'put ''KSx2fWlmKHkpe2lmKHZvaWQgMD09PXlbaF0pdGhyb3cgbmV3IEVycm9yKCJIYW5kc29udGFibGUgZG8gbm90IHByb3ZpZGUgYWN0aW9uOiAiLmNvbmNhdChoKSk7Zm9yKHZhciBaLHVlPWFyZ3VtZW50cy5sZW5ndGgsX2U9bmV3IEFycmF5KHVlPjE/dWUtMTowKSxCZT0xO0JlPHVlO0JlKysp''@;'; put 'put ''X2VbQmUtMV09YXJndW1lbnRzW0JlXTtJPShaPXlbaF0pLmNhbGwuYXBwbHkoWixbeV0uY29uY2F0KF9lKSksImRlc3Ryb3kiPT09aCYmdi5yZW1vdmVEYXRhKCl9cmV0dXJuIEl9KX0oSmwpLEpsLl9fR2hvc3RUYWJsZT1XNmUsSmwuX2dldExpc3RlbmVyc0NvdW50ZXI9ZnVuY3Rpb24gVlpl''@;'; put 'put ''KCl7cmV0dXJuIGFlZX0sSmwuX2dldFJlZ2lzdGVyZWRNYXBzQ291bnRlcj1mdW5jdGlvbiBxSmUoKXtyZXR1cm4gbTRlfSxKbC5FdmVudE1hbmFnZXI9TDE7dmFyIEQ1dD1bQixFZSx0ZSxKLG1lLHJlLFUsTixFLFEsYWUsV10sTDV0PVtqLFldO0psLmhlbHBlcj17fSxKbC5kb209e30sVXIo''@;'; put 'put ''RDV0LGZ1bmN0aW9uKGQpe1VyKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGQpLGZ1bmN0aW9uKGcpeyJfIiE9PWcuY2hhckF0KDApJiYoSmwuaGVscGVyW2ddPWRbZ10pfSl9KSxVcihMNXQsZnVuY3Rpb24oZCl7VXIoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZCksZnVuY3Rpb24o''@;'; put 'put ''Zyl7Il8iIT09Zy5jaGFyQXQoMCkmJihKbC5kb21bZ109ZFtnXSl9KX0pLEpsLmNlbGxUeXBlcz1udWxsIT09KGJtZT1KbC5jZWxsVHlwZXMpJiZ2b2lkIDAhPT1ibWU/Ym1lOnt9LFVyKGpRZSgpLGZ1bmN0aW9uKGQpe0psLmNlbGxUeXBlc1tkXT1aZWUoZCl9KSxKbC5jZWxsVHlwZXMucmVn''@;'; put 'put ''aXN0ZXJDZWxsVHlwZT1rOCxKbC5jZWxsVHlwZXMuZ2V0Q2VsbFR5cGU9WmVlLEpsLmVkaXRvcnM9bnVsbCE9PShfbWU9SmwuZWRpdG9ycykmJnZvaWQgMCE9PV9tZT9fbWU6e30sVXIoUlplKCksZnVuY3Rpb24oZCl7SmwuZWRpdG9yc1siIi5jb25jYXQobGQoZCksIkVkaXRvciIpXT1sX2Uo''@;'; put 'put ''ZCl9KSxKbC5lZGl0b3JzLnJlZ2lzdGVyRWRpdG9yPXNkLEpsLmVkaXRvcnMuZ2V0RWRpdG9yPWxfZSxKbC5yZW5kZXJlcnM9bnVsbCE9PShDbWU9SmwucmVuZGVyZXJzKSYmdm9pZCAwIT09Q21lP0NtZTp7fSxVcihVemUoKSxmdW5jdGlvbihkKXt2YXIgZz1XM2UoZCk7ImJhc2UiPT09ZCYm''@;'; put 'put ''KEpsLnJlbmRlcmVycy5jZWxsRGVjb3JhdG9yPWcpLEpsLnJlbmRlcmVyc1siIi5jb25jYXQobGQoZCksIlJlbmRlcmVyIildPWd9KSxKbC5yZW5kZXJlcnMucmVnaXN0ZXJSZW5kZXJlcj1NZyxKbC5yZW5kZXJlcnMuZ2V0UmVuZGVyZXI9VzNlLEpsLnZhbGlkYXRvcnM9bnVsbCE9PShrbWU9''@;'; put 'put ''SmwudmFsaWRhdG9ycykmJnZvaWQgMCE9PWttZT9rbWU6e30sVXIoWHplKCksZnVuY3Rpb24oZCl7SmwudmFsaWRhdG9yc1siIi5jb25jYXQobGQoZCksIlZhbGlkYXRvciIpXT1ZM2UoZCl9KSxKbC52YWxpZGF0b3JzLnJlZ2lzdGVyVmFsaWRhdG9yPWdPLEpsLnZhbGlkYXRvcnMuZ2V0VmFs''@;'; put 'put ''aWRhdG9yPVkzZSxKbC5wbHVnaW5zPW51bGwhPT0oU21lPUpsLnBsdWdpbnMpJiZ2b2lkIDAhPT1TbWU/U21lOnt9LFVyKEczZSgpLGZ1bmN0aW9uKGQpe0psLnBsdWdpbnNbZF09V1ooZCl9KSxKbC5wbHVnaW5zWyIiLmNvbmNhdChsZChZcy5QTFVHSU5fS0VZKSwiUGx1Z2luIildPVlzLEps''@;'; put 'put ''LnBsdWdpbnMucmVnaXN0ZXJQbHVnaW49T3MsSmwucGx1Z2lucy5nZXRQbHVnaW49V1o7Y29uc3QgTzV0PUpsLGJMZT0oZCxnLGgpPT57Zm9yKGxldCB2IG9mIGQpe2NvbnN0IHk9Zy5maW5kKEk9PkkuZGF0YT09PXYuTkFNRSksQz1oLnZhcnNbdi5OQU1FXTtDJiYodi5UWVBFPVsiREFURSIs''@;'; put 'put ''IkRBVEVUSU1FIiwiVElNRSJdLmluY2x1ZGVzKHYuRERUWVBFKT8ibnVtIjpDLnR5cGUpLHkmJnYuREVTQyYmKHkuZGVzYz12LkRFU0MpLHkmJkMubGVuZ3RoJiYoeS5sZW5ndGg9cGFyc2VJbnQoQy5sZW5ndGgpKSx5JiZ2LkNMU19SVUxFJiYoeS5jbHNSdWxlPXYuQ0xTX1JVTEUpfXJldHVy''@;'; put 'put ''biBnfTtmdW5jdGlvbiBNbWUoZCxnKXtpZihudWxsPT1kfHwhaXNOYU4oZCkmJmlzRmluaXRlKGQpKXJldHVybiBnJiZnKCEwKSwhMDtjb25zdCBoPSgwLGJ3LmlzU3BlY2lhbE1pc3NpbmcpKGQpO3JldHVybiBnJiZnKGgpLGh9Y29uc3QgX0xlPXtDQVNFOihkLGcpPT57c3dpdGNoKGcpe2Nh''@;'; put 'put ''c2UiVVBDQVNFIjpyZXR1cm4hIVt2b2lkIDAsbnVsbF0uaW5jbHVkZXMoZCl8fCJzdHJpbmciPT10eXBlb2YgZCYmZC50b1N0cmluZygpPT09ZC50b1N0cmluZygpLnRvVXBwZXJDYXNlKCk7Y2FzZSJMT1dDQVNFIjpyZXR1cm4hIVt2b2lkIDAsbnVsbF0uaW5jbHVkZXMoZCl8fCJzdHJpbmci''@;'; put 'put ''PT10eXBlb2YgZCYmZC50b1N0cmluZygpPT09ZC50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl9cmV0dXJuITB9LE1JTlZBTDooZCxnKT0+e2NvbnN0IGg9TW1lKGQpLHY9cGFyc2VGbG9hdChkKTtyZXR1cm4oIWh8fCFpc05hTih2KSkmJnY+PU51bWJlcihnLnRvU3RyaW5nKCkpfSxNQVhWQUw6''@;'; put 'put ''KGQsZyk9Pntjb25zdCBoPU1tZShkKSx2PXBhcnNlRmxvYXQoZCk7cmV0dXJuISghaHx8IWlzTmFOKHYpKXx8djw9TnVtYmVyKGcudG9TdHJpbmcoKSl9LE5PVE5VTEw6KGQsZyk9Pm51bGwhPWQmJmQudG9TdHJpbmcoKS5sZW5ndGg+MH07Y2xhc3MgRjV0e2NvbnN0cnVjdG9yKGcsaCx2LHks''@;'; put 'put ''QyxJKXt0aGlzLnJ1bGVzPVtdLHRoaXMuZHFydWxlcz1bXSx0aGlzLmRxZGF0YT1bXSx0aGlzLmhpZGRlbkNvbHVtbnM9W10sdGhpcy5wcmltYXJ5S2V5cz1bXSx0aGlzLmV4ZWN1dGVIb3RWYWxpZGF0b3I9KFosdWUsX2UpPT57Y29uc3QgQmU9T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWdu''@;'; put 'put ''KHt9LFopLHt2YWxpZGF0b3I6dm9pZCAwLGNvcnJlY3RGb3JtYXQ6ITEscm93OjAsY29sOjAsaW5zdGFuY2U6bmV3IE81dChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx7fSksdmlzdWFsUm93OjAsdmlzdWFsQ29sOjAscHJvcDowfSk7bnVsbD09dWUmJih1ZT0iIiksWiYmWi52YWxp''@;'; put 'put ''ZGF0b3ImJiJmdW5jdGlvbiI9PXR5cGVvZiBaLnZhbGlkYXRvcj9aLnZhbGlkYXRvci5jYWxsKEJlLHVlLE5lPT57X2UmJl9lKE5lKX0pOl9lJiZfZSghMSl9LHRoaXMuc2FzcGFyYW1zPWcsdGhpcy5ob3RJbnN0YW5jZT1JLHRoaXMucnVsZXM9KGQ9Pnt0cnl7cmV0dXJuIEpTT04ucGFyc2Uo''@;'; put 'put ''YFske2R9XWApfWNhdGNoKGcpe3JldHVybltdfX0pKGcuQ09MVFlQRSksdGhpcy5ydWxlcz1iTGUodix0aGlzLnJ1bGVzLGgpLHRoaXMuZHFydWxlcz15LHRoaXMuZHFkYXRhPUMsdGhpcy5wcmltYXJ5S2V5cz1nLlBLLnNwbGl0KCIgIiksdGhpcy51cGRhdGVEcURhdGEoKSx0aGlzLnNldHVw''@;'; put 'put ''VmFsaWRhdGlvbnMoKX1nZXRSdWxlcygpe3JldHVybiB0aGlzLnJ1bGVzfWdldFJ1bGUoZyl7Y29uc3QgaD10aGlzLmdldFJ1bGVJbmRleChnKTtyZXR1cm4gdGhpcy5ydWxlc1toXX1nZXRIaWRkZW5Db2x1bW5zKCl7cmV0dXJuIHRoaXMuaGlkZGVuQ29sdW1uc311cGRhdGVSdWxlKGcsaCl7''@;'; put 'put ''bGV0IHY9dGhpcy5nZXRSdWxlSW5kZXgoZyk7dGhpcy5ydWxlc1t2XT1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5ydWxlc1t2XSksaCl9cmVtb3ZlUnVsZShnKXtjb25zdCBoPXRoaXMuZ2V0UnVsZUluZGV4KGcpO3RoaXMucnVsZXMuc3BsaWNlKGgsMSl9Z2V0RHFEZXRh''@;'; put 'put ''aWxzKGcpe3JldHVybiBnP3RoaXMuZHFydWxlcy5maWx0ZXIoaD0+aC5CQVNFX0NPTD09PWcpOnRoaXMuZHFydWxlc31pc0RxQ29sKGcpe3JldHVybiEhdGhpcy5kcXJ1bGVzLmZpbmQoaD0+aC5CQVNFX0NPTD09PWcpfWhhc0RxUnVsZXMoZyxoLHY9ITEpe3JldHVybiB2P3RoaXMuZHFydWxl''@;'; put 'put ''cy5maWx0ZXIoeT0+eS5CQVNFX0NPTD09PWcmJmguaW5jbHVkZXMoeS5SVUxFX1RZUEUpKS5sZW5ndGg9PT1oLmxlbmd0aDohIXRoaXMuZHFydWxlcy5maW5kKHk9PnkuQkFTRV9DT0w9PT1nJiZoLmluY2x1ZGVzKHkuUlVMRV9UWVBFKSl9Z2V0RHFEcm9wZG93blNvdXJjZShnKXtsZXQgaD1b''@;'; put 'put ''XTtyZXR1cm4gdGhpcy5kcXJ1bGVzLmZvckVhY2godj0+e3YuQkFTRV9DT0wudG9TdHJpbmcoKT09PWcuZGF0YSYmZy5kYXRhLnRvU3RyaW5nKCkmJlsiSEFSRFNFTEVDVCIsIlNPRlRTRUxFQ1QiLCJIQVJEU0VMRUNUX0hPT0siLCJTT0ZUU0VMRUNUX0hPT0siXS5pbmNsdWRlcyh2LlJVTEVf''@;'; put 'put ''VFlQRS50b1N0cmluZygpKSYmdGhpcy5kcWRhdGEuZmlsdGVyKHk9PnkuQkFTRV9DT0w9PT12LkJBU0VfQ09MKS5mb3JFYWNoKHk9PntoLnB1c2goZy50eXBlJiYibnVtZXJpYyI9PT1nLnR5cGU/TnVtYmVyKHkuUlVMRV9EQVRBKTp5LlJVTEVfREFUQSl9KX0pLGh9dXBkYXRlRHFEYXRhKCl7''@;'; put 'put ''dGhpcy5kcWRhdGEubGVuZ3RoPjAmJihkPT57Y29uc3QgZz1bXTtyZXR1cm4gdGhpcy5kcWRhdGEuZm9yRWFjaChoPT57Zy5pbmNsdWRlcyhoLkJBU0VfQ09MKXx8Zy5wdXNoKGguQkFTRV9DT0wpfSksZ30pKCkuZm9yRWFjaChoPT57bGV0IHY9ITE7dGhpcy5kcXJ1bGVzLmxlbmd0aD4wJiZ0''@;'; put 'put ''aGlzLmRxcnVsZXMuZm9yRWFjaCh5PT57eS5CQVNFX0NPTD09PWgmJigiU09GVFNFTEVDVCI9PT15LlJVTEVfVFlQRXx8IkhBUkRTRUxFQ1QiPT09eS5SVUxFX1RZUEUpJiYodj0hMCl9KSx2fHx0aGlzLmRxcnVsZXMucHVzaCh7QkFTRV9DT0w6aCxSVUxFX1RZUEU6IlNPRlRTRUxFQ1QiLFJV''@;'; put 'put ''TEVfVkFMVUU6aCxYOjF9KX0pfXNldHVwVmFsaWRhdGlvbnMoKXt2YXIgZztmb3IobGV0IGg9MDtoPHRoaXMucnVsZXMubGVuZ3RoO2grKyl7Y29uc3Qgdj10aGlzLnJ1bGVzW2hdLmRhdGF8fCIiO2lmKCJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iIT09dil7aWYodGhpcy5pc0Rx''@;'; put 'put ''Q29sKHYpKXtsZXQgQz10aGlzLmdldERxRHJvcGRvd25Tb3VyY2UodGhpcy5ydWxlc1toXSk7Qy5sZW5ndGg+MCYmKHRoaXMucnVsZXNbaF0uc291cmNlPUMsdGhpcy5ydWxlc1toXS50eXBlPSJhdXRvY29tcGxldGUiLHRoaXMucnVsZXNbaF0uZmlsdGVyPSExKSx0aGlzLmhhc0RxUnVsZXMo''@;'; put 'put ''dixbIlNPRlRTRUxFQ1QiXSkmJih0aGlzLnJ1bGVzW2hdLnN0cmljdD0hMSksdGhpcy5oYXNEcVJ1bGVzKHYsWyJIQVJEU0VMRUNUIl0pJiYodGhpcy5ydWxlc1toXS5zdHJpY3Q9ITApLHRoaXMuaGFzRHFSdWxlcyh2LFsiU09GVFNFTEVDVF9IT09LIl0pJiYodGhpcy5ydWxlc1toXS5zdHJp''@;'; put 'put ''Y3Q9ITEpLHRoaXMuaGFzRHFSdWxlcyh2LFsiSEFSRFNFTEVDVF9IT09LIl0pJiYodGhpcy5ydWxlc1toXS5zdHJpY3Q9ITApLHRoaXMuaGFzRHFSdWxlcyh2LFsiTk9UTlVMTCJdKSYmKHRoaXMucnVsZXNbaF0uYWxsb3dFbXB0eT0hMSl9InRydWUiPT09dGhpcy5ydWxlc1toXS5jb3JyZWN0''@;'; put 'put ''Rm9ybWF0JiYodGhpcy5ydWxlc1toXS5jb3JyZWN0Rm9ybWF0PSEwKSx0aGlzLnNldERlZmF1bHRWYWxpZGF0b3IodGhpcyxoKSx0aGlzLnNldENvbHVtbkxldmVsU2VjdXJpdHkoaCl9fW51bGwhPT0oZz10aGlzLnNhc3BhcmFtcykmJnZvaWQgMCE9PWcmJmcuQ0xTX0ZMQUcmJnRoaXMuaGlk''@;'; put 'put ''ZGVuQ29sdW1ucy5wdXNoKDApfXNldERlZmF1bHRWYWxpZGF0b3IoZyxoKXt0aGlzLnJ1bGVzW2hdLnZhbGlkYXRvcj1mdW5jdGlvbih2LHkpe3ZhciBDO2NvbnN0IEk9bnVsbD09PShDPWcucnVsZXNbaF0uZGF0YSl8fHZvaWQgMD09PUM/dm9pZCAwOkMudG9TdHJpbmcoKSxaPWcucnVsZXNb''@;'; put 'put ''aF0udHlwZXx8IiI7bGV0IHVlPW51bGw7cmV0dXJuImF1dG9jb21wbGV0ZSIhPT10aGlzLmVkaXRvcnx8KGcuZ2V0SGFuZHNvbnRhYmxlVmFsaWRhdG9yKCJhdXRvY29tcGxldGUiKS5jYWxsKHRoaXMsdixfZT0+e3VlPV9lfSksdWUpPyhnLmdldEhhbmRzb250YWJsZVZhbGlkYXRvcihaKS5j''@;'; put 'put ''YWxsKHRoaXMsdixfZT0+e3VlPV9lfSksdWU/Zy5sZW5ndGhDaGVjayh2LGcucnVsZXNbaF0ubGVuZ3RoLFopP2cuaXNEcUNvbChJfHwiIikmJiEoKGQsZyk9Pntmb3IobGV0IGggb2YgZClpZihfTGVbaC5SVUxFX1RZUEVdJiYhX0xlW2guUlVMRV9UWVBFXShnLGguUlVMRV9WQUxVRSkpcmV0''@;'; put 'put ''dXJuIGNvbnNvbGUud2FybihgRFEgSW52YWxpZCBSZWFzb246ICR7aC5SVUxFX1RZUEV9XG5WYWx1ZTogJHtnfSlcblJ1bGUgVmFsdWU6ICR7aC5SVUxFX1ZBTFVFLmxlbmd0aD4wJiYiICIhPT1oLlJVTEVfVkFMVUU/aC5SVUxFX1ZBTFVFOiJOb3QgZGVmaW5lZCJ9YCksITE7cmV0dXJuITB9''@;'; put 'put ''KShnLmdldERxRGV0YWlscyhJfHwiIiksdik/KGNvbnNvbGUud2FybihgRFEgVmFsaWRhdGlvbiAtIGludmFsaWQgKFZhbHVlOiAke3Z9KWApLHZvaWQgeSghMSkpOnZvaWQgeSghMCk6KGNvbnNvbGUud2FybihgTGVuZ3RoIFZhbGlkYXRpb24gLSBpbnZhbGlkIChWYWx1ZTogJHt2fSlgKSx2''@;'; put 'put ''b2lkIHkoITEpKTooY29uc29sZS53YXJuKGBIT1QgTmF0aXZlIFZhbGlkYXRpb24gLSBpbnZhbGlkIChWYWx1ZTogJHt2fSlgKSx2b2lkIHkoITEpKSk6KGNvbnNvbGUud2FybihgSE9UIE5hdGl2ZSBWYWxpZGF0aW9uIChhdXRvY29tcGxldGUpIC0gaW52YWxpZCAoVmFsdWU6ICR7dn0pYCks''@;'; put 'put ''dm9pZCB5KCExKSl9fWxlbmd0aENoZWNrKGcsaCx2KXtpZigoMCxidy5pc1NwZWNpYWxNaXNzaW5nKShnKXx8bnVsbD09Z3x8bnVsbD09aClyZXR1cm4hMDtpZigibnVtZXJpYyI9PT12KXtpZig4PT09aClyZXR1cm4hMDtpZihoPDN8fGg+OHx8IU51bWJlci5pc0ludGVnZXIoaCkpcmV0dXJu''@;'; put 'put ''IGNvbnNvbGUud2FybigiaW52YWxpZCBsZW5ndGggZnJvbSBTQVMsIHJ1bGUgbGVuZ3RoIGNhbiBvbmx5IGJlIGFuIGludGVnZXIgYmV0d2VlbiAzLTgiKSwhMTtjb25zdCB5PU51bWJlcihnKT09PWcmJmclMSE9MDtpZihoPDgmJnkpcmV0dXJuIGNvbnNvbGUud2FybigicmVkdWNlZCBsZW5n''@;'; put 'put ''dGggbnVtZXJpY3MgY2Fubm90IGNvbnRhaW4gZGVjaW1hbHMgZWxzZSBwcmVjaXNpb24gd2lsbCBiZSBhZmZlY3RlZCIpLCExO3N3aXRjaChoKXtjYXNlIDM6cmV0dXJuIGc8PTgxOTI7Y2FzZSA0OnJldHVybiBnPD0yMDk3MTUyO2Nhc2UgNTpyZXR1cm4gZzw9NTM2ODcwOTEyO2Nhc2UgNjpy''@;'; put 'put ''ZXR1cm4gZzw9MTM3NDM4OTUzNDcyO2Nhc2UgNzpyZXR1cm4gZzw9MzUxODQzNzIwODg4MzJ9fXJldHVybiBnLnRvU3RyaW5nKCkubGVuZ3RoPD1ofWdldEhhbmRzb250YWJsZVZhbGlkYXRvcihnKXtzd2l0Y2goZyl7Y2FzZSJhdXRvY29tcGxldGUiOnJldHVybiBkejtjYXNlIm51bWVyaWMi''@;'; put 'put ''OnJldHVybiBNbWU7Y2FzZSJkYXRlIjpyZXR1cm4gTXRlO2Nhc2UidGltZSI6cmV0dXJuIEV0ZTtkZWZhdWx0OnJldHVybihoLHYpPT52P3YoITApOm51bGx9fWdldFJ1bGVJbmRleChnKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGc/Zzp0aGlzLnJ1bGVzLmZpbmRJbmRleChoPT5oLmRhdGE9''@;'; put 'put ''PT1nKX1zZXRDb2x1bW5MZXZlbFNlY3VyaXR5KGcpe3ZhciBoO2lmKG51bGw9PT0oaD10aGlzLnNhc3BhcmFtcyl8fHZvaWQgMD09PWh8fCFoLkNMU19GTEFHKXJldHVybjtjb25zdCB2PXRoaXMucnVsZXNbZ107aWYodGhpcy5wcmltYXJ5S2V5cy5pbmNsdWRlcyh2LmRhdGEpJiYodi5jbHNS''@;'; put 'put ''dWxlPSJSRUFEIiksIkhJREUiPT09di5jbHNSdWxlJiZ0aGlzLmhpZGRlbkNvbHVtbnMucHVzaChnKSwiUkVBRCI9PT12LmNsc1J1bGUmJih2LnJlYWRPbmx5PSEwKSwiRURJVCI9PT12LmNsc1J1bGUpe3YucmVhZE9ubHk9ITE7Y29uc3QgeT10aGlzLmhpZGRlbkNvbHVtbnMuaW5kZXhPZihn''@;'; put 'put ''KTt0aGlzLmhpZGRlbkNvbHVtbnMuc3BsaWNlKHksMSl9fX1jb25zdCBWbmU9e251bWVyaWM6MCxkZWZhdWx0OiIifSxINXQ9KGQsZyk9PmQ/ImF1dG9jb21wbGV0ZSI9PT1kP2cmJmcuc291cmNlP2cuc291cmNlWzBdOltdOlZuZS5oYXNPd25Qcm9wZXJ0eShkKT9WbmVbZF06Vm5lLmRlZmF1''@;'; put 'put ''bHQ6Vm5lLmRlZmF1bHQsQ0xlPWQ9PntsZXQgZz0oIjAiK2QuZ2V0VVRDSG91cnMoKSkuc2xpY2UoLTIpKyI6IjtyZXR1cm4gZz1nKygiMCIrZC5nZXRVVENNaW51dGVzKCkpLnNsaWNlKC0yKSsiOiIsZys9KCIwIitkLmdldFVUQ1NlY29uZHMoKSkuc2xpY2UoLTIpLGd9LEVtZT1kPT5kLmdl''@;'; put 'put ''dEZ1bGxZZWFyKCkrIi0iKygiMCIrKGQuZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpKyItIisoIjAiK2QuZ2V0RGF0ZSgpKS5zbGljZSgtMikseG1lPWQ9Pm5ldyBEYXRlKE1hdGgucm91bmQoODY0MDAqKGQtMjU1NjkpKjFlMykpLGo1dD0oZCxnKT0+e2NvbnN0IGg9W10sdj1bXTtyZXR1cm4g''@;'; put 'put ''Zy5mb3JFYWNoKHk9PnstMT09PWQuaW5kZXhPZih5KT9oLnB1c2goeSk6di5wdXNoKHkpfSksW2gsdl19LFo1dD0oZCxnLGgsdix5LEMsSSk9PihnLmlubmVySFRNTD1gJHtDP0MudG9TdHJpbmcoKToiIn0gPGNkcy1pY29uIHNoYXBlPSJleGNsYW1hdGlvbi1jaXJjbGUiIHN0YXR1cz0id2Fy''@;'; put 'put ''bmluZyI+PC9jZHMtaWNvbj5gLGcpLFRtZT0oZCxnLGgsdix5LEMsSSk9PihnLmlubmVySFRNTD1DfHwiIixnKSx6NXQ9KGQsZyxoLHYseSxDLEkpPT4oZy5pbm5lckhUTUw9YCR7Qz9DLnRvU3RyaW5nKCk6IiJ9IDxzcGFuIGNsYXNzPSJzcGlubmVyIHNwaW5uZXItc20gdmVydGljYWwtYWxp''@;'; put 'put ''Z24tbWlkZGxlIj48L3NwYW4+YCxnKSxJbWU9ZD0+ISEvXi17MCwxfVxkKyQvLnRlc3QoZCksa0xlPWQ9PiEhL15cZCtcLlxkKyQvLnRlc3QoZCksTU09dm9pZCAwLFc1dD1bImVuLUdCIixbWyJhIiwicCJdLFsiYW0iLCJwbSJdLE1NXSxbWyJhbSIsInBtIl0sTU0sTU1dLFtbIlMiLCJNIiwi''@;'; put 'put ''VCIsIlciLCJUIiwiRiIsIlMiXSxbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLFsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJG''@;'; put 'put ''ciIsIlNhIl1dLE1NLFtbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJBIiwiUyIsIk8iLCJOIiwiRCJdLFsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwdCIsIk9jdCIsIk5vdiIsIkRlYyJdLFsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFy''@;'; put 'put ''Y2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXV0sTU0sW1siQiIsIkEiXSxbIkJDIiwiQUQiXSxbIkJlZm9yZSBDaHJpc3QiLCJBbm5vIERvbWluaSJdXSwxLFs2LDBdLFsiZGQvTU0veSIs''@;'; put 'put ''ImQgTU1NIHkiLCJkIE1NTU0geSIsIkVFRUUsIGQgTU1NTSB5Il0sWyJISDptbSIsIkhIOm1tOnNzIiwiSEg6bW06c3MgeiIsIkhIOm1tOnNzIHp6enoiXSxbInsxfSwgezB9IixNTSwiezF9ICdhdCcgezB9IixNTV0sWyIuIiwiLCIsIjsiLCIlIiwiKyIsIi0iLCJFIiwiXHhkNyIsIlx1MjAz''@;'; put 'put ''MCIsIlx1MjIxZSIsIk5hTiIsIjoiXSxbIiMsIyMwLiMjIyIsIiMsIyMwJSIsIlx4YTQjLCMjMC4wMCIsIiNFMCJdLCJHQlAiLCJceGEzIiwiQnJpdGlzaCBQb3VuZCIse0pQWTpbIkpQXHhhNSIsIlx4YTUiXSxVU0Q6WyJVUyQiLCIkIl19LCJsdHIiLGZ1bmN0aW9uIEc1dChkKXtjb25zdCBo''@;'; put 'put ''PU1hdGguZmxvb3IoTWF0aC5hYnMoZCkpLHY9ZC50b1N0cmluZygpLnJlcGxhY2UoL15bXi5dKlwuPy8sIiIpLmxlbmd0aDtyZXR1cm4gMT09PWgmJjA9PT12PzE6NX1dO2xldCBTTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMudGVtcGxhdGVSZWY9aCx0aGlzLnZjUmVm''@;'; put 'put ''PXYsdGhpcy5jb250ZXh0PXskaW1wbGljaXQ6bnVsbCxuZ1ZhcjpudWxsfSx0aGlzLmhhc1ZpZXc9ITF9c2V0IG5nVmFyKGgpe3RoaXMuY29udGV4dC4kaW1wbGljaXQ9dGhpcy5jb250ZXh0Lm5nVmFyPWgsdGhpcy5oYXNWaWV3fHwodGhpcy52Y1JlZi5jcmVhdGVFbWJlZGRlZFZpZXcodGhp''@;'; put 'put ''cy50ZW1wbGF0ZVJlZix0aGlzLmNvbnRleHQpLHRoaXMuaGFzVmlldz0hMCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KHFyKSxLdChVaSkpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ1ZhciIsIiJdXSxpbnB1''@;'; put 'put ''dHM6e25nVmFyOiJuZ1ZhciJ9fSksZH0pKCk7Y29uc3QgWTV0PVsiaW5wdXQiXSxVNXQ9ZnVuY3Rpb24oZCxnKXtyZXR1cm57IndpZHRoLnB4IjpkLCJtYXgtaGVpZ2h0LnB4IjpnfX0sUTV0PVsiKiJdO2xldCBKNXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmNkcj1oLHRo''@;'; put 'put ''aXMuaW5wdXRJZD0iIix0aGlzLnBsYWNlaG9sZGVyPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuYXV0b2NvbXBsZXRlPSJvZmYiLHRoaXMudGFiaW5kZXg9IiIsdGhpcy5lbWl0T25seVNlbGVjdGVkPSExLHRoaXMub25JbnB1dEtleWRv''@;'; put 'put ''d249bmV3IGFyLHRoaXMub25JbnB1dENoYW5nZT1uZXcgYXIsdGhpcy52YWx1ZUNoYW5nZT1uZXcgYXIsdGhpcy5kYXRhbGlzdE9wZW49ITEsdGhpcy5pbnB1dEZvY3VzZWQ9ITEsdGhpcy5pbnB1dENsaWVudFJlY3Q9e30sdGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMX1uZ09uSW5pdCgp''@;'; put 'put ''e31uZ0FmdGVyVmlld0luaXQoKXtzZXRUaW1lb3V0KCgpPT57dGhpcy5jYWxjdWxhdGVJbnB1dFBvc2l0aW9uKCl9LDUwMCl9b25JbnB1dEZpcmVkKGgsdil7dGhpcy5kYXRhbGlzdE9wZW49ITAsdGhpcy51bnNlbGVjdEFsbE9wdGlvbnMoKSx0aGlzLmZpbHRlck9wdGlvbnNMaXN0KCksKCF0''@;'; put 'put ''aGlzLmVtaXRPbmx5U2VsZWN0ZWR8fHYpJiYodGhpcy5vbklucHV0Q2hhbmdlLmVtaXQoe3RhcmdldDp7dmFsdWU6dGhpcy52YWx1ZX19KSx0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSkpfW9uSW5wdXRDbGljayhoKXt0aGlzLmRhdGFsaXN0T3Blbj0hMH1yZXNldERhdGFsaXN0''@;'; put 'put ''RmlsdGVyKCl7dGhpcy5maWx0ZXJPcHRpb25zTGlzdCghMCl9b25JbnB1dEZvY3VzaW4oaCl7dGhpcy5pbnB1dEZvY3VzZWQ9ITB9b25JbnB1dEZvY3Vzb3V0KGgpe3RoaXMuaW5wdXRGb2N1c2VkPSExLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9ZmlsdGVyT3B0aW9uc0xpc3QoaCl7Y29u''@;'; put 'put ''c3Qgdj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKGAjZGF0YWxpc3RfJHt0aGlzLmlucHV0SWR9IG9wdGlvbmApO2ZvcihsZXQgeT0wO3k8di5sZW5ndGg7eSsrKXtjb25zdCBDPXZbeV07aWYoMD09PXRoaXMudmFsdWUubGVuZ3RoKXtDLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2Nv''@;'; put 'put ''bnRpbnVlfWlmKGgpe0MuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Y29udGludWV9Y29uc3QgdWU9KEMuaW5uZXJUZXh0fHwiIikrKEMudmFsdWV8fCIiKTtudWxsIT11ZSYmdWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLnZhbHVlLnRvTG93ZXJDYXNlKCkpP0MuY2xhc3NMaXN0''@;'; put 'put ''LnJlbW92ZSgiaGlkZGVuIik6Qy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX19c2V0VG9DbG9zZURhdGFsaXN0KCl7dGhpcy5kYXRhbGlzdENsb3NlVGltZW91dD1zZXRUaW1lb3V0KCgpPT57dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZXx8KHRoaXMuZGF0YWxpc3RPcGVuPSExLHRoaXMudW5z''@;'; put 'put ''ZWxlY3RBbGxPcHRpb25zKCksdGhpcy5yZXNldERhdGFsaXN0RmlsdGVyKCkpfSwxMDApfWNhbGN1bGF0ZUlucHV0UG9zaXRpb24oKXtjb25zdCBoPXRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsdj1udWxsPT1oP3ZvaWQgMDpoLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3RoaXMu''@;'; put 'put ''aW5wdXRDbGllbnRSZWN0PXt3aWR0aDp2LndpZHRoLGJvdHRvbTp2LmJvdHRvbX0sdGhpcy5pbm5lckhlaWdodD13aW5kb3cuaW5uZXJIZWlnaHR9b25EYXRhTGlzdE1vdXNlRW50ZXIoaCl7dGhpcy5wcmV2ZW50RGF0YWxpc3RDbG9zZT0hMH1vbkRhdGFMaXN0TW91c2VMZWF2ZShoKXt0aGlz''@;'; put 'put ''LnByZXZlbnREYXRhbGlzdENsb3NlPSExLHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKX1vbkRhdGFMaXN0U2Nyb2xsKGgpe3RoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9b25EYXRhTGlzdENsaWNrKGgpe2NvbnN0IHY9aC50YXJnZXQ7aWYoIk9QVElPTiIhPT12LnRh''@;'; put 'put ''Z05hbWUpcmV0dXJuO2xldCB5PXYuaW5uZXJUZXh0LEM9di52YWx1ZTsoeXx8QykmJihDfHwoQz15KSksQyYmKHRoaXMucHJldmVudERhdGFsaXN0Q2xvc2U9ITEsdGhpcy52YWx1ZT1DLHRoaXMub25JbnB1dEZpcmVkKG51bGwsITApLHRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCkpfW9uTWFp''@;'; put 'put ''bktleWRvd24oaCl7c3dpdGNoKGgua2V5KXtjYXNlIkFycm93VXAiOnRoaXMuZ2V0T3B0aW9uc01vdmVGb2N1cygidXAiKTticmVhaztjYXNlIkFycm93RG93biI6dGhpcy5nZXRPcHRpb25zTW92ZUZvY3VzKCJkb3duIik7YnJlYWs7Y2FzZSJFbnRlciI6dGhpcy5zZWxlY3RGb2N1c2VkT3B0''@;'; put 'put ''aW9uKCk7YnJlYWs7Y2FzZSJFc2NhcGUiOnRoaXMuc2V0VG9DbG9zZURhdGFsaXN0KCl9fXVuc2VsZWN0QWxsT3B0aW9ucygpe2NvbnN0IGg9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb25gKTtmb3IobGV0IHY9MDt2PGgubGVuZ3Ro''@;'; put 'put ''O3YrKyloW3ZdLmNsYXNzTGlzdC5yZW1vdmUoImZvY3VzZWQiKX1zZWxlY3RGb2N1c2VkT3B0aW9uKCl7Y29uc3QgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjZGF0YWxpc3RfJHt0aGlzLmlucHV0SWR9IG9wdGlvbi5mb2N1c2VkYCk7aCYmdGhpcy5vbkRhdGFMaXN0Q2xpY2soe3Rhcmdl''@;'; put 'put ''dDpofSksdGhpcy5zZXRUb0Nsb3NlRGF0YWxpc3QoKX1nZXRPcHRpb25zTW92ZUZvY3VzKGgpe2NvbnN0IHY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChgI2RhdGFsaXN0XyR7dGhpcy5pbnB1dElkfSBvcHRpb246bm90KC5oaWRkZW4pYCk7bGV0IHk9MDtmb3IobGV0IEM9MDtDPHYubGVu''@;'; put 'put ''Z3RoO0MrKyl7Y29uc3QgST12W0NdO2lmKEkuY2xhc3NMaXN0LmNvbnRhaW5zKCJmb2N1c2VkIikpe3k9ImRvd24iPT09aD9DKzE6Qy0xLHk8MCYmKHk9di5sZW5ndGgtMSkseT52Lmxlbmd0aC0xJiYoeT0wKSxJLmNsYXNzTGlzdC5yZW1vdmUoImZvY3VzZWQiKTticmVha319dlt5XS5jbGFz''@;'; put 'put ''c0xpc3QuYWRkKCJmb2N1c2VkIil9b25SZXNpemUoaCl7dGhpcy5jYWxjdWxhdGVJbnB1dFBvc2l0aW9uKCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGQxKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1hdXRv''@;'; put 'put ''Y29tcGxldGUiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhZNXQsNSksMiZoKXtsZXQgeTtIaSh5PSRpKCkpJiYodi5pbnB1dEVsZW1lbnQ9eS5maXJzdCl9fSxob3N0QmluZGluZ3M6ZnVuY3Rpb24oaCx2KXsxJmgmJkduKCJyZXNpemUiLGZ1bmN0aW9uKEMpe3JldHVy''@;'; put 'put ''biB2Lm9uUmVzaXplKEMpfSwwLExiKX0saW5wdXRzOntpbnB1dElkOiJpbnB1dElkIixwbGFjZWhvbGRlcjoicGxhY2Vob2xkZXIiLHZhbHVlOiJ2YWx1ZSIsZGlzYWJsZWQ6ImRpc2FibGVkIix0eXBlOiJ0eXBlIixhdXRvY29tcGxldGU6ImF1dG9jb21wbGV0ZSIsdGFiaW5kZXg6InRhYmlu''@;'; put 'put ''ZGV4IixlbWl0T25seVNlbGVjdGVkOiJlbWl0T25seVNlbGVjdGVkIn0sb3V0cHV0czp7b25JbnB1dEtleWRvd246Im9uSW5wdXRLZXlkb3duIixvbklucHV0Q2hhbmdlOiJvbklucHV0Q2hhbmdlIix2YWx1ZUNoYW5nZToidmFsdWVDaGFuZ2UifSxuZ0NvbnRlbnRTZWxlY3RvcnM6UTV0LGRl''@;'; put 'put ''Y2xzOjYsdmFyczoxNCxjb25zdHM6W1sxLCJhdXRvY29tcGxldGUtd3JhcHBlciIsMywia2V5ZG93biJdLFsidHlwZSIsInRleHQiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJhdXRvZm9jdXMiLCIiLCJ0YWJpbmRleCIsIjAiLDEsImlucHV0LXZhbCIsMywiaWQiLCJwbGFjZWhvbGRlciIsIm5n''@;'; put 'put ''TW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiLCJjbGljayIsImZvY3VzIiwiZm9jdXNvdXQiXSxbImlucHV0IiwiIl0sWzEsIm92ZXJsYXkiXSxbMSwiZGF0YWxpc3QiLDMsIm5nU3R5bGUiLCJpZCIsImNsaWNrIiwibW91c2VlbnRlciIsIm1vdXNlbGVhdmUiLCJzY3JvbGwiXV0s''@;'; put 'put ''dGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihLMCgpLG50KDAsImRpdiIsMCksR24oImtleWRvd24iLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uTWFpbktleWRvd24oQyl9KSxudCgxLCJpbnB1dCIsMSwyKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYudmFsdWU9''@;'; put 'put ''Q30pKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25JbnB1dENsaWNrKEMpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uSW5wdXRGaXJlZChDKX0pKCJmb2N1cyIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25JbnB1dEZvY3VzaW4oQyl9KSgiZm9jdXNvdXQi''@;'; put 'put ''LGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uSW5wdXRGb2N1c291dChDKX0pLG90KCksQ3IoMywiZGl2IiwzKSxudCg0LCJkaXYiLDQpLEduKCJjbGljayIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EYXRhTGlzdENsaWNrKEMpfSkoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9u''@;'; put 'put ''RGF0YUxpc3RNb3VzZUVudGVyKEMpfSkoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uRGF0YUxpc3RNb3VzZUxlYXZlKEMpfSkoInNjcm9sbCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EYXRhTGlzdFNjcm9sbChDKX0pLE5pKDUpLG90KCkoKSksMiZoJiYodXQoMSksVHQo''@;'; put 'put ''ImlkIix2LmlucHV0SWQpKCJwbGFjZWhvbGRlciIsdi5wbGFjZWhvbGRlcikoIm5nTW9kZWwiLHYudmFsdWUpKCJkaXNhYmxlZCIsdi5kaXNhYmxlZCksR2koImxpc3QiLCJkYXRhbGlzdF8iK3YuaW5wdXRJZCksdXQoMiksRmkoImhpZGRlbiIsIXYuZGF0YWxpc3RPcGVuKSx1dCgxKSxGaSgi''@;'; put 'put ''aGlkZGVuIiwhdi5kYXRhbGlzdE9wZW4pLFR0KCJuZ1N0eWxlIixqMygxMSxVNXQsdi5pbnB1dENsaWVudFJlY3Qud2lkdGgsdi5pbm5lckhlaWdodCYmdi5pbnB1dENsaWVudFJlY3QuYm90dG9tP3YuaW5uZXJIZWlnaHQtdi5pbnB1dENsaWVudFJlY3QuYm90dG9tOnZvaWQgMCkpKCJpZCIs''@;'; put 'put ''ImRhdGFsaXN0XyIrdi5pbnB1dElkKSl9LGRlcGVuZGVuY2llczpbRVcsbTEsVHMsSXNdLHN0eWxlczpbIi5pbnB1dC12YWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowcHg7YmFja2dyb3VuZDojZmJmOGY4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5OTk5OTl9aW5wdXRbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde3dpZHRoOjEwMCU7b3V0bGluZTpub25lfWlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi10b3A6LTVweH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLm92ZXJsYXlb''@;'; put 'put ''X25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO2xlZnQ6MDt0b3A6MDtyaWdodDowO2JvdHRvbTowO3otaW5kZXg6MTUwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpmaXhlZDti''@;'; put 'put ''YWNrZ3JvdW5kOndoaXRlO2JveC1zaGFkb3c6MCAzcHggMTBweCAtMXB4ICMwMDAwMDAyYjtvdmVyZmxvdzphdXRvO3otaW5kZXg6MjAwMH0uYXV0b2NvbXBsZXRlLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgb3B0aW9ue3Bh''@;'; put 'put ''ZGRpbmc6NXB4IDEwcHg7Y3Vyc29yOnBvaW50ZXJ9LmF1dG9jb21wbGV0ZS13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRhbGlzdFtfbmdjb250ZW50LSVDT01QJV0gICAgIG9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfS5hdXRvY29tcGxl''@;'; put 'put ''dGUtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAuZGF0YWxpc3RbX25nY29udGVudC0lQ09NUCVdICAgICBvcHRpb24uZm9jdXNlZHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjA1ODgyMzUyOTQpfSJdfSksZH0pKCksWDV0PSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgsdil7aWYoInN0''@;'; put 'put ''cmluZyI9PXR5cGVvZiBoJiZoLmxlbmd0aDwxKXJldHVybiBoO3N3aXRjaCh2KXtjYXNlImRhdGUiOnJldHVybiBUbChoLCJERE1NTVlZWVk6aGg6bW06c3MiKS5mb3JtYXQoIkREL01NL1lZWVkiKTtjYXNlInRpbWUiOntpZigic3RyaW5nIiE9dHlwZW9mIGgpdGhyb3cgbmV3IEVycm9yKCJF''@;'; put 'put ''cnJvciBwYXJzaW5nIHRpbWUuIFZhbHVlIGlzIG5vdCBzdHJpbmcuIik7Y29uc3QgeT1wYXJzZUludChoLnNwbGl0KCI6IilbMF0pLEM9cGFyc2VJbnQoaC5zcGxpdCgiOiIpWzFdKSxJPXBhcnNlSW50KGguc3BsaXQoIjoiKVsyXSk7cmV0dXJuYCR7eTwxMD8iMCIreTp5fToke0M8MTA/IjAi''@;'; put 'put ''K0M6Q306JHtJPDEwPyIwIitJOkl9YH19cmV0dXJuInN0cmluZyI9PXR5cGVvZiBoP2g6aC50b1N0cmluZygpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJkYXRlVGltZUZvcm1hdHRlciIsdHlwZTpkLHB1''@;'; put 'put ''cmU6ITB9KSxkfSkoKTtjb25zdCBLNXQ9WyJpbnB1dCJdO2Z1bmN0aW9uICQ1dChkLGcpe2lmKDEmZCYmKG50KDAsImxhYmVsIiwzKSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxqaShoLmxhYmVsKX19ZnVuY3Rpb24gcTV0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7''@;'; put 'put ''QjAoMCksbnQoMSwiY2xyLWRhdGUtY29udGFpbmVyIikoMiwiaW5wdXQiLDQpLEduKCJjbHJEYXRlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLm9uRGF0ZUlucHV0RmlyZWQoeSkpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuaW5wdXRG''@;'; put 'put ''b2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmlucHV0Rm9jdXNlZD0hMSl9KSgiZm9jdXNpbiIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS5vbkZvY3VzaW5JbnB1dCh5KSl9KSgibW91c2VvdmVyIixmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biBpdChoKSxhKFF0KCkub25JbnB1dE1vdXNlT3ZlcigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLm9uSW5wdXRNb3VzZU91dCgpKX0pLG5uKDMsImRhdGVUaW1lRm9ybWF0dGVyIiksb3QoKSgpLFAwKCl9aWYoMiZkKXtjb25zdCBoPVF0KCk7dXQoMiks''@;'; put 'put ''VHQoImlkIixoLmlucHV0SWQpKCJwbGFjZWhvbGRlciIsUG4oMyw1LGgudGVtcCwiZGF0ZSIpKSgiY2xyRGF0ZSIsaC52YWx1ZSkoImRpc2FibGVkIixoLmRpc2FibGVkKSxHaSgibGlzdCIsImRhdGFsaXN0XyIraC5pbnB1dElkKX19ZnVuY3Rpb24gZWd0KGQsZyl7aWYoMSZkKXtjb25zdCBo''@;'; put 'put ''PXdpKCk7QjAoMCksbnQoMSwiaW5wdXQiLDUpLEduKCJpbnB1dCIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS5vbklucHV0RmlyZWQoeSkpfSkoImZvY3VzIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuaW5wdXRGb2N1c2VkPSEwKX0pKCJmb2N1c291dCIsZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmlucHV0Rm9jdXNlZD0hMSl9KSgiZm9jdXNpbiIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS5vbkZvY3VzaW5JbnB1dCh5KSl9KSgibW91c2VvdmVyIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkub25JbnB1dE1vdXNlT3Zl''@;'; put 'put ''cigpKX0pKCJtb3VzZW91dCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLm9uSW5wdXRNb3VzZU91dCgpKX0pLG90KCksUDAoKX1pZigyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxUdCgidmFsdWUiLGgudmFsdWUpKCJpZCIsaC5pbnB1dElkKSgiZGlzYWJsZWQiLGguZGlzYWJsZWQp''@;'; put 'put ''LEdpKCJsaXN0IiwiZGF0YWxpc3RfIitoLmlucHV0SWQpfX1mdW5jdGlvbiB0Z3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtCMCgwKSxudCgxLCJhcHAtYXV0b2NvbXBsZXRlIiw2LDcpLEduKCJvbklucHV0Q2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLm9uSW5w''@;'; put 'put ''dXRGaXJlZCh5KSl9KSxOaSgzKSxvdCgpLFAwKCl9aWYoMiZkKXtjb25zdCBoPVF0KCk7dXQoMSksVHQoImlucHV0SWQiLGguaW5wdXRJZCkoInZhbHVlIiwobnVsbD09aC52YWx1ZT9udWxsOmgudmFsdWUudG9TdHJpbmcoKSl8fCIiKSgiZW1pdE9ubHlTZWxlY3RlZCIsaC5lbWl0T25seVNl''@;'; put 'put ''bGVjdGVkKSgiZGlzYWJsZWQiLGguZGlzYWJsZWQpfX1jb25zdCBuZ3Q9WyIqIl07bGV0IE1MZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhpcy5pbnB1dElkPSIiLHRoaXMudmFsdWU9IiIsdGhpcy5kaXNhYmxlZD0hMSx0aGlzLnR5cGU9InRleHQiLHRoaXMuZGlzYWJsZVNvZnRz''@;'; put 'put ''ZWxlY3Q9ITEsdGhpcy5lbWl0T25seVNlbGVjdGVkPSExLHRoaXMudmFsdWVDaGFuZ2U9bmV3IGFyLHRoaXMub25JbnB1dEV2ZW50PW5ldyBhcix0aGlzLmZvY3VzaW5JbnB1dD1uZXcgYXIsdGhpcy50ZW1wPSIiLHRoaXMuaW5wdXRGb2N1c2VkPSExfW5nT25DaGFuZ2VzKGgpe2gudmFsdWUm''@;'; put 'put ''JmgudmFsdWUuY3VycmVudFZhbHVlIT09aC52YWx1ZS5wcmV2aW91c1ZhbHVlJiZ0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaC52YWx1ZS5jdXJyZW50VmFsdWUpfW5nT25Jbml0KCl7fW9uSW5wdXRGaXJlZChoKXtjb25zdCB2PWgudGFyZ2V0LnZhbHVlO3RoaXMudGVtcD12LHRoaXMudmFsdWVD''@;'; put 'put ''aGFuZ2UuZW1pdCh2KSx0aGlzLm9uSW5wdXRFdmVudC5lbWl0KGgpfW9uRGF0ZUlucHV0RmlyZWQoaCl7dGhpcy50ZW1wPWgsdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGgpLHRoaXMub25JbnB1dEV2ZW50LmVtaXQoaCl9b25JbnB1dE1vdXNlT3V0KCl7dGhpcy5kaXNhYmxlU29mdHNlbGVjdHx8''@;'; put 'put ''KHRoaXMudmFsdWU9dGhpcy50ZW1wLHRoaXMudGVtcD0iIil9b25JbnB1dE1vdXNlT3Zlcigpe3RoaXMuZGlzYWJsZVNvZnRzZWxlY3R8fCh0aGlzLnRlbXA9dGhpcy52YWx1ZT90aGlzLnZhbHVlOiIiLHRoaXMudmFsdWU9IiIpfW9uRm9jdXNpbklucHV0KGgpe3RoaXMuZm9jdXNpbklucHV0''@;'; put 'put ''LmVtaXQoaCl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtc29mdC1zZWxlY3QiXV0sdmlld1F1ZXJ5OmZ1bmN0aW9uKGgsdil7aWYoMSZoJiZ2byhLNXQsNSksMiZoKXtsZXQg''@;'; put 'put ''eTtIaSh5PSRpKCkpJiYodi5pbnB1dEVsZW1lbnQ9eS5maXJzdCl9fSxpbnB1dHM6e2lucHV0SWQ6ImlucHV0SWQiLGxhYmVsOiJsYWJlbCIsdmFsdWU6InZhbHVlIixkaXNhYmxlZDoiZGlzYWJsZWQiLHR5cGU6InR5cGUiLGRpc2FibGVTb2Z0c2VsZWN0OiJkaXNhYmxlU29mdHNlbGVjdCIs''@;'; put 'put ''ZW1pdE9ubHlTZWxlY3RlZDoiZW1pdE9ubHlTZWxlY3RlZCJ9LG91dHB1dHM6e3ZhbHVlQ2hhbmdlOiJ2YWx1ZUNoYW5nZSIsb25JbnB1dEV2ZW50OiJvbklucHV0RXZlbnQiLGZvY3VzaW5JbnB1dDoiZm9jdXNpbklucHV0In0sZmVhdHVyZXM6W0QyXSxuZ0NvbnRlbnRTZWxlY3RvcnM6bmd0''@;'; put 'put ''LGRlY2xzOjUsdmFyczo1LGNvbnN0czpbWyJjbGFzcyIsImNsci1jb250cm9sLWxhYmVsIiw0LCJuZ0lmIl0sWzMsIm5nU3dpdGNoIl0sWzQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJjbHItY29udHJvbC1sYWJlbCJdLFsidHlwZSIsImRhdGUiLCJjbHJEYXRlIiwiIiwzLCJpZCIsInBsYWNlaG9s''@;'; put 'put ''ZGVyIiwiY2xyRGF0ZSIsImRpc2FibGVkIiwiY2xyRGF0ZUNoYW5nZSIsImZvY3VzIiwiZm9jdXNvdXQiLCJmb2N1c2luIiwibW91c2VvdmVyIiwibW91c2VvdXQiXSxbInR5cGUiLCJ0aW1lIiwic3RlcCIsIjEiLDEsImlucHV0LXZhbCIsMywidmFsdWUiLCJpZCIsImRpc2FibGVkIiwiaW5w''@;'; put 'put ''dXQiLCJmb2N1cyIsImZvY3Vzb3V0IiwiZm9jdXNpbiIsIm1vdXNlb3ZlciIsIm1vdXNlb3V0Il0sWyJ0eXBlIiwidGV4dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsImF1dG9mb2N1cyIsIiIsInRhYmluZGV4IiwiMCIsMSwiaW5wdXQtdmFsIiwzLCJpbnB1dElkIiwidmFsdWUiLCJlbWl0T25s''@;'; put 'put ''eVNlbGVjdGVkIiwiZGlzYWJsZWQiLCJvbklucHV0Q2hhbmdlIl0sWyJpbnB1dCIsIiJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKEswKCkscm4oMCwkNXQsMiwxLCJsYWJlbCIsMCksQjAoMSwxKSxybigyLHE1dCw0LDgsIm5nLWNvbnRhaW5lciIsMikscm4oMyxlZ3QsMiw0LCJu''@;'; put 'put ''Zy1jb250YWluZXIiLDIpLHJuKDQsdGd0LDQsNCwibmctY29udGFpbmVyIiwyKSxQMCgpKSwyJmgmJihUdCgibmdJZiIsdi5sYWJlbCksdXQoMSksVHQoIm5nU3dpdGNoIix2LnR5cGUpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJkYXRlIiksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsInRp''@;'; put 'put ''bWUiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwidGV4dCIpKX0sZGVwZW5kZW5jaWVzOltObyxKZCxpcCxhdCxyWixJZmUsSjV0LFg1dF0sc3R5bGVzOlsiLmlucHV0LXZhbFtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjBweDtiYWNrZ3JvdW5kOiNmYmY4Zjg7Ym9yZGVyLWJvdHRvbTox''@;'; put 'put ''cHggc29saWQgIzk5OTk5OX1pbnB1dFtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtvdXRsaW5lOm5vbmV9aW5wdXRbX25nY29udGVudC0lQ09NUCVdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7bWFyZ2luLXRvcDotNXB4fWNsci1kYXRlLWNvbnRhaW5lcltfbmdj''@;'; put 'put ''b250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50fWNsci1kYXRlLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb257cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6LTVweH1jbHItZGF0''@;'; put 'put ''ZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dDo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9ye21hcmdpbi1yaWdodDoyMHB4O21hcmdpbi10b3A6LTVweH0iXX0pLGR9KSgpLHJndD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgpe3RoaXMuaGVscGVy''@;'; put 'put ''U2VydmljZT1ofXRyYW5zZm9ybShoLHY9ImRheXMiLHk9ITEpe2lmKHZvaWQgMD09PWgmJihoPSIiKSwic3RyaW5nIiE9dHlwZW9mIGgmJihoPWgudG9TdHJpbmcoKSksMD09PWgubGVuZ3RoKXtpZigiZGF5cyI9PT12KXJldHVybiBudWxsO2lmKCJzZWNvbmRzIj09PXYpcmV0dXJuIHk/IjEx''@;'; put 'put ''OjAwOjAwIjpudWxsfWxldCBDPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0U2FzRGF5c1RvSnNEYXRlKGgsdik7aWYoND09PWguc3BsaXQoIjoiKS5sZW5ndGgpe2NvbnN0IFo9aC5zcGxpdCgiOiIpO0M9bmV3IERhdGUoWlswXSksQy5zZXRIb3VycyhwYXJzZUludChaWzFdKSksQy5zZXRN''@;'; put 'put ''aW51dGVzKHBhcnNlSW50KFpbMl0pKSxDLnNldFNlY29uZHMocGFyc2VJbnQoWlszXSkpfWVsc2UgaXNOYU4oTnVtYmVyKGgpKSYmKEM9bmV3IERhdGUoaCkpO2xldCBJPWAke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhDLmdldEhvdXJzKCkudG9TdHJpbmcoKSl9OiR7dGhp''@;'; put 'put ''cy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmdaZXJvKEMuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyhDLmdldFNlY29uZHMoKS50b1N0cmluZygpKX1gO3JldHVybiB5P0k6Q319cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9u''@;'; put 'put ''KGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWGMsMTYpKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJzYXNUb0pzRGF0ZSIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKSxpZ3Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoKXt0aGlzLmhlbHBlclNlcnZpY2U9aH10cmFuc2Zvcm0oaCl7aWYobnVs''@;'; put 'put ''bD09aHx8IiI9PT1oKXJldHVybiIiO2xldCB2LHksQztpZigic3RyaW5nIj09dHlwZW9mIGgmJjM9PT1oLnNwbGl0KCI6IikubGVuZ3RoKXtjb25zdCBJPWguc3BsaXQoIjoiKTt2PUlbMF0seT1JWzFdLEM9SVsyXX1lbHNlIm51bWJlciIhPXR5cGVvZiBoJiYoaD1wYXJzZUludChoKSksdj1N''@;'; put 'put ''YXRoLmZsb29yKGgvMzYwMCkseT1NYXRoLmZsb29yKGglMzYwMC82MCksQz1NYXRoLmZsb29yKGglMzYwMCU2MCk7cmV0dXJuYCR7dGhpcy5oZWxwZXJTZXJ2aWNlLmFkZExlYWRpbmdaZXJvKHYpfToke3RoaXMuaGVscGVyU2VydmljZS5hZGRMZWFkaW5nWmVybyh5KX06JHt0aGlzLmhlbHBl''@;'; put 'put ''clNlcnZpY2UuYWRkTGVhZGluZ1plcm8oQyl9YH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWGMsMTYpKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJzZWNvbmRzUGFyc2VyIix0eXBlOmQscHVyZTohMH0pLGR9KSgpO2Z1bmN0aW9uIG9ndChk''@;'; put 'put ''LGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIsMjQpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgic2VsZWN0ZWQiLFF0KCkubG9naWNPcGVyYXRvcnNbMF0pLHV0KDEpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIGFndChkLGcpezEmZCYmKG50KDAsImRpdiIsMjUp''@;'; put 'put ''LFl0KDEsIlxuICAgICAgICAiKSxDcigyLCJwcm9ncmVzcyIpLFl0KDMsIlxuICAgICAgIiksb3QoKSl9ZnVuY3Rpb24gbGd0KGQsZyl7MSZkJiZDcigwLCJkaXYiKX1mdW5jdGlvbiBzZ3QoZCxnKXtpZigxJmQmJihudCgwLCJvcHRpb24iLDI0KSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9''@;'; put 'put ''Zy4kaW1wbGljaXQ7VHQoInNlbGVjdGVkIixRdCgyKS5sb2dpY09wZXJhdG9yc1swXSksdXQoMSksSmkoIiAiLGgsIiAiKX19ZnVuY3Rpb24gdWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiwzNCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxh''@;'; put 'put ''KFF0KDIpLmFkZEdyb3VwQ2xhdXNlKCkpfSksQ3IoMSwiY2xyLWljb24iLDM1KSxudCgyLCJzcGFuIiksWXQoMywiR3JvdXAiKSxvdCgpKCl9fWZ1bmN0aW9uIGNndChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1pY29uIiwzNiksR24oImNsaWNrIixmdW5jdGlvbigpe2l0''@;'; put 'put ''KGgpO2NvbnN0IHk9UXQoKS5pbmRleDtyZXR1cm4gYShRdCgpLnJlbW92ZUdyb3VwQ2xhdXNlKHkpKX0pLG90KCl9fWZ1bmN0aW9uIGZndChkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxKaSgiICIsaC5OQU1F''@;'; put 'put ''LCIgIil9fWZ1bmN0aW9uIGhndChkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxqaShoKX19ZnVuY3Rpb24gZGd0KGQsZyl7MSZkJiZmMSgwKX1jb25zdCBwZ3Q9ZnVuY3Rpb24oZCxnLGgpe3JldHVybntxdWVy''@;'; put 'put ''eTpkLHF1ZXJ5SW5kZXg6ZyxjbGF1c2VJbmRleDpofX07ZnVuY3Rpb24gZ2d0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw1MykoMSwiYnV0dG9uIiw1NCksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoMikuaW5kZXgsQz1RdCgpLmluZGV4LEk9''@;'; put 'put ''UXQoKTtyZXR1cm4gSS5jdXJyZW50UXVlcnlJbmRleD15LGEoSS5jdXJyZW50Q2xhdXNlSW5kZXg9Qyl9KSxZdCgyLCIgQ2hvb3NlIHZhbHVlcyAiKSxvdCgpLHJuKDMsZGd0LDEsMCwibmctY29udGFpbmVyIiw1NSksb3QoKX1pZigyJmQpe2NvbnN0IGg9UXQoMiksdj1oLiRpbXBsaWNpdCx5''@;'; put 'put ''PWguaW5kZXgsQz1RdCgpLmluZGV4O1F0KCk7Y29uc3QgST12YSgzNyk7dXQoMyksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLEkpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsSCgyLHBndCx2LHksQykpfX1mdW5jdGlvbiBtZ3QoZCxnKXsxJmQmJmYxKDApfWNvbnN0IHZndD1mdW5jdGlvbihk''@;'; put 'put ''LGcsaCx2KXtyZXR1cm57cXVlcnk6ZCxxdWVyeUluZGV4OmcsY2xhdXNlSW5kZXg6aCxpc0RhdGVUaW1lOnZ9fTtmdW5jdGlvbiBBZ3QoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDU2KSxybigxLG1ndCwxLDAsIm5nLWNvbnRhaW5lciIsNTUpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgpLm5n''@;'; put 'put ''VmFyLHY9UXQoKSx5PXYuJGltcGxpY2l0LEM9di5pbmRleCxJPVF0KCkuaW5kZXgsWj1RdCgpLHVlPXZhKDMxKSxfZT12YSgzMyk7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLGgmJloudXNlUGlja2Vycz91ZTpfZSkoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixpZSgyLHZndCx5LEMs''@;'; put 'put ''SSxoKSl9fWZ1bmN0aW9uIHlndChkLGcpezEmZCYmZjEoMCl9ZnVuY3Rpb24gd2d0KGQsZyl7MSZkJiZmMSgwKX1jb25zdCBiZ3Q9ZnVuY3Rpb24oZCxnLGgsdil7cmV0dXJue3JhbmdlOiJzdGFydCIscXVlcnk6ZCxxdWVyeVZhbHVlSW5kZXg6MCxxdWVyeUluZGV4OmcsY2xhdXNlSW5kZXg6''@;'; put 'put ''aCxpc0RhdGVUaW1lOnZ9fSxfZ3Q9ZnVuY3Rpb24oZCxnLGgsdil7cmV0dXJue3JhbmdlOiJlbmQiLHF1ZXJ5OmQscXVlcnlWYWx1ZUluZGV4OjEscXVlcnlJbmRleDpnLGNsYXVzZUluZGV4OmgsaXNEYXRlVGltZTp2fX07ZnVuY3Rpb24gQ2d0KGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw1''@;'; put 'put ''NykoMSwiZGl2Iiw1OCkscm4oMix5Z3QsMSwwLCJuZy1jb250YWluZXIiLDU1KSxvdCgpLG50KDMsImRpdiIsNTkpLHJuKDQsd2d0LDEsMCwibmctY29udGFpbmVyIiw1NSksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoKS5uZ1Zhcix2PVF0KCkseT12LiRpbXBsaWNpdCxDPXYuaW5kZXgsST1R''@;'; put 'put ''dCgpLmluZGV4LFo9UXQoKSx1ZT12YSgzMSksX2U9dmEoMzUpO3V0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoJiZaLnVzZVBpY2tlcnM/dWU6X2UpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsaWUoNCxiZ3QseSxDLEksaCkpLHV0KDIpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixoJiZa''@;'; put 'put ''LnVzZVBpY2tlcnM/dWU6X2UpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsaWUoOSxfZ3QseSxDLEksaCkpfX1mdW5jdGlvbiBrZ3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDYwKSgxLCJsYWJlbCIsNjEpLFl0KDIsIlZhbHVlIiksb3QoKSxudCgzLCJpbnB1dCIs''@;'; put 'put ''NjIpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgyKS4kaW1wbGljaXQudmFsdWU9eSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgyKS5pbmRleCxJPVF0KCkuaW5kZXg7cmV0dXJuIGEoUXQoKS5zZXRWYXJp''@;'; put 'put ''YWJsZVZhbHVlcyh5LEMsSSkpfSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKS4kaW1wbGljaXQ7dXQoMyksVHQoIm5nTW9kZWwiLGgudmFsdWUpfX1mdW5jdGlvbiBTZ3QoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDQ4KSxybigxLGdndCw0LDYsImRpdiIsNDkpLHJuKDIsQWd0LDIs''@;'; put 'put ''NywiZGl2Iiw1MCkscm4oMyxDZ3QsNSwxNCwiZGl2Iiw1MSkscm4oNCxrZ3QsNCwxLCJkaXYiLDUyKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKS4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCJJTiI9PT1oLm9wZXJhdG9yfHwiTk9UIElOIj09PWgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0lm''@;'; put 'put ''IiwiQkVUV0VFTiIhPT1oLm9wZXJhdG9yJiYiSU4iIT09aC5vcGVyYXRvciYmIk5PVCBJTiIhPT1oLm9wZXJhdG9yJiYiTElLRSIhPT1oLm9wZXJhdG9yJiYiQ09OVEFJTlMiIT09aC5vcGVyYXRvciYmIkJFR0lOU19XSVRIIiE9PWgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0lmIiwiQkVUV0VF''@;'; put 'put ''TiI9PT1oLm9wZXJhdG9yKSx1dCgxKSxUdCgibmdJZiIsIkxJS0UiPT09aC5vcGVyYXRvcnx8IkJFR0lOU19XSVRIIj09PWgub3BlcmF0b3J8fCJDT05UQUlOUyI9PT1oLm9wZXJhdG9yKX19ZnVuY3Rpb24gTWd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw4KSgxLCJk''@;'; put 'put ''aXYiLDM3KSgyLCJkaXYiLDM4KSgzLCJhcHAtc29mdC1zZWxlY3QiLDM5KSxHbigidmFsdWVDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBhKGl0KGgpLiRpbXBsaWNpdC52YXJpYWJsZT15KX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKHkpe2NvbnN0IEM9aXQoaCksST1DLiRpbXBsaWNp''@;'; put 'put ''dCxaPUMuaW5kZXgsdWU9UXQoKS5pbmRleDtyZXR1cm4gYShRdCgpLnZhcmlhYmxlSW5wdXRDaGFuZ2UoSS52YXJpYWJsZSxaLHVlLHkpKX0pLHJuKDQsZmd0LDIsMSwib3B0aW9uIiw0MCksb3QoKSgpKCksbnQoNSwiZGl2Iiw0MSkoNiwiY2xyLXNlbGVjdC1jb250YWluZXIiKSg3LCJsYWJl''@;'; put 'put ''bCIpLFl0KDgsIk9wZXJhdG9yIiksb3QoKSxudCg5LCJzZWxlY3QiLDQyKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGEoaXQoaCkuJGltcGxpY2l0Lm9wZXJhdG9yPXkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7Y29uc3QgeT1pdChoKSxDPXkuaW5kZXgs''@;'; put 'put ''ST15LiRpbXBsaWNpdCxaPVF0KCkuaW5kZXg7cmV0dXJuIGEoUXQoKS5zZXRWYXJpYWJsZU9wZXJhdG9yKEMsSS5vcGVyYXRvcixaKSl9KSxybigxMCxoZ3QsMiwxLCJvcHRpb24iLDQwKSxvdCgpKCkoKSxybigxMSxTZ3QsNSw0LCJkaXYiLDQzKSxudCgxMiwiZGl2Iiw0NCkoMTMsImJ1dHRv''@;'; put 'put ''biIsNDUpLEduKCJjbGljayIsZnVuY3Rpb24oKXtjb25zdCBDPWl0KGgpLmluZGV4LEk9UXQoKS5pbmRleDtyZXR1cm4gYShRdCgpLnJlbW92ZUNsYXVzZShDLEkpKX0pLENyKDE0LCJjbHItaWNvbiIsNDYpKDE1LCJzcGFuIiksb3QoKSxudCgxNiwiYnV0dG9uIiw0NyksR24oImNsaWNrIixm''@;'; put 'put ''dW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKS5pbmRleDtyZXR1cm4gYShRdCgpLmFkZENsYXVzZSh5KSl9KSxDcigxNywiY2xyLWljb24iLDM1KSgxOCwic3BhbiIpLG90KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PWcuaW5kZXgseT1RdCgpLmluZGV4LEM9UXQoKTtG''@;'; put 'put ''aSgiaW52YWxpZC1jbGF1c2UiLGguaW52YWxpZENsYXVzZSksdXQoMyksVHQoImlkIiwic2VsZWN0X3ZhbHNfdmFyX2lkIit2KyJfIit5KSgiaW5wdXRJZCIsInZhbHNfdmFyX2lkIit2KyJfIit5KSgiZW1pdE9ubHlTZWxlY3RlZCIsITApKCJ2YWx1ZSIsaC52YXJpYWJsZSksdXQoMSksVHQo''@;'; put 'put ''Im5nRm9yT2YiLEMuY29scyksdXQoNSksVHQoIm5nTW9kZWwiLGgub3BlcmF0b3IpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLm9wZXJhdG9ycyksdXQoMSksVHQoIm5nVmFyIiwiREFURSI9PT1oLmRkdHlwZXx8IkRBVEVUSU1FIj09PWguZGR0eXBlfHwiVElNRSI9PT1oLmRkdHlwZSksdXQoMiks''@;'; put 'put ''VHQoImRpc2FibGVkIiwxPT09Qy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzLmxlbmd0aCl9fWZ1bmN0aW9uIEVndChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIsMjYpKDEsImRpdiIsOCkoMiwiZGl2IiwyNykoMywiZGl2IiwyOCkoNCwiY2xyLXNlbGVjdC1jb250''@;'; put 'put ''YWluZXIiKSg1LCJsYWJlbCIpLFl0KDYsIkxvZ2ljIiksb3QoKSxudCg3LCJzZWxlY3QiLDI5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGEoaXQoaCkuJGltcGxpY2l0LmNsYXVzZUxvZ2ljPXkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0''@;'; put 'put ''KGgpLGEoUXQoKS5zZXRMb2dpYygpKX0pLHJuKDgsc2d0LDIsMiwib3B0aW9uIiwxMSksb3QoKSgpKCksQ3IoOSwiYnIiKSxybigxMCx1Z3QsNCwwLCJidXR0b24iLDMwKSxvdCgpLG50KDExLCJkaXYiLDMxKSxybigxMixjZ3QsMSwwLCJjbHItaWNvbiIsMzIpLHJuKDEzLE1ndCwxOSwxMSwi''@;'; put 'put ''ZGl2IiwzMyksb3QoKSgpLENyKDE0LCJiciIpLG90KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9UXQoKTt1dCgxKSxGaSgiaW52YWxpZC1jbGF1c2UiLGguaW52YWxpZENsYXVzZSksdXQoNiksVHQoIm5nTW9kZWwiLGguY2xhdXNlTG9naWMpKCJkaXNhYmxlZCIsaC5lbGVtZW50''@;'; put 'put ''cy5sZW5ndGg8MiksdXQoMSksVHQoIm5nRm9yT2YiLHYubG9naWNPcGVyYXRvcnMpLHV0KDIpLFR0KCJuZ0lmIix2LmlubmVyV2lkdGg+NzY4KSx1dCgyKSxUdCgibmdJZiIsdi5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD4xKSx1dCgxKSxUdCgibmdGb3JPZiIsaC5lbGVtZW50cyl9fWZ1bmN0''@;'; put 'put ''aW9uIHhndChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLG50KDEsImFwcC1zb2Z0LXNlbGVjdCIsNjUpLEduKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgpLEk9Qy5xdWVyeSxaPUMucXVlcnlJbmRleCx1ZT1DLmNsYXVzZUluZGV4LF9lPUMucXVl''@;'; put 'put ''cnlWYWx1ZUluZGV4O3JldHVybiBhKFF0KCkuZGF0ZUNoYW5nZSh5LEksWix1ZSxfZSkpfSksbm4oMiwic2FzVG9Kc0RhdGUiKSxubigzLCJzYXNUb0pzRGF0ZSIpLG90KCksUDAoKX1pZigyJmQpe2NvbnN0IGg9UXQoKSx2PWgucXVlcnlJbmRleCx5PWguY2xhdXNlSW5kZXgsQz1oLnF1ZXJ5''@;'; put 'put ''VmFsdWVJbmRleCxJPWgucXVlcnk7dXQoMSksVHQoImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0SWQiLCJ2YWxzX2RhdGUiK3YrIl8iK3kpKCJ2YWx1ZSIsdm9pZCAwIT09Qz96dCgyLDMsSS52YWx1ZVtDXSk6enQoMyw1LEkudmFsdWUpKX19ZnVuY3Rpb24gVGd0KGQsZyl7aWYoMSZk''@;'; put 'put ''KXtjb25zdCBoPXdpKCk7QjAoMCksbnQoMSwiYXBwLXNvZnQtc2VsZWN0Iiw2NiksR24oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPVF0KCksST1DLmNsYXVzZUluZGV4LFo9Qy5xdWVyeUluZGV4O3JldHVybiBhKFF0KCkuZ2V0UXVlcnlEYXRlVGltZShJLFopLmRh''@;'; put 'put ''dGU9eSl9KSgib25JbnB1dEV2ZW50IixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKSxDPXkucXVlcnksST15LnF1ZXJ5SW5kZXgsWj15LmNsYXVzZUluZGV4LHVlPXkucXVlcnlWYWx1ZUluZGV4O3JldHVybiBhKFF0KCkuZGF0ZVRpbWVDaGFuZ2UoQyxJLFosdWUpKX0pLG5uKDIsInNh''@;'; put 'put ''c1RvSnNEYXRlIiksbm4oMywic2FzVG9Kc0RhdGUiKSxvdCgpLG50KDQsImFwcC1zb2Z0LXNlbGVjdCIsNjcpLEduKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgpLEk9Qy5jbGF1c2VJbmRleCxaPUMucXVlcnlJbmRleDtyZXR1cm4gYShRdCgpLmdldFF1ZXJ5''@;'; put 'put ''RGF0ZVRpbWUoSSxaKS50aW1lPXkpfSkoIm9uSW5wdXRFdmVudCIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCksQz15LnF1ZXJ5LEk9eS5xdWVyeUluZGV4LFo9eS5jbGF1c2VJbmRleCx1ZT15LnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4gYShRdCgpLmRhdGVUaW1lQ2hhbmdlKEMsSSxa''@;'; put 'put ''LHVlKSl9KSxubig1LCJzYXNUb0pzRGF0ZSIpLG5uKDYsInNhc1RvSnNEYXRlIiksb3QoKSxQMCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLHY9aC5xdWVyeUluZGV4LHk9aC5jbGF1c2VJbmRleCxDPWgucXVlcnlWYWx1ZUluZGV4LEk9aC5xdWVyeTt1dCgxKSxUdCgiZGlzYWJsZVNvZnRzZWxl''@;'; put 'put ''Y3QiLCEwKSgiaW5wdXRJZCIsInZhbHNfZGF0ZSIrdisiXyIreSkoInZhbHVlIix2b2lkIDAhPT1DP1BuKDIsNixJLnZhbHVlW0NdLCJzZWNvbmRzIik6UG4oMyw5LEkudmFsdWUsInNlY29uZHMiKSksdXQoMyksVHQoImRpc2FibGVTb2Z0c2VsZWN0IiwhMCkoImlucHV0SWQiLCJ2YWxzX3Rp''@;'; put 'put ''bWUiK3YrIl8iK3kpKCJ2YWx1ZSIsdm9pZCAwIT09Qz9Ubig1LDEyLEkudmFsdWVbQ10sInNlY29uZHMiLCEwKTpUbig2LDE2LEkudmFsdWUsInNlY29uZHMiLCEwKSl9fWZ1bmN0aW9uIElndChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLG50KDEsImFwcC1zb2Z0LXNlbGVjdCIs''@;'; put 'put ''NjgpLEduKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoKSxJPUMucXVlcnksWj1DLnF1ZXJ5SW5kZXgsdWU9Qy5jbGF1c2VJbmRleCxfZT1DLnF1ZXJ5VmFsdWVJbmRleDtyZXR1cm4gYShRdCgpLnRpbWVDaGFuZ2UoeSxJLFosdWUsX2UpKX0pLG5uKDIsInNl''@;'; put 'put ''Y29uZHNQYXJzZXIiKSxubigzLCJzZWNvbmRzUGFyc2VyIiksb3QoKSxQMCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLHY9aC5xdWVyeUluZGV4LHk9aC5jbGF1c2VJbmRleCxDPWgucXVlcnlWYWx1ZUluZGV4LEk9aC5xdWVyeTt1dCgxKSxUdCgiZGlzYWJsZVNvZnRzZWxlY3QiLCEwKSgiaW5w''@;'; put 'put ''dXRJZCIsInZhbHNfIit2KyJfIit5KSgidmFsdWUiLHZvaWQgMCE9PUM/enQoMiwzLEkudmFsdWVbQ10pOnp0KDMsNSxJLnZhbHVlKSl9fWZ1bmN0aW9uIERndChkLGcpezEmZCYmKEIwKDAsNjMpLHJuKDEseGd0LDQsNywibmctY29udGFpbmVyIiw2NCkscm4oMixUZ3QsNywyMCwibmctY29u''@;'; put 'put ''dGFpbmVyIiw2NCkscm4oMyxJZ3QsNCw3LCJuZy1jb250YWluZXIiLDY0KSxQMCgpKSwyJmQmJihUdCgibmdTd2l0Y2giLGcucXVlcnkuZGR0eXBlKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwiREFURSIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLCJEQVRFVElNRSIpLHV0KDEpLFR0KCJu''@;'; put 'put ''Z1N3aXRjaENhc2UiLCJUSU1FIikpfWZ1bmN0aW9uIExndChkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIsNzEpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGgudW5mb3JtYXR0ZWQpLHV0KDEpLEppKCIgIixoLmZvcm1hdHRlZC50cmltKCksIiAi''@;'; put 'put ''KX19ZnVuY3Rpb24gT2d0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYXBwLXNvZnQtc2VsZWN0Iiw2OSksR24oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gYShpdChoKS5xdWVyeS52YWx1ZT15KX0pKCJvbklucHV0RXZlbnQiLGZ1bmN0aW9uKHkpe2NvbnN0IEM9''@;'; put 'put ''aXQoaCksST1DLnF1ZXJ5SW5kZXgsWj1DLmNsYXVzZUluZGV4O3JldHVybiBhKFF0KCkuc2V0VmFyaWFibGVWYWx1ZXMoeS50YXJnZXQudmFsdWUsSSxaKSl9KSxybigxLExndCwyLDIsIm9wdGlvbiIsNzApLG90KCl9aWYoMiZkKXtjb25zdCBoPWcucXVlcnk7VHQoImlucHV0SWQiLCJ2YWxz''@;'; put 'put ''XyIrZy5xdWVyeUluZGV4KyJfIitnLmNsYXVzZUluZGV4KSgidmFsdWUiLGgudmFsdWUpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLnZhbHVlcyl9fWZ1bmN0aW9uIFJndChkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIsNzEpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtU''@;'; put 'put ''dCgidmFsdWUiLGguZm9ybWF0dGVkKSx1dCgxKSxKaSgiICIsaC5mb3JtYXR0ZWQsIiAiKX19ZnVuY3Rpb24gQmd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYXBwLXNvZnQtc2VsZWN0Iiw3MiksR24oInZhbHVlQ2hhbmdlIixmdW5jdGlvbih5KXtjb25zdCBDPWl0KGgpO3Jl''@;'; put 'put ''dHVybiBhKEMucXVlcnkudmFsdWVbQy5xdWVyeVZhbHVlSW5kZXhdPXkpfSkoIm9uSW5wdXRFdmVudCIsZnVuY3Rpb24oKXtjb25zdCB5PWl0KGgpLEM9eS5xdWVyeSxJPXkucXVlcnlJbmRleCxaPXkuY2xhdXNlSW5kZXg7cmV0dXJuIGEoUXQoKS5zZXRWYXJpYWJsZVZhbHVlcyhDLnZhbHVl''@;'; put 'put ''LEksWikpfSkscm4oMSxSZ3QsMiwyLCJvcHRpb24iLDcwKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1nLnJhbmdlLHY9Zy5xdWVyeSx5PWcucXVlcnlWYWx1ZUluZGV4O1R0KCJpbnB1dElkIiwidmFscy0iK2grIl8iK2cucXVlcnlJbmRleCsiXyIrZy5jbGF1c2VJbmRleCkoInZhbHVlIix2LnZh''@;'; put 'put ''bHVlW3ldKSgiZGlzYWJsZWQiLHZvaWQgMCE9PXkmJiJzdGFydCIhPT1oJiYhdi52YWx1ZVswXSksdXQoMSksVHQoIm5nRm9yT2YiLHYudmFsdWVzKX19ZnVuY3Rpb24gUGd0KGQsZyl7MSZkJiYobnQoMCwiaDUiLDgwKSxZdCgxLCIgTm8gdmFsdWVzIGF2YWlsYWJsZS4gIiksb3QoKSl9ZnVu''@;'; put 'put ''Y3Rpb24gRmd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWNoZWNrYm94LXdyYXBwZXIiKSgxLCJpbnB1dCIsODIpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtjb25zdCBJPWl0KGgpLmluZGV4O3JldHVybiBhKFF0KDIpLnF1ZXJ5LnZhbHVlW0ldLmNoZWNr''@;'; put 'put ''ZWQ9eSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgyKSxJPUMucXVlcnlJbmRleCxaPUMuY2xhdXNlSW5kZXg7cmV0dXJuIGEoUXQoKS5zZXRWYXJpYWJsZVZhbHVlcyh5LEksWikpfSksb3QoKSxudCgyLCJsYWJlbCIpLFl0KDMpLG90KCkoKX1pZigy''@;'; put 'put ''JmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmluZGV4LHk9UXQoMikucXVlcnk7dXQoMSksVHQoIm5nTW9kZWwiLHkudmFsdWVbdl0uY2hlY2tlZCksdXQoMiksSmkoIiAiLGguZm9ybWF0dGVkLCIgIil9fWZ1bmN0aW9uIEhndChkLGcpe2lmKDEmZCYmKG50KDAsInNlY3Rpb24iLDgxKSgx''@;'; put 'put ''LCJjbHItY2hlY2tib3gtY29udGFpbmVyIikscm4oMixGZ3QsNCwyLCJjbHItY2hlY2tib3gtd3JhcHBlciIsNDApLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KCkucXVlcnk7dXQoMiksVHQoIm5nRm9yT2YiLGgudmFsdWVzKX19ZnVuY3Rpb24gTmd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdp''@;'; put 'put ''KCk7bnQoMCwiY2xyLW1vZGFsIiw3MykoMSwiaDMiLDc0KSxZdCgyLCJTZWxlY3QgdmFsdWVzIiksb3QoKSxudCgzLCJkaXYiLDc1KSxybig0LFBndCwyLDAsImg1Iiw3Nikscm4oNSxIZ3QsMywxLCJzZWN0aW9uIiw3Nyksb3QoKSxudCg2LCJkaXYiLDc4KSg3LCJidXR0b24iLDc5KSxHbigi''@;'; put 'put ''Y2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgpO3JldHVybiB5LmN1cnJlbnRRdWVyeUluZGV4PS0xLGEoeS5jdXJyZW50Q2xhdXNlSW5kZXg9LTEpfSksWXQoOCwiIEFwcGx5ICIpLG90KCkoKSgpfWlmKDImZCl7Y29uc3QgaD1nLnF1ZXJ5LHY9Zy5xdWVyeUluZGV4LHk9Zy5j''@;'; put 'put ''bGF1c2VJbmRleCxDPVF0KCk7VHQoImNsck1vZGFsT3BlbiIsQy5jdXJyZW50UXVlcnlJbmRleD09PXYmJkMuY3VycmVudENsYXVzZUluZGV4PT09eSkoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg0KSxUdCgibmdJZiIsIUMuaXNBcnIoaC52YWx1ZSkpLHV0KDEpLFR0KCJuZ0lmIixDLmlz''@;'; put 'put ''QXJyKGgudmFsdWUpKX19IWZ1bmN0aW9uICRyZShkLGcsaCl7KGZ1bmN0aW9uIFRQKGQsZyxoKXsic3RyaW5nIiE9dHlwZW9mIGcmJihoPWcsZz1kW01vLkxvY2FsZUlkXSksZz1nLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXy9nLCItIiksazVbZ109ZCxoJiYoazVbZ11bTW8uRXh0cmFEYXRh''@;'; put 'put ''XT1oKX0pKGQsZyxoKX0oVzV0KTtsZXQgRUxlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyl7dGhpcy5zYXNTdG9yZVNlcnZpY2U9aCx0aGlzLmV2ZW50U2VydmljZT12LHRoaXMuaGVscGVyU2VydmljZT15LHRoaXMuY2RmPUMsdGhpcy5jbGF1c2VBbXQ9WyIiXSx0aGlzLm51''@;'; put 'put ''bU9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9IiwiPj0iLCJCRVRXRUVOIiwiSU4iLCJOT1QgSU4iLCJORSJdLHRoaXMuY2hhck9wZXJhdG9ycz1bIj0iLCI8IiwiPiIsIjw9IiwiPj0iLCJDT05UQUlOUyIsIklOIiwiTk9UIElOIiwiTkUiXSx0aGlzLm5vdEluPSExLHRoaXMubm90QXJyPSEw''@;'; put 'put ''LHRoaXMud2FzQmV0d2Vlbj0hMSx0aGlzLndoZXJlQ2xhdXNlTG9hZGluZz0hMSx0aGlzLmR5bmFtaWNXaGVyZUNsYXVzZT0hMCx0aGlzLnVzZVBpY2tlcnM9ITEsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJsZTpudWxs''@;'; put 'put ''LG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV0sY2xhdXNlTG9naWM6IiIsaW52YWxpZENsYXVzZTohMX0sdGhpcy5zZWxWYXI9e2luZGV4Om51bGwsZm9ybWF0Om51bGwsdHlwZTpudWxsfSx0aGlzLmluT2JqPVt7Y2hlY2tlZDohMSx2YWx1ZTpudWxs''@;'; put 'put ''fV0sdGhpcy5ncm91cExvZ2ljPSJBTkQiLHRoaXMuY2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpdLGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6dGhpcy5ncm91cExvZ2ljfSx0aGlzLmxvZ2ljT3BlcmF0b3JzPVsiQU5EIiwiT1IiXSx0aGlzLnF1ZXJ5RGF0ZVRpbWU9W10sdGhp''@;'; put 'put ''cy5jdXJyZW50Q2xhdXNlSW5kZXg9LTEsdGhpcy5jdXJyZW50UXVlcnlJbmRleD0tMSx0aGlzLnBlbmRpbmdJTlZhbHVlc1NldD1udWxsLHRoaXMuaW5uZXJXaWR0aD13aW5kb3cuc2NyZWVuLndpZHRoLHRoaXMuaW5uZXJXaWR0aD43NjgmJih0aGlzLm5vQm9yZGVyPSJib3JkZXItbGVmdDog''@;'; put 'put ''MnB4IHNvbGlkIGdyYXk7Iil9Z2V0UXVlcnlEYXRlVGltZShoLHYpe2xldCB5PXRoaXMucXVlcnlEYXRlVGltZS5maW5kKEM9PkMuY2xhdXNlSW5kZXg9PT1oJiZDLnF1ZXJ5SW5kZXg9PT12KTtpZigheSl7Y29uc3QgQz10aGlzLnF1ZXJ5RGF0ZVRpbWUucHVzaCh7Y2xhdXNlSW5kZXg6aCxx''@;'; put 'put ''dWVyeUluZGV4OnYsZGF0ZToiIix0aW1lOiIifSktMTt5PXRoaXMucXVlcnlEYXRlVGltZVtDXX1yZXR1cm4geX11c2VQaWNrZXJzQ2hhbmdlKCl7dGhpcy5xdWVyeURhdGVUaW1lPVtdfXJlc2V0RmlsdGVyKCl7dGhpcy53aGVyZVN0cmluZz12b2lkIDAsdGhpcy53aGVyZUNsYXVzZT12b2lk''@;'; put 'put ''IDAsdGhpcy5xdWVyeU9iaj17ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCxkZHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVsbCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV19LHRoaXMuY2xhdXNlcz17cXVlcnlPYmo6W3RoaXMucXVlcnlPYmpd''@;'; put 'put ''LGNsYXVzZUxvZ2ljOltdLGdyb3VwTG9naWM6dGhpcy5ncm91cExvZ2ljfSx0aGlzLndoZXJlQ2xhdXNlRm4oITApfXNldFRvR2xvYmFscygpeygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmKG5pLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYz10aGlz''@;'; put 'put ''Lmdyb3VwTG9naWMsInN0cmluZyI9PXR5cGVvZiB0aGlzLndoZXJlQ2xhdXNlJiYobmkuZWRpdG9yLmZpbHRlci53aGVyZUNsYXVzZT10aGlzLndoZXJlQ2xhdXNlKSwic3RyaW5nIj09dHlwZW9mIHRoaXMubGliZHMmJihuaS5lZGl0b3IuZmlsdGVyLmxpYmRzPXRoaXMubGliZHMpLG5pLmVk''@;'; put 'put ''aXRvci5maWx0ZXIuY2xhdXNlcz10aGlzLmNsYXVzZXMpLCJ2aWV3Ij09PW5pLnJvb3RQYXJhbSYmKG5pLnZpZXdlci5maWx0ZXIuZ3JvdXBMb2dpYz10aGlzLmdyb3VwTG9naWMsInN0cmluZyI9PXR5cGVvZiB0aGlzLndoZXJlQ2xhdXNlJiYobmkudmlld2VyLmZpbHRlci53aGVyZUNsYXVz''@;'; put 'put ''ZT10aGlzLndoZXJlQ2xhdXNlKSwic3RyaW5nIj09dHlwZW9mIHRoaXMubGliZHMmJihuaS52aWV3ZXIuZmlsdGVyLmxpYmRzPXRoaXMubGliZHMpLG5pLnZpZXdlci5maWx0ZXIuY2xhdXNlcz10aGlzLmNsYXVzZXMpfWdldEZyb21HbG9iYWxzKCl7KCJob21lIj09PW5pLnJvb3RQYXJhbXx8''@;'; put 'put ''ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYobmkuZWRpdG9yLmZpbHRlci5jb2xzLmxlbmd0aD4wJiYodGhpcy5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmkuZWRpdG9yLmZpbHRlci5jb2xzKSkpLG5pLmVkaXRvci5maWx0ZXIudmFscy5sZW5ndGg+MCYmKHRoaXMudmFscz1K''@;'; put 'put ''U09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5pLmVkaXRvci5maWx0ZXIudmFscykpKSwiIiE9PW5pLmVkaXRvci5maWx0ZXIuZ3JvdXBMb2dpYyYmKHRoaXMuZ3JvdXBMb2dpYz1uaS5lZGl0b3IuZmlsdGVyLmdyb3VwTG9naWMsdGhpcy53aGVyZUNsYXVzZT1uaS5lZGl0b3IuZmlsdGVyLndo''@;'; put 'put ''ZXJlQ2xhdXNlLHRoaXMubGliZHM9bmkuZWRpdG9yLmZpbHRlci5saWJkcyx0aGlzLmNsYXVzZXM9bmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzLHRoaXMud2hlcmVDbGF1c2VGbigpKSksInZpZXciPT09bmkucm9vdFBhcmFtJiYobmkudmlld2VyLmZpbHRlci5jb2xzLmxlbmd0aD4wJiYodGhp''@;'; put 'put ''cy5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmkudmlld2VyLmZpbHRlci5jb2xzKSkpLG5pLnZpZXdlci5maWx0ZXIudmFscy5sZW5ndGg+MCYmKHRoaXMudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KG5pLnZpZXdlci5maWx0ZXIudmFscykpKSwiIiE9PW5pLnZpZXdl''@;'; put 'put ''ci5maWx0ZXIuZ3JvdXBMb2dpYyYmKHRoaXMuZ3JvdXBMb2dpYz1uaS52aWV3ZXIuZmlsdGVyLmdyb3VwTG9naWMsdGhpcy53aGVyZUNsYXVzZT1uaS52aWV3ZXIuZmlsdGVyLndoZXJlQ2xhdXNlLHRoaXMubGliZHM9bmkudmlld2VyLmZpbHRlci5saWJkcyx0aGlzLmNsYXVzZXM9bmkudmll''@;'; put 'put ''d2VyLmZpbHRlci5jbGF1c2VzLHRoaXMud2hlcmVDbGF1c2VGbigpKSl9c2V0R3JvdXBMb2dpYyhoKXt0aGlzLmdyb3VwTG9naWM9aCx0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYz1oLHRoaXMud2hlcmVDbGF1c2VGbigpLHRoaXMuc2V0VG9HbG9iYWxzKCl9ZGF0ZUNoYW5nZShoLHYseSxDLEkp''@;'; put 'put ''e2xldCBaPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0SnNEYXRlVG9TYXNEYXRlKGgpOyJCRVRXRUVOIj09PXYub3BlcmF0b3ImJnZvaWQgMCE9PUkmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbeV0udmFsdWVbSV09WiksdGhpcy5zZXRWYXJpYWJsZVZhbHVlcyhaLHks''@;'; put 'put ''Qyl9ZGF0ZVRpbWVDaGFuZ2UoaCx2LHksQyl7Y29uc3QgST10aGlzLmdldFF1ZXJ5RGF0ZVRpbWUoeSx2KTtpZigiIj09PUkuZGF0ZSl7aWYoIiI9PT1oLnZhbHVlKXJldHVybjtJLmRhdGU9aC52YWx1ZS5zcGxpdCgiOiIpWzBdfWNvbnN0IFo9cGFyc2VJbnQoSS50aW1lLnNwbGl0KCI6Iilb''@;'; put 'put ''MF0pLHVlPXBhcnNlSW50KEkudGltZS5zcGxpdCgiOiIpWzFdKSxfZT1wYXJzZUludChJLnRpbWUuc3BsaXQoIjoiKVsyXSl8fDA7bGV0IEJlPW5ldyBEYXRlKEkuZGF0ZSksTmU9bmV3IERhdGUoQmUuZ2V0RnVsbFllYXIoKSxCZS5nZXRNb250aCgpLEJlLmdldERhdGUoKSxaLHVlLF9lKSxL''@;'; put 'put ''ZT10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEpzRGF0ZVRvU2FzRGF0ZShOZSwic2Vjb25kcyIpOyJCRVRXRUVOIj09PWgub3BlcmF0b3ImJnZvaWQgMCE9PUMmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWVbQ109S2UpLHRoaXMuc2V0VmFyaWFibGVWYWx1''@;'; put 'put ''ZXMoS2Usdix5KX10aW1lQ2hhbmdlKGgsdix5LEMsSSl7aD1oLnRhcmdldC52YWx1ZTtsZXQgS2U9NjAqcGFyc2VJbnQoaC5zcGxpdCgiOiIpWzBdKSo2MCs2MCpwYXJzZUludChoLnNwbGl0KCI6IilbMV0pKyhwYXJzZUludChoLnNwbGl0KCI6IilbMl0pfHwwKTsiQkVUV0VFTiI9PT12Lm9w''@;'; put 'put ''ZXJhdG9yJiZ2b2lkIDAhPT1JJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmVsZW1lbnRzW3ldLnZhbHVlW0ldPUtlKSx0aGlzLnNldFZhcmlhYmxlVmFsdWVzKEtlLHksQyl9ZHluYW1pY1doZXJlQ2xhdXNlQ3JlYXRvcihoLHYpe2xldCB5PVtdO2lmKHRoaXMuY2xhdXNlcy5xdWVyeU9i''@;'; put 'put ''ai5sZW5ndGg+MXx8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzLmxlbmd0aD4xKWZvcihsZXQgQz0wO0M8dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aDtDKyspZm9yKGxldCBJPTA7STx0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHMubGVuZ3RoO0krKyl7aWYo''@;'; put 'put ''Qz09PWgmJkk9PT12fHxbbnVsbCx2b2lkIDBdLmluY2x1ZGVzKHRoaXMuY2xhdXNlcy5xdWVyeU9ialtDXS5lbGVtZW50c1tJXS52YXJpYWJsZSl8fFtudWxsLHZvaWQgMF0uaW5jbHVkZXModGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmVsZW1lbnRzW0ldLm9wZXJhdG9yKXx8W251bGwsdm9p''@;'; put 'put ''ZCAwXS5pbmNsdWRlcyh0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWUpKWNvbnRpbnVlO2xldCBaPSIiO2NvbnN0IHVlPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtDXS5lbGVtZW50c1tJXS5vcGVyYXRvcixfZT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVu''@;'; put 'put ''dHNbSV0udmFyaWFibGU7IkJFVFdFRU4iPT09dWU/Wj1gJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWVbMF19IEFORCAke3RoaXMuY2xhdXNlcy5xdWVyeU9ialtDXVtJXS52YWx1ZVsxXX1gOiJJTiI9PT11ZXx8Ik5PVCBJTiI9PT11ZT8odGhpcy5jbGF1c2Vz''@;'; put 'put ''LnF1ZXJ5T2JqW0NdW0ldLnZhbHVlLmZvckVhY2goQmU9PntpZihCZS5jaGVja2VkKXtsZXQgTmU9QmUudmFsOyJzdHJpbmciIT10eXBlb2YgTmV8fCgwLGJ3LmlzU3BlY2lhbE1pc3NpbmcpKE5lKT9aLmxlbmd0aD4wP1orPWAsJHtOZX1gOlo9YCgke05lfWA6Wi5sZW5ndGg+MD9aKz1gLCck''@;'; put 'put ''e05lfSdgOlo9YCgnJHtOZX0nYH19KSxaLmxlbmd0aD4wJiYoWis9IikiKSk6IiI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWU/Wj0iY2hhciI9PT10aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udHlwZT8iJyAnIjoiLiI6ImNoYXIiPT09''@;'; put 'put ''dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW0NdLmVsZW1lbnRzW0ldLnR5cGUmJihaPWAnJHt0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWV9J2ApLHkucHVzaCh7R1JPVVBfTE9HSUM6dGhpcy5jbGF1c2VzLmdyb3VwTG9naWMsU1VCR1JPVVBfTE9HSUM6dGhpcy5jbGF1''@;'; put 'put ''c2VzLnF1ZXJ5T2JqW0NdLmNsYXVzZUxvZ2ljfHwiQU5EIixTVUJHUk9VUF9JRDpDLFZBUklBQkxFX05NOl9lLE9QRVJBVE9SX05NOnVlLFJBV19WQUxVRTpafHx0aGlzLmNsYXVzZXMucXVlcnlPYmpbQ10uZWxlbWVudHNbSV0udmFsdWV9KX1yZXR1cm4geX1nZXRWYWx1ZXMoaCx2LHkpe3Jl''@;'; put 'put ''dHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy53aGVyZUNsYXVzZUxvYWRpbmc9ITA7bGV0IEM9IiI7dm9pZCAwIT09dGhpcy5saWJkcyYmKEM9dGhpcy5saWJkcyksdGhpcy5jbGVhclZhbHVlcyh2LHkpLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50''@;'; put 'put ''c1t2XS52YWx1ZXM9W10sdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLnZhbHVlPSIiLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS5vcGVyYXRvcj0iPSIsdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLnZhcmlhYmxlPWg7dHJ5e2lm''@;'; put 'put ''KHZvaWQgMCE9PXRoaXMuY29scyl7Zm9yKGxldCBfZT0wO19lPHRoaXMuY29scy5sZW5ndGg7X2UrKyl0aGlzLmNvbHNbX2VdLk5BTUU9PT1oJiYodGhpcy5zZWxWYXIuaW5kZXg9X2UpO2NvbnN0IEk9dGhpcy5jb2xzW3RoaXMuc2VsVmFyLmluZGV4XS5ERFRZUEU7dGhpcy5jbGF1c2VzLnF1''@;'; put 'put ''ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLmRkdHlwZT1JLHRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1t2XS50eXBlPXRoaXMuY29sc1t0aGlzLnNlbFZhci5pbmRleF0uVFlQRSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0ub3BlcmF0b3JzPSJudW0iPT09dGhp''@;'; put 'put ''cy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLnR5cGU/dGhpcy5udW1PcGVyYXRvcnM6dGhpcy5jaGFyT3BlcmF0b3JzO2xldCBaPVtdO3RoaXMuZHluYW1pY1doZXJlQ2xhdXNlJiYoWj10aGlzLmR5bmFtaWNXaGVyZUNsYXVzZUNyZWF0b3IoeSx2KSk7Y29uc3QgdWU9WyJEQVRF''@;'; put 'put ''VElNRSIsIlRJTUUiLCJEQVRFIl0uaW5jbHVkZXMoSSk7dGhpcy5zYXNTdG9yZVNlcnZpY2UuZ2V0UXVlcnlWYWx1ZXMoaCxDLFopLnRoZW4oX2U9PntpZih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWVzPV9lLnZhbHMubWFwKE5lPT57Y29uc3QgS2U9Im51bSI9''@;'; put 'put ''PT1fZS4kdmFscy52YXJzLlVORk9STUFUVEVELnR5cGU7bGV0IE90PUtlJiYoMCxidy5pc1NwZWNpYWxNaXNzaW5nKShOZS5VTkZPUk1BVFRFRCk/Ii4iK05lLlVORk9STUFUVEVEOk5lLlVORk9STUFUVEVEO3JldHVybiBLZSYmbnVsbD09PU90JiYoT3Q9Ii4iKSx7Zm9ybWF0dGVkOnVlP05l''@;'; put 'put ''LkZPUk1BVFRFRC5zcGxpdCgiLiIpWzBdOk5lLkZPUk1BVFRFRCx1bmZvcm1hdHRlZDpPdH19KS5zbGljZSgwLDJlMyksdGhpcy53aGVyZUNsYXVzZUZuKCksdGhpcy5zZXRUb0dsb2JhbHMoKSx0aGlzLndoZXJlQ2xhdXNlTG9hZGluZz0hMSxudWxsIT09dGhpcy5wZW5kaW5nSU5WYWx1ZXNT''@;'; put 'put ''ZXQpe2NvbnN0e2NsYXVzZUluZGV4Ok5lLHF1ZXJ5SW5kZXg6S2V9PXRoaXMucGVuZGluZ0lOVmFsdWVzU2V0O3RoaXMuc2V0SU5WYWx1ZXMoTmUsS2UpLHRoaXMucGVuZGluZ0lOVmFsdWVzU2V0PW51bGx9dGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpfSkuY2F0Y2goX2U9Pnt0aGlzLndoZXJl''@;'; put 'put ''Q2xhdXNlTG9hZGluZz0hMX0pfX1jYXRjaChJKXt0aGlzLmV2ZW50U2VydmljZS5jYXRjaFJlc3BvbnNlRXJyb3IoInB1YmxpYy9nZXRjb2x2YWxzIixJKX19KX1nZXRsb2dpYyhoKXt0aGlzLmxvZ2ljPWgsdGhpcy53aGVyZUNsYXVzZUZuKCl9c2V0TG9naWMoKXt0aGlzLndoZXJlQ2xhdXNl''@;'; put 'put ''Rm4oKSx0aGlzLnNldFRvR2xvYmFscygpfWlzQXJyKGgpe3JldHVybiBoIGluc3RhbmNlb2YgQXJyYXkmJmgubGVuZ3RoPjAmJnZvaWQgMCE9PWhbMF0uY2hlY2tlZH12YXJpYWJsZUlucHV0Q2hhbmdlKGgsdix5LEMpe3RoaXMuZ2V0VmFsdWVzKGgsdix5KX1zZXRWYXJpYWJsZVZhbHVlcyho''@;'; put 'put ''LHYseSl7bGV0IEM9dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW3ZdLm9wZXJhdG9yOyJCRVRXRUVOIiE9PUMmJiJJTiIhPT1DJiYiTk9UIElOIiE9PUMmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbdl0udmFsdWU9aC50b1N0cmluZygpKSx0aGlzLndoZXJl''@;'; put 'put ''Q2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfXNldFZhcmlhYmxlT3BlcmF0b3IoaCx2LHkpe2xldCBDPXRoaXMuY2xhdXNlcy5xdWVyeU9ialt5XS5lbGVtZW50c1toXS52YWx1ZTtDIGluc3RhbmNlb2YgQXJyYXkmJiJJTiIhPT12JiYiTk9UIElOIiE9PXYmJihDPUMgaW5zdGFuY2Vv''@;'; put 'put ''ZiBBcnJheSYmMj09PUMubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIENbMF0/Q1swXToiIiksdGhpcy5jbGVhclZhbHVlc09wZXJhdG9yKGgseSksdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLm9wZXJhdG9yPXYsKCI9Ij09PXZ8fCI+Ij09PXZ8fCI8Ij09PXZ8fCI8PSI9''@;'; put 'put ''PT12fHwiPj0iPT09dnx8Ik5FIj09PXYpJiYodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlPUMpLCJCRVRXRUVOIj09PXYmJih0aGlzLmNsYXVzZXMucXVlcnlPYmpbeV0uZWxlbWVudHNbaF0udmFsdWU9W10sdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1l''@;'; put 'put ''bnRzW2hdLnZhbHVlLnB1c2goQyksdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ldLmVsZW1lbnRzW2hdLnZhbHVlLnB1c2goIiIpKSwoIklOIj09PXZ8fCJOT1QgSU4iPT09dikmJnRoaXMuc2V0SU5WYWx1ZXMoeSxoKSx0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfXNl''@;'; put 'put ''dElOVmFsdWVzKGgsdil7Y29uc3QgeT1bXSxDPXRoaXMuY2xhdXNlcy5xdWVyeU9ialtoXS5lbGVtZW50c1t2XS52YWx1ZXM7Qy5sZW5ndGg8MSYmKHRoaXMucGVuZGluZ0lOVmFsdWVzU2V0PXtjbGF1c2VJbmRleDpoLHF1ZXJ5SW5kZXg6dn0pO2ZvcihsZXQgST0wO0k8Qy5sZW5ndGg7SSsr''@;'; put 'put ''KXkucHVzaCh7Y2hlY2tlZDohMSx2YWw6Q1tJXS5mb3JtYXR0ZWR9KTt0aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHNbdl0udmFsdWU9eX1jbGVhclZhbHVlcyhoLHYpe3RoaXMuY2xhdXNlcy5xdWVyeU9ialt2XS5lbGVtZW50c1toXS52YWx1ZT0iIn1jbGVhclZhbHVlc09wZXJh''@;'; put 'put ''dG9yKGgsdil7bGV0IHk9dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ZdLmVsZW1lbnRzW2hdLm9wZXJhdG9yOygiQkVUV0VFTiI9PT15fHwiSU4iPT09eXx8Ik5PVCBJTiI9PT15fHwiQ09OVEFJTlMiPT09eSkmJnRoaXMuY2xlYXJWYWx1ZXMoaCx2KX1oYXNJbnZhbGlkQ2x1YXNlKGgpe2Zvcihs''@;'; put 'put ''ZXQgdiBvZiBoKXtpZihudWxsPT09di52YXJpYWJsZXx8bnVsbD09PXYub3BlcmF0b3J8fG51bGw9PT12LnZhbHVlfHwiIj09PXYudmFsdWUpcmV0dXJuIHYuaW52YWxpZENsYXVzZT0hMCwhMDt2LmludmFsaWRDbGF1c2U9ITF9cmV0dXJuIGguaW52YWxpZENsYXVzZT0hMSwhMX1oYXNJbnZh''@;'; put 'put ''bGlkR3JvdXBDbHVhc2UoKXtmb3IobGV0IGg9MDtoPHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg7aCsrKXtpZih0aGlzLmhhc0ludmFsaWRDbHVhc2UodGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzKSlyZXR1cm4gdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmludmFsaWRD''@;'; put 'put ''bGF1c2U9ITAsITA7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmludmFsaWRDbGF1c2U9ITF9cmV0dXJuITF9YWRkQ2xhdXNlKGgpe2lmKHRoaXMuaGFzSW52YWxpZENsdWFzZSh0aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uZWxlbWVudHMpKXJldHVybiB2b2lkIHRoaXMuZXZlbnRTZXJ2aWNl''@;'; put 'put ''LnNob3dJbmZvTW9kYWwoIkVycm9yIiwiQ2Fubm90IGFkZCBuZXcgY2xhdXNlLCB3aGVuIG9uZSBvciBtb3JlIGNsYXVzZXMgYXJlIGludmFsaWQgb3IgZW1wdHkuIik7dGhpcy5jbGF1c2VBbXQucHVzaCgiIiksdGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmVsZW1lbnRzLnB1c2goe2xvZ2lj''@;'; put 'put ''Om51bGwsdHlwZTpudWxsLHZhcmlhYmxlOm51bGwsb3BlcmF0b3I6bnVsbCx2YWx1ZTpudWxsLHZhbHVlczpbXSxvcGVyYXRvcnM6W119KTtsZXQgdj10aGlzLmNsYXVzZXMucXVlcnlPYmpbaF0uY2xhdXNlTG9naWM7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW2hdLmNsYXVzZUxvZ2ljPXZvaWQg''@;'; put 'put ''MD09PXY/IkFORCI6Ik9SIj09PXY/Ik9SIjoiQU5EIix0aGlzLndoZXJlQ2xhdXNlRm4oKSx0aGlzLnNldFRvR2xvYmFscygpfWFkZEdyb3VwQ2xhdXNlKCl7dGhpcy5oYXNJbnZhbGlkR3JvdXBDbHVhc2UoKT90aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJFcnJvciIsIkNhbm5v''@;'; put 'put ''dCBhZGQgbmV3IGNsYXVzZSwgd2hlbiBvbmUgb3IgbW9yZSBjbGF1c2VzIGFyZSBpbnZhbGlkIG9yIGVtcHR5LiIpOih0aGlzLmNsYXVzZXMucXVlcnlPYmoucHVzaCh7ZWxlbWVudHM6W3tsb2dpYzpudWxsLHR5cGU6bnVsbCx2YXJpYWJsZTpudWxsLG9wZXJhdG9yOm51bGwsdmFsdWU6bnVs''@;'; put 'put ''bCx2YWx1ZXM6W10sb3BlcmF0b3JzOltdfV19KSx0aGlzLnNldFRvR2xvYmFscygpKX1pc0luSHRtbENvbGxlY3Rpb24oaCx2KXtmb3IobGV0IHk9MDt5PHYubGVuZ3RoO3krKylpZih2W3ldLnZhbHVlPT09aClyZXR1cm4hMDtyZXR1cm4hMX1yZW1vdmVHcm91cENsYXVzZShoKXt0aGlzLmNs''@;'; put 'put ''YXVzZXMucXVlcnlPYmouc3BsaWNlKGgsMSksdGhpcy53aGVyZUNsYXVzZUZuKCl9cmVtb3ZlQ2xhdXNlKGgsdil7dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqW3ZdLmVsZW1lbnRzLnNwbGljZShoLDEpLHRoaXMud2hlcmVDbGF1c2VGbigpLHRoaXMuc2V0VG9HbG9iYWxzKCl9d2hlcmVDbGF1c2VG''@;'; put 'put ''bihoPSExKXtjb25zdCB2PXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5jbGF1c2VzKTtpZihoJiYodi5xdWVyeU9ialswXS5lbGVtZW50cz1bXSksdm9pZCAwIT09dGhpcy5saWJkcyl7bGV0IHk9dGhpcy5zYXNTdG9yZVNlcnZpY2Uud2hlcmVDbGF1c2VDcmVhdG9yKHYsdGhp''@;'; put 'put ''cy5ncm91cExvZ2ljLHRoaXMubGliZHMpO2h8fCh0aGlzLndoZXJlQ2xhdXNlPXkud2hlcmVDbGF1c2UsdGhpcy53aGVyZVN0cmluZz15LnN0cmluZyl9fW5nQWZ0ZXJWaWV3SW5pdCgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5fcmVtb3ZlUXJ5PXRo''@;'; put 'put ''aXMuc2FzU3RvcmVTZXJ2aWNlLnJlbW92ZVF1ZXJ5LnN1YnNjcmliZShoPT57dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aD49MSYmKHRoaXMuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGg9MSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHMubGVuZ3RoPj0xJiYodGhpcy5jbGF1''@;'; put 'put ''c2VzLnF1ZXJ5T2JqWzBdLmVsZW1lbnRzLmxlbmd0aD0xLHRoaXMuY2xhdXNlcy5xdWVyeU9ialswXS5lbGVtZW50cz1bXSx0aGlzLmNsYXVzZXMucXVlcnlPYmpbMF0uZWxlbWVudHMucHVzaCh7bG9naWM6bnVsbCx0eXBlOm51bGwsdmFyaWFibGU6bnVsbCxvcGVyYXRvcjpudWxsLHZhbHVl''@;'; put 'put ''Om51bGwsdmFsdWVzOltdLG9wZXJhdG9yczpbXX0pLHRoaXMud2hlcmVDbGF1c2VGbigpKSl9KSx0aGlzLmNvbHVtbnNTdWI9dGhpcy5zYXNTdG9yZVNlcnZpY2UuY29sdW1ucy5zdWJzY3JpYmUoaD0+e2xldCB2PWguZGF0YS5jb2xzOygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3Ii''@;'; put 'put ''PT09bmkucm9vdFBhcmFtKSYmbmkuZWRpdG9yLmZpbHRlci5jb2xzLmxlbmd0aDwxJiYodGhpcy5jb2xzPXYsdGhpcy5saWJkcz1oLmxpYmRzLG5pLmVkaXRvci5maWx0ZXIuY29scz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHYpKSksInZpZXciPT09bmkucm9vdFBhcmFtJiZuaS52aWV3''@;'; put 'put ''ZXIuZmlsdGVyLmNvbHMubGVuZ3RoPDEmJih0aGlzLmNvbHM9dix0aGlzLmxpYmRzPWgubGliZHMsbmkudmlld2VyLmZpbHRlci5jb2xzPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodikpKSx0aGlzLmxpYmRzfHwodGhpcy5saWJkcz1oLmxpYmRzKX0pLHRoaXMudmFsdWVzU3ViPXRoaXMu''@;'; put 'put ''c2FzU3RvcmVTZXJ2aWNlLnZhbHVlcy5zdWJzY3JpYmUoaD0+eygiaG9tZSI9PT1uaS5yb290UGFyYW18fCJlZGl0b3IiPT09bmkucm9vdFBhcmFtKSYmbmkuZWRpdG9yLmZpbHRlci52YWxzLmxlbmd0aDwxJiYodGhpcy52YWxzPWgudmFscyxuaS5lZGl0b3IuZmlsdGVyLnZhbHM9SlNPTi5w''@;'; put 'put ''YXJzZShKU09OLnN0cmluZ2lmeShoLnZhbHMpKSksInZpZXciPT09bmkucm9vdFBhcmFtJiZuaS52aWV3ZXIuZmlsdGVyLnZhbHMubGVuZ3RoPDEmJih0aGlzLnZhbHM9aC52YWxzLG5pLnZpZXdlci5maWx0ZXIudmFscz1KU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGgudmFscykpKX0pfSl9''@;'; put 'put ''bmdBZnRlckNvbnRlbnRJbml0KCl7dGhpcy5nZXRGcm9tR2xvYmFscygpLHNldFRpbWVvdXQoKCk9PntsZXQgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdmFsc192YXJfaWQwXzAiKTtoJiZoLmZvY3VzKCl9LDUwMCl9bmdPbkRlc3Ryb3koKXt0aGlzLmNvbHVtbnNTdWImJnRoaXMuY29s''@;'; put 'put ''dW1uc1N1Yi51bnN1YnNjcmliZSgpLHRoaXMudmFsdWVzU3ViJiZ0aGlzLnZhbHVlc1N1Yi51bnN1YnNjcmliZSgpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChrZyksS3QobXUpLEt0KFhjKSxLdChkMSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlw''@;'; put 'put ''ZTpkLHNlbGVjdG9yczpbWyJhcHAtcXVlcnkiXV0sZmVhdHVyZXM6W2hvKFt7cHJvdmlkZTpZZCx1c2VWYWx1ZToiZW4tR0IifV0pXSxkZWNsczozOCx2YXJzOjExLGNvbnN0czpbWzEsImNsci1mbGV4LXJvdyIsImNsci1mb3JtLWNvbnRyb2wiLCJtLTAiXSxbMSwiY2xyLWNvbnRyb2wtY29u''@;'; put 'put ''dGFpbmVyIl0sWzEsImNsci1jaGVja2JveC13cmFwcGVyIl0sWyJuYW1lIiwiZHluYW1pYy13aGVyZS1jbGF1c2UiLCJ0eXBlIiwiY2hlY2tib3giLCJpZCIsImR5bmFtaWNXaGVyZUNsYXVzZSIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbImZvciIsImR5bmFtaWNXaGVyZUNsYXVz''@;'; put 'put ''ZSIsMSwiY2xyLWNvbnRyb2wtbGFiZWwiXSxbMSwiY2xyLWNvbnRyb2wtY29udGFpbmVyIiwibWwtMTUiXSxbIm5hbWUiLCJkeW5hbWljLXdoZXJlLWNsYXVzZSIsInR5cGUiLCJjaGVja2JveCIsImlkIiwidXNlUGlja2VycyIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJjaGFuZ2Ui''@;'; put 'put ''XSxbImZvciIsInVzZVBpY2tlcnMiLDEsImNsci1jb250cm9sLWxhYmVsIl0sWzEsImNsci1yb3ciXSxbMSwic2VsZWN0IiwiY2xyLWNvbC1tZC0yIiwibWItMzAiXSxbImNsclNlbGVjdCIsIiIsMywiZGlzYWJsZWQiLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFszLCJzZWxlY3RlZCIs''@;'; put 'put ''NCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNsci1jb2wtbWQtMTAiLCJtYi0zMCJdLFsxLCJsaW5lLW51bWJlcnMiLCJsYW5ndWFnZS1tYXJrdXAiXSxbImNsYXNzIiwicHJvZ3Jlc1N0YXRpYyBwcm9ncmVzcyBsb29wIiw0LCJuZ0lmIl0sWzEsImxhbmd1YWdlLXNxbCJdLFsxLCJjb250ZW50''@;'; put 'put ''Il0sWzEsImNsYXVzZXMtY29udGFpbmVyIiwiY2xyLWNvbC1tZC0xMiJdLFs0LCJuZ0lmIl0sWyJjbGFzcyIsImNsYXVzZS1yb3ciLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsicGlja2VyIiwiIl0sWyJub3RQaWNrZXIiLCIiXSxbIm5vdFBpY2tlclJhbmdlIiwiIl0sWyJjaGVja2JveFZhbHVl''@;'; put 'put ''cyIsIiJdLFszLCJzZWxlY3RlZCJdLFsxLCJwcm9ncmVzU3RhdGljIiwicHJvZ3Jlc3MiLCJsb29wIl0sWzEsImNsYXVzZS1yb3ciXSxbMSwiY2xhdXNlLWxvZ2ljIiwiY2xyLWNvbC1tZC0yIl0sWzEsInNlbGVjdCJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJu''@;'; put 'put ''Z01vZGVsQ2hhbmdlIl0sWyJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2sgbXQtMTAiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWzEsImNsYXVzZS1xdWVyeSIsImNsci1jb2wtbWQtMTAiXSxbInNoYXBlIiwidGltZXMiLCJzaXplIiwiMzYiLCJjbGFzcyIsInJlbW92ZS1ncm91cC1j''@;'; put 'put ''bGF1c2UtYnV0dG9uIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItcm93IiwzLCJpbnZhbGlkLWNsYXVzZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImJ0biIsImJ0bi1wcmltYXJ5IiwiYnRuLWJsb2NrIiwibXQtMTAiLDMsImNsaWNrIl0sWyJzaGFwZSIsInBsdXMiXSxb''@;'; put 'put ''InNoYXBlIiwidGltZXMiLCJzaXplIiwiMzYiLDEsInJlbW92ZS1ncm91cC1jbGF1c2UtYnV0dG9uIiwzLCJjbGljayJdLFsxLCJ2YXJpYWJsZS1jb2wiLCJmb3JtLWdyb3VwIiwiY2xyLWNvbC1tZC0zIl0sWzEsImRhdGFsaXN0LXdyYXBwZXIiXSxbImxhYmVsIiwiVmFyaWFibGUiLDMsImlk''@;'; put 'put ''IiwiaW5wdXRJZCIsImVtaXRPbmx5U2VsZWN0ZWQiLCJ2YWx1ZSIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Il0sWzQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJvcGVyYXRvci1jb2wiLCJmb3JtLWdyb3VwIiwiY2xyLWNvbC1tZC0zIl0sWyJjbHJTZWxlY3QiLCIiLDEsIm10LTIiLDMs''@;'; put 'put ''Im5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIl0sWyJjbGFzcyIsInZhbHVlLWNvbCBmb3JtLWdyb3VwIGNsci1jb2wtbWQtMyIsNCwibmdWYXIiXSxbMSwiY2xhdXNlLWJ1dHRvbnMiLCJjbHItY29sLW1kLTIiLCJidG4tZ3JvdXAiXSxbMSwiYnRuIiwiYnRuLXdhcm5pbmciLCJidG4tYmxvY2si''@;'; put 'put ''LDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwibWludXMiXSxbMSwiYnRuIiwiYnRuLXN1Y2Nlc3MiLCJidG4tYmxvY2siLDMsImNsaWNrIl0sWzEsInZhbHVlLWNvbCIsImZvcm0tZ3JvdXAiLCJjbHItY29sLW1kLTMiXSxbImNsYXNzIiwiY2hlY2tib3gtdmFscyIsNCwibmdJZiJd''@;'; put 'put ''LFsiY2xhc3MiLCJzaW5nbGUtZmllbGQtdmFscyIsNCwibmdJZiJdLFsiY2xhc3MiLCJyYW5nZS12YWxzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNvbnRhaW5zLXZhbHMiLDQsIm5nSWYiXSxbMSwiY2hlY2tib3gtdmFscyJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLWxpbmsiLDMs''@;'; put 'put ''ImNsaWNrIl0sWzQsIm5nVGVtcGxhdGVPdXRsZXQiLCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCJdLFsxLCJzaW5nbGUtZmllbGQtdmFscyJdLFsxLCJyYW5nZS12YWxzIl0sWzEsImZyb20iXSxbMSwidG8iXSxbMSwiY29udGFpbnMtdmFscyJdLFsxLCJjbHItY29udHJvbC1sYWJlbCJdLFsi''@;'; put 'put ''dHlwZSIsInRleHQiLDEsImlucHV0LXZhbCIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiXSxbMywibmdTd2l0Y2giXSxbNCwibmdTd2l0Y2hDYXNlIl0sWyJsYWJlbCIsIlZhbHVlIiwidHlwZSIsImRhdGUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVlIiwidmFs''@;'; put 'put ''dWVDaGFuZ2UiXSxbImxhYmVsIiwiVmFsdWUiLCJ0eXBlIiwiZGF0ZSIsMywiZGlzYWJsZVNvZnRzZWxlY3QiLCJpbnB1dElkIiwidmFsdWUiLCJ2YWx1ZUNoYW5nZSIsIm9uSW5wdXRFdmVudCJdLFsidHlwZSIsInRpbWUiLDMsImRpc2FibGVTb2Z0c2VsZWN0IiwiaW5wdXRJZCIsInZhbHVl''@;'; put 'put ''IiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiXSxbImxhYmVsIiwiVmFsdWUiLCJ0eXBlIiwidGltZSIsMywiZGlzYWJsZVNvZnRzZWxlY3QiLCJpbnB1dElkIiwidmFsdWUiLCJvbklucHV0RXZlbnQiXSxbImxhYmVsIiwiVmFsdWUiLDMsImlucHV0SWQiLCJ2YWx1ZSIsInZhbHVlQ2hh''@;'; put 'put ''bmdlIiwib25JbnB1dEV2ZW50Il0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMywidmFsdWUiXSxbImxhYmVsIiwiVmFsdWUiLDMsImlucHV0SWQiLCJ2YWx1ZSIsImRpc2FibGVkIiwidmFsdWVDaGFuZ2UiLCJvbklucHV0RXZlbnQiXSxbMSwiaW4tdmFsdWVzLW1vZGFsIiwz''@;'; put 'put ''LCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbImNsYXNzIiwibm8tdmFsdWVzIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImZvcm0tYmxvY2siLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIl0sWyJ0eXBlIiwiYnV0''@;'; put 'put ''dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbMSwibm8tdmFsdWVzIl0sWzEsImZvcm0tYmxvY2siXSxbInR5cGUiLCJjaGVja2JveCIsImNsckNoZWNrYm94IiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYm''@;'; put 'put ''KG50KDAsImRpdiIsMCkoMSwiZGl2IiwxKSgyLCJkaXYiLDIpKDMsImlucHV0IiwzKSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZHluYW1pY1doZXJlQ2xhdXNlPUN9KSxvdCgpLG50KDQsImxhYmVsIiw0KSxZdCg1LCJEeW5hbWljIHdoZXJlIGNsYXVzZSIpLG90''@;'; put 'put ''KCkoKSgpLG50KDYsImRpdiIsNSkoNywiZGl2IiwyKSg4LCJpbnB1dCIsNiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnVzZVBpY2tlcnM9Q30pKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIHYudXNlUGlja2Vyc0NoYW5nZSgpfSksb3QoKSxudCg5LCJsYWJl''@;'; put 'put ''bCIsNyksWXQoMTAsIiBVc2UgcGlja2VycyAiKSxvdCgpKCkoKSgpLG50KDExLCJkaXYiLDgpKDEyLCJkaXYiLDkpKDEzLCJjbHItc2VsZWN0LWNvbnRhaW5lciIpKDE0LCJsYWJlbCIpLFl0KDE1LCJHcm91cCBsb2dpYyIpLG90KCksbnQoMTYsInNlbGVjdCIsMTApLEduKCJuZ01vZGVsQ2hh''@;'; put 'put ''bmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi5ncm91cExvZ2ljPUN9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5zZXRHcm91cExvZ2ljKHYuZ3JvdXBMb2dpYyl9KSxybigxNyxvZ3QsMiwyLCJvcHRpb24iLDExKSxvdCgpKCkoKSxudCgxOCwiZGl2IiwxMikoMTksInBy''@;'; put 'put ''ZSIsMTMpLFl0KDIwLCIgICAgICAiKSxybigyMSxhZ3QsNCwwLCJkaXYiLDE0KSxZdCgyMiwiXG5cbiAgICAgICIpLG50KDIzLCJjb2RlIiwxNSksWXQoMjQpLG90KCksWXQoMjUsIlxuICAgICIpLG90KCkoKSgpLG50KDI2LCJkaXYiLDE2KSgyNywiZGl2IiwxNykscm4oMjgsbGd0LDEsMCwi''@;'; put 'put ''ZGl2IiwxOCkscm4oMjksRWd0LDE1LDgsImRpdiIsMTkpLG90KCkoKSxybigzMCxEZ3QsNCw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwyMCxacikscm4oMzIsT2d0LDIsMywibmctdGVtcGxhdGUiLG51bGwsMjEsWnIpLHJuKDM0LEJndCwyLDQsIm5nLXRlbXBsYXRlIixudWxsLDIyLFpyKSxybigz''@;'; put 'put ''NixOZ3QsOSw0LCJuZy10ZW1wbGF0ZSIsbnVsbCwyMyxacikpLDImaCYmKHV0KDMpLFR0KCJuZ01vZGVsIix2LmR5bmFtaWNXaGVyZUNsYXVzZSksdXQoNSksVHQoIm5nTW9kZWwiLHYudXNlUGlja2VycyksdXQoOCksVHQoImRpc2FibGVkIiwobnVsbD09di5jbGF1c2VzfHxudWxsPT12LmNs''@;'; put 'put ''YXVzZXMucXVlcnlPYmo/bnVsbDp2LmNsYXVzZXMucXVlcnlPYmoubGVuZ3RoKTwxKSgibmdNb2RlbCIsdi5ncm91cExvZ2ljKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5sb2dpY09wZXJhdG9ycyksdXQoNCksVHQoIm5nSWYiLHYud2hlcmVDbGF1c2VMb2FkaW5nKSx1dCgzKSxqaSh2LndoZXJl''@;'; put 'put ''Q2xhdXNlKSx1dCgzKSxGaSgiY2xyLWNvbC1tZC0xMCIsKG51bGw9PXYuY2xhdXNlc3x8bnVsbD09di5jbGF1c2VzLnF1ZXJ5T2JqP251bGw6di5jbGF1c2VzLnF1ZXJ5T2JqLmxlbmd0aCk+MSksdXQoMSksVHQoIm5nSWYiLChudWxsPT12LmNsYXVzZXN8fG51bGw9PXYuY2xhdXNlcy5xdWVy''@;'; put 'put ''eU9iaj9udWxsOnYuY2xhdXNlcy5xdWVyeU9iai5sZW5ndGgpPjEpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LmNsYXVzZXMucXVlcnlPYmopKX0sZGVwZW5kZW5jaWVzOlt4cyxObyxYZCxKZCxpcCwkMyxxMyxtMSxJZixPZixUcyxJcyx3bCxpZCxvZCxhdCxSbyxsbyxPaSxvWixpWixTTGUsTUxl''@;'; put 'put ''LHJndCxpZ3RdLHN0eWxlczpbJ0BjaGFyc2V0ICJVVEYtOCI7LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRp''@;'; put 'put ''cmVjdGlvbjpjb2x1bW59LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtbG9naWNbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0''@;'; put 'put ''aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOiNlOWU5ZTk7cGFkZGluZzoxNXB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOjMwcHggMCAyMHB4''@;'; put 'put ''IDIwcHg7YmFja2dyb3VuZDojZmJmOGY4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpyZWxhdGl2ZX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gPiAuY2xyLXJvd1tfbmdjb250ZW50LSVDT01QJV17anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdID4gLmNsci1yb3dbX25nY29udGVudC0lQ09NUCVdOm5vdCg6bGFzdC1jaGlsZCl7cGFkZGluZy1ib3R0b206MTVweDttYXJnaW4tYm90dG9tOjE1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMTYpfS5j''@;'; put 'put ''b250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yZW1vdmUtZ3JvdXAtY2xhdXNlLWJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246YWJzb2x1''@;'; put 'put ''dGU7dG9wOjBweDtyaWdodDoxMHB4O2NvbG9yOmdyYXl9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhcmlhYmxlLWNvbFtfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7cGFkZGluZy1ib3R0b206MXB4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; put 'put ''IC52YXJpYWJsZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGFsaXN0LXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdLCAuY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250''@;'; put 'put ''ZW50LSVDT01QJV0gICAudmFyaWFibGUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRhbGlzdC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNv''@;'; put 'put ''bnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vcGVyYXRvci1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5j''@;'; put 'put ''bGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5vcGVyYXRvci1jb2xbX25nY29udGVudC0lQ09NUCVdICAgY2xyLXNlbGVjdC1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde2hlaWdodDo0NXB4O21hcmdp''@;'; put 'put ''bi10b3A6MDt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6Zmxl''@;'; put 'put ''eDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmctYm90dG9tOjFweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXSAgIC5jaGVja2JveC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlO3BhZGRpbmc6MCA1cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgwLDAsMCwuMyl9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19u''@;'; put 'put ''Z2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY2hlY2tib3gtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICBjbHItY2hlY2tib3gtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtt''@;'; put 'put ''YXJnaW4tdG9wOjB9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY2hlY2tib3gtdmFsc1tf''@;'; put 'put ''bmdjb250ZW50LSVDT01QJV0gICBzZWN0aW9uW19uZ2NvbnRlbnQtJUNPTVAlXXttYXgtaGVpZ2h0OjEyMHB4O292ZXJmbG93LXk6c2Nyb2xsfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5''@;'; put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnNpbmdsZS1maWVsZC12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAg''@;'; put 'put ''LmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7bWF4LXdpZHRoOm5vbmV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZh''@;'; put 'put ''bHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlciAuY2xyLWlucHV0LWdyb3Vwe3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2luZ2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09NUCVdID4gaW5wdXRbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuc2lu''@;'; put 'put ''Z2xlLWZpZWxkLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjE3cHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNP''@;'; put 'put ''TVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJb''@;'; put 'put ''X25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lcnt3aWR0aDoxMDAlfS5jb250ZW50''@;'; put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgICAu''@;'; put 'put ''Y2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6bm9uZX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFs''@;'; put 'put ''dWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXIgLmNsci1pbnB1dC1ncm91cHt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5j''@;'; put 'put ''bGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVde21h''@;'; put 'put ''cmdpbi1ib3R0b206MTBweH0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5yYW5nZS12YWxz''@;'; put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5mcm9tW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1''@;'; put 'put ''ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtw''@;'; put 'put ''YWRkaW5nLXJpZ2h0OjE3cHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFs''@;'; put 'put ''c1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xb''@;'; put 'put ''X25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLnRvW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4td2lkdGg6MTAwcHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5j''@;'; put 'put ''bGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAucmFuZ2UtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAuZnJvbVtfbmdjb250ZW50LSVDT01QJV0gPiBpbnB1dFtfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLnRvW19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1j''@;'; put 'put ''b2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLmZyb21bX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV0sIC5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRh''@;'; put 'put ''aW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLnJhbmdlLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgLnRvW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9dGlt''@;'; put 'put ''ZV1bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7cGFkZGluZy1yaWdodDoxN3B4fS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1j''@;'; put 'put ''b2xbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRhaW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0l''@;'; put 'put ''Q09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGFpbnMtdmFsc1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25n''@;'; put 'put ''Y29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250YWlucy12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXJ7''@;'; put 'put ''bWF4LXdpZHRoOm5vbmV9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLnZhbHVlLWNvbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29udGFpbnMtdmFs''@;'; put 'put ''c1tfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXIgLmNsci1pbnB1dC13cmFwcGVyIC5jbHItaW5wdXQtZ3JvdXB7d2lkdGg6MTAwJX0uY29udGVudFtfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlcy1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVdICAg''@;'; put 'put ''LmNsYXVzZS1xdWVyeVtfbmdjb250ZW50LSVDT01QJV0gICAudmFsdWUtY29sW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb250YWlucy12YWxzW19uZ2NvbnRlbnQtJUNPTVAlXSA+IGlucHV0W19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVDT01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC52YWx1ZS1jb2xbX25nY29udGVudC0lQ09NUCVdICAgLmNvbnRhaW5zLXZhbHNbX25nY29udGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT10aW1lXVtf''@;'; put 'put ''bmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjE3cHh9LmNvbnRlbnRbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZXMtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLmNsYXVzZS1idXR0''@;'; put 'put ''b25zW19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDtmbGV4LWRpcmVjdGlvbjpyb3c7YWxpZ24taXRlbXM6Y2VudGVyfS5jb250ZW50W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2VzLWNvbnRhaW5lcltfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV0gICAuY2xhdXNlLXF1ZXJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jbGF1c2UtYnV0dG9uc1tfbmdjb250ZW50LSVDT01QJV0gICBidXR0b25bX25nY29udGVudC0lQ09NUCVde21pbi13aWR0aDphdXRvfS5pbnZhbGlkLWNsYXVzZVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyLWxl''@;'; put 'put ''ZnQ6MnB4IHNvbGlkICNkOTRiMzF9LmNsYXVzZS1yb3dbX25nY29udGVudC0lQ09NUCVdICAgY2xyLWljb25bX25nY29udGVudC0lQ09NUCVde21hcmdpbjowfS5jbGF1c2Utcm93W19uZ2NvbnRlbnQtJUNPTVAlXTphZnRlcntwb3NpdGlvbjpyZWxhdGl2ZTtjb250ZW50OiIiO2hlaWdodDou''@;'; put 'put ''NDE2NjdyZW07d2lkdGg6LjQxNjY3cmVtO3RvcDouMjkxNjdyZW07cmlnaHQ6LjI1cmVtO2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZ1xcMjAyNiUyQzkuODQlMkMz''@;'; put 'put ''LjI0YTAuNjglMkMwLjY4JTJDMCUyQzElMkMxJTJDMSUyQzFaJTIyJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbjowfVtfbmdjb250ZW50LSVDT01Q''@;'; put 'put ''JV06bm90KHByZSkgPiBjb2RlW2NsYXNzKj1sYW5ndWFnZS1dW19uZ2NvbnRlbnQtJUNPTVAlXSwgcHJlW2NsYXNzKj1sYW5ndWFnZS1dW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmYmY4Zjh9cHJlW2NsYXNzKj1sYW5ndWFnZS1dW19uZ2NvbnRlbnQtJUNPTVAlXXtw''@;'; put 'put ''YWRkaW5nOjhweDttYXJnaW46MDtib3JkZXItcmFkaXVzOjFweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDo2NnB4O3Bvc2l0aW9uOnJlbGF0aXZlfXByZVtjbGFzcyo9bGFuZ3VhZ2UtXVtfbmdjb250ZW50LSVDT01Q''@;'; put 'put ''JV0gICBzcGFuLnNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDt0b3A6MTBweH1wcmVbY2xhc3MqPWxhbmd1YWdlLV1bX25nY29udGVudC0lQ09NUCVdICAgY29kZVtfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29y''@;'; put 'put ''ZC1icmVhazpicmVhay13b3JkfS5pbnB1dC12YWxbX25nY29udGVudC0lQ09NUCVde2JvcmRlcjowcHg7YmFja2dyb3VuZDojZmJmOGY4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM5OTk5OTl9Y2xyLWRhdGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjJweCFp''@;'; put 'put ''bXBvcnRhbnR9aW5wdXRbdHlwZT10aW1lXVtfbmdjb250ZW50LSVDT01QJV17Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYjNiM2IzfWlucHV0W3R5cGU9dGltZV1bX25nY29udGVudC0lQ09NUCVdOmZvY3Vze291dGxpbmU6bm9uZX0u''@;'; put 'put ''aW4tdmFsdWVzLW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tb2RhbC1mb290ZXJbX25nY29udGVudC0lQ09NUCVde2JvcmRlci10b3A6MXB4IHNvbGlkICNkOGQ4ZDg7bWFyZ2luLXRvcDoxMHB4fS5wcm9ncmVzc1tfbmdjb250ZW50LSVDT01QJV0sIC5wcm9ncmVzcy1zdGF0aWNbX25n''@;'; put 'put ''Y29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7d2lkdGg6MTAwJTtoZWlnaHQ6NHB4O3RvcDozcHh9J119KSxkfSkoKSxWZ3Q9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rvcigpe3RoaXMuZmlsZU92ZXI9ITEsdGhpcy5maWxlRHJvcHBlZD1uZXcgYXIsdGhpcy5m''@;'; put 'put ''aWxlRHJhZ2dlZE92ZXI9bmV3IGFyfW9uRHJhZ092ZXIoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGguc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jb250YWluc0ZpbGVzKGgpJiYhdGhpcy5maWxlT3ZlciYmKHRoaXMuZmlsZU92ZXI9ITAsdGhpcy5maWxlRHJhZ2dlZE92ZXIuZW1pdCgpKX1vbkRy''@;'; put 'put ''YWdMZWF2ZShoKXtoLnByZXZlbnREZWZhdWx0KCksaC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmZpbGVPdmVyPSExfW9uZHJvcChoKXtoLnByZXZlbnREZWZhdWx0KCksaC5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmZpbGVPdmVyPSExO2NvbnN0IHY9aC5kYXRhVHJhbnNmZXIuZmlsZXM7di5s''@;'; put 'put ''ZW5ndGg+MCYmdGhpcy5maWxlRHJvcHBlZC5lbWl0KHYpfWNvbnRhaW5zRmlsZXMoaCl7aWYoaCYmaC5kYXRhVHJhbnNmZXImJmguZGF0YVRyYW5zZmVyLnR5cGVzKWZvcihsZXQgdj0wO3Y8aC5kYXRhVHJhbnNmZXIudHlwZXMubGVuZ3RoO3YrKylpZigiRmlsZXMiPT1oLmRhdGFUcmFuc2Zl''@;'; put 'put ''ci50eXBlc1t2XSlyZXR1cm4hMH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1ZGlyPVdpKHt0eXBlOmQsc2VsZWN0b3JzOltbIiIsImFwcERyYWdOZHJvcCIsIiJdXSxob3N0VmFyczoyLGhvc3RCaW5kaW5nczpmdW5jdGlvbihoLHYp''@;'; put 'put ''ezEmaCYmR24oImRyYWdvdmVyIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkRyYWdPdmVyKEMpfSkoImRyYWdsZWF2ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25EcmFnTGVhdmUoQyl9KSgiZHJvcCIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub25kcm9wKEMpfSksMiZoJiZGaSgiZmlsZW92ZXIi''@;'; put 'put ''LHYuZmlsZU92ZXIpfSxvdXRwdXRzOntmaWxlRHJvcHBlZDoiZmlsZURyb3BwZWQiLGZpbGVEcmFnZ2VkT3ZlcjoiZmlsZURyYWdnZWRPdmVyIn19KSxkfSkoKTtmdW5jdGlvbiBqZ3QoZCxnKXsxJmQmJihudCgwLCJwIiw4KSxZdCgxLCIgTm8gZGF0YXNldCBtZXRhIHRvIHNob3cuICIpLG90''@;'; put 'put ''KCkpfWZ1bmN0aW9uIFpndChkLGcpe2lmKDEmZCYmKG50KDAsImNsci1kZy1yb3ciKSgxLCJjbHItZGctY2VsbCIpLFl0KDIpLG90KCksbnQoMywiY2xyLWRnLWNlbGwiKSxZdCg0KSxvdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgyKSxqaShoLk5BTUUpLHV0KDIpLGppKGgu''@;'; put 'put ''VkFMVUUpfX1mdW5jdGlvbiB6Z3QoZCxnKXtpZigxJmQmJihudCgwLCJjbHItdGFiLWNvbnRlbnQiLDExKSgxLCJjbHItZGF0YWdyaWQiKSgyLCJjbHItZGctY29sdW1uIiksWXQoMywiTmFtZSIpLG90KCksbnQoNCwiY2xyLWRnLWNvbHVtbiIpLFl0KDUsIlZhbHVlIiksb3QoKSxybig2LFpn''@;'; put 'put ''dCw1LDIsImNsci1kZy1yb3ciLDUpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0O3V0KDYpLFR0KCJuZ0Zvck9mIixoLmRzbWV0YSl9fWZ1bmN0aW9uIEdndChkLGcpe2lmKDEmZCYmKG50KDAsImNsci10YWIiKSgxLCJidXR0b24iLDkpLFl0KDIpLG90KCkscm4oMyx6Z3Qs''@;'; put 'put ''NywxLCJjbHItdGFiLWNvbnRlbnQiLDEwKSxvdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1nLmluZGV4O3V0KDIpLGppKGguZ3JvdXApLHV0KDEpLFR0KCJjbHJJZkFjdGl2ZSIsMD09PXYpfX1sZXQgeExlPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt0aGlzLm9wZW49ITEs''@;'; put 'put ''dGhpcy5kc21ldGE9W10sdGhpcy5vcGVuQ2hhbmdlPW5ldyBhcix0aGlzLmRzbWV0YUdyb3VwcGVkPVtdfW5nT25Jbml0KCl7fW5nT25DaGFuZ2VzKGgpe3ZhciB2LHk7KG51bGw9PT0oeT1udWxsPT09KHY9aC5kc21ldGEpfHx2b2lkIDA9PT12P3ZvaWQgMDp2LmN1cnJlbnRWYWx1ZSl8fHZv''@;'; put 'put ''aWQgMD09PXk/dm9pZCAwOnkubGVuZ3RoKT4wJiZ0aGlzLnBhcnNlRFNNZXRhKCl9cGFyc2VEU01ldGEoKXt0aGlzLmRzbWV0YUdyb3VwcGVkPVtdO2ZvcihsZXQgaCBvZiB0aGlzLmRzbWV0YSl7bGV0IHY9dGhpcy5kc21ldGFHcm91cHBlZC5maW5kSW5kZXgoeT0+eS5ncm91cD09PWguT0RT''@;'; put 'put ''X1RBQkxFKTt2PDAmJih2PXRoaXMuZHNtZXRhR3JvdXBwZWQucHVzaCh7Z3JvdXA6aC5PRFNfVEFCTEUsZHNtZXRhOltdfSktMSksdGhpcy5kc21ldGFHcm91cHBlZFt2XS5kc21ldGEucHVzaChoKX19b25PcGVuQ2hhbmdlKGgpe3RoaXMub3Blbj1oLHRoaXMub3BlbkNoYW5nZS5lbWl0KGgp''@;'; put 'put ''fW9uQ2xvc2VDbGljaygpe3RoaXMub25PcGVuQ2hhbmdlKCExKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1kYXRhc2V0LWluZm8iXV0saW5wdXRzOntvcGVuOiJvcGVuIixk''@;'; put 'put ''c21ldGE6ImRzbWV0YSJ9LG91dHB1dHM6e29wZW5DaGFuZ2U6Im9wZW5DaGFuZ2UifSxmZWF0dXJlczpbRDJdLGRlY2xzOjEwLHZhcnM6NSxjb25zdHM6W1szLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEs''@;'; put 'put ''Im1vZGFsLXRpdGxlIiwiY2VudGVyIiwidGV4dC1jZW50ZXIiLCJjb2xvci1kYXJrZXItZ3JheSJdLFsxLCJtb2RhbC1ib2R5Il0sWyJjbGFzcyIsInRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWyJjbHJMYXlvdXQiLCJ2ZXJ0aWNhbCJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwibW9kYWwt''@;'; put 'put ''Zm9vdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4taW5mby1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsiY2xyVGFiTGluayIsIiIsImlkIiwibGluazEiXSxbImlkIiwiY29udGVudDEiLCJjbGFzcyIsImQtZmxleCBjbHItanVzdGlm''@;'; put 'put ''eS1jb250ZW50LWNlbnRlciB3LTEwMCIsNCwiY2xySWZBY3RpdmUiXSxbImlkIiwiY29udGVudDEiLDEsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwidy0xMDAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJjbHItbW9kYWwiLDApLEduKCJjbHJN''@;'; put 'put ''b2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uT3BlbkNoYW5nZShDKX0pLG50KDEsImgzIiwxKSxZdCgyLCJEYXRhc2V0IE1ldGEiKSxvdCgpLG50KDMsImRpdiIsMikscm4oNCxqZ3QsMiwwLCJwIiwzKSxudCg1LCJjbHItdGFicyIsNCkscm4oNixHZ3QsNCwyLCJjbHIt''@;'; put 'put ''dGFiIiw1KSxvdCgpKCksbnQoNywiZGl2Iiw2KSg4LCJidXR0b24iLDcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vbkNsb3NlQ2xpY2soKX0pLFl0KDksIiBDbG9zZSAiKSxvdCgpKCkoKSksMiZoJiYoVHQoImNsck1vZGFsT3BlbiIsdi5vcGVuKSgiY2xyTW9kYWxTaXplIiwi''@;'; put 'put ''eGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITApLHV0KDQpLFR0KCJuZ0lmIix2LmRzbWV0YUdyb3VwcGVkLmxlbmd0aDwxKSx1dCgyKSxUdCgibmdGb3JPZiIsdi5kc21ldGFHcm91cHBlZCkpfSxkZXBlbmRlbmNpZXM6W3hzLE5vLEdMLGdTLG1TLG13LFlMLEFTLHlTLHZTLHB3LFZMLFpMLGlk''@;'; put 'put ''LG9kLEcyLEtMLHFMLEFaLCRMLFhMLG1aXSxzdHlsZXM6WyIubW9kYWwtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICBjbHItdGFic1tfbmdjb250ZW50LSVDT01QJV17bWF4LWhlaWdodDo3MHZofS5tb2RhbC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLnRhYi1jb250ZW50e3dpZHRo''@;'; put 'put ''OjEwMCU7b3ZlcmZsb3c6YXV0b30ubW9kYWwtYm9keVtfbmdjb250ZW50LSVDT01QJV0gICAgIC50YWItY29udGVudCAuZGF0YWdyaWQtb3V0ZXItd3JhcHBlcnt3aWR0aDoxMDAlfSJdfSksZH0pKCk7ZnVuY3Rpb24gV2d0KGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIsMTMpLFl0KDEpLG90''@;'; put 'put ''KCkpLDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxqaShoLmdlbmVyYXRlZFJlY29yZFVybCl9fWZ1bmN0aW9uIFlndChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImJ1dHRvbiIsMTQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5nZW5lcmF0ZUVk''@;'; put 'put ''aXRSZWNvcmRVcmwoKSl9KSxZdCgxKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTtUdCgiZGlzYWJsZWQiLGguZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZyksdXQoMSksSmkoIiAiLGguZ2VuZXJhdGVkUmVjb3JkVXJsPyJjb3B5IHRvIGNsaXBib2FyZCI6aC5nZW5lcmF0ZUVkaXRS''@;'; put 'put ''ZWNvcmRVcmxMb2FkaW5nPyJHZW5lcmF0aW5nIHVybC4uLiI6IkxpbmsgdG8gdGhpcyByZWNvcmQiLCIgIil9fWZ1bmN0aW9uIFVndChkLGcpe2lmKDEmZCYmKEIwKDApLHJuKDEsV2d0LDIsMSwic3BhbiIsMTEpLHJuKDIsWWd0LDIsMiwiYnV0dG9uIiwxMiksUDAoKSksMiZkKXtjb25zdCBo''@;'; put 'put ''PVF0KCk7dXQoMSksVHQoIm5nSWYiLCEobnVsbCE9aC5jdXJyZW50UmVjb3JkJiZoLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uKSksdXQoMSksVHQoIm5nSWYiLCEobnVsbCE9aC5jdXJyZW50UmVjb3JkJiZoLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uKSl9fWZ1bmN0aW9uIFFndChk''@;'; put 'put ''LGcpezEmZCYmKG50KDAsImRpdiIsMTUpKDEsInNwYW4iLDE2KSxZdCgyLCIgTG9hZGluZy4uLiAiKSxvdCgpKCkpfWZ1bmN0aW9uIEpndChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDI5KX1mdW5jdGlvbiBYZ3QoZCxnKXsxJmQmJihudCgwLCJzcGFuIiwzMCksWXQoMSwiIExvYWRpbmcu''@;'; put 'put ''Li4gIiksb3QoKSl9ZnVuY3Rpb24gS2d0KGQsZyl7MSZkJiZDcigwLCJjZHMtaWNvbiIsMzEpfWZ1bmN0aW9uICRndChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1pbnB1dC1jb250YWluZXIiLDMzKSgxLCJpbnB1dCIsMzQpLEduKCJmb2N1c2luIixmdW5jdGlvbih5KXtp''@;'; put 'put ''dChoKTtjb25zdCBDPVF0KDMpLmluZGV4O3JldHVybiBhKFF0KDIpLm9uUmVjb3JkSW5wdXRGb2N1cyh5LEMpKX0pKCJwYXN0ZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoNSkucmVjb3JkSW5wdXRQYXN0ZSh5KSl9KSgiaW5wdXQiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9''@;'; put 'put ''UXQoMykuJGltcGxpY2l0LEk9UXQoMik7cmV0dXJuIEkucmVjb3JkSW5wdXRDaGFuZ2UoeSxDLmtleSksYShJLmN1cnJlbnRSZWNvcmQubm9MaW5rT3B0aW9uPSEwKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPVF0KDMpLiRpbXBsaWNpdDtyZXR1cm4gYShR''@;'; put 'put ''dCgyKS5jdXJyZW50UmVjb3JkW0Mua2V5XT15KX0pLG90KCkoKX1pZigyJmQpe2NvbnN0IGg9UXQoMykuJGltcGxpY2l0LHY9UXQoMik7RmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSx1dCgxKSxUdCgibmdNb2RlbCIsdi5jdXJy''@;'; put 'put ''ZW50UmVjb3JkW2gua2V5XSl9fWZ1bmN0aW9uIHFndChkLGcpezEmZCYmZjEoMCl9Y29uc3QgRG1lPWZ1bmN0aW9uKGQsZyl7cmV0dXJue2NvbDpkLGNvbEluZGV4Omd9fTtmdW5jdGlvbiBlbXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiKSxybigxLHFndCwxLDAsIm5nLWNvbnRhaW5lciIs''@;'; put 'put ''MzUpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgzKSx2PWguJGltcGxpY2l0LHk9aC5pbmRleDtRdCgyKTtjb25zdCBDPXZhKDE2KTt1dCgxKSxUdCgibmdUZW1wbGF0ZU91dGxldCIsQykoIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0IixqMygyLERtZSx2LHkpKX19Y29uc3QgdG10PWZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuWyJudW1lcmljIix2b2lkIDBdfSxUTGU9ZnVuY3Rpb24oKXtyZXR1cm5bImF1dG9jb21wbGV0ZSJdfTtmdW5jdGlvbiBubXQoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLCRndCwyLDMsImNsci1pbnB1dC1jb250YWluZXIiLDMyKSxybigyLGVtdCwyLDUsImRpdiIsMiksUDAo''@;'; put 'put ''KSksMiZkKXtjb25zdCBoPVF0KDIpLiRpbXBsaWNpdCx2PVF0KDIpO2xldCB5LEM7dXQoMSksVHQoIm5nSWYiLGNzKDIsdG10KS5pbmNsdWRlcyhudWxsPT12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGgua2V5KSk/''@;'; put 'put ''bnVsbDp5LmVkaXRvcikpLHV0KDEpLFR0KCJuZ0lmIixjcygzLFRMZSkuaW5jbHVkZXMobnVsbD09di5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oQz12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6Qy5lZGl0b3IpKX19ZnVuY3Rpb24gcm10KGQs''@;'; put 'put ''Zyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIpKDEsInRleHRhcmVhIiwzNiwzNyksR24oImZvY3VzaW4iLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoMykuaW5kZXg7cmV0dXJuIGEoUXQoMikub25SZWNvcmRJbnB1dEZvY3VzKHksQykp''@;'; put 'put ''fSkoInBhc3RlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCg1KS5yZWNvcmRJbnB1dFBhc3RlKHkpKX0pKCJpbnB1dCIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgzKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoMikucmVjb3JkSW5wdXRDaGFuZ2UoeSxDLmtleSkpfSkoIm5n''@;'; put 'put ''TW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoMykuJGltcGxpY2l0O3JldHVybiBhKFF0KDIpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSksWXQoMywiICAgICAgICAgICAgICAgICAgIiksb3QoKSxudCg0LCJjbHItY29udHJvbC1oZWxwZXIiKSxZdCg1KSxvdCgp''@;'; put 'put ''KCl9aWYoMiZkKXtjb25zdCBoPXZhKDIpLHY9UXQoMykuJGltcGxpY2l0LHk9UXQoMik7bGV0IEMsSSxaO3V0KDEpLEZpKCJpbnZhbGlkLWRhdGEiLHkuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmluY2x1ZGVzKHYua2V5KSkoIm5vdC1jaGFyIixudWxsPT15LmN1cnJlbnRSZWNvcmRWYWxp''@;'; put 'put ''ZGF0b3J8fG51bGw9PShDPXkuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpDLnR5cGUpLFR0KCJyb3dzIix2LnZhbHVlLmxlbmd0aD44MD82OjEpKCJuZ01vZGVsIix5LmN1cnJlbnRSZWNvcmRbdi5rZXldKSgibWF4TGVuZ3RoIixudWxsPT15LmN1cnJlbnRS''@;'; put 'put ''ZWNvcmRWYWxpZGF0b3J8fG51bGw9PShJPXkuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpJLmxlbmd0aCksdXQoNCksRmgoIiIsaC52YWx1ZS5sZW5ndGgsIiAvICIsbnVsbD09eS5jdXJyZW50UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oWj15LmN1cnJlbnRS''@;'; put 'put ''ZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZSh2LmtleSkpP251bGw6Wi5sZW5ndGgsIiIpfX1mdW5jdGlvbiBpbXQoZCxnKXsxJmQmJmYxKDApfWZ1bmN0aW9uIG9tdChkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIpLHJuKDEsaW10LDEsMCwibmctY29udGFpbmVyIiwzNSksb3QoKSksMiZkKXtjb25z''@;'; put 'put ''dCBoPVF0KDMpLHY9aC4kaW1wbGljaXQseT1oLmluZGV4O1F0KDIpO2NvbnN0IEM9dmEoMTYpO3V0KDEpLFR0KCJuZ1RlbXBsYXRlT3V0bGV0IixDKSgibmdUZW1wbGF0ZU91dGxldENvbnRleHQiLGozKDIsRG1lLHYseSkpfX1jb25zdCBhbXQ9ZnVuY3Rpb24oKXtyZXR1cm5bdm9pZCAwXX07''@;'; put 'put ''ZnVuY3Rpb24gbG10KGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxybXQsNiw5LCJjbHItdGV4dGFyZWEtY29udGFpbmVyIiwyKSxybigyLG9tdCwyLDUsImRpdiIsMiksUDAoKSksMiZkKXtjb25zdCBoPVF0KDIpLiRpbXBsaWNpdCx2PVF0KDIpO2xldCB5LEM7dXQoMSksVHQoIm5nSWYiLGNz''@;'; put 'put ''KDIsYW10KS5pbmNsdWRlcyhudWxsPT12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGgua2V5KSk/bnVsbDp5LmVkaXRvcikpLHV0KDEpLFR0KCJuZ0lmIixjcygzLFRMZSkuaW5jbHVkZXMobnVsbD09di5jdXJyZW50''@;'; put 'put ''UmVjb3JkVmFsaWRhdG9yfHxudWxsPT0oQz12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IuZ2V0UnVsZShoLmtleSkpP251bGw6Qy5lZGl0b3IpKX19ZnVuY3Rpb24gc210KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIsMzgpKDEsInRleHRh''@;'; put 'put ''cmVhIiwzOSksR24oInBhc3RlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCg0KS5yZWNvcmRJbnB1dFBhc3RlKHkpKX0pKCJpbnB1dCIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoMikucmVjb3JkSW5wdXRDaGFuZ2UoeSxDLmtl''@;'; put 'put ''eSkpfSkoIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoMikuJGltcGxpY2l0O3JldHVybiBhKFF0KDIpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSksb3QoKSxudCgyLCJjbHItY29udHJvbC1oZWxwZXIiKSxZdCgzLCJISDptbTpzcyIpLG90KCkoKX1pZigy''@;'; put 'put ''JmQpe2NvbnN0IGg9UXQoMikuJGltcGxpY2l0LHY9UXQoMik7bGV0IHk7dXQoMSksRmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSgibm90LWNoYXIiLG51bGw9PXYuY3VycmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KHk9di5j''@;'; put 'put ''dXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUoaC5rZXkpKT9udWxsOnkudHlwZSksVHQoInJvd3MiLGgudmFsdWUubGVuZ3RoPjgwPzY6MSkoIm5nTW9kZWwiLHYuY3VycmVudFJlY29yZFtoLmtleV0pfX1mdW5jdGlvbiB1bXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJk''@;'; put 'put ''aXYiLDM4KSgxLCJ0ZXh0YXJlYSIsNDApLEduKCJwYXN0ZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoNCkucmVjb3JkSW5wdXRQYXN0ZSh5KSl9KSgiaW5wdXQiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoMikuJGltcGxpY2l0O3JldHVybiBhKFF0KDIpLnJlY29yZElu''@;'; put 'put ''cHV0Q2hhbmdlKHksQy5rZXkpKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtpdChoKTtjb25zdCBDPVF0KDIpLiRpbXBsaWNpdDtyZXR1cm4gYShRdCgyKS5jdXJyZW50UmVjb3JkW0Mua2V5XT15KX0pLG90KCksbnQoMiwiY2xyLWRhdGUtY29udGFpbmVyIiw0MSkoMywiaW5wdXQi''@;'; put 'put ''LDQyKSxHbigiY2xyRGF0ZUNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoMikucmVjb3JkRGF0ZUNoYW5nZSh5LEMua2V5KSl9KSxvdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9UXQoMikuJGltcGxpY2l0LHY9UXQoMik7dXQoMSks''@;'; put 'put ''RmkoImludmFsaWQtZGF0YSIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5jbHVkZXMoaC5rZXkpKSxUdCgibmdNb2RlbCIsdi5jdXJyZW50UmVjb3JkW2gua2V5XSl9fWZ1bmN0aW9uIGNtdChkLGcpezEmZCYmZjEoMCl9ZnVuY3Rpb24gZm10KGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2''@;'; put 'put ''Iikscm4oMSxjbXQsMSwwLCJuZy1jb250YWluZXIiLDM1KSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMiksdj1oLiRpbXBsaWNpdCx5PWguaW5kZXg7UXQoMik7Y29uc3QgQz12YSgxNik7dXQoMSksVHQoIm5nVGVtcGxhdGVPdXRsZXQiLEMpKCJuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dCIsajMo''@;'; put 'put ''MixEbWUsdix5KSl9fWZ1bmN0aW9uIGhtdChkLGcpe2lmKDEmZCYmKEIwKDApLG50KDEsImRpdiIsMTgpKDIsImRpdiIsMTkpKDMsInAiLDIwKSxZdCg0KSxybig1LEpndCwxLDAsImNsci1pY29uIiwyMSksb3QoKSxudCg2LCJwIiwyMiksWXQoNyksb3QoKSgpLG50KDgsImRpdiIsMjMpLHJu''@;'; put 'put ''KDksWGd0LDIsMCwic3BhbiIsMjQpLHJuKDEwLEtndCwxLDAsImNkcy1pY29uIiwyNSkscm4oMTEsbm10LDMsNCwibmctY29udGFpbmVyIiwyNikscm4oMTIsbG10LDMsNCwibmctY29udGFpbmVyIiwyNikscm4oMTMsc210LDQsNiwiY2xyLXRleHRhcmVhLWNvbnRhaW5lciIsMjcpLHJuKDE0''@;'; put 'put ''LHVtdCw0LDMsImRpdiIsMjcpLHJuKDE1LGZtdCwyLDUsImRpdiIsMjYpLG90KCkoKSxDcigxNiwiaHIiLDI4KSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoKSx2PWguJGltcGxpY2l0LHk9aC5pbmRleCxDPVF0KDIpO2xldCBJLFo7dXQoNCksSmkoIiAiLHYua2V5LCIgIiksdXQoMSksVHQoIm5n''@;'; put 'put ''SWYiLEMuaXNDb2xQayh2LmtleSkpLHV0KDIpLEppKCIgIixudWxsPT1DLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PShJPUMuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKHYua2V5KSk/bnVsbDpJLmRlc2MsIiAiKSx1dCgxKSxUdCgibmdTd2l0Y2giLG51bGw9PUMuY3Vy''@;'; put 'put ''cmVudFJlY29yZFZhbGlkYXRvcnx8bnVsbD09KFo9Qy5jdXJyZW50UmVjb3JkVmFsaWRhdG9yLmdldFJ1bGUodi5rZXkpKT9udWxsOloudHlwZSksdXQoMSksVHQoIm5nSWYiLEMuY3VycmVudFJlY29yZExvYWRpbmdzLmluY2x1ZGVzKHkpKSx1dCgxKSxUdCgibmdJZiIsQy5jdXJyZW50UmVj''@;'; put 'put ''b3JkRXJyb3JzLmluY2x1ZGVzKHkpKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwibnVtZXJpYyIpLHV0KDEpLFR0KCJuZ1N3aXRjaENhc2UiLHZvaWQgMCksdXQoMSksVHQoIm5nU3dpdGNoQ2FzZSIsInRpbWUiKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwiZGF0ZSIpLHV0KDEpLFR0KCJu''@;'; put 'put ''Z1N3aXRjaENhc2UiLCJhdXRvY29tcGxldGUiKX19ZnVuY3Rpb24gZG10KGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxobXQsMTcsMTEsIm5nLWNvbnRhaW5lciIsMiksUDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwiQWN0aW9uIiE9PWgua2V5JiYiX19f''@;'; put 'put ''X19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIiE9PWgua2V5JiYibm9MaW5rT3B0aW9uIiE9PWgua2V5KX19ZnVuY3Rpb24gcG10KGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxkbXQsMiwxLCJuZy1jb250YWluZXIiLDE3KSxubigyLCJrZXl2YWx1ZSIpLFAwKCkpLDImZCl7Y29uc3QgaD1R''@;'; put 'put ''dCgpO3V0KDEpLFR0KCJuZ0Zvck9mIixQbigyLDIsaC5jdXJyZW50UmVjb3JkLGgub3JpZ2luYWxPcmRlcikpKCJuZ0ZvclRyYWNrQnkiLGgudHJhY2tCeUZuKX19ZnVuY3Rpb24gZ210KGQsZyl7MSZkJiYobnQoMCwiY2xyLWFsZXJ0Iiw0MykoMSwiY2xyLWFsZXJ0LWl0ZW0iKSgyLCJzcGFu''@;'; put 'put ''Iiw0NCksWXQoMywiIERhdGEgVmFsaWRhdGlvbiBFcnJvcnMgLSBQbGVhc2UgUmV2aWV3ICIpLG90KCkoKSgpKSwyJmQmJihOZCgidmlzaWJpbGl0eSIsUXQoKS5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPjA/InZpc2libGUiOiJoaWRkZW4iKSxUdCgiY2xyQWxlcnRDbG9zYWJs''@;'; put 'put ''ZSIsITEpKCJjbHJBbGVydFR5cGUiLCJkYW5nZXIiKSl9ZnVuY3Rpb24gbW10KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw0NSkoMSwiYnV0dG9uIiw0NiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkub25QcmV2aW91c1JlY29yZENsaWNr''@;'; put 'put ''KCkpfSksQ3IoMiwiY2xyLWljb24iLDQ3KSxvdCgpLG50KDMsInAiKSxZdCg0LCIgQ3VycmVudCByb3c6ICIpLG50KDUsInN0cm9uZyIpLFl0KDYpLG90KCkoKSxudCg3LCJidXR0b24iLDQ2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5vbk5leHRSZWNvcmRD''@;'; put 'put ''bGljaygpKX0pLENyKDgsImNsci1pY29uIiw0OCksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLFR0KCJkaXNhYmxlZCIsaC5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPjApLHV0KDUpLEppKCIgIixoLmN1cnJlbnRSZWNvcmRJbmRleCsxLCIgIiksdXQoMSksVHQo''@;'; put 'put ''ImRpc2FibGVkIixoLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5sZW5ndGg+MCl9fWZ1bmN0aW9uIHZtdChkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlvbiIsNTMpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgibmdWYWx1ZSIsaCksdXQoMSksSmkoIiAiLGgsIiAi''@;'; put 'put ''KX19ZnVuY3Rpb24gQW10KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2IikoMSwiYXBwLXNvZnQtc2VsZWN0Iiw1MSksR24oImZvY3VzaW4iLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoKS5jb2xJbmRleDtyZXR1cm4gYShRdCgpLm9uUmVjb3JkSW5wdXRGb2N1cyh5''@;'; put 'put ''LEMpKX0pKCJ2YWx1ZUNoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgpLmNvbDtyZXR1cm4gYShRdCgpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSkoIm9uSW5wdXRFdmVudCIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCksQz15LmNvbCxJPXkuY29sSW5kZXg7cmV0''@;'; put 'put ''dXJuIGEoUXQoKS5vblJlY29yZERyb3Bkb3duQ2hhbmdlKEMua2V5LEkpKX0pLHJuKDIsdm10LDIsMiwib3B0aW9uIiw1Miksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLmNvbCx2PVF0KCk7bGV0IHk7dXQoMSksVHQoInZhbHVlIix2LmN1cnJlbnRSZWNvcmRbaC5rZXldKSgiaW5wdXRJ''@;'; put 'put ''ZCIsaC5rZXkpLHV0KDEpLFR0KCJuZ0Zvck9mIixudWxsPT12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVudFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGgua2V5KSk/bnVsbDp5LnNvdXJjZSl9fWZ1bmN0aW9uIHltdChkLGcpe2lmKDEmZCYmKG50KDAsIm9wdGlv''@;'; put 'put ''biIsNTYpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgidmFsdWUiLGgpLHV0KDEpLEppKCIgIixoLCIgIil9fWZ1bmN0aW9uIHdtdChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsInNlbGVjdCIsNTQpLEduKCJmb2N1c2luIixmdW5jdGlvbih5KXtpdCho''@;'; put 'put ''KTtjb25zdCBDPVF0KCkuY29sSW5kZXg7cmV0dXJuIGEoUXQoKS5vblJlY29yZElucHV0Rm9jdXMoeSxDKSl9KSgibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgpLmNvbDtyZXR1cm4gYShRdCgpLmN1cnJlbnRSZWNvcmRbQy5rZXldPXkpfSkscm4oMSx5bXQs''@;'; put 'put ''MiwyLCJvcHRpb24iLDU1KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLmNvbCx2PVF0KCk7bGV0IHk7VHQoIm5nTW9kZWwiLHYuY3VycmVudFJlY29yZFtoLmtleV0pLHV0KDEpLFR0KCJuZ0Zvck9mIixudWxsPT12LmN1cnJlbnRSZWNvcmRWYWxpZGF0b3J8fG51bGw9PSh5PXYuY3VycmVu''@;'; put 'put ''dFJlY29yZFZhbGlkYXRvci5nZXRSdWxlKGgua2V5KSk/bnVsbDp5LnNvdXJjZSl9fWNvbnN0IGJtdD1mdW5jdGlvbigpe3JldHVyblsiU09GVFNFTEVDVCIsIlNPRlRTRUxFQ1RfSE9PSyJdfTtmdW5jdGlvbiBfbXQoZCxnKXtpZigxJmQmJihybigwLEFtdCwzLDMsImRpdiIsNDkpLHJuKDEs''@;'; put 'put ''d210LDIsMiwibmctdGVtcGxhdGUiLG51bGwsNTAsWnIpKSwyJmQpe2NvbnN0IGg9Zy5jb2wsdj12YSgyKSx5PVF0KCk7VHQoIm5nSWYiLG51bGw9PXkuY3VycmVudFJlY29yZFZhbGlkYXRvcj9udWxsOnkuY3VycmVudFJlY29yZFZhbGlkYXRvci5oYXNEcVJ1bGVzKGgua2V5LGNzKDIsYm10''@;'; put 'put ''KSkpKCJuZ0lmRWxzZSIsdil9fWxldCBDbXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlPWgsdGhpcy5oZWxwZXJTZXJ2aWNlPXYsdGhpcy5yZWNvcmRBY3Rpb249bnVsbCx0aGlzLmZpbHRlcj0hMSx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhp''@;'; put 'put ''cy5oZWFkZXJQa3M9W10sdGhpcy5jZWxsVmFsaWRhdGlvbj1bXSx0aGlzLmN1cnJlbnRSZWNvcmRJbmRleD0tMSx0aGlzLmN1cnJlbnRSZWNvcmRMb2FkaW5ncz1bXSx0aGlzLmN1cnJlbnRSZWNvcmRFcnJvcnM9W10sdGhpcy5vblJlY29yZENoYW5nZT1uZXcgYXIsdGhpcy5vblJlY29yZElu''@;'; put 'put ''cHV0Rm9jdXNlZD1uZXcgYXIsdGhpcy5vblJlY29yZERyb3Bkb3duQ2hhbmdlZD1uZXcgYXIsdGhpcy5vblJlY29yZEVkaXRDbG9zZT1uZXcgYXIsdGhpcy5vblJlY29yZEVkaXRDb25maXJtPW5ldyBhcix0aGlzLm9uTmV4dFJlY29yZD1uZXcgYXIsdGhpcy5vblByZXZpb3VzUmVjb3JkPW5l''@;'; put 'put ''dyBhcix0aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scz1bXSx0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9ITEsdGhpcy5nZW5lcmF0ZWRSZWNvcmRVcmw9bnVsbCx0aGlzLmFkZFJlY29yZFVybD1udWxsLHRoaXMucmVjb3JkTmV3T3JQa01vZGlmaWVkPSExLHRoaXMuYWRk''@;'; put 'put ''UmVjb3JkTG9hZGluZz0hMSx0aGlzLm9yaWdpbmFsT3JkZXI9KHksQyk9PjB9bmdPbkluaXQoKXt9dmFsaWRhdGVSZWNvcmRDb2woaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3JldHVybiBuZXcgUHJvbWlzZSgoeSxDKT0+e3ZhciBJO251bGw9PT0oST10''@;'; put 'put ''aGlzLmN1cnJlbnRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1JfHxJLmV4ZWN1dGVIb3RWYWxpZGF0b3IoaCx2LFo9Pnt5KFopfSl9KX0pfXJlY29yZERhdGVDaGFuZ2UoaCx2KXt2YXIgeTtsZXQgQz1udWxsPT09KHk9dGhpcy5jdXJyZW50UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAwPT09''@;'; put 'put ''eT92b2lkIDA6eS5nZXRSdWxlKHYpLEk9Qz9DLmRhdGVGb3JtYXQ6IiI7dGhpcy5jdXJyZW50UmVjb3JkJiYodGhpcy5jdXJyZW50UmVjb3JkW3ZdPW5JKCkoaCkuZm9ybWF0KEkpKX1pc1JlY29yZE1vZGFsSW52YWxpZCgpe3JldHVybiB0aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5s''@;'; put 'put ''ZW5ndGg+MH1jb25maXJtUmVjb3JkRWRpdCgpe3RoaXMuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aDwxJiZ0aGlzLm9uUmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5jdXJyZW50UmVjb3JkKX1jbG9zZVJlY29yZEVkaXQoKXt0aGlzLm9uUmVjb3JkRWRpdENsb3NlLmVtaXQoKX1vblJl''@;'; put 'put ''Y29yZERyb3Bkb3duQ2hhbmdlKGgsdil7dGhpcy5vblJlY29yZERyb3Bkb3duQ2hhbmdlZC5lbWl0KHtjb2xOYW1lOmgsY29sOnZ9KX1vblJlY29yZElucHV0Rm9jdXMoaCx2KXt0aGlzLm9uUmVjb3JkSW5wdXRGb2N1c2VkLmVtaXQoe2V2ZW50OmgsY29sTmFtZTp2fSl9cmVjb3JkSW5wdXRQ''@;'; put 'put ''YXN0ZShoKXtzZXRUaW1lb3V0KCgpPT57aC50YXJnZXQudmFsdWU9aC50YXJnZXQudmFsdWUucmVwbGFjZSgvXHMrJC8sIiIpfSwwKX1yZWNvcmRJbnB1dENoYW5nZShoLHYpe3ZhciB5O3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7Y29uc3QgQz1udWxsPT09KHk9''@;'; put 'put ''dGhpcy5jdXJyZW50UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAwPT09eT92b2lkIDA6eS5nZXRSdWxlKHYpLEk9aC50YXJnZXQudmFsdWU7dGhpcy5oZWxwZXJTZXJ2aWNlLmRlYm91bmNlQ2FsbCgzMDAsKCk9Pnt0aGlzLnZhbGlkYXRlUmVjb3JkQ29sKEMsSSkudGhlbihaPT57Y29uc3QgdWU9''@;'; put 'put ''dGhpcy5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMuaW5kZXhPZih2KTtaP3VlPi0xJiZ0aGlzLmN1cnJlbnRSZWNvcmRJbnZhbGlkQ29scy5zcGxpY2UodWUsMSk6dWU8MCYmdGhpcy5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMucHVzaCh2KX0pfSl9KX1vbk5leHRSZWNvcmRDbGljaygpe3Ro''@;'; put 'put ''aXMub25OZXh0UmVjb3JkLmVtaXQoKX1vblByZXZpb3VzUmVjb3JkQ2xpY2soKXt0aGlzLm9uUHJldmlvdXNSZWNvcmQuZW1pdCgpfWNvcHlUb0NsaXAoaCl7Y29uc3Qgdj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcmVjb3JkTW9kYWxSZWYgLm1vZGFsLXRpdGxlIik7aWYodil7Y29uc3Qg''@;'; put 'put ''eT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO3kuc3R5bGUucG9zaXRpb249ImZpeGVkIix5LnN0eWxlLmxlZnQ9IjAiLHkuc3R5bGUudG9wPSIwIix5LnN0eWxlLm9wYWNpdHk9IjAiLHkuc3R5bGUuekluZGV4PSI1MDAwIix5LnZhbHVlPWgsdi5hcHBlbmRDaGlsZCh5KSx5''@;'; put 'put ''LmZvY3VzKCkseS5zZWxlY3QoKSxkb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpLHYucmVtb3ZlQ2hpbGQoeSksdGhpcy5nZW5lcmF0ZWRSZWNvcmRVcmw9aH19Z2VuZXJhdGVFZGl0UmVjb3JkVXJsKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih0aGlz''@;'; put 'put ''LmdlbmVyYXRlZFJlY29yZFVybCl0aGlzLmNvcHlUb0NsaXAodGhpcy5nZW5lcmF0ZWRSZWNvcmRVcmwpO2Vsc2V7dGhpcy5nZW5lcmF0ZUVkaXRSZWNvcmRVcmxMb2FkaW5nPSEwO2NvbnN0IGg9W107dGhpcy5oZWFkZXJQa3MuZm9yRWFjaCh2PT57bGV0IHk9IkMiLEM9IiI7Zm9yKGxldCBJ''@;'; put 'put ''PTA7STx0aGlzLmNlbGxWYWxpZGF0aW9uLmxlbmd0aDtJKyspe2NvbnN0IFo9dGhpcy5jZWxsVmFsaWRhdGlvbltJXTtpZihaLmRhdGE9PT12KXsoIm51bWVyaWMiPT09Wi50eXBlfHwiZGF0ZSI9PT1aLnR5cGV8fCJ0aW1lIj09PVoudHlwZSkmJih5PSJOIik7YnJlYWt9fUM9IkMiPT09eT9g''@;'; put 'put ''JyR7dGhpcy5jdXJyZW50UmVjb3JkW3ZdfSdgOnRoaXMuY3VycmVudFJlY29yZFt2XS50b1N0cmluZygpLGgucHVzaCh7R1JPVVBfTE9HSUM6IkFORCIsU1VCR1JPVVBfTE9HSUM6IkFORCIsU1VCR1JPVVBfSUQ6MCxWQVJJQUJMRV9OTTp2LE9QRVJBVE9SX05NOiI9IixSQVdfVkFMVUU6Q30p''@;'; put 'put ''fSksaC5sZW5ndGg+MCYmdGhpcy5saWJkcyYmKHlpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnNhdmVRdWVyeSh0aGlzLmxpYmRzLGgpLnRoZW4odj0+e3RoaXMucXVlcnlGaWx0ZXI9e2lkOnYucmVzdWx0WzBdLkZJTFRFUl9SSyx0YWJsZTp2LnJlc3VsdFswXS5GSUxURVJfVEFCTEV9O2Nv''@;'; put 'put ''bnN0IEk9bG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdKyIjL2VkaXRvci9lZGl0LXJlY29yZC8iK3RoaXMucXVlcnlGaWx0ZXIudGFibGUrIi8iK3RoaXMucXVlcnlGaWx0ZXIuaWQ7dGhpcy5jb3B5VG9DbGlwKEkpLHRoaXMuZ2VuZXJhdGVFZGl0UmVjb3JkVXJsTG9hZGluZz0hMSx0aGlz''@;'; put 'put ''LmZpbHRlcj0hMX0pLmNhdGNoKHY9Pnt0aGlzLnN1Ym1pdExvYWRpbmc9ITF9KSl9fSl9aXNDb2xQayhoKXtyZXR1cm4gdGhpcy5oZWFkZXJQa3MuaW5kZXhPZihoKT4tMX10cmFja0J5Rm4oaCx2KXtyZXR1cm4gaH19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXco''@;'; put 'put ''aHx8ZCkoS3Qoa2cpLEt0KFhjKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1lZGl0LXJlY29yZCJdXSxpbnB1dHM6e2N1cnJlbnRSZWNvcmQ6ImN1cnJlbnRSZWNvcmQiLHJlY29yZEFjdGlvbjoicmVjb3JkQWN0aW9uIixsaWJkczoibGliZHMiLHF1ZXJ5Rmls''@;'; put 'put ''dGVyOiJxdWVyeUZpbHRlciIsZmlsdGVyOiJmaWx0ZXIiLHN1Ym1pdExvYWRpbmc6InN1Ym1pdExvYWRpbmciLGhlYWRlclBrczoiaGVhZGVyUGtzIixjZWxsVmFsaWRhdGlvbjoiY2VsbFZhbGlkYXRpb24iLGN1cnJlbnRSZWNvcmRJbmRleDoiY3VycmVudFJlY29yZEluZGV4IixjdXJyZW50''@;'; put 'put ''UmVjb3JkTG9hZGluZ3M6ImN1cnJlbnRSZWNvcmRMb2FkaW5ncyIsY3VycmVudFJlY29yZEVycm9yczoiY3VycmVudFJlY29yZEVycm9ycyIsY3VycmVudFJlY29yZFZhbGlkYXRvcjoiY3VycmVudFJlY29yZFZhbGlkYXRvciJ9LG91dHB1dHM6e29uUmVjb3JkQ2hhbmdlOiJvblJlY29yZENo''@;'; put 'put ''YW5nZSIsb25SZWNvcmRJbnB1dEZvY3VzZWQ6Im9uUmVjb3JkSW5wdXRGb2N1c2VkIixvblJlY29yZERyb3Bkb3duQ2hhbmdlZDoib25SZWNvcmREcm9wZG93bkNoYW5nZWQiLG9uUmVjb3JkRWRpdENsb3NlOiJvblJlY29yZEVkaXRDbG9zZSIsb25SZWNvcmRFZGl0Q29uZmlybToib25SZWNv''@;'; put 'put ''cmRFZGl0Q29uZmlybSIsb25OZXh0UmVjb3JkOiJvbk5leHRSZWNvcmQiLG9uUHJldmlvdXNSZWNvcmQ6Im9uUHJldmlvdXNSZWNvcmQifSxkZWNsczoxNyx2YXJzOjExLGNvbnN0czpbWyJpZCIsInJlY29yZE1vZGFsUmVmIiwxLCJyZWNvcmQtZWRpdC1tb2RhbCIsInBvc2l0aW9uLXJlbGF0''@;'; put 'put ''aXZlIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbENsb3NhYmxlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzQsIm5nSWYiXSxbMSwibW9kYWwtYm9keSJdLFsiY2xhc3MiLCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgdy0xMDAgcHktMTAiLDQsIm5n''@;'; put 'put ''SWYiXSxbMSwibW9kYWwtZm9vdGVyIiwicC0wIiwiY2xyLWdhcC01IiwiY2xyLWdhcC1tZC0wIiwiY2xyLWZsZXgtY29sdW1uIiwiY2xyLWZsZXgtbWQtcm93Il0sWyJjbGFzcyIsInZhbGlkYXRpb24taW5mby1hbGVydCIsMywidmlzaWJpbGl0eSIsImNsckFsZXJ0Q2xvc2FibGUiLCJjbHJB''@;'; put 'put ''bGVydFR5cGUiLDQsIm5nSWYiXSxbImNsYXNzIiwicHJldi1uZXh0Iiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsImZvY3VzYWJsZSIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwiZm9jdXNhYmxlIiwz''@;'; put 'put ''LCJkaXNhYmxlZCIsImNsaWNrIl0sWyJhdXRvY29tcGxldGUiLCIiXSxbImNsYXNzIiwicG9zaXRpb24tYWJzb2x1dGUgZ2VuZXJhdGUtcmVjb3JkLXVybCIsNCwibmdJZiJdLFsiY2xhc3MiLCJidG4gYnRuLWxpbmsgZ2VuZXJhdGUtcmVjb3JkLXVybC1idXR0b24gcG9zaXRpb24tYWJzb2x1''@;'; put 'put ''dGUiLDMsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwicG9zaXRpb24tYWJzb2x1dGUiLCJnZW5lcmF0ZS1yZWNvcmQtdXJsIl0sWzEsImJ0biIsImJ0bi1saW5rIiwiZ2VuZXJhdGUtcmVjb3JkLXVybC1idXR0b24iLCJwb3NpdGlvbi1hYnNvbHV0ZSIsMywiZGlzYWJsZWQiLCJj''@;'; put 'put ''bGljayJdLFsxLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwiYWxpZ24taXRlbXMtY2VudGVyIiwidy0xMDAiLCJweS0xMCJdLFsxLCJzcGlubmVyIl0sWzQsIm5nRm9yIiwibmdGb3JPZiIsIm5nRm9yVHJhY2tCeSJdLFsxLCJjb2x1bW4tZW50cnkiLCJjbHItZmxleC1jb2x1''@;'; put 'put ''bW4iLCJjbHItZmxleC1tZC1yb3ciXSxbMSwibmFtZS1pbnB1dC1yb3ciXSxbMSwiZm9udC13ZWlnaHQtYm9sZCJdLFsic2hhcGUiLCJrZXkiLDQsIm5nSWYiXSxbMSwiY2VsbC1kZXNjIl0sWzEsImlucHV0cy13cmFwcGVyIiwicG9zaXRpb24tcmVsYXRpdmUiLDMsIm5nU3dpdGNoIl0sWyJj''@;'; put 'put ''bGFzcyIsInNwaW5uZXIgc3Bpbm5lci1pbmxpbmUgZmxleC11bnNldCBwb3NpdGlvbi1hYnNvbHV0ZSBlbnRyeS1pbnB1dC1sZWZ0LW9mZnNldCIsNCwibmdJZiJdLFsiY2xhc3MiLCJmbGV4LXVuc2V0IHBvc2l0aW9uLWFic29sdXRlIGVudHJ5LWlucHV0LWxlZnQtb2Zmc2V0Iiwic2hhcGUi''@;'; put 'put ''LCJlcnJvci1zdGFuZGFyZCIsInN0YXR1cyIsIndhcm5pbmciLDQsIm5nSWYiXSxbNCwibmdTd2l0Y2hDYXNlIl0sWyJjbGFzcyIsImRhdGUtZmllbGQiLDQsIm5nU3dpdGNoQ2FzZSJdLFsxLCJtdC0xMCJdLFsic2hhcGUiLCJrZXkiXSxbMSwic3Bpbm5lciIsInNwaW5uZXItaW5saW5lIiwi''@;'; put 'put ''ZmxleC11bnNldCIsInBvc2l0aW9uLWFic29sdXRlIiwiZW50cnktaW5wdXQtbGVmdC1vZmZzZXQiXSxbInNoYXBlIiwiZXJyb3Itc3RhbmRhcmQiLCJzdGF0dXMiLCJ3YXJuaW5nIiwxLCJmbGV4LXVuc2V0IiwicG9zaXRpb24tYWJzb2x1dGUiLCJlbnRyeS1pbnB1dC1sZWZ0LW9mZnNldCJd''@;'; put 'put ''LFsiY2xhc3MiLCJudW1lcmljLWlucHV0IiwzLCJpbnZhbGlkLWRhdGEiLDQsIm5nSWYiXSxbMSwibnVtZXJpYy1pbnB1dCJdLFsiY2xySW5wdXQiLCIiLCJ0eXBlIiwidGV4dCIsMSwibm90LWNoYXIiLDMsIm5nTW9kZWwiLCJmb2N1c2luIiwicGFzdGUiLCJpbnB1dCIsIm5nTW9kZWxDaGFu''@;'; put 'put ''Z2UiXSxbNCwibmdUZW1wbGF0ZU91dGxldCIsIm5nVGVtcGxhdGVPdXRsZXRDb250ZXh0Il0sWyJjbHJUZXh0YXJlYSIsIiIsMywicm93cyIsIm5nTW9kZWwiLCJtYXhMZW5ndGgiLCJmb2N1c2luIiwicGFzdGUiLCJpbnB1dCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNoYXJUZXh0YXJlYSIsIiJd''@;'; put 'put ''LFsxLCJkYXRlLWZpZWxkIl0sWyJjbHJUZXh0YXJlYSIsIiIsMywicm93cyIsIm5nTW9kZWwiLCJwYXN0ZSIsImlucHV0IiwibmdNb2RlbENoYW5nZSJdLFsiY2xyVGV4dGFyZWEiLCIiLCJyb3dzIiwiMSIsImNvbHMiLCJhdXRvIiwxLCJub3QtY2hhciIsMywibmdNb2RlbCIsInBhc3RlIiwi''@;'; put 'put ''aW5wdXQiLCJuZ01vZGVsQ2hhbmdlIl0sWzEsImRhdGUtcGlja2VyIl0sWyJ0eXBlIiwiZGF0ZSIsIm5hbWUiLCJkYXRlIiwiY2xyRGF0ZSIsIiIsMSwiZC1ub25lIiwzLCJjbHJEYXRlQ2hhbmdlIl0sWzEsInZhbGlkYXRpb24taW5mby1hbGVydCIsMywiY2xyQWxlcnRDbG9zYWJsZSIsImNs''@;'; put 'put ''ckFsZXJ0VHlwZSJdLFsxLCJhbGVydC10ZXh0Il0sWzEsInByZXYtbmV4dCJdLFsidHlwZSIsImJ1dHRvbiIsInRhYmluZGV4IiwiMCIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJmb2N1c2FibGUiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInNoYXBlIiwiYW5nbGUgbGVmdCIsInNpemUiLCIy''@;'; put 'put ''MyJdLFsic2hhcGUiLCJhbmdsZSByaWdodCIsInNpemUiLCIyMyJdLFs0LCJuZ0lmIiwibmdJZkVsc2UiXSxbIm90aGVyX3RoYW5fc29mdF9zZWxlY3QiLCIiXSxbMywidmFsdWUiLCJpbnB1dElkIiwiZm9jdXNpbiIsInZhbHVlQ2hhbmdlIiwib25JbnB1dEV2ZW50Il0sWzMsIm5nVmFsdWUi''@;'; put 'put ''LDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJuZ1ZhbHVlIl0sWyJjbHJTZWxlY3QiLCIiLDMsIm5nTW9kZWwiLCJmb2N1c2luIiwibmdNb2RlbENoYW5nZSJdLFszLCJ2YWx1ZSIsNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzMsInZhbHVlIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYo''@;'; put 'put ''bnQoMCwiY2xyLW1vZGFsIiwwKSgxLCJoMyIsMSksWXQoMikscm4oMyxVZ3QsMywyLCJuZy1jb250YWluZXIiLDIpLG90KCksbnQoNCwiZGl2IiwzKSxybig1LFFndCwzLDAsImRpdiIsNCkscm4oNixwbXQsMyw1LCJuZy1jb250YWluZXIiLDIpLG90KCksbnQoNywiZGl2Iiw1KSxybig4LGdt''@;'; put 'put ''dCw0LDQsImNsci1hbGVydCIsNikscm4oOSxtbXQsOSwzLCJkaXYiLDcpLG50KDEwLCJkaXYiKSgxMSwiYnV0dG9uIiw4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuY3VycmVudFJlY29yZC5ub0xpbmtPcHRpb249ITEsdi5jbG9zZVJlY29yZEVkaXQoKX0pLFl0KDEyLCIgQ2Fu''@;'; put 'put ''Y2VsICIpLG90KCksbnQoMTMsImJ1dHRvbiIsOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmNvbmZpcm1SZWNvcmRFZGl0KCl9KSxZdCgxNCwiIENvbmZpcm0gIiksb3QoKSgpKCkscm4oMTUsX210LDMsMywibmctdGVtcGxhdGUiLG51bGwsMTAsWnIpLG90KCkpLDImaCYmKFR0''@;'; put 'put ''KCJjbHJNb2RhbE9wZW4iLCEwKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDIpLGtmKCIgIiwiQUREIj09PXYucmVjb3JkQWN0aW9uPyJBZGQiOiJFZGl0IiwiIHJlY29yZCBpbiAiLChudWxsPT12LmxpYmRzP251bGw6di5saWJkcy5zcGxpdCgiLiIpKVswXSwiLiIsKG51bGw9PXYubGli''@;'; put 'put ''ZHM/bnVsbDp2LmxpYmRzLnNwbGl0KCIuIikpWzFdLCIgIiksdXQoMSksVHQoIm5nSWYiLCJFRElUIj09PXYucmVjb3JkQWN0aW9uKSx1dCgyKSxUdCgibmdJZiIsdi5hZGRSZWNvcmRMb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsIXYuYWRkUmVjb3JkTG9hZGluZyksdXQoMiksVHQoIm5nSWYi''@;'; put 'put ''LHYuY3VycmVudFJlY29yZEludmFsaWRDb2xzLmxlbmd0aD4wKSx1dCgxKSxUdCgibmdJZiIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPDEpLHV0KDQpLFR0KCJkaXNhYmxlZCIsdi5jdXJyZW50UmVjb3JkSW52YWxpZENvbHMubGVuZ3RoPjApKX0sZGVwZW5kZW5jaWVzOlt4''@;'; put 'put ''cyxObyxYZCxKZCxpcCwkMyxxMyxtMSxPZixUcyxJcyxwWixTeWUsZ1osSmZlLHdsLFpvLGlkLG9kLFJlLHJaLElmZSxwdixCQWUsb1oseU9lLFVBZSxNTGUsWVRdLHN0eWxlczpbIi5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRl''@;'; put 'put ''bnQtJUNPTVAlXXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgLm5hbWUtaW5wdXQtcm93W19uZ2NvbnRlbnQtJUNPTVAlXXt3''@;'; put 'put ''aWR0aDoxMDAlO21heC13aWR0aDoyNjBweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAubmFtZS1pbnB1dC1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLmNlbGwtZGVzY1tfbmdjb250ZW50LSVDT01Q''@;'; put 'put ''JV17bWFyZ2luLXJpZ2h0OjMwcHg7bWFyZ2luLXRvcDoxMHB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5pbnB1dHMtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17ZmxleDoxO2Rpc3BsYXk6Zmxl''@;'; put 'put ''eDthbGlnbi1pdGVtczpjZW50ZXJ9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jb2x1bW4tZW50cnlbX25nY29udGVudC0lQ09NUCVdICAgLmlucHV0cy13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgICA+Kjpub3QoLmRhdGUtZmllbGQpOm5vdChjbHItc2Vs''@;'; put 'put ''ZWN0LWNvbnRhaW5lcil7ZmxleDoxfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgIHBbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXJnaW4tdG9wOjAhaW1wb3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAg''@;'; put 'put ''LmNsci1mb3JtLWNvbnRyb2x7bWFyZ2luLXRvcDowIWltcG9ydGFudH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIGFwcC1zb2Z0LXNlbGVjdHtkaXNwbGF5OmJsb2NrO3dpZHRoOjIyNHB4O2JhY2tn''@;'; put 'put ''cm91bmQ6I2ZmZjtib3JkZXI6MXB4IHNvbGlkICM5OTk7Y29sb3I6IzAwMDtwYWRkaW5nOmNhbGMoLjI1cmVtICsgMnB4KSAuNXJlbTtib3JkZXItcmFkaXVzOi4xMjVyZW07Zm9udC1zaXplOi41NDE2NjdyZW07bWFyZ2luLXJpZ2h0OjZweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVu''@;'; put 'put ''dC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIGFwcC1zb2Z0LXNlbGVjdCBpbnB1dHt3aWR0aDoxMDAlO2JvcmRlcjowO2JhY2tncm91bmQtY29sb3I6I2ZmZn0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRy''@;'; put 'put ''eVtfbmdjb250ZW50LSVDT01QJV0gICAgIGFwcC1zb2Z0LXNlbGVjdCBpbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjAhaW1wb3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuY29sdW1uLWVudHJ5W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAg''@;'; put 'put ''YXBwLXNvZnQtc2VsZWN0IGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV0gICAgIGFwcC1zb2Z0LXNlbGVjdCBpbnB1dDo6LXdlYmtpdC1pbm5lci1z''@;'; put 'put ''cGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmNvbHVtbi1lbnRyeVtfbmdjb250ZW50LSVDT01QJV06Zmlyc3QtY2hpbGQgICBwW19uZ2NvbnRlbnQtJUNPTVAlXTpmaXJzdC1jaGlsZHtt''@;'; put 'put ''YXJnaW4tdG9wOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kYXRlLWZpZWxkW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9ja30ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmRh''@;'; put 'put ''dGUtZmllbGRbX25nY29udGVudC0lQ09NUCVdICAgdGV4dGFyZWFbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjIzMHB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0ZS1maWVsZFtfbmdjb250ZW50LSVDT01QJV0gICAuZGF0ZS1waWNrZXJbX25nY29udGVu''@;'; put 'put ''dC0lQ09NUCVde3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjA7dG9wOjRweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGUtZmllbGRbX25nY29udGVudC0lQ09NUCVdICAgLmRhdGUtcGlja2VyW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1pbnB1dC1n''@;'; put 'put ''cm91cHtib3JkZXI6MCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5tb2RhbC1ib2R5W19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nLWJvdHRvbToxMHB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1zZWxl''@;'; put 'put ''Y3QtY29udGFpbmVye2JvcmRlcjoxcHggc29saWQgIzk5OTtjb2xvcjojMDAwO2JvcmRlci1yYWRpdXM6LjEyNXJlbTttYXJnaW4tcmlnaHQ6NXB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1zZWxlY3QtY29udGFpbmVyIC5jbHItc2VsZWN0LXdyYXBw''@;'; put 'put ''ZXJ7bWF4LWhlaWdodDp1bnNldH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItc2VsZWN0LWNvbnRhaW5lciAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVye3RvcDoxNXB4fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1z''@;'; put 'put ''ZWxlY3QtY29udGFpbmVyIHNlbGVjdHtoZWlnaHQ6YXV0bztwYWRkaW5nOjEwcHggMjBweCAxMHB4IDEwcHg7Ym9yZGVyOjAhaW1wb3J0YW50fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1zZWxlY3QtY29udGFpbmVyIHNlbGVjdDpmb2N1c3tiYWNrZ3Jv''@;'; put 'put ''dW5kOjAgMCFpbXBvcnRhbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLXNlbGVjdC1jb250YWluZXIgc2VsZWN0OmhvdmVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlu''@;'; put 'put ''cHV0LWNvbnRhaW5lcnt3aWR0aDoyMjRweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjOTk5O2NvbG9yOiMwMDA7cGFkZGluZzpjYWxjKC4yNXJlbSArIDJweCkgLjVyZW07Ym9yZGVyLXJhZGl1czouMTI1cmVtO2ZvbnQtc2l6ZTouNTQxNjY3cmVtO21hcmdpbi1yaWdodDo2''@;'; put 'put ''cHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWlucHV0LWNvbnRhaW5lciBpbnB1dHt3aWR0aDoxMDAlO2JvcmRlcjowfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXIgaW5wdXQ6Zm9jdXN7''@;'; put 'put ''YmFja2dyb3VuZDpub25lO2JvcmRlcjowIWltcG9ydGFudH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyIGlucHV0Ojotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbjowfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIGNsci1pbnB1dC1jb250YWluZXIuaW52YWxpZC1k''@;'; put 'put ''YXRhe2JvcmRlci1jb2xvcjpyZWR9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1vZGFsLWRpYWxvZ3t3aWR0aDo4MHZ3fS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5jbHItY29udHJvbC1jb250YWluZXJ7d2lkdGg6MTAwJX0u''@;'; put 'put ''cmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAuY2xyLWNvbnRyb2wtY29udGFpbmVyIHRleHRhcmVhe3dpZHRoOjEwMCU7cmVzaXplOm5vbmU7Ym9yZGVyLWNvbG9yOiM5OTl9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250''@;'; put 'put ''cm9sLWNvbnRhaW5lciB0ZXh0YXJlYS5pbnZhbGlkLWRhdGF7Ym9yZGVyLWNvbG9yOnJlZDtvdXRsaW5lOjB9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1jb250cm9sLWNvbnRhaW5lciB0ZXh0YXJlYS5ub3QtY2hhcntmb250LWZhbWlseTpMdWNpZGEg''@;'; put 'put ''Q29uc29sZSxNb25hY28sbW9ub3NwYWNlfS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5nZW5lcmF0ZS1yZWNvcmQtdXJse3JpZ2h0OjQwcHg7dG9wOjQwcHg7Zm9udC1zaXplOjEycHh9LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAg''@;'; put 'put ''LmdlbmVyYXRlLXJlY29yZC11cmwtYnV0dG9ue3JpZ2h0OjI1cHg7dG9wOjVweH0ucmVjb3JkLWVkaXQtbW9kYWxbX25nY29udGVudC0lQ09NUCVdICAgICAubW9kYWwtaGVhZGVye3BhZGRpbmc6MCAwIDFyZW19LnJlY29yZC1lZGl0LW1vZGFsW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLm1v''@;'; put 'put ''ZGFsLWZvb3RlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5yZWNvcmQtZWRpdC1tb2RhbFtfbmdjb250ZW50LSVDT01QJV0gICAgIC5tb2RhbC1mb290ZXIgLmFsZXJ0e21hcmdpbjowfS5wcmV2LW5leHRbX25nY29udGVu''@;'; put 'put ''dC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnByZXYtbmV4dFtfbmdjb250ZW50LSVDT01QJV0gICBwW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MH0ucHJldi1uZXh0W19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17bWFy''@;'; put 'put ''Z2luOjAgMTBweH0uZm9jdXNhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXTpmb2N1c3tib3gtc2hhZG93OjAgMCAzcHggIzVhYTIyMH0uZW50cnktaW5wdXQtbGVmdC1vZmZzZXRbX25nY29udGVudC0lQ09NUCVde2xlZnQ6LTMwcHh9LnZhbGlkYXRpb24taW5mby1hbGVydFtfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV17d2lkdGg6MzEwcHh9Il19KSxkfSkoKTtmdW5jdGlvbiBrbXQoZCxnKXtpZigxJmQmJihudCgwLCJwIiwzKSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksSmkoIiAiLGgsIiAiKX19bGV0IFNtdD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7dGhp''@;'; put 'put ''cy5zdGF0ZXNMaXN0PVtdLHRoaXMucHJvY2Vzc2VkU3RhdGVzPVtdLHRoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMSx0aGlzLm1pbkRlbGF5PTFlM31uZ09uSW5pdCgpe31hcHBlbmRTdGF0ZShoKXtpZigie2ZpbmlzaH0iPT09aClyZXR1cm4gdGhpcy5zdGF0ZXJJblByb2dyZXNzPSExLHZvaWQg''@;'; put 'put ''Y2xlYXJJbnRlcnZhbCh0aGlzLnN0YXRlSW50ZXJ2YWwpO3RoaXMuc3RhdGVzTGlzdC5wdXNoKGgpLHRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2goaCl9cmVwbGFjZUxhc3RTdGF0ZShoKXt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjA/KHRoaXMuc3RhdGVzTGlzdC5wb3AoKSx0aGlzLnN0YXRl''@;'; put 'put ''c0xpc3QucHVzaChoKSk6dGhpcy5wcm9jZXNzZWRTdGF0ZXNbdGhpcy5wcm9jZXNzZWRTdGF0ZXMubGVuZ3RoLTFdPWh9Y2xlYXJTdGF0ZXMoKXt0aGlzLnByb2Nlc3NlZFN0YXRlcz1bXX1zdGFydFN0YXRlcigpe3RoaXMuc3RhdGVySW5Qcm9ncmVzcz0hMCx0aGlzLnN0YXRlc0xpc3QubGVu''@;'; put 'put ''Z3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2godGhpcy5zdGF0ZXNMaXN0LnNoaWZ0KCl8fCIiKSx0aGlzLnN0YXRlSW50ZXJ2YWw9c2V0SW50ZXJ2YWwoKCk9Pnt0aGlzLnN0YXRlc0xpc3QubGVuZ3RoPjAmJnRoaXMucHJvY2Vzc2VkU3RhdGVzLnB1c2godGhpcy5zdGF0ZXNMaXN0''@;'; put 'put ''LnNoaWZ0KCl8fCIiKX0sdGhpcy5taW5EZWxheSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdXBsb2FkLXN0YXRlciJdXSxkZWNsczo1LHZhcnM6MSxjb25zdHM6W1siY2xh''@;'; put 'put ''c3MiLCJtLTAiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsxLCJ0ZXh0LWNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSIsInZlcnRpY2FsLWFsaWduLW1pZGRsZSJdLFsxLCJtLTAiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJkaXYiKSxybigxLGttdCwyLDEs''@;'; put 'put ''InAiLDApLG90KCksbnQoMiwiZGl2IiwxKSgzLCJzcGFuIiwyKSxZdCg0LCJMb2FkaW5nLi4uIiksb3QoKSgpKSwyJmgmJih1dCgxKSxUdCgibmdGb3JPZiIsdi5wcm9jZXNzZWRTdGF0ZXMpKX0sZGVwZW5kZW5jaWVzOlt4c10sc3R5bGVzOlsiW19uZ2hvc3QtJUNPTVAlXXtkaXNwbGF5OmJs''@;'; put 'put ''b2NrfXBbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyfSJdfSksZH0pKCksTW10PSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgpe3JldHVybiBoLnJlcGxhY2UoL1x8L2csIiB8ICIpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5l''@;'; put 'put ''dyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJwa1NwYWNlU2VwYXJhdGUiLHR5cGU6ZCxwdXJlOiEwfSksZH0pKCksSUxlPSgoKT0+e2NsYXNzIGR7dHJhbnNmb3JtKGgsdil7cmV0dXJuIHRoaXMuYWRkU2VwYXJhdG9ycyhoLnRvU3RyaW5nKCksdil9YWRkU2VwYXJhdG9ycyhoLHY9''@;'; put 'put ''IiAiKXtjb25zdCB5PShoKz0iIikuc3BsaXQoIi4iKTtsZXQgQz15WzBdO2NvbnN0IEk9eS5sZW5ndGg+MT8iLiIreVsxXToiIixaPS8oXGQrKShcZHszfSkvO2Zvcig7Wi50ZXN0KEMpOylDPUMucmVwbGFjZShaLCIkMSIrdisiJDIiKTtyZXR1cm4gQytJfX1yZXR1cm4gZC5cdTAyNzVmYWM9''@;'; put 'put ''ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVwaXBlPVVzKHtuYW1lOiJ0aG91c2FuZFNlcGFyYXRvciIsdHlwZTpkLHB1cmU6ITB9KSxkfSkoKTtjb25zdCBFbXQ9WyJodCJdLHhtdD1bInVwbG9hZFN0YXRlciJdLFRtdD1bInF1ZXJ5RmlsdGVyIl0sSW10PVsiaG90SW5z''@;'; put 'put ''dGFuY2UiXSxEbXQ9WyJmaWxlVXBsb2FkSW5wdXQiXTtmdW5jdGlvbiBMbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDU4KSgxLCJzcGFuIiw1OSkoMiwibGFiZWwiLDYwKSxZdCgzLCIgQnJvd3NlICIpLG90KCkoKSxudCg0LCJpbnB1dCIsNjEsNjIpLEduKCJjaGFu''@;'; put 'put ''Z2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuZ2V0RmlsZURlc2MoeSkpfSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO3V0KDQpLFR0KCJ1cGxvYWRlciIsaC51cGxvYWRlcil9fWZ1bmN0aW9uIE9tdChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIs''@;'; put 'put ''NjMpKDEsImJ1dHRvbiIsNjQpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmdldEZpbGUoKSl9KSxZdCgyLCIgVXBsb2FkICIpLG90KCkoKX0yJmQmJih1dCgxKSxUdCgiZGlzYWJsZWQiLCEwKSl9ZnVuY3Rpb24gUm10KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdp''@;'; put 'put ''KCk7bnQoMCwiYnV0dG9uIiw2NSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuc2hvd1VwbG9hZE1vZGFsPSExKX0pLFl0KDEsIiBDbG9zZSAiKSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpO1R0KCJkaXNhYmxlZCIsaC5leGNlbEZpbGVQYXJzaW5nfHxoLnVw''@;'; put 'put ''bG9hZExvYWRpbmcpfX1mdW5jdGlvbiBCbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDY2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5zaG93VXBsb2FkTW9kYWw9ITEpfSksWXQoMSwiIFNraXAgIiksb3QoKX19ZnVuY3Rpb24g''@;'; put 'put ''UG10KGQsZyl7MSZkJiYobnQoMCwiZGl2Iiw2NyksQ3IoMSwiYXBwLXVwbG9hZC1zdGF0ZXIiLG51bGwsNjgpLG90KCkpfWZ1bmN0aW9uIEZtdChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImFwcC1lZGl0LXJlY29yZCIsNjkpLEduKCJvblJlY29yZENoYW5nZSIsZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gaXQoaCksYShRdCgpLmNvbmZpcm1SZWNvcmRFZGl0KCkpfSkoIm9uUmVjb3JkSW5wdXRGb2N1c2VkIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLm9uUmVjb3JkSW5wdXRGb2N1cyh5KSl9KSgib25SZWNvcmRFZGl0Q2xvc2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0''@;'; put 'put ''KGgpLGEoUXQoKS5jbG9zZVJlY29yZEVkaXQoKSl9KSgib25OZXh0UmVjb3JkIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkub25OZXh0UmVjb3JkKCkpfSkoIm9uUHJldmlvdXNSZWNvcmQiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5vblByZXZpb3VzUmVjb3JkKCkp''@;'; put 'put ''fSksb3QoKX1pZigyJmQpe2NvbnN0IGg9UXQoKTtUdCgiY3VycmVudFJlY29yZCIsaC5jdXJyZW50RWRpdFJlY29yZCkoInJlY29yZEFjdGlvbiIsaC5yZWNvcmRBY3Rpb24pKCJsaWJkcyIsaC5saWJkcykoInF1ZXJ5RmlsdGVyIixoLnF1ZXJ5RmlsdGVyKSgiZmlsdGVyIixoLmZpbHRlciko''@;'; put 'put ''InN1Ym1pdExvYWRpbmciLGguc3VibWl0TG9hZGluZykoImhlYWRlclBrcyIsaC5oZWFkZXJQa3MpKCJjZWxsVmFsaWRhdGlvbiIsaC5jZWxsVmFsaWRhdGlvbikoImN1cnJlbnRSZWNvcmRJbmRleCIsaC5jdXJyZW50RWRpdFJlY29yZEluZGV4KSgiY3VycmVudFJlY29yZExvYWRpbmdzIixo''@;'; put 'put ''LmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MpKCJjdXJyZW50UmVjb3JkRXJyb3JzIixoLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzKSgiY3VycmVudFJlY29yZFZhbGlkYXRvciIsaC5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcil9fWZ1bmN0aW9uIEhtdChkLGcpezEmZCYmKG50KDAsImRp''@;'; put 'put ''diIsNzApLENyKDEsInByb2dyZXNzIiksb3QoKSl9Y29uc3QgTm10PWZ1bmN0aW9uKCl7cmV0dXJuWyIvaG9tZSJdfTtmdW5jdGlvbiBWbXQoZCxnKXsxJmQmJihudCgwLCJkaXYiLDcxKSgxLCJzcGFuIiw3MiksQ3IoMiwiY2xyLWljb24iLDczKSxZdCgzLCJCYWNrIHRvIHRhYmxlIHNlbGVj''@;'; put 'put ''dGlvbiAiKSxvdCgpKCkpLDImZCYmKHV0KDEpLFR0KCJyb3V0ZXJMaW5rIixjcygxLE5tdCkpKX1mdW5jdGlvbiBqbXQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiw3OCl9ZnVuY3Rpb24gWm10KGQsZyl7aWYoMSZkJiYoQjAoMCksWXQoMSksbm4oMiwidGhvdXNhbmRTZXBhcmF0b3IiKSxQ''@;'; put 'put ''MCgpKSwyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMSksRmgoIiAoIixQbigyLDIsaC5kYXRhU291cmNlLmxlbmd0aCwiLCIpLCIgIiwxPT09aC5kYXRhU291cmNlLmxlbmd0aD8icm93Ijoicm93cyIsIikgIil9fWZ1bmN0aW9uIHptdChkLGcpezEmZCYmKEIwKDApLFl0KDEsIiAoMCByb3dzKSAi''@;'; put 'put ''KSxQMCgpKX1mdW5jdGlvbiBHbXQoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLFptdCwzLDUsIm5nLWNvbnRhaW5lciIsNDUpLHJuKDIsem10LDIsMCwibmctY29udGFpbmVyIiw0NSksUDAoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDEpLFR0KCJuZ0lmIiwhaC56ZXJvRmlsdGVyUm93cyks''@;'; put 'put ''dXQoMSksVHQoIm5nSWYiLGguemVyb0ZpbHRlclJvd3MpfX1mdW5jdGlvbiBXbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJoNCIsNzQpKDEsImNsci1pY29uIiw3NSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuZGF0YXNldEluZm89ITApfSks''@;'; put 'put ''b3QoKSxybigyLGptdCwxLDAsImNsci1pY29uIiw3NiksWXQoMyksbnQoNCwiYSIsNzcpLFl0KDUpLG90KCkscm4oNixHbXQsMywyLCJuZy1jb250YWluZXIiLDQ1KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1nLm5nVmFyLHY9UXQoKTt1dCgyKSxUdCgibmdJZiIsaC50YWJsZU5hbWUuaW5jbHVk''@;'; put 'put ''ZXMoIi1GQyIpKSx1dCgxKSxKaSgiICIsaC5saWJOYW1lLCIuIiksdXQoMSksVHQoInJvdXRlckxpbmsiLCIvdmlldy9kYXRhLyIrdi5saWJkcyksdXQoMSksamkoaC50YWJsZU5hbWUucmVwbGFjZSgiLUZDIiwiIikpLHV0KDEpLFR0KCJuZ0lmIix2LmRhdGFTb3VyY2UpfX1mdW5jdGlvbiBZ''@;'; put 'put ''bXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDg1KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMykub25TaG93VXBsb2FkTW9kYWwoKSl9KSxDcigxLCJjbHItaWNvbiIsODYpLG50KDIsInNwYW4iKSxZdCgzLCJVcGxvYWQiKSxvdCgp''@;'; put 'put ''KCl9fWZ1bmN0aW9uIFVtdChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO0IwKDApLG50KDEsImJ1dHRvbiIsODApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5vcGVuUWIoKSl9KSxDcigyLCJjbHItaWNvbiIsODEpLG50KDMsInNwYW4iKSxZdCg0LCJGaWx0''@;'; put 'put ''ZXIiKSxvdCgpKCksbnQoNSwiYnV0dG9uIiw4MiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLmVkaXRUYWJsZSgpKX0pLENyKDYsImNsci1pY29uIiw4MyksbnQoNywic3BhbiIpLFl0KDgsIkVkaXQiKSxvdCgpKCkscm4oOSxZbXQsNCwwLCJidXR0b24iLDg0''@;'; put 'put ''KSxQMCgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCg5KSxUdCgibmdJZiIsIWguY29sdW1uTGV2ZWxTZWN1cml0eUZsYWcpfX1mdW5jdGlvbiBRbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDkxKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgp''@;'; put 'put ''LGEoUXQoMykuYWRkUm93KCkpfSksQ3IoMSwiY2xyLWljb24iLDkyKSxZdCgyLCJBZGQgUm93ICIpLG90KCl9MiZkJiZUdCgiY2xyTG9hZGluZyIsUXQoMykuYWRkaW5nTmV3Um93KX1mdW5jdGlvbiBKbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtCMCgwKSxudCgxLCJidXR0b24iLDg3''@;'; put 'put ''KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMikuY2FuY2VsRWRpdCgpKX0pLENyKDIsImNsci1pY29uIiw4OCksbnQoMywic3BhbiIpLFl0KDQsIkNhbmNlbCIpLG90KCkoKSxybig1LFFtdCwzLDEsImJ1dHRvbiIsODkpLG50KDYsImJ1dHRvbiIsMzgpLEduKCJj''@;'; put 'put ''bGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgyKS5jaGVja1NhdmUoKSl9KSxDcig3LCJjbHItaWNvbiIsOTApLFl0KDgsIlN1Ym1pdCAiKSxvdCgpLFAwKCl9aWYoMiZkKXtjb25zdCBoPVF0KDIpO3V0KDUpLFR0KCJuZ0lmIiwhaC5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRS''@;'; put 'put ''b3cpfX1mdW5jdGlvbiBYbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDk2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMykubWFudWFsRmlsZUVkaXRNb2RhbD0hMCl9KSxDcigxLCJjbHItaWNvbiIsODMpLG50KDIsInNwYW4iKSxZ''@;'; put 'put ''dCgzLCJFZGl0Iiksb3QoKSgpfX1mdW5jdGlvbiBLbXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtCMCgwKSxudCgxLCJidXR0b24iLDkzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMikuZGlzY2FyZFNvdXJjZUZpbGU9ITApfSksQ3IoMiwiY2xyLWljb24i''@;'; put 'put ''LDg4KSxudCgzLCJzcGFuIiksWXQoNCwiRGlzY2FyZCBmaWxlIiksb3QoKSgpLHJuKDUsWG10LDQsMCwiYnV0dG9uIiw5NCksbnQoNiwiYnV0dG9uIiw5NSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLmdldEZpbGUoKSl9KSxDcig3LCJjbHItaWNvbiIsOTAp''@;'; put 'put ''LFl0KDgsIiBTdWJtaXQgIiksb3QoKSxQMCgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCg1KSxUdCgibmdJZiIsaC5ob3RUYWJsZS5yZWFkT25seSksdXQoMSksVHQoImNsckxvYWRpbmciLGgudXBsb2FkTG9hZGluZyl9fWZ1bmN0aW9uICRtdChkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIs''@;'; put 'put ''NzkpLHJuKDEsVW10LDEwLDEsIm5nLWNvbnRhaW5lciIsNDUpLHJuKDIsSm10LDksMSwibmctY29udGFpbmVyIiw0NSkscm4oMyxLbXQsOSwyLCJuZy1jb250YWluZXIiLDQ1KSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgxKSxUdCgibmdJZiIsaC5ob3RUYWJsZS5yZWFkT25seSYmIWgu''@;'; put 'put ''dXBsb2FkUHJldmlldyksdXQoMSksVHQoIm5nSWYiLCFoLmhvdFRhYmxlLnJlYWRPbmx5JiYhaC51cGxvYWRQcmV2aWV3KSx1dCgxKSxUdCgibmdJZiIsaC51cGxvYWRQcmV2aWV3KX19ZnVuY3Rpb24gcW10KGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2Iiw5NykoMSwic3BhbiIpLFl0KDIsIkZJ''@;'; put 'put ''TFRFUiA6ICIpLG50KDMsImIiKSxZdCg0KSxvdCgpKCkoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoNCksamkoaC5xdWVyeVRleHQpfX1mdW5jdGlvbiBlN3QoZCxnKXsxJmQmJihCMCgwKSxudCgxLCJzcGFuIiwxMDApLFl0KDIsIiBMb2FkaW5nLi4uICIpLG90KCksbnQoMywiZGl2IikoNCwi''@;'; put 'put ''aDMiKSxZdCg1LCJMb2FkaW5nIHRhYmxlIiksb3QoKSgpLFAwKCkpfWZ1bmN0aW9uIHQ3dChkLGcpezEmZCYmKEIwKDApLG50KDEsInNwYW4iKSxDcigyLCJjbHItaWNvbiIsMTAxKSxvdCgpLG50KDMsImRpdiIpKDQsImgzIiksWXQoNSwiTG9hZGluZyB0YWJsZSBlcnJvciIpLG90KCkoKSxQ''@;'; put 'put ''MCgpKX1mdW5jdGlvbiBuN3QoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDk4KSgxLCJkaXYiLDk5KSxybigyLGU3dCw2LDAsIm5nLWNvbnRhaW5lciIsNDUpLHJuKDMsdDd0LDYsMCwibmctY29udGFpbmVyIiw0NSksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoKTt1dCgyKSxUdCgibmdJZiIs''@;'; put 'put ''IWguZ2V0ZGF0YUVycm9yKSx1dCgxKSxUdCgibmdJZiIsaC5nZXRkYXRhRXJyb3IpfX1mdW5jdGlvbiByN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDEwMiksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuYWRkUmVjb3JkQnV0dG9u''@;'; put 'put ''Q2xpY2soKSl9KSxDcigxLCJjbHItaWNvbiIsOTIpLFl0KDIsIiBBZGQgUmVjb3JkICIpLG90KCl9fWZ1bmN0aW9uIGk3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIsMTEzKSgxLCJkaXYiLDExNCkoMiwibGFiZWwiLDExNSksWXQoMywiTWVzc2FnZSIpLG90KCksbnQo''@;'; put 'put ''NCwidGV4dGFyZWEiLDExNiksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLm1lc3NhZ2U9eSl9KSxvdCgpKCkoKX1pZigyJmQpe2NvbnN0IGg9UXQoMik7dXQoNCksVHQoIm5nTW9kZWwiLGgubWVzc2FnZSkoImRpc2FibGVkIiwhaC52YWxpZGF0''@;'; put 'put ''aW9uRG9uZSkoInZhbHVlIixoLnZhbGlkYXRpb25Eb25lPyIiOiJQbGVhc2Ugd2FpdCB3aGlsZSB3ZSB2YWxpZGF0ZSAiK2guY29scy5sZW5ndGgqaC5tb2RpZmVkUm93c0luZGV4ZXMubGVuZ3RoKyIgY2VsbHMuIil9fWZ1bmN0aW9uIG83dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250''@;'; put 'put ''KDAsImRpdiIsMTAzKSgxLCJkaXYiLDEwNCkoMiwiZGl2IiwxMDUpKDMsImRpdiIsMTA2KSg0LCJidXR0b24iLDEwNyksQ3IoNSwiY2xyLWljb24iLDEwOCksb3QoKSxudCg2LCJoMyIsMiksWXQoNyksb3QoKSgpLG50KDgsImRpdiIsMykscm4oOSxpN3QsNSwzLCJkaXYiLDEwOSksb3QoKSxu''@;'; put 'put ''dCgxMCwiZGl2IiwxMTApKDExLCJidXR0b24iLDExMSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKTtyZXR1cm4gYSh5LnNhdmVUYWJsZSh5LmhvdFRhYmxlLmRhdGEpKX0pLFl0KDEyLCIgU3VibWl0ICIpLG90KCksbnQoMTMsImJ1dHRvbiIsMTEyKSxHbigiY2xp''@;'; put 'put ''Y2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgpO3JldHVybiB5LmNhbmNlbFN1Ym1pdCgpLHkuc3VibWl0PSExLGEoeS52YWxpZGF0aW9uRG9uZT0wKX0pLFl0KDE0LCIgQ2FuY2VsICIpLG90KCkoKSgpKCkoKX1pZigyJmQpe2NvbnN0IGg9UXQoKTt1dCg3KSxrZigiIFN1Ym1pdCBm''@;'; put 'put ''b3IgQXBwcm92YWwgKCIsaC5yb3dzQ2hhbmdlZC5yb3dzQWRkZWQsIiBhZGRlZCwgIixoLnJvd3NDaGFuZ2VkLnJvd3NVcGRhdGVkLCIgdXBkYXRlZCwgIixoLnJvd3NDaGFuZ2VkLnJvd3NEZWxldGVkLCIgZGVsZXRlZCkgIiksdXQoMiksVHQoIm5nSWYiLGgudGFibGVUcnVlKSx1dCgyKSxU''@;'; put 'put ''dCgiZGlzYWJsZWQiLCFoLnZhbGlkYXRpb25Eb25lKX19ZnVuY3Rpb24gYTd0KGQsZyl7aWYoMSZkJiYobnQoMCwic3BhbiIsMTE3KSxZdCgxKSxubigyLCJwa1NwYWNlU2VwYXJhdGUiKSxvdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1RdCgpO3V0KDEpLEZoKCIgT24gcm93ICIs''@;'; put 'put ''aCsxLCI6ICIsenQoMiwyLHYucGtGaWVsZHNbaF0ucmVwbGFjZSgifCIsIiIpKSwiICIpfX1mdW5jdGlvbiBsN3QoZCxnKXtpZigxJmQmJihudCgwLCJwIiksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLGtmKCIgIixoLmNvbCwiKCIsaC5sZW4sIiksICIsaC52''@;'; put 'put ''YWwsIiAiKX19ZnVuY3Rpb24gczd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2IiwxMTgpKDEsImRpdiIsMTE5KSgyLCJkaXYiLDEwNSkoMywiZGl2IiwxMDYpKDQsImJ1dHRvbiIsMTA3KSxDcig1LCJjbHItaWNvbiIsMTA4KSxvdCgpLG50KDYsImgzIiwyKSxZdCg3LCJF''@;'; put 'put ''cnJvciIpLG90KCkoKSxudCg4LCJkaXYiLDMpKDksInAiKSxZdCgxMCwiWW91IGNhbm5vdCBzdWJtaXQgZW1wdHkgY2xhdXNlcyIpLG90KCkoKSxudCgxMSwiZGl2IiwxNykoMTIsImJ1dHRvbiIsMzgpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLm51bGxWYXJp''@;'; put 'put ''YWJsZXM9ITEpfSksWXQoMTMsIiBPayAiKSxvdCgpKCkoKSgpKCl9fWZ1bmN0aW9uIHU3dChkLGcpezEmZCYmQ3IoMCwiYXBwLXF1ZXJ5IixudWxsLDEyMCl9ZnVuY3Rpb24gYzd0KGQsZyl7MSZkJiYobnQoMCwicCIsMTIxKSxZdCgxLCIgU29ycnkgdGhhdCBkaWRuJ3Qgd29yaywgdHJ5IGFn''@;'; put 'put ''YWluLiAiKSxvdCgpKX1jb25zdCBmN3Q9ZnVuY3Rpb24oZCxnKXtyZXR1cm57bGliTmFtZTpkLHRhYmxlTmFtZTpnfX0sRExlPWZ1bmN0aW9uKCl7cmV0dXJuWyIiLCIgIl19LGg3dD1mdW5jdGlvbihkKXtyZXR1cm57aGVhZGVyQmFyRmlsdGVyOmR9fSxMTGU9TCg0MTkyNSksT0xlPUwoOTMx''@;'; put 'put ''NzIpLkJ1ZmZlcjtsZXQgam5lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFosdWUsX2UsQmUsTmUpe3RoaXMuYXBwU2VydmljZT1oLHRoaXMuZXZlbnRTZXJ2aWNlPXYsdGhpcy5sb2dnZXJTZXJ2aWNlPXksdGhpcy5zYXNTdG9yZVNlcnZpY2U9Qyx0aGlzLmhlbHBlclNl''@;'; put 'put ''cnZpY2U9SSx0aGlzLnJvdXRlcj1aLHRoaXMucm91dGU9dWUsdGhpcy5zYXNTZXJ2aWNlPV9lLHRoaXMuY2RmPUJlLHRoaXMuaG90UmVnaXN0ZXJlcj1OZSx0aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0PW5ldyB6cix0aGlzLnF1ZXJ5RmlsdGVyQ29tcExpc3Q9bmV3IHpyLHRoaXMuaG90SW5z''@;'; put 'put ''dGFuY2VDb21wTGlzdD1uZXcgenIsdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdD1uZXcgenIsdGhpcy5tZXNzYWdlPSIiLHRoaXMuJGRhdGFGb3JtYXRzPW51bGwsdGhpcy5jb2xzPVtdLHRoaXMuZGVtb0xpbWl0cz10aGlzLmFwcFNlcnZpY2UuZGVtb0xpbWl0cyx0aGlzLnJlc3RyaWN0''@;'; put 'put ''aW9ucz17fSx0aGlzLmRhdGFzZXRJbmZvPSExLHRoaXMuZHNtZXRhPVtdLHRoaXMuaG90VGFibGU9e2RhdGE6W10sY29sSGVhZGVyczpbXSxoaWRkZW46ITAsY29sdW1uczpbXSxoZWlnaHQ6IjEwMCUiLG1pblNwYXJlUm93czoxLGxpY2Vuc2VLZXk6dm9pZCAwLHJlYWRPbmx5OiEwLHNldHRp''@;'; put 'put ''bmdzOntjb250ZXh0TWVudTp7aXRlbXM6e2VkaXRfcm93OntuYW1lOiJFZGl0IHJvdyIsaGlkZGVuKCl7Y29uc3QgcHQ9dGhpcy5nZXRTZWxlY3RlZFJhbmdlKCk7aWYoIXB0KXJldHVybiExO2NvbnN0IE90PXB0WzBdO3JldHVybiBPdC5mcm9tLnJvdyE9PU90LnRvLnJvd30sY2FsbGJhY2s6''@;'; put 'put ''KEtlLHB0LE90KT0+e2xldCAkdD1wdFswXTskdC5zdGFydC5yb3c9PT0kdC5lbmQucm93JiZ0aGlzLmVkaXRSZWNvcmQobnVsbCwkdC5zdGFydC5yb3cpfX0scm93X2Fib3ZlOntuYW1lOiJSb3cgYWJvdmUifSxyb3dfYmVsb3c6e25hbWU6IlJvdyBiZWxvdyJ9LHJlbW92ZV9yb3c6e25hbWU6''@;'; put 'put ''Iklnbm9yZSByb3cifSxzcDE6e25hbWU6Ii0tLS0tLS0tLSJ9LHVuZG86e25hbWU6IlVuZG8ifSxyZWRvOntuYW1lOiJSZWRvIn19fX19LHRoaXMuaG90Q2VsbHNQcm9wUm93PW51bGwsdGhpcy5maWx0ZXI9ITEsdGhpcy5zdWJtaXRMb2FkaW5nPSExLHRoaXMudXBsb2FkTG9hZGluZz0hMSx0''@;'; put 'put ''aGlzLnJvd3NDaGFuZ2VkPXtyb3dzVXBkYXRlZDowLHJvd3NEZWxldGVkOjAscm93c0FkZGVkOjB9LHRoaXMubW9kaWZlZFJvd3NJbmRleGVzPVtdLHRoaXMucXVlcnlFcnI9ITEsdGhpcy5zdWNjZXNzRW5hYmxlPSExLHRoaXMubnVsbFZhcmlhYmxlcz0hMSx0aGlzLnBrRmllbGRzPVtdLHRo''@;'; put 'put ''aXMuZmlsZW5hbWU9IiIsdGhpcy5iYWRFZGl0PSExLHRoaXMuc2F2ZUxvYWRpbmc9ITEsdGhpcy5hcHByb3ZlcnM9W10sdGhpcy5lcnJWYWxpZGF0aW9uPSExLHRoaXMucGtOdWxsPSExLHRoaXMubm9Qa051bGw9ITEsdGhpcy50YWJsZURhdGE9W10sdGhpcy5xdWVyeVRleHQ9IiIsdGhpcy5x''@;'; put 'put ''dWVyeVRleHRTYXZlZD0iIix0aGlzLnNob3dBcHByb3ZlcnM9ITEsdGhpcy5wa0R1cHM9ITEsdGhpcy52YWxpZGF0aW9uRG9uZT0wLHRoaXMuZHVwbGljYXRlUGtJbmRleGVzPVtdLHRoaXMuY29sdW1uSGVhZGVyPVtdLHRoaXMuc3BlY0luZm89W10sdGhpcy50b29Mb25nPSExLHRoaXMuZXhj''@;'; put 'put ''ZWVkQ2VsbHM9W10sdGhpcy51cGxvYWRlcj1uZXcgTTV0KHt1cmw6IiJ9KSx0aGlzLnVwbG9hZFVybD0iIix0aGlzLmV4Y2VsRmlsZVJlYWR5PSExLHRoaXMudXBsb2FkUHJldmlldz0hMSx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdGhpcy5leGNlbFVwbG9hZFN0YXRlPW51bGwsdGhpcy5k''@;'; put 'put ''YXRhPVtdLHRoaXMuaGVhZGVyQXJyYXk9W10sdGhpcy5ob3REYXRhU2NoZW1hPXt9LHRoaXMuaGVhZGVyU2hvdz1bXSx0aGlzLmhlYWRlclZpc2libGU9ITEsdGhpcy5oYXNCYXNlRHJvcFpvbmVPdmVyPSExLHRoaXMuaGFzQW5vdGhlckRyb3Bab25lT3Zlcj0hMSx0aGlzLmhlYWRlclBrcz1b''@;'; put 'put ''XSx0aGlzLmNvbHVtbkxldmVsU2VjdXJpdHlGbGFnPSExLHRoaXMuZGF0ZVRpbWVIZWFkZXJzPVtdLHRoaXMudGltZUhlYWRlcnM9W10sdGhpcy5kYXRlSGVhZGVycz1bXSx0aGlzLnhsUnVsZXM9W10sdGhpcy5lbmNvZGluZz0iVVRGLTgiLHRoaXMuaGVhZGVyQ29sdW1ucz1bXSx0aGlzLmNl''@;'; put 'put ''bGxWYWxpZGF0aW9uPVtdLHRoaXMuZmlsZVBhc3N3b3JkU3ViamVjdD1uZXcgJGUsdGhpcy5maWxlVW5sb2NrRXJyb3I9ITEsdGhpcy5maWxlUGFzc3dvcmRNb2RhbD0hMSx0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSx0aGlzLmRpc2NhcmRTb3VyY2VGaWxlPSExLHRoaXMubWFudWFsRmlsZUVk''@;'; put 'put ''aXRNb2RhbD0hMSx0aGlzLnJlY29yZEFjdGlvbj1udWxsLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncz1bXSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzPVtdLHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSx0aGlzLmdlbmVyYXRlRWRpdFJlY29yZFVybExvYWRpbmc9''@;'; put 'put ''ITEsdGhpcy5nZW5lcmF0ZWRSZWNvcmRVcmw9bnVsbCx0aGlzLmFkZFJlY29yZFVybD1udWxsLHRoaXMucmVjb3JkTmV3T3JQa01vZGlmaWVkPSExLHRoaXMuYWRkUmVjb3JkTG9hZGluZz0hMSx0aGlzLnNpbmdsZVJvd1NlbGVjdGVkPSExLHRoaXMuYWRkaW5nTmV3Um93PSExLHRoaXMuZ2V0''@;'; put 'put ''ZGF0YUVycm9yPSExLHRoaXMuemVyb0ZpbHRlclJvd3M9ITEsdGhpcy50YWJsZUZpbGVEcmFnT3Zlcj0hMSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlPVtdLHRoaXMudmFsaWRhdGlvblRhYmxlTGltaXQ9MjAsdGhpcy5leHRlbmRlZENlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZX0lO''@;'; put 'put ''REVYOjAsRVhUUkFfQ09MX05BTUU6MSxESVNQTEFZX1ZBTFVFOjIsRElTUExBWV9UWVBFOjMsUkFXX1ZBTFVFX05VTTo0LFJBV19WQUxVRV9DSEFSOjUsRk9SQ0VfRkxBRzo2fSx0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzPXtESVNQTEFZX0lOREVYOjAsRElTUExBWV9WQUxVRToxLFJBV19W''@;'; put 'put ''QUxVRToyfSx0aGlzLmRpc2FibGVkQmFzaWNEeW5hbWljQ2VsbFZhbGlkYXRpb25NYXA9W10sdGhpcy50aW1lc0NsaWNrZWQ9MCx0aGlzLmhvdFJlZ2lzdGVyZXI9bmV3IFNPLHRoaXMucGFyc2VSZXN0cmljdGlvbnMoKSx0aGlzLnNldFJlc3RyaWN0aW9ucygpfXBhcnNlUmVzdHJpY3Rpb25z''@;'; put 'put ''KCl7dGhpcy5hcHBTZXJ2aWNlLnJlc3RyaWN0RWRpdFJlY29yZCYmKHRoaXMucmVzdHJpY3Rpb25zLnJlbW92ZUFkZFJlY29yZEJ1dHRvbj0hMCx0aGlzLnJlc3RyaWN0aW9ucy5yZW1vdmVFZGl0UmVjb3JkQnV0dG9uPSEwKSx0aGlzLmRlbW9MaW1pdHMuZGlzYWJsZWRFZGl0UmVjb3JkJiYo''@;'; put 'put ''dGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSZWNvcmQ9ITApfXNldFJlc3RyaWN0aW9ucyhoKXt2YXIgdix5LEMsSSxaLHVlLF9lLEJlO2gmJih0aGlzLnJlc3RyaWN0aW9ucz1PYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sdGhpcy5yZXN0cmljdGlvbnMpLGgpKSx0aGlzLnJl''@;'; put 'put ''c3RyaWN0aW9ucy5yZW1vdmVFZGl0UmVjb3JkQnV0dG9uJiZkZWxldGUobnVsbD09PSh5PW51bGw9PT0odj10aGlzLmhvdFRhYmxlKXx8dm9pZCAwPT09dj92b2lkIDA6di5zZXR0aW5ncyl8fHZvaWQgMD09PXk/dm9pZCAwOnkuY29udGV4dE1lbnUpLml0ZW1zLmVkaXRfcm93LHRoaXMucmVz''@;'; put 'put ''dHJpY3Rpb25zLnJlc3RyaWN0QWRkUm93JiYoZGVsZXRlKG51bGw9PT0oST1udWxsPT09KEM9dGhpcy5ob3RUYWJsZSl8fHZvaWQgMD09PUM/dm9pZCAwOkMuc2V0dGluZ3MpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLmNvbnRleHRNZW51KS5pdGVtcy5yb3dfYWJvdmUsZGVsZXRlKG51bGw9PT0o''@;'; put 'put ''dWU9bnVsbD09PShaPXRoaXMuaG90VGFibGUpfHx2b2lkIDA9PT1aP3ZvaWQgMDpaLnNldHRpbmdzKXx8dm9pZCAwPT09dWU/dm9pZCAwOnVlLmNvbnRleHRNZW51KS5pdGVtcy5yb3dfYmVsb3csZGVsZXRlKG51bGw9PT0oQmU9bnVsbD09PShfZT10aGlzLmhvdFRhYmxlKXx8dm9pZCAwPT09''@;'; put 'put ''X2U/dm9pZCAwOl9lLnNldHRpbmdzKXx8dm9pZCAwPT09QmU/dm9pZCAwOkJlLmNvbnRleHRNZW51KS5pdGVtcy5yZW1vdmVfcm93KX1jaGVja1Jvd0xpbWl0KCl7dmFyIGg7dGhpcy5kZW1vTGltaXRzLnJvd3NfYWxsb3dlZCYmKHRoaXMucmVzdHJpY3Rpb25zLnJlc3RyaWN0QWRkUm93PShu''@;'; put 'put ''dWxsPT09KGg9dGhpcy5kYXRhU291cmNlKXx8dm9pZCAwPT09aD92b2lkIDA6aC5sZW5ndGgpPj10aGlzLmRlbW9MaW1pdHMucm93c19hbGxvd2VkKX1yZXNldEZpbHRlcigpe3RoaXMucXVlcnlGaWx0ZXJDb21wTGlzdC5maXJzdCYmdGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0LmZpcnN0LnJl''@;'; put 'put ''c2V0RmlsdGVyKCl9b25TaG93VXBsb2FkTW9kYWwoKXt0aGlzLmRlbW9MaW1pdHMuZGlzYWJsZWRGaWxlVXBsb2FkP3RoaXMuZXZlbnRTZXJ2aWNlLnNob3dEZW1vTGltaXRNb2RhbCgpOnRoaXMuY29sdW1uTGV2ZWxTZWN1cml0eUZsYWc/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0luZm9Nb2Rh''@;'; put 'put ''bCgiSW5mb3JtYXRpb24iLCJVcGxvYWQgZmVhdHVyZSBpcyBkaXNhYmxlZCB3aGlsZSBDb2x1bW4gTGV2ZWwgU2VjdXJpdHkgcnVsZXMgYXJlIGFjdGl2ZSIpOnRoaXMudXBsb2FkUHJldmlld3x8KHRoaXMuc2hvd1VwbG9hZE1vZGFsPSEwKX1maWxlT3ZlckJhc2UoaCl7dGhpcy5oYXNCYXNl''@;'; put 'put ''RHJvcFpvbmVPdmVyPWh9dXBkYXRlX3NoZWV0X3JhbmdlKGgpe3ZhciB2PXtzOntyOjEvMCxjOjEvMH0sZTp7cjowLGM6MH19O09iamVjdC5rZXlzKGgpLmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4iISIhPXkuY2hhckF0KDApfSkubWFwKFNNLnV0aWxzLmRlY29kZV9jZWxsKS5mb3JFYWNo''@;'; put 'put ''KGZ1bmN0aW9uKHkpe3Yucy5jPU1hdGgubWluKHYucy5jLHkuYyksdi5zLnI9TWF0aC5taW4odi5zLnIseS5yKSx2LmUuYz1NYXRoLm1heCh2LmUuYyx5LmMpLHYuZS5yPU1hdGgubWF4KHYuZS5yLHkucil9KSxoWyIhcmVmIl09U00udXRpbHMuZW5jb2RlX3JhbmdlKHYpfWdldFJhbmdlQW5k''@;'; put 'put ''U2hlZXQoaCl7bGV0IHY9MCx5PTAsQz0tMSxJPS0xLFo9IiIsdWU9ITEsX2U9W10sTmU9WyJfX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18iLC4uLnRoaXMuaGVhZGVyQXJyYXldLm1hcChPdD0+T3QudG9Mb3dlckNhc2UoKSksS2U9TmUucmVkdWNlKChPdCwkdCk9PihPdFskdF09LTEs''@;'; put 'put ''T3QpLHt9KTtyZXR1cm4gaC5TaGVldE5hbWVzLmZvckVhY2goT3Q9PntpZih1ZSlyZXR1cm47X2U9W10sWj1PdDtjb25zdCAkdD1oLlNoZWV0c1taXTtpZih0aGlzLmRhdGE9U00udXRpbHMuc2hlZXRfdG9fanNvbigkdCx7aGVhZGVyOjEsYmxhbmtyb3dzOiExLGRlZnZhbDoiIn0pLHRoaXMu''@;'; put 'put ''ZGF0YS5sZW5ndGg8PTEpcmV0dXJuO2xldCBmbj1bXTt0aGlzLmhlYWRlckFycmF5LmZvckVhY2goKCk9PmZuLnB1c2goIiIpKSx0aGlzLmRhdGEucHVzaChmbik7bGV0IExuPSExO2lmKHRoaXMuZGF0YS5mb3JFYWNoKChpcixtcik9PntpZighdWUpaWYoTG4pe2xldCBTcj0hMCx3cj0hMTtO''@;'; put 'put ''ZS5mb3JFYWNoKFFyPT57Y29uc3QgeWk9S2VbUXJdOyIiIT09aXJbeWldJiZ2b2lkIDAhPT1pclt5aV0/U3I9ITE6LTEhPT10aGlzLmhlYWRlclBrcy5pbmRleE9mKFFyLnRvVXBwZXJDYXNlKCkpJiYod3I9ITApfSksU3J8fHdyPyhJPW1yLHVlPSEwKTotMT09PUMmJihDPW1yKX1lbHNle2Nv''@;'; put 'put ''bnN0IFNyPWlyLm1hcChRcj0+UXIudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpKTtpZighU3IuaW5jbHVkZXMoIl9fX19fZGVsZXRlX190aGlzX19yZWNvcmRfX19fXyIpKXtjb25zdCBRcj1OZS5pbmRleE9mKCJfX19fX2RlbGV0ZV9fdGhpc19fcmVjb3JkX19fX18iKTtRcj4tMSYmTmUuc3Bs''@;'; put 'put ''aWNlKFFyLDEpfUxuPSEwLE5lLmZvckVhY2goUXI9PnstMT09PVNyLmluZGV4T2YoUXIpJiYoTG49ITEpfSk7bGV0IHdyPVtdO3dyPXRoaXMuZmluZFZhbGlkSGVhZGVycyhTcixOZSxtcixaKSwhMT09PXdyWzBdPyhMbj0hMSx3clsxXS5sZW5ndGg+MCYmd3JbMV0uZm9yRWFjaChRcj0+e19l''@;'; put 'put ''LnB1c2goUXIpfSkpOktlPXdyWzFdfX0pLHVlJiYodGhpcy51cGRhdGVfc2hlZXRfcmFuZ2UoJHQpLCR0WyIhcmVmIl0pKXtjb25zdCBtcj1TTS51dGlscy5kZWNvZGVfcmFuZ2UoJHRbIiFyZWYiXXx8IiIpO3Y9bXIucy5yLHk9bXIucy5jfX0pLC0xPT09QyYmKHVlPSExKSx7Zm91bmREYXRh''@;'; put 'put ''OnVlLHNoZWV0TmFtZTpaLHN0YXJ0Um93OkMsZW5kUm93OkksY3N2QXJyYXlIZWFkZXJzTWFwOktlLG1pc3NpbmdIZWFkZXJzOl9lLHJhbmdlU3RhcnRSb3c6dixyYW5nZVN0YXJ0Q29sOnl9fXByb21wdEV4Y2VsUGFzc3dvcmQoKXtyZXR1cm4gbmV3IFByb21pc2UoKGgsdik9Pnt0aGlzLmZp''@;'; put 'put ''bGVQYXNzd29yZE1vZGFsPSEwLHNldFRpbWVvdXQoKCk9Pntjb25zdCB5PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNmaWxlUGFzc3dvcmRJbnB1dCIpO3kmJih5LmZvY3VzKCkseS52YWx1ZT0iIil9LDEwMCksdGhpcy5maWxlUGFzc3dvcmRTdWJqZWN0LnN1YnNjcmliZSh5PT57dGhpcy5m''@;'; put 'put ''aWxlVW5sb2NrRXJyb3I9ITEsaCh5fHx2b2lkIDApfSl9KX1nZXRGaWxlRGVzYyhoLHY9ITEpe2xldCB5O3RoaXMuZXhjZWxVcGxvYWRTdGF0ZT0iTG9hZGluZyIsdGhpcy5leGNlbEZpbGVQYXJzaW5nPSEwLHk9dj9oWzBdOmgudGFyZ2V0LmZpbGVzWzBdLHRoaXMuZXhjZWxGaWxlUmVhZHk9''@;'; put 'put ''ITEsdGhpcy5maWxlbmFtZT0iIjtsZXQgQz15Lm5hbWU7dGhpcy5maWxlbmFtZT1DLHRoaXMuYXBwZW5kVXBsb2FkU3RhdGUoYExvYWRpbmcgJHtDfSBpbnRvIHRoZSBicm93c2VyYCk7bGV0IFo9Qy5zbGljZShDLmxhc3RJbmRleE9mKCIuIikrMSxDLmxhc3RJbmRleE9mKCIuIikrNCk7aWYo''@;'; put 'put ''InhscyI9PT1aLnRvTG93ZXJDYXNlKCkpe2xldCB1ZT1uZXcgRmlsZVJlYWRlcjt1ZS5vbmxvYWQ9QmU9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtjb25zdCBOZT10aGlzLnRvQnN0cihCZS50YXJnZXQucmVzdWx0KTtsZXQgS2UscHQ9ITE7Y29uc3QgT3Q9e3R5cGU6ImJp''@;'; put 'put ''bmFyeSIsY2VsbERhdGVzOiExLGNlbGxGb3JtdWxhOiEwLGNlbGxTdHlsZXM6ITAsY2VsbE5GOiExLGNlbGxUZXh0OiExfTt0cnl7S2U9U00ucmVhZChOZSxPYmplY3QuYXNzaWduKHt9LE90KSl9Y2F0Y2goUXIpe2lmKFFyLm1lc3NhZ2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygicGFzc3dv''@;'; put 'put ''cmQiKSlmb3IocHQ9ITA7cHQ7KXtjb25zdCB5aT15aWVsZCB0aGlzLnByb21wdEV4Y2VsUGFzc3dvcmQoKTtpZih5aSl0cnl7S2U9U00ucmVhZChOZSxPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sT3QpLHtwYXNzd29yZDp5aX0pKSxwdD0hMSx0aGlzLmZpbGVVbmxvY2tFcnJvcj0h''@;'; put 'put ''MX1jYXRjaChLaSl7dGhpcy5maWxlVW5sb2NrRXJyb3I9ITAsS2kubWVzc2FnZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCJwYXNzd29yZCIpfHwocHQ9ITEpfWVsc2UgcHQ9ITF9ZWxzZSB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLFFyLHZvaWQgMCwiRXJyb3IgcmVh''@;'; put 'put ''ZGluZyBmaWxlIil9aWYoIUtlKXJldHVybiB0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdm9pZCh0aGlzLnNob3dVcGxvYWRNb2RhbD0hMSk7bGV0ICR0PSExLGZuPVtdO2NvbnN0IExuPVsiX19fX19ERUxFVEVfX1RISVNfX1JFQ09SRF9fX19fIiwuLi50aGlzLmhlYWRlckFycmF5XTtsZXQg''@;'; put 'put ''aXI9TG4ubWFwKFFyPT5Rci50b0xvd2VyQ2FzZSgpKSxtcj1pci5yZWR1Y2UoKFFyLHlpKT0+KFFyW3lpXT0tMSxRcikse30pLFNyPVtdO2NvbnN0IHdyPXRoaXMuZ2V0UmFuZ2VBbmRTaGVldChLZSk7aWYoZm49d3IubWlzc2luZ0hlYWRlcnMsd3IuZm91bmREYXRhKXskdD0hMCxtcj13ci5j''@;'; put 'put ''c3ZBcnJheUhlYWRlcnNNYXA7Y29uc3QgUXI9S2UuU2hlZXRzW3dyLnNoZWV0TmFtZV07dGhpcy5hcHBlbmRVcGxvYWRTdGF0ZShgVGFibGUgZm91bmQgb24gc2hlZXQgJHt3ci5zaGVldE5hbWV9IG9uIHJvdyAke3dyLnN0YXJ0Um93fWApO2xldCB5aT0iIixLaT0iIjtmb3IobGV0IFNvPXdy''@;'; put 'put ''LnN0YXJ0Um93O1NvPHdyLmVuZFJvdzsrK1NvKXtjb25zdCBQbz1bXTtpci5mb3JFYWNoKEphPT57Y29uc3QgYWw9U00udXRpbHMuZW5jb2RlX2NlbGwoe3I6d3IucmFuZ2VTdGFydFJvdytTbyxjOndyLnJhbmdlU3RhcnRDb2wrbXJbSmFdfSk7bGV0IFJzOyIiPT09eWkmJih5aT1hbCksS2k9''@;'; put 'put ''YWwsUnM9UXJbYWxdP1FyW2FsXTp7djoiIn0sUG8ucHVzaChScyl9KSxQby5maW5kKEphPT4iIiE9PUphLnYpJiZTci5wdXNoKFBvKX10aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJUYWJsZSBGb3VuZCIsYFNoZWV0OiAke3dyLnNoZWV0TmFtZX1cblJhbmdlOiAke3lpfToke0tp''@;'; put 'put ''fWApfWVsc2UgZm49d3IubWlzc2luZ0hlYWRlcnM7aWYoZm4ubGVuZ3RoPjApe2ZuLnNvcnQoZnVuY3Rpb24oS2ksU28pe3JldHVybiBLaVsxXT09PVNvWzFdPzA6S2lbMV0+U29bMV0/LTE6MX0pO2xldCBRcj1mbi5tYXAoeWk9PnlpWzBdKS5zbGljZSgwLDUpLmpvaW4oIlxuIik7cmV0dXJu''@;'; put 'put ''IHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsUXIpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmZpbGVuYW1lPSIifSksdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQgdGhpcy51cGxvYWRlci5xdWV1ZS5wb3AoKX1pZigwPT09U3IubGVuZ3RofHwwPT09U3JbMF0ubGVu''@;'; put 'put ''Z3RoKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCJObyByZWxldmFudCBkYXRhIGZvdW5kIGluIEZpbGUgISIpLHNldFRpbWVvdXQoKCk9Pnt0aGlzLmZpbGVuYW1lPSIifSksdGhpcy5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQgdGhpcy51cGxvYWRlci5x''@;'; put 'put ''dWV1ZS5wb3AoKTtpZigodGhpcy5kYXRlVGltZUhlYWRlcnMubGVuZ3RoPjB8fHRoaXMuZGF0ZUhlYWRlcnMubGVuZ3RoPjB8fHRoaXMudGltZUhlYWRlcnMubGVuZ3RoPjApJiYoU3I9dGhpcy51cGRhdGVEYXRlVGltZUNvbHMoTG4sU3IpKSx0aGlzLnhsUnVsZXMubGVuZ3RoPjAmJihTcj10''@;'; put 'put ''aGlzLnVwZGF0ZVhMUnVsZUNvbHMoTG4sU3IpKSwhJHQpe2lmKDA9PT1mbi5sZW5ndGgpdGhpcy5ldmVudFNlcnZpY2Uuc2hvd0Fib3J0TW9kYWwobnVsbCwiTm8gcmVsZXZhbnQgZGF0YSBmb3VuZCBpbiBGaWxlICEiKSxzZXRUaW1lb3V0KCgpPT57dGhpcy5maWxlbmFtZT0iIn0pO2Vsc2V7''@;'; put 'put ''Zm4uc29ydChmdW5jdGlvbihLaSxTbyl7cmV0dXJuIEtpWzFdPT09U29bMV0/MDpLaVsxXT5Tb1sxXT8tMToxfSk7bGV0IFFyPWZuLm1hcCh5aT0+eWlbMF0pLnNsaWNlKDAsNSkuam9pbigiXG4iKTt0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLFFyKX1yZXR1cm4gdGhp''@;'; put 'put ''cy5leGNlbEZpbGVQYXJzaW5nPSExLHZvaWQgdGhpcy51cGxvYWRlci5xdWV1ZS5wb3AoKX17dGhpcy5oZWFkZXJTaG93PUxuLFNyPVNyLm1hcCh5aT0+eWkubWFwKEtpPT4ibiI9PT1LaS50P0tpLnY6S2kudykpLFNyPVNyLm1hcCh5aT0+eWkubWFwKChLaSxTbyk9Pnt2YXIgUG87IUtpJiYw''@;'; put 'put ''IT09S2kmJihLaT0iIiksaXNOYU4oS2kpJiYoS2k9S2kucmVwbGFjZSgvIi9nLCciIicpKS5zZWFyY2goLywvZyk+LTEmJihLaT0nIicrS2krJyInKTtjb25zdCBKYT1udWxsPT09KFBvPXRoaXMuZGNWYWxpZGF0b3IpfHx2b2lkIDA9PT1Qbz92b2lkIDA6UG8uZ2V0UnVsZSh0aGlzLmhlYWRl''@;'; put 'put ''clNob3dbU29dKTtyZXR1cm4ibnVtZXJpYyI9PT0obnVsbD09SmE/dm9pZCAwOkphLnR5cGUpJiYoMCxidy5pc1NwZWNpYWxNaXNzaW5nKShLaSkmJiFLaS5pbmNsdWRlcygiLiIpJiYoS2k9Ii4iK0tpKSxLaX0pKSx0aGlzLmRhdGE9U3I7bGV0IFFyPUxuLmpvaW4oIiwiKSsiXG4iO2lmKFFy''@;'; put 'put ''Kz1Tci5tYXAoeWk9PnlpLmpvaW4oIiwiKSkuam9pbigiXG4iKSwiV0xBVElOMSI9PT10aGlzLmVuY29kaW5nKXtsZXQgeWk9TExlLmRlY29kZShPTGUuZnJvbShRciksIkNQLTEyNTIiKSxLaT1uZXcgQmxvYihbeWldLHt0eXBlOiJhcHBsaWNhdGlvbi9jc3YifSksU289dGhpcy5ibG9iVG9G''@;'; put 'put ''aWxlKEtpLHRoaXMuZmlsZW5hbWUrIi5jc3YiKTt0aGlzLnVwbG9hZGVyLmFkZFRvUXVldWUoW1NvXSl9ZWxzZXtsZXQgeWk9bmV3IEJsb2IoW1FyXSx7dHlwZToiYXBwbGljYXRpb24vY3N2In0pLEtpPXRoaXMuYmxvYlRvRmlsZSh5aSx0aGlzLmZpbGVuYW1lKyIuY3N2Iik7dGhpcy51cGxv''@;'; put 'put ''YWRlci5hZGRUb1F1ZXVlKFtLaV0pfXRoaXMuZXhjZWxGaWxlUmVhZHk9ITB9aWYoMD09PXRoaXMuZGF0YS5sZW5ndGgpcmV0dXJuIHRoaXMuc2hvd1VwbG9hZE1vZGFsPSExLHRoaXMudXBsb2FkUHJldmlldz0hMSx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdm9pZCB0aGlzLmV2ZW50U2Vy''@;'; put 'put ''dmljZS5zaG93QWJvcnRNb2RhbChudWxsLCJUYWJsZSBpbiB0aGUgZmlsZSBpcyBlbXB0eS4gRGF0YSBmb3VuZCBvbiBzaGVldDogIik7dGhpcy5leGNlbEZpbGVSZWFkeT0hMCx0aGlzLmdldFBlbmRpbmdFeGNlbFByZXZpZXcoKX0pLHVlLnJlYWRBc0FycmF5QnVmZmVyKHkpfWVsc2UgaWYo''@;'; put 'put ''ImNzdiI9PT1aLnRvTG93ZXJDYXNlKCkpaWYoIldMQVRJTjEiPT09dGhpcy5lbmNvZGluZyl7bGV0IHVlPW5ldyBGaWxlUmVhZGVyO3VlLm9ubG9hZD1CZT0+e2xldCBOZT1MTGUuZGVjb2RlKE9MZS5mcm9tKEJlLnRhcmdldC5yZXN1bHQpLCJDUC0xMjUyIiksS2U9bmV3IEJsb2IoW05lXSx7''@;'; put 'put ''dHlwZTpafSkscHQ9dGhpcy5ibG9iVG9GaWxlKEtlLHRoaXMuZmlsZW5hbWUpO3RoaXMudXBsb2FkZXIucXVldWUucG9wKCksdGhpcy51cGxvYWRlci5hZGRUb1F1ZXVlKFtwdF0pLHRoaXMuZXhjZWxGaWxlUmVhZHk9ITB9LHRoaXMuZXhjZWxGaWxlUmVhZHk9ITAsdGhpcy5leGNlbEZpbGVQ''@;'; put 'put ''YXJzaW5nPSExLHVlLnJlYWRBc0FycmF5QnVmZmVyKHkpLHRoaXMuZ2V0RmlsZSgpfWVsc2UgdGhpcy5leGNlbEZpbGVSZWFkeT0hMCx0aGlzLmV4Y2VsRmlsZVBhcnNpbmc9ITEsdGhpcy5nZXRGaWxlKCk7ZWxzZSB0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbChudWxsLCdJbnZh''@;'; put 'put ''bGlkIGZpbGUgdHlwZSAiPGI+Jyt0aGlzLmZpbGVuYW1lKyc8L2I+Ii4gUGxlYXNlIHVwbG9hZCBjc3Ygb3IgZXhjZWwgZmlsZS4nKSx0aGlzLmV4Y2VsRmlsZVJlYWR5PSEwLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx0aGlzLnVwbG9hZGVyLnF1ZXVlLnBvcCgpfWdldEZpbGUoKXtpZih0''@;'; put 'put ''aGlzLmNoZWNrSW52YWxpZCgpKXJldHVybiB2b2lkIHRoaXMuZXZlbnRTZXJ2aWNlLnNob3dBYm9ydE1vZGFsKG51bGwsIkludmFsaWQgdmFsdWVzIGFyZSBwcmVzZW50LiIpO3RoaXMudXBsb2FkTG9hZGluZz0hMDtsZXQgaD1bXTtmb3IoY29uc3QgdiBvZiB0aGlzLnVwbG9hZGVyLnF1ZXVl''@;'; put 'put ''KWgucHVzaCh7ZmlsZTp2Ll9maWxlLGZpbGVOYW1lOnYuX2ZpbGUubmFtZX0pO3RoaXMuc2FzU2VydmljZS51cGxvYWRGaWxlKHRoaXMudXBsb2FkVXJsLGgse3RhYmxlOnRoaXMubGliZHN9KS50aGVuKHY9PntpZih2b2lkIDA9PT12LnNhc2pzQWJvcnQpe2lmKHZvaWQgMD09PXYuc2FzcGFy''@;'; put 'put ''YW1zKXJldHVybjt7dGhpcy51cGxvYWRMb2FkaW5nPSExO2xldCB5PXYuc2FzcGFyYW1zWzBdO3RoaXMuc3VjY2Vzc0VuYWJsZT0hMCx0aGlzLnRhYmxlSWQ9eS5EU0lELHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9zdGFnZS8iK3RoaXMudGFibGVJZCl9fWVsc2V7Y29uc3QgeT12LEM9''@;'; put 'put ''eS5zYXNqc0Fib3J0WzBdLk1TRyxJPXkuc2FzanNBYm9ydFswXS5NQUM7dGhpcy51cGxvYWRMb2FkaW5nPSExLHRoaXMuZmlsZW5hbWU9IiIsdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExpc3QuZmlyc3QubmF0aXZlRWxlbWVu''@;'; put 'put ''dC52YWx1ZT0iIiksdGhpcy51cGxvYWRlci5xdWV1ZT1bXSx0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiIixDLHtTWVNXQVJOSU5HVEVYVDp5LlNZU1dBUk5JTkdURVhULFNZU0VSUk9SVEVYVDp5LlNZU0VSUk9SVEVYVCxNQUM6SX0pfX0sdj0+e3RoaXMudXBsb2FkTG9hZGlu''@;'; put 'put ''Zz0hMSx0aGlzLmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0LmZpcnN0JiYodGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdC5uYXRpdmVFbGVtZW50LnZhbHVlPSIiKSx0aGlzLnVwbG9hZGVyLnF1ZXVlPVtdLHRoaXMuZXZlbnRTZXJ2aWNlLmNhdGNoUmVzcG9uc2VFcnJvcigiZmls''@;'; put 'put ''ZSB1cGxvYWQiLHYpfSl9Z2V0UGVuZGluZ0V4Y2VsUHJldmlldygpe3RoaXMucXVlcnlUZXh0U2F2ZWQ9dGhpcy5xdWVyeVRleHQsdGhpcy5xdWVyeVRleHQ9IiIsdGhpcy5leGNlbFVwbG9hZFN0YXRlPSJQYXJzaW5nIix0aGlzLnRvZ2dsZUhvdFBsdWdpbigiY29udGV4dE1lbnUiLCExKTts''@;'; put 'put ''ZXQgaD1bXTt0aGlzLmRhdGEubWFwKHk9PntsZXQgQz17fTt0aGlzLmhlYWRlclNob3cubWFwKChJLFopPT57Q1tJXT15W1pdfSksQy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX198fChDLl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXz0iTm8iKSxoLnB1c2goQyl9KSx0aGlz''@;'; put 'put ''LmRhdGFTb3VyY2VVbmNoYW5nZWQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpLHRoaXMuZGF0YVNvdXJjZT1oLHRoaXMuaG90VGFibGUuZGF0YT1oO2NvbnN0IHY9dGhpcy5ob3RJbnN0YW5jZTt0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9IlZhbGlkYXRpbmct''@;'; put 'put ''SE9UIix2LnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLHYucmVuZGVyKCksdGhpcy5hcHBlbmRVcGxvYWRTdGF0ZSgiVmFsaWRhdGluZyByb3dzIiksdi52YWxpZGF0ZUNlbGxzKCgpPT57dGhpcy5zaG93VXBsb2FkTW9kYWw9ITEsdGhpcy51cGxvYWRQcmV2aWV3''@;'; put 'put ''PSEwLHRoaXMuZXhjZWxGaWxlUGFyc2luZz0hMSx0aGlzLmV4Y2VsVXBsb2FkU3RhdGU9bnVsbH0pfWRpc2NhcmRQZW5kaW5nRXhjZWwoaCl7aCYmdGhpcy5jYW5jZWxFZGl0KCksdGhpcy5maWxlVXBsb2FkSW5wdXRDb21wTGlzdC5maXJzdCYmKHRoaXMuZmlsZVVwbG9hZElucHV0Q29tcExp''@;'; put 'put ''c3QuZmlyc3QubmF0aXZlRWxlbWVudC52YWx1ZT0iIiksdGhpcy51cGxvYWRQcmV2aWV3PSExLHRoaXMuZXhjZWxGaWxlUmVhZHk9ITEsdGhpcy51cGxvYWRlci5xdWV1ZT1bXSxpc05hTihwYXJzZUludCh0aGlzLnJvdXRlci51cmwuc3BsaXQoIi8iKS5wb3AoKXx8IiIpKXx8dGhpcy5xdWVy''@;'; put 'put ''eVRleHRTYXZlZC5sZW5ndGg+MCYmKHRoaXMucXVlcnlUZXh0PXRoaXMucXVlcnlUZXh0U2F2ZWQsdGhpcy5xdWVyeVRleHRTYXZlZD0iIil9cHJldmlld1RhYmxlRWRpdENvbmZpcm0oKXt0aGlzLmRpc2NhcmRQZW5kaW5nRXhjZWwoKSx0aGlzLmNvbnZlcnRUb0NvcnJlY3RUeXBlcyh0aGlz''@;'; put 'put ''LmRhdGFTb3VyY2UpLHRoaXMuZWRpdFRhYmxlKCEwKX1hcHBlbmRVcGxvYWRTdGF0ZShoLHY9ITEpe3RoaXMuY2RmLmRldGVjdENoYW5nZXMoKSx0aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0LmZpcnN0JiYodj90aGlzLnVwbG9hZFN0YXRlckNvbXBMaXN0LmZpcnN0LnJlcGxhY2VMYXN0U3Rh''@;'; put 'put ''dGUoaCk6dGhpcy51cGxvYWRTdGF0ZXJDb21wTGlzdC5maXJzdC5hcHBlbmRTdGF0ZShoKSl9ZmluZFZhbGlkSGVhZGVycyhoLHYseSxDKXtsZXQgST0hMSxaPVtdLHVlPTA7Zm9yKDt1ZTxoLmxlbmd0aDspe2lmKCFJJiYtMSE9PXYuaW5kZXhPZihoW3VlXSkpe2xldCBfZSxCZT0wLE5lPTAs''@;'; put 'put ''S2U9MCxwdD1bXSxPdD0hMTtmb3IobGV0IExuPXVlO0xuPGgubGVuZ3RoO0xuKyspe2lmKCIiPT09aFtMbl18fC0xIT09cHQuaW5kZXhPZihoW0xuXSkmJnRoaXMuaXNDb2xIZWFkZXIoaFtMbl0pKXsiIj09PWhbTG5dJiYoT3Q9ITApLF9lPUxuO2JyZWFrfXB0LnB1c2goaFtMbl0pfWxldCAk''@;'; put 'put ''dD1bXTt2b2lkIDAhPT1fZT8oJHQ9aC5zbGljZSh1ZSxfZSksS2U9dWUsTmU9X2UsT3Q/KEJlPXVlLHVlPV9lKTooQmU9dWUsdWU9X2UtMSkpOigkdD1oLnNsaWNlKHVlKSxCZT11ZSxLZT11ZSxOZT1oLmxlbmd0aCx1ZT1oLmxlbmd0aCk7bGV0IGZuPSEwO2lmKHYuZm9yRWFjaChMbj0+ey0x''@;'; put 'put ''PT09JHQuaW5kZXhPZihMbikmJihmbj0hMSl9KSxmbil7ST0hMDtsZXQgaXI9di5yZWR1Y2UoZnVuY3Rpb24oU3Isd3Ipe3JldHVybiBTclt3cl09LTEsU3J9LHt9KSxtcj1oLnNsaWNlKEJlLE5lKTtyZXR1cm4gdi5mb3JFYWNoKFNyPT57aXJbU3JdPW1yLmluZGV4T2YoU3IpK0JlfSksWyEw''@;'; put 'put ''LGlyXX17bGV0IExuPWo1dCgkdCx2KTtaLnB1c2goWyI8Yj5UQUIoIitDKyIpPC9iPiAtICIrTG5bMV0uam9pbigiLCIpKyIgKCBtaXNzaW5nICIrTG5bMF0uam9pbigiLCIpKyIgKSIsTG5bMV0ubGVuZ3RoXSl9fXVlKyt9cmV0dXJuWyExLFpdfWlzQ29sUGsoaCl7cmV0dXJuIHRoaXMuaGVh''@;'; put 'put ''ZGVyUGtzLmluZGV4T2YoaCk+LTF9aXNSZWFkb25seUNvbChoKXt2YXIgdjtjb25zdCB5PW51bGw9PT0odj10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09dj92b2lkIDA6di5nZXRSdWxlKGgpO3JldHVybiBudWxsPT15P3ZvaWQgMDp5LnJlYWRPbmx5fWlzQ29sSGVhZGVyKGgpe3JldHVy''@;'; put 'put ''biB0aGlzLmhlYWRlckFycmF5LmluZGV4T2YoaC50b1VwcGVyQ2FzZSgpKT4tMX1yZW1vdmVRdWVyeSgpe3RoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlbW92ZUNsYXVzZSgpfXVwZGF0ZURhdGVUaW1lQ29scyhoLHYpe2lmKHRoaXMuZGF0ZUhlYWRlcnMubGVuZ3RoPjApe2xldCB5PVtdO3RoaXMu''@;'; put 'put ''ZGF0ZUhlYWRlcnMuZm9yRWFjaChDPT57LTEhPT1oLmluZGV4T2YoQykmJnkucHVzaChoLmluZGV4T2YoQykpfSksdi5mb3JFYWNoKEM9Pnt5LmZvckVhY2goST0+e2NvbnN0IFo9Q1tJXTtpZihJbWUoWi52KSl7Y29uc3QgdWU9eG1lKE51bWJlcihaLnYpKTtaLnY9dWUuZ2V0RnVsbFllYXIo''@;'; put 'put ''KSsiLSIrKCIwIisodWUuZ2V0TW9udGgoKSsxKSkuc2xpY2UoLTIpKyItIisoIjAiK3VlLmdldERhdGUoKSkuc2xpY2UoLTIpfWVsc2UgaWYoWiYmWi52JiYtMT09PVoudi50b1N0cmluZygpLmluZGV4T2YoIjoiKSl7Y29uc3QgdWU9bmV3IERhdGUoWi52KTsiSW52YWxpZCBEYXRlIiE9PXVl''@;'; put 'put ''LnRvVVRDU3RyaW5nKCkmJihaLnY9RW1lKHVlKSl9Q1tJXT1afSl9KX1pZih0aGlzLnRpbWVIZWFkZXJzLmxlbmd0aD4wKXtsZXQgeT1bXTt0aGlzLnRpbWVIZWFkZXJzLmZvckVhY2goQz0+ey0xIT09aC5pbmRleE9mKEMpJiZ5LnB1c2goaC5pbmRleE9mKEMpKX0pLHYuZm9yRWFjaChDPT57''@;'; put 'put ''eS5mb3JFYWNoKEk9Pntjb25zdCBaPUNbSV07aWYoSW1lKFoudil8fGtMZShaLnYpfHxaLnYuaW5jbHVkZXMoIkUtIikpe2NvbnN0IHVlPXhtZShOdW1iZXIoWi52KSk7Wi52PUNMZSh1ZSl9Q1tJXT1afSl9KX1pZih0aGlzLmRhdGVUaW1lSGVhZGVycy5sZW5ndGg+MCl7bGV0IHk9W107dGhp''@;'; put 'put ''cy5kYXRlVGltZUhlYWRlcnMuZm9yRWFjaChDPT57LTEhPT1oLmluZGV4T2YoQykmJnkucHVzaChoLmluZGV4T2YoQykpfSksdi5mb3JFYWNoKEM9Pnt5LmZvckVhY2goST0+e2NvbnN0IFo9Q1tJXTtpZihJbWUoWi52KXx8a0xlKFoudikpe2xldCB1ZT14bWUoTnVtYmVyKFoudikpO1oudj1F''@;'; put 'put ''bWUodWUpKyIgIitDTGUodWUpfWVsc2V7aWYoLTE9PT1aLnYuaW5kZXhPZigiICIpJiYtMSE9PVoudi5pbmRleE9mKCI6Iikpe2xldCBfZT1aLnYuc3Vic3RyaW5nKDAsWi52LmluZGV4T2YoIjoiKSk7X2U9X2UrIiAiK1oudi5zdWJzdHJpbmcoWi52LmluZGV4T2YoIjoiKSsxKSxaLnY9X2V9''@;'; put 'put ''bGV0IHVlPW5ldyBEYXRlKFoudik7IkludmFsaWQgRGF0ZSIhPT11ZS50b1VUQ1N0cmluZygpJiYoWi52PUVtZSh1ZSkrIiAiKyhkPT57bGV0IGc9KCIwIitkLmdldEhvdXJzKCkpLnNsaWNlKC0yKSsiOiI7cmV0dXJuIGc9ZysoIjAiK2QuZ2V0TWludXRlcygpKS5zbGljZSgtMikrIjoiLGcr''@;'; put 'put ''PSgiMCIrZC5nZXRTZWNvbmRzKCkpLnNsaWNlKC0yKSxnfSkodWUpKX1DW0ldPVp9KX0pfXJldHVybiB2fXVwZGF0ZVhMUnVsZUNvbHMoaCx2KXtpZih0aGlzLnhsUnVsZXMubGVuZ3RoPjApe2NvbnN0IHk9W107dGhpcy54bFJ1bGVzLmZvckVhY2goQz0+ey0xIT09aC5pbmRleE9mKEMuWExf''@;'; put 'put ''Q09MVU1OKSYmKEMuaW5kZXg9aC5pbmRleE9mKEMuWExfQ09MVU1OKSx5LnB1c2goQykpfSksdi5mb3JFYWNoKEM9Pnt5LmZvckVhY2goST0+e2NvbnN0IFo9Q1tJLmluZGV4XTsiRk9STVVMQSI9PT1JLlhMX1JVTEUmJiJmImluIFomJigibiI9PT1aLnQ/Wi52PSI9IitaLmY6Wi53PSI9Iita''@;'; put 'put ''LmYpLENbSV09Wn0pfSl9cmV0dXJuIHZ9YmxvYlRvRmlsZShoLHYpe2NvbnN0IHk9aDtyZXR1cm4geS5sYXN0TW9kaWZpZWREYXRlPW5ldyBEYXRlLHkubmFtZT12LHl9dG9Cc3RyKGgpe2xldCB2PW5ldyBVaW50OEFycmF5KGgpLHk9IiIsQz12LmJ5dGVMZW5ndGg7Zm9yKGxldCBJPTA7STxD''@;'; put 'put ''O0krKyl5Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKHZbSV0pO3JldHVybiB5fXNlbmRDbGF1c2UoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc3VibWl0TG9hZGluZz0hMDtsZXQgaD1bXSx2PVtdO2lmKHZvaWQgMD09PXRoaXMuY2xhdXNlcylyZXR1cm4g''@;'; put 'put ''dGhpcy5udWxsVmFyaWFibGVzPSEwLHZvaWQodGhpcy5zdWJtaXRMb2FkaW5nPSExKTt7bGV0IHk9dGhpcy5jbGF1c2VzLnF1ZXJ5T2JqO2lmKHlbMF0uZWxlbWVudHMubGVuZ3RoPDEpcmV0dXJuKCJob21lIj09PW5pLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYobmku''@;'; put 'put ''ZWRpdG9yLmZpbHRlci5jbGF1c2VzPVtdLG5pLmVkaXRvci5maWx0ZXIucXVlcnk9W10sbmkuZWRpdG9yLmZpbHRlci5ncm91cExvZ2ljPSIiKSx2b2lkIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIit0aGlzLmxpYmRzKTtmb3IobGV0IEM9MDtDPHkubGVuZ3RoO0MrKyl7''@;'; put 'put ''Y29uc3QgST15W0NdLmVsZW1lbnRzO2g9SS5maWx0ZXIoZnVuY3Rpb24oWil7cmV0dXJuIG51bGw9PT1aLnZhcmlhYmxlfSksaC5sZW5ndGgmJnYucHVzaChJKX19aWYodi5sZW5ndGgpcmV0dXJuIHRoaXMubnVsbFZhcmlhYmxlcz0hMCx2b2lkKHRoaXMuc3VibWl0TG9hZGluZz0hMSk7dHJ5''@;'; put 'put ''e2lmKHZvaWQgMCE9PXRoaXMuY2xhdXNlcyYmdGhpcy5saWJkcyl7Y29uc3QgeT17Z3JvdXBMb2dpYzp0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYyxmaWx0ZXJHcm91cHM6W119O3RoaXMuY2xhdXNlcy5xdWVyeU9iai5mb3JFYWNoKEk9Pntjb25zdCBaPXtmaWx0ZXJDbGF1c2VzOltdfTtJLmVs''@;'; put 'put ''ZW1lbnRzLmZvckVhY2godWU9PntaLmZpbHRlckNsYXVzZXMucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHVlKSl9KSxaLmNsYXVzZUxvZ2ljPUkuY2xhdXNlTG9naWMseS5maWx0ZXJHcm91cHMucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKFopKX0pO2NvbnN0''@;'; put 'put ''IEM9dGhpcy5zYXNTdG9yZVNlcnZpY2UuY3JlYXRlRmlsdGVyUXVlcnlUYWJsZSh5KTt5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5zYXZlUXVlcnkodGhpcy5saWJkcyxDKS50aGVuKEk9Pnt0aGlzLnF1ZXJ5RmlsdGVyPXtpZDpJLnJlc3VsdFswXS5GSUxURVJfUkssdGFibGU6SS5yZXN1''@;'; put 'put ''bHRbMF0uRklMVEVSX1RBQkxFfSx0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvIix7c2tpcExvY2F0aW9uQ2hhbmdlOiEwfSkudGhlbigoKT0+dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL2VkaXRvci8iK3RoaXMucXVlcnlGaWx0ZXIudGFibGUrIi8iK3RoaXMucXVlcnlGaWx0ZXIu''@;'; put 'put ''aWQpKSx0aGlzLmZpbHRlcj0hMX0pLmNhdGNoKEk9Pnt0aGlzLnN1Ym1pdExvYWRpbmc9ITF9KX19Y2F0Y2goeSl7dGhpcy5xdWVyeUVycj0hMCx0aGlzLnN1Ym1pdExvYWRpbmc9ITEsdGhpcy5xdWVyeUVyck1lc3NhZ2U9eX19KX1vcGVuUWIoKXt0aGlzLmxpYmRzJiYodGhpcy5maWx0ZXI9''@;'; put 'put ''ITAsdGhpcy5jZGYuZGV0ZWN0Q2hhbmdlcygpLHRoaXMuc3VibWl0TG9hZGluZz0hMSx0aGlzLnNhc1N0b3JlU2VydmljZS5zZXRRdWVyeVZhcmlhYmxlcyh0aGlzLmxpYmRzLHRoaXMuY29scykpfWVkaXRUYWJsZShoLHYpe3RoaXMudG9nZ2xlSG90UGx1Z2luKCJjb250ZXh0TWVudSIsITAp''@;'; put 'put ''O2NvbnN0IHk9dGhpcy5ob3RJbnN0YW5jZTtsZXQgQz15LmdldFBsdWdpbigibXVsdGlDb2x1bW5Tb3J0aW5nIiksST1DLmdldFNvcnRDb25maWcoKSxaPUFycmF5LmlzQXJyYXkoSSk/STpbSV07c2V0VGltZW91dCgoKT0+e2h8fCh0aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQ9dGhpcy5oZWxw''@;'; put 'put ''ZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpLHYmJnRoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZC5wb3AoKSksdGhpcy5ob3RUYWJsZS5yZWFkT25seT0hMSx0aGlzLmhvdFRhYmxlLmRhdGE9dGhpcy5kYXRhU291cmNlLHkudXBkYXRlU2V0dGluZ3Moe3JlYWRPbmx5OnRoaXMu''@;'; put 'put ''aG90VGFibGUucmVhZE9ubHl9LCExKSx5LnJlbmRlcigpO2ZvcihsZXQgdWUgb2YgWilDLnNvcnQodWUpO3RoaXMucmVTZXRDZWxsVmFsaWRhdGlvblZhbHVlcygpfSwwKX1jb252ZXJ0VG9Db3JyZWN0VHlwZXMoaCl7Zm9yKGxldCB2IG9mIGgpZm9yKGxldCB5IGluIHYpe2xldCBDPXRoaXMu''@;'; put 'put ''Y29scy5maW5kKEk9PkkuTkFNRT09PXkpO0MmJiIiIT09dlt5XSYmIm51bSI9PT1DLlRZUEUmJiFDLkREVFlQRS5pbmNsdWRlcygiVElNRSIpJiYhQy5ERFRZUEUuaW5jbHVkZXMoIkRBVEUiKSYmKHZbeV09cGFyc2VJbnQodlt5XSkpfX1jYW5jZWxFZGl0KCl7dGhpcy50b2dnbGVIb3RQbHVn''@;'; put 'put ''aW4oImNvbnRleHRNZW51IiwhMSksdGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZT1bXTtjb25zdCBoPXRoaXMuaG90SW5zdGFuY2U7bGV0IHY9aC5nZXRQbHVnaW4oIm11bHRpQ29sdW1uU29ydGluZyIpLHk9di5nZXRTb3J0Q29uZmlnKCksQz1BcnJheS5pc0FycmF5KHkpP3k6W3ldO3RoaXMu''@;'; put 'put ''ZGF0YVNvdXJjZVVuY2hhbmdlZCYmKHRoaXMuZGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZVVuY2hhbmdlZCkpLHRoaXMuaG90VGFibGUuZGF0YT10aGlzLmRhdGFTb3VyY2UsdGhpcy5ob3RUYWJsZS5yZWFkT25seT0hMCxoLnVwZGF0ZVNl''@;'; put 'put ''dHRpbmdzKHtyZWFkT25seTp0aGlzLmhvdFRhYmxlLnJlYWRPbmx5LGRhdGE6dGhpcy5kYXRhU291cmNlfSwhMSksaC52YWxpZGF0ZVJvd3ModGhpcy5tb2RpZmVkUm93c0luZGV4ZXMpO2ZvcihsZXQgSSBvZiBDKXYuc29ydChJKTt0aGlzLmNoZWNrUm93TGltaXQoKX1ob3RDbGlja2VkKCl7''@;'; put 'put ''MT09PXRoaXMudGltZXNDbGlja2VkJiZ0aGlzLmhvdFRhYmxlLnJlYWRPbmx5JiZ0aGlzLmVkaXRUYWJsZSgpLDA9PT10aGlzLnRpbWVzQ2xpY2tlZCYmKHRoaXMudGltZXNDbGlja2VkKyssc2V0VGltZW91dCgoKT0+e3RoaXMudGltZXNDbGlja2VkPTB9LDIwMCkpfWNsZWFuRXhjZWVkKCl7''@;'; put 'put ''dGhpcy5leGNlZWRDZWxscz1bXX1hcHByb3ZlcnNUb2dnbGUoKXt0aGlzLnNob3dBcHByb3ZlcnM9IXRoaXMuc2hvd0FwcHJvdmVyc31hZGRSb3coKXt0aGlzLmFkZGluZ05ld1Jvdz0hMCxzZXRUaW1lb3V0KCgpPT57Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2xldCB2PXRoaXMuZGF0YVNv''@;'; put 'put ''dXJjZS5sZW5ndGg7aC5hbHRlcigiaW5zZXJ0X3JvdyIsdiwxKSxoLnVwZGF0ZVNldHRpbmdzKHtkYXRhOnRoaXMuZGF0YVNvdXJjZX0sITEpLGguc2VsZWN0Q2VsbCh0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEsMCksaC5yZW5kZXIoKSx0aGlzLmRhdGFTb3VyY2Vbdl0mJih0aGlzLmRhdGFT''@;'; put 'put ''b3VyY2Vbdl0ubm9MaW5rT3B0aW9uPSEwKSx0aGlzLmFkZGluZ05ld1Jvdz0hMSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKX0pfWNhbmNlbFN1Ym1pdCgpe3RoaXMuZGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZUJlZm9yZVN1''@;'; put 'put ''Ym1pdCksdGhpcy5kYXRhU291cmNlQmVmb3JlU3VibWl0PVtdLHRoaXMuaG90VGFibGUuZGF0YT10aGlzLmRhdGFTb3VyY2U7Y29uc3QgaD10aGlzLmhvdEluc3RhbmNlO2gudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlLGNvbEhlYWRlcnM6dGhpcy5oZWFkZXJDb2x1bW5z''@;'; put 'put ''LGNvbHVtbnM6dGhpcy5jZWxsVmFsaWRhdGlvbixtb2RpZnlDb2xXaWR0aDpmdW5jdGlvbih2LHkpe3JldHVybiAwPT09eT82MDp2PjUwMD81MDA6dn19LCExKSxoLnNlbGVjdENlbGwoMCwwKSxoLnJlbmRlcigpLGgudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzKSx0aGlz''@;'; put 'put ''LnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKX1nZXRSb3dzU3VibWl0dGluZ0NvdW50KCl7dGhpcy5zYXNTZXJ2aWNlLmdldFNhc2pzQ29uZmlnKCkuZGVidWcmJih0aGlzLmxvZ2dlclNlcnZpY2UubG9nKHRoaXMuZGF0YVNvdXJjZSksdGhpcy5sb2dnZXJTZXJ2aWNlLmxvZyh0aGlzLmRh''@;'; put 'put ''dGFTb3VyY2VVbmNoYW5nZWQpKTtsZXQgaD0wLHY9MCx5PTA7dGhpcy5tb2RpZmVkUm93c0luZGV4ZXM9W10sdGhpcy5kYXRhTW9kaWZpZWQ9W107Zm9yKGxldCBDPTA7Qzx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoO0MrKyl7bGV0IEk9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlz''@;'; put 'put ''LmRhdGFTb3VyY2VbQ10pO2lmKCJZZXMiPT09SS5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX18pdGhpcy5kYXRhTW9kaWZpZWQucHVzaChJKSx2Kys7ZWxzZXtsZXQgWj10aGlzLmRhdGFTb3VyY2VVbmNoYW5nZWQuZmluZCh1ZT0+e2ZvcihsZXQgX2Ugb2YgdGhpcy5oZWFkZXJQa3Mp''@;'; put 'put ''aWYodWVbX2VdIT09SVtfZV0pcmV0dXJuITE7cmV0dXJuITB9KTtaP0pTT04uc3RyaW5naWZ5KEkpIT09SlNPTi5zdHJpbmdpZnkoWikmJih0aGlzLmRhdGFNb2RpZmllZC5wdXNoKEkpLHRoaXMubW9kaWZlZFJvd3NJbmRleGVzLnB1c2goQyksaCsrKToodGhpcy5kYXRhTW9kaWZpZWQucHVz''@;'; put 'put ''aChJKSx0aGlzLm1vZGlmZWRSb3dzSW5kZXhlcy5wdXNoKEMpLHkrKyl9fXRoaXMucm93c0NoYW5nZWQ9e3Jvd3NVcGRhdGVkOmgscm93c0RlbGV0ZWQ6dixyb3dzQWRkZWQ6eX19dmFsaWRhdGVQcmltYXJ5S2V5cygpe2NvbnN0IGg9dGhpcy5ob3RJbnN0YW5jZTtsZXQgdj1oLmdldERhdGEo''@;'; put 'put ''KTt0aGlzLnBrRmllbGRzPVtdO2ZvcihsZXQgWj0wO1o8di5sZW5ndGg7WisrKXtsZXQgdWU9IiI7Zm9yKGxldCBfZT0xO19lPHRoaXMucmVhZE9ubHlGaWVsZHMrMTtfZSsrKXVlPXVlKyJ8Iit2W1pdW19lXTt0aGlzLnBrRmllbGRzLnB1c2godWUpfWxldCBJLHk9W10sQz10aGlzLmRhdGFT''@;'; put 'put ''b3VyY2UubGVuZ3RoO2ZvcihsZXQgWj0wO1o8dGhpcy5wa0ZpZWxkcy5sZW5ndGg7WisrKWZvcihsZXQgdWU9MDt1ZTx0aGlzLnBrRmllbGRzLmxlbmd0aDt1ZSsrKXRoaXMucGtGaWVsZHNbWl09PT10aGlzLnBrRmllbGRzW3VlXSYmdWUhPT1aJiZ5LnB1c2godWUpO2lmKHRoaXMucGtGaWVs''@;'; put 'put ''ZHMubGVuZ3RoPkMpZm9yKGxldCBaPUM7Wjx0aGlzLnBrRmllbGRzLmxlbmd0aDtaKyspZm9yKGxldCB1ZT1DO3VlPHRoaXMucGtGaWVsZHMubGVuZ3RoO3VlKyspWjx1ZSYmdGhpcy5wa0ZpZWxkc1taXT09PXRoaXMucGtGaWVsZHNbdWVdJiZ5LnB1c2godWUpO2ZvcihsZXQgWj0wO1o8eS5s''@;'; put 'put ''ZW5ndGg7WisrKWZvcihsZXQgdWU9MTt1ZTx0aGlzLnJlYWRPbmx5RmllbGRzKzE7dWUrKylJPWguZ2V0Q2VsbE1ldGEoeVtaXSx1ZSksSS52YWxpZD0hMSxJLmR1cEtleT0hMCxoLnJlbmRlcigpO3RoaXMuZHVwbGljYXRlUGtJbmRleGVzPVsuLi5uZXcgU2V0KHkuc29ydCgpKV19cmVTZXRD''@;'; put 'put ''ZWxsVmFsaWRhdGlvblZhbHVlcyhoPSExLHYpe2NvbnN0IHk9dGhpcy5ob3RJbnN0YW5jZTtmb3IobGV0IEMgb2YgdGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZSl7Y29uc3QgST1DLnZhbHVlcy5tYXAoWj0+Wlt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLlJBV19WQUxVRV0pO3kuYmF0Y2go''@;'; put 'put ''KCk9Pnt2YXIgWix1ZSxfZSxCZTtjb25zdCBOZT15LmdldENlbGxNZXRhKEMucm93LEMuY29sKSxLZT1udWxsPT09KFo9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PVo/dm9pZCAwOlouZ2V0UnVsZShOZS5kYXRhfHwiIik7bGV0IHB0O0tlJiYocHQ9bnVsbD09PSh1ZT10aGlzLmRjVmFs''@;'; put 'put ''aWRhdG9yKXx8dm9pZCAwPT09dWU/dm9pZCAwOnVlLmdldERxRHJvcGRvd25Tb3VyY2UoS2UpKSxwdHx8KHB0PVtdKTtjb25zdCBPdD1bLi4ubmV3IFNldChbLi4ucHQsLi4uSV0pXTtudWxsPT09KF9lPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1fZXx8X2Uu''@;'; put 'put ''dXBkYXRlUnVsZShDLmNvbCx7c291cmNlOk90fSkseS5zZXRDZWxsTWV0YShDLnJvdyxDLmNvbCwic291cmNlIixPdCksQy52YWx1ZXMubGVuZ3RoPjAmJih5LnNldENlbGxNZXRhKEMucm93LEMuY29sLCJyZW5kZXJlciIsImF1dG9jb21wbGV0ZSIpLHkuc2V0Q2VsbE1ldGEoQy5yb3csQy5j''@;'; put 'put ''b2wsImVkaXRvciIsImF1dG9jb21wbGV0ZSIpLHkuc2V0Q2VsbE1ldGEoQy5yb3csQy5jb2wsInN0cmljdCIsQy5zdHJpY3QpLHkuc2V0Q2VsbE1ldGEoQy5yb3csQy5jb2wsImZpbHRlciIsITEpLG51bGw9PT0oQmU9dGhpcy5jdXJyZW50RWRpdFJlY29yZFZhbGlkYXRvcil8fHZvaWQgMD09''@;'; put 'put ''PUJlfHxCZS51cGRhdGVSdWxlKEMuY29sLHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZSIsc3RyaWN0OkMuc3RyaWN0LGZpbHRlcjohMX0pKSx0aGlzLnJlU2V0RXh0ZW5kZWRDZWxsVmFsaWRhdGlvblZhbHVlcyhDLHZvaWQgMCxoLHYpLHkucmVuZGVyKCl9''@;'; put 'put ''KX19cmVTZXRFeHRlbmRlZENlbGxWYWxpZGF0aW9uVmFsdWVzKGgsdix5PSExLEMpe2lmKGgpe3Z8fCh2PWgucm93KTtjb25zdCBaPXRoaXMuZ2V0RXh0ZW5kZWRWYWx1ZXNCeUNlbGxWYWx1ZShoKTt0aGlzLnNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhoLHYsWix5LEMpfWVsc2UgZm9yKGxl''@;'; put 'put ''dCBaIG9mIHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Upe2NvbnN0IHVlPXRoaXMuZ2V0RXh0ZW5kZWRWYWx1ZXNCeUNlbGxWYWx1ZShaKTt0aGlzLnNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhaLFoucm93LHVlLHksQyl9fXNldEV4dGVuZGVkVmFsdWVzVG9DZWxscyhoLHYseSxDPSExLEkp''@;'; put 'put ''e3ZhciBaLHVlLF9lLEJlO2NvbnN0IE5lPXRoaXMuaG90SW5zdGFuY2U7bGV0IEtlPVtdO2ZvcihsZXQgcHQgb2YgeSlLZS5pbmRleE9mKHB0LkVYVFJBX0NPTF9OQU1FKTwwJiZLZS5wdXNoKHB0LkVYVFJBX0NPTF9OQU1FKTtmb3IobGV0IHB0IG9mIEtlKXtjb25zdCBPdD15LmZpbHRlcihR''@;'; put 'put ''cj0+UXIuRVhUUkFfQ09MX05BTUU9PT1wdCk7bGV0ICR0PU90Lm1hcChRcj0+IkMiPT09UXIuRElTUExBWV9UWVBFP1FyLlJBV19WQUxVRV9DSEFSOlFyLlJBV19WQUxVRV9OVU0pO2NvbnN0IGZuPU5lLnByb3BUb0NvbChwdCk7dGhpcy5kaXNhYmxlZEJhc2ljRHluYW1pY0NlbGxWYWxpZGF0''@;'; put 'put ''aW9uTWFwLmZpbmQoUXI9PlFyLnJvdz09PXYmJlFyLmNvbD09PWZuKXx8dGhpcy5kaXNhYmxlZEJhc2ljRHluYW1pY0NlbGxWYWxpZGF0aW9uTWFwLnB1c2goe3Jvdzp2LGNvbDpmbixhY3RpdmU6ITF9KSxOZS5zZXRDZWxsTWV0YSh2LGZuLCJyZW5kZXJlciIsImF1dG9jb21wbGV0ZSIpLE5l''@;'; put 'put ''LnNldENlbGxNZXRhKHYsZm4sImVkaXRvciIsImF1dG9jb21wbGV0ZSIpLE5lLnNldENlbGxNZXRhKHYsZm4sInN0cmljdCIsaC5zdHJpY3QpLE5lLnNldENlbGxNZXRhKHYsZm4sImZpbHRlciIsITEpLG51bGw9PT0oWj10aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yKXx8dm9pZCAw''@;'; put 'put ''PT09Wnx8Wi51cGRhdGVSdWxlKGZuLHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZSIsc3RyaWN0Omguc3RyaWN0LGZpbHRlcjohMX0pO2NvbnN0IGlyPU5lLmdldENlbGxNZXRhKHYsZm4pLG1yPW51bGw9PT0odWU9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQg''@;'; put 'put ''MD09PXVlP3ZvaWQgMDp1ZS5nZXRSdWxlKGlyLmRhdGF8fCIiKTtsZXQgU3I7bXImJihTcj1udWxsPT09KF9lPXRoaXMuZGNWYWxpZGF0b3IpfHx2b2lkIDA9PT1fZT92b2lkIDA6X2UuZ2V0RHFEcm9wZG93blNvdXJjZShtcikpLFNyfHwoU3I9W10pLCJudW1lcmljIj09PShudWxsPT1tcj92''@;'; put 'put ''b2lkIDA6bXIudHlwZSk/KFNyPXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoU3IsIm51bWJlciIpLCR0PXRoaXMuaGVscGVyU2VydmljZS5jb252ZXJ0QXJyYXlWYWx1ZXMoJHQsIm51bWJlciIpKTooU3I9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVl''@;'; put 'put ''cyhTciwic3RyaW5nIiksJHQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcygkdCwic3RyaW5nIikpO2NvbnN0IHdyPVsuLi5uZXcgU2V0KFsuLi5TciwuLi4kdF0pXTtpZihOZS5zZXRDZWxsTWV0YSh2LGZuLCJzb3VyY2UiLHdyKSxudWxsPT09KEJlPXRoaXMuY3VycmVu''@;'; put 'put ''dEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1CZXx8QmUudXBkYXRlUnVsZShmbix7c291cmNlOndyfSksQyl7aWYoSSYmSSE9PXYpcmV0dXJuO2NvbnN0IFFyPU90LmZpbmQoeWk9PjE9PT15aS5GT1JDRV9GTEFHKTtRciYmc2V0VGltZW91dCgoKT0+e05lLnNldERhdGFBdENlbGwo''@;'; put 'put ''dixmbiwiQyI9PT1Rci5ESVNQTEFZX1RZUEU/UXIuUkFXX1ZBTFVFX0NIQVI6UXIuUkFXX1ZBTFVFX05VTSwiZm9yY2VfY2VsbF92YWxpZGF0aW9uX3ZhbHVlIiksdGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PT09diYmKHRoaXMuZGF0YVNvdXJjZVt0aGlzLmN1cnJlbnRFZGl0UmVjb3Jk''@;'; put 'put ''SW5kZXhdW3B0XT0iQyI9PT1Rci5ESVNQTEFZX1RZUEU/UXIuUkFXX1ZBTFVFX0NIQVI6UXIuUkFXX1ZBTFVFX05VTSl9KX19fWdldEV4dGVuZGVkVmFsdWVzQnlDZWxsVmFsdWUoaCx2KXt2YXIgeTtjb25zdCBJPXRoaXMuaG90SW5zdGFuY2UuZ2V0RGF0YUF0Q2VsbCh2fHxoLnJvdyxoLmNv''@;'; put 'put ''bCksWj0oaC52YWx1ZXMuZmluZChOZT0+TmVbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdPT09SSl8fFtdKVt0aGlzLmNlbGxWYWxpZGF0aW9uRmllbGRzLkRJU1BMQVlfSU5ERVhdLHVlPW51bGw9PT0oeT1oLmV4dGVuZGVkX3ZhbHVlcyl8fHZvaWQgMD09PXk/dm9pZCAw''@;'; put 'put ''OnkuZmlsdGVyKE5lPT5OZVswXT09PVopLF9lPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5leHRlbmRlZENlbGxWYWxpZGF0aW9uRmllbGRzKSxCZT1bXTtmb3IobGV0IE5lIG9mIHVlfHxbXSl7bGV0IEtlPXt9O2ZvcihsZXQgcHQgb2YgT2JqZWN0LmtleXMoX2UpKUtlW3B0''@;'; put 'put ''XT1OZVtfZVtwdF1dO0JlLnB1c2goS2UpfXJldHVybiBCZX1jaGVja1NhdmUoKXtpZih0aGlzLmdldFJvd3NTdWJtaXR0aW5nQ291bnQoKSwwPT09dGhpcy5yb3dzQ2hhbmdlZC5yb3dzQWRkZWQmJjA9PT10aGlzLnJvd3NDaGFuZ2VkLnJvd3NVcGRhdGVkJiYwPT09dGhpcy5yb3dzQ2hhbmdl''@;'; put 'put ''ZC5yb3dzRGVsZXRlZClyZXR1cm4gdGhpcy5iYWRFZGl0VGl0bGU9Ik5vIGNoYW5nZXMgdG8gc3VibWl0Iix0aGlzLmJhZEVkaXRDYXVzZT0iUGxlYXNlIG1vZGlmeSBzb21lIHZhbHVlcyBhbmQgdHJ5IGFnYWluLiIsdm9pZCh0aGlzLmJhZEVkaXQ9ITApO2NvbnN0IGg9dGhpcy5ob3RJbnN0''@;'; put 'put ''YW5jZTt0aGlzLmRhdGFTb3VyY2VCZWZvcmVTdWJtaXQ9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZSh0aGlzLmRhdGFTb3VyY2UpO2ZvcihsZXQgeT0wO3k8dGhpcy5kYXRhU291cmNlLmxlbmd0aDt5KyspZGVsZXRlIHRoaXMuZGF0YVNvdXJjZVt5XS5ub0xpbmtPcHRpb247aC51cGRh''@;'; put 'put ''dGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2UsY29sSGVhZGVyczp0aGlzLmhlYWRlckNvbHVtbnMsY29sdW1uczp0aGlzLmNlbGxWYWxpZGF0aW9uLG1vZGlmeUNvbFdpZHRoOmZ1bmN0aW9uKHksQyl7cmV0dXJuIHk+NTAwPzUwMDp5fX0sITEpLHRoaXMucmVTZXRDZWxsVmFsaWRh''@;'; put 'put ''dGlvblZhbHVlcygpLGQuY250PTAsZC5ub25Qa0NudD0wO2xldCB2PWguZ2V0RGF0YSgpO2lmKHYubGVuZ3RoPjEmJmguaXNFbXB0eVJvdyh2Lmxlbmd0aC0xKSYmaC5hbHRlcigicmVtb3ZlX3JvdyIsdi5sZW5ndGgtMSksdGhpcy52YWxpZGF0ZVByaW1hcnlLZXlzKCksMCE9PXRoaXMuZHVw''@;'; put 'put ''bGljYXRlUGtJbmRleGVzLmxlbmd0aClyZXR1cm4gdGhpcy5wa0R1cHM9ITAsdGhpcy5zdWJtaXQ9ITEsdm9pZCB0aGlzLmNhbmNlbFN1Ym1pdCgpO3RoaXMucGtEdXBzPSExLGgudmFsaWRhdGVSb3dzKHRoaXMubW9kaWZlZFJvd3NJbmRleGVzLCgpPT57dGhpcy5jaGVja0ludmFsaWQoKT90''@;'; put 'put ''aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJWYWxpZGF0aW9uIGVycm9yIiwiSW52YWxpZCBWYWx1ZXMgYXJlIFByZXNlbnQiKToodGhpcy5zdWJtaXQ9ITAsdGhpcy52YWxpZGF0aW9uRG9uZT0xLHNldFRpbWVvdXQoKCk9Pntkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybUZp''@;'; put 'put ''ZWxkc184IikuZm9jdXMoKX0pKX0pfXNhdmVUYWJsZShoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKHRoaXMuaG90SW5zdGFuY2UuZ2V0RGF0YSgpLGg9KGg9aC5maWx0ZXIoQz0+ISF0aGlzLmRhdGFNb2RpZmllZC5maW5kKFo9Pntmb3IobGV0IHVlIG9m''@;'; put 'put ''IHRoaXMuaGVhZGVyUGtzKWlmKFpbdWVdIT09Q1t1ZV0pcmV0dXJuITE7cmV0dXJuITB9KSkpLm1hcChDPT57bGV0IEk9Qy5fX19fX0RFTEVURV9fVEhJU19fUkVDT1JEX19fX187cmV0dXJuIGRlbGV0ZSBDLl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyxDLl9fX19fREVMRVRFX19U''@;'; put 'put ''SElTX19SRUNPUkRfX19fXz1JLE9iamVjdC5rZXlzKEMpLm1hcChaPT57dmFyIHVlO2NvbnN0IF9lPW51bGw9PT0odWU9dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PXVlP3ZvaWQgMDp1ZS5nZXRSdWxlKFopOyJudW1lcmljIj09PShudWxsPT1fZT92b2lkIDA6X2UudHlwZSkmJiIuIj09''@;'; put 'put ''PUNbWl0mJihDW1pdPW51bGwpfSksQ30pLHRoaXMubG9nZ2VyU2VydmljZS5sb2coIkRhdGEgc3VibWl0dGVkIixoKSx0aGlzLmNoZWNrSW52YWxpZCgpKXJldHVybiB0aGlzLmV2ZW50U2VydmljZS5zaG93SW5mb01vZGFsKCJWYWxpZGF0aW9uIGVycm9yIiwiSW52YWxpZCBWYWx1ZXMgYXJl''@;'; put 'put ''IFByZXNlbnQiKSx0aGlzLmNhbmNlbFN1Ym1pdCgpLHZvaWQodGhpcy5zdWJtaXQ9ITEpO2lmKHRoaXMudmFsaWRhdGlvbkRvbmU9MCx0aGlzLnNhdmVMb2FkaW5nPSEwLGQuY250PDEmJjA9PT10aGlzLmR1cGxpY2F0ZVBrSW5kZXhlcy5sZW5ndGgmJmQubm9uUGtDbnQ8MSl7dGhpcy5zYXZl''@;'; put 'put ''TG9hZGluZz0hMCx0aGlzLmRpc2FibGVTdWJtaXQ9ITEsdGhpcy5zdWJtaXQ9ITA7bGV0IEM9e0FDVElPTjoiTE9BRCJ9O2lmKHRoaXMubWVzc2FnZT10aGlzLm1lc3NhZ2UucmVwbGFjZSgvXG4vZywiLiAiKSxDLk1FU1NBR0U9dGhpcy5tZXNzYWdlLEMuTElCRFM9dGhpcy5saWJkcyx0aGlz''@;'; put 'put ''LmNvbHMmJih5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS51cGRhdGVUYWJsZShDLGgsIlNBU0NvbnRyb2xUYWJsZSIsImVkaXRvcnMvc3RhZ2VkYXRhIix0aGlzLiRkYXRhRm9ybWF0cykudGhlbihaPT57aWYodm9pZCAwIT09Wi5zYXNwYXJhbXMpcmV0dXJuIHRoaXMucm91dGVyLm5hdmln''@;'; put 'put ''YXRlQnlVcmwoIi9zdGFnZS8iK1ouc2FzcGFyYW1zWzBdLkRTSUQpLCEwfSkuY2F0Y2goWj0+KGNvbnNvbGUubG9nKCJlcnIiLFopLGQuY250PTAsZC5ub25Qa0NudD0wLHRoaXMuZGlzYWJsZVN1Ym1pdD0hMCx0aGlzLnN1Ym1pdD0hMSwhMSkpKSlyZXR1cm59ZC5jbnQ+PTE/KHRoaXMucGtO''@;'; put 'put ''dWxsPSEwLHRoaXMuc3VibWl0PSEwKTp0aGlzLnN1Ym1pdD0hMSxkLm5vblBrQ250Pj0xPyh0aGlzLm5vUGtOdWxsPSEwLHRoaXMuc3VibWl0PSEwKTp0aGlzLnN1Ym1pdD0hMSx0aGlzLmNhbmNlbFN1Ym1pdCgpLGQuY250PTAsZC5ub25Qa0NudD0wLHRoaXMuZGlzYWJsZVN1Ym1pdD0hMH0p''@;'; put 'put ''fXZhbGlkYXRvclJ1bGVTb3VyY2UoaCl7dmFyIHY7cmV0dXJuIG51bGw9PT0odj10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09dj92b2lkIDA6di5nZXRSdWxlKGgpfWNoZWNrSW52YWxpZCgpe3JldHVybiB0aGlzLmhvdEluc3RhbmNlQ29tcExpc3QuZmlyc3QuY29udGFpbmVyLm5hdGl2''@;'; put 'put ''ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmh0SW52YWxpZCIpLmxlbmd0aD4wfWdvVG9FZGl0b3IoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvIil9Y2xvc2VSZWNvcmRFZGl0KGgpe3RoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleD0tMSx0aGlzLmN1cnJlbnRFZGl0UmVjb3Jk''@;'; put 'put ''PXZvaWQgMCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPXZvaWQgMCwiQUREIj09PXRoaXMucmVjb3JkQWN0aW9uJiYhaCYmKHRoaXMuZGF0YVNvdXJjZT10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMucHJldkRhdGFTb3VyY2UpLHRoaXMuaG90SW5zdGFuY2UudXBk''@;'; put 'put ''YXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlfSwhMSkpfWNvbmZpcm1SZWNvcmRFZGl0KGg9ITApe2NvbnN0IHY9dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4O2gmJih0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9LTEpLHRoaXMuY29sdW1uSGVhZGVyLm1hcChDPT57dmFy''@;'; put 'put ''IEksWjtjb25zdCB1ZT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkW0NdLF9lPSJudW0iPT09KG51bGw9PT0oWj1udWxsPT09KEk9dGhpcy4kZGF0YUZvcm1hdHMpfHx2b2lkIDA9PT1JP3ZvaWQgMDpJLnZhcnNbQ10pfHx2b2lkIDA9PT1aP3ZvaWQgMDpaLnR5cGUpLEJlPSgwLGJ3LmlzU3BlY2lh''@;'; put 'put ''bE1pc3NpbmcpKHVlKTtfZSYmIWlzTmFOKHVlKSYmIUJlJiYodGhpcy5jdXJyZW50RWRpdFJlY29yZFtDXT0xKnVlKX0pLHRoaXMuZGF0YVNvdXJjZVt2XT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkLHRoaXMuaG90VGFibGUuZGF0YVt2XT10aGlzLmN1cnJlbnRFZGl0UmVjb3JkLHRoaXMuaG90''@;'; put 'put ''SW5zdGFuY2UudXBkYXRlU2V0dGluZ3Moe2RhdGE6dGhpcy5kYXRhU291cmNlfSwhMSksaCYmKHRoaXMuY3VycmVudEVkaXRSZWNvcmQ9dm9pZCAwKX1vbk5leHRSZWNvcmQoKXt0aGlzLmNvbmZpcm1SZWNvcmRFZGl0KCExKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9dGhpcy5jdXJy''@;'; put 'put ''ZW50RWRpdFJlY29yZEluZGV4Pj10aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTE/MDp0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgrMSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgpfW9uUHJldmlvdXNSZWNvcmQoKXt0aGlzLmNvbmZpcm1SZWNvcmRF''@;'; put 'put ''ZGl0KCExKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg9dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PD0wP3RoaXMuZGF0YVNvdXJjZS5sZW5ndGgtMTp0aGlzLmN1cnJlbnRFZGl0UmVjb3JkSW5kZXgtMSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmN1cnJlbnRFZGl0UmVjb3Jk''@;'; put 'put ''SW5kZXgpfWFkZFJlY29yZEJ1dHRvbkNsaWNrKCl7dGhpcy5yZXN0cmljdGlvbnMucmVzdHJpY3RBZGRSZWNvcmQ/dGhpcy5ldmVudFNlcnZpY2Uuc2hvd0RlbW9MaW1pdE1vZGFsKCk6dGhpcy5hZGRFZGl0TmV3UmVjb3JkKCl9YWRkRWRpdE5ld1JlY29yZCgpe3RoaXMuYWRkUmVjb3JkKCks''@;'; put 'put ''c2V0VGltZW91dCgoKT0+e3RoaXMuZWRpdFJlY29yZChudWxsLHRoaXMuZGF0YVNvdXJjZS5sZW5ndGgtMSwhMCl9LDFlMyl9YWRkUmVjb3JkKCl7dGhpcy5hZGRSb3coKX1lZGl0UmVjb3JkKGgsdix5KXt2YXIgQyxJO2lmKCEodm9pZCAwPT09dnx8djwwfHx0aGlzLnJlc3RyaWN0aW9ucy5y''@;'; put 'put ''ZXN0cmljdEVkaXRSZWNvcmQpKXtpZih0aGlzLnJlY29yZEFjdGlvbj15PyJBREQiOiJFRElUIix0aGlzLmhvdFRhYmxlLnJlYWRPbmx5JiZ0aGlzLmVkaXRUYWJsZSghMSx5KSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkVmFsaWRhdG9yPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhp''@;'; put 'put ''cy5kY1ZhbGlkYXRvcikseSl0aGlzLnByZXZEYXRhU291cmNlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlKSx0aGlzLnByZXZEYXRhU291cmNlLnBvcCgpO2Vsc2V7Y29uc3QgWj10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHRoaXMuaG90SW5zdGFu''@;'; put 'put ''Y2UuZ2V0Q2VsbE1ldGFBdFJvdyh2KSk7Zm9yKGxldCB1ZSBvZiBaKWlmKHVlKXtjb25zdCBfZT1udWxsPT09KEM9dWUucHJvcCl8fHZvaWQgMD09PUM/dm9pZCAwOkMudG9TdHJpbmcoKTtkZWxldGUgdWUucHJvcCxkZWxldGUgdWUuZGF0YSxudWxsPT09KEk9dGhpcy5jdXJyZW50RWRpdFJl''@;'; put 'put ''Y29yZFZhbGlkYXRvcil8fHZvaWQgMD09PUl8fEkudXBkYXRlUnVsZSh1ZS5jb2wsT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHVlKSx7ZGF0YTpfZX0pKX19dGhpcy5jdXJyZW50RWRpdFJlY29yZEluZGV4PXYsdGhpcy5jdXJyZW50RWRpdFJlY29yZD10aGlzLmhlbHBlclNlcnZp''@;'; put 'put ''Y2UuZGVlcENsb25lKHRoaXMuZGF0YVNvdXJjZVt2XSl9fXRvZ2dsZUhvdFBsdWdpbihoLHYpe2NvbnN0IHk9dGhpcy5ob3RJbnN0YW5jZTt5LmJhdGNoKCgpPT57bGV0IEM9eS5nZXRQbHVnaW4oaCk7Qz8oc2V0VGltZW91dCgoKT0+e3Y/Qy5lbmFibGVQbHVnaW4oKTpDLmRpc2FibGVQbHVn''@;'; put 'put ''aW4oKX0sMTAwKSx5LnJlbmRlcigpKTpjb25zb2xlLndhcm4oIlRvZ2dsZSBIb3QgUGx1Z2luIGZhaWxlZCAtIFBsdWdpbiBuYW1lZDogIitoKyIgLSBjb3VsZCBub3QgYmUgZm91bmQuIil9KX1keW5hbWljQ2VsbFZhbGlkYXRpb25EaXNhYmxlZChoLHYpe3JldHVybiEhdGhpcy5kaXNhYmxl''@;'; put 'put ''ZEJhc2ljRHluYW1pY0NlbGxWYWxpZGF0aW9uTWFwLmZpbmQoQz0+Qy5yb3c9PT1oJiZDLmNvbD09PXYmJiFDLmFjdGl2ZSl9ZHluYW1pY0NlbGxWYWxpZGF0aW9uKGgsdil7dmFyIHk7aWYodGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb25EaXNhYmxlZChoLHYpKXJldHVybjtjb25zdCBDPXRo''@;'; put 'put ''aXMuaG90SW5zdGFuY2U7aWYoQy5nZXRDZWxsTWV0YShoLHYpLnJlYWRPbmx5KXJldHVybjtjb25zdCBaPUMuZ2V0RGF0YUF0Q2VsbChoLHYpLHVlPXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUodGhpcy5kYXRhU291cmNlW2hdKSxfZT1PYmplY3Qua2V5cyh1ZSlbdl0sQmU9dGhpcy5o''@;'; put 'put ''ZWxwZXJTZXJ2aWNlLmRlbGV0ZUtleXNBbmRIYXNoKHVlLFtfZSwibm9MaW5rT3B0aW9uIl0sITEpLE5lPXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KEtlPT5LZS5oYXNoPT09QmUpO2lmKE5lPi0xKXtsZXQgS2U9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtOZV0udmFs''@;'; put 'put ''dWVzLm1hcCgkdD0+JHRbdGhpcy5jZWxsVmFsaWRhdGlvbkZpZWxkcy5SQVdfVkFMVUVdKTtjb25zdCBwdD0oQy5nZXRDZWxsTWV0YShoLHYpLnNvdXJjZXx8W10pLmxlbmd0aDwxLE90PSIgIiE9PVo7Qy5iYXRjaCgoKT0+e3ZhciAkdCxmbixMbixpcjtjb25zdCBtcj1DLmdldENlbGxNZXRh''@;'; put 'put ''KGgsdiksU3I9bnVsbD09PSgkdD10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09JHQ/dm9pZCAwOiR0LmdldFJ1bGUobXIuZGF0YXx8IiIpO2xldCB3cjtTciYmKHdyPW51bGw9PT0oZm49dGhpcy5kY1ZhbGlkYXRvcil8fHZvaWQgMD09PWZuP3ZvaWQgMDpmbi5nZXREcURyb3Bkb3duU291''@;'; put 'put ''cmNlKFNyKSksd3J8fCh3cj1bXSksIm51bWVyaWMiPT09KG51bGw9PVNyP3ZvaWQgMDpTci50eXBlKT8od3I9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyh3ciwibnVtYmVyIiksS2U9dGhpcy5oZWxwZXJTZXJ2aWNlLmNvbnZlcnRBcnJheVZhbHVlcyhLZSwibnVtYmVy''@;'; put 'put ''IikpOih3cj10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKHdyLCJzdHJpbmciKSxLZT10aGlzLmhlbHBlclNlcnZpY2UuY29udmVydEFycmF5VmFsdWVzKEtlLCJzdHJpbmciKSk7Y29uc3QgUXI9Wy4uLm5ldyBTZXQoWy4uLndyLC4uLktlXSldO2lmKEMuc2V0Q2VsbE1l''@;'; put 'put ''dGEoaCx2LCJzb3VyY2UiLFFyKSxudWxsPT09KExuPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1Mbnx8TG4udXBkYXRlUnVsZSh2LHtzb3VyY2U6UXJ9KSx0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlW05lXS52YWx1ZXMubGVuZ3RoPjApe2NvbnN0IHlpPXRo''@;'; put 'put ''aXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbTmVdLnN0cmljdDtDLnNldENlbGxNZXRhKGgsdiwicmVuZGVyZXIiLCJhdXRvY29tcGxldGUiKSxDLnNldENlbGxNZXRhKGgsdiwiZWRpdG9yIiwiYXV0b2NvbXBsZXRlIiksQy5zZXRDZWxsTWV0YShoLHYsInN0cmljdCIseWkpLEMuc2V0Q2VsbE1l''@;'; put 'put ''dGEoaCx2LCJmaWx0ZXIiLCExKSxudWxsPT09KGlyPXRoaXMuY3VycmVudEVkaXRSZWNvcmRWYWxpZGF0b3IpfHx2b2lkIDA9PT1pcnx8aXIudXBkYXRlUnVsZSh2LHtyZW5kZXJlcjoiYXV0b2NvbXBsZXRlIixlZGl0b3I6ImF1dG9jb21wbGV0ZSIsc3RyaWN0OnlpLGZpbHRlcjohMX0pfXRo''@;'; put 'put ''aXMucmVTZXRFeHRlbmRlZENlbGxWYWxpZGF0aW9uVmFsdWVzKHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbTmVdLGgscHQmJk90KSxDLnJlbmRlcigpfSl9aWYoTmU8MCl7Y29uc3QgS2U9e1NBU0NvbnRyb2xUYWJsZTpbe2xpYmRzOnRoaXMubGliZHMsdmFyaWFibGVfbm06X2V9XSxzb3Vy''@;'; put 'put ''Y2Vfcm93Olt1ZV19LHB0PW51bGw9PT0oeT10aGlzLmRjVmFsaWRhdG9yKXx8dm9pZCAwPT09eT92b2lkIDA6eS5nZXREcURldGFpbHMoX2UpLmZpbmQoT3Q9PiJTT0ZUU0VMRUNUX0hPT0siPT09T3QuUlVMRV9UWVBFfHwiSEFSRFNFTEVDVF9IT09LIj09PU90LlJVTEVfVFlQRSk7cHQmJih0''@;'; put 'put ''aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLnB1c2goe3JvdzpoLGNvbDp2LHN0cmljdDoiSEFSRFNFTEVDVF9IT09LIj09PXB0LlJVTEVfVFlQRSx2YWx1ZXM6W10saGFzaDpCZSxjb3VudDp0aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmxlbmd0aCsxfSksQy5zZXRDZWxsTWV0YShoLHYsInJl''@;'; put 'put ''bmRlcmVyIix6NXQpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRMb2FkaW5ncy5wdXNoKHYpLEMucmVuZGVyKCksdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImVkaXRvcnMvZ2V0ZHluYW1pY2NvbHZhbHMiLEtlLHZvaWQgMCx7c3VwcHJlc3NTdWNjZXNzQWJvcnRNb2RhbDohMCxzdXBwcmVzc0Vy''@;'; put 'put ''cm9yQWJvcnRNb2RhbDohMH0pLnRoZW4oT3Q9PntpZihPdC5keW5hbWljX3ZhbHVlcy5tYXAoZm49PmZuW3RoaXMuY2VsbFZhbGlkYXRpb25GaWVsZHMuUkFXX1ZBTFVFXSkubGVuZ3RoPjApe2NvbnN0IGZuPXRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UuZmluZEluZGV4KExuPT5Mbi5oYXNo''@;'; put 'put ''PT09QmUpO2ZuPi0xJiYodGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZVtmbl09T2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2VbZm5dKSx7cm93OmgsY29sOnYsdmFsdWVzOk90LmR5bmFtaWNfdmFsdWVzLGV4dGVuZGVkX3ZhbHVlczpPdC5k''@;'; put 'put ''eW5hbWljX2V4dGVuZGVkX3ZhbHVlc30pKSxDLnNldENlbGxNZXRhKGgsdiwicmVuZGVyZXIiLFRtZSksdGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzLnNwbGljZSh0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MuaW5kZXhPZih2KSwxKSxDLmRlc2VsZWN0Q2VsbCgpLEMucmVu''@;'; put 'put ''ZGVyKCksQy5iYXRjaCgoKT0+e3NldFRpbWVvdXQoKCk9Pnt0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoITAsaCksQy5yZW5kZXIoKSxDLnZhbGlkYXRlUm93cyhbaF0pfSwxMDApfSl9aWYoQy5zZXRDZWxsTWV0YShoLHYsInJlbmRlcmVyIixUbWUpLHRoaXMuY3VycmVudEVkaXRS''@;'; put 'put ''ZWNvcmRMb2FkaW5ncy5zcGxpY2UodGhpcy5jdXJyZW50RWRpdFJlY29yZExvYWRpbmdzLmluZGV4T2YodiksMSksQy5kZXNlbGVjdENlbGwoKSxDLnJlbmRlcigpLHRoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UubGVuZ3RoPnRoaXMudmFsaWRhdGlvblRhYmxlTGltaXQpe2NvbnN0IGZuPXRo''@;'; put 'put ''aXMuY2VsbFZhbGlkYXRpb25Tb3VyY2UucmVkdWNlKChpcixtcik9PmlyLmNvdW50PG1yLmNvdW50P2lyOm1yKSxMbj10aGlzLmNlbGxWYWxpZGF0aW9uU291cmNlLmluZGV4T2YoZm4pO3RoaXMuY2VsbFZhbGlkYXRpb25Tb3VyY2Uuc3BsaWNlKExuLDEpfX0pLmNhdGNoKE90PT57Y29uc3Qg''@;'; put 'put ''JHQ9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5maW5kSW5kZXgoZm49PmZuLmhhc2g9PT1CZSk7dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5zcGxpY2UoJHQsMSksQy5iYXRjaCgoKT0+e0Muc2V0Q2VsbE1ldGEoaCx2LCJyZW5kZXJlciIsWjV0KSxDLnJlbmRlcigpfSksdGhpcy5jdXJy''@;'; put 'put ''ZW50RWRpdFJlY29yZExvYWRpbmdzLnNwbGljZSh0aGlzLmN1cnJlbnRFZGl0UmVjb3JkTG9hZGluZ3MuaW5kZXhPZih2KSwxKSx0aGlzLmN1cnJlbnRFZGl0UmVjb3JkRXJyb3JzLnB1c2godiksc2V0VGltZW91dCgoKT0+e0Muc2V0Q2VsbE1ldGEoaCx2LCJyZW5kZXJlciIsVG1lKSxDLnJl''@;'; put 'put ''bmRlcigpLHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMuc3BsaWNlKHRoaXMuY3VycmVudEVkaXRSZWNvcmRFcnJvcnMuaW5kZXhPZih2KSwxKX0sM2UzKSx0aGlzLnJlU2V0Q2VsbFZhbGlkYXRpb25WYWx1ZXMoKSx0aGlzLmxvZ2dlclNlcnZpY2UubG9nKCJnZXRkeW5hbWljY29sdmFs''@;'; put 'put ''cyBlcnJvcjoiLE90KX0pKX19Y2hlY2tFbXB0eVJvd1doZW5GaWx0ZXIoKXt0aGlzLnplcm9GaWx0ZXJSb3dzPSExLHZvaWQgMCE9PXRoaXMuZmlsdGVyX3BrJiYxPT09dGhpcy5ob3RUYWJsZS5kYXRhLmxlbmd0aCYmW251bGwsIiJdLmluY2x1ZGVzKHRoaXMuaG90VGFibGUuZGF0YVswXVt0''@;'; put 'put ''aGlzLmhlYWRlclBrc1swXV0pJiYodGhpcy56ZXJvRmlsdGVyUm93cz0hMCl9b25SZWNvcmRJbnB1dEZvY3VzKGgpe3RoaXMuZHluYW1pY0NlbGxWYWxpZGF0aW9uKHRoaXMuY3VycmVudEVkaXRSZWNvcmRJbmRleCxoLmNvbE5hbWUpfWV4ZWN1dGVEeW5hbWljQ2VsbFZhbGlkYXRpb25JZkFw''@;'; put 'put ''cGxpY2FibGUoaCx2LHkpe2NvbnN0IEM9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlbGV0ZUtleXNBbmRIYXNoKHRoaXMuZGF0YVNvdXJjZVt5XSxbaCwibm9MaW5rT3B0aW9uIl0pLEk9dGhpcy5jZWxsVmFsaWRhdGlvblNvdXJjZS5maW5kKFo9PlouaGFzaD09PUMmJnY9PT1aLmNvbCk7aWYoSSYm''@;'; put 'put ''SS5leHRlbmRlZF92YWx1ZXMmJkkuZXh0ZW5kZWRfdmFsdWVzLmxlbmd0aD4wKXtjb25zdCBaPXRoaXMuZ2V0RXh0ZW5kZWRWYWx1ZXNCeUNlbGxWYWx1ZShJLHkpO3RoaXMuc2V0RXh0ZW5kZWRWYWx1ZXNUb0NlbGxzKEkseSxaLCEwKX19bmdPbkluaXQoKXtyZXR1cm4gbm8odGhpcyx2b2lk''@;'; put 'put ''IDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuYXBwU2VydmljZS5ob3RfbGljZW5zZV9rZXkuc3Vic2NyaWJlKHY9Pnt0aGlzLmhvdFRhYmxlLmxpY2Vuc2VLZXk9dn0pLHRoaXMuX3F1ZXJ5PXRoaXMuc2FzU3RvcmVTZXJ2aWNlLnF1ZXJ5LnN1YnNjcmliZSh2PT57dGhpcy53aGVyZVN0cmlu''@;'; put 'put ''Zz12LnN0cmluZyx0aGlzLmNsYXVzZXM9di5vYmosdGhpcy5saWJkcz12LmxpYmRzfSk7bGV0IGg9e307dm9pZCAwIT09dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtJiYodGhpcy5saWJkcz10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0sdGhpcy5maWx0ZXJfcGs9''@;'; put 'put ''dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQsImVkaXQtcmVjb3JkIj09PXRoaXMucm91dGUuc25hcHNob3QudXJsWzBdLnBhdGgmJih0aGlzLnJlY29yZEFjdGlvbj12b2lkIDAhPT10aGlzLmZpbHRlcl9waz8iRURJVCI6IkFERCIpLGguTElCRFM9dGhpcy5saWJkcyx2b2lk''@;'; put 'put ''IDAhPT10aGlzLmZpbHRlcl9wayYmKGguRklMVEVSX1JLPXBhcnNlSW50KHRoaXMuZmlsdGVyX3BrKSksaC5PVVRERVNUPSJXRUIiLHRoaXMubGliZHMmJihuaS5lZGl0b3IubGlicmFyeT10aGlzLmxpYmRzLnNwbGl0KCIuIilbMF0sbmkuZWRpdG9yLnRhYmxlPXRoaXMubGliZHMuc3BsaXQo''@;'; put 'put ''Ii4iKVsxXSkpLHRoaXMubGliZHMmJih0aGlzLmdldGRhdGFFcnJvcj0hMSx5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5jYWxsU2VydmljZShoLCJTQVNDb250cm9sVGFibGUiLCJlZGl0b3JzL2dldGRhdGEiLHRoaXMubGliZHMpLnRoZW4odj0+e3RoaXMuaW5pdFNldHVwKHYpfSkuY2F0''@;'; put 'put ''Y2godj0+e3RoaXMuZ2V0ZGF0YUVycm9yPSEwLHRoaXMudGFibGVUcnVlPSEwfSkpfSl9bmdBZnRlclZpZXdJbml0KCl7fWluaXRTZXR1cChoKXtpZih0aGlzLmhvdEluc3RhbmNlPXRoaXMuaG90UmVnaXN0ZXJlci5nZXRJbnN0YW5jZSgiaG90SW5zdGFuY2UiKSx0aGlzLmdldGRhdGFFcnJv''@;'; put 'put ''cnx8IWh8fCFoLmRhdGEpcmV0dXJuO3RoaXMuY29scz1oLmRhdGEuY29scyx0aGlzLmRzbWV0YT1oLmRhdGEuZHNtZXRhO2NvbnN0IHY9dGhpcy5ob3RJbnN0YW5jZSx5PWguZGF0YS5hcHByb3ZlcnM7dGhpcy5jb2xzJiYodGhpcy5oZWFkZXJBcnJheT0oZD0+e2NvbnN0IGc9W107Zm9yKGxl''@;'; put 'put ''dCBoIG9mIGQpIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIhPT1oLk5BTUUmJmcucHVzaChoLk5BTUUpO3JldHVybiBnfSkodGhpcy5jb2xzKSkseS5mb3JFYWNoKEk9Pnt0aGlzLmFwcHJvdmVycy5wdXNoKEkuUEVSU09OTkFNRSl9KSx0aGlzLnRhYmxlVHJ1ZT0hMCx0aGlzLmxp''@;'; put 'put ''YmRzPWgubGliZHMsdGhpcy5ob3RUYWJsZS5kYXRhPWguZGF0YS5zYXNkYXRhLHRoaXMuaGVhZGVyQ29sdW1ucz1oLmRhdGEuc2FzcGFyYW1zWzBdLkNPTEhFQURFUlMuc3BsaXQoIiwiKSx0aGlzLmhlYWRlclBrcz1oLmRhdGEuc2FzcGFyYW1zWzBdLlBLLnNwbGl0KCIgIiksdGhpcy5jb2x1''@;'; put 'put ''bW5MZXZlbFNlY3VyaXR5RmxhZz0hIWguZGF0YS5zYXNwYXJhbXNbMF0uQ0xTX0ZMQUcsdGhpcy5jb2x1bW5MZXZlbFNlY3VyaXR5RmxhZyYmdGhpcy5zZXRSZXN0cmljdGlvbnMoe3Jlc3RyaWN0QWRkUm93OiEwLHJlbW92ZUVkaXRSZWNvcmRCdXR0b246ITAscmVtb3ZlQWRkUmVjb3JkQnV0''@;'; put 'put ''dG9uOiEwfSksdGhpcy5jaGVja0VtcHR5Um93V2hlbkZpbHRlcigpLC0xIT09dGhpcy5oZWFkZXJDb2x1bW5zLmluZGV4T2YoIl9fX19fREVMRVRFX19USElTX19SRUNPUkRfX19fXyIpJiYodGhpcy5oZWFkZXJDb2x1bW5zW3RoaXMuaGVhZGVyQ29sdW1ucy5pbmRleE9mKCJfX19fX0RFTEVU''@;'; put 'put ''RV9fVEhJU19fUkVDT1JEX19fX18iKV09IkRlbGV0ZT8iKSx0aGlzLmhlYWRlckFycmF5PXRoaXMuaGVhZGVyQ29sdW1ucy5zbGljZSgxKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNbMF0uRFRWQVJTJiYodGhpcy5kYXRlSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLkRUVkFSUy5zcGxpdCgi''@;'; put 'put ''ICIpKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNbMF0uVE1WQVJTJiYodGhpcy50aW1lSGVhZGVycz1oLmRhdGEuc2FzcGFyYW1zWzBdLlRNVkFSUy5zcGxpdCgiICIpKSwiIiE9PWguZGF0YS5zYXNwYXJhbXNbMF0uRFRUTVZBUlMmJih0aGlzLmRhdGVUaW1lSGVhZGVycz1oLmRhdGEuc2FzcGFy''@;'; put 'put ''YW1zWzBdLkRUVE1WQVJTLnNwbGl0KCIgIikpLGguZGF0YS54bF9ydWxlcy5sZW5ndGg+MCYmKHRoaXMueGxSdWxlcz10aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKGguZGF0YS54bF9ydWxlcykpLHRoaXMuZGNWYWxpZGF0b3I9bmV3IEY1dChoLmRhdGEuc2FzcGFyYW1zWzBdLGguZGF0''@;'; put 'put ''YS4kc2FzZGF0YSx0aGlzLmNvbHMsaC5kYXRhLmRxcnVsZXMsaC5kYXRhLmRxZGF0YSksdGhpcy5jZWxsVmFsaWRhdGlvbj10aGlzLmRjVmFsaWRhdG9yLmdldFJ1bGVzKCksdGhpcy5kYXRhU291cmNlPWguZGF0YS5zYXNkYXRhLHRoaXMuJGRhdGFGb3JtYXRzPWguZGF0YS4kc2FzZGF0YTtm''@;'; put 'put ''b3IobGV0IEk9MDtJPHRoaXMuaGVhZGVyQ29sdW1ucy5sZW5ndGg7SSsrKXRoaXMuaG90RGF0YVNjaGVtYVt0aGlzLmNlbGxWYWxpZGF0aW9uW0ldLmRhdGFdPUg1dCh0aGlzLmNlbGxWYWxpZGF0aW9uW0ldLnR5cGUsdGhpcy5jZWxsVmFsaWRhdGlvbltJXSk7dGhpcy5jaGVja1Jvd0xpbWl0''@;'; put 'put ''KCksdi51cGRhdGVTZXR0aW5ncyh7ZGF0YTp0aGlzLmRhdGFTb3VyY2UsY29sSGVhZGVyczp0aGlzLmhlYWRlckNvbHVtbnMsY29sdW1uczp0aGlzLmNlbGxWYWxpZGF0aW9uLGhlaWdodDp0aGlzLmhvdFRhYmxlLmhlaWdodCxzdHJldGNoSDoiYWxsIixyZWFkT25seTp0aGlzLmhvdFRhYmxl''@;'; put 'put ''LnJlYWRPbmx5LGhpZGRlbkNvbHVtbnM6e2luZGljYXRvcnM6ITAsY29sdW1uczp0aGlzLmRjVmFsaWRhdG9yLmdldEhpZGRlbkNvbHVtbnMoKX0sbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oSSxaKXtyZXR1cm4gMD09PVo/NjA6ST41MDA/NTAwOkl9LG1hbnVhbENvbHVtbkZyZWV6ZTohMSxt''@;'; put 'put ''dWx0aUNvbHVtblNvcnRpbmc6ITAsbWFudWFsQ29sdW1uUmVzaXplOiEwLGZpbHRlcnM6ITEsbWFudWFsUm93UmVzaXplOiEwLHZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0OjUwLHJvd0hlYWRlcnM6ST0+IiAiLHJvd0hlYWRlcldpZHRoOjE1LHJvd0hlaWdodHM6MjQsbWF4Um93czp0aGlz''@;'; put 'put ''LmFwcFNlcnZpY2UuZGVtb0xpbWl0cy5yb3dzX2FsbG93ZWR8fDEvMCxpbnZhbGlkQ2VsbENsYXNzTmFtZToiaHRJbnZhbGlkIixkcm9wZG93bk1lbnU6e2l0ZW1zOnttYWtlX3JlYWRfb25seTp7bmFtZToibWFrZV9yZWFkX29ubHkifSxhbGlnbm1lbnQ6e25hbWU6ImFsaWdubWVudCJ9LHNw''@;'; put 'put ''MTp7bmFtZToiLS0tLS0tLS0tIn0saW5mbzp7bmFtZToidGVzdCBpbmZvIixyZW5kZXJlcjooSSxaLHVlLF9lLEJlLE5lKT0+e3ZhciBLZSxwdDtjb25zdCBPdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7bGV0ICR0LGZuPSJObyBpbmZvIGZvdW5kIjtpZih0aGlzLmhvdEluc3Rh''@;'; put 'put ''bmNlKXtjb25zdCBMbj10aGlzLmhvdEluc3RhbmNlLmdldFNlbGVjdGVkKCl8fFtdLGlyPUxuP0xuWzBdWzFdOi0xLG1yPW51bGw9PT0oS2U9dGhpcy5ob3RJbnN0YW5jZSl8fHZvaWQgMD09PUtlP3ZvaWQgMDpLZS5jb2xUb1Byb3AoaXIpOyR0PW51bGw9PT0ocHQ9dGhpcy4kZGF0YUZvcm1h''@;'; put 'put ''dHMpfHx2b2lkIDA9PT1wdD92b2lkIDA6cHQudmFyc1ttcl0sJHQmJihmbj1gTEFCRUw6ICR7bnVsbD09JHQ/dm9pZCAwOiR0LmxhYmVsfTxicj5UWVBFOiAke251bGw9PSR0P3ZvaWQgMDokdC50eXBlfTxicj5MRU5HVEg6ICR7bnVsbD09JHQ/dm9pZCAwOiR0Lmxlbmd0aH08YnI+Rk9STUFU''@;'; put 'put ''OiAke251bGw9PSR0P3ZvaWQgMDokdC5mb3JtYXR9YCl9cmV0dXJuIE90LmlubmVySFRNTD1mbixPdH19fX0sZGF0YVNjaGVtYTp0aGlzLmhvdERhdGFTY2hlbWEsY29udGV4dE1lbnU6dGhpcy5ob3RUYWJsZS5zZXR0aW5ncy5jb250ZXh0TWVudSxjdXJyZW50SGVhZGVyQ2xhc3NOYW1lOiJj''@;'; put 'put ''dXN0b21IIixhZnRlckdldENvbEhlYWRlcjooSSxaKT0+e2NvbnN0IHVlPXRoaXMuY29sdW1uSGVhZGVyW0ldLF9lPXVlJiZ0aGlzLmlzQ29sUGsodWUpLEJlPXVlJiZ0aGlzLmlzUmVhZG9ubHlDb2wodWUpO19lJiZaLmNsYXNzTGlzdC5hZGQoInByaW1hcnlLZXlIZWFkZXJTdHlsZSIpLEJl''@;'; put 'put ''JiYhX2UmJlouY2xhc3NMaXN0LmFkZCgicmVhZG9ubHlDZWxsIiksMD09PUkmJlouY2xhc3NMaXN0LmFkZCgiZmlyc3RDb2x1bW5IZWFkZXJTdHlsZSIpfSxhZnRlckdldENlbGxNZXRhOihJLFosdWUpPT57WiYmdGhpcy5pc1JlYWRvbmx5Q29sKFopJiYodWUuY2xhc3NOYW1lPSJyZWFkb25s''@;'; put 'put ''eUNlbGwiKX19LCExKSx0aGlzLmhvdFRhYmxlLmhpZGRlbj0hMSx0aGlzLnRvZ2dsZUhvdFBsdWdpbigiY29udGV4dE1lbnUiLCExKSx0aGlzLnF1ZXJ5VGV4dD1oLmRhdGEuc2FzcGFyYW1zWzBdLkZJTFRFUl9URVhULHRoaXMuY29sdW1uSGVhZGVyPWguZGF0YS5zYXNwYXJhbXNbMF0uQ09M''@;'; put 'put ''SEVBREVSUy5zcGxpdCgiLCIpLHRoaXMuY29sdW1uSGVhZGVyWzBdPSJEZWxldGU/Iix0aGlzLnJlYWRPbmx5RmllbGRzPWguZGF0YS5zYXNwYXJhbXNbMF0uUEtDTlQ7bGV0IEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvdEluc3RhbmNlIik7QyYmQy5hZGRFdmVudExpc3RlbmVyKCJt''@;'; put 'put ''b3VzZWRvd24iLEk9Pnt0aGlzLnVwbG9hZFByZXZpZXd8fHRoaXMuaG90Q2xpY2tlZCgpLHNldFRpbWVvdXQoKCk9PntsZXQgWj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZGVidWctc3dpdGNoLWl0ZW0iKXx8dm9pZCAwO1omJlouY2xpY2soKX0sMTAwKX0pLHYuYWRkSG9vaygiYWZ0ZXJT''@;'; put 'put ''ZWxlY3Rpb24iLChJLFosdWUsX2UsQmUsTmUpPT57ST09PXVlJiZaPT09X2UmJiExPT09dGhpcy5ob3RUYWJsZS5yZWFkT25seSYmdGhpcy5keW5hbWljQ2VsbFZhbGlkYXRpb24oSSxaKX0pLHYuYWRkSG9vaygiYmVmb3JlS2V5RG93biIsST0+e2NvbnN0IFo9dGhpcy5ob3RJbnN0YW5jZS5n''@;'; put 'put ''ZXRTZWxlY3RlZCgpLHVlPVomJlpbMF07aWYodWUpe2NvbnN0IF9lPXVlWzBdLE5lPXVlWzFdLEtlPXVlWzNdO2lmKF9lPT09dWVbMl0mJk5lPT09S2Upe2NvbnN0IHB0PXRoaXMuaG90SW5zdGFuY2UuZ2V0Q2VsbE1ldGEoX2UsTmUpO3B0JiYhMT09PXB0LmZpbHRlciYmdGhpcy5ob3RJbnN0''@;'; put 'put ''YW5jZS5zZXRDZWxsTWV0YShfZSxOZSwiZmlsdGVyIiwhMCl9fX0pLHYuYWRkSG9vaygiYWZ0ZXJDaGFuZ2UiLChJLFopPT57aWYoImVkaXQiPT09Wil7Y29uc3QgdWU9dGhpcy5ob3RJbnN0YW5jZSxfZT1JWzBdWzBdLEJlPUlbMF1bMV0sTmU9dWUucHJvcFRvQ29sKEJlKSxLZT11ZS5nZXRD''@;'; put 'put ''ZWxsTWV0YShfZSxOZSk7S2UmJiExPT09S2UuZmlsdGVyJiZ1ZS5zZXRDZWxsTWV0YShfZSxOZSwiZmlsdGVyIiwhMCksdGhpcy5leGVjdXRlRHluYW1pY0NlbGxWYWxpZGF0aW9uSWZBcHBsaWNhYmxlKEJlLE5lLF9lKX19KSx2LmFkZEhvb2soImFmdGVyUmVuZGVyIixJPT57dGhpcy5ldmVu''@;'; put 'put ''dFNlcnZpY2UuZGlzcGF0Y2hFdmVudCgicmVzaXplIil9KSx2LmFkZEhvb2soImFmdGVyQ3JlYXRlUm93IiwoSSxaKT0+e2xldCB1ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIud3RIb2xkZXIiKTtzZXRUaW1lb3V0KCgpPT57dWUmJih1ZS5zY3JvbGxUb3A9dWUuc2Nyb2xsSGVpZ2h0KX0p''@;'; put 'put ''fSksdi5hZGRIb29rKCJiZWZvcmVQYXN0ZSIsKEksWik9Pntjb25zdCB1ZT1aWzBdLnN0YXJ0Q29sO0lbMF09SVswXS5tYXAoKF9lLEJlKT0+e3ZhciBOZSxLZTtjb25zdCBPdD0ibnVtIj09PShudWxsPT09KEtlPW51bGw9PT0oTmU9dGhpcy4kZGF0YUZvcm1hdHMpfHx2b2lkIDA9PT1OZT92''@;'; put 'put ''b2lkIDA6TmUudmFyc1t0aGlzLmNvbHVtbkhlYWRlclt1ZStCZV1dKXx8dm9pZCAwPT09S2U/dm9pZCAwOktlLnR5cGUpLCR0PSgwLGJ3LmlzU3BlY2lhbE1pc3NpbmcpKF9lKTtyZXR1cm4gT3QmJiFpc05hTihfZSkmJiEkdCYmKF9lKj0xKSxfZX0pfSksdi5hZGRIb29rKCJhZnRlclJlbW92''@;'; put 'put ''ZVJvdyIsKCk9Pnt0aGlzLmNoZWNrUm93TGltaXQoKX0pLHYuYWRkSG9vaygiYWZ0ZXJDcmVhdGVSb3ciLCgpPT57dGhpcy5jaGVja1Jvd0xpbWl0KCl9KSx0aGlzLnVwbG9hZFVybD0ic2VydmljZXMvZWRpdG9ycy9sb2FkZmlsZSIsbnVsbCE9PXRoaXMucmVjb3JkQWN0aW9uJiYoIkFERCI9''@;'; put 'put ''PT10aGlzLnJlY29yZEFjdGlvbj8odGhpcy5hZGRSZWNvcmQoKSx0aGlzLmVkaXRSZWNvcmQobnVsbCx0aGlzLmRhdGFTb3VyY2UubGVuZ3RoLTEsITApKToxPT09dGhpcy5kYXRhU291cmNlLmxlbmd0aCYmdGhpcy5lZGl0UmVjb3JkKG51bGwsMCkpLGguZGF0YS5xdWVyeS5sZW5ndGg+MCYm''@;'; put 'put ''KCJob21lIj09PW5pLnJvb3RQYXJhbXx8ImVkaXRvciI9PT1uaS5yb290UGFyYW0pJiYwPT09bmkuZWRpdG9yLmZpbHRlci5jbGF1c2VzLmxlbmd0aCYmKG5pLmVkaXRvci5maWx0ZXIucXVlcnk9dGhpcy5oZWxwZXJTZXJ2aWNlLmRlZXBDbG9uZShoLmRhdGEucXVlcnkpLG5pLmVkaXRvci5m''@;'; put 'put ''aWx0ZXIubGliZHM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMubGliTWVtLHRoaXMuc2FzU3RvcmVTZXJ2aWNlLmluaXRpYWxpemVHbG9iYWxGaWx0ZXJDbGF1c2UoImVkaXQiLHRoaXMuY29scykpLHYucmVuZGVyKCl9fXJldHVybiBkLmNudD0wLGQubm9uUGtDbnQ9MCxkLmxhc3RDZWxs''@;'; put 'put ''PTAsZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChSNyksS3QobXUpLEt0KHNjKSxLdChrZyksS3QoWGMpLEt0KFpsKSxLdChQdSksS3QoZzIpLEt0KGQxKSxLdChTTykpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtZWRpdG9yIl1d''@;'; put 'put ''LHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKHZvKEVtdCw3KSx2byh4bXQsNSksdm8oVG10LDUpLHZvKEltdCw1KSx2byhEbXQsNSkpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYuaHQ9eS5maXJzdCksSGkoeT0kaSgpKSYmKHYudXBsb2FkU3RhdGVyQ29tcExpc3Q9eSksSGko''@;'; put 'put ''eT0kaSgpKSYmKHYucXVlcnlGaWx0ZXJDb21wTGlzdD15KSxIaSh5PSRpKCkpJiYodi5ob3RJbnN0YW5jZUNvbXBMaXN0PXkpLEhpKHk9JGkoKSkmJih2LmZpbGVVcGxvYWRJbnB1dENvbXBMaXN0PXkpfX0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjE2Myx2YXJz''@;'; put 'put ''OjY5LGNvbnN0czpbWzEsImNvbnRlbnQtYXJlYSIsImQtZmxleCIsImNsci1mbGV4LWNvbHVtbiJdLFsibmcyRmlsZURyb3AiLCIiLDEsInJlbGF0aXZlIiwzLCJ1cGxvYWRlciIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsU3RhdGljQmFja2Ryb3AiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xy''@;'; put 'put ''TW9kYWxPcGVuIiwiZmlsZU92ZXIiLCJvbkZpbGVEcm9wIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWzEsIm1vZGFsLWJvZHkiXSxbMSwiZHJvcC1hcmVhIl0sWzEsImNsci1jb2wtbWQtMTIiXSxbMSwiY2xyLXJvdyIsImNhcmQtYmxvY2siLCJtdC0xNSIsImQt''@;'; put 'put ''ZmxleCIsImp1c3RpZnktY29udGVudC1iZXR3ZWVuIl0sWzEsImNsci1jb2wtbWQtYXV0byJdLFsxLCJlbmNvZGluZy1ibG9jayJdLFsiY2xySW5saW5lIiwiIiwxLCJtdC0wLWkiXSxbInR5cGUiLCJyYWRpbyIsImNsclJhZGlvIiwiIiwidmFsdWUiLCJVVEYtOCIsIm5hbWUiLCJlbmNvZGlu''@;'; put 'put ''ZyIsMywibmdNb2RlbCIsImRpc2FibGVkIiwibmdNb2RlbENoYW5nZSJdLFsidHlwZSIsInJhZGlvIiwiY2xyUmFkaW8iLCIiLCJ2YWx1ZSIsIldMQVRJTjEiLCJuYW1lIiwiZW5jb2RpbmciLDMsIm5nTW9kZWwiLCJkaXNhYmxlZCIsIm5nTW9kZWxDaGFuZ2UiXSxbImNsYXNzIiwiY2xyLWNv''@;'; put 'put ''bC1tZC0zIGZpbHRlckJ0biIsNCwibmdJZiJdLFsiY2xhc3MiLCJjbHItY29sLW1kLTMgZWRpdEJ0biIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1wcmltYXJ5IG1yLTAiLDMsImRpc2FibGVkIiwiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24i''@;'; put 'put ''LCJjbGFzcyIsImJ0biBidG4tcHJpbWFyeSBtci0wIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJleGNlbC1wYXJzaW5nIGNsci1jb2wtbWQtMTIiLDQsIm5nSWYiXSxbMSwibW9kYWwtZm9vdGVyIl0sWzMsImN1cnJlbnRSZWNvcmQiLCJyZWNvcmRBY3Rpb24iLCJsaWJkcyIsInF1''@;'; put 'put ''ZXJ5RmlsdGVyIiwiZmlsdGVyIiwic3VibWl0TG9hZGluZyIsImhlYWRlclBrcyIsImNlbGxWYWxpZGF0aW9uIiwiY3VycmVudFJlY29yZEluZGV4IiwiY3VycmVudFJlY29yZExvYWRpbmdzIiwiY3VycmVudFJlY29yZEVycm9ycyIsImN1cnJlbnRSZWNvcmRWYWxpZGF0b3IiLCJvblJlY29y''@;'; put 'put ''ZENoYW5nZSIsIm9uUmVjb3JkSW5wdXRGb2N1c2VkIiwib25SZWNvcmRFZGl0Q2xvc2UiLCJvbk5leHRSZWNvcmQiLCJvblByZXZpb3VzUmVjb3JkIiw0LCJuZ0lmIl0sWzEsImNsci1mbGV4LTEiXSxbImh0IiwiIl0sWyJjbGFzcyIsInByb2dyZXNTdGF0aWMgcHJvZ3Jlc3MgbG9vcCIsNCwi''@;'; put 'put ''bmdJZiJdLFsiYXBwRHJhZ05kcm9wIiwiIiwxLCJjYXJkIiwiYm9yZGVyLTAiLCJib3gtc2hhZG93LW5vbmUtaSIsInBvc2l0aW9uLXJlbGF0aXZlIiwiaC0xMDAiLCJkLWZsZXgiLCJjbHItZmxleC1jb2x1bW4iLCJiYWNrZ3JvdW5kLXRyYW5zcGFyZW50IiwzLCJmaWxlRHJhZ2dlZE92ZXIi''@;'; put 'put ''XSxbMSwiY2FyZC1oZWFkZXIiLCJjbHItcm93IiwiYnV0dG9uQmFyIiwiaGVhZGVyQmFyIiwiY2xyLWZsZXgtbWQtcm93IiwiY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIiLCJjbHItanVzdGlmeS1jb250ZW50LWxnLWVuZCJdLFsiY2xhc3MiLCJjbHItY29sLTEyIGNsci1jb2wtbGctNCBi''@;'; put 'put ''YWNrQnRuIiw0LCJuZ0lmIl0sWzEsImNsci1jb2wtMTIiLCJjbHItY29sLWxnLTQiLCJkLWZsZXgiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsiY2xhc3MiLCJlZGl0b3ItdGl0bGUgdGV4dC1jZW50ZXIgbXQtMC1pIiw0LCJuZ1ZhciJdLFsiY2xhc3MiLCJjbHItY29s''@;'; put 'put ''LTEyIGNsci1jb2wtbGctNCBidG5DdHJsIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1jb2wtbWQtMTIgaW5mb0JhciIsNCwibmdJZiJdLFsxLCJjYXJkLWJsb2NrIiwicC0wIiwiY2xyLWZsZXgtMSIsImJhY2tncm91bmQtdHJhbnNwYXJlbnQiLDMsIm5nQ2xhc3MiXSxbImNsYXNzIiwiY2Fy''@;'; put 'put ''ZC10ZXh0Iiw0LCJuZ0lmIl0sWzEsImNhcmQtdGV4dCIsImhvdEVkaXRvciIsImgtMTAwIiwiZC1mbGV4IiwiY2xyLWZsZXgtY29sdW1uIiwiYmFja2dyb3VuZC10cmFuc3BhcmVudCJdLFsxLCJob3Qtd3JhcHBlciIsImNsci1mbGV4LTEiXSxbImhvdElkIiwiaG90SW5zdGFuY2UiLCJpZCIs''@;'; put 'put ''ImhvdFRhYmxlIiwxLCJlZGl0LWhvdCIsMywibGljZW5zZUtleSJdLFsiaG90SW5zdGFuY2UiLCIiXSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tc20gYnRuLXN1Y2Nlc3MgbXQtNS1pIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJtb2RhbCIsNCwibmdJZiJdLFsz''@;'; put 'put ''LCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWyJjbGFzcyIsImQtYmxvY2si''@;'; put 'put ''LDQsIm5nRm9yIiwibmdGb3JPZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwibW9kYWwgei1pbmRleC1oaWdoZXN0Iiw0LCJuZ0lmIl0sWzMsImNsck1vZGFsT3BlbiIsImNsck1vZGFsU2l6ZSIsImNsck1vZGFsQ2xvc2FibGUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwi''@;'; put 'put ''bW9kYWwtdGl0bGUiLCJjZW50ZXIiLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWRhcmtlci1ncmF5Il0sWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91''@;'; put 'put ''dGxpbmUiLDMsImNsaWNrIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIs''@;'; put 'put ''MSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiY2xpY2siXSxbMSwibW9kYWwtYm9keSIsImQtZmxleCIsImNsci1qdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWzEsIm0tMCJdLFsiZGF0YS1scGlnbm9yZSIsInRydWUiLCJhdXRvY29tcGxldGUiLCJvZmYiLCJpZCIs''@;'; put 'put ''ImZpbGVQYXNzd29yZElucHV0IiwidHlwZSIsInRleHQiLDEsImNsci1pbnB1dCIsImRpc2FibGUtcGFzc3dvcmQtbWFuYWdlciJdLFsiZmlsZVBhc3N3b3JkSW5wdXQiLCIiXSxbImNsYXNzIiwibS0wIGNvbG9yLXJlZCIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRu''@;'; put 'put ''LXNtIiwiYnRuLXN1Y2Nlc3Mtb3V0bGluZSIsMywiZGlzYWJsZWQiLCJjbGljayJdLFszLCJvcGVuIiwiZHNtZXRhIiwib3BlbkNoYW5nZSJdLFsxLCJjbHItY29sLW1kLTMiLCJmaWx0ZXJCdG4iXSxbMSwiZmlsdGVyQnRuIiwidy0xMDAiXSxbImZvciIsImZpbGUtdXBsb2FkIiwxLCJidG4i''@;'; put 'put ''LCJidG4tc20iLCJidG4tb3V0bGluZSIsInByb2ZpbGUtYnV0dG9ucyIsInctMTAwIl0sWyJoaWRkZW4iLCIiLCJpZCIsImZpbGUtdXBsb2FkIiwidHlwZSIsImZpbGUiLCJuZzJGaWxlU2VsZWN0IiwiIiwzLCJ1cGxvYWRlciIsImNoYW5nZSJdLFsiZmlsZVVwbG9hZElucHV0IiwiIl0sWzEs''@;'; put 'put ''ImNsci1jb2wtbWQtMyIsImVkaXRCdG4iXSxbMSwiYnRuVmlldyIsImJ0biIsImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwicHJvZmlsZS1idXR0b25zIiwidy0xMDAiLDMsImRpc2FibGVkIiwiY2xpY2siXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwibXItMCIsMywi''@;'; put 'put ''ZGlzYWJsZWQiLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXByaW1hcnkiLCJtci0wIiwzLCJjbGljayJdLFsxLCJleGNlbC1wYXJzaW5nIiwiY2xyLWNvbC1tZC0xMiJdLFsidXBsb2FkU3RhdGVyIiwiIl0sWzMsImN1cnJlbnRSZWNvcmQiLCJyZWNvcmRBY3Rpb24i''@;'; put 'put ''LCJsaWJkcyIsInF1ZXJ5RmlsdGVyIiwiZmlsdGVyIiwic3VibWl0TG9hZGluZyIsImhlYWRlclBrcyIsImNlbGxWYWxpZGF0aW9uIiwiY3VycmVudFJlY29yZEluZGV4IiwiY3VycmVudFJlY29yZExvYWRpbmdzIiwiY3VycmVudFJlY29yZEVycm9ycyIsImN1cnJlbnRSZWNvcmRWYWxpZGF0''@;'; put 'put ''b3IiLCJvblJlY29yZENoYW5nZSIsIm9uUmVjb3JkSW5wdXRGb2N1c2VkIiwib25SZWNvcmRFZGl0Q2xvc2UiLCJvbk5leHRSZWNvcmQiLCJvblByZXZpb3VzUmVjb3JkIl0sWzEsInByb2dyZXNTdGF0aWMiLCJwcm9ncmVzcyIsImxvb3AiXSxbMSwiY2xyLWNvbC0xMiIsImNsci1jb2wtbGct''@;'; put 'put ''NCIsImJhY2tCdG4iXSxbMSwiYnRuIiwiYnRuLXNtIiwzLCJyb3V0ZXJMaW5rIl0sWyJzaGFwZSIsImNhcmV0IiwiZGlyIiwibGVmdCIsInNpemUiLCIyMCJdLFsxLCJlZGl0b3ItdGl0bGUiLCJ0ZXh0LWNlbnRlciIsIm10LTAtaSJdLFsic2hhcGUiLCJpbmZvLWNpcmNsZSIsInNpemUiLCIy''@;'; put 'put ''NCIsMSwiaXMtaGlnaGxpZ2h0IiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsImJvbHQiLCJjbGFzcyIsImNvbG9yLXllbGxvdyIsNCwibmdJZiJdLFsxLCJtci0xMCIsMywicm91dGVyTGluayJdLFsic2hhcGUiLCJib2x0IiwxLCJjb2xvci15ZWxsb3ciXSxbMSwiY2xy''@;'; put 'put ''LWNvbC0xMiIsImNsci1jb2wtbGctNCIsImJ0bkN0cmwiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0blZpZXciLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1ibG9jayIsMywiY2xpY2siXSxbInNoYXBlIiwiZmlsdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20i''@;'; put 'put ''LCJidG4tcHJpbWFyeSIsImJ0bi1ibG9jayIsMywiY2xpY2siXSxbInNoYXBlIiwibm90ZSJdLFsidHlwZSIsImJ1dHRvbiIsImNsYXNzIiwiYnRuIGJ0bi1zbSBidG4tc3VjY2VzcyBidG4tYmxvY2sgbXItMCIsMywiY2xpY2siLDQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIs''@;'; put 'put ''ImJ0bi1zbSIsImJ0bi1zdWNjZXNzIiwiYnRuLWJsb2NrIiwibXItMCIsMywiY2xpY2siXSxbInNoYXBlIiwidXBsb2FkIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1vdXRsaW5lLWRhbmdlciIsMywiY2xpY2siXSxbInNoYXBlIiwidGltZXMi''@;'; put 'put ''XSxbInR5cGUiLCJidXR0b24iLCJjbGFzcyIsImJ0biBidG4tc20gYnRuLXN1Y2Nlc3MiLDMsImNsckxvYWRpbmciLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJjaGVjayIsInNpemUiLCIyMCJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLDMs''@;'; put 'put ''ImNsckxvYWRpbmciLCJjbGljayJdLFsic2hhcGUiLCJwbHVzIiwic2l6ZSIsIjE2Il0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4taWNvbiIsImJ0bi1vdXRsaW5lLWRhbmdlciIsImJ0bi11cGxvYWQtcHJldmlldyIsMywiY2xpY2siXSxbInR5cGUiLCJidXR0b24i''@;'; put 'put ''LCJjbGFzcyIsImJ0biBidG4tc20gYnRuLXByaW1hcnkgYnRuLXVwbG9hZC1wcmV2aWV3IiwzLCJjbGljayIsNCwibmdJZiJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXN1Y2Nlc3MiLCJwcmV2aWV3LXN1Ym1pdCIsMywiY2xyTG9hZGluZyIsImNsaWNrIl0sWyJ0''@;'; put 'put ''eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsImJ0bi11cGxvYWQtcHJldmlldyIsMywiY2xpY2siXSxbMSwiY2xyLWNvbC1tZC0xMiIsImluZm9CYXIiXSxbMSwiY2FyZC10ZXh0Il0sWzEsImgtNzB2aCIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1jZW50''@;'; put 'put ''ZXIiLCJmbGV4LWNvbHVtbiIsImFsaWduLWl0ZW1zLWNlbnRlciJdLFsxLCJzcGlubmVyIl0sWyJzaGFwZSIsImVycm9yLXN0YW5kYXJkIiwxLCJlcnJvci1pY29uIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2VzcyIsIm10LTUtaSIsMywiY2xpY2siXSxb''@;'; put 'put ''MSwibW9kYWwiXSxbInJvbGUiLCJkaWFsb2ciLCJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWRpYWxvZyIsIm1vZGFsLWxnIl0sWzEsIm1vZGFsLWNvbnRlbnQiXSxbMSwibW9kYWwtaGVhZGVyIl0sWyJhcmlhLWxhYmVsIiwiQ2xvc2UiLCJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSJd''@;'; put 'put ''LFsiYXJpYS1oaWRkZW4iLCJ0cnVlIiwic2hhcGUiLCJjbG9zZSJdLFsiY2xhc3MiLCJjbHItb2Zmc2V0LW1kLTIgY2xyLWNvbC1tZC04Iiw0LCJuZ0lmIl0sWzEsIm1vZGFsLWZvb3RlciIsImp1c3RpZnktY29udGVudC1jZW50ZXItaSJdLFsiaWQiLCJzdWJtaXRCdG4iLCJ0eXBlIiwic3Vi''@;'; put 'put ''bWl0IiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwibS0wIiwzLCJkaXNhYmxlZCIsImNsaWNrIl0sWyJpZCIsImNhbmNlbFN1Ym1pdEJ0biIsInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwzLCJjbGljayJdLFsxLCJjbHItb2Zm''@;'; put 'put ''c2V0LW1kLTIiLCJjbHItY29sLW1kLTgiXSxbMSwiZm9ybS1ncm91cCJdLFsiZm9yIiwiZm9ybUZpZWxkc184Il0sWyJ0eXBlIiwidGV4dCIsImlkIiwiZm9ybUZpZWxkc184Iiwicm93cyIsIjUiLDEsInctMTAwIiwzLCJuZ01vZGVsIiwiZGlzYWJsZWQiLCJ2YWx1ZSIsIm5nTW9kZWxDaGFu''@;'; put 'put ''Z2UiXSxbMSwiZC1ibG9jayJdLFsxLCJtb2RhbCIsInotaW5kZXgtaGlnaGVzdCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtZGlhbG9nIl0sWyJxdWVyeUZpbHRlciIsIiJdLFsxLCJtLTAiLCJjb2xvci1yZWQiXV0sdGVtcGxhdGU6ZnVuY3Rpb24o''@;'; put 'put ''aCx2KXtpZigxJmgpe2NvbnN0IHk9d2koKTtudCgwLCJkaXYiLDApKDEsImNsci1tb2RhbCIsMSksR24oImZpbGVPdmVyIixmdW5jdGlvbihJKXtyZXR1cm4gdi5maWxlT3ZlckJhc2UoSSl9KSgib25GaWxlRHJvcCIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZ2V0RmlsZURlc2MoSSwhMCl9KSgi''@;'; put 'put ''Y2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5zaG93VXBsb2FkTW9kYWw9SX0pLG50KDIsImgzIiwyKSxZdCgzLCJVcGxvYWQgRmlsZSIpLG90KCksbnQoNCwiZGl2IiwzKSg1LCJkaXYiLDQpKDYsInNwYW4iKSxZdCg3LCJEcm9wIGZpbGUgYW55d2hlcmUgdG8gdXBs''@;'; put 'put ''b2FkISIpLG90KCkoKSxudCg4LCJkaXYiLDUpKDksImRpdiIsNikoMTAsImRpdiIsNykoMTEsImRpdiIsOCkoMTIsImNsci1yYWRpby1jb250YWluZXIiLDkpKDEzLCJjbHItcmFkaW8td3JhcHBlciIpKDE0LCJpbnB1dCIsMTApLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1''@;'; put 'put ''cm4gdi5lbmNvZGluZz1JfSksb3QoKSxudCgxNSwibGFiZWwiKSxZdCgxNiwiVVRGLTgiKSxvdCgpKCksbnQoMTcsImNsci1yYWRpby13cmFwcGVyIikoMTgsImlucHV0IiwxMSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LmVuY29kaW5nPUl9KSxvdCgpLG50KDE5''@;'; put 'put ''LCJsYWJlbCIpLFl0KDIwLCJXTEFUSU4xIiksb3QoKSgpKCkoKSgpLHJuKDIxLExtdCw2LDEsImRpdiIsMTIpLHJuKDIyLE9tdCwzLDEsImRpdiIsMTMpLG50KDIzLCJkaXYiLDcpLHJuKDI0LFJtdCwyLDEsImJ1dHRvbiIsMTQpLHJuKDI1LEJtdCwyLDAsImJ1dHRvbiIsMTUpLG90KCkscm4o''@;'; put 'put ''MjYsUG10LDMsMCwiZGl2IiwxNiksb3QoKSgpKCksQ3IoMjcsImRpdiIsMTcpLG90KCkscm4oMjgsRm10LDEsMTIsImFwcC1lZGl0LXJlY29yZCIsMTgpLG50KDI5LCJkaXYiLDE5LDIwKSxybigzMSxIbXQsMiwwLCJkaXYiLDIxKSxudCgzMiwiZGl2IiwyMiksR24oImZpbGVEcmFnZ2VkT3Zl''@;'; put 'put ''ciIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vblNob3dVcGxvYWRNb2RhbCgpfSksbnQoMzMsImRpdiIsMjMpLHJuKDM0LFZtdCw0LDIsImRpdiIsMjQpLG50KDM1LCJkaXYiLDI1KSxybigzNixXbXQsNyw1LCJoNCIsMjYpLG90KCkscm4oMzcsJG10LDQsMywiZGl2IiwyNykscm4oMzgscW10LDUs''@;'; put 'put ''MSwiZGl2IiwyOCksb3QoKSxudCgzOSwiZGl2IiwyOSkscm4oNDAsbjd0LDQsMiwiZGl2IiwzMCksbnQoNDEsImRpdiIsMzEpKDQyLCJkaXYiLDMyKSxDcig0MywiaG90LXRhYmxlIiwzMywzNCksb3QoKSxybig0NSxyN3QsMywwLCJidXR0b24iLDM1KSxybig0NixvN3QsMTUsNSwiZGl2Iiwz''@;'; put 'put ''NiksbnQoNDcsImNsci1tb2RhbCIsMzcpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LmJhZEVkaXQ9SX0pLG50KDQ4LCJoMyIsMiksWXQoNDkpLG90KCksbnQoNTAsImRpdiIsMykoNTEsInAiKSxZdCg1Miksb3QoKSgpLG50KDUzLCJkaXYiLDE3KSg1NCwi''@;'; put 'put ''YnV0dG9uIiwzOCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmJhZEVkaXQ9ITF9KSxZdCg1NSwiIE9rICIpLG90KCkoKSgpLG50KDU2LCJjbHItbW9kYWwiLDM3KSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5wa051bGw9SX0pLG50KDU3LCJo''@;'; put 'put ''MyIsMiksWXQoNTgsIkVycm9yIiksb3QoKSxudCg1OSwiZGl2IiwzKSg2MCwicCIpLFl0KDYxLCIgTnVsbCB2YWx1ZXMgb3IgaW5jb3JyZWN0IGRhdGEgdHlwZXMgY2Fubm90IGJlIHN1Ym1pdHRlZCBmb3IgUHJpbWFyeSBLZXkgY29sdW1ucyAiKSxvdCgpKCksbnQoNjIsImRpdiIsMTcpKDYz''@;'; put 'put ''LCJidXR0b24iLDM5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucGtOdWxsPSExLHYuYmFkRWRpdD0hMX0pLFl0KDY0LCIgT2sgIiksb3QoKSgpKCksbnQoNjUsImNsci1tb2RhbCIsMzcpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2Lm5vUGtO''@;'; put 'put ''dWxsPUl9KSxudCg2NiwiaDMiLDIpLFl0KDY3LCJFcnJvciIpLG90KCksbnQoNjgsImRpdiIsMykoNjksInAiKSxZdCg3MCwiSW5jb3JyZWN0IGRhdGEgdHlwZXMgaW4gbm9uLVByaW1hcnkgS2V5IGNvbHVtbnMiKSxvdCgpKCksbnQoNzEsImRpdiIsMTcpKDcyLCJidXR0b24iLDM5KSxHbigi''@;'; put 'put ''Y2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYubm9Qa051bGw9ITEsdi5iYWRFZGl0PSExfSksWXQoNzMsIiBPayAiKSxvdCgpKCkoKSxudCg3NCwiY2xyLW1vZGFsIiwzNyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucGtEdXBzPUl9KSxudCg3NSwiaDMi''@;'; put 'put ''LDIpLFl0KDc2LCJFcnJvciIpLG90KCksbnQoNzcsImRpdiIsMykoNzgsInAiKSxZdCg3OSwiIER1cGxpY2F0ZSB2YWx1ZXMgY2Fubm90IGJlIHN1Ym1pdHRlZCBmb3IgUHJpbWFyeSBLZXkgY29sdW1ucyAiKSxvdCgpLG50KDgwLCJwIiksWXQoODEsIkR1cGxpY2F0ZXMgZm91bmQ6Iiksb3Qo''@;'; put 'put ''KSxybig4MixhN3QsMyw0LCJzcGFuIiw0MCksb3QoKSxudCg4MywiZGl2IiwxNykoODQsImJ1dHRvbiIsMzkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5wa0R1cHM9ITF9KSxZdCg4NSwiIE9rICIpLG90KCkoKSgpLG50KDg2LCJjbHItbW9kYWwiLDM3KSxHbigiY2xyTW9kYWxP''@;'; put 'put ''cGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi50b29Mb25nPUl9KSxudCg4NywiaDMiLDIpLFl0KDg4LCJFcnJvciIpLG90KCksbnQoODksImRpdiIsMykoOTAsInAiKSxZdCg5MSwiIFRoZSBmb2xsb3dpbmcgY29sdW1ucyBoYXZlIHZhbHVlcyB0aGF0IGV4Y2VlZCBsZW5ndGggbGlt''@;'; put 'put ''aXRzOiAiKSxvdCgpLHJuKDkyLGw3dCwyLDMsInAiLDQxKSxvdCgpLG50KDkzLCJkaXYiLDE3KSg5NCwiYnV0dG9uIiwzOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnRvb0xvbmc9ITEsdi5jbGVhbkV4Y2VlZCgpfSksWXQoOTUsIiBPayAiKSxvdCgpKCkoKSgpKCkoKSgpKCks''@;'; put 'put ''cm4oOTYsczd0LDE0LDAsImRpdiIsNDIpLG50KDk3LCJjbHItbW9kYWwiLDQzKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5maWx0ZXI9SX0pLG50KDk4LCJoMyIsNDQpLFl0KDk5LCIgRmlsdGVyIGZvciB0YWJsZTogIiksbnQoMTAwLCJzcGFuIiksWXQo''@;'; put 'put ''MTAxKSxvdCgpKCksbnQoMTAyLCJkaXYiLDMpLHJuKDEwMyx1N3QsMiwwLCJhcHAtcXVlcnkiLDQ1KSxvdCgpLG50KDEwNCwiZGl2IiwxNykoMTA1LCJidXR0b24iLDQ2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVzZXRGaWx0ZXIoKX0pLFl0KDEwNiwiIHJlc2V0IGZpbHRl''@;'; put 'put ''ciAiKSxvdCgpLG50KDEwNywiYnV0dG9uIiw0NyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmZpbHRlcj0hMX0pLFl0KDEwOCwiIENhbmNlbCAiKSxvdCgpLG50KDEwOSwiYnV0dG9uIiw0OCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnNlbmRDbGF1c2UoKX0pLFl0''@;'; put 'put ''KDExMCwiIE9rICIpLG90KCkoKSgpLG50KDExMSwiY2xyLW1vZGFsIiwzNyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYucXVlcnlFcnI9SX0pLG50KDExMiwiaDMiLDIpLFl0KDExMywiRXJyb3IiKSxvdCgpLG50KDExNCwiZGl2IiwzKSgxMTUsInAiKSxZ''@;'; put 'put ''dCgxMTYpLG90KCkoKSxudCgxMTcsImRpdiIsMTcpKDExOCwiYnV0dG9uIiw0OSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LnF1ZXJ5RXJyPSExfSksWXQoMTE5LCIgQ2FuY2VsICIpLG90KCksbnQoMTIwLCJidXR0b24iLDM5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IHYucXVlcnlFcnI9ITF9KSxZdCgxMjEsIiBPayAiKSxvdCgpKCkoKSxudCgxMjIsImNsci1tb2RhbCIsNDMpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEkpe3JldHVybiB2LmRpc2NhcmRTb3VyY2VGaWxlPUl9KSxudCgxMjMsImgzIiw0NCksWXQoMTI0LCJXYXJuaW5nIiks''@;'; put 'put ''b3QoKSxudCgxMjUsImRpdiIsMyksWXQoMTI2LCIgVGhpcyBhY3Rpb24gd2lsbCBkaXNjYXJkIHRoZSBzb3VyY2UgZmlsZSBhbmQgaXQncyBsb2FkZWQgZGF0YSAiKSxudCgxMjcsImIiKSxZdCgxMjgpLG90KCksWXQoMTI5LCIgRG8geW91IHdpc2ggdG8gcHJvY2VlZD8gIiksb3QoKSxudCgx''@;'; put 'put ''MzAsImRpdiIsMTcpKDEzMSwiYnV0dG9uIiw0NyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmRpc2NhcmRTb3VyY2VGaWxlPSExfSksWXQoMTMyLCIgQ2FuY2VsICIpLG90KCksbnQoMTMzLCJidXR0b24iLDUwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZGlzY2Fy''@;'; put 'put ''ZFNvdXJjZUZpbGU9ITEsdi5kaXNjYXJkUGVuZGluZ0V4Y2VsKCEwKX0pLFl0KDEzNCwiIE9rICIpLG90KCkoKSgpLG50KDEzNSwiY2xyLW1vZGFsIiw0MyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9SX0pLG50KDEzNiwi''@;'; put 'put ''aDMiLDQ0KSxZdCgxMzcsIiBQYXNzd29yZCBQcm90ZWN0ZWQgRmlsZSAiKSxvdCgpLG50KDEzOCwiZGl2Iiw1MSkoMTM5LCJwIiw1MiksWXQoMTQwLCJQbGVhc2UgZW50ZXIgcGFzc3dvcmQ6Iiksb3QoKSxDcigxNDEsImlucHV0Iiw1Myw1NCksb3QoKSxudCgxNDMsImRpdiIsMTcpLHJuKDE0''@;'; put 'put ''NCxjN3QsMiwwLCJwIiw1NSksbnQoMTQ1LCJidXR0b24iLDQ3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9ITEsdi5maWxlUGFzc3dvcmRTdWJqZWN0Lm5leHQodm9pZCAwKX0pLFl0KDE0NiwiIENhbmNlbCB1cGxvYWQgIiksb3QoKSxudCgxNDcs''@;'; put 'put ''ImJ1dHRvbiIsNTYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdCh5KTtjb25zdCBJPXZhKDE0Mik7cmV0dXJuIHYuZmlsZVBhc3N3b3JkTW9kYWw9ITEsYSh2LmZpbGVQYXNzd29yZFN1YmplY3QubmV4dChJLnZhbHVlKSl9KSxZdCgxNDgsIiBVbmxvY2sgIiksb3QoKSgpKCksbnQoMTQ5LCJj''@;'; put 'put ''bHItbW9kYWwiLDQzKSxHbigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihJKXtyZXR1cm4gdi5tYW51YWxGaWxlRWRpdE1vZGFsPUl9KSxudCgxNTAsImgzIiw0NCksWXQoMTUxLCJXYXJuaW5nIiksb3QoKSxudCgxNTIsImRpdiIsMyksWXQoMTUzLCIgTWFudWFsbHkgZWRpdGluZyB0''@;'; put 'put ''aGlzIGRhdGEgd2lsbCBtZWFuIHRoZSBzb3VyY2UgZmlsZSAiKSxudCgxNTQsImIiKSxZdCgxNTUpLG90KCksWXQoMTU2LCIgd2lsbCBiZSBkaXNjYXJkZWQuIERvIHlvdSB3aXNoIHRvIHByb2NlZWQ/ICIpLG90KCksbnQoMTU3LCJkaXYiLDE3KSgxNTgsImJ1dHRvbiIsNDcpLEduKCJjbGlj''@;'; put 'put ''ayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5tYW51YWxGaWxlRWRpdE1vZGFsPSExfSksWXQoMTU5LCIgQ2FuY2VsICIpLG90KCksbnQoMTYwLCJidXR0b24iLDUwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYubWFudWFsRmlsZUVkaXRNb2RhbD0hMSx2LnByZXZpZXdUYWJsZUVkaXRD''@;'; put 'put ''b25maXJtKCl9KSxZdCgxNjEsIiBPayAiKSxvdCgpKCkoKSxudCgxNjIsImFwcC1kYXRhc2V0LWluZm8iLDU3KSxHbigib3BlbkNoYW5nZSIsZnVuY3Rpb24oSSl7cmV0dXJuIHYuZGF0YXNldEluZm89SX0pLG90KCl9aWYoMiZoKXtjb25zdCB5PXZhKDE0Mik7dXQoMSksVHQoInVwbG9hZGVy''@;'; put 'put ''Iix2LnVwbG9hZGVyKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxTdGF0aWNCYWNrZHJvcCIsITEpKCJjbHJNb2RhbENsb3NhYmxlIiwiVmFsaWRhdGluZy1EUSI9PT12LmV4Y2VsVXBsb2FkU3RhdGUpKCJjbHJNb2RhbE9wZW4iLHYuc2hvd1VwbG9hZE1vZGFsKSx1dCgxMyksVHQo''@;'; put 'put ''Im5nTW9kZWwiLHYuZW5jb2RpbmcpKCJkaXNhYmxlZCIsIiIhPXYuZmlsZW5hbWUpLHV0KDQpLFR0KCJuZ01vZGVsIix2LmVuY29kaW5nKSgiZGlzYWJsZWQiLCIiIT12LmZpbGVuYW1lKSx1dCgzKSxUdCgibmdJZiIsIXYuZXhjZWxGaWxlUGFyc2luZyYmIXYudXBsb2FkTG9hZGluZyksdXQo''@;'; put 'put ''MSksVHQoIm5nSWYiLCF2LmV4Y2VsRmlsZVBhcnNpbmcmJiF2LnVwbG9hZExvYWRpbmcpLHV0KDIpLFR0KCJuZ0lmIiwiVmFsaWRhdGluZyIhPT12LmV4Y2VsVXBsb2FkU3RhdGUpLHV0KDEpLFR0KCJuZ0lmIiwiVmFsaWRhdGluZy1EUSI9PT12LmV4Y2VsVXBsb2FkU3RhdGUpLHV0KDEpLFR0''@;'; put 'put ''KCJuZ0lmIix2LmV4Y2VsRmlsZVBhcnNpbmcpLHV0KDIpLFR0KCJuZ0lmIix2LmN1cnJlbnRFZGl0UmVjb3JkSW5kZXg+LTEpLHV0KDMpLFR0KCJuZ0lmIiwhdi52YWxpZGF0aW9uRG9uZSYmdi5zdWJtaXQpLHV0KDMpLFR0KCJuZ0lmIix2LnRhYmxlVHJ1ZSksdXQoMSksRmkoImNsci1jb2wt''@;'; put 'put ''bGctMTIiLCF2LnRhYmxlVHJ1ZSksdXQoMSksVHQoIm5nVmFyIixqMyg2MixmN3QsKG51bGw9PXYubGliZHM/bnVsbDp2LmxpYmRzLnNwbGl0KCIuIikpWzBdLChudWxsPT12LmxpYmRzP251bGw6di5saWJkcy5zcGxpdCgiLiIpKVsxXSkpLHV0KDEpLFR0KCJuZ0lmIix2LnRhYmxlVHJ1ZSks''@;'; put 'put ''dXQoMSksVHQoIm5nSWYiLCFjcyg2NSxETGUpLmluY2x1ZGVzKHYucXVlcnlUZXh0KSksdXQoMSksVHQoIm5nQ2xhc3MiLEdkKDY3LGg3dCwhY3MoNjYsRExlKS5pbmNsdWRlcyh2LnF1ZXJ5VGV4dCkpKSx1dCgxKSxUdCgibmdJZiIsIXYudGFibGVUcnVlKSx1dCgzKSxGaSgiaGlkZGVuIix2''@;'; put 'put ''LmhvdFRhYmxlLmhpZGRlbiksVHQoImxpY2Vuc2VLZXkiLHYuaG90VGFibGUubGljZW5zZUtleSksdXQoMiksVHQoIm5nSWYiLHYudGFibGVUcnVlJiYhdi5yZXN0cmljdGlvbnMucmVtb3ZlQWRkUmVjb3JkQnV0dG9uKSx1dCgxKSxUdCgibmdJZiIsdi5zdWJtaXQpLHV0KDEpLFR0KCJjbHJN''@;'; put 'put ''b2RhbE9wZW4iLHYuYmFkRWRpdCksdXQoMiksamkodi5iYWRFZGl0VGl0bGV8fCJFcnJvciIpLHV0KDMpLGppKHYuYmFkRWRpdENhdXNlKSx1dCg0KSxUdCgiY2xyTW9kYWxPcGVuIix2LnBrTnVsbCksdXQoOSksVHQoImNsck1vZGFsT3BlbiIsdi5ub1BrTnVsbCksdXQoOSksVHQoImNsck1v''@;'; put 'put ''ZGFsT3BlbiIsdi5wa0R1cHMpLHV0KDgpLFR0KCJuZ0Zvck9mIix2LmR1cGxpY2F0ZVBrSW5kZXhlcyksdXQoNCksVHQoImNsck1vZGFsT3BlbiIsdi50b29Mb25nKSx1dCg2KSxUdCgibmdGb3JPZiIsdi5leGNlZWRDZWxscyksdXQoNCksVHQoIm5nSWYiLHYubnVsbFZhcmlhYmxlcyksdXQo''@;'; put 'put ''MSksVHQoImNsck1vZGFsT3BlbiIsdi5maWx0ZXIpKCJjbHJNb2RhbFNpemUiLCJ4bCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksdXQoNCksSmkoIiAiLHYubGliZHMsIiAiKSx1dCgyKSxUdCgibmdJZiIsdi5maWx0ZXIpLHV0KDYpLFR0KCJjbHJMb2FkaW5nIix2LnN1Ym1pdExvYWRpbmcp''@;'; put 'put ''LHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYucXVlcnlFcnIpLHV0KDUpLGppKHYucXVlcnlFcnJNZXNzYWdlKSx1dCg2KSxUdCgiY2xyTW9kYWxPcGVuIix2LmRpc2NhcmRTb3VyY2VGaWxlKSgiY2xyTW9kYWxTaXplIiwieGwiKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDYpLGppKHYu''@;'; put 'put ''ZmlsZW5hbWUpLHV0KDcpLFR0KCJjbHJNb2RhbE9wZW4iLHYuZmlsZVBhc3N3b3JkTW9kYWwpKCJjbHJNb2RhbFNpemUiLCJtZCIpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksdXQoOSksVHQoIm5nSWYiLHYuZmlsZVVubG9ja0Vycm9yKSx1dCgzKSxUdCgiZGlzYWJsZWQiLHkudmFsdWUubGVu''@;'; put 'put ''Z3RoPDEpLHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYubWFudWFsRmlsZUVkaXRNb2RhbCkoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg2KSxqaSh2LmZpbGVuYW1lKSx1dCg3KSxUdCgib3BlbiIsdi5kYXRhc2V0SW5mbykoImRzbWV0YSIsdi5kc21l''@;'; put 'put ''dGEpfX0sZGVwZW5kZW5jaWVzOltsYyx4cyxObyxtMSxxaCxUcyxJcyxZNix2Nyx3bCxpZCxvZCxnbyx3LGF0LERmZSxnT2UsWUFlLHg1dCxFNXQsQXRlLEVMZSxTTGUsVmd0LHhMZSxDbXQsU210LE1tdCxJTGVdLHN0eWxlczpbIi5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9w''@;'; put 'put ''OjA7Ym9yZGVyOjB9LmJ1dHRvbkJhcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoycHggMTBweDthbGlnbi1pdGVtczpjZW50ZXJ9LnRlc3RSZWRbX25nY29udGVudC0lQ09NUCVde2NvbG9yOiNmZmY7YmFja2dyb3VuZDpyZ2JhKDI1NSwwLDAsLjgpIWltcG9ydGFudH1ob3QtdGFibGVb''@;'; put 'put ''X25nY29udGVudC0lQ09NUCVdICAgICAuZmlyc3RDb2x1bW5IZWFkZXJTdHlsZSBidXR0b24uY2hhbmdlVHlwZXtkaXNwbGF5Om5vbmV9aG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9faGlnaGxpZ2h0LnByaW1hcnlLZXlIZWFkZXJT''@;'; put 'put ''dHlsZSwgaG90LXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmhhbmRzb250YWJsZSB0aGVhZCB0aC5odF9faGlnaGxpZ2h0LnByaW1hcnlLZXlIZWFkZXJTdHlsZXtiYWNrZ3JvdW5kOnJnYmEoNDgsMTA3LDAsLjY5MDE5NjA3ODQpfWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0g''@;'; put 'put ''ICAgIC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDpyZ2JhKDQ4LDEwNywwLC40MzEzNzI1NDkpfWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIHRoLnJlYWRvbmx5Q2VsbCBkaXZ7b3BhY2l0eTouNH1ob3QtdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgICB0ZC5y''@;'; put 'put ''ZWFkb25seUNlbGx7b3BhY2l0eTouNX0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxNHB4O2JhY2tncm91bmQ6IzQ5NTk2Nztjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6M3B4O2ZvbnQtc2l6ZToxNnB4O2hlaWdodDozMHB4O3RleHQtb3ZlcmZs''@;'; put 'put ''b3c6ZWxsaXBzaXM7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV0gICBzcGFuW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDo4MCV9LmluZm9CYXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2hlaWdodDp1bnNldDt3aGl0ZS1z''@;'; put 'put ''cGFjZTpub3JtYWx9LmluZm9CYXJbX25nY29udGVudC0lQ09NUCVdOmhvdmVyICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6dW5zZXR9LnBrSGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiM2ODc2ODI7Y29sb3I6I2ZmZjttYXJnaW46LTFweH0uaGVhZGVyQmFy''@;'; put 'put ''W19uZ2NvbnRlbnQtJUNPTVAlXXthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDojZmZmZmZmO2JhY2tncm91bmQ6I2Y1ZjZmZX0uZXJyb3ItaWNvbltfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MzBweDtoZWlnaHQ6MzBweDtjb2xvcjpyZWR9LmJ0bkN0cmxbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNhcmQtaGVhZGVyW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXItYm90dG9tOjFweCBzb2xpZCB0cmFuc3BhcmVudH0uaGlkZGVuW19uZ2NvbnRlbnQtJUNPTVAlXXt2aXNpYmlsaXR5OmhpZGRlbn0ubXktZHJvcC16''@;'; put 'put ''b25lW19uZ2NvbnRlbnQtJUNPTVAlXXtib3JkZXI6c29saWQgMXB4IGxpZ2h0Z3JheTtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDp3aGl0ZXNtb2tlO2JveC1zaGFkb3c6aW5zZXQgMCAwIDRweCAycHggI2E3YTVhNTJiO2hlaWdodDo1MHZofS5udi1maWxlLW92ZXJbX25nY29udGVu''@;'; put 'put ''dC0lQ09NUCVde2JvcmRlcjpzb2xpZCAycHggZ3JlZW59LmZpbGUtZHJvcC10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcn1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCl7LnByb2dyZXNTdGF0aWNbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10''@;'; put 'put ''b3A6OXB4IWltcG9ydGFudH0ucHJvZ3Jlc3NbX25nY29udGVudC0lQ09NUCVdLCAucHJvZ3Jlc3Mtc3RhdGljW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDpjYWxjKDEwMCUgLSAxNHB4KX19LmhvdEVkaXRvcltfbmdjb250ZW50LSVDT01QJV17cG9zaXRpb246cmVsYXRpdmV9LmV4Y2VsLXBh''@;'; put 'put ''cnNpbmdbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5leGNlbC1wYXJzaW5nW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5kZXRhaWxzW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJn''@;'; put 'put ''aW46MDtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTQ1cHh9LmVkaXQtcmVjb3JkLXNwaW5uZXJbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjYpO3Bvc2l0''@;'; put 'put ''aW9uOmFic29sdXRlO3RvcDowcHg7Ym90dG9tOjBweDt3aWR0aDoxMDAlO3otaW5kZXg6NTAwfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KXsucHJvZ3Jlc1N0YXRpY1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDozMnB4IWltcG9ydGFudH0uY2FyZC1ibG9ja1tf''@;'; put 'put ''bmdjb250ZW50LSVDT01QJV0sIC5jYXJkLWZvb3Rlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzoxMHB4IDAgMH19LmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzowIC44cmVtIC44cmVtIWltcG9ydGFudDtwYWRkaW5nLXRvcDowfS5kcm9wLWFyZWFbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtib3R0b206MDtyaWdodDowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbjoxcHg7Ym9yZGVyOjJweCBkYXNoZWQgI2ZmZjt6LWluZGV4Oi0xfS5kcm9wLWFyZWFbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVdICAgc3Bhbltfbmdjb250ZW50LSVDT01QJV17Zm9udC1zaXplOjIwcHg7bWFyZ2luLXRvcDoyMHB4O2NvbG9yOiNmZmZ9I3N1Ym1pdEJ0bltfbmdjb250ZW50LSVDT01QJV0sICNjYW5jZWxTdWJtaXRCdG5bX25nY29udGVudC0lQ09NUCVde3dpZHRoOjE1MHB4fSJdfSksZH0pKCk7Y29u''@;'; put 'put ''c3QgZDd0PVt7cGF0aDoiOmxpYk1lbSIsY29tcG9uZW50OmpuZX0se3BhdGg6IjpsaWJNZW0vOmZpbHRlcklkIixjb21wb25lbnQ6am5lfSx7cGF0aDoiZWRpdC1yZWNvcmQvOmxpYk1lbSIsY29tcG9uZW50OmpuZX0se3BhdGg6ImVkaXQtcmVjb3JkLzpsaWJNZW0vOmZpbHRlcklkIixjb21w''@;'; put 'put ''b25lbnQ6am5lfV07bGV0IHA3dD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltiYSxYaC5mb3JDaGlsZChkN3QpLFhoXX0pLGR9KSgp''@;'; put 'put ''O3dMZSgpO2xldCBnN3Q9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1bW9kPWNvKHt0eXBlOmR9KSxkLlx1MDI3NWluaj1iMCh7aW1wb3J0czpbYmEsdGQscDd0LG5PLFQ1dCxkNmUuZm9yUm9vdCgpLHdtZSx5''@;'; put 'put ''bWUsSG5lLE5uZV19KSxkfSkoKTtmdW5jdGlvbiBtN3QoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwxMil9ZnVuY3Rpb24gdjd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWljb24iLDEzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgyKTty''@;'; put 'put ''ZXR1cm4geS5ncm91cFNlYXJjaD0iIixhKHkuZ3JvdXBMaXN0T25GaWx0ZXIoKSl9KSxvdCgpfX1mdW5jdGlvbiBBN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0Iiw4LDkpLEduKCJuZ01vZGVsQ2hhbmdlIixm''@;'; put 'put ''dW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLmdyb3VwU2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkuZ3JvdXBMaXN0T25GaWx0ZXIoKSl9KSxvdCgpLHJuKDQsbTd0LDEsMCwiY2xyLWljb24iLDEwKSxybig1LHY3dCwxLDAsImNsci1pY29u''@;'; put 'put ''IiwxMSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD12YSgzKSx2PVF0KCk7dXQoMiksVHQoIm5nTW9kZWwiLHYuZ3JvdXBTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIHk3dChkLGcpe2lm''@;'; put 'put ''KDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10cmVlLW5vZGUiLDE1KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgpLiRpbXBsaWNpdDtyZXR1cm4gYShRdCgpLmdyb3VwT25DbGljayh5KSl9KSxudCgxLCJwIiwxNiksQ3IoMiwiY2xyLWljb24iLDE3KSxZdCgz''@;'; put 'put ''KSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0LHY9UXQoKTtGaSgidGFibGUtYWN0aXZlIixoLkdST1VQVVJJPT09di5ncm91cFVyaSksdXQoMyksSmkoIiAiLGguR1JPVVBOQU1FLCIgIil9fWZ1bmN0aW9uIHc3dChkLGcpe2lmKDEmZCYmKEIwKDApLHJuKDEseTd0LDQs''@;'; put 'put ''MywiY2xyLXRyZWUtbm9kZSIsMTQpLFAwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxUdCgibmdJZiIsIWguaGlkZGVuKX19ZnVuY3Rpb24gYjd0KGQsZyl7MSZkJiYobnQoMCwiZGl2IiwxOCkoMSwic3BhbiIsMTkpLFl0KDIsIiBMb2FkaW5nLi4uICIpLG90KCkoKSl9ZnVu''@;'; put 'put ''Y3Rpb24gXzd0KGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2IiwyMSkoMSwiZGl2IiwyMikoMiwidGFibGUiLDI0KSgzLCJ0Ym9keSIpKDQsInRyIikoNSwidGQiLDI1KSg2LCJwIiwyNikoNywiYiIpLFl0KDgpLG90KCkoKSgpKCksbnQoOSwidHIiKSgxMCwidGQiLDI1KSgxMSwiaSIpLFl0KDEy''@;'; put 'put ''KSxvdCgpKCkoKSgpKCkoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoOCksamkoaC5ncm91cE5hbWUpLHV0KDQpLGppKGguZ3JvdXBEZXNjfHwibm8gZGVzY3JpcHRpb24iKX19ZnVuY3Rpb24gQzd0KGQsZyl7MSZkJiYobnQoMCwiaDUiKSxZdCgxLCJObyBNZW1iZXJzIFByZXNlbnQiKSxv''@;'; put 'put ''dCgpKX1mdW5jdGlvbiBrN3QoZCxnKXsxJmQmJihCMCgwKSxudCgxLCJ0ZCIsMzEpKDIsImIiKSxZdCgzLCJOQU1FIiksb3QoKSgpLG50KDQsInRkIiwzMSkoNSwiYiIpLFl0KDYsIkVNQUlMIiksb3QoKSgpLG50KDcsInRkIiwzMSkoOCwiYiIpLFl0KDksIkNSRUFURUQiKSxvdCgpKCksbnQo''@;'; put 'put ''MTAsInRkIiwzMikoMTEsImIiKSxZdCgxMiwiVVBEQVRFRCIpLG90KCkoKSxQMCgpKX1mdW5jdGlvbiBTN3QoZCxnKXsxJmQmJihCMCgwKSxudCgxLCJ0ZCIsMzEpKDIsImIiKSxZdCgzLCJJRCIpLG90KCkoKSxudCg0LCJ0ZCIsMzEpKDUsImIiKSxZdCg2LCJESVNQTEFZIE5BTUUiKSxvdCgp''@;'; put 'put ''KCksbnQoNywidGQiLDMxKSg4LCJiIiksWXQoOSwiVVNFUiBOQU1FIiksb3QoKSgpLFAwKCkpfWZ1bmN0aW9uIE03dChkLGcpe2lmKDEmZCYmKEIwKDApLG50KDEsInRkIiwzMiksWXQoMiksb3QoKSxudCgzLCJ0ZCIsMzIpLFl0KDQpLG90KCksbnQoNSwidGQiLDMyKSxZdCg2KSxvdCgpLG50''@;'; put 'put ''KDcsInRkIiwzMiksWXQoOCksb3QoKSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoKS4kaW1wbGljaXQ7dXQoMiksamkoaC5NRU1CRVJOQU1FKSx1dCgyKSxqaShoLkVNQUlMKSx1dCgyKSxqaShoLk1FTUJFUkNSRUFURUQpLHV0KDIpLGppKGguTUVNQkVSVVBEQVRFRCl9fWZ1bmN0aW9uIEU3dChk''@;'; put 'put ''LGcpe2lmKDEmZCYmKEIwKDApLG50KDEsInRkIiwzMiksWXQoMiksb3QoKSxudCgzLCJ0ZCIsMzIpLFl0KDQpLG90KCksbnQoNSwidGQiLDMyKSxZdCg2KSxvdCgpLFAwKCkpLDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdDt1dCgyKSxqaShoLklEKSx1dCgyKSxqaShoLkRJU1BMQVlOQU1F''@;'; put 'put ''KSx1dCgyKSxqaShoLlVTRVJOQU1FKX19ZnVuY3Rpb24geDd0KGQsZyl7aWYoMSZkJiYobnQoMCwidHIiLDMzKSxybigxLE03dCw5LDQsIm5nLWNvbnRhaW5lciIsNSkscm4oMixFN3QsNywzLCJuZy1jb250YWluZXIiLDUpLG90KCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PVF0KDQp''@;'; put 'put ''O1R0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi91c2Vycy8iKyhoLlVSSU1FTXx8aC5JRCkpLHV0KDEpLFR0KCJuZ0lmIix2LnNlcnZlclR5cGU9PT12LlNlcnZlclR5cGUuU2FzOSksdXQoMSksVHQoIm5nSWYiLHYuc2VydmVyVHlwZT09PXYuU2VydmVyVHlwZS5TYXNqcyl9fWZ1bmN0''@;'; put 'put ''aW9uIFQ3dChkLGcpe2lmKDEmZCYmKG50KDAsInRhYmxlIiwyOSkoMSwidGhlYWQiKSgyLCJ0ciIpLHJuKDMsazd0LDEzLDAsIm5nLWNvbnRhaW5lciIsNSkscm4oNCxTN3QsMTAsMCwibmctY29udGFpbmVyIiw1KSxvdCgpKCksbnQoNSwidGJvZHkiKSxybig2LHg3dCwzLDMsInRyIiwzMCks''@;'; put 'put ''b3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMyksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhc2pzKSx1dCgyKSxUdCgibmdGb3JPZiIsaC5ncm91cE1lbWJlcnMpfX1m''@;'; put 'put ''dW5jdGlvbiBJN3QoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiKSgxLCJoMyIpLFl0KDIpLG90KCkscm4oMyxDN3QsMiwwLCJoNSIsNSksbnQoNCwiZGl2IiwyNykscm4oNSxUN3QsNywzLCJ0YWJsZSIsMjgpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDIpLEppKCJNRU1CRVJTICgi''@;'; put 'put ''LGguZ3JvdXBNZW1iZXJDb3VudCwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLmdyb3VwTWVtYmVyQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLmdyb3VwTWVtYmVyQ291bnQpfX1mdW5jdGlvbiBEN3QoZCxnKXsxJmQmJihudCgwLCJoNSIpLFl0KDEsIk5vIE1lbWJlcnMgUHJlc2VudCIp''@;'; put 'put ''LG90KCkpfWZ1bmN0aW9uIEw3dChkLGcpe2lmKDEmZCYmKG50KDAsInRyIiwzMykoMSwidGQiLDMyKSxZdCgyKSxvdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvdXNlcnMvIitoLk1FTUJFUklEKSx1dCgyKSxqaShoLk1FTUJF''@;'; put 'put ''Uk5BTUUpfX1mdW5jdGlvbiBPN3QoZCxnKXtpZigxJmQmJihudCgwLCJ0YWJsZSIsMjkpKDEsInRoZWFkIikoMiwidHIiKSgzLCJ0ZCIpKDQsImIiKSxZdCg1KSxvdCgpKCkoKSgpLG50KDYsInRib2R5Iikscm4oNyxMN3QsMywyLCJ0ciIsMzApLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDMp''@;'; put 'put ''O3V0KDUpLEppKCJNRU1CRVJTICgiLGguZ3JvdXBNZW1iZXJDb3VudCwiKSIpLHV0KDIpLFR0KCJuZ0Zvck9mIixoLmdyb3VwTWVtYmVycyl9fWZ1bmN0aW9uIFI3dChkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIpKDEsImgzIiksWXQoMiksb3QoKSxybigzLEQ3dCwyLDAsImg1Iiw1KSxudCg0''@;'; put 'put ''LCJkaXYiLDI3KSxybig1LE83dCw4LDIsInRhYmxlIiwyOCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMiksamkoaC5ncm91cE5hbWUpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLmdyb3VwTWVtYmVyQ291bnQpLHV0KDIpLFR0KCJuZ0lmIiwwIT1oLmdyb3VwTWVtYmVyQ291bnQpfX1m''@;'; put 'put ''dW5jdGlvbiBCN3QoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiKSxybigxLF83dCwxMywyLCJkaXYiLDIwKSxudCgyLCJkaXYiLDIxKSgzLCJkaXYiLDIyKSg0LCJkaXYiLDIzKSxybig1LEk3dCw2LDMsImRpdiIsNSkscm4oNixSN3QsNiwzLCJkaXYiLDUpLENyKDcsImJyIiksb3QoKSgpKCko''@;'; put 'put ''KSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZSE9PWguU2VydmVyVHlwZS5TYXNWaXlhKSx1dCg0KSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlIT09aC5TZXJ2ZXJUeXBlLlNhc1ZpeWEpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZl''@;'; put 'put ''clR5cGUuU2FzVml5YSl9fWxldCBSTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuc2FzU2VydmljZT1oLHRoaXMuaGVscGVyU2VydmljZT12LHRoaXMucm91dGVyPXksdGhpcy5sb2NhdGlvbj1DLHRoaXMucm91dGU9SSx0aGlzLmdyb3VwU2VhcmNoPSIiLHRo''@;'; put 'put ''aXMucGFyYW1QcmVzZW50PSExLHRoaXMucGFyYW1VUkk9IiIsdGhpcy5ncm91cFVyaT0iIix0aGlzLmdyb3VwTmFtZT0iIix0aGlzLmdyb3VwRGVzYz0iIix0aGlzLnNhc2pzQ29uZmlnPW5ldyBVMy5TQVNqc0NvbmZpZyx0aGlzLmlzVml5YT0hMSx0aGlzLmxvYWRpbmc9ITEsdGhpcy5TZXJ2''@;'; put 'put ''ZXJUeXBlPUh1LkQsdGhpcy5zYXNqc0NvbmZpZz10aGlzLnNhc1NlcnZpY2UuZ2V0U2FzanNDb25maWcoKSx0aGlzLnNlcnZlclR5cGU9dGhpcy5zYXNTZXJ2aWNlLmdldFNlcnZlclR5cGUoKSwiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGUmJih0aGlzLmlzVml5YT0h''@;'; put 'put ''MCl9bmdPbkluaXQoKXtuaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy91c2VybmF2L2dyb3VwcyIsdm9pZCAwIT09dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpJiYodGhpcy5wYXJhbVByZXNlbnQ9ITAsdGhpcy5wYXJhbVVSST10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFt''@;'; put 'put ''cy51cmkpLG5pLnVzZXJuYXYuZ3JvdXBMaXN0JiYhdGhpcy5wYXJhbVByZXNlbnQ/KHRoaXMuZ3JvdXBzPW5pLnVzZXJuYXYuZ3JvdXBMaXN0LHRoaXMuZ3JvdXBTZWFyY2g9bmkudXNlcm5hdi5ncm91cFNlYXJjaCk6KHZvaWQgMD09PW5pLnVzZXJuYXYuZ3JvdXBMaXN0Pyh0aGlzLmxvYWRp''@;'; put 'put ''bmc9ITAsdGhpcy5pc1ZpeWE/ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL2dyb3Vwcz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGg9PmgudGV4dCgpKS50aGVuKGg9PntsZXQgeT1KU09OLnBhcnNl''@;'; put 'put ''KGgpLml0ZW1zLm1hcChDPT4oe0dST1VQVVJJOkMuaWQsR1JPVVBOQU1FOkMubmFtZSxHUk9VUERFU0M6Qy5kZXNjcmlwdGlvbn0pKTt0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cHM9eSxuaS51c2VybmF2Lmdyb3VwTGlzdD15fSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy9n''@;'; put 'put ''ZXRncm91cHMiLG51bGwpLnRoZW4oaD0+e3RoaXMubG9hZGluZz0hMSx0aGlzLmdyb3Vwcz1oLmdyb3VwcyxuaS51c2VybmF2Lmdyb3VwTGlzdD1oLmdyb3Vwc30pKToodGhpcy5ncm91cHM9bmkudXNlcm5hdi5ncm91cExpc3QsdGhpcy5ncm91cFNlYXJjaD1uaS51c2VybmF2Lmdyb3VwU2Vh''@;'; put 'put ''cmNoKSx0aGlzLnBhcmFtUHJlc2VudCYmKHRoaXMubG9hZGluZz0hMCx0aGlzLmlzVml5YT9mZXRjaCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCsiL2lkZW50aXRpZXMvZ3JvdXBzLyIrdGhpcy5wYXJhbVVSSSsiL21lbWJlcnM/bGltaXQ9MjAwMCIse2hlYWRlcnM6e0FjY2VwdDoiYXBw''@;'; put 'put ''bGljYXRpb24vanNvbiJ9fSkudGhlbihoPT5oLnRleHQoKSkudGhlbihoPT57bGV0IHY9SlNPTi5wYXJzZShoKTt0aGlzLmxvYWRpbmc9ITE7bGV0IHk9di5pdGVtcy5tYXAoQz0+KHtNRU1CRVJOQU1FOkMubmFtZSxNRU1CRVJJRDpDLmlkfSkpO3RoaXMuZ3JvdXBNZW1iZXJzPXksdGhpcy5n''@;'; put 'put ''cm91cE1lbWJlckNvdW50PXkubGVuZ3RoLHRoaXMuZ3JvdXBVcmk9dGhpcy5wYXJhbVVSSSx0aGlzLmdyb3VwTmFtZT10aGlzLnBhcmFtVVJJfSk6dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcm1lbWJlcnNieWdyb3VwIix7aXdhbnQ6W3tncm91cGlkOnRoaXMucGFyYW1V''@;'; put 'put ''Ukl9XX0pLnRoZW4odj0+e3RoaXMuZ3JvdXBNZW1iZXJzPXYuc2FzbWVtYmVycyx0aGlzLmdyb3VwTWVtYmVyQ291bnQ9di5zYXNtZW1iZXJzLmxlbmd0aCx2b2lkIDAhPT12LnNhc21lbWJlcnNbMF0mJih0aGlzLmxvYWRpbmc9ITEsdGhpcy5ncm91cFVyaT12LnNhc21lbWJlcnNbMF0uVVJJ''@;'; put 'put ''TUVNfHx0aGlzLnBhcmFtVVJJLHRoaXMuZ3JvdXBOYW1lPXYuc2FzbWVtYmVyc1swXS5HUk9VUE5BTUUsdGhpcy5ncm91cERlc2M9di5zYXNtZW1iZXJzWzBdLkdST1VQREVTQyx0aGlzLmdyb3VwTmFtZXx8KHRoaXMuZ3JvdXBOYW1lPXRoaXMucGFyYW1VUkkpKX0pKSl9Z3JvdXBMaXN0T25G''@;'; put 'put ''aWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMuZ3JvdXBzLHRoaXMuZ3JvdXBTZWFyY2gsIkdST1VQTkFNRSIpLG5pLnVzZXJuYXYuZ3JvdXBTZWFyY2g9dGhpcy5ncm91cFNlYXJjaH1ncm91cE9uQ2xpY2soaCl7dGhpcy5sb2FkaW5nPSEwO2xldCB2PXRo''@;'; put 'put ''aXMucm91dGVyLnVybDt0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLnBhcmFtUHJlc2VudD92LnNsaWNlKDAsdi5sYXN0SW5kZXhPZigiLyIpKSsiLyIrZW5jb2RlVVJJKGguR1JPVVBVUkkpOnYrIi8iK2VuY29kZVVSSShoLkdST1VQVVJJKSksdGhpcy5pc1ZpeWE/ZmV0Y2godGhp''@;'; put 'put ''cy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL2dyb3Vwcy8iK2guR1JPVVBVUkkrIi9tZW1iZXJzP2xpbWl0PTIwMDAiLHtoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24ifX0pLnRoZW4oeT0+eS50ZXh0KCkpLnRoZW4oeT0+e2xldCBDPUpTT04ucGFyc2UoeSk7''@;'; put 'put ''dGhpcy5sb2FkaW5nPSExLHRoaXMuZ3JvdXBVcmk9aC5HUk9VUFVSSSx0aGlzLmdyb3VwTmFtZT1oLkdST1VQTkFNRSx0aGlzLmdyb3VwRGVzYz1oLkdST1VQREVTQztsZXQgST1DLml0ZW1zLm1hcChaPT4oe01FTUJFUk5BTUU6Wi5uYW1lLE1FTUJFUklEOlouaWR9KSk7dGhpcy5ncm91cE1l''@;'; put 'put ''bWJlcnM9SSx0aGlzLmdyb3VwTWVtYmVyQ291bnQ9SS5sZW5ndGh9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVyc2J5Z3JvdXAiLHtpd2FudDpbe2dyb3VwaWQ6aC5HUk9VUFVSSX1dfSkudGhlbihDPT57dGhpcy5sb2FkaW5nPSExLHRoaXMuZ3JvdXBVcmk9''@;'; put 'put ''aC5HUk9VUFVSSSx0aGlzLmdyb3VwTmFtZT1oLkdST1VQTkFNRSx0aGlzLmdyb3VwRGVzYz1oLkdST1VQREVTQyx0aGlzLmdyb3VwTWVtYmVycz1DLnNhc21lbWJlcnMsdGhpcy5ncm91cE1lbWJlckNvdW50PUMuc2FzbWVtYmVycy5sZW5ndGh9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0''@;'; put 'put ''aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoZzIpLEt0KFhjKSxLdChabCksS3QoVjYpLEt0KFB1KSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1ncm91cCJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Nyx2YXJzOjQsY29uc3Rz''@;'; put 'put ''OltbMSwic2lkZWJhci1oZWlnaHQiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEs''@;'; put 'put ''InRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgYnkgR3JvdXBzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQi''@;'; put 'put ''LCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsInRhYmxlLWFjdGl2ZSIsImNsaWNrIiw0LCJuZ0lmIl0sWzMsImNsaWNrIl0s''@;'; put 'put ''WzEsIm0tMCIsImN1cnNvci1wb2ludGVyIiwibGlzdC1wYWRkaW5nIl0sWyJzaGFwZSIsInVzZXJzIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbImNsYXNzIiwiY2xyLXJvdyIsNCwibmdJZiJdLFsxLCJjbHItcm93Il0sWzEsImNsci1jb2wtOCJdLFsxLCJjYXJkIiwi''@;'; put 'put ''Z3JvdXAtZGF0YSJdLFsxLCJ0YWJsZSIsImdyb3VwLWluZm8iXSxbMSwibGVmdCJdLFsxLCJncm91cC1pbmZvLXRleHQiXSxbMSwidGFibGUtY29udGFpbmVyIl0sWyJjbGFzcyIsInRhYmxlIG1lbWJlci10YWJsZSIsNCwibmdJZiJdLFsxLCJ0YWJsZSIsIm1lbWJlci10YWJsZSJdLFszLCJy''@;'; put 'put ''b3V0ZXJMaW5rIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwid2lkdGgtMjUiXSxbMSwiIl0sWzMsInJvdXRlckxpbmsiXV0sdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJihudCgwLCJhcHAtc2lkZWJhciIsMCkoMSwiY2xyLXRyZWUiKSxybigyLEE3dCw2LDMsImNsci10cmVlLW5vZGUi''@;'; put 'put ''LDEpLHJuKDMsdzd0LDIsMSwibmctY29udGFpbmVyIiwyKSxvdCgpKCksbnQoNCwiZGl2IiwzKSxybig1LGI3dCwzLDAsImRpdiIsNCkscm4oNixCN3QsOCwzLCJkaXYiLDUpLG90KCkpLDImaCYmKHV0KDIpLFR0KCJuZ0lmIix2Lmdyb3VwcyksdXQoMSksVHQoIm5nRm9yT2YiLHYuZ3JvdXBz''@;'; put 'put ''KSx1dCgyKSxUdCgibmdJZiIsdi5sb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsdi5ncm91cE1lbWJlcnMmJiF2LmxvYWRpbmcpKX0sZGVwZW5kZW5jaWVzOlt4cyxObyxtMSxUcyxJcyxZNix5dixfZyx3bCxwdixNU10sc3R5bGVzOlsiLnNpZGViYXItaGVpZ2h0W19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XXtoZWlnaHQ6MTAwJX0uZ3JvdXAtaW5mby10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MjBweH0uZ3JvdXAtaW5mb1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNztib3Jk''@;'; put 'put ''ZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS5ncm91cC1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRkW19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcn0uZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjoj''@;'; put 'put ''ZjlmOWY5O2JvcmRlcjoxcHggc29saWQgI2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS5ncm91cC1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OmF1dG99Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgaDNbX25n''@;'; put 'put ''Y29udGVudC0lQ09NUCVdLCAuZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgLm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3Vu''@;'; put 'put ''ZC1jb2xvcjojZjlmOWY5O3dpZHRoOjEwMCV9Lmdyb3VwLWRhdGFbX25nY29udGVudC0lQ09NUCVdICAgLm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0aGVhZFtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZGFkYWRhfS5ncm91cC1kYXRhW19uZ2NvbnRl''@;'; put 'put ''bnQtJUNPTVAlXSAgIC5tZW1iZXItdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGJvZHlbX25nY29udGVudC0lQ09NUCVdICAgdHJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtjdXJzb3I6cG9pbnRlcn0udGFibGUtY29udGFpbmVyW19uZ2Nv''@;'; put 'put ''bnRlbnQtJUNPTVAlXXtvdmVyZmxvdzphdXRvfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsuZ3JvdXAtZGF0YVtfbmdjb250ZW50LSVDT01QJV17bWluLWhlaWdodDp1bnNldCFpbXBvcnRhbnR9fSJdfSksZH0pKCk7dmFyIExtZT1MKDk5MjEpLFA3dD1MKDIwMzMpO2Z1''@;'; put 'put ''bmN0aW9uIEY3dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDI4KX1mdW5jdGlvbiBIN3QoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItaWNvbiIsMjkpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpO3JldHVybiB5LmxpYnJhcmllc1NlYXJj''@;'; put 'put ''aD0iIixhKHkubGlicmFyeU9uRmlsdGVyKCkpfSksb3QoKX19ZnVuY3Rpb24gTjd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRyZWUtbm9kZSIsMjIpKDEsImRpdiIsMjMpKDIsImlucHV0IiwyNCwyNSksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVy''@;'; put 'put ''biBpdChoKSxhKFF0KCkubGlicmFyaWVzU2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkubGlicmFyeU9uRmlsdGVyKCkpfSksb3QoKSxybig0LEY3dCwxLDAsImNsci1pY29uIiwyNikscm4oNSxIN3QsMSwwLCJjbHItaWNvbiIsMjcpLG90KCkoKX1p''@;'; put 'put ''ZigyJmQpe2NvbnN0IGg9dmEoMyksdj1RdCgpO3V0KDIpLFR0KCJuZ01vZGVsIix2LmxpYnJhcmllc1NlYXJjaCksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gVjd0KGQsZyl7MSZkJiZDcigwLCJj''@;'; put 'put ''bHItaWNvbiIsMjgpfWZ1bmN0aW9uIGo3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1pY29uIiwyOSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpLFF0KCk7Y29uc3QgeT12YSgzKSxDPVF0KDIpLiRpbXBsaWNpdCxJPVF0KCk7cmV0dXJuIHkudmFsdWU9IiIsQy5z''@;'; put 'put ''ZWFyY2hTdHJpbmc9IiIsYShJLnRyZWVPbkZpbHRlcihDLCJ0YWJsZXMuVEFCTEVOQU1FIikpfSksb3QoKX19ZnVuY3Rpb24gWjd0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRyZWUtbm9kZSIsMjIpKDEsImRpdiIsMjMpKDIsImlucHV0IiwzNSwzNiksR24oIm5nTW9k''@;'; put 'put ''ZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLiRpbXBsaWNpdC5zZWFyY2hTdHJpbmc9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoKS50cmVlT25GaWx0ZXIoeSwidGFibGVzLlRBQkxFTkFN''@;'; put 'put ''RSIpKX0pLG90KCkscm4oNCxWN3QsMSwwLCJjbHItaWNvbiIsMjYpLHJuKDUsajd0LDEsMCwiY2xyLWljb24iLDI3KSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPXZhKDMpLHY9UXQoMikuJGltcGxpY2l0O3V0KDIpLFR0KCJuZ01vZGVsIix2LnNlYXJjaFN0cmluZyksdXQoMiksVHQoIm5nSWYi''@;'; put 'put ''LGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gejd0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMjgpfWZ1bmN0aW9uIEc3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1pY29uIiwyOSksR24oImNsaWNr''@;'; put 'put ''IixmdW5jdGlvbigpe2l0KGgpLFF0KCk7Y29uc3QgeT12YSgzKSxDPVF0KCkuJGltcGxpY2l0LEk9UXQoMyk7cmV0dXJuIHkudmFsdWU9IiIsQy5zZWFyY2hTdHJpbmc9IiIsYShJLnRyZWVPbkZpbHRlcihDLCJjb2x1bW5zLkNPTE5BTUUiKSl9KSxvdCgpfX1mdW5jdGlvbiBXN3QoZCxnKXtp''@;'; put 'put ''ZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItdHJlZS1ub2RlIiwyMikoMSwiZGl2IiwyMykoMiwiaW5wdXQiLDM5LDM2KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS4kaW1wbGljaXQuc2VhcmNoU3RyaW5nPXkpfSkoImtleXVwIixmdW5j''@;'; put 'put ''dGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoMykudHJlZU9uRmlsdGVyKHksImNvbHVtbnMuQ09MTkFNRSIpKX0pLG90KCkscm4oNCx6N3QsMSwwLCJjbHItaWNvbiIsMjYpLHJuKDUsRzd0LDEsMCwiY2xyLWljb24iLDI3KSxvdCgpKCl9aWYoMiZkKXtj''@;'; put 'put ''b25zdCBoPXZhKDMpLHY9UXQoKS4kaW1wbGljaXQ7dXQoMiksVHQoIm5nTW9kZWwiLHYuc2VhcmNoU3RyaW5nKSx1dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBZN3QoZCxnKXtpZigxJmQpe2NvbnN0''@;'; put 'put ''IGg9d2koKTtudCgwLCJjbHItdHJlZS1ub2RlIikoMSwiYnV0dG9uIiw0MCksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0LEk9UXQoKS4kaW1wbGljaXQsWj1RdCgyKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoKS5jb2x1bW5PbkNsaWNrKEMsWixJKSl9KSxD''@;'; put 'put ''cigyLCJjbHItaWNvbiIsNDEpLFl0KDMpLG90KCkoKX1pZigyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQsdj1RdCg0KTt1dCgxKSxGaSgiY29sdW1uLWFjdGl2ZSIsdi5saWJDb2x1bW5BY3RpdmUoaC5DT0xVUkkpKSx1dCgyKSxKaSgiICIsaC5DT0xOQU1FLCIgIil9fWZ1bmN0aW9uIFU3dChk''@;'; put 'put ''LGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10cmVlLW5vZGUiLDMxKSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2NvbnN0IEk9aXQoaCkuJGltcGxpY2l0LFo9UXQoMikuJGltcGxpY2l0O3JldHVybiBhKFF0KCkudHJlZU5vZGVDbGlja2VkKHksSSxaLnRhYmxlcykpfSkoImNs''@;'; put 'put ''ckV4cGFuZGVkQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gYShpdChoKS4kaW1wbGljaXQuZXhwYW5kZWQ9eSl9KSxudCgxLCJwIiwzNyksR24oImNsaWNrIixmdW5jdGlvbigpe2NvbnN0IEM9aXQoaCkuJGltcGxpY2l0LEk9UXQoMikuJGltcGxpY2l0O3JldHVybiBhKFF0KCkudGFibGVP''@;'; put 'put ''bkNsaWNrKEMuVEFCTEVVUkksQyxJKSl9KSxDcigyLCJjbHItaWNvbiIsMzgpLFl0KDMpLG90KCkscm4oNCxXN3QsNiwzLCJjbHItdHJlZS1ub2RlIiwxKSxybig1LFk3dCw0LDMsImNsci10cmVlLW5vZGUiLDIpLG90KCl9aWYoMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O0ZpKCJjbHItZXhw''@;'; put 'put ''YW5kZWQiLGguZXhwYW5kZWQpLFR0KCJjbHJFeHBhbmRlZCIsaC5leHBhbmRlZCkoImNsckxvYWRpbmciLGgubG9hZGluZ0NvbHVtbnMmJiFoLmNvbHVtbnMpLHV0KDEpLFR0KCJpZCIsaC5UQUJMRVVSSSksdXQoMiksSmkoIiAiLGguVEFCTEVOQU1FLCIgIiksdXQoMSksVHQoIm5nSWYiLGgu''@;'; put 'put ''Y29sdW1ucyksdXQoMSksVHQoIm5nRm9yT2YiLGguY29sdW1ucyl9fWZ1bmN0aW9uIFE3dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10cmVlLW5vZGUiLDMxKSxHbigiY2xpY2siLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoKS4kaW1wbGljaXQsST1RdCgpO3Jl''@;'; put 'put ''dHVybiBhKEkudHJlZU5vZGVDbGlja2VkKHksQyxJLmxpYnJhcnlMaXN0KSl9KSgiY2xyRXhwYW5kZWRDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuJGltcGxpY2l0LmV4cGFuZGVkPXkpfSksbnQoMSwicCIsMzIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtj''@;'; put 'put ''b25zdCB5PVF0KCkuJGltcGxpY2l0LEM9UXQoKTtyZXR1cm4gQy5saWI9eS5MSUJSQVJZSUQsYShDLmxpYnJhcnlPbkNsaWNrKEMubGlifHwiIix5KSl9KSxDcigyLCJjbHItaWNvbiIsMzMpLFl0KDMpLG90KCkscm4oNCxaN3QsNiwzLCJjbHItdHJlZS1ub2RlIiwxKSxybig1LFU3dCw2LDgs''@;'; put 'put ''ImNsci10cmVlLW5vZGUiLDM0KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdDtGaSgiY2xyLWV4cGFuZGVkIixoLmV4cGFuZGVkKSxUdCgiY2xyRXhwYW5kZWQiLGguZXhwYW5kZWQpKCJjbHJMb2FkaW5nIixoLmxvYWRpbmdUYWJsZXMmJiFoLnRhYmxlcyksdXQoMyksSmko''@;'; put 'put ''IiAiLGguTElCUkFSWU5BTUUsIiAiKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZXMpLHV0KDEpLFR0KCJuZ0Zvck9mIixoLnRhYmxlcyl9fWZ1bmN0aW9uIEo3dChkLGcpe2lmKDEmZCYmKEIwKDApLHJuKDEsUTd0LDYsNywiY2xyLXRyZWUtbm9kZSIsMzApLFAwKCkpLDImZCl7Y29uc3QgaD1n''@;'; put 'put ''LiRpbXBsaWNpdDt1dCgxKSxUdCgibmdJZiIsIWguaGlkZGVuJiZoLmluRm9yZWdyb3VuZCl9fWZ1bmN0aW9uIFg3dChkLGcpezEmZCYmKG50KDAsImRpdiIsNDIpKDEsInNwYW4iLDQzKSxZdCgyLCIgTG9hZGluZy4uLiAiKSxvdCgpKCkpfWZ1bmN0aW9uIEs3dChkLGcpezEmZCYmKG50KDAs''@;'; put 'put ''ImRpdiIsNDQpLENyKDEsImNsci1pY29uIiw0NSksbnQoMiwiaDMiLDQ2KSxZdCgzLCJQbGVhc2Ugc2VsZWN0IGEgY29sdW1uIG9yIHRhYmxlIiksb3QoKSgpKX1mdW5jdGlvbiAkN3QoZCxnKXtpZigxJmQmJihudCgwLCJoMyIsNTUpLFl0KDEpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgzKTt1''@;'; put 'put ''dCgxKSxKaSgiICIsaC5jdXJyZW50TGluZWFnZVBhdGhDb2x1bW4/aC5jdXJyZW50TGluZWFnZVBhdGhMaWJUYWJsZSsiLiIraC5jdXJyZW50TGluZWFnZVBhdGhDb2x1bW46aC5jdXJyZW50TGluZWFnZVBhdGhMaWJUYWJsZSwiICIpfX1mdW5jdGlvbiBxN3QoZCxnKXtpZigxJmQmJihudCgw''@;'; put 'put ''LCJkaXYiLDUzKSxybigxLCQ3dCwyLDEsImgzIiw1NCksb3QoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDEpLFR0KCJuZ0lmIiwhaC5jdXJyZW50TGluZWFnZVBhdGhDb2x1bW4mJiFoLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlKX19ZnVuY3Rpb24gZXZ0KGQsZyl7aWYoMSZkJiYobnQo''@;'; put 'put ''MCwic3BhbiIpLFl0KDEpLG50KDIsImEiLDU2KSxZdCgzKSxvdCgpLFl0KDQpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxKaSgiICIsaC5saW5lYWdlVGFibGVOYW1lLnNwbGl0KCIuIilbMF0sIi4iKSx1dCgxKSxUdCgicm91dGVyTGluayIsIi92aWV3L2RhdGEvIitoLmxpbmVh''@;'; put 'put ''Z2VUYWJsZU5hbWUpLHV0KDEpLGppKGgubGluZWFnZVRhYmxlTmFtZS5zcGxpdCgiLiIpWzFdKSx1dCgxKSxKaSgiIixoLmxpbmVhZ2VDb2x1bW5OYW1lLmxlbmd0aD4wPyIuIitoLmxpbmVhZ2VDb2x1bW5OYW1lOiIiLCIgIil9fWZ1bmN0aW9uIHR2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13''@;'; put 'put ''aSgpO250KDAsImRpdiIsNjYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCg0KS5kb3dubG9hZFBORygpKX0pLFl0KDEsIiBQTkcgIiksb3QoKX19ZnVuY3Rpb24gbnZ0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw2NiksR24oImNsaWNrIixm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDQpLmRvd25sb2FkQ1NWKCkpfSksWXQoMSwiIENTViAiKSxvdCgpfX1mdW5jdGlvbiBydnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItZHJvcGRvd24tbWVudSIsNjUpKDEsImRpdiIsNjYpLEduKCJjbGljayIsZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gaXQoaCksYShRdCgzKS5kb3dubG9hZFNWRygpKX0pLFl0KDIsIlNWRyIpLG90KCkscm4oMyx0dnQsMiwwLCJkaXYiLDY3KSxudCg0LCJkaXYiLDY2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMykuZG93bmxvYWREb3QoKSl9KSxZdCg1LCJE''@;'; put 'put ''b3QiKSxvdCgpLHJuKDYsbnZ0LDIsMCwiZGl2Iiw2Nyksb3QoKX1pZigyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMyksVHQoIm5nSWYiLCFoLmhlbHBlclNlcnZpY2UuaXNNaWNyb3NvZnQpLHV0KDMpLFR0KCJuZ0lmIixoLmZsYXRkYXRhKX19ZnVuY3Rpb24gaXZ0KGQsZyl7aWYoMSZkKXtjb25z''@;'; put 'put ''dCBoPXdpKCk7bnQoMCwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDY4KSgxLCJpbnB1dCIsNjkpLEduKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMykuZ2VuZXJhdGVHcmFwaCgpKX0pKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgz''@;'; put 'put ''KS5yZWZyZXNoQ2FjaGU9eSl9KSxvdCgpLG50KDIsImxhYmVsIiksWXQoMywiUmVmcmVzaCBDYWNoZSIpLG90KCkoKX1pZigyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMSksVHQoIm5nTW9kZWwiLGgucmVmcmVzaENhY2hlKX19ZnVuY3Rpb24gb3Z0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7''@;'; put 'put ''bnQoMCwiZGl2Iiw1NykoMSwiYnV0dG9uIiw1OCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLmxpbWl0RG90RGVwdGg9ITApfSksWXQoMiwiIExpbWl0IGRlcHRoICIpLG90KCksbnQoMywiZGl2Iiw1OSkoNCwiZGl2Iiw2MCksR24oImNsaWNrIixmdW5jdGlv''@;'; put 'put ''bigpe2l0KGgpO2NvbnN0IHk9UXQoMik7cmV0dXJuIHkuZm9yd2FyZExpbmVhZ2U9ITEsYSh5LnJvdXRlci51cmwuaW5jbHVkZXMoImNvbHVtbiIpP3kub25HZW5lcmF0ZUNsaWNrKCk6eS5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkpfSksQ3IoNSwiaW5wdXQiLDYxKSxudCg2LCJsYWJl''@;'; put 'put ''bCIpLFl0KDcsIkJhY2t3YXJkIiksb3QoKSgpLG50KDgsImRpdiIsNjApLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpO3JldHVybiB5LmZvcndhcmRMaW5lYWdlPSEwLGEoeS5yb3V0ZXIudXJsLmluY2x1ZGVzKCJjb2x1bW4iKT95Lm9uR2VuZXJhdGVDbGljaygp''@;'; put 'put ''Onkub25HZW5lcmF0ZUdyYXBoVGFibGVDbGljaygpKX0pLENyKDksImlucHV0Iiw2MSksbnQoMTAsImxhYmVsIiksWXQoMTEsIkZvcndhcmQiKSxvdCgpKCkoKSxudCgxMiwiY2xyLWRyb3Bkb3duIiw2MikoMTMsImJ1dHRvbiIsNjMpLFl0KDE0LCIgRG93bmxvYWQgIiksQ3IoMTUsImNsci1p''@;'; put 'put ''Y29uIiwxOSksb3QoKSxybigxNixydnQsNywyLCJjbHItZHJvcGRvd24tbWVudSIsMjApLG90KCkscm4oMTcsaXZ0LDQsMSwiY2xyLWNoZWNrYm94LXdyYXBwZXIiLDY0KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCg1KSxUdCgiY2hlY2tlZCIsIWguZm9yd2FyZExpbmVhZ2UpLHV0''@;'; put 'put ''KDQpLFR0KCJjaGVja2VkIixoLmZvcndhcmRMaW5lYWdlKSx1dCg0KSxUdCgiZGlzYWJsZWQiLCFoLmNvbHVtbiYmIWgudGFibGUpLHV0KDQpLFR0KCJuZ0lmIixoLmNvbHVtbil9fWZ1bmN0aW9uIGF2dChkLGcpezEmZCYmKG50KDAsInNwYW4iLDczKSxZdCgxLCIgTG9hZGluZy4uLiAiKSxv''@;'; put 'put ''dCgpKX1mdW5jdGlvbiBsdnQoZCxnKXsxJmQmJkNyKDAsInNwYW4iLDQzKX1mdW5jdGlvbiBzdnQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDc0KSgxLCJkaXYiLDc1KSxybigyLGx2dCwxLDAsInNwYW4iLDc2KSxvdCgpLENyKDMsImRpdiIsNzcpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgz''@;'; put 'put ''KTt1dCgyKSxUdCgibmdJZiIsaC5ncmFwaFJlbmRlcmluZyl9fWZ1bmN0aW9uIHV2dChkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIpKDEsImRpdiIsNzApLHJuKDIsYXZ0LDIsMCwic3BhbiIsNzEpLHJuKDMsc3Z0LDQsMSwiZGl2Iiw3Miksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7Rmko''@;'; put 'put ''Im10LTIiLGgudGFibGVGbGFnKSx1dCgyKSxUdCgibmdJZiIsaC5ncmFwaExvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ncmFwaExvYWRpbmcpfX1mdW5jdGlvbiBjdnQoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLHE3dCwyLDEsImRpdiIsNDcpLG50KDIsImRpdiIsNDgpKDMsInNlY3Rp''@;'; put 'put ''b24iLDQ5KSg0LCJkaXYiLDUwKSxybig1LGV2dCw1LDQsInNwYW4iLDcpLG90KCkscm4oNixvdnQsMTgsNCwiZGl2Iiw1MSksb3QoKSxybig3LHV2dCw0LDQsImRpdiIsNTIpLG90KCksUDAoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMSksVHQoIm5nSWYiLCFoLmdyYXBoQ29udGFpbmVyKSx1''@;'; put 'put ''dCg0KSxUdCgibmdJZiIsaC5saW5lYWdlVGFibGVOYW1lLmxlbmd0aD4wKSx1dCgxKSxUdCgibmdJZiIsaC5ncmFwaENvbnRhaW5lciksdXQoMSksVHQoIm5nSWYiLGguZ3JhcGhDb250YWluZXIpfX1mdW5jdGlvbiBmdnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJkaXYiLDY2''@;'; put 'put ''KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMikucmVuZGVyVG9Eb3dubG9hZCgiUE5HIikpfSksWXQoMSwiIFBORyAiKSxvdCgpfX1mdW5jdGlvbiBodnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItZHJvcGRvd24tbWVudSIsNjUpKDEsImRp''@;'; put 'put ''diIsNjYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLnJlbmRlclRvRG93bmxvYWQoIlNWRyIpKX0pLFl0KDIsIlNWRyIpLG90KCkscm4oMyxmdnQsMiwwLCJkaXYiLDY3KSxudCg0LCJkaXYiLDY2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3Qg''@;'; put 'put ''eT1RdCgpO3JldHVybiB5LmRvd25sb2FkRG90KCksYSh5LmNhbmNlbFJlbmRlcmluZ0dyYXBoKCkpfSksWXQoNSwiIERvdCAiKSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KCk7dXQoMyksVHQoIm5nSWYiLCFoLmhlbHBlclNlcnZpY2UuaXNNaWNyb3NvZnQpfX1jb25zdCBkdnQ9TCgxNTQz''@;'; put 'put ''OSk7bGV0IFpuZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSxaLHVlKXt0aGlzLnNhc1NlcnZpY2U9aCx0aGlzLnJvdXRlPXYsdGhpcy5yb3V0ZXI9eSx0aGlzLmxvY2F0aW9uPUMsdGhpcy5ldmVudFNlcnZpY2U9SSx0aGlzLmxvZ2dlclNlcnZpY2U9Wix0aGlzLmhlbHBl''@;'; put 'put ''clNlcnZpY2U9dWUsdGhpcy5zd2l0Y2hGbGFnPSExLHRoaXMudGFibGVGbGFnPSEwLHRoaXMuZm9yd2FyZExpbmVhZ2U9ITEsdGhpcy5mbGF0ZGF0YT1bXSx0aGlzLmdyYXBoTG9hZGluZz0hMSx0aGlzLmdyYXBoUmVuZGVyaW5nPSExLHRoaXMuZ3JhcGhDb250YWluZXI9ITEsdGhpcy52aXpJ''@;'; put 'put ''bnB1dD0iIix0aGlzLmxpYnJhcmllc1BhZ2luZz0hMSx0aGlzLmxpYnJhcnlUYWJsZXNSZWY9IiIsdGhpcy5saWJyYXJpZXNTZWFyY2g9IiIsdGhpcy50YWJsZUNvbHVtbnNSZWY9IiIsdGhpcy5saW5lYWdlVGFibGVOYW1lPSIiLHRoaXMubGluZWFnZUNvbHVtbk5hbWU9IiIsdGhpcy5saWI9''@;'; put 'put ''bnVsbCx0aGlzLnRhYmxlRGlzYWJsZT0hMSx0aGlzLnJlZnJlc2hDYWNoZT0hMSx0aGlzLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlPSIiLHRoaXMuY3VycmVudExpbmVhZ2VQYXRoQ29sdW1uPSIiLHRoaXMubGFyZ2VEb3RGaWxlTGluZXM9bnVsbCx0aGlzLmxhcmdlRG90RmlsZUxpbWl0''@;'; put 'put ''PTFlMyx0aGlzLmxpbWl0RG90RGVwdGg9ITEsdGhpcy5wZW5kaW5nUmVuZGVyRG93bmxvYWQ9bnVsbCx0aGlzLmRlYm91bmNlVGltZT0yMDB9c2hvd1RhYmxlU2VsZWN0KCl7dGhpcy50YWJsZUZsYWc9IXRoaXMudGFibGVGbGFnfXRhYmxlT25DbGljayhoLHYseSxDPSExKXtyZXR1cm4gbm8o''@;'; put 'put ''dGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3YuY29sdW1ucz8odi5leHBhbmRlZD0hdi5leHBhbmRlZCwhMD09PXYuZXhwYW5kZWQmJih0aGlzLnRhYmxlPWgsQ3x8dGhpcy5vbkdlbmVyYXRlR3JhcGhUYWJsZUNsaWNrKCkpKToodi5leHBhbmRlZD0hdi5leHBhbmRlZCx2LmxvYWRp''@;'; put 'put ''bmdDb2x1bW5zPSEwLHRoaXMudGFibGU9aCx0aGlzLmN1cnJlbnRMaW5lYWdlUGF0aExpYlRhYmxlPXYuTElCTkFNRSsiLiIrdi5UQUJMRU5BTUUseWllbGQgdGhpcy5zZWxlY3RUYWJsZShoLHYpLEN8fHRoaXMub25HZW5lcmF0ZUdyYXBoVGFibGVDbGljaygpKSx0aGlzLmNvbGxhcHNlVHJl''@;'; put 'put ''ZUl0ZW1zKHkudGFibGVzLHYpfSl9c2VsZWN0VGFibGUoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuY29sdW1uc0xpc3Q9W107bGV0IHk9e1NBU0NvbnRyb2xUYWJsZTpbe3RhYmxldXJpOmh9XX07eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVl''@;'; put 'put ''c3QoImxpbmVhZ2UvZ2V0bWV0YWNvbHMiLHkpLnRoZW4oQz0+e3RoaXMuY29sdW1uc0xpc3Q9Qy5tZXRhY29scyx0aGlzLmNvbHVtbnNMaXN0JiZ0aGlzLmNvbHVtbnNMaXN0Lmxlbmd0aD4wJiYodi5jb2x1bW5zPXRoaXMuY29sdW1uc0xpc3Qsdi5leHBhbmRlZD0hMCx2LmxvYWRpbmdDb2x1''@;'; put 'put ''bW5zPSExKX0pLmNhdGNoKEM9PkMpLHRoaXMuc2V0R2xvYmFsRGF0YSgpfSl9bG9hZE1vcmVMaWJyYXJpZXMoKXt0aGlzLmxpYnJhcmllc1BhZ2luZ3x8KHRoaXMubGlicmFyaWVzUGFnaW5nPSEwLHRoaXMuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFyaWVzKHRoaXMubGlicmFyeUxpc3Qs''@;'; put 'put ''ITApLHRoaXMubGlicmFyaWVzUGFnaW5nPSExKX1jb2xsYXBzZVRyZWVJdGVtcyhoLHYpe2guZm9yRWFjaCh5PT57SlNPTi5zdHJpbmdpZnkoeSkhPT1KU09OLnN0cmluZ2lmeSh2KSYmKHkuZXhwYW5kZWQ9ITEpfSl9dHJlZU5vZGVDbGlja2VkKGgsdix5KXsiQ29sbGFwc2UiPT09aC50YXJn''@;'; put 'put ''ZXQudGl0bGUmJnRoaXMuY29sbGFwc2VUcmVlSXRlbXMoeSx2KX1saWJyYXJ5T25DbGljayhoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7di5pbkZvcmVncm91bmQ9ITAsdi50YWJsZXM/di5leHBhbmRlZD0hdi5leHBhbmRlZDoodi5sb2FkaW5nVGFibGVz''@;'; put 'put ''PSEwLHlpZWxkIHRoaXMuc2VsZWN0TGlicmFyeShoLHYpKSx0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKHRoaXMubGlicmFyeUxpc3Qsdil9KX1zZWxlY3RMaWJyYXJ5KGgsdil7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnRhYmxlc0xpc3Q9W10sdGhpcy5j''@;'; put 'put ''b2x1bW5zTGlzdD1bXTtsZXQgeT17U0FTQ29udHJvbFRhYmxlOlt7bGlidXJpOmh9XX07eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoImxpbmVhZ2UvZ2V0bWV0YXRhYmxlcyIseSkudGhlbihDPT57dGhpcy50YWJsZXNMaXN0PUMubWV0YXRhYmxlcyx0aGlzLnRhYmxlc0xpc3QmJnRo''@;'; put 'put ''aXMudGFibGVzTGlzdC5sZW5ndGg+MCYmKHYudGFibGVzPXRoaXMudGFibGVzTGlzdCx2LmV4cGFuZGVkPSEwKSx0aGlzLnNldEdsb2JhbERhdGEoKX0pLmNhdGNoKEM9PkMpLHYubG9hZGluZ1RhYmxlcz0hMX0pfWNvbHVtbk9uQ2xpY2soaCx2LHkpe3RoaXMubGliPXYuTElCUkFSWUlELHRo''@;'; put 'put ''aXMudGFibGU9eS5UQUJMRVVSSSx0aGlzLmNvbHVtbj1oLkNPTFVSSSx0aGlzLnNldEdsb2JhbERhdGEoKSx0aGlzLm9uR2VuZXJhdGVDbGljaygpfXRyZWVPbkZpbHRlcihoLHYpe3RoaXMuaGVscGVyU2VydmljZS50cmVlT25GaWx0ZXIoaCx2KX1saWJyYXJ5T25GaWx0ZXIoKXt0aGlzLmhl''@;'; put 'put ''bHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMubGlicmFyeUxpc3QsdGhpcy5saWJyYXJpZXNTZWFyY2gsIkxJQlJBUllOQU1FIiksbmkubGluZWFnZS5saWJyYXJpZXNTZWFyY2g9dGhpcy5saWJyYXJpZXNTZWFyY2h9bGliQ29sdW1uQWN0aXZlKGgpe2lmKCF0aGlzLmNvbHVtbily''@;'; put 'put ''ZXR1cm4hMTtsZXQgdj1oLnNwbGl0KCJcXCIpLHk9dGhpcy5jb2x1bW4uc3BsaXQoIlxcIik7cmV0dXJuIHZbdi5sZW5ndGgtMV09PXlbeS5sZW5ndGgtMV19c2V0R2xvYmFsRGF0YSgpe25pLmxpbmVhZ2UubGlicmFyeUxpc3Q9dGhpcy5saWJyYXJ5TGlzdCxuaS5saW5lYWdlLnRhYmxlc0xp''@;'; put 'put ''c3Q9dGhpcy50YWJsZXNMaXN0LG5pLmxpbmVhZ2UuY29sdW1uc0xpc3Q9dGhpcy5jb2x1bW5zTGlzdCxuaS5saW5lYWdlLmxpYj10aGlzLmxpYixuaS5saW5lYWdlLnRhYmxlPXRoaXMudGFibGUsbmkubGluZWFnZS5jb2x1bW49dGhpcy5jb2x1bW59bG9hZEdsb2JhbERhdGEoKXt0aGlzLmxp''@;'; put 'put ''YnJhcnlMaXN0PW5pLmxpbmVhZ2UubGlicmFyeUxpc3QsdGhpcy50YWJsZXNMaXN0PW5pLmxpbmVhZ2UudGFibGVzTGlzdCx0aGlzLmNvbHVtbnNMaXN0PW5pLmxpbmVhZ2UuY29sdW1uc0xpc3QsdGhpcy5saWJyYXJpZXNTZWFyY2g9bmkubGluZWFnZS5saWJyYXJpZXNTZWFyY2h9cmVzdWJt''@;'; put 'put ''aXRXaXRoTWF4RGVwdGgoaCl7bGV0IHY7dGhpcy5jYW5jZWxSZW5kZXJpbmdHcmFwaCgpLGgmJih2PXttYXhfZGVwdGg6aH0pLHRoaXMucm91dGVyLm5hdmlnYXRlKFtdLHtyZWxhdGl2ZVRvOnRoaXMucm91dGUscXVlcnlQYXJhbXM6dn0pfW5nT25Jbml0KCl7bmkudmlld2VyLmN1cnJlbnRT''@;'; put 'put ''ZWxlY3Rpb249InZpZXcvbGluZWFnZSI7bGV0IGg9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMucmVsb2FkO2lmKHZvaWQgMCE9PWgpe2xldCB2PXRoaXMucm91dGVyLnVybDsicmVsb2FkIj09PWg/bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpcnN0TG9hZCIpPyhsb2NhbFN0b3JhZ2UucmVt''@;'; put 'put ''b3ZlSXRlbSgiZmlyc3RMb2FkIiksdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodi5zbGljZSgwLHYubGFzdEluZGV4T2YoIi8iKSkpKToobG9jYWxTdG9yYWdlLmZpcnN0TG9hZD0hMCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSwyZTMpKTp0aGlz''@;'; put 'put ''LmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh2LnNsaWNlKDAsdi5sYXN0SW5kZXhPZigiLyIpKSl9dGhpcy5pbml0RGF0YSgpfWluaXREYXRhKCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtuaS5saW5lYWdlLmxpYnJhcnlMaXN0JiYobmkubGluZWFnZS5saWJyYXJ5''@;'; put 'put ''TGlzdC5sZW5ndGg+MD90aGlzLmxvYWRHbG9iYWxEYXRhKCk6eWllbGQgdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInB1YmxpYy92aWV3bGlicyIsbnVsbCkudGhlbihDPT57dGhpcy5saWJyYXJ5TGlzdD1DLnNhc2xpYnMsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhp''@;'; put 'put ''cy5saWJyYXJ5TGlzdCksdGhpcy5saWJyYXJ5TGlzdCYmdGhpcy5saWJyYXJ5TGlzdC5sZW5ndGg+MCYmKHRoaXMubGliPXRoaXMubGlicmFyeUxpc3RbMF0uTElCUkFSWUlEKSx0aGlzLnNldEdsb2JhbERhdGEoKX0pLmNhdGNoKEM9PkMpLHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2Ny''@;'; put 'put ''aWJlKEM9Pnt0aGlzLm9uUm91dGVDaGFuZ2UoKX0pLHRoaXMucm91dGUucGFyYW1zLnN1YnNjcmliZShDPT57dGhpcy5vblJvdXRlQ2hhbmdlKCl9KSl9KX1vblJvdXRlQ2hhbmdlKCl7Y2xlYXJUaW1lb3V0KHRoaXMuZGVib3VuY2VUaW1lb3V0KSx0aGlzLmRlYm91bmNlVGltZW91dD1zZXRU''@;'; put 'put ''aW1lb3V0KCgpPT57Y29uc3QgaD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5jb2x1cmksdj10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5kaXJlY3Rpb24seT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy50YWJsZWlkLEM9dGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5t''@;'; put 'put ''YXhfZGVwdGg7aCYmdiYmKHRoaXMuZm9yd2FyZExpbmVhZ2U9IkZPUldBUkQiPT09dix0aGlzLmNvbHVtbj1oLHRoaXMuZ2VuZXJhdGVHcmFwaChoLHYsQykpLCF0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoImNvbHVtbiIpJiZ5JiZ2JiYodGhpcy5mb3J3YXJkTGluZWFnZT0iRk9SV0FSRCI9''@;'; put 'put ''PT12LHRoaXMudGFibGU9eSx0aGlzLmdlbmVyYXRlR3JhcGhUYWJsZUxldmVsKHksdixDKSl9LHRoaXMuZGVib3VuY2VUaW1lKX1uZ0FmdGVyQ29udGVudEluaXQoKXt9ZGlyZWN0aW9uVGV4dCgpe3JldHVybiB0aGlzLmZvcndhcmRMaW5lYWdlPyJGT1JXQVJEIjoiUkVWRVJTRSJ9b25HZW5l''@;'; put 'put ''cmF0ZUNsaWNrKCl7bGV0IGg9dGhpcy5kaXJlY3Rpb25UZXh0KCksdj10aGlzLmNvbHVtbj90aGlzLmNvbHVtbi5zdWJzdHJpbmcodGhpcy5jb2x1bW4uaW5kZXhPZigiXFwiKSsxKTpudWxsO3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2xpbmVhZ2UvY29sdW1uLyIrdisiLyIr''@;'; put 'put ''aCl9b25HZW5lcmF0ZUdyYXBoVGFibGVDbGljaygpe2xldCBoPXRoaXMuZGlyZWN0aW9uVGV4dCgpLHY9dGhpcy50YWJsZS5pbmNsdWRlcygiXFwiKT90aGlzLnRhYmxlLnNwbGl0KCJcXCIpWzFdOnRoaXMudGFibGU7dGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvbGluZWFnZS8i''@;'; put 'put ''K3YrIi8iK2gpfWdlbmVyYXRlR3JhcGhUYWJsZUxldmVsKGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXtTQVNDb250cm9sVGFibGU6W3t0YWJsZV9pZDpoLGRpcmVjdGlvbjp2fHx0aGlzLmRpcmVjdGlvblRleHQoKX1dfTtyZXR1cm4idW5k''@;'; put 'put ''ZWZpbmVkIj09PUMuU0FTQ29udHJvbFRhYmxlWzBdLnRhYmxlX2lkJiZ0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiZ2VuZXJhdGVHcmFwaFRhYmxlTGV2ZWwoKSIsInRhYmxlX2lkIGlzIHVuZGVmaW5lZC4iLHZvaWQgMCwiRnJvbnRlbmQgZXJyb3IiKSx5JiYoQy5TQVNDb250''@;'; put 'put ''cm9sVGFibGVbMF0ubWF4X2RlcHRoPXkpLHRoaXMudGFibGVGbGFnPSExLHRoaXMuc3dpdGNoRmxhZz0hMCx0aGlzLmdyYXBoQ29udGFpbmVyPSEwLHRoaXMuZ3JhcGhMb2FkaW5nPSEwLHRoaXMudml6SW5wdXQ9IiIsbmV3IFByb21pc2UoKEksWik9Pnt0aGlzLnNhc1NlcnZpY2UucmVxdWVz''@;'; put 'put ''dCgibGluZWFnZS9mZXRjaHRhYmxlbGluZWFnZSIsQykudGhlbih1ZT0+bm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2lmKCJzdHJpbmciPT10eXBlb2YgdWUpcmV0dXJuIHRoaXMudml6SW5wdXQ9ImRpZ3JhcGggRyB7U0FTIEVycm9yfSIsdm9pZCB0aGlzLmJ1aWxkR3JhcGgo''@;'; put 'put ''KTt0aGlzLmxpbmVhZ2VUYWJsZU5hbWU9dWUuaW5mb1swXS5MSUJSRUYrIi4iK3VlLmluZm9bMF0uVEFCTEVOQU1FO2xldCBfZT11ZS5maW5hbGZpbmFsLEJlPSIiO2ZvcihsZXQgTmU9MDtOZTxfZS5sZW5ndGg7TmUrKylCZSs9dW5lc2NhcGUoX2VbTmVdLkxJTkUpKyJcbiI7aWYodGhpcy5m''@;'; put 'put ''bGF0ZGF0YT11ZS5mbGF0ZGF0YSx0aGlzLmxpYnJhcnlMaXN0KXtsZXQgTmU9dGhpcy5saWJyYXJ5TGlzdC5maW5kKEtlPT51ZS5pbmZvWzBdLkxJQlVSSS50b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKEtlLkxJQlJBUllJRC50b1VwcGVyQ2FzZSgpKSk7aWYoTmUpe2xldCBLZTtpZih5aWVsZCB0''@;'; put 'put ''aGlzLmxpYnJhcnlPbkNsaWNrKE5lLkxJQlJBUllJRCxOZSksTmUudGFibGVzJiYoS2U9TmUudGFibGVzLmZpbmQocHQ9PnB0LlRBQkxFVVJJLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXModWUuaW5mb1swXS5UQUJMRUlELnRvVXBwZXJDYXNlKCkpKSxLZSkpe2lmKHRoaXMudGFibGU9S2UuVEFC''@;'; put 'put ''TEVVUkksdGhpcy50YWJsZSl7Y29uc3QgcHQ9dGhpcy50YWJsZS5yZXBsYWNlKCJcXCIsIlxcXFwiKTtzZXRUaW1lb3V0KCgpPT57bGV0IE90PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtpZD0nJHtwdH0nXWApO090JiZPdC5zY3JvbGxJbnRvVmlldygpfSwxZTMpfXRoaXMudGFibGVPbkNs''@;'; put 'put ''aWNrKEtlLlRBQkxFVVJJLEtlLE5lLHZvaWQgMCE9PXYpfU5lJiYoTmUuZXhwYW5kZWQ9ITApLEtlJiYoS2UuZXhwYW5kZWQ9ITApfX10aGlzLnZpeklucHV0PUJlfHwiZGlncmFwaCBHIHtObyBMaW5lYWdlIEF2YWlsYWJsZX0iLHRoaXMudml6SW5wdXQ9dGhpcy52aXpJbnB1dC5yZXBsYWNl''@;'; put 'put ''KC9cc2RzOi9nLCJcbmRzOiIpLnJlcGxhY2UoL1xzXG4vZywiXG4iKSx0aGlzLmlkbG9va3VwPXVlLmlkbG9va3VwLHVlLmZpbmFsZmluYWwubGVuZ3RoPnRoaXMubGFyZ2VEb3RGaWxlTGltaXQ/dGhpcy5sYXJnZURvdEZpbGVMaW5lcz11ZS5maW5hbGZpbmFsLmxlbmd0aDp0aGlzLmJ1aWxk''@;'; put 'put ''R3JhcGgoKSxJKCl9KSkuY2F0Y2godWU9Pnt0aGlzLmdyYXBoTG9hZGluZz0hMSx0aGlzLmdyYXBoQ29udGFpbmVyPSExfSl9KX0pfWNhbmNlbFJlbmRlcmluZ0dyYXBoKCl7dGhpcy52aXpJbnB1dD0iZGlncmFwaCBHIHtObyBMaW5lYWdlIEF2YWlsYWJsZX0iLHRoaXMubGFyZ2VEb3RGaWxl''@;'; put 'put ''TGluZXM9bnVsbCx0aGlzLmJ1aWxkR3JhcGgoKX1jb250aW51ZVJlbmRlcmluZ0dyYXBoKCl7dGhpcy5sYXJnZURvdEZpbGVMaW5lcz1udWxsLHRoaXMuYnVpbGRHcmFwaCgoKT0+e2lmKG51bGwhPT10aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZCl7c3dpdGNoKHRoaXMucGVuZGluZ1JlbmRl''@;'; put 'put ''ckRvd25sb2FkKXtjYXNlIlBORyI6dGhpcy5kb3dubG9hZFBORygpO2JyZWFrO2Nhc2UiU1ZHIjp0aGlzLmRvd25sb2FkU1ZHKCl9dGhpcy5wZW5kaW5nUmVuZGVyRG93bmxvYWQ9bnVsbCx0aGlzLnZpeklucHV0PSJkaWdyYXBoIEcge05vIExpbmVhZ2UgQXZhaWxhYmxlfSIsdGhpcy5idWls''@;'; put 'put ''ZEdyYXBoKCl9fSl9cmVuZGVyVG9Eb3dubG9hZChoKXtzd2l0Y2goaCl7Y2FzZSJQTkciOnRoaXMucGVuZGluZ1JlbmRlckRvd25sb2FkPSJQTkciLHRoaXMuY29udGludWVSZW5kZXJpbmdHcmFwaCgpO2JyZWFrO2Nhc2UiU1ZHIjp0aGlzLnBlbmRpbmdSZW5kZXJEb3dubG9hZD0iU1ZHIix0''@;'; put 'put ''aGlzLmNvbnRpbnVlUmVuZGVyaW5nR3JhcGgoKX19bWFrZUdyYXBoTGlua2FibGUoaCl7bGV0IHY9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI2dyYXBoIC5ub2RlIik7Zm9yKGxldCB5IG9mIHYpe2xldCBaLEM9eS5xdWVyeVNlbGVjdG9yKCJ0aXRsZSIpLmlubmVySFRNTCxJPWguZmlu''@;'; put 'put ''ZCh1ZT0+dWUuTUVUQUlEPT09Qyk7SSYmKFo9IlRBQkxFIj09PUkuTUVUQVRZUEU/Ii92aWV3L2RhdGEvIitJLk1FVEFOQU1FOiIvdmlldy9tZXRhZGF0YS9vYmplY3QvIitJLk1FVEFJRCx5LmNsYXNzTGlzdC5hZGQoImN1cnNvci1wb2ludGVyIikseS5hZGRFdmVudExpc3RlbmVyKCJjbGlj''@;'; put 'put ''ayIsdWU9Pnt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFopfSkpfX1nZW5lcmF0ZUdyYXBoKGgsdix5KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe2xldCBDPXtTQVNDb250cm9sVGFibGU6W3tjb2x1cmk6aHx8dGhpcy5jb2x1bW4sZGlyZWN0aW9uOnZ8fHRo''@;'; put 'put ''aXMuZGlyZWN0aW9uVGV4dCgpLHJlZnJlc2g6dGhpcy5yZWZyZXNoQ2FjaGU/MTowfV19O3JldHVybiJ1bmRlZmluZWQiPT09Qy5TQVNDb250cm9sVGFibGVbMF0uY29sdXJpJiZ0aGlzLmV2ZW50U2VydmljZS5zaG93QWJvcnRNb2RhbCgiZ2VuZXJhdGVHcmFwaCgpIiwiY29sdXJpIGlzIHVu''@;'; put 'put ''ZGVmaW5lZC4iLHZvaWQgMCwiRnJvbnRlbmQgZXJyb3IiKSx5JiYoQy5TQVNDb250cm9sVGFibGVbMF0ubWF4X2RlcHRoPXkpLHRoaXMudGFibGVGbGFnPSExLHRoaXMuc3dpdGNoRmxhZz0hMCx0aGlzLmdyYXBoQ29udGFpbmVyPSEwLHRoaXMuZ3JhcGhMb2FkaW5nPSEwLHRoaXMudml6SW5w''@;'; put 'put ''dXQ9IiIsbmV3IFByb21pc2UoKEksWik9Pnt0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgibGluZWFnZS9mZXRjaGxpbmVhZ2UiLEMpLnRoZW4odWU9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZigic3RyaW5nIj09dHlwZW9mIHVlKXJldHVybiB0aGlzLnZpeklucHV0PSJk''@;'; put 'put ''aWdyYXBoIEcge1NBUyBFcnJvcn0iLHZvaWQgdGhpcy5idWlsZEdyYXBoKCk7dGhpcy5saW5lYWdlVGFibGVOYW1lPXVlLmluZm9bMF0uTElCUkVGKyIuIit1ZS5pbmZvWzBdLlRBQk5BTUUsdGhpcy5saW5lYWdlQ29sdW1uTmFtZT11ZS5pbmZvWzBdLkNPTE5BTUUsdGhpcy5pZGxvb2t1cD11''@;'; put 'put ''ZS5pZGxvb2t1cDtsZXQgX2U9dWUuZnJvbXNhcyxCZT0iIjtmb3IobGV0IE5lPTA7TmU8X2UubGVuZ3RoO05lKyspQmUrPXVuZXNjYXBlKF9lW05lXS5TVFJJTkcpKyJcbiI7aWYodGhpcy52aXpJbnB1dD1CZXx8ImRpZ3JhcGggRyB7Tm8gTGluZWFnZSBBdmFpbGFibGV9Iix0aGlzLnZpeklu''@;'; put 'put ''cHV0PXRoaXMudml6SW5wdXQucmVwbGFjZSgvXHNkczovZywiXG5kczoiKS5yZXBsYWNlKC9cc1xuL2csIlxuIiksdGhpcy5mbGF0ZGF0YT11ZS5mbGF0ZGF0YSx0aGlzLmxpYnJhcnlMaXN0KXtsZXQgS2UsTmU9dGhpcy5saWJyYXJ5TGlzdC5maW5kKHB0PT51ZS5pbmZvWzBdLkxJQlVSSS50''@;'; put 'put ''b1VwcGVyQ2FzZSgpLmluY2x1ZGVzKHB0LkxJQlJBUllJRC50b1VwcGVyQ2FzZSgpKSk7TmV8fChOZT10aGlzLmxpYnJhcnlMaXN0LmZpbmQocHQ9PnVlLmluZm9bMF0ubGlidXJpLnRvVXBwZXJDYXNlKCkuaW5jbHVkZXMocHQubGlicmFyeWlkLnRvVXBwZXJDYXNlKCkpKSksTmUmJih5aWVs''@;'; put 'put ''ZCB0aGlzLmxpYnJhcnlPbkNsaWNrKE5lLkxJQlJBUllJRCxOZSksTmUudGFibGVzJiYoS2U9TmUudGFibGVzLmZpbmQocHQ9PnB0LlRBQkxFVVJJPT09dWUuaW5mb1swXS5UQUJVUkkpLEtlJiZ0aGlzLnRhYmxlT25DbGljayhLZS5UQUJMRVVSSSxLZSxOZSwhMCkudGhlbigoKT0+e2xldCBw''@;'; put 'put ''dD1LZS5UQUJMRVVSSTtpZihwdCl7Y29uc3QgT3Q9cHQucmVwbGFjZSgiXFwiLCJcXFxcIik7bGV0ICR0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYFtpZD0nJHtPdH0nXWApO3NldFRpbWVvdXQoKCk9PnskdCYmKHRoaXMubG9nZ2VyU2VydmljZS5sb2coImxpYnJhcnlUb1NlbGVjdCIsTmUp''@;'; put 'put ''LCR0LnNjcm9sbEludG9WaWV3KCkpfSwxZTMpfX0pKSxOZSYmKE5lLmV4cGFuZGVkPSEwKSxLZSYmKEtlLmV4cGFuZGVkPSEwKSl9dWUuZnJvbXNhcy5sZW5ndGg+dGhpcy5sYXJnZURvdEZpbGVMaW1pdD90aGlzLmxhcmdlRG90RmlsZUxpbmVzPXVlLmZyb21zYXMubGVuZ3RoOnRoaXMuYnVp''@;'; put 'put ''bGRHcmFwaCgpLEkoKX0pKS5jYXRjaCh1ZT0+e3RoaXMuZ3JhcGhMb2FkaW5nPSExLHRoaXMuZ3JhcGhDb250YWluZXI9ITF9KX0pfSl9Z2V0U1ZHVVJMKCl7bGV0IGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyYXBoIiksdj1uZXcgWE1MU2VyaWFsaXplcix5PW5ldyBCbG9iKFt2LnNl''@;'; put 'put ''cmlhbGl6ZVRvU3RyaW5nKGgpXSx7dHlwZToiaW1hZ2Uvc3ZnK3htbCJ9KTtyZXR1cm4gVVJMLmNyZWF0ZU9iamVjdFVSTCh5KX1nZXRTVkdCbG9iKCl7bGV0IGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyYXBoIiksdj1uZXcgWE1MU2VyaWFsaXplcjtyZXR1cm4gbmV3IEJsb2IoW3Yu''@;'; put 'put ''c2VyaWFsaXplVG9TdHJpbmcoaCldLHt0eXBlOiJpbWFnZS9zdmcreG1sIn0pfWRvd25sb2FkU1ZHKCl7aWYoTG1lLmdyYXBodml6KCIjZ3JhcGgiKS5yZXNldFpvb20oKSxuYXZpZ2F0b3IuYXBwVmVyc2lvbi50b1N0cmluZygpLmluZGV4T2YoIi5ORVQiKT4wKXdpbmRvdy5uYXZpZ2F0b3Iu''@;'; put 'put ''bXNTYXZlQmxvYih0aGlzLmdldFNWR0Jsb2IoKSx0aGlzLmNvbnN0cnVjdE5hbWUoInN2ZyIpKTtlbHNle2xldCBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtoLmhyZWY9dGhpcy5nZXRTVkdVUkwoKSxoLmRvd25sb2FkPXRoaXMuY29uc3RydWN0TmFtZSgic3ZnIiksZG9jdW1lbnQu''@;'; put 'put ''Ym9keS5hcHBlbmRDaGlsZChoKSxoLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChoKX19ZG93bmxvYWRQTkcoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe0xtZS5ncmFwaHZpeigiI2dyYXBoIikucmVzZXRab29tKCksUDd0LnNhdmVTdmdBc1Bu''@;'; put 'put ''Zyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZ3JhcGggc3ZnIiksdGhpcy5jb25zdHJ1Y3ROYW1lKCJwbmciKSl9KX1kb3dubG9hZENTVigpe2xldCBoPXRoaXMuZmxhdGRhdGE7Y29uc3Qgdj0oQmUsTmUpPT5udWxsPT09TmU/IiI6TmUseT1PYmplY3Qua2V5cyhoWzBdKTtsZXQgQz1oLm1h''@;'; put 'put ''cChCZT0+eS5tYXAoTmU9PkpTT04uc3RyaW5naWZ5KEJlW05lXSx2KSkuam9pbigiLCIpKTtDLnVuc2hpZnQoeS5qb2luKCIsIikpO2xldCBJPUMuam9pbigiXHJcbiIpO3ZhciBaPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSx1ZT1uZXcgQmxvYihbSV0se3R5cGU6InRleHQvY3N2In0p''@;'; put 'put ''O2lmKG5hdmlnYXRvci5hcHBWZXJzaW9uLnRvU3RyaW5nKCkuaW5kZXhPZigiLk5FVCIpPjApd2luZG93Lm5hdmlnYXRvci5tc1NhdmVCbG9iKHVlLHRoaXMuY29uc3RydWN0TmFtZSgiY3N2IikpO2Vsc2V7dmFyIF9lPXdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKHVlKTtaLmhyZWY9X2Us''@;'; put 'put ''Wi5kb3dubG9hZD10aGlzLmNvbnN0cnVjdE5hbWUoImNzdiIpLFouY2xpY2soKSx3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTChfZSksWi5yZW1vdmUoKX19Z2V0RG90VXJsKCl7bGV0IHY9bmV3IEJsb2IoW3RoaXMudml6SW5wdXRdLHt0eXBlOiJ0ZXh0L3BsYWluIn0pO3JldHVybiB3aW5k''@;'; put 'put ''b3cuVVJMLmNyZWF0ZU9iamVjdFVSTCh2KX1nZXREb3RCbG9iKCl7cmV0dXJuIG5ldyBCbG9iKFt0aGlzLnZpeklucHV0XSx7dHlwZToidGV4dC9wbGFpbiJ9KX1kb3dubG9hZERvdCgpe2lmKG5hdmlnYXRvci5hcHBWZXJzaW9uLnRvU3RyaW5nKCkuaW5kZXhPZigiLk5FVCIpPjApd2luZG93''@;'; put 'put ''Lm5hdmlnYXRvci5tc1NhdmVCbG9iKHRoaXMuZ2V0RG90QmxvYigpLHRoaXMuY29uc3RydWN0TmFtZSgidHh0IikpO2Vsc2V7bGV0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2guaHJlZj10aGlzLmdldERvdFVybCgpLGguZG93bmxvYWQ9dGhpcy5jb25zdHJ1Y3ROYW1lKCJ0eHQi''@;'; put 'put ''KSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGgpLGguY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGgpfX1zaG93U3ZnKCl7d2luZG93Lm9wZW4odGhpcy5nZXRTVkdVUkwoKSwiX2JsYW5rIil9YnVpbGRHcmFwaChoKXt0aGlzLmV2ZW50U2VydmljZS5jbG9zZVNpZGViYXIo''@;'; put 'put ''KSx0aGlzLmdyYXBoTG9hZGluZz0hMSx0aGlzLmdyYXBoUmVuZGVyaW5nPSEwLHNldFRpbWVvdXQoKCk9PntMbWUuZ3JhcGh2aXooIiNncmFwaCIpLnpvb20oITApLnRvdGFsTWVtb3J5KDY3MTA4ODY0KS5hZGRJbWFnZSgiaHR0cHM6Ly9kYXRhY29udHJvbGxlci5pby93cC1jb250ZW50L3Vw''@;'; put 'put ''bG9hZHMvMjAyMC8wMS9mYzEucG5nIiwiMzBweCIsIjMwcHgiKS5yZW5kZXJEb3QodGhpcy52aXpJbnB1dCwoKT0+e3RoaXMuZ3JhcGhSZW5kZXJpbmc9ITEsdGhpcy5pZGxvb2t1cCYmdGhpcy5tYWtlR3JhcGhMaW5rYWJsZSh0aGlzLmlkbG9va3VwKSxoJiZoKCl9KX0sMTAwKX1jb25zdHJ1''@;'; put 'put ''Y3ROYW1lKGgpe2xldCB2PSIiLHk9IiIsQz0iIixJPWR2dCgpLmZvcm1hdCgiWVlNTUREX0hIbW0iKTtpZih0aGlzLmxpYnJhcnlMaXN0JiZ0aGlzLmxpYnJhcnlMaXN0Lmxlbmd0aCl7bGV0IFo9dGhpcy5saWJyYXJ5TGlzdC5maW5kKHVlPT51ZS5MSUJSQVJZSUQ9PXRoaXMubGliKTtaJiYo''@;'; put 'put ''dj1gXyR7Wi5MSUJSQVJZTkFNRX1gKX1pZih0aGlzLnRhYmxlc0xpc3QmJnRoaXMudGFibGVzTGlzdC5sZW5ndGgpe2xldCBaPXRoaXMudGFibGVzTGlzdC5maW5kKHVlPT51ZS5UQUJMRVVSST09dGhpcy50YWJsZSk7WiYmKHk9YF8ke1ouVEFCTEVOQU1FfWApfWlmKHRoaXMuY29sdW1uc0xp''@;'; put 'put ''c3QmJnRoaXMuY29sdW1uc0xpc3QubGVuZ3RoKXtsZXQgWj10aGlzLmNvbHVtbnNMaXN0LmZpbmQodWU9PnVlLkNPTFVSST09dGhpcy5jb2x1bW4pO1omJihDPWBfJHtaLkNPTE5BTUV9YCl9cmV0dXJuYCR7dGhpcy5kaXJlY3Rpb25UZXh0KCl9JHt2fSR7eX0ke0N9XyR7SX0uJHtofWB9fXJl''@;'; put 'put ''dHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGcyKSxLdChQdSksS3QoWmwpLEt0KFY2KSxLdChtdSksS3Qoc2MpLEt0KFhjKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2VsZWN0b3JzOltbImFwcC1saW5lYWdlIl1dLGhvc3RBdHRyczpbMSwiY29u''@;'; put 'put ''dGVudC1jb250YWluZXIiXSxkZWNsczo1OCx2YXJzOjExLGNvbnN0czpbWzMsInNjcm9sbGVkVG9Cb3R0b20iXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWyJjbGFzcyIsInctMTAwIHRleHQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNv''@;'; put 'put ''bnRlbnQtYXJlYSJdLFsxLCJjYXJkIl0sWyJjbGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxDbG9zYWJsZSJdLFsxLCJtb2RhbC10aXRsZSJdLFsxLCJtb2RhbC1ib2R5Il0sWzEsIm1vZGFsLWZvb3RlciIs''@;'; put 'put ''ImQtZmxleCIsImZsZXgtY29sdW1uIl0sWzEsImJpZ2xpbmVhZ2Utcm93IiwibWItMGkiXSxbInR5cGUiLCJudW1iZXIiLCJtaW4iLCIxIiwicGxhY2Vob2xkZXIiLCJNYXggZGVwdGggdmFsdWUiLDEsImNsci1pbnB1dCIsIm1heC1kZXB0aC1pbnB1dCJdLFsibWF4RGVwdGhEb3QiLCIiXSxb''@;'; put 'put ''MSwibWItMjAiXSxbMSwiYmlnbGluZWFnZS1yb3ciXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsiY2xyRHJvcGRvd25UcmlnZ2VyIiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4tcHJpbWFyeSIsIm10LTMtbmVnYXRpdmUiLDMs''@;'; put 'put ''ImRpc2FibGVkIl0sWyJzaGFwZSIsImNhcmV0IGRvd24iXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLWxlZnQiLDQsImNscklmT3BlbiJdLFsibWF4RGVwdGgiLCIiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRl''@;'; put 'put ''ciIsIkxpYnJhcmllcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xp''@;'; put 'put ''Y2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbHItZXhwYW5kZWQiLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZGVkIiwiY2xy''@;'; put 'put ''TG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsci1leHBhbmRlZCIsImNsaWNrIiwiY2xyRXhwYW5kZWRD''@;'; put 'put ''aGFuZ2UiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIlRhYmxlcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoVHJlZUlucHV0IiwiIl0sWzEs''@;'; put 'put ''Im0tMCIsImN1cnNvci1wb2ludGVyIiwzLCJpZCIsImNsaWNrIl0sWyJzaGFwZSIsInRhYmxlIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiQ29sdW1ucyIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1''@;'; put 'put ''cCJdLFsxLCJjbHItdHJlZW5vZGUtbGluayIsMywiY2xpY2siXSxbInNoYXBlIiwib2JqZWN0cyJdLFsxLCJ3LTEwMCIsInRleHQtY2VudGVyIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLXNtIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRhcmQiLCJz''@;'; put 'put ''aXplIiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxbMSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5Il0sWyJjbGFzcyIsImNhcmQtaGVhZGVyIGQtZmxleCBmbGV4LWNvbHVtbiBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIiw0LCJuZ0lmIl0sWzEsImNhcmQtYmxvY2siXSxbMSwi''@;'; put 'put ''Zm9ybS1ibG9jayIsInN3IiwicG9zaXRpb24tcmVsYXRpdmUiLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbMSwibGluYWdlLXRpdGxlLXdyYXBwZXIiLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiLCJmb250LXdlaWdodC1ib2xkIiwicG9zaXRpb24tYWJzb2x1dGUiXSxb''@;'; put 'put ''ImNsYXNzIiwiY2xyLWNvbC1tZC0xMiB0ZXh0LWNlbnRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZCIsNCwibmdJZiJdLFszLCJtdC0yIiw0LCJuZ0lmIl0sWzEsImNhcmQtaGVhZGVyIiwiZC1mbGV4IiwiZmxleC1jb2x1bW4iLCJqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIl0sWyJjbGFz''@;'; put 'put ''cyIsInRleHQtY2VudGVyIHBiLTEwIiw0LCJuZ0lmIl0sWzEsInRleHQtY2VudGVyIiwicGItMTAiXSxbMywicm91dGVyTGluayJdLFsxLCJjbHItY29sLW1kLTEyIiwidGV4dC1jZW50ZXIiLCJkLWZsZXgiLCJqdXN0aWZ5LWNvbnRlbnQtZW5kIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4i''@;'; put 'put ''LCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxbMSwiYnRuLWdyb3VwIiwiZC1ibG9jayJdLFsxLCJyYWRpbyIsImJ0biIsMywiY2xpY2siXSxbInR5cGUiLCJyYWRpbyIsIm5hbWUiLCJidG4tZ3JvdXAtZGVtby1yYWRpb3MiLDMsImNoZWNrZWQiXSxbMSwibXItMTAiXSxbImNsckRyb3Bkb3du''@;'; put 'put ''VHJpZ2dlciIsIiIsMSwiYnRuIiwiYnRuLWluZm8tb3V0bGluZSIsMywiZGlzYWJsZWQiXSxbImNsYXNzIiwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciIsNCwibmdJZiJdLFsiY2xyUG9zaXRpb24iLCJib3R0b20tbGVmdCJdLFsiY2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayJdLFsi''@;'; put 'put ''Y2xyRHJvcGRvd25JdGVtIiwiIiwzLCJjbGljayIsNCwibmdJZiJdLFsxLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbInR5cGUiLCJjaGVja2JveCIsImNsckNoZWNrYm94IiwiIiwibmFtZSIsInJlZnJlc2hDYWNoZSIsMywibmdNb2RlbCIsImNoYW5nZSIsIm5nTW9kZWxDaGFu''@;'; put 'put ''Z2UiXSxbMSwidGV4dC1jZW50ZXIiXSxbImNsYXNzIiwic3Bpbm5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJwb3NpdGlvbi1yZWxhdGl2ZSIsNCwibmdJZiJdLFsxLCJzcGlubmVyIl0sWzEsInBvc2l0aW9uLXJlbGF0aXZlIl0sWzEsImdyYXBoLXJlbmRlci1zcGlubmVyIl0sWyJjbGFzcyIs''@;'; put 'put ''InNwaW5uZXIgc3Bpbm5lci1zbSIsNCwibmdJZiJdLFsiaWQiLCJncmFwaCJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpe2lmKDEmaCl7Y29uc3QgeT13aSgpO250KDAsImFwcC1zaWRlYmFyIiwwKSxHbigic2Nyb2xsZWRUb0JvdHRvbSIsZnVuY3Rpb24oKXtyZXR1cm4gdi5sb2FkTW9yZUxp''@;'; put 'put ''YnJhcmllcygpfSksbnQoMSwiY2xyLXRyZWUiKSxybigyLE43dCw2LDMsImNsci10cmVlLW5vZGUiLDEpLHJuKDMsSjd0LDIsMSwibmctY29udGFpbmVyIiwyKSxvdCgpLHJuKDQsWDd0LDMsMCwiZGl2IiwzKSxvdCgpLG50KDUsImRpdiIsNCkoNiwiZGl2Iiw1KSxybig3LEs3dCw0LDAsImRp''@;'; put 'put ''diIsNikscm4oOCxjdnQsOCw0LCJuZy1jb250YWluZXIiLDcpLG90KCkoKSxudCg5LCJjbHItbW9kYWwiLDgpKDEwLCJoMyIsOSksWXQoMTEsIkxpbWl0IERvdCBEZXB0aCIpLG90KCksbnQoMTIsImRpdiIsMTApKDEzLCJwIiksWXQoMTQsIkVudGVyIHRoZSBkZXB0aCBudW1iZXIgeW91IHdv''@;'; put 'put ''dWxkIGxpa2UgdG8gbGltaXQgRE9UIHJlbmRlcmluZyB0bzoiKSxvdCgpKCksbnQoMTUsImRpdiIsMTEpKDE2LCJkaXYiLDEyKSxDcigxNywiaW5wdXQiLDEzLDE0KSxvdCgpLG50KDE5LCJjbHItY29udHJvbC1oZWxwZXIiLDE1KSxZdCgyMCwiVG8gcmVuZGVyIHdpdGggdW5saW1pdGVkIGRl''@;'; put 'put ''cHRoLCBsZWF2ZSB0aGUgaW5wdXQgZW1wdHkiKSxvdCgpLG50KDIxLCJkaXYiLDE2KSgyMiwiYnV0dG9uIiwxNyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmxpbWl0RG90RGVwdGg9ITF9KSxZdCgyMywiIENhbmNlbCAiKSxvdCgpLG50KDI0LCJidXR0b24iLDE3KSxHbigiY2xp''@;'; put 'put ''Y2siLGZ1bmN0aW9uKCl7aXQoeSk7Y29uc3QgST12YSgxOCk7cmV0dXJuIHYucmVzdWJtaXRXaXRoTWF4RGVwdGgoSS52YWx1ZSksYSh2LmxpbWl0RG90RGVwdGg9ITEpfSksWXQoMjUsIiBSZXN1Ym1pdCAiKSxvdCgpKCkoKSgpLG50KDI2LCJjbHItbW9kYWwiLDgpKDI3LCJoMyIsOSksWXQo''@;'; put 'put ''MjgsIldhcm5pbmciKSxvdCgpLG50KDI5LCJkaXYiLDEwKSgzMCwicCIpLFl0KDMxKSxvdCgpKCksbnQoMzIsImRpdiIsMTEpKDMzLCJkaXYiLDE2KSgzNCwicCIpLFl0KDM1LCJSZW5kZXIgYW55d2F5ICh0aGlzIG1heSB0YWtlIGEgbG9uZyB0aW1lKSIpLG90KCksbnQoMzYsImJ1dHRvbiIs''@;'; put 'put ''MTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jb250aW51ZVJlbmRlcmluZ0dyYXBoKCl9KSxZdCgzNywiIFJlbmRlciAiKSxvdCgpKCksbnQoMzgsImRpdiIsMTYpKDM5LCJwIiksWXQoNDAsIkRvd25sb2FkIHRoZSByZXN1bHQgKFBORyAmIFNWRyByZXF1aXJlIHJlbmRlcmlu''@;'; put 'put ''ZykiKSxvdCgpLG50KDQxLCJjbHItZHJvcGRvd24iKSg0MiwiYnV0dG9uIiwxOCksWXQoNDMsIiBEb3dubG9hZCAiKSxDcig0NCwiY2xyLWljb24iLDE5KSxvdCgpLHJuKDQ1LGh2dCw2LDEsImNsci1kcm9wZG93bi1tZW51IiwyMCksb3QoKSgpLG50KDQ2LCJkaXYiLDE2KSg0NywicCIpLFl0''@;'; put 'put ''KDQ4LCJSZXN1Ym1pdCB3aXRoIGEgbWF4LWRlcHRoIChzcGVjaWZ5IGRlcHRoKSIpLG90KCksQ3IoNDksImlucHV0IiwxMywyMSksbnQoNTEsImJ1dHRvbiIsMTcpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdCh5KTtjb25zdCBJPXZhKDUwKTtyZXR1cm4gYSh2LnJlc3VibWl0V2l0aE1heERl''@;'; put 'put ''cHRoKEkudmFsdWUpKX0pLFl0KDUyLCIgUmVzdWJtaXQgIiksb3QoKSgpLG50KDUzLCJkaXYiLDE2KSg1NCwicCIpLFl0KDU1LCJDYW5jZWwgdGhpcyBzdWJtaXNzaW9uIiksb3QoKSxudCg1NiwiYnV0dG9uIiwxNyksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LmNhbmNlbFJlbmRl''@;'; put 'put ''cmluZ0dyYXBoKCl9KSxZdCg1NywiIENhbmNlbCAiKSxvdCgpKCkoKSgpfTImaCYmKHV0KDIpLFR0KCJuZ0lmIix2LmxpYnJhcnlMaXN0KSx1dCgxKSxUdCgibmdGb3JPZiIsdi5saWJyYXJ5TGlzdCksdXQoMSksVHQoIm5nSWYiLHYubGlicmFyaWVzUGFnaW5nKSx1dCgzKSxUdCgibmdJZiIs''@;'; put 'put ''IXYuY29sdW1uJiYhdi50YWJsZSksdXQoMSksVHQoIm5nSWYiLHYuY29sdW1ufHx2LnRhYmxlKSx1dCgxKSxUdCgiY2xyTW9kYWxPcGVuIix2LmxpbWl0RG90RGVwdGgpKCJjbHJNb2RhbENsb3NhYmxlIiwhMSksdXQoMTcpLFR0KCJjbHJNb2RhbE9wZW4iLG51bGwhPT12LmxhcmdlRG90Rmls''@;'; put 'put ''ZUxpbmVzKSgiY2xyTW9kYWxDbG9zYWJsZSIsITEpLHV0KDUpLEppKCIgVGhlIGdlbmVyYXRlZCBkb3QgZmlsZSBoYXMgIix2LmxhcmdlRG90RmlsZUxpbmVzLCIgbGluZXMuIFJlbmRlcmluZyBtYXkgdGFrZSBhIGxvbmcgdGltZSwgaG93IHdvdWxkIHlvdSBsaWtlIHRvIHByb2NlZWQ/ICIp''@;'; put 'put ''LHV0KDExKSxUdCgiZGlzYWJsZWQiLCF2LmNvbHVtbiYmIXYudGFibGUpKX0sZGVwZW5kZW5jaWVzOlt4cyxObyxtMSxJZixUcyxJcyx2Nyx5dixfZyxRTCx3bCxpZCxvZCxnbyxQYSxhdCxSZSxSbyxPaSxwdix3dixiUyxfUyxKTCxNU10sc3R5bGVzOlsiLnRvZ2dsZS1zd2l0Y2hbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVdICAgaW5wdXRbdHlwZT1jaGVja2JveF1bX25nY29udGVudC0lQ09NUCVdOmNoZWNrZWQgKyBsYWJlbFtfbmdjb250ZW50LSVDT01QJV06YmVmb3Jle2JvcmRlci1jb2xvcjojMzE0MzUxO2JhY2tncm91bmQtY29sb3I6IzMxNDM1MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjou''@;'; put 'put ''MTVzIGVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpib3JkZXItY29sb3IsYmFja2dyb3VuZC1jb2xvcn0jZ3JhcGhbX25nY29udGVudC0lQ09NUCVde2hlaWdodDpjYWxjKDEwMHZoIC0gMTk1cHgpO292ZXJmbG93OmhpZGRlbjt0ZXh0LWFsaWduOmNlbnRlcjtkaXNwbGF5OmJsb2NrO3dp''@;'; put 'put ''ZHRoOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCAjZTRlNGU0O21hcmdpbi10b3A6MTBweH0uc2VsZWN0aW9uLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCU7bWF4LXdpZHRoOjY3MHB4fS5jb2x1bW4tYWN0aXZlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kOiNkOGUz''@;'; put 'put ''ZTk7Y29sb3I6IzAwMH0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXXtwYWRkaW5nOi41cmVtIWltcG9ydGFudH0uY29udGVudC1hcmVhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIC5jYXJkW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OmNhbGMoMTAwdmggLSAxMjBweCl9LmNv''@;'; put 'put ''bnRlbnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV0gICAuY2FyZFtfbmdjb250ZW50LSVDT01QJV0gICAuY2FyZC1ibG9ja1tfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNXJlbSAuMzVyZW0haW1wb3J0YW50fWNsci10cmVlLW5vZGVbX25nY29udGVudC0lQ09NUCVdICAgYnV0dG9uW19u''@;'; put 'put ''Z2NvbnRlbnQtJUNPTVAlXXt3aGl0ZS1zcGFjZTpub3dyYXB9LmdyYXBoLXJlbmRlci1zcGlubmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDt3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21hcmdpbi10b3A6MTBweH0u''@;'; put 'put ''YmlnbGluZWFnZS1yb3dbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXI7bWFyZ2luLWJvdHRvbToyMHB4fS5tb2RhbC1mb290ZXJbX25nY29udGVudC0lQ09NUCVdICAgcFtfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV17bWFyZ2luOjB9LmxpbmVhZ2UtdGl0bGUtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV17bGVmdDoxMnB4fS5tYXgtZGVwdGgtaW5wdXRbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjEwMCV9QG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KXsudG9nZ2xlLXN3aXRjaC1jb250YWluZXJb''@;'; put 'put ''X25nY29udGVudC0lQ09NUCVde21hcmdpbi1ib3R0b206MjBweH19Il19KSxkfSkoKTtmdW5jdGlvbiBwdnQoZCxnKXtpZigxJmQmJihudCgwLCJvcHRpb24iLDEwKSxZdCgxKSxvdCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7STYoInZhbHVlIixoKSx1dCgxKSxKaSgiICIsaCwiICIp''@;'; put 'put ''fX1mdW5jdGlvbiBndnQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiwxNyl9ZnVuY3Rpb24gbXZ0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWljb24iLDE4KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgyKTtyZXR1cm4geS5tZXRhRGF0YVNl''@;'; put 'put ''YXJjaD0iIixhKHkubWV0YUxpc3RPbkZpbHRlcigpKX0pLG90KCl9fWZ1bmN0aW9uIHZ2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10cmVlLW5vZGUiLDExKSgxLCJkaXYiLDEyKSgyLCJpbnB1dCIsMTMsMTQpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXty''@;'; put 'put ''ZXR1cm4gaXQoaCksYShRdCgpLm1ldGFEYXRhU2VhcmNoPXkpfSkoImtleXVwIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkubWV0YUxpc3RPbkZpbHRlcigpKX0pLG90KCkscm4oNCxndnQsMSwwLCJjbHItaWNvbiIsMTUpLHJuKDUsbXZ0LDEsMCwiY2xyLWljb24iLDE2KSxvdCgp''@;'; put 'put ''KCl9aWYoMiZkKXtjb25zdCBoPXZhKDMpLHY9UXQoKTt1dCgyKSxUdCgibmdNb2RlbCIsdi5tZXRhRGF0YVNlYXJjaCksdXQoMiksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPDEpLHV0KDEpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aD4wKX19ZnVuY3Rpb24gQXZ0KGQsZyl7aWYoMSZkKXtj''@;'; put 'put ''b25zdCBoPXdpKCk7bnQoMCwiY2xyLXRyZWUtbm9kZSIsMjApLEduKCJjbGljayIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgpLiRpbXBsaWNpdCxJPVF0KCk7cmV0dXJuIGEoSS50cmVlTm9kZUNsaWNrZWQoeSxDLEkubWV0YURhdGFMaXN0KSl9KSgiY2xyRXhwYW5kZWRDaGFuZ2Ui''@;'; put 'put ''LGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KCkuJGltcGxpY2l0LmV4cGFuZGVkPXkpfSksbnQoMSwicCIsMjEpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KCkuJGltcGxpY2l0LEM9UXQoKTtyZXR1cm4gQy5tZXRhRGF0YUlkPXkuSUQsYShDLm1ldGFEYXRh''@;'; put 'put ''T25DbGljayhDLm1ldGFEYXRhSWQseSkpfSksQ3IoMiwiY2xyLWljb24iLDIyKSxZdCgzKSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0O1R0KCJjbHJFeHBhbmRlZCIsaC5leHBhbmRlZCkoImNsckxvYWRpbmciLGgubG9hZGluZ1RhYmxlcyYmIWgudGFibGVzKSx1dCgz''@;'; put 'put ''KSxKaSgiICIsaC5JRCwiICIpfX1mdW5jdGlvbiB5dnQoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLEF2dCw0LDMsImNsci10cmVlLW5vZGUiLDE5KSxQMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbil9fWZ1bmN0aW9uIHd2dChkLGcpezEm''@;'; put 'put ''ZCYmKG50KDAsImRpdiIsMjMpLENyKDEsImNsci1pY29uIiwyNCksbnQoMiwiaDMiLDI1KSxZdCgzLCJQbGVhc2Ugc2VsZWN0IGEgdHlwZSIpLG90KCkoKSl9ZnVuY3Rpb24gYnZ0KGQsZyl7MSZkJiYobnQoMCwiaDQiKSxZdCgxLCJMb2FkaW5nIG1ldGFkYXRhIHR5cGVzIiksb3QoKSl9ZnVu''@;'; put 'put ''Y3Rpb24gX3Z0KGQsZyl7MSZkJiYobnQoMCwiaDQiKSxZdCgxLCJMb2FkaW5nIG1ldGFkYXRhIG9iamVjdHMiKSxvdCgpKX1mdW5jdGlvbiBDdnQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiKSxybigxLGJ2dCwyLDAsImg0IiwyOCkscm4oMixfdnQsMiwwLCJoNCIsMjgpLG90KCkpLDImZCl7''@;'; put 'put ''Y29uc3QgaD1RdCgyKTt1dCgxKSxUdCgibmdJZiIsaC5tZXRhdHlwZXNMb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsIWgubWV0YXR5cGVzTG9hZGluZyl9fWZ1bmN0aW9uIGt2dChkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMjYpKDEsInNwYW4iLDI3KSxZdCgyLCIgTG9hZGluZy4uLiAiKSxv''@;'; put 'put ''dCgpLHJuKDMsQ3Z0LDMsMiwiZGl2IiwyOCksb3QoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoMyksVHQoIm5nSWYiLGgubG9hZGluZyl9fWZ1bmN0aW9uIFN2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImRpdiIsMzUpKDEsImlucHV0IiwzNiwzNyksR24oIm5nTW9kZWxDaGFu''@;'; put 'put ''Z2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLm1ldGFPYmplY3RTZWFyY2g9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMikubWV0YU9iamVjdE9uRmlsdGVyKCkpfSksb3QoKSgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxUdCgibmdN''@;'; put 'put ''b2RlbCIsaC5tZXRhT2JqZWN0U2VhcmNoKX19ZnVuY3Rpb24gTXZ0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNDEpfWZ1bmN0aW9uIEV2dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDIyKX1mdW5jdGlvbiB4dnQoZCxnKXtpZigxJmQmJihudCgwLCJwIiw1MiksWXQoMSksb3QoKSks''@;'; put 'put ''MiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0O3V0KDEpLEppKCIgIixoLlVSSSwiICIpfX1mdW5jdGlvbiBUdnQoZCxnKXtpZigxJmQmJihudCgwLCJjbHItdHJlZS1ub2RlIiw0NykoMSwiZGl2Iiw0OCkscm4oMixNdnQsMSwwLCJjbHItaWNvbiIsNDkpLHJuKDMsRXZ0LDEsMCwiY2xyLWlj''@;'; put 'put ''b24iLDUwKSxZdCg0KSxybig1LHh2dCwyLDEsInAiLDUxKSxvdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgiY2xyRXhwYW5kYWJsZSIsITApLHV0KDEpLEZpKCJvYmplY3QtaGVhZGVyIiwhaC5jb3VudCksdXQoMSksVHQoIm5nSWYiLCFoLmNvdW50KSx1dCgxKSxUdCgibmdJ''@;'; put 'put ''ZiIsaC5jb3VudCksdXQoMSksSmkoIiAiLGguZGlzcGxheSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jb3VudCl9fWZ1bmN0aW9uIEl2dChkLGcpe2lmKDEmZCYmKG50KDAsImNsci10cmVlIiw0NSkscm4oMSxUdnQsNiw3LCJjbHItdHJlZS1ub2RlIiw0Niksbm4oMiwiYXN5bmMiKSxvdCgp''@;'; put 'put ''KSwyJmQpe2NvbnN0IGg9UXQoNik7VHQoImNsckxhenkiLCEwKSx1dCgxKSxUdCgiY2xyUmVjdXJzaXZlRm9yT2YiLHp0KDIsMyxoLnJvb3QkKSkoImNsclJlY3Vyc2l2ZUZvckdldENoaWxkcmVuIixoLmdldENoaWxkcmVuKX19ZnVuY3Rpb24gRHZ0KGQsZyl7aWYoMSZkJiYobnQoMCwiY2xy''@;'; put 'put ''LWFjY29yZGlvbi1jb250ZW50Iikscm4oMSxJdnQsMyw1LCJjbHItdHJlZSIsNDQpLG90KCkpLDImZCl7Y29uc3QgaD1RdCg1KTt1dCgxKSxUdCgibmdJZiIsaC5zaG93QWNjKX19ZnVuY3Rpb24gTHZ0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWFjY29yZGlvbi1wYW5l''@;'; put 'put ''bCIsNDApLEduKCJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKHkpe2l0KGgpO2NvbnN0IEM9UXQoKS4kaW1wbGljaXQsST1RdCgzKTtyZXR1cm4gYSh5P0kucGFuZWxDaGFuZ2UoeSxDKToiIil9KSxudCgxLCJjbHItYWNjb3JkaW9uLXRpdGxlIiksQ3IoMiwiY2xyLWlj''@;'; put 'put ''b24iLDQxKSxZdCgzKSxudCg0LCJwIiw0MiksWXQoNSksb3QoKSgpLHJuKDYsRHZ0LDIsMSwiY2xyLWFjY29yZGlvbi1jb250ZW50Iiw0Myksb3QoKX1pZigyJmQpe2NvbnN0IGg9UXQoKS4kaW1wbGljaXQ7dXQoMyksSmkoIiAiLGguTkFNRSwiICIpLHV0KDIpLGppKGguSUQpfX1mdW5jdGlv''@;'; put 'put ''biBPdnQoZCxnKXtpZigxJmQmJihCMCgwKSxybigxLEx2dCw3LDIsImNsci1hY2NvcmRpb24tcGFuZWwiLDM5KSxQMCgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMSksVHQoIm5nSWYiLCFoLmhpZGRlbil9fWZ1bmN0aW9uIFJ2dChkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMzgp''@;'; put 'put ''KDEsImNsci1hY2NvcmRpb24iKSxybigyLE92dCwyLDEsIm5nLWNvbnRhaW5lciIsNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMiksVHQoIm5nRm9yT2YiLGgubWV0YU9iamVjdFNob3dMaXN0KX19ZnVuY3Rpb24gQnZ0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsNDEpfWZ1''@;'; put 'put ''bmN0aW9uIFB2dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDIyKX1mdW5jdGlvbiBGdnQoZCxnKXtpZigxJmQmJihudCgwLCJwIiw1MiksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0O3V0KDEpLEppKCIgIixoLlVSSSwiICIpfX1mdW5jdGlvbiBIdnQoZCxnKXtp''@;'; put 'put ''ZigxJmQmJihudCgwLCJjbHItdHJlZS1ub2RlIiw0NykoMSwiZGl2Iiw0OCkscm4oMixCdnQsMSwwLCJjbHItaWNvbiIsNDkpLHJuKDMsUHZ0LDEsMCwiY2xyLWljb24iLDUwKSxZdCg0KSxybig1LEZ2dCwyLDEsInAiLDUxKSxvdCgpKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdDtUdCgi''@;'; put 'put ''Y2xyRXhwYW5kYWJsZSIsITApLHV0KDEpLEZpKCJvYmplY3QtaGVhZGVyIiwhaC5jb3VudCksdXQoMSksVHQoIm5nSWYiLCFoLmNvdW50KSx1dCgxKSxUdCgibmdJZiIsaC5jb3VudCksdXQoMSksSmkoIiAiLGguZGlzcGxheSwiICIpLHV0KDEpLFR0KCJuZ0lmIiwhaC5jb3VudCl9fWZ1bmN0''@;'; put 'put ''aW9uIE52dChkLGcpe2lmKDEmZCYmKG50KDAsImNsci10cmVlIiw0NSkscm4oMSxIdnQsNiw3LCJjbHItdHJlZS1ub2RlIiw0Niksbm4oMiwiYXN5bmMiKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoNCk7VHQoImNsckxhenkiLCEwKSx1dCgxKSxUdCgiY2xyUmVjdXJzaXZlRm9yT2YiLHp0KDIs''@;'; put 'put ''MyxoLnJvb3QkKSkoImNsclJlY3Vyc2l2ZUZvckdldENoaWxkcmVuIixoLmdldENoaWxkcmVuKX19ZnVuY3Rpb24gVnZ0KGQsZyl7aWYoMSZkJiYoQjAoMCksbnQoMSwiZGl2Iiw1MyksQ3IoMiwiY2xyLWljb24iLDQxKSxudCgzLCJkaXYiLDU0KSg0LCJwIiw1NSksWXQoNSksb3QoKSxudCg2''@;'; put 'put ''LCJwIiw1NiksWXQoNyksb3QoKSgpKCkscm4oOCxOdnQsMyw1LCJjbHItdHJlZSIsNDQpLFAwKCkpLDImZCl7Y29uc3QgaD1nLiRpbXBsaWNpdCx2PVF0KDMpO3V0KDUpLEppKCIgIixoLk5BTUUsIiAiKSx1dCgyKSxKaSgiICIsaC5JRCwiICIpLHV0KDEpLFR0KCJuZ0lmIix2LnNob3dBY2Mp''@;'; put 'put ''fX1mdW5jdGlvbiBqdnQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDM4KSxybigxLFZ2dCw5LDMsIm5nLWNvbnRhaW5lciIsNCksb3QoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDEpLFR0KCJuZ0Zvck9mIixoLm1ldGFPYmplY3RTaG93TGlzdCl9fWZ1bmN0aW9uIFp2dChkLGcpe2lmKDEm''@;'; put 'put ''ZCYmKG50KDAsImNsci1kZy1yb3ciKSgxLCJjbHItZGctY2VsbCIpLFl0KDIpLG90KCksbnQoMywiY2xyLWRnLWNlbGwiKSxZdCg0KSxvdCgpLG50KDUsImNsci1kZy1jZWxsIiksWXQoNiksb3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMiksamkoaC5UWVBFKSx1dCgyKSxq''@;'; put 'put ''aShoLk5BTUUpLHV0KDIpLGppKGguVkFMVUUpfX1jb25zdCB6dnQ9ZnVuY3Rpb24oKXtyZXR1cm5bMTAsMjAsNTAsMTAwXX07ZnVuY3Rpb24gR3Z0KGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLWRhdGFncmlkIiw1NykoMSwiY2xyLWRnLWNvbHVtbiIpLFl0KDIsIiBUWVBFICIpLENyKDMsImNs''@;'; put 'put ''ci1kZy1zdHJpbmctZmlsdGVyIiw1OCksb3QoKSxudCg0LCJjbHItZGctY29sdW1uIiksWXQoNSwiIE5BTUUgIiksQ3IoNiwiY2xyLWRnLXN0cmluZy1maWx0ZXIiLDU4KSxvdCgpLG50KDcsImNsci1kZy1jb2x1bW4iKSxZdCg4LCIgVkFMVUUgIiksQ3IoOSwiY2xyLWRnLXN0cmluZy1maWx0''@;'; put 'put ''ZXIiLDU4KSxvdCgpLHJuKDEwLFp2dCw3LDMsImNsci1kZy1yb3ciLDU5KSxudCgxMSwiY2xyLWRnLWZvb3RlciIpKDEyLCJjbHItZGctcGFnaW5hdGlvbiIsNjAsNjEpKDE0LCJjbHItZGctcGFnZS1zaXplIiw2MiksWXQoMTUsIkF0dHJpYnV0ZXMgcGVyIHBhZ2UiKSxvdCgpLFl0KDE2KSxv''@;'; put 'put ''dCgpKCkoKSksMiZkKXtjb25zdCBoPXZhKDEzKSx2PVF0KDIpO3V0KDMpLFR0KCJjbHJEZ1N0cmluZ0ZpbHRlciIsdi50eXBlRmlsdGVyKSx1dCgzKSxUdCgiY2xyRGdTdHJpbmdGaWx0ZXIiLHYubmFtZUZpbHRlciksdXQoMyksVHQoImNsckRnU3RyaW5nRmlsdGVyIix2LnZhbHVlRmlsdGVy''@;'; put 'put ''KSx1dCgxKSxUdCgiY2xyRGdJdGVtc09mIix2Lm1ldGFPYmplY3RBdHRyaWJ1dGVzKSx1dCgyKSxUdCgiY2xyRGdQYWdlU2l6ZSIsMTApLHV0KDIpLFR0KCJjbHJQYWdlU2l6ZU9wdGlvbnMiLGNzKDksenZ0KSksdXQoMiksa2YoIiAiLGguZmlyc3RJdGVtKzEsIiAtICIsaC5sYXN0SXRlbSsx''@;'; put 'put ''LCIgb2YgIixoLnRvdGFsSXRlbXMsIiBBdHRyaWJ1dGVzICIpfX1mdW5jdGlvbiBXdnQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDI5KSgxLCJkaXYiLDMwKSxybigyLFN2dCwzLDEsImRpdiIsMzEpLENyKDMsImJyIikscm4oNCxSdnQsMywxLCJkaXYiLDMyKSxybig1LGp2dCwyLDEsImRp''@;'; put 'put ''diIsMzIpLG90KCksbnQoNiwiZGl2IiwzMykoNywiaDMiKSxZdCg4KSxvdCgpLHJuKDksR3Z0LDE3LDEwLCJjbHItZGF0YWdyaWQiLDM0KSxvdCgpKCkpLDImZCl7Y29uc3QgaD1RdCgpO3V0KDIpLFR0KCJuZ0lmIixoLm1ldGFPYmplY3RMaXN0JiYhaC5vYmplY3RSb3V0ZSksdXQoMiksVHQo''@;'; put 'put ''Im5nSWYiLCFoLm9iamVjdFZpZXcpLHV0KDEpLFR0KCJuZ0lmIixoLm9iamVjdFZpZXcpLHV0KDMpLGppKGguYXNzb09iamVjdFNlbGVjdGVkKSx1dCgxKSxUdCgibmdJZiIsaC5zaG93VGFibGUpfX1sZXQgT21lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFope3RoaXMu''@;'; put 'put ''ZXZlbnRTZXJ2aWNlPWgsdGhpcy5zYXNTZXJ2aWNlPXYsdGhpcy5oZWxwZXJTZXJ2aWNlPXksdGhpcy5sb2NhdGlvbj1DLHRoaXMucm91dGVyPUksdGhpcy5yb3V0ZT1aLHRoaXMubWV0YURhdGFTZWFyY2g9IiIsdGhpcy5tZXRhT2JqZWN0U2VhcmNoPSIiLHRoaXMubWV0YU9iamVjdEFzc29j''@;'; put 'put ''aWF0aW9ucz1bXSx0aGlzLm1ldGFPYmplY3RBdHRyaWJ1dGVzPVtdLHRoaXMuc2hvd1RhYmxlPSExLHRoaXMuc2hvd0FjYz0hMSx0aGlzLm1ldGFEYXRhSWQ9IiIsdGhpcy5sb2FkaW5nPSEwLHRoaXMubWV0YXR5cGVzTG9hZGluZz0hMCx0aGlzLm1ldGFPYmplY3RTaXplPTIwMCx0aGlzLmFz''@;'; put 'put ''c29UeXBlU2VsZWN0ZWQ9IiIsdGhpcy5hc3NvT2JqZWN0U2VsZWN0ZWQ9IiIsdGhpcy5yZXBvc2l0b3J5PSIiLHRoaXMub2JqZWN0Um91dGU9ITEsdGhpcy5zaG93RGF0YT0hMSx0aGlzLm9iamVjdFZpZXc9ITEsdGhpcy5nZXRDaGlsZHJlbj11ZT0+dWUuY291bnQ/YWEodWUuZGV0YWlscyk6''@;'; put 'put ''dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YWRldGFpbHMiLHtTQVNDb250cm9sVGFibGU6W3tvYmplY3R1cmk6dWUuQVNTT0NVUkl9XX0pLnRoZW4oQmU9Pnt0aGlzLnNob3dUYWJsZT0hMCx0aGlzLm1ldGFPYmplY3RBdHRyaWJ1dGVzPUJlLmF0dHJpYnV0ZXMsdGhpcy5h''@;'; put 'put ''c3NvT2JqZWN0U2VsZWN0ZWQ9dWUuTkFNRTtsZXQgTmU9dGhpcy5yb3V0ZXIudXJsO3JldHVybiB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLm9iamVjdFJvdXRlP05lLnNsaWNlKDAsTmUubGFzdEluZGV4T2YoIm9iamVjdCIpKSsib2JqZWN0LyIrdWUuQVNTT0NVUkkuc2xpY2Uo''@;'; put 'put ''MSt1ZS5BU1NPQ1VSSS5pbmRleE9mKCJcXCIpKTpOZSsiL29iamVjdC8iK3VlLkFTU09DVVJJLnNsaWNlKDErdWUuQVNTT0NVUkkuaW5kZXhPZigiXFwiKSkpLHRoaXMuZ2V0QXNzb3NpYXRpb25zQ291bnQoQmUuYXNzb2NpYXRpb25zKX0pLHRoaXMuZGVib3VuY2U9ITF9bmdPbkluaXQoKXtu''@;'; put 'put ''aS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbj0idmlldy9tZXRhZGF0YSIsdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCIvdmlldy9tZXRhZGF0YS9vYmplY3QvIikmJih0aGlzLm9iamVjdFJvdXRlPSEwLHRoaXMub2JqZWN0Vmlldz0hMCksdGhpcy5wYWdlU2l6ZT01LG5pLm1ldGFkYXRhLm1l''@;'; put 'put ''dGFEYXRhTGlzdCYmbmkubWV0YWRhdGEubWV0YVJlcG9zaXRvcmllcyYmIXRoaXMub2JqZWN0Um91dGU/KHRoaXMubWV0YURhdGFMaXN0PW5pLm1ldGFkYXRhLm1ldGFEYXRhTGlzdCx0aGlzLnJlcG9zaXRvcmllcz1uaS5tZXRhZGF0YS5tZXRhUmVwb3NpdG9yaWVzLHRoaXMucmVwb3NpdG9y''@;'; put 'put ''eT1uaS5tZXRhZGF0YS5zZWxlY3RlZFJlcG9zaXRvcnksdGhpcy5sb2FkaW5nPSExLHRoaXMubWV0YXR5cGVzTG9hZGluZz0hMSx0aGlzLm1ldGFEYXRhU2VhcmNoPW5pLm1ldGFkYXRhLm1ldGFEYXRhU2VhcmNoKToodGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0YXR5cGVz''@;'; put 'put ''IixudWxsKS50aGVuKGg9Pnt0aGlzLm1ldGFEYXRhTGlzdD1oLnR5cGVzLG5pLm1ldGFkYXRhLm1ldGFEYXRhTGlzdD10aGlzLm1ldGFEYXRhTGlzdCx0aGlzLmxvYWRpbmc9ITEsdGhpcy5tZXRhdHlwZXNMb2FkaW5nPSExfSksdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoIm1ldGFuYXYvbWV0''@;'; put 'put ''YXJlcG9zIixudWxsKS50aGVuKGg9PntsZXQgdj0hMTt0aGlzLnJlcG9zaXRvcmllcz1bXTtmb3IobGV0IHk9MDt5PGgub3V0cmVwb3MubGVuZ3RoO3krKyl0aGlzLnJlcG9zaXRvcmllcy5wdXNoKGgub3V0cmVwb3NbeV0uTkFNRSksIkZvdW5kYXRpb24iPT09aC5vdXRyZXBvc1t5XS5OQU1F''@;'; put 'put ''JiYodj0hMCk7aWYodGhpcy5yZXBvc2l0b3J5PXY/IkZvdW5kYXRpb24iOmgub3V0cmVwb3NbMF0uTkFNRSxuaS5tZXRhZGF0YS5tZXRhUmVwb3NpdG9yaWVzPXRoaXMucmVwb3NpdG9yaWVzLG5pLm1ldGFkYXRhLnNlbGVjdGVkUmVwb3NpdG9yeT10aGlzLnJlcG9zaXRvcnksdGhpcy5vYmpl''@;'; put 'put ''Y3RSb3V0ZSl7dGhpcy5ldmVudFNlcnZpY2UuY2xvc2VTaWRlYmFyKCksdGhpcy5zaG93RGF0YT0hMDtsZXQgeT0iIixDPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLm9iamVjdElEO3RoaXMubWV0YU9iamVjdExpc3Q9W10sdGhpcy5tZXRhT2JqZWN0TGlzdC5wdXNoKHtJRDpDLE5BTUU6''@;'; put 'put ''eX0pLHRoaXMubWV0YU9iamVjdFNob3dMaXN0PXRoaXMubWV0YU9iamVjdExpc3QsdGhpcy5tZXRhT2JqZWN0T25DbGljayh0aGlzLm1ldGFPYmplY3RTaG93TGlzdFswXS5JRCx0aGlzLm1ldGFPYmplY3RTaG93TGlzdFswXSl9fSkpfXRyZWVOb2RlQ2xpY2tlZChoLHYseSl7IkNvbGxhcHNl''@;'; put 'put ''Ij09PWgudGFyZ2V0LnRpdGxlJiZ0aGlzLmNvbGxhcHNlVHJlZUl0ZW1zKHksdil9Y29sbGFwc2VUcmVlSXRlbXMoaCx2KXtoLmZvckVhY2goeT0+e0pTT04uc3RyaW5naWZ5KHkpIT09SlNPTi5zdHJpbmdpZnkodikmJih5LmV4cGFuZGVkPSExKX0pfW1ldGFEYXRhT25DbGljayhoLHYpe3Ro''@;'; put 'put ''aXMub2JqZWN0Vmlldz0hMSx0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSgiL3ZpZXcvbWV0YWRhdGEiKSx0aGlzLnNob3dEYXRhPSExLHRoaXMubG9hZGluZz0hMCx0aGlzLnNlbGVjdG1ldGFEYXRhKGgsdil9bWV0YU9iamVjdE9uQ2xpY2soaCx2KXt0aGlzLmFzc29PYmplY3RTZWxlY3Rl''@;'; put 'put ''ZD0iIC4gIix0aGlzLnNob3dBY2M9ITEsdGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLnNlbGVjdG1ldGFPYmplY3QoaCx2KX1zZWxlY3RtZXRhRGF0YShoLHYpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3Qo''@;'; put 'put ''Im1ldGFuYXYvbWV0YW9iamVjdHMiLHtTQVNDb250cm9sVGFibGU6W3ttZXRhdHlwZTpoLHJlcG86dGhpcy5yZXBvc2l0b3J5fV19KS50aGVuKEM9Pnt0aGlzLm1ldGFPYmplY3RMaXN0PUMub2JqZWN0cyx0aGlzLmdldE1ldGFPYmplY3RBdHRyaWJ1dGVzKHRoaXMubWV0YU9iamVjdFNpemUp''@;'; put 'put ''LHRoaXMubG9hZGluZz0hMSx0aGlzLmFzc29UeXBlU2VsZWN0ZWQ9aCx0aGlzLmV2ZW50U2VydmljZS5jbG9zZVNpZGViYXIoKSx0aGlzLnNob3dEYXRhPSEwfSl9KX1zZWxlY3RtZXRhT2JqZWN0KGgsdil7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0aGlzLnNh''@;'; put 'put ''c1NlcnZpY2UucmVxdWVzdCgibWV0YW5hdi9tZXRhZGV0YWlscyIse1NBU0NvbnRyb2xUYWJsZTpbe29iamVjdHVyaTpofV19KS50aGVuKEM9Pnt0aGlzLm1ldGFPYmplY3RBc3NvY2lhdGlvbnM9Qy5hc3NvY2lhdGlvbnMsdGhpcy5yb290JD1hYSh0aGlzLmdldEFzc29zaWF0aW9uc0NvdW50''@;'; put 'put ''KEMuYXNzb2NpYXRpb25zKSksdGhpcy5zaG93QWNjPSEwLHRoaXMuc2hvd1RhYmxlPSEwO2xldCBJPUMuYXR0cmlidXRlcy5maW5kKHVlPT4iTmFtZSI9PT11ZS5OQU1FKS5WQUxVRTt0aGlzLmFzc29PYmplY3RTZWxlY3RlZD1JLHYuTkFNRT1JO2xldCBaPXRoaXMucm91dGVyLnVybDt0aGlz''@;'; put 'put ''LmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSh0aGlzLm9iamVjdFJvdXRlP1ouc2xpY2UoMCxaLmxhc3RJbmRleE9mKCJvYmplY3QiKSkrIm9iamVjdC8iK2guc2xpY2UoMStoLmluZGV4T2YoIlxcIikpOlorIi9vYmplY3QvIitoLnNsaWNlKDEraC5pbmRleE9mKCJcXCIpKSksdGhpcy5tZXRhT2Jq''@;'; put 'put ''ZWN0QXR0cmlidXRlcz1DLmF0dHJpYnV0ZXN9KX0pfXNlbGVjdEFzc29zaWF0aW9uc0RldGFpbHMoaCx2KXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJtZXRhbmF2L21ldGFkZXRhaWxzIix7U0FTQ29udHJvbFRhYmxl''@;'; put 'put ''Olt7b2JqZWN0dXJpOmh9XX0pLnRoZW4oQz0+e3RoaXMubWV0YU9iamVjdEF0dHJpYnV0ZXM9Qy5hdHRyaWJ1dGVzLHRoaXMuc2hvd1RhYmxlPSEwfSl9KX1nZXRBc3Nvc2lhdGlvbnNDb3VudChoKXtsZXQgdj1uZXcgTWFwO2ZvcihsZXQgQyBvZiBoKXt2LmhhcyhDLkFTU09DKXx8di5zZXQo''@;'; put 'put ''Qy5BU1NPQyx7Y291bnQ6MCxkZXRhaWxzOltdfSk7bGV0IEk9di5nZXQoQy5BU1NPQyk7SS5jb3VudCsrLEkuZGV0YWlscy5wdXNoKHtBU1NPQ1VSSTpDLkFTU09DVVJJLE5BTUU6Qy5OQU1FLGRpc3BsYXk6Qy5OQU1FLFVSSTpDLkFTU09DVVJJLnNsaWNlKEMuQVNTT0NVUkkuaW5kZXhPZigi''@;'; put 'put ''OiIpKzEpfSl9bGV0IHk9W107cmV0dXJuIHYuZm9yRWFjaChmdW5jdGlvbihDLEkpe3kucHVzaCh7QVNTT0M6SSxjb3VudDpDLmNvdW50LGRldGFpbHM6Qy5kZXRhaWxzLGRpc3BsYXk6SSsiICggIitDLmNvdW50KyIgKSJ9KX0pLHl9c2V0VHlwZUFzc29zaWF0aW9ucyhoKXtsZXQgdj1bXTtm''@;'; put 'put ''b3IobGV0IHkgb2YgdGhpcy5tZXRhT2JqZWN0QXNzb2NpYXRpb25zKXkuQVNTT0M9PT1oJiZ2LnB1c2goeSk7cmV0dXJuIHRoaXMuYXNzb3NpYXRpb25OYW1lcz12LHZ9YXNzb3NpYXRpb25OYW1lT25DbGljayhoKXt0aGlzLmFzc29PYmplY3RTZWxlY3RlZD0iIC4gIix0aGlzLm1ldGFPYmpl''@;'; put 'put ''Y3RBdHRyaWJ1dGVzPVtdLHRoaXMuc2hvd1RhYmxlPSExLHRoaXMuc2VsZWN0QXNzb3NpYXRpb25zRGV0YWlscyhoKX1tZXRhTGlzdE9uRmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLm1ldGFEYXRhTGlzdCx0aGlzLm1ldGFEYXRhU2VhcmNoLCJJRCIp''@;'; put 'put ''LG5pLm1ldGFkYXRhLm1ldGFEYXRhU2VhcmNoPXRoaXMubWV0YURhdGFTZWFyY2h9bWV0YU9iamVjdE9uRmlsdGVyKCl7dGhpcy5tZXRhT2JqZWN0QXR0cmlidXRlcz1bXSx0aGlzLmhlbHBlclNlcnZpY2UubWV0YU9iamVjdE9uRmlsdGVyKHRoaXMubWV0YU9iamVjdExpc3QsdGhpcy5tZXRh''@;'; put 'put ''T2JqZWN0U2VhcmNoLCJOQU1FIiksdGhpcy5nZXRNZXRhT2JqZWN0QXR0cmlidXRlcyh0aGlzLm1ldGFPYmplY3RTaXplKSxuaS5tZXRhZGF0YS5tZXRhT2JqZWN0U2VhcmNoPXRoaXMubWV0YU9iamVjdFNlYXJjaH1nZXRNZXRhT2JqZWN0QXR0cmlidXRlcyhoKXtpZih2b2lkIDAhPT10aGlz''@;'; put 'put ''Lm1ldGFPYmplY3RMaXN0JiZ0aGlzLm1ldGFPYmplY3RMaXN0Lmxlbmd0aD5oKXtsZXQgdj0wLHk9LTE7Zm9yKGxldCBDPTA7Qzx0aGlzLm1ldGFPYmplY3RMaXN0Lmxlbmd0aDtDKyspaWYoKHZvaWQgMD09PXRoaXMubWV0YU9iamVjdExpc3RbQ10uaGlkZGVufHwhMT09PXRoaXMubWV0YU9i''@;'; put 'put ''amVjdExpc3RbQ10uaGlkZGVuKSYmdisrLHY9PT1oKXt5PUM7YnJlYWt9dGhpcy5tZXRhT2JqZWN0U2hvd0xpc3Q9LTEhPT15P3RoaXMubWV0YU9iamVjdExpc3Quc2xpY2UoMCx5KTp0aGlzLm1ldGFPYmplY3RMaXN0fWVsc2UgdGhpcy5tZXRhT2JqZWN0U2hvd0xpc3Q9dGhpcy5tZXRhT2Jq''@;'; put 'put ''ZWN0TGlzdH1wYW5lbENoYW5nZShoLHYpe3RoaXMuZGVib3VuY2V8fCh0aGlzLm1ldGFPYmplY3RPbkNsaWNrKHYuSUQsdiksdGhpcy5kZWJvdW5jZT0hMCxzZXRUaW1lb3V0KCgpPT57dGhpcy5kZWJvdW5jZT0hMX0sNjAwKSl9dXBkYXRlU2VsZWN0ZWRSZXBvc2l0b3J5KCl7bmkubWV0YWRh''@;'; put 'put ''dGEuc2VsZWN0ZWRSZXBvc2l0b3J5PXRoaXMucmVwb3NpdG9yeX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QobXUpLEt0KGcyKSxLdChYYyksS3QoVjYpLEt0KFpsKSxLdChQdSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpb''@;'; put 'put ''WyJhcHAtbWV0YWRhdGEiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjE1LHZhcnM6Nyxjb25zdHM6W1sxLCJyZXBvLWRyb3Bkb3duIl0sWyJjbHJTZWxlY3QiLCIiLCJpZCIsInJlcG9zaXRvcnkiLDMsIm5nTW9kZWwiLCJuZ01vZGVsQ2hhbmdlIiwiY2hhbmdl''@;'; put 'put ''Il0sWzMsInZhbHVlIiw0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsxLCJjYXJkIiwiYmFja2dyb3VuZC10cmFuc3BhcmVudC1pIl0sWyJjbGFzcyIsIm5vLXRhYmxl''@;'; put 'put ''LXNlbGVjdGVkIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1yb3cgY2xyLWZsZXgtZ3Jvdy0xIiw0LCJuZ0lmIl0sWzMsInZhbHVlIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklu''@;'; put 'put ''cHV0IiwiIiwicGxhY2Vob2xkZXIiLCJzZWFyY2ggU0FTIFR5cGVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSIsImtleXVwIl0sWyJzZWFyY2hMaWJUcmVlSW5wdXQiLCIiXSxbInNoYXBlIiwic2VhcmNoIiw0LCJuZ0lm''@;'; put 'put ''Il0sWyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2UiLDQsIm5nSWYiXSxbMywiY2xyRXhw''@;'; put 'put ''YW5kZWQiLCJjbHJMb2FkaW5nIiwiY2xpY2siLCJjbHJFeHBhbmRlZENoYW5nZSJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsMywiY2xpY2siXSxbInNoYXBlIiwiYmxvY2siXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2''@;'; put 'put ''MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJdLFsxLCJ0ZXh0LWNlbnRlciIsImNvbG9yLWdyYXkiXSxbMSwibG9hZGluZ1NwaW5uZXIiXSxbMSwic3Bpbm5lciJdLFs0LCJuZ0lmIl0sWzEsImNsci1yb3ciLCJjbHItZmxleC1ncm93LTEiXSxbMSwiY2xyLWNvbC02Il0sWyJjbGFzcyIs''@;'; put 'put ''InNlYXJjaC1pbnB1dCIsNCwibmdJZiJdLFsiY2xhc3MiLCJvYmplY3RzLWNvbCIsNCwibmdJZiJdLFsxLCJjbHItY29sLTYiLCJ0ZXh0LWNlbnRlciJdLFsiY2xhc3MiLCJkYXRhZ3JpZC1jdXN0b20tZm9vdGVyIiw0LCJuZ0lmIl0sWzEsInNlYXJjaC1pbnB1dCJdLFsiY2xySW5wdXQiLCIi''@;'; put 'put ''LCJwbGFjZWhvbGRlciIsInNlYXJjaCIsIm5hbWUiLCJpbnB1dCIsImF1dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoT2JqVHJlZUlucHV0IiwiIl0sWzEsIm9iamVjdHMtY29sIl0sWzMsImNsckFjY29yZGlvblBhbmVsT3Bl''@;'; put 'put ''bkNoYW5nZSIsNCwibmdJZiJdLFszLCJjbHJBY2NvcmRpb25QYW5lbE9wZW5DaGFuZ2UiXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiXSxbMSwiZmxvYXQtcmlnaHQiXSxbNCwiY2xySWZFeHBhbmRlZCJdLFszLCJjbHJMYXp5Iiw0LCJuZ0lmIl0sWzMsImNsckxhenkiXSxbMywiY2xyRXhwYW5k''@;'; put 'put ''YWJsZSIsNCwiY2xyUmVjdXJzaXZlRm9yIiwiY2xyUmVjdXJzaXZlRm9yT2YiLCJjbHJSZWN1cnNpdmVGb3JHZXRDaGlsZHJlbiJdLFszLCJjbHJFeHBhbmRhYmxlIl0sWzEsImZ1bGwtd2lkdGgiXSxbInNoYXBlIiwicmFjay1zZXJ2ZXIiLDQsIm5nSWYiXSxbInNoYXBlIiwiYmxvY2siLDQs''@;'; put 'put ''Im5nSWYiXSxbImNsYXNzIiwiZmxvYXQtcmlnaHQgb2JqZWN0LXVyaSIsNCwibmdJZiJdLFsxLCJmbG9hdC1yaWdodCIsIm9iamVjdC11cmkiXSxbMSwiY29scy1oZWFkIl0sWzEsIm9iamVjdC10ZXh0Il0sWzEsIm0tMCIsIndvcmQtYnJlYWsiLCJtci0yMCJdLFsxLCJmbG9hdC1yaWdodCIs''@;'; put 'put ''Im1sLTMiXSxbMSwiZGF0YWdyaWQtY3VzdG9tLWZvb3RlciJdLFszLCJjbHJEZ1N0cmluZ0ZpbHRlciJdLFs0LCJjbHJEZ0l0ZW1zIiwiY2xyRGdJdGVtc09mIl0sWzMsImNsckRnUGFnZVNpemUiXSxbInBhZ2luYXRpb24iLCIiXSxbMywiY2xyUGFnZVNpemVPcHRpb25zIl1dLHRlbXBsYXRl''@;'; put 'put ''OmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiYXBwLXNpZGViYXIiKSgxLCJkaXYiLDApKDIsImNsci1zZWxlY3QtY29udGFpbmVyIikoMywibGFiZWwiKSxZdCg0LCJNZXRhZGF0YSBSZXBvc2l0b3J5Iiksb3QoKSxudCg1LCJzZWxlY3QiLDEpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlv''@;'; put 'put ''bihDKXtyZXR1cm4gdi5yZXBvc2l0b3J5PUN9KSgiY2hhbmdlIixmdW5jdGlvbigpe3JldHVybiB2LnVwZGF0ZVNlbGVjdGVkUmVwb3NpdG9yeSgpfSkscm4oNixwdnQsMiwyLCJvcHRpb24iLDIpLG90KCkoKSgpLG50KDcsImNsci10cmVlIikscm4oOCx2dnQsNiwzLCJjbHItdHJlZS1ub2Rl''@;'; put 'put ''IiwzKSxybig5LHl2dCwyLDEsIm5nLWNvbnRhaW5lciIsNCksb3QoKSgpLG50KDEwLCJkaXYiLDUpKDExLCJkaXYiLDYpLHJuKDEyLHd2dCw0LDAsImRpdiIsNykscm4oMTMsa3Z0LDQsMSwiZGl2Iiw4KSxybigxNCxXdnQsMTAsNSwiZGl2Iiw5KSxvdCgpKCkpLDImaCYmKHV0KDUpLFR0KCJu''@;'; put 'put ''Z01vZGVsIix2LnJlcG9zaXRvcnkpLHV0KDEpLFR0KCJuZ0Zvck9mIix2LnJlcG9zaXRvcmllcyksdXQoMiksVHQoIm5nSWYiLHYubWV0YURhdGFMaXN0KSx1dCgxKSxUdCgibmdGb3JPZiIsdi5tZXRhRGF0YUxpc3QpLHV0KDMpLFR0KCJuZ0lmIiwhdi5sb2FkaW5nJiYhdi5tZXRhT2JqZWN0''@;'; put 'put ''TGlzdCksdXQoMSksVHQoIm5nSWYiLHYubG9hZGluZyksdXQoMSksVHQoIm5nSWYiLHYuc2hvd0RhdGEpKX0sZGVwZW5kZW5jaWVzOlt4cyxObywkMyxxMyxtMSxPZixUcyxJcyxHTCxnUyx6TCxtUyxoeWUsbXcsZlosaFosJGZlLFlMLEFTLHlTLHZTLHB3LFZMLFpMLEZmZSx5dixfZyx5eWUs''@;'; put 'put ''d2wsZ28sRmYsYXQscHYsb1osaVosSyQsT0wscSQsJCQsZXEsUWosTVMsV2hdLHN0eWxlczpbIi5vYmplY3RzLWNvbFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0Ojc1dmg7b3ZlcmZsb3c6c2Nyb2xsO2JvcmRlcjoxcHggc29saWQgI2NjY2NjYztiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci1y''@;'; put 'put ''YWRpdXM6NHB4fS5jb2xzLWhlYWRbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQ6I2ZhZmFmYTtib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7cGFkZGluZzoxMHB4O2Rpc3BsYXk6ZmxleH0ub2JqZWN0LXRleHRbX25nY29udGVudC0lQ09NUCVde2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVt''@;'; put 'put ''czpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO21hcmdpbi1sZWZ0OjEwcHg7ZmxleDoxfS5yZXBvLWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tcmlnaHQ6MTVweDttYXJnaW4tbGVmdDoxNXB4O21hcmdpbi1ib3R0b206MTBweH0uY2xyLWFjY29y''@;'; put 'put ''ZGlvbi10aXRsZVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTAwJX0uZmxvYXQtcmlnaHRbX25nY29udGVudC0lQ09NUCVde21hcmdpbjowO2Zsb2F0OnJpZ2h0fS5mdWxsLXdpZHRoW19uZ2NvbnRlbnQtJUNPTVAlXXt3aWR0aDoxMDAlfS5vYmplY3QtdXJpW19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XXttYXJnaW46NXB4IDAgMH0ub2JqZWN0LWhlYWRlcltfbmdjb250ZW50LSVDT01QJV17cGFkZGluZy1sZWZ0OjNweDtwYWRkaW5nLXJpZ2h0OjNweH0ub2JqZWN0LWhlYWRlcltfbmdjb250ZW50LSVDT01QJV06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZDhlM2U5O2JvcmRlci1yYWRpdXM6''@;'; put 'put ''M3B4fS5kYXRhZ3JpZC1ob3N0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OnVuc2V0IWltcG9ydGFudH0uY2FyZFtfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDowO2ZsZXg6MTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jb250ZW50LWFyZWFbX25nY29udGVu''@;'; put 'put ''dC0lQ09NUCVde3BhZGRpbmc6LjVyZW0haW1wb3J0YW50O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59Il19KSxkLlx1MDI3NXByb3Y9QWkoe3Rva2VuOmQsZmFjdG9yeTpkLlx1MDI3NWZhYyxwcm92aWRlZEluOiJyb290In0pLGR9KSgpO2Z1bmN0aW9uIFl2dChkLGcpezEm''@;'; put 'put ''ZCYmQ3IoMCwiY2xyLWljb24iLDEyKX1mdW5jdGlvbiBVdnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItaWNvbiIsMTMpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PVF0KDIpO3JldHVybiB5LnJvbGVTZWFyY2g9IiIsYSh5LnJvbGVMaXN0T25GaWx0''@;'; put 'put ''ZXIoKSl9KSxvdCgpfX1mdW5jdGlvbiBRdnQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItdHJlZS1ub2RlIiw2KSgxLCJkaXYiLDcpKDIsImlucHV0Iiw4LDkpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLnJvbGVTZWFyY2g9''@;'; put 'put ''eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoKS5yb2xlTGlzdE9uRmlsdGVyKCkpfSksb3QoKSxybig0LFl2dCwxLDAsImNsci1pY29uIiwxMCkscm4oNSxVdnQsMSwwLCJjbHItaWNvbiIsMTEpLG90KCkoKX1pZigyJmQpe2NvbnN0IGg9dmEoMyksdj1RdCgpO3V0''@;'; put 'put ''KDIpLFR0KCJuZ01vZGVsIix2LnJvbGVTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIEp2dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10cmVlLW5vZGUiLDE1KSxH''@;'; put 'put ''bigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgpLiRpbXBsaWNpdDtyZXR1cm4gYShRdCgpLnJvbGVPbkNsaWNrKHkpKX0pLG50KDEsInAiLDE2KSxDcigyLCJjbHItaWNvbiIsMTcpLFl0KDMpLG90KCkoKX1pZigyJmQpe2NvbnN0IGg9UXQoKS4kaW1wbGljaXQsdj1RdCgp''@;'; put 'put ''O0ZpKCJ0YWJsZS1hY3RpdmUiLGguUk9MRVVSST09PXYucm9sZVVyaSksdXQoMyksSmkoIiAiLGguUk9MRU5BTUUsIiAiKX19ZnVuY3Rpb24gWHZ0KGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxKdnQsNCwzLCJjbHItdHJlZS1ub2RlIiwxNCksUDAoKSksMiZkKXtjb25zdCBoPWcuJGltcGxp''@;'; put 'put ''Y2l0O3V0KDEpLFR0KCJuZ0lmIiwhaC5oaWRkZW4pfX1mdW5jdGlvbiBLdnQoZCxnKXsxJmQmJihudCgwLCJkaXYiLDE4KSgxLCJzcGFuIiwxOSksWXQoMiwiIExvYWRpbmcuLi4gIiksb3QoKSgpKX1mdW5jdGlvbiAkdnQoZCxnKXsxJmQmJihudCgwLCJoNSIpLFl0KDEsIk5vIE1lbWJlcnMg''@;'; put 'put ''UHJlc2VudCIpLG90KCkpfWZ1bmN0aW9uIHF2dChkLGcpe2lmKDEmZCYmKG50KDAsInRyIiwzMikoMSwidGQiLDMwKSxZdCgyKSxvdCgpLG50KDMsInRkIiwzMCksWXQoNCksb3QoKSxudCg1LCJ0ZCIsMzApLFl0KDYpLG90KCksbnQoNywidGQiLDMwKSxZdCg4KSxvdCgpKCkpLDImZCl7Y29u''@;'; put 'put ''c3QgaD1nLiRpbXBsaWNpdDtUdCgicm91dGVyTGluayIsIi92aWV3L3VzZXJuYXYvdXNlcnMvIitoLlVSSU1FTSksdXQoMiksamkoaC5NRU1CRVJOQU1FKSx1dCgyKSxqaShoLkVNQUlMKSx1dCgyKSxqaShoLk1FTUJFUkNSRUFURUQpLHV0KDIpLGppKGguTUVNQkVSVVBEQVRFRCl9fWZ1bmN0''@;'; put 'put ''aW9uIGU5dChkLGcpe2lmKDEmZCYmKG50KDAsInRhYmxlIiwyOCkoMSwidGhlYWQiKSgyLCJ0ciIpKDMsInRkIiwyOSkoNCwiYiIpLFl0KDUsIk5BTUUiKSxvdCgpKCksbnQoNiwidGQiLDI5KSg3LCJiIiksWXQoOCwiRU1BSUwiKSxvdCgpKCksbnQoOSwidGQiLDI5KSgxMCwiYiIpLFl0KDEx''@;'; put 'put ''LCJDUkVBVEVEIiksb3QoKSgpLG50KDEyLCJ0ZCIsMzApKDEzLCJiIiksWXQoMTQsIlVQREFURUQiKSxvdCgpKCkoKSgpLG50KDE1LCJ0Ym9keSIpLHJuKDE2LHF2dCw5LDUsInRyIiwzMSksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMTYpLFR0KCJuZ0Zvck9mIixoLnJvbGVNZW1i''@;'; put 'put ''ZXJzKX19ZnVuY3Rpb24gdDl0KGQsZyl7MSZkJiYobnQoMCwiaDUiKSxZdCgxLCJObyBHcm91cHMgUHJlc2VudCAhIiksb3QoKSl9ZnVuY3Rpb24gbjl0KGQsZyl7aWYoMSZkJiYobnQoMCwidHIiLDMyKSgxLCJ0ZCIsMzApLFl0KDIpLG90KCksbnQoMywidGQiLDMwKSxZdCg0KSxvdCgpLG50''@;'; put 'put ''KDUsInRkIiwzMCksWXQoNiksb3QoKSxudCg3LCJ0ZCIsMzApLFl0KDgpLG90KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O1R0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi9ncm91cHMvIitoLlVSSU1FTSksdXQoMiksamkoaC5NRU1CRVJOQU1FKSx1dCgyKSxqaShoLkVNQUlM''@;'; put 'put ''KSx1dCgyKSxqaShoLk1FTUJFUkNSRUFURUQpLHV0KDIpLGppKGguTUVNQkVSVVBEQVRFRCl9fWZ1bmN0aW9uIHI5dChkLGcpe2lmKDEmZCYmKG50KDAsInRhYmxlIiwyOCkoMSwidGhlYWQiKSgyLCJ0ciIpKDMsInRkIiwyOSkoNCwiYiIpLFl0KDUsIk5BTUUiKSxvdCgpKCksbnQoNiwidGQi''@;'; put 'put ''LDI5KSg3LCJiIiksWXQoOCwiRU1BSUwiKSxvdCgpKCksbnQoOSwidGQiLDI5KSgxMCwiYiIpLFl0KDExLCJDUkVBVEVEIiksb3QoKSgpLG50KDEyLCJ0ZCIsMzApKDEzLCJiIiksWXQoMTQsIlVQREFURUQiKSxvdCgpKCkoKSgpLG50KDE1LCJ0Ym9keSIpLHJuKDE2LG45dCw5LDUsInRyIiwz''@;'; put 'put ''MSksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMTYpLFR0KCJuZ0Zvck9mIixoLnJvbGVHcm91cHMpfX1mdW5jdGlvbiBpOXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiKSgxLCJkaXYiLDIwKSgyLCJkaXYiLDIxKSgzLCJ0YWJsZSIsMjIpKDQsInRib2R5IikoNSwidHIiKSg2LCJ0''@;'; put 'put ''ZCIsMjMpKDcsInAiLDI0KSg4LCJiIiksWXQoOSksb3QoKSgpKCkoKSxudCgxMCwidHIiKSgxMSwidGQiLDIzKSgxMiwiaSIpLFl0KDEzKSxvdCgpKCkoKSgpKCkoKSgpLG50KDE0LCJkaXYiLDIwKSgxNSwiZGl2IiwyMSkoMTYsImRpdiIsMjUpKDE3LCJkaXYiKSgxOCwiaDMiKSxZdCgxOSks''@;'; put 'put ''b3QoKSxybigyMCwkdnQsMiwwLCJoNSIsNSksbnQoMjEsImRpdiIsMjYpLHJuKDIyLGU5dCwxNywxLCJ0YWJsZSIsMjcpLG90KCkoKSxDcigyMywiaHIiKSxudCgyNCwiZGl2IikoMjUsImgzIiksWXQoMjYpLG90KCkscm4oMjcsdDl0LDIsMCwiaDUiLDUpLG50KDI4LCJkaXYiLDI2KSxybigy''@;'; put 'put ''OSxyOXQsMTcsMSwidGFibGUiLDI3KSxvdCgpKCksQ3IoMzAsImJyIiksb3QoKSgpKCkoKSksMiZkKXtjb25zdCBoPVF0KCk7dXQoOSksamkoaC5yb2xlTmFtZSksdXQoNCksamkoaC5yb2xlRGVzYyksdXQoNiksSmkoIk1FTUJFUlMgKCIsaC5yb2xlTWVtYmVyc0NvdW50LCIpIiksdXQoMSks''@;'; put 'put ''VHQoIm5nSWYiLDA9PWgucm9sZU1lbWJlcnNDb3VudCksdXQoMiksVHQoIm5nSWYiLDAhPWgucm9sZU1lbWJlcnNDb3VudCksdXQoNCksSmkoIkdyb3VwcyAoIixoLnJvbGVHcm91cHNDb3VudCwiKSIpLHV0KDEpLFR0KCJuZ0lmIiwwPT1oLnJvbGVHcm91cHNDb3VudCksdXQoMiksVHQoIm5n''@;'; put 'put ''SWYiLDAhPWgucm9sZUdyb3Vwc0NvdW50KX19bGV0IEJMZT0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKGgsdix5LEMsSSl7dGhpcy5zYXNTZXJ2aWNlPWgsdGhpcy5oZWxwZXJTZXJ2aWNlPXYsdGhpcy5yb3V0ZXI9eSx0aGlzLmxvY2F0aW9uPUMsdGhpcy5yb3V0ZT1JLHRoaXMucm9sZVNl''@;'; put 'put ''YXJjaD0iIix0aGlzLnJvbGVVcmk9IiIsdGhpcy5yb2xlTmFtZT0iIix0aGlzLnJvbGVEZXNjPSIiLHRoaXMucGFyYW1QcmVzZW50PSExLHRoaXMucGFyYW1VUkk9IiIsdGhpcy5sb2FkaW5nPSExfW5nT25Jbml0KCl7bmkudmlld2VyLmN1cnJlbnRTZWxlY3Rpb249InZpZXcvdXNlcm5hdi9y''@;'; put 'put ''b2xlcyIsdm9pZCAwIT09dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpJiYodGhpcy5wYXJhbVByZXNlbnQ9ITAsdGhpcy5wYXJhbVVSST10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmkpLG5pLnVzZXJuYXYucm9sZUxpc3QmJiF0aGlzLnBhcmFtUHJlc2VudD8odGhpcy5yb2xl''@;'; put 'put ''cz1uaS51c2VybmF2LnJvbGVMaXN0LHRoaXMucm9sZVNlYXJjaD1uaS51c2VybmF2LnJvbGVTZWFyY2gpOnZvaWQgMD09PW5pLnVzZXJuYXYucm9sZUxpc3Q/KHRoaXMubG9hZGluZz0hMCx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2Vycm9sZXMiLG51bGwpLnRoZW4oaD0+''@;'; put 'put ''e2lmKHRoaXMubG9hZGluZz0hMSx0aGlzLnJvbGVzPWgucm9sZXMsbmkudXNlcm5hdi5yb2xlTGlzdD1oLnJvbGVzLHRoaXMucGFyYW1QcmVzZW50JiZ2b2lkIDAhPT10aGlzLnJvbGVzKXtsZXQgdj10aGlzLmZpbmRSb2xlKHRoaXMucm9sZXMsdGhpcy5wYXJhbVVSSSk7ITEhPT12JiYodGhp''@;'; put 'put ''cy5sb2FkaW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJtZW1iZXJzYnlyb2xlIix7aXdhbnQ6W3tyb2xlaWQ6dGhpcy5wYXJhbVVSSX1dfSkudGhlbihDPT57dGhpcy5sb2FkaW5nPSExLHRoaXMucm9sZU1lbWJlcnM9Qy5zYXNtZW1iZXJzLHRoaXMucm9sZU1l''@;'; put 'put ''bWJlcnNDb3VudD1DLnNhc21lbWJlcnMubGVuZ3RoLHRoaXMucm9sZUdyb3Vwcz1DLnNhc2dyb3Vwcyx0aGlzLnJvbGVHcm91cHNDb3VudD1DLnNhc2dyb3Vwcy5sZW5ndGgsdGhpcy5yb2xlVXJpPXYuUk9MRVVSSSx0aGlzLnJvbGVOYW1lPXYuUk9MRU5BTUUsdGhpcy5yb2xlRGVzYz12LlJP''@;'; put 'put ''TEVERVNDfSkpfX0pKToodGhpcy5yb2xlcz1uaS51c2VybmF2LnJvbGVMaXN0LHRoaXMucm9sZVNlYXJjaD1uaS51c2VybmF2LnJvbGVTZWFyY2gsdGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcnJvbGVzIixudWxsKS50aGVuKGg9PntpZih0aGlzLnJvbGVzPWgucm9sZXMs''@;'; put 'put ''bmkudXNlcm5hdi5yb2xlTGlzdD1oLnJvbGVzLHRoaXMucGFyYW1QcmVzZW50JiZ2b2lkIDAhPT10aGlzLnJvbGVzKXtsZXQgdj10aGlzLmZpbmRSb2xlKHRoaXMucm9sZXMsdGhpcy5wYXJhbVVSSSk7ITEhPT12JiYodGhpcy5sb2FkaW5nPSEwLHRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1''@;'; put 'put ''c2VybmF2L3VzZXJtZW1iZXJzYnlyb2xlIix7aXdhbnQ6W3tyb2xlaWQ6dGhpcy5wYXJhbVVSSX1dfSkudGhlbihDPT57dGhpcy5sb2FkaW5nPSExLHRoaXMucm9sZU1lbWJlcnM9Qy5zYXNtZW1iZXJzLHRoaXMucm9sZU1lbWJlcnNDb3VudD1DLnNhc21lbWJlcnMubGVuZ3RoLHRoaXMucm9s''@;'; put 'put ''ZUdyb3Vwcz1DLnNhc2dyb3Vwcyx0aGlzLnJvbGVHcm91cHNDb3VudD1DLnNhc2dyb3Vwcy5sZW5ndGgsdGhpcy5yb2xlVXJpPXYuUk9MRVVSSSx0aGlzLnJvbGVOYW1lPXYuUk9MRU5BTUUsdGhpcy5yb2xlRGVzYz12LlJPTEVERVNDfSkpfX0pKX1yb2xlTGlzdE9uRmlsdGVyKCl7dGhpcy5o''@;'; put 'put ''ZWxwZXJTZXJ2aWNlLmxpYnJhcnlPbkZpbHRlcih0aGlzLnJvbGVzLHRoaXMucm9sZVNlYXJjaCwiUk9MRU5BTUUiKSxuaS51c2VybmF2LnJvbGVTZWFyY2g9dGhpcy5yb2xlU2VhcmNofXJvbGVPbkNsaWNrKGgpe3RoaXMubG9hZGluZz0hMDtsZXQgdj10aGlzLnJvdXRlci51cmw7dGhpcy5s''@;'; put 'put ''b2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5wYXJhbVByZXNlbnQ/di5zbGljZSgwLHYubGFzdEluZGV4T2YoIi8iKSkrIi8iK2VuY29kZVVSSShoLlJPTEVVUkkpOnYrIi8iK2VuY29kZVVSSShoLlJPTEVVUkkpKSx0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VybWVtYmVy''@;'; put 'put ''c2J5cm9sZSIse2l3YW50Olt7cm9sZWlkOmguUk9MRVVSSX1dfSkudGhlbihDPT57dGhpcy5sb2FkaW5nPSExLHRoaXMucm9sZU1lbWJlcnM9Qy5zYXNtZW1iZXJzLHRoaXMucm9sZU1lbWJlcnNDb3VudD1DLnNhc21lbWJlcnMubGVuZ3RoLHRoaXMucm9sZUdyb3Vwcz1DLnNhc2dyb3Vwcyx0''@;'; put 'put ''aGlzLnJvbGVHcm91cHNDb3VudD1DLnNhc2dyb3Vwcy5sZW5ndGgsdGhpcy5yb2xlVXJpPWguUk9MRVVSSSx0aGlzLnJvbGVOYW1lPWguUk9MRU5BTUUsdGhpcy5yb2xlRGVzYz1oLlJPTEVERVNDfSl9ZmluZFJvbGUoaCx2KXtsZXQgeT0hMTtyZXR1cm4gaC5mb3JFYWNoKEM9PntDLlJPTEVV''@;'; put 'put ''Ukk9PT12JiYoeT1DKX0pLHl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpKEt0KGcyKSxLdChYYyksS3QoWmwpLEt0KFY2KSxLdChQdSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtcm9sZSJdXSxob3N0QXR0cnM6WzEs''@;'; put 'put ''ImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6Nyx2YXJzOjQsY29uc3RzOltbMSwic2lkZWJhci1oZWlnaHQiXSxbImNsYXNzIiwic2VhcmNoLW5vZGUiLDQsIm5nSWYiXSxbNCwibmdGb3IiLCJuZ0Zvck9mIl0sWzEsImNvbnRlbnQtYXJlYSJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIs''@;'; put 'put ''NCwibmdJZiJdLFs0LCJuZ0lmIl0sWzEsInNlYXJjaC1ub2RlIl0sWzEsInRyZWUtc2VhcmNoLXdyYXBwZXIiXSxbImNscklucHV0IiwiIiwicGxhY2Vob2xkZXIiLCJGaWx0ZXIgYnkgUm9sZXMiLCJuYW1lIiwiaW5wdXQiLCJhdXRvY29tcGxldGUiLCJvZmYiLDMsIm5nTW9kZWwiLCJuZ01v''@;'; put 'put ''ZGVsQ2hhbmdlIiwia2V5dXAiXSxbInNlYXJjaExpYlRyZWVJbnB1dCIsIiJdLFsic2hhcGUiLCJzZWFyY2giLDQsIm5nSWYiXSxbInNoYXBlIiwidGltZXMiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJzaGFwZSIsInNlYXJjaCJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siXSxbMywidGFi''@;'; put 'put ''bGUtYWN0aXZlIiwiY2xpY2siLDQsIm5nSWYiXSxbMywiY2xpY2siXSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLCJsaXN0LXBhZGRpbmciXSxbInNoYXBlIiwiYmxvY2tzLWdyb3VwIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5uZXIiXSxbMSwiY2xyLXJvdyJdLFsxLCJjbHIt''@;'; put 'put ''Y29sLTgiXSxbMSwidGFibGUiLCJyb2xlLWluZm8iXSxbMSwibGVmdCJdLFsxLCJyb2xlLWluZm8tdGV4dCJdLFsxLCJjYXJkIiwicm9sZS1kYXRhIl0sWzEsInRhYmxlLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJ0YWJsZSBtZW1iZXItdGFibGUiLDQsIm5nSWYiXSxbMSwidGFibGUiLCJtZW1i''@;'; put 'put ''ZXItdGFibGUiXSxbMSwid2lkdGgtMjUiXSxbMSwiIl0sWzMsInJvdXRlckxpbmsiLDQsIm5nRm9yIiwibmdGb3JPZiJdLFszLCJyb3V0ZXJMaW5rIl1dLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiYobnQoMCwiYXBwLXNpZGViYXIiLDApKDEsImNsci10cmVlIikscm4oMixRdnQsNiwz''@;'; put 'put ''LCJjbHItdHJlZS1ub2RlIiwxKSxybigzLFh2dCwyLDEsIm5nLWNvbnRhaW5lciIsMiksb3QoKSgpLG50KDQsImRpdiIsMykscm4oNSxLdnQsMywwLCJkaXYiLDQpLHJuKDYsaTl0LDMxLDgsImRpdiIsNSksb3QoKSksMiZoJiYodXQoMiksVHQoIm5nSWYiLHYucm9sZXMpLHV0KDEpLFR0KCJu''@;'; put 'put ''Z0Zvck9mIix2LnJvbGVzKSx1dCgyKSxUdCgibmdJZiIsdi5sb2FkaW5nKSx1dCgxKSxUdCgibmdJZiIsdi5yb2xlTWVtYmVycyYmIXYubG9hZGluZykpfSxkZXBlbmRlbmNpZXM6W3hzLE5vLG0xLFRzLElzLFk2LHl2LF9nLHdsLHB2LE1TXSxzdHlsZXM6WyIuc2lkZWJhci1oZWlnaHRbX25n''@;'; put 'put ''Y29udGVudC0lQ09NUCVde2hlaWdodDoxMDAlfS5yb2xlLWluZm8tdGV4dFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTppbmxpbmU7Zm9udC1zaXplOjIwcHh9LnJvbGUtaW5mb1tfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQg''@;'; put 'put ''I2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS5yb2xlLWluZm9bX25nY29udGVudC0lQ09NUCVdICAgdGRbX25nY29udGVudC0lQ09NUCVde3RleHQtYWxpZ246Y2VudGVyfS5yb2xlLWRhdGFbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91''@;'; put 'put ''bmQtY29sb3I6I2Y5ZjlmOTtib3JkZXI6MXB4IHNvbGlkICNhN2E3YTc7Ym9yZGVyLXJhZGl1czozcHg7Ym94LXNoYWRvdzowIDJweCA1cHggI2RhZDdkN30ucm9sZS1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OnVuc2V0fS5yb2xlLWRhdGFbX25nY29udGVudC0lQ09NUCVd''@;'; put 'put ''ICAgaDNbX25nY29udGVudC0lQ09NUCVdLCAucm9sZS1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGg1W19uZ2NvbnRlbnQtJUNPTVAlXXt0ZXh0LWFsaWduOmNlbnRlcn0ubWVtYmVyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7d2lkdGg6MTAw''@;'; put 'put ''JX0ubWVtYmVyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRoZWFkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNkYWRhZGF9Lm1lbWJlci10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICB0Ym9keVtfbmdjb250ZW50LSVDT01QJV0gICB0cltfbmdjb250ZW50LSVD''@;'; put 'put ''T01QJV06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZTZlNmU2O2N1cnNvcjpwb2ludGVyfS50YWJsZS1jb250YWluZXJbX25nY29udGVudC0lQ09NUCVde292ZXJmbG93LXk6c2Nyb2xsO21heC1oZWlnaHQ6NzAwcHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5yb2xl''@;'; put 'put ''LWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6dW5zZXQhaW1wb3J0YW50fX0iXX0pLGR9KSgpLG85dD0oKCk9PntjbGFzcyBke2NvbnN0cnVjdG9yKCl7fW5nT25Jbml0KCl7fX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAy''@;'; put 'put ''NzVjbXA9VGkoe3R5cGU6ZCxzZWxlY3RvcnM6W1siYXBwLXVzZXJuYXYtcm91dGUiXV0saG9zdEF0dHJzOlsxLCJjb250ZW50LWNvbnRhaW5lciJdLGRlY2xzOjEsdmFyczowLHRlbXBsYXRlOmZ1bmN0aW9uKGgsdil7MSZoJiZDcigwLCJyb3V0ZXItb3V0bGV0Iil9LGRlcGVuZGVuY2llczpb''@;'; put 'put ''YXldfSksZH0pKCksYTl0PSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoKXt9bmdPbkluaXQoKXt9bmdPbkRlc3Ryb3koKXt9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdmll''@;'; put 'put ''dy1yb3V0ZSJdXSxob3N0QXR0cnM6WzEsImNvbnRlbnQtY29udGFpbmVyIl0sZGVjbHM6MSx2YXJzOjAsdGVtcGxhdGU6ZnVuY3Rpb24oaCx2KXsxJmgmJkNyKDAsInJvdXRlci1vdXRsZXQiKX0sZGVwZW5kZW5jaWVzOltheV19KSxkfSkoKTtmdW5jdGlvbiBsOXQoZCxnKXsxJmQmJkNyKDAs''@;'; put 'put ''ImNsci1pY29uIiwxMil9ZnVuY3Rpb24gczl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWljb24iLDEzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgyKTtyZXR1cm4geS51c2VyU2VhcmNoPSIiLGEoeS51c2VyTGlzdE9uRmlsdGVyKCkpfSks''@;'; put 'put ''b3QoKX19ZnVuY3Rpb24gdTl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRyZWUtbm9kZSIsNikoMSwiZGl2Iiw3KSgyLCJpbnB1dCIsOCw5KSxHbigibmdNb2RlbENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS51c2VyU2VhcmNoPXkpfSkoImtl''@;'; put 'put ''eXVwIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkudXNlckxpc3RPbkZpbHRlcigpKX0pLG90KCkscm4oNCxsOXQsMSwwLCJjbHItaWNvbiIsMTApLHJuKDUsczl0LDEsMCwiY2xyLWljb24iLDExKSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPXZhKDMpLHY9UXQoKTt1dCgyKSxUdCgi''@;'; put 'put ''bmdNb2RlbCIsdi51c2VyU2VhcmNoKSx1dCgyKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg8MSksdXQoMSksVHQoIm5nSWYiLGgudmFsdWUubGVuZ3RoPjApfX1mdW5jdGlvbiBjOXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItdHJlZS1ub2RlIiwxNSksR24oImNsaWNr''@;'; put 'put ''IixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoKS51c2VyT25DbGljayh5KSl9KSxudCgxLCJwIiwxNiksQ3IoMiwiY2xyLWljb24iLDE3KSxZdCgzKSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0LHY9UXQoKTtGaSgidGFi''@;'; put 'put ''bGUtYWN0aXZlIiwobnVsbD09di51c2VySW5mbz9udWxsOnYudXNlckluZm8uVVJJKT09PWguVVJJKSx1dCgzKSxKaSgiICIsaC5OQU1FLCIgIil9fWZ1bmN0aW9uIGY5dChkLGcpe2lmKDEmZCYmKEIwKDApLHJuKDEsYzl0LDQsMywiY2xyLXRyZWUtbm9kZSIsMTQpLFAwKCkpLDImZCl7Y29u''@;'; put 'put ''c3QgaD1nLiRpbXBsaWNpdDt1dCgxKSxUdCgibmdJZiIsIWguaGlkZGVuKX19ZnVuY3Rpb24gaDl0KGQsZyl7MSZkJiYobnQoMCwiZGl2IiwxOCkoMSwic3BhbiIsMTkpLFl0KDIsIiBMb2FkaW5nLi4uICIpLG90KCkoKSl9ZnVuY3Rpb24gZDl0KGQsZyl7aWYoMSZkJiYoQjAoMCksbnQoMSwi''@;'; put 'put ''dHIiKSgyLCJ0ZCIsMjcpLFl0KDMsIiBNZXRhZGF0YSBDcmVhdGVkOiAiKSxudCg0LCJiIiksWXQoNSksb3QoKSgpKCksbnQoNiwidHIiKSg3LCJ0ZCIsMjcpLFl0KDgsIiBNZXRhZGF0YSBVcGRhdGVkOiAiKSxudCg5LCJiIiksWXQoMTApLG90KCkoKSgpLFAwKCkpLDImZCl7Y29uc3QgaD1R''@;'; put 'put ''dCgzKTt1dCg1KSxqaShoLnVzZXJJbmZvLk1FVEFEQVRBQ1JFQVRFRCksdXQoNSksamkoaC51c2VySW5mby5NRVRBREFUQVVQREFURUQpfX1mdW5jdGlvbiBwOXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDIxKSgxLCJkaXYiLDIyKSgyLCJ0YWJsZSIsMjYpKDMsInRib2R5IikoNCwidHIi''@;'; put 'put ''KSg1LCJ0ZCIsMjcpKDYsInAiLDI4KSg3LCJiIiksWXQoOCksb3QoKSgpKCkoKSxudCg5LCJ0ciIpKDEwLCJ0ZCIsMjcpKDExLCJwIiwyOCkoMTIsImIiKSxZdCgxMyksb3QoKSgpKCkoKSxybigxNCxkOXQsMTEsMiwibmctY29udGFpbmVyIiw1KSxvdCgpKCkoKSgpKSwyJmQpe2NvbnN0IGg9''@;'; put 'put ''UXQoMik7dXQoOCksamkoaC51c2VySW5mby5OQU1FKSx1dCg1KSxqaShoLnVzZXJJbmZvLkRJU1BMQVlOQU1FKSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhczkpfX1mdW5jdGlvbiBnOXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDIxKSgxLCJkaXYi''@;'; put 'put ''LDIyKSgyLCJ0YWJsZSIsMjYpKDMsInRib2R5IikoNCwidHIiKSg1LCJ0ZCIsMjcpKDYsInAiLDI4KSg3LCJiIiksWXQoOCksb3QoKSgpKCkoKSxudCg5LCJ0ciIpKDEwLCJ0ZCIsMjcpLFl0KDExLCIgVXNlciBJRDogIiksbnQoMTIsImIiKSxZdCgxMyksb3QoKSgpKCksbnQoMTQsInRyIiko''@;'; put 'put ''MTUsInRkIiwyNyksWXQoMTYsIiBVc2VyIHByb3ZpZGVyIElEOiAiKSxudCgxNywiYiIpLFl0KDE4KSxvdCgpKCkoKSgpKCkoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoOCksamkoaC51c2VySW5mby5OQU1FKSx1dCg1KSxqaShoLnVzZXJJbmZvLlVSSSksdXQoNSksamkoaC51c2VySW5m''@;'; put 'put ''by5QUk9WSURFUil9fWZ1bmN0aW9uIG05dChkLGcpezEmZCYmKG50KDAsImg1IiksWXQoMSwiTm8gRW1haWxzIFByZXNlbnQiKSxvdCgpKX1mdW5jdGlvbiB2OXQoZCxnKXtpZigxJmQmJihudCgwLCJ0ciIpKDEsInRkIiwzMSksWXQoMiksb3QoKSxudCgzLCJ0ZCIsMzEpLFl0KDQpLG90KCko''@;'; put 'put ''KSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDIpLGppKGguRU1BSUwpLHV0KDIpLGppKGguVFlQRSl9fWZ1bmN0aW9uIEE5dChkLGcpe2lmKDEmZCYmKG50KDAsInRhYmxlIiwyOSkoMSwidGhlYWQiKSgyLCJ0ciIpKDMsInRkIiwzMCkoNCwiYiIpLFl0KDUsIkVNQUlMIiksb3QoKSgp''@;'; put 'put ''LG50KDYsInRkIiwzMSkoNywiYiIpLFl0KDgsIlRZUEUiKSxvdCgpKCkoKSgpLG50KDksInRib2R5Iikscm4oMTAsdjl0LDUsMiwidHIiLDIpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDMpO3V0KDEwKSxUdCgibmdGb3JPZiIsaC51c2VyRW1haWxzKX19ZnVuY3Rpb24geTl0KGQsZyl7aWYo''@;'; put 'put ''MSZkJiYobnQoMCwiZGl2IikoMSwiaDMiKSxZdCgyKSxvdCgpLHJuKDMsbTl0LDIsMCwiaDUiLDUpLG50KDQsImRpdiIsMjQpLHJuKDUsQTl0LDExLDEsInRhYmxlIiwyNSksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMiksSmkoIkVNQUlMUyAoIixoLnVzZXJFbWFpbHNDb3VudHx8''@;'; put 'put ''IjAiLCIpIiksdXQoMSksVHQoIm5nSWYiLDA9PWgudXNlckVtYWlsc0NvdW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC51c2VyRW1haWxzQ291bnQpfX1mdW5jdGlvbiB3OXQoZCxnKXsxJmQmJkNyKDAsImhyIil9ZnVuY3Rpb24gYjl0KGQsZyl7MSZkJiYobnQoMCwiaDUiKSxZdCgxLCJObyBH''@;'; put 'put ''cm91cHMgUHJlc2VudCIpLG90KCkpfWZ1bmN0aW9uIF85dChkLGcpe2lmKDEmZCYmKG50KDAsInRkIiwzMyksWXQoMSksb3QoKSksMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0O1R0KCJyb3V0ZXJMaW5rIiwiL3ZpZXcvdXNlcm5hdi9ncm91cHMvIitoLlVSSSksdXQoMSksSmkoIiAiLGgu''@;'; put 'put ''R1JPVVBOQU1FLCIgIil9fWZ1bmN0aW9uIEM5dChkLGcpe2lmKDEmZCYmKEIwKDApLG50KDEsInRkIiwzMyksWXQoMiksb3QoKSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoKS4kaW1wbGljaXQ7dXQoMSksVHQoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L2dyb3Vwcy8iKyhoLkdST1VQVVJJ''@;'; put 'put ''fHxoLlVSSSkpLHV0KDEpLEppKCIgIixoLkdST1VQTkFNRSwiICIpfX1mdW5jdGlvbiBrOXQoZCxnKXtpZigxJmQmJihudCgwLCJ0ciIpLHJuKDEsXzl0LDIsMiwidGQiLDMyKSxybigyLEM5dCwzLDIsIm5nLWNvbnRhaW5lciIsNSksb3QoKSksMiZkKXtjb25zdCBoPVF0KDMpO3V0KDEpLFR0''@;'; put 'put ''KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZlclR5cGUuU2FzVml5YSksdXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZSE9PWguU2VydmVyVHlwZS5TYXNWaXlhKX19ZnVuY3Rpb24gUzl0KGQsZyl7aWYoMSZkJiYobnQoMCwidGFibGUiLDI5KSgxLCJ0Ym9keSIpLHJuKDIsazl0LDMs''@;'; put 'put ''MiwidHIiLDIpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDIpLFR0KCJuZ0Zvck9mIixoLnVzZXJHcm91cHMpfX1mdW5jdGlvbiBNOXQoZCxnKXsxJmQmJkNyKDAsImhyIil9ZnVuY3Rpb24gRTl0KGQsZyl7MSZkJiYobnQoMCwiaDUiKSxZdCgxLCJObyBSb2xlcyBQcmVzZW50Iiks''@;'; put 'put ''b3QoKSl9ZnVuY3Rpb24geDl0KGQsZyl7aWYoMSZkJiYobnQoMCwidHIiKSgxLCJ0ZCIsMzQpLFl0KDIpLG90KCkoKSksMiZkKXtjb25zdCBoPWcuJGltcGxpY2l0LHY9UXQoNCk7dXQoMSksVHQoInJvdXRlckxpbmsiLCIvdmlldy91c2VybmF2L3JvbGVzLyIrdi5nZXRSb2xlVVJJKGguUk9M''@;'; put 'put ''RVVSSSkpLHV0KDEpLEppKCIgIixoLlJPTEVOQU1FLCIgIil9fWZ1bmN0aW9uIFQ5dChkLGcpe2lmKDEmZCYmKG50KDAsInRhYmxlIiwyOSkoMSwidGJvZHkiKSxybigyLHg5dCwzLDIsInRyIiwyKSxvdCgpKCkpLDImZCl7Y29uc3QgaD1RdCgzKTt1dCgyKSxUdCgibmdGb3JPZiIsaC51c2Vy''@;'; put 'put ''Um9sZXMpfX1mdW5jdGlvbiBJOXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiKSgxLCJoMyIpLFl0KDIpLG90KCkscm4oMyxFOXQsMiwwLCJoNSIsNSksbnQoNCwiZGl2IiwyNCkscm4oNSxUOXQsMywxLCJ0YWJsZSIsMjUpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDIpO3V0KDIpLEppKCJS''@;'; put 'put ''T0xFUyAoIixoLnVzZXJSb2xlc0NvdW50fHwiMCIsIikiKSx1dCgxKSxUdCgibmdJZiIsMD09aC51c2VyUm9sZXNDb3VudCksdXQoMiksVHQoIm5nSWYiLDAhPWgudXNlclJvbGVzQ291bnQpfX1mdW5jdGlvbiBEOXQoZCxnKXsxJmQmJkNyKDAsImhyIil9ZnVuY3Rpb24gTDl0KGQsZyl7MSZk''@;'; put 'put ''JiYobnQoMCwiaDUiKSxZdCgxLCJObyBMb2dpbnMgUHJlc2VudCIpLG90KCkpfWZ1bmN0aW9uIE85dChkLGcpe2lmKDEmZCYmKG50KDAsInRyIikoMSwidGQiLDMxKSxZdCgyKSxvdCgpLG50KDMsInRkIiwzMSksWXQoNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9Zy4kaW1wbGljaXQ7dXQoMiks''@;'; put 'put ''amkoaC5ET01BSU4pLHV0KDIpLGppKGguVVNFUklEKX19ZnVuY3Rpb24gUjl0KGQsZyl7aWYoMSZkJiYobnQoMCwidGFibGUiLDI5KSgxLCJ0aGVhZCIpKDIsInRyIikoMywidGQiLDMwKSg0LCJiIiksWXQoNSwiRE9NQUlOIiksb3QoKSgpLG50KDYsInRkIikoNywiYiIpLFl0KDgsIlVTRVIg''@;'; put 'put ''SUQiKSxvdCgpKCkoKSgpLG50KDksInRib2R5Iikscm4oMTAsTzl0LDUsMiwidHIiLDIpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDMpO3V0KDEwKSxUdCgibmdGb3JPZiIsaC51c2VyTG9naW5zKX19ZnVuY3Rpb24gQjl0KGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2IikoMSwiaDMiKSxZdCgy''@;'; put 'put ''KSxvdCgpLHJuKDMsTDl0LDIsMCwiaDUiLDUpLG50KDQsImRpdiIsMjQpLHJuKDUsUjl0LDExLDEsInRhYmxlIiwyNSksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMiksSmkoIkxPR0lOUyAoIixoLnVzZXJMb2dpbnNDb3VudHx8IjAiLCIpIiksdXQoMSksVHQoIm5nSWYiLDA9PWgu''@;'; put 'put ''dXNlckxvZ2luc0NvdW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC51c2VyTG9naW5zQ291bnQpfX1mdW5jdGlvbiBQOXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiKSxybigxLHA5dCwxNSwzLCJkaXYiLDIwKSxybigyLGc5dCwxOSwzLCJkaXYiLDIwKSxudCgzLCJkaXYiLDIxKSg0LCJkaXYi''@;'; put 'put ''LDIyKSg1LCJkaXYiLDIzKSxybig2LHk5dCw2LDMsImRpdiIsNSkscm4oNyx3OXQsMSwwLCJociIsNSksbnQoOCwiZGl2IikoOSwiaDMiKSxZdCgxMCksb3QoKSxybigxMSxiOXQsMiwwLCJoNSIsNSksbnQoMTIsImRpdiIsMjQpLHJuKDEzLFM5dCwzLDEsInRhYmxlIiwyNSksb3QoKSgpLHJu''@;'; put 'put ''KDE0LE05dCwxLDAsImhyIiw1KSxybigxNSxJOXQsNiwzLCJkaXYiLDUpLHJuKDE2LEQ5dCwxLDAsImhyIiw1KSxybigxNyxCOXQsNiwzLCJkaXYiLDUpLENyKDE4LCJiciIpLG90KCkoKSgpKCkpLDImZCl7Y29uc3QgaD1RdCgpO3V0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGUhPT1oLlNl''@;'; put 'put ''cnZlclR5cGUuU2FzVml5YSksdXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXNWaXlhJiZoLnVzZXJJbmZvKSx1dCg0KSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhczkpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1o''@;'; put 'put ''LlNlcnZlclR5cGUuU2FzOSksdXQoMyksSmkoIkdST1VQUyAoIixoLnVzZXJHcm91cHNDb3VudHx8IjAiLCIpIiksdXQoMSksVHQoIm5nSWYiLDA9PWgudXNlckdyb3Vwc0NvdW50KSx1dCgyKSxUdCgibmdJZiIsMCE9aC51c2VyR3JvdXBzQ291bnQpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZl''@;'; put 'put ''clR5cGU9PT1oLlNlcnZlclR5cGUuU2FzOSksdXQoMSksVHQoIm5nSWYiLGguc2VydmVyVHlwZT09PWguU2VydmVyVHlwZS5TYXM5KSx1dCgxKSxUdCgibmdJZiIsaC5zZXJ2ZXJUeXBlPT09aC5TZXJ2ZXJUeXBlLlNhczkpLHV0KDEpLFR0KCJuZ0lmIixoLnNlcnZlclR5cGU9PT1oLlNlcnZl''@;'; put 'put ''clR5cGUuU2FzOSl9fWxldCBQTGU9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3RvcihoLHYseSxDLEkpe3RoaXMuaGVscGVyU2VydmljZT1oLHRoaXMuc2FzU2VydmljZT12LHRoaXMucm91dGU9eSx0aGlzLmxvY2F0aW9uPUMsdGhpcy5yb3V0ZXI9SSx0aGlzLmxvYWRpbmc9ITEsdGhpcy51c2Vy''@;'; put 'put ''U2VhcmNoPSIiLHRoaXMucGFyYW1QcmVzZW50PSExLHRoaXMucGFyYW1OYW1lPSIiLHRoaXMuc2FzanNDb25maWc9bmV3IFUzLlNBU2pzQ29uZmlnLHRoaXMuaXNWaXlhPSExLHRoaXMuc2VydmVyVHlwZT0iIix0aGlzLlNlcnZlclR5cGU9SHUuRCx0aGlzLnNlcnZlclR5cGU9dGhpcy5zYXNT''@;'; put 'put ''ZXJ2aWNlLmdldFNlcnZlclR5cGUoKSx0aGlzLnNhc2pzQ29uZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpLCJTQVNWSVlBIj09PXRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSYmKHRoaXMuaXNWaXlhPSEwKX1uZ09uSW5pdCgpe2lmKG5pLnZpZXdlci5jdXJyZW50U2Vs''@;'; put 'put ''ZWN0aW9uPSJ2aWV3L3VzZXJuYXYvdXNlcnMiLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSYmKHRoaXMucGFyYW1QcmVzZW50PSEwLHRoaXMucGFyYW1OYW1lPXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnVyaSksbmkudXNlcm5hdi51c2VyTGlzdCYmIXRoaXMu''@;'; put 'put ''cGFyYW1QcmVzZW50KXRoaXMudXNlcnM9bmkudXNlcm5hdi51c2VyTGlzdCx0aGlzLnVzZXJTZWFyY2g9bmkudXNlcm5hdi51c2VyU2VhcmNoO2Vsc2UgaWYodm9pZCAwPT09bmkudXNlcm5hdi51c2VyTGlzdD8odGhpcy5sb2FkaW5nPSEwLHRoaXMuaXNWaXlhP2ZldGNoKHRoaXMuc2FzanND''@;'; put 'put ''b25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy91c2Vycz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKGg9PmgudGV4dCgpKS50aGVuKGg9PntsZXQgeT1KU09OLnBhcnNlKGgpLml0ZW1zLm1hcChDPT4oe05BTUU6Qy5uYW1lLFVSSTpD''@;'; put 'put ''LmlkLFBST1ZJREVSOkMucHJvdmlkZXJJZH0pKTt0aGlzLmxvYWRpbmc9ITEsdGhpcy51c2Vycz15LG5pLnVzZXJuYXYudXNlckxpc3Q9eX0pOnRoaXMuc2FzU2VydmljZS5yZXF1ZXN0KCJ1c2VybmF2L3VzZXJtZW1iZXJzIixudWxsKS50aGVuKGg9Pnt0aGlzLmxvYWRpbmc9ITEsdGhpcy51''@;'; put 'put ''c2Vycz1oLnVzZXJzLG5pLnVzZXJuYXYudXNlckxpc3Q9aC51c2Vyc30pKToodGhpcy51c2Vycz1uaS51c2VybmF2LnVzZXJMaXN0LHRoaXMudXNlclNlYXJjaD1uaS51c2VybmF2LnVzZXJTZWFyY2gpLHRoaXMucGFyYW1QcmVzZW50KWlmKHRoaXMubG9hZGluZz0hMCx0aGlzLmlzVml5YSl7''@;'; put 'put ''bGV0IGg9dGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMudXJpO2ZldGNoKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsKyIvaWRlbnRpdGllcy91c2Vycy8iK2grIi9tZW1iZXJzaGlwcz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKHY9''@;'; put 'put ''PnYudGV4dCgpKS50aGVuKHY9PntsZXQgeT1KU09OLnBhcnNlKHYpO3RoaXMudXNlckRhdGE9eSx0aGlzLmxvYWRpbmc9ITE7bGV0IEM9eS5pdGVtcy5tYXAoST0+KHtHUk9VUE5BTUU6SS5uYW1lLFVSSTpJLmlkfSkpO3RoaXMudXNlckdyb3Vwcz1DLHRoaXMudXNlckdyb3Vwc0NvdW50PUMu''@;'; put 'put ''bGVuZ3RoLHRoaXMudXNlcnMmJih0aGlzLnVzZXJJbmZvPXRoaXMudXNlcnMuZmluZChJPT5JLlVSST09PWgpKX0pfWVsc2V7Y29uc3QgaD10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy51cmk7dGhpcy5zYXNTZXJ2aWNlLnJlcXVlc3QoInVzZXJuYXYvdXNlcmdyb3Vwc2J5bWVtYmVyIix7''@;'; put 'put ''aXdhbnQ6W3t1cmk6aH1dfSkudGhlbih5PT57c3dpdGNoKHRoaXMubG9hZGluZz0hMSx0aGlzLnNlcnZlclR5cGUpe2Nhc2UgSHUuRC5TYXM5OnRoaXMudXNlckluZm89eS5pbmZvWzBdLHRoaXMudXNlckVtYWlscz15LmVtYWlscyx0aGlzLnVzZXJFbWFpbHNDb3VudD15LmVtYWlscy5sZW5n''@;'; put 'put ''dGgsdGhpcy51c2VyUm9sZXM9eS5yb2xlcyx0aGlzLnVzZXJSb2xlc0NvdW50PXkucm9sZXMubGVuZ3RoLHRoaXMudXNlckxvZ2lucz15LmxvZ2lucyx0aGlzLnVzZXJMb2dpbnNDb3VudD15LmxvZ2lucy5sZW5ndGg7YnJlYWs7Y2FzZSBIdS5ELlNhc2pzOmlmKHRoaXMudXNlcnMpdGhpcy51''@;'; put 'put ''c2VySW5mbz10aGlzLnVzZXJzLmZpbmQoQz0+Qy5VUkk9PT1oKTtlbHNle2NvbnN0IEM9eS5ncm91cHNbMF07dGhpcy51c2VySW5mbz17VVJJOkMuSUQsTkFNRTpDLk5BTUUsRElTUExBWU5BTUU6Qy5OQU1FfX19dGhpcy51c2VyRGF0YT15LHRoaXMudXNlckdyb3Vwcz15Lmdyb3Vwcyx0aGlz''@;'; put 'put ''LnVzZXJHcm91cHNDb3VudD15Lmdyb3Vwcy5sZW5ndGh9KX19dXNlckxpc3RPbkZpbHRlcigpe3RoaXMuaGVscGVyU2VydmljZS5saWJyYXJ5T25GaWx0ZXIodGhpcy51c2Vycyx0aGlzLnVzZXJTZWFyY2gsIk5BTUUiKSxuaS51c2VybmF2LnVzZXJTZWFyY2g9dGhpcy51c2VyU2VhcmNofXVz''@;'; put 'put ''ZXJPbkNsaWNrKGgpe3RoaXMubG9hZGluZz0hMDtsZXQgdj10aGlzLnJvdXRlci51cmw7dGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUodGhpcy5wYXJhbVByZXNlbnQ/di5zbGljZSgwLHYubGFzdEluZGV4T2YoIi8iKSkrIi8iK2VuY29kZVVSSShoLlVSSSk6disiLyIrZW5jb2RlVVJJKGgu''@;'; put 'put ''VVJJKSksdGhpcy5pc1ZpeWE/ZmV0Y2godGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwrIi9pZGVudGl0aWVzL3VzZXJzLyIraC5VUkkrIi9tZW1iZXJzaGlwcz9saW1pdD0yMDAwIix7aGVhZGVyczp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uIn19KS50aGVuKHk9PnkudGV4dCgpKS50aGVu''@;'; put 'put ''KHk9PntsZXQgQz1KU09OLnBhcnNlKHkpO3RoaXMudXNlckRhdGE9Qyx0aGlzLmxvYWRpbmc9ITE7bGV0IEk9Qy5pdGVtcy5tYXAoWj0+KHtHUk9VUE5BTUU6Wi5uYW1lLFVSSTpaLmlkfSkpO3RoaXMudXNlckdyb3Vwcz1JLHRoaXMudXNlckdyb3Vwc0NvdW50PUkubGVuZ3RoLHRoaXMudXNl''@;'; put 'put ''cnMmJih0aGlzLnVzZXJJbmZvPXRoaXMudXNlcnMuZmluZChaPT5aLlVSST09PWguVVJJKSl9KTp0aGlzLnNhc1NlcnZpY2UucmVxdWVzdCgidXNlcm5hdi91c2VyZ3JvdXBzYnltZW1iZXIiLHtpd2FudDpbe3VyaTpoLlVSSX1dfSkudGhlbihDPT57c3dpdGNoKHRoaXMubG9hZGluZz0hMSx0''@;'; put 'put ''aGlzLnNlcnZlclR5cGUpe2Nhc2UgSHUuRC5TYXM5OnRoaXMudXNlckluZm89Qy5pbmZvWzBdLHRoaXMudXNlckVtYWlscz1DLmVtYWlscyx0aGlzLnVzZXJFbWFpbHNDb3VudD1DLmVtYWlscy5sZW5ndGgsdGhpcy51c2VyUm9sZXM9Qy5yb2xlcyx0aGlzLnVzZXJSb2xlc0NvdW50PUMucm9s''@;'; put 'put ''ZXMubGVuZ3RoLHRoaXMudXNlckxvZ2lucz1DLmxvZ2lucyx0aGlzLnVzZXJMb2dpbnNDb3VudD1DLmxvZ2lucy5sZW5ndGg7YnJlYWs7Y2FzZSBIdS5ELlNhc2pzOmlmKHRoaXMudXNlcnMpdGhpcy51c2VySW5mbz10aGlzLnVzZXJzLmZpbmQoST0+SS5VUkk9PT1oLlVSSSk7ZWxzZXtjb25z''@;'; put 'put ''dCBJPUMuZ3JvdXBzWzBdO3RoaXMudXNlckluZm89e1VSSTpJLklELE5BTUU6SS5OQU1FLERJU1BMQVlOQU1FOkkuTkFNRX19fXRoaXMudXNlckRhdGE9Qyx0aGlzLnVzZXJHcm91cHM9Qy5ncm91cHMsdGhpcy51c2VyR3JvdXBzQ291bnQ9Qy5ncm91cHMubGVuZ3RofSl9Z2V0Um9sZVVSSSho''@;'; put 'put ''KXtyZXR1cm4gaC5zcGxpdCgiT01TT0JKOklkZW50aXR5R3JvdXAiKVsxXS5zbGljZSgxKX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCkoS3QoWGMpLEt0KGcyKSxLdChQdSksS3QoVjYpLEt0KFpsKSl9LGQuXHUwMjc1Y21wPVRpKHt0eXBlOmQsc2Vs''@;'; put 'put ''ZWN0b3JzOltbImFwcC11c2VyIl1dLGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo3LHZhcnM6NCxjb25zdHM6W1sxLCJzaWRlYmFyLWhlaWdodCJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbMSwiY29udGVu''@;'; put 'put ''dC1hcmVhIl0sWyJjbGFzcyIsImxvYWRpbmdTcGlubmVyIiw0LCJuZ0lmIl0sWzQsIm5nSWYiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkZpbHRlciBieSBVc2VycyIsIm5hbWUiLCJpbnB1dCIsImF1''@;'; put 'put ''dG9jb21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0s''@;'; put 'put ''WyJzaGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJ0YWJsZS1hY3RpdmUiLCJjbGljayIsNCwibmdJZiJdLFszLCJjbGljayJdLFsxLCJtLTAiLCJjdXJzb3ItcG9pbnRlciIsImxpc3QtcGFkZGluZyJdLFsic2hhcGUiLCJ1c2VyIl0sWzEsImxvYWRpbmdTcGlubmVyIl0sWzEsInNwaW5u''@;'; put 'put ''ZXIiXSxbImNsYXNzIiwiY2xyLXJvdyIsNCwibmdJZiJdLFsxLCJjbHItcm93Il0sWzEsImNsci1jb2wtOCJdLFsxLCJjYXJkIiwidXNlci1kYXRhIl0sWzEsInRhYmxlLWNvbnRhaW5lciJdLFsiY2xhc3MiLCJ0YWJsZSB1c2VyLXRhYmxlIiw0LCJuZ0lmIl0sWzEsInRhYmxlIiwidXNlci1p''@;'; put 'put ''bmZvIl0sWzEsImxlZnQiXSxbMSwidXNlci1pbmZvLXRleHQiXSxbMSwidGFibGUiLCJ1c2VyLXRhYmxlIl0sWzEsIndpZHRoLTUwIl0sWzEsIiJdLFsicm91dGVyTGlua0FjdGl2ZSIsImFjdGl2ZSIsImNsYXNzIiwiIiwzLCJyb3V0ZXJMaW5rIiw0LCJuZ0lmIl0sWyJyb3V0ZXJMaW5rQWN0''@;'; put 'put ''aXZlIiwiYWN0aXZlIiwxLCIiLDMsInJvdXRlckxpbmsiXSxbMywicm91dGVyTGluayJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpezEmaCYmKG50KDAsImFwcC1zaWRlYmFyIiwwKSgxLCJjbHItdHJlZSIpLHJuKDIsdTl0LDYsMywiY2xyLXRyZWUtbm9kZSIsMSkscm4oMyxmOXQsMiwxLCJu''@;'; put 'put ''Zy1jb250YWluZXIiLDIpLG90KCkoKSxudCg0LCJkaXYiLDMpLHJuKDUsaDl0LDMsMCwiZGl2Iiw0KSxybig2LFA5dCwxOSwxMSwiZGl2Iiw1KSxvdCgpKSwyJmgmJih1dCgyKSxUdCgibmdJZiIsdi51c2VycyksdXQoMSksVHQoIm5nRm9yT2YiLHYudXNlcnMpLHV0KDIpLFR0KCJuZ0lmIix2''@;'; put 'put ''LmxvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIix2LnVzZXJEYXRhJiYhdi5sb2FkaW5nKSl9LGRlcGVuZGVuY2llczpbeHMsTm8sbTEsVHMsSXMsWTYsbGsseXYsX2csd2wscHYsTVNdLHN0eWxlczpbIi5zaWRlYmFyLWhlaWdodFtfbmdjb250ZW50LSVDT01QJV17aGVpZ2h0OjEwMCV9LnVzZXIt''@;'; put 'put ''aW5mby10ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXtkaXNwbGF5OmlubGluZTtmb250LXNpemU6MjBweH0udXNlci1pbmZvW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7Ym9yZGVyOjFweCBzb2xpZCAjYTdhN2E3O2JvcmRlci1yYWRpdXM6M3B4O2JveC1zaGFk''@;'; put 'put ''b3c6MCAycHggNXB4ICNkYWQ3ZDd9LnVzZXItaW5mb1tfbmdjb250ZW50LSVDT01QJV0gICB0ZFtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnVzZXItZGF0YVtfbmdjb250ZW50LSVDT01QJV17YmFja2dyb3VuZC1jb2xvcjojZjlmOWY5O2JvcmRlcjoxcHggc29saWQg''@;'; put 'put ''I2E3YTdhNztib3JkZXItcmFkaXVzOjNweDtib3gtc2hhZG93OjAgMnB4IDVweCAjZGFkN2Q3fS51c2VyLWRhdGFbX25nY29udGVudC0lQ09NUCVde21pbi1oZWlnaHQ6YXV0b30udXNlci1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGgzW19uZ2NvbnRlbnQtJUNPTVAlXSwgLnVzZXItZGF0''@;'; put 'put ''YVtfbmdjb250ZW50LSVDT01QJV0gICBoNVtfbmdjb250ZW50LSVDT01QJV17dGV4dC1hbGlnbjpjZW50ZXJ9LnVzZXItdGFibGVbX25nY29udGVudC0lQ09NUCVde2JhY2tncm91bmQtY29sb3I6I2Y5ZjlmOTt3aWR0aDoxMDAlfS51c2VyLXRhYmxlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIHRo''@;'; put 'put ''ZWFkW19uZ2NvbnRlbnQtJUNPTVAlXXtiYWNrZ3JvdW5kLWNvbG9yOiNkYWRhZGF9LnVzZXItdGFibGVbX25nY29udGVudC0lQ09NUCVdICAgdGJvZHlbX25nY29udGVudC0lQ09NUCVdICAgdHJbX25nY29udGVudC0lQ09NUCVdOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2U2ZTZlNjtjdXJz''@;'; put 'put ''b3I6cG9pbnRlcn0ud2lkdGgtNTBbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjUwJX0ud2lkdGgtMzNbX25nY29udGVudC0lQ09NUCVde3dpZHRoOjMzJX0udGFibGUtY29udGFpbmVyW19uZ2NvbnRlbnQtJUNPTVAlXXtvdmVyZmxvdy15OnNjcm9sbDttYXgtaGVpZ2h0OjUwMHB4fUBtZWRp''@;'; put 'put ''YSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KXsudXNlci1kYXRhW19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OnVuc2V0IWltcG9ydGFudH19Il19KSxkfSkoKTtjb25zdCBGTGU9bmV3IHplKCJXaW5kb3dUb2tlbiIsInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRv''@;'; put 'put ''dy5kb2N1bWVudD97cHJvdmlkZWRJbjoicm9vdCIsZmFjdG9yeTooKT0+d2luZG93fTp2b2lkIDApO2NsYXNzIFZne2NvbnN0cnVjdG9yKGcsaCl7dGhpcy5kb2N1bWVudD1nLHRoaXMud2luZG93PWgsdGhpcy5jb3B5U3ViamVjdD1uZXcgJGUsdGhpcy5jb3B5UmVzcG9uc2UkPXRoaXMuY29w''@;'; put 'put ''eVN1YmplY3QuYXNPYnNlcnZhYmxlKCksdGhpcy5jb25maWc9e319Y29uZmlndXJlKGcpe3RoaXMuY29uZmlnPWd9Y29weShnKXtpZighdGhpcy5pc1N1cHBvcnRlZHx8IWcpcmV0dXJuIHRoaXMucHVzaENvcHlSZXNwb25zZSh7aXNTdWNjZXNzOiExLGNvbnRlbnQ6Z30pO2NvbnN0IGg9dGhp''@;'; put 'put ''cy5jb3B5RnJvbUNvbnRlbnQoZyk7cmV0dXJuIHRoaXMucHVzaENvcHlSZXNwb25zZShoP3tjb250ZW50OmcsaXNTdWNjZXNzOmh9Ontpc1N1Y2Nlc3M6ITEsY29udGVudDpnfSl9Z2V0IGlzU3VwcG9ydGVkKCl7cmV0dXJuISF0aGlzLmRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCYm''@;'; put 'put ''ISF0aGlzLmRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgiY29weSIpJiYhIXRoaXMud2luZG93fWlzVGFyZ2V0VmFsaWQoZyl7aWYoZyBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnR8fGcgaW5zdGFuY2VvZiBIVE1MVGV4dEFyZWFFbGVtZW50KXtpZihnLmhhc0F0dHJpYnV0ZSgi''@;'; put 'put ''ZGlzYWJsZWQiKSl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgInRhcmdldCIgYXR0cmlidXRlLiBQbGVhc2UgdXNlICJyZWFkb25seSIgaW5zdGVhZCBvZiAiZGlzYWJsZWQiIGF0dHJpYnV0ZScpO3JldHVybiEwfXRocm93IG5ldyBFcnJvcigiVGFyZ2V0IHNob3VsZCBiZSBpbnB1dCBvciB0''@;'; put 'put ''ZXh0YXJlYSIpfWNvcHlGcm9tSW5wdXRFbGVtZW50KGcsaD0hMCl7dHJ5e3RoaXMuc2VsZWN0VGFyZ2V0KGcpO2NvbnN0IHY9dGhpcy5jb3B5VGV4dCgpO3JldHVybiB0aGlzLmNsZWFyU2VsZWN0aW9uKGg/Zzp2b2lkIDAsdGhpcy53aW5kb3cpLHYmJnRoaXMuaXNDb3B5U3VjY2Vzc0luSUUx''@;'; put 'put ''MSgpfWNhdGNoKHYpe3JldHVybiExfX1pc0NvcHlTdWNjZXNzSW5JRTExKCl7Y29uc3QgZz10aGlzLndpbmRvdy5jbGlwYm9hcmREYXRhO3JldHVybiEoZyYmZy5nZXREYXRhJiYhZy5nZXREYXRhKCJUZXh0IikpfWNvcHlGcm9tQ29udGVudChnLGg9dGhpcy5kb2N1bWVudC5ib2R5KXtpZih0''@;'; put 'put ''aGlzLnRlbXBUZXh0QXJlYSYmIWguY29udGFpbnModGhpcy50ZW1wVGV4dEFyZWEpJiZ0aGlzLmRlc3Ryb3kodGhpcy50ZW1wVGV4dEFyZWEucGFyZW50RWxlbWVudCksIXRoaXMudGVtcFRleHRBcmVhKXt0aGlzLnRlbXBUZXh0QXJlYT10aGlzLmNyZWF0ZVRlbXBUZXh0QXJlYSh0aGlzLmRv''@;'; put 'put ''Y3VtZW50LHRoaXMud2luZG93KTt0cnl7aC5hcHBlbmRDaGlsZCh0aGlzLnRlbXBUZXh0QXJlYSl9Y2F0Y2goeSl7dGhyb3cgbmV3IEVycm9yKCJDb250YWluZXIgc2hvdWxkIGJlIGEgRG9tIGVsZW1lbnQiKX19dGhpcy50ZW1wVGV4dEFyZWEudmFsdWU9Zztjb25zdCB2PXRoaXMuY29weUZy''@;'; put 'put ''b21JbnB1dEVsZW1lbnQodGhpcy50ZW1wVGV4dEFyZWEsITEpO3JldHVybiB0aGlzLmNvbmZpZy5jbGVhblVwQWZ0ZXJDb3B5JiZ0aGlzLmRlc3Ryb3kodGhpcy50ZW1wVGV4dEFyZWEucGFyZW50RWxlbWVudCksdn1kZXN0cm95KGc9dGhpcy5kb2N1bWVudC5ib2R5KXt0aGlzLnRlbXBUZXh0''@;'; put 'put ''QXJlYSYmKGcucmVtb3ZlQ2hpbGQodGhpcy50ZW1wVGV4dEFyZWEpLHRoaXMudGVtcFRleHRBcmVhPXZvaWQgMCl9c2VsZWN0VGFyZ2V0KGcpe3JldHVybiBnLnNlbGVjdCgpLGcuc2V0U2VsZWN0aW9uUmFuZ2UoMCxnLnZhbHVlLmxlbmd0aCksZy52YWx1ZS5sZW5ndGh9Y29weVRleHQoKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpfWNsZWFyU2VsZWN0aW9uKGcsaCl7ZyYmZy5mb2N1cygpLGguZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCl9Y3JlYXRlVGVtcFRleHRBcmVhKGcsaCl7Y29uc3Qgdj0icnRsIj09PWcuZG9jdW1lbnRFbGVtZW50''@;'; put 'put ''LmdldEF0dHJpYnV0ZSgiZGlyIik7bGV0IHk7cmV0dXJuIHk9Zy5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpLHkuc3R5bGUuZm9udFNpemU9IjEycHQiLHkuc3R5bGUuYm9yZGVyPSIwIix5LnN0eWxlLnBhZGRpbmc9IjAiLHkuc3R5bGUubWFyZ2luPSIwIix5LnN0eWxlLnBvc2l0aW9uPSJh''@;'; put 'put ''YnNvbHV0ZSIseS5zdHlsZVt2PyJyaWdodCI6ImxlZnQiXT0iLTk5OTlweCIseS5zdHlsZS50b3A9KGgucGFnZVlPZmZzZXR8fGcuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCkrInB4Iix5LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCIiKSx5fXB1c2hDb3B5UmVzcG9uc2UoZyl7dGhpcy5j''@;'; put 'put ''b3B5U3ViamVjdC5uZXh0KGcpfXB1c2hDb3B5UmVwb25zZShnKXt0aGlzLnB1c2hDb3B5UmVzcG9uc2UoZyl9fVZnLlx1MDI3NWZhYz1mdW5jdGlvbihnKXtyZXR1cm4gbmV3KGd8fFZnKShDaShncyksQ2koRkxlLDgpKX0sVmcuXHUwMjc1cHJvdj1BaSh7dG9rZW46VmcsZmFjdG9yeTpWZy5c''@;'; put 'put ''dTAyNzVmYWMscHJvdmlkZWRJbjoicm9vdCJ9KSxWZy5uZ0luamVjdGFibGVEZWY9dmkoe2ZhY3Rvcnk6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFZnKGgyKGdzKSxoMihGTGUsOCkpfSx0b2tlbjpWZyxwcm92aWRlZEluOiJyb290In0pO2xldCBGOXQ9KCgpPT57Y2xhc3MgZHtjb25zdHJ1Y3Rv''@;'; put 'put ''cihoKXt0aGlzLmNsaXBib2FyZFNydj1oLHRoaXMuY2JPblN1Y2Nlc3M9bmV3IGFyLHRoaXMuY2JPbkVycm9yPW5ldyBhcn1uZ09uSW5pdCgpe31uZ09uRGVzdHJveSgpe3RoaXMuY2xpcGJvYXJkU3J2LmRlc3Ryb3kodGhpcy5jb250YWluZXIpfW9uQ2xpY2soaCl7dGhpcy5jbGlwYm9hcmRT''@;'; put 'put ''cnYuaXNTdXBwb3J0ZWQ/dGhpcy50YXJnZXRFbG0mJnRoaXMuY2xpcGJvYXJkU3J2LmlzVGFyZ2V0VmFsaWQodGhpcy50YXJnZXRFbG0pP3RoaXMuaGFuZGxlUmVzdWx0KHRoaXMuY2xpcGJvYXJkU3J2LmNvcHlGcm9tSW5wdXRFbGVtZW50KHRoaXMudGFyZ2V0RWxtKSx0aGlzLnRhcmdldEVs''@;'; put 'put ''bS52YWx1ZSxoKTp0aGlzLmNiQ29udGVudCYmdGhpcy5oYW5kbGVSZXN1bHQodGhpcy5jbGlwYm9hcmRTcnYuY29weUZyb21Db250ZW50KHRoaXMuY2JDb250ZW50LHRoaXMuY29udGFpbmVyKSx0aGlzLmNiQ29udGVudCxoKTp0aGlzLmhhbmRsZVJlc3VsdCghMSx2b2lkIDAsaCl9aGFuZGxl''@;'; put 'put ''UmVzdWx0KGgsdix5KXtsZXQgQz17aXNTdWNjZXNzOmgsZXZlbnQ6eX07aD8oQz1PYmplY3QuYXNzaWduKEMse2NvbnRlbnQ6dixzdWNjZXNzTWVzc2FnZTp0aGlzLmNiU3VjY2Vzc01zZ30pLHRoaXMuY2JPblN1Y2Nlc3MuZW1pdChDKSk6dGhpcy5jYk9uRXJyb3IuZW1pdChDKSx0aGlzLmNs''@;'; put 'put ''aXBib2FyZFNydi5wdXNoQ29weVJlc3BvbnNlKEMpfX1yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKShLdChWZykpfSxkLlx1MDI3NWRpcj1XaSh7dHlwZTpkLHNlbGVjdG9yczpbWyIiLCJuZ3hDbGlwYm9hcmQiLCIiXV0saG9zdEJpbmRpbmdzOmZ1bmN0''@;'; put 'put ''aW9uKGgsdil7MSZoJiZHbigiY2xpY2siLGZ1bmN0aW9uKEMpe3JldHVybiB2Lm9uQ2xpY2soQy50YXJnZXQpfSl9LGlucHV0czp7dGFyZ2V0RWxtOlsibmd4Q2xpcGJvYXJkIiwidGFyZ2V0RWxtIl0sY29udGFpbmVyOiJjb250YWluZXIiLGNiQ29udGVudDoiY2JDb250ZW50IixjYlN1Y2Nl''@;'; put 'put ''c3NNc2c6ImNiU3VjY2Vzc01zZyJ9LG91dHB1dHM6e2NiT25TdWNjZXNzOiJjYk9uU3VjY2VzcyIsY2JPbkVycm9yOiJjYk9uRXJyb3IifX0pLGR9KSgpLEg5dD0oKCk9PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVt''@;'; put 'put ''b2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltiYV19KSxkfSkoKTt2YXIgTjl0PUwoMzY2MjUpO2xldCBWOXQ9KCgpPT57Y2xhc3MgZHt0cmFuc2Zvcm0oaCwuLi52KXtjb25zdCB5PXBhcnNlSW50KHZbMF0pfHwyLEM9Im51bWJlciIhPXR5cGVvZiBoP3BhcnNlSW50''@;'; put 'put ''KGgpOmg7cmV0dXJuKDAsTjl0LlIpKEMseSl9fXJldHVybiBkLlx1MDI3NWZhYz1mdW5jdGlvbihoKXtyZXR1cm4gbmV3KGh8fGQpfSxkLlx1MDI3NXBpcGU9VXMoe25hbWU6ImNvbnZlcnRTaXplIix0eXBlOmQscHVyZTohMH0pLGR9KSgpO2NvbnN0IGo5dD1bInF1ZXJ5RmlsdGVyIl07ZnVu''@;'; put 'put ''Y3Rpb24gWjl0KGQsZyl7MSZkJiYobnQoMCwiZGl2Iiw0OSksQ3IoMSwiY2xyLXNwaW5uZXIiLDUwKSxvdCgpKX1mdW5jdGlvbiB6OXQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiw1Nyl9ZnVuY3Rpb24gRzl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLWljb24iLDU4''@;'; put 'put ''KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgyKTtyZXR1cm4geS5saWJyYXJpZXNTZWFyY2g9IiIsYSh5LmxpYnJhcnlPbkZpbHRlcigpKX0pLG90KCl9fWZ1bmN0aW9uIFc5dChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci10cmVlLW5vZGUiLDUx''@;'; put 'put ''KSgxLCJkaXYiLDUyKSgyLCJpbnB1dCIsNTMsNTQpLEduKCJuZ01vZGVsQ2hhbmdlIixmdW5jdGlvbih5KXtyZXR1cm4gaXQoaCksYShRdCgpLmxpYnJhcmllc1NlYXJjaD15KX0pKCJrZXl1cCIsZnVuY3Rpb24oKXtyZXR1cm4gaXQoaCksYShRdCgpLmxpYnJhcnlPbkZpbHRlcigpKX0pLG90''@;'; put 'put ''KCkscm4oNCx6OXQsMSwwLCJjbHItaWNvbiIsNTUpLHJuKDUsRzl0LDEsMCwiY2xyLWljb24iLDU2KSxvdCgpKCl9aWYoMiZkKXtjb25zdCBoPXZhKDMpLHY9UXQoKTt1dCgyKSxUdCgibmdNb2RlbCIsdi5saWJyYXJpZXNTZWFyY2gpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwx''@;'; put 'put ''KSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIFk5dChkLGcpezEmZCYmQ3IoMCwiY2xyLWljb24iLDU3KX1mdW5jdGlvbiBVOXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItaWNvbiIsNTgpLEduKCJjbGljayIsZnVuY3Rpb24oKXtpdCho''@;'; put 'put ''KSxRdCgpO2NvbnN0IHk9dmEoMyksQz1RdCgyKS4kaW1wbGljaXQsST1RdCgpO3JldHVybiB5LnZhbHVlPSIiLEMuc2VhcmNoU3RyaW5nPSIiLGEoSS50cmVlT25GaWx0ZXIoQywidGFibGVzIikpfSksb3QoKX19ZnVuY3Rpb24gUTl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwi''@;'; put 'put ''Y2xyLXRyZWUtbm9kZSIsNTEpKDEsImRpdiIsNTIpKDIsImlucHV0Iiw2Myw2NCksR24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLiRpbXBsaWNpdC5zZWFyY2hTdHJpbmc9eSl9KSgia2V5dXAiLGZ1bmN0aW9uKCl7aXQoaCk7Y29uc3QgeT1RdCgy''@;'; put 'put ''KS4kaW1wbGljaXQ7cmV0dXJuIGEoUXQoKS50cmVlT25GaWx0ZXIoeSwidGFibGVzIikpfSksb3QoKSxybig0LFk5dCwxLDAsImNsci1pY29uIiw1NSkscm4oNSxVOXQsMSwwLCJjbHItaWNvbiIsNTYpLG90KCkoKX1pZigyJmQpe2NvbnN0IGg9dmEoMyksdj1RdCgyKS4kaW1wbGljaXQ7dXQo''@;'; put 'put ''MiksVHQoImlkIiwic2VhcmNoXyIrdi5MSUJSQVJZUkVGKSgibmdNb2RlbCIsdi5zZWFyY2hTdHJpbmcpLHV0KDIpLFR0KCJuZ0lmIixoLnZhbHVlLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC52YWx1ZS5sZW5ndGg+MCl9fWZ1bmN0aW9uIEo5dChkLGcpezEmZCYmQ3IoMCwiY2xyLWlj''@;'; put 'put ''b24iLDcwKX1mdW5jdGlvbiBYOXQoZCxnKXsxJmQmJkNyKDAsImNsci1pY29uIiw3MSl9ZnVuY3Rpb24gSzl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiYnV0dG9uIiw2NiksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9UXQoKS4kaW1wbGljaXQsQz1RdCgy''@;'; put 'put ''KS4kaW1wbGljaXQsST1RdCgpO3JldHVybiBJLmxpYj1DLkxJQlJBUllSRUYsSS50YWJsZT15LEkuc2VsZWN0TGliVGFibGUoeSksYShJLnZpZXdEYXRhKDApKX0pLEIwKDEsNjcpLHJuKDIsSjl0LDEsMCwiY2xyLWljb24iLDY4KSxybigzLFg5dCwxLDAsImNsci1pY29uIiw2OSksUDAoKSxZ''@;'; put 'put ''dCg0KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgpLiRpbXBsaWNpdCx2PVF0KDIpLiRpbXBsaWNpdDtGaSgidGFibGUtYWN0aXZlIixRdCgpLmxpYlRhYkFjdGl2ZSh2LkxJQlJBUllSRUYsaCkpLHV0KDEpLFR0KCJuZ1N3aXRjaCIsaC5pbmNsdWRlcygiLUZDIikpLHV0KDEpLFR0KCJuZ1N3''@;'; put 'put ''aXRjaENhc2UiLCEwKSx1dCgxKSxUdCgibmdTd2l0Y2hDYXNlIiwhMSksdXQoMSksSmkoIiAiLGgucmVwbGFjZSgiLUZDIiwiIiksIiAiKX19ZnVuY3Rpb24gJDl0KGQsZyl7aWYoMSZkJiYobnQoMCwiY2xyLXRyZWUtbm9kZSIpLHJuKDEsSzl0LDUsNiwiYnV0dG9uIiw2NSksb3QoKSksMiZk''@;'; put 'put ''KXtjb25zdCBoPWcuJGltcGxpY2l0O3V0KDEpLFR0KCJuZ0lmIixoLmxlbmd0aD4wKX19ZnVuY3Rpb24gcTl0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiY2xyLXRyZWUtbm9kZSIsNjApLEduKCJjbGljayIsZnVuY3Rpb24oeSl7aXQoaCk7Y29uc3QgQz1RdCgpLiRpbXBsaWNp''@;'; put 'put ''dDtyZXR1cm4gYShRdCgpLnRyZWVOb2RlQ2xpY2tlZCh5LEMpKX0pKCJjbHJFeHBhbmRlZENoYW5nZSIsZnVuY3Rpb24oeSl7cmV0dXJuIGl0KGgpLGEoUXQoKS4kaW1wbGljaXQuZXhwYW5kZWQ9eSl9KSxudCgxLCJwIiw2MSksR24oImNsaWNrIixmdW5jdGlvbigpe2l0KGgpO2NvbnN0IHk9''@;'; put 'put ''UXQoKS4kaW1wbGljaXQsQz1RdCgpO3JldHVybiBDLmxpYj15LkxJQlJBUllSRUYsYShDLmxpYnJhcnlPbkNsaWNrKHkuTElCUkFSWVJFRix5KSl9KSxDcigyLCJjbHItaWNvbiIsNjIpLFl0KDMpLG90KCkscm4oNCxROXQsNiw0LCJjbHItdHJlZS1ub2RlIiwyKSxybig1LCQ5dCwyLDEsImNs''@;'; put 'put ''ci10cmVlLW5vZGUiLDMpLG90KCl9aWYoMiZkKXtjb25zdCBoPVF0KCkuJGltcGxpY2l0O0ZpKCJjbHItZXhwYW5kZWQiLGguZXhwYW5kZWQpLFR0KCJjbHJFeHBhbmRlZCIsaC5leHBhbmRlZCkoImNsckxvYWRpbmciLGgubG9hZGluZ1RhYmxlcyYmIWgudGFibGVzKSx1dCgzKSxKaSgiICIs''@;'; put 'put ''aC5MSUJSQVJZTkFNRSwiICIpLHV0KDEpLFR0KCJuZ0lmIixoLnRhYmxlcyksdXQoMSksVHQoIm5nRm9yT2YiLGgudGFibGVzKX19ZnVuY3Rpb24gZUF0KGQsZyl7aWYoMSZkJiYoQjAoMCkscm4oMSxxOXQsNiw3LCJjbHItdHJlZS1ub2RlIiw1OSksUDAoKSksMiZkKXtjb25zdCBoPWcuJGlt''@;'; put 'put ''cGxpY2l0O3V0KDEpLFR0KCJuZ0lmIiwhaC5oaWRkZW4mJmguaW5Gb3JlZ3JvdW5kKX19ZnVuY3Rpb24gdEF0KGQsZyl7MSZkJiYobnQoMCwiZGl2Iiw3MikoMSwic3BhbiIsNzMpLFl0KDIsIiBMb2FkaW5nLi4uICIpLG90KCkoKSl9ZnVuY3Rpb24gbkF0KGQsZyl7aWYoMSZkKXtjb25zdCBo''@;'; put 'put ''PXdpKCk7bnQoMCwiZGl2Iiw3NCkoMSwiZGl2Iiw3NSkoMiwiZGl2Iiw3NikoMywiZGl2Iiw3NykoNCwiYnV0dG9uIiw3OCksQ3IoNSwiY2xyLWljb24iLDc5KSxvdCgpLG50KDYsImgzIiw0MyksWXQoNywiRXJyb3IiKSxvdCgpKCksbnQoOCwiZGl2IiwxMCkoOSwicCIpLFl0KDEwLCJZb3Ug''@;'; put 'put ''Y2Fubm90IHN1Ym1pdCBlbXB0eSBjbGF1c2VzIiksb3QoKSgpLG50KDExLCJkaXYiLDIxKSgxMiwiYnV0dG9uIiw4MCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KCkubnVsbFZhcmlhYmxlcz0hMSl9KSxZdCgxMywiIE9rICIpLG90KCkoKSgpKCkoKX19ZnVuY3Rp''@;'; put 'put ''b24gckF0KGQsZyl7MSZkJiZDcigwLCJkaXYiLDgxKX1mdW5jdGlvbiBpQXQoZCxnKXsxJmQmJkNyKDAsImFwcC1xdWVyeSIsbnVsbCw4Mil9ZnVuY3Rpb24gb0F0KGQsZyl7MSZkJiYobnQoMCwiZGl2Iiw4MykoMSwic3BhbiIsODQpLFl0KDIsIiBMb2FkaW5nLi4uICIpLG90KCksbnQoMywi''@;'; put 'put ''ZGl2IikoNCwiaDQiKSxZdCg1LCJMb2FkaW5nIHRhYmxlIHZpZXdlciIpLG90KCkoKSgpKX1mdW5jdGlvbiBhQXQoZCxnKXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJjbHItaWNvbiIsMTA2KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7aXQoaCksUXQoKTtjb25zdCB5PXZhKDUpO3JldHVy''@;'; put 'put ''biBhKFF0KDIpLnNlYXJjaFRhYmxlKHkpKX0pLG90KCl9fWZ1bmN0aW9uIGxBdChkLGcpezEmZCYmKG50KDAsInNwYW4iLDEwNyksWXQoMSwiIExvYWRpbmcuLi4gIiksb3QoKSl9ZnVuY3Rpb24gc0F0KGQsZyl7MSZkJiZDcigwLCJjbHItaWNvbiIsMTA4KX1mdW5jdGlvbiB1QXQoZCxnKXtp''@;'; put 'put ''ZigxJmQmJihudCgwLCJzcGFuIiksWXQoMSksbm4oMiwidGhvdXNhbmRTZXBhcmF0b3IiKSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoNCk7dXQoMSksRmgoIiAoIixQbigyLDIsaC5udW1iZXJPZlJvd3MsIiwiKSwiICIsMT09PWgubnVtYmVyT2ZSb3dzPyJyb3ciOiJyb3dzIiwiKSAiKX19ZnVu''@;'; put 'put ''Y3Rpb24gY0F0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiaDMiLDEwOSksWXQoMSkscm4oMix1QXQsMyw1LCJzcGFuIiwzOCksbnQoMywiY2xyLWljb24iLDExMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDMpLnJlbG9hZFRhYmxlRGF0YSgpKX0p''@;'; put 'put ''LG90KCkoKX1pZigyJmQpe2NvbnN0IGg9UXQoMyk7dXQoMSksSmkoIiAiLG51bGw9PWgudGFibGVUaXRsZT9udWxsOmgudGFibGVUaXRsZS5yZXBsYWNlKCItRkMiLCIiKSwiICIpLHV0KDEpLFR0KCJuZ0lmIixudWxsIT09aC5udW1iZXJPZlJvd3MpfX1mdW5jdGlvbiBmQXQoZCxnKXtpZigx''@;'; put 'put ''JmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDExOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDUpLmVkaXRUYWJsZSgpKX0pLENyKDEsImNsci1pY29uIiwxMjIpLG50KDIsInNwYW4iKSxZdCgzLCJFZGl0Iiksb3QoKSgpfX1mdW5jdGlvbiBoQXQoZCxn''@;'; put 'put ''KXtpZigxJmQpe2NvbnN0IGg9d2koKTtudCgwLCJidXR0b24iLDExOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDUpLmdvVG9MaW5lYWdlKCkpfSksQ3IoMSwiY2xyLWljb24iLDEyMyksbnQoMiwic3BhbiIpLFl0KDMsIkxpbmVhZ2UiKSxvdCgpKCl9fWZ1bmN0''@;'; put 'put ''aW9uIGRBdChkLGcpe2lmKDEmZCl7Y29uc3QgaD13aSgpO250KDAsImNsci1kcm9wZG93bi1tZW51IiwxMTUpLHJuKDEsZkF0LDQsMCwiYnV0dG9uIiwxMTYpLHJuKDIsaEF0LDQsMCwiYnV0dG9uIiwxMTYpLG50KDMsImJ1dHRvbiIsMTE3KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IGl0KGgpLGEoUXQoNCkub3BlblFiKCkpfSksQ3IoNCwiY2xyLWljb24iLDExOCksbnQoNSwic3BhbiIpLFl0KDYsIkZpbHRlciIpLG90KCkoKSxudCg3LCJidXR0b24iLDExOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDQpLm9wZW5Eb3dubG9hZD0hMCl9KSxD''@;'; put 'put ''cig4LCJjbHItaWNvbiIsMTIwKSxudCg5LCJzcGFuIiksWXQoMTAsIkRvd25sb2FkIiksb3QoKSgpLG50KDExLCJidXR0b24iLDExOSksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDQpLnNob3dXZWJRdWVyeSgpKX0pLENyKDEyLCJjbHItaWNvbiIsMTIxKSxudCgx''@;'; put 'put ''Mywic3BhbiIpLFl0KDE0LCJXZWIgUXVlcnkgVVJMIiksb3QoKSgpKCl9aWYoMiZkKXtjb25zdCBoPVF0KDQpO3V0KDEpLFR0KCJuZ0lmIixoLnRhYmxlRWRpdEV4aXN0cygpKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZXVyaSl9fWZ1bmN0aW9uIHBBdChkLGcpezEmZCYmKG50KDAsImNsci1k''@;'; put 'put ''cm9wZG93biIsMTExKSgxLCJidXR0b24iLDExMiksQ3IoMiwiY2xyLWljb24iLDExMyksWXQoMywiIG9wdGlvbnMgIiksb3QoKSxybig0LGRBdCwxNSwyLCJjbHItZHJvcGRvd24tbWVudSIsMTE0KSxvdCgpKSwyJmQmJlR0KCJjbHJDbG9zZU1lbnVPbkl0ZW1DbGljayIsITApfWZ1bmN0aW9u''@;'; put 'put ''IGdBdChkLGcpe2lmKDEmZCYmKG50KDAsImRpdiIsMTI0KSgxLCJzcGFuIiksWXQoMiwiRklMVEVSIDogIiksbnQoMywiYiIpLFl0KDQpLG90KCkoKSgpKSwyJmQpe2NvbnN0IGg9UXQoMyk7dXQoNCksamkoaC5xdWVyeVRleHQpfX1jb25zdCBtQXQ9ZnVuY3Rpb24oKXtyZXR1cm5bIiIsIiAi''@;'; put 'put ''XX07ZnVuY3Rpb24gdkF0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwiZGl2Iiw5MCkoMSwic2VjdGlvbiIsOTEpKDIsImZvcm0iLDkyKSgzLCJkaXYiLDkzKSg0LCJpbnB1dCIsOTQsOTUpLEduKCJrZXl1cC5lbnRlciIsZnVuY3Rpb24oKXtpdChoKTtjb25zdCB5PXZhKDUpO3Jl''@;'; put 'put ''dHVybiBhKFF0KDIpLnNlYXJjaFRhYmxlKHkpKX0pLG90KCkscm4oNixhQXQsMSwwLCJjbHItaWNvbiIsOTYpLHJuKDcsbEF0LDIsMCwic3BhbiIsOTcpLG90KCksbnQoOCwiY2xyLWNoZWNrYm94LWNvbnRhaW5lciIpKDksImNsci1jaGVja2JveC13cmFwcGVyIikoMTAsImlucHV0Iiw5OCks''@;'; put 'put ''R24oIm5nTW9kZWxDaGFuZ2UiLGZ1bmN0aW9uKHkpe3JldHVybiBpdChoKSxhKFF0KDIpLnNlYXJjaE51bWVyaWM9eSl9KSxvdCgpLG50KDExLCJsYWJlbCIpLFl0KDEyLCJOdW1lcmljIiksb3QoKSgpKCkoKSgpLG50KDEzLCJkaXYiLDk5KSgxNCwiY2xyLWljb24iLDEwMCksR24oImNsaWNr''@;'; put 'put ''IixmdW5jdGlvbigpe3JldHVybiBpdChoKSxhKFF0KDIpLmRhdGFzZXRJbmZvPSEwKX0pLG90KCkscm4oMTUsc0F0LDEsMCwiY2xyLWljb24iLDEwMSkscm4oMTYsY0F0LDQsMiwiaDMiLDEwMiksb3QoKSxudCgxNywiZGl2IiwxMDMpLHJuKDE4LHBBdCw1LDEsImNsci1kcm9wZG93biIsMTA0''@;'; put 'put ''KSxvdCgpLHJuKDE5LGdBdCw1LDEsImRpdiIsMTA1KSxvdCgpfWlmKDImZCl7Y29uc3QgaD1RdCgyKTt1dCg0KSxUdCgidHlwZSIsaC5zZWFyY2hOdW1lcmljPyJudW1iZXIiOiJ0ZXh0IiksdXQoMiksVHQoIm5nSWYiLCFoLnNlYXJjaExvYWRpbmcpLHV0KDEpLFR0KCJuZ0lmIixoLnNlYXJj''@;'; put 'put ''aExvYWRpbmcpLHV0KDMpLFR0KCJuZ01vZGVsIixoLnNlYXJjaE51bWVyaWMpLHV0KDUpLFR0KCJuZ0lmIixudWxsPT1oLnRhYmxlVGl0bGU/bnVsbDpoLnRhYmxlVGl0bGUuaW5jbHVkZXMoIi1GQyIpKSx1dCgxKSxUdCgibmdJZiIsaC50YWJsZVRpdGxlJiZoLnRhYmxlVGl0bGUubGVuZ3Ro''@;'; put 'put ''PjApLHV0KDIpLFR0KCJuZ0lmIixoLnRhYmxlVGl0bGUmJiFoLmFib3J0QWN0aXZlKSx1dCgxKSxUdCgibmdJZiIsIjE9MSIhPT1oLnF1ZXJ5VGV4dCYmIWNzKDgsbUF0KS5pbmNsdWRlcyhoLnF1ZXJ5VGV4dCkmJiFoLmFib3J0QWN0aXZlKX19ZnVuY3Rpb24gQUF0KGQsZyl7MSZkJiYobnQo''@;'; put 'put ''MCwiZGl2IiwxMjUpLENyKDEsImNsci1pY29uIiwxMjYpLG50KDIsImgzIiwxMjcpLFl0KDMsIlBsZWFzZSBzZWxlY3QgYSBsaWJyYXJ5Iiksb3QoKSgpKX1mdW5jdGlvbiB5QXQoZCxnKXsxJmQmJkNyKDAsImNsci1zcGlubmVyIiw1MCl9ZnVuY3Rpb24gd0F0KGQsZyl7MSZkJiYobnQoMCwi''@;'; put 'put ''ZGl2IiwxMzUpLENyKDEsImNsci1pY29uIiwxMzYpLG50KDIsImgzIiwxMjcpLFl0KDMsIlBsZWFzZSBzZWxlY3QgYSB0YWJsZSIpLG90KCkoKSl9ZnVuY3Rpb24gYkF0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7bnQoMCwicCIsMTM5KSxZdCgxLCIgTm8gbGlicmFyeSBpbmZvIGZvdW5k''@;'; put 'put ''LiBDbGljayAiKSxudCgyLCJjbHItaWNvbiIsMTQwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoNCkucmVsb2FkTGliSW5mbygpKX0pLG90KCksWXQoMywiIGJ1dHRvbiB0byByZWZyZXNoLiAiKSxvdCgpfX1mdW5jdGlvbiBfQXQoZCxnKXtpZigxJmQmJihudCgw''@;'; put 'put ''LCJ0ciIpKDEsInRkIiwxNDEpLFl0KDIsIkVOR0lORToiKSxvdCgpLG50KDMsInRkIiwxNDIpLFl0KDQpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDUpO3V0KDQpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLkVOR0lORToiIiwiICIpfX1mdW5jdGlvbiBDQXQoZCxnKXtpZigx''@;'; put 'put ''JmQmJihudCgwLCJ0ciIpKDEsInRkIiwxNDEpLFl0KDIsIkxJQklEOiIpLG90KCksbnQoMywidGQiLDE0MiksWXQoNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoNSk7dXQoNCksSmkoIiAiLGgubGliaW5mb1swXT9oLmxpYmluZm9bMF0uTElCSUQ6IiIsIiAiKX19ZnVuY3Rpb24ga0F0KGQs''@;'; put 'put ''Zyl7aWYoMSZkJiYobnQoMCwidHIiKSgxLCJ0ZCIsMTQxKSxZdCgyLCJMSUJOQU1FOiIpLG90KCksbnQoMywidGQiLDE0MiksWXQoNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoNSk7dXQoNCksSmkoIiAiLGgubGliaW5mb1swXT9oLmxpYmluZm9bMF0uTElCTkFNRToiIiwiICIpfX1mdW5j''@;'; put 'put ''dGlvbiBTQXQoZCxnKXtpZigxJmQmJihudCgwLCJ0ciIpKDEsInRkIiwxNDEpLFl0KDIsIkxJQlNJWkU6Iiksb3QoKSxudCgzLCJ0ZCIsMTQyKSxZdCg0KSxubig1LCJjb252ZXJ0U2l6ZSIpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDUpO3V0KDQpLEppKCIgIixoLmxpYmluZm9bMF0/enQo''@;'; put 'put ''NSwxLGgubGliaW5mb1swXS5MSUJTSVpFKToiIiwiICIpfX1mdW5jdGlvbiBNQXQoZCxnKXtpZigxJmQmJihudCgwLCJ0ciIpKDEsInRkIiwxNDEpLFl0KDIsIk9XTkVSUzoiKSxvdCgpLG50KDMsInRkIiwxNDIpLFl0KDQpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0KDUpO3V0KDQpLEppKCIg''@;'; put 'put ''IixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLk9XTkVSUzoiIiwiICIpfX1mdW5jdGlvbiBFQXQoZCxnKXtpZigxJmQmJihudCgwLCJ0ciIpKDEsInRkIiwxNDEpLFl0KDIsIlBBVEhTOiIpLG90KCksbnQoMywidGQiLDE0MiksWXQoNCksb3QoKSgpKSwyJmQpe2NvbnN0IGg9UXQoNSk7dXQo''@;'; put 'put ''NCksSmkoIiAiLGgubGliaW5mb1swXT9oLmxpYmluZm9bMF0uUEFUSFM6IiIsIiAiKX19ZnVuY3Rpb24geEF0KGQsZyl7aWYoMSZkJiYobnQoMCwidHIiKSgxLCJ0ZCIsMTQxKSxZdCgyLCJQRVJNUzoiKSxvdCgpLG50KDMsInRkIiwxNDIpLFl0KDQpLG90KCkoKSksMiZkKXtjb25zdCBoPVF0''@;'; put 'put ''KDUpO3V0KDQpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLlBFUk1TOiIiLCIgIil9fWZ1bmN0aW9uIFRBdChkLGcpe2lmKDEmZCYmKG50KDAsInRyIikoMSwidGQiLDE0MSksWXQoMiwiU0NIRU1BUzoiKSxvdCgpLG50KDMsInRkIiwxNDIpLFl0KDQpLG90KCkoKSksMiZkKXtj''@;'; put 'put ''b25zdCBoPVF0KDUpO3V0KDQpLEppKCIgIixoLmxpYmluZm9bMF0/aC5saWJpbmZvWzBdLlNDSEVNQVM6IiIsIiAiKX19ZnVuY3Rpb24gSUF0KGQsZyl7aWYoMSZkJiYobnQoMCwidHIiKSgxLCJ0ZCIsMTQxKSxZdCgyLCJUQUJMRV9DTlQ6Iiksb3QoKSxudCgzLCJ0ZCIsMTQyKSxZdCg0KSxv''@;'; put 'put ''dCgpKCkpLDImZCl7Y29uc3QgaD1RdCg1KTt1dCg0KSxKaSgiICIsaC5saWJpbmZvWzBdP2gubGliaW5mb1swXS5UQUJMRV9DTlQ6IiIsIiAiKX19ZnVuY3Rpb24gREF0KGQsZyl7aWYoMSZkJiYoQjAoMCksbnQoMSwidGFibGUiKSxybigyLF9BdCw1LDEsInRyIiwzOCkscm4oMyxDQXQsNSwx''@;'; put 'put ''LCJ0ciIsMzgpLHJuKDQsa0F0LDUsMSwidHIiLDM4KSxybig1LFNBdCw2LDMsInRyIiwzOCkscm4oNixNQXQsNSwxLCJ0ciIsMzgpLHJuKDcsRUF0LDUsMSwidHIiLDM4KSxybig4LHhBdCw1LDEsInRyIiwzOCkscm4oOSxUQXQsNSwxLCJ0ciIsMzgpLHJuKDEwLElBdCw1LDEsInRyIiwzOCks''@;'; put 'put ''b3QoKSxQMCgpKSwyJmQpe2NvbnN0IGg9UXQoNCk7dXQoMiksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLkVOR0lORSksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLkxJQklEKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uTElCTkFNRSksdXQoMSksVHQo''@;'; put 'put ''Im5nSWYiLG51bGwhPT1oLmxpYmluZm9bMF0uTElCU0laRSksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLk9XTkVSUyksdXQoMSksVHQoIm5nSWYiLCIiIT09aC5saWJpbmZvWzBdLlBBVEhTKSx1dCgxKSxUdCgibmdJZiIsIiIhPT1oLmxpYmluZm9bMF0uUEVSTVMpLHV0KDEp''@;'; put 'put ''LFR0KCJuZ0lmIiwiIiE9PWgubGliaW5mb1swXS5TQ0hFTUFTKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubGliaW5mb1swXS5UQUJMRV9DTlQpfX1mdW5jdGlvbiBMQXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDEzNykscm4oMSxiQXQsNCwwLCJwIiwxMzgpLHJuKDIsREF0LDExLDks''@;'; put 'put ''Im5nLWNvbnRhaW5lciIsMzgpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgzKTt1dCgxKSxUdCgibmdJZiIsaC5saWJpbmZvLmxlbmd0aDwxKSx1dCgxKSxUdCgibmdJZiIsaC5saWJpbmZvLmxlbmd0aD4wKX19ZnVuY3Rpb24gT0F0KGQsZyl7aWYoMSZkKXtjb25zdCBoPXdpKCk7QjAoMCksbnQo''@;'; put 'put ''MSwiZGl2IiwxMjgpLENyKDIsInNlY3Rpb24iLDkxKSxudCgzLCJkaXYiLDEyOSkoNCwiaDMiLDEzMCksWXQoNSksb3QoKSxudCg2LCJjbHItaWNvbiIsMTEwKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIGl0KGgpLGEoUXQoMikucmVsb2FkTGliSW5mbygpKX0pLG90KCkoKSxDcig3''@;'; put 'put ''LCJkaXYiLDEwMyksb3QoKSxudCg4LCJkaXYiLDEzMSkscm4oOSx5QXQsMSwwLCJjbHItc3Bpbm5lciIsMTMyKSxvdCgpLHJuKDEwLHdBdCw0LDAsImRpdiIsMTMzKSxybigxMSxMQXQsMywyLCJkaXYiLDEzNCksUDAoKX1pZigyJmQpe2NvbnN0IGg9UXQoMik7dXQoNSksSmkoIiAiLGgubGli''@;'; put 'put ''LCIgIiksdXQoNCksVHQoIm5nSWYiLG51bGw9PT1oLmxpYmluZm8pLHV0KDEpLFR0KCJuZ0lmIixudWxsIT09aC5saWJpbmZvKSx1dCgxKSxUdCgibmdJZiIsbnVsbCE9PWgubGliaW5mbyl9fWZ1bmN0aW9uIFJBdChkLGcpezEmZCYmKG50KDAsImgzIiwxMjcpLFl0KDEsIiBObyBkYXRhIGZv''@;'; put 'put ''dW5kIHdpdGggZ2l2ZW4gY29uZGl0aW9ucyAiKSxvdCgpKX1mdW5jdGlvbiBCQXQoZCxnKXsxJmQmJihudCgwLCJoMyIsMTI3KSxZdCgxLCIgTm8gZGF0YSBmb3VuZCBkdWUgdG8gc2FzIHJlcXVlc3QgZXJyb3IgIiksb3QoKSl9ZnVuY3Rpb24gUEF0KGQsZyl7aWYoMSZkJiYobnQoMCwiZGl2''@;'; put 'put ''IiwxNDMpLENyKDEsImNsci1pY29uIiwxNDQpLHJuKDIsUkF0LDIsMCwiaDMiLDE0NSkscm4oMyxCQXQsMiwwLCJoMyIsMTQ1KSxvdCgpKSwyJmQpe2NvbnN0IGg9UXQoMik7dXQoMiksVHQoIm5nSWYiLGgubm9EYXRhKSx1dCgxKSxUdCgibmdJZiIsaC5ub0RhdGFSZXFFcnIpfX1mdW5jdGlv''@;'; put 'put ''biBGQXQoZCxnKXtpZigxJmQmJihudCgwLCJkaXYiLDE0NiksQ3IoMSwiaG90LXRhYmxlIiwxNDcpLG90KCkpLDImZCl7Y29uc3QgaD1RdCgyKTt1dCgxKSxUdCgibXVsdGlDb2x1bW5Tb3J0aW5nIiwhMCkoInZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0Iiw1MCkoImRhdGEiLGguaG90VGFi''@;'; put 'put ''bGUuZGF0YSkoImNvbEhlYWRlcnMiLGguaG90VGFibGUuY29sSGVhZGVycykoImNvbHVtbnMiLGguaG90VGFibGUuY29sdW1ucykoImZpbHRlcnMiLCEwKSgiZHJvcGRvd25NZW51IixoLmhvdFRhYmxlLmRyb3Bkb3duTWVudSkoImhlaWdodCIsaC5ob3RUYWJsZS5oZWlnaHQpKCJtb2RpZnlD''@;'; put 'put ''b2xXaWR0aCIsaC5tYXhXaWR0aENoZWtlcikoImNlbGxzIixoLmhvdFRhYmxlLmNlbGxzKSgibWF4Um93cyIsaC5ob3RUYWJsZS5tYXhSb3dzKSgibWFudWFsQ29sdW1uUmVzaXplIiwhMCkoImxpY2Vuc2VLZXkiLGguaG90VGFibGUubGljZW5zZUtleSl9fWZ1bmN0aW9uIEhBdChkLGcpe2lm''@;'; put 'put ''KDEmZCYmKG50KDAsImRpdiIsODUpLHJuKDEsdkF0LDIwLDksImRpdiIsODYpLHJuKDIsQUF0LDQsMCwiZGl2Iiw4Nykscm4oMyxPQXQsMTIsNCwibmctY29udGFpbmVyIiwzOCkscm4oNCxQQXQsNCwyLCJkaXYiLDg4KSxybig1LEZBdCwyLDEzLCJkaXYiLDg5KSxvdCgpKSwyJmQpe2NvbnN0''@;'; put 'put ''IGg9UXQoKTt1dCgxKSxUdCgibmdJZiIsaC50YWJsZSksdXQoMSksVHQoIm5nSWYiLCEoaC5saWJ8fGgudGFibGV8fGgubm9EYXRhUmVxRXJyfHxoLm5vRGF0YSkpLHV0KDEpLFR0KCJuZ0lmIiwhaC5ub0RhdGEmJiFoLm5vRGF0YVJlcUVyciYmIWgudGFibGUmJmgubGliKSx1dCgxKSxUdCgi''@;'; put 'put ''bmdJZiIsaC5ub0RhdGF8fGgubm9EYXRhUmVxRXJyKSx1dCgxKSxUdCgibmdJZiIsIWgubm9EYXRhJiYhaC5ub0RhdGFSZXFFcnImJmgudGFibGUpfX1sZXQgem5lPSgoKT0+e2NsYXNzIGR7Y29uc3RydWN0b3IoaCx2LHksQyxJLFosdWUsX2UsQmUpe3RoaXMuYXBwU2VydmljZT1oLHRoaXMu''@;'; put 'put ''c2FzU3RvcmVTZXJ2aWNlPXYsdGhpcy5zYXNTZXJ2aWNlPXksdGhpcy5yb3V0ZXI9Qyx0aGlzLnJvdXRlPUksdGhpcy5ldmVudFNlcnZpY2U9Wix0aGlzLmxvZ2dlclNlcnZpY2U9dWUsdGhpcy5oZWxwZXJTZXJ2aWNlPV9lLHRoaXMuY2RmPUJlLHRoaXMucXVlcnlGaWx0ZXJDb21wTGlzdD1u''@;'; put 'put ''ZXcgenIsdGhpcy5saWJyYXJpZXNQYWdpbmc9ITEsdGhpcy5saWJyYXJpZXNTZWFyY2g9IiIsdGhpcy5saWJyYXJ5VGFibGVzUmVmPSIiLHRoaXMubGlicmFyaWVzVHJlZUV4cGFuZGVkPSExLHRoaXMubGliaW5mbz1udWxsLHRoaXMudGFibGV1cmk9bnVsbCx0aGlzLmZpbHRlcj0hMSx0aGlz''@;'; put 'put ''LmZpbHRlckNvbHM9W10sdGhpcy5udWxsVmFyaWFibGVzPSExLHRoaXMuYWJvcnRBY3RpdmU9ITEsdGhpcy51cmxGaWx0ZXJQaz1udWxsLHRoaXMucXVlcnlUZXh0PSIiLHRoaXMud2ViUXVlcnlUZXh0PSIiLHRoaXMucXVlcnlFcnI9ITEsdGhpcy50YWJsZUZsYWc9ITAsdGhpcy5saWJyYXJp''@;'; put 'put ''ZXNMb2FkaW5nPSExLHRoaXMubG9hZGluZ1RhYmxlVmlldz0hMSx0aGlzLnN3aXRjaEZsYWc9ITEsdGhpcy5ub0RhdGE9ITEsdGhpcy5ub0RhdGFSZXFFcnI9ITEsdGhpcy50YWJsZURpc2FibGU9ITEsdGhpcy5hY3Rpb25EaXNhYmxlPSExLHRoaXMub3BlbkRvd25sb2FkPSExLHRoaXMud2Vi''@;'; put 'put ''UXVlcnk9ITEsdGhpcy53ZWJRdWVyeVRhYj0hMSx0aGlzLmRvd25sb2FkRm9ybWF0PSJDU1YiLHRoaXMuc2FzanNDb25maWc9bmV3IFUzLlNBU2pzQ29uZmlnLHRoaXMuc2VhcmNoTG9hZGluZz0hMSx0aGlzLnNlYXJjaE51bWVyaWM9ITEsdGhpcy5udW1iZXJPZlJvd3M9bnVsbCx0aGlzLmhl''@;'; put 'put ''YWRlclBrcz1bXSx0aGlzLiRkYXRhRm9ybWF0cz1udWxsLHRoaXMuZGF0YXNldEluZm89ITEsdGhpcy5kc21ldGE9W10sdGhpcy5ob3RUYWJsZT17ZGF0YTpbXSxjb2xIZWFkZXJzOltdLGNvbHVtbnM6W10saGVpZ2h0OiIxMDAlIixtYXhSb3dzOnRoaXMuYXBwU2VydmljZS5kZW1vTGltaXRz''@;'; put 'put ''LnJvd3NfYWxsb3dlZHx8MS8wLHNldHRpbmdzOnt9LGFmdGVyR2V0Q29sSGVhZGVyOnZvaWQgMCxsaWNlbnNlS2V5OnZvaWQgMCxkcm9wZG93bk1lbnU6e2l0ZW1zOnttYWtlX3JlYWRfb25seTp7bmFtZToibWFrZV9yZWFkX29ubHkifSxhbGlnbm1lbnQ6e25hbWU6ImFsaWdubWVudCJ9LHNw''@;'; put 'put ''MTp7bmFtZToiLS0tLS0tLS0tIn0saW5mbzp7bmFtZToidGVzdCBpbmZvIixyZW5kZXJlcjooTmUsS2UscHQsT3QsJHQsZm4pPT57dmFyIExuLGlyO2NvbnN0IG1yPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtsZXQgU3Isd3I9Ik5vIGluZm8gZm91bmQiO2lmKHRoaXMuaG90SW5z''@;'; put 'put ''dGFuY2Upe2NvbnN0IFFyPXRoaXMuaG90SW5zdGFuY2UuZ2V0U2VsZWN0ZWQoKXx8W10seWk9UXI/UXJbMF1bMV06LTEsS2k9bnVsbD09PShMbj10aGlzLmhvdEluc3RhbmNlKXx8dm9pZCAwPT09TG4/dm9pZCAwOkxuLmNvbFRvUHJvcCh5aSk7U3I9bnVsbD09PShpcj10aGlzLiRkYXRhRm9y''@;'; put 'put ''bWF0cyl8fHZvaWQgMD09PWlyP3ZvaWQgMDppci52YXJzW0tpXSxTciYmKHdyPWBMQUJFTDogJHtudWxsPT1Tcj92b2lkIDA6U3IubGFiZWx9PGJyPlRZUEU6ICR7bnVsbD09U3I/dm9pZCAwOlNyLnR5cGV9PGJyPkxFTkdUSDogJHtudWxsPT1Tcj92b2lkIDA6U3IubGVuZ3RofTxicj5GT1JN''@;'; put 'put ''QVQ6ICR7bnVsbD09U3I/dm9pZCAwOlNyLmZvcm1hdH1gKX1yZXR1cm4gbXIuaW5uZXJIVE1MPXdyLG1yfX19fX0sdGhpcy5ob3RJbnN0YW5jZT1udWxsLHRoaXMuaG90SW5zdGFuY2VDbGlja0xpc3RlbmVyPSExLHRoaXMuaG90VGFibGVSZWdpc3RlcmVyPW5ldyBTTyx0aGlzLnNhc2pzQ29u''@;'; put 'put ''ZmlnPXRoaXMuc2FzU2VydmljZS5nZXRTYXNqc0NvbmZpZygpfW5nT25Jbml0KCl7IiIhPT1uaS52aWV3ZXIuY3VycmVudFNlbGVjdGlvbiYmMD09PU9iamVjdC5rZXlzKHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zKS5sZW5ndGgmJnRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwobmkudmll''@;'; put 'put ''d2VyLmN1cnJlbnRTZWxlY3Rpb24pLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbSYmKG5pLnZpZXdlci5jdXJyZW50U2VsZWN0aW9uPSJ2aWV3L2RhdGEiKSx0aGlzLmFwcFNlcnZpY2UuaG90X2xpY2Vuc2Vfa2V5LnN1YnNjcmliZShoPT57dGhpcy5ob3RUYWJs''@;'; put 'put ''ZS5saWNlbnNlS2V5PWh9KX1yZXNldEZpbHRlcigpe3RoaXMucXVlcnlGaWx0ZXJDb21wTGlzdC5maXJzdCYmdGhpcy5xdWVyeUZpbHRlckNvbXBMaXN0LmZpcnN0LnJlc2V0RmlsdGVyKCl9c2VhcmNoVGFibGUoaCl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXt0''@;'; put 'put ''aGlzLnNlYXJjaExvYWRpbmc9ITA7bGV0IHY9aC52YWx1ZSx5PXRoaXMubGliKyIuIit0aGlzLnRhYmxlLEM9cGFyc2VJbnQodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpfHwwO3lpZWxkIHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnZpZXdEYXRhU2VhcmNoKHYsdGhpcy5zZWFy''@;'; put 'put ''Y2hOdW1lcmljLHksQykudGhlbihJPT57SS5zYXNwYXJhbXN8fEkudmlld0RhdGE/KHRoaXMuaG90VGFibGUuZGF0YT1JLnZpZXdkYXRhLHRoaXMuJGRhdGFGb3JtYXRzPUkuJHZpZXdkYXRhLHRoaXMuZHNtZXRhPUkuZHNtZXRhLHRoaXMubnVtYmVyT2ZSb3dzPUkuc2FzcGFyYW1zWzBdLk5P''@;'; put 'put ''QlMsdGhpcy5xdWVyeVRleHQ9SS5zYXNwYXJhbXNbMF0uRklMVEVSX1RFWFQsdGhpcy5oZWFkZXJQa3M9SS5zYXNwYXJhbXNbMF0uUEtfRklFTERTLnNwbGl0KCIgIiksMD09PXRoaXMuaG90VGFibGUuZGF0YS5sZW5ndGg/dGhpcy5ub0RhdGE9ITA6KHRoaXMubm9EYXRhPSExLHRoaXMudGFi''@;'; put 'put ''bGVGbGFnPSExLHRoaXMuc2V0dXBIb3QoKSkpOnRoaXMuc2VhcmNoTG9hZGluZz0hMX0pLmNhdGNoKEk9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoSSl9KSx0aGlzLnNlYXJjaExvYWRpbmc9ITF9KX1yZWxvYWRUYWJsZURhdGEoKXt0aGlzLnZpZXdEYXRhKHRoaXMudXJsRmlsdGVyUGt8''@;'; put 'put ''fDApfXJlbG9hZExpYkluZm8oKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMubGliaW5mbz1udWxsLHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnJlZnJlc2hMaWJJbmZvKHRoaXMubGliKS50aGVuKGg9Pm5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbioo''@;'; put 'put ''KXt0aGlzLmxpYmluZm89aC5saWJpbmZvLG5pLnZpZXdlci5saWJpbmZvPXRoaXMubGliaW5mbztjb25zdCB2PXRoaXMubGlicmFyaWVzLmZpbmQoeT0+eS5MSUJSQVJZUkVGPT09dGhpcy5saWIpO3YmJih2LmxpYmluZm89dGhpcy5saWJpbmZvKX0pLGg9Pnt0aGlzLmxvZ2dlclNlcnZpY2Uu''@;'; put 'put ''ZXJyb3IoaCksbnVsbD09PXRoaXMubGliaW5mbyYmKHRoaXMubGliaW5mbz1bXSl9KX0pfWZpbHRlckZuKGgpe3RoaXMubGlicmFyaWVzPXRoaXMubGlicmFyaWVzLmZpbHRlcih5PT4tMSE9PXkuTElCUkFSWU5BTUUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGgudG9Mb2NhbGVMb3dlckNhc2Uo''@;'; put 'put ''KSkpfWRvd25sb2FkRGF0YSgpe2xldCBoPXRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHY9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2M7Y29uc3QgeT10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgpO2xldCB1ZSxDPSImdHlwZT0iK3RoaXMuZG93bmxvYWRGb3JtYXQsST0iJnRh''@;'; put 'put ''YmxlPSIrdGhpcy50YWJsZVRpdGxlLFo9IlNBU1ZJWUEiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlP2AmX2NvbnRleHRuYW1lPSR7dGhpcy5zYXNqc0NvbmZpZy5jb250ZXh0TmFtZX1gOiIiO3VlPXZvaWQgMD09PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRlcklkPzA6''@;'; put 'put ''cGFyc2VJbnQodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpLHdpbmRvdy5vcGVuKGgreSsiLz9fcHJvZ3JhbT0iK3YrIi9zZXJ2aWNlcy9wdWJsaWMvZ2V0cmF3ZGF0YSIrQytJK1orIiZmaWx0ZXI9Iit1ZSksdGhpcy5vcGVuRG93bmxvYWQ9ITF9ZG93bmxvYWREREwoKXts''@;'; put 'put ''ZXQgaD10aGlzLmxpYix2PXRoaXMudGFibGUseT10aGlzLmRvd25sb2FkRm9ybWF0LnJlcGxhY2UoIl9EREwiLCIiKSxDPXRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLEk9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2M7Y29uc3QgWj10aGlzLnNhc1NlcnZpY2UuZ2V0RXhlY3V0aW9uUGF0aCgp''@;'; put 'put ''O3dpbmRvdy5vcGVuKEMrWisiLz9fcHJvZ3JhbT0iK0krIi9zZXJ2aWNlcy9wdWJsaWMvZ2V0ZGRsIitgJmRzPSR7dn0mbGlicmVmPSR7aH0mZmxhdm91cj0ke3l9JHsiU0FTVklZQSI9PT10aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU/YCZfY29udGV4dG5hbWU9JHt0aGlzLnNhc2pzQ29u''@;'; put 'put ''ZmlnLmNvbnRleHROYW1lfWA6IiJ9YCksdGhpcy5vcGVuRG93bmxvYWQ9ITF9b25DbGlDb21tYW5kRm9jdXMoaCl7aC5wcmV2ZW50RGVmYXVsdCgpLGgudGFyZ2V0LnNlbGVjdCgpfWVkaXRUYWJsZSgpe3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi9lZGl0b3IvIit0aGlzLmxpYlRhYil9''@;'; put 'put ''dGFibGVFZGl0RXhpc3RzKCl7bGV0IGg9e307aD1uaS5lZGl0b3IubGlic0FuZFRhYmxlcztsZXQgdj10aGlzLmxpYlRhYi5zcGxpdCgiLiIpWzFdLHk9dGhpcy5saWJUYWIuc3BsaXQoIi4iKVswXTtyZXR1cm4hIWhbeV0mJmhbeV0uaW5jbHVkZXModil9Z29Ub0xpbmVhZ2UoKXtsZXQgdj1g''@;'; put 'put ''L3ZpZXcvbGluZWFnZS8ke3RoaXMudGFibGV1cmkuc3BsaXQoIlxcIilbMV19L1JFVkVSU0VgO3RoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodil9c2hvd1dlYlF1ZXJ5KCl7bGV0IGg7dGhpcy53ZWJRdWVyeT0hMCxoPXZvaWQgMD09PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmZpbHRl''@;'; put 'put ''cklkPzA6cGFyc2VJbnQodGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZmlsdGVySWQpO2xldCB2PXdpbmRvdy5sb2NhdGlvbi5wb3J0Lmxlbmd0aD4wPyI6Iit3aW5kb3cubG9jYXRpb24ucG9ydDoiIjtjb25zdCB5PXRoaXMuc2FzU2VydmljZS5nZXRFeGVjdXRpb25QYXRoKCk7bGV0IEk9''@;'; put 'put ''YCR7d2luZG93LmxvY2F0aW9uLnByb3RvY29sfS8vJHt3aW5kb3cubG9jYXRpb24uaG9zdG5hbWV9JHt2fS8ke3l9Lz9fcHJvZ3JhbT0ke3RoaXMuc2FzanNDb25maWcuYXBwTG9jfS9zZXJ2aWNlcy9wdWJsaWMvZ2V0cmF3ZGF0YSZ0eXBlPVdFQiR7dGhpcy53ZWJRdWVyeVRhYj8iVEFCIjoi''@;'; put 'put ''Q1NWIn0mdGFibGU9JHt0aGlzLnRhYmxlVGl0bGV9JHsiJmZpbHRlcj0iK2h9YDt0aGlzLndlYlF1ZXJ5VGV4dD1JLnJlcGxhY2UoLyAvZ2ltLCIlMjAiKX1jb3B5VG9DbGlwKCl7bGV0IGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTtoLnN0eWxlLnBvc2l0aW9uPSJmaXhl''@;'; put 'put ''ZCIsaC5zdHlsZS5sZWZ0PSIwIixoLnN0eWxlLnRvcD0iMCIsaC5zdHlsZS5vcGFjaXR5PSIwIixoLnZhbHVlPXRoaXMud2ViUXVlcnlUZXh0LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaCksaC5mb2N1cygpLGguc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkb2N1''@;'; put 'put ''bWVudC5ib2R5LnJlbW92ZUNoaWxkKGgpfWdvVG9WaWV3ZXIoKXt0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIil9c2hvd1RhYmxlU2VsZWN0KCl7dGhpcy50YWJsZUZsYWc9IXRoaXMudGFibGVGbGFnfWNoZWNrRXhwYW5kKGgpe31jb2xsYXBzZUxpYnJhcnlJdGVtcyho''@;'; put 'put ''LHYpe2guZm9yRWFjaCh5PT57eS5MSUJSQVJZUkVGIT09di5MSUJSQVJZUkVGJiYoeS5leHBhbmRlZD0hMSl9KX1sb2FkTW9yZUxpYnJhcmllcygpe3RoaXMubGlicmFyaWVzUGFnaW5nfHwodGhpcy5saWJyYXJpZXNQYWdpbmc9ITAsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJp''@;'; put 'put ''ZXModGhpcy5saWJyYXJpZXMsITApLHRoaXMubGlicmFyaWVzUGFnaW5nPSExKX10cmVlTm9kZUNsaWNrZWQoaCx2KXsiQ29sbGFwc2UiPT09aC50YXJnZXQudGl0bGUmJnRoaXMuY29sbGFwc2VMaWJyYXJ5SXRlbXModGhpcy5saWJyYXJpZXMsdil9bGlicmFyeUV4cGFuZGVkQ2hhbmdlKGgs''@;'; put 'put ''dil7aCYmdGhpcy5jb2xsYXBzZUxpYnJhcnlJdGVtcyh0aGlzLmxpYnJhcmllcyx2KX1saWJyYXJ5T25DbGljayhoLHYseSl7cmV0dXJuIG5vKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbiooKXtpZih2LnRhYmxlcz92LmV4cGFuZGVkPSEheXx8IXYuZXhwYW5kZWQ6eWllbGQgdGhpcy5z''@;'; put 'put ''ZWxlY3RUYWJsZShoLCExLHYpLHYuZXhwYW5kZWQpe3RoaXMuY2RmLmRldGVjdENoYW5nZXMoKTtsZXQgQz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjc2VhcmNoXyR7di5MSUJSQVJZUkVGfWApO3RoaXMubG9nZ2VyU2VydmljZS5sb2coIltsaWJUcmVlU2VhcmNoSW5wdXRdIixDKSxDJiZD''@;'; put 'put ''LmZvY3VzKCksdiYmdi5saWJpbmZvJiYodGhpcy5saWJpbmZvPXYubGliaW5mbyksdGhpcy5saWImJnRoaXMudGFibGUmJiF5JiZ0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCIvdmlldy9kYXRhIix7c2tpcExvY2F0aW9uQ2hhbmdlOiEwfSkudGhlbigoKT0+e3RoaXMucm91dGVyLm5hdmln''@;'; put 'put ''YXRlQnlVcmwoIi92aWV3L2RhdGEvIit0aGlzLmxpYil9KX10aGlzLmNvbGxhcHNlTGlicmFyeUl0ZW1zKHRoaXMubGlicmFyaWVzLHYpfSl9c2VsZWN0VGFibGUoaCx2LHkpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7eS5sb2FkaW5nVGFibGVzPSEwLHRoaXMu''@;'; put 'put ''dGFibGU9ITEsdGhpcy50YWJsZURpc2FibGU9ITAsIlBsZWFzZSBzZWxlY3QgbGlicmFyeSIhPT1oP25pLnZpZXdlci50YWJsZXNTZXQmJnY/KHRoaXMuYWJvcnRBY3RpdmU9ITEsdGhpcy50YWJsZURpc2FibGU9ITEsdGhpcy50YWJsZXM9bmkudmlld2VyLnRhYmxlcyx0aGlzLmxpYmluZm89''@;'; put 'put ''bmkudmlld2VyLmxpYmluZm8pOih0aGlzLmxpYmluZm89bnVsbCx5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3VGFibGVzKGgpLnRoZW4oQz0+e3RoaXMuYWJvcnRBY3RpdmU9ITEsdGhpcy50YWJsZURpc2FibGU9ITE7bGV0IEk9Qy5tcHRhYmxlcy5tYXAoZnVuY3Rpb24oWil7cmV0''@;'; put 'put ''dXJuIFouTUVNTkFNRX0pO3RoaXMubGliaW5mbz1DLmxpYmluZm98fFtdLHRoaXMudGFibGVzPUkseSYmKHkudGFibGVzPUkseS5saWJpbmZvPXRoaXMubGliaW5mbyksdGhpcy5yb3V0ZXIudXJsLnNwbGl0KCIvIikubGVuZ3RoPjMmJnRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3''@;'; put 'put ''L2RhdGEvIiksbmkudmlld2VyLmxpYnJhcmllcz10aGlzLmxpYnJhcmllcyxuaS52aWV3ZXIubGlicmFyeT10aGlzLmxpYixuaS52aWV3ZXIudGFibGVzPXRoaXMudGFibGVzLG5pLnZpZXdlci5saWJpbmZvPXRoaXMubGliaW5mbyxuaS52aWV3ZXIudGFibGVzU2V0PSEwfSkuY2F0Y2goQz0+''@;'; put 'put ''e3RoaXMubG9nZ2VyU2VydmljZS5lcnJvcihDKSx0aGlzLmFib3J0QWN0aXZlPSEwLHRoaXMubm9EYXRhPSEwLHRoaXMudGFibGVUaXRsZT0iIix0aGlzLnRhYmxlRGlzYWJsZT0hMH0pKTp0aGlzLnRhYmxlRGlzYWJsZT0hMCxuaS52aWV3ZXIubGlicmFyeT10aGlzLmxpYix2fHx0aGlzLmNs''@;'; put 'put ''ZWFyR2xvYmFsc0ZpbHRlcigpLHkubG9hZGluZ1RhYmxlcz0hMSx5LmV4cGFuZGVkPSF5LmV4cGFuZGVkfSl9c2VsZWN0TGliVGFibGUoaCx2KXsiUGxlYXNlIHNlbGVjdCB0YWJsZSIhPT1oPyh0aGlzLmFjdGlvbkRpc2FibGU9ITEsdGhpcy5saWJUYWI9dGhpcy5saWIrIi4iK3RoaXMudGFi''@;'; put 'put ''bGUpOnRoaXMuYWN0aW9uRGlzYWJsZT0hMCxuaS52aWV3ZXIudGFibGU9aCx2fHx0aGlzLmNsZWFyR2xvYmFsc0ZpbHRlcigpLHRoaXMubG9nZ2VyU2VydmljZS5sb2codGhpcy5saWJUYWIpfWNsZWFyR2xvYmFsc0ZpbHRlcigpe25pLnZpZXdlci5maWx0ZXIubGliZHM9IiIsbmkudmlld2Vy''@;'; put 'put ''LmZpbHRlci53aGVyZUNsYXVzZT0iIixuaS52aWV3ZXIuZmlsdGVyLmdyb3VwTG9naWM9IiIsbmkudmlld2VyLmZpbHRlci5jbGF1c2VzPVtdLG5pLnZpZXdlci5maWx0ZXIuY29scz1bXSxuaS52aWV3ZXIuZmlsdGVyLnZhbHM9W119bGliVGFiQWN0aXZlKGgsdil7cmV0dXJuISF0aGlzLmxp''@;'; put 'put ''YlRhYiYmaCsiLiIrdj09PXRoaXMubGliVGFifXRyZWVPbkZpbHRlcihoLHYpe3RoaXMuaGVscGVyU2VydmljZS50cmVlT25GaWx0ZXIoaCx2KX1saWJyYXJ5T25GaWx0ZXIoKXt0aGlzLmhlbHBlclNlcnZpY2UubGlicmFyeU9uRmlsdGVyKHRoaXMubGlicmFyaWVzLHRoaXMubGlicmFyaWVz''@;'; put 'put ''U2VhcmNoLCJMSUJSQVJZTkFNRSIpLG5pLnZpZXdlci5saWJyYXJpZXNTZWFyY2g9dGhpcy5saWJyYXJpZXNTZWFyY2h9bGlicmFyeVJlc2V0RmlsdGVyKCl7dGhpcy5oZWxwZXJTZXJ2aWNlLnJlc2V0QXJyYXlGaWx0ZXIodGhpcy5saWJyYXJpZXMpfXZpZXdEYXRhKGgpe3JldHVybiBubyh0''@;'; put 'put ''aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7bGV0IHY7aWYodGhpcy5sb2FkaW5nVGFibGVWaWV3PSEwLHZvaWQgMD09PXRoaXMubGliRGF0YXNldCl2PXRoaXMubGliKyIuIit0aGlzLnRhYmxlO2Vsc2UgaWYodm9pZCAwPT09dGhpcy5saWImJnZvaWQgMD09PXRoaXMudGFibGUpe2xl''@;'; put 'put ''dCBJPVtdO2lmKEk9dGhpcy5saWJEYXRhc2V0LnNwbGl0KCIuIiksbmkudmlld2VyLnN0YXJ0dXBTZXQ/dGhpcy5saWJyYXJpZXM9bmkudmlld2VyLmxpYnJhcmllczp5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3TGlicygpLnRoZW4oWj0+e3RoaXMubGlicmFyaWVzPVouc2FzbGli''@;'; put 'put ''c30pLmNhdGNoKFo9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoWil9KSx0aGlzLmxpYj1JWzBdLG5pLnZpZXdlci5zdGFydHVwU2V0KXRoaXMudGFibGVzPW5pLnZpZXdlci50YWJsZXM7ZWxzZXtsZXQgWj10aGlzLmxpYnJhcmllcy5maW5kKHVlPT51ZS5MSUJSQVJZUkVGLnRvTG93ZXJD''@;'; put 'put ''YXNlKCk9PT10aGlzLmxpYi50b0xvd2VyQ2FzZSgpKTt5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3VGFibGVzKHRoaXMubGliKS50aGVuKHVlPT57dGhpcy50YWJsZXM9dWUubXB0YWJsZXMubWFwKGZ1bmN0aW9uKF9lKXtyZXR1cm4gX2UuTUVNTkFNRX0pLFoudGFibGVzPXRoaXMu''@;'; put 'put ''dGFibGVzLG5pLnZpZXdlci5saWJyYXJpZXM9dGhpcy5saWJyYXJpZXMsbmkudmlld2VyLnRhYmxlcz10aGlzLnRhYmxlcyxuaS52aWV3ZXIuc3RhcnR1cFNldD0hMH0pLmNhdGNoKHVlPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKHVlKX0pfXRoaXMudGFibGU9SVsxXSx0aGlzLnRhYmxl''@;'; put 'put ''RmxhZz0hMSx2PXRoaXMubGliRGF0YXNldCx0aGlzLmxpYlRhYj12fWVsc2Ugbmkudmlld2VyLnN0YXJ0dXBTZXQ/dGhpcy5saWJyYXJpZXM9bmkudmlld2VyLmxpYnJhcmllczp5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3TGlicygpLnRoZW4oST0+e3RoaXMubGlicmFyaWVzPUku''@;'; put 'put ''c2FzbGlic30pLmNhdGNoKEk9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoSSl9KSx2b2lkIDAhPT10aGlzLnRhYmxlJiYobmkudmlld2VyLnN0YXJ0dXBTZXQ/dGhpcy50YWJsZXM9bmkudmlld2VyLnRhYmxlczp5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3VGFibGVzKHRoaXMu''@;'; put 'put ''bGliKS50aGVuKEk9Pnt0aGlzLnRhYmxlcz1JLm1wdGFibGVzLm1hcChmdW5jdGlvbihaKXtyZXR1cm4gWi5NRU1OQU1FfSl9KS5jYXRjaChJPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKEkpLHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoIi92aWV3L2RhdGEiKX0pLHRoaXMudGFibGVG''@;'; put 'put ''bGFnPSExLHY9dGhpcy5saWIrIi4iK3RoaXMudGFibGUsdGhpcy50YWJsZVRpdGxlPXYsdGhpcy5saWJUYWI9dik7dGhpcy5yb3V0ZXIudXJsLnNwbGl0KCIvIikubGVuZ3RoPjMmJnYmJih5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS52aWV3RGF0YSh2LGgpLnRoZW4oST0+e2lmKEkucXVl''@;'; put 'put ''cnkubGVuZ3RoPjAmJiJ2aWV3Ij09PW5pLnJvb3RQYXJhbSYmMD09PW5pLnZpZXdlci5maWx0ZXIuY2xhdXNlcy5sZW5ndGgmJihuaS52aWV3ZXIuZmlsdGVyLnF1ZXJ5PXRoaXMuaGVscGVyU2VydmljZS5kZWVwQ2xvbmUoSS5xdWVyeSksbmkudmlld2VyLmZpbHRlci5saWJkcz10aGlzLnJv''@;'; put 'put ''dXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW0sdGhpcy5zYXNTdG9yZVNlcnZpY2UuaW5pdGlhbGl6ZUdsb2JhbEZpbHRlckNsYXVzZSgidmlldyIsSS5jb2xzKSksdGhpcy5hYm9ydEFjdGl2ZT0hMSx0aGlzLmZpbHRlckNvbHM9SS5jb2xzLGJMZSh0aGlzLmZpbHRlckNvbHMsW10sSS4kdmll''@;'; put 'put ''d2RhdGEpLHRoaXMubnVtYmVyT2ZSb3dzPUkuc2FzcGFyYW1zWzBdLk5PQlMsdGhpcy5oZWFkZXJQa3M9SS5zYXNwYXJhbXNbMF0uUEtfRklFTERTLnNwbGl0KCIgIiksIlNBUzkiPT09dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlKXtsZXQgTmU9SS5zYXNwYXJhbXNbMF0uVEFCTEVVUkk7''@;'; put 'put ''TmUmJk5lLmxlbmd0aD4wJiYodGhpcy50YWJsZXVyaT1OZSl9dGhpcy5ob3RUYWJsZS5kYXRhPUkudmlld2RhdGEsdGhpcy4kZGF0YUZvcm1hdHM9SS4kdmlld2RhdGEsdGhpcy5kc21ldGE9SS5kc21ldGEsdGhpcy5xdWVyeVRleHQ9SS5zYXNwYXJhbXNbMF0uRklMVEVSX1RFWFQ7bGV0IFo9''@;'; put 'put ''W10sdWU9W107Zm9yKGxldCBOZSBpbiBJLnZpZXdkYXRhWzBdKU5lJiZ1ZS5wdXNoKE5lKTtmb3IobGV0IE5lPTA7TmU8dWUubGVuZ3RoO05lKyspWi5wdXNoKHtkYXRhOnVlW05lXX0pO3RoaXMuaG90VGFibGUuY29sSGVhZGVycz11ZSx0aGlzLmhvdFRhYmxlLmNvbHVtbnM9Wix0aGlzLmhv''@;'; put 'put ''dFRhYmxlLmNlbGxzPWZ1bmN0aW9uKCl7cmV0dXJue3JlYWRPbmx5OiEwfX0sdGhpcy50YWJsZUZsYWc9ITE7bGV0IEJlPVtdO0JlPXYuc3BsaXQoIi4iKSx0aGlzLmxpYj1CZVswXSx0aGlzLnRhYmxlPUJlWzFdLDA9PT10aGlzLmhvdFRhYmxlLmRhdGEubGVuZ3RoPyh0aGlzLm5vRGF0YT0h''@;'; put 'put ''MCx0aGlzLnRhYmxlRmxhZz0hMCk6KHRoaXMubm9EYXRhPSExLHRoaXMudGFibGVGbGFnPSExKSx0aGlzLm5vRGF0YVJlcUVycj0hMX0pLmNhdGNoKEk9Pnt0aGlzLmxvZ2dlclNlcnZpY2UuZXJyb3IoSSksdGhpcy5hYm9ydEFjdGl2ZT0hMCx0aGlzLm5vRGF0YVJlcUVycj0hMH0pKSx0aGlz''@;'; put 'put ''LnJvdXRlci51cmwuaW5jbHVkZXMoIi9kYXRhIikmJnYmJnRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoMCE9PWg/Ii92aWV3L2RhdGEvIit2KyIvIitoOiIvdmlldy9kYXRhLyIrdik7bGV0IHk9dGhpcy50YWJsZSxDPXRoaXMubGlicmFyaWVzLmZpbmQoST0+SS5MSUJSQVJZUkVGLnRvTG93''@;'; put 'put ''ZXJDYXNlKCk9PT10aGlzLmxpYi50b0xvd2VyQ2FzZSgpKTtDP25pLnZpZXdlci5saWJyYXJpZXMubGVuZ3RoPjA/KHRoaXMubGlicmFyaWVzPW5pLnZpZXdlci5saWJyYXJpZXMsdGhpcy5saWJyYXJpZXNTZWFyY2g9bmkudmlld2VyLmxpYnJhcmllc1NlYXJjaCx0aGlzLmxpYnJhcnlPbkNs''@;'; put 'put ''aWNrKHRoaXMubGliLEMsITApKTp0aGlzLnNlbGVjdFRhYmxlKHRoaXMubGliLCExLEMpOnRoaXMubGliaW5mbz1bXSx0aGlzLnRhYmxlPXl8fHRoaXMudGFibGUsdGhpcy5saWJyYXJpZXMmJnRoaXMuaGVscGVyU2VydmljZS5kaXNwbGF5TGlicmFyaWVzKHRoaXMubGlicmFyaWVzKSx0aGlz''@;'; put 'put ''LnJvdXRlci51cmwuaW5jbHVkZXMoIi9kYXRhIikmJnRoaXMuZXZlbnRTZXJ2aWNlLmNsb3NlU2lkZWJhcigpLHRoaXMubG9hZGluZ1RhYmxlVmlldz0hMSwhdGhpcy5ub0RhdGEmJiF0aGlzLm5vRGF0YVJlcUVyciYmdiYmdGhpcy5zZXR1cEhvdCgpLHRoaXMuaG90SW5zdGFuY2VDbGlja0xp''@;'; put 'put ''c3RlbmVyfHxzZXRUaW1lb3V0KCgpPT57bGV0IEk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvdEluc3RhbmNlIik7SSYmKEkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixaPT57c2V0VGltZW91dCgoKT0+e2xldCB1ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZGVidWctc3dp''@;'; put 'put ''dGNoLWl0ZW0iKXx8dm9pZCAwO3VlJiZ1ZS5jbGljaygpfSwxMDApfSksdGhpcy5ob3RJbnN0YW5jZUNsaWNrTGlzdGVuZXI9ITApfSwyZTMpfSl9bWF4V2lkdGhDaGVrZXIoaCx2KXtyZXR1cm4gaD4yMDA/MjAwOmh9b3BlblFiKCl7dGhpcy5maWx0ZXI9ITAsdGhpcy5jZGYuZGV0ZWN0Q2hh''@;'; put 'put ''bmdlcygpLHRoaXMuc2FzU3RvcmVTZXJ2aWNlLnNldFF1ZXJ5VmFyaWFibGVzKHRoaXMubGliKyIuIit0aGlzLnRhYmxlLHRoaXMuZmlsdGVyQ29scyl9c2VuZENsYXVzZSgpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zdWJtaXRMb2FkaW5nPSEwO2xl''@;'; put 'put ''dCBoPVtdLHY9W107aWYodm9pZCAwPT09dGhpcy5jbGF1c2VzKXJldHVybiB0aGlzLm51bGxWYXJpYWJsZXM9ITAsdm9pZCh0aGlzLnN1Ym1pdExvYWRpbmc9ITEpO3tsZXQgeT10aGlzLmNsYXVzZXMucXVlcnlPYmo7aWYoeVswXS5lbGVtZW50cy5sZW5ndGg8MSlyZXR1cm4idmlldyI9PT1u''@;'; put 'put ''aS5yb290UGFyYW0mJihuaS52aWV3ZXIuZmlsdGVyLmNsYXVzZXM9W10sbmkudmlld2VyLmZpbHRlci5xdWVyeT1bXSxuaS52aWV3ZXIuZmlsdGVyLmdyb3VwTG9naWM9IiIpLHZvaWQgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK3RoaXMubGliZHMpO2ZvcihsZXQg''@;'; put 'put ''Qz0wO0M8eS5sZW5ndGg7QysrKXtjb25zdCBJPXlbQ10uZWxlbWVudHM7aD1JLmZpbHRlcihmdW5jdGlvbihaKXtyZXR1cm4gbnVsbD09PVoudmFyaWFibGV9KSxoLmxlbmd0aCYmdi5wdXNoKEkpfX1pZih2Lmxlbmd0aClyZXR1cm4gdGhpcy5udWxsVmFyaWFibGVzPSEwLHZvaWQodGhpcy5z''@;'; put 'put ''dWJtaXRMb2FkaW5nPSExKTt7Y29uc3QgeT17Z3JvdXBMb2dpYzp0aGlzLmNsYXVzZXMuZ3JvdXBMb2dpYyxmaWx0ZXJHcm91cHM6W119O3RoaXMuY2xhdXNlcy5xdWVyeU9iai5mb3JFYWNoKEk9Pntjb25zdCBaPXtmaWx0ZXJDbGF1c2VzOltdfTtJLmVsZW1lbnRzLmZvckVhY2godWU9Pnta''@;'; put 'put ''LmZpbHRlckNsYXVzZXMucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKHVlKSl9KSxaLmNsYXVzZUxvZ2ljPUkuY2xhdXNlTG9naWMseS5maWx0ZXJHcm91cHMucHVzaCh0aGlzLmhlbHBlclNlcnZpY2UuZGVlcENsb25lKFopKX0pO2NvbnN0IEM9dGhpcy5zYXNTdG9yZVNlcnZp''@;'; put 'put ''Y2UuY3JlYXRlRmlsdGVyUXVlcnlUYWJsZSh5KTt5aWVsZCB0aGlzLnNhc1N0b3JlU2VydmljZS5zYXZlUXVlcnkodGhpcy5saWJkcyxDKS50aGVuKEk9Pnt0aGlzLnF1ZXJ5VGV4dD1JLnJlc3VsdFswXS5GSUxURVJfVEVYVDtsZXQgWj1JLnJlc3VsdFswXS5GSUxURVJfUks7dGhpcy5yb3V0''@;'; put 'put ''ZXIubmF2aWdhdGVCeVVybCgiL3ZpZXcvZGF0YS8iK3RoaXMubGliZHMrIi8iK1opLHRoaXMudmlld0RhdGEoWiksdGhpcy5maWx0ZXI9ITF9KS5jYXRjaChJPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKEkpfSksdGhpcy5zdWJtaXRMb2FkaW5nPSExfX0pfXJlbW92ZVF1ZXJ5KCl7dGhp''@;'; put 'put ''cy5zYXNTdG9yZVNlcnZpY2UucmVtb3ZlQ2xhdXNlKCl9c2V0dXBIb3QoKXtzZXRUaW1lb3V0KCgpPT57IXRoaXMubG9hZGluZ1RhYmxlVmlldyYmdGhpcy5saWJEYXRhc2V0JiYodGhpcy5ob3RJbnN0YW5jZT10aGlzLmhvdFRhYmxlUmVnaXN0ZXJlci5nZXRJbnN0YW5jZSgiaG90SW5zdGFu''@;'; put 'put ''Y2UiKSx0aGlzLmhvdEluc3RhbmNlJiZ0aGlzLmhvdEluc3RhbmNlLnVwZGF0ZVNldHRpbmdzKHtoZWlnaHQ6dGhpcy5ob3RUYWJsZS5oZWlnaHQsbW9kaWZ5Q29sV2lkdGg6ZnVuY3Rpb24oaCx2KXtyZXR1cm4gaD41MDA/NTAwOmh9LGFmdGVyR2V0Q29sSGVhZGVyOihoLHYpPT57dmFyIHk7''@;'; put 'put ''Y29uc3QgQz1udWxsPT09KHk9dGhpcy5ob3RJbnN0YW5jZSl8fHZvaWQgMD09PXk/dm9pZCAwOnkuY29sVG9Qcm9wKGgpO0MmJnRoaXMuaGVhZGVyUGtzLmluZGV4T2YoQyk+LTEmJnYuY2xhc3NMaXN0LmFkZCgicHJpbWFyeUtleUhlYWRlclN0eWxlIil9fSkpfSwxZTMpfWxvYWRXaXRoUGFy''@;'; put 'put ''YW1ldGVycygpe3JldHVybiBubyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24qKCl7dGhpcy5zd2l0Y2hGbGFnPSEwLHRoaXMudGFibGVUaXRsZT10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW18fDAsdGhpcy51cmxGaWx0ZXJQaz1wYXJzZUludCh0aGlzLnJvdXRlLnNuYXBz''@;'; put 'put ''aG90LnBhcmFtcy5maWx0ZXJJZHx8IjAiKTtsZXQgdj10aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5saWJNZW07dGhpcy5saWJEYXRhc2V0PXYsdi5pbmNsdWRlcygiLiIpfHwodGhpcy5saWI9dikseWllbGQgdGhpcy52aWV3RGF0YSh0aGlzLnVybEZpbHRlclBrKSx0aGlzLm5vRGF0YT9z''@;'; put 'put ''ZXRUaW1lb3V0KCgpPT57dGhpcy50YWJsZUZsYWc9ITB9LDEyMDApOnNldFRpbWVvdXQoKCk9Pnt0aGlzLnRhYmxlRmxhZz0hMX0sMTIwMCl9KX1sb2FkV2l0aG91dFBhcmFtZXRlcnMoKXtyZXR1cm4gbm8odGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuc3dpdGNoRmxhZz0h''@;'; put 'put ''MSx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITAsbmkudmlld2VyLnN0YXJ0dXBTZXQ/c2V0VGltZW91dCgoKT0+e3RoaXMubGlicmFyaWVzPW5pLnZpZXdlci5saWJyYXJpZXMsdGhpcy5saWJyYXJpZXNTZWFyY2g9bmkudmlld2VyLmxpYnJhcmllc1NlYXJjaCx0aGlzLmxpYj1uaS52aWV3ZXIu''@;'; put 'put ''bGlicmFyeSx0aGlzLmxpYnJhcmllc1RyZWVFeHBhbmRlZD0hMCx0aGlzLmxpYnJhcmllc0xvYWRpbmc9ITEsdGhpcy5oZWxwZXJTZXJ2aWNlLmRpc3BsYXlMaWJyYXJpZXModGhpcy5saWJyYXJpZXMpfSwxMDApOih0aGlzLm5vRGF0YVJlcUVycj0hMSx5aWVsZCB0aGlzLnNhc1N0b3JlU2Vy''@;'; put 'put ''dmljZS52aWV3TGlicygpLnRoZW4oaD0+e3RoaXMubGlicmFyaWVzPWguc2FzbGlicyxuaS52aWV3ZXIubGlicmFyaWVzPXRoaXMubGlicmFyaWVzLG5pLnZpZXdlci5zdGFydHVwU2V0PSEwLHRoaXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLmhlbHBlclNlcnZpY2UuZGlzcGxheUxpYnJh''@;'; put 'put ''cmllcyh0aGlzLmxpYnJhcmllcyl9KS5jYXRjaChoPT57dGhpcy5sb2dnZXJTZXJ2aWNlLmVycm9yKGgpLHRoaXMubGlicmFyaWVzTG9hZGluZz0hMSx0aGlzLm5vRGF0YVJlcUVycj0hMH0pKX0pfW5nQWZ0ZXJWaWV3SW5pdCgpe31uZ0FmdGVyQ29udGVudEluaXQoKXtyZXR1cm4gbm8odGhp''@;'; put 'put ''cyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKigpe3RoaXMuaG90VGFibGUuZGF0YS5sZW5ndGg+MCYmKHRoaXMudGFibGVGbGFnPSEwKSx0aGlzLl9xdWVyeT10aGlzLnNhc1N0b3JlU2VydmljZS5xdWVyeS5zdWJzY3JpYmUoaD0+e3RoaXMud2hlcmVTdHJpbmc9aC5zdHJpbmcsdGhpcy5jbGF1''@;'; put 'put ''c2VzPWgub2JqLHRoaXMubGliZHM9aC5saWJkc30pLHZvaWQgMCE9PXRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmxpYk1lbT90aGlzLmxvYWRXaXRoUGFyYW1ldGVycygpOnRoaXMubG9hZFdpdGhvdXRQYXJhbWV0ZXJzKCl9KX19cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3Jl''@;'; put 'put ''dHVybiBuZXcoaHx8ZCkoS3QoUjcpLEt0KGtnKSxLdChnMiksS3QoWmwpLEt0KFB1KSxLdChtdSksS3Qoc2MpLEt0KFhjKSxLdChkMSkpfSxkLlx1MDI3NWNtcD1UaSh7dHlwZTpkLHNlbGVjdG9yczpbWyJhcHAtdmlld2VyIl1dLHZpZXdRdWVyeTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmdm8o''@;'; put 'put ''ajl0LDUpLDImaCl7bGV0IHk7SGkoeT0kaSgpKSYmKHYucXVlcnlGaWx0ZXJDb21wTGlzdD15KX19LGhvc3RBdHRyczpbMSwiY29udGVudC1jb250YWluZXIiXSxkZWNsczo5NCx2YXJzOjI4LGNvbnN0czpbWzMsInNjcm9sbGVkVG9Cb3R0b20iXSxbImNsYXNzIiwibXktMTAtbXgtYXV0byB0''@;'; put 'put ''ZXh0LWNlbnRlciIsNCwibmdJZiJdLFsiY2xhc3MiLCJzZWFyY2gtbm9kZSIsNCwibmdJZiJdLFs0LCJuZ0ZvciIsIm5nRm9yT2YiXSxbImNsYXNzIiwidy0xMDAgdGV4dC1jZW50ZXIiLDQsIm5nSWYiXSxbMSwiY29udGVudC1hcmVhIl0sWyJjbGFzcyIsIm1vZGFsIHotaW5kZXgtaGlnaGVz''@;'; put 'put ''dCIsNCwibmdJZiJdLFsiY2xhc3MiLCJtb2RhbC1iYWNrZHJvcCIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsNCwibmdJZiJdLFszLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbE9wZW5DaGFuZ2UiXSxbMSwibW9kYWwtdGl0bGUiLCJjZW50ZXIiLCJ0ZXh0LWNlbnRlciIs''@;'; put 'put ''ImNvbG9yLWRhcmtlci1ncmF5Il0sWzEsIm1vZGFsLWJvZHkiXSxbMSwiY2xyLWNvbC1tZC02Il0sWzEsImRvd25sb2FkLXNlbGVjdCJdLFsiY2xyU2VsZWN0IiwiIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsidmFsdWUiLCJDU1YiXSxbInZhbHVlIiwiU0FTIl0sWyJ2YWx1ZSIs''@;'; put 'put ''IlBHU1FMX0RETCJdLFsidmFsdWUiLCJTQVNfRERMIl0sWyJ2YWx1ZSIsIlRTUUxfRERMIl0sWyJ2YWx1ZSIsIkVYQ0VMIl0sWyJ2YWx1ZSIsIk1BUktET1dOIl0sWzEsIm1vZGFsLWZvb3RlciJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLW91dGxpbmUiLDMsImNs''@;'; put 'put ''aWNrIl0sWyJ0eXBlIiwic3VibWl0IiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJpZCIsImNsaWNrIl0sWzEsIm1vZGFsLWJvZHkiLCJ3ZWItcXVlcnkiXSxbMSwicm93Il0sWzEsImNsci1jb2wtbGctMTIiLCJjbHItY29sLW1kLTEyIiwiY2xyLWNvbC1zbS0x''@;'; put 'put ''MiIsImNsci1jb2wteHMtMTIiXSxbMSwiY2FyZCJdLFsxLCJjYXJkLWhlYWRlciIsImQtZmxleCIsImp1c3RpZnktY29udGVudC1iZXR3ZWVuIl0sWzEsImJ0bi1ncm91cCJdLFsxLCJyYWRpbyIsImJ0biIsMywiY2xpY2siXSxbInR5cGUiLCJyYWRpbyIsIm5hbWUiLCJidG4tZ3JvdXAtZGVt''@;'; put 'put ''by1yYWRpb3MiLDMsImNoZWNrZWQiXSxbMSwiY2FyZC1ibG9jayIsIndvcmQtYnJlYWstYWxsIl0sWyJyb3dzIiwiNCIsImNvbHMiLCI1MCIsInR5cGUiLCJ0ZXh0IiwicmVhZG9ubHkiLCIiLDEsIndlYi1xdWVyeS10ZXh0Iiwidy0xMDAiLDMsInZhbHVlIiwiZm9jdXMiXSxbImNsaUNvbW1h''@;'; put 'put ''bmRJbnB1dCIsIiJdLFsxLCJjYXJkLWZvb3RlciJdLFsxLCJidG4iLCJidG4tc20iLCJidG4tbGluayIsMywibmd4Q2xpcGJvYXJkIiwiY2xpY2siXSxbImFyaWEtbW9kYWwiLCJ0cnVlIiwzLCJjbHJNb2RhbE9wZW4iLCJjbHJNb2RhbFNpemUiLCJjbHJNb2RhbENsb3NhYmxlIiwiY2xyTW9k''@;'; put 'put ''YWxPcGVuQ2hhbmdlIl0sWzQsIm5nSWYiXSxbInR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1saW5rIiwzLCJjbGljayJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLW91dGxpbmUiLCJidG4tc20iLDMsImNsaWNrIl0sWyJ0eXBlIiwic3VibWl0IiwxLCJidG4i''@;'; put 'put ''LCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbHJMb2FkaW5nIiwiY2xpY2siXSxbMywiY2xyTW9kYWxPcGVuIiwiY2xyTW9kYWxPcGVuQ2hhbmdlIl0sWzEsIm1vZGFsLXRpdGxlIl0sWyJ0eXBlIiwiYnV0dG9uIiwxLCJidG4iLCJidG4tb3V0bGluZSIsMywiY2xpY2siXSxb''@;'; put 'put ''InR5cGUiLCJidXR0b24iLDEsImJ0biIsImJ0bi1wcmltYXJ5IiwzLCJjbGljayJdLFsiY2xhc3MiLCJsb2FkaW5nU3Bpbm5lciIsNCwibmdJZiJdLFsiY2xhc3MiLCJjYXJkIGgtMTAwIGQtZmxleCBjbHItZmxleC1jb2x1bW4iLDQsIm5nSWYiXSxbMywib3BlbiIsImRzbWV0YSIsIm9wZW5D''@;'; put 'put ''aGFuZ2UiXSxbMSwibXktMTAtbXgtYXV0byIsInRleHQtY2VudGVyIl0sWyJjbHJNZWRpdW0iLCIiXSxbMSwic2VhcmNoLW5vZGUiXSxbMSwidHJlZS1zZWFyY2gtd3JhcHBlciJdLFsiY2xySW5wdXQiLCIiLCJwbGFjZWhvbGRlciIsIkxpYnJhcmllcyIsIm5hbWUiLCJpbnB1dCIsImF1dG9j''@;'; put 'put ''b21wbGV0ZSIsIm9mZiIsMywibmdNb2RlbCIsIm5nTW9kZWxDaGFuZ2UiLCJrZXl1cCJdLFsic2VhcmNoTGliVHJlZUlucHV0IiwiIl0sWyJzaGFwZSIsInNlYXJjaCIsNCwibmdJZiJdLFsic2hhcGUiLCJ0aW1lcyIsMywiY2xpY2siLDQsIm5nSWYiXSxbInNoYXBlIiwic2VhcmNoIl0sWyJz''@;'; put 'put ''aGFwZSIsInRpbWVzIiwzLCJjbGljayJdLFszLCJjbHJFeHBhbmRlZCIsImNsckxvYWRpbmciLCJjbHItZXhwYW5kZWQiLCJjbGljayIsImNsckV4cGFuZGVkQ2hhbmdlIiw0LCJuZ0lmIl0sWzMsImNsckV4cGFuZGVkIiwiY2xyTG9hZGluZyIsImNsaWNrIiwiY2xyRXhwYW5kZWRDaGFuZ2Ui''@;'; put 'put ''XSxbMSwibS0wIiwiY3Vyc29yLXBvaW50ZXIiLDMsImNsaWNrIl0sWyJzaGFwZSIsInJhY2stc2VydmVyIl0sWyJjbHJJbnB1dCIsIiIsInBsYWNlaG9sZGVyIiwiVGFibGVzIiwibmFtZSIsImlucHV0IiwiYXV0b2NvbXBsZXRlIiwib2ZmIiwzLCJpZCIsIm5nTW9kZWwiLCJuZ01vZGVsQ2hh''@;'; put 'put ''bmdlIiwia2V5dXAiXSxbInNlYXJjaFRyZWVJbnB1dCIsIiJdLFsiY2xhc3MiLCJjbHItdHJlZW5vZGUtbGluayIsMywidGFibGUtYWN0aXZlIiwiY2xpY2siLDQsIm5nSWYiXSxbMSwiY2xyLXRyZWVub2RlLWxpbmsiLDMsImNsaWNrIl0sWzMsIm5nU3dpdGNoIl0sWyJzaGFwZSIsImJvbHQi''@;'; put 'put ''LDQsIm5nU3dpdGNoQ2FzZSJdLFsic2hhcGUiLCJ0YWJsZSIsNCwibmdTd2l0Y2hDYXNlIl0sWyJzaGFwZSIsImJvbHQiXSxbInNoYXBlIiwidGFibGUiXSxbMSwidy0xMDAiLCJ0ZXh0LWNlbnRlciJdLFsxLCJzcGlubmVyIiwic3Bpbm5lci1zbSJdLFsxLCJtb2RhbCIsInotaW5kZXgtaGln''@;'; put 'put ''aGVzdCJdLFsicm9sZSIsImRpYWxvZyIsImFyaWEtaGlkZGVuIiwidHJ1ZSIsMSwibW9kYWwtZGlhbG9nIl0sWzEsIm1vZGFsLWNvbnRlbnQiXSxbMSwibW9kYWwtaGVhZGVyIl0sWyJhcmlhLWxhYmVsIiwiQ2xvc2UiLCJ0eXBlIiwiYnV0dG9uIiwxLCJjbG9zZSJdLFsiYXJpYS1oaWRkZW4i''@;'; put 'put ''LCJ0cnVlIiwic2hhcGUiLCJjbG9zZSJdLFsidHlwZSIsImJ1dHRvbiIsMSwiYnRuIiwiYnRuLXNtIiwiYnRuLXByaW1hcnkiLDMsImNsaWNrIl0sWyJhcmlhLWhpZGRlbiIsInRydWUiLDEsIm1vZGFsLWJhY2tkcm9wIl0sWyJxdWVyeUZpbHRlciIsIiJdLFsxLCJsb2FkaW5nU3Bpbm5lciJd''@;'; put 'put ''LFsxLCJzcGlubmVyIl0sWzEsImNhcmQiLCJoLTEwMCIsImQtZmxleCIsImNsci1mbGV4LWNvbHVtbiJdLFsiY2xhc3MiLCJoZWFkZXItcm93IGNsci1yb3cganVzdGlmeS1jb250ZW50LWJldHdlZW4gY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXIgdy0xMDAgbS0wIiw0LCJuZ0lmIl0sWyJj''@;'; put 'put ''bGFzcyIsIm5vLXRhYmxlLXNlbGVjdGVkIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNhcmQtYmxvY2sgbm9EYXRhIiw0LCJuZ0lmIl0sWyJjbGFzcyIsImNsci1mbGV4LTEiLDQsIm5nSWYiXSxbMSwiaGVhZGVyLXJvdyIsImNsci1yb3ciLCJqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiIsImNsci1q''@;'; put 'put ''dXN0aWZ5LWNvbnRlbnQtY2VudGVyIiwidy0xMDAiLCJtLTAiXSxbMSwiZm9ybS1ibG9jayIsInNlYXJjaC13cmFwcGVyIiwic3ciLCJjbHItY29sLW1kIl0sWyJjbHJGb3JtIiwiIiwxLCJkLWZsZXgiLCJhbGlnbi1pdGVtcy1jZW50ZXIiXSxbMSwiaW5wdXQtd3JhcHBlciJdLFsiY2xySW5w''@;'; put 'put ''dXQiLCIiLCJwbGFjZWhvbGRlciIsIlNlYXJjaCIsIm5hbWUiLCJzZWFyY2gtaW5wdXQiLDMsInR5cGUiLCJrZXl1cC5lbnRlciJdLFsic2VhcmNoRWwiLCIiXSxbInNoYXBlIiwic2VhcmNoIiwzLCJjbGljayIsNCwibmdJZiJdLFsiY2xhc3MiLCJzcGlubmVyIHNwaW5uZXItaW5saW5lIiw0''@;'; put 'put ''LCJuZ0lmIl0sWyJ0eXBlIiwiY2hlY2tib3giLCJjbHJDaGVja2JveCIsIiIsIm5hbWUiLCJudW1lcmljX2NoZWNrIiwzLCJuZ01vZGVsIiwibmdNb2RlbENoYW5nZSJdLFsxLCJ0aXRsZS1jb2wiLCJjbHItY29sLWF1dG8iLCJjbHItZmxleC1jb2x1bW4iLCJjbHItZmxleC1zbS1yb3ciXSxb''@;'; put 'put ''InNoYXBlIiwiaW5mby1jaXJjbGUiLCJzaXplIiwiMjQiLDEsImlzLWhpZ2hsaWdodCIsImN1cnNvci1wb2ludGVyIiwzLCJjbGljayJdLFsic2hhcGUiLCJib2x0IiwiY2xhc3MiLCJjb2xvci15ZWxsb3cgbXQtNSBtci01Iiw0LCJuZ0lmIl0sWyJjbGFzcyIsInZpZXdlclRpdGxlIGNsci1m''@;'; put 'put ''bGV4LWNvbHVtbiBkLWZsZXggY2xyLWZsZXgtc20tcm93IGNsci1hbGlnbi1pdGVtcy1jZW50ZXIiLDQsIm5nSWYiXSxbMSwib3B0aW9ucy1jb2wiLCJjbHItY29sLW1kIl0sWyJjbGFzcyIsIm9wdGlvbnMtZHJvcGRvd24iLDMsImNsckNsb3NlTWVudU9uSXRlbUNsaWNrIiw0LCJuZ0lmIl0s''@;'; put 'put ''WyJjbGFzcyIsImNsci1jb2wtbWQtMTIgaW5mb0JhciIsNCwibmdJZiJdLFsic2hhcGUiLCJzZWFyY2giLDMsImNsaWNrIl0sWzEsInNwaW5uZXIiLCJzcGlubmVyLWlubGluZSJdLFsic2hhcGUiLCJib2x0IiwxLCJjb2xvci15ZWxsb3ciLCJtdC01IiwibXItNSJdLFsxLCJ2aWV3ZXJUaXRs''@;'; put 'put ''ZSIsImNsci1mbGV4LWNvbHVtbiIsImQtZmxleCIsImNsci1mbGV4LXNtLXJvdyIsImNsci1hbGlnbi1pdGVtcy1jZW50ZXIiXSxbInNoYXBlIiwicmVmcmVzaCIsMSwicmVmcmVzaC10YWJsZSIsMywiY2xpY2siXSxbMSwib3B0aW9ucy1kcm9wZG93biIsMywiY2xyQ2xvc2VNZW51T25JdGVt''@;'; put 'put ''Q2xpY2siXSxbInR5cGUiLCJidXR0b24iLCJjbHJEcm9wZG93blRyaWdnZXIiLCIiLDEsImJ0biIsImJ0bi1zbSIsImJ0bi1vdXRsaW5lIiwiZmlsdGVyU2lkZSJdLFsic2hhcGUiLCJjb2ciLCJzaXplIiwiMTUiXSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0Iiw0LCJjbHJJZk9wZW4i''@;'; put 'put ''XSxbImNsclBvc2l0aW9uIiwiYm90dG9tLXJpZ2h0Il0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xhc3MiLCJidG4gYnRuLXNtIGJ0bi1zdWNjZXNzLW91dGxpbmUiLCJjbHJEcm9wZG93bkl0ZW0iLCIiLDMsImNsaWNrIiw0LCJuZ0lmIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyRHJvcGRvd25JdGVt''@;'; put 'put ''IiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4tb3V0bGluZSIsImJ0bi1ibG9jayIsMywiY2xpY2siXSxbInNoYXBlIiwiZmlsdGVyIl0sWyJ0eXBlIiwiYnV0dG9uIiwiY2xyRHJvcGRvd25JdGVtIiwiIiwxLCJidG4iLCJidG4tc20iLCJidG4tc3VjY2Vzcy1vdXRsaW5lIiwzLCJjbGljayJd''@;'; put 'put ''LFsic2hhcGUiLCJkb3dubG9hZCJdLFsic2hhcGUiLCJkb3dubG9hZC1jbG91ZCJdLFsic2hhcGUiLCJwZW5jaWwiXSxbInNoYXBlIiwic3dpdGNoIl0sWzEsImNsci1jb2wtbWQtMTIiLCJpbmZvQmFyIl0sWzEsIm5vLXRhYmxlLXNlbGVjdGVkIl0sWyJzaGFwZSIsIndhcm5pbmctc3RhbmRh''@;'; put 'put ''cmQiLCJzaXplIiwiNjAiLDEsImlzLWluZm8iLCJpY29uLWRjLWZpbGwiXSxbMSwidGV4dC1jZW50ZXIiLCJjb2xvci1ncmF5Il0sWzEsImhlYWRlci1yb3ciLCJjbHItcm93IiwiYm9yZGVyLWJvdHRvbS1kaXZpZGVyIiwianVzdGlmeS1jb250ZW50LWJldHdlZW4iLCJ3LTEwMCIsIm0tMCJd''@;'; put 'put ''LFsxLCJ0aXRsZS1jb2wiLCJjbHItY29sLWF1dG8iXSxbMSwidmlld2VyVGl0bGUiLCJtdC0xNyJdLFsxLCJ0ZXh0LWNlbnRlciIsIm10LTEwIl0sWyJjbHJNZWRpdW0iLCIiLDQsIm5nSWYiXSxbImNsYXNzIiwibm8tdGFibGUtc2VsZWN0ZWQtaW5mbyBwb2ludGVyLWV2ZW50cy1ub25lIiw0''@;'; put 'put ''LCJuZ0lmIl0sWyJjbGFzcyIsImxpYmluZm8gbS0wIGNsci1yb3ciLDQsIm5nSWYiXSxbMSwibm8tdGFibGUtc2VsZWN0ZWQtaW5mbyIsInBvaW50ZXItZXZlbnRzLW5vbmUiXSxbInNoYXBlIiwiaW5mby1zdGFuZGFyZCIsInNpemUiLCI0MCIsMSwiaXMtaW5mbyIsImljb24tZGMtZmlsbCJd''@;'; put 'put ''LFsxLCJsaWJpbmZvIiwibS0wIiwiY2xyLXJvdyJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBtLTAgdy0xMDAiLDQsIm5nSWYiXSxbMSwidGV4dC1jZW50ZXIiLCJtLTAiLCJ3LTEwMCJdLFsic2hhcGUiLCJyZWZyZXNoIiwxLCJyZWZyZXNoLXRhYmxlIiwibS0wIiwzLCJjbGljayJdLFsxLCJt''@;'; put 'put ''LTAiXSxbMSwibS0wIiwiZm9udC1ib2xkIl0sWzEsImNhcmQtYmxvY2siLCJub0RhdGEiXSxbInNoYXBlIiwid2FybmluZy1zdGFuZGFyZCIsInNpemUiLCI2MCIsMSwiaXMtaW5mbyJdLFsiY2xhc3MiLCJ0ZXh0LWNlbnRlciBjb2xvci1ncmF5Iiw0LCJuZ0lmIl0sWzEsImNsci1mbGV4LTEi''@;'; put 'put ''XSxbImhvdElkIiwiaG90SW5zdGFuY2UiLCJpZCIsImhvdFRhYmxlIiwic3RyZXRjaEgiLCJhbGwiLDMsIm11bHRpQ29sdW1uU29ydGluZyIsInZpZXdwb3J0Um93UmVuZGVyaW5nT2Zmc2V0IiwiZGF0YSIsImNvbEhlYWRlcnMiLCJjb2x1bW5zIiwiZmlsdGVycyIsImRyb3Bkb3duTWVudSIs''@;'; put 'put ''ImhlaWdodCIsIm1vZGlmeUNvbFdpZHRoIiwiY2VsbHMiLCJtYXhSb3dzIiwibWFudWFsQ29sdW1uUmVzaXplIiwibGljZW5zZUtleSJdXSx0ZW1wbGF0ZTpmdW5jdGlvbihoLHYpe2lmKDEmaCYmKG50KDAsImFwcC1zaWRlYmFyIiwwKSxHbigic2Nyb2xsZWRUb0JvdHRvbSIsZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gdi5sb2FkTW9yZUxpYnJhcmllcygpfSkscm4oMSxaOXQsMiwwLCJkaXYiLDEpLG50KDIsImNsci10cmVlIikscm4oMyxXOXQsNiwzLCJjbHItdHJlZS1ub2RlIiwyKSxybig0LGVBdCwyLDEsIm5nLWNvbnRhaW5lciIsMyksb3QoKSxybig1LHRBdCwzLDAsImRpdiIsNCksb3Qo''@;'; put 'put ''KSxudCg2LCJkaXYiLDUpLHJuKDcsbkF0LDE0LDAsImRpdiIsNikscm4oOCxyQXQsMSwwLCJkaXYiLDcpLG50KDksImNsci1tb2RhbCIsOCksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYub3BlbkRvd25sb2FkPUN9KSxudCgxMCwiaDMiLDkpLFl0KDExLCJE''@;'; put 'put ''b3dubG9hZCIpLG90KCksbnQoMTIsImRpdiIsMTApKDEzLCJkaXYiLDExKSgxNCwiY2xyLXNlbGVjdC1jb250YWluZXIiLDEyKSgxNSwibGFiZWwiKSxZdCgxNiwiUGxlYXNlIGNob29zZSBkb3dubG9hZCBmb3JtYXQiKSxvdCgpLG50KDE3LCJzZWxlY3QiLDEzKSxHbigibmdNb2RlbENoYW5n''@;'; put 'put ''ZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZG93bmxvYWRGb3JtYXQ9Q30pLG50KDE4LCJvcHRpb24iLDE0KSxZdCgxOSwiQ1NWIiksb3QoKSxudCgyMCwib3B0aW9uIiwxNSksWXQoMjEsIkRhdGFsaW5lcyAoY2FyZHMgZmlsZSkiKSxvdCgpLG50KDIyLCJvcHRpb24iLDE2KSxZdCgyMywiRERM''@;'; put 'put ''IChQR1NRTCBGbGF2b3VyKSIpLG90KCksbnQoMjQsIm9wdGlvbiIsMTcpLFl0KDI1LCJEREwgKFNBUyBGbGF2b3VyKSIpLG90KCksbnQoMjYsIm9wdGlvbiIsMTgpLFl0KDI3LCJEREwgKFRTUUwgRmxhdm91cikiKSxvdCgpLG50KDI4LCJvcHRpb24iLDE5KSxZdCgyOSwiRXhjZWwgKC54bHN4''@;'; put 'put ''KSIpLG90KCksbnQoMzAsIm9wdGlvbiIsMjApLFl0KDMxLCJNYXJrZG93biAoLm1kKSIpLG90KCkoKSgpKCkoKSxudCgzMiwiZGl2IiwyMSkoMzMsImJ1dHRvbiIsMjIpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5vcGVuRG93bmxvYWQ9ITF9KSxZdCgzNCwiIENhbmNlbCAiKSxv''@;'; put 'put ''dCgpLG50KDM1LCJidXR0b24iLDIzKSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYuZG93bmxvYWRGb3JtYXQuaW5jbHVkZXMoIkRETCIpP3YuZG93bmxvYWREREwoKTp2LmRvd25sb2FkRGF0YSgpfSksWXQoMzYsIiBPayAiKSxvdCgpKCkoKSxudCgzNywiY2xyLW1vZGFsIiw4KSxH''@;'; put 'put ''bigiY2xyTW9kYWxPcGVuQ2hhbmdlIixmdW5jdGlvbihDKXtyZXR1cm4gdi53ZWJRdWVyeT1DfSksbnQoMzgsImgzIiw5KSxZdCgzOSwiIFdlYiBRdWVyeSBVUkwgIiksb3QoKSxudCg0MCwiZGl2IiwyNCkoNDEsImRpdiIsMjUpKDQyLCJkaXYiLDI2KSg0MywiZGl2IiwyNykoNDQsImRpdiIs''@;'; put 'put ''MjgpKDQ1LCJzcGFuIiksWXQoNDYsIkNvcHkgdGhlIGJlbG93IGludG8geW91ciBwcmVmZXJyZWQgY2xpZW50IHRvb2w6Iiksb3QoKSxudCg0NywiZGl2IiwyOSkoNDgsImRpdiIsMzApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi53ZWJRdWVyeVRhYj0hMCx2LnNob3dXZWJRdWVy''@;'; put 'put ''eSgpfSksQ3IoNDksImlucHV0IiwzMSksbnQoNTAsImxhYmVsIiksWXQoNTEsIlRBQiIpLG90KCkoKSxudCg1MiwiZGl2IiwzMCksR24oImNsaWNrIixmdW5jdGlvbigpe3JldHVybiB2LndlYlF1ZXJ5VGFiPSExLHYuc2hvd1dlYlF1ZXJ5KCl9KSxDcig1MywiaW5wdXQiLDMxKSxudCg1NCwi''@;'; put 'put ''bGFiZWwiKSxZdCg1NSwiQ1NWIiksb3QoKSgpKCkoKSxudCg1NiwiZGl2IiwzMikoNTcsInRleHRhcmVhIiwzMywzNCksR24oImZvY3VzIixmdW5jdGlvbihDKXtyZXR1cm4gdi5vbkNsaUNvbW1hbmRGb2N1cyhDKX0pLFl0KDU5LCIgICAgICAgICAgICAgICIpLG90KCkoKSxudCg2MCwiZGl2''@;'; put 'put ''IiwzNSkoNjEsImJ1dHRvbiIsMzYpLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5jb3B5VG9DbGlwKCl9KSxZdCg2MiwiIGNvcHkgdG8gY2xpcGJvYXJkICIpLG90KCkoKSgpKCkoKSgpLG50KDYzLCJkaXYiLDIxKSg2NCwiYnV0dG9uIiwyMiksR24oImNsaWNrIixmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiB2LndlYlF1ZXJ5PSExfSksWXQoNjUsIiBjbG9zZSAiKSxvdCgpKCkoKSxudCg2NiwiY2xyLW1vZGFsIiwzNyksR24oImNsck1vZGFsT3BlbkNoYW5nZSIsZnVuY3Rpb24oQyl7cmV0dXJuIHYuZmlsdGVyPUN9KSxudCg2NywiaDMiLDkpLFl0KDY4LCIgRmlsdGVyIGZvciB0YWJs''@;'; put 'put ''ZToiKSxudCg2OSwic3BhbiIpLFl0KDcwKSxvdCgpKCksbnQoNzEsImRpdiIsMTApLHJuKDcyLGlBdCwyLDAsImFwcC1xdWVyeSIsMzgpLG90KCksbnQoNzMsImRpdiIsMjEpKDc0LCJidXR0b24iLDM5KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucmVzZXRGaWx0ZXIoKX0pLFl0''@;'; put 'put ''KDc1LCIgcmVzZXQgZmlsdGVyICIpLG90KCksbnQoNzYsImJ1dHRvbiIsNDApLEduKCJjbGljayIsZnVuY3Rpb24oKXtyZXR1cm4gdi5maWx0ZXI9ITEsdi5yZW1vdmVRdWVyeSgpfSksWXQoNzcsIiBDYW5jZWwgIiksb3QoKSxudCg3OCwiYnV0dG9uIiw0MSksR24oImNsaWNrIixmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB2LnNlbmRDbGF1c2UoKX0pLFl0KDc5LCIgT2sgIiksb3QoKSgpKCksbnQoODAsImNsci1tb2RhbCIsNDIpLEduKCJjbHJNb2RhbE9wZW5DaGFuZ2UiLGZ1bmN0aW9uKEMpe3JldHVybiB2LnF1ZXJ5RXJyPUN9KSxudCg4MSwiaDMiLDQzKSxZdCg4MiwiRXJyb3IiKSxvdCgp''@;'; put 'put ''LG50KDgzLCJkaXYiLDEwKSg4NCwicCIpLFl0KDg1KSxvdCgpKCksbnQoODYsImRpdiIsMjEpKDg3LCJidXR0b24iLDQ0KSxHbigiY2xpY2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucXVlcnlFcnI9ITF9KSxZdCg4OCwiIENhbmNlbCAiKSxvdCgpLG50KDg5LCJidXR0b24iLDQ1KSxHbigiY2xp''@;'; put 'put ''Y2siLGZ1bmN0aW9uKCl7cmV0dXJuIHYucXVlcnlFcnI9ITF9KSxZdCg5MCwiIE9rICIpLG90KCkoKSgpLHJuKDkxLG9BdCw2LDAsImRpdiIsNDYpLHJuKDkyLEhBdCw2LDUsImRpdiIsNDcpLG90KCksbnQoOTMsImFwcC1kYXRhc2V0LWluZm8iLDQ4KSxHbigib3BlbkNoYW5nZSIsZnVuY3Rp''@;'; put 'put ''b24oQyl7cmV0dXJuIHYuZGF0YXNldEluZm89Q30pLG90KCkpLDImaCl7Y29uc3QgeT12YSg1OCk7dXQoMSksVHQoIm5nSWYiLHYubGlicmFyaWVzTG9hZGluZyksdXQoMiksVHQoIm5nSWYiLHYubGlicmFyaWVzKSx1dCgxKSxUdCgibmdGb3JPZiIsdi5saWJyYXJpZXMpLHV0KDEpLFR0KCJu''@;'; put 'put ''Z0lmIix2LmxpYnJhcmllc1BhZ2luZyksdXQoMiksVHQoIm5nSWYiLHYubnVsbFZhcmlhYmxlcyksdXQoMSksVHQoIm5nSWYiLHYubnVsbFZhcmlhYmxlcyksdXQoMSksVHQoImNsck1vZGFsT3BlbiIsdi5vcGVuRG93bmxvYWQpKCJjbHJNb2RhbFNpemUiLCJtZCIpLHV0KDgpLFR0KCJuZ01v''@;'; put 'put ''ZGVsIix2LmRvd25sb2FkRm9ybWF0KSx1dCgxOCksVHQoImlkIix2LnRhYmxlVGl0bGUpLHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYud2ViUXVlcnkpKCJjbHJNb2RhbFNpemUiLCJsZyIpLHV0KDEyKSxUdCgiY2hlY2tlZCIsdi53ZWJRdWVyeVRhYiksdXQoNCksVHQoImNoZWNrZWQiLCF2''@;'; put 'put ''LndlYlF1ZXJ5VGFiKSx1dCg0KSxJNigidmFsdWUiLHYud2ViUXVlcnlUZXh0KSx1dCg0KSxUdCgibmd4Q2xpcGJvYXJkIix5KSx1dCg1KSxUdCgiY2xyTW9kYWxPcGVuIix2LmZpbHRlcikoImNsck1vZGFsU2l6ZSIsInhsIikoImNsck1vZGFsQ2xvc2FibGUiLCExKSx1dCg0KSxKaSgiICIs''@;'; put 'put ''di5saWJUYWIsIiAiKSx1dCgyKSxUdCgibmdJZiIsdi5maWx0ZXIpLHV0KDYpLFR0KCJjbHJMb2FkaW5nIix2LnN1Ym1pdExvYWRpbmcpLHV0KDIpLFR0KCJjbHJNb2RhbE9wZW4iLHYucXVlcnlFcnIpLHV0KDUpLGppKHYucXVlcnlFcnJNZXNzYWdlKSx1dCg2KSxUdCgibmdJZiIsdi5sb2Fk''@;'; put 'put ''aW5nVGFibGVWaWV3KSx1dCgxKSxUdCgibmdJZiIsIXYubG9hZGluZ1RhYmxlVmlldyksdXQoMSksVHQoIm9wZW4iLHYuZGF0YXNldEluZm8pKCJkc21ldGEiLHYuZHNtZXRhKX19LGRlcGVuZGVuY2llczpbeHMsTm8sSmQsaXAsRjl0LHBnLCQzLHEzLG0xLElmLE9mLFRzLGRnLElzLExjLHl2''@;'; put 'put ''LF9nLFFMLHdsLGlkLG9kLGdvLFBhLHcsYXQsdXIsUm8sbG8sT2kscHYsb1osaVosd3YsYlMsX1MsSkwsZ2EsQXRlLEVMZSxNUyx4TGUsSUxlLFY5dF0sc3R5bGVzOlsiLmNhcmRbX25nY29udGVudC0lQ09NUCVde21hcmdpbi10b3A6MDtmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0''@;'; put 'put ''aW9uOmNvbHVtbn1jbHItdHJlZS1ub2RlW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGJ1dHRvbltfbmdjb250ZW50LSVDT01QJV17d2hpdGUtc3BhY2U6bm93cmFwfS50b2dnbGUtc3dpdGNoW19uZ2NvbnRlbnQtJUNPTVAlXSAgIGlucHV0W3R5cGU9Y2hlY2tib3hdW19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XTpjaGVja2VkICsgbGFiZWxbX25nY29udGVudC0lQ09NUCVdOmJlZm9yZXtib3JkZXItY29sb3I6IzMxNDM1MTtiYWNrZ3JvdW5kLWNvbG9yOiMzMTQzNTEhaW1wb3J0YW50O3RyYW5zaXRpb246LjE1cyBlYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91''@;'; put 'put ''bmQtY29sb3J9LmhlYWRlci1yb3dbX25nY29udGVudC0lQ09NUCVdICAgLnRpdGxlLWNvbFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uaGVhZGVyLXJvd1tfbmdjb250ZW50LSVDT01QJV0gICAub3B0aW9ucy1jb2xbX25nY29udGVudC0lQ09N''@;'; put 'put ''UCVde2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LnNlYXJjaC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmlucHV0LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7bWluLXdpZHRoOjE3MHB4fS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0g''@;'; put 'put ''ICAgIC5pbnB1dC13cmFwcGVyIGNsci1pY29uLCAuc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICAuaW5wdXQtd3JhcHBlciAuc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxOXB4O3RvcDowcHh9LnNlYXJjaC13cmFwcGVyW19uZ2NvbnRlbnQtJUNPTVAlXSAg''@;'; put 'put ''ICAgLmlucHV0LXdyYXBwZXIgY2xyLWljb257Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDp3aGl0ZX0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVye21hcmdpbi10b3A6LTVweDttYXJnaW4tcmlnaHQ6MH0uc2VhcmNoLXdyYXBwZXJb''@;'; put 'put ''X25nY29udGVudC0lQ09NUCVdICAgICBjbHItaW5wdXQtY29udGFpbmVyIGxhYmVse2Rpc3BsYXk6bm9uZX0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICBjbHItY2hlY2tib3gtY29udGFpbmVye21hcmdpbi10b3A6MH0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0l''@;'; put 'put ''Q09NUCVdICAgICBpbnB1dHtib3JkZXItYm90dG9tOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCAjOTk5fS5zZWFyY2gtd3JhcHBlcltfbmdjb250ZW50LSVDT01QJV0gICAgIGlucHV0Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAuc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVd''@;'; put 'put ''ICAgICBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MH0uc2VhcmNoLXdyYXBwZXJbX25nY29udGVudC0lQ09NUCVdICAgICBpbnB1dFt0eXBlPW51bWJlcl17LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZH0uc3dbX25nY29u''@;'; put 'put ''dGVudC0lQ09NUCVde21hcmdpbjoxcmVtIDByZW0gLjVyZW0gMXJlbX0uaW5mb0Jhcltfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXRvcDoxMHB4O2JhY2tncm91bmQ6IzQ5NTk2Nztjb2xvcjojZmZmO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6M3B4O2ZvbnQtc2l6ZToxNnB4fS5maWx0''@;'; put 'put ''ZXJTaWRlW19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW4tdG9wOjI2cHg7bWFyZ2luLWJvdHRvbToxOXB4fS5vcHRpb25zLWRyb3Bkb3duW19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgY2xyLWljb257bWFyZ2luLXJpZ2h0OjVweH0udmlld2VyVGl0bGVbX25nY29udGVudC0lQ09NUCVde3RleHQt''@;'; put 'put ''YWxpZ246Y2VudGVyO21hcmdpbi1ib3R0b206MTVweH0uZHJvcGRvd24tbWVudVtfbmdjb250ZW50LSVDT01QJV17d2lkdGg6MTgwcHg7bWFyZ2luLXRvcDotMThweDtwYWRkaW5nOjB9LmRyb3Bkb3duLW1lbnVbX25nY29udGVudC0lQ09NUCVdICAgLmJ0bltfbmdjb250ZW50LSVDT01QJV17''@;'; put 'put ''d2lkdGg6MTAwJTt0ZXh0LXRyYW5zZm9ybTpub25lfS5jYXJkRmxleFtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lm5vRGF0YVtfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1k''@;'; put 'put ''aXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjF9LmZpbHRlckJ0bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZWRpdEJ0bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVu''@;'; put 'put ''dDpmbGV4LXN0YXJ0fS5idG5WaWV3W19uZ2NvbnRlbnQtJUNPTVAlXXttYXJnaW46MCFpbXBvcnRhbnR9LmNvbnRlbnQtYXJlYVtfbmdjb250ZW50LSVDT01QJV17cGFkZGluZzouNXJlbSFpbXBvcnRhbnQ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZG93bmxvYWQtc2Vs''@;'; put 'put ''ZWN0W19uZ2NvbnRlbnQtJUNPTVAlXSAgICAgLmNsci1zZWxlY3Qtd3JhcHBlcnttYXgtaGVpZ2h0OnVuc2V0IWltcG9ydGFudH0ucmVmcmVzaC10YWJsZVtfbmdjb250ZW50LSVDT01QJV17Y3Vyc29yOnBvaW50ZXI7bWFyZ2luLWxlZnQ6NXB4fS5saWJpbmZvW19uZ2NvbnRlbnQtJUNPTVAl''@;'; put 'put ''XXtwYWRkaW5nOjEwcHggMjBweDtvdmVyZmxvdzphdXRvfWhvdC10YWJsZVtfbmdjb250ZW50LSVDT01QJV0gICAgIC5wcmltYXJ5S2V5SGVhZGVyU3R5bGV7YmFja2dyb3VuZDpyZ2JhKDQ4LDEwNywwLC40MzEzNzI1NDkpfS5uby10YWJsZS1zZWxlY3RlZC1pbmZvW19uZ2NvbnRlbnQtJUNP''@;'; put 'put ''TVAlXXtiYWNrZ3JvdW5kOm5vbmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LndlYi1xdWVyeVtfbmdjb250ZW50LSVDT01QJV17bWF4LWhlaWdodDozNXZofS53ZWItcXVlcnlbX25nY29udGVudC0lQ09NUCVdICAgLndlYi1xdWVyeS10''@;'; put 'put ''ZXh0W19uZ2NvbnRlbnQtJUNPTVAlXXttaW4taGVpZ2h0OjEwMHB4O21heC1oZWlnaHQ6MTAwcHh9QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzY4cHgpey5maWx0ZXJCdG5bX25nY29udGVudC0lQ09NUCVdLCAuZWRpdEJ0bltfbmdjb250ZW50LSVDT01QJV17ZGlzcGxheTpmbGV4''@;'; put 'put ''O2p1c3RpZnktY29udGVudDpjZW50ZXJ9fUBtZWRpYSAobWluLXdpZHRoOiA1NzZweCl7LnJvd1tfbmdjb250ZW50LSVDT01QJV17bWFyZ2luLXJpZ2h0OjByZW07bWFyZ2luLWxlZnQ6MHJlbX19Il19KSxkfSkoKTtjb25zdCBOQXQ9W3twYXRoOiIiLGNvbXBvbmVudDphOXQsY2hpbGRyZW46''@;'; put 'put ''W3twYXRoOiIiLHBhdGhNYXRjaDoiZnVsbCIscmVkaXJlY3RUbzoiZGF0YSJ9LHtwYXRoOiJkYXRhIixjb21wb25lbnQ6em5lfSx7cGF0aDoiZGF0YSIsY29tcG9uZW50OnpuZX0se3BhdGg6ImRhdGEvOmxpYk1lbS86ZmlsdGVySWQiLGNvbXBvbmVudDp6bmV9LHtwYXRoOiJkYXRhLzpsaWJN''@;'; put 'put ''ZW0iLGNvbXBvbmVudDp6bmV9LHtwYXRoOiJsaW5lYWdlIixjb21wb25lbnQ6Wm5lfSx7cGF0aDoibGluZWFnZS86dGFibGVpZC86ZGlyZWN0aW9uIixjb21wb25lbnQ6Wm5lfSx7cGF0aDoibGluZWFnZS9jb2x1bW4vOmNvbHVyaS86ZGlyZWN0aW9uIixjb21wb25lbnQ6Wm5lfSx7cGF0aDoi''@;'; put 'put ''bGluZWFnZS9jb2x1bW4vOmNvbHVyaS86ZGlyZWN0aW9uLzpyZWxvYWQiLGNvbXBvbmVudDpabmV9LHtwYXRoOiJtZXRhZGF0YSIsY29tcG9uZW50Ok9tZX0se3BhdGg6Im1ldGFkYXRhL29iamVjdC86b2JqZWN0SUQiLGNvbXBvbmVudDpPbWV9LHtwYXRoOiJtZXRhZGF0YS9vYmplY3QvOm9i''@;'; put 'put ''amVjdElELzpvYmplY3ROYW1lIixjb21wb25lbnQ6T21lfSx7cGF0aDoidXNlcm5hdiIsY29tcG9uZW50Om85dCxjaGlsZHJlbjpbe3BhdGg6IiIscGF0aE1hdGNoOiJmdWxsIixyZWRpcmVjdFRvOiJncm91cHMifSx7cGF0aDoidXNlcnMiLGNvbXBvbmVudDpQTGV9LHtwYXRoOiJ1c2Vycy86''@;'; put 'put ''dXJpIixjb21wb25lbnQ6UExlfSx7cGF0aDoiZ3JvdXBzIixjb21wb25lbnQ6UkxlfSx7cGF0aDoiZ3JvdXBzLzp1cmkiLGNvbXBvbmVudDpSTGV9LHtwYXRoOiJyb2xlcyIsY29tcG9uZW50OkJMZX0se3BhdGg6InJvbGVzLzp1cmkiLGNvbXBvbmVudDpCTGV9XX1dfV07bGV0IFZBdD0oKCk9''@;'; put 'put ''PntjbGFzcyBke31yZXR1cm4gZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltYaC5mb3JDaGlsZChOQXQpLFhoXX0pLGR9KSgpLGpBdD0oKCk9PntjbGFzcyBke31yZXR1cm4g''@;'; put 'put ''ZC5cdTAyNzVmYWM9ZnVuY3Rpb24oaCl7cmV0dXJuIG5ldyhofHxkKX0sZC5cdTAyNzVtb2Q9Y28oe3R5cGU6ZH0pLGQuXHUwMjc1aW5qPWIwKHtpbXBvcnRzOltiYSxWQXQsSDl0LHRkLG5PLGQ2ZS5mb3JSb290KCksd21lLEhuZSxObmVdfSksZH0pKCk7Y29uc3QgekF0PVhoLmZvclJvb3Qo''@;'; put 'put ''W3twYXRoOiIiLHJlZGlyZWN0VG86ImhvbWUiLHBhdGhNYXRjaDoiZnVsbCJ9LHtwYXRoOiJ2aWV3Iixsb2FkQ2hpbGRyZW46KCk9PmpBdH0se3BhdGg6ImFwcHJvdmUiLGNvbXBvbmVudDp3VmUsY2hpbGRyZW46W3twYXRoOiIiLHBhdGhNYXRjaDoiZnVsbCIscmVkaXJlY3RUbzoidG9hcHBy''@;'; put 'put ''b3ZlIn0se3BhdGg6InRvYXBwcm92ZSIsY29tcG9uZW50Ok53ZX0se3BhdGg6ImFwcHJvdmVEZXQvOnRhYmxlSWQiLGNvbXBvbmVudDpad2V9LHtwYXRoOiJzdWJtaXR0ZWQiLGNvbXBvbmVudDp6d2V9XX0se3BhdGg6ImxpY2Vuc2luZy86YWN0aW9uIixjb21wb25lbnQ6VWplLGNhbkFjdGl2''@;'; put 'put ''YXRlOltaaGVdLGNhbkRlYWN0aXZhdGU6W1poZV19LHtwYXRoOiJob21lIixjb21wb25lbnQ6VUhlfSx7cGF0aDoiZWRpdG9yIixsb2FkQ2hpbGRyZW46KCk9Pmc3dH0se3BhdGg6InN0YWdlIixsb2FkQ2hpbGRyZW46KCk9PkFldH0se3BhdGg6ImFib3V0Iixjb21wb25lbnQ6ZEhlfSx7cGF0''@;'; put 'put ''aDoiYWN0aW9ucy86bGliZHMvOmRzaWQiLGNvbXBvbmVudDpXTmV9LHtwYXRoOiJoaXN0b3J5Iixjb21wb25lbnQ6b1ZlfSx7cGF0aDoic3VibWl0dGVkIixjb21wb25lbnQ6endlfSx7cGF0aDoiZGVwbG95Iixjb21wb25lbnQ6V3dlfSx7cGF0aDoiZGVwbG95L21hbnVhbGRlcGxveSIsY29t''@;'; put 'put ''cG9uZW50Old3ZX0se3BhdGg6IioqIixjb21wb25lbnQ6YVZlfV0se3VzZUhhc2g6ITAscmVsYXRpdmVMaW5rUmVzb2x1dGlvbjoibGVnYWN5In0pO2xldCBHQXQ9KCgpPT57Y2xhc3MgZHt9cmV0dXJuIGQuXHUwMjc1ZmFjPWZ1bmN0aW9uKGgpe3JldHVybiBuZXcoaHx8ZCl9LGQuXHUwMjc1''@;'; put 'put ''bW9kPWNvKHt0eXBlOmQsYm9vdHN0cmFwOltkUGVdfSksZC5cdTAyNzVpbmo9YjAoe3Byb3ZpZGVyczpbUjcsa2csTndlLFpoZV0saW1wb3J0czpbaEhlLCRXLHRkLFAyZSx6SSx6QXQsSG5lLG5PLHdtZSxObmVdfSksZH0pKCk7KGZ1bmN0aW9uIGd1KCl7SVQ9ITF9KSgpLE9pZSgpLmJvb3Rz''@;'; put 'put ''dHJhcE1vZHVsZShHQXQpfSwxMTQwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDE3MTU2KS5kZWZhdWx0O3NlbGYsWGUuZXhwb3J0cz0oKCk9Pnt2YXIgQj17MjY1NjpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24o''@;'; put 'put ''Vyl7cmV0dXJuIFcmJlcuX19lc01vZHVsZT9XOntkZWZhdWx0Old9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5kZWNvZGVUb2tlbj1RLmhhc1Rva2VuRXhwaXJlZD1RLmlzUmVmcmVzaFRva2VuRXhwaXJpbmc9US5pc0FjY2Vzc1Rva2VuRXhw''@;'; put 'put ''aXJpbmc9dm9pZCAwO3ZhciBhZT1yZShqKDYyNDUpKTtmdW5jdGlvbiBZKFcsTil7cmV0dXJuKDAsYWUuZGVmYXVsdCkoVykuZXhwLShuZXcgRGF0ZSkudmFsdWVPZigpLzFlMzw9Tn1RLmlzQWNjZXNzVG9rZW5FeHBpcmluZz1mdW5jdGlvbihXLE4pe3JldHVybiB2b2lkIDA9PT1OJiYoTj0z''@;'; put 'put ''NjAwKSwhV3x8WShXLE4pfSxRLmlzUmVmcmVzaFRva2VuRXhwaXJpbmc9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gdm9pZCAwPT09TiYmKE49MzApLCFXfHxZKFcsTil9LFEuaGFzVG9rZW5FeHBpcmVkPWZ1bmN0aW9uKFcpe3JldHVybiFXfHxZKFcsMCl9LFEuZGVjb2RlVG9rZW49ZnVuY3Rpb24o''@;'; put 'put ''Vyl7dmFyIE47dHJ5e049KDAsYWUuZGVmYXVsdCkoVyl9Y2F0Y2godGUpe3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCB0b2tlbiBzdXBwbGllZC4iKX1yZXR1cm4gTn19LDY3OTk6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8''@;'; put 'put ''fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFksVyxOLHRlKXt2b2lkIDA9PT10ZSYmKHRlPU4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZLHRlLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTix0ZSl7dm9pZCAwPT09dGUmJih0ZT1O''@;'; put 'put ''KSxZW3RlXT1XW05dfSksYWU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOIGluIFkpImRlZmF1bHQiPT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fHJlKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEs''@;'; put 'put ''Il9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGFlKGooMjY1NiksUSl9LDMyNTk6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGo9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gaj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihyZSl7Zm9yKHZhciBhZSxZPTEsVz1h''@;'; put 'put ''cmd1bWVudHMubGVuZ3RoO1k8VztZKyspZm9yKHZhciBOIGluIGFlPWFyZ3VtZW50c1tZXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYWUsTikmJihyZVtOXT1hZVtOXSk7cmV0dXJuIHJlfSxqLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07T2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucHJlZml4TWVzc2FnZT12b2lkIDAsUS5wcmVmaXhNZXNzYWdlPWZ1bmN0aW9uKHJlLGFlKXtpZigib2JqZWN0Ij09dHlwZW9mIHJlKWlmKHJlLmhhc093blByb3BlcnR5KCJtZXNzYWdlIikpcmUubWVzc2FnZT1hZStyZS5tZXNzYWdl''@;'; put 'put ''O2Vsc2V7aWYoIXJlLmhhc093blByb3BlcnR5KCJib2R5IikpcmV0dXJuIGooaih7fSxyZSkse21lc3NhZ2U6YWV9KTtpZigib2JqZWN0Ij09dHlwZW9mIHJlLmJvZHkmJihyZS5tZXNzYWdlPXJlLmJvZHkubWVzc2FnZT9hZStyZS5ib2R5Lm1lc3NhZ2U6YWUpLCJzdHJpbmciPT10eXBlb2Yg''@;'; put 'put ''cmUuYm9keSl7dmFyIFk9dm9pZCAwO3RyeXtZPUpTT04ucGFyc2UocmUuYm9keSl9Y2F0Y2goVyl7cmV0dXJuIHJlLm1lc3NhZ2U9YWUscmV9cmV0dXJuIFkubWVzc2FnZT1ZLm1lc3NhZ2U/YWUrWS5tZXNzYWdlOmFlLHJlLmJvZHk9WSxyZX19cmV0dXJuInN0cmluZyI9PXR5cGVvZiByZSYm''@;'; put 'put ''KHJlPWFlK3JlKSxyZX19LDk3Nzg6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFksVyxOLHRlKXt2b2lkIDA9PT10ZSYmKHRlPU4pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShZLHRl''@;'; put 'put ''LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBXW05dfX0pfTpmdW5jdGlvbihZLFcsTix0ZSl7dm9pZCAwPT09dGUmJih0ZT1OKSxZW3RlXT1XW05dfSksYWU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOIGluIFkpImRlZmF1bHQi''@;'; put 'put ''PT09Tnx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsTil8fHJlKFcsWSxOKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGFlKGooMzI1OSksUSksYWUoaigxMDY0KSxRKX0sMTA2NDpmdW5jdGlvbihVLFEsail7InVzZSBz''@;'; put 'put ''dHJpY3QiO3ZhciByZSxhZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHJlPWZ1bmN0aW9uKEssSil7cmV0dXJuKHJlPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihzZSxvZSl7c2UuX19wcm90b19fPW9lfXx8ZnVuY3Rpb24o''@;'; put 'put ''c2Usb2Upe2Zvcih2YXIgY2UgaW4gb2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9lLGNlKSYmKHNlW2NlXT1vZVtjZV0pfSkoSyxKKX0sZnVuY3Rpb24oSyxKKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgSiYmbnVsbCE9PUopdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xh''@;'; put 'put ''c3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhKKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBzZSgpe3RoaXMuY29uc3RydWN0b3I9S31yZShLLEopLEsucHJvdG90eXBlPW51bGw9PT1KP09iamVjdC5jcmVhdGUoSik6KHNlLnByb3RvdHlwZT1KLnByb3RvdHlw''@;'; put 'put ''ZSxuZXcgc2UpfSksWT10aGlzJiZ0aGlzLl9fcmVhZHx8ZnVuY3Rpb24oSyxKKXt2YXIgc2U9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmS1tTeW1ib2wuaXRlcmF0b3JdO2lmKCFzZSlyZXR1cm4gSzt2YXIgb2UsY2UsZGU9c2UuY2FsbChLKSx2ZT1bXTt0cnl7Zm9yKDsodm9pZCAwPT09''@;'; put 'put ''Snx8Si0tID4wKSYmIShvZT1kZS5uZXh0KCkpLmRvbmU7KXZlLnB1c2gob2UudmFsdWUpfWNhdGNoKEFlKXtjZT17ZXJyb3I6QWV9fWZpbmFsbHl7dHJ5e29lJiYhb2UuZG9uZSYmKHNlPWRlLnJldHVybikmJnNlLmNhbGwoZGUpfWZpbmFsbHl7aWYoY2UpdGhyb3cgY2UuZXJyb3J9fXJldHVy''@;'; put 'put ''biB2ZX0sVz10aGlzJiZ0aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKEssSixzZSl7aWYoc2V8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgb2UsY2U9MCxkZT1KLmxlbmd0aDtjZTxkZTtjZSsrKSFvZSYmY2UgaW4gSnx8KG9lfHwob2U9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNh''@;'; put 'put ''bGwoSiwwLGNlKSksb2VbY2VdPUpbY2VdKTtyZXR1cm4gSy5jb25jYXQob2V8fEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKEopKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2VydmVyVHlwZUVycm9yPXZvaWQgMDt2YXIgTj1qKDM5MDAp''@;'; put 'put ''LHRlPWZ1bmN0aW9uKEspe2Z1bmN0aW9uIEooc2Upe3ZvaWQgMD09PXNlJiYoc2U9W10pO3ZhciBvZT10aGlzLGNlPShzZT1XKFtdLFkobmV3IFNldChzZSkpLCExKSkubGVuZ3RoP3NlLmpvaW4oIiwgIikudHJpbSgpOltOLlNlcnZlclR5cGUuU2FzVml5YSxOLlNlcnZlclR5cGUuU2FzOSxO''@;'; put 'put ''LlNlcnZlclR5cGUuU2FzanNdLmpvaW4oIiwgIikudHJpbSgpO3JldHVybiBjZT1jZS5yZXBsYWNlKC8sXHMoW14sXSopJC8sIiBhbmQgJDEiKSwob2U9Sy5jYWxsKHRoaXMsIkludmFsaWQgc2VydmVyIHR5cGU6IHZhbGlkIG9wdGlvbiIuY29uY2F0KDEhPT1zZS5sZW5ndGg/InMiOiIiLCIg''@;'; put 'put ''IikuY29uY2F0KDEhPT1zZS5sZW5ndGg/ImFyZSI6ImlzIiwiICIpLmNvbmNhdChjZSkpfHx0aGlzKS5uYW1lPSJTZXJ2ZXJUeXBlRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihvZSxKLnByb3RvdHlwZSksb2V9cmV0dXJuIGFlKEosSyksSn0oRXJyb3IpO1EuU2VydmVyVHlwZUVycm9y''@;'; put 'put ''PXRlfSwzOTA2OmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihzZSxvZSxjZSxkZSl7cmV0dXJuIG5ldyhjZXx8KGNlPVByb21pc2UpKShmdW5jdGlvbih2ZSxBZSl7ZnVuY3Rpb24ga2UoVGUpe3RyeXtJZShkZS5uZXh0''@;'; put 'put ''KFRlKSl9Y2F0Y2goTWUpe0FlKE1lKX19ZnVuY3Rpb24gU2UoVGUpe3RyeXtJZShkZS50aHJvdyhUZSkpfWNhdGNoKE1lKXtBZShNZSl9fWZ1bmN0aW9uIEllKFRlKXt2YXIgTWU7VGUuZG9uZT92ZShUZS52YWx1ZSk6KE1lPVRlLnZhbHVlLE1lIGluc3RhbmNlb2YgY2U/TWU6bmV3IGNlKGZ1''@;'; put 'put ''bmN0aW9uKGhlKXtoZShNZSl9KSkudGhlbihrZSxTZSl9SWUoKGRlPWRlLmFwcGx5KHNlLG9lfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZSxkZSx2ZSxBZSxrZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZ2''@;'; put 'put ''ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm4gdmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gQWU9e25leHQ6U2UoMCksdGhyb3c6U2UoMSkscmV0dXJuOlNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlz''@;'; put 'put ''fSksQWU7ZnVuY3Rpb24gU2UoSWUpe3JldHVybiBmdW5jdGlvbihUZSl7cmV0dXJuIGZ1bmN0aW9uKE1lKXtpZihjZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtrZTspdHJ5e2lmKGNlPTEsZGUmJih2ZT0yJk1lWzBdP2RlLnJl''@;'; put 'put ''dHVybjpNZVswXT9kZS50aHJvd3x8KCh2ZT1kZS5yZXR1cm4pJiZ2ZS5jYWxsKGRlKSwwKTpkZS5uZXh0KSYmISh2ZT12ZS5jYWxsKGRlLE1lWzFdKSkuZG9uZSlyZXR1cm4gdmU7c3dpdGNoKGRlPTAsdmUmJihNZT1bMiZNZVswXSx2ZS52YWx1ZV0pLE1lWzBdKXtjYXNlIDA6Y2FzZSAxOnZl''@;'; put 'put ''PU1lO2JyZWFrO2Nhc2UgNDpyZXR1cm4ga2UubGFiZWwrKyx7dmFsdWU6TWVbMV0sZG9uZTohMX07Y2FzZSA1OmtlLmxhYmVsKyssZGU9TWVbMV0sTWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpNZT1rZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHZlPSh2''@;'; put 'put ''ZT1rZS50cnlzKS5sZW5ndGg+MCYmdmVbdmUubGVuZ3RoLTFdKXx8NiE9PU1lWzBdJiYyIT09TWVbMF0pKXtrZT0wO2NvbnRpbnVlfWlmKDM9PT1NZVswXSYmKCF2ZXx8TWVbMV0+dmVbMF0mJk1lWzFdPHZlWzNdKSl7a2UubGFiZWw9TWVbMV07YnJlYWt9aWYoNj09PU1lWzBdJiZrZS5sYWJl''@;'; put 'put ''bDx2ZVsxXSl7a2UubGFiZWw9dmVbMV0sdmU9TWU7YnJlYWt9aWYodmUmJmtlLmxhYmVsPHZlWzJdKXtrZS5sYWJlbD12ZVsyXSxrZS5vcHMucHVzaChNZSk7YnJlYWt9dmVbMl0mJmtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlfU1lPW9lLmNhbGwoc2Usa2UpfWNhdGNoKGhl''@;'; put 'put ''KXtNZT1bNixoZV0sZGU9MH1maW5hbGx5e2NlPXZlPTB9aWYoNSZNZVswXSl0aHJvdyBNZVsxXTtyZXR1cm57dmFsdWU6TWVbMF0/TWVbMV06dm9pZCAwLGRvbmU6ITB9fShbSWUsVGVdKX19fSxZPXRoaXMmJnRoaXMuX19yZWFkfHxmdW5jdGlvbihzZSxvZSl7dmFyIGNlPSJmdW5jdGlvbiI9''@;'; put 'put ''PXR5cGVvZiBTeW1ib2wmJnNlW1N5bWJvbC5pdGVyYXRvcl07aWYoIWNlKXJldHVybiBzZTt2YXIgZGUsdmUsQWU9Y2UuY2FsbChzZSksa2U9W107dHJ5e2Zvcig7KHZvaWQgMD09PW9lfHxvZS0tID4wKSYmIShkZT1BZS5uZXh0KCkpLmRvbmU7KWtlLnB1c2goZGUudmFsdWUpfWNhdGNoKFNl''@;'; put 'put ''KXt2ZT17ZXJyb3I6U2V9fWZpbmFsbHl7dHJ5e2RlJiYhZGUuZG9uZSYmKGNlPUFlLnJldHVybikmJmNlLmNhbGwoQWUpfWZpbmFsbHl7aWYodmUpdGhyb3cgdmUuZXJyb3J9fXJldHVybiBrZX0sVz10aGlzJiZ0aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKHNlLG9lLGNlKXtpZihjZXx8''@;'; put 'put ''Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciBkZSx2ZT0wLEFlPW9lLmxlbmd0aDt2ZTxBZTt2ZSsrKSFkZSYmdmUgaW4gb2V8fChkZXx8KGRlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG9lLDAsdmUpKSxkZVt2ZV09b2VbdmVdKTtyZXR1cm4gc2UuY29uY2F0KGRlfHxBcnJheS5w''@;'; put 'put ''cm90b3R5cGUuc2xpY2UuY2FsbChvZSkpfSxOPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihzZSl7cmV0dXJuIHNlJiZzZS5fX2VzTW9kdWxlP3NlOntkZWZhdWx0OnNlfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudXBk''@;'; put 'put ''YXRlQ3N2PVEuY3JlYXRlQ3N2PVEucmVhZENzdj12b2lkIDA7dmFyIHRlPWooMTU1OSksSz1OKGooNzU2NSkpO1EucmVhZENzdj1mdW5jdGlvbihzZSl7cmV0dXJuIHJlKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24ob2Upe3N3aXRjaChv''@;'; put 'put ''ZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LCgwLHRlLnJlYWRGaWxlKShzZSldO2Nhc2UgMTpyZXR1cm5bMixvZS5zZW50KCkuc3BsaXQoIlxuIikuZmlsdGVyKGZ1bmN0aW9uKGNlKXtyZXR1cm4gY2UubGVuZ3RofSkubWFwKGZ1bmN0aW9uKGNlKXtyZXR1cm4gY2Uuc3BsaXQoIiwiKX0pXX19''@;'; put 'put ''KX0pfSxRLmNyZWF0ZUNzdj1mdW5jdGlvbihzZSxvZSxjZSl7cmV0dXJuIHJlKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGRlO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKHZlKXtzd2l0Y2godmUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gZGU9KDAsSy5kZWZhdWx0KShvZSx7''@;'; put 'put ''aGVhZGVyOjE9PT1vZS5sZW5ndGgsY29sdW1uczpjZX0pLFs0LCgwLHRlLmNyZWF0ZUZpbGUpKHNlLGRlKV07Y2FzZSAxOnJldHVybiB2ZS5zZW50KCksWzJdfX0pfSl9LFEudXBkYXRlQ3N2PWZ1bmN0aW9uKHNlLG9lLGNlLGRlKXtyZXR1cm4gcmUodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVu''@;'; put 'put ''Y3Rpb24oKXt2YXIgdmUsQWUsa2U7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oU2Upe3N3aXRjaChTZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LEooc2Usb2UsY2UsZGUpXTtjYXNlIDE6cmV0dXJuIHZlPVNlLnNlbnQoKSxkZSYmKEFlPTA9PT12ZS5sZW5ndGg/MTp2ZS5sZW5ndGgsKGtlPWNl''@;'; put 'put ''LmZpbmRJbmRleChmdW5jdGlvbihJZSl7cmV0dXJuIEllPT09ZGV9KSk+LTE/b2Uuc3BsaWNlKGtlLDAsQWUpOihjZS5zcGxpY2UoMCwwLGRlKSxvZS5zcGxpY2UoMCwwLEFlKSkpLHZlLnB1c2gob2UpLFs0LCgwLFEuY3JlYXRlQ3N2KShzZSx2ZSxjZSldO2Nhc2UgMjpyZXR1cm4gU2Uuc2Vu''@;'; put 'put ''dCgpLFsyXX19KX0pfTt2YXIgSj1mdW5jdGlvbihzZSxvZSxjZSxkZSl7cmV0dXJuIHJlKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlLEFlLGtlLFNlO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKEllKXtzd2l0Y2goSWUubGFiZWwpe2Nhc2UgMDppZihvZS5sZW5ndGgh''@;'; put 'put ''PT1jZS5sZW5ndGgpe2lmKG9lLmxlbmd0aD5jZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbW9yZSBmaWVsZHMgdGhhbiBwcm92aWRlZCBjb2x1bW5zIik7aWYoIWRlfHxvZS5sZW5ndGgrMSE9PWNlLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImEgcmVj''@;'; put 'put ''b3JkIGNhbiBub3QgaGF2ZSBsZXNzIGZpZWxkcyB0aGFuIHByb3ZpZGVkIGNvbHVtbnMiKX1lbHNlIGlmKGRlJiZjZS5pbmNsdWRlcyhkZSkpdGhyb3cgbmV3IEVycm9yKCJhIHJlY29yZCBjYW4gbm90IGhhdmUgbW9yZSBmaWVsZHMgdGhhbiBwcm92aWRlZCBjb2x1bW5zIik7cmV0dXJuWzQs''@;'; put 'put ''KDAsUS5yZWFkQ3N2KShzZSkuY2F0Y2goZnVuY3Rpb24oVGUpe3JldHVybltdfSldO2Nhc2UgMTppZih2ZT1JZS5zZW50KCksQWU9dmVbMF0pe2lmKGNlLmxlbmd0aD5BZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJudW1iZXIgb2YgcHJvdmlkZWQgY29sdW1ucyBhcmUgZ3JlYXRlciB0aGFu''@;'; put 'put ''IG51bWJlciBvZiBleGlzdGluZyBjb2x1bW5zIik7aWYoY2UubGVuZ3RoPEFlLmxlbmd0aCl7aWYoIWRlfHxjZS5sZW5ndGgrMSE9PUFlLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIm51bWJlciBvZiBwcm92aWRlZCBjb2x1bW5zIGFyZSBsZXNzIHRoYW4gbnVtYmVyIG9mIGV4aXN0aW5nIGNv''@;'; put 'put ''bHVtbnMiKTtpZihrZT1BZS5maW5kSW5kZXgoZnVuY3Rpb24oVGUpe3JldHVybiBUZT09PWRlfSksU2U9VyhbXSxZKGNlKSwhMSksIShrZT4tMSkpdGhyb3cgbmV3IEVycm9yKCJwcm92aWRlZCBjb2x1bW5zIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIGNvbHVtbnMiKTtpZihTZS5zcGxpY2Uo''@;'; put 'put ''a2UsMCxkZSksSlNPTi5zdHJpbmdpZnkoY2UpIT09SlNPTi5zdHJpbmdpZnkoU2UpKXRocm93IG5ldyBFcnJvcigicHJvdmlkZWQgY29sdW1ucyBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBjb2x1bW5zIil9ZWxzZXtpZihKU09OLnN0cmluZ2lmeShjZSkhPT1KU09OLnN0cmluZ2lmeShBZSkp''@;'; put 'put ''dGhyb3cgbmV3IEVycm9yKCJwcm92aWRlZCBjb2x1bW5zIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIGNvbHVtbnMiKTtpZihkZSYmIWNlLmluY2x1ZGVzKGRlKSl0aHJvdyBuZXcgRXJyb3IoImNhbiBub3QgYWRkIG5ldyBpZCB0byBleGlzdGluZyBkYXRhIil9fXJldHVyblsyLHZlXX19KX0p''@;'; put 'put ''fX0sMTU1OTpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oTWUsaGUsTyx6KXt2b2lkIDA9PT16JiYoej1PKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTWUseix7ZW51bWVyYWJsZToh''@;'; put 'put ''MCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaGVbT119fSl9OmZ1bmN0aW9uKE1lLGhlLE8seil7dm9pZCAwPT09eiYmKHo9TyksTWVbel09aGVbT119KSxhZT10aGlzJiZ0aGlzLl9fc2V0TW9kdWxlRGVmYXVsdHx8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oTWUsaGUpe09iamVjdC5kZWZpbmVQ''@;'; put 'put ''cm9wZXJ0eShNZSwiZGVmYXVsdCIse2VudW1lcmFibGU6ITAsdmFsdWU6aGV9KX06ZnVuY3Rpb24oTWUsaGUpe01lLmRlZmF1bHQ9aGV9KSxZPXRoaXMmJnRoaXMuX19pbXBvcnRTdGFyfHxmdW5jdGlvbihNZSl7aWYoTWUmJk1lLl9fZXNNb2R1bGUpcmV0dXJuIE1lO3ZhciBoZT17fTtpZihu''@;'; put 'put ''dWxsIT1NZSlmb3IodmFyIE8gaW4gTWUpImRlZmF1bHQiIT09TyYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE1lLE8pJiZyZShoZSxNZSxPKTtyZXR1cm4gYWUoaGUsTWUpLGhlfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihNZSxoZSxPLHope3JldHVy''@;'; put 'put ''biBuZXcoT3x8KE89UHJvbWlzZSkpKGZ1bmN0aW9uKGVlLG5lKXtmdW5jdGlvbiB4KFQpe3RyeXtWKHoubmV4dChUKSl9Y2F0Y2goUyl7bmUoUyl9fWZ1bmN0aW9uIFAoVCl7dHJ5e1Yoei50aHJvdyhUKSl9Y2F0Y2goUyl7bmUoUyl9fWZ1bmN0aW9uIFYoVCl7dmFyIFM7VC5kb25lP2VlKFQu''@;'; put 'put ''dmFsdWUpOihTPVQudmFsdWUsUyBpbnN0YW5jZW9mIE8/UzpuZXcgTyhmdW5jdGlvbihGKXtGKFMpfSkpLnRoZW4oeCxQKX1WKCh6PXouYXBwbHkoTWUsaGV8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKE1lLGhlKXt2YXIgTyx6LGVlLG5lLHg9''@;'; put 'put ''e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmZWVbMF0pdGhyb3cgZWVbMV07cmV0dXJuIGVlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG5lPXtuZXh0OlAoMCksdGhyb3c6UCgxKSxyZXR1cm46UCgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG5lW1N5bWJvbC5pdGVy''@;'; put 'put ''YXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG5lO2Z1bmN0aW9uIFAoVil7cmV0dXJuIGZ1bmN0aW9uKFQpe3JldHVybiBmdW5jdGlvbihTKXtpZihPKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3g7KXRyeXtpZihPPTEs''@;'; put 'put ''eiYmKGVlPTImU1swXT96LnJldHVybjpTWzBdP3oudGhyb3d8fCgoZWU9ei5yZXR1cm4pJiZlZS5jYWxsKHopLDApOnoubmV4dCkmJiEoZWU9ZWUuY2FsbCh6LFNbMV0pKS5kb25lKXJldHVybiBlZTtzd2l0Y2goej0wLGVlJiYoUz1bMiZTWzBdLGVlLnZhbHVlXSksU1swXSl7Y2FzZSAwOmNh''@;'; put 'put ''c2UgMTplZT1TO2JyZWFrO2Nhc2UgNDpyZXR1cm4geC5sYWJlbCsrLHt2YWx1ZTpTWzFdLGRvbmU6ITF9O2Nhc2UgNTp4LmxhYmVsKyssej1TWzFdLFM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpTPXgub3BzLnBvcCgpLHgudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGVlPShlZT14''@;'; put 'put ''LnRyeXMpLmxlbmd0aD4wJiZlZVtlZS5sZW5ndGgtMV0pfHw2IT09U1swXSYmMiE9PVNbMF0pKXt4PTA7Y29udGludWV9aWYoMz09PVNbMF0mJighZWV8fFNbMV0+ZWVbMF0mJlNbMV08ZWVbM10pKXt4LmxhYmVsPVNbMV07YnJlYWt9aWYoNj09PVNbMF0mJngubGFiZWw8ZWVbMV0pe3gubGFi''@;'; put 'put ''ZWw9ZWVbMV0sZWU9UzticmVha31pZihlZSYmeC5sYWJlbDxlZVsyXSl7eC5sYWJlbD1lZVsyXSx4Lm9wcy5wdXNoKFMpO2JyZWFrfWVlWzJdJiZ4Lm9wcy5wb3AoKSx4LnRyeXMucG9wKCk7Y29udGludWV9Uz1oZS5jYWxsKE1lLHgpfWNhdGNoKEYpe1M9WzYsRl0sej0wfWZpbmFsbHl7Tz1l''@;'; put 'put ''ZT0wfWlmKDUmU1swXSl0aHJvdyBTWzFdO3JldHVybnt2YWx1ZTpTWzBdP1NbMV06dm9pZCAwLGRvbmU6ITB9fShbVixUXSl9fX0sdGU9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKE1lLGhlKXt2YXIgTz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZNZVtTeW1ib2wuaXRlcmF0b3Jd''@;'; put 'put ''O2lmKCFPKXJldHVybiBNZTt2YXIgeixlZSxuZT1PLmNhbGwoTWUpLHg9W107dHJ5e2Zvcig7KHZvaWQgMD09PWhlfHxoZS0tID4wKSYmISh6PW5lLm5leHQoKSkuZG9uZTspeC5wdXNoKHoudmFsdWUpfWNhdGNoKFApe2VlPXtlcnJvcjpQfX1maW5hbGx5e3RyeXt6JiYhei5kb25lJiYoTz1u''@;'; put 'put ''ZS5yZXR1cm4pJiZPLmNhbGwobmUpfWZpbmFsbHl7aWYoZWUpdGhyb3cgZWUuZXJyb3J9fXJldHVybiB4fSxLPXRoaXMmJnRoaXMuX19zcHJlYWRBcnJheXx8ZnVuY3Rpb24oTWUsaGUsTyl7aWYoT3x8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKHZhciB6LGVlPTAsbmU9aGUubGVuZ3RoO2Vl''@;'; put 'put ''PG5lO2VlKyspIXomJmVlIGluIGhlfHwoenx8KHo9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoaGUsMCxlZSkpLHpbZWVdPWhlW2VlXSk7cmV0dXJuIE1lLmNvbmNhdCh6fHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChoZSkpfSxKPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxm''@;'; put 'put ''dW5jdGlvbihNZSl7cmV0dXJuIE1lJiZNZS5fX2VzTW9kdWxlP01lOntkZWZhdWx0Ok1lfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNUZXN0RmlsZT1RLnRlc3RGaWxlUmVnRXhwPVEuY3JlYXRlUmVhZFN0cmVhbT1RLmNyZWF0ZVdyaXRl''@;'; put 'put ''U3RyZWFtPVEuZ2V0UmVhbFBhdGg9US5iYXNlNjRFbmNvZGVGaWxlPVEuYmFzZTY0RW5jb2RlSW1hZ2VGaWxlPVEucGF0aFNlcEVzY2FwZWQ9US5jb3B5PVEubW92ZUZpbGU9US5nZXRSZWxhdGl2ZVBhdGg9US51bmlmeUZpbGVQYXRoPVEuZGVsZXRlRm9sZGVyPVEuZGVsZXRlRmlsZT1RLmNy''@;'; put 'put ''ZWF0ZUZpbGU9US5jcmVhdGVGb2xkZXI9US5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9US5saXN0U3ViRm9sZGVyc0luRm9sZGVyPVEubGlzdEluaUZpbGVzSW5Gb2xkZXI9US5saXN0RmlsZXNJbkZvbGRlcj1RLnJlYWRGaWxlQmluYXJ5PVEucmVhZEZpbGU9US5pc0ZvbGRlcj1R''@;'; put 'put ''LmZvbGRlckV4aXN0cz1RLmZpbGVFeGlzdHM9dm9pZCAwO3ZhciBzZT1KKGooNTY3NCkpLG9lPUooaig5ODQpKSxjZT1KKGooMjUyMCkpLGRlPWooNjI2NiksdmU9WShqKDI5NzUpKTtmdW5jdGlvbiBBZShNZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IE4odGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5hY2Nlc3MoTWUsc2UuZGVmYXVsdC5jb25zdGFudHMuRl9PSykudGhlbihmdW5jdGlvbigpe3JldHVybiEwfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4hMX0pXX0pfSl9ZnVuY3Rpb24ga2UoTWUpe3Jl''@;'; put 'put ''dHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUoTWUpXX0pfSl9ZnVuY3Rpb24gU2UoTWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZGRpcihNZSx7d2l0aEZpbGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oTyl7cmV0dXJuIE8uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiF6LmlzRGlyZWN0b3J5KCl9KS5tYXAoZnVu''@;'; put 'put ''Y3Rpb24oeil7cmV0dXJuIHoubmFtZX0pfSldfSl9KX1mdW5jdGlvbiBJZShNZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5ta2RpcihNZSx7cmVjdXJzaXZlOiEw''@;'; put 'put ''fSldfSl9KX1mdW5jdGlvbiBUZShNZSxoZSxPKXt2b2lkIDA9PT1oZSYmKGhlPWNlLmRlZmF1bHQuc2VwKSx2b2lkIDA9PT1PJiYoTz0iLyIpO3ZhciB6PXt1bml4OiIvIix3aW46IlxcIn0sZWU9T2JqZWN0LmtleXMoeikuZmluZChmdW5jdGlvbih4KXtyZXR1cm4gelt4XT09PWhlfSk7aWYo''@;'; put 'put ''ZWUpe3ZhciBuZT16W09iamVjdC5rZXlzKHopLmZpbmQoZnVuY3Rpb24oeCl7cmV0dXJuIHghPT1lZX0pXTtyZXR1cm4gZWU9eltlZV0sTWUuc3BsaXQobmUpLmpvaW4oZWUpfXJldHVybiBNZS5zcGxpdChPKS5qb2luKGhlKX1RLmZpbGVFeGlzdHM9ZnVuY3Rpb24oTWUpe3JldHVybiBXKHRo''@;'; put 'put ''aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMuYWNjZXNzKE1lLHNlLmRlZmF1bHQuY29uc3RhbnRzLkZfT0spLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuITF9KV19KX0pfSxRLmZvbGRlckV4aXN0cz1BZSxRLmlzRm9sZGVyPWZ1bmN0aW9uKE1lKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm5bMixzZS5kZWZhdWx0LnByb21pc2VzLmxzdGF0KE1lKS50''@;'; put 'put ''aGVuKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlzRGlyZWN0b3J5KCl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSldfSl9KX0sUS5yZWFkRmlsZT1mdW5jdGlvbihNZSxoZSl7cmV0dXJuIHZvaWQgMD09PWhlJiYoaGU9InV0ZjgiKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiBOKHRoaXMsZnVuY3Rpb24oTyl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5yZWFkRmlsZShNZSxoZSldfSl9KX0sUS5yZWFkRmlsZUJpbmFyeT1rZSxRLmxpc3RGaWxlc0luRm9sZGVyPVNlLFEubGlzdEluaUZpbGVzSW5Gb2xkZXI9ZnVuY3Rpb24oTWUpe3JldHVybiBX''@;'; put 'put ''KHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFNlKE1lKV07Y2FzZSAxOnJldHVyblsyLGhlLnNlbnQoKS5maWx0ZXIoZnVuY3Rpb24oTyl7cmV0dXJuIE8uZW5kc1dpdGgoIi5p''@;'; put 'put ''bmkiKX0pXX19KX0pfSxRLmxpc3RTdWJGb2xkZXJzSW5Gb2xkZXI9ZnVuY3Rpb24oTWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZGRpcihNZSx7d2l0aEZp''@;'; put 'put ''bGVUeXBlczohMH0pLnRoZW4oZnVuY3Rpb24oTyl7cmV0dXJuIE8uZmlsdGVyKGZ1bmN0aW9uKHope3JldHVybiB6LmlzRGlyZWN0b3J5KCl9KS5tYXAoZnVuY3Rpb24oeil7cmV0dXJuIHoubmFtZX0pfSldfSl9KX0sUS5saXN0RmlsZXNBbmRTdWJGb2xkZXJzSW5Gb2xkZXI9ZnVuY3Rpb24g''@;'; put 'put ''TWUoaGUsTyl7cmV0dXJuIHZvaWQgMD09PU8mJihPPSEwKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihlZSl7cmV0dXJuWzIsc2UuZGVmYXVsdC5wcm9taXNlcy5yZWFkZGlyKGhlLHt3aXRoRmlsZVR5cGVzOiEwfSku''@;'; put 'put ''dGhlbihmdW5jdGlvbihuZSl7cmV0dXJuIFcoeix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHgsUD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oVil7c3dpdGNoKFYubGFiZWwpe2Nhc2UgMDpyZXR1cm4gTyYmbmUuZmlsdGVyKGZ1bmN0aW9uKFQpe3JldHVybiBULmlzRGlyZWN0''@;'; put 'put ''b3J5KCl9KS5sZW5ndGg/KHg9W10sWzQsKDAsZGUuYXN5bmNGb3JFYWNoKShuZS5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0dXJuIFQuaXNEaXJlY3RvcnkoKX0pLGZ1bmN0aW9uKFQpe3JldHVybiBXKFAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBTLEYseWU7cmV0dXJuIE4odGhpcyxm''@;'; put 'put ''dW5jdGlvbihDZSl7c3dpdGNoKENlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIEY9Y2UuZGVmYXVsdC5qb2luKGhlLFM9VC5uYW1lKSx5ZT1bSyhbXSx0ZSh4KSwhMSldLFs0LE1lKEYpXTtjYXNlIDE6cmV0dXJuIHg9Sy5hcHBseSh2b2lkIDAseWUuY29uY2F0KFt0ZS5hcHBseSh2b2lkIDAsW0Nl''@;'; put 'put ''LnNlbnQoKS5tYXAoZnVuY3Rpb24oRGUpe3JldHVybiBjZS5kZWZhdWx0LmpvaW4oUyxEZSl9KV0pLCExXSkpLFsyXX19KX0pfSldKTpbMywyXTtjYXNlIDE6cmV0dXJuIFYuc2VudCgpLFsyLEsoSyhbXSx0ZShuZS5maWx0ZXIoZnVuY3Rpb24oVCl7cmV0dXJuIVQuaXNEaXJlY3RvcnkoKX0p''@;'; put 'put ''Lm1hcChmdW5jdGlvbihUKXtyZXR1cm4gVC5uYW1lfSkpLCExKSx0ZSh4KSwhMSldO2Nhc2UgMjpyZXR1cm5bMixuZS5tYXAoZnVuY3Rpb24oVCl7cmV0dXJuIFQubmFtZX0pXX19KX0pfSldfSl9KX0sUS5jcmVhdGVGb2xkZXI9SWUsUS5jcmVhdGVGaWxlPWZ1bmN0aW9uKE1lLGhlLE8pe3Jl''@;'; put 'put ''dHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LGVlO3JldHVybiBOKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybihNZT1UZShNZSkpLnNwbGl0KGNlLmRlZmF1bHQuc2VwKS5sZW5ndGg+MT8oKHo9TWUuc3BsaXQoY2UuZGVm''@;'; put 'put ''YXVsdC5zZXApKS5wb3AoKSxbNCxBZShlZT16LmpvaW4oY2UuZGVmYXVsdC5zZXApKV0pOlszLDNdO2Nhc2UgMTpyZXR1cm4gbmUuc2VudCgpP1szLDNdOls0LEllKGVlKV07Y2FzZSAyOm5lLnNlbnQoKSxuZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMixzZS5kZWZhdWx0LnByb21pc2VzLndy''@;'; put 'put ''aXRlRmlsZShNZSxoZSxPKV19fSl9KX0sUS5kZWxldGVGaWxlPWZ1bmN0aW9uKE1lKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm5bMixzZS5kZWZhdWx0LnJlbW92ZShNZSldfSl9KX0sUS5kZWxldGVGb2xk''@;'; put 'put ''ZXI9ZnVuY3Rpb24oTWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKE8seil7KDAsb2UuZGVmYXVsdCkoTWUse30sZnVuY3Rpb24oZWUpe3JldHVybiBlZT96KGVl''@;'; put 'put ''KTpPKCl9KX0pXX0pfSl9LFEudW5pZnlGaWxlUGF0aD1UZSxRLmdldFJlbGF0aXZlUGF0aD1mdW5jdGlvbihNZSxoZSl7dmFyIE89TWUuc3BsaXQoY2UuZGVmYXVsdC5zZXApLHo9aGUuc3BsaXQoY2UuZGVmYXVsdC5zZXApLGVlPVtdLG5lPVtdO08uZm9yRWFjaChmdW5jdGlvbihULFMpe3Zv''@;'; put 'put ''aWQgMCE9PXpbU10mJk9bU109PT16W1NdP2VlLnB1c2goVCk6VCYmbmUucHVzaChUKX0pO3ZhciB4PWVlLmpvaW4oY2UuZGVmYXVsdC5zZXApLFA9bmV3IFJlZ0V4cCgiXiIuY29uY2F0KGNlLmRlZmF1bHQuc2VwLnJlcGxhY2UoL1xcL2csIlxcXFwiKSkpLFY9bmV3IFJlZ0V4cCgiIi5jb25j''@;'; put 'put ''YXQoY2UuZGVmYXVsdC5zZXAucmVwbGFjZSgvXFwvZywiXFxcXCIpLCIkIikpO3JldHVybihuZS5sZW5ndGg/Ii4uIi5jb25jYXQoY2UuZGVmYXVsdC5zZXApLnJlcGVhdChuZS5sZW5ndGgpOiIuIi5jb25jYXQoY2UuZGVmYXVsdC5zZXApKStoZS5yZXBsYWNlKHgsIiIpLnJlcGxhY2UoUCwi''@;'; put 'put ''IikucmVwbGFjZShWLCIiKX0sUS5tb3ZlRmlsZT1mdW5jdGlvbihNZSxoZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihPKXtyZXR1cm5bMixzZS5kZWZhdWx0LnByb21pc2VzLnJlbmFtZShNZSxoZSldfSl9KX0sUS5jb3B5''@;'; put 'put ''PWZ1bmN0aW9uKE1lLGhlKXtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKE8pe3JldHVyblsyLHNlLmRlZmF1bHQuY29weShNZSxoZSldfSl9KX0sUS5wYXRoU2VwRXNjYXBlZD1jZS5kZWZhdWx0LnNlcC5yZXBsYWNlKC9cXC9n''@;'; put 'put ''LCJcXFxcIiksUS5iYXNlNjRFbmNvZGVJbWFnZUZpbGU9ZnVuY3Rpb24oTWUpe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLGtlKE1lKS50aGVuKGZ1bmN0aW9uKE8pe3ZhciB6PWNlLmRlZmF1bHQuZXh0''@;'; put 'put ''bmFtZShNZSkuc3Vic3RyKDEpfHwicG5nIjtyZXR1cm4ic3ZnIj09PXomJih6PSJzdmcreG1sIiksImRhdGE6aW1hZ2UvIit6KyI7YmFzZTY0LCIrTy50b1N0cmluZygiYmFzZTY0Iil9KV19KX0pfSxRLmJhc2U2NEVuY29kZUZpbGU9ZnVuY3Rpb24oTWUpe3JldHVybiBXKHRoaXMsdm9pZCAw''@;'; put 'put ''LHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24oaGUpe3JldHVyblsyLHNlLmRlZmF1bHQucHJvbWlzZXMucmVhZEZpbGUoTWUse2VuY29kaW5nOiJiYXNlNjQifSldfSl9KX0sUS5nZXRSZWFsUGF0aD1mdW5jdGlvbihNZSl7cmV0dXJuIHNlLmRlZmF1bHQucmVhbHBh''@;'; put 'put ''dGhTeW5jKE1lKX0sUS5jcmVhdGVXcml0ZVN0cmVhbT1mdW5jdGlvbihNZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdmUuZmlsZUV4aXN0cyhNZSldO2Nh''@;'; put 'put ''c2UgMTpyZXR1cm4gaGUuc2VudCgpP1syLHNlLmRlZmF1bHQuY3JlYXRlV3JpdGVTdHJlYW0oTWUse2ZsYWdzOiJhIn0pXTpbNCx2ZS5jcmVhdGVGaWxlKE1lLCIiKV07Y2FzZSAyOnJldHVybiBoZS5zZW50KCksWzIsc2UuZGVmYXVsdC5jcmVhdGVXcml0ZVN0cmVhbShNZSx7ZmxhZ3M6ImEi''@;'; put 'put ''fSldfX0pfSl9LFEuY3JlYXRlUmVhZFN0cmVhbT1mdW5jdGlvbihNZSl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKGhlKXtyZXR1cm5bMixzZS5kZWZhdWx0LmNyZWF0ZVJlYWRTdHJlYW0oTWUpXX0pfSl9LFEudGVzdEZp''@;'; put 'put ''bGVSZWdFeHA9L1wudGVzdFwuKFxkK1wuKT9zYXMkL2ksUS5pc1Rlc3RGaWxlPWZ1bmN0aW9uKE1lKXtyZXR1cm4gUS50ZXN0RmlsZVJlZ0V4cC50ZXN0KE1lKX19LDU2MjY6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2ltcG9ydERlZmF1bHR8fGZ1''@;'; put 'put ''bmN0aW9uKFcpe3JldHVybiBXJiZXLl9fZXNNb2R1bGU/Vzp7ZGVmYXVsdDpXfX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2V0QWJzb2x1dGVQYXRoPXZvaWQgMDt2YXIgYWU9cmUoaigyNTIwKSksWT1yZShqKDc0MzUpKTtRLmdldEFic29s''@;'; put 'put ''dXRlUGF0aD1mdW5jdGlvbihXLE4pe3JldHVybiBhZS5kZWZhdWx0LmlzQWJzb2x1dGUoVyl8fC9efi8uZXhlYyhXKT9hZS5kZWZhdWx0Lm5vcm1hbGl6ZShXLnJlcGxhY2UoL15+LyxZLmRlZmF1bHQuaG9tZWRpcigpKSk6YWUuZGVmYXVsdC5qb2luKE4sVyl9fSwyOTc1OmZ1bmN0aW9uKFUs''@;'; put 'put ''USxqKXsidXNlIHN0cmljdCI7dmFyIHJlPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihOLHRlLEssSil7dm9pZCAwPT09SiYmKEo9SyksT2JqZWN0LmRlZmluZVByb3BlcnR5KE4sSix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGVbS119fSl9OmZ1bmN0aW9uKE4sdGUsSyxKKXt2b2lkIDA9PT1KJiYoSj1LKSxOW0pdPXRlW0tdfSksYWU9dGhpcyYmdGhpcy5fX2V4cG9ydFN0YXJ8fGZ1bmN0aW9uKE4sdGUpe2Zvcih2YXIgSyBpbiBOKSJkZWZhdWx0Ij09PUt8fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVy''@;'; put 'put ''dHkuY2FsbCh0ZSxLKXx8cmUodGUsTixLKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucmVhZENzdj1RLmNyZWF0ZUNzdj1RLnVwZGF0ZUNzdj1RLnRlc3RGaWxlUmVnRXhwPVEuaXNUZXN0RmlsZT1RLmdldFJlYWxQYXRoPVEuYmFzZTY0RW5j''@;'; put 'put ''b2RlRmlsZT1RLmJhc2U2NEVuY29kZUltYWdlRmlsZT1RLmNvcHk9US5wYXRoU2VwRXNjYXBlZD1RLm1vdmVGaWxlPVEudW5pZnlGaWxlUGF0aD1RLmdldFJlbGF0aXZlUGF0aD1RLmRlbGV0ZUZvbGRlcj1RLmRlbGV0ZUZpbGU9US5jcmVhdGVXcml0ZVN0cmVhbT1RLmNyZWF0ZVJlYWRTdHJl''@;'; put 'put ''YW09US5jcmVhdGVGb2xkZXI9US5jcmVhdGVGaWxlPVEubGlzdEZpbGVzQW5kU3ViRm9sZGVyc0luRm9sZGVyPVEubGlzdFN1YkZvbGRlcnNJbkZvbGRlcj1RLmxpc3RJbmlGaWxlc0luRm9sZGVyPVEubGlzdEZpbGVzSW5Gb2xkZXI9US5yZWFkRmlsZUJpbmFyeT1RLnJlYWRGaWxlPVEuaXNG''@;'; put 'put ''b2xkZXI9US5mb2xkZXJFeGlzdHM9US5maWxlRXhpc3RzPXZvaWQgMDt2YXIgWT1qKDE1NTkpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJmaWxlRXhpc3RzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5maWxlRXhpc3RzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShRLCJmb2xkZXJFeGlzdHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmZvbGRlckV4aXN0c319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiaXNGb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmlzRm9sZGVyfX0pLE9iamVj''@;'; put 'put ''dC5kZWZpbmVQcm9wZXJ0eShRLCJyZWFkRmlsZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkucmVhZEZpbGV9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInJlYWRGaWxlQmluYXJ5Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5yZWFk''@;'; put 'put ''RmlsZUJpbmFyeX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwibGlzdEZpbGVzSW5Gb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmxpc3RGaWxlc0luRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJsaXN0SW5pRmlsZXNJbkZvbGRlciIs''@;'; put 'put ''e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkubGlzdEluaUZpbGVzSW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImxpc3RTdWJGb2xkZXJzSW5Gb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmxpc3RTdWJGb2xkZXJz''@;'; put 'put ''SW5Gb2xkZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImxpc3RGaWxlc0FuZFN1YkZvbGRlcnNJbkZvbGRlciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkubGlzdEZpbGVzQW5kU3ViRm9sZGVyc0luRm9sZGVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShR''@;'; put 'put ''LCJjcmVhdGVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5jcmVhdGVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJjcmVhdGVGb2xkZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmNyZWF0ZUZvbGRlcn19KSxPYmpl''@;'; put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoUSwiY3JlYXRlUmVhZFN0cmVhbSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuY3JlYXRlUmVhZFN0cmVhbX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiY3JlYXRlV3JpdGVTdHJlYW0iLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiBZLmNyZWF0ZVdyaXRlU3RyZWFtfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJkZWxldGVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5kZWxldGVGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJkZWxldGVGb2xkZXIi''@;'; put 'put ''LHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmRlbGV0ZUZvbGRlcn19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiZ2V0UmVsYXRpdmVQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5nZXRSZWxhdGl2ZVBhdGh9fSksT2JqZWN0LmRl''@;'; put 'put ''ZmluZVByb3BlcnR5KFEsInVuaWZ5RmlsZVBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLnVuaWZ5RmlsZVBhdGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIm1vdmVGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5tb3Zl''@;'; put 'put ''RmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwicGF0aFNlcEVzY2FwZWQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLnBhdGhTZXBFc2NhcGVkfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJjb3B5Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gWS5jb3B5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJiYXNlNjRFbmNvZGVJbWFnZUZpbGUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmJhc2U2NEVuY29kZUltYWdlRmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiYmFzZTY0RW5j''@;'; put 'put ''b2RlRmlsZSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuYmFzZTY0RW5jb2RlRmlsZX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiZ2V0UmVhbFBhdGgiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmdldFJlYWxQYXRofX0pLE9iamVj''@;'; put 'put ''dC5kZWZpbmVQcm9wZXJ0eShRLCJpc1Rlc3RGaWxlIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5pc1Rlc3RGaWxlfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ0ZXN0RmlsZVJlZ0V4cCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFku''@;'; put 'put ''dGVzdEZpbGVSZWdFeHB9fSk7dmFyIFc9aigzOTA2KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwidXBkYXRlQ3N2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVy51cGRhdGVDc3Z9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNyZWF0ZUNzdiIse2VudW1lcmFi''@;'; put 'put ''bGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFcuY3JlYXRlQ3N2fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJyZWFkQ3N2Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVy5yZWFkQ3N2fX0pLGFlKGooNTYyNiksUSl9LDI3Nzc6KFUsUSxqKT0+eyJ1c2Ugc3Ry''@;'; put 'put ''aWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5uZXdMaW5lPVEuY2FwaXRhbGl6ZUZpcnN0Q2hhcj1RLnNhbml0aXplU3BlY2lhbENoYXJzPVEucGFkV2l0aE51bWJlcj12b2lkIDA7dmFyIHJlPWooNTMwNik7T2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KFEsInBhZFdpdGhOdW1iZXIiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByZS5wYWRXaXRoTnVtYmVyfX0pO3ZhciBhZT1qKDkwMTcpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJzYW5pdGl6ZVNwZWNpYWxDaGFycyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIGFlLnNhbml0aXplU3BlY2lhbENoYXJzfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJjYXBpdGFsaXplRmlyc3RDaGFyIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWUuY2FwaXRhbGl6ZUZpcnN0Q2hhcn19KTt2YXIgWT1qKDE2MjgpO09i''@;'; put 'put ''amVjdC5kZWZpbmVQcm9wZXJ0eShRLCJuZXdMaW5lIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5uZXdMaW5lfX0pfSw1MzA2OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnBhZFdp''@;'; put 'put ''dGhOdW1iZXI9dm9pZCAwLFEucGFkV2l0aE51bWJlcj1mdW5jdGlvbihqLHJlKXtyZXR1cm4gdm9pZCAwPT09cmUmJihyZT0wKSxqPjk/ajoiIi5jb25jYXQocmUpLmNvbmNhdChqKX19LDE2Mjg6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KTtPYmplY3QuZGVmaW5lUHJv''@;'; put 'put ''cGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5uZXdMaW5lPXZvaWQgMCxRLm5ld0xpbmU9ZnVuY3Rpb24oKXtyZXR1cm4id2luMzIiPT09cmUucGxhdGZvcm0/IlxcclxcbiI6IlxcbiJ9fSw5MDE3OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShR''@;'; put 'put ''LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmNhcGl0YWxpemVGaXJzdENoYXI9US5zYW5pdGl6ZVNwZWNpYWxDaGFycz12b2lkIDAsUS5zYW5pdGl6ZVNwZWNpYWxDaGFycz1mdW5jdGlvbihqKXtyZXR1cm4gai5yZXBsYWNlKC9bXHUwMDFiXHUwMDliXVtbKCkjOz9dKig/OlswLTldezEs''@;'; put 'put ''NH0oPzo7WzAtOV17MCw0fSkqKT9bMC05QS1PUlpjZi1ucXJ5PT48XS9nLCIiKX0sUS5jYXBpdGFsaXplRmlyc3RDaGFyPWZ1bmN0aW9uKGope3JldHVybiBqLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2ouc2xpY2UoMSl9fSw2NDY3OmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFy''@;'; put 'put ''IHJlPXRoaXMmJnRoaXMuX19pbXBvcnREZWZhdWx0fHxmdW5jdGlvbihZKXtyZXR1cm4gWSYmWS5fX2VzTW9kdWxlP1k6e2RlZmF1bHQ6WX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmlzU3BlY2lhbE1pc3Npbmc9US5jaG9pY2VWYWxpZGF0''@;'; put 'put ''b3I9US5jb25maXJtYXRpb25WYWxpZGF0b3I9US51cmxWYWxpZGF0b3I9dm9pZCAwO3ZhciBhZT1yZShqKDQ4MSkpO1EudXJsVmFsaWRhdG9yPWZ1bmN0aW9uKFksVyl7cmV0dXJuISFhZS5kZWZhdWx0LmlzSHR0cFVyaShZKXx8ISFhZS5kZWZhdWx0LmlzSHR0cHNVcmkoWSl8fCIiPT09WXx8''@;'; put 'put ''V30sUS5jb25maXJtYXRpb25WYWxpZGF0b3I9ZnVuY3Rpb24oWSl7cmV0dXJuITA9PT1ZfHwhMT09PVl9LFEuY2hvaWNlVmFsaWRhdG9yPWZ1bmN0aW9uKFksVyxOKXtyZXR1cm4gWT4wJiZZPD1XfHxOfSxRLmlzU3BlY2lhbE1pc3Npbmc9ZnVuY3Rpb24oWSl7cmV0dXJuKCJzdHJpbmciIT10''@;'; put 'put ''eXBlb2YgWXx8IVkuaW5jbHVkZXMoIi4uIikpJiZuZXcgUmVnRXhwKCJeKFxcLik/W2Etel8uXXsxfSQiLCJpIikudGVzdChZKX19LDc3NTc6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5nZW5lcmF0ZVRp''@;'; put 'put ''bWVzdGFtcD1RLnRpbWVzdGFtcFRvWVlZWU1NRERISE1NU1M9dm9pZCAwO3ZhciByZT1qKDEzMDIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ0aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcmUudGltZXN0YW1wVG9ZWVlZ''@;'; put 'put ''TU1EREhITU1TU319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiZ2VuZXJhdGVUaW1lc3RhbXAiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiByZS5nZW5lcmF0ZVRpbWVzdGFtcH19KX0sMTMwMjooVSxRLGopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9w''@;'; put 'put ''ZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdlbmVyYXRlVGltZXN0YW1wPVEudGltZXN0YW1wVG9ZWVlZTU1EREhITU1TUz12b2lkIDA7dmFyIHJlPWooMjc3Nyk7US50aW1lc3RhbXBUb1lZWVlNTURESEhNTVNTPWZ1bmN0aW9uKGFlKXt2b2lkIDA9PT1hZSYmKGFlPURhdGUu''@;'; put 'put ''bm93KCkpO3ZhciBZPW5ldyBEYXRlKGFlKTtyZXR1cm5bWS5nZXRGdWxsWWVhcigpLCgwLHJlLnBhZFdpdGhOdW1iZXIpKFkuZ2V0TW9udGgoKSsxKSwoMCxyZS5wYWRXaXRoTnVtYmVyKShZLmdldERhdGUoKSldLmpvaW4oIi8iKSsiICIrWygwLHJlLnBhZFdpdGhOdW1iZXIpKFkuZ2V0SG91''@;'; put 'put ''cnMoKSksKDAscmUucGFkV2l0aE51bWJlcikoWS5nZXRNaW51dGVzKCkpLCgwLHJlLnBhZFdpdGhOdW1iZXIpKFkuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpfSxRLmdlbmVyYXRlVGltZXN0YW1wPWZ1bmN0aW9uKGFlLFkpe3ZvaWQgMD09PWFlJiYoYWU9IiIpO3ZhciBXPW5ldyBEYXRlLE49''@;'; put 'put ''W1cuZ2V0VVRDRnVsbFllYXIoKSxXLmdldFVUQ01vbnRoKCkrMSxXLmdldFVUQ0RhdGUoKSxXLmdldFVUQ0hvdXJzKCksVy5nZXRVVENNaW51dGVzKCksVy5nZXRVVENTZWNvbmRzKCldO3JldHVybiBOPU4ubWFwKGZ1bmN0aW9uKHRlKXtyZXR1cm4oMCxyZS5wYWRXaXRoTnVtYmVyKSh0ZSl9''@;'; put 'put ''KSxZJiZhZSYmWTxOLmxlbmd0aCYmWT49MCYmTi5zcGxpY2UoWSwwLGFlKSxOLmpvaW4oWT8iIjphZSl9fSw4MjM5OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sMjQyNzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtP''@;'; put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDE4OTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDM2OTI6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw2OTM5OihVLFEpPT57InVzZSBzdHJpY3QiO3ZhciBqO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLk1lbWJlclR5cGU9dm9pZCAwLChqPVEuTWVtYmVyVHlwZXx8KFEuTWVtYmVyVHlw''@;'; put 'put ''ZT17fSkpLnNlcnZpY2U9InNlcnZpY2UiLGouZmlsZT0iZmlsZSIsai5mb2xkZXI9ImZvbGRlciJ9LDUxNjU6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSwzOTAwOmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmlj''@;'; put 'put ''dCI7dmFyIHJlPXRoaXMmJnRoaXMuX19jcmVhdGVCaW5kaW5nfHwoT2JqZWN0LmNyZWF0ZT9mdW5jdGlvbihZLFcsTix0ZSl7dm9pZCAwPT09dGUmJih0ZT1OKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSx0ZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KX06''@;'; put 'put ''ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9TiksWVt0ZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4p''@;'; put 'put ''fHxyZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShqKDgyMzkpLFEpLGFlKGooMjQyNyksUSksYWUoaigxODkpLFEpLGFlKGooMzY5MiksUSksYWUoaig2OTM5KSxRKSxhZShqKDUxNjUpLFEpLGFlKGooNDA2OSksUSksYWUoaig4''@;'; put 'put ''OTMyKSxRKSxhZShqKDQpLFEpLGFlKGooMjAxNSksUSksYWUoaig4NTE1KSxRKSxhZShqKDUzMTMpLFEpLGFlKGooODk3OSksUSl9LDQwNjk6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNNYWNyb1ZhcnM9''@;'; put 'put ''dm9pZCAwLFEuaXNNYWNyb1ZhcnM9ZnVuY3Rpb24oail7cmV0dXJuIGomJiJvYmplY3QiPT10eXBlb2Ygai5tYWNyb1ZhcnMmJiFBcnJheS5pc0FycmF5KGoubWFjcm9WYXJzKX19LDg5MzI6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUi''@;'; put 'put ''LHt2YWx1ZTohMH0pfSw0OihVLFEpPT57InVzZSBzdHJpY3QiO3ZhciBqO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNBU0pzRmlsZVR5cGU9dm9pZCAwLChqPVEuU0FTSnNGaWxlVHlwZXx8KFEuU0FTSnNGaWxlVHlwZT17fSkpLnNlcnZpY2U9''@;'; put 'put ''IlNlcnZpY2UiLGouam9iPSJKb2IiLGoudGVzdD0iVGVzdCIsai5maWxlPSJGaWxlIn0sMjAxNTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDg1MTU6KFUsUSk9PnsidXNlIHN0cmljdCI7dmFyIGo7T2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2VydmVyVHlwZT12b2lkIDAsKGo9US5TZXJ2ZXJUeXBlfHwoUS5TZXJ2ZXJUeXBlPXt9KSkuU2FzVml5YT0iU0FTVklZQSIsai5TYXM5PSJTQVM5IixqLlNhc2pzPSJTQVNKUyJ9LDUzMTM6KFUsUSk9PnsidXNl''@;'; put 'put ''IHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw4OTc5OihVLFEsaik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuVGFyZ2V0PXZvaWQgMDt2YXIgcmU9aig4NTE1''@;'; put 'put ''KSxhZT1qKDY3ODEpLFk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBXKE4pe3RoaXMuX3NlcnZlclR5cGU9cmUuU2VydmVyVHlwZS5TYXNWaXlhO3RyeXtpZighTil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGFyZ2V0OiBJbnB1dCBKU09OIGlzIG51bGwgb3IgdW5kZWZpbmVkLiIpO3RoaXMuX25h''@;'; put 'put ''bWU9KDAsYWUudmFsaWRhdGVUYXJnZXROYW1lKShOLm5hbWUpLHRoaXMuX3NlcnZlclVybD0oMCxhZS52YWxpZGF0ZVNlcnZlclVybCkoTi5zZXJ2ZXJVcmwpLHRoaXMuX3NlcnZlclR5cGU9KDAsYWUudmFsaWRhdGVTZXJ2ZXJUeXBlKShOLnNlcnZlclR5cGUpLHRoaXMuX2h0dHBzQWdlbnRP''@;'; put 'put ''cHRpb25zPSgwLGFlLnZhbGlkYXRlSHR0cHNBZ2VudE9wdGlvbnMpKE4uaHR0cHNBZ2VudE9wdGlvbnMpLHRoaXMuX2FwcExvYz0oMCxhZS52YWxpZGF0ZUFwcExvYykoTi5hcHBMb2MpLHRoaXMuX2NvbnRleHROYW1lPSgwLGFlLnZhbGlkYXRlQ29udGV4dE5hbWUpKE4uY29udGV4dE5hbWUs''@;'; put 'put ''dGhpcy5fc2VydmVyVHlwZSksdGhpcy5fc2VydmVyTmFtZT0oMCxhZS52YWxpZGF0ZVNlcnZlck5hbWUpKE4uc2VydmVyTmFtZSx0aGlzLl9zZXJ2ZXJUeXBlKSx0aGlzLl9zeW5jRm9sZGVyPSgwLGFlLnZhbGlkYXRlU3luY0ZvbGRlcikoTi5zeW5jRm9sZGVyKSx0aGlzLl9yZXBvc2l0b3J5''@;'; put 'put ''TmFtZT0oMCxhZS52YWxpZGF0ZVJlcG9zaXRvcnlOYW1lKShOLnJlcG9zaXRvcnlOYW1lLHRoaXMuX3NlcnZlclR5cGUpLE4uZG9jQ29uZmlnJiYodGhpcy5fZG9jQ29uZmlnPSgwLGFlLnZhbGlkYXRlRG9jQ29uZmlnKShOLmRvY0NvbmZpZykpLE4uYXV0aENvbmZpZyYmKHRoaXMuX2F1dGhD''@;'; put 'put ''b25maWc9KDAsYWUudmFsaWRhdGVBdXRoQ29uZmlnKShOLmF1dGhDb25maWcpKSxOLmF1dGhDb25maWdTYXM5JiYodGhpcy5fYXV0aENvbmZpZ1Nhczk9KDAsYWUudmFsaWRhdGVBdXRoQ29uZmlnU2FzOSkoTi5hdXRoQ29uZmlnU2FzOSkpLE4uYnVpbGRDb25maWcmJih0aGlzLl9idWlsZENv''@;'; put 'put ''bmZpZz0oMCxhZS52YWxpZGF0ZUJ1aWxkQ29uZmlnKShOLmJ1aWxkQ29uZmlnLHRoaXMuX25hbWUpKSx0aGlzLl9kZXBsb3lDb25maWc9KDAsYWUudmFsaWRhdGVEZXBsb3lDb25maWcpKE4uZGVwbG95Q29uZmlnP04uZGVwbG95Q29uZmlnOntkZXBsb3lTZXJ2aWNlUGFjazohMCxkZXBsb3lT''@;'; put 'put ''Y3JpcHRzOltdfSksTi5zZXJ2aWNlQ29uZmlnJiYodGhpcy5fc2VydmljZUNvbmZpZz0oMCxhZS52YWxpZGF0ZVNlcnZpY2VDb25maWcpKE4uc2VydmljZUNvbmZpZykpLE4uam9iQ29uZmlnJiYodGhpcy5fam9iQ29uZmlnPSgwLGFlLnZhbGlkYXRlSm9iQ29uZmlnKShOLmpvYkNvbmZpZykp''@;'; put 'put ''LE4uc3RyZWFtQ29uZmlnJiYodGhpcy5fc3RyZWFtQ29uZmlnPSgwLGFlLnZhbGlkYXRlU3RyZWFtQ29uZmlnKShOLnN0cmVhbUNvbmZpZykpLE4udGVzdENvbmZpZyYmKHRoaXMuX3Rlc3RDb25maWc9KDAsYWUudmFsaWRhdGVUZXN0Q29uZmlnKShOLnRlc3RDb25maWcpKSxOLm1hY3JvRm9s''@;'; put 'put ''ZGVycyYmTi5tYWNyb0ZvbGRlcnMubGVuZ3RoJiYodGhpcy5fbWFjcm9Gb2xkZXJzPU4ubWFjcm9Gb2xkZXJzKSxOLnByb2dyYW1Gb2xkZXJzJiZOLnByb2dyYW1Gb2xkZXJzLmxlbmd0aCYmKHRoaXMuX3Byb2dyYW1Gb2xkZXJzPU4ucHJvZ3JhbUZvbGRlcnMpLE4uYmluYXJ5Rm9sZGVycyYm''@;'; put 'put ''Ti5iaW5hcnlGb2xkZXJzLmxlbmd0aCYmKHRoaXMuX2JpbmFyeUZvbGRlcnM9Ti5iaW5hcnlGb2xkZXJzKX1jYXRjaCh0ZSl7dGhyb3cgbmV3IEVycm9yKCJFcnJvciBwYXJzaW5nIHRhcmdldDogIi5jb25jYXQodGUubWVzc2FnZSkpfX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KFcu''@;'; put 'put ''cHJvdG90eXBlLCJuYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25hbWV9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJzZXJ2ZXJVcmwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VydmVy''@;'; put 'put ''VXJsfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwic2VydmVyVHlwZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2ZXJUeXBlfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiaHR0cHNBZ2VudE9wdGlvbnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5faHR0cHNBZ2VudE9wdGlvbnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJhcHBM''@;'; put 'put ''b2MiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwTG9jfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiZG9jQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RvY0NvbmZpZ30sZW51bWVy''@;'; put 'put ''YWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsImF1dGhDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXV0aENvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoVy5wcm90b3R5cGUsImF1dGhDb25maWdTYXM5Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F1dGhDb25maWdTYXM5fSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwiYnVpbGRDb25maWciLHtnZXQ6ZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5fYnVpbGRDb25maWd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJkZXBsb3lDb25maWciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGVwbG95Q29uZmlnfSxlbnVtZXJh''@;'; put 'put ''YmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwic2VydmljZUNvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXJ2aWNlQ29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQ''@;'; put 'put ''cm9wZXJ0eShXLnByb3RvdHlwZSwiam9iQ29uZmlnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2pvYkNvbmZpZ30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInN0cmVhbUNvbmZpZyIse2dldDpmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB0aGlzLl9zdHJlYW1Db25maWd9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJtYWNyb0ZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFjcm9Gb2xkZXJzfSxlbnVtZXJhYmxl''@;'; put 'put ''OiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwicHJvZ3JhbUZvbGRlcnMiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJvZ3JhbUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KFcucHJvdG90eXBlLCJiaW5hcnlGb2xkZXJzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JpbmFyeUZvbGRlcnN9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFcucHJvdG90eXBlLCJjb250ZXh0TmFtZSIse2dldDpm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZXh0TmFtZX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInNlcnZlck5hbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2VydmVyTmFtZX0sZW51bWVyYWJs''@;'; put 'put ''ZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVy5wcm90b3R5cGUsInJlcG9zaXRvcnlOYW1lIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlcG9zaXRvcnlOYW1lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQ''@;'; put 'put ''cm9wZXJ0eShXLnByb3RvdHlwZSwidGVzdENvbmZpZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90ZXN0Q29uZmlnfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLnByb3RvdHlwZSwic3luY0ZvbGRlciIse2dldDpmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB0aGlzLl9zeW5jRm9sZGVyfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLFcucHJvdG90eXBlLnRvSnNvbj1mdW5jdGlvbihOKXt2YXIgdGUsSyxKO3ZvaWQgMD09PU4mJihOPSEwKTt2YXIgc2U9e25hbWU6dGhpcy5uYW1lLHNlcnZlclVybDp0aGlzLnNlcnZl''@;'; put 'put ''clVybCxzZXJ2ZXJUeXBlOnRoaXMuc2VydmVyVHlwZSxodHRwc0FnZW50T3B0aW9uczp0aGlzLmh0dHBzQWdlbnRPcHRpb25zLGFwcExvYzp0aGlzLmFwcExvYyxkb2NDb25maWc6dGhpcy5kb2NDb25maWcsZGVwbG95Q29uZmlnOnRoaXMuZGVwbG95Q29uZmlnfTtyZXR1cm4hKG51bGw9PT0o''@;'; put 'put ''dGU9dGhpcy5tYWNyb0ZvbGRlcnMpfHx2b2lkIDA9PT10ZSkmJnRlLmxlbmd0aCYmKHNlLm1hY3JvRm9sZGVycz10aGlzLm1hY3JvRm9sZGVycyksIShudWxsPT09KEs9dGhpcy5wcm9ncmFtRm9sZGVycyl8fHZvaWQgMD09PUspJiZLLmxlbmd0aCYmKHNlLnByb2dyYW1Gb2xkZXJzPXRoaXMu''@;'; put 'put ''cHJvZ3JhbUZvbGRlcnMpLCEobnVsbD09PShKPXRoaXMuYmluYXJ5Rm9sZGVycyl8fHZvaWQgMD09PUopJiZKLmxlbmd0aCYmKHNlLmJpbmFyeUZvbGRlcnM9dGhpcy5iaW5hcnlGb2xkZXJzKSx0aGlzLmF1dGhDb25maWcmJihzZS5hdXRoQ29uZmlnPXRoaXMuYXV0aENvbmZpZyksdGhpcy5h''@;'; put 'put ''dXRoQ29uZmlnU2FzOSYmKHNlLmF1dGhDb25maWdTYXM5PXRoaXMuYXV0aENvbmZpZ1NhczkpLHRoaXMuYnVpbGRDb25maWc/c2UuYnVpbGRDb25maWc9dGhpcy5idWlsZENvbmZpZzpOJiYoc2UuYnVpbGRDb25maWc9e2luaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLGJ1aWxkT3V0cHV0''@;'; put 'put ''RmlsZU5hbWU6IiIuY29uY2F0KHRoaXMubmFtZSwiLnNhcyIpLGJ1aWxkT3V0cHV0Rm9sZGVyOiJzYXNqc2J1aWxkIixidWlsZFJlc3VsdHNGb2xkZXI6InNhc2pzcmVzdWx0cyIsbWFjcm9WYXJzOnt9fSksdGhpcy5qb2JDb25maWc/c2Uuam9iQ29uZmlnPXRoaXMuam9iQ29uZmlnOk4mJihz''@;'; put 'put ''ZS5qb2JDb25maWc9e2pvYkZvbGRlcnM6W10saW5pdFByb2dyYW06IiIsdGVybVByb2dyYW06IiIsbWFjcm9WYXJzOnt9fSksdGhpcy5zZXJ2aWNlQ29uZmlnP3NlLnNlcnZpY2VDb25maWc9dGhpcy5zZXJ2aWNlQ29uZmlnOk4mJihzZS5zZXJ2aWNlQ29uZmlnPXtzZXJ2aWNlRm9sZGVyczpb''@;'; put 'put ''XSxpbml0UHJvZ3JhbToiIix0ZXJtUHJvZ3JhbToiIixtYWNyb1ZhcnM6e319KSx0aGlzLnN0cmVhbUNvbmZpZz9zZS5zdHJlYW1Db25maWc9dGhpcy5zdHJlYW1Db25maWc6TiYmKHNlLnN0cmVhbUNvbmZpZz17c3RyZWFtV2ViRm9sZGVyOiIiLHN0cmVhbVdlYjohMSx3ZWJTb3VyY2VQYXRo''@;'; put 'put ''OiIiLHN0cmVhbVNlcnZpY2VOYW1lOiIiLGFzc2V0UGF0aHM6W119KSx0aGlzLnRlc3RDb25maWc/c2UudGVzdENvbmZpZz10aGlzLnRlc3RDb25maWc6TiYmKHNlLnRlc3RDb25maWc9e2luaXRQcm9ncmFtOiIiLHRlcm1Qcm9ncmFtOiIiLG1hY3JvVmFyczp7fSx0ZXN0U2V0VXA6IiIsdGVz''@;'; put 'put ''dFRlYXJEb3duOiIifSksdGhpcy5zZXJ2ZXJUeXBlPT09cmUuU2VydmVyVHlwZS5TYXNWaXlhP3NlLmNvbnRleHROYW1lPXRoaXMuY29udGV4dE5hbWU6dGhpcy5zZXJ2ZXJUeXBlPT09cmUuU2VydmVyVHlwZS5TYXM5JiYoc2Uuc2VydmVyTmFtZT10aGlzLnNlcnZlck5hbWUsc2UucmVwb3Np''@;'; put 'put ''dG9yeU5hbWU9dGhpcy5yZXBvc2l0b3J5TmFtZSksc2V9LFd9KCk7US5UYXJnZXQ9WX0sNjc4MTpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oVyl7cmV0dXJuIFcmJlcuX19lc01vZHVsZT9XOntkZWZhdWx0''@;'; put 'put ''Old9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS52YWxpZGF0ZVJlcG9zaXRvcnlOYW1lPVEudmFsaWRhdGVTeW5jRm9sZGVyPVEudmFsaWRhdGVTZXJ2ZXJOYW1lPVEudmFsaWRhdGVDb250ZXh0TmFtZT1RLnZhbGlkYXRlU3RyZWFtQ29uZmln''@;'; put 'put ''PVEudmFsaWRhdGVEZXBsb3lDb25maWc9US52YWxpZGF0ZUpvYkNvbmZpZz1RLnZhbGlkYXRlVGVzdENvbmZpZz1RLnZhbGlkYXRlU2VydmljZUNvbmZpZz1RLnZhbGlkYXRlQnVpbGRDb25maWc9US52YWxpZGF0ZUF1dGhDb25maWdTYXM5PVEudmFsaWRhdGVBdXRoQ29uZmlnPVEudmFsaWRh''@;'; put 'put ''dGVEb2NDb25maWc9US52YWxpZGF0ZUFwcExvYz1RLnZhbGlkYXRlSHR0cHNBZ2VudE9wdGlvbnM9US52YWxpZGF0ZVNlcnZlclVybD1RLnZhbGlkYXRlVGFyZ2V0TmFtZT1RLnZhbGlkYXRlU2VydmVyVHlwZT12b2lkIDA7dmFyIGFlPXJlKGooNDgxKSksWT1qKDM5MDApO1EudmFsaWRhdGVT''@;'; put 'put ''ZXJ2ZXJUeXBlPWZ1bmN0aW9uKFcpe2lmKCFXKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzZXJ2ZXIgdHlwZTogYHNlcnZlclR5cGVgIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtpZihXIT09WS5TZXJ2ZXJUeXBlLlNhczkmJlchPT1ZLlNlcnZlclR5cGUuU2FzVml5YSYmVyE9''@;'; put 'put ''PVkuU2VydmVyVHlwZS5TYXNqcyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmVyIHR5cGU6IFN1cHBvcnRlZCB2YWx1ZXMgZm9yICBgc2VydmVyVHlwZWAgYXJlICIuY29uY2F0KFkuU2VydmVyVHlwZS5TYXNWaXlhLCIsICIpLmNvbmNhdChZLlNlcnZlclR5cGUuU2FzOSwiIGFuZCAi''@;'; put 'put ''KS5jb25jYXQoWS5TZXJ2ZXJUeXBlLlNhc2pzLCIuIikpO3JldHVybiBXfSxRLnZhbGlkYXRlVGFyZ2V0TmFtZT1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdGFyZ2V0IG5hbWU6IGBuYW1lYCBjYW5ub3QgYmUgZW1wdHksIG51bGwgb3IgdW5kZWZpbmVkLiIp''@;'; put 'put ''O2lmKFcudHJpbSgpLmluY2x1ZGVzKCIgIikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRhcmdldCBuYW1lOiBgbmFtZWAgY2Fubm90IGluY2x1ZGUgc3BhY2VzLiIpO2lmKCEvXlthLXpBLVowLTlcLV0rJC9pLnRlc3QoVykpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHRhcmdldCBuYW1l''@;'; put 'put ''OiBgbmFtZWAgY2FuIG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgZGFzaGVzLiIpO3JldHVybiBXfSxRLnZhbGlkYXRlU2VydmVyVXJsPWZ1bmN0aW9uKFcpe2lmKG51bGw9PVcmJihXPSIiKSwiIiE9PVcmJiFhZS5kZWZhdWx0LmlzSHR0cFVyaShXKSYmIWFlLmRl''@;'; put 'put ''ZmF1bHQuaXNIdHRwc1VyaShXKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc2VydmVyIFVSTDogYHNlcnZlclVybGAgc2hvdWxkIGVpdGhlciBiZSBhbiBlbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBVUkwgb2YgdGhlIGZvcm0gaHR0cChzKTovL3lvdXItc2VydmVyLmNvbSg6cG9ydCkuIik7''@;'; put 'put ''cmV0dXJuIFd9LFEudmFsaWRhdGVIdHRwc0FnZW50T3B0aW9ucz1mdW5jdGlvbihXKXtpZihXKXtpZigib2JqZWN0IiE9dHlwZW9mIFcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhbHVlOiBgaHR0cHNBZ2VudE9wdGlvbnNgIHNob3VsZCBlaXRoZXIgYmUgYW4gZW1wdHkgb3IgYW4gb2Jq''@;'; put 'put ''ZWN0IG9mIGBIdHRwc0FnZW50T3B0aW9uc2AiKTtpZihudWxsPT1XLmFsbG93SW5zZWN1cmVSZXF1ZXN0cylXLmFsbG93SW5zZWN1cmVSZXF1ZXN0cz0hMTtlbHNlIGlmKCJib29sZWFuIiE9dHlwZW9mIFcuYWxsb3dJbnNlY3VyZVJlcXVlc3RzKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB2''@;'; put 'put ''YWx1ZTogYGh0dHBzQWdlbnRPcHRpb25zLmFsbG93SW5zZWN1cmVSZXF1ZXN0c2Agc2hvdWxkIGVpdGhlciBiZSBhbiBlbXB0eSBvciBhIGJvb2xlYW4iKTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIFcuY2FQYXRoJiYoVy5jYVBhdGg9dm9pZCAwKSwic3RyaW5nIiE9dHlwZW9mIFcua2V5UGF0''@;'; put 'put ''aCYmKFcua2V5UGF0aD12b2lkIDApLCJzdHJpbmciIT10eXBlb2YgVy5jZXJ0UGF0aCYmKFcuY2VydFBhdGg9dm9pZCAwKSxXfX0sUS52YWxpZGF0ZUFwcExvYz1mdW5jdGlvbihXKXtpZighVyl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXBwIGxvY2F0aW9uOiBgYXBwTG9jYCBjYW5ub3Qg''@;'; put 'put ''YmUgZW1wdHksIG51bGwgb3IgdW5kZWZpbmVkLiIpO2lmKCFXLnN0YXJ0c1dpdGgoIi8iKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgYXBwIGxvY2F0aW9uOiBgYXBwTG9jYCBtdXN0IHN0YXJ0IHdpdGggYSBgL2AuIik7cmV0dXJuIFd9LFEudmFsaWRhdGVEb2NDb25maWc9ZnVuY3Rpb24o''@;'; put 'put ''Vyl7aWYoV3x8KFc9e30pLCJib29sZWFuIiE9dHlwZW9mIFcuZGlzcGxheU1hY3JvQ29yZSYmKFcuZGlzcGxheU1hY3JvQ29yZT12b2lkIDApLCJib29sZWFuIiE9dHlwZW9mIFcuZW5hYmxlTGluZWFnZSYmKFcuZW5hYmxlTGluZWFnZT12b2lkIDApLCJzdHJpbmciIT10eXBlb2YgVy5vdXRE''@;'; put 'put ''aXJlY3RvcnkmJihXLm91dERpcmVjdG9yeT12b2lkIDApLCJzdHJpbmciPT10eXBlb2YgVy5kYXRhQ29udHJvbGxlclVybCl7aWYoIiIhPT1XLmRhdGFDb250cm9sbGVyVXJsJiYhYWUuZGVmYXVsdC5pc0h0dHBVcmkoVy5kYXRhQ29udHJvbGxlclVybCkmJiFhZS5kZWZhdWx0LmlzSHR0cHNV''@;'; put 'put ''cmkoVy5kYXRhQ29udHJvbGxlclVybCkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIERhdGEgQ29udHJvbGxlciBVcmw6IGBkYXRhQ29udHJvbGxlclVybGAgc2hvdWxkIGVpdGhlciBiZSBhbiBlbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBVUkwgb2YgdGhlIGZvcm0gaHR0cChzKTovL3lvdXIt''@;'; put 'put ''c2VydmVyLmNvbSg6cG9ydCkuIil9ZWxzZSBXLmRhdGFDb250cm9sbGVyVXJsPXZvaWQgMDtyZXR1cm4gV30sUS52YWxpZGF0ZUF1dGhDb25maWc9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGF1dGggY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVu''@;'; put 'put ''ZGVmaW5lZC4iKTtyZXR1cm4gV30sUS52YWxpZGF0ZUF1dGhDb25maWdTYXM5PWZ1bmN0aW9uKFcpe2lmKCFXKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhdXRoIGNvbmZpZyBmb3Igc2FzOTogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7aWYoIVcudXNlck5hbWV8fCFX''@;'; put 'put ''LnBhc3N3b3JkKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBhdXRoIGNvbmZpZyBmb3Igc2FzOTogdXNlck5hbWUgYW5kIHBhc3N3b3JkIGNhbiBub3QgYmUgZW1wdHkiKTtyZXR1cm4gV30sUS52YWxpZGF0ZUJ1aWxkQ29uZmlnPWZ1bmN0aW9uKFcsTil7aWYoIVcpdGhyb3cgbmV3IEVycm9y''@;'; put 'put ''KCJJbnZhbGlkIGJ1aWxkIGNvbmZpZzogSlNPTiBjYW5ub3QgYmUgbnVsbCBvciB1bmRlZmluZWQuIik7cmV0dXJuIFcuYnVpbGRSZXN1bHRzRm9sZGVyfHwoVy5idWlsZFJlc3VsdHNGb2xkZXI9InNhc2pzcmVzdWx0cyIpLFcuYnVpbGRPdXRwdXRGb2xkZXJ8fChXLmJ1aWxkT3V0cHV0Rm9s''@;'; put 'put ''ZGVyPSJzYXNqc2J1aWxkIiksVy5idWlsZE91dHB1dEZpbGVOYW1lfHwoVy5idWlsZE91dHB1dEZpbGVOYW1lPSIiLmNvbmNhdChOLCIuc2FzIikpLFcuaW5pdFByb2dyYW18fChXLmluaXRQcm9ncmFtPSIiKSxXLnRlcm1Qcm9ncmFtfHwoVy50ZXJtUHJvZ3JhbT0iIiksVy5tYWNyb1ZhcnN8''@;'; put 'put ''fChXLm1hY3JvVmFycz17fSksV30sUS52YWxpZGF0ZVNlcnZpY2VDb25maWc9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHNlcnZpY2UgY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gVy5pbml0UHJvZ3JhbXx8KFcu''@;'; put 'put ''aW5pdFByb2dyYW09IiIpLFcudGVybVByb2dyYW18fChXLnRlcm1Qcm9ncmFtPSIiKSxXLnNlcnZpY2VGb2xkZXJzfHwoVy5zZXJ2aWNlRm9sZGVycz1bXSksVy5tYWNyb1ZhcnN8fChXLm1hY3JvVmFycz17fSksV30sUS52YWxpZGF0ZVRlc3RDb25maWc9ZnVuY3Rpb24oVyl7aWYoIVcpdGhy''@;'; put 'put ''b3cgbmV3IEVycm9yKCJJbnZhbGlkIHRlc3QgY29uZmlnOiBKU09OIGNhbm5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gVy5pbml0UHJvZ3JhbXx8KFcuaW5pdFByb2dyYW09IiIpLFcudGVybVByb2dyYW18fChXLnRlcm1Qcm9ncmFtPSIiKSxXLm1hY3JvVmFyc3x8KFcubWFj''@;'; put 'put ''cm9WYXJzPXt9KSxXLnRlc3RTZXRVcHx8KFcudGVzdFNldFVwPSIiKSxXLnRlc3RUZWFyRG93bnx8KFcudGVzdFRlYXJEb3duPSIiKSxXfSxRLnZhbGlkYXRlSm9iQ29uZmlnPWZ1bmN0aW9uKFcpe2lmKCFXKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBqb2IgY29uZmlnOiBKU09OIGNhbm5v''@;'; put 'put ''dCBiZSBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gVy5pbml0UHJvZ3JhbXx8KFcuaW5pdFByb2dyYW09IiIpLFcudGVybVByb2dyYW18fChXLnRlcm1Qcm9ncmFtPSIiKSxXLmpvYkZvbGRlcnN8fChXLmpvYkZvbGRlcnM9W10pLFcubWFjcm9WYXJzfHwoVy5tYWNyb1ZhcnM9e30pLFd9''@;'; put 'put ''LFEudmFsaWRhdGVEZXBsb3lDb25maWc9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGRlcGxveSBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO3JldHVybiBXLmRlcGxveVNlcnZpY2VQYWNrPSEhVy5kZXBsb3lTZXJ2aWNlUGFj''@;'; put 'put ''ayxXLmRlcGxveVNjcmlwdHN8fChXLmRlcGxveVNjcmlwdHM9W10pLFd9LFEudmFsaWRhdGVTdHJlYW1Db25maWc9ZnVuY3Rpb24oVyl7aWYoIVcpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IEpTT04gY2Fubm90IGJlIG51bGwgb3IgdW5kZWZpbmVkLiIpO2lmKCEw''@;'; put 'put ''IT09Vy5zdHJlYW1XZWImJiExIT09Vy5zdHJlYW1XZWIpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IGBzdHJlYW1XZWJgIGNhbm5vdCBiZSBhIG5vbi1ib29sZWFuIHZhbHVlLiIpO2lmKFcuc3RyZWFtV2ViJiYhVy5zdHJlYW1XZWJGb2xkZXIpdGhyb3cgbmV3IEVy''@;'; put 'put ''cm9yKCJJbnZhbGlkIHN0cmVhbSBjb25maWc6IGBzdHJlYW1XZWJGb2xkZXJgIGNhbm5vdCBiZSBlbXB0eSwgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBgc3RyZWFtV2ViYCBpcyB0cnVlLiIpO2lmKFcuc3RyZWFtV2ViJiYhVy53ZWJTb3VyY2VQYXRoKXRocm93IG5ldyBFcnJvcigiSW52YWxp''@;'; put 'put ''ZCBzdHJlYW0gY29uZmlnOiBgd2ViU291cmNlUGF0aGAgY2Fubm90IGJlIGVtcHR5LCBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm4gVy5zdHJlYW1Mb2dvJiYic3RyaW5nIiE9dHlwZW9mIFcuc3RyZWFtTG9nbyYmKFcuc3RyZWFtTG9nbz12b2lkIDApLFcuYXNzZXRQYXRoc3x8KFcuYXNz''@;'; put 'put ''ZXRQYXRocz1bXSksVy5zdHJlYW1TZXJ2aWNlTmFtZXx8KFcuc3RyZWFtU2VydmljZU5hbWU9ImNsaWNrbWUiKSxXfSxRLnZhbGlkYXRlQ29udGV4dE5hbWU9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gTiE9PVkuU2VydmVyVHlwZS5TYXNWaXlhfHxXP1c6IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1''@;'; put 'put ''dGUgY29udGV4dCJ9LFEudmFsaWRhdGVTZXJ2ZXJOYW1lPWZ1bmN0aW9uKFcsTil7cmV0dXJuIE4hPT1ZLlNlcnZlclR5cGUuU2FzOXx8Vz9XOiJTQVNBcHAifSxRLnZhbGlkYXRlU3luY0ZvbGRlcj1mdW5jdGlvbihXKXtpZigic3RyaW5nIj09dHlwZW9mIFcmJlcpcmV0dXJuIFd9LFEudmFs''@;'; put 'put ''aWRhdGVSZXBvc2l0b3J5TmFtZT1mdW5jdGlvbihXLE4pe3JldHVybiBOIT09WS5TZXJ2ZXJUeXBlLlNhczl8fFc/VzoiRm91bmRhdGlvbiJ9fSwyOTI3OmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPWooODc2NCkuQnVmZmVyLGFlPXRoaXMmJnRoaXMuX19pbXBvcnREZWZh''@;'; put 'put ''dWx0fHxmdW5jdGlvbihOKXtyZXR1cm4gTiYmTi5fX2VzTW9kdWxlP046e2RlZmF1bHQ6Tn19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmRlY29kZUZyb21CYXNlNjQ9US5lbmNvZGVUb0Jhc2U2ND12b2lkIDA7dmFyIFk9YWUoaig1ODM1KSks''@;'; put 'put ''Vz0ie3Nhc2pzX2VuY29kZWR9IjtRLmVuY29kZVRvQmFzZTY0PWZ1bmN0aW9uKE4pe3ZhciB0ZT1ZLmRlZmF1bHQucmFuZG9tQnl0ZXMoMTAwKS50b1N0cmluZygiaGV4IiksSz1yZS5mcm9tKHRlK04pLnRvU3RyaW5nKCJiYXNlNjQiKTtyZXR1cm4gVytLfSxRLmRlY29kZUZyb21CYXNlNjQ9''@;'; put 'put ''ZnVuY3Rpb24oTil7cmV0dXJuIE4uc3RhcnRzV2l0aChXKT8oTj1OLnJlcGxhY2UoL157c2FzanNfZW5jb2RlZH0vLCIiKSxyZS5mcm9tKE4sImJhc2U2NCIpLnRvU3RyaW5nKCkuc3Vic3RyaW5nKDIwMCkpOk59fSw1ODE6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuYnl0ZXNUb1NpemU9dm9pZCAwLFEuYnl0ZXNUb1NpemU9ZnVuY3Rpb24oaixyZSxhZSl7aWYodm9pZCAwPT09cmUmJihyZT0xKSx2b2lkIDA9PT1hZSYmKGFlPTEwOTk1MTE2Mjc3NzYpLDA9PT1qKXJldHVybiIwIEIiO2o9aj5hZT9h''@;'; put 'put ''ZTpqO3ZhciBZPXJlPDA/MDpyZSxXPU1hdGguZmxvb3IoTWF0aC5sb2coaikvTWF0aC5sb2coMTAyNCkpO3JldHVybihqL01hdGgucG93KDEwMjQsVykpLnRvRml4ZWQoWSkrIiAiK1siQiIsIktCIiwiTUIiLCJHQiIsIlRCIl1bV119fSw4NjUzOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVj''@;'; put 'put ''dC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmNodW5rPXZvaWQgMCxRLmNodW5rPWZ1bmN0aW9uKGoscmUpe3JldHVybiB2b2lkIDA9PT1yZSYmKHJlPTIyMCksai5sZW5ndGg8PXJlP1tqXTooai5tYXRjaChuZXcgUmVnRXhwKCIuezEsIityZSsifSIsImci''@;'; put 'put ''KSl8fFtdKS5maWx0ZXIoZnVuY3Rpb24oYWUpe3JldHVybiEhYWV9KX19LDY0NTc6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGo9dGhpcyYmdGhpcy5fX3JlYWR8fGZ1bmN0aW9uKGFlLFkpe3ZhciBXPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmFlW1N5bWJvbC5pdGVyYXRv''@;'; put 'put ''cl07aWYoIVcpcmV0dXJuIGFlO3ZhciBOLHRlLEs9Vy5jYWxsKGFlKSxKPVtdO3RyeXtmb3IoOyh2b2lkIDA9PT1ZfHxZLS0gPjApJiYhKE49Sy5uZXh0KCkpLmRvbmU7KUoucHVzaChOLnZhbHVlKX1jYXRjaChzZSl7dGU9e2Vycm9yOnNlfX1maW5hbGx5e3RyeXtOJiYhTi5kb25lJiYoVz1L''@;'; put 'put ''LnJldHVybikmJlcuY2FsbChLKX1maW5hbGx5e2lmKHRlKXRocm93IHRlLmVycm9yfX1yZXR1cm4gSn0scmU9dGhpcyYmdGhpcy5fX3NwcmVhZEFycmF5fHxmdW5jdGlvbihhZSxZLFcpe2lmKFd8fDI9PT1hcmd1bWVudHMubGVuZ3RoKWZvcih2YXIgTix0ZT0wLEs9WS5sZW5ndGg7dGU8Szt0''@;'; put 'put ''ZSsrKSFOJiZ0ZSBpbiBZfHwoTnx8KE49QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoWSwwLHRlKSksTlt0ZV09WVt0ZV0pO3JldHVybiBhZS5jb25jYXQoTnx8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoWSkpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3Zh''@;'; put 'put ''bHVlOiEwfSksUS5kaWZmPXZvaWQgMCxRLmRpZmY9ZnVuY3Rpb24oYWUsWSl7dmFyIFc9YWUuZmlsdGVyKGZ1bmN0aW9uKHRlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHRlPyFKU09OLnN0cmluZ2lmeShZKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeSh0ZSkpOiFZLmluY2x1ZGVzKHRlKX0p''@;'; put 'put ''LE49WS5maWx0ZXIoZnVuY3Rpb24odGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdGU/IUpTT04uc3RyaW5naWZ5KGFlKS5pbmNsdWRlcyhKU09OLnN0cmluZ2lmeSh0ZSkpOiFhZS5pbmNsdWRlcyh0ZSl9KTtyZXR1cm4gcmUocmUoW10saihXKSwhMSksaihOKSwhMSl9fSwxNTI5OihVLFEp''@;'; put 'put ''PT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldEV4ZWN1dG9yUGF0aD12b2lkIDA7dmFyIGo9e1NBU1ZJWUE6Ii9TQVNKb2JFeGVjdXRpb24iLFNBUzk6Ii9TQVNTdG9yZWRQcm9jZXNzL2RvIn07US5nZXRFeGVjdXRv''@;'; put 'put ''clBhdGg9ZnVuY3Rpb24ocmUpe3JldHVybiByZT8ocmU9cmUudG9VcHBlckNhc2UoKSxqW3JlXXx8IiIpOiIifX0sMzMxNjooVSxRLGopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldFRyZWVFeGFtcGxlPVEuaXNG''@;'; put 'put ''aWxlVHJlZT12b2lkIDA7dmFyIHJlPWooMzkwMCk7US5pc0ZpbGVUcmVlPWZ1bmN0aW9uKE4pe3JldHVybiBOJiZOLm1lbWJlcnMmJkFycmF5LmlzQXJyYXkoTi5tZW1iZXJzKSYmMD09PU4ubWVtYmVycy5maWx0ZXIoZnVuY3Rpb24odGUpe3JldHVybiFhZSh0ZSkmJiFZKHRlKSYmIVcodGUp''@;'; put 'put ''fSkubGVuZ3RofTt2YXIgYWU9ZnVuY3Rpb24oTil7cmV0dXJuIE4mJiJzdHJpbmciPT10eXBlb2YgTi5uYW1lJiZOLnR5cGU9PT1yZS5NZW1iZXJUeXBlLnNlcnZpY2UmJiJzdHJpbmciPT10eXBlb2YgTi5jb2RlfSxZPWZ1bmN0aW9uKE4pe3JldHVybiBOJiYic3RyaW5nIj09dHlwZW9mIE4u''@;'; put 'put ''bmFtZSYmTi50eXBlPT09cmUuTWVtYmVyVHlwZS5maWxlJiYic3RyaW5nIj09dHlwZW9mIE4uY29kZX0sVz1mdW5jdGlvbihOKXtyZXR1cm4gTiYmInN0cmluZyI9PXR5cGVvZiBOLm5hbWUmJk4udHlwZT09PXJlLk1lbWJlclR5cGUuZm9sZGVyJiZOLm1lbWJlcnMmJkFycmF5LmlzQXJyYXko''@;'; put 'put ''Ti5tZW1iZXJzKSYmMD09PU4ubWVtYmVycy5maWx0ZXIoZnVuY3Rpb24odGUpe3JldHVybiFhZSh0ZSkmJiFZKHRlKSYmIVcodGUpfSkubGVuZ3RofTtRLmdldFRyZWVFeGFtcGxlPWZ1bmN0aW9uKCl7cmV0dXJue21lbWJlcnM6W3tuYW1lOiJqb2JzIix0eXBlOnJlLk1lbWJlclR5cGUuZm9s''@;'; put 'put ''ZGVyLG1lbWJlcnM6W3tuYW1lOiJleHRyYWN0Iix0eXBlOnJlLk1lbWJlclR5cGUuZm9sZGVyLG1lbWJlcnM6W3tuYW1lOiJtYWtlZGF0YTEiLHR5cGU6cmUuTWVtYmVyVHlwZS5zZXJ2aWNlLGNvZGU6IiVwdXQgSGVsbG8gV29ybGQhOyJ9XX1dfV19fX0sNjI2NjpmdW5jdGlvbihVLFEsail7''@;'; put 'put ''InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24ob2UsY2UsZGUsdmUpe3ZvaWQgMD09PXZlJiYodmU9ZGUpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvZSx2ZSx7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gY2VbZGVdfX0pfTpmdW5jdGlvbihvZSxjZSxkZSx2ZSl7dm9pZCAwPT09dmUmJih2ZT1kZSksb2VbdmVdPWNlW2RlXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihvZSxjZSl7Zm9yKHZhciBkZSBpbiBvZSkiZGVmYXVsdCI9PT1kZXx8T2JqZWN0LnByb3Rv''@;'; put 'put ''dHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLGRlKXx8cmUoY2Usb2UsZGUpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5jaHVuaz1RLmRpZmY9US5ieXRlc1RvU2l6ZT1RLmdldEV4ZWN1dG9yUGF0aD1RLmRlY29kZUZyb21CYXNlNjQ9US5l''@;'; put 'put ''bmNvZGVUb0Jhc2U2ND1RLnVybE9yaWdpbj1RLmVzY2FwZVdpblNsYXNoZXM9US5pc0xpbnV4PVEuaXNXaW5kb3dzPVEudW5pcUFycmF5PVEuYXN5bmNGb3JFYWNoPVEudXVpZHY0PXZvaWQgMDt2YXIgWT1qKDExMzEpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJ1dWlkdjQiLHtlbnVtZXJh''@;'; put 'put ''YmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLnV1aWR2NH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiYXN5bmNGb3JFYWNoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWS5hc3luY0ZvckVhY2h9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInVuaXFB''@;'; put 'put ''cnJheSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkudW5pcUFycmF5fX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJpc1dpbmRvd3MiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBZLmlzV2luZG93c319KSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoUSwiaXNMaW51eCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuaXNMaW51eH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiZXNjYXBlV2luU2xhc2hlcyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFkuZXNjYXBlV2luU2xhc2hlc319''@;'; put 'put ''KSxhZShqKDMzMTYpLFEpO3ZhciBXPWooOTY1Mik7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsInVybE9yaWdpbiIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFcudXJsT3JpZ2lufX0pO3ZhciBOPWooMjkyNyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImVuY29kZVRv''@;'; put 'put ''QmFzZTY0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTi5lbmNvZGVUb0Jhc2U2NH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiZGVjb2RlRnJvbUJhc2U2NCIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4uZGVjb2RlRnJvbUJhc2U2NH19''@;'; put 'put ''KTt2YXIgdGU9aigxNTI5KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiZ2V0RXhlY3V0b3JQYXRoIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGUuZ2V0RXhlY3V0b3JQYXRofX0pO3ZhciBLPWooNTgxKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiYnl0ZXNUb1Np''@;'; put 'put ''emUiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLLmJ5dGVzVG9TaXplfX0pO3ZhciBKPWooNjQ1Nyk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImRpZmYiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBKLmRpZmZ9fSk7dmFyIHNlPWooODY1Myk7''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsImNodW5rIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc2UuY2h1bmt9fSl9LDk2NTI6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudXJsT3Jp''@;'; put 'put ''Z2luPXZvaWQgMCxRLnVybE9yaWdpbj1mdW5jdGlvbihqKXtpZigiIj09PWopcmV0dXJuIGo7dmFyIHJlO3RyeXtyZT1uZXcgVVJMKGopLm9yaWdpbn1jYXRjaChhZSl7dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFVSTC4iKX1yZXR1cm4gcmV9fSwxMTMxOmZ1bmN0aW9uKFUsUSxqKXsidXNl''@;'; put 'put ''IHN0cmljdCI7dmFyIHJlPWooNDE1NSksYWU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcsTix0ZSxLKXtyZXR1cm4gbmV3KHRlfHwodGU9UHJvbWlzZSkpKGZ1bmN0aW9uKEosc2Upe2Z1bmN0aW9uIG9lKHZlKXt0cnl7ZGUoSy5uZXh0KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19''@;'; put 'put ''ZnVuY3Rpb24gY2UodmUpe3RyeXtkZShLLnRocm93KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gZGUodmUpe3ZhciBBZTt2ZS5kb25lP0oodmUudmFsdWUpOihBZT12ZS52YWx1ZSxBZSBpbnN0YW5jZW9mIHRlP0FlOm5ldyB0ZShmdW5jdGlvbihrZSl7a2UoQWUpfSkpLnRoZW4o''@;'; put 'put ''b2UsY2UpfWRlKChLPUsuYXBwbHkoVyxOfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihXLE4pe3ZhciB0ZSxLLEosc2Usb2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSlswXSl0aHJvdyBKWzFdO3JldHVybiBKWzFdfSx0cnlzOltd''@;'; put 'put ''LG9wczpbXX07cmV0dXJuIHNlPXtuZXh0OmNlKDApLHRocm93OmNlKDEpLHJldHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHNlO2Z1bmN0aW9uIGNlKGRlKXtyZXR1cm4gZnVuY3Rpb24o''@;'; put 'put ''dmUpe3JldHVybiBmdW5jdGlvbihBZSl7aWYodGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRyeXtpZih0ZT0xLEsmJihKPTImQWVbMF0/Sy5yZXR1cm46QWVbMF0/Sy50aHJvd3x8KChKPUsucmV0dXJuKSYmSi5jYWxs''@;'; put 'put ''KEspLDApOksubmV4dCkmJiEoSj1KLmNhbGwoSyxBZVsxXSkpLmRvbmUpcmV0dXJuIEo7c3dpdGNoKEs9MCxKJiYoQWU9WzImQWVbMF0sSi52YWx1ZV0pLEFlWzBdKXtjYXNlIDA6Y2FzZSAxOko9QWU7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJlbCsrLHt2YWx1ZTpBZVsxXSxkb25lOiEx''@;'; put 'put ''fTtjYXNlIDU6b2UubGFiZWwrKyxLPUFlWzFdLEFlPVswXTtjb250aW51ZTtjYXNlIDc6QWU9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChKPShKPW9lLnRyeXMpLmxlbmd0aD4wJiZKW0oubGVuZ3RoLTFdKXx8NiE9PUFlWzBdJiYyIT09QWVbMF0p''@;'; put 'put ''KXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1BZVswXSYmKCFKfHxBZVsxXT5KWzBdJiZBZVsxXTxKWzNdKSl7b2UubGFiZWw9QWVbMV07YnJlYWt9aWYoNj09PUFlWzBdJiZvZS5sYWJlbDxKWzFdKXtvZS5sYWJlbD1KWzFdLEo9QWU7YnJlYWt9aWYoSiYmb2UubGFiZWw8SlsyXSl7b2UubGFiZWw9''@;'; put 'put ''SlsyXSxvZS5vcHMucHVzaChBZSk7YnJlYWt9SlsyXSYmb2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWV9QWU9Ti5jYWxsKFcsb2UpfWNhdGNoKGtlKXtBZT1bNixrZV0sSz0wfWZpbmFsbHl7dGU9Sj0wfWlmKDUmQWVbMF0pdGhyb3cgQWVbMV07cmV0dXJue3ZhbHVlOkFlWzBd''@;'; put 'put ''P0FlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2RlLHZlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZXNjYXBlV2luU2xhc2hlcz1RLmlzTGludXg9US5pc1dpbmRvd3M9US51bmlxQXJyYXk9US51dWlkdjQ9US5hc3luY0ZvckVhY2g9dm9p''@;'; put 'put ''ZCAwLFEuYXN5bmNGb3JFYWNoPWZ1bmN0aW9uKFcsTil7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB0ZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEspe3N3aXRjaChLLmxhYmVsKXtjYXNlIDA6dGU9MCxLLmxhYmVsPTE7Y2FzZSAxOnJldHVybiB0ZTxXLmxl''@;'; put 'put ''bmd0aD9bNCxOKFdbdGVdLHRlLFcpXTpbMyw0XTtjYXNlIDI6Sy5zZW50KCksSy5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gdGUrKyxbMywxXTtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9LFEudXVpZHY0PWZ1bmN0aW9uKCl7cmV0dXJuInh4eHh4eHh4LXh4eHgtNHh4eC15eHh4LXh4eHh4eHh4eHh4''@;'; put 'put ''eCIucmVwbGFjZSgvW3h5XS9nLGZ1bmN0aW9uKFcpe3ZhciBOPTE2Kk1hdGgucmFuZG9tKCl8MDtyZXR1cm4oIngiPT1XP046MyZOfDgpLnRvU3RyaW5nKDE2KX0pfSxRLnVuaXFBcnJheT1mdW5jdGlvbihXKXtyZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KFcpKX0sUS5pc1dpbmRvd3M9ZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4id2luMzIiPT09cmUucGxhdGZvcm19LFEuaXNMaW51eD1mdW5jdGlvbigpe3JldHVybiJsaW51eCI9PT1yZS5wbGF0Zm9ybX0sUS5lc2NhcGVXaW5TbGFzaGVzPWZ1bmN0aW9uKFcpe3JldHVybigwLFEuaXNXaW5kb3dzKSgpP1cucmVwbGFjZSgvXFwvZywiXFxcXCIp''@;'; put 'put ''Old9fSw5ODA5OihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9UTtyZS5iaWdudW09aig0NTkwKSxyZS5kZWZpbmU9aigyNTAwKS5kZWZpbmUscmUuYmFzZT1qKDE5NzkpLHJlLmNvbnN0YW50cz1qKDY4MjYpLHJlLmRlY29kZXJzPWooODMwNykscmUuZW5jb2RlcnM9aig2NTc5KX0s''@;'; put 'put ''MjUwMDooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooNjU3OSksYWU9aig4MzA3KSxZPWooNTcxNyk7ZnVuY3Rpb24gVyhOLHRlKXt0aGlzLm5hbWU9Tix0aGlzLmJvZHk9dGUsdGhpcy5kZWNvZGVycz17fSx0aGlzLmVuY29kZXJzPXt9fVEuZGVmaW5lPWZ1bmN0aW9uKE4sdGUp''@;'; put 'put ''e3JldHVybiBuZXcgVyhOLHRlKX0sVy5wcm90b3R5cGUuX2NyZWF0ZU5hbWVkPWZ1bmN0aW9uKE4pe2NvbnN0IHRlPXRoaXMubmFtZTtmdW5jdGlvbiBLKEope3RoaXMuX2luaXROYW1lZChKLHRlKX1yZXR1cm4gWShLLE4pLEsucHJvdG90eXBlLl9pbml0TmFtZWQ9ZnVuY3Rpb24oSixzZSl7''@;'; put 'put ''Ti5jYWxsKHRoaXMsSixzZSl9LG5ldyBLKHRoaXMpfSxXLnByb3RvdHlwZS5fZ2V0RGVjb2Rlcj1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5kZWNvZGVycy5oYXNPd25Qcm9wZXJ0eShOPU58fCJkZXIiKXx8KHRoaXMuZGVjb2RlcnNbTl09dGhpcy5fY3JlYXRlTmFtZWQoYWVbTl0pKSx0aGlz''@;'; put 'put ''LmRlY29kZXJzW05dfSxXLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oTix0ZSxLKXtyZXR1cm4gdGhpcy5fZ2V0RGVjb2Rlcih0ZSkuZGVjb2RlKE4sSyl9LFcucHJvdG90eXBlLl9nZXRFbmNvZGVyPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmVuY29kZXJzLmhhc093blByb3BlcnR5KE49''@;'; put 'put ''Tnx8ImRlciIpfHwodGhpcy5lbmNvZGVyc1tOXT10aGlzLl9jcmVhdGVOYW1lZChyZVtOXSkpLHRoaXMuZW5jb2RlcnNbTl19LFcucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihOLHRlLEspe3JldHVybiB0aGlzLl9nZXRFbmNvZGVyKHRlKS5lbmNvZGUoTixLKX19LDY2MjU6KFUsUSxqKT0+''@;'; put 'put ''eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDU3MTcpLGFlPWooODQ2NSkuYixZPWooMjM5OSkuQnVmZmVyO2Z1bmN0aW9uIFcodGUsSyl7YWUuY2FsbCh0aGlzLEspLFkuaXNCdWZmZXIodGUpPyh0aGlzLmJhc2U9dGUsdGhpcy5vZmZzZXQ9MCx0aGlzLmxlbmd0aD10ZS5sZW5ndGgpOnRoaXMu''@;'; put 'put ''ZXJyb3IoIklucHV0IG5vdCBCdWZmZXIiKX1mdW5jdGlvbiBOKHRlLEspe2lmKEFycmF5LmlzQXJyYXkodGUpKXRoaXMubGVuZ3RoPTAsdGhpcy52YWx1ZT10ZS5tYXAoZnVuY3Rpb24oSil7cmV0dXJuIE4uaXNFbmNvZGVyQnVmZmVyKEopfHwoSj1uZXcgTihKLEspKSx0aGlzLmxlbmd0aCs9''@;'; put 'put ''Si5sZW5ndGgsSn0sdGhpcyk7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIHRlKXtpZighKDA8PXRlJiZ0ZTw9MjU1KSlyZXR1cm4gSy5lcnJvcigibm9uLWJ5dGUgRW5jb2RlckJ1ZmZlciB2YWx1ZSIpO3RoaXMudmFsdWU9dGUsdGhpcy5sZW5ndGg9MX1lbHNlIGlmKCJzdHJpbmciPT10eXBl''@;'; put 'put ''b2YgdGUpdGhpcy52YWx1ZT10ZSx0aGlzLmxlbmd0aD1ZLmJ5dGVMZW5ndGgodGUpO2Vsc2V7aWYoIVkuaXNCdWZmZXIodGUpKXJldHVybiBLLmVycm9yKCJVbnN1cHBvcnRlZCB0eXBlOiAiK3R5cGVvZiB0ZSk7dGhpcy52YWx1ZT10ZSx0aGlzLmxlbmd0aD10ZS5sZW5ndGh9fXJlKFcsYWUp''@;'; put 'put ''LFEuQz1XLFcuaXNEZWNvZGVyQnVmZmVyPWZ1bmN0aW9uKHRlKXtyZXR1cm4gdGUgaW5zdGFuY2VvZiBXfHwib2JqZWN0Ij09dHlwZW9mIHRlJiZZLmlzQnVmZmVyKHRlLmJhc2UpJiYiRGVjb2RlckJ1ZmZlciI9PT10ZS5jb25zdHJ1Y3Rvci5uYW1lJiYibnVtYmVyIj09dHlwZW9mIHRlLm9m''@;'; put 'put ''ZnNldCYmIm51bWJlciI9PXR5cGVvZiB0ZS5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiB0ZS5zYXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgdGUucmVzdG9yZSYmImZ1bmN0aW9uIj09dHlwZW9mIHRlLmlzRW1wdHkmJiJmdW5jdGlvbiI9PXR5cGVvZiB0ZS5yZWFkVUludDgmJiJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiB0ZS5za2lwJiYiZnVuY3Rpb24iPT10eXBlb2YgdGUucmF3fSxXLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjphZS5wcm90b3R5cGUuc2F2ZS5jYWxsKHRoaXMpfX0sVy5wcm90b3R5cGUucmVzdG9yZT1mdW5j''@;'; put 'put ''dGlvbih0ZSl7Y29uc3QgSz1uZXcgVyh0aGlzLmJhc2UpO3JldHVybiBLLm9mZnNldD10ZS5vZmZzZXQsSy5sZW5ndGg9dGhpcy5vZmZzZXQsdGhpcy5vZmZzZXQ9dGUub2Zmc2V0LGFlLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyx0ZS5yZXBvcnRlciksS30sVy5wcm90b3R5cGUuaXNF''@;'; put 'put ''bXB0eT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm9mZnNldD09PXRoaXMubGVuZ3RofSxXLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLm9mZnNldCsxPD10aGlzLmxlbmd0aD90aGlzLmJhc2UucmVhZFVJbnQ4KHRoaXMub2Zmc2V0KyssITApOnRoaXMuZXJy''@;'; put 'put ''b3IodGV8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0sVy5wcm90b3R5cGUuc2tpcD1mdW5jdGlvbih0ZSxLKXtpZighKHRoaXMub2Zmc2V0K3RlPD10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZXJyb3IoS3x8IkRlY29kZXJCdWZmZXIgb3ZlcnJ1biIpO2NvbnN0IEo9bmV3IFcodGhpcy5i''@;'; put 'put ''YXNlKTtyZXR1cm4gSi5fcmVwb3J0ZXJTdGF0ZT10aGlzLl9yZXBvcnRlclN0YXRlLEoub2Zmc2V0PXRoaXMub2Zmc2V0LEoubGVuZ3RoPXRoaXMub2Zmc2V0K3RlLHRoaXMub2Zmc2V0Kz10ZSxKfSxXLnByb3RvdHlwZS5yYXc9ZnVuY3Rpb24odGUpe3JldHVybiB0aGlzLmJhc2Uuc2xpY2Uo''@;'; put 'put ''dGU/dGUub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sUS5SPU4sTi5pc0VuY29kZXJCdWZmZXI9ZnVuY3Rpb24odGUpe3JldHVybiB0ZSBpbnN0YW5jZW9mIE58fCJvYmplY3QiPT10eXBlb2YgdGUmJiJFbmNvZGVyQnVmZmVyIj09PXRlLmNvbnN0cnVjdG9yLm5hbWUmJiJudW1i''@;'; put 'put ''ZXIiPT10eXBlb2YgdGUubGVuZ3RoJiYiZnVuY3Rpb24iPT10eXBlb2YgdGUuam9pbn0sTi5wcm90b3R5cGUuam9pbj1mdW5jdGlvbih0ZSxLKXtyZXR1cm4gdGV8fCh0ZT1ZLmFsbG9jKHRoaXMubGVuZ3RoKSksS3x8KEs9MCksMD09PXRoaXMubGVuZ3RofHwoQXJyYXkuaXNBcnJheSh0aGlz''@;'; put 'put ''LnZhbHVlKT90aGlzLnZhbHVlLmZvckVhY2goZnVuY3Rpb24oSil7Si5qb2luKHRlLEspLEsrPUoubGVuZ3RofSk6KCJudW1iZXIiPT10eXBlb2YgdGhpcy52YWx1ZT90ZVtLXT10aGlzLnZhbHVlOiJzdHJpbmciPT10eXBlb2YgdGhpcy52YWx1ZT90ZS53cml0ZSh0aGlzLnZhbHVlLEspOlku''@;'; put 'put ''aXNCdWZmZXIodGhpcy52YWx1ZSkmJnRoaXMudmFsdWUuY29weSh0ZSxLKSxLKz10aGlzLmxlbmd0aCkpLHRlfX0sMTk3OTooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPVE7cmUuUmVwb3J0ZXI9aig4NDY1KS5iLHJlLkRlY29kZXJCdWZmZXI9aig2NjI1KS5DLHJlLkVuY29kZXJC''@;'; put 'put ''dWZmZXI9aig2NjI1KS5SLHJlLk5vZGU9aigxOTQ5KX0sMTk0OTooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooODQ2NSkuYixhZT1qKDY2MjUpLlIsWT1qKDY2MjUpLkMsVz1qKDk3NDYpLE49WyJzZXEiLCJzZXFvZiIsInNldCIsInNldG9mIiwib2JqaWQiLCJib29sIiwiZ2Vu''@;'; put 'put ''dGltZSIsInV0Y3RpbWUiLCJudWxsXyIsImVudW0iLCJpbnQiLCJvYmpEZXNjIiwiYml0c3RyIiwiYm1wc3RyIiwiY2hhcnN0ciIsImdlbnN0ciIsImdyYXBoc3RyIiwiaWE1c3RyIiwiaXNvNjQ2c3RyIiwibnVtc3RyIiwib2N0c3RyIiwicHJpbnRzdHIiLCJ0NjFzdHIiLCJ1bmlzdHIiLCJ1''@;'; put 'put ''dGY4c3RyIiwidmlkZW9zdHIiXSx0ZT1bImtleSIsIm9iaiIsInVzZSIsIm9wdGlvbmFsIiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImRlZiIsImNob2ljZSIsImFueSIsImNvbnRhaW5zIl0uY29uY2F0KE4pO2Z1bmN0aW9uIEsoc2Usb2UsY2Upe2NvbnN0IGRlPXt9O3RoaXMuX2Jhc2VTdGF0''@;'; put 'put ''ZT1kZSxkZS5uYW1lPWNlLGRlLmVuYz1zZSxkZS5wYXJlbnQ9b2V8fG51bGwsZGUuY2hpbGRyZW49bnVsbCxkZS50YWc9bnVsbCxkZS5hcmdzPW51bGwsZGUucmV2ZXJzZUFyZ3M9bnVsbCxkZS5jaG9pY2U9bnVsbCxkZS5vcHRpb25hbD0hMSxkZS5hbnk9ITEsZGUub2JqPSExLGRlLnVzZT1u''@;'; put 'put ''dWxsLGRlLnVzZURlY29kZXI9bnVsbCxkZS5rZXk9bnVsbCxkZS5kZWZhdWx0PW51bGwsZGUuZXhwbGljaXQ9bnVsbCxkZS5pbXBsaWNpdD1udWxsLGRlLmNvbnRhaW5zPW51bGwsZGUucGFyZW50fHwoZGUuY2hpbGRyZW49W10sdGhpcy5fd3JhcCgpKX1VLmV4cG9ydHM9Sztjb25zdCBKPVsi''@;'; put 'put ''ZW5jIiwicGFyZW50IiwiY2hpbGRyZW4iLCJ0YWciLCJhcmdzIiwicmV2ZXJzZUFyZ3MiLCJjaG9pY2UiLCJvcHRpb25hbCIsImFueSIsIm9iaiIsInVzZSIsImFsdGVyZWRVc2UiLCJrZXkiLCJkZWZhdWx0IiwiZXhwbGljaXQiLCJpbXBsaWNpdCIsImNvbnRhaW5zIl07Sy5wcm90b3R5cGUu''@;'; put 'put ''Y2xvbmU9ZnVuY3Rpb24oKXtjb25zdCBzZT10aGlzLl9iYXNlU3RhdGUsb2U9e307Si5mb3JFYWNoKGZ1bmN0aW9uKGRlKXtvZVtkZV09c2VbZGVdfSk7Y29uc3QgY2U9bmV3IHRoaXMuY29uc3RydWN0b3Iob2UucGFyZW50KTtyZXR1cm4gY2UuX2Jhc2VTdGF0ZT1vZSxjZX0sSy5wcm90b3R5''@;'; put 'put ''cGUuX3dyYXA9ZnVuY3Rpb24oKXtjb25zdCBzZT10aGlzLl9iYXNlU3RhdGU7dGUuZm9yRWFjaChmdW5jdGlvbihvZSl7dGhpc1tvZV09ZnVuY3Rpb24oKXtjb25zdCBjZT1uZXcgdGhpcy5jb25zdHJ1Y3Rvcih0aGlzKTtyZXR1cm4gc2UuY2hpbGRyZW4ucHVzaChjZSksY2Vbb2VdLmFwcGx5''@;'; put 'put ''KGNlLGFyZ3VtZW50cyl9fSx0aGlzKX0sSy5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRoaXMuX2Jhc2VTdGF0ZTtXKG51bGw9PT1vZS5wYXJlbnQpLHNlLmNhbGwodGhpcyksb2UuY2hpbGRyZW49b2UuY2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uKGNlKXtyZXR1cm4g''@;'; put 'put ''Y2UuX2Jhc2VTdGF0ZS5wYXJlbnQ9PT10aGlzfSx0aGlzKSxXLmVxdWFsKG9lLmNoaWxkcmVuLmxlbmd0aCwxLCJSb290IG5vZGUgY2FuIGhhdmUgb25seSBvbmUgY2hpbGQiKX0sSy5wcm90b3R5cGUuX3VzZUFyZ3M9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRoaXMuX2Jhc2VTdGF0ZSxjZT1z''@;'; put 'put ''ZS5maWx0ZXIoZnVuY3Rpb24oZGUpe3JldHVybiBkZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3J9LHRoaXMpO3NlPXNlLmZpbHRlcihmdW5jdGlvbihkZSl7cmV0dXJuIShkZSBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3IpfSx0aGlzKSwwIT09Y2UubGVuZ3RoJiYoVyhudWxsPT09''@;'; put 'put ''b2UuY2hpbGRyZW4pLG9lLmNoaWxkcmVuPWNlLGNlLmZvckVhY2goZnVuY3Rpb24oZGUpe2RlLl9iYXNlU3RhdGUucGFyZW50PXRoaXN9LHRoaXMpKSwwIT09c2UubGVuZ3RoJiYoVyhudWxsPT09b2UuYXJncyksb2UuYXJncz1zZSxvZS5yZXZlcnNlQXJncz1zZS5tYXAoZnVuY3Rpb24oZGUp''@;'; put 'put ''e2lmKCJvYmplY3QiIT10eXBlb2YgZGV8fGRlLmNvbnN0cnVjdG9yIT09T2JqZWN0KXJldHVybiBkZTtjb25zdCB2ZT17fTtyZXR1cm4gT2JqZWN0LmtleXMoZGUpLmZvckVhY2goZnVuY3Rpb24oQWUpe0FlPT0oMHxBZSkmJihBZXw9MCksdmVbZGVbQWVdXT1BZX0pLHZlfSkpfSxbIl9wZWVr''@;'; put 'put ''VGFnIiwiX2RlY29kZVRhZyIsIl91c2UiLCJfZGVjb2RlU3RyIiwiX2RlY29kZU9iamlkIiwiX2RlY29kZVRpbWUiLCJfZGVjb2RlTnVsbCIsIl9kZWNvZGVJbnQiLCJfZGVjb2RlQm9vbCIsIl9kZWNvZGVMaXN0IiwiX2VuY29kZUNvbXBvc2l0ZSIsIl9lbmNvZGVTdHIiLCJfZW5jb2RlT2Jq''@;'; put 'put ''aWQiLCJfZW5jb2RlVGltZSIsIl9lbmNvZGVOdWxsIiwiX2VuY29kZUludCIsIl9lbmNvZGVCb29sIl0uZm9yRWFjaChmdW5jdGlvbihzZSl7Sy5wcm90b3R5cGVbc2VdPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKHNlKyIgbm90IGltcGxlbWVudGVkIGZvciBlbmNvZGluZzogIit0aGlz''@;'; put 'put ''Ll9iYXNlU3RhdGUuZW5jKX19KSxOLmZvckVhY2goZnVuY3Rpb24oc2Upe0sucHJvdG90eXBlW3NlXT1mdW5jdGlvbigpe2NvbnN0IG9lPXRoaXMuX2Jhc2VTdGF0ZSxjZT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO3JldHVybiBXKG51bGw9PT1vZS50YWcpLG9lLnRh''@;'; put 'put ''Zz1zZSx0aGlzLl91c2VBcmdzKGNlKSx0aGlzfX0pLEsucHJvdG90eXBlLnVzZT1mdW5jdGlvbihzZSl7VyhzZSk7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS51c2UpLG9lLnVzZT1zZSx0aGlzfSxLLnByb3RvdHlwZS5vcHRpb25hbD1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiB0aGlzLl9iYXNlU3RhdGUub3B0aW9uYWw9ITAsdGhpc30sSy5wcm90b3R5cGUuZGVmPWZ1bmN0aW9uKHNlKXtjb25zdCBvZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIFcobnVsbD09PW9lLmRlZmF1bHQpLG9lLmRlZmF1bHQ9c2Usb2Uub3B0aW9uYWw9ITAsdGhpc30sSy5wcm90b3R5''@;'; put 'put ''cGUuZXhwbGljaXQ9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gVyhudWxsPT09b2UuZXhwbGljaXQmJm51bGw9PT1vZS5pbXBsaWNpdCksb2UuZXhwbGljaXQ9c2UsdGhpc30sSy5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRo''@;'; put 'put ''aXMuX2Jhc2VTdGF0ZTtyZXR1cm4gVyhudWxsPT09b2UuZXhwbGljaXQmJm51bGw9PT1vZS5pbXBsaWNpdCksb2UuaW1wbGljaXQ9c2UsdGhpc30sSy5wcm90b3R5cGUub2JqPWZ1bmN0aW9uKCl7Y29uc3Qgc2U9dGhpcy5fYmFzZVN0YXRlLG9lPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxs''@;'; put 'put ''KGFyZ3VtZW50cyk7cmV0dXJuIHNlLm9iaj0hMCwwIT09b2UubGVuZ3RoJiZ0aGlzLl91c2VBcmdzKG9lKSx0aGlzfSxLLnByb3RvdHlwZS5rZXk9ZnVuY3Rpb24oc2Upe2NvbnN0IG9lPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gVyhudWxsPT09b2Uua2V5KSxvZS5rZXk9c2UsdGhpc30sSy5w''@;'; put 'put ''cm90b3R5cGUuYW55PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jhc2VTdGF0ZS5hbnk9ITAsdGhpc30sSy5wcm90b3R5cGUuY2hvaWNlPWZ1bmN0aW9uKHNlKXtjb25zdCBvZT10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIFcobnVsbD09PW9lLmNob2ljZSksb2UuY2hvaWNlPXNlLHRoaXMuX3Vz''@;'; put 'put ''ZUFyZ3MoT2JqZWN0LmtleXMoc2UpLm1hcChmdW5jdGlvbihjZSl7cmV0dXJuIHNlW2NlXX0pKSx0aGlzfSxLLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihzZSl7Y29uc3Qgb2U9dGhpcy5fYmFzZVN0YXRlO3JldHVybiBXKG51bGw9PT1vZS51c2UpLG9lLmNvbnRhaW5zPXNlLHRoaXN9''@;'; put 'put ''LEsucHJvdG90eXBlLl9kZWNvZGU9ZnVuY3Rpb24oc2Usb2Upe2NvbnN0IGNlPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09Y2UucGFyZW50KXJldHVybiBzZS53cmFwUmVzdWx0KGNlLmNoaWxkcmVuWzBdLl9kZWNvZGUoc2Usb2UpKTtsZXQgZGUsdmU9Y2UuZGVmYXVsdCxBZT0hMCxrZT1u''@;'; put 'put ''dWxsO2lmKG51bGwhPT1jZS5rZXkmJihrZT1zZS5lbnRlcktleShjZS5rZXkpKSxjZS5vcHRpb25hbCl7bGV0IFNlPW51bGw7aWYobnVsbCE9PWNlLmV4cGxpY2l0P1NlPWNlLmV4cGxpY2l0Om51bGwhPT1jZS5pbXBsaWNpdD9TZT1jZS5pbXBsaWNpdDpudWxsIT09Y2UudGFnJiYoU2U9Y2Uu''@;'; put 'put ''dGFnKSxudWxsIT09U2V8fGNlLmFueSl7aWYoQWU9dGhpcy5fcGVla1RhZyhzZSxTZSxjZS5hbnkpLHNlLmlzRXJyb3IoQWUpKXJldHVybiBBZX1lbHNle2NvbnN0IEllPXNlLnNhdmUoKTt0cnl7bnVsbD09PWNlLmNob2ljZT90aGlzLl9kZWNvZGVHZW5lcmljKGNlLnRhZyxzZSxvZSk6dGhp''@;'; put 'put ''cy5fZGVjb2RlQ2hvaWNlKHNlLG9lKSxBZT0hMH1jYXRjaChUZSl7QWU9ITF9c2UucmVzdG9yZShJZSl9fWlmKGNlLm9iaiYmQWUmJihkZT1zZS5lbnRlck9iamVjdCgpKSxBZSl7aWYobnVsbCE9PWNlLmV4cGxpY2l0KXtjb25zdCBJZT10aGlzLl9kZWNvZGVUYWcoc2UsY2UuZXhwbGljaXQp''@;'; put 'put ''O2lmKHNlLmlzRXJyb3IoSWUpKXJldHVybiBJZTtzZT1JZX1jb25zdCBTZT1zZS5vZmZzZXQ7aWYobnVsbD09PWNlLnVzZSYmbnVsbD09PWNlLmNob2ljZSl7bGV0IEllO2NlLmFueSYmKEllPXNlLnNhdmUoKSk7Y29uc3QgVGU9dGhpcy5fZGVjb2RlVGFnKHNlLG51bGwhPT1jZS5pbXBsaWNp''@;'; put 'put ''dD9jZS5pbXBsaWNpdDpjZS50YWcsY2UuYW55KTtpZihzZS5pc0Vycm9yKFRlKSlyZXR1cm4gVGU7Y2UuYW55P3ZlPXNlLnJhdyhJZSk6c2U9VGV9aWYob2UmJm9lLnRyYWNrJiZudWxsIT09Y2UudGFnJiZvZS50cmFjayhzZS5wYXRoKCksU2Usc2UubGVuZ3RoLCJ0YWdnZWQiKSxvZSYmb2Uu''@;'; put 'put ''dHJhY2smJm51bGwhPT1jZS50YWcmJm9lLnRyYWNrKHNlLnBhdGgoKSxzZS5vZmZzZXQsc2UubGVuZ3RoLCJjb250ZW50IiksY2UuYW55fHwodmU9bnVsbD09PWNlLmNob2ljZT90aGlzLl9kZWNvZGVHZW5lcmljKGNlLnRhZyxzZSxvZSk6dGhpcy5fZGVjb2RlQ2hvaWNlKHNlLG9lKSksc2Uu''@;'; put 'put ''aXNFcnJvcih2ZSkpcmV0dXJuIHZlO2lmKGNlLmFueXx8bnVsbCE9PWNlLmNob2ljZXx8bnVsbD09PWNlLmNoaWxkcmVufHxjZS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKEllKXtJZS5fZGVjb2RlKHNlLG9lKX0pLGNlLmNvbnRhaW5zJiYoIm9jdHN0ciI9PT1jZS50YWd8fCJiaXRzdHIi''@;'; put 'put ''PT09Y2UudGFnKSl7Y29uc3QgSWU9bmV3IFkodmUpO3ZlPXRoaXMuX2dldFVzZShjZS5jb250YWlucyxzZS5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUoSWUsb2UpfX1yZXR1cm4gY2Uub2JqJiZBZSYmKHZlPXNlLmxlYXZlT2JqZWN0KGRlKSksbnVsbD09PWNlLmtleXx8bnVsbD09PXZl''@;'; put 'put ''JiYhMCE9PUFlP251bGwhPT1rZSYmc2UuZXhpdEtleShrZSk6c2UubGVhdmVLZXkoa2UsY2Uua2V5LHZlKSx2ZX0sSy5wcm90b3R5cGUuX2RlY29kZUdlbmVyaWM9ZnVuY3Rpb24oc2Usb2UsY2Upe2NvbnN0IGRlPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4ic2VxIj09PXNlfHwic2V0Ij09PXNl''@;'; put 'put ''P251bGw6InNlcW9mIj09PXNlfHwic2V0b2YiPT09c2U/dGhpcy5fZGVjb2RlTGlzdChvZSxzZSxkZS5hcmdzWzBdLGNlKTovc3RyJC8udGVzdChzZSk/dGhpcy5fZGVjb2RlU3RyKG9lLHNlLGNlKToib2JqaWQiPT09c2UmJmRlLmFyZ3M/dGhpcy5fZGVjb2RlT2JqaWQob2UsZGUuYXJnc1sw''@;'; put 'put ''XSxkZS5hcmdzWzFdLGNlKToib2JqaWQiPT09c2U/dGhpcy5fZGVjb2RlT2JqaWQob2UsbnVsbCxudWxsLGNlKToiZ2VudGltZSI9PT1zZXx8InV0Y3RpbWUiPT09c2U/dGhpcy5fZGVjb2RlVGltZShvZSxzZSxjZSk6Im51bGxfIj09PXNlP3RoaXMuX2RlY29kZU51bGwob2UsY2UpOiJib29s''@;'; put 'put ''Ij09PXNlP3RoaXMuX2RlY29kZUJvb2wob2UsY2UpOiJvYmpEZXNjIj09PXNlP3RoaXMuX2RlY29kZVN0cihvZSxzZSxjZSk6ImludCI9PT1zZXx8ImVudW0iPT09c2U/dGhpcy5fZGVjb2RlSW50KG9lLGRlLmFyZ3MmJmRlLmFyZ3NbMF0sY2UpOm51bGwhPT1kZS51c2U/dGhpcy5fZ2V0VXNl''@;'; put 'put ''KGRlLnVzZSxvZS5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUob2UsY2UpOm9lLmVycm9yKCJ1bmtub3duIHRhZzogIitzZSl9LEsucHJvdG90eXBlLl9nZXRVc2U9ZnVuY3Rpb24oc2Usb2Upe2NvbnN0IGNlPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gY2UudXNlRGVjb2Rlcj10aGlzLl91''@;'; put 'put ''c2Uoc2Usb2UpLFcobnVsbD09PWNlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5wYXJlbnQpLGNlLnVzZURlY29kZXI9Y2UudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmNoaWxkcmVuWzBdLGNlLmltcGxpY2l0IT09Y2UudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0JiYoY2UudXNlRGVjb2Rl''@;'; put 'put ''cj1jZS51c2VEZWNvZGVyLmNsb25lKCksY2UudXNlRGVjb2Rlci5fYmFzZVN0YXRlLmltcGxpY2l0PWNlLmltcGxpY2l0KSxjZS51c2VEZWNvZGVyfSxLLnByb3RvdHlwZS5fZGVjb2RlQ2hvaWNlPWZ1bmN0aW9uKHNlLG9lKXtjb25zdCBjZT10aGlzLl9iYXNlU3RhdGU7bGV0IGRlPW51bGws''@;'; put 'put ''dmU9ITE7cmV0dXJuIE9iamVjdC5rZXlzKGNlLmNob2ljZSkuc29tZShmdW5jdGlvbihBZSl7Y29uc3Qga2U9c2Uuc2F2ZSgpLFNlPWNlLmNob2ljZVtBZV07dHJ5e2NvbnN0IEllPVNlLl9kZWNvZGUoc2Usb2UpO2lmKHNlLmlzRXJyb3IoSWUpKXJldHVybiExO2RlPXt0eXBlOkFlLHZhbHVl''@;'; put 'put ''OkllfSx2ZT0hMH1jYXRjaChJZSl7cmV0dXJuIHNlLnJlc3RvcmUoa2UpLCExfXJldHVybiEwfSx0aGlzKSx2ZT9kZTpzZS5lcnJvcigiQ2hvaWNlIG5vdCBtYXRjaGVkIil9LEsucHJvdG90eXBlLl9jcmVhdGVFbmNvZGVyQnVmZmVyPWZ1bmN0aW9uKHNlKXtyZXR1cm4gbmV3IGFlKHNlLHRo''@;'; put 'put ''aXMucmVwb3J0ZXIpfSxLLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKHNlLG9lLGNlKXtjb25zdCBkZT10aGlzLl9iYXNlU3RhdGU7aWYobnVsbCE9PWRlLmRlZmF1bHQmJmRlLmRlZmF1bHQ9PT1zZSlyZXR1cm47Y29uc3QgdmU9dGhpcy5fZW5jb2RlVmFsdWUoc2Usb2UsY2UpO3JldHVy''@;'; put 'put ''biB2b2lkIDA9PT12ZXx8dGhpcy5fc2tpcERlZmF1bHQodmUsb2UsY2UpP3ZvaWQgMDp2ZX0sSy5wcm90b3R5cGUuX2VuY29kZVZhbHVlPWZ1bmN0aW9uKHNlLG9lLGNlKXtjb25zdCBkZT10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PWRlLnBhcmVudClyZXR1cm4gZGUuY2hpbGRyZW5bMF0u''@;'; put 'put ''X2VuY29kZShzZSxvZXx8bmV3IHJlKTtsZXQgdmU9bnVsbDtpZih0aGlzLnJlcG9ydGVyPW9lLGRlLm9wdGlvbmFsJiZ2b2lkIDA9PT1zZSl7aWYobnVsbD09PWRlLmRlZmF1bHQpcmV0dXJuO3NlPWRlLmRlZmF1bHR9bGV0IEFlPW51bGwsa2U9ITE7aWYoZGUuYW55KXZlPXRoaXMuX2NyZWF0''@;'; put 'put ''ZUVuY29kZXJCdWZmZXIoc2UpO2Vsc2UgaWYoZGUuY2hvaWNlKXZlPXRoaXMuX2VuY29kZUNob2ljZShzZSxvZSk7ZWxzZSBpZihkZS5jb250YWlucylBZT10aGlzLl9nZXRVc2UoZGUuY29udGFpbnMsY2UpLl9lbmNvZGUoc2Usb2UpLGtlPSEwO2Vsc2UgaWYoZGUuY2hpbGRyZW4pQWU9ZGUu''@;'; put 'put ''Y2hpbGRyZW4ubWFwKGZ1bmN0aW9uKFNlKXtpZigibnVsbF8iPT09U2UuX2Jhc2VTdGF0ZS50YWcpcmV0dXJuIFNlLl9lbmNvZGUobnVsbCxvZSxzZSk7aWYobnVsbD09PVNlLl9iYXNlU3RhdGUua2V5KXJldHVybiBvZS5lcnJvcigiQ2hpbGQgc2hvdWxkIGhhdmUgYSBrZXkiKTtjb25zdCBJ''@;'; put 'put ''ZT1vZS5lbnRlcktleShTZS5fYmFzZVN0YXRlLmtleSk7aWYoIm9iamVjdCIhPXR5cGVvZiBzZSlyZXR1cm4gb2UuZXJyb3IoIkNoaWxkIGV4cGVjdGVkLCBidXQgaW5wdXQgaXMgbm90IG9iamVjdCIpO2NvbnN0IFRlPVNlLl9lbmNvZGUoc2VbU2UuX2Jhc2VTdGF0ZS5rZXldLG9lLHNlKTty''@;'; put 'put ''ZXR1cm4gb2UubGVhdmVLZXkoSWUpLFRlfSx0aGlzKS5maWx0ZXIoZnVuY3Rpb24oU2Upe3JldHVybiBTZX0pLEFlPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoQWUpO2Vsc2UgaWYoInNlcW9mIj09PWRlLnRhZ3x8InNldG9mIj09PWRlLnRhZyl7aWYoIWRlLmFyZ3N8fDEhPT1kZS5hcmdz''@;'; put 'put ''Lmxlbmd0aClyZXR1cm4gb2UuZXJyb3IoIlRvbyBtYW55IGFyZ3MgZm9yIDogIitkZS50YWcpO2lmKCFBcnJheS5pc0FycmF5KHNlKSlyZXR1cm4gb2UuZXJyb3IoInNlcW9mL3NldG9mLCBidXQgZGF0YSBpcyBub3QgQXJyYXkiKTtjb25zdCBTZT10aGlzLmNsb25lKCk7U2UuX2Jhc2VTdGF0''@;'; put 'put ''ZS5pbXBsaWNpdD1udWxsLEFlPXRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoc2UubWFwKGZ1bmN0aW9uKEllKXtyZXR1cm4gdGhpcy5fZ2V0VXNlKHRoaXMuX2Jhc2VTdGF0ZS5hcmdzWzBdLHNlKS5fZW5jb2RlKEllLG9lKX0sU2UpKX1lbHNlIG51bGwhPT1kZS51c2U/dmU9dGhpcy5fZ2V0''@;'; put 'put ''VXNlKGRlLnVzZSxjZSkuX2VuY29kZShzZSxvZSk6KEFlPXRoaXMuX2VuY29kZVByaW1pdGl2ZShkZS50YWcsc2UpLGtlPSEwKTtpZighZGUuYW55JiZudWxsPT09ZGUuY2hvaWNlKXtjb25zdCBTZT1udWxsIT09ZGUuaW1wbGljaXQ/ZGUuaW1wbGljaXQ6ZGUudGFnLEllPW51bGw9PT1kZS5p''@;'; put 'put ''bXBsaWNpdD8idW5pdmVyc2FsIjoiY29udGV4dCI7bnVsbD09PVNlP251bGw9PT1kZS51c2UmJm9lLmVycm9yKCJUYWcgY291bGQgYmUgb21pdHRlZCBvbmx5IGZvciAudXNlKCkiKTpudWxsPT09ZGUudXNlJiYodmU9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKFNlLGtlLEllLEFlKSl9cmV0dXJu''@;'; put 'put ''IG51bGwhPT1kZS5leHBsaWNpdCYmKHZlPXRoaXMuX2VuY29kZUNvbXBvc2l0ZShkZS5leHBsaWNpdCwhMSwiY29udGV4dCIsdmUpKSx2ZX0sSy5wcm90b3R5cGUuX2VuY29kZUNob2ljZT1mdW5jdGlvbihzZSxvZSl7Y29uc3QgY2U9dGhpcy5fYmFzZVN0YXRlLGRlPWNlLmNob2ljZVtzZS50''@;'; put 'put ''eXBlXTtyZXR1cm4gZGV8fFcoITEsc2UudHlwZSsiIG5vdCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKGNlLmNob2ljZSkpKSxkZS5fZW5jb2RlKHNlLnZhbHVlLG9lKX0sSy5wcm90b3R5cGUuX2VuY29kZVByaW1pdGl2ZT1mdW5jdGlvbihzZSxvZSl7Y29uc3QgY2U9''@;'; put 'put ''dGhpcy5fYmFzZVN0YXRlO2lmKC9zdHIkLy50ZXN0KHNlKSlyZXR1cm4gdGhpcy5fZW5jb2RlU3RyKG9lLHNlKTtpZigib2JqaWQiPT09c2UmJmNlLmFyZ3MpcmV0dXJuIHRoaXMuX2VuY29kZU9iamlkKG9lLGNlLnJldmVyc2VBcmdzWzBdLGNlLmFyZ3NbMV0pO2lmKCJvYmppZCI9PT1zZSly''@;'; put 'put ''ZXR1cm4gdGhpcy5fZW5jb2RlT2JqaWQob2UsbnVsbCxudWxsKTtpZigiZ2VudGltZSI9PT1zZXx8InV0Y3RpbWUiPT09c2UpcmV0dXJuIHRoaXMuX2VuY29kZVRpbWUob2Usc2UpO2lmKCJudWxsXyI9PT1zZSlyZXR1cm4gdGhpcy5fZW5jb2RlTnVsbCgpO2lmKCJpbnQiPT09c2V8fCJlbnVt''@;'; put 'put ''Ij09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVJbnQob2UsY2UuYXJncyYmY2UucmV2ZXJzZUFyZ3NbMF0pO2lmKCJib29sIj09PXNlKXJldHVybiB0aGlzLl9lbmNvZGVCb29sKG9lKTtpZigib2JqRGVzYyI9PT1zZSlyZXR1cm4gdGhpcy5fZW5jb2RlU3RyKG9lLHNlKTt0aHJvdyBuZXcgRXJy''@;'; put 'put ''b3IoIlVuc3VwcG9ydGVkIHRhZzogIitzZSl9LEsucHJvdG90eXBlLl9pc051bXN0cj1mdW5jdGlvbihzZSl7cmV0dXJuL15bMC05IF0qJC8udGVzdChzZSl9LEsucHJvdG90eXBlLl9pc1ByaW50c3RyPWZ1bmN0aW9uKHNlKXtyZXR1cm4vXltBLVphLXowLTkgJygpKywtLi86PT9dKiQvLnRl''@;'; put 'put ''c3Qoc2UpfX0sODQ2NTooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooNTcxNyk7ZnVuY3Rpb24gYWUoVyl7dGhpcy5fcmVwb3J0ZXJTdGF0ZT17b2JqOm51bGwscGF0aDpbXSxvcHRpb25zOld8fHt9LGVycm9yczpbXX19ZnVuY3Rpb24gWShXLE4pe3RoaXMucGF0aD1XLHRoaXMu''@;'; put 'put ''cmV0aHJvdyhOKX1RLmI9YWUsYWUucHJvdG90eXBlLmlzRXJyb3I9ZnVuY3Rpb24oVyl7cmV0dXJuIFcgaW5zdGFuY2VvZiBZfSxhZS5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbigpe2NvbnN0IFc9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyZXR1cm57b2JqOlcub2JqLHBhdGhMZW46Vy5wYXRoLmxl''@;'; put 'put ''bmd0aH19LGFlLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fcmVwb3J0ZXJTdGF0ZTtOLm9iaj1XLm9iaixOLnBhdGg9Ti5wYXRoLnNsaWNlKDAsVy5wYXRoTGVuKX0sYWUucHJvdG90eXBlLmVudGVyS2V5PWZ1bmN0aW9uKFcpe3JldHVybiB0aGlzLl9yZXBv''@;'; put 'put ''cnRlclN0YXRlLnBhdGgucHVzaChXKX0sYWUucHJvdG90eXBlLmV4aXRLZXk9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9yZXBvcnRlclN0YXRlO04ucGF0aD1OLnBhdGguc2xpY2UoMCxXLTEpfSxhZS5wcm90b3R5cGUubGVhdmVLZXk9ZnVuY3Rpb24oVyxOLHRlKXtjb25zdCBLPXRoaXMu''@;'; put 'put ''X3JlcG9ydGVyU3RhdGU7dGhpcy5leGl0S2V5KFcpLG51bGwhPT1LLm9iaiYmKEsub2JqW05dPXRlKX0sYWUucHJvdG90eXBlLnBhdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVwb3J0ZXJTdGF0ZS5wYXRoLmpvaW4oIi8iKX0sYWUucHJvdG90eXBlLmVudGVyT2JqZWN0PWZ1bmN0aW9u''@;'; put 'put ''KCl7Y29uc3QgVz10aGlzLl9yZXBvcnRlclN0YXRlLE49Vy5vYmo7cmV0dXJuIFcub2JqPXt9LE59LGFlLnByb3RvdHlwZS5sZWF2ZU9iamVjdD1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX3JlcG9ydGVyU3RhdGUsdGU9Ti5vYmo7cmV0dXJuIE4ub2JqPVcsdGV9LGFlLnByb3RvdHlwZS5l''@;'; put 'put ''cnJvcj1mdW5jdGlvbihXKXtsZXQgTjtjb25zdCB0ZT10aGlzLl9yZXBvcnRlclN0YXRlLEs9VyBpbnN0YW5jZW9mIFk7aWYoTj1LP1c6bmV3IFkodGUucGF0aC5tYXAoZnVuY3Rpb24oSil7cmV0dXJuIlsiK0pTT04uc3RyaW5naWZ5KEopKyJdIn0pLmpvaW4oIiIpLFcubWVzc2FnZXx8VyxX''@;'; put 'put ''LnN0YWNrKSwhdGUub3B0aW9ucy5wYXJ0aWFsKXRocm93IE47cmV0dXJuIEt8fHRlLmVycm9ycy5wdXNoKE4pLE59LGFlLnByb3RvdHlwZS53cmFwUmVzdWx0PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fcmVwb3J0ZXJTdGF0ZTtyZXR1cm4gTi5vcHRpb25zLnBhcnRpYWw/e3Jlc3VsdDp0''@;'; put 'put ''aGlzLmlzRXJyb3IoVyk/bnVsbDpXLGVycm9yczpOLmVycm9yc306V30scmUoWSxFcnJvciksWS5wcm90b3R5cGUucmV0aHJvdz1mdW5jdGlvbihXKXtpZih0aGlzLm1lc3NhZ2U9VysiIGF0OiAiKyh0aGlzLnBhdGh8fCIoc2hhbGxvdykiKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJy''@;'; put 'put ''b3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxZKSwhdGhpcy5zdGFjayl0cnl7dGhyb3cgbmV3IEVycm9yKHRoaXMubWVzc2FnZSl9Y2F0Y2goTil7dGhpcy5zdGFjaz1OLnN0YWNrfXJldHVybiB0aGlzfX0sMTYwOihVLFEpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGoocmUpe2NvbnN0IGFl''@;'; put 'put ''PXt9O3JldHVybiBPYmplY3Qua2V5cyhyZSkuZm9yRWFjaChmdW5jdGlvbihZKXsoMHxZKT09WSYmKFl8PTApLGFlW3JlW1ldXT1ZfSksYWV9US50YWdDbGFzcz17MDoidW5pdmVyc2FsIiwxOiJhcHBsaWNhdGlvbiIsMjoiY29udGV4dCIsMzoicHJpdmF0ZSJ9LFEudGFnQ2xhc3NCeU5hbWU9''@;'; put 'put ''aihRLnRhZ0NsYXNzKSxRLnRhZz17MDoiZW5kIiwxOiJib29sIiwyOiJpbnQiLDM6ImJpdHN0ciIsNDoib2N0c3RyIiw1OiJudWxsXyIsNjoib2JqaWQiLDc6Im9iakRlc2MiLDg6ImV4dGVybmFsIiw5OiJyZWFsIiwxMDoiZW51bSIsMTE6ImVtYmVkIiwxMjoidXRmOHN0ciIsMTM6InJlbGF0''@;'; put 'put ''aXZlT2lkIiwxNjoic2VxIiwxNzoic2V0IiwxODoibnVtc3RyIiwxOToicHJpbnRzdHIiLDIwOiJ0NjFzdHIiLDIxOiJ2aWRlb3N0ciIsMjI6ImlhNXN0ciIsMjM6InV0Y3RpbWUiLDI0OiJnZW50aW1lIiwyNToiZ3JhcGhzdHIiLDI2OiJpc282NDZzdHIiLDI3OiJnZW5zdHIiLDI4OiJ1bmlz''@;'; put 'put ''dHIiLDI5OiJjaGFyc3RyIiwzMDoiYm1wc3RyIn0sUS50YWdCeU5hbWU9aihRLnRhZyl9LDY4MjY6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1RO3JlLl9yZXZlcnNlPWZ1bmN0aW9uKGFlKXtjb25zdCBZPXt9O3JldHVybiBPYmplY3Qua2V5cyhhZSkuZm9yRWFjaChmdW5jdGlv''@;'; put 'put ''bihXKXsoMHxXKT09VyYmKFd8PTApLFlbYWVbV11dPVd9KSxZfSxyZS5kZXI9aigxNjApfSwxNjcxOihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig1NzE3KSxhZT1qKDQ1OTApLFk9aig2NjI1KS5DLFc9aigxOTQ5KSxOPWooMTYwKTtmdW5jdGlvbiB0ZShvZSl7dGhpcy5lbmM9''@;'; put 'put ''ImRlciIsdGhpcy5uYW1lPW9lLm5hbWUsdGhpcy5lbnRpdHk9b2UsdGhpcy50cmVlPW5ldyBLLHRoaXMudHJlZS5faW5pdChvZS5ib2R5KX1mdW5jdGlvbiBLKG9lKXtXLmNhbGwodGhpcywiZGVyIixvZSl9ZnVuY3Rpb24gSihvZSxjZSl7bGV0IGRlPW9lLnJlYWRVSW50OChjZSk7aWYob2Uu''@;'; put 'put ''aXNFcnJvcihkZSkpcmV0dXJuIGRlO2NvbnN0IHZlPU4udGFnQ2xhc3NbZGU+PjZdLEFlPTA9PSgzMiZkZSk7aWYoMzE9PSgzMSZkZSkpe2xldCBrZT1kZTtmb3IoZGU9MDsxMjg9PSgxMjgma2UpOyl7aWYoa2U9b2UucmVhZFVJbnQ4KGNlKSxvZS5pc0Vycm9yKGtlKSlyZXR1cm4ga2U7ZGU8''@;'; put 'put ''PD03LGRlfD0xMjcma2V9fWVsc2UgZGUmPTMxO3JldHVybntjbHM6dmUscHJpbWl0aXZlOkFlLHRhZzpkZSx0YWdTdHI6Ti50YWdbZGVdfX1mdW5jdGlvbiBzZShvZSxjZSxkZSl7bGV0IHZlPW9lLnJlYWRVSW50OChkZSk7aWYob2UuaXNFcnJvcih2ZSkpcmV0dXJuIHZlO2lmKCFjZSYmMTI4''@;'; put 'put ''PT09dmUpcmV0dXJuIG51bGw7aWYoMD09KDEyOCZ2ZSkpcmV0dXJuIHZlO2NvbnN0IEFlPTEyNyZ2ZTtpZihBZT40KXJldHVybiBvZS5lcnJvcigibGVuZ3RoIG9jdGVjdCBpcyB0b28gbG9uZyIpO3ZlPTA7Zm9yKGxldCBrZT0wO2tlPEFlO2tlKyspe3ZlPDw9ODtjb25zdCBTZT1vZS5yZWFk''@;'; put 'put ''VUludDgoZGUpO2lmKG9lLmlzRXJyb3IoU2UpKXJldHVybiBTZTt2ZXw9U2V9cmV0dXJuIHZlfVUuZXhwb3J0cz10ZSx0ZS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gWS5pc0RlY29kZXJCdWZmZXIob2UpfHwob2U9bmV3IFkob2UsY2UpKSx0aGlzLnRyZWUuX2Rl''@;'; put 'put ''Y29kZShvZSxjZSl9LHJlKEssVyksSy5wcm90b3R5cGUuX3BlZWtUYWc9ZnVuY3Rpb24ob2UsY2UsZGUpe2lmKG9lLmlzRW1wdHkoKSlyZXR1cm4hMTtjb25zdCB2ZT1vZS5zYXZlKCksQWU9SihvZSwnRmFpbGVkIHRvIHBlZWsgdGFnOiAiJytjZSsnIicpO3JldHVybiBvZS5pc0Vycm9yKEFl''@;'; put 'put ''KT9BZToob2UucmVzdG9yZSh2ZSksQWUudGFnPT09Y2V8fEFlLnRhZ1N0cj09PWNlfHxBZS50YWdTdHIrIm9mIj09PWNlfHxkZSl9LEsucHJvdG90eXBlLl9kZWNvZGVUYWc9ZnVuY3Rpb24ob2UsY2UsZGUpe2NvbnN0IHZlPUoob2UsJ0ZhaWxlZCB0byBkZWNvZGUgdGFnIG9mICInK2NlKyci''@;'; put 'put ''Jyk7aWYob2UuaXNFcnJvcih2ZSkpcmV0dXJuIHZlO2xldCBBZT1zZShvZSx2ZS5wcmltaXRpdmUsJ0ZhaWxlZCB0byBnZXQgbGVuZ3RoIG9mICInK2NlKyciJyk7aWYob2UuaXNFcnJvcihBZSkpcmV0dXJuIEFlO2lmKCFkZSYmdmUudGFnIT09Y2UmJnZlLnRhZ1N0ciE9PWNlJiZ2ZS50YWdT''@;'; put 'put ''dHIrIm9mIiE9PWNlKXJldHVybiBvZS5lcnJvcignRmFpbGVkIHRvIG1hdGNoIHRhZzogIicrY2UrJyInKTtpZih2ZS5wcmltaXRpdmV8fG51bGwhPT1BZSlyZXR1cm4gb2Uuc2tpcChBZSwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK2NlKyciJyk7Y29uc3Qga2U9b2Uuc2F2ZSgpLFNl''@;'; put 'put ''PXRoaXMuX3NraXBVbnRpbEVuZChvZSwnRmFpbGVkIHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gb2UuaXNFcnJvcihTZSk/U2U6KEFlPW9lLm9mZnNldC1rZS5vZmZzZXQsb2UucmVzdG9yZShrZSksb2Uuc2tpcChBZSwnRmFpbGVkIHRv''@;'; put 'put ''IG1hdGNoIGJvZHkgb2Y6ICInK2NlKyciJykpfSxLLnByb3RvdHlwZS5fc2tpcFVudGlsRW5kPWZ1bmN0aW9uKG9lLGNlKXtmb3IoOzspe2NvbnN0IGRlPUoob2UsY2UpO2lmKG9lLmlzRXJyb3IoZGUpKXJldHVybiBkZTtjb25zdCB2ZT1zZShvZSxkZS5wcmltaXRpdmUsY2UpO2lmKG9lLmlz''@;'; put 'put ''RXJyb3IodmUpKXJldHVybiB2ZTtsZXQgQWU7aWYoQWU9ZGUucHJpbWl0aXZlfHxudWxsIT09dmU/b2Uuc2tpcCh2ZSk6dGhpcy5fc2tpcFVudGlsRW5kKG9lLGNlKSxvZS5pc0Vycm9yKEFlKSlyZXR1cm4gQWU7aWYoImVuZCI9PT1kZS50YWdTdHIpYnJlYWt9fSxLLnByb3RvdHlwZS5fZGVj''@;'; put 'put ''b2RlTGlzdD1mdW5jdGlvbihvZSxjZSxkZSx2ZSl7Y29uc3QgQWU9W107Zm9yKDshb2UuaXNFbXB0eSgpOyl7Y29uc3Qga2U9dGhpcy5fcGVla1RhZyhvZSwiZW5kIik7aWYob2UuaXNFcnJvcihrZSkpcmV0dXJuIGtlO2NvbnN0IFNlPWRlLmRlY29kZShvZSwiZGVyIix2ZSk7aWYob2UuaXNF''@;'; put 'put ''cnJvcihTZSkmJmtlKWJyZWFrO0FlLnB1c2goU2UpfXJldHVybiBBZX0sSy5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5jdGlvbihvZSxjZSl7aWYoImJpdHN0ciI9PT1jZSl7Y29uc3QgZGU9b2UucmVhZFVJbnQ4KCk7cmV0dXJuIG9lLmlzRXJyb3IoZGUpP2RlOnt1bnVzZWQ6ZGUsZGF0YTpv''@;'; put 'put ''ZS5yYXcoKX19aWYoImJtcHN0ciI9PT1jZSl7Y29uc3QgZGU9b2UucmF3KCk7aWYoZGUubGVuZ3RoJTI9PTEpcmV0dXJuIG9lLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCIpO2xldCB2ZT0iIjtmb3IobGV0IEFlPTA7QWU8ZGUubGVuZ3Ro''@;'; put 'put ''LzI7QWUrKyl2ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShkZS5yZWFkVUludDE2QkUoMipBZSkpO3JldHVybiB2ZX1pZigibnVtc3RyIj09PWNlKXtjb25zdCBkZT1vZS5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNOdW1zdHIoZGUpP2RlOm9lLmVycm9yKCJEZWNvZGlu''@;'; put 'put ''ZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHVuc3VwcG9ydGVkIGNoYXJhY3RlcnMiKX1pZigib2N0c3RyIj09PWNlfHwib2JqRGVzYyI9PT1jZSlyZXR1cm4gb2UucmF3KCk7aWYoInByaW50c3RyIj09PWNlKXtjb25zdCBkZT1vZS5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhp''@;'; put 'put ''cy5faXNQcmludHN0cihkZSk/ZGU6b2UuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBwcmludHN0ciB1bnN1cHBvcnRlZCBjaGFyYWN0ZXJzIil9cmV0dXJuL3N0ciQvLnRlc3QoY2UpP29lLnJhdygpLnRvU3RyaW5nKCk6b2UuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBl''@;'; put 'put ''OiAiK2NlKyIgdW5zdXBwb3J0ZWQiKX0sSy5wcm90b3R5cGUuX2RlY29kZU9iamlkPWZ1bmN0aW9uKG9lLGNlLGRlKXtsZXQgdmU7Y29uc3QgQWU9W107bGV0IGtlPTAsU2U9MDtmb3IoOyFvZS5pc0VtcHR5KCk7KVNlPW9lLnJlYWRVSW50OCgpLGtlPDw9NyxrZXw9MTI3JlNlLDA9PSgxMjgm''@;'; put 'put ''U2UpJiYoQWUucHVzaChrZSksa2U9MCk7aWYoMTI4JlNlJiZBZS5wdXNoKGtlKSx2ZT1kZT9BZTpbQWVbMF0vNDB8MCxBZVswXSU0MF0uY29uY2F0KEFlLnNsaWNlKDEpKSxjZSl7bGV0IE1lPWNlW3ZlLmpvaW4oIiAiKV07dm9pZCAwPT09TWUmJihNZT1jZVt2ZS5qb2luKCIuIildKSx2b2lk''@;'; put 'put ''IDAhPT1NZSYmKHZlPU1lKX1yZXR1cm4gdmV9LEsucHJvdG90eXBlLl9kZWNvZGVUaW1lPWZ1bmN0aW9uKG9lLGNlKXtjb25zdCBkZT1vZS5yYXcoKS50b1N0cmluZygpO2xldCB2ZSxBZSxrZSxTZSxJZSxUZTtpZigiZ2VudGltZSI9PT1jZSl2ZT0wfGRlLnNsaWNlKDAsNCksQWU9MHxkZS5z''@;'; put 'put ''bGljZSg0LDYpLGtlPTB8ZGUuc2xpY2UoNiw4KSxTZT0wfGRlLnNsaWNlKDgsMTApLEllPTB8ZGUuc2xpY2UoMTAsMTIpLFRlPTB8ZGUuc2xpY2UoMTIsMTQpO2Vsc2V7aWYoInV0Y3RpbWUiIT09Y2UpcmV0dXJuIG9lLmVycm9yKCJEZWNvZGluZyAiK2NlKyIgdGltZSBpcyBub3Qgc3VwcG9y''@;'; put 'put ''dGVkIHlldCIpO3ZlPTB8ZGUuc2xpY2UoMCwyKSxBZT0wfGRlLnNsaWNlKDIsNCksa2U9MHxkZS5zbGljZSg0LDYpLFNlPTB8ZGUuc2xpY2UoNiw4KSxJZT0wfGRlLnNsaWNlKDgsMTApLFRlPTB8ZGUuc2xpY2UoMTAsMTIpLHZlPXZlPDcwPzJlMyt2ZToxOTAwK3ZlfXJldHVybiBEYXRlLlVU''@;'; put 'put ''Qyh2ZSxBZS0xLGtlLFNlLEllLFRlLDApfSxLLnByb3RvdHlwZS5fZGVjb2RlTnVsbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxLLnByb3RvdHlwZS5fZGVjb2RlQm9vbD1mdW5jdGlvbihvZSl7Y29uc3QgY2U9b2UucmVhZFVJbnQ4KCk7cmV0dXJuIG9lLmlzRXJyb3IoY2UpP2NlOjAhPT1j''@;'; put 'put ''ZX0sSy5wcm90b3R5cGUuX2RlY29kZUludD1mdW5jdGlvbihvZSxjZSl7Y29uc3QgZGU9b2UucmF3KCk7bGV0IHZlPW5ldyBhZShkZSk7cmV0dXJuIGNlJiYodmU9Y2VbdmUudG9TdHJpbmcoMTApXXx8dmUpLHZlfSxLLnByb3RvdHlwZS5fdXNlPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4iZnVu''@;'; put 'put ''Y3Rpb24iPT10eXBlb2Ygb2UmJihvZT1vZShjZSkpLG9lLl9nZXREZWNvZGVyKCJkZXIiKS50cmVlfX0sODMwNzooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPVE7cmUuZGVyPWooMTY3MSkscmUucGVtPWooOTYzMSl9LDk2MzE6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBy''@;'; put 'put ''ZT1qKDU3MTcpLGFlPWooMjM5OSkuQnVmZmVyLFk9aigxNjcxKTtmdW5jdGlvbiBXKE4pe1kuY2FsbCh0aGlzLE4pLHRoaXMuZW5jPSJwZW0ifXJlKFcsWSksVS5leHBvcnRzPVcsVy5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKE4sdGUpe2NvbnN0IEs9Ti50b1N0cmluZygpLnNwbGl0KC9b''@;'; put 'put ''XHJcbl0rL2cpLEo9dGUubGFiZWwudG9VcHBlckNhc2UoKSxzZT0vXi0tLS0tKEJFR0lOfEVORCkgKFteLV0rKS0tLS0tJC87bGV0IG9lPS0xLGNlPS0xO2ZvcihsZXQgQWU9MDtBZTxLLmxlbmd0aDtBZSsrKXtjb25zdCBrZT1LW0FlXS5tYXRjaChzZSk7aWYobnVsbCE9PWtlJiZrZVsyXT09''@;'; put 'put ''PUope2lmKC0xIT09b2Upe2lmKCJFTkQiIT09a2VbMV0pYnJlYWs7Y2U9QWU7YnJlYWt9aWYoIkJFR0lOIiE9PWtlWzFdKWJyZWFrO29lPUFlfX1pZigtMT09PW9lfHwtMT09PWNlKXRocm93IG5ldyBFcnJvcigiUEVNIHNlY3Rpb24gbm90IGZvdW5kIGZvcjogIitKKTtjb25zdCBkZT1LLnNs''@;'; put 'put ''aWNlKG9lKzEsY2UpLmpvaW4oIiIpO2RlLnJlcGxhY2UoL1teYS16MC05Ky89XSsvZ2ksIiIpO2NvbnN0IHZlPWFlLmZyb20oZGUsImJhc2U2NCIpO3JldHVybiBZLnByb3RvdHlwZS5kZWNvZGUuY2FsbCh0aGlzLHZlLHRlKX19LDY5ODQ6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBy''@;'; put 'put ''ZT1qKDU3MTcpLGFlPWooMjM5OSkuQnVmZmVyLFk9aigxOTQ5KSxXPWooMTYwKTtmdW5jdGlvbiBOKEope3RoaXMuZW5jPSJkZXIiLHRoaXMubmFtZT1KLm5hbWUsdGhpcy5lbnRpdHk9Six0aGlzLnRyZWU9bmV3IHRlLHRoaXMudHJlZS5faW5pdChKLmJvZHkpfWZ1bmN0aW9uIHRlKEope1ku''@;'; put 'put ''Y2FsbCh0aGlzLCJkZXIiLEopfWZ1bmN0aW9uIEsoSil7cmV0dXJuIEo8MTA/IjAiK0o6Sn1VLmV4cG9ydHM9TixOLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oSixzZSl7cmV0dXJuIHRoaXMudHJlZS5fZW5jb2RlKEosc2UpLmpvaW4oKX0scmUodGUsWSksdGUucHJvdG90eXBlLl9lbmNv''@;'; put 'put ''ZGVDb21wb3NpdGU9ZnVuY3Rpb24oSixzZSxvZSxjZSl7Y29uc3QgZGU9ZnVuY3Rpb24oa2UsU2UsSWUsVGUpe2xldCBNZTtpZigic2Vxb2YiPT09a2U/a2U9InNlcSI6InNldG9mIj09PWtlJiYoa2U9InNldCIpLFcudGFnQnlOYW1lLmhhc093blByb3BlcnR5KGtlKSlNZT1XLnRhZ0J5TmFt''@;'; put 'put ''ZVtrZV07ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIGtlfHwoMHxrZSkhPT1rZSlyZXR1cm4gVGUuZXJyb3IoIlVua25vd24gdGFnOiAiK2tlKTtNZT1rZX1yZXR1cm4gTWU+PTMxP1RlLmVycm9yKCJNdWx0aS1vY3RldCB0YWcgZW5jb2RpbmcgdW5zdXBwb3J0ZWQiKTooU2V8fChNZXw9MzIp''@;'; put 'put ''LE1lfD1XLnRhZ0NsYXNzQnlOYW1lW0llfHwidW5pdmVyc2FsIl08PDYsTWUpfShKLHNlLG9lLHRoaXMucmVwb3J0ZXIpO2lmKGNlLmxlbmd0aDwxMjgpe2NvbnN0IGtlPWFlLmFsbG9jKDIpO3JldHVybiBrZVswXT1kZSxrZVsxXT1jZS5sZW5ndGgsdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZl''@;'; put 'put ''cihba2UsY2VdKX1sZXQgdmU9MTtmb3IobGV0IGtlPWNlLmxlbmd0aDtrZT49MjU2O2tlPj49OCl2ZSsrO2NvbnN0IEFlPWFlLmFsbG9jKDIrdmUpO0FlWzBdPWRlLEFlWzFdPTEyOHx2ZTtmb3IobGV0IGtlPTErdmUsU2U9Y2UubGVuZ3RoO1NlPjA7a2UtLSxTZT4+PTgpQWVba2VdPTI1NSZT''@;'; put 'put ''ZTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbQWUsY2VdKX0sdGUucHJvdG90eXBlLl9lbmNvZGVTdHI9ZnVuY3Rpb24oSixzZSl7aWYoImJpdHN0ciI9PT1zZSlyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMHxKLnVudXNlZCxKLmRhdGFdKTtpZigiYm1wc3Ry''@;'; put 'put ''Ij09PXNlKXtjb25zdCBvZT1hZS5hbGxvYygyKkoubGVuZ3RoKTtmb3IobGV0IGNlPTA7Y2U8Si5sZW5ndGg7Y2UrKylvZS53cml0ZVVJbnQxNkJFKEouY2hhckNvZGVBdChjZSksMipjZSk7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIob2UpfXJldHVybiJudW1zdHIiPT09c2U/''@;'; put 'put ''dGhpcy5faXNOdW1zdHIoSik/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihKKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHN1cHBvcnRzIG9ubHkgZGlnaXRzIGFuZCBzcGFjZSIpOiJwcmludHN0ciI9PT1zZT90aGlzLl9pc1ByaW50c3Ry''@;'; put 'put ''KEopP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoSik6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6IHByaW50c3RyIHN1cHBvcnRzIG9ubHkgbGF0aW4gdXBwZXIgYW5kIGxvd2VyIGNhc2UgbGV0dGVycywgZGlnaXRzLCBzcGFjZSwgYXBvc3Ryb3BoZSwg''@;'; put 'put ''bGVmdCBhbmQgcmlndGggcGFyZW50aGVzaXMsIHBsdXMgc2lnbiwgY29tbWEsIGh5cGhlbiwgZG90LCBzbGFzaCwgY29sb24sIGVxdWFsIHNpZ24sIHF1ZXN0aW9uIG1hcmsiKTovc3RyJC8udGVzdChzZSl8fCJvYmpEZXNjIj09PXNlP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoSik6dGhp''@;'; put 'put ''cy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrc2UrIiB1bnN1cHBvcnRlZCIpfSx0ZS5wcm90b3R5cGUuX2VuY29kZU9iamlkPWZ1bmN0aW9uKEosc2Usb2Upe2lmKCJzdHJpbmciPT10eXBlb2YgSil7aWYoIXNlKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9y''@;'; put 'put ''KCJzdHJpbmcgb2JqaWQgZ2l2ZW4sIGJ1dCBubyB2YWx1ZXMgbWFwIGZvdW5kIik7aWYoIXNlLmhhc093blByb3BlcnR5KEopKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJvYmppZCBub3QgZm91bmQgaW4gdmFsdWVzIG1hcCIpO0o9c2VbSl0uc3BsaXQoL1tccy5dKy9nKTtmb3IobGV0''@;'; put 'put ''IEFlPTA7QWU8Si5sZW5ndGg7QWUrKylKW0FlXXw9MH1lbHNlIGlmKEFycmF5LmlzQXJyYXkoSikpe0o9Si5zbGljZSgpO2ZvcihsZXQgQWU9MDtBZTxKLmxlbmd0aDtBZSsrKUpbQWVdfD0wfWlmKCFBcnJheS5pc0FycmF5KEopKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJvYmppZCgp''@;'; put 'put ''IHNob3VsZCBiZSBlaXRoZXIgYXJyYXkgb3Igc3RyaW5nLCBnb3Q6ICIrSlNPTi5zdHJpbmdpZnkoSikpO2lmKCFvZSl7aWYoSlsxXT49NDApcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIlNlY29uZCBvYmppZCBpZGVudGlmaWVyIE9PQiIpO0ouc3BsaWNlKDAsMiw0MCpKWzBdK0pbMV0p''@;'; put 'put ''fWxldCBjZT0wO2ZvcihsZXQgQWU9MDtBZTxKLmxlbmd0aDtBZSsrKXtsZXQga2U9SltBZV07Zm9yKGNlKys7a2U+PTEyODtrZT4+PTcpY2UrK31jb25zdCBkZT1hZS5hbGxvYyhjZSk7bGV0IHZlPWRlLmxlbmd0aC0xO2ZvcihsZXQgQWU9Si5sZW5ndGgtMTtBZT49MDtBZS0tKXtsZXQga2U9''@;'; put 'put ''SltBZV07Zm9yKGRlW3ZlLS1dPTEyNyZrZTsoa2U+Pj03KT4wOylkZVt2ZS0tXT0xMjh8MTI3JmtlfXJldHVybiB0aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKGRlKX0sdGUucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKEosc2Upe2xldCBvZTtjb25zdCBjZT1uZXcgRGF0ZShKKTty''@;'; put 'put ''ZXR1cm4iZ2VudGltZSI9PT1zZT9vZT1bSyhjZS5nZXRVVENGdWxsWWVhcigpKSxLKGNlLmdldFVUQ01vbnRoKCkrMSksSyhjZS5nZXRVVENEYXRlKCkpLEsoY2UuZ2V0VVRDSG91cnMoKSksSyhjZS5nZXRVVENNaW51dGVzKCkpLEsoY2UuZ2V0VVRDU2Vjb25kcygpKSwiWiJdLmpvaW4oIiIp''@;'; put 'put ''OiJ1dGN0aW1lIj09PXNlP29lPVtLKGNlLmdldFVUQ0Z1bGxZZWFyKCklMTAwKSxLKGNlLmdldFVUQ01vbnRoKCkrMSksSyhjZS5nZXRVVENEYXRlKCkpLEsoY2UuZ2V0VVRDSG91cnMoKSksSyhjZS5nZXRVVENNaW51dGVzKCkpLEsoY2UuZ2V0VVRDU2Vjb25kcygpKSwiWiJdLmpvaW4oIiIp''@;'; put 'put ''OnRoaXMucmVwb3J0ZXIuZXJyb3IoIkVuY29kaW5nICIrc2UrIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IiksdGhpcy5fZW5jb2RlU3RyKG9lLCJvY3RzdHIiKX0sdGUucHJvdG90eXBlLl9lbmNvZGVOdWxsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIo''@;'; put 'put ''IiIpfSx0ZS5wcm90b3R5cGUuX2VuY29kZUludD1mdW5jdGlvbihKLHNlKXtpZigic3RyaW5nIj09dHlwZW9mIEope2lmKCFzZSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU3RyaW5nIGludCBvciBlbnVtIGdpdmVuLCBidXQgbm8gdmFsdWVzIG1hcCIpO2lmKCFzZS5oYXNPd25Qcm9w''@;'; put 'put ''ZXJ0eShKKSlyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiVmFsdWVzIG1hcCBkb2Vzbid0IGNvbnRhaW46ICIrSlNPTi5zdHJpbmdpZnkoSikpO0o9c2VbSl19aWYoIm51bWJlciIhPXR5cGVvZiBKJiYhYWUuaXNCdWZmZXIoSikpe2NvbnN0IGRlPUoudG9BcnJheSgpOyFKLnNpZ24mJjEy''@;'; put 'put ''OCZkZVswXSYmZGUudW5zaGlmdCgwKSxKPWFlLmZyb20oZGUpfWlmKGFlLmlzQnVmZmVyKEopKXtsZXQgZGU9Si5sZW5ndGg7MD09PUoubGVuZ3RoJiZkZSsrO2NvbnN0IHZlPWFlLmFsbG9jKGRlKTtyZXR1cm4gSi5jb3B5KHZlKSwwPT09Si5sZW5ndGgmJih2ZVswXT0wKSx0aGlzLl9jcmVh''@;'; put 'put ''dGVFbmNvZGVyQnVmZmVyKHZlKX1pZihKPDEyOClyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihKKTtpZihKPDI1NilyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMCxKXSk7bGV0IG9lPTE7Zm9yKGxldCBkZT1KO2RlPj0yNTY7ZGU+Pj04KW9lKys7Y29uc3QgY2U9''@;'; put 'put ''bmV3IEFycmF5KG9lKTtmb3IobGV0IGRlPWNlLmxlbmd0aC0xO2RlPj0wO2RlLS0pY2VbZGVdPTI1NSZKLEo+Pj04O3JldHVybiAxMjgmY2VbMF0mJmNlLnVuc2hpZnQoMCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihhZS5mcm9tKGNlKSl9LHRlLnByb3RvdHlwZS5fZW5jb2RlQm9vbD1m''@;'; put 'put ''dW5jdGlvbihKKXtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihKPzI1NTowKX0sdGUucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24oSixzZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEomJihKPUooc2UpKSxKLl9nZXRFbmNvZGVyKCJkZXIiKS50cmVlfSx0ZS5wcm90b3R5cGUu''@;'; put 'put ''X3NraXBEZWZhdWx0PWZ1bmN0aW9uKEosc2Usb2Upe2NvbnN0IGNlPXRoaXMuX2Jhc2VTdGF0ZTtsZXQgZGU7aWYobnVsbD09PWNlLmRlZmF1bHQpcmV0dXJuITE7Y29uc3QgdmU9Si5qb2luKCk7aWYodm9pZCAwPT09Y2UuZGVmYXVsdEJ1ZmZlciYmKGNlLmRlZmF1bHRCdWZmZXI9dGhpcy5f''@;'; put 'put ''ZW5jb2RlVmFsdWUoY2UuZGVmYXVsdCxzZSxvZSkuam9pbigpKSx2ZS5sZW5ndGghPT1jZS5kZWZhdWx0QnVmZmVyLmxlbmd0aClyZXR1cm4hMTtmb3IoZGU9MDtkZTx2ZS5sZW5ndGg7ZGUrKylpZih2ZVtkZV0hPT1jZS5kZWZhdWx0QnVmZmVyW2RlXSlyZXR1cm4hMTtyZXR1cm4hMH19LDY1''@;'; put 'put ''Nzk6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1RO3JlLmRlcj1qKDY5ODQpLHJlLnBlbT1qKDI4ODMpfSwyODgzOihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig1NzE3KSxhZT1qKDY5ODQpO2Z1bmN0aW9uIFkoVyl7YWUuY2FsbCh0aGlzLFcpLHRoaXMuZW5jPSJw''@;'; put 'put ''ZW0ifXJlKFksYWUpLFUuZXhwb3J0cz1ZLFkucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihXLE4pe2NvbnN0IHRlPWFlLnByb3RvdHlwZS5lbmNvZGUuY2FsbCh0aGlzLFcpLnRvU3RyaW5nKCJiYXNlNjQiKSxLPVsiLS0tLS1CRUdJTiAiK04ubGFiZWwrIi0tLS0tIl07Zm9yKGxldCBKPTA7''@;'; put 'put ''Sjx0ZS5sZW5ndGg7Sis9NjQpSy5wdXNoKHRlLnNsaWNlKEosSis2NCkpO3JldHVybiBLLnB1c2goIi0tLS0tRU5EICIrTi5sYWJlbCsiLS0tLS0iKSxLLmpvaW4oIlxuIil9fSw0NTkwOmZ1bmN0aW9uKFUsUSxqKXshZnVuY3Rpb24ocmUsYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBZKHgs''@;'; put 'put ''UCl7aWYoIXgpdGhyb3cgbmV3IEVycm9yKFB8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gVyh4LFApe3guc3VwZXJfPVA7dmFyIFY9ZnVuY3Rpb24oKXt9O1YucHJvdG90eXBlPVAucHJvdG90eXBlLHgucHJvdG90eXBlPW5ldyBWLHgucHJvdG90eXBlLmNvbnN0cnVjdG9yPXh9ZnVu''@;'; put 'put ''Y3Rpb24gTih4LFAsVil7aWYoTi5pc0JOKHgpKXJldHVybiB4O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJlZD1udWxsLG51bGwhPT14JiYoImxlIiE9PVAmJiJiZSIhPT1QfHwoVj1QLFA9MTApLHRoaXMuX2luaXQoeHx8MCxQfHwxMCxWfHwi''@;'; put 'put ''YmUiKSl9dmFyIHRlOyJvYmplY3QiPT10eXBlb2YgcmU/cmUuZXhwb3J0cz1OOmFlLkJOPU4sTi5CTj1OLE4ud29yZFNpemU9MjY7dHJ5e3RlPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6aig5NTApLkJ1ZmZlcn1jYXRj''@;'; put 'put ''aCh4KXt9ZnVuY3Rpb24gSyh4LFApe3ZhciBWPXguY2hhckNvZGVBdChQKTtyZXR1cm4gVj49NjUmJlY8PTcwP1YtNTU6Vj49OTcmJlY8PTEwMj9WLTg3OlYtNDgmMTV9ZnVuY3Rpb24gSih4LFAsVil7dmFyIFQ9Syh4LFYpO3JldHVybiBWLTE+PVAmJihUfD1LKHgsVi0xKTw8NCksVH1mdW5j''@;'; put 'put ''dGlvbiBzZSh4LFAsVixUKXtmb3IodmFyIFM9MCxGPU1hdGgubWluKHgubGVuZ3RoLFYpLHllPVA7eWU8Rjt5ZSsrKXt2YXIgQ2U9eC5jaGFyQ29kZUF0KHllKS00ODtTKj1ULFMrPUNlPj00OT9DZS00OSsxMDpDZT49MTc/Q2UtMTcrMTA6Q2V9cmV0dXJuIFN9Ti5pc0JOPWZ1bmN0aW9uKHgp''@;'; put 'put ''e3JldHVybiB4IGluc3RhbmNlb2YgTnx8bnVsbCE9PXgmJiJvYmplY3QiPT10eXBlb2YgeCYmeC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU4ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoeC53b3Jkcyl9LE4ubWF4PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPjA/eDpQfSxOLm1pbj1m''@;'; put 'put ''dW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQKTwwP3g6UH0sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oeCxQLFYpe2lmKCJudW1iZXIiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdE51bWJlcih4LFAsVik7aWYoIm9iamVjdCI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0QXJy''@;'; put 'put ''YXkoeCxQLFYpOyJoZXgiPT09UCYmKFA9MTYpLFkoUD09PSgwfFApJiZQPj0yJiZQPD0zNik7dmFyIFQ9MDsiLSI9PT0oeD14LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFQrKyx0aGlzLm5lZ2F0aXZlPTEpLFQ8eC5sZW5ndGgmJigxNj09PVA/dGhpcy5fcGFyc2VIZXgo''@;'; put 'put ''eCxULFYpOih0aGlzLl9wYXJzZUJhc2UoeCxQLFQpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKSkpfSxOLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih4LFAsVil7eDwwJiYodGhpcy5uZWdhdGl2ZT0xLHg9LXgpLHg8NjcxMDg4NjQ/KHRoaXMu''@;'; put 'put ''d29yZHM9WzY3MTA4ODYzJnhdLHRoaXMubGVuZ3RoPTEpOng8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooWSh4PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEw''@;'; put 'put ''ODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVil9LE4ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oeCxQLFYpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4Lmxlbmd0aCkseC5sZW5ndGg8PTApcmV0''@;'; put 'put ''dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoeC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGLHllPTA7''@;'; put 'put ''aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMSxTPTA7VD49MDtULT0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtULTFdPDw4fHhbVC0yXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO2Vs''@;'; put 'put ''c2UgaWYoImxlIj09PVYpZm9yKFQ9MCxTPTA7VDx4Lmxlbmd0aDtUKz0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtUKzFdPDw4fHhbVCsyXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO3Jl''@;'; put 'put ''dHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbih4LFAsVil7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh4Lmxlbmd0aC1QKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53''@;'; put 'put ''b3Jkc1tUXT0wO3ZhciBTLEY9MCx5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTE7VD49UDtULT0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7ZWxzZSBmb3IoVD0oeC5s''@;'; put 'put ''ZW5ndGgtUCklMj09MD9QKzE6UDtUPHgubGVuZ3RoO1QrPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODt0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rp''@;'; put 'put ''b24oeCxQLFYpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBUPTAsUz0xO1M8PTY3MTA4ODYzO1MqPVApVCsrO1QtLSxTPVMvUHwwO2Zvcih2YXIgRj14Lmxlbmd0aC1WLHllPUYlVCxDZT1NYXRoLm1pbihGLEYteWUpK1YsRGU9MCxQZT1WO1BlPENlO1BlKz1UKURlPXNl''@;'; put 'put ''KHgsUGUsUGUrVCxQKSx0aGlzLmltdWxuKFMpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpO2lmKDAhPT15ZSl7dmFyIFFlPTE7Zm9yKERlPXNlKHgsUGUseC5sZW5ndGgsUCksUGU9MDtQZTx5ZTtQZSsrKVFlKj1QO3RoaXMuaW11''@;'; put 'put ''bG4oUWUpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpfXRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbih4KXt4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0''@;'; put 'put ''aDtQKyspeC53b3Jkc1tQXT10aGlzLndvcmRzW1BdO3gubGVuZ3RoPXRoaXMubGVuZ3RoLHgubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx4LnJlZD10aGlzLnJlZH0sTi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHgpLHh9LE4u''@;'; put 'put ''cHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0''@;'; put 'put ''aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sTi5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE4ucHJvdG90eXBlLmluc3BlY3Q9''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIG9lPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIs''@;'; put 'put ''IjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAw''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGNlPVswLDAsMjUsMTYs''@;'; put 'put ''MTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGRlPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1''@;'; put 'put ''ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEs''@;'; put 'put ''MzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHZlKHgsUCxWKXtWLm5lZ2F0aXZlPVAubmVnYXRpdmVeeC5uZWdhdGl2ZTt2YXIgVD14Lmxlbmd0aCtQLmxlbmd0aHwwO1YubGVuZ3RoPVQsVD1ULTF8MDt2YXIgUz0wfHgud29yZHNbMF0sRj0w''@;'; put 'put ''fFAud29yZHNbMF0seWU9UypGLERlPXllLzY3MTA4ODY0fDA7Vi53b3Jkc1swXT02NzEwODg2MyZ5ZTtmb3IodmFyIFBlPTE7UGU8VDtQZSsrKXtmb3IodmFyIFFlPURlPj4+MjYsJGU9NjcxMDg4NjMmRGUsZ3Q9TWF0aC5taW4oUGUsUC5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS14Lmxl''@;'; put 'put ''bmd0aCsxKTt3dDw9Z3Q7d3QrKylRZSs9KHllPShTPTB8eC53b3Jkc1tQZS13dHwwXSkqKEY9MHxQLndvcmRzW3d0XSkrJGUpLzY3MTA4ODY0fDAsJGU9NjcxMDg4NjMmeWU7Vi53b3Jkc1tQZV09MHwkZSxEZT0wfFFlfXJldHVybiAwIT09RGU/Vi53b3Jkc1tQZV09MHxEZTpWLmxlbmd0aC0t''@;'; put 'put ''LFYuc3RyaXAoKX1OLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih4LFApe3ZhciBWO2lmKFA9MHxQfHwxLDE2PT09KHg9eHx8MTApfHwiaGV4Ij09PXgpe1Y9IiI7Zm9yKHZhciBUPTAsUz0wLEY9MDtGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPXRoaXMud29yZHNbRl0sQ2U9KDE2Nzc3''@;'; put 'put ''MjE1Jih5ZTw8VHxTKSkudG9TdHJpbmcoMTYpO1Y9MCE9KFM9eWU+Pj4yNC1UJjE2Nzc3MjE1KXx8RiE9PXRoaXMubGVuZ3RoLTE/b2VbNi1DZS5sZW5ndGhdK0NlK1Y6Q2UrViwoVCs9Mik+PTI2JiYoVC09MjYsRi0tKX1mb3IoMCE9PVMmJihWPVMudG9TdHJpbmcoMTYpK1YpO1YubGVuZ3Ro''@;'; put 'put ''JVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1pZih4PT09KDB8eCkmJng+PTImJng8PTM2KXt2YXIgRGU9Y2VbeF0sUGU9ZGVbeF07Vj0iIjt2YXIgUWU9dGhpcy5jbG9uZSgpO2ZvcihRZS5uZWdhdGl2ZT0wOyFRZS5pc1plcm8oKTspe3ZhciAk''@;'; put 'put ''ZT1RZS5tb2RuKFBlKS50b1N0cmluZyh4KTtWPShRZT1RZS5pZGl2bihQZSkpLmlzWmVybygpPyRlK1Y6b2VbRGUtJGUubGVuZ3RoXSskZStWfWZvcih0aGlzLmlzWmVybygpJiYoVj0iMCIrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSIt''@;'; put 'put ''IitWKSxWfVkoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sTi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgeD10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/eCs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgm''@;'; put 'put ''JjE9PT10aGlzLndvcmRzWzJdP3grPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZZKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8teDp4fSxOLnByb3RvdHlwZS50''@;'; put 'put ''b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LE4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIFkodm9pZCAwIT09dGUpLHRoaXMudG9BcnJheUxpa2UodGUseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih4LFApe3JldHVy''@;'; put 'put ''biB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD10aGlzLmJ5dGVMZW5ndGgoKSxTPVZ8fE1hdGgubWF4KDEsVCk7WShUPD1TLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksWShT''@;'; put 'put ''PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRix5ZSxDZT0ibGUiPT09UCxEZT1uZXcgeChTKSxQZT10aGlzLmNsb25lKCk7aWYoQ2Upe2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbeWVd''@;'; put 'put ''PUY7Zm9yKDt5ZTxTO3llKyspRGVbeWVdPTB9ZWxzZXtmb3IoeWU9MDt5ZTxTLVQ7eWUrKylEZVt5ZV09MDtmb3IoeWU9MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW1MteWUtMV09Rn1yZXR1cm4gRGV9LE4ucHJvdG90eXBlLl9jb3VudEJpdHM9''@;'; put 'put ''TWF0aC5jbHozMj9mdW5jdGlvbih4KXtyZXR1cm4gMzItTWF0aC5jbHozMih4KX06ZnVuY3Rpb24oeCl7dmFyIFA9eCxWPTA7cmV0dXJuIFA+PTQwOTYmJihWKz0xMyxQPj4+PTEzKSxQPj02NCYmKFYrPTcsUD4+Pj03KSxQPj04JiYoVis9NCxQPj4+PTQpLFA+PTImJihWKz0yLFA+Pj49Miks''@;'; put 'put ''VitQfSxOLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oeCl7aWYoMD09PXgpcmV0dXJuIDI2O3ZhciBQPXgsVj0wO3JldHVybiAwPT0oODE5MSZQKSYmKFYrPTEzLFA+Pj49MTMpLDA9PSgxMjcmUCkmJihWKz03LFA+Pj49NyksMD09KDE1JlApJiYoVis9NCxQPj4+PTQpLDA9PSgzJlAp''@;'; put 'put ''JiYoVis9MixQPj4+PTIpLDA9PSgxJlApJiZWKyssVn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrUH0sTi5wcm90b3R5cGUuemVyb0JpdHM9''@;'; put 'put ''ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgeD0wLFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tQXSk7aWYoeCs9ViwyNiE9PVYpYnJlYWt9cmV0dXJuIHh9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih4KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21Ud29z''@;'; put 'put ''PWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnRlc3RuKHgtMSk/dGhpcy5ub3RuKHgpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTi5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHgubGVuZ3RoOyl0aGlzLndvcmRz''@;'; put 'put ''W3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT10aGlzLndvcmRzW1BdfHgud29yZHNbUF07cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVn''@;'; put 'put ''YXRpdmUpKSx0aGlzLml1b3IoeCl9LE4ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHgpOnguY2xvbmUoKS5pb3IodGhpcyl9LE4ucHJvdG90eXBlLnVvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+''@;'; put 'put ''eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoeCk6eC5jbG9uZSgpLml1b3IodGhpcyl9LE4ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHgpe3ZhciBQO1A9dGhpcy5sZW5ndGg+eC5sZW5ndGg/eDp0aGlzO2Zvcih2YXIgVj0wO1Y8UC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGhpcy53''@;'; put 'put ''b3Jkc1tWXSZ4LndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoeCl9LE4ucHJvdG90eXBlLmFuZD1mdW5j''@;'; put 'put ''dGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoeCk6eC5jbG9uZSgpLmlhbmQodGhpcyl9LE4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh4KTp4LmNsb25l''@;'; put 'put ''KCkuaXVhbmQodGhpcyl9LE4ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHgpe3ZhciBQLFY7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFA9dGhpcyxWPXgpOihQPXgsVj10aGlzKTtmb3IodmFyIFQ9MDtUPFYubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF1eVi53b3Jkc1tUXTtp''@;'; put 'put ''Zih0aGlzIT09UClmb3IoO1Q8UC5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUp''@;'; put 'put ''KSx0aGlzLml1eG9yKHgpfSxOLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHgpOnguY2xvbmUoKS5peG9yKHRoaXMpfSxOLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54''@;'; put 'put ''Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoeCk6eC5jbG9uZSgpLml1eG9yKHRoaXMpfSxOLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9MHxNYXRoLmNlaWwoeC8yNiksVj14JTI2O3RoaXMuX2V4cGFuZChQKSxWPjAmJlAt''@;'; put 'put ''LTtmb3IodmFyIFQ9MDtUPFA7VCsrKXRoaXMud29yZHNbVF09NjcxMDg4NjMmfnRoaXMud29yZHNbVF07cmV0dXJuIFY+MCYmKHRoaXMud29yZHNbVF09fnRoaXMud29yZHNbVF0mNjcxMDg4NjM+PjI2LVYpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbih4KXtyZXR1''@;'; put 'put ''cm4gdGhpcy5jbG9uZSgpLmlub3RuKHgpfSxOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHgsUCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBWPXgvMjZ8MCxUPXglMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl09UD90aGlzLndvcmRzW1ZdfDE8PFQ6''@;'; put 'put ''dGhpcy53b3Jkc1tWXSZ+KDE8PFQpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4KXt2YXIgUCxWLFQ7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCksdGhpcy5uZWdhdGl2ZV49''@;'; put 'put ''MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4geC5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7''@;'; put 'put ''Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrKDB8VC53b3Jkc1tGXSkrUyksUz1QPj4+MjY7Zm9yKDswIT09UyYmRjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0Zd''@;'; put 'put ''KStTKSxTPVA+Pj4yNjtpZih0aGlzLmxlbmd0aD1WLmxlbmd0aCwwIT09Uyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1TLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihWIT09dGhpcylmb3IoO0Y8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09Vi53b3Jkc1tGXTtyZXR1cm4gdGhpc30sTi5wcm90''@;'; put 'put ''b3R5cGUuYWRkPWZ1bmN0aW9uKHgpe3ZhciBQO3JldHVybiAwIT09eC5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KHgubmVnYXRpdmU9MCxQPXRoaXMuc3ViKHgpLHgubmVnYXRpdmVePTEsUCk6MD09PXgubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAs''@;'; put 'put ''UD14LnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsUCk6dGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoeCk6eC5jbG9uZSgpLmlhZGQodGhpcyl9LE4ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oeCl7aWYoMCE9PXgubmVnYXRpdmUpe3gubmVnYXRpdmU9MDt2YXIgUD10''@;'; put 'put ''aGlzLmlhZGQoeCk7cmV0dXJuIHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBWLFQsUz10aGlzLmNtcCh4KTtpZigwPT09''@;'; put 'put ''UylyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7Uz4wPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBGPTAseWU9MDt5ZTxULmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pLSgwfFQud29yZHNbeWVdKStGKT4+''@;'; put 'put ''MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmUDtmb3IoOzAhPT1GJiZ5ZTxWLmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2lmKDA9PT1GJiZ5ZTxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDt5ZTxWLmxlbmd0aDt5ZSsr''@;'; put 'put ''KXRoaXMud29yZHNbeWVdPVYud29yZHNbeWVdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5ZSksViE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1''@;'; put 'put ''Yih4KX07dmFyIEFlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTLEYseWU9eC53b3JkcyxDZT1QLndvcmRzLERlPVYud29yZHMsUGU9MCxRZT0wfHllWzBdLCRlPTgxOTEmUWUsZ3Q9UWU+Pj4xMyx3dD0wfHllWzFdLG10PTgxOTEmd3QsdnQ9d3Q+Pj4xMyxBdD0wfHllWzJdLGh0PTgxOTEmQXQs''@;'; put 'put ''QnQ9QXQ+Pj4xMyxvbj0wfHllWzNdLF90PTgxOTEmb24sdHQ9b24+Pj4xMyxldD0wfHllWzRdLGx0PTgxOTEmZXQsTHQ9ZXQ+Pj4xMyxDdD0wfHllWzVdLGZ0PTgxOTEmQ3QsSHQ9Q3Q+Pj4xMyxHZT0wfHllWzZdLFVlPTgxOTEmR2UseXQ9R2U+Pj4xMyxqdD0wfHllWzddLEp0PTgxOTEmanQs''@;'; put 'put ''Z249anQ+Pj4xMyxkbj0wfHllWzhdLHluPTgxOTEmZG4sbG49ZG4+Pj4xMyxObj0wfHllWzldLGJuPTgxOTEmTm4sZXI9Tm4+Pj4xMyxzcj0wfENlWzBdLFhuPTgxOTEmc3IsRnI9c3I+Pj4xMyx4cj0wfENlWzFdLHF0PTgxOTEmeHIscHI9eHI+Pj4xMyxucj0wfENlWzJdLEFuPTgxOTEmbnIs''@;'; put 'put ''cW49bnI+Pj4xMyxXdD0wfENlWzNdLHBuPTgxOTEmV3QsS249V3Q+Pj4xMyxOdD0wfENlWzRdLHNuPTgxOTEmTnQsVW49TnQ+Pj4xMyx3bj0wfENlWzVdLHRuPTgxOTEmd24sem49d24+Pj4xMyxUcj0wfENlWzZdLEJuPTgxOTEmVHIsa3I9VHI+Pj4xMyxtbj0wfENlWzddLHVuPTgxOTEmbW4s''@;'; put 'put ''Y249bW4+Pj4xMyxfbj0wfENlWzhdLEd0PTgxOTEmX24sa249X24+Pj4xMyxWbj0wfENlWzldLGVuPTgxOTEmVm4sSW49Vm4+Pj4xMztWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD0xOTt2YXIgSm49KFBlKyhUPU1hdGguaW11bCgkZSxYbikpfDApKygoODE5MSYo''@;'; put 'put ''Uz0oUz1NYXRoLmltdWwoJGUsRnIpKStNYXRoLmltdWwoZ3QsWG4pfDApKTw8MTMpfDA7UGU9KChGPU1hdGguaW11bChndCxGcikpKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChtdCxYbiksUz0oUz1NYXRoLmltdWwobXQsRnIpKStNYXRoLmltdWwo''@;'; put 'put ''dnQsWG4pfDAsRj1NYXRoLmltdWwodnQsRnIpO3ZhciBvcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscXQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxwcil8MCkrTWF0aC5pbXVsKGd0LHF0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxwcil8MCkrKFM+Pj4x''@;'; put 'put ''Myl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGh0LFhuKSxTPShTPU1hdGguaW11bChodCxGcikpK01hdGguaW11bChCdCxYbil8MCxGPU1hdGguaW11bChCdCxGciksVD1UK01hdGguaW11bChtdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHByKXwwKStNYXRo''@;'; put 'put ''LmltdWwodnQscXQpfDAsRj1GK01hdGguaW11bCh2dCxwcil8MDt2YXIgZ3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEFuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUscW4pfDApK01hdGguaW11bChndCxBbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscW4p''@;'; put 'put ''fDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChfdCxYbiksUz0oUz1NYXRoLmltdWwoX3QsRnIpKStNYXRoLmltdWwodHQsWG4pfDAsRj1NYXRoLmltdWwodHQsRnIpLFQ9VCtNYXRoLmltdWwoaHQscXQpfDAsUz0oUz1TK01hdGguaW11bChodCxw''@;'; put 'put ''cil8MCkrTWF0aC5pbXVsKEJ0LHF0KXwwLEY9RitNYXRoLmltdWwoQnQscHIpfDAsVD1UK01hdGguaW11bChtdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHFuKXwwKStNYXRoLmltdWwodnQsQW4pfDAsRj1GK01hdGguaW11bCh2dCxxbil8MDt2YXIgS3I9KFBlKyhUPVQrTWF0aC5pbXVs''@;'; put 'put ''KCRlLHBuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsS24pfDApK01hdGguaW11bChndCxwbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsS24pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChsdCxYbiksUz0o''@;'; put 'put ''Uz1NYXRoLmltdWwobHQsRnIpKStNYXRoLmltdWwoTHQsWG4pfDAsRj1NYXRoLmltdWwoTHQsRnIpLFQ9VCtNYXRoLmltdWwoX3QscXQpfDAsUz0oUz1TK01hdGguaW11bChfdCxwcil8MCkrTWF0aC5pbXVsKHR0LHF0KXwwLEY9RitNYXRoLmltdWwodHQscHIpfDAsVD1UK01hdGguaW11bCho''@;'; put 'put ''dCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHFuKXwwKStNYXRoLmltdWwoQnQsQW4pfDAsRj1GK01hdGguaW11bChCdCxxbil8MCxUPVQrTWF0aC5pbXVsKG10LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsS24pfDApK01hdGguaW11bCh2dCxwbil8MCxGPUYrTWF0aC5pbXVsKHZ0LEtu''@;'; put 'put ''KXwwO3ZhciBWcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsc24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxVbil8MCkrTWF0aC5pbXVsKGd0LHNuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxVbil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3''@;'; put 'put ''MTA4ODYzLFQ9TWF0aC5pbXVsKGZ0LFhuKSxTPShTPU1hdGguaW11bChmdCxGcikpK01hdGguaW11bChIdCxYbil8MCxGPU1hdGguaW11bChIdCxGciksVD1UK01hdGguaW11bChsdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHByKXwwKStNYXRoLmltdWwoTHQscXQpfDAsRj1GK01hdGgu''@;'; put 'put ''aW11bChMdCxwcil8MCxUPVQrTWF0aC5pbXVsKF90LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QscW4pfDApK01hdGguaW11bCh0dCxBbil8MCxGPUYrTWF0aC5pbXVsKHR0LHFuKXwwLFQ9VCtNYXRoLmltdWwoaHQscG4pfDAsUz0oUz1TK01hdGguaW11bChodCxLbil8MCkrTWF0aC5pbXVs''@;'; put 'put ''KEJ0LHBuKXwwLEY9RitNYXRoLmltdWwoQnQsS24pfDAsVD1UK01hdGguaW11bChtdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LFVuKXwwKStNYXRoLmltdWwodnQsc24pfDAsRj1GK01hdGguaW11bCh2dCxVbil8MDt2YXIgaWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHRuKXwwKXwwKSso''@;'; put 'put ''KDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsem4pfDApK01hdGguaW11bChndCx0bil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsem4pfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChVZSxYbiksUz0oUz1NYXRoLmltdWwoVWUs''@;'; put 'put ''RnIpKStNYXRoLmltdWwoeXQsWG4pfDAsRj1NYXRoLmltdWwoeXQsRnIpLFQ9VCtNYXRoLmltdWwoZnQscXQpfDAsUz0oUz1TK01hdGguaW11bChmdCxwcil8MCkrTWF0aC5pbXVsKEh0LHF0KXwwLEY9RitNYXRoLmltdWwoSHQscHIpfDAsVD1UK01hdGguaW11bChsdCxBbil8MCxTPShTPVMr''@;'; put 'put ''TWF0aC5pbXVsKGx0LHFuKXwwKStNYXRoLmltdWwoTHQsQW4pfDAsRj1GK01hdGguaW11bChMdCxxbil8MCxUPVQrTWF0aC5pbXVsKF90LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxGPUYrTWF0aC5pbXVsKHR0LEtuKXwwLFQ9VCtNYXRoLmlt''@;'; put 'put ''dWwoaHQsc24pfDAsUz0oUz1TK01hdGguaW11bChodCxVbil8MCkrTWF0aC5pbXVsKEJ0LHNuKXwwLEY9RitNYXRoLmltdWwoQnQsVW4pfDAsVD1UK01hdGguaW11bChtdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHpuKXwwKStNYXRoLmltdWwodnQsdG4pfDAsRj1GK01hdGguaW11bCh2''@;'; put 'put ''dCx6bil8MDt2YXIgUnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEJuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa3IpfDApK01hdGguaW11bChndCxCbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa3IpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXwwLFJy''@;'; put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChKdCxYbiksUz0oUz1NYXRoLmltdWwoSnQsRnIpKStNYXRoLmltdWwoZ24sWG4pfDAsRj1NYXRoLmltdWwoZ24sRnIpLFQ9VCtNYXRoLmltdWwoVWUscXQpfDAsUz0oUz1TK01hdGguaW11bChVZSxwcil8MCkrTWF0aC5pbXVsKHl0LHF0KXwwLEY9RitN''@;'; put 'put ''YXRoLmltdWwoeXQscHIpfDAsVD1UK01hdGguaW11bChmdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHFuKXwwKStNYXRoLmltdWwoSHQsQW4pfDAsRj1GK01hdGguaW11bChIdCxxbil8MCxUPVQrTWF0aC5pbXVsKGx0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobHQsS24pfDApK01hdGgu''@;'; put 'put ''aW11bChMdCxwbil8MCxGPUYrTWF0aC5pbXVsKEx0LEtuKXwwLFQ9VCtNYXRoLmltdWwoX3Qsc24pfDAsUz0oUz1TK01hdGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNuKXwwLEY9RitNYXRoLmltdWwodHQsVW4pfDAsVD1UK01hdGguaW11bChodCx0bil8MCxTPShTPVMrTWF0aC5p''@;'; put 'put ''bXVsKGh0LHpuKXwwKStNYXRoLmltdWwoQnQsdG4pfDAsRj1GK01hdGguaW11bChCdCx6bil8MCxUPVQrTWF0aC5pbXVsKG10LEJuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsa3IpfDApK01hdGguaW11bCh2dCxCbil8MCxGPUYrTWF0aC5pbXVsKHZ0LGtyKXwwO3ZhciBsaT0oUGUrKFQ9VCtN''@;'; put 'put ''YXRoLmltdWwoJGUsdW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxjbil8MCkrTWF0aC5pbXVsKGd0LHVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxjbil8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHlu''@;'; put 'put ''LFhuKSxTPShTPU1hdGguaW11bCh5bixGcikpK01hdGguaW11bChsbixYbil8MCxGPU1hdGguaW11bChsbixGciksVD1UK01hdGguaW11bChKdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHByKXwwKStNYXRoLmltdWwoZ24scXQpfDAsRj1GK01hdGguaW11bChnbixwcil8MCxUPVQrTWF0''@;'; put 'put ''aC5pbXVsKFVlLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUscW4pfDApK01hdGguaW11bCh5dCxBbil8MCxGPUYrTWF0aC5pbXVsKHl0LHFuKXwwLFQ9VCtNYXRoLmltdWwoZnQscG4pfDAsUz0oUz1TK01hdGguaW11bChmdCxLbil8MCkrTWF0aC5pbXVsKEh0LHBuKXwwLEY9RitNYXRoLmlt''@;'; put 'put ''dWwoSHQsS24pfDAsVD1UK01hdGguaW11bChsdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LFVuKXwwKStNYXRoLmltdWwoTHQsc24pfDAsRj1GK01hdGguaW11bChMdCxVbil8MCxUPVQrTWF0aC5pbXVsKF90LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsem4pfDApK01hdGguaW11bCh0''@;'; put 'put ''dCx0bil8MCxGPUYrTWF0aC5pbXVsKHR0LHpuKXwwLFQ9VCtNYXRoLmltdWwoaHQsQm4pfDAsUz0oUz1TK01hdGguaW11bChodCxrcil8MCkrTWF0aC5pbXVsKEJ0LEJuKXwwLEY9RitNYXRoLmltdWwoQnQsa3IpfDAsVD1UK01hdGguaW11bChtdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKG10''@;'; put 'put ''LGNuKXwwKStNYXRoLmltdWwodnQsdW4pfDAsRj1GK01hdGguaW11bCh2dCxjbil8MDt2YXIgTWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa24pfDApK01hdGguaW11bChndCxHdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRo''@;'; put 'put ''LmltdWwoZ3Qsa24pfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChibixYbiksUz0oUz1NYXRoLmltdWwoYm4sRnIpKStNYXRoLmltdWwoZXIsWG4pfDAsRj1NYXRoLmltdWwoZXIsRnIpLFQ9VCtNYXRoLmltdWwoeW4scXQpfDAsUz0oUz1TK01h''@;'; put 'put ''dGguaW11bCh5bixwcil8MCkrTWF0aC5pbXVsKGxuLHF0KXwwLEY9RitNYXRoLmltdWwobG4scHIpfDAsVD1UK01hdGguaW11bChKdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHFuKXwwKStNYXRoLmltdWwoZ24sQW4pfDAsRj1GK01hdGguaW11bChnbixxbil8MCxUPVQrTWF0aC5pbXVs''@;'; put 'put ''KFVlLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxGPUYrTWF0aC5pbXVsKHl0LEtuKXwwLFQ9VCtNYXRoLmltdWwoZnQsc24pfDAsUz0oUz1TK01hdGguaW11bChmdCxVbil8MCkrTWF0aC5pbXVsKEh0LHNuKXwwLEY9RitNYXRoLmltdWwoSHQs''@;'; put 'put ''VW4pfDAsVD1UK01hdGguaW11bChsdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHpuKXwwKStNYXRoLmltdWwoTHQsdG4pfDAsRj1GK01hdGguaW11bChMdCx6bil8MCxUPVQrTWF0aC5pbXVsKF90LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxCbil8''@;'; put 'put ''MCxGPUYrTWF0aC5pbXVsKHR0LGtyKXwwLFQ9VCtNYXRoLmltdWwoaHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChodCxjbil8MCkrTWF0aC5pbXVsKEJ0LHVuKXwwLEY9RitNYXRoLmltdWwoQnQsY24pfDAsVD1UK01hdGguaW11bChtdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LGtuKXww''@;'; put 'put ''KStNYXRoLmltdWwodnQsR3QpfDAsRj1GK01hdGguaW11bCh2dCxrbil8MDt2YXIgbzA9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsSW4pfDApK01hdGguaW11bChndCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwo''@;'; put 'put ''Z3QsSW4pfDApKyhTPj4+MTMpfDApKyhvMD4+PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChibixxdCksUz0oUz1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIscXQpfDAsRj1NYXRoLmltdWwoZXIscHIpLFQ9VCtNYXRoLmltdWwoeW4sQW4pfDAsUz0oUz1TK01hdGguaW11''@;'; put 'put ''bCh5bixxbil8MCkrTWF0aC5pbXVsKGxuLEFuKXwwLEY9RitNYXRoLmltdWwobG4scW4pfDAsVD1UK01hdGguaW11bChKdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LEtuKXwwKStNYXRoLmltdWwoZ24scG4pfDAsRj1GK01hdGguaW11bChnbixLbil8MCxUPVQrTWF0aC5pbXVsKFVlLHNu''@;'; put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsVW4pfDApK01hdGguaW11bCh5dCxzbil8MCxGPUYrTWF0aC5pbXVsKHl0LFVuKXwwLFQ9VCtNYXRoLmltdWwoZnQsdG4pfDAsUz0oUz1TK01hdGguaW11bChmdCx6bil8MCkrTWF0aC5pbXVsKEh0LHRuKXwwLEY9RitNYXRoLmltdWwoSHQsem4pfDAs''@;'; put 'put ''VD1UK01hdGguaW11bChsdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGtyKXwwKStNYXRoLmltdWwoTHQsQm4pfDAsRj1GK01hdGguaW11bChMdCxrcil8MCxUPVQrTWF0aC5pbXVsKF90LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsY24pfDApK01hdGguaW11bCh0dCx1bil8MCxGPUYr''@;'; put 'put ''TWF0aC5pbXVsKHR0LGNuKXwwLFQ9VCtNYXRoLmltdWwoaHQsR3QpfDAsUz0oUz1TK01hdGguaW11bChodCxrbil8MCkrTWF0aC5pbXVsKEJ0LEd0KXwwLEY9RitNYXRoLmltdWwoQnQsa24pfDA7dmFyIG4wPShQZSsoVD1UK01hdGguaW11bChtdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMr''@;'; put 'put ''TWF0aC5pbXVsKG10LEluKXwwKStNYXRoLmltdWwodnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHZ0LEluKXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQW4pLFM9KFM9TWF0aC5pbXVsKGJuLHFuKSkrTWF0aC5pbXVs''@;'; put 'put ''KGVyLEFuKXwwLEY9TWF0aC5pbXVsKGVyLHFuKSxUPVQrTWF0aC5pbXVsKHluLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sS24pfDApK01hdGguaW11bChsbixwbil8MCxGPUYrTWF0aC5pbXVsKGxuLEtuKXwwLFQ9VCtNYXRoLmltdWwoSnQsc24pfDAsUz0oUz1TK01hdGguaW11bChKdCxV''@;'; put 'put ''bil8MCkrTWF0aC5pbXVsKGduLHNuKXwwLEY9RitNYXRoLmltdWwoZ24sVW4pfDAsVD1UK01hdGguaW11bChVZSx0bil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRoLmltdWwoeXQsdG4pfDAsRj1GK01hdGguaW11bCh5dCx6bil8MCxUPVQrTWF0aC5pbXVsKGZ0LEJuKXwwLFM9''@;'; put 'put ''KFM9UytNYXRoLmltdWwoZnQsa3IpfDApK01hdGguaW11bChIdCxCbil8MCxGPUYrTWF0aC5pbXVsKEh0LGtyKXwwLFQ9VCtNYXRoLmltdWwobHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChsdCxjbil8MCkrTWF0aC5pbXVsKEx0LHVuKXwwLEY9RitNYXRoLmltdWwoTHQsY24pfDAsVD1UK01h''@;'; put 'put ''dGguaW11bChfdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRj1GK01hdGguaW11bCh0dCxrbil8MDt2YXIgZDA9KFBlKyhUPVQrTWF0aC5pbXVsKGh0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoaHQsSW4pfDApK01hdGgu''@;'; put 'put ''aW11bChCdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQnQsSW4pfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChibixwbiksUz0oUz1NYXRoLmltdWwoYm4sS24pKStNYXRoLmltdWwoZXIscG4pfDAsRj1NYXRoLmltdWwoZXIs''@;'; put 'put ''S24pLFQ9VCtNYXRoLmltdWwoeW4sc24pfDAsUz0oUz1TK01hdGguaW11bCh5bixVbil8MCkrTWF0aC5pbXVsKGxuLHNuKXwwLEY9RitNYXRoLmltdWwobG4sVW4pfDAsVD1UK01hdGguaW11bChKdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHpuKXwwKStNYXRoLmltdWwoZ24sdG4pfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bChnbix6bil8MCxUPVQrTWF0aC5pbXVsKFVlLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa3IpfDApK01hdGguaW11bCh5dCxCbil8MCxGPUYrTWF0aC5pbXVsKHl0LGtyKXwwLFQ9VCtNYXRoLmltdWwoZnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxjbil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKEh0LHVuKXwwLEY9RitNYXRoLmltdWwoSHQsY24pfDAsVD1UK01hdGguaW11bChsdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGtuKXwwKStNYXRoLmltdWwoTHQsR3QpfDAsRj1GK01hdGguaW11bChMdCxrbil8MDt2YXIgbTA9KFBlKyhUPVQrTWF0aC5pbXVsKF90LGVu''@;'; put 'put ''KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoX3QsSW4pfDApK01hdGguaW11bCh0dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodHQsSW4pfDApKyhTPj4+MTMpfDApKyhtMD4+PjI2KXwwLG0wJj02NzEwODg2MyxUPU1hdGguaW11bChibixzbiksUz0oUz1NYXRo''@;'; put 'put ''LmltdWwoYm4sVW4pKStNYXRoLmltdWwoZXIsc24pfDAsRj1NYXRoLmltdWwoZXIsVW4pLFQ9VCtNYXRoLmltdWwoeW4sdG4pfDAsUz0oUz1TK01hdGguaW11bCh5bix6bil8MCkrTWF0aC5pbXVsKGxuLHRuKXwwLEY9RitNYXRoLmltdWwobG4sem4pfDAsVD1UK01hdGguaW11bChKdCxCbil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKEp0LGtyKXwwKStNYXRoLmltdWwoZ24sQm4pfDAsRj1GK01hdGguaW11bChnbixrcil8MCxUPVQrTWF0aC5pbXVsKFVlLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsY24pfDApK01hdGguaW11bCh5dCx1bil8MCxGPUYrTWF0aC5pbXVsKHl0LGNuKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoZnQsR3QpfDAsUz0oUz1TK01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLEY9RitNYXRoLmltdWwoSHQsa24pfDA7dmFyIEcwPShQZSsoVD1UK01hdGguaW11bChsdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGx0LEluKXwwKStN''@;'; put 'put ''YXRoLmltdWwoTHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEx0LEluKXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdG4pLFM9KFM9TWF0aC5pbXVsKGJuLHpuKSkrTWF0aC5pbXVsKGVyLHRuKXwwLEY9TWF0aC5pbXVs''@;'; put 'put ''KGVyLHpuKSxUPVQrTWF0aC5pbXVsKHluLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa3IpfDApK01hdGguaW11bChsbixCbil8MCxGPUYrTWF0aC5pbXVsKGxuLGtyKXwwLFQ9VCtNYXRoLmltdWwoSnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChKdCxjbil8MCkrTWF0aC5pbXVsKGduLHVu''@;'; put 'put ''KXwwLEY9RitNYXRoLmltdWwoZ24sY24pfDAsVD1UK01hdGguaW11bChVZSxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtuKXwwKStNYXRoLmltdWwoeXQsR3QpfDAsRj1GK01hdGguaW11bCh5dCxrbil8MDt2YXIgRGk9KFBlKyhUPVQrTWF0aC5pbXVsKGZ0LGVuKXwwKXwwKSsoKDgxOTEm''@;'; put 'put ''KFM9KFM9UytNYXRoLmltdWwoZnQsSW4pfDApK01hdGguaW11bChIdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoSHQsSW4pfDApKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxUPU1hdGguaW11bChibixCbiksUz0oUz1NYXRoLmltdWwoYm4sa3IpKStN''@;'; put 'put ''YXRoLmltdWwoZXIsQm4pfDAsRj1NYXRoLmltdWwoZXIsa3IpLFQ9VCtNYXRoLmltdWwoeW4sdW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixjbil8MCkrTWF0aC5pbXVsKGxuLHVuKXwwLEY9RitNYXRoLmltdWwobG4sY24pfDAsVD1UK01hdGguaW11bChKdCxHdCl8MCxTPShTPVMrTWF0aC5p''@;'; put 'put ''bXVsKEp0LGtuKXwwKStNYXRoLmltdWwoZ24sR3QpfDAsRj1GK01hdGguaW11bChnbixrbil8MDt2YXIgVzA9KFBlKyhUPVQrTWF0aC5pbXVsKFVlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9''@;'; put 'put ''RitNYXRoLmltdWwoeXQsSW4pfDApKyhTPj4+MTMpfDApKyhXMD4+PjI2KXwwLFcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix1biksUz0oUz1NYXRoLmltdWwoYm4sY24pKStNYXRoLmltdWwoZXIsdW4pfDAsRj1NYXRoLmltdWwoZXIsY24pLFQ9VCtNYXRoLmltdWwoeW4sR3QpfDAsUz0o''@;'; put 'put ''Uz1TK01hdGguaW11bCh5bixrbil8MCkrTWF0aC5pbXVsKGxuLEd0KXwwLEY9RitNYXRoLmltdWwobG4sa24pfDA7dmFyIEVvPShQZSsoVD1UK01hdGguaW11bChKdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEp0LEluKXwwKStNYXRoLmltdWwoZ24sZW4pfDApKTw8MTMp''@;'; put 'put ''fDA7UGU9KChGPUYrTWF0aC5pbXVsKGduLEluKXwwKSsoUz4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sR3QpLFM9KFM9TWF0aC5pbXVsKGJuLGtuKSkrTWF0aC5pbXVsKGVyLEd0KXwwLEY9TWF0aC5pbXVsKGVyLGtuKTt2YXIgcW89KFBlKyhUPVQr''@;'; put 'put ''TWF0aC5pbXVsKHluLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoeW4sSW4pfDApK01hdGguaW11bChsbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwobG4sSW4pfDApKyhTPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2Mzt2YXIgY2E9KFBlKyhU''@;'; put 'put ''PU1hdGguaW11bChibixlbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoYm4sSW4pKStNYXRoLmltdWwoZXIsZW4pfDApKTw8MTMpfDA7cmV0dXJuIFBlPSgoRj1NYXRoLmltdWwoZXIsSW4pKSsoUz4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRGVbMF09Sm4sRGVbMV09''@;'; put 'put ''b3IsRGVbMl09Z3IsRGVbM109S3IsRGVbNF09VnIsRGVbNV09aWksRGVbNl09UnIsRGVbN109bGksRGVbOF09TWksRGVbOV09bzAsRGVbMTBdPW4wLERlWzExXT1kMCxEZVsxMl09bTAsRGVbMTNdPUcwLERlWzE0XT1EaSxEZVsxNV09VzAsRGVbMTZdPUVvLERlWzE3XT1xbyxEZVsxOF09Y2Es''@;'; put 'put ''MCE9PVBlJiYoRGVbMTldPVBlLFYubGVuZ3RoKyspLFZ9O2Z1bmN0aW9uIGtlKHgsUCxWKXtyZXR1cm4obmV3IFNlKS5tdWxwKHgsUCxWKX1mdW5jdGlvbiBTZSh4LFApe3RoaXMueD14LHRoaXMueT1QfU1hdGguaW11bHx8KEFlPXZlKSxOLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih4LFAp''@;'; put 'put ''e3ZhciBUPXRoaXMubGVuZ3RoK3gubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXgubGVuZ3RoP0FlKHRoaXMseCxQKTpUPDYzP3ZlKHRoaXMseCxQKTpUPDEwMjQ/ZnVuY3Rpb24oUyxGLHllKXt5ZS5uZWdhdGl2ZT1GLm5lZ2F0aXZlXlMubmVnYXRpdmUseWUubGVuZ3Ro''@;'; put 'put ''PVMubGVuZ3RoK0YubGVuZ3RoO2Zvcih2YXIgQ2U9MCxEZT0wLFBlPTA7UGU8eWUubGVuZ3RoLTE7UGUrKyl7dmFyIFFlPURlO0RlPTA7Zm9yKHZhciAkZT02NzEwODg2MyZDZSxndD1NYXRoLm1pbihQZSxGLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLVMubGVuZ3RoKzEpO3d0PD1ndDt3''@;'; put 'put ''dCsrKXt2YXIgdnQ9KDB8Uy53b3Jkc1tQZS13dF0pKigwfEYud29yZHNbd3RdKSxBdD02NzEwODg2MyZ2dDskZT02NzEwODg2MyYoQXQ9QXQrJGV8MCksRGUrPShRZT0oUWU9UWUrKHZ0LzY3MTA4ODY0fDApfDApKyhBdD4+PjI2KXwwKT4+PjI2LFFlJj02NzEwODg2M315ZS53b3Jkc1tQZV09''@;'; put 'put ''JGUsQ2U9UWUsUWU9RGV9cmV0dXJuIDAhPT1DZT95ZS53b3Jkc1tQZV09Q2U6eWUubGVuZ3RoLS0seWUuc3RyaXAoKX0odGhpcyx4LFApOmtlKHRoaXMseCxQKX0sU2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPU4ucHJvdG90eXBlLl9j''@;'; put 'put ''b3VudEJpdHMoeCktMSxUPTA7VDx4O1QrKylQW1RdPXRoaXMucmV2QmluKFQsVix4KTtyZXR1cm4gUH0sU2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbih4LFAsVil7aWYoMD09PXh8fHg9PT1WLTEpcmV0dXJuIHg7Zm9yKHZhciBUPTAsUz0wO1M8UDtTKyspVHw9KDEmeCk8PFAtUy0xLHg+''@;'; put 'put ''Pj0xO3JldHVybiBUfSxTZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbih4LFAsVixULFMsRil7Zm9yKHZhciB5ZT0wO3llPEY7eWUrKylUW3llXT1QW3hbeWVdXSxTW3llXT1WW3hbeWVdXX0sU2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih4LFAsVixULFMsRil7dGhpcy5wZXJt''@;'; put 'put ''dXRlKEYseCxQLFYsVCxTKTtmb3IodmFyIHllPTE7eWU8Uzt5ZTw8PTEpZm9yKHZhciBDZT15ZTw8MSxEZT1NYXRoLmNvcygyKk1hdGguUEkvQ2UpLFBlPU1hdGguc2luKDIqTWF0aC5QSS9DZSksUWU9MDtRZTxTO1FlKz1DZSlmb3IodmFyICRlPURlLGd0PVBlLHd0PTA7d3Q8eWU7d3QrKyl7''@;'; put 'put ''dmFyIG10PVZbUWUrd3RdLHZ0PVRbUWUrd3RdLEF0PVZbUWUrd3QreWVdLGh0PVRbUWUrd3QreWVdLEJ0PSRlKkF0LWd0Kmh0O2h0PSRlKmh0K2d0KkF0LFZbUWUrd3RdPW10KyhBdD1CdCksVFtRZSt3dF09dnQraHQsVltRZSt3dCt5ZV09bXQtQXQsVFtRZSt3dCt5ZV09dnQtaHQsd3QhPT1D''@;'; put 'put ''ZSYmKEJ0PURlKiRlLVBlKmd0LGd0PURlKmd0K1BlKiRlLCRlPUJ0KX19LFNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih4LFApe3ZhciBWPTF8TWF0aC5tYXgoUCx4KSxUPTEmVixTPTA7Zm9yKFY9Vi8yfDA7VjtWPj4+PTEpUysrO3JldHVybiAxPDxTKzErVH0sU2UucHJvdG90''@;'; put 'put ''eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih4LFAsVil7aWYoIShWPD0xKSlmb3IodmFyIFQ9MDtUPFYvMjtUKyspe3ZhciBTPXhbVF07eFtUXT14W1YtVC0xXSx4W1YtVC0xXT1TLFM9UFtUXSxQW1RdPS1QW1YtVC0xXSxQW1YtVC0xXT0tU319LFNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVu''@;'; put 'put ''Y3Rpb24oeCxQKXtmb3IodmFyIFY9MCxUPTA7VDxQLzI7VCsrKXt2YXIgUz04MTkyKk1hdGgucm91bmQoeFsyKlQrMV0vUCkrTWF0aC5yb3VuZCh4WzIqVF0vUCkrVjt4W1RdPTY3MTA4ODYzJlMsVj1TPDY3MTA4ODY0PzA6Uy82NzEwODg2NHwwfXJldHVybiB4fSxTZS5wcm90b3R5cGUuY29u''@;'; put 'put ''dmVydDEzYj1mdW5jdGlvbih4LFAsVixUKXtmb3IodmFyIFM9MCxGPTA7RjxQO0YrKylWWzIqRl09ODE5MSYoUys9MHx4W0ZdKSxWWzIqRisxXT04MTkxJihTPj4+PTEzKSxTPj4+PTEzO2ZvcihGPTIqUDtGPFQ7KytGKVZbRl09MDtZKDA9PT1TKSxZKDA9PSgtODE5MiZTKSl9LFNlLnByb3Rv''@;'; put 'put ''dHlwZS5zdHViPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj0wO1Y8eDtWKyspUFtWXT0wO3JldHVybiBQfSxTZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbih4LFAsVil7dmFyIFQ9Mip0aGlzLmd1ZXNzTGVuMTNiKHgubGVuZ3RoLFAubGVuZ3RoKSxTPXRoaXMubWFrZVJC''@;'; put 'put ''VChUKSxGPXRoaXMuc3R1YihUKSx5ZT1uZXcgQXJyYXkoVCksQ2U9bmV3IEFycmF5KFQpLERlPW5ldyBBcnJheShUKSxQZT1uZXcgQXJyYXkoVCksUWU9bmV3IEFycmF5KFQpLCRlPW5ldyBBcnJheShUKSxndD1WLndvcmRzO2d0Lmxlbmd0aD1ULHRoaXMuY29udmVydDEzYih4LndvcmRzLHgu''@;'; put 'put ''bGVuZ3RoLHllLFQpLHRoaXMuY29udmVydDEzYihQLndvcmRzLFAubGVuZ3RoLFBlLFQpLHRoaXMudHJhbnNmb3JtKHllLEYsQ2UsRGUsVCxTKSx0aGlzLnRyYW5zZm9ybShQZSxGLFFlLCRlLFQsUyk7Zm9yKHZhciB3dD0wO3d0PFQ7d3QrKyl7dmFyIG10PUNlW3d0XSpRZVt3dF0tRGVbd3Rd''@;'; put 'put ''KiRlW3d0XTtEZVt3dF09Q2Vbd3RdKiRlW3d0XStEZVt3dF0qUWVbd3RdLENlW3d0XT1tdH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoQ2UsRGUsVCksdGhpcy50cmFuc2Zvcm0oQ2UsRGUsZ3QsRixULFMpLHRoaXMuY29uanVnYXRlKGd0LEYsVCksdGhpcy5ub3JtYWxpemUxM2IoZ3QsVCksVi5u''@;'; put 'put ''ZWdhdGl2ZT14Lm5lZ2F0aXZlXlAubmVnYXRpdmUsVi5sZW5ndGg9eC5sZW5ndGgrUC5sZW5ndGgsVi5zdHJpcCgpfSxOLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSx0aGlz''@;'; put 'put ''Lm11bFRvKHgsUCl9LE4ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSxrZSh0aGlzLHgsUCl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xv''@;'; put 'put ''bmUoKS5tdWxUbyh4LHRoaXMpfSxOLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKngsUz0oNjcxMDg4NjMmVCkrKDY3''@;'; put 'put ''MTA4ODYzJlApO1A+Pj0yNixQKz1ULzY3MTA4ODY0fDAsUCs9Uz4+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmU31yZXR1cm4gMCE9PVAmJih0aGlzLndvcmRzW1ZdPVAsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9u''@;'; put 'put ''ZSgpLmltdWxuKHgpfSxOLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE4ucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LE4ucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4KXt2YXIgUD1mdW5jdGlv''@;'; put 'put ''bihGKXtmb3IodmFyIHllPW5ldyBBcnJheShGLmJpdExlbmd0aCgpKSxDZT0wO0NlPHllLmxlbmd0aDtDZSsrKXt2YXIgUGU9Q2UlMjY7eWVbQ2VdPShGLndvcmRzW0NlLzI2fDBdJjE8PFBlKT4+PlBlfXJldHVybiB5ZX0oeCk7aWYoMD09PVAubGVuZ3RoKXJldHVybiBuZXcgTigxKTtmb3Io''@;'; put 'put ''dmFyIFY9dGhpcyxUPTA7VDxQLmxlbmd0aCYmMD09PVBbVF07VCsrLFY9Vi5zcXIoKSk7aWYoKytUPFAubGVuZ3RoKWZvcih2YXIgUz1WLnNxcigpO1Q8UC5sZW5ndGg7VCsrLFM9Uy5zcXIoKSkwIT09UFtUXSYmKFY9Vi5tdWwoUykpO3JldHVybiBWfSxOLnByb3RvdHlwZS5pdXNobG49ZnVu''@;'; put 'put ''Y3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQLFY9eCUyNixUPSh4LVYpLzI2LFM9NjcxMDg4NjM+Pj4yNi1WPDwyNi1WO2lmKDAhPT1WKXt2YXIgRj0wO2ZvcihQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciB5ZT10aGlzLndvcmRzW1BdJlM7dGhpcy53b3Jkc1tQ''@;'; put 'put ''XT0oMHx0aGlzLndvcmRzW1BdKS15ZTw8VnxGLEY9eWU+Pj4yNi1WfUYmJih0aGlzLndvcmRzW1BdPUYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PVQpe2ZvcihQPXRoaXMubGVuZ3RoLTE7UD49MDtQLS0pdGhpcy53b3Jkc1tQK1RdPXRoaXMud29yZHNbUF07Zm9yKFA9MDtQPFQ7UCsrKXRoaXMu''@;'; put 'put ''d29yZHNbUF09MDt0aGlzLmxlbmd0aCs9VH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oeCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih4LFAsVil7dmFyIFQ7WSgi''@;'; put 'put ''bnVtYmVyIj09dHlwZW9mIHgmJng+PTApLFQ9UD8oUC1QJTI2KS8yNjowO3ZhciBTPXglMjYsRj1NYXRoLm1pbigoeC1TKS8yNix0aGlzLmxlbmd0aCkseWU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5TPDxTLENlPVY7aWYoVC09RixUPU1hdGgubWF4KDAsVCksQ2Upe2Zvcih2YXIgRGU9MDtEZTxG''@;'; put 'put ''O0RlKyspQ2Uud29yZHNbRGVdPXRoaXMud29yZHNbRGVdO0NlLmxlbmd0aD1GfWlmKDAhPT1GKWlmKHRoaXMubGVuZ3RoPkYpZm9yKHRoaXMubGVuZ3RoLT1GLERlPTA7RGU8dGhpcy5sZW5ndGg7RGUrKyl0aGlzLndvcmRzW0RlXT10aGlzLndvcmRzW0RlK0ZdO2Vsc2UgdGhpcy53b3Jkc1sw''@;'; put 'put ''XT0wLHRoaXMubGVuZ3RoPTE7dmFyIFBlPTA7Zm9yKERlPXRoaXMubGVuZ3RoLTE7RGU+PTAmJigwIT09UGV8fERlPj1UKTtEZS0tKXt2YXIgUWU9MHx0aGlzLndvcmRzW0RlXTt0aGlzLndvcmRzW0RlXT1QZTw8MjYtU3xRZT4+PlMsUGU9UWUmeWV9cmV0dXJuIENlJiYwIT09UGUmJihDZS53''@;'; put 'put ''b3Jkc1tDZS5sZW5ndGgrK109UGUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oeCxQLFYp''@;'; put 'put ''fSxOLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oeCl9LE4ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNs''@;'; put 'put ''b25lKCkuaXNocm4oeCl9LE4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHgpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiEo''@;'; put 'put ''dGhpcy5sZW5ndGg8PVZ8fCEodGhpcy53b3Jkc1tWXSYxPDxQKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25s''@;'; put 'put ''eSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Vj90aGlzOigwIT09UCYmVisrLHRoaXMubGVuZ3RoPU1hdGgubWluKFYsdGhpcy5sZW5ndGgpLDAhPT1QJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5QPDxQKSx0aGlzLnN0cmlw''@;'; put 'put ''KCkpfSxOLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih4KX0sTi5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MD90aGlzLmlzdWJuKC14KTowIT09dGhp''@;'; put 'put ''cy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPHg/KHRoaXMud29yZHNbMF09eC0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9p''@;'; put 'put ''YWRkbih4KX0sTi5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHgpe3RoaXMud29yZHNbMF0rPXg7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXT49NjcxMDg4NjQ7UCsrKXRoaXMud29yZHNbUF0tPTY3MTA4ODY0LFA9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNb''@;'; put 'put ''UCsxXT0xOnRoaXMud29yZHNbUCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxQKzEpLHRoaXN9LE4ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKHgpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MClyZXR1cm4gdGhpcy5pYWRk''@;'; put 'put ''bigteCk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPXgsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1sw''@;'; put 'put ''XSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPDA7UCsrKXRoaXMud29yZHNbUF0rPTY3MTA4ODY0LHRoaXMud29yZHNbUCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHgpe3Jl''@;'; put 'put ''dHVybiB0aGlzLmNsb25lKCkuaWFkZG4oeCl9LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih4KX0sTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5wcm90b3R5cGUuYWJzPWZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih4LFAsVil7dmFyIFQsUzt0aGlzLl9leHBhbmQoeC5sZW5ndGgrVik7dmFyIHllPTA7Zm9yKFQ9MDtUPHgubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrVl0pK3ll''@;'; put 'put ''O3ZhciBDZT0oMHx4LndvcmRzW1RdKSpQO3llPSgoUy09NjcxMDg4NjMmQ2UpPj4yNiktKENlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTfWZvcig7VDx0aGlzLmxlbmd0aC1WO1QrKyl5ZT0oUz0oMHx0aGlzLndvcmRzW1QrVl0pK3llKT4+MjYsdGhpcy53b3Jkc1tU''@;'; put 'put ''K1ZdPTY3MTA4ODYzJlM7aWYoMD09PXllKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKFkoLTE9PT15ZSkseWU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspeWU9KFM9LSgwfHRoaXMud29yZHNbVF0pK3llKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZTO3JldHVybiB0aGlzLm5lZ2F0aXZl''@;'; put 'put ''PTEsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih4LFApe3ZhciBWLFQ9dGhpcy5jbG9uZSgpLFM9eCxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXTswIT0oVj0yNi10aGlzLl9jb3VudEJpdHMoRikpJiYoUz1TLnVzaGxuKFYpLFQuaXVzaGxuKFYpLEY9MHxTLndv''@;'; put 'put ''cmRzW1MubGVuZ3RoLTFdKTt2YXIgeWUsQ2U9VC5sZW5ndGgtUy5sZW5ndGg7aWYoIm1vZCIhPT1QKXsoeWU9bmV3IE4obnVsbCkpLmxlbmd0aD1DZSsxLHllLndvcmRzPW5ldyBBcnJheSh5ZS5sZW5ndGgpO2Zvcih2YXIgRGU9MDtEZTx5ZS5sZW5ndGg7RGUrKyl5ZS53b3Jkc1tEZV09MH12''@;'; put 'put ''YXIgUGU9VC5jbG9uZSgpLl9pc2hsbnN1Ym11bChTLDEsQ2UpOzA9PT1QZS5uZWdhdGl2ZSYmKFQ9UGUseWUmJih5ZS53b3Jkc1tDZV09MSkpO2Zvcih2YXIgUWU9Q2UtMTtRZT49MDtRZS0tKXt2YXIgJGU9NjcxMDg4NjQqKDB8VC53b3Jkc1tTLmxlbmd0aCtRZV0pKygwfFQud29yZHNbUy5s''@;'; put 'put ''ZW5ndGgrUWUtMV0pO2ZvcigkZT1NYXRoLm1pbigkZS9GfDAsNjcxMDg4NjMpLFQuX2lzaGxuc3VibXVsKFMsJGUsUWUpOzAhPT1ULm5lZ2F0aXZlOykkZS0tLFQubmVnYXRpdmU9MCxULl9pc2hsbnN1Ym11bChTLDEsUWUpLFQuaXNaZXJvKCl8fChULm5lZ2F0aXZlXj0xKTt5ZSYmKHllLndv''@;'; put 'put ''cmRzW1FlXT0kZSl9cmV0dXJuIHllJiZ5ZS5zdHJpcCgpLFQuc3RyaXAoKSwiZGl2IiE9PVAmJjAhPT1WJiZULml1c2hybihWKSx7ZGl2OnllfHxudWxsLG1vZDpUfX0sTi5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgheC5pc1plcm8oKSksdGhpcy5pc1plcm8o''@;'; put 'put ''KT97ZGl2Om5ldyBOKDApLG1vZDpuZXcgTigwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgsUCksIm1vZCIhPT1QJiYoVD1GLmRpdi5uZWcoKSksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5p''@;'; put 'put ''YWRkKHgpKSx7ZGl2OlQsbW9kOlN9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmU/KEY9dGhpcy5kaXZtb2QoeC5uZWcoKSxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSx7ZGl2OlQsbW9kOkYubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmeC5uZWdhdGl2ZSk/KEY9dGhp''@;'; put 'put ''cy5uZWcoKS5kaXZtb2QoeC5uZWcoKSxQKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlzdWIoeCkpLHtkaXY6Ri5kaXYsbW9kOlN9KTp4Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoeCk8MD97ZGl2Om5ldyBOKDApLG1vZDp0aGlzfToxPT09''@;'; put 'put ''eC5sZW5ndGg/ImRpdiI9PT1QP3tkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PVA/e2RpdjpudWxsLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bmV3IE4odGhpcy5tb2RuKHgud29yZHNb''@;'; put 'put ''MF0pKX06dGhpcy5fd29yZERpdih4LFApO3ZhciBULFMsRn0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJkaXYiLCExKS5kaXZ9LE4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMSkubW9kfSxO''@;'; put 'put ''LnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCEwKS5tb2R9LE4ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuZGl2bW9kKHgpO2lmKFAubW9kLmlzWmVybygpKXJldHVybiBQLmRpdjt2YXIgVj0wIT09UC5kaXYu''@;'; put 'put ''bmVnYXRpdmU/UC5tb2QuaXN1Yih4KTpQLm1vZCxUPXgudXNocm4oMSksUz14LmFuZGxuKDEpLEY9Vi5jbXAoVCk7cmV0dXJuIEY8MHx8MT09PVMmJjA9PT1GP1AuZGl2OjAhPT1QLmRpdi5uZWdhdGl2ZT9QLmRpdi5pc3VibigxKTpQLmRpdi5pYWRkbigxKX0sTi5wcm90b3R5cGUubW9kbj1m''@;'; put 'put ''dW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9NjcxMDg4NjQleCxWPTAsVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKVY9KFAqVisoMHx0aGlzLndvcmRzW1RdKSkleDtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZh''@;'; put 'put ''ciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSs2NzEwODg2NCpQO3RoaXMud29yZHNbVl09VC94fDAsUD1UJXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlk''@;'; put 'put ''aXZuKHgpfSxOLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVD1uZXcgTigxKSxTPW5ldyBOKDApLEY9bmV3''@;'; put 'put ''IE4oMCkseWU9bmV3IE4oMSksQ2U9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpOylQLml1c2hybigxKSxWLml1c2hybigxKSwrK0NlO2Zvcih2YXIgRGU9Vi5jbG9uZSgpLFBlPVAuY2xvbmUoKTshUC5pc1plcm8oKTspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShQLndvcmRzWzBdJiRlKSYmUWU8''@;'; put 'put ''MjY7KytRZSwkZTw8PTEpO2lmKFFlPjApZm9yKFAuaXVzaHJuKFFlKTtRZS0tID4wOykoVC5pc09kZCgpfHxTLmlzT2RkKCkpJiYoVC5pYWRkKERlKSxTLmlzdWIoUGUpKSxULml1c2hybigxKSxTLml1c2hybigxKTtmb3IodmFyIGd0PTAsd3Q9MTswPT0oVi53b3Jkc1swXSZ3dCkmJmd0PDI2''@;'; put 'put ''OysrZ3Qsd3Q8PD0xKTtpZihndD4wKWZvcihWLml1c2hybihndCk7Z3QtLSA+MDspKEYuaXNPZGQoKXx8eWUuaXNPZGQoKSkmJihGLmlhZGQoRGUpLHllLmlzdWIoUGUpKSxGLml1c2hybigxKSx5ZS5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxULmlzdWIoRiksUy5pc3ViKHll''@;'; put 'put ''KSk6KFYuaXN1YihQKSxGLmlzdWIoVCkseWUuaXN1YihTKSl9cmV0dXJue2E6RixiOnllLGdjZDpWLml1c2hsbihDZSl9fSxOLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1Q''@;'; put 'put ''Lm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBULFM9bmV3IE4oMSksRj1uZXcgTigwKSx5ZT1WLmNsb25lKCk7UC5jbXBuKDEpPjAmJlYuY21wbigxKT4wOyl7Zm9yKHZhciBDZT0wLERlPTE7MD09KFAud29yZHNbMF0mRGUpJiZDZTwyNjsrK0NlLERlPDw9MSk7aWYoQ2U+''@;'; put 'put ''MClmb3IoUC5pdXNocm4oQ2UpO0NlLS0gPjA7KVMuaXNPZGQoKSYmUy5pYWRkKHllKSxTLml1c2hybigxKTtmb3IodmFyIFBlPTAsUWU9MTswPT0oVi53b3Jkc1swXSZRZSkmJlBlPDI2OysrUGUsUWU8PD0xKTtpZihQZT4wKWZvcihWLml1c2hybihQZSk7UGUtLSA+MDspRi5pc09kZCgpJiZG''@;'; put 'put ''LmlhZGQoeWUpLEYuaXVzaHJuKDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksUy5pc3ViKEYpKTooVi5pc3ViKFApLEYuaXN1YihTKSl9cmV0dXJuKFQ9MD09PVAuY21wbigxKT9TOkYpLmNtcG4oMCk8MCYmVC5pYWRkKHgpLFR9LE4ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih4KXtpZih0aGlz''@;'; put 'put ''LmlzWmVybygpKXJldHVybiB4LmFicygpO2lmKHguaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIFA9dGhpcy5jbG9uZSgpLFY9eC5jbG9uZSgpO1AubmVnYXRpdmU9MCxWLm5lZ2F0aXZlPTA7Zm9yKHZhciBUPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTtUKyspUC5pdXNocm4oMSks''@;'; put 'put ''Vi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO1AuaXNFdmVuKCk7KVAuaXVzaHJuKDEpO2Zvcig7Vi5pc0V2ZW4oKTspVi5pdXNocm4oMSk7dmFyIFM9UC5jbXAoVik7aWYoUzwwKXt2YXIgRj1QO1A9VixWPUZ9ZWxzZSBpZigwPT09U3x8MD09PVYuY21wbigxKSlicmVhaztQLmlzdWIoVil9cmV0''@;'; put 'put ''dXJuIFYuaXVzaGxuKFQpfSxOLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmVnY2QoeCkuYS51bW9kKHgpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ4fSxOLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCk7dmFyIFA9eCUyNixWPSh4LVApLzI2LFQ9MTw8UDtp''@;'; put 'put ''Zih0aGlzLmxlbmd0aDw9VilyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXXw9VCx0aGlzO2Zvcih2YXIgUz1ULEY9VjswIT09UyYmRjx0aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT0wfHRoaXMud29yZHNbRl07Uz0oeWUrPVMpPj4+MjYsdGhpcy53b3Jkc1tGXT15ZSY9Njcx''@;'; put 'put ''MDg4NjN9cmV0dXJuIDAhPT1TJiYodGhpcy53b3Jkc1tGXT1TLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHgpe3ZhciBQ''@;'; put 'put ''LFY9eDwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhVilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmVilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlQPTE7ZWxzZXtWJiYoeD0teCksWSh4PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgVD0w''@;'; put 'put ''fHRoaXMud29yZHNbMF07UD1UPT09eD8wOlQ8eD8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLmNtcD1mdW5jdGlvbih4KXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAh''@;'; put 'put ''PT14Lm5lZ2F0aXZlKXJldHVybiAxO3ZhciBQPXRoaXMudWNtcCh4KTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHgpe2lmKHRoaXMubGVuZ3RoPngubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHgubGVuZ3RoKXJldHVy''@;'; put 'put ''bi0xO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9MHx0aGlzLndvcmRzW1ZdLFM9MHx4LndvcmRzW1ZdO2lmKFQhPT1TKXtUPFM/UD0tMTpUPlMmJihQPTEpO2JyZWFrfX1yZXR1cm4gUH0sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHgpe3JldHVybiAxPT09''@;'; put 'put ''dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5ndD1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk+''@;'; put 'put ''PTB9LE4ucHJvdG90eXBlLmx0bj1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPD0wfSxOLnBy''@;'; put 'put ''b3RvdHlwZS5sdGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXAoeCl9LE4ucmVkPWZ1bmN0aW9u''@;'; put 'put ''KHgpe3JldHVybiBuZXcgZWUoeCl9LE4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLFkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiks''@;'; put 'put ''eC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0s''@;'; put 'put ''Ti5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnJlZD14LHRoaXN9LE4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVk''@;'; put 'put ''KHgpfSxOLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwi''@;'; put 'put ''cmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlz''@;'; put 'put ''LHgpfSxOLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVk''@;'; put 'put ''LCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnky''@;'; put 'put ''KHRoaXMseCksdGhpcy5yZWQubXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLmltdWwodGhpcyx4''@;'; put 'put ''KX0sTi5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gWSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mg''@;'; put 'put ''b25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTi5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVk''@;'; put 'put ''Ll92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LE4ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMp''@;'; put 'put ''fSxOLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQmJiF4LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx4KX07dmFyIEllPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxw''@;'; put 'put ''MjU1MTk6bnVsbH07ZnVuY3Rpb24gVGUoeCxQKXt0aGlzLm5hbWU9eCx0aGlzLnA9bmV3IE4oUCwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIE1lKCl7''@;'; put 'put ''VGUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBoZSgpe1RlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm''@;'; put 'put ''IDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gTygpe1RlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe1RlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZm''@;'; put 'put ''ZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gZWUoeCl7aWYoInN0cmluZyI9PXR5cGVvZiB4KXt2YXIgUD1OLl9wcmltZSh4KTt0aGlzLm09UC5wLHRoaXMucHJpbWU9UH1lbHNlIFkoeC5ndG4oMSksIm1vZHVsdXMg''@;'; put 'put ''bXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT14LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBuZSh4KXtlZS5jYWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMu''@;'; put 'put ''cj1uZXcgTigxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWlu''@;'; put 'put ''di51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1UZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB4LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSkseH0sVGUucHJvdG90eXBlLmlyZWR1Y2U9''@;'; put 'put ''ZnVuY3Rpb24oeCl7dmFyIFAsVj14O2Rve3RoaXMuc3BsaXQoVix0aGlzLnRtcCksUD0oVj0oVj10aGlzLmltdWxLKFYpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoUD50aGlzLm4pO3ZhciBUPVA8dGhpcy5uPy0xOlYudWNtcCh0aGlzLnApO3JldHVybiAwPT09VD8oVi53''@;'; put 'put ''b3Jkc1swXT0wLFYubGVuZ3RoPTEpOlQ+MD9WLmlzdWIodGhpcy5wKTp2b2lkIDAhPT1WLnN0cmlwP1Yuc3RyaXAoKTpWLl9zdHJpcCgpLFZ9LFRlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe3guaXVzaHJuKHRoaXMubiwwLFApfSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24o''@;'; put 'put ''eCl7cmV0dXJuIHguaW11bCh0aGlzLmspfSxXKE1lLFRlKSxNZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9NDE5NDMwMyxUPU1hdGgubWluKHgubGVuZ3RoLDkpLFM9MDtTPFQ7UysrKVAud29yZHNbU109eC53b3Jkc1tTXTtpZihQLmxlbmd0aD1ULHgubGVuZ3Ro''@;'; put 'put ''PD05KXJldHVybiB4LndvcmRzWzBdPTAsdm9pZCh4Lmxlbmd0aD0xKTt2YXIgRj14LndvcmRzWzldO2ZvcihQLndvcmRzW1AubGVuZ3RoKytdPUYmVixTPTEwO1M8eC5sZW5ndGg7UysrKXt2YXIgeWU9MHx4LndvcmRzW1NdO3gud29yZHNbUy0xMF09KHllJlYpPDw0fEY+Pj4yMixGPXllfXgu''@;'; put 'put ''d29yZHNbUy0xMF09Rj4+Pj0yMix4Lmxlbmd0aC09MD09PUYmJngubGVuZ3RoPjEwPzEwOjl9LE1lLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXt4LndvcmRzW3gubGVuZ3RoXT0wLHgud29yZHNbeC5sZW5ndGgrMV09MCx4Lmxlbmd0aCs9Mjtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0''@;'; put 'put ''aDtWKyspe3ZhciBUPTB8eC53b3Jkc1tWXTt4LndvcmRzW1ZdPTY3MTA4ODYzJihQKz05NzcqVCksUD02NCpUKyhQLzY3MTA4ODY0fDApfXJldHVybiAwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmKHgubGVuZ3RoLS0sMD09PXgud29yZHNbeC5sZW5ndGgtMV0mJngubGVuZ3RoLS0pLHh9LFco''@;'; put 'put ''aGUsVGUpLFcoTyxUZSksVyh6LFRlKSx6LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTE5KigwfHgud29yZHNbVl0pK1AsUz02NzEwODg2MyZUO1Q+Pj49MjYseC53b3Jkc1tWXT1TLFA9VH1yZXR1cm4gMCE9PVAmJih4''@;'; put 'put ''LndvcmRzW3gubGVuZ3RoKytdPVApLHh9LE4uX3ByaW1lPWZ1bmN0aW9uKHgpe2lmKEllW3hdKXJldHVybiBJZVt4XTt2YXIgUDtpZigiazI1NiI9PT14KVA9bmV3IE1lO2Vsc2UgaWYoInAyMjQiPT09eClQPW5ldyBoZTtlbHNlIGlmKCJwMTkyIj09PXgpUD1uZXcgTztlbHNle2lmKCJwMjU1''@;'; put 'put ''MTkiIT09eCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit4KTtQPW5ldyB6fXJldHVybiBJZVt4XT1QLFB9LGVlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQsInJl''@;'; put 'put ''ZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sZWUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHgsUCl7WSgwPT0oeC5uZWdhdGl2ZXxQLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkJiZ4LnJlZD09PVAucmVkLCJyZWQgd29ya3Mg''@;'; put 'put ''b25seSB3aXRoIHJlZCBudW1iZXJzIil9LGVlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh4KS5fZm9yY2VSZWQodGhpcyk6eC51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUubmVnPWZ1bmN0''@;'; put 'put ''aW9uKHgpe3JldHVybiB4LmlzWmVybygpP3guY2xvbmUoKTp0aGlzLm0uc3ViKHgpLl9mb3JjZVJlZCh0aGlzKX0sZWUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRo''@;'; put 'put ''aXMubSksVi5fZm9yY2VSZWQodGhpcyl9LGVlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaWFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sZWUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4LFAp''@;'; put 'put ''e3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LnN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlzdWIoUCk7cmV0dXJuIFYu''@;'; put 'put ''Y21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxWfSxlZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoeCksdGhpcy5pbW9kKHgudXNobG4oUCkpfSxlZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCks''@;'; put 'put ''dGhpcy5pbW9kKHguaW11bChQKSl9LGVlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4Lm11bChQKSl9LGVlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltdWwoeCx4LmNsb25lKCkpfSxlZS5w''@;'; put 'put ''cm90b3R5cGUuc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLm11bCh4LHgpfSxlZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih4KXtpZih4LmlzWmVybygpKXJldHVybiB4LmNsb25lKCk7dmFyIFA9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUCUyPT0xKSwzPT09UCl7dmFyIFY9dGhpcy5tLmFk''@;'; put 'put ''ZChuZXcgTigxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh4LFYpfWZvcih2YXIgVD10aGlzLm0uc3VibigxKSxTPTA7IVQuaXNaZXJvKCkmJjA9PT1ULmFuZGxuKDEpOylTKyssVC5pdXNocm4oMSk7WSghVC5pc1plcm8oKSk7dmFyIEY9bmV3IE4oMSkudG9SZWQodGhpcykseWU9Ri5y''@;'; put 'put ''ZWROZWcoKSxDZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksRGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihEZT1uZXcgTigyKkRlKkRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coRGUsQ2UpLmNtcCh5ZSk7KURlLnJlZElBZGQoeWUpO2Zvcih2YXIgUGU9dGhpcy5wb3coRGUsVCksUWU9''@;'; put 'put ''dGhpcy5wb3coeCxULmFkZG4oMSkuaXVzaHJuKDEpKSwkZT10aGlzLnBvdyh4LFQpLGd0PVM7MCE9PSRlLmNtcChGKTspe2Zvcih2YXIgd3Q9JGUsbXQ9MDswIT09d3QuY21wKEYpO210Kyspd3Q9d3QucmVkU3FyKCk7WShtdDxndCk7dmFyIHZ0PXRoaXMucG93KFBlLG5ldyBOKDEpLml1c2hs''@;'; put 'put ''bihndC1tdC0xKSk7UWU9UWUucmVkTXVsKHZ0KSxQZT12dC5yZWRTcXIoKSwkZT0kZS5yZWRNdWwoUGUpLGd0PW10fXJldHVybiBRZX0sZWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7dmFyIFA9eC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVAubmVnYXRpdmU/KFAubmVnYXRpdmU9''@;'; put 'put ''MCx0aGlzLmltb2QoUCkucmVkTmVnKCkpOnRoaXMuaW1vZChQKX0sZWUucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4LFApe2lmKFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1QLmNtcG4oMSkpcmV0dXJuIHguY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXkoMTYp''@;'; put 'put ''O1ZbMF09bmV3IE4oMSkudG9SZWQodGhpcyksVlsxXT14O2Zvcih2YXIgVD0yO1Q8Vi5sZW5ndGg7VCsrKVZbVF09dGhpcy5tdWwoVltULTFdLHgpO3ZhciBTPVZbMF0sRj0wLHllPTAsQ2U9UC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PUNlJiYoQ2U9MjYpLFQ9UC5sZW5ndGgtMTtUPj0wO1Qt''@;'; put 'put ''LSl7Zm9yKHZhciBEZT1QLndvcmRzW1RdLFBlPUNlLTE7UGU+PTA7UGUtLSl7dmFyIFFlPURlPj5QZSYxO1MhPT1WWzBdJiYoUz10aGlzLnNxcihTKSksMCE9PVFlfHwwIT09Rj8oRjw8PTEsRnw9UWUsKDQ9PSsreWV8fDA9PT1UJiYwPT09UGUpJiYoUz10aGlzLm11bChTLFZbRl0pLHllPTAs''@;'; put 'put ''Rj0wKSk6eWU9MH1DZT0yNn1yZXR1cm4gU30sZWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXt2YXIgUD14LnVtb2QodGhpcy5tKTtyZXR1cm4gUD09PXg/UC5jbG9uZSgpOlB9LGVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD14LmNsb25lKCk7cmV0''@;'; put 'put ''dXJuIFAucmVkPW51bGwsUH0sTi5tb250PWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgbmUoeCl9LFcobmUsZWUpLG5lLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4LnVzaGxuKHRoaXMuc2hpZnQpKX0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1''@;'; put 'put ''bmN0aW9uKHgpe3ZhciBQPXRoaXMuaW1vZCh4Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxuZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIHgud29yZHNbMF09MCx4Lmxlbmd0aD0xLHg7dmFyIFY9eC5p''@;'; put 'put ''bXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTwwJiYo''@;'; put 'put ''Rj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtpZih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiBuZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIFY9eC5tdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11''@;'; put 'put ''bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0''@;'; put 'put ''aGlzKX0sbmUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oVT1qLm5tZChVKSx0aGlzKX0sOTI4MjooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQxNTUpLGFl''@;'; put 'put ''PWooNTEwOCk7ZnVuY3Rpb24gWShRZSl7cmV0dXJuKFk9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oJGUpe3JldHVybiB0eXBlb2YgJGV9OmZ1bmN0aW9uKCRlKXtyZXR1cm4gJGUmJiJmdW5jdGlvbiI9PXR5cGVv''@;'; put 'put ''ZiBTeW1ib2wmJiRlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiYkZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mICRlfSkoUWUpfXZhciBXLE4sdGU9aigyMTM2KS5jb2RlcyxLPXRlLkVSUl9BTUJJR1VPVVNfQVJHVU1FTlQsSj10ZS5FUlJfSU5WQUxJRF9BUkdfVFlQRSxzZT10''@;'; put 'put ''ZS5FUlJfSU5WQUxJRF9BUkdfVkFMVUUsb2U9dGUuRVJSX0lOVkFMSURfUkVUVVJOX1ZBTFVFLGNlPXRlLkVSUl9NSVNTSU5HX0FSR1MsZGU9aig1OTYxKSx2ZT1qKDk1MzkpLmluc3BlY3QsQWU9aig5NTM5KS50eXBlcyxrZT1BZS5pc1Byb21pc2UsU2U9QWUuaXNSZWdFeHAsSWU9T2JqZWN0''@;'; put 'put ''LmFzc2lnbj9PYmplY3QuYXNzaWduOmooODA5MSkuYXNzaWduLFRlPU9iamVjdC5pcz9PYmplY3QuaXM6aig2MDkpO2Z1bmN0aW9uIE1lKCl7dmFyIFFlPWooOTE1OCk7Vz1RZS5pc0RlZXBFcXVhbCxOPVFlLmlzRGVlcFN0cmljdEVxdWFsfXZhciBoZT0hMSxPPVUuZXhwb3J0cz14LHo9e307''@;'; put 'put ''ZnVuY3Rpb24gZWUoUWUpe3Rocm93IFFlLm1lc3NhZ2UgaW5zdGFuY2VvZiBFcnJvcj9RZS5tZXNzYWdlOm5ldyBkZShRZSl9ZnVuY3Rpb24gbmUoUWUsJGUsZ3Qsd3Qpe2lmKCFndCl7dmFyIG10PSExO2lmKDA9PT0kZSltdD0hMCx3dD0iTm8gdmFsdWUgYXJndW1lbnQgcGFzc2VkIHRvIGBh''@;'; put 'put ''c3NlcnQub2soKWAiO2Vsc2UgaWYod3QgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyB3dDt2YXIgdnQ9bmV3IGRlKHthY3R1YWw6Z3QsZXhwZWN0ZWQ6ITAsbWVzc2FnZTp3dCxvcGVyYXRvcjoiPT0iLHN0YWNrU3RhcnRGbjpRZX0pO3Rocm93IHZ0LmdlbmVyYXRlZE1lc3NhZ2U9bXQsdnR9fWZ1''@;'; put 'put ''bmN0aW9uIHgoKXtmb3IodmFyIFFlPWFyZ3VtZW50cy5sZW5ndGgsJGU9bmV3IEFycmF5KFFlKSxndD0wO2d0PFFlO2d0KyspJGVbZ3RdPWFyZ3VtZW50c1tndF07bmUuYXBwbHkodm9pZCAwLFt4LCRlLmxlbmd0aF0uY29uY2F0KCRlKSl9Ty5mYWlsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0LG10''@;'; put 'put ''LHZ0KXt2YXIgQXQsaHQ9YXJndW1lbnRzLmxlbmd0aDtpZigwPT09aHQ/QXQ9IkZhaWxlZCI6MT09PWh0Pyh3dD0kZSwkZT12b2lkIDApOighMT09PWhlJiYoaGU9ITAsKHJlLmVtaXRXYXJuaW5nP3JlLmVtaXRXYXJuaW5nOmFlLndhcm4uYmluZChhZSkpKCJhc3NlcnQuZmFpbCgpIHdpdGgg''@;'; put 'put ''bW9yZSB0aGFuIG9uZSBhcmd1bWVudCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIGFzc2VydC5zdHJpY3RFcXVhbCgpIGluc3RlYWQgb3Igb25seSBwYXNzIGEgbWVzc2FnZS4iLCJEZXByZWNhdGlvbldhcm5pbmciLCJERVAwMDk0IikpLDI9PT1odCYmKG10PSIhPSIpKSx3dCBpbnN0YW5j''@;'; put 'put ''ZW9mIEVycm9yKXRocm93IHd0O3ZhciBvbj17YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG9wZXJhdG9yOnZvaWQgMD09PW10PyJmYWlsIjptdCxzdGFja1N0YXJ0Rm46dnR8fFFlfTt2b2lkIDAhPT13dCYmKG9uLm1lc3NhZ2U9d3QpO3ZhciBfdD1uZXcgZGUob24pO3Rocm93IEF0JiYoX3QubWVz''@;'; put 'put ''c2FnZT1BdCxfdC5nZW5lcmF0ZWRNZXNzYWdlPSEwKSxfdH0sTy5Bc3NlcnRpb25FcnJvcj1kZSxPLm9rPXgsTy5lcXVhbD1mdW5jdGlvbiBRZSgkZSxndCx3dCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBjZSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTskZSE9Z3QmJmVlKHthY3R1''@;'; put 'put ''YWw6JGUsZXhwZWN0ZWQ6Z3QsbWVzc2FnZTp3dCxvcGVyYXRvcjoiPT0iLHN0YWNrU3RhcnRGbjpRZX0pfSxPLm5vdEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpOyRlPT1ndCYmZWUoe2Fj''@;'; put 'put ''dHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiIhPSIsc3RhY2tTdGFydEZuOlFlfSl9LE8uZGVlcEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpO3ZvaWQgMD09PVcm''@;'; put 'put ''Jk1lKCksVygkZSxndCl8fGVlKHthY3R1YWw6JGUsZXhwZWN0ZWQ6Z3QsbWVzc2FnZTp3dCxvcGVyYXRvcjoiZGVlcEVxdWFsIixzdGFja1N0YXJ0Rm46UWV9KX0sTy5ub3REZWVwRXF1YWw9ZnVuY3Rpb24gUWUoJGUsZ3Qsd3Qpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBuZXcgY2Uo''@;'; put 'put ''ImFjdHVhbCIsImV4cGVjdGVkIik7dm9pZCAwPT09VyYmTWUoKSxXKCRlLGd0KSYmZWUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJub3REZWVwRXF1YWwiLHN0YWNrU3RhcnRGbjpRZX0pfSxPLmRlZXBTdHJpY3RFcXVhbD1mdW5jdGlvbiBRZSgkZSxndCx3''@;'; put 'put ''dCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBjZSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTt2b2lkIDA9PT1XJiZNZSgpLE4oJGUsZ3QpfHxlZSh7YWN0dWFsOiRlLGV4cGVjdGVkOmd0LG1lc3NhZ2U6d3Qsb3BlcmF0b3I6ImRlZXBTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOlFl''@;'; put 'put ''fSl9LE8ubm90RGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpO3ZvaWQgMD09PVcmJk1lKCksTigkZSxndCkmJmVlKHthY3R1YWw6JGUsZXhwZWN0ZWQ6Z3QsbWVzc2FnZTp3''@;'; put 'put ''dCxvcGVyYXRvcjoibm90RGVlcFN0cmljdEVxdWFsIixzdGFja1N0YXJ0Rm46UWV9KX0sTy5zdHJpY3RFcXVhbD1mdW5jdGlvbiBRZSgkZSxndCx3dCl7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXRocm93IG5ldyBjZSgiYWN0dWFsIiwiZXhwZWN0ZWQiKTtUZSgkZSxndCl8fGVlKHthY3R1YWw6''@;'; put 'put ''JGUsZXhwZWN0ZWQ6Z3QsbWVzc2FnZTp3dCxvcGVyYXRvcjoic3RyaWN0RXF1YWwiLHN0YWNrU3RhcnRGbjpRZX0pfSxPLm5vdFN0cmljdEVxdWFsPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXtpZihhcmd1bWVudHMubGVuZ3RoPDIpdGhyb3cgbmV3IGNlKCJhY3R1YWwiLCJleHBlY3RlZCIpO1Rl''@;'; put 'put ''KCRlLGd0KSYmZWUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxtZXNzYWdlOnd0LG9wZXJhdG9yOiJub3RTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOlFlfSl9O3ZhciBQPWZ1bmN0aW9uIFFlKCRlLGd0LHd0KXt2YXIgbXQ9dGhpczsoZnVuY3Rpb24odnQsQXQpe2lmKCEodnQgaW5zdGFuY2Vv''@;'; put 'put ''ZiBBdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KSh0aGlzLFFlKSxndC5mb3JFYWNoKGZ1bmN0aW9uKHZ0KXt2dCBpbiAkZSYmKG10W3Z0XT12b2lkIDAhPT13dCYmInN0cmluZyI9PXR5cGVvZiB3dFt2dF0mJlNlKCRlW3Z0XSkm''@;'; put 'put ''JiRlW3Z0XS50ZXN0KHd0W3Z0XSk/d3RbdnRdOiRlW3Z0XSl9KX07ZnVuY3Rpb24gVihRZSwkZSxndCx3dCxtdCx2dCl7aWYoIShndCBpbiBRZSl8fCFOKFFlW2d0XSwkZVtndF0pKXtpZighd3Qpe3ZhciBBdD1uZXcgUChRZSxtdCksaHQ9bmV3IFAoJGUsbXQsUWUpLEJ0PW5ldyBkZSh7YWN0''@;'; put 'put ''dWFsOkF0LGV4cGVjdGVkOmh0LG9wZXJhdG9yOiJkZWVwU3RyaWN0RXF1YWwiLHN0YWNrU3RhcnRGbjp2dH0pO3Rocm93IEJ0LmFjdHVhbD1RZSxCdC5leHBlY3RlZD0kZSxCdC5vcGVyYXRvcj12dC5uYW1lLEJ0fWVlKHthY3R1YWw6UWUsZXhwZWN0ZWQ6JGUsbWVzc2FnZTp3dCxvcGVyYXRv''@;'; put 'put ''cjp2dC5uYW1lLHN0YWNrU3RhcnRGbjp2dH0pfX1mdW5jdGlvbiBUKFFlLCRlLGd0LHd0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgJGUpe2lmKFNlKCRlKSlyZXR1cm4gJGUudGVzdChRZSk7aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3cgbmV3IEooImV4cGVjdGVkIixbIkZ1bmN0aW9u''@;'; put 'put ''IiwiUmVnRXhwIl0sJGUpO2lmKCJvYmplY3QiIT09WShRZSl8fG51bGw9PT1RZSl7dmFyIG10PW5ldyBkZSh7YWN0dWFsOlFlLGV4cGVjdGVkOiRlLG1lc3NhZ2U6Z3Qsb3BlcmF0b3I6ImRlZXBTdHJpY3RFcXVhbCIsc3RhY2tTdGFydEZuOnd0fSk7dGhyb3cgbXQub3BlcmF0b3I9d3QubmFt''@;'; put 'put ''ZSxtdH12YXIgdnQ9T2JqZWN0LmtleXMoJGUpO2lmKCRlIGluc3RhbmNlb2YgRXJyb3IpdnQucHVzaCgibmFtZSIsIm1lc3NhZ2UiKTtlbHNlIGlmKDA9PT12dC5sZW5ndGgpdGhyb3cgbmV3IHNlKCJlcnJvciIsJGUsIm1heSBub3QgYmUgYW4gZW1wdHkgb2JqZWN0Iik7cmV0dXJuIHZvaWQg''@;'; put 'put ''MD09PVcmJk1lKCksdnQuZm9yRWFjaChmdW5jdGlvbihBdCl7InN0cmluZyI9PXR5cGVvZiBRZVtBdF0mJlNlKCRlW0F0XSkmJiRlW0F0XS50ZXN0KFFlW0F0XSl8fFYoUWUsJGUsQXQsZ3QsdnQsd3QpfSksITB9cmV0dXJuIHZvaWQgMCE9PSRlLnByb3RvdHlwZSYmUWUgaW5zdGFuY2VvZiAk''@;'; put 'put ''ZXx8IUVycm9yLmlzUHJvdG90eXBlT2YoJGUpJiYhMD09PSRlLmNhbGwoe30sUWUpfWZ1bmN0aW9uIFMoUWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBRZSl0aHJvdyBuZXcgSigiZm4iLCJGdW5jdGlvbiIsUWUpO3RyeXtRZSgpfWNhdGNoKCRlKXtyZXR1cm4gJGV9cmV0dXJuIHp9ZnVuY3Rp''@;'; put 'put ''b24gRihRZSl7cmV0dXJuIGtlKFFlKXx8bnVsbCE9PVFlJiYib2JqZWN0Ij09PVkoUWUpJiYiZnVuY3Rpb24iPT10eXBlb2YgUWUudGhlbiYmImZ1bmN0aW9uIj09dHlwZW9mIFFlLmNhdGNofWZ1bmN0aW9uIHllKFFlKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigp''@;'; put 'put ''e3ZhciAkZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUWUpe2lmKCFGKCRlPVFlKCkpKXRocm93IG5ldyBvZSgiaW5zdGFuY2Ugb2YgUHJvbWlzZSIsInByb21pc2VGbiIsJGUpfWVsc2V7aWYoIUYoUWUpKXRocm93IG5ldyBKKCJwcm9taXNlRm4iLFsiRnVuY3Rpb24iLCJQcm9taXNlIl0sUWUp''@;'; put 'put ''OyRlPVFlfXJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuICRlfSkudGhlbihmdW5jdGlvbigpe3JldHVybiB6fSkuY2F0Y2goZnVuY3Rpb24oZ3Qpe3JldHVybiBndH0pfSl9ZnVuY3Rpb24gQ2UoUWUsJGUsZ3Qsd3Qpe2lmKCJzdHJpbmciPT10eXBlb2Yg''@;'; put 'put ''Z3Qpe2lmKDQ9PT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBKKCJlcnJvciIsWyJPYmplY3QiLCJFcnJvciIsIkZ1bmN0aW9uIiwiUmVnRXhwIl0sZ3QpO2lmKCJvYmplY3QiPT09WSgkZSkmJm51bGwhPT0kZSl7aWYoJGUubWVzc2FnZT09PWd0KXRocm93IG5ldyBLKCJlcnJvci9tZXNz''@;'; put 'put ''YWdlIiwnVGhlIGVycm9yIG1lc3NhZ2UgIicuY29uY2F0KCRlLm1lc3NhZ2UsJyIgaXMgaWRlbnRpY2FsIHRvIHRoZSBtZXNzYWdlLicpKX1lbHNlIGlmKCRlPT09Z3QpdGhyb3cgbmV3IEsoImVycm9yL21lc3NhZ2UiLCdUaGUgZXJyb3IgIicuY29uY2F0KCRlLCciIGlzIGlkZW50aWNhbCB0''@;'; put 'put ''byB0aGUgbWVzc2FnZS4nKSk7d3Q9Z3QsZ3Q9dm9pZCAwfWVsc2UgaWYobnVsbCE9Z3QmJiJvYmplY3QiIT09WShndCkmJiJmdW5jdGlvbiIhPXR5cGVvZiBndCl0aHJvdyBuZXcgSigiZXJyb3IiLFsiT2JqZWN0IiwiRXJyb3IiLCJGdW5jdGlvbiIsIlJlZ0V4cCJdLGd0KTtpZigkZT09PXop''@;'; put 'put ''e3ZhciBtdD0iIjtndCYmZ3QubmFtZSYmKG10Kz0iICgiLmNvbmNhdChndC5uYW1lLCIpIikpLG10Kz13dD8iOiAiLmNvbmNhdCh3dCk6Ii4iLGVlKHthY3R1YWw6dm9pZCAwLGV4cGVjdGVkOmd0LG9wZXJhdG9yOlFlLm5hbWUsbWVzc2FnZToiTWlzc2luZyBleHBlY3RlZCAiLmNvbmNhdCgi''@;'; put 'put ''cmVqZWN0cyI9PT1RZS5uYW1lPyJyZWplY3Rpb24iOiJleGNlcHRpb24iKS5jb25jYXQobXQpLHN0YWNrU3RhcnRGbjpRZX0pfWlmKGd0JiYhVCgkZSxndCx3dCxRZSkpdGhyb3cgJGV9ZnVuY3Rpb24gRGUoUWUsJGUsZ3Qsd3Qpe2lmKCRlIT09eil7aWYoInN0cmluZyI9PXR5cGVvZiBndCYm''@;'; put 'put ''KHd0PWd0LGd0PXZvaWQgMCksIWd0fHxUKCRlLGd0KSl7dmFyIG10PXd0PyI6ICIuY29uY2F0KHd0KToiLiI7ZWUoe2FjdHVhbDokZSxleHBlY3RlZDpndCxvcGVyYXRvcjpRZS5uYW1lLG1lc3NhZ2U6IkdvdCB1bndhbnRlZCAiLmNvbmNhdCgiZG9lc05vdFJlamVjdCI9PT1RZS5uYW1lPyJy''@;'; put 'put ''ZWplY3Rpb24iOiJleGNlcHRpb24iKS5jb25jYXQobXQsIlxuIikrJ0FjdHVhbCBtZXNzYWdlOiAiJy5jb25jYXQoJGUmJiRlLm1lc3NhZ2UsJyInKSxzdGFja1N0YXJ0Rm46UWV9KX10aHJvdyAkZX19ZnVuY3Rpb24gUGUoKXtmb3IodmFyIFFlPWFyZ3VtZW50cy5sZW5ndGgsJGU9bmV3IEFy''@;'; put 'put ''cmF5KFFlKSxndD0wO2d0PFFlO2d0KyspJGVbZ3RdPWFyZ3VtZW50c1tndF07bmUuYXBwbHkodm9pZCAwLFtQZSwkZS5sZW5ndGhdLmNvbmNhdCgkZSkpfU8udGhyb3dzPWZ1bmN0aW9uIFFlKCRlKXtmb3IodmFyIGd0PWFyZ3VtZW50cy5sZW5ndGgsd3Q9bmV3IEFycmF5KGd0PjE/Z3QtMTow''@;'; put 'put ''KSxtdD0xO210PGd0O210Kyspd3RbbXQtMV09YXJndW1lbnRzW210XTtDZS5hcHBseSh2b2lkIDAsW1FlLFMoJGUpXS5jb25jYXQod3QpKX0sTy5yZWplY3RzPWZ1bmN0aW9uIFFlKCRlKXtmb3IodmFyIGd0PWFyZ3VtZW50cy5sZW5ndGgsd3Q9bmV3IEFycmF5KGd0PjE/Z3QtMTowKSxtdD0x''@;'; put 'put ''O210PGd0O210Kyspd3RbbXQtMV09YXJndW1lbnRzW210XTtyZXR1cm4geWUoJGUpLnRoZW4oZnVuY3Rpb24odnQpe3JldHVybiBDZS5hcHBseSh2b2lkIDAsW1FlLHZ0XS5jb25jYXQod3QpKX0pfSxPLmRvZXNOb3RUaHJvdz1mdW5jdGlvbiBRZSgkZSl7Zm9yKHZhciBndD1hcmd1bWVudHMu''@;'; put 'put ''bGVuZ3RoLHd0PW5ldyBBcnJheShndD4xP2d0LTE6MCksbXQ9MTttdDxndDttdCsrKXd0W210LTFdPWFyZ3VtZW50c1ttdF07RGUuYXBwbHkodm9pZCAwLFtRZSxTKCRlKV0uY29uY2F0KHd0KSl9LE8uZG9lc05vdFJlamVjdD1mdW5jdGlvbiBRZSgkZSl7Zm9yKHZhciBndD1hcmd1bWVudHMu''@;'; put 'put ''bGVuZ3RoLHd0PW5ldyBBcnJheShndD4xP2d0LTE6MCksbXQ9MTttdDxndDttdCsrKXd0W210LTFdPWFyZ3VtZW50c1ttdF07cmV0dXJuIHllKCRlKS50aGVuKGZ1bmN0aW9uKHZ0KXtyZXR1cm4gRGUuYXBwbHkodm9pZCAwLFtRZSx2dF0uY29uY2F0KHd0KSl9KX0sTy5pZkVycm9yPWZ1bmN0''@;'; put 'put ''aW9uIFFlKCRlKXtpZihudWxsIT0kZSl7dmFyIGd0PSJpZkVycm9yIGdvdCB1bndhbnRlZCBleGNlcHRpb246ICI7Im9iamVjdCI9PT1ZKCRlKSYmInN0cmluZyI9PXR5cGVvZiAkZS5tZXNzYWdlP2d0Kz0wPT09JGUubWVzc2FnZS5sZW5ndGgmJiRlLmNvbnN0cnVjdG9yPyRlLmNvbnN0cnVj''@;'; put 'put ''dG9yLm5hbWU6JGUubWVzc2FnZTpndCs9dmUoJGUpO3ZhciB3dD1uZXcgZGUoe2FjdHVhbDokZSxleHBlY3RlZDpudWxsLG9wZXJhdG9yOiJpZkVycm9yIixtZXNzYWdlOmd0LHN0YWNrU3RhcnRGbjpRZX0pLG10PSRlLnN0YWNrO2lmKCJzdHJpbmciPT10eXBlb2YgbXQpe3ZhciB2dD1tdC5z''@;'; put 'put ''cGxpdCgiXG4iKTt2dC5zaGlmdCgpO2Zvcih2YXIgQXQ9d3Quc3RhY2suc3BsaXQoIlxuIiksaHQ9MDtodDx2dC5sZW5ndGg7aHQrKyl7dmFyIEJ0PUF0LmluZGV4T2YodnRbaHRdKTtpZigtMSE9PUJ0KXtBdD1BdC5zbGljZSgwLEJ0KTticmVha319d3Quc3RhY2s9IiIuY29uY2F0KEF0Lmpv''@;'; put 'put ''aW4oIlxuIiksIlxuIikuY29uY2F0KHZ0LmpvaW4oIlxuIikpfXRocm93IHd0fX0sTy5zdHJpY3Q9SWUoUGUsTyx7ZXF1YWw6Ty5zdHJpY3RFcXVhbCxkZWVwRXF1YWw6Ty5kZWVwU3RyaWN0RXF1YWwsbm90RXF1YWw6Ty5ub3RTdHJpY3RFcXVhbCxub3REZWVwRXF1YWw6Ty5ub3REZWVwU3Ry''@;'; put 'put ''aWN0RXF1YWx9KSxPLnN0cmljdC5zdHJpY3Q9Ty5zdHJpY3R9LDU5NjE6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KTtmdW5jdGlvbiBhZShuZSx4LFApe3JldHVybiB4IGluIG5lP09iamVjdC5kZWZpbmVQcm9wZXJ0eShuZSx4LHt2YWx1ZTpQLGVudW1lcmFibGU6ITAs''@;'; put 'put ''Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6bmVbeF09UCxuZX1mdW5jdGlvbiBZKG5lLHgpe2Zvcih2YXIgUD0wO1A8eC5sZW5ndGg7UCsrKXt2YXIgVj14W1BdO1YuZW51bWVyYWJsZT1WLmVudW1lcmFibGV8fCExLFYuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiBWJiYoVi53cml0''@;'; put 'put ''YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KG5lLFYua2V5LFYpfX1mdW5jdGlvbiBXKG5lLHgpe3JldHVybiF4fHwib2JqZWN0IiE9PWNlKHgpJiYiZnVuY3Rpb24iIT10eXBlb2YgeD9OKG5lKTp4fWZ1bmN0aW9uIE4obmUpe2lmKHZvaWQgMD09PW5lKXRocm93IG5ldyBSZWZlcmVu''@;'; put 'put ''Y2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIG5lfWZ1bmN0aW9uIHRlKG5lKXt2YXIgeD0iZnVuY3Rpb24iPT10eXBlb2YgTWFwP25ldyBNYXA6dm9pZCAwO3JldHVybiB0ZT1mdW5jdGlvbihQKXtpZihu''@;'; put 'put ''dWxsPT09UHx8LTE9PT1GdW5jdGlvbi50b1N0cmluZy5jYWxsKFApLmluZGV4T2YoIltuYXRpdmUgY29kZV0iKSlyZXR1cm4gUDtpZigiZnVuY3Rpb24iIT10eXBlb2YgUCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5j''@;'; put 'put ''dGlvbiIpO2lmKHZvaWQgMCE9PXgpe2lmKHguaGFzKFApKXJldHVybiB4LmdldChQKTt4LnNldChQLFQpfWZ1bmN0aW9uIFQoKXtyZXR1cm4gSihQLGFyZ3VtZW50cyxvZSh0aGlzKS5jb25zdHJ1Y3Rvcil9cmV0dXJuIFQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoUC5wcm90b3R5cGUse2Nv''@;'; put 'put ''bnN0cnVjdG9yOnt2YWx1ZTpULGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHNlKFQsUCl9LHRlKG5lKX1mdW5jdGlvbiBLKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3RydWN0LnNo''@;'; put 'put ''YW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChSZWZsZWN0LmNvbnN0cnVjdChEYXRlLFtdLGZ1bmN0aW9uKCl7fSkpLCEwfWNhdGNoKG5lKXtyZXR1cm4hMX19ZnVuY3Rpb24gSihu''@;'; put 'put ''ZSx4LFApe3JldHVybihKPUsoKT9SZWZsZWN0LmNvbnN0cnVjdDpmdW5jdGlvbihWLFQsUyl7dmFyIEY9W251bGxdO0YucHVzaC5hcHBseShGLFQpO3ZhciB5ZT1uZXcoRnVuY3Rpb24uYmluZC5hcHBseShWLEYpKTtyZXR1cm4gUyYmc2UoeWUsUy5wcm90b3R5cGUpLHllfSkuYXBwbHkobnVs''@;'; put 'put ''bCxhcmd1bWVudHMpfWZ1bmN0aW9uIHNlKG5lLHgpe3JldHVybihzZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKFAsVil7cmV0dXJuIFAuX19wcm90b19fPVYsUH0pKG5lLHgpfWZ1bmN0aW9uIG9lKG5lKXtyZXR1cm4ob2U9T2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5n''@;'; put 'put ''ZXRQcm90b3R5cGVPZjpmdW5jdGlvbih4KXtyZXR1cm4geC5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZih4KX0pKG5lKX1mdW5jdGlvbiBjZShuZSl7cmV0dXJuKGNlPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1''@;'; put 'put ''bmN0aW9uKHgpe3JldHVybiB0eXBlb2YgeH06ZnVuY3Rpb24oeCl7cmV0dXJuIHgmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnguY29uc3RydWN0b3I9PT1TeW1ib2wmJnghPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB4fSkobmUpfXZhciBkZT1qKDk1MzkpLmluc3Bl''@;'; put 'put ''Y3QsdmU9aigyMTM2KS5jb2Rlcy5FUlJfSU5WQUxJRF9BUkdfVFlQRTtmdW5jdGlvbiBBZShuZSx4LFApe3JldHVybih2b2lkIDA9PT1QfHxQPm5lLmxlbmd0aCkmJihQPW5lLmxlbmd0aCksbmUuc3Vic3RyaW5nKFAteC5sZW5ndGgsUCk9PT14fXZhciBrZT0iIixTZT0iIixJZT0iIixUZT0i''@;'; put 'put ''IixNZT17ZGVlcFN0cmljdEVxdWFsOiJFeHBlY3RlZCB2YWx1ZXMgdG8gYmUgc3RyaWN0bHkgZGVlcC1lcXVhbDoiLHN0cmljdEVxdWFsOiJFeHBlY3RlZCB2YWx1ZXMgdG8gYmUgc3RyaWN0bHkgZXF1YWw6IixzdHJpY3RFcXVhbE9iamVjdDonRXhwZWN0ZWQgImFjdHVhbCIgdG8gYmUgcmVm''@;'; put 'put ''ZXJlbmNlLWVxdWFsIHRvICJleHBlY3RlZCI6JyxkZWVwRXF1YWw6IkV4cGVjdGVkIHZhbHVlcyB0byBiZSBsb29zZWx5IGRlZXAtZXF1YWw6IixlcXVhbDoiRXhwZWN0ZWQgdmFsdWVzIHRvIGJlIGxvb3NlbHkgZXF1YWw6Iixub3REZWVwU3RyaWN0RXF1YWw6J0V4cGVjdGVkICJhY3R1YWwi''@;'; put 'put ''IG5vdCB0byBiZSBzdHJpY3RseSBkZWVwLWVxdWFsIHRvOicsbm90U3RyaWN0RXF1YWw6J0V4cGVjdGVkICJhY3R1YWwiIHRvIGJlIHN0cmljdGx5IHVuZXF1YWwgdG86Jyxub3RTdHJpY3RFcXVhbE9iamVjdDonRXhwZWN0ZWQgImFjdHVhbCIgbm90IHRvIGJlIHJlZmVyZW5jZS1lcXVhbCB0''@;'; put 'put ''byAiZXhwZWN0ZWQiOicsbm90RGVlcEVxdWFsOidFeHBlY3RlZCAiYWN0dWFsIiBub3QgdG8gYmUgbG9vc2VseSBkZWVwLWVxdWFsIHRvOicsbm90RXF1YWw6J0V4cGVjdGVkICJhY3R1YWwiIHRvIGJlIGxvb3NlbHkgdW5lcXVhbCB0bzonLG5vdElkZW50aWNhbDoiVmFsdWVzIGlkZW50aWNh''@;'; put 'put ''bCBidXQgbm90IHJlZmVyZW5jZS1lcXVhbDoifTtmdW5jdGlvbiBoZShuZSl7dmFyIHg9T2JqZWN0LmtleXMobmUpLFA9T2JqZWN0LmNyZWF0ZShPYmplY3QuZ2V0UHJvdG90eXBlT2YobmUpKTtyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKFYpe1BbVl09bmVbVl19KSxPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoUCwibWVzc2FnZSIse3ZhbHVlOm5lLm1lc3NhZ2V9KSxQfWZ1bmN0aW9uIE8obmUpe3JldHVybiBkZShuZSx7Y29tcGFjdDohMSxjdXN0b21JbnNwZWN0OiExLGRlcHRoOjFlMyxtYXhBcnJheUxlbmd0aDoxLzAsc2hvd0hpZGRlbjohMSxicmVha0xlbmd0aDoxLzAsc2hvd1By''@;'; put 'put ''b3h5OiExLHNvcnRlZDohMCxnZXR0ZXJzOiEwfSl9dmFyIGVlPWZ1bmN0aW9uKG5lKXtmdW5jdGlvbiB4KFMpe3ZhciBGO2lmKGZ1bmN0aW9uKGh0LEJ0KXtpZighKGh0IGluc3RhbmNlb2YgQnQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlv''@;'; put 'put ''biIpfSh0aGlzLHgpLCJvYmplY3QiIT09Y2UoUyl8fG51bGw9PT1TKXRocm93IG5ldyB2ZSgib3B0aW9ucyIsIk9iamVjdCIsUyk7dmFyIHllPVMubWVzc2FnZSxDZT1TLm9wZXJhdG9yLERlPVMuc3RhY2tTdGFydEZuLFBlPVMuYWN0dWFsLFFlPVMuZXhwZWN0ZWQsJGU9RXJyb3Iuc3RhY2tU''@;'; put 'put ''cmFjZUxpbWl0O2lmKEVycm9yLnN0YWNrVHJhY2VMaW1pdD0wLG51bGwhPXllKUY9Vyh0aGlzLG9lKHgpLmNhbGwodGhpcyxTdHJpbmcoeWUpKSk7ZWxzZSBpZihyZS5zdGRlcnImJnJlLnN0ZGVyci5pc1RUWSYmKHJlLnN0ZGVyciYmcmUuc3RkZXJyLmdldENvbG9yRGVwdGgmJjEhPT1yZS5z''@;'; put 'put ''dGRlcnIuZ2V0Q29sb3JEZXB0aCgpPyhrZT0iXHgxYlszNG0iLFNlPSJceDFiWzMybSIsVGU9Ilx4MWJbMzltIixJZT0iXHgxYlszMW0iKTooa2U9IiIsU2U9IiIsVGU9IiIsSWU9IiIpKSwib2JqZWN0Ij09PWNlKFBlKSYmbnVsbCE9PVBlJiYib2JqZWN0Ij09PWNlKFFlKSYmbnVsbCE9PVFl''@;'; put 'put ''JiYic3RhY2siaW4gUGUmJlBlIGluc3RhbmNlb2YgRXJyb3ImJiJzdGFjayJpbiBRZSYmUWUgaW5zdGFuY2VvZiBFcnJvciYmKFBlPWhlKFBlKSxRZT1oZShRZSkpLCJkZWVwU3RyaWN0RXF1YWwiPT09Q2V8fCJzdHJpY3RFcXVhbCI9PT1DZSlGPVcodGhpcyxvZSh4KS5jYWxsKHRoaXMsZnVu''@;'; put 'put ''Y3Rpb24geihuZSx4LFApe3ZhciBWPSIiLFQ9IiIsUz0wLEY9IiIseWU9ITEsQ2U9TyhuZSksRGU9Q2Uuc3BsaXQoIlxuIiksUGU9Tyh4KS5zcGxpdCgiXG4iKSxRZT0wLCRlPSIiO2lmKCJzdHJpY3RFcXVhbCI9PT1QJiYib2JqZWN0Ij09PWNlKG5lKSYmIm9iamVjdCI9PT1jZSh4KSYmbnVs''@;'; put 'put ''bCE9PW5lJiZudWxsIT09eCYmKFA9InN0cmljdEVxdWFsT2JqZWN0IiksMT09PURlLmxlbmd0aCYmMT09PVBlLmxlbmd0aCYmRGVbMF0hPT1QZVswXSl7dmFyIGd0PURlWzBdLmxlbmd0aCtQZVswXS5sZW5ndGg7aWYoZ3Q8PTEwKXtpZighKCJvYmplY3QiPT09Y2UobmUpJiZudWxsIT09bmV8''@;'; put 'put ''fCJvYmplY3QiPT09Y2UoeCkmJm51bGwhPT14fHwwPT09bmUmJjA9PT14KSlyZXR1cm4iIi5jb25jYXQoTWVbUF0sIlxuXG4iKSsiIi5jb25jYXQoRGVbMF0sIiAhPT0gIikuY29uY2F0KFBlWzBdLCJcbiIpfWVsc2UgaWYoInN0cmljdEVxdWFsT2JqZWN0IiE9PVAmJmd0PChyZS5zdGRlcnIm''@;'; put 'put ''JnJlLnN0ZGVyci5pc1RUWT9yZS5zdGRlcnIuY29sdW1uczo4MCkpe2Zvcig7RGVbMF1bUWVdPT09UGVbMF1bUWVdOylRZSsrO1FlPjImJigkZT0iXG4gICIuY29uY2F0KGZ1bmN0aW9uKEx0LEN0KXtpZihDdD1NYXRoLmZsb29yKEN0KSwwPT1MdC5sZW5ndGh8fDA9PUN0KXJldHVybiIiO3Zh''@;'; put 'put ''ciBmdD1MdC5sZW5ndGgqQ3Q7Zm9yKEN0PU1hdGguZmxvb3IoTWF0aC5sb2coQ3QpL01hdGgubG9nKDIpKTtDdDspTHQrPUx0LEN0LS07cmV0dXJuIEx0K0x0LnN1YnN0cmluZygwLGZ0LUx0Lmxlbmd0aCl9KCIgIixRZSksIl4iKSxRZT0wKX19Zm9yKHZhciB3dD1EZVtEZS5sZW5ndGgtMV0s''@;'; put 'put ''bXQ9UGVbUGUubGVuZ3RoLTFdO3d0PT09bXQmJihRZSsrPDI/Rj0iXG4gICIuY29uY2F0KHd0KS5jb25jYXQoRik6Vj13dCxEZS5wb3AoKSxQZS5wb3AoKSwwIT09RGUubGVuZ3RoJiYwIT09UGUubGVuZ3RoKTspd3Q9RGVbRGUubGVuZ3RoLTFdLG10PVBlW1BlLmxlbmd0aC0xXTt2YXIgdnQ9''@;'; put 'put ''TWF0aC5tYXgoRGUubGVuZ3RoLFBlLmxlbmd0aCk7aWYoMD09PXZ0KXt2YXIgQXQ9Q2Uuc3BsaXQoIlxuIik7aWYoQXQubGVuZ3RoPjMwKWZvcihBdFsyNl09IiIuY29uY2F0KGtlLCIuLi4iKS5jb25jYXQoVGUpO0F0Lmxlbmd0aD4yNzspQXQucG9wKCk7cmV0dXJuIiIuY29uY2F0KE1lLm5v''@;'; put 'put ''dElkZW50aWNhbCwiXG5cbiIpLmNvbmNhdChBdC5qb2luKCJcbiIpLCJcbiIpfVFlPjMmJihGPSJcbiIuY29uY2F0KGtlLCIuLi4iKS5jb25jYXQoVGUpLmNvbmNhdChGKSx5ZT0hMCksIiIhPT1WJiYoRj0iXG4gICIuY29uY2F0KFYpLmNvbmNhdChGKSxWPSIiKTt2YXIgaHQ9MCxCdD1NZVtQ''@;'; put 'put ''XSsiXG4iLmNvbmNhdChTZSwiKyBhY3R1YWwiKS5jb25jYXQoVGUsIiAiKS5jb25jYXQoSWUsIi0gZXhwZWN0ZWQiKS5jb25jYXQoVGUpLG9uPSIgIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSwiIExpbmVzIHNraXBwZWQiKTtmb3IoUWU9MDtRZTx2dDtRZSsrKXt2YXIgX3Q9UWUtUztp''@;'; put 'put ''ZihEZS5sZW5ndGg8UWUrMSlfdD4xJiZRZT4yJiYoX3Q+ND8oVCs9IlxuIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSkseWU9ITApOl90PjMmJihUKz0iXG4gICIuY29uY2F0KFBlW1FlLTJdKSxodCsrKSxUKz0iXG4gICIuY29uY2F0KFBlW1FlLTFdKSxodCsrKSxTPVFlLFYrPSJcbiIu''@;'; put 'put ''Y29uY2F0KEllLCItIikuY29uY2F0KFRlLCIgIikuY29uY2F0KFBlW1FlXSksaHQrKztlbHNlIGlmKFBlLmxlbmd0aDxRZSsxKV90PjEmJlFlPjImJihfdD40PyhUKz0iXG4iLmNvbmNhdChrZSwiLi4uIikuY29uY2F0KFRlKSx5ZT0hMCk6X3Q+MyYmKFQrPSJcbiAgIi5jb25jYXQoRGVbUWUt''@;'; put 'put ''Ml0pLGh0KyspLFQrPSJcbiAgIi5jb25jYXQoRGVbUWUtMV0pLGh0KyspLFM9UWUsVCs9IlxuIi5jb25jYXQoU2UsIisiKS5jb25jYXQoVGUsIiAiKS5jb25jYXQoRGVbUWVdKSxodCsrO2Vsc2V7dmFyIHR0PVBlW1FlXSxldD1EZVtRZV0sbHQ9ZXQhPT10dCYmKCFBZShldCwiLCIpfHxldC5z''@;'; put 'put ''bGljZSgwLC0xKSE9PXR0KTtsdCYmQWUodHQsIiwiKSYmdHQuc2xpY2UoMCwtMSk9PT1ldCYmKGx0PSExLGV0Kz0iLCIpLGx0PyhfdD4xJiZRZT4yJiYoX3Q+ND8oVCs9IlxuIi5jb25jYXQoa2UsIi4uLiIpLmNvbmNhdChUZSkseWU9ITApOl90PjMmJihUKz0iXG4gICIuY29uY2F0KERlW1Fl''@;'; put 'put ''LTJdKSxodCsrKSxUKz0iXG4gICIuY29uY2F0KERlW1FlLTFdKSxodCsrKSxTPVFlLFQrPSJcbiIuY29uY2F0KFNlLCIrIikuY29uY2F0KFRlLCIgIikuY29uY2F0KGV0KSxWKz0iXG4iLmNvbmNhdChJZSwiLSIpLmNvbmNhdChUZSwiICIpLmNvbmNhdCh0dCksaHQrPTIpOihUKz1WLFY9IiIs''@;'; put 'put ''MSE9PV90JiYwIT09UWV8fChUKz0iXG4gICIuY29uY2F0KGV0KSxodCsrKSl9aWYoaHQ+MjAmJlFlPHZ0LTIpcmV0dXJuIiIuY29uY2F0KEJ0KS5jb25jYXQob24sIlxuIikuY29uY2F0KFQsIlxuIikuY29uY2F0KGtlLCIuLi4iKS5jb25jYXQoVGUpLmNvbmNhdChWLCJcbiIpKyIiLmNvbmNh''@;'; put 'put ''dChrZSwiLi4uIikuY29uY2F0KFRlKX1yZXR1cm4iIi5jb25jYXQoQnQpLmNvbmNhdCh5ZT9vbjoiIiwiXG4iKS5jb25jYXQoVCkuY29uY2F0KFYpLmNvbmNhdChGKS5jb25jYXQoJGUpfShQZSxRZSxDZSkpKTtlbHNlIGlmKCJub3REZWVwU3RyaWN0RXF1YWwiPT09Q2V8fCJub3RTdHJpY3RF''@;'; put 'put ''cXVhbCI9PT1DZSl7dmFyIGd0PU1lW0NlXSx3dD1PKFBlKS5zcGxpdCgiXG4iKTtpZigibm90U3RyaWN0RXF1YWwiPT09Q2UmJiJvYmplY3QiPT09Y2UoUGUpJiZudWxsIT09UGUmJihndD1NZS5ub3RTdHJpY3RFcXVhbE9iamVjdCksd3QubGVuZ3RoPjMwKWZvcih3dFsyNl09IiIuY29uY2F0''@;'; put 'put ''KGtlLCIuLi4iKS5jb25jYXQoVGUpO3d0Lmxlbmd0aD4yNzspd3QucG9wKCk7Rj1XKHRoaXMsMT09PXd0Lmxlbmd0aD9vZSh4KS5jYWxsKHRoaXMsIiIuY29uY2F0KGd0LCIgIikuY29uY2F0KHd0WzBdKSk6b2UoeCkuY2FsbCh0aGlzLCIiLmNvbmNhdChndCwiXG5cbiIpLmNvbmNhdCh3dC5q''@;'; put 'put ''b2luKCJcbiIpLCJcbiIpKSl9ZWxzZXt2YXIgbXQ9TyhQZSksdnQ9IiIsQXQ9TWVbQ2VdOyJub3REZWVwRXF1YWwiPT09Q2V8fCJub3RFcXVhbCI9PT1DZT8obXQ9IiIuY29uY2F0KE1lW0NlXSwiXG5cbiIpLmNvbmNhdChtdCkpLmxlbmd0aD4xMDI0JiYobXQ9IiIuY29uY2F0KG10LnNsaWNl''@;'; put 'put ''KDAsMTAyMSksIi4uLiIpKToodnQ9IiIuY29uY2F0KE8oUWUpKSxtdC5sZW5ndGg+NTEyJiYobXQ9IiIuY29uY2F0KG10LnNsaWNlKDAsNTA5KSwiLi4uIikpLHZ0Lmxlbmd0aD41MTImJih2dD0iIi5jb25jYXQodnQuc2xpY2UoMCw1MDkpLCIuLi4iKSksImRlZXBFcXVhbCI9PT1DZXx8ImVx''@;'; put 'put ''dWFsIj09PUNlP210PSIiLmNvbmNhdChBdCwiXG5cbiIpLmNvbmNhdChtdCwiXG5cbnNob3VsZCBlcXVhbFxuXG4iKTp2dD0iICIuY29uY2F0KENlLCIgIikuY29uY2F0KHZ0KSksRj1XKHRoaXMsb2UoeCkuY2FsbCh0aGlzLCIiLmNvbmNhdChtdCkuY29uY2F0KHZ0KSkpfXJldHVybiBFcnJv''@;'; put 'put ''ci5zdGFja1RyYWNlTGltaXQ9JGUsRi5nZW5lcmF0ZWRNZXNzYWdlPSF5ZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTihGKSwibmFtZSIse3ZhbHVlOiJBc3NlcnRpb25FcnJvciBbRVJSX0FTU0VSVElPTl0iLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSksRi5j''@;'; put 'put ''b2RlPSJFUlJfQVNTRVJUSU9OIixGLmFjdHVhbD1QZSxGLmV4cGVjdGVkPVFlLEYub3BlcmF0b3I9Q2UsRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKE4oRiksRGUpLEYubmFtZT0iQXNzZXJ0aW9uRXJyb3IiLFcoRil9dmFyIFAsVjtyZXR1cm4gZnVu''@;'; put 'put ''Y3Rpb24oUyxGKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgRiYmbnVsbCE9PUYpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtTLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEYmJkYucHJvdG90eXBlLHtjb25z''@;'; put 'put ''dHJ1Y3Rvcjp7dmFsdWU6Uyx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSksRiYmc2UoUyxGKX0oeCxuZSksUD14LFY9W3trZXk6InRvU3RyaW5nIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiIiLmNvbmNhdCh0aGlzLm5hbWUsIiBbIikuY29uY2F0KHRoaXMuY29kZSwiXTogIikuY29u''@;'; put 'put ''Y2F0KHRoaXMubWVzc2FnZSl9fSx7a2V5OmRlLmN1c3RvbSx2YWx1ZTpmdW5jdGlvbihTLEYpe3JldHVybiBkZSh0aGlzLGZ1bmN0aW9uKHllKXtmb3IodmFyIENlPTE7Q2U8YXJndW1lbnRzLmxlbmd0aDtDZSsrKXt2YXIgRGU9bnVsbCE9YXJndW1lbnRzW0NlXT9hcmd1bWVudHNbQ2VdOnt9''@;'; put 'put ''LFBlPU9iamVjdC5rZXlzKERlKTsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmKFBlPVBlLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKERlKS5maWx0ZXIoZnVuY3Rpb24oUWUpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlE''@;'; put 'put ''ZXNjcmlwdG9yKERlLFFlKS5lbnVtZXJhYmxlfSkpKSxQZS5mb3JFYWNoKGZ1bmN0aW9uKFFlKXthZSh5ZSxRZSxEZVtRZV0pfSl9cmV0dXJuIHllfSh7fSxGLHtjdXN0b21JbnNwZWN0OiExLGRlcHRoOjB9KSl9fV0sViYmWShQLnByb3RvdHlwZSxWKSx4fSh0ZShFcnJvcikpO1UuZXhwb3J0''@;'; put 'put ''cz1lZX0sMjEzNjooVSxRLGopPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHJlKG9lKXtyZXR1cm4ocmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oY2Upe3JldHVybiB0eXBlb2YgY2V9OmZ1bmN0aW9uKGNlKXty''@;'; put 'put ''ZXR1cm4gY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmNlLmNvbnN0cnVjdG9yPT09U3ltYm9sJiZjZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGNlfSkob2UpfWZ1bmN0aW9uIFkob2Upe3JldHVybihZPU9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3QuZ2V0''@;'; put 'put ''UHJvdG90eXBlT2Y6ZnVuY3Rpb24oY2Upe3JldHVybiBjZS5fX3Byb3RvX198fE9iamVjdC5nZXRQcm90b3R5cGVPZihjZSl9KShvZSl9ZnVuY3Rpb24gVyhvZSxjZSl7cmV0dXJuKFc9T2JqZWN0LnNldFByb3RvdHlwZU9mfHxmdW5jdGlvbihkZSx2ZSl7cmV0dXJuIGRlLl9fcHJvdG9fXz12''@;'; put 'put ''ZSxkZX0pKG9lLGNlKX12YXIgTix0ZSxLPXt9O2Z1bmN0aW9uIEoob2UsY2UsZGUpe2RlfHwoZGU9RXJyb3IpO3ZhciB2ZT1mdW5jdGlvbihBZSl7ZnVuY3Rpb24ga2UoU2UsSWUsVGUpe3ZhciBNZSxoZSxPLHo7cmV0dXJuIGZ1bmN0aW9uKGhlLE8pe2lmKCEoaGUgaW5zdGFuY2VvZiBPKSl0''@;'; put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0odGhpcyxrZSksKE1lPWZ1bmN0aW9uIGFlKG9lLGNlKXtyZXR1cm4hY2V8fCJvYmplY3QiIT09cmUoY2UpJiYiZnVuY3Rpb24iIT10eXBlb2YgY2U/ZnVuY3Rpb24oZGUpe2lmKHZvaWQgMD09''@;'; put 'put ''PWRlKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIGRlfShvZSk6Y2V9KHRoaXMsWShrZSkuY2FsbCh0aGlzLChoZT1TZSxPPUllLHo9VGUsInN0cmluZyI9PXR5cGVvZiBj''@;'; put 'put ''ZT9jZTpjZShoZSxPLHopKSkpKS5jb2RlPW9lLE1lfXJldHVybiBmdW5jdGlvbihTZSxJZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEllJiZudWxsIT09SWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb24iKTtT''@;'; put 'put ''ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShJZSYmSWUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6U2Usd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLEllJiZXKFNlLEllKX0oa2UsQWUpLGtlfShkZSk7S1tvZV09dmV9ZnVuY3Rpb24gc2Uob2UsY2Upe2lmKEFycmF5Lmlz''@;'; put 'put ''QXJyYXkob2UpKXt2YXIgZGU9b2UubGVuZ3RoO3JldHVybiBvZT1vZS5tYXAoZnVuY3Rpb24odmUpe3JldHVybiBTdHJpbmcodmUpfSksZGU+Mj8ib25lIG9mICIuY29uY2F0KGNlLCIgIikuY29uY2F0KG9lLnNsaWNlKDAsZGUtMSkuam9pbigiLCAiKSwiLCBvciAiKStvZVtkZS0xXToyPT09''@;'; put 'put ''ZGU/Im9uZSBvZiAiLmNvbmNhdChjZSwiICIpLmNvbmNhdChvZVswXSwiIG9yICIpLmNvbmNhdChvZVsxXSk6Im9mICIuY29uY2F0KGNlLCIgIikuY29uY2F0KG9lWzBdKX1yZXR1cm4ib2YgIi5jb25jYXQoY2UsIiAiKS5jb25jYXQoU3RyaW5nKG9lKSl9SigiRVJSX0FNQklHVU9VU19BUkdV''@;'; put 'put ''TUVOVCIsJ1RoZSAiJXMiIGFyZ3VtZW50IGlzIGFtYmlndW91cy4gJXMnLFR5cGVFcnJvciksSigiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKG9lLGNlLGRlKXt2YXIgdmUsU2UsVGUsaGU7aWYodm9pZCAwPT09TiYmKE49aig5MjgyKSksTigic3RyaW5nIj09dHlwZW9mIG9lLCIn''@;'; put 'put ''bmFtZScgbXVzdCBiZSBhIHN0cmluZyIpLCJzdHJpbmciPT10eXBlb2YgY2UmJiJub3QgIj09PWNlLnN1YnN0cigwLCJub3QgIi5sZW5ndGgpPyh2ZT0ibXVzdCBub3QgYmUiLGNlPWNlLnJlcGxhY2UoL15ub3QgLywiIikpOnZlPSJtdXN0IGJlIixUZT1vZSwodm9pZCAwPT09aGV8fGhlPlRl''@;'; put 'put ''Lmxlbmd0aCkmJihoZT1UZS5sZW5ndGgpLCIgYXJndW1lbnQiPT09VGUuc3Vic3RyaW5nKGhlLSIgYXJndW1lbnQiLmxlbmd0aCxoZSkpU2U9IlRoZSAiLmNvbmNhdChvZSwiICIpLmNvbmNhdCh2ZSwiICIpLmNvbmNhdChzZShjZSwidHlwZSIpKTtlbHNle3ZhciBJZT1mdW5jdGlvbihUZSxN''@;'; put 'put ''ZSxoZSl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiBoZSYmKGhlPTApLCEoaGUrIi4iLmxlbmd0aD5UZS5sZW5ndGgpJiYtMSE9PVRlLmluZGV4T2YoIi4iLGhlKX0ob2UpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtTZT0nVGhlICInLmNvbmNhdChvZSwnIiAnKS5jb25jYXQoSWUsIiAiKS5jb25j''@;'; put 'put ''YXQodmUsIiAiKS5jb25jYXQoc2UoY2UsInR5cGUiKSl9cmV0dXJuIFNlKyIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQocmUoZGUpKX0sVHlwZUVycm9yKSxKKCJFUlJfSU5WQUxJRF9BUkdfVkFMVUUiLGZ1bmN0aW9uKG9lLGNlKXt2YXIgZGU9YXJndW1lbnRzLmxlbmd0aD4yJiZ2b2lkIDAh''@;'; put 'put ''PT1hcmd1bWVudHNbMl0/YXJndW1lbnRzWzJdOiJpcyBpbnZhbGlkIjt2b2lkIDA9PT10ZSYmKHRlPWooOTUzOSkpO3ZhciB2ZT10ZS5pbnNwZWN0KGNlKTtyZXR1cm4gdmUubGVuZ3RoPjEyOCYmKHZlPSIiLmNvbmNhdCh2ZS5zbGljZSgwLDEyOCksIi4uLiIpKSwiVGhlIGFyZ3VtZW50ICci''@;'; put 'put ''LmNvbmNhdChvZSwiJyAiKS5jb25jYXQoZGUsIi4gUmVjZWl2ZWQgIikuY29uY2F0KHZlKX0sVHlwZUVycm9yLFJhbmdlRXJyb3IpLEooIkVSUl9JTlZBTElEX1JFVFVSTl9WQUxVRSIsZnVuY3Rpb24ob2UsY2UsZGUpe3ZhciB2ZTtyZXR1cm4gdmU9ZGUmJmRlLmNvbnN0cnVjdG9yJiZkZS5j''@;'; put 'put ''b25zdHJ1Y3Rvci5uYW1lPyJpbnN0YW5jZSBvZiAiLmNvbmNhdChkZS5jb25zdHJ1Y3Rvci5uYW1lKToidHlwZSAiLmNvbmNhdChyZShkZSkpLCJFeHBlY3RlZCAiLmNvbmNhdChvZSwnIHRvIGJlIHJldHVybmVkIGZyb20gdGhlICInKS5jb25jYXQoY2UsJyInKSsiIGZ1bmN0aW9uIGJ1dCBn''@;'; put 'put ''b3QgIi5jb25jYXQodmUsIi4iKX0sVHlwZUVycm9yKSxKKCJFUlJfTUlTU0lOR19BUkdTIixmdW5jdGlvbigpe2Zvcih2YXIgb2U9YXJndW1lbnRzLmxlbmd0aCxjZT1uZXcgQXJyYXkob2UpLGRlPTA7ZGU8b2U7ZGUrKyljZVtkZV09YXJndW1lbnRzW2RlXTt2b2lkIDA9PT1OJiYoTj1qKDky''@;'; put 'put ''ODIpKSxOKGNlLmxlbmd0aD4wLCJBdCBsZWFzdCBvbmUgYXJnIG5lZWRzIHRvIGJlIHNwZWNpZmllZCIpO3ZhciB2ZT0iVGhlICIsQWU9Y2UubGVuZ3RoO3N3aXRjaChjZT1jZS5tYXAoZnVuY3Rpb24oa2Upe3JldHVybiciJy5jb25jYXQoa2UsJyInKX0pLEFlKXtjYXNlIDE6dmUrPSIiLmNv''@;'; put 'put ''bmNhdChjZVswXSwiIGFyZ3VtZW50Iik7YnJlYWs7Y2FzZSAyOnZlKz0iIi5jb25jYXQoY2VbMF0sIiBhbmQgIikuY29uY2F0KGNlWzFdLCIgYXJndW1lbnRzIik7YnJlYWs7ZGVmYXVsdDp2ZSs9Y2Uuc2xpY2UoMCxBZS0xKS5qb2luKCIsICIpLHZlKz0iLCBhbmQgIi5jb25jYXQoY2VbQWUt''@;'; put 'put ''MV0sIiBhcmd1bWVudHMiKX1yZXR1cm4iIi5jb25jYXQodmUsIiBtdXN0IGJlIHNwZWNpZmllZCIpfSxUeXBlRXJyb3IpLFUuZXhwb3J0cy5jb2Rlcz1LfSw5MTU4OihVLFEsaik9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcmUoQXQsaHQpe3JldHVybiBmdW5jdGlvbihCdCl7aWYoQXJyYXku''@;'; put 'put ''aXNBcnJheShCdCkpcmV0dXJuIEJ0fShBdCl8fGZ1bmN0aW9uKEJ0LG9uKXt2YXIgX3Q9W10sdHQ9ITAsZXQ9ITEsbHQ9dm9pZCAwO3RyeXtmb3IodmFyIEx0LEN0PUJ0W1N5bWJvbC5pdGVyYXRvcl0oKTshKHR0PShMdD1DdC5uZXh0KCkpLmRvbmUpJiYoX3QucHVzaChMdC52YWx1ZSksIW9u''@;'; put 'put ''fHxfdC5sZW5ndGghPT1vbik7dHQ9ITApO31jYXRjaChmdCl7ZXQ9ITAsbHQ9ZnR9ZmluYWxseXt0cnl7dHR8fG51bGw9PUN0LnJldHVybnx8Q3QucmV0dXJuKCl9ZmluYWxseXtpZihldCl0aHJvdyBsdH19cmV0dXJuIF90fShBdCxodCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJv''@;'; put 'put ''cigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSgpfWZ1bmN0aW9uIGFlKEF0KXtyZXR1cm4oYWU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oaHQpe3JldHVy''@;'; put 'put ''biB0eXBlb2YgaHR9OmZ1bmN0aW9uKGh0KXtyZXR1cm4gaHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmh0LmNvbnN0cnVjdG9yPT09U3ltYm9sJiZodCE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGh0fSkoQXQpfXZhciBZPXZvaWQgMCE9PS9hL2cuZmxhZ3MsVz1m''@;'; put 'put ''dW5jdGlvbihBdCl7dmFyIGh0PVtdO3JldHVybiBBdC5mb3JFYWNoKGZ1bmN0aW9uKEJ0KXtyZXR1cm4gaHQucHVzaChCdCl9KSxodH0sTj1mdW5jdGlvbihBdCl7dmFyIGh0PVtdO3JldHVybiBBdC5mb3JFYWNoKGZ1bmN0aW9uKEJ0LG9uKXtyZXR1cm4gaHQucHVzaChbb24sQnRdKX0pLGh0''@;'; put 'put ''fSx0ZT1PYmplY3QuaXM/T2JqZWN0LmlzOmooNjA5KSxLPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM/T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbigpe3JldHVybltdfSxKPU51bWJlci5pc05hTj9OdW1iZXIuaXNOYU46aigzNjApO2Z1bmN0aW9uIHNlKEF0KXty''@;'; put 'put ''ZXR1cm4gQXQuY2FsbC5iaW5kKEF0KX12YXIgb2U9c2UoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSksY2U9c2UoT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZSksZGU9c2UoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyksdmU9aig5NTM5KS50eXBlcyxBZT12''@;'; put 'put ''ZS5pc0FueUFycmF5QnVmZmVyLGtlPXZlLmlzQXJyYXlCdWZmZXJWaWV3LFNlPXZlLmlzRGF0ZSxJZT12ZS5pc01hcCxUZT12ZS5pc1JlZ0V4cCxNZT12ZS5pc1NldCxoZT12ZS5pc05hdGl2ZUVycm9yLE89dmUuaXNCb3hlZFByaW1pdGl2ZSx6PXZlLmlzTnVtYmVyT2JqZWN0LGVlPXZlLmlz''@;'; put 'put ''U3RyaW5nT2JqZWN0LG5lPXZlLmlzQm9vbGVhbk9iamVjdCx4PXZlLmlzQmlnSW50T2JqZWN0LFA9dmUuaXNTeW1ib2xPYmplY3QsVj12ZS5pc0Zsb2F0MzJBcnJheSxUPXZlLmlzRmxvYXQ2NEFycmF5O2Z1bmN0aW9uIFMoQXQpe2lmKDA9PT1BdC5sZW5ndGh8fEF0Lmxlbmd0aD4xMClyZXR1''@;'; put 'put ''cm4hMDtmb3IodmFyIGh0PTA7aHQ8QXQubGVuZ3RoO2h0Kyspe3ZhciBCdD1BdC5jaGFyQ29kZUF0KGh0KTtpZihCdDw0OHx8QnQ+NTcpcmV0dXJuITB9cmV0dXJuIDEwPT09QXQubGVuZ3RoJiZBdD49TWF0aC5wb3coMiwzMil9ZnVuY3Rpb24gRihBdCl7cmV0dXJuIE9iamVjdC5rZXlzKEF0''@;'; put 'put ''KS5maWx0ZXIoUykuY29uY2F0KEsoQXQpLmZpbHRlcihPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmJpbmQoQXQpKSl9ZnVuY3Rpb24geWUoQXQsaHQpe2lmKEF0PT09aHQpcmV0dXJuIDA7Zm9yKHZhciBCdD1BdC5sZW5ndGgsb249aHQubGVuZ3RoLF90PTAsdHQ9TWF0''@;'; put 'put ''aC5taW4oQnQsb24pO190PHR0OysrX3QpaWYoQXRbX3RdIT09aHRbX3RdKXtCdD1BdFtfdF0sb249aHRbX3RdO2JyZWFrfXJldHVybiBCdDxvbj8tMTpvbjxCdD8xOjB9ZnVuY3Rpb24gQ2UoQXQsaHQsQnQsb24pe2lmKEF0PT09aHQpcmV0dXJuIDAhPT1BdHx8IUJ0fHx0ZShBdCxodCk7aWYo''@;'; put 'put ''QnQpe2lmKCJvYmplY3QiIT09YWUoQXQpKXJldHVybiJudW1iZXIiPT10eXBlb2YgQXQmJkooQXQpJiZKKGh0KTtpZigib2JqZWN0IiE9PWFlKGh0KXx8bnVsbD09PUF0fHxudWxsPT09aHR8fE9iamVjdC5nZXRQcm90b3R5cGVPZihBdCkhPT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoaHQpKXJl''@;'; put 'put ''dHVybiExfWVsc2V7aWYobnVsbD09PUF0fHwib2JqZWN0IiE9PWFlKEF0KSlyZXR1cm4obnVsbD09PWh0fHwib2JqZWN0IiE9PWFlKGh0KSkmJkF0PT1odDtpZihudWxsPT09aHR8fCJvYmplY3QiIT09YWUoaHQpKXJldHVybiExfXZhciBfdCx0dCxldCxsdCxVZSx5dCxMdD1kZShBdCk7aWYo''@;'; put 'put ''THQhPT1kZShodCkpcmV0dXJuITE7aWYoQXJyYXkuaXNBcnJheShBdCkpe2lmKEF0Lmxlbmd0aCE9PWh0Lmxlbmd0aClyZXR1cm4hMTt2YXIgQ3Q9RihBdCksZnQ9RihodCk7cmV0dXJuIEN0Lmxlbmd0aD09PWZ0Lmxlbmd0aCYmUGUoQXQsaHQsQnQsb24sMSxDdCl9aWYoIltvYmplY3QgT2Jq''@;'; put 'put ''ZWN0XSI9PT1MdCYmKCFJZShBdCkmJkllKGh0KXx8IU1lKEF0KSYmTWUoaHQpKSlyZXR1cm4hMTtpZihTZShBdCkpe2lmKCFTZShodCl8fERhdGUucHJvdG90eXBlLmdldFRpbWUuY2FsbChBdCkhPT1EYXRlLnByb3RvdHlwZS5nZXRUaW1lLmNhbGwoaHQpKXJldHVybiExfWVsc2UgaWYoVGUo''@;'; put 'put ''QXQpKXtpZighVGUoaHQpfHwoZXQ9QXQsbHQ9aHQsIShZP2V0LnNvdXJjZT09PWx0LnNvdXJjZSYmZXQuZmxhZ3M9PT1sdC5mbGFnczpSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZXQpPT09UmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGx0KSkpKXJldHVybiExfWVsc2Ug''@;'; put 'put ''aWYoaGUoQXQpfHxBdCBpbnN0YW5jZW9mIEVycm9yKXtpZihBdC5tZXNzYWdlIT09aHQubWVzc2FnZXx8QXQubmFtZSE9PWh0Lm5hbWUpcmV0dXJuITF9ZWxzZXtpZihrZShBdCkpe2lmKEJ0fHwhVihBdCkmJiFUKEF0KSl7aWYoKFVlPUF0KS5ieXRlTGVuZ3RoIT09KHl0PWh0KS5ieXRlTGVu''@;'; put 'put ''Z3RofHwwIT09eWUobmV3IFVpbnQ4QXJyYXkoVWUuYnVmZmVyLFVlLmJ5dGVPZmZzZXQsVWUuYnl0ZUxlbmd0aCksbmV3IFVpbnQ4QXJyYXkoeXQuYnVmZmVyLHl0LmJ5dGVPZmZzZXQseXQuYnl0ZUxlbmd0aCkpKXJldHVybiExfWVsc2UgaWYoIWZ1bmN0aW9uKFVlLHl0KXtpZihVZS5ieXRl''@;'; put 'put ''TGVuZ3RoIT09eXQuYnl0ZUxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGp0PTA7anQ8VWUuYnl0ZUxlbmd0aDtqdCsrKWlmKFVlW2p0XSE9PXl0W2p0XSlyZXR1cm4hMTtyZXR1cm4hMH0oQXQsaHQpKXJldHVybiExO3ZhciBIdD1GKEF0KSxHZT1GKGh0KTtyZXR1cm4gSHQubGVuZ3RoPT09R2Uu''@;'; put 'put ''bGVuZ3RoJiZQZShBdCxodCxCdCxvbiwwLEh0KX1pZihNZShBdCkpcmV0dXJuISghTWUoaHQpfHxBdC5zaXplIT09aHQuc2l6ZSkmJlBlKEF0LGh0LEJ0LG9uLDIpO2lmKEllKEF0KSlyZXR1cm4hKCFJZShodCl8fEF0LnNpemUhPT1odC5zaXplKSYmUGUoQXQsaHQsQnQsb24sMyk7aWYoQWUo''@;'; put 'put ''QXQpKXtpZigoX3Q9QXQpLmJ5dGVMZW5ndGghPT0odHQ9aHQpLmJ5dGVMZW5ndGh8fDAhPT15ZShuZXcgVWludDhBcnJheShfdCksbmV3IFVpbnQ4QXJyYXkodHQpKSlyZXR1cm4hMX1lbHNlIGlmKE8oQXQpJiYhZnVuY3Rpb24oVWUseXQpe3JldHVybiB6KFVlKT96KHl0KSYmdGUoTnVtYmVy''@;'; put 'put ''LnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoVWUpLE51bWJlci5wcm90b3R5cGUudmFsdWVPZi5jYWxsKHl0KSk6ZWUoVWUpP2VlKHl0KSYmU3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoVWUpPT09U3RyaW5nLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoeXQpOm5lKFVlKT9uZSh5dCkmJkJv''@;'; put 'put ''b2xlYW4ucHJvdG90eXBlLnZhbHVlT2YuY2FsbChVZSk9PT1Cb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoeXQpOngoVWUpP3goeXQpJiZCaWdJbnQucHJvdG90eXBlLnZhbHVlT2YuY2FsbChVZSk9PT1CaWdJbnQucHJvdG90eXBlLnZhbHVlT2YuY2FsbCh5dCk6UCh5dCkmJlN5bWJv''@;'; put 'put ''bC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFVlKT09PVN5bWJvbC5wcm90b3R5cGUudmFsdWVPZi5jYWxsKHl0KX0oQXQsaHQpKXJldHVybiExfXJldHVybiBQZShBdCxodCxCdCxvbiwwKX1mdW5jdGlvbiBEZShBdCxodCl7cmV0dXJuIGh0LmZpbHRlcihmdW5jdGlvbihCdCl7cmV0dXJuIGNl''@;'; put 'put ''KEF0LEJ0KX0pfWZ1bmN0aW9uIFBlKEF0LGh0LEJ0LG9uLF90LHR0KXtpZig1PT09YXJndW1lbnRzLmxlbmd0aCl7dHQ9T2JqZWN0LmtleXMoQXQpO3ZhciBldD1PYmplY3Qua2V5cyhodCk7aWYodHQubGVuZ3RoIT09ZXQubGVuZ3RoKXJldHVybiExfWZvcih2YXIgbHQ9MDtsdDx0dC5sZW5n''@;'; put 'put ''dGg7bHQrKylpZighb2UoaHQsdHRbbHRdKSlyZXR1cm4hMTtpZihCdCYmNT09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBMdD1LKEF0KTtpZigwIT09THQubGVuZ3RoKXt2YXIgQ3Q9MDtmb3IobHQ9MDtsdDxMdC5sZW5ndGg7bHQrKyl7dmFyIGZ0PUx0W2x0XTtpZihjZShBdCxmdCkpe2lmKCFj''@;'; put 'put ''ZShodCxmdCkpcmV0dXJuITE7dHQucHVzaChmdCksQ3QrK31lbHNlIGlmKGNlKGh0LGZ0KSlyZXR1cm4hMX12YXIgSHQ9SyhodCk7aWYoTHQubGVuZ3RoIT09SHQubGVuZ3RoJiZEZShodCxIdCkubGVuZ3RoIT09Q3QpcmV0dXJuITF9ZWxzZXt2YXIgR2U9SyhodCk7aWYoMCE9PUdlLmxlbmd0''@;'; put 'put ''aCYmMCE9PURlKGh0LEdlKS5sZW5ndGgpcmV0dXJuITF9fWlmKDA9PT10dC5sZW5ndGgmJigwPT09X3R8fDE9PT1fdCYmMD09PUF0Lmxlbmd0aHx8MD09PUF0LnNpemUpKXJldHVybiEwO2lmKHZvaWQgMD09PW9uKW9uPXt2YWwxOm5ldyBNYXAsdmFsMjpuZXcgTWFwLHBvc2l0aW9uOjB9O2Vs''@;'; put 'put ''c2V7dmFyIFVlPW9uLnZhbDEuZ2V0KEF0KTtpZih2b2lkIDAhPT1VZSl7dmFyIHl0PW9uLnZhbDIuZ2V0KGh0KTtpZih2b2lkIDAhPT15dClyZXR1cm4gVWU9PT15dH1vbi5wb3NpdGlvbisrfW9uLnZhbDEuc2V0KEF0LG9uLnBvc2l0aW9uKSxvbi52YWwyLnNldChodCxvbi5wb3NpdGlvbik7''@;'; put 'put ''dmFyIGp0PXZ0KEF0LGh0LEJ0LHR0LG9uLF90KTtyZXR1cm4gb24udmFsMS5kZWxldGUoQXQpLG9uLnZhbDIuZGVsZXRlKGh0KSxqdH1mdW5jdGlvbiBRZShBdCxodCxCdCxvbil7Zm9yKHZhciBfdD1XKEF0KSx0dD0wO3R0PF90Lmxlbmd0aDt0dCsrKXt2YXIgZXQ9X3RbdHRdO2lmKENlKGh0''@;'; put 'put ''LGV0LEJ0LG9uKSlyZXR1cm4gQXQuZGVsZXRlKGV0KSwhMH1yZXR1cm4hMX1mdW5jdGlvbiAkZShBdCl7c3dpdGNoKGFlKEF0KSl7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiBudWxsO2Nhc2Uib2JqZWN0IjpyZXR1cm47Y2FzZSJzeW1ib2wiOnJldHVybiExO2Nhc2Uic3RyaW5nIjpBdD0rQXQ7''@;'; put 'put ''Y2FzZSJudW1iZXIiOmlmKEooQXQpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIGd0KEF0LGh0LEJ0KXt2YXIgb249JGUoQnQpO3JldHVybiBudWxsIT1vbj9vbjpodC5oYXMob24pJiYhQXQuaGFzKG9uKX1mdW5jdGlvbiB3dChBdCxodCxCdCxvbixfdCl7dmFyIHR0PSRlKEJ0KTtpZihu''@;'; put 'put ''dWxsIT10dClyZXR1cm4gdHQ7dmFyIGV0PWh0LmdldCh0dCk7cmV0dXJuISh2b2lkIDA9PT1ldCYmIWh0Lmhhcyh0dCl8fCFDZShvbixldCwhMSxfdCkpJiYhQXQuaGFzKHR0KSYmQ2Uob24sZXQsITEsX3QpfWZ1bmN0aW9uIG10KEF0LGh0LEJ0LG9uLF90LHR0KXtmb3IodmFyIGV0PVcoQXQp''@;'; put 'put ''LGx0PTA7bHQ8ZXQubGVuZ3RoO2x0Kyspe3ZhciBMdD1ldFtsdF07aWYoQ2UoQnQsTHQsX3QsdHQpJiZDZShvbixodC5nZXQoTHQpLF90LHR0KSlyZXR1cm4gQXQuZGVsZXRlKEx0KSwhMH1yZXR1cm4hMX1mdW5jdGlvbiB2dChBdCxodCxCdCxvbixfdCx0dCl7dmFyIGV0PTA7aWYoMj09PXR0''@;'; put 'put ''KXtpZighZnVuY3Rpb24oZnQsSHQsR2UsVWUpe2Zvcih2YXIgeXQ9bnVsbCxqdD1XKGZ0KSxKdD0wO0p0PGp0Lmxlbmd0aDtKdCsrKXt2YXIgZ249anRbSnRdO2lmKCJvYmplY3QiPT09YWUoZ24pJiZudWxsIT09Z24pbnVsbD09PXl0JiYoeXQ9bmV3IFNldCkseXQuYWRkKGduKTtlbHNlIGlm''@;'; put 'put ''KCFIdC5oYXMoZ24pKXtpZihHZXx8IWd0KGZ0LEh0LGduKSlyZXR1cm4hMTtudWxsPT09eXQmJih5dD1uZXcgU2V0KSx5dC5hZGQoZ24pfX1pZihudWxsIT09eXQpe2Zvcih2YXIgZG49VyhIdCkseW49MDt5bjxkbi5sZW5ndGg7eW4rKyl7dmFyIGxuPWRuW3luXTtpZigib2JqZWN0Ij09PWFl''@;'; put 'put ''KGxuKSYmbnVsbCE9PWxuKXtpZighUWUoeXQsbG4sR2UsVWUpKXJldHVybiExfWVsc2UgaWYoIUdlJiYhZnQuaGFzKGxuKSYmIVFlKHl0LGxuLEdlLFVlKSlyZXR1cm4hMX1yZXR1cm4gMD09PXl0LnNpemV9cmV0dXJuITB9KEF0LGh0LEJ0LF90KSlyZXR1cm4hMX1lbHNlIGlmKDM9PT10dCl7''@;'; put 'put ''aWYoIWZ1bmN0aW9uKGZ0LEh0LEdlLFVlKXtmb3IodmFyIHl0PW51bGwsanQ9TihmdCksSnQ9MDtKdDxqdC5sZW5ndGg7SnQrKyl7dmFyIGduPXJlKGp0W0p0XSwyKSxkbj1nblswXSx5bj1nblsxXTtpZigib2JqZWN0Ij09PWFlKGRuKSYmbnVsbCE9PWRuKW51bGw9PT15dCYmKHl0PW5ldyBT''@;'; put 'put ''ZXQpLHl0LmFkZChkbik7ZWxzZXt2YXIgbG49SHQuZ2V0KGRuKTtpZih2b2lkIDA9PT1sbiYmIUh0Lmhhcyhkbil8fCFDZSh5bixsbixHZSxVZSkpe2lmKEdlfHwhd3QoZnQsSHQsZG4seW4sVWUpKXJldHVybiExO251bGw9PT15dCYmKHl0PW5ldyBTZXQpLHl0LmFkZChkbil9fX1pZihudWxs''@;'; put 'put ''IT09eXQpe2Zvcih2YXIgTm49TihIdCksYm49MDtibjxObi5sZW5ndGg7Ym4rKyl7dmFyIGVyPXJlKE5uW2JuXSwyKSxzcj0oZG49ZXJbMF0sZXJbMV0pO2lmKCJvYmplY3QiPT09YWUoZG4pJiZudWxsIT09ZG4pe2lmKCFtdCh5dCxmdCxkbixzcixHZSxVZSkpcmV0dXJuITF9ZWxzZSBpZigh''@;'; put 'put ''KEdlfHxmdC5oYXMoZG4pJiZDZShmdC5nZXQoZG4pLHNyLCExLFVlKXx8bXQoeXQsZnQsZG4sc3IsITEsVWUpKSlyZXR1cm4hMX1yZXR1cm4gMD09PXl0LnNpemV9cmV0dXJuITB9KEF0LGh0LEJ0LF90KSlyZXR1cm4hMX1lbHNlIGlmKDE9PT10dClmb3IoO2V0PEF0Lmxlbmd0aDtldCsrKXtp''@;'; put 'put ''Zighb2UoQXQsZXQpKXtpZihvZShodCxldCkpcmV0dXJuITE7Zm9yKHZhciBsdD1PYmplY3Qua2V5cyhBdCk7ZXQ8bHQubGVuZ3RoO2V0Kyspe3ZhciBMdD1sdFtldF07aWYoIW9lKGh0LEx0KXx8IUNlKEF0W0x0XSxodFtMdF0sQnQsX3QpKXJldHVybiExfXJldHVybiBsdC5sZW5ndGg9PT1P''@;'; put 'put ''YmplY3Qua2V5cyhodCkubGVuZ3RofWlmKCFvZShodCxldCl8fCFDZShBdFtldF0saHRbZXRdLEJ0LF90KSlyZXR1cm4hMX1mb3IoZXQ9MDtldDxvbi5sZW5ndGg7ZXQrKyl7dmFyIEN0PW9uW2V0XTtpZighQ2UoQXRbQ3RdLGh0W0N0XSxCdCxfdCkpcmV0dXJuITF9cmV0dXJuITB9VS5leHBv''@;'; put 'put ''cnRzPXtpc0RlZXBFcXVhbDpmdW5jdGlvbihBdCxodCl7cmV0dXJuIENlKEF0LGh0LCExKX0saXNEZWVwU3RyaWN0RXF1YWw6ZnVuY3Rpb24oQXQsaHQpe3JldHVybiBDZShBdCxodCwhMCl9fX0sODIyNDpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbihRKXtyZXR1cm4gUX19''@;'; put 'put ''LDk2Njk6KFUsUSxqKT0+e1UuZXhwb3J0cz1qKDE2MDkpfSw1NDQ4OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDg2NyksYWU9aig2MDI2KSxZPWooNDM3MiksVz1qKDUzMjcpLE49aig0MDk3KSx0ZT1qKDQxMDkpLEs9aig3OTg1KSxKPWooNTA2MSksc2U9aig1NjU1KSxvZT1q''@;'; put 'put ''KDUyNjMpO1UuZXhwb3J0cz1mdW5jdGlvbihjZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGRlLHZlKXt2YXIgQWUsa2U9Y2UuZGF0YSxTZT1jZS5oZWFkZXJzLEllPWNlLnJlc3BvbnNlVHlwZTtmdW5jdGlvbiBUZSgpe2NlLmNhbmNlbFRva2VuJiZjZS5jYW5jZWxUb2tlbi51bnN1''@;'; put 'put ''YnNjcmliZShBZSksY2Uuc2lnbmFsJiZjZS5zaWduYWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYWJvcnQiLEFlKX1yZS5pc0Zvcm1EYXRhKGtlKSYmZGVsZXRlIFNlWyJDb250ZW50LVR5cGUiXTt2YXIgTWU9bmV3IFhNTEh0dHBSZXF1ZXN0O2lmKGNlLmF1dGgpe3ZhciBoZT1jZS5hdXRoLnVz''@;'; put 'put ''ZXJuYW1lfHwiIixPPWNlLmF1dGgucGFzc3dvcmQ/dW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KGNlLmF1dGgucGFzc3dvcmQpKToiIjtTZS5BdXRob3JpemF0aW9uPSJCYXNpYyAiK2J0b2EoaGUrIjoiK08pfXZhciB6PU4oY2UuYmFzZVVSTCxjZS51cmwpO2Z1bmN0aW9uIGVlKCl7aWYo''@;'; put 'put ''TWUpe3ZhciB4PSJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gTWU/dGUoTWUuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGw7YWUoZnVuY3Rpb24oVil7ZGUoViksVGUoKX0sZnVuY3Rpb24oVil7dmUoViksVGUoKX0se2RhdGE6SWUmJiJ0ZXh0IiE9PUllJiYianNvbiIhPT1JZT9NZS5y''@;'; put 'put ''ZXNwb25zZTpNZS5yZXNwb25zZVRleHQsc3RhdHVzOk1lLnN0YXR1cyxzdGF0dXNUZXh0Ok1lLnN0YXR1c1RleHQsaGVhZGVyczp4LGNvbmZpZzpjZSxyZXF1ZXN0Ok1lfSksTWU9bnVsbH19aWYoTWUub3BlbihjZS5tZXRob2QudG9VcHBlckNhc2UoKSxXKHosY2UucGFyYW1zLGNlLnBhcmFt''@;'; put 'put ''c1NlcmlhbGl6ZXIpLCEwKSxNZS50aW1lb3V0PWNlLnRpbWVvdXQsIm9ubG9hZGVuZCJpbiBNZT9NZS5vbmxvYWRlbmQ9ZWU6TWUub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7TWUmJjQ9PT1NZS5yZWFkeVN0YXRlJiYoMCE9PU1lLnN0YXR1c3x8TWUucmVzcG9uc2VVUkwmJjA9PT1N''@;'; put 'put ''ZS5yZXNwb25zZVVSTC5pbmRleE9mKCJmaWxlOiIpKSYmc2V0VGltZW91dChlZSl9LE1lLm9uYWJvcnQ9ZnVuY3Rpb24oKXtNZSYmKHZlKEooIlJlcXVlc3QgYWJvcnRlZCIsY2UsIkVDT05OQUJPUlRFRCIsTWUpKSxNZT1udWxsKX0sTWUub25lcnJvcj1mdW5jdGlvbigpe3ZlKEooIk5ldHdv''@;'; put 'put ''cmsgRXJyb3IiLGNlLG51bGwsTWUpKSxNZT1udWxsfSxNZS5vbnRpbWVvdXQ9ZnVuY3Rpb24oKXt2YXIgeD1jZS50aW1lb3V0PyJ0aW1lb3V0IG9mICIrY2UudGltZW91dCsibXMgZXhjZWVkZWQiOiJ0aW1lb3V0IGV4Y2VlZGVkIjtjZS50aW1lb3V0RXJyb3JNZXNzYWdlJiYoeD1jZS50aW1l''@;'; put 'put ''b3V0RXJyb3JNZXNzYWdlKSx2ZShKKHgsY2UsKGNlLnRyYW5zaXRpb25hbHx8c2UudHJhbnNpdGlvbmFsKS5jbGFyaWZ5VGltZW91dEVycm9yPyJFVElNRURPVVQiOiJFQ09OTkFCT1JURUQiLE1lKSksTWU9bnVsbH0scmUuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKSl7dmFyIG5lPShjZS53aXRo''@;'; put 'put ''Q3JlZGVudGlhbHN8fEsoeikpJiZjZS54c3JmQ29va2llTmFtZT9ZLnJlYWQoY2UueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDtuZSYmKFNlW2NlLnhzcmZIZWFkZXJOYW1lXT1uZSl9InNldFJlcXVlc3RIZWFkZXIiaW4gTWUmJnJlLmZvckVhY2goU2UsZnVuY3Rpb24oeCxQKXt2b2lkIDA9PT1r''@;'; put 'put ''ZSYmImNvbnRlbnQtdHlwZSI9PT1QLnRvTG93ZXJDYXNlKCk/ZGVsZXRlIFNlW1BdOk1lLnNldFJlcXVlc3RIZWFkZXIoUCx4KX0pLHJlLmlzVW5kZWZpbmVkKGNlLndpdGhDcmVkZW50aWFscyl8fChNZS53aXRoQ3JlZGVudGlhbHM9ISFjZS53aXRoQ3JlZGVudGlhbHMpLEllJiYianNvbiIh''@;'; put 'put ''PT1JZSYmKE1lLnJlc3BvbnNlVHlwZT1jZS5yZXNwb25zZVR5cGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBjZS5vbkRvd25sb2FkUHJvZ3Jlc3MmJk1lLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixjZS5vbkRvd25sb2FkUHJvZ3Jlc3MpLCJmdW5jdGlvbiI9PXR5cGVvZiBjZS5vblVwbG9h''@;'; put 'put ''ZFByb2dyZXNzJiZNZS51cGxvYWQmJk1lLnVwbG9hZC5hZGRFdmVudExpc3RlbmVyKCJwcm9ncmVzcyIsY2Uub25VcGxvYWRQcm9ncmVzcyksKGNlLmNhbmNlbFRva2VufHxjZS5zaWduYWwpJiYoQWU9ZnVuY3Rpb24oeCl7TWUmJih2ZSgheHx8eCYmeC50eXBlP25ldyBvZSgiY2FuY2VsZWQi''@;'; put 'put ''KTp4KSxNZS5hYm9ydCgpLE1lPW51bGwpfSxjZS5jYW5jZWxUb2tlbiYmY2UuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKEFlKSxjZS5zaWduYWwmJihjZS5zaWduYWwuYWJvcnRlZD9BZSgpOmNlLnNpZ25hbC5hZGRFdmVudExpc3RlbmVyKCJhYm9ydCIsQWUpKSksa2V8fChrZT1udWxsKSxNZS5z''@;'; put 'put ''ZW5kKGtlKX0pfX0sMTYwOTooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQ4NjcpLGFlPWooMTg0OSksWT1qKDMyMSksVz1qKDcxODUpLE49ZnVuY3Rpb24gdGUoSyl7dmFyIEo9bmV3IFkoSyksc2U9YWUoWS5wcm90b3R5cGUucmVxdWVzdCxKKTtyZXR1cm4gcmUuZXh0ZW5kKHNl''@;'; put 'put ''LFkucHJvdG90eXBlLEopLHJlLmV4dGVuZChzZSxKKSxzZS5jcmVhdGU9ZnVuY3Rpb24ob2Upe3JldHVybiB0ZShXKEssb2UpKX0sc2V9KGooNTY1NSkpO04uQXhpb3M9WSxOLkNhbmNlbD1qKDUyNjMpLE4uQ2FuY2VsVG9rZW49aig0OTcyKSxOLmlzQ2FuY2VsPWooNjUwMiksTi5WRVJTSU9O''@;'; put 'put ''PWooNzI4OCkudmVyc2lvbixOLmFsbD1mdW5jdGlvbih0ZSl7cmV0dXJuIFByb21pc2UuYWxsKHRlKX0sTi5zcHJlYWQ9aig4NzEzKSxOLmlzQXhpb3NFcnJvcj1qKDYyNjgpLFUuZXhwb3J0cz1OLFUuZXhwb3J0cy5kZWZhdWx0PU59LDUyNjM6VT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBR''@;'; put 'put ''KGope3RoaXMubWVzc2FnZT1qfVEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIkNhbmNlbCIrKHRoaXMubWVzc2FnZT8iOiAiK3RoaXMubWVzc2FnZToiIil9LFEucHJvdG90eXBlLl9fQ0FOQ0VMX189ITAsVS5leHBvcnRzPVF9LDQ5NzI6KFUsUSxqKT0+eyJ1c2Ugc3Ry''@;'; put 'put ''aWN0Ijt2YXIgcmU9aig1MjYzKTtmdW5jdGlvbiBhZShZKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgWSl0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7dmFyIFc7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKHRlKXtXPXRlfSk7dmFy''@;'; put 'put ''IE49dGhpczt0aGlzLnByb21pc2UudGhlbihmdW5jdGlvbih0ZSl7aWYoTi5fbGlzdGVuZXJzKXt2YXIgSyxKPU4uX2xpc3RlbmVycy5sZW5ndGg7Zm9yKEs9MDtLPEo7SysrKU4uX2xpc3RlbmVyc1tLXSh0ZSk7Ti5fbGlzdGVuZXJzPW51bGx9fSksdGhpcy5wcm9taXNlLnRoZW49ZnVuY3Rp''@;'; put 'put ''b24odGUpe3ZhciBLLEo9bmV3IFByb21pc2UoZnVuY3Rpb24oc2Upe04uc3Vic2NyaWJlKHNlKSxLPXNlfSkudGhlbih0ZSk7cmV0dXJuIEouY2FuY2VsPWZ1bmN0aW9uKCl7Ti51bnN1YnNjcmliZShLKX0sSn0sWShmdW5jdGlvbih0ZSl7Ti5yZWFzb258fChOLnJlYXNvbj1uZXcgcmUodGUp''@;'; put 'put ''LFcoTi5yZWFzb24pKX0pfWFlLnByb3RvdHlwZS50aHJvd0lmUmVxdWVzdGVkPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWFzb24pdGhyb3cgdGhpcy5yZWFzb259LGFlLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oWSl7dGhpcy5yZWFzb24/WSh0aGlzLnJlYXNvbik6dGhpcy5fbGlzdGVu''@;'; put 'put ''ZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKFkpOnRoaXMuX2xpc3RlbmVycz1bWV19LGFlLnByb3RvdHlwZS51bnN1YnNjcmliZT1mdW5jdGlvbihZKXtpZih0aGlzLl9saXN0ZW5lcnMpe3ZhciBXPXRoaXMuX2xpc3RlbmVycy5pbmRleE9mKFkpOy0xIT09VyYmdGhpcy5fbGlzdGVuZXJzLnNw''@;'; put 'put ''bGljZShXLDEpfX0sYWUuc291cmNlPWZ1bmN0aW9uKCl7dmFyIFk7cmV0dXJue3Rva2VuOm5ldyBhZShmdW5jdGlvbihXKXtZPVd9KSxjYW5jZWw6WX19LFUuZXhwb3J0cz1hZX0sNjUwMjpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbihRKXtyZXR1cm4hKCFRfHwhUS5fX0NB''@;'; put 'put ''TkNFTF9fKX19LDMyMTooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQ4NjcpLGFlPWooNTMyNyksWT1qKDc4MiksVz1qKDM1NzIpLE49aig3MTg1KSx0ZT1qKDQ4NzUpLEs9dGUudmFsaWRhdG9ycztmdW5jdGlvbiBKKHNlKXt0aGlzLmRlZmF1bHRzPXNlLHRoaXMuaW50ZXJjZXB0''@;'; put 'put ''b3JzPXtyZXF1ZXN0Om5ldyBZLHJlc3BvbnNlOm5ldyBZfX1KLnByb3RvdHlwZS5yZXF1ZXN0PWZ1bmN0aW9uKHNlLG9lKXsic3RyaW5nIj09dHlwZW9mIHNlPyhvZT1vZXx8e30pLnVybD1zZTpvZT1zZXx8e30sb2UubWV0aG9kPShvZT1OKHRoaXMuZGVmYXVsdHMsb2UpKS5tZXRob2Q/b2Uu''@;'; put 'put ''bWV0aG9kLnRvTG93ZXJDYXNlKCk6dGhpcy5kZWZhdWx0cy5tZXRob2Q/dGhpcy5kZWZhdWx0cy5tZXRob2QudG9Mb3dlckNhc2UoKToiZ2V0Ijt2YXIgY2U9b2UudHJhbnNpdGlvbmFsO3ZvaWQgMCE9PWNlJiZ0ZS5hc3NlcnRPcHRpb25zKGNlLHtzaWxlbnRKU09OUGFyc2luZzpLLnRyYW5z''@;'; put 'put ''aXRpb25hbChLLmJvb2xlYW4pLGZvcmNlZEpTT05QYXJzaW5nOksudHJhbnNpdGlvbmFsKEsuYm9vbGVhbiksY2xhcmlmeVRpbWVvdXRFcnJvcjpLLnRyYW5zaXRpb25hbChLLmJvb2xlYW4pfSwhMSk7dmFyIGRlPVtdLHZlPSEwO3RoaXMuaW50ZXJjZXB0b3JzLnJlcXVlc3QuZm9yRWFjaChm''@;'; put 'put ''dW5jdGlvbihoZSl7ImZ1bmN0aW9uIj09dHlwZW9mIGhlLnJ1bldoZW4mJiExPT09aGUucnVuV2hlbihvZSl8fCh2ZT12ZSYmaGUuc3luY2hyb25vdXMsZGUudW5zaGlmdChoZS5mdWxmaWxsZWQsaGUucmVqZWN0ZWQpKX0pO3ZhciBBZSxrZT1bXTtpZih0aGlzLmludGVyY2VwdG9ycy5yZXNw''@;'; put 'put ''b25zZS5mb3JFYWNoKGZ1bmN0aW9uKGhlKXtrZS5wdXNoKGhlLmZ1bGZpbGxlZCxoZS5yZWplY3RlZCl9KSwhdmUpe3ZhciBTZT1bVyx2b2lkIDBdO2ZvcihBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShTZSxkZSksU2U9U2UuY29uY2F0KGtlKSxBZT1Qcm9taXNlLnJlc29sdmUob2Up''@;'; put 'put ''O1NlLmxlbmd0aDspQWU9QWUudGhlbihTZS5zaGlmdCgpLFNlLnNoaWZ0KCkpO3JldHVybiBBZX1mb3IodmFyIEllPW9lO2RlLmxlbmd0aDspe3ZhciBUZT1kZS5zaGlmdCgpLE1lPWRlLnNoaWZ0KCk7dHJ5e0llPVRlKEllKX1jYXRjaChoZSl7TWUoaGUpO2JyZWFrfX10cnl7QWU9VyhJZSl9''@;'; put 'put ''Y2F0Y2goaGUpe3JldHVybiBQcm9taXNlLnJlamVjdChoZSl9Zm9yKDtrZS5sZW5ndGg7KUFlPUFlLnRoZW4oa2Uuc2hpZnQoKSxrZS5zaGlmdCgpKTtyZXR1cm4gQWV9LEoucHJvdG90eXBlLmdldFVyaT1mdW5jdGlvbihzZSl7cmV0dXJuIHNlPU4odGhpcy5kZWZhdWx0cyxzZSksYWUoc2Uu''@;'; put 'put ''dXJsLHNlLnBhcmFtcyxzZS5wYXJhbXNTZXJpYWxpemVyKS5yZXBsYWNlKC9eXD8vLCIiKX0scmUuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJvcHRpb25zIl0sZnVuY3Rpb24oc2Upe0oucHJvdG90eXBlW3NlXT1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIHRoaXMucmVxdWVzdChO''@;'; put 'put ''KGNlfHx7fSx7bWV0aG9kOnNlLHVybDpvZSxkYXRhOihjZXx8e30pLmRhdGF9KSl9fSkscmUuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLGZ1bmN0aW9uKHNlKXtKLnByb3RvdHlwZVtzZV09ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiB0aGlzLnJlcXVlc3QoTihkZXx8e30se21l''@;'; put 'put ''dGhvZDpzZSx1cmw6b2UsZGF0YTpjZX0pKX19KSxVLmV4cG9ydHM9Sn0sNzgyOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDg2Nyk7ZnVuY3Rpb24gYWUoKXt0aGlzLmhhbmRsZXJzPVtdfWFlLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24oWSxXLE4pe3JldHVybiB0aGlzLmhhbmRs''@;'; put 'put ''ZXJzLnB1c2goe2Z1bGZpbGxlZDpZLHJlamVjdGVkOlcsc3luY2hyb25vdXM6ISFOJiZOLnN5bmNocm9ub3VzLHJ1bldoZW46Tj9OLnJ1bldoZW46bnVsbH0pLHRoaXMuaGFuZGxlcnMubGVuZ3RoLTF9LGFlLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihZKXt0aGlzLmhhbmRsZXJzW1ldJiYo''@;'; put 'put ''dGhpcy5oYW5kbGVyc1tZXT1udWxsKX0sYWUucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oWSl7cmUuZm9yRWFjaCh0aGlzLmhhbmRsZXJzLGZ1bmN0aW9uKFcpe251bGwhPT1XJiZZKFcpfSl9LFUuZXhwb3J0cz1hZX0sNDA5NzooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDE3''@;'; put 'put ''OTMpLGFlPWooNzMwMyk7VS5leHBvcnRzPWZ1bmN0aW9uKFksVyl7cmV0dXJuIFkmJiFyZShXKT9hZShZLFcpOld9fSw1MDYxOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooODk2NSk7VS5leHBvcnRzPWZ1bmN0aW9uKGFlLFksVyxOLHRlKXt2YXIgSz1uZXcgRXJyb3IoYWUpO3Jl''@;'; put 'put ''dHVybiByZShLLFksVyxOLHRlKX19LDM1NzI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0ODY3KSxhZT1qKDg1MjcpLFk9aig2NTAyKSxXPWooNTY1NSksTj1qKDUyNjMpO2Z1bmN0aW9uIHRlKEspe2lmKEsuY2FuY2VsVG9rZW4mJksuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVl''@;'; put 'put ''c3RlZCgpLEsuc2lnbmFsJiZLLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBOKCJjYW5jZWxlZCIpfVUuZXhwb3J0cz1mdW5jdGlvbihLKXtyZXR1cm4gdGUoSyksSy5oZWFkZXJzPUsuaGVhZGVyc3x8e30sSy5kYXRhPWFlLmNhbGwoSyxLLmRhdGEsSy5oZWFkZXJzLEsudHJhbnNmb3JtUmVx''@;'; put 'put ''dWVzdCksSy5oZWFkZXJzPXJlLm1lcmdlKEsuaGVhZGVycy5jb21tb258fHt9LEsuaGVhZGVyc1tLLm1ldGhvZF18fHt9LEsuaGVhZGVycykscmUuZm9yRWFjaChbImRlbGV0ZSIsImdldCIsImhlYWQiLCJwb3N0IiwicHV0IiwicGF0Y2giLCJjb21tb24iXSxmdW5jdGlvbihKKXtkZWxldGUg''@;'; put 'put ''Sy5oZWFkZXJzW0pdfSksKEsuYWRhcHRlcnx8Vy5hZGFwdGVyKShLKS50aGVuKGZ1bmN0aW9uKEope3JldHVybiB0ZShLKSxKLmRhdGE9YWUuY2FsbChLLEouZGF0YSxKLmhlYWRlcnMsSy50cmFuc2Zvcm1SZXNwb25zZSksSn0sZnVuY3Rpb24oSil7cmV0dXJuIFkoSil8fCh0ZShLKSxKJiZK''@;'; put 'put ''LnJlc3BvbnNlJiYoSi5yZXNwb25zZS5kYXRhPWFlLmNhbGwoSyxKLnJlc3BvbnNlLmRhdGEsSi5yZXNwb25zZS5oZWFkZXJzLEsudHJhbnNmb3JtUmVzcG9uc2UpKSksUHJvbWlzZS5yZWplY3QoSil9KX19LDg5NjU6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oUSxqLHJl''@;'; put 'put ''LGFlLFkpe3JldHVybiBRLmNvbmZpZz1qLHJlJiYoUS5jb2RlPXJlKSxRLnJlcXVlc3Q9YWUsUS5yZXNwb25zZT1ZLFEuaXNBeGlvc0Vycm9yPSEwLFEudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue21lc3NhZ2U6dGhpcy5tZXNzYWdlLG5hbWU6dGhpcy5uYW1lLGRlc2NyaXB0aW9uOnRoaXMu''@;'; put 'put ''ZGVzY3JpcHRpb24sbnVtYmVyOnRoaXMubnVtYmVyLGZpbGVOYW1lOnRoaXMuZmlsZU5hbWUsbGluZU51bWJlcjp0aGlzLmxpbmVOdW1iZXIsY29sdW1uTnVtYmVyOnRoaXMuY29sdW1uTnVtYmVyLHN0YWNrOnRoaXMuc3RhY2ssY29uZmlnOnRoaXMuY29uZmlnLGNvZGU6dGhpcy5jb2RlLHN0''@;'; put 'put ''YXR1czp0aGlzLnJlc3BvbnNlJiZ0aGlzLnJlc3BvbnNlLnN0YXR1cz90aGlzLnJlc3BvbnNlLnN0YXR1czpudWxsfX0sUX19LDcxODU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0ODY3KTtVLmV4cG9ydHM9ZnVuY3Rpb24oYWUsWSl7WT1ZfHx7fTt2YXIgVz17fTtmdW5jdGlv''@;'; put 'put ''biBOKGNlLGRlKXtyZXR1cm4gcmUuaXNQbGFpbk9iamVjdChjZSkmJnJlLmlzUGxhaW5PYmplY3QoZGUpP3JlLm1lcmdlKGNlLGRlKTpyZS5pc1BsYWluT2JqZWN0KGRlKT9yZS5tZXJnZSh7fSxkZSk6cmUuaXNBcnJheShkZSk/ZGUuc2xpY2UoKTpkZX1mdW5jdGlvbiB0ZShjZSl7cmV0dXJu''@;'; put 'put ''IHJlLmlzVW5kZWZpbmVkKFlbY2VdKT9yZS5pc1VuZGVmaW5lZChhZVtjZV0pP3ZvaWQgMDpOKHZvaWQgMCxhZVtjZV0pOk4oYWVbY2VdLFlbY2VdKX1mdW5jdGlvbiBLKGNlKXtpZighcmUuaXNVbmRlZmluZWQoWVtjZV0pKXJldHVybiBOKHZvaWQgMCxZW2NlXSl9ZnVuY3Rpb24gSihjZSl7''@;'; put 'put ''cmV0dXJuIHJlLmlzVW5kZWZpbmVkKFlbY2VdKT9yZS5pc1VuZGVmaW5lZChhZVtjZV0pP3ZvaWQgMDpOKHZvaWQgMCxhZVtjZV0pOk4odm9pZCAwLFlbY2VdKX1mdW5jdGlvbiBzZShjZSl7cmV0dXJuIGNlIGluIFk/TihhZVtjZV0sWVtjZV0pOmNlIGluIGFlP04odm9pZCAwLGFlW2NlXSk6''@;'; put 'put ''dm9pZCAwfXZhciBvZT17dXJsOkssbWV0aG9kOkssZGF0YTpLLGJhc2VVUkw6Six0cmFuc2Zvcm1SZXF1ZXN0OkosdHJhbnNmb3JtUmVzcG9uc2U6SixwYXJhbXNTZXJpYWxpemVyOkosdGltZW91dDpKLHRpbWVvdXRNZXNzYWdlOkosd2l0aENyZWRlbnRpYWxzOkosYWRhcHRlcjpKLHJlc3Bv''@;'; put 'put ''bnNlVHlwZTpKLHhzcmZDb29raWVOYW1lOkoseHNyZkhlYWRlck5hbWU6SixvblVwbG9hZFByb2dyZXNzOkosb25Eb3dubG9hZFByb2dyZXNzOkosZGVjb21wcmVzczpKLG1heENvbnRlbnRMZW5ndGg6SixtYXhCb2R5TGVuZ3RoOkosdHJhbnNwb3J0OkosaHR0cEFnZW50OkosaHR0cHNBZ2Vu''@;'; put 'put ''dDpKLGNhbmNlbFRva2VuOkosc29ja2V0UGF0aDpKLHJlc3BvbnNlRW5jb2Rpbmc6Six2YWxpZGF0ZVN0YXR1czpzZX07cmV0dXJuIHJlLmZvckVhY2goT2JqZWN0LmtleXMoYWUpLmNvbmNhdChPYmplY3Qua2V5cyhZKSksZnVuY3Rpb24oY2Upe3ZhciBkZT1vZVtjZV18fHRlLHZlPWRlKGNl''@;'; put 'put ''KTtyZS5pc1VuZGVmaW5lZCh2ZSkmJmRlIT09c2V8fChXW2NlXT12ZSl9KSxXfX0sNjAyNjooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDUwNjEpO1UuZXhwb3J0cz1mdW5jdGlvbihhZSxZLFcpe3ZhciBOPVcuY29uZmlnLnZhbGlkYXRlU3RhdHVzO1cuc3RhdHVzJiZOJiYhTihX''@;'; put 'put ''LnN0YXR1cyk/WShyZSgiUmVxdWVzdCBmYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAiK1cuc3RhdHVzLFcuY29uZmlnLG51bGwsVy5yZXF1ZXN0LFcpKTphZShXKX19LDg1Mjc6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0ODY3KSxhZT1qKDU2NTUpO1UuZXhwb3J0cz1mdW5jdGlv''@;'; put 'put ''bihZLFcsTil7dmFyIHRlPXRoaXN8fGFlO3JldHVybiByZS5mb3JFYWNoKE4sZnVuY3Rpb24oSyl7WT1LLmNhbGwodGUsWSxXKX0pLFl9fSw1NjU1OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSksYWU9aig0ODY3KSxZPWooNjAxNiksVz1qKDg5NjUpLE49eyJDb250ZW50''@;'; put 'put ''LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifTtmdW5jdGlvbiB0ZShzZSxvZSl7IWFlLmlzVW5kZWZpbmVkKHNlKSYmYWUuaXNVbmRlZmluZWQoc2VbIkNvbnRlbnQtVHlwZSJdKSYmKHNlWyJDb250ZW50LVR5cGUiXT1vZSl9dmFyIEssSj17dHJhbnNpdGlvbmFs''@;'; put 'put ''OntzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxhZGFwdGVyOigoInVuZGVmaW5lZCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdHx8dm9pZCAwIT09cmUmJiJbb2JqZWN0IHByb2Nlc3NdIj09PU9iamVjdC5wcm90b3R5cGUu''@;'; put 'put ''dG9TdHJpbmcuY2FsbChyZSkpJiYoSz1qKDU0NDgpKSxLKSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihzZSxvZSl7cmV0dXJuIFkob2UsIkFjY2VwdCIpLFkob2UsIkNvbnRlbnQtVHlwZSIpLGFlLmlzRm9ybURhdGEoc2UpfHxhZS5pc0FycmF5QnVmZmVyKHNlKXx8YWUuaXNCdWZmZXIo''@;'; put 'put ''c2UpfHxhZS5pc1N0cmVhbShzZSl8fGFlLmlzRmlsZShzZSl8fGFlLmlzQmxvYihzZSk/c2U6YWUuaXNBcnJheUJ1ZmZlclZpZXcoc2UpP3NlLmJ1ZmZlcjphZS5pc1VSTFNlYXJjaFBhcmFtcyhzZSk/KHRlKG9lLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11''@;'; put 'put ''dGYtOCIpLHNlLnRvU3RyaW5nKCkpOmFlLmlzT2JqZWN0KHNlKXx8b2UmJiJhcHBsaWNhdGlvbi9qc29uIj09PW9lWyJDb250ZW50LVR5cGUiXT8odGUob2UsImFwcGxpY2F0aW9uL2pzb24iKSxmdW5jdGlvbihjZSxkZSx2ZSl7aWYoYWUuaXNTdHJpbmcoY2UpKXRyeXtyZXR1cm4oMCxKU09O''@;'; put 'put ''LnBhcnNlKShjZSksYWUudHJpbShjZSl9Y2F0Y2goQWUpe2lmKCJTeW50YXhFcnJvciIhPT1BZS5uYW1lKXRocm93IEFlfXJldHVybigwLEpTT04uc3RyaW5naWZ5KShjZSl9KHNlKSk6c2V9XSx0cmFuc2Zvcm1SZXNwb25zZTpbZnVuY3Rpb24oc2Upe3ZhciBvZT10aGlzLnRyYW5zaXRpb25h''@;'; put 'put ''bHx8Si50cmFuc2l0aW9uYWwsdmU9IShvZSYmb2Uuc2lsZW50SlNPTlBhcnNpbmcpJiYianNvbiI9PT10aGlzLnJlc3BvbnNlVHlwZTtpZih2ZXx8b2UmJm9lLmZvcmNlZEpTT05QYXJzaW5nJiZhZS5pc1N0cmluZyhzZSkmJnNlLmxlbmd0aCl0cnl7cmV0dXJuIEpTT04ucGFyc2Uoc2UpfWNh''@;'; put 'put ''dGNoKEFlKXtpZih2ZSl0aHJvdyJTeW50YXhFcnJvciI9PT1BZS5uYW1lP1coQWUsdGhpcywiRV9KU09OX1BBUlNFIik6QWV9cmV0dXJuIHNlfV0sdGltZW91dDowLHhzcmZDb29raWVOYW1lOiJYU1JGLVRPS0VOIix4c3JmSGVhZGVyTmFtZToiWC1YU1JGLVRPS0VOIixtYXhDb250ZW50TGVu''@;'; put 'put ''Z3RoOi0xLG1heEJvZHlMZW5ndGg6LTEsdmFsaWRhdGVTdGF0dXM6ZnVuY3Rpb24oc2Upe3JldHVybiBzZT49MjAwJiZzZTwzMDB9LGhlYWRlcnM6e2NvbW1vbjp7QWNjZXB0OiJhcHBsaWNhdGlvbi9qc29uLCB0ZXh0L3BsYWluLCAqLyoifX19O2FlLmZvckVhY2goWyJkZWxldGUiLCJnZXQi''@;'; put 'put ''LCJoZWFkIl0sZnVuY3Rpb24oc2Upe0ouaGVhZGVyc1tzZV09e319KSxhZS5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sZnVuY3Rpb24oc2Upe0ouaGVhZGVyc1tzZV09YWUubWVyZ2UoTil9KSxVLmV4cG9ydHM9Sn0sNzI4ODpVPT57VS5leHBvcnRzPXt2ZXJzaW9uOiIwLjI2LjAi''@;'; put 'put ''fX0sMTg0OTpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbihRLGope3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgcmU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGFlPTA7YWU8cmUubGVuZ3RoO2FlKyspcmVbYWVdPWFyZ3VtZW50c1thZV07cmV0dXJuIFEuYXBwbHko''@;'; put 'put ''aixyZSl9fX0sNTMyNzooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQ4NjcpO2Z1bmN0aW9uIGFlKFkpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoWSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNl''@;'; put 'put ''KC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfVUuZXhwb3J0cz1mdW5jdGlvbihZLFcsTil7aWYoIVcpcmV0dXJuIFk7dmFyIHRlO2lmKE4pdGU9TihXKTtlbHNlIGlmKHJlLmlzVVJMU2VhcmNoUGFyYW1zKFcpKXRlPVcudG9TdHJpbmcoKTtl''@;'; put 'put ''bHNle3ZhciBLPVtdO3JlLmZvckVhY2goVyxmdW5jdGlvbihzZSxvZSl7bnVsbCE9c2UmJihyZS5pc0FycmF5KHNlKT9vZSs9IltdIjpzZT1bc2VdLHJlLmZvckVhY2goc2UsZnVuY3Rpb24oY2Upe3JlLmlzRGF0ZShjZSk/Y2U9Y2UudG9JU09TdHJpbmcoKTpyZS5pc09iamVjdChjZSkmJihj''@;'; put 'put ''ZT1KU09OLnN0cmluZ2lmeShjZSkpLEsucHVzaChhZShvZSkrIj0iK2FlKGNlKSl9KSl9KSx0ZT1LLmpvaW4oIiYiKX1pZih0ZSl7dmFyIEo9WS5pbmRleE9mKCIjIik7LTEhPT1KJiYoWT1ZLnNsaWNlKDAsSikpLFkrPSgtMT09PVkuaW5kZXhPZigiPyIpPyI/IjoiJiIpK3RlfXJldHVybiBZ''@;'; put 'put ''fX0sNzMwMzpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbihRLGope3JldHVybiBqP1EucmVwbGFjZSgvXC8rJC8sIiIpKyIvIitqLnJlcGxhY2UoL15cLysvLCIiKTpRfX0sNDM3MjooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQ4NjcpO1UuZXhwb3J0cz1yZS5p''@;'; put 'put ''c1N0YW5kYXJkQnJvd3NlckVudigpP3t3cml0ZTpmdW5jdGlvbihhZSxZLFcsTix0ZSxLKXt2YXIgSj1bXTtKLnB1c2goYWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChZKSkscmUuaXNOdW1iZXIoVykmJkoucHVzaCgiZXhwaXJlcz0iK25ldyBEYXRlKFcpLnRvR01UU3RyaW5nKCkpLHJlLmlz''@;'; put 'put ''U3RyaW5nKE4pJiZKLnB1c2goInBhdGg9IitOKSxyZS5pc1N0cmluZyh0ZSkmJkoucHVzaCgiZG9tYWluPSIrdGUpLCEwPT09SyYmSi5wdXNoKCJzZWN1cmUiKSxkb2N1bWVudC5jb29raWU9Si5qb2luKCI7ICIpfSxyZWFkOmZ1bmN0aW9uKGFlKXt2YXIgWT1kb2N1bWVudC5jb29raWUubWF0''@;'; put 'put ''Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrYWUrIik9KFteO10qKSIpKTtyZXR1cm4gWT9kZWNvZGVVUklDb21wb25lbnQoWVszXSk6bnVsbH0scmVtb3ZlOmZ1bmN0aW9uKGFlKXt0aGlzLndyaXRlKGFlLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlOmZ1bmN0aW9uKCl7fSxyZWFk''@;'; put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHJlbW92ZTpmdW5jdGlvbigpe319fSwxNzkzOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybi9eKFthLXpdW2EtelxkK1wtLl0qOik/XC9cLy9pLnRlc3QoUSl9fSw2MjY4OihVLFEsaik9PnsidXNlIHN0cmljdCI7''@;'; put 'put ''dmFyIHJlPWooNDg2Nyk7VS5leHBvcnRzPWZ1bmN0aW9uKGFlKXtyZXR1cm4gcmUuaXNPYmplY3QoYWUpJiYhMD09PWFlLmlzQXhpb3NFcnJvcn19LDc5ODU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0ODY3KTtVLmV4cG9ydHM9cmUuaXNTdGFuZGFyZEJyb3dzZXJFbnYoKT9m''@;'; put 'put ''dW5jdGlvbigpe3ZhciBhZSxZPS8obXNpZXx0cmlkZW50KS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksVz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7ZnVuY3Rpb24gTih0ZSl7dmFyIEs9dGU7cmV0dXJuIFkmJihXLnNldEF0dHJpYnV0ZSgiaHJlZiIsSyksSz1XLmhyZWYpLFcu''@;'; put 'put ''c2V0QXR0cmlidXRlKCJocmVmIixLKSx7aHJlZjpXLmhyZWYscHJvdG9jb2w6Vy5wcm90b2NvbD9XLnByb3RvY29sLnJlcGxhY2UoLzokLywiIik6IiIsaG9zdDpXLmhvc3Qsc2VhcmNoOlcuc2VhcmNoP1cuc2VhcmNoLnJlcGxhY2UoL15cPy8sIiIpOiIiLGhhc2g6Vy5oYXNoP1cuaGFzaC5y''@;'; put 'put ''ZXBsYWNlKC9eIy8sIiIpOiIiLGhvc3RuYW1lOlcuaG9zdG5hbWUscG9ydDpXLnBvcnQscGF0aG5hbWU6Ii8iPT09Vy5wYXRobmFtZS5jaGFyQXQoMCk/Vy5wYXRobmFtZToiLyIrVy5wYXRobmFtZX19cmV0dXJuIGFlPU4od2luZG93LmxvY2F0aW9uLmhyZWYpLGZ1bmN0aW9uKHRlKXt2YXIg''@;'; put 'put ''Sz1yZS5pc1N0cmluZyh0ZSk/Tih0ZSk6dGU7cmV0dXJuIEsucHJvdG9jb2w9PT1hZS5wcm90b2NvbCYmSy5ob3N0PT09YWUuaG9zdH19KCk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LDYwMTY6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0ODY3KTtVLmV4cG9ydHM9ZnVuY3Rpb24o''@;'; put 'put ''YWUsWSl7cmUuZm9yRWFjaChhZSxmdW5jdGlvbihXLE4pe04hPT1ZJiZOLnRvVXBwZXJDYXNlKCk9PT1ZLnRvVXBwZXJDYXNlKCkmJihhZVtZXT1XLGRlbGV0ZSBhZVtOXSl9KX19LDQxMDk6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0ODY3KSxhZT1bImFnZSIsImF1dGhvcml6''@;'; put 'put ''YXRpb24iLCJjb250ZW50LWxlbmd0aCIsImNvbnRlbnQtdHlwZSIsImV0YWciLCJleHBpcmVzIiwiZnJvbSIsImhvc3QiLCJpZi1tb2RpZmllZC1zaW5jZSIsImlmLXVubW9kaWZpZWQtc2luY2UiLCJsYXN0LW1vZGlmaWVkIiwibG9jYXRpb24iLCJtYXgtZm9yd2FyZHMiLCJwcm94eS1hdXRo''@;'; put 'put ''b3JpemF0aW9uIiwicmVmZXJlciIsInJldHJ5LWFmdGVyIiwidXNlci1hZ2VudCJdO1UuZXhwb3J0cz1mdW5jdGlvbihZKXt2YXIgVyxOLHRlLEs9e307cmV0dXJuIFkmJnJlLmZvckVhY2goWS5zcGxpdCgiXG4iKSxmdW5jdGlvbihKKXtpZih0ZT1KLmluZGV4T2YoIjoiKSxXPXJlLnRyaW0o''@;'; put 'put ''Si5zdWJzdHIoMCx0ZSkpLnRvTG93ZXJDYXNlKCksTj1yZS50cmltKEouc3Vic3RyKHRlKzEpKSxXKXtpZihLW1ddJiZhZS5pbmRleE9mKFcpPj0wKXJldHVybjtLW1ddPSJzZXQtY29va2llIj09PVc/KEtbV10/S1tXXTpbXSkuY29uY2F0KFtOXSk6S1tXXT9LW1ddKyIsICIrTjpOfX0pLEt9''@;'; put 'put ''fSw4NzEzOlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBmdW5jdGlvbihqKXtyZXR1cm4gUS5hcHBseShudWxsLGopfX19LDQ4NzU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig1MTA4KSxhZT1qKDcyODgpLnZlcnNpb24sWT17fTtbIm9iamVj''@;'; put 'put ''dCIsImJvb2xlYW4iLCJudW1iZXIiLCJmdW5jdGlvbiIsInN0cmluZyIsInN5bWJvbCJdLmZvckVhY2goZnVuY3Rpb24oTix0ZSl7WVtOXT1mdW5jdGlvbihLKXtyZXR1cm4gdHlwZW9mIEs9PT1OfHwiYSIrKHRlPDE/Im4gIjoiICIpK059fSk7dmFyIFc9e307WS50cmFuc2l0aW9uYWw9ZnVu''@;'; put 'put ''Y3Rpb24oTix0ZSxLKXtmdW5jdGlvbiBKKHNlLG9lKXtyZXR1cm4iW0F4aW9zIHYiK2FlKyJdIFRyYW5zaXRpb25hbCBvcHRpb24gJyIrc2UrIiciK29lKyhLPyIuICIrSzoiIil9cmV0dXJuIGZ1bmN0aW9uKHNlLG9lLGNlKXtpZighMT09PU4pdGhyb3cgbmV3IEVycm9yKEoob2UsIiBoYXMg''@;'; put 'put ''YmVlbiByZW1vdmVkIisodGU/IiBpbiAiK3RlOiIiKSkpO3JldHVybiB0ZSYmIVdbb2VdJiYoV1tvZV09ITAscmUud2FybihKKG9lLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0ZSsiIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5lYXIgZnV0dXJlIikpKSwhTnx8TihzZSxv''@;'; put 'put ''ZSxjZSl9fSxVLmV4cG9ydHM9e2Fzc2VydE9wdGlvbnM6ZnVuY3Rpb24oTix0ZSxLKXtpZigib2JqZWN0IiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9ucyBtdXN0IGJlIGFuIG9iamVjdCIpO2Zvcih2YXIgSj1PYmplY3Qua2V5cyhOKSxzZT1KLmxlbmd0aDtzZS0tID4w''@;'; put 'put ''Oyl7dmFyIG9lPUpbc2VdLGNlPXRlW29lXTtpZihjZSl7dmFyIGRlPU5bb2VdLHZlPXZvaWQgMD09PWRlfHxjZShkZSxvZSxOKTtpZighMCE9PXZlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiAiK29lKyIgbXVzdCBiZSAiK3ZlKX1lbHNlIGlmKCEwIT09Syl0aHJvdyBFcnJvcigiVW5r''@;'; put 'put ''bm93biBvcHRpb24gIitvZSl9fSx2YWxpZGF0b3JzOll9fSw0ODY3OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooMTg0OSksYWU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBZKG9lKXtyZXR1cm4gQXJyYXkuaXNBcnJheShvZSl9ZnVuY3Rpb24gVyhvZSl7cmV0''@;'; put 'put ''dXJuIHZvaWQgMD09PW9lfWZ1bmN0aW9uIE4ob2Upe3JldHVybiJbb2JqZWN0IEFycmF5QnVmZmVyXSI9PT1hZS5jYWxsKG9lKX1mdW5jdGlvbiB0ZShvZSl7cmV0dXJuIG51bGwhPT1vZSYmIm9iamVjdCI9PXR5cGVvZiBvZX1mdW5jdGlvbiBLKG9lKXtpZigiW29iamVjdCBPYmplY3RdIiE9''@;'; put 'put ''PWFlLmNhbGwob2UpKXJldHVybiExO3ZhciBjZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Yob2UpO3JldHVybiBudWxsPT09Y2V8fGNlPT09T2JqZWN0LnByb3RvdHlwZX1mdW5jdGlvbiBKKG9lKXtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT09YWUuY2FsbChvZSl9ZnVuY3Rpb24gc2Uob2Us''@;'; put 'put ''Y2Upe2lmKG51bGwhPW9lKWlmKCJvYmplY3QiIT10eXBlb2Ygb2UmJihvZT1bb2VdKSxZKG9lKSlmb3IodmFyIGRlPTAsdmU9b2UubGVuZ3RoO2RlPHZlO2RlKyspY2UuY2FsbChudWxsLG9lW2RlXSxkZSxvZSk7ZWxzZSBmb3IodmFyIEFlIGluIG9lKU9iamVjdC5wcm90b3R5cGUuaGFzT3du''@;'; put 'put ''UHJvcGVydHkuY2FsbChvZSxBZSkmJmNlLmNhbGwobnVsbCxvZVtBZV0sQWUsb2UpfVUuZXhwb3J0cz17aXNBcnJheTpZLGlzQXJyYXlCdWZmZXI6Tixpc0J1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIG51bGwhPT1vZSYmIVcob2UpJiZudWxsIT09b2UuY29uc3RydWN0b3ImJiFXKG9lLmNv''@;'; put 'put ''bnN0cnVjdG9yKSYmImZ1bmN0aW9uIj09dHlwZW9mIG9lLmNvbnN0cnVjdG9yLmlzQnVmZmVyJiZvZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihvZSl9LGlzRm9ybURhdGE6ZnVuY3Rpb24ob2Upe3JldHVybiJbb2JqZWN0IEZvcm1EYXRhXSI9PT1hZS5jYWxsKG9lKX0saXNBcnJheUJ1ZmZlclZp''@;'; put 'put ''ZXc6ZnVuY3Rpb24ob2Upe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcob2UpOm9lJiZvZS5idWZmZXImJk4ob2UuYnVmZmVyKX0saXNTdHJpbmc6ZnVuY3Rpb24ob2Upe3JldHVybiJzdHJpbmciPT10''@;'; put 'put ''eXBlb2Ygb2V9LGlzTnVtYmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIG9lfSxpc09iamVjdDp0ZSxpc1BsYWluT2JqZWN0OkssaXNVbmRlZmluZWQ6Vyxpc0RhdGU6ZnVuY3Rpb24ob2Upe3JldHVybiJbb2JqZWN0IERhdGVdIj09PWFlLmNhbGwob2UpfSxpc0ZpbGU6''@;'; put 'put ''ZnVuY3Rpb24ob2Upe3JldHVybiJbb2JqZWN0IEZpbGVdIj09PWFlLmNhbGwob2UpfSxpc0Jsb2I6ZnVuY3Rpb24ob2Upe3JldHVybiJbb2JqZWN0IEJsb2JdIj09PWFlLmNhbGwob2UpfSxpc0Z1bmN0aW9uOkosaXNTdHJlYW06ZnVuY3Rpb24ob2Upe3JldHVybiB0ZShvZSkmJkoob2UucGlw''@;'; put 'put ''ZSl9LGlzVVJMU2VhcmNoUGFyYW1zOmZ1bmN0aW9uKG9lKXtyZXR1cm4iW29iamVjdCBVUkxTZWFyY2hQYXJhbXNdIj09PWFlLmNhbGwob2UpfSxpc1N0YW5kYXJkQnJvd3NlckVudjpmdW5jdGlvbigpe3JldHVybigidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8IlJlYWN0TmF0aXZl''@;'; put 'put ''IiE9PW5hdmlnYXRvci5wcm9kdWN0JiYiTmF0aXZlU2NyaXB0IiE9PW5hdmlnYXRvci5wcm9kdWN0JiYiTlMiIT09bmF2aWdhdG9yLnByb2R1Y3QpJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmInVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudH0sZm9yRWFjaDpzZSxtZXJnZTpmdW5j''@;'; put 'put ''dGlvbiBvZSgpe3ZhciBjZT17fTtmdW5jdGlvbiBkZShrZSxTZSl7Y2VbU2VdPUsoY2VbU2VdKSYmSyhrZSk/b2UoY2VbU2VdLGtlKTpLKGtlKT9vZSh7fSxrZSk6WShrZSk/a2Uuc2xpY2UoKTprZX1mb3IodmFyIHZlPTAsQWU9YXJndW1lbnRzLmxlbmd0aDt2ZTxBZTt2ZSsrKXNlKGFyZ3Vt''@;'; put 'put ''ZW50c1t2ZV0sZGUpO3JldHVybiBjZX0sZXh0ZW5kOmZ1bmN0aW9uKG9lLGNlLGRlKXtyZXR1cm4gc2UoY2UsZnVuY3Rpb24odmUsQWUpe29lW0FlXT1kZSYmImZ1bmN0aW9uIj09dHlwZW9mIHZlP3JlKHZlLGRlKTp2ZX0pLG9lfSx0cmltOmZ1bmN0aW9uKG9lKXtyZXR1cm4gb2UudHJpbT9v''@;'; put 'put ''ZS50cmltKCk6b2UucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSxzdHJpcEJPTTpmdW5jdGlvbihvZSl7cmV0dXJuIDY1Mjc5PT09b2UuY2hhckNvZGVBdCgwKSYmKG9lPW9lLnNsaWNlKDEpKSxvZX19fSw1NjIzOlU9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gUShhZSxZLFcpe2FlIGluc3Rh''@;'; put 'put ''bmNlb2YgUmVnRXhwJiYoYWU9aihhZSxXKSksWSBpbnN0YW5jZW9mIFJlZ0V4cCYmKFk9aihZLFcpKTt2YXIgTj1yZShhZSxZLFcpO3JldHVybiBOJiZ7c3RhcnQ6TlswXSxlbmQ6TlsxXSxwcmU6Vy5zbGljZSgwLE5bMF0pLGJvZHk6Vy5zbGljZShOWzBdK2FlLmxlbmd0aCxOWzFdKSxwb3N0''@;'; put 'put ''Olcuc2xpY2UoTlsxXStZLmxlbmd0aCl9fWZ1bmN0aW9uIGooYWUsWSl7dmFyIFc9WS5tYXRjaChhZSk7cmV0dXJuIFc/V1swXTpudWxsfWZ1bmN0aW9uIHJlKGFlLFksVyl7dmFyIE4sdGUsSyxKLHNlLG9lPVcuaW5kZXhPZihhZSksY2U9Vy5pbmRleE9mKFksb2UrMSksZGU9b2U7aWYob2U+''@;'; put 'put ''PTAmJmNlPjApe2lmKGFlPT09WSlyZXR1cm5bb2UsY2VdO2ZvcihOPVtdLEs9Vy5sZW5ndGg7ZGU+PTAmJiFzZTspZGU9PW9lPyhOLnB1c2goZGUpLG9lPVcuaW5kZXhPZihhZSxkZSsxKSk6MT09Ti5sZW5ndGg/c2U9W04ucG9wKCksY2VdOigodGU9Ti5wb3AoKSk8SyYmKEs9dGUsSj1jZSks''@;'; put 'put ''Y2U9Vy5pbmRleE9mKFksZGUrMSkpLGRlPW9lPGNlJiZvZT49MD9vZTpjZTtOLmxlbmd0aCYmKHNlPVtLLEpdKX1yZXR1cm4gc2V9VS5leHBvcnRzPVEsUS5yYW5nZT1yZX0sOTc0MjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtRLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oSil7dmFyIHNlPXRlKEopLGNl''@;'; put 'put ''PXNlWzFdO3JldHVybiAzKihzZVswXStjZSkvNC1jZX0sUS50b0J5dGVBcnJheT1mdW5jdGlvbihKKXt2YXIgc2Usb2UsTWUsY2U9dGUoSiksZGU9Y2VbMF0sdmU9Y2VbMV0sQWU9bmV3IGFlKDMqKGRlKyhNZT12ZSkpLzQtTWUpLGtlPTAsU2U9dmU+MD9kZS00OmRlO2ZvcihvZT0wO29lPFNl''@;'; put 'put ''O29lKz00KXNlPXJlW0ouY2hhckNvZGVBdChvZSldPDwxOHxyZVtKLmNoYXJDb2RlQXQob2UrMSldPDwxMnxyZVtKLmNoYXJDb2RlQXQob2UrMildPDw2fHJlW0ouY2hhckNvZGVBdChvZSszKV0sQWVba2UrK109c2U+PjE2JjI1NSxBZVtrZSsrXT1zZT4+OCYyNTUsQWVba2UrK109MjU1JnNl''@;'; put 'put ''O3JldHVybiAyPT09dmUmJihzZT1yZVtKLmNoYXJDb2RlQXQob2UpXTw8MnxyZVtKLmNoYXJDb2RlQXQob2UrMSldPj40LEFlW2tlKytdPTI1NSZzZSksMT09PXZlJiYoc2U9cmVbSi5jaGFyQ29kZUF0KG9lKV08PDEwfHJlW0ouY2hhckNvZGVBdChvZSsxKV08PDR8cmVbSi5jaGFyQ29kZUF0''@;'; put 'put ''KG9lKzIpXT4+MixBZVtrZSsrXT1zZT4+OCYyNTUsQWVba2UrK109MjU1JnNlKSxBZX0sUS5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uKEope2Zvcih2YXIgc2Usb2U9Si5sZW5ndGgsY2U9b2UlMyxkZT1bXSxBZT0wLGtlPW9lLWNlO0FlPGtlO0FlKz0xNjM4MylkZS5wdXNoKEsoSixBZSxBZSsx''@;'; put 'put ''NjM4Mz5rZT9rZTpBZSsxNjM4MykpO3JldHVybiAxPT09Y2U/ZGUucHVzaChqWyhzZT1KW29lLTFdKT4+Ml0raltzZTw8NCY2M10rIj09Iik6Mj09PWNlJiZkZS5wdXNoKGpbKHNlPShKW29lLTJdPDw4KStKW29lLTFdKT4+MTBdK2pbc2U+PjQmNjNdK2pbc2U8PDImNjNdKyI9IiksZGUuam9p''@;'; put 'put ''bigiIil9O2Zvcih2YXIgaj1bXSxyZT1bXSxhZT0idW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXk/VWludDhBcnJheTpBcnJheSxZPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIixXPTAsTj1ZLmxlbmd0aDtXPE47''@;'; put 'put ''KytXKWpbV109WVtXXSxyZVtZLmNoYXJDb2RlQXQoVyldPVc7ZnVuY3Rpb24gdGUoSil7dmFyIHNlPUoubGVuZ3RoO2lmKHNlJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgb2U9Si5pbmRleE9mKCI9Iik7''@;'; put 'put ''cmV0dXJuLTE9PT1vZSYmKG9lPXNlKSxbb2Usb2U9PT1zZT8wOjQtb2UlNF19ZnVuY3Rpb24gSyhKLHNlLG9lKXtmb3IodmFyIGRlLHZlPVtdLEFlPXNlO0FlPG9lO0FlKz0zKXZlLnB1c2goalsoZGU9KEpbQWVdPDwxNiYxNjcxMTY4MCkrKEpbQWUrMV08PDgmNjUyODApKygyNTUmSltBZSsy''@;'; put 'put ''XSkpPj4xOCY2M10raltkZT4+MTImNjNdK2pbZGU+PjYmNjNdK2pbNjMmZGVdKTtyZXR1cm4gdmUuam9pbigiIil9cmVbIi0iLmNoYXJDb2RlQXQoMCldPTYyLHJlWyJfIi5jaGFyQ29kZUF0KDApXT02M30sMzU1MDpmdW5jdGlvbihVLFEsail7IWZ1bmN0aW9uKHJlLGFlKXsidXNlIHN0cmlj''@;'; put 'put ''dCI7ZnVuY3Rpb24gWShULFMpe2lmKCFUKXRocm93IG5ldyBFcnJvcihTfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIFcoVCxTKXtULnN1cGVyXz1TO3ZhciBGPWZ1bmN0aW9uKCl7fTtGLnByb3RvdHlwZT1TLnByb3RvdHlwZSxULnByb3RvdHlwZT1uZXcgRixULnByb3RvdHlwZS5j''@;'; put 'put ''b25zdHJ1Y3Rvcj1UfWZ1bmN0aW9uIE4oVCxTLEYpe2lmKE4uaXNCTihUKSlyZXR1cm4gVDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09VCYmKCJsZSIhPT1TJiYiYmUiIT09U3x8KEY9UyxTPTEwKSx0aGlzLl9pbml0''@;'; put 'put ''KFR8fDAsU3x8MTAsRnx8ImJlIikpfXZhciB0ZTsib2JqZWN0Ij09dHlwZW9mIHJlP3JlLmV4cG9ydHM9TjphZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXt0ZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOmoo''@;'; put 'put ''NjYwMSkuQnVmZmVyfWNhdGNoKFQpe31mdW5jdGlvbiBLKFQsUyl7dmFyIEY9VC5jaGFyQ29kZUF0KFMpO3JldHVybiBGPj00OCYmRjw9NTc/Ri00ODpGPj02NSYmRjw9NzA/Ri01NTpGPj05NyYmRjw9MTAyP0YtODc6dm9pZCBZKCExLCJJbnZhbGlkIGNoYXJhY3RlciBpbiAiK1QpfWZ1bmN0''@;'; put 'put ''aW9uIEooVCxTLEYpe3ZhciB5ZT1LKFQsRik7cmV0dXJuIEYtMT49UyYmKHllfD1LKFQsRi0xKTw8NCkseWV9ZnVuY3Rpb24gc2UoVCxTLEYseWUpe2Zvcih2YXIgQ2U9MCxEZT0wLFBlPU1hdGgubWluKFQubGVuZ3RoLEYpLFFlPVM7UWU8UGU7UWUrKyl7dmFyICRlPVQuY2hhckNvZGVBdChR''@;'; put 'put ''ZSktNDg7Q2UqPXllLERlPSRlPj00OT8kZS00OSsxMDokZT49MTc/JGUtMTcrMTA6JGUsWSgkZT49MCYmRGU8eWUsIkludmFsaWQgY2hhcmFjdGVyIiksQ2UrPURlfXJldHVybiBDZX1mdW5jdGlvbiBvZShULFMpe1Qud29yZHM9Uy53b3JkcyxULmxlbmd0aD1TLmxlbmd0aCxULm5lZ2F0aXZl''@;'; put 'put ''PVMubmVnYXRpdmUsVC5yZWQ9Uy5yZWR9aWYoTi5pc0JOPWZ1bmN0aW9uKFQpe3JldHVybiBUIGluc3RhbmNlb2YgTnx8bnVsbCE9PVQmJiJvYmplY3QiPT10eXBlb2YgVCYmVC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU4ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoVC53b3Jkcyl9LE4ubWF4''@;'; put 'put ''PWZ1bmN0aW9uKFQsUyl7cmV0dXJuIFQuY21wKFMpPjA/VDpTfSxOLm1pbj1mdW5jdGlvbihULFMpe3JldHVybiBULmNtcChTKTwwP1Q6U30sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oVCxTLEYpe2lmKCJudW1iZXIiPT10eXBlb2YgVClyZXR1cm4gdGhpcy5faW5pdE51bWJlcihULFMs''@;'; put 'put ''Rik7aWYoIm9iamVjdCI9PXR5cGVvZiBUKXJldHVybiB0aGlzLl9pbml0QXJyYXkoVCxTLEYpOyJoZXgiPT09UyYmKFM9MTYpLFkoUz09PSgwfFMpJiZTPj0yJiZTPD0zNik7dmFyIHllPTA7Ii0iPT09KFQ9VC50b1N0cmluZygpLnJlcGxhY2UoL1xzKy9nLCIiKSlbMF0mJih5ZSsrLHRoaXMu''@;'; put 'put ''bmVnYXRpdmU9MSkseWU8VC5sZW5ndGgmJigxNj09PVM/dGhpcy5fcGFyc2VIZXgoVCx5ZSxGKToodGhpcy5fcGFyc2VCYXNlKFQsUyx5ZSksImxlIj09PUYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxTLEYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKFQs''@;'; put 'put ''UyxGKXtUPDAmJih0aGlzLm5lZ2F0aXZlPTEsVD0tVCksVDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmVF0sdGhpcy5sZW5ndGg9MSk6VDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZULFQvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZ''@;'; put 'put ''KFQ8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmVCxULzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1GJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUyxGKX0sTi5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbihULFMs''@;'; put 'put ''Ril7aWYoWSgibnVtYmVyIj09dHlwZW9mIFQubGVuZ3RoKSxULmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChULmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB5''@;'; put 'put ''ZT0wO3llPHRoaXMubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09MDt2YXIgQ2UsRGUsUGU9MDtpZigiYmUiPT09Rilmb3IoeWU9VC5sZW5ndGgtMSxDZT0wO3llPj0wO3llLT0zKXRoaXMud29yZHNbQ2VdfD0oRGU9VFt5ZV18VFt5ZS0xXTw8OHxUW3llLTJdPDwxNik8PFBlJjY3MTA4ODYz''@;'; put 'put ''LHRoaXMud29yZHNbQ2UrMV09RGU+Pj4yNi1QZSY2NzEwODg2MywoUGUrPTI0KT49MjYmJihQZS09MjYsQ2UrKyk7ZWxzZSBpZigibGUiPT09Rilmb3IoeWU9MCxDZT0wO3llPFQubGVuZ3RoO3llKz0zKXRoaXMud29yZHNbQ2VdfD0oRGU9VFt5ZV18VFt5ZSsxXTw8OHxUW3llKzJdPDwxNik8''@;'; put 'put ''PFBlJjY3MTA4ODYzLHRoaXMud29yZHNbQ2UrMV09RGU+Pj4yNi1QZSY2NzEwODg2MywoUGUrPTI0KT49MjYmJihQZS09MjYsQ2UrKyk7cmV0dXJuIHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbihULFMsRil7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChULmxl''@;'; put 'put ''bmd0aC1TKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciB5ZT0wO3llPHRoaXMubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09MDt2YXIgQ2UsRGU9MCxQZT0wO2lmKCJiZSI9PT1GKWZvcih5ZT1ULmxlbmd0aC0xO3llPj1TO3llLT0yKUNlPUooVCxTLHll''@;'; put 'put ''KTw8RGUsdGhpcy53b3Jkc1tQZV18PTY3MTA4ODYzJkNlLERlPj0xOD8oRGUtPTE4LHRoaXMud29yZHNbUGUrPTFdfD1DZT4+PjI2KTpEZSs9ODtlbHNlIGZvcih5ZT0oVC5sZW5ndGgtUyklMj09MD9TKzE6Uzt5ZTxULmxlbmd0aDt5ZSs9MilDZT1KKFQsUyx5ZSk8PERlLHRoaXMud29yZHNb''@;'; put 'put ''UGVdfD02NzEwODg2MyZDZSxEZT49MTg/KERlLT0xOCx0aGlzLndvcmRzW1BlKz0xXXw9Q2U+Pj4yNik6RGUrPTg7dGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbihULFMsRil7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIHllPTAsQ2U9''@;'; put 'put ''MTtDZTw9NjcxMDg4NjM7Q2UqPVMpeWUrKzt5ZS0tLENlPUNlL1N8MDtmb3IodmFyIERlPVQubGVuZ3RoLUYsUGU9RGUleWUsUWU9TWF0aC5taW4oRGUsRGUtUGUpK0YsJGU9MCxndD1GO2d0PFFlO2d0Kz15ZSkkZT1zZShULGd0LGd0K3llLFMpLHRoaXMuaW11bG4oQ2UpLHRoaXMud29yZHNb''@;'; put 'put ''MF0rJGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9JGU6dGhpcy5faWFkZG4oJGUpO2lmKDAhPT1QZSl7dmFyIHd0PTE7Zm9yKCRlPXNlKFQsZ3QsVC5sZW5ndGgsUyksZ3Q9MDtndDxQZTtndCsrKXd0Kj1TO3RoaXMuaW11bG4od3QpLHRoaXMud29yZHNbMF0rJGU8NjcxMDg4NjQ/dGhpcy53''@;'; put 'put ''b3Jkc1swXSs9JGU6dGhpcy5faWFkZG4oJGUpfXRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oVCl7VC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgUz0wO1M8dGhpcy5sZW5ndGg7UysrKVQud29yZHNbU109dGhpcy53b3Jkc1tTXTtULmxlbmd0''@;'; put 'put ''aD10aGlzLmxlbmd0aCxULm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsVC5yZWQ9dGhpcy5yZWR9LE4ucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKFQpe29lKFQsdGhpcyl9LE4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIFQ9bmV3IE4obnVsbCk7cmV0dXJuIHRoaXMuY29weShUKSxU''@;'; put 'put ''fSxOLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKFQpe2Zvcig7dGhpcy5sZW5ndGg8VDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5fc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMu''@;'; put 'put ''bGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sInVuZGVmaW5lZCIhPXR5''@;'; put 'put ''cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yKXRyeXtOLnByb3RvdHlwZVtTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1jZX1jYXRjaChUKXtOLnByb3RvdHlwZS5pbnNwZWN0PWNlfWVsc2UgTi5wcm90b3R5cGUuaW5zcGVjdD1jZTtm''@;'; put 'put ''dW5jdGlvbiBjZSgpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifXZhciBkZT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAi''@;'; put 'put ''LCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIw''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSx2ZT1bMCwwLDI1LDE2''@;'; put 'put ''LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxBZT1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwz''@;'; put 'put ''NTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUx''@;'; put 'put ''LDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBrZShULFMsRil7Ri5uZWdhdGl2ZT1TLm5lZ2F0aXZlXlQubmVnYXRpdmU7dmFyIHllPVQubGVuZ3RoK1MubGVuZ3RofDA7Ri5sZW5ndGg9eWUseWU9eWUtMXwwO3ZhciBDZT0wfFQud29yZHNb''@;'; put 'put ''MF0sRGU9MHxTLndvcmRzWzBdLFBlPUNlKkRlLCRlPVBlLzY3MTA4ODY0fDA7Ri53b3Jkc1swXT02NzEwODg2MyZQZTtmb3IodmFyIGd0PTE7Z3Q8eWU7Z3QrKyl7Zm9yKHZhciB3dD0kZT4+PjI2LG10PTY3MTA4ODYzJiRlLHZ0PU1hdGgubWluKGd0LFMubGVuZ3RoLTEpLEF0PU1hdGgubWF4''@;'; put 'put ''KDAsZ3QtVC5sZW5ndGgrMSk7QXQ8PXZ0O0F0Kyspd3QrPShQZT0oQ2U9MHxULndvcmRzW2d0LUF0fDBdKSooRGU9MHxTLndvcmRzW0F0XSkrbXQpLzY3MTA4ODY0fDAsbXQ9NjcxMDg4NjMmUGU7Ri53b3Jkc1tndF09MHxtdCwkZT0wfHd0fXJldHVybiAwIT09JGU/Ri53b3Jkc1tndF09MHwk''@;'; put 'put ''ZTpGLmxlbmd0aC0tLEYuX3N0cmlwKCl9Ti5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oVCxTKXt2YXIgRjtpZihTPTB8U3x8MSwxNj09PShUPVR8fDEwKXx8ImhleCI9PT1UKXtGPSIiO2Zvcih2YXIgeWU9MCxDZT0wLERlPTA7RGU8dGhpcy5sZW5ndGg7RGUrKyl7dmFyIFBlPXRoaXMu''@;'; put 'put ''d29yZHNbRGVdLFFlPSgxNjc3NzIxNSYoUGU8PHllfENlKSkudG9TdHJpbmcoMTYpO0NlPVBlPj4+MjQteWUmMTY3NzcyMTUsKHllKz0yKT49MjYmJih5ZS09MjYsRGUtLSksRj0wIT09Q2V8fERlIT09dGhpcy5sZW5ndGgtMT9kZVs2LVFlLmxlbmd0aF0rUWUrRjpRZStGfWZvcigwIT09Q2Um''@;'; put 'put ''JihGPUNlLnRvU3RyaW5nKDE2KStGKTtGLmxlbmd0aCVTIT0wOylGPSIwIitGO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKEY9Ii0iK0YpLEZ9aWYoVD09PSgwfFQpJiZUPj0yJiZUPD0zNil7dmFyICRlPXZlW1RdLGd0PUFlW1RdO0Y9IiI7dmFyIHd0PXRoaXMuY2xvbmUoKTtmb3Iod3Qu''@;'; put 'put ''bmVnYXRpdmU9MDshd3QuaXNaZXJvKCk7KXt2YXIgbXQ9d3QubW9kcm4oZ3QpLnRvU3RyaW5nKFQpO0Y9KHd0PXd0LmlkaXZuKGd0KSkuaXNaZXJvKCk/bXQrRjpkZVskZS1tdC5sZW5ndGhdK210K0Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihGPSIwIitGKTtGLmxlbmd0aCVTIT0wOylGPSIwIitG''@;'; put 'put ''O3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKEY9Ii0iK0YpLEZ9WSghMSwiQmFzZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciBUPXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD9UKz02NzEwODg2''@;'; put 'put ''NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/VCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10''@;'; put 'put ''aGlzLm5lZ2F0aXZlPy1UOlR9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2LDIpfSx0ZSYmKE4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKFQsUyl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UodGUsVCxTKX0pLE4ucHJvdG90eXBlLnRv''@;'; put 'put ''QXJyYXk9ZnVuY3Rpb24oVCxTKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxULFMpfSxOLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihULFMsRil7dGhpcy5fc3RyaXAoKTt2YXIgeWU9dGhpcy5ieXRlTGVuZ3RoKCksQ2U9Rnx8TWF0aC5tYXgoMSx5ZSk7WSh5ZTw9Q2Us''@;'; put 'put ''ImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKENlPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBQZSxRZSxEZT0oUWU9Q2UsKFBlPVQpLmFsbG9jVW5zYWZlP1BlLmFsbG9jVW5zYWZlKFFlKTpuZXcgUGUoUWUpKTtyZXR1cm4gdGhpc1siX3Rv''@;'; put 'put ''QXJyYXlMaWtlIisoImxlIj09PVM/IkxFIjoiQkUiKV0oRGUseWUpLERlfSxOLnByb3RvdHlwZS5fdG9BcnJheUxpa2VMRT1mdW5jdGlvbihULFMpe2Zvcih2YXIgRj0wLHllPTAsQ2U9MCxEZT0wO0NlPHRoaXMubGVuZ3RoO0NlKyspe3ZhciBQZT10aGlzLndvcmRzW0NlXTw8RGV8eWU7VFtG''@;'; put 'put ''KytdPTI1NSZQZSxGPFQubGVuZ3RoJiYoVFtGKytdPVBlPj44JjI1NSksRjxULmxlbmd0aCYmKFRbRisrXT1QZT4+MTYmMjU1KSw2PT09RGU/KEY8VC5sZW5ndGgmJihUW0YrK109UGU+PjI0JjI1NSkseWU9MCxEZT0wKTooeWU9UGU+Pj4yNCxEZSs9Mil9aWYoRjxULmxlbmd0aClmb3IoVFtG''@;'; put 'put ''KytdPXllO0Y8VC5sZW5ndGg7KVRbRisrXT0wfSxOLnByb3RvdHlwZS5fdG9BcnJheUxpa2VCRT1mdW5jdGlvbihULFMpe2Zvcih2YXIgRj1ULmxlbmd0aC0xLHllPTAsQ2U9MCxEZT0wO0NlPHRoaXMubGVuZ3RoO0NlKyspe3ZhciBQZT10aGlzLndvcmRzW0NlXTw8RGV8eWU7VFtGLS1dPTI1''@;'; put 'put ''NSZQZSxGPj0wJiYoVFtGLS1dPVBlPj44JjI1NSksRj49MCYmKFRbRi0tXT1QZT4+MTYmMjU1KSw2PT09RGU/KEY+PTAmJihUW0YtLV09UGU+PjI0JjI1NSkseWU9MCxEZT0wKTooeWU9UGU+Pj4yNCxEZSs9Mil9aWYoRj49MClmb3IoVFtGLS1dPXllO0Y+PTA7KVRbRi0tXT0wfSxOLnByb3Rv''@;'; put 'put ''dHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oVCl7cmV0dXJuIDMyLU1hdGguY2x6MzIoVCl9OmZ1bmN0aW9uKFQpe3ZhciBTPVQsRj0wO3JldHVybiBTPj00MDk2JiYoRis9MTMsUz4+Pj0xMyksUz49NjQmJihGKz03LFM+Pj49NyksUz49OCYmKEYrPTQsUz4+Pj00KSxTPj0y''@;'; put 'put ''JiYoRis9MixTPj4+PTIpLEYrU30sTi5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKFQpe2lmKDA9PT1UKXJldHVybiAyNjt2YXIgUz1ULEY9MDtyZXR1cm4gMD09KDgxOTEmUykmJihGKz0xMyxTPj4+PTEzKSwwPT0oMTI3JlMpJiYoRis9NyxTPj4+PTcpLDA9PSgxNSZTKSYmKEYrPTQs''@;'; put 'put ''Uz4+Pj00KSwwPT0oMyZTKSYmKEYrPTIsUz4+Pj0yKSwwPT0oMSZTKSYmRisrLEZ9LE4ucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBTPXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK1N9LE4ucHJv''@;'; put 'put ''dG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIFQ9MCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspe3ZhciBGPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbU10pO2lmKFQrPUYsMjYhPT1GKWJyZWFrfXJldHVybiBUfSxOLnByb3RvdHlw''@;'; put 'put ''ZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxOLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oVCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oVCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxOLnBy''@;'; put 'put ''b3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy50ZXN0bihULTEpP3RoaXMubm90bihUKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxOLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sTi5wcm90b3R5cGUubmVn''@;'; put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LE4ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LE4ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oVCl7Zm9yKDt0aGlzLmxlbmd0aDxULmxl''@;'; put 'put ''bmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgUz0wO1M8VC5sZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53b3Jkc1tTXXxULndvcmRzW1NdO3JldHVybiB0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oVCl7cmV0dXJuIFkoMD09KHRo''@;'; put 'put ''aXMubmVnYXRpdmV8VC5uZWdhdGl2ZSkpLHRoaXMuaXVvcihUKX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMubGVuZ3RoPlQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoVCk6VC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKFQpe3Jl''@;'; put 'put ''dHVybiB0aGlzLmxlbmd0aD5ULmxlbmd0aD90aGlzLmNsb25lKCkuaXVvcihUKTpULmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oVCl7dmFyIFM7Uz10aGlzLmxlbmd0aD5ULmxlbmd0aD9UOnRoaXM7Zm9yKHZhciBGPTA7RjxTLmxlbmd0aDtGKyspdGhp''@;'; put 'put ''cy53b3Jkc1tGXT10aGlzLndvcmRzW0ZdJlQud29yZHNbRl07cmV0dXJuIHRoaXMubGVuZ3RoPVMubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oVCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8VC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoVCl9LE4u''@;'; put 'put ''cHJvdG90eXBlLmFuZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5ndGg+VC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoVCk6VC5jbG9uZSgpLmlhbmQodGhpcyl9LE4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMubGVuZ3RoPlQubGVuZ3RoP3RoaXMuY2xvbmUo''@;'; put 'put ''KS5pdWFuZChUKTpULmNsb25lKCkuaXVhbmQodGhpcyl9LE4ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKFQpe3ZhciBTLEY7dGhpcy5sZW5ndGg+VC5sZW5ndGg/KFM9dGhpcyxGPVQpOihTPVQsRj10aGlzKTtmb3IodmFyIHllPTA7eWU8Ri5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT1T''@;'; put 'put ''LndvcmRzW3llXV5GLndvcmRzW3llXTtpZih0aGlzIT09Uylmb3IoO3llPFMubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09Uy53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPVMubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oVCl7cmV0dXJuIFko''@;'; put 'put ''MD09KHRoaXMubmVnYXRpdmV8VC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoVCl9LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5sZW5ndGg+VC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoVCk6VC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVu''@;'; put 'put ''Y3Rpb24oVCl7cmV0dXJuIHRoaXMubGVuZ3RoPlQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihUKTpULmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKFQpe1koIm51bWJlciI9PXR5cGVvZiBUJiZUPj0wKTt2YXIgUz0wfE1hdGguY2VpbChULzI2KSxG''@;'; put 'put ''PVQlMjY7dGhpcy5fZXhwYW5kKFMpLEY+MCYmUy0tO2Zvcih2YXIgeWU9MDt5ZTxTO3llKyspdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmfnRoaXMud29yZHNbeWVdO3JldHVybiBGPjAmJih0aGlzLndvcmRzW3llXT1+dGhpcy53b3Jkc1t5ZV0mNjcxMDg4NjM+PjI2LUYpLHRoaXMuX3N0cmlw''@;'; put 'put ''KCl9LE4ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bihUKX0sTi5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbihULFMpe1koIm51bWJlciI9PXR5cGVvZiBUJiZUPj0wKTt2YXIgRj1ULzI2fDAseWU9VCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKEYr''@;'; put 'put ''MSksdGhpcy53b3Jkc1tGXT1TP3RoaXMud29yZHNbRl18MTw8eWU6dGhpcy53b3Jkc1tGXSZ+KDE8PHllKSx0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKFQpe3ZhciBTLEYseWU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1ULm5lZ2F0aXZlKXJldHVybiB0aGlz''@;'; put 'put ''Lm5lZ2F0aXZlPTAsUz10aGlzLmlzdWIoVCksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09VC5uZWdhdGl2ZSlyZXR1cm4gVC5uZWdhdGl2ZT0wLFM9dGhpcy5pc3ViKFQpLFQubmVnYXRpdmU9MSxTLl9ub3JtU2lnbigpO3RoaXMu''@;'; put 'put ''bGVuZ3RoPlQubGVuZ3RoPyhGPXRoaXMseWU9VCk6KEY9VCx5ZT10aGlzKTtmb3IodmFyIENlPTAsRGU9MDtEZTx5ZS5sZW5ndGg7RGUrKyl0aGlzLndvcmRzW0RlXT02NzEwODg2MyYoUz0oMHxGLndvcmRzW0RlXSkrKDB8eWUud29yZHNbRGVdKStDZSksQ2U9Uz4+PjI2O2Zvcig7MCE9PUNl''@;'; put 'put ''JiZEZTxGLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPTY3MTA4ODYzJihTPSgwfEYud29yZHNbRGVdKStDZSksQ2U9Uz4+PjI2O2lmKHRoaXMubGVuZ3RoPUYubGVuZ3RoLDAhPT1DZSl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1DZSx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoRiE9PXRoaXMp''@;'; put 'put ''Zm9yKDtEZTxGLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPUYud29yZHNbRGVdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oVCl7dmFyIFM7cmV0dXJuIDAhPT1ULm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oVC5uZWdhdGl2ZT0wLFM9dGhpcy5zdWIoVCks''@;'; put 'put ''VC5uZWdhdGl2ZV49MSxTKTowPT09VC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxTPVQuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSxTKTp0aGlzLmxlbmd0aD5ULmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChUKTpULmNsb25lKCkuaWFkZCh0aGlzKX0s''@;'; put 'put ''Ti5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihUKXtpZigwIT09VC5uZWdhdGl2ZSl7VC5uZWdhdGl2ZT0wO3ZhciBTPXRoaXMuaWFkZChUKTtyZXR1cm4gVC5uZWdhdGl2ZT0xLFMuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlh''@;'; put 'put ''ZGQoVCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIEYseWUsQ2U9dGhpcy5jbXAoVCk7aWYoMD09PUNlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztDZT4wPyhGPXRoaXMseWU9VCk6KEY9VCx5ZT10aGlzKTtm''@;'; put 'put ''b3IodmFyIERlPTAsUGU9MDtQZTx5ZS5sZW5ndGg7UGUrKylEZT0oUz0oMHxGLndvcmRzW1BlXSktKDB8eWUud29yZHNbUGVdKStEZSk+PjI2LHRoaXMud29yZHNbUGVdPTY3MTA4ODYzJlM7Zm9yKDswIT09RGUmJlBlPEYubGVuZ3RoO1BlKyspRGU9KFM9KDB8Ri53b3Jkc1tQZV0pK0RlKT4+''@;'; put 'put ''MjYsdGhpcy53b3Jkc1tQZV09NjcxMDg4NjMmUztpZigwPT09RGUmJlBlPEYubGVuZ3RoJiZGIT09dGhpcylmb3IoO1BlPEYubGVuZ3RoO1BlKyspdGhpcy53b3Jkc1tQZV09Ri53b3Jkc1tQZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFBlKSxGIT09dGhpcyYm''@;'; put 'put ''KHRoaXMubmVnYXRpdmU9MSksdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihUKX07dmFyIFNlPWZ1bmN0aW9uKFQsUyxGKXt2YXIgeWUsQ2UsRGUsUGU9VC53b3JkcyxRZT1TLndvcmRzLCRlPUYud29yZHMsZ3Q9MCx3''@;'; put 'put ''dD0wfFBlWzBdLG10PTgxOTEmd3QsdnQ9d3Q+Pj4xMyxBdD0wfFBlWzFdLGh0PTgxOTEmQXQsQnQ9QXQ+Pj4xMyxvbj0wfFBlWzJdLF90PTgxOTEmb24sdHQ9b24+Pj4xMyxldD0wfFBlWzNdLGx0PTgxOTEmZXQsTHQ9ZXQ+Pj4xMyxDdD0wfFBlWzRdLGZ0PTgxOTEmQ3QsSHQ9Q3Q+Pj4xMyxH''@;'; put 'put ''ZT0wfFBlWzVdLFVlPTgxOTEmR2UseXQ9R2U+Pj4xMyxqdD0wfFBlWzZdLEp0PTgxOTEmanQsZ249anQ+Pj4xMyxkbj0wfFBlWzddLHluPTgxOTEmZG4sbG49ZG4+Pj4xMyxObj0wfFBlWzhdLGJuPTgxOTEmTm4sZXI9Tm4+Pj4xMyxzcj0wfFBlWzldLFhuPTgxOTEmc3IsRnI9c3I+Pj4xMyx4''@;'; put 'put ''cj0wfFFlWzBdLHF0PTgxOTEmeHIscHI9eHI+Pj4xMyxucj0wfFFlWzFdLEFuPTgxOTEmbnIscW49bnI+Pj4xMyxXdD0wfFFlWzJdLHBuPTgxOTEmV3QsS249V3Q+Pj4xMyxOdD0wfFFlWzNdLHNuPTgxOTEmTnQsVW49TnQ+Pj4xMyx3bj0wfFFlWzRdLHRuPTgxOTEmd24sem49d24+Pj4xMyxU''@;'; put 'put ''cj0wfFFlWzVdLEJuPTgxOTEmVHIsa3I9VHI+Pj4xMyxtbj0wfFFlWzZdLHVuPTgxOTEmbW4sY249bW4+Pj4xMyxfbj0wfFFlWzddLEd0PTgxOTEmX24sa249X24+Pj4xMyxWbj0wfFFlWzhdLGVuPTgxOTEmVm4sSW49Vm4+Pj4xMyxKbj0wfFFlWzldLG9yPTgxOTEmSm4sZ3I9Sm4+Pj4xMztG''@;'; put 'put ''Lm5lZ2F0aXZlPVQubmVnYXRpdmVeUy5uZWdhdGl2ZSxGLmxlbmd0aD0xOTt2YXIgS3I9KGd0Kyh5ZT1NYXRoLmltdWwobXQscXQpKXwwKSsoKDgxOTEmKENlPShDZT1NYXRoLmltdWwobXQscHIpKStNYXRoLmltdWwodnQscXQpfDApKTw8MTMpfDA7Z3Q9KChEZT1NYXRoLmltdWwodnQscHIp''@;'; put 'put ''KSsoQ2U+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLHllPU1hdGguaW11bChodCxxdCksQ2U9KENlPU1hdGguaW11bChodCxwcikpK01hdGguaW11bChCdCxxdCl8MCxEZT1NYXRoLmltdWwoQnQscHIpO3ZhciBWcj0oZ3QrKHllPXllK01hdGguaW11bChtdCxBbil8MCl8MCkr''@;'; put 'put ''KCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LHFuKXwwKStNYXRoLmltdWwodnQsQW4pfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwodnQscW4pfDApKyhDZT4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKF90LHF0KSxDZT0oQ2U9TWF0''@;'; put 'put ''aC5pbXVsKF90LHByKSkrTWF0aC5pbXVsKHR0LHF0KXwwLERlPU1hdGguaW11bCh0dCxwcikseWU9eWUrTWF0aC5pbXVsKGh0LEFuKXwwLENlPShDZT1DZStNYXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxEZT1EZStNYXRoLmltdWwoQnQscW4pfDA7dmFyIGlpPShndCso''@;'; put 'put ''eWU9eWUrTWF0aC5pbXVsKG10LHBuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwobXQsS24pfDApK01hdGguaW11bCh2dCxwbil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bCh2dCxLbil8MCkrKENlPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2Myx5''@;'; put 'put ''ZT1NYXRoLmltdWwobHQscXQpLENlPShDZT1NYXRoLmltdWwobHQscHIpKStNYXRoLmltdWwoTHQscXQpfDAsRGU9TWF0aC5pbXVsKEx0LHByKSx5ZT15ZStNYXRoLmltdWwoX3QsQW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLERlPURlK01h''@;'; put 'put ''dGguaW11bCh0dCxxbil8MCx5ZT15ZStNYXRoLmltdWwoaHQscG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChodCxLbil8MCkrTWF0aC5pbXVsKEJ0LHBuKXwwLERlPURlK01hdGguaW11bChCdCxLbil8MDt2YXIgUnI9KGd0Kyh5ZT15ZStNYXRoLmltdWwobXQsc24pfDApfDApKygoODE5MSYo''@;'; put 'put ''Q2U9KENlPUNlK01hdGguaW11bChtdCxVbil8MCkrTWF0aC5pbXVsKHZ0LHNuKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHZ0LFVuKXwwKSsoQ2U+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLHllPU1hdGguaW11bChmdCxxdCksQ2U9KENlPU1hdGguaW11bChm''@;'; put 'put ''dCxwcikpK01hdGguaW11bChIdCxxdCl8MCxEZT1NYXRoLmltdWwoSHQscHIpLHllPXllK01hdGguaW11bChsdCxBbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGx0LHFuKXwwKStNYXRoLmltdWwoTHQsQW4pfDAsRGU9RGUrTWF0aC5pbXVsKEx0LHFuKXwwLHllPXllK01hdGguaW11bChfdCxw''@;'; put 'put ''bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LEtuKXwwKStNYXRoLmltdWwodHQscG4pfDAsRGU9RGUrTWF0aC5pbXVsKHR0LEtuKXwwLHllPXllK01hdGguaW11bChodCxzbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRGU9RGUrTWF0aC5p''@;'; put 'put ''bXVsKEJ0LFVuKXwwO3ZhciBsaT0oZ3QrKHllPXllK01hdGguaW11bChtdCx0bil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LHpuKXwwKStNYXRoLmltdWwodnQsdG4pfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwodnQsem4pfDApKyhDZT4+PjEzKXwwKSso''@;'; put 'put ''bGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKFVlLHF0KSxDZT0oQ2U9TWF0aC5pbXVsKFVlLHByKSkrTWF0aC5pbXVsKHl0LHF0KXwwLERlPU1hdGguaW11bCh5dCxwcikseWU9eWUrTWF0aC5pbXVsKGZ0LEFuKXwwLENlPShDZT1DZStNYXRoLmltdWwoZnQscW4pfDApK01h''@;'; put 'put ''dGguaW11bChIdCxBbil8MCxEZT1EZStNYXRoLmltdWwoSHQscW4pfDAseWU9eWUrTWF0aC5pbXVsKGx0LHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwobHQsS24pfDApK01hdGguaW11bChMdCxwbil8MCxEZT1EZStNYXRoLmltdWwoTHQsS24pfDAseWU9eWUrTWF0aC5pbXVsKF90LHNuKXww''@;'; put 'put ''LENlPShDZT1DZStNYXRoLmltdWwoX3QsVW4pfDApK01hdGguaW11bCh0dCxzbil8MCxEZT1EZStNYXRoLmltdWwodHQsVW4pfDAseWU9eWUrTWF0aC5pbXVsKGh0LHRuKXwwLENlPShDZT1DZStNYXRoLmltdWwoaHQsem4pfDApK01hdGguaW11bChCdCx0bil8MCxEZT1EZStNYXRoLmltdWwo''@;'; put 'put ''QnQsem4pfDA7dmFyIE1pPShndCsoeWU9eWUrTWF0aC5pbXVsKG10LEJuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwobXQsa3IpfDApK01hdGguaW11bCh2dCxCbil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bCh2dCxrcil8MCkrKENlPj4+MTMpfDApKyhNaT4+''@;'; put 'put ''PjI2KXwwLE1pJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoSnQscXQpLENlPShDZT1NYXRoLmltdWwoSnQscHIpKStNYXRoLmltdWwoZ24scXQpfDAsRGU9TWF0aC5pbXVsKGduLHByKSx5ZT15ZStNYXRoLmltdWwoVWUsQW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKHl0LEFuKXwwLERlPURlK01hdGguaW11bCh5dCxxbil8MCx5ZT15ZStNYXRoLmltdWwoZnQscG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCxLbil8MCkrTWF0aC5pbXVsKEh0LHBuKXwwLERlPURlK01hdGguaW11bChIdCxLbil8MCx5ZT15ZStNYXRoLmltdWwobHQsc24pfDAsQ2U9''@;'; put 'put ''KENlPUNlK01hdGguaW11bChsdCxVbil8MCkrTWF0aC5pbXVsKEx0LHNuKXwwLERlPURlK01hdGguaW11bChMdCxVbil8MCx5ZT15ZStNYXRoLmltdWwoX3QsdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLERlPURlK01hdGguaW11bCh0dCx6''@;'; put 'put ''bil8MCx5ZT15ZStNYXRoLmltdWwoaHQsQm4pfDAsQ2U9KENlPUNlK01hdGguaW11bChodCxrcil8MCkrTWF0aC5pbXVsKEJ0LEJuKXwwLERlPURlK01hdGguaW11bChCdCxrcil8MDt2YXIgbzA9KGd0Kyh5ZT15ZStNYXRoLmltdWwobXQsdW4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01h''@;'; put 'put ''dGguaW11bChtdCxjbil8MCkrTWF0aC5pbXVsKHZ0LHVuKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHZ0LGNuKXwwKSsoQ2U+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLHllPU1hdGguaW11bCh5bixxdCksQ2U9KENlPU1hdGguaW11bCh5bixwcikpK01hdGgu''@;'; put 'put ''aW11bChsbixxdCl8MCxEZT1NYXRoLmltdWwobG4scHIpLHllPXllK01hdGguaW11bChKdCxBbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEp0LHFuKXwwKStNYXRoLmltdWwoZ24sQW4pfDAsRGU9RGUrTWF0aC5pbXVsKGduLHFuKXwwLHllPXllK01hdGguaW11bChVZSxwbil8MCxDZT0oQ2U9''@;'; put 'put ''Q2UrTWF0aC5pbXVsKFVlLEtuKXwwKStNYXRoLmltdWwoeXQscG4pfDAsRGU9RGUrTWF0aC5pbXVsKHl0LEtuKXwwLHllPXllK01hdGguaW11bChmdCxzbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LFVuKXww''@;'; put 'put ''LHllPXllK01hdGguaW11bChsdCx0bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGx0LHpuKXwwKStNYXRoLmltdWwoTHQsdG4pfDAsRGU9RGUrTWF0aC5pbXVsKEx0LHpuKXwwLHllPXllK01hdGguaW11bChfdCxCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LGtyKXwwKStNYXRoLmltdWwo''@;'; put 'put ''dHQsQm4pfDAsRGU9RGUrTWF0aC5pbXVsKHR0LGtyKXwwLHllPXllK01hdGguaW11bChodCx1bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRGU9RGUrTWF0aC5pbXVsKEJ0LGNuKXwwO3ZhciBuMD0oZ3QrKHllPXllK01hdGguaW11bChtdCxH''@;'; put 'put ''dCl8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKG10LGtuKXwwKStNYXRoLmltdWwodnQsR3QpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwodnQsa24pfDApKyhDZT4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGJuLHF0KSxD''@;'; put 'put ''ZT0oQ2U9TWF0aC5pbXVsKGJuLHByKSkrTWF0aC5pbXVsKGVyLHF0KXwwLERlPU1hdGguaW11bChlcixwcikseWU9eWUrTWF0aC5pbXVsKHluLEFuKXwwLENlPShDZT1DZStNYXRoLmltdWwoeW4scW4pfDApK01hdGguaW11bChsbixBbil8MCxEZT1EZStNYXRoLmltdWwobG4scW4pfDAseWU9''@;'; put 'put ''eWUrTWF0aC5pbXVsKEp0LHBuKXwwLENlPShDZT1DZStNYXRoLmltdWwoSnQsS24pfDApK01hdGguaW11bChnbixwbil8MCxEZT1EZStNYXRoLmltdWwoZ24sS24pfDAseWU9eWUrTWF0aC5pbXVsKFVlLHNuKXwwLENlPShDZT1DZStNYXRoLmltdWwoVWUsVW4pfDApK01hdGguaW11bCh5dCxz''@;'; put 'put ''bil8MCxEZT1EZStNYXRoLmltdWwoeXQsVW4pfDAseWU9eWUrTWF0aC5pbXVsKGZ0LHRuKXwwLENlPShDZT1DZStNYXRoLmltdWwoZnQsem4pfDApK01hdGguaW11bChIdCx0bil8MCxEZT1EZStNYXRoLmltdWwoSHQsem4pfDAseWU9eWUrTWF0aC5pbXVsKGx0LEJuKXwwLENlPShDZT1DZStN''@;'; put 'put ''YXRoLmltdWwobHQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxEZT1EZStNYXRoLmltdWwoTHQsa3IpfDAseWU9eWUrTWF0aC5pbXVsKF90LHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoX3QsY24pfDApK01hdGguaW11bCh0dCx1bil8MCxEZT1EZStNYXRoLmltdWwodHQsY24pfDAseWU9''@;'; put 'put ''eWUrTWF0aC5pbXVsKGh0LEd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoaHQsa24pfDApK01hdGguaW11bChCdCxHdCl8MCxEZT1EZStNYXRoLmltdWwoQnQsa24pfDA7dmFyIGQwPShndCsoeWU9eWUrTWF0aC5pbXVsKG10LGVuKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwo''@;'; put 'put ''bXQsSW4pfDApK01hdGguaW11bCh2dCxlbil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bCh2dCxJbil8MCkrKENlPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoWG4scXQpLENlPShDZT1NYXRoLmltdWwoWG4scHIpKStNYXRoLmltdWwoRnIs''@;'; put 'put ''cXQpfDAsRGU9TWF0aC5pbXVsKEZyLHByKSx5ZT15ZStNYXRoLmltdWwoYm4sQW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChibixxbil8MCkrTWF0aC5pbXVsKGVyLEFuKXwwLERlPURlK01hdGguaW11bChlcixxbil8MCx5ZT15ZStNYXRoLmltdWwoeW4scG4pfDAsQ2U9KENlPUNlK01hdGgu''@;'; put 'put ''aW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLERlPURlK01hdGguaW11bChsbixLbil8MCx5ZT15ZStNYXRoLmltdWwoSnQsc24pfDAsQ2U9KENlPUNlK01hdGguaW11bChKdCxVbil8MCkrTWF0aC5pbXVsKGduLHNuKXwwLERlPURlK01hdGguaW11bChnbixVbil8MCx5ZT15ZStN''@;'; put 'put ''YXRoLmltdWwoVWUsdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChVZSx6bil8MCkrTWF0aC5pbXVsKHl0LHRuKXwwLERlPURlK01hdGguaW11bCh5dCx6bil8MCx5ZT15ZStNYXRoLmltdWwoZnQsQm4pfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXww''@;'; put 'put ''LERlPURlK01hdGguaW11bChIdCxrcil8MCx5ZT15ZStNYXRoLmltdWwobHQsdW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChsdCxjbil8MCkrTWF0aC5pbXVsKEx0LHVuKXwwLERlPURlK01hdGguaW11bChMdCxjbil8MCx5ZT15ZStNYXRoLmltdWwoX3QsR3QpfDAsQ2U9KENlPUNlK01hdGgu''@;'; put 'put ''aW11bChfdCxrbil8MCkrTWF0aC5pbXVsKHR0LEd0KXwwLERlPURlK01hdGguaW11bCh0dCxrbil8MCx5ZT15ZStNYXRoLmltdWwoaHQsZW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwLERlPURlK01hdGguaW11bChCdCxJbil8MDt2YXIgbTA9''@;'; put 'put ''KGd0Kyh5ZT15ZStNYXRoLmltdWwobXQsb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChtdCxncil8MCkrTWF0aC5pbXVsKHZ0LG9yKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKHZ0LGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4''@;'; put 'put ''ODYzLHllPU1hdGguaW11bChYbixBbiksQ2U9KENlPU1hdGguaW11bChYbixxbikpK01hdGguaW11bChGcixBbil8MCxEZT1NYXRoLmltdWwoRnIscW4pLHllPXllK01hdGguaW11bChibixwbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLEtuKXwwKStNYXRoLmltdWwoZXIscG4pfDAsRGU9''@;'; put 'put ''RGUrTWF0aC5pbXVsKGVyLEtuKXwwLHllPXllK01hdGguaW11bCh5bixzbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRGU9RGUrTWF0aC5pbXVsKGxuLFVuKXwwLHllPXllK01hdGguaW11bChKdCx0bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVs''@;'; put 'put ''KEp0LHpuKXwwKStNYXRoLmltdWwoZ24sdG4pfDAsRGU9RGUrTWF0aC5pbXVsKGduLHpuKXwwLHllPXllK01hdGguaW11bChVZSxCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFVlLGtyKXwwKStNYXRoLmltdWwoeXQsQm4pfDAsRGU9RGUrTWF0aC5pbXVsKHl0LGtyKXwwLHllPXllK01hdGgu''@;'; put 'put ''aW11bChmdCx1bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4pfDAsRGU9RGUrTWF0aC5pbXVsKEh0LGNuKXwwLHllPXllK01hdGguaW11bChsdCxHdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGx0LGtuKXwwKStNYXRoLmltdWwoTHQsR3QpfDAsRGU9''@;'; put 'put ''RGUrTWF0aC5pbXVsKEx0LGtuKXwwLHllPXllK01hdGguaW11bChfdCxlbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKF90LEluKXwwKStNYXRoLmltdWwodHQsZW4pfDAsRGU9RGUrTWF0aC5pbXVsKHR0LEluKXwwO3ZhciBHMD0oZ3QrKHllPXllK01hdGguaW11bChodCxvcil8MCl8MCkrKCg4''@;'; put 'put ''MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKGh0LGdyKXwwKStNYXRoLmltdWwoQnQsb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoQnQsZ3IpfDApKyhDZT4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLHBuKSxDZT0oQ2U9TWF0aC5p''@;'; put 'put ''bXVsKFhuLEtuKSkrTWF0aC5pbXVsKEZyLHBuKXwwLERlPU1hdGguaW11bChGcixLbikseWU9eWUrTWF0aC5pbXVsKGJuLHNuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sVW4pfDApK01hdGguaW11bChlcixzbil8MCxEZT1EZStNYXRoLmltdWwoZXIsVW4pfDAseWU9eWUrTWF0aC5pbXVs''@;'; put 'put ''KHluLHRuKXwwLENlPShDZT1DZStNYXRoLmltdWwoeW4sem4pfDApK01hdGguaW11bChsbix0bil8MCxEZT1EZStNYXRoLmltdWwobG4sem4pfDAseWU9eWUrTWF0aC5pbXVsKEp0LEJuKXwwLENlPShDZT1DZStNYXRoLmltdWwoSnQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxEZT1EZStN''@;'; put 'put ''YXRoLmltdWwoZ24sa3IpfDAseWU9eWUrTWF0aC5pbXVsKFVlLHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoVWUsY24pfDApK01hdGguaW11bCh5dCx1bil8MCxEZT1EZStNYXRoLmltdWwoeXQsY24pfDAseWU9eWUrTWF0aC5pbXVsKGZ0LEd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoZnQs''@;'; put 'put ''a24pfDApK01hdGguaW11bChIdCxHdCl8MCxEZT1EZStNYXRoLmltdWwoSHQsa24pfDAseWU9eWUrTWF0aC5pbXVsKGx0LGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwobHQsSW4pfDApK01hdGguaW11bChMdCxlbil8MCxEZT1EZStNYXRoLmltdWwoTHQsSW4pfDA7dmFyIERpPShndCsoeWU9''@;'; put 'put ''eWUrTWF0aC5pbXVsKF90LG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoX3QsZ3IpfDApK01hdGguaW11bCh0dCxvcil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bCh0dCxncil8MCkrKENlPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2Myx5ZT1N''@;'; put 'put ''YXRoLmltdWwoWG4sc24pLENlPShDZT1NYXRoLmltdWwoWG4sVW4pKStNYXRoLmltdWwoRnIsc24pfDAsRGU9TWF0aC5pbXVsKEZyLFVuKSx5ZT15ZStNYXRoLmltdWwoYm4sdG4pfDAsQ2U9KENlPUNlK01hdGguaW11bChibix6bil8MCkrTWF0aC5pbXVsKGVyLHRuKXwwLERlPURlK01hdGgu''@;'; put 'put ''aW11bChlcix6bil8MCx5ZT15ZStNYXRoLmltdWwoeW4sQm4pfDAsQ2U9KENlPUNlK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLERlPURlK01hdGguaW11bChsbixrcil8MCx5ZT15ZStNYXRoLmltdWwoSnQsdW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChKdCxjbil8''@;'; put 'put ''MCkrTWF0aC5pbXVsKGduLHVuKXwwLERlPURlK01hdGguaW11bChnbixjbil8MCx5ZT15ZStNYXRoLmltdWwoVWUsR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bChVZSxrbil8MCkrTWF0aC5pbXVsKHl0LEd0KXwwLERlPURlK01hdGguaW11bCh5dCxrbil8MCx5ZT15ZStNYXRoLmltdWwoZnQs''@;'; put 'put ''ZW4pfDAsQ2U9KENlPUNlK01hdGguaW11bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwLERlPURlK01hdGguaW11bChIdCxJbil8MDt2YXIgVzA9KGd0Kyh5ZT15ZStNYXRoLmltdWwobHQsb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChsdCxncil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKEx0LG9yKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKEx0LGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLHllPU1hdGguaW11bChYbix0biksQ2U9KENlPU1hdGguaW11bChYbix6bikpK01hdGguaW11bChGcix0bil8MCxEZT1NYXRoLmlt''@;'; put 'put ''dWwoRnIsem4pLHllPXllK01hdGguaW11bChibixCbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLGtyKXwwKStNYXRoLmltdWwoZXIsQm4pfDAsRGU9RGUrTWF0aC5pbXVsKGVyLGtyKXwwLHllPXllK01hdGguaW11bCh5bix1bil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLGNuKXwwKStN''@;'; put 'put ''YXRoLmltdWwobG4sdW4pfDAsRGU9RGUrTWF0aC5pbXVsKGxuLGNuKXwwLHllPXllK01hdGguaW11bChKdCxHdCl8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKEp0LGtuKXwwKStNYXRoLmltdWwoZ24sR3QpfDAsRGU9RGUrTWF0aC5pbXVsKGduLGtuKXwwLHllPXllK01hdGguaW11bChVZSxlbil8''@;'; put 'put ''MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKFVlLEluKXwwKStNYXRoLmltdWwoeXQsZW4pfDAsRGU9RGUrTWF0aC5pbXVsKHl0LEluKXwwO3ZhciBFbz0oZ3QrKHllPXllK01hdGguaW11bChmdCxvcil8MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKGZ0LGdyKXwwKStNYXRoLmltdWwo''@;'; put 'put ''SHQsb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwoSHQsZ3IpfDApKyhDZT4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLEJuKSxDZT0oQ2U9TWF0aC5pbXVsKFhuLGtyKSkrTWF0aC5pbXVsKEZyLEJuKXwwLERlPU1hdGguaW11bChG''@;'; put 'put ''cixrcikseWU9eWUrTWF0aC5pbXVsKGJuLHVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoYm4sY24pfDApK01hdGguaW11bChlcix1bil8MCxEZT1EZStNYXRoLmltdWwoZXIsY24pfDAseWU9eWUrTWF0aC5pbXVsKHluLEd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoeW4sa24pfDApK01hdGgu''@;'; put 'put ''aW11bChsbixHdCl8MCxEZT1EZStNYXRoLmltdWwobG4sa24pfDAseWU9eWUrTWF0aC5pbXVsKEp0LGVuKXwwLENlPShDZT1DZStNYXRoLmltdWwoSnQsSW4pfDApK01hdGguaW11bChnbixlbil8MCxEZT1EZStNYXRoLmltdWwoZ24sSW4pfDA7dmFyIHFvPShndCsoeWU9eWUrTWF0aC5pbXVs''@;'; put 'put ''KFVlLG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoVWUsZ3IpfDApK01hdGguaW11bCh5dCxvcil8MCkpPDwxMyl8MDtndD0oKERlPURlK01hdGguaW11bCh5dCxncil8MCkrKENlPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2Myx5ZT1NYXRoLmltdWwoWG4s''@;'; put 'put ''dW4pLENlPShDZT1NYXRoLmltdWwoWG4sY24pKStNYXRoLmltdWwoRnIsdW4pfDAsRGU9TWF0aC5pbXVsKEZyLGNuKSx5ZT15ZStNYXRoLmltdWwoYm4sR3QpfDAsQ2U9KENlPUNlK01hdGguaW11bChibixrbil8MCkrTWF0aC5pbXVsKGVyLEd0KXwwLERlPURlK01hdGguaW11bChlcixrbil8''@;'; put 'put ''MCx5ZT15ZStNYXRoLmltdWwoeW4sZW4pfDAsQ2U9KENlPUNlK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwLERlPURlK01hdGguaW11bChsbixJbil8MDt2YXIgY2E9KGd0Kyh5ZT15ZStNYXRoLmltdWwoSnQsb3IpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGgu''@;'; put 'put ''aW11bChKdCxncil8MCkrTWF0aC5pbXVsKGduLG9yKXwwKSk8PDEzKXwwO2d0PSgoRGU9RGUrTWF0aC5pbXVsKGduLGdyKXwwKSsoQ2U+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLHllPU1hdGguaW11bChYbixHdCksQ2U9KENlPU1hdGguaW11bChYbixrbikpK01hdGguaW11''@;'; put 'put ''bChGcixHdCl8MCxEZT1NYXRoLmltdWwoRnIsa24pLHllPXllK01hdGguaW11bChibixlbil8MCxDZT0oQ2U9Q2UrTWF0aC5pbXVsKGJuLEluKXwwKStNYXRoLmltdWwoZXIsZW4pfDAsRGU9RGUrTWF0aC5pbXVsKGVyLEluKXwwO3ZhciBsbD0oZ3QrKHllPXllK01hdGguaW11bCh5bixvcil8''@;'; put 'put ''MCl8MCkrKCg4MTkxJihDZT0oQ2U9Q2UrTWF0aC5pbXVsKHluLGdyKXwwKStNYXRoLmltdWwobG4sb3IpfDApKTw8MTMpfDA7Z3Q9KChEZT1EZStNYXRoLmltdWwobG4sZ3IpfDApKyhDZT4+PjEzKXwwKSsobGw+Pj4yNil8MCxsbCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKFhuLGVuKSxDZT0o''@;'; put 'put ''Q2U9TWF0aC5pbXVsKFhuLEluKSkrTWF0aC5pbXVsKEZyLGVuKXwwLERlPU1hdGguaW11bChGcixJbik7dmFyIFFpPShndCsoeWU9eWUrTWF0aC5pbXVsKGJuLG9yKXwwKXwwKSsoKDgxOTEmKENlPShDZT1DZStNYXRoLmltdWwoYm4sZ3IpfDApK01hdGguaW11bChlcixvcil8MCkpPDwxMyl8''@;'; put 'put ''MDtndD0oKERlPURlK01hdGguaW11bChlcixncil8MCkrKENlPj4+MTMpfDApKyhRaT4+PjI2KXwwLFFpJj02NzEwODg2Mzt2YXIgTWE9KGd0Kyh5ZT1NYXRoLmltdWwoWG4sb3IpKXwwKSsoKDgxOTEmKENlPShDZT1NYXRoLmltdWwoWG4sZ3IpKStNYXRoLmltdWwoRnIsb3IpfDApKTw8MTMp''@;'; put 'put ''fDA7cmV0dXJuIGd0PSgoRGU9TWF0aC5pbXVsKEZyLGdyKSkrKENlPj4+MTMpfDApKyhNYT4+PjI2KXwwLE1hJj02NzEwODg2MywkZVswXT1LciwkZVsxXT1WciwkZVsyXT1paSwkZVszXT1SciwkZVs0XT1saSwkZVs1XT1NaSwkZVs2XT1vMCwkZVs3XT1uMCwkZVs4XT1kMCwkZVs5XT1tMCwk''@;'; put 'put ''ZVsxMF09RzAsJGVbMTFdPURpLCRlWzEyXT1XMCwkZVsxM109RW8sJGVbMTRdPXFvLCRlWzE1XT1jYSwkZVsxNl09bGwsJGVbMTddPVFpLCRlWzE4XT1NYSwwIT09Z3QmJigkZVsxOV09Z3QsRi5sZW5ndGgrKyksRn07ZnVuY3Rpb24gSWUoVCxTLEYpe0YubmVnYXRpdmU9Uy5uZWdhdGl2ZV5U''@;'; put 'put ''Lm5lZ2F0aXZlLEYubGVuZ3RoPVQubGVuZ3RoK1MubGVuZ3RoO2Zvcih2YXIgeWU9MCxDZT0wLERlPTA7RGU8Ri5sZW5ndGgtMTtEZSsrKXt2YXIgUGU9Q2U7Q2U9MDtmb3IodmFyIFFlPTY3MTA4ODYzJnllLCRlPU1hdGgubWluKERlLFMubGVuZ3RoLTEpLGd0PU1hdGgubWF4KDAsRGUtVC5s''@;'; put 'put ''ZW5ndGgrMSk7Z3Q8PSRlO2d0Kyspe3ZhciBtdD0oMHxULndvcmRzW0RlLWd0XSkqKDB8Uy53b3Jkc1tndF0pLHZ0PTY3MTA4ODYzJm10O1FlPTY3MTA4ODYzJih2dD12dCtRZXwwKSxDZSs9KFBlPShQZT1QZSsobXQvNjcxMDg4NjR8MCl8MCkrKHZ0Pj4+MjYpfDApPj4+MjYsUGUmPTY3MTA4''@;'; put 'put ''ODYzfUYud29yZHNbRGVdPVFlLHllPVBlLFBlPUNlfXJldHVybiAwIT09eWU/Ri53b3Jkc1tEZV09eWU6Ri5sZW5ndGgtLSxGLl9zdHJpcCgpfWZ1bmN0aW9uIFRlKFQsUyxGKXtyZXR1cm4gSWUoVCxTLEYpfWZ1bmN0aW9uIE1lKFQsUyl7dGhpcy54PVQsdGhpcy55PVN9TWF0aC5pbXVsfHwo''@;'; put 'put ''U2U9a2UpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKFQsUyl7dmFyIEY9dGhpcy5sZW5ndGgrVC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09VC5sZW5ndGg/U2UodGhpcyxULFMpOkY8NjM/a2UodGhpcyxULFMpOkY8MTAyND9JZSh0aGlzLFQsUyk6VGUodGhpcyxU''@;'; put 'put ''LFMpfSxNZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihUKXtmb3IodmFyIFM9bmV3IEFycmF5KFQpLEY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyhUKS0xLHllPTA7eWU8VDt5ZSsrKVNbeWVdPXRoaXMucmV2QmluKHllLEYsVCk7cmV0dXJuIFN9LE1lLnByb3RvdHlwZS5yZXZCaW49ZnVu''@;'; put 'put ''Y3Rpb24oVCxTLEYpe2lmKDA9PT1UfHxUPT09Ri0xKXJldHVybiBUO2Zvcih2YXIgeWU9MCxDZT0wO0NlPFM7Q2UrKyl5ZXw9KDEmVCk8PFMtQ2UtMSxUPj49MTtyZXR1cm4geWV9LE1lLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKFQsUyxGLHllLENlLERlKXtmb3IodmFyIFBlPTA7UGU8''@;'; put 'put ''RGU7UGUrKyl5ZVtQZV09U1tUW1BlXV0sQ2VbUGVdPUZbVFtQZV1dfSxNZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKFQsUyxGLHllLENlLERlKXt0aGlzLnBlcm11dGUoRGUsVCxTLEYseWUsQ2UpO2Zvcih2YXIgUGU9MTtQZTxDZTtQZTw8PTEpZm9yKHZhciBRZT1QZTw8MSwkZT1N''@;'; put 'put ''YXRoLmNvcygyKk1hdGguUEkvUWUpLGd0PU1hdGguc2luKDIqTWF0aC5QSS9RZSksd3Q9MDt3dDxDZTt3dCs9UWUpZm9yKHZhciBtdD0kZSx2dD1ndCxBdD0wO0F0PFBlO0F0Kyspe3ZhciBodD1GW3d0K0F0XSxCdD15ZVt3dCtBdF0sb249Rlt3dCtBdCtQZV0sX3Q9eWVbd3QrQXQrUGVdLHR0''@;'; put 'put ''PW10Km9uLXZ0Kl90O190PW10Kl90K3Z0Km9uLEZbd3QrQXRdPWh0Kyhvbj10dCkseWVbd3QrQXRdPUJ0K190LEZbd3QrQXQrUGVdPWh0LW9uLHllW3d0K0F0K1BlXT1CdC1fdCxBdCE9PVFlJiYodHQ9JGUqbXQtZ3QqdnQsdnQ9JGUqdnQrZ3QqbXQsbXQ9dHQpfX0sTWUucHJvdG90eXBlLmd1''@;'; put 'put ''ZXNzTGVuMTNiPWZ1bmN0aW9uKFQsUyl7dmFyIEY9MXxNYXRoLm1heChTLFQpLHllPTEmRixDZT0wO2ZvcihGPUYvMnwwO0Y7Rj4+Pj0xKUNlKys7cmV0dXJuIDE8PENlKzEreWV9LE1lLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oVCxTLEYpe2lmKCEoRjw9MSkpZm9yKHZhciB5ZT0w''@;'; put 'put ''O3llPEYvMjt5ZSsrKXt2YXIgQ2U9VFt5ZV07VFt5ZV09VFtGLXllLTFdLFRbRi15ZS0xXT1DZSxDZT1TW3llXSxTW3llXT0tU1tGLXllLTFdLFNbRi15ZS0xXT0tQ2V9fSxNZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKFQsUyl7Zm9yKHZhciBGPTAseWU9MDt5ZTxTLzI7eWUr''@;'; put 'put ''Kyl7dmFyIENlPTgxOTIqTWF0aC5yb3VuZChUWzIqeWUrMV0vUykrTWF0aC5yb3VuZChUWzIqeWVdL1MpK0Y7VFt5ZV09NjcxMDg4NjMmQ2UsRj1DZTw2NzEwODg2ND8wOkNlLzY3MTA4ODY0fDB9cmV0dXJuIFR9LE1lLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKFQsUyxGLHllKXtm''@;'; put 'put ''b3IodmFyIENlPTAsRGU9MDtEZTxTO0RlKyspRlsyKkRlXT04MTkxJihDZSs9MHxUW0RlXSksRlsyKkRlKzFdPTgxOTEmKENlPj4+PTEzKSxDZT4+Pj0xMztmb3IoRGU9MipTO0RlPHllOysrRGUpRltEZV09MDtZKDA9PT1DZSksWSgwPT0oLTgxOTImQ2UpKX0sTWUucHJvdG90eXBlLnN0dWI9''@;'; put 'put ''ZnVuY3Rpb24oVCl7Zm9yKHZhciBTPW5ldyBBcnJheShUKSxGPTA7RjxUO0YrKylTW0ZdPTA7cmV0dXJuIFN9LE1lLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKFQsUyxGKXt2YXIgeWU9Mip0aGlzLmd1ZXNzTGVuMTNiKFQubGVuZ3RoLFMubGVuZ3RoKSxDZT10aGlzLm1ha2VSQlQoeWUpLERl''@;'; put 'put ''PXRoaXMuc3R1Yih5ZSksUGU9bmV3IEFycmF5KHllKSxRZT1uZXcgQXJyYXkoeWUpLCRlPW5ldyBBcnJheSh5ZSksZ3Q9bmV3IEFycmF5KHllKSx3dD1uZXcgQXJyYXkoeWUpLG10PW5ldyBBcnJheSh5ZSksdnQ9Ri53b3Jkczt2dC5sZW5ndGg9eWUsdGhpcy5jb252ZXJ0MTNiKFQud29yZHMs''@;'; put 'put ''VC5sZW5ndGgsUGUseWUpLHRoaXMuY29udmVydDEzYihTLndvcmRzLFMubGVuZ3RoLGd0LHllKSx0aGlzLnRyYW5zZm9ybShQZSxEZSxRZSwkZSx5ZSxDZSksdGhpcy50cmFuc2Zvcm0oZ3QsRGUsd3QsbXQseWUsQ2UpO2Zvcih2YXIgQXQ9MDtBdDx5ZTtBdCsrKXt2YXIgaHQ9UWVbQXRdKnd0''@;'; put 'put ''W0F0XS0kZVtBdF0qbXRbQXRdOyRlW0F0XT1RZVtBdF0qbXRbQXRdKyRlW0F0XSp3dFtBdF0sUWVbQXRdPWh0fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShRZSwkZSx5ZSksdGhpcy50cmFuc2Zvcm0oUWUsJGUsdnQsRGUseWUsQ2UpLHRoaXMuY29uanVnYXRlKHZ0LERlLHllKSx0aGlzLm5vcm1h''@;'; put 'put ''bGl6ZTEzYih2dCx5ZSksRi5uZWdhdGl2ZT1ULm5lZ2F0aXZlXlMubmVnYXRpdmUsRi5sZW5ndGg9VC5sZW5ndGgrUy5sZW5ndGgsRi5fc3RyaXAoKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFQpe3ZhciBTPW5ldyBOKG51bGwpO3JldHVybiBTLndvcmRzPW5ldyBBcnJheSh0aGlzLmxl''@;'; put 'put ''bmd0aCtULmxlbmd0aCksdGhpcy5tdWxUbyhULFMpfSxOLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKFQpe3ZhciBTPW5ldyBOKG51bGwpO3JldHVybiBTLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtULmxlbmd0aCksVGUodGhpcyxULFMpfSxOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9u''@;'; put 'put ''KFQpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oVCx0aGlzKX0sTi5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oVCl7dmFyIFM9VDwwO1MmJihUPS1UKSxZKCJudW1iZXIiPT10eXBlb2YgVCksWShUPDY3MTA4ODY0KTtmb3IodmFyIEY9MCx5ZT0wO3llPHRoaXMubGVuZ3RoO3llKyspe3Zh''@;'; put 'put ''ciBDZT0oMHx0aGlzLndvcmRzW3llXSkqVCxEZT0oNjcxMDg4NjMmQ2UpKyg2NzEwODg2MyZGKTtGPj49MjYsRis9Q2UvNjcxMDg4NjR8MCxGKz1EZT4+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJkRlfXJldHVybiAwIT09RiYmKHRoaXMud29yZHNbeWVdPUYsdGhpcy5sZW5ndGgrKyks''@;'; put 'put ''Uz90aGlzLmluZWcoKTp0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oVCl9LE4ucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0''@;'; put 'put ''aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKFQpe3ZhciBTPWZ1bmN0aW9uKERlKXtmb3IodmFyIFBlPW5ldyBBcnJheShEZS5iaXRMZW5ndGgoKSksUWU9MDtRZTxQZS5sZW5ndGg7UWUrKylQZVtRZV09RGUud29yZHNbUWUvMjZ8MF0+Pj5RZSUyNiYx''@;'; put 'put ''O3JldHVybiBQZX0oVCk7aWYoMD09PVMubGVuZ3RoKXJldHVybiBuZXcgTigxKTtmb3IodmFyIEY9dGhpcyx5ZT0wO3llPFMubGVuZ3RoJiYwPT09U1t5ZV07eWUrKyxGPUYuc3FyKCkpO2lmKCsreWU8Uy5sZW5ndGgpZm9yKHZhciBDZT1GLnNxcigpO3llPFMubGVuZ3RoO3llKyssQ2U9Q2Uu''@;'; put 'put ''c3FyKCkpMCE9PVNbeWVdJiYoRj1GLm11bChDZSkpO3JldHVybiBGfSxOLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oVCl7WSgibnVtYmVyIj09dHlwZW9mIFQmJlQ+PTApO3ZhciBTLEY9VCUyNix5ZT0oVC1GKS8yNixDZT02NzEwODg2Mz4+PjI2LUY8PDI2LUY7aWYoMCE9PUYpe3ZhciBE''@;'; put 'put ''ZT0wO2ZvcihTPTA7Uzx0aGlzLmxlbmd0aDtTKyspe3ZhciBQZT10aGlzLndvcmRzW1NdJkNlO3RoaXMud29yZHNbU109KDB8dGhpcy53b3Jkc1tTXSktUGU8PEZ8RGUsRGU9UGU+Pj4yNi1GfURlJiYodGhpcy53b3Jkc1tTXT1EZSx0aGlzLmxlbmd0aCsrKX1pZigwIT09eWUpe2ZvcihTPXRo''@;'; put 'put ''aXMubGVuZ3RoLTE7Uz49MDtTLS0pdGhpcy53b3Jkc1tTK3llXT10aGlzLndvcmRzW1NdO2ZvcihTPTA7Uzx5ZTtTKyspdGhpcy53b3Jkc1tTXT0wO3RoaXMubGVuZ3RoKz15ZX1yZXR1cm4gdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oVCl7cmV0dXJuIFkoMD09''@;'; put 'put ''PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKFQpfSxOLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oVCxTLEYpe3ZhciB5ZTtZKCJudW1iZXIiPT10eXBlb2YgVCYmVD49MCkseWU9Uz8oUy1TJTI2KS8yNjowO3ZhciBDZT1UJTI2LERlPU1hdGgubWluKChULUNlKS8yNix0aGlzLmxlbmd0''@;'; put 'put ''aCksUGU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5DZTw8Q2UsUWU9RjtpZih5ZS09RGUseWU9TWF0aC5tYXgoMCx5ZSksUWUpe2Zvcih2YXIgJGU9MDskZTxEZTskZSsrKVFlLndvcmRzWyRlXT10aGlzLndvcmRzWyRlXTtRZS5sZW5ndGg9RGV9aWYoMCE9PURlKWlmKHRoaXMubGVuZ3RoPkRlKWZv''@;'; put 'put ''cih0aGlzLmxlbmd0aC09RGUsJGU9MDskZTx0aGlzLmxlbmd0aDskZSsrKXRoaXMud29yZHNbJGVdPXRoaXMud29yZHNbJGUrRGVdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIGd0PTA7Zm9yKCRlPXRoaXMubGVuZ3RoLTE7JGU+PTAmJigwIT09Z3R8fCRlPj15ZSk7''@;'; put 'put ''JGUtLSl7dmFyIHd0PTB8dGhpcy53b3Jkc1skZV07dGhpcy53b3Jkc1skZV09Z3Q8PDI2LUNlfHd0Pj4+Q2UsZ3Q9d3QmUGV9cmV0dXJuIFFlJiYwIT09Z3QmJihRZS53b3Jkc1tRZS5sZW5ndGgrK109Z3QpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0x''@;'; put 'put ''KSx0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hybj1mdW5jdGlvbihULFMsRil7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKFQsUyxGKX0sTi5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKFQpfSxOLnByb3Rv''@;'; put 'put ''dHlwZS51c2hsbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihUKX0sTi5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKFQpfSxOLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1''@;'; put 'put ''c2hybihUKX0sTi5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oVCl7WSgibnVtYmVyIj09dHlwZW9mIFQmJlQ+PTApO3ZhciBTPVQlMjYsRj0oVC1TKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1GfHwhKHRoaXMud29yZHNbRl0mMTw8UykpfSxOLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24o''@;'; put 'put ''VCl7WSgibnVtYmVyIj09dHlwZW9mIFQmJlQ+PTApO3ZhciBTPVQlMjYsRj0oVC1TKS8yNjtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PUY/dGhpczooMCE9PVMmJkYrKyx0aGlzLmxlbmd0''@;'; put 'put ''aD1NYXRoLm1pbihGLHRoaXMubGVuZ3RoKSwwIT09UyYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+Uzw8UyksdGhpcy5fc3RyaXAoKSl9LE4ucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKFQpfSxO''@;'; put 'put ''LnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihUKXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIFQpLFkoVDw2NzEwODg2NCksVDwwP3RoaXMuaXN1Ym4oLVQpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8PVQ/KHRoaXMud29yZHNbMF09VC0o''@;'; put 'put ''MHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKFQpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihUKX0sTi5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKFQpe3RoaXMud29yZHNbMF0rPVQ7Zm9yKHZhciBT''@;'; put 'put ''PTA7Uzx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tTXT49NjcxMDg4NjQ7UysrKXRoaXMud29yZHNbU10tPTY3MTA4ODY0LFM9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbUysxXT0xOnRoaXMud29yZHNbUysxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxT''@;'; put 'put ''KzEpLHRoaXN9LE4ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKFQpe2lmKFkoIm51bWJlciI9PXR5cGVvZiBUKSxZKFQ8NjcxMDg4NjQpLFQ8MClyZXR1cm4gdGhpcy5pYWRkbigtVCk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKFQpLHRo''@;'; put 'put ''aXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPVQsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFM9MDtTPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1NdPDA7''@;'; put 'put ''UysrKXRoaXMud29yZHNbU10rPTY3MTA4ODY0LHRoaXMud29yZHNbUysxXS09MTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sTi5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKFQpfSxOLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKFQpe3JldHVybiB0''@;'; put 'put ''aGlzLmNsb25lKCkuaXN1Ym4oVCl9LE4ucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LE4ucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxOLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rp''@;'; put 'put ''b24oVCxTLEYpe3ZhciB5ZSxDZTt0aGlzLl9leHBhbmQoVC5sZW5ndGgrRik7dmFyIFBlPTA7Zm9yKHllPTA7eWU8VC5sZW5ndGg7eWUrKyl7Q2U9KDB8dGhpcy53b3Jkc1t5ZStGXSkrUGU7dmFyIFFlPSgwfFQud29yZHNbeWVdKSpTO1BlPSgoQ2UtPTY3MTA4ODYzJlFlKT4+MjYpLShRZS82''@;'; put 'put ''NzEwODg2NHwwKSx0aGlzLndvcmRzW3llK0ZdPTY3MTA4ODYzJkNlfWZvcig7eWU8dGhpcy5sZW5ndGgtRjt5ZSsrKVBlPShDZT0oMHx0aGlzLndvcmRzW3llK0ZdKStQZSk+PjI2LHRoaXMud29yZHNbeWUrRl09NjcxMDg4NjMmQ2U7aWYoMD09PVBlKXJldHVybiB0aGlzLl9zdHJpcCgpO2Zv''@;'; put 'put ''cihZKC0xPT09UGUpLFBlPTAseWU9MDt5ZTx0aGlzLmxlbmd0aDt5ZSsrKVBlPShDZT0tKDB8dGhpcy53b3Jkc1t5ZV0pK1BlKT4+MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmQ2U7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLl9zdHJpcCgpfSxOLnByb3RvdHlwZS5fd29yZERpdj1m''@;'; put 'put ''dW5jdGlvbihULFMpe3ZhciBGLHllPXRoaXMuY2xvbmUoKSxDZT1ULERlPTB8Q2Uud29yZHNbQ2UubGVuZ3RoLTFdOzAhPShGPTI2LXRoaXMuX2NvdW50Qml0cyhEZSkpJiYoQ2U9Q2UudXNobG4oRikseWUuaXVzaGxuKEYpLERlPTB8Q2Uud29yZHNbQ2UubGVuZ3RoLTFdKTt2YXIgUGUsUWU9''@;'; put 'put ''eWUubGVuZ3RoLUNlLmxlbmd0aDtpZigibW9kIiE9PVMpeyhQZT1uZXcgTihudWxsKSkubGVuZ3RoPVFlKzEsUGUud29yZHM9bmV3IEFycmF5KFBlLmxlbmd0aCk7Zm9yKHZhciAkZT0wOyRlPFBlLmxlbmd0aDskZSsrKVBlLndvcmRzWyRlXT0wfXZhciBndD15ZS5jbG9uZSgpLl9pc2hsbnN1''@;'; put 'put ''Ym11bChDZSwxLFFlKTswPT09Z3QubmVnYXRpdmUmJih5ZT1ndCxQZSYmKFBlLndvcmRzW1FlXT0xKSk7Zm9yKHZhciB3dD1RZS0xO3d0Pj0wO3d0LS0pe3ZhciBtdD02NzEwODg2NCooMHx5ZS53b3Jkc1tDZS5sZW5ndGgrd3RdKSsoMHx5ZS53b3Jkc1tDZS5sZW5ndGgrd3QtMV0pO2Zvciht''@;'; put 'put ''dD1NYXRoLm1pbihtdC9EZXwwLDY3MTA4ODYzKSx5ZS5faXNobG5zdWJtdWwoQ2UsbXQsd3QpOzAhPT15ZS5uZWdhdGl2ZTspbXQtLSx5ZS5uZWdhdGl2ZT0wLHllLl9pc2hsbnN1Ym11bChDZSwxLHd0KSx5ZS5pc1plcm8oKXx8KHllLm5lZ2F0aXZlXj0xKTtQZSYmKFBlLndvcmRzW3d0XT1t''@;'; put 'put ''dCl9cmV0dXJuIFBlJiZQZS5fc3RyaXAoKSx5ZS5fc3RyaXAoKSwiZGl2IiE9PVMmJjAhPT1GJiZ5ZS5pdXNocm4oRikse2RpdjpQZXx8bnVsbCxtb2Q6eWV9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oVCxTLEYpe3JldHVybiBZKCFULmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tk''@;'; put 'put ''aXY6bmV3IE4oMCksbW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PVQubmVnYXRpdmU/KERlPXRoaXMubmVnKCkuZGl2bW9kKFQsUyksIm1vZCIhPT1TJiYoeWU9RGUuZGl2Lm5lZygpKSwiZGl2IiE9PVMmJihDZT1EZS5tb2QubmVnKCksRiYmMCE9PUNlLm5lZ2F0aXZlJiZD''@;'; put 'put ''ZS5pYWRkKFQpKSx7ZGl2OnllLG1vZDpDZX0pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09VC5uZWdhdGl2ZT8oRGU9dGhpcy5kaXZtb2QoVC5uZWcoKSxTKSwibW9kIiE9PVMmJih5ZT1EZS5kaXYubmVnKCkpLHtkaXY6eWUsbW9kOkRlLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJlQubmVnYXRp''@;'; put 'put ''dmUpPyhEZT10aGlzLm5lZygpLmRpdm1vZChULm5lZygpLFMpLCJkaXYiIT09UyYmKENlPURlLm1vZC5uZWcoKSxGJiYwIT09Q2UubmVnYXRpdmUmJkNlLmlzdWIoVCkpLHtkaXY6RGUuZGl2LG1vZDpDZX0pOlQubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcChUKTwwP3tkaXY6bmV3IE4o''@;'; put 'put ''MCksbW9kOnRoaXN9OjE9PT1ULmxlbmd0aD8iZGl2Ij09PVM/e2Rpdjp0aGlzLmRpdm4oVC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09Uz97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kcm4oVC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihULndvcmRzWzBdKSxtb2Q6bmV3IE4o''@;'; put 'put ''dGhpcy5tb2RybihULndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoVCxTKTt2YXIgeWUsQ2UsRGV9LE4ucHJvdG90eXBlLmRpdj1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5kaXZtb2QoVCwiZGl2IiwhMSkuZGl2fSxOLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuZGl2''@;'; put 'put ''bW9kKFQsIm1vZCIsITEpLm1vZH0sTi5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5kaXZtb2QoVCwibW9kIiwhMCkubW9kfSxOLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihUKXt2YXIgUz10aGlzLmRpdm1vZChUKTtpZihTLm1vZC5pc1plcm8oKSlyZXR1cm4g''@;'; put 'put ''Uy5kaXY7dmFyIEY9MCE9PVMuZGl2Lm5lZ2F0aXZlP1MubW9kLmlzdWIoVCk6Uy5tb2QseWU9VC51c2hybigxKSxDZT1ULmFuZGxuKDEpLERlPUYuY21wKHllKTtyZXR1cm4gRGU8MHx8MT09PUNlJiYwPT09RGU/Uy5kaXY6MCE9PVMuZGl2Lm5lZ2F0aXZlP1MuZGl2LmlzdWJuKDEpOlMuZGl2''@;'; put 'put ''LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2Rybj1mdW5jdGlvbihUKXt2YXIgUz1UPDA7UyYmKFQ9LVQpLFkoVDw9NjcxMDg4NjMpO2Zvcih2YXIgRj02NzEwODg2NCVULHllPTAsQ2U9dGhpcy5sZW5ndGgtMTtDZT49MDtDZS0tKXllPShGKnllKygwfHRoaXMud29yZHNbQ2VdKSklVDtyZXR1''@;'; put 'put ''cm4gUz8teWU6eWV9LE4ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMubW9kcm4oVCl9LE4ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKFQpe3ZhciBTPVQ8MDtTJiYoVD0tVCksWShUPD02NzEwODg2Myk7Zm9yKHZhciBGPTAseWU9dGhpcy5sZW5ndGgtMTt5ZT49MDt5''@;'; put 'put ''ZS0tKXt2YXIgQ2U9KDB8dGhpcy53b3Jkc1t5ZV0pKzY3MTA4ODY0KkY7dGhpcy53b3Jkc1t5ZV09Q2UvVHwwLEY9Q2UlVH1yZXR1cm4gdGhpcy5fc3RyaXAoKSxTP3RoaXMuaW5lZygpOnRoaXN9LE4ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2''@;'; put 'put ''bihUKX0sTi5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihUKXtZKDA9PT1ULm5lZ2F0aXZlKSxZKCFULmlzWmVybygpKTt2YXIgUz10aGlzLEY9VC5jbG9uZSgpO1M9MCE9PVMubmVnYXRpdmU/Uy51bW9kKFQpOlMuY2xvbmUoKTtmb3IodmFyIHllPW5ldyBOKDEpLENlPW5ldyBOKDApLERlPW5l''@;'; put 'put ''dyBOKDApLFBlPW5ldyBOKDEpLFFlPTA7Uy5pc0V2ZW4oKSYmRi5pc0V2ZW4oKTspUy5pdXNocm4oMSksRi5pdXNocm4oMSksKytRZTtmb3IodmFyICRlPUYuY2xvbmUoKSxndD1TLmNsb25lKCk7IVMuaXNaZXJvKCk7KXtmb3IodmFyIHd0PTAsbXQ9MTswPT0oUy53b3Jkc1swXSZtdCkmJnd0''@;'; put 'put ''PDI2Oysrd3QsbXQ8PD0xKTtpZih3dD4wKWZvcihTLml1c2hybih3dCk7d3QtLSA+MDspKHllLmlzT2RkKCl8fENlLmlzT2RkKCkpJiYoeWUuaWFkZCgkZSksQ2UuaXN1YihndCkpLHllLml1c2hybigxKSxDZS5pdXNocm4oMSk7Zm9yKHZhciB2dD0wLEF0PTE7MD09KEYud29yZHNbMF0mQXQp''@;'; put 'put ''JiZ2dDwyNjsrK3Z0LEF0PDw9MSk7aWYodnQ+MClmb3IoRi5pdXNocm4odnQpO3Z0LS0gPjA7KShEZS5pc09kZCgpfHxQZS5pc09kZCgpKSYmKERlLmlhZGQoJGUpLFBlLmlzdWIoZ3QpKSxEZS5pdXNocm4oMSksUGUuaXVzaHJuKDEpO1MuY21wKEYpPj0wPyhTLmlzdWIoRikseWUuaXN1YihE''@;'; put 'put ''ZSksQ2UuaXN1YihQZSkpOihGLmlzdWIoUyksRGUuaXN1Yih5ZSksUGUuaXN1YihDZSkpfXJldHVybnthOkRlLGI6UGUsZ2NkOkYuaXVzaGxuKFFlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihUKXtZKDA9PT1ULm5lZ2F0aXZlKSxZKCFULmlzWmVybygpKTt2YXIgUz10aGlzLEY9''@;'; put 'put ''VC5jbG9uZSgpO1M9MCE9PVMubmVnYXRpdmU/Uy51bW9kKFQpOlMuY2xvbmUoKTtmb3IodmFyIHllLENlPW5ldyBOKDEpLERlPW5ldyBOKDApLFBlPUYuY2xvbmUoKTtTLmNtcG4oMSk+MCYmRi5jbXBuKDEpPjA7KXtmb3IodmFyIFFlPTAsJGU9MTswPT0oUy53b3Jkc1swXSYkZSkmJlFlPDI2''@;'; put 'put ''OysrUWUsJGU8PD0xKTtpZihRZT4wKWZvcihTLml1c2hybihRZSk7UWUtLSA+MDspQ2UuaXNPZGQoKSYmQ2UuaWFkZChQZSksQ2UuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShGLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lmKGd0PjApZm9yKEYuaXVzaHJuKGd0''@;'; put 'put ''KTtndC0tID4wOylEZS5pc09kZCgpJiZEZS5pYWRkKFBlKSxEZS5pdXNocm4oMSk7Uy5jbXAoRik+PTA/KFMuaXN1YihGKSxDZS5pc3ViKERlKSk6KEYuaXN1YihTKSxEZS5pc3ViKENlKSl9cmV0dXJuKHllPTA9PT1TLmNtcG4oMSk/Q2U6RGUpLmNtcG4oMCk8MCYmeWUuaWFkZChUKSx5ZX0s''@;'; put 'put ''Ti5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKFQpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIFQuYWJzKCk7aWYoVC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUz10aGlzLmNsb25lKCksRj1ULmNsb25lKCk7Uy5uZWdhdGl2ZT0wLEYubmVnYXRpdmU9MDtmb3IodmFyIHllPTA7Uy5p''@;'; put 'put ''c0V2ZW4oKSYmRi5pc0V2ZW4oKTt5ZSsrKVMuaXVzaHJuKDEpLEYuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtTLmlzRXZlbigpOylTLml1c2hybigxKTtmb3IoO0YuaXNFdmVuKCk7KUYuaXVzaHJuKDEpO3ZhciBDZT1TLmNtcChGKTtpZihDZTwwKXt2YXIgRGU9UztTPUYsRj1EZX1lbHNlIGlm''@;'; put 'put ''KDA9PT1DZXx8MD09PUYuY21wbigxKSlicmVhaztTLmlzdWIoRil9cmV0dXJuIEYuaXVzaGxuKHllKX0sTi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihUKXtyZXR1cm4gdGhpcy5lZ2NkKFQpLmEudW1vZChUKX0sTi5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRo''@;'; put 'put ''aXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMud29yZHNbMF0mVH0sTi5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oVCl7WSgibnVtYmVy''@;'; put 'put ''Ij09dHlwZW9mIFQpO3ZhciBTPVQlMjYsRj0oVC1TKS8yNix5ZT0xPDxTO2lmKHRoaXMubGVuZ3RoPD1GKXJldHVybiB0aGlzLl9leHBhbmQoRisxKSx0aGlzLndvcmRzW0ZdfD15ZSx0aGlzO2Zvcih2YXIgQ2U9eWUsRGU9RjswIT09Q2UmJkRlPHRoaXMubGVuZ3RoO0RlKyspe3ZhciBQZT0w''@;'; put 'put ''fHRoaXMud29yZHNbRGVdO0NlPShQZSs9Q2UpPj4+MjYsdGhpcy53b3Jkc1tEZV09UGUmPTY3MTA4ODYzfXJldHVybiAwIT09Q2UmJih0aGlzLndvcmRzW0RlXT1DZSx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVu''@;'; put 'put ''Z3RoJiYwPT09dGhpcy53b3Jkc1swXX0sTi5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihUKXt2YXIgUyxGPVQ8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIUYpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJkYpcmV0dXJuIDE7aWYodGhpcy5fc3RyaXAoKSx0aGlzLmxlbmd0aD4xKVM9''@;'; put 'put ''MTtlbHNle0YmJihUPS1UKSxZKFQ8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciB5ZT0wfHRoaXMud29yZHNbMF07Uz15ZT09PVQ/MDp5ZTxUPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVM6U30sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKFQpe2lmKDAhPT10''@;'; put 'put ''aGlzLm5lZ2F0aXZlJiYwPT09VC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PVQubmVnYXRpdmUpcmV0dXJuIDE7dmFyIFM9dGhpcy51Y21wKFQpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1TOlN9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oVCl7''@;'; put 'put ''aWYodGhpcy5sZW5ndGg+VC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8VC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBTPTAsRj10aGlzLmxlbmd0aC0xO0Y+PTA7Ri0tKXt2YXIgeWU9MHx0aGlzLndvcmRzW0ZdLENlPTB8VC53b3Jkc1tGXTtpZih5ZSE9PUNlKXt5ZTxDZT9TPS0x''@;'; put 'put ''OnllPkNlJiYoUz0xKTticmVha319cmV0dXJuIFN9LE4ucHJvdG90eXBlLmd0bj1mdW5jdGlvbihUKXtyZXR1cm4gMT09PXRoaXMuY21wbihUKX0sTi5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oVCl7cmV0dXJuIDE9PT10aGlzLmNtcChUKX0sTi5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihUKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5jbXBuKFQpPj0wfSxOLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY21wKFQpPj0wfSxOLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oVCl7cmV0dXJuLTE9PT10aGlzLmNtcG4oVCl9LE4ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKFQpe3JldHVybi0xPT09''@;'; put 'put ''dGhpcy5jbXAoVCl9LE4ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMuY21wbihUKTw9MH0sTi5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmNtcChUKTw9MH0sTi5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKFQpe3JldHVybiAwPT09dGhpcy5jbXBu''@;'; put 'put ''KFQpfSxOLnByb3RvdHlwZS5lcT1mdW5jdGlvbihUKXtyZXR1cm4gMD09PXRoaXMuY21wKFQpfSxOLnJlZD1mdW5jdGlvbihUKXtyZXR1cm4gbmV3IFAoVCl9LE4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKFQpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1''@;'; put 'put ''Y3Rpb24gY29udGV4dCIpLFkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksVC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKFQpfSxOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mg''@;'; put 'put ''b25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sTi5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLnJlZD1ULHRoaXN9LE4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKFQpe3JldHVy''@;'; put 'put ''biBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKFQpfSxOLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oVCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlz''@;'; put 'put ''LnJlZC5hZGQodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbihUKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsVCl9LE4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbihUKXtyZXR1''@;'; put 'put ''cm4gWSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLFQpfSxOLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRo''@;'; put 'put ''aXMucmVkLmlzdWIodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKFQpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsVCl9LE4ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbihUKXtyZXR1''@;'; put 'put ''cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsVCksdGhpcy5yZWQubXVsKHRoaXMsVCl9LE4ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oVCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBv''@;'; put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLFQpLHRoaXMucmVkLmltdWwodGhpcyxUKX0sTi5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJl''@;'; put 'put ''ZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRo''@;'; put 'put ''aXMpfSxOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTi5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LE4ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWROZWcgd29y''@;'; put 'put ''a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oVCl7cmV0dXJuIFkodGhpcy5yZWQmJiFULnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5''@;'; put 'put ''MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxUKX07dmFyIGhlPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gTyhULFMpe3RoaXMubmFtZT1ULHRoaXMucD1uZXcgTihTLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcg''@;'; put 'put ''TigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24geigpe08uY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5j''@;'; put 'put ''dGlvbiBlZSgpe08uY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBuZSgpe08uY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUg''@;'; put 'put ''ZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB4KCl7Ty5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIFAoVCl7aWYoInN0cmluZyI9PXR5cGVvZiBUKXt2YXIg''@;'; put 'put ''Uz1OLl9wcmltZShUKTt0aGlzLm09Uy5wLHRoaXMucHJpbWU9U31lbHNlIFkoVC5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1ULHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBWKFQpe1AuY2FsbCh0aGlzLFQpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExl''@;'; put 'put ''bmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IE4oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9''@;'; put 'put ''dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9Ty5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBUPW5ldyBOKG51bGwpO3JldHVybiBULndv''@;'; put 'put ''cmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksVH0sTy5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihUKXt2YXIgUyxGPVQ7ZG97dGhpcy5zcGxpdChGLHRoaXMudG1wKSxTPShGPShGPXRoaXMuaW11bEsoRikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShT''@;'; put 'put ''PnRoaXMubik7dmFyIHllPVM8dGhpcy5uPy0xOkYudWNtcCh0aGlzLnApO3JldHVybiAwPT09eWU/KEYud29yZHNbMF09MCxGLmxlbmd0aD0xKTp5ZT4wP0YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PUYuc3RyaXA/Ri5zdHJpcCgpOkYuX3N0cmlwKCksRn0sTy5wcm90b3R5cGUuc3BsaXQ9ZnVu''@;'; put 'put ''Y3Rpb24oVCxTKXtULml1c2hybih0aGlzLm4sMCxTKX0sTy5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oVCl7cmV0dXJuIFQuaW11bCh0aGlzLmspfSxXKHosTyksei5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oVCxTKXtmb3IodmFyIEY9NDE5NDMwMyx5ZT1NYXRoLm1pbihULmxlbmd0aCw5''@;'; put 'put ''KSxDZT0wO0NlPHllO0NlKyspUy53b3Jkc1tDZV09VC53b3Jkc1tDZV07aWYoUy5sZW5ndGg9eWUsVC5sZW5ndGg8PTkpcmV0dXJuIFQud29yZHNbMF09MCx2b2lkKFQubGVuZ3RoPTEpO3ZhciBEZT1ULndvcmRzWzldO2ZvcihTLndvcmRzW1MubGVuZ3RoKytdPURlJkYsQ2U9MTA7Q2U8VC5s''@;'; put 'put ''ZW5ndGg7Q2UrKyl7dmFyIFBlPTB8VC53b3Jkc1tDZV07VC53b3Jkc1tDZS0xMF09KFBlJkYpPDw0fERlPj4+MjIsRGU9UGV9VC53b3Jkc1tDZS0xMF09RGU+Pj49MjIsVC5sZW5ndGgtPTA9PT1EZSYmVC5sZW5ndGg+MTA/MTA6OX0sei5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oVCl7VC53''@;'; put 'put ''b3Jkc1tULmxlbmd0aF09MCxULndvcmRzW1QubGVuZ3RoKzFdPTAsVC5sZW5ndGgrPTI7Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXt2YXIgeWU9MHxULndvcmRzW0ZdO1Qud29yZHNbRl09NjcxMDg4NjMmKFMrPTk3Nyp5ZSksUz02NCp5ZSsoUy82NzEwODg2NHwwKX1yZXR1cm4g''@;'; put 'put ''MD09PVQud29yZHNbVC5sZW5ndGgtMV0mJihULmxlbmd0aC0tLDA9PT1ULndvcmRzW1QubGVuZ3RoLTFdJiZULmxlbmd0aC0tKSxUfSxXKGVlLE8pLFcobmUsTyksVyh4LE8pLHgucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKFQpe2Zvcih2YXIgUz0wLEY9MDtGPFQubGVuZ3RoO0YrKyl7dmFy''@;'; put 'put ''IHllPTE5KigwfFQud29yZHNbRl0pK1MsQ2U9NjcxMDg4NjMmeWU7eWU+Pj49MjYsVC53b3Jkc1tGXT1DZSxTPXllfXJldHVybiAwIT09UyYmKFQud29yZHNbVC5sZW5ndGgrK109UyksVH0sTi5fcHJpbWU9ZnVuY3Rpb24oVCl7aWYoaGVbVF0pcmV0dXJuIGhlW1RdO3ZhciBTO2lmKCJrMjU2''@;'; put 'put ''Ij09PVQpUz1uZXcgejtlbHNlIGlmKCJwMjI0Ij09PVQpUz1uZXcgZWU7ZWxzZSBpZigicDE5MiI9PT1UKVM9bmV3IG5lO2Vsc2V7aWYoInAyNTUxOSIhPT1UKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK1QpO1M9bmV3IHh9cmV0dXJuIGhlW1RdPVMsU30sUC5wcm90b3R5cGUu''@;'; put 'put ''X3ZlcmlmeTE9ZnVuY3Rpb24oVCl7WSgwPT09VC5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKFQucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFAucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKFQsUyl7WSgwPT0oVC5uZWdhdGl2''@;'; put 'put ''ZXxTLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKFQucmVkJiZULnJlZD09PVMucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFAucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5p''@;'; put 'put ''cmVkdWNlKFQpLl9mb3JjZVJlZCh0aGlzKToob2UoVCxULnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcykpLFQpfSxQLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oVCl7cmV0dXJuIFQuaXNaZXJvKCk/VC5jbG9uZSgpOnRoaXMubS5zdWIoVCkuX2ZvcmNlUmVkKHRoaXMpfSxQLnByb3RvdHlw''@;'; put 'put ''ZS5hZGQ9ZnVuY3Rpb24oVCxTKXt0aGlzLl92ZXJpZnkyKFQsUyk7dmFyIEY9VC5hZGQoUyk7cmV0dXJuIEYuY21wKHRoaXMubSk+PTAmJkYuaXN1Yih0aGlzLm0pLEYuX2ZvcmNlUmVkKHRoaXMpfSxQLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKFQsUyl7dGhpcy5fdmVyaWZ5MihULFMpO3Zh''@;'; put 'put ''ciBGPVQuaWFkZChTKTtyZXR1cm4gRi5jbXAodGhpcy5tKT49MCYmRi5pc3ViKHRoaXMubSksRn0sUC5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKFQsUyl7dGhpcy5fdmVyaWZ5MihULFMpO3ZhciBGPVQuc3ViKFMpO3JldHVybiBGLmNtcG4oMCk8MCYmRi5pYWRkKHRoaXMubSksRi5fZm9yY2VS''@;'; put 'put ''ZWQodGhpcyl9LFAucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oVCxTKXt0aGlzLl92ZXJpZnkyKFQsUyk7dmFyIEY9VC5pc3ViKFMpO3JldHVybiBGLmNtcG4oMCk8MCYmRi5pYWRkKHRoaXMubSksRn0sUC5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKFQsUyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEo''@;'; put 'put ''VCksdGhpcy5pbW9kKFQudXNobG4oUykpfSxQLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKFQsUyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoVCxTKSx0aGlzLmltb2QoVC5pbXVsKFMpKX0sUC5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFQsUyl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoVCxTKSx0aGlz''@;'; put 'put ''Lmltb2QoVC5tdWwoUykpfSxQLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmltdWwoVCxULmNsb25lKCkpfSxQLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oVCl7cmV0dXJuIHRoaXMubXVsKFQsVCl9LFAucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oVCl7aWYoVC5pc1pl''@;'; put 'put ''cm8oKSlyZXR1cm4gVC5jbG9uZSgpO3ZhciBTPXRoaXMubS5hbmRsbigzKTtpZihZKFMlMj09MSksMz09PVMpe3ZhciBGPXRoaXMubS5hZGQobmV3IE4oMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coVCxGKX1mb3IodmFyIHllPXRoaXMubS5zdWJuKDEpLENlPTA7IXllLmlzWmVybygp''@;'; put 'put ''JiYwPT09eWUuYW5kbG4oMSk7KUNlKysseWUuaXVzaHJuKDEpO1koIXllLmlzWmVybygpKTt2YXIgRGU9bmV3IE4oMSkudG9SZWQodGhpcyksUGU9RGUucmVkTmVnKCksUWU9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLCRlPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoJGU9bmV3IE4oMiokZSok''@;'; put 'put ''ZSkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KCRlLFFlKS5jbXAoUGUpOykkZS5yZWRJQWRkKFBlKTtmb3IodmFyIGd0PXRoaXMucG93KCRlLHllKSx3dD10aGlzLnBvdyhULHllLmFkZG4oMSkuaXVzaHJuKDEpKSxtdD10aGlzLnBvdyhULHllKSx2dD1DZTswIT09bXQuY21wKERlKTspe2Zv''@;'; put 'put ''cih2YXIgQXQ9bXQsaHQ9MDswIT09QXQuY21wKERlKTtodCsrKUF0PUF0LnJlZFNxcigpO1koaHQ8dnQpO3ZhciBCdD10aGlzLnBvdyhndCxuZXcgTigxKS5pdXNobG4odnQtaHQtMSkpO3d0PXd0LnJlZE11bChCdCksZ3Q9QnQucmVkU3FyKCksbXQ9bXQucmVkTXVsKGd0KSx2dD1odH1yZXR1''@;'; put 'put ''cm4gd3R9LFAucHJvdG90eXBlLmludm09ZnVuY3Rpb24oVCl7dmFyIFM9VC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVMubmVnYXRpdmU/KFMubmVnYXRpdmU9MCx0aGlzLmltb2QoUykucmVkTmVnKCkpOnRoaXMuaW1vZChTKX0sUC5wcm90b3R5cGUucG93PWZ1bmN0aW9uKFQsUyl7aWYo''@;'; put 'put ''Uy5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVMuY21wbigxKSlyZXR1cm4gVC5jbG9uZSgpO3ZhciBGPW5ldyBBcnJheSgxNik7RlswXT1uZXcgTigxKS50b1JlZCh0aGlzKSxGWzFdPVQ7Zm9yKHZhciB5ZT0yO3llPEYubGVuZ3RoO3llKyspRlt5ZV09dGhp''@;'; put 'put ''cy5tdWwoRlt5ZS0xXSxUKTt2YXIgQ2U9RlswXSxEZT0wLFBlPTAsUWU9Uy5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVFlJiYoUWU9MjYpLHllPVMubGVuZ3RoLTE7eWU+PTA7eWUtLSl7Zm9yKHZhciAkZT1TLndvcmRzW3llXSxndD1RZS0xO2d0Pj0wO2d0LS0pe3ZhciB3dD0kZT4+Z3QmMTtD''@;'; put 'put ''ZSE9PUZbMF0mJihDZT10aGlzLnNxcihDZSkpLDAhPT13dHx8MCE9PURlPyhEZTw8PTEsRGV8PXd0LCg0PT0rK1BlfHwwPT09eWUmJjA9PT1ndCkmJihDZT10aGlzLm11bChDZSxGW0RlXSksUGU9MCxEZT0wKSk6UGU9MH1RZT0yNn1yZXR1cm4gQ2V9LFAucHJvdG90eXBlLmNvbnZlcnRUbz1m''@;'; put 'put ''dW5jdGlvbihUKXt2YXIgUz1ULnVtb2QodGhpcy5tKTtyZXR1cm4gUz09PVQ/Uy5jbG9uZSgpOlN9LFAucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKFQpe3ZhciBTPVQuY2xvbmUoKTtyZXR1cm4gUy5yZWQ9bnVsbCxTfSxOLm1vbnQ9ZnVuY3Rpb24oVCl7cmV0dXJuIG5ldyBWKFQp''@;'; put 'put ''fSxXKFYsUCksVi5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKFQpe3JldHVybiB0aGlzLmltb2QoVC51c2hsbih0aGlzLnNoaWZ0KSl9LFYucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKFQpe3ZhciBTPXRoaXMuaW1vZChULm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gUy5yZWQ9''@;'; put 'put ''bnVsbCxTfSxWLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKFQsUyl7aWYoVC5pc1plcm8oKXx8Uy5pc1plcm8oKSlyZXR1cm4gVC53b3Jkc1swXT0wLFQubGVuZ3RoPTEsVDt2YXIgRj1ULmltdWwoUykseWU9Ri5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5z''@;'; put 'put ''aGlmdCkubXVsKHRoaXMubSksQ2U9Ri5pc3ViKHllKS5pdXNocm4odGhpcy5zaGlmdCksRGU9Q2U7cmV0dXJuIENlLmNtcCh0aGlzLm0pPj0wP0RlPUNlLmlzdWIodGhpcy5tKTpDZS5jbXBuKDApPDAmJihEZT1DZS5pYWRkKHRoaXMubSkpLERlLl9mb3JjZVJlZCh0aGlzKX0sVi5wcm90b3R5''@;'; put 'put ''cGUubXVsPWZ1bmN0aW9uKFQsUyl7aWYoVC5pc1plcm8oKXx8Uy5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBGPVQubXVsKFMpLHllPUYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLENl''@;'; put 'put ''PUYuaXN1Yih5ZSkuaXVzaHJuKHRoaXMuc2hpZnQpLERlPUNlO3JldHVybiBDZS5jbXAodGhpcy5tKT49MD9EZT1DZS5pc3ViKHRoaXMubSk6Q2UuY21wbigwKTwwJiYoRGU9Q2UuaWFkZCh0aGlzLm0pKSxEZS5fZm9yY2VSZWQodGhpcyl9LFYucHJvdG90eXBlLmludm09ZnVuY3Rpb24oVCl7''@;'; put 'put ''cmV0dXJuIHRoaXMuaW1vZChULl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oVT1qLm5tZChVKSx0aGlzKX0sMzY0NDooVSxRLGopPT57dmFyIHJlPWooMTA0OCksYWU9aig1NjIzKTtVLmV4cG9ydHM9ZnVuY3Rpb24oU2Upe3JldHVybiBTZT8oInt9Ij09''@;'; put 'put ''PVNlLnN1YnN0cigwLDIpJiYoU2U9Ilxce1xcfSIrU2Uuc3Vic3RyKDIpKSxrZSgoSWU9U2UsSWUuc3BsaXQoIlxcXFwiKS5qb2luKFkpLnNwbGl0KCJcXHsiKS5qb2luKFcpLnNwbGl0KCJcXH0iKS5qb2luKE4pLnNwbGl0KCJcXCwiKS5qb2luKHRlKS5zcGxpdCgiXFwuIikuam9pbihLKSks''@;'; put 'put ''ITApLm1hcChzZSkpOltdO3ZhciBJZX07dmFyIFk9IlwwU0xBU0giK01hdGgucmFuZG9tKCkrIlwwIixXPSJcME9QRU4iK01hdGgucmFuZG9tKCkrIlwwIixOPSJcMENMT1NFIitNYXRoLnJhbmRvbSgpKyJcMCIsdGU9IlwwQ09NTUEiK01hdGgucmFuZG9tKCkrIlwwIixLPSJcMFBFUklPRCIr''@;'; put 'put ''TWF0aC5yYW5kb20oKSsiXDAiO2Z1bmN0aW9uIEooU2Upe3JldHVybiBwYXJzZUludChTZSwxMCk9PVNlP3BhcnNlSW50KFNlLDEwKTpTZS5jaGFyQ29kZUF0KDApfWZ1bmN0aW9uIHNlKFNlKXtyZXR1cm4gU2Uuc3BsaXQoWSkuam9pbigiXFwiKS5zcGxpdChXKS5qb2luKCJ7Iikuc3BsaXQo''@;'; put 'put ''Tikuam9pbigifSIpLnNwbGl0KHRlKS5qb2luKCIsIikuc3BsaXQoSykuam9pbigiLiIpfWZ1bmN0aW9uIG9lKFNlKXtpZighU2UpcmV0dXJuWyIiXTt2YXIgSWU9W10sVGU9YWUoInsiLCJ9IixTZSk7aWYoIVRlKXJldHVybiBTZS5zcGxpdCgiLCIpO3ZhciBoZT1UZS5ib2R5LE89VGUucG9z''@;'; put 'put ''dCx6PVRlLnByZS5zcGxpdCgiLCIpO3pbei5sZW5ndGgtMV0rPSJ7IitoZSsifSI7dmFyIGVlPW9lKE8pO3JldHVybiBPLmxlbmd0aCYmKHpbei5sZW5ndGgtMV0rPWVlLnNoaWZ0KCksei5wdXNoLmFwcGx5KHosZWUpKSxJZS5wdXNoLmFwcGx5KEllLHopLEllfWZ1bmN0aW9uIGNlKFNlKXty''@;'; put 'put ''ZXR1cm4ieyIrU2UrIn0ifWZ1bmN0aW9uIGRlKFNlKXtyZXR1cm4vXi0/MFxkLy50ZXN0KFNlKX1mdW5jdGlvbiB2ZShTZSxJZSl7cmV0dXJuIFNlPD1JZX1mdW5jdGlvbiBBZShTZSxJZSl7cmV0dXJuIFNlPj1JZX1mdW5jdGlvbiBrZShTZSxJZSl7dmFyIFRlPVtdLE1lPWFlKCJ7IiwifSIs''@;'; put 'put ''U2UpO2lmKCFNZXx8L1wkJC8udGVzdChNZS5wcmUpKXJldHVybltTZV07dmFyIGhlLE89L14tP1xkK1wuXC4tP1xkKyg/OlwuXC4tP1xkKyk/JC8udGVzdChNZS5ib2R5KSx6PS9eW2EtekEtWl1cLlwuW2EtekEtWl0oPzpcLlwuLT9cZCspPyQvLnRlc3QoTWUuYm9keSksZWU9T3x8eixuZT1N''@;'; put 'put ''ZS5ib2R5LmluZGV4T2YoIiwiKT49MDtpZighZWUmJiFuZSlyZXR1cm4gTWUucG9zdC5tYXRjaCgvLC4qXH0vKT9rZShTZT1NZS5wcmUrInsiK01lLmJvZHkrTitNZS5wb3N0KTpbU2VdO2lmKGVlKWhlPU1lLmJvZHkuc3BsaXQoL1wuXC4vKTtlbHNlIGlmKDE9PT0oaGU9b2UoTWUuYm9keSkp''@;'; put 'put ''Lmxlbmd0aCYmMT09PShoZT1rZShoZVswXSwhMSkubWFwKGNlKSkubGVuZ3RoKXJldHVybihWPU1lLnBvc3QubGVuZ3RoP2tlKE1lLnBvc3QsITEpOlsiIl0pLm1hcChmdW5jdGlvbihBdCl7cmV0dXJuIE1lLnByZStoZVswXStBdH0pO3ZhciB4LFA9TWUucHJlLFY9TWUucG9zdC5sZW5ndGg/''@;'; put 'put ''a2UoTWUucG9zdCwhMSk6WyIiXTtpZihlZSl7dmFyIFQ9SihoZVswXSksUz1KKGhlWzFdKSxGPU1hdGgubWF4KGhlWzBdLmxlbmd0aCxoZVsxXS5sZW5ndGgpLHllPTM9PWhlLmxlbmd0aD9NYXRoLmFicyhKKGhlWzJdKSk6MSxDZT12ZTtTPFQmJih5ZSo9LTEsQ2U9QWUpO3ZhciBEZT1oZS5z''@;'; put 'put ''b21lKGRlKTt4PVtdO2Zvcih2YXIgUGU9VDtDZShQZSxTKTtQZSs9eWUpe3ZhciBRZTtpZih6KSJcXCI9PT0oUWU9U3RyaW5nLmZyb21DaGFyQ29kZShQZSkpJiYoUWU9IiIpO2Vsc2UgaWYoUWU9U3RyaW5nKFBlKSxEZSl7dmFyICRlPUYtUWUubGVuZ3RoO2lmKCRlPjApe3ZhciBndD1uZXcg''@;'; put 'put ''QXJyYXkoJGUrMSkuam9pbigiMCIpO1FlPVBlPDA/Ii0iK2d0K1FlLnNsaWNlKDEpOmd0K1FlfX14LnB1c2goUWUpfX1lbHNlIHg9cmUoaGUsZnVuY3Rpb24oQXQpe3JldHVybiBrZShBdCwhMSl9KTtmb3IodmFyIHd0PTA7d3Q8eC5sZW5ndGg7d3QrKylmb3IodmFyIG10PTA7bXQ8Vi5sZW5n''@;'; put 'put ''dGg7bXQrKyl7dmFyIHZ0PVAreFt3dF0rVlttdF07KCFJZXx8ZWV8fHZ0KSYmVGUucHVzaCh2dCl9cmV0dXJuIFRlfX0sOTkzMTooVSxRLGopPT57dmFyIHJlO2Z1bmN0aW9uIGFlKFcpe3RoaXMucmFuZD1XfWlmKFUuZXhwb3J0cz1mdW5jdGlvbihXKXtyZXR1cm4gcmV8fChyZT1uZXcgYWUo''@;'; put 'put ''bnVsbCkpLHJlLmdlbmVyYXRlKFcpfSxVLmV4cG9ydHMuUmFuZD1hZSxhZS5wcm90b3R5cGUuZ2VuZXJhdGU9ZnVuY3Rpb24oVyl7cmV0dXJuIHRoaXMuX3JhbmQoVyl9LGFlLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihXKXtpZih0aGlzLnJhbmQuZ2V0Qnl0ZXMpcmV0dXJuIHRoaXMucmFu''@;'; put 'put ''ZC5nZXRCeXRlcyhXKTtmb3IodmFyIE49bmV3IFVpbnQ4QXJyYXkoVyksdGU9MDt0ZTxOLmxlbmd0aDt0ZSsrKU5bdGVdPXRoaXMucmFuZC5nZXRCeXRlKCk7cmV0dXJuIE59LCJvYmplY3QiPT10eXBlb2Ygc2VsZilzZWxmLmNyeXB0byYmc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP2Fl''@;'; put 'put ''LnByb3RvdHlwZS5fcmFuZD1mdW5jdGlvbihXKXt2YXIgTj1uZXcgVWludDhBcnJheShXKTtyZXR1cm4gc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKE4pLE59OnNlbGYubXNDcnlwdG8mJnNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP2FlLnByb3RvdHlwZS5fcmFuZD1mdW5jdGlv''@;'; put 'put ''bihXKXt2YXIgTj1uZXcgVWludDhBcnJheShXKTtyZXR1cm4gc2VsZi5tc0NyeXB0by5nZXRSYW5kb21WYWx1ZXMoTiksTn06Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJihhZS5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCB5ZXQi''@;'; put 'put ''KX0pO2Vsc2UgdHJ5e3ZhciBZPWooOTIxNCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFkucmFuZG9tQnl0ZXMpdGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIik7YWUucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFcpe3JldHVybiBZLnJhbmRvbUJ5dGVzKFcpfX1jYXRjaChXKXt9fSw0''@;'; put 'put ''NDk3OihVLFEsaik9Pnt2YXIgcmU9aig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gYWUoSil7cmUuaXNCdWZmZXIoSil8fChKPXJlLmZyb20oSikpO2Zvcih2YXIgc2U9Si5sZW5ndGgvNHwwLG9lPW5ldyBBcnJheShzZSksY2U9MDtjZTxzZTtjZSsrKW9lW2NlXT1KLnJlYWRVSW50MzJCRSg0KmNl''@;'; put 'put ''KTtyZXR1cm4gb2V9ZnVuY3Rpb24gWShKKXtmb3IoOzA8Si5sZW5ndGg7SisrKUpbMF09MH1mdW5jdGlvbiBXKEosc2Usb2UsY2UsZGUpe2Zvcih2YXIgdmUsQWUsa2UsU2UsSWU9b2VbMF0sVGU9b2VbMV0sTWU9b2VbMl0saGU9b2VbM10sTz1KWzBdXnNlWzBdLHo9SlsxXV5zZVsxXSxlZT1K''@;'; put 'put ''WzJdXnNlWzJdLG5lPUpbM11ec2VbM10seD00LFA9MTtQPGRlO1ArKyl2ZT1JZVtPPj4+MjRdXlRlW3o+Pj4xNiYyNTVdXk1lW2VlPj4+OCYyNTVdXmhlWzI1NSZuZV1ec2VbeCsrXSxBZT1JZVt6Pj4+MjRdXlRlW2VlPj4+MTYmMjU1XV5NZVtuZT4+PjgmMjU1XV5oZVsyNTUmT11ec2VbeCsr''@;'; put 'put ''XSxrZT1JZVtlZT4+PjI0XV5UZVtuZT4+PjE2JjI1NV1eTWVbTz4+PjgmMjU1XV5oZVsyNTUmel1ec2VbeCsrXSxTZT1JZVtuZT4+PjI0XV5UZVtPPj4+MTYmMjU1XV5NZVt6Pj4+OCYyNTVdXmhlWzI1NSZlZV1ec2VbeCsrXSxPPXZlLHo9QWUsZWU9a2UsbmU9U2U7cmV0dXJuIHZlPShjZVtP''@;'; put 'put ''Pj4+MjRdPDwyNHxjZVt6Pj4+MTYmMjU1XTw8MTZ8Y2VbZWU+Pj44JjI1NV08PDh8Y2VbMjU1Jm5lXSlec2VbeCsrXSxBZT0oY2Vbej4+PjI0XTw8MjR8Y2VbZWU+Pj4xNiYyNTVdPDwxNnxjZVtuZT4+PjgmMjU1XTw8OHxjZVsyNTUmT10pXnNlW3grK10sa2U9KGNlW2VlPj4+MjRdPDwyNHxj''@;'; put 'put ''ZVtuZT4+PjE2JjI1NV08PDE2fGNlW08+Pj44JjI1NV08PDh8Y2VbMjU1JnpdKV5zZVt4KytdLFNlPShjZVtuZT4+PjI0XTw8MjR8Y2VbTz4+PjE2JjI1NV08PDE2fGNlW3o+Pj44JjI1NV08PDh8Y2VbMjU1JmVlXSlec2VbeCsrXSxbdmU+Pj49MCxBZT4+Pj0wLGtlPj4+PTAsU2U+Pj49MF19''@;'; put 'put ''dmFyIE49WzAsMSwyLDQsOCwxNiwzMiw2NCwxMjgsMjcsNTRdLHRlPWZ1bmN0aW9uKCl7Zm9yKHZhciBKPW5ldyBBcnJheSgyNTYpLHNlPTA7c2U8MjU2O3NlKyspSltzZV09c2U8MTI4P3NlPDwxOnNlPDwxXjI4Mztmb3IodmFyIG9lPVtdLGNlPVtdLGRlPVtbXSxbXSxbXSxbXV0sdmU9W1td''@;'; put 'put ''LFtdLFtdLFtdXSxBZT0wLGtlPTAsU2U9MDtTZTwyNTY7KytTZSl7dmFyIEllPWtlXmtlPDwxXmtlPDwyXmtlPDwzXmtlPDw0O29lW0FlXT1JZT1JZT4+PjheMjU1JkllXjk5LGNlW0llXT1BZTt2YXIgVGU9SltBZV0sTWU9SltUZV0saGU9SltNZV0sTz0yNTcqSltJZV1eMTY4NDMwMDgqSWU7''@;'; put 'put ''ZGVbMF1bQWVdPU88PDI0fE8+Pj44LGRlWzFdW0FlXT1PPDwxNnxPPj4+MTYsZGVbMl1bQWVdPU88PDh8Tz4+PjI0LGRlWzNdW0FlXT1PLHZlWzBdW0llXT0oTz0xNjg0MzAwOSpoZV42NTUzNypNZV4yNTcqVGVeMTY4NDMwMDgqQWUpPDwyNHxPPj4+OCx2ZVsxXVtJZV09Tzw8MTZ8Tz4+PjE2''@;'; put 'put ''LHZlWzJdW0llXT1PPDw4fE8+Pj4yNCx2ZVszXVtJZV09TywwPT09QWU/QWU9a2U9MTooQWU9VGVeSltKW0pbaGVeVGVdXV0sa2VePUpbSltrZV1dKX1yZXR1cm57U0JPWDpvZSxJTlZfU0JPWDpjZSxTVUJfTUlYOmRlLElOVl9TVUJfTUlYOnZlfX0oKTtmdW5jdGlvbiBLKEope3RoaXMuX2tl''@;'; put 'put ''eT1hZShKKSx0aGlzLl9yZXNldCgpfUsuYmxvY2tTaXplPTE2LEsua2V5U2l6ZT0zMixLLnByb3RvdHlwZS5ibG9ja1NpemU9Sy5ibG9ja1NpemUsSy5wcm90b3R5cGUua2V5U2l6ZT1LLmtleVNpemUsSy5wcm90b3R5cGUuX3Jlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciBKPXRoaXMuX2tleSxz''@;'; put 'put ''ZT1KLmxlbmd0aCxvZT1zZSs2LGNlPTQqKG9lKzEpLGRlPVtdLHZlPTA7dmU8c2U7dmUrKylkZVt2ZV09Slt2ZV07Zm9yKHZlPXNlO3ZlPGNlO3ZlKyspe3ZhciBBZT1kZVt2ZS0xXTt2ZSVzZT09MD8oQWU9dGUuU0JPWFsoQWU9QWU8PDh8QWU+Pj4yNCk+Pj4yNF08PDI0fHRlLlNCT1hbQWU+''@;'; put 'put ''Pj4xNiYyNTVdPDwxNnx0ZS5TQk9YW0FlPj4+OCYyNTVdPDw4fHRlLlNCT1hbMjU1JkFlXSxBZV49Tlt2ZS9zZXwwXTw8MjQpOnNlPjYmJnZlJXNlPT00JiYoQWU9dGUuU0JPWFtBZT4+PjI0XTw8MjR8dGUuU0JPWFtBZT4+PjE2JjI1NV08PDE2fHRlLlNCT1hbQWU+Pj44JjI1NV08PDh8dGUu''@;'; put 'put ''U0JPWFsyNTUmQWVdKSxkZVt2ZV09ZGVbdmUtc2VdXkFlfWZvcih2YXIga2U9W10sU2U9MDtTZTxjZTtTZSsrKXt2YXIgSWU9Y2UtU2UsVGU9ZGVbSWUtKFNlJTQ/MDo0KV07a2VbU2VdPVNlPDR8fEllPD00P1RlOnRlLklOVl9TVUJfTUlYWzBdW3RlLlNCT1hbVGU+Pj4yNF1dXnRlLklOVl9T''@;'; put 'put ''VUJfTUlYWzFdW3RlLlNCT1hbVGU+Pj4xNiYyNTVdXV50ZS5JTlZfU1VCX01JWFsyXVt0ZS5TQk9YW1RlPj4+OCYyNTVdXV50ZS5JTlZfU1VCX01JWFszXVt0ZS5TQk9YWzI1NSZUZV1dfXRoaXMuX25Sb3VuZHM9b2UsdGhpcy5fa2V5U2NoZWR1bGU9ZGUsdGhpcy5faW52S2V5U2NoZWR1bGU9''@;'; put 'put ''a2V9LEsucHJvdG90eXBlLmVuY3J5cHRCbG9ja1Jhdz1mdW5jdGlvbihKKXtyZXR1cm4gVyhKPWFlKEopLHRoaXMuX2tleVNjaGVkdWxlLHRlLlNVQl9NSVgsdGUuU0JPWCx0aGlzLl9uUm91bmRzKX0sSy5wcm90b3R5cGUuZW5jcnlwdEJsb2NrPWZ1bmN0aW9uKEope3ZhciBzZT10aGlzLmVu''@;'; put 'put ''Y3J5cHRCbG9ja1JhdyhKKSxvZT1yZS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIG9lLndyaXRlVUludDMyQkUoc2VbMF0sMCksb2Uud3JpdGVVSW50MzJCRShzZVsxXSw0KSxvZS53cml0ZVVJbnQzMkJFKHNlWzJdLDgpLG9lLndyaXRlVUludDMyQkUoc2VbM10sMTIpLG9lfSxLLnByb3RvdHlw''@;'; put 'put ''ZS5kZWNyeXB0QmxvY2s9ZnVuY3Rpb24oSil7dmFyIHNlPShKPWFlKEopKVsxXTtKWzFdPUpbM10sSlszXT1zZTt2YXIgb2U9VyhKLHRoaXMuX2ludktleVNjaGVkdWxlLHRlLklOVl9TVUJfTUlYLHRlLklOVl9TQk9YLHRoaXMuX25Sb3VuZHMpLGNlPXJlLmFsbG9jVW5zYWZlKDE2KTtyZXR1''@;'; put 'put ''cm4gY2Uud3JpdGVVSW50MzJCRShvZVswXSwwKSxjZS53cml0ZVVJbnQzMkJFKG9lWzNdLDQpLGNlLndyaXRlVUludDMyQkUob2VbMl0sOCksY2Uud3JpdGVVSW50MzJCRShvZVsxXSwxMiksY2V9LEsucHJvdG90eXBlLnNjcnViPWZ1bmN0aW9uKCl7WSh0aGlzLl9rZXlTY2hlZHVsZSksWSh0''@;'; put 'put ''aGlzLl9pbnZLZXlTY2hlZHVsZSksWSh0aGlzLl9rZXkpfSxVLmV4cG9ydHMuQUVTPUt9LDQ4NDg6KFUsUSxqKT0+e3ZhciByZT1qKDQ0OTcpLGFlPWooOTUwOSkuQnVmZmVyLFk9aigxMDI3KSxXPWooNTcxNyksTj1qKDMyODgpLHRlPWooNzI5NSksSz1qKDY4NSk7ZnVuY3Rpb24gSihzZSxv''@;'; put 'put ''ZSxjZSxkZSl7WS5jYWxsKHRoaXMpO3ZhciB2ZT1hZS5hbGxvYyg0LDApO3RoaXMuX2NpcGhlcj1uZXcgcmUuQUVTKG9lKTt2YXIgQWU9dGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh2ZSk7dGhpcy5fZ2hhc2g9bmV3IE4oQWUpLGNlPWZ1bmN0aW9uKGtlLFNlLEllKXtpZigxMj09PVNlLmxl''@;'; put 'put ''bmd0aClyZXR1cm4ga2UuX2ZpbklEPWFlLmNvbmNhdChbU2UsYWUuZnJvbShbMCwwLDAsMV0pXSksYWUuY29uY2F0KFtTZSxhZS5mcm9tKFswLDAsMCwyXSldKTt2YXIgVGU9bmV3IE4oSWUpLE1lPVNlLmxlbmd0aCxoZT1NZSUxNjtUZS51cGRhdGUoU2UpLGhlJiZUZS51cGRhdGUoYWUuYWxs''@;'; put 'put ''b2MoaGU9MTYtaGUsMCkpLFRlLnVwZGF0ZShhZS5hbGxvYyg4LDApKTt2YXIgTz04Kk1lLHo9YWUuYWxsb2MoOCk7ei53cml0ZVVJbnRCRShPLDAsOCksVGUudXBkYXRlKHopLGtlLl9maW5JRD1UZS5zdGF0ZTt2YXIgZWU9YWUuZnJvbShrZS5fZmluSUQpO3JldHVybiBLKGVlKSxlZX0odGhp''@;'; put 'put ''cyxjZSxBZSksdGhpcy5fcHJldj1hZS5mcm9tKGNlKSx0aGlzLl9jYWNoZT1hZS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9zZWNDYWNoZT1hZS5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PWRlLHRoaXMuX2FsZW49MCx0aGlzLl9sZW49MCx0aGlzLl9tb2RlPXNlLHRoaXMuX2F1dGhUYWc9''@;'; put 'put ''bnVsbCx0aGlzLl9jYWxsZWQ9ITF9VyhKLFkpLEoucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oc2Upe2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBvZT0xNi10aGlzLl9hbGVuJTE2O29lPDE2JiYob2U9YWUuYWxsb2Mob2UsMCksdGhpcy5fZ2hhc2gudXBkYXRlKG9lKSl9''@;'; put 'put ''dGhpcy5fY2FsbGVkPSEwO3ZhciBjZT10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxzZSk7cmV0dXJuIHRoaXMuX2doYXNoLnVwZGF0ZSh0aGlzLl9kZWNyeXB0P3NlOmNlKSx0aGlzLl9sZW4rPXNlLmxlbmd0aCxjZX0sSi5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVj''@;'; put 'put ''cnlwdCYmIXRoaXMuX2F1dGhUYWcpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGEiKTt2YXIgc2U9dGUodGhpcy5fZ2hhc2guZmluYWwoOCp0aGlzLl9hbGVuLDgqdGhpcy5fbGVuKSx0aGlzLl9jaXBoZXIuZW5jcnlwdEJs''@;'; put 'put ''b2NrKHRoaXMuX2ZpbklEKSk7aWYodGhpcy5fZGVjcnlwdCYmZnVuY3Rpb24ob2UsY2Upe3ZhciBkZT0wO29lLmxlbmd0aCE9PWNlLmxlbmd0aCYmZGUrKztmb3IodmFyIHZlPU1hdGgubWluKG9lLmxlbmd0aCxjZS5sZW5ndGgpLEFlPTA7QWU8dmU7KytBZSlkZSs9b2VbQWVdXmNlW0FlXTty''@;'; put 'put ''ZXR1cm4gZGV9KHNlLHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3RhdGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dGhpcy5fYXV0aFRhZz1zZSx0aGlzLl9jaXBoZXIuc2NydWIoKX0sSi5wcm90b3R5cGUuZ2V0QXV0aFRhZz1mdW5jdGlv''@;'; put 'put ''bigpe2lmKHRoaXMuX2RlY3J5cHR8fCFhZS5pc0J1ZmZlcih0aGlzLl9hdXRoVGFnKSl0aHJvdyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gZ2V0IGF1dGggdGFnIGluIHVuc3VwcG9ydGVkIHN0YXRlIik7cmV0dXJuIHRoaXMuX2F1dGhUYWd9LEoucHJvdG90eXBlLnNldEF1dGhUYWc9ZnVu''@;'; put 'put ''Y3Rpb24oc2Upe2lmKCF0aGlzLl9kZWNyeXB0KXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9hdXRoVGFnPXNlfSxKLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oc2Upe2lmKHRoaXMuX2NhbGxlZCl0aHJv''@;'; put 'put ''dyBuZXcgRXJyb3IoIkF0dGVtcHRpbmcgdG8gc2V0IEFBRCBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3RoaXMuX2doYXNoLnVwZGF0ZShzZSksdGhpcy5fYWxlbis9c2UubGVuZ3RofSxVLmV4cG9ydHM9Sn0sNDY5NjooVSxRLGopPT57dmFyIHJlPWooMTQ5NCksYWU9aig2MTkzKSxZPWooNDk0''@;'; put 'put ''Nik7US5jcmVhdGVDaXBoZXI9US5DaXBoZXI9cmUuY3JlYXRlQ2lwaGVyLFEuY3JlYXRlQ2lwaGVyaXY9US5DaXBoZXJpdj1yZS5jcmVhdGVDaXBoZXJpdixRLmNyZWF0ZURlY2lwaGVyPVEuRGVjaXBoZXI9YWUuY3JlYXRlRGVjaXBoZXIsUS5jcmVhdGVEZWNpcGhlcml2PVEuRGVjaXBoZXJp''@;'; put 'put ''dj1hZS5jcmVhdGVEZWNpcGhlcml2LFEubGlzdENpcGhlcnM9US5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKFkpfX0sNjE5MzooVSxRLGopPT57dmFyIHJlPWooNDg0OCksYWU9aig5NTA5KS5CdWZmZXIsWT1qKDQ1KSxXPWooNTk2OSksTj1qKDEwMjcpLHRlPWoo''@;'; put 'put ''NDQ5NyksSz1qKDMwNDgpO2Z1bmN0aW9uIEooY2UsZGUsdmUpe04uY2FsbCh0aGlzKSx0aGlzLl9jYWNoZT1uZXcgc2UsdGhpcy5fbGFzdD12b2lkIDAsdGhpcy5fY2lwaGVyPW5ldyB0ZS5BRVMoZGUpLHRoaXMuX3ByZXY9YWUuZnJvbSh2ZSksdGhpcy5fbW9kZT1jZSx0aGlzLl9hdXRvcGFk''@;'; put 'put ''ZGluZz0hMH1mdW5jdGlvbiBzZSgpe3RoaXMuY2FjaGU9YWUuYWxsb2NVbnNhZmUoMCl9ZnVuY3Rpb24gb2UoY2UsZGUsdmUpe3ZhciBBZT1ZW2NlLnRvTG93ZXJDYXNlKCldO2lmKCFBZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtpZigic3RyaW5nIj09dHlw''@;'; put 'put ''ZW9mIHZlJiYodmU9YWUuZnJvbSh2ZSkpLCJHQ00iIT09QWUubW9kZSYmdmUubGVuZ3RoIT09QWUuaXYpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBpdiBsZW5ndGggIit2ZS5sZW5ndGgpO2lmKCJzdHJpbmciPT10eXBlb2YgZGUmJihkZT1hZS5mcm9tKGRlKSksZGUubGVuZ3RoIT09''@;'; put 'put ''QWUua2V5LzgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoICIrZGUubGVuZ3RoKTtyZXR1cm4ic3RyZWFtIj09PUFlLnR5cGU/bmV3IFcoQWUubW9kdWxlLGRlLHZlLCEwKToiYXV0aCI9PT1BZS50eXBlP25ldyByZShBZS5tb2R1bGUsZGUsdmUsITApOm5ldyBKKEFl''@;'; put 'put ''Lm1vZHVsZSxkZSx2ZSl9aig1NzE3KShKLE4pLEoucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oY2Upe3ZhciBkZSx2ZTt0aGlzLl9jYWNoZS5hZGQoY2UpO2Zvcih2YXIgQWU9W107ZGU9dGhpcy5fY2FjaGUuZ2V0KHRoaXMuX2F1dG9wYWRkaW5nKTspdmU9dGhpcy5fbW9kZS5kZWNyeXB0''@;'; put 'put ''KHRoaXMsZGUpLEFlLnB1c2godmUpO3JldHVybiBhZS5jb25jYXQoQWUpfSxKLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgY2U9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24oZGUpe3ZhciB2ZT1kZVsxNV07aWYodmU8MXx8''@;'; put 'put ''dmU+MTYpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7Zm9yKHZhciBBZT0tMTsrK0FlPHZlOylpZihkZVtBZSsoMTYtdmUpXSE9PXZlKXRocm93IG5ldyBFcnJvcigidW5hYmxlIHRvIGRlY3J5cHQgZGF0YSIpO2lmKDE2IT09dmUpcmV0dXJuIGRlLnNsaWNlKDAs''@;'; put 'put ''MTYtdmUpfSh0aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxjZSkpO2lmKGNlKXRocm93IG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUgb2YgYmxvY2sgbGVuZ3RoIil9LEoucHJvdG90eXBlLnNldEF1dG9QYWRkaW5nPWZ1bmN0aW9uKGNlKXtyZXR1cm4gdGhpcy5fYXV0b3BhZGRpbmc9ISFj''@;'; put 'put ''ZSx0aGlzfSxzZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGNlKXt0aGlzLmNhY2hlPWFlLmNvbmNhdChbdGhpcy5jYWNoZSxjZV0pfSxzZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGNlKXt2YXIgZGU7aWYoY2Upe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE2KXJldHVybiBkZT10aGlzLmNhY2hl''@;'; put 'put ''LnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksZGV9ZWxzZSBpZih0aGlzLmNhY2hlLmxlbmd0aD49MTYpcmV0dXJuIGRlPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxkZTtyZXR1cm4gbnVsbH0sc2UucHJv''@;'; put 'put ''dG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7aWYodGhpcy5jYWNoZS5sZW5ndGgpcmV0dXJuIHRoaXMuY2FjaGV9LFEuY3JlYXRlRGVjaXBoZXI9ZnVuY3Rpb24oY2UsZGUpe3ZhciB2ZT1ZW2NlLnRvTG93ZXJDYXNlKCldO2lmKCF2ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRl''@;'; put 'put ''IHR5cGUiKTt2YXIgQWU9SyhkZSwhMSx2ZS5rZXksdmUuaXYpO3JldHVybiBvZShjZSxBZS5rZXksQWUuaXYpfSxRLmNyZWF0ZURlY2lwaGVyaXY9b2V9LDE0OTQ6KFUsUSxqKT0+e3ZhciByZT1qKDQ1KSxhZT1qKDQ4NDgpLFk9aig5NTA5KS5CdWZmZXIsVz1qKDU5NjkpLE49aigxMDI3KSx0''@;'; put 'put ''ZT1qKDQ0OTcpLEs9aigzMDQ4KTtmdW5jdGlvbiBKKGRlLHZlLEFlKXtOLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IG9lLHRoaXMuX2NpcGhlcj1uZXcgdGUuQUVTKHZlKSx0aGlzLl9wcmV2PVkuZnJvbShBZSksdGhpcy5fbW9kZT1kZSx0aGlzLl9hdXRvcGFkZGluZz0hMH1qKDU3MTcp''@;'; put 'put ''KEosTiksSi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihkZSl7dmFyIHZlLEFlO3RoaXMuX2NhY2hlLmFkZChkZSk7Zm9yKHZhciBrZT1bXTt2ZT10aGlzLl9jYWNoZS5nZXQoKTspQWU9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsdmUpLGtlLnB1c2goQWUpO3JldHVybiBZLmNvbmNhdChr''@;'; put 'put ''ZSl9O3ZhciBzZT1ZLmFsbG9jKDE2LDE2KTtmdW5jdGlvbiBvZSgpe3RoaXMuY2FjaGU9WS5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBjZShkZSx2ZSxBZSl7dmFyIGtlPXJlW2RlLnRvTG93ZXJDYXNlKCldO2lmKCFrZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUi''@;'; put 'put ''KTtpZigic3RyaW5nIj09dHlwZW9mIHZlJiYodmU9WS5mcm9tKHZlKSksdmUubGVuZ3RoIT09a2Uua2V5LzgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoICIrdmUubGVuZ3RoKTtpZigic3RyaW5nIj09dHlwZW9mIEFlJiYoQWU9WS5mcm9tKEFlKSksIkdDTSIhPT1r''@;'; put 'put ''ZS5tb2RlJiZBZS5sZW5ndGghPT1rZS5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK0FlLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1rZS50eXBlP25ldyBXKGtlLm1vZHVsZSx2ZSxBZSk6ImF1dGgiPT09a2UudHlwZT9uZXcgYWUoa2UubW9kdWxlLHZlLEFl''@;'; put 'put ''KTpuZXcgSihrZS5tb2R1bGUsdmUsQWUpfUoucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3ZhciBkZT10aGlzLl9jYWNoZS5mbHVzaCgpO2lmKHRoaXMuX2F1dG9wYWRkaW5nKXJldHVybiBkZT10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxkZSksdGhpcy5fY2lwaGVyLnNjcnViKCksZGU7''@;'; put 'put ''aWYoIWRlLmVxdWFscyhzZSkpdGhyb3cgdGhpcy5fY2lwaGVyLnNjcnViKCksbmV3IEVycm9yKCJkYXRhIG5vdCBtdWx0aXBsZSBvZiBibG9jayBsZW5ndGgiKX0sSi5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oZGUpe3JldHVybiB0aGlzLl9hdXRvcGFkZGluZz0hIWRlLHRo''@;'; put 'put ''aXN9LG9lLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oZGUpe3RoaXMuY2FjaGU9WS5jb25jYXQoW3RoaXMuY2FjaGUsZGVdKX0sb2UucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE1KXt2YXIgZGU9dGhpcy5jYWNoZS5zbGljZSgwLDE2KTtyZXR1cm4gdGhp''@;'; put 'put ''cy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxkZX1yZXR1cm4gbnVsbH0sb2UucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBkZT0xNi10aGlzLmNhY2hlLmxlbmd0aCx2ZT1ZLmFsbG9jVW5zYWZlKGRlKSxBZT0tMTsrK0FlPGRlOyl2ZS53cml0ZVVJbnQ4KGRlLEFlKTty''@;'; put 'put ''ZXR1cm4gWS5jb25jYXQoW3RoaXMuY2FjaGUsdmVdKX0sUS5jcmVhdGVDaXBoZXJpdj1jZSxRLmNyZWF0ZUNpcGhlcj1mdW5jdGlvbihkZSx2ZSl7dmFyIEFlPXJlW2RlLnRvTG93ZXJDYXNlKCldO2lmKCFBZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTt2YXIg''@;'; put 'put ''a2U9Syh2ZSwhMSxBZS5rZXksQWUuaXYpO3JldHVybiBjZShkZSxrZS5rZXksa2UuaXYpfX0sMzI4ODooVSxRLGopPT57dmFyIHJlPWooOTUwOSkuQnVmZmVyLGFlPXJlLmFsbG9jKDE2LDApO2Z1bmN0aW9uIFkoTil7dmFyIHRlPXJlLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gdGUud3JpdGVV''@;'; put 'put ''SW50MzJCRShOWzBdPj4+MCwwKSx0ZS53cml0ZVVJbnQzMkJFKE5bMV0+Pj4wLDQpLHRlLndyaXRlVUludDMyQkUoTlsyXT4+PjAsOCksdGUud3JpdGVVSW50MzJCRShOWzNdPj4+MCwxMiksdGV9ZnVuY3Rpb24gVyhOKXt0aGlzLmg9Tix0aGlzLnN0YXRlPXJlLmFsbG9jKDE2LDApLHRoaXMu''@;'; put 'put ''Y2FjaGU9cmUuYWxsb2NVbnNhZmUoMCl9Vy5wcm90b3R5cGUuZ2hhc2g9ZnVuY3Rpb24oTil7Zm9yKHZhciB0ZT0tMTsrK3RlPE4ubGVuZ3RoOyl0aGlzLnN0YXRlW3RlXV49Tlt0ZV07dGhpcy5fbXVsdGlwbHkoKX0sVy5wcm90b3R5cGUuX211bHRpcGx5PWZ1bmN0aW9uKCl7Zm9yKHZhciBO''@;'; put 'put ''LHRlLEssSj1bKE49dGhpcy5oKS5yZWFkVUludDMyQkUoMCksTi5yZWFkVUludDMyQkUoNCksTi5yZWFkVUludDMyQkUoOCksTi5yZWFkVUludDMyQkUoMTIpXSxzZT1bMCwwLDAsMF0sb2U9LTE7KytvZTwxMjg7KXtmb3IoMCE9KHRoaXMuc3RhdGVbfn4ob2UvOCldJjE8PDctb2UlOCkmJihz''@;'; put 'put ''ZVswXV49SlswXSxzZVsxXV49SlsxXSxzZVsyXV49SlsyXSxzZVszXV49SlszXSksSz0wIT0oMSZKWzNdKSx0ZT0zO3RlPjA7dGUtLSlKW3RlXT1KW3RlXT4+PjF8KDEmSlt0ZS0xXSk8PDMxO0pbMF09SlswXT4+PjEsSyYmKEpbMF09LTUyMDA5MzY5Nl5KWzBdKX10aGlzLnN0YXRlPVkoc2Up''@;'; put 'put ''fSxXLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oTil7dmFyIHRlO2Zvcih0aGlzLmNhY2hlPXJlLmNvbmNhdChbdGhpcy5jYWNoZSxOXSk7dGhpcy5jYWNoZS5sZW5ndGg+PTE2Oyl0ZT10aGlzLmNhY2hlLnNsaWNlKDAsMTYpLHRoaXMuY2FjaGU9dGhpcy5jYWNoZS5zbGljZSgxNiksdGhp''@;'; put 'put ''cy5naGFzaCh0ZSl9LFcucHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKE4sdGUpe3JldHVybiB0aGlzLmNhY2hlLmxlbmd0aCYmdGhpcy5naGFzaChyZS5jb25jYXQoW3RoaXMuY2FjaGUsYWVdLDE2KSksdGhpcy5naGFzaChZKFswLE4sMCx0ZV0pKSx0aGlzLnN0YXRlfSxVLmV4cG9ydHM9V30s''@;'; put 'put ''Njg1OlU9PntVLmV4cG9ydHM9ZnVuY3Rpb24oUSl7Zm9yKHZhciBqLHJlPVEubGVuZ3RoO3JlLS07KXtpZigyNTUhPT0oaj1RLnJlYWRVSW50OChyZSkpKXtqKyssUS53cml0ZVVJbnQ4KGoscmUpO2JyZWFrfVEud3JpdGVVSW50OCgwLHJlKX19fSw1MjkyOihVLFEsaik9Pnt2YXIgcmU9aig3''@;'; put 'put ''Mjk1KTtRLmVuY3J5cHQ9ZnVuY3Rpb24oYWUsWSl7dmFyIFc9cmUoWSxhZS5fcHJldik7cmV0dXJuIGFlLl9wcmV2PWFlLl9jaXBoZXIuZW5jcnlwdEJsb2NrKFcpLGFlLl9wcmV2fSxRLmRlY3J5cHQ9ZnVuY3Rpb24oYWUsWSl7dmFyIFc9YWUuX3ByZXY7YWUuX3ByZXY9WTt2YXIgTj1hZS5f''@;'; put 'put ''Y2lwaGVyLmRlY3J5cHRCbG9jayhZKTtyZXR1cm4gcmUoTixXKX19LDYzMTE6KFUsUSxqKT0+e3ZhciByZT1qKDk1MDkpLkJ1ZmZlcixhZT1qKDcyOTUpO2Z1bmN0aW9uIFkoVyxOLHRlKXt2YXIgSz1OLmxlbmd0aCxKPWFlKE4sVy5fY2FjaGUpO3JldHVybiBXLl9jYWNoZT1XLl9jYWNoZS5z''@;'; put 'put ''bGljZShLKSxXLl9wcmV2PXJlLmNvbmNhdChbVy5fcHJldix0ZT9OOkpdKSxKfVEuZW5jcnlwdD1mdW5jdGlvbihXLE4sdGUpe2Zvcih2YXIgSyxKPXJlLmFsbG9jVW5zYWZlKDApO04ubGVuZ3RoOyl7aWYoMD09PVcuX2NhY2hlLmxlbmd0aCYmKFcuX2NhY2hlPVcuX2NpcGhlci5lbmNyeXB0''@;'; put 'put ''QmxvY2soVy5fcHJldiksVy5fcHJldj1yZS5hbGxvY1Vuc2FmZSgwKSksIShXLl9jYWNoZS5sZW5ndGg8PU4ubGVuZ3RoKSl7Sj1yZS5jb25jYXQoW0osWShXLE4sdGUpXSk7YnJlYWt9Sj1yZS5jb25jYXQoW0osWShXLE4uc2xpY2UoMCxLPVcuX2NhY2hlLmxlbmd0aCksdGUpXSksTj1OLnNs''@;'; put 'put ''aWNlKEspfXJldHVybiBKfX0sMTUxMDooVSxRLGopPT57dmFyIHJlPWooOTUwOSkuQnVmZmVyO2Z1bmN0aW9uIGFlKFcsTix0ZSl7Zm9yKHZhciBLLEosc2U9LTEsb2U9MDsrK3NlPDg7KUs9TiYxPDw3LXNlPzEyODowLG9lKz0oMTI4JihKPVcuX2NpcGhlci5lbmNyeXB0QmxvY2soVy5fcHJl''@;'; put 'put ''dilbMF1eSykpPj5zZSU4LFcuX3ByZXY9WShXLl9wcmV2LHRlP0s6Sik7cmV0dXJuIG9lfWZ1bmN0aW9uIFkoVyxOKXt2YXIgdGU9Vy5sZW5ndGgsSz0tMSxKPXJlLmFsbG9jVW5zYWZlKFcubGVuZ3RoKTtmb3IoVz1yZS5jb25jYXQoW1cscmUuZnJvbShbTl0pXSk7KytLPHRlOylKW0tdPVdb''@;'; put 'put ''S108PDF8V1tLKzFdPj43O3JldHVybiBKfVEuZW5jcnlwdD1mdW5jdGlvbihXLE4sdGUpe2Zvcih2YXIgSz1OLmxlbmd0aCxKPXJlLmFsbG9jVW5zYWZlKEspLHNlPS0xOysrc2U8SzspSltzZV09YWUoVyxOW3NlXSx0ZSk7cmV0dXJuIEp9fSwxOTY0OihVLFEsaik9Pnt2YXIgcmU9aig5NTA5''@;'; put 'put ''KS5CdWZmZXI7ZnVuY3Rpb24gYWUoWSxXLE4pe3ZhciB0ZT1ZLl9jaXBoZXIuZW5jcnlwdEJsb2NrKFkuX3ByZXYpWzBdXlc7cmV0dXJuIFkuX3ByZXY9cmUuY29uY2F0KFtZLl9wcmV2LnNsaWNlKDEpLHJlLmZyb20oW04/Vzp0ZV0pXSksdGV9US5lbmNyeXB0PWZ1bmN0aW9uKFksVyxOKXtm''@;'; put 'put ''b3IodmFyIHRlPVcubGVuZ3RoLEs9cmUuYWxsb2NVbnNhZmUodGUpLEo9LTE7KytKPHRlOylLW0pdPWFlKFksV1tKXSxOKTtyZXR1cm4gS319LDYwMDk6KFUsUSxqKT0+e3ZhciByZT1qKDcyOTUpLGFlPWooOTUwOSkuQnVmZmVyLFk9aig2ODUpO2Z1bmN0aW9uIFcoTil7dmFyIHRlPU4uX2Np''@;'; put 'put ''cGhlci5lbmNyeXB0QmxvY2tSYXcoTi5fcHJldik7cmV0dXJuIFkoTi5fcHJldiksdGV9US5lbmNyeXB0PWZ1bmN0aW9uKE4sdGUpe3ZhciBLPU1hdGguY2VpbCh0ZS5sZW5ndGgvMTYpLEo9Ti5fY2FjaGUubGVuZ3RoO04uX2NhY2hlPWFlLmNvbmNhdChbTi5fY2FjaGUsYWUuYWxsb2NVbnNh''@;'; put 'put ''ZmUoMTYqSyldKTtmb3IodmFyIHNlPTA7c2U8SztzZSsrKXt2YXIgb2U9VyhOKSxjZT1KKzE2KnNlO04uX2NhY2hlLndyaXRlVUludDMyQkUob2VbMF0sY2UrMCksTi5fY2FjaGUud3JpdGVVSW50MzJCRShvZVsxXSxjZSs0KSxOLl9jYWNoZS53cml0ZVVJbnQzMkJFKG9lWzJdLGNlKzgpLE4u''@;'; put 'put ''X2NhY2hlLndyaXRlVUludDMyQkUob2VbM10sY2UrMTIpfXZhciBkZT1OLl9jYWNoZS5zbGljZSgwLHRlLmxlbmd0aCk7cmV0dXJuIE4uX2NhY2hlPU4uX2NhY2hlLnNsaWNlKHRlLmxlbmd0aCkscmUodGUsZGUpfX0sMTA4NDooVSxRKT0+e1EuZW5jcnlwdD1mdW5jdGlvbihqLHJlKXtyZXR1''@;'; put 'put ''cm4gai5fY2lwaGVyLmVuY3J5cHRCbG9jayhyZSl9LFEuZGVjcnlwdD1mdW5jdGlvbihqLHJlKXtyZXR1cm4gai5fY2lwaGVyLmRlY3J5cHRCbG9jayhyZSl9fSw0NTooVSxRLGopPT57dmFyIHJlPXtFQ0I6aigxMDg0KSxDQkM6aig1MjkyKSxDRkI6aig2MzExKSxDRkI4OmooMTk2NCksQ0ZC''@;'; put 'put ''MTpqKDE1MTApLE9GQjpqKDg4NjEpLENUUjpqKDYwMDkpLEdDTTpqKDYwMDkpfSxhZT1qKDQ5NDYpO2Zvcih2YXIgWSBpbiBhZSlhZVtZXS5tb2R1bGU9cmVbYWVbWV0ubW9kZV07VS5leHBvcnRzPWFlfSw4ODYxOihVLFEsaik9Pnt2YXIgcmU9aig4NzY0KS5CdWZmZXIsYWU9aig3Mjk1KTtm''@;'; put 'put ''dW5jdGlvbiBZKFcpe3JldHVybiBXLl9wcmV2PVcuX2NpcGhlci5lbmNyeXB0QmxvY2soVy5fcHJldiksVy5fcHJldn1RLmVuY3J5cHQ9ZnVuY3Rpb24oVyxOKXtmb3IoO1cuX2NhY2hlLmxlbmd0aDxOLmxlbmd0aDspVy5fY2FjaGU9cmUuY29uY2F0KFtXLl9jYWNoZSxZKFcpXSk7dmFyIHRl''@;'; put 'put ''PVcuX2NhY2hlLnNsaWNlKDAsTi5sZW5ndGgpO3JldHVybiBXLl9jYWNoZT1XLl9jYWNoZS5zbGljZShOLmxlbmd0aCksYWUoTix0ZSl9fSw1OTY5OihVLFEsaik9Pnt2YXIgcmU9aig0NDk3KSxhZT1qKDk1MDkpLkJ1ZmZlcixZPWooMTAyNyk7ZnVuY3Rpb24gVyhOLHRlLEssSil7WS5jYWxs''@;'; put 'put ''KHRoaXMpLHRoaXMuX2NpcGhlcj1uZXcgcmUuQUVTKHRlKSx0aGlzLl9wcmV2PWFlLmZyb20oSyksdGhpcy5fY2FjaGU9YWUuYWxsb2NVbnNhZmUoMCksdGhpcy5fc2VjQ2FjaGU9YWUuYWxsb2NVbnNhZmUoMCksdGhpcy5fZGVjcnlwdD1KLHRoaXMuX21vZGU9Tn1qKDU3MTcpKFcsWSksVy5w''@;'; put 'put ''cm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsTix0aGlzLl9kZWNyeXB0KX0sVy5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dGhpcy5fY2lwaGVyLnNjcnViKCl9LFUuZXhwb3J0cz1XfSwzNjE0OihVLFEsaik9Pnt2YXIgcmU9''@;'; put 'put ''aig3NjY3KSxhZT1qKDQ2OTYpLFk9aig0NSksVz1qKDk3MTUpLE49aigzMDQ4KTtmdW5jdGlvbiB0ZShKLHNlLG9lKXtpZihKPUoudG9Mb3dlckNhc2UoKSxZW0pdKXJldHVybiBhZS5jcmVhdGVDaXBoZXJpdihKLHNlLG9lKTtpZihXW0pdKXJldHVybiBuZXcgcmUoe2tleTpzZSxpdjpvZSxt''@;'; put 'put ''b2RlOkp9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1mdW5jdGlvbiBLKEosc2Usb2Upe2lmKEo9Si50b0xvd2VyQ2FzZSgpLFlbSl0pcmV0dXJuIGFlLmNyZWF0ZURlY2lwaGVyaXYoSixzZSxvZSk7aWYoV1tKXSlyZXR1cm4gbmV3IHJlKHtrZXk6c2UsaXY6''@;'; put 'put ''b2UsbW9kZTpKLGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1RLmNyZWF0ZUNpcGhlcj1RLkNpcGhlcj1mdW5jdGlvbihKLHNlKXt2YXIgb2UsY2U7aWYoSj1KLnRvTG93ZXJDYXNlKCksWVtKXSlvZT1ZW0pdLmtleSxjZT1ZW0pdLml2O2Vs''@;'; put 'put ''c2V7aWYoIVdbSl0pdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBzdWl0ZSB0eXBlIik7b2U9OCpXW0pdLmtleSxjZT1XW0pdLml2fXZhciBkZT1OKHNlLCExLG9lLGNlKTtyZXR1cm4gdGUoSixkZS5rZXksZGUuaXYpfSxRLmNyZWF0ZUNpcGhlcml2PVEuQ2lwaGVyaXY9dGUsUS5jcmVh''@;'; put 'put ''dGVEZWNpcGhlcj1RLkRlY2lwaGVyPWZ1bmN0aW9uKEosc2Upe3ZhciBvZSxjZTtpZihKPUoudG9Mb3dlckNhc2UoKSxZW0pdKW9lPVlbSl0ua2V5LGNlPVlbSl0uaXY7ZWxzZXtpZighV1tKXSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtvZT04KldbSl0ua2V5''@;'; put 'put ''LGNlPVdbSl0uaXZ9dmFyIGRlPU4oc2UsITEsb2UsY2UpO3JldHVybiBLKEosZGUua2V5LGRlLml2KX0sUS5jcmVhdGVEZWNpcGhlcml2PVEuRGVjaXBoZXJpdj1LLFEubGlzdENpcGhlcnM9US5nZXRDaXBoZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKFcpLmNvbmNhdChhZS5n''@;'; put 'put ''ZXRDaXBoZXJzKCkpfX0sNzY2NzooVSxRLGopPT57dmFyIHJlPWooMTAyNyksYWU9aig1MjUxKSxZPWooNTcxNyksVz1qKDk1MDkpLkJ1ZmZlcixOPXsiZGVzLWVkZTMtY2JjIjphZS5DQkMuaW5zdGFudGlhdGUoYWUuRURFKSwiZGVzLWVkZTMiOmFlLkVERSwiZGVzLWVkZS1jYmMiOmFlLkNC''@;'; put 'put ''Qy5pbnN0YW50aWF0ZShhZS5FREUpLCJkZXMtZWRlIjphZS5FREUsImRlcy1jYmMiOmFlLkNCQy5pbnN0YW50aWF0ZShhZS5ERVMpLCJkZXMtZWNiIjphZS5ERVN9O2Z1bmN0aW9uIHRlKEspe3JlLmNhbGwodGhpcyk7dmFyIEosc2U9Sy5tb2RlLnRvTG93ZXJDYXNlKCksb2U9TltzZV07Sj1L''@;'; put 'put ''LmRlY3J5cHQ/ImRlY3J5cHQiOiJlbmNyeXB0Ijt2YXIgY2U9Sy5rZXk7Vy5pc0J1ZmZlcihjZSl8fChjZT1XLmZyb20oY2UpKSwiZGVzLWVkZSIhPT1zZSYmImRlcy1lZGUtY2JjIiE9PXNlfHwoY2U9Vy5jb25jYXQoW2NlLGNlLnNsaWNlKDAsOCldKSk7dmFyIGRlPUsuaXY7Vy5pc0J1ZmZl''@;'; put 'put ''cihkZSl8fChkZT1XLmZyb20oZGUpKSx0aGlzLl9kZXM9b2UuY3JlYXRlKHtrZXk6Y2UsaXY6ZGUsdHlwZTpKfSl9Ti5kZXM9TlsiZGVzLWNiYyJdLE4uZGVzMz1OWyJkZXMtZWRlMy1jYmMiXSxVLmV4cG9ydHM9dGUsWSh0ZSxyZSksdGUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSyl7''@;'; put 'put ''cmV0dXJuIFcuZnJvbSh0aGlzLl9kZXMudXBkYXRlKEspKX0sdGUucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBXLmZyb20odGhpcy5fZGVzLmZpbmFsKCkpfX0sOTcxNTooVSxRKT0+e1FbImRlcy1lY2IiXT17a2V5OjgsaXY6MH0sUVsiZGVzLWNiYyJdPVEuZGVzPXtrZXk6''@;'; put 'put ''OCxpdjo4fSxRWyJkZXMtZWRlMy1jYmMiXT1RLmRlczM9e2tleToyNCxpdjo4fSxRWyJkZXMtZWRlMyJdPXtrZXk6MjQsaXY6MH0sUVsiZGVzLWVkZS1jYmMiXT17a2V5OjE2LGl2Ojh9LFFbImRlcy1lZGUiXT17a2V5OjE2LGl2OjB9fSwzNjYzOihVLFEsaik9Pnt2YXIgcmU9aig4NzY0KS5C''@;'; put 'put ''dWZmZXIsYWU9aigzNTUwKSxZPWooMTc5OCk7ZnVuY3Rpb24gVyh0ZSl7dmFyIEssSj10ZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtkb3tLPW5ldyBhZShZKEopKX13aGlsZShLLmNtcCh0ZS5tb2R1bHVzKT49MHx8IUsudW1vZCh0ZS5wcmltZTEpfHwhSy51bW9kKHRlLnByaW1lMikpO3JldHVy''@;'; put 'put ''biBLfWZ1bmN0aW9uIE4odGUsSyl7dmFyIE1lLGhlLEo9e2JsaW5kZXI6KGhlPVcoTWU9SykpLnRvUmVkKGFlLm1vbnQoTWUubW9kdWx1cykpLnJlZFBvdyhuZXcgYWUoTWUucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCksdW5ibGluZGVyOmhlLmludm0oTWUubW9kdWx1cyl9LHNlPUsubW9k''@;'; put 'put ''dWx1cy5ieXRlTGVuZ3RoKCksb2U9bmV3IGFlKHRlKS5tdWwoSi5ibGluZGVyKS51bW9kKEsubW9kdWx1cyksY2U9b2UudG9SZWQoYWUubW9udChLLnByaW1lMSkpLGRlPW9lLnRvUmVkKGFlLm1vbnQoSy5wcmltZTIpKSx2ZT1LLmNvZWZmaWNpZW50LEFlPUsucHJpbWUxLGtlPUsucHJpbWUy''@;'; put 'put ''LFNlPWNlLnJlZFBvdyhLLmV4cG9uZW50MSkuZnJvbVJlZCgpLEllPWRlLnJlZFBvdyhLLmV4cG9uZW50MikuZnJvbVJlZCgpLFRlPVNlLmlzdWIoSWUpLmltdWwodmUpLnVtb2QoQWUpLmltdWwoa2UpO3JldHVybiBJZS5pYWRkKFRlKS5pbXVsKEoudW5ibGluZGVyKS51bW9kKEsubW9kdWx1''@;'; put 'put ''cykudG9BcnJheUxpa2UocmUsImJlIixzZSl9Ti5nZXRyPVcsVS5leHBvcnRzPU59LDYwNDI6KFUsUSxqKT0+e1UuZXhwb3J0cz1qKDUyMDcpfSw0NzQzOihVLFEsaik9Pnt2YXIgcmU9aig1Njc5KS5CdWZmZXIsYWU9aigzNDgyKSxZPWooODQ3MyksVz1qKDU3MTcpLE49aigyOTU3KSx0ZT1q''@;'; put 'put ''KDc3NTMpLEs9aig1MjA3KTtmdW5jdGlvbiBKKGRlKXtZLldyaXRhYmxlLmNhbGwodGhpcyk7dmFyIHZlPUtbZGVdO2lmKCF2ZSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoVHlwZT12ZS5oYXNoLHRoaXMuX2hhc2g9YWUodmUuaGFzaCksdGhp''@;'; put 'put ''cy5fdGFnPXZlLmlkLHRoaXMuX3NpZ25UeXBlPXZlLnNpZ259ZnVuY3Rpb24gc2UoZGUpe1kuV3JpdGFibGUuY2FsbCh0aGlzKTt2YXIgdmU9S1tkZV07aWYoIXZlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2g9YWUodmUuaGFzaCksdGhpcy5f''@;'; put 'put ''dGFnPXZlLmlkLHRoaXMuX3NpZ25UeXBlPXZlLnNpZ259ZnVuY3Rpb24gb2UoZGUpe3JldHVybiBuZXcgSihkZSl9ZnVuY3Rpb24gY2UoZGUpe3JldHVybiBuZXcgc2UoZGUpfU9iamVjdC5rZXlzKEspLmZvckVhY2goZnVuY3Rpb24oZGUpe0tbZGVdLmlkPXJlLmZyb20oS1tkZV0uaWQsImhl''@;'; put 'put ''eCIpLEtbZGUudG9Mb3dlckNhc2UoKV09S1tkZV19KSxXKEosWS5Xcml0YWJsZSksSi5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKGRlLHZlLEFlKXt0aGlzLl9oYXNoLnVwZGF0ZShkZSksQWUoKX0sSi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGRlLHZlKXtyZXR1cm4ic3RyaW5nIj09''@;'; put 'put ''dHlwZW9mIGRlJiYoZGU9cmUuZnJvbShkZSx2ZSkpLHRoaXMuX2hhc2gudXBkYXRlKGRlKSx0aGlzfSxKLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKGRlLHZlKXt0aGlzLmVuZCgpO3ZhciBBZT10aGlzLl9oYXNoLmRpZ2VzdCgpLGtlPU4oQWUsZGUsdGhpcy5faGFzaFR5cGUsdGhpcy5fc2ln''@;'; put 'put ''blR5cGUsdGhpcy5fdGFnKTtyZXR1cm4gdmU/a2UudG9TdHJpbmcodmUpOmtlfSxXKHNlLFkuV3JpdGFibGUpLHNlLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZGUsdmUsQWUpe3RoaXMuX2hhc2gudXBkYXRlKGRlKSxBZSgpfSxzZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKGRlLHZl''@;'; put 'put ''KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGRlJiYoZGU9cmUuZnJvbShkZSx2ZSkpLHRoaXMuX2hhc2gudXBkYXRlKGRlKSx0aGlzfSxzZS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKGRlLHZlLEFlKXsic3RyaW5nIj09dHlwZW9mIHZlJiYodmU9cmUuZnJvbSh2ZSxBZSkpLHRoaXMuZW5k''@;'; put 'put ''KCk7dmFyIGtlPXRoaXMuX2hhc2guZGlnZXN0KCk7cmV0dXJuIHRlKHZlLGtlLGRlLHRoaXMuX3NpZ25UeXBlLHRoaXMuX3RhZyl9LFUuZXhwb3J0cz17U2lnbjpvZSxWZXJpZnk6Y2UsY3JlYXRlU2lnbjpvZSxjcmVhdGVWZXJpZnk6Y2V9fSwyOTU3OihVLFEsaik9Pnt2YXIgcmU9aig1Njc5''@;'; put 'put ''KS5CdWZmZXIsYWU9aig4MzU1KSxZPWooMzY2MyksVz1qKDY5NDgpLmVjLE49aigzNTUwKSx0ZT1qKDk4MCksSz1qKDEzMDgpO2Z1bmN0aW9uIEooZGUsdmUsQWUsa2Upe2lmKChkZT1yZS5mcm9tKGRlLnRvQXJyYXkoKSkpLmxlbmd0aDx2ZS5ieXRlTGVuZ3RoKCkpe3ZhciBTZT1yZS5hbGxv''@;'; put 'put ''Yyh2ZS5ieXRlTGVuZ3RoKCktZGUubGVuZ3RoKTtkZT1yZS5jb25jYXQoW1NlLGRlXSl9dmFyIEllPUFlLmxlbmd0aCxUZT1mdW5jdGlvbihPLHope089KE89c2UoTyx6KSkubW9kKHopO3ZhciBlZT1yZS5mcm9tKE8udG9BcnJheSgpKTtpZihlZS5sZW5ndGg8ei5ieXRlTGVuZ3RoKCkpe3Zh''@;'; put 'put ''ciBuZT1yZS5hbGxvYyh6LmJ5dGVMZW5ndGgoKS1lZS5sZW5ndGgpO2VlPXJlLmNvbmNhdChbbmUsZWVdKX1yZXR1cm4gZWV9KEFlLHZlKSxNZT1yZS5hbGxvYyhJZSk7TWUuZmlsbCgxKTt2YXIgaGU9cmUuYWxsb2MoSWUpO3JldHVybiBoZT1hZShrZSxoZSkudXBkYXRlKE1lKS51cGRhdGUo''@;'; put 'put ''cmUuZnJvbShbMF0pKS51cGRhdGUoZGUpLnVwZGF0ZShUZSkuZGlnZXN0KCksTWU9YWUoa2UsaGUpLnVwZGF0ZShNZSkuZGlnZXN0KCkse2s6aGU9YWUoa2UsaGUpLnVwZGF0ZShNZSkudXBkYXRlKHJlLmZyb20oWzFdKSkudXBkYXRlKGRlKS51cGRhdGUoVGUpLmRpZ2VzdCgpLHY6TWU9YWUo''@;'; put 'put ''a2UsaGUpLnVwZGF0ZShNZSkuZGlnZXN0KCl9fWZ1bmN0aW9uIHNlKGRlLHZlKXt2YXIgQWU9bmV3IE4oZGUpLGtlPShkZS5sZW5ndGg8PDMpLXZlLmJpdExlbmd0aCgpO3JldHVybiBrZT4wJiZBZS5pc2hybihrZSksQWV9ZnVuY3Rpb24gb2UoZGUsdmUsQWUpe3ZhciBrZSxTZTtkb3tmb3Io''@;'; put 'put ''a2U9cmUuYWxsb2MoMCk7OCprZS5sZW5ndGg8ZGUuYml0TGVuZ3RoKCk7KXZlLnY9YWUoQWUsdmUuaykudXBkYXRlKHZlLnYpLmRpZ2VzdCgpLGtlPXJlLmNvbmNhdChba2UsdmUudl0pO1NlPXNlKGtlLGRlKSx2ZS5rPWFlKEFlLHZlLmspLnVwZGF0ZSh2ZS52KS51cGRhdGUocmUuZnJvbShb''@;'; put 'put ''MF0pKS5kaWdlc3QoKSx2ZS52PWFlKEFlLHZlLmspLnVwZGF0ZSh2ZS52KS5kaWdlc3QoKX13aGlsZSgtMSE9PVNlLmNtcChkZSkpO3JldHVybiBTZX1mdW5jdGlvbiBjZShkZSx2ZSxBZSxrZSl7cmV0dXJuIGRlLnRvUmVkKE4ubW9udChBZSkpLnJlZFBvdyh2ZSkuZnJvbVJlZCgpLm1vZChr''@;'; put 'put ''ZSl9VS5leHBvcnRzPWZ1bmN0aW9uKGRlLHZlLEFlLGtlLFNlKXt2YXIgSWU9dGUodmUpO2lmKEllLmN1cnZlKXtpZigiZWNkc2EiIT09a2UmJiJlY2RzYS9yc2EiIT09a2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKE8seil7dmFy''@;'; put 'put ''IGVlPUtbei5jdXJ2ZS5qb2luKCIuIildO2lmKCFlZSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY3VydmUgIit6LmN1cnZlLmpvaW4oIi4iKSk7dmFyIG5lPW5ldyBXKGVlKS5rZXlGcm9tUHJpdmF0ZSh6LnByaXZhdGVLZXkpLnNpZ24oTyk7cmV0dXJuIHJlLmZyb20obmUudG9ERVIoKSl9''@;'; put 'put ''KGRlLEllKX1pZigiZHNhIj09PUllLnR5cGUpe2lmKCJkc2EiIT09a2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7cmV0dXJuIGZ1bmN0aW9uKE8seixlZSl7Zm9yKHZhciBuZSx4PXoucGFyYW1zLnByaXZfa2V5LFA9ei5wYXJhbXMucCxWPXoucGFyYW1zLnEs''@;'; put 'put ''VD16LnBhcmFtcy5nLFM9bmV3IE4oMCksRj1zZShPLFYpLm1vZChWKSx5ZT0hMSxDZT1KKHgsVixPLGVlKTshMT09PXllOylTPWNlKFQsbmU9b2UoVixDZSxlZSksUCxWKSwwPT09KHllPW5lLmludm0oVikuaW11bChGLmFkZCh4Lm11bChTKSkpLm1vZChWKSkuY21wbigwKSYmKHllPSExLFM9''@;'; put 'put ''bmV3IE4oMCkpO3JldHVybiBmdW5jdGlvbihEZSxQZSl7RGU9RGUudG9BcnJheSgpLFBlPVBlLnRvQXJyYXkoKSwxMjgmRGVbMF0mJihEZT1bMF0uY29uY2F0KERlKSksMTI4JlBlWzBdJiYoUGU9WzBdLmNvbmNhdChQZSkpO3ZhciBRZT1bNDgsRGUubGVuZ3RoK1BlLmxlbmd0aCs0LDIsRGUu''@;'; put 'put ''bGVuZ3RoXTtyZXR1cm4gUWU9UWUuY29uY2F0KERlLFsyLFBlLmxlbmd0aF0sUGUpLHJlLmZyb20oUWUpfShTLHllKX0oZGUsSWUsQWUpfWlmKCJyc2EiIT09a2UmJiJlY2RzYS9yc2EiIT09a2UpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7ZGU9cmUuY29uY2F0''@;'; put 'put ''KFtTZSxkZV0pO2Zvcih2YXIgVGU9SWUubW9kdWx1cy5ieXRlTGVuZ3RoKCksTWU9WzAsMV07ZGUubGVuZ3RoK01lLmxlbmd0aCsxPFRlOylNZS5wdXNoKDI1NSk7TWUucHVzaCgwKTtmb3IodmFyIGhlPS0xOysraGU8ZGUubGVuZ3RoOylNZS5wdXNoKGRlW2hlXSk7cmV0dXJuIFkoTWUsSWUp''@;'; put 'put ''fSxVLmV4cG9ydHMuZ2V0S2V5PUosVS5leHBvcnRzLm1ha2VLZXk9b2V9LDc3NTM6KFUsUSxqKT0+e3ZhciByZT1qKDU2NzkpLkJ1ZmZlcixhZT1qKDM1NTApLFk9aig2OTQ4KS5lYyxXPWooOTgwKSxOPWooMTMwOCk7ZnVuY3Rpb24gdGUoSyxKKXtpZihLLmNtcG4oMCk8PTApdGhyb3cgbmV3''@;'; put 'put ''IEVycm9yKCJpbnZhbGlkIHNpZyIpO2lmKEsuY21wKEopPj1KKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKX1VLmV4cG9ydHM9ZnVuY3Rpb24oSyxKLHNlLG9lLGNlKXt2YXIgZGU9VyhzZSk7aWYoImVjIj09PWRlLnR5cGUpe2lmKCJlY2RzYSIhPT1vZSYmImVjZHNhL3JzYSIhPT1v''@;'; put 'put ''ZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbihNZSxoZSxPKXt2YXIgej1OW08uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpXTtpZigheil0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY3VydmUgIitPLmRhdGEuYWxnb3JpdGht''@;'; put 'put ''LmN1cnZlLmpvaW4oIi4iKSk7cmV0dXJuIG5ldyBZKHopLnZlcmlmeShoZSxNZSxPLmRhdGEuc3ViamVjdFByaXZhdGVLZXkuZGF0YSl9KEssSixkZSl9aWYoImRzYSI9PT1kZS50eXBlKXtpZigiZHNhIiE9PW9lKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7cmV0''@;'; put 'put ''dXJuIGZ1bmN0aW9uKE1lLGhlLE8pe3ZhciB6PU8uZGF0YS5wLGVlPU8uZGF0YS5xLG5lPU8uZGF0YS5nLHg9Ty5kYXRhLnB1Yl9rZXksUD1XLnNpZ25hdHVyZS5kZWNvZGUoTWUsImRlciIpLFY9UC5zLFQ9UC5yO3RlKFYsZWUpLHRlKFQsZWUpO3ZhciBTPWFlLm1vbnQoeiksRj1WLmludm0o''@;'; put 'put ''ZWUpO3JldHVybiAwPT09bmUudG9SZWQoUykucmVkUG93KG5ldyBhZShoZSkubXVsKEYpLm1vZChlZSkpLmZyb21SZWQoKS5tdWwoeC50b1JlZChTKS5yZWRQb3coVC5tdWwoRikubW9kKGVlKSkuZnJvbVJlZCgpKS5tb2QoeikubW9kKGVlKS5jbXAoVCl9KEssSixkZSl9aWYoInJzYSIhPT1v''@;'; put 'put ''ZSYmImVjZHNhL3JzYSIhPT1vZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBrZXkgdHlwZSIpO0o9cmUuY29uY2F0KFtjZSxKXSk7Zm9yKHZhciB2ZT1kZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxBZT1bMV0sa2U9MDtKLmxlbmd0aCtBZS5sZW5ndGgrMjx2ZTspQWUucHVzaCgyNTUp''@;'; put 'put ''LGtlKys7QWUucHVzaCgwKTtmb3IodmFyIFNlPS0xOysrU2U8Si5sZW5ndGg7KUFlLnB1c2goSltTZV0pO0FlPXJlLmZyb20oQWUpO3ZhciBJZT1hZS5tb250KGRlLm1vZHVsdXMpO0s9KEs9bmV3IGFlKEspLnRvUmVkKEllKSkucmVkUG93KG5ldyBhZShkZS5wdWJsaWNFeHBvbmVudCkpLEs9''@;'; put 'put ''cmUuZnJvbShLLmZyb21SZWQoKS50b0FycmF5KCkpO3ZhciBUZT1rZTw4PzE6MDtmb3IodmU9TWF0aC5taW4oSy5sZW5ndGgsQWUubGVuZ3RoKSxLLmxlbmd0aCE9PUFlLmxlbmd0aCYmKFRlPTEpLFNlPS0xOysrU2U8dmU7KVRlfD1LW1NlXV5BZVtTZV07cmV0dXJuIDA9PT1UZX19LDU2Nzk6''@;'; put 'put ''KFUsUSxqKT0+e3ZhciByZT1qKDg3NjQpLGFlPXJlLkJ1ZmZlcjtmdW5jdGlvbiBZKE4sdGUpe2Zvcih2YXIgSyBpbiBOKXRlW0tdPU5bS119ZnVuY3Rpb24gVyhOLHRlLEspe3JldHVybiBhZShOLHRlLEspfWFlLmZyb20mJmFlLmFsbG9jJiZhZS5hbGxvY1Vuc2FmZSYmYWUuYWxsb2NVbnNh''@;'; put 'put ''ZmVTbG93P1UuZXhwb3J0cz1yZTooWShyZSxRKSxRLkJ1ZmZlcj1XKSxXLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGFlLnByb3RvdHlwZSksWShhZSxXKSxXLmZyb209ZnVuY3Rpb24oTix0ZSxLKXtpZigibnVtYmVyIj09dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQg''@;'; put 'put ''bXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gYWUoTix0ZSxLKX0sVy5hbGxvYz1mdW5jdGlvbihOLHRlLEspe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIEo9YWUoTik7cmV0dXJuIHZvaWQgMCE9''@;'; put 'put ''PXRlPyJzdHJpbmciPT10eXBlb2YgSz9KLmZpbGwodGUsSyk6Si5maWxsKHRlKTpKLmZpbGwoMCksSn0sVy5hbGxvY1Vuc2FmZT1mdW5jdGlvbihOKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBh''@;'; put 'put ''ZShOKX0sVy5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oTil7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gcmUuU2xvd0J1ZmZlcihOKX19LDcyOTU6KFUsUSxqKT0+e3ZhciByZT1qKDg3NjQpLkJ1''@;'; put 'put ''ZmZlcjtVLmV4cG9ydHM9ZnVuY3Rpb24oYWUsWSl7Zm9yKHZhciBXPU1hdGgubWluKGFlLmxlbmd0aCxZLmxlbmd0aCksTj1uZXcgcmUoVyksdGU9MDt0ZTxXOysrdGUpTlt0ZV09YWVbdGVdXllbdGVdO3JldHVybiBOfX0sODc2NDooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDUx''@;'; put 'put ''MDgpO2NvbnN0IGFlPWooOTc0MiksWT1qKDY0NSksVz0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcj9TeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpOm51bGw7US5CdWZmZXI9SyxRLlNsb3dCdWZmZXI9ZnVuY3Rp''@;'; put 'put ''b24oR2Upe3JldHVybitHZSE9R2UmJihHZT0wKSxLLmFsbG9jKCtHZSl9LFEuSU5TUEVDVF9NQVhfQllURVM9NTA7Y29uc3QgTj0yMTQ3NDgzNjQ3O2Z1bmN0aW9uIHRlKEdlKXtpZihHZT5OKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrR2UrJyIgaXMgaW52YWxpZCBmb3Ig''@;'; put 'put ''b3B0aW9uICJzaXplIicpO2NvbnN0IFVlPW5ldyBVaW50OEFycmF5KEdlKTtyZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKFVlLEsucHJvdG90eXBlKSxVZX1mdW5jdGlvbiBLKEdlLFVlLHl0KXtpZigibnVtYmVyIj09dHlwZW9mIEdlKXtpZigic3RyaW5nIj09dHlwZW9mIFVlKXRocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgc3RyaW5nLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3JldHVybiBvZShHZSl9cmV0dXJuIEooR2UsVWUseXQpfWZ1bmN0aW9uIEooR2UsVWUseXQpe2lmKCJzdHJpbmciPT10eXBlb2YgR2UpcmV0''@;'; put 'put ''dXJuIGZ1bmN0aW9uKGduLGRuKXtpZigic3RyaW5nIj09dHlwZW9mIGRuJiYiIiE9PWRufHwoZG49InV0ZjgiKSwhSy5pc0VuY29kaW5nKGRuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK2RuKTtjb25zdCB5bj0wfEFlKGduLGRuKTtsZXQgbG49dGUoeW4pO2Nv''@;'; put 'put ''bnN0IE5uPWxuLndyaXRlKGduLGRuKTtyZXR1cm4gTm4hPT15biYmKGxuPWxuLnNsaWNlKDAsTm4pKSxsbn0oR2UsVWUpO2lmKEFycmF5QnVmZmVyLmlzVmlldyhHZSkpcmV0dXJuIGZ1bmN0aW9uKGduKXtpZihsdChnbixVaW50OEFycmF5KSl7Y29uc3QgZG49bmV3IFVpbnQ4QXJyYXkoZ24p''@;'; put 'put ''O3JldHVybiBkZShkbi5idWZmZXIsZG4uYnl0ZU9mZnNldCxkbi5ieXRlTGVuZ3RoKX1yZXR1cm4gY2UoZ24pfShHZSk7aWYobnVsbD09R2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVm''@;'; put 'put ''ZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgR2UpO2lmKGx0KEdlLEFycmF5QnVmZmVyKXx8R2UmJmx0KEdlLmJ1ZmZlcixBcnJheUJ1ZmZlcil8fCJ1bmRlZmluZWQiIT10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXImJihsdChHZSxTaGFy''@;'; put 'put ''ZWRBcnJheUJ1ZmZlcil8fEdlJiZsdChHZS5idWZmZXIsU2hhcmVkQXJyYXlCdWZmZXIpKSlyZXR1cm4gZGUoR2UsVWUseXQpO2lmKCJudW1iZXIiPT10eXBlb2YgR2UpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIu''@;'; put 'put ''IFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7Y29uc3QganQ9R2UudmFsdWVPZiYmR2UudmFsdWVPZigpO2lmKG51bGwhPWp0JiZqdCE9PUdlKXJldHVybiBLLmZyb20oanQsVWUseXQpO2NvbnN0IEp0PWZ1bmN0aW9uKGduKXtpZihLLmlzQnVmZmVyKGduKSl7Y29uc3QgZG49MHx2ZShnbi5sZW5n''@;'; put 'put ''dGgpLHluPXRlKGRuKTtyZXR1cm4gMD09PXluLmxlbmd0aHx8Z24uY29weSh5biwwLDAsZG4pLHlufXJldHVybiB2b2lkIDAhPT1nbi5sZW5ndGg/Im51bWJlciIhPXR5cGVvZiBnbi5sZW5ndGh8fEx0KGduLmxlbmd0aCk/dGUoMCk6Y2UoZ24pOiJCdWZmZXIiPT09Z24udHlwZSYmQXJyYXku''@;'; put 'put ''aXNBcnJheShnbi5kYXRhKT9jZShnbi5kYXRhKTp2b2lkIDB9KEdlKTtpZihKdClyZXR1cm4gSnQ7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC50b1ByaW1pdGl2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIEdlW1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIEsu''@;'; put 'put ''ZnJvbShHZVtTeW1ib2wudG9QcmltaXRpdmVdKCJzdHJpbmciKSxVZSx5dCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJl''@;'; put 'put ''Y2VpdmVkIHR5cGUgIit0eXBlb2YgR2UpfWZ1bmN0aW9uIHNlKEdlKXtpZigibnVtYmVyIiE9dHlwZW9mIEdlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJzaXplIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJyk7aWYoR2U8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVl''@;'; put 'put ''ICInK0dlKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKX1mdW5jdGlvbiBvZShHZSl7cmV0dXJuIHNlKEdlKSx0ZShHZTwwPzA6MHx2ZShHZSkpfWZ1bmN0aW9uIGNlKEdlKXtjb25zdCBVZT1HZS5sZW5ndGg8MD8wOjB8dmUoR2UubGVuZ3RoKSx5dD10ZShVZSk7Zm9yKGxldCBq''@;'; put 'put ''dD0wO2p0PFVlO2p0Kz0xKXl0W2p0XT0yNTUmR2VbanRdO3JldHVybiB5dH1mdW5jdGlvbiBkZShHZSxVZSx5dCl7aWYoVWU8MHx8R2UuYnl0ZUxlbmd0aDxVZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignIm9mZnNldCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7aWYoR2UuYnl0ZUxl''@;'; put 'put ''bmd0aDxVZSsoeXR8fDApKXRocm93IG5ldyBSYW5nZUVycm9yKCcibGVuZ3RoIiBpcyBvdXRzaWRlIG9mIGJ1ZmZlciBib3VuZHMnKTtsZXQganQ7cmV0dXJuIGp0PXZvaWQgMD09PVVlJiZ2b2lkIDA9PT15dD9uZXcgVWludDhBcnJheShHZSk6dm9pZCAwPT09eXQ/bmV3IFVpbnQ4QXJyYXko''@;'; put 'put ''R2UsVWUpOm5ldyBVaW50OEFycmF5KEdlLFVlLHl0KSxPYmplY3Quc2V0UHJvdG90eXBlT2YoanQsSy5wcm90b3R5cGUpLGp0fWZ1bmN0aW9uIHZlKEdlKXtpZihHZT49Til0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byBhbGxvY2F0ZSBCdWZmZXIgbGFyZ2VyIHRoYW4gbWF4aW11''@;'; put 'put ''bSBzaXplOiAweCIrTi50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfEdlfWZ1bmN0aW9uIEFlKEdlLFVlKXtpZihLLmlzQnVmZmVyKEdlKSlyZXR1cm4gR2UubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyhHZSl8fGx0KEdlLEFycmF5QnVmZmVyKSlyZXR1cm4gR2UuYnl0ZUxl''@;'; put 'put ''bmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIEdlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBHZSk7Y29uc3QgeXQ9R2UubGVu''@;'; put 'put ''Z3RoLGp0PWFyZ3VtZW50cy5sZW5ndGg+MiYmITA9PT1hcmd1bWVudHNbMl07aWYoIWp0JiYwPT09eXQpcmV0dXJuIDA7bGV0IEp0PSExO2Zvcig7Oylzd2l0Y2goVWUpe2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIHl0O2Nhc2UidXRmOCI6Y2FzZSJ1dGYt''@;'; put 'put ''OCI6cmV0dXJuIF90KEdlKS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKnl0O2Nhc2UiaGV4IjpyZXR1cm4geXQ+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gdHQoR2UpLmxlbmd0aDtkZWZhdWx0OmlmKEp0KXJldHVy''@;'; put 'put ''biBqdD8tMTpfdChHZSkubGVuZ3RoO1VlPSgiIitVZSkudG9Mb3dlckNhc2UoKSxKdD0hMH19ZnVuY3Rpb24ga2UoR2UsVWUseXQpe2xldCBqdD0hMTtpZigodm9pZCAwPT09VWV8fFVlPDApJiYoVWU9MCksVWU+dGhpcy5sZW5ndGh8fCgodm9pZCAwPT09eXR8fHl0PnRoaXMubGVuZ3RoKSYm''@;'; put 'put ''KHl0PXRoaXMubGVuZ3RoKSx5dDw9MCl8fCh5dD4+Pj0wKTw9KFVlPj4+PTApKXJldHVybiIiO2ZvcihHZXx8KEdlPSJ1dGY4Iik7Oylzd2l0Y2goR2Upe2Nhc2UiaGV4IjpyZXR1cm4gUyh0aGlzLFVlLHl0KTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiB4KHRoaXMsVWUseXQpO2Nh''@;'; put 'put ''c2UiYXNjaWkiOnJldHVybiBWKHRoaXMsVWUseXQpO2Nhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIFQodGhpcyxVZSx5dCk7Y2FzZSJiYXNlNjQiOnJldHVybiBuZSh0aGlzLFVlLHl0KTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6''@;'; put 'put ''cmV0dXJuIEYodGhpcyxVZSx5dCk7ZGVmYXVsdDppZihqdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK0dlKTtHZT0oR2UrIiIpLnRvTG93ZXJDYXNlKCksanQ9ITB9fWZ1bmN0aW9uIFNlKEdlLFVlLHl0KXtjb25zdCBqdD1HZVtVZV07R2VbVWVdPUdlW3l0XSxH''@;'; put 'put ''ZVt5dF09anR9ZnVuY3Rpb24gSWUoR2UsVWUseXQsanQsSnQpe2lmKDA9PT1HZS5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiB5dD8oanQ9eXQseXQ9MCk6eXQ+MjE0NzQ4MzY0Nz95dD0yMTQ3NDgzNjQ3Onl0PC0yMTQ3NDgzNjQ4JiYoeXQ9LTIxNDc0ODM2NDgpLEx0KHl0''@;'; put 'put ''PSt5dCkmJih5dD1KdD8wOkdlLmxlbmd0aC0xKSx5dDwwJiYoeXQ9R2UubGVuZ3RoK3l0KSx5dD49R2UubGVuZ3RoKXtpZihKdClyZXR1cm4tMTt5dD1HZS5sZW5ndGgtMX1lbHNlIGlmKHl0PDApe2lmKCFKdClyZXR1cm4tMTt5dD0wfWlmKCJzdHJpbmciPT10eXBlb2YgVWUmJihVZT1LLmZy''@;'; put 'put ''b20oVWUsanQpKSxLLmlzQnVmZmVyKFVlKSlyZXR1cm4gMD09PVVlLmxlbmd0aD8tMTpUZShHZSxVZSx5dCxqdCxKdCk7aWYoIm51bWJlciI9PXR5cGVvZiBVZSlyZXR1cm4gVWUmPTI1NSwiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZj9KdD9VaW50OEFy''@;'; put 'put ''cmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwoR2UsVWUseXQpOlVpbnQ4QXJyYXkucHJvdG90eXBlLmxhc3RJbmRleE9mLmNhbGwoR2UsVWUseXQpOlRlKEdlLFtVZV0seXQsanQsSnQpO3Rocm93IG5ldyBUeXBlRXJyb3IoInZhbCBtdXN0IGJlIHN0cmluZywgbnVtYmVyIG9yIEJ1ZmZlciIp''@;'; put 'put ''fWZ1bmN0aW9uIFRlKEdlLFVlLHl0LGp0LEp0KXtsZXQgZ24sZG49MSx5bj1HZS5sZW5ndGgsbG49VWUubGVuZ3RoO2lmKHZvaWQgMCE9PWp0JiYoInVjczIiPT09KGp0PVN0cmluZyhqdCkudG9Mb3dlckNhc2UoKSl8fCJ1Y3MtMiI9PT1qdHx8InV0ZjE2bGUiPT09anR8fCJ1dGYtMTZsZSI9''@;'; put 'put ''PT1qdCkpe2lmKEdlLmxlbmd0aDwyfHxVZS5sZW5ndGg8MilyZXR1cm4tMTtkbj0yLHluLz0yLGxuLz0yLHl0Lz0yfWZ1bmN0aW9uIE5uKGJuLGVyKXtyZXR1cm4gMT09PWRuP2JuW2VyXTpibi5yZWFkVUludDE2QkUoZXIqZG4pfWlmKEp0KXtsZXQgYm49LTE7Zm9yKGduPXl0O2duPHluO2du''@;'; put 'put ''KyspaWYoTm4oR2UsZ24pPT09Tm4oVWUsLTE9PT1ibj8wOmduLWJuKSl7aWYoLTE9PT1ibiYmKGJuPWduKSxnbi1ibisxPT09bG4pcmV0dXJuIGJuKmRufWVsc2UtMSE9PWJuJiYoZ24tPWduLWJuKSxibj0tMX1lbHNlIGZvcih5dCtsbj55biYmKHl0PXluLWxuKSxnbj15dDtnbj49MDtnbi0t''@;'; put 'put ''KXtsZXQgYm49ITA7Zm9yKGxldCBlcj0wO2VyPGxuO2VyKyspaWYoTm4oR2UsZ24rZXIpIT09Tm4oVWUsZXIpKXtibj0hMTticmVha31pZihibilyZXR1cm4gZ259cmV0dXJuLTF9ZnVuY3Rpb24gTWUoR2UsVWUseXQsanQpe3l0PU51bWJlcih5dCl8fDA7Y29uc3QgSnQ9R2UubGVuZ3RoLXl0''@;'; put 'put ''O2p0PyhqdD1OdW1iZXIoanQpKT5KdCYmKGp0PUp0KTpqdD1KdDtjb25zdCBnbj1VZS5sZW5ndGg7bGV0IGRuO2ZvcihqdD5nbi8yJiYoanQ9Z24vMiksZG49MDtkbjxqdDsrK2RuKXtjb25zdCB5bj1wYXJzZUludChVZS5zdWJzdHIoMipkbiwyKSwxNik7aWYoTHQoeW4pKXJldHVybiBkbjtH''@;'; put 'put ''ZVt5dCtkbl09eW59cmV0dXJuIGRufWZ1bmN0aW9uIGhlKEdlLFVlLHl0LGp0KXtyZXR1cm4gZXQoX3QoVWUsR2UubGVuZ3RoLXl0KSxHZSx5dCxqdCl9ZnVuY3Rpb24gTyhHZSxVZSx5dCxqdCl7cmV0dXJuIGV0KGZ1bmN0aW9uKEp0KXtjb25zdCBnbj1bXTtmb3IobGV0IGRuPTA7ZG48SnQu''@;'; put 'put ''bGVuZ3RoOysrZG4pZ24ucHVzaCgyNTUmSnQuY2hhckNvZGVBdChkbikpO3JldHVybiBnbn0oVWUpLEdlLHl0LGp0KX1mdW5jdGlvbiB6KEdlLFVlLHl0LGp0KXtyZXR1cm4gZXQodHQoVWUpLEdlLHl0LGp0KX1mdW5jdGlvbiBlZShHZSxVZSx5dCxqdCl7cmV0dXJuIGV0KGZ1bmN0aW9uKEp0''@;'; put 'put ''LGduKXtsZXQgZG4seW4sbG47Y29uc3QgTm49W107Zm9yKGxldCBibj0wO2JuPEp0Lmxlbmd0aCYmISgoZ24tPTIpPDApOysrYm4pZG49SnQuY2hhckNvZGVBdChibikseW49ZG4+PjgsbG49ZG4lMjU2LE5uLnB1c2gobG4pLE5uLnB1c2goeW4pO3JldHVybiBObn0oVWUsR2UubGVuZ3RoLXl0''@;'; put 'put ''KSxHZSx5dCxqdCl9ZnVuY3Rpb24gbmUoR2UsVWUseXQpe3JldHVybiBhZS5mcm9tQnl0ZUFycmF5KDA9PT1VZSYmeXQ9PT1HZS5sZW5ndGg/R2U6R2Uuc2xpY2UoVWUseXQpKX1mdW5jdGlvbiB4KEdlLFVlLHl0KXt5dD1NYXRoLm1pbihHZS5sZW5ndGgseXQpO2NvbnN0IGp0PVtdO2xldCBK''@;'; put 'put ''dD1VZTtmb3IoO0p0PHl0Oyl7Y29uc3QgZ249R2VbSnRdO2xldCBkbj1udWxsLHluPWduPjIzOT80OmduPjIyMz8zOmduPjE5MT8yOjE7aWYoSnQreW48PXl0KXtsZXQgbG4sTm4sYm4sZXI7c3dpdGNoKHluKXtjYXNlIDE6Z248MTI4JiYoZG49Z24pO2JyZWFrO2Nhc2UgMjpsbj1HZVtKdCsx''@;'; put 'put ''XSwxMjg9PSgxOTImbG4pJiYoZXI9KDMxJmduKTw8Nnw2MyZsbixlcj4xMjcmJihkbj1lcikpO2JyZWFrO2Nhc2UgMzpsbj1HZVtKdCsxXSxObj1HZVtKdCsyXSwxMjg9PSgxOTImbG4pJiYxMjg9PSgxOTImTm4pJiYoZXI9KDE1JmduKTw8MTJ8KDYzJmxuKTw8Nnw2MyZObixlcj4yMDQ3JiYo''@;'; put 'put ''ZXI8NTUyOTZ8fGVyPjU3MzQzKSYmKGRuPWVyKSk7YnJlYWs7Y2FzZSA0OmxuPUdlW0p0KzFdLE5uPUdlW0p0KzJdLGJuPUdlW0p0KzNdLDEyOD09KDE5MiZsbikmJjEyOD09KDE5MiZObikmJjEyOD09KDE5MiZibikmJihlcj0oMTUmZ24pPDwxOHwoNjMmbG4pPDwxMnwoNjMmTm4pPDw2fDYz''@;'; put 'put ''JmJuLGVyPjY1NTM1JiZlcjwxMTE0MTEyJiYoZG49ZXIpKX19bnVsbD09PWRuPyhkbj02NTUzMyx5bj0xKTpkbj42NTUzNSYmKGRuLT02NTUzNixqdC5wdXNoKGRuPj4+MTAmMTAyM3w1NTI5NiksZG49NTYzMjB8MTAyMyZkbiksanQucHVzaChkbiksSnQrPXlufXJldHVybiBmdW5jdGlvbihn''@;'; put 'put ''bil7Y29uc3QgZG49Z24ubGVuZ3RoO2lmKGRuPD1QKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxnbik7bGV0IHluPSIiLGxuPTA7Zm9yKDtsbjxkbjspeW4rPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLGduLnNsaWNlKGxuLGxuKz1QKSk7cmV0dXJu''@;'; put 'put ''IHlufShqdCl9US5rTWF4TGVuZ3RoPU4sKEsuVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbigpe3RyeXtjb25zdCBHZT1uZXcgVWludDhBcnJheSgxKSxVZT17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihVZSxVaW50OEFycmF5LnBy''@;'; put 'put ''b3RvdHlwZSksT2JqZWN0LnNldFByb3RvdHlwZU9mKEdlLFVlKSw0Mj09PUdlLmZvbygpfWNhdGNoKEdlKXtyZXR1cm4hMX19KCkpfHx2b2lkIDA9PT1yZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHJlLmVycm9yfHxyZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50''@;'; put 'put ''OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KEsucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEw''@;'; put 'put ''LGdldDpmdW5jdGlvbigpe2lmKEsuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShLLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihLLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5''@;'; put 'put ''dGVPZmZzZXR9fSksSy5wb29sU2l6ZT04MTkyLEsuZnJvbT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEooR2UsVWUseXQpfSxPYmplY3Quc2V0UHJvdG90eXBlT2YoSy5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihLLFVpbnQ4QXJyYXkp''@;'; put 'put ''LEsuYWxsb2M9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBKdD1VZSxnbj15dCxzZShqdD1HZSksanQ8PTA/dGUoanQpOnZvaWQgMCE9PUp0PyJzdHJpbmciPT10eXBlb2YgZ24/dGUoanQpLmZpbGwoSnQsZ24pOnRlKGp0KS5maWxsKEp0KTp0ZShqdCk7dmFyIGp0LEp0LGdufSxLLmFsbG9j''@;'; put 'put ''VW5zYWZlPWZ1bmN0aW9uKEdlKXtyZXR1cm4gb2UoR2UpfSxLLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihHZSl7cmV0dXJuIG9lKEdlKX0sSy5pc0J1ZmZlcj1mdW5jdGlvbihHZSl7cmV0dXJuIG51bGwhPUdlJiYhMD09PUdlLl9pc0J1ZmZlciYmR2UhPT1LLnByb3RvdHlwZX0sSy5jb21w''@;'; put 'put ''YXJlPWZ1bmN0aW9uKEdlLFVlKXtpZihsdChHZSxVaW50OEFycmF5KSYmKEdlPUsuZnJvbShHZSxHZS5vZmZzZXQsR2UuYnl0ZUxlbmd0aCkpLGx0KFVlLFVpbnQ4QXJyYXkpJiYoVWU9Sy5mcm9tKFVlLFVlLm9mZnNldCxVZS5ieXRlTGVuZ3RoKSksIUsuaXNCdWZmZXIoR2UpfHwhSy5pc0J1''@;'; put 'put ''ZmZlcihVZSkpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJidWYxIiwgImJ1ZjIiIGFyZ3VtZW50cyBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7aWYoR2U9PT1VZSlyZXR1cm4gMDtsZXQgeXQ9R2UubGVuZ3RoLGp0PVVlLmxlbmd0aDtmb3IobGV0IEp0PTAs''@;'; put 'put ''Z249TWF0aC5taW4oeXQsanQpO0p0PGduOysrSnQpaWYoR2VbSnRdIT09VWVbSnRdKXt5dD1HZVtKdF0sanQ9VWVbSnRdO2JyZWFrfXJldHVybiB5dDxqdD8tMTpqdDx5dD8xOjB9LEsuaXNFbmNvZGluZz1mdW5jdGlvbihHZSl7c3dpdGNoKFN0cmluZyhHZSkudG9Mb3dlckNhc2UoKSl7Y2Fz''@;'; put 'put ''ZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fSxLLmNv''@;'; put 'put ''bmNhdD1mdW5jdGlvbihHZSxVZSl7aWYoIUFycmF5LmlzQXJyYXkoR2UpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtpZigwPT09R2UubGVuZ3RoKXJldHVybiBLLmFsbG9jKDApO2xldCB5dDtpZih2b2lkIDA9PT1V''@;'; put 'put ''ZSlmb3IoVWU9MCx5dD0wO3l0PEdlLmxlbmd0aDsrK3l0KVVlKz1HZVt5dF0ubGVuZ3RoO2NvbnN0IGp0PUsuYWxsb2NVbnNhZmUoVWUpO2xldCBKdD0wO2Zvcih5dD0wO3l0PEdlLmxlbmd0aDsrK3l0KXtsZXQgZ249R2VbeXRdO2lmKGx0KGduLFVpbnQ4QXJyYXkpKUp0K2duLmxlbmd0aD5q''@;'; put 'put ''dC5sZW5ndGg/KEsuaXNCdWZmZXIoZ24pfHwoZ249Sy5mcm9tKGduKSksZ24uY29weShqdCxKdCkpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKGp0LGduLEp0KTtlbHNle2lmKCFLLmlzQnVmZmVyKGduKSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBi''@;'; put 'put ''ZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7Z24uY29weShqdCxKdCl9SnQrPWduLmxlbmd0aH1yZXR1cm4ganR9LEsuYnl0ZUxlbmd0aD1BZSxLLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsSy5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7Y29uc3QgR2U9dGhpcy5sZW5ndGg7aWYoR2UlMiE9''@;'; put 'put ''MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IobGV0IFVlPTA7VWU8R2U7VWUrPTIpU2UodGhpcyxVZSxVZSsxKTtyZXR1cm4gdGhpc30sSy5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7Y29uc3QgR2U9dGhp''@;'; put 'put ''cy5sZW5ndGg7aWYoR2UlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IobGV0IFVlPTA7VWU8R2U7VWUrPTQpU2UodGhpcyxVZSxVZSszKSxTZSh0aGlzLFVlKzEsVWUrMik7cmV0dXJuIHRoaXN9LEsucHJv''@;'; put 'put ''dG90eXBlLnN3YXA2ND1mdW5jdGlvbigpe2NvbnN0IEdlPXRoaXMubGVuZ3RoO2lmKEdlJTghPTApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA2NC1iaXRzIik7Zm9yKGxldCBVZT0wO1VlPEdlO1VlKz04KVNlKHRoaXMsVWUsVWUrNyks''@;'; put 'put ''U2UodGhpcyxVZSsxLFVlKzYpLFNlKHRoaXMsVWUrMixVZSs1KSxTZSh0aGlzLFVlKzMsVWUrNCk7cmV0dXJuIHRoaXN9LEsucHJvdG90eXBlLnRvTG9jYWxlU3RyaW5nPUsucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7Y29uc3QgR2U9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT1HZT8i''@;'; put 'put ''IjowPT09YXJndW1lbnRzLmxlbmd0aD94KHRoaXMsMCxHZSk6a2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxLLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24oR2Upe2lmKCFLLmlzQnVmZmVyKEdlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIik7cmV0''@;'; put 'put ''dXJuIHRoaXM9PT1HZXx8MD09PUsuY29tcGFyZSh0aGlzLEdlKX0sSy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe2xldCBHZT0iIjtjb25zdCBVZT1RLklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiBHZT10aGlzLnRvU3RyaW5nKCJoZXgiLDAsVWUpLnJlcGxhY2UoLyguezJ9KS9nLCIk''@;'; put 'put ''MSAiKS50cmltKCksdGhpcy5sZW5ndGg+VWUmJihHZSs9IiAuLi4gIiksIjxCdWZmZXIgIitHZSsiPiJ9LFcmJihLLnByb3RvdHlwZVtXXT1LLnByb3RvdHlwZS5pbnNwZWN0KSxLLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKEdlLFVlLHl0LGp0LEp0KXtpZihsdChHZSxVaW50OEFycmF5''@;'; put 'put ''KSYmKEdlPUsuZnJvbShHZSxHZS5vZmZzZXQsR2UuYnl0ZUxlbmd0aCkpLCFLLmlzQnVmZmVyKEdlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVv''@;'; put 'put ''ZiBHZSk7aWYodm9pZCAwPT09VWUmJihVZT0wKSx2b2lkIDA9PT15dCYmKHl0PUdlP0dlLmxlbmd0aDowKSx2b2lkIDA9PT1qdCYmKGp0PTApLHZvaWQgMD09PUp0JiYoSnQ9dGhpcy5sZW5ndGgpLFVlPDB8fHl0PkdlLmxlbmd0aHx8anQ8MHx8SnQ+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJh''@;'; put 'put ''bmdlRXJyb3IoIm91dCBvZiByYW5nZSBpbmRleCIpO2lmKGp0Pj1KdCYmVWU+PXl0KXJldHVybiAwO2lmKGp0Pj1KdClyZXR1cm4tMTtpZihVZT49eXQpcmV0dXJuIDE7aWYodGhpcz09PUdlKXJldHVybiAwO2xldCBnbj0oSnQ+Pj49MCktKGp0Pj4+PTApLGRuPSh5dD4+Pj0wKS0oVWU+Pj49''@;'; put 'put ''MCk7Y29uc3QgeW49TWF0aC5taW4oZ24sZG4pLGxuPXRoaXMuc2xpY2UoanQsSnQpLE5uPUdlLnNsaWNlKFVlLHl0KTtmb3IobGV0IGJuPTA7Ym48eW47KytibilpZihsbltibl0hPT1Obltibl0pe2duPWxuW2JuXSxkbj1Obltibl07YnJlYWt9cmV0dXJuIGduPGRuPy0xOmRuPGduPzE6MH0s''@;'; put 'put ''Sy5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybi0xIT09dGhpcy5pbmRleE9mKEdlLFVlLHl0KX0sSy5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEllKHRoaXMsR2UsVWUseXQsITApfSxLLnByb3RvdHlwZS5sYXN0SW5kZXhP''@;'; put 'put ''Zj1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEllKHRoaXMsR2UsVWUseXQsITEpfSxLLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihHZSxVZSx5dCxqdCl7aWYodm9pZCAwPT09VWUpanQ9InV0ZjgiLHl0PXRoaXMubGVuZ3RoLFVlPTA7ZWxzZSBpZih2b2lkIDA9PT15dCYmInN0cmluZyI9''@;'; put 'put ''PXR5cGVvZiBVZSlqdD1VZSx5dD10aGlzLmxlbmd0aCxVZT0wO2Vsc2V7aWYoIWlzRmluaXRlKFVlKSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZmZlci53cml0ZShzdHJpbmcsIGVuY29kaW5nLCBvZmZzZXRbLCBsZW5ndGhdKSBpcyBubyBsb25nZXIgc3VwcG9ydGVkIik7VWU+Pj49MCxpc0Zpbml0''@;'; put 'put ''ZSh5dCk/KHl0Pj4+PTAsdm9pZCAwPT09anQmJihqdD0idXRmOCIpKTooanQ9eXQseXQ9dm9pZCAwKX1jb25zdCBKdD10aGlzLmxlbmd0aC1VZTtpZigodm9pZCAwPT09eXR8fHl0Pkp0KSYmKHl0PUp0KSxHZS5sZW5ndGg+MCYmKHl0PDB8fFVlPDApfHxVZT50aGlzLmxlbmd0aCl0aHJvdyBu''@;'; put 'put ''ZXcgUmFuZ2VFcnJvcigiQXR0ZW1wdCB0byB3cml0ZSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMiKTtqdHx8KGp0PSJ1dGY4Iik7bGV0IGduPSExO2Zvcig7Oylzd2l0Y2goanQpe2Nhc2UiaGV4IjpyZXR1cm4gTWUodGhpcyxHZSxVZSx5dCk7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4g''@;'; put 'put ''aGUodGhpcyxHZSxVZSx5dCk7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gTyh0aGlzLEdlLFVlLHl0KTtjYXNlImJhc2U2NCI6cmV0dXJuIHoodGhpcyxHZSxVZSx5dCk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2''@;'; put 'put ''bGUiOnJldHVybiBlZSh0aGlzLEdlLFVlLHl0KTtkZWZhdWx0OmlmKGduKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIranQpO2p0PSgiIitqdCkudG9Mb3dlckNhc2UoKSxnbj0hMH19LEsucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJC''@;'; put 'put ''dWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07Y29uc3QgUD00MDk2O2Z1bmN0aW9uIFYoR2UsVWUseXQpe2xldCBqdD0iIjt5dD1NYXRoLm1pbihHZS5sZW5ndGgseXQpO2ZvcihsZXQgSnQ9VWU7SnQ8eXQ7KytKdClqdCs9U3RyaW5n''@;'; put 'put ''LmZyb21DaGFyQ29kZSgxMjcmR2VbSnRdKTtyZXR1cm4ganR9ZnVuY3Rpb24gVChHZSxVZSx5dCl7bGV0IGp0PSIiO3l0PU1hdGgubWluKEdlLmxlbmd0aCx5dCk7Zm9yKGxldCBKdD1VZTtKdDx5dDsrK0p0KWp0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKEdlW0p0XSk7cmV0dXJuIGp0fWZ1bmN0''@;'; put 'put ''aW9uIFMoR2UsVWUseXQpe2NvbnN0IGp0PUdlLmxlbmd0aDsoIVVlfHxVZTwwKSYmKFVlPTApLCgheXR8fHl0PDB8fHl0Pmp0KSYmKHl0PWp0KTtsZXQgSnQ9IiI7Zm9yKGxldCBnbj1VZTtnbjx5dDsrK2duKUp0Kz1DdFtHZVtnbl1dO3JldHVybiBKdH1mdW5jdGlvbiBGKEdlLFVlLHl0KXtj''@;'; put 'put ''b25zdCBqdD1HZS5zbGljZShVZSx5dCk7bGV0IEp0PSIiO2ZvcihsZXQgZ249MDtnbjxqdC5sZW5ndGgtMTtnbis9MilKdCs9U3RyaW5nLmZyb21DaGFyQ29kZShqdFtnbl0rMjU2Kmp0W2duKzFdKTtyZXR1cm4gSnR9ZnVuY3Rpb24geWUoR2UsVWUseXQpe2lmKEdlJTEhPTB8fEdlPDApdGhy''@;'; put 'put ''b3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBpcyBub3QgdWludCIpO2lmKEdlK1VlPnl0KXRocm93IG5ldyBSYW5nZUVycm9yKCJUcnlpbmcgdG8gYWNjZXNzIGJleW9uZCBidWZmZXIgbGVuZ3RoIil9ZnVuY3Rpb24gQ2UoR2UsVWUseXQsanQsSnQsZ24pe2lmKCFLLmlzQnVmZmVyKEdlKSl0''@;'; put 'put ''aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoVWU+SnR8fFVlPGduKXRocm93IG5ldyBSYW5nZUVycm9yKCcidmFsdWUiIGFyZ3VtZW50IGlzIG91dCBvZiBib3VuZHMnKTtpZih5dCtqdD5HZS5sZW5ndGgpdGhyb3cg''@;'; put 'put ''bmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIERlKEdlLFVlLHl0LGp0LEp0KXtBdChVZSxqdCxKdCxHZSx5dCw3KTtsZXQgZ249TnVtYmVyKFVlJkJpZ0ludCg0Mjk0OTY3Mjk1KSk7R2VbeXQrK109Z24sZ24+Pj04LEdlW3l0KytdPWduLGduPj49OCxHZVt5''@;'; put 'put ''dCsrXT1nbixnbj4+PTgsR2VbeXQrK109Z247bGV0IGRuPU51bWJlcihVZT4+QmlnSW50KDMyKSZCaWdJbnQoNDI5NDk2NzI5NSkpO3JldHVybiBHZVt5dCsrXT1kbixkbj4+PTgsR2VbeXQrK109ZG4sZG4+Pj04LEdlW3l0KytdPWRuLGRuPj49OCxHZVt5dCsrXT1kbix5dH1mdW5jdGlvbiBQ''@;'; put 'put ''ZShHZSxVZSx5dCxqdCxKdCl7QXQoVWUsanQsSnQsR2UseXQsNyk7bGV0IGduPU51bWJlcihVZSZCaWdJbnQoNDI5NDk2NzI5NSkpO0dlW3l0KzddPWduLGduPj49OCxHZVt5dCs2XT1nbixnbj4+PTgsR2VbeXQrNV09Z24sZ24+Pj04LEdlW3l0KzRdPWduO2xldCBkbj1OdW1iZXIoVWU+PkJp''@;'; put 'put ''Z0ludCgzMikmQmlnSW50KDQyOTQ5NjcyOTUpKTtyZXR1cm4gR2VbeXQrM109ZG4sZG4+Pj04LEdlW3l0KzJdPWRuLGRuPj49OCxHZVt5dCsxXT1kbixkbj4+PTgsR2VbeXRdPWRuLHl0Kzh9ZnVuY3Rpb24gUWUoR2UsVWUseXQsanQsSnQsZ24pe2lmKHl0K2p0PkdlLmxlbmd0aCl0aHJvdyBu''@;'; put 'put ''ZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoeXQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gJGUoR2UsVWUseXQsanQsSnQpe3JldHVybiBVZT0rVWUseXQ+Pj49MCxKdHx8UWUoR2UsMCx5dCw0KSxZLndyaXRlKEdl''@;'; put 'put ''LFVlLHl0LGp0LDIzLDQpLHl0KzR9ZnVuY3Rpb24gZ3QoR2UsVWUseXQsanQsSnQpe3JldHVybiBVZT0rVWUseXQ+Pj49MCxKdHx8UWUoR2UsMCx5dCw4KSxZLndyaXRlKEdlLFVlLHl0LGp0LDUyLDgpLHl0Kzh9Sy5wcm90b3R5cGUuc2xpY2U9ZnVuY3Rpb24oR2UsVWUpe2NvbnN0IHl0PXRo''@;'; put 'put ''aXMubGVuZ3RoOyhHZT1+fkdlKTwwPyhHZSs9eXQpPDAmJihHZT0wKTpHZT55dCYmKEdlPXl0KSwoVWU9dm9pZCAwPT09VWU/eXQ6fn5VZSk8MD8oVWUrPXl0KTwwJiYoVWU9MCk6VWU+eXQmJihVZT15dCksVWU8R2UmJihVZT1HZSk7Y29uc3QganQ9dGhpcy5zdWJhcnJheShHZSxVZSk7cmV0''@;'; put 'put ''dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihqdCxLLnByb3RvdHlwZSksanR9LEsucHJvdG90eXBlLnJlYWRVaW50TEU9Sy5wcm90b3R5cGUucmVhZFVJbnRMRT1mdW5jdGlvbihHZSxVZSx5dCl7R2U+Pj49MCxVZT4+Pj0wLHl0fHx5ZShHZSxVZSx0aGlzLmxlbmd0aCk7bGV0IGp0PXRoaXNb''@;'; put 'put ''R2VdLEp0PTEsZ249MDtmb3IoOysrZ248VWUmJihKdCo9MjU2KTspanQrPXRoaXNbR2UrZ25dKkp0O3JldHVybiBqdH0sSy5wcm90b3R5cGUucmVhZFVpbnRCRT1LLnByb3RvdHlwZS5yZWFkVUludEJFPWZ1bmN0aW9uKEdlLFVlLHl0KXtHZT4+Pj0wLFVlPj4+PTAseXR8fHllKEdlLFVlLHRo''@;'; put 'put ''aXMubGVuZ3RoKTtsZXQganQ9dGhpc1tHZSstLVVlXSxKdD0xO2Zvcig7VWU+MCYmKEp0Kj0yNTYpOylqdCs9dGhpc1tHZSstLVVlXSpKdDtyZXR1cm4ganR9LEsucHJvdG90eXBlLnJlYWRVaW50OD1LLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0w''@;'; put 'put ''LFVlfHx5ZShHZSwxLHRoaXMubGVuZ3RoKSx0aGlzW0dlXX0sSy5wcm90b3R5cGUucmVhZFVpbnQxNkxFPUsucHJvdG90eXBlLnJlYWRVSW50MTZMRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDIsdGhpcy5sZW5ndGgpLHRoaXNbR2VdfHRoaXNbR2UrMV08PDh9''@;'; put 'put ''LEsucHJvdG90eXBlLnJlYWRVaW50MTZCRT1LLnByb3RvdHlwZS5yZWFkVUludDE2QkU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSwyLHRoaXMubGVuZ3RoKSx0aGlzW0dlXTw8OHx0aGlzW0dlKzFdfSxLLnByb3RvdHlwZS5yZWFkVWludDMyTEU9Sy5wcm90b3R5''@;'; put 'put ''cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsNCx0aGlzLmxlbmd0aCksKHRoaXNbR2VdfHRoaXNbR2UrMV08PDh8dGhpc1tHZSsyXTw8MTYpKzE2Nzc3MjE2KnRoaXNbR2UrM119LEsucHJvdG90eXBlLnJlYWRVaW50MzJCRT1LLnByb3Rv''@;'; put 'put ''dHlwZS5yZWFkVUludDMyQkU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw0LHRoaXMubGVuZ3RoKSwxNjc3NzIxNip0aGlzW0dlXSsodGhpc1tHZSsxXTw8MTZ8dGhpc1tHZSsyXTw8OHx0aGlzW0dlKzNdKX0sSy5wcm90b3R5cGUucmVhZEJpZ1VJbnQ2NExFPWZ0''@;'; put 'put ''KGZ1bmN0aW9uKEdlKXtodChHZT4+Pj0wLCJvZmZzZXQiKTtjb25zdCBVZT10aGlzW0dlXSx5dD10aGlzW0dlKzddO3ZvaWQgMCE9PVVlJiZ2b2lkIDAhPT15dHx8QnQoR2UsdGhpcy5sZW5ndGgtOCk7Y29uc3QganQ9VWUrMjU2KnRoaXNbKytHZV0rNjU1MzYqdGhpc1srK0dlXSt0aGlzWysr''@;'; put 'put ''R2VdKnhNKDIsMjQpLEp0PXRoaXNbKytHZV0rMjU2KnRoaXNbKytHZV0rNjU1MzYqdGhpc1srK0dlXSt5dCp4TSgyLDI0KTtyZXR1cm4gQmlnSW50KGp0KSsoQmlnSW50KEp0KTw8QmlnSW50KDMyKSl9KSxLLnByb3RvdHlwZS5yZWFkQmlnVUludDY0QkU9ZnQoZnVuY3Rpb24oR2Upe2h0KEdl''@;'; put 'put ''Pj4+PTAsIm9mZnNldCIpO2NvbnN0IFVlPXRoaXNbR2VdLHl0PXRoaXNbR2UrN107dm9pZCAwIT09VWUmJnZvaWQgMCE9PXl0fHxCdChHZSx0aGlzLmxlbmd0aC04KTtjb25zdCBqdD1VZSp4TSgyLDI0KSs2NTUzNip0aGlzWysrR2VdKzI1Nip0aGlzWysrR2VdK3RoaXNbKytHZV0sSnQ9dGhp''@;'; put 'put ''c1srK0dlXSp4TSgyLDI0KSs2NTUzNip0aGlzWysrR2VdKzI1Nip0aGlzWysrR2VdK3l0O3JldHVybihCaWdJbnQoanQpPDxCaWdJbnQoMzIpKStCaWdJbnQoSnQpfSksSy5wcm90b3R5cGUucmVhZEludExFPWZ1bmN0aW9uKEdlLFVlLHl0KXtHZT4+Pj0wLFVlPj4+PTAseXR8fHllKEdlLFVl''@;'; put 'put ''LHRoaXMubGVuZ3RoKTtsZXQganQ9dGhpc1tHZV0sSnQ9MSxnbj0wO2Zvcig7KytnbjxVZSYmKEp0Kj0yNTYpOylqdCs9dGhpc1tHZStnbl0qSnQ7cmV0dXJuIEp0Kj0xMjgsanQ+PUp0JiYoanQtPU1hdGgucG93KDIsOCpVZSkpLGp0fSxLLnByb3RvdHlwZS5yZWFkSW50QkU9ZnVuY3Rpb24o''@;'; put 'put ''R2UsVWUseXQpe0dlPj4+PTAsVWU+Pj49MCx5dHx8eWUoR2UsVWUsdGhpcy5sZW5ndGgpO2xldCBqdD1VZSxKdD0xLGduPXRoaXNbR2UrLS1qdF07Zm9yKDtqdD4wJiYoSnQqPTI1Nik7KWduKz10aGlzW0dlKy0tanRdKkp0O3JldHVybiBKdCo9MTI4LGduPj1KdCYmKGduLT1NYXRoLnBvdygy''@;'; put 'put ''LDgqVWUpKSxnbn0sSy5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1tHZV0/LTEqKDI1NS10aGlzW0dlXSsxKTp0aGlzW0dlXX0sSy5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24o''@;'; put 'put ''R2UsVWUpe0dlPj4+PTAsVWV8fHllKEdlLDIsdGhpcy5sZW5ndGgpO2NvbnN0IHl0PXRoaXNbR2VdfHRoaXNbR2UrMV08PDg7cmV0dXJuIDMyNzY4Jnl0PzQyOTQ5MDE3NjB8eXQ6eXR9LEsucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKEdlLFVlKXtHZT4+Pj0wLFVlfHx5ZShHZSwy''@;'; put 'put ''LHRoaXMubGVuZ3RoKTtjb25zdCB5dD10aGlzW0dlKzFdfHRoaXNbR2VdPDw4O3JldHVybiAzMjc2OCZ5dD80Mjk0OTAxNzYwfHl0Onl0fSxLLnByb3RvdHlwZS5yZWFkSW50MzJMRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDQsdGhpcy5sZW5ndGgpLHRoaXNb''@;'; put 'put ''R2VdfHRoaXNbR2UrMV08PDh8dGhpc1tHZSsyXTw8MTZ8dGhpc1tHZSszXTw8MjR9LEsucHJvdG90eXBlLnJlYWRJbnQzMkJFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsNCx0aGlzLmxlbmd0aCksdGhpc1tHZV08PDI0fHRoaXNbR2UrMV08PDE2fHRoaXNbR2Ur''@;'; put 'put ''Ml08PDh8dGhpc1tHZSszXX0sSy5wcm90b3R5cGUucmVhZEJpZ0ludDY0TEU9ZnQoZnVuY3Rpb24oR2Upe2h0KEdlPj4+PTAsIm9mZnNldCIpO2NvbnN0IFVlPXRoaXNbR2VdLHl0PXRoaXNbR2UrN107cmV0dXJuIHZvaWQgMCE9PVVlJiZ2b2lkIDAhPT15dHx8QnQoR2UsdGhpcy5sZW5ndGgt''@;'; put 'put ''OCksKEJpZ0ludCh0aGlzW0dlKzRdKzI1Nip0aGlzW0dlKzVdKzY1NTM2KnRoaXNbR2UrNl0rKHl0PDwyNCkpPDxCaWdJbnQoMzIpKStCaWdJbnQoVWUrMjU2KnRoaXNbKytHZV0rNjU1MzYqdGhpc1srK0dlXSsxNjc3NzIxNip0aGlzWysrR2VdKX0pLEsucHJvdG90eXBlLnJlYWRCaWdJbnQ2''@;'; put 'put ''NEJFPWZ0KGZ1bmN0aW9uKEdlKXtodChHZT4+Pj0wLCJvZmZzZXQiKTtjb25zdCBVZT10aGlzW0dlXSx5dD10aGlzW0dlKzddO3ZvaWQgMCE9PVVlJiZ2b2lkIDAhPT15dHx8QnQoR2UsdGhpcy5sZW5ndGgtOCk7Y29uc3QganQ9KFVlPDwyNCkrNjU1MzYqdGhpc1srK0dlXSsyNTYqdGhpc1sr''@;'; put 'put ''K0dlXSt0aGlzWysrR2VdO3JldHVybihCaWdJbnQoanQpPDxCaWdJbnQoMzIpKStCaWdJbnQoMTY3NzcyMTYqdGhpc1srK0dlXSs2NTUzNip0aGlzWysrR2VdKzI1Nip0aGlzWysrR2VdK3l0KX0pLEsucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49''@;'; put 'put ''MCxVZXx8eWUoR2UsNCx0aGlzLmxlbmd0aCksWS5yZWFkKHRoaXMsR2UsITAsMjMsNCl9LEsucHJvdG90eXBlLnJlYWRGbG9hdEJFPWZ1bmN0aW9uKEdlLFVlKXtyZXR1cm4gR2U+Pj49MCxVZXx8eWUoR2UsNCx0aGlzLmxlbmd0aCksWS5yZWFkKHRoaXMsR2UsITEsMjMsNCl9LEsucHJvdG90''@;'; put 'put ''eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbihHZSxVZSl7cmV0dXJuIEdlPj4+PTAsVWV8fHllKEdlLDgsdGhpcy5sZW5ndGgpLFkucmVhZCh0aGlzLEdlLCEwLDUyLDgpfSxLLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24oR2UsVWUpe3JldHVybiBHZT4+Pj0wLFVlfHx5ZShHZSw4''@;'; put 'put ''LHRoaXMubGVuZ3RoKSxZLnJlYWQodGhpcyxHZSwhMSw1Miw4KX0sSy5wcm90b3R5cGUud3JpdGVVaW50TEU9Sy5wcm90b3R5cGUud3JpdGVVSW50TEU9ZnVuY3Rpb24oR2UsVWUseXQsanQpe0dlPStHZSxVZT4+Pj0wLHl0Pj4+PTAsIWp0JiZDZSh0aGlzLEdlLFVlLHl0LE1hdGgucG93KDIs''@;'; put 'put ''OCp5dCktMSwwKTtsZXQgSnQ9MSxnbj0wO2Zvcih0aGlzW1VlXT0yNTUmR2U7Kytnbjx5dCYmKEp0Kj0yNTYpOyl0aGlzW1VlK2duXT1HZS9KdCYyNTU7cmV0dXJuIFVlK3l0fSxLLnByb3RvdHlwZS53cml0ZVVpbnRCRT1LLnByb3RvdHlwZS53cml0ZVVJbnRCRT1mdW5jdGlvbihHZSxVZSx5''@;'; put 'put ''dCxqdCl7R2U9K0dlLFVlPj4+PTAseXQ+Pj49MCwhanQmJkNlKHRoaXMsR2UsVWUseXQsTWF0aC5wb3coMiw4Knl0KS0xLDApO2xldCBKdD15dC0xLGduPTE7Zm9yKHRoaXNbVWUrSnRdPTI1NSZHZTstLUp0Pj0wJiYoZ24qPTI1Nik7KXRoaXNbVWUrSnRdPUdlL2duJjI1NTtyZXR1cm4gVWUr''@;'; put 'put ''eXR9LEsucHJvdG90eXBlLndyaXRlVWludDg9Sy5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDEsMjU1LDApLHRoaXNbVWVdPTI1NSZHZSxVZSsxfSxLLnByb3RvdHlwZS53cml0ZVVpbnQxNkxF''@;'; put 'put ''PUsucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSwyLDY1NTM1LDApLHRoaXNbVWVdPTI1NSZHZSx0aGlzW1VlKzFdPUdlPj4+OCxVZSsyfSxLLnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPUsu''@;'; put 'put ''cHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSwyLDY1NTM1LDApLHRoaXNbVWVdPUdlPj4+OCx0aGlzW1VlKzFdPTI1NSZHZSxVZSsyfSxLLnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPUsucHJv''@;'; put 'put ''dG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5dHx8Q2UodGhpcyxHZSxVZSw0LDQyOTQ5NjcyOTUsMCksdGhpc1tVZSszXT1HZT4+PjI0LHRoaXNbVWUrMl09R2U+Pj4xNix0aGlzW1VlKzFdPUdlPj4+OCx0aGlzW1VlXT0yNTUm''@;'; put 'put ''R2UsVWUrNH0sSy5wcm90b3R5cGUud3JpdGVVaW50MzJCRT1LLnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gR2U9K0dlLFVlPj4+PTAseXR8fENlKHRoaXMsR2UsVWUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbVWVdPUdlPj4+MjQsdGhpc1tVZSsxXT1H''@;'; put 'put ''ZT4+PjE2LHRoaXNbVWUrMl09R2U+Pj44LHRoaXNbVWUrM109MjU1JkdlLFVlKzR9LEsucHJvdG90eXBlLndyaXRlQmlnVUludDY0TEU9ZnQoZnVuY3Rpb24oR2UsVWU9MCl7cmV0dXJuIERlKHRoaXMsR2UsVWUsQmlnSW50KDApLEJpZ0ludCgiMHhmZmZmZmZmZmZmZmZmZmZmIikpfSksSy5w''@;'; put 'put ''cm90b3R5cGUud3JpdGVCaWdVSW50NjRCRT1mdChmdW5jdGlvbihHZSxVZT0wKXtyZXR1cm4gUGUodGhpcyxHZSxVZSxCaWdJbnQoMCksQmlnSW50KCIweGZmZmZmZmZmZmZmZmZmZmYiKSl9KSxLLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKEdlLFVlLHl0LGp0KXtpZihHZT0rR2Us''@;'; put 'put ''VWU+Pj49MCwhanQpe2NvbnN0IHluPU1hdGgucG93KDIsOCp5dC0xKTtDZSh0aGlzLEdlLFVlLHl0LHluLTEsLXluKX1sZXQgSnQ9MCxnbj0xLGRuPTA7Zm9yKHRoaXNbVWVdPTI1NSZHZTsrK0p0PHl0JiYoZ24qPTI1Nik7KUdlPDAmJjA9PT1kbiYmMCE9PXRoaXNbVWUrSnQtMV0mJihkbj0x''@;'; put 'put ''KSx0aGlzW1VlK0p0XT0oR2UvZ24+PjApLWRuJjI1NTtyZXR1cm4gVWUreXR9LEsucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24oR2UsVWUseXQsanQpe2lmKEdlPStHZSxVZT4+Pj0wLCFqdCl7Y29uc3QgeW49TWF0aC5wb3coMiw4Knl0LTEpO0NlKHRoaXMsR2UsVWUseXQseW4tMSwt''@;'; put 'put ''eW4pfWxldCBKdD15dC0xLGduPTEsZG49MDtmb3IodGhpc1tVZStKdF09MjU1JkdlOy0tSnQ+PTAmJihnbio9MjU2KTspR2U8MCYmMD09PWRuJiYwIT09dGhpc1tVZStKdCsxXSYmKGRuPTEpLHRoaXNbVWUrSnRdPShHZS9nbj4+MCktZG4mMjU1O3JldHVybiBVZSt5dH0sSy5wcm90b3R5cGUu''@;'; put 'put ''d3JpdGVJbnQ4PWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gR2U9K0dlLFVlPj4+PTAseXR8fENlKHRoaXMsR2UsVWUsMSwxMjcsLTEyOCksR2U8MCYmKEdlPTI1NStHZSsxKSx0aGlzW1VlXT0yNTUmR2UsVWUrMX0sSy5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKEdlLFVlLHl0''@;'; put 'put ''KXtyZXR1cm4gR2U9K0dlLFVlPj4+PTAseXR8fENlKHRoaXMsR2UsVWUsMiwzMjc2NywtMzI3NjgpLHRoaXNbVWVdPTI1NSZHZSx0aGlzW1VlKzFdPUdlPj4+OCxVZSsyfSxLLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBHZT0rR2UsVWU+Pj49MCx5''@;'; put 'put ''dHx8Q2UodGhpcyxHZSxVZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tVZV09R2U+Pj44LHRoaXNbVWUrMV09MjU1JkdlLFVlKzJ9LEsucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbihHZSxVZSx5dCl7cmV0dXJuIEdlPStHZSxVZT4+Pj0wLHl0fHxDZSh0aGlzLEdlLFVlLDQsMjE0NzQ4''@;'; put 'put ''MzY0NywtMjE0NzQ4MzY0OCksdGhpc1tVZV09MjU1JkdlLHRoaXNbVWUrMV09R2U+Pj44LHRoaXNbVWUrMl09R2U+Pj4xNix0aGlzW1VlKzNdPUdlPj4+MjQsVWUrNH0sSy5wcm90b3R5cGUud3JpdGVJbnQzMkJFPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gR2U9K0dlLFVlPj4+PTAseXR8''@;'; put 'put ''fENlKHRoaXMsR2UsVWUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSxHZTwwJiYoR2U9NDI5NDk2NzI5NStHZSsxKSx0aGlzW1VlXT1HZT4+PjI0LHRoaXNbVWUrMV09R2U+Pj4xNix0aGlzW1VlKzJdPUdlPj4+OCx0aGlzW1VlKzNdPTI1NSZHZSxVZSs0fSxLLnByb3RvdHlwZS53cml0ZUJp''@;'; put 'put ''Z0ludDY0TEU9ZnQoZnVuY3Rpb24oR2UsVWU9MCl7cmV0dXJuIERlKHRoaXMsR2UsVWUsLUJpZ0ludCgiMHg4MDAwMDAwMDAwMDAwMDAwIiksQmlnSW50KCIweDdmZmZmZmZmZmZmZmZmZmYiKSl9KSxLLnByb3RvdHlwZS53cml0ZUJpZ0ludDY0QkU9ZnQoZnVuY3Rpb24oR2UsVWU9MCl7cmV0''@;'; put 'put ''dXJuIFBlKHRoaXMsR2UsVWUsLUJpZ0ludCgiMHg4MDAwMDAwMDAwMDAwMDAwIiksQmlnSW50KCIweDdmZmZmZmZmZmZmZmZmZmYiKSl9KSxLLnByb3RvdHlwZS53cml0ZUZsb2F0TEU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiAkZSh0aGlzLEdlLFVlLCEwLHl0KX0sSy5wcm90b3R5cGUu''@;'; put 'put ''d3JpdGVGbG9hdEJFPWZ1bmN0aW9uKEdlLFVlLHl0KXtyZXR1cm4gJGUodGhpcyxHZSxVZSwhMSx5dCl9LEsucHJvdG90eXBlLndyaXRlRG91YmxlTEU9ZnVuY3Rpb24oR2UsVWUseXQpe3JldHVybiBndCh0aGlzLEdlLFVlLCEwLHl0KX0sSy5wcm90b3R5cGUud3JpdGVEb3VibGVCRT1mdW5j''@;'; put 'put ''dGlvbihHZSxVZSx5dCl7cmV0dXJuIGd0KHRoaXMsR2UsVWUsITEseXQpfSxLLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKEdlLFVlLHl0LGp0KXtpZighSy5pc0J1ZmZlcihHZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiYXJndW1lbnQgc2hvdWxkIGJlIGEgQnVmZmVyIik7aWYoeXR8fCh5dD0w''@;'; put 'put ''KSxqdHx8MD09PWp0fHwoanQ9dGhpcy5sZW5ndGgpLFVlPj1HZS5sZW5ndGgmJihVZT1HZS5sZW5ndGgpLFVlfHwoVWU9MCksanQ+MCYmanQ8eXQmJihqdD15dCksanQ9PT15dHx8MD09PUdlLmxlbmd0aHx8MD09PXRoaXMubGVuZ3RoKXJldHVybiAwO2lmKFVlPDApdGhyb3cgbmV3IFJhbmdl''@;'; put 'put ''RXJyb3IoInRhcmdldFN0YXJ0IG91dCBvZiBib3VuZHMiKTtpZih5dDwwfHx5dD49dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpO2lmKGp0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoInNvdXJjZUVuZCBvdXQgb2YgYm91bmRzIik7anQ+dGhp''@;'; put 'put ''cy5sZW5ndGgmJihqdD10aGlzLmxlbmd0aCksR2UubGVuZ3RoLVVlPGp0LXl0JiYoanQ9R2UubGVuZ3RoLVVlK3l0KTtjb25zdCBKdD1qdC15dDtyZXR1cm4gdGhpcz09PUdlJiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbj90aGlzLmNvcHlXaXRo''@;'; put 'put ''aW4oVWUseXQsanQpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNldC5jYWxsKEdlLHRoaXMuc3ViYXJyYXkoeXQsanQpLFVlKSxKdH0sSy5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbihHZSxVZSx5dCxqdCl7aWYoInN0cmluZyI9PXR5cGVvZiBHZSl7aWYoInN0cmluZyI9PXR5cGVvZiBVZT8oanQ9''@;'; put 'put ''VWUsVWU9MCx5dD10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiB5dCYmKGp0PXl0LHl0PXRoaXMubGVuZ3RoKSx2b2lkIDAhPT1qdCYmInN0cmluZyIhPXR5cGVvZiBqdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5''@;'; put 'put ''cGVvZiBqdCYmIUsuaXNFbmNvZGluZyhqdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitqdCk7aWYoMT09PUdlLmxlbmd0aCl7Y29uc3QgZ249R2UuY2hhckNvZGVBdCgwKTsoInV0ZjgiPT09anQmJmduPDEyOHx8ImxhdGluMSI9PT1qdCkmJihHZT1nbil9fWVs''@;'; put 'put ''c2UibnVtYmVyIj09dHlwZW9mIEdlP0dlJj0yNTU6ImJvb2xlYW4iPT10eXBlb2YgR2UmJihHZT1OdW1iZXIoR2UpKTtpZihVZTwwfHx0aGlzLmxlbmd0aDxVZXx8dGhpcy5sZW5ndGg8eXQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIk91dCBvZiByYW5nZSBpbmRleCIpO2lmKHl0PD1VZSlyZXR1''@;'; put 'put ''cm4gdGhpcztsZXQgSnQ7aWYoVWU+Pj49MCx5dD12b2lkIDA9PT15dD90aGlzLmxlbmd0aDp5dD4+PjAsR2V8fChHZT0wKSwibnVtYmVyIj09dHlwZW9mIEdlKWZvcihKdD1VZTtKdDx5dDsrK0p0KXRoaXNbSnRdPUdlO2Vsc2V7Y29uc3QgZ249Sy5pc0J1ZmZlcihHZSk/R2U6Sy5mcm9tKEdl''@;'; put 'put ''LGp0KSxkbj1nbi5sZW5ndGg7aWYoMD09PWRuKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSB2YWx1ZSAiJytHZSsnIiBpcyBpbnZhbGlkIGZvciBhcmd1bWVudCAidmFsdWUiJyk7Zm9yKEp0PTA7SnQ8eXQtVWU7KytKdCl0aGlzW0p0K1VlXT1nbltKdCVkbl19cmV0dXJuIHRoaXN9O2NvbnN0''@;'; put 'put ''IHd0PXt9O2Z1bmN0aW9uIG10KEdlLFVlLHl0KXt3dFtHZV09Y2xhc3MgZXh0ZW5kcyB5dHtjb25zdHJ1Y3Rvcigpe3N1cGVyKCksT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIm1lc3NhZ2UiLHt2YWx1ZTpVZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksd3JpdGFibGU6ITAsY29uZmlndXJh''@;'; put 'put ''YmxlOiEwfSksdGhpcy5uYW1lPWAke3RoaXMubmFtZX0gWyR7R2V9XWAsZGVsZXRlIHRoaXMubmFtZX1nZXQgY29kZSgpe3JldHVybiBHZX1zZXQgY29kZShqdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImNvZGUiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpq''@;'; put 'put ''dCx3cml0YWJsZTohMH0pfXRvU3RyaW5nKCl7cmV0dXJuYCR7dGhpcy5uYW1lfSBbJHtHZX1dOiAke3RoaXMubWVzc2FnZX1gfX19ZnVuY3Rpb24gdnQoR2Upe2xldCBVZT0iIix5dD1HZS5sZW5ndGg7Y29uc3QganQ9Ii0iPT09R2VbMF0/MTowO2Zvcig7eXQ+PWp0KzQ7eXQtPTMpVWU9YF8k''@;'; put 'put ''e0dlLnNsaWNlKHl0LTMseXQpfSR7VWV9YDtyZXR1cm5gJHtHZS5zbGljZSgwLHl0KX0ke1VlfWB9ZnVuY3Rpb24gQXQoR2UsVWUseXQsanQsSnQsZ24pe2lmKEdlPnl0fHxHZTxVZSl7Y29uc3QgZG49ImJpZ2ludCI9PXR5cGVvZiBVZT8ibiI6IiI7bGV0IHluO3Rocm93IHluPWduPjM/MD09''@;'; put 'put ''PVVlfHxVZT09PUJpZ0ludCgwKT9gPj0gMCR7ZG59IGFuZCA8IDIke2RufSAqKiAkezgqKGduKzEpfSR7ZG59YDpgPj0gLSgyJHtkbn0gKiogJHs4KihnbisxKS0xfSR7ZG59KSBhbmQgPCAyICoqICR7OCooZ24rMSktMX0ke2RufWA6YD49ICR7VWV9JHtkbn0gYW5kIDw9ICR7eXR9JHtkbn1g''@;'; put 'put ''LG5ldyB3dC5FUlJfT1VUX09GX1JBTkdFKCJ2YWx1ZSIseW4sR2UpfXZhciBkbix5bixsbjtkbj1qdCxsbj1nbixodCh5bj1KdCwib2Zmc2V0Iiksdm9pZCAwIT09ZG5beW5dJiZ2b2lkIDAhPT1kblt5bitsbl18fEJ0KHluLGRuLmxlbmd0aC0obG4rMSkpfWZ1bmN0aW9uIGh0KEdlLFVlKXtp''@;'; put 'put ''ZigibnVtYmVyIiE9dHlwZW9mIEdlKXRocm93IG5ldyB3dC5FUlJfSU5WQUxJRF9BUkdfVFlQRShVZSwibnVtYmVyIixHZSl9ZnVuY3Rpb24gQnQoR2UsVWUseXQpe3Rocm93IE1hdGguZmxvb3IoR2UpIT09R2U/KGh0KEdlLHl0KSxuZXcgd3QuRVJSX09VVF9PRl9SQU5HRSh5dHx8Im9mZnNl''@;'; put 'put ''dCIsImFuIGludGVnZXIiLEdlKSk6VWU8MD9uZXcgd3QuRVJSX0JVRkZFUl9PVVRfT0ZfQk9VTkRTOm5ldyB3dC5FUlJfT1VUX09GX1JBTkdFKHl0fHwib2Zmc2V0IixgPj0gJHt5dD8xOjB9IGFuZCA8PSAke1VlfWAsR2UpfW10KCJFUlJfQlVGRkVSX09VVF9PRl9CT1VORFMiLGZ1bmN0aW9u''@;'; put 'put ''KEdlKXtyZXR1cm4gR2U/YCR7R2V9IGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kc2A6IkF0dGVtcHQgdG8gYWNjZXNzIG1lbW9yeSBvdXRzaWRlIGJ1ZmZlciBib3VuZHMifSxSYW5nZUVycm9yKSxtdCgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKEdlLFVlKXtyZXR1cm5gVGhl''@;'; put 'put ''ICIke0dlfSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAke3R5cGVvZiBVZX1gfSxUeXBlRXJyb3IpLG10KCJFUlJfT1VUX09GX1JBTkdFIixmdW5jdGlvbihHZSxVZSx5dCl7bGV0IGp0PWBUaGUgdmFsdWUgb2YgIiR7R2V9IiBpcyBvdXQgb2YgcmFu''@;'; put 'put ''Z2UuYCxKdD15dDtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih5dCkmJk1hdGguYWJzKHl0KT40Mjk0OTY3Mjk2P0p0PXZ0KFN0cmluZyh5dCkpOiJiaWdpbnQiPT10eXBlb2YgeXQmJihKdD1TdHJpbmcoeXQpLCh5dD54TShCaWdJbnQoMiksQmlnSW50KDMyKSl8fHl0PC14TShCaWdJbnQoMiks''@;'; put 'put ''QmlnSW50KDMyKSkpJiYoSnQ9dnQoSnQpKSxKdCs9Im4iKSxqdCs9YCBJdCBtdXN0IGJlICR7VWV9LiBSZWNlaXZlZCAke0p0fWAsanR9LFJhbmdlRXJyb3IpO2NvbnN0IG9uPS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gX3QoR2UsVWUpe2xldCB5dDtVZT1VZXx8MS8wO2NvbnN0IGp0''@;'; put 'put ''PUdlLmxlbmd0aDtsZXQgSnQ9bnVsbDtjb25zdCBnbj1bXTtmb3IobGV0IGRuPTA7ZG48anQ7Kytkbil7aWYoeXQ9R2UuY2hhckNvZGVBdChkbikseXQ+NTUyOTUmJnl0PDU3MzQ0KXtpZighSnQpe2lmKHl0PjU2MzE5KXsoVWUtPTMpPi0xJiZnbi5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51''@;'; put 'put ''ZX1pZihkbisxPT09anQpeyhVZS09Myk+LTEmJmduLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfUp0PXl0O2NvbnRpbnVlfWlmKHl0PDU2MzIwKXsoVWUtPTMpPi0xJiZnbi5wdXNoKDIzOSwxOTEsMTg5KSxKdD15dDtjb250aW51ZX15dD02NTUzNisoSnQtNTUyOTY8PDEwfHl0LTU2MzIw''@;'; put 'put ''KX1lbHNlIEp0JiYoVWUtPTMpPi0xJiZnbi5wdXNoKDIzOSwxOTEsMTg5KTtpZihKdD1udWxsLHl0PDEyOCl7aWYoKFVlLT0xKTwwKWJyZWFrO2duLnB1c2goeXQpfWVsc2UgaWYoeXQ8MjA0OCl7aWYoKFVlLT0yKTwwKWJyZWFrO2duLnB1c2goeXQ+PjZ8MTkyLDYzJnl0fDEyOCl9ZWxzZSBp''@;'; put 'put ''Zih5dDw2NTUzNil7aWYoKFVlLT0zKTwwKWJyZWFrO2duLnB1c2goeXQ+PjEyfDIyNCx5dD4+NiY2M3wxMjgsNjMmeXR8MTI4KX1lbHNle2lmKCEoeXQ8MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigoVWUtPTQpPDApYnJlYWs7Z24ucHVzaCh5dD4+''@;'; put 'put ''MTh8MjQwLHl0Pj4xMiY2M3wxMjgseXQ+PjYmNjN8MTI4LDYzJnl0fDEyOCl9fXJldHVybiBnbn1mdW5jdGlvbiB0dChHZSl7cmV0dXJuIGFlLnRvQnl0ZUFycmF5KGZ1bmN0aW9uKFVlKXtpZigoVWU9KFVlPVVlLnNwbGl0KCI9IilbMF0pLnRyaW0oKS5yZXBsYWNlKG9uLCIiKSkubGVuZ3Ro''@;'; put 'put ''PDIpcmV0dXJuIiI7Zm9yKDtVZS5sZW5ndGglNCE9MDspVWUrPSI9IjtyZXR1cm4gVWV9KEdlKSl9ZnVuY3Rpb24gZXQoR2UsVWUseXQsanQpe2xldCBKdDtmb3IoSnQ9MDtKdDxqdCYmIShKdCt5dD49VWUubGVuZ3RofHxKdD49R2UubGVuZ3RoKTsrK0p0KVVlW0p0K3l0XT1HZVtKdF07cmV0''@;'; put 'put ''dXJuIEp0fWZ1bmN0aW9uIGx0KEdlLFVlKXtyZXR1cm4gR2UgaW5zdGFuY2VvZiBVZXx8bnVsbCE9R2UmJm51bGwhPUdlLmNvbnN0cnVjdG9yJiZudWxsIT1HZS5jb25zdHJ1Y3Rvci5uYW1lJiZHZS5jb25zdHJ1Y3Rvci5uYW1lPT09VWUubmFtZX1mdW5jdGlvbiBMdChHZSl7cmV0dXJuIEdl''@;'; put 'put ''IT1HZX1jb25zdCBDdD1mdW5jdGlvbigpe2NvbnN0IEdlPSIwMTIzNDU2Nzg5YWJjZGVmIixVZT1uZXcgQXJyYXkoMjU2KTtmb3IobGV0IHl0PTA7eXQ8MTY7Kyt5dCl7Y29uc3QganQ9MTYqeXQ7Zm9yKGxldCBKdD0wO0p0PDE2OysrSnQpVWVbanQrSnRdPUdlW3l0XStHZVtKdF19cmV0dXJu''@;'; put 'put ''IFVlfSgpO2Z1bmN0aW9uIGZ0KEdlKXtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIEJpZ0ludD9IdDpHZX1mdW5jdGlvbiBIdCgpe3Rocm93IG5ldyBFcnJvcigiQmlnSW50IG5vdCBzdXBwb3J0ZWQiKX19LDE5MjQ6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigyMTApLGFlPWoo''@;'; put 'put ''NTU1OSksWT1hZShyZSgiU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mIikpO1UuZXhwb3J0cz1mdW5jdGlvbihXLE4pe3ZhciB0ZT1yZShXLCEhTik7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHRlJiZZKFcsIi5wcm90b3R5cGUuIik+LTE/YWUodGUpOnRlfX0sNTU1OTooVSxRLGopPT57InVz''@;'; put 'put ''ZSBzdHJpY3QiO3ZhciByZT1qKDg2MTIpLGFlPWooMjEwKSxZPWFlKCIlRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5JSIpLFc9YWUoIiVGdW5jdGlvbi5wcm90b3R5cGUuY2FsbCUiKSxOPWFlKCIlUmVmbGVjdC5hcHBseSUiLCEwKXx8cmUuY2FsbChXLFkpLHRlPWFlKCIlT2JqZWN0LmdldE93''@;'; put 'put ''blByb3BlcnR5RGVzY3JpcHRvciUiLCEwKSxLPWFlKCIlT2JqZWN0LmRlZmluZVByb3BlcnR5JSIsITApLEo9YWUoIiVNYXRoLm1heCUiKTtpZihLKXRyeXtLKHt9LCJhIix7dmFsdWU6MX0pfWNhdGNoKG9lKXtLPW51bGx9VS5leHBvcnRzPWZ1bmN0aW9uKG9lKXt2YXIgY2U9TihyZSxXLGFy''@;'; put 'put ''Z3VtZW50cyk7cmV0dXJuIHRlJiZLJiZ0ZShjZSwibGVuZ3RoIikuY29uZmlndXJhYmxlJiZLKGNlLCJsZW5ndGgiLHt2YWx1ZToxK0ooMCxvZS5sZW5ndGgtKGFyZ3VtZW50cy5sZW5ndGgtMSkpfSksY2V9O3ZhciBzZT1mdW5jdGlvbigpe3JldHVybiBOKHJlLFksYXJndW1lbnRzKX07Sz9L''@;'; put 'put ''KFUuZXhwb3J0cywiYXBwbHkiLHt2YWx1ZTpzZX0pOlUuZXhwb3J0cy5hcHBseT1zZX0sMTAyNzooVSxRLGopPT57dmFyIHJlPWooOTUwOSkuQnVmZmVyLGFlPWooMjgzMCkuVHJhbnNmb3JtLFk9aigyNTUzKS5TdHJpbmdEZWNvZGVyO2Z1bmN0aW9uIFcoTil7YWUuY2FsbCh0aGlzKSx0aGlz''@;'; put 'put ''Lmhhc2hNb2RlPSJzdHJpbmciPT10eXBlb2YgTix0aGlzLmhhc2hNb2RlP3RoaXNbTl09dGhpcy5fZmluYWxPckRpZ2VzdDp0aGlzLmZpbmFsPXRoaXMuX2ZpbmFsT3JEaWdlc3QsdGhpcy5fZmluYWwmJih0aGlzLl9fZmluYWw9dGhpcy5fZmluYWwsdGhpcy5fZmluYWw9bnVsbCksdGhpcy5f''@;'; put 'put ''ZGVjb2Rlcj1udWxsLHRoaXMuX2VuY29kaW5nPW51bGx9aig1NzE3KShXLGFlKSxXLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oTix0ZSxLKXsic3RyaW5nIj09dHlwZW9mIE4mJihOPXJlLmZyb20oTix0ZSkpO3ZhciBKPXRoaXMuX3VwZGF0ZShOKTtyZXR1cm4gdGhpcy5oYXNoTW9kZT90''@;'; put 'put ''aGlzOihLJiYoSj10aGlzLl90b1N0cmluZyhKLEspKSxKKX0sVy5wcm90b3R5cGUuc2V0QXV0b1BhZGRpbmc9ZnVuY3Rpb24oKXt9LFcucHJvdG90eXBlLmdldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQg''@;'; put 'put ''c3RhdGUiKX0sVy5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigidHJ5aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxXLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBz''@;'; put 'put ''ZXQgYWFkIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LFcucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oTix0ZSxLKXt2YXIgSjt0cnl7dGhpcy5oYXNoTW9kZT90aGlzLl91cGRhdGUoTik6dGhpcy5wdXNoKHRoaXMuX3VwZGF0ZShOKSl9Y2F0Y2goc2Upe0o9c2V9ZmluYWxseXtLKEop''@;'; put 'put ''fX0sVy5wcm90b3R5cGUuX2ZsdXNoPWZ1bmN0aW9uKE4pe3ZhciB0ZTt0cnl7dGhpcy5wdXNoKHRoaXMuX19maW5hbCgpKX1jYXRjaChLKXt0ZT1LfU4odGUpfSxXLnByb3RvdHlwZS5fZmluYWxPckRpZ2VzdD1mdW5jdGlvbihOKXt2YXIgdGU9dGhpcy5fX2ZpbmFsKCl8fHJlLmFsbG9jKDAp''@;'; put 'put ''O3JldHVybiBOJiYodGU9dGhpcy5fdG9TdHJpbmcodGUsTiwhMCkpLHRlfSxXLnByb3RvdHlwZS5fdG9TdHJpbmc9ZnVuY3Rpb24oTix0ZSxLKXtpZih0aGlzLl9kZWNvZGVyfHwodGhpcy5fZGVjb2Rlcj1uZXcgWSh0ZSksdGhpcy5fZW5jb2Rpbmc9dGUpLHRoaXMuX2VuY29kaW5nIT09dGUp''@;'; put 'put ''dGhyb3cgbmV3IEVycm9yKCJjYW4ndCBzd2l0Y2ggZW5jb2RpbmdzIik7dmFyIEo9dGhpcy5fZGVjb2Rlci53cml0ZShOKTtyZXR1cm4gSyYmKEorPXRoaXMuX2RlY29kZXIuZW5kKCkpLEp9LFUuZXhwb3J0cz1XfSwxMDQ4OlU9PntVLmV4cG9ydHM9ZnVuY3Rpb24oaixyZSl7Zm9yKHZhciBh''@;'; put 'put ''ZT1bXSxZPTA7WTxqLmxlbmd0aDtZKyspe3ZhciBXPXJlKGpbWV0sWSk7UShXKT9hZS5wdXNoLmFwcGx5KGFlLFcpOmFlLnB1c2goVyl9cmV0dXJuIGFlfTt2YXIgUT1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihqKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50''@;'; put 'put ''b1N0cmluZy5jYWxsKGopfX0sNTEwODooVSxRLGopPT57dmFyIHJlPWooOTUzOSksYWU9aig5MjgyKTtmdW5jdGlvbiBZKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9dmFyIFcsTj1BcnJheS5wcm90b3R5cGUuc2xpY2UsdGU9e307Vz12b2lkIDAhPT1qLmcmJmouZy5jb25zb2xlP2ou''@;'; put 'put ''Zy5jb25zb2xlOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuY29uc29sZT93aW5kb3cuY29uc29sZTp7fTtmb3IodmFyIEs9W1tmdW5jdGlvbigpe30sImxvZyJdLFtmdW5jdGlvbigpe1cubG9nLmFwcGx5KFcsYXJndW1lbnRzKX0sImluZm8iXSxbZnVuY3Rpb24oKXtXLmxv''@;'; put 'put ''Zy5hcHBseShXLGFyZ3VtZW50cyl9LCJ3YXJuIl0sW2Z1bmN0aW9uKCl7Vy53YXJuLmFwcGx5KFcsYXJndW1lbnRzKX0sImVycm9yIl0sW2Z1bmN0aW9uKGRlKXt0ZVtkZV09WSgpfSwidGltZSJdLFtmdW5jdGlvbihkZSl7dmFyIHZlPXRlW2RlXTtpZighdmUpdGhyb3cgbmV3IEVycm9yKCJO''@;'; put 'put ''byBzdWNoIGxhYmVsOiAiK2RlKTtkZWxldGUgdGVbZGVdO3ZhciBBZT1ZKCktdmU7Vy5sb2coZGUrIjogIitBZSsibXMiKX0sInRpbWVFbmQiXSxbZnVuY3Rpb24oKXt2YXIgZGU9bmV3IEVycm9yO2RlLm5hbWU9IlRyYWNlIixkZS5tZXNzYWdlPXJlLmZvcm1hdC5hcHBseShudWxsLGFyZ3Vt''@;'; put 'put ''ZW50cyksVy5lcnJvcihkZS5zdGFjayl9LCJ0cmFjZSJdLFtmdW5jdGlvbihkZSl7Vy5sb2cocmUuaW5zcGVjdChkZSkrIlxuIil9LCJkaXIiXSxbZnVuY3Rpb24oZGUpe2lmKCFkZSl7dmFyIHZlPU4uY2FsbChhcmd1bWVudHMsMSk7YWUub2soITEscmUuZm9ybWF0LmFwcGx5KG51bGwsdmUp''@;'; put 'put ''KX19LCJhc3NlcnQiXV0sSj0wO0o8Sy5sZW5ndGg7SisrKXt2YXIgc2U9S1tKXSxjZT1zZVsxXTtXW2NlXXx8KFdbY2VdPXNlWzBdKX1VLmV4cG9ydHM9V30sNjM5MzooVSxRLGopPT57dmFyIHJlPWooODc2NCkuQnVmZmVyLGFlPWooNjk0OCksWT1qKDY0MjYpO1UuZXhwb3J0cz1mdW5jdGlv''@;'; put 'put ''bihLKXtyZXR1cm4gbmV3IE4oSyl9O3ZhciBXPXtzZWNwMjU2azE6e25hbWU6InNlY3AyNTZrMSIsYnl0ZUxlbmd0aDozMn0sc2VjcDIyNHIxOntuYW1lOiJwMjI0IixieXRlTGVuZ3RoOjI4fSxwcmltZTI1NnYxOntuYW1lOiJwMjU2IixieXRlTGVuZ3RoOjMyfSxwcmltZTE5MnYxOntuYW1l''@;'; put 'put ''OiJwMTkyIixieXRlTGVuZ3RoOjI0fSxlZDI1NTE5OntuYW1lOiJlZDI1NTE5IixieXRlTGVuZ3RoOjMyfSxzZWNwMzg0cjE6e25hbWU6InAzODQiLGJ5dGVMZW5ndGg6NDh9LHNlY3A1MjFyMTp7bmFtZToicDUyMSIsYnl0ZUxlbmd0aDo2Nn19O2Z1bmN0aW9uIE4oSyl7dGhpcy5jdXJ2ZVR5''@;'; put 'put ''cGU9V1tLXSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVUeXBlPXtuYW1lOkt9KSx0aGlzLmN1cnZlPW5ldyBhZS5lYyh0aGlzLmN1cnZlVHlwZS5uYW1lKSx0aGlzLmtleXM9dm9pZCAwfWZ1bmN0aW9uIHRlKEssSixzZSl7QXJyYXkuaXNBcnJheShLKXx8KEs9Sy50b0FycmF5KCkpO3Zh''@;'; put 'put ''ciBvZT1uZXcgcmUoSyk7aWYoc2UmJm9lLmxlbmd0aDxzZSl7dmFyIGNlPW5ldyByZShzZS1vZS5sZW5ndGgpO2NlLmZpbGwoMCksb2U9cmUuY29uY2F0KFtjZSxvZV0pfXJldHVybiBKP29lLnRvU3RyaW5nKEopOm9lfVcucDIyND1XLnNlY3AyMjRyMSxXLnAyNTY9Vy5zZWNwMjU2cjE9Vy5w''@;'; put 'put ''cmltZTI1NnYxLFcucDE5Mj1XLnNlY3AxOTJyMT1XLnByaW1lMTkydjEsVy5wMzg0PVcuc2VjcDM4NHIxLFcucDUyMT1XLnNlY3A1MjFyMSxOLnByb3RvdHlwZS5nZW5lcmF0ZUtleXM9ZnVuY3Rpb24oSyxKKXtyZXR1cm4gdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMu''@;'; put 'put ''Z2V0UHVibGljS2V5KEssSil9LE4ucHJvdG90eXBlLmNvbXB1dGVTZWNyZXQ9ZnVuY3Rpb24oSyxKLHNlKXtyZXR1cm4gSj1KfHwidXRmOCIscmUuaXNCdWZmZXIoSyl8fChLPW5ldyByZShLLEopKSx0ZSh0aGlzLmN1cnZlLmtleUZyb21QdWJsaWMoSykuZ2V0UHVibGljKCkubXVsKHRoaXMu''@;'; put 'put ''a2V5cy5nZXRQcml2YXRlKCkpLmdldFgoKSxzZSx0aGlzLmN1cnZlVHlwZS5ieXRlTGVuZ3RoKX0sTi5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKEssSil7dmFyIHNlPXRoaXMua2V5cy5nZXRQdWJsaWMoImNvbXByZXNzZWQiPT09SiwhMCk7cmV0dXJuImh5YnJpZCI9PT1KJiYo''@;'; put 'put ''c2VbMF09c2Vbc2UubGVuZ3RoLTFdJTI/Nzo2KSx0ZShzZSxLKX0sTi5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleT1mdW5jdGlvbihLKXtyZXR1cm4gdGUodGhpcy5rZXlzLmdldFByaXZhdGUoKSxLKX0sTi5wcm90b3R5cGUuc2V0UHVibGljS2V5PWZ1bmN0aW9uKEssSil7cmV0dXJuIEo9Snx8''@;'; put 'put ''InV0ZjgiLHJlLmlzQnVmZmVyKEspfHwoSz1uZXcgcmUoSyxKKSksdGhpcy5rZXlzLl9pbXBvcnRQdWJsaWMoSyksdGhpc30sTi5wcm90b3R5cGUuc2V0UHJpdmF0ZUtleT1mdW5jdGlvbihLLEope0o9Snx8InV0ZjgiLHJlLmlzQnVmZmVyKEspfHwoSz1uZXcgcmUoSyxKKSk7dmFyIHNlPW5l''@;'; put 'put ''dyBZKEspO3JldHVybiBzZT1zZS50b1N0cmluZygxNiksdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMua2V5cy5faW1wb3J0UHJpdmF0ZShzZSksdGhpc319LDY0MjY6ZnVuY3Rpb24oVSxRLGopeyFmdW5jdGlvbihyZSxhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFko''@;'; put 'put ''eCxQKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoUHx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBXKHgsUCl7eC5zdXBlcl89UDt2YXIgVj1mdW5jdGlvbigpe307Vi5wcm90b3R5cGU9UC5wcm90b3R5cGUseC5wcm90b3R5cGU9bmV3IFYseC5wcm90b3R5cGUuY29uc3RydWN0b3I9eH1m''@;'; put 'put ''dW5jdGlvbiBOKHgsUCxWKXtpZihOLmlzQk4oeCkpcmV0dXJuIHg7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXgmJigibGUiIT09UCYmImJlIiE9PVB8fChWPVAsUD0xMCksdGhpcy5faW5pdCh4fHwwLFB8fDEwLFZ8''@;'; put 'put ''fCJiZSIpKX12YXIgdGU7Im9iamVjdCI9PXR5cGVvZiByZT9yZS5leHBvcnRzPU46YWUuQk49TixOLkJOPU4sTi53b3JkU2l6ZT0yNjt0cnl7dGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpqKDg2MjMpLkJ1ZmZlcn1j''@;'; put 'put ''YXRjaCh4KXt9ZnVuY3Rpb24gSyh4LFApe3ZhciBWPXguY2hhckNvZGVBdChQKTtyZXR1cm4gVj49NjUmJlY8PTcwP1YtNTU6Vj49OTcmJlY8PTEwMj9WLTg3OlYtNDgmMTV9ZnVuY3Rpb24gSih4LFAsVil7dmFyIFQ9Syh4LFYpO3JldHVybiBWLTE+PVAmJihUfD1LKHgsVi0xKTw8NCksVH1m''@;'; put 'put ''dW5jdGlvbiBzZSh4LFAsVixUKXtmb3IodmFyIFM9MCxGPU1hdGgubWluKHgubGVuZ3RoLFYpLHllPVA7eWU8Rjt5ZSsrKXt2YXIgQ2U9eC5jaGFyQ29kZUF0KHllKS00ODtTKj1ULFMrPUNlPj00OT9DZS00OSsxMDpDZT49MTc/Q2UtMTcrMTA6Q2V9cmV0dXJuIFN9Ti5pc0JOPWZ1bmN0aW9u''@;'; put 'put ''KHgpe3JldHVybiB4IGluc3RhbmNlb2YgTnx8bnVsbCE9PXgmJiJvYmplY3QiPT10eXBlb2YgeCYmeC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU4ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoeC53b3Jkcyl9LE4ubWF4PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPjA/eDpQfSxOLm1p''@;'; put 'put ''bj1mdW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQKTwwP3g6UH0sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oeCxQLFYpe2lmKCJudW1iZXIiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdE51bWJlcih4LFAsVik7aWYoIm9iamVjdCI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0''@;'; put 'put ''QXJyYXkoeCxQLFYpOyJoZXgiPT09UCYmKFA9MTYpLFkoUD09PSgwfFApJiZQPj0yJiZQPD0zNik7dmFyIFQ9MDsiLSI9PT0oeD14LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFQrKyx0aGlzLm5lZ2F0aXZlPTEpLFQ8eC5sZW5ndGgmJigxNj09PVA/dGhpcy5fcGFyc2VI''@;'; put 'put ''ZXgoeCxULFYpOih0aGlzLl9wYXJzZUJhc2UoeCxQLFQpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKSkpfSxOLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih4LFAsVil7eDwwJiYodGhpcy5uZWdhdGl2ZT0xLHg9LXgpLHg8NjcxMDg4NjQ/KHRo''@;'; put 'put ''aXMud29yZHM9WzY3MTA4ODYzJnhdLHRoaXMubGVuZ3RoPTEpOng8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooWSh4PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82''@;'; put 'put ''NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVil9LE4ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oeCxQLFYpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4Lmxlbmd0aCkseC5sZW5ndGg8PTAp''@;'; put 'put ''cmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoeC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGLHll''@;'; put 'put ''PTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMSxTPTA7VD49MDtULT0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtULTFdPDw4fHhbVC0yXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKysp''@;'; put 'put ''O2Vsc2UgaWYoImxlIj09PVYpZm9yKFQ9MCxTPTA7VDx4Lmxlbmd0aDtUKz0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtUKzFdPDw4fHhbVCsyXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKysp''@;'; put 'put ''O3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbih4LFAsVil7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh4Lmxlbmd0aC1QKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhp''@;'; put 'put ''cy53b3Jkc1tUXT0wO3ZhciBTLEY9MCx5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTE7VD49UDtULT0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7ZWxzZSBmb3IoVD0o''@;'; put 'put ''eC5sZW5ndGgtUCklMj09MD9QKzE6UDtUPHgubGVuZ3RoO1QrPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODt0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVu''@;'; put 'put ''Y3Rpb24oeCxQLFYpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBUPTAsUz0xO1M8PTY3MTA4ODYzO1MqPVApVCsrO1QtLSxTPVMvUHwwO2Zvcih2YXIgRj14Lmxlbmd0aC1WLHllPUYlVCxDZT1NYXRoLm1pbihGLEYteWUpK1YsRGU9MCxQZT1WO1BlPENlO1BlKz1UKURl''@;'; put 'put ''PXNlKHgsUGUsUGUrVCxQKSx0aGlzLmltdWxuKFMpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpO2lmKDAhPT15ZSl7dmFyIFFlPTE7Zm9yKERlPXNlKHgsUGUseC5sZW5ndGgsUCksUGU9MDtQZTx5ZTtQZSsrKVFlKj1QO3RoaXMu''@;'; put 'put ''aW11bG4oUWUpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpfXRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbih4KXt4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPTA7UDx0aGlzLmxl''@;'; put 'put ''bmd0aDtQKyspeC53b3Jkc1tQXT10aGlzLndvcmRzW1BdO3gubGVuZ3RoPXRoaXMubGVuZ3RoLHgubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx4LnJlZD10aGlzLnJlZH0sTi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHgpLHh9''@;'; put 'put ''LE4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxl''@;'; put 'put ''bmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sTi5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE4ucHJvdG90eXBlLmluc3Bl''@;'; put 'put ''Y3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIG9lPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAw''@;'; put 'put ''MCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIs''@;'; put 'put ''IjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGNlPVswLDAsMjUs''@;'; put 'put ''MTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGRlPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcx''@;'; put 'put ''LDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2Mjkx''@;'; put 'put ''NTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHZlKHgsUCxWKXtWLm5lZ2F0aXZlPVAubmVnYXRpdmVeeC5uZWdhdGl2ZTt2YXIgVD14Lmxlbmd0aCtQLmxlbmd0aHwwO1YubGVuZ3RoPVQsVD1ULTF8MDt2YXIgUz0wfHgud29yZHNbMF0s''@;'; put 'put ''Rj0wfFAud29yZHNbMF0seWU9UypGLERlPXllLzY3MTA4ODY0fDA7Vi53b3Jkc1swXT02NzEwODg2MyZ5ZTtmb3IodmFyIFBlPTE7UGU8VDtQZSsrKXtmb3IodmFyIFFlPURlPj4+MjYsJGU9NjcxMDg4NjMmRGUsZ3Q9TWF0aC5taW4oUGUsUC5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS14''@;'; put 'put ''Lmxlbmd0aCsxKTt3dDw9Z3Q7d3QrKylRZSs9KHllPShTPTB8eC53b3Jkc1tQZS13dHwwXSkqKEY9MHxQLndvcmRzW3d0XSkrJGUpLzY3MTA4ODY0fDAsJGU9NjcxMDg4NjMmeWU7Vi53b3Jkc1tQZV09MHwkZSxEZT0wfFFlfXJldHVybiAwIT09RGU/Vi53b3Jkc1tQZV09MHxEZTpWLmxlbmd0''@;'; put 'put ''aC0tLFYuc3RyaXAoKX1OLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih4LFApe3ZhciBWO2lmKFA9MHxQfHwxLDE2PT09KHg9eHx8MTApfHwiaGV4Ij09PXgpe1Y9IiI7Zm9yKHZhciBUPTAsUz0wLEY9MDtGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPXRoaXMud29yZHNbRl0sQ2U9KDE2''@;'; put 'put ''Nzc3MjE1Jih5ZTw8VHxTKSkudG9TdHJpbmcoMTYpO1Y9MCE9KFM9eWU+Pj4yNC1UJjE2Nzc3MjE1KXx8RiE9PXRoaXMubGVuZ3RoLTE/b2VbNi1DZS5sZW5ndGhdK0NlK1Y6Q2UrViwoVCs9Mik+PTI2JiYoVC09MjYsRi0tKX1mb3IoMCE9PVMmJihWPVMudG9TdHJpbmcoMTYpK1YpO1YubGVu''@;'; put 'put ''Z3RoJVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1pZih4PT09KDB8eCkmJng+PTImJng8PTM2KXt2YXIgRGU9Y2VbeF0sUGU9ZGVbeF07Vj0iIjt2YXIgUWU9dGhpcy5jbG9uZSgpO2ZvcihRZS5uZWdhdGl2ZT0wOyFRZS5pc1plcm8oKTspe3Zh''@;'; put 'put ''ciAkZT1RZS5tb2RuKFBlKS50b1N0cmluZyh4KTtWPShRZT1RZS5pZGl2bihQZSkpLmlzWmVybygpPyRlK1Y6b2VbRGUtJGUubGVuZ3RoXSskZStWfWZvcih0aGlzLmlzWmVybygpJiYoVj0iMCIrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihW''@;'; put 'put ''PSItIitWKSxWfVkoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sTi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgeD10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/eCs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5n''@;'; put 'put ''dGgmJjE9PT10aGlzLndvcmRzWzJdP3grPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZZKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8teDp4fSxOLnByb3RvdHlw''@;'; put 'put ''ZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LE4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIFkodm9pZCAwIT09dGUpLHRoaXMudG9BcnJheUxpa2UodGUseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih4LFApe3Jl''@;'; put 'put ''dHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD10aGlzLmJ5dGVMZW5ndGgoKSxTPVZ8fE1hdGgubWF4KDEsVCk7WShUPD1TLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiks''@;'; put 'put ''WShTPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRix5ZSxDZT0ibGUiPT09UCxEZT1uZXcgeChTKSxQZT10aGlzLmNsb25lKCk7aWYoQ2Upe2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVb''@;'; put 'put ''eWVdPUY7Zm9yKDt5ZTxTO3llKyspRGVbeWVdPTB9ZWxzZXtmb3IoeWU9MDt5ZTxTLVQ7eWUrKylEZVt5ZV09MDtmb3IoeWU9MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW1MteWUtMV09Rn1yZXR1cm4gRGV9LE4ucHJvdG90eXBlLl9jb3VudEJp''@;'; put 'put ''dHM9TWF0aC5jbHozMj9mdW5jdGlvbih4KXtyZXR1cm4gMzItTWF0aC5jbHozMih4KX06ZnVuY3Rpb24oeCl7dmFyIFA9eCxWPTA7cmV0dXJuIFA+PTQwOTYmJihWKz0xMyxQPj4+PTEzKSxQPj02NCYmKFYrPTcsUD4+Pj03KSxQPj04JiYoVis9NCxQPj4+PTQpLFA+PTImJihWKz0yLFA+Pj49''@;'; put 'put ''MiksVitQfSxOLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oeCl7aWYoMD09PXgpcmV0dXJuIDI2O3ZhciBQPXgsVj0wO3JldHVybiAwPT0oODE5MSZQKSYmKFYrPTEzLFA+Pj49MTMpLDA9PSgxMjcmUCkmJihWKz03LFA+Pj49NyksMD09KDE1JlApJiYoVis9NCxQPj4+PTQpLDA9PSgz''@;'; put 'put ''JlApJiYoVis9MixQPj4+PTIpLDA9PSgxJlApJiZWKyssVn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrUH0sTi5wcm90b3R5cGUuemVyb0Jp''@;'; put 'put ''dHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgeD0wLFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tQXSk7aWYoeCs9ViwyNiE9PVYpYnJlYWt9cmV0dXJuIHh9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih4KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21U''@;'; put 'put ''d29zPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnRlc3RuKHgtMSk/dGhpcy5ub3RuKHgpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTi5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHgubGVuZ3RoOyl0aGlzLndv''@;'; put 'put ''cmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT10aGlzLndvcmRzW1BdfHgud29yZHNbUF07cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgu''@;'; put 'put ''bmVnYXRpdmUpKSx0aGlzLml1b3IoeCl9LE4ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHgpOnguY2xvbmUoKS5pb3IodGhpcyl9LE4ucHJvdG90eXBlLnVvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5n''@;'; put 'put ''dGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoeCk6eC5jbG9uZSgpLml1b3IodGhpcyl9LE4ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHgpe3ZhciBQO1A9dGhpcy5sZW5ndGg+eC5sZW5ndGg/eDp0aGlzO2Zvcih2YXIgVj0wO1Y8UC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGhp''@;'; put 'put ''cy53b3Jkc1tWXSZ4LndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoeCl9LE4ucHJvdG90eXBlLmFuZD1m''@;'; put 'put ''dW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoeCk6eC5jbG9uZSgpLmlhbmQodGhpcyl9LE4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh4KTp4LmNs''@;'; put 'put ''b25lKCkuaXVhbmQodGhpcyl9LE4ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHgpe3ZhciBQLFY7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFA9dGhpcyxWPXgpOihQPXgsVj10aGlzKTtmb3IodmFyIFQ9MDtUPFYubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF1eVi53b3Jkc1tU''@;'; put 'put ''XTtpZih0aGlzIT09UClmb3IoO1Q8UC5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRp''@;'; put 'put ''dmUpKSx0aGlzLml1eG9yKHgpfSxOLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHgpOnguY2xvbmUoKS5peG9yKHRoaXMpfSxOLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0''@;'; put 'put ''aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoeCk6eC5jbG9uZSgpLml1eG9yKHRoaXMpfSxOLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9MHxNYXRoLmNlaWwoeC8yNiksVj14JTI2O3RoaXMuX2V4cGFuZChQKSxWPjAm''@;'; put 'put ''JlAtLTtmb3IodmFyIFQ9MDtUPFA7VCsrKXRoaXMud29yZHNbVF09NjcxMDg4NjMmfnRoaXMud29yZHNbVF07cmV0dXJuIFY+MCYmKHRoaXMud29yZHNbVF09fnRoaXMud29yZHNbVF0mNjcxMDg4NjM+PjI2LVYpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbih4KXty''@;'; put 'put ''ZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHgpfSxOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHgsUCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBWPXgvMjZ8MCxUPXglMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl09UD90aGlzLndvcmRzW1ZdfDE8''@;'; put 'put ''PFQ6dGhpcy53b3Jkc1tWXSZ+KDE8PFQpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4KXt2YXIgUCxWLFQ7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCksdGhpcy5uZWdhdGl2''@;'; put 'put ''ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4geC5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhWPXRoaXMsVD14KTooVj14LFQ9dGhp''@;'; put 'put ''cyk7Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrKDB8VC53b3Jkc1tGXSkrUyksUz1QPj4+MjY7Zm9yKDswIT09UyYmRjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRz''@;'; put 'put ''W0ZdKStTKSxTPVA+Pj4yNjtpZih0aGlzLmxlbmd0aD1WLmxlbmd0aCwwIT09Uyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1TLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihWIT09dGhpcylmb3IoO0Y8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09Vi53b3Jkc1tGXTtyZXR1cm4gdGhpc30sTi5w''@;'; put 'put ''cm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgpe3ZhciBQO3JldHVybiAwIT09eC5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KHgubmVnYXRpdmU9MCxQPXRoaXMuc3ViKHgpLHgubmVnYXRpdmVePTEsUCk6MD09PXgubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZl''@;'; put 'put ''PTAsUD14LnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsUCk6dGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoeCk6eC5jbG9uZSgpLmlhZGQodGhpcyl9LE4ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oeCl7aWYoMCE9PXgubmVnYXRpdmUpe3gubmVnYXRpdmU9MDt2YXIg''@;'; put 'put ''UD10aGlzLmlhZGQoeCk7cmV0dXJuIHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBWLFQsUz10aGlzLmNtcCh4KTtpZigw''@;'; put 'put ''PT09UylyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7Uz4wPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBGPTAseWU9MDt5ZTxULmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pLSgwfFQud29yZHNbeWVdKStG''@;'; put 'put ''KT4+MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmUDtmb3IoOzAhPT1GJiZ5ZTxWLmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2lmKDA9PT1GJiZ5ZTxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDt5ZTxWLmxlbmd0aDt5''@;'; put 'put ''ZSsrKXRoaXMud29yZHNbeWVdPVYud29yZHNbeWVdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5ZSksViE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCku''@;'; put 'put ''aXN1Yih4KX07dmFyIEFlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTLEYseWU9eC53b3JkcyxDZT1QLndvcmRzLERlPVYud29yZHMsUGU9MCxRZT0wfHllWzBdLCRlPTgxOTEmUWUsZ3Q9UWU+Pj4xMyx3dD0wfHllWzFdLG10PTgxOTEmd3QsdnQ9d3Q+Pj4xMyxBdD0wfHllWzJdLGh0PTgxOTEm''@;'; put 'put ''QXQsQnQ9QXQ+Pj4xMyxvbj0wfHllWzNdLF90PTgxOTEmb24sdHQ9b24+Pj4xMyxldD0wfHllWzRdLGx0PTgxOTEmZXQsTHQ9ZXQ+Pj4xMyxDdD0wfHllWzVdLGZ0PTgxOTEmQ3QsSHQ9Q3Q+Pj4xMyxHZT0wfHllWzZdLFVlPTgxOTEmR2UseXQ9R2U+Pj4xMyxqdD0wfHllWzddLEp0PTgxOTEm''@;'; put 'put ''anQsZ249anQ+Pj4xMyxkbj0wfHllWzhdLHluPTgxOTEmZG4sbG49ZG4+Pj4xMyxObj0wfHllWzldLGJuPTgxOTEmTm4sZXI9Tm4+Pj4xMyxzcj0wfENlWzBdLFhuPTgxOTEmc3IsRnI9c3I+Pj4xMyx4cj0wfENlWzFdLHF0PTgxOTEmeHIscHI9eHI+Pj4xMyxucj0wfENlWzJdLEFuPTgxOTEm''@;'; put 'put ''bnIscW49bnI+Pj4xMyxXdD0wfENlWzNdLHBuPTgxOTEmV3QsS249V3Q+Pj4xMyxOdD0wfENlWzRdLHNuPTgxOTEmTnQsVW49TnQ+Pj4xMyx3bj0wfENlWzVdLHRuPTgxOTEmd24sem49d24+Pj4xMyxUcj0wfENlWzZdLEJuPTgxOTEmVHIsa3I9VHI+Pj4xMyxtbj0wfENlWzddLHVuPTgxOTEm''@;'; put 'put ''bW4sY249bW4+Pj4xMyxfbj0wfENlWzhdLEd0PTgxOTEmX24sa249X24+Pj4xMyxWbj0wfENlWzldLGVuPTgxOTEmVm4sSW49Vm4+Pj4xMztWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD0xOTt2YXIgSm49KFBlKyhUPU1hdGguaW11bCgkZSxYbikpfDApKygoODE5''@;'; put 'put ''MSYoUz0oUz1NYXRoLmltdWwoJGUsRnIpKStNYXRoLmltdWwoZ3QsWG4pfDApKTw8MTMpfDA7UGU9KChGPU1hdGguaW11bChndCxGcikpKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChtdCxYbiksUz0oUz1NYXRoLmltdWwobXQsRnIpKStNYXRoLmlt''@;'; put 'put ''dWwodnQsWG4pfDAsRj1NYXRoLmltdWwodnQsRnIpO3ZhciBvcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscXQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxwcil8MCkrTWF0aC5pbXVsKGd0LHF0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxwcil8MCkrKFM+''@;'; put 'put ''Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGh0LFhuKSxTPShTPU1hdGguaW11bChodCxGcikpK01hdGguaW11bChCdCxYbil8MCxGPU1hdGguaW11bChCdCxGciksVD1UK01hdGguaW11bChtdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHByKXwwKStN''@;'; put 'put ''YXRoLmltdWwodnQscXQpfDAsRj1GK01hdGguaW11bCh2dCxwcil8MDt2YXIgZ3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEFuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUscW4pfDApK01hdGguaW11bChndCxBbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qs''@;'; put 'put ''cW4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChfdCxYbiksUz0oUz1NYXRoLmltdWwoX3QsRnIpKStNYXRoLmltdWwodHQsWG4pfDAsRj1NYXRoLmltdWwodHQsRnIpLFQ9VCtNYXRoLmltdWwoaHQscXQpfDAsUz0oUz1TK01hdGguaW11bCho''@;'; put 'put ''dCxwcil8MCkrTWF0aC5pbXVsKEJ0LHF0KXwwLEY9RitNYXRoLmltdWwoQnQscHIpfDAsVD1UK01hdGguaW11bChtdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHFuKXwwKStNYXRoLmltdWwodnQsQW4pfDAsRj1GK01hdGguaW11bCh2dCxxbil8MDt2YXIgS3I9KFBlKyhUPVQrTWF0aC5p''@;'; put 'put ''bXVsKCRlLHBuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsS24pfDApK01hdGguaW11bChndCxwbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsS24pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChsdCxYbiks''@;'; put 'put ''Uz0oUz1NYXRoLmltdWwobHQsRnIpKStNYXRoLmltdWwoTHQsWG4pfDAsRj1NYXRoLmltdWwoTHQsRnIpLFQ9VCtNYXRoLmltdWwoX3QscXQpfDAsUz0oUz1TK01hdGguaW11bChfdCxwcil8MCkrTWF0aC5pbXVsKHR0LHF0KXwwLEY9RitNYXRoLmltdWwodHQscHIpfDAsVD1UK01hdGguaW11''@;'; put 'put ''bChodCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHFuKXwwKStNYXRoLmltdWwoQnQsQW4pfDAsRj1GK01hdGguaW11bChCdCxxbil8MCxUPVQrTWF0aC5pbXVsKG10LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsS24pfDApK01hdGguaW11bCh2dCxwbil8MCxGPUYrTWF0aC5pbXVsKHZ0''@;'; put 'put ''LEtuKXwwO3ZhciBWcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsc24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxVbil8MCkrTWF0aC5pbXVsKGd0LHNuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxVbil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnIm''@;'; put 'put ''PTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGZ0LFhuKSxTPShTPU1hdGguaW11bChmdCxGcikpK01hdGguaW11bChIdCxYbil8MCxGPU1hdGguaW11bChIdCxGciksVD1UK01hdGguaW11bChsdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHByKXwwKStNYXRoLmltdWwoTHQscXQpfDAsRj1GK01h''@;'; put 'put ''dGguaW11bChMdCxwcil8MCxUPVQrTWF0aC5pbXVsKF90LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QscW4pfDApK01hdGguaW11bCh0dCxBbil8MCxGPUYrTWF0aC5pbXVsKHR0LHFuKXwwLFQ9VCtNYXRoLmltdWwoaHQscG4pfDAsUz0oUz1TK01hdGguaW11bChodCxLbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKEJ0LHBuKXwwLEY9RitNYXRoLmltdWwoQnQsS24pfDAsVD1UK01hdGguaW11bChtdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LFVuKXwwKStNYXRoLmltdWwodnQsc24pfDAsRj1GK01hdGguaW11bCh2dCxVbil8MDt2YXIgaWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHRuKXwwKXww''@;'; put 'put ''KSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsem4pfDApK01hdGguaW11bChndCx0bil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsem4pfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChVZSxYbiksUz0oUz1NYXRoLmltdWwo''@;'; put 'put ''VWUsRnIpKStNYXRoLmltdWwoeXQsWG4pfDAsRj1NYXRoLmltdWwoeXQsRnIpLFQ9VCtNYXRoLmltdWwoZnQscXQpfDAsUz0oUz1TK01hdGguaW11bChmdCxwcil8MCkrTWF0aC5pbXVsKEh0LHF0KXwwLEY9RitNYXRoLmltdWwoSHQscHIpfDAsVD1UK01hdGguaW11bChsdCxBbil8MCxTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKGx0LHFuKXwwKStNYXRoLmltdWwoTHQsQW4pfDAsRj1GK01hdGguaW11bChMdCxxbil8MCxUPVQrTWF0aC5pbXVsKF90LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxGPUYrTWF0aC5pbXVsKHR0LEtuKXwwLFQ9VCtNYXRo''@;'; put 'put ''LmltdWwoaHQsc24pfDAsUz0oUz1TK01hdGguaW11bChodCxVbil8MCkrTWF0aC5pbXVsKEJ0LHNuKXwwLEY9RitNYXRoLmltdWwoQnQsVW4pfDAsVD1UK01hdGguaW11bChtdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHpuKXwwKStNYXRoLmltdWwodnQsdG4pfDAsRj1GK01hdGguaW11''@;'; put 'put ''bCh2dCx6bil8MDt2YXIgUnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEJuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa3IpfDApK01hdGguaW11bChndCxCbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa3IpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXww''@;'; put 'put ''LFJyJj02NzEwODg2MyxUPU1hdGguaW11bChKdCxYbiksUz0oUz1NYXRoLmltdWwoSnQsRnIpKStNYXRoLmltdWwoZ24sWG4pfDAsRj1NYXRoLmltdWwoZ24sRnIpLFQ9VCtNYXRoLmltdWwoVWUscXQpfDAsUz0oUz1TK01hdGguaW11bChVZSxwcil8MCkrTWF0aC5pbXVsKHl0LHF0KXwwLEY9''@;'; put 'put ''RitNYXRoLmltdWwoeXQscHIpfDAsVD1UK01hdGguaW11bChmdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHFuKXwwKStNYXRoLmltdWwoSHQsQW4pfDAsRj1GK01hdGguaW11bChIdCxxbil8MCxUPVQrTWF0aC5pbXVsKGx0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobHQsS24pfDApK01h''@;'; put 'put ''dGguaW11bChMdCxwbil8MCxGPUYrTWF0aC5pbXVsKEx0LEtuKXwwLFQ9VCtNYXRoLmltdWwoX3Qsc24pfDAsUz0oUz1TK01hdGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNuKXwwLEY9RitNYXRoLmltdWwodHQsVW4pfDAsVD1UK01hdGguaW11bChodCx0bil8MCxTPShTPVMrTWF0''@;'; put 'put ''aC5pbXVsKGh0LHpuKXwwKStNYXRoLmltdWwoQnQsdG4pfDAsRj1GK01hdGguaW11bChCdCx6bil8MCxUPVQrTWF0aC5pbXVsKG10LEJuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsa3IpfDApK01hdGguaW11bCh2dCxCbil8MCxGPUYrTWF0aC5pbXVsKHZ0LGtyKXwwO3ZhciBsaT0oUGUrKFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoJGUsdW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxjbil8MCkrTWF0aC5pbXVsKGd0LHVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxjbil8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVs''@;'; put 'put ''KHluLFhuKSxTPShTPU1hdGguaW11bCh5bixGcikpK01hdGguaW11bChsbixYbil8MCxGPU1hdGguaW11bChsbixGciksVD1UK01hdGguaW11bChKdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHByKXwwKStNYXRoLmltdWwoZ24scXQpfDAsRj1GK01hdGguaW11bChnbixwcil8MCxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKFVlLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUscW4pfDApK01hdGguaW11bCh5dCxBbil8MCxGPUYrTWF0aC5pbXVsKHl0LHFuKXwwLFQ9VCtNYXRoLmltdWwoZnQscG4pfDAsUz0oUz1TK01hdGguaW11bChmdCxLbil8MCkrTWF0aC5pbXVsKEh0LHBuKXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoSHQsS24pfDAsVD1UK01hdGguaW11bChsdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LFVuKXwwKStNYXRoLmltdWwoTHQsc24pfDAsRj1GK01hdGguaW11bChMdCxVbil8MCxUPVQrTWF0aC5pbXVsKF90LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsem4pfDApK01hdGguaW11''@;'; put 'put ''bCh0dCx0bil8MCxGPUYrTWF0aC5pbXVsKHR0LHpuKXwwLFQ9VCtNYXRoLmltdWwoaHQsQm4pfDAsUz0oUz1TK01hdGguaW11bChodCxrcil8MCkrTWF0aC5pbXVsKEJ0LEJuKXwwLEY9RitNYXRoLmltdWwoQnQsa3IpfDAsVD1UK01hdGguaW11bChtdCx1bil8MCxTPShTPVMrTWF0aC5pbXVs''@;'; put 'put ''KG10LGNuKXwwKStNYXRoLmltdWwodnQsdW4pfDAsRj1GK01hdGguaW11bCh2dCxjbil8MDt2YXIgTWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa24pfDApK01hdGguaW11bChndCxHdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitN''@;'; put 'put ''YXRoLmltdWwoZ3Qsa24pfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChibixYbiksUz0oUz1NYXRoLmltdWwoYm4sRnIpKStNYXRoLmltdWwoZXIsWG4pfDAsRj1NYXRoLmltdWwoZXIsRnIpLFQ9VCtNYXRoLmltdWwoeW4scXQpfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bCh5bixwcil8MCkrTWF0aC5pbXVsKGxuLHF0KXwwLEY9RitNYXRoLmltdWwobG4scHIpfDAsVD1UK01hdGguaW11bChKdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHFuKXwwKStNYXRoLmltdWwoZ24sQW4pfDAsRj1GK01hdGguaW11bChnbixxbil8MCxUPVQrTWF0aC5p''@;'; put 'put ''bXVsKFVlLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxGPUYrTWF0aC5pbXVsKHl0LEtuKXwwLFQ9VCtNYXRoLmltdWwoZnQsc24pfDAsUz0oUz1TK01hdGguaW11bChmdCxVbil8MCkrTWF0aC5pbXVsKEh0LHNuKXwwLEY9RitNYXRoLmltdWwo''@;'; put 'put ''SHQsVW4pfDAsVD1UK01hdGguaW11bChsdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHpuKXwwKStNYXRoLmltdWwoTHQsdG4pfDAsRj1GK01hdGguaW11bChMdCx6bil8MCxUPVQrTWF0aC5pbXVsKF90LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxC''@;'; put 'put ''bil8MCxGPUYrTWF0aC5pbXVsKHR0LGtyKXwwLFQ9VCtNYXRoLmltdWwoaHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChodCxjbil8MCkrTWF0aC5pbXVsKEJ0LHVuKXwwLEY9RitNYXRoLmltdWwoQnQsY24pfDAsVD1UK01hdGguaW11bChtdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LGtu''@;'; put 'put ''KXwwKStNYXRoLmltdWwodnQsR3QpfDAsRj1GK01hdGguaW11bCh2dCxrbil8MDt2YXIgbzA9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsSW4pfDApK01hdGguaW11bChndCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmlt''@;'; put 'put ''dWwoZ3QsSW4pfDApKyhTPj4+MTMpfDApKyhvMD4+PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChibixxdCksUz0oUz1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIscXQpfDAsRj1NYXRoLmltdWwoZXIscHIpLFQ9VCtNYXRoLmltdWwoeW4sQW4pfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bCh5bixxbil8MCkrTWF0aC5pbXVsKGxuLEFuKXwwLEY9RitNYXRoLmltdWwobG4scW4pfDAsVD1UK01hdGguaW11bChKdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LEtuKXwwKStNYXRoLmltdWwoZ24scG4pfDAsRj1GK01hdGguaW11bChnbixLbil8MCxUPVQrTWF0aC5pbXVsKFVl''@;'; put 'put ''LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsVW4pfDApK01hdGguaW11bCh5dCxzbil8MCxGPUYrTWF0aC5pbXVsKHl0LFVuKXwwLFQ9VCtNYXRoLmltdWwoZnQsdG4pfDAsUz0oUz1TK01hdGguaW11bChmdCx6bil8MCkrTWF0aC5pbXVsKEh0LHRuKXwwLEY9RitNYXRoLmltdWwoSHQsem4p''@;'; put 'put ''fDAsVD1UK01hdGguaW11bChsdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGtyKXwwKStNYXRoLmltdWwoTHQsQm4pfDAsRj1GK01hdGguaW11bChMdCxrcil8MCxUPVQrTWF0aC5pbXVsKF90LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsY24pfDApK01hdGguaW11bCh0dCx1bil8MCxG''@;'; put 'put ''PUYrTWF0aC5pbXVsKHR0LGNuKXwwLFQ9VCtNYXRoLmltdWwoaHQsR3QpfDAsUz0oUz1TK01hdGguaW11bChodCxrbil8MCkrTWF0aC5pbXVsKEJ0LEd0KXwwLEY9RitNYXRoLmltdWwoQnQsa24pfDA7dmFyIG4wPShQZSsoVD1UK01hdGguaW11bChtdCxlbil8MCl8MCkrKCg4MTkxJihTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKG10LEluKXwwKStNYXRoLmltdWwodnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHZ0LEluKXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQW4pLFM9KFM9TWF0aC5pbXVsKGJuLHFuKSkrTWF0aC5p''@;'; put 'put ''bXVsKGVyLEFuKXwwLEY9TWF0aC5pbXVsKGVyLHFuKSxUPVQrTWF0aC5pbXVsKHluLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sS24pfDApK01hdGguaW11bChsbixwbil8MCxGPUYrTWF0aC5pbXVsKGxuLEtuKXwwLFQ9VCtNYXRoLmltdWwoSnQsc24pfDAsUz0oUz1TK01hdGguaW11bChK''@;'; put 'put ''dCxVbil8MCkrTWF0aC5pbXVsKGduLHNuKXwwLEY9RitNYXRoLmltdWwoZ24sVW4pfDAsVD1UK01hdGguaW11bChVZSx0bil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRoLmltdWwoeXQsdG4pfDAsRj1GK01hdGguaW11bCh5dCx6bil8MCxUPVQrTWF0aC5pbXVsKGZ0LEJuKXww''@;'; put 'put ''LFM9KFM9UytNYXRoLmltdWwoZnQsa3IpfDApK01hdGguaW11bChIdCxCbil8MCxGPUYrTWF0aC5pbXVsKEh0LGtyKXwwLFQ9VCtNYXRoLmltdWwobHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChsdCxjbil8MCkrTWF0aC5pbXVsKEx0LHVuKXwwLEY9RitNYXRoLmltdWwoTHQsY24pfDAsVD1U''@;'; put 'put ''K01hdGguaW11bChfdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRj1GK01hdGguaW11bCh0dCxrbil8MDt2YXIgZDA9KFBlKyhUPVQrTWF0aC5pbXVsKGh0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoaHQsSW4pfDApK01h''@;'; put 'put ''dGguaW11bChCdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQnQsSW4pfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChibixwbiksUz0oUz1NYXRoLmltdWwoYm4sS24pKStNYXRoLmltdWwoZXIscG4pfDAsRj1NYXRoLmltdWwo''@;'; put 'put ''ZXIsS24pLFQ9VCtNYXRoLmltdWwoeW4sc24pfDAsUz0oUz1TK01hdGguaW11bCh5bixVbil8MCkrTWF0aC5pbXVsKGxuLHNuKXwwLEY9RitNYXRoLmltdWwobG4sVW4pfDAsVD1UK01hdGguaW11bChKdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHpuKXwwKStNYXRoLmltdWwoZ24sdG4p''@;'; put 'put ''fDAsRj1GK01hdGguaW11bChnbix6bil8MCxUPVQrTWF0aC5pbXVsKFVlLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa3IpfDApK01hdGguaW11bCh5dCxCbil8MCxGPUYrTWF0aC5pbXVsKHl0LGtyKXwwLFQ9VCtNYXRoLmltdWwoZnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxjbil8''@;'; put 'put ''MCkrTWF0aC5pbXVsKEh0LHVuKXwwLEY9RitNYXRoLmltdWwoSHQsY24pfDAsVD1UK01hdGguaW11bChsdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGtuKXwwKStNYXRoLmltdWwoTHQsR3QpfDAsRj1GK01hdGguaW11bChMdCxrbil8MDt2YXIgbTA9KFBlKyhUPVQrTWF0aC5pbXVsKF90''@;'; put 'put ''LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoX3QsSW4pfDApK01hdGguaW11bCh0dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodHQsSW4pfDApKyhTPj4+MTMpfDApKyhtMD4+PjI2KXwwLG0wJj02NzEwODg2MyxUPU1hdGguaW11bChibixzbiksUz0oUz1N''@;'; put 'put ''YXRoLmltdWwoYm4sVW4pKStNYXRoLmltdWwoZXIsc24pfDAsRj1NYXRoLmltdWwoZXIsVW4pLFQ9VCtNYXRoLmltdWwoeW4sdG4pfDAsUz0oUz1TK01hdGguaW11bCh5bix6bil8MCkrTWF0aC5pbXVsKGxuLHRuKXwwLEY9RitNYXRoLmltdWwobG4sem4pfDAsVD1UK01hdGguaW11bChKdCxC''@;'; put 'put ''bil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LGtyKXwwKStNYXRoLmltdWwoZ24sQm4pfDAsRj1GK01hdGguaW11bChnbixrcil8MCxUPVQrTWF0aC5pbXVsKFVlLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsY24pfDApK01hdGguaW11bCh5dCx1bil8MCxGPUYrTWF0aC5pbXVsKHl0LGNuKXww''@;'; put 'put ''LFQ9VCtNYXRoLmltdWwoZnQsR3QpfDAsUz0oUz1TK01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLEY9RitNYXRoLmltdWwoSHQsa24pfDA7dmFyIEcwPShQZSsoVD1UK01hdGguaW11bChsdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGx0LEluKXww''@;'; put 'put ''KStNYXRoLmltdWwoTHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEx0LEluKXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdG4pLFM9KFM9TWF0aC5pbXVsKGJuLHpuKSkrTWF0aC5pbXVsKGVyLHRuKXwwLEY9TWF0aC5p''@;'; put 'put ''bXVsKGVyLHpuKSxUPVQrTWF0aC5pbXVsKHluLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa3IpfDApK01hdGguaW11bChsbixCbil8MCxGPUYrTWF0aC5pbXVsKGxuLGtyKXwwLFQ9VCtNYXRoLmltdWwoSnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChKdCxjbil8MCkrTWF0aC5pbXVsKGdu''@;'; put 'put ''LHVuKXwwLEY9RitNYXRoLmltdWwoZ24sY24pfDAsVD1UK01hdGguaW11bChVZSxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtuKXwwKStNYXRoLmltdWwoeXQsR3QpfDAsRj1GK01hdGguaW11bCh5dCxrbil8MDt2YXIgRGk9KFBlKyhUPVQrTWF0aC5pbXVsKGZ0LGVuKXwwKXwwKSsoKDgx''@;'; put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoZnQsSW4pfDApK01hdGguaW11bChIdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoSHQsSW4pfDApKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxUPU1hdGguaW11bChibixCbiksUz0oUz1NYXRoLmltdWwoYm4sa3Ip''@;'; put 'put ''KStNYXRoLmltdWwoZXIsQm4pfDAsRj1NYXRoLmltdWwoZXIsa3IpLFQ9VCtNYXRoLmltdWwoeW4sdW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixjbil8MCkrTWF0aC5pbXVsKGxuLHVuKXwwLEY9RitNYXRoLmltdWwobG4sY24pfDAsVD1UK01hdGguaW11bChKdCxHdCl8MCxTPShTPVMrTWF0''@;'; put 'put ''aC5pbXVsKEp0LGtuKXwwKStNYXRoLmltdWwoZ24sR3QpfDAsRj1GK01hdGguaW11bChnbixrbil8MDt2YXIgVzA9KFBlKyhUPVQrTWF0aC5pbXVsKFVlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCkpPDwxMyl8MDtQZT0o''@;'; put 'put ''KEY9RitNYXRoLmltdWwoeXQsSW4pfDApKyhTPj4+MTMpfDApKyhXMD4+PjI2KXwwLFcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix1biksUz0oUz1NYXRoLmltdWwoYm4sY24pKStNYXRoLmltdWwoZXIsdW4pfDAsRj1NYXRoLmltdWwoZXIsY24pLFQ9VCtNYXRoLmltdWwoeW4sR3QpfDAs''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bCh5bixrbil8MCkrTWF0aC5pbXVsKGxuLEd0KXwwLEY9RitNYXRoLmltdWwobG4sa24pfDA7dmFyIEVvPShQZSsoVD1UK01hdGguaW11bChKdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEp0LEluKXwwKStNYXRoLmltdWwoZ24sZW4pfDApKTw8''@;'; put 'put ''MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGduLEluKXwwKSsoUz4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sR3QpLFM9KFM9TWF0aC5pbXVsKGJuLGtuKSkrTWF0aC5pbXVsKGVyLEd0KXwwLEY9TWF0aC5pbXVsKGVyLGtuKTt2YXIgcW89KFBlKyhU''@;'; put 'put ''PVQrTWF0aC5pbXVsKHluLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoeW4sSW4pfDApK01hdGguaW11bChsbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwobG4sSW4pfDApKyhTPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2Mzt2YXIgY2E9KFBl''@;'; put 'put ''KyhUPU1hdGguaW11bChibixlbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoYm4sSW4pKStNYXRoLmltdWwoZXIsZW4pfDApKTw8MTMpfDA7cmV0dXJuIFBlPSgoRj1NYXRoLmltdWwoZXIsSW4pKSsoUz4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRGVbMF09Sm4sRGVb''@;'; put 'put ''MV09b3IsRGVbMl09Z3IsRGVbM109S3IsRGVbNF09VnIsRGVbNV09aWksRGVbNl09UnIsRGVbN109bGksRGVbOF09TWksRGVbOV09bzAsRGVbMTBdPW4wLERlWzExXT1kMCxEZVsxMl09bTAsRGVbMTNdPUcwLERlWzE0XT1EaSxEZVsxNV09VzAsRGVbMTZdPUVvLERlWzE3XT1xbyxEZVsxOF09''@;'; put 'put ''Y2EsMCE9PVBlJiYoRGVbMTldPVBlLFYubGVuZ3RoKyspLFZ9O2Z1bmN0aW9uIGtlKHgsUCxWKXtyZXR1cm4obmV3IFNlKS5tdWxwKHgsUCxWKX1mdW5jdGlvbiBTZSh4LFApe3RoaXMueD14LHRoaXMueT1QfU1hdGguaW11bHx8KEFlPXZlKSxOLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih4''@;'; put 'put ''LFApe3ZhciBUPXRoaXMubGVuZ3RoK3gubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXgubGVuZ3RoP0FlKHRoaXMseCxQKTpUPDYzP3ZlKHRoaXMseCxQKTpUPDEwMjQ/ZnVuY3Rpb24oUyxGLHllKXt5ZS5uZWdhdGl2ZT1GLm5lZ2F0aXZlXlMubmVnYXRpdmUseWUubGVu''@;'; put 'put ''Z3RoPVMubGVuZ3RoK0YubGVuZ3RoO2Zvcih2YXIgQ2U9MCxEZT0wLFBlPTA7UGU8eWUubGVuZ3RoLTE7UGUrKyl7dmFyIFFlPURlO0RlPTA7Zm9yKHZhciAkZT02NzEwODg2MyZDZSxndD1NYXRoLm1pbihQZSxGLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLVMubGVuZ3RoKzEpO3d0PD1n''@;'; put 'put ''dDt3dCsrKXt2YXIgdnQ9KDB8Uy53b3Jkc1tQZS13dF0pKigwfEYud29yZHNbd3RdKSxBdD02NzEwODg2MyZ2dDskZT02NzEwODg2MyYoQXQ9QXQrJGV8MCksRGUrPShRZT0oUWU9UWUrKHZ0LzY3MTA4ODY0fDApfDApKyhBdD4+PjI2KXwwKT4+PjI2LFFlJj02NzEwODg2M315ZS53b3Jkc1tQ''@;'; put 'put ''ZV09JGUsQ2U9UWUsUWU9RGV9cmV0dXJuIDAhPT1DZT95ZS53b3Jkc1tQZV09Q2U6eWUubGVuZ3RoLS0seWUuc3RyaXAoKX0odGhpcyx4LFApOmtlKHRoaXMseCxQKX0sU2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPU4ucHJvdG90eXBl''@;'; put 'put ''Ll9jb3VudEJpdHMoeCktMSxUPTA7VDx4O1QrKylQW1RdPXRoaXMucmV2QmluKFQsVix4KTtyZXR1cm4gUH0sU2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbih4LFAsVil7aWYoMD09PXh8fHg9PT1WLTEpcmV0dXJuIHg7Zm9yKHZhciBUPTAsUz0wO1M8UDtTKyspVHw9KDEmeCk8PFAtUy0x''@;'; put 'put ''LHg+Pj0xO3JldHVybiBUfSxTZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbih4LFAsVixULFMsRil7Zm9yKHZhciB5ZT0wO3llPEY7eWUrKylUW3llXT1QW3hbeWVdXSxTW3llXT1WW3hbeWVdXX0sU2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih4LFAsVixULFMsRil7dGhpcy5w''@;'; put 'put ''ZXJtdXRlKEYseCxQLFYsVCxTKTtmb3IodmFyIHllPTE7eWU8Uzt5ZTw8PTEpZm9yKHZhciBDZT15ZTw8MSxEZT1NYXRoLmNvcygyKk1hdGguUEkvQ2UpLFBlPU1hdGguc2luKDIqTWF0aC5QSS9DZSksUWU9MDtRZTxTO1FlKz1DZSlmb3IodmFyICRlPURlLGd0PVBlLHd0PTA7d3Q8eWU7d3Qr''@;'; put 'put ''Kyl7dmFyIG10PVZbUWUrd3RdLHZ0PVRbUWUrd3RdLEF0PVZbUWUrd3QreWVdLGh0PVRbUWUrd3QreWVdLEJ0PSRlKkF0LWd0Kmh0O2h0PSRlKmh0K2d0KkF0LFZbUWUrd3RdPW10KyhBdD1CdCksVFtRZSt3dF09dnQraHQsVltRZSt3dCt5ZV09bXQtQXQsVFtRZSt3dCt5ZV09dnQtaHQsd3Qh''@;'; put 'put ''PT1DZSYmKEJ0PURlKiRlLVBlKmd0LGd0PURlKmd0K1BlKiRlLCRlPUJ0KX19LFNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih4LFApe3ZhciBWPTF8TWF0aC5tYXgoUCx4KSxUPTEmVixTPTA7Zm9yKFY9Vi8yfDA7VjtWPj4+PTEpUysrO3JldHVybiAxPDxTKzErVH0sU2UucHJv''@;'; put 'put ''dG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih4LFAsVil7aWYoIShWPD0xKSlmb3IodmFyIFQ9MDtUPFYvMjtUKyspe3ZhciBTPXhbVF07eFtUXT14W1YtVC0xXSx4W1YtVC0xXT1TLFM9UFtUXSxQW1RdPS1QW1YtVC0xXSxQW1YtVC0xXT0tU319LFNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9''@;'; put 'put ''ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9MCxUPTA7VDxQLzI7VCsrKXt2YXIgUz04MTkyKk1hdGgucm91bmQoeFsyKlQrMV0vUCkrTWF0aC5yb3VuZCh4WzIqVF0vUCkrVjt4W1RdPTY3MTA4ODYzJlMsVj1TPDY3MTA4ODY0PzA6Uy82NzEwODg2NHwwfXJldHVybiB4fSxTZS5wcm90b3R5cGUu''@;'; put 'put ''Y29udmVydDEzYj1mdW5jdGlvbih4LFAsVixUKXtmb3IodmFyIFM9MCxGPTA7RjxQO0YrKylWWzIqRl09ODE5MSYoUys9MHx4W0ZdKSxWWzIqRisxXT04MTkxJihTPj4+PTEzKSxTPj4+PTEzO2ZvcihGPTIqUDtGPFQ7KytGKVZbRl09MDtZKDA9PT1TKSxZKDA9PSgtODE5MiZTKSl9LFNlLnBy''@;'; put 'put ''b3RvdHlwZS5zdHViPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj0wO1Y8eDtWKyspUFtWXT0wO3JldHVybiBQfSxTZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbih4LFAsVil7dmFyIFQ9Mip0aGlzLmd1ZXNzTGVuMTNiKHgubGVuZ3RoLFAubGVuZ3RoKSxTPXRoaXMubWFr''@;'; put 'put ''ZVJCVChUKSxGPXRoaXMuc3R1YihUKSx5ZT1uZXcgQXJyYXkoVCksQ2U9bmV3IEFycmF5KFQpLERlPW5ldyBBcnJheShUKSxQZT1uZXcgQXJyYXkoVCksUWU9bmV3IEFycmF5KFQpLCRlPW5ldyBBcnJheShUKSxndD1WLndvcmRzO2d0Lmxlbmd0aD1ULHRoaXMuY29udmVydDEzYih4LndvcmRz''@;'; put 'put ''LHgubGVuZ3RoLHllLFQpLHRoaXMuY29udmVydDEzYihQLndvcmRzLFAubGVuZ3RoLFBlLFQpLHRoaXMudHJhbnNmb3JtKHllLEYsQ2UsRGUsVCxTKSx0aGlzLnRyYW5zZm9ybShQZSxGLFFlLCRlLFQsUyk7Zm9yKHZhciB3dD0wO3d0PFQ7d3QrKyl7dmFyIG10PUNlW3d0XSpRZVt3dF0tRGVb''@;'; put 'put ''d3RdKiRlW3d0XTtEZVt3dF09Q2Vbd3RdKiRlW3d0XStEZVt3dF0qUWVbd3RdLENlW3d0XT1tdH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoQ2UsRGUsVCksdGhpcy50cmFuc2Zvcm0oQ2UsRGUsZ3QsRixULFMpLHRoaXMuY29uanVnYXRlKGd0LEYsVCksdGhpcy5ub3JtYWxpemUxM2IoZ3QsVCks''@;'; put 'put ''Vi5uZWdhdGl2ZT14Lm5lZ2F0aXZlXlAubmVnYXRpdmUsVi5sZW5ndGg9eC5sZW5ndGgrUC5sZW5ndGgsVi5zdHJpcCgpfSxOLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSx0''@;'; put 'put ''aGlzLm11bFRvKHgsUCl9LE4ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSxrZSh0aGlzLHgsUCl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''Y2xvbmUoKS5tdWxUbyh4LHRoaXMpfSxOLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKngsUz0oNjcxMDg4NjMmVCkr''@;'; put 'put ''KDY3MTA4ODYzJlApO1A+Pj0yNixQKz1ULzY3MTA4ODY0fDAsUCs9Uz4+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmU31yZXR1cm4gMCE9PVAmJih0aGlzLndvcmRzW1ZdPVAsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5j''@;'; put 'put ''bG9uZSgpLmltdWxuKHgpfSxOLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE4ucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LE4ucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4KXt2YXIgUD1mdW5j''@;'; put 'put ''dGlvbihGKXtmb3IodmFyIHllPW5ldyBBcnJheShGLmJpdExlbmd0aCgpKSxDZT0wO0NlPHllLmxlbmd0aDtDZSsrKXt2YXIgUGU9Q2UlMjY7eWVbQ2VdPShGLndvcmRzW0NlLzI2fDBdJjE8PFBlKT4+PlBlfXJldHVybiB5ZX0oeCk7aWYoMD09PVAubGVuZ3RoKXJldHVybiBuZXcgTigxKTtm''@;'; put 'put ''b3IodmFyIFY9dGhpcyxUPTA7VDxQLmxlbmd0aCYmMD09PVBbVF07VCsrLFY9Vi5zcXIoKSk7aWYoKytUPFAubGVuZ3RoKWZvcih2YXIgUz1WLnNxcigpO1Q8UC5sZW5ndGg7VCsrLFM9Uy5zcXIoKSkwIT09UFtUXSYmKFY9Vi5tdWwoUykpO3JldHVybiBWfSxOLnByb3RvdHlwZS5pdXNobG49''@;'; put 'put ''ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQLFY9eCUyNixUPSh4LVYpLzI2LFM9NjcxMDg4NjM+Pj4yNi1WPDwyNi1WO2lmKDAhPT1WKXt2YXIgRj0wO2ZvcihQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciB5ZT10aGlzLndvcmRzW1BdJlM7dGhpcy53b3Jk''@;'; put 'put ''c1tQXT0oMHx0aGlzLndvcmRzW1BdKS15ZTw8VnxGLEY9eWU+Pj4yNi1WfUYmJih0aGlzLndvcmRzW1BdPUYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PVQpe2ZvcihQPXRoaXMubGVuZ3RoLTE7UD49MDtQLS0pdGhpcy53b3Jkc1tQK1RdPXRoaXMud29yZHNbUF07Zm9yKFA9MDtQPFQ7UCsrKXRo''@;'; put 'put ''aXMud29yZHNbUF09MDt0aGlzLmxlbmd0aCs9VH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oeCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih4LFAsVil7dmFyIFQ7''@;'; put 'put ''WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApLFQ9UD8oUC1QJTI2KS8yNjowO3ZhciBTPXglMjYsRj1NYXRoLm1pbigoeC1TKS8yNix0aGlzLmxlbmd0aCkseWU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5TPDxTLENlPVY7aWYoVC09RixUPU1hdGgubWF4KDAsVCksQ2Upe2Zvcih2YXIgRGU9MDtE''@;'; put 'put ''ZTxGO0RlKyspQ2Uud29yZHNbRGVdPXRoaXMud29yZHNbRGVdO0NlLmxlbmd0aD1GfWlmKDAhPT1GKWlmKHRoaXMubGVuZ3RoPkYpZm9yKHRoaXMubGVuZ3RoLT1GLERlPTA7RGU8dGhpcy5sZW5ndGg7RGUrKyl0aGlzLndvcmRzW0RlXT10aGlzLndvcmRzW0RlK0ZdO2Vsc2UgdGhpcy53b3Jk''@;'; put 'put ''c1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIFBlPTA7Zm9yKERlPXRoaXMubGVuZ3RoLTE7RGU+PTAmJigwIT09UGV8fERlPj1UKTtEZS0tKXt2YXIgUWU9MHx0aGlzLndvcmRzW0RlXTt0aGlzLndvcmRzW0RlXT1QZTw8MjYtU3xRZT4+PlMsUGU9UWUmeWV9cmV0dXJuIENlJiYwIT09UGUmJihD''@;'; put 'put ''ZS53b3Jkc1tDZS5sZW5ndGgrK109UGUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oeCxQ''@;'; put 'put ''LFYpfSxOLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oeCl9LE4ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlz''@;'; put 'put ''LmNsb25lKCkuaXNocm4oeCl9LE4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHgpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVy''@;'; put 'put ''biEodGhpcy5sZW5ndGg8PVZ8fCEodGhpcy53b3Jkc1tWXSYxPDxQKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mg''@;'; put 'put ''b25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Vj90aGlzOigwIT09UCYmVisrLHRoaXMubGVuZ3RoPU1hdGgubWluKFYsdGhpcy5sZW5ndGgpLDAhPT1QJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5QPDxQKSx0aGlzLnN0''@;'; put 'put ''cmlwKCkpfSxOLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih4KX0sTi5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MD90aGlzLmlzdWJuKC14KTowIT09''@;'; put 'put ''dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPHg/KHRoaXMud29yZHNbMF09eC0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlz''@;'; put 'put ''Ll9pYWRkbih4KX0sTi5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHgpe3RoaXMud29yZHNbMF0rPXg7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXT49NjcxMDg4NjQ7UCsrKXRoaXMud29yZHNbUF0tPTY3MTA4ODY0LFA9PT10aGlzLmxlbmd0aC0xP3RoaXMud29y''@;'; put 'put ''ZHNbUCsxXT0xOnRoaXMud29yZHNbUCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxQKzEpLHRoaXN9LE4ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKHgpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MClyZXR1cm4gdGhpcy5p''@;'; put 'put ''YWRkbigteCk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPXgsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jk''@;'; put 'put ''c1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPDA7UCsrKXRoaXMud29yZHNbUF0rPTY3MTA4ODY0LHRoaXMud29yZHNbUCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHgp''@;'; put 'put ''e3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oeCl9LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih4KX0sTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5wcm90b3R5cGUuYWJzPWZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih4LFAsVil7dmFyIFQsUzt0aGlzLl9leHBhbmQoeC5sZW5ndGgrVik7dmFyIHllPTA7Zm9yKFQ9MDtUPHgubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrVl0p''@;'; put 'put ''K3llO3ZhciBDZT0oMHx4LndvcmRzW1RdKSpQO3llPSgoUy09NjcxMDg4NjMmQ2UpPj4yNiktKENlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTfWZvcig7VDx0aGlzLmxlbmd0aC1WO1QrKyl5ZT0oUz0oMHx0aGlzLndvcmRzW1QrVl0pK3llKT4+MjYsdGhpcy53b3Jk''@;'; put 'put ''c1tUK1ZdPTY3MTA4ODYzJlM7aWYoMD09PXllKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKFkoLTE9PT15ZSkseWU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspeWU9KFM9LSgwfHRoaXMud29yZHNbVF0pK3llKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZTO3JldHVybiB0aGlzLm5lZ2F0''@;'; put 'put ''aXZlPTEsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih4LFApe3ZhciBWLFQ9dGhpcy5jbG9uZSgpLFM9eCxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXTswIT0oVj0yNi10aGlzLl9jb3VudEJpdHMoRikpJiYoUz1TLnVzaGxuKFYpLFQuaXVzaGxuKFYpLEY9MHxT''@;'; put 'put ''LndvcmRzW1MubGVuZ3RoLTFdKTt2YXIgeWUsQ2U9VC5sZW5ndGgtUy5sZW5ndGg7aWYoIm1vZCIhPT1QKXsoeWU9bmV3IE4obnVsbCkpLmxlbmd0aD1DZSsxLHllLndvcmRzPW5ldyBBcnJheSh5ZS5sZW5ndGgpO2Zvcih2YXIgRGU9MDtEZTx5ZS5sZW5ndGg7RGUrKyl5ZS53b3Jkc1tEZV09''@;'; put 'put ''MH12YXIgUGU9VC5jbG9uZSgpLl9pc2hsbnN1Ym11bChTLDEsQ2UpOzA9PT1QZS5uZWdhdGl2ZSYmKFQ9UGUseWUmJih5ZS53b3Jkc1tDZV09MSkpO2Zvcih2YXIgUWU9Q2UtMTtRZT49MDtRZS0tKXt2YXIgJGU9NjcxMDg4NjQqKDB8VC53b3Jkc1tTLmxlbmd0aCtRZV0pKygwfFQud29yZHNb''@;'; put 'put ''Uy5sZW5ndGgrUWUtMV0pO2ZvcigkZT1NYXRoLm1pbigkZS9GfDAsNjcxMDg4NjMpLFQuX2lzaGxuc3VibXVsKFMsJGUsUWUpOzAhPT1ULm5lZ2F0aXZlOykkZS0tLFQubmVnYXRpdmU9MCxULl9pc2hsbnN1Ym11bChTLDEsUWUpLFQuaXNaZXJvKCl8fChULm5lZ2F0aXZlXj0xKTt5ZSYmKHll''@;'; put 'put ''LndvcmRzW1FlXT0kZSl9cmV0dXJuIHllJiZ5ZS5zdHJpcCgpLFQuc3RyaXAoKSwiZGl2IiE9PVAmJjAhPT1WJiZULml1c2hybihWKSx7ZGl2OnllfHxudWxsLG1vZDpUfX0sTi5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgheC5pc1plcm8oKSksdGhpcy5pc1pl''@;'; put 'put ''cm8oKT97ZGl2Om5ldyBOKDApLG1vZDpuZXcgTigwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgsUCksIm1vZCIhPT1QJiYoVD1GLmRpdi5uZWcoKSksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYm''@;'; put 'put ''Uy5pYWRkKHgpKSx7ZGl2OlQsbW9kOlN9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmU/KEY9dGhpcy5kaXZtb2QoeC5uZWcoKSxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSx7ZGl2OlQsbW9kOkYubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmeC5uZWdhdGl2ZSk/KEY9''@;'; put 'put ''dGhpcy5uZWcoKS5kaXZtb2QoeC5uZWcoKSxQKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlzdWIoeCkpLHtkaXY6Ri5kaXYsbW9kOlN9KTp4Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoeCk8MD97ZGl2Om5ldyBOKDApLG1vZDp0aGlzfTox''@;'; put 'put ''PT09eC5sZW5ndGg/ImRpdiI9PT1QP3tkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PVA/e2RpdjpudWxsLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bmV3IE4odGhpcy5tb2RuKHgud29y''@;'; put 'put ''ZHNbMF0pKX06dGhpcy5fd29yZERpdih4LFApO3ZhciBULFMsRn0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJkaXYiLCExKS5kaXZ9LE4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMSkubW9k''@;'; put 'put ''fSxOLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCEwKS5tb2R9LE4ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuZGl2bW9kKHgpO2lmKFAubW9kLmlzWmVybygpKXJldHVybiBQLmRpdjt2YXIgVj0wIT09UC5k''@;'; put 'put ''aXYubmVnYXRpdmU/UC5tb2QuaXN1Yih4KTpQLm1vZCxUPXgudXNocm4oMSksUz14LmFuZGxuKDEpLEY9Vi5jbXAoVCk7cmV0dXJuIEY8MHx8MT09PVMmJjA9PT1GP1AuZGl2OjAhPT1QLmRpdi5uZWdhdGl2ZT9QLmRpdi5pc3VibigxKTpQLmRpdi5pYWRkbigxKX0sTi5wcm90b3R5cGUubW9k''@;'; put 'put ''bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9NjcxMDg4NjQleCxWPTAsVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKVY9KFAqVisoMHx0aGlzLndvcmRzW1RdKSkleDtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9y''@;'; put 'put ''KHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSs2NzEwODg2NCpQO3RoaXMud29yZHNbVl09VC94fDAsUD1UJXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgp''@;'; put 'put ''LmlkaXZuKHgpfSxOLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVD1uZXcgTigxKSxTPW5ldyBOKDApLEY9''@;'; put 'put ''bmV3IE4oMCkseWU9bmV3IE4oMSksQ2U9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpOylQLml1c2hybigxKSxWLml1c2hybigxKSwrK0NlO2Zvcih2YXIgRGU9Vi5jbG9uZSgpLFBlPVAuY2xvbmUoKTshUC5pc1plcm8oKTspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShQLndvcmRzWzBdJiRlKSYm''@;'; put 'put ''UWU8MjY7KytRZSwkZTw8PTEpO2lmKFFlPjApZm9yKFAuaXVzaHJuKFFlKTtRZS0tID4wOykoVC5pc09kZCgpfHxTLmlzT2RkKCkpJiYoVC5pYWRkKERlKSxTLmlzdWIoUGUpKSxULml1c2hybigxKSxTLml1c2hybigxKTtmb3IodmFyIGd0PTAsd3Q9MTswPT0oVi53b3Jkc1swXSZ3dCkmJmd0''@;'; put 'put ''PDI2OysrZ3Qsd3Q8PD0xKTtpZihndD4wKWZvcihWLml1c2hybihndCk7Z3QtLSA+MDspKEYuaXNPZGQoKXx8eWUuaXNPZGQoKSkmJihGLmlhZGQoRGUpLHllLmlzdWIoUGUpKSxGLml1c2hybigxKSx5ZS5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxULmlzdWIoRiksUy5pc3Vi''@;'; put 'put ''KHllKSk6KFYuaXN1YihQKSxGLmlzdWIoVCkseWUuaXN1YihTKSl9cmV0dXJue2E6RixiOnllLGdjZDpWLml1c2hsbihDZSl9fSxOLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAh''@;'; put 'put ''PT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBULFM9bmV3IE4oMSksRj1uZXcgTigwKSx5ZT1WLmNsb25lKCk7UC5jbXBuKDEpPjAmJlYuY21wbigxKT4wOyl7Zm9yKHZhciBDZT0wLERlPTE7MD09KFAud29yZHNbMF0mRGUpJiZDZTwyNjsrK0NlLERlPDw9MSk7aWYo''@;'; put 'put ''Q2U+MClmb3IoUC5pdXNocm4oQ2UpO0NlLS0gPjA7KVMuaXNPZGQoKSYmUy5pYWRkKHllKSxTLml1c2hybigxKTtmb3IodmFyIFBlPTAsUWU9MTswPT0oVi53b3Jkc1swXSZRZSkmJlBlPDI2OysrUGUsUWU8PD0xKTtpZihQZT4wKWZvcihWLml1c2hybihQZSk7UGUtLSA+MDspRi5pc09kZCgp''@;'; put 'put ''JiZGLmlhZGQoeWUpLEYuaXVzaHJuKDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksUy5pc3ViKEYpKTooVi5pc3ViKFApLEYuaXN1YihTKSl9cmV0dXJuKFQ9MD09PVAuY21wbigxKT9TOkYpLmNtcG4oMCk8MCYmVC5pYWRkKHgpLFR9LE4ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih4KXtpZih0''@;'; put 'put ''aGlzLmlzWmVybygpKXJldHVybiB4LmFicygpO2lmKHguaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIFA9dGhpcy5jbG9uZSgpLFY9eC5jbG9uZSgpO1AubmVnYXRpdmU9MCxWLm5lZ2F0aXZlPTA7Zm9yKHZhciBUPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTtUKyspUC5pdXNocm4o''@;'; put 'put ''MSksVi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO1AuaXNFdmVuKCk7KVAuaXVzaHJuKDEpO2Zvcig7Vi5pc0V2ZW4oKTspVi5pdXNocm4oMSk7dmFyIFM9UC5jbXAoVik7aWYoUzwwKXt2YXIgRj1QO1A9VixWPUZ9ZWxzZSBpZigwPT09U3x8MD09PVYuY21wbigxKSlicmVhaztQLmlzdWIoVil9''@;'; put 'put ''cmV0dXJuIFYuaXVzaGxuKFQpfSxOLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmVnY2QoeCkuYS51bW9kKHgpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ4fSxOLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCk7dmFyIFA9eCUyNixWPSh4LVApLzI2LFQ9MTw8''@;'; put 'put ''UDtpZih0aGlzLmxlbmd0aDw9VilyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXXw9VCx0aGlzO2Zvcih2YXIgUz1ULEY9VjswIT09UyYmRjx0aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT0wfHRoaXMud29yZHNbRl07Uz0oeWUrPVMpPj4+MjYsdGhpcy53b3Jkc1tGXT15ZSY9''@;'; put 'put ''NjcxMDg4NjN9cmV0dXJuIDAhPT1TJiYodGhpcy53b3Jkc1tGXT1TLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHgpe3Zh''@;'; put 'put ''ciBQLFY9eDwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhVilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmVilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlQPTE7ZWxzZXtWJiYoeD0teCksWSh4PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIg''@;'; put 'put ''VD0wfHRoaXMud29yZHNbMF07UD1UPT09eD8wOlQ8eD8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLmNtcD1mdW5jdGlvbih4KXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUm''@;'; put 'put ''JjAhPT14Lm5lZ2F0aXZlKXJldHVybiAxO3ZhciBQPXRoaXMudWNtcCh4KTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHgpe2lmKHRoaXMubGVuZ3RoPngubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHgubGVuZ3RoKXJl''@;'; put 'put ''dHVybi0xO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9MHx0aGlzLndvcmRzW1ZdLFM9MHx4LndvcmRzW1ZdO2lmKFQhPT1TKXtUPFM/UD0tMTpUPlMmJihQPTEpO2JyZWFrfX1yZXR1cm4gUH0sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHgpe3JldHVybiAx''@;'; put 'put ''PT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5ndD1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAo''@;'; put 'put ''eCk+PTB9LE4ucHJvdG90eXBlLmx0bj1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPD0wfSxO''@;'; put 'put ''LnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXAoeCl9LE4ucmVkPWZ1bmN0''@;'; put 'put ''aW9uKHgpe3JldHVybiBuZXcgZWUoeCl9LE4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLFkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVz''@;'; put 'put ''IikseC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlz''@;'; put 'put ''KX0sTi5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnJlZD14LHRoaXN9LE4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNl''@;'; put 'put ''UmVkKHgpfSxOLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJl''@;'; put 'put ''ZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0''@;'; put 'put ''aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMu''@;'; put 'put ''cmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJp''@;'; put 'put ''ZnkyKHRoaXMseCksdGhpcy5yZWQubXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLmltdWwodGhp''@;'; put 'put ''cyx4KX0sTi5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxcnQgd29y''@;'; put 'put ''a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTi5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMu''@;'; put 'put ''cmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LE4ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRo''@;'; put 'put ''aXMpfSxOLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQmJiF4LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx4KX07dmFyIEllPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVs''@;'; put 'put ''bCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gVGUoeCxQKXt0aGlzLm5hbWU9eCx0aGlzLnA9bmV3IE4oUCwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIE1l''@;'; put 'put ''KCl7VGUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBoZSgpe1RlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; put 'put ''ZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gTygpe1RlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe1RlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZm''@;'; put 'put ''ZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gZWUoeCl7aWYoInN0cmluZyI9PXR5cGVvZiB4KXt2YXIgUD1OLl9wcmltZSh4KTt0aGlzLm09UC5wLHRoaXMucHJpbWU9UH1lbHNlIFkoeC5ndG4oMSksIm1vZHVs''@;'; put 'put ''dXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT14LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBuZSh4KXtlZS5jYWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRo''@;'; put 'put ''aXMucj1uZXcgTigxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMu''@;'; put 'put ''bWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1UZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB4LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSkseH0sVGUucHJvdG90eXBlLmlyZWR1''@;'; put 'put ''Y2U9ZnVuY3Rpb24oeCl7dmFyIFAsVj14O2Rve3RoaXMuc3BsaXQoVix0aGlzLnRtcCksUD0oVj0oVj10aGlzLmltdWxLKFYpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoUD50aGlzLm4pO3ZhciBUPVA8dGhpcy5uPy0xOlYudWNtcCh0aGlzLnApO3JldHVybiAwPT09VD8o''@;'; put 'put ''Vi53b3Jkc1swXT0wLFYubGVuZ3RoPTEpOlQ+MD9WLmlzdWIodGhpcy5wKTp2b2lkIDAhPT1WLnN0cmlwP1Yuc3RyaXAoKTpWLl9zdHJpcCgpLFZ9LFRlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe3guaXVzaHJuKHRoaXMubiwwLFApfSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rp''@;'; put 'put ''b24oeCl7cmV0dXJuIHguaW11bCh0aGlzLmspfSxXKE1lLFRlKSxNZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9NDE5NDMwMyxUPU1hdGgubWluKHgubGVuZ3RoLDkpLFM9MDtTPFQ7UysrKVAud29yZHNbU109eC53b3Jkc1tTXTtpZihQLmxlbmd0aD1ULHgubGVu''@;'; put 'put ''Z3RoPD05KXJldHVybiB4LndvcmRzWzBdPTAsdm9pZCh4Lmxlbmd0aD0xKTt2YXIgRj14LndvcmRzWzldO2ZvcihQLndvcmRzW1AubGVuZ3RoKytdPUYmVixTPTEwO1M8eC5sZW5ndGg7UysrKXt2YXIgeWU9MHx4LndvcmRzW1NdO3gud29yZHNbUy0xMF09KHllJlYpPDw0fEY+Pj4yMixGPXll''@;'; put 'put ''fXgud29yZHNbUy0xMF09Rj4+Pj0yMix4Lmxlbmd0aC09MD09PUYmJngubGVuZ3RoPjEwPzEwOjl9LE1lLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXt4LndvcmRzW3gubGVuZ3RoXT0wLHgud29yZHNbeC5sZW5ndGgrMV09MCx4Lmxlbmd0aCs9Mjtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxl''@;'; put 'put ''bmd0aDtWKyspe3ZhciBUPTB8eC53b3Jkc1tWXTt4LndvcmRzW1ZdPTY3MTA4ODYzJihQKz05NzcqVCksUD02NCpUKyhQLzY3MTA4ODY0fDApfXJldHVybiAwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmKHgubGVuZ3RoLS0sMD09PXgud29yZHNbeC5sZW5ndGgtMV0mJngubGVuZ3RoLS0pLHh9''@;'; put 'put ''LFcoaGUsVGUpLFcoTyxUZSksVyh6LFRlKSx6LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTE5KigwfHgud29yZHNbVl0pK1AsUz02NzEwODg2MyZUO1Q+Pj49MjYseC53b3Jkc1tWXT1TLFA9VH1yZXR1cm4gMCE9PVAm''@;'; put 'put ''Jih4LndvcmRzW3gubGVuZ3RoKytdPVApLHh9LE4uX3ByaW1lPWZ1bmN0aW9uKHgpe2lmKEllW3hdKXJldHVybiBJZVt4XTt2YXIgUDtpZigiazI1NiI9PT14KVA9bmV3IE1lO2Vsc2UgaWYoInAyMjQiPT09eClQPW5ldyBoZTtlbHNlIGlmKCJwMTkyIj09PXgpUD1uZXcgTztlbHNle2lmKCJw''@;'; put 'put ''MjU1MTkiIT09eCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit4KTtQPW5ldyB6fXJldHVybiBJZVt4XT1QLFB9LGVlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQs''@;'; put 'put ''InJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sZWUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHgsUCl7WSgwPT0oeC5uZWdhdGl2ZXxQLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkJiZ4LnJlZD09PVAucmVkLCJyZWQgd29y''@;'; put 'put ''a3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGVlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh4KS5fZm9yY2VSZWQodGhpcyk6eC51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUubmVnPWZ1''@;'; put 'put ''bmN0aW9uKHgpe3JldHVybiB4LmlzWmVybygpP3guY2xvbmUoKTp0aGlzLm0uc3ViKHgpLl9mb3JjZVJlZCh0aGlzKX0sZWUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3Vi''@;'; put 'put ''KHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LGVlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaWFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sZWUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4''@;'; put 'put ''LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LnN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlzdWIoUCk7cmV0dXJu''@;'; put 'put ''IFYuY21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxWfSxlZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoeCksdGhpcy5pbW9kKHgudXNobG4oUCkpfSxlZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgs''@;'; put 'put ''UCksdGhpcy5pbW9kKHguaW11bChQKSl9LGVlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4Lm11bChQKSl9LGVlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltdWwoeCx4LmNsb25lKCkpfSxl''@;'; put 'put ''ZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLm11bCh4LHgpfSxlZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih4KXtpZih4LmlzWmVybygpKXJldHVybiB4LmNsb25lKCk7dmFyIFA9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUCUyPT0xKSwzPT09UCl7dmFyIFY9dGhpcy5t''@;'; put 'put ''LmFkZChuZXcgTigxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh4LFYpfWZvcih2YXIgVD10aGlzLm0uc3VibigxKSxTPTA7IVQuaXNaZXJvKCkmJjA9PT1ULmFuZGxuKDEpOylTKyssVC5pdXNocm4oMSk7WSghVC5pc1plcm8oKSk7dmFyIEY9bmV3IE4oMSkudG9SZWQodGhpcykseWU9''@;'; put 'put ''Ri5yZWROZWcoKSxDZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksRGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihEZT1uZXcgTigyKkRlKkRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coRGUsQ2UpLmNtcCh5ZSk7KURlLnJlZElBZGQoeWUpO2Zvcih2YXIgUGU9dGhpcy5wb3coRGUsVCks''@;'; put 'put ''UWU9dGhpcy5wb3coeCxULmFkZG4oMSkuaXVzaHJuKDEpKSwkZT10aGlzLnBvdyh4LFQpLGd0PVM7MCE9PSRlLmNtcChGKTspe2Zvcih2YXIgd3Q9JGUsbXQ9MDswIT09d3QuY21wKEYpO210Kyspd3Q9d3QucmVkU3FyKCk7WShtdDxndCk7dmFyIHZ0PXRoaXMucG93KFBlLG5ldyBOKDEpLml1''@;'; put 'put ''c2hsbihndC1tdC0xKSk7UWU9UWUucmVkTXVsKHZ0KSxQZT12dC5yZWRTcXIoKSwkZT0kZS5yZWRNdWwoUGUpLGd0PW10fXJldHVybiBRZX0sZWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7dmFyIFA9eC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVAubmVnYXRpdmU/KFAubmVnYXRp''@;'; put 'put ''dmU9MCx0aGlzLmltb2QoUCkucmVkTmVnKCkpOnRoaXMuaW1vZChQKX0sZWUucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4LFApe2lmKFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1QLmNtcG4oMSkpcmV0dXJuIHguY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXko''@;'; put 'put ''MTYpO1ZbMF09bmV3IE4oMSkudG9SZWQodGhpcyksVlsxXT14O2Zvcih2YXIgVD0yO1Q8Vi5sZW5ndGg7VCsrKVZbVF09dGhpcy5tdWwoVltULTFdLHgpO3ZhciBTPVZbMF0sRj0wLHllPTAsQ2U9UC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PUNlJiYoQ2U9MjYpLFQ9UC5sZW5ndGgtMTtUPj0w''@;'; put 'put ''O1QtLSl7Zm9yKHZhciBEZT1QLndvcmRzW1RdLFBlPUNlLTE7UGU+PTA7UGUtLSl7dmFyIFFlPURlPj5QZSYxO1MhPT1WWzBdJiYoUz10aGlzLnNxcihTKSksMCE9PVFlfHwwIT09Rj8oRjw8PTEsRnw9UWUsKDQ9PSsreWV8fDA9PT1UJiYwPT09UGUpJiYoUz10aGlzLm11bChTLFZbRl0pLHll''@;'; put 'put ''PTAsRj0wKSk6eWU9MH1DZT0yNn1yZXR1cm4gU30sZWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXt2YXIgUD14LnVtb2QodGhpcy5tKTtyZXR1cm4gUD09PXg/UC5jbG9uZSgpOlB9LGVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD14LmNsb25lKCk7''@;'; put 'put ''cmV0dXJuIFAucmVkPW51bGwsUH0sTi5tb250PWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgbmUoeCl9LFcobmUsZWUpLG5lLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4LnVzaGxuKHRoaXMuc2hpZnQpKX0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9t''@;'; put 'put ''PWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuaW1vZCh4Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxuZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIHgud29yZHNbMF09MCx4Lmxlbmd0aD0xLHg7dmFyIFY9''@;'; put 'put ''eC5pbXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTww''@;'; put 'put ''JiYoRj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtpZih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiBuZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIFY9eC5tdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQp''@;'; put 'put ''Lm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJl''@;'; put 'put ''ZCh0aGlzKX0sbmUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oVT1qLm5tZChVKSx0aGlzKX0sMzQ4MjooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDU3MTcp''@;'; put 'put ''LGFlPWooMjMxOCksWT1qKDk3ODUpLFc9aig5MDcyKSxOPWooMTAyNyk7ZnVuY3Rpb24gdGUoSyl7Ti5jYWxsKHRoaXMsImRpZ2VzdCIpLHRoaXMuX2hhc2g9S31yZSh0ZSxOKSx0ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihLKXt0aGlzLl9oYXNoLnVwZGF0ZShLKX0sdGUucHJvdG90''@;'; put 'put ''eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9oYXNoLmRpZ2VzdCgpfSxVLmV4cG9ydHM9ZnVuY3Rpb24oSyl7cmV0dXJuIm1kNSI9PT0oSz1LLnRvTG93ZXJDYXNlKCkpP25ldyBhZToicm1kMTYwIj09PUt8fCJyaXBlbWQxNjAiPT09Sz9uZXcgWTpuZXcgdGUoVyhLKSl9fSw4''@;'; put 'put ''MDI4OihVLFEsaik9Pnt2YXIgcmU9aigyMzE4KTtVLmV4cG9ydHM9ZnVuY3Rpb24oYWUpe3JldHVybihuZXcgcmUpLnVwZGF0ZShhZSkuZGlnZXN0KCl9fSw4MzU1OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNTcxNyksYWU9aigxMDMxKSxZPWooMTAyNyksVz1qKDk1MDkpLkJ1''@;'; put 'put ''ZmZlcixOPWooODAyOCksdGU9aig5Nzg1KSxLPWooOTA3MiksSj1XLmFsbG9jKDEyOCk7ZnVuY3Rpb24gc2Uob2UsY2Upe1kuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIGNlJiYoY2U9Vy5mcm9tKGNlKSk7dmFyIGRlPSJzaGE1MTIiPT09b2V8fCJzaGEzODQiPT09b2U/''@;'; put 'put ''MTI4OjY0O3RoaXMuX2FsZz1vZSx0aGlzLl9rZXk9Y2UsY2UubGVuZ3RoPmRlP2NlPSgicm1kMTYwIj09PW9lP25ldyB0ZTpLKG9lKSkudXBkYXRlKGNlKS5kaWdlc3QoKTpjZS5sZW5ndGg8ZGUmJihjZT1XLmNvbmNhdChbY2UsSl0sZGUpKTtmb3IodmFyIHZlPXRoaXMuX2lwYWQ9Vy5hbGxv''@;'; put 'put ''Y1Vuc2FmZShkZSksQWU9dGhpcy5fb3BhZD1XLmFsbG9jVW5zYWZlKGRlKSxrZT0wO2tlPGRlO2tlKyspdmVba2VdPTU0XmNlW2tlXSxBZVtrZV09OTJeY2Vba2VdO3RoaXMuX2hhc2g9InJtZDE2MCI9PT1vZT9uZXcgdGU6SyhvZSksdGhpcy5faGFzaC51cGRhdGUodmUpfXJlKHNlLFkpLHNl''@;'; put 'put ''LnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKG9lKXt0aGlzLl9oYXNoLnVwZGF0ZShvZSl9LHNlLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgb2U9dGhpcy5faGFzaC5kaWdlc3QoKTtyZXR1cm4oInJtZDE2MCI9PT10aGlzLl9hbGc/bmV3IHRlOksodGhpcy5fYWxnKSkudXBk''@;'; put 'put ''YXRlKHRoaXMuX29wYWQpLnVwZGF0ZShvZSkuZGlnZXN0KCl9LFUuZXhwb3J0cz1mdW5jdGlvbihvZSxjZSl7cmV0dXJuInJtZDE2MCI9PT0ob2U9b2UudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09b2U/bmV3IHNlKCJybWQxNjAiLGNlKToibWQ1Ij09PW9lP25ldyBhZShOLGNlKTpu''@;'; put 'put ''ZXcgc2Uob2UsY2UpfX0sMTAzMTooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDU3MTcpLGFlPWooOTUwOSkuQnVmZmVyLFk9aigxMDI3KSxXPWFlLmFsbG9jKDEyOCksTj02NDtmdW5jdGlvbiB0ZShLLEope1kuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIEom''@;'; put 'put ''JihKPWFlLmZyb20oSikpLHRoaXMuX2FsZz1LLHRoaXMuX2tleT1KLEoubGVuZ3RoPk4/Sj1LKEopOkoubGVuZ3RoPE4mJihKPWFlLmNvbmNhdChbSixXXSxOKSk7Zm9yKHZhciBzZT10aGlzLl9pcGFkPWFlLmFsbG9jVW5zYWZlKE4pLG9lPXRoaXMuX29wYWQ9YWUuYWxsb2NVbnNhZmUoTiks''@;'; put 'put ''Y2U9MDtjZTxOO2NlKyspc2VbY2VdPTU0XkpbY2VdLG9lW2NlXT05Ml5KW2NlXTt0aGlzLl9oYXNoPVtzZV19cmUodGUsWSksdGUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSyl7dGhpcy5faGFzaC5wdXNoKEspfSx0ZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIEs9dGhp''@;'; put 'put ''cy5fYWxnKGFlLmNvbmNhdCh0aGlzLl9oYXNoKSk7cmV0dXJuIHRoaXMuX2FsZyhhZS5jb25jYXQoW3RoaXMuX29wYWQsS10pKX0sVS5leHBvcnRzPXRlfSw1ODM1OihVLFEsaik9PnsidXNlIHN0cmljdCI7US5yYW5kb21CeXRlcz1RLnJuZz1RLnBzZXVkb1JhbmRvbUJ5dGVzPVEucHJuZz1q''@;'; put 'put ''KDE3OTgpLFEuY3JlYXRlSGFzaD1RLkhhc2g9aigzNDgyKSxRLmNyZWF0ZUhtYWM9US5IbWFjPWooODM1NSk7dmFyIHJlPWooNjA0MiksYWU9T2JqZWN0LmtleXMocmUpLFk9WyJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwibWQ1Iiwicm1kMTYwIl0uY29uY2F0''@;'; put 'put ''KGFlKTtRLmdldEhhc2hlcz1mdW5jdGlvbigpe3JldHVybiBZfTt2YXIgVz1qKDU2MzIpO1EucGJrZGYyPVcucGJrZGYyLFEucGJrZGYyU3luYz1XLnBia2RmMlN5bmM7dmFyIE49aigzNjE0KTtRLkNpcGhlcj1OLkNpcGhlcixRLmNyZWF0ZUNpcGhlcj1OLmNyZWF0ZUNpcGhlcixRLkNpcGhl''@;'; put 'put ''cml2PU4uQ2lwaGVyaXYsUS5jcmVhdGVDaXBoZXJpdj1OLmNyZWF0ZUNpcGhlcml2LFEuRGVjaXBoZXI9Ti5EZWNpcGhlcixRLmNyZWF0ZURlY2lwaGVyPU4uY3JlYXRlRGVjaXBoZXIsUS5EZWNpcGhlcml2PU4uRGVjaXBoZXJpdixRLmNyZWF0ZURlY2lwaGVyaXY9Ti5jcmVhdGVEZWNpcGhl''@;'; put 'put ''cml2LFEuZ2V0Q2lwaGVycz1OLmdldENpcGhlcnMsUS5saXN0Q2lwaGVycz1OLmxpc3RDaXBoZXJzO3ZhciB0ZT1qKDI2MDcpO1EuRGlmZmllSGVsbG1hbkdyb3VwPXRlLkRpZmZpZUhlbGxtYW5Hcm91cCxRLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cD10ZS5jcmVhdGVEaWZmaWVIZWxsbWFu''@;'; put 'put ''R3JvdXAsUS5nZXREaWZmaWVIZWxsbWFuPXRlLmdldERpZmZpZUhlbGxtYW4sUS5jcmVhdGVEaWZmaWVIZWxsbWFuPXRlLmNyZWF0ZURpZmZpZUhlbGxtYW4sUS5EaWZmaWVIZWxsbWFuPXRlLkRpZmZpZUhlbGxtYW47dmFyIEs9aig0NzQzKTtRLmNyZWF0ZVNpZ249Sy5jcmVhdGVTaWduLFEu''@;'; put 'put ''U2lnbj1LLlNpZ24sUS5jcmVhdGVWZXJpZnk9Sy5jcmVhdGVWZXJpZnksUS5WZXJpZnk9Sy5WZXJpZnksUS5jcmVhdGVFQ0RIPWooNjM5Myk7dmFyIEo9aig3OTAwKTtRLnB1YmxpY0VuY3J5cHQ9Si5wdWJsaWNFbmNyeXB0LFEucHJpdmF0ZUVuY3J5cHQ9Si5wcml2YXRlRW5jcnlwdCxRLnB1''@;'; put 'put ''YmxpY0RlY3J5cHQ9Si5wdWJsaWNEZWNyeXB0LFEucHJpdmF0ZURlY3J5cHQ9Si5wcml2YXRlRGVjcnlwdDt2YXIgc2U9aig3OTYzKTtRLnJhbmRvbUZpbGw9c2UucmFuZG9tRmlsbCxRLnJhbmRvbUZpbGxTeW5jPXNlLnJhbmRvbUZpbGxTeW5jLFEuY3JlYXRlQ3JlZGVudGlhbHM9ZnVuY3Rp''@;'; put 'put ''b24oKXt0aHJvdyBuZXcgRXJyb3IoWyJzb3JyeSwgY3JlYXRlQ3JlZGVudGlhbHMgaXMgbm90IGltcGxlbWVudGVkIHlldCIsIndlIGFjY2VwdCBwdWxsIHJlcXVlc3RzIiwiaHR0cHM6Ly9naXRodWIuY29tL2NyeXB0by1icm93c2VyaWZ5L2NyeXB0by1icm93c2VyaWZ5Il0uam9pbigiXG4i''@;'; put 'put ''KSl9LFEuY29uc3RhbnRzPXtESF9DSEVDS19QX05PVF9TQUZFX1BSSU1FOjIsREhfQ0hFQ0tfUF9OT1RfUFJJTUU6MSxESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SOjQsREhfTk9UX1NVSVRBQkxFX0dFTkVSQVRPUjo4LE5QTl9FTkFCTEVEOjEsQUxQTl9FTkFCTEVEOjEsUlNBX1BLQ1Mx''@;'; put 'put ''X1BBRERJTkc6MSxSU0FfU1NMVjIzX1BBRERJTkc6MixSU0FfTk9fUEFERElORzozLFJTQV9QS0NTMV9PQUVQX1BBRERJTkc6NCxSU0FfWDkzMV9QQURESU5HOjUsUlNBX1BLQ1MxX1BTU19QQURESU5HOjYsUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEOjIsUE9JTlRfQ09OVkVSU0lPTl9V''@;'; put 'put ''TkNPTVBSRVNTRUQ6NCxQT0lOVF9DT05WRVJTSU9OX0hZQlJJRDo2fX0sNTA1NjooVSxRLGopPT57dmFyIHJlPWooODc2NCkuQnVmZmVyO2NvbnN0e1RyYW5zZm9ybTphZX09aigyODMwKSxZPXJlLmZyb20oWzIzOSwxODcsMTkxXSk7Y2xhc3MgVyBleHRlbmRzIGFle2NvbnN0cnVjdG9yKE1l''@;'; put 'put ''PXt9KXtzdXBlcihtcyh7d3JpdGFibGVPYmplY3RNb2RlOiEwfSxNZSkpO2NvbnN0IGhlPXt9O2xldCBPO2ZvcihsZXQgeiBpbiBNZSloZVtKKHopXT1NZVt6XTtpZihPPXRoaXMubm9ybWFsaXplKGhlKSl0aHJvdyBPO3N3aXRjaChoZS5yZWNvcmRfZGVsaW1pdGVyKXtjYXNlImF1dG8iOmhl''@;'; put 'put ''LnJlY29yZF9kZWxpbWl0ZXI9bnVsbDticmVhaztjYXNlInVuaXgiOmhlLnJlY29yZF9kZWxpbWl0ZXI9IlxuIjticmVhaztjYXNlIm1hYyI6aGUucmVjb3JkX2RlbGltaXRlcj0iXHIiO2JyZWFrO2Nhc2Uid2luZG93cyI6aGUucmVjb3JkX2RlbGltaXRlcj0iXHJcbiI7YnJlYWs7Y2FzZSJh''@;'; put 'put ''c2NpaSI6aGUucmVjb3JkX2RlbGltaXRlcj0iXHgxZSI7YnJlYWs7Y2FzZSJ1bmljb2RlIjpoZS5yZWNvcmRfZGVsaW1pdGVyPSJcdTIwMjgifXRoaXMub3B0aW9ucz1oZSx0aGlzLnN0YXRlPXtzdG9wOiExfSx0aGlzLmluZm89e3JlY29yZHM6MH19bm9ybWFsaXplKE1lKXtpZihudWxsPT1N''@;'; put 'put ''ZS5ib218fCExPT09TWUuYm9tKU1lLmJvbT0hMTtlbHNlIGlmKCEwIT09TWUuYm9tKXJldHVybiBuZXcgdGUoIkNTVl9PUFRJT05fQk9PTEVBTl9JTlZBTElEX1RZUEUiLFsib3B0aW9uIGBib21gIGlzIG9wdGlvbmFsIGFuZCBtdXN0IGJlIGEgYm9vbGVhbiB2YWx1ZSwiLGBnb3QgJHtKU09O''@;'; put 'put ''LnN0cmluZ2lmeShNZS5ib20pfWBdKTtpZihudWxsPT1NZS5kZWxpbWl0ZXIpTWUuZGVsaW1pdGVyPSIsIjtlbHNlIGlmKHJlLmlzQnVmZmVyKE1lLmRlbGltaXRlcikpTWUuZGVsaW1pdGVyPU1lLmRlbGltaXRlci50b1N0cmluZygpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBNZS5kZWxp''@;'; put 'put ''bWl0ZXIpcmV0dXJuIG5ldyB0ZSgiQ1NWX09QVElPTl9ERUxJTUlURVJfSU5WQUxJRF9UWVBFIixbIm9wdGlvbiBgZGVsaW1pdGVyYCBtdXN0IGJlIGEgYnVmZmVyIG9yIGEgc3RyaW5nLCIsYGdvdCAke0pTT04uc3RyaW5naWZ5KE1lLmRlbGltaXRlcil9YF0pO2lmKG51bGw9PU1lLnF1b3Rl''@;'; put 'put ''KU1lLnF1b3RlPSciJztlbHNlIGlmKCEwPT09TWUucXVvdGUpTWUucXVvdGU9JyInO2Vsc2UgaWYoITE9PT1NZS5xdW90ZSlNZS5xdW90ZT0iIjtlbHNlIGlmKHJlLmlzQnVmZmVyKE1lLnF1b3RlKSlNZS5xdW90ZT1NZS5xdW90ZS50b1N0cmluZygpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVv''@;'; put 'put ''ZiBNZS5xdW90ZSlyZXR1cm4gbmV3IHRlKCJDU1ZfT1BUSU9OX1FVT1RFX0lOVkFMSURfVFlQRSIsWyJvcHRpb24gYHF1b3RlYCBtdXN0IGJlIGEgYm9vbGVhbiwgYSBidWZmZXIgb3IgYSBzdHJpbmcsIixgZ290ICR7SlNPTi5zdHJpbmdpZnkoTWUucXVvdGUpfWBdKTtpZihudWxsIT1NZS5x''@;'; put 'put ''dW90ZWR8fChNZS5xdW90ZWQ9ITEpLG51bGwhPU1lLnF1b3RlZF9lbXB0eXx8KE1lLnF1b3RlZF9lbXB0eT12b2lkIDApLG51bGw9PU1lLnF1b3RlZF9tYXRjaHx8ITE9PT1NZS5xdW90ZWRfbWF0Y2g/TWUucXVvdGVkX21hdGNoPW51bGw6QXJyYXkuaXNBcnJheShNZS5xdW90ZWRfbWF0Y2gp''@;'; put 'put ''fHwoTWUucXVvdGVkX21hdGNoPVtNZS5xdW90ZWRfbWF0Y2hdKSxNZS5xdW90ZWRfbWF0Y2gpZm9yKGxldCBoZSBvZiBNZS5xdW90ZWRfbWF0Y2gpe2NvbnN0IE89aGUgaW5zdGFuY2VvZiBSZWdFeHA7aWYoInN0cmluZyIhPXR5cGVvZiBoZSYmIU8pcmV0dXJuIEVycm9yKGBJbnZhbGlkIE9w''@;'; put 'put ''dGlvbjogcXVvdGVkX21hdGNoIG11c3QgYmUgYSBzdHJpbmcgb3IgYSByZWdleCwgZ290ICR7SlNPTi5zdHJpbmdpZnkoaGUpfWApfWlmKG51bGwhPU1lLnF1b3RlZF9zdHJpbmd8fChNZS5xdW90ZWRfc3RyaW5nPSExKSxudWxsIT1NZS5lb2Z8fChNZS5lb2Y9ITApLG51bGw9PU1lLmVzY2Fw''@;'; put 'put ''ZSlNZS5lc2NhcGU9JyInO2Vsc2UgaWYocmUuaXNCdWZmZXIoTWUuZXNjYXBlKSlNZS5lc2NhcGU9TWUuZXNjYXBlLnRvU3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIE1lLmVzY2FwZSlyZXR1cm4gRXJyb3IoYEludmFsaWQgT3B0aW9uOiBlc2NhcGUgbXVzdCBiZSBhIGJ1ZmZl''@;'; put 'put ''ciBvciBhIHN0cmluZywgZ290ICR7SlNPTi5zdHJpbmdpZnkoTWUuZXNjYXBlKX1gKTtpZihNZS5lc2NhcGUubGVuZ3RoPjEpcmV0dXJuIEVycm9yKGBJbnZhbGlkIE9wdGlvbjogZXNjYXBlIG11c3QgYmUgb25lIGNoYXJhY3RlciwgZ290ICR7TWUuZXNjYXBlLmxlbmd0aH0gY2hhcmFjdGVy''@;'; put 'put ''c2ApO2lmKG51bGwhPU1lLmhlYWRlcnx8KE1lLmhlYWRlcj0hMSksTWUuY29sdW1ucz10aGlzLm5vcm1hbGl6ZV9jb2x1bW5zKE1lLmNvbHVtbnMpLG51bGwhPU1lLnF1b3RlZHx8KE1lLnF1b3RlZD0hMSksbnVsbCE9TWUuY2FzdHx8KE1lLmNhc3Q9e30pLG51bGwhPU1lLmNhc3QuYmlnaW50''@;'; put 'put ''fHwoTWUuY2FzdC5iaWdpbnQ9aGU9PiIiK2hlKSxudWxsIT1NZS5jYXN0LmJvb2xlYW58fChNZS5jYXN0LmJvb2xlYW49aGU9PmhlPyIxIjoiIiksbnVsbCE9TWUuY2FzdC5kYXRlfHwoTWUuY2FzdC5kYXRlPWhlPT4iIitoZS5nZXRUaW1lKCkpLG51bGwhPU1lLmNhc3QubnVtYmVyfHwoTWUu''@;'; put 'put ''Y2FzdC5udW1iZXI9aGU9PiIiK2hlKSxudWxsIT1NZS5jYXN0Lm9iamVjdHx8KE1lLmNhc3Qub2JqZWN0PWhlPT5KU09OLnN0cmluZ2lmeShoZSkpLG51bGwhPU1lLmNhc3Quc3RyaW5nfHwoTWUuY2FzdC5zdHJpbmc9ZnVuY3Rpb24oaGUpe3JldHVybiBoZX0pLG51bGw9PU1lLnJlY29yZF9k''@;'; put 'put ''ZWxpbWl0ZXIpTWUucmVjb3JkX2RlbGltaXRlcj0iXG4iO2Vsc2UgaWYocmUuaXNCdWZmZXIoTWUucmVjb3JkX2RlbGltaXRlcikpTWUucmVjb3JkX2RlbGltaXRlcj1NZS5yZWNvcmRfZGVsaW1pdGVyLnRvU3RyaW5nKCk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIE1lLnJlY29yZF9kZWxp''@;'; put 'put ''bWl0ZXIpcmV0dXJuIEVycm9yKGBJbnZhbGlkIE9wdGlvbjogcmVjb3JkX2RlbGltaXRlciBtdXN0IGJlIGEgYnVmZmVyIG9yIGEgc3RyaW5nLCBnb3QgJHtKU09OLnN0cmluZ2lmeShNZS5yZWNvcmRfZGVsaW1pdGVyKX1gKX1fdHJhbnNmb3JtKE1lLGhlLE8pe2lmKCEwPT09dGhpcy5zdGF0''@;'; put 'put ''ZS5zdG9wKXJldHVybjtpZighQXJyYXkuaXNBcnJheShNZSkmJiJvYmplY3QiIT10eXBlb2YgTWUpcmV0dXJuIHRoaXMuc3RhdGUuc3RvcD0hMCxPKEVycm9yKGBJbnZhbGlkIFJlY29yZDogZXhwZWN0IGFuIGFycmF5IG9yIGFuIG9iamVjdCwgZ290ICR7SlNPTi5zdHJpbmdpZnkoTWUpfWAp''@;'; put 'put ''KTtpZigwPT09dGhpcy5pbmZvLnJlY29yZHMpaWYoQXJyYXkuaXNBcnJheShNZSkpe2lmKCEwPT09dGhpcy5vcHRpb25zLmhlYWRlciYmIXRoaXMub3B0aW9ucy5jb2x1bW5zKXJldHVybiB0aGlzLnN0YXRlLnN0b3A9ITAsTyhFcnJvcigiVW5kaXNjb3ZlcmFibGUgQ29sdW1uczogaGVhZGVy''@;'; put 'put ''IG9wdGlvbiByZXF1aXJlcyBjb2x1bW4gb3B0aW9uIG9yIG9iamVjdCByZWNvcmRzIikpfWVsc2UgbnVsbCE9dGhpcy5vcHRpb25zLmNvbHVtbnN8fCh0aGlzLm9wdGlvbnMuY29sdW1ucz10aGlzLm5vcm1hbGl6ZV9jb2x1bW5zKE9iamVjdC5rZXlzKE1lKSkpOzA9PT10aGlzLmluZm8ucmVj''@;'; put 'put ''b3JkcyYmKHRoaXMuYm9tKCksdGhpcy5oZWFkZXJzKCkpO3RyeXt0aGlzLmVtaXQoInJlY29yZCIsTWUsdGhpcy5pbmZvLnJlY29yZHMpfWNhdGNoKGVlKXtyZXR1cm4gdGhpcy5zdGF0ZS5zdG9wPSEwLHRoaXMuZW1pdCgiZXJyb3IiLGVlKX1sZXQgejtpZih0aGlzLm9wdGlvbnMuZW9mKXtp''@;'; put 'put ''Zih6PXRoaXMuc3RyaW5naWZ5KE1lKSx2b2lkIDA9PT16KXJldHVybjt6Kz10aGlzLm9wdGlvbnMucmVjb3JkX2RlbGltaXRlcn1lbHNle2lmKHo9dGhpcy5zdHJpbmdpZnkoTWUpLHZvaWQgMD09PXopcmV0dXJuOyh0aGlzLm9wdGlvbnMuaGVhZGVyfHx0aGlzLmluZm8ucmVjb3JkcykmJih6''@;'; put 'put ''PXRoaXMub3B0aW9ucy5yZWNvcmRfZGVsaW1pdGVyK3opfXRoaXMuaW5mby5yZWNvcmRzKyssdGhpcy5wdXNoKHopLE8oKX1fZmx1c2goTWUpezA9PT10aGlzLmluZm8ucmVjb3JkcyYmKHRoaXMuYm9tKCksdGhpcy5oZWFkZXJzKCkpLE1lKCl9c3RyaW5naWZ5KE1lLGhlPSExKXtpZigib2Jq''@;'; put 'put ''ZWN0IiE9dHlwZW9mIE1lKXJldHVybiBNZTtjb25zdHtjb2x1bW5zOk99PXRoaXMub3B0aW9ucyxlZT1bXTtpZihBcnJheS5pc0FycmF5KE1lKSl7TyYmTWUuc3BsaWNlKE8ubGVuZ3RoKTtmb3IobGV0IHg9MDt4PE1lLmxlbmd0aDt4Kyspe2NvbnN0IFA9TWVbeF0sW1YsVF09dGhpcy5fX2Nh''@;'; put 'put ''c3QoUCx7aW5kZXg6eCxjb2x1bW46eCxyZWNvcmRzOnRoaXMuaW5mby5yZWNvcmRzLGhlYWRlcjpoZX0pO2lmKFYpcmV0dXJuIHZvaWQgdGhpcy5lbWl0KCJlcnJvciIsVik7ZWVbeF09W1QsUF19fWVsc2UgaWYoTylmb3IobGV0IHg9MDt4PE8ubGVuZ3RoO3grKyl7Y29uc3QgUD1JZShNZSxP''@;'; put 'put ''W3hdLmtleSksW1YsVF09dGhpcy5fX2Nhc3QoUCx7aW5kZXg6eCxjb2x1bW46T1t4XS5rZXkscmVjb3Jkczp0aGlzLmluZm8ucmVjb3JkcyxoZWFkZXI6aGV9KTtpZihWKXJldHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLFYpO2VlW3hdPVtULFBdfWVsc2UgZm9yKGxldCB4IG9mIE1lKXtj''@;'; put 'put ''b25zdCBQPU1lW3hdLFtWLFRdPXRoaXMuX19jYXN0KFAse2luZGV4OmksY29sdW1uOk9baV0ua2V5LHJlY29yZHM6dGhpcy5pbmZvLnJlY29yZHMsaGVhZGVyOmhlfSk7aWYoVilyZXR1cm4gdm9pZCB0aGlzLmVtaXQoImVycm9yIixWKTtlZS5wdXNoKFtULFBdKX1sZXQgbmU9IiI7Zm9yKGxl''@;'; put 'put ''dCB4PTA7eDxlZS5sZW5ndGg7eCsrKXtsZXQgUCxWLFtULFNdPWVlW3hdO2lmKCJzdHJpbmciPT10eXBlb2YgVClQPXRoaXMub3B0aW9ucztlbHNlIGlmKEsoVCkpe2lmKFA9VCxUPVAudmFsdWUsZGVsZXRlIFAudmFsdWUsInN0cmluZyIhPXR5cGVvZiBUJiZudWxsIT1UKXJldHVybiB2b2lk''@;'; put 'put ''IHRoaXMuZW1pdCgiZXJyb3IiLEVycm9yKGBJbnZhbGlkIENhc3RpbmcgVmFsdWU6IHJldHVybmVkIHZhbHVlIG11c3QgcmV0dXJuIGEgc3RyaW5nLCBudWxsIG9yIHVuZGVmaW5lZCwgZ290ICR7SlNPTi5zdHJpbmdpZnkoVCl9YCkpO2lmKFA9bXMobXMoe30sdGhpcy5vcHRpb25zKSxQKSxW''@;'; put 'put ''PXRoaXMubm9ybWFsaXplKFApKXJldHVybiB2b2lkIHRoaXMuZW1pdCgiZXJyb3IiLFYpfWVsc2V7aWYobnVsbCE9VClyZXR1cm4gdm9pZCB0aGlzLmVtaXQoImVycm9yIixFcnJvcihgSW52YWxpZCBDYXN0aW5nIFZhbHVlOiByZXR1cm5lZCB2YWx1ZSBtdXN0IHJldHVybiBhIHN0cmluZywg''@;'; put 'put ''YW4gb2JqZWN0LCBudWxsIG9yIHVuZGVmaW5lZCwgZ290ICR7SlNPTi5zdHJpbmdpZnkoVCl9YCkpO1A9dGhpcy5vcHRpb25zfWNvbnN0e2RlbGltaXRlcjpGLGVzY2FwZTp5ZSxxdW90ZTpDZSxxdW90ZWQ6RGUscXVvdGVkX2VtcHR5OlBlLHF1b3RlZF9zdHJpbmc6UWUscXVvdGVkX21hdGNo''@;'; put 'put ''OiRlLHJlY29yZF9kZWxpbWl0ZXI6Z3R9PVA7aWYoVCl7aWYoInN0cmluZyIhPXR5cGVvZiBUKXJldHVybiB0aGlzLmVtaXQoImVycm9yIixFcnJvcihgRm9ybWF0dGVyIG11c3QgcmV0dXJuIGEgc3RyaW5nLCBudWxsIG9yIHVuZGVmaW5lZCwgZ290ICR7SlNPTi5zdHJpbmdpZnkoVCl9YCkp''@;'; put 'put ''LG51bGw7Y29uc3Qgd3Q9Ri5sZW5ndGgmJlQuaW5kZXhPZihGKT49MCxtdD0iIiE9PUNlJiZULmluZGV4T2YoQ2UpPj0wLHZ0PVQuaW5kZXhPZih5ZSk+PTAmJnllIT09Q2UsQXQ9VC5pbmRleE9mKGd0KT49MCxodD1RZSYmInN0cmluZyI9PXR5cGVvZiBTO2xldCBCdD0kZSYmJGUuZmlsdGVy''@;'; put 'put ''KF90PT4ic3RyaW5nIj09dHlwZW9mIF90Py0xIT09VC5pbmRleE9mKF90KTpfdC50ZXN0KFQpKTtCdD1CdCYmQnQubGVuZ3RoPjA7Y29uc3Qgb249ITA9PT1tdHx8d3R8fEF0fHxEZXx8aHR8fEJ0O2lmKCEwPT09b24mJiEwPT09dnQpe2NvbnN0IF90PSJcXCI9PT15ZT9uZXcgUmVnRXhwKHll''@;'; put 'put ''K3llLCJnIik6bmV3IFJlZ0V4cCh5ZSwiZyIpO1Q9VC5yZXBsYWNlKF90LHllK3llKX1pZighMD09PW10KXtjb25zdCBfdD1uZXcgUmVnRXhwKENlLCJnIik7VD1ULnJlcGxhY2UoX3QseWUrQ2UpfSEwPT09b24mJihUPUNlK1QrQ2UpLG5lKz1UfWVsc2UoITA9PT1QZXx8IiI9PT1TJiYhMD09''@;'; put 'put ''PVFlJiYhMSE9PVBlKSYmKG5lKz1DZStDZSk7eCE9PWVlLmxlbmd0aC0xJiYobmUrPUYpfXJldHVybiBuZX1ib20oKXshMD09PXRoaXMub3B0aW9ucy5ib20mJnRoaXMucHVzaChZKX1oZWFkZXJzKCl7aWYoITE9PT10aGlzLm9wdGlvbnMuaGVhZGVyfHx2b2lkIDA9PT10aGlzLm9wdGlvbnMu''@;'; put 'put ''Y29sdW1ucylyZXR1cm47bGV0IE1lPXRoaXMub3B0aW9ucy5jb2x1bW5zLm1hcChoZT0+aGUuaGVhZGVyKTtNZT10aGlzLm9wdGlvbnMuZW9mP3RoaXMuc3RyaW5naWZ5KE1lLCEwKSt0aGlzLm9wdGlvbnMucmVjb3JkX2RlbGltaXRlcjp0aGlzLnN0cmluZ2lmeShNZSksdGhpcy5wdXNoKE1l''@;'; put 'put ''KX1fX2Nhc3QoTWUsaGUpe2NvbnN0IE89dHlwZW9mIE1lO3RyeXtyZXR1cm4ic3RyaW5nIj09PU8/W3ZvaWQgMCx0aGlzLm9wdGlvbnMuY2FzdC5zdHJpbmcoTWUsaGUpXToiYmlnaW50Ij09PU8/W3ZvaWQgMCx0aGlzLm9wdGlvbnMuY2FzdC5iaWdpbnQoTWUsaGUpXToibnVtYmVyIj09PU8/''@;'; put 'put ''W3ZvaWQgMCx0aGlzLm9wdGlvbnMuY2FzdC5udW1iZXIoTWUsaGUpXToiYm9vbGVhbiI9PT1PP1t2b2lkIDAsdGhpcy5vcHRpb25zLmNhc3QuYm9vbGVhbihNZSxoZSldOk1lIGluc3RhbmNlb2YgRGF0ZT9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0LmRhdGUoTWUsaGUpXToib2JqZWN0Ij09''@;'; put 'put ''PU8mJm51bGwhPT1NZT9bdm9pZCAwLHRoaXMub3B0aW9ucy5jYXN0Lm9iamVjdChNZSxoZSldOlt2b2lkIDAsTWUsTWVdfWNhdGNoKHope3JldHVyblt6XX19bm9ybWFsaXplX2NvbHVtbnMoTWUpe2lmKG51bGwhPU1lKXtpZigib2JqZWN0IiE9dHlwZW9mIE1lKXRocm93IEVycm9yKCdJbnZh''@;'; put 'put ''bGlkIG9wdGlvbiAiY29sdW1ucyI6IGV4cGVjdCBhbiBhcnJheSBvciBhbiBvYmplY3QnKTtpZihBcnJheS5pc0FycmF5KE1lKSl7Y29uc3QgaGU9W107Zm9yKGxldCBPIG9mIE1lKWlmKCJzdHJpbmciPT10eXBlb2YgTyloZS5wdXNoKHtrZXk6TyxoZWFkZXI6T30pO2Vsc2V7aWYoIm9iamVj''@;'; put 'put ''dCIhPXR5cGVvZiBPfHx2b2lkIDA9PT1PfHxBcnJheS5pc0FycmF5KE8pKXRocm93IEVycm9yKCJJbnZhbGlkIGNvbHVtbiBkZWZpbml0aW9uOiBleHBlY3QgYSBzdHJpbmcgb3IgYW4gb2JqZWN0Iik7aWYoIU8ua2V5KXRocm93IEVycm9yKCdJbnZhbGlkIGNvbHVtbiBkZWZpbml0aW9uOiBw''@;'; put 'put ''cm9wZXJ0eSAia2V5IiBpcyByZXF1aXJlZCcpO3ZvaWQgMD09PU8uaGVhZGVyJiYoTy5oZWFkZXI9Ty5rZXkpLGhlLnB1c2goTyl9TWU9aGV9ZWxzZXtjb25zdCBoZT1bXTtmb3IobGV0IE8gaW4gTWUpaGUucHVzaCh7a2V5Ok8saGVhZGVyOk1lW09dfSk7TWU9aGV9cmV0dXJuIE1lfX19Y29u''@;'; put 'put ''c3QgTj1mdW5jdGlvbigpe2xldCBUZSxNZSxoZTtmb3IobGV0IHogaW4gYXJndW1lbnRzKXtjb25zdCBlZT1hcmd1bWVudHNbel0sbmU9dHlwZW9mIGVlO2lmKHZvaWQgMD09PVRlJiZBcnJheS5pc0FycmF5KGVlKSlUZT1lZTtlbHNlIGlmKHZvaWQgMD09PU1lJiZLKGVlKSlNZT1lZTtlbHNl''@;'; put 'put ''e2lmKHZvaWQgMCE9PWhlfHwiZnVuY3Rpb24iIT09bmUpdGhyb3cgbmV3IHRlKCJDU1ZfSU5WQUxJRF9BUkdVTUVOVCIsWyJJbnZhbGlkIGFyZ3VtZW50OiIsYGdvdCAke0pTT04uc3RyaW5naWZ5KGVlKX0gYXQgaW5kZXggJHt6fWBdKTtoZT1lZX19Y29uc3QgTz1uZXcgVyhNZSk7aWYoaGUp''@;'; put 'put ''e2NvbnN0IHo9W107Ty5vbigicmVhZGFibGUiLGZ1bmN0aW9uKCl7bGV0IGVlO2Zvcig7bnVsbCE9PShlZT10aGlzLnJlYWQoKSk7KXoucHVzaChlZSl9KSxPLm9uKCJlcnJvciIsZnVuY3Rpb24oZWUpe2hlKGVlKX0pLE8ub24oImVuZCIsZnVuY3Rpb24oKXtoZSh2b2lkIDAsei5qb2luKCIi''@;'; put 'put ''KSl9KX1pZih2b2lkIDAhPT1UZSlpZigiZnVuY3Rpb24iPT10eXBlb2Ygc2V0SW1tZWRpYXRlKXNldEltbWVkaWF0ZShmdW5jdGlvbigpe2ZvcihsZXQgeiBvZiBUZSlPLndyaXRlKHopO08uZW5kKCl9KTtlbHNle2ZvcihsZXQgeiBvZiBUZSlPLndyaXRlKHopO08uZW5kKCl9cmV0dXJuIE99''@;'; put 'put ''O2NsYXNzIHRlIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IoTWUsaGUsLi4uTyl7QXJyYXkuaXNBcnJheShoZSkmJihoZT1oZS5qb2luKCIgIikpLHN1cGVyKGhlKSx2b2lkIDAhPT1FcnJvci5jYXB0dXJlU3RhY2tUcmFjZSYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyx0ZSksdGhp''@;'; put 'put ''cy5jb2RlPU1lO2Zvcihjb25zdCB6IG9mIE8pZm9yKGNvbnN0IGVlIGluIHope2NvbnN0IG5lPXpbZWVdO3RoaXNbZWVdPXJlLmlzQnVmZmVyKG5lKT9uZS50b1N0cmluZygpOm51bGw9PW5lP25lOkpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobmUpKX19fU4uU3RyaW5naWZpZXI9VyxOLkNz''@;'; put 'put ''dkVycm9yPXRlLFUuZXhwb3J0cz1OO2NvbnN0IEs9ZnVuY3Rpb24oVGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgVGUmJm51bGwhPT1UZSYmIUFycmF5LmlzQXJyYXkoVGUpfSxKPWZ1bmN0aW9uKFRlKXtyZXR1cm4gVGUucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKE1lLGhlKXtyZXR1''@;'; put 'put ''cm4iXyIraGUudG9Mb3dlckNhc2UoKX0pfSxzZT0iLiIuY2hhckNvZGVBdCgwKSxvZT0vXFwoXFwpPy9nLGNlPVJlZ0V4cCgiW14uW1xcXV0rfFxcWyg/OihbXlwiJ11bXltdKil8KFtcIiddKSgoPzooPyFcXDIpW15cXFxcXXxcXFxcLikqPylcXDIpXFxdfCg/PSg/OlxcLnxcXFtcXF0pKD86''@;'; put 'put ''XFwufFxcW1xcXXwkKSkiLCJnIiksZGU9L1wufFxbKD86W15bXF1dKnwoWyInXSkoPzooPyFcMSlbXlxcXXxcXC4pKj9cMSlcXS8sdmU9L15cdyokLyxBZT1mdW5jdGlvbihUZSl7Y29uc3QgTWU9dHlwZW9mIFRlO3JldHVybiJzeW1ib2wiPT09TWV8fCJvYmplY3QiPT09TWUmJlRlJiYiW29i''@;'; put 'put ''amVjdCBTeW1ib2xdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChUZSl9LFNlPWZ1bmN0aW9uKFRlKXtpZigic3RyaW5nIj09dHlwZW9mIFRlfHxBZShUZSkpcmV0dXJuIFRlO2NvbnN0IE1lPWAke1RlfWA7cmV0dXJuIjAiPT1NZSYmMS9UZT09LUlORklOSVRZPyItMCI6TWV9''@;'; put 'put ''LEllPWZ1bmN0aW9uKFRlLE1lKXtsZXQgaGU9MDtjb25zdCBPPShNZT1mdW5jdGlvbihUZSxNZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoVGUpP1RlOmZ1bmN0aW9uKGhlLE8pe2lmKEFycmF5LmlzQXJyYXkoaGUpKXJldHVybiExO2NvbnN0IHo9dHlwZW9mIGhlO3JldHVybiEoIm51bWJlciIh''@;'; put 'put ''PT16JiYic3ltYm9sIiE9PXomJiJib29sZWFuIiE9PXomJmhlJiYhQWUoaGUpKXx8dmUudGVzdChoZSl8fCFkZS50ZXN0KGhlKXx8bnVsbCE9TyYmaGUgaW4gT2JqZWN0KE8pfShUZSxNZSk/W1RlXTpmdW5jdGlvbihoZSl7Y29uc3QgTz1bXTtyZXR1cm4gaGUuY2hhckNvZGVBdCgwKT09PXNl''@;'; put 'put ''JiZPLnB1c2goIiIpLGhlLnJlcGxhY2UoY2UsZnVuY3Rpb24oeixlZSxuZSx4KXtsZXQgUD16O25lP1A9eC5yZXBsYWNlKG9lLCIkMSIpOmVlJiYoUD1lZS50cmltKCkpLE8ucHVzaChQKX0pLE99KFRlKX0oTWUsVGUpKS5sZW5ndGg7Zm9yKDtudWxsIT1UZSYmaGU8TzspVGU9VGVbU2UoTWVb''@;'; put 'put ''aGUrK10pXTtyZXR1cm4gaGUmJmhlPT09Tz9UZTp2b2lkIDB9fSw3NTY1OihVLFEsaik9Pnt2YXIgcmU9aig4NzY0KS5CdWZmZXI7Y29uc3QgYWU9aig1MDU2KSx7U3RyaW5nRGVjb2RlcjpZfT1qKDI1NTMpO1UuZXhwb3J0cz1mdW5jdGlvbihXLE49e30pe2NvbnN0IHRlPVtdO2Z1bmN0aW9u''@;'; put 'put ''IEsoc2Upe3NlJiZ0ZS5wdXNoKHNlLnRvU3RyaW5nKCkpfXJlLmlzQnVmZmVyKFcpJiYoVz0obmV3IFkpLndyaXRlKFcpKTtsZXQgSj1uZXcgYWUuU3RyaW5naWZpZXIoTik7Si5vbigiZGF0YSIsSyk7Zm9yKGxldCBzZSBvZiBXKUoud3JpdGUoc2UpO3JldHVybiBKLmVuZCgpLEoub2ZmKCJk''@;'; put 'put ''YXRhIixLKSx0ZS5qb2luKCIiKX19LDQyODk6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigyMjE1KSxhZT0iZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbCgiZm9vIiksWT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLFc9QXJyYXkucHJv''@;'; put 'put ''dG90eXBlLmNvbmNhdCxOPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSx0ZT1qKDEwNDQpKCksSz1OJiZ0ZSxKPWZ1bmN0aW9uKG9lLGNlLGRlLHZlKXt2YXIgQWU7KCEoY2UgaW4gb2UpfHwiZnVuY3Rpb24iPT10eXBlb2YoQWU9dmUpJiYiW29iamVjdCBGdW5jdGlvbl0iPT09WS5jYWxsKEFlKSYm''@;'; put 'put ''dmUoKSkmJihLP04ob2UsY2Use2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOmRlLHdyaXRhYmxlOiEwfSk6b2VbY2VdPWRlKX0sc2U9ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZT1hcmd1bWVudHMubGVuZ3RoPjI/YXJndW1lbnRzWzJdOnt9LHZlPXJlKGNlKTthZSYmKHZlPVcu''@;'; put 'put ''Y2FsbCh2ZSxPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGNlKSkpO2Zvcih2YXIgQWU9MDtBZTx2ZS5sZW5ndGg7QWUrPTEpSihvZSx2ZVtBZV0sY2VbdmVbQWVdXSxkZVt2ZVtBZV1dKX07c2Uuc3VwcG9ydHNEZXNjcmlwdG9ycz0hIUssVS5leHBvcnRzPXNlfSw1MjUxOihVLFEsaik9''@;'; put 'put ''PnsidXNlIHN0cmljdCI7US51dGlscz1qKDEyNzgpLFEuQ2lwaGVyPWooNTc1NiksUS5ERVM9aigzMjcpLFEuQ0JDPWooOTA1MSksUS5FREU9aig2NTEpfSw5MDUxOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooOTc0NiksYWU9aig1NzE3KSxZPXt9O2Z1bmN0aW9uIFcoTil7cmUu''@;'; put 'put ''ZXF1YWwoTi5sZW5ndGgsOCwiSW52YWxpZCBJViBsZW5ndGgiKSx0aGlzLml2PW5ldyBBcnJheSg4KTtmb3IodmFyIHRlPTA7dGU8dGhpcy5pdi5sZW5ndGg7dGUrKyl0aGlzLml2W3RlXT1OW3RlXX1RLmluc3RhbnRpYXRlPWZ1bmN0aW9uKE4pe2Z1bmN0aW9uIHRlKG9lKXtOLmNhbGwodGhp''@;'; put 'put ''cyxvZSksdGhpcy5fY2JjSW5pdCgpfWFlKHRlLE4pO2Zvcih2YXIgSz1PYmplY3Qua2V5cyhZKSxKPTA7SjxLLmxlbmd0aDtKKyspe3ZhciBzZT1LW0pdO3RlLnByb3RvdHlwZVtzZV09WVtzZV19cmV0dXJuIHRlLmNyZWF0ZT1mdW5jdGlvbihvZSl7cmV0dXJuIG5ldyB0ZShvZSl9LHRlfSxZ''@;'; put 'put ''Ll9jYmNJbml0PWZ1bmN0aW9uKCl7dmFyIE49bmV3IFcodGhpcy5vcHRpb25zLml2KTt0aGlzLl9jYmNTdGF0ZT1OfSxZLl91cGRhdGU9ZnVuY3Rpb24oTix0ZSxLLEope3ZhciBvZT10aGlzLmNvbnN0cnVjdG9yLnN1cGVyXy5wcm90b3R5cGUsY2U9dGhpcy5fY2JjU3RhdGUuaXY7aWYoImVu''@;'; put 'put ''Y3J5cHQiPT09dGhpcy50eXBlKXtmb3IodmFyIGRlPTA7ZGU8dGhpcy5ibG9ja1NpemU7ZGUrKyljZVtkZV1ePU5bdGUrZGVdO2ZvcihvZS5fdXBkYXRlLmNhbGwodGhpcyxjZSwwLEssSiksZGU9MDtkZTx0aGlzLmJsb2NrU2l6ZTtkZSsrKWNlW2RlXT1LW0orZGVdfWVsc2V7Zm9yKG9lLl91''@;'; put 'put ''cGRhdGUuY2FsbCh0aGlzLE4sdGUsSyxKKSxkZT0wO2RlPHRoaXMuYmxvY2tTaXplO2RlKyspS1tKK2RlXV49Y2VbZGVdO2ZvcihkZT0wO2RlPHRoaXMuYmxvY2tTaXplO2RlKyspY2VbZGVdPU5bdGUrZGVdfX19LDU3NTY6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig5NzQ2KTtm''@;'; put 'put ''dW5jdGlvbiBhZShZKXt0aGlzLm9wdGlvbnM9WSx0aGlzLnR5cGU9dGhpcy5vcHRpb25zLnR5cGUsdGhpcy5ibG9ja1NpemU9OCx0aGlzLl9pbml0KCksdGhpcy5idWZmZXI9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKSx0aGlzLmJ1ZmZlck9mZj0wfVUuZXhwb3J0cz1hZSxhZS5wcm90b3R5''@;'; put 'put ''cGUuX2luaXQ9ZnVuY3Rpb24oKXt9LGFlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oWSl7cmV0dXJuIDA9PT1ZLmxlbmd0aD9bXToiZGVjcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fdXBkYXRlRGVjcnlwdChZKTp0aGlzLl91cGRhdGVFbmNyeXB0KFkpfSxhZS5wcm90b3R5cGUuX2J1ZmZl''@;'; put 'put ''cj1mdW5jdGlvbihZLFcpe2Zvcih2YXIgTj1NYXRoLm1pbih0aGlzLmJ1ZmZlci5sZW5ndGgtdGhpcy5idWZmZXJPZmYsWS5sZW5ndGgtVyksdGU9MDt0ZTxOO3RlKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmYrdGVdPVlbVyt0ZV07cmV0dXJuIHRoaXMuYnVmZmVyT2ZmKz1OLE59LGFl''@;'; put 'put ''LnByb3RvdHlwZS5fZmx1c2hCdWZmZXI9ZnVuY3Rpb24oWSxXKXtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsWSxXKSx0aGlzLmJ1ZmZlck9mZj0wLHRoaXMuYmxvY2tTaXplfSxhZS5wcm90b3R5cGUuX3VwZGF0ZUVuY3J5cHQ9ZnVuY3Rpb24oWSl7dmFyIFc9MCxOPTAsSz1u''@;'; put 'put ''ZXcgQXJyYXkoKCh0aGlzLmJ1ZmZlck9mZitZLmxlbmd0aCkvdGhpcy5ibG9ja1NpemV8MCkqdGhpcy5ibG9ja1NpemUpOzAhPT10aGlzLmJ1ZmZlck9mZiYmKFcrPXRoaXMuX2J1ZmZlcihZLFcpLHRoaXMuYnVmZmVyT2ZmPT09dGhpcy5idWZmZXIubGVuZ3RoJiYoTis9dGhpcy5fZmx1c2hC''@;'; put 'put ''dWZmZXIoSyxOKSkpO2Zvcih2YXIgSj1ZLmxlbmd0aC0oWS5sZW5ndGgtVykldGhpcy5ibG9ja1NpemU7VzxKO1crPXRoaXMuYmxvY2tTaXplKXRoaXMuX3VwZGF0ZShZLFcsSyxOKSxOKz10aGlzLmJsb2NrU2l6ZTtmb3IoO1c8WS5sZW5ndGg7VysrLHRoaXMuYnVmZmVyT2ZmKyspdGhpcy5i''@;'; put 'put ''dWZmZXJbdGhpcy5idWZmZXJPZmZdPVlbV107cmV0dXJuIEt9LGFlLnByb3RvdHlwZS5fdXBkYXRlRGVjcnlwdD1mdW5jdGlvbihZKXtmb3IodmFyIFc9MCxOPTAsdGU9TWF0aC5jZWlsKCh0aGlzLmJ1ZmZlck9mZitZLmxlbmd0aCkvdGhpcy5ibG9ja1NpemUpLTEsSz1uZXcgQXJyYXkodGUq''@;'; put 'put ''dGhpcy5ibG9ja1NpemUpO3RlPjA7dGUtLSlXKz10aGlzLl9idWZmZXIoWSxXKSxOKz10aGlzLl9mbHVzaEJ1ZmZlcihLLE4pO3JldHVybiBXKz10aGlzLl9idWZmZXIoWSxXKSxLfSxhZS5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oWSl7dmFyIFcsTjtyZXR1cm4gWSYmKFc9dGhpcy51cGRh''@;'; put 'put ''dGUoWSkpLE49ImVuY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX2ZpbmFsRW5jcnlwdCgpOnRoaXMuX2ZpbmFsRGVjcnlwdCgpLFc/Vy5jb25jYXQoTik6Tn0sYWUucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oWSxXKXtpZigwPT09VylyZXR1cm4hMTtmb3IoO1c8WS5sZW5ndGg7KVlbVysrXT0w''@;'; put 'put ''O3JldHVybiEwfSxhZS5wcm90b3R5cGUuX2ZpbmFsRW5jcnlwdD1mdW5jdGlvbigpe2lmKCF0aGlzLl9wYWQodGhpcy5idWZmZXIsdGhpcy5idWZmZXJPZmYpKXJldHVybltdO3ZhciBZPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX3VwZGF0ZSh0aGlzLmJ1ZmZlciww''@;'; put 'put ''LFksMCksWX0sYWUucHJvdG90eXBlLl91bnBhZD1mdW5jdGlvbihZKXtyZXR1cm4gWX0sYWUucHJvdG90eXBlLl9maW5hbERlY3J5cHQ9ZnVuY3Rpb24oKXtyZS5lcXVhbCh0aGlzLmJ1ZmZlck9mZix0aGlzLmJsb2NrU2l6ZSwiTm90IGVub3VnaCBkYXRhIHRvIGRlY3J5cHQiKTt2YXIgWT1u''@;'; put 'put ''ZXcgQXJyYXkodGhpcy5ibG9ja1NpemUpO3JldHVybiB0aGlzLl9mbHVzaEJ1ZmZlcihZLDApLHRoaXMuX3VucGFkKFkpfX0sMzI3OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooOTc0NiksYWU9aig1NzE3KSxZPWooMTI3OCksVz1qKDU3NTYpO2Z1bmN0aW9uIE4oKXt0aGlzLnRt''@;'; put 'put ''cD1uZXcgQXJyYXkoMiksdGhpcy5rZXlzPW51bGx9ZnVuY3Rpb24gdGUoSil7Vy5jYWxsKHRoaXMsSik7dmFyIHNlPW5ldyBOO3RoaXMuX2Rlc1N0YXRlPXNlLHRoaXMuZGVyaXZlS2V5cyhzZSxKLmtleSl9YWUodGUsVyksVS5leHBvcnRzPXRlLHRlLmNyZWF0ZT1mdW5jdGlvbihKKXtyZXR1''@;'; put 'put ''cm4gbmV3IHRlKEopfTt2YXIgSz1bMSwxLDIsMiwyLDIsMiwyLDEsMiwyLDIsMiwyLDIsMV07dGUucHJvdG90eXBlLmRlcml2ZUtleXM9ZnVuY3Rpb24oSixzZSl7Si5rZXlzPW5ldyBBcnJheSgzMikscmUuZXF1YWwoc2UubGVuZ3RoLHRoaXMuYmxvY2tTaXplLCJJbnZhbGlkIGtleSBsZW5n''@;'; put 'put ''dGgiKTt2YXIgb2U9WS5yZWFkVUludDMyQkUoc2UsMCksY2U9WS5yZWFkVUludDMyQkUoc2UsNCk7WS5wYzEob2UsY2UsSi50bXAsMCksb2U9Si50bXBbMF0sY2U9Si50bXBbMV07Zm9yKHZhciBkZT0wO2RlPEoua2V5cy5sZW5ndGg7ZGUrPTIpe3ZhciB2ZT1LW2RlPj4+MV07b2U9WS5yMjhz''@;'; put 'put ''aGwob2UsdmUpLGNlPVkucjI4c2hsKGNlLHZlKSxZLnBjMihvZSxjZSxKLmtleXMsZGUpfX0sdGUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSixzZSxvZSxjZSl7dmFyIGRlPXRoaXMuX2Rlc1N0YXRlLHZlPVkucmVhZFVJbnQzMkJFKEosc2UpLEFlPVkucmVhZFVJbnQzMkJFKEosc2Ur''@;'; put 'put ''NCk7WS5pcCh2ZSxBZSxkZS50bXAsMCksdmU9ZGUudG1wWzBdLEFlPWRlLnRtcFsxXSwiZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZW5jcnlwdChkZSx2ZSxBZSxkZS50bXAsMCk6dGhpcy5fZGVjcnlwdChkZSx2ZSxBZSxkZS50bXAsMCksQWU9ZGUudG1wWzFdLFkud3JpdGVVSW50MzJC''@;'; put 'put ''RShvZSx2ZT1kZS50bXBbMF0sY2UpLFkud3JpdGVVSW50MzJCRShvZSxBZSxjZSs0KX0sdGUucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oSixzZSl7Zm9yKHZhciBvZT1KLmxlbmd0aC1zZSxjZT1zZTtjZTxKLmxlbmd0aDtjZSsrKUpbY2VdPW9lO3JldHVybiEwfSx0ZS5wcm90b3R5cGUuX3Vu''@;'; put 'put ''cGFkPWZ1bmN0aW9uKEope2Zvcih2YXIgc2U9SltKLmxlbmd0aC0xXSxvZT1KLmxlbmd0aC1zZTtvZTxKLmxlbmd0aDtvZSsrKXJlLmVxdWFsKEpbb2VdLHNlKTtyZXR1cm4gSi5zbGljZSgwLEoubGVuZ3RoLXNlKX0sdGUucHJvdG90eXBlLl9lbmNyeXB0PWZ1bmN0aW9uKEosc2Usb2UsY2Us''@;'; put 'put ''ZGUpe2Zvcih2YXIgdmU9c2UsQWU9b2Usa2U9MDtrZTxKLmtleXMubGVuZ3RoO2tlKz0yKXt2YXIgU2U9Si5rZXlzW2tlXSxJZT1KLmtleXNba2UrMV07WS5leHBhbmQoQWUsSi50bXAsMCk7dmFyIFRlPVkuc3Vic3RpdHV0ZShTZV49Si50bXBbMF0sSWVePUoudG1wWzFdKSxNZT1BZTtBZT0o''@;'; put 'put ''dmVeWS5wZXJtdXRlKFRlKSk+Pj4wLHZlPU1lfVkucmlwKEFlLHZlLGNlLGRlKX0sdGUucHJvdG90eXBlLl9kZWNyeXB0PWZ1bmN0aW9uKEosc2Usb2UsY2UsZGUpe2Zvcih2YXIgdmU9b2UsQWU9c2Usa2U9Si5rZXlzLmxlbmd0aC0yO2tlPj0wO2tlLT0yKXt2YXIgU2U9Si5rZXlzW2tlXSxJ''@;'; put 'put ''ZT1KLmtleXNba2UrMV07WS5leHBhbmQodmUsSi50bXAsMCk7dmFyIFRlPVkuc3Vic3RpdHV0ZShTZV49Si50bXBbMF0sSWVePUoudG1wWzFdKSxNZT12ZTt2ZT0oQWVeWS5wZXJtdXRlKFRlKSk+Pj4wLEFlPU1lfVkucmlwKHZlLEFlLGNlLGRlKX19LDY1MTooVSxRLGopPT57InVzZSBzdHJp''@;'; put 'put ''Y3QiO3ZhciByZT1qKDk3NDYpLGFlPWooNTcxNyksWT1qKDU3NTYpLFc9aigzMjcpO2Z1bmN0aW9uIE4oSyxKKXtyZS5lcXVhbChKLmxlbmd0aCwyNCwiSW52YWxpZCBrZXkgbGVuZ3RoIik7dmFyIHNlPUouc2xpY2UoMCw4KSxvZT1KLnNsaWNlKDgsMTYpLGNlPUouc2xpY2UoMTYsMjQpO3Ro''@;'; put 'put ''aXMuY2lwaGVycz0iZW5jcnlwdCI9PT1LP1tXLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5OnNlfSksVy5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpvZX0pLFcuY3JlYXRlKHt0eXBlOiJlbmNyeXB0IixrZXk6Y2V9KV06W1cuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6Y2V9KSxX''@;'; put 'put ''LmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Om9lfSksVy5jcmVhdGUoe3R5cGU6ImRlY3J5cHQiLGtleTpzZX0pXX1mdW5jdGlvbiB0ZShLKXtZLmNhbGwodGhpcyxLKTt2YXIgSj1uZXcgTih0aGlzLnR5cGUsdGhpcy5vcHRpb25zLmtleSk7dGhpcy5fZWRlU3RhdGU9Sn1hZSh0ZSxZKSxV''@;'; put 'put ''LmV4cG9ydHM9dGUsdGUuY3JlYXRlPWZ1bmN0aW9uKEspe3JldHVybiBuZXcgdGUoSyl9LHRlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEssSixzZSxvZSl7dmFyIGNlPXRoaXMuX2VkZVN0YXRlO2NlLmNpcGhlcnNbMF0uX3VwZGF0ZShLLEosc2Usb2UpLGNlLmNpcGhlcnNbMV0uX3Vw''@;'; put 'put ''ZGF0ZShzZSxvZSxzZSxvZSksY2UuY2lwaGVyc1syXS5fdXBkYXRlKHNlLG9lLHNlLG9lKX0sdGUucHJvdG90eXBlLl9wYWQ9Vy5wcm90b3R5cGUuX3BhZCx0ZS5wcm90b3R5cGUuX3VucGFkPVcucHJvdG90eXBlLl91bnBhZH0sMTI3ODooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtRLnJlYWRVSW50''@;'; put 'put ''MzJCRT1mdW5jdGlvbihZLFcpe3JldHVybihZWzArV108PDI0fFlbMStXXTw8MTZ8WVsyK1ddPDw4fFlbMytXXSk+Pj4wfSxRLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oWSxXLE4pe1lbMCtOXT1XPj4+MjQsWVsxK05dPVc+Pj4xNiYyNTUsWVsyK05dPVc+Pj44JjI1NSxZWzMrTl09MjU1Jld9''@;'; put 'put ''LFEuaXA9ZnVuY3Rpb24oWSxXLE4sdGUpe2Zvcih2YXIgSz0wLEo9MCxzZT02O3NlPj0wO3NlLT0yKXtmb3IodmFyIG9lPTA7b2U8PTI0O29lKz04KUs8PD0xLEt8PVc+Pj5vZStzZSYxO2ZvcihvZT0wO29lPD0yNDtvZSs9OClLPDw9MSxLfD1ZPj4+b2Urc2UmMX1mb3Ioc2U9NjtzZT49MDtz''@;'; put 'put ''ZS09Mil7Zm9yKG9lPTE7b2U8PTI1O29lKz04KUo8PD0xLEp8PVc+Pj5vZStzZSYxO2ZvcihvZT0xO29lPD0yNTtvZSs9OClKPDw9MSxKfD1ZPj4+b2Urc2UmMX1OW3RlKzBdPUs+Pj4wLE5bdGUrMV09Sj4+PjB9LFEucmlwPWZ1bmN0aW9uKFksVyxOLHRlKXtmb3IodmFyIEs9MCxKPTAsc2U9''@;'; put 'put ''MDtzZTw0O3NlKyspZm9yKHZhciBvZT0yNDtvZT49MDtvZS09OClLPDw9MSxLfD1XPj4+b2Urc2UmMSxLPDw9MSxLfD1ZPj4+b2Urc2UmMTtmb3Ioc2U9NDtzZTw4O3NlKyspZm9yKG9lPTI0O29lPj0wO29lLT04KUo8PD0xLEp8PVc+Pj5vZStzZSYxLEo8PD0xLEp8PVk+Pj5vZStzZSYxO05b''@;'; put 'put ''dGUrMF09Sz4+PjAsTlt0ZSsxXT1KPj4+MH0sUS5wYzE9ZnVuY3Rpb24oWSxXLE4sdGUpe2Zvcih2YXIgSz0wLEo9MCxzZT03O3NlPj01O3NlLS0pe2Zvcih2YXIgb2U9MDtvZTw9MjQ7b2UrPTgpSzw8PTEsS3w9Vz4+b2Urc2UmMTtmb3Iob2U9MDtvZTw9MjQ7b2UrPTgpSzw8PTEsS3w9WT4+''@;'; put 'put ''b2Urc2UmMX1mb3Iob2U9MDtvZTw9MjQ7b2UrPTgpSzw8PTEsS3w9Vz4+b2Urc2UmMTtmb3Ioc2U9MTtzZTw9MztzZSsrKXtmb3Iob2U9MDtvZTw9MjQ7b2UrPTgpSjw8PTEsSnw9Vz4+b2Urc2UmMTtmb3Iob2U9MDtvZTw9MjQ7b2UrPTgpSjw8PTEsSnw9WT4+b2Urc2UmMX1mb3Iob2U9MDtv''@;'; put 'put ''ZTw9MjQ7b2UrPTgpSjw8PTEsSnw9WT4+b2Urc2UmMTtOW3RlKzBdPUs+Pj4wLE5bdGUrMV09Sj4+PjB9LFEucjI4c2hsPWZ1bmN0aW9uKFksVyl7cmV0dXJuIFk8PFcmMjY4NDM1NDU1fFk+Pj4yOC1XfTt2YXIgaj1bMTQsMTEsMTcsNCwyNywyMywyNSwwLDEzLDIyLDcsMTgsNSw5LDE2LDI0''@;'; put 'put ''LDIsMjAsMTIsMjEsMSw4LDE1LDI2LDE1LDQsMjUsMTksOSwxLDI2LDE2LDUsMTEsMjMsOCwxMiw3LDE3LDAsMjIsMywxMCwxNCw2LDIwLDI3LDI0XTtRLnBjMj1mdW5jdGlvbihZLFcsTix0ZSl7Zm9yKHZhciBLPTAsSj0wLHNlPWoubGVuZ3RoPj4+MSxvZT0wO29lPHNlO29lKyspSzw8PTEs''@;'; put 'put ''S3w9WT4+Pmpbb2VdJjE7Zm9yKG9lPXNlO29lPGoubGVuZ3RoO29lKyspSjw8PTEsSnw9Vz4+Pmpbb2VdJjE7Tlt0ZSswXT1LPj4+MCxOW3RlKzFdPUo+Pj4wfSxRLmV4cGFuZD1mdW5jdGlvbihZLFcsTil7dmFyIHRlPTAsSz0wO3RlPSgxJlkpPDw1fFk+Pj4yNztmb3IodmFyIEo9MjM7Sj49''@;'; put 'put ''MTU7Si09NCl0ZTw8PTYsdGV8PVk+Pj5KJjYzO2ZvcihKPTExO0o+PTM7Si09NClLfD1ZPj4+SiY2MyxLPDw9NjtLfD0oMzEmWSk8PDF8WT4+PjMxLFdbTiswXT10ZT4+PjAsV1tOKzFdPUs+Pj4wfTt2YXIgcmU9WzE0LDAsNCwxNSwxMyw3LDEsNCwyLDE0LDE1LDIsMTEsMTMsOCwxLDMsMTAs''@;'; put 'put ''MTAsNiw2LDEyLDEyLDExLDUsOSw5LDUsMCwzLDcsOCw0LDE1LDEsMTIsMTQsOCw4LDIsMTMsNCw2LDksMiwxLDExLDcsMTUsNSwxMiwxMSw5LDMsNywxNCwzLDEwLDEwLDAsNSw2LDAsMTMsMTUsMywxLDEzLDgsNCwxNCw3LDYsMTUsMTEsMiwzLDgsNCwxNCw5LDEyLDcsMCwyLDEsMTMsMTAs''@;'; put 'put ''MTIsNiwwLDksNSwxMSwxMCw1LDAsMTMsMTQsOCw3LDEwLDExLDEsMTAsMyw0LDE1LDEzLDQsMSwyLDUsMTEsOCw2LDEyLDcsNiwxMiw5LDAsMyw1LDIsMTQsMTUsOSwxMCwxMywwLDcsOSwwLDE0LDksNiwzLDMsNCwxNSw2LDUsMTAsMSwyLDEzLDgsMTIsNSw3LDE0LDExLDEyLDQsMTEsMiwx''@;'; put 'put ''NSw4LDEsMTMsMSw2LDEwLDQsMTMsOSwwLDgsNiwxNSw5LDMsOCwwLDcsMTEsNCwxLDE1LDIsMTQsMTIsMyw1LDExLDEwLDUsMTQsMiw3LDEyLDcsMTMsMTMsOCwxNCwxMSwzLDUsMCw2LDYsMTUsOSwwLDEwLDMsMSw0LDIsNyw4LDIsNSwxMiwxMSwxLDEyLDEwLDQsMTQsMTUsOSwxMCwzLDYs''@;'; put 'put ''MTUsOSwwLDAsNiwxMiwxMCwxMSwxLDcsMTMsMTMsOCwxNSw5LDEsNCwzLDUsMTQsMTEsNSwxMiwyLDcsOCwyLDQsMTQsMiwxNCwxMiwxMSw0LDIsMSwxMiw3LDQsMTAsNywxMSwxMyw2LDEsOCw1LDUsMCwzLDE1LDE1LDEwLDEzLDMsMCw5LDE0LDgsOSw2LDQsMTEsMiw4LDEsMTIsMTEsNywx''@;'; put 'put ''MCwxLDEzLDE0LDcsMiw4LDEzLDE1LDYsOSwxNSwxMiwwLDUsOSw2LDEwLDMsNCwwLDUsMTQsMywxMiwxMCwxLDE1LDEwLDQsMTUsMiw5LDcsMiwxMiw2LDksOCw1LDAsNiwxMywxLDMsMTMsNCwxNCwxNCwwLDcsMTEsNSwzLDExLDgsOSw0LDE0LDMsMTUsMiw1LDEyLDIsOSw4LDUsMTIsMTUs''@;'; put 'put ''MywxMCw3LDExLDAsMTQsNCwxLDEwLDcsMSw2LDEzLDAsMTEsOCw2LDEzLDQsMTMsMTEsMCwyLDExLDE0LDcsMTUsNCwwLDksOCwxLDEzLDEwLDMsMTQsMTIsMyw5LDUsNywxMiw1LDIsMTAsMTUsNiw4LDEsNiwxLDYsNCwxMSwxMSwxMywxMyw4LDEyLDEsMyw0LDcsMTAsMTQsNywxMCw5LDE1''@;'; put 'put ''LDUsNiwwLDgsMTUsMCwxNCw1LDIsOSwzLDIsMTIsMTMsMSwyLDE1LDgsMTMsNCw4LDYsMTAsMTUsMywxMSw3LDEsNCwxMCwxMiw5LDUsMyw2LDE0LDExLDUsMCwwLDE0LDEyLDksNywyLDcsMiwxMSwxLDQsMTQsMSw3LDksNCwxMiwxMCwxNCw4LDIsMTMsMCwxNSw2LDEyLDEwLDksMTMsMCwx''@;'; put 'put ''NSwzLDMsNSw1LDYsOCwxMV07US5zdWJzdGl0dXRlPWZ1bmN0aW9uKFksVyl7Zm9yKHZhciBOPTAsdGU9MDt0ZTw0O3RlKyspTjw8PTQsTnw9cmVbNjQqdGUrKFk+Pj4xOC02KnRlJjYzKV07Zm9yKHRlPTA7dGU8NDt0ZSsrKU48PD00LE58PXJlWzI1Nis2NCp0ZSsoVz4+PjE4LTYqdGUmNjMp''@;'; put 'put ''XTtyZXR1cm4gTj4+PjB9O3ZhciBhZT1bMTYsMjUsMTIsMTEsMywyMCw0LDE1LDMxLDE3LDksNiwyNywxNCwxLDIyLDMwLDI0LDgsMTgsMCw1LDI5LDIzLDEzLDE5LDIsMjYsMTAsMjEsMjgsN107US5wZXJtdXRlPWZ1bmN0aW9uKFkpe2Zvcih2YXIgVz0wLE49MDtOPGFlLmxlbmd0aDtOKysp''@;'; put 'put ''Vzw8PTEsV3w9WT4+PmFlW05dJjE7cmV0dXJuIFc+Pj4wfSxRLnBhZFNwbGl0PWZ1bmN0aW9uKFksVyxOKXtmb3IodmFyIHRlPVkudG9TdHJpbmcoMik7dGUubGVuZ3RoPFc7KXRlPSIwIit0ZTtmb3IodmFyIEs9W10sSj0wO0o8VztKKz1OKUsucHVzaCh0ZS5zbGljZShKLEorTikpO3JldHVy''@;'; put 'put ''biBLLmpvaW4oIiAiKX19LDI2MDc6KFUsUSxqKT0+e3ZhciByZT1qKDg3NjQpLkJ1ZmZlcixhZT1qKDM1OTApLFk9aig5Nzk5KSxXPWooNzQyNiksTj17YmluYXJ5OiEwLGhleDohMCxiYXNlNjQ6ITB9O1EuRGlmZmllSGVsbG1hbkdyb3VwPVEuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPVEu''@;'; put 'put ''Z2V0RGlmZmllSGVsbG1hbj1mdW5jdGlvbih0ZSl7dmFyIEs9bmV3IHJlKFlbdGVdLnByaW1lLCJoZXgiKSxKPW5ldyByZShZW3RlXS5nZW4sImhleCIpO3JldHVybiBuZXcgVyhLLEopfSxRLmNyZWF0ZURpZmZpZUhlbGxtYW49US5EaWZmaWVIZWxsbWFuPWZ1bmN0aW9uIHRlKEssSixzZSxv''@;'; put 'put ''ZSl7cmV0dXJuIHJlLmlzQnVmZmVyKEopfHx2b2lkIDA9PT1OW0pdP3RlKEssImJpbmFyeSIsSixzZSk6KEo9Snx8ImJpbmFyeSIsb2U9b2V8fCJiaW5hcnkiLHNlPXNlfHxuZXcgcmUoWzJdKSxyZS5pc0J1ZmZlcihzZSl8fChzZT1uZXcgcmUoc2Usb2UpKSwibnVtYmVyIj09dHlwZW9mIEs/''@;'; put 'put ''bmV3IFcoYWUoSyxzZSksc2UsITApOihyZS5pc0J1ZmZlcihLKXx8KEs9bmV3IHJlKEssSikpLG5ldyBXKEssc2UsITApKSl9fSw3NDI2OihVLFEsaik9Pnt2YXIgcmU9aig4NzY0KS5CdWZmZXIsYWU9aigzNjIwKSxZPW5ldyhqKDMwNDcpKSxXPW5ldyBhZSgyNCksTj1uZXcgYWUoMTEpLHRl''@;'; put 'put ''PW5ldyBhZSgxMCksSz1uZXcgYWUoMyksSj1uZXcgYWUoNyksc2U9aigzNTkwKSxvZT1qKDE3OTgpO2Z1bmN0aW9uIGNlKFNlLEllKXtyZXR1cm4gSWU9SWV8fCJ1dGY4IixyZS5pc0J1ZmZlcihTZSl8fChTZT1uZXcgcmUoU2UsSWUpKSx0aGlzLl9wdWI9bmV3IGFlKFNlKSx0aGlzfWZ1bmN0''@;'; put 'put ''aW9uIGRlKFNlLEllKXtyZXR1cm4gSWU9SWV8fCJ1dGY4IixyZS5pc0J1ZmZlcihTZSl8fChTZT1uZXcgcmUoU2UsSWUpKSx0aGlzLl9wcml2PW5ldyBhZShTZSksdGhpc31VLmV4cG9ydHM9QWU7dmFyIHZlPXt9O2Z1bmN0aW9uIEFlKFNlLEllLFRlKXt0aGlzLnNldEdlbmVyYXRvcihJZSks''@;'; put 'put ''dGhpcy5fX3ByaW1lPW5ldyBhZShTZSksdGhpcy5fcHJpbWU9YWUubW9udCh0aGlzLl9fcHJpbWUpLHRoaXMuX3ByaW1lTGVuPVNlLmxlbmd0aCx0aGlzLl9wdWI9dm9pZCAwLHRoaXMuX3ByaXY9dm9pZCAwLHRoaXMuX3ByaW1lQ29kZT12b2lkIDAsVGU/KHRoaXMuc2V0UHVibGljS2V5PWNl''@;'; put 'put ''LHRoaXMuc2V0UHJpdmF0ZUtleT1kZSk6dGhpcy5fcHJpbWVDb2RlPTh9ZnVuY3Rpb24ga2UoU2UsSWUpe3ZhciBUZT1uZXcgcmUoU2UudG9BcnJheSgpKTtyZXR1cm4gSWU/VGUudG9TdHJpbmcoSWUpOlRlfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShBZS5wcm90b3R5cGUsInZlcmlmeUVycm9y''@;'; put 'put ''Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHRoaXMuX3ByaW1lQ29kZSYmKHRoaXMuX3ByaW1lQ29kZT1mdW5jdGlvbihTZSxJZSl7dmFyIFRlPUllLnRvU3RyaW5nKCJoZXgiKSxNZT1bVGUsU2UudG9TdHJpbmcoMTYpXS5qb2luKCJfIik7''@;'; put 'put ''aWYoTWUgaW4gdmUpcmV0dXJuIHZlW01lXTt2YXIgaGUsTz0wO2lmKFNlLmlzRXZlbigpfHwhc2Uuc2ltcGxlU2lldmV8fCFzZS5mZXJtYXRUZXN0KFNlKXx8IVkudGVzdChTZSkpcmV0dXJuIE8rPTEsdmVbTWVdPU8rPSIwMiI9PT1UZXx8IjA1Ij09PVRlPzg6NCxPO3N3aXRjaChZLnRlc3Qo''@;'; put 'put ''U2Uuc2hybigxKSl8fChPKz0yKSxUZSl7Y2FzZSIwMiI6U2UubW9kKFcpLmNtcChOKSYmKE8rPTgpO2JyZWFrO2Nhc2UiMDUiOihoZT1TZS5tb2QodGUpKS5jbXAoSykmJmhlLmNtcChKKSYmKE8rPTgpO2JyZWFrO2RlZmF1bHQ6Tys9NH1yZXR1cm4gdmVbTWVdPU8sT30odGhpcy5fX3ByaW1l''@;'; put 'put ''LHRoaXMuX19nZW4pKSx0aGlzLl9wcmltZUNvZGV9fSksQWUucHJvdG90eXBlLmdlbmVyYXRlS2V5cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wcml2fHwodGhpcy5fcHJpdj1uZXcgYWUob2UodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmlt''@;'; put 'put ''ZSkucmVkUG93KHRoaXMuX3ByaXYpLmZyb21SZWQoKSx0aGlzLmdldFB1YmxpY0tleSgpfSxBZS5wcm90b3R5cGUuY29tcHV0ZVNlY3JldD1mdW5jdGlvbihTZSl7dmFyIEllPShTZT0oU2U9bmV3IGFlKFNlKSkudG9SZWQodGhpcy5fcHJpbWUpKS5yZWRQb3codGhpcy5fcHJpdikuZnJvbVJl''@;'; put 'put ''ZCgpLFRlPW5ldyByZShJZS50b0FycmF5KCkpLE1lPXRoaXMuZ2V0UHJpbWUoKTtpZihUZS5sZW5ndGg8TWUubGVuZ3RoKXt2YXIgaGU9bmV3IHJlKE1lLmxlbmd0aC1UZS5sZW5ndGgpO2hlLmZpbGwoMCksVGU9cmUuY29uY2F0KFtoZSxUZV0pfXJldHVybiBUZX0sQWUucHJvdG90eXBlLmdl''@;'; put 'put ''dFB1YmxpY0tleT1mdW5jdGlvbihTZSl7cmV0dXJuIGtlKHRoaXMuX3B1YixTZSl9LEFlLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKFNlKXtyZXR1cm4ga2UodGhpcy5fcHJpdixTZSl9LEFlLnByb3RvdHlwZS5nZXRQcmltZT1mdW5jdGlvbihTZSl7cmV0dXJuIGtlKHRoaXMu''@;'; put 'put ''X19wcmltZSxTZSl9LEFlLnByb3RvdHlwZS5nZXRHZW5lcmF0b3I9ZnVuY3Rpb24oU2Upe3JldHVybiBrZSh0aGlzLl9nZW4sU2UpfSxBZS5wcm90b3R5cGUuc2V0R2VuZXJhdG9yPWZ1bmN0aW9uKFNlLEllKXtyZXR1cm4gSWU9SWV8fCJ1dGY4IixyZS5pc0J1ZmZlcihTZSl8fChTZT1uZXcg''@;'; put 'put ''cmUoU2UsSWUpKSx0aGlzLl9fZ2VuPVNlLHRoaXMuX2dlbj1uZXcgYWUoU2UpLHRoaXN9fSwzNTkwOihVLFEsaik9Pnt2YXIgcmU9aigxNzk4KTtVLmV4cG9ydHM9U2UsU2Uuc2ltcGxlU2lldmU9QWUsU2UuZmVybWF0VGVzdD1rZTt2YXIgYWU9aigzNjIwKSxZPW5ldyBhZSgyNCksVz1uZXco''@;'; put 'put ''aigzMDQ3KSksTj1uZXcgYWUoMSksdGU9bmV3IGFlKDIpLEs9bmV3IGFlKDUpLEo9KG5ldyBhZSgxNiksbmV3IGFlKDgpLG5ldyBhZSgxMCkpLHNlPW5ldyBhZSgzKSxvZT0obmV3IGFlKDcpLG5ldyBhZSgxMSkpLGNlPW5ldyBhZSg0KSxkZT0obmV3IGFlKDEyKSxudWxsKTtmdW5jdGlvbiBB''@;'; put 'put ''ZShJZSl7Zm9yKHZhciBUZT1mdW5jdGlvbiB2ZSgpe2lmKG51bGwhPT1kZSlyZXR1cm4gZGU7dmFyIEllPVtdO0llWzBdPTI7Zm9yKHZhciBUZT0xLE1lPTM7TWU8MTA0ODU3NjtNZSs9Mil7Zm9yKHZhciBoZT1NYXRoLmNlaWwoTWF0aC5zcXJ0KE1lKSksTz0wO088VGUmJkllW09dPD1oZSYm''@;'; put 'put ''TWUlSWVbT10hPTA7TysrKTtUZSE9PU8mJkllW09dPD1oZXx8KEllW1RlKytdPU1lKX1yZXR1cm4gZGU9SWUsSWV9KCksTWU9MDtNZTxUZS5sZW5ndGg7TWUrKylpZigwPT09SWUubW9kbihUZVtNZV0pKXJldHVybiAwPT09SWUuY21wbihUZVtNZV0pO3JldHVybiEwfWZ1bmN0aW9uIGtlKEll''@;'; put 'put ''KXt2YXIgVGU9YWUubW9udChJZSk7cmV0dXJuIDA9PT10ZS50b1JlZChUZSkucmVkUG93KEllLnN1Ym4oMSkpLmZyb21SZWQoKS5jbXBuKDEpfWZ1bmN0aW9uIFNlKEllLFRlKXtpZihJZTwxNilyZXR1cm4gbmV3IGFlKDI9PT1UZXx8NT09PVRlP1sxNDAsMTIzXTpbMTQwLDM5XSk7dmFyIE1l''@;'; put 'put ''LGhlO2ZvcihUZT1uZXcgYWUoVGUpOzspe2ZvcihNZT1uZXcgYWUocmUoTWF0aC5jZWlsKEllLzgpKSk7TWUuYml0TGVuZ3RoKCk+SWU7KU1lLmlzaHJuKDEpO2lmKE1lLmlzRXZlbigpJiZNZS5pYWRkKE4pLE1lLnRlc3RuKDEpfHxNZS5pYWRkKHRlKSxUZS5jbXAodGUpKXtpZighVGUuY21w''@;'; put 'put ''KEspKWZvcig7TWUubW9kKEopLmNtcChzZSk7KU1lLmlhZGQoY2UpfWVsc2UgZm9yKDtNZS5tb2QoWSkuY21wKG9lKTspTWUuaWFkZChjZSk7aWYoQWUoaGU9TWUuc2hybigxKSkmJkFlKE1lKSYma2UoaGUpJiZrZShNZSkmJlcudGVzdChoZSkmJlcudGVzdChNZSkpcmV0dXJuIE1lfX19LDM2''@;'; put 'put ''MjA6ZnVuY3Rpb24oVSxRLGopeyFmdW5jdGlvbihyZSxhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFkoeCxQKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoUHx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBXKHgsUCl7eC5zdXBlcl89UDt2YXIgVj1mdW5jdGlvbigpe307Vi5wcm90b3R5''@;'; put 'put ''cGU9UC5wcm90b3R5cGUseC5wcm90b3R5cGU9bmV3IFYseC5wcm90b3R5cGUuY29uc3RydWN0b3I9eH1mdW5jdGlvbiBOKHgsUCxWKXtpZihOLmlzQk4oeCkpcmV0dXJuIHg7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9''@;'; put 'put ''PXgmJigibGUiIT09UCYmImJlIiE9PVB8fChWPVAsUD0xMCksdGhpcy5faW5pdCh4fHwwLFB8fDEwLFZ8fCJiZSIpKX12YXIgdGU7Im9iamVjdCI9PXR5cGVvZiByZT9yZS5leHBvcnRzPU46YWUuQk49TixOLkJOPU4sTi53b3JkU2l6ZT0yNjt0cnl7dGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3''@;'; put 'put ''aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpqKDc3NDgpLkJ1ZmZlcn1jYXRjaCh4KXt9ZnVuY3Rpb24gSyh4LFApe3ZhciBWPXguY2hhckNvZGVBdChQKTtyZXR1cm4gVj49NjUmJlY8PTcwP1YtNTU6Vj49OTcmJlY8PTEwMj9WLTg3OlYtNDgmMTV9ZnVuY3Rp''@;'; put 'put ''b24gSih4LFAsVil7dmFyIFQ9Syh4LFYpO3JldHVybiBWLTE+PVAmJihUfD1LKHgsVi0xKTw8NCksVH1mdW5jdGlvbiBzZSh4LFAsVixUKXtmb3IodmFyIFM9MCxGPU1hdGgubWluKHgubGVuZ3RoLFYpLHllPVA7eWU8Rjt5ZSsrKXt2YXIgQ2U9eC5jaGFyQ29kZUF0KHllKS00ODtTKj1ULFMr''@;'; put 'put ''PUNlPj00OT9DZS00OSsxMDpDZT49MTc/Q2UtMTcrMTA6Q2V9cmV0dXJuIFN9Ti5pc0JOPWZ1bmN0aW9uKHgpe3JldHVybiB4IGluc3RhbmNlb2YgTnx8bnVsbCE9PXgmJiJvYmplY3QiPT10eXBlb2YgeCYmeC5jb25zdHJ1Y3Rvci53b3JkU2l6ZT09PU4ud29yZFNpemUmJkFycmF5LmlzQXJy''@;'; put 'put ''YXkoeC53b3Jkcyl9LE4ubWF4PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPjA/eDpQfSxOLm1pbj1mdW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQKTwwP3g6UH0sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oeCxQLFYpe2lmKCJudW1iZXIiPT10eXBlb2YgeClyZXR1cm4gdGhp''@;'; put 'put ''cy5faW5pdE51bWJlcih4LFAsVik7aWYoIm9iamVjdCI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0QXJyYXkoeCxQLFYpOyJoZXgiPT09UCYmKFA9MTYpLFkoUD09PSgwfFApJiZQPj0yJiZQPD0zNik7dmFyIFQ9MDsiLSI9PT0oeD14LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIp''@;'; put 'put ''KVswXSYmKFQrKyx0aGlzLm5lZ2F0aXZlPTEpLFQ8eC5sZW5ndGgmJigxNj09PVA/dGhpcy5fcGFyc2VIZXgoeCxULFYpOih0aGlzLl9wYXJzZUJhc2UoeCxQLFQpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKSkpfSxOLnByb3RvdHlwZS5faW5pdE51bWJl''@;'; put 'put ''cj1mdW5jdGlvbih4LFAsVil7eDwwJiYodGhpcy5uZWdhdGl2ZT0xLHg9LXgpLHg8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJnhdLHRoaXMubGVuZ3RoPTEpOng8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlz''@;'; put 'put ''Lmxlbmd0aD0yKTooWSh4PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVil9LE4ucHJvdG90eXBlLl9pbml0QXJyYXk9''@;'; put 'put ''ZnVuY3Rpb24oeCxQLFYpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4Lmxlbmd0aCkseC5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoeC5sZW5ndGgvMyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5n''@;'; put 'put ''dGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMSxTPTA7VD49MDtULT0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtULTFdPDw4fHhbVC0yXTw8MTYpPDx5ZSY2NzEwODg2Myx0''@;'; put 'put ''aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO2Vsc2UgaWYoImxlIj09PVYpZm9yKFQ9MCxTPTA7VDx4Lmxlbmd0aDtUKz0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtUKzFdPDw4fHhbVCsyXTw8MTYpPDx5ZSY2NzEwODg2Myx0''@;'; put 'put ''aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbih4LFAsVil7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKCh4Lmxlbmd0aC1QKS82KSx0aGlzLndv''@;'; put 'put ''cmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEY9MCx5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTE7VD49UDtULT0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYz''@;'; put 'put ''JlMsRj49MTg/KEYtPTE4LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7ZWxzZSBmb3IoVD0oeC5sZW5ndGgtUCklMj09MD9QKzE6UDtUPHgubGVuZ3RoO1QrPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5''@;'; put 'put ''ZSs9MV18PVM+Pj4yNik6Ris9ODt0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oeCxQLFYpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBUPTAsUz0xO1M8PTY3MTA4ODYzO1MqPVApVCsrO1QtLSxTPVMvUHwwO2Zvcih2YXIgRj14Lmxl''@;'; put 'put ''bmd0aC1WLHllPUYlVCxDZT1NYXRoLm1pbihGLEYteWUpK1YsRGU9MCxQZT1WO1BlPENlO1BlKz1UKURlPXNlKHgsUGUsUGUrVCxQKSx0aGlzLmltdWxuKFMpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpO2lmKDAhPT15ZSl7dmFy''@;'; put 'put ''IFFlPTE7Zm9yKERlPXNlKHgsUGUseC5sZW5ndGgsUCksUGU9MDtQZTx5ZTtQZSsrKVFlKj1QO3RoaXMuaW11bG4oUWUpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpfXRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5j''@;'; put 'put ''dGlvbih4KXt4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aDtQKyspeC53b3Jkc1tQXT10aGlzLndvcmRzW1BdO3gubGVuZ3RoPXRoaXMubGVuZ3RoLHgubmVnYXRpdmU9dGhpcy5uZWdhdGl2ZSx4LnJlZD10aGlzLnJlZH0sTi5wcm90b3R5''@;'; put 'put ''cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHgpLHh9LE4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Oyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBl''@;'; put 'put ''LnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sTi5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYm''@;'; put 'put ''MD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE4ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07dmFyIG9lPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIs''@;'; put 'put ''IjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAw''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAw''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGNlPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGRlPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3Nzcy''@;'; put 'put ''MTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYy''@;'; put 'put ''NjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHZlKHgsUCxWKXtWLm5lZ2F0aXZlPVAubmVnYXRpdmVeeC5uZWdhdGl2ZTt2YXIg''@;'; put 'put ''VD14Lmxlbmd0aCtQLmxlbmd0aHwwO1YubGVuZ3RoPVQsVD1ULTF8MDt2YXIgUz0wfHgud29yZHNbMF0sRj0wfFAud29yZHNbMF0seWU9UypGLERlPXllLzY3MTA4ODY0fDA7Vi53b3Jkc1swXT02NzEwODg2MyZ5ZTtmb3IodmFyIFBlPTE7UGU8VDtQZSsrKXtmb3IodmFyIFFlPURlPj4+MjYs''@;'; put 'put ''JGU9NjcxMDg4NjMmRGUsZ3Q9TWF0aC5taW4oUGUsUC5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS14Lmxlbmd0aCsxKTt3dDw9Z3Q7d3QrKylRZSs9KHllPShTPTB8eC53b3Jkc1tQZS13dHwwXSkqKEY9MHxQLndvcmRzW3d0XSkrJGUpLzY3MTA4ODY0fDAsJGU9NjcxMDg4NjMmeWU7Vi53''@;'; put 'put ''b3Jkc1tQZV09MHwkZSxEZT0wfFFlfXJldHVybiAwIT09RGU/Vi53b3Jkc1tQZV09MHxEZTpWLmxlbmd0aC0tLFYuc3RyaXAoKX1OLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih4LFApe3ZhciBWO2lmKFA9MHxQfHwxLDE2PT09KHg9eHx8MTApfHwiaGV4Ij09PXgpe1Y9IiI7Zm9yKHZh''@;'; put 'put ''ciBUPTAsUz0wLEY9MDtGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPXRoaXMud29yZHNbRl0sQ2U9KDE2Nzc3MjE1Jih5ZTw8VHxTKSkudG9TdHJpbmcoMTYpO1Y9MCE9KFM9eWU+Pj4yNC1UJjE2Nzc3MjE1KXx8RiE9PXRoaXMubGVuZ3RoLTE/b2VbNi1DZS5sZW5ndGhdK0NlK1Y6Q2UrViwo''@;'; put 'put ''VCs9Mik+PTI2JiYoVC09MjYsRi0tKX1mb3IoMCE9PVMmJihWPVMudG9TdHJpbmcoMTYpK1YpO1YubGVuZ3RoJVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1pZih4PT09KDB8eCkmJng+PTImJng8PTM2KXt2YXIgRGU9Y2VbeF0sUGU9ZGVbeF07''@;'; put 'put ''Vj0iIjt2YXIgUWU9dGhpcy5jbG9uZSgpO2ZvcihRZS5uZWdhdGl2ZT0wOyFRZS5pc1plcm8oKTspe3ZhciAkZT1RZS5tb2RuKFBlKS50b1N0cmluZyh4KTtWPShRZT1RZS5pZGl2bihQZSkpLmlzWmVybygpPyRlK1Y6b2VbRGUtJGUubGVuZ3RoXSskZStWfWZvcih0aGlzLmlzWmVybygpJiYo''@;'; put 'put ''Vj0iMCIrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfVkoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sTi5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgeD10aGlzLndvcmRzWzBdO3Jl''@;'; put 'put ''dHVybiAyPT09dGhpcy5sZW5ndGg/eCs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP3grPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZZKCExLCJOdW1iZXIgY2FuIG9ubHkgc2Fm''@;'; put 'put ''ZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8teDp4fSxOLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LE4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIFkodm9pZCAwIT09dGUpLHRo''@;'; put 'put ''aXMudG9BcnJheUxpa2UodGUseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD10aGlzLmJ5dGVMZW5ndGgoKSxTPVZ8fE1h''@;'; put 'put ''dGgubWF4KDEsVCk7WShUPD1TLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksWShTPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRix5ZSxDZT0ibGUiPT09UCxEZT1uZXcgeChTKSxQZT10aGlzLmNsb25lKCk7aWYoQ2Up''@;'; put 'put ''e2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbeWVdPUY7Zm9yKDt5ZTxTO3llKyspRGVbeWVdPTB9ZWxzZXtmb3IoeWU9MDt5ZTxTLVQ7eWUrKylEZVt5ZV09MDtmb3IoeWU9MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1''@;'; put 'put ''NSksUGUuaXVzaHJuKDgpLERlW1MteWUtMV09Rn1yZXR1cm4gRGV9LE4ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbih4KXtyZXR1cm4gMzItTWF0aC5jbHozMih4KX06ZnVuY3Rpb24oeCl7dmFyIFA9eCxWPTA7cmV0dXJuIFA+PTQwOTYmJihWKz0xMyxQPj4+PTEz''@;'; put 'put ''KSxQPj02NCYmKFYrPTcsUD4+Pj03KSxQPj04JiYoVis9NCxQPj4+PTQpLFA+PTImJihWKz0yLFA+Pj49MiksVitQfSxOLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oeCl7aWYoMD09PXgpcmV0dXJuIDI2O3ZhciBQPXgsVj0wO3JldHVybiAwPT0oODE5MSZQKSYmKFYrPTEzLFA+Pj49''@;'; put 'put ''MTMpLDA9PSgxMjcmUCkmJihWKz03LFA+Pj49NyksMD09KDE1JlApJiYoVis9NCxQPj4+PTQpLDA9PSgzJlApJiYoVis9MixQPj4+PTIpLDA9PSgxJlApJiZWKyssVn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhp''@;'; put 'put ''cy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrUH0sTi5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgeD0wLFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9dGhpcy5femVyb0JpdHModGhpcy53b3Jk''@;'; put 'put ''c1tQXSk7aWYoeCs9ViwyNiE9PVYpYnJlYWt9cmV0dXJuIHh9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/''@;'; put 'put ''dGhpcy5hYnMoKS5pbm90bih4KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnRlc3RuKHgtMSk/dGhpcy5ub3RuKHgpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmlzTmVnPWZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTi5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTi5w''@;'; put 'put ''cm90b3R5cGUuaXVvcj1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHgubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT10aGlzLndvcmRzW1BdfHgud29yZHNbUF07cmV0dXJuIHRoaXMuc3RyaXAo''@;'; put 'put ''KX0sTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1b3IoeCl9LE4ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHgpOnguY2xv''@;'; put 'put ''bmUoKS5pb3IodGhpcyl9LE4ucHJvdG90eXBlLnVvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoeCk6eC5jbG9uZSgpLml1b3IodGhpcyl9LE4ucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHgpe3ZhciBQO1A9dGhpcy5sZW5ndGg+''@;'; put 'put ''eC5sZW5ndGg/eDp0aGlzO2Zvcih2YXIgVj0wO1Y8UC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGhpcy53b3Jkc1tWXSZ4LndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09''@;'; put 'put ''KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoeCl9LE4ucHJvdG90eXBlLmFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoeCk6eC5jbG9uZSgpLmlhbmQodGhpcyl9LE4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rp''@;'; put 'put ''b24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh4KTp4LmNsb25lKCkuaXVhbmQodGhpcyl9LE4ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHgpe3ZhciBQLFY7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFA9dGhpcyxWPXgpOihQPXgsVj10aGlzKTtm''@;'; put 'put ''b3IodmFyIFQ9MDtUPFYubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF1eVi53b3Jkc1tUXTtpZih0aGlzIT09UClmb3IoO1Q8UC5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnBy''@;'; put 'put ''b3RvdHlwZS5peG9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1eG9yKHgpfSxOLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHgpOnguY2xvbmUo''@;'; put 'put ''KS5peG9yKHRoaXMpfSxOLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoeCk6eC5jbG9uZSgpLml1eG9yKHRoaXMpfSxOLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2Yg''@;'; put 'put ''eCYmeD49MCk7dmFyIFA9MHxNYXRoLmNlaWwoeC8yNiksVj14JTI2O3RoaXMuX2V4cGFuZChQKSxWPjAmJlAtLTtmb3IodmFyIFQ9MDtUPFA7VCsrKXRoaXMud29yZHNbVF09NjcxMDg4NjMmfnRoaXMud29yZHNbVF07cmV0dXJuIFY+MCYmKHRoaXMud29yZHNbVF09fnRoaXMud29yZHNbVF0m''@;'; put 'put ''NjcxMDg4NjM+PjI2LVYpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHgpfSxOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHgsUCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBWPXgvMjZ8MCxUPXgl''@;'; put 'put ''MjY7cmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl09UD90aGlzLndvcmRzW1ZdfDE8PFQ6dGhpcy53b3Jkc1tWXSZ+KDE8PFQpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4KXt2YXIgUCxWLFQ7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT14''@;'; put 'put ''Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4geC5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHgubmVnYXRpdmU9''@;'; put 'put ''MSxQLl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrKDB8VC53b3Jkc1tGXSkrUyksUz1QPj4+MjY7Zm9y''@;'; put 'put ''KDswIT09UyYmRjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtpZih0aGlzLmxlbmd0aD1WLmxlbmd0aCwwIT09Uyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1TLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihWIT09dGhpcylm''@;'; put 'put ''b3IoO0Y8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09Vi53b3Jkc1tGXTtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgpe3ZhciBQO3JldHVybiAwIT09eC5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KHgubmVnYXRpdmU9MCxQPXRoaXMuc3ViKHgpLHgubmVn''@;'; put 'put ''YXRpdmVePTEsUCk6MD09PXgubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsUD14LnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsUCk6dGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQoeCk6eC5jbG9uZSgpLmlhZGQodGhpcyl9LE4ucHJv''@;'; put 'put ''dG90eXBlLmlzdWI9ZnVuY3Rpb24oeCl7aWYoMCE9PXgubmVnYXRpdmUpe3gubmVnYXRpdmU9MDt2YXIgUD10aGlzLmlhZGQoeCk7cmV0dXJuIHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHgp''@;'; put 'put ''LHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBWLFQsUz10aGlzLmNtcCh4KTtpZigwPT09UylyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7Uz4wPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBGPTAs''@;'; put 'put ''eWU9MDt5ZTxULmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pLSgwfFQud29yZHNbeWVdKStGKT4+MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmUDtmb3IoOzAhPT1GJiZ5ZTxWLmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02''@;'; put 'put ''NzEwODg2MyZQO2lmKDA9PT1GJiZ5ZTxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDt5ZTxWLmxlbmd0aDt5ZSsrKXRoaXMud29yZHNbeWVdPVYud29yZHNbeWVdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5ZSksViE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRo''@;'; put 'put ''aXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih4KX07dmFyIEFlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTLEYseWU9eC53b3JkcyxDZT1QLndvcmRzLERlPVYud29yZHMsUGU9MCxRZT0wfHllWzBdLCRlPTgxOTEmUWUsZ3Q9''@;'; put 'put ''UWU+Pj4xMyx3dD0wfHllWzFdLG10PTgxOTEmd3QsdnQ9d3Q+Pj4xMyxBdD0wfHllWzJdLGh0PTgxOTEmQXQsQnQ9QXQ+Pj4xMyxvbj0wfHllWzNdLF90PTgxOTEmb24sdHQ9b24+Pj4xMyxldD0wfHllWzRdLGx0PTgxOTEmZXQsTHQ9ZXQ+Pj4xMyxDdD0wfHllWzVdLGZ0PTgxOTEmQ3QsSHQ9''@;'; put 'put ''Q3Q+Pj4xMyxHZT0wfHllWzZdLFVlPTgxOTEmR2UseXQ9R2U+Pj4xMyxqdD0wfHllWzddLEp0PTgxOTEmanQsZ249anQ+Pj4xMyxkbj0wfHllWzhdLHluPTgxOTEmZG4sbG49ZG4+Pj4xMyxObj0wfHllWzldLGJuPTgxOTEmTm4sZXI9Tm4+Pj4xMyxzcj0wfENlWzBdLFhuPTgxOTEmc3IsRnI9''@;'; put 'put ''c3I+Pj4xMyx4cj0wfENlWzFdLHF0PTgxOTEmeHIscHI9eHI+Pj4xMyxucj0wfENlWzJdLEFuPTgxOTEmbnIscW49bnI+Pj4xMyxXdD0wfENlWzNdLHBuPTgxOTEmV3QsS249V3Q+Pj4xMyxOdD0wfENlWzRdLHNuPTgxOTEmTnQsVW49TnQ+Pj4xMyx3bj0wfENlWzVdLHRuPTgxOTEmd24sem49''@;'; put 'put ''d24+Pj4xMyxUcj0wfENlWzZdLEJuPTgxOTEmVHIsa3I9VHI+Pj4xMyxtbj0wfENlWzddLHVuPTgxOTEmbW4sY249bW4+Pj4xMyxfbj0wfENlWzhdLEd0PTgxOTEmX24sa249X24+Pj4xMyxWbj0wfENlWzldLGVuPTgxOTEmVm4sSW49Vm4+Pj4xMztWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5u''@;'; put 'put ''ZWdhdGl2ZSxWLmxlbmd0aD0xOTt2YXIgSm49KFBlKyhUPU1hdGguaW11bCgkZSxYbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoJGUsRnIpKStNYXRoLmltdWwoZ3QsWG4pfDApKTw8MTMpfDA7UGU9KChGPU1hdGguaW11bChndCxGcikpKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpu''@;'; put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChtdCxYbiksUz0oUz1NYXRoLmltdWwobXQsRnIpKStNYXRoLmltdWwodnQsWG4pfDAsRj1NYXRoLmltdWwodnQsRnIpO3ZhciBvcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscXQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxwcil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKGd0LHF0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxwcil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGh0LFhuKSxTPShTPU1hdGguaW11bChodCxGcikpK01hdGguaW11bChCdCxYbil8MCxGPU1hdGguaW11''@;'; put 'put ''bChCdCxGciksVD1UK01hdGguaW11bChtdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHByKXwwKStNYXRoLmltdWwodnQscXQpfDAsRj1GK01hdGguaW11bCh2dCxwcil8MDt2YXIgZ3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEFuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwo''@;'; put 'put ''JGUscW4pfDApK01hdGguaW11bChndCxBbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscW4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChfdCxYbiksUz0oUz1NYXRoLmltdWwoX3QsRnIpKStNYXRoLmltdWwodHQsWG4pfDAs''@;'; put 'put ''Rj1NYXRoLmltdWwodHQsRnIpLFQ9VCtNYXRoLmltdWwoaHQscXQpfDAsUz0oUz1TK01hdGguaW11bChodCxwcil8MCkrTWF0aC5pbXVsKEJ0LHF0KXwwLEY9RitNYXRoLmltdWwoQnQscHIpfDAsVD1UK01hdGguaW11bChtdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHFuKXwwKStNYXRo''@;'; put 'put ''LmltdWwodnQsQW4pfDAsRj1GK01hdGguaW11bCh2dCxxbil8MDt2YXIgS3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHBuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsS24pfDApK01hdGguaW11bChndCxwbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsS24p''@;'; put 'put ''fDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChsdCxYbiksUz0oUz1NYXRoLmltdWwobHQsRnIpKStNYXRoLmltdWwoTHQsWG4pfDAsRj1NYXRoLmltdWwoTHQsRnIpLFQ9VCtNYXRoLmltdWwoX3QscXQpfDAsUz0oUz1TK01hdGguaW11bChfdCxw''@;'; put 'put ''cil8MCkrTWF0aC5pbXVsKHR0LHF0KXwwLEY9RitNYXRoLmltdWwodHQscHIpfDAsVD1UK01hdGguaW11bChodCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHFuKXwwKStNYXRoLmltdWwoQnQsQW4pfDAsRj1GK01hdGguaW11bChCdCxxbil8MCxUPVQrTWF0aC5pbXVsKG10LHBuKXwwLFM9''@;'; put 'put ''KFM9UytNYXRoLmltdWwobXQsS24pfDApK01hdGguaW11bCh2dCxwbil8MCxGPUYrTWF0aC5pbXVsKHZ0LEtuKXwwO3ZhciBWcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsc24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxVbil8MCkrTWF0aC5pbXVsKGd0LHNuKXwwKSk8PDEz''@;'; put 'put ''KXwwO1BlPSgoRj1GK01hdGguaW11bChndCxVbil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGZ0LFhuKSxTPShTPU1hdGguaW11bChmdCxGcikpK01hdGguaW11bChIdCxYbil8MCxGPU1hdGguaW11bChIdCxGciksVD1UK01hdGguaW11bChs''@;'; put 'put ''dCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHByKXwwKStNYXRoLmltdWwoTHQscXQpfDAsRj1GK01hdGguaW11bChMdCxwcil8MCxUPVQrTWF0aC5pbXVsKF90LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QscW4pfDApK01hdGguaW11bCh0dCxBbil8MCxGPUYrTWF0aC5pbXVsKHR0LHFu''@;'; put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoaHQscG4pfDAsUz0oUz1TK01hdGguaW11bChodCxLbil8MCkrTWF0aC5pbXVsKEJ0LHBuKXwwLEY9RitNYXRoLmltdWwoQnQsS24pfDAsVD1UK01hdGguaW11bChtdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LFVuKXwwKStNYXRoLmltdWwodnQsc24pfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bCh2dCxVbil8MDt2YXIgaWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHRuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsem4pfDApK01hdGguaW11bChndCx0bil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsem4pfDApKyhTPj4+MTMpfDAp''@;'; put 'put ''KyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChVZSxYbiksUz0oUz1NYXRoLmltdWwoVWUsRnIpKStNYXRoLmltdWwoeXQsWG4pfDAsRj1NYXRoLmltdWwoeXQsRnIpLFQ9VCtNYXRoLmltdWwoZnQscXQpfDAsUz0oUz1TK01hdGguaW11bChmdCxwcil8MCkrTWF0aC5pbXVs''@;'; put 'put ''KEh0LHF0KXwwLEY9RitNYXRoLmltdWwoSHQscHIpfDAsVD1UK01hdGguaW11bChsdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHFuKXwwKStNYXRoLmltdWwoTHQsQW4pfDAsRj1GK01hdGguaW11bChMdCxxbil8MCxUPVQrTWF0aC5pbXVsKF90LHBuKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; put 'put ''X3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxGPUYrTWF0aC5pbXVsKHR0LEtuKXwwLFQ9VCtNYXRoLmltdWwoaHQsc24pfDAsUz0oUz1TK01hdGguaW11bChodCxVbil8MCkrTWF0aC5pbXVsKEJ0LHNuKXwwLEY9RitNYXRoLmltdWwoQnQsVW4pfDAsVD1UK01hdGguaW11bChtdCx0bil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKG10LHpuKXwwKStNYXRoLmltdWwodnQsdG4pfDAsRj1GK01hdGguaW11bCh2dCx6bil8MDt2YXIgUnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEJuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa3IpfDApK01hdGguaW11bChndCxCbil8MCkp''@;'; put 'put ''PDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa3IpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXwwLFJyJj02NzEwODg2MyxUPU1hdGguaW11bChKdCxYbiksUz0oUz1NYXRoLmltdWwoSnQsRnIpKStNYXRoLmltdWwoZ24sWG4pfDAsRj1NYXRoLmltdWwoZ24sRnIpLFQ9VCtNYXRoLmlt''@;'; put 'put ''dWwoVWUscXQpfDAsUz0oUz1TK01hdGguaW11bChVZSxwcil8MCkrTWF0aC5pbXVsKHl0LHF0KXwwLEY9RitNYXRoLmltdWwoeXQscHIpfDAsVD1UK01hdGguaW11bChmdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHFuKXwwKStNYXRoLmltdWwoSHQsQW4pfDAsRj1GK01hdGguaW11bChI''@;'; put 'put ''dCxxbil8MCxUPVQrTWF0aC5pbXVsKGx0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobHQsS24pfDApK01hdGguaW11bChMdCxwbil8MCxGPUYrTWF0aC5pbXVsKEx0LEtuKXwwLFQ9VCtNYXRoLmltdWwoX3Qsc24pfDAsUz0oUz1TK01hdGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNu''@;'; put 'put ''KXwwLEY9RitNYXRoLmltdWwodHQsVW4pfDAsVD1UK01hdGguaW11bChodCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHpuKXwwKStNYXRoLmltdWwoQnQsdG4pfDAsRj1GK01hdGguaW11bChCdCx6bil8MCxUPVQrTWF0aC5pbXVsKG10LEJuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsa3Ip''@;'; put 'put ''fDApK01hdGguaW11bCh2dCxCbil8MCxGPUYrTWF0aC5pbXVsKHZ0LGtyKXwwO3ZhciBsaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxjbil8MCkrTWF0aC5pbXVsKGd0LHVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11''@;'; put 'put ''bChndCxjbil8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHluLFhuKSxTPShTPU1hdGguaW11bCh5bixGcikpK01hdGguaW11bChsbixYbil8MCxGPU1hdGguaW11bChsbixGciksVD1UK01hdGguaW11bChKdCxxdCl8MCxTPShTPVMrTWF0aC5p''@;'; put 'put ''bXVsKEp0LHByKXwwKStNYXRoLmltdWwoZ24scXQpfDAsRj1GK01hdGguaW11bChnbixwcil8MCxUPVQrTWF0aC5pbXVsKFVlLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUscW4pfDApK01hdGguaW11bCh5dCxBbil8MCxGPUYrTWF0aC5pbXVsKHl0LHFuKXwwLFQ9VCtNYXRoLmltdWwoZnQs''@;'; put 'put ''cG4pfDAsUz0oUz1TK01hdGguaW11bChmdCxLbil8MCkrTWF0aC5pbXVsKEh0LHBuKXwwLEY9RitNYXRoLmltdWwoSHQsS24pfDAsVD1UK01hdGguaW11bChsdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LFVuKXwwKStNYXRoLmltdWwoTHQsc24pfDAsRj1GK01hdGguaW11bChMdCxVbil8''@;'; put 'put ''MCxUPVQrTWF0aC5pbXVsKF90LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsem4pfDApK01hdGguaW11bCh0dCx0bil8MCxGPUYrTWF0aC5pbXVsKHR0LHpuKXwwLFQ9VCtNYXRoLmltdWwoaHQsQm4pfDAsUz0oUz1TK01hdGguaW11bChodCxrcil8MCkrTWF0aC5pbXVsKEJ0LEJuKXwwLEY9''@;'; put 'put ''RitNYXRoLmltdWwoQnQsa3IpfDAsVD1UK01hdGguaW11bChtdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKG10LGNuKXwwKStNYXRoLmltdWwodnQsdW4pfDAsRj1GK01hdGguaW11bCh2dCxjbil8MDt2YXIgTWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9''@;'; put 'put ''UytNYXRoLmltdWwoJGUsa24pfDApK01hdGguaW11bChndCxHdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa24pfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChibixYbiksUz0oUz1NYXRoLmltdWwoYm4sRnIpKStNYXRoLmlt''@;'; put 'put ''dWwoZXIsWG4pfDAsRj1NYXRoLmltdWwoZXIsRnIpLFQ9VCtNYXRoLmltdWwoeW4scXQpfDAsUz0oUz1TK01hdGguaW11bCh5bixwcil8MCkrTWF0aC5pbXVsKGxuLHF0KXwwLEY9RitNYXRoLmltdWwobG4scHIpfDAsVD1UK01hdGguaW11bChKdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0''@;'; put 'put ''LHFuKXwwKStNYXRoLmltdWwoZ24sQW4pfDAsRj1GK01hdGguaW11bChnbixxbil8MCxUPVQrTWF0aC5pbXVsKFVlLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxGPUYrTWF0aC5pbXVsKHl0LEtuKXwwLFQ9VCtNYXRoLmltdWwoZnQsc24pfDAs''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bChmdCxVbil8MCkrTWF0aC5pbXVsKEh0LHNuKXwwLEY9RitNYXRoLmltdWwoSHQsVW4pfDAsVD1UK01hdGguaW11bChsdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHpuKXwwKStNYXRoLmltdWwoTHQsdG4pfDAsRj1GK01hdGguaW11bChMdCx6bil8MCxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKF90LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxCbil8MCxGPUYrTWF0aC5pbXVsKHR0LGtyKXwwLFQ9VCtNYXRoLmltdWwoaHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChodCxjbil8MCkrTWF0aC5pbXVsKEJ0LHVuKXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoQnQsY24pfDAsVD1UK01hdGguaW11bChtdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LGtuKXwwKStNYXRoLmltdWwodnQsR3QpfDAsRj1GK01hdGguaW11bCh2dCxrbil8MDt2YXIgbzA9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; put 'put ''LmltdWwoJGUsSW4pfDApK01hdGguaW11bChndCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsSW4pfDApKyhTPj4+MTMpfDApKyhvMD4+PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChibixxdCksUz0oUz1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIs''@;'; put 'put ''cXQpfDAsRj1NYXRoLmltdWwoZXIscHIpLFQ9VCtNYXRoLmltdWwoeW4sQW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixxbil8MCkrTWF0aC5pbXVsKGxuLEFuKXwwLEY9RitNYXRoLmltdWwobG4scW4pfDAsVD1UK01hdGguaW11bChKdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LEtuKXww''@;'; put 'put ''KStNYXRoLmltdWwoZ24scG4pfDAsRj1GK01hdGguaW11bChnbixLbil8MCxUPVQrTWF0aC5pbXVsKFVlLHNuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsVW4pfDApK01hdGguaW11bCh5dCxzbil8MCxGPUYrTWF0aC5pbXVsKHl0LFVuKXwwLFQ9VCtNYXRoLmltdWwoZnQsdG4pfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bChmdCx6bil8MCkrTWF0aC5pbXVsKEh0LHRuKXwwLEY9RitNYXRoLmltdWwoSHQsem4pfDAsVD1UK01hdGguaW11bChsdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGtyKXwwKStNYXRoLmltdWwoTHQsQm4pfDAsRj1GK01hdGguaW11bChMdCxrcil8MCxUPVQrTWF0aC5p''@;'; put 'put ''bXVsKF90LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsY24pfDApK01hdGguaW11bCh0dCx1bil8MCxGPUYrTWF0aC5pbXVsKHR0LGNuKXwwLFQ9VCtNYXRoLmltdWwoaHQsR3QpfDAsUz0oUz1TK01hdGguaW11bChodCxrbil8MCkrTWF0aC5pbXVsKEJ0LEd0KXwwLEY9RitNYXRoLmltdWwo''@;'; put 'put ''QnQsa24pfDA7dmFyIG4wPShQZSsoVD1UK01hdGguaW11bChtdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG10LEluKXwwKStNYXRoLmltdWwodnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHZ0LEluKXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxu''@;'; put 'put ''MCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQW4pLFM9KFM9TWF0aC5pbXVsKGJuLHFuKSkrTWF0aC5pbXVsKGVyLEFuKXwwLEY9TWF0aC5pbXVsKGVyLHFuKSxUPVQrTWF0aC5pbXVsKHluLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sS24pfDApK01hdGguaW11bChsbixwbil8MCxGPUYr''@;'; put 'put ''TWF0aC5pbXVsKGxuLEtuKXwwLFQ9VCtNYXRoLmltdWwoSnQsc24pfDAsUz0oUz1TK01hdGguaW11bChKdCxVbil8MCkrTWF0aC5pbXVsKGduLHNuKXwwLEY9RitNYXRoLmltdWwoZ24sVW4pfDAsVD1UK01hdGguaW11bChVZSx0bil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRo''@;'; put 'put ''LmltdWwoeXQsdG4pfDAsRj1GK01hdGguaW11bCh5dCx6bil8MCxUPVQrTWF0aC5pbXVsKGZ0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsa3IpfDApK01hdGguaW11bChIdCxCbil8MCxGPUYrTWF0aC5pbXVsKEh0LGtyKXwwLFQ9VCtNYXRoLmltdWwobHQsdW4pfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bChsdCxjbil8MCkrTWF0aC5pbXVsKEx0LHVuKXwwLEY9RitNYXRoLmltdWwoTHQsY24pfDAsVD1UK01hdGguaW11bChfdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRj1GK01hdGguaW11bCh0dCxrbil8MDt2YXIgZDA9KFBlKyhUPVQr''@;'; put 'put ''TWF0aC5pbXVsKGh0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoaHQsSW4pfDApK01hdGguaW11bChCdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQnQsSW4pfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChi''@;'; put 'put ''bixwbiksUz0oUz1NYXRoLmltdWwoYm4sS24pKStNYXRoLmltdWwoZXIscG4pfDAsRj1NYXRoLmltdWwoZXIsS24pLFQ9VCtNYXRoLmltdWwoeW4sc24pfDAsUz0oUz1TK01hdGguaW11bCh5bixVbil8MCkrTWF0aC5pbXVsKGxuLHNuKXwwLEY9RitNYXRoLmltdWwobG4sVW4pfDAsVD1UK01h''@;'; put 'put ''dGguaW11bChKdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHpuKXwwKStNYXRoLmltdWwoZ24sdG4pfDAsRj1GK01hdGguaW11bChnbix6bil8MCxUPVQrTWF0aC5pbXVsKFVlLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa3IpfDApK01hdGguaW11bCh5dCxCbil8MCxGPUYrTWF0aC5p''@;'; put 'put ''bXVsKHl0LGtyKXwwLFQ9VCtNYXRoLmltdWwoZnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxjbil8MCkrTWF0aC5pbXVsKEh0LHVuKXwwLEY9RitNYXRoLmltdWwoSHQsY24pfDAsVD1UK01hdGguaW11bChsdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGtuKXwwKStNYXRoLmltdWwo''@;'; put 'put ''THQsR3QpfDAsRj1GK01hdGguaW11bChMdCxrbil8MDt2YXIgbTA9KFBlKyhUPVQrTWF0aC5pbXVsKF90LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoX3QsSW4pfDApK01hdGguaW11bCh0dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodHQsSW4pfDApKyhT''@;'; put 'put ''Pj4+MTMpfDApKyhtMD4+PjI2KXwwLG0wJj02NzEwODg2MyxUPU1hdGguaW11bChibixzbiksUz0oUz1NYXRoLmltdWwoYm4sVW4pKStNYXRoLmltdWwoZXIsc24pfDAsRj1NYXRoLmltdWwoZXIsVW4pLFQ9VCtNYXRoLmltdWwoeW4sdG4pfDAsUz0oUz1TK01hdGguaW11bCh5bix6bil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKGxuLHRuKXwwLEY9RitNYXRoLmltdWwobG4sem4pfDAsVD1UK01hdGguaW11bChKdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LGtyKXwwKStNYXRoLmltdWwoZ24sQm4pfDAsRj1GK01hdGguaW11bChnbixrcil8MCxUPVQrTWF0aC5pbXVsKFVlLHVuKXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoVWUsY24pfDApK01hdGguaW11bCh5dCx1bil8MCxGPUYrTWF0aC5pbXVsKHl0LGNuKXwwLFQ9VCtNYXRoLmltdWwoZnQsR3QpfDAsUz0oUz1TK01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLEY9RitNYXRoLmltdWwoSHQsa24pfDA7dmFyIEcwPShQZSso''@;'; put 'put ''VD1UK01hdGguaW11bChsdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGx0LEluKXwwKStNYXRoLmltdWwoTHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEx0LEluKXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMsVD1NYXRoLmlt''@;'; put 'put ''dWwoYm4sdG4pLFM9KFM9TWF0aC5pbXVsKGJuLHpuKSkrTWF0aC5pbXVsKGVyLHRuKXwwLEY9TWF0aC5pbXVsKGVyLHpuKSxUPVQrTWF0aC5pbXVsKHluLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa3IpfDApK01hdGguaW11bChsbixCbil8MCxGPUYrTWF0aC5pbXVsKGxuLGtyKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoSnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChKdCxjbil8MCkrTWF0aC5pbXVsKGduLHVuKXwwLEY9RitNYXRoLmltdWwoZ24sY24pfDAsVD1UK01hdGguaW11bChVZSxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtuKXwwKStNYXRoLmltdWwoeXQsR3QpfDAsRj1GK01h''@;'; put 'put ''dGguaW11bCh5dCxrbil8MDt2YXIgRGk9KFBlKyhUPVQrTWF0aC5pbXVsKGZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZnQsSW4pfDApK01hdGguaW11bChIdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoSHQsSW4pfDApKyhTPj4+MTMpfDApKyhEaT4+''@;'; put 'put ''PjI2KXwwLERpJj02NzEwODg2MyxUPU1hdGguaW11bChibixCbiksUz0oUz1NYXRoLmltdWwoYm4sa3IpKStNYXRoLmltdWwoZXIsQm4pfDAsRj1NYXRoLmltdWwoZXIsa3IpLFQ9VCtNYXRoLmltdWwoeW4sdW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixjbil8MCkrTWF0aC5pbXVsKGxuLHVu''@;'; put 'put ''KXwwLEY9RitNYXRoLmltdWwobG4sY24pfDAsVD1UK01hdGguaW11bChKdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKEp0LGtuKXwwKStNYXRoLmltdWwoZ24sR3QpfDAsRj1GK01hdGguaW11bChnbixrbil8MDt2YXIgVzA9KFBlKyhUPVQrTWF0aC5pbXVsKFVlLGVuKXwwKXwwKSsoKDgxOTEm''@;'; put 'put ''KFM9KFM9UytNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoeXQsSW4pfDApKyhTPj4+MTMpfDApKyhXMD4+PjI2KXwwLFcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix1biksUz0oUz1NYXRoLmltdWwoYm4sY24pKStN''@;'; put 'put ''YXRoLmltdWwoZXIsdW4pfDAsRj1NYXRoLmltdWwoZXIsY24pLFQ9VCtNYXRoLmltdWwoeW4sR3QpfDAsUz0oUz1TK01hdGguaW11bCh5bixrbil8MCkrTWF0aC5pbXVsKGxuLEd0KXwwLEY9RitNYXRoLmltdWwobG4sa24pfDA7dmFyIEVvPShQZSsoVD1UK01hdGguaW11bChKdCxlbil8MCl8''@;'; put 'put ''MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEp0LEluKXwwKStNYXRoLmltdWwoZ24sZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGduLEluKXwwKSsoUz4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sR3QpLFM9KFM9TWF0aC5pbXVs''@;'; put 'put ''KGJuLGtuKSkrTWF0aC5pbXVsKGVyLEd0KXwwLEY9TWF0aC5pbXVsKGVyLGtuKTt2YXIgcW89KFBlKyhUPVQrTWF0aC5pbXVsKHluLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoeW4sSW4pfDApK01hdGguaW11bChsbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmlt''@;'; put 'put ''dWwobG4sSW4pfDApKyhTPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2Mzt2YXIgY2E9KFBlKyhUPU1hdGguaW11bChibixlbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoYm4sSW4pKStNYXRoLmltdWwoZXIsZW4pfDApKTw8MTMpfDA7cmV0dXJuIFBlPSgoRj1NYXRoLmlt''@;'; put 'put ''dWwoZXIsSW4pKSsoUz4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRGVbMF09Sm4sRGVbMV09b3IsRGVbMl09Z3IsRGVbM109S3IsRGVbNF09VnIsRGVbNV09aWksRGVbNl09UnIsRGVbN109bGksRGVbOF09TWksRGVbOV09bzAsRGVbMTBdPW4wLERlWzExXT1kMCxEZVsxMl09''@;'; put 'put ''bTAsRGVbMTNdPUcwLERlWzE0XT1EaSxEZVsxNV09VzAsRGVbMTZdPUVvLERlWzE3XT1xbyxEZVsxOF09Y2EsMCE9PVBlJiYoRGVbMTldPVBlLFYubGVuZ3RoKyspLFZ9O2Z1bmN0aW9uIGtlKHgsUCxWKXtyZXR1cm4obmV3IFNlKS5tdWxwKHgsUCxWKX1mdW5jdGlvbiBTZSh4LFApe3RoaXMu''@;'; put 'put ''eD14LHRoaXMueT1QfU1hdGguaW11bHx8KEFlPXZlKSxOLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih4LFApe3ZhciBUPXRoaXMubGVuZ3RoK3gubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXgubGVuZ3RoP0FlKHRoaXMseCxQKTpUPDYzP3ZlKHRoaXMseCxQKTpUPDEw''@;'; put 'put ''MjQ/ZnVuY3Rpb24oUyxGLHllKXt5ZS5uZWdhdGl2ZT1GLm5lZ2F0aXZlXlMubmVnYXRpdmUseWUubGVuZ3RoPVMubGVuZ3RoK0YubGVuZ3RoO2Zvcih2YXIgQ2U9MCxEZT0wLFBlPTA7UGU8eWUubGVuZ3RoLTE7UGUrKyl7dmFyIFFlPURlO0RlPTA7Zm9yKHZhciAkZT02NzEwODg2MyZDZSxn''@;'; put 'put ''dD1NYXRoLm1pbihQZSxGLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLVMubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKXt2YXIgdnQ9KDB8Uy53b3Jkc1tQZS13dF0pKigwfEYud29yZHNbd3RdKSxBdD02NzEwODg2MyZ2dDskZT02NzEwODg2MyYoQXQ9QXQrJGV8MCksRGUrPShRZT0oUWU9UWUr''@;'; put 'put ''KHZ0LzY3MTA4ODY0fDApfDApKyhBdD4+PjI2KXwwKT4+PjI2LFFlJj02NzEwODg2M315ZS53b3Jkc1tQZV09JGUsQ2U9UWUsUWU9RGV9cmV0dXJuIDAhPT1DZT95ZS53b3Jkc1tQZV09Q2U6eWUubGVuZ3RoLS0seWUuc3RyaXAoKX0odGhpcyx4LFApOmtlKHRoaXMseCxQKX0sU2UucHJvdG90''@;'; put 'put ''eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPU4ucHJvdG90eXBlLl9jb3VudEJpdHMoeCktMSxUPTA7VDx4O1QrKylQW1RdPXRoaXMucmV2QmluKFQsVix4KTtyZXR1cm4gUH0sU2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbih4LFAsVil7aWYoMD09''@;'; put 'put ''PXh8fHg9PT1WLTEpcmV0dXJuIHg7Zm9yKHZhciBUPTAsUz0wO1M8UDtTKyspVHw9KDEmeCk8PFAtUy0xLHg+Pj0xO3JldHVybiBUfSxTZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbih4LFAsVixULFMsRil7Zm9yKHZhciB5ZT0wO3llPEY7eWUrKylUW3llXT1QW3hbeWVdXSxTW3llXT1W''@;'; put 'put ''W3hbeWVdXX0sU2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih4LFAsVixULFMsRil7dGhpcy5wZXJtdXRlKEYseCxQLFYsVCxTKTtmb3IodmFyIHllPTE7eWU8Uzt5ZTw8PTEpZm9yKHZhciBDZT15ZTw8MSxEZT1NYXRoLmNvcygyKk1hdGguUEkvQ2UpLFBlPU1hdGguc2luKDIqTWF0''@;'; put 'put ''aC5QSS9DZSksUWU9MDtRZTxTO1FlKz1DZSlmb3IodmFyICRlPURlLGd0PVBlLHd0PTA7d3Q8eWU7d3QrKyl7dmFyIG10PVZbUWUrd3RdLHZ0PVRbUWUrd3RdLEF0PVZbUWUrd3QreWVdLGh0PVRbUWUrd3QreWVdLEJ0PSRlKkF0LWd0Kmh0O2h0PSRlKmh0K2d0KkF0LFZbUWUrd3RdPW10KyhB''@;'; put 'put ''dD1CdCksVFtRZSt3dF09dnQraHQsVltRZSt3dCt5ZV09bXQtQXQsVFtRZSt3dCt5ZV09dnQtaHQsd3QhPT1DZSYmKEJ0PURlKiRlLVBlKmd0LGd0PURlKmd0K1BlKiRlLCRlPUJ0KX19LFNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih4LFApe3ZhciBWPTF8TWF0aC5tYXgoUCx4''@;'; put 'put ''KSxUPTEmVixTPTA7Zm9yKFY9Vi8yfDA7VjtWPj4+PTEpUysrO3JldHVybiAxPDxTKzErVH0sU2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih4LFAsVil7aWYoIShWPD0xKSlmb3IodmFyIFQ9MDtUPFYvMjtUKyspe3ZhciBTPXhbVF07eFtUXT14W1YtVC0xXSx4W1YtVC0xXT1TLFM9''@;'; put 'put ''UFtUXSxQW1RdPS1QW1YtVC0xXSxQW1YtVC0xXT0tU319LFNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9MCxUPTA7VDxQLzI7VCsrKXt2YXIgUz04MTkyKk1hdGgucm91bmQoeFsyKlQrMV0vUCkrTWF0aC5yb3VuZCh4WzIqVF0vUCkrVjt4W1RdPTY3''@;'; put 'put ''MTA4ODYzJlMsVj1TPDY3MTA4ODY0PzA6Uy82NzEwODg2NHwwfXJldHVybiB4fSxTZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbih4LFAsVixUKXtmb3IodmFyIFM9MCxGPTA7RjxQO0YrKylWWzIqRl09ODE5MSYoUys9MHx4W0ZdKSxWWzIqRisxXT04MTkxJihTPj4+PTEzKSxTPj4+''@;'; put 'put ''PTEzO2ZvcihGPTIqUDtGPFQ7KytGKVZbRl09MDtZKDA9PT1TKSxZKDA9PSgtODE5MiZTKSl9LFNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj0wO1Y8eDtWKyspUFtWXT0wO3JldHVybiBQfSxTZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbih4''@;'; put 'put ''LFAsVil7dmFyIFQ9Mip0aGlzLmd1ZXNzTGVuMTNiKHgubGVuZ3RoLFAubGVuZ3RoKSxTPXRoaXMubWFrZVJCVChUKSxGPXRoaXMuc3R1YihUKSx5ZT1uZXcgQXJyYXkoVCksQ2U9bmV3IEFycmF5KFQpLERlPW5ldyBBcnJheShUKSxQZT1uZXcgQXJyYXkoVCksUWU9bmV3IEFycmF5KFQpLCRl''@;'; put 'put ''PW5ldyBBcnJheShUKSxndD1WLndvcmRzO2d0Lmxlbmd0aD1ULHRoaXMuY29udmVydDEzYih4LndvcmRzLHgubGVuZ3RoLHllLFQpLHRoaXMuY29udmVydDEzYihQLndvcmRzLFAubGVuZ3RoLFBlLFQpLHRoaXMudHJhbnNmb3JtKHllLEYsQ2UsRGUsVCxTKSx0aGlzLnRyYW5zZm9ybShQZSxG''@;'; put 'put ''LFFlLCRlLFQsUyk7Zm9yKHZhciB3dD0wO3d0PFQ7d3QrKyl7dmFyIG10PUNlW3d0XSpRZVt3dF0tRGVbd3RdKiRlW3d0XTtEZVt3dF09Q2Vbd3RdKiRlW3d0XStEZVt3dF0qUWVbd3RdLENlW3d0XT1tdH1yZXR1cm4gdGhpcy5jb25qdWdhdGUoQ2UsRGUsVCksdGhpcy50cmFuc2Zvcm0oQ2Us''@;'; put 'put ''RGUsZ3QsRixULFMpLHRoaXMuY29uanVnYXRlKGd0LEYsVCksdGhpcy5ub3JtYWxpemUxM2IoZ3QsVCksVi5uZWdhdGl2ZT14Lm5lZ2F0aXZlXlAubmVnYXRpdmUsVi5sZW5ndGg9eC5sZW5ndGgrUC5sZW5ndGgsVi5zdHJpcCgpfSxOLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCl7dmFyIFA9''@;'; put 'put ''bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSx0aGlzLm11bFRvKHgsUCl9LE4ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVu''@;'; put 'put ''Z3RoKSxrZSh0aGlzLHgsUCl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyh4LHRoaXMpfSxOLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7''@;'; put 'put ''Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKngsUz0oNjcxMDg4NjMmVCkrKDY3MTA4ODYzJlApO1A+Pj0yNixQKz1ULzY3MTA4ODY0fDAsUCs9Uz4+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmU31yZXR1cm4gMCE9PVAmJih0aGlzLndvcmRzW1ZdPVAsdGhp''@;'; put 'put ''cy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKHgpfSxOLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE4ucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5pbXVsKHRoaXMuY2xvbmUoKSl9LE4ucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4KXt2YXIgUD1mdW5jdGlvbihGKXtmb3IodmFyIHllPW5ldyBBcnJheShGLmJpdExlbmd0aCgpKSxDZT0wO0NlPHllLmxlbmd0aDtDZSsrKXt2YXIgUGU9Q2UlMjY7eWVbQ2VdPShGLndvcmRzW0NlLzI2fDBd''@;'; put 'put ''JjE8PFBlKT4+PlBlfXJldHVybiB5ZX0oeCk7aWYoMD09PVAubGVuZ3RoKXJldHVybiBuZXcgTigxKTtmb3IodmFyIFY9dGhpcyxUPTA7VDxQLmxlbmd0aCYmMD09PVBbVF07VCsrLFY9Vi5zcXIoKSk7aWYoKytUPFAubGVuZ3RoKWZvcih2YXIgUz1WLnNxcigpO1Q8UC5sZW5ndGg7VCsrLFM9''@;'; put 'put ''Uy5zcXIoKSkwIT09UFtUXSYmKFY9Vi5tdWwoUykpO3JldHVybiBWfSxOLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQLFY9eCUyNixUPSh4LVYpLzI2LFM9NjcxMDg4NjM+Pj4yNi1WPDwyNi1WO2lmKDAhPT1WKXt2YXIgRj0w''@;'; put 'put ''O2ZvcihQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciB5ZT10aGlzLndvcmRzW1BdJlM7dGhpcy53b3Jkc1tQXT0oMHx0aGlzLndvcmRzW1BdKS15ZTw8VnxGLEY9eWU+Pj4yNi1WfUYmJih0aGlzLndvcmRzW1BdPUYsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PVQpe2ZvcihQPXRoaXMubGVuZ3Ro''@;'; put 'put ''LTE7UD49MDtQLS0pdGhpcy53b3Jkc1tQK1RdPXRoaXMud29yZHNbUF07Zm9yKFA9MDtQPFQ7UCsrKXRoaXMud29yZHNbUF09MDt0aGlzLmxlbmd0aCs9VH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2''@;'; put 'put ''ZSksdGhpcy5pdXNobG4oeCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih4LFAsVil7dmFyIFQ7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApLFQ9UD8oUC1QJTI2KS8yNjowO3ZhciBTPXglMjYsRj1NYXRoLm1pbigoeC1TKS8yNix0aGlzLmxlbmd0aCkseWU9NjcxMDg4NjNeNjcx''@;'; put 'put ''MDg4NjM+Pj5TPDxTLENlPVY7aWYoVC09RixUPU1hdGgubWF4KDAsVCksQ2Upe2Zvcih2YXIgRGU9MDtEZTxGO0RlKyspQ2Uud29yZHNbRGVdPXRoaXMud29yZHNbRGVdO0NlLmxlbmd0aD1GfWlmKDAhPT1GKWlmKHRoaXMubGVuZ3RoPkYpZm9yKHRoaXMubGVuZ3RoLT1GLERlPTA7RGU8dGhp''@;'; put 'put ''cy5sZW5ndGg7RGUrKyl0aGlzLndvcmRzW0RlXT10aGlzLndvcmRzW0RlK0ZdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIFBlPTA7Zm9yKERlPXRoaXMubGVuZ3RoLTE7RGU+PTAmJigwIT09UGV8fERlPj1UKTtEZS0tKXt2YXIgUWU9MHx0aGlzLndvcmRzW0RlXTt0''@;'; put 'put ''aGlzLndvcmRzW0RlXT1QZTw8MjYtU3xRZT4+PlMsUGU9UWUmeWV9cmV0dXJuIENlJiYwIT09UGUmJihDZS53b3Jkc1tDZS5sZW5ndGgrK109UGUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJu''@;'; put 'put ''PWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oeCxQLFYpfSxOLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oeCl9LE4ucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlz''@;'; put 'put ''LmNsb25lKCkuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oeCl9LE4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHgpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlv''@;'; put 'put ''bih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PVZ8fCEodGhpcy53b3Jkc1tWXSYxPDxQKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFy''@;'; put 'put ''IFA9eCUyNixWPSh4LVApLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Vj90aGlzOigwIT09UCYmVisrLHRoaXMubGVuZ3RoPU1hdGgubWluKFYsdGhpcy5sZW5ndGgpLDAhPT1QJiYo''@;'; put 'put ''dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5QPDxQKSx0aGlzLnN0cmlwKCkpfSxOLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih4KX0sTi5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; put 'put ''IFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MD90aGlzLmlzdWJuKC14KTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPHg/KHRoaXMud29yZHNbMF09eC0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhp''@;'; put 'put ''cyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbih4KX0sTi5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHgpe3RoaXMud29yZHNbMF0rPXg7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXT49Njcx''@;'; put 'put ''MDg4NjQ7UCsrKXRoaXMud29yZHNbUF0tPTY3MTA4ODY0LFA9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbUCsxXT0xOnRoaXMud29yZHNbUCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxQKzEpLHRoaXN9LE4ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9u''@;'; put 'put ''KHgpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MClyZXR1cm4gdGhpcy5pYWRkbigteCk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0t''@;'; put 'put ''PXgsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPDA7UCsrKXRoaXMud29yZHNbUF0rPTY3MTA4ODY0LHRoaXMud29y''@;'; put 'put ''ZHNbUCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oeCl9LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vibih4KX0sTi5wcm90b3R5cGUuaWFi''@;'; put 'put ''cz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih4LFAsVil7dmFyIFQsUzt0aGlzLl9leHBhbmQoeC5sZW5n''@;'; put 'put ''dGgrVik7dmFyIHllPTA7Zm9yKFQ9MDtUPHgubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrVl0pK3llO3ZhciBDZT0oMHx4LndvcmRzW1RdKSpQO3llPSgoUy09NjcxMDg4NjMmQ2UpPj4yNiktKENlLzY3MTA4ODY0fDApLHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTfWZvcig7VDx0''@;'; put 'put ''aGlzLmxlbmd0aC1WO1QrKyl5ZT0oUz0oMHx0aGlzLndvcmRzW1QrVl0pK3llKT4+MjYsdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlM7aWYoMD09PXllKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKFkoLTE9PT15ZSkseWU9MCxUPTA7VDx0aGlzLmxlbmd0aDtUKyspeWU9KFM9LSgwfHRoaXMu''@;'; put 'put ''d29yZHNbVF0pK3llKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZTO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih4LFApe3ZhciBWLFQ9dGhpcy5jbG9uZSgpLFM9eCxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXTsw''@;'; put 'put ''IT0oVj0yNi10aGlzLl9jb3VudEJpdHMoRikpJiYoUz1TLnVzaGxuKFYpLFQuaXVzaGxuKFYpLEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdKTt2YXIgeWUsQ2U9VC5sZW5ndGgtUy5sZW5ndGg7aWYoIm1vZCIhPT1QKXsoeWU9bmV3IE4obnVsbCkpLmxlbmd0aD1DZSsxLHllLndvcmRzPW5ldyBB''@;'; put 'put ''cnJheSh5ZS5sZW5ndGgpO2Zvcih2YXIgRGU9MDtEZTx5ZS5sZW5ndGg7RGUrKyl5ZS53b3Jkc1tEZV09MH12YXIgUGU9VC5jbG9uZSgpLl9pc2hsbnN1Ym11bChTLDEsQ2UpOzA9PT1QZS5uZWdhdGl2ZSYmKFQ9UGUseWUmJih5ZS53b3Jkc1tDZV09MSkpO2Zvcih2YXIgUWU9Q2UtMTtRZT49''@;'; put 'put ''MDtRZS0tKXt2YXIgJGU9NjcxMDg4NjQqKDB8VC53b3Jkc1tTLmxlbmd0aCtRZV0pKygwfFQud29yZHNbUy5sZW5ndGgrUWUtMV0pO2ZvcigkZT1NYXRoLm1pbigkZS9GfDAsNjcxMDg4NjMpLFQuX2lzaGxuc3VibXVsKFMsJGUsUWUpOzAhPT1ULm5lZ2F0aXZlOykkZS0tLFQubmVnYXRpdmU9''@;'; put 'put ''MCxULl9pc2hsbnN1Ym11bChTLDEsUWUpLFQuaXNaZXJvKCl8fChULm5lZ2F0aXZlXj0xKTt5ZSYmKHllLndvcmRzW1FlXT0kZSl9cmV0dXJuIHllJiZ5ZS5zdHJpcCgpLFQuc3RyaXAoKSwiZGl2IiE9PVAmJjAhPT1WJiZULml1c2hybihWKSx7ZGl2OnllfHxudWxsLG1vZDpUfX0sTi5wcm90''@;'; put 'put ''b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgheC5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBOKDApLG1vZDpuZXcgTigwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgsUCksIm1vZCIhPT1QJiYo''@;'; put 'put ''VD1GLmRpdi5uZWcoKSksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5pYWRkKHgpKSx7ZGl2OlQsbW9kOlN9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmU/KEY9dGhpcy5kaXZtb2QoeC5uZWcoKSxQKSwibW9kIiE9PVAmJihUPUYuZGl2''@;'; put 'put ''Lm5lZygpKSx7ZGl2OlQsbW9kOkYubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmeC5uZWdhdGl2ZSk/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeC5uZWcoKSxQKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlzdWIoeCkpLHtkaXY6Ri5kaXYsbW9kOlN9KTp4''@;'; put 'put ''Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoeCk8MD97ZGl2Om5ldyBOKDApLG1vZDp0aGlzfToxPT09eC5sZW5ndGg/ImRpdiI9PT1QP3tkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PVA/e2RpdjpudWxsLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jk''@;'; put 'put ''c1swXSkpfTp7ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bmV3IE4odGhpcy5tb2RuKHgud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih4LFApO3ZhciBULFMsRn0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJkaXYiLCExKS5kaXZ9LE4u''@;'; put 'put ''cHJvdG90eXBlLm1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMSkubW9kfSxOLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCEwKS5tb2R9LE4ucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHgpe3ZhciBQ''@;'; put 'put ''PXRoaXMuZGl2bW9kKHgpO2lmKFAubW9kLmlzWmVybygpKXJldHVybiBQLmRpdjt2YXIgVj0wIT09UC5kaXYubmVnYXRpdmU/UC5tb2QuaXN1Yih4KTpQLm1vZCxUPXgudXNocm4oMSksUz14LmFuZGxuKDEpLEY9Vi5jbXAoVCk7cmV0dXJuIEY8MHx8MT09PVMmJjA9PT1GP1AuZGl2OjAhPT1Q''@;'; put 'put ''LmRpdi5uZWdhdGl2ZT9QLmRpdi5pc3VibigxKTpQLmRpdi5pYWRkbigxKX0sTi5wcm90b3R5cGUubW9kbj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9NjcxMDg4NjQleCxWPTAsVD10aGlzLmxlbmd0aC0xO1Q+PTA7VC0tKVY9KFAqVisoMHx0aGlzLndvcmRzW1RdKSkl''@;'; put 'put ''eDtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSs2NzEwODg2NCpQO3RoaXMud29yZHNbVl09VC94fDAsUD1UJXh9cmV0dXJuIHRo''@;'; put 'put ''aXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHgpfSxOLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5u''@;'; put 'put ''ZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVD1uZXcgTigxKSxTPW5ldyBOKDApLEY9bmV3IE4oMCkseWU9bmV3IE4oMSksQ2U9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpOylQLml1c2hybigxKSxWLml1c2hybigxKSwrK0NlO2Zvcih2YXIgRGU9Vi5jbG9uZSgpLFBlPVAu''@;'; put 'put ''Y2xvbmUoKTshUC5pc1plcm8oKTspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShQLndvcmRzWzBdJiRlKSYmUWU8MjY7KytRZSwkZTw8PTEpO2lmKFFlPjApZm9yKFAuaXVzaHJuKFFlKTtRZS0tID4wOykoVC5pc09kZCgpfHxTLmlzT2RkKCkpJiYoVC5pYWRkKERlKSxTLmlzdWIoUGUpKSxULml1''@;'; put 'put ''c2hybigxKSxTLml1c2hybigxKTtmb3IodmFyIGd0PTAsd3Q9MTswPT0oVi53b3Jkc1swXSZ3dCkmJmd0PDI2OysrZ3Qsd3Q8PD0xKTtpZihndD4wKWZvcihWLml1c2hybihndCk7Z3QtLSA+MDspKEYuaXNPZGQoKXx8eWUuaXNPZGQoKSkmJihGLmlhZGQoRGUpLHllLmlzdWIoUGUpKSxGLml1''@;'; put 'put ''c2hybigxKSx5ZS5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxULmlzdWIoRiksUy5pc3ViKHllKSk6KFYuaXN1YihQKSxGLmlzdWIoVCkseWUuaXN1YihTKSl9cmV0dXJue2E6RixiOnllLGdjZDpWLml1c2hsbihDZSl9fSxOLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oeCl7''@;'; put 'put ''WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBULFM9bmV3IE4oMSksRj1uZXcgTigwKSx5ZT1WLmNsb25lKCk7UC5jbXBuKDEpPjAmJlYuY21wbigxKT4wOyl7''@;'; put 'put ''Zm9yKHZhciBDZT0wLERlPTE7MD09KFAud29yZHNbMF0mRGUpJiZDZTwyNjsrK0NlLERlPDw9MSk7aWYoQ2U+MClmb3IoUC5pdXNocm4oQ2UpO0NlLS0gPjA7KVMuaXNPZGQoKSYmUy5pYWRkKHllKSxTLml1c2hybigxKTtmb3IodmFyIFBlPTAsUWU9MTswPT0oVi53b3Jkc1swXSZRZSkmJlBl''@;'; put 'put ''PDI2OysrUGUsUWU8PD0xKTtpZihQZT4wKWZvcihWLml1c2hybihQZSk7UGUtLSA+MDspRi5pc09kZCgpJiZGLmlhZGQoeWUpLEYuaXVzaHJuKDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksUy5pc3ViKEYpKTooVi5pc3ViKFApLEYuaXN1YihTKSl9cmV0dXJuKFQ9MD09PVAuY21wbigxKT9T''@;'; put 'put ''OkYpLmNtcG4oMCk8MCYmVC5pYWRkKHgpLFR9LE4ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih4KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB4LmFicygpO2lmKHguaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIFA9dGhpcy5jbG9uZSgpLFY9eC5jbG9uZSgpO1AubmVnYXRpdmU9MCxW''@;'; put 'put ''Lm5lZ2F0aXZlPTA7Zm9yKHZhciBUPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTtUKyspUC5pdXNocm4oMSksVi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO1AuaXNFdmVuKCk7KVAuaXVzaHJuKDEpO2Zvcig7Vi5pc0V2ZW4oKTspVi5pdXNocm4oMSk7dmFyIFM9UC5jbXAoVik7aWYoUzwwKXt2''@;'; put 'put ''YXIgRj1QO1A9VixWPUZ9ZWxzZSBpZigwPT09U3x8MD09PVYuY21wbigxKSlicmVhaztQLmlzdWIoVil9cmV0dXJuIFYuaXVzaGxuKFQpfSxOLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmVnY2QoeCkuYS51bW9kKHgpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy53b3Jkc1swXSZ4fSxOLnByb3RvdHlwZS5iaW5jbj1m''@;'; put 'put ''dW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCk7dmFyIFA9eCUyNixWPSh4LVApLzI2LFQ9MTw8UDtpZih0aGlzLmxlbmd0aDw9VilyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXXw9VCx0aGlzO2Zvcih2YXIgUz1ULEY9VjswIT09UyYmRjx0aGlzLmxlbmd0aDtG''@;'; put 'put ''Kyspe3ZhciB5ZT0wfHRoaXMud29yZHNbRl07Uz0oeWUrPVMpPj4+MjYsdGhpcy53b3Jkc1tGXT15ZSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1TJiYodGhpcy53b3Jkc1tGXT1TLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhp''@;'; put 'put ''cy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHgpe3ZhciBQLFY9eDwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhVilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmVilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+''@;'; put 'put ''MSlQPTE7ZWxzZXtWJiYoeD0teCksWSh4PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgVD0wfHRoaXMud29yZHNbMF07UD1UPT09eD8wOlQ8eD8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLmNtcD1mdW5jdGlvbih4KXtpZigwIT09''@;'; put 'put ''dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiAxO3ZhciBQPXRoaXMudWNtcCh4KTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHgp''@;'; put 'put ''e2lmKHRoaXMubGVuZ3RoPngubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHgubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9MHx0aGlzLndvcmRzW1ZdLFM9MHx4LndvcmRzW1ZdO2lmKFQhPT1TKXtUPFM/UD0tMTpUPlMm''@;'; put 'put ''JihQPTEpO2JyZWFrfX1yZXR1cm4gUH0sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5ndD1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0''@;'; put 'put ''aGlzLmNtcG4oeCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk+PTB9LE4ucHJvdG90eXBlLmx0bj1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUubHQ9ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNt''@;'; put 'put ''cCh4KX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPD0wfSxOLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oeCl9LE4u''@;'; put 'put ''cHJvdG90eXBlLmVxPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXAoeCl9LE4ucmVkPWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgZWUoeCl9LE4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24g''@;'; put 'put ''Y29udGV4dCIpLFkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikseC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3''@;'; put 'put ''aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sTi5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnJlZD14LHRoaXN9LE4ucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0''@;'; put 'put ''aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5h''@;'; put 'put ''ZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0''@;'; put 'put ''aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVk''@;'; put 'put ''LmlzdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0''@;'; put 'put ''aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQubXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdp''@;'; put 'put ''dGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLmltdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVy''@;'; put 'put ''aWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxO''@;'; put 'put ''LnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sTi5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBZKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LE4ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25s''@;'; put 'put ''eSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQmJiF4LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlz''@;'; put 'put ''KSx0aGlzLnJlZC5wb3codGhpcyx4KX07dmFyIEllPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gVGUoeCxQKXt0aGlzLm5hbWU9eCx0aGlzLnA9bmV3IE4oUCwxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE4oMSku''@;'; put 'put ''aXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIE1lKCl7VGUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlv''@;'; put 'put ''biBoZSgpe1RlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gTygpe1RlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZm''@;'; put 'put ''ZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe1RlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gZWUoeCl7aWYoInN0cmluZyI9PXR5cGVvZiB4KXt2YXIg''@;'; put 'put ''UD1OLl9wcmltZSh4KTt0aGlzLm09UC5wLHRoaXMucHJpbWU9UH1lbHNlIFkoeC5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT14LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBuZSh4KXtlZS5jYWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0''@;'; put 'put ''TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgTigxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWlu''@;'; put 'put ''dj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1UZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB4''@;'; put 'put ''LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSkseH0sVGUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oeCl7dmFyIFAsVj14O2Rve3RoaXMuc3BsaXQoVix0aGlzLnRtcCksUD0oVj0oVj10aGlzLmltdWxLKFYpKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hp''@;'; put 'put ''bGUoUD50aGlzLm4pO3ZhciBUPVA8dGhpcy5uPy0xOlYudWNtcCh0aGlzLnApO3JldHVybiAwPT09VD8oVi53b3Jkc1swXT0wLFYubGVuZ3RoPTEpOlQ+MD9WLmlzdWIodGhpcy5wKTp2b2lkIDAhPT1WLnN0cmlwP1Yuc3RyaXAoKTpWLl9zdHJpcCgpLFZ9LFRlLnByb3RvdHlwZS5zcGxpdD1m''@;'; put 'put ''dW5jdGlvbih4LFApe3guaXVzaHJuKHRoaXMubiwwLFApfSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaW11bCh0aGlzLmspfSxXKE1lLFRlKSxNZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9NDE5NDMwMyxUPU1hdGgubWluKHgubGVu''@;'; put 'put ''Z3RoLDkpLFM9MDtTPFQ7UysrKVAud29yZHNbU109eC53b3Jkc1tTXTtpZihQLmxlbmd0aD1ULHgubGVuZ3RoPD05KXJldHVybiB4LndvcmRzWzBdPTAsdm9pZCh4Lmxlbmd0aD0xKTt2YXIgRj14LndvcmRzWzldO2ZvcihQLndvcmRzW1AubGVuZ3RoKytdPUYmVixTPTEwO1M8eC5sZW5ndGg7''@;'; put 'put ''UysrKXt2YXIgeWU9MHx4LndvcmRzW1NdO3gud29yZHNbUy0xMF09KHllJlYpPDw0fEY+Pj4yMixGPXllfXgud29yZHNbUy0xMF09Rj4+Pj0yMix4Lmxlbmd0aC09MD09PUYmJngubGVuZ3RoPjEwPzEwOjl9LE1lLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXt4LndvcmRzW3gubGVuZ3Ro''@;'; put 'put ''XT0wLHgud29yZHNbeC5sZW5ndGgrMV09MCx4Lmxlbmd0aCs9Mjtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTB8eC53b3Jkc1tWXTt4LndvcmRzW1ZdPTY3MTA4ODYzJihQKz05NzcqVCksUD02NCpUKyhQLzY3MTA4ODY0fDApfXJldHVybiAwPT09eC53b3Jkc1t4Lmxl''@;'; put 'put ''bmd0aC0xXSYmKHgubGVuZ3RoLS0sMD09PXgud29yZHNbeC5sZW5ndGgtMV0mJngubGVuZ3RoLS0pLHh9LFcoaGUsVGUpLFcoTyxUZSksVyh6LFRlKSx6LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTE5KigwfHgud29y''@;'; put 'put ''ZHNbVl0pK1AsUz02NzEwODg2MyZUO1Q+Pj49MjYseC53b3Jkc1tWXT1TLFA9VH1yZXR1cm4gMCE9PVAmJih4LndvcmRzW3gubGVuZ3RoKytdPVApLHh9LE4uX3ByaW1lPWZ1bmN0aW9uKHgpe2lmKEllW3hdKXJldHVybiBJZVt4XTt2YXIgUDtpZigiazI1NiI9PT14KVA9bmV3IE1lO2Vsc2Ug''@;'; put 'put ''aWYoInAyMjQiPT09eClQPW5ldyBoZTtlbHNlIGlmKCJwMTkyIj09PXgpUD1uZXcgTztlbHNle2lmKCJwMjU1MTkiIT09eCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit4KTtQPW5ldyB6fXJldHVybiBJZVt4XT1QLFB9LGVlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih4''@;'; put 'put ''KXtZKDA9PT14Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sZWUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHgsUCl7WSgwPT0oeC5uZWdhdGl2ZXxQLm5lZ2F0aXZlKSwicmVk''@;'; put 'put ''IHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkJiZ4LnJlZD09PVAucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGVlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZSh4KS5fZm9yY2VS''@;'; put 'put ''ZWQodGhpcyk6eC51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHgpe3JldHVybiB4LmlzWmVybygpP3guY2xvbmUoKTp0aGlzLm0uc3ViKHgpLl9mb3JjZVJlZCh0aGlzKX0sZWUucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4LFApe3RoaXMu''@;'; put 'put ''X3ZlcmlmeTIoeCxQKTt2YXIgVj14LmFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LGVlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaWFkZChQKTtyZXR1cm4gVi5j''@;'; put 'put ''bXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sZWUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LnN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUu''@;'; put 'put ''aXN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlzdWIoUCk7cmV0dXJuIFYuY21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxWfSxlZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoeCksdGhpcy5pbW9kKHgudXNobG4o''@;'; put 'put ''UCkpfSxlZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHguaW11bChQKSl9LGVlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4Lm11bChQKSl9LGVl''@;'; put 'put ''LnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltdWwoeCx4LmNsb25lKCkpfSxlZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLm11bCh4LHgpfSxlZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbih4KXtpZih4LmlzWmVybygpKXJldHVybiB4LmNs''@;'; put 'put ''b25lKCk7dmFyIFA9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUCUyPT0xKSwzPT09UCl7dmFyIFY9dGhpcy5tLmFkZChuZXcgTigxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh4LFYpfWZvcih2YXIgVD10aGlzLm0uc3VibigxKSxTPTA7IVQuaXNaZXJvKCkmJjA9PT1ULmFuZGxuKDEpOylT''@;'; put 'put ''KyssVC5pdXNocm4oMSk7WSghVC5pc1plcm8oKSk7dmFyIEY9bmV3IE4oMSkudG9SZWQodGhpcykseWU9Ri5yZWROZWcoKSxDZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksRGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihEZT1uZXcgTigyKkRlKkRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5w''@;'; put 'put ''b3coRGUsQ2UpLmNtcCh5ZSk7KURlLnJlZElBZGQoeWUpO2Zvcih2YXIgUGU9dGhpcy5wb3coRGUsVCksUWU9dGhpcy5wb3coeCxULmFkZG4oMSkuaXVzaHJuKDEpKSwkZT10aGlzLnBvdyh4LFQpLGd0PVM7MCE9PSRlLmNtcChGKTspe2Zvcih2YXIgd3Q9JGUsbXQ9MDswIT09d3QuY21wKEYp''@;'; put 'put ''O210Kyspd3Q9d3QucmVkU3FyKCk7WShtdDxndCk7dmFyIHZ0PXRoaXMucG93KFBlLG5ldyBOKDEpLml1c2hsbihndC1tdC0xKSk7UWU9UWUucmVkTXVsKHZ0KSxQZT12dC5yZWRTcXIoKSwkZT0kZS5yZWRNdWwoUGUpLGd0PW10fXJldHVybiBRZX0sZWUucHJvdG90eXBlLmludm09ZnVuY3Rp''@;'; put 'put ''b24oeCl7dmFyIFA9eC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVAubmVnYXRpdmU/KFAubmVnYXRpdmU9MCx0aGlzLmltb2QoUCkucmVkTmVnKCkpOnRoaXMuaW1vZChQKX0sZWUucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4LFApe2lmKFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDEpLnRv''@;'; put 'put ''UmVkKHRoaXMpO2lmKDA9PT1QLmNtcG4oMSkpcmV0dXJuIHguY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXkoMTYpO1ZbMF09bmV3IE4oMSkudG9SZWQodGhpcyksVlsxXT14O2Zvcih2YXIgVD0yO1Q8Vi5sZW5ndGg7VCsrKVZbVF09dGhpcy5tdWwoVltULTFdLHgpO3ZhciBTPVZbMF0sRj0wLHll''@;'; put 'put ''PTAsQ2U9UC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PUNlJiYoQ2U9MjYpLFQ9UC5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBEZT1QLndvcmRzW1RdLFBlPUNlLTE7UGU+PTA7UGUtLSl7dmFyIFFlPURlPj5QZSYxO1MhPT1WWzBdJiYoUz10aGlzLnNxcihTKSksMCE9PVFlfHwwIT09Rj8o''@;'; put 'put ''Rjw8PTEsRnw9UWUsKDQ9PSsreWV8fDA9PT1UJiYwPT09UGUpJiYoUz10aGlzLm11bChTLFZbRl0pLHllPTAsRj0wKSk6eWU9MH1DZT0yNn1yZXR1cm4gU30sZWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXt2YXIgUD14LnVtb2QodGhpcy5tKTtyZXR1cm4gUD09PXg/UC5jbG9u''@;'; put 'put ''ZSgpOlB9LGVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD14LmNsb25lKCk7cmV0dXJuIFAucmVkPW51bGwsUH0sTi5tb250PWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgbmUoeCl9LFcobmUsZWUpLG5lLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuaW1vZCh4LnVzaGxuKHRoaXMuc2hpZnQpKX0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuaW1vZCh4Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxuZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe2lmKHgu''@;'; put 'put ''aXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIHgud29yZHNbMF09MCx4Lmxlbmd0aD0xLHg7dmFyIFY9eC5pbXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hp''@;'; put 'put ''ZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTwwJiYoRj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtpZih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiBu''@;'; put 'put ''ZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIFY9eC5tdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0w''@;'; put 'put ''P0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0o''@;'; put 'put ''VT1qLm5tZChVKSx0aGlzKX0sNjk0ODooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1RO3JlLnZlcnNpb249aig4NTk3KS5pOCxyZS51dGlscz1qKDk1MykscmUucmFuZD1qKDk5MzEpLHJlLmN1cnZlPWooODI1NCkscmUuY3VydmVzPWooNTQyNykscmUuZWM9aig3OTU0KSxyZS5lZGRz''@;'; put 'put ''YT1qKDU5ODApfSw0OTE4OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooMzc4NSksYWU9aig5NTMpLFk9YWUuZ2V0TkFGLFc9YWUuZ2V0SlNGLE49YWUuYXNzZXJ0O2Z1bmN0aW9uIHRlKEosc2Upe3RoaXMudHlwZT1KLHRoaXMucD1uZXcgcmUoc2UucCwxNiksdGhpcy5yZWQ9c2Uu''@;'; put 'put ''cHJpbWU/cmUucmVkKHNlLnByaW1lKTpyZS5tb250KHRoaXMucCksdGhpcy56ZXJvPW5ldyByZSgwKS50b1JlZCh0aGlzLnJlZCksdGhpcy5vbmU9bmV3IHJlKDEpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnR3bz1uZXcgcmUoMikudG9SZWQodGhpcy5yZWQpLHRoaXMubj1zZS5uJiZuZXcgcmUo''@;'; put 'put ''c2UubiwxNiksdGhpcy5nPXNlLmcmJnRoaXMucG9pbnRGcm9tSlNPTihzZS5nLHNlLmdSZWQpLHRoaXMuX3duYWZUMT1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQyPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDM9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUND1uZXcgQXJyYXkoNCksdGhpcy5f''@;'; put 'put ''Yml0TGVuZ3RoPXRoaXMubj90aGlzLm4uYml0TGVuZ3RoKCk6MDt2YXIgb2U9dGhpcy5uJiZ0aGlzLnAuZGl2KHRoaXMubik7IW9lfHxvZS5jbXBuKDEwMCk+MD90aGlzLnJlZE49bnVsbDoodGhpcy5fbWF4d2VsbFRyaWNrPSEwLHRoaXMucmVkTj10aGlzLm4udG9SZWQodGhpcy5yZWQpKX1m''@;'; put 'put ''dW5jdGlvbiBLKEosc2Upe3RoaXMuY3VydmU9Six0aGlzLnR5cGU9c2UsdGhpcy5wcmVjb21wdXRlZD1udWxsfVUuZXhwb3J0cz10ZSx0ZS5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSx0ZS5wcm90b3R5cGUudmFsaWRhdGU9''@;'; put 'put ''ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSx0ZS5wcm90b3R5cGUuX2ZpeGVkTmFmTXVsPWZ1bmN0aW9uKEosc2Upe04oSi5wcmVjb21wdXRlZCk7dmFyIG9lPUouX2dldERvdWJsZXMoKSxjZT1ZKHNlLDEsdGhpcy5fYml0TGVuZ3RoKSxkZT0oMTw8b2Uu''@;'; put 'put ''c3RlcCsxKS0ob2Uuc3RlcCUyPT0wPzI6MSk7ZGUvPTM7dmFyIHZlLEFlLGtlPVtdO2Zvcih2ZT0wO3ZlPGNlLmxlbmd0aDt2ZSs9b2Uuc3RlcCl7QWU9MDtmb3IodmFyIFNlPXZlK29lLnN0ZXAtMTtTZT49dmU7U2UtLSlBZT0oQWU8PDEpK2NlW1NlXTtrZS5wdXNoKEFlKX1mb3IodmFyIEll''@;'; put 'put ''PXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxUZT10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksTWU9ZGU7TWU+MDtNZS0tKXtmb3IodmU9MDt2ZTxrZS5sZW5ndGg7dmUrKykoQWU9a2VbdmVdKT09PU1lP1RlPVRlLm1peGVkQWRkKG9lLnBvaW50c1t2ZV0pOkFlPT09LU1lJiYoVGU9''@;'; put 'put ''VGUubWl4ZWRBZGQob2UucG9pbnRzW3ZlXS5uZWcoKSkpO0llPUllLmFkZChUZSl9cmV0dXJuIEllLnRvUCgpfSx0ZS5wcm90b3R5cGUuX3duYWZNdWw9ZnVuY3Rpb24oSixzZSl7Zm9yKHZhciBvZT00LGNlPUouX2dldE5BRlBvaW50cyhvZSksZGU9Y2UucG9pbnRzLHZlPVkoc2Usb2U9Y2Uu''@;'; put 'put ''d25kLHRoaXMuX2JpdExlbmd0aCksQWU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLGtlPXZlLmxlbmd0aC0xO2tlPj0wO2tlLS0pe2Zvcih2YXIgU2U9MDtrZT49MCYmMD09PXZlW2tlXTtrZS0tKVNlKys7aWYoa2U+PTAmJlNlKyssQWU9QWUuZGJscChTZSksa2U8MClicmVhazt2YXIg''@;'; put 'put ''SWU9dmVba2VdO04oMCE9PUllKSxBZT0iYWZmaW5lIj09PUoudHlwZT9BZS5taXhlZEFkZChJZT4wP2RlW0llLTE+PjFdOmRlWy1JZS0xPj4xXS5uZWcoKSk6QWUuYWRkKEllPjA/ZGVbSWUtMT4+MV06ZGVbLUllLTE+PjFdLm5lZygpKX1yZXR1cm4iYWZmaW5lIj09PUoudHlwZT9BZS50b1Ao''@;'; put 'put ''KTpBZX0sdGUucHJvdG90eXBlLl93bmFmTXVsQWRkPWZ1bmN0aW9uKEosc2Usb2UsY2UsZGUpe3ZhciB2ZSxBZSxrZSxTZT10aGlzLl93bmFmVDEsSWU9dGhpcy5fd25hZlQyLFRlPXRoaXMuX3duYWZUMyxNZT0wO2Zvcih2ZT0wO3ZlPGNlO3ZlKyspe3ZhciBoZT0oa2U9c2VbdmVdKS5fZ2V0''@;'; put 'put ''TkFGUG9pbnRzKEopO1NlW3ZlXT1oZS53bmQsSWVbdmVdPWhlLnBvaW50c31mb3IodmU9Y2UtMTt2ZT49MTt2ZS09Mil7dmFyIE89dmUtMSx6PXZlO2lmKDE9PT1TZVtPXSYmMT09PVNlW3pdKXt2YXIgZWU9W3NlW09dLG51bGwsbnVsbCxzZVt6XV07MD09PXNlW09dLnkuY21wKHNlW3pdLnkp''@;'; put 'put ''PyhlZVsxXT1zZVtPXS5hZGQoc2Vbel0pLGVlWzJdPXNlW09dLnRvSigpLm1peGVkQWRkKHNlW3pdLm5lZygpKSk6MD09PXNlW09dLnkuY21wKHNlW3pdLnkucmVkTmVnKCkpPyhlZVsxXT1zZVtPXS50b0ooKS5taXhlZEFkZChzZVt6XSksZWVbMl09c2VbT10uYWRkKHNlW3pdLm5lZygpKSk6''@;'; put 'put ''KGVlWzFdPXNlW09dLnRvSigpLm1peGVkQWRkKHNlW3pdKSxlZVsyXT1zZVtPXS50b0ooKS5taXhlZEFkZChzZVt6XS5uZWcoKSkpO3ZhciBuZT1bLTMsLTEsLTUsLTcsMCw3LDUsMSwzXSx4PVcob2VbT10sb2Vbel0pO2ZvcihNZT1NYXRoLm1heCh4WzBdLmxlbmd0aCxNZSksVGVbT109bmV3''@;'; put 'put ''IEFycmF5KE1lKSxUZVt6XT1uZXcgQXJyYXkoTWUpLEFlPTA7QWU8TWU7QWUrKylUZVtPXVtBZV09bmVbMyooMSsoMHx4WzBdW0FlXSkpKygxKygwfHhbMV1bQWVdKSldLFRlW3pdW0FlXT0wLEllW09dPWVlfWVsc2UgVGVbT109WShvZVtPXSxTZVtPXSx0aGlzLl9iaXRMZW5ndGgpLFRlW3pd''@;'; put 'put ''PVkob2Vbel0sU2Vbel0sdGhpcy5fYml0TGVuZ3RoKSxNZT1NYXRoLm1heChUZVtPXS5sZW5ndGgsTWUpLE1lPU1hdGgubWF4KFRlW3pdLmxlbmd0aCxNZSl9dmFyIFQ9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLFM9dGhpcy5fd25hZlQ0O2Zvcih2ZT1NZTt2ZT49MDt2ZS0tKXtmb3Io''@;'; put 'put ''dmFyIEY9MDt2ZT49MDspe3ZhciB5ZT0hMDtmb3IoQWU9MDtBZTxjZTtBZSsrKVNbQWVdPTB8VGVbQWVdW3ZlXSwwIT09U1tBZV0mJih5ZT0hMSk7aWYoIXllKWJyZWFrO0YrKyx2ZS0tfWlmKHZlPj0wJiZGKyssVD1ULmRibHAoRiksdmU8MClicmVhaztmb3IoQWU9MDtBZTxjZTtBZSsrKXt2''@;'; put 'put ''YXIgQ2U9U1tBZV07MCE9PUNlJiYoQ2U+MD9rZT1JZVtBZV1bQ2UtMT4+MV06Q2U8MCYmKGtlPUllW0FlXVstQ2UtMT4+MV0ubmVnKCkpLFQ9ImFmZmluZSI9PT1rZS50eXBlP1QubWl4ZWRBZGQoa2UpOlQuYWRkKGtlKSl9fWZvcih2ZT0wO3ZlPGNlO3ZlKyspSWVbdmVdPW51bGw7cmV0dXJu''@;'; put 'put ''IGRlP1Q6VC50b1AoKX0sdGUuQmFzZVBvaW50PUssSy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxLLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnZlLnZhbGlkYXRlKHRoaXMpfSx0ZS5wcm90''@;'; put 'put ''b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oSixzZSl7Sj1hZS50b0FycmF5KEosc2UpO3ZhciBvZT10aGlzLnAuYnl0ZUxlbmd0aCgpO2lmKCg0PT09SlswXXx8Nj09PUpbMF18fDc9PT1KWzBdKSYmSi5sZW5ndGgtMT09MipvZSlyZXR1cm4gNj09PUpbMF0/TihKW0oubGVuZ3RoLTFdJTI9''@;'; put 'put ''PTApOjc9PT1KWzBdJiZOKEpbSi5sZW5ndGgtMV0lMj09MSksdGhpcy5wb2ludChKLnNsaWNlKDEsMStvZSksSi5zbGljZSgxK29lLDErMipvZSkpO2lmKCgyPT09SlswXXx8Mz09PUpbMF0pJiZKLmxlbmd0aC0xPT09b2UpcmV0dXJuIHRoaXMucG9pbnRGcm9tWChKLnNsaWNlKDEsMStvZSks''@;'; put 'put ''Mz09PUpbMF0pO3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBwb2ludCBmb3JtYXQiKX0sSy5wcm90b3R5cGUuZW5jb2RlQ29tcHJlc3NlZD1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5lbmNvZGUoSiwhMCl9LEsucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24oSil7dmFyIHNlPXRoaXMuY3Vy''@;'; put 'put ''dmUucC5ieXRlTGVuZ3RoKCksb2U9dGhpcy5nZXRYKCkudG9BcnJheSgiYmUiLHNlKTtyZXR1cm4gSj9bdGhpcy5nZXRZKCkuaXNFdmVuKCk/MjozXS5jb25jYXQob2UpOls0XS5jb25jYXQob2UsdGhpcy5nZXRZKCkudG9BcnJheSgiYmUiLHNlKSl9LEsucHJvdG90eXBlLmVuY29kZT1mdW5j''@;'; put 'put ''dGlvbihKLHNlKXtyZXR1cm4gYWUuZW5jb2RlKHRoaXMuX2VuY29kZShzZSksSil9LEsucHJvdG90eXBlLnByZWNvbXB1dGU9ZnVuY3Rpb24oSil7aWYodGhpcy5wcmVjb21wdXRlZClyZXR1cm4gdGhpczt2YXIgc2U9e2RvdWJsZXM6bnVsbCxuYWY6bnVsbCxiZXRhOm51bGx9O3JldHVybiBz''@;'; put 'put ''ZS5uYWY9dGhpcy5fZ2V0TkFGUG9pbnRzKDgpLHNlLmRvdWJsZXM9dGhpcy5fZ2V0RG91Ymxlcyg0LEopLHNlLmJldGE9dGhpcy5fZ2V0QmV0YSgpLHRoaXMucHJlY29tcHV0ZWQ9c2UsdGhpc30sSy5wcm90b3R5cGUuX2hhc0RvdWJsZXM9ZnVuY3Rpb24oSil7aWYoIXRoaXMucHJlY29tcHV0''@;'; put 'put ''ZWQpcmV0dXJuITE7dmFyIHNlPXRoaXMucHJlY29tcHV0ZWQuZG91YmxlcztyZXR1cm4hIXNlJiZzZS5wb2ludHMubGVuZ3RoPj1NYXRoLmNlaWwoKEouYml0TGVuZ3RoKCkrMSkvc2Uuc3RlcCl9LEsucHJvdG90eXBlLl9nZXREb3VibGVzPWZ1bmN0aW9uKEosc2Upe2lmKHRoaXMucHJlY29t''@;'; put 'put ''cHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO2Zvcih2YXIgb2U9W3RoaXNdLGNlPXRoaXMsZGU9MDtkZTxzZTtkZSs9Sil7Zm9yKHZhciB2ZT0wO3ZlPEo7dmUrKyljZT1jZS5kYmwoKTtvZS5wdXNoKGNlKX1yZXR1cm57c3Rl''@;'; put 'put ''cDpKLHBvaW50czpvZX19LEsucHJvdG90eXBlLl9nZXROQUZQb2ludHM9ZnVuY3Rpb24oSil7aWYodGhpcy5wcmVjb21wdXRlZCYmdGhpcy5wcmVjb21wdXRlZC5uYWYpcmV0dXJuIHRoaXMucHJlY29tcHV0ZWQubmFmO2Zvcih2YXIgc2U9W3RoaXNdLG9lPSgxPDxKKS0xLGNlPTE9PT1vZT9u''@;'; put 'put ''dWxsOnRoaXMuZGJsKCksZGU9MTtkZTxvZTtkZSsrKXNlW2RlXT1zZVtkZS0xXS5hZGQoY2UpO3JldHVybnt3bmQ6Sixwb2ludHM6c2V9fSxLLnByb3RvdHlwZS5fZ2V0QmV0YT1mdW5jdGlvbigpe3JldHVybiBudWxsfSxLLnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKEope2Zvcih2YXIgc2U9''@;'; put 'put ''dGhpcyxvZT0wO29lPEo7b2UrKylzZT1zZS5kYmwoKTtyZXR1cm4gc2V9fSwxMTM4OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooOTUzKSxhZT1qKDM3ODUpLFk9aig1NzE3KSxXPWooNDkxOCksTj1yZS5hc3NlcnQ7ZnVuY3Rpb24gdGUoSil7dGhpcy50d2lzdGVkPTEhPSgwfEou''@;'; put 'put ''YSksdGhpcy5tT25lQT10aGlzLnR3aXN0ZWQmJi0xPT0oMHxKLmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxXLmNhbGwodGhpcywiZWR3YXJkcyIsSiksdGhpcy5hPW5ldyBhZShKLmEsMTYpLnVtb2QodGhpcy5yZWQubSksdGhpcy5hPXRoaXMuYS50b1JlZCh0aGlzLnJlZCksdGhpcy5j''@;'; put 'put ''PW5ldyBhZShKLmMsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmMyPXRoaXMuYy5yZWRTcXIoKSx0aGlzLmQ9bmV3IGFlKEouZCwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuZGQ9dGhpcy5kLnJlZEFkZCh0aGlzLmQpLE4oIXRoaXMudHdpc3RlZHx8MD09PXRoaXMuYy5mcm9tUmVkKCkuY21w''@;'; put 'put ''bigxKSksdGhpcy5vbmVDPTE9PSgwfEouYyl9ZnVuY3Rpb24gSyhKLHNlLG9lLGNlLGRlKXtXLkJhc2VQb2ludC5jYWxsKHRoaXMsSiwicHJvamVjdGl2ZSIpLG51bGw9PT1zZSYmbnVsbD09PW9lJiZudWxsPT09Y2U/KHRoaXMueD10aGlzLmN1cnZlLnplcm8sdGhpcy55PXRoaXMuY3VydmUu''@;'; put 'put ''b25lLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzLnQ9dGhpcy5jdXJ2ZS56ZXJvLHRoaXMuek9uZT0hMCk6KHRoaXMueD1uZXcgYWUoc2UsMTYpLHRoaXMueT1uZXcgYWUob2UsMTYpLHRoaXMuej1jZT9uZXcgYWUoY2UsMTYpOnRoaXMuY3VydmUub25lLHRoaXMudD1kZSYmbmV3IGFlKGRl''@;'; put 'put ''LDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMuej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnQmJiF0''@;'; put 'put ''aGlzLnQucmVkJiYodGhpcy50PXRoaXMudC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZSx0aGlzLmN1cnZlLmV4dGVuZGVkJiYhdGhpcy50JiYodGhpcy50PXRoaXMueC5yZWRNdWwodGhpcy55KSx0aGlzLnpPbmV8fCh0aGlzLnQ9dGhp''@;'; put 'put ''cy50LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSkpKX1ZKHRlLFcpLFUuZXhwb3J0cz10ZSx0ZS5wcm90b3R5cGUuX211bEE9ZnVuY3Rpb24oSil7cmV0dXJuIHRoaXMubU9uZUE/Si5yZWROZWcoKTp0aGlzLmEucmVkTXVsKEopfSx0ZS5wcm90b3R5cGUuX211bEM9ZnVuY3Rpb24oSil7cmV0''@;'; put 'put ''dXJuIHRoaXMub25lQz9KOnRoaXMuYy5yZWRNdWwoSil9LHRlLnByb3RvdHlwZS5qcG9pbnQ9ZnVuY3Rpb24oSixzZSxvZSxjZSl7cmV0dXJuIHRoaXMucG9pbnQoSixzZSxvZSxjZSl9LHRlLnByb3RvdHlwZS5wb2ludEZyb21YPWZ1bmN0aW9uKEosc2UpeyhKPW5ldyBhZShKLDE2KSkucmVk''@;'; put 'put ''fHwoSj1KLnRvUmVkKHRoaXMucmVkKSk7dmFyIG9lPUoucmVkU3FyKCksY2U9dGhpcy5jMi5yZWRTdWIodGhpcy5hLnJlZE11bChvZSkpLGRlPXRoaXMub25lLnJlZFN1Yih0aGlzLmMyLnJlZE11bCh0aGlzLmQpLnJlZE11bChvZSkpLHZlPWNlLnJlZE11bChkZS5yZWRJbnZtKCkpLEFlPXZl''@;'; put 'put ''LnJlZFNxcnQoKTtpZigwIT09QWUucmVkU3FyKCkucmVkU3ViKHZlKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTt2YXIga2U9QWUuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKHNlJiYha2V8fCFzZSYma2UpJiYoQWU9QWUucmVkTmVnKCkpLHRoaXMu''@;'; put 'put ''cG9pbnQoSixBZSl9LHRlLnByb3RvdHlwZS5wb2ludEZyb21ZPWZ1bmN0aW9uKEosc2UpeyhKPW5ldyBhZShKLDE2KSkucmVkfHwoSj1KLnRvUmVkKHRoaXMucmVkKSk7dmFyIG9lPUoucmVkU3FyKCksY2U9b2UucmVkU3ViKHRoaXMuYzIpLGRlPW9lLnJlZE11bCh0aGlzLmQpLnJlZE11bCh0''@;'; put 'put ''aGlzLmMyKS5yZWRTdWIodGhpcy5hKSx2ZT1jZS5yZWRNdWwoZGUucmVkSW52bSgpKTtpZigwPT09dmUuY21wKHRoaXMuemVybykpe2lmKHNlKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3JldHVybiB0aGlzLnBvaW50KHRoaXMuemVybyxKKX12YXIgQWU9dmUucmVkU3FydCgp''@;'; put 'put ''O2lmKDAhPT1BZS5yZWRTcXIoKS5yZWRTdWIodmUpLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3JldHVybiBBZS5mcm9tUmVkKCkuaXNPZGQoKSE9PXNlJiYoQWU9QWUucmVkTmVnKCkpLHRoaXMucG9pbnQoQWUsSil9LHRlLnByb3RvdHlwZS52YWxp''@;'; put 'put ''ZGF0ZT1mdW5jdGlvbihKKXtpZihKLmlzSW5maW5pdHkoKSlyZXR1cm4hMDtKLm5vcm1hbGl6ZSgpO3ZhciBzZT1KLngucmVkU3FyKCksb2U9Si55LnJlZFNxcigpLGNlPXNlLnJlZE11bCh0aGlzLmEpLnJlZEFkZChvZSksZGU9dGhpcy5jMi5yZWRNdWwodGhpcy5vbmUucmVkQWRkKHRoaXMu''@;'; put 'put ''ZC5yZWRNdWwoc2UpLnJlZE11bChvZSkpKTtyZXR1cm4gMD09PWNlLmNtcChkZSl9LFkoSyxXLkJhc2VQb2ludCksdGUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oSil7cmV0dXJuIEsuZnJvbUpTT04odGhpcyxKKX0sdGUucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKEosc2Us''@;'; put 'put ''b2UsY2Upe3JldHVybiBuZXcgSyh0aGlzLEosc2Usb2UsY2UpfSxLLmZyb21KU09OPWZ1bmN0aW9uKEosc2Upe3JldHVybiBuZXcgSyhKLHNlWzBdLHNlWzFdLHNlWzJdKX0sSy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50''@;'; put 'put ''IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxLLnByb3RvdHlwZS5pc0luZmluaXR5''@;'; put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnguY21wbigwKSYmKDA9PT10aGlzLnkuY21wKHRoaXMueil8fHRoaXMuek9uZSYmMD09PXRoaXMueS5jbXAodGhpcy5jdXJ2ZS5jKSl9LEsucHJvdG90eXBlLl9leHREYmw9ZnVuY3Rpb24oKXt2YXIgSj10aGlzLngucmVkU3FyKCksc2U9dGhp''@;'; put 'put ''cy55LnJlZFNxcigpLG9lPXRoaXMuei5yZWRTcXIoKTtvZT1vZS5yZWRJQWRkKG9lKTt2YXIgY2U9dGhpcy5jdXJ2ZS5fbXVsQShKKSxkZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCkucmVkSVN1YihKKS5yZWRJU3ViKHNlKSx2ZT1jZS5yZWRBZGQoc2UpLEFlPXZlLnJlZFN1Yihv''@;'; put 'put ''ZSksa2U9Y2UucmVkU3ViKHNlKSxTZT1kZS5yZWRNdWwoQWUpLEllPXZlLnJlZE11bChrZSksVGU9ZGUucmVkTXVsKGtlKSxNZT1BZS5yZWRNdWwodmUpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KFNlLEllLE1lLFRlKX0sSy5wcm90b3R5cGUuX3Byb2pEYmw9ZnVuY3Rpb24oKXt2YXIgSixz''@;'; put 'put ''ZSxvZSxjZSxkZSx2ZSxBZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCksa2U9dGhpcy54LnJlZFNxcigpLFNlPXRoaXMueS5yZWRTcXIoKTtpZih0aGlzLmN1cnZlLnR3aXN0ZWQpe3ZhciBJZT0oY2U9dGhpcy5jdXJ2ZS5fbXVsQShrZSkpLnJlZEFkZChTZSk7dGhpcy56T25lPyhK''@;'; put 'put ''PUFlLnJlZFN1YihrZSkucmVkU3ViKFNlKS5yZWRNdWwoSWUucmVkU3ViKHRoaXMuY3VydmUudHdvKSksc2U9SWUucmVkTXVsKGNlLnJlZFN1YihTZSkpLG9lPUllLnJlZFNxcigpLnJlZFN1YihJZSkucmVkU3ViKEllKSk6KGRlPXRoaXMuei5yZWRTcXIoKSx2ZT1JZS5yZWRTdWIoZGUpLnJl''@;'; put 'put ''ZElTdWIoZGUpLEo9QWUucmVkU3ViKGtlKS5yZWRJU3ViKFNlKS5yZWRNdWwodmUpLHNlPUllLnJlZE11bChjZS5yZWRTdWIoU2UpKSxvZT1JZS5yZWRNdWwodmUpKX1lbHNlIGNlPWtlLnJlZEFkZChTZSksZGU9dGhpcy5jdXJ2ZS5fbXVsQyh0aGlzLnopLnJlZFNxcigpLHZlPWNlLnJlZFN1''@;'; put 'put ''YihkZSkucmVkU3ViKGRlKSxKPXRoaXMuY3VydmUuX211bEMoQWUucmVkSVN1YihjZSkpLnJlZE11bCh2ZSksc2U9dGhpcy5jdXJ2ZS5fbXVsQyhjZSkucmVkTXVsKGtlLnJlZElTdWIoU2UpKSxvZT1jZS5yZWRNdWwodmUpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEosc2Usb2UpfSxLLnBy''@;'; put 'put ''b3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dERibCgpOnRoaXMuX3Byb2pEYmwoKX0sSy5wcm90b3R5cGUuX2V4dEFkZD1mdW5jdGlvbihKKXt2YXIgc2U9dGhpcy55LnJlZFN1Yih0aGlzLngp''@;'; put 'put ''LnJlZE11bChKLnkucmVkU3ViKEoueCkpLG9lPXRoaXMueS5yZWRBZGQodGhpcy54KS5yZWRNdWwoSi55LnJlZEFkZChKLngpKSxjZT10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bChKLnQpLGRlPXRoaXMuei5yZWRNdWwoSi56LnJlZEFkZChKLnopKSx2ZT1vZS5yZWRTdWIo''@;'; put 'put ''c2UpLEFlPWRlLnJlZFN1YihjZSksa2U9ZGUucmVkQWRkKGNlKSxTZT1vZS5yZWRBZGQoc2UpLEllPXZlLnJlZE11bChBZSksVGU9a2UucmVkTXVsKFNlKSxNZT12ZS5yZWRNdWwoU2UpLGhlPUFlLnJlZE11bChrZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoSWUsVGUsaGUsTWUpfSxLLnBy''@;'; put 'put ''b3RvdHlwZS5fcHJvakFkZD1mdW5jdGlvbihKKXt2YXIgc2Usb2UsY2U9dGhpcy56LnJlZE11bChKLnopLGRlPWNlLnJlZFNxcigpLHZlPXRoaXMueC5yZWRNdWwoSi54KSxBZT10aGlzLnkucmVkTXVsKEoueSksa2U9dGhpcy5jdXJ2ZS5kLnJlZE11bCh2ZSkucmVkTXVsKEFlKSxTZT1kZS5y''@;'; put 'put ''ZWRTdWIoa2UpLEllPWRlLnJlZEFkZChrZSksVGU9dGhpcy54LnJlZEFkZCh0aGlzLnkpLnJlZE11bChKLngucmVkQWRkKEoueSkpLnJlZElTdWIodmUpLnJlZElTdWIoQWUpLE1lPWNlLnJlZE11bChTZSkucmVkTXVsKFRlKTtyZXR1cm4gdGhpcy5jdXJ2ZS50d2lzdGVkPyhzZT1jZS5yZWRN''@;'; put 'put ''dWwoSWUpLnJlZE11bChBZS5yZWRTdWIodGhpcy5jdXJ2ZS5fbXVsQSh2ZSkpKSxvZT1TZS5yZWRNdWwoSWUpKTooc2U9Y2UucmVkTXVsKEllKS5yZWRNdWwoQWUucmVkU3ViKHZlKSksb2U9dGhpcy5jdXJ2ZS5fbXVsQyhTZSkucmVkTXVsKEllKSksdGhpcy5jdXJ2ZS5wb2ludChNZSxzZSxv''@;'; put 'put ''ZSl9LEsucHJvdG90eXBlLmFkZD1mdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/SjpKLmlzSW5maW5pdHkoKT90aGlzOnRoaXMuY3VydmUuZXh0ZW5kZWQ/dGhpcy5fZXh0QWRkKEopOnRoaXMuX3Byb2pBZGQoSil9LEsucHJvdG90eXBlLm11bD1mdW5jdGlvbihKKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5faGFzRG91YmxlcyhKKT90aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLEopOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxKKX0sSy5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKEosc2Usb2Upe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsW3RoaXMsc2VdLFtK''@;'; put 'put ''LG9lXSwyLCExKX0sSy5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihKLHNlLG9lKXtyZXR1cm4gdGhpcy5jdXJ2ZS5fd25hZk11bEFkZCgxLFt0aGlzLHNlXSxbSixvZV0sMiwhMCl9LEsucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe2lmKHRoaXMuek9uZSlyZXR1cm4gdGhpczt2''@;'; put 'put ''YXIgSj10aGlzLnoucmVkSW52bSgpO3JldHVybiB0aGlzLng9dGhpcy54LnJlZE11bChKKSx0aGlzLnk9dGhpcy55LnJlZE11bChKKSx0aGlzLnQmJih0aGlzLnQ9dGhpcy50LnJlZE11bChKKSksdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXMuek9uZT0hMCx0aGlzfSxLLnByb3RvdHlwZS5u''@;'; put 'put ''ZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngucmVkTmVnKCksdGhpcy55LHRoaXMueix0aGlzLnQmJnRoaXMudC5yZWROZWcoKSl9LEsucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnguZnJvbVJlZCgpfSxL''@;'; put 'put ''LnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy55LmZyb21SZWQoKX0sSy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oSil7cmV0dXJuIHRoaXM9PT1KfHwwPT09dGhpcy5nZXRYKCkuY21wKEouZ2V0WCgpKSYmMD09PXRoaXMuZ2V0WSgpLmNtcChK''@;'; put 'put ''LmdldFkoKSl9LEsucHJvdG90eXBlLmVxWFRvUD1mdW5jdGlvbihKKXt2YXIgc2U9Si50b1JlZCh0aGlzLmN1cnZlLnJlZCkucmVkTXVsKHRoaXMueik7aWYoMD09PXRoaXMueC5jbXAoc2UpKXJldHVybiEwO2Zvcih2YXIgb2U9Si5jbG9uZSgpLGNlPXRoaXMuY3VydmUucmVkTi5yZWRNdWwo''@;'; put 'put ''dGhpcy56KTs7KXtpZihvZS5pYWRkKHRoaXMuY3VydmUubiksb2UuY21wKHRoaXMuY3VydmUucCk+PTApcmV0dXJuITE7aWYoc2UucmVkSUFkZChjZSksMD09PXRoaXMueC5jbXAoc2UpKXJldHVybiEwfX0sSy5wcm90b3R5cGUudG9QPUsucHJvdG90eXBlLm5vcm1hbGl6ZSxLLnByb3RvdHlw''@;'; put 'put ''ZS5taXhlZEFkZD1LLnByb3RvdHlwZS5hZGR9LDgyNTQ6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9UTtyZS5iYXNlPWooNDkxOCkscmUuc2hvcnQ9aig2NjczKSxyZS5tb250PWooMjg4MSkscmUuZWR3YXJkcz1qKDExMzgpfSwyODgxOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFy''@;'; put 'put ''IHJlPWooMzc4NSksYWU9aig1NzE3KSxZPWooNDkxOCksVz1qKDk1Myk7ZnVuY3Rpb24gTihLKXtZLmNhbGwodGhpcywibW9udCIsSyksdGhpcy5hPW5ldyByZShLLmEsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IHJlKEsuYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuaTQ9bmV3''@;'; put 'put ''IHJlKDQpLnRvUmVkKHRoaXMucmVkKS5yZWRJbnZtKCksdGhpcy50d289bmV3IHJlKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSl9ZnVuY3Rpb24gdGUoSyxKLHNlKXtZLkJhc2VQb2ludC5jYWxsKHRoaXMsSywicHJv''@;'; put 'put ''amVjdGl2ZSIpLG51bGw9PT1KJiZudWxsPT09c2U/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS56ZXJvKToodGhpcy54PW5ldyByZShKLDE2KSx0aGlzLno9bmV3IHJlKHNlLDE2KSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJl''@;'; put 'put ''ZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSkpfWFlKE4sWSksVS5leHBvcnRzPU4sTi5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oSyl7dmFyIEo9Sy5ub3JtYWxpemUoKS54LHNlPUoucmVkU3FyKCksb2U9c2UucmVkTXVsKEopLnJlZEFk''@;'; put 'put ''ZChzZS5yZWRNdWwodGhpcy5hKSkucmVkQWRkKEopO3JldHVybiAwPT09b2UucmVkU3FydCgpLnJlZFNxcigpLmNtcChvZSl9LGFlKHRlLFkuQmFzZVBvaW50KSxOLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihLLEope3JldHVybiB0aGlzLnBvaW50KFcudG9BcnJheShLLEopLDEp''@;'; put 'put ''fSxOLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihLLEope3JldHVybiBuZXcgdGUodGhpcyxLLEopfSxOLnByb3RvdHlwZS5wb2ludEZyb21KU09OPWZ1bmN0aW9uKEspe3JldHVybiB0ZS5mcm9tSlNPTih0aGlzLEspfSx0ZS5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbigpe30sdGUu''@;'; put 'put ''cHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRYKCkudG9BcnJheSgiYmUiLHRoaXMuY3VydmUucC5ieXRlTGVuZ3RoKCkpfSx0ZS5mcm9tSlNPTj1mdW5jdGlvbihLLEope3JldHVybiBuZXcgdGUoSyxKWzBdLEpbMV18fEsub25lKX0sdGUucHJvdG90eXBlLmlu''@;'; put 'put ''c3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/IjxFQyBQb2ludCBJbmZpbml0eT4iOiI8RUMgUG9pbnQgeDogIit0aGlzLnguZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyIgejogIit0aGlzLnouZnJvbVJlZCgpLnRvU3RyaW5nKDE2LDIpKyI+In0sdGUucHJvdG90''@;'; put 'put ''eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuei5jbXBuKDApfSx0ZS5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7dmFyIEs9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLEo9dGhpcy54LnJlZFN1Yih0aGlzLnopLnJlZFNxcigpLHNlPUsucmVkU3ViKEop''@;'; put 'put ''LG9lPUsucmVkTXVsKEopLGNlPXNlLnJlZE11bChKLnJlZEFkZCh0aGlzLmN1cnZlLmEyNC5yZWRNdWwoc2UpKSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQob2UsY2UpfSx0ZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRn''@;'; put 'put ''b21lcnkgY3VydmUiKX0sdGUucHJvdG90eXBlLmRpZmZBZGQ9ZnVuY3Rpb24oSyxKKXt2YXIgc2U9dGhpcy54LnJlZEFkZCh0aGlzLnopLG9lPXRoaXMueC5yZWRTdWIodGhpcy56KSxjZT1LLngucmVkQWRkKEsueiksZGU9Sy54LnJlZFN1YihLLnopLnJlZE11bChzZSksdmU9Y2UucmVkTXVs''@;'; put 'put ''KG9lKSxBZT1KLnoucmVkTXVsKGRlLnJlZEFkZCh2ZSkucmVkU3FyKCkpLGtlPUoueC5yZWRNdWwoZGUucmVkSVN1Yih2ZSkucmVkU3FyKCkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEFlLGtlKX0sdGUucHJvdG90eXBlLm11bD1mdW5jdGlvbihLKXtmb3IodmFyIEo9Sy5jbG9uZSgpLHNl''@;'; put 'put ''PXRoaXMsb2U9dGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpLGNlPVtdOzAhPT1KLmNtcG4oMCk7Si5pdXNocm4oMSkpY2UucHVzaChKLmFuZGxuKDEpKTtmb3IodmFyIGRlPWNlLmxlbmd0aC0xO2RlPj0wO2RlLS0pMD09PWNlW2RlXT8oc2U9c2UuZGlmZkFkZChvZSx0aGlzKSxvZT1vZS5k''@;'; put 'put ''YmwoKSk6KG9lPXNlLmRpZmZBZGQob2UsdGhpcyksc2U9c2UuZGJsKCkpO3JldHVybiBvZX0sdGUucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBvbiBNb250Z29tZXJ5IGN1cnZlIil9LHRlLnByb3RvdHlwZS5qdW1sQWRkPWZ1bmN0''@;'; put 'put ''aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sdGUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKEspe3JldHVybiAwPT09dGhpcy5nZXRYKCkuY21wKEsuZ2V0WCgpKX0sdGUucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biB0aGlzLng9dGhpcy54LnJlZE11bCh0aGlzLnoucmVkSW52bSgpKSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpc30sdGUucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnguZnJvbVJlZCgpfX0sNjY3MzooVSxRLGopPT57InVzZSBzdHJp''@;'; put 'put ''Y3QiO3ZhciByZT1qKDk1MyksYWU9aigzNzg1KSxZPWooNTcxNyksVz1qKDQ5MTgpLE49cmUuYXNzZXJ0O2Z1bmN0aW9uIHRlKHNlKXtXLmNhbGwodGhpcywic2hvcnQiLHNlKSx0aGlzLmE9bmV3IGFlKHNlLmEsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IGFlKHNlLmIsMTYpLnRv''@;'; put 'put ''UmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28ucmVkSW52bSgpLHRoaXMuemVyb0E9MD09PXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBo''@;'; put 'put ''aXNtKHNlKSx0aGlzLl9lbmRvV25hZlQxPW5ldyBBcnJheSg0KSx0aGlzLl9lbmRvV25hZlQyPW5ldyBBcnJheSg0KX1mdW5jdGlvbiBLKHNlLG9lLGNlLGRlKXtXLkJhc2VQb2ludC5jYWxsKHRoaXMsc2UsImFmZmluZSIpLG51bGw9PT1vZSYmbnVsbD09PWNlPyh0aGlzLng9bnVsbCx0aGlz''@;'; put 'put ''Lnk9bnVsbCx0aGlzLmluZj0hMCk6KHRoaXMueD1uZXcgYWUob2UsMTYpLHRoaXMueT1uZXcgYWUoY2UsMTYpLGRlJiYodGhpcy54LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKSx0aGlzLnkuZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1Jl''@;'; put 'put ''ZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhpcy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy5pbmY9ITEpfWZ1bmN0aW9uIEooc2Usb2UsY2UsZGUpe1cuQmFzZVBvaW50LmNhbGwodGhpcyxzZSwiamFjb2JpYW4iKSxudWxsPT09b2UmJm51bGw9PT1jZSYm''@;'; put 'put ''bnVsbD09PWRlPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy55PXRoaXMuY3VydmUub25lLHRoaXMuej1uZXcgYWUoMCkpOih0aGlzLng9bmV3IGFlKG9lLDE2KSx0aGlzLnk9bmV3IGFlKGNlLDE2KSx0aGlzLno9bmV3IGFlKGRlLDE2KSksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngu''@;'; put 'put ''dG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5yZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56T25lPXRoaXMuej09PXRoaXMuY3VydmUub25lfVkodGUsVyks''@;'; put 'put ''VS5leHBvcnRzPXRlLHRlLnByb3RvdHlwZS5fZ2V0RW5kb21vcnBoaXNtPWZ1bmN0aW9uKHNlKXtpZih0aGlzLnplcm9BJiZ0aGlzLmcmJnRoaXMubiYmMT09PXRoaXMucC5tb2RuKDMpKXt2YXIgb2UsY2U7aWYoc2UuYmV0YSlvZT1uZXcgYWUoc2UuYmV0YSwxNikudG9SZWQodGhpcy5yZWQp''@;'; put 'put ''O2Vsc2V7dmFyIGRlPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLnApO29lPShvZT1kZVswXS5jbXAoZGVbMV0pPDA/ZGVbMF06ZGVbMV0pLnRvUmVkKHRoaXMucmVkKX1pZihzZS5sYW1iZGEpY2U9bmV3IGFlKHNlLmxhbWJkYSwxNik7ZWxzZXt2YXIgdmU9dGhpcy5fZ2V0RW5kb1Jvb3RzKHRo''@;'; put 'put ''aXMubik7MD09PXRoaXMuZy5tdWwodmVbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChvZSkpP2NlPXZlWzBdOk4oMD09PXRoaXMuZy5tdWwoY2U9dmVbMV0pLnguY21wKHRoaXMuZy54LnJlZE11bChvZSkpKX1yZXR1cm57YmV0YTpvZSxsYW1iZGE6Y2UsYmFzaXM6c2UuYmFzaXM/c2UuYmFz''@;'; put 'put ''aXMubWFwKGZ1bmN0aW9uKEFlKXtyZXR1cm57YTpuZXcgYWUoQWUuYSwxNiksYjpuZXcgYWUoQWUuYiwxNil9fSk6dGhpcy5fZ2V0RW5kb0Jhc2lzKGNlKX19fSx0ZS5wcm90b3R5cGUuX2dldEVuZG9Sb290cz1mdW5jdGlvbihzZSl7dmFyIG9lPXNlPT09dGhpcy5wP3RoaXMucmVkOmFlLm1v''@;'; put 'put ''bnQoc2UpLGNlPW5ldyBhZSgyKS50b1JlZChvZSkucmVkSW52bSgpLGRlPWNlLnJlZE5lZygpLHZlPW5ldyBhZSgzKS50b1JlZChvZSkucmVkTmVnKCkucmVkU3FydCgpLnJlZE11bChjZSk7cmV0dXJuW2RlLnJlZEFkZCh2ZSkuZnJvbVJlZCgpLGRlLnJlZFN1Yih2ZSkuZnJvbVJlZCgpXX0s''@;'; put 'put ''dGUucHJvdG90eXBlLl9nZXRFbmRvQmFzaXM9ZnVuY3Rpb24oc2Upe2Zvcih2YXIgb2UsY2UsZGUsdmUsQWUsa2UsU2UsSWUsVGUsTWU9dGhpcy5uLnVzaHJuKE1hdGguZmxvb3IodGhpcy5uLmJpdExlbmd0aCgpLzIpKSxoZT1zZSxPPXRoaXMubi5jbG9uZSgpLHo9bmV3IGFlKDEpLGVlPW5l''@;'; put 'put ''dyBhZSgwKSxuZT1uZXcgYWUoMCkseD1uZXcgYWUoMSksUD0wOzAhPT1oZS5jbXBuKDApOyl7dmFyIFY9Ty5kaXYoaGUpO0llPU8uc3ViKFYubXVsKGhlKSksVGU9bmUuc3ViKFYubXVsKHopKTt2YXIgVD14LnN1YihWLm11bChlZSkpO2lmKCFkZSYmSWUuY21wKE1lKTwwKW9lPVNlLm5lZygp''@;'; put 'put ''LGNlPXosZGU9SWUubmVnKCksdmU9VGU7ZWxzZSBpZihkZSYmMj09KytQKWJyZWFrO1NlPUllLE89aGUsaGU9SWUsbmU9eix6PVRlLHg9ZWUsZWU9VH1BZT1JZS5uZWcoKSxrZT1UZTt2YXIgUz1kZS5zcXIoKS5hZGQodmUuc3FyKCkpO3JldHVybiBBZS5zcXIoKS5hZGQoa2Uuc3FyKCkpLmNt''@;'; put 'put ''cChTKT49MCYmKEFlPW9lLGtlPWNlKSxkZS5uZWdhdGl2ZSYmKGRlPWRlLm5lZygpLHZlPXZlLm5lZygpKSxBZS5uZWdhdGl2ZSYmKEFlPUFlLm5lZygpLGtlPWtlLm5lZygpKSxbe2E6ZGUsYjp2ZX0se2E6QWUsYjprZX1dfSx0ZS5wcm90b3R5cGUuX2VuZG9TcGxpdD1mdW5jdGlvbihzZSl7''@;'; put 'put ''dmFyIG9lPXRoaXMuZW5kby5iYXNpcyxjZT1vZVswXSxkZT1vZVsxXSx2ZT1kZS5iLm11bChzZSkuZGl2Um91bmQodGhpcy5uKSxBZT1jZS5iLm5lZygpLm11bChzZSkuZGl2Um91bmQodGhpcy5uKSxrZT12ZS5tdWwoY2UuYSksU2U9QWUubXVsKGRlLmEpLEllPXZlLm11bChjZS5iKSxUZT1B''@;'; put 'put ''ZS5tdWwoZGUuYik7cmV0dXJue2sxOnNlLnN1YihrZSkuc3ViKFNlKSxrMjpJZS5hZGQoVGUpLm5lZygpfX0sdGUucHJvdG90eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oc2Usb2UpeyhzZT1uZXcgYWUoc2UsMTYpKS5yZWR8fChzZT1zZS50b1JlZCh0aGlzLnJlZCkpO3ZhciBjZT1zZS5yZWRT''@;'; put 'put ''cXIoKS5yZWRNdWwoc2UpLnJlZElBZGQoc2UucmVkTXVsKHRoaXMuYSkpLnJlZElBZGQodGhpcy5iKSxkZT1jZS5yZWRTcXJ0KCk7aWYoMCE9PWRlLnJlZFNxcigpLnJlZFN1YihjZSkuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIHBvaW50Iik7dmFyIHZlPWRlLmZy''@;'; put 'put ''b21SZWQoKS5pc09kZCgpO3JldHVybihvZSYmIXZlfHwhb2UmJnZlKSYmKGRlPWRlLnJlZE5lZygpKSx0aGlzLnBvaW50KHNlLGRlKX0sdGUucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKHNlKXtpZihzZS5pbmYpcmV0dXJuITA7dmFyIG9lPXNlLngsY2U9c2UueSxkZT10aGlzLmEucmVk''@;'; put 'put ''TXVsKG9lKSx2ZT1vZS5yZWRTcXIoKS5yZWRNdWwob2UpLnJlZElBZGQoZGUpLnJlZElBZGQodGhpcy5iKTtyZXR1cm4gMD09PWNlLnJlZFNxcigpLnJlZElTdWIodmUpLmNtcG4oMCl9LHRlLnByb3RvdHlwZS5fZW5kb1duYWZNdWxBZGQ9ZnVuY3Rpb24oc2Usb2UsY2Upe2Zvcih2YXIgZGU9''@;'; put 'put ''dGhpcy5fZW5kb1duYWZUMSx2ZT10aGlzLl9lbmRvV25hZlQyLEFlPTA7QWU8c2UubGVuZ3RoO0FlKyspe3ZhciBrZT10aGlzLl9lbmRvU3BsaXQob2VbQWVdKSxTZT1zZVtBZV0sSWU9U2UuX2dldEJldGEoKTtrZS5rMS5uZWdhdGl2ZSYmKGtlLmsxLmluZWcoKSxTZT1TZS5uZWcoITApKSxr''@;'; put 'put ''ZS5rMi5uZWdhdGl2ZSYmKGtlLmsyLmluZWcoKSxJZT1JZS5uZWcoITApKSxkZVsyKkFlXT1TZSxkZVsyKkFlKzFdPUllLHZlWzIqQWVdPWtlLmsxLHZlWzIqQWUrMV09a2UuazJ9Zm9yKHZhciBUZT10aGlzLl93bmFmTXVsQWRkKDEsZGUsdmUsMipBZSxjZSksTWU9MDtNZTwyKkFlO01lKysp''@;'; put 'put ''ZGVbTWVdPW51bGwsdmVbTWVdPW51bGw7cmV0dXJuIFRlfSxZKEssVy5CYXNlUG9pbnQpLHRlLnByb3RvdHlwZS5wb2ludD1mdW5jdGlvbihzZSxvZSxjZSl7cmV0dXJuIG5ldyBLKHRoaXMsc2Usb2UsY2UpfSx0ZS5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihzZSxvZSl7cmV0''@;'; put 'put ''dXJuIEsuZnJvbUpTT04odGhpcyxzZSxvZSl9LEsucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7aWYodGhpcy5jdXJ2ZS5lbmRvKXt2YXIgc2U9dGhpcy5wcmVjb21wdXRlZDtpZihzZSYmc2UuYmV0YSlyZXR1cm4gc2UuYmV0YTt2YXIgb2U9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngu''@;'; put 'put ''cmVkTXVsKHRoaXMuY3VydmUuZW5kby5iZXRhKSx0aGlzLnkpO2lmKHNlKXt2YXIgY2U9dGhpcy5jdXJ2ZSxkZT1mdW5jdGlvbih2ZSl7cmV0dXJuIGNlLnBvaW50KHZlLngucmVkTXVsKGNlLmVuZG8uYmV0YSksdmUueSl9O3NlLmJldGE9b2Usb2UucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxu''@;'; put 'put ''YWY6c2UubmFmJiZ7d25kOnNlLm5hZi53bmQscG9pbnRzOnNlLm5hZi5wb2ludHMubWFwKGRlKX0sZG91YmxlczpzZS5kb3VibGVzJiZ7c3RlcDpzZS5kb3VibGVzLnN0ZXAscG9pbnRzOnNlLmRvdWJsZXMucG9pbnRzLm1hcChkZSl9fX1yZXR1cm4gb2V9fSxLLnByb3RvdHlwZS50b0pTT049''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcmVjb21wdXRlZD9bdGhpcy54LHRoaXMueSx0aGlzLnByZWNvbXB1dGVkJiZ7ZG91Ymxlczp0aGlzLnByZWNvbXB1dGVkLmRvdWJsZXMmJntzdGVwOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5zdGVwLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLmRv''@;'; put 'put ''dWJsZXMucG9pbnRzLnNsaWNlKDEpfSxuYWY6dGhpcy5wcmVjb21wdXRlZC5uYWYmJnt3bmQ6dGhpcy5wcmVjb21wdXRlZC5uYWYud25kLHBvaW50czp0aGlzLnByZWNvbXB1dGVkLm5hZi5wb2ludHMuc2xpY2UoMSl9fV06W3RoaXMueCx0aGlzLnldfSxLLmZyb21KU09OPWZ1bmN0aW9uKHNl''@;'; put 'put ''LG9lLGNlKXsic3RyaW5nIj09dHlwZW9mIG9lJiYob2U9SlNPTi5wYXJzZShvZSkpO3ZhciBkZT1zZS5wb2ludChvZVswXSxvZVsxXSxjZSk7aWYoIW9lWzJdKXJldHVybiBkZTtmdW5jdGlvbiB2ZShrZSl7cmV0dXJuIHNlLnBvaW50KGtlWzBdLGtlWzFdLGNlKX12YXIgQWU9b2VbMl07cmV0''@;'; put 'put ''dXJuIGRlLnByZWNvbXB1dGVkPXtiZXRhOm51bGwsZG91YmxlczpBZS5kb3VibGVzJiZ7c3RlcDpBZS5kb3VibGVzLnN0ZXAscG9pbnRzOltkZV0uY29uY2F0KEFlLmRvdWJsZXMucG9pbnRzLm1hcCh2ZSkpfSxuYWY6QWUubmFmJiZ7d25kOkFlLm5hZi53bmQscG9pbnRzOltkZV0uY29uY2F0''@;'; put 'put ''KEFlLm5hZi5wb2ludHMubWFwKHZlKSl9fSxkZX0sSy5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3Ro''@;'; put 'put ''aXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxLLnByb3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mfSxLLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oc2Upe2lmKHRoaXMuaW5mKXJldHVybiBzZTtpZihzZS5pbmYpcmV0dXJuIHRoaXM7aWYodGhp''@;'; put 'put ''cy5lcShzZSkpcmV0dXJuIHRoaXMuZGJsKCk7aWYodGhpcy5uZWcoKS5lcShzZSkpcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxudWxsKTtpZigwPT09dGhpcy54LmNtcChzZS54KSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBvZT10aGlzLnkucmVkU3ViKHNl''@;'; put 'put ''LnkpOzAhPT1vZS5jbXBuKDApJiYob2U9b2UucmVkTXVsKHRoaXMueC5yZWRTdWIoc2UueCkucmVkSW52bSgpKSk7dmFyIGNlPW9lLnJlZFNxcigpLnJlZElTdWIodGhpcy54KS5yZWRJU3ViKHNlLngpLGRlPW9lLnJlZE11bCh0aGlzLngucmVkU3ViKGNlKSkucmVkSVN1Yih0aGlzLnkpO3Jl''@;'; put 'put ''dHVybiB0aGlzLmN1cnZlLnBvaW50KGNlLGRlKX0sSy5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIHNlPXRoaXMueS5yZWRBZGQodGhpcy55KTtpZigwPT09c2UuY21wbigwKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3Zh''@;'; put 'put ''ciBvZT10aGlzLmN1cnZlLmEsY2U9dGhpcy54LnJlZFNxcigpLGRlPXNlLnJlZEludm0oKSx2ZT1jZS5yZWRBZGQoY2UpLnJlZElBZGQoY2UpLnJlZElBZGQob2UpLnJlZE11bChkZSksQWU9dmUucmVkU3FyKCkucmVkSVN1Yih0aGlzLngucmVkQWRkKHRoaXMueCkpLGtlPXZlLnJlZE11bCh0''@;'; put 'put ''aGlzLngucmVkU3ViKEFlKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEFlLGtlKX0sSy5wcm90b3R5cGUuZ2V0WD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnguZnJvbVJlZCgpfSxLLnByb3RvdHlwZS5nZXRZPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMueS5mcm9t''@;'; put 'put ''UmVkKCl9LEsucHJvdG90eXBlLm11bD1mdW5jdGlvbihzZSl7cmV0dXJuIHNlPW5ldyBhZShzZSwxNiksdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLl9oYXNEb3VibGVzKHNlKT90aGlzLmN1cnZlLl9maXhlZE5hZk11bCh0aGlzLHNlKTp0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5f''@;'; put 'put ''ZW5kb1duYWZNdWxBZGQoW3RoaXNdLFtzZV0pOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxzZSl9LEsucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihzZSxvZSxjZSl7dmFyIGRlPVt0aGlzLG9lXSx2ZT1bc2UsY2VdO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1du''@;'; put 'put ''YWZNdWxBZGQoZGUsdmUpOnRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxkZSx2ZSwyKX0sSy5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihzZSxvZSxjZSl7dmFyIGRlPVt0aGlzLG9lXSx2ZT1bc2UsY2VdO3JldHVybiB0aGlzLmN1cnZlLmVuZG8/dGhpcy5jdXJ2ZS5fZW5kb1duYWZNdWxB''@;'; put 'put ''ZGQoZGUsdmUsITApOnRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxkZSx2ZSwyLCEwKX0sSy5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oc2Upe3JldHVybiB0aGlzPT09c2V8fHRoaXMuaW5mPT09c2UuaW5mJiYodGhpcy5pbmZ8fDA9PT10aGlzLnguY21wKHNlLngpJiYwPT09dGhpcy55LmNtcChz''@;'; put 'put ''ZS55KSl9LEsucHJvdG90eXBlLm5lZz1mdW5jdGlvbihzZSl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIG9lPXRoaXMuY3VydmUucG9pbnQodGhpcy54LHRoaXMueS5yZWROZWcoKSk7aWYoc2UmJnRoaXMucHJlY29tcHV0ZWQpe3ZhciBjZT10aGlzLnByZWNvbXB1dGVkLGRlPWZ1bmN0''@;'; put 'put ''aW9uKHZlKXtyZXR1cm4gdmUubmVnKCl9O29lLnByZWNvbXB1dGVkPXtuYWY6Y2UubmFmJiZ7d25kOmNlLm5hZi53bmQscG9pbnRzOmNlLm5hZi5wb2ludHMubWFwKGRlKX0sZG91YmxlczpjZS5kb3VibGVzJiZ7c3RlcDpjZS5kb3VibGVzLnN0ZXAscG9pbnRzOmNlLmRvdWJsZXMucG9pbnRz''@;'; put 'put ''Lm1hcChkZSl9fX1yZXR1cm4gb2V9LEsucHJvdG90eXBlLnRvSj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmluZj90aGlzLmN1cnZlLmpwb2ludChudWxsLG51bGwsbnVsbCk6dGhpcy5jdXJ2ZS5qcG9pbnQodGhpcy54LHRoaXMueSx0aGlzLmN1cnZlLm9uZSl9LFkoSixXLkJhc2VQb2ludCks''@;'; put 'put ''dGUucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihzZSxvZSxjZSl7cmV0dXJuIG5ldyBKKHRoaXMsc2Usb2UsY2UpfSxKLnByb3RvdHlwZS50b1A9ZnVuY3Rpb24oKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBzZT10aGlzLnou''@;'; put 'put ''cmVkSW52bSgpLG9lPXNlLnJlZFNxcigpLGNlPXRoaXMueC5yZWRNdWwob2UpLGRlPXRoaXMueS5yZWRNdWwob2UpLnJlZE11bChzZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoY2UsZGUpfSxKLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQodGhp''@;'; put 'put ''cy54LHRoaXMueS5yZWROZWcoKSx0aGlzLnopfSxKLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oc2Upe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiBzZTtpZihzZS5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIG9lPXNlLnoucmVkU3FyKCksY2U9dGhpcy56LnJlZFNxcigpLGRlPXRo''@;'; put 'put ''aXMueC5yZWRNdWwob2UpLHZlPXNlLngucmVkTXVsKGNlKSxBZT10aGlzLnkucmVkTXVsKG9lLnJlZE11bChzZS56KSksa2U9c2UueS5yZWRNdWwoY2UucmVkTXVsKHRoaXMueikpLFNlPWRlLnJlZFN1Yih2ZSksSWU9QWUucmVkU3ViKGtlKTtpZigwPT09U2UuY21wbigwKSlyZXR1cm4gMCE9''@;'; put 'put ''PUllLmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIFRlPVNlLnJlZFNxcigpLE1lPVRlLnJlZE11bChTZSksaGU9ZGUucmVkTXVsKFRlKSxPPUllLnJlZFNxcigpLnJlZElBZGQoTWUpLnJlZElTdWIoaGUpLnJlZElTdWIoaGUpLHo9SWUu''@;'; put 'put ''cmVkTXVsKGhlLnJlZElTdWIoTykpLnJlZElTdWIoQWUucmVkTXVsKE1lKSksZWU9dGhpcy56LnJlZE11bChzZS56KS5yZWRNdWwoU2UpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChPLHosZWUpfSxKLnByb3RvdHlwZS5taXhlZEFkZD1mdW5jdGlvbihzZSl7aWYodGhpcy5pc0luZmluaXR5''@;'; put 'put ''KCkpcmV0dXJuIHNlLnRvSigpO2lmKHNlLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgb2U9dGhpcy56LnJlZFNxcigpLGNlPXRoaXMueCxkZT1zZS54LnJlZE11bChvZSksdmU9dGhpcy55LEFlPXNlLnkucmVkTXVsKG9lKS5yZWRNdWwodGhpcy56KSxrZT1jZS5yZWRTdWIoZGUpLFNl''@;'; put 'put ''PXZlLnJlZFN1YihBZSk7aWYoMD09PWtlLmNtcG4oMCkpcmV0dXJuIDAhPT1TZS5jbXBuKDApP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmRibCgpO3ZhciBJZT1rZS5yZWRTcXIoKSxUZT1JZS5yZWRNdWwoa2UpLE1lPWNlLnJlZE11bChJZSksaGU9U2UucmVkU3Fy''@;'; put 'put ''KCkucmVkSUFkZChUZSkucmVkSVN1YihNZSkucmVkSVN1YihNZSksTz1TZS5yZWRNdWwoTWUucmVkSVN1YihoZSkpLnJlZElTdWIodmUucmVkTXVsKFRlKSksej10aGlzLnoucmVkTXVsKGtlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoaGUsTyx6KX0sSi5wcm90b3R5cGUuZGJscD1mdW5j''@;'; put 'put ''dGlvbihzZSl7aWYoMD09PXNlKXJldHVybiB0aGlzO2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO2lmKCFzZSlyZXR1cm4gdGhpcy5kYmwoKTt2YXIgb2U7aWYodGhpcy5jdXJ2ZS56ZXJvQXx8dGhpcy5jdXJ2ZS50aHJlZUEpe3ZhciBjZT10aGlzO2ZvcihvZT0wO29lPHNlO29l''@;'; put 'put ''KyspY2U9Y2UuZGJsKCk7cmV0dXJuIGNlfXZhciBkZT10aGlzLmN1cnZlLmEsdmU9dGhpcy5jdXJ2ZS50aW52LEFlPXRoaXMueCxrZT10aGlzLnksU2U9dGhpcy56LEllPVNlLnJlZFNxcigpLnJlZFNxcigpLFRlPWtlLnJlZEFkZChrZSk7Zm9yKG9lPTA7b2U8c2U7b2UrKyl7dmFyIE1lPUFl''@;'; put 'put ''LnJlZFNxcigpLGhlPVRlLnJlZFNxcigpLE89aGUucmVkU3FyKCksej1NZS5yZWRBZGQoTWUpLnJlZElBZGQoTWUpLnJlZElBZGQoZGUucmVkTXVsKEllKSksZWU9QWUucmVkTXVsKGhlKSxuZT16LnJlZFNxcigpLnJlZElTdWIoZWUucmVkQWRkKGVlKSkseD1lZS5yZWRJU3ViKG5lKSxQPXou''@;'; put 'put ''cmVkTXVsKHgpO1A9UC5yZWRJQWRkKFApLnJlZElTdWIoTyk7dmFyIFY9VGUucmVkTXVsKFNlKTtvZSsxPHNlJiYoSWU9SWUucmVkTXVsKE8pKSxBZT1uZSxTZT1WLFRlPVB9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KEFlLFRlLnJlZE11bCh2ZSksU2UpfSxKLnByb3RvdHlwZS5kYmw9ZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLnplcm9BP3RoaXMuX3plcm9EYmwoKTp0aGlzLmN1cnZlLnRocmVlQT90aGlzLl90aHJlZURibCgpOnRoaXMuX2RibCgpfSxKLnByb3RvdHlwZS5femVyb0RibD1mdW5jdGlvbigpe3ZhciBzZSxvZSxjZTtp''@;'; put 'put ''Zih0aGlzLnpPbmUpe3ZhciBkZT10aGlzLngucmVkU3FyKCksdmU9dGhpcy55LnJlZFNxcigpLEFlPXZlLnJlZFNxcigpLGtlPXRoaXMueC5yZWRBZGQodmUpLnJlZFNxcigpLnJlZElTdWIoZGUpLnJlZElTdWIoQWUpO2tlPWtlLnJlZElBZGQoa2UpO3ZhciBTZT1kZS5yZWRBZGQoZGUpLnJl''@;'; put 'put ''ZElBZGQoZGUpLEllPVNlLnJlZFNxcigpLnJlZElTdWIoa2UpLnJlZElTdWIoa2UpLFRlPUFlLnJlZElBZGQoQWUpO1RlPShUZT1UZS5yZWRJQWRkKFRlKSkucmVkSUFkZChUZSksc2U9SWUsb2U9U2UucmVkTXVsKGtlLnJlZElTdWIoSWUpKS5yZWRJU3ViKFRlKSxjZT10aGlzLnkucmVkQWRk''@;'; put 'put ''KHRoaXMueSl9ZWxzZXt2YXIgTWU9dGhpcy54LnJlZFNxcigpLGhlPXRoaXMueS5yZWRTcXIoKSxPPWhlLnJlZFNxcigpLHo9dGhpcy54LnJlZEFkZChoZSkucmVkU3FyKCkucmVkSVN1YihNZSkucmVkSVN1YihPKTt6PXoucmVkSUFkZCh6KTt2YXIgZWU9TWUucmVkQWRkKE1lKS5yZWRJQWRk''@;'; put 'put ''KE1lKSxuZT1lZS5yZWRTcXIoKSx4PU8ucmVkSUFkZChPKTt4PSh4PXgucmVkSUFkZCh4KSkucmVkSUFkZCh4KSxzZT1uZS5yZWRJU3ViKHopLnJlZElTdWIoeiksb2U9ZWUucmVkTXVsKHoucmVkSVN1YihzZSkpLnJlZElTdWIoeCksY2U9KGNlPXRoaXMueS5yZWRNdWwodGhpcy56KSkucmVk''@;'; put 'put ''SUFkZChjZSl9cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHNlLG9lLGNlKX0sSi5wcm90b3R5cGUuX3RocmVlRGJsPWZ1bmN0aW9uKCl7dmFyIHNlLG9lLGNlO2lmKHRoaXMuek9uZSl7dmFyIGRlPXRoaXMueC5yZWRTcXIoKSx2ZT10aGlzLnkucmVkU3FyKCksQWU9dmUucmVkU3FyKCksa2U9''@;'; put 'put ''dGhpcy54LnJlZEFkZCh2ZSkucmVkU3FyKCkucmVkSVN1YihkZSkucmVkSVN1YihBZSk7a2U9a2UucmVkSUFkZChrZSk7dmFyIFNlPWRlLnJlZEFkZChkZSkucmVkSUFkZChkZSkucmVkSUFkZCh0aGlzLmN1cnZlLmEpLEllPVNlLnJlZFNxcigpLnJlZElTdWIoa2UpLnJlZElTdWIoa2UpO3Nl''@;'; put 'put ''PUllO3ZhciBUZT1BZS5yZWRJQWRkKEFlKTtUZT0oVGU9VGUucmVkSUFkZChUZSkpLnJlZElBZGQoVGUpLG9lPVNlLnJlZE11bChrZS5yZWRJU3ViKEllKSkucmVkSVN1YihUZSksY2U9dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIE1lPXRoaXMuei5yZWRTcXIoKSxoZT10aGlzLnku''@;'; put 'put ''cmVkU3FyKCksTz10aGlzLngucmVkTXVsKGhlKSx6PXRoaXMueC5yZWRTdWIoTWUpLnJlZE11bCh0aGlzLngucmVkQWRkKE1lKSk7ej16LnJlZEFkZCh6KS5yZWRJQWRkKHopO3ZhciBlZT1PLnJlZElBZGQoTyksbmU9KGVlPWVlLnJlZElBZGQoZWUpKS5yZWRBZGQoZWUpO3NlPXoucmVkU3Fy''@;'; put 'put ''KCkucmVkSVN1YihuZSksY2U9dGhpcy55LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLnJlZElTdWIoaGUpLnJlZElTdWIoTWUpO3ZhciB4PWhlLnJlZFNxcigpO3g9KHg9KHg9eC5yZWRJQWRkKHgpKS5yZWRJQWRkKHgpKS5yZWRJQWRkKHgpLG9lPXoucmVkTXVsKGVlLnJlZElTdWIoc2UpKS5y''@;'; put 'put ''ZWRJU3ViKHgpfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChzZSxvZSxjZSl9LEoucHJvdG90eXBlLl9kYmw9ZnVuY3Rpb24oKXt2YXIgc2U9dGhpcy5jdXJ2ZS5hLG9lPXRoaXMueCxjZT10aGlzLnksZGU9dGhpcy56LHZlPWRlLnJlZFNxcigpLnJlZFNxcigpLEFlPW9lLnJlZFNxcigpLGtl''@;'; put 'put ''PWNlLnJlZFNxcigpLFNlPUFlLnJlZEFkZChBZSkucmVkSUFkZChBZSkucmVkSUFkZChzZS5yZWRNdWwodmUpKSxJZT1vZS5yZWRBZGQob2UpLFRlPShJZT1JZS5yZWRJQWRkKEllKSkucmVkTXVsKGtlKSxNZT1TZS5yZWRTcXIoKS5yZWRJU3ViKFRlLnJlZEFkZChUZSkpLGhlPVRlLnJlZElT''@;'; put 'put ''dWIoTWUpLE89a2UucmVkU3FyKCk7Tz0oTz0oTz1PLnJlZElBZGQoTykpLnJlZElBZGQoTykpLnJlZElBZGQoTyk7dmFyIHo9U2UucmVkTXVsKGhlKS5yZWRJU3ViKE8pLGVlPWNlLnJlZEFkZChjZSkucmVkTXVsKGRlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoTWUseixlZSl9LEoucHJv''@;'; put 'put ''dG90eXBlLnRycGw9ZnVuY3Rpb24oKXtpZighdGhpcy5jdXJ2ZS56ZXJvQSlyZXR1cm4gdGhpcy5kYmwoKS5hZGQodGhpcyk7dmFyIHNlPXRoaXMueC5yZWRTcXIoKSxvZT10aGlzLnkucmVkU3FyKCksY2U9dGhpcy56LnJlZFNxcigpLGRlPW9lLnJlZFNxcigpLHZlPXNlLnJlZEFkZChzZSku''@;'; put 'put ''cmVkSUFkZChzZSksQWU9dmUucmVkU3FyKCksa2U9dGhpcy54LnJlZEFkZChvZSkucmVkU3FyKCkucmVkSVN1YihzZSkucmVkSVN1YihkZSksU2U9KGtlPShrZT0oa2U9a2UucmVkSUFkZChrZSkpLnJlZEFkZChrZSkucmVkSUFkZChrZSkpLnJlZElTdWIoQWUpKS5yZWRTcXIoKSxJZT1kZS5y''@;'; put 'put ''ZWRJQWRkKGRlKTtJZT0oSWU9KEllPUllLnJlZElBZGQoSWUpKS5yZWRJQWRkKEllKSkucmVkSUFkZChJZSk7dmFyIFRlPXZlLnJlZElBZGQoa2UpLnJlZFNxcigpLnJlZElTdWIoQWUpLnJlZElTdWIoU2UpLnJlZElTdWIoSWUpLE1lPW9lLnJlZE11bChUZSk7TWU9KE1lPU1lLnJlZElBZGQo''@;'; put 'put ''TWUpKS5yZWRJQWRkKE1lKTt2YXIgaGU9dGhpcy54LnJlZE11bChTZSkucmVkSVN1YihNZSk7aGU9KGhlPWhlLnJlZElBZGQoaGUpKS5yZWRJQWRkKGhlKTt2YXIgTz10aGlzLnkucmVkTXVsKFRlLnJlZE11bChJZS5yZWRJU3ViKFRlKSkucmVkSVN1YihrZS5yZWRNdWwoU2UpKSk7Tz0oTz0o''@;'; put 'put ''Tz1PLnJlZElBZGQoTykpLnJlZElBZGQoTykpLnJlZElBZGQoTyk7dmFyIHo9dGhpcy56LnJlZEFkZChrZSkucmVkU3FyKCkucmVkSVN1YihjZSkucmVkSVN1YihTZSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KGhlLE8seil9LEoucHJvdG90eXBlLm11bD1mdW5jdGlvbihzZSxvZSl7cmV0''@;'; put 'put ''dXJuIHNlPW5ldyBhZShzZSxvZSksdGhpcy5jdXJ2ZS5fd25hZk11bCh0aGlzLHNlKX0sSi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oc2Upe2lmKCJhZmZpbmUiPT09c2UudHlwZSlyZXR1cm4gdGhpcy5lcShzZS50b0ooKSk7aWYodGhpcz09PXNlKXJldHVybiEwO3ZhciBvZT10aGlzLnoucmVk''@;'; put 'put ''U3FyKCksY2U9c2Uuei5yZWRTcXIoKTtpZigwIT09dGhpcy54LnJlZE11bChjZSkucmVkSVN1YihzZS54LnJlZE11bChvZSkpLmNtcG4oMCkpcmV0dXJuITE7dmFyIGRlPW9lLnJlZE11bCh0aGlzLnopLHZlPWNlLnJlZE11bChzZS56KTtyZXR1cm4gMD09PXRoaXMueS5yZWRNdWwodmUpLnJl''@;'; put 'put ''ZElTdWIoc2UueS5yZWRNdWwoZGUpKS5jbXBuKDApfSxKLnByb3RvdHlwZS5lcVhUb1A9ZnVuY3Rpb24oc2Upe3ZhciBvZT10aGlzLnoucmVkU3FyKCksY2U9c2UudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bChvZSk7aWYoMD09PXRoaXMueC5jbXAoY2UpKXJldHVybiEwO2Zvcih2YXIg''@;'; put 'put ''ZGU9c2UuY2xvbmUoKSx2ZT10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKG9lKTs7KXtpZihkZS5pYWRkKHRoaXMuY3VydmUubiksZGUuY21wKHRoaXMuY3VydmUucCk+PTApcmV0dXJuITE7aWYoY2UucmVkSUFkZCh2ZSksMD09PXRoaXMueC5jbXAoY2UpKXJldHVybiEwfX0sSi5wcm90b3R5cGUu''@;'; put 'put ''aW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5maW5pdHkoKT8iPEVDIEpQb2ludCBJbmZpbml0eT4iOiI8RUMgSlBvaW50IHg6ICIrdGhpcy54LnRvU3RyaW5nKDE2LDIpKyIgeTogIit0aGlzLnkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei50b1N0cmluZygxNiwyKSsi''@;'; put 'put ''PiJ9LEoucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuei5jbXBuKDApfX0sNTQyNzooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZSxhZT1RLFk9aigzNzE1KSxXPWooODI1NCksTj1qKDk1MykuYXNzZXJ0O2Z1bmN0aW9uIHRlKEope3RoaXMuY3Vy''@;'; put 'put ''dmU9InNob3J0Ij09PUoudHlwZT9uZXcgVy5zaG9ydChKKToiZWR3YXJkcyI9PT1KLnR5cGU/bmV3IFcuZWR3YXJkcyhKKTpuZXcgVy5tb250KEopLHRoaXMuZz10aGlzLmN1cnZlLmcsdGhpcy5uPXRoaXMuY3VydmUubix0aGlzLmhhc2g9Si5oYXNoLE4odGhpcy5nLnZhbGlkYXRlKCksIklu''@;'; put 'put ''dmFsaWQgY3VydmUiKSxOKHRoaXMuZy5tdWwodGhpcy5uKS5pc0luZmluaXR5KCksIkludmFsaWQgY3VydmUsIEcqTiAhPSBPIil9ZnVuY3Rpb24gSyhKLHNlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYWUsSix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7''@;'; put 'put ''dmFyIG9lPW5ldyB0ZShzZSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhZSxKLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2YWx1ZTpvZX0pLG9lfX0pfWFlLlByZXNldEN1cnZlPXRlLEsoInAxOTIiLHt0eXBlOiJzaG9ydCIscHJpbWU6InAxOTIiLHA6ImZmZmZmZmZm''@;'; put 'put ''IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiNjQyMTA1MTkgZTU5YzgwZTcgMGZhN2U5YWIgNzIyNDMwNDkgZmViOGRlZWMgYzE0NmI5YjEiLG46''@;'; put 'put ''ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDk5ZGVmODM2IDE0NmJjOWIxIGI0ZDIyODMxIixoYXNoOlkuc2hhMjU2LGdSZWQ6ITEsZzpbIjE4OGRhODBlIGIwMzA5MGY2IDdjYmYyMGViIDQzYTE4ODAwIGY0ZmYwYWZkIDgyZmYxMDEyIiwiMDcxOTJiOTUgZmZjOGRhNzggNjMxMDExZWQg''@;'; put 'put ''NmIyNGNkZDUgNzNmOTc3YTEgMWU3OTQ4MTEiXX0pLEsoInAyMjQiLHt0eXBlOiJzaG9ydCIscHJpbWU6InAyMjQiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBm''@;'; put 'put ''ZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSIsYjoiYjQwNTBhODUgMGMwNGIzYWIgZjU0MTMyNTYgNTA0NGIwYjcgZDdiZmQ4YmEgMjcwYjM5NDMgMjM1NWZmYjQiLG46ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmYxNmEyIGUwYjhmMDNlIDEzZGQyOTQ1IDVjNWMy''@;'; put 'put ''YTNkIixoYXNoOlkuc2hhMjU2LGdSZWQ6ITEsZzpbImI3MGUwY2JkIDZiYjRiZjdmIDMyMTM5MGI5IDRhMDNjMWQzIDU2YzIxMTIyIDM0MzI4MGQ2IDExNWMxZDIxIiwiYmQzNzYzODggYjVmNzIzZmIgNGMyMmRmZTYgY2Q0Mzc1YTAgNWEwNzQ3NjQgNDRkNTgxOTkgODUwMDdlMzQiXX0pLEso''@;'; put 'put ''InAyNTYiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiJmZmZmZmZmZiAwMDAwMDAwMSAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYg''@;'; put 'put ''ZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjVhYzYzNWQ4IGFhM2E5M2U3IGIzZWJiZDU1IDc2OTg4NmJjIDY1MWQwNmIwIGNjNTNiMGY2IDNiY2UzYzNlIDI3ZDI2MDRiIixuOiJmZmZmZmZmZiAwMDAwMDAwMCBmZmZmZmZmZiBmZmZmZmZmZiBiY2U2ZmFhZCBhNzE3OWU4NCBmM2I5Y2FjMiBmYzYz''@;'; put 'put ''MjU1MSIsaGFzaDpZLnNoYTI1NixnUmVkOiExLGc6WyI2YjE3ZDFmMiBlMTJjNDI0NyBmOGJjZTZlNSA2M2E0NDBmMiA3NzAzN2Q4MSAyZGViMzNhMCBmNGExMzk0NSBkODk4YzI5NiIsIjRmZTM0MmUyIGZlMWE3ZjliIDhlZTdlYjRhIDdjMGY5ZTE2IDJiY2UzMzU3IDZiMzE1ZWNlIGNiYjY0''@;'; put 'put ''MDY4IDM3YmY1MWY1Il19KSxLKCJwMzg0Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYiLGE6''@;'; put 'put ''ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZjIixiOiJiMzMxMmZhNyBlMjNlZTdlNCA5ODhlMDU2YiBlM2Y4MmQxOSAxODFkOWM2ZSBmZTgxNDEx''@;'; put 'put ''MiAwMzE0MDg4ZiA1MDEzODc1YSBjNjU2Mzk4ZCA4YTJlZDE5ZCAyYTg1YzhlZCBkM2VjMmFlZiIsbjoiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgYzc2MzRkODEgZjQzNzJkZGYgNTgxYTBkYjIgNDhiMGE3N2EgZWNlYzE5NmEgY2NjNTI5''@;'; put 'put ''NzMiLGhhc2g6WS5zaGEzODQsZ1JlZDohMSxnOlsiYWE4N2NhMjIgYmU4YjA1MzcgOGViMWM3MWUgZjMyMGFkNzQgNmUxZDNiNjIgOGJhNzliOTggNTlmNzQxZTAgODI1NDJhMzggNTUwMmYyNWQgYmY1NTI5NmMgM2E1NDVlMzggNzI3NjBhYjciLCIzNjE3ZGU0YSA5NjI2MmM2ZiA1ZDllOThi''@;'; put 'put ''ZiA5MjkyZGMyOSBmOGY0MWRiZCAyODlhMTQ3YyBlOWRhMzExMyBiNWYwYjhjMCAwYTYwYjFjZSAxZDdlODE5ZCA3YTQzMWQ3YyA5MGVhMGU1ZiJdfSksSygicDUyMSIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; put 'put ''ZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIixhOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZm''@;'; put 'put ''ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYyIsYjoiMDAwMDAwNTEgOTUzZWI5NjEgOGUxYzlhMWYgOTI5YTIxYTAgYjY4NTQwZWUgYTJkYTcyNWIgOTli''@;'; put 'put ''MzE1ZjMgYjhiNDg5OTEgOGVmMTA5ZTEgNTYxOTM5NTEgZWM3ZTkzN2IgMTY1MmMwYmQgM2JiMWJmMDcgMzU3M2RmODggM2QyYzM0ZjEgZWY0NTFmZDQgNmI1MDNmMDAiLG46IjAwMDAwMWZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZm''@;'; put 'put ''ZmZmZmZmIGZmZmZmZmZhIDUxODY4NzgzIGJmMmY5NjZiIDdmY2MwMTQ4IGY3MDlhNWQwIDNiYjVjOWI4IDg5OWM0N2FlIGJiNmZiNzFlIDkxMzg2NDA5IixoYXNoOlkuc2hhNTEyLGdSZWQ6ITEsZzpbIjAwMDAwMGM2IDg1OGUwNmI3IDA0MDRlOWNkIDllM2VjYjY2IDIzOTViNDQyIDljNjQ4''@;'; put 'put ''MTM5IDA1M2ZiNTIxIGY4MjhhZjYwIDZiNGQzZGJhIGExNGI1ZTc3IGVmZTc1OTI4IGZlMWRjMTI3IGEyZmZhOGRlIDMzNDhiM2MxIDg1NmE0MjliIGY5N2U3ZTMxIGMyZTViZDY2IiwiMDAwMDAxMTggMzkyOTZhNzggOWEzYmMwMDQgNWM4YTVmYjQgMmM3ZDFiZDkgOThmNTQ0NDkgNTc5YjQ0''@;'; put 'put ''NjggMTdhZmJkMTcgMjczZTY2MmMgOTdlZTcyOTkgNWVmNDI2NDAgYzU1MGI5MDEgM2ZhZDA3NjEgMzUzYzcwODYgYTI3MmMyNDAgODhiZTk0NzYgOWZkMTY2NTAiXX0pLEsoImN1cnZlMjU1MTkiLHt0eXBlOiJtb250IixwcmltZToicDI1NTE5IixwOiI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZm''@;'; put 'put ''ZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIixhOiI3NmQwNiIsYjoiMSIsbjoiMTAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIDE0ZGVmOWRlYTJmNzljZDYgNTgxMjYzMWE1Y2Y1ZDNlZCIsaGFzaDpZLnNoYTI1NixnUmVkOiExLGc6WyI5Il19''@;'; put 'put ''KSxLKCJlZDI1NTE5Iix7dHlwZToiZWR3YXJkcyIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiLTEiLGM6IjEiLGQ6IjUyMDM2Y2VlMmI2ZmZlNzMgOGNjNzQwNzk3Nzc5ZTg5''@;'; put 'put ''OCAwMDcwMGE0ZDQxNDFkOGFiIDc1ZWI0ZGNhMTM1OTc4YTMiLG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6WS5zaGEyNTYsZ1JlZDohMSxnOlsiMjE2OTM2ZDNjZDZlNTNmZWMwYTRlMjMxZmRkNmRj''@;'; put 'put ''NWM2OTJjYzc2MDk1MjVhN2IyYzk1NjJkNjA4ZjI1ZDUxYSIsIjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NTgiXX0pO3RyeXtyZT1qKDEwMzcpfWNhdGNoKEope3JlPXZvaWQgMH1LKCJzZWNwMjU2azEiLHt0eXBlOiJzaG9y''@;'; put 'put ''dCIscHJpbWU6ImsyNTYiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIixhOiIwIixiOiI3IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBiYWFlZGNlNiBhZjQ4YTAzYiBiZmQy''@;'; put 'put ''NWU4YyBkMDM2NDE0MSIsaDoiMSIsaGFzaDpZLnNoYTI1NixiZXRhOiI3YWU5NmEyYjY1N2MwNzEwNmU2NDQ3OWVhYzM0MzRlOTljZjA0OTc1MTJmNTg5OTVjMTM5NmMyODcxOTUwMWVlIixsYW1iZGE6IjUzNjNhZDRjYzA1YzMwZTBhNTI2MWMwMjg4MTI2NDVhMTIyZTIyZWEyMDgxNjY3OGRm''@;'; put 'put ''MDI5NjdjMWIyM2JkNzIiLGJhc2lzOlt7YToiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUiLGI6Ii1lNDQzN2VkNjAxMGU4ODI4NmY1NDdmYTkwYWJmZTRjMyJ9LHthOiIxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgiLGI6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBl''@;'; put 'put ''NDkyODRlYjE1In1dLGdSZWQ6ITEsZzpbIjc5YmU2NjdlZjlkY2JiYWM1NWEwNjI5NWNlODcwYjA3MDI5YmZjZGIyZGNlMjhkOTU5ZjI4MTViMTZmODE3OTgiLCI0ODNhZGE3NzI2YTNjNDY1NWRhNGZiZmMwZTExMDhhOGZkMTdiNDQ4YTY4NTU0MTk5YzQ3ZDA4ZmZiMTBkNGI4IixyZV19KX0s''@;'; put 'put ''Nzk1NDooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDM3ODUpLGFlPWooMjE1NiksWT1qKDk1MyksVz1qKDU0MjcpLE49aig5OTMxKSx0ZT1ZLmFzc2VydCxLPWooMTI1MSksSj1qKDYxMSk7ZnVuY3Rpb24gc2Uob2Upe2lmKCEodGhpcyBpbnN0YW5jZW9mIHNlKSlyZXR1cm4gbmV3''@;'; put 'put ''IHNlKG9lKTsic3RyaW5nIj09dHlwZW9mIG9lJiYodGUoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFcsb2UpLCJVbmtub3duIGN1cnZlICIrb2UpLG9lPVdbb2VdKSxvZSBpbnN0YW5jZW9mIFcuUHJlc2V0Q3VydmUmJihvZT17Y3VydmU6b2V9KSx0aGlzLmN1cnZlPW9l''@;'; put 'put ''LmN1cnZlLmN1cnZlLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5uaD10aGlzLm4udXNocm4oMSksdGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLmc9b2UuY3VydmUuZyx0aGlzLmcucHJlY29tcHV0ZShvZS5jdXJ2ZS5uLmJpdExlbmd0aCgpKzEpLHRoaXMuaGFzaD1vZS5oYXNofHxvZS5jdXJ2''@;'; put 'put ''ZS5oYXNofVUuZXhwb3J0cz1zZSxzZS5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbihvZSl7cmV0dXJuIG5ldyBLKHRoaXMsb2UpfSxzZS5wcm90b3R5cGUua2V5RnJvbVByaXZhdGU9ZnVuY3Rpb24ob2UsY2Upe3JldHVybiBLLmZyb21Qcml2YXRlKHRoaXMsb2UsY2UpfSxzZS5wcm90b3R5''@;'; put 'put ''cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIEsuZnJvbVB1YmxpYyh0aGlzLG9lLGNlKX0sc2UucHJvdG90eXBlLmdlbktleVBhaXI9ZnVuY3Rpb24ob2Upe29lfHwob2U9e30pO2Zvcih2YXIgY2U9bmV3IGFlKHtoYXNoOnRoaXMuaGFzaCxwZXJzOm9lLnBlcnMscGVy''@;'; put 'put ''c0VuYzpvZS5wZXJzRW5jfHwidXRmOCIsZW50cm9weTpvZS5lbnRyb3B5fHxOKHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLGVudHJvcHlFbmM6b2UuZW50cm9weSYmb2UuZW50cm9weUVuY3x8InV0ZjgiLG5vbmNlOnRoaXMubi50b0FycmF5KCl9KSxkZT10aGlzLm4uYnl0ZUxlbmd0aCgpLHZl''@;'; put 'put ''PXRoaXMubi5zdWIobmV3IHJlKDIpKTs7KXt2YXIgQWU9bmV3IHJlKGNlLmdlbmVyYXRlKGRlKSk7aWYoIShBZS5jbXAodmUpPjApKXJldHVybiBBZS5pYWRkbigxKSx0aGlzLmtleUZyb21Qcml2YXRlKEFlKX19LHNlLnByb3RvdHlwZS5fdHJ1bmNhdGVUb049ZnVuY3Rpb24ob2UsY2Upe3Zh''@;'; put 'put ''ciBkZT04Km9lLmJ5dGVMZW5ndGgoKS10aGlzLm4uYml0TGVuZ3RoKCk7cmV0dXJuIGRlPjAmJihvZT1vZS51c2hybihkZSkpLCFjZSYmb2UuY21wKHRoaXMubik+PTA/b2Uuc3ViKHRoaXMubik6b2V9LHNlLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKG9lLGNlLGRlLHZlKXsib2JqZWN0Ij09''@;'; put 'put ''dHlwZW9mIGRlJiYodmU9ZGUsZGU9bnVsbCksdmV8fCh2ZT17fSksY2U9dGhpcy5rZXlGcm9tUHJpdmF0ZShjZSxkZSksb2U9dGhpcy5fdHJ1bmNhdGVUb04obmV3IHJlKG9lLDE2KSk7Zm9yKHZhciBBZT10aGlzLm4uYnl0ZUxlbmd0aCgpLGtlPWNlLmdldFByaXZhdGUoKS50b0FycmF5KCJi''@;'; put 'put ''ZSIsQWUpLFNlPW9lLnRvQXJyYXkoImJlIixBZSksSWU9bmV3IGFlKHtoYXNoOnRoaXMuaGFzaCxlbnRyb3B5OmtlLG5vbmNlOlNlLHBlcnM6dmUucGVycyxwZXJzRW5jOnZlLnBlcnNFbmN8fCJ1dGY4In0pLFRlPXRoaXMubi5zdWIobmV3IHJlKDEpKSxNZT0wOztNZSsrKXt2YXIgaGU9dmUu''@;'; put 'put ''az92ZS5rKE1lKTpuZXcgcmUoSWUuZ2VuZXJhdGUodGhpcy5uLmJ5dGVMZW5ndGgoKSkpO2lmKCEoKGhlPXRoaXMuX3RydW5jYXRlVG9OKGhlLCEwKSkuY21wbigxKTw9MHx8aGUuY21wKFRlKT49MCkpe3ZhciBPPXRoaXMuZy5tdWwoaGUpO2lmKCFPLmlzSW5maW5pdHkoKSl7dmFyIHo9Ty5n''@;'; put 'put ''ZXRYKCksZWU9ei51bW9kKHRoaXMubik7aWYoMCE9PWVlLmNtcG4oMCkpe3ZhciBuZT1oZS5pbnZtKHRoaXMubikubXVsKGVlLm11bChjZS5nZXRQcml2YXRlKCkpLmlhZGQob2UpKTtpZigwIT09KG5lPW5lLnVtb2QodGhpcy5uKSkuY21wbigwKSl7dmFyIHg9KE8uZ2V0WSgpLmlzT2RkKCk/''@;'; put 'put ''MTowKXwoMCE9PXouY21wKGVlKT8yOjApO3JldHVybiB2ZS5jYW5vbmljYWwmJm5lLmNtcCh0aGlzLm5oKT4wJiYobmU9dGhpcy5uLnN1YihuZSkseF49MSksbmV3IEooe3I6ZWUsczpuZSxyZWNvdmVyeVBhcmFtOnh9KX19fX19fSxzZS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKG9lLGNl''@;'; put 'put ''LGRlLHZlKXtvZT10aGlzLl90cnVuY2F0ZVRvTihuZXcgcmUob2UsMTYpKSxkZT10aGlzLmtleUZyb21QdWJsaWMoZGUsdmUpO3ZhciBBZT0oY2U9bmV3IEooY2UsImhleCIpKS5yLGtlPWNlLnM7aWYoQWUuY21wbigxKTwwfHxBZS5jbXAodGhpcy5uKT49MHx8a2UuY21wbigxKTwwfHxrZS5j''@;'; put 'put ''bXAodGhpcy5uKT49MClyZXR1cm4hMTt2YXIgU2UsSWU9a2UuaW52bSh0aGlzLm4pLFRlPUllLm11bChvZSkudW1vZCh0aGlzLm4pLE1lPUllLm11bChBZSkudW1vZCh0aGlzLm4pO3JldHVybiB0aGlzLmN1cnZlLl9tYXh3ZWxsVHJpY2s/IShTZT10aGlzLmcuam11bEFkZChUZSxkZS5nZXRQ''@;'; put 'put ''dWJsaWMoKSxNZSkpLmlzSW5maW5pdHkoKSYmU2UuZXFYVG9QKEFlKTohKFNlPXRoaXMuZy5tdWxBZGQoVGUsZGUuZ2V0UHVibGljKCksTWUpKS5pc0luZmluaXR5KCkmJjA9PT1TZS5nZXRYKCkudW1vZCh0aGlzLm4pLmNtcChBZSl9LHNlLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0''@;'; put 'put ''aW9uKG9lLGNlLGRlLHZlKXt0ZSgoMyZkZSk9PT1kZSwiVGhlIHJlY292ZXJ5IHBhcmFtIGlzIG1vcmUgdGhhbiB0d28gYml0cyIpLGNlPW5ldyBKKGNlLHZlKTt2YXIgQWU9dGhpcy5uLGtlPW5ldyByZShvZSksU2U9Y2UucixJZT1jZS5zLFRlPTEmZGUsTWU9ZGU+PjE7aWYoU2UuY21wKHRo''@;'; put 'put ''aXMuY3VydmUucC51bW9kKHRoaXMuY3VydmUubikpPj0wJiZNZSl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHNlbmNvbmQga2V5IGNhbmRpbmF0ZSIpO1NlPXRoaXMuY3VydmUucG9pbnRGcm9tWChNZT9TZS5hZGQodGhpcy5jdXJ2ZS5uKTpTZSxUZSk7dmFyIGhlPWNlLnIuaW52''@;'; put 'put ''bShBZSksTz1BZS5zdWIoa2UpLm11bChoZSkudW1vZChBZSksej1JZS5tdWwoaGUpLnVtb2QoQWUpO3JldHVybiB0aGlzLmcubXVsQWRkKE8sU2Useil9LHNlLnByb3RvdHlwZS5nZXRLZXlSZWNvdmVyeVBhcmFtPWZ1bmN0aW9uKG9lLGNlLGRlLHZlKXtpZihudWxsIT09KGNlPW5ldyBKKGNl''@;'; put 'put ''LHZlKSkucmVjb3ZlcnlQYXJhbSlyZXR1cm4gY2UucmVjb3ZlcnlQYXJhbTtmb3IodmFyIEFlPTA7QWU8NDtBZSsrKXt2YXIga2U7dHJ5e2tlPXRoaXMucmVjb3ZlclB1YktleShvZSxjZSxBZSl9Y2F0Y2goU2Upe2NvbnRpbnVlfWlmKGtlLmVxKGRlKSlyZXR1cm4gQWV9dGhyb3cgbmV3IEVy''@;'; put 'put ''cm9yKCJVbmFibGUgdG8gZmluZCB2YWxpZCByZWNvdmVyeSBmYWN0b3IiKX19LDEyNTE6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigzNzg1KSxhZT1qKDk1MykuYXNzZXJ0O2Z1bmN0aW9uIFkoVyxOKXt0aGlzLmVjPVcsdGhpcy5wcml2PW51bGwsdGhpcy5wdWI9bnVsbCxOLnBy''@;'; put 'put ''aXYmJnRoaXMuX2ltcG9ydFByaXZhdGUoTi5wcml2LE4ucHJpdkVuYyksTi5wdWImJnRoaXMuX2ltcG9ydFB1YmxpYyhOLnB1YixOLnB1YkVuYyl9VS5leHBvcnRzPVksWS5mcm9tUHVibGljPWZ1bmN0aW9uKFcsTix0ZSl7cmV0dXJuIE4gaW5zdGFuY2VvZiBZP046bmV3IFkoVyx7cHViOk4s''@;'; put 'put ''cHViRW5jOnRlfSl9LFkuZnJvbVByaXZhdGU9ZnVuY3Rpb24oVyxOLHRlKXtyZXR1cm4gTiBpbnN0YW5jZW9mIFk/TjpuZXcgWShXLHtwcml2Ok4scHJpdkVuYzp0ZX0pfSxZLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3ZhciBXPXRoaXMuZ2V0UHVibGljKCk7cmV0dXJuIFcuaXNJ''@;'; put 'put ''bmZpbml0eSgpP3tyZXN1bHQ6ITEscmVhc29uOiJJbnZhbGlkIHB1YmxpYyBrZXkifTpXLnZhbGlkYXRlKCk/Vy5tdWwodGhpcy5lYy5jdXJ2ZS5uKS5pc0luZmluaXR5KCk/e3Jlc3VsdDohMCxyZWFzb246bnVsbH06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgKiBOICE9IE8ifTp7''@;'; put 'put ''cmVzdWx0OiExLHJlYXNvbjoiUHVibGljIGtleSBpcyBub3QgYSBwb2ludCJ9fSxZLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oVyxOKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIFcmJihOPVcsVz1udWxsKSx0aGlzLnB1Ynx8KHRoaXMucHViPXRoaXMuZWMuZy5tdWwodGhpcy5wcml2''@;'; put 'put ''KSksTj90aGlzLnB1Yi5lbmNvZGUoTixXKTp0aGlzLnB1Yn0sWS5wcm90b3R5cGUuZ2V0UHJpdmF0ZT1mdW5jdGlvbihXKXtyZXR1cm4iaGV4Ij09PVc/dGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpOnRoaXMucHJpdn0sWS5wcm90b3R5cGUuX2ltcG9ydFByaXZhdGU9ZnVuY3Rpb24oVyxOKXt0''@;'; put 'put ''aGlzLnByaXY9bmV3IHJlKFcsTnx8MTYpLHRoaXMucHJpdj10aGlzLnByaXYudW1vZCh0aGlzLmVjLmN1cnZlLm4pfSxZLnByb3RvdHlwZS5faW1wb3J0UHVibGljPWZ1bmN0aW9uKFcsTil7aWYoVy54fHxXLnkpcmV0dXJuIm1vbnQiPT09dGhpcy5lYy5jdXJ2ZS50eXBlP2FlKFcueCwiTmVl''@;'; put 'put ''ZCB4IGNvb3JkaW5hdGUiKToic2hvcnQiIT09dGhpcy5lYy5jdXJ2ZS50eXBlJiYiZWR3YXJkcyIhPT10aGlzLmVjLmN1cnZlLnR5cGV8fGFlKFcueCYmVy55LCJOZWVkIGJvdGggeCBhbmQgeSBjb29yZGluYXRlIiksdm9pZCh0aGlzLnB1Yj10aGlzLmVjLmN1cnZlLnBvaW50KFcueCxXLnkp''@;'; put 'put ''KTt0aGlzLnB1Yj10aGlzLmVjLmN1cnZlLmRlY29kZVBvaW50KFcsTil9LFkucHJvdG90eXBlLmRlcml2ZT1mdW5jdGlvbihXKXtyZXR1cm4gVy52YWxpZGF0ZSgpfHxhZShXLnZhbGlkYXRlKCksInB1YmxpYyBwb2ludCBub3QgdmFsaWRhdGVkIiksVy5tdWwodGhpcy5wcml2KS5nZXRYKCl9''@;'; put 'put ''LFkucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oVyxOLHRlKXtyZXR1cm4gdGhpcy5lYy5zaWduKFcsdGhpcyxOLHRlKX0sWS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKFcsTil7cmV0dXJuIHRoaXMuZWMudmVyaWZ5KFcsTix0aGlzKX0sWS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiI8S2V5IHByaXY6ICIrKHRoaXMucHJpdiYmdGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpKSsiIHB1YjogIisodGhpcy5wdWImJnRoaXMucHViLmluc3BlY3QoKSkrIiA+In19LDYxMTooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDM3ODUpLGFlPWooOTUzKSxZPWFlLmFz''@;'; put 'put ''c2VydDtmdW5jdGlvbiBXKHNlLG9lKXtpZihzZSBpbnN0YW5jZW9mIFcpcmV0dXJuIHNlO3RoaXMuX2ltcG9ydERFUihzZSxvZSl8fChZKHNlLnImJnNlLnMsIlNpZ25hdHVyZSB3aXRob3V0IHIgb3IgcyIpLHRoaXMucj1uZXcgcmUoc2UuciwxNiksdGhpcy5zPW5ldyByZShzZS5zLDE2KSx0''@;'; put 'put ''aGlzLnJlY292ZXJ5UGFyYW09dm9pZCAwPT09c2UucmVjb3ZlcnlQYXJhbT9udWxsOnNlLnJlY292ZXJ5UGFyYW0pfWZ1bmN0aW9uIE4oKXt0aGlzLnBsYWNlPTB9ZnVuY3Rpb24gdGUoc2Usb2Upe3ZhciBjZT1zZVtvZS5wbGFjZSsrXTtpZighKDEyOCZjZSkpcmV0dXJuIGNlO3ZhciBkZT0x''@;'; put 'put ''NSZjZTtpZigwPT09ZGV8fGRlPjQpcmV0dXJuITE7Zm9yKHZhciB2ZT0wLEFlPTAsa2U9b2UucGxhY2U7QWU8ZGU7QWUrKyxrZSsrKXZlPDw9OCx2ZXw9c2Vba2VdLHZlPj4+PTA7cmV0dXJuISh2ZTw9MTI3KSYmKG9lLnBsYWNlPWtlLHZlKX1mdW5jdGlvbiBLKHNlKXtmb3IodmFyIG9lPTAs''@;'; put 'put ''Y2U9c2UubGVuZ3RoLTE7IXNlW29lXSYmISgxMjgmc2Vbb2UrMV0pJiZvZTxjZTspb2UrKztyZXR1cm4gMD09PW9lP3NlOnNlLnNsaWNlKG9lKX1mdW5jdGlvbiBKKHNlLG9lKXtpZihvZTwxMjgpc2UucHVzaChvZSk7ZWxzZXt2YXIgY2U9MSsoTWF0aC5sb2cob2UpL01hdGguTE4yPj4+Myk7''@;'; put 'put ''Zm9yKHNlLnB1c2goMTI4fGNlKTstLWNlOylzZS5wdXNoKG9lPj4+KGNlPDwzKSYyNTUpO3NlLnB1c2gob2UpfX1VLmV4cG9ydHM9VyxXLnByb3RvdHlwZS5faW1wb3J0REVSPWZ1bmN0aW9uKHNlLG9lKXtzZT1hZS50b0FycmF5KHNlLG9lKTt2YXIgY2U9bmV3IE47aWYoNDghPT1zZVtjZS5w''@;'; put 'put ''bGFjZSsrXSlyZXR1cm4hMTt2YXIgZGU9dGUoc2UsY2UpO2lmKCExPT09ZGV8fGRlK2NlLnBsYWNlIT09c2UubGVuZ3RofHwyIT09c2VbY2UucGxhY2UrK10pcmV0dXJuITE7dmFyIHZlPXRlKHNlLGNlKTtpZighMT09PXZlKXJldHVybiExO3ZhciBBZT1zZS5zbGljZShjZS5wbGFjZSx2ZStj''@;'; put 'put ''ZS5wbGFjZSk7aWYoY2UucGxhY2UrPXZlLDIhPT1zZVtjZS5wbGFjZSsrXSlyZXR1cm4hMTt2YXIga2U9dGUoc2UsY2UpO2lmKCExPT09a2V8fHNlLmxlbmd0aCE9PWtlK2NlLnBsYWNlKXJldHVybiExO3ZhciBTZT1zZS5zbGljZShjZS5wbGFjZSxrZStjZS5wbGFjZSk7aWYoMD09PUFlWzBd''@;'; put 'put ''KXtpZighKDEyOCZBZVsxXSkpcmV0dXJuITE7QWU9QWUuc2xpY2UoMSl9aWYoMD09PVNlWzBdKXtpZighKDEyOCZTZVsxXSkpcmV0dXJuITE7U2U9U2Uuc2xpY2UoMSl9cmV0dXJuIHRoaXMucj1uZXcgcmUoQWUpLHRoaXMucz1uZXcgcmUoU2UpLHRoaXMucmVjb3ZlcnlQYXJhbT1udWxsLCEw''@;'; put 'put ''fSxXLnByb3RvdHlwZS50b0RFUj1mdW5jdGlvbihzZSl7dmFyIG9lPXRoaXMuci50b0FycmF5KCksY2U9dGhpcy5zLnRvQXJyYXkoKTtmb3IoMTI4Jm9lWzBdJiYob2U9WzBdLmNvbmNhdChvZSkpLDEyOCZjZVswXSYmKGNlPVswXS5jb25jYXQoY2UpKSxvZT1LKG9lKSxjZT1LKGNlKTshKGNl''@;'; put 'put ''WzBdfHwxMjgmY2VbMV0pOyljZT1jZS5zbGljZSgxKTt2YXIgZGU9WzJdO0ooZGUsb2UubGVuZ3RoKSwoZGU9ZGUuY29uY2F0KG9lKSkucHVzaCgyKSxKKGRlLGNlLmxlbmd0aCk7dmFyIHZlPWRlLmNvbmNhdChjZSksQWU9WzQ4XTtyZXR1cm4gSihBZSx2ZS5sZW5ndGgpLEFlPUFlLmNvbmNh''@;'; put 'put ''dCh2ZSksYWUuZW5jb2RlKEFlLHNlKX19LDU5ODA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigzNzE1KSxhZT1qKDU0MjcpLFk9aig5NTMpLFc9WS5hc3NlcnQsTj1ZLnBhcnNlQnl0ZXMsdGU9aig5MDg3KSxLPWooMzYyMik7ZnVuY3Rpb24gSihzZSl7aWYoVygiZWQyNTUxOSI9''@;'; put 'put ''PT1zZSwib25seSB0ZXN0ZWQgd2l0aCBlZDI1NTE5IHNvIGZhciIpLCEodGhpcyBpbnN0YW5jZW9mIEopKXJldHVybiBuZXcgSihzZSk7dGhpcy5jdXJ2ZT1zZT1hZVtzZV0uY3VydmUsdGhpcy5nPXNlLmcsdGhpcy5nLnByZWNvbXB1dGUoc2Uubi5iaXRMZW5ndGgoKSsxKSx0aGlzLnBvaW50''@;'; put 'put ''Q2xhc3M9c2UucG9pbnQoKS5jb25zdHJ1Y3Rvcix0aGlzLmVuY29kaW5nTGVuZ3RoPU1hdGguY2VpbChzZS5uLmJpdExlbmd0aCgpLzgpLHRoaXMuaGFzaD1yZS5zaGE1MTJ9VS5leHBvcnRzPUosSi5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihzZSxvZSl7c2U9TihzZSk7dmFyIGNlPXRoaXMu''@;'; put 'put ''a2V5RnJvbVNlY3JldChvZSksZGU9dGhpcy5oYXNoSW50KGNlLm1lc3NhZ2VQcmVmaXgoKSxzZSksdmU9dGhpcy5nLm11bChkZSksQWU9dGhpcy5lbmNvZGVQb2ludCh2ZSksa2U9dGhpcy5oYXNoSW50KEFlLGNlLnB1YkJ5dGVzKCksc2UpLm11bChjZS5wcml2KCkpLFNlPWRlLmFkZChrZSku''@;'; put 'put ''dW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6dmUsUzpTZSxSZW5jb2RlZDpBZX0pfSxKLnByb3RvdHlwZS52ZXJpZnk9ZnVuY3Rpb24oc2Usb2UsY2Upe3NlPU4oc2UpLG9lPXRoaXMubWFrZVNpZ25hdHVyZShvZSk7dmFyIGRlPXRoaXMua2V5RnJvbVB1''@;'; put 'put ''YmxpYyhjZSksdmU9dGhpcy5oYXNoSW50KG9lLlJlbmNvZGVkKCksZGUucHViQnl0ZXMoKSxzZSksQWU9dGhpcy5nLm11bChvZS5TKCkpO3JldHVybiBvZS5SKCkuYWRkKGRlLnB1YigpLm11bCh2ZSkpLmVxKEFlKX0sSi5wcm90b3R5cGUuaGFzaEludD1mdW5jdGlvbigpe2Zvcih2YXIgc2U9''@;'; put 'put ''dGhpcy5oYXNoKCksb2U9MDtvZTxhcmd1bWVudHMubGVuZ3RoO29lKyspc2UudXBkYXRlKGFyZ3VtZW50c1tvZV0pO3JldHVybiBZLmludEZyb21MRShzZS5kaWdlc3QoKSkudW1vZCh0aGlzLmN1cnZlLm4pfSxKLnByb3RvdHlwZS5rZXlGcm9tUHVibGljPWZ1bmN0aW9uKHNlKXtyZXR1cm4g''@;'; put 'put ''dGUuZnJvbVB1YmxpYyh0aGlzLHNlKX0sSi5wcm90b3R5cGUua2V5RnJvbVNlY3JldD1mdW5jdGlvbihzZSl7cmV0dXJuIHRlLmZyb21TZWNyZXQodGhpcyxzZSl9LEoucHJvdG90eXBlLm1ha2VTaWduYXR1cmU9ZnVuY3Rpb24oc2Upe3JldHVybiBzZSBpbnN0YW5jZW9mIEs/c2U6bmV3IEso''@;'; put 'put ''dGhpcyxzZSl9LEoucHJvdG90eXBlLmVuY29kZVBvaW50PWZ1bmN0aW9uKHNlKXt2YXIgb2U9c2UuZ2V0WSgpLnRvQXJyYXkoImxlIix0aGlzLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gb2VbdGhpcy5lbmNvZGluZ0xlbmd0aC0xXXw9c2UuZ2V0WCgpLmlzT2RkKCk/MTI4OjAsb2V9LEoucHJv''@;'; put 'put ''dG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKHNlKXt2YXIgb2U9KHNlPVkucGFyc2VCeXRlcyhzZSkpLmxlbmd0aC0xLGNlPXNlLnNsaWNlKDAsb2UpLmNvbmNhdCgtMTI5JnNlW29lXSksZGU9MCE9KDEyOCZzZVtvZV0pLHZlPVkuaW50RnJvbUxFKGNlKTtyZXR1cm4gdGhpcy5jdXJ2ZS5w''@;'; put 'put ''b2ludEZyb21ZKHZlLGRlKX0sSi5wcm90b3R5cGUuZW5jb2RlSW50PWZ1bmN0aW9uKHNlKXtyZXR1cm4gc2UudG9BcnJheSgibGUiLHRoaXMuZW5jb2RpbmdMZW5ndGgpfSxKLnByb3RvdHlwZS5kZWNvZGVJbnQ9ZnVuY3Rpb24oc2Upe3JldHVybiBZLmludEZyb21MRShzZSl9LEoucHJvdG90''@;'; put 'put ''eXBlLmlzUG9pbnQ9ZnVuY3Rpb24oc2Upe3JldHVybiBzZSBpbnN0YW5jZW9mIHRoaXMucG9pbnRDbGFzc319LDkwODc6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig5NTMpLGFlPXJlLmFzc2VydCxZPXJlLnBhcnNlQnl0ZXMsVz1yZS5jYWNoZWRQcm9wZXJ0eTtmdW5jdGlvbiBO''@;'; put 'put ''KHRlLEspe3RoaXMuZWRkc2E9dGUsdGhpcy5fc2VjcmV0PVkoSy5zZWNyZXQpLHRlLmlzUG9pbnQoSy5wdWIpP3RoaXMuX3B1Yj1LLnB1Yjp0aGlzLl9wdWJCeXRlcz1ZKEsucHViKX1OLmZyb21QdWJsaWM9ZnVuY3Rpb24odGUsSyl7cmV0dXJuIEsgaW5zdGFuY2VvZiBOP0s6bmV3IE4odGUs''@;'; put 'put ''e3B1YjpLfSl9LE4uZnJvbVNlY3JldD1mdW5jdGlvbih0ZSxLKXtyZXR1cm4gSyBpbnN0YW5jZW9mIE4/SzpuZXcgTih0ZSx7c2VjcmV0Okt9KX0sTi5wcm90b3R5cGUuc2VjcmV0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NlY3JldH0sVyhOLCJwdWJCeXRlcyIsZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5lZGRzYS5lbmNvZGVQb2ludCh0aGlzLnB1YigpKX0pLFcoTiwicHViIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wdWJCeXRlcz90aGlzLmVkZHNhLmRlY29kZVBvaW50KHRoaXMuX3B1YkJ5dGVzKTp0aGlzLmVkZHNhLmcubXVsKHRoaXMucHJpdigpKX0pLFcoTiwicHJpdkJ5''@;'; put 'put ''dGVzIixmdW5jdGlvbigpe3ZhciB0ZT10aGlzLmVkZHNhLEs9dGhpcy5oYXNoKCksSj10ZS5lbmNvZGluZ0xlbmd0aC0xLHNlPUsuc2xpY2UoMCx0ZS5lbmNvZGluZ0xlbmd0aCk7cmV0dXJuIHNlWzBdJj0yNDgsc2VbSl0mPTEyNyxzZVtKXXw9NjQsc2V9KSxXKE4sInByaXYiLGZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIHRoaXMuZWRkc2EuZGVjb2RlSW50KHRoaXMucHJpdkJ5dGVzKCkpfSksVyhOLCJoYXNoIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmhhc2goKS51cGRhdGUodGhpcy5zZWNyZXQoKSkuZGlnZXN0KCl9KSxXKE4sIm1lc3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksTi5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbih0ZSl7cmV0dXJuIGFlKHRoaXMuX3NlY3JldCwiS2V5UGFpciBjYW4gb25seSB2ZXJpZnkiKSx0aGlzLmVkZHNhLnNpZ24odGUsdGhpcyl9LE4ucHJvdG90''@;'; put 'put ''eXBlLnZlcmlmeT1mdW5jdGlvbih0ZSxLKXtyZXR1cm4gdGhpcy5lZGRzYS52ZXJpZnkodGUsSyx0aGlzKX0sTi5wcm90b3R5cGUuZ2V0U2VjcmV0PWZ1bmN0aW9uKHRlKXtyZXR1cm4gYWUodGhpcy5fc2VjcmV0LCJLZXlQYWlyIGlzIHB1YmxpYyBvbmx5IikscmUuZW5jb2RlKHRoaXMuc2Vj''@;'; put 'put ''cmV0KCksdGUpfSxOLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24odGUpe3JldHVybiByZS5lbmNvZGUodGhpcy5wdWJCeXRlcygpLHRlKX0sVS5leHBvcnRzPU59LDM2MjI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigzNzg1KSxhZT1qKDk1MyksWT1hZS5hc3NlcnQsVz1h''@;'; put 'put ''ZS5jYWNoZWRQcm9wZXJ0eSxOPWFlLnBhcnNlQnl0ZXM7ZnVuY3Rpb24gdGUoSyxKKXt0aGlzLmVkZHNhPUssIm9iamVjdCIhPXR5cGVvZiBKJiYoSj1OKEopKSxBcnJheS5pc0FycmF5KEopJiYoSj17UjpKLnNsaWNlKDAsSy5lbmNvZGluZ0xlbmd0aCksUzpKLnNsaWNlKEsuZW5jb2RpbmdM''@;'; put 'put ''ZW5ndGgpfSksWShKLlImJkouUywiU2lnbmF0dXJlIHdpdGhvdXQgUiBvciBTIiksSy5pc1BvaW50KEouUikmJih0aGlzLl9SPUouUiksSi5TIGluc3RhbmNlb2YgcmUmJih0aGlzLl9TPUouUyksdGhpcy5fUmVuY29kZWQ9QXJyYXkuaXNBcnJheShKLlIpP0ouUjpKLlJlbmNvZGVkLHRoaXMu''@;'; put 'put ''X1NlbmNvZGVkPUFycmF5LmlzQXJyYXkoSi5TKT9KLlM6Si5TZW5jb2RlZH1XKHRlLCJTIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLlNlbmNvZGVkKCkpfSksVyh0ZSwiUiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2ludCh0aGlz''@;'; put 'put ''LlJlbmNvZGVkKCkpfSksVyh0ZSwiUmVuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpfSksVyh0ZSwiU2VuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlSW50KHRoaXMuUygpKX0pLHRlLnByb3RvdHlwZS50''@;'; put 'put ''b0J5dGVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuUmVuY29kZWQoKS5jb25jYXQodGhpcy5TZW5jb2RlZCgpKX0sdGUucHJvdG90eXBlLnRvSGV4PWZ1bmN0aW9uKCl7cmV0dXJuIGFlLmVuY29kZSh0aGlzLnRvQnl0ZXMoKSwiaGV4IikudG9VcHBlckNhc2UoKX0sVS5leHBvcnRzPXRlfSwx''@;'; put 'put ''MDM3OlU9PntVLmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDczOTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMy''@;'; put 'put ''Y2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdkZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4''@;'; put 'put ''NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRkMjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJdLFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1''@;'; put 'put ''NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQw''@;'; put 'put ''YTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2''@;'; put 'put ''NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2RkN2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5''@;'; put 'put ''OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMzMDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3''@;'; put 'put ''YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRmMThmMjk0NTZhMDBkIl0sWyJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVl''@;'; put 'put ''Njg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQy''@;'; put 'put ''YmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdiYjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAiLCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0''@;'; put 'put ''NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBiNzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNhOTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1''@;'; put 'put ''ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgw''@;'; put 'put ''ZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIxNjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2''@;'; put 'put ''YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDli''@;'; put 'put ''ZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdm''@;'; put 'put ''ODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjkyMjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4''@;'; put 'put ''ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0sWyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZh''@;'; put 'put ''NmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEzYzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRh''@;'; put 'put ''ZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUz''@;'; put 'put ''MGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIyN2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdjZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2''@;'; put 'put ''ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZkNzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAzMmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJh''@;'; put 'put ''YTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJl''@;'; put 'put ''OWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWEx''@;'; put 'put ''ZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQiLCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYz''@;'; put 'put ''MjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVkNDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBh''@;'; put 'put ''ZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgzOWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhjYjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVl''@;'; put 'put ''ODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZmODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFl''@;'; put 'put ''MTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNh''@;'; put 'put ''MzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5''@;'; put 'put ''NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2UwNmRlMWRhZGYxNmU1NjYxZGIzYzRiM2FlNmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4''@;'; put 'put ''NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0sWyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0''@;'; put 'put ''NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRmOWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1''@;'; put 'put ''MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUyMzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUz''@;'; put 'put ''MjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTllNSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgi''@;'; put 'put ''XSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZlNThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNlZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYy''@;'; put 'put ''OWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNmYzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5''@;'; put 'put ''YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEwOTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJl''@;'; put 'put ''MjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRhMjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJj''@;'; put 'put ''ZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjljOTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5''@;'; put 'put ''ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFhNmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFi''@;'; put 'put ''NmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5''@;'; put 'put ''IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5''@;'; put 'put ''ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZhODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIzOTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3''@;'; put 'put ''ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5''@;'; put 'put ''MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRkNmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxbIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1''@;'; put 'put ''MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkzOTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1''@;'; put 'put ''Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZjY2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcw''@;'; put 'put ''Zjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2UwNzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5''@;'; put 'put ''Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYzOWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5Nzlh''@;'; put 'put ''ZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEz''@;'; put 'put ''YTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThiYzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkz''@;'; put 'put ''Mzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRiYjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4''@;'; put 'put ''ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhmYTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMxY2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3''@;'; put 'put ''OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMz''@;'; put 'put ''MTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRjMjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0sWyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2''@;'; put 'put ''MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNiZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJj''@;'; put 'put ''YTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJkZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFk''@;'; put 'put ''ZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAwOGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYx''@;'; put 'put ''YiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmViNjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUz''@;'; put 'put ''MDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRkYzlmZjZhMjZiNTgiXSxbImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRm''@;'; put 'put ''YWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5''@;'; put 'put ''M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcxZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIsIjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIx''@;'; put 'put ''MDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUxMDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgy''@;'; put 'put ''NzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNmYzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJm''@;'; put 'put ''NTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdk''@;'; put 'put ''YiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBjZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZm''@;'; put 'put ''MTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVhZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlk''@;'; put 'put ''NjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIwNjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0''@;'; put 'put ''OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2FiNDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxbIjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2Yjli''@;'; put 'put ''OGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkzNzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2Zh''@;'; put 'put ''OWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJiNDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQz''@;'; put 'put ''NDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYzIiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJd''@;'; put 'put ''LFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTliYTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVj''@;'; put 'put ''N2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2RiYTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1''@;'; put 'put ''MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUyYTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2Ux''@;'; put 'put ''M2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2UyN2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMy''@;'; put 'put ''YTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNh''@;'; put 'put ''NzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNmYzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2Yy''@;'; put 'put ''YjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJdLFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIs''@;'; put 'put ''IjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhmNzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQx''@;'; put 'put ''ODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNm''@;'; put 'put ''MmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBk''@;'; put 'put ''YTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIzMTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1''@;'; put 'put ''NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJiMjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUy''@;'; put 'put ''ZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVmN2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3''@;'; put 'put ''MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJd''@;'; put 'put ''LFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMwMjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZh''@;'; put 'put ''YmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNhZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4''@;'; put 'put ''YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4''@;'; put 'put ''ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2''@;'; put 'put ''MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFjZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4''@;'; put 'put ''MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2UxZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2''@;'; put 'put ''NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBkIl0sWyJhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQw''@;'; put 'put ''IiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDczNWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1''@;'; put 'put ''M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIx''@;'; put 'put ''Mjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMx''@;'; put 'put ''YzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdmYjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3''@;'; put 'put ''MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFjMjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1''@;'; put 'put ''ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUx''@;'; put 'put ''ZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJd''@;'; put 'put ''LFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2NhNTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFm''@;'; put 'put ''YTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEwMjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZi''@;'; put 'put ''MzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcwMTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5''@;'; put 'put ''YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFhNzBlYmY0YzFlNjY1YzFmZTliNSIsIjIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2''@;'; put 'put ''YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUxZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYz''@;'; put 'put ''YTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYyZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMz''@;'; put 'put ''ODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0sWyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2Iiwi''@;'; put 'put ''ZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZi''@;'; put 'put ''MzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjlj''@;'; put 'put ''ZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdm''@;'; put 'put ''MzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNjNmZlZDNjMzVlOTk5NTExIl0sWyIyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3''@;'; put 'put ''MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZiMGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRl''@;'; put 'put ''MDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIzYjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYz''@;'; put 'put ''NDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZmYjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVh''@;'; put 'put ''MDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNjZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1''@;'; put 'put ''MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4''@;'; put 'put ''ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3''@;'; put 'put ''NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3''@;'; put 'put ''YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEzNGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEw''@;'; put 'put ''ZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJdLFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2Nj''@;'; put 'put ''NTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMxNGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlk''@;'; put 'put ''NjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVhNGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBj''@;'; put 'put ''ZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2NjMzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4''@;'; put 'put ''Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdjZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4''@;'; put 'put ''MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAz''@;'; put 'put ''ZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlk''@;'; put 'put ''OGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEzMTRiYTg4NDY5NTllM2U4MmY3NGUyNiIsIjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRl''@;'; put 'put ''ZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2''@;'; put 'put ''M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2Mw''@;'; put 'put ''MDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBmNzciXSxbImRmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2Nl''@;'; put 'put ''ZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNmNDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBj''@;'; put 'put ''NTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFmMjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5''@;'; put 'put ''OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNiODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUx''@;'; put 'put ''NGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJdLFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFj''@;'; put 'put ''ZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIyNjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMx''@;'; put 'put ''MGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZlNDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRj''@;'; put 'put ''MWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1MjZhMSIsImNkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3''@;'; put 'put ''NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQy''@;'; put 'put ''NGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUwN2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhl''@;'; put 'put ''N2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlmMTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhm''@;'; put 'put ''ODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2NlNDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIsImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUy''@;'; put 'put ''Mjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2FhMmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4''@;'; put 'put ''NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDczNGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcw''@;'; put 'put ''NTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4''@;'; put 'put ''M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3''@;'; put 'put ''MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdkMjliZDVlZTlmMDhmIiwiZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2''@;'; put 'put ''OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNj''@;'; put 'put ''MzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0sWyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFk''@;'; put 'put ''ZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAxNWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMx''@;'; put 'put ''ZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNhNGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2''@;'; put 'put ''OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0''@;'; put 'put ''NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzExYTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2Vj''@;'; put 'put ''MWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZm''@;'; put 'put ''MTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMzNzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0''@;'; put 'put ''ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIyNDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTciLCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVh''@;'; put 'put ''Mzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhjYzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0''@;'; put 'put ''NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4NjhkN2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYy''@;'; put 'put ''MzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMx''@;'; put 'put ''ODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19LDk1MzooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1RLGFlPWooMzc4NSksWT1qKDk3NDYpLFc9aig0NTA0KTtyZS5hc3NlcnQ9WSxyZS50b0FycmF5''@;'; put 'put ''PVcudG9BcnJheSxyZS56ZXJvMj1XLnplcm8yLHJlLnRvSGV4PVcudG9IZXgscmUuZW5jb2RlPVcuZW5jb2RlLHJlLmdldE5BRj1mdW5jdGlvbihOLHRlLEspe3ZhciBKPW5ldyBBcnJheShNYXRoLm1heChOLmJpdExlbmd0aCgpLEspKzEpO0ouZmlsbCgwKTtmb3IodmFyIHNlPTE8PHRlKzEs''@;'; put 'put ''b2U9Ti5jbG9uZSgpLGNlPTA7Y2U8Si5sZW5ndGg7Y2UrKyl7dmFyIGRlLHZlPW9lLmFuZGxuKHNlLTEpO29lLmlzT2RkKCk/b2UuaXN1Ym4oZGU9dmU+KHNlPj4xKS0xPyhzZT4+MSktdmU6dmUpOmRlPTAsSltjZV09ZGUsb2UuaXVzaHJuKDEpfXJldHVybiBKfSxyZS5nZXRKU0Y9ZnVuY3Rp''@;'; put 'put ''b24oTix0ZSl7dmFyIEs9W1tdLFtdXTtOPU4uY2xvbmUoKSx0ZT10ZS5jbG9uZSgpO2Zvcih2YXIgSixzZT0wLG9lPTA7Ti5jbXBuKC1zZSk+MHx8dGUuY21wbigtb2UpPjA7KXt2YXIgY2UsZGUsdmU9Ti5hbmRsbigzKStzZSYzLEFlPXRlLmFuZGxuKDMpK29lJjM7Mz09PXZlJiYodmU9LTEp''@;'; put 'put ''LDM9PT1BZSYmKEFlPS0xKSxjZT0wPT0oMSZ2ZSk/MDozIT0oSj1OLmFuZGxuKDcpK3NlJjcpJiY1IT09Snx8MiE9PUFlP3ZlOi12ZSxLWzBdLnB1c2goY2UpLGRlPTA9PSgxJkFlKT8wOjMhPShKPXRlLmFuZGxuKDcpK29lJjcpJiY1IT09Snx8MiE9PXZlP0FlOi1BZSxLWzFdLnB1c2goZGUp''@;'; put 'put ''LDIqc2U9PT1jZSsxJiYoc2U9MS1zZSksMipvZT09PWRlKzEmJihvZT0xLW9lKSxOLml1c2hybigxKSx0ZS5pdXNocm4oMSl9cmV0dXJuIEt9LHJlLmNhY2hlZFByb3BlcnR5PWZ1bmN0aW9uKE4sdGUsSyl7dmFyIEo9Il8iK3RlO04ucHJvdG90eXBlW3RlXT1mdW5jdGlvbigpe3JldHVybiB2''@;'; put 'put ''b2lkIDAhPT10aGlzW0pdP3RoaXNbSl06dGhpc1tKXT1LLmNhbGwodGhpcyl9fSxyZS5wYXJzZUJ5dGVzPWZ1bmN0aW9uKE4pe3JldHVybiJzdHJpbmciPT10eXBlb2YgTj9yZS50b0FycmF5KE4sImhleCIpOk59LHJlLmludEZyb21MRT1mdW5jdGlvbihOKXtyZXR1cm4gbmV3IGFlKE4sImhl''@;'; put 'put ''eCIsImxlIil9fSwzNzg1OmZ1bmN0aW9uKFUsUSxqKXshZnVuY3Rpb24ocmUsYWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBZKHgsUCl7aWYoIXgpdGhyb3cgbmV3IEVycm9yKFB8fCJBc3NlcnRpb24gZmFpbGVkIil9ZnVuY3Rpb24gVyh4LFApe3guc3VwZXJfPVA7dmFyIFY9ZnVuY3Rpb24o''@;'; put 'put ''KXt9O1YucHJvdG90eXBlPVAucHJvdG90eXBlLHgucHJvdG90eXBlPW5ldyBWLHgucHJvdG90eXBlLmNvbnN0cnVjdG9yPXh9ZnVuY3Rpb24gTih4LFAsVil7aWYoTi5pc0JOKHgpKXJldHVybiB4O3RoaXMubmVnYXRpdmU9MCx0aGlzLndvcmRzPW51bGwsdGhpcy5sZW5ndGg9MCx0aGlzLnJl''@;'; put 'put ''ZD1udWxsLG51bGwhPT14JiYoImxlIiE9PVAmJiJiZSIhPT1QfHwoVj1QLFA9MTApLHRoaXMuX2luaXQoeHx8MCxQfHwxMCxWfHwiYmUiKSl9dmFyIHRlOyJvYmplY3QiPT10eXBlb2YgcmU/cmUuZXhwb3J0cz1OOmFlLkJOPU4sTi5CTj1OLE4ud29yZFNpemU9MjY7dHJ5e3RlPSJ1bmRlZmlu''@;'; put 'put ''ZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6aig1NTY4KS5CdWZmZXJ9Y2F0Y2goeCl7fWZ1bmN0aW9uIEsoeCxQKXt2YXIgVj14LmNoYXJDb2RlQXQoUCk7cmV0dXJuIFY+PTY1JiZWPD03MD9WLTU1OlY+PTk3JiZWPD0xMDI/Vi04NzpW''@;'; put 'put ''LTQ4JjE1fWZ1bmN0aW9uIEooeCxQLFYpe3ZhciBUPUsoeCxWKTtyZXR1cm4gVi0xPj1QJiYoVHw9Syh4LFYtMSk8PDQpLFR9ZnVuY3Rpb24gc2UoeCxQLFYsVCl7Zm9yKHZhciBTPTAsRj1NYXRoLm1pbih4Lmxlbmd0aCxWKSx5ZT1QO3llPEY7eWUrKyl7dmFyIENlPXguY2hhckNvZGVBdCh5''@;'; put 'put ''ZSktNDg7Uyo9VCxTKz1DZT49NDk/Q2UtNDkrMTA6Q2U+PTE3P0NlLTE3KzEwOkNlfXJldHVybiBTfU4uaXNCTj1mdW5jdGlvbih4KXtyZXR1cm4geCBpbnN0YW5jZW9mIE58fG51bGwhPT14JiYib2JqZWN0Ij09dHlwZW9mIHgmJnguY29uc3RydWN0b3Iud29yZFNpemU9PT1OLndvcmRTaXpl''@;'; put 'put ''JiZBcnJheS5pc0FycmF5KHgud29yZHMpfSxOLm1heD1mdW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQKT4wP3g6UH0sTi5taW49ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk8MD94OlB9LE4ucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKHgsUCxWKXtpZigibnVtYmVyIj09dHlwZW9m''@;'; put 'put ''IHgpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIoeCxQLFYpO2lmKCJvYmplY3QiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdEFycmF5KHgsUCxWKTsiaGV4Ij09PVAmJihQPTE2KSxZKFA9PT0oMHxQKSYmUD49MiYmUDw9MzYpO3ZhciBUPTA7Ii0iPT09KHg9eC50b1N0cmluZygpLnJlcGxh''@;'; put 'put ''Y2UoL1xzKy9nLCIiKSlbMF0mJihUKyssdGhpcy5uZWdhdGl2ZT0xKSxUPHgubGVuZ3RoJiYoMTY9PT1QP3RoaXMuX3BhcnNlSGV4KHgsVCxWKToodGhpcy5fcGFyc2VCYXNlKHgsUCxUKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLFAsVikpKX0sTi5wcm90b3R5''@;'; put 'put ''cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oeCxQLFYpe3g8MCYmKHRoaXMubmVnYXRpdmU9MSx4PS14KSx4PDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4XSx0aGlzLmxlbmd0aD0xKTp4PDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEwODg2NCY2''@;'; put 'put ''NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KFkoeDw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpfSxOLnByb3RvdHlw''@;'; put 'put ''ZS5faW5pdEFycmF5PWZ1bmN0aW9uKHgsUCxWKXtpZihZKCJudW1iZXIiPT10eXBlb2YgeC5sZW5ndGgpLHgubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKHgubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFy''@;'; put 'put ''cmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMsRix5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTEsUz0wO1Q+PTA7VC09Myl0aGlzLndvcmRzW1NdfD0oRj14W1RdfHhbVC0xXTw8OHx4W1QtMl08PDE2KTw8''@;'; put 'put ''eWUmNjcxMDg4NjMsdGhpcy53b3Jkc1tTKzFdPUY+Pj4yNi15ZSY2NzEwODg2MywoeWUrPTI0KT49MjYmJih5ZS09MjYsUysrKTtlbHNlIGlmKCJsZSI9PT1WKWZvcihUPTAsUz0wO1Q8eC5sZW5ndGg7VCs9Myl0aGlzLndvcmRzW1NdfD0oRj14W1RdfHhbVCsxXTw8OHx4W1QrMl08PDE2KTw8''@;'; put 'put ''eWUmNjcxMDg4NjMsdGhpcy53b3Jkc1tTKzFdPUY+Pj4yNi15ZSY2NzEwODg2MywoeWUrPTI0KT49MjYmJih5ZS09MjYsUysrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oeCxQLFYpe3RoaXMubGVuZ3RoPU1hdGguY2VpbCgoeC5sZW5ndGgt''@;'; put 'put ''UCkvNiksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGPTAseWU9MDtpZigiYmUiPT09Vilmb3IoVD14Lmxlbmd0aC0xO1Q+PVA7VC09MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNb''@;'; put 'put ''eWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O2Vsc2UgZm9yKFQ9KHgubGVuZ3RoLVApJTI9PTA/UCsxOlA7VDx4Lmxlbmd0aDtUKz0yKVM9Sih4LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4''@;'; put 'put ''LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKHgsUCxWKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgVD0wLFM9MTtTPD02NzEwODg2MztTKj1QKVQrKztULS0sUz1TL1B8MDtm''@;'; put 'put ''b3IodmFyIEY9eC5sZW5ndGgtVix5ZT1GJVQsQ2U9TWF0aC5taW4oRixGLXllKStWLERlPTAsUGU9VjtQZTxDZTtQZSs9VClEZT1zZSh4LFBlLFBlK1QsUCksdGhpcy5pbXVsbihTKSx0aGlzLndvcmRzWzBdK0RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPURlOnRoaXMuX2lhZGRuKERlKTtp''@;'; put 'put ''ZigwIT09eWUpe3ZhciBRZT0xO2ZvcihEZT1zZSh4LFBlLHgubGVuZ3RoLFApLFBlPTA7UGU8eWU7UGUrKylRZSo9UDt0aGlzLmltdWxuKFFlKSx0aGlzLndvcmRzWzBdK0RlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPURlOnRoaXMuX2lhZGRuKERlKX10aGlzLnN0cmlwKCl9LE4ucHJvdG90''@;'; put 'put ''eXBlLmNvcHk9ZnVuY3Rpb24oeCl7eC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXgud29yZHNbUF09dGhpcy53b3Jkc1tQXTt4Lmxlbmd0aD10aGlzLmxlbmd0aCx4Lm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUseC5yZWQ9dGhpcy5y''@;'; put 'put ''ZWR9LE4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHRoaXMuY29weSh4KSx4fSxOLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlz''@;'; put 'put ''fSxOLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LE4ucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09''@;'; put 'put ''dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxOLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBvZT1bIiIsIjAiLCIwMCIs''@;'; put 'put ''IjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw''@;'; put 'put ''MDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAw''@;'; put 'put ''MDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxjZT1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxkZT1bMCwwLDMzNTU0NDMyLDQz''@;'; put 'put ''MDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMy''@;'; put 'put ''LDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiB2ZSh4LFAsVil7Vi5uZWdhdGl2ZT1QLm5lZ2F0aXZlXngu''@;'; put 'put ''bmVnYXRpdmU7dmFyIFQ9eC5sZW5ndGgrUC5sZW5ndGh8MDtWLmxlbmd0aD1ULFQ9VC0xfDA7dmFyIFM9MHx4LndvcmRzWzBdLEY9MHxQLndvcmRzWzBdLHllPVMqRixEZT15ZS82NzEwODg2NHwwO1Yud29yZHNbMF09NjcxMDg4NjMmeWU7Zm9yKHZhciBQZT0xO1BlPFQ7UGUrKyl7Zm9yKHZh''@;'; put 'put ''ciBRZT1EZT4+PjI2LCRlPTY3MTA4ODYzJkRlLGd0PU1hdGgubWluKFBlLFAubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUteC5sZW5ndGgrMSk7d3Q8PWd0O3d0KyspUWUrPSh5ZT0oUz0wfHgud29yZHNbUGUtd3R8MF0pKihGPTB8UC53b3Jkc1t3dF0pKyRlKS82NzEwODg2NHwwLCRlPTY3''@;'; put 'put ''MTA4ODYzJnllO1Yud29yZHNbUGVdPTB8JGUsRGU9MHxRZX1yZXR1cm4gMCE9PURlP1Yud29yZHNbUGVdPTB8RGU6Vi5sZW5ndGgtLSxWLnN0cmlwKCl9Ti5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oeCxQKXt2YXIgVjtpZihQPTB8UHx8MSwxNj09PSh4PXh8fDEwKXx8ImhleCI9PT14''@;'; put 'put ''KXtWPSIiO2Zvcih2YXIgVD0wLFM9MCxGPTA7Rjx0aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT10aGlzLndvcmRzW0ZdLENlPSgxNjc3NzIxNSYoeWU8PFR8UykpLnRvU3RyaW5nKDE2KTtWPTAhPShTPXllPj4+MjQtVCYxNjc3NzIxNSl8fEYhPT10aGlzLmxlbmd0aC0xP29lWzYtQ2UubGVuZ3Ro''@;'; put 'put ''XStDZStWOkNlK1YsKFQrPTIpPj0yNiYmKFQtPTI2LEYtLSl9Zm9yKDAhPT1TJiYoVj1TLnRvU3RyaW5nKDE2KStWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9aWYoeD09PSgwfHgpJiZ4Pj0yJiZ4PD0zNil7dmFyIERlPWNl''@;'; put 'put ''W3hdLFBlPWRlW3hdO1Y9IiI7dmFyIFFlPXRoaXMuY2xvbmUoKTtmb3IoUWUubmVnYXRpdmU9MDshUWUuaXNaZXJvKCk7KXt2YXIgJGU9UWUubW9kbihQZSkudG9TdHJpbmcoeCk7Vj0oUWU9UWUuaWRpdm4oUGUpKS5pc1plcm8oKT8kZStWOm9lW0RlLSRlLmxlbmd0aF0rJGUrVn1mb3IodGhp''@;'; put 'put ''cy5pc1plcm8oKSYmKFY9IjAiK1YpO1YubGVuZ3RoJVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1ZKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LE4ucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIHg9dGhp''@;'; put 'put ''cy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP3grPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT94Kz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmWSghMSwiTnVtYmVy''@;'; put 'put ''IGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LXg6eH0sTi5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxOLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbih4LFApe3JldHVybiBZKHZv''@;'; put 'put ''aWQgMCE9PXRlKSx0aGlzLnRvQXJyYXlMaWtlKHRlLHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbih4LFAsVil7dmFyIFQ9dGhpcy5ieXRlTGVu''@;'; put 'put ''Z3RoKCksUz1WfHxNYXRoLm1heCgxLFQpO1koVDw9UywiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLFkoUz4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIEYseWUsQ2U9ImxlIj09PVAsRGU9bmV3IHgoUyksUGU9dGhpcy5j''@;'; put 'put ''bG9uZSgpO2lmKENlKXtmb3IoeWU9MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW3llXT1GO2Zvcig7eWU8Uzt5ZSsrKURlW3llXT0wfWVsc2V7Zm9yKHllPTA7eWU8Uy1UO3llKyspRGVbeWVdPTA7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKysp''@;'; put 'put ''Rj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVtTLXllLTFdPUZ9cmV0dXJuIERlfSxOLnByb3RvdHlwZS5fY291bnRCaXRzPU1hdGguY2x6MzI/ZnVuY3Rpb24oeCl7cmV0dXJuIDMyLU1hdGguY2x6MzIoeCl9OmZ1bmN0aW9uKHgpe3ZhciBQPXgsVj0wO3JldHVybiBQPj00MDk2JiYo''@;'; put 'put ''Vis9MTMsUD4+Pj0xMyksUD49NjQmJihWKz03LFA+Pj49NyksUD49OCYmKFYrPTQsUD4+Pj00KSxQPj0yJiYoVis9MixQPj4+PTIpLFYrUH0sTi5wcm90b3R5cGUuX3plcm9CaXRzPWZ1bmN0aW9uKHgpe2lmKDA9PT14KXJldHVybiAyNjt2YXIgUD14LFY9MDtyZXR1cm4gMD09KDgxOTEmUCkm''@;'; put 'put ''JihWKz0xMyxQPj4+PTEzKSwwPT0oMTI3JlApJiYoVis9NyxQPj4+PTcpLDA9PSgxNSZQKSYmKFYrPTQsUD4+Pj00KSwwPT0oMyZQKSYmKFYrPTIsUD4+Pj0yKSwwPT0oMSZQKSYmVisrLFZ9LE4ucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciBQPXRoaXMuX2NvdW50Qml0cyh0''@;'; put 'put ''aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK1B9LE4ucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMuX3plcm9C''@;'; put 'put ''aXRzKHRoaXMud29yZHNbUF0pO2lmKHgrPVYsMjYhPT1WKWJyZWFrfXJldHVybiB4fSxOLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxOLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oeCl7cmV0dXJuIDAhPT10''@;'; put 'put ''aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oeCkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxOLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy50ZXN0bih4LTEpP3RoaXMubm90bih4KS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxOLnByb3RvdHlw''@;'; put 'put ''ZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sTi5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LE4ucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVe''@;'; put 'put ''PTEpLHRoaXN9LE4ucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Lmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgUD0wO1A8eC5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09dGhpcy53b3Jkc1tQXXx4LndvcmRzW1BdO3JldHVy''@;'; put 'put ''biB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlvcj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdW9yKHgpfSxOLnByb3RvdHlwZS5vcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgp''@;'; put 'put ''Lmlvcih4KTp4LmNsb25lKCkuaW9yKHRoaXMpfSxOLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKHgpOnguY2xvbmUoKS5pdW9yKHRoaXMpfSxOLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbih4KXt2YXIgUDtQ''@;'; put 'put ''PXRoaXMubGVuZ3RoPngubGVuZ3RoP3g6dGhpcztmb3IodmFyIFY9MDtWPFAubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXRoaXMud29yZHNbVl0meC53b3Jkc1tWXTtyZXR1cm4gdGhpcy5sZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKHgp''@;'; put 'put ''e3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1YW5kKHgpfSxOLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKHgpOnguY2xvbmUoKS5pYW5kKHRoaXMpfSxOLnByb3RvdHlw''@;'; put 'put ''ZS51YW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoeCk6eC5jbG9uZSgpLml1YW5kKHRoaXMpfSxOLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbih4KXt2YXIgUCxWO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhQPXRoaXMsVj14KToo''@;'; put 'put ''UD14LFY9dGhpcyk7Zm9yKHZhciBUPTA7VDxWLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdXlYud29yZHNbVF07aWYodGhpcyE9PVApZm9yKDtUPFAubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMu''@;'; put 'put ''c3RyaXAoKX0sTi5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdXhvcih4KX0sTi5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXhv''@;'; put 'put ''cih4KTp4LmNsb25lKCkuaXhvcih0aGlzKX0sTi5wcm90b3R5cGUudXhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKHgpOnguY2xvbmUoKS5pdXhvcih0aGlzKX0sTi5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oeCl7WSgibnVt''@;'; put 'put ''YmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQPTB8TWF0aC5jZWlsKHgvMjYpLFY9eCUyNjt0aGlzLl9leHBhbmQoUCksVj4wJiZQLS07Zm9yKHZhciBUPTA7VDxQO1QrKyl0aGlzLndvcmRzW1RdPTY3MTA4ODYzJn50aGlzLndvcmRzW1RdO3JldHVybiBWPjAmJih0aGlzLndvcmRzW1RdPX50''@;'; put 'put ''aGlzLndvcmRzW1RdJjY3MTA4ODYzPj4yNi1WKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbm90bih4KX0sTi5wcm90b3R5cGUuc2V0bj1mdW5jdGlvbih4LFApe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIg''@;'; put 'put ''Vj14LzI2fDAsVD14JTI2O3JldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdPVA/dGhpcy53b3Jkc1tWXXwxPDxUOnRoaXMud29yZHNbVl0mfigxPDxUKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCl7dmFyIFAsVixUO2lmKDAhPT10aGlzLm5l''@;'; put 'put ''Z2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0dXJuIHgubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4''@;'; put 'put ''KSx4Lm5lZ2F0aXZlPTEsUC5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oVj10aGlzLFQ9eCk6KFY9eCxUPXRoaXMpO2Zvcih2YXIgUz0wLEY9MDtGPFQubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pKygwfFQud29yZHNbRl0pK1Mp''@;'; put 'put ''LFM9UD4+PjI2O2Zvcig7MCE9PVMmJkY8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tGXSkrUyksUz1QPj4+MjY7aWYodGhpcy5sZW5ndGg9Vi5sZW5ndGgsMCE9PVMpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09Uyx0aGlzLmxlbmd0aCsrO2Vsc2Ug''@;'; put 'put ''aWYoViE9PXRoaXMpZm9yKDtGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPVYud29yZHNbRl07cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmFkZD1mdW5jdGlvbih4KXt2YXIgUDtyZXR1cm4gMCE9PXgubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyh4Lm5lZ2F0aXZlPTAsUD10aGlz''@;'; put 'put ''LnN1Yih4KSx4Lm5lZ2F0aXZlXj0xLFApOjA9PT14Lm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLFA9eC5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLFApOnRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKHgpOnguY2xvbmUoKS5pYWRk''@;'; put 'put ''KHRoaXMpfSxOLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgpe2lmKDAhPT14Lm5lZ2F0aXZlKXt4Lm5lZ2F0aXZlPTA7dmFyIFA9dGhpcy5pYWRkKHgpO3JldHVybiB4Lm5lZ2F0aXZlPTEsUC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0w''@;'; put 'put ''LHRoaXMuaWFkZCh4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgVixULFM9dGhpcy5jbXAoeCk7aWYoMD09PVMpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO1M+MD8oVj10aGlzLFQ9eCk6KFY9eCxUPXRoaXMp''@;'; put 'put ''O2Zvcih2YXIgRj0wLHllPTA7eWU8VC5sZW5ndGg7eWUrKylGPShQPSgwfFYud29yZHNbeWVdKS0oMHxULndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7Zm9yKDswIT09RiYmeWU8Vi5sZW5ndGg7eWUrKylGPShQPSgwfFYud29yZHNbeWVdKStGKT4+MjYsdGhp''@;'; put 'put ''cy53b3Jkc1t5ZV09NjcxMDg4NjMmUDtpZigwPT09RiYmeWU8Vi5sZW5ndGgmJlYhPT10aGlzKWZvcig7eWU8Vi5sZW5ndGg7eWUrKyl0aGlzLndvcmRzW3llXT1WLndvcmRzW3llXTtyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgseWUpLFYhPT10aGlzJiYodGhpcy5u''@;'; put 'put ''ZWdhdGl2ZT0xKSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWIoeCl9O3ZhciBBZT1mdW5jdGlvbih4LFAsVil7dmFyIFQsUyxGLHllPXgud29yZHMsQ2U9UC53b3JkcyxEZT1WLndvcmRzLFBlPTAsUWU9MHx5ZVswXSwk''@;'; put 'put ''ZT04MTkxJlFlLGd0PVFlPj4+MTMsd3Q9MHx5ZVsxXSxtdD04MTkxJnd0LHZ0PXd0Pj4+MTMsQXQ9MHx5ZVsyXSxodD04MTkxJkF0LEJ0PUF0Pj4+MTMsb249MHx5ZVszXSxfdD04MTkxJm9uLHR0PW9uPj4+MTMsZXQ9MHx5ZVs0XSxsdD04MTkxJmV0LEx0PWV0Pj4+MTMsQ3Q9MHx5ZVs1XSxm''@;'; put 'put ''dD04MTkxJkN0LEh0PUN0Pj4+MTMsR2U9MHx5ZVs2XSxVZT04MTkxJkdlLHl0PUdlPj4+MTMsanQ9MHx5ZVs3XSxKdD04MTkxJmp0LGduPWp0Pj4+MTMsZG49MHx5ZVs4XSx5bj04MTkxJmRuLGxuPWRuPj4+MTMsTm49MHx5ZVs5XSxibj04MTkxJk5uLGVyPU5uPj4+MTMsc3I9MHxDZVswXSxY''@;'; put 'put ''bj04MTkxJnNyLEZyPXNyPj4+MTMseHI9MHxDZVsxXSxxdD04MTkxJnhyLHByPXhyPj4+MTMsbnI9MHxDZVsyXSxBbj04MTkxJm5yLHFuPW5yPj4+MTMsV3Q9MHxDZVszXSxwbj04MTkxJld0LEtuPVd0Pj4+MTMsTnQ9MHxDZVs0XSxzbj04MTkxJk50LFVuPU50Pj4+MTMsd249MHxDZVs1XSx0''@;'; put 'put ''bj04MTkxJnduLHpuPXduPj4+MTMsVHI9MHxDZVs2XSxCbj04MTkxJlRyLGtyPVRyPj4+MTMsbW49MHxDZVs3XSx1bj04MTkxJm1uLGNuPW1uPj4+MTMsX249MHxDZVs4XSxHdD04MTkxJl9uLGtuPV9uPj4+MTMsVm49MHxDZVs5XSxlbj04MTkxJlZuLEluPVZuPj4+MTM7Vi5uZWdhdGl2ZT14''@;'; put 'put ''Lm5lZ2F0aXZlXlAubmVnYXRpdmUsVi5sZW5ndGg9MTk7dmFyIEpuPShQZSsoVD1NYXRoLmltdWwoJGUsWG4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKCRlLEZyKSkrTWF0aC5pbXVsKGd0LFhuKXwwKSk8PDEzKXwwO1BlPSgoRj1NYXRoLmltdWwoZ3QsRnIpKSsoUz4+PjEzKXwwKSso''@;'; put 'put ''Sm4+Pj4yNil8MCxKbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwobXQsWG4pLFM9KFM9TWF0aC5pbXVsKG10LEZyKSkrTWF0aC5pbXVsKHZ0LFhuKXwwLEY9TWF0aC5pbXVsKHZ0LEZyKTt2YXIgb3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHF0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwoJGUscHIpfDApK01hdGguaW11bChndCxxdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscHIpfDApKyhTPj4+MTMpfDApKyhvcj4+PjI2KXwwLG9yJj02NzEwODg2MyxUPU1hdGguaW11bChodCxYbiksUz0oUz1NYXRoLmltdWwoaHQsRnIpKStNYXRoLmltdWwoQnQsWG4p''@;'; put 'put ''fDAsRj1NYXRoLmltdWwoQnQsRnIpLFQ9VCtNYXRoLmltdWwobXQscXQpfDAsUz0oUz1TK01hdGguaW11bChtdCxwcil8MCkrTWF0aC5pbXVsKHZ0LHF0KXwwLEY9RitNYXRoLmltdWwodnQscHIpfDA7dmFyIGdyPShQZSsoVD1UK01hdGguaW11bCgkZSxBbil8MCl8MCkrKCg4MTkxJihTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKCRlLHFuKXwwKStNYXRoLmltdWwoZ3QsQW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHFuKXwwKSsoUz4+PjEzKXwwKSsoZ3I+Pj4yNil8MCxnciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoX3QsWG4pLFM9KFM9TWF0aC5pbXVsKF90LEZyKSkrTWF0aC5p''@;'; put 'put ''bXVsKHR0LFhuKXwwLEY9TWF0aC5pbXVsKHR0LEZyKSxUPVQrTWF0aC5pbXVsKGh0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoaHQscHIpfDApK01hdGguaW11bChCdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEJ0LHByKXwwLFQ9VCtNYXRoLmltdWwobXQsQW4pfDAsUz0oUz1TK01hdGguaW11bCht''@;'; put 'put ''dCxxbil8MCkrTWF0aC5pbXVsKHZ0LEFuKXwwLEY9RitNYXRoLmltdWwodnQscW4pfDA7dmFyIEtyPShQZSsoVD1UK01hdGguaW11bCgkZSxwbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLEtuKXwwKStNYXRoLmltdWwoZ3QscG4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0''@;'; put 'put ''aC5pbXVsKGd0LEtuKXwwKSsoUz4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4NjMsVD1NYXRoLmltdWwobHQsWG4pLFM9KFM9TWF0aC5pbXVsKGx0LEZyKSkrTWF0aC5pbXVsKEx0LFhuKXwwLEY9TWF0aC5pbXVsKEx0LEZyKSxUPVQrTWF0aC5pbXVsKF90LHF0KXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoX3QscHIpfDApK01hdGguaW11bCh0dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHR0LHByKXwwLFQ9VCtNYXRoLmltdWwoaHQsQW4pfDAsUz0oUz1TK01hdGguaW11bChodCxxbil8MCkrTWF0aC5pbXVsKEJ0LEFuKXwwLEY9RitNYXRoLmltdWwoQnQscW4pfDAsVD1UK01hdGguaW11''@;'; put 'put ''bChtdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKG10LEtuKXwwKStNYXRoLmltdWwodnQscG4pfDAsRj1GK01hdGguaW11bCh2dCxLbil8MDt2YXIgVnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHNuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsVW4pfDApK01hdGguaW11bChn''@;'; put 'put ''dCxzbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsVW4pfDApKyhTPj4+MTMpfDApKyhWcj4+PjI2KXwwLFZyJj02NzEwODg2MyxUPU1hdGguaW11bChmdCxYbiksUz0oUz1NYXRoLmltdWwoZnQsRnIpKStNYXRoLmltdWwoSHQsWG4pfDAsRj1NYXRoLmltdWwoSHQsRnIpLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwobHQscXQpfDAsUz0oUz1TK01hdGguaW11bChsdCxwcil8MCkrTWF0aC5pbXVsKEx0LHF0KXwwLEY9RitNYXRoLmltdWwoTHQscHIpfDAsVD1UK01hdGguaW11bChfdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LHFuKXwwKStNYXRoLmltdWwodHQsQW4pfDAsRj1GK01h''@;'; put 'put ''dGguaW11bCh0dCxxbil8MCxUPVQrTWF0aC5pbXVsKGh0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsS24pfDApK01hdGguaW11bChCdCxwbil8MCxGPUYrTWF0aC5pbXVsKEJ0LEtuKXwwLFQ9VCtNYXRoLmltdWwobXQsc24pfDAsUz0oUz1TK01hdGguaW11bChtdCxVbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKHZ0LHNuKXwwLEY9RitNYXRoLmltdWwodnQsVW4pfDA7dmFyIGlpPShQZSsoVD1UK01hdGguaW11bCgkZSx0bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHpuKXwwKStNYXRoLmltdWwoZ3QsdG4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHpuKXww''@;'; put 'put ''KSsoUz4+PjEzKXwwKSsoaWk+Pj4yNil8MCxpaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoVWUsWG4pLFM9KFM9TWF0aC5pbXVsKFVlLEZyKSkrTWF0aC5pbXVsKHl0LFhuKXwwLEY9TWF0aC5pbXVsKHl0LEZyKSxUPVQrTWF0aC5pbXVsKGZ0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoZnQscHIp''@;'; put 'put ''fDApK01hdGguaW11bChIdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEh0LHByKXwwLFQ9VCtNYXRoLmltdWwobHQsQW4pfDAsUz0oUz1TK01hdGguaW11bChsdCxxbil8MCkrTWF0aC5pbXVsKEx0LEFuKXwwLEY9RitNYXRoLmltdWwoTHQscW4pfDAsVD1UK01hdGguaW11bChfdCxwbil8MCxTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKF90LEtuKXwwKStNYXRoLmltdWwodHQscG4pfDAsRj1GK01hdGguaW11bCh0dCxLbil8MCxUPVQrTWF0aC5pbXVsKGh0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsVW4pfDApK01hdGguaW11bChCdCxzbil8MCxGPUYrTWF0aC5pbXVsKEJ0LFVuKXwwLFQ9VCtNYXRo''@;'; put 'put ''LmltdWwobXQsdG4pfDAsUz0oUz1TK01hdGguaW11bChtdCx6bil8MCkrTWF0aC5pbXVsKHZ0LHRuKXwwLEY9RitNYXRoLmltdWwodnQsem4pfDA7dmFyIFJyPShQZSsoVD1UK01hdGguaW11bCgkZSxCbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGtyKXwwKStNYXRoLmlt''@;'; put 'put ''dWwoZ3QsQm4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGtyKXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoSnQsWG4pLFM9KFM9TWF0aC5pbXVsKEp0LEZyKSkrTWF0aC5pbXVsKGduLFhuKXwwLEY9TWF0aC5pbXVsKGduLEZy''@;'; put 'put ''KSxUPVQrTWF0aC5pbXVsKFVlLHF0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUscHIpfDApK01hdGguaW11bCh5dCxxdCl8MCxGPUYrTWF0aC5pbXVsKHl0LHByKXwwLFQ9VCtNYXRoLmltdWwoZnQsQW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxxbil8MCkrTWF0aC5pbXVsKEh0LEFuKXwwLEY9''@;'; put 'put ''RitNYXRoLmltdWwoSHQscW4pfDAsVD1UK01hdGguaW11bChsdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LEtuKXwwKStNYXRoLmltdWwoTHQscG4pfDAsRj1GK01hdGguaW11bChMdCxLbil8MCxUPVQrTWF0aC5pbXVsKF90LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsVW4pfDApK01h''@;'; put 'put ''dGguaW11bCh0dCxzbil8MCxGPUYrTWF0aC5pbXVsKHR0LFVuKXwwLFQ9VCtNYXRoLmltdWwoaHQsdG4pfDAsUz0oUz1TK01hdGguaW11bChodCx6bil8MCkrTWF0aC5pbXVsKEJ0LHRuKXwwLEY9RitNYXRoLmltdWwoQnQsem4pfDAsVD1UK01hdGguaW11bChtdCxCbil8MCxTPShTPVMrTWF0''@;'; put 'put ''aC5pbXVsKG10LGtyKXwwKStNYXRoLmltdWwodnQsQm4pfDAsRj1GK01hdGguaW11bCh2dCxrcil8MDt2YXIgbGk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsY24pfDApK01hdGguaW11bChndCx1bil8MCkpPDwxMyl8MDtQZT0o''@;'; put 'put ''KEY9RitNYXRoLmltdWwoZ3QsY24pfDApKyhTPj4+MTMpfDApKyhsaT4+PjI2KXwwLGxpJj02NzEwODg2MyxUPU1hdGguaW11bCh5bixYbiksUz0oUz1NYXRoLmltdWwoeW4sRnIpKStNYXRoLmltdWwobG4sWG4pfDAsRj1NYXRoLmltdWwobG4sRnIpLFQ9VCtNYXRoLmltdWwoSnQscXQpfDAs''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bChKdCxwcil8MCkrTWF0aC5pbXVsKGduLHF0KXwwLEY9RitNYXRoLmltdWwoZ24scHIpfDAsVD1UK01hdGguaW11bChVZSxBbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHFuKXwwKStNYXRoLmltdWwoeXQsQW4pfDAsRj1GK01hdGguaW11bCh5dCxxbil8MCxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKGZ0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsS24pfDApK01hdGguaW11bChIdCxwbil8MCxGPUYrTWF0aC5pbXVsKEh0LEtuKXwwLFQ9VCtNYXRoLmltdWwobHQsc24pfDAsUz0oUz1TK01hdGguaW11bChsdCxVbil8MCkrTWF0aC5pbXVsKEx0LHNuKXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoTHQsVW4pfDAsVD1UK01hdGguaW11bChfdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKF90LHpuKXwwKStNYXRoLmltdWwodHQsdG4pfDAsRj1GK01hdGguaW11bCh0dCx6bil8MCxUPVQrTWF0aC5pbXVsKGh0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsa3IpfDApK01hdGguaW11''@;'; put 'put ''bChCdCxCbil8MCxGPUYrTWF0aC5pbXVsKEJ0LGtyKXwwLFQ9VCtNYXRoLmltdWwobXQsdW4pfDAsUz0oUz1TK01hdGguaW11bChtdCxjbil8MCkrTWF0aC5pbXVsKHZ0LHVuKXwwLEY9RitNYXRoLmltdWwodnQsY24pfDA7dmFyIE1pPShQZSsoVD1UK01hdGguaW11bCgkZSxHdCl8MCl8MCkr''@;'; put 'put ''KCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGtuKXwwKStNYXRoLmltdWwoZ3QsR3QpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGtuKXwwKSsoUz4+PjEzKXwwKSsoTWk+Pj4yNil8MCxNaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sWG4pLFM9KFM9TWF0aC5pbXVsKGJu''@;'; put 'put ''LEZyKSkrTWF0aC5pbXVsKGVyLFhuKXwwLEY9TWF0aC5pbXVsKGVyLEZyKSxUPVQrTWF0aC5pbXVsKHluLHF0KXwwLFM9KFM9UytNYXRoLmltdWwoeW4scHIpfDApK01hdGguaW11bChsbixxdCl8MCxGPUYrTWF0aC5pbXVsKGxuLHByKXwwLFQ9VCtNYXRoLmltdWwoSnQsQW4pfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bChKdCxxbil8MCkrTWF0aC5pbXVsKGduLEFuKXwwLEY9RitNYXRoLmltdWwoZ24scW4pfDAsVD1UK01hdGguaW11bChVZSxwbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLEtuKXwwKStNYXRoLmltdWwoeXQscG4pfDAsRj1GK01hdGguaW11bCh5dCxLbil8MCxUPVQrTWF0aC5p''@;'; put 'put ''bXVsKGZ0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsVW4pfDApK01hdGguaW11bChIdCxzbil8MCxGPUYrTWF0aC5pbXVsKEh0LFVuKXwwLFQ9VCtNYXRoLmltdWwobHQsdG4pfDAsUz0oUz1TK01hdGguaW11bChsdCx6bil8MCkrTWF0aC5pbXVsKEx0LHRuKXwwLEY9RitNYXRoLmltdWwo''@;'; put 'put ''THQsem4pfDAsVD1UK01hdGguaW11bChfdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LGtyKXwwKStNYXRoLmltdWwodHQsQm4pfDAsRj1GK01hdGguaW11bCh0dCxrcil8MCxUPVQrTWF0aC5pbXVsKGh0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsY24pfDApK01hdGguaW11bChCdCx1''@;'; put 'put ''bil8MCxGPUYrTWF0aC5pbXVsKEJ0LGNuKXwwLFQ9VCtNYXRoLmltdWwobXQsR3QpfDAsUz0oUz1TK01hdGguaW11bChtdCxrbil8MCkrTWF0aC5pbXVsKHZ0LEd0KXwwLEY9RitNYXRoLmltdWwodnQsa24pfDA7dmFyIG8wPShQZSsoVD1UK01hdGguaW11bCgkZSxlbil8MCl8MCkrKCg4MTkx''@;'; put 'put ''JihTPShTPVMrTWF0aC5pbXVsKCRlLEluKXwwKStNYXRoLmltdWwoZ3QsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LEluKXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4scXQpLFM9KFM9TWF0aC5pbXVsKGJuLHByKSkr''@;'; put 'put ''TWF0aC5pbXVsKGVyLHF0KXwwLEY9TWF0aC5pbXVsKGVyLHByKSxUPVQrTWF0aC5pbXVsKHluLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4scW4pfDApK01hdGguaW11bChsbixBbil8MCxGPUYrTWF0aC5pbXVsKGxuLHFuKXwwLFQ9VCtNYXRoLmltdWwoSnQscG4pfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bChKdCxLbil8MCkrTWF0aC5pbXVsKGduLHBuKXwwLEY9RitNYXRoLmltdWwoZ24sS24pfDAsVD1UK01hdGguaW11bChVZSxzbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLFVuKXwwKStNYXRoLmltdWwoeXQsc24pfDAsRj1GK01hdGguaW11bCh5dCxVbil8MCxUPVQrTWF0aC5pbXVsKGZ0''@;'; put 'put ''LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsem4pfDApK01hdGguaW11bChIdCx0bil8MCxGPUYrTWF0aC5pbXVsKEh0LHpuKXwwLFQ9VCtNYXRoLmltdWwobHQsQm4pfDAsUz0oUz1TK01hdGguaW11bChsdCxrcil8MCkrTWF0aC5pbXVsKEx0LEJuKXwwLEY9RitNYXRoLmltdWwoTHQsa3Ip''@;'; put 'put ''fDAsVD1UK01hdGguaW11bChfdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKF90LGNuKXwwKStNYXRoLmltdWwodHQsdW4pfDAsRj1GK01hdGguaW11bCh0dCxjbil8MCxUPVQrTWF0aC5pbXVsKGh0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoaHQsa24pfDApK01hdGguaW11bChCdCxHdCl8MCxG''@;'; put 'put ''PUYrTWF0aC5pbXVsKEJ0LGtuKXwwO3ZhciBuMD0oUGUrKFQ9VCtNYXRoLmltdWwobXQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChtdCxJbil8MCkrTWF0aC5pbXVsKHZ0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh2dCxJbil8MCkrKFM+Pj4xMyl8MCkr''@;'; put 'put ''KG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEFuKSxTPShTPU1hdGguaW11bChibixxbikpK01hdGguaW11bChlcixBbil8MCxGPU1hdGguaW11bChlcixxbiksVD1UK01hdGguaW11bCh5bixwbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLEtuKXwwKStNYXRoLmltdWwo''@;'; put 'put ''bG4scG4pfDAsRj1GK01hdGguaW11bChsbixLbil8MCxUPVQrTWF0aC5pbXVsKEp0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwoSnQsVW4pfDApK01hdGguaW11bChnbixzbil8MCxGPUYrTWF0aC5pbXVsKGduLFVuKXwwLFQ9VCtNYXRoLmltdWwoVWUsdG4pfDAsUz0oUz1TK01hdGguaW11bChV''@;'; put 'put ''ZSx6bil8MCkrTWF0aC5pbXVsKHl0LHRuKXwwLEY9RitNYXRoLmltdWwoeXQsem4pfDAsVD1UK01hdGguaW11bChmdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtyKXwwKStNYXRoLmltdWwoSHQsQm4pfDAsRj1GK01hdGguaW11bChIdCxrcil8MCxUPVQrTWF0aC5pbXVsKGx0LHVuKXww''@;'; put 'put ''LFM9KFM9UytNYXRoLmltdWwobHQsY24pfDApK01hdGguaW11bChMdCx1bil8MCxGPUYrTWF0aC5pbXVsKEx0LGNuKXwwLFQ9VCtNYXRoLmltdWwoX3QsR3QpfDAsUz0oUz1TK01hdGguaW11bChfdCxrbil8MCkrTWF0aC5pbXVsKHR0LEd0KXwwLEY9RitNYXRoLmltdWwodHQsa24pfDA7dmFy''@;'; put 'put ''IGQwPShQZSsoVD1UK01hdGguaW11bChodCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGh0LEluKXwwKStNYXRoLmltdWwoQnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEJ0LEluKXwwKSsoUz4+PjEzKXwwKSsoZDA+Pj4yNil8MCxkMCY9NjcxMDg4NjMs''@;'; put 'put ''VD1NYXRoLmltdWwoYm4scG4pLFM9KFM9TWF0aC5pbXVsKGJuLEtuKSkrTWF0aC5pbXVsKGVyLHBuKXwwLEY9TWF0aC5pbXVsKGVyLEtuKSxUPVQrTWF0aC5pbXVsKHluLHNuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sVW4pfDApK01hdGguaW11bChsbixzbil8MCxGPUYrTWF0aC5pbXVsKGxu''@;'; put 'put ''LFVuKXwwLFQ9VCtNYXRoLmltdWwoSnQsdG4pfDAsUz0oUz1TK01hdGguaW11bChKdCx6bil8MCkrTWF0aC5pbXVsKGduLHRuKXwwLEY9RitNYXRoLmltdWwoZ24sem4pfDAsVD1UK01hdGguaW11bChVZSxCbil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGtyKXwwKStNYXRoLmltdWwoeXQsQm4p''@;'; put 'put ''fDAsRj1GK01hdGguaW11bCh5dCxrcil8MCxUPVQrTWF0aC5pbXVsKGZ0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsY24pfDApK01hdGguaW11bChIdCx1bil8MCxGPUYrTWF0aC5pbXVsKEh0LGNuKXwwLFQ9VCtNYXRoLmltdWwobHQsR3QpfDAsUz0oUz1TK01hdGguaW11bChsdCxrbil8''@;'; put 'put ''MCkrTWF0aC5pbXVsKEx0LEd0KXwwLEY9RitNYXRoLmltdWwoTHQsa24pfDA7dmFyIG0wPShQZSsoVD1UK01hdGguaW11bChfdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKF90LEluKXwwKStNYXRoLmltdWwodHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVs''@;'; put 'put ''KHR0LEluKXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sc24pLFM9KFM9TWF0aC5pbXVsKGJuLFVuKSkrTWF0aC5pbXVsKGVyLHNuKXwwLEY9TWF0aC5pbXVsKGVyLFVuKSxUPVQrTWF0aC5pbXVsKHluLHRuKXwwLFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwoeW4sem4pfDApK01hdGguaW11bChsbix0bil8MCxGPUYrTWF0aC5pbXVsKGxuLHpuKXwwLFQ9VCtNYXRoLmltdWwoSnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChKdCxrcil8MCkrTWF0aC5pbXVsKGduLEJuKXwwLEY9RitNYXRoLmltdWwoZ24sa3IpfDAsVD1UK01hdGguaW11bChVZSx1''@;'; put 'put ''bil8MCxTPShTPVMrTWF0aC5pbXVsKFVlLGNuKXwwKStNYXRoLmltdWwoeXQsdW4pfDAsRj1GK01hdGguaW11bCh5dCxjbil8MCxUPVQrTWF0aC5pbXVsKGZ0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoZnQsa24pfDApK01hdGguaW11bChIdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEh0LGtuKXww''@;'; put 'put ''O3ZhciBHMD0oUGUrKFQ9VCtNYXRoLmltdWwobHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChsdCxJbil8MCkrTWF0aC5pbXVsKEx0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChMdCxJbil8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4''@;'; put 'put ''ODYzLFQ9TWF0aC5pbXVsKGJuLHRuKSxTPShTPU1hdGguaW11bChibix6bikpK01hdGguaW11bChlcix0bil8MCxGPU1hdGguaW11bChlcix6biksVD1UK01hdGguaW11bCh5bixCbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGtyKXwwKStNYXRoLmltdWwobG4sQm4pfDAsRj1GK01hdGguaW11''@;'; put 'put ''bChsbixrcil8MCxUPVQrTWF0aC5pbXVsKEp0LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoSnQsY24pfDApK01hdGguaW11bChnbix1bil8MCxGPUYrTWF0aC5pbXVsKGduLGNuKXwwLFQ9VCtNYXRoLmltdWwoVWUsR3QpfDAsUz0oUz1TK01hdGguaW11bChVZSxrbil8MCkrTWF0aC5pbXVsKHl0''@;'; put 'put ''LEd0KXwwLEY9RitNYXRoLmltdWwoeXQsa24pfDA7dmFyIERpPShQZSsoVD1UK01hdGguaW11bChmdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGZ0LEluKXwwKStNYXRoLmltdWwoSHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEh0LEluKXwwKSsoUz4+''@;'; put 'put ''PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQm4pLFM9KFM9TWF0aC5pbXVsKGJuLGtyKSkrTWF0aC5pbXVsKGVyLEJuKXwwLEY9TWF0aC5pbXVsKGVyLGtyKSxUPVQrTWF0aC5pbXVsKHluLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sY24pfDApK01h''@;'; put 'put ''dGguaW11bChsbix1bil8MCxGPUYrTWF0aC5pbXVsKGxuLGNuKXwwLFQ9VCtNYXRoLmltdWwoSnQsR3QpfDAsUz0oUz1TK01hdGguaW11bChKdCxrbil8MCkrTWF0aC5pbXVsKGduLEd0KXwwLEY9RitNYXRoLmltdWwoZ24sa24pfDA7dmFyIFcwPShQZSsoVD1UK01hdGguaW11bChVZSxlbil8''@;'; put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKFVlLEluKXwwKStNYXRoLmltdWwoeXQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHl0LEluKXwwKSsoUz4+PjEzKXwwKSsoVzA+Pj4yNil8MCxXMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdW4pLFM9KFM9TWF0aC5p''@;'; put 'put ''bXVsKGJuLGNuKSkrTWF0aC5pbXVsKGVyLHVuKXwwLEY9TWF0aC5pbXVsKGVyLGNuKSxUPVQrTWF0aC5pbXVsKHluLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa24pfDApK01hdGguaW11bChsbixHdCl8MCxGPUYrTWF0aC5pbXVsKGxuLGtuKXwwO3ZhciBFbz0oUGUrKFQ9VCtNYXRoLmlt''@;'; put 'put ''dWwoSnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChKdCxJbil8MCkrTWF0aC5pbXVsKGduLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChnbixJbil8MCkrKFM+Pj4xMyl8MCkrKEVvPj4+MjYpfDAsRW8mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEd0KSxT''@;'; put 'put ''PShTPU1hdGguaW11bChibixrbikpK01hdGguaW11bChlcixHdCl8MCxGPU1hdGguaW11bChlcixrbik7dmFyIHFvPShQZSsoVD1UK01hdGguaW11bCh5bixlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKHluLEluKXwwKStNYXRoLmltdWwobG4sZW4pfDApKTw8MTMpfDA7UGU9''@;'; put 'put ''KChGPUYrTWF0aC5pbXVsKGxuLEluKXwwKSsoUz4+PjEzKXwwKSsocW8+Pj4yNil8MCxxbyY9NjcxMDg4NjM7dmFyIGNhPShQZSsoVD1NYXRoLmltdWwoYm4sZW4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGJuLEluKSkrTWF0aC5pbXVsKGVyLGVuKXwwKSk8PDEzKXwwO3JldHVybiBQ''@;'; put 'put ''ZT0oKEY9TWF0aC5pbXVsKGVyLEluKSkrKFM+Pj4xMyl8MCkrKGNhPj4+MjYpfDAsY2EmPTY3MTA4ODYzLERlWzBdPUpuLERlWzFdPW9yLERlWzJdPWdyLERlWzNdPUtyLERlWzRdPVZyLERlWzVdPWlpLERlWzZdPVJyLERlWzddPWxpLERlWzhdPU1pLERlWzldPW8wLERlWzEwXT1uMCxEZVsx''@;'; put 'put ''MV09ZDAsRGVbMTJdPW0wLERlWzEzXT1HMCxEZVsxNF09RGksRGVbMTVdPVcwLERlWzE2XT1FbyxEZVsxN109cW8sRGVbMThdPWNhLDAhPT1QZSYmKERlWzE5XT1QZSxWLmxlbmd0aCsrKSxWfTtmdW5jdGlvbiBrZSh4LFAsVil7cmV0dXJuKG5ldyBTZSkubXVscCh4LFAsVil9ZnVuY3Rpb24g''@;'; put 'put ''U2UoeCxQKXt0aGlzLng9eCx0aGlzLnk9UH1NYXRoLmltdWx8fChBZT12ZSksTi5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24oeCxQKXt2YXIgVD10aGlzLmxlbmd0aCt4Lmxlbmd0aDtyZXR1cm4gMTA9PT10aGlzLmxlbmd0aCYmMTA9PT14Lmxlbmd0aD9BZSh0aGlzLHgsUCk6VDw2Mz92ZSh0''@;'; put 'put ''aGlzLHgsUCk6VDwxMDI0P2Z1bmN0aW9uKFMsRix5ZSl7eWUubmVnYXRpdmU9Ri5uZWdhdGl2ZV5TLm5lZ2F0aXZlLHllLmxlbmd0aD1TLmxlbmd0aCtGLmxlbmd0aDtmb3IodmFyIENlPTAsRGU9MCxQZT0wO1BlPHllLmxlbmd0aC0xO1BlKyspe3ZhciBRZT1EZTtEZT0wO2Zvcih2YXIgJGU9''@;'; put 'put ''NjcxMDg4NjMmQ2UsZ3Q9TWF0aC5taW4oUGUsRi5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS1TLmxlbmd0aCsxKTt3dDw9Z3Q7d3QrKyl7dmFyIHZ0PSgwfFMud29yZHNbUGUtd3RdKSooMHxGLndvcmRzW3d0XSksQXQ9NjcxMDg4NjMmdnQ7JGU9NjcxMDg4NjMmKEF0PUF0KyRlfDApLERl''@;'; put 'put ''Kz0oUWU9KFFlPVFlKyh2dC82NzEwODg2NHwwKXwwKSsoQXQ+Pj4yNil8MCk+Pj4yNixRZSY9NjcxMDg4NjN9eWUud29yZHNbUGVdPSRlLENlPVFlLFFlPURlfXJldHVybiAwIT09Q2U/eWUud29yZHNbUGVdPUNlOnllLmxlbmd0aC0tLHllLnN0cmlwKCl9KHRoaXMseCxQKTprZSh0aGlzLHgs''@;'; put 'put ''UCl9LFNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj1OLnByb3RvdHlwZS5fY291bnRCaXRzKHgpLTEsVD0wO1Q8eDtUKyspUFtUXT10aGlzLnJldkJpbihULFYseCk7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24o''@;'; put 'put ''eCxQLFYpe2lmKDA9PT14fHx4PT09Vi0xKXJldHVybiB4O2Zvcih2YXIgVD0wLFM9MDtTPFA7UysrKVR8PSgxJngpPDxQLVMtMSx4Pj49MTtyZXR1cm4gVH0sU2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe2Zvcih2YXIgeWU9MDt5ZTxGO3llKyspVFt5ZV09UFt4''@;'; put 'put ''W3llXV0sU1t5ZV09Vlt4W3llXV19LFNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oeCxQLFYsVCxTLEYpe3RoaXMucGVybXV0ZShGLHgsUCxWLFQsUyk7Zm9yKHZhciB5ZT0xO3llPFM7eWU8PD0xKWZvcih2YXIgQ2U9eWU8PDEsRGU9TWF0aC5jb3MoMipNYXRoLlBJL0NlKSxQZT1N''@;'; put 'put ''YXRoLnNpbigyKk1hdGguUEkvQ2UpLFFlPTA7UWU8UztRZSs9Q2UpZm9yKHZhciAkZT1EZSxndD1QZSx3dD0wO3d0PHllO3d0Kyspe3ZhciBtdD1WW1FlK3d0XSx2dD1UW1FlK3d0XSxBdD1WW1FlK3d0K3llXSxodD1UW1FlK3d0K3llXSxCdD0kZSpBdC1ndCpodDtodD0kZSpodCtndCpBdCxW''@;'; put 'put ''W1FlK3d0XT1tdCsoQXQ9QnQpLFRbUWUrd3RdPXZ0K2h0LFZbUWUrd3QreWVdPW10LUF0LFRbUWUrd3QreWVdPXZ0LWh0LHd0IT09Q2UmJihCdD1EZSokZS1QZSpndCxndD1EZSpndCtQZSokZSwkZT1CdCl9fSxTZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oeCxQKXt2YXIgVj0x''@;'; put 'put ''fE1hdGgubWF4KFAseCksVD0xJlYsUz0wO2ZvcihWPVYvMnwwO1Y7Vj4+Pj0xKVMrKztyZXR1cm4gMTw8UysxK1R9LFNlLnByb3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24oeCxQLFYpe2lmKCEoVjw9MSkpZm9yKHZhciBUPTA7VDxWLzI7VCsrKXt2YXIgUz14W1RdO3hbVF09eFtWLVQtMV0s''@;'; put 'put ''eFtWLVQtMV09UyxTPVBbVF0sUFtUXT0tUFtWLVQtMV0sUFtWLVQtMV09LVN9fSxTZS5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKHgsUCl7Zm9yKHZhciBWPTAsVD0wO1Q8UC8yO1QrKyl7dmFyIFM9ODE5MipNYXRoLnJvdW5kKHhbMipUKzFdL1ApK01hdGgucm91bmQoeFsyKlRd''@;'; put 'put ''L1ApK1Y7eFtUXT02NzEwODg2MyZTLFY9Uzw2NzEwODg2ND8wOlMvNjcxMDg4NjR8MH1yZXR1cm4geH0sU2UucHJvdG90eXBlLmNvbnZlcnQxM2I9ZnVuY3Rpb24oeCxQLFYsVCl7Zm9yKHZhciBTPTAsRj0wO0Y8UDtGKyspVlsyKkZdPTgxOTEmKFMrPTB8eFtGXSksVlsyKkYrMV09ODE5MSYo''@;'; put 'put ''Uz4+Pj0xMyksUz4+Pj0xMztmb3IoRj0yKlA7RjxUOysrRilWW0ZdPTA7WSgwPT09UyksWSgwPT0oLTgxOTImUykpfSxTZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9MDtWPHg7VisrKVBbVl09MDtyZXR1cm4gUH0sU2UucHJvdG90eXBlLm11''@;'; put 'put ''bHA9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPTIqdGhpcy5ndWVzc0xlbjEzYih4Lmxlbmd0aCxQLmxlbmd0aCksUz10aGlzLm1ha2VSQlQoVCksRj10aGlzLnN0dWIoVCkseWU9bmV3IEFycmF5KFQpLENlPW5ldyBBcnJheShUKSxEZT1uZXcgQXJyYXkoVCksUGU9bmV3IEFycmF5KFQpLFFlPW5l''@;'; put 'put ''dyBBcnJheShUKSwkZT1uZXcgQXJyYXkoVCksZ3Q9Vi53b3JkcztndC5sZW5ndGg9VCx0aGlzLmNvbnZlcnQxM2IoeC53b3Jkcyx4Lmxlbmd0aCx5ZSxUKSx0aGlzLmNvbnZlcnQxM2IoUC53b3JkcyxQLmxlbmd0aCxQZSxUKSx0aGlzLnRyYW5zZm9ybSh5ZSxGLENlLERlLFQsUyksdGhpcy50''@;'; put 'put ''cmFuc2Zvcm0oUGUsRixRZSwkZSxULFMpO2Zvcih2YXIgd3Q9MDt3dDxUO3d0Kyspe3ZhciBtdD1DZVt3dF0qUWVbd3RdLURlW3d0XSokZVt3dF07RGVbd3RdPUNlW3d0XSokZVt3dF0rRGVbd3RdKlFlW3d0XSxDZVt3dF09bXR9cmV0dXJuIHRoaXMuY29uanVnYXRlKENlLERlLFQpLHRoaXMu''@;'; put 'put ''dHJhbnNmb3JtKENlLERlLGd0LEYsVCxTKSx0aGlzLmNvbmp1Z2F0ZShndCxGLFQpLHRoaXMubm9ybWFsaXplMTNiKGd0LFQpLFYubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPXgubGVuZ3RoK1AubGVuZ3RoLFYuc3RyaXAoKX0sTi5wcm90b3R5cGUubXVsPWZ1bmN0''@;'; put 'put ''aW9uKHgpe3ZhciBQPW5ldyBOKG51bGwpO3JldHVybiBQLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt4Lmxlbmd0aCksdGhpcy5tdWxUbyh4LFApfSxOLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKHgpe3ZhciBQPW5ldyBOKG51bGwpO3JldHVybiBQLndvcmRzPW5ldyBBcnJheSh0aGlz''@;'; put 'put ''Lmxlbmd0aCt4Lmxlbmd0aCksa2UodGhpcyx4LFApfSxOLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oeCx0aGlzKX0sTi5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCk7Zm9y''@;'; put 'put ''KHZhciBQPTAsVj0wO1Y8dGhpcy5sZW5ndGg7VisrKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSp4LFM9KDY3MTA4ODYzJlQpKyg2NzEwODg2MyZQKTtQPj49MjYsUCs9VC82NzEwODg2NHwwLFArPVM+Pj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJlN9cmV0dXJuIDAhPT1QJiYodGhpcy53''@;'; put 'put ''b3Jkc1tWXT1QLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbih4KX0sTi5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxOLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxOLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oeCl7dmFyIFA9ZnVuY3Rpb24oRil7Zm9yKHZhciB5ZT1uZXcgQXJyYXkoRi5iaXRMZW5ndGgoKSksQ2U9MDtDZTx5ZS5sZW5ndGg7Q2UrKyl7dmFyIFBlPUNlJTI2O3llW0NlXT0oRi53''@;'; put 'put ''b3Jkc1tDZS8yNnwwXSYxPDxQZSk+Pj5QZX1yZXR1cm4geWV9KHgpO2lmKDA9PT1QLmxlbmd0aClyZXR1cm4gbmV3IE4oMSk7Zm9yKHZhciBWPXRoaXMsVD0wO1Q8UC5sZW5ndGgmJjA9PT1QW1RdO1QrKyxWPVYuc3FyKCkpO2lmKCsrVDxQLmxlbmd0aClmb3IodmFyIFM9Vi5zcXIoKTtUPFAu''@;'; put 'put ''bGVuZ3RoO1QrKyxTPVMuc3FyKCkpMCE9PVBbVF0mJihWPVYubXVsKFMpKTtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUCxWPXglMjYsVD0oeC1WKS8yNixTPTY3MTA4ODYzPj4+MjYtVjw8MjYtVjtpZigw''@;'; put 'put ''IT09Vil7dmFyIEY9MDtmb3IoUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgeWU9dGhpcy53b3Jkc1tQXSZTO3RoaXMud29yZHNbUF09KDB8dGhpcy53b3Jkc1tQXSkteWU8PFZ8RixGPXllPj4+MjYtVn1GJiYodGhpcy53b3Jkc1tQXT1GLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1UKXtmb3Io''@;'; put 'put ''UD10aGlzLmxlbmd0aC0xO1A+PTA7UC0tKXRoaXMud29yZHNbUCtUXT10aGlzLndvcmRzW1BdO2ZvcihQPTA7UDxUO1ArKyl0aGlzLndvcmRzW1BdPTA7dGhpcy5sZW5ndGgrPVR9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09''@;'; put 'put ''PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oeCxQLFYpe3ZhciBUO1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKSxUPVA/KFAtUCUyNikvMjY6MDt2YXIgUz14JTI2LEY9TWF0aC5taW4oKHgtUykvMjYsdGhpcy5sZW5ndGgpLHll''@;'; put 'put ''PTY3MTA4ODYzXjY3MTA4ODYzPj4+Uzw8UyxDZT1WO2lmKFQtPUYsVD1NYXRoLm1heCgwLFQpLENlKXtmb3IodmFyIERlPTA7RGU8RjtEZSsrKUNlLndvcmRzW0RlXT10aGlzLndvcmRzW0RlXTtDZS5sZW5ndGg9Rn1pZigwIT09RilpZih0aGlzLmxlbmd0aD5GKWZvcih0aGlzLmxlbmd0aC09''@;'; put 'put ''RixEZT0wO0RlPHRoaXMubGVuZ3RoO0RlKyspdGhpcy53b3Jkc1tEZV09dGhpcy53b3Jkc1tEZStGXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciBQZT0wO2ZvcihEZT10aGlzLmxlbmd0aC0xO0RlPj0wJiYoMCE9PVBlfHxEZT49VCk7RGUtLSl7dmFyIFFlPTB8dGhp''@;'; put 'put ''cy53b3Jkc1tEZV07dGhpcy53b3Jkc1tEZV09UGU8PDI2LVN8UWU+Pj5TLFBlPVFlJnllfXJldHVybiBDZSYmMCE9PVBlJiYoQ2Uud29yZHNbQ2UubGVuZ3RoKytdPVBlKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5zdHJpcCgpfSxOLnBy''@;'; put 'put ''b3RvdHlwZS5pc2hybj1mdW5jdGlvbih4LFAsVil7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKHgsUCxWKX0sTi5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKHgpfSxOLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbih4''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbih4KX0sTi5wcm90b3R5cGUuc2hybj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKHgpfSxOLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybih4KX0sTi5wcm90b3R5cGUu''@;'; put 'put ''dGVzdG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQPXglMjYsVj0oeC1QKS8yNjtyZXR1cm4hKHRoaXMubGVuZ3RoPD1WfHwhKHRoaXMud29yZHNbVl0mMTw8UCkpfSxOLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9m''@;'; put 'put ''IHgmJng+PTApO3ZhciBQPXglMjYsVj0oeC1QKS8yNjtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVY/dGhpczooMCE9PVAmJlYrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihWLHRoaXMubGVu''@;'; put 'put ''Z3RoKSwwIT09UCYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+UDw8UCksdGhpcy5zdHJpcCgpKX0sTi5wcm90b3R5cGUubWFza249ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24oeCl9LE4ucHJvdG90eXBlLmlhZGRuPWZ1bmN0''@;'; put 'put ''aW9uKHgpe3JldHVybiBZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KSx4PDA/dGhpcy5pc3VibigteCk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTx4Pyh0aGlzLndvcmRzWzBdPXgtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5u''@;'; put 'put ''ZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3Vibih4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4oeCl9LE4ucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbih4KXt0aGlzLndvcmRzWzBdKz14O2Zvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMu''@;'; put 'put ''d29yZHNbUF0+PTY3MTA4ODY0O1ArKyl0aGlzLndvcmRzW1BdLT02NzEwODg2NCxQPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW1ArMV09MTp0aGlzLndvcmRzW1ArMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsUCsxKSx0aGlzfSxOLnByb3RvdHlwZS5p''@;'; put 'put ''c3Vibj1mdW5jdGlvbih4KXtpZihZKCJudW1iZXIiPT10eXBlb2YgeCksWSh4PDY3MTA4ODY0KSx4PDApcmV0dXJuIHRoaXMuaWFkZG4oLXgpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbih4KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0''@;'; put 'put ''aGlzLndvcmRzWzBdLT14LDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXTwwO1ArKyl0aGlzLndvcmRzW1BdKz02NzEw''@;'; put 'put ''ODg2NCx0aGlzLndvcmRzW1ArMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKHgpfSxOLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4oeCl9LE4u''@;'; put 'put ''cHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LE4ucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxOLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24oeCxQLFYpe3ZhciBULFM7dGhpcy5f''@;'; put 'put ''ZXhwYW5kKHgubGVuZ3RoK1YpO3ZhciB5ZT0wO2ZvcihUPTA7VDx4Lmxlbmd0aDtUKyspe1M9KDB8dGhpcy53b3Jkc1tUK1ZdKSt5ZTt2YXIgQ2U9KDB8eC53b3Jkc1tUXSkqUDt5ZT0oKFMtPTY3MTA4ODYzJkNlKT4+MjYpLShDZS82NzEwODg2NHwwKSx0aGlzLndvcmRzW1QrVl09NjcxMDg4''@;'; put 'put ''NjMmU31mb3IoO1Q8dGhpcy5sZW5ndGgtVjtUKyspeWU9KFM9KDB8dGhpcy53b3Jkc1tUK1ZdKSt5ZSk+PjI2LHRoaXMud29yZHNbVCtWXT02NzEwODg2MyZTO2lmKDA9PT15ZSlyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihZKC0xPT09eWUpLHllPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXll''@;'; put 'put ''PShTPS0oMHx0aGlzLndvcmRzW1RdKSt5ZSk+PjI2LHRoaXMud29yZHNbVF09NjcxMDg4NjMmUztyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24oeCxQKXt2YXIgVixUPXRoaXMuY2xvbmUoKSxTPXgsRj0wfFMud29yZHNb''@;'; put 'put ''Uy5sZW5ndGgtMV07MCE9KFY9MjYtdGhpcy5fY291bnRCaXRzKEYpKSYmKFM9Uy51c2hsbihWKSxULml1c2hsbihWKSxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXSk7dmFyIHllLENlPVQubGVuZ3RoLVMubGVuZ3RoO2lmKCJtb2QiIT09UCl7KHllPW5ldyBOKG51bGwpKS5sZW5ndGg9Q2UrMSx5''@;'; put 'put ''ZS53b3Jkcz1uZXcgQXJyYXkoeWUubGVuZ3RoKTtmb3IodmFyIERlPTA7RGU8eWUubGVuZ3RoO0RlKyspeWUud29yZHNbRGVdPTB9dmFyIFBlPVQuY2xvbmUoKS5faXNobG5zdWJtdWwoUywxLENlKTswPT09UGUubmVnYXRpdmUmJihUPVBlLHllJiYoeWUud29yZHNbQ2VdPTEpKTtmb3IodmFy''@;'; put 'put ''IFFlPUNlLTE7UWU+PTA7UWUtLSl7dmFyICRlPTY3MTA4ODY0KigwfFQud29yZHNbUy5sZW5ndGgrUWVdKSsoMHxULndvcmRzW1MubGVuZ3RoK1FlLTFdKTtmb3IoJGU9TWF0aC5taW4oJGUvRnwwLDY3MTA4ODYzKSxULl9pc2hsbnN1Ym11bChTLCRlLFFlKTswIT09VC5uZWdhdGl2ZTspJGUt''@;'; put 'put ''LSxULm5lZ2F0aXZlPTAsVC5faXNobG5zdWJtdWwoUywxLFFlKSxULmlzWmVybygpfHwoVC5uZWdhdGl2ZV49MSk7eWUmJih5ZS53b3Jkc1tRZV09JGUpfXJldHVybiB5ZSYmeWUuc3RyaXAoKSxULnN0cmlwKCksImRpdiIhPT1QJiYwIT09ViYmVC5pdXNocm4oVikse2Rpdjp5ZXx8bnVsbCxt''@;'; put 'put ''b2Q6VH19LE4ucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih4LFAsVil7cmV0dXJuIFkoIXguaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgTigwKSxtb2Q6bmV3IE4oMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZT8oRj10aGlzLm5lZygpLmRpdm1vZCh4LFAp''@;'; put 'put ''LCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaWFkZCh4KSkse2RpdjpULG1vZDpTfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlPyhGPXRoaXMuZGl2bW9kKHgubmVnKCksUCksIm1vZCIh''@;'; put 'put ''PT1QJiYoVD1GLmRpdi5uZWcoKSkse2RpdjpULG1vZDpGLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJngubmVnYXRpdmUpPyhGPXRoaXMubmVnKCkuZGl2bW9kKHgubmVnKCksUCksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5pc3ViKHgpKSx7ZGl2OkYu''@;'; put 'put ''ZGl2LG1vZDpTfSk6eC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHgpPDA/e2RpdjpuZXcgTigwKSxtb2Q6dGhpc306MT09PXgubGVuZ3RoPyJkaXYiPT09UD97ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1QP3tkaXY6bnVsbCxtb2Q6bmV3IE4odGhp''@;'; put 'put ''cy5tb2RuKHgud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoeCxQKTt2YXIgVCxTLEZ9LE4ucHJvdG90eXBlLmRpdj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwiZGl2''@;'; put 'put ''IiwhMSkuZGl2fSxOLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITEpLm1vZH0sTi5wcm90b3R5cGUudW1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMCkubW9kfSxOLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5j''@;'; put 'put ''dGlvbih4KXt2YXIgUD10aGlzLmRpdm1vZCh4KTtpZihQLm1vZC5pc1plcm8oKSlyZXR1cm4gUC5kaXY7dmFyIFY9MCE9PVAuZGl2Lm5lZ2F0aXZlP1AubW9kLmlzdWIoeCk6UC5tb2QsVD14LnVzaHJuKDEpLFM9eC5hbmRsbigxKSxGPVYuY21wKFQpO3JldHVybiBGPDB8fDE9PT1TJiYwPT09''@;'; put 'put ''Rj9QLmRpdjowIT09UC5kaXYubmVnYXRpdmU/UC5kaXYuaXN1Ym4oMSk6UC5kaXYuaWFkZG4oMSl9LE4ucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZhciBQPTY3MTA4ODY0JXgsVj0wLFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSlWPShQKlYrKDB8dGhp''@;'; put 'put ''cy53b3Jkc1tUXSkpJXg7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKHgpe1koeDw9NjcxMDg4NjMpO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkrNjcxMDg4NjQqUDt0aGlzLndvcmRzW1ZdPVQveHwwLFA9''@;'; put 'put ''VCV4fXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmRpdm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pZGl2bih4KX0sTi5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9u''@;'; put 'put ''ZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9kKHgpOlAuY2xvbmUoKTtmb3IodmFyIFQ9bmV3IE4oMSksUz1uZXcgTigwKSxGPW5ldyBOKDApLHllPW5ldyBOKDEpLENlPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTspUC5pdXNocm4oMSksVi5pdXNocm4oMSksKytDZTtmb3IodmFyIERlPVYu''@;'; put 'put ''Y2xvbmUoKSxQZT1QLmNsb25lKCk7IVAuaXNaZXJvKCk7KXtmb3IodmFyIFFlPTAsJGU9MTswPT0oUC53b3Jkc1swXSYkZSkmJlFlPDI2OysrUWUsJGU8PD0xKTtpZihRZT4wKWZvcihQLml1c2hybihRZSk7UWUtLSA+MDspKFQuaXNPZGQoKXx8Uy5pc09kZCgpKSYmKFQuaWFkZChEZSksUy5p''@;'; put 'put ''c3ViKFBlKSksVC5pdXNocm4oMSksUy5pdXNocm4oMSk7Zm9yKHZhciBndD0wLHd0PTE7MD09KFYud29yZHNbMF0md3QpJiZndDwyNjsrK2d0LHd0PDw9MSk7aWYoZ3Q+MClmb3IoVi5pdXNocm4oZ3QpO2d0LS0gPjA7KShGLmlzT2RkKCl8fHllLmlzT2RkKCkpJiYoRi5pYWRkKERlKSx5ZS5p''@;'; put 'put ''c3ViKFBlKSksRi5pdXNocm4oMSkseWUuaXVzaHJuKDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksVC5pc3ViKEYpLFMuaXN1Yih5ZSkpOihWLmlzdWIoUCksRi5pc3ViKFQpLHllLmlzdWIoUykpfXJldHVybnthOkYsYjp5ZSxnY2Q6Vi5pdXNobG4oQ2UpfX0sTi5wcm90b3R5cGUuX2ludm1w''@;'; put 'put ''PWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkpO3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVCxTPW5ldyBOKDEpLEY9bmV3IE4oMCkseWU9Vi5jbG9uZSgpO1AuY21wbigxKT4wJiZW''@;'; put 'put ''LmNtcG4oMSk+MDspe2Zvcih2YXIgQ2U9MCxEZT0xOzA9PShQLndvcmRzWzBdJkRlKSYmQ2U8MjY7KytDZSxEZTw8PTEpO2lmKENlPjApZm9yKFAuaXVzaHJuKENlKTtDZS0tID4wOylTLmlzT2RkKCkmJlMuaWFkZCh5ZSksUy5pdXNocm4oMSk7Zm9yKHZhciBQZT0wLFFlPTE7MD09KFYud29y''@;'; put 'put ''ZHNbMF0mUWUpJiZQZTwyNjsrK1BlLFFlPDw9MSk7aWYoUGU+MClmb3IoVi5pdXNocm4oUGUpO1BlLS0gPjA7KUYuaXNPZGQoKSYmRi5pYWRkKHllKSxGLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFMuaXN1YihGKSk6KFYuaXN1YihQKSxGLmlzdWIoUykpfXJldHVybihUPTA9''@;'; put 'put ''PT1QLmNtcG4oMSk/UzpGKS5jbXBuKDApPDAmJlQuaWFkZCh4KSxUfSxOLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oeCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4geC5hYnMoKTtpZih4LmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciBQPXRoaXMuY2xvbmUoKSxWPXguY2xvbmUoKTtQ''@;'; put 'put ''Lm5lZ2F0aXZlPTAsVi5uZWdhdGl2ZT0wO2Zvcih2YXIgVD0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7VCsrKVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDtQLmlzRXZlbigpOylQLml1c2hybigxKTtmb3IoO1YuaXNFdmVuKCk7KVYuaXVzaHJuKDEpO3ZhciBTPVAuY21w''@;'; put 'put ''KFYpO2lmKFM8MCl7dmFyIEY9UDtQPVYsVj1GfWVsc2UgaWYoMD09PVN8fDA9PT1WLmNtcG4oMSkpYnJlYWs7UC5pc3ViKFYpfXJldHVybiBWLml1c2hsbihUKX0sTi5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5lZ2NkKHgpLmEudW1vZCh4KX0sTi5wcm90b3R5cGUu''@;'; put 'put ''aXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMud29yZHNbMF0meH0sTi5wcm90''@;'; put 'put ''b3R5cGUuYmluY249ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgpO3ZhciBQPXglMjYsVj0oeC1QKS8yNixUPTE8PFA7aWYodGhpcy5sZW5ndGg8PVYpcmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl18PVQsdGhpcztmb3IodmFyIFM9VCxGPVY7MCE9PVMmJkY8''@;'; put 'put ''dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9MHx0aGlzLndvcmRzW0ZdO1M9KHllKz1TKT4+PjI2LHRoaXMud29yZHNbRl09eWUmPTY3MTA4ODYzfXJldHVybiAwIT09UyYmKHRoaXMud29yZHNbRl09Uyx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sTi5wcm90b3R5cGUuY21wbj1mdW5jdGlvbih4KXt2YXIgUCxWPXg8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIVYpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJlYpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgp''@;'; put 'put ''LHRoaXMubGVuZ3RoPjEpUD0xO2Vsc2V7ViYmKHg9LXgpLFkoeDw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIFQ9MHx0aGlzLndvcmRzWzBdO1A9VD09PXg/MDpUPHg/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtUDpQfSxOLnByb3RvdHlwZS5jbXA9ZnVuY3Rp''@;'; put 'put ''b24oeCl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgUD10aGlzLnVjbXAoeCk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUudWNt''@;'; put 'put ''cD1mdW5jdGlvbih4KXtpZih0aGlzLmxlbmd0aD54Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx4Lmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIFA9MCxWPXRoaXMubGVuZ3RoLTE7Vj49MDtWLS0pe3ZhciBUPTB8dGhpcy53b3Jkc1tWXSxTPTB8eC53b3Jkc1tWXTtpZihUIT09Uyl7''@;'; put 'put ''VDxTP1A9LTE6VD5TJiYoUD0xKTticmVha319cmV0dXJuIFB9LE4ucHJvdG90eXBlLmd0bj1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlv''@;'; put 'put ''bih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPj0wfSxOLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPj0wfSxOLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHgpe3JldHVy''@;'; put 'put ''bi0xPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KTw9MH0sTi5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KTw9MH0sTi5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhp''@;'; put 'put ''cy5jbXBuKHgpfSxOLnByb3RvdHlwZS5lcT1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wKHgpfSxOLnJlZD1mdW5jdGlvbih4KXtyZXR1cm4gbmV3IGVlKHgpfSxOLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbih4KXtyZXR1cm4gWSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIg''@;'; put 'put ''aW4gcmVkdWN0aW9uIGNvbnRleHQiKSxZKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLHguY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZCh4KX0sTi5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJmcm9tUmVk''@;'; put 'put ''IHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LE4ucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5yZWQ9eCx0aGlzfSxOLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbih4''@;'; put 'put ''KXtyZXR1cm4gWSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZCh4KX0sTi5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJz''@;'; put 'put ''IiksdGhpcy5yZWQuYWRkKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24o''@;'; put 'put ''eCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJl''@;'; put 'put ''cnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24o''@;'; put 'put ''eCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLm11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwg''@;'; put 'put ''d29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJlZC5pbXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiks''@;'; put 'put ''dGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQu''@;'; put 'put ''aXNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LE4ucHJvdG90eXBlLnJlZEludm09''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxOLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVk''@;'; put 'put ''TmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sTi5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkJiYheC5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQu''@;'; put 'put ''X3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMseCl9O3ZhciBJZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIFRlKHgsUCl7dGhpcy5uYW1lPXgsdGhpcy5wPW5ldyBOKFAsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhp''@;'; put 'put ''cy5rPW5ldyBOKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBNZSgpe1RlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZm''@;'; put 'put ''YzJmIil9ZnVuY3Rpb24gaGUoKXtUZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIE8oKXtUZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZm''@;'; put 'put ''ZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIHooKXtUZS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIGVlKHgpe2lmKCJzdHJpbmciPT10''@;'; put 'put ''eXBlb2YgeCl7dmFyIFA9Ti5fcHJpbWUoeCk7dGhpcy5tPVAucCx0aGlzLnByaW1lPVB9ZWxzZSBZKHguZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09eCx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gbmUoeCl7ZWUuY2FsbCh0aGlzLHgpLHRoaXMuc2hp''@;'; put 'put ''ZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IE4oMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhp''@;'; put 'put ''cy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9VGUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihu''@;'; put 'put ''dWxsKTtyZXR1cm4geC53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLHh9LFRlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKHgpe3ZhciBQLFY9eDtkb3t0aGlzLnNwbGl0KFYsdGhpcy50bXApLFA9KFY9KFY9dGhpcy5pbXVsSyhWKSkuaWFkZCh0aGlzLnRtcCkpLmJp''@;'; put 'put ''dExlbmd0aCgpfXdoaWxlKFA+dGhpcy5uKTt2YXIgVD1QPHRoaXMubj8tMTpWLnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PVQ/KFYud29yZHNbMF09MCxWLmxlbmd0aD0xKTpUPjA/Vi5pc3ViKHRoaXMucCk6dm9pZCAwIT09Vi5zdHJpcD9WLnN0cmlwKCk6Vi5fc3RyaXAoKSxWfSxUZS5wcm90''@;'; put 'put ''b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXt4Lml1c2hybih0aGlzLm4sMCxQKX0sVGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3JldHVybiB4LmltdWwodGhpcy5rKX0sVyhNZSxUZSksTWUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7Zm9yKHZhciBWPTQxOTQzMDMsVD1N''@;'; put 'put ''YXRoLm1pbih4Lmxlbmd0aCw5KSxTPTA7UzxUO1MrKylQLndvcmRzW1NdPXgud29yZHNbU107aWYoUC5sZW5ndGg9VCx4Lmxlbmd0aDw9OSlyZXR1cm4geC53b3Jkc1swXT0wLHZvaWQoeC5sZW5ndGg9MSk7dmFyIEY9eC53b3Jkc1s5XTtmb3IoUC53b3Jkc1tQLmxlbmd0aCsrXT1GJlYsUz0x''@;'; put 'put ''MDtTPHgubGVuZ3RoO1MrKyl7dmFyIHllPTB8eC53b3Jkc1tTXTt4LndvcmRzW1MtMTBdPSh5ZSZWKTw8NHxGPj4+MjIsRj15ZX14LndvcmRzW1MtMTBdPUY+Pj49MjIseC5sZW5ndGgtPTA9PT1GJiZ4Lmxlbmd0aD4xMD8xMDo5fSxNZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7eC53''@;'; put 'put ''b3Jkc1t4Lmxlbmd0aF09MCx4LndvcmRzW3gubGVuZ3RoKzFdPTAseC5sZW5ndGgrPTI7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKXt2YXIgVD0wfHgud29yZHNbVl07eC53b3Jkc1tWXT02NzEwODg2MyYoUCs9OTc3KlQpLFA9NjQqVCsoUC82NzEwODg2NHwwKX1yZXR1cm4gMD09''@;'; put 'put ''PXgud29yZHNbeC5sZW5ndGgtMV0mJih4Lmxlbmd0aC0tLDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiZ4Lmxlbmd0aC0tKSx4fSxXKGhlLFRlKSxXKE8sVGUpLFcoeixUZSksei5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPTAsVj0wO1Y8eC5sZW5ndGg7VisrKXt2YXIg''@;'; put 'put ''VD0xOSooMHx4LndvcmRzW1ZdKStQLFM9NjcxMDg4NjMmVDtUPj4+PTI2LHgud29yZHNbVl09UyxQPVR9cmV0dXJuIDAhPT1QJiYoeC53b3Jkc1t4Lmxlbmd0aCsrXT1QKSx4fSxOLl9wcmltZT1mdW5jdGlvbih4KXtpZihJZVt4XSlyZXR1cm4gSWVbeF07dmFyIFA7aWYoImsyNTYiPT09eClQ''@;'; put 'put ''PW5ldyBNZTtlbHNlIGlmKCJwMjI0Ij09PXgpUD1uZXcgaGU7ZWxzZSBpZigicDE5MiI9PT14KVA9bmV3IE87ZWxzZXtpZigicDI1NTE5IiE9PXgpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIreCk7UD1uZXcgen1yZXR1cm4gSWVbeF09UCxQfSxlZS5wcm90b3R5cGUuX3Zlcmlm''@;'; put 'put ''eTE9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGVlLnByb3RvdHlwZS5fdmVyaWZ5Mj1mdW5jdGlvbih4LFApe1koMD09KHgubmVnYXRpdmV8UC5u''@;'; put 'put ''ZWdhdGl2ZSksInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCYmeC5yZWQ9PT1QLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxlZS5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1''@;'; put 'put ''Y2UoeCkuX2ZvcmNlUmVkKHRoaXMpOngudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sZWUucHJvdG90eXBlLm5lZz1mdW5jdGlvbih4KXtyZXR1cm4geC5pc1plcm8oKT94LmNsb25lKCk6dGhpcy5tLnN1Yih4KS5fZm9yY2VSZWQodGhpcyl9LGVlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rp''@;'; put 'put ''b24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5hZGQoUCk7cmV0dXJuIFYuY21wKHRoaXMubSk+PTAmJlYuaXN1Yih0aGlzLm0pLFYuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlhZGQo''@;'; put 'put ''UCk7cmV0dXJuIFYuY21wKHRoaXMubSk+PTAmJlYuaXN1Yih0aGlzLm0pLFZ9LGVlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5zdWIoUCk7cmV0dXJuIFYuY21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxWLl9mb3JjZVJlZCh0aGlzKX0s''@;'; put 'put ''ZWUucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVn0sZWUucHJvdG90eXBlLnNobD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkxKHgpLHRoaXMu''@;'; put 'put ''aW1vZCh4LnVzaGxuKFApKX0sZWUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5Mih4LFApLHRoaXMuaW1vZCh4LmltdWwoUCkpfSxlZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2Qo''@;'; put 'put ''eC5tdWwoUCkpfSxlZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbXVsKHgseC5jbG9uZSgpKX0sZWUucHJvdG90eXBlLnNxcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5tdWwoeCx4KX0sZWUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oeCl7aWYoeC5pc1plcm8o''@;'; put 'put ''KSlyZXR1cm4geC5jbG9uZSgpO3ZhciBQPXRoaXMubS5hbmRsbigzKTtpZihZKFAlMj09MSksMz09PVApe3ZhciBWPXRoaXMubS5hZGQobmV3IE4oMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coeCxWKX1mb3IodmFyIFQ9dGhpcy5tLnN1Ym4oMSksUz0wOyFULmlzWmVybygpJiYwPT09''@;'; put 'put ''VC5hbmRsbigxKTspUysrLFQuaXVzaHJuKDEpO1koIVQuaXNaZXJvKCkpO3ZhciBGPW5ldyBOKDEpLnRvUmVkKHRoaXMpLHllPUYucmVkTmVnKCksQ2U9dGhpcy5tLnN1Ym4oMSkuaXVzaHJuKDEpLERlPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoRGU9bmV3IE4oMipEZSpEZSkudG9SZWQodGhp''@;'; put 'put ''cyk7MCE9PXRoaXMucG93KERlLENlKS5jbXAoeWUpOylEZS5yZWRJQWRkKHllKTtmb3IodmFyIFBlPXRoaXMucG93KERlLFQpLFFlPXRoaXMucG93KHgsVC5hZGRuKDEpLml1c2hybigxKSksJGU9dGhpcy5wb3coeCxUKSxndD1TOzAhPT0kZS5jbXAoRik7KXtmb3IodmFyIHd0PSRlLG10PTA7''@;'; put 'put ''MCE9PXd0LmNtcChGKTttdCsrKXd0PXd0LnJlZFNxcigpO1kobXQ8Z3QpO3ZhciB2dD10aGlzLnBvdyhQZSxuZXcgTigxKS5pdXNobG4oZ3QtbXQtMSkpO1FlPVFlLnJlZE11bCh2dCksUGU9dnQucmVkU3FyKCksJGU9JGUucmVkTXVsKFBlKSxndD1tdH1yZXR1cm4gUWV9LGVlLnByb3RvdHlw''@;'; put 'put ''ZS5pbnZtPWZ1bmN0aW9uKHgpe3ZhciBQPXguX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT1QLm5lZ2F0aXZlPyhQLm5lZ2F0aXZlPTAsdGhpcy5pbW9kKFApLnJlZE5lZygpKTp0aGlzLmltb2QoUCl9LGVlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oeCxQKXtpZihQLmlzWmVybygpKXJldHVy''@;'; put 'put ''biBuZXcgTigxKS50b1JlZCh0aGlzKTtpZigwPT09UC5jbXBuKDEpKXJldHVybiB4LmNsb25lKCk7dmFyIFY9bmV3IEFycmF5KDE2KTtWWzBdPW5ldyBOKDEpLnRvUmVkKHRoaXMpLFZbMV09eDtmb3IodmFyIFQ9MjtUPFYubGVuZ3RoO1QrKylWW1RdPXRoaXMubXVsKFZbVC0xXSx4KTt2YXIg''@;'; put 'put ''Uz1WWzBdLEY9MCx5ZT0wLENlPVAuYml0TGVuZ3RoKCklMjY7Zm9yKDA9PT1DZSYmKENlPTI2KSxUPVAubGVuZ3RoLTE7VD49MDtULS0pe2Zvcih2YXIgRGU9UC53b3Jkc1tUXSxQZT1DZS0xO1BlPj0wO1BlLS0pe3ZhciBRZT1EZT4+UGUmMTtTIT09VlswXSYmKFM9dGhpcy5zcXIoUykpLDAh''@;'; put 'put ''PT1RZXx8MCE9PUY/KEY8PD0xLEZ8PVFlLCg0PT0rK3llfHwwPT09VCYmMD09PVBlKSYmKFM9dGhpcy5tdWwoUyxWW0ZdKSx5ZT0wLEY9MCkpOnllPTB9Q2U9MjZ9cmV0dXJuIFN9LGVlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7dmFyIFA9eC51bW9kKHRoaXMubSk7cmV0dXJu''@;'; put 'put ''IFA9PT14P1AuY2xvbmUoKTpQfSxlZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9eC5jbG9uZSgpO3JldHVybiBQLnJlZD1udWxsLFB9LE4ubW9udD1mdW5jdGlvbih4KXtyZXR1cm4gbmV3IG5lKHgpfSxXKG5lLGVlKSxuZS5wcm90b3R5cGUuY29udmVydFRvPWZ1''@;'; put 'put ''bmN0aW9uKHgpe3JldHVybiB0aGlzLmltb2QoeC51c2hsbih0aGlzLnNoaWZ0KSl9LG5lLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD10aGlzLmltb2QoeC5tdWwodGhpcy5yaW52KSk7cmV0dXJuIFAucmVkPW51bGwsUH0sbmUucHJvdG90eXBlLmltdWw9ZnVuY3Rp''@;'; put 'put ''b24oeCxQKXtpZih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiB4LndvcmRzWzBdPTAseC5sZW5ndGg9MSx4O3ZhciBWPXguaW11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1''@;'; put 'put ''c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1pl''@;'; put 'put ''cm8oKSlyZXR1cm4gbmV3IE4oMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBWPXgubXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5j''@;'; put 'put ''bXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTwwJiYoRj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltb2QoeC5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3Jj''@;'; put 'put ''ZVJlZCh0aGlzKX19KFU9ai5ubWQoVSksdGhpcyl9LDgwOTE6VT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBRKGoscmUpe2lmKG51bGw9PWopdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgZmlyc3QgYXJndW1lbnQgdG8gb2JqZWN0Iik7Zm9yKHZhciBhZT1PYmplY3Qoaiks''@;'; put 'put ''WT0xO1k8YXJndW1lbnRzLmxlbmd0aDtZKyspe3ZhciBXPWFyZ3VtZW50c1tZXTtpZihudWxsIT1XKWZvcih2YXIgTj1PYmplY3Qua2V5cyhPYmplY3QoVykpLHRlPTAsSz1OLmxlbmd0aDt0ZTxLO3RlKyspe3ZhciBKPU5bdGVdLHNlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io''@;'; put 'put ''VyxKKTt2b2lkIDAhPT1zZSYmc2UuZW51bWVyYWJsZSYmKGFlW0pdPVdbSl0pfX1yZXR1cm4gYWV9VS5leHBvcnRzPXthc3NpZ246USxwb2x5ZmlsbDpmdW5jdGlvbigpe09iamVjdC5hc3NpZ258fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QsImFzc2lnbiIse2VudW1lcmFibGU6ITEs''@;'; put 'put ''Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOlF9KX19fSw3MTg3OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlLGFlPWooNTEwOCksWT0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3Q/UmVmbGVjdDpudWxsLFc9WSYmImZ1bmN0aW9uIj09dHlwZW9mIFkuYXBwbHk/WS5hcHBs''@;'; put 'put ''eTpmdW5jdGlvbihJZSxUZSxNZSl7cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKEllLFRlLE1lKX07cmU9WSYmImZ1bmN0aW9uIj09dHlwZW9mIFkub3duS2V5cz9ZLm93bktleXM6T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scz9mdW5jdGlvbihJZSl7cmV0dXJuIE9i''@;'; put 'put ''amVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEllKS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhJZSkpfTpmdW5jdGlvbihJZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEllKX07dmFyIE49TnVtYmVyLmlzTmFOfHxmdW5jdGlvbihJZSl7cmV0dXJuIEll''@;'; put 'put ''IT1JZX07ZnVuY3Rpb24gdGUoKXt0ZS5pbml0LmNhbGwodGhpcyl9VS5leHBvcnRzPXRlLFUuZXhwb3J0cy5vbmNlPWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oTWUsaGUpe2Z1bmN0aW9uIE8oZWUpe0llLnJlbW92ZUxpc3RlbmVyKFRlLHopLGhlKGVlKX1m''@;'; put 'put ''dW5jdGlvbiB6KCl7ImZ1bmN0aW9uIj09dHlwZW9mIEllLnJlbW92ZUxpc3RlbmVyJiZJZS5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLE8pLE1lKFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzKSl9dmFyIGVlO1NlKEllLFRlLHose29uY2U6ITB9KSwiZXJyb3IiIT09VGUmJigiZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YoZWU9SWUpLm9uJiZTZShlZSwiZXJyb3IiLE8se29uY2U6ITB9KSl9KX0sdGUuRXZlbnRFbWl0dGVyPXRlLHRlLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCx0ZS5wcm90b3R5cGUuX2V2ZW50c0NvdW50PTAsdGUucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnM9dm9pZCAwO3ZhciBLPTEw''@;'; put 'put ''O2Z1bmN0aW9uIEooSWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBJZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImxpc3RlbmVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgSWUpfWZ1bmN0aW9uIHNlKEllKXtyZXR1cm4gdm9p''@;'; put 'put ''ZCAwPT09SWUuX21heExpc3RlbmVycz90ZS5kZWZhdWx0TWF4TGlzdGVuZXJzOkllLl9tYXhMaXN0ZW5lcnN9ZnVuY3Rpb24gb2UoSWUsVGUsTWUsaGUpe3ZhciBPLHosZWU7aWYoSihNZSksdm9pZCAwPT09KHo9SWUuX2V2ZW50cyk/KHo9SWUuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwp''@;'; put 'put ''LEllLl9ldmVudHNDb3VudD0wKToodm9pZCAwIT09ei5uZXdMaXN0ZW5lciYmKEllLmVtaXQoIm5ld0xpc3RlbmVyIixUZSxNZS5saXN0ZW5lcj9NZS5saXN0ZW5lcjpNZSksej1JZS5fZXZlbnRzKSxlZT16W1RlXSksdm9pZCAwPT09ZWUpZWU9eltUZV09TWUsKytJZS5fZXZlbnRzQ291bnQ7''@;'; put 'put ''ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZWU/ZWU9eltUZV09aGU/W01lLGVlXTpbZWUsTWVdOmhlP2VlLnVuc2hpZnQoTWUpOmVlLnB1c2goTWUpLChPPXNlKEllKSk+MCYmZWUubGVuZ3RoPk8mJiFlZS53YXJuZWQpe2VlLndhcm5lZD0hMDt2YXIgeD1uZXcgRXJyb3IoIlBvc3NpYmxl''@;'; put 'put ''IEV2ZW50RW1pdHRlciBtZW1vcnkgbGVhayBkZXRlY3RlZC4gIitlZS5sZW5ndGgrIiAiK1N0cmluZyhUZSkrIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0Iik7eC5uYW1lPSJNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5p''@;'; put 'put ''bmciLHguZW1pdHRlcj1JZSx4LnR5cGU9VGUseC5jb3VudD1lZS5sZW5ndGgsYWUmJmFlLndhcm4mJmFlLndhcm4oeCl9cmV0dXJuIEllfWZ1bmN0aW9uIGNlKCl7aWYoIXRoaXMuZmlyZWQpcmV0dXJuIHRoaXMudGFyZ2V0LnJlbW92ZUxpc3RlbmVyKHRoaXMudHlwZSx0aGlzLndyYXBGbiks''@;'; put 'put ''dGhpcy5maXJlZD0hMCwwPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLmxpc3RlbmVyLmNhbGwodGhpcy50YXJnZXQpOnRoaXMubGlzdGVuZXIuYXBwbHkodGhpcy50YXJnZXQsYXJndW1lbnRzKX1mdW5jdGlvbiBkZShJZSxUZSxNZSl7dmFyIGhlPXtmaXJlZDohMSx3cmFwRm46dm9pZCAwLHRh''@;'; put 'put ''cmdldDpJZSx0eXBlOlRlLGxpc3RlbmVyOk1lfSxPPWNlLmJpbmQoaGUpO3JldHVybiBPLmxpc3RlbmVyPU1lLGhlLndyYXBGbj1PLE99ZnVuY3Rpb24gdmUoSWUsVGUsTWUpe3ZhciBoZT1JZS5fZXZlbnRzO2lmKHZvaWQgMD09PWhlKXJldHVybltdO3ZhciBPPWhlW1RlXTtyZXR1cm4gdm9p''@;'; put 'put ''ZCAwPT09Tz9bXToiZnVuY3Rpb24iPT10eXBlb2YgTz9NZT9bTy5saXN0ZW5lcnx8T106W09dOk1lP2Z1bmN0aW9uKHope2Zvcih2YXIgZWU9bmV3IEFycmF5KHoubGVuZ3RoKSxuZT0wO25lPGVlLmxlbmd0aDsrK25lKWVlW25lXT16W25lXS5saXN0ZW5lcnx8eltuZV07cmV0dXJuIGVlfShP''@;'; put 'put ''KTprZShPLE8ubGVuZ3RoKX1mdW5jdGlvbiBBZShJZSl7dmFyIFRlPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT1UZSl7dmFyIE1lPVRlW0llXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgTWUpcmV0dXJuIDE7aWYodm9pZCAwIT09TWUpcmV0dXJuIE1lLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlv''@;'; put 'put ''biBrZShJZSxUZSl7Zm9yKHZhciBNZT1uZXcgQXJyYXkoVGUpLGhlPTA7aGU8VGU7KytoZSlNZVtoZV09SWVbaGVdO3JldHVybiBNZX1mdW5jdGlvbiBTZShJZSxUZSxNZSxoZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEllLm9uKWhlLm9uY2U/SWUub25jZShUZSxNZSk6SWUub24oVGUsTWUp''@;'; put 'put ''O2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEllLmFkZEV2ZW50TGlzdGVuZXIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJlbWl0dGVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIEllKTtJZS5hZGRFdmVudExpc3Rl''@;'; put 'put ''bmVyKFRlLGZ1bmN0aW9uIE8oeil7aGUub25jZSYmSWUucmVtb3ZlRXZlbnRMaXN0ZW5lcihUZSxPKSxNZSh6KX0pfX1PYmplY3QuZGVmaW5lUHJvcGVydHkodGUsImRlZmF1bHRNYXhMaXN0ZW5lcnMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBLfSxzZXQ6ZnVuY3Rp''@;'; put 'put ''b24oSWUpe2lmKCJudW1iZXIiIT10eXBlb2YgSWV8fEllPDB8fE4oSWUpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgImRlZmF1bHRNYXhMaXN0ZW5lcnMiIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrSWUr''@;'; put 'put ''Ii4iKTtLPUllfX0pLHRlLmluaXQ9ZnVuY3Rpb24oKXt2b2lkIDAhPT10aGlzLl9ldmVudHMmJnRoaXMuX2V2ZW50cyE9PU9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKS5fZXZlbnRzfHwodGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCksdGhp''@;'; put 'put ''cy5fbWF4TGlzdGVuZXJzPXRoaXMuX21heExpc3RlbmVyc3x8dm9pZCAwfSx0ZS5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKEllKXtpZigibnVtYmVyIiE9dHlwZW9mIEllfHxJZTwwfHxOKEllKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJuIiBpcyBv''@;'; put 'put ''dXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK0llKyIuIik7cmV0dXJuIHRoaXMuX21heExpc3RlbmVycz1JZSx0aGlzfSx0ZS5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHNlKHRoaXMpfSx0ZS5wcm90''@;'; put 'put ''b3R5cGUuZW1pdD1mdW5jdGlvbihJZSl7Zm9yKHZhciBUZT1bXSxNZT0xO01lPGFyZ3VtZW50cy5sZW5ndGg7TWUrKylUZS5wdXNoKGFyZ3VtZW50c1tNZV0pO3ZhciBoZT0iZXJyb3IiPT09SWUsTz10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09TyloZT1oZSYmdm9pZCAwPT09Ty5lcnJvcjtl''@;'; put 'put ''bHNlIGlmKCFoZSlyZXR1cm4hMTtpZihoZSl7dmFyIHo7aWYoVGUubGVuZ3RoPjAmJih6PVRlWzBdKSx6IGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgejt2YXIgZWU9bmV3IEVycm9yKCJVbmhhbmRsZWQgZXJyb3IuIisoej8iICgiK3oubWVzc2FnZSsiKSI6IiIpKTt0aHJvdyBlZS5jb250ZXh0''@;'; put 'put ''PXosZWV9dmFyIG5lPU9bSWVdO2lmKHZvaWQgMD09PW5lKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBuZSlXKG5lLHRoaXMsVGUpO2Vsc2V7dmFyIHg9bmUubGVuZ3RoLFA9a2UobmUseCk7Zm9yKE1lPTA7TWU8eDsrK01lKVcoUFtNZV0sdGhpcyxUZSl9cmV0dXJuITB9LHRlLnBy''@;'; put 'put ''b3RvdHlwZS5vbj10ZS5wcm90b3R5cGUuYWRkTGlzdGVuZXI9ZnVuY3Rpb24oSWUsVGUpe3JldHVybiBvZSh0aGlzLEllLFRlLCExKX0sdGUucHJvdG90eXBlLnByZXBlbmRMaXN0ZW5lcj1mdW5jdGlvbihJZSxUZSl7cmV0dXJuIG9lKHRoaXMsSWUsVGUsITApfSx0ZS5wcm90b3R5cGUub25j''@;'; put 'put ''ZT1mdW5jdGlvbihJZSxUZSl7cmV0dXJuIEooVGUpLHRoaXMub24oSWUsZGUodGhpcyxJZSxUZSkpLHRoaXN9LHRlLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyPWZ1bmN0aW9uKEllLFRlKXtyZXR1cm4gSihUZSksdGhpcy5wcmVwZW5kTGlzdGVuZXIoSWUsZGUodGhpcyxJZSxUZSkp''@;'; put 'put ''LHRoaXN9LHRlLnByb3RvdHlwZS5vZmY9dGUucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyPWZ1bmN0aW9uKEllLFRlKXt2YXIgTWUsaGUsTyx6LGVlO2lmKEooVGUpLHZvaWQgMD09PShoZT10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lmKHZvaWQgMD09PShNZT1oZVtJZV0pKXJldHVybiB0''@;'; put 'put ''aGlzO2lmKE1lPT09VGV8fE1lLmxpc3RlbmVyPT09VGUpMD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTooZGVsZXRlIGhlW0llXSxoZS5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsSWUsTWUubGlzdGVuZXJ8''@;'; put 'put ''fFRlKSk7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2YgTWUpe2ZvcihPPS0xLHo9TWUubGVuZ3RoLTE7ej49MDt6LS0paWYoTWVbel09PT1UZXx8TWVbel0ubGlzdGVuZXI9PT1UZSl7ZWU9TWVbel0ubGlzdGVuZXIsTz16O2JyZWFrfWlmKE88MClyZXR1cm4gdGhpczswPT09Tz9NZS5zaGlm''@;'; put 'put ''dCgpOmZ1bmN0aW9uKG5lLHgpe2Zvcig7eCsxPG5lLmxlbmd0aDt4KyspbmVbeF09bmVbeCsxXTtuZS5wb3AoKX0oTWUsTyksMT09PU1lLmxlbmd0aCYmKGhlW0llXT1NZVswXSksdm9pZCAwIT09aGUucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVtb3ZlTGlzdGVuZXIiLEllLGVlfHxU''@;'; put 'put ''ZSl9cmV0dXJuIHRoaXN9LHRlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oSWUpe3ZhciBUZSxNZSxoZTtpZih2b2lkIDA9PT0oTWU9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT1NZS5yZW1vdmVMaXN0ZW5lcilyZXR1cm4gMD09PWFyZ3VtZW50''@;'; put 'put ''cy5sZW5ndGg/KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApOnZvaWQgMCE9PU1lW0llXSYmKDA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6ZGVsZXRlIE1lW0llXSksdGhpcztpZigwPT09''@;'; put 'put ''YXJndW1lbnRzLmxlbmd0aCl7dmFyIE8sej1PYmplY3Qua2V5cyhNZSk7Zm9yKGhlPTA7aGU8ei5sZW5ndGg7KytoZSkicmVtb3ZlTGlzdGVuZXIiIT09KE89eltoZV0pJiZ0aGlzLnJlbW92ZUFsbExpc3RlbmVycyhPKTtyZXR1cm4gdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoInJlbW92ZUxp''@;'; put 'put ''c3RlbmVyIiksdGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCx0aGlzfWlmKCJmdW5jdGlvbiI9PXR5cGVvZihUZT1NZVtJZV0pKXRoaXMucmVtb3ZlTGlzdGVuZXIoSWUsVGUpO2Vsc2UgaWYodm9pZCAwIT09VGUpZm9yKGhlPVRlLmxlbmd0aC0x''@;'; put 'put ''O2hlPj0wO2hlLS0pdGhpcy5yZW1vdmVMaXN0ZW5lcihJZSxUZVtoZV0pO3JldHVybiB0aGlzfSx0ZS5wcm90b3R5cGUubGlzdGVuZXJzPWZ1bmN0aW9uKEllKXtyZXR1cm4gdmUodGhpcyxJZSwhMCl9LHRlLnByb3RvdHlwZS5yYXdMaXN0ZW5lcnM9ZnVuY3Rpb24oSWUpe3JldHVybiB2ZSh0''@;'; put 'put ''aGlzLEllLCExKX0sdGUubGlzdGVuZXJDb3VudD1mdW5jdGlvbihJZSxUZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEllLmxpc3RlbmVyQ291bnQ/SWUubGlzdGVuZXJDb3VudChUZSk6QWUuY2FsbChJZSxUZSl9LHRlLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PUFlLHRlLnByb3RvdHlw''@;'; put 'put ''ZS5ldmVudE5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2V2ZW50c0NvdW50PjA/cmUodGhpcy5fZXZlbnRzKTpbXX19LDMwNDg6KFUsUSxqKT0+e3ZhciByZT1qKDk1MDkpLkJ1ZmZlcixhZT1qKDIzMTgpO1UuZXhwb3J0cz1mdW5jdGlvbihZLFcsTix0ZSl7aWYocmUuaXNCdWZmZXIo''@;'; put 'put ''WSl8fChZPXJlLmZyb20oWSwiYmluYXJ5IikpLFcmJihyZS5pc0J1ZmZlcihXKXx8KFc9cmUuZnJvbShXLCJiaW5hcnkiKSksOCE9PVcubGVuZ3RoKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic2FsdCBzaG91bGQgYmUgQnVmZmVyIHdpdGggOCBieXRlIGxlbmd0aCIpO2Zvcih2YXIgSz1OLzgs''@;'; put 'put ''Sj1yZS5hbGxvYyhLKSxzZT1yZS5hbGxvYyh0ZXx8MCksb2U9cmUuYWxsb2MoMCk7Sz4wfHx0ZT4wOyl7dmFyIGNlPW5ldyBhZTtjZS51cGRhdGUob2UpLGNlLnVwZGF0ZShZKSxXJiZjZS51cGRhdGUoVyksb2U9Y2UuZGlnZXN0KCk7dmFyIGRlPTA7aWYoSz4wKXt2YXIgdmU9Si5sZW5ndGgt''@;'; put 'put ''SztkZT1NYXRoLm1pbihLLG9lLmxlbmd0aCksb2UuY29weShKLHZlLDAsZGUpLEstPWRlfWlmKGRlPG9lLmxlbmd0aCYmdGU+MCl7dmFyIEFlPXNlLmxlbmd0aC10ZSxrZT1NYXRoLm1pbih0ZSxvZS5sZW5ndGgtZGUpO29lLmNvcHkoc2UsQWUsZGUsZGUra2UpLHRlLT1rZX19cmV0dXJuIG9l''@;'; put 'put ''LmZpbGwoMCkse2tleTpKLGl2OnNlfX19LDQwMjk6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig1MzIwKSxhZT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLFk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxXPWZ1bmN0aW9uKEssSixzZSl7Zm9yKHZhciBvZT0wLGNl''@;'; put 'put ''PUsubGVuZ3RoO29lPGNlO29lKyspWS5jYWxsKEssb2UpJiYobnVsbD09c2U/SihLW29lXSxvZSxLKTpKLmNhbGwoc2UsS1tvZV0sb2UsSykpfSxOPWZ1bmN0aW9uKEssSixzZSl7Zm9yKHZhciBvZT0wLGNlPUsubGVuZ3RoO29lPGNlO29lKyspbnVsbD09c2U/SihLLmNoYXJBdChvZSksb2Us''@;'; put 'put ''Syk6Si5jYWxsKHNlLEsuY2hhckF0KG9lKSxvZSxLKX0sdGU9ZnVuY3Rpb24oSyxKLHNlKXtmb3IodmFyIG9lIGluIEspWS5jYWxsKEssb2UpJiYobnVsbD09c2U/SihLW29lXSxvZSxLKTpKLmNhbGwoc2UsS1tvZV0sb2UsSykpfTtVLmV4cG9ydHM9ZnVuY3Rpb24oSyxKLHNlKXtpZighcmUo''@;'; put 'put ''SikpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0b3IgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dmFyIG9lO2FyZ3VtZW50cy5sZW5ndGg+PTMmJihvZT1zZSksIltvYmplY3QgQXJyYXldIj09PWFlLmNhbGwoSyk/VyhLLEosb2UpOiJzdHJpbmciPT10eXBlb2YgSz9OKEssSixvZSk6dGUoSyxK''@;'; put 'put ''LG9lKX19LDYyMzA6VT0+e1UuZXhwb3J0cz0ib2JqZWN0Ij09dHlwZW9mIHNlbGY/c2VsZi5Gb3JtRGF0YTp3aW5kb3cuRm9ybURhdGF9LDUzMDI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KSxhZT1qKDUxMDgpO2NvbnN0IFk9aig3NyksVz1qKDI1MjApLE49aigxMzgx''@;'; put 'put ''KS5ta2RpcnNTeW5jLHRlPWooMzE4KS51dGltZXNNaWxsaXNTeW5jLEs9aigyNzMzKTtmdW5jdGlvbiBKKGRlLHZlLEFlLGtlKXtjb25zdCBTZT0oa2UuZGVyZWZlcmVuY2U/WS5zdGF0U3luYzpZLmxzdGF0U3luYykodmUpO2lmKFNlLmlzRGlyZWN0b3J5KCkpcmV0dXJuIEllPVNlLE1lPXZl''@;'; put 'put ''LGhlPUFlLE89a2UsZGU/Y2UoTWUsaGUsTyk6KHo9SWUubW9kZSxlZT1NZSx4PU8sWS5ta2RpclN5bmMobmU9aGUpLGNlKGVlLG5lLHgpLG9lKG5lLHopKTt2YXIgSWUsTWUsaGUsTyx6LGVlLG5lLHg7aWYoU2UuaXNGaWxlKCl8fFNlLmlzQ2hhcmFjdGVyRGV2aWNlKCl8fFNlLmlzQmxvY2tE''@;'; put 'put ''ZXZpY2UoKSlyZXR1cm4gZnVuY3Rpb24oSWUsVGUsTWUsaGUsTyl7cmV0dXJuIFRlP2Z1bmN0aW9uKHosZWUsbmUseCl7aWYoeC5vdmVyd3JpdGUpcmV0dXJuIFkudW5saW5rU3luYyhuZSksc2UoeixlZSxuZSx4KTtpZih4LmVycm9yT25FeGlzdCl0aHJvdyBuZXcgRXJyb3IoYCcke25lfScg''@;'; put 'put ''YWxyZWFkeSBleGlzdHNgKX0oSWUsTWUsaGUsTyk6c2UoSWUsTWUsaGUsTyl9KFNlLGRlLHZlLEFlLGtlKTtpZihTZS5pc1N5bWJvbGljTGluaygpKXJldHVybiBmdW5jdGlvbihJZSxUZSxNZSxoZSl7bGV0IE89WS5yZWFkbGlua1N5bmMoVGUpO2lmKGhlLmRlcmVmZXJlbmNlJiYoTz1XLnJl''@;'; put 'put ''c29sdmUocmUuY3dkKCksTykpLEllKXtsZXQgejt0cnl7ej1ZLnJlYWRsaW5rU3luYyhNZSl9Y2F0Y2goZWUpe2lmKCJFSU5WQUwiPT09ZWUuY29kZXx8IlVOS05PV04iPT09ZWUuY29kZSlyZXR1cm4gWS5zeW1saW5rU3luYyhPLE1lKTt0aHJvdyBlZX1pZihoZS5kZXJlZmVyZW5jZSYmKHo9''@;'; put 'put ''Vy5yZXNvbHZlKHJlLmN3ZCgpLHopKSxLLmlzU3JjU3ViZGlyKE8seikpdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgY29weSAnJHtPfScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAnJHt6fScuYCk7aWYoWS5zdGF0U3luYyhNZSkuaXNEaXJlY3RvcnkoKSYmSy5pc1NyY1N1YmRpcih6''@;'; put 'put ''LE8pKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSAnJHt6fScgd2l0aCAnJHtPfScuYCk7cmV0dXJuIGZ1bmN0aW9uKGVlLG5lKXtyZXR1cm4gWS51bmxpbmtTeW5jKG5lKSxZLnN5bWxpbmtTeW5jKGVlLG5lKX0oTyxNZSl9cmV0dXJuIFkuc3ltbGlua1N5bmMoTyxNZSl9KGRl''@;'; put 'put ''LHZlLEFlLGtlKTt0aHJvdyBTZS5pc1NvY2tldCgpP25ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBzb2NrZXQgZmlsZTogJHt2ZX1gKTpTZS5pc0ZJRk8oKT9uZXcgRXJyb3IoYENhbm5vdCBjb3B5IGEgRklGTyBwaXBlOiAke3ZlfWApOm5ldyBFcnJvcihgVW5rbm93biBmaWxlOiAke3ZlfWAp''@;'; put 'put ''fWZ1bmN0aW9uIHNlKGRlLHZlLEFlLGtlKXtyZXR1cm4gWS5jb3B5RmlsZVN5bmModmUsQWUpLGtlLnByZXNlcnZlVGltZXN0YW1wcyYmKEllPXZlLFRlPUFlLDA9PSgxMjgmKFNlPWRlLm1vZGUpKSYmb2UoVGUsMTI4fFNlKSxmdW5jdGlvbihNZSxoZSl7Y29uc3QgTz1ZLnN0YXRTeW5jKE1l''@;'; put 'put ''KTt0ZShoZSxPLmF0aW1lLE8ubXRpbWUpfShJZSxUZSkpLG9lKEFlLGRlLm1vZGUpO3ZhciBTZSxJZSxUZX1mdW5jdGlvbiBvZShkZSx2ZSl7cmV0dXJuIFkuY2htb2RTeW5jKGRlLHZlKX1mdW5jdGlvbiBjZShkZSx2ZSxBZSl7WS5yZWFkZGlyU3luYyhkZSkuZm9yRWFjaChrZT0+ZnVuY3Rp''@;'; put 'put ''b24oU2UsSWUsVGUsTWUpe2NvbnN0IGhlPVcuam9pbihJZSxTZSksTz1XLmpvaW4oVGUsU2UpLHtkZXN0U3RhdDp6fT1LLmNoZWNrUGF0aHNTeW5jKGhlLE8sImNvcHkiLE1lKTtyZXR1cm4gZnVuY3Rpb24oZWUsbmUseCxQKXtpZighUC5maWx0ZXJ8fFAuZmlsdGVyKG5lLHgpKXJldHVybiBK''@;'; put 'put ''KGVlLG5lLHgsUCl9KHosaGUsTyxNZSl9KGtlLGRlLHZlLEFlKSl9VS5leHBvcnRzPWZ1bmN0aW9uKGRlLHZlLEFlKXsiZnVuY3Rpb24iPT10eXBlb2YgQWUmJihBZT17ZmlsdGVyOkFlfSksKEFlPUFlfHx7fSkuY2xvYmJlcj0hKCJjbG9iYmVyImluIEFlKXx8ISFBZS5jbG9iYmVyLEFlLm92''@;'; put 'put ''ZXJ3cml0ZT0ib3ZlcndyaXRlImluIEFlPyEhQWUub3ZlcndyaXRlOkFlLmNsb2JiZXIsQWUucHJlc2VydmVUaW1lc3RhbXBzJiYiaWEzMiI9PT1yZS5hcmNoJiZhZS53YXJuKCJmcy1leHRyYTogVXNpbmcgdGhlIHByZXNlcnZlVGltZXN0YW1wcyBvcHRpb24gaW4gMzItYml0IG5vZGUgaXMg''@;'; put 'put ''bm90IHJlY29tbWVuZGVkO1xuXG4gICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9qcHJpY2hhcmRzb24vbm9kZS1mcy1leHRyYS9pc3N1ZXMvMjY5Iik7Y29uc3R7c3JjU3RhdDprZSxkZXN0U3RhdDpTZX09Sy5jaGVja1BhdGhzU3luYyhkZSx2ZSwiY29weSIsQWUpO3JldHVybiBLLmNoZWNr''@;'; put 'put ''UGFyZW50UGF0aHNTeW5jKGRlLGtlLHZlLCJjb3B5IiksZnVuY3Rpb24oSWUsVGUsTWUsaGUpe2lmKGhlLmZpbHRlciYmIWhlLmZpbHRlcihUZSxNZSkpcmV0dXJuO2NvbnN0IE89Vy5kaXJuYW1lKE1lKTtyZXR1cm4gWS5leGlzdHNTeW5jKE8pfHxOKE8pLEooSWUsVGUsTWUsaGUpfShTZSxk''@;'; put 'put ''ZSx2ZSxBZSl9fSw4NjkwOihVLFEsaik9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPXtjb3B5U3luYzpqKDUzMDIpfX0sNzE4OTooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQxNTUpLGFlPWooNTEwOCk7Y29uc3QgWT1qKDc3KSxXPWooMjUyMCksTj1qKDEzODEpLm1rZGlycyx0''@;'; put 'put ''ZT1qKDkyNTcpLnBhdGhFeGlzdHMsSz1qKDMxOCkudXRpbWVzTWlsbGlzLEo9aigyNzMzKTtmdW5jdGlvbiBzZShUZSxNZSxoZSxPLHope2NvbnN0IGVlPVcuZGlybmFtZShoZSk7dGUoZWUsKG5lLHgpPT5uZT96KG5lKTp4P2NlKFRlLE1lLGhlLE8seik6dm9pZCBOKGVlLFA9PlA/eihQKTpj''@;'; put 'put ''ZShUZSxNZSxoZSxPLHopKSl9ZnVuY3Rpb24gb2UoVGUsTWUsaGUsTyx6LGVlKXtQcm9taXNlLnJlc29sdmUoei5maWx0ZXIoaGUsTykpLnRoZW4obmU9Pm5lP1RlKE1lLGhlLE8seixlZSk6ZWUoKSxuZT0+ZWUobmUpKX1mdW5jdGlvbiBjZShUZSxNZSxoZSxPLHopeyhPLmRlcmVmZXJlbmNl''@;'; put 'put ''P1kuc3RhdDpZLmxzdGF0KShNZSwoZWUsbmUpPT57cmV0dXJuIGVlP3ooZWUpOm5lLmlzRGlyZWN0b3J5KCk/KHg9bmUsVj1NZSxUPWhlLFM9TyxGPXosVGU/a2UoVixULFMsRik6KHllPXgubW9kZSxDZT1WLFBlPVMsUWU9Rix2b2lkIFkubWtkaXIoRGU9VCwkZT0+e2lmKCRlKXJldHVybiBR''@;'; put 'put ''ZSgkZSk7a2UoQ2UsRGUsUGUsZ3Q9Pmd0P1FlKGd0KTpBZShEZSx5ZSxRZSkpfSkpKTpuZS5pc0ZpbGUoKXx8bmUuaXNDaGFyYWN0ZXJEZXZpY2UoKXx8bmUuaXNCbG9ja0RldmljZSgpP2Z1bmN0aW9uKHgsUCxWLFQsUyxGKXtyZXR1cm4gUD9mdW5jdGlvbih5ZSxDZSxEZSxQZSxRZSl7aWYo''@;'; put 'put ''IVBlLm92ZXJ3cml0ZSlyZXR1cm4gUGUuZXJyb3JPbkV4aXN0P1FlKG5ldyBFcnJvcihgJyR7RGV9JyBhbHJlYWR5IGV4aXN0c2ApKTpRZSgpO1kudW5saW5rKERlLCRlPT4kZT9RZSgkZSk6ZGUoeWUsQ2UsRGUsUGUsUWUpKX0oeCxWLFQsUyxGKTpkZSh4LFYsVCxTLEYpfShuZSxUZSxNZSxo''@;'; put 'put ''ZSxPLHopOm5lLmlzU3ltYm9saWNMaW5rKCk/ZnVuY3Rpb24gSWUoVGUsTWUsaGUsTyx6KXtZLnJlYWRsaW5rKE1lLChlZSxuZSk9PmVlP3ooZWUpOihPLmRlcmVmZXJlbmNlJiYobmU9Vy5yZXNvbHZlKHJlLmN3ZCgpLG5lKSksVGU/dm9pZCBZLnJlYWRsaW5rKGhlLCh4LFApPT57cmV0dXJu''@;'; put 'put ''IHg/IkVJTlZBTCI9PT14LmNvZGV8fCJVTktOT1dOIj09PXguY29kZT9ZLnN5bWxpbmsobmUsaGUseik6eih4KTooTy5kZXJlZmVyZW5jZSYmKFA9Vy5yZXNvbHZlKHJlLmN3ZCgpLFApKSxKLmlzU3JjU3ViZGlyKG5lLFApP3oobmV3IEVycm9yKGBDYW5ub3QgY29weSAnJHtuZX0nIHRvIGEg''@;'; put 'put ''c3ViZGlyZWN0b3J5IG9mIGl0c2VsZiwgJyR7UH0nLmApKTpUZS5pc0RpcmVjdG9yeSgpJiZKLmlzU3JjU3ViZGlyKFAsbmUpP3oobmV3IEVycm9yKGBDYW5ub3Qgb3ZlcndyaXRlICcke1B9JyB3aXRoICcke25lfScuYCkpOihWPW5lLFM9eix2b2lkIFkudW5saW5rKFQ9aGUsRj0+Rj9TKEYp''@;'; put 'put ''Olkuc3ltbGluayhWLFQsUykpKSk7dmFyIFYsVCxTfSk6WS5zeW1saW5rKG5lLGhlLHopKSl9KFRlLE1lLGhlLE8seik6bmUuaXNTb2NrZXQoKT96KG5ldyBFcnJvcihgQ2Fubm90IGNvcHkgYSBzb2NrZXQgZmlsZTogJHtNZX1gKSk6bmUuaXNGSUZPKCk/eihuZXcgRXJyb3IoYENhbm5vdCBj''@;'; put 'put ''b3B5IGEgRklGTyBwaXBlOiAke01lfWApKTp6KG5ldyBFcnJvcihgVW5rbm93biBmaWxlOiAke01lfWApKTt2YXIgeCxWLFQsUyxGLHllLENlLERlLFBlLFFlfSl9ZnVuY3Rpb24gZGUoVGUsTWUsaGUsTyx6KXtZLmNvcHlGaWxlKE1lLGhlLGVlPT57cmV0dXJuIGVlP3ooZWUpOk8ucHJlc2Vy''@;'; put 'put ''dmVUaW1lc3RhbXBzPyh4PU1lLFA9aGUsVj16LDA9PSgxMjgmKG5lPVRlLm1vZGUpKT9BZShQLDEyOHxuZSxUPT5UP1YoVCk6dmUobmUseCxQLFYpKTp2ZShuZSx4LFAsVikpOkFlKGhlLFRlLm1vZGUseik7dmFyIG5lLHgsUCxWfSl9ZnVuY3Rpb24gdmUoVGUsTWUsaGUsTyl7dmFyIGVlLG5l''@;'; put 'put ''O2VlPWhlLG5lPXo9Pno/Tyh6KTpBZShoZSxUZSxPKSxZLnN0YXQoTWUsKHgsUCk9Png/bmUoeCk6SyhlZSxQLmF0aW1lLFAubXRpbWUsbmUpKX1mdW5jdGlvbiBBZShUZSxNZSxoZSl7cmV0dXJuIFkuY2htb2QoVGUsTWUsaGUpfWZ1bmN0aW9uIGtlKFRlLE1lLGhlLE8pe1kucmVhZGRpcihU''@;'; put 'put ''ZSwoeixlZSk9Pno/Tyh6KTpTZShlZSxUZSxNZSxoZSxPKSl9ZnVuY3Rpb24gU2UoVGUsTWUsaGUsTyx6KXtjb25zdCBlZT1UZS5wb3AoKTtyZXR1cm4gZWU/ZnVuY3Rpb24obmUseCxQLFYsVCxTKXtjb25zdCBGPVcuam9pbihQLHgpLHllPVcuam9pbihWLHgpO0ouY2hlY2tQYXRocyhGLHll''@;'; put 'put ''LCJjb3B5IixULChDZSxEZSk9PntpZihDZSlyZXR1cm4gUyhDZSk7Y29uc3R7ZGVzdFN0YXQ6UGV9PURlO3ZhciBRZSwkZSxndCx3dCxtdDtRZT1QZSwkZT1GLGd0PXllLG10PVFlPT5RZT9TKFFlKTpTZShuZSxQLFYsVCxTKSwod3Q9VCkuZmlsdGVyP29lKGNlLFFlLCRlLGd0LHd0LG10KTpj''@;'; put 'put ''ZShRZSwkZSxndCx3dCxtdCl9KX0oVGUsZWUsTWUsaGUsTyx6KTp6KCl9VS5leHBvcnRzPWZ1bmN0aW9uKFRlLE1lLGhlLE8peyJmdW5jdGlvbiIhPXR5cGVvZiBoZXx8Tz8iZnVuY3Rpb24iPT10eXBlb2YgaGUmJihoZT17ZmlsdGVyOmhlfSk6KE89aGUsaGU9e30pLE89T3x8ZnVuY3Rpb24o''@;'; put 'put ''KXt9LChoZT1oZXx8e30pLmNsb2JiZXI9ISgiY2xvYmJlciJpbiBoZSl8fCEhaGUuY2xvYmJlcixoZS5vdmVyd3JpdGU9Im92ZXJ3cml0ZSJpbiBoZT8hIWhlLm92ZXJ3cml0ZTpoZS5jbG9iYmVyLGhlLnByZXNlcnZlVGltZXN0YW1wcyYmImlhMzIiPT09cmUuYXJjaCYmYWUud2FybigiZnMt''@;'; put 'put ''ZXh0cmE6IFVzaW5nIHRoZSBwcmVzZXJ2ZVRpbWVzdGFtcHMgb3B0aW9uIGluIDMyLWJpdCBub2RlIGlzIG5vdCByZWNvbW1lbmRlZDtcblxuICAgIHNlZSBodHRwczovL2dpdGh1Yi5jb20vanByaWNoYXJkc29uL25vZGUtZnMtZXh0cmEvaXNzdWVzLzI2OSIpLEouY2hlY2tQYXRocyhUZSxN''@;'; put 'put ''ZSwiY29weSIsaGUsKHosZWUpPT57aWYoeilyZXR1cm4gTyh6KTtjb25zdHtzcmNTdGF0Om5lLGRlc3RTdGF0Onh9PWVlO0ouY2hlY2tQYXJlbnRQYXRocyhUZSxuZSxNZSwiY29weSIsUD0+UD9PKFApOmhlLmZpbHRlcj9vZShzZSx4LFRlLE1lLGhlLE8pOnNlKHgsVGUsTWUsaGUsTykpfSl9''@;'; put 'put ''fSw2NDY0OihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig4OTgxKS5mcm9tQ2FsbGJhY2s7VS5leHBvcnRzPXtjb3B5OnJlKGooNzE4OSkpfX0sNTU5MDooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooODk4MSkuZnJvbVByb21pc2UsYWU9aig3NzQ5KSxZPWooMjUy''@;'; put 'put ''MCksVz1qKDEzODEpLE49aig0NTQyKSx0ZT1yZShmdW5jdGlvbigpe3ZhciBKPW1lKGZ1bmN0aW9uKihzZSl7bGV0IG9lO3RyeXtvZT15aWVsZCBhZS5yZWFkZGlyKHNlKX1jYXRjaChjZSl7cmV0dXJuIFcubWtkaXJzKHNlKX1yZXR1cm4gUHJvbWlzZS5hbGwob2UubWFwKGNlPT5OLnJlbW92''@;'; put 'put ''ZShZLmpvaW4oc2UsY2UpKSkpfSk7cmV0dXJuIGZ1bmN0aW9uKHNlKXtyZXR1cm4gSi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpKTtmdW5jdGlvbiBLKEope2xldCBzZTt0cnl7c2U9YWUucmVhZGRpclN5bmMoSil9Y2F0Y2gob2Upe3JldHVybiBXLm1rZGlyc1N5bmMoSil9c2UuZm9yRWFj''@;'; put 'put ''aChvZT0+e29lPVkuam9pbihKLG9lKSxOLnJlbW92ZVN5bmMob2UpfSl9VS5leHBvcnRzPXtlbXB0eURpclN5bmM6SyxlbXB0eWRpclN5bmM6SyxlbXB0eURpcjp0ZSxlbXB0eWRpcjp0ZX19LDY1MzA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDg5ODEpLmZyb21DYWxsYmFj''@;'; put 'put ''ayxhZT1qKDI1MjApLFk9aig3NyksVz1qKDEzODEpO1UuZXhwb3J0cz17Y3JlYXRlRmlsZTpyZShmdW5jdGlvbihOLHRlKXtmdW5jdGlvbiBLKCl7WS53cml0ZUZpbGUoTiwiIixKPT57aWYoSilyZXR1cm4gdGUoSik7dGUoKX0pfVkuc3RhdChOLChKLHNlKT0+e2lmKCFKJiZzZS5pc0ZpbGUo''@;'; put 'put ''KSlyZXR1cm4gdGUoKTtjb25zdCBvZT1hZS5kaXJuYW1lKE4pO1kuc3RhdChvZSwoY2UsZGUpPT57aWYoY2UpcmV0dXJuIkVOT0VOVCI9PT1jZS5jb2RlP1cubWtkaXJzKG9lLHZlPT57aWYodmUpcmV0dXJuIHRlKHZlKTtLKCl9KTp0ZShjZSk7ZGUuaXNEaXJlY3RvcnkoKT9LKCk6WS5yZWFk''@;'; put 'put ''ZGlyKG9lLHZlPT57aWYodmUpcmV0dXJuIHRlKHZlKX0pfSl9KX0pLGNyZWF0ZUZpbGVTeW5jOmZ1bmN0aW9uKE4pe2xldCB0ZTt0cnl7dGU9WS5zdGF0U3luYyhOKX1jYXRjaChKKXt9aWYodGUmJnRlLmlzRmlsZSgpKXJldHVybjtjb25zdCBLPWFlLmRpcm5hbWUoTik7dHJ5e1kuc3RhdFN5''@;'; put 'put ''bmMoSykuaXNEaXJlY3RvcnkoKXx8WS5yZWFkZGlyU3luYyhLKX1jYXRjaChKKXtpZighSnx8IkVOT0VOVCIhPT1KLmNvZGUpdGhyb3cgSjtXLm1rZGlyc1N5bmMoSyl9WS53cml0ZUZpbGVTeW5jKE4sIiIpfX19LDE3MjA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDY1MzAp''@;'; put 'put ''LGFlPWooNDE0NyksWT1qKDM2MzUpO1UuZXhwb3J0cz17Y3JlYXRlRmlsZTpyZS5jcmVhdGVGaWxlLGNyZWF0ZUZpbGVTeW5jOnJlLmNyZWF0ZUZpbGVTeW5jLGVuc3VyZUZpbGU6cmUuY3JlYXRlRmlsZSxlbnN1cmVGaWxlU3luYzpyZS5jcmVhdGVGaWxlU3luYyxjcmVhdGVMaW5rOmFlLmNy''@;'; put 'put ''ZWF0ZUxpbmssY3JlYXRlTGlua1N5bmM6YWUuY3JlYXRlTGlua1N5bmMsZW5zdXJlTGluazphZS5jcmVhdGVMaW5rLGVuc3VyZUxpbmtTeW5jOmFlLmNyZWF0ZUxpbmtTeW5jLGNyZWF0ZVN5bWxpbms6WS5jcmVhdGVTeW1saW5rLGNyZWF0ZVN5bWxpbmtTeW5jOlkuY3JlYXRlU3ltbGlua1N5''@;'; put 'put ''bmMsZW5zdXJlU3ltbGluazpZLmNyZWF0ZVN5bWxpbmssZW5zdXJlU3ltbGlua1N5bmM6WS5jcmVhdGVTeW1saW5rU3luY319LDQxNDc6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDg5ODEpLmZyb21DYWxsYmFjayxhZT1qKDI1MjApLFk9aig3NyksVz1qKDEzODEpLE49aig5''@;'; put 'put ''MjU3KS5wYXRoRXhpc3RzLHthcmVJZGVudGljYWw6dGV9PWooMjczMyk7VS5leHBvcnRzPXtjcmVhdGVMaW5rOnJlKGZ1bmN0aW9uKEssSixzZSl7ZnVuY3Rpb24gb2UoY2UsZGUpe1kubGluayhjZSxkZSx2ZT0+e2lmKHZlKXJldHVybiBzZSh2ZSk7c2UobnVsbCl9KX1ZLmxzdGF0KEosKGNl''@;'; put 'put ''LGRlKT0+e1kubHN0YXQoSywodmUsQWUpPT57aWYodmUpcmV0dXJuIHZlLm1lc3NhZ2U9dmUubWVzc2FnZS5yZXBsYWNlKCJsc3RhdCIsImVuc3VyZUxpbmsiKSxzZSh2ZSk7aWYoZGUmJnRlKEFlLGRlKSlyZXR1cm4gc2UobnVsbCk7Y29uc3Qga2U9YWUuZGlybmFtZShKKTtOKGtlLChTZSxJ''@;'; put 'put ''ZSk9PlNlP3NlKFNlKTpJZT9vZShLLEopOnZvaWQgVy5ta2RpcnMoa2UsVGU9PntpZihUZSlyZXR1cm4gc2UoVGUpO29lKEssSil9KSl9KX0pfSksY3JlYXRlTGlua1N5bmM6ZnVuY3Rpb24oSyxKKXtsZXQgc2U7dHJ5e3NlPVkubHN0YXRTeW5jKEopfWNhdGNoKGNlKXt9dHJ5e2NvbnN0IGNl''@;'; put 'put ''PVkubHN0YXRTeW5jKEspO2lmKHNlJiZ0ZShjZSxzZSkpcmV0dXJufWNhdGNoKGNlKXt0aHJvdyBjZS5tZXNzYWdlPWNlLm1lc3NhZ2UucmVwbGFjZSgibHN0YXQiLCJlbnN1cmVMaW5rIiksY2V9Y29uc3Qgb2U9YWUuZGlybmFtZShKKTtyZXR1cm4gWS5leGlzdHNTeW5jKG9lKXx8Vy5ta2Rp''@;'; put 'put ''cnNTeW5jKG9lKSxZLmxpbmtTeW5jKEssSil9fX0sNjA3MjooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooMjUyMCksYWU9aig3NyksWT1qKDkyNTcpLnBhdGhFeGlzdHM7VS5leHBvcnRzPXtzeW1saW5rUGF0aHM6ZnVuY3Rpb24oVyxOLHRlKXtpZihyZS5pc0Fic29sdXRlKFcp''@;'; put 'put ''KXJldHVybiBhZS5sc3RhdChXLEs9Pks/KEsubWVzc2FnZT1LLm1lc3NhZ2UucmVwbGFjZSgibHN0YXQiLCJlbnN1cmVTeW1saW5rIiksdGUoSykpOnRlKG51bGwse3RvQ3dkOlcsdG9Ec3Q6V30pKTt7Y29uc3QgSz1yZS5kaXJuYW1lKE4pLEo9cmUuam9pbihLLFcpO3JldHVybiBZKEosKHNl''@;'; put 'put ''LG9lKT0+c2U/dGUoc2UpOm9lP3RlKG51bGwse3RvQ3dkOkosdG9Ec3Q6V30pOmFlLmxzdGF0KFcsY2U9PmNlPyhjZS5tZXNzYWdlPWNlLm1lc3NhZ2UucmVwbGFjZSgibHN0YXQiLCJlbnN1cmVTeW1saW5rIiksdGUoY2UpKTp0ZShudWxsLHt0b0N3ZDpXLHRvRHN0OnJlLnJlbGF0aXZlKEss''@;'; put 'put ''Vyl9KSkpfX0sc3ltbGlua1BhdGhzU3luYzpmdW5jdGlvbihXLE4pe2xldCB0ZTtpZihyZS5pc0Fic29sdXRlKFcpKXtpZih0ZT1hZS5leGlzdHNTeW5jKFcpLCF0ZSl0aHJvdyBuZXcgRXJyb3IoImFic29sdXRlIHNyY3BhdGggZG9lcyBub3QgZXhpc3QiKTtyZXR1cm57dG9Dd2Q6Vyx0b0Rz''@;'; put 'put ''dDpXfX17Y29uc3QgSz1yZS5kaXJuYW1lKE4pLEo9cmUuam9pbihLLFcpO2lmKHRlPWFlLmV4aXN0c1N5bmMoSiksdGUpcmV0dXJue3RvQ3dkOkosdG9Ec3Q6V307aWYodGU9YWUuZXhpc3RzU3luYyhXKSwhdGUpdGhyb3cgbmV3IEVycm9yKCJyZWxhdGl2ZSBzcmNwYXRoIGRvZXMgbm90IGV4''@;'; put 'put ''aXN0Iik7cmV0dXJue3RvQ3dkOlcsdG9Ec3Q6cmUucmVsYXRpdmUoSyxXKX19fX19LDkyNTk6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDc3KTtVLmV4cG9ydHM9e3N5bWxpbmtUeXBlOmZ1bmN0aW9uKGFlLFksVyl7aWYoVz0iZnVuY3Rpb24iPT10eXBlb2YgWT9ZOlcsWT0i''@;'; put 'put ''ZnVuY3Rpb24iIT10eXBlb2YgWSYmWSlyZXR1cm4gVyhudWxsLFkpO3JlLmxzdGF0KGFlLChOLHRlKT0+e2lmKE4pcmV0dXJuIFcobnVsbCwiZmlsZSIpO1k9dGUmJnRlLmlzRGlyZWN0b3J5KCk/ImRpciI6ImZpbGUiLFcobnVsbCxZKX0pfSxzeW1saW5rVHlwZVN5bmM6ZnVuY3Rpb24oYWUs''@;'; put 'put ''WSl7bGV0IFc7aWYoWSlyZXR1cm4gWTt0cnl7Vz1yZS5sc3RhdFN5bmMoYWUpfWNhdGNoKE4pe3JldHVybiJmaWxlIn1yZXR1cm4gVyYmVy5pc0RpcmVjdG9yeSgpPyJkaXIiOiJmaWxlIn19fSwzNjM1OihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig4OTgxKS5mcm9tQ2FsbGJh''@;'; put 'put ''Y2ssYWU9aigyNTIwKSxZPWooNzc0OSksVz1qKDEzODEpLE49Vy5ta2RpcnMsdGU9Vy5ta2RpcnNTeW5jLEs9aig2MDcyKSxKPUsuc3ltbGlua1BhdGhzLHNlPUsuc3ltbGlua1BhdGhzU3luYyxvZT1qKDkyNTkpLGNlPW9lLnN5bWxpbmtUeXBlLGRlPW9lLnN5bWxpbmtUeXBlU3luYyx2ZT1q''@;'; put 'put ''KDkyNTcpLnBhdGhFeGlzdHMse2FyZUlkZW50aWNhbDpBZX09aigyNzMzKTtmdW5jdGlvbiBrZShTZSxJZSxUZSxNZSl7SihTZSxJZSwoaGUsTyk9PntpZihoZSlyZXR1cm4gTWUoaGUpO1NlPU8udG9Ec3QsY2UoTy50b0N3ZCxUZSwoeixlZSk9PntpZih6KXJldHVybiBNZSh6KTtjb25zdCBu''@;'; put 'put ''ZT1hZS5kaXJuYW1lKEllKTt2ZShuZSwoeCxQKT0+eD9NZSh4KTpQP1kuc3ltbGluayhTZSxJZSxlZSxNZSk6dm9pZCBOKG5lLFY9PntpZihWKXJldHVybiBNZShWKTtZLnN5bWxpbmsoU2UsSWUsZWUsTWUpfSkpfSl9KX1VLmV4cG9ydHM9e2NyZWF0ZVN5bWxpbms6cmUoZnVuY3Rpb24oU2Us''@;'; put 'put ''SWUsVGUsTWUpe01lPSJmdW5jdGlvbiI9PXR5cGVvZiBUZT9UZTpNZSxUZT0iZnVuY3Rpb24iIT10eXBlb2YgVGUmJlRlLFkubHN0YXQoSWUsKGhlLE8pPT57IWhlJiZPLmlzU3ltYm9saWNMaW5rKCk/UHJvbWlzZS5hbGwoW1kuc3RhdChTZSksWS5zdGF0KEllKV0pLnRoZW4oKFt6LGVlXSk9''@;'; put 'put ''PntpZihBZSh6LGVlKSlyZXR1cm4gTWUobnVsbCk7a2UoU2UsSWUsVGUsTWUpfSk6a2UoU2UsSWUsVGUsTWUpfSl9KSxjcmVhdGVTeW1saW5rU3luYzpmdW5jdGlvbihTZSxJZSxUZSl7bGV0IE1lO3RyeXtNZT1ZLmxzdGF0U3luYyhJZSl9Y2F0Y2goeil7fWlmKE1lJiZNZS5pc1N5bWJvbGlj''@;'; put 'put ''TGluaygpKXtjb25zdCB6PVkuc3RhdFN5bmMoU2UpLGVlPVkuc3RhdFN5bmMoSWUpO2lmKEFlKHosZWUpKXJldHVybn1jb25zdCBoZT1zZShTZSxJZSk7U2U9aGUudG9Ec3QsVGU9ZGUoaGUudG9Dd2QsVGUpO2NvbnN0IE89YWUuZGlybmFtZShJZSk7cmV0dXJuIFkuZXhpc3RzU3luYyhPKXx8''@;'; put 'put ''dGUoTyksWS5zeW1saW5rU3luYyhTZSxJZSxUZSl9fX0sNzc0OTooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooODk4MSkuZnJvbUNhbGxiYWNrLGFlPWooNzcpLFk9WyJhY2Nlc3MiLCJhcHBlbmRGaWxlIiwiY2htb2QiLCJjaG93biIsImNsb3NlIiwiY29weUZpbGUiLCJmY2ht''@;'; put 'put ''b2QiLCJmY2hvd24iLCJmZGF0YXN5bmMiLCJmc3RhdCIsImZzeW5jIiwiZnRydW5jYXRlIiwiZnV0aW1lcyIsImxjaG1vZCIsImxjaG93biIsImxpbmsiLCJsc3RhdCIsIm1rZGlyIiwibWtkdGVtcCIsIm9wZW4iLCJvcGVuZGlyIiwicmVhZGRpciIsInJlYWRGaWxlIiwicmVhZGxpbmsiLCJy''@;'; put 'put ''ZWFscGF0aCIsInJlbmFtZSIsInJtIiwicm1kaXIiLCJzdGF0Iiwic3ltbGluayIsInRydW5jYXRlIiwidW5saW5rIiwidXRpbWVzIiwid3JpdGVGaWxlIl0uZmlsdGVyKFc9PiJmdW5jdGlvbiI9PXR5cGVvZiBhZVtXXSk7T2JqZWN0LmFzc2lnbihRLGFlKSxZLmZvckVhY2goVz0+e1FbV109''@;'; put 'put ''cmUoYWVbV10pfSksUS5yZWFscGF0aC5uYXRpdmU9cmUoYWUucmVhbHBhdGgubmF0aXZlKSxRLmV4aXN0cz1mdW5jdGlvbihXLE4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBOP2FlLmV4aXN0cyhXLE4pOm5ldyBQcm9taXNlKHRlPT5hZS5leGlzdHMoVyx0ZSkpfSxRLnJlYWQ9ZnVuY3Rp''@;'; put 'put ''b24oVyxOLHRlLEssSixzZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHNlP2FlLnJlYWQoVyxOLHRlLEssSixzZSk6bmV3IFByb21pc2UoKG9lLGNlKT0+e2FlLnJlYWQoVyxOLHRlLEssSiwoZGUsdmUsQWUpPT57aWYoZGUpcmV0dXJuIGNlKGRlKTtvZSh7Ynl0ZXNSZWFkOnZlLGJ1ZmZl''@;'; put 'put ''cjpBZX0pfSl9KX0sUS53cml0ZT1mdW5jdGlvbihXLE4sLi4udGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0ZVt0ZS5sZW5ndGgtMV0/YWUud3JpdGUoVyxOLC4uLnRlKTpuZXcgUHJvbWlzZSgoSyxKKT0+e2FlLndyaXRlKFcsTiwuLi50ZSwoc2Usb2UsY2UpPT57aWYoc2UpcmV0dXJu''@;'; put 'put ''IEooc2UpO0soe2J5dGVzV3JpdHRlbjpvZSxidWZmZXI6Y2V9KX0pfSl9LCJmdW5jdGlvbiI9PXR5cGVvZiBhZS53cml0ZXYmJihRLndyaXRldj1mdW5jdGlvbihXLE4sLi4udGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0ZVt0ZS5sZW5ndGgtMV0/YWUud3JpdGV2KFcsTiwuLi50ZSk6''@;'; put 'put ''bmV3IFByb21pc2UoKEssSik9PnthZS53cml0ZXYoVyxOLC4uLnRlLChzZSxvZSxjZSk9PntpZihzZSlyZXR1cm4gSihzZSk7Syh7Ynl0ZXNXcml0dGVuOm9lLGJ1ZmZlcnM6Y2V9KX0pfSl9KX0sNTY3NDooVSxRLGopPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1tcyhtcyhtcyhtcyhtcyht''@;'; put 'put ''cyhtcyhtcyhtcyhtcyhtcyhtcyh7fSxqKDc3NDkpKSxqKDg2OTApKSxqKDY0NjQpKSxqKDU1OTApKSxqKDE3MjApKSxqKDY1NzMpKSxqKDEzODEpKSxqKDQwMjYpKSxqKDUzMCkpLGooMTMxNSkpLGooOTI1NykpLGooNDU0MikpfSw2NTczOihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3Qg''@;'; put 'put ''cmU9aig4OTgxKS5mcm9tUHJvbWlzZSxhZT1qKDcxODMpO2FlLm91dHB1dEpzb249cmUoaigzNTA4KSksYWUub3V0cHV0SnNvblN5bmM9aig5NTc4KSxhZS5vdXRwdXRKU09OPWFlLm91dHB1dEpzb24sYWUub3V0cHV0SlNPTlN5bmM9YWUub3V0cHV0SnNvblN5bmMsYWUud3JpdGVKU09OPWFl''@;'; put 'put ''LndyaXRlSnNvbixhZS53cml0ZUpTT05TeW5jPWFlLndyaXRlSnNvblN5bmMsYWUucmVhZEpTT049YWUucmVhZEpzb24sYWUucmVhZEpTT05TeW5jPWFlLnJlYWRKc29uU3luYyxVLmV4cG9ydHM9YWV9LDcxODM6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDY4MTMpO1UuZXhw''@;'; put 'put ''b3J0cz17cmVhZEpzb246cmUucmVhZEZpbGUscmVhZEpzb25TeW5jOnJlLnJlYWRGaWxlU3luYyx3cml0ZUpzb246cmUud3JpdGVGaWxlLHdyaXRlSnNvblN5bmM6cmUud3JpdGVGaWxlU3luY319LDk1Nzg6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdHtzdHJpbmdpZnk6cmV9PWooNjc4''@;'; put 'put ''MCkse291dHB1dEZpbGVTeW5jOmFlfT1qKDEzMTUpO1UuZXhwb3J0cz1mdW5jdGlvbihZLFcsTil7Y29uc3QgdGU9cmUoVyxOKTthZShZLHRlLE4pfX0sMzUwODooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0e3N0cmluZ2lmeTpyZX09aig2NzgwKSx7b3V0cHV0RmlsZTphZX09aigxMzE1''@;'; put 'put ''KTtVLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgWT1tZShmdW5jdGlvbiooVyxOLHRlPXt9KXtjb25zdCBLPXJlKE4sdGUpO3lpZWxkIGFlKFcsSyx0ZSl9KTtyZXR1cm4gZnVuY3Rpb24oVyxOKXtyZXR1cm4gWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSgpfSwxMzgxOihVLFEsaik9PnsidXNl''@;'; put 'put ''IHN0cmljdCI7Y29uc3QgcmU9aig4OTgxKS5mcm9tUHJvbWlzZSx7bWFrZURpcjphZSxtYWtlRGlyU3luYzpZfT1qKDgyMzMpLFc9cmUoYWUpO1UuZXhwb3J0cz17bWtkaXJzOlcsbWtkaXJzU3luYzpZLG1rZGlycDpXLG1rZGlycFN5bmM6WSxlbnN1cmVEaXI6VyxlbnN1cmVEaXJTeW5jOll9''@;'; put 'put ''fSw4MjMzOihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig3NzQ5KSx7Y2hlY2tQYXRoOmFlfT1qKDM0NjgpLFk9Vz0+Im51bWJlciI9PXR5cGVvZiBXP1c6bXMoe21vZGU6NTExfSxXKS5tb2RlO1UuZXhwb3J0cy5tYWtlRGlyPWZ1bmN0aW9uKCl7dmFyIFc9bWUoZnVuY3Rpb24q''@;'; put 'put ''KE4sdGUpe3JldHVybiBhZShOKSxyZS5ta2RpcihOLHttb2RlOlkodGUpLHJlY3Vyc2l2ZTohMH0pfSk7cmV0dXJuIGZ1bmN0aW9uKE4sdGUpe3JldHVybiBXLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCksVS5leHBvcnRzLm1ha2VEaXJTeW5jPShXLE4pPT4oYWUoVykscmUubWtkaXJTeW5j''@;'; put 'put ''KFcse21vZGU6WShOKSxyZWN1cnNpdmU6ITB9KSl9LDM0Njg6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KTtjb25zdCBhZT1qKDI1MjApO1UuZXhwb3J0cy5jaGVja1BhdGg9ZnVuY3Rpb24oWSl7aWYoIndpbjMyIj09PXJlLnBsYXRmb3JtJiYvWzw+OiJ8PypdLy50ZXN0''@;'; put 'put ''KFkucmVwbGFjZShhZS5wYXJzZShZKS5yb290LCIiKSkpe2NvbnN0IFc9bmV3IEVycm9yKGBQYXRoIGNvbnRhaW5zIGludmFsaWQgY2hhcmFjdGVyczogJHtZfWApO3Rocm93IFcuY29kZT0iRUlOVkFMIixXfX19LDQwMjY6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9e21vdmVT''@;'; put 'put ''eW5jOmooNjAwNil9fSw2MDA2OihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig3NyksYWU9aigyNTIwKSxZPWooODY5MCkuY29weVN5bmMsVz1qKDQ1NDIpLnJlbW92ZVN5bmMsTj1qKDEzODEpLm1rZGlycFN5bmMsdGU9aigyNzMzKTtmdW5jdGlvbiBLKEosc2Usb2Upe3RyeXty''@;'; put 'put ''ZS5yZW5hbWVTeW5jKEosc2UpfWNhdGNoKGNlKXtpZigiRVhERVYiIT09Y2UuY29kZSl0aHJvdyBjZTtyZXR1cm4gWShkZT1KLHNlLHtvdmVyd3JpdGU6b2UsZXJyb3JPbkV4aXN0OiEwfSksVyhkZSl9dmFyIGRlfVUuZXhwb3J0cz1mdW5jdGlvbihKLHNlLG9lKXtjb25zdCBjZT0ob2U9b2V8''@;'; put 'put ''fHt9KS5vdmVyd3JpdGV8fG9lLmNsb2JiZXJ8fCExLHtzcmNTdGF0OmRlLGlzQ2hhbmdpbmdDYXNlOnZlPSExfT10ZS5jaGVja1BhdGhzU3luYyhKLHNlLCJtb3ZlIixvZSk7cmV0dXJuIHRlLmNoZWNrUGFyZW50UGF0aHNTeW5jKEosZGUsc2UsIm1vdmUiKSxmdW5jdGlvbihBZSl7Y29uc3Qg''@;'; put 'put ''a2U9YWUuZGlybmFtZShBZSk7cmV0dXJuIGFlLnBhcnNlKGtlKS5yb290PT09a2V9KHNlKXx8TihhZS5kaXJuYW1lKHNlKSksZnVuY3Rpb24oQWUsa2UsU2UsSWUpe2lmKEllKXJldHVybiBLKEFlLGtlLFNlKTtpZihTZSlyZXR1cm4gVyhrZSksSyhBZSxrZSxTZSk7aWYocmUuZXhpc3RzU3lu''@;'; put 'put ''YyhrZSkpdGhyb3cgbmV3IEVycm9yKCJkZXN0IGFscmVhZHkgZXhpc3RzLiIpO3JldHVybiBLKEFlLGtlLFNlKX0oSixzZSxjZSx2ZSl9fSw1MzA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDg5ODEpLmZyb21DYWxsYmFjaztVLmV4cG9ydHM9e21vdmU6cmUoaig0MzYpKX19''@;'; put 'put ''LDQzNjooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooNzcpLGFlPWooMjUyMCksWT1qKDY0NjQpLmNvcHksVz1qKDQ1NDIpLnJlbW92ZSxOPWooMTM4MSkubWtkaXJwLHRlPWooOTI1NykucGF0aEV4aXN0cyxLPWooMjczMyk7ZnVuY3Rpb24gSihvZSxjZSxkZSx2ZSxBZSl7cmV0''@;'; put 'put ''dXJuIHZlP3NlKG9lLGNlLGRlLEFlKTpkZT9XKGNlLGtlPT5rZT9BZShrZSk6c2Uob2UsY2UsZGUsQWUpKTp2b2lkIHRlKGNlLChrZSxTZSk9PmtlP0FlKGtlKTpTZT9BZShuZXcgRXJyb3IoImRlc3QgYWxyZWFkeSBleGlzdHMuIikpOnNlKG9lLGNlLGRlLEFlKSl9ZnVuY3Rpb24gc2Uob2Us''@;'; put 'put ''Y2UsZGUsdmUpe3JlLnJlbmFtZShvZSxjZSxBZT0+e3JldHVybiBBZT8iRVhERVYiIT09QWUuY29kZT92ZShBZSk6KFRlPXZlLHZvaWQgWShrZT1vZSxjZSx7b3ZlcndyaXRlOmRlLGVycm9yT25FeGlzdDohMH0sTWU9Pk1lP1RlKE1lKTpXKGtlLFRlKSkpOnZlKCk7dmFyIGtlLFRlfSl9VS5l''@;'; put 'put ''eHBvcnRzPWZ1bmN0aW9uKG9lLGNlLGRlLHZlKXsiZnVuY3Rpb24iPT10eXBlb2YgZGUmJih2ZT1kZSxkZT17fSk7Y29uc3QgQWU9ZGUub3ZlcndyaXRlfHxkZS5jbG9iYmVyfHwhMTtLLmNoZWNrUGF0aHMob2UsY2UsIm1vdmUiLGRlLChrZSxTZSk9PntpZihrZSlyZXR1cm4gdmUoa2UpO2Nv''@;'; put 'put ''bnN0e3NyY1N0YXQ6SWUsaXNDaGFuZ2luZ0Nhc2U6VGU9ITF9PVNlO0suY2hlY2tQYXJlbnRQYXRocyhvZSxJZSxjZSwibW92ZSIsTWU9Pk1lP3ZlKE1lKTpmdW5jdGlvbihoZSl7Y29uc3QgTz1hZS5kaXJuYW1lKGhlKTtyZXR1cm4gYWUucGFyc2UoTykucm9vdD09PU99KGNlKT9KKG9lLGNl''@;'; put 'put ''LEFlLFRlLHZlKTp2b2lkIE4oYWUuZGlybmFtZShjZSksaGU9PmhlP3ZlKGhlKTpKKG9lLGNlLEFlLFRlLHZlKSkpfSl9fSwxMzE1OihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig4OTgxKS5mcm9tQ2FsbGJhY2ssYWU9aig3NyksWT1qKDI1MjApLFc9aigxMzgxKSxOPWooOTI1''@;'; put 'put ''NykucGF0aEV4aXN0cztVLmV4cG9ydHM9e291dHB1dEZpbGU6cmUoZnVuY3Rpb24odGUsSyxKLHNlKXsiZnVuY3Rpb24iPT10eXBlb2YgSiYmKHNlPUosSj0idXRmOCIpO2NvbnN0IG9lPVkuZGlybmFtZSh0ZSk7TihvZSwoY2UsZGUpPT5jZT9zZShjZSk6ZGU/YWUud3JpdGVGaWxlKHRlLEss''@;'; put 'put ''SixzZSk6dm9pZCBXLm1rZGlycyhvZSx2ZT0+e2lmKHZlKXJldHVybiBzZSh2ZSk7YWUud3JpdGVGaWxlKHRlLEssSixzZSl9KSl9KSxvdXRwdXRGaWxlU3luYzpmdW5jdGlvbih0ZSwuLi5LKXtjb25zdCBKPVkuZGlybmFtZSh0ZSk7aWYoYWUuZXhpc3RzU3luYyhKKSlyZXR1cm4gYWUud3Jp''@;'; put 'put ''dGVGaWxlU3luYyh0ZSwuLi5LKTtXLm1rZGlyc1N5bmMoSiksYWUud3JpdGVGaWxlU3luYyh0ZSwuLi5LKX19fSw5MjU3OihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9aig4OTgxKS5mcm9tUHJvbWlzZSxhZT1qKDc3NDkpO1UuZXhwb3J0cz17cGF0aEV4aXN0czpyZShmdW5jdGlv''@;'; put 'put ''bihZKXtyZXR1cm4gYWUuYWNjZXNzKFkpLnRoZW4oKCk9PiEwKS5jYXRjaCgoKT0+ITEpfSkscGF0aEV4aXN0c1N5bmM6YWUuZXhpc3RzU3luY319LDQ1NDI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDc3KSxhZT1qKDg5ODEpLmZyb21DYWxsYmFjayxZPWooMzQ1Nik7VS5l''@;'; put 'put ''eHBvcnRzPXtyZW1vdmU6YWUoZnVuY3Rpb24oVyxOKXtpZihyZS5ybSlyZXR1cm4gcmUucm0oVyx7cmVjdXJzaXZlOiEwLGZvcmNlOiEwfSxOKTtZKFcsTil9KSxyZW1vdmVTeW5jOmZ1bmN0aW9uKFcpe2lmKHJlLnJtU3luYylyZXR1cm4gcmUucm1TeW5jKFcse3JlY3Vyc2l2ZTohMCxmb3Jj''@;'; put 'put ''ZTohMH0pO1kuc3luYyhXKX19fSwzNDU2OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSk7Y29uc3QgYWU9aig3NyksWT1qKDI1MjApLFc9aig5MjgyKSxOPSJ3aW4zMiI9PT1yZS5wbGF0Zm9ybTtmdW5jdGlvbiB0ZShBZSl7WyJ1bmxpbmsiLCJjaG1vZCIsInN0YXQiLCJs''@;'; put 'put ''c3RhdCIsInJtZGlyIiwicmVhZGRpciJdLmZvckVhY2goa2U9PntBZVtrZV09QWVba2VdfHxhZVtrZV0sQWVba2UrPSJTeW5jIl09QWVba2VdfHxhZVtrZV19KSxBZS5tYXhCdXN5VHJpZXM9QWUubWF4QnVzeVRyaWVzfHwzfWZ1bmN0aW9uIEsoQWUsa2UsU2Upe2xldCBJZT0wOyJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBrZSYmKFNlPWtlLGtlPXt9KSxXKEFlLCJyaW1yYWY6IG1pc3NpbmcgcGF0aCIpLFcuc3RyaWN0RXF1YWwodHlwZW9mIEFlLCJzdHJpbmciLCJyaW1yYWY6IHBhdGggc2hvdWxkIGJlIGEgc3RyaW5nIiksVy5zdHJpY3RFcXVhbCh0eXBlb2YgU2UsImZ1bmN0aW9uIiwicmlt''@;'; put 'put ''cmFmOiBjYWxsYmFjayBmdW5jdGlvbiByZXF1aXJlZCIpLFcoa2UsInJpbXJhZjogaW52YWxpZCBvcHRpb25zIGFyZ3VtZW50IHByb3ZpZGVkIiksVy5zdHJpY3RFcXVhbCh0eXBlb2Yga2UsIm9iamVjdCIsInJpbXJhZjogb3B0aW9ucyBzaG91bGQgYmUgb2JqZWN0IiksdGUoa2UpLEooQWUs''@;'; put 'put ''a2UsZnVuY3Rpb24gVGUoTWUpe2lmKE1lKXtpZigoIkVCVVNZIj09PU1lLmNvZGV8fCJFTk9URU1QVFkiPT09TWUuY29kZXx8IkVQRVJNIj09PU1lLmNvZGUpJiZJZTxrZS5tYXhCdXN5VHJpZXMpcmV0dXJuIEllKyssc2V0VGltZW91dCgoKT0+SihBZSxrZSxUZSksMTAwKkllKTsiRU5PRU5U''@;'; put 'put ''Ij09PU1lLmNvZGUmJihNZT1udWxsKX1TZShNZSl9KX1mdW5jdGlvbiBKKEFlLGtlLFNlKXtXKEFlKSxXKGtlKSxXKCJmdW5jdGlvbiI9PXR5cGVvZiBTZSksa2UubHN0YXQoQWUsKEllLFRlKT0+SWUmJiJFTk9FTlQiPT09SWUuY29kZT9TZShudWxsKTpJZSYmIkVQRVJNIj09PUllLmNvZGUm''@;'; put 'put ''Jk4/c2UoQWUsa2UsSWUsU2UpOlRlJiZUZS5pc0RpcmVjdG9yeSgpP2NlKEFlLGtlLEllLFNlKTp2b2lkIGtlLnVubGluayhBZSxNZT0+e2lmKE1lKXtpZigiRU5PRU5UIj09PU1lLmNvZGUpcmV0dXJuIFNlKG51bGwpO2lmKCJFUEVSTSI9PT1NZS5jb2RlKXJldHVybiBOP3NlKEFlLGtlLE1l''@;'; put 'put ''LFNlKTpjZShBZSxrZSxNZSxTZSk7aWYoIkVJU0RJUiI9PT1NZS5jb2RlKXJldHVybiBjZShBZSxrZSxNZSxTZSl9cmV0dXJuIFNlKE1lKX0pKX1mdW5jdGlvbiBzZShBZSxrZSxTZSxJZSl7VyhBZSksVyhrZSksVygiZnVuY3Rpb24iPT10eXBlb2YgSWUpLGtlLmNobW9kKEFlLDQzOCxUZT0+''@;'; put 'put ''e1RlP0llKCJFTk9FTlQiPT09VGUuY29kZT9udWxsOlNlKTprZS5zdGF0KEFlLChNZSxoZSk9PntNZT9JZSgiRU5PRU5UIj09PU1lLmNvZGU/bnVsbDpTZSk6aGUuaXNEaXJlY3RvcnkoKT9jZShBZSxrZSxTZSxJZSk6a2UudW5saW5rKEFlLEllKX0pfSl9ZnVuY3Rpb24gb2UoQWUsa2UsU2Up''@;'; put 'put ''e2xldCBJZTtXKEFlKSxXKGtlKTt0cnl7a2UuY2htb2RTeW5jKEFlLDQzOCl9Y2F0Y2goVGUpe2lmKCJFTk9FTlQiPT09VGUuY29kZSlyZXR1cm47dGhyb3cgU2V9dHJ5e0llPWtlLnN0YXRTeW5jKEFlKX1jYXRjaChUZSl7aWYoIkVOT0VOVCI9PT1UZS5jb2RlKXJldHVybjt0aHJvdyBTZX1J''@;'; put 'put ''ZS5pc0RpcmVjdG9yeSgpP3ZlKEFlLGtlLFNlKTprZS51bmxpbmtTeW5jKEFlKX1mdW5jdGlvbiBjZShBZSxrZSxTZSxJZSl7VyhBZSksVyhrZSksVygiZnVuY3Rpb24iPT10eXBlb2YgSWUpLGtlLnJtZGlyKEFlLFRlPT57dmFyIE1lLGhlLE87IVRlfHwiRU5PVEVNUFRZIiE9PVRlLmNvZGUm''@;'; put 'put ''JiJFRVhJU1QiIT09VGUuY29kZSYmIkVQRVJNIiE9PVRlLmNvZGU/SWUoVGUmJiJFTk9URElSIj09PVRlLmNvZGU/U2U6VGUpOihoZT1rZSxPPUllLFcoTWU9QWUpLFcoaGUpLFcoImZ1bmN0aW9uIj09dHlwZW9mIE8pLGhlLnJlYWRkaXIoTWUsKHosZWUpPT57aWYoeilyZXR1cm4gTyh6KTts''@;'; put 'put ''ZXQgbmUseD1lZS5sZW5ndGg7aWYoMD09PXgpcmV0dXJuIGhlLnJtZGlyKE1lLE8pO2VlLmZvckVhY2goUD0+e0soWS5qb2luKE1lLFApLGhlLFY9PntpZighbmUpcmV0dXJuIFY/TyhuZT1WKTp2b2lkKDA9PS0teCYmaGUucm1kaXIoTWUsTykpfSl9KX0pKX0pfWZ1bmN0aW9uIGRlKEFlLGtl''@;'; put 'put ''KXtsZXQgU2U7dGUoa2U9a2V8fHt9KSxXKEFlLCJyaW1yYWY6IG1pc3NpbmcgcGF0aCIpLFcuc3RyaWN0RXF1YWwodHlwZW9mIEFlLCJzdHJpbmciLCJyaW1yYWY6IHBhdGggc2hvdWxkIGJlIGEgc3RyaW5nIiksVyhrZSwicmltcmFmOiBtaXNzaW5nIG9wdGlvbnMiKSxXLnN0cmljdEVxdWFs''@;'; put 'put ''KHR5cGVvZiBrZSwib2JqZWN0IiwicmltcmFmOiBvcHRpb25zIHNob3VsZCBiZSBvYmplY3QiKTt0cnl7U2U9a2UubHN0YXRTeW5jKEFlKX1jYXRjaChJZSl7aWYoIkVOT0VOVCI9PT1JZS5jb2RlKXJldHVybjsiRVBFUk0iPT09SWUuY29kZSYmTiYmb2UoQWUsa2UsSWUpfXRyeXtTZSYmU2Uu''@;'; put 'put ''aXNEaXJlY3RvcnkoKT92ZShBZSxrZSxudWxsKTprZS51bmxpbmtTeW5jKEFlKX1jYXRjaChJZSl7aWYoIkVOT0VOVCI9PT1JZS5jb2RlKXJldHVybjtpZigiRVBFUk0iPT09SWUuY29kZSlyZXR1cm4gTj9vZShBZSxrZSxJZSk6dmUoQWUsa2UsSWUpO2lmKCJFSVNESVIiIT09SWUuY29kZSl0''@;'; put 'put ''aHJvdyBJZTt2ZShBZSxrZSxJZSl9fWZ1bmN0aW9uIHZlKEFlLGtlLFNlKXtXKEFlKSxXKGtlKTt0cnl7a2Uucm1kaXJTeW5jKEFlKX1jYXRjaChJZSl7aWYoIkVOT1RESVIiPT09SWUuY29kZSl0aHJvdyBTZTtpZigiRU5PVEVNUFRZIj09PUllLmNvZGV8fCJFRVhJU1QiPT09SWUuY29kZXx8''@;'; put 'put ''IkVQRVJNIj09PUllLmNvZGUpIWZ1bmN0aW9uKFRlLE1lKXtpZihXKFRlKSxXKE1lKSxNZS5yZWFkZGlyU3luYyhUZSkuZm9yRWFjaChoZT0+ZGUoWS5qb2luKFRlLGhlKSxNZSkpLCFOKXJldHVybiBNZS5ybWRpclN5bmMoVGUsTWUpO3tjb25zdCBoZT1EYXRlLm5vdygpO2Rve3RyeXtyZXR1''@;'; put 'put ''cm4gTWUucm1kaXJTeW5jKFRlLE1lKX1jYXRjaChPKXt9fXdoaWxlKERhdGUubm93KCktaGU8NTAwKX19KEFlLGtlKTtlbHNlIGlmKCJFTk9FTlQiIT09SWUuY29kZSl0aHJvdyBJZX19VS5leHBvcnRzPUssSy5zeW5jPWRlfSwyNzMzOihVLFEsaik9PnsidXNlIHN0cmljdCI7Y29uc3QgcmU9''@;'; put 'put ''aig3NzQ5KSxhZT1qKDI1MjApLFk9aig5NTM5KTtmdW5jdGlvbiBXKEosc2Usb2Upe2NvbnN0IGNlPW9lLmRlcmVmZXJlbmNlP2RlPT5yZS5zdGF0KGRlLHtiaWdpbnQ6ITB9KTpkZT0+cmUubHN0YXQoZGUse2JpZ2ludDohMH0pO3JldHVybiBQcm9taXNlLmFsbChbY2UoSiksY2Uoc2UpLmNh''@;'; put 'put ''dGNoKGRlPT57aWYoIkVOT0VOVCI9PT1kZS5jb2RlKXJldHVybiBudWxsO3Rocm93IGRlfSldKS50aGVuKChbZGUsdmVdKT0+KHtzcmNTdGF0OmRlLGRlc3RTdGF0OnZlfSkpfWZ1bmN0aW9uIE4oSixzZSl7cmV0dXJuIHNlLmlubyYmc2UuZGV2JiZzZS5pbm89PT1KLmlubyYmc2UuZGV2PT09''@;'; put 'put ''Si5kZXZ9ZnVuY3Rpb24gdGUoSixzZSl7Y29uc3Qgb2U9YWUucmVzb2x2ZShKKS5zcGxpdChhZS5zZXApLmZpbHRlcihkZT0+ZGUpLGNlPWFlLnJlc29sdmUoc2UpLnNwbGl0KGFlLnNlcCkuZmlsdGVyKGRlPT5kZSk7cmV0dXJuIG9lLnJlZHVjZSgoZGUsdmUsQWUpPT5kZSYmY2VbQWVdPT09''@;'; put 'put ''dmUsITApfWZ1bmN0aW9uIEsoSixzZSxvZSl7cmV0dXJuYENhbm5vdCAke29lfSAnJHtKfScgdG8gYSBzdWJkaXJlY3Rvcnkgb2YgaXRzZWxmLCAnJHtzZX0nLmB9VS5leHBvcnRzPXtjaGVja1BhdGhzOmZ1bmN0aW9uKEosc2Usb2UsY2UsZGUpe1kuY2FsbGJhY2tpZnkoVykoSixzZSxjZSwo''@;'; put 'put ''dmUsQWUpPT57aWYodmUpcmV0dXJuIGRlKHZlKTtjb25zdHtzcmNTdGF0OmtlLGRlc3RTdGF0OlNlfT1BZTtpZihTZSl7aWYoTihrZSxTZSkpe2NvbnN0IEllPWFlLmJhc2VuYW1lKEopLFRlPWFlLmJhc2VuYW1lKHNlKTtyZXR1cm4ibW92ZSI9PT1vZSYmSWUhPT1UZSYmSWUudG9Mb3dlckNh''@;'; put 'put ''c2UoKT09PVRlLnRvTG93ZXJDYXNlKCk/ZGUobnVsbCx7c3JjU3RhdDprZSxkZXN0U3RhdDpTZSxpc0NoYW5naW5nQ2FzZTohMH0pOmRlKG5ldyBFcnJvcigiU291cmNlIGFuZCBkZXN0aW5hdGlvbiBtdXN0IG5vdCBiZSB0aGUgc2FtZS4iKSl9aWYoa2UuaXNEaXJlY3RvcnkoKSYmIVNlLmlz''@;'; put 'put ''RGlyZWN0b3J5KCkpcmV0dXJuIGRlKG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSBub24tZGlyZWN0b3J5ICcke3NlfScgd2l0aCBkaXJlY3RvcnkgJyR7Sn0nLmApKTtpZigha2UuaXNEaXJlY3RvcnkoKSYmU2UuaXNEaXJlY3RvcnkoKSlyZXR1cm4gZGUobmV3IEVycm9yKGBDYW5ub3Qg''@;'; put 'put ''b3ZlcndyaXRlIGRpcmVjdG9yeSAnJHtzZX0nIHdpdGggbm9uLWRpcmVjdG9yeSAnJHtKfScuYCkpfXJldHVybiBrZS5pc0RpcmVjdG9yeSgpJiZ0ZShKLHNlKT9kZShuZXcgRXJyb3IoSyhKLHNlLG9lKSkpOmRlKG51bGwse3NyY1N0YXQ6a2UsZGVzdFN0YXQ6U2V9KX0pfSxjaGVja1BhdGhz''@;'; put 'put ''U3luYzpmdW5jdGlvbihKLHNlLG9lLGNlKXtjb25zdHtzcmNTdGF0OmRlLGRlc3RTdGF0OnZlfT1mdW5jdGlvbihBZSxrZSxTZSl7bGV0IEllO2NvbnN0IFRlPVNlLmRlcmVmZXJlbmNlP2hlPT5yZS5zdGF0U3luYyhoZSx7YmlnaW50OiEwfSk6aGU9PnJlLmxzdGF0U3luYyhoZSx7YmlnaW50''@;'; put 'put ''OiEwfSksTWU9VGUoQWUpO3RyeXtJZT1UZShrZSl9Y2F0Y2goaGUpe2lmKCJFTk9FTlQiPT09aGUuY29kZSlyZXR1cm57c3JjU3RhdDpNZSxkZXN0U3RhdDpudWxsfTt0aHJvdyBoZX1yZXR1cm57c3JjU3RhdDpNZSxkZXN0U3RhdDpJZX19KEosc2UsY2UpO2lmKHZlKXtpZihOKGRlLHZlKSl7''@;'; put 'put ''Y29uc3QgQWU9YWUuYmFzZW5hbWUoSiksa2U9YWUuYmFzZW5hbWUoc2UpO2lmKCJtb3ZlIj09PW9lJiZBZSE9PWtlJiZBZS50b0xvd2VyQ2FzZSgpPT09a2UudG9Mb3dlckNhc2UoKSlyZXR1cm57c3JjU3RhdDpkZSxkZXN0U3RhdDp2ZSxpc0NoYW5naW5nQ2FzZTohMH07dGhyb3cgbmV3IEVy''@;'; put 'put ''cm9yKCJTb3VyY2UgYW5kIGRlc3RpbmF0aW9uIG11c3Qgbm90IGJlIHRoZSBzYW1lLiIpfWlmKGRlLmlzRGlyZWN0b3J5KCkmJiF2ZS5pc0RpcmVjdG9yeSgpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSBub24tZGlyZWN0b3J5ICcke3NlfScgd2l0aCBkaXJlY3RvcnkgJyR7''@;'; put 'put ''Sn0nLmApO2lmKCFkZS5pc0RpcmVjdG9yeSgpJiZ2ZS5pc0RpcmVjdG9yeSgpKXRocm93IG5ldyBFcnJvcihgQ2Fubm90IG92ZXJ3cml0ZSBkaXJlY3RvcnkgJyR7c2V9JyB3aXRoIG5vbi1kaXJlY3RvcnkgJyR7Sn0nLmApfWlmKGRlLmlzRGlyZWN0b3J5KCkmJnRlKEosc2UpKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcihLKEosc2Usb2UpKTtyZXR1cm57c3JjU3RhdDpkZSxkZXN0U3RhdDp2ZX19LGNoZWNrUGFyZW50UGF0aHM6ZnVuY3Rpb24gSihzZSxvZSxjZSxkZSx2ZSl7Y29uc3QgQWU9YWUucmVzb2x2ZShhZS5kaXJuYW1lKHNlKSksa2U9YWUucmVzb2x2ZShhZS5kaXJuYW1lKGNlKSk7aWYo''@;'; put 'put ''a2U9PT1BZXx8a2U9PT1hZS5wYXJzZShrZSkucm9vdClyZXR1cm4gdmUoKTtyZS5zdGF0KGtlLHtiaWdpbnQ6ITB9LChTZSxJZSk9PlNlPyJFTk9FTlQiPT09U2UuY29kZT92ZSgpOnZlKFNlKTpOKG9lLEllKT92ZShuZXcgRXJyb3IoSyhzZSxjZSxkZSkpKTpKKHNlLG9lLGtlLGRlLHZlKSl9''@;'; put 'put ''LGNoZWNrUGFyZW50UGF0aHNTeW5jOmZ1bmN0aW9uIEooc2Usb2UsY2UsZGUpe2NvbnN0IHZlPWFlLnJlc29sdmUoYWUuZGlybmFtZShzZSkpLEFlPWFlLnJlc29sdmUoYWUuZGlybmFtZShjZSkpO2lmKEFlPT09dmV8fEFlPT09YWUucGFyc2UoQWUpLnJvb3QpcmV0dXJuO2xldCBrZTt0cnl7''@;'; put 'put ''a2U9cmUuc3RhdFN5bmMoQWUse2JpZ2ludDohMH0pfWNhdGNoKFNlKXtpZigiRU5PRU5UIj09PVNlLmNvZGUpcmV0dXJuO3Rocm93IFNlfWlmKE4ob2Usa2UpKXRocm93IG5ldyBFcnJvcihLKHNlLGNlLGRlKSk7cmV0dXJuIEooc2Usb2UsQWUsZGUpfSxpc1NyY1N1YmRpcjp0ZSxhcmVJZGVu''@;'; put 'put ''dGljYWw6Tn19LDMxODooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooNzcpO1UuZXhwb3J0cz17dXRpbWVzTWlsbGlzOmZ1bmN0aW9uKGFlLFksVyxOKXtyZS5vcGVuKGFlLCJyKyIsKHRlLEspPT57aWYodGUpcmV0dXJuIE4odGUpO3JlLmZ1dGltZXMoSyxZLFcsSj0+e3JlLmNs''@;'; put 'put ''b3NlKEssc2U9PntOJiZOKEp8fHNlKX0pfSl9KX0sdXRpbWVzTWlsbGlzU3luYzpmdW5jdGlvbihhZSxZLFcpe2NvbnN0IE49cmUub3BlblN5bmMoYWUsInIrIik7cmV0dXJuIHJlLmZ1dGltZXNTeW5jKE4sWSxXKSxyZS5jbG9zZVN5bmMoTil9fX0sNzMzNDooVSxRLGopPT57dmFyIHJlPWoo''@;'; put 'put ''NDE1NSk7VS5leHBvcnRzPXNlLHNlLnJlYWxwYXRoPXNlLHNlLnN5bmM9b2Usc2UucmVhbHBhdGhTeW5jPW9lLHNlLm1vbmtleXBhdGNoPWZ1bmN0aW9uKCl7YWUucmVhbHBhdGg9c2UsYWUucmVhbHBhdGhTeW5jPW9lfSxzZS51bm1vbmtleXBhdGNoPWZ1bmN0aW9uKCl7YWUucmVhbHBhdGg9''@;'; put 'put ''WSxhZS5yZWFscGF0aFN5bmM9V307dmFyIGFlPWooMjUzNSksWT1hZS5yZWFscGF0aCxXPWFlLnJlYWxwYXRoU3luYyx0ZT0vXnZbMC01XVwuLy50ZXN0KHJlLnZlcnNpb24pLEs9aig3MDU5KTtmdW5jdGlvbiBKKGNlKXtyZXR1cm4gY2UmJiJyZWFscGF0aCI9PT1jZS5zeXNjYWxsJiYoIkVM''@;'; put 'put ''T09QIj09PWNlLmNvZGV8fCJFTk9NRU0iPT09Y2UuY29kZXx8IkVOQU1FVE9PTE9ORyI9PT1jZS5jb2RlKX1mdW5jdGlvbiBzZShjZSxkZSx2ZSl7aWYodGUpcmV0dXJuIFkoY2UsZGUsdmUpOyJmdW5jdGlvbiI9PXR5cGVvZiBkZSYmKHZlPWRlLGRlPW51bGwpLFkoY2UsZGUsZnVuY3Rpb24o''@;'; put 'put ''QWUsa2Upe0ooQWUpP0sucmVhbHBhdGgoY2UsZGUsdmUpOnZlKEFlLGtlKX0pfWZ1bmN0aW9uIG9lKGNlLGRlKXtpZih0ZSlyZXR1cm4gVyhjZSxkZSk7dHJ5e3JldHVybiBXKGNlLGRlKX1jYXRjaCh2ZSl7aWYoSih2ZSkpcmV0dXJuIEsucmVhbHBhdGhTeW5jKGNlLGRlKTt0aHJvdyB2ZX19''@;'; put 'put ''fSw3MDU5OihVLFEsaik9Pnt2YXIgcmU9aig0MTU1KSxhZT1qKDUxMDgpLFk9aigyNTIwKSxXPSJ3aW4zMiI9PT1yZS5wbGF0Zm9ybSxOPWooMjUzNSksdGU9cmUuZW52Lk5PREVfREVCVUcmJi9mcy8udGVzdChyZS5lbnYuTk9ERV9ERUJVRyk7aWYoVyl2YXIgSj0vKC4qPykoPzpbXC9cXF0r''@;'; put 'put ''fCQpL2c7ZWxzZSBKPS8oLio/KSg/OltcL10rfCQpL2c7aWYoVyl2YXIgc2U9L14oPzpbYS16QS1aXTp8W1xcXC9dezJ9W15cXFwvXStbXFxcL11bXlxcXC9dKyk/W1xcXC9dKi87ZWxzZSBzZT0vXltcL10qLztRLnJlYWxwYXRoU3luYz1mdW5jdGlvbihvZSxjZSl7aWYob2U9WS5yZXNvbHZl''@;'; put 'put ''KG9lKSxjZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLG9lKSlyZXR1cm4gY2Vbb2VdO3ZhciBkZSx2ZSxBZSxrZSxTZT1vZSxJZT17fSxUZT17fTtmdW5jdGlvbiBNZSgpe3ZhciB4PXNlLmV4ZWMob2UpO2RlPXhbMF0ubGVuZ3RoLHZlPXhbMF0sQWU9eFswXSxr''@;'; put 'put ''ZT0iIixXJiYhVGVbQWVdJiYoTi5sc3RhdFN5bmMoQWUpLFRlW0FlXT0hMCl9Zm9yKE1lKCk7ZGU8b2UubGVuZ3RoOyl7Si5sYXN0SW5kZXg9ZGU7dmFyIGhlPUouZXhlYyhvZSk7aWYoa2U9dmUsdmUrPWhlWzBdLGRlPUoubGFzdEluZGV4LCEoVGVbQWU9a2UraGVbMV1dfHxjZSYmY2VbQWVd''@;'; put 'put ''PT09QWUpKXt2YXIgTztpZihjZSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNlLEFlKSlPPWNlW0FlXTtlbHNle3ZhciB6PU4ubHN0YXRTeW5jKEFlKTtpZighei5pc1N5bWJvbGljTGluaygpKXtUZVtBZV09ITAsY2UmJihjZVtBZV09QWUpO2NvbnRpbnVlfXZhciBl''@;'; put 'put ''ZT1udWxsO2lmKCFXKXt2YXIgbmU9ei5kZXYudG9TdHJpbmcoMzIpKyI6Iit6Lmluby50b1N0cmluZygzMik7SWUuaGFzT3duUHJvcGVydHkobmUpJiYoZWU9SWVbbmVdKX1udWxsPT09ZWUmJihOLnN0YXRTeW5jKEFlKSxlZT1OLnJlYWRsaW5rU3luYyhBZSkpLE89WS5yZXNvbHZlKGtlLGVl''@;'; put 'put ''KSxjZSYmKGNlW0FlXT1PKSxXfHwoSWVbbmVdPWVlKX1vZT1ZLnJlc29sdmUoTyxvZS5zbGljZShkZSkpLE1lKCl9fXJldHVybiBjZSYmKGNlW1NlXT1vZSksb2V9LFEucmVhbHBhdGg9ZnVuY3Rpb24ob2UsY2UsZGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkZSYmKGRlPWZ1bmN0aW9uIEso''@;'; put 'put ''b2Upe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBvZT9vZTpmdW5jdGlvbigpe3ZhciBjZTtpZih0ZSl7dmFyIGRlPW5ldyBFcnJvcjtjZT1mdW5jdGlvbihBZSl7QWUmJihkZS5tZXNzYWdlPUFlLm1lc3NhZ2UsdmUoQWU9ZGUpKX19ZWxzZSBjZT12ZTtyZXR1cm4gY2U7ZnVuY3Rpb24gdmUo''@;'; put 'put ''QWUpe2lmKEFlKXtpZihyZS50aHJvd0RlcHJlY2F0aW9uKXRocm93IEFlO2lmKCFyZS5ub0RlcHJlY2F0aW9uKXt2YXIga2U9ImZzOiBtaXNzaW5nIGNhbGxiYWNrICIrKEFlLnN0YWNrfHxBZS5tZXNzYWdlKTtyZS50cmFjZURlcHJlY2F0aW9uP2FlLnRyYWNlKGtlKTphZS5lcnJvcihrZSl9''@;'; put 'put ''fX19KCl9KGNlKSxjZT1udWxsKSxvZT1ZLnJlc29sdmUob2UpLGNlJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2Usb2UpKXJldHVybiByZS5uZXh0VGljayhkZS5iaW5kKG51bGwsbnVsbCxjZVtvZV0pKTt2YXIgdmUsQWUsa2UsU2UsSWU9b2UsVGU9e30sTWU9e307''@;'; put 'put ''ZnVuY3Rpb24gaGUoKXt2YXIgeD1zZS5leGVjKG9lKTt2ZT14WzBdLmxlbmd0aCxBZT14WzBdLGtlPXhbMF0sU2U9IiIsVyYmIU1lW2tlXT9OLmxzdGF0KGtlLGZ1bmN0aW9uKFApe2lmKFApcmV0dXJuIGRlKFApO01lW2tlXT0hMCxPKCl9KTpyZS5uZXh0VGljayhPKX1mdW5jdGlvbiBPKCl7''@;'; put 'put ''aWYodmU+PW9lLmxlbmd0aClyZXR1cm4gY2UmJihjZVtJZV09b2UpLGRlKG51bGwsb2UpO0oubGFzdEluZGV4PXZlO3ZhciB4PUouZXhlYyhvZSk7cmV0dXJuIFNlPUFlLEFlKz14WzBdLHZlPUoubGFzdEluZGV4LE1lW2tlPVNlK3hbMV1dfHxjZSYmY2Vba2VdPT09a2U/cmUubmV4dFRpY2so''@;'; put 'put ''Tyk6Y2UmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjZSxrZSk/bmUoY2Vba2VdKTpOLmxzdGF0KGtlLHopfWZ1bmN0aW9uIHooeCxQKXtpZih4KXJldHVybiBkZSh4KTtpZighUC5pc1N5bWJvbGljTGluaygpKXJldHVybiBNZVtrZV09ITAsY2UmJihjZVtrZV09a2Up''@;'; put 'put ''LHJlLm5leHRUaWNrKE8pO2lmKCFXKXt2YXIgVj1QLmRldi50b1N0cmluZygzMikrIjoiK1AuaW5vLnRvU3RyaW5nKDMyKTtpZihUZS5oYXNPd25Qcm9wZXJ0eShWKSlyZXR1cm4gZWUobnVsbCxUZVtWXSxrZSl9Ti5zdGF0KGtlLGZ1bmN0aW9uKFQpe2lmKFQpcmV0dXJuIGRlKFQpO04ucmVh''@;'; put 'put ''ZGxpbmsoa2UsZnVuY3Rpb24oUyxGKXtXfHwoVGVbVl09RiksZWUoUyxGKX0pfSl9ZnVuY3Rpb24gZWUoeCxQLFYpe2lmKHgpcmV0dXJuIGRlKHgpO3ZhciBUPVkucmVzb2x2ZShTZSxQKTtjZSYmKGNlW1ZdPVQpLG5lKFQpfWZ1bmN0aW9uIG5lKHgpe29lPVkucmVzb2x2ZSh4LG9lLnNsaWNl''@;'; put 'put ''KHZlKSksaGUoKX1oZSgpfX0sNzY0ODpVPT57InVzZSBzdHJpY3QiO3ZhciBRPSJGdW5jdGlvbi5wcm90b3R5cGUuYmluZCBjYWxsZWQgb24gaW5jb21wYXRpYmxlICIsaj1BcnJheS5wcm90b3R5cGUuc2xpY2UscmU9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxhZT0iW29iamVjdCBGdW5j''@;'; put 'put ''dGlvbl0iO1UuZXhwb3J0cz1mdW5jdGlvbihZKXt2YXIgVz10aGlzO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXfHxyZS5jYWxsKFcpIT09YWUpdGhyb3cgbmV3IFR5cGVFcnJvcihRK1cpO2Zvcih2YXIgTix0ZT1qLmNhbGwoYXJndW1lbnRzLDEpLEs9ZnVuY3Rpb24oKXtpZih0aGlzIGluc3Rh''@;'; put 'put ''bmNlb2YgTil7dmFyIGRlPVcuYXBwbHkodGhpcyx0ZS5jb25jYXQoai5jYWxsKGFyZ3VtZW50cykpKTtyZXR1cm4gT2JqZWN0KGRlKT09PWRlP2RlOnRoaXN9cmV0dXJuIFcuYXBwbHkoWSx0ZS5jb25jYXQoai5jYWxsKGFyZ3VtZW50cykpKX0sSj1NYXRoLm1heCgwLFcubGVuZ3RoLXRlLmxl''@;'; put 'put ''bmd0aCksc2U9W10sb2U9MDtvZTxKO29lKyspc2UucHVzaCgiJCIrb2UpO2lmKE49RnVuY3Rpb24oImJpbmRlciIsInJldHVybiBmdW5jdGlvbiAoIitzZS5qb2luKCIsIikrIil7IHJldHVybiBiaW5kZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpOyB9IikoSyksVy5wcm90b3R5cGUpe3ZhciBj''@;'; put 'put ''ZT1mdW5jdGlvbigpe307Y2UucHJvdG90eXBlPVcucHJvdG90eXBlLE4ucHJvdG90eXBlPW5ldyBjZSxjZS5wcm90b3R5cGU9bnVsbH1yZXR1cm4gTn19LDg2MTI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig3NjQ4KTtVLmV4cG9ydHM9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmR8''@;'; put 'put ''fHJlfSwyMTA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmUsYWU9U3ludGF4RXJyb3IsWT1GdW5jdGlvbixXPVR5cGVFcnJvcixOPWZ1bmN0aW9uKFYpe3RyeXtyZXR1cm4gWSgnInVzZSBzdHJpY3QiOyByZXR1cm4gKCcrVisiKS5jb25zdHJ1Y3RvcjsiKSgpfWNhdGNoKFQpe319LHRl''@;'; put 'put ''PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7aWYodGUpdHJ5e3RlKHt9LCIiKX1jYXRjaChWKXt0ZT1udWxsfXZhciBLPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFd9LEo9dGU/ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIEt9Y2F0Y2goVil7dHJ5e3JldHVybiB0ZShhcmd1bWVudHMsImNh''@;'; put 'put ''bGxlZSIpLmdldH1jYXRjaChUKXtyZXR1cm4gS319fSgpOkssc2U9aigxNDA1KSgpLG9lPU9iamVjdC5nZXRQcm90b3R5cGVPZnx8ZnVuY3Rpb24oVil7cmV0dXJuIFYuX19wcm90b19ffSxjZT17fSxkZT0idW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXk/cmU6b2UoVWludDhBcnJheSks''@;'; put 'put ''dmU9eyIlQWdncmVnYXRlRXJyb3IlIjoidW5kZWZpbmVkIj09dHlwZW9mIEFnZ3JlZ2F0ZUVycm9yP3JlOkFnZ3JlZ2F0ZUVycm9yLCIlQXJyYXklIjpBcnJheSwiJUFycmF5QnVmZmVyJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBBcnJheUJ1ZmZlcj9yZTpBcnJheUJ1ZmZlciwiJUFycmF5SXRl''@;'; put 'put ''cmF0b3JQcm90b3R5cGUlIjpzZT9vZShbXVtTeW1ib2wuaXRlcmF0b3JdKCkpOnJlLCIlQXN5bmNGcm9tU3luY0l0ZXJhdG9yUHJvdG90eXBlJSI6cmUsIiVBc3luY0Z1bmN0aW9uJSI6Y2UsIiVBc3luY0dlbmVyYXRvciUiOmNlLCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiOmNlLCIlQXN5''@;'; put 'put ''bmNJdGVyYXRvclByb3RvdHlwZSUiOmNlLCIlQXRvbWljcyUiOiJ1bmRlZmluZWQiPT10eXBlb2YgQXRvbWljcz9yZTpBdG9taWNzLCIlQmlnSW50JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBCaWdJbnQ/cmU6QmlnSW50LCIlQm9vbGVhbiUiOkJvb2xlYW4sIiVEYXRhVmlldyUiOiJ1bmRlZmlu''@;'; put 'put ''ZWQiPT10eXBlb2YgRGF0YVZpZXc/cmU6RGF0YVZpZXcsIiVEYXRlJSI6RGF0ZSwiJWRlY29kZVVSSSUiOmRlY29kZVVSSSwiJWRlY29kZVVSSUNvbXBvbmVudCUiOmRlY29kZVVSSUNvbXBvbmVudCwiJWVuY29kZVVSSSUiOmVuY29kZVVSSSwiJWVuY29kZVVSSUNvbXBvbmVudCUiOmVuY29k''@;'; put 'put ''ZVVSSUNvbXBvbmVudCwiJUVycm9yJSI6RXJyb3IsIiVldmFsJSI6ZXZhbCwiJUV2YWxFcnJvciUiOkV2YWxFcnJvciwiJUZsb2F0MzJBcnJheSUiOiJ1bmRlZmluZWQiPT10eXBlb2YgRmxvYXQzMkFycmF5P3JlOkZsb2F0MzJBcnJheSwiJUZsb2F0NjRBcnJheSUiOiJ1bmRlZmluZWQiPT10''@;'; put 'put ''eXBlb2YgRmxvYXQ2NEFycmF5P3JlOkZsb2F0NjRBcnJheSwiJUZpbmFsaXphdGlvblJlZ2lzdHJ5JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBGaW5hbGl6YXRpb25SZWdpc3RyeT9yZTpGaW5hbGl6YXRpb25SZWdpc3RyeSwiJUZ1bmN0aW9uJSI6WSwiJUdlbmVyYXRvckZ1bmN0aW9uJSI6Y2Us''@;'; put 'put ''IiVJbnQ4QXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIEludDhBcnJheT9yZTpJbnQ4QXJyYXksIiVJbnQxNkFycmF5JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBJbnQxNkFycmF5P3JlOkludDE2QXJyYXksIiVJbnQzMkFycmF5JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBJbnQzMkFycmF5P3Jl''@;'; put 'put ''OkludDMyQXJyYXksIiVpc0Zpbml0ZSUiOmlzRmluaXRlLCIlaXNOYU4lIjppc05hTiwiJUl0ZXJhdG9yUHJvdG90eXBlJSI6c2U/b2Uob2UoW11bU3ltYm9sLml0ZXJhdG9yXSgpKSk6cmUsIiVKU09OJSI6Im9iamVjdCI9PXR5cGVvZiBKU09OP0pTT046cmUsIiVNYXAlIjoidW5kZWZpbmVk''@;'; put 'put ''Ij09dHlwZW9mIE1hcD9yZTpNYXAsIiVNYXBJdGVyYXRvclByb3RvdHlwZSUiOiJ1bmRlZmluZWQiIT10eXBlb2YgTWFwJiZzZT9vZSgobmV3IE1hcClbU3ltYm9sLml0ZXJhdG9yXSgpKTpyZSwiJU1hdGglIjpNYXRoLCIlTnVtYmVyJSI6TnVtYmVyLCIlT2JqZWN0JSI6T2JqZWN0LCIlcGFy''@;'; put 'put ''c2VGbG9hdCUiOnBhcnNlRmxvYXQsIiVwYXJzZUludCUiOnBhcnNlSW50LCIlUHJvbWlzZSUiOiJ1bmRlZmluZWQiPT10eXBlb2YgUHJvbWlzZT9yZTpQcm9taXNlLCIlUHJveHklIjoidW5kZWZpbmVkIj09dHlwZW9mIFByb3h5P3JlOlByb3h5LCIlUmFuZ2VFcnJvciUiOlJhbmdlRXJyb3Is''@;'; put 'put ''IiVSZWZlcmVuY2VFcnJvciUiOlJlZmVyZW5jZUVycm9yLCIlUmVmbGVjdCUiOiJ1bmRlZmluZWQiPT10eXBlb2YgUmVmbGVjdD9yZTpSZWZsZWN0LCIlUmVnRXhwJSI6UmVnRXhwLCIlU2V0JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBTZXQ/cmU6U2V0LCIlU2V0SXRlcmF0b3JQcm90b3R5cGUl''@;'; put 'put ''IjoidW5kZWZpbmVkIiE9dHlwZW9mIFNldCYmc2U/b2UoKG5ldyBTZXQpW1N5bWJvbC5pdGVyYXRvcl0oKSk6cmUsIiVTaGFyZWRBcnJheUJ1ZmZlciUiOiJ1bmRlZmluZWQiPT10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI/cmU6U2hhcmVkQXJyYXlCdWZmZXIsIiVTdHJpbmclIjpTdHJpbmcs''@;'; put 'put ''IiVTdHJpbmdJdGVyYXRvclByb3RvdHlwZSUiOnNlP29lKCIiW1N5bWJvbC5pdGVyYXRvcl0oKSk6cmUsIiVTeW1ib2wlIjpzZT9TeW1ib2w6cmUsIiVTeW50YXhFcnJvciUiOmFlLCIlVGhyb3dUeXBlRXJyb3IlIjpKLCIlVHlwZWRBcnJheSUiOmRlLCIlVHlwZUVycm9yJSI6VywiJVVpbnQ4''@;'; put 'put ''QXJyYXklIjoidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXk/cmU6VWludDhBcnJheSwiJVVpbnQ4Q2xhbXBlZEFycmF5JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBVaW50OENsYW1wZWRBcnJheT9yZTpVaW50OENsYW1wZWRBcnJheSwiJVVpbnQxNkFycmF5JSI6InVuZGVmaW5lZCI9PXR5''@;'; put 'put ''cGVvZiBVaW50MTZBcnJheT9yZTpVaW50MTZBcnJheSwiJVVpbnQzMkFycmF5JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBVaW50MzJBcnJheT9yZTpVaW50MzJBcnJheSwiJVVSSUVycm9yJSI6VVJJRXJyb3IsIiVXZWFrTWFwJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrTWFwP3JlOldlYWtN''@;'; put 'put ''YXAsIiVXZWFrUmVmJSI6InVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrUmVmP3JlOldlYWtSZWYsIiVXZWFrU2V0JSI6InVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrU2V0P3JlOldlYWtTZXR9LEFlPWZ1bmN0aW9uIFYoVCl7dmFyIFM7aWYoIiVBc3luY0Z1bmN0aW9uJSI9PT1UKVM9TigiYXN5bmMg''@;'; put 'put ''ZnVuY3Rpb24gKCkge30iKTtlbHNlIGlmKCIlR2VuZXJhdG9yRnVuY3Rpb24lIj09PVQpUz1OKCJmdW5jdGlvbiogKCkge30iKTtlbHNlIGlmKCIlQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiUiPT09VClTPU4oImFzeW5jIGZ1bmN0aW9uKiAoKSB7fSIpO2Vsc2UgaWYoIiVBc3luY0dlbmVyYXRv''@;'; put 'put ''ciUiPT09VCl7dmFyIEY9VigiJUFzeW5jR2VuZXJhdG9yRnVuY3Rpb24lIik7RiYmKFM9Ri5wcm90b3R5cGUpfWVsc2UgaWYoIiVBc3luY0l0ZXJhdG9yUHJvdG90eXBlJSI9PT1UKXt2YXIgeWU9VigiJUFzeW5jR2VuZXJhdG9yJSIpO3llJiYoUz1vZSh5ZS5wcm90b3R5cGUpKX1yZXR1cm4g''@;'; put 'put ''dmVbVF09UyxTfSxrZT17IiVBcnJheUJ1ZmZlclByb3RvdHlwZSUiOlsiQXJyYXlCdWZmZXIiLCJwcm90b3R5cGUiXSwiJUFycmF5UHJvdG90eXBlJSI6WyJBcnJheSIsInByb3RvdHlwZSJdLCIlQXJyYXlQcm90b19lbnRyaWVzJSI6WyJBcnJheSIsInByb3RvdHlwZSIsImVudHJpZXMiXSwi''@;'; put 'put ''JUFycmF5UHJvdG9fZm9yRWFjaCUiOlsiQXJyYXkiLCJwcm90b3R5cGUiLCJmb3JFYWNoIl0sIiVBcnJheVByb3RvX2tleXMlIjpbIkFycmF5IiwicHJvdG90eXBlIiwia2V5cyJdLCIlQXJyYXlQcm90b192YWx1ZXMlIjpbIkFycmF5IiwicHJvdG90eXBlIiwidmFsdWVzIl0sIiVBc3luY0Z1''@;'; put 'put ''bmN0aW9uUHJvdG90eXBlJSI6WyJBc3luY0Z1bmN0aW9uIiwicHJvdG90eXBlIl0sIiVBc3luY0dlbmVyYXRvciUiOlsiQXN5bmNHZW5lcmF0b3JGdW5jdGlvbiIsInByb3RvdHlwZSJdLCIlQXN5bmNHZW5lcmF0b3JQcm90b3R5cGUlIjpbIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iLCJwcm90''@;'; put 'put ''b3R5cGUiLCJwcm90b3R5cGUiXSwiJUJvb2xlYW5Qcm90b3R5cGUlIjpbIkJvb2xlYW4iLCJwcm90b3R5cGUiXSwiJURhdGFWaWV3UHJvdG90eXBlJSI6WyJEYXRhVmlldyIsInByb3RvdHlwZSJdLCIlRGF0ZVByb3RvdHlwZSUiOlsiRGF0ZSIsInByb3RvdHlwZSJdLCIlRXJyb3JQcm90b3R5''@;'; put 'put ''cGUlIjpbIkVycm9yIiwicHJvdG90eXBlIl0sIiVFdmFsRXJyb3JQcm90b3R5cGUlIjpbIkV2YWxFcnJvciIsInByb3RvdHlwZSJdLCIlRmxvYXQzMkFycmF5UHJvdG90eXBlJSI6WyJGbG9hdDMyQXJyYXkiLCJwcm90b3R5cGUiXSwiJUZsb2F0NjRBcnJheVByb3RvdHlwZSUiOlsiRmxvYXQ2''@;'; put 'put ''NEFycmF5IiwicHJvdG90eXBlIl0sIiVGdW5jdGlvblByb3RvdHlwZSUiOlsiRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUdlbmVyYXRvciUiOlsiR2VuZXJhdG9yRnVuY3Rpb24iLCJwcm90b3R5cGUiXSwiJUdlbmVyYXRvclByb3RvdHlwZSUiOlsiR2VuZXJhdG9yRnVuY3Rpb24iLCJwcm90''@;'; put 'put ''b3R5cGUiLCJwcm90b3R5cGUiXSwiJUludDhBcnJheVByb3RvdHlwZSUiOlsiSW50OEFycmF5IiwicHJvdG90eXBlIl0sIiVJbnQxNkFycmF5UHJvdG90eXBlJSI6WyJJbnQxNkFycmF5IiwicHJvdG90eXBlIl0sIiVJbnQzMkFycmF5UHJvdG90eXBlJSI6WyJJbnQzMkFycmF5IiwicHJvdG90''@;'; put 'put ''eXBlIl0sIiVKU09OUGFyc2UlIjpbIkpTT04iLCJwYXJzZSJdLCIlSlNPTlN0cmluZ2lmeSUiOlsiSlNPTiIsInN0cmluZ2lmeSJdLCIlTWFwUHJvdG90eXBlJSI6WyJNYXAiLCJwcm90b3R5cGUiXSwiJU51bWJlclByb3RvdHlwZSUiOlsiTnVtYmVyIiwicHJvdG90eXBlIl0sIiVPYmplY3RQ''@;'; put 'put ''cm90b3R5cGUlIjpbIk9iamVjdCIsInByb3RvdHlwZSJdLCIlT2JqUHJvdG9fdG9TdHJpbmclIjpbIk9iamVjdCIsInByb3RvdHlwZSIsInRvU3RyaW5nIl0sIiVPYmpQcm90b192YWx1ZU9mJSI6WyJPYmplY3QiLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIl0sIiVQcm9taXNlUHJvdG90eXBlJSI6''@;'; put 'put ''WyJQcm9taXNlIiwicHJvdG90eXBlIl0sIiVQcm9taXNlUHJvdG9fdGhlbiUiOlsiUHJvbWlzZSIsInByb3RvdHlwZSIsInRoZW4iXSwiJVByb21pc2VfYWxsJSI6WyJQcm9taXNlIiwiYWxsIl0sIiVQcm9taXNlX3JlamVjdCUiOlsiUHJvbWlzZSIsInJlamVjdCJdLCIlUHJvbWlzZV9yZXNv''@;'; put 'put ''bHZlJSI6WyJQcm9taXNlIiwicmVzb2x2ZSJdLCIlUmFuZ2VFcnJvclByb3RvdHlwZSUiOlsiUmFuZ2VFcnJvciIsInByb3RvdHlwZSJdLCIlUmVmZXJlbmNlRXJyb3JQcm90b3R5cGUlIjpbIlJlZmVyZW5jZUVycm9yIiwicHJvdG90eXBlIl0sIiVSZWdFeHBQcm90b3R5cGUlIjpbIlJlZ0V4''@;'; put 'put ''cCIsInByb3RvdHlwZSJdLCIlU2V0UHJvdG90eXBlJSI6WyJTZXQiLCJwcm90b3R5cGUiXSwiJVNoYXJlZEFycmF5QnVmZmVyUHJvdG90eXBlJSI6WyJTaGFyZWRBcnJheUJ1ZmZlciIsInByb3RvdHlwZSJdLCIlU3RyaW5nUHJvdG90eXBlJSI6WyJTdHJpbmciLCJwcm90b3R5cGUiXSwiJVN5''@;'; put 'put ''bWJvbFByb3RvdHlwZSUiOlsiU3ltYm9sIiwicHJvdG90eXBlIl0sIiVTeW50YXhFcnJvclByb3RvdHlwZSUiOlsiU3ludGF4RXJyb3IiLCJwcm90b3R5cGUiXSwiJVR5cGVkQXJyYXlQcm90b3R5cGUlIjpbIlR5cGVkQXJyYXkiLCJwcm90b3R5cGUiXSwiJVR5cGVFcnJvclByb3RvdHlwZSUi''@;'; put 'put ''OlsiVHlwZUVycm9yIiwicHJvdG90eXBlIl0sIiVVaW50OEFycmF5UHJvdG90eXBlJSI6WyJVaW50OEFycmF5IiwicHJvdG90eXBlIl0sIiVVaW50OENsYW1wZWRBcnJheVByb3RvdHlwZSUiOlsiVWludDhDbGFtcGVkQXJyYXkiLCJwcm90b3R5cGUiXSwiJVVpbnQxNkFycmF5UHJvdG90eXBl''@;'; put 'put ''JSI6WyJVaW50MTZBcnJheSIsInByb3RvdHlwZSJdLCIlVWludDMyQXJyYXlQcm90b3R5cGUlIjpbIlVpbnQzMkFycmF5IiwicHJvdG90eXBlIl0sIiVVUklFcnJvclByb3RvdHlwZSUiOlsiVVJJRXJyb3IiLCJwcm90b3R5cGUiXSwiJVdlYWtNYXBQcm90b3R5cGUlIjpbIldlYWtNYXAiLCJw''@;'; put 'put ''cm90b3R5cGUiXSwiJVdlYWtTZXRQcm90b3R5cGUlIjpbIldlYWtTZXQiLCJwcm90b3R5cGUiXX0sU2U9aig4NjEyKSxJZT1qKDc2NDIpLFRlPVNlLmNhbGwoRnVuY3Rpb24uY2FsbCxBcnJheS5wcm90b3R5cGUuY29uY2F0KSxNZT1TZS5jYWxsKEZ1bmN0aW9uLmFwcGx5LEFycmF5LnByb3Rv''@;'; put 'put ''dHlwZS5zcGxpY2UpLGhlPVNlLmNhbGwoRnVuY3Rpb24uY2FsbCxTdHJpbmcucHJvdG90eXBlLnJlcGxhY2UpLE89U2UuY2FsbChGdW5jdGlvbi5jYWxsLFN0cmluZy5wcm90b3R5cGUuc2xpY2UpLHo9U2UuY2FsbChGdW5jdGlvbi5jYWxsLFJlZ0V4cC5wcm90b3R5cGUuZXhlYyksZWU9L1te''@;'; put 'put ''JS5bXF1dK3xcWyg/OigtP1xkKyg/OlwuXGQrKT8pfChbIiddKSgoPzooPyFcMilbXlxcXXxcXC4pKj8pXDIpXF18KD89KD86XC58XFtcXSkoPzpcLnxcW1xdfCUkKSkvZyxuZT0vXFwoXFwpPy9nLHg9ZnVuY3Rpb24oVil7dmFyIFQ9TyhWLDAsMSksUz1PKFYsLTEpO2lmKCIlIj09PVQmJiIl''@;'; put 'put ''IiE9PVMpdGhyb3cgbmV3IGFlKCJpbnZhbGlkIGludHJpbnNpYyBzeW50YXgsIGV4cGVjdGVkIGNsb3NpbmcgYCVgIik7aWYoIiUiPT09UyYmIiUiIT09VCl0aHJvdyBuZXcgYWUoImludmFsaWQgaW50cmluc2ljIHN5bnRheCwgZXhwZWN0ZWQgb3BlbmluZyBgJWAiKTt2YXIgRj1bXTtyZXR1''@;'; put 'put ''cm4gaGUoVixlZSxmdW5jdGlvbih5ZSxDZSxEZSxQZSl7RltGLmxlbmd0aF09RGU/aGUoUGUsbmUsIiQxIik6Q2V8fHllfSksRn0sUD1mdW5jdGlvbihWLFQpe3ZhciBTLEY9VjtpZihJZShrZSxGKSYmKEY9IiUiKyhTPWtlW0ZdKVswXSsiJSIpLEllKHZlLEYpKXt2YXIgeWU9dmVbRl07aWYo''@;'; put 'put ''eWU9PT1jZSYmKHllPUFlKEYpKSx2b2lkIDA9PT15ZSYmIVQpdGhyb3cgbmV3IFcoImludHJpbnNpYyAiK1YrIiBleGlzdHMsIGJ1dCBpcyBub3QgYXZhaWxhYmxlLiBQbGVhc2UgZmlsZSBhbiBpc3N1ZSEiKTtyZXR1cm57YWxpYXM6UyxuYW1lOkYsdmFsdWU6eWV9fXRocm93IG5ldyBhZSgi''@;'; put 'put ''aW50cmluc2ljICIrVisiIGRvZXMgbm90IGV4aXN0ISIpfTtVLmV4cG9ydHM9ZnVuY3Rpb24oVixUKXtpZigic3RyaW5nIiE9dHlwZW9mIFZ8fDA9PT1WLmxlbmd0aCl0aHJvdyBuZXcgVygiaW50cmluc2ljIG5hbWUgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmciKTtpZihhcmd1bWVudHMu''@;'; put 'put ''bGVuZ3RoPjEmJiJib29sZWFuIiE9dHlwZW9mIFQpdGhyb3cgbmV3IFcoJyJhbGxvd01pc3NpbmciIGFyZ3VtZW50IG11c3QgYmUgYSBib29sZWFuJyk7aWYobnVsbD09PXooL14lP1teJV0qJT8kL2csVikpdGhyb3cgbmV3IGFlKCJgJWAgbWF5IG5vdCBiZSBwcmVzZW50IGFueXdoZXJlIGJ1''@;'; put 'put ''dCBhdCB0aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YgdGhlIGludHJpbnNpYyBuYW1lIik7dmFyIFM9eChWKSxGPVMubGVuZ3RoPjA/U1swXToiIix5ZT1QKCIlIitGKyIlIixUKSxDZT15ZS5uYW1lLERlPXllLnZhbHVlLFBlPSExLFFlPXllLmFsaWFzO1FlJiYoRj1RZVswXSxNZShTLFRlKFsw''@;'; put 'put ''LDFdLFFlKSkpO2Zvcih2YXIgJGU9MSxndD0hMDskZTxTLmxlbmd0aDskZSs9MSl7dmFyIHd0PVNbJGVdLG10PU8od3QsMCwxKSx2dD1PKHd0LC0xKTtpZigoJyInPT09bXR8fCInIj09PW10fHwiYCI9PT1tdHx8JyInPT09dnR8fCInIj09PXZ0fHwiYCI9PT12dCkmJm10IT09dnQpdGhyb3cg''@;'; put 'put ''bmV3IGFlKCJwcm9wZXJ0eSBuYW1lcyB3aXRoIHF1b3RlcyBtdXN0IGhhdmUgbWF0Y2hpbmcgcXVvdGVzIik7aWYoImNvbnN0cnVjdG9yIiE9PXd0JiZndHx8KFBlPSEwKSxJZSh2ZSxDZT0iJSIrKEYrPSIuIit3dCkrIiUiKSlEZT12ZVtDZV07ZWxzZSBpZihudWxsIT1EZSl7aWYoISh3dCBp''@;'; put 'put ''biBEZSkpe2lmKCFUKXRocm93IG5ldyBXKCJiYXNlIGludHJpbnNpYyBmb3IgIitWKyIgZXhpc3RzLCBidXQgdGhlIHByb3BlcnR5IGlzIG5vdCBhdmFpbGFibGUuIik7cmV0dXJufWlmKHRlJiYkZSsxPj1TLmxlbmd0aCl7dmFyIEF0PXRlKERlLHd0KTtEZT0oZ3Q9ISFBdCkmJiJnZXQiaW4g''@;'; put 'put ''QXQmJiEoIm9yaWdpbmFsVmFsdWUiaW4gQXQuZ2V0KT9BdC5nZXQ6RGVbd3RdfWVsc2UgZ3Q9SWUoRGUsd3QpLERlPURlW3d0XTtndCYmIVBlJiYodmVbQ2VdPURlKX19cmV0dXJuIERlfX0sNjc3MjooVSxRLGopPT57dmFyIHJlPWooNDE1NSk7ZnVuY3Rpb24gYWUoZGUsdmUpe3JldHVybiBP''@;'; put 'put ''YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGUsdmUpfVEuc2V0b3B0cz1mdW5jdGlvbihkZSx2ZSxBZSl7aWYoQWV8fChBZT17fSksQWUubWF0Y2hCYXNlJiYtMT09PXZlLmluZGV4T2YoIi8iKSl7aWYoQWUubm9nbG9ic3Rhcil0aHJvdyBuZXcgRXJyb3IoImJhc2UgbWF0''@;'; put 'put ''Y2hpbmcgcmVxdWlyZXMgZ2xvYnN0YXIiKTt2ZT0iKiovIit2ZX12YXIgU2U7ZGUuc2lsZW50PSEhQWUuc2lsZW50LGRlLnBhdHRlcm49dmUsZGUuc3RyaWN0PSExIT09QWUuc3RyaWN0LGRlLnJlYWxwYXRoPSEhQWUucmVhbHBhdGgsZGUucmVhbHBhdGhDYWNoZT1BZS5yZWFscGF0aENhY2hl''@;'; put 'put ''fHxPYmplY3QuY3JlYXRlKG51bGwpLGRlLmZvbGxvdz0hIUFlLmZvbGxvdyxkZS5kb3Q9ISFBZS5kb3QsZGUubWFyaz0hIUFlLm1hcmssZGUubm9kaXI9ISFBZS5ub2RpcixkZS5ub2RpciYmKGRlLm1hcms9ITApLGRlLnN5bmM9ISFBZS5zeW5jLGRlLm5vdW5pcXVlPSEhQWUubm91bmlxdWUs''@;'; put 'put ''ZGUubm9udWxsPSEhQWUubm9udWxsLGRlLm5vc29ydD0hIUFlLm5vc29ydCxkZS5ub2Nhc2U9ISFBZS5ub2Nhc2UsZGUuc3RhdD0hIUFlLnN0YXQsZGUubm9wcm9jZXNzPSEhQWUubm9wcm9jZXNzLGRlLmFic29sdXRlPSEhQWUuYWJzb2x1dGUsZGUuZnM9QWUuZnN8fFksZGUubWF4TGVuZ3Ro''@;'; put 'put ''PUFlLm1heExlbmd0aHx8MS8wLGRlLmNhY2hlPUFlLmNhY2hlfHxPYmplY3QuY3JlYXRlKG51bGwpLGRlLnN0YXRDYWNoZT1BZS5zdGF0Q2FjaGV8fE9iamVjdC5jcmVhdGUobnVsbCksZGUuc3ltbGlua3M9QWUuc3ltbGlua3N8fE9iamVjdC5jcmVhdGUobnVsbCksKFNlPWRlKS5pZ25vcmU9''@;'; put 'put ''QWUuaWdub3JlfHxbXSxBcnJheS5pc0FycmF5KFNlLmlnbm9yZSl8fChTZS5pZ25vcmU9W1NlLmlnbm9yZV0pLFNlLmlnbm9yZS5sZW5ndGgmJihTZS5pZ25vcmU9U2UuaWdub3JlLm1hcChzZSkpLGRlLmNoYW5nZWRDd2Q9ITE7dmFyIGtlPXJlLmN3ZCgpO2FlKEFlLCJjd2QiKT8oZGUuY3dk''@;'; put 'put ''PVcucmVzb2x2ZShBZS5jd2QpLGRlLmNoYW5nZWRDd2Q9ZGUuY3dkIT09a2UpOmRlLmN3ZD1rZSxkZS5yb290PUFlLnJvb3R8fFcucmVzb2x2ZShkZS5jd2QsIi8iKSxkZS5yb290PVcucmVzb2x2ZShkZS5yb290KSwid2luMzIiPT09cmUucGxhdGZvcm0mJihkZS5yb290PWRlLnJvb3QucmVw''@;'; put 'put ''bGFjZSgvXFwvZywiLyIpKSxkZS5jd2RBYnM9dGUoZGUuY3dkKT9kZS5jd2Q6b2UoZGUsZGUuY3dkKSwid2luMzIiPT09cmUucGxhdGZvcm0mJihkZS5jd2RBYnM9ZGUuY3dkQWJzLnJlcGxhY2UoL1xcL2csIi8iKSksZGUubm9tb3VudD0hIUFlLm5vbW91bnQsQWUubm9uZWdhdGU9ITAsQWUu''@;'; put 'put ''bm9jb21tZW50PSEwLEFlLmFsbG93V2luZG93c0VzY2FwZT0hMSxkZS5taW5pbWF0Y2g9bmV3IEsodmUsQWUpLGRlLm9wdGlvbnM9ZGUubWluaW1hdGNoLm9wdGlvbnN9LFEub3duUHJvcD1hZSxRLm1ha2VBYnM9b2UsUS5maW5pc2g9ZnVuY3Rpb24oZGUpe2Zvcih2YXIgdmU9ZGUubm91bmlx''@;'; put 'put ''dWUsQWU9dmU/W106T2JqZWN0LmNyZWF0ZShudWxsKSxrZT0wLFNlPWRlLm1hdGNoZXMubGVuZ3RoO2tlPFNlO2tlKyspe3ZhciBJZT1kZS5tYXRjaGVzW2tlXTtpZihJZSYmMCE9PU9iamVjdC5rZXlzKEllKS5sZW5ndGgpe3ZhciBUZT1PYmplY3Qua2V5cyhJZSk7dmU/QWUucHVzaC5hcHBs''@;'; put 'put ''eShBZSxUZSk6VGUuZm9yRWFjaChmdW5jdGlvbihoZSl7QWVbaGVdPSEwfSl9ZWxzZSBpZihkZS5ub251bGwpe3ZhciBNZT1kZS5taW5pbWF0Y2guZ2xvYlNldFtrZV07dmU/QWUucHVzaChNZSk6QWVbTWVdPSEwfX1pZih2ZXx8KEFlPU9iamVjdC5rZXlzKEFlKSksZGUubm9zb3J0fHwoQWU9''@;'; put 'put ''QWUuc29ydChKKSksZGUubWFyayl7Zm9yKGtlPTA7a2U8QWUubGVuZ3RoO2tlKyspQWVba2VdPWRlLl9tYXJrKEFlW2tlXSk7ZGUubm9kaXImJihBZT1BZS5maWx0ZXIoZnVuY3Rpb24oaGUpe3ZhciBPPSEvXC8kLy50ZXN0KGhlKSx6PWRlLmNhY2hlW2hlXXx8ZGUuY2FjaGVbb2UoZGUsaGUp''@;'; put 'put ''XTtyZXR1cm4gTyYmeiYmKE89IkRJUiIhPT16JiYhQXJyYXkuaXNBcnJheSh6KSksT30pKX1kZS5pZ25vcmUubGVuZ3RoJiYoQWU9QWUuZmlsdGVyKGZ1bmN0aW9uKGhlKXtyZXR1cm4hY2UoZGUsaGUpfSkpLGRlLmZvdW5kPUFlfSxRLm1hcms9ZnVuY3Rpb24oZGUsdmUpe3ZhciBBZT1vZShk''@;'; put 'put ''ZSx2ZSksa2U9ZGUuY2FjaGVbQWVdLFNlPXZlO2lmKGtlKXt2YXIgSWU9IkRJUiI9PT1rZXx8QXJyYXkuaXNBcnJheShrZSksVGU9Ii8iPT09dmUuc2xpY2UoLTEpO2lmKEllJiYhVGU/U2UrPSIvIjohSWUmJlRlJiYoU2U9U2Uuc2xpY2UoMCwtMSkpLFNlIT09dmUpe3ZhciBNZT1vZShkZSxT''@;'; put 'put ''ZSk7ZGUuc3RhdENhY2hlW01lXT1kZS5zdGF0Q2FjaGVbQWVdLGRlLmNhY2hlW01lXT1kZS5jYWNoZVtBZV19fXJldHVybiBTZX0sUS5pc0lnbm9yZWQ9Y2UsUS5jaGlsZHJlbklnbm9yZWQ9ZnVuY3Rpb24oZGUsdmUpe3JldHVybiEhZGUuaWdub3JlLmxlbmd0aCYmZGUuaWdub3JlLnNvbWUo''@;'; put 'put ''ZnVuY3Rpb24oQWUpe3JldHVybiEoIUFlLmdtYXRjaGVyfHwhQWUuZ21hdGNoZXIubWF0Y2godmUpKX0pfTt2YXIgWT1qKDM3MTApLFc9aigyNTIwKSxOPWooMTE3MSksdGU9aig0MDk1KSxLPU4uTWluaW1hdGNoO2Z1bmN0aW9uIEooZGUsdmUpe3JldHVybiBkZS5sb2NhbGVDb21wYXJlKHZl''@;'; put 'put ''LCJlbiIpfWZ1bmN0aW9uIHNlKGRlKXt2YXIgdmU9bnVsbDtpZigiLyoqIj09PWRlLnNsaWNlKC0zKSl7dmFyIEFlPWRlLnJlcGxhY2UoLyhcL1wqXCopKyQvLCIiKTt2ZT1uZXcgSyhBZSx7ZG90OiEwfSl9cmV0dXJue21hdGNoZXI6bmV3IEsoZGUse2RvdDohMH0pLGdtYXRjaGVyOnZlfX1m''@;'; put 'put ''dW5jdGlvbiBvZShkZSx2ZSl7dmFyIEFlPXZlO3JldHVybiBBZT0iLyI9PT12ZS5jaGFyQXQoMCk/Vy5qb2luKGRlLnJvb3QsdmUpOnRlKHZlKXx8IiI9PT12ZT92ZTpkZS5jaGFuZ2VkQ3dkP1cucmVzb2x2ZShkZS5jd2QsdmUpOlcucmVzb2x2ZSh2ZSksIndpbjMyIj09PXJlLnBsYXRmb3Jt''@;'; put 'put ''JiYoQWU9QWUucmVwbGFjZSgvXFwvZywiLyIpKSxBZX1mdW5jdGlvbiBjZShkZSx2ZSl7cmV0dXJuISFkZS5pZ25vcmUubGVuZ3RoJiZkZS5pZ25vcmUuc29tZShmdW5jdGlvbihBZSl7cmV0dXJuIEFlLm1hdGNoZXIubWF0Y2godmUpfHwhKCFBZS5nbWF0Y2hlcnx8IUFlLmdtYXRjaGVyLm1h''@;'; put 'put ''dGNoKHZlKSl9KX19LDI4ODQ6KFUsUSxqKT0+e3ZhciByZT1qKDQxNTUpLGFlPWooNTEwOCk7VS5leHBvcnRzPVRlO3ZhciBZPWooNzMzNCksVz1qKDExNzEpLE49aig1NzE3KSx0ZT1qKDcxODcpLkV2ZW50RW1pdHRlcixLPWooMjUyMCksSj1qKDkyODIpLHNlPWooNDA5NSksb2U9aig0NzUx''@;'; put 'put ''KSxjZT1qKDY3NzIpLGRlPWNlLnNldG9wdHMsdmU9Y2Uub3duUHJvcCxBZT1qKDc4NDQpLGtlPShqKDk1MzkpLGNlLmNoaWxkcmVuSWdub3JlZCksU2U9Y2UuaXNJZ25vcmVkLEllPWooNzc4KTtmdW5jdGlvbiBUZShPLHosZWUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB6JiYoZWU9eix6PXt9''@;'; put 'put ''KSx6fHwoej17fSksei5zeW5jKXtpZihlZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBwcm92aWRlZCB0byBzeW5jIGdsb2IiKTtyZXR1cm4gb2UoTyx6KX1yZXR1cm4gbmV3IGhlKE8seixlZSl9VGUuc3luYz1vZTt2YXIgTWU9VGUuR2xvYlN5bmM9b2UuR2xvYlN5bmM7ZnVuY3Rp''@;'; put 'put ''b24gaGUoTyx6LGVlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgeiYmKGVlPXosej1udWxsKSx6JiZ6LnN5bmMpe2lmKGVlKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIHByb3ZpZGVkIHRvIHN5bmMgZ2xvYiIpO3JldHVybiBuZXcgTWUoTyx6KX1pZighKHRoaXMgaW5zdGFuY2VvZiBo''@;'; put 'put ''ZSkpcmV0dXJuIG5ldyBoZShPLHosZWUpO2RlKHRoaXMsTyx6KSx0aGlzLl9kaWRSZWFsUGF0aD0hMTt2YXIgbmU9dGhpcy5taW5pbWF0Y2guc2V0Lmxlbmd0aDt0aGlzLm1hdGNoZXM9bmV3IEFycmF5KG5lKSwiZnVuY3Rpb24iPT10eXBlb2YgZWUmJihlZT1JZShlZSksdGhpcy5vbigiZXJy''@;'; put 'put ''b3IiLGVlKSx0aGlzLm9uKCJlbmQiLGZ1bmN0aW9uKFQpe2VlKG51bGwsVCl9KSk7dmFyIHg9dGhpcztpZih0aGlzLl9wcm9jZXNzaW5nPTAsdGhpcy5fZW1pdFF1ZXVlPVtdLHRoaXMuX3Byb2Nlc3NRdWV1ZT1bXSx0aGlzLnBhdXNlZD0hMSx0aGlzLm5vcHJvY2VzcylyZXR1cm4gdGhpcztp''@;'; put 'put ''ZigwPT09bmUpcmV0dXJuIFYoKTtmb3IodmFyIFA9MDtQPG5lO1ArKyl0aGlzLl9wcm9jZXNzKHRoaXMubWluaW1hdGNoLnNldFtQXSxQLCExLFYpO2Z1bmN0aW9uIFYoKXstLXguX3Byb2Nlc3NpbmcseC5fcHJvY2Vzc2luZzw9MCYmeC5fZmluaXNoKCl9fVRlLmdsb2I9VGUsVGUuaGFzTWFn''@;'; put 'put ''aWM9ZnVuY3Rpb24oTyx6KXt2YXIgZWU9ZnVuY3Rpb24oUCxWKXtpZihudWxsPT09Vnx8Im9iamVjdCIhPXR5cGVvZiBWKXJldHVybiBQO2Zvcih2YXIgVD1PYmplY3Qua2V5cyhWKSxTPVQubGVuZ3RoO1MtLTspUFtUW1NdXT1WW1RbU11dO3JldHVybiBQfSh7fSx6KTtlZS5ub3Byb2Nlc3M9''@;'; put 'put ''ITA7dmFyIG5lPW5ldyBoZShPLGVlKS5taW5pbWF0Y2guc2V0O2lmKCFPKXJldHVybiExO2lmKG5lLmxlbmd0aD4xKXJldHVybiEwO2Zvcih2YXIgeD0wO3g8bmVbMF0ubGVuZ3RoO3grKylpZigic3RyaW5nIiE9dHlwZW9mIG5lWzBdW3hdKXJldHVybiEwO3JldHVybiExfSxUZS5HbG9iPWhl''@;'; put 'put ''LE4oaGUsdGUpLGhlLnByb3RvdHlwZS5fZmluaXNoPWZ1bmN0aW9uKCl7aWYoSih0aGlzIGluc3RhbmNlb2YgaGUpLCF0aGlzLmFib3J0ZWQpe2lmKHRoaXMucmVhbHBhdGgmJiF0aGlzLl9kaWRSZWFscGF0aClyZXR1cm4gdGhpcy5fcmVhbHBhdGgoKTtjZS5maW5pc2godGhpcyksdGhpcy5l''@;'; put 'put ''bWl0KCJlbmQiLHRoaXMuZm91bmQpfX0saGUucHJvdG90eXBlLl9yZWFscGF0aD1mdW5jdGlvbigpe2lmKCF0aGlzLl9kaWRSZWFscGF0aCl7dGhpcy5fZGlkUmVhbHBhdGg9ITA7dmFyIE89dGhpcy5tYXRjaGVzLmxlbmd0aDtpZigwPT09TylyZXR1cm4gdGhpcy5fZmluaXNoKCk7Zm9yKHZh''@;'; put 'put ''ciB6PXRoaXMsZWU9MDtlZTx0aGlzLm1hdGNoZXMubGVuZ3RoO2VlKyspdGhpcy5fcmVhbHBhdGhTZXQoZWUsbmUpfWZ1bmN0aW9uIG5lKCl7MD09LS1PJiZ6Ll9maW5pc2goKX19LGhlLnByb3RvdHlwZS5fcmVhbHBhdGhTZXQ9ZnVuY3Rpb24oTyx6KXt2YXIgZWU9dGhpcy5tYXRjaGVzW09d''@;'; put 'put ''O2lmKCFlZSlyZXR1cm4geigpO3ZhciBuZT1PYmplY3Qua2V5cyhlZSkseD10aGlzLFA9bmUubGVuZ3RoO2lmKDA9PT1QKXJldHVybiB6KCk7dmFyIFY9dGhpcy5tYXRjaGVzW09dPU9iamVjdC5jcmVhdGUobnVsbCk7bmUuZm9yRWFjaChmdW5jdGlvbihULFMpe1Q9eC5fbWFrZUFicyhUKSxZ''@;'; put 'put ''LnJlYWxwYXRoKFQseC5yZWFscGF0aENhY2hlLGZ1bmN0aW9uKEYseWUpe0Y/InN0YXQiPT09Ri5zeXNjYWxsP1ZbVF09ITA6eC5lbWl0KCJlcnJvciIsRik6Vlt5ZV09ITAsMD09LS1QJiYoeC5tYXRjaGVzW09dPVYseigpKX0pfSl9LGhlLnByb3RvdHlwZS5fbWFyaz1mdW5jdGlvbihPKXty''@;'; put 'put ''ZXR1cm4gY2UubWFyayh0aGlzLE8pfSxoZS5wcm90b3R5cGUuX21ha2VBYnM9ZnVuY3Rpb24oTyl7cmV0dXJuIGNlLm1ha2VBYnModGhpcyxPKX0saGUucHJvdG90eXBlLmFib3J0PWZ1bmN0aW9uKCl7dGhpcy5hYm9ydGVkPSEwLHRoaXMuZW1pdCgiYWJvcnQiKX0saGUucHJvdG90eXBlLnBh''@;'; put 'put ''dXNlPWZ1bmN0aW9uKCl7dGhpcy5wYXVzZWR8fCh0aGlzLnBhdXNlZD0hMCx0aGlzLmVtaXQoInBhdXNlIikpfSxoZS5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7aWYodGhpcy5wYXVzZWQpe2lmKHRoaXMuZW1pdCgicmVzdW1lIiksdGhpcy5wYXVzZWQ9ITEsdGhpcy5fZW1pdFF1ZXVl''@;'; put 'put ''Lmxlbmd0aCl7dmFyIE89dGhpcy5fZW1pdFF1ZXVlLnNsaWNlKDApO3RoaXMuX2VtaXRRdWV1ZS5sZW5ndGg9MDtmb3IodmFyIHo9MDt6PE8ubGVuZ3RoO3orKyl7dmFyIGVlPU9bel07dGhpcy5fZW1pdE1hdGNoKGVlWzBdLGVlWzFdKX19aWYodGhpcy5fcHJvY2Vzc1F1ZXVlLmxlbmd0aCl7''@;'; put 'put ''dmFyIG5lPXRoaXMuX3Byb2Nlc3NRdWV1ZS5zbGljZSgwKTtmb3IodGhpcy5fcHJvY2Vzc1F1ZXVlLmxlbmd0aD0wLHo9MDt6PG5lLmxlbmd0aDt6Kyspe3ZhciB4PW5lW3pdO3RoaXMuX3Byb2Nlc3NpbmctLSx0aGlzLl9wcm9jZXNzKHhbMF0seFsxXSx4WzJdLHhbM10pfX19fSxoZS5wcm90''@;'; put 'put ''b3R5cGUuX3Byb2Nlc3M9ZnVuY3Rpb24oTyx6LGVlLG5lKXtpZihKKHRoaXMgaW5zdGFuY2VvZiBoZSksSigiZnVuY3Rpb24iPT10eXBlb2YgbmUpLCF0aGlzLmFib3J0ZWQpaWYodGhpcy5fcHJvY2Vzc2luZysrLHRoaXMucGF1c2VkKXRoaXMuX3Byb2Nlc3NRdWV1ZS5wdXNoKFtPLHosZWUs''@;'; put 'put ''bmVdKTtlbHNle2Zvcih2YXIgeCxQPTA7InN0cmluZyI9PXR5cGVvZiBPW1BdOylQKys7c3dpdGNoKFApe2Nhc2UgTy5sZW5ndGg6cmV0dXJuIHZvaWQgdGhpcy5fcHJvY2Vzc1NpbXBsZShPLmpvaW4oIi8iKSx6LG5lKTtjYXNlIDA6eD1udWxsO2JyZWFrO2RlZmF1bHQ6eD1PLnNsaWNlKDAs''@;'; put 'put ''UCkuam9pbigiLyIpfXZhciBWLFQ9Ty5zbGljZShQKTtudWxsPT09eD9WPSIuIjooKHNlKHgpfHxzZShPLm1hcChmdW5jdGlvbihGKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIEY/RjoiWypdIn0pLmpvaW4oIi8iKSkpJiYoeCYmc2UoeCl8fCh4PSIvIit4KSksVj14KTt2YXIgUz10aGlzLl9t''@;'; put 'put ''YWtlQWJzKFYpO2lmKGtlKHRoaXMsVikpcmV0dXJuIG5lKCk7VFswXT09PVcuR0xPQlNUQVI/dGhpcy5fcHJvY2Vzc0dsb2JTdGFyKHgsVixTLFQseixlZSxuZSk6dGhpcy5fcHJvY2Vzc1JlYWRkaXIoeCxWLFMsVCx6LGVlLG5lKX19LGhlLnByb3RvdHlwZS5fcHJvY2Vzc1JlYWRkaXI9ZnVu''@;'; put 'put ''Y3Rpb24oTyx6LGVlLG5lLHgsUCxWKXt2YXIgVD10aGlzO3RoaXMuX3JlYWRkaXIoZWUsUCxmdW5jdGlvbihTLEYpe3JldHVybiBULl9wcm9jZXNzUmVhZGRpcjIoTyx6LGVlLG5lLHgsUCxGLFYpfSl9LGhlLnByb3RvdHlwZS5fcHJvY2Vzc1JlYWRkaXIyPWZ1bmN0aW9uKE8seixlZSxuZSx4''@;'; put 'put ''LFAsVixUKXtpZighVilyZXR1cm4gVCgpO2Zvcih2YXIgUz1uZVswXSxGPSEhdGhpcy5taW5pbWF0Y2gubmVnYXRlLENlPXRoaXMuZG90fHwiLiI9PT1TLl9nbG9iLmNoYXJBdCgwKSxEZT1bXSxQZT0wO1BlPFYubGVuZ3RoO1BlKyspKCIuIiE9PSgkZT1WW1BlXSkuY2hhckF0KDApfHxDZSkm''@;'; put 'put ''JihGJiYhTz8hJGUubWF0Y2goUyk6JGUubWF0Y2goUykpJiZEZS5wdXNoKCRlKTt2YXIgUWU9RGUubGVuZ3RoO2lmKDA9PT1RZSlyZXR1cm4gVCgpO2lmKDE9PT1uZS5sZW5ndGgmJiF0aGlzLm1hcmsmJiF0aGlzLnN0YXQpe2Zvcih0aGlzLm1hdGNoZXNbeF18fCh0aGlzLm1hdGNoZXNbeF09''@;'; put 'put ''T2JqZWN0LmNyZWF0ZShudWxsKSksUGU9MDtQZTxRZTtQZSsrKXt2YXIgJGU9RGVbUGVdO08mJigkZT0iLyIhPT1PP08rIi8iKyRlOk8rJGUpLCIvIiE9PSRlLmNoYXJBdCgwKXx8dGhpcy5ub21vdW50fHwoJGU9Sy5qb2luKHRoaXMucm9vdCwkZSkpLHRoaXMuX2VtaXRNYXRjaCh4LCRlKX1y''@;'; put 'put ''ZXR1cm4gVCgpfWZvcihuZS5zaGlmdCgpLFBlPTA7UGU8UWU7UGUrKykkZT1EZVtQZV0sTyYmKCRlPSIvIiE9PU8/TysiLyIrJGU6TyskZSksdGhpcy5fcHJvY2VzcyhbJGVdLmNvbmNhdChuZSkseCxQLFQpO1QoKX0saGUucHJvdG90eXBlLl9lbWl0TWF0Y2g9ZnVuY3Rpb24oTyx6KXtpZigh''@;'; put 'put ''dGhpcy5hYm9ydGVkJiYhU2UodGhpcyx6KSlpZih0aGlzLnBhdXNlZCl0aGlzLl9lbWl0UXVldWUucHVzaChbTyx6XSk7ZWxzZXt2YXIgZWU9c2Uoeik/ejp0aGlzLl9tYWtlQWJzKHopO2lmKHRoaXMubWFyayYmKHo9dGhpcy5fbWFyayh6KSksdGhpcy5hYnNvbHV0ZSYmKHo9ZWUpLCF0aGlz''@;'; put 'put ''Lm1hdGNoZXNbT11bel0pe2lmKHRoaXMubm9kaXIpe3ZhciBuZT10aGlzLmNhY2hlW2VlXTtpZigiRElSIj09PW5lfHxBcnJheS5pc0FycmF5KG5lKSlyZXR1cm59dGhpcy5tYXRjaGVzW09dW3pdPSEwO3ZhciB4PXRoaXMuc3RhdENhY2hlW2VlXTt4JiZ0aGlzLmVtaXQoInN0YXQiLHoseCks''@;'; put 'put ''dGhpcy5lbWl0KCJtYXRjaCIseil9fX0saGUucHJvdG90eXBlLl9yZWFkZGlySW5HbG9iU3Rhcj1mdW5jdGlvbihPLHope2lmKCF0aGlzLmFib3J0ZWQpe2lmKHRoaXMuZm9sbG93KXJldHVybiB0aGlzLl9yZWFkZGlyKE8sITEseik7dmFyIGVlPXRoaXMsbmU9QWUoImxzdGF0XDAiK08sZnVu''@;'; put 'put ''Y3Rpb24oeCxQKXtpZih4JiYiRU5PRU5UIj09PXguY29kZSlyZXR1cm4geigpO3ZhciBWPVAmJlAuaXNTeW1ib2xpY0xpbmsoKTtlZS5zeW1saW5rc1tPXT1WLFZ8fCFQfHxQLmlzRGlyZWN0b3J5KCk/ZWUuX3JlYWRkaXIoTywhMSx6KTooZWUuY2FjaGVbT109IkZJTEUiLHooKSl9KTtuZSYm''@;'; put 'put ''ZWUuZnMubHN0YXQoTyxuZSl9fSxoZS5wcm90b3R5cGUuX3JlYWRkaXI9ZnVuY3Rpb24oTyx6LGVlKXtpZighdGhpcy5hYm9ydGVkJiYoZWU9QWUoInJlYWRkaXJcMCIrTysiXDAiK3osZWUpKSl7aWYoeiYmIXZlKHRoaXMuc3ltbGlua3MsTykpcmV0dXJuIHRoaXMuX3JlYWRkaXJJbkdsb2JT''@;'; put 'put ''dGFyKE8sZWUpO2lmKHZlKHRoaXMuY2FjaGUsTykpe3ZhciBuZT10aGlzLmNhY2hlW09dO2lmKCFuZXx8IkZJTEUiPT09bmUpcmV0dXJuIGVlKCk7aWYoQXJyYXkuaXNBcnJheShuZSkpcmV0dXJuIGVlKG51bGwsbmUpfXRoaXMuZnMucmVhZGRpcihPLCh4PXRoaXMsUD1PLFY9ZWUsZnVuY3Rp''@;'; put 'put ''b24oVCxTKXtUP3guX3JlYWRkaXJFcnJvcihQLFQsVik6eC5fcmVhZGRpckVudHJpZXMoUCxTLFYpfSkpfXZhciB4LFAsVn0saGUucHJvdG90eXBlLl9yZWFkZGlyRW50cmllcz1mdW5jdGlvbihPLHosZWUpe2lmKCF0aGlzLmFib3J0ZWQpe2lmKCF0aGlzLm1hcmsmJiF0aGlzLnN0YXQpZm9y''@;'; put 'put ''KHZhciBuZT0wO25lPHoubGVuZ3RoO25lKyspe3ZhciB4PXpbbmVdO3RoaXMuY2FjaGVbeD0iLyI9PT1PP08reDpPKyIvIit4XT0hMH1yZXR1cm4gdGhpcy5jYWNoZVtPXT16LGVlKG51bGwseil9fSxoZS5wcm90b3R5cGUuX3JlYWRkaXJFcnJvcj1mdW5jdGlvbihPLHosZWUpe2lmKCF0aGlz''@;'; put 'put ''LmFib3J0ZWQpe3N3aXRjaCh6LmNvZGUpe2Nhc2UiRU5PVFNVUCI6Y2FzZSJFTk9URElSIjp2YXIgbmU9dGhpcy5fbWFrZUFicyhPKTtpZih0aGlzLmNhY2hlW25lXT0iRklMRSIsbmU9PT10aGlzLmN3ZEFicyl7dmFyIHg9bmV3IEVycm9yKHouY29kZSsiIGludmFsaWQgY3dkICIrdGhpcy5j''@;'; put 'put ''d2QpO3gucGF0aD10aGlzLmN3ZCx4LmNvZGU9ei5jb2RlLHRoaXMuZW1pdCgiZXJyb3IiLHgpLHRoaXMuYWJvcnQoKX1icmVhaztjYXNlIkVOT0VOVCI6Y2FzZSJFTE9PUCI6Y2FzZSJFTkFNRVRPT0xPTkciOmNhc2UiVU5LTk9XTiI6dGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJzKE8pXT0hMTti''@;'; put 'put ''cmVhaztkZWZhdWx0OnRoaXMuY2FjaGVbdGhpcy5fbWFrZUFicyhPKV09ITEsdGhpcy5zdHJpY3QmJih0aGlzLmVtaXQoImVycm9yIix6KSx0aGlzLmFib3J0KCkpLHRoaXMuc2lsZW50fHxhZS5lcnJvcigiZ2xvYiBlcnJvciIseil9cmV0dXJuIGVlKCl9fSxoZS5wcm90b3R5cGUuX3Byb2Nl''@;'; put 'put ''c3NHbG9iU3Rhcj1mdW5jdGlvbihPLHosZWUsbmUseCxQLFYpe3ZhciBUPXRoaXM7dGhpcy5fcmVhZGRpcihlZSxQLGZ1bmN0aW9uKFMsRil7VC5fcHJvY2Vzc0dsb2JTdGFyMihPLHosZWUsbmUseCxQLEYsVil9KX0saGUucHJvdG90eXBlLl9wcm9jZXNzR2xvYlN0YXIyPWZ1bmN0aW9uKE8s''@;'; put 'put ''eixlZSxuZSx4LFAsVixUKXtpZighVilyZXR1cm4gVCgpO3ZhciBTPW5lLnNsaWNlKDEpLEY9Tz9bT106W10seWU9Ri5jb25jYXQoUyk7dGhpcy5fcHJvY2Vzcyh5ZSx4LCExLFQpO3ZhciBEZT1WLmxlbmd0aDtpZih0aGlzLnN5bWxpbmtzW2VlXSYmUClyZXR1cm4gVCgpO2Zvcih2YXIgUGU9''@;'; put 'put ''MDtQZTxEZTtQZSsrKWlmKCIuIiE9PVZbUGVdLmNoYXJBdCgwKXx8dGhpcy5kb3Qpe3ZhciBRZT1GLmNvbmNhdChWW1BlXSxTKTt0aGlzLl9wcm9jZXNzKFFlLHgsITAsVCk7dmFyICRlPUYuY29uY2F0KFZbUGVdLG5lKTt0aGlzLl9wcm9jZXNzKCRlLHgsITAsVCl9VCgpfSxoZS5wcm90b3R5''@;'; put 'put ''cGUuX3Byb2Nlc3NTaW1wbGU9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU9dGhpczt0aGlzLl9zdGF0KE8sZnVuY3Rpb24oeCxQKXtuZS5fcHJvY2Vzc1NpbXBsZTIoTyx6LHgsUCxlZSl9KX0saGUucHJvdG90eXBlLl9wcm9jZXNzU2ltcGxlMj1mdW5jdGlvbihPLHosZWUsbmUseCl7aWYodGhp''@;'; put 'put ''cy5tYXRjaGVzW3pdfHwodGhpcy5tYXRjaGVzW3pdPU9iamVjdC5jcmVhdGUobnVsbCkpLCFuZSlyZXR1cm4geCgpO2lmKE8mJnNlKE8pJiYhdGhpcy5ub21vdW50KXt2YXIgUD0vW1wvXFxdJC8udGVzdChPKTsiLyI9PT1PLmNoYXJBdCgwKT9PPUsuam9pbih0aGlzLnJvb3QsTyk6KE89Sy5y''@;'; put 'put ''ZXNvbHZlKHRoaXMucm9vdCxPKSxQJiYoTys9Ii8iKSl9IndpbjMyIj09PXJlLnBsYXRmb3JtJiYoTz1PLnJlcGxhY2UoL1xcL2csIi8iKSksdGhpcy5fZW1pdE1hdGNoKHosTykseCgpfSxoZS5wcm90b3R5cGUuX3N0YXQ9ZnVuY3Rpb24oTyx6KXt2YXIgZWU9dGhpcy5fbWFrZUFicyhPKSxu''@;'; put 'put ''ZT0iLyI9PT1PLnNsaWNlKC0xKTtpZihPLmxlbmd0aD50aGlzLm1heExlbmd0aClyZXR1cm4geigpO2lmKCF0aGlzLnN0YXQmJnZlKHRoaXMuY2FjaGUsZWUpKXt2YXIgeD10aGlzLmNhY2hlW2VlXTtpZihBcnJheS5pc0FycmF5KHgpJiYoeD0iRElSIiksIW5lfHwiRElSIj09PXgpcmV0dXJu''@;'; put 'put ''IHoobnVsbCx4KTtpZihuZSYmIkZJTEUiPT09eClyZXR1cm4geigpfXZhciBQPXRoaXMuc3RhdENhY2hlW2VlXTtpZih2b2lkIDAhPT1QKXtpZighMT09PVApcmV0dXJuIHoobnVsbCxQKTt2YXIgVj1QLmlzRGlyZWN0b3J5KCk/IkRJUiI6IkZJTEUiO3JldHVybiBuZSYmIkZJTEUiPT09Vj96''@;'; put 'put ''KCk6eihudWxsLFYsUCl9dmFyIFQ9dGhpcyxTPUFlKCJzdGF0XDAiK2VlLGZ1bmN0aW9uKEYseWUpe2lmKHllJiZ5ZS5pc1N5bWJvbGljTGluaygpKXJldHVybiBULmZzLnN0YXQoZWUsZnVuY3Rpb24oQ2UsRGUpe0NlP1QuX3N0YXQyKE8sZWUsbnVsbCx5ZSx6KTpULl9zdGF0MihPLGVlLENl''@;'; put 'put ''LERlLHopfSk7VC5fc3RhdDIoTyxlZSxGLHllLHopfSk7UyYmVC5mcy5sc3RhdChlZSxTKX0saGUucHJvdG90eXBlLl9zdGF0Mj1mdW5jdGlvbihPLHosZWUsbmUseCl7aWYoZWUmJigiRU5PRU5UIj09PWVlLmNvZGV8fCJFTk9URElSIj09PWVlLmNvZGUpKXJldHVybiB0aGlzLnN0YXRDYWNo''@;'; put 'put ''ZVt6XT0hMSx4KCk7dmFyIFA9Ii8iPT09Ty5zbGljZSgtMSk7aWYodGhpcy5zdGF0Q2FjaGVbel09bmUsIi8iPT09ei5zbGljZSgtMSkmJm5lJiYhbmUuaXNEaXJlY3RvcnkoKSlyZXR1cm4geChudWxsLCExLG5lKTt2YXIgVj0hMDtyZXR1cm4gbmUmJihWPW5lLmlzRGlyZWN0b3J5KCk/IkRJ''@;'; put 'put ''UiI6IkZJTEUiKSx0aGlzLmNhY2hlW3pdPXRoaXMuY2FjaGVbel18fFYsUCYmIkZJTEUiPT09Vj94KCk6eChudWxsLFYsbmUpfX0sNDc1MTooVSxRLGopPT57dmFyIHJlPWooNTEwOCksYWU9aig0MTU1KTtVLmV4cG9ydHM9dmUsdmUuR2xvYlN5bmM9QWU7dmFyIFk9aig3MzM0KSxXPWooMTE3''@;'; put 'put ''MSksTj0oaigyODg0KSxqKDk1MzkpLGooMjUyMCkpLHRlPWooOTI4MiksSz1qKDQwOTUpLEo9aig2NzcyKSxzZT1KLnNldG9wdHMsb2U9Si5vd25Qcm9wLGNlPUouY2hpbGRyZW5JZ25vcmVkLGRlPUouaXNJZ25vcmVkO2Z1bmN0aW9uIHZlKGtlLFNlKXtpZigiZnVuY3Rpb24iPT10eXBlb2Yg''@;'; put 'put ''U2V8fDM9PT1hcmd1bWVudHMubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbGxiYWNrIHByb3ZpZGVkIHRvIHN5bmMgZ2xvYlxuU2VlOiBodHRwczovL2dpdGh1Yi5jb20vaXNhYWNzL25vZGUtZ2xvYi9pc3N1ZXMvMTY3Iik7cmV0dXJuIG5ldyBBZShrZSxTZSkuZm91bmR9ZnVuY3Rp''@;'; put 'put ''b24gQWUoa2UsU2Upe2lmKCFrZSl0aHJvdyBuZXcgRXJyb3IoIm11c3QgcHJvdmlkZSBwYXR0ZXJuIik7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFNlfHwzPT09YXJndW1lbnRzLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBwcm92aWRlZCB0byBzeW5jIGdsb2JcblNlZTog''@;'; put 'put ''aHR0cHM6Ly9naXRodWIuY29tL2lzYWFjcy9ub2RlLWdsb2IvaXNzdWVzLzE2NyIpO2lmKCEodGhpcyBpbnN0YW5jZW9mIEFlKSlyZXR1cm4gbmV3IEFlKGtlLFNlKTtpZihzZSh0aGlzLGtlLFNlKSx0aGlzLm5vcHJvY2VzcylyZXR1cm4gdGhpczt2YXIgSWU9dGhpcy5taW5pbWF0Y2guc2V0''@;'; put 'put ''Lmxlbmd0aDt0aGlzLm1hdGNoZXM9bmV3IEFycmF5KEllKTtmb3IodmFyIFRlPTA7VGU8SWU7VGUrKyl0aGlzLl9wcm9jZXNzKHRoaXMubWluaW1hdGNoLnNldFtUZV0sVGUsITEpO3RoaXMuX2ZpbmlzaCgpfUFlLnByb3RvdHlwZS5fZmluaXNoPWZ1bmN0aW9uKCl7aWYodGUub2sodGhpcyBp''@;'; put 'put ''bnN0YW5jZW9mIEFlKSx0aGlzLnJlYWxwYXRoKXt2YXIga2U9dGhpczt0aGlzLm1hdGNoZXMuZm9yRWFjaChmdW5jdGlvbihTZSxJZSl7dmFyIFRlPWtlLm1hdGNoZXNbSWVdPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBNZSBpbiBTZSl0cnl7TWU9a2UuX21ha2VBYnMoTWUpLFRlW1ku''@;'; put 'put ''cmVhbHBhdGhTeW5jKE1lLGtlLnJlYWxwYXRoQ2FjaGUpXT0hMH1jYXRjaChoZSl7aWYoInN0YXQiIT09aGUuc3lzY2FsbCl0aHJvdyBoZTtUZVtrZS5fbWFrZUFicyhNZSldPSEwfX0pfUouZmluaXNoKHRoaXMpfSxBZS5wcm90b3R5cGUuX3Byb2Nlc3M9ZnVuY3Rpb24oa2UsU2UsSWUpe3Rl''@;'; put 'put ''Lm9rKHRoaXMgaW5zdGFuY2VvZiBBZSk7Zm9yKHZhciBUZSxNZT0wOyJzdHJpbmciPT10eXBlb2Yga2VbTWVdOylNZSsrO3N3aXRjaChNZSl7Y2FzZSBrZS5sZW5ndGg6cmV0dXJuIHZvaWQgdGhpcy5fcHJvY2Vzc1NpbXBsZShrZS5qb2luKCIvIiksU2UpO2Nhc2UgMDpUZT1udWxsO2JyZWFr''@;'; put 'put ''O2RlZmF1bHQ6VGU9a2Uuc2xpY2UoMCxNZSkuam9pbigiLyIpfXZhciBoZSxPPWtlLnNsaWNlKE1lKTtudWxsPT09VGU/aGU9Ii4iOigoSyhUZSl8fEsoa2UubWFwKGZ1bmN0aW9uKGVlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGVlP2VlOiJbKl0ifSkuam9pbigiLyIpKSkmJihUZSYmSyhU''@;'; put 'put ''ZSl8fChUZT0iLyIrVGUpKSxoZT1UZSk7dmFyIHo9dGhpcy5fbWFrZUFicyhoZSk7Y2UodGhpcyxoZSl8fChPWzBdPT09Vy5HTE9CU1RBUj90aGlzLl9wcm9jZXNzR2xvYlN0YXIoVGUsaGUseixPLFNlLEllKTp0aGlzLl9wcm9jZXNzUmVhZGRpcihUZSxoZSx6LE8sU2UsSWUpKX0sQWUucHJv''@;'; put 'put ''dG90eXBlLl9wcm9jZXNzUmVhZGRpcj1mdW5jdGlvbihrZSxTZSxJZSxUZSxNZSxoZSl7dmFyIE89dGhpcy5fcmVhZGRpcihJZSxoZSk7aWYoTyl7Zm9yKHZhciB6PVRlWzBdLGVlPSEhdGhpcy5taW5pbWF0Y2gubmVnYXRlLHg9dGhpcy5kb3R8fCIuIj09PXouX2dsb2IuY2hhckF0KDApLFA9''@;'; put 'put ''W10sVj0wO1Y8Ty5sZW5ndGg7VisrKSgiLiIhPT0oRj1PW1ZdKS5jaGFyQXQoMCl8fHgpJiYoZWUmJiFrZT8hRi5tYXRjaCh6KTpGLm1hdGNoKHopKSYmUC5wdXNoKEYpO3ZhciBUPVAubGVuZ3RoO2lmKDAhPT1UKWlmKDEhPT1UZS5sZW5ndGh8fHRoaXMubWFya3x8dGhpcy5zdGF0KWZvcihU''@;'; put 'put ''ZS5zaGlmdCgpLFY9MDtWPFQ7VisrKUY9UFtWXSx0aGlzLl9wcm9jZXNzKChrZT9ba2UsRl06W0ZdKS5jb25jYXQoVGUpLE1lLGhlKTtlbHNlIGZvcih0aGlzLm1hdGNoZXNbTWVdfHwodGhpcy5tYXRjaGVzW01lXT1PYmplY3QuY3JlYXRlKG51bGwpKSxWPTA7VjxUO1YrKyl7dmFyIEY9UFtW''@;'; put 'put ''XTtrZSYmKEY9Ii8iIT09a2Uuc2xpY2UoLTEpP2tlKyIvIitGOmtlK0YpLCIvIiE9PUYuY2hhckF0KDApfHx0aGlzLm5vbW91bnR8fChGPU4uam9pbih0aGlzLnJvb3QsRikpLHRoaXMuX2VtaXRNYXRjaChNZSxGKX19fSxBZS5wcm90b3R5cGUuX2VtaXRNYXRjaD1mdW5jdGlvbihrZSxTZSl7''@;'; put 'put ''aWYoIWRlKHRoaXMsU2UpKXt2YXIgSWU9dGhpcy5fbWFrZUFicyhTZSk7aWYodGhpcy5tYXJrJiYoU2U9dGhpcy5fbWFyayhTZSkpLHRoaXMuYWJzb2x1dGUmJihTZT1JZSksIXRoaXMubWF0Y2hlc1trZV1bU2VdKXtpZih0aGlzLm5vZGlyKXt2YXIgVGU9dGhpcy5jYWNoZVtJZV07aWYoIkRJ''@;'; put 'put ''UiI9PT1UZXx8QXJyYXkuaXNBcnJheShUZSkpcmV0dXJufXRoaXMubWF0Y2hlc1trZV1bU2VdPSEwLHRoaXMuc3RhdCYmdGhpcy5fc3RhdChTZSl9fX0sQWUucHJvdG90eXBlLl9yZWFkZGlySW5HbG9iU3Rhcj1mdW5jdGlvbihrZSl7aWYodGhpcy5mb2xsb3cpcmV0dXJuIHRoaXMuX3JlYWRk''@;'; put 'put ''aXIoa2UsITEpO3ZhciBTZSxJZTt0cnl7SWU9dGhpcy5mcy5sc3RhdFN5bmMoa2UpfWNhdGNoKE1lKXtpZigiRU5PRU5UIj09PU1lLmNvZGUpcmV0dXJuIG51bGx9dmFyIFRlPUllJiZJZS5pc1N5bWJvbGljTGluaygpO3JldHVybiB0aGlzLnN5bWxpbmtzW2tlXT1UZSxUZXx8IUllfHxJZS5p''@;'; put 'put ''c0RpcmVjdG9yeSgpP1NlPXRoaXMuX3JlYWRkaXIoa2UsITEpOnRoaXMuY2FjaGVba2VdPSJGSUxFIixTZX0sQWUucHJvdG90eXBlLl9yZWFkZGlyPWZ1bmN0aW9uKGtlLFNlKXtpZihTZSYmIW9lKHRoaXMuc3ltbGlua3Msa2UpKXJldHVybiB0aGlzLl9yZWFkZGlySW5HbG9iU3RhcihrZSk7''@;'; put 'put ''aWYob2UodGhpcy5jYWNoZSxrZSkpe3ZhciBJZT10aGlzLmNhY2hlW2tlXTtpZighSWV8fCJGSUxFIj09PUllKXJldHVybiBudWxsO2lmKEFycmF5LmlzQXJyYXkoSWUpKXJldHVybiBJZX10cnl7cmV0dXJuIHRoaXMuX3JlYWRkaXJFbnRyaWVzKGtlLHRoaXMuZnMucmVhZGRpclN5bmMoa2Up''@;'; put 'put ''KX1jYXRjaChUZSl7cmV0dXJuIHRoaXMuX3JlYWRkaXJFcnJvcihrZSxUZSksbnVsbH19LEFlLnByb3RvdHlwZS5fcmVhZGRpckVudHJpZXM9ZnVuY3Rpb24oa2UsU2Upe2lmKCF0aGlzLm1hcmsmJiF0aGlzLnN0YXQpZm9yKHZhciBJZT0wO0llPFNlLmxlbmd0aDtJZSsrKXt2YXIgVGU9U2Vb''@;'; put 'put ''SWVdO3RoaXMuY2FjaGVbVGU9Ii8iPT09a2U/a2UrVGU6a2UrIi8iK1RlXT0hMH1yZXR1cm4gdGhpcy5jYWNoZVtrZV09U2UsU2V9LEFlLnByb3RvdHlwZS5fcmVhZGRpckVycm9yPWZ1bmN0aW9uKGtlLFNlKXtzd2l0Y2goU2UuY29kZSl7Y2FzZSJFTk9UU1VQIjpjYXNlIkVOT1RESVIiOnZh''@;'; put 'put ''ciBJZT10aGlzLl9tYWtlQWJzKGtlKTtpZih0aGlzLmNhY2hlW0llXT0iRklMRSIsSWU9PT10aGlzLmN3ZEFicyl7dmFyIFRlPW5ldyBFcnJvcihTZS5jb2RlKyIgaW52YWxpZCBjd2QgIit0aGlzLmN3ZCk7dGhyb3cgVGUucGF0aD10aGlzLmN3ZCxUZS5jb2RlPVNlLmNvZGUsVGV9YnJlYWs7''@;'; put 'put ''Y2FzZSJFTk9FTlQiOmNhc2UiRUxPT1AiOmNhc2UiRU5BTUVUT09MT05HIjpjYXNlIlVOS05PV04iOnRoaXMuY2FjaGVbdGhpcy5fbWFrZUFicyhrZSldPSExO2JyZWFrO2RlZmF1bHQ6aWYodGhpcy5jYWNoZVt0aGlzLl9tYWtlQWJzKGtlKV09ITEsdGhpcy5zdHJpY3QpdGhyb3cgU2U7dGhp''@;'; put 'put ''cy5zaWxlbnR8fHJlLmVycm9yKCJnbG9iIGVycm9yIixTZSl9fSxBZS5wcm90b3R5cGUuX3Byb2Nlc3NHbG9iU3Rhcj1mdW5jdGlvbihrZSxTZSxJZSxUZSxNZSxoZSl7dmFyIE89dGhpcy5fcmVhZGRpcihJZSxoZSk7aWYoTyl7dmFyIHo9VGUuc2xpY2UoMSksZWU9a2U/W2tlXTpbXSxuZT1l''@;'; put 'put ''ZS5jb25jYXQoeik7dGhpcy5fcHJvY2VzcyhuZSxNZSwhMSk7dmFyIHg9Ty5sZW5ndGg7aWYoIXRoaXMuc3ltbGlua3NbSWVdfHwhaGUpZm9yKHZhciBQPTA7UDx4O1ArKylpZigiLiIhPT1PW1BdLmNoYXJBdCgwKXx8dGhpcy5kb3Qpe3ZhciBWPWVlLmNvbmNhdChPW1BdLHopO3RoaXMuX3By''@;'; put 'put ''b2Nlc3MoVixNZSwhMCk7dmFyIFQ9ZWUuY29uY2F0KE9bUF0sVGUpO3RoaXMuX3Byb2Nlc3MoVCxNZSwhMCl9fX0sQWUucHJvdG90eXBlLl9wcm9jZXNzU2ltcGxlPWZ1bmN0aW9uKGtlLFNlKXt2YXIgSWU9dGhpcy5fc3RhdChrZSk7aWYodGhpcy5tYXRjaGVzW1NlXXx8KHRoaXMubWF0Y2hl''@;'; put 'put ''c1tTZV09T2JqZWN0LmNyZWF0ZShudWxsKSksSWUpe2lmKGtlJiZLKGtlKSYmIXRoaXMubm9tb3VudCl7dmFyIFRlPS9bXC9cXF0kLy50ZXN0KGtlKTsiLyI9PT1rZS5jaGFyQXQoMCk/a2U9Ti5qb2luKHRoaXMucm9vdCxrZSk6KGtlPU4ucmVzb2x2ZSh0aGlzLnJvb3Qsa2UpLFRlJiYoa2Ur''@;'; put 'put ''PSIvIikpfSJ3aW4zMiI9PT1hZS5wbGF0Zm9ybSYmKGtlPWtlLnJlcGxhY2UoL1xcL2csIi8iKSksdGhpcy5fZW1pdE1hdGNoKFNlLGtlKX19LEFlLnByb3RvdHlwZS5fc3RhdD1mdW5jdGlvbihrZSl7dmFyIFNlPXRoaXMuX21ha2VBYnMoa2UpLEllPSIvIj09PWtlLnNsaWNlKC0xKTtpZihr''@;'; put 'put ''ZS5sZW5ndGg+dGhpcy5tYXhMZW5ndGgpcmV0dXJuITE7aWYoIXRoaXMuc3RhdCYmb2UodGhpcy5jYWNoZSxTZSkpe3ZhciBUZT10aGlzLmNhY2hlW1NlXTtpZihBcnJheS5pc0FycmF5KFRlKSYmKFRlPSJESVIiKSwhSWV8fCJESVIiPT09VGUpcmV0dXJuIFRlO2lmKEllJiYiRklMRSI9PT1U''@;'; put 'put ''ZSlyZXR1cm4hMX12YXIgTWU9dGhpcy5zdGF0Q2FjaGVbU2VdO2lmKCFNZSl7dmFyIGhlO3RyeXtoZT10aGlzLmZzLmxzdGF0U3luYyhTZSl9Y2F0Y2goTyl7aWYoTyYmKCJFTk9FTlQiPT09Ty5jb2RlfHwiRU5PVERJUiI9PT1PLmNvZGUpKXJldHVybiB0aGlzLnN0YXRDYWNoZVtTZV09ITEs''@;'; put 'put ''ITF9aWYoaGUmJmhlLmlzU3ltYm9saWNMaW5rKCkpdHJ5e01lPXRoaXMuZnMuc3RhdFN5bmMoU2UpfWNhdGNoKE8pe01lPWhlfWVsc2UgTWU9aGV9cmV0dXJuIHRoaXMuc3RhdENhY2hlW1NlXT1NZSxUZT0hMCxNZSYmKFRlPU1lLmlzRGlyZWN0b3J5KCk/IkRJUiI6IkZJTEUiKSx0aGlzLmNh''@;'; put 'put ''Y2hlW1NlXT10aGlzLmNhY2hlW1NlXXx8VGUsKCFJZXx8IkZJTEUiIT09VGUpJiZUZX0sQWUucHJvdG90eXBlLl9tYXJrPWZ1bmN0aW9uKGtlKXtyZXR1cm4gSi5tYXJrKHRoaXMsa2UpfSxBZS5wcm90b3R5cGUuX21ha2VBYnM9ZnVuY3Rpb24oa2Upe3JldHVybiBKLm1ha2VBYnModGhpcyxr''@;'; put 'put ''ZSl9fSw2NDU4OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPWZ1bmN0aW9uKGope2lmKG51bGw9PT1qfHwib2JqZWN0IiE9dHlwZW9mIGopcmV0dXJuIGo7aWYoaiBpbnN0YW5jZW9mIE9iamVjdCl2YXIgcmU9e19fcHJvdG9fXzpRKGopfTtlbHNlIHJlPU9iamVjdC5jcmVhdGUobnVsbCk7''@;'; put 'put ''cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGopLmZvckVhY2goZnVuY3Rpb24oYWUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShyZSxhZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGosYWUpKX0pLHJlfTt2YXIgUT1PYmplY3QuZ2V0UHJvdG90eXBlT2Z8fGZ1bmN0''@;'; put 'put ''aW9uKGope3JldHVybiBqLl9fcHJvdG9fX319LDc3OihVLFEsaik9Pnt2YXIgcmUsYWUsWT1qKDQxNTUpLFc9aig1MTA4KSxOPWooNTQ0MyksdGU9aigyMTYxKSxLPWooODUyMCksSj1qKDY0NTgpLHNlPWooOTUzOSk7ZnVuY3Rpb24gb2UoVGUsTWUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShU''@;'; put 'put ''ZSxyZSx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1lfX0pfSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wuZm9yPyhyZT1TeW1ib2wuZm9yKCJncmFjZWZ1bC1mcy5xdWV1ZSIpLGFlPVN5bWJvbC5mb3IoImdyYWNlZnVsLWZzLnByZXZpb3VzIikp''@;'; put 'put ''OihyZT0iX19fZ3JhY2VmdWwtZnMucXVldWUiLGFlPSJfX19ncmFjZWZ1bC1mcy5wcmV2aW91cyIpO3ZhciBjZSxkZT1mdW5jdGlvbigpe307ZnVuY3Rpb24gQWUoVGUpe3RlKFRlKSxUZS5ncmFjZWZ1bGlmeT1BZSxUZS5jcmVhdGVSZWFkU3RyZWFtPWZ1bmN0aW9uKFBlLFFlKXtyZXR1cm4g''@;'; put 'put ''bmV3IFRlLlJlYWRTdHJlYW0oUGUsUWUpfSxUZS5jcmVhdGVXcml0ZVN0cmVhbT1mdW5jdGlvbihQZSxRZSl7cmV0dXJuIG5ldyBUZS5Xcml0ZVN0cmVhbShQZSxRZSl9O3ZhciBNZT1UZS5yZWFkRmlsZTtUZS5yZWFkRmlsZT1mdW5jdGlvbihQZSxRZSwkZSl7cmV0dXJuImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIFFlJiYoJGU9UWUsUWU9bnVsbCksZnVuY3Rpb24gZ3Qod3QsbXQsdnQsQXQpe3JldHVybiBNZSh3dCxtdCxmdW5jdGlvbihodCl7IWh0fHwiRU1GSUxFIiE9PWh0LmNvZGUmJiJFTkZJTEUiIT09aHQuY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgdnQmJnZ0LmFwcGx5KHRoaXMsYXJn''@;'; put 'put ''dW1lbnRzKTprZShbZ3QsW3d0LG10LHZ0XSxodCxBdHx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oUGUsUWUsJGUpfTt2YXIgaGU9VGUud3JpdGVGaWxlO1RlLndyaXRlRmlsZT1mdW5jdGlvbihQZSxRZSwkZSxndCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mICRlJiYoZ3Q9JGUsJGU9''@;'; put 'put ''bnVsbCksZnVuY3Rpb24gd3QobXQsdnQsQXQsaHQsQnQpe3JldHVybiBoZShtdCx2dCxBdCxmdW5jdGlvbihvbil7IW9ufHwiRU1GSUxFIiE9PW9uLmNvZGUmJiJFTkZJTEUiIT09b24uY29kZT8iZnVuY3Rpb24iPT10eXBlb2YgaHQmJmh0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTprZShbd3Qs''@;'; put 'put ''W210LHZ0LEF0LGh0XSxvbixCdHx8RGF0ZS5ub3coKSxEYXRlLm5vdygpXSl9KX0oUGUsUWUsJGUsZ3QpfTt2YXIgTz1UZS5hcHBlbmRGaWxlO08mJihUZS5hcHBlbmRGaWxlPWZ1bmN0aW9uKFBlLFFlLCRlLGd0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgJGUmJihndD0kZSwkZT1udWxs''@;'; put 'put ''KSxmdW5jdGlvbiB3dChtdCx2dCxBdCxodCxCdCl7cmV0dXJuIE8obXQsdnQsQXQsZnVuY3Rpb24ob24peyFvbnx8IkVNRklMRSIhPT1vbi5jb2RlJiYiRU5GSUxFIiE9PW9uLmNvZGU/ImZ1bmN0aW9uIj09dHlwZW9mIGh0JiZodC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6a2UoW3d0LFttdCx2''@;'; put 'put ''dCxBdCxodF0sb24sQnR8fERhdGUubm93KCksRGF0ZS5ub3coKV0pfSl9KFBlLFFlLCRlLGd0KX0pO3ZhciB6PVRlLmNvcHlGaWxlO3omJihUZS5jb3B5RmlsZT1mdW5jdGlvbihQZSxRZSwkZSxndCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mICRlJiYoZ3Q9JGUsJGU9MCksZnVuY3Rpb24g''@;'; put 'put ''d3QobXQsdnQsQXQsaHQsQnQpe3JldHVybiB6KG10LHZ0LEF0LGZ1bmN0aW9uKG9uKXshb258fCJFTUZJTEUiIT09b24uY29kZSYmIkVORklMRSIhPT1vbi5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBodCYmaHQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmtlKFt3dCxbbXQsdnQsQXQsaHRdLG9u''@;'; put 'put ''LEJ0fHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShQZSxRZSwkZSxndCl9KTt2YXIgZWU9VGUucmVhZGRpcjtUZS5yZWFkZGlyPWZ1bmN0aW9uKFBlLFFlLCRlKXsiZnVuY3Rpb24iPT10eXBlb2YgUWUmJigkZT1RZSxRZT1udWxsKTt2YXIgZ3Q9bmUudGVzdChZLnZlcnNpb24pP2Z1bmN0''@;'; put 'put ''aW9uKG10LHZ0LEF0LGh0KXtyZXR1cm4gZWUobXQsd3QobXQsdnQsQXQsaHQpKX06ZnVuY3Rpb24obXQsdnQsQXQsaHQpe3JldHVybiBlZShtdCx2dCx3dChtdCx2dCxBdCxodCkpfTtyZXR1cm4gZ3QoUGUsUWUsJGUpO2Z1bmN0aW9uIHd0KG10LHZ0LEF0LGh0KXtyZXR1cm4gZnVuY3Rpb24o''@;'; put 'put ''QnQsb24peyFCdHx8IkVNRklMRSIhPT1CdC5jb2RlJiYiRU5GSUxFIiE9PUJ0LmNvZGU/KG9uJiZvbi5zb3J0JiZvbi5zb3J0KCksImZ1bmN0aW9uIj09dHlwZW9mIEF0JiZBdC5jYWxsKHRoaXMsQnQsb24pKTprZShbZ3QsW210LHZ0LEF0XSxCdCxodHx8RGF0ZS5ub3coKSxEYXRlLm5vdygp''@;'; put 'put ''XSl9fX07dmFyIG5lPS9edlswLTVdXC4vO2lmKCJ2MC44Ij09PVkudmVyc2lvbi5zdWJzdHIoMCw0KSl7dmFyIHg9SyhUZSk7Rj14LlJlYWRTdHJlYW0seWU9eC5Xcml0ZVN0cmVhbX12YXIgUD1UZS5SZWFkU3RyZWFtO1AmJihGLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKFAucHJvdG90eXBl''@;'; put 'put ''KSxGLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKCl7dmFyIFBlPXRoaXM7RGUoUGUucGF0aCxQZS5mbGFncyxQZS5tb2RlLGZ1bmN0aW9uKFFlLCRlKXtRZT8oUGUuYXV0b0Nsb3NlJiZQZS5kZXN0cm95KCksUGUuZW1pdCgiZXJyb3IiLFFlKSk6KFBlLmZkPSRlLFBlLmVtaXQoIm9wZW4iLCRl''@;'; put 'put ''KSxQZS5yZWFkKCkpfSl9KTt2YXIgVj1UZS5Xcml0ZVN0cmVhbTtWJiYoeWUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoVi5wcm90b3R5cGUpLHllLnByb3RvdHlwZS5vcGVuPWZ1bmN0aW9uKCl7dmFyIFBlPXRoaXM7RGUoUGUucGF0aCxQZS5mbGFncyxQZS5tb2RlLGZ1bmN0aW9uKFFlLCRl''@;'; put 'put ''KXtRZT8oUGUuZGVzdHJveSgpLFBlLmVtaXQoImVycm9yIixRZSkpOihQZS5mZD0kZSxQZS5lbWl0KCJvcGVuIiwkZSkpfSl9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoVGUsIlJlYWRTdHJlYW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRn0sc2V0OmZ1bmN0aW9uKFBlKXtGPVBlfSxlbnVt''@;'; put 'put ''ZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUZSwiV3JpdGVTdHJlYW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geWV9LHNldDpmdW5jdGlvbihQZSl7eWU9UGV9LGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfSk7dmFyIFQ9RjtPYmplY3Qu''@;'; put 'put ''ZGVmaW5lUHJvcGVydHkoVGUsIkZpbGVSZWFkU3RyZWFtIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFR9LHNldDpmdW5jdGlvbihQZSl7VD1QZX0sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITB9KTt2YXIgUz15ZTtmdW5jdGlvbiBGKFBlLFFlKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9m''@;'; put 'put ''IEY/KFAuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMpOkYuYXBwbHkoT2JqZWN0LmNyZWF0ZShGLnByb3RvdHlwZSksYXJndW1lbnRzKX1mdW5jdGlvbiB5ZShQZSxRZSl7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiB5ZT8oVi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcyk6eWUuYXBwbHko''@;'; put 'put ''T2JqZWN0LmNyZWF0ZSh5ZS5wcm90b3R5cGUpLGFyZ3VtZW50cyl9T2JqZWN0LmRlZmluZVByb3BlcnR5KFRlLCJGaWxlV3JpdGVTdHJlYW0iLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU30sc2V0OmZ1bmN0aW9uKFBlKXtTPVBlfSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pO3Zh''@;'; put 'put ''ciBDZT1UZS5vcGVuO2Z1bmN0aW9uIERlKFBlLFFlLCRlLGd0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgJGUmJihndD0kZSwkZT1udWxsKSxmdW5jdGlvbiB3dChtdCx2dCxBdCxodCxCdCl7cmV0dXJuIENlKG10LHZ0LEF0LGZ1bmN0aW9uKG9uLF90KXshb258fCJFTUZJTEUiIT09b24u''@;'; put 'put ''Y29kZSYmIkVORklMRSIhPT1vbi5jb2RlPyJmdW5jdGlvbiI9PXR5cGVvZiBodCYmaHQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmtlKFt3dCxbbXQsdnQsQXQsaHRdLG9uLEJ0fHxEYXRlLm5vdygpLERhdGUubm93KCldKX0pfShQZSxRZSwkZSxndCl9cmV0dXJuIFRlLm9wZW49RGUsVGV9ZnVu''@;'; put 'put ''Y3Rpb24ga2UoVGUpe2RlKCJFTlFVRVVFIixUZVswXS5uYW1lLFRlWzFdKSxOW3JlXS5wdXNoKFRlKSxJZSgpfWZ1bmN0aW9uIFNlKCl7Zm9yKHZhciBUZT1EYXRlLm5vdygpLE1lPTA7TWU8TltyZV0ubGVuZ3RoOysrTWUpTltyZV1bTWVdLmxlbmd0aD4yJiYoTltyZV1bTWVdWzNdPVRlLE5b''@;'; put 'put ''cmVdW01lXVs0XT1UZSk7SWUoKX1mdW5jdGlvbiBJZSgpe2lmKGNsZWFyVGltZW91dChjZSksY2U9dm9pZCAwLDAhPT1OW3JlXS5sZW5ndGgpe3ZhciBUZT1OW3JlXS5zaGlmdCgpLE1lPVRlWzBdLGhlPVRlWzFdLE89VGVbMl0sej1UZVszXSxlZT1UZVs0XTtpZih2b2lkIDA9PT16KWRlKCJS''@;'; put 'put ''RVRSWSIsTWUubmFtZSxoZSksTWUuYXBwbHkobnVsbCxoZSk7ZWxzZSBpZihEYXRlLm5vdygpLXo+PTZlNCl7ZGUoIlRJTUVPVVQiLE1lLm5hbWUsaGUpO3ZhciBuZT1oZS5wb3AoKTsiZnVuY3Rpb24iPT10eXBlb2YgbmUmJm5lLmNhbGwobnVsbCxPKX1lbHNle3ZhciB4PURhdGUubm93KCkt''@;'; put 'put ''ZWUsUD1NYXRoLm1heChlZS16LDEpO3g+PU1hdGgubWluKDEuMipQLDEwMCk/KGRlKCJSRVRSWSIsTWUubmFtZSxoZSksTWUuYXBwbHkobnVsbCxoZS5jb25jYXQoW3pdKSkpOk5bcmVdLnB1c2goVGUpfXZvaWQgMD09PWNlJiYoY2U9c2V0VGltZW91dChJZSwwKSl9fXNlLmRlYnVnbG9nP2Rl''@;'; put 'put ''PXNlLmRlYnVnbG9nKCJnZnM0Iik6L1xiZ2ZzNFxiL2kudGVzdChZLmVudi5OT0RFX0RFQlVHfHwiIikmJihkZT1mdW5jdGlvbigpe3ZhciBUZT1zZS5mb3JtYXQuYXBwbHkoc2UsYXJndW1lbnRzKTtUZT0iR0ZTNDogIitUZS5zcGxpdCgvXG4vKS5qb2luKCJcbkdGUzQ6ICIpLFcuZXJyb3Io''@;'; put 'put ''VGUpfSksTltyZV18fChvZShOLGouZ1tyZV18fFtdKSxOLmNsb3NlPWZ1bmN0aW9uKFRlKXtmdW5jdGlvbiBNZShoZSxPKXtyZXR1cm4gVGUuY2FsbChOLGhlLGZ1bmN0aW9uKHope3p8fFNlKCksImZ1bmN0aW9uIj09dHlwZW9mIE8mJk8uYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9cmV0dXJu''@;'; put 'put ''IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNZSxhZSx7dmFsdWU6VGV9KSxNZX0oTi5jbG9zZSksTi5jbG9zZVN5bmM9ZnVuY3Rpb24oVGUpe2Z1bmN0aW9uIE1lKGhlKXtUZS5hcHBseShOLGFyZ3VtZW50cyksU2UoKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KE1lLGFlLHt2YWx1ZTpU''@;'; put 'put ''ZX0pLE1lfShOLmNsb3NlU3luYyksL1xiZ2ZzNFxiL2kudGVzdChZLmVudi5OT0RFX0RFQlVHfHwiIikmJlkub24oImV4aXQiLGZ1bmN0aW9uKCl7ZGUoTltyZV0pLGooOTI4MikuZXF1YWwoTltyZV0ubGVuZ3RoLDApfSkpLGouZ1tyZV18fG9lKGouZyxOW3JlXSksVS5leHBvcnRzPUFlKEoo''@;'; put 'put ''TikpLFkuZW52LlRFU1RfR1JBQ0VGVUxfRlNfR0xPQkFMX1BBVENIJiYhTi5fX3BhdGNoZWQmJihVLmV4cG9ydHM9QWUoTiksTi5fX3BhdGNoZWQ9ITApfSw4NTIwOihVLFEsaik9Pnt2YXIgcmU9aig0MTU1KSxhZT1qKDI4MzApLlN0cmVhbTtVLmV4cG9ydHM9ZnVuY3Rpb24oWSl7cmV0dXJu''@;'; put 'put ''e1JlYWRTdHJlYW06ZnVuY3Rpb24gVyhOLHRlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBXKSlyZXR1cm4gbmV3IFcoTix0ZSk7YWUuY2FsbCh0aGlzKTt2YXIgSz10aGlzO3RoaXMucGF0aD1OLHRoaXMuZmQ9bnVsbCx0aGlzLnJlYWRhYmxlPSEwLHRoaXMucGF1c2VkPSExLHRoaXMuZmxhZ3M9''@;'; put 'put ''InIiLHRoaXMubW9kZT00MzgsdGhpcy5idWZmZXJTaXplPTY1NTM2LHRlPXRlfHx7fTtmb3IodmFyIEo9T2JqZWN0LmtleXModGUpLHNlPTAsb2U9Si5sZW5ndGg7c2U8b2U7c2UrKyl7dmFyIGNlPUpbc2VdO3RoaXNbY2VdPXRlW2NlXX1pZih0aGlzLmVuY29kaW5nJiZ0aGlzLnNldEVuY29k''@;'; put 'put ''aW5nKHRoaXMuZW5jb2RpbmcpLHZvaWQgMCE9PXRoaXMuc3RhcnQpe2lmKCJudW1iZXIiIT10eXBlb2YgdGhpcy5zdGFydCl0aHJvdyBUeXBlRXJyb3IoInN0YXJ0IG11c3QgYmUgYSBOdW1iZXIiKTtpZih2b2lkIDA9PT10aGlzLmVuZCl0aGlzLmVuZD0xLzA7ZWxzZSBpZigibnVtYmVyIiE9''@;'; put 'put ''dHlwZW9mIHRoaXMuZW5kKXRocm93IFR5cGVFcnJvcigiZW5kIG11c3QgYmUgYSBOdW1iZXIiKTtpZih0aGlzLnN0YXJ0PnRoaXMuZW5kKXRocm93IG5ldyBFcnJvcigic3RhcnQgbXVzdCBiZSA8PSBlbmQiKTt0aGlzLnBvcz10aGlzLnN0YXJ0fW51bGw9PT10aGlzLmZkP1kub3Blbih0aGlz''@;'; put 'put ''LnBhdGgsdGhpcy5mbGFncyx0aGlzLm1vZGUsZnVuY3Rpb24oZGUsdmUpe2lmKGRlKXJldHVybiBLLmVtaXQoImVycm9yIixkZSksdm9pZChLLnJlYWRhYmxlPSExKTtLLmZkPXZlLEsuZW1pdCgib3BlbiIsdmUpLEsuX3JlYWQoKX0pOnJlLm5leHRUaWNrKGZ1bmN0aW9uKCl7Sy5fcmVhZCgp''@;'; put 'put ''fSl9LFdyaXRlU3RyZWFtOmZ1bmN0aW9uIFcoTix0ZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgVykpcmV0dXJuIG5ldyBXKE4sdGUpO2FlLmNhbGwodGhpcyksdGhpcy5wYXRoPU4sdGhpcy5mZD1udWxsLHRoaXMud3JpdGFibGU9ITAsdGhpcy5mbGFncz0idyIsdGhpcy5lbmNvZGluZz0iYmlu''@;'; put 'put ''YXJ5Iix0aGlzLm1vZGU9NDM4LHRoaXMuYnl0ZXNXcml0dGVuPTAsdGU9dGV8fHt9O2Zvcih2YXIgSz1PYmplY3Qua2V5cyh0ZSksSj0wLHNlPUsubGVuZ3RoO0o8c2U7SisrKXt2YXIgb2U9S1tKXTt0aGlzW29lXT10ZVtvZV19aWYodm9pZCAwIT09dGhpcy5zdGFydCl7aWYoIm51bWJlciIh''@;'; put 'put ''PXR5cGVvZiB0aGlzLnN0YXJ0KXRocm93IFR5cGVFcnJvcigic3RhcnQgbXVzdCBiZSBhIE51bWJlciIpO2lmKHRoaXMuc3RhcnQ8MCl0aHJvdyBuZXcgRXJyb3IoInN0YXJ0IG11c3QgYmUgPj0gemVybyIpO3RoaXMucG9zPXRoaXMuc3RhcnR9dGhpcy5idXN5PSExLHRoaXMuX3F1ZXVlPVtd''@;'; put 'put ''LG51bGw9PT10aGlzLmZkJiYodGhpcy5fb3Blbj1ZLm9wZW4sdGhpcy5fcXVldWUucHVzaChbdGhpcy5fb3Blbix0aGlzLnBhdGgsdGhpcy5mbGFncyx0aGlzLm1vZGUsdm9pZCAwXSksdGhpcy5mbHVzaCgpKX19fX0sMjE2MTooVSxRLGopPT57dmFyIHJlPWooNDE1NSksYWU9aigzMjA4KSxZ''@;'; put 'put ''PXJlLmN3ZCxXPW51bGwsTj1yZS5lbnYuR1JBQ0VGVUxfRlNfUExBVEZPUk18fHJlLnBsYXRmb3JtO3JlLmN3ZD1mdW5jdGlvbigpe3JldHVybiBXfHwoVz1ZLmNhbGwocmUpKSxXfTt0cnl7cmUuY3dkKCl9Y2F0Y2goSyl7fWlmKCJmdW5jdGlvbiI9PXR5cGVvZiByZS5jaGRpcil7dmFyIHRl''@;'; put 'put ''PXJlLmNoZGlyO3JlLmNoZGlyPWZ1bmN0aW9uKEspe1c9bnVsbCx0ZS5jYWxsKHJlLEspfSxPYmplY3Quc2V0UHJvdG90eXBlT2YmJk9iamVjdC5zZXRQcm90b3R5cGVPZihyZS5jaGRpcix0ZSl9VS5leHBvcnRzPWZ1bmN0aW9uKEspe3ZhciBTZSxrZTtmdW5jdGlvbiBKKFNlKXtyZXR1cm4g''@;'; put 'put ''U2UmJmZ1bmN0aW9uKEllLFRlLE1lKXtyZXR1cm4gU2UuY2FsbChLLEllLFRlLGZ1bmN0aW9uKGhlKXtBZShoZSkmJihoZT1udWxsKSxNZSYmTWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSl9fWZ1bmN0aW9uIHNlKFNlKXtyZXR1cm4gU2UmJmZ1bmN0aW9uKEllLFRlKXt0cnl7cmV0dXJuIFNl''@;'; put 'put ''LmNhbGwoSyxJZSxUZSl9Y2F0Y2goTWUpe2lmKCFBZShNZSkpdGhyb3cgTWV9fX1mdW5jdGlvbiBvZShTZSl7cmV0dXJuIFNlJiZmdW5jdGlvbihJZSxUZSxNZSxoZSl7cmV0dXJuIFNlLmNhbGwoSyxJZSxUZSxNZSxmdW5jdGlvbihPKXtBZShPKSYmKE89bnVsbCksaGUmJmhlLmFwcGx5KHRo''@;'; put 'put ''aXMsYXJndW1lbnRzKX0pfX1mdW5jdGlvbiBjZShTZSl7cmV0dXJuIFNlJiZmdW5jdGlvbihJZSxUZSxNZSl7dHJ5e3JldHVybiBTZS5jYWxsKEssSWUsVGUsTWUpfWNhdGNoKGhlKXtpZighQWUoaGUpKXRocm93IGhlfX19ZnVuY3Rpb24gZGUoU2Upe3JldHVybiBTZSYmZnVuY3Rpb24oSWUs''@;'; put 'put ''VGUsTWUpe2Z1bmN0aW9uIGhlKE8seil7eiYmKHoudWlkPDAmJih6LnVpZCs9NDI5NDk2NzI5Niksei5naWQ8MCYmKHouZ2lkKz00Mjk0OTY3Mjk2KSksTWUmJk1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgVGUmJihNZT1UZSxUZT1udWxsKSxUZT9T''@;'; put 'put ''ZS5jYWxsKEssSWUsVGUsaGUpOlNlLmNhbGwoSyxJZSxoZSl9fWZ1bmN0aW9uIHZlKFNlKXtyZXR1cm4gU2UmJmZ1bmN0aW9uKEllLFRlKXt2YXIgTWU9VGU/U2UuY2FsbChLLEllLFRlKTpTZS5jYWxsKEssSWUpO3JldHVybiBNZSYmKE1lLnVpZDwwJiYoTWUudWlkKz00Mjk0OTY3Mjk2KSxN''@;'; put 'put ''ZS5naWQ8MCYmKE1lLmdpZCs9NDI5NDk2NzI5NikpLE1lfX1mdW5jdGlvbiBBZShTZSl7cmV0dXJuIVNlfHwiRU5PU1lTIj09PVNlLmNvZGV8fCEocmUuZ2V0dWlkJiYwPT09cmUuZ2V0dWlkKCl8fCJFSU5WQUwiIT09U2UuY29kZSYmIkVQRVJNIiE9PVNlLmNvZGUpfWFlLmhhc093blByb3Bl''@;'; put 'put ''cnR5KCJPX1NZTUxJTksiKSYmcmUudmVyc2lvbi5tYXRjaCgvXnYwXC42XC5bMC0yXXxedjBcLjVcLi8pJiYoKFNlPUspLmxjaG1vZD1mdW5jdGlvbihJZSxUZSxNZSl7U2Uub3BlbihJZSxhZS5PX1dST05MWXxhZS5PX1NZTUxJTkssVGUsZnVuY3Rpb24oaGUsTyl7aGU/TWUmJk1lKGhlKTpT''@;'; put 'put ''ZS5mY2htb2QoTyxUZSxmdW5jdGlvbih6KXtTZS5jbG9zZShPLGZ1bmN0aW9uKGVlKXtNZSYmTWUoenx8ZWUpfSl9KX0pfSxTZS5sY2htb2RTeW5jPWZ1bmN0aW9uKEllLFRlKXt2YXIgTWUsaGU9U2Uub3BlblN5bmMoSWUsYWUuT19XUk9OTFl8YWUuT19TWU1MSU5LLFRlKSxPPSEwO3RyeXtN''@;'; put 'put ''ZT1TZS5mY2htb2RTeW5jKGhlLFRlKSxPPSExfWZpbmFsbHl7aWYoTyl0cnl7U2UuY2xvc2VTeW5jKGhlKX1jYXRjaCh6KXt9ZWxzZSBTZS5jbG9zZVN5bmMoaGUpfXJldHVybiBNZX0pLEsubHV0aW1lc3x8ZnVuY3Rpb24oU2Upe2FlLmhhc093blByb3BlcnR5KCJPX1NZTUxJTksiKSYmU2Uu''@;'; put 'put ''ZnV0aW1lcz8oU2UubHV0aW1lcz1mdW5jdGlvbihJZSxUZSxNZSxoZSl7U2Uub3BlbihJZSxhZS5PX1NZTUxJTkssZnVuY3Rpb24oTyx6KXtPP2hlJiZoZShPKTpTZS5mdXRpbWVzKHosVGUsTWUsZnVuY3Rpb24oZWUpe1NlLmNsb3NlKHosZnVuY3Rpb24obmUpe2hlJiZoZShlZXx8bmUpfSl9''@;'; put 'put ''KX0pfSxTZS5sdXRpbWVzU3luYz1mdW5jdGlvbihJZSxUZSxNZSl7dmFyIGhlLE89U2Uub3BlblN5bmMoSWUsYWUuT19TWU1MSU5LKSx6PSEwO3RyeXtoZT1TZS5mdXRpbWVzU3luYyhPLFRlLE1lKSx6PSExfWZpbmFsbHl7aWYoeil0cnl7U2UuY2xvc2VTeW5jKE8pfWNhdGNoKGVlKXt9ZWxz''@;'; put 'put ''ZSBTZS5jbG9zZVN5bmMoTyl9cmV0dXJuIGhlfSk6U2UuZnV0aW1lcyYmKFNlLmx1dGltZXM9ZnVuY3Rpb24oSWUsVGUsTWUsaGUpe2hlJiZyZS5uZXh0VGljayhoZSl9LFNlLmx1dGltZXNTeW5jPWZ1bmN0aW9uKCl7fSl9KEspLEsuY2hvd249b2UoSy5jaG93biksSy5mY2hvd249b2UoSy5m''@;'; put 'put ''Y2hvd24pLEsubGNob3duPW9lKEsubGNob3duKSxLLmNobW9kPUooSy5jaG1vZCksSy5mY2htb2Q9SihLLmZjaG1vZCksSy5sY2htb2Q9SihLLmxjaG1vZCksSy5jaG93blN5bmM9Y2UoSy5jaG93blN5bmMpLEsuZmNob3duU3luYz1jZShLLmZjaG93blN5bmMpLEsubGNob3duU3luYz1jZShL''@;'; put 'put ''LmxjaG93blN5bmMpLEsuY2htb2RTeW5jPXNlKEsuY2htb2RTeW5jKSxLLmZjaG1vZFN5bmM9c2UoSy5mY2htb2RTeW5jKSxLLmxjaG1vZFN5bmM9c2UoSy5sY2htb2RTeW5jKSxLLnN0YXQ9ZGUoSy5zdGF0KSxLLmZzdGF0PWRlKEsuZnN0YXQpLEsubHN0YXQ9ZGUoSy5sc3RhdCksSy5zdGF0''@;'; put 'put ''U3luYz12ZShLLnN0YXRTeW5jKSxLLmZzdGF0U3luYz12ZShLLmZzdGF0U3luYyksSy5sc3RhdFN5bmM9dmUoSy5sc3RhdFN5bmMpLEsuY2htb2QmJiFLLmxjaG1vZCYmKEsubGNobW9kPWZ1bmN0aW9uKFNlLEllLFRlKXtUZSYmcmUubmV4dFRpY2soVGUpfSxLLmxjaG1vZFN5bmM9ZnVuY3Rp''@;'; put 'put ''b24oKXt9KSxLLmNob3duJiYhSy5sY2hvd24mJihLLmxjaG93bj1mdW5jdGlvbihTZSxJZSxUZSxNZSl7TWUmJnJlLm5leHRUaWNrKE1lKX0sSy5sY2hvd25TeW5jPWZ1bmN0aW9uKCl7fSksIndpbjMyIj09PU4mJihLLnJlbmFtZT0iZnVuY3Rpb24iIT10eXBlb2YgSy5yZW5hbWU/Sy5yZW5h''@;'; put 'put ''bWU6ZnVuY3Rpb24oU2Upe2Z1bmN0aW9uIEllKFRlLE1lLGhlKXt2YXIgTz1EYXRlLm5vdygpLHo9MDtTZShUZSxNZSxmdW5jdGlvbiBlZShuZSl7aWYobmUmJigiRUFDQ0VTIj09PW5lLmNvZGV8fCJFUEVSTSI9PT1uZS5jb2RlKSYmRGF0ZS5ub3coKS1PPDZlNClyZXR1cm4gc2V0VGltZW91''@;'; put 'put ''dChmdW5jdGlvbigpe0suc3RhdChNZSxmdW5jdGlvbih4LFApe3gmJiJFTk9FTlQiPT09eC5jb2RlP1NlKFRlLE1lLGVlKTpoZShuZSl9KX0seiksdm9pZCh6PDEwMCYmKHorPTEwKSk7aGUmJmhlKG5lKX0pfXJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YmJk9iamVjdC5zZXRQcm90b3R5''@;'; put 'put ''cGVPZihJZSxTZSksSWV9KEsucmVuYW1lKSksSy5yZWFkPSJmdW5jdGlvbiIhPXR5cGVvZiBLLnJlYWQ/Sy5yZWFkOmZ1bmN0aW9uKFNlKXtmdW5jdGlvbiBJZShUZSxNZSxoZSxPLHosZWUpe3ZhciBuZTtpZihlZSYmImZ1bmN0aW9uIj09dHlwZW9mIGVlKXt2YXIgeD0wO25lPWZ1bmN0aW9u''@;'; put 'put ''KFAsVixUKXtpZihQJiYiRUFHQUlOIj09PVAuY29kZSYmeDwxMClyZXR1cm4geCsrLFNlLmNhbGwoSyxUZSxNZSxoZSxPLHosbmUpO2VlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19cmV0dXJuIFNlLmNhbGwoSyxUZSxNZSxoZSxPLHosbmUpfXJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2Ym''@;'; put 'put ''Jk9iamVjdC5zZXRQcm90b3R5cGVPZihJZSxTZSksSWV9KEsucmVhZCksSy5yZWFkU3luYz0iZnVuY3Rpb24iIT10eXBlb2YgSy5yZWFkU3luYz9LLnJlYWRTeW5jOihrZT1LLnJlYWRTeW5jLGZ1bmN0aW9uKFNlLEllLFRlLE1lLGhlKXtmb3IodmFyIE89MDs7KXRyeXtyZXR1cm4ga2UuY2Fs''@;'; put 'put ''bChLLFNlLEllLFRlLE1lLGhlKX1jYXRjaCh6KXtpZigiRUFHQUlOIj09PXouY29kZSYmTzwxMCl7TysrO2NvbnRpbnVlfXRocm93IHp9fSl9fSwxMDQ0OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooMjEwKSgiJU9iamVjdC5kZWZpbmVQcm9wZXJ0eSUiLCEwKSxhZT1mdW5jdGlv''@;'; put 'put ''bigpe2lmKHJlKXRyeXtyZXR1cm4gcmUoe30sImEiLHt2YWx1ZToxfSksITB9Y2F0Y2goWSl7cmV0dXJuITF9cmV0dXJuITF9O2FlLmhhc0FycmF5TGVuZ3RoRGVmaW5lQnVnPWZ1bmN0aW9uKCl7aWYoIWFlKCkpcmV0dXJuIG51bGw7dHJ5e3JldHVybiAxIT09cmUoW10sImxlbmd0aCIse3Zh''@;'; put 'put ''bHVlOjF9KS5sZW5ndGh9Y2F0Y2goWSl7cmV0dXJuITB9fSxVLmV4cG9ydHM9YWV9LDE0MDU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbCxhZT1qKDU0MTkpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiByZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiByZSgiZm9vIikmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sKCJiYXIiKSYmYWUoKX19LDU0MTk6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24i''@;'; put 'put ''IT10eXBlb2YgU3ltYm9sfHwiZnVuY3Rpb24iIT10eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scylyZXR1cm4hMTtpZigic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcilyZXR1cm4hMDt2YXIgUT17fSxqPVN5bWJvbCgidGVzdCIpLHJlPU9iamVjdChqKTtpZigic3Ry''@;'; put 'put ''aW5nIj09dHlwZW9mIGp8fCJbb2JqZWN0IFN5bWJvbF0iIT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGopfHwiW29iamVjdCBTeW1ib2xdIiE9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChyZSkpcmV0dXJuITE7Zm9yKGogaW4gUVtqXT00MixRKXJldHVybiExO2lm''@;'; put 'put ''KCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Qua2V5cyYmMCE9PU9iamVjdC5rZXlzKFEpLmxlbmd0aHx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzJiYwIT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoUSkubGVuZ3RoKXJldHVybiExO3ZhciBhZT1P''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKFEpO2lmKDEhPT1hZS5sZW5ndGh8fGFlWzBdIT09anx8IU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChRLGopKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj''@;'; put 'put ''cmlwdG9yKXt2YXIgWT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFEsaik7aWYoNDIhPT1ZLnZhbHVlfHwhMCE9PVkuZW51bWVyYWJsZSlyZXR1cm4hMX1yZXR1cm4hMH19LDY0MTA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig1NDE5KTtVLmV4cG9ydHM9ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gcmUoKSYmISFTeW1ib2wudG9TdHJpbmdUYWd9fSw3NjQyOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooODYxMik7VS5leHBvcnRzPXJlLmNhbGwoRnVuY3Rpb24uY2FsbCxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5KX0sMzM0OTooVSxRLGopPT57''@;'; put 'put ''InVzZSBzdHJpY3QiO3ZhciByZT1qKDIxMykuQnVmZmVyLGFlPWooODQ3MykuVHJhbnNmb3JtO2Z1bmN0aW9uIFkoVyl7YWUuY2FsbCh0aGlzKSx0aGlzLl9ibG9jaz1yZS5hbGxvY1Vuc2FmZShXKSx0aGlzLl9ibG9ja1NpemU9Vyx0aGlzLl9ibG9ja09mZnNldD0wLHRoaXMuX2xlbmd0aD1b''@;'; put 'put ''MCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSExfWooNTcxNykoWSxhZSksWS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihXLE4sdGUpe3ZhciBLPW51bGw7dHJ5e3RoaXMudXBkYXRlKFcsTil9Y2F0Y2goSil7Sz1KfXRlKEspfSxZLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oVyl7''@;'; put 'put ''dmFyIE49bnVsbDt0cnl7dGhpcy5wdXNoKHRoaXMuZGlnZXN0KCkpfWNhdGNoKHRlKXtOPXRlfVcoTil9LFkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihXLE4pe2lmKGZ1bmN0aW9uKGNlLGRlKXtpZighcmUuaXNCdWZmZXIoY2UpJiYic3RyaW5nIiE9dHlwZW9mIGNlKXRocm93IG5ldyBU''@;'; put 'put ''eXBlRXJyb3IoIkRhdGEgbXVzdCBiZSBhIHN0cmluZyBvciBhIGJ1ZmZlciIpfShXKSx0aGlzLl9maW5hbGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTtyZS5pc0J1ZmZlcihXKXx8KFc9cmUuZnJvbShXLE4pKTtmb3IodmFyIHRlPXRoaXMuX2Jsb2NrLEs9''@;'; put 'put ''MDt0aGlzLl9ibG9ja09mZnNldCtXLmxlbmd0aC1LPj10aGlzLl9ibG9ja1NpemU7KXtmb3IodmFyIEo9dGhpcy5fYmxvY2tPZmZzZXQ7Sjx0aGlzLl9ibG9ja1NpemU7KXRlW0orK109V1tLKytdO3RoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTB9Zm9yKDtLPFcubGVuZ3RoOyl0''@;'; put 'put ''ZVt0aGlzLl9ibG9ja09mZnNldCsrXT1XW0srK107Zm9yKHZhciBzZT0wLG9lPTgqVy5sZW5ndGg7b2U+MDsrK3NlKXRoaXMuX2xlbmd0aFtzZV0rPW9lLChvZT10aGlzLl9sZW5ndGhbc2VdLzQyOTQ5NjcyOTZ8MCk+MCYmKHRoaXMuX2xlbmd0aFtzZV0tPTQyOTQ5NjcyOTYqb2UpO3JldHVy''@;'; put 'put ''biB0aGlzfSxZLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfdXBkYXRlIGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxZLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oVyl7aWYodGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVh''@;'; put 'put ''ZHkgY2FsbGVkIik7dGhpcy5fZmluYWxpemVkPSEwO3ZhciBOPXRoaXMuX2RpZ2VzdCgpO3ZvaWQgMCE9PVcmJihOPU4udG9TdHJpbmcoVykpLHRoaXMuX2Jsb2NrLmZpbGwoMCksdGhpcy5fYmxvY2tPZmZzZXQ9MDtmb3IodmFyIHRlPTA7dGU8NDsrK3RlKXRoaXMuX2xlbmd0aFt0ZV09MDty''@;'; put 'put ''ZXR1cm4gTn0sWS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX2RpZ2VzdCBpcyBub3QgaW1wbGVtZW50ZWQiKX0sVS5leHBvcnRzPVl9LDIxMzooVSxRLGopPT57dmFyIHJlPWooODc2NCksYWU9cmUuQnVmZmVyO2Z1bmN0aW9uIFkoTix0ZSl7Zm9yKHZh''@;'; put 'put ''ciBLIGluIE4pdGVbS109TltLXX1mdW5jdGlvbiBXKE4sdGUsSyl7cmV0dXJuIGFlKE4sdGUsSyl9YWUuZnJvbSYmYWUuYWxsb2MmJmFlLmFsbG9jVW5zYWZlJiZhZS5hbGxvY1Vuc2FmZVNsb3c/VS5leHBvcnRzPXJlOihZKHJlLFEpLFEuQnVmZmVyPVcpLFcucHJvdG90eXBlPU9iamVjdC5j''@;'; put 'put ''cmVhdGUoYWUucHJvdG90eXBlKSxZKGFlLFcpLFcuZnJvbT1mdW5jdGlvbihOLHRlLEspe2lmKCJudW1iZXIiPT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBhZShOLHRlLEspfSxXLmFsbG9jPWZ1bmN0aW9uKE4s''@;'; put 'put ''dGUsSyl7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgSj1hZShOKTtyZXR1cm4gdm9pZCAwIT09dGU/InN0cmluZyI9PXR5cGVvZiBLP0ouZmlsbCh0ZSxLKTpKLmZpbGwodGUpOkouZmlsbCgwKSxKfSxX''@;'; put 'put ''LmFsbG9jVW5zYWZlPWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGFlKE4pfSxXLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihOKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhy''@;'; put 'put ''b3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiByZS5TbG93QnVmZmVyKE4pfX0sMzcxNTooVSxRLGopPT57dmFyIHJlPVE7cmUudXRpbHM9aig2NDM2KSxyZS5jb21tb249aig1NzcyKSxyZS5zaGE9aig5MDQxKSxyZS5yaXBlbWQ9aigyOTQ5KSxy''@;'; put 'put ''ZS5obWFjPWooMjM0NCkscmUuc2hhMT1yZS5zaGEuc2hhMSxyZS5zaGEyNTY9cmUuc2hhLnNoYTI1NixyZS5zaGEyMjQ9cmUuc2hhLnNoYTIyNCxyZS5zaGEzODQ9cmUuc2hhLnNoYTM4NCxyZS5zaGE1MTI9cmUuc2hhLnNoYTUxMixyZS5yaXBlbWQxNjA9cmUucmlwZW1kLnJpcGVtZDE2MH0s''@;'; put 'put ''NTc3MjooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDY0MzYpLGFlPWooOTc0Nik7ZnVuY3Rpb24gWSgpe3RoaXMucGVuZGluZz1udWxsLHRoaXMucGVuZGluZ1RvdGFsPTAsdGhpcy5ibG9ja1NpemU9dGhpcy5jb25zdHJ1Y3Rvci5ibG9ja1NpemUsdGhpcy5vdXRTaXplPXRoaXMu''@;'; put 'put ''Y29uc3RydWN0b3Iub3V0U2l6ZSx0aGlzLmhtYWNTdHJlbmd0aD10aGlzLmNvbnN0cnVjdG9yLmhtYWNTdHJlbmd0aCx0aGlzLnBhZExlbmd0aD10aGlzLmNvbnN0cnVjdG9yLnBhZExlbmd0aC84LHRoaXMuZW5kaWFuPSJiaWciLHRoaXMuX2RlbHRhOD10aGlzLmJsb2NrU2l6ZS84LHRoaXMu''@;'; put 'put ''X2RlbHRhMzI9dGhpcy5ibG9ja1NpemUvMzJ9US5CbG9ja0hhc2g9WSxZLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oVyxOKXtpZihXPXJlLnRvQXJyYXkoVyxOKSx0aGlzLnBlbmRpbmc9dGhpcy5wZW5kaW5nP3RoaXMucGVuZGluZy5jb25jYXQoVyk6Vyx0aGlzLnBlbmRpbmdUb3RhbCs9''@;'; put 'put ''Vy5sZW5ndGgsdGhpcy5wZW5kaW5nLmxlbmd0aD49dGhpcy5fZGVsdGE4KXt2YXIgdGU9KFc9dGhpcy5wZW5kaW5nKS5sZW5ndGgldGhpcy5fZGVsdGE4O3RoaXMucGVuZGluZz1XLnNsaWNlKFcubGVuZ3RoLXRlLFcubGVuZ3RoKSwwPT09dGhpcy5wZW5kaW5nLmxlbmd0aCYmKHRoaXMucGVu''@;'; put 'put ''ZGluZz1udWxsKSxXPXJlLmpvaW4zMihXLDAsVy5sZW5ndGgtdGUsdGhpcy5lbmRpYW4pO2Zvcih2YXIgSz0wO0s8Vy5sZW5ndGg7Sys9dGhpcy5fZGVsdGEzMil0aGlzLl91cGRhdGUoVyxLLEsrdGhpcy5fZGVsdGEzMil9cmV0dXJuIHRoaXN9LFkucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlv''@;'; put 'put ''bihXKXtyZXR1cm4gdGhpcy51cGRhdGUodGhpcy5fcGFkKCkpLGFlKG51bGw9PT10aGlzLnBlbmRpbmcpLHRoaXMuX2RpZ2VzdChXKX0sWS5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbigpe3ZhciBXPXRoaXMucGVuZGluZ1RvdGFsLE49dGhpcy5fZGVsdGE4LHRlPU4tKFcrdGhpcy5wYWRMZW5n''@;'; put 'put ''dGgpJU4sSz1uZXcgQXJyYXkodGUrdGhpcy5wYWRMZW5ndGgpO0tbMF09MTI4O2Zvcih2YXIgSj0xO0o8dGU7SisrKUtbSl09MDtpZihXPDw9MywiYmlnIj09PXRoaXMuZW5kaWFuKXtmb3IodmFyIHNlPTg7c2U8dGhpcy5wYWRMZW5ndGg7c2UrKylLW0orK109MDtLW0orK109MCxLW0orK109''@;'; put 'put ''MCxLW0orK109MCxLW0orK109MCxLW0orK109Vz4+PjI0JjI1NSxLW0orK109Vz4+PjE2JjI1NSxLW0orK109Vz4+PjgmMjU1LEtbSisrXT0yNTUmV31lbHNlIGZvcihLW0orK109MjU1JlcsS1tKKytdPVc+Pj44JjI1NSxLW0orK109Vz4+PjE2JjI1NSxLW0orK109Vz4+PjI0JjI1NSxLW0or''@;'; put 'put ''K109MCxLW0orK109MCxLW0orK109MCxLW0orK109MCxzZT04O3NlPHRoaXMucGFkTGVuZ3RoO3NlKyspS1tKKytdPTA7cmV0dXJuIEt9fSwyMzQ0OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNjQzNiksYWU9aig5NzQ2KTtmdW5jdGlvbiBZKFcsTix0ZSl7aWYoISh0aGlzIGlu''@;'; put 'put ''c3RhbmNlb2YgWSkpcmV0dXJuIG5ldyBZKFcsTix0ZSk7dGhpcy5IYXNoPVcsdGhpcy5ibG9ja1NpemU9Vy5ibG9ja1NpemUvOCx0aGlzLm91dFNpemU9Vy5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KHJlLnRvQXJyYXkoTix0ZSkpfVUuZXhw''@;'; put 'put ''b3J0cz1ZLFkucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKFcpe1cubGVuZ3RoPnRoaXMuYmxvY2tTaXplJiYoVz0obmV3IHRoaXMuSGFzaCkudXBkYXRlKFcpLmRpZ2VzdCgpKSxhZShXLmxlbmd0aDw9dGhpcy5ibG9ja1NpemUpO2Zvcih2YXIgTj1XLmxlbmd0aDtOPHRoaXMuYmxvY2tTaXpl''@;'; put 'put ''O04rKylXLnB1c2goMCk7Zm9yKE49MDtOPFcubGVuZ3RoO04rKylXW05dXj01NDtmb3IodGhpcy5pbm5lcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKFcpLE49MDtOPFcubGVuZ3RoO04rKylXW05dXj0xMDY7dGhpcy5vdXRlcj0obmV3IHRoaXMuSGFzaCkudXBkYXRlKFcpfSxZLnByb3RvdHlw''@;'; put 'put ''ZS51cGRhdGU9ZnVuY3Rpb24oVyxOKXtyZXR1cm4gdGhpcy5pbm5lci51cGRhdGUoVyxOKSx0aGlzfSxZLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oVyl7cmV0dXJuIHRoaXMub3V0ZXIudXBkYXRlKHRoaXMuaW5uZXIuZGlnZXN0KCkpLHRoaXMub3V0ZXIuZGlnZXN0KFcpfX0sMjk0OToo''@;'; put 'put ''VSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDY0MzYpLGFlPWooNTc3MiksWT1yZS5yb3RsMzIsVz1yZS5zdW0zMixOPXJlLnN1bTMyXzMsdGU9cmUuc3VtMzJfNCxLPWFlLkJsb2NrSGFzaDtmdW5jdGlvbiBKKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgSikpcmV0dXJuIG5ldyBKO0su''@;'; put 'put ''Y2FsbCh0aGlzKSx0aGlzLmg9WzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSx0aGlzLmVuZGlhbj0ibGl0dGxlIn1mdW5jdGlvbiBzZShTZSxJZSxUZSxNZSl7cmV0dXJuIFNlPD0xNT9JZV5UZV5NZTpTZTw9MzE/SWUmVGV8fkllJk1lOlNl''@;'; put 'put ''PD00Nz8oSWV8flRlKV5NZTpTZTw9NjM/SWUmTWV8VGUmfk1lOkllXihUZXx+TWUpfWZ1bmN0aW9uIG9lKFNlKXtyZXR1cm4gU2U8PTE1PzA6U2U8PTMxPzE1MTg1MDAyNDk6U2U8PTQ3PzE4NTk3NzUzOTM6U2U8PTYzPzI0MDA5NTk3MDg6Mjg0MDg1MzgzOH1mdW5jdGlvbiBjZShTZSl7cmV0''@;'; put 'put ''dXJuIFNlPD0xNT8xMzUyODI5OTI2OlNlPD0zMT8xNTQ4NjAzNjg0OlNlPD00Nz8xODM2MDcyNjkxOlNlPD02Mz8yMDUzOTk0MjE3OjB9cmUuaW5oZXJpdHMoSixLKSxRLnJpcGVtZDE2MD1KLEouYmxvY2tTaXplPTUxMixKLm91dFNpemU9MTYwLEouaG1hY1N0cmVuZ3RoPTE5MixKLnBhZExl''@;'; put 'put ''bmd0aD02NCxKLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFNlLEllKXtmb3IodmFyIFRlPXRoaXMuaFswXSxNZT10aGlzLmhbMV0saGU9dGhpcy5oWzJdLE89dGhpcy5oWzNdLHo9dGhpcy5oWzRdLGVlPVRlLG5lPU1lLHg9aGUsUD1PLFY9eixUPTA7VDw4MDtUKyspe3ZhciBTPVcoWSh0''@;'; put 'put ''ZShUZSxzZShULE1lLGhlLE8pLFNlW2RlW1RdK0llXSxvZShUKSksQWVbVF0pLHopO1RlPXosej1PLE89WShoZSwxMCksaGU9TWUsTWU9UyxTPVcoWSh0ZShlZSxzZSg3OS1ULG5lLHgsUCksU2VbdmVbVF0rSWVdLGNlKFQpKSxrZVtUXSksViksZWU9VixWPVAsUD1ZKHgsMTApLHg9bmUsbmU9''@;'; put 'put ''U31TPU4odGhpcy5oWzFdLGhlLFApLHRoaXMuaFsxXT1OKHRoaXMuaFsyXSxPLFYpLHRoaXMuaFsyXT1OKHRoaXMuaFszXSx6LGVlKSx0aGlzLmhbM109Tih0aGlzLmhbNF0sVGUsbmUpLHRoaXMuaFs0XT1OKHRoaXMuaFswXSxNZSx4KSx0aGlzLmhbMF09U30sSi5wcm90b3R5cGUuX2RpZ2Vz''@;'; put 'put ''dD1mdW5jdGlvbihTZSl7cmV0dXJuImhleCI9PT1TZT9yZS50b0hleDMyKHRoaXMuaCwibGl0dGxlIik6cmUuc3BsaXQzMih0aGlzLmgsImxpdHRsZSIpfTt2YXIgZGU9WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIs''@;'; put 'put ''MTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwxMCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sdmU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIs''@;'; put 'put ''NiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYsOSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0sQWU9WzExLDE0LDE1''@;'; put 'put ''LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4''@;'; put 'put ''LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLGtlPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYsNiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQs''@;'; put 'put ''MTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXX0sOTA0MTooVSxRLGopPT57InVzZSBzdHJpY3QiO1Euc2hhMT1qKDQ3NjEpLFEuc2hhMjI0PWooNzk5KSxRLnNoYTI1Nj1qKDkzNDQpLFEuc2hhMzg0PWooNzcyKSxRLnNo''@;'; put 'put ''YTUxMj1qKDU5MDApfSw0NzYxOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNjQzNiksYWU9aig1NzcyKSxZPWooNzAzOCksVz1yZS5yb3RsMzIsTj1yZS5zdW0zMix0ZT1yZS5zdW0zMl81LEs9WS5mdF8xLEo9YWUuQmxvY2tIYXNoLHNlPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMs''@;'; put 'put ''MjQwMDk1OTcwOCwzMzk1NDY5NzgyXTtmdW5jdGlvbiBvZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG9lKSlyZXR1cm4gbmV3IG9lO0ouY2FsbCh0aGlzKSx0aGlzLmg9WzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OCwzMjg1Mzc3NTIwXSx0aGlzLlc9bmV3IEFy''@;'; put 'put ''cmF5KDgwKX1yZS5pbmhlcml0cyhvZSxKKSxVLmV4cG9ydHM9b2Usb2UuYmxvY2tTaXplPTUxMixvZS5vdXRTaXplPTE2MCxvZS5obWFjU3RyZW5ndGg9ODAsb2UucGFkTGVuZ3RoPTY0LG9lLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGNlLGRlKXtmb3IodmFyIHZlPXRoaXMuVyxBZT0w''@;'; put 'put ''O0FlPDE2O0FlKyspdmVbQWVdPWNlW2RlK0FlXTtmb3IoO0FlPHZlLmxlbmd0aDtBZSsrKXZlW0FlXT1XKHZlW0FlLTNdXnZlW0FlLThdXnZlW0FlLTE0XV52ZVtBZS0xNl0sMSk7dmFyIGtlPXRoaXMuaFswXSxTZT10aGlzLmhbMV0sSWU9dGhpcy5oWzJdLFRlPXRoaXMuaFszXSxNZT10aGlz''@;'; put 'put ''LmhbNF07Zm9yKEFlPTA7QWU8dmUubGVuZ3RoO0FlKyspe3ZhciBoZT1+fihBZS8yMCksTz10ZShXKGtlLDUpLEsoaGUsU2UsSWUsVGUpLE1lLHZlW0FlXSxzZVtoZV0pO01lPVRlLFRlPUllLEllPVcoU2UsMzApLFNlPWtlLGtlPU99dGhpcy5oWzBdPU4odGhpcy5oWzBdLGtlKSx0aGlzLmhb''@;'; put 'put ''MV09Tih0aGlzLmhbMV0sU2UpLHRoaXMuaFsyXT1OKHRoaXMuaFsyXSxJZSksdGhpcy5oWzNdPU4odGhpcy5oWzNdLFRlKSx0aGlzLmhbNF09Tih0aGlzLmhbNF0sTWUpfSxvZS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihjZSl7cmV0dXJuImhleCI9PT1jZT9yZS50b0hleDMyKHRoaXMu''@;'; put 'put ''aCwiYmlnIik6cmUuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sNzk5OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNjQzNiksYWU9aig5MzQ0KTtmdW5jdGlvbiBZKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgWSkpcmV0dXJuIG5ldyBZO2FlLmNhbGwodGhpcyksdGhpcy5oPVszMjM4''@;'; put 'put ''MzcxMDMyLDkxNDE1MDY2Myw4MTI3MDI5OTksNDE0NDkxMjY5Nyw0MjkwNzc1ODU3LDE3NTA2MDMwMjUsMTY5NDA3NjgzOSwzMjA0MDc1NDI4XX1yZS5pbmhlcml0cyhZLGFlKSxVLmV4cG9ydHM9WSxZLmJsb2NrU2l6ZT01MTIsWS5vdXRTaXplPTIyNCxZLmhtYWNTdHJlbmd0aD0xOTIsWS5w''@;'; put 'put ''YWRMZW5ndGg9NjQsWS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihXKXtyZXR1cm4iaGV4Ij09PVc/cmUudG9IZXgzMih0aGlzLmguc2xpY2UoMCw3KSwiYmlnIik6cmUuc3BsaXQzMih0aGlzLmguc2xpY2UoMCw3KSwiYmlnIil9fSw5MzQ0OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFy''@;'; put 'put ''IHJlPWooNjQzNiksYWU9aig1NzcyKSxZPWooNzAzOCksVz1qKDk3NDYpLE49cmUuc3VtMzIsdGU9cmUuc3VtMzJfNCxLPXJlLnN1bTMyXzUsSj1ZLmNoMzIsc2U9WS5tYWozMixvZT1ZLnMwXzI1NixjZT1ZLnMxXzI1NixkZT1ZLmcwXzI1Nix2ZT1ZLmcxXzI1NixBZT1hZS5CbG9ja0hhc2gs''@;'; put 'put ''a2U9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAz''@;'; put 'put ''LDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEyNDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDEx''@;'; put 'put ''MzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1''@;'; put 'put ''MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4NzcsOTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwy''@;'; put 'put ''NzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07ZnVuY3Rpb24gU2UoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBTZSkpcmV0dXJuIG5ldyBTZTtBZS5jYWxsKHRoaXMpLHRoaXMuaD1bMTc3OTAzMzcwMywzMTQ0MTM0Mjc3LDEwMTM5MDQyNDIsMjc3MzQ4MDc2MiwxMzU5ODkzMTE5LDI2''@;'; put 'put ''MDA4MjI5MjQsNTI4NzM0NjM1LDE1NDE0NTkyMjVdLHRoaXMuaz1rZSx0aGlzLlc9bmV3IEFycmF5KDY0KX1yZS5pbmhlcml0cyhTZSxBZSksVS5leHBvcnRzPVNlLFNlLmJsb2NrU2l6ZT01MTIsU2Uub3V0U2l6ZT0yNTYsU2UuaG1hY1N0cmVuZ3RoPTE5MixTZS5wYWRMZW5ndGg9NjQsU2Uu''@;'; put 'put ''cHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oSWUsVGUpe2Zvcih2YXIgTWU9dGhpcy5XLGhlPTA7aGU8MTY7aGUrKylNZVtoZV09SWVbVGUraGVdO2Zvcig7aGU8TWUubGVuZ3RoO2hlKyspTWVbaGVdPXRlKHZlKE1lW2hlLTJdKSxNZVtoZS03XSxkZShNZVtoZS0xNV0pLE1lW2hlLTE2XSk7''@;'; put 'put ''dmFyIE89dGhpcy5oWzBdLHo9dGhpcy5oWzFdLGVlPXRoaXMuaFsyXSxuZT10aGlzLmhbM10seD10aGlzLmhbNF0sUD10aGlzLmhbNV0sVj10aGlzLmhbNl0sVD10aGlzLmhbN107Zm9yKFcodGhpcy5rLmxlbmd0aD09PU1lLmxlbmd0aCksaGU9MDtoZTxNZS5sZW5ndGg7aGUrKyl7dmFyIFM9''@;'; put 'put ''SyhULGNlKHgpLEooeCxQLFYpLHRoaXMua1toZV0sTWVbaGVdKSxGPU4ob2UoTyksc2UoTyx6LGVlKSk7VD1WLFY9UCxQPXgseD1OKG5lLFMpLG5lPWVlLGVlPXosej1PLE89TihTLEYpfXRoaXMuaFswXT1OKHRoaXMuaFswXSxPKSx0aGlzLmhbMV09Tih0aGlzLmhbMV0seiksdGhpcy5oWzJd''@;'; put 'put ''PU4odGhpcy5oWzJdLGVlKSx0aGlzLmhbM109Tih0aGlzLmhbM10sbmUpLHRoaXMuaFs0XT1OKHRoaXMuaFs0XSx4KSx0aGlzLmhbNV09Tih0aGlzLmhbNV0sUCksdGhpcy5oWzZdPU4odGhpcy5oWzZdLFYpLHRoaXMuaFs3XT1OKHRoaXMuaFs3XSxUKX0sU2UucHJvdG90eXBlLl9kaWdlc3Q9''@;'; put 'put ''ZnVuY3Rpb24oSWUpe3JldHVybiJoZXgiPT09SWU/cmUudG9IZXgzMih0aGlzLmgsImJpZyIpOnJlLnNwbGl0MzIodGhpcy5oLCJiaWciKX19LDc3MjooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDY0MzYpLGFlPWooNTkwMCk7ZnVuY3Rpb24gWSgpe2lmKCEodGhpcyBpbnN0YW5j''@;'; put 'put ''ZW9mIFkpKXJldHVybiBuZXcgWTthZS5jYWxsKHRoaXMpLHRoaXMuaD1bMzQxODA3MDM2NSwzMjM4MzcxMDMyLDE2NTQyNzAyNTAsOTE0MTUwNjYzLDI0Mzg1MjkzNzAsODEyNzAyOTk5LDM1NTQ2MjM2MCw0MTQ0OTEyNjk3LDE3MzE0MDU0MTUsNDI5MDc3NTg1NywyMzk0MTgwMjMxLDE3NTA2''@;'; put 'put ''MDMwMjUsMzY3NTAwODUyNSwxNjk0MDc2ODM5LDEyMDMwNjI4MTMsMzIwNDA3NTQyOF19cmUuaW5oZXJpdHMoWSxhZSksVS5leHBvcnRzPVksWS5ibG9ja1NpemU9MTAyNCxZLm91dFNpemU9Mzg0LFkuaG1hY1N0cmVuZ3RoPTE5MixZLnBhZExlbmd0aD0xMjgsWS5wcm90b3R5cGUuX2RpZ2Vz''@;'; put 'put ''dD1mdW5jdGlvbihXKXtyZXR1cm4iaGV4Ij09PVc/cmUudG9IZXgzMih0aGlzLmguc2xpY2UoMCwxMiksImJpZyIpOnJlLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LDU5MDA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig2NDM2KSxhZT1qKDU3NzIpLFk9aig5''@;'; put 'put ''NzQ2KSxXPXJlLnJvdHI2NF9oaSxOPXJlLnJvdHI2NF9sbyx0ZT1yZS5zaHI2NF9oaSxLPXJlLnNocjY0X2xvLEo9cmUuc3VtNjQsc2U9cmUuc3VtNjRfaGksb2U9cmUuc3VtNjRfbG8sY2U9cmUuc3VtNjRfNF9oaSxkZT1yZS5zdW02NF80X2xvLHZlPXJlLnN1bTY0XzVfaGksQWU9cmUuc3Vt''@;'; put 'put ''NjRfNV9sbyxrZT1hZS5CbG9ja0hhc2gsU2U9WzExMTYzNTI0MDgsMzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1''@;'; put 'put ''NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEz''@;'; put 'put ''LDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2''@;'; put 'put ''NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1''@;'; put 'put ''Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4MywzMzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3Mzkw''@;'; put 'put ''LDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywz''@;'; put 'put ''NjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcxOTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1''@;'; put 'put ''NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUzNzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0''@;'; put 'put ''NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMxMTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEs''@;'; put 'put ''NDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4''@;'; put 'put ''MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAxNTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXTtmdW5jdGlvbiBJZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIEllKSlyZXR1cm4gbmV3IEllO2tlLmNhbGwodGhp''@;'; put 'put ''cyksdGhpcy5oPVsxNzc5MDMzNzAzLDQwODkyMzU3MjAsMzE0NDEzNDI3NywyMjI3ODczNTk1LDEwMTM5MDQyNDIsNDI3MTE3NTcyMywyNzczNDgwNzYyLDE1OTU3NTAxMjksMTM1OTg5MzExOSwyOTE3NTY1MTM3LDI2MDA4MjI5MjQsNzI1NTExMTk5LDUyODczNDYzNSw0MjE1Mzg5NTQ3LDE1''@;'; put 'put ''NDE0NTkyMjUsMzI3MDMzMjA5XSx0aGlzLms9U2UsdGhpcy5XPW5ldyBBcnJheSgxNjApfWZ1bmN0aW9uIFRlKEYseWUsQ2UsRGUsUGUpe3ZhciBRZT1GJkNlXn5GJlBlO3JldHVybiBRZTwwJiYoUWUrPTQyOTQ5NjcyOTYpLFFlfWZ1bmN0aW9uIE1lKEYseWUsQ2UsRGUsUGUsUWUpe3ZhciAk''@;'; put 'put ''ZT15ZSZEZV5+eWUmUWU7cmV0dXJuICRlPDAmJigkZSs9NDI5NDk2NzI5NiksJGV9ZnVuY3Rpb24gaGUoRix5ZSxDZSxEZSxQZSl7dmFyIFFlPUYmQ2VeRiZQZV5DZSZQZTtyZXR1cm4gUWU8MCYmKFFlKz00Mjk0OTY3Mjk2KSxRZX1mdW5jdGlvbiBPKEYseWUsQ2UsRGUsUGUsUWUpe3ZhciAk''@;'; put 'put ''ZT15ZSZEZV55ZSZRZV5EZSZRZTtyZXR1cm4gJGU8MCYmKCRlKz00Mjk0OTY3Mjk2KSwkZX1mdW5jdGlvbiB6KEYseWUpe3ZhciBDZT1XKEYseWUsMjgpXlcoeWUsRiwyKV5XKHllLEYsNyk7cmV0dXJuIENlPDAmJihDZSs9NDI5NDk2NzI5NiksQ2V9ZnVuY3Rpb24gZWUoRix5ZSl7dmFyIENl''@;'; put 'put ''PU4oRix5ZSwyOCleTih5ZSxGLDIpXk4oeWUsRiw3KTtyZXR1cm4gQ2U8MCYmKENlKz00Mjk0OTY3Mjk2KSxDZX1mdW5jdGlvbiBuZShGLHllKXt2YXIgQ2U9VyhGLHllLDE0KV5XKEYseWUsMTgpXlcoeWUsRiw5KTtyZXR1cm4gQ2U8MCYmKENlKz00Mjk0OTY3Mjk2KSxDZX1mdW5jdGlvbiB4''@;'; put 'put ''KEYseWUpe3ZhciBDZT1OKEYseWUsMTQpXk4oRix5ZSwxOCleTih5ZSxGLDkpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfWZ1bmN0aW9uIFAoRix5ZSl7dmFyIENlPVcoRix5ZSwxKV5XKEYseWUsOCledGUoRix5ZSw3KTtyZXR1cm4gQ2U8MCYmKENlKz00Mjk0OTY3Mjk2KSxD''@;'; put 'put ''ZX1mdW5jdGlvbiBWKEYseWUpe3ZhciBDZT1OKEYseWUsMSleTihGLHllLDgpXksoRix5ZSw3KTtyZXR1cm4gQ2U8MCYmKENlKz00Mjk0OTY3Mjk2KSxDZX1mdW5jdGlvbiBUKEYseWUpe3ZhciBDZT1XKEYseWUsMTkpXlcoeWUsRiwyOSledGUoRix5ZSw2KTtyZXR1cm4gQ2U8MCYmKENlKz00''@;'; put 'put ''Mjk0OTY3Mjk2KSxDZX1mdW5jdGlvbiBTKEYseWUpe3ZhciBDZT1OKEYseWUsMTkpXk4oeWUsRiwyOSleSyhGLHllLDYpO3JldHVybiBDZTwwJiYoQ2UrPTQyOTQ5NjcyOTYpLENlfXJlLmluaGVyaXRzKEllLGtlKSxVLmV4cG9ydHM9SWUsSWUuYmxvY2tTaXplPTEwMjQsSWUub3V0U2l6ZT01''@;'; put 'put ''MTIsSWUuaG1hY1N0cmVuZ3RoPTE5MixJZS5wYWRMZW5ndGg9MTI4LEllLnByb3RvdHlwZS5fcHJlcGFyZUJsb2NrPWZ1bmN0aW9uKEYseWUpe2Zvcih2YXIgQ2U9dGhpcy5XLERlPTA7RGU8MzI7RGUrKylDZVtEZV09Rlt5ZStEZV07Zm9yKDtEZTxDZS5sZW5ndGg7RGUrPTIpe3ZhciBQZT1U''@;'; put 'put ''KENlW0RlLTRdLENlW0RlLTNdKSxRZT1TKENlW0RlLTRdLENlW0RlLTNdKSwkZT1DZVtEZS0xNF0sZ3Q9Q2VbRGUtMTNdLHd0PVAoQ2VbRGUtMzBdLENlW0RlLTI5XSksbXQ9VihDZVtEZS0zMF0sQ2VbRGUtMjldKSx2dD1DZVtEZS0zMl0sQXQ9Q2VbRGUtMzFdO0NlW0RlXT1jZShQZSxRZSwk''@;'; put 'put ''ZSxndCx3dCxtdCx2dCxBdCksQ2VbRGUrMV09ZGUoUGUsUWUsJGUsZ3Qsd3QsbXQsdnQsQXQpfX0sSWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oRix5ZSl7dGhpcy5fcHJlcGFyZUJsb2NrKEYseWUpO3ZhciBDZT10aGlzLlcsRGU9dGhpcy5oWzBdLFBlPXRoaXMuaFsxXSxRZT10aGlz''@;'; put 'put ''LmhbMl0sJGU9dGhpcy5oWzNdLGd0PXRoaXMuaFs0XSx3dD10aGlzLmhbNV0sbXQ9dGhpcy5oWzZdLHZ0PXRoaXMuaFs3XSxBdD10aGlzLmhbOF0saHQ9dGhpcy5oWzldLEJ0PXRoaXMuaFsxMF0sb249dGhpcy5oWzExXSxfdD10aGlzLmhbMTJdLHR0PXRoaXMuaFsxM10sZXQ9dGhpcy5oWzE0''@;'; put 'put ''XSxsdD10aGlzLmhbMTVdO1kodGhpcy5rLmxlbmd0aD09PUNlLmxlbmd0aCk7Zm9yKHZhciBMdD0wO0x0PENlLmxlbmd0aDtMdCs9Mil7dmFyIEN0PWV0LGZ0PWx0LEh0PW5lKEF0LGh0KSxHZT14KEF0LGh0KSxVZT1UZShBdCwwLEJ0LDAsX3QpLHl0PU1lKDAsaHQsMCxvbiwwLHR0KSxqdD10''@;'; put 'put ''aGlzLmtbTHRdLEp0PXRoaXMua1tMdCsxXSxnbj1DZVtMdF0sZG49Q2VbTHQrMV0seW49dmUoQ3QsZnQsSHQsR2UsVWUseXQsanQsSnQsZ24sZG4pLGxuPUFlKEN0LGZ0LEh0LEdlLFVlLHl0LGp0LEp0LGduLGRuKTtDdD16KERlLFBlKSxmdD1lZShEZSxQZSksSHQ9aGUoRGUsMCxRZSwwLGd0''@;'; put 'put ''KSxHZT1PKDAsUGUsMCwkZSwwLHd0KTt2YXIgTm49c2UoQ3QsZnQsSHQsR2UpLGJuPW9lKEN0LGZ0LEh0LEdlKTtldD1fdCxsdD10dCxfdD1CdCx0dD1vbixCdD1BdCxvbj1odCxBdD1zZShtdCx2dCx5bixsbiksaHQ9b2UodnQsdnQseW4sbG4pLG10PWd0LHZ0PXd0LGd0PVFlLHd0PSRlLFFl''@;'; put 'put ''PURlLCRlPVBlLERlPXNlKHluLGxuLE5uLGJuKSxQZT1vZSh5bixsbixObixibil9Sih0aGlzLmgsMCxEZSxQZSksSih0aGlzLmgsMixRZSwkZSksSih0aGlzLmgsNCxndCx3dCksSih0aGlzLmgsNixtdCx2dCksSih0aGlzLmgsOCxBdCxodCksSih0aGlzLmgsMTAsQnQsb24pLEoodGhpcy5o''@;'; put 'put ''LDEyLF90LHR0KSxKKHRoaXMuaCwxNCxldCxsdCl9LEllLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKEYpe3JldHVybiJoZXgiPT09Rj9yZS50b0hleDMyKHRoaXMuaCwiYmlnIik6cmUuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sNzAzODooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciBy''@;'; put 'put ''ZT1qKDY0MzYpLnJvdHIzMjtmdW5jdGlvbiBhZShOLHRlLEspe3JldHVybiBOJnRlXn5OJkt9ZnVuY3Rpb24gWShOLHRlLEspe3JldHVybiBOJnRlXk4mS150ZSZLfWZ1bmN0aW9uIFcoTix0ZSxLKXtyZXR1cm4gTl50ZV5LfVEuZnRfMT1mdW5jdGlvbihOLHRlLEssSil7cmV0dXJuIDA9PT1O''@;'; put 'put ''P2FlKHRlLEssSik6MT09PU58fDM9PT1OP1codGUsSyxKKToyPT09Tj9ZKHRlLEssSik6dm9pZCAwfSxRLmNoMzI9YWUsUS5tYWozMj1ZLFEucDMyPVcsUS5zMF8yNTY9ZnVuY3Rpb24oTil7cmV0dXJuIHJlKE4sMilecmUoTiwxMylecmUoTiwyMil9LFEuczFfMjU2PWZ1bmN0aW9uKE4pe3Jl''@;'; put 'put ''dHVybiByZShOLDYpXnJlKE4sMTEpXnJlKE4sMjUpfSxRLmcwXzI1Nj1mdW5jdGlvbihOKXtyZXR1cm4gcmUoTiw3KV5yZShOLDE4KV5OPj4+M30sUS5nMV8yNTY9ZnVuY3Rpb24oTil7cmV0dXJuIHJlKE4sMTcpXnJlKE4sMTkpXk4+Pj4xMH19LDY0MzY6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0''@;'; put 'put ''Ijt2YXIgcmU9aig5NzQ2KSxhZT1qKDU3MTcpO2Z1bmN0aW9uIFkoSyxKKXtyZXR1cm4gNTUyOTY9PSg2NDUxMiZLLmNoYXJDb2RlQXQoSikpJiYhKEo8MHx8SisxPj1LLmxlbmd0aCkmJjU2MzIwPT0oNjQ1MTImSy5jaGFyQ29kZUF0KEorMSkpfWZ1bmN0aW9uIFcoSyl7cmV0dXJuKEs+Pj4y''@;'; put 'put ''NHxLPj4+OCY2NTI4MHxLPDw4JjE2NzExNjgwfCgyNTUmSyk8PDI0KT4+PjB9ZnVuY3Rpb24gTihLKXtyZXR1cm4gMT09PUsubGVuZ3RoPyIwIitLOkt9ZnVuY3Rpb24gdGUoSyl7cmV0dXJuIDc9PT1LLmxlbmd0aD8iMCIrSzo2PT09Sy5sZW5ndGg/IjAwIitLOjU9PT1LLmxlbmd0aD8iMDAw''@;'; put 'put ''IitLOjQ9PT1LLmxlbmd0aD8iMDAwMCIrSzozPT09Sy5sZW5ndGg/IjAwMDAwIitLOjI9PT1LLmxlbmd0aD8iMDAwMDAwIitLOjE9PT1LLmxlbmd0aD8iMDAwMDAwMCIrSzpLfVEuaW5oZXJpdHM9YWUsUS50b0FycmF5PWZ1bmN0aW9uKEssSil7aWYoQXJyYXkuaXNBcnJheShLKSlyZXR1cm4g''@;'; put 'put ''Sy5zbGljZSgpO2lmKCFLKXJldHVybltdO3ZhciBzZT1bXTtpZigic3RyaW5nIj09dHlwZW9mIEspaWYoSil7aWYoImhleCI9PT1KKWZvcigoSz1LLnJlcGxhY2UoL1teYS16MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKEs9IjAiK0spLGNlPTA7Y2U8Sy5sZW5ndGg7Y2UrPTIpc2UucHVz''@;'; put 'put ''aChwYXJzZUludChLW2NlXStLW2NlKzFdLDE2KSl9ZWxzZSBmb3IodmFyIG9lPTAsY2U9MDtjZTxLLmxlbmd0aDtjZSsrKXt2YXIgZGU9Sy5jaGFyQ29kZUF0KGNlKTtkZTwxMjg/c2Vbb2UrK109ZGU6ZGU8MjA0OD8oc2Vbb2UrK109ZGU+PjZ8MTkyLHNlW29lKytdPTYzJmRlfDEyOCk6WShL''@;'; put 'put ''LGNlKT8oZGU9NjU1MzYrKCgxMDIzJmRlKTw8MTApKygxMDIzJksuY2hhckNvZGVBdCgrK2NlKSksc2Vbb2UrK109ZGU+PjE4fDI0MCxzZVtvZSsrXT1kZT4+MTImNjN8MTI4LHNlW29lKytdPWRlPj42JjYzfDEyOCxzZVtvZSsrXT02MyZkZXwxMjgpOihzZVtvZSsrXT1kZT4+MTJ8MjI0LHNl''@;'; put 'put ''W29lKytdPWRlPj42JjYzfDEyOCxzZVtvZSsrXT02MyZkZXwxMjgpfWVsc2UgZm9yKGNlPTA7Y2U8Sy5sZW5ndGg7Y2UrKylzZVtjZV09MHxLW2NlXTtyZXR1cm4gc2V9LFEudG9IZXg9ZnVuY3Rpb24oSyl7Zm9yKHZhciBKPSIiLHNlPTA7c2U8Sy5sZW5ndGg7c2UrKylKKz1OKEtbc2VdLnRv''@;'; put 'put ''U3RyaW5nKDE2KSk7cmV0dXJuIEp9LFEuaHRvbmw9VyxRLnRvSGV4MzI9ZnVuY3Rpb24oSyxKKXtmb3IodmFyIHNlPSIiLG9lPTA7b2U8Sy5sZW5ndGg7b2UrKyl7dmFyIGNlPUtbb2VdOyJsaXR0bGUiPT09SiYmKGNlPVcoY2UpKSxzZSs9dGUoY2UudG9TdHJpbmcoMTYpKX1yZXR1cm4gc2V9''@;'; put 'put ''LFEuemVybzI9TixRLnplcm84PXRlLFEuam9pbjMyPWZ1bmN0aW9uKEssSixzZSxvZSl7dmFyIGNlPXNlLUo7cmUoY2UlND09MCk7Zm9yKHZhciBkZT1uZXcgQXJyYXkoY2UvNCksdmU9MCxBZT1KO3ZlPGRlLmxlbmd0aDt2ZSsrLEFlKz00KWRlW3ZlXT0oImJpZyI9PT1vZT9LW0FlXTw8MjR8''@;'; put 'put ''S1tBZSsxXTw8MTZ8S1tBZSsyXTw8OHxLW0FlKzNdOktbQWUrM108PDI0fEtbQWUrMl08PDE2fEtbQWUrMV08PDh8S1tBZV0pPj4+MDtyZXR1cm4gZGV9LFEuc3BsaXQzMj1mdW5jdGlvbihLLEope2Zvcih2YXIgc2U9bmV3IEFycmF5KDQqSy5sZW5ndGgpLG9lPTAsY2U9MDtvZTxLLmxlbmd0''@;'; put 'put ''aDtvZSsrLGNlKz00KXt2YXIgZGU9S1tvZV07ImJpZyI9PT1KPyhzZVtjZV09ZGU+Pj4yNCxzZVtjZSsxXT1kZT4+PjE2JjI1NSxzZVtjZSsyXT1kZT4+PjgmMjU1LHNlW2NlKzNdPTI1NSZkZSk6KHNlW2NlKzNdPWRlPj4+MjQsc2VbY2UrMl09ZGU+Pj4xNiYyNTUsc2VbY2UrMV09ZGU+Pj44''@;'; put 'put ''JjI1NSxzZVtjZV09MjU1JmRlKX1yZXR1cm4gc2V9LFEucm90cjMyPWZ1bmN0aW9uKEssSil7cmV0dXJuIEs+Pj5KfEs8PDMyLUp9LFEucm90bDMyPWZ1bmN0aW9uKEssSil7cmV0dXJuIEs8PEp8Sz4+PjMyLUp9LFEuc3VtMzI9ZnVuY3Rpb24oSyxKKXtyZXR1cm4gSytKPj4+MH0sUS5zdW0z''@;'; put 'put ''Ml8zPWZ1bmN0aW9uKEssSixzZSl7cmV0dXJuIEsrSitzZT4+PjB9LFEuc3VtMzJfND1mdW5jdGlvbihLLEosc2Usb2Upe3JldHVybiBLK0orc2Urb2U+Pj4wfSxRLnN1bTMyXzU9ZnVuY3Rpb24oSyxKLHNlLG9lLGNlKXtyZXR1cm4gSytKK3NlK29lK2NlPj4+MH0sUS5zdW02ND1mdW5jdGlv''@;'; put 'put ''bihLLEosc2Usb2Upe3ZhciBkZT1vZStLW0orMV0+Pj4wO0tbSl09KGRlPG9lPzE6MCkrc2UrS1tKXT4+PjAsS1tKKzFdPWRlfSxRLnN1bTY0X2hpPWZ1bmN0aW9uKEssSixzZSxvZSl7cmV0dXJuKEorb2U+Pj4wPEo/MTowKStLK3NlPj4+MH0sUS5zdW02NF9sbz1mdW5jdGlvbihLLEosc2Us''@;'; put 'put ''b2Upe3JldHVybiBKK29lPj4+MH0sUS5zdW02NF80X2hpPWZ1bmN0aW9uKEssSixzZSxvZSxjZSxkZSx2ZSxBZSl7dmFyIGtlPTAsU2U9SjtyZXR1cm4ga2UrPShTZT1TZStvZT4+PjApPEo/MTowLGtlKz0oU2U9U2UrZGU+Pj4wKTxkZT8xOjAsSytzZStjZSt2ZSsoa2UrPShTZT1TZStBZT4+''@;'; put 'put ''PjApPEFlPzE6MCk+Pj4wfSxRLnN1bTY0XzRfbG89ZnVuY3Rpb24oSyxKLHNlLG9lLGNlLGRlLHZlLEFlKXtyZXR1cm4gSitvZStkZStBZT4+PjB9LFEuc3VtNjRfNV9oaT1mdW5jdGlvbihLLEosc2Usb2UsY2UsZGUsdmUsQWUsa2UsU2Upe3ZhciBJZT0wLFRlPUo7cmV0dXJuIEllKz0oVGU9''@;'; put 'put ''VGUrb2U+Pj4wKTxKPzE6MCxJZSs9KFRlPVRlK2RlPj4+MCk8ZGU/MTowLEllKz0oVGU9VGUrQWU+Pj4wKTxBZT8xOjAsSytzZStjZSt2ZStrZSsoSWUrPShUZT1UZStTZT4+PjApPFNlPzE6MCk+Pj4wfSxRLnN1bTY0XzVfbG89ZnVuY3Rpb24oSyxKLHNlLG9lLGNlLGRlLHZlLEFlLGtlLFNl''@;'; put 'put ''KXtyZXR1cm4gSitvZStkZStBZStTZT4+PjB9LFEucm90cjY0X2hpPWZ1bmN0aW9uKEssSixzZSl7cmV0dXJuKEo8PDMyLXNlfEs+Pj5zZSk+Pj4wfSxRLnJvdHI2NF9sbz1mdW5jdGlvbihLLEosc2Upe3JldHVybihLPDwzMi1zZXxKPj4+c2UpPj4+MH0sUS5zaHI2NF9oaT1mdW5jdGlvbihL''@;'; put 'put ''LEosc2Upe3JldHVybiBLPj4+c2V9LFEuc2hyNjRfbG89ZnVuY3Rpb24oSyxKLHNlKXtyZXR1cm4oSzw8MzItc2V8Sj4+PnNlKT4+PjB9fSwyMTU2OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooMzcxNSksYWU9aig0NTA0KSxZPWooOTc0Nik7ZnVuY3Rpb24gVyhOKXtpZighKHRo''@;'; put 'put ''aXMgaW5zdGFuY2VvZiBXKSlyZXR1cm4gbmV3IFcoTik7dGhpcy5oYXNoPU4uaGFzaCx0aGlzLnByZWRSZXNpc3Q9ISFOLnByZWRSZXNpc3QsdGhpcy5vdXRMZW49dGhpcy5oYXNoLm91dFNpemUsdGhpcy5taW5FbnRyb3B5PU4ubWluRW50cm9weXx8dGhpcy5oYXNoLmhtYWNTdHJlbmd0aCx0''@;'; put 'put ''aGlzLl9yZXNlZWQ9bnVsbCx0aGlzLnJlc2VlZEludGVydmFsPW51bGwsdGhpcy5LPW51bGwsdGhpcy5WPW51bGw7dmFyIHRlPWFlLnRvQXJyYXkoTi5lbnRyb3B5LE4uZW50cm9weUVuY3x8ImhleCIpLEs9YWUudG9BcnJheShOLm5vbmNlLE4ubm9uY2VFbmN8fCJoZXgiKSxKPWFlLnRvQXJy''@;'; put 'put ''YXkoTi5wZXJzLE4ucGVyc0VuY3x8ImhleCIpO1kodGUubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9weSsiIGJpdHMiKSx0aGlzLl9pbml0KHRlLEssSil9VS5leHBvcnRzPVcsVy5wcm90b3R5cGUuX2lu''@;'; put 'put ''aXQ9ZnVuY3Rpb24oTix0ZSxLKXt2YXIgSj1OLmNvbmNhdCh0ZSkuY29uY2F0KEspO3RoaXMuSz1uZXcgQXJyYXkodGhpcy5vdXRMZW4vOCksdGhpcy5WPW5ldyBBcnJheSh0aGlzLm91dExlbi84KTtmb3IodmFyIHNlPTA7c2U8dGhpcy5WLmxlbmd0aDtzZSsrKXRoaXMuS1tzZV09MCx0aGlz''@;'; put 'put ''LlZbc2VdPTE7dGhpcy5fdXBkYXRlKEopLHRoaXMuX3Jlc2VlZD0xLHRoaXMucmVzZWVkSW50ZXJ2YWw9MjgxNDc0OTc2NzEwNjU2fSxXLnByb3RvdHlwZS5faG1hYz1mdW5jdGlvbigpe3JldHVybiBuZXcgcmUuaG1hYyh0aGlzLmhhc2gsdGhpcy5LKX0sVy5wcm90b3R5cGUuX3VwZGF0ZT1m''@;'; put 'put ''dW5jdGlvbihOKXt2YXIgdGU9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLnVwZGF0ZShbMF0pO04mJih0ZT10ZS51cGRhdGUoTikpLHRoaXMuSz10ZS5kaWdlc3QoKSx0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpLE4mJih0aGlzLks9dGhpcy5faG1hYygp''@;'; put 'put ''LnVwZGF0ZSh0aGlzLlYpLnVwZGF0ZShbMV0pLnVwZGF0ZShOKS5kaWdlc3QoKSx0aGlzLlY9dGhpcy5faG1hYygpLnVwZGF0ZSh0aGlzLlYpLmRpZ2VzdCgpKX0sVy5wcm90b3R5cGUucmVzZWVkPWZ1bmN0aW9uKE4sdGUsSyxKKXsic3RyaW5nIiE9dHlwZW9mIHRlJiYoSj1LLEs9dGUsdGU9''@;'; put 'put ''bnVsbCksTj1hZS50b0FycmF5KE4sdGUpLEs9YWUudG9BcnJheShLLEopLFkoTi5sZW5ndGg+PXRoaXMubWluRW50cm9weS84LCJOb3QgZW5vdWdoIGVudHJvcHkuIE1pbmltdW0gaXM6ICIrdGhpcy5taW5FbnRyb3B5KyIgYml0cyIpLHRoaXMuX3VwZGF0ZShOLmNvbmNhdChLfHxbXSkpLHRo''@;'; put 'put ''aXMuX3Jlc2VlZD0xfSxXLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihOLHRlLEssSil7aWYodGhpcy5fcmVzZWVkPnRoaXMucmVzZWVkSW50ZXJ2YWwpdGhyb3cgbmV3IEVycm9yKCJSZXNlZWQgaXMgcmVxdWlyZWQiKTsic3RyaW5nIiE9dHlwZW9mIHRlJiYoSj1LLEs9dGUsdGU9bnVs''@;'; put 'put ''bCksSyYmKEs9YWUudG9BcnJheShLLEp8fCJoZXgiKSx0aGlzLl91cGRhdGUoSykpO2Zvcih2YXIgc2U9W107c2UubGVuZ3RoPE47KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCksc2U9c2UuY29uY2F0KHRoaXMuVik7dmFyIG9lPXNlLnNsaWNlKDAsTik7cmV0''@;'; put 'put ''dXJuIHRoaXMuX3VwZGF0ZShLKSx0aGlzLl9yZXNlZWQrKyxhZS5lbmNvZGUob2UsdGUpfX0sNjQ1OihVLFEpPT57US5yZWFkPWZ1bmN0aW9uKGoscmUsYWUsWSxXKXt2YXIgTix0ZSxLPTgqVy1ZLTEsSj0oMTw8SyktMSxzZT1KPj4xLG9lPS03LGNlPWFlP1ctMTowLGRlPWFlPy0xOjEsdmU9''@;'; put 'put ''altyZStjZV07Zm9yKGNlKz1kZSxOPXZlJigxPDwtb2UpLTEsdmU+Pj0tb2Usb2UrPUs7b2U+MDtOPTI1NipOK2pbcmUrY2VdLGNlKz1kZSxvZS09OCk7Zm9yKHRlPU4mKDE8PC1vZSktMSxOPj49LW9lLG9lKz1ZO29lPjA7dGU9MjU2KnRlK2pbcmUrY2VdLGNlKz1kZSxvZS09OCk7aWYoMD09''@;'; put 'put ''PU4pTj0xLXNlO2Vsc2V7aWYoTj09PUopcmV0dXJuIHRlP05hTjoxLzAqKHZlPy0xOjEpO3RlKz1NYXRoLnBvdygyLFkpLE4tPXNlfXJldHVybih2ZT8tMToxKSp0ZSpNYXRoLnBvdygyLE4tWSl9LFEud3JpdGU9ZnVuY3Rpb24oaixyZSxhZSxZLFcsTil7dmFyIHRlLEssSixzZT04Kk4tVy0x''@;'; put 'put ''LG9lPSgxPDxzZSktMSxjZT1vZT4+MSxkZT0yMz09PVc/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLHZlPVk/MDpOLTEsQWU9WT8xOi0xLGtlPXJlPDB8fDA9PT1yZSYmMS9yZTwwPzE6MDtmb3IocmU9TWF0aC5hYnMocmUpLGlzTmFOKHJlKXx8cmU9PT0xLzA/KEs9aXNOYU4o''@;'; put 'put ''cmUpPzE6MCx0ZT1vZSk6KHRlPU1hdGguZmxvb3IoTWF0aC5sb2cocmUpL01hdGguTE4yKSxyZSooSj1NYXRoLnBvdygyLC10ZSkpPDEmJih0ZS0tLEoqPTIpLChyZSs9dGUrY2U+PTE/ZGUvSjpkZSpNYXRoLnBvdygyLDEtY2UpKSpKPj0yJiYodGUrKyxKLz0yKSx0ZStjZT49b2U/KEs9MCx0''@;'; put 'put ''ZT1vZSk6dGUrY2U+PTE/KEs9KHJlKkotMSkqTWF0aC5wb3coMixXKSx0ZSs9Y2UpOihLPXJlKk1hdGgucG93KDIsY2UtMSkqTWF0aC5wb3coMixXKSx0ZT0wKSk7Vz49ODtqW2FlK3ZlXT0yNTUmSyx2ZSs9QWUsSy89MjU2LFctPTgpO2Zvcih0ZT10ZTw8V3xLLHNlKz1XO3NlPjA7althZSt2''@;'; put 'put ''ZV09MjU1JnRlLHZlKz1BZSx0ZS89MjU2LHNlLT04KTtqW2FlK3ZlLUFlXXw9MTI4KmtlfX0sNzg0NDooVSxRLGopPT57dmFyIHJlPWooNDE1NSksYWU9aigyNDc5KSxZPU9iamVjdC5jcmVhdGUobnVsbCksVz1qKDc3OCk7ZnVuY3Rpb24gTih0ZSl7Zm9yKHZhciBLPXRlLmxlbmd0aCxKPVtd''@;'; put 'put ''LHNlPTA7c2U8SztzZSsrKUpbc2VdPXRlW3NlXTtyZXR1cm4gSn1VLmV4cG9ydHM9YWUoZnVuY3Rpb24odGUsSyl7cmV0dXJuIFlbdGVdPyhZW3RlXS5wdXNoKEspLG51bGwpOihZW3RlXT1bS10sSj10ZSxXKGZ1bmN0aW9uIHNlKCl7dmFyIG9lPVlbSl0sY2U9b2UubGVuZ3RoLGRlPU4oYXJn''@;'; put 'put ''dW1lbnRzKTt0cnl7Zm9yKHZhciB2ZT0wO3ZlPGNlO3ZlKyspb2VbdmVdLmFwcGx5KG51bGwsZGUpfWZpbmFsbHl7b2UubGVuZ3RoPmNlPyhvZS5zcGxpY2UoMCxjZSkscmUubmV4dFRpY2soZnVuY3Rpb24oKXtzZS5hcHBseShudWxsLGRlKX0pKTpkZWxldGUgWVtKXX19KSk7dmFyIEp9KX0s''@;'; put 'put ''NTcxNzpVPT57VS5leHBvcnRzPSJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFEsail7aiYmKFEuc3VwZXJfPWosUS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShqLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOlEsZW51bWVyYWJsZTohMSx3cml0YWJsZToh''@;'; put 'put ''MCxjb25maWd1cmFibGU6ITB9fSkpfTpmdW5jdGlvbihRLGope2lmKGope1Euc3VwZXJfPWo7dmFyIHJlPWZ1bmN0aW9uKCl7fTtyZS5wcm90b3R5cGU9ai5wcm90b3R5cGUsUS5wcm90b3R5cGU9bmV3IHJlLFEucHJvdG90eXBlLmNvbnN0cnVjdG9yPVF9fX0sMjU4NDooVSxRLGopPT57InVz''@;'; put 'put ''ZSBzdHJpY3QiO3ZhciByZT1qKDY0MTApKCksYWU9aigxOTI0KSgiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyIpLFk9ZnVuY3Rpb24odGUpe3JldHVybiEocmUmJnRlJiYib2JqZWN0Ij09dHlwZW9mIHRlJiZTeW1ib2wudG9TdHJpbmdUYWcgaW4gdGUpJiYiW29iamVjdCBBcmd1bWVudHNd''@;'; put 'put ''Ij09PWFlKHRlKX0sVz1mdW5jdGlvbih0ZSl7cmV0dXJuISFZKHRlKXx8bnVsbCE9PXRlJiYib2JqZWN0Ij09dHlwZW9mIHRlJiYibnVtYmVyIj09dHlwZW9mIHRlLmxlbmd0aCYmdGUubGVuZ3RoPj0wJiYiW29iamVjdCBBcnJheV0iIT09YWUodGUpJiYiW29iamVjdCBGdW5jdGlvbl0iPT09''@;'; put 'put ''YWUodGUuY2FsbGVlKX0sTj1mdW5jdGlvbigpe3JldHVybiBZKGFyZ3VtZW50cyl9KCk7WS5pc0xlZ2FjeUFyZ3VtZW50cz1XLFUuZXhwb3J0cz1OP1k6V30sNTMyMDpVPT57InVzZSBzdHJpY3QiO3ZhciBRLGoscmU9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLGFlPSJvYmplY3QiPT10''@;'; put 'put ''eXBlb2YgUmVmbGVjdCYmbnVsbCE9PVJlZmxlY3QmJlJlZmxlY3QuYXBwbHk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFlJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnR5KXRyeXtRPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9u''@;'; put 'put ''KCl7dGhyb3cgan19KSxqPXt9LGFlKGZ1bmN0aW9uKCl7dGhyb3cgNDJ9LG51bGwsUSl9Y2F0Y2goSil7SiE9PWomJihhZT1udWxsKX1lbHNlIGFlPW51bGw7dmFyIFk9L15ccypjbGFzc1xiLyxXPWZ1bmN0aW9uKEope3RyeXt2YXIgc2U9cmUuY2FsbChKKTtyZXR1cm4gWS50ZXN0KHNlKX1j''@;'; put 'put ''YXRjaChvZSl7cmV0dXJuITF9fSxOPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsdGU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmISFTeW1ib2wudG9TdHJpbmdUYWcsSz0ib2JqZWN0Ij09dHlwZW9mIGRvY3VtZW50JiZ2b2lkIDA9PT1kb2N1bWVudC5hbGwmJnZvaWQgMCE9PWRvY3Vt''@;'; put 'put ''ZW50LmFsbD9kb2N1bWVudC5hbGw6e307VS5leHBvcnRzPWFlP2Z1bmN0aW9uKEope2lmKEo9PT1LKXJldHVybiEwO2lmKCFKfHwiZnVuY3Rpb24iIT10eXBlb2YgSiYmIm9iamVjdCIhPXR5cGVvZiBKKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBKJiYhSi5wcm90b3R5cGUpcmV0''@;'; put 'put ''dXJuITA7dHJ5e2FlKEosbnVsbCxRKX1jYXRjaChzZSl7aWYoc2UhPT1qKXJldHVybiExfXJldHVybiFXKEopfTpmdW5jdGlvbihKKXtpZihKPT09SylyZXR1cm4hMDtpZighSnx8ImZ1bmN0aW9uIiE9dHlwZW9mIEomJiJvYmplY3QiIT10eXBlb2YgSilyZXR1cm4hMTtpZigiZnVuY3Rpb24i''@;'; put 'put ''PT10eXBlb2YgSiYmIUoucHJvdG90eXBlKXJldHVybiEwO2lmKHRlKXJldHVybiBmdW5jdGlvbihvZSl7dHJ5e3JldHVybiFXKG9lKSYmKHJlLmNhbGwob2UpLCEwKX1jYXRjaChjZSl7cmV0dXJuITF9fShKKTtpZihXKEopKXJldHVybiExO3ZhciBzZT1OLmNhbGwoSik7cmV0dXJuIltvYmpl''@;'; put 'put ''Y3QgRnVuY3Rpb25dIj09PXNlfHwiW29iamVjdCBHZW5lcmF0b3JGdW5jdGlvbl0iPT09c2V9fSw4NjYyOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlLGFlPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsWT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmcsVz0vXlxzKig/OmZ1bmN0''@;'; put 'put ''aW9uKT9cKi8sTj1qKDY0MTApKCksdGU9T2JqZWN0LmdldFByb3RvdHlwZU9mO1UuZXhwb3J0cz1mdW5jdGlvbihLKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgSylyZXR1cm4hMTtpZihXLnRlc3QoWS5jYWxsKEspKSlyZXR1cm4hMDtpZighTilyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JGdW5j''@;'; put 'put ''dGlvbl0iPT09YWUuY2FsbChLKTtpZighdGUpcmV0dXJuITE7aWYodm9pZCAwPT09cmUpe3ZhciBKPWZ1bmN0aW9uKCl7aWYoIU4pcmV0dXJuITE7dHJ5e3JldHVybiBGdW5jdGlvbigicmV0dXJuIGZ1bmN0aW9uKigpIHt9IikoKX1jYXRjaChzZSl7fX0oKTtyZT0hIUomJnRlKEopfXJldHVy''@;'; put 'put ''biB0ZShLKT09PXJlfX0sODYxMTpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1mdW5jdGlvbihRKXtyZXR1cm4gUSE9UX19LDM2MDooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDU1NTkpLGFlPWooNDI4OSksWT1qKDg2MTEpLFc9aig5NDE1KSxOPWooMzE5NCksdGU9cmUoVygp''@;'; put 'put ''LE51bWJlcik7YWUodGUse2dldFBvbHlmaWxsOlcsaW1wbGVtZW50YXRpb246WSxzaGltOk59KSxVLmV4cG9ydHM9dGV9LDk0MTU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig4NjExKTtVLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLmlzTmFOJiZOdW1iZXIuaXNO''@;'; put 'put ''YU4oTmFOKSYmIU51bWJlci5pc05hTigiYSIpP051bWJlci5pc05hTjpyZX19LDMxOTQ6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0Mjg5KSxhZT1qKDk0MTUpO1UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBZPWFlKCk7cmV0dXJuIHJlKE51bWJlcix7aXNOYU46WX0se2lzTmFO''@;'; put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIE51bWJlci5pc05hTiE9PVl9fSksWX19LDU2OTI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MDI5KSxhZT1qKDMwODMpLFk9aigxOTI0KSxXPVkoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmciKSxOPWooNjQxMCkoKSx0ZT0idW5kZWZpbmVk''@;'; put 'put ''Ij09dHlwZW9mIGdsb2JhbFRoaXM/ai5nOmdsb2JhbFRoaXMsSz1hZSgpLEo9WSgiQXJyYXkucHJvdG90eXBlLmluZGV4T2YiLCEwKXx8ZnVuY3Rpb24odmUsQWUpe2Zvcih2YXIga2U9MDtrZTx2ZS5sZW5ndGg7a2UrPTEpaWYodmVba2VdPT09QWUpcmV0dXJuIGtlO3JldHVybi0xfSxzZT1Z''@;'; put 'put ''KCJTdHJpbmcucHJvdG90eXBlLnNsaWNlIiksb2U9e30sY2U9aig4ODIpLGRlPU9iamVjdC5nZXRQcm90b3R5cGVPZjtOJiZjZSYmZGUmJnJlKEssZnVuY3Rpb24odmUpe3ZhciBBZT1uZXcgdGVbdmVdO2lmKFN5bWJvbC50b1N0cmluZ1RhZyBpbiBBZSl7dmFyIGtlPWRlKEFlKSxTZT1jZShr''@;'; put 'put ''ZSxTeW1ib2wudG9TdHJpbmdUYWcpO2lmKCFTZSl7dmFyIEllPWRlKGtlKTtTZT1jZShJZSxTeW1ib2wudG9TdHJpbmdUYWcpfW9lW3ZlXT1TZS5nZXR9fSksVS5leHBvcnRzPWZ1bmN0aW9uKHZlKXtpZighdmV8fCJvYmplY3QiIT10eXBlb2YgdmUpcmV0dXJuITE7aWYoIU58fCEoU3ltYm9s''@;'; put 'put ''LnRvU3RyaW5nVGFnIGluIHZlKSl7dmFyIEFlPXNlKFcodmUpLDgsLTEpO3JldHVybiBKKEssQWUpPi0xfXJldHVybiEhY2UmJihrZT12ZSxTZT0hMSxyZShvZSxmdW5jdGlvbihJZSxUZSl7aWYoIVNlKXRyeXtTZT1JZS5jYWxsKGtlKT09PVRlfWNhdGNoKE1lKXt9fSksU2UpO3ZhciBrZSxT''@;'; put 'put ''ZX19LDY4MTM6KFUsUSxqKT0+e2xldCByZTt0cnl7cmU9aig3Nyl9Y2F0Y2godGUpe3JlPWooNDEyOSl9Y29uc3QgYWU9aig4OTgxKSx7c3RyaW5naWZ5Olksc3RyaXBCb206V309aig2NzgwKSxOPXtyZWFkRmlsZTphZS5mcm9tUHJvbWlzZShmdW5jdGlvbigpe3ZhciB0ZT1tZShmdW5jdGlv''@;'; put 'put ''biooSyxKPXt9KXsic3RyaW5nIj09dHlwZW9mIEomJihKPXtlbmNvZGluZzpKfSk7Y29uc3Qgc2U9Si5mc3x8cmUsb2U9ISgidGhyb3dzImluIEopfHxKLnRocm93cztsZXQgY2UsZGU9eWllbGQgYWUuZnJvbUNhbGxiYWNrKHNlLnJlYWRGaWxlKShLLEopO2RlPVcoZGUpO3RyeXtjZT1KU09O''@;'; put 'put ''LnBhcnNlKGRlLEo/Si5yZXZpdmVyOm51bGwpfWNhdGNoKHZlKXtpZihvZSl0aHJvdyB2ZS5tZXNzYWdlPWAke0t9OiAke3ZlLm1lc3NhZ2V9YCx2ZTtyZXR1cm4gbnVsbH1yZXR1cm4gY2V9KTtyZXR1cm4gZnVuY3Rpb24oSyl7cmV0dXJuIHRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkp''@;'; put 'put ''LHJlYWRGaWxlU3luYzpmdW5jdGlvbih0ZSxLPXt9KXsic3RyaW5nIj09dHlwZW9mIEsmJihLPXtlbmNvZGluZzpLfSk7Y29uc3QgSj1LLmZzfHxyZSxzZT0hKCJ0aHJvd3MiaW4gSyl8fEsudGhyb3dzO3RyeXtsZXQgb2U9Si5yZWFkRmlsZVN5bmModGUsSyk7cmV0dXJuIG9lPVcob2UpLEpT''@;'; put 'put ''T04ucGFyc2Uob2UsSy5yZXZpdmVyKX1jYXRjaChvZSl7aWYoc2UpdGhyb3cgb2UubWVzc2FnZT1gJHt0ZX06ICR7b2UubWVzc2FnZX1gLG9lO3JldHVybiBudWxsfX0sd3JpdGVGaWxlOmFlLmZyb21Qcm9taXNlKGZ1bmN0aW9uKCl7dmFyIHRlPW1lKGZ1bmN0aW9uKihLLEosc2U9e30pe2Nv''@;'; put 'put ''bnN0IG9lPXNlLmZzfHxyZSxjZT1ZKEosc2UpO3lpZWxkIGFlLmZyb21DYWxsYmFjayhvZS53cml0ZUZpbGUpKEssY2Usc2UpfSk7cmV0dXJuIGZ1bmN0aW9uKEssSil7cmV0dXJuIHRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KCkpLHdyaXRlRmlsZVN5bmM6ZnVuY3Rpb24odGUsSyxKPXt9''@;'; put 'put ''KXtjb25zdCBzZT1KLmZzfHxyZSxvZT1ZKEssSik7cmV0dXJuIHNlLndyaXRlRmlsZVN5bmModGUsb2UsSil9fTtVLmV4cG9ydHM9Tn0sNjc4MDooVSxRLGopPT57dmFyIHJlPWooODc2NCkuQnVmZmVyO1UuZXhwb3J0cz17c3RyaW5naWZ5OmZ1bmN0aW9uKGFlLHtFT0w6WT0iXG4iLGZpbmFs''@;'; put 'put ''RU9MOlc9ITAscmVwbGFjZXI6Tj1udWxsLHNwYWNlczp0ZX09e30pe2NvbnN0IEs9Vz9ZOiIiO3JldHVybiBKU09OLnN0cmluZ2lmeShhZSxOLHRlKS5yZXBsYWNlKC9cbi9nLFkpK0t9LHN0cmlwQm9tOmZ1bmN0aW9uKGFlKXtyZXR1cm4gcmUuaXNCdWZmZXIoYWUpJiYoYWU9YWUudG9TdHJp''@;'; put 'put ''bmcoInV0ZjgiKSksYWUucmVwbGFjZSgvXlx1RkVGRi8sIiIpfX19LDYyNDU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByZSh0ZSl7dGhpcy5tZXNzYWdlPXRlfWoucihRKSxqLmQoUSx7ZGVmYXVsdDooKT0+TixJbnZhbGlkVG9rZW5FcnJvcjooKT0+V30pLChyZS5wcm90b3R5''@;'; put 'put ''cGU9bmV3IEVycm9yKS5uYW1lPSJJbnZhbGlkQ2hhcmFjdGVyRXJyb3IiO3ZhciBhZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LmF0b2ImJndpbmRvdy5hdG9iLmJpbmQod2luZG93KXx8ZnVuY3Rpb24odGUpe3ZhciBLPVN0cmluZyh0ZSkucmVwbGFjZSgvPSskLywiIik7''@;'; put 'put ''aWYoSy5sZW5ndGglND09MSl0aHJvdyBuZXcgcmUoIidhdG9iJyBmYWlsZWQ6IFRoZSBzdHJpbmcgdG8gYmUgZGVjb2RlZCBpcyBub3QgY29ycmVjdGx5IGVuY29kZWQuIik7Zm9yKHZhciBKLHNlLG9lPTAsY2U9MCxkZT0iIjtzZT1LLmNoYXJBdChjZSsrKTt+c2UmJihKPW9lJTQ/NjQqSitz''@;'; put 'put ''ZTpzZSxvZSsrJTQpP2RlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDI1NSZKPj4oLTIqb2UmNikpOjApc2U9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89Ii5pbmRleE9mKHNlKTtyZXR1cm4gZGV9O2Z1bmN0aW9uIFcodGUp''@;'; put 'put ''e3RoaXMubWVzc2FnZT10ZX0oVy5wcm90b3R5cGU9bmV3IEVycm9yKS5uYW1lPSJJbnZhbGlkVG9rZW5FcnJvciI7Y29uc3QgTj1mdW5jdGlvbih0ZSxLKXtpZigic3RyaW5nIiE9dHlwZW9mIHRlKXRocm93IG5ldyBXKCJJbnZhbGlkIHRva2VuIHNwZWNpZmllZCIpO3ZhciBKPSEwPT09KEs9''@;'; put 'put ''S3x8e30pLmhlYWRlcj8wOjE7dHJ5e3JldHVybiBKU09OLnBhcnNlKGZ1bmN0aW9uIFkodGUpe3ZhciBLPXRlLnJlcGxhY2UoLy0vZywiKyIpLnJlcGxhY2UoL18vZywiLyIpO3N3aXRjaChLLmxlbmd0aCU0KXtjYXNlIDA6YnJlYWs7Y2FzZSAyOksrPSI9PSI7YnJlYWs7Y2FzZSAzOksrPSI9''@;'; put 'put ''IjticmVhaztkZWZhdWx0OnRocm93IklsbGVnYWwgYmFzZTY0dXJsIHN0cmluZyEifXRyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGFlKEspLnJlcGxhY2UoLyguKS9nLGZ1bmN0aW9uKHNlLG9lKXt2YXIgY2U9b2UuY2hhckNvZGVBdCgwKS50b1N0cmluZygxNikudG9VcHBlckNhc2Uo''@;'; put 'put ''KTtyZXR1cm4gY2UubGVuZ3RoPDImJihjZT0iMCIrY2UpLCIlIitjZX0pKX1jYXRjaChKKXtyZXR1cm4gYWUoSyl9fSh0ZS5zcGxpdCgiLiIpW0pdKSl9Y2F0Y2goc2Upe3Rocm93IG5ldyBXKCJJbnZhbGlkIHRva2VuIHNwZWNpZmllZDogIitzZS5tZXNzYWdlKX19fSwyMzE4OihVLFEsaik9''@;'; put 'put ''PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNTcxNyksYWU9aigzMzQ5KSxZPWooOTUwOSkuQnVmZmVyLFc9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBOKCl7YWUuY2FsbCh0aGlzLDY0KSx0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlz''@;'; put 'put ''Ll9kPTI3MTczMzg3OH1mdW5jdGlvbiB0ZShjZSxkZSl7cmV0dXJuIGNlPDxkZXxjZT4+PjMyLWRlfWZ1bmN0aW9uIEsoY2UsZGUsdmUsQWUsa2UsU2UsSWUpe3JldHVybiB0ZShjZSsoZGUmdmV8fmRlJkFlKStrZStTZXwwLEllKStkZXwwfWZ1bmN0aW9uIEooY2UsZGUsdmUsQWUsa2UsU2Us''@;'; put 'put ''SWUpe3JldHVybiB0ZShjZSsoZGUmQWV8dmUmfkFlKStrZStTZXwwLEllKStkZXwwfWZ1bmN0aW9uIHNlKGNlLGRlLHZlLEFlLGtlLFNlLEllKXtyZXR1cm4gdGUoY2UrKGRlXnZlXkFlKStrZStTZXwwLEllKStkZXwwfWZ1bmN0aW9uIG9lKGNlLGRlLHZlLEFlLGtlLFNlLEllKXtyZXR1cm4g''@;'; put 'put ''dGUoY2UrKHZlXihkZXx+QWUpKStrZStTZXwwLEllKStkZXwwfXJlKE4sYWUpLE4ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIGNlPVcsZGU9MDtkZTwxNjsrK2RlKWNlW2RlXT10aGlzLl9ibG9jay5yZWFkSW50MzJMRSg0KmRlKTt2YXIgdmU9dGhpcy5fYSxBZT10aGlz''@;'; put 'put ''Ll9iLGtlPXRoaXMuX2MsU2U9dGhpcy5fZDt2ZT1LKHZlLEFlLGtlLFNlLGNlWzBdLDM2MTQwOTAzNjAsNyksU2U9SyhTZSx2ZSxBZSxrZSxjZVsxXSwzOTA1NDAyNzEwLDEyKSxrZT1LKGtlLFNlLHZlLEFlLGNlWzJdLDYwNjEwNTgxOSwxNyksQWU9SyhBZSxrZSxTZSx2ZSxjZVszXSwzMjUw''@;'; put 'put ''NDQxOTY2LDIyKSx2ZT1LKHZlLEFlLGtlLFNlLGNlWzRdLDQxMTg1NDgzOTksNyksU2U9SyhTZSx2ZSxBZSxrZSxjZVs1XSwxMjAwMDgwNDI2LDEyKSxrZT1LKGtlLFNlLHZlLEFlLGNlWzZdLDI4MjE3MzU5NTUsMTcpLEFlPUsoQWUsa2UsU2UsdmUsY2VbN10sNDI0OTI2MTMxMywyMiksdmU9''@;'; put 'put ''Syh2ZSxBZSxrZSxTZSxjZVs4XSwxNzcwMDM1NDE2LDcpLFNlPUsoU2UsdmUsQWUsa2UsY2VbOV0sMjMzNjU1Mjg3OSwxMiksa2U9SyhrZSxTZSx2ZSxBZSxjZVsxMF0sNDI5NDkyNTIzMywxNyksQWU9SyhBZSxrZSxTZSx2ZSxjZVsxMV0sMjMwNDU2MzEzNCwyMiksdmU9Syh2ZSxBZSxrZSxT''@;'; put 'put ''ZSxjZVsxMl0sMTgwNDYwMzY4Miw3KSxTZT1LKFNlLHZlLEFlLGtlLGNlWzEzXSw0MjU0NjI2MTk1LDEyKSxrZT1LKGtlLFNlLHZlLEFlLGNlWzE0XSwyNzkyOTY1MDA2LDE3KSx2ZT1KKHZlLEFlPUsoQWUsa2UsU2UsdmUsY2VbMTVdLDEyMzY1MzUzMjksMjIpLGtlLFNlLGNlWzFdLDQxMjkx''@;'; put 'put ''NzA3ODYsNSksU2U9SihTZSx2ZSxBZSxrZSxjZVs2XSwzMjI1NDY1NjY0LDkpLGtlPUooa2UsU2UsdmUsQWUsY2VbMTFdLDY0MzcxNzcxMywxNCksQWU9SihBZSxrZSxTZSx2ZSxjZVswXSwzOTIxMDY5OTk0LDIwKSx2ZT1KKHZlLEFlLGtlLFNlLGNlWzVdLDM1OTM0MDg2MDUsNSksU2U9SihT''@;'; put 'put ''ZSx2ZSxBZSxrZSxjZVsxMF0sMzgwMTYwODMsOSksa2U9SihrZSxTZSx2ZSxBZSxjZVsxNV0sMzYzNDQ4ODk2MSwxNCksQWU9SihBZSxrZSxTZSx2ZSxjZVs0XSwzODg5NDI5NDQ4LDIwKSx2ZT1KKHZlLEFlLGtlLFNlLGNlWzldLDU2ODQ0NjQzOCw1KSxTZT1KKFNlLHZlLEFlLGtlLGNlWzE0''@;'; put 'put ''XSwzMjc1MTYzNjA2LDkpLGtlPUooa2UsU2UsdmUsQWUsY2VbM10sNDEwNzYwMzMzNSwxNCksQWU9SihBZSxrZSxTZSx2ZSxjZVs4XSwxMTYzNTMxNTAxLDIwKSx2ZT1KKHZlLEFlLGtlLFNlLGNlWzEzXSwyODUwMjg1ODI5LDUpLFNlPUooU2UsdmUsQWUsa2UsY2VbMl0sNDI0MzU2MzUxMiw5''@;'; put 'put ''KSxrZT1KKGtlLFNlLHZlLEFlLGNlWzddLDE3MzUzMjg0NzMsMTQpLHZlPXNlKHZlLEFlPUooQWUsa2UsU2UsdmUsY2VbMTJdLDIzNjgzNTk1NjIsMjApLGtlLFNlLGNlWzVdLDQyOTQ1ODg3MzgsNCksU2U9c2UoU2UsdmUsQWUsa2UsY2VbOF0sMjI3MjM5MjgzMywxMSksa2U9c2Uoa2UsU2Us''@;'; put 'put ''dmUsQWUsY2VbMTFdLDE4MzkwMzA1NjIsMTYpLEFlPXNlKEFlLGtlLFNlLHZlLGNlWzE0XSw0MjU5NjU3NzQwLDIzKSx2ZT1zZSh2ZSxBZSxrZSxTZSxjZVsxXSwyNzYzOTc1MjM2LDQpLFNlPXNlKFNlLHZlLEFlLGtlLGNlWzRdLDEyNzI4OTMzNTMsMTEpLGtlPXNlKGtlLFNlLHZlLEFlLGNl''@;'; put 'put ''WzddLDQxMzk0Njk2NjQsMTYpLEFlPXNlKEFlLGtlLFNlLHZlLGNlWzEwXSwzMjAwMjM2NjU2LDIzKSx2ZT1zZSh2ZSxBZSxrZSxTZSxjZVsxM10sNjgxMjc5MTc0LDQpLFNlPXNlKFNlLHZlLEFlLGtlLGNlWzBdLDM5MzY0MzAwNzQsMTEpLGtlPXNlKGtlLFNlLHZlLEFlLGNlWzNdLDM1NzI0''@;'; put 'put ''NDUzMTcsMTYpLEFlPXNlKEFlLGtlLFNlLHZlLGNlWzZdLDc2MDI5MTg5LDIzKSx2ZT1zZSh2ZSxBZSxrZSxTZSxjZVs5XSwzNjU0NjAyODA5LDQpLFNlPXNlKFNlLHZlLEFlLGtlLGNlWzEyXSwzODczMTUxNDYxLDExKSxrZT1zZShrZSxTZSx2ZSxBZSxjZVsxNV0sNTMwNzQyNTIwLDE2KSx2''@;'; put 'put ''ZT1vZSh2ZSxBZT1zZShBZSxrZSxTZSx2ZSxjZVsyXSwzMjk5NjI4NjQ1LDIzKSxrZSxTZSxjZVswXSw0MDk2MzM2NDUyLDYpLFNlPW9lKFNlLHZlLEFlLGtlLGNlWzddLDExMjY4OTE0MTUsMTApLGtlPW9lKGtlLFNlLHZlLEFlLGNlWzE0XSwyODc4NjEyMzkxLDE1KSxBZT1vZShBZSxrZSxT''@;'; put 'put ''ZSx2ZSxjZVs1XSw0MjM3NTMzMjQxLDIxKSx2ZT1vZSh2ZSxBZSxrZSxTZSxjZVsxMl0sMTcwMDQ4NTU3MSw2KSxTZT1vZShTZSx2ZSxBZSxrZSxjZVszXSwyMzk5OTgwNjkwLDEwKSxrZT1vZShrZSxTZSx2ZSxBZSxjZVsxMF0sNDI5MzkxNTc3MywxNSksQWU9b2UoQWUsa2UsU2UsdmUsY2Vb''@;'; put 'put ''MV0sMjI0MDA0NDQ5NywyMSksdmU9b2UodmUsQWUsa2UsU2UsY2VbOF0sMTg3MzMxMzM1OSw2KSxTZT1vZShTZSx2ZSxBZSxrZSxjZVsxNV0sNDI2NDM1NTU1MiwxMCksa2U9b2Uoa2UsU2UsdmUsQWUsY2VbNl0sMjczNDc2ODkxNiwxNSksQWU9b2UoQWUsa2UsU2UsdmUsY2VbMTNdLDEzMDkx''@;'; put 'put ''NTE2NDksMjEpLHZlPW9lKHZlLEFlLGtlLFNlLGNlWzRdLDQxNDk0NDQyMjYsNiksU2U9b2UoU2UsdmUsQWUsa2UsY2VbMTFdLDMxNzQ3NTY5MTcsMTApLGtlPW9lKGtlLFNlLHZlLEFlLGNlWzJdLDcxODc4NzI1OSwxNSksQWU9b2UoQWUsa2UsU2UsdmUsY2VbOV0sMzk1MTQ4MTc0NSwyMSks''@;'; put 'put ''dGhpcy5fYT10aGlzLl9hK3ZlfDAsdGhpcy5fYj10aGlzLl9iK0FlfDAsdGhpcy5fYz10aGlzLl9jK2tlfDAsdGhpcy5fZD10aGlzLl9kK1NlfDB9LE4ucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tP''@;'; put 'put ''ZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5n''@;'; put 'put ''dGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgY2U9WS5hbGxvY1Vuc2FmZSgxNik7cmV0dXJuIGNlLndyaXRlSW50MzJMRSh0aGlzLl9hLDApLGNlLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLGNlLndyaXRl''@;'; put 'put ''SW50MzJMRSh0aGlzLl9jLDgpLGNlLndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSxjZX0sVS5leHBvcnRzPU59LDMwNDc6KFUsUSxqKT0+e3ZhciByZT1qKDYyNDApLGFlPWooOTkzMSk7ZnVuY3Rpb24gWShXKXt0aGlzLnJhbmQ9V3x8bmV3IGFlLlJhbmR9VS5leHBvcnRzPVksWS5jcmVhdGU9''@;'; put 'put ''ZnVuY3Rpb24oVyl7cmV0dXJuIG5ldyBZKFcpfSxZLnByb3RvdHlwZS5fcmFuZGJlbG93PWZ1bmN0aW9uKFcpe3ZhciBOPVcuYml0TGVuZ3RoKCksdGU9TWF0aC5jZWlsKE4vOCk7ZG97dmFyIEs9bmV3IHJlKHRoaXMucmFuZC5nZW5lcmF0ZSh0ZSkpfXdoaWxlKEsuY21wKFcpPj0wKTtyZXR1''@;'; put 'put ''cm4gS30sWS5wcm90b3R5cGUuX3JhbmRyYW5nZT1mdW5jdGlvbihXLE4pe3ZhciB0ZT1OLnN1YihXKTtyZXR1cm4gVy5hZGQodGhpcy5fcmFuZGJlbG93KHRlKSl9LFkucHJvdG90eXBlLnRlc3Q9ZnVuY3Rpb24oVyxOLHRlKXt2YXIgSz1XLmJpdExlbmd0aCgpLEo9cmUubW9udChXKSxzZT1u''@;'; put 'put ''ZXcgcmUoMSkudG9SZWQoSik7Tnx8KE49TWF0aC5tYXgoMSxLLzQ4fDApKTtmb3IodmFyIG9lPVcuc3VibigxKSxjZT0wOyFvZS50ZXN0bihjZSk7Y2UrKyk7Zm9yKHZhciBkZT1XLnNocm4oY2UpLHZlPW9lLnRvUmVkKEopO04+MDtOLS0pe3ZhciBBZT10aGlzLl9yYW5kcmFuZ2UobmV3IHJl''@;'; put 'put ''KDIpLG9lKTt0ZSYmdGUoQWUpO3ZhciBrZT1BZS50b1JlZChKKS5yZWRQb3coZGUpO2lmKDAhPT1rZS5jbXAoc2UpJiYwIT09a2UuY21wKHZlKSl7Zm9yKHZhciBTZT0xO1NlPGNlO1NlKyspe2lmKDA9PT0oa2U9a2UucmVkU3FyKCkpLmNtcChzZSkpcmV0dXJuITE7aWYoMD09PWtlLmNtcCh2''@;'; put 'put ''ZSkpYnJlYWt9aWYoU2U9PT1jZSlyZXR1cm4hMX19cmV0dXJuITB9LFkucHJvdG90eXBlLmdldERpdmlzb3I9ZnVuY3Rpb24oVyxOKXt2YXIgdGU9Vy5iaXRMZW5ndGgoKSxLPXJlLm1vbnQoVyksSj1uZXcgcmUoMSkudG9SZWQoSyk7Tnx8KE49TWF0aC5tYXgoMSx0ZS80OHwwKSk7Zm9yKHZh''@;'; put 'put ''ciBzZT1XLnN1Ym4oMSksb2U9MDshc2UudGVzdG4ob2UpO29lKyspO2Zvcih2YXIgY2U9Vy5zaHJuKG9lKSxkZT1zZS50b1JlZChLKTtOPjA7Ti0tKXt2YXIgdmU9dGhpcy5fcmFuZHJhbmdlKG5ldyByZSgyKSxzZSksQWU9Vy5nY2QodmUpO2lmKDAhPT1BZS5jbXBuKDEpKXJldHVybiBBZTt2''@;'; put 'put ''YXIga2U9dmUudG9SZWQoSykucmVkUG93KGNlKTtpZigwIT09a2UuY21wKEopJiYwIT09a2UuY21wKGRlKSl7Zm9yKHZhciBTZT0xO1NlPG9lO1NlKyspe2lmKDA9PT0oa2U9a2UucmVkU3FyKCkpLmNtcChKKSlyZXR1cm4ga2UuZnJvbVJlZCgpLnN1Ym4oMSkuZ2NkKFcpO2lmKDA9PT1rZS5j''@;'; put 'put ''bXAoZGUpKWJyZWFrfWlmKFNlPT09b2UpcmV0dXJuKGtlPWtlLnJlZFNxcigpKS5mcm9tUmVkKCkuc3VibigxKS5nY2QoVyl9fXJldHVybiExfX0sNjI0MDpmdW5jdGlvbihVLFEsail7IWZ1bmN0aW9uKHJlLGFlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gWSh4LFApe2lmKCF4KXRocm93IG5l''@;'; put 'put ''dyBFcnJvcihQfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIFcoeCxQKXt4LnN1cGVyXz1QO3ZhciBWPWZ1bmN0aW9uKCl7fTtWLnByb3RvdHlwZT1QLnByb3RvdHlwZSx4LnByb3RvdHlwZT1uZXcgVix4LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj14fWZ1bmN0aW9uIE4oeCxQLFYpe2lm''@;'; put 'put ''KE4uaXNCTih4KSlyZXR1cm4geDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09eCYmKCJsZSIhPT1QJiYiYmUiIT09UHx8KFY9UCxQPTEwKSx0aGlzLl9pbml0KHh8fDAsUHx8MTAsVnx8ImJlIikpfXZhciB0ZTsib2Jq''@;'; put 'put ''ZWN0Ij09dHlwZW9mIHJlP3JlLmV4cG9ydHM9TjphZS5CTj1OLE4uQk49TixOLndvcmRTaXplPTI2O3RyeXt0ZT0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LkJ1ZmZlcj93aW5kb3cuQnVmZmVyOmooNjYxOSkuQnVmZmVyfWNhdGNoKHgpe31mdW5jdGlvbiBL''@;'; put 'put ''KHgsUCl7dmFyIFY9eC5jaGFyQ29kZUF0KFApO3JldHVybiBWPj02NSYmVjw9NzA/Vi01NTpWPj05NyYmVjw9MTAyP1YtODc6Vi00OCYxNX1mdW5jdGlvbiBKKHgsUCxWKXt2YXIgVD1LKHgsVik7cmV0dXJuIFYtMT49UCYmKFR8PUsoeCxWLTEpPDw0KSxUfWZ1bmN0aW9uIHNlKHgsUCxWLFQp''@;'; put 'put ''e2Zvcih2YXIgUz0wLEY9TWF0aC5taW4oeC5sZW5ndGgsVikseWU9UDt5ZTxGO3llKyspe3ZhciBDZT14LmNoYXJDb2RlQXQoeWUpLTQ4O1MqPVQsUys9Q2U+PTQ5P0NlLTQ5KzEwOkNlPj0xNz9DZS0xNysxMDpDZX1yZXR1cm4gU31OLmlzQk49ZnVuY3Rpb24oeCl7cmV0dXJuIHggaW5zdGFu''@;'; put 'put ''Y2VvZiBOfHxudWxsIT09eCYmIm9iamVjdCI9PXR5cGVvZiB4JiZ4LmNvbnN0cnVjdG9yLndvcmRTaXplPT09Ti53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh4LndvcmRzKX0sTi5tYXg9ZnVuY3Rpb24oeCxQKXtyZXR1cm4geC5jbXAoUCk+MD94OlB9LE4ubWluPWZ1bmN0aW9uKHgsUCl7cmV0''@;'; put 'put ''dXJuIHguY21wKFApPDA/eDpQfSxOLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih4LFAsVil7aWYoIm51bWJlciI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHgsUCxWKTtpZigib2JqZWN0Ij09dHlwZW9mIHgpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh4LFAsVik7ImhleCI9''@;'; put 'put ''PT1QJiYoUD0xNiksWShQPT09KDB8UCkmJlA+PTImJlA8PTM2KTt2YXIgVD0wOyItIj09PSh4PXgudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoVCsrLHRoaXMubmVnYXRpdmU9MSksVDx4Lmxlbmd0aCYmKDE2PT09UD90aGlzLl9wYXJzZUhleCh4LFQsVik6KHRoaXMuX3Bh''@;'; put 'put ''cnNlQmFzZSh4LFAsVCksImxlIj09PVYmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxQLFYpKSl9LE4ucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHgsUCxWKXt4PDAmJih0aGlzLm5lZ2F0aXZlPTEseD0teCkseDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMm''@;'; put 'put ''eF0sdGhpcy5sZW5ndGg9MSk6eDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ4LHgvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihZKHg8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzLDFd''@;'; put 'put ''LHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksUCxWKX0sTi5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih4LFAsVil7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgubGVuZ3RoKSx4Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1b''@;'; put 'put ''MF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh4Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEYseWU9MDtpZigiYmUiPT09Vilmb3Io''@;'; put 'put ''VD14Lmxlbmd0aC0xLFM9MDtUPj0wO1QtPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QtMV08PDh8eFtULTJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7ZWxzZSBpZigibGUiPT09Vilm''@;'; put 'put ''b3IoVD0wLFM9MDtUPHgubGVuZ3RoO1QrPTMpdGhpcy53b3Jkc1tTXXw9KEY9eFtUXXx4W1QrMV08PDh8eFtUKzJdPDwxNik8PHllJjY3MTA4ODYzLHRoaXMud29yZHNbUysxXT1GPj4+MjYteWUmNjcxMDg4NjMsKHllKz0yNCk+PTI2JiYoeWUtPTI2LFMrKyk7cmV0dXJuIHRoaXMuc3RyaXAo''@;'; put 'put ''KX0sTi5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHgsUCxWKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHgubGVuZ3RoLVApLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPTA7dmFyIFMs''@;'; put 'put ''Rj0wLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMTtUPj1QO1QtPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9NjcxMDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODtlbHNlIGZvcihUPSh4Lmxlbmd0aC1QKSUyPT0wP1Ar''@;'; put 'put ''MTpQO1Q8eC5sZW5ndGg7VCs9MilTPUooeCxQLFQpPDxGLHRoaXMud29yZHNbeWVdfD02NzEwODg2MyZTLEY+PTE4PyhGLT0xOCx0aGlzLndvcmRzW3llKz0xXXw9Uz4+PjI2KTpGKz04O3RoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuX3BhcnNlQmFzZT1mdW5jdGlvbih4LFAsVil7dGhpcy53''@;'; put 'put ''b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIFQ9MCxTPTE7Uzw9NjcxMDg4NjM7Uyo9UClUKys7VC0tLFM9Uy9QfDA7Zm9yKHZhciBGPXgubGVuZ3RoLVYseWU9RiVULENlPU1hdGgubWluKEYsRi15ZSkrVixEZT0wLFBlPVY7UGU8Q2U7UGUrPVQpRGU9c2UoeCxQZSxQZStULFApLHRo''@;'; put 'put ''aXMuaW11bG4oUyksdGhpcy53b3Jkc1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSk7aWYoMCE9PXllKXt2YXIgUWU9MTtmb3IoRGU9c2UoeCxQZSx4Lmxlbmd0aCxQKSxQZT0wO1BlPHllO1BlKyspUWUqPVA7dGhpcy5pbXVsbihRZSksdGhpcy53b3Jk''@;'; put 'put ''c1swXStEZTw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1EZTp0aGlzLl9pYWRkbihEZSl9dGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHgpe3gud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl4LndvcmRzW1Bd''@;'; put 'put ''PXRoaXMud29yZHNbUF07eC5sZW5ndGg9dGhpcy5sZW5ndGgseC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHgucmVkPXRoaXMucmVkfSxOLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB0aGlzLmNvcHkoeCkseH0sTi5wcm90b3R5cGUuX2V4cGFu''@;'; put 'put ''ZD1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0''@;'; put 'put ''aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxOLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sTi5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVy''@;'; put 'put ''bih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgb2U9WyIiLCIwIiwiMDAiLCIwMDAiLCIwMDAwIiwiMDAwMDAiLCIwMDAwMDAiLCIwMDAwMDAwIiwiMDAwMDAwMDAiLCIwMDAwMDAwMDAiLCIwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAiLCIw''@;'; put 'put ''MDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAw''@;'; put 'put ''MDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIl0sY2U9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3''@;'; put 'put ''LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sZGU9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcs''@;'; put 'put ''NzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5''@;'; put 'put ''Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gdmUoeCxQLFYpe1YubmVnYXRpdmU9UC5uZWdhdGl2ZV54Lm5lZ2F0aXZlO3ZhciBUPXgubGVuZ3RoK1AubGVuZ3RofDA7Vi5sZW5ndGg9VCxUPVQtMXwwO3ZhciBTPTB8eC53b3Jkc1swXSxGPTB8UC53b3Jkc1swXSx5ZT1T''@;'; put 'put ''KkYsRGU9eWUvNjcxMDg4NjR8MDtWLndvcmRzWzBdPTY3MTA4ODYzJnllO2Zvcih2YXIgUGU9MTtQZTxUO1BlKyspe2Zvcih2YXIgUWU9RGU+Pj4yNiwkZT02NzEwODg2MyZEZSxndD1NYXRoLm1pbihQZSxQLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLXgubGVuZ3RoKzEpO3d0PD1ndDt3''@;'; put 'put ''dCsrKVFlKz0oeWU9KFM9MHx4LndvcmRzW1BlLXd0fDBdKSooRj0wfFAud29yZHNbd3RdKSskZSkvNjcxMDg4NjR8MCwkZT02NzEwODg2MyZ5ZTtWLndvcmRzW1BlXT0wfCRlLERlPTB8UWV9cmV0dXJuIDAhPT1EZT9WLndvcmRzW1BlXT0wfERlOlYubGVuZ3RoLS0sVi5zdHJpcCgpfU4ucHJv''@;'; put 'put ''dG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHgsUCl7dmFyIFY7aWYoUD0wfFB8fDEsMTY9PT0oeD14fHwxMCl8fCJoZXgiPT09eCl7Vj0iIjtmb3IodmFyIFQ9MCxTPTAsRj0wO0Y8dGhpcy5sZW5ndGg7RisrKXt2YXIgeWU9dGhpcy53b3Jkc1tGXSxDZT0oMTY3NzcyMTUmKHllPDxUfFMpKS50''@;'; put 'put ''b1N0cmluZygxNik7Vj0wIT0oUz15ZT4+PjI0LVQmMTY3NzcyMTUpfHxGIT09dGhpcy5sZW5ndGgtMT9vZVs2LUNlLmxlbmd0aF0rQ2UrVjpDZStWLChUKz0yKT49MjYmJihULT0yNixGLS0pfWZvcigwIT09UyYmKFY9Uy50b1N0cmluZygxNikrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjty''@;'; put 'put ''ZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfWlmKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpe3ZhciBEZT1jZVt4XSxQZT1kZVt4XTtWPSIiO3ZhciBRZT10aGlzLmNsb25lKCk7Zm9yKFFlLm5lZ2F0aXZlPTA7IVFlLmlzWmVybygpOyl7dmFyICRlPVFlLm1vZG4oUGUpLnRv''@;'; put 'put ''U3RyaW5nKHgpO1Y9KFFlPVFlLmlkaXZuKFBlKSkuaXNaZXJvKCk/JGUrVjpvZVtEZS0kZS5sZW5ndGhdKyRlK1Z9Zm9yKHRoaXMuaXNaZXJvKCkmJihWPSIwIitWKTtWLmxlbmd0aCVQIT0wOylWPSIwIitWO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKFY9Ii0iK1YpLFZ9WSghMSwiQmFz''@;'; put 'put ''ZSBzaG91bGQgYmUgYmV0d2VlbiAyIGFuZCAzNiIpfSxOLnByb3RvdHlwZS50b051bWJlcj1mdW5jdGlvbigpe3ZhciB4PXRoaXMud29yZHNbMF07cmV0dXJuIDI9PT10aGlzLmxlbmd0aD94Kz02NzEwODg2NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNb''@;'; put 'put ''Ml0/eCs9NDUwMzU5OTYyNzM3MDQ5Nis2NzEwODg2NCp0aGlzLndvcmRzWzFdOnRoaXMubGVuZ3RoPjImJlkoITEsIk51bWJlciBjYW4gb25seSBzYWZlbHkgc3RvcmUgdXAgdG8gNTMgYml0cyIpLDAhPT10aGlzLm5lZ2F0aXZlPy14Onh9LE4ucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiB0aGlzLnRvU3RyaW5nKDE2KX0sTi5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gWSh2b2lkIDAhPT10ZSksdGhpcy50b0FycmF5TGlrZSh0ZSx4LFApfSxOLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMudG9BcnJheUxp''@;'; put 'put ''a2UoQXJyYXkseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oeCxQLFYpe3ZhciBUPXRoaXMuYnl0ZUxlbmd0aCgpLFM9Vnx8TWF0aC5tYXgoMSxUKTtZKFQ8PVMsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxZKFM+MCwiUmVxdWVzdGVkIGFy''@;'; put 'put ''cmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBGLHllLENlPSJsZSI9PT1QLERlPW5ldyB4KFMpLFBlPXRoaXMuY2xvbmUoKTtpZihDZSl7Zm9yKHllPTA7IVBlLmlzWmVybygpO3llKyspRj1QZS5hbmRsbigyNTUpLFBlLml1c2hybig4KSxEZVt5ZV09Rjtmb3IoO3llPFM7eWUr''@;'; put 'put ''KylEZVt5ZV09MH1lbHNle2Zvcih5ZT0wO3llPFMtVDt5ZSsrKURlW3llXT0wO2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbUy15ZS0xXT1GfXJldHVybiBEZX0sTi5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0''@;'; put 'put ''aW9uKHgpe3JldHVybiAzMi1NYXRoLmNsejMyKHgpfTpmdW5jdGlvbih4KXt2YXIgUD14LFY9MDtyZXR1cm4gUD49NDA5NiYmKFYrPTEzLFA+Pj49MTMpLFA+PTY0JiYoVis9NyxQPj4+PTcpLFA+PTgmJihWKz00LFA+Pj49NCksUD49MiYmKFYrPTIsUD4+Pj0yKSxWK1B9LE4ucHJvdG90eXBl''@;'; put 'put ''Ll96ZXJvQml0cz1mdW5jdGlvbih4KXtpZigwPT09eClyZXR1cm4gMjY7dmFyIFA9eCxWPTA7cmV0dXJuIDA9PSg4MTkxJlApJiYoVis9MTMsUD4+Pj0xMyksMD09KDEyNyZQKSYmKFYrPTcsUD4+Pj03KSwwPT0oMTUmUCkmJihWKz00LFA+Pj49NCksMD09KDMmUCkmJihWKz0yLFA+Pj49Miks''@;'; put 'put ''MD09KDEmUCkmJlYrKyxWfSxOLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKStQfSxOLnByb3RvdHlwZS56ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRo''@;'; put 'put ''aXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciB4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW1BdKTtpZih4Kz1WLDI2IT09VilicmVha31yZXR1cm4geH0sTi5wcm90b3R5cGUuYnl0ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBN''@;'; put 'put ''YXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sTi5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT90aGlzLmFicygpLmlub3RuKHgpLmlhZGRuKDEpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuZnJvbVR3b3M9ZnVuY3Rpb24oeCl7cmV0''@;'; put 'put ''dXJuIHRoaXMudGVzdG4oeC0xKT90aGlzLm5vdG4oeCkuaWFkZG4oMSkuaW5lZygpOnRoaXMuY2xvbmUoKX0sTi5wcm90b3R5cGUuaXNOZWc9ZnVuY3Rpb24oKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmV9LE4ucHJvdG90eXBlLm5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCku''@;'; put 'put ''aW5lZygpfSxOLnByb3RvdHlwZS5pbmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNaZXJvKCl8fCh0aGlzLm5lZ2F0aXZlXj0xKSx0aGlzfSxOLnByb3RvdHlwZS5pdW9yPWZ1bmN0aW9uKHgpe2Zvcig7dGhpcy5sZW5ndGg8eC5sZW5ndGg7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109''@;'; put 'put ''MDtmb3IodmFyIFA9MDtQPHgubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPXRoaXMud29yZHNbUF18eC53b3Jkc1tQXTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pb3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVv''@;'; put 'put ''cih4KX0sTi5wcm90b3R5cGUub3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IoeCk6eC5jbG9uZSgpLmlvcih0aGlzKX0sTi5wcm90b3R5cGUudW9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNs''@;'; put 'put ''b25lKCkuaXVvcih4KTp4LmNsb25lKCkuaXVvcih0aGlzKX0sTi5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24oeCl7dmFyIFA7UD10aGlzLmxlbmd0aD54Lmxlbmd0aD94OnRoaXM7Zm9yKHZhciBWPTA7VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT10aGlzLndvcmRzW1ZdJngud29yZHNb''@;'; put 'put ''Vl07cmV0dXJuIHRoaXMubGVuZ3RoPVAubGVuZ3RoLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gWSgwPT0odGhpcy5uZWdhdGl2ZXx4Lm5lZ2F0aXZlKSksdGhpcy5pdWFuZCh4KX0sTi5wcm90b3R5cGUuYW5kPWZ1bmN0aW9uKHgpe3JldHVybiB0''@;'; put 'put ''aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFuZCh4KTp4LmNsb25lKCkuaWFuZCh0aGlzKX0sTi5wcm90b3R5cGUudWFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1YW5kKHgpOnguY2xvbmUoKS5pdWFuZCh0aGlzKX0s''@;'; put 'put ''Ti5wcm90b3R5cGUuaXV4b3I9ZnVuY3Rpb24oeCl7dmFyIFAsVjt0aGlzLmxlbmd0aD54Lmxlbmd0aD8oUD10aGlzLFY9eCk6KFA9eCxWPXRoaXMpO2Zvcih2YXIgVD0wO1Q8Vi5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXV5WLndvcmRzW1RdO2lmKHRoaXMhPT1QKWZvcig7''@;'; put 'put ''VDxQLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT1QLndvcmRzW1RdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLml4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXV4b3IoeCl9''@;'; put 'put ''LE4ucHJvdG90eXBlLnhvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml4b3IoeCk6eC5jbG9uZSgpLml4b3IodGhpcyl9LE4ucHJvdG90eXBlLnV4b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xv''@;'; put 'put ''bmUoKS5pdXhvcih4KTp4LmNsb25lKCkuaXV4b3IodGhpcyl9LE4ucHJvdG90eXBlLmlub3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD0wfE1hdGguY2VpbCh4LzI2KSxWPXglMjY7dGhpcy5fZXhwYW5kKFApLFY+MCYmUC0tO2Zvcih2YXIgVD0wO1Q8''@;'; put 'put ''UDtUKyspdGhpcy53b3Jkc1tUXT02NzEwODg2MyZ+dGhpcy53b3Jkc1tUXTtyZXR1cm4gVj4wJiYodGhpcy53b3Jkc1tUXT1+dGhpcy53b3Jkc1tUXSY2NzEwODg2Mz4+MjYtViksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCku''@;'; put 'put ''aW5vdG4oeCl9LE4ucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oeCxQKXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFY9eC8yNnwwLFQ9eCUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXT1QP3RoaXMud29yZHNbVl18MTw8VDp0aGlzLndvcmRzW1ZdJn4o''@;'; put 'put ''MTw8VCksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgpe3ZhciBQLFYsVDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCxQPXRoaXMuaXN1Yih4KSx0aGlzLm5lZ2F0aXZlXj0xLHRoaXMuX25vcm1TaWdu''@;'; put 'put ''KCk7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiB4Lm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCkseC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCk7dGhpcy5sZW5ndGg+eC5sZW5ndGg/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7''@;'; put 'put ''RjxULmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKSsoMHxULndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtmb3IoOzAhPT1TJiZGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPTY3MTA4ODYzJihQPSgwfFYud29yZHNbRl0pK1MpLFM9UD4+PjI2O2lm''@;'; put 'put ''KHRoaXMubGVuZ3RoPVYubGVuZ3RoLDAhPT1TKXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPVMsdGhpcy5sZW5ndGgrKztlbHNlIGlmKFYhPT10aGlzKWZvcig7RjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT1WLndvcmRzW0ZdO3JldHVybiB0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rp''@;'; put 'put ''b24oeCl7dmFyIFA7cmV0dXJuIDAhPT14Lm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLFA9dGhpcy5zdWIoeCkseC5uZWdhdGl2ZV49MSxQKTowPT09eC5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCxQPXguc3ViKHRoaXMpLHRo''@;'; put 'put ''aXMubmVnYXRpdmU9MSxQKTp0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZCh4KTp4LmNsb25lKCkuaWFkZCh0aGlzKX0sTi5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4KXtpZigwIT09eC5uZWdhdGl2ZSl7eC5uZWdhdGl2ZT0wO3ZhciBQPXRoaXMuaWFkZCh4KTtyZXR1''@;'; put 'put ''cm4geC5uZWdhdGl2ZT0xLFAuX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxTPXRoaXMuY21wKHgpO2lmKDA9PT1TKXJldHVybiB0aGlzLm5l''@;'; put 'put ''Z2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztTPjA/KFY9dGhpcyxUPXgpOihWPXgsVD10aGlzKTtmb3IodmFyIEY9MCx5ZT0wO3llPFQubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSktKDB8VC53b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3ll''@;'; put 'put ''XT02NzEwODg2MyZQO2Zvcig7MCE9PUYmJnllPFYubGVuZ3RoO3llKyspRj0oUD0oMHxWLndvcmRzW3llXSkrRik+PjI2LHRoaXMud29yZHNbeWVdPTY3MTA4ODYzJlA7aWYoMD09PUYmJnllPFYubGVuZ3RoJiZWIT09dGhpcylmb3IoO3llPFYubGVuZ3RoO3llKyspdGhpcy53b3Jkc1t5ZV09''@;'; put 'put ''Vi53b3Jkc1t5ZV07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHllKSxWIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHgpfTt2YXIgQWU9ZnVu''@;'; put 'put ''Y3Rpb24oeCxQLFYpe3ZhciBULFMsRix5ZT14LndvcmRzLENlPVAud29yZHMsRGU9Vi53b3JkcyxQZT0wLFFlPTB8eWVbMF0sJGU9ODE5MSZRZSxndD1RZT4+PjEzLHd0PTB8eWVbMV0sbXQ9ODE5MSZ3dCx2dD13dD4+PjEzLEF0PTB8eWVbMl0saHQ9ODE5MSZBdCxCdD1BdD4+PjEzLG9uPTB8''@;'; put 'put ''eWVbM10sX3Q9ODE5MSZvbix0dD1vbj4+PjEzLGV0PTB8eWVbNF0sbHQ9ODE5MSZldCxMdD1ldD4+PjEzLEN0PTB8eWVbNV0sZnQ9ODE5MSZDdCxIdD1DdD4+PjEzLEdlPTB8eWVbNl0sVWU9ODE5MSZHZSx5dD1HZT4+PjEzLGp0PTB8eWVbN10sSnQ9ODE5MSZqdCxnbj1qdD4+PjEzLGRuPTB8''@;'; put 'put ''eWVbOF0seW49ODE5MSZkbixsbj1kbj4+PjEzLE5uPTB8eWVbOV0sYm49ODE5MSZObixlcj1Obj4+PjEzLHNyPTB8Q2VbMF0sWG49ODE5MSZzcixGcj1zcj4+PjEzLHhyPTB8Q2VbMV0scXQ9ODE5MSZ4cixwcj14cj4+PjEzLG5yPTB8Q2VbMl0sQW49ODE5MSZucixxbj1ucj4+PjEzLFd0PTB8''@;'; put 'put ''Q2VbM10scG49ODE5MSZXdCxLbj1XdD4+PjEzLE50PTB8Q2VbNF0sc249ODE5MSZOdCxVbj1OdD4+PjEzLHduPTB8Q2VbNV0sdG49ODE5MSZ3bix6bj13bj4+PjEzLFRyPTB8Q2VbNl0sQm49ODE5MSZUcixrcj1Ucj4+PjEzLG1uPTB8Q2VbN10sdW49ODE5MSZtbixjbj1tbj4+PjEzLF9uPTB8''@;'; put 'put ''Q2VbOF0sR3Q9ODE5MSZfbixrbj1fbj4+PjEzLFZuPTB8Q2VbOV0sZW49ODE5MSZWbixJbj1Wbj4+PjEzO1YubmVnYXRpdmU9eC5uZWdhdGl2ZV5QLm5lZ2F0aXZlLFYubGVuZ3RoPTE5O3ZhciBKbj0oUGUrKFQ9TWF0aC5pbXVsKCRlLFhuKSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bCgk''@;'; put 'put ''ZSxGcikpK01hdGguaW11bChndCxYbil8MCkpPDwxMyl8MDtQZT0oKEY9TWF0aC5pbXVsKGd0LEZyKSkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG10LFhuKSxTPShTPU1hdGguaW11bChtdCxGcikpK01hdGguaW11bCh2dCxYbil8MCxGPU1hdGgu''@;'; put 'put ''aW11bCh2dCxGcik7dmFyIG9yPShQZSsoVD1UK01hdGguaW11bCgkZSxxdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLHByKXwwKStNYXRoLmltdWwoZ3QscXQpfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LHByKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8''@;'; put 'put ''MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoaHQsWG4pLFM9KFM9TWF0aC5pbXVsKGh0LEZyKSkrTWF0aC5pbXVsKEJ0LFhuKXwwLEY9TWF0aC5pbXVsKEJ0LEZyKSxUPVQrTWF0aC5pbXVsKG10LHF0KXwwLFM9KFM9UytNYXRoLmltdWwobXQscHIpfDApK01hdGguaW11bCh2dCxxdCl8MCxG''@;'; put 'put ''PUYrTWF0aC5pbXVsKHZ0LHByKXwwO3ZhciBncj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsQW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxxbil8MCkrTWF0aC5pbXVsKGd0LEFuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxxbil8MCkrKFM+Pj4xMyl8MCkr''@;'; put 'put ''KGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKF90LFhuKSxTPShTPU1hdGguaW11bChfdCxGcikpK01hdGguaW11bCh0dCxYbil8MCxGPU1hdGguaW11bCh0dCxGciksVD1UK01hdGguaW11bChodCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHByKXwwKStNYXRoLmltdWwo''@;'; put 'put ''QnQscXQpfDAsRj1GK01hdGguaW11bChCdCxwcil8MCxUPVQrTWF0aC5pbXVsKG10LEFuKXwwLFM9KFM9UytNYXRoLmltdWwobXQscW4pfDApK01hdGguaW11bCh2dCxBbil8MCxGPUYrTWF0aC5pbXVsKHZ0LHFuKXwwO3ZhciBLcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscG4pfDApfDApKygo''@;'; put 'put ''ODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxLbil8MCkrTWF0aC5pbXVsKGd0LHBuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxLbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGx0LFhuKSxTPShTPU1hdGguaW11bChsdCxG''@;'; put 'put ''cikpK01hdGguaW11bChMdCxYbil8MCxGPU1hdGguaW11bChMdCxGciksVD1UK01hdGguaW11bChfdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LHByKXwwKStNYXRoLmltdWwodHQscXQpfDAsRj1GK01hdGguaW11bCh0dCxwcil8MCxUPVQrTWF0aC5pbXVsKGh0LEFuKXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoaHQscW4pfDApK01hdGguaW11bChCdCxBbil8MCxGPUYrTWF0aC5pbXVsKEJ0LHFuKXwwLFQ9VCtNYXRoLmltdWwobXQscG4pfDAsUz0oUz1TK01hdGguaW11bChtdCxLbil8MCkrTWF0aC5pbXVsKHZ0LHBuKXwwLEY9RitNYXRoLmltdWwodnQsS24pfDA7dmFyIFZyPShQZSso''@;'; put 'put ''VD1UK01hdGguaW11bCgkZSxzbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLFVuKXwwKStNYXRoLmltdWwoZ3Qsc24pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LFVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmlt''@;'; put 'put ''dWwoZnQsWG4pLFM9KFM9TWF0aC5pbXVsKGZ0LEZyKSkrTWF0aC5pbXVsKEh0LFhuKXwwLEY9TWF0aC5pbXVsKEh0LEZyKSxUPVQrTWF0aC5pbXVsKGx0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwobHQscHIpfDApK01hdGguaW11bChMdCxxdCl8MCxGPUYrTWF0aC5pbXVsKEx0LHByKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoX3QsQW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxxbil8MCkrTWF0aC5pbXVsKHR0LEFuKXwwLEY9RitNYXRoLmltdWwodHQscW4pfDAsVD1UK01hdGguaW11bChodCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LEtuKXwwKStNYXRoLmltdWwoQnQscG4pfDAsRj1GK01h''@;'; put 'put ''dGguaW11bChCdCxLbil8MCxUPVQrTWF0aC5pbXVsKG10LHNuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsVW4pfDApK01hdGguaW11bCh2dCxzbil8MCxGPUYrTWF0aC5pbXVsKHZ0LFVuKXwwO3ZhciBpaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdG4pfDApfDApKygoODE5MSYoUz0oUz1TK01h''@;'; put 'put ''dGguaW11bCgkZSx6bil8MCkrTWF0aC5pbXVsKGd0LHRuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCx6bil8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFVlLFhuKSxTPShTPU1hdGguaW11bChVZSxGcikpK01hdGguaW11bCh5''@;'; put 'put ''dCxYbil8MCxGPU1hdGguaW11bCh5dCxGciksVD1UK01hdGguaW11bChmdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHByKXwwKStNYXRoLmltdWwoSHQscXQpfDAsRj1GK01hdGguaW11bChIdCxwcil8MCxUPVQrTWF0aC5pbXVsKGx0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwobHQscW4p''@;'; put 'put ''fDApK01hdGguaW11bChMdCxBbil8MCxGPUYrTWF0aC5pbXVsKEx0LHFuKXwwLFQ9VCtNYXRoLmltdWwoX3QscG4pfDAsUz0oUz1TK01hdGguaW11bChfdCxLbil8MCkrTWF0aC5pbXVsKHR0LHBuKXwwLEY9RitNYXRoLmltdWwodHQsS24pfDAsVD1UK01hdGguaW11bChodCxzbil8MCxTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKGh0LFVuKXwwKStNYXRoLmltdWwoQnQsc24pfDAsRj1GK01hdGguaW11bChCdCxVbil8MCxUPVQrTWF0aC5pbXVsKG10LHRuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsem4pfDApK01hdGguaW11bCh2dCx0bil8MCxGPUYrTWF0aC5pbXVsKHZ0LHpuKXwwO3ZhciBScj0o''@;'; put 'put ''UGUrKFQ9VCtNYXRoLmltdWwoJGUsQm4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrcil8MCkrTWF0aC5pbXVsKGd0LEJuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrcil8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0''@;'; put 'put ''aC5pbXVsKEp0LFhuKSxTPShTPU1hdGguaW11bChKdCxGcikpK01hdGguaW11bChnbixYbil8MCxGPU1hdGguaW11bChnbixGciksVD1UK01hdGguaW11bChVZSxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVlLHByKXwwKStNYXRoLmltdWwoeXQscXQpfDAsRj1GK01hdGguaW11bCh5dCxwcil8''@;'; put 'put ''MCxUPVQrTWF0aC5pbXVsKGZ0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQscW4pfDApK01hdGguaW11bChIdCxBbil8MCxGPUYrTWF0aC5pbXVsKEh0LHFuKXwwLFQ9VCtNYXRoLmltdWwobHQscG4pfDAsUz0oUz1TK01hdGguaW11bChsdCxLbil8MCkrTWF0aC5pbXVsKEx0LHBuKXwwLEY9''@;'; put 'put ''RitNYXRoLmltdWwoTHQsS24pfDAsVD1UK01hdGguaW11bChfdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKF90LFVuKXwwKStNYXRoLmltdWwodHQsc24pfDAsRj1GK01hdGguaW11bCh0dCxVbil8MCxUPVQrTWF0aC5pbXVsKGh0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoaHQsem4pfDApK01h''@;'; put 'put ''dGguaW11bChCdCx0bil8MCxGPUYrTWF0aC5pbXVsKEJ0LHpuKXwwLFQ9VCtNYXRoLmltdWwobXQsQm4pfDAsUz0oUz1TK01hdGguaW11bChtdCxrcil8MCkrTWF0aC5pbXVsKHZ0LEJuKXwwLEY9RitNYXRoLmltdWwodnQsa3IpfDA7dmFyIGxpPShQZSsoVD1UK01hdGguaW11bCgkZSx1bil8''@;'; put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKCRlLGNuKXwwKStNYXRoLmltdWwoZ3QsdW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGd0LGNuKXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoeW4sWG4pLFM9KFM9TWF0aC5p''@;'; put 'put ''bXVsKHluLEZyKSkrTWF0aC5pbXVsKGxuLFhuKXwwLEY9TWF0aC5pbXVsKGxuLEZyKSxUPVQrTWF0aC5pbXVsKEp0LHF0KXwwLFM9KFM9UytNYXRoLmltdWwoSnQscHIpfDApK01hdGguaW11bChnbixxdCl8MCxGPUYrTWF0aC5pbXVsKGduLHByKXwwLFQ9VCtNYXRoLmltdWwoVWUsQW4pfDAs''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bChVZSxxbil8MCkrTWF0aC5pbXVsKHl0LEFuKXwwLEY9RitNYXRoLmltdWwoeXQscW4pfDAsVD1UK01hdGguaW11bChmdCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LEtuKXwwKStNYXRoLmltdWwoSHQscG4pfDAsRj1GK01hdGguaW11bChIdCxLbil8MCxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKGx0LHNuKXwwLFM9KFM9UytNYXRoLmltdWwobHQsVW4pfDApK01hdGguaW11bChMdCxzbil8MCxGPUYrTWF0aC5pbXVsKEx0LFVuKXwwLFQ9VCtNYXRoLmltdWwoX3QsdG4pfDAsUz0oUz1TK01hdGguaW11bChfdCx6bil8MCkrTWF0aC5pbXVsKHR0LHRuKXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwodHQsem4pfDAsVD1UK01hdGguaW11bChodCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtyKXwwKStNYXRoLmltdWwoQnQsQm4pfDAsRj1GK01hdGguaW11bChCdCxrcil8MCxUPVQrTWF0aC5pbXVsKG10LHVuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsY24pfDApK01hdGguaW11''@;'; put 'put ''bCh2dCx1bil8MCxGPUYrTWF0aC5pbXVsKHZ0LGNuKXwwO3ZhciBNaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsR3QpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxrbil8MCkrTWF0aC5pbXVsKGd0LEd0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxrbil8MCkr''@;'; put 'put ''KFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLFhuKSxTPShTPU1hdGguaW11bChibixGcikpK01hdGguaW11bChlcixYbil8MCxGPU1hdGguaW11bChlcixGciksVD1UK01hdGguaW11bCh5bixxdCl8MCxTPShTPVMrTWF0aC5pbXVsKHluLHByKXww''@;'; put 'put ''KStNYXRoLmltdWwobG4scXQpfDAsRj1GK01hdGguaW11bChsbixwcil8MCxUPVQrTWF0aC5pbXVsKEp0LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoSnQscW4pfDApK01hdGguaW11bChnbixBbil8MCxGPUYrTWF0aC5pbXVsKGduLHFuKXwwLFQ9VCtNYXRoLmltdWwoVWUscG4pfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bChVZSxLbil8MCkrTWF0aC5pbXVsKHl0LHBuKXwwLEY9RitNYXRoLmltdWwoeXQsS24pfDAsVD1UK01hdGguaW11bChmdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LFVuKXwwKStNYXRoLmltdWwoSHQsc24pfDAsRj1GK01hdGguaW11bChIdCxVbil8MCxUPVQrTWF0aC5p''@;'; put 'put ''bXVsKGx0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwobHQsem4pfDApK01hdGguaW11bChMdCx0bil8MCxGPUYrTWF0aC5pbXVsKEx0LHpuKXwwLFQ9VCtNYXRoLmltdWwoX3QsQm4pfDAsUz0oUz1TK01hdGguaW11bChfdCxrcil8MCkrTWF0aC5pbXVsKHR0LEJuKXwwLEY9RitNYXRoLmltdWwo''@;'; put 'put ''dHQsa3IpfDAsVD1UK01hdGguaW11bChodCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGNuKXwwKStNYXRoLmltdWwoQnQsdW4pfDAsRj1GK01hdGguaW11bChCdCxjbil8MCxUPVQrTWF0aC5pbXVsKG10LEd0KXwwLFM9KFM9UytNYXRoLmltdWwobXQsa24pfDApK01hdGguaW11bCh2dCxH''@;'; put 'put ''dCl8MCxGPUYrTWF0aC5pbXVsKHZ0LGtuKXwwO3ZhciBvMD0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxJbil8MCkrTWF0aC5pbXVsKGd0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxJbil8MCkrKFM+Pj4x''@;'; put 'put ''Myl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHF0KSxTPShTPU1hdGguaW11bChibixwcikpK01hdGguaW11bChlcixxdCl8MCxGPU1hdGguaW11bChlcixwciksVD1UK01hdGguaW11bCh5bixBbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHFuKXwwKStNYXRo''@;'; put 'put ''LmltdWwobG4sQW4pfDAsRj1GK01hdGguaW11bChsbixxbil8MCxUPVQrTWF0aC5pbXVsKEp0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoSnQsS24pfDApK01hdGguaW11bChnbixwbil8MCxGPUYrTWF0aC5pbXVsKGduLEtuKXwwLFQ9VCtNYXRoLmltdWwoVWUsc24pfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bChVZSxVbil8MCkrTWF0aC5pbXVsKHl0LHNuKXwwLEY9RitNYXRoLmltdWwoeXQsVW4pfDAsVD1UK01hdGguaW11bChmdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHpuKXwwKStNYXRoLmltdWwoSHQsdG4pfDAsRj1GK01hdGguaW11bChIdCx6bil8MCxUPVQrTWF0aC5pbXVsKGx0''@;'; put 'put ''LEJuKXwwLFM9KFM9UytNYXRoLmltdWwobHQsa3IpfDApK01hdGguaW11bChMdCxCbil8MCxGPUYrTWF0aC5pbXVsKEx0LGtyKXwwLFQ9VCtNYXRoLmltdWwoX3QsdW4pfDAsUz0oUz1TK01hdGguaW11bChfdCxjbil8MCkrTWF0aC5pbXVsKHR0LHVuKXwwLEY9RitNYXRoLmltdWwodHQsY24p''@;'; put 'put ''fDAsVD1UK01hdGguaW11bChodCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKGh0LGtuKXwwKStNYXRoLmltdWwoQnQsR3QpfDAsRj1GK01hdGguaW11bChCdCxrbil8MDt2YXIgbjA9KFBlKyhUPVQrTWF0aC5pbXVsKG10LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwobXQsSW4p''@;'; put 'put ''fDApK01hdGguaW11bCh2dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwodnQsSW4pfDApKyhTPj4+MTMpfDApKyhuMD4+PjI2KXwwLG4wJj02NzEwODg2MyxUPU1hdGguaW11bChibixBbiksUz0oUz1NYXRoLmltdWwoYm4scW4pKStNYXRoLmltdWwoZXIsQW4pfDAsRj1NYXRo''@;'; put 'put ''LmltdWwoZXIscW4pLFQ9VCtNYXRoLmltdWwoeW4scG4pfDAsUz0oUz1TK01hdGguaW11bCh5bixLbil8MCkrTWF0aC5pbXVsKGxuLHBuKXwwLEY9RitNYXRoLmltdWwobG4sS24pfDAsVD1UK01hdGguaW11bChKdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LFVuKXwwKStNYXRoLmltdWwo''@;'; put 'put ''Z24sc24pfDAsRj1GK01hdGguaW11bChnbixVbil8MCxUPVQrTWF0aC5pbXVsKFVlLHRuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsem4pfDApK01hdGguaW11bCh5dCx0bil8MCxGPUYrTWF0aC5pbXVsKHl0LHpuKXwwLFQ9VCtNYXRoLmltdWwoZnQsQm4pfDAsUz0oUz1TK01hdGguaW11bChm''@;'; put 'put ''dCxrcil8MCkrTWF0aC5pbXVsKEh0LEJuKXwwLEY9RitNYXRoLmltdWwoSHQsa3IpfDAsVD1UK01hdGguaW11bChsdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGNuKXwwKStNYXRoLmltdWwoTHQsdW4pfDAsRj1GK01hdGguaW11bChMdCxjbil8MCxUPVQrTWF0aC5pbXVsKF90LEd0KXww''@;'; put 'put ''LFM9KFM9UytNYXRoLmltdWwoX3Qsa24pfDApK01hdGguaW11bCh0dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHR0LGtuKXwwO3ZhciBkMD0oUGUrKFQ9VCtNYXRoLmltdWwoaHQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChodCxJbil8MCkrTWF0aC5pbXVsKEJ0LGVuKXwwKSk8''@;'; put 'put ''PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChCdCxJbil8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHBuKSxTPShTPU1hdGguaW11bChibixLbikpK01hdGguaW11bChlcixwbil8MCxGPU1hdGguaW11bChlcixLbiksVD1UK01hdGguaW11''@;'; put 'put ''bCh5bixzbil8MCxTPShTPVMrTWF0aC5pbXVsKHluLFVuKXwwKStNYXRoLmltdWwobG4sc24pfDAsRj1GK01hdGguaW11bChsbixVbil8MCxUPVQrTWF0aC5pbXVsKEp0LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoSnQsem4pfDApK01hdGguaW11bChnbix0bil8MCxGPUYrTWF0aC5pbXVsKGdu''@;'; put 'put ''LHpuKXwwLFQ9VCtNYXRoLmltdWwoVWUsQm4pfDAsUz0oUz1TK01hdGguaW11bChVZSxrcil8MCkrTWF0aC5pbXVsKHl0LEJuKXwwLEY9RitNYXRoLmltdWwoeXQsa3IpfDAsVD1UK01hdGguaW11bChmdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGNuKXwwKStNYXRoLmltdWwoSHQsdW4p''@;'; put 'put ''fDAsRj1GK01hdGguaW11bChIdCxjbil8MCxUPVQrTWF0aC5pbXVsKGx0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwobHQsa24pfDApK01hdGguaW11bChMdCxHdCl8MCxGPUYrTWF0aC5pbXVsKEx0LGtuKXwwO3ZhciBtMD0oUGUrKFQ9VCtNYXRoLmltdWwoX3QsZW4pfDApfDApKygoODE5MSYo''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bChfdCxJbil8MCkrTWF0aC5pbXVsKHR0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh0dCxJbil8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHNuKSxTPShTPU1hdGguaW11bChibixVbikpK01h''@;'; put 'put ''dGguaW11bChlcixzbil8MCxGPU1hdGguaW11bChlcixVbiksVD1UK01hdGguaW11bCh5bix0bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLHpuKXwwKStNYXRoLmltdWwobG4sdG4pfDAsRj1GK01hdGguaW11bChsbix6bil8MCxUPVQrTWF0aC5pbXVsKEp0LEJuKXwwLFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwoSnQsa3IpfDApK01hdGguaW11bChnbixCbil8MCxGPUYrTWF0aC5pbXVsKGduLGtyKXwwLFQ9VCtNYXRoLmltdWwoVWUsdW4pfDAsUz0oUz1TK01hdGguaW11bChVZSxjbil8MCkrTWF0aC5pbXVsKHl0LHVuKXwwLEY9RitNYXRoLmltdWwoeXQsY24pfDAsVD1UK01hdGguaW11bChmdCxH''@;'; put 'put ''dCl8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LGtuKXwwKStNYXRoLmltdWwoSHQsR3QpfDAsRj1GK01hdGguaW11bChIdCxrbil8MDt2YXIgRzA9KFBlKyhUPVQrTWF0aC5pbXVsKGx0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwobHQsSW4pfDApK01hdGguaW11bChMdCxlbil8''@;'; put 'put ''MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoTHQsSW4pfDApKyhTPj4+MTMpfDApKyhHMD4+PjI2KXwwLEcwJj02NzEwODg2MyxUPU1hdGguaW11bChibix0biksUz0oUz1NYXRoLmltdWwoYm4sem4pKStNYXRoLmltdWwoZXIsdG4pfDAsRj1NYXRoLmltdWwoZXIsem4pLFQ9VCtNYXRo''@;'; put 'put ''LmltdWwoeW4sQm4pfDAsUz0oUz1TK01hdGguaW11bCh5bixrcil8MCkrTWF0aC5pbXVsKGxuLEJuKXwwLEY9RitNYXRoLmltdWwobG4sa3IpfDAsVD1UK01hdGguaW11bChKdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LGNuKXwwKStNYXRoLmltdWwoZ24sdW4pfDAsRj1GK01hdGguaW11''@;'; put 'put ''bChnbixjbil8MCxUPVQrTWF0aC5pbXVsKFVlLEd0KXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa24pfDApK01hdGguaW11bCh5dCxHdCl8MCxGPUYrTWF0aC5pbXVsKHl0LGtuKXwwO3ZhciBEaT0oUGUrKFQ9VCtNYXRoLmltdWwoZnQsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11''@;'; put 'put ''bChmdCxJbil8MCkrTWF0aC5pbXVsKEh0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChIdCxJbil8MCkrKFM+Pj4xMyl8MCkrKERpPj4+MjYpfDAsRGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLEJuKSxTPShTPU1hdGguaW11bChibixrcikpK01hdGguaW11bChlcixCbil8''@;'; put 'put ''MCxGPU1hdGguaW11bChlcixrciksVD1UK01hdGguaW11bCh5bix1bil8MCxTPShTPVMrTWF0aC5pbXVsKHluLGNuKXwwKStNYXRoLmltdWwobG4sdW4pfDAsRj1GK01hdGguaW11bChsbixjbil8MCxUPVQrTWF0aC5pbXVsKEp0LEd0KXwwLFM9KFM9UytNYXRoLmltdWwoSnQsa24pfDApK01h''@;'; put 'put ''dGguaW11bChnbixHdCl8MCxGPUYrTWF0aC5pbXVsKGduLGtuKXwwO3ZhciBXMD0oUGUrKFQ9VCtNYXRoLmltdWwoVWUsZW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChVZSxJbil8MCkrTWF0aC5pbXVsKHl0LGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bCh5dCxJ''@;'; put 'put ''bil8MCkrKFM+Pj4xMyl8MCkrKFcwPj4+MjYpfDAsVzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGJuLHVuKSxTPShTPU1hdGguaW11bChibixjbikpK01hdGguaW11bChlcix1bil8MCxGPU1hdGguaW11bChlcixjbiksVD1UK01hdGguaW11bCh5bixHdCl8MCxTPShTPVMrTWF0aC5pbXVsKHlu''@;'; put 'put ''LGtuKXwwKStNYXRoLmltdWwobG4sR3QpfDAsRj1GK01hdGguaW11bChsbixrbil8MDt2YXIgRW89KFBlKyhUPVQrTWF0aC5pbXVsKEp0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoSnQsSW4pfDApK01hdGguaW11bChnbixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRo''@;'; put 'put ''LmltdWwoZ24sSW4pfDApKyhTPj4+MTMpfDApKyhFbz4+PjI2KXwwLEVvJj02NzEwODg2MyxUPU1hdGguaW11bChibixHdCksUz0oUz1NYXRoLmltdWwoYm4sa24pKStNYXRoLmltdWwoZXIsR3QpfDAsRj1NYXRoLmltdWwoZXIsa24pO3ZhciBxbz0oUGUrKFQ9VCtNYXRoLmltdWwoeW4sZW4p''@;'; put 'put ''fDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh5bixJbil8MCkrTWF0aC5pbXVsKGxuLGVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChsbixJbil8MCkrKFM+Pj4xMyl8MCkrKHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzO3ZhciBjYT0oUGUrKFQ9TWF0aC5pbXVsKGJuLGVu''@;'; put 'put ''KSl8MCkrKCg4MTkxJihTPShTPU1hdGguaW11bChibixJbikpK01hdGguaW11bChlcixlbil8MCkpPDwxMyl8MDtyZXR1cm4gUGU9KChGPU1hdGguaW11bChlcixJbikpKyhTPj4+MTMpfDApKyhjYT4+PjI2KXwwLGNhJj02NzEwODg2MyxEZVswXT1KbixEZVsxXT1vcixEZVsyXT1ncixEZVsz''@;'; put 'put ''XT1LcixEZVs0XT1WcixEZVs1XT1paSxEZVs2XT1ScixEZVs3XT1saSxEZVs4XT1NaSxEZVs5XT1vMCxEZVsxMF09bjAsRGVbMTFdPWQwLERlWzEyXT1tMCxEZVsxM109RzAsRGVbMTRdPURpLERlWzE1XT1XMCxEZVsxNl09RW8sRGVbMTddPXFvLERlWzE4XT1jYSwwIT09UGUmJihEZVsxOV09''@;'; put 'put ''UGUsVi5sZW5ndGgrKyksVn07ZnVuY3Rpb24ga2UoeCxQLFYpe3JldHVybihuZXcgU2UpLm11bHAoeCxQLFYpfWZ1bmN0aW9uIFNlKHgsUCl7dGhpcy54PXgsdGhpcy55PVB9TWF0aC5pbXVsfHwoQWU9dmUpLE4ucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHgsUCl7dmFyIFQ9dGhpcy5sZW5n''@;'; put 'put ''dGgreC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09eC5sZW5ndGg/QWUodGhpcyx4LFApOlQ8NjM/dmUodGhpcyx4LFApOlQ8MTAyND9mdW5jdGlvbihTLEYseWUpe3llLm5lZ2F0aXZlPUYubmVnYXRpdmVeUy5uZWdhdGl2ZSx5ZS5sZW5ndGg9Uy5sZW5ndGgrRi5sZW5n''@;'; put 'put ''dGg7Zm9yKHZhciBDZT0wLERlPTAsUGU9MDtQZTx5ZS5sZW5ndGgtMTtQZSsrKXt2YXIgUWU9RGU7RGU9MDtmb3IodmFyICRlPTY3MTA4ODYzJkNlLGd0PU1hdGgubWluKFBlLEYubGVuZ3RoLTEpLHd0PU1hdGgubWF4KDAsUGUtUy5sZW5ndGgrMSk7d3Q8PWd0O3d0Kyspe3ZhciB2dD0oMHxT''@;'; put 'put ''LndvcmRzW1BlLXd0XSkqKDB8Ri53b3Jkc1t3dF0pLEF0PTY3MTA4ODYzJnZ0OyRlPTY3MTA4ODYzJihBdD1BdCskZXwwKSxEZSs9KFFlPShRZT1RZSsodnQvNjcxMDg4NjR8MCl8MCkrKEF0Pj4+MjYpfDApPj4+MjYsUWUmPTY3MTA4ODYzfXllLndvcmRzW1BlXT0kZSxDZT1RZSxRZT1EZX1y''@;'; put 'put ''ZXR1cm4gMCE9PUNlP3llLndvcmRzW1BlXT1DZTp5ZS5sZW5ndGgtLSx5ZS5zdHJpcCgpfSh0aGlzLHgsUCk6a2UodGhpcyx4LFApfSxTZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih4KXtmb3IodmFyIFA9bmV3IEFycmF5KHgpLFY9Ti5wcm90b3R5cGUuX2NvdW50Qml0cyh4KS0xLFQ9''@;'; put 'put ''MDtUPHg7VCsrKVBbVF09dGhpcy5yZXZCaW4oVCxWLHgpO3JldHVybiBQfSxTZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKHgsUCxWKXtpZigwPT09eHx8eD09PVYtMSlyZXR1cm4geDtmb3IodmFyIFQ9MCxTPTA7UzxQO1MrKylUfD0oMSZ4KTw8UC1TLTEseD4+PTE7cmV0dXJuIFR9LFNl''@;'; put 'put ''LnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXtmb3IodmFyIHllPTA7eWU8Rjt5ZSsrKVRbeWVdPVBbeFt5ZV1dLFNbeWVdPVZbeFt5ZV1dfSxTZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKHgsUCxWLFQsUyxGKXt0aGlzLnBlcm11dGUoRix4LFAsVixULFMp''@;'; put 'put ''O2Zvcih2YXIgeWU9MTt5ZTxTO3llPDw9MSlmb3IodmFyIENlPXllPDwxLERlPU1hdGguY29zKDIqTWF0aC5QSS9DZSksUGU9TWF0aC5zaW4oMipNYXRoLlBJL0NlKSxRZT0wO1FlPFM7UWUrPUNlKWZvcih2YXIgJGU9RGUsZ3Q9UGUsd3Q9MDt3dDx5ZTt3dCsrKXt2YXIgbXQ9VltRZSt3dF0s''@;'; put 'put ''dnQ9VFtRZSt3dF0sQXQ9VltRZSt3dCt5ZV0saHQ9VFtRZSt3dCt5ZV0sQnQ9JGUqQXQtZ3QqaHQ7aHQ9JGUqaHQrZ3QqQXQsVltRZSt3dF09bXQrKEF0PUJ0KSxUW1FlK3d0XT12dCtodCxWW1FlK3d0K3llXT1tdC1BdCxUW1FlK3d0K3llXT12dC1odCx3dCE9PUNlJiYoQnQ9RGUqJGUtUGUq''@;'; put 'put ''Z3QsZ3Q9RGUqZ3QrUGUqJGUsJGU9QnQpfX0sU2UucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKHgsUCl7dmFyIFY9MXxNYXRoLm1heChQLHgpLFQ9MSZWLFM9MDtmb3IoVj1WLzJ8MDtWO1Y+Pj49MSlTKys7cmV0dXJuIDE8PFMrMStUfSxTZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1''@;'; put 'put ''bmN0aW9uKHgsUCxWKXtpZighKFY8PTEpKWZvcih2YXIgVD0wO1Q8Vi8yO1QrKyl7dmFyIFM9eFtUXTt4W1RdPXhbVi1ULTFdLHhbVi1ULTFdPVMsUz1QW1RdLFBbVF09LVBbVi1ULTFdLFBbVi1ULTFdPS1TfX0sU2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbih4LFApe2Zvcih2''@;'; put 'put ''YXIgVj0wLFQ9MDtUPFAvMjtUKyspe3ZhciBTPTgxOTIqTWF0aC5yb3VuZCh4WzIqVCsxXS9QKStNYXRoLnJvdW5kKHhbMipUXS9QKStWO3hbVF09NjcxMDg4NjMmUyxWPVM8NjcxMDg4NjQ/MDpTLzY3MTA4ODY0fDB9cmV0dXJuIHh9LFNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9u''@;'; put 'put ''KHgsUCxWLFQpe2Zvcih2YXIgUz0wLEY9MDtGPFA7RisrKVZbMipGXT04MTkxJihTKz0wfHhbRl0pLFZbMipGKzFdPTgxOTEmKFM+Pj49MTMpLFM+Pj49MTM7Zm9yKEY9MipQO0Y8VDsrK0YpVltGXT0wO1koMD09PVMpLFkoMD09KC04MTkyJlMpKX0sU2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rp''@;'; put 'put ''b24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPTA7Vjx4O1YrKylQW1ZdPTA7cmV0dXJuIFB9LFNlLnByb3RvdHlwZS5tdWxwPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVD0yKnRoaXMuZ3Vlc3NMZW4xM2IoeC5sZW5ndGgsUC5sZW5ndGgpLFM9dGhpcy5tYWtlUkJUKFQpLEY9dGhpcy5zdHVi''@;'; put 'put ''KFQpLHllPW5ldyBBcnJheShUKSxDZT1uZXcgQXJyYXkoVCksRGU9bmV3IEFycmF5KFQpLFBlPW5ldyBBcnJheShUKSxRZT1uZXcgQXJyYXkoVCksJGU9bmV3IEFycmF5KFQpLGd0PVYud29yZHM7Z3QubGVuZ3RoPVQsdGhpcy5jb252ZXJ0MTNiKHgud29yZHMseC5sZW5ndGgseWUsVCksdGhp''@;'; put 'put ''cy5jb252ZXJ0MTNiKFAud29yZHMsUC5sZW5ndGgsUGUsVCksdGhpcy50cmFuc2Zvcm0oeWUsRixDZSxEZSxULFMpLHRoaXMudHJhbnNmb3JtKFBlLEYsUWUsJGUsVCxTKTtmb3IodmFyIHd0PTA7d3Q8VDt3dCsrKXt2YXIgbXQ9Q2Vbd3RdKlFlW3d0XS1EZVt3dF0qJGVbd3RdO0RlW3d0XT1D''@;'; put 'put ''ZVt3dF0qJGVbd3RdK0RlW3d0XSpRZVt3dF0sQ2Vbd3RdPW10fXJldHVybiB0aGlzLmNvbmp1Z2F0ZShDZSxEZSxUKSx0aGlzLnRyYW5zZm9ybShDZSxEZSxndCxGLFQsUyksdGhpcy5jb25qdWdhdGUoZ3QsRixUKSx0aGlzLm5vcm1hbGl6ZTEzYihndCxUKSxWLm5lZ2F0aXZlPXgubmVnYXRp''@;'; put 'put ''dmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD14Lmxlbmd0aCtQLmxlbmd0aCxWLnN0cmlwKCl9LE4ucHJvdG90eXBlLm11bD1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLHRoaXMubXVsVG8oeCxQKX0sTi5w''@;'; put 'put ''cm90b3R5cGUubXVsZj1mdW5jdGlvbih4KXt2YXIgUD1uZXcgTihudWxsKTtyZXR1cm4gUC53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgreC5sZW5ndGgpLGtlKHRoaXMseCxQKX0sTi5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKHgsdGhp''@;'; put 'put ''cyl9LE4ucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpO2Zvcih2YXIgUD0wLFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkqeCxTPSg2NzEwODg2MyZUKSsoNjcxMDg4NjMmUCk7UD4+PTI2''@;'; put 'put ''LFArPVQvNjcxMDg4NjR8MCxQKz1TPj4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZTfXJldHVybiAwIT09UCYmKHRoaXMud29yZHNbVl09UCx0aGlzLmxlbmd0aCsrKSx0aGlzfSxOLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oeCl9LE4u''@;'; put 'put ''cHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sTi5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sTi5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgpe3ZhciBQPWZ1bmN0aW9uKEYpe2Zvcih2YXIgeWU9''@;'; put 'put ''bmV3IEFycmF5KEYuYml0TGVuZ3RoKCkpLENlPTA7Q2U8eWUubGVuZ3RoO0NlKyspe3ZhciBQZT1DZSUyNjt5ZVtDZV09KEYud29yZHNbQ2UvMjZ8MF0mMTw8UGUpPj4+UGV9cmV0dXJuIHllfSh4KTtpZigwPT09UC5sZW5ndGgpcmV0dXJuIG5ldyBOKDEpO2Zvcih2YXIgVj10aGlzLFQ9MDtU''@;'; put 'put ''PFAubGVuZ3RoJiYwPT09UFtUXTtUKyssVj1WLnNxcigpKTtpZigrK1Q8UC5sZW5ndGgpZm9yKHZhciBTPVYuc3FyKCk7VDxQLmxlbmd0aDtUKyssUz1TLnNxcigpKTAhPT1QW1RdJiYoVj1WLm11bChTKSk7cmV0dXJuIFZ9LE4ucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbih4KXtZKCJudW1i''@;'; put 'put ''ZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFAsVj14JTI2LFQ9KHgtVikvMjYsUz02NzEwODg2Mz4+PjI2LVY8PDI2LVY7aWYoMCE9PVYpe3ZhciBGPTA7Zm9yKFA9MDtQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIHllPXRoaXMud29yZHNbUF0mUzt0aGlzLndvcmRzW1BdPSgwfHRoaXMud29yZHNb''@;'; put 'put ''UF0pLXllPDxWfEYsRj15ZT4+PjI2LVZ9RiYmKHRoaXMud29yZHNbUF09Rix0aGlzLmxlbmd0aCsrKX1pZigwIT09VCl7Zm9yKFA9dGhpcy5sZW5ndGgtMTtQPj0wO1AtLSl0aGlzLndvcmRzW1ArVF09dGhpcy53b3Jkc1tQXTtmb3IoUD0wO1A8VDtQKyspdGhpcy53b3Jkc1tQXT0wO3RoaXMu''@;'; put 'put ''bGVuZ3RoKz1UfXJldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbih4KX0sTi5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVDtZKCJudW1iZXIiPT10eXBlb2Yg''@;'; put 'put ''eCYmeD49MCksVD1QPyhQLVAlMjYpLzI2OjA7dmFyIFM9eCUyNixGPU1hdGgubWluKCh4LVMpLzI2LHRoaXMubGVuZ3RoKSx5ZT02NzEwODg2M142NzEwODg2Mz4+PlM8PFMsQ2U9VjtpZihULT1GLFQ9TWF0aC5tYXgoMCxUKSxDZSl7Zm9yKHZhciBEZT0wO0RlPEY7RGUrKylDZS53b3Jkc1tE''@;'; put 'put ''ZV09dGhpcy53b3Jkc1tEZV07Q2UubGVuZ3RoPUZ9aWYoMCE9PUYpaWYodGhpcy5sZW5ndGg+Rilmb3IodGhpcy5sZW5ndGgtPUYsRGU9MDtEZTx0aGlzLmxlbmd0aDtEZSsrKXRoaXMud29yZHNbRGVdPXRoaXMud29yZHNbRGUrRl07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9''@;'; put 'put ''MTt2YXIgUGU9MDtmb3IoRGU9dGhpcy5sZW5ndGgtMTtEZT49MCYmKDAhPT1QZXx8RGU+PVQpO0RlLS0pe3ZhciBRZT0wfHRoaXMud29yZHNbRGVdO3RoaXMud29yZHNbRGVdPVBlPDwyNi1TfFFlPj4+UyxQZT1RZSZ5ZX1yZXR1cm4gQ2UmJjAhPT1QZSYmKENlLndvcmRzW0NlLmxlbmd0aCsr''@;'; put 'put ''XT1QZSksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hybih4LFAsVil9LE4ucHJvdG90eXBlLnNo''@;'; put 'put ''bG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbih4KX0sTi5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oeCl9LE4ucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybih4KX0s''@;'; put 'put ''Ti5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oeCl9LE4ucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9Vnx8''@;'; put 'put ''ISh0aGlzLndvcmRzW1ZdJjE8PFApKX0sTi5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4JiZ4Pj0wKTt2YXIgUD14JTI2LFY9KHgtUCkvMjY7cmV0dXJuIFkoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUg''@;'; put 'put ''bnVtYmVycyIpLHRoaXMubGVuZ3RoPD1WP3RoaXM6KDAhPT1QJiZWKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oVix0aGlzLmxlbmd0aCksMCE9PVAmJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+PlA8PFApLHRoaXMuc3RyaXAoKSl9LE4ucHJvdG90eXBl''@;'; put 'put ''Lm1hc2tuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKHgpfSxOLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbih4KXtyZXR1cm4gWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwP3RoaXMuaXN1Ym4oLXgpOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10''@;'; put 'put ''aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8eD8odGhpcy53b3Jkc1swXT14LSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKHgpfSxOLnByb3Rv''@;'; put 'put ''dHlwZS5faWFkZG49ZnVuY3Rpb24oeCl7dGhpcy53b3Jkc1swXSs9eDtmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPj02NzEwODg2NDtQKyspdGhpcy53b3Jkc1tQXS09NjcxMDg4NjQsUD09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1tQKzFdPTE6dGhpcy53b3Jk''@;'; put 'put ''c1tQKzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFArMSksdGhpc30sTi5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oeCl7aWYoWSgibnVtYmVyIj09dHlwZW9mIHgpLFkoeDw2NzEwODg2NCkseDwwKXJldHVybiB0aGlzLmlhZGRuKC14KTtpZigwIT09dGhp''@;'; put 'put ''cy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oeCksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09eCwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9''@;'; put 'put ''MTtlbHNlIGZvcih2YXIgUD0wO1A8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbUF08MDtQKyspdGhpcy53b3Jkc1tQXSs9NjcxMDg4NjQsdGhpcy53b3Jkc1tQKzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUo''@;'; put 'put ''KS5pYWRkbih4KX0sTi5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKHgpfSxOLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxOLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5jbG9uZSgpLmlhYnMoKX0sTi5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTO3RoaXMuX2V4cGFuZCh4Lmxlbmd0aCtWKTt2YXIgeWU9MDtmb3IoVD0wO1Q8eC5sZW5ndGg7VCsrKXtTPSgwfHRoaXMud29yZHNbVCtWXSkreWU7dmFyIENlPSgwfHgud29y''@;'; put 'put ''ZHNbVF0pKlA7eWU9KChTLT02NzEwODg2MyZDZSk+PjI2KS0oQ2UvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVY7VCsrKXllPShTPSgwfHRoaXMud29yZHNbVCtWXSkreWUpPj4yNix0aGlzLndvcmRzW1QrVl09NjcxMDg4NjMmUztp''@;'; put 'put ''ZigwPT09eWUpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IoWSgtMT09PXllKSx5ZT0wLFQ9MDtUPHRoaXMubGVuZ3RoO1QrKyl5ZT0oUz0tKDB8dGhpcy53b3Jkc1tUXSkreWUpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9''@;'; put 'put ''LE4ucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKHgsUCl7dmFyIFYsVD10aGlzLmNsb25lKCksUz14LEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdOzAhPShWPTI2LXRoaXMuX2NvdW50Qml0cyhGKSkmJihTPVMudXNobG4oViksVC5pdXNobG4oViksRj0wfFMud29yZHNbUy5sZW5ndGgtMV0p''@;'; put 'put ''O3ZhciB5ZSxDZT1ULmxlbmd0aC1TLmxlbmd0aDtpZigibW9kIiE9PVApeyh5ZT1uZXcgTihudWxsKSkubGVuZ3RoPUNlKzEseWUud29yZHM9bmV3IEFycmF5KHllLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPHllLmxlbmd0aDtEZSsrKXllLndvcmRzW0RlXT0wfXZhciBQZT1ULmNsb25lKCku''@;'; put 'put ''X2lzaGxuc3VibXVsKFMsMSxDZSk7MD09PVBlLm5lZ2F0aXZlJiYoVD1QZSx5ZSYmKHllLndvcmRzW0NlXT0xKSk7Zm9yKHZhciBRZT1DZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxULndvcmRzW1MubGVuZ3RoK1FlXSkrKDB8VC53b3Jkc1tTLmxlbmd0aCtRZS0xXSk7Zm9y''@;'; put 'put ''KCRlPU1hdGgubWluKCRlL0Z8MCw2NzEwODg2MyksVC5faXNobG5zdWJtdWwoUywkZSxRZSk7MCE9PVQubmVnYXRpdmU7KSRlLS0sVC5uZWdhdGl2ZT0wLFQuX2lzaGxuc3VibXVsKFMsMSxRZSksVC5pc1plcm8oKXx8KFQubmVnYXRpdmVePTEpO3llJiYoeWUud29yZHNbUWVdPSRlKX1yZXR1''@;'; put 'put ''cm4geWUmJnllLnN0cmlwKCksVC5zdHJpcCgpLCJkaXYiIT09UCYmMCE9PVYmJlQuaXVzaHJuKFYpLHtkaXY6eWV8fG51bGwsbW9kOlR9fSxOLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oeCxQLFYpe3JldHVybiBZKCF4LmlzWmVybygpKSx0aGlzLmlzWmVybygpP3tkaXY6bmV3IE4oMCks''@;'; put 'put ''bW9kOm5ldyBOKDApfTowIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmU/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeCxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZlJiZTLmlhZGQoeCkpLHtkaXY6VCxt''@;'; put 'put ''b2Q6U30pOjA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZT8oRj10aGlzLmRpdm1vZCh4Lm5lZygpLFApLCJtb2QiIT09UCYmKFQ9Ri5kaXYubmVnKCkpLHtkaXY6VCxtb2Q6Ri5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZ4Lm5lZ2F0aXZlKT8oRj10aGlzLm5lZygpLmRpdm1vZCh4''@;'; put 'put ''Lm5lZygpLFApLCJkaXYiIT09UCYmKFM9Ri5tb2QubmVnKCksViYmMCE9PVMubmVnYXRpdmUmJlMuaXN1Yih4KSkse2RpdjpGLmRpdixtb2Q6U30pOngubGVuZ3RoPnRoaXMubGVuZ3RofHx0aGlzLmNtcCh4KTwwP3tkaXY6bmV3IE4oMCksbW9kOnRoaXN9OjE9PT14Lmxlbmd0aD8iZGl2Ij09''@;'; put 'put ''PVA/e2Rpdjp0aGlzLmRpdm4oeC53b3Jkc1swXSksbW9kOm51bGx9OiJtb2QiPT09UD97ZGl2Om51bGwsbW9kOm5ldyBOKHRoaXMubW9kbih4LndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp0aGlzLl93b3Jk''@;'; put 'put ''RGl2KHgsUCk7dmFyIFQsUyxGfSxOLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsImRpdiIsITEpLmRpdn0sTi5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCExKS5tb2R9LE4ucHJvdG90eXBlLnVtb2Q9''@;'; put 'put ''ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZGl2bW9kKHgsIm1vZCIsITApLm1vZH0sTi5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oeCl7dmFyIFA9dGhpcy5kaXZtb2QoeCk7aWYoUC5tb2QuaXNaZXJvKCkpcmV0dXJuIFAuZGl2O3ZhciBWPTAhPT1QLmRpdi5uZWdhdGl2ZT9QLm1vZC5p''@;'; put 'put ''c3ViKHgpOlAubW9kLFQ9eC51c2hybigxKSxTPXguYW5kbG4oMSksRj1WLmNtcChUKTtyZXR1cm4gRjwwfHwxPT09UyYmMD09PUY/UC5kaXY6MCE9PVAuZGl2Lm5lZ2F0aXZlP1AuZGl2LmlzdWJuKDEpOlAuZGl2LmlhZGRuKDEpfSxOLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKHgpe1koeDw9''@;'; put 'put ''NjcxMDg4NjMpO2Zvcih2YXIgUD02NzEwODg2NCV4LFY9MCxUPXRoaXMubGVuZ3RoLTE7VD49MDtULS0pVj0oUCpWKygwfHRoaXMud29yZHNbVF0pKSV4O3JldHVybiBWfSxOLnByb3RvdHlwZS5pZGl2bj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9MCxWPXRoaXMubGVu''@;'; put 'put ''Z3RoLTE7Vj49MDtWLS0pe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKzY3MTA4ODY0KlA7dGhpcy53b3Jkc1tWXT1UL3h8MCxQPVQleH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oeCl9LE4ucHJvdG90''@;'; put 'put ''eXBlLmVnY2Q9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBUPW5ldyBOKDEpLFM9bmV3IE4oMCksRj1uZXcgTigwKSx5ZT1uZXcgTigx''@;'; put 'put ''KSxDZT0wO1AuaXNFdmVuKCkmJlYuaXNFdmVuKCk7KVAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpLCsrQ2U7Zm9yKHZhciBEZT1WLmNsb25lKCksUGU9UC5jbG9uZSgpOyFQLmlzWmVybygpOyl7Zm9yKHZhciBRZT0wLCRlPTE7MD09KFAud29yZHNbMF0mJGUpJiZRZTwyNjsrK1FlLCRlPDw9MSk7''@;'; put 'put ''aWYoUWU+MClmb3IoUC5pdXNocm4oUWUpO1FlLS0gPjA7KShULmlzT2RkKCl8fFMuaXNPZGQoKSkmJihULmlhZGQoRGUpLFMuaXN1YihQZSkpLFQuaXVzaHJuKDEpLFMuaXVzaHJuKDEpO2Zvcih2YXIgZ3Q9MCx3dD0xOzA9PShWLndvcmRzWzBdJnd0KSYmZ3Q8MjY7KytndCx3dDw8PTEpO2lm''@;'; put 'put ''KGd0PjApZm9yKFYuaXVzaHJuKGd0KTtndC0tID4wOykoRi5pc09kZCgpfHx5ZS5pc09kZCgpKSYmKEYuaWFkZChEZSkseWUuaXN1YihQZSkpLEYuaXVzaHJuKDEpLHllLml1c2hybigxKTtQLmNtcChWKT49MD8oUC5pc3ViKFYpLFQuaXN1YihGKSxTLmlzdWIoeWUpKTooVi5pc3ViKFApLEYu''@;'; put 'put ''aXN1YihUKSx5ZS5pc3ViKFMpKX1yZXR1cm57YTpGLGI6eWUsZ2NkOlYuaXVzaGxuKENlKX19LE4ucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlKSxZKCF4LmlzWmVybygpKTt2YXIgUD10aGlzLFY9eC5jbG9uZSgpO1A9MCE9PVAubmVnYXRpdmU/UC51bW9k''@;'; put 'put ''KHgpOlAuY2xvbmUoKTtmb3IodmFyIFQsUz1uZXcgTigxKSxGPW5ldyBOKDApLHllPVYuY2xvbmUoKTtQLmNtcG4oMSk+MCYmVi5jbXBuKDEpPjA7KXtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihD''@;'; put 'put ''ZSk7Q2UtLSA+MDspUy5pc09kZCgpJiZTLmlhZGQoeWUpLFMuaXVzaHJuKDEpO2Zvcih2YXIgUGU9MCxRZT0xOzA9PShWLndvcmRzWzBdJlFlKSYmUGU8MjY7KytQZSxRZTw8PTEpO2lmKFBlPjApZm9yKFYuaXVzaHJuKFBlKTtQZS0tID4wOylGLmlzT2RkKCkmJkYuaWFkZCh5ZSksRi5pdXNo''@;'; put 'put ''cm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxTLmlzdWIoRikpOihWLmlzdWIoUCksRi5pc3ViKFMpKX1yZXR1cm4oVD0wPT09UC5jbXBuKDEpP1M6RikuY21wbigwKTwwJiZULmlhZGQoeCksVH0sTi5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHgpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJu''@;'; put 'put ''IHguYWJzKCk7aWYoeC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgUD10aGlzLmNsb25lKCksVj14LmNsb25lKCk7UC5uZWdhdGl2ZT0wLFYubmVnYXRpdmU9MDtmb3IodmFyIFQ9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpO1QrKylQLml1c2hybigxKSxWLml1c2hybigxKTtmb3Io''@;'; put 'put ''Ozspe2Zvcig7UC5pc0V2ZW4oKTspUC5pdXNocm4oMSk7Zm9yKDtWLmlzRXZlbigpOylWLml1c2hybigxKTt2YXIgUz1QLmNtcChWKTtpZihTPDApe3ZhciBGPVA7UD1WLFY9Rn1lbHNlIGlmKDA9PT1TfHwwPT09Vi5jbXBuKDEpKWJyZWFrO1AuaXN1YihWKX1yZXR1cm4gVi5pdXNobG4oVCl9''@;'; put 'put ''LE4ucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuZWdjZCh4KS5hLnVtb2QoeCl9LE4ucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sTi5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhp''@;'; put 'put ''cy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLndvcmRzWzBdJnh9LE4ucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHgpe1koIm51bWJlciI9PXR5cGVvZiB4KTt2YXIgUD14JTI2LFY9KHgtUCkvMjYsVD0xPDxQO2lmKHRoaXMubGVuZ3RoPD1W''@;'; put 'put ''KXJldHVybiB0aGlzLl9leHBhbmQoVisxKSx0aGlzLndvcmRzW1ZdfD1ULHRoaXM7Zm9yKHZhciBTPVQsRj1WOzAhPT1TJiZGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPTB8dGhpcy53b3Jkc1tGXTtTPSh5ZSs9Uyk+Pj4yNix0aGlzLndvcmRzW0ZdPXllJj02NzEwODg2M31yZXR1cm4gMCE9''@;'; put 'put ''PVMmJih0aGlzLndvcmRzW0ZdPVMsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LE4ucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oeCl7dmFyIFAsVj14PDA7aWYoMCE9PXRo''@;'; put 'put ''aXMubmVnYXRpdmUmJiFWKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiZWKXJldHVybiAxO2lmKHRoaXMuc3RyaXAoKSx0aGlzLmxlbmd0aD4xKVA9MTtlbHNle1YmJih4PS14KSxZKHg8PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBUPTB8dGhpcy53b3Jkc1swXTtQ''@;'; put 'put ''PVQ9PT14PzA6VDx4Py0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LVA6UH0sTi5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKHgpe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09eC5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmUpcmV0''@;'; put 'put ''dXJuIDE7dmFyIFA9dGhpcy51Y21wKHgpO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4ucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oeCl7aWYodGhpcy5sZW5ndGg+eC5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8eC5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciBQPTAs''@;'; put 'put ''Vj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0wfHRoaXMud29yZHNbVl0sUz0wfHgud29yZHNbVl07aWYoVCE9PVMpe1Q8Uz9QPS0xOlQ+UyYmKFA9MSk7YnJlYWt9fXJldHVybiBQfSxOLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oeCl7cmV0dXJuIDE9PT10aGlzLmNtcG4oeCl9LE4u''@;'; put 'put ''cHJvdG90eXBlLmd0PWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXAoeCl9LE4ucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wbih4KT49MH0sTi5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcCh4KT49MH0sTi5wcm90b3R5cGUu''@;'; put 'put ''bHRuPWZ1bmN0aW9uKHgpe3JldHVybi0xPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5sdD1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wKHgpfSxOLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk8PTB9LE4ucHJvdG90eXBlLmx0ZT1mdW5j''@;'; put 'put ''dGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk8PTB9LE4ucHJvdG90eXBlLmVxbj1mdW5jdGlvbih4KXtyZXR1cm4gMD09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcCh4KX0sTi5yZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBl''@;'; put 'put ''ZSh4KX0sTi5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksWSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSx4LmNvbnZlcnRUbyh0aGlz''@;'; put 'put ''KS5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxOLnByb3RvdHlwZS5fZm9y''@;'; put 'put ''Y2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucmVkPXgsdGhpc30sTi5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoeCl9LE4ucHJvdG90eXBl''@;'; put 'put ''LnJlZEFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9u''@;'; put 'put ''bHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMseCl9LE4ucHJvdG90eXBl''@;'; put 'put ''LnJlZElTdWI9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNobCB3b3JrcyBv''@;'; put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyx4KSx0aGlzLnJl''@;'; put 'put ''ZC5tdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQuaW11bCh0aGlzLHgpfSxOLnByb3RvdHlwZS5y''@;'; put 'put ''ZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sTi5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVk''@;'; put 'put ''LCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51''@;'; put 'put ''bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxOLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyks''@;'; put 'put ''dGhpcy5yZWQuaW52bSh0aGlzKX0sTi5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LE4ucHJvdG90eXBlLnJl''@;'; put 'put ''ZFBvdz1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCYmIXgucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLHgpfTt2YXIgSWU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5j''@;'; put 'put ''dGlvbiBUZSh4LFApe3RoaXMubmFtZT14LHRoaXMucD1uZXcgTihQLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgTigxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9dGhpcy5fdG1wKCl9ZnVuY3Rpb24gTWUoKXtUZS5jYWxsKHRoaXMsImsy''@;'; put 'put ''NTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGhlKCl7VGUuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAw''@;'; put 'put ''MDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBPKCl7VGUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB6KCl7VGUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZm''@;'; put 'put ''ZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBlZSh4KXtpZigic3RyaW5nIj09dHlwZW9mIHgpe3ZhciBQPU4uX3ByaW1lKHgpO3RoaXMubT1QLnAsdGhpcy5wcmltZT1QfWVsc2UgWSh4Lmd0bigxKSwibW9kdWx1cyBtdXN0IGJlIGdyZWF0ZXIg''@;'; put 'put ''dGhhbiAxIiksdGhpcy5tPXgsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIG5lKHgpe2VlLmNhbGwodGhpcyx4KSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYodGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBOKDEpLml1c2hs''@;'; put 'put ''bih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3VibigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0''@;'; put 'put ''aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVRlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIHg9bmV3IE4obnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLm4vMTMpKSx4fSxUZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih4KXt2YXIg''@;'; put 'put ''UCxWPXg7ZG97dGhpcy5zcGxpdChWLHRoaXMudG1wKSxQPShWPShWPXRoaXMuaW11bEsoVikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShQPnRoaXMubik7dmFyIFQ9UDx0aGlzLm4/LTE6Vi51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1UPyhWLndvcmRzWzBdPTAsVi5sZW5n''@;'; put 'put ''dGg9MSk6VD4wP1YuaXN1Yih0aGlzLnApOnZvaWQgMCE9PVYuc3RyaXA/Vi5zdHJpcCgpOlYuX3N0cmlwKCksVn0sVGUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKHgsUCl7eC5pdXNocm4odGhpcy5uLDAsUCl9LFRlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtyZXR1cm4geC5pbXVs''@;'; put 'put ''KHRoaXMuayl9LFcoTWUsVGUpLE1lLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe2Zvcih2YXIgVj00MTk0MzAzLFQ9TWF0aC5taW4oeC5sZW5ndGgsOSksUz0wO1M8VDtTKyspUC53b3Jkc1tTXT14LndvcmRzW1NdO2lmKFAubGVuZ3RoPVQseC5sZW5ndGg8PTkpcmV0dXJuIHgud29y''@;'; put 'put ''ZHNbMF09MCx2b2lkKHgubGVuZ3RoPTEpO3ZhciBGPXgud29yZHNbOV07Zm9yKFAud29yZHNbUC5sZW5ndGgrK109RiZWLFM9MTA7Uzx4Lmxlbmd0aDtTKyspe3ZhciB5ZT0wfHgud29yZHNbU107eC53b3Jkc1tTLTEwXT0oeWUmVik8PDR8Rj4+PjIyLEY9eWV9eC53b3Jkc1tTLTEwXT1GPj4+''@;'; put 'put ''PTIyLHgubGVuZ3RoLT0wPT09RiYmeC5sZW5ndGg+MTA/MTA6OX0sTWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe3gud29yZHNbeC5sZW5ndGhdPTAseC53b3Jkc1t4Lmxlbmd0aCsxXT0wLHgubGVuZ3RoKz0yO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MHx4''@;'; put 'put ''LndvcmRzW1ZdO3gud29yZHNbVl09NjcxMDg4NjMmKFArPTk3NypUKSxQPTY0KlQrKFAvNjcxMDg4NjR8MCl9cmV0dXJuIDA9PT14LndvcmRzW3gubGVuZ3RoLTFdJiYoeC5sZW5ndGgtLSwwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmeC5sZW5ndGgtLSkseH0sVyhoZSxUZSksVyhPLFRlKSxX''@;'; put 'put ''KHosVGUpLHoucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKyl7dmFyIFQ9MTkqKDB8eC53b3Jkc1tWXSkrUCxTPTY3MTA4ODYzJlQ7VD4+Pj0yNix4LndvcmRzW1ZdPVMsUD1UfXJldHVybiAwIT09UCYmKHgud29yZHNbeC5sZW5ndGgr''@;'; put 'put ''K109UCkseH0sTi5fcHJpbWU9ZnVuY3Rpb24oeCl7aWYoSWVbeF0pcmV0dXJuIEllW3hdO3ZhciBQO2lmKCJrMjU2Ij09PXgpUD1uZXcgTWU7ZWxzZSBpZigicDIyNCI9PT14KVA9bmV3IGhlO2Vsc2UgaWYoInAxOTIiPT09eClQPW5ldyBPO2Vsc2V7aWYoInAyNTUxOSIhPT14KXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigiVW5rbm93biBwcmltZSAiK3gpO1A9bmV3IHp9cmV0dXJuIEllW3hdPVAsUH0sZWUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksWSh4LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0''@;'; put 'put ''aCByZWQgbnVtYmVycyIpfSxlZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oeCxQKXtZKDA9PSh4Lm5lZ2F0aXZlfFAubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQmJngucmVkPT09UC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51''@;'; put 'put ''bWJlcnMiKX0sZWUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKHgpLl9mb3JjZVJlZCh0aGlzKTp4LnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LGVlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oeCl7cmV0dXJuIHgu''@;'; put 'put ''aXNaZXJvKCk/eC5jbG9uZSgpOnRoaXMubS5zdWIoeCkuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWLl9mb3JjZVJl''@;'; put 'put ''ZCh0aGlzKX0sZWUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oeCxQKXt0aGlzLl92ZXJpZnkyKHgsUCk7dmFyIFY9eC5pYWRkKFApO3JldHVybiBWLmNtcCh0aGlzLm0pPj0wJiZWLmlzdWIodGhpcy5tKSxWfSxlZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4''@;'; put 'put ''LFApO3ZhciBWPXguc3ViKFApO3JldHVybiBWLmNtcG4oMCk8MCYmVi5pYWRkKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LGVlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5Mih4LFApO3ZhciBWPXguaXN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFk''@;'; put 'put ''ZCh0aGlzLm0pLFZ9LGVlLnByb3RvdHlwZS5zaGw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVyaWZ5MSh4KSx0aGlzLmltb2QoeC51c2hsbihQKSl9LGVlLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoeCxQKSx0aGlzLmltb2QoeC5pbXVs''@;'; put 'put ''KFApKX0sZWUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHgubXVsKFApKX0sZWUucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW11bCh4LHguY2xvbmUoKSl9LGVlLnByb3RvdHlwZS5zcXI9ZnVu''@;'; put 'put ''Y3Rpb24oeCl7cmV0dXJuIHRoaXMubXVsKHgseCl9LGVlLnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHgpe2lmKHguaXNaZXJvKCkpcmV0dXJuIHguY2xvbmUoKTt2YXIgUD10aGlzLm0uYW5kbG4oMyk7aWYoWShQJTI9PTEpLDM9PT1QKXt2YXIgVj10aGlzLm0uYWRkKG5ldyBOKDEpKS5pdXNo''@;'; put 'put ''cm4oMik7cmV0dXJuIHRoaXMucG93KHgsVil9Zm9yKHZhciBUPXRoaXMubS5zdWJuKDEpLFM9MDshVC5pc1plcm8oKSYmMD09PVQuYW5kbG4oMSk7KVMrKyxULml1c2hybigxKTtZKCFULmlzWmVybygpKTt2YXIgRj1uZXcgTigxKS50b1JlZCh0aGlzKSx5ZT1GLnJlZE5lZygpLENlPXRoaXMu''@;'; put 'put ''bS5zdWJuKDEpLml1c2hybigxKSxEZT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKERlPW5ldyBOKDIqRGUqRGUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhEZSxDZSkuY21wKHllKTspRGUucmVkSUFkZCh5ZSk7Zm9yKHZhciBQZT10aGlzLnBvdyhEZSxUKSxRZT10aGlzLnBvdyh4LFQuYWRk''@;'; put 'put ''bigxKS5pdXNocm4oMSkpLCRlPXRoaXMucG93KHgsVCksZ3Q9UzswIT09JGUuY21wKEYpOyl7Zm9yKHZhciB3dD0kZSxtdD0wOzAhPT13dC5jbXAoRik7bXQrKyl3dD13dC5yZWRTcXIoKTtZKG10PGd0KTt2YXIgdnQ9dGhpcy5wb3coUGUsbmV3IE4oMSkuaXVzaGxuKGd0LW10LTEpKTtRZT1R''@;'; put 'put ''ZS5yZWRNdWwodnQpLFBlPXZ0LnJlZFNxcigpLCRlPSRlLnJlZE11bChQZSksZ3Q9bXR9cmV0dXJuIFFlfSxlZS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih4KXt2YXIgUD14Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09UC5uZWdhdGl2ZT8oUC5uZWdhdGl2ZT0wLHRoaXMuaW1vZChQKS5y''@;'; put 'put ''ZWROZWcoKSk6dGhpcy5pbW9kKFApfSxlZS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKHgsUCl7aWYoUC5pc1plcm8oKSlyZXR1cm4gbmV3IE4oMSkudG9SZWQodGhpcyk7aWYoMD09PVAuY21wbigxKSlyZXR1cm4geC5jbG9uZSgpO3ZhciBWPW5ldyBBcnJheSgxNik7VlswXT1uZXcgTigxKS50''@;'; put 'put ''b1JlZCh0aGlzKSxWWzFdPXg7Zm9yKHZhciBUPTI7VDxWLmxlbmd0aDtUKyspVltUXT10aGlzLm11bChWW1QtMV0seCk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT1QLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD1QLmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPVAu''@;'; put 'put ''d29yZHNbVF0sUGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2''@;'; put 'put ''fXJldHVybiBTfSxlZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHgpe3ZhciBQPXgudW1vZCh0aGlzLm0pO3JldHVybiBQPT09eD9QLmNsb25lKCk6UH0sZWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXguY2xvbmUoKTtyZXR1cm4gUC5yZWQ9bnVsbCxQ''@;'; put 'put ''fSxOLm1vbnQ9ZnVuY3Rpb24oeCl7cmV0dXJuIG5ldyBuZSh4KX0sVyhuZSxlZSksbmUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHgudXNobG4odGhpcy5zaGlmdCkpfSxuZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oeCl7dmFyIFA9''@;'; put 'put ''dGhpcy5pbW9kKHgubXVsKHRoaXMucmludikpO3JldHVybiBQLnJlZD1udWxsLFB9LG5lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHgsUCl7aWYoeC5pc1plcm8oKXx8UC5pc1plcm8oKSlyZXR1cm4geC53b3Jkc1swXT0wLHgubGVuZ3RoPTEseDt2YXIgVj14LmltdWwoUCksVD1WLm1hc2tu''@;'; put 'put ''KHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5zaGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0p''@;'; put 'put ''KSxGLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLm11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgVj14Lm11bChQKSxUPVYubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1h''@;'; put 'put ''c2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFM9Vi5pc3ViKFQpLml1c2hybih0aGlzLnNoaWZ0KSxGPVM7cmV0dXJuIFMuY21wKHRoaXMubSk+PTA/Rj1TLmlzdWIodGhpcy5tKTpTLmNtcG4oMCk8MCYmKEY9Uy5pYWRkKHRoaXMubSkpLEYuX2ZvcmNlUmVkKHRoaXMpfSxuZS5wcm90b3R5''@;'; put 'put ''cGUuaW52bT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5pbW9kKHguX2ludm1wKHRoaXMubSkubXVsKHRoaXMucjIpKS5fZm9yY2VSZWQodGhpcyl9fShVPWoubm1kKFUpLHRoaXMpfSw5NzQ2OlU9PntmdW5jdGlvbiBRKGoscmUpe2lmKCFqKXRocm93IG5ldyBFcnJvcihyZXx8IkFzc2VydGlv''@;'; put 'put ''biBmYWlsZWQiKX1VLmV4cG9ydHM9USxRLmVxdWFsPWZ1bmN0aW9uKGoscmUsYWUpe2lmKGohPXJlKXRocm93IG5ldyBFcnJvcihhZXx8IkFzc2VydGlvbiBmYWlsZWQ6ICIraisiICE9ICIrcmUpfX0sNDUwNDooVSxRKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgaj1RO2Z1bmN0aW9uIHJlKFkpe3Jl''@;'; put 'put ''dHVybiAxPT09WS5sZW5ndGg/IjAiK1k6WX1mdW5jdGlvbiBhZShZKXtmb3IodmFyIFc9IiIsTj0wO048WS5sZW5ndGg7TisrKVcrPXJlKFlbTl0udG9TdHJpbmcoMTYpKTtyZXR1cm4gV31qLnRvQXJyYXk9ZnVuY3Rpb24oWSxXKXtpZihBcnJheS5pc0FycmF5KFkpKXJldHVybiBZLnNsaWNl''@;'; put 'put ''KCk7aWYoIVkpcmV0dXJuW107dmFyIE49W107aWYoInN0cmluZyIhPXR5cGVvZiBZKXtmb3IodmFyIHRlPTA7dGU8WS5sZW5ndGg7dGUrKylOW3RlXT0wfFlbdGVdO3JldHVybiBOfWlmKCJoZXgiPT09Vylmb3IoKFk9WS5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCIiKSkubGVuZ3RoJTIhPTAm''@;'; put 'put ''JihZPSIwIitZKSx0ZT0wO3RlPFkubGVuZ3RoO3RlKz0yKU4ucHVzaChwYXJzZUludChZW3RlXStZW3RlKzFdLDE2KSk7ZWxzZSBmb3IodGU9MDt0ZTxZLmxlbmd0aDt0ZSsrKXt2YXIgSz1ZLmNoYXJDb2RlQXQodGUpLEo9Sz4+OCxzZT0yNTUmSztKP04ucHVzaChKLHNlKTpOLnB1c2goc2Up''@;'; put 'put ''fXJldHVybiBOfSxqLnplcm8yPXJlLGoudG9IZXg9YWUsai5lbmNvZGU9ZnVuY3Rpb24oWSxXKXtyZXR1cm4iaGV4Ij09PVc/YWUoWSk6WX19LDExNzE6KFUsUSxqKT0+e3ZhciByZT1qKDUxMDgpO1UuZXhwb3J0cz1jZSxjZS5NaW5pbWF0Y2g9ZGU7dmFyIGFlPWZ1bmN0aW9uKCl7dHJ5e3Jl''@;'; put 'put ''dHVybiBqKDI1MjApfWNhdGNoKFNlKXt9fSgpfHx7c2VwOiIvIn07Y2Uuc2VwPWFlLnNlcDt2YXIgWT1jZS5HTE9CU1RBUj1kZS5HTE9CU1RBUj17fSxXPWooMzY0NCksTj17IiEiOntvcGVuOiIoPzooPyEoPzoiLGNsb3NlOiIpKVteL10qPykifSwiPyI6e29wZW46Iig/OiIsY2xvc2U6Iik/''@;'; put 'put ''In0sIisiOntvcGVuOiIoPzoiLGNsb3NlOiIpKyJ9LCIqIjp7b3BlbjoiKD86IixjbG9zZToiKSoifSwiQCI6e29wZW46Iig/OiIsY2xvc2U6IikifX0sSz0iW14vXSo/IixKPSIoKS4qe30rP1tdXiRcXCEiLnNwbGl0KCIiKS5yZWR1Y2UoZnVuY3Rpb24oU2UsSWUpe3JldHVybiBTZVtJZV09''@;'; put 'put ''ITAsU2V9LHt9KSxzZT0vXC8rLztmdW5jdGlvbiBvZShTZSxJZSl7SWU9SWV8fHt9O3ZhciBUZT17fTtyZXR1cm4gT2JqZWN0LmtleXMoU2UpLmZvckVhY2goZnVuY3Rpb24oTWUpe1RlW01lXT1TZVtNZV19KSxPYmplY3Qua2V5cyhJZSkuZm9yRWFjaChmdW5jdGlvbihNZSl7VGVbTWVdPUll''@;'; put 'put ''W01lXX0pLFRlfWZ1bmN0aW9uIGNlKFNlLEllLFRlKXtyZXR1cm4gQWUoSWUpLFRlfHwoVGU9e30pLCEoIVRlLm5vY29tbWVudCYmIiMiPT09SWUuY2hhckF0KDApKSYmbmV3IGRlKEllLFRlKS5tYXRjaChTZSl9ZnVuY3Rpb24gZGUoU2UsSWUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIGRlKSly''@;'; put 'put ''ZXR1cm4gbmV3IGRlKFNlLEllKTtBZShTZSksSWV8fChJZT17fSksU2U9U2UudHJpbSgpLEllLmFsbG93V2luZG93c0VzY2FwZXx8Ii8iPT09YWUuc2VwfHwoU2U9U2Uuc3BsaXQoYWUuc2VwKS5qb2luKCIvIikpLHRoaXMub3B0aW9ucz1JZSx0aGlzLnNldD1bXSx0aGlzLnBhdHRlcm49U2Us''@;'; put 'put ''dGhpcy5yZWdleHA9bnVsbCx0aGlzLm5lZ2F0ZT0hMSx0aGlzLmNvbW1lbnQ9ITEsdGhpcy5lbXB0eT0hMSx0aGlzLnBhcnRpYWw9ISFJZS5wYXJ0aWFsLHRoaXMubWFrZSgpfWZ1bmN0aW9uIHZlKFNlLEllKXtyZXR1cm4gSWV8fChJZT10aGlzIGluc3RhbmNlb2YgZGU/dGhpcy5vcHRpb25z''@;'; put 'put ''Ont9KSxBZShTZT12b2lkIDA9PT1TZT90aGlzLnBhdHRlcm46U2UpLEllLm5vYnJhY2V8fCEvXHsoPzooPyFceykuKSpcfS8udGVzdChTZSk/W1NlXTpXKFNlKX1jZS5maWx0ZXI9ZnVuY3Rpb24oU2UsSWUpe3JldHVybiBJZT1JZXx8e30sZnVuY3Rpb24oVGUsTWUsaGUpe3JldHVybiBjZShU''@;'; put 'put ''ZSxTZSxJZSl9fSxjZS5kZWZhdWx0cz1mdW5jdGlvbihTZSl7aWYoIVNlfHwib2JqZWN0IiE9dHlwZW9mIFNlfHwhT2JqZWN0LmtleXMoU2UpLmxlbmd0aClyZXR1cm4gY2U7dmFyIEllPWNlLFRlPWZ1bmN0aW9uKE1lLGhlLE8pe3JldHVybiBJZShNZSxoZSxvZShTZSxPKSl9O3JldHVybihU''@;'; put 'put ''ZS5NaW5pbWF0Y2g9ZnVuY3Rpb24oTWUsaGUpe3JldHVybiBuZXcgSWUuTWluaW1hdGNoKE1lLG9lKFNlLGhlKSl9KS5kZWZhdWx0cz1mdW5jdGlvbihNZSl7cmV0dXJuIEllLmRlZmF1bHRzKG9lKFNlLE1lKSkuTWluaW1hdGNofSxUZS5maWx0ZXI9ZnVuY3Rpb24oTWUsaGUpe3JldHVybiBJ''@;'; put 'put ''ZS5maWx0ZXIoTWUsb2UoU2UsaGUpKX0sVGUuZGVmYXVsdHM9ZnVuY3Rpb24oTWUpe3JldHVybiBJZS5kZWZhdWx0cyhvZShTZSxNZSkpfSxUZS5tYWtlUmU9ZnVuY3Rpb24oTWUsaGUpe3JldHVybiBJZS5tYWtlUmUoTWUsb2UoU2UsaGUpKX0sVGUuYnJhY2VFeHBhbmQ9ZnVuY3Rpb24oTWUs''@;'; put 'put ''aGUpe3JldHVybiBJZS5icmFjZUV4cGFuZChNZSxvZShTZSxoZSkpfSxUZS5tYXRjaD1mdW5jdGlvbihNZSxoZSxPKXtyZXR1cm4gSWUubWF0Y2goTWUsaGUsb2UoU2UsTykpfSxUZX0sZGUuZGVmYXVsdHM9ZnVuY3Rpb24oU2Upe3JldHVybiBjZS5kZWZhdWx0cyhTZSkuTWluaW1hdGNofSxk''@;'; put 'put ''ZS5wcm90b3R5cGUuZGVidWc9ZnVuY3Rpb24oKXt9LGRlLnByb3RvdHlwZS5tYWtlPWZ1bmN0aW9uKCl7dmFyIFNlPXRoaXMucGF0dGVybixJZT10aGlzLm9wdGlvbnM7aWYoSWUubm9jb21tZW50fHwiIyIhPT1TZS5jaGFyQXQoMCkpaWYoU2Upe3RoaXMucGFyc2VOZWdhdGUoKTt2YXIgVGU9''@;'; put 'put ''dGhpcy5nbG9iU2V0PXRoaXMuYnJhY2VFeHBhbmQoKTtJZS5kZWJ1ZyYmKHRoaXMuZGVidWc9ZnVuY3Rpb24oKXtyZS5lcnJvci5hcHBseShyZSxhcmd1bWVudHMpfSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sVGUpLFRlPXRoaXMuZ2xvYlBhcnRzPVRlLm1hcChmdW5jdGlvbihNZSl7cmV0''@;'; put 'put ''dXJuIE1lLnNwbGl0KHNlKX0pLHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLFRlKSxUZT1UZS5tYXAoZnVuY3Rpb24oTWUsaGUsTyl7cmV0dXJuIE1lLm1hcCh0aGlzLnBhcnNlLHRoaXMpfSx0aGlzKSx0aGlzLmRlYnVnKHRoaXMucGF0dGVybixUZSksVGU9VGUuZmlsdGVyKGZ1bmN0aW9uKE1l''@;'; put 'put ''KXtyZXR1cm4tMT09PU1lLmluZGV4T2YoITEpfSksdGhpcy5kZWJ1Zyh0aGlzLnBhdHRlcm4sVGUpLHRoaXMuc2V0PVRlfWVsc2UgdGhpcy5lbXB0eT0hMDtlbHNlIHRoaXMuY29tbWVudD0hMH0sZGUucHJvdG90eXBlLnBhcnNlTmVnYXRlPWZ1bmN0aW9uKCl7dmFyIFNlPXRoaXMucGF0dGVy''@;'; put 'put ''bixJZT0hMSxNZT0wO2lmKCF0aGlzLm9wdGlvbnMubm9uZWdhdGUpe2Zvcih2YXIgaGU9MCxPPVNlLmxlbmd0aDtoZTxPJiYiISI9PT1TZS5jaGFyQXQoaGUpO2hlKyspSWU9IUllLE1lKys7TWUmJih0aGlzLnBhdHRlcm49U2Uuc3Vic3RyKE1lKSksdGhpcy5uZWdhdGU9SWV9fSxjZS5icmFj''@;'; put 'put ''ZUV4cGFuZD1mdW5jdGlvbihTZSxJZSl7cmV0dXJuIHZlKFNlLEllKX0sZGUucHJvdG90eXBlLmJyYWNlRXhwYW5kPXZlO3ZhciBBZT1mdW5jdGlvbihTZSl7aWYoInN0cmluZyIhPXR5cGVvZiBTZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHBhdHRlcm4iKTtpZihTZS5sZW5ndGg+''@;'; put 'put ''NjU1MzYpdGhyb3cgbmV3IFR5cGVFcnJvcigicGF0dGVybiBpcyB0b28gbG9uZyIpfTtkZS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oU2UsSWUpe0FlKFNlKTt2YXIgVGU9dGhpcy5vcHRpb25zO2lmKCIqKiI9PT1TZSl7aWYoIVRlLm5vZ2xvYnN0YXIpcmV0dXJuIFk7U2U9IioifWlmKCIi''@;'; put 'put ''PT09U2UpcmV0dXJuIiI7dmFyIE1lLGhlPSIiLE89ISFUZS5ub2Nhc2Usej0hMSxlZT1bXSxuZT1bXSx4PSExLFA9LTEsVj0tMSxUPSIuIj09PVNlLmNoYXJBdCgwKT8iIjpUZS5kb3Q/Iig/ISg/Ol58XFwvKVxcLnsxLDJ9KD86JHxcXC8pKSI6Iig/IVxcLikiLFM9dGhpcztmdW5jdGlvbiBG''@;'; put 'put ''KCl7aWYoTWUpe3N3aXRjaChNZSl7Y2FzZSIqIjpoZSs9SyxPPSEwO2JyZWFrO2Nhc2UiPyI6aGUrPSJbXi9dIixPPSEwO2JyZWFrO2RlZmF1bHQ6aGUrPSJcXCIrTWV9Uy5kZWJ1ZygiY2xlYXJTdGF0ZUNoYXIgJWogJWoiLE1lLGhlKSxNZT0hMX19Zm9yKHZhciB5ZSxDZT0wLERlPVNlLmxl''@;'; put 'put ''bmd0aDtDZTxEZSYmKHllPVNlLmNoYXJBdChDZSkpO0NlKyspaWYodGhpcy5kZWJ1ZygiJXNcdCVzICVzICVqIixTZSxDZSxoZSx5ZSkseiYmSlt5ZV0paGUrPSJcXCIreWUsej0hMTtlbHNlIHN3aXRjaCh5ZSl7Y2FzZSIvIjpyZXR1cm4hMTtjYXNlIlxcIjpGKCksej0hMDtjb250aW51ZTtj''@;'; put 'put ''YXNlIj8iOmNhc2UiKiI6Y2FzZSIrIjpjYXNlIkAiOmNhc2UiISI6aWYodGhpcy5kZWJ1ZygiJXNcdCVzICVzICVqIDwtLSBzdGF0ZUNoYXIiLFNlLENlLGhlLHllKSx4KXt0aGlzLmRlYnVnKCIgIGluIGNsYXNzIiksIiEiPT09eWUmJkNlPT09VisxJiYoeWU9Il4iKSxoZSs9eWU7Y29udGlu''@;'; put 'put ''dWV9Uy5kZWJ1ZygiY2FsbCBjbGVhclN0YXRlQ2hhciAlaiIsTWUpLEYoKSxNZT15ZSxUZS5ub2V4dCYmRigpO2NvbnRpbnVlO2Nhc2UiKCI6aWYoeCl7aGUrPSIoIjtjb250aW51ZX1pZighTWUpe2hlKz0iXFwoIjtjb250aW51ZX1lZS5wdXNoKHt0eXBlOk1lLHN0YXJ0OkNlLTEscmVTdGFy''@;'; put 'put ''dDpoZS5sZW5ndGgsb3BlbjpOW01lXS5vcGVuLGNsb3NlOk5bTWVdLmNsb3NlfSksdGhpcy5kZWJ1ZygicGxUeXBlICVqICVqIixNZSxoZSs9IiEiPT09TWU/Iig/Oig/ISg/OiI6Iig/OiIpLE1lPSExO2NvbnRpbnVlO2Nhc2UiKSI6aWYoeHx8IWVlLmxlbmd0aCl7aGUrPSJcXCkiO2NvbnRp''@;'; put 'put ''bnVlfUYoKSxPPSEwO3ZhciBQZT1lZS5wb3AoKTtoZSs9UGUuY2xvc2UsIiEiPT09UGUudHlwZSYmbmUucHVzaChQZSksUGUucmVFbmQ9aGUubGVuZ3RoO2NvbnRpbnVlO2Nhc2UifCI6aWYoeHx8IWVlLmxlbmd0aHx8eil7aGUrPSJcXHwiLHo9ITE7Y29udGludWV9RigpLGhlKz0ifCI7Y29u''@;'; put 'put ''dGludWU7Y2FzZSJbIjppZihGKCkseCl7aGUrPSJcXCIreWU7Y29udGludWV9eD0hMCxWPUNlLFA9aGUubGVuZ3RoLGhlKz15ZTtjb250aW51ZTtjYXNlIl0iOmlmKENlPT09VisxfHwheCl7aGUrPSJcXCIreWUsej0hMTtjb250aW51ZX12YXIgUWU9U2Uuc3Vic3RyaW5nKFYrMSxDZSk7dHJ5''@;'; put 'put ''e1JlZ0V4cCgiWyIrUWUrIl0iKX1jYXRjaChmdCl7dmFyICRlPXRoaXMucGFyc2UoUWUsa2UpO2hlPWhlLnN1YnN0cigwLFApKyJcXFsiKyRlWzBdKyJcXF0iLE89T3x8JGVbMV0seD0hMTtjb250aW51ZX1PPSEwLHg9ITEsaGUrPXllO2NvbnRpbnVlO2RlZmF1bHQ6RigpLHo/ej0hMTohSlt5''@;'; put 'put ''ZV18fCJeIj09PXllJiZ4fHwoaGUrPSJcXCIpLGhlKz15ZX1mb3IoeCYmKFFlPVNlLnN1YnN0cihWKzEpLCRlPXRoaXMucGFyc2UoUWUsa2UpLGhlPWhlLnN1YnN0cigwLFApKyJcXFsiKyRlWzBdLE89T3x8JGVbMV0pLFBlPWVlLnBvcCgpO1BlO1BlPWVlLnBvcCgpKXt2YXIgZ3Q9aGUuc2xp''@;'; put 'put ''Y2UoUGUucmVTdGFydCtQZS5vcGVuLmxlbmd0aCk7dGhpcy5kZWJ1Zygic2V0dGluZyB0YWlsIixoZSxQZSksZ3Q9Z3QucmVwbGFjZSgvKCg/OlxcezJ9KXswLDY0fSkoXFw/KVx8L2csZnVuY3Rpb24oZnQsSHQsR2Upe3JldHVybiBHZXx8KEdlPSJcXCIpLEh0K0h0K0dlKyJ8In0pLHRoaXMu''@;'; put 'put ''ZGVidWcoInRhaWw9JWpcbiAgICVzIixndCxndCxQZSxoZSk7dmFyIHd0PSIqIj09PVBlLnR5cGU/SzoiPyI9PT1QZS50eXBlPyJbXi9dIjoiXFwiK1BlLnR5cGU7Tz0hMCxoZT1oZS5zbGljZSgwLFBlLnJlU3RhcnQpK3d0KyJcXCgiK2d0fUYoKSx6JiYoaGUrPSJcXFxcIik7dmFyIG10PSEx''@;'; put 'put ''O3N3aXRjaChoZS5jaGFyQXQoMCkpe2Nhc2UiWyI6Y2FzZSIuIjpjYXNlIigiOm10PSEwfWZvcih2YXIgdnQ9bmUubGVuZ3RoLTE7dnQ+LTE7dnQtLSl7dmFyIEF0PW5lW3Z0XSxodD1oZS5zbGljZSgwLEF0LnJlU3RhcnQpLEJ0PWhlLnNsaWNlKEF0LnJlU3RhcnQsQXQucmVFbmQtOCksb249''@;'; put 'put ''aGUuc2xpY2UoQXQucmVFbmQtOCxBdC5yZUVuZCksX3Q9aGUuc2xpY2UoQXQucmVFbmQpO29uKz1fdDt2YXIgdHQ9aHQuc3BsaXQoIigiKS5sZW5ndGgtMSxldD1fdDtmb3IoQ2U9MDtDZTx0dDtDZSsrKWV0PWV0LnJlcGxhY2UoL1wpWysqP10/LywiIik7dmFyIGx0PSIiOyIiPT09KF90PWV0''@;'; put 'put ''KSYmSWUhPT1rZSYmKGx0PSIkIiksaGU9aHQrQnQrX3QrbHQrb259aWYoIiIhPT1oZSYmTyYmKGhlPSIoPz0uKSIraGUpLG10JiYoaGU9VCtoZSksSWU9PT1rZSlyZXR1cm5baGUsT107aWYoIU8pcmV0dXJuIFNlLnJlcGxhY2UoL1xcKC4pL2csIiQxIik7dmFyIEx0PVRlLm5vY2FzZT8iaSI6''@;'; put 'put ''IiI7dHJ5e3ZhciBDdD1uZXcgUmVnRXhwKCJeIitoZSsiJCIsTHQpfWNhdGNoKGZ0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiJC4iKX1yZXR1cm4gQ3QuX2dsb2I9U2UsQ3QuX3NyYz1oZSxDdH07dmFyIGtlPXt9O2NlLm1ha2VSZT1mdW5jdGlvbihTZSxJZSl7cmV0dXJuIG5ldyBkZShTZSxJZXx8''@;'; put 'put ''e30pLm1ha2VSZSgpfSxkZS5wcm90b3R5cGUubWFrZVJlPWZ1bmN0aW9uKCl7aWYodGhpcy5yZWdleHB8fCExPT09dGhpcy5yZWdleHApcmV0dXJuIHRoaXMucmVnZXhwO3ZhciBTZT10aGlzLnNldDtpZighU2UubGVuZ3RoKXJldHVybiB0aGlzLnJlZ2V4cD0hMSx0aGlzLnJlZ2V4cDt2YXIg''@;'; put 'put ''SWU9dGhpcy5vcHRpb25zLFRlPUllLm5vZ2xvYnN0YXI/SzpJZS5kb3Q/Iig/Oig/ISg/OlxcL3xeKSg/OlxcLnsxLDJ9KSgkfFxcLykpLikqPyI6Iig/Oig/ISg/OlxcL3xeKVxcLikuKSo/IixNZT1JZS5ub2Nhc2U/ImkiOiIiLGhlPVNlLm1hcChmdW5jdGlvbihPKXtyZXR1cm4gTy5tYXAo''@;'; put 'put ''ZnVuY3Rpb24oeil7cmV0dXJuIHo9PT1ZP1RlOiJzdHJpbmciPT10eXBlb2Ygej96LnJlcGxhY2UoL1stW1xde30oKSorPy4sXFxeJHwjXHNdL2csIlxcJCYiKTp6Ll9zcmN9KS5qb2luKCJcXC8iKX0pLmpvaW4oInwiKTtoZT0iXig/OiIraGUrIikkIix0aGlzLm5lZ2F0ZSYmKGhlPSJeKD8h''@;'; put 'put ''IitoZSsiKS4qJCIpO3RyeXt0aGlzLnJlZ2V4cD1uZXcgUmVnRXhwKGhlLE1lKX1jYXRjaChPKXt0aGlzLnJlZ2V4cD0hMX1yZXR1cm4gdGhpcy5yZWdleHB9LGNlLm1hdGNoPWZ1bmN0aW9uKFNlLEllLFRlKXt2YXIgTWU9bmV3IGRlKEllLFRlPVRlfHx7fSk7cmV0dXJuIFNlPVNlLmZpbHRl''@;'; put 'put ''cihmdW5jdGlvbihoZSl7cmV0dXJuIE1lLm1hdGNoKGhlKX0pLE1lLm9wdGlvbnMubm9udWxsJiYhU2UubGVuZ3RoJiZTZS5wdXNoKEllKSxTZX0sZGUucHJvdG90eXBlLm1hdGNoPWZ1bmN0aW9uKFNlLEllKXtpZih2b2lkIDA9PT1JZSYmKEllPXRoaXMucGFydGlhbCksdGhpcy5kZWJ1Zygi''@;'; put 'put ''bWF0Y2giLFNlLHRoaXMucGF0dGVybiksdGhpcy5jb21tZW50KXJldHVybiExO2lmKHRoaXMuZW1wdHkpcmV0dXJuIiI9PT1TZTtpZigiLyI9PT1TZSYmSWUpcmV0dXJuITA7dmFyIFRlPXRoaXMub3B0aW9uczsiLyIhPT1hZS5zZXAmJihTZT1TZS5zcGxpdChhZS5zZXApLmpvaW4oIi8iKSks''@;'; put 'put ''U2U9U2Uuc3BsaXQoc2UpLHRoaXMuZGVidWcodGhpcy5wYXR0ZXJuLCJzcGxpdCIsU2UpO3ZhciBNZSxoZSxPPXRoaXMuc2V0O2Zvcih0aGlzLmRlYnVnKHRoaXMucGF0dGVybiwic2V0IixPKSxoZT1TZS5sZW5ndGgtMTtoZT49MCYmIShNZT1TZVtoZV0pO2hlLS0pO2ZvcihoZT0wO2hlPE8u''@;'; put 'put ''bGVuZ3RoO2hlKyspe3ZhciB6PU9baGVdLGVlPVNlO2lmKFRlLm1hdGNoQmFzZSYmMT09PXoubGVuZ3RoJiYoZWU9W01lXSksdGhpcy5tYXRjaE9uZShlZSx6LEllKSlyZXR1cm4hIVRlLmZsaXBOZWdhdGV8fCF0aGlzLm5lZ2F0ZX1yZXR1cm4hVGUuZmxpcE5lZ2F0ZSYmdGhpcy5uZWdhdGV9''@;'; put 'put ''LGRlLnByb3RvdHlwZS5tYXRjaE9uZT1mdW5jdGlvbihTZSxJZSxUZSl7dmFyIE1lPXRoaXMub3B0aW9uczt0aGlzLmRlYnVnKCJtYXRjaE9uZSIse3RoaXM6dGhpcyxmaWxlOlNlLHBhdHRlcm46SWV9KSx0aGlzLmRlYnVnKCJtYXRjaE9uZSIsU2UubGVuZ3RoLEllLmxlbmd0aCk7Zm9yKHZh''@;'; put 'put ''ciBoZT0wLE89MCx6PVNlLmxlbmd0aCxlZT1JZS5sZW5ndGg7aGU8eiYmTzxlZTtoZSsrLE8rKyl7dGhpcy5kZWJ1ZygibWF0Y2hPbmUgbG9vcCIpO3ZhciBuZSx4PUllW09dLFA9U2VbaGVdO2lmKHRoaXMuZGVidWcoSWUseCxQKSwhMT09PXgpcmV0dXJuITE7aWYoeD09PVkpe3RoaXMuZGVi''@;'; put 'put ''dWcoIkdMT0JTVEFSIixbSWUseCxQXSk7dmFyIFY9aGUsVD1PKzE7aWYoVD09PWVlKXtmb3IodGhpcy5kZWJ1ZygiKiogYXQgdGhlIGVuZCIpO2hlPHo7aGUrKylpZigiLiI9PT1TZVtoZV18fCIuLiI9PT1TZVtoZV18fCFNZS5kb3QmJiIuIj09PVNlW2hlXS5jaGFyQXQoMCkpcmV0dXJuITE7''@;'; put 'put ''cmV0dXJuITB9Zm9yKDtWPHo7KXt2YXIgUz1TZVtWXTtpZih0aGlzLmRlYnVnKCJcbmdsb2JzdGFyIHdoaWxlIixTZSxWLEllLFQsUyksdGhpcy5tYXRjaE9uZShTZS5zbGljZShWKSxJZS5zbGljZShUKSxUZSkpcmV0dXJuIHRoaXMuZGVidWcoImdsb2JzdGFyIGZvdW5kIG1hdGNoISIsVix6''@;'; put 'put ''LFMpLCEwO2lmKCIuIj09PVN8fCIuLiI9PT1TfHwhTWUuZG90JiYiLiI9PT1TLmNoYXJBdCgwKSl7dGhpcy5kZWJ1ZygiZG90IGRldGVjdGVkISIsU2UsVixJZSxUKTticmVha310aGlzLmRlYnVnKCJnbG9ic3RhciBzd2FsbG93IGEgc2VnbWVudCwgYW5kIGNvbnRpbnVlIiksVisrfXJldHVy''@;'; put 'put ''biEoIVRlfHwodGhpcy5kZWJ1ZygiXG4+Pj4gbm8gbWF0Y2gsIHBhcnRpYWw/IixTZSxWLEllLFQpLFYhPT16KSl9aWYoInN0cmluZyI9PXR5cGVvZiB4P3RoaXMuZGVidWcoInN0cmluZyBtYXRjaCIseCxQLG5lPVA9PT14KToobmU9UC5tYXRjaCh4KSx0aGlzLmRlYnVnKCJwYXR0ZXJuIG1h''@;'; put 'put ''dGNoIix4LFAsbmUpKSwhbmUpcmV0dXJuITF9aWYoaGU9PT16JiZPPT09ZWUpcmV0dXJuITA7aWYoaGU9PT16KXJldHVybiBUZTtpZihPPT09ZWUpcmV0dXJuIGhlPT09ei0xJiYiIj09PVNlW2hlXTt0aHJvdyBuZXcgRXJyb3IoInd0Zj8iKX19LDQyNDQ6VT0+eyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; put 'put ''UT1mdW5jdGlvbihqKXtyZXR1cm4gaiE9an07VS5leHBvcnRzPWZ1bmN0aW9uKGoscmUpe3JldHVybiAwPT09aiYmMD09PXJlPzEvaj09MS9yZTpqPT09cmV8fCEoIVEoail8fCFRKHJlKSl9fSw2MDk6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0Mjg5KSxhZT1qKDU1NTkpLFk9''@;'; put 'put ''aig0MjQ0KSxXPWooNTYyNCksTj1qKDIyODEpLHRlPWFlKFcoKSxPYmplY3QpO3JlKHRlLHtnZXRQb2x5ZmlsbDpXLGltcGxlbWVudGF0aW9uOlksc2hpbTpOfSksVS5leHBvcnRzPXRlfSw1NjI0OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDI0NCk7VS5leHBvcnRzPWZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5pcz9PYmplY3QuaXM6cmV9fSwyMjgxOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNTYyNCksYWU9aig0Mjg5KTtVLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgWT1yZSgpO3JldHVybiBhZShPYmplY3Qse2lzOll9''@;'; put 'put ''LHtpczpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuaXMhPT1ZfX0pLFl9fSw4OTg3OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlO2lmKCFPYmplY3Qua2V5cyl7dmFyIGFlPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksWT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLFc9''@;'; put 'put ''aigxNDE0KSxOPU9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUsdGU9IU4uY2FsbCh7dG9TdHJpbmc6bnVsbH0sInRvU3RyaW5nIiksSz1OLmNhbGwoZnVuY3Rpb24oKXt9LCJwcm90b3R5cGUiKSxKPVsidG9TdHJpbmciLCJ0b0xvY2FsZVN0cmluZyIsInZhbHVlT2YiLCJo''@;'; put 'put ''YXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImNvbnN0cnVjdG9yIl0sc2U9ZnVuY3Rpb24oZGUpe3ZhciB2ZT1kZS5jb25zdHJ1Y3RvcjtyZXR1cm4gdmUmJnZlLnByb3RvdHlwZT09PWRlfSxvZT17JGFwcGxpY2F0aW9uQ2FjaGU6ITAsJGNv''@;'; put 'put ''bnNvbGU6ITAsJGV4dGVybmFsOiEwLCRmcmFtZTohMCwkZnJhbWVFbGVtZW50OiEwLCRmcmFtZXM6ITAsJGlubmVySGVpZ2h0OiEwLCRpbm5lcldpZHRoOiEwLCRvbm1vemZ1bGxzY3JlZW5jaGFuZ2U6ITAsJG9ubW96ZnVsbHNjcmVlbmVycm9yOiEwLCRvdXRlckhlaWdodDohMCwkb3V0ZXJX''@;'; put 'put ''aWR0aDohMCwkcGFnZVhPZmZzZXQ6ITAsJHBhZ2VZT2Zmc2V0OiEwLCRwYXJlbnQ6ITAsJHNjcm9sbExlZnQ6ITAsJHNjcm9sbFRvcDohMCwkc2Nyb2xsWDohMCwkc2Nyb2xsWTohMCwkc2VsZjohMCwkd2Via2l0SW5kZXhlZERCOiEwLCR3ZWJraXRTdG9yYWdlSW5mbzohMCwkd2luZG93OiEw''@;'; put 'put ''fSxjZT1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93KXJldHVybiExO2Zvcih2YXIgZGUgaW4gd2luZG93KXRyeXtpZighb2VbIiQiK2RlXSYmYWUuY2FsbCh3aW5kb3csZGUpJiZudWxsIT09d2luZG93W2RlXSYmIm9iamVjdCI9PXR5cGVvZiB3aW5kb3dbZGVdKXRy''@;'; put 'put ''eXtzZSh3aW5kb3dbZGVdKX1jYXRjaCh2ZSl7cmV0dXJuITB9fWNhdGNoKHZlKXtyZXR1cm4hMH1yZXR1cm4hMX0oKTtyZT1mdW5jdGlvbihkZSl7dmFyIHZlPW51bGwhPT1kZSYmIm9iamVjdCI9PXR5cGVvZiBkZSxBZT0iW29iamVjdCBGdW5jdGlvbl0iPT09WS5jYWxsKGRlKSxrZT1XKGRl''@;'; put 'put ''KSxTZT12ZSYmIltvYmplY3QgU3RyaW5nXSI9PT1ZLmNhbGwoZGUpLEllPVtdO2lmKCF2ZSYmIUFlJiYha2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiT2JqZWN0LmtleXMgY2FsbGVkIG9uIGEgbm9uLW9iamVjdCIpO3ZhciBUZT1LJiZBZTtpZihTZSYmZGUubGVuZ3RoPjAmJiFhZS5jYWxsKGRl''@;'; put 'put ''LDApKWZvcih2YXIgTWU9MDtNZTxkZS5sZW5ndGg7KytNZSlJZS5wdXNoKFN0cmluZyhNZSkpO2lmKGtlJiZkZS5sZW5ndGg+MClmb3IodmFyIGhlPTA7aGU8ZGUubGVuZ3RoOysraGUpSWUucHVzaChTdHJpbmcoaGUpKTtlbHNlIGZvcih2YXIgTyBpbiBkZSlUZSYmInByb3RvdHlwZSI9PT1P''@;'; put 'put ''fHwhYWUuY2FsbChkZSxPKXx8SWUucHVzaChTdHJpbmcoTykpO2lmKHRlKWZvcih2YXIgej1mdW5jdGlvbihuZSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fCFjZSlyZXR1cm4gc2UobmUpO3RyeXtyZXR1cm4gc2UobmUpfWNhdGNoKHgpe3JldHVybiExfX0oZGUpLGVlPTA7ZWU8''@;'; put 'put ''Si5sZW5ndGg7KytlZSl6JiYiY29uc3RydWN0b3IiPT09SltlZV18fCFhZS5jYWxsKGRlLEpbZWVdKXx8SWUucHVzaChKW2VlXSk7cmV0dXJuIEllfX1VLmV4cG9ydHM9cmV9LDIyMTU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9QXJyYXkucHJvdG90eXBlLnNsaWNlLGFlPWooMTQx''@;'; put 'put ''NCksWT1PYmplY3Qua2V5cyxXPVk/ZnVuY3Rpb24odGUpe3JldHVybiBZKHRlKX06aig4OTg3KSxOPU9iamVjdC5rZXlzO1cuc2hpbT1mdW5jdGlvbigpe2lmKE9iamVjdC5rZXlzKXt2YXIgdGU9ZnVuY3Rpb24oKXt2YXIgSz1PYmplY3Qua2V5cyhhcmd1bWVudHMpO3JldHVybiBLJiZLLmxl''@;'; put 'put ''bmd0aD09PWFyZ3VtZW50cy5sZW5ndGh9KDEsMik7dGV8fChPYmplY3Qua2V5cz1mdW5jdGlvbihLKXtyZXR1cm4gYWUoSyk/TihyZS5jYWxsKEspKTpOKEspfSl9ZWxzZSBPYmplY3Qua2V5cz1XO3JldHVybiBPYmplY3Qua2V5c3x8V30sVS5leHBvcnRzPVd9LDE0MTQ6VT0+eyJ1c2Ugc3Ry''@;'; put 'put ''aWN0Ijt2YXIgUT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO1UuZXhwb3J0cz1mdW5jdGlvbihqKXt2YXIgcmU9US5jYWxsKGopLGFlPSJbb2JqZWN0IEFyZ3VtZW50c10iPT09cmU7cmV0dXJuIGFlfHwoYWU9IltvYmplY3QgQXJyYXldIiE9PXJlJiZudWxsIT09aiYmIm9iamVjdCI9PXR5''@;'; put 'put ''cGVvZiBqJiYibnVtYmVyIj09dHlwZW9mIGoubGVuZ3RoJiZqLmxlbmd0aD49MCYmIltvYmplY3QgRnVuY3Rpb25dIj09PVEuY2FsbChqLmNhbGxlZSkpLGFlfX0sNzc4OihVLFEsaik9Pnt2YXIgcmU9aigyNDc5KTtmdW5jdGlvbiBhZShXKXt2YXIgTj1mdW5jdGlvbigpe3JldHVybiBOLmNh''@;'; put 'put ''bGxlZD9OLnZhbHVlOihOLmNhbGxlZD0hMCxOLnZhbHVlPVcuYXBwbHkodGhpcyxhcmd1bWVudHMpKX07cmV0dXJuIE4uY2FsbGVkPSExLE59ZnVuY3Rpb24gWShXKXt2YXIgTj1mdW5jdGlvbigpe2lmKE4uY2FsbGVkKXRocm93IG5ldyBFcnJvcihOLm9uY2VFcnJvcik7cmV0dXJuIE4uY2Fs''@;'; put 'put ''bGVkPSEwLE4udmFsdWU9Vy5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3JldHVybiBOLm9uY2VFcnJvcj0oVy5uYW1lfHwiRnVuY3Rpb24gd3JhcHBlZCB3aXRoIGBvbmNlYCIpKyIgc2hvdWxkbid0IGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZSIsTi5jYWxsZWQ9ITEsTn1VLmV4cG9ydHM9cmUo''@;'; put 'put ''YWUpLFUuZXhwb3J0cy5zdHJpY3Q9cmUoWSksYWUucHJvdG89YWUoZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoRnVuY3Rpb24ucHJvdG90eXBlLCJvbmNlIix7dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYWUodGhpcyl9LGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQ''@;'; put 'put ''cm9wZXJ0eShGdW5jdGlvbi5wcm90b3R5cGUsIm9uY2VTdHJpY3QiLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBZKHRoaXMpfSxjb25maWd1cmFibGU6ITB9KX0pfSw3NDM1OihVLFEpPT57US5lbmRpYW5uZXNzPWZ1bmN0aW9uKCl7cmV0dXJuIkxFIn0sUS5ob3N0bmFtZT1mdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgbG9jYXRpb24/bG9jYXRpb24uaG9zdG5hbWU6IiJ9LFEubG9hZGF2Zz1mdW5jdGlvbigpe3JldHVybltdfSxRLnVwdGltZT1mdW5jdGlvbigpe3JldHVybiAwfSxRLmZyZWVtZW09ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyLk1BWF9WQUxVRX0s''@;'; put 'put ''US50b3RhbG1lbT1mdW5jdGlvbigpe3JldHVybiBOdW1iZXIuTUFYX1ZBTFVFfSxRLmNwdXM9ZnVuY3Rpb24oKXtyZXR1cm5bXX0sUS50eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIkJyb3dzZXIifSxRLnJlbGVhc2U9ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRv''@;'; put 'put ''cj9uYXZpZ2F0b3IuYXBwVmVyc2lvbjoiIn0sUS5uZXR3b3JrSW50ZXJmYWNlcz1RLmdldE5ldHdvcmtJbnRlcmZhY2VzPWZ1bmN0aW9uKCl7cmV0dXJue319LFEuYXJjaD1mdW5jdGlvbigpe3JldHVybiJqYXZhc2NyaXB0In0sUS5wbGF0Zm9ybT1mdW5jdGlvbigpe3JldHVybiJicm93c2Vy''@;'; put 'put ''In0sUS50bXBkaXI9US50bXBEaXI9ZnVuY3Rpb24oKXtyZXR1cm4iL3RtcCJ9LFEuRU9MPSJcbiIsUS5ob21lZGlyPWZ1bmN0aW9uKCl7cmV0dXJuIi8ifX0sMjgxODooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDk4MDkpO1EuY2VydGlmaWNhdGU9aigxOTM0KTt2YXIgYWU9cmUu''@;'; put 'put ''ZGVmaW5lKCJSU0FQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoIm1vZHVsdXMiKS5pbnQoKSx0aGlzLmtleSgicHVibGljRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpdmF0ZUV4cG9uZW50IikuaW50''@;'; put 'put ''KCksdGhpcy5rZXkoInByaW1lMSIpLmludCgpLHRoaXMua2V5KCJwcmltZTIiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQxIikuaW50KCksdGhpcy5rZXkoImV4cG9uZW50MiIpLmludCgpLHRoaXMua2V5KCJjb2VmZmljaWVudCIpLmludCgpKX0pO1EuUlNBUHJpdmF0ZUtleT1hZTt2YXIg''@;'; put 'put ''WT1yZS5kZWZpbmUoIlJTQVB1YmxpY0tleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgibW9kdWx1cyIpLmludCgpLHRoaXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpKX0pO1EuUlNBUHVibGljS2V5PVk7dmFyIFc9cmUuZGVmaW5lKCJTdWJqZWN0UHVibGljS2V5''@;'; put 'put ''SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikudXNlKE4pLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5IikuYml0c3RyKCkpfSk7US5QdWJsaWNLZXk9Vzt2YXIgTj1yZS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7''@;'; put 'put ''dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoIm5vbmUiKS5udWxsXygpLm9wdGlvbmFsKCksdGhpcy5rZXkoImN1cnZlIikub2JqaWQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInAiKS5pbnQo''@;'; put 'put ''KSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIikuaW50KCkpLm9wdGlvbmFsKCkpfSksdGU9cmUuZGVmaW5lKCJQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmludCgpLHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2Uo''@;'; put 'put ''TiksdGhpcy5rZXkoInN1YmplY3RQcml2YXRlS2V5Iikub2N0c3RyKCkpfSk7US5Qcml2YXRlS2V5PXRlO3ZhciBLPXJlLmRlZmluZSgiRW5jcnlwdGVkUHJpdmF0ZUtleUluZm8iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLnNlcSgpLm9iaih0aGlz''@;'; put 'put ''LmtleSgiaWQiKS5vYmppZCgpLHRoaXMua2V5KCJkZWNyeXB0Iikuc2VxKCkub2JqKHRoaXMua2V5KCJrZGUiKS5zZXEoKS5vYmoodGhpcy5rZXkoImlkIikub2JqaWQoKSx0aGlzLmtleSgia2RlcGFyYW1zIikuc2VxKCkub2JqKHRoaXMua2V5KCJzYWx0Iikub2N0c3RyKCksdGhpcy5rZXko''@;'; put 'put ''Iml0ZXJzIikuaW50KCkpKSx0aGlzLmtleSgiY2lwaGVyIikuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvIikub2JqaWQoKSx0aGlzLmtleSgiaXYiKS5vY3RzdHIoKSkpKSx0aGlzLmtleSgic3ViamVjdFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9KTtRLkVuY3J5cHRlZFByaXZhdGVLZXk9Szt2''@;'; put 'put ''YXIgSj1yZS5kZWZpbmUoIkRTQVByaXZhdGVLZXkiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgicCIpLmludCgpLHRoaXMua2V5KCJxIikuaW50KCksdGhpcy5rZXkoImciKS5pbnQoKSx0aGlzLmtleSgicHViX2tleSIpLmlu''@;'; put 'put ''dCgpLHRoaXMua2V5KCJwcml2X2tleSIpLmludCgpKX0pO1EuRFNBUHJpdmF0ZUtleT1KLFEuRFNBcGFyYW09cmUuZGVmaW5lKCJEU0FwYXJhbSIsZnVuY3Rpb24oKXt0aGlzLmludCgpfSk7dmFyIHNlPXJlLmRlZmluZSgiRUNQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2Jq''@;'; put 'put ''KHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInByaXZhdGVLZXkiKS5vY3RzdHIoKSx0aGlzLmtleSgicGFyYW1ldGVycyIpLm9wdGlvbmFsKCkuZXhwbGljaXQoMCkudXNlKG9lKSx0aGlzLmtleSgicHVibGljS2V5Iikub3B0aW9uYWwoKS5leHBsaWNpdCgxKS5iaXRzdHIo''@;'; put 'put ''KSl9KTtRLkVDUHJpdmF0ZUtleT1zZTt2YXIgb2U9cmUuZGVmaW5lKCJFQ1BhcmFtZXRlcnMiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe25hbWVkQ3VydmU6dGhpcy5vYmppZCgpfSl9KTtRLnNpZ25hdHVyZT1yZS5kZWZpbmUoInNpZ25hdHVyZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9i''@;'; put 'put ''aih0aGlzLmtleSgiciIpLmludCgpLHRoaXMua2V5KCJzIikuaW50KCkpfSl9LDE5MzQ6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig5ODA5KSxhZT1yZS5kZWZpbmUoIlRpbWUiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3V0Y1RpbWU6dGhpcy51dGN0aW1lKCksZ2VuZXJhbFRp''@;'; put 'put ''bWU6dGhpcy5nZW50aW1lKCl9KX0pLFk9cmUuZGVmaW5lKCJBdHRyaWJ1dGVUeXBlVmFsdWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInR5cGUiKS5vYmppZCgpLHRoaXMua2V5KCJ2YWx1ZSIpLmFueSgpKX0pLFc9cmUuZGVmaW5lKCJBbGdvcml0aG1JZGVudGlmaWVy''@;'; put 'put ''IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS5vYmppZCgpLHRoaXMua2V5KCJwYXJhbWV0ZXJzIikub3B0aW9uYWwoKSx0aGlzLmtleSgiY3VydmUiKS5vYmppZCgpLm9wdGlvbmFsKCkpfSksTj1yZS5kZWZpbmUoIlN1YmplY3RQdWJsaWNLZXlJbmZv''@;'; put 'put ''IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJhbGdvcml0aG0iKS51c2UoVyksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KSx0ZT1yZS5kZWZpbmUoIlJlbGF0aXZlRGlzdGluZ3Vpc2hlZE5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5zZXRvZihZKX0p''@;'; put 'put ''LEs9cmUuZGVmaW5lKCJSRE5TZXF1ZW5jZSIsZnVuY3Rpb24oKXt0aGlzLnNlcW9mKHRlKX0pLEo9cmUuZGVmaW5lKCJOYW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHtyZG5TZXF1ZW5jZTp0aGlzLnVzZShLKX0pfSksc2U9cmUuZGVmaW5lKCJWYWxpZGl0eSIsZnVuY3Rpb24oKXt0aGlz''@;'; put 'put ''LnNlcSgpLm9iaih0aGlzLmtleSgibm90QmVmb3JlIikudXNlKGFlKSx0aGlzLmtleSgibm90QWZ0ZXIiKS51c2UoYWUpKX0pLG9lPXJlLmRlZmluZSgiRXh0ZW5zaW9uIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJleHRuSUQiKS5vYmppZCgpLHRoaXMua2V5KCJjcml0''@;'; put 'put ''aWNhbCIpLmJvb2woKS5kZWYoITEpLHRoaXMua2V5KCJleHRuVmFsdWUiKS5vY3RzdHIoKSl9KSxjZT1yZS5kZWZpbmUoIlRCU0NlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuZXhwbGljaXQoMCkuaW50KCkub3B0aW9uYWwoKSx0aGlz''@;'; put 'put ''LmtleSgic2VyaWFsTnVtYmVyIikuaW50KCksdGhpcy5rZXkoInNpZ25hdHVyZSIpLnVzZShXKSx0aGlzLmtleSgiaXNzdWVyIikudXNlKEopLHRoaXMua2V5KCJ2YWxpZGl0eSIpLnVzZShzZSksdGhpcy5rZXkoInN1YmplY3QiKS51c2UoSiksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXlJ''@;'; put 'put ''bmZvIikudXNlKE4pLHRoaXMua2V5KCJpc3N1ZXJVbmlxdWVJRCIpLmltcGxpY2l0KDEpLmJpdHN0cigpLm9wdGlvbmFsKCksdGhpcy5rZXkoInN1YmplY3RVbmlxdWVJRCIpLmltcGxpY2l0KDIpLmJpdHN0cigpLm9wdGlvbmFsKCksdGhpcy5rZXkoImV4dGVuc2lvbnMiKS5leHBsaWNpdCgz''@;'; put 'put ''KS5zZXFvZihvZSkub3B0aW9uYWwoKSl9KSxkZT1yZS5kZWZpbmUoIlg1MDlDZXJ0aWZpY2F0ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidGJzQ2VydGlmaWNhdGUiKS51c2UoY2UpLHRoaXMua2V5KCJzaWduYXR1cmVBbGdvcml0aG0iKS51c2UoVyksdGhpcy5rZXko''@;'; put 'put ''InNpZ25hdHVyZVZhbHVlIikuYml0c3RyKCkpfSk7VS5leHBvcnRzPWRlfSw3NjMxOihVLFEsaik9Pnt2YXIgcmU9L1Byb2MtVHlwZTogNCxFTkNSWVBURURbXG5ccl0rREVLLUluZm86IEFFUy0oKD86MTI4KXwoPzoxOTIpfCg/OjI1NikpLUNCQywoWzAtOUEtSF0rKVtcblxyXSsoWzAtOUEt''@;'; put 'put ''elxuXHIrLz1dKylbXG5ccl0rL20sYWU9L14tLS0tLUJFR0lOICgoPzouKj8gS0VZKXxDRVJUSUZJQ0FURSktLS0tLS9tLFk9L14tLS0tLUJFR0lOICgoPzouKj8gS0VZKXxDRVJUSUZJQ0FURSktLS0tLShbMC05QS16XG5ccisvPV0rKS0tLS0tRU5EIFwxLS0tLS0kL20sVz1qKDMwNDgpLE49''@;'; put 'put ''aig0Njk2KSx0ZT1qKDk1MDkpLkJ1ZmZlcjtVLmV4cG9ydHM9ZnVuY3Rpb24oSyxKKXt2YXIgc2Usb2U9Sy50b1N0cmluZygpLGNlPW9lLm1hdGNoKHJlKTtpZihjZSl7dmFyIGRlPSJhZXMiK2NlWzFdLHZlPXRlLmZyb20oY2VbMl0sImhleCIpLEFlPXRlLmZyb20oY2VbM10ucmVwbGFjZSgv''@;'; put 'put ''W1xyXG5dL2csIiIpLCJiYXNlNjQiKSxrZT1XKEosdmUuc2xpY2UoMCw4KSxwYXJzZUludChjZVsxXSwxMCkpLmtleSxTZT1bXSxJZT1OLmNyZWF0ZURlY2lwaGVyaXYoZGUsa2UsdmUpO1NlLnB1c2goSWUudXBkYXRlKEFlKSksU2UucHVzaChJZS5maW5hbCgpKSxzZT10ZS5jb25jYXQoU2Up''@;'; put 'put ''fWVsc2V7dmFyIFRlPW9lLm1hdGNoKFkpO3NlPXRlLmZyb20oVGVbMl0ucmVwbGFjZSgvW1xyXG5dL2csIiIpLCJiYXNlNjQiKX1yZXR1cm57dGFnOm9lLm1hdGNoKGFlKVsxXSxkYXRhOnNlfX19LDk4MDooVSxRLGopPT57dmFyIHJlPWooMjgxOCksYWU9aigyNTYyKSxZPWooNzYzMSksVz1q''@;'; put 'put ''KDQ2OTYpLE49aig1NjMyKSx0ZT1qKDk1MDkpLkJ1ZmZlcjtmdW5jdGlvbiBLKEope3ZhciBzZTsib2JqZWN0IiE9dHlwZW9mIEp8fHRlLmlzQnVmZmVyKEopfHwoc2U9Si5wYXNzcGhyYXNlLEo9Si5rZXkpLCJzdHJpbmciPT10eXBlb2YgSiYmKEo9dGUuZnJvbShKKSk7dmFyIG9lLGNlLGtl''@;'; put 'put ''LFNlLEllLFRlLE1lLGhlLE8seixlZSxuZSx4LGRlPVkoSixzZSksdmU9ZGUudGFnLEFlPWRlLmRhdGE7c3dpdGNoKHZlKXtjYXNlIkNFUlRJRklDQVRFIjpjZT1yZS5jZXJ0aWZpY2F0ZS5kZWNvZGUoQWUsImRlciIpLnRic0NlcnRpZmljYXRlLnN1YmplY3RQdWJsaWNLZXlJbmZvO2Nhc2Ui''@;'; put 'put ''UFVCTElDIEtFWSI6c3dpdGNoKGNlfHwoY2U9cmUuUHVibGljS2V5LmRlY29kZShBZSwiZGVyIikpLG9lPWNlLmFsZ29yaXRobS5hbGdvcml0aG0uam9pbigiLiIpKXtjYXNlIjEuMi44NDAuMTEzNTQ5LjEuMS4xIjpyZXR1cm4gcmUuUlNBUHVibGljS2V5LmRlY29kZShjZS5zdWJqZWN0UHVi''@;'; put 'put ''bGljS2V5LmRhdGEsImRlciIpO2Nhc2UiMS4yLjg0MC4xMDA0NS4yLjEiOnJldHVybiBjZS5zdWJqZWN0UHJpdmF0ZUtleT1jZS5zdWJqZWN0UHVibGljS2V5LHt0eXBlOiJlYyIsZGF0YTpjZX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIGNlLmFsZ29yaXRobS5wYXJhbXMucHVi''@;'; put 'put ''X2tleT1yZS5EU0FwYXJhbS5kZWNvZGUoY2Uuc3ViamVjdFB1YmxpY0tleS5kYXRhLCJkZXIiKSx7dHlwZToiZHNhIixkYXRhOmNlLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK29lKX1jYXNlIkVOQ1JZUFRFRCBQUklWQVRFIEtF''@;'; put 'put ''WSI6U2U9c2UsSWU9KGtlPUFlPXJlLkVuY3J5cHRlZFByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIiKSkuYWxnb3JpdGhtLmRlY3J5cHQua2RlLmtkZXBhcmFtcy5zYWx0LFRlPXBhcnNlSW50KGtlLmFsZ29yaXRobS5kZWNyeXB0LmtkZS5rZGVwYXJhbXMuaXRlcnMudG9TdHJpbmcoKSwxMCks''@;'; put 'put ''TWU9YWVba2UuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxoZT1rZS5hbGdvcml0aG0uZGVjcnlwdC5jaXBoZXIuaXYsTz1rZS5zdWJqZWN0UHJpdmF0ZUtleSx6PXBhcnNlSW50KE1lLnNwbGl0KCItIilbMV0sMTApLzgsZWU9Ti5wYmtkZjJTeW5jKFNlLEllLFRl''@;'; put 'put ''LHosInNoYTEiKSxuZT1XLmNyZWF0ZURlY2lwaGVyaXYoTWUsZWUsaGUpLCh4PVtdKS5wdXNoKG5lLnVwZGF0ZShPKSkseC5wdXNoKG5lLmZpbmFsKCkpLEFlPXRlLmNvbmNhdCh4KTtjYXNlIlBSSVZBVEUgS0VZIjpzd2l0Y2gob2U9KGNlPXJlLlByaXZhdGVLZXkuZGVjb2RlKEFlLCJkZXIi''@;'; put 'put ''KSkuYWxnb3JpdGhtLmFsZ29yaXRobS5qb2luKCIuIikpe2Nhc2UiMS4yLjg0MC4xMTM1NDkuMS4xLjEiOnJldHVybiByZS5SU0FQcml2YXRlS2V5LmRlY29kZShjZS5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIik7Y2FzZSIxLjIuODQwLjEwMDQ1LjIuMSI6cmV0dXJue2N1cnZlOmNlLmFsZ29y''@;'; put 'put ''aXRobS5jdXJ2ZSxwcml2YXRlS2V5OnJlLkVDUHJpdmF0ZUtleS5kZWNvZGUoY2Uuc3ViamVjdFByaXZhdGVLZXksImRlciIpLnByaXZhdGVLZXl9O2Nhc2UiMS4yLjg0MC4xMDA0MC40LjEiOnJldHVybiBjZS5hbGdvcml0aG0ucGFyYW1zLnByaXZfa2V5PXJlLkRTQXBhcmFtLmRlY29kZShj''@;'; put 'put ''ZS5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikse3R5cGU6ImRzYSIscGFyYW1zOmNlLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK29lKX1jYXNlIlJTQSBQVUJMSUMgS0VZIjpyZXR1cm4gcmUuUlNBUHVibGljS2V5LmRlY29kZShB''@;'; put 'put ''ZSwiZGVyIik7Y2FzZSJSU0EgUFJJVkFURSBLRVkiOnJldHVybiByZS5SU0FQcml2YXRlS2V5LmRlY29kZShBZSwiZGVyIik7Y2FzZSJEU0EgUFJJVkFURSBLRVkiOnJldHVybnt0eXBlOiJkc2EiLHBhcmFtczpyZS5EU0FQcml2YXRlS2V5LmRlY29kZShBZSwiZGVyIil9O2Nhc2UiRUMgUFJJ''@;'; put 'put ''VkFURSBLRVkiOnJldHVybntjdXJ2ZTooQWU9cmUuRUNQcml2YXRlS2V5LmRlY29kZShBZSwiZGVyIikpLnBhcmFtZXRlcnMudmFsdWUscHJpdmF0ZUtleTpBZS5wcml2YXRlS2V5fTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5rbm93biBrZXkgdHlwZSAiK3ZlKX19VS5leHBvcnRzPUss''@;'; put 'put ''Sy5zaWduYXR1cmU9cmUuc2lnbmF0dXJlfSw0MDk1OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSk7ZnVuY3Rpb24gYWUoVyl7cmV0dXJuIi8iPT09Vy5jaGFyQXQoMCl9ZnVuY3Rpb24gWShXKXt2YXIgTj0vXihbYS16QS1aXTp8W1xcXC9dezJ9W15cXFwvXStbXFxcL10r''@;'; put 'put ''W15cXFwvXSspPyhbXFxcL10pPyhbXHNcU10qPykkLy5leGVjKFcpLHRlPU5bMV18fCIiLEs9Qm9vbGVhbih0ZSYmIjoiIT09dGUuY2hhckF0KDEpKTtyZXR1cm4gQm9vbGVhbihOWzJdfHxLKX1VLmV4cG9ydHM9IndpbjMyIj09PXJlLnBsYXRmb3JtP1k6YWUsVS5leHBvcnRzLnBvc2l4PWFl''@;'; put 'put ''LFUuZXhwb3J0cy53aW4zMj1ZfSwxNzI1OlU9PntVLmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oUSxqKXtRLnN1cGVyXz1qLFEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoai5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTpRLGVudW1lcmFi''@;'; put 'put ''bGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pfTpmdW5jdGlvbihRLGope1Euc3VwZXJfPWo7dmFyIHJlPWZ1bmN0aW9uKCl7fTtyZS5wcm90b3R5cGU9ai5wcm90b3R5cGUsUS5wcm90b3R5cGU9bmV3IHJlLFEucHJvdG90eXBlLmNvbnN0cnVjdG9yPVF9fSwyOTc0OlU9PntV''@;'; put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24oUSl7cmV0dXJuIFEmJiJvYmplY3QiPT10eXBlb2YgUSYmImZ1bmN0aW9uIj09dHlwZW9mIFEuY29weSYmImZ1bmN0aW9uIj09dHlwZW9mIFEuZmlsbCYmImZ1bmN0aW9uIj09dHlwZW9mIFEucmVhZFVJbnQ4fX0sODA1OTooVSxRLGopPT57dmFyIHJlPWooNDE1''@;'; put 'put ''NSksYWU9aig1MTA4KSxZPS8lW3NkaiVdL2c7US5mb3JtYXQ9ZnVuY3Rpb24oVCl7aWYoIVNlKFQpKXtmb3IodmFyIFM9W10sRj0wO0Y8YXJndW1lbnRzLmxlbmd0aDtGKyspUy5wdXNoKHRlKGFyZ3VtZW50c1tGXSkpO3JldHVybiBTLmpvaW4oIiAiKX1GPTE7Zm9yKHZhciB5ZT1hcmd1bWVu''@;'; put 'put ''dHMsQ2U9eWUubGVuZ3RoLERlPVN0cmluZyhUKS5yZXBsYWNlKFksZnVuY3Rpb24oUWUpe2lmKCIlJSI9PT1RZSlyZXR1cm4iJSI7aWYoRj49Q2UpcmV0dXJuIFFlO3N3aXRjaChRZSl7Y2FzZSIlcyI6cmV0dXJuIFN0cmluZyh5ZVtGKytdKTtjYXNlIiVkIjpyZXR1cm4gTnVtYmVyKHllW0Yr''@;'; put 'put ''K10pO2Nhc2UiJWoiOnRyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkoeWVbRisrXSl9Y2F0Y2goJGUpe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiBRZX19KSxQZT15ZVtGXTtGPENlO1BlPXllWysrRl0pQWUoUGUpfHwhTWUoUGUpP0RlKz0iICIrUGU6RGUrPSIgIit0ZShQZSk7''@;'; put 'put ''cmV0dXJuIERlfSxRLmRlcHJlY2F0ZT1mdW5jdGlvbihULFMpe2lmKEllKGouZy5wcm9jZXNzKSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUS5kZXByZWNhdGUoVCxTKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2lmKCEwPT09cmUubm9EZXByZWNhdGlvbilyZXR1cm4gVDt2YXIgRj0hMTty''@;'; put 'put ''ZXR1cm4gZnVuY3Rpb24oKXtpZighRil7aWYocmUudGhyb3dEZXByZWNhdGlvbil0aHJvdyBuZXcgRXJyb3IoUyk7cmUudHJhY2VEZXByZWNhdGlvbj9hZS50cmFjZShTKTphZS5lcnJvcihTKSxGPSEwfXJldHVybiBULmFwcGx5KHRoaXMsYXJndW1lbnRzKX19O3ZhciBXLE49e307ZnVuY3Rp''@;'; put 'put ''b24gdGUoVCxTKXt2YXIgRj17c2VlbjpbXSxzdHlsaXplOkp9O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPj0zJiYoRi5kZXB0aD1hcmd1bWVudHNbMl0pLGFyZ3VtZW50cy5sZW5ndGg+PTQmJihGLmNvbG9ycz1hcmd1bWVudHNbM10pLHZlKFMpP0Yuc2hvd0hpZGRlbj1TOlMmJlEuX2V4dGVu''@;'; put 'put ''ZChGLFMpLEllKEYuc2hvd0hpZGRlbikmJihGLnNob3dIaWRkZW49ITEpLEllKEYuZGVwdGgpJiYoRi5kZXB0aD0yKSxJZShGLmNvbG9ycykmJihGLmNvbG9ycz0hMSksSWUoRi5jdXN0b21JbnNwZWN0KSYmKEYuY3VzdG9tSW5zcGVjdD0hMCksRi5jb2xvcnMmJihGLnN0eWxpemU9Syksc2Uo''@;'; put 'put ''RixULEYuZGVwdGgpfWZ1bmN0aW9uIEsoVCxTKXt2YXIgRj10ZS5zdHlsZXNbU107cmV0dXJuIEY/Ilx4MWJbIit0ZS5jb2xvcnNbRl1bMF0rIm0iK1QrIlx4MWJbIit0ZS5jb2xvcnNbRl1bMV0rIm0iOlR9ZnVuY3Rpb24gSihULFMpe3JldHVybiBUfWZ1bmN0aW9uIHNlKFQsUyxGKXtpZihU''@;'; put 'put ''LmN1c3RvbUluc3BlY3QmJlMmJnooUy5pbnNwZWN0KSYmUy5pbnNwZWN0IT09US5pbnNwZWN0JiYoIVMuY29uc3RydWN0b3J8fFMuY29uc3RydWN0b3IucHJvdG90eXBlIT09Uykpe3ZhciB5ZT1TLmluc3BlY3QoRixUKTtyZXR1cm4gU2UoeWUpfHwoeWU9c2UoVCx5ZSxGKSkseWV9dmFyIENl''@;'; put 'put ''PWZ1bmN0aW9uKHZ0LEF0KXtpZihJZShBdCkpcmV0dXJuIHZ0LnN0eWxpemUoInVuZGVmaW5lZCIsInVuZGVmaW5lZCIpO2lmKFNlKEF0KSl7dmFyIGh0PSInIitKU09OLnN0cmluZ2lmeShBdCkucmVwbGFjZSgvXiJ8IiQvZywiIikucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIv''@;'; put 'put ''ZywnIicpKyInIjtyZXR1cm4gdnQuc3R5bGl6ZShodCwic3RyaW5nIil9cmV0dXJuIGtlKEF0KT92dC5zdHlsaXplKCIiK0F0LCJudW1iZXIiKTp2ZShBdCk/dnQuc3R5bGl6ZSgiIitBdCwiYm9vbGVhbiIpOkFlKEF0KT92dC5zdHlsaXplKCJudWxsIiwibnVsbCIpOnZvaWQgMH0oVCxTKTtp''@;'; put 'put ''ZihDZSlyZXR1cm4gQ2U7dmFyIEF0LERlPU9iamVjdC5rZXlzKFMpLFBlPShBdD17fSxEZS5mb3JFYWNoKGZ1bmN0aW9uKGh0LEJ0KXtBdFtodF09ITB9KSxBdCk7aWYoVC5zaG93SGlkZGVuJiYoRGU9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoUykpLE8oUykmJihEZS5pbmRleE9mKCJt''@;'; put 'put ''ZXNzYWdlIik+PTB8fERlLmluZGV4T2YoImRlc2NyaXB0aW9uIik+PTApKXJldHVybiBvZShTKTtpZigwPT09RGUubGVuZ3RoKXtpZih6KFMpKXJldHVybiBULnN0eWxpemUoIltGdW5jdGlvbiIrKFMubmFtZT8iOiAiK1MubmFtZToiIikrIl0iLCJzcGVjaWFsIik7aWYoVGUoUykpcmV0dXJu''@;'; put 'put ''IFQuc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUyksInJlZ2V4cCIpO2lmKGhlKFMpKXJldHVybiBULnN0eWxpemUoRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChTKSwiZGF0ZSIpO2lmKE8oUykpcmV0dXJuIG9lKFMpfXZhciAkZSxndD0iIix3dD0hMSxtdD1b''@;'; put 'put ''InsiLCJ9Il07cmV0dXJuIGRlKFMpJiYod3Q9ITAsbXQ9WyJbIiwiXSJdKSx6KFMpJiYoZ3Q9IiBbRnVuY3Rpb24iKyhTLm5hbWU/IjogIitTLm5hbWU6IiIpKyJdIiksVGUoUykmJihndD0iICIrUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFMpKSxoZShTKSYmKGd0PSIgIitEYXRl''@;'; put 'put ''LnByb3RvdHlwZS50b1VUQ1N0cmluZy5jYWxsKFMpKSxPKFMpJiYoZ3Q9IiAiK29lKFMpKSwwIT09RGUubGVuZ3RofHx3dCYmMCE9Uy5sZW5ndGg/RjwwP1RlKFMpP1Quc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoUyksInJlZ2V4cCIpOlQuc3R5bGl6ZSgiW09iamVj''@;'; put 'put ''dF0iLCJzcGVjaWFsIik6KFQuc2Vlbi5wdXNoKFMpLCRlPXd0P2Z1bmN0aW9uKHZ0LEF0LGh0LEJ0LG9uKXtmb3IodmFyIF90PVtdLHR0PTAsZXQ9QXQubGVuZ3RoO3R0PGV0OysrdHQpVihBdCxTdHJpbmcodHQpKT9fdC5wdXNoKGNlKHZ0LEF0LGh0LEJ0LFN0cmluZyh0dCksITApKTpfdC5w''@;'; put 'put ''dXNoKCIiKTtyZXR1cm4gb24uZm9yRWFjaChmdW5jdGlvbihsdCl7bHQubWF0Y2goL15cZCskLyl8fF90LnB1c2goY2UodnQsQXQsaHQsQnQsbHQsITApKX0pLF90fShULFMsRixQZSxEZSk6RGUubWFwKGZ1bmN0aW9uKHZ0KXtyZXR1cm4gY2UoVCxTLEYsUGUsdnQsd3QpfSksVC5zZWVuLnBv''@;'; put 'put ''cCgpLGZ1bmN0aW9uKHZ0LEF0LGh0KXtyZXR1cm4gdnQucmVkdWNlKGZ1bmN0aW9uKEJ0LG9uKXtyZXR1cm4gb24uaW5kZXhPZigiXG4iKSxCdCtvbi5yZXBsYWNlKC9cdTAwMWJcW1xkXGQ/bS9nLCIiKS5sZW5ndGgrMX0sMCk+NjA/aHRbMF0rKCIiPT09QXQ/IiI6QXQrIlxuICIpKyIgIit2''@;'; put 'put ''dC5qb2luKCIsXG4gICIpKyIgIitodFsxXTpodFswXStBdCsiICIrdnQuam9pbigiLCAiKSsiICIraHRbMV19KCRlLGd0LG10KSk6bXRbMF0rZ3QrbXRbMV19ZnVuY3Rpb24gb2UoVCl7cmV0dXJuIlsiK0Vycm9yLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFQpKyJdIn1mdW5jdGlvbiBjZShU''@;'; put 'put ''LFMsRix5ZSxDZSxEZSl7dmFyIFBlLFFlLCRlO2lmKCgkZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFMsQ2UpfHx7dmFsdWU6U1tDZV19KS5nZXQ/UWU9VC5zdHlsaXplKCRlLnNldD8iW0dldHRlci9TZXR0ZXJdIjoiW0dldHRlcl0iLCJzcGVjaWFsIik6JGUuc2V0JiYoUWU9''@;'; put 'put ''VC5zdHlsaXplKCJbU2V0dGVyXSIsInNwZWNpYWwiKSksVih5ZSxDZSl8fChQZT0iWyIrQ2UrIl0iKSxRZXx8KFQuc2Vlbi5pbmRleE9mKCRlLnZhbHVlKTwwPyhRZT1BZShGKT9zZShULCRlLnZhbHVlLG51bGwpOnNlKFQsJGUudmFsdWUsRi0xKSkuaW5kZXhPZigiXG4iKT4tMSYmKFFlPURl''@;'; put 'put ''P1FlLnNwbGl0KCJcbiIpLm1hcChmdW5jdGlvbihndCl7cmV0dXJuIiAgIitndH0pLmpvaW4oIlxuIikuc3Vic3RyKDIpOiJcbiIrUWUuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKGd0KXtyZXR1cm4iICAgIitndH0pLmpvaW4oIlxuIikpOlFlPVQuc3R5bGl6ZSgiW0NpcmN1bGFyXSIsInNw''@;'; put 'put ''ZWNpYWwiKSksSWUoUGUpKXtpZihEZSYmQ2UubWF0Y2goL15cZCskLykpcmV0dXJuIFFlOyhQZT1KU09OLnN0cmluZ2lmeSgiIitDZSkpLm1hdGNoKC9eIihbYS16QS1aX11bYS16QS1aXzAtOV0qKSIkLyk/KFBlPVBlLnN1YnN0cigxLFBlLmxlbmd0aC0yKSxQZT1ULnN0eWxpemUoUGUsIm5h''@;'; put 'put ''bWUiKSk6KFBlPVBlLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKS5yZXBsYWNlKC8oXiJ8IiQpL2csIiciKSxQZT1ULnN0eWxpemUoUGUsInN0cmluZyIpKX1yZXR1cm4gUGUrIjogIitRZX1mdW5jdGlvbiBkZShUKXtyZXR1cm4gQXJyYXkuaXNBcnJheShUKX1mdW5j''@;'; put 'put ''dGlvbiB2ZShUKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBUfWZ1bmN0aW9uIEFlKFQpe3JldHVybiBudWxsPT09VH1mdW5jdGlvbiBrZShUKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIFR9ZnVuY3Rpb24gU2UoVCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBUfWZ1bmN0aW9uIEllKFQpe3Jl''@;'; put 'put ''dHVybiB2b2lkIDA9PT1UfWZ1bmN0aW9uIFRlKFQpe3JldHVybiBNZShUKSYmIltvYmplY3QgUmVnRXhwXSI9PT1lZShUKX1mdW5jdGlvbiBNZShUKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIFQmJm51bGwhPT1UfWZ1bmN0aW9uIGhlKFQpe3JldHVybiBNZShUKSYmIltvYmplY3QgRGF0ZV0i''@;'; put 'put ''PT09ZWUoVCl9ZnVuY3Rpb24gTyhUKXtyZXR1cm4gTWUoVCkmJigiW29iamVjdCBFcnJvcl0iPT09ZWUoVCl8fFQgaW5zdGFuY2VvZiBFcnJvcil9ZnVuY3Rpb24geihUKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgVH1mdW5jdGlvbiBlZShUKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50''@;'; put 'put ''b1N0cmluZy5jYWxsKFQpfWZ1bmN0aW9uIG5lKFQpe3JldHVybiBUPDEwPyIwIitULnRvU3RyaW5nKDEwKTpULnRvU3RyaW5nKDEwKX1RLmRlYnVnbG9nPWZ1bmN0aW9uKFQpe2lmKEllKFcpJiYoVz1yZS5lbnYuTk9ERV9ERUJVR3x8IiIpLFQ9VC50b1VwcGVyQ2FzZSgpLCFOW1RdKWlmKG5l''@;'; put 'put ''dyBSZWdFeHAoIlxcYiIrVCsiXFxiIiwiaSIpLnRlc3QoVykpe3ZhciBTPXJlLnBpZDtOW1RdPWZ1bmN0aW9uKCl7dmFyIEY9US5mb3JtYXQuYXBwbHkoUSxhcmd1bWVudHMpO2FlLmVycm9yKCIlcyAlZDogJXMiLFQsUyxGKX19ZWxzZSBOW1RdPWZ1bmN0aW9uKCl7fTtyZXR1cm4gTltUXX0s''@;'; put 'put ''US5pbnNwZWN0PXRlLHRlLmNvbG9ycz17Ym9sZDpbMSwyMl0saXRhbGljOlszLDIzXSx1bmRlcmxpbmU6WzQsMjRdLGludmVyc2U6WzcsMjddLHdoaXRlOlszNywzOV0sZ3JleTpbOTAsMzldLGJsYWNrOlszMCwzOV0sYmx1ZTpbMzQsMzldLGN5YW46WzM2LDM5XSxncmVlbjpbMzIsMzldLG1h''@;'; put 'put ''Z2VudGE6WzM1LDM5XSxyZWQ6WzMxLDM5XSx5ZWxsb3c6WzMzLDM5XX0sdGUuc3R5bGVzPXtzcGVjaWFsOiJjeWFuIixudW1iZXI6InllbGxvdyIsYm9vbGVhbjoieWVsbG93Iix1bmRlZmluZWQ6ImdyZXkiLG51bGw6ImJvbGQiLHN0cmluZzoiZ3JlZW4iLGRhdGU6Im1hZ2VudGEiLHJlZ2V4''@;'; put 'put ''cDoicmVkIn0sUS5pc0FycmF5PWRlLFEuaXNCb29sZWFuPXZlLFEuaXNOdWxsPUFlLFEuaXNOdWxsT3JVbmRlZmluZWQ9ZnVuY3Rpb24oVCl7cmV0dXJuIG51bGw9PVR9LFEuaXNOdW1iZXI9a2UsUS5pc1N0cmluZz1TZSxRLmlzU3ltYm9sPWZ1bmN0aW9uKFQpe3JldHVybiJzeW1ib2wiPT10''@;'; put 'put ''eXBlb2YgVH0sUS5pc1VuZGVmaW5lZD1JZSxRLmlzUmVnRXhwPVRlLFEuaXNPYmplY3Q9TWUsUS5pc0RhdGU9aGUsUS5pc0Vycm9yPU8sUS5pc0Z1bmN0aW9uPXosUS5pc1ByaW1pdGl2ZT1mdW5jdGlvbihUKXtyZXR1cm4gbnVsbD09PVR8fCJib29sZWFuIj09dHlwZW9mIFR8fCJudW1iZXIi''@;'; put 'put ''PT10eXBlb2YgVHx8InN0cmluZyI9PXR5cGVvZiBUfHwic3ltYm9sIj09dHlwZW9mIFR8fHZvaWQgMD09PVR9LFEuaXNCdWZmZXI9aigyOTc0KTt2YXIgeD1bIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdO2Z1''@;'; put 'put ''bmN0aW9uIFAoKXt2YXIgVD1uZXcgRGF0ZSxTPVtuZShULmdldEhvdXJzKCkpLG5lKFQuZ2V0TWludXRlcygpKSxuZShULmdldFNlY29uZHMoKSldLmpvaW4oIjoiKTtyZXR1cm5bVC5nZXREYXRlKCkseFtULmdldE1vbnRoKCldLFNdLmpvaW4oIiAiKX1mdW5jdGlvbiBWKFQsUyl7cmV0dXJu''@;'; put 'put ''IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChULFMpfVEubG9nPWZ1bmN0aW9uKCl7YWUubG9nKCIlcyAtICVzIixQKCksUS5mb3JtYXQuYXBwbHkoUSxhcmd1bWVudHMpKX0sUS5pbmhlcml0cz1qKDE3MjUpLFEuX2V4dGVuZD1mdW5jdGlvbihULFMpe2lmKCFTfHwhTWUo''@;'; put 'put ''UykpcmV0dXJuIFQ7Zm9yKHZhciBGPU9iamVjdC5rZXlzKFMpLHllPUYubGVuZ3RoO3llLS07KVRbRlt5ZV1dPVNbRlt5ZV1dO3JldHVybiBUfX0sMjUyMDooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQxNTUpLGFlPSJ3aW4zMiI9PT1yZS5wbGF0Zm9ybSxZPWooODA1OSk7ZnVu''@;'; put 'put ''Y3Rpb24gVyhrZSxTZSl7Zm9yKHZhciBJZT1bXSxUZT0wO1RlPGtlLmxlbmd0aDtUZSsrKXt2YXIgTWU9a2VbVGVdO01lJiYiLiIhPT1NZSYmKCIuLiI9PT1NZT9JZS5sZW5ndGgmJiIuLiIhPT1JZVtJZS5sZW5ndGgtMV0/SWUucG9wKCk6U2UmJkllLnB1c2goIi4uIik6SWUucHVzaChNZSkp''@;'; put 'put ''fXJldHVybiBJZX1mdW5jdGlvbiBOKGtlKXtmb3IodmFyIFNlPWtlLmxlbmd0aC0xLEllPTA7SWU8PVNlJiYha2VbSWVdO0llKyspO2Zvcih2YXIgVGU9U2U7VGU+PTAmJiFrZVtUZV07VGUtLSk7cmV0dXJuIDA9PT1JZSYmVGU9PT1TZT9rZTpJZT5UZT9bXTprZS5zbGljZShJZSxUZSsxKX12''@;'; put 'put ''YXIgdGU9L14oW2EtekEtWl06fFtcXFwvXXsyfVteXFxcL10rW1xcXC9dK1teXFxcL10rKT8oW1xcXC9dKT8oW1xzXFNdKj8pJC8sSz0vXihbXHNcU10qPykoKD86XC57MSwyfXxbXlxcXC9dKz98KShcLlteLlwvXFxdKnwpKSg/OltcXFwvXSopJC8sSj17fTtmdW5jdGlvbiBzZShrZSl7dmFy''@;'; put 'put ''IFNlPXRlLmV4ZWMoa2UpLEllPShTZVsxXXx8IiIpKyhTZVsyXXx8IiIpLE1lPUsuZXhlYyhTZVszXXx8IiIpO3JldHVybltJZSxNZVsxXSxNZVsyXSxNZVszXV19ZnVuY3Rpb24gb2Uoa2Upe3ZhciBTZT10ZS5leGVjKGtlKSxJZT1TZVsxXXx8IiIsVGU9ISFJZSYmIjoiIT09SWVbMV07cmV0''@;'; put 'put ''dXJue2RldmljZTpJZSxpc1VuYzpUZSxpc0Fic29sdXRlOlRlfHwhIVNlWzJdLHRhaWw6U2VbM119fWZ1bmN0aW9uIGNlKGtlKXtyZXR1cm4iXFxcXCIra2UucmVwbGFjZSgvXltcXFwvXSsvLCIiKS5yZXBsYWNlKC9bXFxcL10rL2csIlxcIil9Si5yZXNvbHZlPWZ1bmN0aW9uKCl7Zm9yKHZh''@;'; put 'put ''ciBrZT0iIixTZT0iIixJZT0hMSxUZT1hcmd1bWVudHMubGVuZ3RoLTE7VGU+PS0xO1RlLS0pe3ZhciBNZTtpZihUZT49MD9NZT1hcmd1bWVudHNbVGVdOmtlPyhNZT1yZS5lbnZbIj0iK2tlXSkmJk1lLnN1YnN0cigwLDMpLnRvTG93ZXJDYXNlKCk9PT1rZS50b0xvd2VyQ2FzZSgpKyJcXCJ8''@;'; put 'put ''fChNZT1rZSsiXFwiKTpNZT1yZS5jd2QoKSwhWS5pc1N0cmluZyhNZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnRzIHRvIHBhdGgucmVzb2x2ZSBtdXN0IGJlIHN0cmluZ3MiKTtpZihNZSl7dmFyIGhlPW9lKE1lKSxPPWhlLmRldmljZSx6PWhlLmlzVW5jLGVlPWhlLmlzQWJzb2x1''@;'; put 'put ''dGUsbmU9aGUudGFpbDtpZigoIU98fCFrZXx8Ty50b0xvd2VyQ2FzZSgpPT09a2UudG9Mb3dlckNhc2UoKSkmJihrZXx8KGtlPU8pLEllfHwoU2U9bmUrIlxcIitTZSxJZT1lZSksa2UmJkllKSlicmVha319cmV0dXJuIHomJihrZT1jZShrZSkpLGtlKyhJZT8iXFwiOiIiKSsoU2U9VyhTZS5z''@;'; put 'put ''cGxpdCgvW1xcXC9dKy8pLCFJZSkuam9pbigiXFwiKSl8fCIuIn0sSi5ub3JtYWxpemU9ZnVuY3Rpb24oa2Upe3ZhciBTZT1vZShrZSksSWU9U2UuZGV2aWNlLFRlPVNlLmlzVW5jLE1lPVNlLmlzQWJzb2x1dGUsaGU9U2UudGFpbCxPPS9bXFxcL10kLy50ZXN0KGhlKTtyZXR1cm4oaGU9Vyho''@;'; put 'put ''ZS5zcGxpdCgvW1xcXC9dKy8pLCFNZSkuam9pbigiXFwiKSl8fE1lfHwoaGU9Ii4iKSxoZSYmTyYmKGhlKz0iXFwiKSxUZSYmKEllPWNlKEllKSksSWUrKE1lPyJcXCI6IiIpK2hlfSxKLmlzQWJzb2x1dGU9ZnVuY3Rpb24oa2Upe3JldHVybiBvZShrZSkuaXNBYnNvbHV0ZX0sSi5qb2luPWZ1''@;'; put 'put ''bmN0aW9uKCl7Zm9yKHZhciBrZT1bXSxTZT0wO1NlPGFyZ3VtZW50cy5sZW5ndGg7U2UrKyl7dmFyIEllPWFyZ3VtZW50c1tTZV07aWYoIVkuaXNTdHJpbmcoSWUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50cyB0byBwYXRoLmpvaW4gbXVzdCBiZSBzdHJpbmdzIik7SWUmJmtlLnB1''@;'; put 'put ''c2goSWUpfXZhciBUZT1rZS5qb2luKCJcXCIpO3JldHVybi9eW1xcXC9dezJ9W15cXFwvXS8udGVzdChrZVswXSl8fChUZT1UZS5yZXBsYWNlKC9eW1xcXC9dezIsfS8sIlxcIikpLEoubm9ybWFsaXplKFRlKX0sSi5yZWxhdGl2ZT1mdW5jdGlvbihrZSxTZSl7a2U9Si5yZXNvbHZlKGtlKSxT''@;'; put 'put ''ZT1KLnJlc29sdmUoU2UpO2Zvcih2YXIgSWU9a2UudG9Mb3dlckNhc2UoKSxUZT1TZS50b0xvd2VyQ2FzZSgpLE1lPU4oU2Uuc3BsaXQoIlxcIikpLGhlPU4oSWUuc3BsaXQoIlxcIikpLE89TihUZS5zcGxpdCgiXFwiKSksej1NYXRoLm1pbihoZS5sZW5ndGgsTy5sZW5ndGgpLGVlPXosbmU9''@;'; put 'put ''MDtuZTx6O25lKyspaWYoaGVbbmVdIT09T1tuZV0pe2VlPW5lO2JyZWFrfWlmKDA9PWVlKXJldHVybiBTZTt2YXIgeD1bXTtmb3IobmU9ZWU7bmU8aGUubGVuZ3RoO25lKyspeC5wdXNoKCIuLiIpO3JldHVybih4PXguY29uY2F0KE1lLnNsaWNlKGVlKSkpLmpvaW4oIlxcIil9LEouX21ha2VM''@;'; put 'put ''b25nPWZ1bmN0aW9uKGtlKXtpZighWS5pc1N0cmluZyhrZSkpcmV0dXJuIGtlO2lmKCFrZSlyZXR1cm4iIjt2YXIgU2U9Si5yZXNvbHZlKGtlKTtyZXR1cm4vXlthLXpBLVpdXDpcXC8udGVzdChTZSk/IlxcXFw/XFwiK1NlOi9eXFxcXFtePy5dLy50ZXN0KFNlKT8iXFxcXD9cXFVOQ1xcIitT''@;'; put 'put ''ZS5zdWJzdHJpbmcoMik6a2V9LEouZGlybmFtZT1mdW5jdGlvbihrZSl7dmFyIFNlPXNlKGtlKSxJZT1TZVswXSxUZT1TZVsxXTtyZXR1cm4gSWV8fFRlPyhUZSYmKFRlPVRlLnN1YnN0cigwLFRlLmxlbmd0aC0xKSksSWUrVGUpOiIuIn0sSi5iYXNlbmFtZT1mdW5jdGlvbihrZSxTZSl7dmFy''@;'; put 'put ''IEllPXNlKGtlKVsyXTtyZXR1cm4gU2UmJkllLnN1YnN0cigtMSpTZS5sZW5ndGgpPT09U2UmJihJZT1JZS5zdWJzdHIoMCxJZS5sZW5ndGgtU2UubGVuZ3RoKSksSWV9LEouZXh0bmFtZT1mdW5jdGlvbihrZSl7cmV0dXJuIHNlKGtlKVszXX0sSi5mb3JtYXQ9ZnVuY3Rpb24oa2Upe2lmKCFZ''@;'; put 'put ''LmlzT2JqZWN0KGtlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXJhbWV0ZXIgJ3BhdGhPYmplY3QnIG11c3QgYmUgYW4gb2JqZWN0LCBub3QgIit0eXBlb2Yga2UpO2lmKCFZLmlzU3RyaW5nKGtlLnJvb3R8fCIiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCIncGF0aE9iamVjdC5yb290JyBtdXN0''@;'; put 'put ''IGJlIGEgc3RyaW5nIG9yIHVuZGVmaW5lZCwgbm90ICIrdHlwZW9mIGtlLnJvb3QpO3ZhciBJZT1rZS5kaXIsVGU9a2UuYmFzZXx8IiI7cmV0dXJuIEllP0llW0llLmxlbmd0aC0xXT09PUouc2VwP0llK1RlOkllK0ouc2VwK1RlOlRlfSxKLnBhcnNlPWZ1bmN0aW9uKGtlKXtpZighWS5pc1N0''@;'; put 'put ''cmluZyhrZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGFyYW1ldGVyICdwYXRoU3RyaW5nJyBtdXN0IGJlIGEgc3RyaW5nLCBub3QgIit0eXBlb2Yga2UpO3ZhciBTZT1zZShrZSk7aWYoIVNlfHw0IT09U2UubGVuZ3RoKXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgcGF0aCAnIitrZSsi''@;'; put 'put ''JyIpO3JldHVybntyb290OlNlWzBdLGRpcjpTZVswXStTZVsxXS5zbGljZSgwLC0xKSxiYXNlOlNlWzJdLGV4dDpTZVszXSxuYW1lOlNlWzJdLnNsaWNlKDAsU2VbMl0ubGVuZ3RoLVNlWzNdLmxlbmd0aCl9fSxKLnNlcD0iXFwiLEouZGVsaW1pdGVyPSI7Ijt2YXIgZGU9L14oXC8/fCkoW1xz''@;'; put 'put ''XFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvLHZlPXt9O2Z1bmN0aW9uIEFlKGtlKXtyZXR1cm4gZGUuZXhlYyhrZSkuc2xpY2UoMSl9dmUucmVzb2x2ZT1mdW5jdGlvbigpe2Zvcih2YXIga2U9IiIsU2U9ITEsSWU9YXJndW1lbnRzLmxlbmd0aC0x''@;'; put 'put ''O0llPj0tMSYmIVNlO0llLS0pe3ZhciBUZT1JZT49MD9hcmd1bWVudHNbSWVdOnJlLmN3ZCgpO2lmKCFZLmlzU3RyaW5nKFRlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgdG8gcGF0aC5yZXNvbHZlIG11c3QgYmUgc3RyaW5ncyIpO1RlJiYoa2U9VGUrIi8iK2tlLFNlPSIvIj09''@;'; put 'put ''PVRlWzBdKX1yZXR1cm4oU2U/Ii8iOiIiKSsoa2U9VyhrZS5zcGxpdCgiLyIpLCFTZSkuam9pbigiLyIpKXx8Ii4ifSx2ZS5ub3JtYWxpemU9ZnVuY3Rpb24oa2Upe3ZhciBTZT12ZS5pc0Fic29sdXRlKGtlKSxJZT1rZSYmIi8iPT09a2Vba2UubGVuZ3RoLTFdO3JldHVybihrZT1XKGtlLnNw''@;'; put 'put ''bGl0KCIvIiksIVNlKS5qb2luKCIvIikpfHxTZXx8KGtlPSIuIiksa2UmJkllJiYoa2UrPSIvIiksKFNlPyIvIjoiIikra2V9LHZlLmlzQWJzb2x1dGU9ZnVuY3Rpb24oa2Upe3JldHVybiIvIj09PWtlLmNoYXJBdCgwKX0sdmUuam9pbj1mdW5jdGlvbigpe2Zvcih2YXIga2U9IiIsU2U9MDtT''@;'; put 'put ''ZTxhcmd1bWVudHMubGVuZ3RoO1NlKyspe3ZhciBJZT1hcmd1bWVudHNbU2VdO2lmKCFZLmlzU3RyaW5nKEllKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudHMgdG8gcGF0aC5qb2luIG11c3QgYmUgc3RyaW5ncyIpO0llJiYoa2UrPWtlPyIvIitJZTpJZSl9cmV0dXJuIHZlLm5vcm1h''@;'; put 'put ''bGl6ZShrZSl9LHZlLnJlbGF0aXZlPWZ1bmN0aW9uKGtlLFNlKXtrZT12ZS5yZXNvbHZlKGtlKS5zdWJzdHIoMSksU2U9dmUucmVzb2x2ZShTZSkuc3Vic3RyKDEpO2Zvcih2YXIgSWU9TihrZS5zcGxpdCgiLyIpKSxUZT1OKFNlLnNwbGl0KCIvIikpLE1lPU1hdGgubWluKEllLmxlbmd0aCxU''@;'; put 'put ''ZS5sZW5ndGgpLGhlPU1lLE89MDtPPE1lO08rKylpZihJZVtPXSE9PVRlW09dKXtoZT1PO2JyZWFrfXZhciB6PVtdO2ZvcihPPWhlO088SWUubGVuZ3RoO08rKyl6LnB1c2goIi4uIik7cmV0dXJuKHo9ei5jb25jYXQoVGUuc2xpY2UoaGUpKSkuam9pbigiLyIpfSx2ZS5fbWFrZUxvbmc9ZnVu''@;'; put 'put ''Y3Rpb24oa2Upe3JldHVybiBrZX0sdmUuZGlybmFtZT1mdW5jdGlvbihrZSl7dmFyIFNlPUFlKGtlKSxJZT1TZVswXSxUZT1TZVsxXTtyZXR1cm4gSWV8fFRlPyhUZSYmKFRlPVRlLnN1YnN0cigwLFRlLmxlbmd0aC0xKSksSWUrVGUpOiIuIn0sdmUuYmFzZW5hbWU9ZnVuY3Rpb24oa2UsU2Up''@;'; put 'put ''e3ZhciBJZT1BZShrZSlbMl07cmV0dXJuIFNlJiZJZS5zdWJzdHIoLTEqU2UubGVuZ3RoKT09PVNlJiYoSWU9SWUuc3Vic3RyKDAsSWUubGVuZ3RoLVNlLmxlbmd0aCkpLEllfSx2ZS5leHRuYW1lPWZ1bmN0aW9uKGtlKXtyZXR1cm4gQWUoa2UpWzNdfSx2ZS5mb3JtYXQ9ZnVuY3Rpb24oa2Up''@;'; put 'put ''e2lmKCFZLmlzT2JqZWN0KGtlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQYXJhbWV0ZXIgJ3BhdGhPYmplY3QnIG11c3QgYmUgYW4gb2JqZWN0LCBub3QgIit0eXBlb2Yga2UpO2lmKCFZLmlzU3RyaW5nKGtlLnJvb3R8fCIiKSl0aHJvdyBuZXcgVHlwZUVycm9yKCIncGF0aE9iamVjdC5yb290''@;'; put 'put ''JyBtdXN0IGJlIGEgc3RyaW5nIG9yIHVuZGVmaW5lZCwgbm90ICIrdHlwZW9mIGtlLnJvb3QpO3JldHVybihrZS5kaXI/a2UuZGlyK3ZlLnNlcDoiIikrKGtlLmJhc2V8fCIiKX0sdmUucGFyc2U9ZnVuY3Rpb24oa2Upe2lmKCFZLmlzU3RyaW5nKGtlKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQ''@;'; put 'put ''YXJhbWV0ZXIgJ3BhdGhTdHJpbmcnIG11c3QgYmUgYSBzdHJpbmcsIG5vdCAiK3R5cGVvZiBrZSk7dmFyIFNlPUFlKGtlKTtpZighU2V8fDQhPT1TZS5sZW5ndGgpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBwYXRoICciK2tlKyInIik7cmV0dXJuIFNlWzFdPVNlWzFdfHwiIixTZVsy''@;'; put 'put ''XT1TZVsyXXx8IiIsU2VbM109U2VbM118fCIiLHtyb290OlNlWzBdLGRpcjpTZVswXStTZVsxXS5zbGljZSgwLC0xKSxiYXNlOlNlWzJdLGV4dDpTZVszXSxuYW1lOlNlWzJdLnNsaWNlKDAsU2VbMl0ubGVuZ3RoLVNlWzNdLmxlbmd0aCl9fSx2ZS5zZXA9Ii8iLHZlLmRlbGltaXRlcj0iOiIs''@;'; put 'put ''VS5leHBvcnRzPWFlP0o6dmUsVS5leHBvcnRzLnBvc2l4PXZlLFUuZXhwb3J0cy53aW4zMj1KfSw1NjMyOihVLFEsaik9PntRLnBia2RmMj1qKDg2MzgpLFEucGJrZGYyU3luYz1qKDEyNTcpfSw4NjM4OihVLFEsaik9Pnt2YXIgcmUsYWUsWT1qKDk1MDkpLkJ1ZmZlcixXPWooNzM1NyksTj1q''@;'; put 'put ''KDIzNjgpLHRlPWooMTI1NyksSz1qKDc3NzcpLEo9ai5nLmNyeXB0byYmai5nLmNyeXB0by5zdWJ0bGUsc2U9e3NoYToiU0hBLTEiLCJzaGEtMSI6IlNIQS0xIixzaGExOiJTSEEtMSIsc2hhMjU2OiJTSEEtMjU2Iiwic2hhLTI1NiI6IlNIQS0yNTYiLHNoYTM4NDoiU0hBLTM4NCIsInNoYS0z''@;'; put 'put ''ODQiOiJTSEEtMzg0Iiwic2hhLTUxMiI6IlNIQS01MTIiLHNoYTUxMjoiU0hBLTUxMiJ9LG9lPVtdO2Z1bmN0aW9uIGNlKCl7cmV0dXJuIGFlfHwoYWU9ai5nLnByb2Nlc3MmJmouZy5wcm9jZXNzLm5leHRUaWNrP2ouZy5wcm9jZXNzLm5leHRUaWNrOmouZy5xdWV1ZU1pY3JvdGFzaz9qLmcu''@;'; put 'put ''cXVldWVNaWNyb3Rhc2s6ai5nLnNldEltbWVkaWF0ZT9qLmcuc2V0SW1tZWRpYXRlOmouZy5zZXRUaW1lb3V0KX1mdW5jdGlvbiBkZSh2ZSxBZSxrZSxTZSxJZSl7cmV0dXJuIEouaW1wb3J0S2V5KCJyYXciLHZlLHtuYW1lOiJQQktERjIifSwhMSxbImRlcml2ZUJpdHMiXSkudGhlbihmdW5j''@;'; put 'put ''dGlvbihUZSl7cmV0dXJuIEouZGVyaXZlQml0cyh7bmFtZToiUEJLREYyIixzYWx0OkFlLGl0ZXJhdGlvbnM6a2UsaGFzaDp7bmFtZTpJZX19LFRlLFNlPDwzKX0pLnRoZW4oZnVuY3Rpb24oVGUpe3JldHVybiBZLmZyb20oVGUpfSl9VS5leHBvcnRzPWZ1bmN0aW9uKHZlLEFlLGtlLFNlLEll''@;'; put 'put ''LFRlKXsiZnVuY3Rpb24iPT10eXBlb2YgSWUmJihUZT1JZSxJZT12b2lkIDApO3ZhciBoZSxPLE1lPXNlWyhJZT1JZXx8InNoYTEiKS50b0xvd2VyQ2FzZSgpXTtpZihNZSYmImZ1bmN0aW9uIj09dHlwZW9mIGouZy5Qcm9taXNlKXtpZihXKGtlLFNlKSx2ZT1LKHZlLE4sIlBhc3N3b3JkIiks''@;'; put 'put ''QWU9SyhBZSxOLCJTYWx0IiksImZ1bmN0aW9uIiE9dHlwZW9mIFRlKXRocm93IG5ldyBFcnJvcigiTm8gY2FsbGJhY2sgcHJvdmlkZWQgdG8gcGJrZGYyIik7aGU9ZnVuY3Rpb24oaGUpe2lmKGouZy5wcm9jZXNzJiYhai5nLnByb2Nlc3MuYnJvd3Nlcnx8IUp8fCFKLmltcG9ydEtleXx8IUou''@;'; put 'put ''ZGVyaXZlQml0cylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCExKTtpZih2b2lkIDAhPT1vZVtoZV0pcmV0dXJuIG9lW2hlXTt2YXIgTz1kZShyZT1yZXx8WS5hbGxvYyg4KSxyZSwxMCwxMjgsaGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuITF9''@;'; put 'put ''KTtyZXR1cm4gb2VbaGVdPU8sT30oTWUpLnRoZW4oZnVuY3Rpb24oaGUpe3JldHVybiBoZT9kZSh2ZSxBZSxrZSxTZSxNZSk6dGUodmUsQWUsa2UsU2UsSWUpfSksTz1UZSxoZS50aGVuKGZ1bmN0aW9uKHope2NlKCkoZnVuY3Rpb24oKXtPKG51bGwseil9KX0sZnVuY3Rpb24oeil7Y2UoKShm''@;'; put 'put ''dW5jdGlvbigpe08oeil9KX0pfWVsc2UgY2UoKShmdW5jdGlvbigpe3ZhciBoZTt0cnl7aGU9dGUodmUsQWUsa2UsU2UsSWUpfWNhdGNoKE8pe3JldHVybiBUZShPKX1UZShudWxsLGhlKX0pfX0sMjM2ODooVSxRLGopPT57dmFyIHJlLGFlPWooNDE1NSk7cmU9ai5nLnByb2Nlc3MmJmouZy5w''@;'; put 'put ''cm9jZXNzLmJyb3dzZXI/InV0Zi04IjpqLmcucHJvY2VzcyYmai5nLnByb2Nlc3MudmVyc2lvbj9wYXJzZUludChhZS52ZXJzaW9uLnNwbGl0KCIuIilbMF0uc2xpY2UoMSksMTApPj02PyJ1dGYtOCI6ImJpbmFyeSI6InV0Zi04IixVLmV4cG9ydHM9cmV9LDczNTc6VT0+e3ZhciBRPU1hdGgu''@;'; put 'put ''cG93KDIsMzApLTE7VS5leHBvcnRzPWZ1bmN0aW9uKGoscmUpe2lmKCJudW1iZXIiIT10eXBlb2Ygail0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRpb25zIG5vdCBhIG51bWJlciIpO2lmKGo8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQgaXRlcmF0aW9ucyIpO2lmKCJudW1iZXIiIT10''@;'; put 'put ''eXBlb2YgcmUpdGhyb3cgbmV3IFR5cGVFcnJvcigiS2V5IGxlbmd0aCBub3QgYSBudW1iZXIiKTtpZihyZTwwfHxyZT5RfHxyZSE9cmUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGtleSBsZW5ndGgiKX19LDEyNTc6KFUsUSxqKT0+e3ZhciByZT1qKDgwMjgpLGFlPWooOTc4NSksWT1qKDkw''@;'; put 'put ''NzIpLFc9aig5NTA5KS5CdWZmZXIsTj1qKDczNTcpLHRlPWooMjM2OCksSz1qKDc3NzcpLEo9Vy5hbGxvYygxMjgpLHNlPXttZDU6MTYsc2hhMToyMCxzaGEyMjQ6Mjgsc2hhMjU2OjMyLHNoYTM4NDo0OCxzaGE1MTI6NjQscm1kMTYwOjIwLHJpcGVtZDE2MDoyMH07ZnVuY3Rpb24gb2UoY2Us''@;'; put 'put ''ZGUsdmUpe3ZhciBoZSxBZT0icm1kMTYwIj09PShoZT1jZSl8fCJyaXBlbWQxNjAiPT09aGU/ZnVuY3Rpb24geihlZSl7cmV0dXJuKG5ldyBhZSkudXBkYXRlKGVlKS5kaWdlc3QoKX06Im1kNSI9PT1oZT9yZTpmdW5jdGlvbiBPKGVlKXtyZXR1cm4gWShoZSkudXBkYXRlKGVlKS5kaWdlc3Qo''@;'; put 'put ''KX0sa2U9InNoYTUxMiI9PT1jZXx8InNoYTM4NCI9PT1jZT8xMjg6NjQ7ZGUubGVuZ3RoPmtlP2RlPUFlKGRlKTpkZS5sZW5ndGg8a2UmJihkZT1XLmNvbmNhdChbZGUsSl0sa2UpKTtmb3IodmFyIFNlPVcuYWxsb2NVbnNhZmUoa2Urc2VbY2VdKSxJZT1XLmFsbG9jVW5zYWZlKGtlK3NlW2Nl''@;'; put 'put ''XSksVGU9MDtUZTxrZTtUZSsrKVNlW1RlXT01NF5kZVtUZV0sSWVbVGVdPTkyXmRlW1RlXTt2YXIgTWU9Vy5hbGxvY1Vuc2FmZShrZSt2ZSs0KTtTZS5jb3B5KE1lLDAsMCxrZSksdGhpcy5pcGFkMT1NZSx0aGlzLmlwYWQyPVNlLHRoaXMub3BhZD1JZSx0aGlzLmFsZz1jZSx0aGlzLmJsb2Nr''@;'; put 'put ''c2l6ZT1rZSx0aGlzLmhhc2g9QWUsdGhpcy5zaXplPXNlW2NlXX1vZS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKGNlLGRlKXtyZXR1cm4gY2UuY29weShkZSx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKGRlKS5jb3B5KHRoaXMub3BhZCx0aGlzLmJsb2Nrc2l6ZSksdGhpcy5oYXNoKHRoaXMu''@;'; put 'put ''b3BhZCl9LFUuZXhwb3J0cz1mdW5jdGlvbihjZSxkZSx2ZSxBZSxrZSl7Tih2ZSxBZSk7dmFyIFNlPW5ldyBvZShrZT1rZXx8InNoYTEiLGNlPUsoY2UsdGUsIlBhc3N3b3JkIiksKGRlPUsoZGUsdGUsIlNhbHQiKSkubGVuZ3RoKSxJZT1XLmFsbG9jVW5zYWZlKEFlKSxUZT1XLmFsbG9jVW5z''@;'; put 'put ''YWZlKGRlLmxlbmd0aCs0KTtkZS5jb3B5KFRlLDAsMCxkZS5sZW5ndGgpO2Zvcih2YXIgTWU9MCxoZT1zZVtrZV0sTz1NYXRoLmNlaWwoQWUvaGUpLHo9MTt6PD1PO3orKyl7VGUud3JpdGVVSW50MzJCRSh6LGRlLmxlbmd0aCk7Zm9yKHZhciBlZT1TZS5ydW4oVGUsU2UuaXBhZDEpLG5lPWVl''@;'; put 'put ''LHg9MTt4PHZlO3grKyl7bmU9U2UucnVuKG5lLFNlLmlwYWQyKTtmb3IodmFyIFA9MDtQPGhlO1ArKyllZVtQXV49bmVbUF19ZWUuY29weShJZSxNZSksTWUrPWhlfXJldHVybiBJZX19LDc3Nzc6KFUsUSxqKT0+e3ZhciByZT1qKDk1MDkpLkJ1ZmZlcjtVLmV4cG9ydHM9ZnVuY3Rpb24oYWUs''@;'; put 'put ''WSxXKXtpZihyZS5pc0J1ZmZlcihhZSkpcmV0dXJuIGFlO2lmKCJzdHJpbmciPT10eXBlb2YgYWUpcmV0dXJuIHJlLmZyb20oYWUsWSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KGFlKSlyZXR1cm4gcmUuZnJvbShhZS5idWZmZXIpO3Rocm93IG5ldyBUeXBlRXJyb3IoVysiIG11c3QgYmUgYSBz''@;'; put 'put ''dHJpbmcsIGEgQnVmZmVyLCBhIHR5cGVkIGFycmF5IG9yIGEgRGF0YVZpZXciKX19LDQxNTU6VT0+e3ZhciBRLGoscmU9VS5leHBvcnRzPXt9O2Z1bmN0aW9uIGFlKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gWSgpe3Rocm93''@;'; put 'put ''IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gVyh2ZSl7aWYoUT09PXNldFRpbWVvdXQpcmV0dXJuIHNldFRpbWVvdXQodmUsMCk7aWYoKFE9PT1hZXx8IVEpJiZzZXRUaW1lb3V0KXJldHVybiBRPXNldFRpbWVvdXQsc2V0VGltZW91dCh2''@;'; put 'put ''ZSwwKTt0cnl7cmV0dXJuIFEodmUsMCl9Y2F0Y2goQWUpe3RyeXtyZXR1cm4gUS5jYWxsKG51bGwsdmUsMCl9Y2F0Y2goa2Upe3JldHVybiBRLmNhbGwodGhpcyx2ZSwwKX19fSFmdW5jdGlvbigpe3RyeXtRPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6YWV9Y2F0''@;'; put 'put ''Y2godmUpe1E9YWV9dHJ5e2o9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6WX1jYXRjaCh2ZSl7aj1ZfX0oKTt2YXIgTix0ZT1bXSxLPSExLEo9LTE7ZnVuY3Rpb24gc2UoKXtLJiZOJiYoSz0hMSxOLmxlbmd0aD90ZT1OLmNvbmNhdCh0ZSk6Sj0tMSx0ZS5s''@;'; put 'put ''ZW5ndGgmJm9lKCkpfWZ1bmN0aW9uIG9lKCl7aWYoIUspe3ZhciB2ZT1XKHNlKTtLPSEwO2Zvcih2YXIgQWU9dGUubGVuZ3RoO0FlOyl7Zm9yKE49dGUsdGU9W107KytKPEFlOylOJiZOW0pdLnJ1bigpO0o9LTEsQWU9dGUubGVuZ3RofU49bnVsbCxLPSExLGZ1bmN0aW9uKGtlKXtpZihqPT09''@;'; put 'put ''Y2xlYXJUaW1lb3V0KXJldHVybiBjbGVhclRpbWVvdXQoa2UpO2lmKChqPT09WXx8IWopJiZjbGVhclRpbWVvdXQpcmV0dXJuIGo9Y2xlYXJUaW1lb3V0LGNsZWFyVGltZW91dChrZSk7dHJ5e2ooa2UpfWNhdGNoKFNlKXt0cnl7cmV0dXJuIGouY2FsbChudWxsLGtlKX1jYXRjaChJZSl7cmV0''@;'; put 'put ''dXJuIGouY2FsbCh0aGlzLGtlKX19fSh2ZSl9fWZ1bmN0aW9uIGNlKHZlLEFlKXt0aGlzLmZ1bj12ZSx0aGlzLmFycmF5PUFlfWZ1bmN0aW9uIGRlKCl7fXJlLm5leHRUaWNrPWZ1bmN0aW9uKHZlKXt2YXIgQWU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxl''@;'; put 'put ''bmd0aD4xKWZvcih2YXIga2U9MTtrZTxhcmd1bWVudHMubGVuZ3RoO2tlKyspQWVba2UtMV09YXJndW1lbnRzW2tlXTt0ZS5wdXNoKG5ldyBjZSh2ZSxBZSkpLDEhPT10ZS5sZW5ndGh8fEt8fFcob2UpfSxjZS5wcm90b3R5cGUucnVuPWZ1bmN0aW9uKCl7dGhpcy5mdW4uYXBwbHkobnVsbCx0''@;'; put 'put ''aGlzLmFycmF5KX0scmUudGl0bGU9ImJyb3dzZXIiLHJlLmJyb3dzZXI9ITAscmUuZW52PXt9LHJlLmFyZ3Y9W10scmUudmVyc2lvbj0iIixyZS52ZXJzaW9ucz17fSxyZS5vbj1kZSxyZS5hZGRMaXN0ZW5lcj1kZSxyZS5vbmNlPWRlLHJlLm9mZj1kZSxyZS5yZW1vdmVMaXN0ZW5lcj1kZSxy''@;'; put 'put ''ZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZGUscmUuZW1pdD1kZSxyZS5wcmVwZW5kTGlzdGVuZXI9ZGUscmUucHJlcGVuZE9uY2VMaXN0ZW5lcj1kZSxyZS5saXN0ZW5lcnM9ZnVuY3Rpb24odmUpe3JldHVybltdfSxyZS5iaW5kaW5nPWZ1bmN0aW9uKHZlKXt0aHJvdyBuZXcgRXJyb3IoInByb2Nl''@;'; put 'put ''c3MuYmluZGluZyBpcyBub3Qgc3VwcG9ydGVkIil9LHJlLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0scmUuY2hkaXI9ZnVuY3Rpb24odmUpe3Rocm93IG5ldyBFcnJvcigicHJvY2Vzcy5jaGRpciBpcyBub3Qgc3VwcG9ydGVkIil9LHJlLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSw2''@;'; put 'put ''MjQ0OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooMzY4OSksYWU9e307YWUucnVsZXM9aigzNzA0KS5tYXAoZnVuY3Rpb24oWSl7cmV0dXJue3J1bGU6WSxzdWZmaXg6WS5yZXBsYWNlKC9eKFwqXC58XCEpLywiIikscHVueVN1ZmZpeDotMSx3aWxkY2FyZDoiKiI9PT1ZLmNoYXJB''@;'; put 'put ''dCgwKSxleGNlcHRpb246IiEiPT09WS5jaGFyQXQoMCl9fSksYWUuZW5kc1dpdGg9ZnVuY3Rpb24oWSxXKXtyZXR1cm4tMSE9PVkuaW5kZXhPZihXLFkubGVuZ3RoLVcubGVuZ3RoKX0sYWUuZmluZFJ1bGU9ZnVuY3Rpb24oWSl7dmFyIFc9cmUudG9BU0NJSShZKTtyZXR1cm4gYWUucnVsZXMu''@;'; put 'put ''cmVkdWNlKGZ1bmN0aW9uKE4sdGUpe3JldHVybi0xPT09dGUucHVueVN1ZmZpeCYmKHRlLnB1bnlTdWZmaXg9cmUudG9BU0NJSSh0ZS5zdWZmaXgpKSxhZS5lbmRzV2l0aChXLCIuIit0ZS5wdW55U3VmZml4KXx8Vz09PXRlLnB1bnlTdWZmaXg/dGU6Tn0sbnVsbCl9LFEuZXJyb3JDb2Rlcz17''@;'; put 'put ''RE9NQUlOX1RPT19TSE9SVDoiRG9tYWluIG5hbWUgdG9vIHNob3J0LiIsRE9NQUlOX1RPT19MT05HOiJEb21haW4gbmFtZSB0b28gbG9uZy4gSXQgc2hvdWxkIGJlIG5vIG1vcmUgdGhhbiAyNTUgY2hhcnMuIixMQUJFTF9TVEFSVFNfV0lUSF9EQVNIOiJEb21haW4gbmFtZSBsYWJlbCBjYW4g''@;'; put 'put ''bm90IHN0YXJ0IHdpdGggYSBkYXNoLiIsTEFCRUxfRU5EU19XSVRIX0RBU0g6IkRvbWFpbiBuYW1lIGxhYmVsIGNhbiBub3QgZW5kIHdpdGggYSBkYXNoLiIsTEFCRUxfVE9PX0xPTkc6IkRvbWFpbiBuYW1lIGxhYmVsIHNob3VsZCBiZSBhdCBtb3N0IDYzIGNoYXJzIGxvbmcuIixMQUJFTF9U''@;'; put 'put ''T09fU0hPUlQ6IkRvbWFpbiBuYW1lIGxhYmVsIHNob3VsZCBiZSBhdCBsZWFzdCAxIGNoYXJhY3RlciBsb25nLiIsTEFCRUxfSU5WQUxJRF9DSEFSUzoiRG9tYWluIG5hbWUgbGFiZWwgY2FuIG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciBkYXNoZXMuIn0sYWUudmFs''@;'; put 'put ''aWRhdGU9ZnVuY3Rpb24oWSl7dmFyIFc9cmUudG9BU0NJSShZKTtpZihXLmxlbmd0aDwxKXJldHVybiJET01BSU5fVE9PX1NIT1JUIjtpZihXLmxlbmd0aD4yNTUpcmV0dXJuIkRPTUFJTl9UT09fTE9ORyI7Zm9yKHZhciBOLHRlPVcuc3BsaXQoIi4iKSxLPTA7Szx0ZS5sZW5ndGg7KytLKXtp''@;'; put 'put ''ZighKE49dGVbS10pLmxlbmd0aClyZXR1cm4iTEFCRUxfVE9PX1NIT1JUIjtpZihOLmxlbmd0aD42MylyZXR1cm4iTEFCRUxfVE9PX0xPTkciO2lmKCItIj09PU4uY2hhckF0KDApKXJldHVybiJMQUJFTF9TVEFSVFNfV0lUSF9EQVNIIjtpZigiLSI9PT1OLmNoYXJBdChOLmxlbmd0aC0xKSly''@;'; put 'put ''ZXR1cm4iTEFCRUxfRU5EU19XSVRIX0RBU0giO2lmKCEvXlthLXowLTlcLV0rJC8udGVzdChOKSlyZXR1cm4iTEFCRUxfSU5WQUxJRF9DSEFSUyJ9fSxRLnBhcnNlPWZ1bmN0aW9uKFkpe2lmKCJzdHJpbmciIT10eXBlb2YgWSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEb21haW4gbmFtZSBtdXN0''@;'; put 'put ''IGJlIGEgc3RyaW5nLiIpO3ZhciBXPVkuc2xpY2UoMCkudG9Mb3dlckNhc2UoKTsiLiI9PT1XLmNoYXJBdChXLmxlbmd0aC0xKSYmKFc9Vy5zbGljZSgwLFcubGVuZ3RoLTEpKTt2YXIgTj1hZS52YWxpZGF0ZShXKTtpZihOKXJldHVybntpbnB1dDpZLGVycm9yOnttZXNzYWdlOlEuZXJyb3JD''@;'; put 'put ''b2Rlc1tOXSxjb2RlOk59fTt2YXIgdGU9e2lucHV0OlksdGxkOm51bGwsc2xkOm51bGwsZG9tYWluOm51bGwsc3ViZG9tYWluOm51bGwsbGlzdGVkOiExfSxLPVcuc3BsaXQoIi4iKTtpZigibG9jYWwiPT09S1tLLmxlbmd0aC0xXSlyZXR1cm4gdGU7dmFyIEo9ZnVuY3Rpb24oKXtyZXR1cm4v''@;'; put 'put ''eG4tLS8udGVzdChXKSYmKHRlLmRvbWFpbiYmKHRlLmRvbWFpbj1yZS50b0FTQ0lJKHRlLmRvbWFpbikpLHRlLnN1YmRvbWFpbiYmKHRlLnN1YmRvbWFpbj1yZS50b0FTQ0lJKHRlLnN1YmRvbWFpbikpKSx0ZX0sc2U9YWUuZmluZFJ1bGUoVyk7aWYoIXNlKXJldHVybiBLLmxlbmd0aDwyP3Rl''@;'; put 'put ''Oih0ZS50bGQ9Sy5wb3AoKSx0ZS5zbGQ9Sy5wb3AoKSx0ZS5kb21haW49W3RlLnNsZCx0ZS50bGRdLmpvaW4oIi4iKSxLLmxlbmd0aCYmKHRlLnN1YmRvbWFpbj1LLnBvcCgpKSxKKCkpO3RlLmxpc3RlZD0hMDt2YXIgb2U9c2Uuc3VmZml4LnNwbGl0KCIuIiksY2U9Sy5zbGljZSgwLEsubGVu''@;'; put 'put ''Z3RoLW9lLmxlbmd0aCk7cmV0dXJuIHNlLmV4Y2VwdGlvbiYmY2UucHVzaChvZS5zaGlmdCgpKSx0ZS50bGQ9b2Uuam9pbigiLiIpLGNlLmxlbmd0aD8oc2Uud2lsZGNhcmQmJihvZS51bnNoaWZ0KGNlLnBvcCgpKSx0ZS50bGQ9b2Uuam9pbigiLiIpKSxjZS5sZW5ndGgmJih0ZS5zbGQ9Y2Uu''@;'; put 'put ''cG9wKCksdGUuZG9tYWluPVt0ZS5zbGQsdGUudGxkXS5qb2luKCIuIiksY2UubGVuZ3RoJiYodGUuc3ViZG9tYWluPWNlLmpvaW4oIi4iKSkpLEooKSk6SigpfSxRLmdldD1mdW5jdGlvbihZKXtyZXR1cm4gWSYmUS5wYXJzZShZKS5kb21haW58fG51bGx9LFEuaXNWYWxpZD1mdW5jdGlvbihZ''@;'; put 'put ''KXt2YXIgVz1RLnBhcnNlKFkpO3JldHVybiBCb29sZWFuKFcuZG9tYWluJiZXLmxpc3RlZCl9fSw3OTAwOihVLFEsaik9PntRLnB1YmxpY0VuY3J5cHQ9aig2NTU5KSxRLnByaXZhdGVEZWNyeXB0PWooNjEzOCksUS5wcml2YXRlRW5jcnlwdD1mdW5jdGlvbihyZSxhZSl7cmV0dXJuIFEucHVi''@;'; put 'put ''bGljRW5jcnlwdChyZSxhZSwhMCl9LFEucHVibGljRGVjcnlwdD1mdW5jdGlvbihyZSxhZSl7cmV0dXJuIFEucHJpdmF0ZURlY3J5cHQocmUsYWUsITApfX0sOTE5OTooVSxRLGopPT57dmFyIHJlPWooMzQ4MiksYWU9aig5NTA5KS5CdWZmZXI7ZnVuY3Rpb24gWShXKXt2YXIgTj1hZS5hbGxv''@;'; put 'put ''Y1Vuc2FmZSg0KTtyZXR1cm4gTi53cml0ZVVJbnQzMkJFKFcsMCksTn1VLmV4cG9ydHM9ZnVuY3Rpb24oVyxOKXtmb3IodmFyIHRlLEs9YWUuYWxsb2MoMCksSj0wO0subGVuZ3RoPE47KXRlPVkoSisrKSxLPWFlLmNvbmNhdChbSyxyZSgic2hhMSIpLnVwZGF0ZShXKS51cGRhdGUodGUpLmRp''@;'; put 'put ''Z2VzdCgpXSk7cmV0dXJuIEsuc2xpY2UoMCxOKX19LDIxNDQ6ZnVuY3Rpb24oVSxRLGopeyFmdW5jdGlvbihyZSxhZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFkoeCxQKXtpZigheCl0aHJvdyBuZXcgRXJyb3IoUHx8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBXKHgsUCl7eC5zdXBl''@;'; put 'put ''cl89UDt2YXIgVj1mdW5jdGlvbigpe307Vi5wcm90b3R5cGU9UC5wcm90b3R5cGUseC5wcm90b3R5cGU9bmV3IFYseC5wcm90b3R5cGUuY29uc3RydWN0b3I9eH1mdW5jdGlvbiBOKHgsUCxWKXtpZihOLmlzQk4oeCkpcmV0dXJuIHg7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0''@;'; put 'put ''aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PXgmJigibGUiIT09UCYmImJlIiE9PVB8fChWPVAsUD0xMCksdGhpcy5faW5pdCh4fHwwLFB8fDEwLFZ8fCJiZSIpKX12YXIgdGU7Im9iamVjdCI9PXR5cGVvZiByZT9yZS5leHBvcnRzPU46YWUuQk49TixOLkJOPU4sTi53b3JkU2l6''@;'; put 'put ''ZT0yNjt0cnl7dGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpqKDcxMDgpLkJ1ZmZlcn1jYXRjaCh4KXt9ZnVuY3Rpb24gSyh4LFApe3ZhciBWPXguY2hhckNvZGVBdChQKTtyZXR1cm4gVj49NjUmJlY8PTcwP1YtNTU6''@;'; put 'put ''Vj49OTcmJlY8PTEwMj9WLTg3OlYtNDgmMTV9ZnVuY3Rpb24gSih4LFAsVil7dmFyIFQ9Syh4LFYpO3JldHVybiBWLTE+PVAmJihUfD1LKHgsVi0xKTw8NCksVH1mdW5jdGlvbiBzZSh4LFAsVixUKXtmb3IodmFyIFM9MCxGPU1hdGgubWluKHgubGVuZ3RoLFYpLHllPVA7eWU8Rjt5ZSsrKXt2''@;'; put 'put ''YXIgQ2U9eC5jaGFyQ29kZUF0KHllKS00ODtTKj1ULFMrPUNlPj00OT9DZS00OSsxMDpDZT49MTc/Q2UtMTcrMTA6Q2V9cmV0dXJuIFN9Ti5pc0JOPWZ1bmN0aW9uKHgpe3JldHVybiB4IGluc3RhbmNlb2YgTnx8bnVsbCE9PXgmJiJvYmplY3QiPT10eXBlb2YgeCYmeC5jb25zdHJ1Y3Rvci53''@;'; put 'put ''b3JkU2l6ZT09PU4ud29yZFNpemUmJkFycmF5LmlzQXJyYXkoeC53b3Jkcyl9LE4ubWF4PWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHguY21wKFApPjA/eDpQfSxOLm1pbj1mdW5jdGlvbih4LFApe3JldHVybiB4LmNtcChQKTwwP3g6UH0sTi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oeCxQLFYp''@;'; put 'put ''e2lmKCJudW1iZXIiPT10eXBlb2YgeClyZXR1cm4gdGhpcy5faW5pdE51bWJlcih4LFAsVik7aWYoIm9iamVjdCI9PXR5cGVvZiB4KXJldHVybiB0aGlzLl9pbml0QXJyYXkoeCxQLFYpOyJoZXgiPT09UCYmKFA9MTYpLFkoUD09PSgwfFApJiZQPj0yJiZQPD0zNik7dmFyIFQ9MDsiLSI9PT0o''@;'; put 'put ''eD14LnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFQrKyx0aGlzLm5lZ2F0aXZlPTEpLFQ8eC5sZW5ndGgmJigxNj09PVA/dGhpcy5fcGFyc2VIZXgoeCxULFYpOih0aGlzLl9wYXJzZUJhc2UoeCxQLFQpLCJsZSI9PT1WJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5''@;'; put 'put ''KCksUCxWKSkpfSxOLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbih4LFAsVil7eDwwJiYodGhpcy5uZWdhdGl2ZT0xLHg9LXgpLHg8NjcxMDg4NjQ/KHRoaXMud29yZHM9WzY3MTA4ODYzJnhdLHRoaXMubGVuZ3RoPTEpOng8NDUwMzU5OTYyNzM3MDQ5Nj8odGhpcy53b3Jkcz1bNjcx''@;'; put 'put ''MDg4NjMmeCx4LzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooWSh4PDkwMDcxOTkyNTQ3NDA5OTIpLHRoaXMud29yZHM9WzY3MTA4ODYzJngseC82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09ViYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJh''@;'; put 'put ''eSgpLFAsVil9LE4ucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oeCxQLFYpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4Lmxlbmd0aCkseC5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoeC5sZW5ndGgv''@;'; put 'put ''MyksdGhpcy53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09MDt2YXIgUyxGLHllPTA7aWYoImJlIj09PVYpZm9yKFQ9eC5sZW5ndGgtMSxTPTA7VD49MDtULT0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtU''@;'; put 'put ''LTFdPDw4fHhbVC0yXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO2Vsc2UgaWYoImxlIj09PVYpZm9yKFQ9MCxTPTA7VDx4Lmxlbmd0aDtUKz0zKXRoaXMud29yZHNbU118PShGPXhbVF18eFtU''@;'; put 'put ''KzFdPDw4fHhbVCsyXTw8MTYpPDx5ZSY2NzEwODg2Myx0aGlzLndvcmRzW1MrMV09Rj4+PjI2LXllJjY3MTA4ODYzLCh5ZSs9MjQpPj0yNiYmKHllLT0yNixTKyspO3JldHVybiB0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUhleD1mdW5jdGlvbih4LFAsVil7dGhpcy5sZW5ndGg9''@;'; put 'put ''TWF0aC5jZWlsKCh4Lmxlbmd0aC1QKS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBUPTA7VDx0aGlzLmxlbmd0aDtUKyspdGhpcy53b3Jkc1tUXT0wO3ZhciBTLEY9MCx5ZT0wO2lmKCJiZSI9PT1WKWZvcihUPXgubGVuZ3RoLTE7VD49UDtULT0yKVM9Sih4''@;'; put 'put ''LFAsVCk8PEYsdGhpcy53b3Jkc1t5ZV18PTY3MTA4ODYzJlMsRj49MTg/KEYtPTE4LHRoaXMud29yZHNbeWUrPTFdfD1TPj4+MjYpOkYrPTg7ZWxzZSBmb3IoVD0oeC5sZW5ndGgtUCklMj09MD9QKzE6UDtUPHgubGVuZ3RoO1QrPTIpUz1KKHgsUCxUKTw8Rix0aGlzLndvcmRzW3llXXw9Njcx''@;'; put 'put ''MDg4NjMmUyxGPj0xOD8oRi09MTgsdGhpcy53b3Jkc1t5ZSs9MV18PVM+Pj4yNik6Ris9ODt0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oeCxQLFYpe3RoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTE7Zm9yKHZhciBUPTAsUz0xO1M8PTY3MTA4ODYzO1Mq''@;'; put 'put ''PVApVCsrO1QtLSxTPVMvUHwwO2Zvcih2YXIgRj14Lmxlbmd0aC1WLHllPUYlVCxDZT1NYXRoLm1pbihGLEYteWUpK1YsRGU9MCxQZT1WO1BlPENlO1BlKz1UKURlPXNlKHgsUGUsUGUrVCxQKSx0aGlzLmltdWxuKFMpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9''@;'; put 'put ''RGU6dGhpcy5faWFkZG4oRGUpO2lmKDAhPT15ZSl7dmFyIFFlPTE7Zm9yKERlPXNlKHgsUGUseC5sZW5ndGgsUCksUGU9MDtQZTx5ZTtQZSsrKVFlKj1QO3RoaXMuaW11bG4oUWUpLHRoaXMud29yZHNbMF0rRGU8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9RGU6dGhpcy5faWFkZG4oRGUpfXRo''@;'; put 'put ''aXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuY29weT1mdW5jdGlvbih4KXt4LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBQPTA7UDx0aGlzLmxlbmd0aDtQKyspeC53b3Jkc1tQXT10aGlzLndvcmRzW1BdO3gubGVuZ3RoPXRoaXMubGVuZ3RoLHgubmVnYXRpdmU9dGhpcy5u''@;'; put 'put ''ZWdhdGl2ZSx4LnJlZD10aGlzLnJlZH0sTi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgeD1uZXcgTihudWxsKTtyZXR1cm4gdGhpcy5jb3B5KHgpLHh9LE4ucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24oeCl7Zm9yKDt0aGlzLmxlbmd0aDx4Oyl0aGlzLndvcmRzW3RoaXMubGVu''@;'; put 'put ''Z3RoKytdPTA7cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLnN0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYwPT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sTi5wcm90b3R5cGUuX25vcm1TaWduPWZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRoaXN9LE4ucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In07''@;'; put 'put ''dmFyIG9lPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAw''@;'; put 'put ''MDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIs''@;'; put 'put ''IjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLGNlPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVd''@;'; put 'put ''LGRlPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEsMWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEs''@;'; put 'put ''NjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDksMjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIHZlKHgsUCxWKXtWLm5l''@;'; put 'put ''Z2F0aXZlPVAubmVnYXRpdmVeeC5uZWdhdGl2ZTt2YXIgVD14Lmxlbmd0aCtQLmxlbmd0aHwwO1YubGVuZ3RoPVQsVD1ULTF8MDt2YXIgUz0wfHgud29yZHNbMF0sRj0wfFAud29yZHNbMF0seWU9UypGLERlPXllLzY3MTA4ODY0fDA7Vi53b3Jkc1swXT02NzEwODg2MyZ5ZTtmb3IodmFyIFBl''@;'; put 'put ''PTE7UGU8VDtQZSsrKXtmb3IodmFyIFFlPURlPj4+MjYsJGU9NjcxMDg4NjMmRGUsZ3Q9TWF0aC5taW4oUGUsUC5sZW5ndGgtMSksd3Q9TWF0aC5tYXgoMCxQZS14Lmxlbmd0aCsxKTt3dDw9Z3Q7d3QrKylRZSs9KHllPShTPTB8eC53b3Jkc1tQZS13dHwwXSkqKEY9MHxQLndvcmRzW3d0XSkr''@;'; put 'put ''JGUpLzY3MTA4ODY0fDAsJGU9NjcxMDg4NjMmeWU7Vi53b3Jkc1tQZV09MHwkZSxEZT0wfFFlfXJldHVybiAwIT09RGU/Vi53b3Jkc1tQZV09MHxEZTpWLmxlbmd0aC0tLFYuc3RyaXAoKX1OLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbih4LFApe3ZhciBWO2lmKFA9MHxQfHwxLDE2PT09''@;'; put 'put ''KHg9eHx8MTApfHwiaGV4Ij09PXgpe1Y9IiI7Zm9yKHZhciBUPTAsUz0wLEY9MDtGPHRoaXMubGVuZ3RoO0YrKyl7dmFyIHllPXRoaXMud29yZHNbRl0sQ2U9KDE2Nzc3MjE1Jih5ZTw8VHxTKSkudG9TdHJpbmcoMTYpO1Y9MCE9KFM9eWU+Pj4yNC1UJjE2Nzc3MjE1KXx8RiE9PXRoaXMubGVu''@;'; put 'put ''Z3RoLTE/b2VbNi1DZS5sZW5ndGhdK0NlK1Y6Q2UrViwoVCs9Mik+PTI2JiYoVC09MjYsRi0tKX1mb3IoMCE9PVMmJihWPVMudG9TdHJpbmcoMTYpK1YpO1YubGVuZ3RoJVAhPTA7KVY9IjAiK1Y7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoVj0iLSIrViksVn1pZih4PT09KDB8eCkmJng+''@;'; put 'put ''PTImJng8PTM2KXt2YXIgRGU9Y2VbeF0sUGU9ZGVbeF07Vj0iIjt2YXIgUWU9dGhpcy5jbG9uZSgpO2ZvcihRZS5uZWdhdGl2ZT0wOyFRZS5pc1plcm8oKTspe3ZhciAkZT1RZS5tb2RuKFBlKS50b1N0cmluZyh4KTtWPShRZT1RZS5pZGl2bihQZSkpLmlzWmVybygpPyRlK1Y6b2VbRGUtJGUu''@;'; put 'put ''bGVuZ3RoXSskZStWfWZvcih0aGlzLmlzWmVybygpJiYoVj0iMCIrVik7Vi5sZW5ndGglUCE9MDspVj0iMCIrVjtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihWPSItIitWKSxWfVkoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sTi5wcm90b3R5cGUudG9OdW1iZXI9''@;'; put 'put ''ZnVuY3Rpb24oKXt2YXIgeD10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/eCs9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP3grPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxl''@;'; put 'put ''bmd0aD4yJiZZKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8teDp4fSxOLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LE4ucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0''@;'; put 'put ''aW9uKHgsUCl7cmV0dXJuIFkodm9pZCAwIT09dGUpLHRoaXMudG9BcnJheUxpa2UodGUseCxQKX0sTi5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLnRvQXJyYXlMaWtlKEFycmF5LHgsUCl9LE4ucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKHgsUCxW''@;'; put 'put ''KXt2YXIgVD10aGlzLmJ5dGVMZW5ndGgoKSxTPVZ8fE1hdGgubWF4KDEsVCk7WShUPD1TLCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksWShTPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgRix5ZSxDZT0ibGUiPT09UCxE''@;'; put 'put ''ZT1uZXcgeChTKSxQZT10aGlzLmNsb25lKCk7aWYoQ2Upe2Zvcih5ZT0wOyFQZS5pc1plcm8oKTt5ZSsrKUY9UGUuYW5kbG4oMjU1KSxQZS5pdXNocm4oOCksRGVbeWVdPUY7Zm9yKDt5ZTxTO3llKyspRGVbeWVdPTB9ZWxzZXtmb3IoeWU9MDt5ZTxTLVQ7eWUrKylEZVt5ZV09MDtmb3IoeWU9''@;'; put 'put ''MDshUGUuaXNaZXJvKCk7eWUrKylGPVBlLmFuZGxuKDI1NSksUGUuaXVzaHJuKDgpLERlW1MteWUtMV09Rn1yZXR1cm4gRGV9LE4ucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbih4KXtyZXR1cm4gMzItTWF0aC5jbHozMih4KX06ZnVuY3Rpb24oeCl7dmFyIFA9eCxW''@;'; put 'put ''PTA7cmV0dXJuIFA+PTQwOTYmJihWKz0xMyxQPj4+PTEzKSxQPj02NCYmKFYrPTcsUD4+Pj03KSxQPj04JiYoVis9NCxQPj4+PTQpLFA+PTImJihWKz0yLFA+Pj49MiksVitQfSxOLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oeCl7aWYoMD09PXgpcmV0dXJuIDI2O3ZhciBQPXgsVj0w''@;'; put 'put ''O3JldHVybiAwPT0oODE5MSZQKSYmKFYrPTEzLFA+Pj49MTMpLDA9PSgxMjcmUCkmJihWKz03LFA+Pj49NyksMD09KDE1JlApJiYoVis9NCxQPj4+PTQpLDA9PSgzJlApJiYoVis9MixQPj4+PTIpLDA9PSgxJlApJiZWKyssVn0sTi5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFy''@;'; put 'put ''IFA9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrUH0sTi5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgeD0wLFA9MDtQPHRoaXMubGVuZ3RoO1Ar''@;'; put 'put ''Kyl7dmFyIFY9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tQXSk7aWYoeCs9ViwyNiE9PVYpYnJlYWt9cmV0dXJuIHh9LE4ucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LE4ucHJvdG90eXBlLnRvVHdvcz1mdW5j''@;'; put 'put ''dGlvbih4KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih4KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LE4ucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnRlc3RuKHgtMSk/dGhpcy5ub3RuKHgpLmlhZGRuKDEpLmluZWcoKTp0aGlz''@;'; put 'put ''LmNsb25lKCl9LE4ucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxOLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sTi5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVy''@;'; put 'put ''bygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sTi5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbih4KXtmb3IoO3RoaXMubGVuZ3RoPHgubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBQPTA7UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT10aGlzLndvcmRz''@;'; put 'put ''W1BdfHgud29yZHNbUF07cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1b3IoeCl9LE4ucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54''@;'; put 'put ''Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHgpOnguY2xvbmUoKS5pb3IodGhpcyl9LE4ucHJvdG90eXBlLnVvcj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoeCk6eC5jbG9uZSgpLml1b3IodGhpcyl9LE4ucHJvdG90eXBlLml1YW5k''@;'; put 'put ''PWZ1bmN0aW9uKHgpe3ZhciBQO1A9dGhpcy5sZW5ndGg+eC5sZW5ndGg/eDp0aGlzO2Zvcih2YXIgVj0wO1Y8UC5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09dGhpcy53b3Jkc1tWXSZ4LndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1QLmxlbmd0aCx0aGlzLnN0cmlwKCl9LE4ucHJvdG90''@;'; put 'put ''eXBlLmlhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkoMD09KHRoaXMubmVnYXRpdmV8eC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoeCl9LE4ucHJvdG90eXBlLmFuZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoeCk6eC5jbG9uZSgpLmlh''@;'; put 'put ''bmQodGhpcyl9LE4ucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh4KTp4LmNsb25lKCkuaXVhbmQodGhpcyl9LE4ucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHgpe3ZhciBQLFY7dGhpcy5sZW5ndGg+eC5s''@;'; put 'put ''ZW5ndGg/KFA9dGhpcyxWPXgpOihQPXgsVj10aGlzKTtmb3IodmFyIFQ9MDtUPFYubGVuZ3RoO1QrKyl0aGlzLndvcmRzW1RdPVAud29yZHNbVF1eVi53b3Jkc1tUXTtpZih0aGlzIT09UClmb3IoO1Q8UC5sZW5ndGg7VCsrKXRoaXMud29yZHNbVF09UC53b3Jkc1tUXTtyZXR1cm4gdGhpcy5s''@;'; put 'put ''ZW5ndGg9UC5sZW5ndGgsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHgpe3JldHVybiBZKDA9PSh0aGlzLm5lZ2F0aXZlfHgubmVnYXRpdmUpKSx0aGlzLml1eG9yKHgpfSxOLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMubGVuZ3RoPngubGVu''@;'; put 'put ''Z3RoP3RoaXMuY2xvbmUoKS5peG9yKHgpOnguY2xvbmUoKS5peG9yKHRoaXMpfSxOLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmxlbmd0aD54Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoeCk6eC5jbG9uZSgpLml1eG9yKHRoaXMpfSxOLnByb3RvdHlwZS5pbm90''@;'; put 'put ''bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9MHxNYXRoLmNlaWwoeC8yNiksVj14JTI2O3RoaXMuX2V4cGFuZChQKSxWPjAmJlAtLTtmb3IodmFyIFQ9MDtUPFA7VCsrKXRoaXMud29yZHNbVF09NjcxMDg4NjMmfnRoaXMud29yZHNbVF07cmV0dXJuIFY+''@;'; put 'put ''MCYmKHRoaXMud29yZHNbVF09fnRoaXMud29yZHNbVF0mNjcxMDg4NjM+PjI2LVYpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUubm90bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHgpfSxOLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHgsUCl7WSgibnVtYmVyIj09''@;'; put 'put ''dHlwZW9mIHgmJng+PTApO3ZhciBWPXgvMjZ8MCxUPXglMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChWKzEpLHRoaXMud29yZHNbVl09UD90aGlzLndvcmRzW1ZdfDE8PFQ6dGhpcy53b3Jkc1tWXSZ+KDE8PFQpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih4KXt2YXIg''@;'; put 'put ''UCxWLFQ7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsUD10aGlzLmlzdWIoeCksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09eC5uZWdhdGl2ZSlyZXR1cm4geC5uZWdh''@;'; put 'put ''dGl2ZT0wLFA9dGhpcy5pc3ViKHgpLHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPngubGVuZ3RoPyhWPXRoaXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBTPTAsRj0wO0Y8VC5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09NjcxMDg4NjMmKFA9KDB8Vi53b3Jkc1tG''@;'; put 'put ''XSkrKDB8VC53b3Jkc1tGXSkrUyksUz1QPj4+MjY7Zm9yKDswIT09UyYmRjxWLmxlbmd0aDtGKyspdGhpcy53b3Jkc1tGXT02NzEwODg2MyYoUD0oMHxWLndvcmRzW0ZdKStTKSxTPVA+Pj4yNjtpZih0aGlzLmxlbmd0aD1WLmxlbmd0aCwwIT09Uyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1T''@;'; put 'put ''LHRoaXMubGVuZ3RoKys7ZWxzZSBpZihWIT09dGhpcylmb3IoO0Y8Vi5sZW5ndGg7RisrKXRoaXMud29yZHNbRl09Vi53b3Jkc1tGXTtyZXR1cm4gdGhpc30sTi5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHgpe3ZhciBQO3JldHVybiAwIT09eC5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/''@;'; put 'put ''KHgubmVnYXRpdmU9MCxQPXRoaXMuc3ViKHgpLHgubmVnYXRpdmVePTEsUCk6MD09PXgubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsUD14LnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsUCk6dGhpcy5sZW5ndGg+eC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlh''@;'; put 'put ''ZGQoeCk6eC5jbG9uZSgpLmlhZGQodGhpcyl9LE4ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24oeCl7aWYoMCE9PXgubmVnYXRpdmUpe3gubmVnYXRpdmU9MDt2YXIgUD10aGlzLmlhZGQoeCk7cmV0dXJuIHgubmVnYXRpdmU9MSxQLl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJl''@;'; put 'put ''dHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciBWLFQsUz10aGlzLmNtcCh4KTtpZigwPT09UylyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7Uz4wPyhWPXRo''@;'; put 'put ''aXMsVD14KTooVj14LFQ9dGhpcyk7Zm9yKHZhciBGPTAseWU9MDt5ZTxULmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53b3Jkc1t5ZV0pLSgwfFQud29yZHNbeWVdKStGKT4+MjYsdGhpcy53b3Jkc1t5ZV09NjcxMDg4NjMmUDtmb3IoOzAhPT1GJiZ5ZTxWLmxlbmd0aDt5ZSsrKUY9KFA9KDB8Vi53''@;'; put 'put ''b3Jkc1t5ZV0pK0YpPj4yNix0aGlzLndvcmRzW3llXT02NzEwODg2MyZQO2lmKDA9PT1GJiZ5ZTxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDt5ZTxWLmxlbmd0aDt5ZSsrKXRoaXMud29yZHNbeWVdPVYud29yZHNbeWVdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx5''@;'; put 'put ''ZSksViE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Yih4KX07dmFyIEFlPWZ1bmN0aW9uKHgsUCxWKXt2YXIgVCxTLEYseWU9eC53b3JkcyxDZT1QLndvcmRzLERlPVYud29y''@;'; put 'put ''ZHMsUGU9MCxRZT0wfHllWzBdLCRlPTgxOTEmUWUsZ3Q9UWU+Pj4xMyx3dD0wfHllWzFdLG10PTgxOTEmd3QsdnQ9d3Q+Pj4xMyxBdD0wfHllWzJdLGh0PTgxOTEmQXQsQnQ9QXQ+Pj4xMyxvbj0wfHllWzNdLF90PTgxOTEmb24sdHQ9b24+Pj4xMyxldD0wfHllWzRdLGx0PTgxOTEmZXQsTHQ9''@;'; put 'put ''ZXQ+Pj4xMyxDdD0wfHllWzVdLGZ0PTgxOTEmQ3QsSHQ9Q3Q+Pj4xMyxHZT0wfHllWzZdLFVlPTgxOTEmR2UseXQ9R2U+Pj4xMyxqdD0wfHllWzddLEp0PTgxOTEmanQsZ249anQ+Pj4xMyxkbj0wfHllWzhdLHluPTgxOTEmZG4sbG49ZG4+Pj4xMyxObj0wfHllWzldLGJuPTgxOTEmTm4sZXI9''@;'; put 'put ''Tm4+Pj4xMyxzcj0wfENlWzBdLFhuPTgxOTEmc3IsRnI9c3I+Pj4xMyx4cj0wfENlWzFdLHF0PTgxOTEmeHIscHI9eHI+Pj4xMyxucj0wfENlWzJdLEFuPTgxOTEmbnIscW49bnI+Pj4xMyxXdD0wfENlWzNdLHBuPTgxOTEmV3QsS249V3Q+Pj4xMyxOdD0wfENlWzRdLHNuPTgxOTEmTnQsVW49''@;'; put 'put ''TnQ+Pj4xMyx3bj0wfENlWzVdLHRuPTgxOTEmd24sem49d24+Pj4xMyxUcj0wfENlWzZdLEJuPTgxOTEmVHIsa3I9VHI+Pj4xMyxtbj0wfENlWzddLHVuPTgxOTEmbW4sY249bW4+Pj4xMyxfbj0wfENlWzhdLEd0PTgxOTEmX24sa249X24+Pj4xMyxWbj0wfENlWzldLGVuPTgxOTEmVm4sSW49''@;'; put 'put ''Vm4+Pj4xMztWLm5lZ2F0aXZlPXgubmVnYXRpdmVeUC5uZWdhdGl2ZSxWLmxlbmd0aD0xOTt2YXIgSm49KFBlKyhUPU1hdGguaW11bCgkZSxYbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoJGUsRnIpKStNYXRoLmltdWwoZ3QsWG4pfDApKTw8MTMpfDA7UGU9KChGPU1hdGguaW11bChn''@;'; put 'put ''dCxGcikpKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChtdCxYbiksUz0oUz1NYXRoLmltdWwobXQsRnIpKStNYXRoLmltdWwodnQsWG4pfDAsRj1NYXRoLmltdWwodnQsRnIpO3ZhciBvcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUscXQpfDApfDApKygo''@;'; put 'put ''ODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxwcil8MCkrTWF0aC5pbXVsKGd0LHF0KXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxwcil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGh0LFhuKSxTPShTPU1hdGguaW11bChodCxG''@;'; put 'put ''cikpK01hdGguaW11bChCdCxYbil8MCxGPU1hdGguaW11bChCdCxGciksVD1UK01hdGguaW11bChtdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LHByKXwwKStNYXRoLmltdWwodnQscXQpfDAsRj1GK01hdGguaW11bCh2dCxwcil8MDt2YXIgZ3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEFu''@;'; put 'put ''KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUscW4pfDApK01hdGguaW11bChndCxBbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QscW4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChfdCxYbiksUz0oUz1NYXRo''@;'; put 'put ''LmltdWwoX3QsRnIpKStNYXRoLmltdWwodHQsWG4pfDAsRj1NYXRoLmltdWwodHQsRnIpLFQ9VCtNYXRoLmltdWwoaHQscXQpfDAsUz0oUz1TK01hdGguaW11bChodCxwcil8MCkrTWF0aC5pbXVsKEJ0LHF0KXwwLEY9RitNYXRoLmltdWwoQnQscHIpfDAsVD1UK01hdGguaW11bChtdCxBbil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKG10LHFuKXwwKStNYXRoLmltdWwodnQsQW4pfDAsRj1GK01hdGguaW11bCh2dCxxbil8MDt2YXIgS3I9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHBuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsS24pfDApK01hdGguaW11bChndCxwbil8MCkp''@;'; put 'put ''PDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsS24pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChsdCxYbiksUz0oUz1NYXRoLmltdWwobHQsRnIpKStNYXRoLmltdWwoTHQsWG4pfDAsRj1NYXRoLmltdWwoTHQsRnIpLFQ9VCtNYXRoLmlt''@;'; put 'put ''dWwoX3QscXQpfDAsUz0oUz1TK01hdGguaW11bChfdCxwcil8MCkrTWF0aC5pbXVsKHR0LHF0KXwwLEY9RitNYXRoLmltdWwodHQscHIpfDAsVD1UK01hdGguaW11bChodCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHFuKXwwKStNYXRoLmltdWwoQnQsQW4pfDAsRj1GK01hdGguaW11bChC''@;'; put 'put ''dCxxbil8MCxUPVQrTWF0aC5pbXVsKG10LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsS24pfDApK01hdGguaW11bCh2dCxwbil8MCxGPUYrTWF0aC5pbXVsKHZ0LEtuKXwwO3ZhciBWcj0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsc24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgk''@;'; put 'put ''ZSxVbil8MCkrTWF0aC5pbXVsKGd0LHNuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxVbil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGZ0LFhuKSxTPShTPU1hdGguaW11bChmdCxGcikpK01hdGguaW11bChIdCxYbil8MCxG''@;'; put 'put ''PU1hdGguaW11bChIdCxGciksVD1UK01hdGguaW11bChsdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHByKXwwKStNYXRoLmltdWwoTHQscXQpfDAsRj1GK01hdGguaW11bChMdCxwcil8MCxUPVQrTWF0aC5pbXVsKF90LEFuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QscW4pfDApK01hdGgu''@;'; put 'put ''aW11bCh0dCxBbil8MCxGPUYrTWF0aC5pbXVsKHR0LHFuKXwwLFQ9VCtNYXRoLmltdWwoaHQscG4pfDAsUz0oUz1TK01hdGguaW11bChodCxLbil8MCkrTWF0aC5pbXVsKEJ0LHBuKXwwLEY9RitNYXRoLmltdWwoQnQsS24pfDAsVD1UK01hdGguaW11bChtdCxzbil8MCxTPShTPVMrTWF0aC5p''@;'; put 'put ''bXVsKG10LFVuKXwwKStNYXRoLmltdWwodnQsc24pfDAsRj1GK01hdGguaW11bCh2dCxVbil8MDt2YXIgaWk9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLHRuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsem4pfDApK01hdGguaW11bChndCx0bil8MCkpPDwxMyl8MDtQZT0oKEY9''@;'; put 'put ''RitNYXRoLmltdWwoZ3Qsem4pfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChVZSxYbiksUz0oUz1NYXRoLmltdWwoVWUsRnIpKStNYXRoLmltdWwoeXQsWG4pfDAsRj1NYXRoLmltdWwoeXQsRnIpLFQ9VCtNYXRoLmltdWwoZnQscXQpfDAsUz0o''@;'; put 'put ''Uz1TK01hdGguaW11bChmdCxwcil8MCkrTWF0aC5pbXVsKEh0LHF0KXwwLEY9RitNYXRoLmltdWwoSHQscHIpfDAsVD1UK01hdGguaW11bChsdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHFuKXwwKStNYXRoLmltdWwoTHQsQW4pfDAsRj1GK01hdGguaW11bChMdCxxbil8MCxUPVQrTWF0''@;'; put 'put ''aC5pbXVsKF90LHBuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsS24pfDApK01hdGguaW11bCh0dCxwbil8MCxGPUYrTWF0aC5pbXVsKHR0LEtuKXwwLFQ9VCtNYXRoLmltdWwoaHQsc24pfDAsUz0oUz1TK01hdGguaW11bChodCxVbil8MCkrTWF0aC5pbXVsKEJ0LHNuKXwwLEY9RitNYXRoLmlt''@;'; put 'put ''dWwoQnQsVW4pfDAsVD1UK01hdGguaW11bChtdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKG10LHpuKXwwKStNYXRoLmltdWwodnQsdG4pfDAsRj1GK01hdGguaW11bCh2dCx6bil8MDt2YXIgUnI9KFBlKyhUPVQrTWF0aC5pbXVsKCRlLEJuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwoJGUsa3IpfDApK01hdGguaW11bChndCxCbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa3IpfDApKyhTPj4+MTMpfDApKyhScj4+PjI2KXwwLFJyJj02NzEwODg2MyxUPU1hdGguaW11bChKdCxYbiksUz0oUz1NYXRoLmltdWwoSnQsRnIpKStNYXRoLmltdWwoZ24sWG4p''@;'; put 'put ''fDAsRj1NYXRoLmltdWwoZ24sRnIpLFQ9VCtNYXRoLmltdWwoVWUscXQpfDAsUz0oUz1TK01hdGguaW11bChVZSxwcil8MCkrTWF0aC5pbXVsKHl0LHF0KXwwLEY9RitNYXRoLmltdWwoeXQscHIpfDAsVD1UK01hdGguaW11bChmdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKGZ0LHFuKXwwKStN''@;'; put 'put ''YXRoLmltdWwoSHQsQW4pfDAsRj1GK01hdGguaW11bChIdCxxbil8MCxUPVQrTWF0aC5pbXVsKGx0LHBuKXwwLFM9KFM9UytNYXRoLmltdWwobHQsS24pfDApK01hdGguaW11bChMdCxwbil8MCxGPUYrTWF0aC5pbXVsKEx0LEtuKXwwLFQ9VCtNYXRoLmltdWwoX3Qsc24pfDAsUz0oUz1TK01h''@;'; put 'put ''dGguaW11bChfdCxVbil8MCkrTWF0aC5pbXVsKHR0LHNuKXwwLEY9RitNYXRoLmltdWwodHQsVW4pfDAsVD1UK01hdGguaW11bChodCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGh0LHpuKXwwKStNYXRoLmltdWwoQnQsdG4pfDAsRj1GK01hdGguaW11bChCdCx6bil8MCxUPVQrTWF0aC5pbXVs''@;'; put 'put ''KG10LEJuKXwwLFM9KFM9UytNYXRoLmltdWwobXQsa3IpfDApK01hdGguaW11bCh2dCxCbil8MCxGPUYrTWF0aC5pbXVsKHZ0LGtyKXwwO3ZhciBsaT0oUGUrKFQ9VCtNYXRoLmltdWwoJGUsdW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCgkZSxjbil8MCkrTWF0aC5pbXVsKGd0''@;'; put 'put ''LHVuKXwwKSk8PDEzKXwwO1BlPSgoRj1GK01hdGguaW11bChndCxjbil8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHluLFhuKSxTPShTPU1hdGguaW11bCh5bixGcikpK01hdGguaW11bChsbixYbil8MCxGPU1hdGguaW11bChsbixGciksVD1U''@;'; put 'put ''K01hdGguaW11bChKdCxxdCl8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHByKXwwKStNYXRoLmltdWwoZ24scXQpfDAsRj1GK01hdGguaW11bChnbixwcil8MCxUPVQrTWF0aC5pbXVsKFVlLEFuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUscW4pfDApK01hdGguaW11bCh5dCxBbil8MCxGPUYrTWF0''@;'; put 'put ''aC5pbXVsKHl0LHFuKXwwLFQ9VCtNYXRoLmltdWwoZnQscG4pfDAsUz0oUz1TK01hdGguaW11bChmdCxLbil8MCkrTWF0aC5pbXVsKEh0LHBuKXwwLEY9RitNYXRoLmltdWwoSHQsS24pfDAsVD1UK01hdGguaW11bChsdCxzbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LFVuKXwwKStNYXRoLmlt''@;'; put 'put ''dWwoTHQsc24pfDAsRj1GK01hdGguaW11bChMdCxVbil8MCxUPVQrTWF0aC5pbXVsKF90LHRuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsem4pfDApK01hdGguaW11bCh0dCx0bil8MCxGPUYrTWF0aC5pbXVsKHR0LHpuKXwwLFQ9VCtNYXRoLmltdWwoaHQsQm4pfDAsUz0oUz1TK01hdGguaW11''@;'; put 'put ''bChodCxrcil8MCkrTWF0aC5pbXVsKEJ0LEJuKXwwLEY9RitNYXRoLmltdWwoQnQsa3IpfDAsVD1UK01hdGguaW11bChtdCx1bil8MCxTPShTPVMrTWF0aC5pbXVsKG10LGNuKXwwKStNYXRoLmltdWwodnQsdW4pfDAsRj1GK01hdGguaW11bCh2dCxjbil8MDt2YXIgTWk9KFBlKyhUPVQrTWF0''@;'; put 'put ''aC5pbXVsKCRlLEd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsa24pfDApK01hdGguaW11bChndCxHdCl8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3Qsa24pfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChibixY''@;'; put 'put ''biksUz0oUz1NYXRoLmltdWwoYm4sRnIpKStNYXRoLmltdWwoZXIsWG4pfDAsRj1NYXRoLmltdWwoZXIsRnIpLFQ9VCtNYXRoLmltdWwoeW4scXQpfDAsUz0oUz1TK01hdGguaW11bCh5bixwcil8MCkrTWF0aC5pbXVsKGxuLHF0KXwwLEY9RitNYXRoLmltdWwobG4scHIpfDAsVD1UK01hdGgu''@;'; put 'put ''aW11bChKdCxBbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHFuKXwwKStNYXRoLmltdWwoZ24sQW4pfDAsRj1GK01hdGguaW11bChnbixxbil8MCxUPVQrTWF0aC5pbXVsKFVlLHBuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsS24pfDApK01hdGguaW11bCh5dCxwbil8MCxGPUYrTWF0aC5pbXVs''@;'; put 'put ''KHl0LEtuKXwwLFQ9VCtNYXRoLmltdWwoZnQsc24pfDAsUz0oUz1TK01hdGguaW11bChmdCxVbil8MCkrTWF0aC5pbXVsKEh0LHNuKXwwLEY9RitNYXRoLmltdWwoSHQsVW4pfDAsVD1UK01hdGguaW11bChsdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LHpuKXwwKStNYXRoLmltdWwoTHQs''@;'; put 'put ''dG4pfDAsRj1GK01hdGguaW11bChMdCx6bil8MCxUPVQrTWF0aC5pbXVsKF90LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoX3Qsa3IpfDApK01hdGguaW11bCh0dCxCbil8MCxGPUYrTWF0aC5pbXVsKHR0LGtyKXwwLFQ9VCtNYXRoLmltdWwoaHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChodCxj''@;'; put 'put ''bil8MCkrTWF0aC5pbXVsKEJ0LHVuKXwwLEY9RitNYXRoLmltdWwoQnQsY24pfDAsVD1UK01hdGguaW11bChtdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKG10LGtuKXwwKStNYXRoLmltdWwodnQsR3QpfDAsRj1GK01hdGguaW11bCh2dCxrbil8MDt2YXIgbzA9KFBlKyhUPVQrTWF0aC5pbXVs''@;'; put 'put ''KCRlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoJGUsSW4pfDApK01hdGguaW11bChndCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoZ3QsSW4pfDApKyhTPj4+MTMpfDApKyhvMD4+PjI2KXwwLG8wJj02NzEwODg2MyxUPU1hdGguaW11bChibixxdCksUz0o''@;'; put 'put ''Uz1NYXRoLmltdWwoYm4scHIpKStNYXRoLmltdWwoZXIscXQpfDAsRj1NYXRoLmltdWwoZXIscHIpLFQ9VCtNYXRoLmltdWwoeW4sQW4pfDAsUz0oUz1TK01hdGguaW11bCh5bixxbil8MCkrTWF0aC5pbXVsKGxuLEFuKXwwLEY9RitNYXRoLmltdWwobG4scW4pfDAsVD1UK01hdGguaW11bChK''@;'; put 'put ''dCxwbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LEtuKXwwKStNYXRoLmltdWwoZ24scG4pfDAsRj1GK01hdGguaW11bChnbixLbil8MCxUPVQrTWF0aC5pbXVsKFVlLHNuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsVW4pfDApK01hdGguaW11bCh5dCxzbil8MCxGPUYrTWF0aC5pbXVsKHl0LFVu''@;'; put 'put ''KXwwLFQ9VCtNYXRoLmltdWwoZnQsdG4pfDAsUz0oUz1TK01hdGguaW11bChmdCx6bil8MCkrTWF0aC5pbXVsKEh0LHRuKXwwLEY9RitNYXRoLmltdWwoSHQsem4pfDAsVD1UK01hdGguaW11bChsdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKGx0LGtyKXwwKStNYXRoLmltdWwoTHQsQm4pfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bChMdCxrcil8MCxUPVQrTWF0aC5pbXVsKF90LHVuKXwwLFM9KFM9UytNYXRoLmltdWwoX3QsY24pfDApK01hdGguaW11bCh0dCx1bil8MCxGPUYrTWF0aC5pbXVsKHR0LGNuKXwwLFQ9VCtNYXRoLmltdWwoaHQsR3QpfDAsUz0oUz1TK01hdGguaW11bChodCxrbil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKEJ0LEd0KXwwLEY9RitNYXRoLmltdWwoQnQsa24pfDA7dmFyIG4wPShQZSsoVD1UK01hdGguaW11bChtdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKG10LEluKXwwKStNYXRoLmltdWwodnQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKHZ0''@;'; put 'put ''LEluKXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sQW4pLFM9KFM9TWF0aC5pbXVsKGJuLHFuKSkrTWF0aC5pbXVsKGVyLEFuKXwwLEY9TWF0aC5pbXVsKGVyLHFuKSxUPVQrTWF0aC5pbXVsKHluLHBuKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; put 'put ''eW4sS24pfDApK01hdGguaW11bChsbixwbil8MCxGPUYrTWF0aC5pbXVsKGxuLEtuKXwwLFQ9VCtNYXRoLmltdWwoSnQsc24pfDAsUz0oUz1TK01hdGguaW11bChKdCxVbil8MCkrTWF0aC5pbXVsKGduLHNuKXwwLEY9RitNYXRoLmltdWwoZ24sVW4pfDAsVD1UK01hdGguaW11bChVZSx0bil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKFVlLHpuKXwwKStNYXRoLmltdWwoeXQsdG4pfDAsRj1GK01hdGguaW11bCh5dCx6bil8MCxUPVQrTWF0aC5pbXVsKGZ0LEJuKXwwLFM9KFM9UytNYXRoLmltdWwoZnQsa3IpfDApK01hdGguaW11bChIdCxCbil8MCxGPUYrTWF0aC5pbXVsKEh0LGtyKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwobHQsdW4pfDAsUz0oUz1TK01hdGguaW11bChsdCxjbil8MCkrTWF0aC5pbXVsKEx0LHVuKXwwLEY9RitNYXRoLmltdWwoTHQsY24pfDAsVD1UK01hdGguaW11bChfdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKF90LGtuKXwwKStNYXRoLmltdWwodHQsR3QpfDAsRj1GK01h''@;'; put 'put ''dGguaW11bCh0dCxrbil8MDt2YXIgZDA9KFBlKyhUPVQrTWF0aC5pbXVsKGh0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoaHQsSW4pfDApK01hdGguaW11bChCdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoQnQsSW4pfDApKyhTPj4+MTMpfDApKyhkMD4+''@;'; put 'put ''PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChibixwbiksUz0oUz1NYXRoLmltdWwoYm4sS24pKStNYXRoLmltdWwoZXIscG4pfDAsRj1NYXRoLmltdWwoZXIsS24pLFQ9VCtNYXRoLmltdWwoeW4sc24pfDAsUz0oUz1TK01hdGguaW11bCh5bixVbil8MCkrTWF0aC5pbXVsKGxuLHNu''@;'; put 'put ''KXwwLEY9RitNYXRoLmltdWwobG4sVW4pfDAsVD1UK01hdGguaW11bChKdCx0bil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LHpuKXwwKStNYXRoLmltdWwoZ24sdG4pfDAsRj1GK01hdGguaW11bChnbix6bil8MCxUPVQrTWF0aC5pbXVsKFVlLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsa3Ip''@;'; put 'put ''fDApK01hdGguaW11bCh5dCxCbil8MCxGPUYrTWF0aC5pbXVsKHl0LGtyKXwwLFQ9VCtNYXRoLmltdWwoZnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChmdCxjbil8MCkrTWF0aC5pbXVsKEh0LHVuKXwwLEY9RitNYXRoLmltdWwoSHQsY24pfDAsVD1UK01hdGguaW11bChsdCxHdCl8MCxTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKGx0LGtuKXwwKStNYXRoLmltdWwoTHQsR3QpfDAsRj1GK01hdGguaW11bChMdCxrbil8MDt2YXIgbTA9KFBlKyhUPVQrTWF0aC5pbXVsKF90LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoX3QsSW4pfDApK01hdGguaW11bCh0dCxlbil8MCkpPDwxMyl8''@;'; put 'put ''MDtQZT0oKEY9RitNYXRoLmltdWwodHQsSW4pfDApKyhTPj4+MTMpfDApKyhtMD4+PjI2KXwwLG0wJj02NzEwODg2MyxUPU1hdGguaW11bChibixzbiksUz0oUz1NYXRoLmltdWwoYm4sVW4pKStNYXRoLmltdWwoZXIsc24pfDAsRj1NYXRoLmltdWwoZXIsVW4pLFQ9VCtNYXRoLmltdWwoeW4s''@;'; put 'put ''dG4pfDAsUz0oUz1TK01hdGguaW11bCh5bix6bil8MCkrTWF0aC5pbXVsKGxuLHRuKXwwLEY9RitNYXRoLmltdWwobG4sem4pfDAsVD1UK01hdGguaW11bChKdCxCbil8MCxTPShTPVMrTWF0aC5pbXVsKEp0LGtyKXwwKStNYXRoLmltdWwoZ24sQm4pfDAsRj1GK01hdGguaW11bChnbixrcil8''@;'; put 'put ''MCxUPVQrTWF0aC5pbXVsKFVlLHVuKXwwLFM9KFM9UytNYXRoLmltdWwoVWUsY24pfDApK01hdGguaW11bCh5dCx1bil8MCxGPUYrTWF0aC5pbXVsKHl0LGNuKXwwLFQ9VCtNYXRoLmltdWwoZnQsR3QpfDAsUz0oUz1TK01hdGguaW11bChmdCxrbil8MCkrTWF0aC5pbXVsKEh0LEd0KXwwLEY9''@;'; put 'put ''RitNYXRoLmltdWwoSHQsa24pfDA7dmFyIEcwPShQZSsoVD1UK01hdGguaW11bChsdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKGx0LEluKXwwKStNYXRoLmltdWwoTHQsZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKEx0LEluKXwwKSsoUz4+PjEzKXwwKSso''@;'; put 'put ''RzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoYm4sdG4pLFM9KFM9TWF0aC5pbXVsKGJuLHpuKSkrTWF0aC5pbXVsKGVyLHRuKXwwLEY9TWF0aC5pbXVsKGVyLHpuKSxUPVQrTWF0aC5pbXVsKHluLEJuKXwwLFM9KFM9UytNYXRoLmltdWwoeW4sa3IpfDApK01hdGguaW11bChs''@;'; put 'put ''bixCbil8MCxGPUYrTWF0aC5pbXVsKGxuLGtyKXwwLFQ9VCtNYXRoLmltdWwoSnQsdW4pfDAsUz0oUz1TK01hdGguaW11bChKdCxjbil8MCkrTWF0aC5pbXVsKGduLHVuKXwwLEY9RitNYXRoLmltdWwoZ24sY24pfDAsVD1UK01hdGguaW11bChVZSxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKFVl''@;'; put 'put ''LGtuKXwwKStNYXRoLmltdWwoeXQsR3QpfDAsRj1GK01hdGguaW11bCh5dCxrbil8MDt2YXIgRGk9KFBlKyhUPVQrTWF0aC5pbXVsKGZ0LGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZnQsSW4pfDApK01hdGguaW11bChIdCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRo''@;'; put 'put ''LmltdWwoSHQsSW4pfDApKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxUPU1hdGguaW11bChibixCbiksUz0oUz1NYXRoLmltdWwoYm4sa3IpKStNYXRoLmltdWwoZXIsQm4pfDAsRj1NYXRoLmltdWwoZXIsa3IpLFQ9VCtNYXRoLmltdWwoeW4sdW4pfDAsUz0oUz1TK01h''@;'; put 'put ''dGguaW11bCh5bixjbil8MCkrTWF0aC5pbXVsKGxuLHVuKXwwLEY9RitNYXRoLmltdWwobG4sY24pfDAsVD1UK01hdGguaW11bChKdCxHdCl8MCxTPShTPVMrTWF0aC5pbXVsKEp0LGtuKXwwKStNYXRoLmltdWwoZ24sR3QpfDAsRj1GK01hdGguaW11bChnbixrbil8MDt2YXIgVzA9KFBlKyhU''@;'; put 'put ''PVQrTWF0aC5pbXVsKFVlLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoVWUsSW4pfDApK01hdGguaW11bCh5dCxlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwoeXQsSW4pfDApKyhTPj4+MTMpfDApKyhXMD4+PjI2KXwwLFcwJj02NzEwODg2MyxUPU1hdGguaW11''@;'; put 'put ''bChibix1biksUz0oUz1NYXRoLmltdWwoYm4sY24pKStNYXRoLmltdWwoZXIsdW4pfDAsRj1NYXRoLmltdWwoZXIsY24pLFQ9VCtNYXRoLmltdWwoeW4sR3QpfDAsUz0oUz1TK01hdGguaW11bCh5bixrbil8MCkrTWF0aC5pbXVsKGxuLEd0KXwwLEY9RitNYXRoLmltdWwobG4sa24pfDA7dmFy''@;'; put 'put ''IEVvPShQZSsoVD1UK01hdGguaW11bChKdCxlbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEp0LEluKXwwKStNYXRoLmltdWwoZ24sZW4pfDApKTw8MTMpfDA7UGU9KChGPUYrTWF0aC5pbXVsKGduLEluKXwwKSsoUz4+PjEzKXwwKSsoRW8+Pj4yNil8MCxFbyY9NjcxMDg4NjMs''@;'; put 'put ''VD1NYXRoLmltdWwoYm4sR3QpLFM9KFM9TWF0aC5pbXVsKGJuLGtuKSkrTWF0aC5pbXVsKGVyLEd0KXwwLEY9TWF0aC5pbXVsKGVyLGtuKTt2YXIgcW89KFBlKyhUPVQrTWF0aC5pbXVsKHluLGVuKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoeW4sSW4pfDApK01hdGguaW11bChs''@;'; put 'put ''bixlbil8MCkpPDwxMyl8MDtQZT0oKEY9RitNYXRoLmltdWwobG4sSW4pfDApKyhTPj4+MTMpfDApKyhxbz4+PjI2KXwwLHFvJj02NzEwODg2Mzt2YXIgY2E9KFBlKyhUPU1hdGguaW11bChibixlbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoYm4sSW4pKStNYXRoLmltdWwoZXIsZW4p''@;'; put 'put ''fDApKTw8MTMpfDA7cmV0dXJuIFBlPSgoRj1NYXRoLmltdWwoZXIsSW4pKSsoUz4+PjEzKXwwKSsoY2E+Pj4yNil8MCxjYSY9NjcxMDg4NjMsRGVbMF09Sm4sRGVbMV09b3IsRGVbMl09Z3IsRGVbM109S3IsRGVbNF09VnIsRGVbNV09aWksRGVbNl09UnIsRGVbN109bGksRGVbOF09TWksRGVb''@;'; put 'put ''OV09bzAsRGVbMTBdPW4wLERlWzExXT1kMCxEZVsxMl09bTAsRGVbMTNdPUcwLERlWzE0XT1EaSxEZVsxNV09VzAsRGVbMTZdPUVvLERlWzE3XT1xbyxEZVsxOF09Y2EsMCE9PVBlJiYoRGVbMTldPVBlLFYubGVuZ3RoKyspLFZ9O2Z1bmN0aW9uIGtlKHgsUCxWKXtyZXR1cm4obmV3IFNlKS5t''@;'; put 'put ''dWxwKHgsUCxWKX1mdW5jdGlvbiBTZSh4LFApe3RoaXMueD14LHRoaXMueT1QfU1hdGguaW11bHx8KEFlPXZlKSxOLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbih4LFApe3ZhciBUPXRoaXMubGVuZ3RoK3gubGVuZ3RoO3JldHVybiAxMD09PXRoaXMubGVuZ3RoJiYxMD09PXgubGVuZ3RoP0Fl''@;'; put 'put ''KHRoaXMseCxQKTpUPDYzP3ZlKHRoaXMseCxQKTpUPDEwMjQ/ZnVuY3Rpb24oUyxGLHllKXt5ZS5uZWdhdGl2ZT1GLm5lZ2F0aXZlXlMubmVnYXRpdmUseWUubGVuZ3RoPVMubGVuZ3RoK0YubGVuZ3RoO2Zvcih2YXIgQ2U9MCxEZT0wLFBlPTA7UGU8eWUubGVuZ3RoLTE7UGUrKyl7dmFyIFFl''@;'; put 'put ''PURlO0RlPTA7Zm9yKHZhciAkZT02NzEwODg2MyZDZSxndD1NYXRoLm1pbihQZSxGLmxlbmd0aC0xKSx3dD1NYXRoLm1heCgwLFBlLVMubGVuZ3RoKzEpO3d0PD1ndDt3dCsrKXt2YXIgdnQ9KDB8Uy53b3Jkc1tQZS13dF0pKigwfEYud29yZHNbd3RdKSxBdD02NzEwODg2MyZ2dDskZT02NzEw''@;'; put 'put ''ODg2MyYoQXQ9QXQrJGV8MCksRGUrPShRZT0oUWU9UWUrKHZ0LzY3MTA4ODY0fDApfDApKyhBdD4+PjI2KXwwKT4+PjI2LFFlJj02NzEwODg2M315ZS53b3Jkc1tQZV09JGUsQ2U9UWUsUWU9RGV9cmV0dXJuIDAhPT1DZT95ZS53b3Jkc1tQZV09Q2U6eWUubGVuZ3RoLS0seWUuc3RyaXAoKX0o''@;'; put 'put ''dGhpcyx4LFApOmtlKHRoaXMseCxQKX0sU2UucHJvdG90eXBlLm1ha2VSQlQ9ZnVuY3Rpb24oeCl7Zm9yKHZhciBQPW5ldyBBcnJheSh4KSxWPU4ucHJvdG90eXBlLl9jb3VudEJpdHMoeCktMSxUPTA7VDx4O1QrKylQW1RdPXRoaXMucmV2QmluKFQsVix4KTtyZXR1cm4gUH0sU2UucHJvdG90''@;'; put 'put ''eXBlLnJldkJpbj1mdW5jdGlvbih4LFAsVil7aWYoMD09PXh8fHg9PT1WLTEpcmV0dXJuIHg7Zm9yKHZhciBUPTAsUz0wO1M8UDtTKyspVHw9KDEmeCk8PFAtUy0xLHg+Pj0xO3JldHVybiBUfSxTZS5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbih4LFAsVixULFMsRil7Zm9yKHZhciB5ZT0w''@;'; put 'put ''O3llPEY7eWUrKylUW3llXT1QW3hbeWVdXSxTW3llXT1WW3hbeWVdXX0sU2UucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbih4LFAsVixULFMsRil7dGhpcy5wZXJtdXRlKEYseCxQLFYsVCxTKTtmb3IodmFyIHllPTE7eWU8Uzt5ZTw8PTEpZm9yKHZhciBDZT15ZTw8MSxEZT1NYXRoLmNv''@;'; put 'put ''cygyKk1hdGguUEkvQ2UpLFBlPU1hdGguc2luKDIqTWF0aC5QSS9DZSksUWU9MDtRZTxTO1FlKz1DZSlmb3IodmFyICRlPURlLGd0PVBlLHd0PTA7d3Q8eWU7d3QrKyl7dmFyIG10PVZbUWUrd3RdLHZ0PVRbUWUrd3RdLEF0PVZbUWUrd3QreWVdLGh0PVRbUWUrd3QreWVdLEJ0PSRlKkF0LWd0''@;'; put 'put ''Kmh0O2h0PSRlKmh0K2d0KkF0LFZbUWUrd3RdPW10KyhBdD1CdCksVFtRZSt3dF09dnQraHQsVltRZSt3dCt5ZV09bXQtQXQsVFtRZSt3dCt5ZV09dnQtaHQsd3QhPT1DZSYmKEJ0PURlKiRlLVBlKmd0LGd0PURlKmd0K1BlKiRlLCRlPUJ0KX19LFNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1m''@;'; put 'put ''dW5jdGlvbih4LFApe3ZhciBWPTF8TWF0aC5tYXgoUCx4KSxUPTEmVixTPTA7Zm9yKFY9Vi8yfDA7VjtWPj4+PTEpUysrO3JldHVybiAxPDxTKzErVH0sU2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbih4LFAsVil7aWYoIShWPD0xKSlmb3IodmFyIFQ9MDtUPFYvMjtUKyspe3ZhciBT''@;'; put 'put ''PXhbVF07eFtUXT14W1YtVC0xXSx4W1YtVC0xXT1TLFM9UFtUXSxQW1RdPS1QW1YtVC0xXSxQW1YtVC0xXT0tU319LFNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oeCxQKXtmb3IodmFyIFY9MCxUPTA7VDxQLzI7VCsrKXt2YXIgUz04MTkyKk1hdGgucm91bmQoeFsyKlQrMV0v''@;'; put 'put ''UCkrTWF0aC5yb3VuZCh4WzIqVF0vUCkrVjt4W1RdPTY3MTA4ODYzJlMsVj1TPDY3MTA4ODY0PzA6Uy82NzEwODg2NHwwfXJldHVybiB4fSxTZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbih4LFAsVixUKXtmb3IodmFyIFM9MCxGPTA7RjxQO0YrKylWWzIqRl09ODE5MSYoUys9MHx4''@;'; put 'put ''W0ZdKSxWWzIqRisxXT04MTkxJihTPj4+PTEzKSxTPj4+PTEzO2ZvcihGPTIqUDtGPFQ7KytGKVZbRl09MDtZKDA9PT1TKSxZKDA9PSgtODE5MiZTKSl9LFNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKHgpe2Zvcih2YXIgUD1uZXcgQXJyYXkoeCksVj0wO1Y8eDtWKyspUFtWXT0wO3JldHVy''@;'; put 'put ''biBQfSxTZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbih4LFAsVil7dmFyIFQ9Mip0aGlzLmd1ZXNzTGVuMTNiKHgubGVuZ3RoLFAubGVuZ3RoKSxTPXRoaXMubWFrZVJCVChUKSxGPXRoaXMuc3R1YihUKSx5ZT1uZXcgQXJyYXkoVCksQ2U9bmV3IEFycmF5KFQpLERlPW5ldyBBcnJheShUKSxQ''@;'; put 'put ''ZT1uZXcgQXJyYXkoVCksUWU9bmV3IEFycmF5KFQpLCRlPW5ldyBBcnJheShUKSxndD1WLndvcmRzO2d0Lmxlbmd0aD1ULHRoaXMuY29udmVydDEzYih4LndvcmRzLHgubGVuZ3RoLHllLFQpLHRoaXMuY29udmVydDEzYihQLndvcmRzLFAubGVuZ3RoLFBlLFQpLHRoaXMudHJhbnNmb3JtKHll''@;'; put 'put ''LEYsQ2UsRGUsVCxTKSx0aGlzLnRyYW5zZm9ybShQZSxGLFFlLCRlLFQsUyk7Zm9yKHZhciB3dD0wO3d0PFQ7d3QrKyl7dmFyIG10PUNlW3d0XSpRZVt3dF0tRGVbd3RdKiRlW3d0XTtEZVt3dF09Q2Vbd3RdKiRlW3d0XStEZVt3dF0qUWVbd3RdLENlW3d0XT1tdH1yZXR1cm4gdGhpcy5jb25q''@;'; put 'put ''dWdhdGUoQ2UsRGUsVCksdGhpcy50cmFuc2Zvcm0oQ2UsRGUsZ3QsRixULFMpLHRoaXMuY29uanVnYXRlKGd0LEYsVCksdGhpcy5ub3JtYWxpemUxM2IoZ3QsVCksVi5uZWdhdGl2ZT14Lm5lZ2F0aXZlXlAubmVnYXRpdmUsVi5sZW5ndGg9eC5sZW5ndGgrUC5sZW5ndGgsVi5zdHJpcCgpfSxO''@;'; put 'put ''LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSx0aGlzLm11bFRvKHgsUCl9LE4ucHJvdG90eXBlLm11bGY9ZnVuY3Rpb24oeCl7dmFyIFA9bmV3IE4obnVsbCk7cmV0dXJuIFAu''@;'; put 'put ''d29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK3gubGVuZ3RoKSxrZSh0aGlzLHgsUCl9LE4ucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyh4LHRoaXMpfSxOLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2Yg''@;'; put 'put ''eCksWSh4PDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7Vjx0aGlzLmxlbmd0aDtWKyspe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKngsUz0oNjcxMDg4NjMmVCkrKDY3MTA4ODYzJlApO1A+Pj0yNixQKz1ULzY3MTA4ODY0fDAsUCs9Uz4+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmU31y''@;'; put 'put ''ZXR1cm4gMCE9PVAmJih0aGlzLndvcmRzW1ZdPVAsdGhpcy5sZW5ndGgrKyksdGhpc30sTi5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKHgpfSxOLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LE4ucHJv''@;'; put 'put ''dG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LE4ucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4KXt2YXIgUD1mdW5jdGlvbihGKXtmb3IodmFyIHllPW5ldyBBcnJheShGLmJpdExlbmd0aCgpKSxDZT0wO0NlPHllLmxlbmd0aDtDZSsrKXt2YXIg''@;'; put 'put ''UGU9Q2UlMjY7eWVbQ2VdPShGLndvcmRzW0NlLzI2fDBdJjE8PFBlKT4+PlBlfXJldHVybiB5ZX0oeCk7aWYoMD09PVAubGVuZ3RoKXJldHVybiBuZXcgTigxKTtmb3IodmFyIFY9dGhpcyxUPTA7VDxQLmxlbmd0aCYmMD09PVBbVF07VCsrLFY9Vi5zcXIoKSk7aWYoKytUPFAubGVuZ3RoKWZv''@;'; put 'put ''cih2YXIgUz1WLnNxcigpO1Q8UC5sZW5ndGg7VCsrLFM9Uy5zcXIoKSkwIT09UFtUXSYmKFY9Vi5tdWwoUykpO3JldHVybiBWfSxOLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oeCl7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApO3ZhciBQLFY9eCUyNixUPSh4LVYpLzI2LFM9NjcxMDg4''@;'; put 'put ''NjM+Pj4yNi1WPDwyNi1WO2lmKDAhPT1WKXt2YXIgRj0wO2ZvcihQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciB5ZT10aGlzLndvcmRzW1BdJlM7dGhpcy53b3Jkc1tQXT0oMHx0aGlzLndvcmRzW1BdKS15ZTw8VnxGLEY9eWU+Pj4yNi1WfUYmJih0aGlzLndvcmRzW1BdPUYsdGhpcy5sZW5n''@;'; put 'put ''dGgrKyl9aWYoMCE9PVQpe2ZvcihQPXRoaXMubGVuZ3RoLTE7UD49MDtQLS0pdGhpcy53b3Jkc1tQK1RdPXRoaXMud29yZHNbUF07Zm9yKFA9MDtQPFQ7UCsrKXRoaXMud29yZHNbUF09MDt0aGlzLmxlbmd0aCs9VH1yZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5pc2hsbj1mdW5j''@;'; put 'put ''dGlvbih4KXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNobG4oeCl9LE4ucHJvdG90eXBlLml1c2hybj1mdW5jdGlvbih4LFAsVil7dmFyIFQ7WSgibnVtYmVyIj09dHlwZW9mIHgmJng+PTApLFQ9UD8oUC1QJTI2KS8yNjowO3ZhciBTPXglMjYsRj1NYXRoLm1pbigoeC1T''@;'; put 'put ''KS8yNix0aGlzLmxlbmd0aCkseWU9NjcxMDg4NjNeNjcxMDg4NjM+Pj5TPDxTLENlPVY7aWYoVC09RixUPU1hdGgubWF4KDAsVCksQ2Upe2Zvcih2YXIgRGU9MDtEZTxGO0RlKyspQ2Uud29yZHNbRGVdPXRoaXMud29yZHNbRGVdO0NlLmxlbmd0aD1GfWlmKDAhPT1GKWlmKHRoaXMubGVuZ3Ro''@;'; put 'put ''PkYpZm9yKHRoaXMubGVuZ3RoLT1GLERlPTA7RGU8dGhpcy5sZW5ndGg7RGUrKyl0aGlzLndvcmRzW0RlXT10aGlzLndvcmRzW0RlK0ZdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIFBlPTA7Zm9yKERlPXRoaXMubGVuZ3RoLTE7RGU+PTAmJigwIT09UGV8fERlPj1U''@;'; put 'put ''KTtEZS0tKXt2YXIgUWU9MHx0aGlzLndvcmRzW0RlXTt0aGlzLndvcmRzW0RlXT1QZTw8MjYtU3xRZT4+PlMsUGU9UWUmeWV9cmV0dXJuIENlJiYwIT09UGUmJihDZS53b3Jkc1tDZS5sZW5ndGgrK109UGUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0x''@;'; put 'put ''KSx0aGlzLnN0cmlwKCl9LE4ucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oeCxQLFYpfSxOLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4oeCl9LE4ucHJvdG90''@;'; put 'put ''eXBlLnVzaGxuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKHgpfSxOLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4oeCl9LE4ucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaXVz''@;'; put 'put ''aHJuKHgpfSxOLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PVZ8fCEodGhpcy53b3Jkc1tWXSYxPDxQKSl9LE4ucHJvdG90eXBlLmltYXNrbj1mdW5jdGlvbih4''@;'; put 'put ''KXtZKCJudW1iZXIiPT10eXBlb2YgeCYmeD49MCk7dmFyIFA9eCUyNixWPSh4LVApLzI2O3JldHVybiBZKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9Vj90aGlzOigwIT09UCYmVisrLHRoaXMubGVuZ3Ro''@;'; put 'put ''PU1hdGgubWluKFYsdGhpcy5sZW5ndGgpLDAhPT1QJiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj5QPDxQKSx0aGlzLnN0cmlwKCkpfSxOLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbih4KX0sTi5w''@;'; put 'put ''cm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oeCl7cmV0dXJuIFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MD90aGlzLmlzdWJuKC14KTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPHg/KHRoaXMud29yZHNbMF09eC0oMHx0''@;'; put 'put ''aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKHgpLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbih4KX0sTi5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKHgpe3RoaXMud29yZHNbMF0rPXg7Zm9yKHZhciBQPTA7''@;'; put 'put ''UDx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tQXT49NjcxMDg4NjQ7UCsrKXRoaXMud29yZHNbUF0tPTY3MTA4ODY0LFA9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbUCsxXT0xOnRoaXMud29yZHNbUCsxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxQKzEp''@;'; put 'put ''LHRoaXN9LE4ucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKHgpe2lmKFkoIm51bWJlciI9PXR5cGVvZiB4KSxZKHg8NjcxMDg4NjQpLHg8MClyZXR1cm4gdGhpcy5pYWRkbigteCk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKHgpLHRoaXMu''@;'; put 'put ''bmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPXgsMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIFA9MDtQPHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW1BdPDA7UCsr''@;'; put 'put ''KXRoaXMud29yZHNbUF0rPTY3MTA4ODY0LHRoaXMud29yZHNbUCsxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oeCl9LE4ucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''Y2xvbmUoKS5pc3Vibih4KX0sTi5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sTi5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LE4ucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbih4''@;'; put 'put ''LFAsVil7dmFyIFQsUzt0aGlzLl9leHBhbmQoeC5sZW5ndGgrVik7dmFyIHllPTA7Zm9yKFQ9MDtUPHgubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrVl0pK3llO3ZhciBDZT0oMHx4LndvcmRzW1RdKSpQO3llPSgoUy09NjcxMDg4NjMmQ2UpPj4yNiktKENlLzY3MTA4ODY0fDApLHRo''@;'; put 'put ''aXMud29yZHNbVCtWXT02NzEwODg2MyZTfWZvcig7VDx0aGlzLmxlbmd0aC1WO1QrKyl5ZT0oUz0oMHx0aGlzLndvcmRzW1QrVl0pK3llKT4+MjYsdGhpcy53b3Jkc1tUK1ZdPTY3MTA4ODYzJlM7aWYoMD09PXllKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKFkoLTE9PT15ZSkseWU9MCxUPTA7''@;'; put 'put ''VDx0aGlzLmxlbmd0aDtUKyspeWU9KFM9LSgwfHRoaXMud29yZHNbVF0pK3llKT4+MjYsdGhpcy53b3Jkc1tUXT02NzEwODg2MyZTO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxOLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbih4LFApe3ZhciBWLFQ9dGhpcy5jbG9u''@;'; put 'put ''ZSgpLFM9eCxGPTB8Uy53b3Jkc1tTLmxlbmd0aC0xXTswIT0oVj0yNi10aGlzLl9jb3VudEJpdHMoRikpJiYoUz1TLnVzaGxuKFYpLFQuaXVzaGxuKFYpLEY9MHxTLndvcmRzW1MubGVuZ3RoLTFdKTt2YXIgeWUsQ2U9VC5sZW5ndGgtUy5sZW5ndGg7aWYoIm1vZCIhPT1QKXsoeWU9bmV3IE4o''@;'; put 'put ''bnVsbCkpLmxlbmd0aD1DZSsxLHllLndvcmRzPW5ldyBBcnJheSh5ZS5sZW5ndGgpO2Zvcih2YXIgRGU9MDtEZTx5ZS5sZW5ndGg7RGUrKyl5ZS53b3Jkc1tEZV09MH12YXIgUGU9VC5jbG9uZSgpLl9pc2hsbnN1Ym11bChTLDEsQ2UpOzA9PT1QZS5uZWdhdGl2ZSYmKFQ9UGUseWUmJih5ZS53''@;'; put 'put ''b3Jkc1tDZV09MSkpO2Zvcih2YXIgUWU9Q2UtMTtRZT49MDtRZS0tKXt2YXIgJGU9NjcxMDg4NjQqKDB8VC53b3Jkc1tTLmxlbmd0aCtRZV0pKygwfFQud29yZHNbUy5sZW5ndGgrUWUtMV0pO2ZvcigkZT1NYXRoLm1pbigkZS9GfDAsNjcxMDg4NjMpLFQuX2lzaGxuc3VibXVsKFMsJGUsUWUp''@;'; put 'put ''OzAhPT1ULm5lZ2F0aXZlOykkZS0tLFQubmVnYXRpdmU9MCxULl9pc2hsbnN1Ym11bChTLDEsUWUpLFQuaXNaZXJvKCl8fChULm5lZ2F0aXZlXj0xKTt5ZSYmKHllLndvcmRzW1FlXT0kZSl9cmV0dXJuIHllJiZ5ZS5zdHJpcCgpLFQuc3RyaXAoKSwiZGl2IiE9PVAmJjAhPT1WJiZULml1c2hy''@;'; put 'put ''bihWKSx7ZGl2OnllfHxudWxsLG1vZDpUfX0sTi5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKHgsUCxWKXtyZXR1cm4gWSgheC5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBOKDApLG1vZDpuZXcgTigwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT14Lm5lZ2F0aXZlPyhGPXRo''@;'; put 'put ''aXMubmVnKCkuZGl2bW9kKHgsUCksIm1vZCIhPT1QJiYoVD1GLmRpdi5uZWcoKSksImRpdiIhPT1QJiYoUz1GLm1vZC5uZWcoKSxWJiYwIT09Uy5uZWdhdGl2ZSYmUy5pYWRkKHgpKSx7ZGl2OlQsbW9kOlN9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PXgubmVnYXRpdmU/KEY9dGhpcy5kaXZt''@;'; put 'put ''b2QoeC5uZWcoKSxQKSwibW9kIiE9PVAmJihUPUYuZGl2Lm5lZygpKSx7ZGl2OlQsbW9kOkYubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmeC5uZWdhdGl2ZSk/KEY9dGhpcy5uZWcoKS5kaXZtb2QoeC5uZWcoKSxQKSwiZGl2IiE9PVAmJihTPUYubW9kLm5lZygpLFYmJjAhPT1TLm5lZ2F0aXZl''@;'; put 'put ''JiZTLmlzdWIoeCkpLHtkaXY6Ri5kaXYsbW9kOlN9KTp4Lmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoeCk8MD97ZGl2Om5ldyBOKDApLG1vZDp0aGlzfToxPT09eC5sZW5ndGg/ImRpdiI9PT1QP3tkaXY6dGhpcy5kaXZuKHgud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PVA/e2Rp''@;'; put 'put ''djpudWxsLG1vZDpuZXcgTih0aGlzLm1vZG4oeC53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bih4LndvcmRzWzBdKSxtb2Q6bmV3IE4odGhpcy5tb2RuKHgud29yZHNbMF0pKX06dGhpcy5fd29yZERpdih4LFApO3ZhciBULFMsRn0sTi5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKHgpe3JldHVy''@;'; put 'put ''biB0aGlzLmRpdm1vZCh4LCJkaXYiLCExKS5kaXZ9LE4ucHJvdG90eXBlLm1vZD1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5kaXZtb2QoeCwibW9kIiwhMSkubW9kfSxOLnByb3RvdHlwZS51bW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmRpdm1vZCh4LCJtb2QiLCEwKS5tb2R9LE4ucHJv''@;'; put 'put ''dG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuZGl2bW9kKHgpO2lmKFAubW9kLmlzWmVybygpKXJldHVybiBQLmRpdjt2YXIgVj0wIT09UC5kaXYubmVnYXRpdmU/UC5tb2QuaXN1Yih4KTpQLm1vZCxUPXgudXNocm4oMSksUz14LmFuZGxuKDEpLEY9Vi5jbXAoVCk7cmV0''@;'; put 'put ''dXJuIEY8MHx8MT09PVMmJjA9PT1GP1AuZGl2OjAhPT1QLmRpdi5uZWdhdGl2ZT9QLmRpdi5pc3VibigxKTpQLmRpdi5pYWRkbigxKX0sTi5wcm90b3R5cGUubW9kbj1mdW5jdGlvbih4KXtZKHg8PTY3MTA4ODYzKTtmb3IodmFyIFA9NjcxMDg4NjQleCxWPTAsVD10aGlzLmxlbmd0aC0xO1Q+''@;'; put 'put ''PTA7VC0tKVY9KFAqVisoMHx0aGlzLndvcmRzW1RdKSkleDtyZXR1cm4gVn0sTi5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oeCl7WSh4PD02NzEwODg2Myk7Zm9yKHZhciBQPTAsVj10aGlzLmxlbmd0aC0xO1Y+PTA7Vi0tKXt2YXIgVD0oMHx0aGlzLndvcmRzW1ZdKSs2NzEwODg2NCpQO3Ro''@;'; put 'put ''aXMud29yZHNbVl09VC94fDAsUD1UJXh9cmV0dXJuIHRoaXMuc3RyaXAoKX0sTi5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHgpfSxOLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHgpe1koMD09PXgubmVnYXRpdmUpLFkoIXguaXNaZXJvKCkp''@;'; put 'put ''O3ZhciBQPXRoaXMsVj14LmNsb25lKCk7UD0wIT09UC5uZWdhdGl2ZT9QLnVtb2QoeCk6UC5jbG9uZSgpO2Zvcih2YXIgVD1uZXcgTigxKSxTPW5ldyBOKDApLEY9bmV3IE4oMCkseWU9bmV3IE4oMSksQ2U9MDtQLmlzRXZlbigpJiZWLmlzRXZlbigpOylQLml1c2hybigxKSxWLml1c2hybigx''@;'; put 'put ''KSwrK0NlO2Zvcih2YXIgRGU9Vi5jbG9uZSgpLFBlPVAuY2xvbmUoKTshUC5pc1plcm8oKTspe2Zvcih2YXIgUWU9MCwkZT0xOzA9PShQLndvcmRzWzBdJiRlKSYmUWU8MjY7KytRZSwkZTw8PTEpO2lmKFFlPjApZm9yKFAuaXVzaHJuKFFlKTtRZS0tID4wOykoVC5pc09kZCgpfHxTLmlzT2Rk''@;'; put 'put ''KCkpJiYoVC5pYWRkKERlKSxTLmlzdWIoUGUpKSxULml1c2hybigxKSxTLml1c2hybigxKTtmb3IodmFyIGd0PTAsd3Q9MTswPT0oVi53b3Jkc1swXSZ3dCkmJmd0PDI2OysrZ3Qsd3Q8PD0xKTtpZihndD4wKWZvcihWLml1c2hybihndCk7Z3QtLSA+MDspKEYuaXNPZGQoKXx8eWUuaXNPZGQo''@;'; put 'put ''KSkmJihGLmlhZGQoRGUpLHllLmlzdWIoUGUpKSxGLml1c2hybigxKSx5ZS5pdXNocm4oMSk7UC5jbXAoVik+PTA/KFAuaXN1YihWKSxULmlzdWIoRiksUy5pc3ViKHllKSk6KFYuaXN1YihQKSxGLmlzdWIoVCkseWUuaXN1YihTKSl9cmV0dXJue2E6RixiOnllLGdjZDpWLml1c2hsbihDZSl9''@;'; put 'put ''fSxOLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oeCl7WSgwPT09eC5uZWdhdGl2ZSksWSgheC5pc1plcm8oKSk7dmFyIFA9dGhpcyxWPXguY2xvbmUoKTtQPTAhPT1QLm5lZ2F0aXZlP1AudW1vZCh4KTpQLmNsb25lKCk7Zm9yKHZhciBULFM9bmV3IE4oMSksRj1uZXcgTigwKSx5ZT1WLmNs''@;'; put 'put ''b25lKCk7UC5jbXBuKDEpPjAmJlYuY21wbigxKT4wOyl7Zm9yKHZhciBDZT0wLERlPTE7MD09KFAud29yZHNbMF0mRGUpJiZDZTwyNjsrK0NlLERlPDw9MSk7aWYoQ2U+MClmb3IoUC5pdXNocm4oQ2UpO0NlLS0gPjA7KVMuaXNPZGQoKSYmUy5pYWRkKHllKSxTLml1c2hybigxKTtmb3IodmFy''@;'; put 'put ''IFBlPTAsUWU9MTswPT0oVi53b3Jkc1swXSZRZSkmJlBlPDI2OysrUGUsUWU8PD0xKTtpZihQZT4wKWZvcihWLml1c2hybihQZSk7UGUtLSA+MDspRi5pc09kZCgpJiZGLmlhZGQoeWUpLEYuaXVzaHJuKDEpO1AuY21wKFYpPj0wPyhQLmlzdWIoViksUy5pc3ViKEYpKTooVi5pc3ViKFApLEYu''@;'; put 'put ''aXN1YihTKSl9cmV0dXJuKFQ9MD09PVAuY21wbigxKT9TOkYpLmNtcG4oMCk8MCYmVC5pYWRkKHgpLFR9LE4ucHJvdG90eXBlLmdjZD1mdW5jdGlvbih4KXtpZih0aGlzLmlzWmVybygpKXJldHVybiB4LmFicygpO2lmKHguaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIFA9dGhpcy5j''@;'; put 'put ''bG9uZSgpLFY9eC5jbG9uZSgpO1AubmVnYXRpdmU9MCxWLm5lZ2F0aXZlPTA7Zm9yKHZhciBUPTA7UC5pc0V2ZW4oKSYmVi5pc0V2ZW4oKTtUKyspUC5pdXNocm4oMSksVi5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO1AuaXNFdmVuKCk7KVAuaXVzaHJuKDEpO2Zvcig7Vi5pc0V2ZW4oKTspVi5p''@;'; put 'put ''dXNocm4oMSk7dmFyIFM9UC5jbXAoVik7aWYoUzwwKXt2YXIgRj1QO1A9VixWPUZ9ZWxzZSBpZigwPT09U3x8MD09PVYuY21wbigxKSlicmVhaztQLmlzdWIoVil9cmV0dXJuIFYuaXVzaGxuKFQpfSxOLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmVnY2QoeCkuYS51''@;'; put 'put ''bW9kKHgpfSxOLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LE4ucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxOLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhp''@;'; put 'put ''cy53b3Jkc1swXSZ4fSxOLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbih4KXtZKCJudW1iZXIiPT10eXBlb2YgeCk7dmFyIFA9eCUyNixWPSh4LVApLzI2LFQ9MTw8UDtpZih0aGlzLmxlbmd0aDw9VilyZXR1cm4gdGhpcy5fZXhwYW5kKFYrMSksdGhpcy53b3Jkc1tWXXw9VCx0aGlzO2Zvcih2''@;'; put 'put ''YXIgUz1ULEY9VjswIT09UyYmRjx0aGlzLmxlbmd0aDtGKyspe3ZhciB5ZT0wfHRoaXMud29yZHNbRl07Uz0oeWUrPVMpPj4+MjYsdGhpcy53b3Jkc1tGXT15ZSY9NjcxMDg4NjN9cmV0dXJuIDAhPT1TJiYodGhpcy53b3Jkc1tGXT1TLHRoaXMubGVuZ3RoKyspLHRoaXN9LE4ucHJvdG90eXBl''@;'; put 'put ''LmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxOLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKHgpe3ZhciBQLFY9eDwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYhVilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmVilyZXR1''@;'; put 'put ''cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSlQPTE7ZWxzZXtWJiYoeD0teCksWSh4PD02NzEwODg2MywiTnVtYmVyIGlzIHRvbyBiaWciKTt2YXIgVD0wfHRoaXMud29yZHNbMF07UD1UPT09eD8wOlQ8eD8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LE4u''@;'; put 'put ''cHJvdG90eXBlLmNtcD1mdW5jdGlvbih4KXtpZigwIT09dGhpcy5uZWdhdGl2ZSYmMD09PXgubmVnYXRpdmUpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJjAhPT14Lm5lZ2F0aXZlKXJldHVybiAxO3ZhciBQPXRoaXMudWNtcCh4KTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwt''@;'; put 'put ''UDpQfSxOLnByb3RvdHlwZS51Y21wPWZ1bmN0aW9uKHgpe2lmKHRoaXMubGVuZ3RoPngubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPHgubGVuZ3RoKXJldHVybi0xO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9MHx0aGlzLndvcmRzW1ZdLFM9MHx4''@;'; put 'put ''LndvcmRzW1ZdO2lmKFQhPT1TKXtUPFM/UD0tMTpUPlMmJihQPTEpO2JyZWFrfX1yZXR1cm4gUH0sTi5wcm90b3R5cGUuZ3RuPWZ1bmN0aW9uKHgpe3JldHVybiAxPT09dGhpcy5jbXBuKHgpfSxOLnByb3RvdHlwZS5ndD1mdW5jdGlvbih4KXtyZXR1cm4gMT09PXRoaXMuY21wKHgpfSxOLnBy''@;'; put 'put ''b3RvdHlwZS5ndGVuPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmNtcG4oeCk+PTB9LE4ucHJvdG90eXBlLmd0ZT1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXAoeCk+PTB9LE4ucHJvdG90eXBlLmx0bj1mdW5jdGlvbih4KXtyZXR1cm4tMT09PXRoaXMuY21wbih4KX0sTi5wcm90b3R5cGUu''@;'; put 'put ''bHQ9ZnVuY3Rpb24oeCl7cmV0dXJuLTE9PT10aGlzLmNtcCh4KX0sTi5wcm90b3R5cGUubHRlbj1mdW5jdGlvbih4KXtyZXR1cm4gdGhpcy5jbXBuKHgpPD0wfSxOLnByb3RvdHlwZS5sdGU9ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuY21wKHgpPD0wfSxOLnByb3RvdHlwZS5lcW49ZnVuY3Rp''@;'; put 'put ''b24oeCl7cmV0dXJuIDA9PT10aGlzLmNtcG4oeCl9LE4ucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHgpe3JldHVybiAwPT09dGhpcy5jbXAoeCl9LE4ucmVkPWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgZWUoeCl9LE4ucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJl''@;'; put 'put ''ZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLFkoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIikseC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IFkodGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sTi5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnJlZD14LHRoaXN9LE4ucHJvdG90eXBl''@;'; put 'put ''LmZvcmNlUmVkPWZ1bmN0aW9uKHgpe3JldHVybiBZKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHgpfSxOLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZEFkZCB3b3JrcyBv''@;'; put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMseCl9LE4ucHJvdG90''@;'; put 'put ''eXBlLnJlZFN1Yj1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHgpfSxOLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtz''@;'; put 'put ''IG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHgpe3JldHVybiBZKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMseCl9LE4ucHJvdG90''@;'; put 'put ''eXBlLnJlZE11bD1mdW5jdGlvbih4KXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMseCksdGhpcy5yZWQubXVsKHRoaXMseCl9LE4ucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24oeCl7cmV0dXJu''@;'; put 'put ''IFkodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHgpLHRoaXMucmVkLmltdWwodGhpcyx4KX0sTi5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5''@;'; put 'put ''IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LE4ucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVy''@;'; put 'put ''aWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0s''@;'; put 'put ''Ti5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBZKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LE4ucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBZKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxOLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24oeCl7cmV0dXJuIFkodGhpcy5yZWQmJiF4LnJlZCwicmVkUG93KG5v''@;'; put 'put ''cm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx4KX07dmFyIEllPXtrMjU2Om51bGwscDIyNDpudWxsLHAxOTI6bnVsbCxwMjU1MTk6bnVsbH07ZnVuY3Rpb24gVGUoeCxQKXt0aGlzLm5hbWU9eCx0aGlzLnA9bmV3IE4oUCwxNiksdGhpcy5uPXRo''@;'; put 'put ''aXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IE4oMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIE1lKCl7VGUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZm''@;'; put 'put ''ZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBoZSgpe1RlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gTygpe1RlLmNhbGwodGhpcywicDE5MiIsImZmZmZm''@;'; put 'put ''ZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24geigpe1RlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24g''@;'; put 'put ''ZWUoeCl7aWYoInN0cmluZyI9PXR5cGVvZiB4KXt2YXIgUD1OLl9wcmltZSh4KTt0aGlzLm09UC5wLHRoaXMucHJpbWU9UH1lbHNlIFkoeC5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT14LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBuZSh4KXtlZS5j''@;'; put 'put ''YWxsKHRoaXMseCksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgTigxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJp''@;'; put 'put ''bnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX1UZS5wcm90b3R5cGUuX3RtcD1mdW5j''@;'; put 'put ''dGlvbigpe3ZhciB4PW5ldyBOKG51bGwpO3JldHVybiB4LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSkseH0sVGUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oeCl7dmFyIFAsVj14O2Rve3RoaXMuc3BsaXQoVix0aGlzLnRtcCksUD0oVj0oVj10aGlzLmltdWxLKFYp''@;'; put 'put ''KS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoUD50aGlzLm4pO3ZhciBUPVA8dGhpcy5uPy0xOlYudWNtcCh0aGlzLnApO3JldHVybiAwPT09VD8oVi53b3Jkc1swXT0wLFYubGVuZ3RoPTEpOlQ+MD9WLmlzdWIodGhpcy5wKTp2b2lkIDAhPT1WLnN0cmlwP1Yuc3RyaXAoKTpW''@;'; put 'put ''Ll9zdHJpcCgpLFZ9LFRlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbih4LFApe3guaXVzaHJuKHRoaXMubiwwLFApfSxUZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oeCl7cmV0dXJuIHguaW11bCh0aGlzLmspfSxXKE1lLFRlKSxNZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oeCxQKXtm''@;'; put 'put ''b3IodmFyIFY9NDE5NDMwMyxUPU1hdGgubWluKHgubGVuZ3RoLDkpLFM9MDtTPFQ7UysrKVAud29yZHNbU109eC53b3Jkc1tTXTtpZihQLmxlbmd0aD1ULHgubGVuZ3RoPD05KXJldHVybiB4LndvcmRzWzBdPTAsdm9pZCh4Lmxlbmd0aD0xKTt2YXIgRj14LndvcmRzWzldO2ZvcihQLndvcmRz''@;'; put 'put ''W1AubGVuZ3RoKytdPUYmVixTPTEwO1M8eC5sZW5ndGg7UysrKXt2YXIgeWU9MHx4LndvcmRzW1NdO3gud29yZHNbUy0xMF09KHllJlYpPDw0fEY+Pj4yMixGPXllfXgud29yZHNbUy0xMF09Rj4+Pj0yMix4Lmxlbmd0aC09MD09PUYmJngubGVuZ3RoPjEwPzEwOjl9LE1lLnByb3RvdHlwZS5p''@;'; put 'put ''bXVsSz1mdW5jdGlvbih4KXt4LndvcmRzW3gubGVuZ3RoXT0wLHgud29yZHNbeC5sZW5ndGgrMV09MCx4Lmxlbmd0aCs9Mjtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTB8eC53b3Jkc1tWXTt4LndvcmRzW1ZdPTY3MTA4ODYzJihQKz05NzcqVCksUD02NCpUKyhQLzY3''@;'; put 'put ''MTA4ODY0fDApfXJldHVybiAwPT09eC53b3Jkc1t4Lmxlbmd0aC0xXSYmKHgubGVuZ3RoLS0sMD09PXgud29yZHNbeC5sZW5ndGgtMV0mJngubGVuZ3RoLS0pLHh9LFcoaGUsVGUpLFcoTyxUZSksVyh6LFRlKSx6LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih4KXtmb3IodmFyIFA9MCxWPTA7''@;'; put 'put ''Vjx4Lmxlbmd0aDtWKyspe3ZhciBUPTE5KigwfHgud29yZHNbVl0pK1AsUz02NzEwODg2MyZUO1Q+Pj49MjYseC53b3Jkc1tWXT1TLFA9VH1yZXR1cm4gMCE9PVAmJih4LndvcmRzW3gubGVuZ3RoKytdPVApLHh9LE4uX3ByaW1lPWZ1bmN0aW9uKHgpe2lmKEllW3hdKXJldHVybiBJZVt4XTt2''@;'; put 'put ''YXIgUDtpZigiazI1NiI9PT14KVA9bmV3IE1lO2Vsc2UgaWYoInAyMjQiPT09eClQPW5ldyBoZTtlbHNlIGlmKCJwMTkyIj09PXgpUD1uZXcgTztlbHNle2lmKCJwMjU1MTkiIT09eCl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gcHJpbWUgIit4KTtQPW5ldyB6fXJldHVybiBJZVt4XT1QLFB9''@;'; put 'put ''LGVlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih4KXtZKDA9PT14Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLFkoeC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sZWUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKHgsUCl7''@;'; put 'put ''WSgwPT0oeC5uZWdhdGl2ZXxQLm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxZKHgucmVkJiZ4LnJlZD09PVAucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LGVlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLnBy''@;'; put 'put ''aW1lP3RoaXMucHJpbWUuaXJlZHVjZSh4KS5fZm9yY2VSZWQodGhpcyk6eC51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHgpe3JldHVybiB4LmlzWmVybygpP3guY2xvbmUoKTp0aGlzLm0uc3ViKHgpLl9mb3JjZVJlZCh0aGlzKX0sZWUu''@;'; put 'put ''cHJvdG90eXBlLmFkZD1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVi5fZm9yY2VSZWQodGhpcyl9LGVlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKHgsUCl7dGhpcy5fdmVyaWZ5''@;'; put 'put ''Mih4LFApO3ZhciBWPXguaWFkZChQKTtyZXR1cm4gVi5jbXAodGhpcy5tKT49MCYmVi5pc3ViKHRoaXMubSksVn0sZWUucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LnN1YihQKTtyZXR1cm4gVi5jbXBuKDApPDAmJlYuaWFkZCh0aGlzLm0p''@;'; put 'put ''LFYuX2ZvcmNlUmVkKHRoaXMpfSxlZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbih4LFApe3RoaXMuX3ZlcmlmeTIoeCxQKTt2YXIgVj14LmlzdWIoUCk7cmV0dXJuIFYuY21wbigwKTwwJiZWLmlhZGQodGhpcy5tKSxWfSxlZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKHgsUCl7cmV0dXJuIHRo''@;'; put 'put ''aXMuX3ZlcmlmeTEoeCksdGhpcy5pbW9kKHgudXNobG4oUCkpfSxlZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe3JldHVybiB0aGlzLl92ZXJpZnkyKHgsUCksdGhpcy5pbW9kKHguaW11bChQKSl9LGVlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtyZXR1cm4gdGhpcy5fdmVy''@;'; put 'put ''aWZ5Mih4LFApLHRoaXMuaW1vZCh4Lm11bChQKSl9LGVlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLmltdWwoeCx4LmNsb25lKCkpfSxlZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHgpe3JldHVybiB0aGlzLm11bCh4LHgpfSxlZS5wcm90b3R5cGUuc3FydD1mdW5j''@;'; put 'put ''dGlvbih4KXtpZih4LmlzWmVybygpKXJldHVybiB4LmNsb25lKCk7dmFyIFA9dGhpcy5tLmFuZGxuKDMpO2lmKFkoUCUyPT0xKSwzPT09UCl7dmFyIFY9dGhpcy5tLmFkZChuZXcgTigxKSkuaXVzaHJuKDIpO3JldHVybiB0aGlzLnBvdyh4LFYpfWZvcih2YXIgVD10aGlzLm0uc3VibigxKSxT''@;'; put 'put ''PTA7IVQuaXNaZXJvKCkmJjA9PT1ULmFuZGxuKDEpOylTKyssVC5pdXNocm4oMSk7WSghVC5pc1plcm8oKSk7dmFyIEY9bmV3IE4oMSkudG9SZWQodGhpcykseWU9Ri5yZWROZWcoKSxDZT10aGlzLm0uc3VibigxKS5pdXNocm4oMSksRGU9dGhpcy5tLmJpdExlbmd0aCgpO2ZvcihEZT1uZXcg''@;'; put 'put ''TigyKkRlKkRlKS50b1JlZCh0aGlzKTswIT09dGhpcy5wb3coRGUsQ2UpLmNtcCh5ZSk7KURlLnJlZElBZGQoeWUpO2Zvcih2YXIgUGU9dGhpcy5wb3coRGUsVCksUWU9dGhpcy5wb3coeCxULmFkZG4oMSkuaXVzaHJuKDEpKSwkZT10aGlzLnBvdyh4LFQpLGd0PVM7MCE9PSRlLmNtcChGKTsp''@;'; put 'put ''e2Zvcih2YXIgd3Q9JGUsbXQ9MDswIT09d3QuY21wKEYpO210Kyspd3Q9d3QucmVkU3FyKCk7WShtdDxndCk7dmFyIHZ0PXRoaXMucG93KFBlLG5ldyBOKDEpLml1c2hsbihndC1tdC0xKSk7UWU9UWUucmVkTXVsKHZ0KSxQZT12dC5yZWRTcXIoKSwkZT0kZS5yZWRNdWwoUGUpLGd0PW10fXJl''@;'; put 'put ''dHVybiBRZX0sZWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7dmFyIFA9eC5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PVAubmVnYXRpdmU/KFAubmVnYXRpdmU9MCx0aGlzLmltb2QoUCkucmVkTmVnKCkpOnRoaXMuaW1vZChQKX0sZWUucHJvdG90eXBlLnBvdz1mdW5jdGlvbih4LFAp''@;'; put 'put ''e2lmKFAuaXNaZXJvKCkpcmV0dXJuIG5ldyBOKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT1QLmNtcG4oMSkpcmV0dXJuIHguY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXkoMTYpO1ZbMF09bmV3IE4oMSkudG9SZWQodGhpcyksVlsxXT14O2Zvcih2YXIgVD0yO1Q8Vi5sZW5ndGg7VCsrKVZbVF09dGhp''@;'; put 'put ''cy5tdWwoVltULTFdLHgpO3ZhciBTPVZbMF0sRj0wLHllPTAsQ2U9UC5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PUNlJiYoQ2U9MjYpLFQ9UC5sZW5ndGgtMTtUPj0wO1QtLSl7Zm9yKHZhciBEZT1QLndvcmRzW1RdLFBlPUNlLTE7UGU+PTA7UGUtLSl7dmFyIFFlPURlPj5QZSYxO1MhPT1WWzBd''@;'; put 'put ''JiYoUz10aGlzLnNxcihTKSksMCE9PVFlfHwwIT09Rj8oRjw8PTEsRnw9UWUsKDQ9PSsreWV8fDA9PT1UJiYwPT09UGUpJiYoUz10aGlzLm11bChTLFZbRl0pLHllPTAsRj0wKSk6eWU9MH1DZT0yNn1yZXR1cm4gU30sZWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih4KXt2YXIgUD14''@;'; put 'put ''LnVtb2QodGhpcy5tKTtyZXR1cm4gUD09PXg/UC5jbG9uZSgpOlB9LGVlLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbih4KXt2YXIgUD14LmNsb25lKCk7cmV0dXJuIFAucmVkPW51bGwsUH0sTi5tb250PWZ1bmN0aW9uKHgpe3JldHVybiBuZXcgbmUoeCl9LFcobmUsZWUpLG5lLnBy''@;'; put 'put ''b3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4LnVzaGxuKHRoaXMuc2hpZnQpKX0sbmUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHgpe3ZhciBQPXRoaXMuaW1vZCh4Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gUC5yZWQ9bnVsbCxQfSxuZS5w''@;'; put 'put ''cm90b3R5cGUuaW11bD1mdW5jdGlvbih4LFApe2lmKHguaXNaZXJvKCl8fFAuaXNaZXJvKCkpcmV0dXJuIHgud29yZHNbMF09MCx4Lmxlbmd0aD0xLHg7dmFyIFY9eC5pbXVsKFApLFQ9Vi5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRo''@;'; put 'put ''aXMubSksUz1WLmlzdWIoVCkuaXVzaHJuKHRoaXMuc2hpZnQpLEY9UztyZXR1cm4gUy5jbXAodGhpcy5tKT49MD9GPVMuaXN1Yih0aGlzLm0pOlMuY21wbigwKTwwJiYoRj1TLmlhZGQodGhpcy5tKSksRi5fZm9yY2VSZWQodGhpcyl9LG5lLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oeCxQKXtp''@;'; put 'put ''Zih4LmlzWmVybygpfHxQLmlzWmVybygpKXJldHVybiBuZXcgTigwKS5fZm9yY2VSZWQodGhpcyk7dmFyIFY9eC5tdWwoUCksVD1WLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxTPVYuaXN1YihUKS5pdXNocm4odGhpcy5z''@;'; put 'put ''aGlmdCksRj1TO3JldHVybiBTLmNtcCh0aGlzLm0pPj0wP0Y9Uy5pc3ViKHRoaXMubSk6Uy5jbXBuKDApPDAmJihGPVMuaWFkZCh0aGlzLm0pKSxGLl9mb3JjZVJlZCh0aGlzKX0sbmUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oeCl7cmV0dXJuIHRoaXMuaW1vZCh4Ll9pbnZtcCh0aGlzLm0p''@;'; put 'put ''Lm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oVT1qLm5tZChVKSx0aGlzKX0sNjEzODooVSxRLGopPT57dmFyIHJlPWooOTgwKSxhZT1qKDkxOTkpLFk9aig3ODU5KSxXPWooMjE0NCksTj1qKDM2NjMpLHRlPWooMzQ4MiksSz1qKDQ4MTgpLEo9aig5NTA5KS5CdWZmZXI7VS5leHBv''@;'; put 'put ''cnRzPWZ1bmN0aW9uKHNlLG9lLGNlKXt2YXIgZGU7ZGU9c2UucGFkZGluZz9zZS5wYWRkaW5nOmNlPzE6NDt2YXIgdmUsQWU9cmUoc2UpLGtlPUFlLm1vZHVsdXMuYnl0ZUxlbmd0aCgpO2lmKG9lLmxlbmd0aD5rZXx8bmV3IFcob2UpLmNtcChBZS5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJy''@;'; put 'put ''b3IoImRlY3J5cHRpb24gZXJyb3IiKTt2ZT1jZT9LKG5ldyBXKG9lKSxBZSk6TihvZSxBZSk7dmFyIFNlPUouYWxsb2Moa2UtdmUubGVuZ3RoKTtpZih2ZT1KLmNvbmNhdChbU2UsdmVdLGtlKSw0PT09ZGUpcmV0dXJuIGZ1bmN0aW9uKEllLFRlKXt2YXIgTWU9SWUubW9kdWx1cy5ieXRlTGVu''@;'; put 'put ''Z3RoKCksaGU9dGUoInNoYTEiKS51cGRhdGUoSi5hbGxvYygwKSkuZGlnZXN0KCksTz1oZS5sZW5ndGg7aWYoMCE9PVRlWzBdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3ZhciB6PVRlLnNsaWNlKDEsTysxKSxlZT1UZS5zbGljZShPKzEpLG5lPVkoeixhZShlZSxPKSks''@;'; put 'put ''eD1ZKGVlLGFlKG5lLE1lLU8tMSkpO2lmKGZ1bmN0aW9uKFYsVCl7Vj1KLmZyb20oViksVD1KLmZyb20oVCk7dmFyIFM9MCxGPVYubGVuZ3RoO1YubGVuZ3RoIT09VC5sZW5ndGgmJihTKyssRj1NYXRoLm1pbihWLmxlbmd0aCxULmxlbmd0aCkpO2Zvcih2YXIgeWU9LTE7Kyt5ZTxGOylTKz1W''@;'; put 'put ''W3llXV5UW3llXTtyZXR1cm4gU30oaGUseC5zbGljZSgwLE8pKSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtmb3IodmFyIFA9TzswPT09eFtQXTspUCsrO2lmKDEhPT14W1ArK10pdGhyb3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7cmV0dXJuIHguc2xpY2Uo''@;'; put 'put ''UCl9KEFlLHZlKTtpZigxPT09ZGUpcmV0dXJuIGZ1bmN0aW9uKEllLFRlLE1lKXtmb3IodmFyIGhlPVRlLnNsaWNlKDAsMiksTz0yLHo9MDswIT09VGVbTysrXTspaWYoTz49VGUubGVuZ3RoKXt6Kys7YnJlYWt9dmFyIGVlPVRlLnNsaWNlKDIsTy0xKTtpZigoIjAwMDIiIT09aGUudG9TdHJp''@;'; put 'put ''bmcoImhleCIpJiYhTWV8fCIwMDAxIiE9PWhlLnRvU3RyaW5nKCJoZXgiKSYmTWUpJiZ6KyssZWUubGVuZ3RoPDgmJnorKyx6KXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3JldHVybiBUZS5zbGljZShPKX0oMCx2ZSxjZSk7aWYoMz09PWRlKXJldHVybiB2ZTt0aHJvdyBu''@;'; put 'put ''ZXcgRXJyb3IoInVua25vd24gcGFkZGluZyIpfX0sNjU1OTooVSxRLGopPT57dmFyIHJlPWooOTgwKSxhZT1qKDE3OTgpLFk9aigzNDgyKSxXPWooOTE5OSksTj1qKDc4NTkpLHRlPWooMjE0NCksSz1qKDQ4MTgpLEo9aigzNjYzKSxzZT1qKDk1MDkpLkJ1ZmZlcjtVLmV4cG9ydHM9ZnVuY3Rp''@;'; put 'put ''b24ob2UsY2UsZGUpe3ZhciB2ZTt2ZT1vZS5wYWRkaW5nP29lLnBhZGRpbmc6ZGU/MTo0O3ZhciBBZSxrZT1yZShvZSk7aWYoND09PXZlKUFlPWZ1bmN0aW9uKFNlLEllKXt2YXIgVGU9U2UubW9kdWx1cy5ieXRlTGVuZ3RoKCksTWU9SWUubGVuZ3RoLGhlPVkoInNoYTEiKS51cGRhdGUoc2Uu''@;'; put 'put ''YWxsb2MoMCkpLmRpZ2VzdCgpLE89aGUubGVuZ3RoLHo9MipPO2lmKE1lPlRlLXotMil0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTt2YXIgZWU9c2UuYWxsb2MoVGUtTWUtei0yKSxuZT1UZS1PLTEseD1hZShPKSxQPU4oc2UuY29uY2F0KFtoZSxlZSxzZS5hbGxvYygxLDEp''@;'; put 'put ''LEllXSxuZSksVyh4LG5lKSksVj1OKHgsVyhQLE8pKTtyZXR1cm4gbmV3IHRlKHNlLmNvbmNhdChbc2UuYWxsb2MoMSksVixQXSxUZSkpfShrZSxjZSk7ZWxzZSBpZigxPT09dmUpQWU9ZnVuY3Rpb24oU2UsSWUsVGUpe3ZhciBNZSxoZT1JZS5sZW5ndGgsTz1TZS5tb2R1bHVzLmJ5dGVMZW5n''@;'; put 'put ''dGgoKTtpZihoZT5PLTExKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO3JldHVybiBNZT1UZT9zZS5hbGxvYyhPLWhlLTMsMjU1KTpmdW5jdGlvbih6KXtmb3IodmFyIGVlLG5lPXNlLmFsbG9jVW5zYWZlKHopLHg9MCxQPWFlKDIqeiksVj0wO3g8ejspVj09PVAubGVuZ3Ro''@;'; put 'put ''JiYoUD1hZSgyKnopLFY9MCksKGVlPVBbVisrXSkmJihuZVt4KytdPWVlKTtyZXR1cm4gbmV9KE8taGUtMyksbmV3IHRlKHNlLmNvbmNhdChbc2UuZnJvbShbMCxUZT8xOjJdKSxNZSxzZS5hbGxvYygxKSxJZV0sTykpfShrZSxjZSxkZSk7ZWxzZXtpZigzIT09dmUpdGhyb3cgbmV3IEVycm9y''@;'; put 'put ''KCJ1bmtub3duIHBhZGRpbmciKTtpZigoQWU9bmV3IHRlKGNlKSkuY21wKGtlLm1vZHVsdXMpPj0wKXRocm93IG5ldyBFcnJvcigiZGF0YSB0b28gbG9uZyBmb3IgbW9kdWx1cyIpfXJldHVybiBkZT9KKEFlLGtlKTpLKEFlLGtlKX19LDQ4MTg6KFUsUSxqKT0+e3ZhciByZT1qKDIxNDQpLGFl''@;'; put 'put ''PWooOTUwOSkuQnVmZmVyO1UuZXhwb3J0cz1mdW5jdGlvbihZLFcpe3JldHVybiBhZS5mcm9tKFkudG9SZWQocmUubW9udChXLm1vZHVsdXMpKS5yZWRQb3cobmV3IHJlKFcucHVibGljRXhwb25lbnQpKS5mcm9tUmVkKCkudG9BcnJheSgpKX19LDc4NTk6VT0+e1UuZXhwb3J0cz1mdW5jdGlv''@;'; put 'put ''bihRLGope2Zvcih2YXIgcmU9US5sZW5ndGgsYWU9LTE7KythZTxyZTspUVthZV1ePWpbYWVdO3JldHVybiBRfX0sMzY4OTooVSxRLGopPT57InVzZSBzdHJpY3QiO2oucihRKSxqLmQoUSx7dWNzMmRlY29kZTooKT0+Y2UsdWNzMmVuY29kZTooKT0+ZGUsZGVjb2RlOigpPT5rZSxlbmNvZGU6''@;'; put 'put ''KCk9PlNlLHRvQVNDSUk6KCk9PlRlLHRvVW5pY29kZTooKT0+SWUsZGVmYXVsdDooKT0+TWV9KTtjb25zdCByZT0yMTQ3NDgzNjQ3LFk9L154bi0tLyxXPS9bXlwwLVx4N0VdLyxOPS9bXHgyRVx1MzAwMlx1RkYwRVx1RkY2MV0vZyx0ZT17b3ZlcmZsb3c6Ik92ZXJmbG93OiBpbnB1dCBuZWVk''@;'; put 'put ''cyB3aWRlciBpbnRlZ2VycyB0byBwcm9jZXNzIiwibm90LWJhc2ljIjoiSWxsZWdhbCBpbnB1dCA+PSAweDgwIChub3QgYSBiYXNpYyBjb2RlIHBvaW50KSIsImludmFsaWQtaW5wdXQiOiJJbnZhbGlkIGlucHV0In0sSz1NYXRoLmZsb29yLEo9U3RyaW5nLmZyb21DaGFyQ29kZTtmdW5jdGlv''@;'; put 'put ''biBzZShoZSl7dGhyb3cgbmV3IFJhbmdlRXJyb3IodGVbaGVdKX1mdW5jdGlvbiBvZShoZSxPKXtjb25zdCB6PWhlLnNwbGl0KCJAIik7bGV0IGVlPSIiO3JldHVybiB6Lmxlbmd0aD4xJiYoZWU9elswXSsiQCIsaGU9elsxXSksZWUrZnVuY3Rpb24oeCxQKXtjb25zdCBWPVtdO2xldCBUPXgu''@;'; put 'put ''bGVuZ3RoO2Zvcig7VC0tOylWW1RdPVAoeFtUXSk7cmV0dXJuIFZ9KChoZT1oZS5yZXBsYWNlKE4sIi4iKSkuc3BsaXQoIi4iKSxPKS5qb2luKCIuIil9ZnVuY3Rpb24gY2UoaGUpe2NvbnN0IE89W107bGV0IHo9MDtjb25zdCBlZT1oZS5sZW5ndGg7Zm9yKDt6PGVlOyl7Y29uc3QgbmU9aGUu''@;'; put 'put ''Y2hhckNvZGVBdCh6KyspO2lmKG5lPj01NTI5NiYmbmU8PTU2MzE5JiZ6PGVlKXtjb25zdCB4PWhlLmNoYXJDb2RlQXQoeisrKTs1NjMyMD09KDY0NTEyJngpP08ucHVzaCgoKDEwMjMmbmUpPDwxMCkrKDEwMjMmeCkrNjU1MzYpOihPLnB1c2gobmUpLHotLSl9ZWxzZSBPLnB1c2gobmUpfXJl''@;'; put 'put ''dHVybiBPfWNvbnN0IGRlPWhlPT5TdHJpbmcuZnJvbUNvZGVQb2ludCguLi5oZSksdmU9ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIGhlKzIyKzc1KihoZTwyNiktKCgwIT1PKTw8NSl9LEFlPWZ1bmN0aW9uKGhlLE8seil7bGV0IGVlPTA7Zm9yKGhlPXo/SyhoZS83MDApOmhlPj4xLGhlKz1LKGhl''@;'; put 'put ''L08pO2hlPjQ1NTtlZSs9MzYpaGU9SyhoZS8zNSk7cmV0dXJuIEsoZWUrMzYqaGUvKGhlKzM4KSl9LGtlPWZ1bmN0aW9uKGhlKXtjb25zdCBPPVtdLHo9aGUubGVuZ3RoO2xldCBlZT0wLG5lPTEyOCx4PTcyLFA9aGUubGFzdEluZGV4T2YoIi0iKTtQPDAmJihQPTApO2ZvcihsZXQgVD0wO1Q8''@;'; put 'put ''UDsrK1QpaGUuY2hhckNvZGVBdChUKT49MTI4JiZzZSgibm90LWJhc2ljIiksTy5wdXNoKGhlLmNoYXJDb2RlQXQoVCkpO2ZvcihsZXQgVD1QPjA/UCsxOjA7VDx6Oyl7bGV0IFM9ZWU7Zm9yKGxldCB5ZT0xLENlPTM2OztDZSs9MzYpe1Q+PXomJnNlKCJpbnZhbGlkLWlucHV0Iik7Y29uc3Qg''@;'; put 'put ''RGU9KFY9aGUuY2hhckNvZGVBdChUKyspKS00ODwxMD9WLTIyOlYtNjU8MjY/Vi02NTpWLTk3PDI2P1YtOTc6MzY7KERlPj0zNnx8RGU+SygocmUtZWUpL3llKSkmJnNlKCJvdmVyZmxvdyIpLGVlKz1EZSp5ZTtjb25zdCBQZT1DZTw9eD8xOkNlPj14KzI2PzI2OkNlLXg7aWYoRGU8UGUpYnJl''@;'; put 'put ''YWs7Y29uc3QgUWU9MzYtUGU7eWU+SyhyZS9RZSkmJnNlKCJvdmVyZmxvdyIpLHllKj1RZX1jb25zdCBGPU8ubGVuZ3RoKzE7eD1BZShlZS1TLEYsMD09UyksSyhlZS9GKT5yZS1uZSYmc2UoIm92ZXJmbG93IiksbmUrPUsoZWUvRiksZWUlPUYsTy5zcGxpY2UoZWUrKywwLG5lKX12YXIgVjty''@;'; put 'put ''ZXR1cm4gU3RyaW5nLmZyb21Db2RlUG9pbnQoLi4uTyl9LFNlPWZ1bmN0aW9uKGhlKXtjb25zdCBPPVtdO2xldCB6PShoZT1jZShoZSkpLmxlbmd0aCxlZT0xMjgsbmU9MCx4PTcyO2Zvcihjb25zdCBUIG9mIGhlKVQ8MTI4JiZPLnB1c2goSihUKSk7bGV0IFA9Ty5sZW5ndGgsVj1QO2ZvcihQ''@;'; put 'put ''JiZPLnB1c2goIi0iKTtWPHo7KXtsZXQgVD1yZTtmb3IoY29uc3QgRiBvZiBoZSlGPj1lZSYmRjxUJiYoVD1GKTtjb25zdCBTPVYrMTtULWVlPksoKHJlLW5lKS9TKSYmc2UoIm92ZXJmbG93IiksbmUrPShULWVlKSpTLGVlPVQ7Zm9yKGNvbnN0IEYgb2YgaGUpaWYoRjxlZSYmKytuZT5yZSYm''@;'; put 'put ''c2UoIm92ZXJmbG93IiksRj09ZWUpe2xldCB5ZT1uZTtmb3IobGV0IENlPTM2OztDZSs9MzYpe2NvbnN0IERlPUNlPD14PzE6Q2U+PXgrMjY/MjY6Q2UteDtpZih5ZTxEZSlicmVhaztjb25zdCBQZT15ZS1EZSxRZT0zNi1EZTtPLnB1c2goSih2ZShEZStQZSVRZSwwKSkpLHllPUsoUGUvUWUp''@;'; put 'put ''fU8ucHVzaChKKHZlKHllLDApKSkseD1BZShuZSxTLFY9PVApLG5lPTAsKytWfSsrbmUsKytlZX1yZXR1cm4gTy5qb2luKCIiKX0sSWU9ZnVuY3Rpb24oaGUpe3JldHVybiBvZShoZSxmdW5jdGlvbihPKXtyZXR1cm4gWS50ZXN0KE8pP2tlKE8uc2xpY2UoNCkudG9Mb3dlckNhc2UoKSk6T30p''@;'; put 'put ''fSxUZT1mdW5jdGlvbihoZSl7cmV0dXJuIG9lKGhlLGZ1bmN0aW9uKE8pe3JldHVybiBXLnRlc3QoTyk/InhuLS0iK1NlKE8pOk99KX0sTWU9e3ZlcnNpb246IjIuMS4wIix1Y3MyOntkZWNvZGU6Y2UsZW5jb2RlOmRlfSxkZWNvZGU6a2UsZW5jb2RlOlNlLHRvQVNDSUk6VGUsdG9Vbmljb2Rl''@;'; put 'put ''OkllfX0sMjU4NzpVPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFEoaixyZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChqLHJlKX1VLmV4cG9ydHM9ZnVuY3Rpb24oaixyZSxhZSxZKXthZT1hZXx8Ij0iO3ZhciBXPXt9O2lmKCJzdHJpbmciIT10eXBlb2Yg''@;'; put 'put ''anx8MD09PWoubGVuZ3RoKXJldHVybiBXO3ZhciBOPS9cKy9nO2o9ai5zcGxpdChyZT1yZXx8IiYiKTt2YXIgdGU9MWUzO1kmJiJudW1iZXIiPT10eXBlb2YgWS5tYXhLZXlzJiYodGU9WS5tYXhLZXlzKTt2YXIgSz1qLmxlbmd0aDt0ZT4wJiZLPnRlJiYoSz10ZSk7Zm9yKHZhciBKPTA7SjxL''@;'; put 'put ''OysrSil7dmFyIHNlLG9lLGNlLGRlLHZlPWpbSl0ucmVwbGFjZShOLCIlMjAiKSxBZT12ZS5pbmRleE9mKGFlKTtBZT49MD8oc2U9dmUuc3Vic3RyKDAsQWUpLG9lPXZlLnN1YnN0cihBZSsxKSk6KHNlPXZlLG9lPSIiKSxjZT1kZWNvZGVVUklDb21wb25lbnQoc2UpLGRlPWRlY29kZVVSSUNv''@;'; put 'put ''bXBvbmVudChvZSksUShXLGNlKT9BcnJheS5pc0FycmF5KFdbY2VdKT9XW2NlXS5wdXNoKGRlKTpXW2NlXT1bV1tjZV0sZGVdOldbY2VdPWRlfXJldHVybiBXfX0sMjE4MjpVPT57InVzZSBzdHJpY3QiO3ZhciBRPWZ1bmN0aW9uKGope3N3aXRjaCh0eXBlb2Ygail7Y2FzZSJzdHJpbmciOnJl''@;'; put 'put ''dHVybiBqO2Nhc2UiYm9vbGVhbiI6cmV0dXJuIGo/InRydWUiOiJmYWxzZSI7Y2FzZSJudW1iZXIiOnJldHVybiBpc0Zpbml0ZShqKT9qOiIiO2RlZmF1bHQ6cmV0dXJuIiJ9fTtVLmV4cG9ydHM9ZnVuY3Rpb24oaixyZSxhZSxZKXtyZXR1cm4gcmU9cmV8fCImIixhZT1hZXx8Ij0iLG51bGw9''@;'; put 'put ''PT1qJiYoaj12b2lkIDApLCJvYmplY3QiPT10eXBlb2Ygaj9PYmplY3Qua2V5cyhqKS5tYXAoZnVuY3Rpb24oVyl7dmFyIE49ZW5jb2RlVVJJQ29tcG9uZW50KFEoVykpK2FlO3JldHVybiBBcnJheS5pc0FycmF5KGpbV10pP2pbV10ubWFwKGZ1bmN0aW9uKHRlKXtyZXR1cm4gTitlbmNvZGVV''@;'; put 'put ''UklDb21wb25lbnQoUSh0ZSkpfSkuam9pbihyZSk6TitlbmNvZGVVUklDb21wb25lbnQoUShqW1ddKSl9KS5qb2luKHJlKTpZP2VuY29kZVVSSUNvbXBvbmVudChRKFkpKSthZStlbmNvZGVVUklDb21wb25lbnQoUShqKSk6IiJ9fSw3NjczOihVLFEsaik9PnsidXNlIHN0cmljdCI7US5kZWNv''@;'; put 'put ''ZGU9US5wYXJzZT1qKDI1ODcpLFEuZW5jb2RlPVEuc3RyaW5naWZ5PWooMjE4Mil9LDE3OTg6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KSxXPWooOTUwOSkuQnVmZmVyLE49ai5nLmNyeXB0b3x8ai5nLm1zQ3J5cHRvO1UuZXhwb3J0cz1OJiZOLmdldFJhbmRvbVZhbHVl''@;'; put 'put ''cz9mdW5jdGlvbih0ZSxLKXtpZih0ZT40Mjk0OTY3Mjk1KXRocm93IG5ldyBSYW5nZUVycm9yKCJyZXF1ZXN0ZWQgdG9vIG1hbnkgcmFuZG9tIGJ5dGVzIik7dmFyIEo9Vy5hbGxvY1Vuc2FmZSh0ZSk7aWYodGU+MClpZih0ZT42NTUzNilmb3IodmFyIHNlPTA7c2U8dGU7c2UrPTY1NTM2KU4u''@;'; put 'put ''Z2V0UmFuZG9tVmFsdWVzKEouc2xpY2Uoc2Usc2UrNjU1MzYpKTtlbHNlIE4uZ2V0UmFuZG9tVmFsdWVzKEopO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBLP3JlLm5leHRUaWNrKGZ1bmN0aW9uKCl7SyhudWxsLEopfSk6Sn06ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlNlY3VyZSBy''@;'; put 'put ''YW5kb20gbnVtYmVyIGdlbmVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXIuXG5Vc2UgQ2hyb21lLCBGaXJlZm94IG9yIEludGVybmV0IEV4cGxvcmVyIDExIil9fSw3OTYzOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSk7ZnVuY3Rpb24gYWUoKXt0''@;'; put 'put ''aHJvdyBuZXcgRXJyb3IoInNlY3VyZSByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24gbm90IHN1cHBvcnRlZCBieSB0aGlzIGJyb3dzZXJcbnVzZSBjaHJvbWUsIEZpcmVGb3ggb3IgSW50ZXJuZXQgRXhwbG9yZXIgMTEiKX12YXIgWT1qKDk1MDkpLFc9aigxNzk4KSxOPVkuQnVmZmVyLHRlPVku''@;'; put 'put ''a01heExlbmd0aCxLPWouZy5jcnlwdG98fGouZy5tc0NyeXB0byxKPU1hdGgucG93KDIsMzIpLTE7ZnVuY3Rpb24gc2UoZGUsdmUpe2lmKCJudW1iZXIiIT10eXBlb2YgZGV8fGRlIT1kZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIG51bWJlciIpO2lmKGRlPkp8fGRl''@;'; put 'put ''PDApdGhyb3cgbmV3IFR5cGVFcnJvcigib2Zmc2V0IG11c3QgYmUgYSB1aW50MzIiKTtpZihkZT50ZXx8ZGU+dmUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIm9mZnNldCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBvZShkZSx2ZSxBZSl7aWYoIm51bWJlciIhPXR5cGVvZiBkZXx8ZGUhPWRlKXRo''@;'; put 'put ''cm93IG5ldyBUeXBlRXJyb3IoInNpemUgbXVzdCBiZSBhIG51bWJlciIpO2lmKGRlPkp8fGRlPDApdGhyb3cgbmV3IFR5cGVFcnJvcigic2l6ZSBtdXN0IGJlIGEgdWludDMyIik7aWYoZGUrdmU+QWV8fGRlPnRlKXRocm93IG5ldyBSYW5nZUVycm9yKCJidWZmZXIgdG9vIHNtYWxsIil9ZnVu''@;'; put 'put ''Y3Rpb24gY2UoZGUsdmUsQWUsa2Upe2lmKHJlLmJyb3dzZXIpe3ZhciBJZT1uZXcgVWludDhBcnJheShkZS5idWZmZXIsdmUsQWUpO3JldHVybiBLLmdldFJhbmRvbVZhbHVlcyhJZSksa2U/dm9pZCByZS5uZXh0VGljayhmdW5jdGlvbigpe2tlKG51bGwsZGUpfSk6ZGV9aWYoIWtlKXJldHVy''@;'; put 'put ''biBXKEFlKS5jb3B5KGRlLHZlKSxkZTtXKEFlLGZ1bmN0aW9uKFRlLE1lKXtpZihUZSlyZXR1cm4ga2UoVGUpO01lLmNvcHkoZGUsdmUpLGtlKG51bGwsZGUpfSl9SyYmSy5nZXRSYW5kb21WYWx1ZXN8fCFyZS5icm93c2VyPyhRLnJhbmRvbUZpbGw9ZnVuY3Rpb24oZGUsdmUsQWUsa2Upe2lm''@;'; put 'put ''KCEoTi5pc0J1ZmZlcihkZSl8fGRlIGluc3RhbmNlb2Ygai5nLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWYiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB2ZSlrZT12ZSx2ZT0wLEFlPWRlLmxlbmd0''@;'; put 'put ''aDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBBZSlrZT1BZSxBZT1kZS5sZW5ndGgtdmU7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2Yga2UpdGhyb3cgbmV3IFR5cGVFcnJvcignImNiIiBhcmd1bWVudCBtdXN0IGJlIGEgZnVuY3Rpb24nKTtyZXR1cm4gc2UodmUsZGUubGVuZ3RoKSxv''@;'; put 'put ''ZShBZSx2ZSxkZS5sZW5ndGgpLGNlKGRlLHZlLEFlLGtlKX0sUS5yYW5kb21GaWxsU3luYz1mdW5jdGlvbihkZSx2ZSxBZSl7aWYodm9pZCAwPT09dmUmJih2ZT0wKSwhKE4uaXNCdWZmZXIoZGUpfHxkZSBpbnN0YW5jZW9mIGouZy5VaW50OEFycmF5KSl0aHJvdyBuZXcgVHlwZUVycm9yKCci''@;'; put 'put ''YnVmIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtyZXR1cm4gc2UodmUsZGUubGVuZ3RoKSx2b2lkIDA9PT1BZSYmKEFlPWRlLmxlbmd0aC12ZSksb2UoQWUsdmUsZGUubGVuZ3RoKSxjZShkZSx2ZSxBZSl9KTooUS5yYW5kb21GaWxsPWFlLFEucmFuZG9tRmls''@;'; put 'put ''bFN5bmM9YWUpfSw0MjgxOlU9PnsidXNlIHN0cmljdCI7dmFyIFE9e307ZnVuY3Rpb24gaihhZSxZLFcpe1d8fChXPUVycm9yKTt2YXIgTj1mdW5jdGlvbih0ZSl7dmFyIEssSjtmdW5jdGlvbiBzZShvZSxjZSxkZSl7cmV0dXJuIHRlLmNhbGwodGhpcywic3RyaW5nIj09dHlwZW9mIFk/WTpZ''@;'; put 'put ''KG9lLGNlLGRlKSl8fHRoaXN9cmV0dXJuIEo9dGUsKEs9c2UpLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEoucHJvdG90eXBlKSxLLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1LLEsuX19wcm90b19fPUosc2V9KFcpO04ucHJvdG90eXBlLm5hbWU9Vy5uYW1lLE4ucHJvdG90eXBlLmNvZGU9YWUs''@;'; put 'put ''UVthZV09Tn1mdW5jdGlvbiByZShhZSxZKXtpZihBcnJheS5pc0FycmF5KGFlKSl7dmFyIFc9YWUubGVuZ3RoO3JldHVybiBhZT1hZS5tYXAoZnVuY3Rpb24oTil7cmV0dXJuIFN0cmluZyhOKX0pLFc+Mj8ib25lIG9mICIuY29uY2F0KFksIiAiKS5jb25jYXQoYWUuc2xpY2UoMCxXLTEpLmpv''@;'; put 'put ''aW4oIiwgIiksIiwgb3IgIikrYWVbVy0xXToyPT09Vz8ib25lIG9mICIuY29uY2F0KFksIiAiKS5jb25jYXQoYWVbMF0sIiBvciAiKS5jb25jYXQoYWVbMV0pOiJvZiAiLmNvbmNhdChZLCIgIikuY29uY2F0KGFlWzBdKX1yZXR1cm4ib2YgIi5jb25jYXQoWSwiICIpLmNvbmNhdChTdHJpbmco''@;'; put 'put ''YWUpKX1qKCJFUlJfSU5WQUxJRF9PUFRfVkFMVUUiLGZ1bmN0aW9uKGFlLFkpe3JldHVybidUaGUgdmFsdWUgIicrWSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gIicrYWUrJyInfSxUeXBlRXJyb3IpLGooIkVSUl9JTlZBTElEX0FSR19UWVBFIixmdW5jdGlvbihhZSxZLFcpe3ZhciBOLEos''@;'; put 'put ''b2UsZGU7aWYoInN0cmluZyI9PXR5cGVvZiBZJiYibm90ICI9PT1ZLnN1YnN0cigwLCJub3QgIi5sZW5ndGgpPyhOPSJtdXN0IG5vdCBiZSIsWT1ZLnJlcGxhY2UoL15ub3QgLywiIikpOk49Im11c3QgYmUiLG9lPWFlLCh2b2lkIDA9PT1kZXx8ZGU+b2UubGVuZ3RoKSYmKGRlPW9lLmxlbmd0''@;'; put 'put ''aCksIiBhcmd1bWVudCI9PT1vZS5zdWJzdHJpbmcoZGUtIiBhcmd1bWVudCIubGVuZ3RoLGRlKSlKPSJUaGUgIi5jb25jYXQoYWUsIiAiKS5jb25jYXQoTiwiICIpLmNvbmNhdChyZShZLCJ0eXBlIikpO2Vsc2V7dmFyIHNlPWZ1bmN0aW9uKG9lLGNlLGRlKXtyZXR1cm4ibnVtYmVyIiE9dHlw''@;'; put 'put ''ZW9mIGRlJiYoZGU9MCksIShkZSsiLiIubGVuZ3RoPm9lLmxlbmd0aCkmJi0xIT09b2UuaW5kZXhPZigiLiIsZGUpfShhZSk/InByb3BlcnR5IjoiYXJndW1lbnQiO0o9J1RoZSAiJy5jb25jYXQoYWUsJyIgJykuY29uY2F0KHNlLCIgIikuY29uY2F0KE4sIiAiKS5jb25jYXQocmUoWSwidHlw''@;'; put 'put ''ZSIpKX1yZXR1cm4gSisiLiBSZWNlaXZlZCB0eXBlICIuY29uY2F0KHR5cGVvZiBXKX0sVHlwZUVycm9yKSxqKCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSxqKCJFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCIsZnVuY3Rpb24oYWUpe3Jl''@;'; put 'put ''dHVybiJUaGUgIithZSsiIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQifSksaigiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiLCJQcmVtYXR1cmUgY2xvc2UiKSxqKCJFUlJfU1RSRUFNX0RFU1RST1lFRCIsZnVuY3Rpb24oYWUpe3JldHVybiJDYW5ub3QgY2FsbCAiK2FlKyIgYWZ0ZXIg''@;'; put 'put ''YSBzdHJlYW0gd2FzIGRlc3Ryb3llZCJ9KSxqKCJFUlJfTVVMVElQTEVfQ0FMTEJBQ0siLCJDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSxqKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpLGooIkVSUl9TVFJFQU1fV1JJVEVfQUZU''@;'; put 'put ''RVJfRU5EIiwid3JpdGUgYWZ0ZXIgZW5kIiksaigiRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyIsIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIixUeXBlRXJyb3IpLGooIkVSUl9VTktOT1dOX0VOQ09ESU5HIixmdW5jdGlvbihhZSl7cmV0dXJuIlVua25vd24gZW5jb2Rpbmc6''@;'; put 'put ''ICIrYWV9LFR5cGVFcnJvciksaigiRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVCIsInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50IiksVS5leHBvcnRzLnE9UX0sNjc1MzooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZT1qKDQxNTUpLGFlPU9iamVjdC5rZXlz''@;'; put 'put ''fHxmdW5jdGlvbihjZSl7dmFyIGRlPVtdO2Zvcih2YXIgdmUgaW4gY2UpZGUucHVzaCh2ZSk7cmV0dXJuIGRlfTtVLmV4cG9ydHM9Sjt2YXIgWT1qKDk0ODEpLFc9aig0MjI5KTtqKDU3MTcpKEosWSk7Zm9yKHZhciBOPWFlKFcucHJvdG90eXBlKSx0ZT0wO3RlPE4ubGVuZ3RoO3RlKyspe3Zh''@;'; put 'put ''ciBLPU5bdGVdO0oucHJvdG90eXBlW0tdfHwoSi5wcm90b3R5cGVbS109Vy5wcm90b3R5cGVbS10pfWZ1bmN0aW9uIEooY2Upe2lmKCEodGhpcyBpbnN0YW5jZW9mIEopKXJldHVybiBuZXcgSihjZSk7WS5jYWxsKHRoaXMsY2UpLFcuY2FsbCh0aGlzLGNlKSx0aGlzLmFsbG93SGFsZk9wZW49''@;'; put 'put ''ITAsY2UmJighMT09PWNlLnJlYWRhYmxlJiYodGhpcy5yZWFkYWJsZT0hMSksITE9PT1jZS53cml0YWJsZSYmKHRoaXMud3JpdGFibGU9ITEpLCExPT09Y2UuYWxsb3dIYWxmT3BlbiYmKHRoaXMuYWxsb3dIYWxmT3Blbj0hMSx0aGlzLm9uY2UoImVuZCIsc2UpKSl9ZnVuY3Rpb24gc2UoKXt0''@;'; put 'put ''aGlzLl93cml0YWJsZVN0YXRlLmVuZGVkfHxyZS5uZXh0VGljayhvZSx0aGlzKX1mdW5jdGlvbiBvZShjZSl7Y2UuZW5kKCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KEoucHJvdG90eXBlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biB0aGlzLl93cml0YWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEoucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3Rh''@;'; put 'put ''dGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEoucHJvdG90eXBlLCJ3cml0YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShKLnByb3Rv''@;'; put 'put ''dHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fcmVhZGFibGVTdGF0ZSYmdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQmJnRoaXMuX3dyaXRhYmxlU3RhdGUu''@;'; put 'put ''ZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24oY2Upe3ZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1jZSx0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD1jZSl9fSl9LDI3MjU6''@;'; put 'put ''KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9YWU7dmFyIHJlPWooNDYwNSk7ZnVuY3Rpb24gYWUoWSl7aWYoISh0aGlzIGluc3RhbmNlb2YgYWUpKXJldHVybiBuZXcgYWUoWSk7cmUuY2FsbCh0aGlzLFkpfWooNTcxNykoYWUscmUpLGFlLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1''@;'; put 'put ''bmN0aW9uKFksVyxOKXtOKG51bGwsWSl9fSw5NDgxOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlLGFlPWooNDE1NSk7VS5leHBvcnRzPWVlLGVlLlJlYWRhYmxlU3RhdGU9eixqKDcxODcpO3ZhciBLLFk9ZnVuY3Rpb24odnQsQXQpe3JldHVybiB2dC5saXN0ZW5lcnMoQXQpLmxlbmd0''@;'; put 'put ''aH0sVz1qKDI1MDMpLE49aig4NzY0KS5CdWZmZXIsdGU9ai5nLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxKPWooNDYxNik7Sz1KJiZKLmRlYnVnbG9nP0ouZGVidWdsb2coInN0cmVhbSIpOmZ1bmN0aW9uKCl7fTt2YXIgc2Usb2UsY2UsZGU9aig3MzI3KSx2ZT1qKDExOTUpLEFlPWooMjQ1''@;'; put 'put ''NykuZ2V0SGlnaFdhdGVyTWFyayxrZT1qKDQyODEpLnEsU2U9a2UuRVJSX0lOVkFMSURfQVJHX1RZUEUsSWU9a2UuRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRixUZT1rZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxNZT1rZS5FUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5U''@;'; put 'put ''O2ooNTcxNykoZWUsVyk7dmFyIGhlPXZlLmVycm9yT3JEZXN0cm95LE89WyJlcnJvciIsImNsb3NlIiwiZGVzdHJveSIsInBhdXNlIiwicmVzdW1lIl07ZnVuY3Rpb24geih2dCxBdCxodCl7cmU9cmV8fGooNjc1MyksImJvb2xlYW4iIT10eXBlb2YgaHQmJihodD1BdCBpbnN0YW5jZW9mIHJl''@;'; put 'put ''KSx0aGlzLm9iamVjdE1vZGU9ISEodnQ9dnR8fHt9KS5vYmplY3RNb2RlLGh0JiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISF2dC5yZWFkYWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz1BZSh0aGlzLHZ0LCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLGh0KSx0''@;'; put 'put ''aGlzLmJ1ZmZlcj1uZXcgZGUsdGhpcy5sZW5ndGg9MCx0aGlzLnBpcGVzPW51bGwsdGhpcy5waXBlc0NvdW50PTAsdGhpcy5mbG93aW5nPW51bGwsdGhpcy5lbmRlZD0hMSx0aGlzLmVuZEVtaXR0ZWQ9ITEsdGhpcy5yZWFkaW5nPSExLHRoaXMuc3luYz0hMCx0aGlzLm5lZWRSZWFkYWJsZT0h''@;'; put 'put ''MSx0aGlzLmVtaXR0ZWRSZWFkYWJsZT0hMSx0aGlzLnJlYWRhYmxlTGlzdGVuaW5nPSExLHRoaXMucmVzdW1lU2NoZWR1bGVkPSExLHRoaXMucGF1c2VkPSEwLHRoaXMuZW1pdENsb3NlPSExIT09dnQuZW1pdENsb3NlLHRoaXMuYXV0b0Rlc3Ryb3k9ISF2dC5hdXRvRGVzdHJveSx0aGlzLmRl''@;'; put 'put ''c3Ryb3llZD0hMSx0aGlzLmRlZmF1bHRFbmNvZGluZz12dC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmF3YWl0RHJhaW49MCx0aGlzLnJlYWRpbmdNb3JlPSExLHRoaXMuZGVjb2Rlcj1udWxsLHRoaXMuZW5jb2Rpbmc9bnVsbCx2dC5lbmNvZGluZyYmKHNlfHwoc2U9aigyNTUzKS5T''@;'; put 'put ''dHJpbmdEZWNvZGVyKSx0aGlzLmRlY29kZXI9bmV3IHNlKHZ0LmVuY29kaW5nKSx0aGlzLmVuY29kaW5nPXZ0LmVuY29kaW5nKX1mdW5jdGlvbiBlZSh2dCl7aWYocmU9cmV8fGooNjc1MyksISh0aGlzIGluc3RhbmNlb2YgZWUpKXJldHVybiBuZXcgZWUodnQpO3RoaXMuX3JlYWRhYmxlU3Rh''@;'; put 'put ''dGU9bmV3IHoodnQsdGhpcyx0aGlzIGluc3RhbmNlb2YgcmUpLHRoaXMucmVhZGFibGU9ITAsdnQmJigiZnVuY3Rpb24iPT10eXBlb2YgdnQucmVhZCYmKHRoaXMuX3JlYWQ9dnQucmVhZCksImZ1bmN0aW9uIj09dHlwZW9mIHZ0LmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PXZ0LmRlc3Ryb3kp''@;'; put 'put ''KSxXLmNhbGwodGhpcyl9ZnVuY3Rpb24gbmUodnQsQXQsaHQsQnQsb24pe0soInJlYWRhYmxlQWRkQ2h1bmsiLEF0KTt2YXIgX3QsZXQsbHQsTHQsQ3QsdHQ9dnQuX3JlYWRhYmxlU3RhdGU7aWYobnVsbD09PUF0KXR0LnJlYWRpbmc9ITEsZnVuY3Rpb24oZXQsbHQpe2lmKEsoIm9uRW9mQ2h1''@;'; put 'put ''bmsiKSwhbHQuZW5kZWQpe2lmKGx0LmRlY29kZXIpe3ZhciBMdD1sdC5kZWNvZGVyLmVuZCgpO0x0JiZMdC5sZW5ndGgmJihsdC5idWZmZXIucHVzaChMdCksbHQubGVuZ3RoKz1sdC5vYmplY3RNb2RlPzE6THQubGVuZ3RoKX1sdC5lbmRlZD0hMCxsdC5zeW5jP1QoZXQpOihsdC5uZWVkUmVh''@;'; put 'put ''ZGFibGU9ITEsbHQuZW1pdHRlZFJlYWRhYmxlfHwobHQuZW1pdHRlZFJlYWRhYmxlPSEwLFMoZXQpKSl9fSh2dCx0dCk7ZWxzZSBpZihvbnx8KGV0PXR0LE4uaXNCdWZmZXIoQ3Q9bHQ9QXQpfHxDdCBpbnN0YW5jZW9mIHRlfHwic3RyaW5nIj09dHlwZW9mIGx0fHx2b2lkIDA9PT1sdHx8ZXQu''@;'; put 'put ''b2JqZWN0TW9kZXx8KEx0PW5ldyBTZSgiY2h1bmsiLFsic3RyaW5nIiwiQnVmZmVyIiwiVWludDhBcnJheSJdLGx0KSksX3Q9THQpLF90KWhlKHZ0LF90KTtlbHNlIGlmKHR0Lm9iamVjdE1vZGV8fEF0JiZBdC5sZW5ndGg+MClpZigic3RyaW5nIj09dHlwZW9mIEF0fHx0dC5vYmplY3RNb2Rl''@;'; put 'put ''fHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQXQpPT09Ti5wcm90b3R5cGV8fChBdD1mdW5jdGlvbihldCl7cmV0dXJuIE4uZnJvbShldCl9KEF0KSksQnQpdHQuZW5kRW1pdHRlZD9oZSh2dCxuZXcgTWUpOngodnQsdHQsQXQsITApO2Vsc2UgaWYodHQuZW5kZWQpaGUodnQsbmV3IEllKTtlbHNl''@;'; put 'put ''e2lmKHR0LmRlc3Ryb3llZClyZXR1cm4hMTt0dC5yZWFkaW5nPSExLHR0LmRlY29kZXImJiFodD8oQXQ9dHQuZGVjb2Rlci53cml0ZShBdCksdHQub2JqZWN0TW9kZXx8MCE9PUF0Lmxlbmd0aD94KHZ0LHR0LEF0LCExKTpGKHZ0LHR0KSk6eCh2dCx0dCxBdCwhMSl9ZWxzZSBCdHx8KHR0LnJl''@;'; put 'put ''YWRpbmc9ITEsRih2dCx0dCkpO3JldHVybiF0dC5lbmRlZCYmKHR0Lmxlbmd0aDx0dC5oaWdoV2F0ZXJNYXJrfHwwPT09dHQubGVuZ3RoKX1mdW5jdGlvbiB4KHZ0LEF0LGh0LEJ0KXtBdC5mbG93aW5nJiYwPT09QXQubGVuZ3RoJiYhQXQuc3luYz8oQXQuYXdhaXREcmFpbj0wLHZ0LmVtaXQo''@;'; put 'put ''ImRhdGEiLGh0KSk6KEF0Lmxlbmd0aCs9QXQub2JqZWN0TW9kZT8xOmh0Lmxlbmd0aCxCdD9BdC5idWZmZXIudW5zaGlmdChodCk6QXQuYnVmZmVyLnB1c2goaHQpLEF0Lm5lZWRSZWFkYWJsZSYmVCh2dCkpLEYodnQsQXQpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShlZS5wcm90b3R5cGUsImRl''@;'; put 'put ''c3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24odnQpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRl''@;'; put 'put ''LmRlc3Ryb3llZD12dCl9fSksZWUucHJvdG90eXBlLmRlc3Ryb3k9dmUuZGVzdHJveSxlZS5wcm90b3R5cGUuX3VuZGVzdHJveT12ZS51bmRlc3Ryb3ksZWUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHZ0LEF0KXtBdCh2dCl9LGVlLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHZ0LEF0''@;'; put 'put ''KXt2YXIgaHQsQnQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gQnQub2JqZWN0TW9kZT9odD0hMDoic3RyaW5nIj09dHlwZW9mIHZ0JiYoKEF0PUF0fHxCdC5kZWZhdWx0RW5jb2RpbmcpIT09QnQuZW5jb2RpbmcmJih2dD1OLmZyb20odnQsQXQpLEF0PSIiKSxodD0hMCksbmUodGhpcyx2''@;'; put 'put ''dCxBdCwhMSxodCl9LGVlLnByb3RvdHlwZS51bnNoaWZ0PWZ1bmN0aW9uKHZ0KXtyZXR1cm4gbmUodGhpcyx2dCxudWxsLCEwLCExKX0sZWUucHJvdG90eXBlLmlzUGF1c2VkPWZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LGVlLnByb3RvdHlwZS5z''@;'; put 'put ''ZXRFbmNvZGluZz1mdW5jdGlvbih2dCl7c2V8fChzZT1qKDI1NTMpLlN0cmluZ0RlY29kZXIpO3ZhciBBdD1uZXcgc2UodnQpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1BdCx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuY29kaW5nPXRoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlci5lbmNv''@;'; put 'put ''ZGluZztmb3IodmFyIGh0PXRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLmhlYWQsQnQ9IiI7bnVsbCE9PWh0OylCdCs9QXQud3JpdGUoaHQuZGF0YSksaHQ9aHQubmV4dDtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuY2xlYXIoKSwiIiE9PUJ0JiZ0aGlzLl9yZWFkYWJsZVN0''@;'; put 'put ''YXRlLmJ1ZmZlci5wdXNoKEJ0KSx0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aD1CdC5sZW5ndGgsdGhpc307dmFyIFA9MTA3Mzc0MTgyNDtmdW5jdGlvbiBWKHZ0LEF0KXtyZXR1cm4gdnQ8PTB8fDA9PT1BdC5sZW5ndGgmJkF0LmVuZGVkPzA6QXQub2JqZWN0TW9kZT8xOnZ0IT12dD9BdC5m''@;'; put 'put ''bG93aW5nJiZBdC5sZW5ndGg/QXQuYnVmZmVyLmhlYWQuZGF0YS5sZW5ndGg6QXQubGVuZ3RoOih2dD5BdC5oaWdoV2F0ZXJNYXJrJiYoQXQuaGlnaFdhdGVyTWFyaz0oKGh0PXZ0KT49UD9odD1QOihodC0tLGh0fD1odD4+PjEsaHR8PWh0Pj4+MixodHw9aHQ+Pj40LGh0fD1odD4+PjgsaHR8''@;'; put 'put ''PWh0Pj4+MTYsaHQrKyksaHQpKSx2dDw9QXQubGVuZ3RoP3Z0OkF0LmVuZGVkP0F0Lmxlbmd0aDooQXQubmVlZFJlYWRhYmxlPSEwLDApKTt2YXIgaHR9ZnVuY3Rpb24gVCh2dCl7dmFyIEF0PXZ0Ll9yZWFkYWJsZVN0YXRlO0soImVtaXRSZWFkYWJsZSIsQXQubmVlZFJlYWRhYmxlLEF0LmVt''@;'; put 'put ''aXR0ZWRSZWFkYWJsZSksQXQubmVlZFJlYWRhYmxlPSExLEF0LmVtaXR0ZWRSZWFkYWJsZXx8KEsoImVtaXRSZWFkYWJsZSIsQXQuZmxvd2luZyksQXQuZW1pdHRlZFJlYWRhYmxlPSEwLGFlLm5leHRUaWNrKFMsdnQpKX1mdW5jdGlvbiBTKHZ0KXt2YXIgQXQ9dnQuX3JlYWRhYmxlU3RhdGU7''@;'; put 'put ''SygiZW1pdFJlYWRhYmxlXyIsQXQuZGVzdHJveWVkLEF0Lmxlbmd0aCxBdC5lbmRlZCksQXQuZGVzdHJveWVkfHwhQXQubGVuZ3RoJiYhQXQuZW5kZWR8fCh2dC5lbWl0KCJyZWFkYWJsZSIpLEF0LmVtaXR0ZWRSZWFkYWJsZT0hMSksQXQubmVlZFJlYWRhYmxlPSFBdC5mbG93aW5nJiYhQXQu''@;'; put 'put ''ZW5kZWQmJkF0Lmxlbmd0aDw9QXQuaGlnaFdhdGVyTWFyayxRZSh2dCl9ZnVuY3Rpb24gRih2dCxBdCl7QXQucmVhZGluZ01vcmV8fChBdC5yZWFkaW5nTW9yZT0hMCxhZS5uZXh0VGljayh5ZSx2dCxBdCkpfWZ1bmN0aW9uIHllKHZ0LEF0KXtmb3IoOyFBdC5yZWFkaW5nJiYhQXQuZW5kZWQm''@;'; put 'put ''JihBdC5sZW5ndGg8QXQuaGlnaFdhdGVyTWFya3x8QXQuZmxvd2luZyYmMD09PUF0Lmxlbmd0aCk7KXt2YXIgaHQ9QXQubGVuZ3RoO2lmKEsoIm1heWJlUmVhZE1vcmUgcmVhZCAwIiksdnQucmVhZCgwKSxodD09PUF0Lmxlbmd0aClicmVha31BdC5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiBD''@;'; put 'put ''ZSh2dCl7dmFyIEF0PXZ0Ll9yZWFkYWJsZVN0YXRlO0F0LnJlYWRhYmxlTGlzdGVuaW5nPXZ0Lmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCxBdC5yZXN1bWVTY2hlZHVsZWQmJiFBdC5wYXVzZWQ/QXQuZmxvd2luZz0hMDp2dC5saXN0ZW5lckNvdW50KCJkYXRhIik+MCYmdnQucmVzdW1l''@;'; put 'put ''KCl9ZnVuY3Rpb24gRGUodnQpe0soInJlYWRhYmxlIG5leHR0aWNrIHJlYWQgMCIpLHZ0LnJlYWQoMCl9ZnVuY3Rpb24gUGUodnQsQXQpe0soInJlc3VtZSIsQXQucmVhZGluZyksQXQucmVhZGluZ3x8dnQucmVhZCgwKSxBdC5yZXN1bWVTY2hlZHVsZWQ9ITEsdnQuZW1pdCgicmVzdW1lIiks''@;'; put 'put ''UWUodnQpLEF0LmZsb3dpbmcmJiFBdC5yZWFkaW5nJiZ2dC5yZWFkKDApfWZ1bmN0aW9uIFFlKHZ0KXt2YXIgQXQ9dnQuX3JlYWRhYmxlU3RhdGU7Zm9yKEsoImZsb3ciLEF0LmZsb3dpbmcpO0F0LmZsb3dpbmcmJm51bGwhPT12dC5yZWFkKCk7KTt9ZnVuY3Rpb24gJGUodnQsQXQpe3JldHVy''@;'; put 'put ''biAwPT09QXQubGVuZ3RoP251bGw6KEF0Lm9iamVjdE1vZGU/aHQ9QXQuYnVmZmVyLnNoaWZ0KCk6IXZ0fHx2dD49QXQubGVuZ3RoPyhodD1BdC5kZWNvZGVyP0F0LmJ1ZmZlci5qb2luKCIiKToxPT09QXQuYnVmZmVyLmxlbmd0aD9BdC5idWZmZXIuZmlyc3QoKTpBdC5idWZmZXIuY29uY2F0''@;'; put 'put ''KEF0Lmxlbmd0aCksQXQuYnVmZmVyLmNsZWFyKCkpOmh0PUF0LmJ1ZmZlci5jb25zdW1lKHZ0LEF0LmRlY29kZXIpLGh0KTt2YXIgaHR9ZnVuY3Rpb24gZ3QodnQpe3ZhciBBdD12dC5fcmVhZGFibGVTdGF0ZTtLKCJlbmRSZWFkYWJsZSIsQXQuZW5kRW1pdHRlZCksQXQuZW5kRW1pdHRlZHx8''@;'; put 'put ''KEF0LmVuZGVkPSEwLGFlLm5leHRUaWNrKHd0LEF0LHZ0KSl9ZnVuY3Rpb24gd3QodnQsQXQpe2lmKEsoImVuZFJlYWRhYmxlTlQiLHZ0LmVuZEVtaXR0ZWQsdnQubGVuZ3RoKSwhdnQuZW5kRW1pdHRlZCYmMD09PXZ0Lmxlbmd0aCYmKHZ0LmVuZEVtaXR0ZWQ9ITAsQXQucmVhZGFibGU9ITEs''@;'; put 'put ''QXQuZW1pdCgiZW5kIiksdnQuYXV0b0Rlc3Ryb3kpKXt2YXIgaHQ9QXQuX3dyaXRhYmxlU3RhdGU7KCFodHx8aHQuYXV0b0Rlc3Ryb3kmJmh0LmZpbmlzaGVkKSYmQXQuZGVzdHJveSgpfX1mdW5jdGlvbiBtdCh2dCxBdCl7Zm9yKHZhciBodD0wLEJ0PXZ0Lmxlbmd0aDtodDxCdDtodCsrKWlm''@;'; put 'put ''KHZ0W2h0XT09PUF0KXJldHVybiBodDtyZXR1cm4tMX1lZS5wcm90b3R5cGUucmVhZD1mdW5jdGlvbih2dCl7SygicmVhZCIsdnQpLHZ0PXBhcnNlSW50KHZ0LDEwKTt2YXIgQXQ9dGhpcy5fcmVhZGFibGVTdGF0ZSxodD12dDtpZigwIT09dnQmJihBdC5lbWl0dGVkUmVhZGFibGU9ITEpLDA9''@;'; put 'put ''PT12dCYmQXQubmVlZFJlYWRhYmxlJiYoKDAhPT1BdC5oaWdoV2F0ZXJNYXJrP0F0Lmxlbmd0aD49QXQuaGlnaFdhdGVyTWFyazpBdC5sZW5ndGg+MCl8fEF0LmVuZGVkKSlyZXR1cm4gSygicmVhZDogZW1pdFJlYWRhYmxlIixBdC5sZW5ndGgsQXQuZW5kZWQpLDA9PT1BdC5sZW5ndGgmJkF0''@;'; put 'put ''LmVuZGVkP2d0KHRoaXMpOlQodGhpcyksbnVsbDtpZigwPT09KHZ0PVYodnQsQXQpKSYmQXQuZW5kZWQpcmV0dXJuIDA9PT1BdC5sZW5ndGgmJmd0KHRoaXMpLG51bGw7dmFyIEJ0LG9uPUF0Lm5lZWRSZWFkYWJsZTtyZXR1cm4gSygibmVlZCByZWFkYWJsZSIsb24pLCgwPT09QXQubGVuZ3Ro''@;'; put 'put ''fHxBdC5sZW5ndGgtdnQ8QXQuaGlnaFdhdGVyTWFyaykmJksoImxlbmd0aCBsZXNzIHRoYW4gd2F0ZXJtYXJrIixvbj0hMCksQXQuZW5kZWR8fEF0LnJlYWRpbmc/SygicmVhZGluZyBvciBlbmRlZCIsb249ITEpOm9uJiYoSygiZG8gcmVhZCIpLEF0LnJlYWRpbmc9ITAsQXQuc3luYz0hMCww''@;'; put 'put ''PT09QXQubGVuZ3RoJiYoQXQubmVlZFJlYWRhYmxlPSEwKSx0aGlzLl9yZWFkKEF0LmhpZ2hXYXRlck1hcmspLEF0LnN5bmM9ITEsQXQucmVhZGluZ3x8KHZ0PVYoaHQsQXQpKSksbnVsbD09PShCdD12dD4wPyRlKHZ0LEF0KTpudWxsKT8oQXQubmVlZFJlYWRhYmxlPUF0Lmxlbmd0aDw9QXQu''@;'; put 'put ''aGlnaFdhdGVyTWFyayx2dD0wKTooQXQubGVuZ3RoLT12dCxBdC5hd2FpdERyYWluPTApLDA9PT1BdC5sZW5ndGgmJihBdC5lbmRlZHx8KEF0Lm5lZWRSZWFkYWJsZT0hMCksaHQhPT12dCYmQXQuZW5kZWQmJmd0KHRoaXMpKSxudWxsIT09QnQmJnRoaXMuZW1pdCgiZGF0YSIsQnQpLEJ0fSxl''@;'; put 'put ''ZS5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24odnQpe2hlKHRoaXMsbmV3IFRlKCJfcmVhZCgpIikpfSxlZS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbih2dCxBdCl7dmFyIGh0PXRoaXMsQnQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtzd2l0Y2goQnQucGlwZXNDb3VudCl7Y2FzZSAwOkJ0LnBpcGVz''@;'; put 'put ''PXZ0O2JyZWFrO2Nhc2UgMTpCdC5waXBlcz1bQnQucGlwZXMsdnRdO2JyZWFrO2RlZmF1bHQ6QnQucGlwZXMucHVzaCh2dCl9QnQucGlwZXNDb3VudCs9MSxLKCJwaXBlIGNvdW50PSVkIG9wdHM9JWoiLEJ0LnBpcGVzQ291bnQsQXQpO3ZhciBvbj1BdCYmITE9PT1BdC5lbmR8fHZ0PT09YWUu''@;'; put 'put ''c3Rkb3V0fHx2dD09PWFlLnN0ZGVycj9HZTp0dDtmdW5jdGlvbiB0dCgpe0soIm9uZW5kIiksdnQuZW5kKCl9QnQuZW5kRW1pdHRlZD9hZS5uZXh0VGljayhvbik6aHQub25jZSgiZW5kIixvbiksdnQub24oInVucGlwZSIsZnVuY3Rpb24gX3QoVWUseXQpe0soIm9udW5waXBlIiksVWU9PT1o''@;'; put 'put ''dCYmeXQmJiExPT09eXQuaGFzVW5waXBlZCYmKHl0Lmhhc1VucGlwZWQ9ITAsSygiY2xlYW51cCIpLHZ0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZnQpLHZ0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLEh0KSx2dC5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLGV0KSx2dC5yZW1vdmVMaXN0ZW5l''@;'; put 'put ''cigiZXJyb3IiLEN0KSx2dC5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixfdCksaHQucmVtb3ZlTGlzdGVuZXIoImVuZCIsdHQpLGh0LnJlbW92ZUxpc3RlbmVyKCJlbmQiLEdlKSxodC5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsTHQpLGx0PSEwLCFCdC5hd2FpdERyYWlufHx2dC5fd3JpdGFibGVT''@;'; put 'put ''dGF0ZSYmIXZ0Ll93cml0YWJsZVN0YXRlLm5lZWREcmFpbnx8ZXQoKSl9KTt2YXIgVWUsZXQ9KFVlPWh0LGZ1bmN0aW9uKCl7dmFyIHl0PVVlLl9yZWFkYWJsZVN0YXRlO0soInBpcGVPbkRyYWluIix5dC5hd2FpdERyYWluKSx5dC5hd2FpdERyYWluJiZ5dC5hd2FpdERyYWluLS0sMD09PXl0''@;'; put 'put ''LmF3YWl0RHJhaW4mJlkoVWUsImRhdGEiKSYmKHl0LmZsb3dpbmc9ITAsUWUoVWUpKX0pO3Z0Lm9uKCJkcmFpbiIsZXQpO3ZhciBsdD0hMTtmdW5jdGlvbiBMdChVZSl7Sygib25kYXRhIik7dmFyIHl0PXZ0LndyaXRlKFVlKTtLKCJkZXN0LndyaXRlIix5dCksITE9PT15dCYmKCgxPT09QnQu''@;'; put 'put ''cGlwZXNDb3VudCYmQnQucGlwZXM9PT12dHx8QnQucGlwZXNDb3VudD4xJiYtMSE9PW10KEJ0LnBpcGVzLHZ0KSkmJiFsdCYmKEsoImZhbHNlIHdyaXRlIHJlc3BvbnNlLCBwYXVzZSIsQnQuYXdhaXREcmFpbiksQnQuYXdhaXREcmFpbisrKSxodC5wYXVzZSgpKX1mdW5jdGlvbiBDdChVZSl7''@;'; put 'put ''Sygib25lcnJvciIsVWUpLEdlKCksdnQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixDdCksMD09PVkodnQsImVycm9yIikmJmhlKHZ0LFVlKX1mdW5jdGlvbiBmdCgpe3Z0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLEh0KSxHZSgpfWZ1bmN0aW9uIEh0KCl7Sygib25maW5pc2giKSx2dC5yZW1v''@;'; put 'put ''dmVMaXN0ZW5lcigiY2xvc2UiLGZ0KSxHZSgpfWZ1bmN0aW9uIEdlKCl7SygidW5waXBlIiksaHQudW5waXBlKHZ0KX1yZXR1cm4gaHQub24oImRhdGEiLEx0KSxmdW5jdGlvbihVZSx5dCxqdCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFVlLnByZXBlbmRMaXN0ZW5lcilyZXR1cm4gVWUucHJl''@;'; put 'put ''cGVuZExpc3RlbmVyKHl0LGp0KTtVZS5fZXZlbnRzJiZVZS5fZXZlbnRzW3l0XT9BcnJheS5pc0FycmF5KFVlLl9ldmVudHNbeXRdKT9VZS5fZXZlbnRzW3l0XS51bnNoaWZ0KGp0KTpVZS5fZXZlbnRzW3l0XT1banQsVWUuX2V2ZW50c1t5dF1dOlVlLm9uKHl0LGp0KX0odnQsImVycm9yIixD''@;'; put 'put ''dCksdnQub25jZSgiY2xvc2UiLGZ0KSx2dC5vbmNlKCJmaW5pc2giLEh0KSx2dC5lbWl0KCJwaXBlIixodCksQnQuZmxvd2luZ3x8KEsoInBpcGUgcmVzdW1lIiksaHQucmVzdW1lKCkpLHZ0fSxlZS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHZ0KXt2YXIgQXQ9dGhpcy5fcmVhZGFibGVT''@;'; put 'put ''dGF0ZSxodD17aGFzVW5waXBlZDohMX07aWYoMD09PUF0LnBpcGVzQ291bnQpcmV0dXJuIHRoaXM7aWYoMT09PUF0LnBpcGVzQ291bnQpcmV0dXJuIHZ0JiZ2dCE9PUF0LnBpcGVzfHwodnR8fCh2dD1BdC5waXBlcyksQXQucGlwZXM9bnVsbCxBdC5waXBlc0NvdW50PTAsQXQuZmxvd2luZz0h''@;'; put 'put ''MSx2dCYmdnQuZW1pdCgidW5waXBlIix0aGlzLGh0KSksdGhpcztpZighdnQpe3ZhciBCdD1BdC5waXBlcyxvbj1BdC5waXBlc0NvdW50O0F0LnBpcGVzPW51bGwsQXQucGlwZXNDb3VudD0wLEF0LmZsb3dpbmc9ITE7Zm9yKHZhciBfdD0wO190PG9uO190KyspQnRbX3RdLmVtaXQoInVucGlw''@;'; put 'put ''ZSIsdGhpcyx7aGFzVW5waXBlZDohMX0pO3JldHVybiB0aGlzfXZhciB0dD1tdChBdC5waXBlcyx2dCk7cmV0dXJuLTE9PT10dHx8KEF0LnBpcGVzLnNwbGljZSh0dCwxKSxBdC5waXBlc0NvdW50LT0xLDE9PT1BdC5waXBlc0NvdW50JiYoQXQucGlwZXM9QXQucGlwZXNbMF0pLHZ0LmVtaXQo''@;'; put 'put ''InVucGlwZSIsdGhpcyxodCkpLHRoaXN9LGVlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1lZS5wcm90b3R5cGUub249ZnVuY3Rpb24odnQsQXQpe3ZhciBodD1XLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMsdnQsQXQpLEJ0PXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuImRhdGEiPT09dnQ/KEJ0''@;'; put 'put ''LnJlYWRhYmxlTGlzdGVuaW5nPXRoaXMubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLCExIT09QnQuZmxvd2luZyYmdGhpcy5yZXN1bWUoKSk6InJlYWRhYmxlIj09PXZ0JiYoQnQuZW5kRW1pdHRlZHx8QnQucmVhZGFibGVMaXN0ZW5pbmd8fChCdC5yZWFkYWJsZUxpc3RlbmluZz1CdC5u''@;'; put 'put ''ZWVkUmVhZGFibGU9ITAsQnQuZmxvd2luZz0hMSxCdC5lbWl0dGVkUmVhZGFibGU9ITEsSygib24gcmVhZGFibGUiLEJ0Lmxlbmd0aCxCdC5yZWFkaW5nKSxCdC5sZW5ndGg/VCh0aGlzKTpCdC5yZWFkaW5nfHxhZS5uZXh0VGljayhEZSx0aGlzKSkpLGh0fSxlZS5wcm90b3R5cGUucmVtb3Zl''@;'; put 'put ''TGlzdGVuZXI9ZnVuY3Rpb24odnQsQXQpe3ZhciBodD1XLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lci5jYWxsKHRoaXMsdnQsQXQpO3JldHVybiJyZWFkYWJsZSI9PT12dCYmYWUubmV4dFRpY2soQ2UsdGhpcyksaHR9LGVlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24o''@;'; put 'put ''dnQpe3ZhciBBdD1XLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnMuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiJyZWFkYWJsZSIhPT12dCYmdm9pZCAwIT09dnR8fGFlLm5leHRUaWNrKENlLHRoaXMpLEF0fSxlZS5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7dmFyIGh0LHZ0''@;'; put 'put ''PXRoaXMuX3JlYWRhYmxlU3RhdGU7cmV0dXJuIHZ0LmZsb3dpbmd8fChLKCJyZXN1bWUiKSx2dC5mbG93aW5nPSF2dC5yZWFkYWJsZUxpc3RlbmluZyx0aGlzLChodD12dCkucmVzdW1lU2NoZWR1bGVkfHwoaHQucmVzdW1lU2NoZWR1bGVkPSEwLGFlLm5leHRUaWNrKFBlLHRoaXMsaHQpKSks''@;'; put 'put ''dnQucGF1c2VkPSExLHRoaXN9LGVlLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3JldHVybiBLKCJjYWxsIHBhdXNlIGZsb3dpbmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJihLKCJwYXVzZSIpLHRoaXMuX3Jl''@;'; put 'put ''YWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikpLHRoaXMuX3JlYWRhYmxlU3RhdGUucGF1c2VkPSEwLHRoaXN9LGVlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHZ0KXt2YXIgQXQ9dGhpcyxodD10aGlzLl9yZWFkYWJsZVN0YXRlLEJ0PSExO2Zvcih2YXIgb24gaW4g''@;'; put 'put ''dnQub24oImVuZCIsZnVuY3Rpb24oKXtpZihLKCJ3cmFwcGVkIGVuZCIpLGh0LmRlY29kZXImJiFodC5lbmRlZCl7dmFyIHR0PWh0LmRlY29kZXIuZW5kKCk7dHQmJnR0Lmxlbmd0aCYmQXQucHVzaCh0dCl9QXQucHVzaChudWxsKX0pLHZ0Lm9uKCJkYXRhIixmdW5jdGlvbih0dCl7Sygid3Jh''@;'; put 'put ''cHBlZCBkYXRhIiksaHQuZGVjb2RlciYmKHR0PWh0LmRlY29kZXIud3JpdGUodHQpKSxodC5vYmplY3RNb2RlJiZudWxsPT10dHx8KGh0Lm9iamVjdE1vZGV8fHR0JiZ0dC5sZW5ndGgpJiYoQXQucHVzaCh0dCl8fChCdD0hMCx2dC5wYXVzZSgpKSl9KSx2dCl2b2lkIDA9PT10aGlzW29uXSYm''@;'; put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIHZ0W29uXSYmKHRoaXNbb25dPWZ1bmN0aW9uKHR0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdnRbdHRdLmFwcGx5KHZ0LGFyZ3VtZW50cyl9fShvbikpO2Zvcih2YXIgX3Q9MDtfdDxPLmxlbmd0aDtfdCsrKXZ0Lm9uKE9bX3RdLHRoaXMuZW1pdC5iaW5k''@;'; put 'put ''KHRoaXMsT1tfdF0pKTtyZXR1cm4gdGhpcy5fcmVhZD1mdW5jdGlvbih0dCl7Sygid3JhcHBlZCBfcmVhZCIsdHQpLEJ0JiYoQnQ9ITEsdnQucmVzdW1lKCkpfSx0aGlzfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoZWUucHJvdG90eXBlW1N5bWJvbC5hc3luY0l0ZXJhdG9yXT1mdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiB2b2lkIDA9PT1vZSYmKG9lPWooNTg1MCkpLG9lKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGVlLnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0''@;'; put 'put ''ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlZS5wcm90b3R5cGUsInJlYWRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXJ9fSksT2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KGVlLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24odnQpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJs''@;'; put 'put ''ZVN0YXRlLmZsb3dpbmc9dnQpfX0pLGVlLl9mcm9tTGlzdD0kZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZWUucHJvdG90eXBlLCJyZWFkYWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RofX0pLCJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBTeW1ib2wmJihlZS5mcm9tPWZ1bmN0aW9uKHZ0LEF0KXtyZXR1cm4gdm9pZCAwPT09Y2UmJihjZT1qKDUxNjcpKSxjZShlZSx2dCxBdCl9KX0sNDYwNTooVSxRLGopPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KO3ZhciByZT1qKDQyODEpLnEsYWU9cmUuRVJSX01FVEhP''@;'; put 'put ''RF9OT1RfSU1QTEVNRU5URUQsWT1yZS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssVz1yZS5FUlJfVFJBTlNGT1JNX0FMUkVBRFlfVFJBTlNGT1JNSU5HLE49cmUuRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wLHRlPWooNjc1Myk7ZnVuY3Rpb24gSyhjZSxkZSl7dmFyIHZlPXRoaXMuX3RyYW5z''@;'; put 'put ''Zm9ybVN0YXRlO3ZlLnRyYW5zZm9ybWluZz0hMTt2YXIgQWU9dmUud3JpdGVjYjtpZihudWxsPT09QWUpcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLG5ldyBZKTt2ZS53cml0ZWNodW5rPW51bGwsdmUud3JpdGVjYj1udWxsLG51bGwhPWRlJiZ0aGlzLnB1c2goZGUpLEFlKGNlKTt2YXIga2U9''@;'; put 'put ''dGhpcy5fcmVhZGFibGVTdGF0ZTtrZS5yZWFkaW5nPSExLChrZS5uZWVkUmVhZGFibGV8fGtlLmxlbmd0aDxrZS5oaWdoV2F0ZXJNYXJrKSYmdGhpcy5fcmVhZChrZS5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiBKKGNlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBKKSlyZXR1cm4gbmV3IEooY2Up''@;'; put 'put ''O3RlLmNhbGwodGhpcyxjZSksdGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJhbnNmb3JtOksuYmluZCh0aGlzKSxuZWVkVHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxsLHdyaXRlZW5jb2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVT''@;'; put 'put ''dGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSExLGNlJiYoImZ1bmN0aW9uIj09dHlwZW9mIGNlLnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT1jZS50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5cGVvZiBjZS5mbHVzaCYmKHRoaXMuX2ZsdXNoPWNlLmZs''@;'; put 'put ''dXNoKSksdGhpcy5vbigicHJlZmluaXNoIixzZSl9ZnVuY3Rpb24gc2UoKXt2YXIgY2U9dGhpczsiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fZmx1c2h8fHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkP29lKHRoaXMsbnVsbCxudWxsKTp0aGlzLl9mbHVzaChmdW5jdGlvbihkZSx2ZSl7''@;'; put 'put ''b2UoY2UsZGUsdmUpfSl9ZnVuY3Rpb24gb2UoY2UsZGUsdmUpe2lmKGRlKXJldHVybiBjZS5lbWl0KCJlcnJvciIsZGUpO2lmKG51bGwhPXZlJiZjZS5wdXNoKHZlKSxjZS5fd3JpdGFibGVTdGF0ZS5sZW5ndGgpdGhyb3cgbmV3IE47aWYoY2UuX3RyYW5zZm9ybVN0YXRlLnRyYW5zZm9ybWlu''@;'; put 'put ''Zyl0aHJvdyBuZXcgVztyZXR1cm4gY2UucHVzaChudWxsKX1qKDU3MTcpKEosdGUpLEoucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oY2UsZGUpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLHRlLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxjZSxkZSl9LEou''@;'; put 'put ''cHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24oY2UsZGUsdmUpe3ZlKG5ldyBhZSgiX3RyYW5zZm9ybSgpIikpfSxKLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oY2UsZGUsdmUpe3ZhciBBZT10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihBZS53cml0ZWNiPXZlLEFlLndyaXRlY2h1bms9''@;'; put 'put ''Y2UsQWUud3JpdGVlbmNvZGluZz1kZSwhQWUudHJhbnNmb3JtaW5nKXt2YXIga2U9dGhpcy5fcmVhZGFibGVTdGF0ZTsoQWUubmVlZFRyYW5zZm9ybXx8a2UubmVlZFJlYWRhYmxlfHxrZS5sZW5ndGg8a2UuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoa2UuaGlnaFdhdGVyTWFyayl9fSxK''@;'; put 'put ''LnByb3RvdHlwZS5fcmVhZD1mdW5jdGlvbihjZSl7dmFyIGRlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGw9PT1kZS53cml0ZWNodW5rfHxkZS50cmFuc2Zvcm1pbmc/ZGUubmVlZFRyYW5zZm9ybT0hMDooZGUudHJhbnNmb3JtaW5nPSEwLHRoaXMuX3RyYW5zZm9ybShkZS53cml0ZWNodW5r''@;'; put 'put ''LGRlLndyaXRlZW5jb2RpbmcsZGUuYWZ0ZXJUcmFuc2Zvcm0pKX0sSi5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24oY2UsZGUpe3RlLnByb3RvdHlwZS5fZGVzdHJveS5jYWxsKHRoaXMsY2UsZnVuY3Rpb24odmUpe2RlKHZlKX0pfX0sNDIyOTooVSxRLGopPT57InVzZSBzdHJpY3QiO3Zh''@;'; put 'put ''ciByZSxhZT1qKDQxNTUpO2Z1bmN0aW9uIFkoRil7dmFyIHllPXRoaXM7dGhpcy5uZXh0PW51bGwsdGhpcy5lbnRyeT1udWxsLHRoaXMuZmluaXNoPWZ1bmN0aW9uKCl7IWZ1bmN0aW9uKENlLERlLFBlKXt2YXIgUWU9Q2UuZW50cnk7Zm9yKENlLmVudHJ5PW51bGw7UWU7KXt2YXIgJGU9UWUu''@;'; put 'put ''Y2FsbGJhY2s7RGUucGVuZGluZ2NiLS0sJGUodW5kZWZpbmVkKSxRZT1RZS5uZXh0fURlLmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PUNlfSh5ZSxGKX19VS5leHBvcnRzPWVlLGVlLldyaXRhYmxlU3RhdGU9ejt2YXIgSixXPXtkZXByZWNhdGU6aig0OTI3KX0sTj1qKDI1MDMpLHRlPWooODc2''@;'; put 'put ''NCkuQnVmZmVyLEs9ai5nLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxzZT1qKDExOTUpLG9lPWooMjQ1NykuZ2V0SGlnaFdhdGVyTWFyayxjZT1qKDQyODEpLnEsZGU9Y2UuRVJSX0lOVkFMSURfQVJHX1RZUEUsdmU9Y2UuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsQWU9Y2UuRVJSX01V''@;'; put 'put ''TFRJUExFX0NBTExCQUNLLGtlPWNlLkVSUl9TVFJFQU1fQ0FOTk9UX1BJUEUsU2U9Y2UuRVJSX1NUUkVBTV9ERVNUUk9ZRUQsSWU9Y2UuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyxUZT1jZS5FUlJfU1RSRUFNX1dSSVRFX0FGVEVSX0VORCxNZT1jZS5FUlJfVU5LTk9XTl9FTkNPRElORyxoZT1z''@;'; put 'put ''ZS5lcnJvck9yRGVzdHJveTtmdW5jdGlvbiBPKCl7fWZ1bmN0aW9uIHooRix5ZSxDZSl7cmU9cmV8fGooNjc1MyksImJvb2xlYW4iIT10eXBlb2YgQ2UmJihDZT15ZSBpbnN0YW5jZW9mIHJlKSx0aGlzLm9iamVjdE1vZGU9ISEoRj1GfHx7fSkub2JqZWN0TW9kZSxDZSYmKHRoaXMub2JqZWN0''@;'; put 'put ''TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhRi53cml0YWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz1vZSh0aGlzLEYsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIsQ2UpLHRoaXMuZmluYWxDYWxsZWQ9ITEsdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5lbmRpbmc9ITEsdGhpcy5lbmRl''@;'; put 'put ''ZD0hMSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVjb2RlU3RyaW5ncz0hKCExPT09Ri5kZWNvZGVTdHJpbmdzKSx0aGlzLmRlZmF1bHRFbmNvZGluZz1GLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMu''@;'; put 'put ''Y29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVmZmVyUHJvY2Vzc2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24oUGUpeyFmdW5jdGlvbihRZSwkZSl7dmFyIEF0LGd0PVFlLl93cml0YWJsZVN0YXRlLHd0PWd0LnN5bmMsbXQ9Z3Qud3JpdGVjYjtpZigiZnVuY3Rpb24iIT10eXBlb2Yg''@;'; put 'put ''bXQpdGhyb3cgbmV3IEFlO2lmKChBdD1ndCkud3JpdGluZz0hMSxBdC53cml0ZWNiPW51bGwsQXQubGVuZ3RoLT1BdC53cml0ZWxlbixBdC53cml0ZWxlbj0wLCRlKSFmdW5jdGlvbihBdCxodCxCdCxvbixfdCl7LS1odC5wZW5kaW5nY2IsQnQ/KGFlLm5leHRUaWNrKF90LG9uKSxhZS5uZXh0''@;'; put 'put ''VGljayhTLEF0LGh0KSxBdC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsaGUoQXQsb24pKTooX3Qob24pLEF0Ll93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMCxoZShBdCxvbiksUyhBdCxodCkpfShRZSxndCx3dCwkZSxtdCk7ZWxzZXt2YXIgdnQ9VihndCl8fFFlLmRlc3Ry''@;'; put 'put ''b3llZDt2dHx8Z3QuY29ya2VkfHxndC5idWZmZXJQcm9jZXNzaW5nfHwhZ3QuYnVmZmVyZWRSZXF1ZXN0fHxQKFFlLGd0KSx3dD9hZS5uZXh0VGljayh4LFFlLGd0LHZ0LG10KTp4KFFlLGd0LHZ0LG10KX19KHllLFBlKX0sdGhpcy53cml0ZWNiPW51bGwsdGhpcy53cml0ZWxlbj0wLHRoaXMu''@;'; put 'put ''YnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5wZW5kaW5nY2I9MCx0aGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVkPSExLHRoaXMuZW1pdENsb3NlPSExIT09Ri5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIUYuYXV0''@;'; put 'put ''b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBZKHRoaXMpfWZ1bmN0aW9uIGVlKEYpe3ZhciB5ZT10aGlzIGluc3RhbmNlb2YocmU9cmV8fGooNjc1MykpO2lmKCF5ZSYmIUouY2FsbChlZSx0aGlzKSlyZXR1cm4gbmV3IGVl''@;'; put 'put ''KEYpO3RoaXMuX3dyaXRhYmxlU3RhdGU9bmV3IHooRix0aGlzLHllKSx0aGlzLndyaXRhYmxlPSEwLEYmJigiZnVuY3Rpb24iPT10eXBlb2YgRi53cml0ZSYmKHRoaXMuX3dyaXRlPUYud3JpdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBGLndyaXRldiYmKHRoaXMuX3dyaXRldj1GLndyaXRldiks''@;'; put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIEYuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9Ri5kZXN0cm95KSwiZnVuY3Rpb24iPT10eXBlb2YgRi5maW5hbCYmKHRoaXMuX2ZpbmFsPUYuZmluYWwpKSxOLmNhbGwodGhpcyl9ZnVuY3Rpb24gbmUoRix5ZSxDZSxEZSxQZSxRZSwkZSl7eWUud3JpdGVsZW49''@;'; put 'put ''RGUseWUud3JpdGVjYj0kZSx5ZS53cml0aW5nPSEwLHllLnN5bmM9ITAseWUuZGVzdHJveWVkP3llLm9ud3JpdGUobmV3IFNlKCJ3cml0ZSIpKTpDZT9GLl93cml0ZXYoUGUseWUub253cml0ZSk6Ri5fd3JpdGUoUGUsUWUseWUub253cml0ZSkseWUuc3luYz0hMX1mdW5jdGlvbiB4KEYseWUs''@;'; put 'put ''Q2UsRGUpe3ZhciBQZSxRZTtDZXx8KFBlPUYsMD09PShRZT15ZSkubGVuZ3RoJiZRZS5uZWVkRHJhaW4mJihRZS5uZWVkRHJhaW49ITEsUGUuZW1pdCgiZHJhaW4iKSkpLHllLnBlbmRpbmdjYi0tLERlKCksUyhGLHllKX1mdW5jdGlvbiBQKEYseWUpe3llLmJ1ZmZlclByb2Nlc3Npbmc9ITA7''@;'; put 'put ''dmFyIENlPXllLmJ1ZmZlcmVkUmVxdWVzdDtpZihGLl93cml0ZXYmJkNlJiZDZS5uZXh0KXt2YXIgUGU9bmV3IEFycmF5KHllLmJ1ZmZlcmVkUmVxdWVzdENvdW50KSxRZT15ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7UWUuZW50cnk9Q2U7Zm9yKHZhciAkZT0wLGd0PSEwO0NlOylQZVskZV09Q2Us''@;'; put 'put ''Q2UuaXNCdWZ8fChndD0hMSksQ2U9Q2UubmV4dCwkZSs9MTtQZS5hbGxCdWZmZXJzPWd0LG5lKEYseWUsITAseWUubGVuZ3RoLFBlLCIiLFFlLmZpbmlzaCkseWUucGVuZGluZ2NiKysseWUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLFFlLm5leHQ/KHllLmNvcmtlZFJlcXVlc3RzRnJlZT1R''@;'; put 'put ''ZS5uZXh0LFFlLm5leHQ9bnVsbCk6eWUuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBZKHllKSx5ZS5idWZmZXJlZFJlcXVlc3RDb3VudD0wfWVsc2V7Zm9yKDtDZTspe3ZhciB3dD1DZS5jaHVuaztpZihuZShGLHllLCExLHllLm9iamVjdE1vZGU/MTp3dC5sZW5ndGgsd3QsQ2UuZW5jb2Rpbmcs''@;'; put 'put ''Q2UuY2FsbGJhY2spLENlPUNlLm5leHQseWUuYnVmZmVyZWRSZXF1ZXN0Q291bnQtLSx5ZS53cml0aW5nKWJyZWFrfW51bGw9PT1DZSYmKHllLmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCl9eWUuYnVmZmVyZWRSZXF1ZXN0PUNlLHllLmJ1ZmZlclByb2Nlc3Npbmc9ITF9ZnVuY3Rpb24gVihG''@;'; put 'put ''KXtyZXR1cm4gRi5lbmRpbmcmJjA9PT1GLmxlbmd0aCYmbnVsbD09PUYuYnVmZmVyZWRSZXF1ZXN0JiYhRi5maW5pc2hlZCYmIUYud3JpdGluZ31mdW5jdGlvbiBUKEYseWUpe0YuX2ZpbmFsKGZ1bmN0aW9uKENlKXt5ZS5wZW5kaW5nY2ItLSxDZSYmaGUoRixDZSkseWUucHJlZmluaXNoZWQ9''@;'; put 'put ''ITAsRi5lbWl0KCJwcmVmaW5pc2giKSxTKEYseWUpfSl9ZnVuY3Rpb24gUyhGLHllKXt2YXIgUGUsUWUsQ2U9Vih5ZSk7aWYoQ2UmJihQZT1GLChRZT15ZSkucHJlZmluaXNoZWR8fFFlLmZpbmFsQ2FsbGVkfHwoImZ1bmN0aW9uIiE9dHlwZW9mIFBlLl9maW5hbHx8UWUuZGVzdHJveWVkPyhR''@;'; put 'put ''ZS5wcmVmaW5pc2hlZD0hMCxQZS5lbWl0KCJwcmVmaW5pc2giKSk6KFFlLnBlbmRpbmdjYisrLFFlLmZpbmFsQ2FsbGVkPSEwLGFlLm5leHRUaWNrKFQsUGUsUWUpKSksMD09PXllLnBlbmRpbmdjYiYmKHllLmZpbmlzaGVkPSEwLEYuZW1pdCgiZmluaXNoIikseWUuYXV0b0Rlc3Ryb3kpKSl7''@;'; put 'put ''dmFyIERlPUYuX3JlYWRhYmxlU3RhdGU7KCFEZXx8RGUuYXV0b0Rlc3Ryb3kmJkRlLmVuZEVtaXR0ZWQpJiZGLmRlc3Ryb3koKX1yZXR1cm4gQ2V9aig1NzE3KShlZSxOKSx6LnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIEY9dGhpcy5idWZmZXJlZFJlcXVlc3QseWU9''@;'; put 'put ''W107RjspeWUucHVzaChGKSxGPUYubmV4dDtyZXR1cm4geWV9LGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh6LnByb3RvdHlwZSwiYnVmZmVyIix7Z2V0OlcuZGVwcmVjYXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCl9LCJfd3JpdGFibGVTdGF0ZS5i''@;'; put 'put ''dWZmZXIgaXMgZGVwcmVjYXRlZC4gVXNlIF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciBpbnN0ZWFkLiIsIkRFUDAwMDMiKX0pfWNhdGNoKEYpe319KCksImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmU3ltYm9sLmhhc0luc3RhbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgRnVuY3Rpb24ucHJv''@;'; put 'put ''dG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0/KEo9RnVuY3Rpb24ucHJvdG90eXBlW1N5bWJvbC5oYXNJbnN0YW5jZV0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGVlLFN5bWJvbC5oYXNJbnN0YW5jZSx7dmFsdWU6ZnVuY3Rpb24oRil7cmV0dXJuISFKLmNhbGwodGhpcyxGKXx8dGhpcz09PWVl''@;'; put 'put ''JiZGJiZGLl93cml0YWJsZVN0YXRlIGluc3RhbmNlb2Ygen19KSk6Sj1mdW5jdGlvbihGKXtyZXR1cm4gRiBpbnN0YW5jZW9mIHRoaXN9LGVlLnByb3RvdHlwZS5waXBlPWZ1bmN0aW9uKCl7aGUodGhpcyxuZXcga2UpfSxlZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oRix5ZSxDZSl7dmFy''@;'; put 'put ''IERlLGd0LHd0LG10LFBlPXRoaXMuX3dyaXRhYmxlU3RhdGUsUWU9ITEsJGU9IVBlLm9iamVjdE1vZGUmJih0ZS5pc0J1ZmZlcihEZT1GKXx8RGUgaW5zdGFuY2VvZiBLKTtyZXR1cm4gJGUmJiF0ZS5pc0J1ZmZlcihGKSYmKEY9dGUuZnJvbShGKSksImZ1bmN0aW9uIj09dHlwZW9mIHllJiYo''@;'; put 'put ''Q2U9eWUseWU9bnVsbCksJGU/eWU9ImJ1ZmZlciI6eWV8fCh5ZT1QZS5kZWZhdWx0RW5jb2RpbmcpLCJmdW5jdGlvbiIhPXR5cGVvZiBDZSYmKENlPU8pLFBlLmVuZGluZz8oZ3Q9dGhpcyx3dD1DZSxtdD1uZXcgVGUsaGUoZ3QsbXQpLGFlLm5leHRUaWNrKHd0LG10KSk6KCRlfHxmdW5jdGlv''@;'; put 'put ''bihndCx3dCxtdCx2dCl7dmFyIEF0O3JldHVybiBudWxsPT09bXQ/QXQ9bmV3IEllOiJzdHJpbmciPT10eXBlb2YgbXR8fHd0Lm9iamVjdE1vZGV8fChBdD1uZXcgZGUoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciJdLG10KSksIUF0fHwoaGUoZ3QsQXQpLGFlLm5leHRUaWNrKHZ0LEF0KSwh''@;'; put 'put ''MSl9KHRoaXMsUGUsRixDZSkpJiYoUGUucGVuZGluZ2NiKyssUWU9ZnVuY3Rpb24oZ3Qsd3QsbXQsdnQsQXQsaHQpe2lmKCFtdCl7dmFyIEJ0PShsdD12dCwoZXQ9d3QpLm9iamVjdE1vZGV8fCExPT09ZXQuZGVjb2RlU3RyaW5nc3x8InN0cmluZyIhPXR5cGVvZiBsdHx8KGx0PXRlLmZyb20o''@;'; put 'put ''bHQsQXQpKSxsdCk7dnQhPT1CdCYmKG10PSEwLEF0PSJidWZmZXIiLHZ0PUJ0KX12YXIgZXQsbHQsb249d3Qub2JqZWN0TW9kZT8xOnZ0Lmxlbmd0aDt3dC5sZW5ndGgrPW9uO3ZhciBfdD13dC5sZW5ndGg8d3QuaGlnaFdhdGVyTWFyaztpZihfdHx8KHd0Lm5lZWREcmFpbj0hMCksd3Qud3Jp''@;'; put 'put ''dGluZ3x8d3QuY29ya2VkKXt2YXIgdHQ9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdDt3dC5sYXN0QnVmZmVyZWRSZXF1ZXN0PXtjaHVuazp2dCxlbmNvZGluZzpBdCxpc0J1ZjptdCxjYWxsYmFjazpodCxuZXh0Om51bGx9LHR0P3R0Lm5leHQ9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdDp3dC5idWZm''@;'; put 'put ''ZXJlZFJlcXVlc3Q9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdCx3dC5idWZmZXJlZFJlcXVlc3RDb3VudCs9MX1lbHNlIG5lKGd0LHd0LCExLG9uLHZ0LEF0LGh0KTtyZXR1cm4gX3R9KHRoaXMsUGUsJGUsRix5ZSxDZSkpLFFlfSxlZS5wcm90b3R5cGUuY29yaz1mdW5jdGlvbigpe3RoaXMuX3dy''@;'; put 'put ''aXRhYmxlU3RhdGUuY29ya2VkKyt9LGVlLnByb3RvdHlwZS51bmNvcms9ZnVuY3Rpb24oKXt2YXIgRj10aGlzLl93cml0YWJsZVN0YXRlO0YuY29ya2VkJiYoRi5jb3JrZWQtLSxGLndyaXRpbmd8fEYuY29ya2VkfHxGLmJ1ZmZlclByb2Nlc3Npbmd8fCFGLmJ1ZmZlcmVkUmVxdWVzdHx8UCh0''@;'; put 'put ''aGlzLEYpKX0sZWUucHJvdG90eXBlLnNldERlZmF1bHRFbmNvZGluZz1mdW5jdGlvbihGKXtpZigic3RyaW5nIj09dHlwZW9mIEYmJihGPUYudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRm''@;'; put 'put ''MTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigoRisiIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBNZShGKTtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5kZWZhdWx0RW5jb2Rpbmc9Rix0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZWUucHJvdG90eXBlLCJ3cml0''@;'; put 'put ''YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGVlLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7''@;'; put 'put ''ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLGVlLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oRix5ZSxDZSl7Q2UobmV3IHZlKCJfd3JpdGUoKSIpKX0sZWUucHJvdG90eXBlLl93cml0ZXY9bnVsbCxlZS5w''@;'; put 'put ''cm90b3R5cGUuZW5kPWZ1bmN0aW9uKEYseWUsQ2Upe3ZhciBRZSwkZSxEZT10aGlzLl93cml0YWJsZVN0YXRlO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBGPyhDZT1GLEY9bnVsbCx5ZT1udWxsKToiZnVuY3Rpb24iPT10eXBlb2YgeWUmJihDZT15ZSx5ZT1udWxsKSxudWxsIT1GJiZ0aGlz''@;'; put 'put ''LndyaXRlKEYseWUpLERlLmNvcmtlZCYmKERlLmNvcmtlZD0xLHRoaXMudW5jb3JrKCkpLERlLmVuZGluZ3x8KHRoaXMsJGU9Q2UsKFFlPURlKS5lbmRpbmc9ITAsUyh0aGlzLFFlKSwkZSYmKFFlLmZpbmlzaGVkP2FlLm5leHRUaWNrKCRlKTp0aGlzLm9uY2UoImZpbmlzaCIsJGUpKSxRZS5l''@;'; put 'put ''bmRlZD0hMCx0aGlzLndyaXRhYmxlPSExKSx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZWUucHJvdG90eXBlLCJ3cml0YWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUubGVuZ3RofX0pLE9iamVjdC5kZWZpbmVQ''@;'; put 'put ''cm9wZXJ0eShlZS5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24oRil7dGhpcy5fd3JpdGFibGVTdGF0''@;'; put 'put ''ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPUYpfX0pLGVlLnByb3RvdHlwZS5kZXN0cm95PXNlLmRlc3Ryb3ksZWUucHJvdG90eXBlLl91bmRlc3Ryb3k9c2UudW5kZXN0cm95LGVlLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihGLHllKXt5ZShGKX19LDU4NTA6KFUsUSxq''@;'; put 'put ''KT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmUsYWU9aig0MTU1KTtmdW5jdGlvbiBZKEllLFRlLE1lKXtyZXR1cm4gVGUgaW4gSWU/T2JqZWN0LmRlZmluZVByb3BlcnR5KEllLFRlLHt2YWx1ZTpNZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOkllW1RlXT1NZSxJ''@;'; put 'put ''ZX12YXIgVz1qKDg2MTApLE49U3ltYm9sKCJsYXN0UmVzb2x2ZSIpLHRlPVN5bWJvbCgibGFzdFJlamVjdCIpLEs9U3ltYm9sKCJlcnJvciIpLEo9U3ltYm9sKCJlbmRlZCIpLHNlPVN5bWJvbCgibGFzdFByb21pc2UiKSxvZT1TeW1ib2woImhhbmRsZVByb21pc2UiKSxjZT1TeW1ib2woInN0''@;'; put 'put ''cmVhbSIpO2Z1bmN0aW9uIGRlKEllLFRlKXtyZXR1cm57dmFsdWU6SWUsZG9uZTpUZX19ZnVuY3Rpb24gdmUoSWUpe3ZhciBUZT1JZVtOXTtpZihudWxsIT09VGUpe3ZhciBNZT1JZVtjZV0ucmVhZCgpO251bGwhPT1NZSYmKEllW3NlXT1udWxsLEllW05dPW51bGwsSWVbdGVdPW51bGwsVGUo''@;'; put 'put ''ZGUoTWUsITEpKSl9fWZ1bmN0aW9uIEFlKEllKXthZS5uZXh0VGljayh2ZSxJZSl9dmFyIGtlPU9iamVjdC5nZXRQcm90b3R5cGVPZihmdW5jdGlvbigpe30pLFNlPU9iamVjdC5zZXRQcm90b3R5cGVPZigoWShyZT17Z2V0IHN0cmVhbSgpe3JldHVybiB0aGlzW2NlXX0sbmV4dDpmdW5jdGlv''@;'; put 'put ''bigpe3ZhciBJZT10aGlzLFRlPXRoaXNbS107aWYobnVsbCE9PVRlKXJldHVybiBQcm9taXNlLnJlamVjdChUZSk7aWYodGhpc1tKXSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGRlKHZvaWQgMCwhMCkpO2lmKHRoaXNbY2VdLmRlc3Ryb3llZClyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24o''@;'; put 'put ''eixlZSl7YWUubmV4dFRpY2soZnVuY3Rpb24oKXtJZVtLXT9lZShJZVtLXSk6eihkZSh2b2lkIDAsITApKX0pfSk7dmFyIE1lLHosZWUsaGU9dGhpc1tzZV07aWYoaGUpTWU9bmV3IFByb21pc2UoKHo9aGUsZWU9dGhpcyxmdW5jdGlvbihuZSx4KXt6LnRoZW4oZnVuY3Rpb24oKXtlZVtKXT9u''@;'; put 'put ''ZShkZSh2b2lkIDAsITApKTplZVtvZV0obmUseCl9LHgpfSkpO2Vsc2V7dmFyIE89dGhpc1tjZV0ucmVhZCgpO2lmKG51bGwhPT1PKXJldHVybiBQcm9taXNlLnJlc29sdmUoZGUoTywhMSkpO01lPW5ldyBQcm9taXNlKHRoaXNbb2VdKX1yZXR1cm4gdGhpc1tzZV09TWUsTWV9fSxTeW1ib2wu''@;'; put 'put ''YXN5bmNJdGVyYXRvcixmdW5jdGlvbigpe3JldHVybiB0aGlzfSksWShyZSwicmV0dXJuIixmdW5jdGlvbigpe3ZhciBJZT10aGlzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihUZSxNZSl7SWVbY2VdLmRlc3Ryb3kobnVsbCxmdW5jdGlvbihoZSl7aGU/TWUoaGUpOlRlKGRlKHZvaWQg''@;'; put 'put ''MCwhMCkpfSl9KX0pLHJlKSxrZSk7VS5leHBvcnRzPWZ1bmN0aW9uKEllKXt2YXIgVGUsTWU9T2JqZWN0LmNyZWF0ZShTZSwoWShUZT17fSxjZSx7dmFsdWU6SWUsd3JpdGFibGU6ITB9KSxZKFRlLE4se3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxZKFRlLHRlLHt2YWx1ZTpudWxsLHdyaXRh''@;'; put 'put ''YmxlOiEwfSksWShUZSxLLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksWShUZSxKLHt2YWx1ZTpJZS5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkLHdyaXRhYmxlOiEwfSksWShUZSxvZSx7dmFsdWU6ZnVuY3Rpb24oaGUsTyl7dmFyIHo9TWVbY2VdLnJlYWQoKTt6PyhNZVtzZV09bnVsbCxN''@;'; put 'put ''ZVtOXT1udWxsLE1lW3RlXT1udWxsLGhlKGRlKHosITEpKSk6KE1lW05dPWhlLE1lW3RlXT1PKX0sd3JpdGFibGU6ITB9KSxUZSkpO3JldHVybiBNZVtzZV09bnVsbCxXKEllLGZ1bmN0aW9uKGhlKXtpZihoZSYmIkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFIiE9PWhlLmNvZGUpe3ZhciBP''@;'; put 'put ''PU1lW3RlXTtyZXR1cm4gbnVsbCE9PU8mJihNZVtzZV09bnVsbCxNZVtOXT1udWxsLE1lW3RlXT1udWxsLE8oaGUpKSx2b2lkKE1lW0tdPWhlKX12YXIgej1NZVtOXTtudWxsIT09eiYmKE1lW3NlXT1udWxsLE1lW05dPW51bGwsTWVbdGVdPW51bGwseihkZSh2b2lkIDAsITApKSksTWVbSl09''@;'; put 'put ''ITB9KSxJZS5vbigicmVhZGFibGUiLEFlLmJpbmQobnVsbCxNZSkpLE1lfX0sNzMyNzooVSxRLGopPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHJlKEssSil7dmFyIHNlPU9iamVjdC5rZXlzKEspO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvZT1PYmplY3QuZ2V0T3du''@;'; put 'put ''UHJvcGVydHlTeW1ib2xzKEspO0omJihvZT1vZS5maWx0ZXIoZnVuY3Rpb24oY2Upe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEssY2UpLmVudW1lcmFibGV9KSksc2UucHVzaC5hcHBseShzZSxvZSl9cmV0dXJuIHNlfWZ1bmN0aW9uIGFlKEssSixzZSl7cmV0dXJu''@;'; put 'put ''IEogaW4gSz9PYmplY3QuZGVmaW5lUHJvcGVydHkoSyxKLHt2YWx1ZTpzZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOktbSl09c2UsS31mdW5jdGlvbiBZKEssSil7Zm9yKHZhciBzZT0wO3NlPEoubGVuZ3RoO3NlKyspe3ZhciBvZT1KW3NlXTtvZS5lbnVt''@;'; put 'put ''ZXJhYmxlPW9lLmVudW1lcmFibGV8fCExLG9lLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gb2UmJihvZS53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KEssb2Uua2V5LG9lKX19dmFyIFc9aig4NzY0KS5CdWZmZXIsTj1qKDIzNjEpLmluc3BlY3QsdGU9TiYmTi5jdXN0b218''@;'; put 'put ''fCJpbnNwZWN0IjtVLmV4cG9ydHM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBLKCl7KGZ1bmN0aW9uKGNlLGRlKXtpZighKGNlIGluc3RhbmNlb2YgZGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyxLKSx0aGlzLmhlYWQ9bnVs''@;'; put 'put ''bCx0aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfXZhciBKLHNlO3JldHVybiBKPUssc2U9W3trZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKGNlKXt2YXIgZGU9e2RhdGE6Y2UsbmV4dDpudWxsfTt0aGlzLmxlbmd0aD4wP3RoaXMudGFpbC5uZXh0PWRlOnRoaXMuaGVhZD1kZSx0aGlzLnRh''@;'; put 'put ''aWw9ZGUsKyt0aGlzLmxlbmd0aH19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKGNlKXt2YXIgZGU9e2RhdGE6Y2UsbmV4dDp0aGlzLmhlYWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD1kZSksdGhpcy5oZWFkPWRlLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFs''@;'; put 'put ''dWU6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBjZT10aGlzLmhlYWQuZGF0YTtyZXR1cm4gdGhpcy5oZWFkPTE9PT10aGlzLmxlbmd0aD90aGlzLnRhaWw9bnVsbDp0aGlzLmhlYWQubmV4dCwtLXRoaXMubGVuZ3RoLGNlfX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlv''@;'; put 'put ''bigpe3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfX0se2tleToiam9pbiIsdmFsdWU6ZnVuY3Rpb24oY2Upe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIGRlPXRoaXMuaGVhZCx2ZT0iIitkZS5kYXRhO2RlPWRlLm5leHQ7KXZlKz1jZStkZS5kYXRh''@;'; put 'put ''O3JldHVybiB2ZX19LHtrZXk6ImNvbmNhdCIsdmFsdWU6ZnVuY3Rpb24oY2Upe2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4gVy5hbGxvYygwKTtmb3IodmFyIGtlPVcuYWxsb2NVbnNhZmUoY2U+Pj4wKSxTZT10aGlzLmhlYWQsSWU9MDtTZTspVy5wcm90b3R5cGUuY29weS5jYWxsKFNlLmRh''@;'; put 'put ''dGEsa2UsSWUpLEllKz1TZS5kYXRhLmxlbmd0aCxTZT1TZS5uZXh0O3JldHVybiBrZX19LHtrZXk6ImNvbnN1bWUiLHZhbHVlOmZ1bmN0aW9uKGNlLGRlKXt2YXIgdmU7cmV0dXJuIGNlPHRoaXMuaGVhZC5kYXRhLmxlbmd0aD8odmU9dGhpcy5oZWFkLmRhdGEuc2xpY2UoMCxjZSksdGhpcy5o''@;'; put 'put ''ZWFkLmRhdGE9dGhpcy5oZWFkLmRhdGEuc2xpY2UoY2UpKTp2ZT1jZT09PXRoaXMuaGVhZC5kYXRhLmxlbmd0aD90aGlzLnNoaWZ0KCk6ZGU/dGhpcy5fZ2V0U3RyaW5nKGNlKTp0aGlzLl9nZXRCdWZmZXIoY2UpLHZlfX0se2tleToiZmlyc3QiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRo''@;'; put 'put ''aXMuaGVhZC5kYXRhfX0se2tleToiX2dldFN0cmluZyIsdmFsdWU6ZnVuY3Rpb24oY2Upe3ZhciBkZT10aGlzLmhlYWQsdmU9MSxBZT1kZS5kYXRhO2ZvcihjZS09QWUubGVuZ3RoO2RlPWRlLm5leHQ7KXt2YXIga2U9ZGUuZGF0YSxTZT1jZT5rZS5sZW5ndGg/a2UubGVuZ3RoOmNlO2lmKEFl''@;'; put 'put ''Kz1TZT09PWtlLmxlbmd0aD9rZTprZS5zbGljZSgwLGNlKSwwPT0oY2UtPVNlKSl7U2U9PT1rZS5sZW5ndGg/KCsrdmUsdGhpcy5oZWFkPWRlLm5leHQ/ZGUubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1kZSxkZS5kYXRhPWtlLnNsaWNlKFNlKSk7YnJlYWt9Kyt2ZX1yZXR1cm4g''@;'; put 'put ''dGhpcy5sZW5ndGgtPXZlLEFlfX0se2tleToiX2dldEJ1ZmZlciIsdmFsdWU6ZnVuY3Rpb24oY2Upe3ZhciBkZT1XLmFsbG9jVW5zYWZlKGNlKSx2ZT10aGlzLmhlYWQsQWU9MTtmb3IodmUuZGF0YS5jb3B5KGRlKSxjZS09dmUuZGF0YS5sZW5ndGg7dmU9dmUubmV4dDspe3ZhciBrZT12ZS5k''@;'; put 'put ''YXRhLFNlPWNlPmtlLmxlbmd0aD9rZS5sZW5ndGg6Y2U7aWYoa2UuY29weShkZSxkZS5sZW5ndGgtY2UsMCxTZSksMD09KGNlLT1TZSkpe1NlPT09a2UubGVuZ3RoPygrK0FlLHRoaXMuaGVhZD12ZS5uZXh0P3ZlLm5leHQ6dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9dmUsdmUuZGF0YT1r''@;'; put 'put ''ZS5zbGljZShTZSkpO2JyZWFrfSsrQWV9cmV0dXJuIHRoaXMubGVuZ3RoLT1BZSxkZX19LHtrZXk6dGUsdmFsdWU6ZnVuY3Rpb24oY2UsZGUpe3JldHVybiBOKHRoaXMsZnVuY3Rpb24odmUpe2Zvcih2YXIgQWU9MTtBZTxhcmd1bWVudHMubGVuZ3RoO0FlKyspe3ZhciBrZT1udWxsIT1hcmd1''@;'; put 'put ''bWVudHNbQWVdP2FyZ3VtZW50c1tBZV06e307QWUlMj9yZShPYmplY3Qoa2UpLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKFNlKXthZSh2ZSxTZSxrZVtTZV0pfSk6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM/T2JqZWN0LmRlZmluZVByb3BlcnRpZXModmUsT2JqZWN0LmdldE93blBy''@;'; put 'put ''b3BlcnR5RGVzY3JpcHRvcnMoa2UpKTpyZShPYmplY3Qoa2UpKS5mb3JFYWNoKGZ1bmN0aW9uKFNlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodmUsU2UsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihrZSxTZSkpfSl9cmV0dXJuIHZlfSh7fSxkZSx7ZGVwdGg6MCxjdXN0b21JbnNw''@;'; put 'put ''ZWN0OiExfSkpfX1dLHNlJiZZKEoucHJvdG90eXBlLHNlKSxLfSgpfSwxMTk1OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSk7ZnVuY3Rpb24gYWUoTix0ZSl7VyhOLHRlKSxZKE4pfWZ1bmN0aW9uIFkoTil7Ti5fd3JpdGFibGVTdGF0ZSYmIU4uX3dyaXRhYmxlU3RhdGUu''@;'; put 'put ''ZW1pdENsb3NlfHxOLl9yZWFkYWJsZVN0YXRlJiYhTi5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2V8fE4uZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBXKE4sdGUpe04uZW1pdCgiZXJyb3IiLHRlKX1VLmV4cG9ydHM9e2Rlc3Ryb3k6ZnVuY3Rpb24oTix0ZSl7dmFyIEs9dGhpcztyZXR1cm4gdGhp''@;'; put 'put ''cy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWR8fHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPyh0ZT90ZShOKTpOJiYodGhpcy5fd3JpdGFibGVTdGF0ZT90aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRl''@;'; put 'put ''ZHx8KHRoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLHJlLm5leHRUaWNrKFcsdGhpcyxOKSk6cmUubmV4dFRpY2soVyx0aGlzLE4pKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl93cml0YWJsZVN0''@;'; put 'put ''YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3koTnx8bnVsbCxmdW5jdGlvbihvZSl7IXRlJiZvZT9LLl93cml0YWJsZVN0YXRlP0suX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkP3JlLm5leHRUaWNrKFksSyk6KEsuX3dyaXRhYmxlU3RhdGUu''@;'; put 'put ''ZXJyb3JFbWl0dGVkPSEwLHJlLm5leHRUaWNrKGFlLEssb2UpKTpyZS5uZXh0VGljayhhZSxLLG9lKTp0ZT8ocmUubmV4dFRpY2soWSxLKSx0ZShvZSkpOnJlLm5leHRUaWNrKFksSyl9KSx0aGlzKX0sdW5kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3Jl''@;'; put 'put ''YWRhYmxlU3RhdGUuZGVzdHJveWVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUucmVhZGluZz0hMSx0aGlzLl9yZWFkYWJsZVN0YXRlLmVuZGVkPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZD0hMSksdGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVz''@;'; put 'put ''dHJveWVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRpbmc9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5hbENhbGxlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLnByZWZpbmlzaGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUuZmluaXNo''@;'; put 'put ''ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITEpfSxlcnJvck9yRGVzdHJveTpmdW5jdGlvbihOLHRlKXt2YXIgSz1OLl9yZWFkYWJsZVN0YXRlLEo9Ti5fd3JpdGFibGVTdGF0ZTtLJiZLLmF1dG9EZXN0cm95fHxKJiZKLmF1dG9EZXN0cm95P04uZGVzdHJveSh0ZSk6''@;'; put 'put ''Ti5lbWl0KCJlcnJvciIsdGUpfX19LDg2MTA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MjgxKS5xLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIGFlKCl7fVUuZXhwb3J0cz1mdW5jdGlvbiBZKFcsTix0ZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIE4pcmV0''@;'; put 'put ''dXJuIFkoVyxudWxsLE4pO3ZhciBJZSxUZTtOfHwoTj17fSksSWU9dGV8fGFlLFRlPSExLHRlPWZ1bmN0aW9uKCl7aWYoIVRlKXtUZT0hMDtmb3IodmFyIE1lPWFyZ3VtZW50cy5sZW5ndGgsaGU9bmV3IEFycmF5KE1lKSxPPTA7TzxNZTtPKyspaGVbT109YXJndW1lbnRzW09dO0llLmFwcGx5''@;'; put 'put ''KHRoaXMsaGUpfX07dmFyIEs9Ti5yZWFkYWJsZXx8ITEhPT1OLnJlYWRhYmxlJiZXLnJlYWRhYmxlLEo9Ti53cml0YWJsZXx8ITEhPT1OLndyaXRhYmxlJiZXLndyaXRhYmxlLHNlPWZ1bmN0aW9uKCl7Vy53cml0YWJsZXx8Y2UoKX0sb2U9Vy5fd3JpdGFibGVTdGF0ZSYmVy5fd3JpdGFibGVT''@;'; put 'put ''dGF0ZS5maW5pc2hlZCxjZT1mdW5jdGlvbigpe0o9ITEsb2U9ITAsS3x8dGUuY2FsbChXKX0sZGU9Vy5fcmVhZGFibGVTdGF0ZSYmVy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkLHZlPWZ1bmN0aW9uKCl7Sz0hMSxkZT0hMCxKfHx0ZS5jYWxsKFcpfSxBZT1mdW5jdGlvbihJZSl7dGUuY2Fs''@;'; put 'put ''bChXLEllKX0sa2U9ZnVuY3Rpb24oKXt2YXIgSWU7cmV0dXJuIEsmJiFkZT8oVy5fcmVhZGFibGVTdGF0ZSYmVy5fcmVhZGFibGVTdGF0ZS5lbmRlZHx8KEllPW5ldyByZSksdGUuY2FsbChXLEllKSk6SiYmIW9lPyhXLl93cml0YWJsZVN0YXRlJiZXLl93cml0YWJsZVN0YXRlLmVuZGVkfHwo''@;'; put 'put ''SWU9bmV3IHJlKSx0ZS5jYWxsKFcsSWUpKTp2b2lkIDB9LFNlPWZ1bmN0aW9uKCl7Vy5yZXEub24oImZpbmlzaCIsY2UpfTtyZXR1cm4gZnVuY3Rpb24oSWUpe3JldHVybiBJZS5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBJZS5hYm9ydH0oVyk/KFcub24oImNvbXBsZXRlIixjZSks''@;'; put 'put ''Vy5vbigiYWJvcnQiLGtlKSxXLnJlcT9TZSgpOlcub24oInJlcXVlc3QiLFNlKSk6SiYmIVcuX3dyaXRhYmxlU3RhdGUmJihXLm9uKCJlbmQiLHNlKSxXLm9uKCJjbG9zZSIsc2UpKSxXLm9uKCJlbmQiLHZlKSxXLm9uKCJmaW5pc2giLGNlKSwhMSE9PU4uZXJyb3ImJlcub24oImVycm9yIixB''@;'; put 'put ''ZSksVy5vbigiY2xvc2UiLGtlKSxmdW5jdGlvbigpe1cucmVtb3ZlTGlzdGVuZXIoImNvbXBsZXRlIixjZSksVy5yZW1vdmVMaXN0ZW5lcigiYWJvcnQiLGtlKSxXLnJlbW92ZUxpc3RlbmVyKCJyZXF1ZXN0IixTZSksVy5yZXEmJlcucmVxLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLGNlKSxX''@;'; put 'put ''LnJlbW92ZUxpc3RlbmVyKCJlbmQiLHNlKSxXLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsc2UpLFcucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsY2UpLFcucmVtb3ZlTGlzdGVuZXIoImVuZCIsdmUpLFcucmVtb3ZlTGlzdGVuZXIoImVycm9yIixBZSksVy5yZW1vdmVMaXN0ZW5lcigiY2xvc2Ui''@;'; put 'put ''LGtlKX19fSw1MTY3OlU9PntVLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlJlYWRhYmxlLmZyb20gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnJvd3NlciIpfX0sOTk0NjooVSxRLGopPT57InVzZSBzdHJpY3QiO3ZhciByZSxhZT1qKDQyODEpLnEsWT1hZS5FUlJfTUlT''@;'; put 'put ''U0lOR19BUkdTLFc9YWUuRVJSX1NUUkVBTV9ERVNUUk9ZRUQ7ZnVuY3Rpb24gTihvZSl7aWYob2UpdGhyb3cgb2V9ZnVuY3Rpb24gdGUob2UsY2UsZGUsdmUpe3ZhciBTZSxJZTtTZT12ZSxJZT0hMSx2ZT1mdW5jdGlvbigpe0llfHwoSWU9ITAsU2UuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykp''@;'; put 'put ''fTt2YXIgQWU9ITE7b2Uub24oImNsb3NlIixmdW5jdGlvbigpe0FlPSEwfSksdm9pZCAwPT09cmUmJihyZT1qKDg2MTApKSxyZShvZSx7cmVhZGFibGU6Y2Usd3JpdGFibGU6ZGV9LGZ1bmN0aW9uKFNlKXtpZihTZSlyZXR1cm4gdmUoU2UpO0FlPSEwLHZlKCl9KTt2YXIga2U9ITE7cmV0dXJu''@;'; put 'put ''IGZ1bmN0aW9uKFNlKXtpZighQWUmJiFrZSlyZXR1cm4ga2U9ITAsZnVuY3Rpb24oSWUpe3JldHVybiBJZS5zZXRIZWFkZXImJiJmdW5jdGlvbiI9PXR5cGVvZiBJZS5hYm9ydH0ob2UpP29lLmFib3J0KCk6ImZ1bmN0aW9uIj09dHlwZW9mIG9lLmRlc3Ryb3k/b2UuZGVzdHJveSgpOnZvaWQg''@;'; put 'put ''dmUoU2V8fG5ldyBXKCJwaXBlIikpfX1mdW5jdGlvbiBLKG9lKXtvZSgpfWZ1bmN0aW9uIEoob2UsY2Upe3JldHVybiBvZS5waXBlKGNlKX1mdW5jdGlvbiBzZShvZSl7cmV0dXJuIG9lLmxlbmd0aD8iZnVuY3Rpb24iIT10eXBlb2Ygb2Vbb2UubGVuZ3RoLTFdP046b2UucG9wKCk6Tn1VLmV4''@;'; put 'put ''cG9ydHM9ZnVuY3Rpb24oKXtmb3IodmFyIG9lPWFyZ3VtZW50cy5sZW5ndGgsY2U9bmV3IEFycmF5KG9lKSxkZT0wO2RlPG9lO2RlKyspY2VbZGVdPWFyZ3VtZW50c1tkZV07dmFyIHZlLEFlPXNlKGNlKTtpZihBcnJheS5pc0FycmF5KGNlWzBdKSYmKGNlPWNlWzBdKSxjZS5sZW5ndGg8Mil0''@;'; put 'put ''aHJvdyBuZXcgWSgic3RyZWFtcyIpO3ZhciBrZT1jZS5tYXAoZnVuY3Rpb24oU2UsSWUpe3ZhciBUZT1JZTxjZS5sZW5ndGgtMTtyZXR1cm4gdGUoU2UsVGUsSWU+MCxmdW5jdGlvbihNZSl7dmV8fCh2ZT1NZSksTWUmJmtlLmZvckVhY2goSyksVGV8fChrZS5mb3JFYWNoKEspLEFlKHZlKSl9''@;'; put 'put ''KX0pO3JldHVybiBjZS5yZWR1Y2UoSil9fSwyNDU3OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNDI4MSkucS5FUlJfSU5WQUxJRF9PUFRfVkFMVUU7VS5leHBvcnRzPXtnZXRIaWdoV2F0ZXJNYXJrOmZ1bmN0aW9uKGFlLFksVyxOKXt2YXIgSyx0ZT1udWxsIT0oSz1ZKS5oaWdo''@;'; put 'put ''V2F0ZXJNYXJrP0suaGlnaFdhdGVyTWFyazpOP0tbV106bnVsbDtpZihudWxsIT10ZSl7aWYoIWlzRmluaXRlKHRlKXx8TWF0aC5mbG9vcih0ZSkhPT10ZXx8dGU8MCl0aHJvdyBuZXcgcmUoTj9XOiJoaWdoV2F0ZXJNYXJrIix0ZSk7cmV0dXJuIE1hdGguZmxvb3IodGUpfXJldHVybiBhZS5v''@;'; put 'put ''YmplY3RNb2RlPzE2OjE2Mzg0fX19LDI1MDM6KFUsUSxqKT0+e1UuZXhwb3J0cz1qKDcxODcpLkV2ZW50RW1pdHRlcn0sODQ3MzooVSxRLGopPT57KFE9VS5leHBvcnRzPWooOTQ4MSkpLlN0cmVhbT1RLFEuUmVhZGFibGU9USxRLldyaXRhYmxlPWooNDIyOSksUS5EdXBsZXg9aig2NzUzKSxR''@;'; put 'put ''LlRyYW5zZm9ybT1qKDQ2MDUpLFEuUGFzc1Rocm91Z2g9aigyNzI1KSxRLmZpbmlzaGVkPWooODYxMCksUS5waXBlbGluZT1qKDk5NDYpfSw5ODQ6KFUsUSxqKT0+e3ZhciByZT1qKDQxNTUpO2NvbnN0IGFlPWooOTI4MiksWT1qKDI1MjApLFc9aig3MjE3KTtsZXQgTjt0cnl7Tj1qKDI4ODQp''@;'; put 'put ''fWNhdGNoKE1lKXt9Y29uc3QgdGU9e25vc29ydDohMCxzaWxlbnQ6ITB9O2xldCBLPTA7Y29uc3QgSj0id2luMzIiPT09cmUucGxhdGZvcm0sc2U9TWU9PntpZihbInVubGluayIsImNobW9kIiwic3RhdCIsImxzdGF0Iiwicm1kaXIiLCJyZWFkZGlyIl0uZm9yRWFjaChoZT0+e01lW2hlXT1N''@;'; put 'put ''ZVtoZV18fFdbaGVdLE1lW2hlKz0iU3luYyJdPU1lW2hlXXx8V1toZV19KSxNZS5tYXhCdXN5VHJpZXM9TWUubWF4QnVzeVRyaWVzfHwzLE1lLmVtZmlsZVdhaXQ9TWUuZW1maWxlV2FpdHx8MWUzLCExPT09TWUuZ2xvYiYmKE1lLmRpc2FibGVHbG9iPSEwKSwhMCE9PU1lLmRpc2FibGVHbG9i''@;'; put 'put ''JiZ2b2lkIDA9PT1OKXRocm93IEVycm9yKCJnbG9iIGRlcGVuZGVuY3kgbm90IGZvdW5kLCBzZXQgYG9wdGlvbnMuZGlzYWJsZUdsb2IgPSB0cnVlYCBpZiBpbnRlbnRpb25hbCIpO01lLmRpc2FibGVHbG9iPU1lLmRpc2FibGVHbG9ifHwhMSxNZS5nbG9iPU1lLmdsb2J8fHRlfSxvZT0oTWUs''@;'; put 'put ''aGUsTyk9PnsiZnVuY3Rpb24iPT10eXBlb2YgaGUmJihPPWhlLGhlPXt9KSxhZShNZSwicmltcmFmOiBtaXNzaW5nIHBhdGgiKSxhZS5lcXVhbCh0eXBlb2YgTWUsInN0cmluZyIsInJpbXJhZjogcGF0aCBzaG91bGQgYmUgYSBzdHJpbmciKSxhZS5lcXVhbCh0eXBlb2YgTywiZnVuY3Rpb24i''@;'; put 'put ''LCJyaW1yYWY6IGNhbGxiYWNrIGZ1bmN0aW9uIHJlcXVpcmVkIiksYWUoaGUsInJpbXJhZjogaW52YWxpZCBvcHRpb25zIGFyZ3VtZW50IHByb3ZpZGVkIiksYWUuZXF1YWwodHlwZW9mIGhlLCJvYmplY3QiLCJyaW1yYWY6IG9wdGlvbnMgc2hvdWxkIGJlIG9iamVjdCIpLHNlKGhlKTtsZXQg''@;'; put 'put ''ej0wLGVlPW51bGwsbmU9MDtjb25zdCB4PShQLFYpPT5QP08oUCk6KG5lPVYubGVuZ3RoLDA9PT1uZT9PKCk6dm9pZCBWLmZvckVhY2goVD0+e2NvbnN0IFM9Rj0+e2lmKEYpe2lmKCgiRUJVU1kiPT09Ri5jb2RlfHwiRU5PVEVNUFRZIj09PUYuY29kZXx8IkVQRVJNIj09PUYuY29kZSkmJno8''@;'; put 'put ''aGUubWF4QnVzeVRyaWVzKXJldHVybiB6Kyssc2V0VGltZW91dCgoKT0+Y2UoVCxoZSxTKSwxMDAqeik7aWYoIkVNRklMRSI9PT1GLmNvZGUmJks8aGUuZW1maWxlV2FpdClyZXR1cm4gc2V0VGltZW91dCgoKT0+Y2UoVCxoZSxTKSxLKyspOyJFTk9FTlQiPT09Ri5jb2RlJiYoRj1udWxsKX1L''@;'; put 'put ''PTAsZWU9ZWV8fEYsMD09LS1uZSYmTyhlZSl9O2NlKFQsaGUsUyl9KSk7aWYoaGUuZGlzYWJsZUdsb2J8fCFOLmhhc01hZ2ljKE1lKSlyZXR1cm4geChudWxsLFtNZV0pO2hlLmxzdGF0KE1lLChQLFYpPT57aWYoIVApcmV0dXJuIHgobnVsbCxbTWVdKTtOKE1lLGhlLmdsb2IseCl9KX0sY2U9''@;'; put 'put ''KE1lLGhlLE8pPT57YWUoTWUpLGFlKGhlKSxhZSgiZnVuY3Rpb24iPT10eXBlb2YgTyksaGUubHN0YXQoTWUsKHosZWUpPT56JiYiRU5PRU5UIj09PXouY29kZT9PKG51bGwpOih6JiYiRVBFUk0iPT09ei5jb2RlJiZKJiZkZShNZSxoZSx6LE8pLGVlJiZlZS5pc0RpcmVjdG9yeSgpP0FlKE1l''@;'; put 'put ''LGhlLHosTyk6dm9pZCBoZS51bmxpbmsoTWUsbmU9PntpZihuZSl7aWYoIkVOT0VOVCI9PT1uZS5jb2RlKXJldHVybiBPKG51bGwpO2lmKCJFUEVSTSI9PT1uZS5jb2RlKXJldHVybiBKP2RlKE1lLGhlLG5lLE8pOkFlKE1lLGhlLG5lLE8pO2lmKCJFSVNESVIiPT09bmUuY29kZSlyZXR1cm4g''@;'; put 'put ''QWUoTWUsaGUsbmUsTyl9cmV0dXJuIE8obmUpfSkpKX0sZGU9KE1lLGhlLE8seik9PnthZShNZSksYWUoaGUpLGFlKCJmdW5jdGlvbiI9PXR5cGVvZiB6KSxoZS5jaG1vZChNZSw0MzgsZWU9PntlZT96KCJFTk9FTlQiPT09ZWUuY29kZT9udWxsOk8pOmhlLnN0YXQoTWUsKG5lLHgpPT57bmU/''@;'; put 'put ''eigiRU5PRU5UIj09PW5lLmNvZGU/bnVsbDpPKTp4LmlzRGlyZWN0b3J5KCk/QWUoTWUsaGUsTyx6KTpoZS51bmxpbmsoTWUseil9KX0pfSx2ZT0oTWUsaGUsTyk9PnthZShNZSksYWUoaGUpO3RyeXtoZS5jaG1vZFN5bmMoTWUsNDM4KX1jYXRjaChlZSl7aWYoIkVOT0VOVCI9PT1lZS5jb2Rl''@;'; put 'put ''KXJldHVybjt0aHJvdyBPfWxldCB6O3RyeXt6PWhlLnN0YXRTeW5jKE1lKX1jYXRjaChlZSl7aWYoIkVOT0VOVCI9PT1lZS5jb2RlKXJldHVybjt0aHJvdyBPfXouaXNEaXJlY3RvcnkoKT9JZShNZSxoZSxPKTpoZS51bmxpbmtTeW5jKE1lKX0sQWU9KE1lLGhlLE8seik9PnthZShNZSksYWUo''@;'; put 'put ''aGUpLGFlKCJmdW5jdGlvbiI9PXR5cGVvZiB6KSxoZS5ybWRpcihNZSxlZT0+eyFlZXx8IkVOT1RFTVBUWSIhPT1lZS5jb2RlJiYiRUVYSVNUIiE9PWVlLmNvZGUmJiJFUEVSTSIhPT1lZS5jb2RlP3ooZWUmJiJFTk9URElSIj09PWVlLmNvZGU/TzplZSk6a2UoTWUsaGUseil9KX0sa2U9KE1l''@;'; put 'put ''LGhlLE8pPT57YWUoTWUpLGFlKGhlKSxhZSgiZnVuY3Rpb24iPT10eXBlb2YgTyksaGUucmVhZGRpcihNZSwoeixlZSk9PntpZih6KXJldHVybiBPKHopO2xldCBuZSx4PWVlLmxlbmd0aDtpZigwPT09eClyZXR1cm4gaGUucm1kaXIoTWUsTyk7ZWUuZm9yRWFjaChQPT57b2UoWS5qb2luKE1l''@;'; put 'put ''LFApLGhlLFY9PntpZighbmUpcmV0dXJuIFY/TyhuZT1WKTp2b2lkKDA9PS0teCYmaGUucm1kaXIoTWUsTykpfSl9KX0pfSxTZT0oTWUsaGUpPT57bGV0IE87aWYoc2UoaGU9aGV8fHt9KSxhZShNZSwicmltcmFmOiBtaXNzaW5nIHBhdGgiKSxhZS5lcXVhbCh0eXBlb2YgTWUsInN0cmluZyIs''@;'; put 'put ''InJpbXJhZjogcGF0aCBzaG91bGQgYmUgYSBzdHJpbmciKSxhZShoZSwicmltcmFmOiBtaXNzaW5nIG9wdGlvbnMiKSxhZS5lcXVhbCh0eXBlb2YgaGUsIm9iamVjdCIsInJpbXJhZjogb3B0aW9ucyBzaG91bGQgYmUgb2JqZWN0IiksaGUuZGlzYWJsZUdsb2J8fCFOLmhhc01hZ2ljKE1lKSlP''@;'; put 'put ''PVtNZV07ZWxzZSB0cnl7aGUubHN0YXRTeW5jKE1lKSxPPVtNZV19Y2F0Y2goeil7Tz1OLnN5bmMoTWUsaGUuZ2xvYil9aWYoTy5sZW5ndGgpZm9yKGxldCB6PTA7ejxPLmxlbmd0aDt6Kyspe2NvbnN0IGVlPU9bel07bGV0IG5lO3RyeXtuZT1oZS5sc3RhdFN5bmMoZWUpfWNhdGNoKHgpe2lm''@;'; put 'put ''KCJFTk9FTlQiPT09eC5jb2RlKXJldHVybjsiRVBFUk0iPT09eC5jb2RlJiZKJiZ2ZShlZSxoZSx4KX10cnl7bmUmJm5lLmlzRGlyZWN0b3J5KCk/SWUoZWUsaGUsbnVsbCk6aGUudW5saW5rU3luYyhlZSl9Y2F0Y2goeCl7aWYoIkVOT0VOVCI9PT14LmNvZGUpcmV0dXJuO2lmKCJFUEVSTSI9''@;'; put 'put ''PT14LmNvZGUpcmV0dXJuIEo/dmUoZWUsaGUseCk6SWUoZWUsaGUseCk7aWYoIkVJU0RJUiIhPT14LmNvZGUpdGhyb3cgeDtJZShlZSxoZSx4KX19fSxJZT0oTWUsaGUsTyk9PnthZShNZSksYWUoaGUpO3RyeXtoZS5ybWRpclN5bmMoTWUpfWNhdGNoKHope2lmKCJFTk9FTlQiPT09ei5jb2Rl''@;'; put 'put ''KXJldHVybjtpZigiRU5PVERJUiI9PT16LmNvZGUpdGhyb3cgTzsiRU5PVEVNUFRZIiE9PXouY29kZSYmIkVFWElTVCIhPT16LmNvZGUmJiJFUEVSTSIhPT16LmNvZGV8fFRlKE1lLGhlKX19LFRlPShNZSxoZSk9PnthZShNZSksYWUoaGUpLGhlLnJlYWRkaXJTeW5jKE1lKS5mb3JFYWNoKGVl''@;'; put 'put ''PT5TZShZLmpvaW4oTWUsZWUpLGhlKSk7Y29uc3QgTz1KPzEwMDoxO2xldCB6PTA7Zm9yKDs7KXtsZXQgZWU9ITA7dHJ5e2NvbnN0IG5lPWhlLnJtZGlyU3luYyhNZSxoZSk7cmV0dXJuIGVlPSExLG5lfWZpbmFsbHl7aWYoKyt6PE8mJmVlKWNvbnRpbnVlfX19O1UuZXhwb3J0cz1vZSxvZS5z''@;'; put 'put ''eW5jPVNlfSw5Nzg1OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooODc2NCkuQnVmZmVyLGFlPWooNTcxNyksWT1qKDMzNDkpLFc9bmV3IEFycmF5KDE2KSxOPVswLDEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDcsNCwxMywxLDEwLDYsMTUsMywxMiwwLDksNSwy''@;'; put 'put ''LDE0LDExLDgsMywxMCwxNCw0LDksMTUsOCwxLDIsNywwLDYsMTMsMTEsNSwxMiwxLDksMTEsMTAsMCw4LDEyLDQsMTMsMyw3LDE1LDE0LDUsNiwyLDQsMCw1LDksNywxMiwyLDEwLDE0LDEsMyw4LDExLDYsMTUsMTNdLHRlPVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEy''@;'; put 'put ''LDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQsMSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdLEs9WzExLDE0LDE1''@;'; put 'put ''LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4''@;'; put 'put ''LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLEo9WzgsOSw5LDExLDEzLDE1LDE1LDUsNyw3LDgsMTEsMTQsMTQsMTIsNiw5LDEzLDE1LDcsMTIsOCw5LDExLDcsNywxMiw3LDYsMTUsMTMsMTEsOSw3LDE1LDExLDgsNiw2LDE0LDEyLDEzLDUsMTQsMTMsMTMsNyw1LDE1LDUsOCwxMSwxNCwx''@;'; put 'put ''NCw2LDE0LDYsOSwxMiw5LDEyLDUsMTUsOCw4LDUsMTIsOSwxMiw1LDE0LDYsOCwxMyw2LDUsMTUsMTMsMTEsMTFdLHNlPVswLDE1MTg1MDAyNDksMTg1OTc3NTM5MywyNDAwOTU5NzA4LDI4NDA4NTM4MzhdLG9lPVsxMzUyODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3''@;'; put 'put ''LDBdO2Z1bmN0aW9uIGNlKCl7WS5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMH1mdW5jdGlvbiBkZShUZSxNZSl7cmV0dXJuIFRlPDxNZXxUZT4+''@;'; put 'put ''PjMyLU1lfWZ1bmN0aW9uIHZlKFRlLE1lLGhlLE8seixlZSxuZSx4KXtyZXR1cm4gZGUoVGUrKE1lXmhlXk8pK2VlK25lfDAseCkrenwwfWZ1bmN0aW9uIEFlKFRlLE1lLGhlLE8seixlZSxuZSx4KXtyZXR1cm4gZGUoVGUrKE1lJmhlfH5NZSZPKStlZStuZXwwLHgpK3p8MH1mdW5jdGlvbiBr''@;'; put 'put ''ZShUZSxNZSxoZSxPLHosZWUsbmUseCl7cmV0dXJuIGRlKFRlKygoTWV8fmhlKV5PKStlZStuZXwwLHgpK3p8MH1mdW5jdGlvbiBTZShUZSxNZSxoZSxPLHosZWUsbmUseCl7cmV0dXJuIGRlKFRlKyhNZSZPfGhlJn5PKStlZStuZXwwLHgpK3p8MH1mdW5jdGlvbiBJZShUZSxNZSxoZSxPLHos''@;'; put 'put ''ZWUsbmUseCl7cmV0dXJuIGRlKFRlKyhNZV4oaGV8fk8pKStlZStuZXwwLHgpK3p8MH1hZShjZSxZKSxjZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe2Zvcih2YXIgVGU9VyxNZT0wO01lPDE2OysrTWUpVGVbTWVdPXRoaXMuX2Jsb2NrLnJlYWRJbnQzMkxFKDQqTWUpO2Zvcih2YXIg''@;'; put 'put ''aGU9MHx0aGlzLl9hLE89MHx0aGlzLl9iLHo9MHx0aGlzLl9jLGVlPTB8dGhpcy5fZCxuZT0wfHRoaXMuX2UseD0wfHRoaXMuX2EsUD0wfHRoaXMuX2IsVj0wfHRoaXMuX2MsVD0wfHRoaXMuX2QsUz0wfHRoaXMuX2UsRj0wO0Y8ODA7Ris9MSl7dmFyIHllLENlO0Y8MTY/KHllPXZlKGhlLE8s''@;'; put 'put ''eixlZSxuZSxUZVtOW0ZdXSxzZVswXSxLW0ZdKSxDZT1JZSh4LFAsVixULFMsVGVbdGVbRl1dLG9lWzBdLEpbRl0pKTpGPDMyPyh5ZT1BZShoZSxPLHosZWUsbmUsVGVbTltGXV0sc2VbMV0sS1tGXSksQ2U9U2UoeCxQLFYsVCxTLFRlW3RlW0ZdXSxvZVsxXSxKW0ZdKSk6Rjw0OD8oeWU9a2Uo''@;'; put 'put ''aGUsTyx6LGVlLG5lLFRlW05bRl1dLHNlWzJdLEtbRl0pLENlPWtlKHgsUCxWLFQsUyxUZVt0ZVtGXV0sb2VbMl0sSltGXSkpOkY8NjQ/KHllPVNlKGhlLE8seixlZSxuZSxUZVtOW0ZdXSxzZVszXSxLW0ZdKSxDZT1BZSh4LFAsVixULFMsVGVbdGVbRl1dLG9lWzNdLEpbRl0pKTooeWU9SWUo''@;'; put 'put ''aGUsTyx6LGVlLG5lLFRlW05bRl1dLHNlWzRdLEtbRl0pLENlPXZlKHgsUCxWLFQsUyxUZVt0ZVtGXV0sb2VbNF0sSltGXSkpLGhlPW5lLG5lPWVlLGVlPWRlKHosMTApLHo9TyxPPXllLHg9UyxTPVQsVD1kZShWLDEwKSxWPVAsUD1DZX12YXIgRGU9dGhpcy5fYit6K1R8MDt0aGlzLl9iPXRo''@;'; put 'put ''aXMuX2MrZWUrU3wwLHRoaXMuX2M9dGhpcy5fZCtuZSt4fDAsdGhpcy5fZD10aGlzLl9lK2hlK1B8MCx0aGlzLl9lPXRoaXMuX2ErTytWfDAsdGhpcy5fYT1EZX0sY2UucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhp''@;'; put 'put ''cy5fYmxvY2tPZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0''@;'; put 'put ''aGlzLl9sZW5ndGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgVGU9cmUuYWxsb2M/cmUuYWxsb2MoMjApOm5ldyByZSgyMCk7cmV0dXJuIFRlLndyaXRlSW50MzJMRSh0aGlzLl9hLDApLFRlLndyaXRlSW50''@;'; put 'put ''MzJMRSh0aGlzLl9iLDQpLFRlLndyaXRlSW50MzJMRSh0aGlzLl9jLDgpLFRlLndyaXRlSW50MzJMRSh0aGlzLl9kLDEyKSxUZS53cml0ZUludDMyTEUodGhpcy5fZSwxNiksVGV9LFUuZXhwb3J0cz1jZX0sOTUwOTooVSxRLGopPT57dmFyIHJlPWooODc2NCksYWU9cmUuQnVmZmVyO2Z1bmN0''@;'; put 'put ''aW9uIFkoTix0ZSl7Zm9yKHZhciBLIGluIE4pdGVbS109TltLXX1mdW5jdGlvbiBXKE4sdGUsSyl7cmV0dXJuIGFlKE4sdGUsSyl9YWUuZnJvbSYmYWUuYWxsb2MmJmFlLmFsbG9jVW5zYWZlJiZhZS5hbGxvY1Vuc2FmZVNsb3c/VS5leHBvcnRzPXJlOihZKHJlLFEpLFEuQnVmZmVyPVcpLFko''@;'; put 'put ''YWUsVyksVy5mcm9tPWZ1bmN0aW9uKE4sdGUsSyl7aWYoIm51bWJlciI9PXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIGFlKE4sdGUsSyl9LFcuYWxsb2M9ZnVuY3Rpb24oTix0ZSxLKXtpZigibnVtYmVyIiE9dHlw''@;'; put 'put ''ZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciBKPWFlKE4pO3JldHVybiB2b2lkIDAhPT10ZT8ic3RyaW5nIj09dHlwZW9mIEs/Si5maWxsKHRlLEspOkouZmlsbCh0ZSk6Si5maWxsKDApLEp9LFcuYWxsb2NVbnNhZmU9ZnVuY3Rpb24o''@;'; put 'put ''Til7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gYWUoTil9LFcuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1''@;'; put 'put ''bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIHJlLlNsb3dCdWZmZXIoTil9fSwyMzk5OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlLGFlPWooNDE1NSksWT1qKDg3NjQpLFc9WS5CdWZmZXIsTj17fTtmb3IocmUgaW4gWSlZLmhhc093blByb3BlcnR5KHJlKSYmIlNsb3dCdWZm''@;'; put 'put ''ZXIiIT09cmUmJiJCdWZmZXIiIT09cmUmJihOW3JlXT1ZW3JlXSk7dmFyIHRlPU4uQnVmZmVyPXt9O2ZvcihyZSBpbiBXKVcuaGFzT3duUHJvcGVydHkocmUpJiYiYWxsb2NVbnNhZmUiIT09cmUmJiJhbGxvY1Vuc2FmZVNsb3ciIT09cmUmJih0ZVtyZV09V1tyZV0pO2lmKE4uQnVmZmVyLnBy''@;'; put 'put ''b3RvdHlwZT1XLnByb3RvdHlwZSx0ZS5mcm9tJiZ0ZS5mcm9tIT09VWludDhBcnJheS5mcm9tfHwodGUuZnJvbT1mdW5jdGlvbihLLEosc2Upe2lmKCJudW1iZXIiPT10eXBlb2YgSyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInZhbHVlIiBhcmd1bWVudCBtdXN0IG5vdCBiZSBvZiB0eXBl''@;'; put 'put ''IG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBLKTtpZihLJiZ2b2lkIDA9PT1LLmxlbmd0aCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1s''@;'; put 'put ''aWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBLKTtyZXR1cm4gVyhLLEosc2UpfSksdGUuYWxsb2N8fCh0ZS5hbGxvYz1mdW5jdGlvbihLLEosc2Upe2lmKCJudW1iZXIiIT10eXBlb2YgSyl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInNpemUiIGFyZ3VtZW50IG11c3QgYmUg''@;'; put 'put ''b2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgSyk7aWYoSzwwfHxLPj0yMTQ3NDgzNjQ4KXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrSysnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gInNpemUiJyk7dmFyIG9lPVcoSyk7cmV0dXJuIEomJjAhPT1KLmxl''@;'; put 'put ''bmd0aD8ic3RyaW5nIj09dHlwZW9mIHNlP29lLmZpbGwoSixzZSk6b2UuZmlsbChKKTpvZS5maWxsKDApLG9lfSksIU4ua1N0cmluZ01heExlbmd0aCl0cnl7Ti5rU3RyaW5nTWF4TGVuZ3RoPWFlLmJpbmRpbmcoImJ1ZmZlciIpLmtTdHJpbmdNYXhMZW5ndGh9Y2F0Y2goSyl7fU4uY29uc3Rh''@;'; put 'put ''bnRzfHwoTi5jb25zdGFudHM9e01BWF9MRU5HVEg6Ti5rTWF4TGVuZ3RofSxOLmtTdHJpbmdNYXhMZW5ndGgmJihOLmNvbnN0YW50cy5NQVhfU1RSSU5HX0xFTkdUSD1OLmtTdHJpbmdNYXhMZW5ndGgpKSxVLmV4cG9ydHM9Tn0sNDE4OTooVSxRLGopPT57dmFyIHJlPWooOTUwOSkuQnVmZmVy''@;'; put 'put ''O2Z1bmN0aW9uIGFlKFksVyl7dGhpcy5fYmxvY2s9cmUuYWxsb2MoWSksdGhpcy5fZmluYWxTaXplPVcsdGhpcy5fYmxvY2tTaXplPVksdGhpcy5fbGVuPTB9YWUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihZLFcpeyJzdHJpbmciPT10eXBlb2YgWSYmKFk9cmUuZnJvbShZLFc9V3x8InV0''@;'; put 'put ''ZjgiKSk7Zm9yKHZhciBOPXRoaXMuX2Jsb2NrLHRlPXRoaXMuX2Jsb2NrU2l6ZSxLPVkubGVuZ3RoLEo9dGhpcy5fbGVuLHNlPTA7c2U8Szspe2Zvcih2YXIgb2U9SiV0ZSxjZT1NYXRoLm1pbihLLXNlLHRlLW9lKSxkZT0wO2RlPGNlO2RlKyspTltvZStkZV09WVtzZStkZV07c2UrPWNlLChK''@;'; put 'put ''Kz1jZSkldGU9PTAmJnRoaXMuX3VwZGF0ZShOKX1yZXR1cm4gdGhpcy5fbGVuKz1LLHRoaXN9LGFlLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oWSl7dmFyIFc9dGhpcy5fbGVuJXRoaXMuX2Jsb2NrU2l6ZTt0aGlzLl9ibG9ja1tXXT0xMjgsdGhpcy5fYmxvY2suZmlsbCgwLFcrMSksVz49''@;'; put 'put ''dGhpcy5fZmluYWxTaXplJiYodGhpcy5fdXBkYXRlKHRoaXMuX2Jsb2NrKSx0aGlzLl9ibG9jay5maWxsKDApKTt2YXIgTj04KnRoaXMuX2xlbjtpZihOPD00Mjk0OTY3Mjk1KXRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoTix0aGlzLl9ibG9ja1NpemUtNCk7ZWxzZXt2YXIgdGU9KDQyOTQ5''@;'; put 'put ''NjcyOTUmTik+Pj4wO3RoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoKE4tdGUpLzQyOTQ5NjcyOTYsdGhpcy5fYmxvY2tTaXplLTgpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUodGUsdGhpcy5fYmxvY2tTaXplLTQpfXRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayk7dmFyIEo9dGhpcy5faGFz''@;'; put 'put ''aCgpO3JldHVybiBZP0oudG9TdHJpbmcoWSk6Sn0sYWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl91cGRhdGUgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBzdWJjbGFzcyIpfSxVLmV4cG9ydHM9YWV9LDkwNzI6KFUsUSxqKT0+e3ZhciByZT1VLmV4cG9y''@;'; put 'put ''dHM9ZnVuY3Rpb24oYWUpe2FlPWFlLnRvTG93ZXJDYXNlKCk7dmFyIFk9cmVbYWVdO2lmKCFZKXRocm93IG5ldyBFcnJvcihhZSsiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKSIpO3JldHVybiBuZXcgWX07cmUuc2hhPWooNDQ0OCkscmUuc2hhMT1qKDgzMzYp''@;'; put 'put ''LHJlLnNoYTIyND1qKDg0MzIpLHJlLnNoYTI1Nj1qKDc0OTkpLHJlLnNoYTM4ND1qKDE2ODYpLHJlLnNoYTUxMj1qKDc4MTYpfSw0NDQ4OihVLFEsaik9Pnt2YXIgcmU9aig1NzE3KSxhZT1qKDQxODkpLFk9aig5NTA5KS5CdWZmZXIsVz1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3''@;'; put 'put ''NTg4LC04OTk0OTc1MTRdLE49bmV3IEFycmF5KDgwKTtmdW5jdGlvbiB0ZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixhZS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIEsoc2Upe3JldHVybiBzZTw8MzB8c2U+Pj4yfWZ1bmN0aW9uIEooc2Usb2UsY2UsZGUpe3JldHVybiAwPT09c2U/b2Um''@;'; put 'put ''Y2V8fm9lJmRlOjI9PT1zZT9vZSZjZXxvZSZkZXxjZSZkZTpvZV5jZV5kZX1yZSh0ZSxhZSksdGUucHJvdG90eXBlLmluaXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4Nzgs''@;'; put 'put ''dGhpcy5fZT0zMjg1Mzc3NTIwLHRoaXN9LHRlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHNlKXtmb3IodmFyIG9lLGNlPXRoaXMuX3csZGU9MHx0aGlzLl9hLHZlPTB8dGhpcy5fYixBZT0wfHRoaXMuX2Msa2U9MHx0aGlzLl9kLFNlPTB8dGhpcy5fZSxJZT0wO0llPDE2OysrSWUpY2Vb''@;'; put 'put ''SWVdPXNlLnJlYWRJbnQzMkJFKDQqSWUpO2Zvcig7SWU8ODA7KytJZSljZVtJZV09Y2VbSWUtM11eY2VbSWUtOF1eY2VbSWUtMTRdXmNlW0llLTE2XTtmb3IodmFyIFRlPTA7VGU8ODA7KytUZSl7dmFyIE1lPX5+KFRlLzIwKSxoZT0wfCgob2U9ZGUpPDw1fG9lPj4+MjcpK0ooTWUsdmUsQWUs''@;'; put 'put ''a2UpK1NlK2NlW1RlXStXW01lXTtTZT1rZSxrZT1BZSxBZT1LKHZlKSx2ZT1kZSxkZT1oZX10aGlzLl9hPWRlK3RoaXMuX2F8MCx0aGlzLl9iPXZlK3RoaXMuX2J8MCx0aGlzLl9jPUFlK3RoaXMuX2N8MCx0aGlzLl9kPWtlK3RoaXMuX2R8MCx0aGlzLl9lPVNlK3RoaXMuX2V8MH0sdGUucHJv''@;'; put 'put ''dG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIHNlPVkuYWxsb2NVbnNhZmUoMjApO3JldHVybiBzZS53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLHNlLndyaXRlSW50MzJCRSgwfHRoaXMuX2IsNCksc2Uud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxzZS53cml0ZUludDMyQkUoMHx0aGlz''@;'; put 'put ''Ll9kLDEyKSxzZS53cml0ZUludDMyQkUoMHx0aGlzLl9lLDE2KSxzZX0sVS5leHBvcnRzPXRlfSw4MzM2OihVLFEsaik9Pnt2YXIgcmU9aig1NzE3KSxhZT1qKDQxODkpLFk9aig5NTA5KS5CdWZmZXIsVz1bMTUxODUwMDI0OSwxODU5Nzc1MzkzLC0xODk0MDA3NTg4LC04OTk0OTc1MTRdLE49''@;'; put 'put ''bmV3IEFycmF5KDgwKTtmdW5jdGlvbiB0ZSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9TixhZS5jYWxsKHRoaXMsNjQsNTYpfWZ1bmN0aW9uIEsob2Upe3JldHVybiBvZTw8NXxvZT4+PjI3fWZ1bmN0aW9uIEoob2Upe3JldHVybiBvZTw8MzB8b2U+Pj4yfWZ1bmN0aW9uIHNlKG9lLGNlLGRlLHZl''@;'; put 'put ''KXtyZXR1cm4gMD09PW9lP2NlJmRlfH5jZSZ2ZToyPT09b2U/Y2UmZGV8Y2UmdmV8ZGUmdmU6Y2VeZGVedmV9cmUodGUsYWUpLHRlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAy''@;'; put 'put ''LHRoaXMuX2Q9MjcxNzMzODc4LHRoaXMuX2U9MzI4NTM3NzUyMCx0aGlzfSx0ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihvZSl7Zm9yKHZhciBjZSxkZT10aGlzLl93LHZlPTB8dGhpcy5fYSxBZT0wfHRoaXMuX2Isa2U9MHx0aGlzLl9jLFNlPTB8dGhpcy5fZCxJZT0wfHRoaXMuX2Us''@;'; put 'put ''VGU9MDtUZTwxNjsrK1RlKWRlW1RlXT1vZS5yZWFkSW50MzJCRSg0KlRlKTtmb3IoO1RlPDgwOysrVGUpZGVbVGVdPShjZT1kZVtUZS0zXV5kZVtUZS04XV5kZVtUZS0xNF1eZGVbVGUtMTZdKTw8MXxjZT4+PjMxO2Zvcih2YXIgTWU9MDtNZTw4MDsrK01lKXt2YXIgaGU9fn4oTWUvMjApLE89''@;'; put 'put ''Syh2ZSkrc2UoaGUsQWUsa2UsU2UpK0llK2RlW01lXStXW2hlXXwwO0llPVNlLFNlPWtlLGtlPUooQWUpLEFlPXZlLHZlPU99dGhpcy5fYT12ZSt0aGlzLl9hfDAsdGhpcy5fYj1BZSt0aGlzLl9ifDAsdGhpcy5fYz1rZSt0aGlzLl9jfDAsdGhpcy5fZD1TZSt0aGlzLl9kfDAsdGhpcy5fZT1J''@;'; put 'put ''ZSt0aGlzLl9lfDB9LHRlLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBvZT1ZLmFsbG9jVW5zYWZlKDIwKTtyZXR1cm4gb2Uud3JpdGVJbnQzMkJFKDB8dGhpcy5fYSwwKSxvZS53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLG9lLndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksb2Uu''@;'; put 'put ''d3JpdGVJbnQzMkJFKDB8dGhpcy5fZCwxMiksb2Uud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksb2V9LFUuZXhwb3J0cz10ZX0sODQzMjooVSxRLGopPT57dmFyIHJlPWooNTcxNyksYWU9aig3NDk5KSxZPWooNDE4OSksVz1qKDk1MDkpLkJ1ZmZlcixOPW5ldyBBcnJheSg2NCk7ZnVuY3Rp''@;'; put 'put ''b24gdGUoKXt0aGlzLmluaXQoKSx0aGlzLl93PU4sWS5jYWxsKHRoaXMsNjQsNTYpfXJlKHRlLGFlKSx0ZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTMyMzgzNzEwMzIsdGhpcy5fYj05MTQxNTA2NjMsdGhpcy5fYz04MTI3MDI5OTksdGhpcy5fZD00MTQ0OTEy''@;'; put 'put ''Njk3LHRoaXMuX2U9NDI5MDc3NTg1Nyx0aGlzLl9mPTE3NTA2MDMwMjUsdGhpcy5fZz0xNjk0MDc2ODM5LHRoaXMuX2g9MzIwNDA3NTQyOCx0aGlzfSx0ZS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgSz1XLmFsbG9jVW5zYWZlKDI4KTtyZXR1cm4gSy53cml0ZUludDMyQkUodGhp''@;'; put 'put ''cy5fYSwwKSxLLndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLEsud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksSy53cml0ZUludDMyQkUodGhpcy5fZCwxMiksSy53cml0ZUludDMyQkUodGhpcy5fZSwxNiksSy53cml0ZUludDMyQkUodGhpcy5fZiwyMCksSy53cml0ZUludDMyQkUodGhpcy5fZywy''@;'; put 'put ''NCksS30sVS5leHBvcnRzPXRlfSw3NDk5OihVLFEsaik9Pnt2YXIgcmU9aig1NzE3KSxhZT1qKDQxODkpLFk9aig5NTA5KS5CdWZmZXIsVz1bMTExNjM1MjQwOCwxODk5NDQ3NDQxLDMwNDkzMjM0NzEsMzkyMTAwOTU3Myw5NjE5ODcxNjMsMTUwODk3MDk5MywyNDUzNjM1NzQ4LDI4NzA3NjMy''@;'; put 'put ''MjEsMzYyNDM4MTA4MCwzMTA1OTg0MDEsNjA3MjI1Mjc4LDE0MjY4ODE5ODcsMTkyNTA3ODM4OCwyMTYyMDc4MjA2LDI2MTQ4ODgxMDMsMzI0ODIyMjU4MCwzODM1MzkwNDAxLDQwMjIyMjQ3NzQsMjY0MzQ3MDc4LDYwNDgwNzYyOCw3NzAyNTU5ODMsMTI0OTE1MDEyMiwxNTU1MDgxNjkyLDE5''@;'; put 'put ''OTYwNjQ5ODYsMjU1NDIyMDg4MiwyODIxODM0MzQ5LDI5NTI5OTY4MDgsMzIxMDMxMzY3MSwzMzM2NTcxODkxLDM1ODQ1Mjg3MTEsMTEzOTI2OTkzLDMzODI0MTg5NSw2NjYzMDcyMDUsNzczNTI5OTEyLDEyOTQ3NTczNzIsMTM5NjE4MjI5MSwxNjk1MTgzNzAwLDE5ODY2NjEwNTEsMjE3NzAy''@;'; put 'put ''NjM1MCwyNDU2OTU2MDM3LDI3MzA0ODU5MjEsMjgyMDMwMjQxMSwzMjU5NzMwODAwLDMzNDU3NjQ3NzEsMzUxNjA2NTgxNywzNjAwMzUyODA0LDQwOTQ1NzE5MDksMjc1NDIzMzQ0LDQzMDIyNzczNCw1MDY5NDg2MTYsNjU5MDYwNTU2LDg4Mzk5Nzg3Nyw5NTgxMzk1NzEsMTMyMjgyMjIxOCwx''@;'; put 'put ''NTM3MDAyMDYzLDE3NDc4NzM3NzksMTk1NTU2MjIyMiwyMDI0MTA0ODE1LDIyMjc3MzA0NTIsMjM2MTg1MjQyNCwyNDI4NDM2NDc0LDI3NTY3MzQxODcsMzIwNDAzMTQ3OSwzMzI5MzI1Mjk4XSxOPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gdGUoKXt0aGlzLmluaXQoKSx0aGlzLl93PU4sYWUu''@;'; put 'put ''Y2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBLKGRlLHZlLEFlKXtyZXR1cm4gQWVeZGUmKHZlXkFlKX1mdW5jdGlvbiBKKGRlLHZlLEFlKXtyZXR1cm4gZGUmdmV8QWUmKGRlfHZlKX1mdW5jdGlvbiBzZShkZSl7cmV0dXJuKGRlPj4+MnxkZTw8MzApXihkZT4+PjEzfGRlPDwxOSleKGRlPj4+''@;'; put 'put ''MjJ8ZGU8PDEwKX1mdW5jdGlvbiBvZShkZSl7cmV0dXJuKGRlPj4+NnxkZTw8MjYpXihkZT4+PjExfGRlPDwyMSleKGRlPj4+MjV8ZGU8PDcpfWZ1bmN0aW9uIGNlKGRlKXtyZXR1cm4oZGU+Pj43fGRlPDwyNSleKGRlPj4+MTh8ZGU8PDE0KV5kZT4+PjN9cmUodGUsYWUpLHRlLnByb3RvdHlw''@;'; put 'put ''ZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MTc3OTAzMzcwMyx0aGlzLl9iPTMxNDQxMzQyNzcsdGhpcy5fYz0xMDEzOTA0MjQyLHRoaXMuX2Q9Mjc3MzQ4MDc2Mix0aGlzLl9lPTEzNTk4OTMxMTksdGhpcy5fZj0yNjAwODIyOTI0LHRoaXMuX2c9NTI4NzM0NjM1LHRoaXMuX2g9''@;'; put 'put ''MTU0MTQ1OTIyNSx0aGlzfSx0ZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihkZSl7Zm9yKHZhciB2ZSxBZT10aGlzLl93LGtlPTB8dGhpcy5fYSxTZT0wfHRoaXMuX2IsSWU9MHx0aGlzLl9jLFRlPTB8dGhpcy5fZCxNZT0wfHRoaXMuX2UsaGU9MHx0aGlzLl9mLE89MHx0aGlzLl9nLHo9''@;'; put 'put ''MHx0aGlzLl9oLGVlPTA7ZWU8MTY7KytlZSlBZVtlZV09ZGUucmVhZEludDMyQkUoNCplZSk7Zm9yKDtlZTw2NDsrK2VlKUFlW2VlXT0wfCgoKHZlPUFlW2VlLTJdKT4+PjE3fHZlPDwxNSleKHZlPj4+MTl8dmU8PDEzKV52ZT4+PjEwKStBZVtlZS03XStjZShBZVtlZS0xNV0pK0FlW2VlLTE2''@;'; put 'put ''XTtmb3IodmFyIG5lPTA7bmU8NjQ7KytuZSl7dmFyIHg9eitvZShNZSkrSyhNZSxoZSxPKStXW25lXStBZVtuZV18MCxQPXNlKGtlKStKKGtlLFNlLEllKXwwO3o9TyxPPWhlLGhlPU1lLE1lPVRlK3h8MCxUZT1JZSxJZT1TZSxTZT1rZSxrZT14K1B8MH10aGlzLl9hPWtlK3RoaXMuX2F8MCx0''@;'; put 'put ''aGlzLl9iPVNlK3RoaXMuX2J8MCx0aGlzLl9jPUllK3RoaXMuX2N8MCx0aGlzLl9kPVRlK3RoaXMuX2R8MCx0aGlzLl9lPU1lK3RoaXMuX2V8MCx0aGlzLl9mPWhlK3RoaXMuX2Z8MCx0aGlzLl9nPU8rdGhpcy5fZ3wwLHRoaXMuX2g9eit0aGlzLl9ofDB9LHRlLnByb3RvdHlwZS5faGFzaD1m''@;'; put 'put ''dW5jdGlvbigpe3ZhciBkZT1ZLmFsbG9jVW5zYWZlKDMyKTtyZXR1cm4gZGUud3JpdGVJbnQzMkJFKHRoaXMuX2EsMCksZGUud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCksZGUud3JpdGVJbnQzMkJFKHRoaXMuX2MsOCksZGUud3JpdGVJbnQzMkJFKHRoaXMuX2QsMTIpLGRlLndyaXRlSW50MzJC''@;'; put 'put ''RSh0aGlzLl9lLDE2KSxkZS53cml0ZUludDMyQkUodGhpcy5fZiwyMCksZGUud3JpdGVJbnQzMkJFKHRoaXMuX2csMjQpLGRlLndyaXRlSW50MzJCRSh0aGlzLl9oLDI4KSxkZX0sVS5leHBvcnRzPXRlfSwxNjg2OihVLFEsaik9Pnt2YXIgcmU9aig1NzE3KSxhZT1qKDc4MTYpLFk9aig0MTg5''@;'; put 'put ''KSxXPWooOTUwOSkuQnVmZmVyLE49bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdGUoKXt0aGlzLmluaXQoKSx0aGlzLl93PU4sWS5jYWxsKHRoaXMsMTI4LDExMil9cmUodGUsYWUpLHRlLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FoPTM0MTgwNzAzNjUsdGhpcy5f''@;'; put 'put ''Ymg9MTY1NDI3MDI1MCx0aGlzLl9jaD0yNDM4NTI5MzcwLHRoaXMuX2RoPTM1NTQ2MjM2MCx0aGlzLl9laD0xNzMxNDA1NDE1LHRoaXMuX2ZoPTIzOTQxODAyMzEsdGhpcy5fZ2g9MzY3NTAwODUyNSx0aGlzLl9oaD0xMjAzMDYyODEzLHRoaXMuX2FsPTMyMzgzNzEwMzIsdGhpcy5fYmw9OTE0''@;'; put 'put ''MTUwNjYzLHRoaXMuX2NsPTgxMjcwMjk5OSx0aGlzLl9kbD00MTQ0OTEyNjk3LHRoaXMuX2VsPTQyOTA3NzU4NTcsdGhpcy5fZmw9MTc1MDYwMzAyNSx0aGlzLl9nbD0xNjk0MDc2ODM5LHRoaXMuX2hsPTMyMDQwNzU0MjgsdGhpc30sdGUucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFy''@;'; put 'put ''IEs9Vy5hbGxvY1Vuc2FmZSg0OCk7ZnVuY3Rpb24gSihzZSxvZSxjZSl7Sy53cml0ZUludDMyQkUoc2UsY2UpLEsud3JpdGVJbnQzMkJFKG9lLGNlKzQpfXJldHVybiBKKHRoaXMuX2FoLHRoaXMuX2FsLDApLEoodGhpcy5fYmgsdGhpcy5fYmwsOCksSih0aGlzLl9jaCx0aGlzLl9jbCwxNiks''@;'; put 'put ''Sih0aGlzLl9kaCx0aGlzLl9kbCwyNCksSih0aGlzLl9laCx0aGlzLl9lbCwzMiksSih0aGlzLl9maCx0aGlzLl9mbCw0MCksS30sVS5leHBvcnRzPXRlfSw3ODE2OihVLFEsaik9Pnt2YXIgcmU9aig1NzE3KSxhZT1qKDQxODkpLFk9aig5NTA5KS5CdWZmZXIsVz1bMTExNjM1MjQwOCwzNjA5''@;'; put 'put ''NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIxMDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4''@;'; put 'put ''MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEwNzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4''@;'; put 'put ''LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgsMjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5''@;'; put 'put ''ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0''@;'; put 'put ''MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0''@;'; put 'put ''MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQxMSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDks''@;'; put 'put ''MTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUwNjk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAy''@;'; put 'put ''MDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0''@;'; put 'put ''OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwy''@;'; put 'put ''NzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5''@;'; put 'put ''NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1OTFdLE49bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gdGUoKXt0aGlzLmluaXQoKSx0aGlzLl93PU4sYWUuY2FsbCh0aGlzLDEyOCwxMTIpfWZ1bmN0aW9uIEsoU2UsSWUsVGUpe3JldHVybiBUZV5T''@;'; put 'put ''ZSYoSWVeVGUpfWZ1bmN0aW9uIEooU2UsSWUsVGUpe3JldHVybiBTZSZJZXxUZSYoU2V8SWUpfWZ1bmN0aW9uIHNlKFNlLEllKXtyZXR1cm4oU2U+Pj4yOHxJZTw8NCleKEllPj4+MnxTZTw8MzApXihJZT4+Pjd8U2U8PDI1KX1mdW5jdGlvbiBvZShTZSxJZSl7cmV0dXJuKFNlPj4+MTR8SWU8''@;'; put 'put ''PDE4KV4oU2U+Pj4xOHxJZTw8MTQpXihJZT4+Pjl8U2U8PDIzKX1mdW5jdGlvbiBjZShTZSxJZSl7cmV0dXJuKFNlPj4+MXxJZTw8MzEpXihTZT4+Pjh8SWU8PDI0KV5TZT4+Pjd9ZnVuY3Rpb24gZGUoU2UsSWUpe3JldHVybihTZT4+PjF8SWU8PDMxKV4oU2U+Pj44fEllPDwyNCleKFNlPj4+''@;'; put 'put ''N3xJZTw8MjUpfWZ1bmN0aW9uIHZlKFNlLEllKXtyZXR1cm4oU2U+Pj4xOXxJZTw8MTMpXihJZT4+PjI5fFNlPDwzKV5TZT4+PjZ9ZnVuY3Rpb24gQWUoU2UsSWUpe3JldHVybihTZT4+PjE5fEllPDwxMyleKEllPj4+Mjl8U2U8PDMpXihTZT4+PjZ8SWU8PDI2KX1mdW5jdGlvbiBrZShTZSxJ''@;'; put 'put ''ZSl7cmV0dXJuIFNlPj4+MDxJZT4+PjA/MTowfXJlKHRlLGFlKSx0ZS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEz''@;'; put 'put ''NTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUx''@;'; put 'put ''MzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRoaXN9LHRlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFNlKXtmb3IodmFyIEllPXRoaXMuX3csVGU9MHx0aGlzLl9haCxNZT0wfHRoaXMuX2JoLGhlPTB8dGhpcy5fY2gsTz0w''@;'; put 'put ''fHRoaXMuX2RoLHo9MHx0aGlzLl9laCxlZT0wfHRoaXMuX2ZoLG5lPTB8dGhpcy5fZ2gseD0wfHRoaXMuX2hoLFA9MHx0aGlzLl9hbCxWPTB8dGhpcy5fYmwsVD0wfHRoaXMuX2NsLFM9MHx0aGlzLl9kbCxGPTB8dGhpcy5fZWwseWU9MHx0aGlzLl9mbCxDZT0wfHRoaXMuX2dsLERlPTB8dGhp''@;'; put 'put ''cy5faGwsUGU9MDtQZTwzMjtQZSs9MilJZVtQZV09U2UucmVhZEludDMyQkUoNCpQZSksSWVbUGUrMV09U2UucmVhZEludDMyQkUoNCpQZSs0KTtmb3IoO1BlPDE2MDtQZSs9Mil7dmFyIFFlPUllW1BlLTMwXSwkZT1JZVtQZS0zMCsxXSxndD1jZShRZSwkZSksd3Q9ZGUoJGUsUWUpLG10PXZl''@;'; put 'put ''KFFlPUllW1BlLTRdLCRlPUllW1BlLTQrMV0pLHZ0PUFlKCRlLFFlKSxCdD1JZVtQZS0zMl0sb249SWVbUGUtMzIrMV0sX3Q9d3QrSWVbUGUtMTQrMV18MCx0dD1ndCtJZVtQZS0xNF0ra2UoX3Qsd3QpfDA7dHQ9KHR0PXR0K210K2tlKF90PV90K3Z0fDAsdnQpfDApK0J0K2tlKF90PV90K29u''@;'; put 'put ''fDAsb24pfDAsSWVbUGVdPXR0LEllW1BlKzFdPV90fWZvcih2YXIgZXQ9MDtldDwxNjA7ZXQrPTIpe3R0PUllW2V0XSxfdD1JZVtldCsxXTt2YXIgbHQ9SihUZSxNZSxoZSksTHQ9SihQLFYsVCksQ3Q9c2UoVGUsUCksZnQ9c2UoUCxUZSksSHQ9b2UoeixGKSxHZT1vZShGLHopLFVlPVdbZXRd''@;'; put 'put ''LHl0PVdbZXQrMV0sanQ9Syh6LGVlLG5lKSxKdD1LKEYseWUsQ2UpLGduPURlK0dlfDAsZG49eCtIdCtrZShnbixEZSl8MDtkbj0oZG49KGRuPWRuK2p0K2tlKGduPWduK0p0fDAsSnQpfDApK1VlK2tlKGduPWduK3l0fDAseXQpfDApK3R0K2tlKGduPWduK190fDAsX3QpfDA7dmFyIHluPWZ0''@;'; put 'put ''K0x0fDAsbG49Q3QrbHQra2UoeW4sZnQpfDA7eD1uZSxEZT1DZSxuZT1lZSxDZT15ZSxlZT16LHllPUYsej1PK2RuK2tlKEY9UytnbnwwLFMpfDAsTz1oZSxTPVQsaGU9TWUsVD1WLE1lPVRlLFY9UCxUZT1kbitsbitrZShQPWduK3lufDAsZ24pfDB9dGhpcy5fYWw9dGhpcy5fYWwrUHwwLHRo''@;'; put 'put ''aXMuX2JsPXRoaXMuX2JsK1Z8MCx0aGlzLl9jbD10aGlzLl9jbCtUfDAsdGhpcy5fZGw9dGhpcy5fZGwrU3wwLHRoaXMuX2VsPXRoaXMuX2VsK0Z8MCx0aGlzLl9mbD10aGlzLl9mbCt5ZXwwLHRoaXMuX2dsPXRoaXMuX2dsK0NlfDAsdGhpcy5faGw9dGhpcy5faGwrRGV8MCx0aGlzLl9haD10''@;'; put 'put ''aGlzLl9haCtUZStrZSh0aGlzLl9hbCxQKXwwLHRoaXMuX2JoPXRoaXMuX2JoK01lK2tlKHRoaXMuX2JsLFYpfDAsdGhpcy5fY2g9dGhpcy5fY2graGUra2UodGhpcy5fY2wsVCl8MCx0aGlzLl9kaD10aGlzLl9kaCtPK2tlKHRoaXMuX2RsLFMpfDAsdGhpcy5fZWg9dGhpcy5fZWgreitrZSh0''@;'; put 'put ''aGlzLl9lbCxGKXwwLHRoaXMuX2ZoPXRoaXMuX2ZoK2VlK2tlKHRoaXMuX2ZsLHllKXwwLHRoaXMuX2doPXRoaXMuX2doK25lK2tlKHRoaXMuX2dsLENlKXwwLHRoaXMuX2hoPXRoaXMuX2hoK3gra2UodGhpcy5faGwsRGUpfDB9LHRlLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBT''@;'; put 'put ''ZT1ZLmFsbG9jVW5zYWZlKDY0KTtmdW5jdGlvbiBJZShUZSxNZSxoZSl7U2Uud3JpdGVJbnQzMkJFKFRlLGhlKSxTZS53cml0ZUludDMyQkUoTWUsaGUrNCl9cmV0dXJuIEllKHRoaXMuX2FoLHRoaXMuX2FsLDApLEllKHRoaXMuX2JoLHRoaXMuX2JsLDgpLEllKHRoaXMuX2NoLHRoaXMuX2Ns''@;'; put 'put ''LDE2KSxJZSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksSWUodGhpcy5fZWgsdGhpcy5fZWwsMzIpLEllKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxJZSh0aGlzLl9naCx0aGlzLl9nbCw0OCksSWUodGhpcy5faGgsdGhpcy5faGwsNTYpLFNlfSxVLmV4cG9ydHM9dGV9LDI4MzA6KFUsUSxqKT0+e1Uu''@;'; put 'put ''ZXhwb3J0cz1hZTt2YXIgcmU9aig3MTg3KS5FdmVudEVtaXR0ZXI7ZnVuY3Rpb24gYWUoKXtyZS5jYWxsKHRoaXMpfWooNTcxNykoYWUscmUpLGFlLlJlYWRhYmxlPWooOTQ4MSksYWUuV3JpdGFibGU9aig0MjI5KSxhZS5EdXBsZXg9aig2NzUzKSxhZS5UcmFuc2Zvcm09aig0NjA1KSxhZS5Q''@;'; put 'put ''YXNzVGhyb3VnaD1qKDI3MjUpLGFlLmZpbmlzaGVkPWooODYxMCksYWUucGlwZWxpbmU9aig5OTQ2KSxhZS5TdHJlYW09YWUsYWUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oWSxXKXt2YXIgTj10aGlzO2Z1bmN0aW9uIHRlKHZlKXtZLndyaXRhYmxlJiYhMT09PVkud3JpdGUodmUpJiZOLnBh''@;'; put 'put ''dXNlJiZOLnBhdXNlKCl9ZnVuY3Rpb24gSygpe04ucmVhZGFibGUmJk4ucmVzdW1lJiZOLnJlc3VtZSgpfU4ub24oImRhdGEiLHRlKSxZLm9uKCJkcmFpbiIsSyksWS5faXNTdGRpb3x8VyYmITE9PT1XLmVuZHx8KE4ub24oImVuZCIsc2UpLE4ub24oImNsb3NlIixvZSkpO3ZhciBKPSExO2Z1''@;'; put 'put ''bmN0aW9uIHNlKCl7Snx8KEo9ITAsWS5lbmQoKSl9ZnVuY3Rpb24gb2UoKXtKfHwoSj0hMCwiZnVuY3Rpb24iPT10eXBlb2YgWS5kZXN0cm95JiZZLmRlc3Ryb3koKSl9ZnVuY3Rpb24gY2UodmUpe2lmKGRlKCksMD09PXJlLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyB2ZX1m''@;'; put 'put ''dW5jdGlvbiBkZSgpe04ucmVtb3ZlTGlzdGVuZXIoImRhdGEiLHRlKSxZLnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsSyksTi5yZW1vdmVMaXN0ZW5lcigiZW5kIixzZSksTi5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLG9lKSxOLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsY2UpLFkucmVtb3ZlTGlz''@;'; put 'put ''dGVuZXIoImVycm9yIixjZSksTi5yZW1vdmVMaXN0ZW5lcigiZW5kIixkZSksTi5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGRlKSxZLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsZGUpfXJldHVybiBOLm9uKCJlcnJvciIsY2UpLFkub24oImVycm9yIixjZSksTi5vbigiZW5kIixkZSksTi5vbigi''@;'; put 'put ''Y2xvc2UiLGRlKSxZLm9uKCJjbG9zZSIsZGUpLFkuZW1pdCgicGlwZSIsTiksWX19LDI1NTM6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigzOTYpLkJ1ZmZlcixhZT1yZS5pc0VuY29kaW5nfHxmdW5jdGlvbihkZSl7c3dpdGNoKChkZT0iIitkZSkmJmRlLnRvTG93ZXJDYXNlKCkp''@;'; put 'put ''e2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOmNhc2UicmF3IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX07ZnVu''@;'; put 'put ''Y3Rpb24gWShkZSl7dmFyIHZlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uKEFlKXt2YXIga2U9ZnVuY3Rpb24oU2Upe2lmKCFTZSlyZXR1cm4idXRmOCI7Zm9yKHZhciBJZTs7KXN3aXRjaChTZSl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpj''@;'; put 'put ''YXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIFNlO2RlZmF1bHQ6aWYoSWUpcmV0dXJuO1Nl''@;'; put 'put ''PSgiIitTZSkudG9Mb3dlckNhc2UoKSxJZT0hMH19KEFlKTtpZigic3RyaW5nIiE9dHlwZW9mIGtlJiYocmUuaXNFbmNvZGluZz09PWFlfHwhYWUoQWUpKSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrQWUpO3JldHVybiBrZXx8QWV9KGRlKSx0aGlzLmVuY29kaW5nKXtj''@;'; put 'put ''YXNlInV0ZjE2bGUiOnRoaXMudGV4dD10ZSx0aGlzLmVuZD1LLHZlPTQ7YnJlYWs7Y2FzZSJ1dGY4Ijp0aGlzLmZpbGxMYXN0PU4sdmU9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PUosdGhpcy5lbmQ9c2UsdmU9MzticmVhaztkZWZhdWx0OnJldHVybiB0aGlzLndyaXRlPW9lLHZv''@;'; put 'put ''aWQodGhpcy5lbmQ9Y2UpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9cmUuYWxsb2NVbnNhZmUodmUpfWZ1bmN0aW9uIFcoZGUpe3JldHVybiBkZTw9MTI3PzA6ZGU+PjU9PTY/MjpkZT4+ND09MTQ/MzpkZT4+Mz09MzA/NDpkZT4+Nj09Mj8tMTotMn1m''@;'; put 'put ''dW5jdGlvbiBOKGRlKXt2YXIgdmU9dGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCxBZT1mdW5jdGlvbihrZSxTZSxJZSl7aWYoMTI4IT0oMTkyJlNlWzBdKSlyZXR1cm4ga2UubGFzdE5lZWQ9MCwiXHVmZmZkIjtpZihrZS5sYXN0TmVlZD4xJiZTZS5sZW5ndGg+MSl7aWYoMTI4IT0oMTky''@;'; put 'put ''JlNlWzFdKSlyZXR1cm4ga2UubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZihrZS5sYXN0TmVlZD4yJiZTZS5sZW5ndGg+MiYmMTI4IT0oMTkyJlNlWzJdKSlyZXR1cm4ga2UubGFzdE5lZWQ9MiwiXHVmZmZkIn19KHRoaXMsZGUpO3JldHVybiB2b2lkIDAhPT1BZT9BZTp0aGlzLmxhc3ROZWVkPD1k''@;'; put 'put ''ZS5sZW5ndGg/KGRlLmNvcHkodGhpcy5sYXN0Q2hhcix2ZSwwLHRoaXMubGFzdE5lZWQpLHRoaXMubGFzdENoYXIudG9TdHJpbmcodGhpcy5lbmNvZGluZywwLHRoaXMubGFzdFRvdGFsKSk6KGRlLmNvcHkodGhpcy5sYXN0Q2hhcix2ZSwwLGRlLmxlbmd0aCksdm9pZCh0aGlzLmxhc3ROZWVk''@;'; put 'put ''LT1kZS5sZW5ndGgpKX1mdW5jdGlvbiB0ZShkZSx2ZSl7aWYoKGRlLmxlbmd0aC12ZSklMj09MCl7dmFyIEFlPWRlLnRvU3RyaW5nKCJ1dGYxNmxlIix2ZSk7aWYoQWUpe3ZhciBrZT1BZS5jaGFyQ29kZUF0KEFlLmxlbmd0aC0xKTtpZihrZT49NTUyOTYmJmtlPD01NjMxOSlyZXR1cm4gdGhp''@;'; put 'put ''cy5sYXN0TmVlZD0yLHRoaXMubGFzdFRvdGFsPTQsdGhpcy5sYXN0Q2hhclswXT1kZVtkZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1kZVtkZS5sZW5ndGgtMV0sQWUuc2xpY2UoMCwtMSl9cmV0dXJuIEFlfXJldHVybiB0aGlzLmxhc3ROZWVkPTEsdGhpcy5sYXN0VG90YWw9Mix0aGlz''@;'; put 'put ''Lmxhc3RDaGFyWzBdPWRlW2RlLmxlbmd0aC0xXSxkZS50b1N0cmluZygidXRmMTZsZSIsdmUsZGUubGVuZ3RoLTEpfWZ1bmN0aW9uIEsoZGUpe3ZhciB2ZT1kZSYmZGUubGVuZ3RoP3RoaXMud3JpdGUoZGUpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3ZlK3RoaXMubGFzdENoYXIudG9TdHJp''@;'; put 'put ''bmcoInV0ZjE2bGUiLDAsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCk6dmV9ZnVuY3Rpb24gSihkZSx2ZSl7dmFyIEFlPShkZS5sZW5ndGgtdmUpJTM7cmV0dXJuIDA9PT1BZT9kZS50b1N0cmluZygiYmFzZTY0Iix2ZSk6KHRoaXMubGFzdE5lZWQ9My1BZSx0aGlzLmxhc3RUb3RhbD0z''@;'; put 'put ''LDE9PT1BZT90aGlzLmxhc3RDaGFyWzBdPWRlW2RlLmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT1kZVtkZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT1kZVtkZS5sZW5ndGgtMV0pLGRlLnRvU3RyaW5nKCJiYXNlNjQiLHZlLGRlLmxlbmd0aC1BZSkpfWZ1bmN0aW9uIHNlKGRlKXt2''@;'; put 'put ''YXIgdmU9ZGUmJmRlLmxlbmd0aD90aGlzLndyaXRlKGRlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD92ZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTp2ZX1mdW5jdGlvbiBvZShkZSl7cmV0dXJuIGRlLnRvU3RyaW5nKHRoaXMuZW5jb2Rpbmcp''@;'; put 'put ''fWZ1bmN0aW9uIGNlKGRlKXtyZXR1cm4gZGUmJmRlLmxlbmd0aD90aGlzLndyaXRlKGRlKToiIn1RLlN0cmluZ0RlY29kZXI9WSxZLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihkZSl7aWYoMD09PWRlLmxlbmd0aClyZXR1cm4iIjt2YXIgdmUsQWU7aWYodGhpcy5sYXN0TmVlZCl7aWYodm9p''@;'; put 'put ''ZCAwPT09KHZlPXRoaXMuZmlsbExhc3QoZGUpKSlyZXR1cm4iIjtBZT10aGlzLmxhc3ROZWVkLHRoaXMubGFzdE5lZWQ9MH1lbHNlIEFlPTA7cmV0dXJuIEFlPGRlLmxlbmd0aD92ZT92ZSt0aGlzLnRleHQoZGUsQWUpOnRoaXMudGV4dChkZSxBZSk6dmV8fCIifSxZLnByb3RvdHlwZS5lbmQ9''@;'; put 'put ''ZnVuY3Rpb24oZGUpe3ZhciB2ZT1kZSYmZGUubGVuZ3RoP3RoaXMud3JpdGUoZGUpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP3ZlKyJcdWZmZmQiOnZlfSxZLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKGRlLHZlKXt2YXIgQWU9ZnVuY3Rpb24oU2UsSWUsVGUpe3ZhciBNZT1JZS5sZW5ndGgt''@;'; put 'put ''MTtpZihNZTxUZSlyZXR1cm4gMDt2YXIgaGU9VyhJZVtNZV0pO3JldHVybiBoZT49MD8oaGU+MCYmKFNlLmxhc3ROZWVkPWhlLTEpLGhlKTotLU1lPFRlfHwtMj09PWhlPzA6KGhlPVcoSWVbTWVdKSk+PTA/KGhlPjAmJihTZS5sYXN0TmVlZD1oZS0yKSxoZSk6LS1NZTxUZXx8LTI9PT1oZT8w''@;'; put 'put ''OihoZT1XKEllW01lXSkpPj0wPyhoZT4wJiYoMj09PWhlP2hlPTA6U2UubGFzdE5lZWQ9aGUtMyksaGUpOjB9KHRoaXMsZGUsdmUpO2lmKCF0aGlzLmxhc3ROZWVkKXJldHVybiBkZS50b1N0cmluZygidXRmOCIsdmUpO3RoaXMubGFzdFRvdGFsPUFlO3ZhciBrZT1kZS5sZW5ndGgtKEFlLXRo''@;'; put 'put ''aXMubGFzdE5lZWQpO3JldHVybiBkZS5jb3B5KHRoaXMubGFzdENoYXIsMCxrZSksZGUudG9TdHJpbmcoInV0ZjgiLHZlLGtlKX0sWS5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24oZGUpe2lmKHRoaXMubGFzdE5lZWQ8PWRlLmxlbmd0aClyZXR1cm4gZGUuY29weSh0aGlzLmxhc3RDaGFy''@;'; put 'put ''LHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7ZGUuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCxkZS5sZW5ndGgp''@;'; put 'put ''LHRoaXMubGFzdE5lZWQtPWRlLmxlbmd0aH19LDM5NjooVSxRLGopPT57dmFyIHJlPWooODc2NCksYWU9cmUuQnVmZmVyO2Z1bmN0aW9uIFkoTix0ZSl7Zm9yKHZhciBLIGluIE4pdGVbS109TltLXX1mdW5jdGlvbiBXKE4sdGUsSyl7cmV0dXJuIGFlKE4sdGUsSyl9YWUuZnJvbSYmYWUuYWxs''@;'; put 'put ''b2MmJmFlLmFsbG9jVW5zYWZlJiZhZS5hbGxvY1Vuc2FmZVNsb3c/VS5leHBvcnRzPXJlOihZKHJlLFEpLFEuQnVmZmVyPVcpLFcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoYWUucHJvdG90eXBlKSxZKGFlLFcpLFcuZnJvbT1mdW5jdGlvbihOLHRlLEspe2lmKCJudW1iZXIiPT10eXBlb2Yg''@;'; put 'put ''Til0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBhZShOLHRlLEspfSxXLmFsbG9jPWZ1bmN0aW9uKE4sdGUsSyl7aWYoIm51bWJlciIhPXR5cGVvZiBOKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1i''@;'; put 'put ''ZXIiKTt2YXIgSj1hZShOKTtyZXR1cm4gdm9pZCAwIT09dGU/InN0cmluZyI9PXR5cGVvZiBLP0ouZmlsbCh0ZSxLKTpKLmZpbGwodGUpOkouZmlsbCgwKSxKfSxXLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKE4pe2lmKCJudW1iZXIiIT10eXBlb2YgTil0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1''@;'; put 'put ''bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIGFlKE4pfSxXLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihOKXtpZigibnVtYmVyIiE9dHlwZW9mIE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiByZS5TbG93QnVmZmVyKE4pfX0s''@;'; put 'put ''Nzg1NzooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooMzY4OSksYWU9aig4NTc1KS5RYyxZPWooOTUzOSksVz1qKDc1MiksTj1qKDIyMjQpLnksdGU9aig1NzYxKS5tLEs9aig4OTcxKS5VLEo9aig0NTYpLHtmcm9tQ2FsbGJhY2s6c2V9PWooNzA0MSksb2U9L15bXHgyMVx4MjMt''@;'; put 'put ''XHgyQlx4MkQtXHgzQVx4M0MtXHg1Qlx4NUQtXHg3RV0rJC8sY2U9L1tceDAwLVx4MUZdLyxkZT1bIlxuIiwiXHIiLCJcMCJdLHZlPS9bXHgyMC1ceDNBXHgzQy1ceDdFXSsvLEFlPS9bXHgwOVx4MjAtXHgyRlx4M0ItXHg0MFx4NUItXHg2MFx4N0ItXHg3RV0vLGtlPXtqYW46MCxmZWI6MSxt''@;'; put 'put ''YXI6MixhcHI6MyxtYXk6NCxqdW46NSxqdWw6NixhdWc6NyxzZXA6OCxvY3Q6OSxub3Y6MTAsZGVjOjExfSxTZT0yMTQ3NDgzNjQ3ZTMsSWU9J0ludmFsaWQgc2FtZVNpdGVDb250ZXh0IG9wdGlvbiBmb3IgZ2V0Q29va2llcygpOyBleHBlY3RlZCBvbmUgb2YgInN0cmljdCIsICJsYXgiLCBv''@;'; put 'put ''ciAibm9uZSInO2Z1bmN0aW9uIFRlKG10KXtjb25zdCB2dD1TdHJpbmcobXQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIm5vbmUiPT09dnR8fCJsYXgiPT09dnR8fCJzdHJpY3QiPT09dnQ/dnQ6bnVsbH1jb25zdCBNZT1PYmplY3QuZnJlZXplKHtTSUxFTlQ6InNpbGVudCIsU1RSSUNUOiJzdHJp''@;'; put 'put ''Y3QiLERJU0FCTEVEOiJ1bnNhZmUtZGlzYWJsZWQifSk7dmFyIGhlPS8oPzpeKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSl7M30kKXwoPzpeKD86KD86W2EtZlxkXXsxLDR9Oil7N30oPzpbYS1m''@;'; put 'put ''XGRdezEsNH18Oil8KD86W2EtZlxkXXsxLDR9Oil7Nn0oPzooPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKD86XC4oPzoyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldXGR8XGQpKXszfXw6W2EtZlxkXXsxLDR9fDopfCg/OlthLWZcZF17MSw0fTopezV9KD86Oig/OjI1''@;'; put 'put ''WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsMn18Oil8KD86W2EtZlxkXXsxLDR9Oil7NH0oPzooPzo6W2EtZlxkXXsxLDR9KXswLDF9Oig/OjI1WzAtNV18Mlsw''@;'; put 'put ''LTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsM318Oil8KD86W2EtZlxkXXsxLDR9Oil7M30oPzooPzo6W2EtZlxkXXsxLDR9KXswLDJ9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxk''@;'; put 'put ''XGR8WzEtOV1cZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsNH18Oil8KD86W2EtZlxkXXsxLDR9Oil7Mn0oPzooPzo6W2EtZlxkXXsxLDR9KXswLDN9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1c''@;'; put 'put ''ZHxcZCkoPzpcLig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsNX18Oil8KD86W2EtZlxkXXsxLDR9Oil7MX0oPzooPzo6W2EtZlxkXXsxLDR9KXswLDR9Oig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkoPzpc''@;'; put 'put ''Lig/OjI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV1cZHxcZCkpezN9fCg/OjpbYS1mXGRdezEsNH0pezEsNn18Oil8KD86Oig/Oig/OjpbYS1mXGRdezEsNH0pezAsNX06KD86MjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XVxkfFxkKSg/OlwuKD86MjVbMC01XXwyWzAtNF1cZHwxXGRc''@;'; put 'put ''ZHxbMS05XVxkfFxkKSl7M318KD86OlthLWZcZF17MSw0fSl7MSw3fXw6KSkpJCkvO2Z1bmN0aW9uIE8obXQsdnQsQXQsaHQpe2xldCBCdD0wO2Zvcig7QnQ8bXQubGVuZ3RoOyl7Y29uc3Qgb249bXQuY2hhckNvZGVBdChCdCk7aWYob248PTQ3fHxvbj49NTgpYnJlYWs7QnQrK31yZXR1cm4g''@;'; put 'put ''QnQ8dnR8fEJ0PkF0P251bGw6aHR8fEJ0PT1tdC5sZW5ndGg/cGFyc2VJbnQobXQuc3Vic3RyKDAsQnQpLDEwKTpudWxsfWZ1bmN0aW9uIHoobXQpe2NvbnN0IHZ0PW10LnNwbGl0KCI6IiksQXQ9WzAsMCwwXTtpZigzIT09dnQubGVuZ3RoKXJldHVybiBudWxsO2ZvcihsZXQgaHQ9MDtodDwz''@;'; put 'put ''O2h0Kyspe2NvbnN0IG9uPU8odnRbaHRdLDEsMiwyPT1odCk7aWYobnVsbD09PW9uKXJldHVybiBudWxsO0F0W2h0XT1vbn1yZXR1cm4gQXR9ZnVuY3Rpb24gZWUobXQpe210PVN0cmluZyhtdCkuc3Vic3RyKDAsMykudG9Mb3dlckNhc2UoKTtjb25zdCB2dD1rZVttdF07cmV0dXJuIHZ0Pj0w''@;'; put 'put ''P3Z0Om51bGx9ZnVuY3Rpb24gbmUobXQpe2lmKCFtdClyZXR1cm47Y29uc3QgdnQ9bXQuc3BsaXQoQWUpO2lmKCF2dClyZXR1cm47bGV0IEF0PW51bGwsaHQ9bnVsbCxCdD1udWxsLG9uPW51bGwsX3Q9bnVsbCx0dD1udWxsO2ZvcihsZXQgZXQ9MDtldDx2dC5sZW5ndGg7ZXQrKyl7Y29uc3Qg''@;'; put 'put ''bHQ9dnRbZXRdLnRyaW0oKTtpZighbHQubGVuZ3RoKWNvbnRpbnVlO2xldCBMdDtudWxsPT09QnQmJihMdD16KGx0KSxMdCk/KEF0PUx0WzBdLGh0PUx0WzFdLEJ0PUx0WzJdKTpudWxsIT09b258fChMdD1PKGx0LDEsMiwhMCksbnVsbD09PUx0KT9udWxsIT09X3R8fChMdD1lZShsdCksbnVs''@;'; put 'put ''bD09PUx0KT9udWxsPT09dHQmJihMdD1PKGx0LDIsNCwhMCksbnVsbCE9PUx0JiYodHQ9THQsdHQ+PTcwJiZ0dDw9OTk/dHQrPTE5MDA6dHQ+PTAmJnR0PD02OSYmKHR0Kz0yZTMpKSk6X3Q9THQ6b249THR9cmV0dXJuIG51bGw9PT1vbnx8bnVsbD09PV90fHxudWxsPT09dHR8fG51bGw9PT1C''@;'; put 'put ''dHx8b248MXx8b24+MzF8fHR0PDE2MDF8fEF0PjIzfHxodD41OXx8QnQ+NTk/dm9pZCAwOm5ldyBEYXRlKERhdGUuVVRDKHR0LF90LG9uLEF0LGh0LEJ0KSl9ZnVuY3Rpb24geChtdCl7cmV0dXJuIG10LnRvVVRDU3RyaW5nKCl9ZnVuY3Rpb24gUChtdCl7cmV0dXJuIG51bGw9PW10P251bGw6''@;'; put 'put ''KG10PW10LnRyaW0oKS5yZXBsYWNlKC9eXC4vLCIiKSxyZSYmL1teXHUwMDAxLVx1MDA3Zl0vLnRlc3QobXQpJiYobXQ9cmUudG9BU0NJSShtdCkpLG10LnRvTG93ZXJDYXNlKCkpfWZ1bmN0aW9uIFYobXQsdnQsQXQpe2lmKG51bGw9PW10fHxudWxsPT12dClyZXR1cm4gbnVsbDtpZighMSE9''@;'; put 'put ''PUF0JiYobXQ9UChtdCksdnQ9UCh2dCkpLG10PT12dClyZXR1cm4hMDtjb25zdCBodD1tdC5pbmRleE9mKHZ0KTtyZXR1cm4hKGh0PD0wfHxtdC5sZW5ndGghPT12dC5sZW5ndGgraHR8fCIuIiE9PW10LnN1YnN0cihodC0xLDEpfHxoZS50ZXN0KG10KSl9ZnVuY3Rpb24gVChtdCl7aWYoIW10''@;'; put 'put ''fHwiLyIhPT1tdC5zdWJzdHIoMCwxKSlyZXR1cm4iLyI7aWYoIi8iPT09bXQpcmV0dXJuIG10O2NvbnN0IHZ0PW10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIDA9PT12dD8iLyI6bXQuc2xpY2UoMCx2dCl9ZnVuY3Rpb24gRihtdCx2dCl7dnQmJiJvYmplY3QiPT10eXBlb2YgdnR8fCh2dD17''@;'; put 'put ''fSk7Y29uc3QgQXQ9KG10PW10LnRyaW0oKSkuaW5kZXhPZigiOyIpLGh0PWZ1bmN0aW9uIFMobXQsdnQpe2xldCBBdCxodCxCdD0obXQ9ZnVuY3Rpb24oX3Qpe2ZvcihsZXQgdHQ9MDt0dDxkZS5sZW5ndGg7dHQrKyl7Y29uc3QgZXQ9X3QuaW5kZXhPZihkZVt0dF0pOy0xIT09ZXQmJihfdD1f''@;'; put 'put ''dC5zdWJzdHIoMCxldCkpfXJldHVybiBfdH0obXQpKS5pbmRleE9mKCI9Iik7aWYodnQpMD09PUJ0JiYoQnQ9KG10PW10LnN1YnN0cigxKSkuaW5kZXhPZigiPSIpKTtlbHNlIGlmKEJ0PD0wKXJldHVybjtpZihCdDw9MD8oQXQ9IiIsaHQ9bXQudHJpbSgpKTooQXQ9bXQuc3Vic3RyKDAsQnQp''@;'; put 'put ''LnRyaW0oKSxodD1tdC5zdWJzdHIoQnQrMSkudHJpbSgpKSxjZS50ZXN0KEF0KXx8Y2UudGVzdChodCkpcmV0dXJuO2NvbnN0IG9uPW5ldyAkZTtyZXR1cm4gb24ua2V5PUF0LG9uLnZhbHVlPWh0LG9ufSgtMT09PUF0P210Om10LnN1YnN0cigwLEF0KSwhIXZ0Lmxvb3NlKTtpZighaHQpcmV0''@;'; put 'put ''dXJuO2lmKC0xPT09QXQpcmV0dXJuIGh0O2NvbnN0IEJ0PW10LnNsaWNlKEF0KzEpLnRyaW0oKTtpZigwPT09QnQubGVuZ3RoKXJldHVybiBodDtjb25zdCBvbj1CdC5zcGxpdCgiOyIpO2Zvcig7b24ubGVuZ3RoOyl7Y29uc3QgX3Q9b24uc2hpZnQoKS50cmltKCk7aWYoMD09PV90Lmxlbmd0''@;'; put 'put ''aCljb250aW51ZTtjb25zdCB0dD1fdC5pbmRleE9mKCI9Iik7bGV0IGV0LGx0O3N3aXRjaCgtMT09PXR0PyhldD1fdCxsdD1udWxsKTooZXQ9X3Quc3Vic3RyKDAsdHQpLGx0PV90LnN1YnN0cih0dCsxKSksZXQ9ZXQudHJpbSgpLnRvTG93ZXJDYXNlKCksbHQmJihsdD1sdC50cmltKCkpLGV0''@;'; put 'put ''KXtjYXNlImV4cGlyZXMiOmlmKGx0KXtjb25zdCBMdD1uZShsdCk7THQmJihodC5leHBpcmVzPUx0KX1icmVhaztjYXNlIm1heC1hZ2UiOmlmKGx0JiYvXi0/WzAtOV0rJC8udGVzdChsdCkpe2NvbnN0IEx0PXBhcnNlSW50KGx0LDEwKTtodC5zZXRNYXhBZ2UoTHQpfWJyZWFrO2Nhc2UiZG9t''@;'; put 'put ''YWluIjppZihsdCl7Y29uc3QgTHQ9bHQudHJpbSgpLnJlcGxhY2UoL15cLi8sIiIpO0x0JiYoaHQuZG9tYWluPUx0LnRvTG93ZXJDYXNlKCkpfWJyZWFrO2Nhc2UicGF0aCI6aHQucGF0aD1sdCYmIi8iPT09bHRbMF0/bHQ6bnVsbDticmVhaztjYXNlInNlY3VyZSI6aHQuc2VjdXJlPSEwO2Jy''@;'; put 'put ''ZWFrO2Nhc2UiaHR0cG9ubHkiOmh0Lmh0dHBPbmx5PSEwO2JyZWFrO2Nhc2Uic2FtZXNpdGUiOnN3aXRjaChsdD9sdC50b0xvd2VyQ2FzZSgpOiIiKXtjYXNlInN0cmljdCI6aHQuc2FtZVNpdGU9InN0cmljdCI7YnJlYWs7Y2FzZSJsYXgiOmh0LnNhbWVTaXRlPSJsYXgifWJyZWFrO2RlZmF1''@;'; put 'put ''bHQ6aHQuZXh0ZW5zaW9ucz1odC5leHRlbnNpb25zfHxbXSxodC5leHRlbnNpb25zLnB1c2goX3QpfX1yZXR1cm4gaHR9ZnVuY3Rpb24geWUobXQpe2xldCB2dDt0cnl7dnQ9SlNPTi5wYXJzZShtdCl9Y2F0Y2goQXQpe3JldHVybiBBdH1yZXR1cm4gdnR9ZnVuY3Rpb24gQ2UobXQpe2lmKCFt''@;'; put 'put ''dClyZXR1cm4gbnVsbDtsZXQgdnQ7aWYoInN0cmluZyI9PXR5cGVvZiBtdCl7aWYodnQ9eWUobXQpLHZ0IGluc3RhbmNlb2YgRXJyb3IpcmV0dXJuIG51bGx9ZWxzZSB2dD1tdDtjb25zdCBBdD1uZXcgJGU7Zm9yKGxldCBodD0wO2h0PCRlLnNlcmlhbGl6YWJsZVByb3BlcnRpZXMubGVuZ3Ro''@;'; put 'put ''O2h0Kyspe2NvbnN0IEJ0PSRlLnNlcmlhbGl6YWJsZVByb3BlcnRpZXNbaHRdO3ZvaWQgMCE9PXZ0W0J0XSYmdnRbQnRdIT09UWVbQnRdJiYoQXRbQnRdPSJleHBpcmVzIj09PUJ0fHwiY3JlYXRpb24iPT09QnR8fCJsYXN0QWNjZXNzZWQiPT09QnQ/bnVsbD09PXZ0W0J0XT9udWxsOiJJbmZp''@;'; put 'put ''bml0eSI9PXZ0W0J0XT8iSW5maW5pdHkiOm5ldyBEYXRlKHZ0W0J0XSk6dnRbQnRdKX1yZXR1cm4gQXR9ZnVuY3Rpb24gRGUobXQsdnQpe2xldCBBdD0wO3JldHVybiBBdD0odnQucGF0aD92dC5wYXRoLmxlbmd0aDowKS0obXQucGF0aD9tdC5wYXRoLmxlbmd0aDowKSwwIT09QXR8fChBdD0o''@;'; put 'put ''bXQuY3JlYXRpb24/bXQuY3JlYXRpb24uZ2V0VGltZSgpOlNlKS0odnQuY3JlYXRpb24/dnQuY3JlYXRpb24uZ2V0VGltZSgpOlNlKSwwIT09QXR8fChBdD1tdC5jcmVhdGlvbkluZGV4LXZ0LmNyZWF0aW9uSW5kZXgpKSxBdH1mdW5jdGlvbiBQZShtdCl7aWYobXQgaW5zdGFuY2VvZiBPYmpl''@;'; put 'put ''Y3QpcmV0dXJuIG10O3RyeXttdD1kZWNvZGVVUkkobXQpfWNhdGNoKHZ0KXt9cmV0dXJuIGFlKG10KX1jb25zdCBRZT17a2V5OiIiLHZhbHVlOiIiLGV4cGlyZXM6IkluZmluaXR5IixtYXhBZ2U6bnVsbCxkb21haW46bnVsbCxwYXRoOm51bGwsc2VjdXJlOiExLGh0dHBPbmx5OiExLGV4dGVu''@;'; put 'put ''c2lvbnM6bnVsbCxob3N0T25seTpudWxsLHBhdGhJc0RlZmF1bHQ6bnVsbCxjcmVhdGlvbjpudWxsLGxhc3RBY2Nlc3NlZDpudWxsLHNhbWVTaXRlOiJub25lIn07Y2xhc3MgJGV7Y29uc3RydWN0b3IodnQ9e30pe1kuaW5zcGVjdC5jdXN0b20mJih0aGlzW1kuaW5zcGVjdC5jdXN0b21dPXRo''@;'; put 'put ''aXMuaW5zcGVjdCksT2JqZWN0LmFzc2lnbih0aGlzLFFlLHZ0KSx0aGlzLmNyZWF0aW9uPXRoaXMuY3JlYXRpb258fG5ldyBEYXRlLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJjcmVhdGlvbkluZGV4Iix7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFs''@;'; put 'put ''dWU6KyskZS5jb29raWVzQ3JlYXRlZH0pfWluc3BlY3QoKXtjb25zdCB2dD1EYXRlLm5vdygpLEF0PW51bGwhPXRoaXMuaG9zdE9ubHk/dGhpcy5ob3N0T25seToiPyIsaHQ9dGhpcy5jcmVhdGlvbj92dC10aGlzLmNyZWF0aW9uLmdldFRpbWUoKSsibXMiOiI/IixCdD10aGlzLmxhc3RBY2Nl''@;'; put 'put ''c3NlZD92dC10aGlzLmxhc3RBY2Nlc3NlZC5nZXRUaW1lKCkrIm1zIjoiPyI7cmV0dXJuYENvb2tpZT0iJHt0aGlzLnRvU3RyaW5nKCl9OyBob3N0T25seT0ke0F0fTsgYUFnZT0ke0J0fTsgY0FnZT0ke2h0fSJgfXRvSlNPTigpe2NvbnN0IHZ0PXt9O2Zvcihjb25zdCBBdCBvZiAkZS5zZXJp''@;'; put 'put ''YWxpemFibGVQcm9wZXJ0aWVzKXRoaXNbQXRdIT09UWVbQXRdJiYoImV4cGlyZXMiPT09QXR8fCJjcmVhdGlvbiI9PT1BdHx8Imxhc3RBY2Nlc3NlZCI9PT1BdD92dFtBdF09bnVsbD09PXRoaXNbQXRdP251bGw6IkluZmluaXR5Ij09dGhpc1tBdF0/IkluZmluaXR5Ijp0aGlzW0F0XS50b0lT''@;'; put 'put ''T1N0cmluZygpOiJtYXhBZ2UiPT09QXQ/bnVsbCE9PXRoaXNbQXRdJiYodnRbQXRdPXRoaXNbQXRdPT0xLzB8fHRoaXNbQXRdPT0tMS8wP3RoaXNbQXRdLnRvU3RyaW5nKCk6dGhpc1tBdF0pOnRoaXNbQXRdIT09UWVbQXRdJiYodnRbQXRdPXRoaXNbQXRdKSk7cmV0dXJuIHZ0fWNsb25lKCl7''@;'; put 'put ''cmV0dXJuIENlKHRoaXMudG9KU09OKCkpfXZhbGlkYXRlKCl7aWYoIW9lLnRlc3QodGhpcy52YWx1ZSl8fCEodGhpcy5leHBpcmVzPT0xLzB8fHRoaXMuZXhwaXJlcyBpbnN0YW5jZW9mIERhdGV8fG5lKHRoaXMuZXhwaXJlcykpfHxudWxsIT10aGlzLm1heEFnZSYmdGhpcy5tYXhBZ2U8PTB8''@;'; put 'put ''fG51bGwhPXRoaXMucGF0aCYmIXZlLnRlc3QodGhpcy5wYXRoKSlyZXR1cm4hMTtjb25zdCB2dD10aGlzLmNkb21haW4oKTtyZXR1cm4hKHZ0JiYodnQubWF0Y2goL1wuJC8pfHxudWxsPT1XLmdldFB1YmxpY1N1ZmZpeCh2dCkpKX1zZXRFeHBpcmVzKHZ0KXt0aGlzLmV4cGlyZXM9dnQgaW5z''@;'; put 'put ''dGFuY2VvZiBEYXRlP3Z0Om5lKHZ0KXx8IkluZmluaXR5In1zZXRNYXhBZ2UodnQpe3RoaXMubWF4QWdlPXZ0PT09MS8wfHx2dD09PS0xLzA/dnQudG9TdHJpbmcoKTp2dH1jb29raWVTdHJpbmcoKXtsZXQgdnQ9dGhpcy52YWx1ZTtyZXR1cm4gbnVsbD09dnQmJih2dD0iIiksIiI9PT10aGlz''@;'; put 'put ''LmtleT92dDpgJHt0aGlzLmtleX09JHt2dH1gfXRvU3RyaW5nKCl7bGV0IHZ0PXRoaXMuY29va2llU3RyaW5nKCk7cmV0dXJuIHRoaXMuZXhwaXJlcyE9MS8wJiYodGhpcy5leHBpcmVzIGluc3RhbmNlb2YgRGF0ZT92dCs9YDsgRXhwaXJlcz0ke3godGhpcy5leHBpcmVzKX1gOnZ0Kz1gOyBF''@;'; put 'put ''eHBpcmVzPSR7dGhpcy5leHBpcmVzfWApLG51bGwhPXRoaXMubWF4QWdlJiZ0aGlzLm1heEFnZSE9MS8wJiYodnQrPWA7IE1heC1BZ2U9JHt0aGlzLm1heEFnZX1gKSx0aGlzLmRvbWFpbiYmIXRoaXMuaG9zdE9ubHkmJih2dCs9YDsgRG9tYWluPSR7dGhpcy5kb21haW59YCksdGhpcy5wYXRo''@;'; put 'put ''JiYodnQrPWA7IFBhdGg9JHt0aGlzLnBhdGh9YCksdGhpcy5zZWN1cmUmJih2dCs9IjsgU2VjdXJlIiksdGhpcy5odHRwT25seSYmKHZ0Kz0iOyBIdHRwT25seSIpLHRoaXMuc2FtZVNpdGUmJiJub25lIiE9PXRoaXMuc2FtZVNpdGUmJih2dCs9YDsgU2FtZVNpdGU9JHskZS5zYW1lU2l0ZUNh''@;'; put 'put ''bm9uaWNhbFt0aGlzLnNhbWVTaXRlLnRvTG93ZXJDYXNlKCldfHx0aGlzLnNhbWVTaXRlfWApLHRoaXMuZXh0ZW5zaW9ucyYmdGhpcy5leHRlbnNpb25zLmZvckVhY2goQXQ9Pnt2dCs9YDsgJHtBdH1gfSksdnR9VFRMKHZ0KXtpZihudWxsIT10aGlzLm1heEFnZSlyZXR1cm4gdGhpcy5tYXhB''@;'; put 'put ''Z2U8PTA/MDoxZTMqdGhpcy5tYXhBZ2U7bGV0IEF0PXRoaXMuZXhwaXJlcztyZXR1cm4gQXQhPTEvMD8oQXQgaW5zdGFuY2VvZiBEYXRlfHwoQXQ9bmUoQXQpfHwxLzApLEF0PT0xLzA/MS8wOkF0LmdldFRpbWUoKS0odnR8fERhdGUubm93KCkpKToxLzB9ZXhwaXJ5VGltZSh2dCl7aWYobnVs''@;'; put 'put ''bCE9dGhpcy5tYXhBZ2Upe2NvbnN0IEF0PXZ0fHx0aGlzLmNyZWF0aW9ufHxuZXcgRGF0ZSxodD10aGlzLm1heEFnZTw9MD8tMS8wOjFlMyp0aGlzLm1heEFnZTtyZXR1cm4gQXQuZ2V0VGltZSgpK2h0fXJldHVybiB0aGlzLmV4cGlyZXM9PTEvMD8xLzA6dGhpcy5leHBpcmVzLmdldFRpbWUo''@;'; put 'put ''KX1leHBpcnlEYXRlKHZ0KXtjb25zdCBBdD10aGlzLmV4cGlyeVRpbWUodnQpO3JldHVybiBBdD09MS8wP25ldyBEYXRlKFNlKTpBdD09LTEvMD9uZXcgRGF0ZSgwKTpuZXcgRGF0ZShBdCl9aXNQZXJzaXN0ZW50KCl7cmV0dXJuIG51bGwhPXRoaXMubWF4QWdlfHx0aGlzLmV4cGlyZXMhPTEv''@;'; put 'put ''MH1jYW5vbmljYWxpemVkRG9tYWluKCl7cmV0dXJuIG51bGw9PXRoaXMuZG9tYWluP251bGw6UCh0aGlzLmRvbWFpbil9Y2RvbWFpbigpe3JldHVybiB0aGlzLmNhbm9uaWNhbGl6ZWREb21haW4oKX19JGUuY29va2llc0NyZWF0ZWQ9MCwkZS5wYXJzZT1GLCRlLmZyb21KU09OPUNlLCRlLnNl''@;'; put 'put ''cmlhbGl6YWJsZVByb3BlcnRpZXM9T2JqZWN0LmtleXMoUWUpLCRlLnNhbWVTaXRlTGV2ZWw9e3N0cmljdDozLGxheDoyLG5vbmU6MX0sJGUuc2FtZVNpdGVDYW5vbmljYWw9e3N0cmljdDoiU3RyaWN0IixsYXg6IkxheCJ9O2NsYXNzIGd0e2NvbnN0cnVjdG9yKHZ0LEF0PXtyZWplY3RQdWJs''@;'; put 'put ''aWNTdWZmaXhlczohMH0peyJib29sZWFuIj09dHlwZW9mIEF0JiYoQXQ9e3JlamVjdFB1YmxpY1N1ZmZpeGVzOkF0fSksdGhpcy5yZWplY3RQdWJsaWNTdWZmaXhlcz1BdC5yZWplY3RQdWJsaWNTdWZmaXhlcyx0aGlzLmVuYWJsZUxvb3NlTW9kZT0hIUF0Lmxvb3NlTW9kZSx0aGlzLmFsbG93''@;'; put 'put ''U3BlY2lhbFVzZURvbWFpbj0hIUF0LmFsbG93U3BlY2lhbFVzZURvbWFpbix0aGlzLnN0b3JlPXZ0fHxuZXcgdGUsdGhpcy5wcmVmaXhTZWN1cml0eT1mdW5jdGlvbihodCl7aWYobnVsbCE9aHQpe2NvbnN0IEJ0PWh0LnRvTG93ZXJDYXNlKCk7c3dpdGNoKEJ0KXtjYXNlIE1lLlNUUklDVDpj''@;'; put 'put ''YXNlIE1lLlNJTEVOVDpjYXNlIE1lLkRJU0FCTEVEOnJldHVybiBCdH19cmV0dXJuIE1lLlNJTEVOVH0oQXQucHJlZml4U2VjdXJpdHkpLHRoaXMuX2Nsb25lU3luYz13dCgiY2xvbmUiKSx0aGlzLl9pbXBvcnRDb29raWVzU3luYz13dCgiX2ltcG9ydENvb2tpZXMiKSx0aGlzLmdldENvb2tp''@;'; put 'put ''ZXNTeW5jPXd0KCJnZXRDb29raWVzIiksdGhpcy5nZXRDb29raWVTdHJpbmdTeW5jPXd0KCJnZXRDb29raWVTdHJpbmciKSx0aGlzLmdldFNldENvb2tpZVN0cmluZ3NTeW5jPXd0KCJnZXRTZXRDb29raWVTdHJpbmdzIiksdGhpcy5yZW1vdmVBbGxDb29raWVzU3luYz13dCgicmVtb3ZlQWxs''@;'; put 'put ''Q29va2llcyIpLHRoaXMuc2V0Q29va2llU3luYz13dCgic2V0Q29va2llIiksdGhpcy5zZXJpYWxpemVTeW5jPXd0KCJzZXJpYWxpemUiKX1zZXRDb29raWUodnQsQXQsaHQsQnQpe2xldCBvbjtjb25zdCBfdD1QZShBdCk7ImZ1bmN0aW9uIj09dHlwZW9mIGh0JiYoQnQ9aHQsaHQ9e30pO2Nv''@;'; put 'put ''bnN0IHR0PVAoX3QuaG9zdG5hbWUpLGV0PWh0Lmxvb3NlfHx0aGlzLmVuYWJsZUxvb3NlTW9kZTtsZXQgbHQ9bnVsbDtpZihodC5zYW1lU2l0ZUNvbnRleHQmJihsdD1UZShodC5zYW1lU2l0ZUNvbnRleHQpLCFsdCkpcmV0dXJuIEJ0KG5ldyBFcnJvcihJZSkpO2lmKCJzdHJpbmciPT10eXBl''@;'; put 'put ''b2YgdnR8fHZ0IGluc3RhbmNlb2YgU3RyaW5nKXtpZighKHZ0PSRlLnBhcnNlKHZ0LHtsb29zZTpldH0pKSlyZXR1cm4gb249bmV3IEVycm9yKCJDb29raWUgZmFpbGVkIHRvIHBhcnNlIiksQnQoaHQuaWdub3JlRXJyb3I/bnVsbDpvbil9ZWxzZSBpZighKHZ0IGluc3RhbmNlb2YgJGUpKXJl''@;'; put 'put ''dHVybiBvbj1uZXcgRXJyb3IoIkZpcnN0IGFyZ3VtZW50IHRvIHNldENvb2tpZSBtdXN0IGJlIGEgQ29va2llIG9iamVjdCBvciBzdHJpbmciKSxCdChodC5pZ25vcmVFcnJvcj9udWxsOm9uKTtjb25zdCBMdD1odC5ub3d8fG5ldyBEYXRlO2lmKHRoaXMucmVqZWN0UHVibGljU3VmZml4ZXMm''@;'; put 'put ''JnZ0LmRvbWFpbiYmbnVsbD09Vy5nZXRQdWJsaWNTdWZmaXgodnQuY2RvbWFpbigpKSlyZXR1cm4gb249bmV3IEVycm9yKCJDb29raWUgaGFzIGRvbWFpbiBzZXQgdG8gYSBwdWJsaWMgc3VmZml4IiksQnQoaHQuaWdub3JlRXJyb3I/bnVsbDpvbik7aWYodnQuZG9tYWluKXtpZighVih0dCx2''@;'; put 'put ''dC5jZG9tYWluKCksITEpKXJldHVybiBvbj1uZXcgRXJyb3IoYENvb2tpZSBub3QgaW4gdGhpcyBob3N0J3MgZG9tYWluLiBDb29raWU6JHt2dC5jZG9tYWluKCl9IFJlcXVlc3Q6JHt0dH1gKSxCdChodC5pZ25vcmVFcnJvcj9udWxsOm9uKTtudWxsPT12dC5ob3N0T25seSYmKHZ0Lmhvc3RP''@;'; put 'put ''bmx5PSExKX1lbHNlIHZ0Lmhvc3RPbmx5PSEwLHZ0LmRvbWFpbj10dDtpZih2dC5wYXRoJiYiLyI9PT12dC5wYXRoWzBdfHwodnQucGF0aD1UKF90LnBhdGhuYW1lKSx2dC5wYXRoSXNEZWZhdWx0PSEwKSwhMT09PWh0Lmh0dHAmJnZ0Lmh0dHBPbmx5KXJldHVybiBvbj1uZXcgRXJyb3IoIkNv''@;'; put 'put ''b2tpZSBpcyBIdHRwT25seSBhbmQgdGhpcyBpc24ndCBhbiBIVFRQIEFQSSIpLEJ0KGh0Lmlnbm9yZUVycm9yP251bGw6b24pO2lmKCJub25lIiE9PXZ0LnNhbWVTaXRlJiZsdCYmIm5vbmUiPT09bHQpcmV0dXJuIG9uPW5ldyBFcnJvcigiQ29va2llIGlzIFNhbWVTaXRlIGJ1dCB0aGlzIGlz''@;'; put 'put ''IGEgY3Jvc3Mtb3JpZ2luIHJlcXVlc3QiKSxCdChodC5pZ25vcmVFcnJvcj9udWxsOm9uKTtjb25zdCBDdD10aGlzLnByZWZpeFNlY3VyaXR5PT09TWUuU0lMRU5UO2lmKHRoaXMucHJlZml4U2VjdXJpdHkhPT1NZS5ESVNBQkxFRCl7bGV0IEh0LEdlPSExO2lmKCEoVWU9dnQpLmtleS5zdGFy''@;'; put 'put ''dHNXaXRoKCJfX1NlY3VyZS0iKXx8VWUuc2VjdXJlP2Z1bmN0aW9uKFVlKXtyZXR1cm4hVWUua2V5LnN0YXJ0c1dpdGgoIl9fSG9zdC0iKXx8VWUuc2VjdXJlJiZVZS5ob3N0T25seSYmbnVsbCE9VWUucGF0aCYmIi8iPT09VWUucGF0aH0odnQpfHwoR2U9ITAsSHQ9IkNvb2tpZSBoYXMgX19I''@;'; put 'put ''b3N0IHByZWZpeCBidXQgZWl0aGVyIFNlY3VyZSBvciBIb3N0T25seSBhdHRyaWJ1dGUgaXMgbm90IHNldCBvciBQYXRoIGlzIG5vdCAnLyciKTooR2U9ITAsSHQ9IkNvb2tpZSBoYXMgX19TZWN1cmUgcHJlZml4IGJ1dCBTZWN1cmUgYXR0cmlidXRlIGlzIG5vdCBzZXQiKSxHZSlyZXR1cm4g''@;'; put 'put ''QnQoaHQuaWdub3JlRXJyb3J8fEN0P251bGw6bmV3IEVycm9yKEh0KSl9dmFyIFVlO2NvbnN0IGZ0PXRoaXMuc3RvcmU7ZnQudXBkYXRlQ29va2llfHwoZnQudXBkYXRlQ29va2llPWZ1bmN0aW9uKEh0LEdlLFVlKXt0aGlzLnB1dENvb2tpZShHZSxVZSl9KSxmdC5maW5kQ29va2llKHZ0LmRv''@;'; put 'put ''bWFpbix2dC5wYXRoLHZ0LmtleSxmdW5jdGlvbihIdCxHZSl7aWYoSHQpcmV0dXJuIEJ0KEh0KTtjb25zdCBVZT1mdW5jdGlvbih5dCl7aWYoeXQpcmV0dXJuIEJ0KHl0KTtCdChudWxsLHZ0KX07aWYoR2Upe2lmKCExPT09aHQuaHR0cCYmR2UuaHR0cE9ubHkpcmV0dXJuIEh0PW5ldyBFcnJv''@;'; put 'put ''cigib2xkIENvb2tpZSBpcyBIdHRwT25seSBhbmQgdGhpcyBpc24ndCBhbiBIVFRQIEFQSSIpLEJ0KGh0Lmlnbm9yZUVycm9yP251bGw6SHQpO3Z0LmNyZWF0aW9uPUdlLmNyZWF0aW9uLHZ0LmNyZWF0aW9uSW5kZXg9R2UuY3JlYXRpb25JbmRleCx2dC5sYXN0QWNjZXNzZWQ9THQsZnQudXBk''@;'; put 'put ''YXRlQ29va2llKEdlLHZ0LFVlKX1lbHNlIHZ0LmNyZWF0aW9uPXZ0Lmxhc3RBY2Nlc3NlZD1MdCxmdC5wdXRDb29raWUodnQsVWUpfSl9Z2V0Q29va2llcyh2dCxBdCxodCl7Y29uc3QgQnQ9UGUodnQpOyJmdW5jdGlvbiI9PXR5cGVvZiBBdCYmKGh0PUF0LEF0PXt9KTtjb25zdCBvbj1QKEJ0''@;'; put 'put ''Lmhvc3RuYW1lKSxfdD1CdC5wYXRobmFtZXx8Ii8iO2xldCB0dD1BdC5zZWN1cmU7bnVsbCE9dHR8fCFCdC5wcm90b2NvbHx8Imh0dHBzOiIhPUJ0LnByb3RvY29sJiYid3NzOiIhPUJ0LnByb3RvY29sfHwodHQ9ITApO2xldCBldD0wO2lmKEF0LnNhbWVTaXRlQ29udGV4dCl7Y29uc3QgVWU9''@;'; put 'put ''VGUoQXQuc2FtZVNpdGVDb250ZXh0KTtpZihldD0kZS5zYW1lU2l0ZUxldmVsW1VlXSwhZXQpcmV0dXJuIGh0KG5ldyBFcnJvcihJZSkpfWxldCBsdD1BdC5odHRwO251bGw9PWx0JiYobHQ9ITApO2NvbnN0IEx0PUF0Lm5vd3x8RGF0ZS5ub3coKSxDdD0hMSE9PUF0LmV4cGlyZSxmdD0hIUF0''@;'; put 'put ''LmFsbFBhdGhzLEh0PXRoaXMuc3RvcmU7ZnVuY3Rpb24gR2UoVWUpe2lmKFVlLmhvc3RPbmx5KXtpZihVZS5kb21haW4hPW9uKXJldHVybiExfWVsc2UgaWYoIVYob24sVWUuZG9tYWluLCExKSlyZXR1cm4hMTtyZXR1cm4hKCFmdCYmIUsoX3QsVWUucGF0aCl8fFVlLnNlY3VyZSYmIXR0fHxV''@;'; put 'put ''ZS5odHRwT25seSYmIWx0fHxldCYmJGUuc2FtZVNpdGVMZXZlbFtVZS5zYW1lU2l0ZXx8Im5vbmUiXT5ldHx8Q3QmJlVlLmV4cGlyeVRpbWUoKTw9THQmJihIdC5yZW1vdmVDb29raWUoVWUuZG9tYWluLFVlLnBhdGgsVWUua2V5LCgpPT57fSksMSkpfUh0LmZpbmRDb29raWVzKG9uLGZ0P251''@;'; put 'put ''bGw6X3QsdGhpcy5hbGxvd1NwZWNpYWxVc2VEb21haW4sKFVlLHl0KT0+e2lmKFVlKXJldHVybiBodChVZSk7eXQ9eXQuZmlsdGVyKEdlKSwhMSE9PUF0LnNvcnQmJih5dD15dC5zb3J0KERlKSk7Y29uc3QganQ9bmV3IERhdGU7Zm9yKGNvbnN0IEp0IG9mIHl0KUp0Lmxhc3RBY2Nlc3NlZD1q''@;'; put 'put ''dDtodChudWxsLHl0KX0pfWdldENvb2tpZVN0cmluZyguLi52dCl7Y29uc3QgQXQ9dnQucG9wKCk7dnQucHVzaChmdW5jdGlvbihodCxCdCl7aHQ/QXQoaHQpOkF0KG51bGwsQnQuc29ydChEZSkubWFwKG9uPT5vbi5jb29raWVTdHJpbmcoKSkuam9pbigiOyAiKSl9KSx0aGlzLmdldENvb2tp''@;'; put 'put ''ZXMuYXBwbHkodGhpcyx2dCl9Z2V0U2V0Q29va2llU3RyaW5ncyguLi52dCl7Y29uc3QgQXQ9dnQucG9wKCk7dnQucHVzaChmdW5jdGlvbihodCxCdCl7aHQ/QXQoaHQpOkF0KG51bGwsQnQubWFwKG9uPT5vbi50b1N0cmluZygpKSl9KSx0aGlzLmdldENvb2tpZXMuYXBwbHkodGhpcyx2dCl9''@;'; put 'put ''c2VyaWFsaXplKHZ0KXtsZXQgQXQ9dGhpcy5zdG9yZS5jb25zdHJ1Y3Rvci5uYW1lOyJPYmplY3QiPT09QXQmJihBdD1udWxsKTtjb25zdCBodD17dmVyc2lvbjpgdG91Z2gtY29va2llQCR7Sn1gLHN0b3JlVHlwZTpBdCxyZWplY3RQdWJsaWNTdWZmaXhlczohIXRoaXMucmVqZWN0UHVibGlj''@;'; put 'put ''U3VmZml4ZXMsY29va2llczpbXX07aWYoIXRoaXMuc3RvcmUuZ2V0QWxsQ29va2llc3x8ImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXMuc3RvcmUuZ2V0QWxsQ29va2llcylyZXR1cm4gdnQobmV3IEVycm9yKCJzdG9yZSBkb2VzIG5vdCBzdXBwb3J0IGdldEFsbENvb2tpZXMgYW5kIGNhbm5vdCBi''@;'; put 'put ''ZSBzZXJpYWxpemVkIikpO3RoaXMuc3RvcmUuZ2V0QWxsQ29va2llcygoQnQsb24pPT5CdD92dChCdCk6KGh0LmNvb2tpZXM9b24ubWFwKF90PT4oZGVsZXRlKF90PV90IGluc3RhbmNlb2YgJGU/X3QudG9KU09OKCk6X3QpLmNyZWF0aW9uSW5kZXgsX3QpKSx2dChudWxsLGh0KSkpfXRvSlNP''@;'; put 'put ''Tigpe3JldHVybiB0aGlzLnNlcmlhbGl6ZVN5bmMoKX1faW1wb3J0Q29va2llcyh2dCxBdCl7bGV0IGh0PXZ0LmNvb2tpZXM7aWYoIWh0fHwhQXJyYXkuaXNBcnJheShodCkpcmV0dXJuIEF0KG5ldyBFcnJvcigic2VyaWFsaXplZCBqYXIgaGFzIG5vIGNvb2tpZXMgYXJyYXkiKSk7aHQ9aHQu''@;'; put 'put ''c2xpY2UoKTtjb25zdCBCdD1vbj0+e2lmKG9uKXJldHVybiBBdChvbik7aWYoIWh0Lmxlbmd0aClyZXR1cm4gQXQob24sdGhpcyk7bGV0IF90O3RyeXtfdD1DZShodC5zaGlmdCgpKX1jYXRjaCh0dCl7cmV0dXJuIEF0KHR0KX1pZihudWxsPT09X3QpcmV0dXJuIEJ0KG51bGwpO3RoaXMuc3Rv''@;'; put 'put ''cmUucHV0Q29va2llKF90LEJ0KX07QnQoKX1jbG9uZSh2dCxBdCl7MT09PWFyZ3VtZW50cy5sZW5ndGgmJihBdD12dCx2dD1udWxsKSx0aGlzLnNlcmlhbGl6ZSgoaHQsQnQpPT57aWYoaHQpcmV0dXJuIEF0KGh0KTtndC5kZXNlcmlhbGl6ZShCdCx2dCxBdCl9KX1jbG9uZVN5bmModnQpe2lm''@;'; put 'put ''KDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLl9jbG9uZVN5bmMoKTtpZighdnQuc3luY2hyb25vdXMpdGhyb3cgbmV3IEVycm9yKCJDb29raWVKYXIgY2xvbmUgZGVzdGluYXRpb24gc3RvcmUgaXMgbm90IHN5bmNocm9ub3VzOyB1c2UgYXN5bmMgQVBJIGluc3RlYWQuIik7cmV0''@;'; put 'put ''dXJuIHRoaXMuX2Nsb25lU3luYyh2dCl9cmVtb3ZlQWxsQ29va2llcyh2dCl7Y29uc3QgQXQ9dGhpcy5zdG9yZTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQXQucmVtb3ZlQWxsQ29va2llcyYmQXQucmVtb3ZlQWxsQ29va2llcyE9PU4ucHJvdG90eXBlLnJlbW92ZUFsbENvb2tpZXMpcmV0dXJu''@;'; put 'put ''IEF0LnJlbW92ZUFsbENvb2tpZXModnQpO0F0LmdldEFsbENvb2tpZXMoKGh0LEJ0KT0+e2lmKGh0KXJldHVybiB2dChodCk7aWYoMD09PUJ0Lmxlbmd0aClyZXR1cm4gdnQobnVsbCk7bGV0IG9uPTA7Y29uc3QgX3Q9W107ZnVuY3Rpb24gdHQoZXQpe2lmKGV0JiZfdC5wdXNoKGV0KSxvbisr''@;'; put 'put ''LG9uPT09QnQubGVuZ3RoKXJldHVybiB2dChfdC5sZW5ndGg/X3RbMF06bnVsbCl9QnQuZm9yRWFjaChldD0+e0F0LnJlbW92ZUNvb2tpZShldC5kb21haW4sZXQucGF0aCxldC5rZXksdHQpfSl9KX1zdGF0aWMgZGVzZXJpYWxpemUodnQsQXQsaHQpe2xldCBCdDtpZigzIT09YXJndW1lbnRz''@;'; put 'put ''Lmxlbmd0aCYmKGh0PUF0LEF0PW51bGwpLCJzdHJpbmciPT10eXBlb2YgdnQpe2lmKEJ0PXllKHZ0KSxCdCBpbnN0YW5jZW9mIEVycm9yKXJldHVybiBodChCdCl9ZWxzZSBCdD12dDtjb25zdCBvbj1uZXcgZ3QoQXQsQnQucmVqZWN0UHVibGljU3VmZml4ZXMpO29uLl9pbXBvcnRDb29raWVz''@;'; put 'put ''KEJ0LF90PT57aWYoX3QpcmV0dXJuIGh0KF90KTtodChudWxsLG9uKX0pfXN0YXRpYyBkZXNlcmlhbGl6ZVN5bmModnQsQXQpe2NvbnN0IGh0PSJzdHJpbmciPT10eXBlb2YgdnQ/SlNPTi5wYXJzZSh2dCk6dnQsQnQ9bmV3IGd0KEF0LGh0LnJlamVjdFB1YmxpY1N1ZmZpeGVzKTtpZighQnQu''@;'; put 'put ''c3RvcmUuc3luY2hyb25vdXMpdGhyb3cgbmV3IEVycm9yKCJDb29raWVKYXIgc3RvcmUgaXMgbm90IHN5bmNocm9ub3VzOyB1c2UgYXN5bmMgQVBJIGluc3RlYWQuIik7cmV0dXJuIEJ0Ll9pbXBvcnRDb29raWVzU3luYyhodCksQnR9fWZ1bmN0aW9uIHd0KG10KXtyZXR1cm4gZnVuY3Rpb24o''@;'; put 'put ''Li4udnQpe2lmKCF0aGlzLnN0b3JlLnN5bmNocm9ub3VzKXRocm93IG5ldyBFcnJvcigiQ29va2llSmFyIHN0b3JlIGlzIG5vdCBzeW5jaHJvbm91czsgdXNlIGFzeW5jIEFQSSBpbnN0ZWFkLiIpO2xldCBBdCxodDtpZih0aGlzW210XSguLi52dCwoQnQsb24pPT57QXQ9QnQsaHQ9b259KSxB''@;'; put 'put ''dCl0aHJvdyBBdDtyZXR1cm4gaHR9fWd0LmZyb21KU09OPWd0LmRlc2VyaWFsaXplU3luYyxbIl9pbXBvcnRDb29raWVzIiwiY2xvbmUiLCJnZXRDb29raWVzIiwiZ2V0Q29va2llU3RyaW5nIiwiZ2V0U2V0Q29va2llU3RyaW5ncyIsInJlbW92ZUFsbENvb2tpZXMiLCJzZXJpYWxpemUiLCJz''@;'; put 'put ''ZXRDb29raWUiXS5mb3JFYWNoKG10PT57Z3QucHJvdG90eXBlW210XT1zZShndC5wcm90b3R5cGVbbXRdKX0pLGd0LmRlc2VyaWFsaXplPXNlKGd0LmRlc2VyaWFsaXplKSxRLnZlcnNpb249SixRLkNvb2tpZUphcj1ndCxRLkNvb2tpZT0kZSxRLlN0b3JlPU4sUS5NZW1vcnlDb29raWVTdG9y''@;'; put 'put ''ZT10ZSxRLnBhcnNlRGF0ZT1uZSxRLmZvcm1hdERhdGU9eCxRLnBhcnNlPUYsUS5mcm9tSlNPTj1DZSxRLmRvbWFpbk1hdGNoPVYsUS5kZWZhdWx0UGF0aD1ULFEucGF0aE1hdGNoPUssUS5nZXRQdWJsaWNTdWZmaXg9Vy5nZXRQdWJsaWNTdWZmaXgsUS5jb29raWVDb21wYXJlPURlLFEucGVy''@;'; put 'put ''bXV0ZURvbWFpbj1qKDczMjQpLnBlcm11dGVEb21haW4sUS5wZXJtdXRlUGF0aD1mdW5jdGlvbihtdCl7aWYoIi8iPT09bXQpcmV0dXJuWyIvIl07Y29uc3QgdnQ9W210XTtmb3IoO210Lmxlbmd0aD4xOyl7Y29uc3QgQXQ9bXQubGFzdEluZGV4T2YoIi8iKTtpZigwPT09QXQpYnJlYWs7bXQ9''@;'; put 'put ''bXQuc3Vic3RyKDAsQXQpLHZ0LnB1c2gobXQpfXJldHVybiB2dC5wdXNoKCIvIiksdnR9LFEuY2Fub25pY2FsRG9tYWluPVAsUS5QcmVmaXhTZWN1cml0eUVudW09TWV9LDU3NjE6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdHtmcm9tQ2FsbGJhY2s6cmV9PWooNzA0MSksYWU9aigyMjI0''@;'; put 'put ''KS55LFk9aig3MzI0KS5wZXJtdXRlRG9tYWluLFc9aig4OTcxKS5VLE49aig5NTM5KTtjbGFzcyB0ZSBleHRlbmRzIGFle2NvbnN0cnVjdG9yKCl7c3VwZXIoKSx0aGlzLnN5bmNocm9ub3VzPSEwLHRoaXMuaWR4PXt9LE4uaW5zcGVjdC5jdXN0b20mJih0aGlzW04uaW5zcGVjdC5jdXN0b21d''@;'; put 'put ''PXRoaXMuaW5zcGVjdCl9aW5zcGVjdCgpe3JldHVybmB7IGlkeDogJHtOLmluc3BlY3QodGhpcy5pZHgsITEsMil9IH1gfWZpbmRDb29raWUoSixzZSxvZSxjZSl7cmV0dXJuIGNlKG51bGwsdGhpcy5pZHhbSl0mJnRoaXMuaWR4W0pdW3NlXT90aGlzLmlkeFtKXVtzZV1bb2VdfHxudWxsOnZv''@;'; put 'put ''aWQgMCl9ZmluZENvb2tpZXMoSixzZSxvZSxjZSl7Y29uc3QgZGU9W107aWYoImZ1bmN0aW9uIj09dHlwZW9mIG9lJiYoY2U9b2Usb2U9ITEpLCFKKXJldHVybiBjZShudWxsLFtdKTtsZXQgdmU7dmU9c2U/ZnVuY3Rpb24oU2Upe09iamVjdC5rZXlzKFNlKS5mb3JFYWNoKEllPT57aWYoVyhz''@;'; put 'put ''ZSxJZSkpe2NvbnN0IFRlPVNlW0llXTtmb3IoY29uc3QgTWUgaW4gVGUpZGUucHVzaChUZVtNZV0pfX0pfTpmdW5jdGlvbihTZSl7Zm9yKGNvbnN0IEllIGluIFNlKXtjb25zdCBUZT1TZVtJZV07Zm9yKGNvbnN0IE1lIGluIFRlKWRlLnB1c2goVGVbTWVdKX19O2NvbnN0IEFlPVkoSixvZSl8''@;'; put 'put ''fFtKXSxrZT10aGlzLmlkeDtBZS5mb3JFYWNoKFNlPT57Y29uc3QgSWU9a2VbU2VdO0llJiZ2ZShJZSl9KSxjZShudWxsLGRlKX1wdXRDb29raWUoSixzZSl7dGhpcy5pZHhbSi5kb21haW5dfHwodGhpcy5pZHhbSi5kb21haW5dPXt9KSx0aGlzLmlkeFtKLmRvbWFpbl1bSi5wYXRoXXx8KHRo''@;'; put 'put ''aXMuaWR4W0ouZG9tYWluXVtKLnBhdGhdPXt9KSx0aGlzLmlkeFtKLmRvbWFpbl1bSi5wYXRoXVtKLmtleV09SixzZShudWxsKX11cGRhdGVDb29raWUoSixzZSxvZSl7dGhpcy5wdXRDb29raWUoc2Usb2UpfXJlbW92ZUNvb2tpZShKLHNlLG9lLGNlKXt0aGlzLmlkeFtKXSYmdGhpcy5pZHhb''@;'; put 'put ''Sl1bc2VdJiZ0aGlzLmlkeFtKXVtzZV1bb2VdJiZkZWxldGUgdGhpcy5pZHhbSl1bc2VdW29lXSxjZShudWxsKX1yZW1vdmVDb29raWVzKEosc2Usb2Upe3JldHVybiB0aGlzLmlkeFtKXSYmKHNlP2RlbGV0ZSB0aGlzLmlkeFtKXVtzZV06ZGVsZXRlIHRoaXMuaWR4W0pdKSxvZShudWxsKX1y''@;'; put 'put ''ZW1vdmVBbGxDb29raWVzKEope3JldHVybiB0aGlzLmlkeD17fSxKKG51bGwpfWdldEFsbENvb2tpZXMoSil7Y29uc3Qgc2U9W10sb2U9dGhpcy5pZHg7T2JqZWN0LmtleXMob2UpLmZvckVhY2goY2U9PntPYmplY3Qua2V5cyhvZVtjZV0pLmZvckVhY2goZGU9PntPYmplY3Qua2V5cyhvZVtj''@;'; put 'put ''ZV1bZGVdKS5mb3JFYWNoKHZlPT57bnVsbCE9PXZlJiZzZS5wdXNoKG9lW2NlXVtkZV1bdmVdKX0pfSl9KSxzZS5zb3J0KChjZSxkZSk9PihjZS5jcmVhdGlvbkluZGV4fHwwKS0oZGUuY3JlYXRpb25JbmRleHx8MCkpLEoobnVsbCxzZSl9fVsiZmluZENvb2tpZSIsImZpbmRDb29raWVzIiwi''@;'; put 'put ''cHV0Q29va2llIiwidXBkYXRlQ29va2llIiwicmVtb3ZlQ29va2llIiwicmVtb3ZlQ29va2llcyIsInJlbW92ZUFsbENvb2tpZXMiLCJnZXRBbGxDb29raWVzIl0uZm9yRWFjaChLPT57dGVbS109cmUodGUucHJvdG90eXBlW0tdKX0pLFEubT10ZX0sODk3MTooVSxRKT0+eyJ1c2Ugc3RyaWN0''@;'; put 'put ''IjtRLlU9ZnVuY3Rpb24oaixyZSl7cmV0dXJuIHJlPT09anx8MD09PWouaW5kZXhPZihyZSkmJigiLyI9PT1yZS5zdWJzdHIoLTEpfHwiLyI9PT1qLnN1YnN0cihyZS5sZW5ndGgsMSkpfX0sNzMyNDooVSxRLGopPT57InVzZSBzdHJpY3QiO2NvbnN0IHJlPWooNzUyKSxhZT1bImxvY2FsIl07''@;'; put 'put ''US5wZXJtdXRlRG9tYWluPWZ1bmN0aW9uKFksVyl7bGV0IE49bnVsbDtpZihXKXtjb25zdCBzZT1ZLnNwbGl0KCIuIik7Tj1hZS5pbmNsdWRlcyhzZVtzZS5sZW5ndGgtMV0pP2Ake3NlW3NlLmxlbmd0aC0yXX0uJHtzZVtzZS5sZW5ndGgtMV19YDpyZS5nZXRQdWJsaWNTdWZmaXgoWSl9ZWxz''@;'; put 'put ''ZSBOPXJlLmdldFB1YmxpY1N1ZmZpeChZKTtpZighTilyZXR1cm4gbnVsbDtpZihOPT1ZKXJldHVybltZXTtjb25zdCB0ZT1ZLnNsaWNlKDAsLShOLmxlbmd0aCsxKSkuc3BsaXQoIi4iKS5yZXZlcnNlKCk7bGV0IEs9Tjtjb25zdCBKPVtLXTtmb3IoO3RlLmxlbmd0aDspSz1gJHt0ZS5zaGlm''@;'; put 'put ''dCgpfS4ke0t9YCxKLnB1c2goSyk7cmV0dXJuIEp9fSw3NTI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCByZT1qKDYyNDQpO1EuZ2V0UHVibGljU3VmZml4PWZ1bmN0aW9uKGFlKXtyZXR1cm4gcmUuZ2V0KGFlKX19LDIyMjQ6KFUsUSk9PnsidXNlIHN0cmljdCI7US55PWNsYXNze2Nv''@;'; put 'put ''bnN0cnVjdG9yKCl7dGhpcy5zeW5jaHJvbm91cz0hMX1maW5kQ29va2llKGoscmUsYWUsWSl7dGhyb3cgbmV3IEVycm9yKCJmaW5kQ29va2llIGlzIG5vdCBpbXBsZW1lbnRlZCIpfWZpbmRDb29raWVzKGoscmUsYWUsWSl7dGhyb3cgbmV3IEVycm9yKCJmaW5kQ29va2llcyBpcyBub3QgaW1w''@;'; put 'put ''bGVtZW50ZWQiKX1wdXRDb29raWUoaixyZSl7dGhyb3cgbmV3IEVycm9yKCJwdXRDb29raWUgaXMgbm90IGltcGxlbWVudGVkIil9dXBkYXRlQ29va2llKGoscmUsYWUpe3Rocm93IG5ldyBFcnJvcigidXBkYXRlQ29va2llIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXJlbW92ZUNvb2tpZShqLHJl''@;'; put 'put ''LGFlLFkpe3Rocm93IG5ldyBFcnJvcigicmVtb3ZlQ29va2llIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXJlbW92ZUNvb2tpZXMoaixyZSxhZSl7dGhyb3cgbmV3IEVycm9yKCJyZW1vdmVDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCIpfXJlbW92ZUFsbENvb2tpZXMoail7dGhyb3cgbmV3IEVy''@;'; put 'put ''cm9yKCJyZW1vdmVBbGxDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCIpfWdldEFsbENvb2tpZXMoail7dGhyb3cgbmV3IEVycm9yKCJnZXRBbGxDb29raWVzIGlzIG5vdCBpbXBsZW1lbnRlZCAodGhlcmVmb3JlIGphciBjYW5ub3QgYmUgc2VyaWFsaXplZCkiKX19fSw0NTY6VT0+e1UuZXhw''@;'; put 'put ''b3J0cz0iNC4wLjAifSw3MDQxOihVLFEpPT57InVzZSBzdHJpY3QiO1EuZnJvbUNhbGxiYWNrPWZ1bmN0aW9uKGope3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGgtMV0pcmV0dXJu''@;'; put 'put ''IG5ldyBQcm9taXNlKChyZSxhZSk9Pnthcmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aF09KFksVyk9PntpZihZKXJldHVybiBhZShZKTtyZShXKX0sYXJndW1lbnRzLmxlbmd0aCsrLGouYXBwbHkodGhpcyxhcmd1bWVudHMpfSk7ai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJuYW1lIix7dmFs''@;'; put 'put ''dWU6ai5uYW1lfSl9LFEuZnJvbVByb21pc2U9ZnVuY3Rpb24oail7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmdW5jdGlvbigpe2NvbnN0IHJlPWFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoLTFdO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiByZSlyZXR1cm4gai5hcHBseSh0aGlzLGFy''@;'; put 'put ''Z3VtZW50cyk7ai5hcHBseSh0aGlzLGFyZ3VtZW50cykudGhlbihhZT0+cmUobnVsbCxhZSkscmUpfSwibmFtZSIse3ZhbHVlOmoubmFtZX0pfX0sNjcyOmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIHJl''@;'; put 'put ''PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKEspe2Zvcih2YXIgSixzZT0xLG9lPWFyZ3VtZW50cy5sZW5ndGg7c2U8b2U7c2UrKylmb3IodmFyIGNlIGluIEo9YXJndW1lbnRzW3NlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSixjZSkmJihLW2NlXT1KW2NlXSk7cmV0''@;'; put 'put ''dXJuIEt9LHJlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sYWU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEssSixzZSxvZSl7cmV0dXJuIG5ldyhzZXx8KHNlPVByb21pc2UpKShmdW5jdGlvbihjZSxkZSl7ZnVuY3Rpb24gdmUoU2Upe3RyeXtrZShvZS5uZXh0KFNlKSl9Y2F0Y2go''@;'; put 'put ''SWUpe2RlKEllKX19ZnVuY3Rpb24gQWUoU2Upe3RyeXtrZShvZS50aHJvdyhTZSkpfWNhdGNoKEllKXtkZShJZSl9fWZ1bmN0aW9uIGtlKFNlKXt2YXIgSWU7U2UuZG9uZT9jZShTZS52YWx1ZSk6KEllPVNlLnZhbHVlLEllIGluc3RhbmNlb2Ygc2U/SWU6bmV3IHNlKGZ1bmN0aW9uKFRlKXtU''@;'; put 'put ''ZShJZSl9KSkudGhlbih2ZSxBZSl9a2UoKG9lPW9lLmFwcGx5KEssSnx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oSyxKKXt2YXIgc2Usb2UsY2UsZGUsdmU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmY2VbMF0pdGhyb3cgY2VbMV07''@;'; put 'put ''cmV0dXJuIGNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGRlPXtuZXh0OkFlKDApLHRocm93OkFlKDEpLHJldHVybjpBZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGRlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGRlO2Z1bmN0aW9uIEFl''@;'; put 'put ''KGtlKXtyZXR1cm4gZnVuY3Rpb24oU2Upe3JldHVybiBmdW5jdGlvbihJZSl7aWYoc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dmU7KXRyeXtpZihzZT0xLG9lJiYoY2U9MiZJZVswXT9vZS5yZXR1cm46SWVbMF0/b2UudGhy''@;'; put 'put ''b3d8fCgoY2U9b2UucmV0dXJuKSYmY2UuY2FsbChvZSksMCk6b2UubmV4dCkmJiEoY2U9Y2UuY2FsbChvZSxJZVsxXSkpLmRvbmUpcmV0dXJuIGNlO3N3aXRjaChvZT0wLGNlJiYoSWU9WzImSWVbMF0sY2UudmFsdWVdKSxJZVswXSl7Y2FzZSAwOmNhc2UgMTpjZT1JZTticmVhaztjYXNlIDQ6''@;'; put 'put ''cmV0dXJuIHZlLmxhYmVsKysse3ZhbHVlOkllWzFdLGRvbmU6ITF9O2Nhc2UgNTp2ZS5sYWJlbCsrLG9lPUllWzFdLEllPVswXTtjb250aW51ZTtjYXNlIDc6SWU9dmUub3BzLnBvcCgpLHZlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChjZT0oY2U9dmUudHJ5cykubGVuZ3Ro''@;'; put 'put ''PjAmJmNlW2NlLmxlbmd0aC0xXSl8fDYhPT1JZVswXSYmMiE9PUllWzBdKSl7dmU9MDtjb250aW51ZX1pZigzPT09SWVbMF0mJighY2V8fEllWzFdPmNlWzBdJiZJZVsxXTxjZVszXSkpe3ZlLmxhYmVsPUllWzFdO2JyZWFrfWlmKDY9PT1JZVswXSYmdmUubGFiZWw8Y2VbMV0pe3ZlLmxhYmVs''@;'; put 'put ''PWNlWzFdLGNlPUllO2JyZWFrfWlmKGNlJiZ2ZS5sYWJlbDxjZVsyXSl7dmUubGFiZWw9Y2VbMl0sdmUub3BzLnB1c2goSWUpO2JyZWFrfWNlWzJdJiZ2ZS5vcHMucG9wKCksdmUudHJ5cy5wb3AoKTtjb250aW51ZX1JZT1KLmNhbGwoSyx2ZSl9Y2F0Y2goVGUpe0llPVs2LFRlXSxvZT0wfWZp''@;'; put 'put ''bmFsbHl7c2U9Y2U9MH1pZig1JkllWzBdKXRocm93IEllWzFdO3JldHVybnt2YWx1ZTpJZVswXT9JZVsxXTp2b2lkIDAsZG9uZTohMH19KFtrZSxTZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkNvbnRleHRNYW5hZ2VyPXZvaWQgMDt2''@;'; put 'put ''YXIgVz1qKDU5MjgpLE49aig5Nzc4KSx0ZT1mdW5jdGlvbigpe2Z1bmN0aW9uIEsoSixzZSl7dGhpcy5zZXJ2ZXJVcmw9Six0aGlzLnJlcXVlc3RDbGllbnQ9c2UsdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzPVsiQ0FTIEZvcm1hdHMgc2VydmljZSBjb21wdXRlIGNvbnRleHQiLCJEYXRh''@;'; put 'put ''IE1pbmluZyBjb21wdXRlIGNvbnRleHQiLCJJbXBvcnQgOSBzZXJ2aWNlIGNvbXB1dGUgY29udGV4dCIsIlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCIsIlNBUyBNb2RlbCBNYW5hZ2VyIGNvbXB1dGUgY29udGV4dCIsIlNBUyBTdHVkaW8gY29tcHV0ZSBjb250ZXh0IiwiU0FT''@;'; put 'put ''IFZpc3VhbCBGb3JlY2FzdGluZyBjb21wdXRlIGNvbnRleHQiXSx0aGlzLmRlZmF1bHRMYXVuY2hlckNvbnRleHRzPVsiQ0FTIEZvcm1hdHMgc2VydmljZSBsYXVuY2hlciBjb250ZXh0IiwiRGF0YSBNaW5pbmcgbGF1bmNoZXIgY29udGV4dCIsIkltcG9ydCA5IHNlcnZpY2UgbGF1bmNoZXIg''@;'; put 'put ''Y29udGV4dCIsIkpvYiBGbG93IEV4ZWN1dGlvbiBsYXVuY2hlciBjb250ZXh0IiwiU0FTIEpvYiBFeGVjdXRpb24gbGF1bmNoZXIgY29udGV4dCIsIlNBUyBNb2RlbCBNYW5hZ2VyIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgU3R1ZGlvIGxhdW5jaGVyIGNvbnRleHQiLCJTQVMgVmlzdWFsIEZv''@;'; put 'put ''cmVjYXN0aW5nIGxhdW5jaGVyIGNvbnRleHQiXSxKJiYoMCxXLmlzVXJsKShKKX1yZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KEsucHJvdG90eXBlLCJnZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdENvbXB1dGVDb250ZXh0''@;'; put 'put ''c30sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSy5wcm90b3R5cGUsImdldERlZmF1bHRMYXVuY2hlckNvbnRleHRzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdExhdW5jaGVyQ29udGV4dHN9LGVudW1lcmFibGU6ITEs''@;'; put 'put ''Y29uZmlndXJhYmxlOiEwfSksSy5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRzPWZ1bmN0aW9uKEope3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgc2U7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihvZSl7c3dpdGNoKG9lLmxhYmVsKXtjYXNlIDA6cmV0dXJu''@;'; put 'put ''WzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzP2xpbWl0PTEwMDAwIiksSikuY2F0Y2goZnVuY3Rpb24oY2Upe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShjZSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBjb21wdXRlIGNv''@;'; put 'put ''bnRleHRzLiAiKX0pXTtjYXNlIDE6cmV0dXJuWzIsKChzZT1vZS5zZW50KCkucmVzdWx0KSYmc2UuaXRlbXM/c2UuaXRlbXM6W10pLm1hcChmdW5jdGlvbihjZSl7cmV0dXJue2NyZWF0ZWRCeTpjZS5jcmVhdGVkQnksaWQ6Y2UuaWQsbmFtZTpjZS5uYW1lLHZlcnNpb246Y2UudmVyc2lvbixh''@;'; put 'put ''dHRyaWJ1dGVzOnt9fX0pXX19KX0pfSxLLnByb3RvdHlwZS5nZXRMYXVuY2hlckNvbnRleHRzPWZ1bmN0aW9uKEope3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgc2U7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihvZSl7c3dpdGNoKG9lLmxhYmVsKXtjYXNlIDA6''@;'; put 'put ''cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9sYXVuY2hlci9jb250ZXh0cz9saW1pdD0xMDAwMCIpLEopLmNhdGNoKGZ1bmN0aW9uKGNlKXt0aHJvdygwLE4ucHJlZml4TWVzc2FnZSkoY2UsIkVycm9yIHdoaWxlIGdldHRpbmcgbGF1''@;'; put 'put ''bmNoZXIgY29udGV4dHMuICIpfSldO2Nhc2UgMTpyZXR1cm5bMiwoKHNlPW9lLnNlbnQoKS5yZXN1bHQpJiZzZS5pdGVtcz9zZS5pdGVtczpbXSkubWFwKGZ1bmN0aW9uKGNlKXtyZXR1cm57Y3JlYXRlZEJ5OmNlLmNyZWF0ZWRCeSxpZDpjZS5pZCxuYW1lOmNlLm5hbWUsdmVyc2lvbjpjZS52''@;'; put 'put ''ZXJzaW9uLGF0dHJpYnV0ZXM6e319fSldfX0pfSl9LEsucHJvdG90eXBlLmNyZWF0ZUNvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKEosc2Usb2UsY2UsZGUsdmUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgQWUsa2UsU2UsSWUsVGU7cmV0dXJuIFkodGhpcyxm''@;'; put 'put ''dW5jdGlvbihNZSl7c3dpdGNoKE1lLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMudmFsaWRhdGVDb250ZXh0TmFtZShKKSx0aGlzLmlzRGVmYXVsdENvbnRleHQoSix0aGlzLmRlZmF1bHRDb21wdXRlQ29udGV4dHMsIkNvbXB1dGUgY29udGV4dCAnIi5jb25jYXQoSiwiJyBhbHJlYWR5IGV4''@;'; put 'put ''aXN0cy4iKSksWzQsdGhpcy5nZXRDb21wdXRlQ29udGV4dHMoZGUpXTtjYXNlIDE6aWYoTWUuc2VudCgpLmZpbmQoZnVuY3Rpb24oaGUpe3JldHVybiBoZS5uYW1lPT09Sn0pKXRocm93IG5ldyBFcnJvcigiQ29tcHV0ZSBjb250ZXh0ICciLmNvbmNhdChKLCInIGFscmVhZHkgZXhpc3RzLiIp''@;'; put 'put ''KTtyZXR1cm4gc2U/dGhpcy5kZWZhdWx0TGF1bmNoZXJDb250ZXh0cy5pbmNsdWRlcyhzZSk/WzMsNF06WzQsdGhpcy5nZXRMYXVuY2hlckNvbnRleHRzKGRlKV06WzMsNF07Y2FzZSAyOnJldHVybiBNZS5zZW50KCkuZmluZChmdW5jdGlvbihoZSl7cmV0dXJuIGhlLm5hbWU9PT1zZX0pP1sz''@;'; put 'put ''LDRdOihBZT0iVGhlIGxhdW5jaGVyIGNvbnRleHQgZm9yICIuY29uY2F0KHNlKSxbNCx0aGlzLmNyZWF0ZUxhdW5jaGVyQ29udGV4dChzZSxBZSwiZGlyZWN0IixkZSkuY2F0Y2goZnVuY3Rpb24oaGUpe3Rocm93IG5ldyBFcnJvcigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgbGF1bmNoZXIgY29u''@;'; put 'put ''dGV4dC4gIi5jb25jYXQoaGUpKX0pXSk7Y2FzZSAzOmlmKCEoa2U9TWUuc2VudCgpKXx8IWtlLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJFcnJvciB3aGlsZSBjcmVhdGluZyBsYXVuY2hlciBjb250ZXh0LiIpO3NlPWtlLm5hbWUsTWUubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIFNlPXsiQ29udGVu''@;'; put 'put ''dC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGRlJiYoU2UuQXV0aG9yaXphdGlvbj0iQmVhcmVyICIuY29uY2F0KGRlKSksSWU9e3JldXNlU2VydmVyUHJvY2Vzc2VzOiEwfSxvZSYmKEllPXJlKHJlKHt9LEllKSx7cnVuU2VydmVyQXM6b2V9KSksVGU9e25hbWU6SixsYXVuY2hDb250ZXh0''@;'; put 'put ''Ontjb250ZXh0TmFtZTpzZXx8IiJ9LGF0dHJpYnV0ZXM6SWV9LHZlJiZ2ZS5sZW5ndGg/VGUuYXV0aG9yaXplZFVzZXJzPXZlOlRlLmF1dGhvcml6ZUFsbEF1dGhlbnRpY2F0ZWRVc2Vycz0hMCxjZSYmKFRlLmVudmlyb25tZW50PXthdXRvRXhlY0xpbmVzOmNlfSksWzQsdGhpcy5yZXF1ZXN0''@;'; put 'put ''Q2xpZW50LnBvc3QoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cyIpLFRlLGRlKS5jYXRjaChmdW5jdGlvbihoZSl7dGhyb3coMCxOLnByZWZpeE1lc3NhZ2UpKGhlLCJFcnJvciB3aGlsZSBjcmVhdGluZyBjb21wdXRlIGNvbnRleHQuICIpfSldO2Nhc2UgNTpy''@;'; put 'put ''ZXR1cm5bMixNZS5zZW50KCkucmVzdWx0XX19KX0pfSxLLnByb3RvdHlwZS5jcmVhdGVMYXVuY2hlckNvbnRleHQ9ZnVuY3Rpb24oSixzZSxvZSxjZSl7cmV0dXJuIHZvaWQgMD09PW9lJiYob2U9ImRpcmVjdCIpLGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBkZSx2ZTty''@;'; put 'put ''ZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEFlKXtzd2l0Y2goQWUubGFiZWwpe2Nhc2UgMDppZighSil0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdGhpcy5pc0RlZmF1bHRDb250ZXh0KEosdGhpcy5kZWZhdWx0TGF1bmNoZXJDb250ZXh0cywiTGF1''@;'; put 'put ''bmNoZXIgY29udGV4dCAnIi5jb25jYXQoSiwiJyBhbHJlYWR5IGV4aXN0cy4iKSksWzQsdGhpcy5nZXRMYXVuY2hlckNvbnRleHRzKGNlKV07Y2FzZSAxOmlmKEFlLnNlbnQoKS5maW5kKGZ1bmN0aW9uKGtlKXtyZXR1cm4ga2UubmFtZT09PUp9KSl0aHJvdyBuZXcgRXJyb3IoIkxhdW5jaGVy''@;'; put 'put ''IGNvbnRleHQgJyIuY29uY2F0KEosIicgYWxyZWFkeSBleGlzdHMuIikpO3JldHVybiBkZT17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjZSYmKGRlLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChjZSkpLHZlPXtuYW1lOkosZGVzY3JpcHRpb246c2UsbGF1bmNo''@;'; put 'put ''VHlwZTpvZX0sWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvbGF1bmNoZXIvY29udGV4dHMiKSx2ZSxjZSkuY2F0Y2goZnVuY3Rpb24oa2Upe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShrZSwiRXJyb3Igd2hpbGUgY3JlYXRpbmcgbGF1bmNo''@;'; put 'put ''ZXIgY29udGV4dC4gIil9KV07Y2FzZSAyOnJldHVyblsyLEFlLnNlbnQoKS5yZXN1bHRdfX0pfSl9LEsucHJvdG90eXBlLmVkaXRDb21wdXRlQ29udGV4dD1mdW5jdGlvbihKLHNlLG9lKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGNlLGRlLHZlLEFlO3Jl''@;'; put 'put ''dHVybiBZKHRoaXMsZnVuY3Rpb24oa2Upe3N3aXRjaChrZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnZhbGlkYXRlQ29udGV4dE5hbWUoSiksdGhpcy5pc0RlZmF1bHRDb250ZXh0KEosdGhpcy5kZWZhdWx0Q29tcHV0ZUNvbnRleHRzLCJFZGl0aW5nIGRlZmF1bHQgU0FTIGNvbXB1dGUg''@;'; put 'put ''Y29udGV4dHMgaXMgbm90IGFsbG93ZWQuIiwhMCksWzQsdGhpcy5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZShKLG9lKV07Y2FzZSAxOnJldHVybihjZT1rZS5zZW50KCkpP1szLDNdOls0LHRoaXMuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkKHNlLmlkLG9lKV07Y2FzZSAyOmNlPWtlLnNlbnQoKSxr''@;'; put 'put ''ZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHMvIikuY29uY2F0KGNlLmlkKSxvZSkuY2F0Y2goZnVuY3Rpb24oU2Upe3Rocm93IFNlJiY0MDQ9PT1TZS5zdGF0dXM/bmV3IEVy''@;'; put 'put ''cm9yKCJUaGUgY29udGV4dCAnIi5jb25jYXQoSiwiJyB3YXMgbm90IGZvdW5kIG9uIHRoaXMgc2VydmVyLiIpKTpTZX0pXTtjYXNlIDQ6cmV0dXJuIGRlPWtlLnNlbnQoKSxBZT1kZS5ldGFnLFs0LHRoaXMucmVxdWVzdENsaWVudC5wdXQoIi9jb21wdXRlL2NvbnRleHRzLyIuY29uY2F0KCh2''@;'; put 'put ''ZT1kZS5yZXN1bHQpLmlkKSxyZShyZShyZSh7fSx2ZSksc2UpLHthdHRyaWJ1dGVzOnJlKHJlKHt9LHZlLmF0dHJpYnV0ZXMpLHNlLmF0dHJpYnV0ZXMpfSksb2UseyJJZi1NYXRjaCI6QWV9KV07Y2FzZSA1OnJldHVyblsyLGtlLnNlbnQoKV19fSl9KX0sSy5wcm90b3R5cGUuZ2V0Q29tcHV0''@;'; put 'put ''ZUNvbnRleHRCeU5hbWU9ZnVuY3Rpb24oSixzZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBvZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGNlKXtzd2l0Y2goY2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNv''@;'; put 'put ''bmNhdCh0aGlzLnNlcnZlclVybCwnL2NvbXB1dGUvY29udGV4dHM/ZmlsdGVyPWVxKG5hbWUsICInKS5jb25jYXQoSiwnIiknKSxzZSkuY2F0Y2goZnVuY3Rpb24oZGUpe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShkZSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBjb21wdXRlIGNvbnRleHQgYnkg''@;'; put 'put ''bmFtZS4gIil9KV07Y2FzZSAxOmlmKCEob2U9Y2Uuc2VudCgpLnJlc3VsdCl8fCFvZS5pdGVtc3x8IW9lLml0ZW1zLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIlRoZSBjb250ZXh0ICciLmNvbmNhdChKLCInIHdhcyBub3QgZm91bmQgYXQgJyIpLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiJy4i''@;'; put 'put ''KSk7cmV0dXJuWzIsb2UuaXRlbXNbMF1dfX0pfSl9LEsucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0QnlJZD1mdW5jdGlvbihKLHNlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihvZSl7c3dpdGNoKG9lLmxhYmVsKXtj''@;'; put 'put ''YXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9jb21wdXRlL2NvbnRleHRzLyIpLmNvbmNhdChKKSxzZSkuY2F0Y2goZnVuY3Rpb24oY2Upe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShjZSwiRXJyb3Igd2hpbGUgZ2V0dGlu''@;'; put 'put ''ZyBjb21wdXRlIGNvbnRleHQgYnkgaWQuICIpfSldO2Nhc2UgMTpyZXR1cm5bMixvZS5zZW50KCkucmVzdWx0XX19KX0pfSxLLnByb3RvdHlwZS5nZXRFeGVjdXRhYmxlQ29udGV4dHM9ZnVuY3Rpb24oSixzZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBv''@;'; put 'put ''ZSxjZSxkZSx2ZSxBZSxrZSxTZSxUZSxNZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAwMDAi''@;'; put 'put ''KSxudWxsPT1zZT92b2lkIDA6c2UuYWNjZXNzX3Rva2VuKS5jYXRjaChmdW5jdGlvbihPKXt0aHJvdygwLE4ucHJlZml4TWVzc2FnZSkoTywiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgY29tcHV0ZSBjb250ZXh0cy4iKX0pXTtjYXNlIDE6b2U9aGUuc2VudCgpLnJlc3VsdCxkZT1bXSx2ZT0oY2U9''@;'; put 'put ''b2UuaXRlbXN8fFtdKS5tYXAoZnVuY3Rpb24oTyl7dmFyIHo9WyIlcHV0ICY9c3lzdXNlcmlkOyJdO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBKKCJ0ZXN0LSIuY29uY2F0KE8ubmFtZSkseixPLm5hbWUsc2UsbnVsbCwhMSwhMCwhMCkuY2F0Y2goZnVuY3Rpb24oZWUpe3JldHVybiBlZX0p''@;'; put 'put ''fX0pLEFlPVtdLGtlPTAsU2U9dmUsaGUubGFiZWw9MjtjYXNlIDI6cmV0dXJuIGtlPFNlLmxlbmd0aD8oTWU9KFRlPUFlKS5wdXNoLFs0LCgwLFNlW2tlXSkoKV0pOlszLDVdO2Nhc2UgMzpNZS5hcHBseShUZSxbaGUuc2VudCgpXSksaGUubGFiZWw9NDtjYXNlIDQ6cmV0dXJuIGtlKyssWzMs''@;'; put 'put ''Ml07Y2FzZSA1OnJldHVybiBBZS5mb3JFYWNoKGZ1bmN0aW9uKE8seil7aWYoTyYmTy5sb2cpdHJ5e3ZhciBuZT0iIix4PU8ubG9nLnNwbGl0KCJcbiIpLmZpbmQoZnVuY3Rpb24oUCl7cmV0dXJuIFAuc3RhcnRzV2l0aCgiU1lTVVNFUklEPSIpfSk7eCYmKG5lPXgucmVwbGFjZSgiU1lTVVNF''@;'; put 'put ''UklEPSIsIiIpLGRlLnB1c2goe2NyZWF0ZWRCeTpjZVt6XS5jcmVhdGVkQnksaWQ6Y2Vbel0uaWQsbmFtZTpjZVt6XS5uYW1lLHZlcnNpb246Y2Vbel0udmVyc2lvbixhdHRyaWJ1dGVzOntzeXNVc2VySWQ6bmV9fSkpfWNhdGNoKFApe3Rocm93IFB9fSksWzIsZGVdfX0pfSl9LEsucHJvdG90''@;'; put 'put ''eXBlLmRlbGV0ZUNvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKEosc2Upe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgb2UsY2U7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihkZSl7c3dpdGNoKGRlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMudmFsaWRhdGVDb250''@;'; put 'put ''ZXh0TmFtZShKKSx0aGlzLmlzRGVmYXVsdENvbnRleHQoSix0aGlzLmRlZmF1bHRDb21wdXRlQ29udGV4dHMsIkRlbGV0aW5nIGRlZmF1bHQgU0FTIGNvbXB1dGUgY29udGV4dHMgaXMgbm90IGFsbG93ZWQuIiwhMCksb2U9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sc2Um''@;'; put 'put ''JihvZS5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoc2UpKSxbNCx0aGlzLmdldENvbXB1dGVDb250ZXh0QnlOYW1lKEosc2UpXTtjYXNlIDE6cmV0dXJuIGNlPWRlLnNlbnQoKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZGVsZXRlKCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2Nv''@;'; put 'put ''bXB1dGUvY29udGV4dHMvIikuY29uY2F0KGNlLmlkKSxzZSldO2Nhc2UgMjpyZXR1cm5bMixkZS5zZW50KCldfX0pfSl9LEsucHJvdG90eXBlLnZhbGlkYXRlQ29udGV4dE5hbWU9ZnVuY3Rpb24oSil7aWYoIUopdGhyb3cgbmV3IEVycm9yKCJDb250ZXh0IG5hbWUgaXMgcmVxdWlyZWQuIil9''@;'; put 'put ''LEsucHJvdG90eXBlLmlzRGVmYXVsdENvbnRleHQ9ZnVuY3Rpb24oSixzZSxvZSxjZSl7aWYodm9pZCAwPT09c2UmJihzZT10aGlzLmRlZmF1bHRDb21wdXRlQ29udGV4dHMpLHZvaWQgMD09PW9lJiYob2U9IiIpLHZvaWQgMD09PWNlJiYoY2U9ITEpLHNlLmluY2x1ZGVzKEopKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigiIi5jb25jYXQob2UpLmNvbmNhdChjZT8iXG5EZWZhdWx0IGNvbnRleHRzOiIrc2UubWFwKGZ1bmN0aW9uKGRlLHZlKXtyZXR1cm4iXG4iLmNvbmNhdCh2ZSsxLCIuICIpLmNvbmNhdChkZSl9KToiIikpfSxLfSgpO1EuQ29udGV4dE1hbmFnZXI9dGV9LDgzMDY6ZnVuY3Rpb24o''@;'; put 'put ''VSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKG9lLGNlLGRlLHZlKXtyZXR1cm4gbmV3KGRlfHwoZGU9UHJvbWlzZSkpKGZ1bmN0aW9uKEFlLGtlKXtmdW5jdGlvbiBTZShNZSl7dHJ5e1RlKHZlLm5leHQoTWUpKX1jYXRjaChoZSl7a2Uo''@;'; put 'put ''aGUpfX1mdW5jdGlvbiBJZShNZSl7dHJ5e1RlKHZlLnRocm93KE1lKSl9Y2F0Y2goaGUpe2tlKGhlKX19ZnVuY3Rpb24gVGUoTWUpe3ZhciBoZTtNZS5kb25lP0FlKE1lLnZhbHVlKTooaGU9TWUudmFsdWUsaGUgaW5zdGFuY2VvZiBkZT9oZTpuZXcgZGUoZnVuY3Rpb24oTyl7TyhoZSl9KSku''@;'; put 'put ''dGhlbihTZSxJZSl9VGUoKHZlPXZlLmFwcGx5KG9lLGNlfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZSx2ZSxBZSxrZSxTZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZBZVswXSl0aHJvdyBBZVsxXTtyZXR1''@;'; put 'put ''cm4gQWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4ga2U9e25leHQ6SWUoMCksdGhyb3c6SWUoMSkscmV0dXJuOkllKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoa2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksa2U7ZnVuY3Rpb24gSWUoVGUp''@;'; put 'put ''e3JldHVybiBmdW5jdGlvbihNZSl7cmV0dXJuIGZ1bmN0aW9uKGhlKXtpZihkZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtTZTspdHJ5e2lmKGRlPTEsdmUmJihBZT0yJmhlWzBdP3ZlLnJldHVybjpoZVswXT92ZS50aHJvd3x8''@;'; put 'put ''KChBZT12ZS5yZXR1cm4pJiZBZS5jYWxsKHZlKSwwKTp2ZS5uZXh0KSYmIShBZT1BZS5jYWxsKHZlLGhlWzFdKSkuZG9uZSlyZXR1cm4gQWU7c3dpdGNoKHZlPTAsQWUmJihoZT1bMiZoZVswXSxBZS52YWx1ZV0pLGhlWzBdKXtjYXNlIDA6Y2FzZSAxOkFlPWhlO2JyZWFrO2Nhc2UgNDpyZXR1''@;'; put 'put ''cm4gU2UubGFiZWwrKyx7dmFsdWU6aGVbMV0sZG9uZTohMX07Y2FzZSA1OlNlLmxhYmVsKyssdmU9aGVbMV0saGU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpoZT1TZS5vcHMucG9wKCksU2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEFlPShBZT1TZS50cnlzKS5sZW5ndGg+MCYm''@;'; put 'put ''QWVbQWUubGVuZ3RoLTFdKXx8NiE9PWhlWzBdJiYyIT09aGVbMF0pKXtTZT0wO2NvbnRpbnVlfWlmKDM9PT1oZVswXSYmKCFBZXx8aGVbMV0+QWVbMF0mJmhlWzFdPEFlWzNdKSl7U2UubGFiZWw9aGVbMV07YnJlYWt9aWYoNj09PWhlWzBdJiZTZS5sYWJlbDxBZVsxXSl7U2UubGFiZWw9QWVb''@;'; put 'put ''MV0sQWU9aGU7YnJlYWt9aWYoQWUmJlNlLmxhYmVsPEFlWzJdKXtTZS5sYWJlbD1BZVsyXSxTZS5vcHMucHVzaChoZSk7YnJlYWt9QWVbMl0mJlNlLm9wcy5wb3AoKSxTZS50cnlzLnBvcCgpO2NvbnRpbnVlfWhlPWNlLmNhbGwob2UsU2UpfWNhdGNoKE8pe2hlPVs2LE9dLHZlPTB9ZmluYWxs''@;'; put 'put ''eXtkZT1BZT0wfWlmKDUmaGVbMF0pdGhyb3cgaGVbMV07cmV0dXJue3ZhbHVlOmhlWzBdP2hlWzFdOnZvaWQgMCxkb25lOiEwfX0oW1RlLE1lXSl9fX0sWT10aGlzJiZ0aGlzLl9fc3ByZWFkQXJyYXl8fGZ1bmN0aW9uKG9lLGNlLGRlKXtpZihkZXx8Mj09PWFyZ3VtZW50cy5sZW5ndGgpZm9y''@;'; put 'put ''KHZhciB2ZSxBZT0wLGtlPWNlLmxlbmd0aDtBZTxrZTtBZSsrKSF2ZSYmQWUgaW4gY2V8fCh2ZXx8KHZlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNlLDAsQWUpKSx2ZVtBZV09Y2VbQWVdKTtyZXR1cm4gb2UuY29uY2F0KHZlfHxBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChjZSkp''@;'; put 'put ''fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TQVM5QXBpQ2xpZW50PXZvaWQgMDt2YXIgVz1qKDc3NTcpLE49aig2MjMwKSx0ZT1qKDc5NSksSz1qKDU5MjgpLEo9ZnVuY3Rpb24oKXtmdW5jdGlvbiBvZShjZSxkZSx2ZSl7dGhpcy5zZXJ2ZXJV''@;'; put 'put ''cmw9Y2UsdGhpcy5qb2JzUGF0aD1kZSxjZSYmKDAsSy5pc1VybCkoY2UpLHRoaXMucmVxdWVzdENsaWVudD1uZXcgdGUuU2FzOVJlcXVlc3RDbGllbnQoY2UsdmUpfXJldHVybiBvZS5wcm90b3R5cGUuZ2V0Q29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJue3NlcnZlclVybDp0aGlzLnNlcnZlclVy''@;'; put 'put ''bH19LG9lLnByb3RvdHlwZS5zZXRDb25maWc9ZnVuY3Rpb24oY2Upe2NlJiYodGhpcy5zZXJ2ZXJVcmw9Y2UpfSxvZS5wcm90b3R5cGUuZXhlY3V0ZVNjcmlwdD1mdW5jdGlvbihjZSxkZSx2ZSl7cmV0dXJuIHJlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBBZSxrZSxTZSxJ''@;'; put 'put ''ZSxUZSxNZSxoZTtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5sb2dpbihkZSx2ZSx0aGlzLmpvYnNQYXRoKV07Y2FzZSAxOnJldHVybiBPLnNlbnQoKSxBZT1bImRhdGEgX251bGxfOyIsImZpbGUg''@;'; put 'put ''X3dlYm91dDsiLCJwdXQgJ0V4ZWN1dGVkIHNhc2pzIHJ1bic7IiwicnVuOyJdLGtlPXNlKFkoWShbXSxjZSwhMCksQWUsITApLmpvaW4oIlxuIikpLFNlPSIvVXNlciBGb2xkZXJzLyIuY29uY2F0KGRlLCIvTXkgRm9sZGVyL3Nhc2pzL3J1bm5lciIpLEllPSJtdWx0aXBhcnQvZm9ybS1kYXRh''@;'; put 'put ''OyBib3VuZGFyeT0iK2tlLmdldEJvdW5kYXJ5KCksVGU9a2UuZ2V0TGVuZ3RoU3luYygpLE1lPXsiY2FjaGUtY29udHJvbCI6Im5vLWNhY2hlIixBY2NlcHQ6IiovKiIsIkNvbnRlbnQtVHlwZSI6SWUsIkNvbnRlbnQtTGVuZ3RoIjpUZSxDb25uZWN0aW9uOiJrZWVwLWFsaXZlIn0saGU9IiIu''@;'; put 'put ''Y29uY2F0KHRoaXMuam9ic1BhdGgsIi8/IikuY29uY2F0KCJfcHJvZ3JhbT0iK1NlKyImX2RlYnVnPWxvZyIpLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KGhlLGtlLHZvaWQgMCxJZSxNZSldO2Nhc2UgMjpyZXR1cm5bMixPLnNlbnQoKS5yZXN1bHRdfX0pfSl9LG9lfSgpO1EuU0FTOUFw''@;'; put 'put ''aUNsaWVudD1KO3ZhciBzZT1mdW5jdGlvbihvZSl7dmFyIGNlPW5ldyBOLGRlPSJzYXNqcy1leGVjdXRlLXNhczktIi5jb25jYXQoKDAsVy5nZW5lcmF0ZVRpbWVzdGFtcCkoIiIpLCIuc2FzIik7cmV0dXJuIGNlLmFwcGVuZChkZSxvZSx7ZmlsZW5hbWU6ZGUsY29udGVudFR5cGU6InRleHQv''@;'; put 'put ''cGxhaW4ifSksY2V9fSw5ODIxOmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSksYWU9aig1MTA4KSxZPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihNZSxoZSxPLHope3JldHVybiBuZXcoT3x8KE89UHJvbWlzZSkpKGZ1bmN0aW9uKGVlLG5lKXtmdW5j''@;'; put 'put ''dGlvbiB4KFQpe3RyeXtWKHoubmV4dChUKSl9Y2F0Y2goUyl7bmUoUyl9fWZ1bmN0aW9uIFAoVCl7dHJ5e1Yoei50aHJvdyhUKSl9Y2F0Y2goUyl7bmUoUyl9fWZ1bmN0aW9uIFYoVCl7dmFyIFM7VC5kb25lP2VlKFQudmFsdWUpOihTPVQudmFsdWUsUyBpbnN0YW5jZW9mIE8/UzpuZXcgTyhm''@;'; put 'put ''dW5jdGlvbihGKXtGKFMpfSkpLnRoZW4oeCxQKX1WKCh6PXouYXBwbHkoTWUsaGV8fFtdKSkubmV4dCgpKX0pfSxXPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKE1lLGhlKXt2YXIgTyx6LGVlLG5lLHg9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmZWVbMF0pdGhyb3cg''@;'; put 'put ''ZWVbMV07cmV0dXJuIGVlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG5lPXtuZXh0OlAoMCksdGhyb3c6UCgxKSxyZXR1cm46UCgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG5lW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG5lO2Z1bmN0aW9u''@;'; put 'put ''IFAoVil7cmV0dXJuIGZ1bmN0aW9uKFQpe3JldHVybiBmdW5jdGlvbihTKXtpZihPKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3g7KXRyeXtpZihPPTEseiYmKGVlPTImU1swXT96LnJldHVybjpTWzBdP3oudGhyb3d8fCgoZWU9''@;'; put 'put ''ei5yZXR1cm4pJiZlZS5jYWxsKHopLDApOnoubmV4dCkmJiEoZWU9ZWUuY2FsbCh6LFNbMV0pKS5kb25lKXJldHVybiBlZTtzd2l0Y2goej0wLGVlJiYoUz1bMiZTWzBdLGVlLnZhbHVlXSksU1swXSl7Y2FzZSAwOmNhc2UgMTplZT1TO2JyZWFrO2Nhc2UgNDpyZXR1cm4geC5sYWJlbCsrLHt2''@;'; put 'put ''YWx1ZTpTWzFdLGRvbmU6ITF9O2Nhc2UgNTp4LmxhYmVsKyssej1TWzFdLFM9WzBdO2NvbnRpbnVlO2Nhc2UgNzpTPXgub3BzLnBvcCgpLHgudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKGVlPShlZT14LnRyeXMpLmxlbmd0aD4wJiZlZVtlZS5sZW5ndGgtMV0pfHw2IT09U1sw''@;'; put 'put ''XSYmMiE9PVNbMF0pKXt4PTA7Y29udGludWV9aWYoMz09PVNbMF0mJighZWV8fFNbMV0+ZWVbMF0mJlNbMV08ZWVbM10pKXt4LmxhYmVsPVNbMV07YnJlYWt9aWYoNj09PVNbMF0mJngubGFiZWw8ZWVbMV0pe3gubGFiZWw9ZWVbMV0sZWU9UzticmVha31pZihlZSYmeC5sYWJlbDxlZVsyXSl7''@;'; put 'put ''eC5sYWJlbD1lZVsyXSx4Lm9wcy5wdXNoKFMpO2JyZWFrfWVlWzJdJiZ4Lm9wcy5wb3AoKSx4LnRyeXMucG9wKCk7Y29udGludWV9Uz1oZS5jYWxsKE1lLHgpfWNhdGNoKEYpe1M9WzYsRl0sej0wfWZpbmFsbHl7Tz1lZT0wfWlmKDUmU1swXSl0aHJvdyBTWzFdO3JldHVybnt2YWx1ZTpTWzBd''@;'; put 'put ''P1NbMV06dm9pZCAwLGRvbmU6ITB9fShbVixUXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU0FTVml5YUFwaUNsaWVudD12b2lkIDA7dmFyIE49aig1OTI4KSx0ZT1qKDYyMzApLEs9aigxMzk1KSxKPWooNjkwMyksc2U9aig2NzIpLG9l''@;'; put 'put ''PWooOTA5NyksY2U9aig5Nzc4KSxkZT1qKDEzNDMpLHZlPWooNzA0KSxBZT1qKDY0OTYpLGtlPWooNTQwMSksU2U9aigzNTY5KSxJZT1qKDM2NiksVGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBNZShoZSxPLHosZWUpe3RoaXMuc2VydmVyVXJsPWhlLHRoaXMucm9vdEZvbGRlck5hbWU9Tyx0aGlz''@;'; put 'put ''LmNvbnRleHROYW1lPXosdGhpcy5yZXF1ZXN0Q2xpZW50PWVlLHRoaXMuX2RlYnVnPSExLHRoaXMuc2Vzc2lvbk1hbmFnZXI9bmV3IEouU2Vzc2lvbk1hbmFnZXIodGhpcy5zZXJ2ZXJVcmwsdGhpcy5jb250ZXh0TmFtZSx0aGlzLnJlcXVlc3RDbGllbnQpLHRoaXMuY29udGV4dE1hbmFnZXI9''@;'; put 'put ''bmV3IHNlLkNvbnRleHRNYW5hZ2VyKHRoaXMuc2VydmVyVXJsLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy5mb2xkZXJNYXA9bmV3IE1hcCxoZSYmKDAsTi5pc1VybCkoaGUpfXJldHVybiBNZS5wcm90b3R5cGUuYXBwZW5kUmVxdWVzdD1mdW5jdGlvbihoZSxPLHope3RoaXMucmVxdWVzdENs''@;'; put 'put ''aWVudC5hcHBlbmRSZXF1ZXN0KGhlLE8seil9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNZS5wcm90b3R5cGUsImRlYnVnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlYnVnfSxzZXQ6ZnVuY3Rpb24oaGUpe3RoaXMuX2RlYnVnPWhlLHRoaXMuc2Vzc2lvbk1hbmFnZXImJih0aGlz''@;'; put 'put ''LnNlc3Npb25NYW5hZ2VyLmRlYnVnPWhlKX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxNZS5wcm90b3R5cGUuZ2V0Sm9ic0luRm9sZGVyPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTztyZXR1cm4gVyh0aGlzLGZ1bmN0''@;'; put 'put ''aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIE89KDAsTi5pc1JlbGF0aXZlUGF0aCkoaGUpPyIiLmNvbmNhdCh0aGlzLnJvb3RGb2xkZXJOYW1lLCIvIikuY29uY2F0KGhlKTpoZSx0aGlzLmZvbGRlck1hcC5nZXQoTyk/WzIsdGhpcy5mb2xkZXJNYXAuZ2V0KE8pXTpbNCx0''@;'; put 'put ''aGlzLnBvcHVsYXRlRm9sZGVyTWFwKE8pXTtjYXNlIDE6cmV0dXJuIHouc2VudCgpLFsyLHRoaXMuZm9sZGVyTWFwLmdldChPKV19fSl9KX0sTWUucHJvdG90eXBlLmdldENvbmZpZz1mdW5jdGlvbigpe3JldHVybntzZXJ2ZXJVcmw6dGhpcy5zZXJ2ZXJVcmwscm9vdEZvbGRlck5hbWU6dGhp''@;'; put 'put ''cy5yb290Rm9sZGVyTmFtZX19LE1lLnByb3RvdHlwZS5zZXRDb25maWc9ZnVuY3Rpb24oaGUsTyl7aGUmJih0aGlzLnNlcnZlclVybD1oZSksTyYmKHRoaXMucm9vdEZvbGRlck5hbWU9Tyl9LE1lLnByb3RvdHlwZS5nZXRDb21wdXRlQ29udGV4dHM9ZnVuY3Rpb24oaGUpe3JldHVybiBZKHRo''@;'; put 'put ''aXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmdldENvbXB1dGVDb250ZXh0cyhoZSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sTWUu''@;'; put 'put ''cHJvdG90eXBlLmdldERlZmF1bHRDb21wdXRlQ29udGV4dHM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jb250ZXh0TWFuYWdlci5nZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzfSxNZS5wcm90b3R5cGUuZ2V0TGF1bmNoZXJDb250ZXh0cz1mdW5jdGlvbihoZSl7cmV0dXJuIFkodGhpcyx2b2lk''@;'; put 'put ''IDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuZ2V0TGF1bmNoZXJDb250ZXh0cyhoZSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sTWUucHJvdG90''@;'; put 'put ''eXBlLmdldEV4ZWN1dGFibGVDb250ZXh0cz1mdW5jdGlvbihoZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE87cmV0dXJuIFcodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybiBPPXRoaXMuZXhlY3V0ZVNjcmlwdC5iaW5k''@;'; put 'put ''KHRoaXMpLFs0LHRoaXMuY29udGV4dE1hbmFnZXIuZ2V0RXhlY3V0YWJsZUNvbnRleHRzKE8saGUpXTtjYXNlIDE6cmV0dXJuWzIsei5zZW50KCldfX0pfSl9LE1lLnByb3RvdHlwZS5jcmVhdGVTZXNzaW9uPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5j''@;'; put 'put ''dGlvbigpe3ZhciB6LGVlLG5lO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDpyZXR1cm4gej17IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxPJiYoei5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoTykpLFs0LHRoaXMucmVx''@;'; put 'put ''dWVzdENsaWVudC5nZXQoIi9jb21wdXRlL2NvbnRleHRzP2xpbWl0PTEwMDAwIixPKV07Y2FzZSAxOmlmKGVlPXguc2VudCgpLnJlc3VsdCwhKG5lPWVlLml0ZW1zJiZlZS5pdGVtcy5sZW5ndGg/ZWUuaXRlbXMuZmluZChmdW5jdGlvbihQKXtyZXR1cm4gUC5uYW1lPT09aGV9KTpudWxsKSl0''@;'; put 'put ''aHJvdyBuZXcgRXJyb3IoIkV4ZWN1dGlvbiBjb250ZXh0ICIuY29uY2F0KGhlLCIgbm90IGZvdW5kLiIpKTtyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiL2NvbXB1dGUvY29udGV4dHMvIi5jb25jYXQobmUuaWQsIi9zZXNzaW9ucyIpLHt9LE8pXTtjYXNlIDI6cmV0dXJuWzIs''@;'; put 'put ''eC5zZW50KCkucmVzdWx0XX19KX0pfSxNZS5wcm90b3R5cGUuY3JlYXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oaGUsTyx6LGVlLG5lLHgpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oUCl7c3dpdGNoKFAubGFiZWwpe2Nh''@;'; put 'put ''c2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmNyZWF0ZUNvbXB1dGVDb250ZXh0KGhlLE8seixlZSxuZSx4KV07Y2FzZSAxOnJldHVyblsyLFAuc2VudCgpXX19KX0pfSxNZS5wcm90b3R5cGUuY3JlYXRlTGF1bmNoZXJDb250ZXh0PWZ1bmN0aW9uKGhlLE8seixlZSl7cmV0dXJu''@;'; put 'put ''IHZvaWQgMD09PXomJih6PSJkaXJlY3QiKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuY3JlYXRlTGF1bmNoZXJDb250ZXh0KGhlLE8s''@;'; put 'put ''eixlZSldO2Nhc2UgMTpyZXR1cm5bMixuZS5zZW50KCldfX0pfSl9LE1lLnByb3RvdHlwZS5lZGl0Q29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oaGUsTyx6KXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUu''@;'; put 'put ''bGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmVkaXRDb21wdXRlQ29udGV4dChoZSxPLHopXTtjYXNlIDE6cmV0dXJuWzIsZWUuc2VudCgpXX19KX0pfSxNZS5wcm90b3R5cGUuZGVsZXRlQ29tcHV0ZUNvbnRleHQ9ZnVuY3Rpb24oaGUsTyl7cmV0dXJuIFkodGhp''@;'; put 'put ''cyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuY29udGV4dE1hbmFnZXIuZGVsZXRlQ29tcHV0ZUNvbnRleHQoaGUsTyldO2Nhc2UgMTpyZXR1cm5bMix6LnNlbnQoKV19fSl9KX0s''@;'; put 'put ''TWUucHJvdG90eXBlLmV4ZWN1dGVTY3JpcHQ9ZnVuY3Rpb24oaGUsTyx6LGVlLG5lLHgsUCxWLFQsUyxGKXtyZXR1cm4gdm9pZCAwPT09bmUmJihuZT1udWxsKSx2b2lkIDA9PT14JiYoeD0hMSksdm9pZCAwPT09UCYmKFA9ITEpLHZvaWQgMD09PVYmJihWPSEwKSx2b2lkIDA9PT1TJiYoUz0h''@;'; put 'put ''MSksWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHllKXtyZXR1cm5bMiwoMCxrZS5leGVjdXRlU2NyaXB0KSh0aGlzLnJlcXVlc3RDbGllbnQsdGhpcy5zZXNzaW9uTWFuYWdlcix0aGlzLnJvb3RGb2xkZXJOYW1lLGhlLE8seixlZSxuZSx4''@;'; put 'put ''LFAsVixULFMsRildfSl9KX0sTWUucHJvdG90eXBlLmdldEZvbGRlcj1mdW5jdGlvbihoZSxPKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0''@;'; put 'put ''Q2xpZW50LmdldCgiL2ZvbGRlcnMvZm9sZGVycy9AaXRlbT9wYXRoPSIuY29uY2F0KGhlKSxPKS50aGVuKGZ1bmN0aW9uKGVlKXtyZXR1cm4gZWUucmVzdWx0fSldO2Nhc2UgMTpyZXR1cm5bMix6LnNlbnQoKV19fSl9KX0sTWUucHJvdG90eXBlLmNyZWF0ZUZpbGU9ZnVuY3Rpb24oaGUsTyx6''@;'; put 'put ''LGVlLG5lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeCxQO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oVil7c3dpdGNoKFYubGFiZWwpe2Nhc2UgMDppZigheiYmIWVlKXRocm93IG5ldyBFcnJvcigiUGF0aCBvciBVUkkgb2YgdGhlIHBhcmVudCBmb2xkZXIg''@;'; put 'put ''aXMgcmVxdWlyZWQuIik7cmV0dXJuIGVlfHwhej9bMywyXTpbNCx0aGlzLmdldEZvbGRlclVyaSh6LG5lKV07Y2FzZSAxOmVlPVYuc2VudCgpLFYubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHg9e0FjY2VwdDoiYXBwbGljYXRpb24vdm5kLnNhcy5maWxlK2pzb24iLCJDb250ZW50LURpc3Bvc2l0''@;'; put 'put ''aW9uIjonZmlsZW5hbWU9IicuY29uY2F0KGhlLCciOycpfSwoUD1uZXcgdGUpLmFwcGVuZCgiZmlsZSIsTyxoZSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIi9maWxlcy9maWxlcz9wYXJlbnRGb2xkZXJVcmk9Ii5jb25jYXQoZWUsIiZ0eXBlRGVmTmFtZT1maWxlI3Jhd1VwbG9hZCIp''@;'; put 'put ''LFAsbmUsIm11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIrUC5fYm91bmRhcnkseCldO2Nhc2UgMzpyZXR1cm5bMixWLnNlbnQoKS5yZXN1bHRdfX0pfSl9LE1lLnByb3RvdHlwZS5jcmVhdGVGb2xkZXI9ZnVuY3Rpb24oaGUsTyx6LGVlLG5lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2''@;'; put 'put ''b2lkIDAsZnVuY3Rpb24oKXt2YXIgeCxQLFYsVCxGO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeWUpe3N3aXRjaCh5ZS5sYWJlbCl7Y2FzZSAwOmlmKHg9cmUubG9nZ2VyfHxhZSwhTyYmIXopdGhyb3cgbmV3IEVycm9yKCJQYXRoIG9yIFVSSSBvZiB0aGUgcGFyZW50IGZvbGRlciBpcyByZXF1''@;'; put 'put ''aXJlZC4iKTtyZXR1cm4genx8IU8/WzMsNl06WzQsdGhpcy5nZXRGb2xkZXJVcmkoTyxlZSldO2Nhc2UgMTppZih6PXllLnNlbnQoKSlyZXR1cm5bMywzXTtpZih4LmluZm8oIlBhcmVudCBmb2xkZXIgYXQgcGF0aCAnIi5jb25jYXQoTywiJyBpcyBub3QgcHJlc2VudC4iKSksUD1PLnN1YnN0''@;'; put 'put ''cmluZygwLE8ubGFzdEluZGV4T2YoIi8iKSksVj0iIi5jb25jYXQoTy5zcGxpdCgiLyIpLnBvcCgpKSwiIj09PVApdGhyb3cgbmV3IEsuUm9vdEZvbGRlck5vdEZvdW5kRXJyb3IoTyx0aGlzLnNlcnZlclVybCxlZSk7cmV0dXJuIHguaW5mbygiQ3JlYXRpbmcgcGFyZW50IGZvbGRlcjpcbici''@;'; put 'put ''LmNvbmNhdChWLCInIGluICciKS5jb25jYXQoUCwiJyIpKSxbNCx0aGlzLmNyZWF0ZUZvbGRlcihWLFAsdm9pZCAwLGVlKV07Y2FzZSAyOnJldHVybiBUPXllLnNlbnQoKSx4LmluZm8oIlBhcmVudCBmb2xkZXIgJyIuY29uY2F0KFYsIicgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQu''@;'; put 'put ''IikpLHo9Ii9mb2xkZXJzL2ZvbGRlcnMvIi5jb25jYXQoVC5pZCksWzMsNl07Y2FzZSAzOnJldHVybiBuZSYmZWU/WzQsdGhpcy5nZXRGb2xkZXJVcmkoTysiLyIraGUsZWUpXTpbMyw2XTtjYXNlIDQ6cmV0dXJuIHllLnNlbnQoKT9bNCx0aGlzLmRlbGV0ZUZvbGRlcihPKyIvIitoZSxlZSld''@;'; put 'put ''OlszLDZdO2Nhc2UgNTp5ZS5zZW50KCkseWUubGFiZWw9NjtjYXNlIDY6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIi9mb2xkZXJzL2ZvbGRlcnM/cGFyZW50Rm9sZGVyVXJpPSIuY29uY2F0KHopLHtuYW1lOmhlLHR5cGU6ImZvbGRlciJ9LGVlKV07Y2FzZSA3OnJldHVybiBG''@;'; put 'put ''PXllLnNlbnQoKS5yZXN1bHQsWzQsdGhpcy5wb3B1bGF0ZUZvbGRlck1hcCgiIi5jb25jYXQoTywiLyIpLmNvbmNhdChoZSksZWUpXTtjYXNlIDg6cmV0dXJuIHllLnNlbnQoKSxbMixGXX19KX0pfSxNZS5wcm90b3R5cGUuY3JlYXRlSm9iRGVmaW5pdGlvbj1mdW5jdGlvbihoZSxPLHosZWUs''@;'; put 'put ''bmUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDppZigheiYmIWVlKXRocm93IG5ldyBFcnJvcigiUGF0aCB0byBvciBVUkkgb2YgdGhlIHBhcmVudCBmb2xkZXIgaXMgcmVxdWly''@;'; put 'put ''ZWQuIik7cmV0dXJuIGVlfHwhej9bMywyXTpbNCx0aGlzLmdldEZvbGRlclVyaSh6LG5lKV07Y2FzZSAxOmVlPXguc2VudCgpLHgubGFiZWw9MjtjYXNlIDI6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvam9iRGVmaW5pdGlvbnMv''@;'; put 'put ''ZGVmaW5pdGlvbnM/cGFyZW50Rm9sZGVyVXJpPSIpLmNvbmNhdChlZSkse25hbWU6aGUscGFyYW1ldGVyczpbe25hbWU6Il9hZGRqZXNiZWdpbmVuZG1hY3JvcyIsdHlwZToiQ0hBUkFDVEVSIixkZWZhdWx0VmFsdWU6ImZhbHNlIn1dLHR5cGU6IkNvbXB1dGUiLGNvZGU6T30sbmUpXTtjYXNl''@;'; put 'put ''IDM6cmV0dXJuWzIseC5zZW50KCldfX0pfSl9LE1lLnByb3RvdHlwZS5nZXRBdXRoQ29kZT1mdW5jdGlvbihoZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE8sej10aGlzO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oZWUpe3N3aXRjaChlZS5sYWJlbCl7Y2Fz''@;'; put 'put ''ZSAwOnJldHVybiBPPSIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL1NBU0xvZ29uL29hdXRoL2F1dGhvcml6ZT9jbGllbnRfaWQ9IikuY29uY2F0KGhlLCImcmVzcG9uc2VfdHlwZT1jb2RlIiksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChPLHZvaWQgMCwidGV4dC9wbGFpbiIpLnRoZW4o''@;'; put 'put ''ZnVuY3Rpb24obmUpe3JldHVybiBuZS5yZXN1bHR9KS50aGVuKGZ1bmN0aW9uKG5lKXtyZXR1cm4gWSh6LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeCxQLFYsVDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFMpe3N3aXRjaChTLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHg9IiIsKDAsb2Uu''@;'; put 'put ''aXNBdXRob3JpemVGb3JtUmVxdWlyZWQpKG5lKT9bNCx0aGlzLnJlcXVlc3RDbGllbnQuYXV0aG9yaXplKG5lKV06WzMsMl07Y2FzZSAxOnJldHVybiBQPVMuc2VudCgpLFY9UC5zcGxpdCgiPGJvZHk+IilbMV0uc3BsaXQoIjwvYm9keT4iKVswXSwoVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50''@;'; put 'put ''KCJkaXYiKSkuaW5uZXJIVE1MPVYsWzIseD1ULnF1ZXJ5U2VsZWN0b3IoIi5pbmZvYm94IGg0IikuaW5uZXJUZXh0XTtjYXNlIDI6cmV0dXJuIFY9bmUuc3BsaXQoIjxib2R5PiIpWzFdLnNwbGl0KCI8L2JvZHk+IilbMF0sKFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlubmVy''@;'; put 'put ''SFRNTD1WLFQmJih4PVQucXVlcnlTZWxlY3RvcigiLmluZm9ib3ggaDQiKS5pbm5lclRleHQpLFsyLHhdfX0pfSl9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBudWxsfSldO2Nhc2UgMTpyZXR1cm5bMixlZS5zZW50KCldfX0pfSl9LE1lLnByb3RvdHlwZS5nZXRBY2Nlc3NUb2tlbj1mdW5j''@;'; put 'put ''dGlvbihoZSxPLHope3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oZWUpe3JldHVyblsyLCgwLFNlLmdldEFjY2Vzc1Rva2VuRm9yVml5YSkodGhpcy5yZXF1ZXN0Q2xpZW50LGhlLE8seildfSl9KX0sTWUucHJvdG90eXBlLnJl''@;'; put 'put ''ZnJlc2hUb2tlbnM9ZnVuY3Rpb24oaGUsTyx6KXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGVlKXtyZXR1cm5bMiwoMCxJZS5yZWZyZXNoVG9rZW5zRm9yVml5YSkodGhpcy5yZXF1ZXN0Q2xpZW50LGhlLE8seildfSl9KX0s''@;'; put 'put ''TWUucHJvdG90eXBlLmRlbGV0ZUNsaWVudD1mdW5jdGlvbihoZSxPKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeixlZTtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKG5lKXtzd2l0Y2gobmUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gej10aGlzLnNlcnZlclVybCsi''@;'; put 'put ''L29hdXRoL2NsaWVudHMvIi5jb25jYXQoaGUpLGVlPXt9LE8mJihlZS5BdXRob3JpemF0aW9uPSJCZWFyZXIgIi5jb25jYXQoTykpLFs0LHRoaXMucmVxdWVzdENsaWVudC5kZWxldGUoeixPKV07Y2FzZSAxOnJldHVyblsyLG5lLnNlbnQoKS5yZXN1bHRdfX0pfSl9LE1lLnByb3RvdHlwZS5l''@;'; put 'put ''eGVjdXRlQ29tcHV0ZUpvYj1mdW5jdGlvbihoZSxPLHosZWUsbmUseCxQLFYsVCxTKXtyZXR1cm4gdm9pZCAwPT09eCYmKHg9ITApLHZvaWQgMD09PVAmJihQPSExKSx2b2lkIDA9PT1UJiYoVD0hMSksWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgRix5ZSxDZSxEZSxQZSxR''@;'; put 'put ''ZSwkZSxndCx3dCxtdCx2dDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKEF0KXtzd2l0Y2goQXQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gRj0obmV8fHt9KS5hY2Nlc3NfdG9rZW4sbmU/WzQsKDAsdmUuZ2V0VG9rZW5zKSh0aGlzLnJlcXVlc3RDbGllbnQsbmUpXTpbMywyXTtjYXNlIDE6Rj1BdC5z''@;'; put 'put ''ZW50KCkuYWNjZXNzX3Rva2VuLEF0LmxhYmVsPTI7Y2FzZSAyOmlmKCgwLE4uaXNSZWxhdGl2ZVBhdGgpKGhlKSYmIXRoaXMucm9vdEZvbGRlck5hbWUpdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBwYXRocyBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IHNwZWNpZnlpbmcgYSByb290IGZvbGRl''@;'; put 'put ''ciBuYW1lIik7cmV0dXJuIHllPWhlLnNwbGl0KCIvIiksQ2U9eWUucG9wKCksRGU9eWUuam9pbigiLyIpLFBlPSgwLE4uaXNSZWxhdGl2ZVBhdGgpKGhlKT8iIi5jb25jYXQodGhpcy5yb290Rm9sZGVyTmFtZSwiLyIpLmNvbmNhdChEZSk6RGUsWzQsdGhpcy5wb3B1bGF0ZUZvbGRlck1hcChQ''@;'; put 'put ''ZSxGKS5jYXRjaChmdW5jdGlvbihodCl7dGhyb3coMCxjZS5wcmVmaXhNZXNzYWdlKShodCwiRXJyb3Igd2hpbGUgcG9wdWxhdGluZyBmb2xkZXIgbWFwLiAiKX0pXTtjYXNlIDM6aWYoQXQuc2VudCgpLCEoUWU9dGhpcy5mb2xkZXJNYXAuZ2V0KFBlKSkpdGhyb3cgbmV3IEVycm9yKCJUaGUg''@;'; put 'put ''Zm9sZGVyICciLmNvbmNhdChQZSwiJyB3YXMgbm90IGZvdW5kIG9uICciKS5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIiciKSk7aWYoISgkZT1udWxsPT1RZT92b2lkIDA6UWUuZmluZChmdW5jdGlvbihodCl7cmV0dXJuIGh0Lm5hbWU9PT1DZX0pKSl0aHJvdyBuZXcgRXJyb3IoIkpvYiB3YXMg''@;'; put 'put ''bm90IGZvdW5kLiIpO2lmKGd0PW51bGw9PSRlP3ZvaWQgMDokZS5jb2RlKXJldHVyblszLDVdO2lmKCEod3Q9bnVsbD09JGU/dm9pZCAwOiRlLmxpbmtzLmZpbmQoZnVuY3Rpb24oaHQpe3JldHVybiJnZXRSZXNvdXJjZSI9PT1odC5yZWx9KSkpdGhyb3cgbmV3IEVycm9yKCJVUkkgb2Ygam9i''@;'; put 'put ''IGRlZmluaXRpb24gd2FzIG5vdCBmb3VuZC4iKTtyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KHd0LmhyZWYpLEYpLmNhdGNoKGZ1bmN0aW9uKGh0KXt0aHJvdygwLGNlLnByZWZpeE1lc3NhZ2UpKGh0LCJFcnJvciB3aGls''@;'; put 'put ''ZSBnZXR0aW5nIGpvYiBkZWZpbml0aW9uLiAiKX0pXTtjYXNlIDQ6bXQ9QXQuc2VudCgpLnJlc3VsdCwkZS5jb2RlPWd0PW10LmNvZGUsQXQubGFiZWw9NTtjYXNlIDU6cmV0dXJuIGd0fHwoZ3Q9IiIpLHZ0PWd0LnJlcGxhY2UoL1xyXG4vZywiXG4iKS5zcGxpdCgiXG4iKSxbNCx0aGlzLmV4''@;'; put 'put ''ZWN1dGVTY3JpcHQoaGUsdnQsTyxuZSxlZSx6LFAseCxWLFQsUyldO2Nhc2UgNjpyZXR1cm5bMixBdC5zZW50KCldfX0pfSl9LE1lLnByb3RvdHlwZS5leGVjdXRlSm9iPWZ1bmN0aW9uKGhlLE8seixlZSxuZSl7dmFyIHgsUCxWO3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlv''@;'; put 'put ''bigpe3ZhciBULFMsRix5ZSxDZSxEZSxQZSxRZSwkZSxndCx3dCxtdCx2dCxBdCxodCxCdCxvbixfdCx0dDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGV0KXtzd2l0Y2goZXQubGFiZWwpe2Nhc2UgMDpyZXR1cm4gVD0obmV8fHt9KS5hY2Nlc3NfdG9rZW4sbmU/WzQsKDAsdmUuZ2V0VG9rZW5z''@;'; put 'put ''KSh0aGlzLnJlcXVlc3RDbGllbnQsbmUpXTpbMywyXTtjYXNlIDE6VD1ldC5zZW50KCkuYWNjZXNzX3Rva2VuLGV0LmxhYmVsPTI7Y2FzZSAyOmlmKCgwLE4uaXNSZWxhdGl2ZVBhdGgpKGhlKSYmIXRoaXMucm9vdEZvbGRlck5hbWUpdGhyb3cgbmV3IEVycm9yKCJSZWxhdGl2ZSBwYXRocyBj''@;'; put 'put ''YW5ub3QgYmUgdXNlZCB3aXRob3V0IHNwZWNpZnlpbmcgYSByb290IGZvbGRlciBuYW1lLiIpO3JldHVybiBTPWhlLnNwbGl0KCIvIiksRj1TLnBvcCgpLHllPVMuam9pbigiLyIpLENlPSgwLE4uaXNSZWxhdGl2ZVBhdGgpKGhlKT8iIi5jb25jYXQodGhpcy5yb290Rm9sZGVyTmFtZSwiLyIp''@;'; put 'put ''LmNvbmNhdCh5ZSk6eWUsWzQsdGhpcy5wb3B1bGF0ZUZvbGRlck1hcChDZSxUKV07Y2FzZSAzOmlmKGV0LnNlbnQoKSwhKERlPXRoaXMuZm9sZGVyTWFwLmdldChDZSkpKXRocm93IG5ldyBFcnJvcigiVGhlIGZvbGRlciAnIi5jb25jYXQoQ2UsIicgd2FzIG5vdCBmb3VuZCBvbiAnIikuY29u''@;'; put 'put ''Y2F0KHRoaXMuc2VydmVyVXJsLCInLiIpKTtyZXR1cm4gUGU9bnVsbD09RGU/dm9pZCAwOkRlLmZpbmQoZnVuY3Rpb24obHQpe3JldHVybiBsdC5uYW1lPT09Rn0pLFFlPVtdLGVlJiZPYmplY3Qua2V5cyhlZSkubGVuZ3RoP1s0LHRoaXMudXBsb2FkVGFibGVzKGVlLFQpXTpbMyw1XTtjYXNl''@;'; put 'put ''IDQ6UWU9ZXQuc2VudCgpLGV0LmxhYmVsPTU7Y2FzZSA1OmlmKCFQZSl0aHJvdyBuZXcgRXJyb3IoIkpvYiB3YXMgbm90IGZvdW5kLiIpO3JldHVybiAkZT1udWxsPT09KHg9bnVsbD09UGU/dm9pZCAwOlBlLmxpbmtzLmZpbmQoZnVuY3Rpb24obHQpe3JldHVybiJnZXRSZXNvdXJjZSI9PT1s''@;'; put 'put ''dC5yZWx9KSl8fHZvaWQgMD09PXg/dm9pZCAwOnguaHJlZixbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KCRlKSxUKV07Y2FzZSA2OnJldHVybiBndD1ldC5zZW50KCkucmVzdWx0LHd0PXtfY29udGV4dE5hbWU6TyxfcHJvZ3JhbToi''@;'; put 'put ''Ii5jb25jYXQoQ2UsIi8iKS5jb25jYXQoRiksX3dlYmluX2ZpbGVfY291bnQ6UWUubGVuZ3RoLF9PTUlUSlNPTkxJU1RJTkc6ITAsX09NSVRKU09OTE9HOiEwLF9PTUlUU0VTU0lPTlJFU1VMVFM6ITAsX09NSVRURVhUTElTVElORzohMCxfT01JVFRFWFRMT0c6ITB9LHomJih3dC5fT01JVFRF''@;'; put 'put ''WFRMT0c9ImZhbHNlIix3dC5fT01JVFNFU1NJT05SRVNVTFRTPSJmYWxzZSIsd3QuX0RFQlVHPTEzMSksUWUuZm9yRWFjaChmdW5jdGlvbihsdCxMdCl7d3RbIl93ZWJpbl9maWxldXJpIi5jb25jYXQoTHQrMSldPSIvZmlsZXMvZmlsZXMvIi5jb25jYXQobHQuZmlsZS5pZCksd3RbIl93ZWJp''@;'; put 'put ''bl9uYW1lIi5jb25jYXQoTHQrMSldPWx0LnRhYmxlTmFtZX0pLG10PXtuYW1lOiJleGVjLSIuY29uY2F0KEYpLGRlc2NyaXB0aW9uOiJQb3dlcmVkIGJ5IFNBU2pzIixqb2JEZWZpbml0aW9uOmd0LGFyZ3VtZW50czp3dH0sWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIiIuY29uY2F0KHRo''@;'; put 'put ''aXMuc2VydmVyVXJsLCIvam9iRXhlY3V0aW9uL2pvYnM/X2FjdGlvbj13YWl0IiksbXQsVCldO2Nhc2UgNzpyZXR1cm4gdnQ9ZXQuc2VudCgpLnJlc3VsdCxbNCx0aGlzLnBvbGxKb2JTdGF0ZSh2dCxuZSkuY2F0Y2goZnVuY3Rpb24obHQpe3Rocm93KDAsY2UucHJlZml4TWVzc2FnZSkobHQs''@;'; put 'put ''IkVycm9yIHdoaWxlIHBvbGxpbmcgam9iIHN0YXR1cy4gIil9KV07Y2FzZSA4OnJldHVybiBBdD1ldC5zZW50KCksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9qb2JFeGVjdXRpb24vam9icy8iKS5jb25jYXQodnQuaWQpLFQpXTtjYXNlIDk6''@;'; put 'put ''cmV0dXJuIGh0PWV0LnNlbnQoKS5yZXN1bHQsX3Q9aHQucmVzdWx0c1siX3dlYm91dC5qc29uIl0sdHQ9aHQubGlua3MuZmluZChmdW5jdGlvbihsdCl7cmV0dXJuImxvZyI9PT1sdC5yZWx9KSxfdD9bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCku''@;'; put 'put ''Y29uY2F0KF90LCIvY29udGVudCIpLFQsInRleHQvcGxhaW4iKV06WzMsMTFdO2Nhc2UgMTA6QnQ9ZXQuc2VudCgpLGV0LmxhYmVsPTExO2Nhc2UgMTE6cmV0dXJuIHomJnR0P1s0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsKS5jb25jYXQodHQuaHJl''@;'; put 'put ''ZiwiL2NvbnRlbnQiKSxUKS50aGVuKGZ1bmN0aW9uKGx0KXtyZXR1cm4gbHQucmVzdWx0Lml0ZW1zLm1hcChmdW5jdGlvbihMdCl7cmV0dXJuIEx0LmxpbmV9KS5qb2luKCJcbiIpfSldOlszLDEzXTtjYXNlIDEyOm9uPWV0LnNlbnQoKSxldC5sYWJlbD0xMztjYXNlIDEzOmlmKCJmYWlsZWQi''@;'; put 'put ''PT09QXQpdGhyb3cgbmV3IEsuSm9iRXhlY3V0aW9uRXJyb3IobnVsbD09PShQPWh0LmVycm9yKXx8dm9pZCAwPT09UD92b2lkIDA6UC5lcnJvckNvZGUsbnVsbD09PShWPWh0LmVycm9yKXx8dm9pZCAwPT09Vj92b2lkIDA6Vi5tZXNzYWdlLG9uKTtyZXR1cm5bMix7cmVzdWx0Om51bGw9PUJ0''@;'; put 'put ''P3ZvaWQgMDpCdC5yZXN1bHQsbG9nOm9ufV19fSl9KX0sTWUucHJvdG90eXBlLnBvcHVsYXRlRm9sZGVyTWFwPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LG5lLHg7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihWKXtzd2l0Y2goVi5s''@;'; put 'put ''YWJlbCl7Y2FzZSAwOnJldHVybiB6PSgwLE4uaXNSZWxhdGl2ZVBhdGgpKGhlKT8iIi5jb25jYXQodGhpcy5yb290Rm9sZGVyTmFtZSwiLyIpLmNvbmNhdChoZSk6aGUsdGhpcy5mb2xkZXJNYXAuZ2V0KHopP1syXTpbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCgiL2ZvbGRl''@;'; put 'put ''cnMvZm9sZGVycy9AaXRlbT9wYXRoPSIreiksTykuY2F0Y2goZnVuY3Rpb24oVCl7dGhyb3coMCxjZS5wcmVmaXhNZXNzYWdlKShULCJFcnJvciB3aGlsZSBnZXR0aW5nIGZvbGRlci4gIil9KV07Y2FzZSAxOmlmKCEobmU9Vi5zZW50KCkucmVzdWx0KSl0aHJvdyBuZXcgRXJyb3IoIlRoZSBw''@;'; put 'put ''YXRoICIuY29uY2F0KHosIiBkb2VzIG5vdCBleGlzdCBvbiAiKS5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpKTtyZXR1cm5bNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIvZm9sZGVycy9mb2xkZXJzLyIuY29uY2F0KG5lLmlkLCIvbWVtYmVycz9saW1pdD0iKS5jb25jYXQobmUubWVtYmVyQ291''@;'; put 'put ''bnQ8NTAwPzUwMDpuZS5tZW1iZXJDb3VudCksTykuY2F0Y2goZnVuY3Rpb24oVCl7dGhyb3coMCxjZS5wcmVmaXhNZXNzYWdlKShULCJFcnJvciB3aGlsZSBnZXR0aW5nIG1lbWJlcnMuICIpfSldO2Nhc2UgMjpyZXR1cm4geD1WLnNlbnQoKS5yZXN1bHQsdGhpcy5mb2xkZXJNYXAuc2V0KHos''@;'; put 'put ''eC5pdGVtcyksWzJdfX0pfSl9LE1lLnByb3RvdHlwZS5wb2xsSm9iU3RhdGU9ZnVuY3Rpb24oaGUsTyx6KXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGVlKXtyZXR1cm5bMiwoMCxkZS5wb2xsSm9iU3RhdGUpKHRoaXMucmVx''@;'; put 'put ''dWVzdENsaWVudCxoZSx0aGlzLmRlYnVnLE8seildfSl9KX0sTWUucHJvdG90eXBlLnVwbG9hZFRhYmxlcz1mdW5jdGlvbihoZSxPKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHope3JldHVyblsyLCgwLEFlLnVwbG9hZFRh''@;'; put 'put ''YmxlcykodGhpcy5yZXF1ZXN0Q2xpZW50LGhlLE8pXX0pfSl9LE1lLnByb3RvdHlwZS5nZXRGb2xkZXJEZXRhaWxzPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LGVlO3JldHVybiBXKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChu''@;'; put 'put ''ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB6PSgwLE4uaXNVcmkpKGhlKT9oZToiL2ZvbGRlcnMvZm9sZGVycy9AaXRlbT9wYXRoPSIuY29uY2F0KGhlKSxbNCx0aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KHopLE8pLmNhdGNoKGZ1bmN0aW9u''@;'; put 'put ''KHgpe2lmKHggaW5zdGFuY2VvZiBLLkNlcnRpZmljYXRlRXJyb3IpdGhyb3cgeDtyZXR1cm57cmVzdWx0Om51bGx9fSldO2Nhc2UgMTpyZXR1cm4oZWU9bmUuc2VudCgpLnJlc3VsdCk/WzIsZWVdOlsyLHZvaWQgMF19fSl9KX0sTWUucHJvdG90eXBlLmdldEZvbGRlclVyaT1mdW5jdGlvbiho''@;'; put 'put ''ZSxPKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgejtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmdldEZvbGRlckRldGFpbHMoaGUsTyldO2Nhc2UgMTpyZXR1cm4oej1lZS5zZW50KCkp''@;'; put 'put ''P1syLCIvZm9sZGVycy9mb2xkZXJzLyIuY29uY2F0KHouaWQpXTpbMix2b2lkIDBdfX0pfSl9LE1lLnByb3RvdHlwZS5nZXRSZWN5Y2xlQmluVXJpPWZ1bmN0aW9uKGhlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9u''@;'; put 'put ''KHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdCgiL2ZvbGRlcnMvZm9sZGVycy9AbXlSZWN5Y2xlQmluIiksaGUpLmNhdGNoKGZ1bmN0aW9uKGVlKXtpZihlZSBpbnN0YW5jZW9m''@;'; put 'put ''IEsuQ2VydGlmaWNhdGVFcnJvcil0aHJvdyBlZTtyZXR1cm57cmVzdWx0Om51bGx9fSldO2Nhc2UgMTpyZXR1cm4oTz16LnNlbnQoKS5yZXN1bHQpP1syLCIvZm9sZGVycy9mb2xkZXJzLyIuY29uY2F0KE8uaWQpXTpbMix2b2lkIDBdfX0pfSl9LE1lLnByb3RvdHlwZS5nZXRDb21wdXRlQ29u''@;'; put 'put ''dGV4dEJ5TmFtZT1mdW5jdGlvbihoZSxPKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jb250ZXh0TWFuYWdlci5nZXRDb21wdXRlQ29udGV4dEJ5TmFt''@;'; put 'put ''ZShoZSxPKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxNZS5wcm90b3R5cGUuZ2V0Q29tcHV0ZUNvbnRleHRCeUlkPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHou''@;'; put 'put ''bGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmNvbnRleHRNYW5hZ2VyLmdldENvbXB1dGVDb250ZXh0QnlJZChoZSxPKV07Y2FzZSAxOnJldHVyblsyLHouc2VudCgpXX19KX0pfSxNZS5wcm90b3R5cGUubGlzdEZvbGRlcj1mdW5jdGlvbihoZSxPLHope3JldHVybiB2b2lkIDA9PT16JiYo''@;'; put 'put ''ej0yMCksWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZWUsbmUseDtyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKFApe3N3aXRjaChQLmxhYmVsKXtjYXNlIDA6cmV0dXJuKDAsTi5pc1VyaSkoaGUpPyhuZT1oZSxbMywzXSk6WzMsMV07Y2FzZSAxOnJldHVybls0LHRoaXMuZ2V0''@;'; put 'put ''Rm9sZGVyVXJpKGhlLE8pXTtjYXNlIDI6bmU9UC5zZW50KCksUC5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gZWU9bmUsWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwpLmNvbmNhdChlZSwiL21lbWJlcnM/bGltaXQ9IikuY29uY2F0KHopLE8pXTtjYXNl''@;'; put 'put ''IDQ6cmV0dXJuKHg9UC5zZW50KCkucmVzdWx0KSYmeC5pdGVtcz9bMix4Lml0ZW1zLm1hcChmdW5jdGlvbihWKXtyZXR1cm4gVi5uYW1lfSldOlsyLFtdXX19KX0pfSxNZS5wcm90b3R5cGUubW92ZUZvbGRlcj1mdW5jdGlvbihoZSxPLHosZWUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQg''@;'; put 'put ''MCxmdW5jdGlvbigpe3ZhciBuZSx4LFAsVixULFM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihGKXtzd2l0Y2goRi5sYWJlbCl7Y2FzZSAwOnJldHVybiBuZT1oZS5zcGxpdCgiLyIpLnBvcCgpLFs0LHRoaXMuZ2V0Rm9sZGVyRGV0YWlscyhPLGVlKV07Y2FzZSAxOnJldHVybiBGLnNlbnQoKT96''@;'; put 'put ''PW5lOigoeD1PLnNwbGl0KCIvIikpLnNwbGljZSh4Lmxlbmd0aC0xLDEpLE89eC5qb2luKCIvIikpLFs0LHRoaXMuZ2V0Rm9sZGVyVXJpKGhlLGVlKV07Y2FzZSAyOnJldHVybiBQPUYuc2VudCgpLFs0LHRoaXMuZ2V0Rm9sZGVyVXJpKE8sZWUpXTtjYXNlIDM6cmV0dXJuIFY9Ri5zZW50KCks''@;'; put 'put ''UD8oVD1udWxsPT1QP3ZvaWQgMDpQLnNwbGl0KCIvIikucG9wKCksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBhdGNoKCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KFApLHtpZDpULG5hbWU6eixwYXJlbnRGb2xkZXJVcmk6Vn0sZWUpLmNhdGNoKGZ1bmN0aW9uKHllKXt0aHJvdyB5''@;'; put 'put ''ZS5jb2RlJiYiRU5PVEZPVU5EIj09PXllLmNvZGU/e2JvZHk6e21lc3NhZ2U6IkZvbGRlciAnIi5jb25jYXQoaGUuc3BsaXQoIi8iKS5wb3AoKSwiJyB3YXMgbm90IGZvdW5kLiIpfX06eWV9KV0pOlsyLHZvaWQgMF07Y2FzZSA0OnJldHVybihTPUYuc2VudCgpLnJlc3VsdCk/WzIsU106WzIs''@;'; put 'put ''dm9pZCAwXX19KX0pfSxNZS5wcm90b3R5cGUuZGVsZXRlRm9sZGVyPWZ1bmN0aW9uKGhlLE8pe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB6LGVlLG5lLHg7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihWKXtzd2l0Y2goVi5sYWJlbCl7Y2FzZSAwOnJldHVybls0''@;'; put 'put ''LHRoaXMuZ2V0UmVjeWNsZUJpblVyaShPKV07Y2FzZSAxOnJldHVybiB6PVYuc2VudCgpLGVlPWhlLnNwbGl0KCIvIikucG9wKCl8fCIiLG5lPW5ldyBEYXRlLHg9bmUudG9Mb2NhbGVEYXRlU3RyaW5nKCkrIiAiK25lLnRvTG9jYWxlVGltZVN0cmluZygpLFs0LHRoaXMubW92ZUZvbGRlciho''@;'; put 'put ''ZSx6LGVlKyIgIit4LE8pXTtjYXNlIDI6cmV0dXJuWzIsVi5zZW50KCldfX0pfSl9LE1lfSgpO1EuU0FTVml5YUFwaUNsaWVudD1UZX0sNTk1NjpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiByZT1PYmpl''@;'; put 'put ''Y3QuYXNzaWdufHxmdW5jdGlvbihUZSl7Zm9yKHZhciBNZSxoZT0xLE89YXJndW1lbnRzLmxlbmd0aDtoZTxPO2hlKyspZm9yKHZhciB6IGluIE1lPWFyZ3VtZW50c1toZV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE1lLHopJiYoVGVbel09TWVbel0pO3JldHVybiBU''@;'; put 'put ''ZX0scmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oVGUsTWUsaGUsTyl7cmV0dXJuIG5ldyhoZXx8KGhlPVByb21pc2UpKShmdW5jdGlvbih6LGVlKXtmdW5jdGlvbiBuZShWKXt0cnl7UChPLm5leHQoVikpfWNhdGNoKFQpe2VlKFQp''@;'; put 'put ''fX1mdW5jdGlvbiB4KFYpe3RyeXtQKE8udGhyb3coVikpfWNhdGNoKFQpe2VlKFQpfX1mdW5jdGlvbiBQKFYpe3ZhciBUO1YuZG9uZT96KFYudmFsdWUpOihUPVYudmFsdWUsVCBpbnN0YW5jZW9mIGhlP1Q6bmV3IGhlKGZ1bmN0aW9uKFMpe1MoVCl9KSkudGhlbihuZSx4KX1QKChPPU8uYXBw''@;'; put 'put ''bHkoVGUsTWV8fFtdKSkubmV4dCgpKX0pfSxZPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFRlLE1lKXt2YXIgaGUsTyx6LGVlLG5lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnpbMF0pdGhyb3cgelsxXTtyZXR1cm4gelsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVy''@;'; put 'put ''biBlZT17bmV4dDp4KDApLHRocm93OngoMSkscmV0dXJuOngoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihlZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxlZTtmdW5jdGlvbiB4KFApe3JldHVybiBmdW5jdGlvbihWKXtyZXR1cm4gZnVuY3Rpb24o''@;'; put 'put ''VCl7aWYoaGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7bmU7KXRyeXtpZihoZT0xLE8mJih6PTImVFswXT9PLnJldHVybjpUWzBdP08udGhyb3d8fCgoej1PLnJldHVybikmJnouY2FsbChPKSwwKTpPLm5leHQpJiYhKHo9ei5j''@;'; put 'put ''YWxsKE8sVFsxXSkpLmRvbmUpcmV0dXJuIHo7c3dpdGNoKE89MCx6JiYoVD1bMiZUWzBdLHoudmFsdWVdKSxUWzBdKXtjYXNlIDA6Y2FzZSAxOno9VDticmVhaztjYXNlIDQ6cmV0dXJuIG5lLmxhYmVsKysse3ZhbHVlOlRbMV0sZG9uZTohMX07Y2FzZSA1Om5lLmxhYmVsKyssTz1UWzFdLFQ9''@;'; put 'put ''WzBdO2NvbnRpbnVlO2Nhc2UgNzpUPW5lLm9wcy5wb3AoKSxuZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoej0oej1uZS50cnlzKS5sZW5ndGg+MCYmelt6Lmxlbmd0aC0xXSl8fDYhPT1UWzBdJiYyIT09VFswXSkpe25lPTA7Y29udGludWV9aWYoMz09PVRbMF0mJighenx8''@;'; put 'put ''VFsxXT56WzBdJiZUWzFdPHpbM10pKXtuZS5sYWJlbD1UWzFdO2JyZWFrfWlmKDY9PT1UWzBdJiZuZS5sYWJlbDx6WzFdKXtuZS5sYWJlbD16WzFdLHo9VDticmVha31pZih6JiZuZS5sYWJlbDx6WzJdKXtuZS5sYWJlbD16WzJdLG5lLm9wcy5wdXNoKFQpO2JyZWFrfXpbMl0mJm5lLm9wcy5w''@;'; put 'put ''b3AoKSxuZS50cnlzLnBvcCgpO2NvbnRpbnVlfVQ9TWUuY2FsbChUZSxuZSl9Y2F0Y2goUyl7VD1bNixTXSxPPTB9ZmluYWxseXtoZT16PTB9aWYoNSZUWzBdKXRocm93IFRbMV07cmV0dXJue3ZhbHVlOlRbMF0/VFsxXTp2b2lkIDAsZG9uZTohMH19KFtQLFZdKX19fSxXPXRoaXMmJnRoaXMu''@;'; put 'put ''X19zcHJlYWRBcnJheXx8ZnVuY3Rpb24oVGUsTWUsaGUpe2lmKGhlfHwyPT09YXJndW1lbnRzLmxlbmd0aClmb3IodmFyIE8sej0wLGVlPU1lLmxlbmd0aDt6PGVlO3orKykhTyYmeiBpbiBNZXx8KE98fChPPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKE1lLDAseikpLE9bel09TWVbel0p''@;'; put 'put ''O3JldHVybiBUZS5jb25jYXQoT3x8QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoTWUpKX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBOPWooNTkyOCksdGU9aigxMjMwKSxLPWooOTgyMSksSj1qKDgzMDYpLHNlPWooMzQ2Nyksb2U9aigx''@;'; put 'put ''NTI3KSxjZT1qKDM5MDApLGRlPWooNDU4OCksdmU9aigzNjAyKSxBZT1qKDgyMTcpLGtlPWooMTM5NSksU2U9e3NlcnZlclVybDoiIixwYXRoU0FTSlM6Ii9TQVNqc0FwaS9zdHAvZXhlY3V0ZSIscGF0aFNBUzk6Ii9TQVNTdG9yZWRQcm9jZXNzL2RvIixwYXRoU0FTVml5YToiL1NBU0pvYkV4''@;'; put 'put ''ZWN1dGlvbiIsYXBwTG9jOiIvUHVibGljL3NlZWRhcHAiLHNlcnZlclR5cGU6Y2UuU2VydmVyVHlwZS5TYXNWaXlhLGRlYnVnOiExLGNvbnRleHROYW1lOiJTQVMgSm9iIEV4ZWN1dGlvbiBjb21wdXRlIGNvbnRleHQiLHVzZUNvbXB1dGVBcGk6bnVsbCxsb2dpbk1lY2hhbmlzbTp0ZS5Mb2dp''@;'; put 'put ''bk1lY2hhbmlzbS5EZWZhdWx0fSxJZT1mdW5jdGlvbigpe2Z1bmN0aW9uIFRlKE1lKXt2YXIgaGU9dGhpczt0aGlzLnNhc2pzQ29uZmlnPW5ldyB0ZS5TQVNqc0NvbmZpZyx0aGlzLmpvYnNQYXRoPSIiLHRoaXMuc2FzVml5YUFwaUNsaWVudD1udWxsLHRoaXMuc2FzOUFwaUNsaWVudD1udWxs''@;'; put 'put ''LHRoaXMuc2FzSlNBcGlDbGllbnQ9bnVsbCx0aGlzLmZpbGVVcGxvYWRlcj1udWxsLHRoaXMuYXV0aE1hbmFnZXI9bnVsbCx0aGlzLnJlcXVlc3RDbGllbnQ9bnVsbCx0aGlzLndlYkpvYkV4ZWN1dG9yPW51bGwsdGhpcy5zYXNqc0pvYkV4ZWN1dG9yPW51bGwsdGhpcy5jb21wdXRlSm9iRXhl''@;'; put 'put ''Y3V0b3I9bnVsbCx0aGlzLmplc0pvYkV4ZWN1dG9yPW51bGwsdGhpcy5zYXM5Sm9iRXhlY3V0b3I9bnVsbCx0aGlzLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cz1mdW5jdGlvbigpe3JldHVybiBhZShoZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE8seixlZSxuZTtyZXR1cm4gWSh0aGlz''@;'; put 'put ''LGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsbnVsbD09PShPPXRoaXMud2ViSm9iRXhlY3V0b3IpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLnJlc2VuZFdhaXRpbmdSZXF1ZXN0cygpXTtjYXNlIDE6cmV0dXJuIHguc2VudCgpLFs0LG51bGw9PT0oej10aGlzLmNv''@;'; put 'put ''bXB1dGVKb2JFeGVjdXRvcil8fHZvaWQgMD09PXo/dm9pZCAwOnoucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nhc2UgMjpyZXR1cm4geC5zZW50KCksWzQsbnVsbD09PShlZT10aGlzLmplc0pvYkV4ZWN1dG9yKXx8dm9pZCAwPT09ZWU/dm9pZCAwOmVlLnJlc2VuZFdhaXRpbmdSZXF1ZXN0''@;'; put 'put ''cygpXTtjYXNlIDM6cmV0dXJuIHguc2VudCgpLFs0LG51bGw9PT0obmU9dGhpcy5maWxlVXBsb2FkZXIpfHx2b2lkIDA9PT1uZT92b2lkIDA6bmUucmVzZW5kV2FpdGluZ1JlcXVlc3RzKCldO2Nhc2UgNDpyZXR1cm4geC5zZW50KCksWzJdfX0pfSl9LHRoaXMuc2FzanNDb25maWc9cmUocmUo''@;'; put 'put ''e30sU2UpLE1lKSx0aGlzLnNldHVwQ29uZmlndXJhdGlvbigpfXJldHVybiBUZS5wcm90b3R5cGUuZ2V0Q3NyZlRva2VuPWZ1bmN0aW9uKE1lKXt2YXIgaGU7cmV0dXJuIHZvaWQgMD09PU1lJiYoTWU9ImdlbmVyYWwiKSxudWxsPT09KGhlPXRoaXMucmVxdWVzdENsaWVudCl8fHZvaWQgMD09''@;'; put 'put ''PWhlP3ZvaWQgMDpoZS5nZXRDc3JmVG9rZW4oTWUpfSxUZS5wcm90b3R5cGUuZXhlY3V0ZVNjcmlwdFNBUzk9ZnVuY3Rpb24oTWUsaGUsTyl7dmFyIHo7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oZWUpe3N3aXRjaChlZS5s''@;'; put 'put ''YWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJleGVjdXRlU2NyaXB0U0FTOSIsW2NlLlNlcnZlclR5cGUuU2FzOV0pLFs0LG51bGw9PT0oej10aGlzLnNhczlBcGlDbGllbnQpfHx2b2lkIDA9PT16P3ZvaWQgMDp6LmV4ZWN1dGVTY3JpcHQoTWUsaGUsTyldO2Nh''@;'; put 'put ''c2UgMTpyZXR1cm5bMixlZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5leGVjdXRlU2NyaXB0U0FTanM9ZnVuY3Rpb24oTWUsaGUsTyl7dmFyIHo7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oZWUpe3N3aXRjaChlZS5s''@;'; put 'put ''YWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJleGVjdXRlU2NyaXB0U0FTSlMiLFtjZS5TZXJ2ZXJUeXBlLlNhc2pzXSksWzQsbnVsbD09PSh6PXRoaXMuc2FzSlNBcGlDbGllbnQpfHx2b2lkIDA9PT16P3ZvaWQgMDp6LmV4ZWN1dGVTY3JpcHQoTWUsaGUsTyld''@;'; put 'put ''O2Nhc2UgMTpyZXR1cm5bMixlZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5leGVjdXRlU2NyaXB0U0FTVml5YT1mdW5jdGlvbihNZSxoZSxPLHosZWUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKG5lKXtzd2l0Y2go''@;'; put 'put ''bmUubGFiZWwpe2Nhc2UgMDppZih0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJleGVjdXRlU2NyaXB0U0FTVml5YSIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLCEoTz1PfHx0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lKSl0aHJvdyBuZXcgRXJyb3IoIkNvbnRleHQgbmFtZSBpcyB1bmRl''@;'; put 'put ''ZmluZWQuIFBsZWFzZSBzZXQgYSBgY29udGV4dE5hbWVgIGluIHlvdXIgU0FTanMgb3Igb3ZlcnJpZGUgY29uZmlnLiIpO3JldHVybls0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5leGVjdXRlU2NyaXB0KE1lLGhlLE8seixudWxsLGVlfHx0aGlzLnNhc2pzQ29uZmlnLmRlYnVnKV07Y2FzZSAx''@;'; put 'put ''OnJldHVyblsyLG5lLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0cz1mdW5jdGlvbihNZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOnJl''@;'; put 'put ''dHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRDb21wdXRlQ29udGV4dHMiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0Q29tcHV0ZUNvbnRleHRzKE1lKV07Y2FzZSAxOnJldHVyblsyLGhlLnNlbnQoKV19fSl9KX0sVGUucHJvdG90''@;'; put 'put ''eXBlLmdldExhdW5jaGVyQ29udGV4dHM9ZnVuY3Rpb24oTWUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0TGF1''@;'; put 'put ''bmNoZXJDb250ZXh0cyIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRMYXVuY2hlckNvbnRleHRzKE1lKV07Y2FzZSAxOnJldHVyblsyLGhlLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmdldERlZmF1bHRDb21wdXRlQ29udGV4dHM9ZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0RGVmYXVsdENvbXB1dGVDb250ZXh0cyIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXREZWZhdWx0Q29tcHV0ZUNvbnRleHRzKCl9LFRlLnByb3RvdHlwZS5nZXRFeGVjdXRh''@;'; put 'put ''YmxlQ29udGV4dHM9ZnVuY3Rpb24oTWUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0RXhlY3V0YWJsZUNvbnRl''@;'; put 'put ''eHRzIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEV4ZWN1dGFibGVDb250ZXh0cyhNZSldO2Nhc2UgMTpyZXR1cm5bMixoZS5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5jcmVhdGVDb21wdXRlQ29udGV4dD1mdW5jdGlvbihNZSxoZSxP''@;'; put 'put ''LHosZWUsbmUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImNyZWF0ZUNvbXB1dGVDb250ZXh0IixbY2UuU2VydmVyVHlw''@;'; put 'put ''ZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUNvbXB1dGVDb250ZXh0KE1lLGhlLE8seixlZSxuZSldO2Nhc2UgMTpyZXR1cm5bMix4LnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmNyZWF0ZUxhdW5jaGVyQ29udGV4dD1mdW5jdGlvbihNZSxoZSxPLHope3Jl''@;'; put 'put ''dHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiY3JlYXRlTGF1bmNoZXJDb250ZXh0IixbY2UuU2VydmVyVHlwZS5TYXNWaXlh''@;'; put 'put ''XSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUxhdW5jaGVyQ29udGV4dChNZSxoZSxPLHopXTtjYXNlIDE6cmV0dXJuWzIsZWUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZWRpdENvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKE1lLGhlLE8pe3JldHVybiBhZSh0aGlzLHZvaWQg''@;'; put 'put ''MCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImVkaXRDb21wdXRlQ29udGV4dCIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNs''@;'; put 'put ''aWVudC5lZGl0Q29tcHV0ZUNvbnRleHQoTWUsaGUsTyldO2Nhc2UgMTpyZXR1cm5bMix6LnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmRlbGV0ZUNvbXB1dGVDb250ZXh0PWZ1bmN0aW9uKE1lLGhlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFko''@;'; put 'put ''dGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJkZWxldGVDb21wdXRlQ29udGV4dCIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5kZWxldGVDb21wdXRlQ29udGV4dChN''@;'; put 'put ''ZSxoZSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0QnlOYW1lPWZ1bmN0aW9uKE1lLGhlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2go''@;'; put 'put ''Ty5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJnZXRDb21wdXRlQ29udGV4dEJ5TmFtZSIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRDb21wdXRlQ29udGV4dEJ5TmFtZShNZSxoZSldO2Nhc2UgMTpyZXR1''@;'; put 'put ''cm5bMixPLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmdldENvbXB1dGVDb250ZXh0QnlJZD1mdW5jdGlvbihNZSxoZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1''@;'; put 'put ''cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0Q29tcHV0ZUNvbnRleHRCeUlkIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldENvbXB1dGVDb250ZXh0QnlJZChNZSxoZSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sVGUu''@;'; put 'put ''cHJvdG90eXBlLmNyZWF0ZVNlc3Npb249ZnVuY3Rpb24oTWUsaGUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImNyZWF0''@;'; put 'put ''ZVNlc3Npb24iLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuY3JlYXRlU2Vzc2lvbihNZSxoZSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmNyZWF0ZUZvbGRlcj1mdW5jdGlvbihNZSxoZSxPLHosZWUsbmUp''@;'; put 'put ''e3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuIGVlP1s0LGVlLmNyZWF0ZUZvbGRlcihNZSxoZSxPLHopXTpbMywyXTtjYXNlIDE6Y2FzZSAzOnJldHVyblsyLHguc2Vu''@;'; put 'put ''dCgpXTtjYXNlIDI6cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmNyZWF0ZUZvbGRlcihNZSxoZSxPLHosbmUpXX19KX0pfSxUZS5wcm90b3R5cGUuY3JlYXRlRmlsZT1mdW5jdGlvbihNZSxoZSxPLHosZWUsbmUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuIG5lP1s0LG5lLmNyZWF0ZUZpbGUoTWUsaGUsTyx6LGVlKV06WzMsMl07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMix4LnNlbnQoKV07Y2FzZSAyOnJldHVybls0LHRoaXMuc2FzVml5YUFwaUNs''@;'; put 'put ''aWVudC5jcmVhdGVGaWxlKE1lLGhlLE8seixlZSldfX0pfSl9LFRlLnByb3RvdHlwZS5nZXRGb2xkZXI9ZnVuY3Rpb24oTWUsaGUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6''@;'; put 'put ''cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImdldEZvbGRlciIsW2NlLlNlcnZlclR5cGUuU2FzVml5YV0pLFs0LHRoaXMuc2FzVml5YUFwaUNsaWVudC5nZXRGb2xkZXIoTWUsaGUpXTtjYXNlIDE6cmV0dXJuWzIsTy5zZW50KCldfX0pfSl9LFRlLnByb3RvdHlwZS5kZWxldGVGb2xk''@;'; put 'put ''ZXI9ZnVuY3Rpb24oTWUsaGUpe3ZhciBPO3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHope3N3aXRjaCh6LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImRlbGV0ZUZvbGRlciIsW2NlLlNl''@;'; put 'put ''cnZlclR5cGUuU2FzVml5YV0pLFs0LG51bGw9PT0oTz10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1PP3ZvaWQgMDpPLmRlbGV0ZUZvbGRlcihNZSxoZSldO2Nhc2UgMTpyZXR1cm5bMix6LnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmxpc3RGb2xkZXI9ZnVuY3Rpb24oTWUs''@;'; put 'put ''aGUsTyl7dmFyIHo7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oZWUpe3N3aXRjaChlZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJsaXN0Rm9sZGVyIixbY2UuU2VydmVyVHlwZS5TYXNW''@;'; put 'put ''aXlhXSksWzQsbnVsbD09PSh6PXRoaXMuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PXo/dm9pZCAwOnoubGlzdEZvbGRlcihNZSxoZSxPKV07Y2FzZSAxOnJldHVyblsyLGVlLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLm1vdmVGb2xkZXI9ZnVuY3Rpb24oTWUsaGUsTyx6KXt2YXIg''@;'; put 'put ''ZWU7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLmlzTWV0aG9kU3VwcG9ydGVkKCJtb3ZlRm9sZGVyIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksWzQs''@;'; put 'put ''bnVsbD09PShlZT10aGlzLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1lZT92b2lkIDA6ZWUubW92ZUZvbGRlcihNZSxoZSxPLHopXTtjYXNlIDE6cmV0dXJuWzIsbmUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuY3JlYXRlSm9iRGVmaW5pdGlvbj1mdW5jdGlvbihNZSxoZSxPLHos''@;'; put 'put ''ZWUsbmUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImNyZWF0ZUpvYkRlZmluaXRpb24iLFtjZS5TZXJ2ZXJUeXBlLlNh''@;'; put 'put ''c1ZpeWFdKSxuZT9bNCxuZS5jcmVhdGVKb2JEZWZpbml0aW9uKE1lLGhlLE8seixlZSldOlszLDJdO2Nhc2UgMTpjYXNlIDM6cmV0dXJuWzIseC5zZW50KCldO2Nhc2UgMjpyZXR1cm5bNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuY3JlYXRlSm9iRGVmaW5pdGlvbihNZSxoZSxPLHosZWUpXX19''@;'; put 'put ''KX0pfSxUZS5wcm90b3R5cGUuZ2V0QXV0aENvZGU9ZnVuY3Rpb24oTWUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGhlKXtzd2l0Y2goaGUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgi''@;'; put 'put ''Z2V0QXV0aENvZGUiLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWFdKSxbNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZ2V0QXV0aENvZGUoTWUpXTtjYXNlIDE6cmV0dXJuWzIsaGUuc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUuZ2V0QWNjZXNzVG9rZW49ZnVuY3Rpb24oTWUsaGUsTyl7cmV0dXJu''@;'; put 'put ''IGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZ2V0QWNjZXNzVG9rZW4iLFtjZS5TZXJ2ZXJUeXBlLlNhc1ZpeWEsY2UuU2VydmVyVHlw''@;'; put 'put ''ZS5TYXNqc10pLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSE9PWNlLlNlcnZlclR5cGUuU2FzanM/WzMsMl06WzQsdGhpcy5zYXNKU0FwaUNsaWVudC5nZXRBY2Nlc3NUb2tlbihNZSxPKV07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMix6LnNlbnQoKV07Y2FzZSAyOnJldHVybls0LHRoaXMu''@;'; put 'put ''c2FzVml5YUFwaUNsaWVudC5nZXRBY2Nlc3NUb2tlbihNZSxoZSxPKV19fSl9KX0sVGUucHJvdG90eXBlLnJlZnJlc2hUb2tlbnM9ZnVuY3Rpb24oTWUsaGUsTyl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNo''@;'; put 'put ''KHoubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgicmVmcmVzaFRva2VucyIsW2NlLlNlcnZlclR5cGUuU2FzVml5YSxjZS5TZXJ2ZXJUeXBlLlNhc2pzXSksdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlIT09Y2UuU2VydmVyVHlwZS5TYXNqcz9bMywyXTpb''@;'; put 'put ''NCx0aGlzLnNhc0pTQXBpQ2xpZW50LnJlZnJlc2hUb2tlbnMoTyldO2Nhc2UgMTpjYXNlIDM6cmV0dXJuWzIsei5zZW50KCldO2Nhc2UgMjpyZXR1cm5bNCx0aGlzLnNhc1ZpeWFBcGlDbGllbnQucmVmcmVzaFRva2VucyhNZSxoZSxPKV19fSl9KX0sVGUucHJvdG90eXBlLmRlbGV0ZUNsaWVu''@;'; put 'put ''dD1mdW5jdGlvbihNZSxoZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oTyl7c3dpdGNoKE8ubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgiZGVsZXRlQ2xpZW50IixbY2UuU2VydmVyVHlw''@;'; put 'put ''ZS5TYXNWaXlhXSksWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmRlbGV0ZUNsaWVudChNZSxoZSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmdldFNhc2pzQ29uZmlnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2FzanNDb25maWd9LFRlLnByb3RvdHlw''@;'; put 'put ''ZS5nZXRVc2VyTmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF1dGhNYW5hZ2VyLnVzZXJOYW1lfSxUZS5wcm90b3R5cGUuc2V0U0FTanNDb25maWc9ZnVuY3Rpb24oTWUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGhl''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5zYXNqc0NvbmZpZz1yZShyZSh7fSx0aGlzLnNhc2pzQ29uZmlnKSxNZSksdGhpcy5zZXR1cENvbmZpZ3VyYXRpb24oKSxbMl19KX0pfSxUZS5wcm90b3R5cGUuc2V0RGVidWdTdGF0ZT1mdW5jdGlvbihNZSl7dGhpcy5zYXNqc0NvbmZpZy5kZWJ1Zz1NZSx0aGlzLnNh''@;'; put 'put ''c1ZpeWFBcGlDbGllbnQmJih0aGlzLnNhc1ZpeWFBcGlDbGllbnQuZGVidWc9TWUpfSxUZS5wcm90b3R5cGUuY2hlY2tTZXNzaW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oTWUpe3JldHVyblsyLHRo''@;'; put 'put ''aXMuYXV0aE1hbmFnZXIuY2hlY2tTZXNzaW9uKCldfSl9KX0sVGUucHJvdG90eXBlLmxvZ0luPWZ1bmN0aW9uKE1lLGhlLE8seil7cmV0dXJuIHZvaWQgMD09PXomJih6PXt9KSxhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGVlKXtpZih0''@;'; put 'put ''aGlzLnNhc2pzQ29uZmlnLmxvZ2luTWVjaGFuaXNtPT09dGUuTG9naW5NZWNoYW5pc20uRGVmYXVsdCl7aWYoIU1lfHwhaGUpdGhyb3cgbmV3IEVycm9yKCJBIHVzZXJuYW1lIGFuZCBwYXNzd29yZCBhcmUgcmVxdWlyZWQgd2hlbiB1c2luZyB0aGUgZGVmYXVsdCBsb2dpbiBtZWNoYW5pc20u''@;'; put 'put ''Iik7cmV0dXJuWzIsdGhpcy5hdXRoTWFuYWdlci5sb2dJbihNZSxoZSldfWlmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93KXRocm93IG5ldyBFcnJvcigiVGhlIHJlZGlyZWN0ZWQgbG9naW4gbWVjaGFuaXNtIGlzIG9ubHkgYXZhaWxhYmxlIGZvciB1c2UgaW4gdGhlIGJyb3dzZXIuIik7''@;'; put 'put ''cmV0dXJuWzIsdGhpcy5hdXRoTWFuYWdlci5yZWRpcmVjdGVkTG9nSW4oeildfSl9KX0sVGUucHJvdG90eXBlLmxvZ091dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmF1dGhNYW5hZ2VyLmxvZ091dCgpfSxUZS5wcm90b3R5cGUudXBsb2FkRmlsZT1mdW5jdGlvbihNZSxoZSxPLHosZWUpe3Jl''@;'; put 'put ''dHVybiB2b2lkIDA9PT16JiYoej17fSksYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbih4KXtzd2l0Y2goeC5sYWJlbCl7Y2FzZSAwOnJldHVybiB6PXJlKHJlKHt9LHRoaXMuc2FzanNDb25maWcpLHopLFs0LHRoaXMuZmlsZVVwbG9hZGVy''@;'; put 'put ''LmV4ZWN1dGUoTWUse2ZpbGVzOmhlLHBhcmFtczpPfSx6LGVlKV07Y2FzZSAxOnJldHVyblsyLHguc2VudCgpXX19KX0pfSxUZS5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihNZSxoZSxPLHosZWUsbmUpe3JldHVybiB2b2lkIDA9PT1PJiYoTz17fSksdm9pZCAwPT09bmUmJihuZT1bXSks''@;'; put 'put ''YWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHg7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihQKXtzd2l0Y2goUC5sYWJlbCl7Y2FzZSAwOnJldHVybiBPPXJlKHJlKHt9LHRoaXMuc2FzanNDb25maWcpLE8pLCh4PSgwLE4udmFsaWRhdGVJbnB1dCkoaGUpKS5zdGF0dXM/Ty5z''@;'; put 'put ''ZXJ2ZXJUeXBlIT09Y2UuU2VydmVyVHlwZS5TYXNqcz9bMywyXTpbNCx0aGlzLnNhc2pzSm9iRXhlY3V0b3IuZXhlY3V0ZShNZSxoZSxPLHosZWUsbmUpXTpbMywxMl07Y2FzZSAxOmNhc2UgMzpjYXNlIDU6Y2FzZSA4OmNhc2UgMTA6cmV0dXJuWzIsUC5zZW50KCldO2Nhc2UgMjpyZXR1cm4g''@;'; put 'put ''Ty5zZXJ2ZXJUeXBlIT09Y2UuU2VydmVyVHlwZS5TYXNWaXlhfHxudWxsPT1PLnVzZUNvbXB1dGVBcGk/WzMsN106Ty51c2VDb21wdXRlQXBpP1s0LHRoaXMuY29tcHV0ZUpvYkV4ZWN1dG9yLmV4ZWN1dGUoTWUsaGUsTyx6LGVlKV06WzMsNF07Y2FzZSA0OnJldHVybiBPLmNvbnRleHROYW1l''@;'; put 'put ''fHwoTz1yZShyZSh7fSxPKSx7Y29udGV4dE5hbWU6IlNBUyBKb2IgRXhlY3V0aW9uIGNvbXB1dGUgY29udGV4dCJ9KSksWzQsdGhpcy5qZXNKb2JFeGVjdXRvci5leGVjdXRlKE1lLGhlLE8seixlZSxuZSldO2Nhc2UgNjpyZXR1cm5bMywxMV07Y2FzZSA3OnJldHVybiBPLnNlcnZlclR5cGU9''@;'; put 'put ''PT1jZS5TZXJ2ZXJUeXBlLlNhczkmJk8udXNlcm5hbWUmJk8ucGFzc3dvcmQ/WzQsdGhpcy5zYXM5Sm9iRXhlY3V0b3IuZXhlY3V0ZShNZSxoZSxPKV06WzMsOV07Y2FzZSA5OnJldHVybls0LHRoaXMud2ViSm9iRXhlY3V0b3IuZXhlY3V0ZShNZSxoZSxPLHosZWUsbmUpXTtjYXNlIDExOnJl''@;'; put 'put ''dHVyblszLDEzXTtjYXNlIDEyOnJldHVyblsyLFByb21pc2UucmVqZWN0KG5ldyBrZS5FcnJvclJlc3BvbnNlKHgubXNnKSldO2Nhc2UgMTM6cmV0dXJuWzJdfX0pfSl9LFRlLnByb3RvdHlwZS5kZXBsb3lTZXJ2aWNlUGFjaz1mdW5jdGlvbihNZSxoZSxPLHosZWUpe3JldHVybiB2b2lkIDA9''@;'; put 'put ''PT1lZSYmKGVlPSExKSxhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbmUseDtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKFYpe3N3aXRjaChWLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuaXNNZXRob2RTdXBwb3J0ZWQoImRlcGxveVNlcnZpY2VQYWNrIixbY2UuU2VydmVy''@;'; put 'put ''VHlwZS5TYXNWaXlhXSksbmU9bnVsbCxPfHxoZT8oT3x8KE89dGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwpLGhlfHwoaGU9dGhpcy5zYXNqc0NvbmZpZy5hcHBMb2MpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzVml5YT8obmU9bmV3IEsuU0FTVml5''@;'; put 'put ''YUFwaUNsaWVudChPLGhlLHRoaXMuc2FzanNDb25maWcuY29udGV4dE5hbWUsdGhpcy5yZXF1ZXN0Q2xpZW50KSkuZGVidWc9dGhpcy5zYXNqc0NvbmZpZy5kZWJ1Zzp0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9PT1jZS5TZXJ2ZXJUeXBlLlNhczkmJihuZT1uZXcgSi5TQVM5QXBpQ2xp''@;'; put 'put ''ZW50KE8sdGhpcy5qb2JzUGF0aCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRpb25zKSkpOih4PW51bGwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJUeXBlPT09Y2UuU2VydmVyVHlwZS5TYXNWaXlhP3g9dGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldENvbmZpZygpOnRoaXMuc2FzanND''@;'; put 'put ''b25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzOSYmKHg9dGhpcy5zYXM5QXBpQ2xpZW50LmdldENvbmZpZygpKSxPPXguc2VydmVyVXJsLGhlPXgucm9vdEZvbGRlck5hbWUpLE1lLm1lbWJlcnNbMF0ubWVtYmVycyYmTWUubWVtYmVyc1swXS5tZW1iZXJzLnNvcnQoZnVuY3Rp''@;'; put 'put ''b24oVCl7cmV0dXJuImZvbGRlciI9PT1ULnR5cGU/LTE6MX0pLFs0LHRoaXMuY3JlYXRlRm9sZGVyc0FuZFNlcnZpY2VzKGhlLE1lLm1lbWJlcnMseixuZSxlZSldO2Nhc2UgMTpyZXR1cm4gVi5zZW50KCksWzJdfX0pfSl9LFRlLnByb3RvdHlwZS5kZXBsb3lUb1NBU2pzPWZ1bmN0aW9uKE1l''@;'; put 'put ''LGhlLE8pe3ZhciB6O3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gaGV8fChoZT10aGlzLnNhc2pzQ29uZmlnLmFwcExvYyksWzQsbnVsbD09PSh6PXRoaXMuc2Fz''@;'; put 'put ''SlNBcGlDbGllbnQpfHx2b2lkIDA9PT16P3ZvaWQgMDp6LmRlcGxveShNZSxoZSxPKV07Y2FzZSAxOnJldHVyblsyLGVlLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmV4ZWN1dGVKb2JTQVNqcz1mdW5jdGlvbihNZSxoZSl7dmFyIE87cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiBZKHRoaXMsZnVuY3Rpb24oeil7c3dpdGNoKHoubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCxudWxsPT09KE89dGhpcy5zYXNKU0FwaUNsaWVudCl8fHZvaWQgMD09PU8/dm9pZCAwOk8uZXhlY3V0ZUpvYihNZSx0aGlzLnNhc2pzQ29uZmlnLmFwcExvYyxoZSldO2Nh''@;'; put 'put ''c2UgMTpyZXR1cm5bMix6LnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLnN0YXJ0Q29tcHV0ZUpvYj1mdW5jdGlvbihNZSxoZSxPLHosZWUsbmUseCxQKXt2YXIgVjtyZXR1cm4gdm9pZCAwPT09TyYmKE89e30pLHZvaWQgMD09PXgmJih4PSExKSxhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; put 'put ''Y3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKFQpe2lmKE89cmUocmUoe30sdGhpcy5zYXNqc0NvbmZpZyksTyksdGhpcy5pc01ldGhvZFN1cHBvcnRlZCgic3RhcnRDb21wdXRlSm9iIixbY2UuU2VydmVyVHlwZS5TYXNWaXlhXSksIU8uY29udGV4dE5hbWUpdGhyb3cgbmV3IEVycm9y''@;'; put 'put ''KCJDb250ZXh0IG5hbWUgaXMgdW5kZWZpbmVkLiBQbGVhc2Ugc2V0IGEgYGNvbnRleHROYW1lYCBpbiB5b3VyIFNBU2pzIG9yIG92ZXJyaWRlIGNvbmZpZy4iKTtyZXR1cm5bMixudWxsPT09KFY9dGhpcy5zYXNWaXlhQXBpQ2xpZW50KXx8dm9pZCAwPT09Vj92b2lkIDA6Vi5leGVjdXRlQ29t''@;'; put 'put ''cHV0ZUpvYihNZSxPLmNvbnRleHROYW1lLE8uZGVidWcsaGUseiwhIWVlLCExLG5lLHgsUCldfSl9KX0sVGUucHJvdG90eXBlLmZldGNoTG9nRmlsZUNvbnRlbnQ9ZnVuY3Rpb24oTWUsaGUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1''@;'; put 'put ''bmN0aW9uKE8pe3N3aXRjaChPLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldChNZSxoZSkudGhlbihmdW5jdGlvbih6KXtpZigheilyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IGtlLkVycm9yUmVzcG9uc2UoIkVycm9yIHdoaWxlIGZldGNoaW5nIGxvZy4g''@;'; put 'put ''UmVzcG9uc2Ugd2FzIG5vdCBwcm92aWRlZC4iKSk7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh6LnJlc3VsdCl9Y2F0Y2goZWUpe3JldHVybiBQcm9taXNlLnJlamVjdChuZXcga2UuRXJyb3JSZXNwb25zZSgiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgbG9nLiBUaGUgcmVzdWx0IGlzIG5vdCB2''@;'; put 'put ''YWxpZC4iLGVlKSl9fSldO2Nhc2UgMTpyZXR1cm5bMixPLnNlbnQoKV19fSl9KX0sVGUucHJvdG90eXBlLmdldFNhc1JlcXVlc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIFcoW10sdGhpcy5yZXF1ZXN0Q2xpZW50LmdldFJlcXVlc3RzKCksITApLnNvcnQoTi5jb21wYXJlVGltZXN0YW1wcyl9LFRl''@;'; put 'put ''LnByb3RvdHlwZS5jbGVhclNhc1JlcXVlc3RzPWZ1bmN0aW9uKCl7dGhpcy5yZXF1ZXN0Q2xpZW50LmNsZWFyUmVxdWVzdHMoKX0sVGUucHJvdG90eXBlLnNldHVwQ29uZmlndXJhdGlvbj1mdW5jdGlvbigpe2lmKHZvaWQgMD09PXRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsfHwiIj09PXRo''@;'; put 'put ''aXMuc2FzanNDb25maWcuc2VydmVyVXJsKWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgbG9jYXRpb24pe3ZhciBNZT0iIi5jb25jYXQobG9jYXRpb24ucHJvdG9jb2wsIi8vIikuY29uY2F0KGxvY2F0aW9uLmhvc3RuYW1lKTtsb2NhdGlvbi5wb3J0JiYoTWU9IiIuY29uY2F0KE1lLCI6IikuY29u''@;'; put 'put ''Y2F0KGxvY2F0aW9uLnBvcnQpKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybD1NZX1lbHNlIHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsPSIiOyIvIj09PXRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLnNsaWNlKC0xKSYmKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsPXRoaXMuc2Fz''@;'; put 'put ''anNDb25maWcuc2VydmVyVXJsLnNsaWNlKDAsLTEpKSx0aGlzLnJlcXVlc3RDbGllbnQ/dGhpcy5yZXF1ZXN0Q2xpZW50LnNldENvbmZpZyh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRpb25zKTp0aGlzLnJlcXVlc3RDbGllbnQ9bmV3''@;'; put 'put ''KHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzanM/dmUuU2FzanNSZXF1ZXN0Q2xpZW50OmRlLlJlcXVlc3RDbGllbnQpKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMsdGhpcy5zYXNqc0Nv''@;'; put 'put ''bmZpZy5yZXF1ZXN0SGlzdG9yeUxpbWl0KSx0aGlzLmpvYnNQYXRoPXRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzVml5YT90aGlzLnNhc2pzQ29uZmlnLnBhdGhTQVNWaXlhOnRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUu''@;'; put 'put ''U2FzOT90aGlzLnNhc2pzQ29uZmlnLnBhdGhTQVM5OnRoaXMuc2FzanNDb25maWcucGF0aFNBU0pTLHRoaXMuYXV0aE1hbmFnZXI9bmV3IG9lLkF1dGhNYW5hZ2VyKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSx0aGlzLnJlcXVlc3RDbGll''@;'; put 'put ''bnQsdGhpcy5yZXNlbmRXYWl0aW5nUmVxdWVzdHMpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzVml5YSYmKHRoaXMuc2FzVml5YUFwaUNsaWVudD90aGlzLnNhc1ZpeWFBcGlDbGllbnQuc2V0Q29uZmlnKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJs''@;'; put 'put ''LHRoaXMuc2FzanNDb25maWcuYXBwTG9jKTp0aGlzLnNhc1ZpeWFBcGlDbGllbnQ9bmV3IEsuU0FTVml5YUFwaUNsaWVudCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLnNhc2pzQ29uZmlnLmFwcExvYyx0aGlzLnNhc2pzQ29uZmlnLmNvbnRleHROYW1lLHRoaXMucmVxdWVzdENs''@;'; put 'put ''aWVudCksdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmRlYnVnPXRoaXMuc2FzanNDb25maWcuZGVidWcpLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZT09PWNlLlNlcnZlclR5cGUuU2FzOSYmKHRoaXMuc2FzOUFwaUNsaWVudD90aGlzLnNhczlBcGlDbGllbnQuc2V0Q29uZmlnKHRoaXMuc2Fz''@;'; put 'put ''anNDb25maWcuc2VydmVyVXJsKTp0aGlzLnNhczlBcGlDbGllbnQ9bmV3IEouU0FTOUFwaUNsaWVudCh0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclVybCx0aGlzLmpvYnNQYXRoLHRoaXMuc2FzanNDb25maWcuaHR0cHNBZ2VudE9wdGlvbnMpKSx0aGlzLnNhc2pzQ29uZmlnLnNlcnZlclR5cGU9''@;'; put 'put ''PT1jZS5TZXJ2ZXJUeXBlLlNhc2pzJiYodGhpcy5zYXNKU0FwaUNsaWVudHx8KHRoaXMuc2FzSlNBcGlDbGllbnQ9bmV3IHNlLlNBU2pzQXBpQ2xpZW50KHRoaXMucmVxdWVzdENsaWVudCkpKSx0aGlzLmZpbGVVcGxvYWRlcj1uZXcgQWUuRmlsZVVwbG9hZGVyKHRoaXMuc2FzanNDb25maWcu''@;'; put 'put ''c2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSx0aGlzLmpvYnNQYXRoLHRoaXMucmVxdWVzdENsaWVudCksdGhpcy53ZWJKb2JFeGVjdXRvcj1uZXcgQWUuV2ViSm9iRXhlY3V0b3IodGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJVcmwsdGhpcy5zYXNqc0NvbmZpZy5zZXJ2ZXJU''@;'; put 'put ''eXBlLHRoaXMuam9ic1BhdGgsdGhpcy5yZXF1ZXN0Q2xpZW50LHRoaXMuc2FzVml5YUFwaUNsaWVudCksdGhpcy5zYXNqc0pvYkV4ZWN1dG9yPW5ldyBBZS5TYXNqc0pvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuam9ic1BhdGgsdGhpcy5yZXF1ZXN0Q2xpZW50''@;'; put 'put ''KSx0aGlzLnNhczlKb2JFeGVjdXRvcj1uZXcgQWUuU2FzOUpvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSx0aGlzLmpvYnNQYXRoLHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNhc2pzQ29uZmlnLmh0dHBzQWdlbnRPcHRp''@;'; put 'put ''b25zKSx0aGlzLmNvbXB1dGVKb2JFeGVjdXRvcj1uZXcgQWUuQ29tcHV0ZUpvYkV4ZWN1dG9yKHRoaXMuc2FzanNDb25maWcuc2VydmVyVXJsLHRoaXMuc2FzVml5YUFwaUNsaWVudCksdGhpcy5qZXNKb2JFeGVjdXRvcj1uZXcgQWUuSmVzSm9iRXhlY3V0b3IodGhpcy5zYXNqc0NvbmZpZy5z''@;'; put 'put ''ZXJ2ZXJVcmwsdGhpcy5zYXNWaXlhQXBpQ2xpZW50KX0sVGUucHJvdG90eXBlLmNyZWF0ZUZvbGRlcnNBbmRTZXJ2aWNlcz1mdW5jdGlvbihNZSxoZSxPLHosZWUpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbmU9dGhpcztyZXR1cm4gWSh0aGlzLGZ1bmN0''@;'; put 'put ''aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsKDAsTi5hc3luY0ZvckVhY2gpKGhlLGZ1bmN0aW9uKFApe3JldHVybiBhZShuZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihWKXtzd2l0Y2goVi5sYWJlbCl7Y2FzZSAwOnN3aXRj''@;'; put 'put ''aChQLnR5cGUpe2Nhc2UiZm9sZGVyIjpyZXR1cm5bMywxXTtjYXNlImZpbGUiOnJldHVyblszLDNdO2Nhc2Uic2VydmljZSI6cmV0dXJuWzMsNV19cmV0dXJuWzMsN107Y2FzZSAxOnJldHVybls0LHRoaXMuY3JlYXRlRm9sZGVyKFAubmFtZSxNZSx2b2lkIDAsTyx6LGVlKV07Y2FzZSAyOnJl''@;'; put 'put ''dHVybiBWLnNlbnQoKSxbMyw4XTtjYXNlIDM6cmV0dXJuWzQsdGhpcy5jcmVhdGVGaWxlKFAubmFtZSxQLmNvZGUsTWUsdm9pZCAwLE8seildO2Nhc2UgNDpyZXR1cm4gVi5zZW50KCksWzMsOF07Y2FzZSA1OnJldHVybls0LHRoaXMuY3JlYXRlSm9iRGVmaW5pdGlvbihQLm5hbWUsUC5jb2Rl''@;'; put 'put ''LE1lLHZvaWQgMCxPLHopXTtjYXNlIDY6cmV0dXJuIFYuc2VudCgpLFszLDhdO2Nhc2UgNzp0aHJvdyBuZXcgRXJyb3IoIlVuaWRlbnRpZmllZCBtZW1iZXIgJyIuY29uY2F0KFAubmFtZSwiJyBwcm92aWRlZC4iKSk7Y2FzZSA4OnJldHVybiJmb2xkZXIiPT09UC50eXBlJiZQLm1lbWJlcnMm''@;'; put 'put ''JlAubWVtYmVycy5sZW5ndGg/WzQsdGhpcy5jcmVhdGVGb2xkZXJzQW5kU2VydmljZXMoIiIuY29uY2F0KE1lLCIvIikuY29uY2F0KFAubmFtZSksUC5tZW1iZXJzLE8seixlZSldOlszLDEwXTtjYXNlIDk6Vi5zZW50KCksVi5sYWJlbD0xMDtjYXNlIDEwOnJldHVyblsyXX19KX0pfSldO2Nh''@;'; put 'put ''c2UgMTpyZXR1cm4geC5zZW50KCksWzJdfX0pfSl9LFRlLnByb3RvdHlwZS5pc01ldGhvZFN1cHBvcnRlZD1mdW5jdGlvbihNZSxoZSl7aWYoIXRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZXx8IWhlLmluY2x1ZGVzKHRoaXMuc2FzanNDb25maWcuc2VydmVyVHlwZSkpdGhyb3cgbmV3IEVy''@;'; put 'put ''cm9yKCJNZXRob2QgJyIuY29uY2F0KE1lLCInIGlzIG9ubHkgc3VwcG9ydGVkIG9uICIpLmNvbmNhdChoZS5qb2luKCIsICIpLCIgc2VydmVycy4iKSl9LFRlfSgpO1EuZGVmYXVsdD1JZX0sMzQ2NzpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fYXNz''@;'; put 'put ''aWdufHxmdW5jdGlvbigpe3JldHVybiByZT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihzZSl7Zm9yKHZhciBvZSxjZT0xLGRlPWFyZ3VtZW50cy5sZW5ndGg7Y2U8ZGU7Y2UrKylmb3IodmFyIHZlIGluIG9lPWFyZ3VtZW50c1tjZV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5j''@;'; put 'put ''YWxsKG9lLHZlKSYmKHNlW3ZlXT1vZVt2ZV0pO3JldHVybiBzZX0scmUuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rpb24odmUsQWUpe2Z1bmN0aW9u''@;'; put 'put ''IGtlKFRlKXt0cnl7SWUoZGUubmV4dChUZSkpfWNhdGNoKE1lKXtBZShNZSl9fWZ1bmN0aW9uIFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUpKX1jYXRjaChNZSl7QWUoTWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIE1lO1RlLmRvbmU/dmUoVGUudmFsdWUpOihNZT1UZS52YWx1ZSxNZSBpbnN0''@;'; put 'put ''YW5jZW9mIGNlP01lOm5ldyBjZShmdW5jdGlvbihoZSl7aGUoTWUpfSkpLnRoZW4oa2UsU2UpfUllKChkZT1kZS5hcHBseShzZSxvZXx8W10pKS5uZXh0KCkpfSl9LFk9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZSxkZSx2ZSxBZSxrZT17bGFiZWw6MCxz''@;'; put 'put ''ZW50OmZ1bmN0aW9uKCl7aWYoMSZ2ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm4gdmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gQWU9e25leHQ6U2UoMCksdGhyb3c6U2UoMSkscmV0dXJuOlNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQWVbU3ltYm9sLml0ZXJhdG9yXT1m''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiB0aGlzfSksQWU7ZnVuY3Rpb24gU2UoSWUpe3JldHVybiBmdW5jdGlvbihUZSl7cmV0dXJuIGZ1bmN0aW9uKE1lKXtpZihjZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtrZTspdHJ5e2lmKGNlPTEs''@;'; put 'put ''ZGUmJih2ZT0yJk1lWzBdP2RlLnJldHVybjpNZVswXT9kZS50aHJvd3x8KCh2ZT1kZS5yZXR1cm4pJiZ2ZS5jYWxsKGRlKSwwKTpkZS5uZXh0KSYmISh2ZT12ZS5jYWxsKGRlLE1lWzFdKSkuZG9uZSlyZXR1cm4gdmU7c3dpdGNoKGRlPTAsdmUmJihNZT1bMiZNZVswXSx2ZS52YWx1ZV0pLE1l''@;'; put 'put ''WzBdKXtjYXNlIDA6Y2FzZSAxOnZlPU1lO2JyZWFrO2Nhc2UgNDpyZXR1cm4ga2UubGFiZWwrKyx7dmFsdWU6TWVbMV0sZG9uZTohMX07Y2FzZSA1OmtlLmxhYmVsKyssZGU9TWVbMV0sTWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpNZT1rZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51''@;'; put 'put ''ZTtkZWZhdWx0OmlmKCEoKHZlPSh2ZT1rZS50cnlzKS5sZW5ndGg+MCYmdmVbdmUubGVuZ3RoLTFdKXx8NiE9PU1lWzBdJiYyIT09TWVbMF0pKXtrZT0wO2NvbnRpbnVlfWlmKDM9PT1NZVswXSYmKCF2ZXx8TWVbMV0+dmVbMF0mJk1lWzFdPHZlWzNdKSl7a2UubGFiZWw9TWVbMV07YnJlYWt9''@;'; put 'put ''aWYoNj09PU1lWzBdJiZrZS5sYWJlbDx2ZVsxXSl7a2UubGFiZWw9dmVbMV0sdmU9TWU7YnJlYWt9aWYodmUmJmtlLmxhYmVsPHZlWzJdKXtrZS5sYWJlbD12ZVsyXSxrZS5vcHMucHVzaChNZSk7YnJlYWt9dmVbMl0mJmtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlfU1lPW9l''@;'; put 'put ''LmNhbGwoc2Usa2UpfWNhdGNoKGhlKXtNZT1bNixoZV0sZGU9MH1maW5hbGx5e2NlPXZlPTB9aWYoNSZNZVswXSl0aHJvdyBNZVsxXTtyZXR1cm57dmFsdWU6TWVbMF0/TWVbMV06dm9pZCAwLGRvbmU6ITB9fShbSWUsVGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVs''@;'; put 'put ''ZSIse3ZhbHVlOiEwfSksUS5TQVNqc0FwaUNsaWVudD12b2lkIDA7dmFyIFc9aigzOTAwKSxOPWooNTcpLHRlPWooMjQ5KSxLPWooNzA0KSxKPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gc2Uob2Upe3RoaXMucmVxdWVzdENsaWVudD1vZX1yZXR1cm4gc2UucHJvdG90eXBlLmRlcGxveT1mdW5jdGlv''@;'; put 'put ''bihvZSxjZSxkZSl7cmV0dXJuIGFlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB2ZSxBZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKGtlKXtzd2l0Y2goa2UubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdmU9KGRlfHx7fSkuYWNjZXNzX3Rva2VuLGRlP1s0LCgwLEsuZ2V0VG9rZW5z''@;'; put 'put ''KSh0aGlzLnJlcXVlc3RDbGllbnQsZGUsVy5TZXJ2ZXJUeXBlLlNhc2pzKV06WzMsMl07Y2FzZSAxOnZlPWtlLnNlbnQoKS5hY2Nlc3NfdG9rZW4sa2UubGFiZWw9MjtjYXNlIDI6cmV0dXJuIG9lLmFwcExvYz1vZS5hcHBMb2N8fGNlLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCJTQVNq''@;'; put 'put ''c0FwaS9kcml2ZS9kZXBsb3kiLG9lLHZlLHZvaWQgMCx7fSx7bWF4Q29udGVudExlbmd0aDoxLzAsbWF4Qm9keUxlbmd0aDoxLzB9KV07Y2FzZSAzOnJldHVybiBBZT1rZS5zZW50KCkucmVzdWx0LFsyLFByb21pc2UucmVzb2x2ZShBZSldfX0pfSl9LHNlLnByb3RvdHlwZS5leGVjdXRlSm9i''@;'; put 'put ''PWZ1bmN0aW9uKG9lLGNlLGRlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHZlLEFlLGtlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24oU2Upe3N3aXRjaChTZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB2ZT1kZT9kZS5hY2Nlc3NfdG9rZW46dm9pZCAwLEFlPW9l''@;'; put 'put ''Ll9wcm9ncmFtLnN0YXJ0c1dpdGgoIi8iKT9vZS5fcHJvZ3JhbToiIi5jb25jYXQoY2UsIi8iKS5jb25jYXQob2UuX3Byb2dyYW0pLFs0LHRoaXMucmVxdWVzdENsaWVudC5wb3N0KCJTQVNqc0FwaS9zdHAvZXhlY3V0ZSIscmUocmUoe19kZWJ1ZzoxMzF9LG9lKSx7X3Byb2dyYW06QWV9KSx2''@;'; put 'put ''ZSldO2Nhc2UgMTpyZXR1cm5bMix7cmVzdWx0OihrZT1TZS5zZW50KCkpLnJlc3VsdCxsb2c6a2UubG9nfV19fSl9KX0sc2UucHJvdG90eXBlLmV4ZWN1dGVTY3JpcHQ9ZnVuY3Rpb24ob2UsY2UsZGUpe3JldHVybiB2b2lkIDA9PT1jZSYmKGNlPSJzYXMiKSxhZSh0aGlzLHZvaWQgMCx2b2lk''@;'; put 'put ''IDAsZnVuY3Rpb24oKXt2YXIgdmUsQWU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihrZSl7c3dpdGNoKGtlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHZlPShkZXx8e30pLmFjY2Vzc190b2tlbixkZT9bNCwoMCxLLmdldFRva2VucykodGhpcy5yZXF1ZXN0Q2xpZW50LGRlLFcuU2VydmVyVHlwZS5T''@;'; put 'put ''YXNqcyldOlszLDJdO2Nhc2UgMTp2ZT1rZS5zZW50KCkuYWNjZXNzX3Rva2VuLGtlLmxhYmVsPTI7Y2FzZSAyOnJldHVybiBBZT0iIixbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCgiU0FTanNBcGkvY29kZS9leGVjdXRlIix7Y29kZTpvZSxydW5UaW1lOmNlfSx2ZSkudGhlbihmdW5jdGlv''@;'; put 'put ''bihTZSl7U2UubG9nJiYoQWU9U2UubG9nKX0pXTtjYXNlIDM6cmV0dXJuIGtlLnNlbnQoKSxbMixBZV19fSl9KX0sc2UucHJvdG90eXBlLmdldEFjY2Vzc1Rva2VuPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFkodGhpcyxm''@;'; put 'put ''dW5jdGlvbihkZSl7cmV0dXJuWzIsKDAsTi5nZXRBY2Nlc3NUb2tlbkZvclNhc2pzKSh0aGlzLnJlcXVlc3RDbGllbnQsb2UsY2UpXX0pfSl9LHNlLnByb3RvdHlwZS5yZWZyZXNoVG9rZW5zPWZ1bmN0aW9uKG9lKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIFkodGhpcyxmdW5jdGlvbihjZSl7cmV0dXJuWzIsKDAsdGUucmVmcmVzaFRva2Vuc0ZvclNhc2pzKSh0aGlzLnJlcXVlc3RDbGllbnQsb2UpXX0pfSl9LHNlfSgpO1EuU0FTanNBcGlDbGllbnQ9Sn0sNjkwMzpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT1qKDQxNTUp''@;'; put 'put ''LGFlPWooNTEwOCksWT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rpb24odmUsQWUpe2Z1bmN0aW9uIGtlKFRlKXt0cnl7SWUoZGUubmV4dChUZSkpfWNhdGNoKE1lKXtBZShNZSl9fWZ1bmN0aW9u''@;'; put 'put ''IFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUpKX1jYXRjaChNZSl7QWUoTWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIE1lO1RlLmRvbmU/dmUoVGUudmFsdWUpOihNZT1UZS52YWx1ZSxNZSBpbnN0YW5jZW9mIGNlP01lOm5ldyBjZShmdW5jdGlvbihoZSl7aGUoTWUpfSkpLnRoZW4oa2UsU2Up''@;'; put 'put ''fUllKChkZT1kZS5hcHBseShzZSxvZXx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZSxkZSx2ZSxBZSxrZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZ2ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm4gdmVbMV19LHRy''@;'; put 'put ''eXM6W10sb3BzOltdfTtyZXR1cm4gQWU9e25leHQ6U2UoMCksdGhyb3c6U2UoMSkscmV0dXJuOlNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksQWU7ZnVuY3Rpb24gU2UoSWUpe3JldHVybiBmdW5j''@;'; put 'put ''dGlvbihUZSl7cmV0dXJuIGZ1bmN0aW9uKE1lKXtpZihjZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtrZTspdHJ5e2lmKGNlPTEsZGUmJih2ZT0yJk1lWzBdP2RlLnJldHVybjpNZVswXT9kZS50aHJvd3x8KCh2ZT1kZS5yZXR1''@;'; put 'put ''cm4pJiZ2ZS5jYWxsKGRlKSwwKTpkZS5uZXh0KSYmISh2ZT12ZS5jYWxsKGRlLE1lWzFdKSkuZG9uZSlyZXR1cm4gdmU7c3dpdGNoKGRlPTAsdmUmJihNZT1bMiZNZVswXSx2ZS52YWx1ZV0pLE1lWzBdKXtjYXNlIDA6Y2FzZSAxOnZlPU1lO2JyZWFrO2Nhc2UgNDpyZXR1cm4ga2UubGFiZWwr''@;'; put 'put ''Kyx7dmFsdWU6TWVbMV0sZG9uZTohMX07Y2FzZSA1OmtlLmxhYmVsKyssZGU9TWVbMV0sTWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpNZT1rZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHZlPSh2ZT1rZS50cnlzKS5sZW5ndGg+MCYmdmVbdmUubGVuZ3Ro''@;'; put 'put ''LTFdKXx8NiE9PU1lWzBdJiYyIT09TWVbMF0pKXtrZT0wO2NvbnRpbnVlfWlmKDM9PT1NZVswXSYmKCF2ZXx8TWVbMV0+dmVbMF0mJk1lWzFdPHZlWzNdKSl7a2UubGFiZWw9TWVbMV07YnJlYWt9aWYoNj09PU1lWzBdJiZrZS5sYWJlbDx2ZVsxXSl7a2UubGFiZWw9dmVbMV0sdmU9TWU7YnJl''@;'; put 'put ''YWt9aWYodmUmJmtlLmxhYmVsPHZlWzJdKXtrZS5sYWJlbD12ZVsyXSxrZS5vcHMucHVzaChNZSk7YnJlYWt9dmVbMl0mJmtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlfU1lPW9lLmNhbGwoc2Usa2UpfWNhdGNoKGhlKXtNZT1bNixoZV0sZGU9MH1maW5hbGx5e2NlPXZlPTB9''@;'; put 'put ''aWYoNSZNZVswXSl0aHJvdyBNZVsxXTtyZXR1cm57dmFsdWU6TWVbMF0/TWVbMV06dm9pZCAwLGRvbmU6ITB9fShbSWUsVGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TZXNzaW9uTWFuYWdlcj12b2lkIDA7dmFyIE49aigxMzk1KSx0''@;'; put 'put ''ZT1qKDU5MjgpLEs9aig5Nzc4KSxKPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gc2Uob2UsY2UsZGUpe3RoaXMuc2VydmVyVXJsPW9lLHRoaXMuY29udGV4dE5hbWU9Y2UsdGhpcy5yZXF1ZXN0Q2xpZW50PWRlLHRoaXMubG9nZ2VkRXJyb3JzPVtdLHRoaXMuc2Vzc2lvbnM9W10sdGhpcy5jdXJyZW50''@;'; put 'put ''Q29udGV4dD1udWxsLHRoaXMuX2RlYnVnPSExLHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZT17cHJpbnRlZDohMSxzdGF0ZToiIn0sb2UmJigwLHRlLmlzVXJsKShvZSl9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzZS5wcm90b3R5cGUsImRlYnVnIix7Z2V0OmZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuX2RlYnVnfSxzZXQ6ZnVuY3Rpb24ob2Upe3RoaXMuX2RlYnVnPW9lfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLHNlLnByb3RvdHlwZS5nZXRTZXNzaW9uPWZ1bmN0aW9uKG9lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2Us''@;'; put 'put ''ZGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jcmVhdGVTZXNzaW9ucyhvZSldO2Nhc2UgMTpyZXR1cm4gdmUuc2VudCgpLFs0LHRoaXMuY3JlYXRlQW5kV2FpdEZvclNlc3Npb24ob2UpXTtjYXNlIDI6cmV0dXJuIHZl''@;'; put 'put ''LnNlbnQoKSxjZT10aGlzLnNlc3Npb25zLnBvcCgpLGRlPSgobmV3IERhdGUpLmdldFRpbWUoKS1uZXcgRGF0ZShjZS5jcmVhdGlvblRpbWVTdGFtcCkuZ2V0VGltZSgpKS8xZTMsIWNlLmF0dHJpYnV0ZXN8fGRlPj1jZS5hdHRyaWJ1dGVzLnNlc3Npb25JbmFjdGl2ZVRpbWVvdXQ/WzQsdGhp''@;'; put 'put ''cy5jcmVhdGVTZXNzaW9ucyhvZSldOlszLDRdO2Nhc2UgMzpyZXR1cm4gdmUuc2VudCgpLFsyLHRoaXMuc2Vzc2lvbnMucG9wKCldO2Nhc2UgNDpyZXR1cm5bMixjZV19fSl9KX0sc2UucHJvdG90eXBlLmNsZWFyU2Vzc2lvbj1mdW5jdGlvbihvZSxjZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAs''@;'; put 'put ''dm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGRlPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmRlbGV0ZSgiL2NvbXB1dGUvc2Vzc2lvbnMvIi5jb25jYXQob2UpLGNlKS50aGVuKGZ1bmN0aW9u''@;'; put 'put ''KCl7ZGUuc2Vzc2lvbnM9ZGUuc2Vzc2lvbnMuZmlsdGVyKGZ1bmN0aW9uKEFlKXtyZXR1cm4gQWUuaWQhPT1vZX0pfSkuY2F0Y2goZnVuY3Rpb24oQWUpe3Rocm93KDAsSy5wcmVmaXhNZXNzYWdlKShBZSwiRXJyb3Igd2hpbGUgZGVsZXRpbmcgc2Vzc2lvbi4gIil9KV07Y2FzZSAxOnJldHVy''@;'; put 'put ''blsyLHZlLnNlbnQoKV19fSl9KX0sc2UucHJvdG90eXBlLmNyZWF0ZVNlc3Npb25zPWZ1bmN0aW9uKG9lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2U9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGRlKXtzd2l0Y2goZGUubGFiZWwpe2Nhc2UgMDpy''@;'; put 'put ''ZXR1cm4gdGhpcy5zZXNzaW9ucy5sZW5ndGg/WzMsNF06dGhpcy5jdXJyZW50Q29udGV4dD9bMywyXTpbNCx0aGlzLnNldEN1cnJlbnRDb250ZXh0KG9lKS5jYXRjaChmdW5jdGlvbih2ZSl7dGhyb3cgdmV9KV07Y2FzZSAxOmRlLnNlbnQoKSxkZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bNCwo''@;'; put 'put ''MCx0ZS5hc3luY0ZvckVhY2gpKG5ldyBBcnJheSgxKSxmdW5jdGlvbigpe3JldHVybiBZKGNlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihBZSl7c3dpdGNoKEFlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5jcmVhdGVBbmRXYWl0''@;'; put 'put ''Rm9yU2Vzc2lvbihvZSkuY2F0Y2goZnVuY3Rpb24oa2Upe3Rocm93IGtlfSldO2Nhc2UgMTpyZXR1cm4gdmU9QWUuc2VudCgpLHRoaXMuc2Vzc2lvbnMucHVzaCh2ZSksWzJdfX0pfSl9KS5jYXRjaChmdW5jdGlvbih2ZSl7dGhyb3cgdmV9KV07Y2FzZSAzOmRlLnNlbnQoKSxkZS5sYWJlbD00''@;'; put 'put ''O2Nhc2UgNDpyZXR1cm5bMl19fSl9KX0sc2UucHJvdG90eXBlLmNyZWF0ZUFuZFdhaXRGb3JTZXNzaW9uPWZ1bmN0aW9uKG9lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsZGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihBZSl7c3dpdGNoKEFlLmxhYmVs''@;'; put 'put ''KXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QoIiIuY29uY2F0KHRoaXMuc2VydmVyVXJsLCIvY29tcHV0ZS9jb250ZXh0cy8iKS5jb25jYXQodGhpcy5jdXJyZW50Q29udGV4dC5pZCwiL3Nlc3Npb25zIikse30sb2UpLmNhdGNoKGZ1bmN0aW9uKGtlKXt0aHJvdyBr''@;'; put 'put ''ZX0pXTtjYXNlIDE6cmV0dXJuIGNlPUFlLnNlbnQoKSxbNCx0aGlzLndhaXRGb3JTZXNzaW9uKGRlPWNlLnJlc3VsdCxjZS5ldGFnLG9lKV07Y2FzZSAyOnJldHVybiBBZS5zZW50KCksdGhpcy5zZXNzaW9ucy5wdXNoKGRlKSxbMixkZV19fSl9KX0sc2UucHJvdG90eXBlLnNldEN1cnJlbnRD''@;'; put 'put ''b250ZXh0PWZ1bmN0aW9uKG9lKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgY2UsdmUsQWU9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKGtlKXtzd2l0Y2goa2UubGFiZWwpe2Nhc2UgMDpyZXR1cm4gdGhpcy5jdXJyZW50Q29udGV4dD9bMywyXTpbNCx0''@;'; put 'put ''aGlzLnJlcXVlc3RDbGllbnQuZ2V0KCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiL2NvbXB1dGUvY29udGV4dHM/bGltaXQ9MTAwMDAiKSxvZSkuY2F0Y2goZnVuY3Rpb24oU2Upe3Rocm93IFNlfSldO2Nhc2UgMTppZihjZT1rZS5zZW50KCkucmVzdWx0LCEodmU9KGNlJiZjZS5pdGVtcyYm''@;'; put 'put ''Y2UuaXRlbXMubGVuZ3RoP2NlLml0ZW1zOltdKS5maW5kKGZ1bmN0aW9uKFNlKXtyZXR1cm4gU2UubmFtZT09PUFlLmNvbnRleHROYW1lfSkpKXRocm93IG5ldyBFcnJvcigiVGhlIGNvbnRleHQgJyIuY29uY2F0KHRoaXMuY29udGV4dE5hbWUsIicgd2FzIG5vdCBmb3VuZCBvbiB0aGUgc2Vy''@;'; put 'put ''dmVyICIpLmNvbmNhdCh0aGlzLnNlcnZlclVybCwiLiIpKTt0aGlzLmN1cnJlbnRDb250ZXh0PXZlLFByb21pc2UucmVzb2x2ZSgpLGtlLmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxzZS5wcm90b3R5cGUuZ2V0SGVhZGVycz1mdW5jdGlvbihvZSl7dmFyIGNlPXsiQ29udGVudC1U''@;'; put 'put ''eXBlIjoiYXBwbGljYXRpb24vanNvbiJ9O3JldHVybiBvZSYmKGNlLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChvZSkpLGNlfSxzZS5wcm90b3R5cGUud2FpdEZvclNlc3Npb249ZnVuY3Rpb24ob2UsY2UsZGUpe3ZhciB2ZTtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; put 'put ''Y3Rpb24oKXt2YXIgQWUsa2UsU2UsSWUsTWUsaGU7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihPKXtzd2l0Y2goTy5sYWJlbCl7Y2FzZSAwOnJldHVybiBBZT1yZS5sb2dnZXJ8fGFlLGtlPW9lLnN0YXRlLFNlPW9lLmxpbmtzLmZpbmQoZnVuY3Rpb24oeil7cmV0dXJuInN0YXRlIj09PXoucmVs''@;'; put 'put ''fSksInBlbmRpbmciIT09a2UmJiJydW5uaW5nIiE9PWtlJiYiIiE9PWtlP1szLDZdOlNlPyh0aGlzLmRlYnVnJiYhdGhpcy5wcmludGVkU2Vzc2lvblN0YXRlLnByaW50ZWQmJihBZS5pbmZvKCJQb2xsaW5nOiAiLmNvbmNhdCh0aGlzLnNlcnZlclVybCtTZS5ocmVmKSksdGhpcy5wcmludGVk''@;'; put 'put ''U2Vzc2lvblN0YXRlLnByaW50ZWQ9ITApLFs0LHRoaXMuZ2V0U2Vzc2lvblN0YXRlKCIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCkuY29uY2F0KFNlLmhyZWYsIj93YWl0PTMwIiksY2UsZGUpLmNhdGNoKGZ1bmN0aW9uKHope3Rocm93KDAsSy5wcmVmaXhNZXNzYWdlKSh6LCJFcnJvciB3aGls''@;'; put 'put ''ZSBnZXR0aW5nIHNlc3Npb24gc3RhdGUuIil9KV0pOlszLDRdO2Nhc2UgMTpyZXR1cm4gSWU9Ty5zZW50KCksTWU9SWUucmVzcG9uc2VTdGF0dXMsa2U9SWUucmVzdWx0LnRyaW0oKSx0aGlzLmRlYnVnJiZ0aGlzLnByaW50ZWRTZXNzaW9uU3RhdGUuc3RhdGUhPT1rZSYmKEFlLmluZm8oIkN1''@;'; put 'put ''cnJlbnQgc2Vzc2lvbiBzdGF0ZSBpcyAnIi5jb25jYXQoa2UsIiciKSksdGhpcy5wcmludGVkU2Vzc2lvblN0YXRlLnN0YXRlPWtlLHRoaXMucHJpbnRlZFNlc3Npb25TdGF0ZS5wcmludGVkPSExKSxrZT9bMywzXTooaGU9bmV3IE4uTm9TZXNzaW9uU3RhdGVFcnJvcihNZSx0aGlzLnNlcnZl''@;'; put 'put ''clVybCtTZS5ocmVmLG51bGw9PT0odmU9b2UubGlua3MuZmluZChmdW5jdGlvbih6KXtyZXR1cm4ibG9nIj09PXoucmVsfSkpfHx2b2lkIDA9PT12ZT92b2lkIDA6dmUuaHJlZiksdGhpcy5sb2dnZWRFcnJvcnMuZmluZChmdW5jdGlvbih6KXtyZXR1cm4gei5zZXJ2ZXJSZXNwb25zZVN0YXR1''@;'; put 'put ''cz09PWhlLnNlcnZlclJlc3BvbnNlU3RhdHVzfSl8fCh0aGlzLmxvZ2dlZEVycm9ycy5wdXNoKGhlKSxBZS5pbmZvKGhlLm1lc3NhZ2UpKSxbNCx0aGlzLndhaXRGb3JTZXNzaW9uKG9lLGNlLGRlKV0pO2Nhc2UgMjpyZXR1cm5bMixPLnNlbnQoKV07Y2FzZSAzOmNhc2UgNjpyZXR1cm4gdGhp''@;'; put 'put ''cy5sb2dnZWRFcnJvcnM9W10sWzIsa2VdO2Nhc2UgNDp0aHJvdyJFcnJvciB3aGlsZSBnZXR0aW5nIHNlc3Npb24gc3RhdGUgbGluay4iO2Nhc2UgNTpyZXR1cm5bMyw3XTtjYXNlIDc6cmV0dXJuWzJdfX0pfSl9LHNlLnByb3RvdHlwZS5nZXRTZXNzaW9uU3RhdGU9ZnVuY3Rpb24ob2UsY2Us''@;'; put 'put ''ZGUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMucmVxdWVzdENsaWVudC5nZXQob2UsZGUsInRleHQvcGxhaW4iLHsiSWYtTm9uZS1NYXRjaCI6Y2V9''@;'; put 'put ''KS50aGVuKGZ1bmN0aW9uKEFlKXtyZXR1cm57cmVzdWx0OkFlLnJlc3VsdCxyZXNwb25zZVN0YXR1czpBZS5zdGF0dXN9fSkuY2F0Y2goZnVuY3Rpb24oQWUpe3Rocm93IEFlfSldO2Nhc2UgMTpyZXR1cm5bMix2ZS5zZW50KCldfX0pfSl9LHNlLnByb3RvdHlwZS5nZXRWYXJpYWJsZT1mdW5j''@;'; put 'put ''dGlvbihvZSxjZSxkZSl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIFcodGhpcyxmdW5jdGlvbih2ZSl7c3dpdGNoKHZlLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9j''@;'; put 'put ''b21wdXRlL3Nlc3Npb25zLyIpLmNvbmNhdChvZSwiL3ZhcmlhYmxlcy8iKS5jb25jYXQoY2UpLGRlKS5jYXRjaChmdW5jdGlvbihBZSl7dGhyb3coMCxLLnByZWZpeE1lc3NhZ2UpKEFlLCJFcnJvciB3aGlsZSBmZXRjaGluZyBzZXNzaW9uIHZhcmlhYmxlICciLmNvbmNhdChjZSwiJy4iKSl9''@;'; put 'put ''KV07Y2FzZSAxOnJldHVyblsyLHZlLnNlbnQoKV19fSl9KX0sc2V9KCk7US5TZXNzaW9uTWFuYWdlcj1KfSw1NDAxOmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSksYWU9aig1MTA4KSxZPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9''@;'; put 'put ''T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oQWUpe2Zvcih2YXIga2UsU2U9MSxJZT1hcmd1bWVudHMubGVuZ3RoO1NlPEllO1NlKyspZm9yKHZhciBUZSBpbiBrZT1hcmd1bWVudHNbU2VdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChrZSxUZSkmJihBZVtUZV09a2VbVGVd''@;'; put 'put ''KTtyZXR1cm4gQWV9LFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihBZSxrZSxTZSxJZSl7cmV0dXJuIG5ldyhTZXx8KFNlPVByb21pc2UpKShmdW5jdGlvbihUZSxNZSl7ZnVuY3Rpb24gaGUoZWUpe3RyeXt6KEllLm5leHQoZWUpKX1j''@;'; put 'put ''YXRjaChuZSl7TWUobmUpfX1mdW5jdGlvbiBPKGVlKXt0cnl7eihJZS50aHJvdyhlZSkpfWNhdGNoKG5lKXtNZShuZSl9fWZ1bmN0aW9uIHooZWUpe3ZhciBuZTtlZS5kb25lP1RlKGVlLnZhbHVlKToobmU9ZWUudmFsdWUsbmUgaW5zdGFuY2VvZiBTZT9uZTpuZXcgU2UoZnVuY3Rpb24oeCl7''@;'; put 'put ''eChuZSl9KSkudGhlbihoZSxPKX16KChJZT1JZS5hcHBseShBZSxrZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oQWUsa2Upe3ZhciBTZSxJZSxUZSxNZSxoZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZUZVswXSl0aHJvdyBUZVsx''@;'; put 'put ''XTtyZXR1cm4gVGVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gTWU9e25leHQ6TygwKSx0aHJvdzpPKDEpLHJldHVybjpPKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoTWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksTWU7ZnVuY3Rpb24gTyh6''@;'; put 'put ''KXtyZXR1cm4gZnVuY3Rpb24oZWUpe3JldHVybiBmdW5jdGlvbihuZSl7aWYoU2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7aGU7KXRyeXtpZihTZT0xLEllJiYoVGU9MiZuZVswXT9JZS5yZXR1cm46bmVbMF0/SWUudGhyb3d8''@;'; put 'put ''fCgoVGU9SWUucmV0dXJuKSYmVGUuY2FsbChJZSksMCk6SWUubmV4dCkmJiEoVGU9VGUuY2FsbChJZSxuZVsxXSkpLmRvbmUpcmV0dXJuIFRlO3N3aXRjaChJZT0wLFRlJiYobmU9WzImbmVbMF0sVGUudmFsdWVdKSxuZVswXSl7Y2FzZSAwOmNhc2UgMTpUZT1uZTticmVhaztjYXNlIDQ6cmV0''@;'; put 'put ''dXJuIGhlLmxhYmVsKysse3ZhbHVlOm5lWzFdLGRvbmU6ITF9O2Nhc2UgNTpoZS5sYWJlbCsrLEllPW5lWzFdLG5lPVswXTtjb250aW51ZTtjYXNlIDc6bmU9aGUub3BzLnBvcCgpLGhlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChUZT0oVGU9aGUudHJ5cykubGVuZ3RoPjAm''@;'; put 'put ''JlRlW1RlLmxlbmd0aC0xXSl8fDYhPT1uZVswXSYmMiE9PW5lWzBdKSl7aGU9MDtjb250aW51ZX1pZigzPT09bmVbMF0mJighVGV8fG5lWzFdPlRlWzBdJiZuZVsxXTxUZVszXSkpe2hlLmxhYmVsPW5lWzFdO2JyZWFrfWlmKDY9PT1uZVswXSYmaGUubGFiZWw8VGVbMV0pe2hlLmxhYmVsPVRl''@;'; put 'put ''WzFdLFRlPW5lO2JyZWFrfWlmKFRlJiZoZS5sYWJlbDxUZVsyXSl7aGUubGFiZWw9VGVbMl0saGUub3BzLnB1c2gobmUpO2JyZWFrfVRlWzJdJiZoZS5vcHMucG9wKCksaGUudHJ5cy5wb3AoKTtjb250aW51ZX1uZT1rZS5jYWxsKEFlLGhlKX1jYXRjaCh4KXtuZT1bNix4XSxJZT0wfWZpbmFs''@;'; put 'put ''bHl7U2U9VGU9MH1pZig1Jm5lWzBdKXRocm93IG5lWzFdO3JldHVybnt2YWx1ZTpuZVswXT9uZVsxXTp2b2lkIDAsZG9uZTohMH19KFt6LGVlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZXhlY3V0ZVNjcmlwdD12b2lkIDA7dmFyIHRl''@;'; put 'put ''PWooNzc1NyksSz1qKDk3NzgpLEo9aigzNjA3KSxzZT1qKDcwNCksb2U9aig1OTI4KSxjZT1qKDcxNCksZGU9aigxMzQzKSx2ZT1qKDY0OTYpO1EuZXhlY3V0ZVNjcmlwdD1mdW5jdGlvbiBBZShrZSxTZSxJZSxUZSxNZSxoZSxPLHosZWUsbmUseCxQLFYsVCl7dmFyIFMsRjtyZXR1cm4gdm9p''@;'; put 'put ''ZCAwPT09eiYmKHo9bnVsbCksdm9pZCAwPT09ZWUmJihlZT0hMSksdm9pZCAwPT09bmUmJihuZT0hMSksdm9pZCAwPT09eCYmKHg9ITApLHZvaWQgMD09PVYmJihWPSExKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciB5ZSxDZSxEZSxQZSxRZSwkZSxndCx3dCxtdCx2dCxB''@;'; put 'put ''dCxodCxCdCxvbixfdCx0dCxldCxsdCxMdCxDdCxmdCxIdCxHZSxVZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeXQpe3N3aXRjaCh5dC5sYWJlbCl7Y2FzZSAwOnJldHVybiB5ZT0oT3x8e30pLmFjY2Vzc190b2tlbixPP1s0LCgwLHNlLmdldFRva2Vucykoa2UsTyldOlszLDJdO2Nh''@;'; put 'put ''c2UgMTp5ZT15dC5zZW50KCkuYWNjZXNzX3Rva2VuLHl0LmxhYmVsPTI7Y2FzZSAyOkNlPXJlLmxvZ2dlcnx8YWUseXQubGFiZWw9MztjYXNlIDM6cmV0dXJuIHl0LnRyeXMucHVzaChbMywxOSwsMjBdKSxEZT12b2lkIDAsWzQsU2UuZ2V0U2Vzc2lvbih5ZSkuY2F0Y2goZnVuY3Rpb24oanQp''@;'; put 'put ''e3Rocm93KDAsSy5wcmVmaXhNZXNzYWdlKShqdCwiRXJyb3Igd2hpbGUgZ2V0dGluZyBzZXNzaW9uLiAiKX0pXTtjYXNlIDQ6cmV0dXJuIFBlPXl0LnNlbnQoKSxEZT1QZS5pZCxWP1s0LFNlLmdldFZhcmlhYmxlKERlLCJTWVNKT0JJRCIseWUpLmNhdGNoKGZ1bmN0aW9uKGp0KXt0aHJvdygw''@;'; put 'put ''LEsucHJlZml4TWVzc2FnZSkoanQsIkVycm9yIHdoaWxlIGdldHRpbmcgc2Vzc2lvbiB2YXJpYWJsZS4gIil9KV06WzMsNl07Y2FzZSA1OihRZT15dC5zZW50KCkucmVzdWx0KSYmUWUudmFsdWUmJigkZT1JZT9UZS5zcGxpdChJZSkuam9pbigiIikucmVwbGFjZSgvXlwvLywiIik6VGUsKHJl''@;'; put 'put ''LmxvZ2dlcnx8YWUpLmluZm8oIlRyaWdnZXJlZCAnIi5jb25jYXQoJGUsIicgd2l0aCBQSUQgIikuY29uY2F0KFFlLnZhbHVlLCIgYXQgIikuY29uY2F0KCgwLHRlLnRpbWVzdGFtcFRvWVlZWU1NRERISE1NU1MpKCkpKSkseXQubGFiZWw9NjtjYXNlIDY6cmV0dXJuIGd0PXtfY29udGV4dE5h''@;'; put 'put ''bWU6aGUsX09NSVRKU09OTElTVElORzohMCxfT01JVEpTT05MT0c6ITAsX09NSVRTRVNTSU9OUkVTVUxUUzohMCxfT01JVFRFWFRMSVNUSU5HOiEwLF9PTUlUVEVYVExPRzohMH0sZWUmJihndC5fT01JVFRFWFRMT0c9ITEsZ3QuX09NSVRTRVNTSU9OUkVTVUxUUz0hMSksd3Q9dm9pZCAwLCgw''@;'; put 'put ''LG9lLmlzUmVsYXRpdmVQYXRoKShUZSk/d3Q9ImV4ZWMtIi5jb25jYXQoVGUuaW5jbHVkZXMoIi8iKT9UZS5zcGxpdCgiLyIpWzFdOlRlKToobXQ9VGUuc3BsaXQoIi8iKSx3dD1tdC5wb3AoKSksdnQ9e1NZU19KRVNfSk9CX1VSSToiIixfcHJvZ3JhbTooMCxvZS5pc1JlbGF0aXZlUGF0aCko''@;'; put 'put ''VGUpP0llKyIvIitUZTpUZX0sVCYmKHZ0PVkoWSh7fSx2dCksVCkpLGVlJiYodnQ9WShZKHt9LHZ0KSx7X0RFQlVHOjEzMX0pKSxBdD1bXSx6P0pTT04uc3RyaW5naWZ5KHopLmluY2x1ZGVzKCI7Iik/WzQsKDAsdmUudXBsb2FkVGFibGVzKShrZSx6LHllKS5jYXRjaChmdW5jdGlvbihqdCl7''@;'; put 'put ''dGhyb3coMCxLLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSB1cGxvYWRpbmcgdGFibGVzLiAiKX0pXTpbMyw4XTpbMyw5XTtjYXNlIDc6cmV0dXJuIEF0PXl0LnNlbnQoKSx2dC5fd2ViaW5fZmlsZV9jb3VudD1BdC5sZW5ndGgsQXQuZm9yRWFjaChmdW5jdGlvbihqdCxKdCl7dnRb''@;'; put 'put ''Il93ZWJpbl9maWxldXJpIi5jb25jYXQoSnQrMSldPSIvZmlsZXMvZmlsZXMvIi5jb25jYXQoanQuZmlsZS5pZCksdnRbIl93ZWJpbl9uYW1lIi5jb25jYXQoSnQrMSldPWp0LnRhYmxlTmFtZX0pLFszLDldO2Nhc2UgODp2dD1ZKFkoe30sdnQpLCgwLGNlLmZvcm1hdERhdGFGb3JSZXF1ZXN0''@;'; put 'put ''KSh6KSkseXQubGFiZWw9OTtjYXNlIDk6cmV0dXJuIGh0PXtuYW1lOnd0LGRlc2NyaXB0aW9uOiJQb3dlcmVkIGJ5IFNBU2pzIixjb2RlOk1lLHZhcmlhYmxlczp2dCxhcmd1bWVudHM6Z3R9LFs0LGtlLnBvc3QoIi9jb21wdXRlL3Nlc3Npb25zLyIuY29uY2F0KERlLCIvam9icyIpLGh0LHll''@;'; put 'put ''KS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3coMCxLLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSBwb3N0aW5nIGpvYi4gIil9KV07Y2FzZSAxMDpyZXR1cm4gQnQ9eXQuc2VudCgpLG9uPUJ0LnJlc3VsdCx4PyhlZSYmKENlLmluZm8oIkpvYiBoYXMgYmVlbiBzdWJtaXR0ZWQgZm9y''@;'; put 'put ''ICciLmNvbmNhdCh3dCwiJy4iKSksQ2UuaW5mbygiWW91IGNhbiBtb25pdG9yIHRoZSBqb2IgcHJvZ3Jlc3MgYXQgJyIuY29uY2F0KGtlLmdldEJhc2VVcmwoKSkuY29uY2F0KG9uLmxpbmtzLmZpbmQoZnVuY3Rpb24oanQpe3JldHVybiJzdGF0ZSI9PT1qdC5yZWx9KS5ocmVmLCInLiIpKSks''@;'; put 'put ''WzQsKDAsZGUucG9sbEpvYlN0YXRlKShrZSxvbixlZSxPLFApLmNhdGNoKGZ1bmN0aW9uKGp0KXtyZXR1cm4gVyhVZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEp0LGduLGRuLHluLGxuLE5uO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oYm4pe3N3aXRjaChibi5sYWJlbCl7Y2FzZSAw''@;'; put 'put ''OnJldHVybiBKdD1udWxsPT09KGxuPW51bGw9PWp0P3ZvaWQgMDpqdC5yZXNwb25zZSl8fHZvaWQgMD09PWxuP3ZvaWQgMDpsbi5kYXRhLGduPS9lcnI9WzAtOV0qLC8uZXhlYyhKdCksIjUxMTMiIT09KG51bGw9PT0oTm49bnVsbD09Z24/dm9pZCAwOmduWzBdKXx8dm9pZCAwPT09Tm4/dm9p''@;'; put 'put ''ZCAwOk5uLnNsaWNlKDQsLTEpKT9bMywyXTooZG49b24ubGlua3MuZmluZChmdW5jdGlvbihlcil7cmV0dXJuInVwIj09PWVyLnJlbH0pLmhyZWYrIi9sb2ciLHluPWp0LFs0LCgwLG9lLmZldGNoTG9nQnlDaHVua3MpKGtlLHllLGRuLDFlNildKTtjYXNlIDE6eW4ubG9nPWJuLnNlbnQoKSxi''@;'; put 'put ''bi5sYWJlbD0yO2Nhc2UgMjp0aHJvdygwLEsucHJlZml4TWVzc2FnZSkoanQsIkVycm9yIHdoaWxlIHBvbGxpbmcgam9iIHN0YXR1cy4gIil9fSl9KX0pXSk6WzIsUGVdO2Nhc2UgMTE6cmV0dXJuIF90PXl0LnNlbnQoKSxPP1s0LCgwLHNlLmdldFRva2Vucykoa2UsTyldOlszLDEzXTtjYXNl''@;'; put 'put ''IDEyOnllPXl0LnNlbnQoKS5hY2Nlc3NfdG9rZW4seXQubGFiZWw9MTM7Y2FzZSAxMzpyZXR1cm5bNCxrZS5nZXQoIi9jb21wdXRlL3Nlc3Npb25zLyIuY29uY2F0KERlLCIvam9icy8iKS5jb25jYXQob24uaWQpLHllKS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3coMCxLLnByZWZpeE1lc3Nh''@;'; put 'put ''Z2UpKGp0LCJFcnJvciB3aGlsZSBnZXR0aW5nIGpvYi4gIil9KV07Y2FzZSAxNDpyZXR1cm4gdHQ9eXQuc2VudCgpLnJlc3VsdCxldD12b2lkIDAsbHQ9IiIsTHQ9dHQubGlua3MuZmluZChmdW5jdGlvbihqdCl7cmV0dXJuImxvZyI9PT1qdC5yZWx9KSxlZSYmTHQ/KEN0PSIiLmNvbmNhdChM''@;'; put 'put ''dC5ocmVmLCIvY29udGVudCIpLGZ0PW51bGwhPT0oRj1udWxsPT09KFM9dHQubG9nU3RhdGlzdGljcyl8fHZvaWQgMD09PVM/dm9pZCAwOlMubGluZUNvdW50KSYmdm9pZCAwIT09Rj9GOjFlNixbNCwoMCxvZS5mZXRjaExvZ0J5Q2h1bmtzKShrZSx5ZSxDdCxmdCldKTpbMywxNl07Y2FzZSAx''@;'; put 'put ''NTpsdD15dC5zZW50KCkseXQubGFiZWw9MTY7Y2FzZSAxNjppZigiZmFpbGVkIj09PV90fHwiZXJyb3IiPT09X3QpdGhyb3cgbmV3IEouQ29tcHV0ZUpvYkV4ZWN1dGlvbkVycm9yKHR0LGx0KTtyZXR1cm4gbmU/KEh0PSIvY29tcHV0ZS9zZXNzaW9ucy8iLmNvbmNhdChEZSwiL2ZpbGVyZWZz''@;'; put 'put ''L193ZWJvdXQvY29udGVudCIpLFs0LGtlLmdldChIdCx5ZSwidGV4dC9wbGFpbiIpLmNhdGNoKGZ1bmN0aW9uKGp0KXtyZXR1cm4gVyhVZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEp0LGduLGRuLHluO3JldHVybiBOKHRoaXMsZnVuY3Rpb24obG4pe3N3aXRjaChsbi5sYWJlbCl7''@;'; put 'put ''Y2FzZSAwOnJldHVybiBqdCBpbnN0YW5jZW9mIEouTm90Rm91bmRFcnJvciYmTHQ/KEp0PSIiLmNvbmNhdChMdC5ocmVmLCIvY29udGVudCIpLGduPW51bGwhPT0oeW49bnVsbD09PShkbj10dC5sb2dTdGF0aXN0aWNzKXx8dm9pZCAwPT09ZG4/dm9pZCAwOmRuLmxpbmVDb3VudCkmJnZvaWQg''@;'; put 'put ''MCE9PXluP3luOjFlNixbNCwoMCxvZS5mZXRjaExvZ0J5Q2h1bmtzKShrZSx5ZSxKdCxnbildKTpbMywyXTtjYXNlIDE6cmV0dXJuIGx0PWxuLnNlbnQoKSxbMixQcm9taXNlLnJlamVjdCh7c3RhdHVzOjUwMCxsb2c6bHR9KV07Y2FzZSAyOnJldHVyblsyLHtyZXN1bHQ6SlNPTi5zdHJpbmdp''@;'; put 'put ''ZnkoanQpfV19fSl9KX0pXSk6WzIse2pvYjp0dCxsb2c6bHR9XTtjYXNlIDE3OnJldHVybiBldD15dC5zZW50KCksWzQsU2UuY2xlYXJTZXNzaW9uKERlLHllKS5jYXRjaChmdW5jdGlvbihqdCl7dGhyb3coMCxLLnByZWZpeE1lc3NhZ2UpKGp0LCJFcnJvciB3aGlsZSBjbGVhcmluZyBzZXNz''@;'; put 'put ''aW9uLiAiKX0pXTtjYXNlIDE4OnJldHVybiB5dC5zZW50KCksWzIse3Jlc3VsdDpudWxsPT1ldD92b2lkIDA6ZXQucmVzdWx0LGxvZzpsdH1dO2Nhc2UgMTk6aWYoNDA0PT09KEdlPXl0LnNlbnQoKSkuc3RhdHVzKXJldHVyblsyLEFlKGtlLFNlLEllLFRlLE1lLGhlLE8seixlZSwhMSwhMCld''@;'; put 'put ''O3Rocm93KDAsSy5wcmVmaXhNZXNzYWdlKShHZSwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIHNjcmlwdC4gIik7Y2FzZSAyMDpyZXR1cm5bMl19fSl9KX19LDc0NTg6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KSxhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVu''@;'; put 'put ''Y3Rpb24odGUsSyxKLHNlKXtyZXR1cm4gbmV3KEp8fChKPVByb21pc2UpKShmdW5jdGlvbihvZSxjZSl7ZnVuY3Rpb24gZGUoa2Upe3RyeXtBZShzZS5uZXh0KGtlKSl9Y2F0Y2goU2Upe2NlKFNlKX19ZnVuY3Rpb24gdmUoa2Upe3RyeXtBZShzZS50aHJvdyhrZSkpfWNhdGNoKFNlKXtjZShT''@;'; put 'put ''ZSl9fWZ1bmN0aW9uIEFlKGtlKXt2YXIgU2U7a2UuZG9uZT9vZShrZS52YWx1ZSk6KFNlPWtlLnZhbHVlLFNlIGluc3RhbmNlb2YgSj9TZTpuZXcgSihmdW5jdGlvbihJZSl7SWUoU2UpfSkpLnRoZW4oZGUsdmUpfUFlKChzZT1zZS5hcHBseSh0ZSxLfHxbXSkpLm5leHQoKSl9KX0sWT10aGlz''@;'; put 'put ''JiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0ZSxLKXt2YXIgSixzZSxvZSxjZSxkZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvZVswXSl0aHJvdyBvZVsxXTtyZXR1cm4gb2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gY2U9e25leHQ6dmUoMCksdGhyb3c6dmUoMSks''@;'; put 'put ''cmV0dXJuOnZlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoY2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksY2U7ZnVuY3Rpb24gdmUoQWUpe3JldHVybiBmdW5jdGlvbihrZSl7cmV0dXJuIGZ1bmN0aW9uKFNlKXtpZihKKXRocm93IG5ldyBUeXBl''@;'; put 'put ''RXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2RlOyl0cnl7aWYoSj0xLHNlJiYob2U9MiZTZVswXT9zZS5yZXR1cm46U2VbMF0/c2UudGhyb3d8fCgob2U9c2UucmV0dXJuKSYmb2UuY2FsbChzZSksMCk6c2UubmV4dCkmJiEob2U9b2UuY2FsbChzZSxTZVsx''@;'; put 'put ''XSkpLmRvbmUpcmV0dXJuIG9lO3N3aXRjaChzZT0wLG9lJiYoU2U9WzImU2VbMF0sb2UudmFsdWVdKSxTZVswXSl7Y2FzZSAwOmNhc2UgMTpvZT1TZTticmVhaztjYXNlIDQ6cmV0dXJuIGRlLmxhYmVsKysse3ZhbHVlOlNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpkZS5sYWJlbCsrLHNlPVNlWzFd''@;'; put 'put ''LFNlPVswXTtjb250aW51ZTtjYXNlIDc6U2U9ZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvZT0ob2U9ZGUudHJ5cykubGVuZ3RoPjAmJm9lW29lLmxlbmd0aC0xXSl8fDYhPT1TZVswXSYmMiE9PVNlWzBdKSl7ZGU9MDtjb250aW51ZX1pZigzPT09''@;'; put 'put ''U2VbMF0mJighb2V8fFNlWzFdPm9lWzBdJiZTZVsxXTxvZVszXSkpe2RlLmxhYmVsPVNlWzFdO2JyZWFrfWlmKDY9PT1TZVswXSYmZGUubGFiZWw8b2VbMV0pe2RlLmxhYmVsPW9lWzFdLG9lPVNlO2JyZWFrfWlmKG9lJiZkZS5sYWJlbDxvZVsyXSl7ZGUubGFiZWw9b2VbMl0sZGUub3BzLnB1''@;'; put 'put ''c2goU2UpO2JyZWFrfW9lWzJdJiZkZS5vcHMucG9wKCksZGUudHJ5cy5wb3AoKTtjb250aW51ZX1TZT1LLmNhbGwodGUsZGUpfWNhdGNoKEllKXtTZT1bNixJZV0sc2U9MH1maW5hbGx5e0o9b2U9MH1pZig1JlNlWzBdKXRocm93IFNlWzFdO3JldHVybnt2YWx1ZTpTZVswXT9TZVsxXTp2b2lk''@;'; put 'put ''IDAsZG9uZTohMH19KFtBZSxrZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldEZpbGVTdHJlYW09dm9pZCAwO3ZhciBXPWooMjk3NSksTj1qKDc3NTcpO1EuZ2V0RmlsZVN0cmVhbT1mdW5jdGlvbih0ZSxLKXtyZXR1cm4gYWUodm9p''@;'; put 'put ''ZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSixzZSxvZSxjZSxkZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHZlKXtzd2l0Y2godmUubGFiZWwpe2Nhc2UgMDpyZXR1cm4gSj1qKDI5NzUpLmNyZWF0ZVdyaXRlU3RyZWFtLHNlPUt8fHJlLmN3ZCgpLFs0LCgwLFcuaXNGb2xkZXIp''@;'; put 'put ''KHNlKV07Y2FzZSAxOnJldHVybiB2ZS5zZW50KCk/KG9lPSIiLmNvbmNhdCh0ZS5uYW1lfHwiam9iIiwiLSIpLmNvbmNhdCgoMCxOLmdlbmVyYXRlVGltZXN0YW1wKSgpLCIubG9nIiksY2U9aigyNTIwKSxkZT1jZS5qb2luKEt8fHJlLmN3ZCgpLG9lKSxbNCxKKGRlKV0pOlszLDNdO2Nhc2Ug''@;'; put 'put ''MjpjYXNlIDQ6cmV0dXJuWzIsdmUuc2VudCgpXTtjYXNlIDM6cmV0dXJuWzQsSihzZSldfX0pfSl9fSwxMzQzOmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPWooNDE1NSksYWU9aig1MTA4KSxZPXRoaXMmJnRoaXMuX19hc3NpZ258fGZ1bmN0aW9uKCl7cmV0dXJuIFk9T2Jq''@;'; put 'put ''ZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZGUpe2Zvcih2YXIgdmUsQWU9MSxrZT1hcmd1bWVudHMubGVuZ3RoO0FlPGtlO0FlKyspZm9yKHZhciBTZSBpbiB2ZT1hcmd1bWVudHNbQWVdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2ZSxTZSkmJihkZVtTZV09dmVbU2VdKTty''@;'; put 'put ''ZXR1cm4gZGV9LFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxXPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihkZSx2ZSxBZSxrZSl7cmV0dXJuIG5ldyhBZXx8KEFlPVByb21pc2UpKShmdW5jdGlvbihTZSxJZSl7ZnVuY3Rpb24gVGUoTyl7dHJ5e2hlKGtlLm5leHQoTykpfWNhdGNo''@;'; put 'put ''KHope0llKHopfX1mdW5jdGlvbiBNZShPKXt0cnl7aGUoa2UudGhyb3coTykpfWNhdGNoKHope0llKHopfX1mdW5jdGlvbiBoZShPKXt2YXIgejtPLmRvbmU/U2UoTy52YWx1ZSk6KHo9Ty52YWx1ZSx6IGluc3RhbmNlb2YgQWU/ejpuZXcgQWUoZnVuY3Rpb24oZWUpe2VlKHopfSkpLnRoZW4o''@;'; put 'put ''VGUsTWUpfWhlKChrZT1rZS5hcHBseShkZSx2ZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oZGUsdmUpe3ZhciBBZSxrZSxTZSxJZSxUZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZTZVswXSl0aHJvdyBTZVsxXTtyZXR1cm4gU2Vb''@;'; put 'put ''MV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gSWU9e25leHQ6TWUoMCksdGhyb3c6TWUoMSkscmV0dXJuOk1lKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoSWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksSWU7ZnVuY3Rpb24gTWUoaGUpe3JldHVy''@;'; put 'put ''biBmdW5jdGlvbihPKXtyZXR1cm4gZnVuY3Rpb24oeil7aWYoQWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7VGU7KXRyeXtpZihBZT0xLGtlJiYoU2U9MiZ6WzBdP2tlLnJldHVybjp6WzBdP2tlLnRocm93fHwoKFNlPWtlLnJl''@;'; put 'put ''dHVybikmJlNlLmNhbGwoa2UpLDApOmtlLm5leHQpJiYhKFNlPVNlLmNhbGwoa2UselsxXSkpLmRvbmUpcmV0dXJuIFNlO3N3aXRjaChrZT0wLFNlJiYoej1bMiZ6WzBdLFNlLnZhbHVlXSkselswXSl7Y2FzZSAwOmNhc2UgMTpTZT16O2JyZWFrO2Nhc2UgNDpyZXR1cm4gVGUubGFiZWwrKyx7''@;'; put 'put ''dmFsdWU6elsxXSxkb25lOiExfTtjYXNlIDU6VGUubGFiZWwrKyxrZT16WzFdLHo9WzBdO2NvbnRpbnVlO2Nhc2UgNzp6PVRlLm9wcy5wb3AoKSxUZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoU2U9KFNlPVRlLnRyeXMpLmxlbmd0aD4wJiZTZVtTZS5sZW5ndGgtMV0pfHw2''@;'; put 'put ''IT09elswXSYmMiE9PXpbMF0pKXtUZT0wO2NvbnRpbnVlfWlmKDM9PT16WzBdJiYoIVNlfHx6WzFdPlNlWzBdJiZ6WzFdPFNlWzNdKSl7VGUubGFiZWw9elsxXTticmVha31pZig2PT09elswXSYmVGUubGFiZWw8U2VbMV0pe1RlLmxhYmVsPVNlWzFdLFNlPXo7YnJlYWt9aWYoU2UmJlRlLmxh''@;'; put 'put ''YmVsPFNlWzJdKXtUZS5sYWJlbD1TZVsyXSxUZS5vcHMucHVzaCh6KTticmVha31TZVsyXSYmVGUub3BzLnBvcCgpLFRlLnRyeXMucG9wKCk7Y29udGludWV9ej12ZS5jYWxsKGRlLFRlKX1jYXRjaChlZSl7ej1bNixlZV0sa2U9MH1maW5hbGx5e0FlPVNlPTB9aWYoNSZ6WzBdKXRocm93IHpb''@;'; put 'put ''MV07cmV0dXJue3ZhbHVlOnpbMF0/elsxXTp2b2lkIDAsZG9uZTohMH19KFtoZSxPXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucG9sbEpvYlN0YXRlPXZvaWQgMDt2YXIgdGU9aig3MDQpLEs9aigxMzk1KSxKPWooNTkyOCk7US5wb2xs''@;'; put 'put ''Sm9iU3RhdGU9ZnVuY3Rpb24oZGUsdmUsQWUsa2UsU2Upe3JldHVybiBXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBJZSxUZSxNZSxoZSxPLHosZWU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihuZSl7c3dpdGNoKG5lLmxhYmVsKXtjYXNlIDA6aWYoSWU9cmUubG9nZ2VyfHxh''@;'; put 'put ''ZSxTZT1ZKFkoe30se21heFBvbGxDb3VudDoxZTMscG9sbEludGVydmFsOjMwMCxzdHJlYW1Mb2c6ITF9KSxTZXx8e30pLCEoVGU9dmUubGlua3MuZmluZChmdW5jdGlvbih4KXtyZXR1cm4ic3RhdGUiPT09eC5yZWx9KSkpdGhyb3cgbmV3IEVycm9yKCJKb2Igc3RhdGUgbGluayB3YXMgbm90''@;'; put 'put ''IGZvdW5kLiIpO3JldHVybls0LHNlKGRlLHZlLCIiLEFlLGtlKS5jYXRjaChmdW5jdGlvbih4KXtyZXR1cm4gSWUuZXJyb3IoIkVycm9yIGZldGNoaW5nIGpvYiBzdGF0ZSBmcm9tICIuY29uY2F0KFRlLmhyZWYsIi4gU3RhcnRpbmcgcG9sbCwgYXNzdW1pbmcgam9iIHRvIGJlIHJ1bm5pbmcu''@;'; put 'put ''IikseCksInVuYXZhaWxhYmxlIn0pXTtjYXNlIDE6cmV0dXJuIE1lPW5lLnNlbnQoKSxoZT0wLCJjb21wbGV0ZWQiPT09TWU/WzIsUHJvbWlzZS5yZXNvbHZlKE1lKV06U2Uuc3RyZWFtTG9nJiYoMCxKLmlzTm9kZSkoKT9bNCwoMCxqKDc0NTgpLmdldEZpbGVTdHJlYW0pKHZlLFNlLmxvZ0Zv''@;'; put 'put ''bGRlclBhdGgpXTpbMywzXTtjYXNlIDI6Tz1uZS5zZW50KCksbmUubGFiZWw9MztjYXNlIDM6cmV0dXJuWzQsY2UoZGUsdmUsTWUsQWUsaGUsa2UsWShZKHt9LFNlKSx7bWF4UG9sbENvdW50OlNlLm1heFBvbGxDb3VudDw9MTAwP1NlLm1heFBvbGxDb3VudDoxMDB9KSxPKV07Y2FzZSA0OnJl''@;'; put 'put ''dHVybiB6PW5lLnNlbnQoKSxoZT16LnBvbGxDb3VudCwhb2UoTWU9ei5zdGF0ZSl8fGhlPj1TZS5tYXhQb2xsQ291bnQ/WzIsTWVdOihlZT17bWF4UG9sbENvdW50OjE0NDAscG9sbEludGVydmFsOjZlNCxzdHJlYW1Mb2c6ITF9LFNlJiYoZWUuc3RyZWFtTG9nPVNlLnN0cmVhbUxvZyxlZS5s''@;'; put 'put ''b2dGb2xkZXJQYXRoPVNlLmxvZ0ZvbGRlclBhdGgpLFs0LGNlKGRlLHZlLE1lLEFlLGhlLGtlLGVlLE8pXSk7Y2FzZSA1OnJldHVybiB6PW5lLnNlbnQoKSxNZT16LnN0YXRlLGhlPXoucG9sbENvdW50LE8mJk8uZW5kKCksWzIsTWVdfX0pfSl9O3ZhciBzZT1mdW5jdGlvbihkZSx2ZSxBZSxr''@;'; put 'put ''ZSxTZSl7cmV0dXJuIFcodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgSWUsVGU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihNZSl7c3dpdGNoKE1lLmxhYmVsKXtjYXNlIDA6aWYoIShJZT12ZS5saW5rcy5maW5kKGZ1bmN0aW9uKGhlKXtyZXR1cm4ic3RhdGUiPT09aGUucmVs''@;'; put 'put ''fSkpKXRocm93IG5ldyBFcnJvcigiSm9iIHN0YXRlIGxpbmsgd2FzIG5vdCBmb3VuZC4iKTtyZXR1cm4gb2UoQWUpPyhUZT12b2lkIDAsU2U/WzQsKDAsdGUuZ2V0VG9rZW5zKShkZSxTZSldOlszLDJdKTpbMyw0XTtjYXNlIDE6VGU9TWUuc2VudCgpLE1lLmxhYmVsPTI7Y2FzZSAyOnJldHVy''@;'; put 'put ''bls0LGRlLmdldCgiIi5jb25jYXQoSWUuaHJlZiwiP19hY3Rpb249d2FpdCZ3YWl0PTMwMCIpLG51bGw9PVRlP3ZvaWQgMDpUZS5hY2Nlc3NfdG9rZW4sInRleHQvcGxhaW4iLHt9LGtlKS5jYXRjaChmdW5jdGlvbihoZSl7dGhyb3cgbmV3IEsuSm9iU3RhdGVQb2xsRXJyb3IodmUuaWQsaGUp''@;'; put 'put ''fSldO2Nhc2UgMzpyZXR1cm5bMixNZS5zZW50KCkucmVzdWx0LnRyaW0oKV07Y2FzZSA0OnJldHVyblsyLEFlXX19KX0pfSxvZT1mdW5jdGlvbihkZSl7cmV0dXJuInJ1bm5pbmciPT09ZGV8fCIiPT09ZGV8fCJwZW5kaW5nIj09PWRlfHwidW5hdmFpbGFibGUiPT09ZGV9LGNlPWZ1bmN0aW9u''@;'; put 'put ''KGRlLHZlLEFlLGtlLFNlLEllLFRlLE1lKXtyZXR1cm4gVyh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBoZSxPLHosZWUsbmUseCxQLFYsVCxTLEYseWUsQ2UsRGUsUGU7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihRZSl7c3dpdGNoKFFlLmxhYmVsKXtjYXNlIDA6aWYoaGU9''@;'; put 'put ''MzAwLE89MWUzLHo9NSxlZT0wLG5lPUFlLHg9IiIsUD0wLFY9cmUubG9nZ2VyfHxhZSxUZSYmKGhlPVRlLnBvbGxJbnRlcnZhbHx8aGUsTz1UZS5tYXhQb2xsQ291bnR8fE8pLCEoVD12ZS5saW5rcy5maW5kKGZ1bmN0aW9uKCRlKXtyZXR1cm4ic3RhdGUiPT09JGUucmVsfSkpKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigiSm9iIHN0YXRlIGxpbmsgd2FzIG5vdCBmb3VuZC4iKTtRZS5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gb2UobmUpJiZTZTw9Tz9bNCxzZShkZSx2ZSxuZSxrZSxJZSkuY2F0Y2goZnVuY3Rpb24oJGUpe2lmKGVlKyssU2U+PU98fGVlPj16KXRocm93ICRlO3JldHVybiBWLmVycm9y''@;'; put 'put ''KCJFcnJvciBmZXRjaGluZyBqb2Igc3RhdGUgZnJvbSAiLmNvbmNhdChULmhyZWYsIi4gUmVzdW1pbmcgcG9sbCwgYXNzdW1pbmcgam9iIHRvIGJlIHJ1bm5pbmcuIiksJGUpLCJ1bmF2YWlsYWJsZSJ9KV06WzMsOF07Y2FzZSAyOnJldHVybiBuZT1RZS5zZW50KCksU2UrKyxTPXZlLmxpbmtz''@;'; put 'put ''LmZpbmQoZnVuY3Rpb24oJGUpe3JldHVybiJzZWxmIj09PSRlLnJlbH0pLmhyZWYsbnVsbCE9VGUmJlRlLnN0cmVhbUxvZz9bNCxkZS5nZXQoUyxudWxsPT1JZT92b2lkIDA6SWUuYWNjZXNzX3Rva2VuKV06WzMsNl07Y2FzZSAzOnJldHVybiBGPVFlLnNlbnQoKS5yZXN1bHQseWU9bnVsbCE9''@;'; put 'put ''PShQZT1udWxsPT09KERlPUYubG9nU3RhdGlzdGljcyl8fHZvaWQgMD09PURlP3ZvaWQgMDpEZS5saW5lQ291bnQpJiZ2b2lkIDAhPT1QZT9QZToxZTYsKENlPSgoMCxKLmlzTm9kZSkoKT9qKDIwODApOntzYXZlTG9nOm51bGx9KS5zYXZlTG9nKT9bNCxDZSh2ZSxkZSxQLHllLE1lLG51bGw9''@;'; put 'put ''PUllP3ZvaWQgMDpJZS5hY2Nlc3NfdG9rZW4pXTpbMyw1XTtjYXNlIDQ6UWUuc2VudCgpLFFlLmxhYmVsPTU7Y2FzZSA1OlArPXllLFFlLmxhYmVsPTY7Y2FzZSA2OnJldHVybiBrZSYmeCE9PW5lJiYoVi5pbmZvKCJQb2xsaW5nOiAiLmNvbmNhdChkZS5nZXRCYXNlVXJsKCkrUywiL3N0YXRl''@;'; put 'put ''IikpLFYuaW5mbygiQ3VycmVudCBqb2Igc3RhdGU6ICIuY29uY2F0KG5lKSkseD1uZSksInVuYXZhaWxhYmxlIiE9bmUmJmVlPjAmJihlZT0wKSxbNCwoMCxKLmRlbGF5KShoZSldO2Nhc2UgNzpyZXR1cm4gUWUuc2VudCgpLFszLDFdO2Nhc2UgODpyZXR1cm5bMix7c3RhdGU6bmUscG9sbENv''@;'; put 'put ''dW50OlNlfV19fSl9KX19LDIwODA6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KSxhZT1qKDUxMDgpLFk9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKEssSixzZSxvZSl7cmV0dXJuIG5ldyhzZXx8KHNlPVByb21pc2UpKShmdW5jdGlvbihjZSxkZSl7''@;'; put 'put ''ZnVuY3Rpb24gdmUoU2Upe3RyeXtrZShvZS5uZXh0KFNlKSl9Y2F0Y2goSWUpe2RlKEllKX19ZnVuY3Rpb24gQWUoU2Upe3RyeXtrZShvZS50aHJvdyhTZSkpfWNhdGNoKEllKXtkZShJZSl9fWZ1bmN0aW9uIGtlKFNlKXt2YXIgSWU7U2UuZG9uZT9jZShTZS52YWx1ZSk6KEllPVNlLnZhbHVl''@;'; put 'put ''LEllIGluc3RhbmNlb2Ygc2U/SWU6bmV3IHNlKGZ1bmN0aW9uKFRlKXtUZShJZSl9KSkudGhlbih2ZSxBZSl9a2UoKG9lPW9lLmFwcGx5KEssSnx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oSyxKKXt2YXIgc2Usb2UsY2UsZGUsdmU9e2xhYmVs''@;'; put 'put ''OjAsc2VudDpmdW5jdGlvbigpe2lmKDEmY2VbMF0pdGhyb3cgY2VbMV07cmV0dXJuIGNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGRlPXtuZXh0OkFlKDApLHRocm93OkFlKDEpLHJldHVybjpBZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGRlW1N5bWJvbC5pdGVyYXRv''@;'; put 'put ''cl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGRlO2Z1bmN0aW9uIEFlKGtlKXtyZXR1cm4gZnVuY3Rpb24oU2Upe3JldHVybiBmdW5jdGlvbihJZSl7aWYoc2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dmU7KXRyeXtpZihz''@;'; put 'put ''ZT0xLG9lJiYoY2U9MiZJZVswXT9vZS5yZXR1cm46SWVbMF0/b2UudGhyb3d8fCgoY2U9b2UucmV0dXJuKSYmY2UuY2FsbChvZSksMCk6b2UubmV4dCkmJiEoY2U9Y2UuY2FsbChvZSxJZVsxXSkpLmRvbmUpcmV0dXJuIGNlO3N3aXRjaChvZT0wLGNlJiYoSWU9WzImSWVbMF0sY2UudmFsdWVd''@;'; put 'put ''KSxJZVswXSl7Y2FzZSAwOmNhc2UgMTpjZT1JZTticmVhaztjYXNlIDQ6cmV0dXJuIHZlLmxhYmVsKysse3ZhbHVlOkllWzFdLGRvbmU6ITF9O2Nhc2UgNTp2ZS5sYWJlbCsrLG9lPUllWzFdLEllPVswXTtjb250aW51ZTtjYXNlIDc6SWU9dmUub3BzLnBvcCgpLHZlLnRyeXMucG9wKCk7Y29u''@;'; put 'put ''dGludWU7ZGVmYXVsdDppZighKChjZT0oY2U9dmUudHJ5cykubGVuZ3RoPjAmJmNlW2NlLmxlbmd0aC0xXSl8fDYhPT1JZVswXSYmMiE9PUllWzBdKSl7dmU9MDtjb250aW51ZX1pZigzPT09SWVbMF0mJighY2V8fEllWzFdPmNlWzBdJiZJZVsxXTxjZVszXSkpe3ZlLmxhYmVsPUllWzFdO2Jy''@;'; put 'put ''ZWFrfWlmKDY9PT1JZVswXSYmdmUubGFiZWw8Y2VbMV0pe3ZlLmxhYmVsPWNlWzFdLGNlPUllO2JyZWFrfWlmKGNlJiZ2ZS5sYWJlbDxjZVsyXSl7dmUubGFiZWw9Y2VbMl0sdmUub3BzLnB1c2goSWUpO2JyZWFrfWNlWzJdJiZ2ZS5vcHMucG9wKCksdmUudHJ5cy5wb3AoKTtjb250aW51ZX1J''@;'; put 'put ''ZT1KLmNhbGwoSyx2ZSl9Y2F0Y2goVGUpe0llPVs2LFRlXSxvZT0wfWZpbmFsbHl7c2U9Y2U9MH1pZig1JkllWzBdKXRocm93IEllWzFdO3JldHVybnt2YWx1ZTpJZVswXT9JZVsxXTp2b2lkIDAsZG9uZTohMH19KFtrZSxTZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9k''@;'; put 'put ''dWxlIix7dmFsdWU6ITB9KSxRLnNhdmVMb2c9dm9pZCAwO3ZhciBOPWooNTkyOCksdGU9aig2MTMxKTtRLnNhdmVMb2c9ZnVuY3Rpb24oSyxKLHNlLG9lLGNlLGRlKXtyZXR1cm4gWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgdmUsQWUsa2U7cmV0dXJuIFcodGhpcyxmdW5j''@;'; put 'put ''dGlvbihTZSl7c3dpdGNoKFNlLmxhYmVsKXtjYXNlIDA6aWYoIWRlKXRocm93IG5ldyBFcnJvcigiTG9ncyBmb3Igam9iICIuY29uY2F0KEsuaWQsIiBjYW5ub3QgYmUgZmV0Y2hlZCB3aXRob3V0IGEgdmFsaWQgYWNjZXNzIHRva2VuLiIpKTtpZighY2UpdGhyb3cgbmV3IEVycm9yKCJMb2dz''@;'; put 'put ''IGZvciBqb2IgIi5jb25jYXQoSy5pZCwiIGNhbm5vdCBiZSB3cml0dGVuIHdpdGhvdXQgYSB2YWxpZCB3cml0ZSBzdHJlYW0uIikpO2lmKHZlPXJlLmxvZ2dlcnx8YWUsIShBZT1LLmxpbmtzLmZpbmQoZnVuY3Rpb24oSWUpe3JldHVybiJsb2ciPT09SWUucmVsfSkpKXRocm93IG5ldyBFcnJv''@;'; put 'put ''cigiTG9nIFVSTCBmb3Igam9iICIuY29uY2F0KEsuaWQsIiB3YXMgbm90IGZvdW5kLiIpKTtyZXR1cm5bNCwoMCxOLmZldGNoTG9nKShKLGRlLCIiLmNvbmNhdChBZS5ocmVmLCIvY29udGVudCIpLHNlLG9lKV07Y2FzZSAxOnJldHVybiBrZT1TZS5zZW50KCksdmUuaW5mbygiV3JpdGluZyBs''@;'; put 'put ''b2dzIHRvICIuY29uY2F0KGNlLnBhdGgpKSxbNCwoMCx0ZS53cml0ZVN0cmVhbSkoY2Usa2V8fCIiKV07Y2FzZSAyOnJldHVybiBTZS5zZW50KCksWzJdfX0pfSl9fSw2NDk2OmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlv''@;'; put 'put ''bihOLHRlLEssSil7cmV0dXJuIG5ldyhLfHwoSz1Qcm9taXNlKSkoZnVuY3Rpb24oc2Usb2Upe2Z1bmN0aW9uIGNlKEFlKXt0cnl7dmUoSi5uZXh0KEFlKSl9Y2F0Y2goa2Upe29lKGtlKX19ZnVuY3Rpb24gZGUoQWUpe3RyeXt2ZShKLnRocm93KEFlKSl9Y2F0Y2goa2Upe29lKGtlKX19ZnVu''@;'; put 'put ''Y3Rpb24gdmUoQWUpe3ZhciBrZTtBZS5kb25lP3NlKEFlLnZhbHVlKTooa2U9QWUudmFsdWUsa2UgaW5zdGFuY2VvZiBLP2tlOm5ldyBLKGZ1bmN0aW9uKFNlKXtTZShrZSl9KSkudGhlbihjZSxkZSl9dmUoKEo9Si5hcHBseShOLHRlfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5f''@;'; put 'put ''X2dlbmVyYXRvcnx8ZnVuY3Rpb24oTix0ZSl7dmFyIEssSixzZSxvZSxjZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZzZVswXSl0aHJvdyBzZVsxXTtyZXR1cm4gc2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gb2U9e25leHQ6ZGUoMCksdGhyb3c6ZGUoMSkscmV0dXJuOmRl''@;'; put 'put ''KDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYob2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksb2U7ZnVuY3Rpb24gZGUodmUpe3JldHVybiBmdW5jdGlvbihBZSl7cmV0dXJuIGZ1bmN0aW9uKGtlKXtpZihLKXRocm93IG5ldyBUeXBlRXJyb3IoIkdl''@;'; put 'put ''bmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2NlOyl0cnl7aWYoSz0xLEomJihzZT0yJmtlWzBdP0oucmV0dXJuOmtlWzBdP0oudGhyb3d8fCgoc2U9Si5yZXR1cm4pJiZzZS5jYWxsKEopLDApOkoubmV4dCkmJiEoc2U9c2UuY2FsbChKLGtlWzFdKSkuZG9uZSlyZXR1cm4g''@;'; put 'put ''c2U7c3dpdGNoKEo9MCxzZSYmKGtlPVsyJmtlWzBdLHNlLnZhbHVlXSksa2VbMF0pe2Nhc2UgMDpjYXNlIDE6c2U9a2U7YnJlYWs7Y2FzZSA0OnJldHVybiBjZS5sYWJlbCsrLHt2YWx1ZTprZVsxXSxkb25lOiExfTtjYXNlIDU6Y2UubGFiZWwrKyxKPWtlWzFdLGtlPVswXTtjb250aW51ZTtj''@;'; put 'put ''YXNlIDc6a2U9Y2Uub3BzLnBvcCgpLGNlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChzZT0oc2U9Y2UudHJ5cykubGVuZ3RoPjAmJnNlW3NlLmxlbmd0aC0xXSl8fDYhPT1rZVswXSYmMiE9PWtlWzBdKSl7Y2U9MDtjb250aW51ZX1pZigzPT09a2VbMF0mJighc2V8fGtlWzFd''@;'; put 'put ''PnNlWzBdJiZrZVsxXTxzZVszXSkpe2NlLmxhYmVsPWtlWzFdO2JyZWFrfWlmKDY9PT1rZVswXSYmY2UubGFiZWw8c2VbMV0pe2NlLmxhYmVsPXNlWzFdLHNlPWtlO2JyZWFrfWlmKHNlJiZjZS5sYWJlbDxzZVsyXSl7Y2UubGFiZWw9c2VbMl0sY2Uub3BzLnB1c2goa2UpO2JyZWFrfXNlWzJd''@;'; put 'put ''JiZjZS5vcHMucG9wKCksY2UudHJ5cy5wb3AoKTtjb250aW51ZX1rZT10ZS5jYWxsKE4sY2UpfWNhdGNoKFNlKXtrZT1bNixTZV0sSj0wfWZpbmFsbHl7Sz1zZT0wfWlmKDUma2VbMF0pdGhyb3cga2VbMV07cmV0dXJue3ZhbHVlOmtlWzBdP2tlWzFdOnZvaWQgMCxkb25lOiEwfX0oW3ZlLEFl''@;'; put 'put ''XSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudXBsb2FkVGFibGVzPXZvaWQgMDt2YXIgWT1qKDk3NzgpLFc9aigyNDAyKTtRLnVwbG9hZFRhYmxlcz1mdW5jdGlvbihOLHRlLEspe3JldHVybiByZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVu''@;'; put 'put ''Y3Rpb24oKXt2YXIgSixzZSxvZSxjZSxkZSx2ZSxBZTtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihrZSl7c3dpdGNoKGtlLmxhYmVsKXtjYXNlIDA6Zm9yKG9lIGluIEo9W10sc2U9W10sdGUpc2UucHVzaChvZSk7Y2U9MCxrZS5sYWJlbD0xO2Nhc2UgMTppZighKGNlPHNlLmxlbmd0aCkpcmV0''@;'; put 'put ''dXJuWzMsNF07aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PSh2ZT0oMCxXLmNvbnZlcnRUb0NTVikodGUsZGU9c2VbY2VdKSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBjaGFyYWN0ZXJzLiIpO3Jl''@;'; put 'put ''dHVybls0LE4udXBsb2FkRmlsZSgiL2ZpbGVzL2ZpbGVzI3Jhd1VwbG9hZCIsdmUsSykuY2F0Y2goZnVuY3Rpb24oU2Upe3Rocm93KDAsWS5wcmVmaXhNZXNzYWdlKShTZSwiRXJyb3Igd2hpbGUgdXBsb2FkaW5nIGZpbGUuICIpfSldO2Nhc2UgMjpBZT1rZS5zZW50KCksSi5wdXNoKHt0YWJs''@;'; put 'put ''ZU5hbWU6ZGUsZmlsZTpBZS5yZXN1bHR9KSxrZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gY2UrKyxbMywxXTtjYXNlIDQ6cmV0dXJuWzIsSl19fSl9KX19LDYxMzE6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGo9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGFlLFksVyxO''@;'; put 'put ''KXtyZXR1cm4gbmV3KFd8fChXPVByb21pc2UpKShmdW5jdGlvbih0ZSxLKXtmdW5jdGlvbiBKKGNlKXt0cnl7b2UoTi5uZXh0KGNlKSl9Y2F0Y2goZGUpe0soZGUpfX1mdW5jdGlvbiBzZShjZSl7dHJ5e29lKE4udGhyb3coY2UpKX1jYXRjaChkZSl7SyhkZSl9fWZ1bmN0aW9uIG9lKGNlKXt2''@;'; put 'put ''YXIgZGU7Y2UuZG9uZT90ZShjZS52YWx1ZSk6KGRlPWNlLnZhbHVlLGRlIGluc3RhbmNlb2YgVz9kZTpuZXcgVyhmdW5jdGlvbih2ZSl7dmUoZGUpfSkpLnRoZW4oSixzZSl9b2UoKE49Ti5hcHBseShhZSxZfHxbXSkpLm5leHQoKSl9KX0scmU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVu''@;'; put 'put ''Y3Rpb24oYWUsWSl7dmFyIFcsTix0ZSxLLEo9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmdGVbMF0pdGhyb3cgdGVbMV07cmV0dXJuIHRlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEs9e25leHQ6c2UoMCksdGhyb3c6c2UoMSkscmV0dXJuOnNlKDIpfSwiZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgU3ltYm9sJiYoS1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxLO2Z1bmN0aW9uIHNlKG9lKXtyZXR1cm4gZnVuY3Rpb24oY2Upe3JldHVybiBmdW5jdGlvbihkZSl7aWYoVyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBl''@;'; put 'put ''eGVjdXRpbmcuIik7Zm9yKDtKOyl0cnl7aWYoVz0xLE4mJih0ZT0yJmRlWzBdP04ucmV0dXJuOmRlWzBdP04udGhyb3d8fCgodGU9Ti5yZXR1cm4pJiZ0ZS5jYWxsKE4pLDApOk4ubmV4dCkmJiEodGU9dGUuY2FsbChOLGRlWzFdKSkuZG9uZSlyZXR1cm4gdGU7c3dpdGNoKE49MCx0ZSYmKGRl''@;'; put 'put ''PVsyJmRlWzBdLHRlLnZhbHVlXSksZGVbMF0pe2Nhc2UgMDpjYXNlIDE6dGU9ZGU7YnJlYWs7Y2FzZSA0OnJldHVybiBKLmxhYmVsKysse3ZhbHVlOmRlWzFdLGRvbmU6ITF9O2Nhc2UgNTpKLmxhYmVsKyssTj1kZVsxXSxkZT1bMF07Y29udGludWU7Y2FzZSA3OmRlPUoub3BzLnBvcCgpLEou''@;'; put 'put ''dHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHRlPSh0ZT1KLnRyeXMpLmxlbmd0aD4wJiZ0ZVt0ZS5sZW5ndGgtMV0pfHw2IT09ZGVbMF0mJjIhPT1kZVswXSkpe0o9MDtjb250aW51ZX1pZigzPT09ZGVbMF0mJighdGV8fGRlWzFdPnRlWzBdJiZkZVsxXTx0ZVszXSkpe0oubGFi''@;'; put 'put ''ZWw9ZGVbMV07YnJlYWt9aWYoNj09PWRlWzBdJiZKLmxhYmVsPHRlWzFdKXtKLmxhYmVsPXRlWzFdLHRlPWRlO2JyZWFrfWlmKHRlJiZKLmxhYmVsPHRlWzJdKXtKLmxhYmVsPXRlWzJdLEoub3BzLnB1c2goZGUpO2JyZWFrfXRlWzJdJiZKLm9wcy5wb3AoKSxKLnRyeXMucG9wKCk7Y29udGlu''@;'; put 'put ''dWV9ZGU9WS5jYWxsKGFlLEopfWNhdGNoKHZlKXtkZT1bNix2ZV0sTj0wfWZpbmFsbHl7Vz10ZT0wfWlmKDUmZGVbMF0pdGhyb3cgZGVbMV07cmV0dXJue3ZhbHVlOmRlWzBdP2RlWzFdOnZvaWQgMCxkb25lOiEwfX0oW29lLGNlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNN''@;'; put 'put ''b2R1bGUiLHt2YWx1ZTohMH0pLFEud3JpdGVTdHJlYW09dm9pZCAwLFEud3JpdGVTdHJlYW09ZnVuY3Rpb24oYWUsWSl7cmV0dXJuIGoodm9pZCAwLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gcmUodGhpcyxmdW5jdGlvbihXKXtyZXR1cm5bMixhZS53cml0ZShZKyJcbiIsZnVu''@;'; put 'put ''Y3Rpb24oTil7cmV0dXJuIE4/UHJvbWlzZS5yZWplY3QoTik6UHJvbWlzZS5yZXNvbHZlKCl9KV19KX0pfX0sMjg1MTpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT1qKDUxMDgpLGFlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih2ZSxBZSxrZSxTZSl7cmV0dXJu''@;'; put 'put ''IG5ldyhrZXx8KGtlPVByb21pc2UpKShmdW5jdGlvbihJZSxUZSl7ZnVuY3Rpb24gTWUoeil7dHJ5e08oU2UubmV4dCh6KSl9Y2F0Y2goZWUpe1RlKGVlKX19ZnVuY3Rpb24gaGUoeil7dHJ5e08oU2UudGhyb3coeikpfWNhdGNoKGVlKXtUZShlZSl9fWZ1bmN0aW9uIE8oeil7dmFyIGVlO3ou''@;'; put 'put ''ZG9uZT9JZSh6LnZhbHVlKTooZWU9ei52YWx1ZSxlZSBpbnN0YW5jZW9mIGtlP2VlOm5ldyBrZShmdW5jdGlvbihuZSl7bmUoZWUpfSkpLnRoZW4oTWUsaGUpfU8oKFNlPVNlLmFwcGx5KHZlLEFlfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih2''@;'; put 'put ''ZSxBZSl7dmFyIGtlLFNlLEllLFRlLE1lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkllWzBdKXRocm93IEllWzFdO3JldHVybiBJZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBUZT17bmV4dDpoZSgwKSx0aHJvdzpoZSgxKSxyZXR1cm46aGUoMil9LCJmdW5jdGlvbiI9PXR5''@;'; put 'put ''cGVvZiBTeW1ib2wmJihUZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxUZTtmdW5jdGlvbiBoZShPKXtyZXR1cm4gZnVuY3Rpb24oeil7cmV0dXJuIGZ1bmN0aW9uKGVlKXtpZihrZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBl''@;'; put 'put ''eGVjdXRpbmcuIik7Zm9yKDtNZTspdHJ5e2lmKGtlPTEsU2UmJihJZT0yJmVlWzBdP1NlLnJldHVybjplZVswXT9TZS50aHJvd3x8KChJZT1TZS5yZXR1cm4pJiZJZS5jYWxsKFNlKSwwKTpTZS5uZXh0KSYmIShJZT1JZS5jYWxsKFNlLGVlWzFdKSkuZG9uZSlyZXR1cm4gSWU7c3dpdGNoKFNl''@;'; put 'put ''PTAsSWUmJihlZT1bMiZlZVswXSxJZS52YWx1ZV0pLGVlWzBdKXtjYXNlIDA6Y2FzZSAxOkllPWVlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gTWUubGFiZWwrKyx7dmFsdWU6ZWVbMV0sZG9uZTohMX07Y2FzZSA1Ok1lLmxhYmVsKyssU2U9ZWVbMV0sZWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzplZT1N''@;'; put 'put ''ZS5vcHMucG9wKCksTWUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKEllPShJZT1NZS50cnlzKS5sZW5ndGg+MCYmSWVbSWUubGVuZ3RoLTFdKXx8NiE9PWVlWzBdJiYyIT09ZWVbMF0pKXtNZT0wO2NvbnRpbnVlfWlmKDM9PT1lZVswXSYmKCFJZXx8ZWVbMV0+SWVbMF0mJmVl''@;'; put 'put ''WzFdPEllWzNdKSl7TWUubGFiZWw9ZWVbMV07YnJlYWt9aWYoNj09PWVlWzBdJiZNZS5sYWJlbDxJZVsxXSl7TWUubGFiZWw9SWVbMV0sSWU9ZWU7YnJlYWt9aWYoSWUmJk1lLmxhYmVsPEllWzJdKXtNZS5sYWJlbD1JZVsyXSxNZS5vcHMucHVzaChlZSk7YnJlYWt9SWVbMl0mJk1lLm9wcy5w''@;'; put 'put ''b3AoKSxNZS50cnlzLnBvcCgpO2NvbnRpbnVlfWVlPUFlLmNhbGwodmUsTWUpfWNhdGNoKG5lKXtlZT1bNixuZV0sU2U9MH1maW5hbGx5e2tlPUllPTB9aWYoNSZlZVswXSl0aHJvdyBlZVsxXTtyZXR1cm57dmFsdWU6ZWVbMF0/ZWVbMV06dm9pZCAwLGRvbmU6ITB9fShbTyx6XSl9fX07T2Jq''@;'; put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuQXV0aE1hbmFnZXI9dm9pZCAwO3ZhciBXPWooMzkwMCksTj1qKDU5MjgpLHRlPWooMTE3MCksSz1qKDU0MTgpLEo9aig0NTgyKSxzZT1qKDY1NDcpLG9lPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdmUoQWUsa2Us''@;'; put 'put ''U2UsSWUpe3ZhciBUZT10aGlzO3RoaXMuc2VydmVyVXJsPUFlLHRoaXMuc2VydmVyVHlwZT1rZSx0aGlzLnJlcXVlc3RDbGllbnQ9U2UsdGhpcy5sb2dpbkNhbGxiYWNrPUllLHRoaXMudXNlck5hbWU9IiIsdGhpcy51c2VyTG9uZ05hbWU9IiIsdGhpcy5yZWRpcmVjdGVkTG9naW5Vcmw9Ii9T''@;'; put 'put ''QVNMb2dvbi9ob21lIix0aGlzLmV4dHJhY3RVc2VyTmFtZT1mdW5jdGlvbihNZSl7c3dpdGNoKFRlLnNlcnZlclR5cGUpe2Nhc2UgVy5TZXJ2ZXJUeXBlLlNhc1ZpeWE6cmV0dXJuIG51bGw9PU1lP3ZvaWQgMDpNZS5pZDtjYXNlIFcuU2VydmVyVHlwZS5TYXM5OnJldHVybiIiO2Nhc2UgVy5T''@;'; put 'put ''ZXJ2ZXJUeXBlLlNhc2pzOnJldHVybiBudWxsPT1NZT92b2lkIDA6TWUudXNlcm5hbWU7ZGVmYXVsdDpyZXR1cm4gcmUuZXJyb3IoIlNlcnZlciBUeXBlIG5vdCBmb3VuZCBpbiBleHRyYWN0VXNlck5hbWUgZnVuY3Rpb24iKSwiIn19LHRoaXMuZXh0cmFjdFVzZXJMb25nTmFtZT1mdW5jdGlv''@;'; put 'put ''bihNZSl7c3dpdGNoKFRlLnNlcnZlclR5cGUpe2Nhc2UgVy5TZXJ2ZXJUeXBlLlNhc1ZpeWE6cmV0dXJuIG51bGw9PU1lP3ZvaWQgMDpNZS5uYW1lO2Nhc2UgVy5TZXJ2ZXJUeXBlLlNhczk6cmV0dXJuKDAsdGUuZXh0cmFjdFVzZXJMb25nTmFtZVNhczkpKE1lKTtjYXNlIFcuU2VydmVyVHlw''@;'; put 'put ''ZS5TYXNqczpyZXR1cm4gbnVsbD09TWU/dm9pZCAwOk1lLmRpc3BsYXlOYW1lO2RlZmF1bHQ6cmV0dXJuIHJlLmVycm9yKCJTZXJ2ZXIgVHlwZSBub3QgZm91bmQgaW4gZXh0cmFjdFVzZXJOYW1lIGZ1bmN0aW9uIiksIiJ9fSx0aGlzLnNldExvZ2luVXJsPWZ1bmN0aW9uKE1lKXt2YXIgaGU9''@;'; put 'put ''TWVbMV0ucmVwbGFjZSgvXD8uKi8sIiIpO2lmKCIvIj09PWhlWzBdKXtoZT1oZS5zdWJzdHIoMSk7dmFyIE89VGUuc2VydmVyVXJsPyIiLmNvbmNhdChUZS5zZXJ2ZXJVcmwsIi8iKS5jb25jYXQoaGUpOiIiLmNvbmNhdChoZSk7VGUubG9naW5Vcmw9VGUuc2VydmVyVHlwZT09PVcuU2VydmVy''@;'; put 'put ''VHlwZS5TYXNWaXlhP086Ty5yZXBsYWNlKCIuZG8iLCIiKX19LHRoaXMubG9naW5Vcmw9Ii9TQVNMb2dvbi9sb2dpbiIsdGhpcy5sb2dvdXRVcmw9dGhpcy5zZXJ2ZXJUeXBlPT09Vy5TZXJ2ZXJUeXBlLlNhczk/Ii9TQVNMb2dvbi9sb2dvdXQ/Ijp0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZl''@;'; put 'put ''clR5cGUuU2FzVml5YT8iL1NBU0xvZ29uL2xvZ291dC5kbz8iOiIvU0FTTG9nb24vbG9nb3V0In1yZXR1cm4gdmUucHJvdG90eXBlLnJlZGlyZWN0ZWRMb2dJbj1mdW5jdGlvbihBZSl7dmFyIGtlPUFlLm9uTG9nZ2VkT3V0O3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgU2UsVGUsTWUsaGUsTyx6LGVlLG5lLHg7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihQKXtzd2l0Y2goUC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuZmV0Y2hVc2VyTmFtZSgpXTtjYXNlIDE6cmV0dXJuIFNlPVAuc2VudCgpLFRlPVNlLnVzZXJOYW1lLE1lPVNlLnVzZXJMb25n''@;'; put 'put ''TmFtZSxTZS5pc0xvZ2dlZEluP1s0LHRoaXMubG9naW5DYWxsYmFjaygpXTpbMywzXTtjYXNlIDI6cmV0dXJuIFAuc2VudCgpLFsyLHtpc0xvZ2dlZEluOiEwLHVzZXJOYW1lOlRlLHVzZXJMb25nTmFtZTpNZX1dO2Nhc2UgMzpyZXR1cm5bNCwoMCxLLm9wZW5XZWJQYWdlKSh0aGlzLnJlZGly''@;'; put 'put ''ZWN0ZWRMb2dpblVybCwiU0FTTG9nb24iLHt3aWR0aDo1MDAsaGVpZ2h0OjYwMH0sa2UpXTtjYXNlIDQ6cmV0dXJuKGhlPVAuc2VudCgpKT90aGlzLnNlcnZlclR5cGUhPT1XLlNlcnZlclR5cGUuU2FzVml5YT9bMyw2XTpbNCwoMCxzZS52ZXJpZnlTYXNWaXlhTG9naW4pKGhlKV06WzIse2lz''@;'; put 'put ''TG9nZ2VkSW46ITEsdXNlck5hbWU6IiIsdXNlckxvbmdOYW1lOiIifV07Y2FzZSA1OnJldHVybiB6PVAuc2VudCgpLFszLDhdO2Nhc2UgNjpyZXR1cm5bNCwoMCxKLnZlcmlmeVNhczlMb2dpbikoaGUpXTtjYXNlIDc6ej1QLnNlbnQoKSxQLmxhYmVsPTg7Y2FzZSA4OnJldHVybiBPPXouaXNM''@;'; put 'put ''b2dnZWRJbixoZS5jbG9zZSgpLE8/dGhpcy5zZXJ2ZXJUeXBlIT09Vy5TZXJ2ZXJUeXBlLlNhczk/WzMsMTBdOls0LHRoaXMucGVyZm9ybUNBU1NlY3VyaXR5Q2hlY2soKV06WzMsMTNdO2Nhc2UgOTpQLnNlbnQoKSxQLmxhYmVsPTEwO2Nhc2UgMTA6cmV0dXJuWzQsdGhpcy5mZXRjaFVzZXJO''@;'; put 'put ''YW1lKCldO2Nhc2UgMTE6cmV0dXJuIGVlPVAuc2VudCgpLG5lPWVlLnVzZXJOYW1lLHg9ZWUudXNlckxvbmdOYW1lLFs0LHRoaXMubG9naW5DYWxsYmFjaygpXTtjYXNlIDEyOnJldHVybiBQLnNlbnQoKSxbMix7aXNMb2dnZWRJbjohMCx1c2VyTmFtZTpuZSx1c2VyTG9uZ05hbWU6eH1dO2Nh''@;'; put 'put ''c2UgMTM6cmV0dXJuWzIse2lzTG9nZ2VkSW46ITEsdXNlck5hbWU6IiIsdXNlckxvbmdOYW1lOiIifV19fSl9KX0sdmUucHJvdG90eXBlLmxvZ0luPWZ1bmN0aW9uKEFlLGtlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFNlLEllLE1lLGhlLE8seixlZSxu''@;'; put 'put ''ZTtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuIFNlPXtfc2VydmljZToiZGVmYXVsdCIsdXNlcm5hbWU6QWUscGFzc3dvcmQ6a2V9LHRoaXMudXNlck5hbWU9IiIsdGhpcy51c2VyTG9uZ05hbWU9IiIsWzQsdGhpcy5jaGVja1Nlc3Npb24o''@;'; put 'put ''KV07Y2FzZSAxOnJldHVybiBJZT14LnNlbnQoKSxNZT1JZS5sb2dpbkZvcm0saGU9SWUudXNlckxvbmdOYW1lLEllLmlzTG9nZ2VkSW4/WzQsdGhpcy5sb2dpbkNhbGxiYWNrKCldOlszLDNdO2Nhc2UgMjpyZXR1cm4geC5zZW50KCksdGhpcy51c2VyTmFtZT1TZS51c2VybmFtZSx0aGlzLnVz''@;'; put 'put ''ZXJMb25nTmFtZT1oZSxbMix7aXNMb2dnZWRJbjohMCx1c2VyTmFtZTp0aGlzLnVzZXJOYW1lLHVzZXJMb25nTmFtZTp0aGlzLnVzZXJMb25nTmFtZX1dO2Nhc2UgMzpyZXR1cm5bNCx0aGlzLnNlbmRMb2dpblJlcXVlc3QoTWUsU2UpXTtjYXNlIDQ6cmV0dXJuIE89eC5zZW50KCksKHo9ZGUo''@;'; put 'put ''dGhpcy5zZXJ2ZXJUeXBlLE8pKT9bMyw5XTpjZShPKT9bNCx0aGlzLmdldExvZ2luRm9ybShPKV06WzMsN107Y2FzZSA1OnJldHVybiBlZT14LnNlbnQoKSxbNCx0aGlzLnNlbmRMb2dpblJlcXVlc3QoZWUsU2UpXTtjYXNlIDY6Tz14LnNlbnQoKSx4LmxhYmVsPTc7Y2FzZSA3OnJldHVybls0''@;'; put 'put ''LHRoaXMuY2hlY2tTZXNzaW9uKCldO2Nhc2UgODpuZT14LnNlbnQoKSx6PW5lLmlzTG9nZ2VkSW4sdGhpcy51c2VyTG9uZ05hbWU9bmUudXNlckxvbmdOYW1lLHgubGFiZWw9OTtjYXNlIDk6cmV0dXJuIHo/dGhpcy5zZXJ2ZXJUeXBlIT09Vy5TZXJ2ZXJUeXBlLlNhczk/WzMsMTFdOls0LHRo''@;'; put 'put ''aXMucGVyZm9ybUNBU1NlY3VyaXR5Q2hlY2soKV06WzMsMTJdO2Nhc2UgMTA6eC5zZW50KCkseC5sYWJlbD0xMTtjYXNlIDExOnRoaXMubG9naW5DYWxsYmFjaygpLHRoaXMudXNlck5hbWU9U2UudXNlcm5hbWUseC5sYWJlbD0xMjtjYXNlIDEyOnJldHVyblsyLHtpc0xvZ2dlZEluOnosdXNl''@;'; put 'put ''ck5hbWU6dGhpcy51c2VyTmFtZSx1c2VyTG9uZ05hbWU6dGhpcy51c2VyTG9uZ05hbWV9XX19KX0pfSx2ZS5wcm90b3R5cGUucGVyZm9ybUNBU1NlY3VyaXR5Q2hlY2s9ZnVuY3Rpb24oKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEFlO3JldHVybiBZKHRo''@;'; put 'put ''aXMsZnVuY3Rpb24oa2Upe3N3aXRjaChrZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBBZT0iIi5jb25jYXQodGhpcy5zZXJ2ZXJVcmwsIi9TQVNTdG9yZWRQcm9jZXNzL2pfc3ByaW5nX2Nhc19zZWN1cml0eV9jaGVjayIpLFs0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoIi9TQVNMb2dvbi9sb2dp''@;'; put 'put ''bj9zZXJ2aWNlPSIuY29uY2F0KEFlKSx2b2lkIDApXTtjYXNlIDE6cmV0dXJuIGtlLnNlbnQoKSxbMl19fSl9KX0sdmUucHJvdG90eXBlLnNlbmRMb2dpblJlcXVlc3Q9ZnVuY3Rpb24oQWUsa2Upe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVGUsTWU7cmV0''@;'; put 'put ''dXJuIFkodGhpcyxmdW5jdGlvbihoZSl7c3dpdGNoKGhlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIHRoaXMuc2VydmVyVHlwZSE9PVcuU2VydmVyVHlwZS5TYXNqcz9bMywyXTpbNCx0aGlzLnJlcXVlc3RDbGllbnQucG9zdCh0aGlzLmxvZ2luVXJsLHt1c2VybmFtZTprZS51c2VybmFtZSxwYXNz''@;'; put 'put ''d29yZDprZS5wYXNzd29yZH0sdm9pZCAwKV07Y2FzZSAxOmNhc2UgMzpyZXR1cm5bMixoZS5zZW50KCkucmVzdWx0XTtjYXNlIDI6Zm9yKFRlIGluIEFlKWtlW1RlXT1BZVtUZV07cmV0dXJuIE1lPSgwLE4uc2VyaWFsaXplKShrZSksWzQsdGhpcy5yZXF1ZXN0Q2xpZW50LnBvc3QodGhpcy5s''@;'; put 'put ''b2dpblVybCxNZSx2b2lkIDAsInRleHQvcGxhaW4iLHsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIixBY2NlcHQ6IiovKiJ9KV19fSl9KX0sdmUucHJvdG90eXBlLmNoZWNrU2Vzc2lvbj1mdW5jdGlvbigpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2''@;'; put 'put ''b2lkIDAsZnVuY3Rpb24oKXt2YXIgQWUsa2UsU2UsSWUsVGU7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihNZSl7c3dpdGNoKE1lLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5mZXRjaFVzZXJOYW1lKCldO2Nhc2UgMTpyZXR1cm4gQWU9TWUuc2VudCgpLFNlPUFlLnVzZXJOYW1lLEllPUFl''@;'; put 'put ''LnVzZXJMb25nTmFtZSxUZT1udWxsLChrZT1BZS5pc0xvZ2dlZEluKT9bMyw0XTpbNCx0aGlzLmxvZ091dCgpXTtjYXNlIDI6cmV0dXJuIE1lLnNlbnQoKSxbNCx0aGlzLmdldE5ld0xvZ2luRm9ybSgpXTtjYXNlIDM6VGU9TWUuc2VudCgpLE1lLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyLFBy''@;'; put 'put ''b21pc2UucmVzb2x2ZSh7aXNMb2dnZWRJbjprZSx1c2VyTmFtZTpTZSx1c2VyTG9uZ05hbWU6SWUsbG9naW5Gb3JtOlRlfSldfX0pfSl9LHZlLnByb3RvdHlwZS5nZXROZXdMb2dpbkZvcm09ZnVuY3Rpb24oKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEFl''@;'; put 'put ''O3JldHVybiBZKHRoaXMsZnVuY3Rpb24oa2Upe3N3aXRjaChrZS5sYWJlbCl7Y2FzZSAwOnJldHVybiB0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzanM/WzIsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCgiLyIsdm9pZCAwKS50aGVuKGZ1bmN0aW9uKFNlKXt2YXIgSWUsTWU9bnVs''@;'; put 'put ''bD09PShJZT0vPHNjcmlwdD5kb2N1bWVudC5jb29raWUgPSAnKFhTUkYtVE9LRU49Lio7IE1heC1BZ2U9ODY0MDA7IFNhbWVTaXRlPVN0cmljdDsgUGF0aD1cLzspJzxcL3NjcmlwdD4vLmV4ZWMoU2UucmVzdWx0KSl8fHZvaWQgMD09PUllP3ZvaWQgMDpJZVsxXTtNZSYmKGRvY3VtZW50LmNv''@;'; put 'put ''b2tpZT1NZSl9KV06WzQsdGhpcy5yZXF1ZXN0Q2xpZW50LmdldCh0aGlzLmxvZ2luVXJsLnJlcGxhY2UoIi5kbyIsIiIpLHZvaWQgMCwidGV4dC9wbGFpbiIpXTtjYXNlIDE6cmV0dXJuIEFlPWtlLnNlbnQoKS5yZXN1bHQsWzQsdGhpcy5nZXRMb2dpbkZvcm0oQWUpXTtjYXNlIDI6cmV0dXJu''@;'; put 'put ''WzIsa2Uuc2VudCgpXX19KX0pfSx2ZS5wcm90b3R5cGUuZmV0Y2hVc2VyTmFtZT1mdW5jdGlvbigpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgQWUsa2UsU2U7cmV0dXJuIFkodGhpcyxmdW5jdGlvbihJZSl7c3dpdGNoKEllLmxhYmVsKXtjYXNlIDA6cmV0''@;'; put 'put ''dXJuIEFlPSIiLmNvbmNhdCh0aGlzLnNlcnZlclVybCx0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzVml5YT8iL2lkZW50aXRpZXMvdXNlcnMvQGN1cnJlbnRVc2VyIjp0aGlzLnNlcnZlclR5cGU9PT1XLlNlcnZlclR5cGUuU2FzOT8iL1NBU1N0b3JlZFByb2Nlc3MiOiIvU0FT''@;'; put 'put ''anNBcGkvc2Vzc2lvbiIpLFs0LHRoaXMucmVxdWVzdENsaWVudC5nZXQoQWUsdm9pZCAwLCJ0ZXh0L3BsYWluIikuY2F0Y2goZnVuY3Rpb24oVGUpe3JldHVybntyZXN1bHQ6ImF1dGhFcnIifX0pXTtjYXNlIDE6cmV0dXJuIGtlPUllLnNlbnQoKS5yZXN1bHQsKFNlPSJhdXRoRXJyIiE9PWtl''@;'; put 'put ''KT9bMywzXTpbNCx0aGlzLmxvZ091dCgpXTtjYXNlIDI6cmV0dXJuIEllLnNlbnQoKSxbMix7aXNMb2dnZWRJbjpTZSx1c2VyTmFtZToiIix1c2VyTG9uZ05hbWU6IiJ9XTtjYXNlIDM6cmV0dXJuWzIse2lzTG9nZ2VkSW46U2UsdXNlck5hbWU6dGhpcy5leHRyYWN0VXNlck5hbWUoa2UpLHVz''@;'; put 'put ''ZXJMb25nTmFtZTp0aGlzLmV4dHJhY3RVc2VyTG9uZ05hbWUoa2UpfV19fSl9KX0sdmUucHJvdG90eXBlLmdldExvZ2luRm9ybT1mdW5jdGlvbihBZSl7dmFyIGtlPS88Zm9ybS4rYWN0aW9uPSIoLipMb2dvblteIl0qKS4qPi8uZXhlYyhBZSksU2U9e307aWYoa2UmJmtlLmxlbmd0aCl7dGhp''@;'; put 'put ''cy5zZXRMb2dpblVybChrZSk7dmFyIEllPUFlLm1hdGNoKC88aW5wdXQuKiJoaWRkZW4iW14+XSo+L2cpO0llJiZJZS5mb3JFYWNoKGZ1bmN0aW9uKFRlKXt2YXIgTWU9VGUubWF0Y2goL25hbWU9IihbXiJdKikiXHN2YWx1ZT0iKFteIl0qKS8pO01lJiZNZS5sZW5ndGgmJihTZVtNZVsxXV09''@;'; put 'put ''TWVbMl0pfSl9cmV0dXJuIE9iamVjdC5rZXlzKFNlKS5sZW5ndGg/U2U6bnVsbH0sdmUucHJvdG90eXBlLmxvZ091dD1mdW5jdGlvbigpe3JldHVybiBhZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXtyZXR1cm4gWSh0aGlzLGZ1bmN0aW9uKEFlKXtyZXR1cm4gdGhpcy5yZXF1ZXN0''@;'; put 'put ''Q2xpZW50LmNsZWFyQ3NyZlRva2VucygpLFsyLHRoaXMucmVxdWVzdENsaWVudC5nZXQodGhpcy5sb2dvdXRVcmwsdm9pZCAwKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KV19KX0pfSx2ZX0oKTtRLkF1dGhNYW5hZ2VyPW9lO3ZhciBjZT1mdW5jdGlvbih2ZSl7cmV0dXJuL0FuIGVycm9y''@;'; put 'put ''IG9jY3VycmVkIHdoaWxlIHRoZSBzeXN0ZW0gd2FzIHZlcmlmeWluZyB5b3VyIGNyZWRlbnRpYWxzLiBQbGVhc2UgZW50ZXIgeW91ciBjcmVkZW50aWFscyBhZ2Fpbi4vZ20udGVzdCh2ZSl9LGRlPWZ1bmN0aW9uKHZlLEFlKXtyZXR1cm4gdmU9PT1XLlNlcnZlclR5cGUuU2FzanM/bnVsbD09''@;'; put 'put ''QWU/dm9pZCAwOkFlLmxvZ2dlZGluOi9Zb3UgaGF2ZSBzaWduZWQgaW4vZ20udGVzdChBZSl9fSw1NzpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oVyxOLHRlLEspe3JldHVybiBuZXcodGV8fCh0ZT1Qcm9taXNlKSko''@;'; put 'put ''ZnVuY3Rpb24oSixzZSl7ZnVuY3Rpb24gb2UodmUpe3RyeXtkZShLLm5leHQodmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBjZSh2ZSl7dHJ5e2RlKEsudGhyb3codmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBkZSh2ZSl7dmFyIEFlO3ZlLmRvbmU/Sih2ZS52YWx1ZSk6''@;'; put 'put ''KEFlPXZlLnZhbHVlLEFlIGluc3RhbmNlb2YgdGU/QWU6bmV3IHRlKGZ1bmN0aW9uKGtlKXtrZShBZSl9KSkudGhlbihvZSxjZSl9ZGUoKEs9Sy5hcHBseShXLE58fFtdKSkubmV4dCgpKX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihXLE4pe3ZhciB0ZSxLLEosc2Us''@;'; put 'put ''b2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSlswXSl0aHJvdyBKWzFdO3JldHVybiBKWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHNlPXtuZXh0OmNlKDApLHRocm93OmNlKDEpLHJldHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHNlW1N5bWJvbC5p''@;'; put 'put ''dGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHNlO2Z1bmN0aW9uIGNlKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe3JldHVybiBmdW5jdGlvbihBZSl7aWYodGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRy''@;'; put 'put ''eXtpZih0ZT0xLEsmJihKPTImQWVbMF0/Sy5yZXR1cm46QWVbMF0/Sy50aHJvd3x8KChKPUsucmV0dXJuKSYmSi5jYWxsKEspLDApOksubmV4dCkmJiEoSj1KLmNhbGwoSyxBZVsxXSkpLmRvbmUpcmV0dXJuIEo7c3dpdGNoKEs9MCxKJiYoQWU9WzImQWVbMF0sSi52YWx1ZV0pLEFlWzBdKXtj''@;'; put 'put ''YXNlIDA6Y2FzZSAxOko9QWU7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJlbCsrLHt2YWx1ZTpBZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxLPUFlWzFdLEFlPVswXTtjb250aW51ZTtjYXNlIDc6QWU9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVs''@;'; put 'put ''dDppZighKChKPShKPW9lLnRyeXMpLmxlbmd0aD4wJiZKW0oubGVuZ3RoLTFdKXx8NiE9PUFlWzBdJiYyIT09QWVbMF0pKXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1BZVswXSYmKCFKfHxBZVsxXT5KWzBdJiZBZVsxXTxKWzNdKSl7b2UubGFiZWw9QWVbMV07YnJlYWt9aWYoNj09PUFlWzBdJiZv''@;'; put 'put ''ZS5sYWJlbDxKWzFdKXtvZS5sYWJlbD1KWzFdLEo9QWU7YnJlYWt9aWYoSiYmb2UubGFiZWw8SlsyXSl7b2UubGFiZWw9SlsyXSxvZS5vcHMucHVzaChBZSk7YnJlYWt9SlsyXSYmb2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWV9QWU9Ti5jYWxsKFcsb2UpfWNhdGNoKGtlKXtB''@;'; put 'put ''ZT1bNixrZV0sSz0wfWZpbmFsbHl7dGU9Sj0wfWlmKDUmQWVbMF0pdGhyb3cgQWVbMV07cmV0dXJue3ZhbHVlOkFlWzBdP0FlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2RlLHZlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2V0QWNjZXNz''@;'; put 'put ''VG9rZW5Gb3JTYXNqcz12b2lkIDA7dmFyIFk9aig5Nzc4KTtRLmdldEFjY2Vzc1Rva2VuRm9yU2FzanM9ZnVuY3Rpb24oVyxOLHRlKXtyZXR1cm4gcmUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oSil7c3dpdGNoKEoubGFiZWwpe2Nhc2Ug''@;'; put 'put ''MDpyZXR1cm5bNCxXLnBvc3QoIi9TQVNqc0FwaS9hdXRoL3Rva2VuIix7Y2xpZW50SWQ6Tixjb2RlOnRlfSx2b2lkIDApLnRoZW4oZnVuY3Rpb24oc2Upe3ZhciBvZT1zZS5yZXN1bHQ7cmV0dXJue2FjY2Vzc190b2tlbjpvZS5hY2Nlc3NUb2tlbixyZWZyZXNoX3Rva2VuOm9lLnJlZnJlc2hU''@;'; put 'put ''b2tlbn19KS5jYXRjaChmdW5jdGlvbihzZSl7dGhyb3coMCxZLnByZWZpeE1lc3NhZ2UpKHNlLCJFcnJvciB3aGlsZSBnZXR0aW5nIGFjY2VzcyB0b2tlbi4gIil9KV07Y2FzZSAxOnJldHVyblsyLEouc2VudCgpXX19KX0pfX0sMzU2OTpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3Zh''@;'; put 'put ''ciByZT1qKDg3NjQpLkJ1ZmZlcixhZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odGUsSyxKLHNlKXtyZXR1cm4gbmV3KEp8fChKPVByb21pc2UpKShmdW5jdGlvbihvZSxjZSl7ZnVuY3Rpb24gZGUoa2Upe3RyeXtBZShzZS5uZXh0KGtlKSl9Y2F0Y2goU2Upe2NlKFNlKX19ZnVu''@;'; put 'put ''Y3Rpb24gdmUoa2Upe3RyeXtBZShzZS50aHJvdyhrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIEFlKGtlKXt2YXIgU2U7a2UuZG9uZT9vZShrZS52YWx1ZSk6KFNlPWtlLnZhbHVlLFNlIGluc3RhbmNlb2YgSj9TZTpuZXcgSihmdW5jdGlvbihJZSl7SWUoU2UpfSkpLnRoZW4oZGUs''@;'; put 'put ''dmUpfUFlKChzZT1zZS5hcHBseSh0ZSxLfHxbXSkpLm5leHQoKSl9KX0sWT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0ZSxLKXt2YXIgSixzZSxvZSxjZSxkZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvZVswXSl0aHJvdyBvZVsxXTtyZXR1cm4gb2VbMV19LHRy''@;'; put 'put ''eXM6W10sb3BzOltdfTtyZXR1cm4gY2U9e25leHQ6dmUoMCksdGhyb3c6dmUoMSkscmV0dXJuOnZlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoY2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksY2U7ZnVuY3Rpb24gdmUoQWUpe3JldHVybiBmdW5j''@;'; put 'put ''dGlvbihrZSl7cmV0dXJuIGZ1bmN0aW9uKFNlKXtpZihKKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2RlOyl0cnl7aWYoSj0xLHNlJiYob2U9MiZTZVswXT9zZS5yZXR1cm46U2VbMF0/c2UudGhyb3d8fCgob2U9c2UucmV0dXJu''@;'; put 'put ''KSYmb2UuY2FsbChzZSksMCk6c2UubmV4dCkmJiEob2U9b2UuY2FsbChzZSxTZVsxXSkpLmRvbmUpcmV0dXJuIG9lO3N3aXRjaChzZT0wLG9lJiYoU2U9WzImU2VbMF0sb2UudmFsdWVdKSxTZVswXSl7Y2FzZSAwOmNhc2UgMTpvZT1TZTticmVhaztjYXNlIDQ6cmV0dXJuIGRlLmxhYmVsKyss''@;'; put 'put ''e3ZhbHVlOlNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpkZS5sYWJlbCsrLHNlPVNlWzFdLFNlPVswXTtjb250aW51ZTtjYXNlIDc6U2U9ZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvZT0ob2U9ZGUudHJ5cykubGVuZ3RoPjAmJm9lW29lLmxlbmd0aC0x''@;'; put 'put ''XSl8fDYhPT1TZVswXSYmMiE9PVNlWzBdKSl7ZGU9MDtjb250aW51ZX1pZigzPT09U2VbMF0mJighb2V8fFNlWzFdPm9lWzBdJiZTZVsxXTxvZVszXSkpe2RlLmxhYmVsPVNlWzFdO2JyZWFrfWlmKDY9PT1TZVswXSYmZGUubGFiZWw8b2VbMV0pe2RlLmxhYmVsPW9lWzFdLG9lPVNlO2JyZWFr''@;'; put 'put ''fWlmKG9lJiZkZS5sYWJlbDxvZVsyXSl7ZGUubGFiZWw9b2VbMl0sZGUub3BzLnB1c2goU2UpO2JyZWFrfW9lWzJdJiZkZS5vcHMucG9wKCksZGUudHJ5cy5wb3AoKTtjb250aW51ZX1TZT1LLmNhbGwodGUsZGUpfWNhdGNoKEllKXtTZT1bNixJZV0sc2U9MH1maW5hbGx5e0o9b2U9MH1pZig1''@;'; put 'put ''JlNlWzBdKXRocm93IFNlWzFdO3JldHVybnt2YWx1ZTpTZVswXT9TZVsxXTp2b2lkIDAsZG9uZTohMH19KFtBZSxrZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldEFjY2Vzc1Rva2VuRm9yVml5YT12b2lkIDA7dmFyIFc9aig5Nzc4''@;'; put 'put ''KSxOPWooMTM5NSk7US5nZXRBY2Nlc3NUb2tlbkZvclZpeWE9ZnVuY3Rpb24odGUsSyxKLHNlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIG9lLGNlLGRlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVy''@;'; put 'put ''biBvZT12b2lkIDA9PT1yZT9idG9hKEsrIjoiK0opOnJlLmZyb20oSysiOiIrSikudG9TdHJpbmcoImJhc2U2NCIpLGNlPXtBdXRob3JpemF0aW9uOiJCYXNpYyAiK29lLEFjY2VwdDoiYXBwbGljYXRpb24vanNvbiJ9LGRlPW5ldyBVUkxTZWFyY2hQYXJhbXMoe2dyYW50X3R5cGU6ImF1dGhv''@;'; put 'put ''cml6YXRpb25fY29kZSIsY29kZTpzZX0pLFs0LHRlLnBvc3QoIi9TQVNMb2dvbi9vYXV0aC90b2tlbiIsZGUsdm9pZCAwLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiLGNlKS50aGVuKGZ1bmN0aW9uKEFlKXtyZXR1cm4gQWUucmVzdWx0fSkuY2F0Y2goZnVuY3Rpb24oQWUp''@;'; put 'put ''e3Rocm93IEFlIGluc3RhbmNlb2YgTi5DZXJ0aWZpY2F0ZUVycm9yP0FlOigwLFcucHJlZml4TWVzc2FnZSkoQWUsIkVycm9yIHdoaWxlIGdldHRpbmcgYWNjZXNzIHRva2VuLiAiKX0pXTtjYXNlIDE6cmV0dXJuWzIsdmUuc2VudCgpXX19KX0pfX0sNzA0OmZ1bmN0aW9uKFUsUSxqKXsidXNl''@;'; put 'put ''IHN0cmljdCI7dmFyIHJlPWooNDE1NSksYWU9aig1MTA4KSxZPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihzZSxvZSxjZSxkZSl7cmV0dXJuIG5ldyhjZXx8KGNlPVByb21pc2UpKShmdW5jdGlvbih2ZSxBZSl7ZnVuY3Rpb24ga2UoVGUpe3RyeXtJZShkZS5uZXh0KFRlKSl9Y2F0''@;'; put 'put ''Y2goTWUpe0FlKE1lKX19ZnVuY3Rpb24gU2UoVGUpe3RyeXtJZShkZS50aHJvdyhUZSkpfWNhdGNoKE1lKXtBZShNZSl9fWZ1bmN0aW9uIEllKFRlKXt2YXIgTWU7VGUuZG9uZT92ZShUZS52YWx1ZSk6KE1lPVRlLnZhbHVlLE1lIGluc3RhbmNlb2YgY2U/TWU6bmV3IGNlKGZ1bmN0aW9uKGhl''@;'; put 'put ''KXtoZShNZSl9KSkudGhlbihrZSxTZSl9SWUoKGRlPWRlLmFwcGx5KHNlLG9lfHxbXSkpLm5leHQoKSl9KX0sVz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihzZSxvZSl7dmFyIGNlLGRlLHZlLEFlLGtlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnZlWzBdKXRocm93''@;'; put 'put ''IHZlWzFdO3JldHVybiB2ZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBBZT17bmV4dDpTZSgwKSx0aHJvdzpTZSgxKSxyZXR1cm46U2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihBZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxBZTtmdW5j''@;'; put 'put ''dGlvbiBTZShJZSl7cmV0dXJuIGZ1bmN0aW9uKFRlKXtyZXR1cm4gZnVuY3Rpb24oTWUpe2lmKGNlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2tlOyl0cnl7aWYoY2U9MSxkZSYmKHZlPTImTWVbMF0/ZGUucmV0dXJuOk1lWzBd''@;'; put 'put ''P2RlLnRocm93fHwoKHZlPWRlLnJldHVybikmJnZlLmNhbGwoZGUpLDApOmRlLm5leHQpJiYhKHZlPXZlLmNhbGwoZGUsTWVbMV0pKS5kb25lKXJldHVybiB2ZTtzd2l0Y2goZGU9MCx2ZSYmKE1lPVsyJk1lWzBdLHZlLnZhbHVlXSksTWVbMF0pe2Nhc2UgMDpjYXNlIDE6dmU9TWU7YnJlYWs7''@;'; put 'put ''Y2FzZSA0OnJldHVybiBrZS5sYWJlbCsrLHt2YWx1ZTpNZVsxXSxkb25lOiExfTtjYXNlIDU6a2UubGFiZWwrKyxkZT1NZVsxXSxNZT1bMF07Y29udGludWU7Y2FzZSA3Ok1lPWtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgodmU9KHZlPWtlLnRyeXMp''@;'; put 'put ''Lmxlbmd0aD4wJiZ2ZVt2ZS5sZW5ndGgtMV0pfHw2IT09TWVbMF0mJjIhPT1NZVswXSkpe2tlPTA7Y29udGludWV9aWYoMz09PU1lWzBdJiYoIXZlfHxNZVsxXT52ZVswXSYmTWVbMV08dmVbM10pKXtrZS5sYWJlbD1NZVsxXTticmVha31pZig2PT09TWVbMF0mJmtlLmxhYmVsPHZlWzFdKXtr''@;'; put 'put ''ZS5sYWJlbD12ZVsxXSx2ZT1NZTticmVha31pZih2ZSYma2UubGFiZWw8dmVbMl0pe2tlLmxhYmVsPXZlWzJdLGtlLm9wcy5wdXNoKE1lKTticmVha312ZVsyXSYma2Uub3BzLnBvcCgpLGtlLnRyeXMucG9wKCk7Y29udGludWV9TWU9b2UuY2FsbChzZSxrZSl9Y2F0Y2goaGUpe01lPVs2LGhl''@;'; put 'put ''XSxkZT0wfWZpbmFsbHl7Y2U9dmU9MH1pZig1Jk1lWzBdKXRocm93IE1lWzFdO3JldHVybnt2YWx1ZTpNZVswXT9NZVsxXTp2b2lkIDAsZG9uZTohMH19KFtJZSxUZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmdldFRva2Vucz12b2lk''@;'; put 'put ''IDA7dmFyIE49aig2Nzk5KSx0ZT1qKDM5MDApLEs9aigzNjYpLEo9aigyNDkpO1EuZ2V0VG9rZW5zPWZ1bmN0aW9uKHNlLG9lLGNlKXtyZXR1cm4gdm9pZCAwPT09Y2UmJihjZT10ZS5TZXJ2ZXJUeXBlLlNhc1ZpeWEpLFkodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGRlLHZl''@;'; put 'put ''LEFlLGtlLFNlLFRlLE1lO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oaGUpe3N3aXRjaChoZS5sYWJlbCl7Y2FzZSAwOmlmKGRlPXJlLmxvZ2dlcnx8YWUsQWU9b2UucmVmcmVzaF90b2tlbixrZT1vZS5jbGllbnQsU2U9b2Uuc2VjcmV0LCEoMCxOLmlzQWNjZXNzVG9rZW5FeHBpcmluZykodmU9''@;'; put 'put ''b2UuYWNjZXNzX3Rva2VuKSYmISgwLE4uaXNSZWZyZXNoVG9rZW5FeHBpcmluZykoQWUpKXJldHVyblszLDVdO2lmKCgwLE4uaGFzVG9rZW5FeHBpcmVkKShBZSkpdGhyb3cgZGUuZXJyb3IoIlVuYWJsZSB0byBvYnRhaW4gbmV3IGFjY2VzcyB0b2tlbi4gWW91ciByZWZyZXNoIHRva2VuIGhh''@;'; put 'put ''cyBleHBpcmVkLiIpLG5ldyBFcnJvcigiVW5hYmxlIHRvIG9idGFpbiBuZXcgYWNjZXNzIHRva2VuLiBZb3VyIHJlZnJlc2ggdG9rZW4gaGFzIGV4cGlyZWQuIik7cmV0dXJuIGRlLmluZm8oIlJlZnJlc2hpbmcgYWNjZXNzIGFuZCByZWZyZXNoIHRva2Vucy4iKSxjZSE9PXRlLlNlcnZlclR5''@;'; put 'put ''cGUuU2FzVml5YT9bMywyXTpbNCwoMCxLLnJlZnJlc2hUb2tlbnNGb3JWaXlhKShzZSxrZSxTZSxBZSldO2Nhc2UgMTpyZXR1cm4gTWU9aGUuc2VudCgpLFszLDRdO2Nhc2UgMjpyZXR1cm5bNCwoMCxKLnJlZnJlc2hUb2tlbnNGb3JTYXNqcykoc2UsQWUpXTtjYXNlIDM6TWU9aGUuc2VudCgp''@;'; put 'put ''LGhlLmxhYmVsPTQ7Y2FzZSA0OnZlPShUZT1NZSkuYWNjZXNzX3Rva2VuLEFlPVRlLnJlZnJlc2hfdG9rZW4saGUubGFiZWw9NTtjYXNlIDU6cmV0dXJuWzIse2FjY2Vzc190b2tlbjp2ZSxyZWZyZXNoX3Rva2VuOkFlLGNsaWVudDprZSxzZWNyZXQ6U2V9XX19KX0pfX0sMTUyNzpmdW5jdGlv''@;'; put 'put ''bihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9Tik7dmFyIEs9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihXLE4pO0smJiEoImdldCJp''@;'; put 'put ''biBLPyFXLl9fZXNNb2R1bGU6Sy53cml0YWJsZXx8Sy5jb25maWd1cmFibGUpfHwoSz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSx0ZSxLKX06ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9Tiks''@;'; put 'put ''WVt0ZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxyZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJf''@;'; put 'put ''X2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShqKDI4NTEpLFEpLGFlKGooOTA5NyksUSksYWUoaig5MTY2KSxRKX0sOTA5NzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc0F1dGhvcml6ZUZvcm1SZXF1aXJl''@;'; put 'put ''ZD12b2lkIDAsUS5pc0F1dGhvcml6ZUZvcm1SZXF1aXJlZD1mdW5jdGlvbihqKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25cL29hdXRoXC9hdXRob3JpemVbXiJdKikuKj4vZ20udGVzdChqKX19LDkxNjY6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; put 'put ''KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNMb2dJblJlcXVpcmVkPXZvaWQgMCxRLmlzTG9nSW5SZXF1aXJlZD1mdW5jdGlvbihqKXtyZXR1cm4vPGZvcm0uK2FjdGlvbj0iKC4qTG9nb25bXiJdKikuKj4vZ20udGVzdChqKX19LDU0MTg6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3Ry''@;'; put 'put ''aWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKE4sdGUsSyxKKXtyZXR1cm4gbmV3KEt8fChLPVByb21pc2UpKShmdW5jdGlvbihzZSxvZSl7ZnVuY3Rpb24gY2UoQWUpe3RyeXt2ZShKLm5leHQoQWUpKX1jYXRjaChrZSl7b2Uoa2UpfX1mdW5jdGlvbiBkZShBZSl7''@;'; put 'put ''dHJ5e3ZlKEoudGhyb3coQWUpKX1jYXRjaChrZSl7b2Uoa2UpfX1mdW5jdGlvbiB2ZShBZSl7dmFyIGtlO0FlLmRvbmU/c2UoQWUudmFsdWUpOihrZT1BZS52YWx1ZSxrZSBpbnN0YW5jZW9mIEs/a2U6bmV3IEsoZnVuY3Rpb24oU2Upe1NlKGtlKX0pKS50aGVuKGNlLGRlKX12ZSgoSj1KLmFw''@;'; put 'put ''cGx5KE4sdGV8fFtdKSkubmV4dCgpKX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihOLHRlKXt2YXIgSyxKLHNlLG9lLGNlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJnNlWzBdKXRocm93IHNlWzFdO3JldHVybiBzZVsxXX0sdHJ5czpbXSxvcHM6W119O3Jl''@;'; put 'put ''dHVybiBvZT17bmV4dDpkZSgwKSx0aHJvdzpkZSgxKSxyZXR1cm46ZGUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihvZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxvZTtmdW5jdGlvbiBkZSh2ZSl7cmV0dXJuIGZ1bmN0aW9uKEFlKXtyZXR1cm4g''@;'; put 'put ''ZnVuY3Rpb24oa2Upe2lmKEspdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7Y2U7KXRyeXtpZihLPTEsSiYmKHNlPTIma2VbMF0/Si5yZXR1cm46a2VbMF0/Si50aHJvd3x8KChzZT1KLnJldHVybikmJnNlLmNhbGwoSiksMCk6Si5u''@;'; put 'put ''ZXh0KSYmIShzZT1zZS5jYWxsKEosa2VbMV0pKS5kb25lKXJldHVybiBzZTtzd2l0Y2goSj0wLHNlJiYoa2U9WzIma2VbMF0sc2UudmFsdWVdKSxrZVswXSl7Y2FzZSAwOmNhc2UgMTpzZT1rZTticmVhaztjYXNlIDQ6cmV0dXJuIGNlLmxhYmVsKysse3ZhbHVlOmtlWzFdLGRvbmU6ITF9O2Nh''@;'; put 'put ''c2UgNTpjZS5sYWJlbCsrLEo9a2VbMV0sa2U9WzBdO2NvbnRpbnVlO2Nhc2UgNzprZT1jZS5vcHMucG9wKCksY2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHNlPShzZT1jZS50cnlzKS5sZW5ndGg+MCYmc2Vbc2UubGVuZ3RoLTFdKXx8NiE9PWtlWzBdJiYyIT09a2VbMF0p''@;'; put 'put ''KXtjZT0wO2NvbnRpbnVlfWlmKDM9PT1rZVswXSYmKCFzZXx8a2VbMV0+c2VbMF0mJmtlWzFdPHNlWzNdKSl7Y2UubGFiZWw9a2VbMV07YnJlYWt9aWYoNj09PWtlWzBdJiZjZS5sYWJlbDxzZVsxXSl7Y2UubGFiZWw9c2VbMV0sc2U9a2U7YnJlYWt9aWYoc2UmJmNlLmxhYmVsPHNlWzJdKXtj''@;'; put 'put ''ZS5sYWJlbD1zZVsyXSxjZS5vcHMucHVzaChrZSk7YnJlYWt9c2VbMl0mJmNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2NvbnRpbnVlfWtlPXRlLmNhbGwoTixjZSl9Y2F0Y2goU2Upe2tlPVs2LFNlXSxKPTB9ZmluYWxseXtLPXNlPTB9aWYoNSZrZVswXSl0aHJvdyBrZVsxXTtyZXR1cm57''@;'; put 'put ''dmFsdWU6a2VbMF0/a2VbMV06dm9pZCAwLGRvbmU6ITB9fShbdmUsQWVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5vcGVuV2ViUGFnZT12b2lkIDA7dmFyIFk9aigxMjEwKSxXPXt3aWR0aDo1MDAsaGVpZ2h0OjYwMH07US5vcGVuV2Vi''@;'; put 'put ''UGFnZT1mdW5jdGlvbihOLHRlLEssSil7cmV0dXJuIHZvaWQgMD09PXRlJiYodGU9IiIpLHZvaWQgMD09PUsmJihLPVcpLHJlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzZSxvZSxjZSxkZSx2ZTtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihBZSl7c3dpdGNoKEFlLmxhYmVs''@;'; put 'put ''KXtjYXNlIDA6cmV0dXJuIHNlPUsud2lkdGgsb2U9Sy5oZWlnaHQsY2U9c2NyZWVuLndpZHRoLzItc2UvMixkZT1zY3JlZW4uaGVpZ2h0LzItb2UvMiwodmU9d2luZG93Lm9wZW4oTix0ZSwidG9vbGJhcj0wLGxvY2F0aW9uPTAsbWVudWJhcj0wLHdpZHRoPSIuY29uY2F0KHNlLCIsaGVpZ2h0''@;'; put 'put ''PSIpLmNvbmNhdChvZSwiLGxlZnQ9IikuY29uY2F0KGNlLCIsdG9wPSIpLmNvbmNhdChkZSkpKT9bMywyXTpbNCwobnVsbCE9Sj9KOlkub3BlbkxvZ2luUHJvbXB0KSgpXTtjYXNlIDE6cmV0dXJuWzIsQWUuc2VudCgpP3dpbmRvdy5vcGVuKE4sdGUsInRvb2xiYXI9MCxsb2NhdGlvbj0wLG1l''@;'; put 'put ''bnViYXI9MCx3aWR0aD0iLmNvbmNhdChzZSwiLGhlaWdodD0iKS5jb25jYXQob2UsIixsZWZ0PSIpLmNvbmNhdChjZSwiLHRvcD0iKS5jb25jYXQoZGUpKTpudWxsXTtjYXNlIDI6cmV0dXJuWzIsdmVdfX0pfSl9fSwyNDk6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhp''@;'; put 'put ''cyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcsTix0ZSxLKXtyZXR1cm4gbmV3KHRlfHwodGU9UHJvbWlzZSkpKGZ1bmN0aW9uKEosc2Upe2Z1bmN0aW9uIG9lKHZlKXt0cnl7ZGUoSy5uZXh0KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gY2UodmUpe3RyeXtkZShLLnRocm93''@;'; put 'put ''KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gZGUodmUpe3ZhciBBZTt2ZS5kb25lP0oodmUudmFsdWUpOihBZT12ZS52YWx1ZSxBZSBpbnN0YW5jZW9mIHRlP0FlOm5ldyB0ZShmdW5jdGlvbihrZSl7a2UoQWUpfSkpLnRoZW4ob2UsY2UpfWRlKChLPUsuYXBwbHkoVyxOfHxbXSkp''@;'; put 'put ''Lm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIgdGUsSyxKLHNlLG9lPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4gSlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgw''@;'; put 'put ''KSx0aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihzZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKHRl''@;'; put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYodGU9MSxLJiYoSj0yJkFlWzBdP0sucmV0dXJuOkFlWzBdP0sudGhyb3d8fCgoSj1LLnJldHVybikmJkouY2FsbChLKSwwKTpLLm5leHQpJiYhKEo9Si5jYWxsKEss''@;'; put 'put ''QWVbMV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChLPTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVdKSxBZVswXSl7Y2FzZSAwOmNhc2UgMTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKyssSz1BZVsxXSxB''@;'; put 'put ''ZT1bMF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoSj0oSj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVswXSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0m''@;'; put 'put ''JighSnx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkpe29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9PT1BZVswXSYmb2UubGFiZWw8SlsxXSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpbMl0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpb''@;'; put 'put ''Ml0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1jYXRjaChrZSl7QWU9WzYsa2VdLEs9MH1maW5hbGx5e3RlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVybnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2''@;'; put 'put ''ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnJlZnJlc2hUb2tlbnNGb3JTYXNqcz12b2lkIDA7dmFyIFk9aig5Nzc4KTtRLnJlZnJlc2hUb2tlbnNGb3JTYXNqcz1mdW5jdGlvbihXLE4pe3JldHVybiByZSh0aGlzLHZvaWQgMCx2b2lk''@;'; put 'put ''IDAsZnVuY3Rpb24oKXtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihLKXtzd2l0Y2goSy5sYWJlbCl7Y2FzZSAwOnJldHVybls0LFcucG9zdCgiL1NBU2pzQXBpL2F1dGgvcmVmcmVzaCIsdm9pZCAwLHZvaWQgMCx2b2lkIDAse0F1dGhvcml6YXRpb246IkJlYXJlciAiK059KS50aGVuKGZ1bmN0''@;'; put 'put ''aW9uKEope3ZhciBzZT1KLnJlc3VsdDtyZXR1cm57YWNjZXNzX3Rva2VuOnNlLmFjY2Vzc1Rva2VuLHJlZnJlc2hfdG9rZW46c2UucmVmcmVzaFRva2VufX0pLmNhdGNoKGZ1bmN0aW9uKEope3Rocm93KDAsWS5wcmVmaXhNZXNzYWdlKShKLCJFcnJvciB3aGlsZSByZWZyZXNoaW5nIHRva2Vu''@;'; put 'put ''czogIil9KV07Y2FzZSAxOnJldHVyblsyLEsuc2VudCgpXX19KX0pfX0sMzY2OmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlPWooODc2NCkuQnVmZmVyLGFlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbih0ZSxLLEosc2Upe3JldHVybiBuZXcoSnx8KEo9UHJvbWlz''@;'; put 'put ''ZSkpKGZ1bmN0aW9uKG9lLGNlKXtmdW5jdGlvbiBkZShrZSl7dHJ5e0FlKHNlLm5leHQoa2UpKX1jYXRjaChTZSl7Y2UoU2UpfX1mdW5jdGlvbiB2ZShrZSl7dHJ5e0FlKHNlLnRocm93KGtlKSl9Y2F0Y2goU2Upe2NlKFNlKX19ZnVuY3Rpb24gQWUoa2Upe3ZhciBTZTtrZS5kb25lP29lKGtl''@;'; put 'put ''LnZhbHVlKTooU2U9a2UudmFsdWUsU2UgaW5zdGFuY2VvZiBKP1NlOm5ldyBKKGZ1bmN0aW9uKEllKXtJZShTZSl9KSkudGhlbihkZSx2ZSl9QWUoKHNlPXNlLmFwcGx5KHRlLEt8fFtdKSkubmV4dCgpKX0pfSxZPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKHRlLEspe3ZhciBK''@;'; put 'put ''LHNlLG9lLGNlLGRlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJm9lWzBdKXRocm93IG9lWzFdO3JldHVybiBvZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBjZT17bmV4dDp2ZSgwKSx0aHJvdzp2ZSgxKSxyZXR1cm46dmUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wm''@;'; put 'put ''JihjZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxjZTtmdW5jdGlvbiB2ZShBZSl7cmV0dXJuIGZ1bmN0aW9uKGtlKXtyZXR1cm4gZnVuY3Rpb24oU2Upe2lmKEopdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIp''@;'; put 'put ''O2Zvcig7ZGU7KXRyeXtpZihKPTEsc2UmJihvZT0yJlNlWzBdP3NlLnJldHVybjpTZVswXT9zZS50aHJvd3x8KChvZT1zZS5yZXR1cm4pJiZvZS5jYWxsKHNlKSwwKTpzZS5uZXh0KSYmIShvZT1vZS5jYWxsKHNlLFNlWzFdKSkuZG9uZSlyZXR1cm4gb2U7c3dpdGNoKHNlPTAsb2UmJihTZT1b''@;'; put 'put ''MiZTZVswXSxvZS52YWx1ZV0pLFNlWzBdKXtjYXNlIDA6Y2FzZSAxOm9lPVNlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gZGUubGFiZWwrKyx7dmFsdWU6U2VbMV0sZG9uZTohMX07Y2FzZSA1OmRlLmxhYmVsKyssc2U9U2VbMV0sU2U9WzBdO2NvbnRpbnVlO2Nhc2UgNzpTZT1kZS5vcHMucG9wKCks''@;'; put 'put ''ZGUudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG9lPShvZT1kZS50cnlzKS5sZW5ndGg+MCYmb2Vbb2UubGVuZ3RoLTFdKXx8NiE9PVNlWzBdJiYyIT09U2VbMF0pKXtkZT0wO2NvbnRpbnVlfWlmKDM9PT1TZVswXSYmKCFvZXx8U2VbMV0+b2VbMF0mJlNlWzFdPG9lWzNdKSl7''@;'; put 'put ''ZGUubGFiZWw9U2VbMV07YnJlYWt9aWYoNj09PVNlWzBdJiZkZS5sYWJlbDxvZVsxXSl7ZGUubGFiZWw9b2VbMV0sb2U9U2U7YnJlYWt9aWYob2UmJmRlLmxhYmVsPG9lWzJdKXtkZS5sYWJlbD1vZVsyXSxkZS5vcHMucHVzaChTZSk7YnJlYWt9b2VbMl0mJmRlLm9wcy5wb3AoKSxkZS50cnlz''@;'; put 'put ''LnBvcCgpO2NvbnRpbnVlfVNlPUsuY2FsbCh0ZSxkZSl9Y2F0Y2goSWUpe1NlPVs2LEllXSxzZT0wfWZpbmFsbHl7Sj1vZT0wfWlmKDUmU2VbMF0pdGhyb3cgU2VbMV07cmV0dXJue3ZhbHVlOlNlWzBdP1NlWzFdOnZvaWQgMCxkb25lOiEwfX0oW0FlLGtlXSl9fX07T2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucmVmcmVzaFRva2Vuc0ZvclZpeWE9dm9pZCAwO3ZhciBXPWooOTc3OCksTj1qKDYyMzApO1EucmVmcmVzaFRva2Vuc0ZvclZpeWE9ZnVuY3Rpb24odGUsSyxKLHNlKXtyZXR1cm4gYWUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIG9lLGNlLGRlO3JldHVybiBZKHRoaXMsZnVuY3Rpb24odmUpe3N3aXRjaCh2ZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBvZT12b2lkIDA9PT1yZT9idG9hKEsrIjoiK0opOnJlLmZyb20oSysiOiIrSikudG9TdHJpbmcoImJhc2U2NCIpLGNlPXtBdXRob3JpemF0aW9uOiJCYXNp''@;'; put 'put ''YyAiK29lfSwoZGU9InVuZGVmaW5lZCI9PXR5cGVvZiBGb3JtRGF0YT9uZXcgTjpuZXcgRm9ybURhdGEpLmFwcGVuZCgiZ3JhbnRfdHlwZSIsInJlZnJlc2hfdG9rZW4iKSxkZS5hcHBlbmQoInJlZnJlc2hfdG9rZW4iLHNlKSxbNCx0ZS5wb3N0KCIvU0FTTG9nb24vb2F1dGgvdG9rZW4iLGRl''@;'; put 'put ''LHZvaWQgMCwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9IitkZS5fYm91bmRhcnksY2UpLnRoZW4oZnVuY3Rpb24oQWUpe3JldHVybiBBZS5yZXN1bHR9KS5jYXRjaChmdW5jdGlvbihBZSl7dGhyb3coMCxXLnByZWZpeE1lc3NhZ2UpKEFlLCJFcnJvciB3aGlsZSByZWZyZXNoaW5n''@;'; put 'put ''IHRva2VuczogIil9KV07Y2FzZSAxOnJldHVyblsyLHZlLnNlbnQoKV19fSl9KX19LDQ1ODI6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcsTix0ZSxLKXtyZXR1cm4gbmV3KHRlfHwodGU9UHJvbWlzZSkpKGZ1bmN0''@;'; put 'put ''aW9uKEosc2Upe2Z1bmN0aW9uIG9lKHZlKXt0cnl7ZGUoSy5uZXh0KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gY2UodmUpe3RyeXtkZShLLnRocm93KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gZGUodmUpe3ZhciBBZTt2ZS5kb25lP0oodmUudmFsdWUpOihBZT12''@;'; put 'put ''ZS52YWx1ZSxBZSBpbnN0YW5jZW9mIHRlP0FlOm5ldyB0ZShmdW5jdGlvbihrZSl7a2UoQWUpfSkpLnRoZW4ob2UsY2UpfWRlKChLPUsuYXBwbHkoVyxOfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIgdGUsSyxKLHNlLG9lPXts''@;'; put 'put ''YWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4gSlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgwKSx0aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihzZVtTeW1ib2wuaXRlcmF0''@;'; put 'put ''b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKHRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYo''@;'; put 'put ''dGU9MSxLJiYoSj0yJkFlWzBdP0sucmV0dXJuOkFlWzBdP0sudGhyb3d8fCgoSj1LLnJldHVybikmJkouY2FsbChLKSwwKTpLLm5leHQpJiYhKEo9Si5jYWxsKEssQWVbMV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChLPTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVdKSxBZVswXSl7Y2FzZSAw''@;'; put 'put ''OmNhc2UgMTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKyssSz1BZVsxXSxBZT1bMF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYo''@;'; put 'put ''ISgoSj0oSj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVswXSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0mJighSnx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkpe29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9PT1BZVswXSYmb2UubGFi''@;'; put 'put ''ZWw8SlsxXSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpbMl0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpbMl0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1jYXRjaChrZSl7QWU9WzYs''@;'; put 'put ''a2VdLEs9MH1maW5hbGx5e3RlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVybnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnZlcmlmeVNhczlMb2dp''@;'; put 'put ''bj12b2lkIDA7dmFyIFk9aig1OTI4KTtRLnZlcmlmeVNhczlMb2dpbj1mdW5jdGlvbihXKXtyZXR1cm4gcmUodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE4sdGUsSztyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihKKXtzd2l0Y2goSi5sYWJlbCl7Y2FzZSAwOk49ITEsdGU9bmV3''@;'; put 'put ''IERhdGUsSz0wLEoubGFiZWw9MTtjYXNlIDE6cmV0dXJuWzQsKDAsWS5kZWxheSkoMWUzKV07Y2FzZSAyOmlmKEouc2VudCgpLFcuY2xvc2VkKXJldHVyblszLDRdO049Vy53aW5kb3cubG9jYXRpb24uaHJlZi5pbmNsdWRlcygiU0FTTG9nb24iKSYmVy53aW5kb3cuZG9jdW1lbnQuYm9keS5p''@;'; put 'put ''bm5lclRleHQuaW5jbHVkZXMoIllvdSBoYXZlIHNpZ25lZCBpbi4iKSxLPSgobmV3IERhdGUpLnZhbHVlT2YoKS10ZS52YWx1ZU9mKCkpLzFlMyxKLmxhYmVsPTM7Y2FzZSAzOmlmKCFOJiZLPDMwMClyZXR1cm5bMywxXTtKLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyLHtpc0xvZ2dlZEluOk59''@;'; put 'put ''XX19KX0pfX0sNjU0NzpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oVyxOLHRlLEspe3JldHVybiBuZXcodGV8fCh0ZT1Qcm9taXNlKSkoZnVuY3Rpb24oSixzZSl7ZnVuY3Rpb24gb2UodmUpe3RyeXtkZShLLm5leHQo''@;'; put 'put ''dmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBjZSh2ZSl7dHJ5e2RlKEsudGhyb3codmUpKX1jYXRjaChBZSl7c2UoQWUpfX1mdW5jdGlvbiBkZSh2ZSl7dmFyIEFlO3ZlLmRvbmU/Sih2ZS52YWx1ZSk6KEFlPXZlLnZhbHVlLEFlIGluc3RhbmNlb2YgdGU/QWU6bmV3IHRlKGZ1bmN0''@;'; put 'put ''aW9uKGtlKXtrZShBZSl9KSkudGhlbihvZSxjZSl9ZGUoKEs9Sy5hcHBseShXLE58fFtdKSkubmV4dCgpKX0pfSxhZT10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihXLE4pe3ZhciB0ZSxLLEosc2Usb2U9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmSlswXSl0aHJvdyBK''@;'; put 'put ''WzFdO3JldHVybiBKWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIHNlPXtuZXh0OmNlKDApLHRocm93OmNlKDEpLHJldHVybjpjZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKHNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLHNlO2Z1bmN0aW9u''@;'; put 'put ''IGNlKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe3JldHVybiBmdW5jdGlvbihBZSl7aWYodGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7b2U7KXRyeXtpZih0ZT0xLEsmJihKPTImQWVbMF0/Sy5yZXR1cm46QWVbMF0/Sy50aHJv''@;'; put 'put ''d3x8KChKPUsucmV0dXJuKSYmSi5jYWxsKEspLDApOksubmV4dCkmJiEoSj1KLmNhbGwoSyxBZVsxXSkpLmRvbmUpcmV0dXJuIEo7c3dpdGNoKEs9MCxKJiYoQWU9WzImQWVbMF0sSi52YWx1ZV0pLEFlWzBdKXtjYXNlIDA6Y2FzZSAxOko9QWU7YnJlYWs7Y2FzZSA0OnJldHVybiBvZS5sYWJl''@;'; put 'put ''bCsrLHt2YWx1ZTpBZVsxXSxkb25lOiExfTtjYXNlIDU6b2UubGFiZWwrKyxLPUFlWzFdLEFlPVswXTtjb250aW51ZTtjYXNlIDc6QWU9b2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChKPShKPW9lLnRyeXMpLmxlbmd0aD4wJiZKW0oubGVuZ3RoLTFd''@;'; put 'put ''KXx8NiE9PUFlWzBdJiYyIT09QWVbMF0pKXtvZT0wO2NvbnRpbnVlfWlmKDM9PT1BZVswXSYmKCFKfHxBZVsxXT5KWzBdJiZBZVsxXTxKWzNdKSl7b2UubGFiZWw9QWVbMV07YnJlYWt9aWYoNj09PUFlWzBdJiZvZS5sYWJlbDxKWzFdKXtvZS5sYWJlbD1KWzFdLEo9QWU7YnJlYWt9aWYoSiYm''@;'; put 'put ''b2UubGFiZWw8SlsyXSl7b2UubGFiZWw9SlsyXSxvZS5vcHMucHVzaChBZSk7YnJlYWt9SlsyXSYmb2Uub3BzLnBvcCgpLG9lLnRyeXMucG9wKCk7Y29udGludWV9QWU9Ti5jYWxsKFcsb2UpfWNhdGNoKGtlKXtBZT1bNixrZV0sSz0wfWZpbmFsbHl7dGU9Sj0wfWlmKDUmQWVbMF0pdGhyb3cg''@;'; put 'put ''QWVbMV07cmV0dXJue3ZhbHVlOkFlWzBdP0FlWzFdOnZvaWQgMCxkb25lOiEwfX0oW2RlLHZlXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNMb2dnZWRJblNBU1ZJWUE9US52ZXJpZnlTYXNWaXlhTG9naW49dm9pZCAwO3ZhciBZPWoo''@;'; put 'put ''NTkyOCk7US52ZXJpZnlTYXNWaXlhTG9naW49ZnVuY3Rpb24oVyl7dmFyIE4sdGU7cmV0dXJuIHJlKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBLLEosc2Usb2U7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oY2Upe3N3aXRjaChjZS5sYWJlbCl7Y2FzZSAwOks9ITEsSj1uZXcg''@;'; put 'put ''RGF0ZSxzZT0wLGNlLmxhYmVsPTE7Y2FzZSAxOnJldHVybls0LCgwLFkuZGVsYXkpKDFlMyldO2Nhc2UgMjppZihjZS5zZW50KCksVy5jbG9zZWQpcmV0dXJuWzMsNF07Sz0oMCxRLmlzTG9nZ2VkSW5TQVNWSVlBKSgpLHNlPSgobmV3IERhdGUpLnZhbHVlT2YoKS1KLnZhbHVlT2YoKSkvMWUz''@;'; put 'put ''LGNlLmxhYmVsPTM7Y2FzZSAzOmlmKCFLJiZzZTwzMDApcmV0dXJuWzMsMV07Y2UubGFiZWw9NDtjYXNlIDQ6b2U9ITEsSj1uZXcgRGF0ZSxjZS5sYWJlbD01O2Nhc2UgNTpyZXR1cm5bNCwoMCxZLmRlbGF5KSgxZTMpXTtjYXNlIDY6aWYoY2Uuc2VudCgpLFcuY2xvc2VkKXJldHVyblszLDhd''@;'; put 'put ''O29lPVcud2luZG93LmxvY2F0aW9uLmhyZWYuaW5jbHVkZXMoIlNBU0xvZ29uIil8fChudWxsPT09KHRlPW51bGw9PT0oTj1XLndpbmRvdy5kb2N1bWVudC5ib2R5KXx8dm9pZCAwPT09Tj92b2lkIDA6Ti5pbm5lclRleHQpfHx2b2lkIDA9PT10ZT92b2lkIDA6dGUuaW5jbHVkZXMoIllvdSBo''@;'; put 'put ''YXZlIHNpZ25lZCBpbi4iKSksc2U9KChuZXcgRGF0ZSkudmFsdWVPZigpLUoudmFsdWVPZigpKS8xZTMsY2UubGFiZWw9NztjYXNlIDc6aWYoIW9lJiZzZTwzMDApcmV0dXJuWzMsNV07Y2UubGFiZWw9ODtjYXNlIDg6cmV0dXJuWzIse2lzTG9nZ2VkSW46SyYmb2V9XX19KX0pfSxRLmlzTG9n''@;'; put 'put ''Z2VkSW5TQVNWSVlBPWZ1bmN0aW9uKCl7cmV0dXJuIGRvY3VtZW50LmNvb2tpZS5pbmNsdWRlcygiQ3VycmVudC1Vc2VyIikmJmRvY3VtZW50LmNvb2tpZS5pbmNsdWRlcygidXNlcklkIil9fSw0MDM3OihVLFEsaik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9f''@;'; put 'put ''ZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2VuZXJhdGVGaWxlVXBsb2FkRm9ybT12b2lkIDA7dmFyIHJlPWooNjIzMCksYWU9aigyNDAyKTtRLmdlbmVyYXRlRmlsZVVwbG9hZEZvcm09ZnVuY3Rpb24oWSxXKXtmb3IodmFyIE4gaW4gVylpZihBcnJheS5pc0FycmF5KFdbTl0pKXt2YXIgdGU9''@;'; put 'put ''TixLPSgwLGFlLmNvbnZlcnRUb0NTVikoVyxOKTtpZigiRVJST1I6IExBUkdFIFNUUklORyBMRU5HVEgiPT09Syl0aHJvdyBuZXcgRXJyb3IoIlRoZSBtYXggbGVuZ3RoIG9mIGEgc3RyaW5nIHZhbHVlIGluIFNBU2pzIGlzIDMyNzY1IGNoYXJhY3RlcnMuIik7aWYoInVuZGVmaW5lZCI9PXR5''@;'; put 'put ''cGVvZiBGb3JtRGF0YSYmWSBpbnN0YW5jZW9mIHJlKVkuYXBwZW5kKHRlLEsse2ZpbGVuYW1lOiIiLmNvbmNhdCh0ZSwiLmNzdiIpLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9jc3YifSk7ZWxzZXt2YXIgSj1uZXcgQmxvYihbS10se3R5cGU6ImFwcGxpY2F0aW9uL2NzdiJ9KTtZLmFwcGVu''@;'; put 'put ''ZCh0ZSxKLCIiLmNvbmNhdCh0ZSwiLmNzdiIpKX19cmV0dXJuIFl9fSwyMTcwOihVLFEsaik9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuZ2VuZXJhdGVUYWJsZVVwbG9hZEZvcm09dm9pZCAwO3ZhciByZT1qKDI0MDIp''@;'; put 'put ''LGFlPWooNDc5OSk7US5nZW5lcmF0ZVRhYmxlVXBsb2FkRm9ybT1mdW5jdGlvbihZLFcpe3ZhciBOPVtdLHRlPXt9LEs9MDtmb3IodmFyIEogaW4gVyl7SysrLCgwLHJlLmlzRm9ybWF0c1RhYmxlKShKKXx8Ti5wdXNoKEopO3ZhciBzZT0oMCxyZS5jb252ZXJ0VG9DU1YpKFcsSik7aWYoIkVS''@;'; put 'put ''Uk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09PXNlKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTtzZS5sZW5ndGg+MTZlMz8oMCxhZS5zcGxpdENodW5rcykoc2UpLm1hcChmdW5jdGlvbihv''@;'; put 'put ''ZSl7WS5hcHBlbmQoInNhc2pzIi5jb25jYXQoSywiZGF0YSIpLG9lKX0pOnRlWyJzYXNqcyIuY29uY2F0KEssImRhdGEiKV09c2V9cmV0dXJuIHRlLnNhc2pzX3RhYmxlcz1OLmpvaW4oIiAiKSx7Zm9ybURhdGE6WSxyZXF1ZXN0UGFyYW1zOnRlfX19LDM2MDc6ZnVuY3Rpb24oVSxRLGopeyJ1''@;'; put 'put ''c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0aW9uKFcsTix0ZSxLKXt2b2lkIDA9PT1LJiYoSz10ZSk7dmFyIEo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOLHRlKTtKJiYhKCJnZXQiaW4gSj8hTi5fX2Vz''@;'; put 'put ''TW9kdWxlOkoud3JpdGFibGV8fEouY29uZmlndXJhYmxlKXx8KEo9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5bdGVdfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShXLEssSil9OmZ1bmN0aW9uKFcsTix0ZSxLKXt2b2lkIDA9PT1LJiYoSz10ZSksV1tLXT1OW3RlXX0p''@;'; put 'put ''LGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihXLE4pe2Zvcih2YXIgdGUgaW4gVykiZGVmYXVsdCI9PT10ZXx8T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE4sdGUpfHxyZShOLFcsdGUpfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVs''@;'; put 'put ''ZSIse3ZhbHVlOiEwfSk7dmFyIFk9aig1OTU2KTthZShqKDEyMzApLFEpLGFlKGooMTM5NSksUSksYWUoaig5ODIxKSxRKSxhZShqKDgzMDYpLFEpLFEuZGVmYXVsdD1ZLmRlZmF1bHR9LDE1NzA6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmUsYWU9dGhpcyYmdGhpcy5fX2V4''@;'; put 'put ''dGVuZHN8fChyZT1mdW5jdGlvbihKLHNlKXtyZXR1cm4ocmU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKG9lLGNlKXtvZS5fX3Byb3RvX189Y2V9fHxmdW5jdGlvbihvZSxjZSl7Zm9yKHZhciBkZSBpbiBjZSlPYmplY3Qu''@;'; put 'put ''cHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2UsZGUpJiYob2VbZGVdPWNlW2RlXSl9KShKLHNlKX0sZnVuY3Rpb24oSixzZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHNlJiZudWxsIT09c2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhz''@;'; put 'put ''ZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gb2UoKXt0aGlzLmNvbnN0cnVjdG9yPUp9cmUoSixzZSksSi5wcm90b3R5cGU9bnVsbD09PXNlP09iamVjdC5jcmVhdGUoc2UpOihvZS5wcm90b3R5cGU9c2UucHJvdG90eXBlLG5ldyBvZSl9KSxZPXRoaXMmJnRo''@;'; put 'put ''aXMuX19hd2FpdGVyfHxmdW5jdGlvbihKLHNlLG9lLGNlKXtyZXR1cm4gbmV3KG9lfHwob2U9UHJvbWlzZSkpKGZ1bmN0aW9uKGRlLHZlKXtmdW5jdGlvbiBBZShJZSl7dHJ5e1NlKGNlLm5leHQoSWUpKX1jYXRjaChUZSl7dmUoVGUpfX1mdW5jdGlvbiBrZShJZSl7dHJ5e1NlKGNlLnRocm93''@;'; put 'put ''KEllKSl9Y2F0Y2goVGUpe3ZlKFRlKX19ZnVuY3Rpb24gU2UoSWUpe3ZhciBUZTtJZS5kb25lP2RlKEllLnZhbHVlKTooVGU9SWUudmFsdWUsVGUgaW5zdGFuY2VvZiBvZT9UZTpuZXcgb2UoZnVuY3Rpb24oTWUpe01lKFRlKX0pKS50aGVuKEFlLGtlKX1TZSgoY2U9Y2UuYXBwbHkoSixzZXx8''@;'; put 'put ''W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oSixzZSl7dmFyIG9lLGNlLGRlLHZlLEFlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJmRlWzBdKXRocm93IGRlWzFdO3JldHVybiBkZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiB2ZT17''@;'; put 'put ''bmV4dDprZSgwKSx0aHJvdzprZSgxKSxyZXR1cm46a2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJih2ZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSx2ZTtmdW5jdGlvbiBrZShTZSl7cmV0dXJuIGZ1bmN0aW9uKEllKXtyZXR1cm4gZnVuY3Rpb24o''@;'; put 'put ''VGUpe2lmKG9lKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO0FlOyl0cnl7aWYob2U9MSxjZSYmKGRlPTImVGVbMF0/Y2UucmV0dXJuOlRlWzBdP2NlLnRocm93fHwoKGRlPWNlLnJldHVybikmJmRlLmNhbGwoY2UpLDApOmNlLm5l''@;'; put 'put ''eHQpJiYhKGRlPWRlLmNhbGwoY2UsVGVbMV0pKS5kb25lKXJldHVybiBkZTtzd2l0Y2goY2U9MCxkZSYmKFRlPVsyJlRlWzBdLGRlLnZhbHVlXSksVGVbMF0pe2Nhc2UgMDpjYXNlIDE6ZGU9VGU7YnJlYWs7Y2FzZSA0OnJldHVybiBBZS5sYWJlbCsrLHt2YWx1ZTpUZVsxXSxkb25lOiExfTtj''@;'; put 'put ''YXNlIDU6QWUubGFiZWwrKyxjZT1UZVsxXSxUZT1bMF07Y29udGludWU7Y2FzZSA3OlRlPUFlLm9wcy5wb3AoKSxBZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoZGU9KGRlPUFlLnRyeXMpLmxlbmd0aD4wJiZkZVtkZS5sZW5ndGgtMV0pfHw2IT09VGVbMF0mJjIhPT1UZVsw''@;'; put 'put ''XSkpe0FlPTA7Y29udGludWV9aWYoMz09PVRlWzBdJiYoIWRlfHxUZVsxXT5kZVswXSYmVGVbMV08ZGVbM10pKXtBZS5sYWJlbD1UZVsxXTticmVha31pZig2PT09VGVbMF0mJkFlLmxhYmVsPGRlWzFdKXtBZS5sYWJlbD1kZVsxXSxkZT1UZTticmVha31pZihkZSYmQWUubGFiZWw8ZGVbMl0p''@;'; put 'put ''e0FlLmxhYmVsPWRlWzJdLEFlLm9wcy5wdXNoKFRlKTticmVha31kZVsyXSYmQWUub3BzLnBvcCgpLEFlLnRyeXMucG9wKCk7Y29udGludWV9VGU9c2UuY2FsbChKLEFlKX1jYXRjaChNZSl7VGU9WzYsTWVdLGNlPTB9ZmluYWxseXtvZT1kZT0wfWlmKDUmVGVbMF0pdGhyb3cgVGVbMV07cmV0''@;'; put 'put ''dXJue3ZhbHVlOlRlWzBdP1RlWzFdOnZvaWQgMCxkb25lOiEwfX0oW1NlLEllXSl9fX07T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuQ29tcHV0ZUpvYkV4ZWN1dG9yPXZvaWQgMDt2YXIgTj1qKDM5MDApLHRlPWooMTM5NSksSz1mdW5jdGlvbihK''@;'; put 'put ''KXtmdW5jdGlvbiBzZShvZSxjZSl7dmFyIGRlPUouY2FsbCh0aGlzLG9lLE4uU2VydmVyVHlwZS5TYXNWaXlhKXx8dGhpcztyZXR1cm4gZGUuc2FzVml5YUFwaUNsaWVudD1jZSxkZX1yZXR1cm4gYWUoc2UsSiksc2UucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24ob2UsY2UsZGUsdmUsQWUp''@;'; put 'put ''e3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBrZSxJZT10aGlzO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oVGUpe3JldHVybiBrZT12ZXx8ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKE1lLGhlKXt2''@;'; put 'put ''YXIgTztudWxsPT09KE89SWUuc2FzVml5YUFwaUNsaWVudCl8fHZvaWQgMD09PU98fE8uZXhlY3V0ZUNvbXB1dGVKb2Iob2UsZGUuY29udGV4dE5hbWUsZGUuZGVidWcsY2UsQWUsITAsITApLnRoZW4oZnVuY3Rpb24oeil7SWUuc2FzVml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KHosb2Us''@;'; put 'put ''ZGUuZGVidWcpLE1lKHoucmVzdWx0KX0pLmNhdGNoKGZ1bmN0aW9uKHope3JldHVybiBZKEllLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZWU9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKG5lKXtzd2l0Y2gobmUubGFiZWwpe2Nhc2UgMDpyZXR1cm4geiBpbnN0YW5jZW9mIHRl''@;'; put 'put ''LkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvciYmKHRoaXMuc2FzVml5YUFwaUNsaWVudC5hcHBlbmRSZXF1ZXN0KHosb2UsZGUuZGVidWcpLGhlKG5ldyB0ZS5FcnJvclJlc3BvbnNlKG51bGw9PXo/dm9pZCAwOnoubWVzc2FnZSx6KSkpLHogaW5zdGFuY2VvZiB0ZS5Mb2dpblJlcXVpcmVkRXJy''@;'; put 'put ''b3I/KHRoaXMuYXBwZW5kV2FpdGluZ1JlcXVlc3QoZnVuY3Rpb24oKXtyZXR1cm4gZWUuZXhlY3V0ZShvZSxjZSxkZSx2ZSkudGhlbihmdW5jdGlvbih4KXtNZSh4KX0sZnVuY3Rpb24oeCl7aGUoeCl9KX0pLFs0LGtlKCldKTpbMywyXTtjYXNlIDE6cmV0dXJuIG5lLnNlbnQoKSxbMywzXTtj''@;'; put 'put ''YXNlIDI6aGUobmV3IHRlLkVycm9yUmVzcG9uc2UobnVsbD09ej92b2lkIDA6ei5tZXNzYWdlLHopKSxuZS5sYWJlbD0zO2Nhc2UgMzpyZXR1cm5bMl19fSl9KX0pfSldfSl9KX0sc2V9KGooNjExOCkuQmFzZUpvYkV4ZWN1dG9yKTtRLkNvbXB1dGVKb2JFeGVjdXRvcj1LfSwzNDkxOmZ1bmN0''@;'; put 'put ''aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlLGFlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocmU9ZnVuY3Rpb24oc2Usb2Upe3JldHVybihyZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oY2UsZGUpe2NlLl9fcHJv''@;'; put 'put ''dG9fXz1kZX18fGZ1bmN0aW9uKGNlLGRlKXtmb3IodmFyIHZlIGluIGRlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChkZSx2ZSkmJihjZVt2ZV09ZGVbdmVdKX0pKHNlLG9lKX0sZnVuY3Rpb24oc2Usb2Upe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBvZSYmbnVsbCE9PW9l''@;'; put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcob2UpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIGNlKCl7dGhpcy5jb25zdHJ1Y3Rvcj1zZX1yZShzZSxvZSksc2UucHJvdG90eXBlPW51bGw9PT1vZT9PYmplY3QuY3Jl''@;'; put 'put ''YXRlKG9lKTooY2UucHJvdG90eXBlPW9lLnByb3RvdHlwZSxuZXcgY2UpfSksWT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3JldHVybiBuZXcoY2V8fChjZT1Qcm9taXNlKSkoZnVuY3Rpb24odmUsQWUpe2Z1bmN0aW9uIGtlKFRlKXt0cnl7SWUoZGUubmV4''@;'; put 'put ''dChUZSkpfWNhdGNoKE1lKXtBZShNZSl9fWZ1bmN0aW9uIFNlKFRlKXt0cnl7SWUoZGUudGhyb3coVGUpKX1jYXRjaChNZSl7QWUoTWUpfX1mdW5jdGlvbiBJZShUZSl7dmFyIE1lO1RlLmRvbmU/dmUoVGUudmFsdWUpOihNZT1UZS52YWx1ZSxNZSBpbnN0YW5jZW9mIGNlP01lOm5ldyBjZShm''@;'; put 'put ''dW5jdGlvbihoZSl7aGUoTWUpfSkpLnRoZW4oa2UsU2UpfUllKChkZT1kZS5hcHBseShzZSxvZXx8W10pKS5uZXh0KCkpfSl9LFc9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oc2Usb2Upe3ZhciBjZSxkZSx2ZSxBZSxrZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZ2''@;'; put 'put ''ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm4gdmVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gQWU9e25leHQ6U2UoMCksdGhyb3c6U2UoMSkscmV0dXJuOlNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQWVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlz''@;'; put 'put ''fSksQWU7ZnVuY3Rpb24gU2UoSWUpe3JldHVybiBmdW5jdGlvbihUZSl7cmV0dXJuIGZ1bmN0aW9uKE1lKXtpZihjZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtrZTspdHJ5e2lmKGNlPTEsZGUmJih2ZT0yJk1lWzBdP2RlLnJl''@;'; put 'put ''dHVybjpNZVswXT9kZS50aHJvd3x8KCh2ZT1kZS5yZXR1cm4pJiZ2ZS5jYWxsKGRlKSwwKTpkZS5uZXh0KSYmISh2ZT12ZS5jYWxsKGRlLE1lWzFdKSkuZG9uZSlyZXR1cm4gdmU7c3dpdGNoKGRlPTAsdmUmJihNZT1bMiZNZVswXSx2ZS52YWx1ZV0pLE1lWzBdKXtjYXNlIDA6Y2FzZSAxOnZl''@;'; put 'put ''PU1lO2JyZWFrO2Nhc2UgNDpyZXR1cm4ga2UubGFiZWwrKyx7dmFsdWU6TWVbMV0sZG9uZTohMX07Y2FzZSA1OmtlLmxhYmVsKyssZGU9TWVbMV0sTWU9WzBdO2NvbnRpbnVlO2Nhc2UgNzpNZT1rZS5vcHMucG9wKCksa2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHZlPSh2''@;'; put 'put ''ZT1rZS50cnlzKS5sZW5ndGg+MCYmdmVbdmUubGVuZ3RoLTFdKXx8NiE9PU1lWzBdJiYyIT09TWVbMF0pKXtrZT0wO2NvbnRpbnVlfWlmKDM9PT1NZVswXSYmKCF2ZXx8TWVbMV0+dmVbMF0mJk1lWzFdPHZlWzNdKSl7a2UubGFiZWw9TWVbMV07YnJlYWt9aWYoNj09PU1lWzBdJiZrZS5sYWJl''@;'; put 'put ''bDx2ZVsxXSl7a2UubGFiZWw9dmVbMV0sdmU9TWU7YnJlYWt9aWYodmUmJmtlLmxhYmVsPHZlWzJdKXtrZS5sYWJlbD12ZVsyXSxrZS5vcHMucHVzaChNZSk7YnJlYWt9dmVbMl0mJmtlLm9wcy5wb3AoKSxrZS50cnlzLnBvcCgpO2NvbnRpbnVlfU1lPW9lLmNhbGwoc2Usa2UpfWNhdGNoKGhl''@;'; put 'put ''KXtNZT1bNixoZV0sZGU9MH1maW5hbGx5e2NlPXZlPTB9aWYoNSZNZVswXSl0aHJvdyBNZVsxXTtyZXR1cm57dmFsdWU6TWVbMF0/TWVbMV06dm9pZCAwLGRvbmU6ITB9fShbSWUsVGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5GaWxl''@;'; put 'put ''VXBsb2FkZXI9dm9pZCAwO3ZhciBOPWooNTkyOCksdGU9aigxMzk1KSxLPWooMzkwMCksSj1mdW5jdGlvbihzZSl7ZnVuY3Rpb24gb2UoY2UsZGUsdmUsQWUpe3ZhciBrZT1zZS5jYWxsKHRoaXMsY2UsZGUpfHx0aGlzO3JldHVybiBrZS5qb2JzUGF0aD12ZSxrZS5yZXF1ZXN0Q2xpZW50PUFl''@;'; put 'put ''LGtlfXJldHVybiBhZShvZSxzZSksb2UucHJvdG90eXBlLmV4ZWN1dGU9ZnVuY3Rpb24oY2UsZGUsdmUsQWUpe3JldHVybiBZKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBrZSxTZSxJZSxUZSxNZSxoZSxPLHosZWUsbmUseCxQLFYsUz10aGlzO3JldHVybiBXKHRoaXMsZnVu''@;'; put 'put ''Y3Rpb24oRil7aWYoU2U9ZGUucGFyYW1zLEllPUFlfHxmdW5jdGlvbigpe3JldHVybiBQcm9taXNlLnJlc29sdmUoKX0sbnVsbD09KGtlPWRlLmZpbGVzKXx8IWtlLmxlbmd0aCl0aHJvdyBuZXcgdGUuRXJyb3JSZXNwb25zZSgiQXQgbGVhc3Qgb25lIGZpbGUgbXVzdCBiZSBwcm92aWRlZC4i''@;'; put 'put ''KTtpZighY2V8fCIiPT09Y2UpdGhyb3cgbmV3IHRlLkVycm9yUmVzcG9uc2UoInNhc0pvYiBtdXN0IGJlIHByb3ZpZGVkLiIpO2ZvcihNZSBpbiBUZT0iIixTZSlTZS5oYXNPd25Qcm9wZXJ0eShNZSkmJihUZSs9IiYiLmNvbmNhdChNZSwiPSIpLmNvbmNhdChTZVtNZV0pKTtmb3IoaGU9dmUu''@;'; put 'put ''YXBwTG9jP3ZlLmFwcExvYy5yZXBsYWNlKC9cLz8kLywiLyIpK2NlLnJlcGxhY2UoL15cLy8sIiIpOmNlLE89IiIuY29uY2F0KHRoaXMuam9ic1BhdGgsIi8/IikuY29uY2F0KCJfcHJvZ3JhbT0iK2hlKS5jb25jYXQoVGUpLHo9bmV3IEZvcm1EYXRhLGVlPTAsbmU9a2U7ZWU8bmUubGVuZ3Ro''@;'; put 'put ''O2VlKyspei5hcHBlbmQoImZpbGUiLCh4PW5lW2VlXSkuZmlsZSx4LmZpbGVOYW1lKTtyZXR1cm4oUD10aGlzLnJlcXVlc3RDbGllbnQuZ2V0Q3NyZlRva2VuKCJmaWxlIikpJiZ6LmFwcGVuZCgiX2NzcmYiLFAudmFsdWUpLHZlLmRlYnVnJiZ6LmFwcGVuZCgiX2RlYnVnIiwiMTMxIiksdmUu''@;'; put 'put ''c2VydmVyVHlwZT09PUsuU2VydmVyVHlwZS5TYXNWaXlhJiZ2ZS5jb250ZXh0TmFtZSYmei5hcHBlbmQoIl9jb250ZXh0bmFtZSIsdmUuY29udGV4dE5hbWUpLFY9eyJjYWNoZS1jb250cm9sIjoibm8tY2FjaGUiLEFjY2VwdDoiKi8qIiwiQ29udGVudC1UeXBlIjoidGV4dC9wbGFpbiJ9LFsy''@;'; put 'put ''LG5ldyBQcm9taXNlKGZ1bmN0aW9uKHllLENlKXtTLnJlcXVlc3RDbGllbnQucG9zdChPLHosdm9pZCAwLCJhcHBsaWNhdGlvbi9qc29uIixWKS50aGVuKGZ1bmN0aW9uKERlKXtyZXR1cm4gWShTLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgUGU7cmV0dXJuIFcodGhpcyxmdW5jdGlv''@;'; put 'put ''bihRZSl7c3dpdGNoKFFlLmxhYmVsKXtjYXNlIDA6aWYodGhpcy5yZXF1ZXN0Q2xpZW50LmFwcGVuZFJlcXVlc3QoRGUsY2UsdmUuZGVidWcpLFBlPURlLnJlc3VsdCwhdmUuZGVidWcpcmV0dXJuWzMsNV07c3dpdGNoKHRoaXMuc2VydmVyVHlwZSl7Y2FzZSBLLlNlcnZlclR5cGUuU2FzVml5''@;'; put 'put ''YTpyZXR1cm5bMywxXTtjYXNlIEsuU2VydmVyVHlwZS5TYXM5OnJldHVyblszLDNdfXJldHVyblszLDRdO2Nhc2UgMTpyZXR1cm5bNCwoMCxOLnBhcnNlU2FzVml5YURlYnVnUmVzcG9uc2UpKERlLnJlc3VsdCx0aGlzLnJlcXVlc3RDbGllbnQsdmUuc2VydmVyVXJsKV07Y2FzZSAyOnJldHVy''@;'; put 'put ''biBQZT1RZS5zZW50KCksWzMsNF07Y2FzZSAzOnJldHVybiBQZT0ic3RyaW5nIj09dHlwZW9mIERlLnJlc3VsdD8oMCxOLnBhcnNlV2Vib3V0UmVzcG9uc2UpKERlLnJlc3VsdCxPKTpEZS5yZXN1bHQsWzMsNF07Y2FzZSA0OnJldHVyblszLDZdO2Nhc2UgNTp0aGlzLnNlcnZlclR5cGUhPT1L''@;'; put 'put ''LlNlcnZlclR5cGUuU2FzanMmJihQZT0ic3RyaW5nIj09dHlwZW9mIERlLnJlc3VsdD8oMCxOLmdldFZhbGlkSnNvbikoRGUucmVzdWx0KTpEZS5yZXN1bHQpLFFlLmxhYmVsPTY7Y2FzZSA2OnJldHVybiB5ZShQZSksWzJdfX0pfSl9KS5jYXRjaChmdW5jdGlvbihEZSl7cmV0dXJuIFkoUyx2''@;'; put 'put ''b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFBlPXRoaXM7cmV0dXJuIFcodGhpcyxmdW5jdGlvbihRZSl7c3dpdGNoKFFlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIERlIGluc3RhbmNlb2YgdGUuSm9iRXhlY3V0aW9uRXJyb3ImJih0aGlzLnJlcXVlc3RDbGllbnQuYXBwZW5kUmVxdWVzdChE''@;'; put 'put ''ZSxjZSx2ZS5kZWJ1ZyksQ2UobmV3IHRlLkVycm9yUmVzcG9uc2UobnVsbD09RGU/dm9pZCAwOkRlLm1lc3NhZ2UsRGUpKSksRGUgaW5zdGFuY2VvZiB0ZS5Mb2dpblJlcXVpcmVkRXJyb3I/KHRoaXMuYXBwZW5kV2FpdGluZ1JlcXVlc3QoZnVuY3Rpb24oKXtyZXR1cm4gUGUuZXhlY3V0ZShj''@;'; put 'put ''ZSxkZSx2ZSxBZSkudGhlbihmdW5jdGlvbigkZSl7eWUoJGUpfSxmdW5jdGlvbigkZSl7Q2UoJGUpfSl9KSxbNCxJZSgpXSk6WzMsMl07Y2FzZSAxOnJldHVybiBRZS5zZW50KCksWzMsM107Y2FzZSAyOkNlKG5ldyB0ZS5FcnJvclJlc3BvbnNlKCJGaWxlIHVwbG9hZCByZXF1ZXN0IGZhaWxl''@;'; put 'put ''ZC4iLERlKSksUWUubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KX0pXX0pfSl9LG9lfShqKDYxMTgpLkJhc2VKb2JFeGVjdXRvcik7US5GaWxlVXBsb2FkZXI9Sn0sNDQ0NjpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZSxhZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8''@;'; put 'put ''KHJlPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4ocmU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKGRlLHZlKXtkZS5fX3Byb3RvX189dmV9fHxmdW5jdGlvbihkZSx2ZSl7Zm9yKHZhciBBZSBpbiB2ZSlPYmplY3QucHJvdG90''@;'; put 'put ''eXBlLmhhc093blByb3BlcnR5LmNhbGwodmUsQWUpJiYoZGVbQWVdPXZlW0FlXSl9KShvZSxjZSl9LGZ1bmN0aW9uKG9lLGNlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgY2UmJm51bGwhPT1jZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKGNlKSsi''@;'; put 'put ''IGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBkZSgpe3RoaXMuY29uc3RydWN0b3I9b2V9cmUob2UsY2UpLG9lLnByb3RvdHlwZT1udWxsPT09Y2U/T2JqZWN0LmNyZWF0ZShjZSk6KGRlLnByb3RvdHlwZT1jZS5wcm90b3R5cGUsbmV3IGRlKX0pLFk9dGhpcyYmdGhp''@;'; put 'put ''cy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKG9lLGNlLGRlLHZlKXtyZXR1cm4gbmV3KGRlfHwoZGU9UHJvbWlzZSkpKGZ1bmN0aW9uKEFlLGtlKXtmdW5jdGlvbiBTZShNZSl7dHJ5e1RlKHZlLm5leHQoTWUpKX1jYXRjaChoZSl7a2UoaGUpfX1mdW5jdGlvbiBJZShNZSl7dHJ5e1RlKHZlLnRocm93''@;'; put 'put ''KE1lKSl9Y2F0Y2goaGUpe2tlKGhlKX19ZnVuY3Rpb24gVGUoTWUpe3ZhciBoZTtNZS5kb25lP0FlKE1lLnZhbHVlKTooaGU9TWUudmFsdWUsaGUgaW5zdGFuY2VvZiBkZT9oZTpuZXcgZGUoZnVuY3Rpb24oTyl7TyhoZSl9KSkudGhlbihTZSxJZSl9VGUoKHZlPXZlLmFwcGx5KG9lLGNlfHxb''@;'; put 'put ''XSkpLm5leHQoKSl9KX0sVz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihvZSxjZSl7dmFyIGRlLHZlLEFlLGtlLFNlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkFlWzBdKXRocm93IEFlWzFdO3JldHVybiBBZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBrZT17''@;'; put 'put ''bmV4dDpJZSgwKSx0aHJvdzpJZSgxKSxyZXR1cm46SWUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihrZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxrZTtmdW5jdGlvbiBJZShUZSl7cmV0dXJuIGZ1bmN0aW9uKE1lKXtyZXR1cm4gZnVuY3Rpb24o''@;'; put 'put ''aGUpe2lmKGRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO1NlOyl0cnl7aWYoZGU9MSx2ZSYmKEFlPTImaGVbMF0/dmUucmV0dXJuOmhlWzBdP3ZlLnRocm93fHwoKEFlPXZlLnJldHVybikmJkFlLmNhbGwodmUpLDApOnZlLm5l''@;'; put 'put ''eHQpJiYhKEFlPUFlLmNhbGwodmUsaGVbMV0pKS5kb25lKXJldHVybiBBZTtzd2l0Y2godmU9MCxBZSYmKGhlPVsyJmhlWzBdLEFlLnZhbHVlXSksaGVbMF0pe2Nhc2UgMDpjYXNlIDE6QWU9aGU7YnJlYWs7Y2FzZSA0OnJldHVybiBTZS5sYWJlbCsrLHt2YWx1ZTpoZVsxXSxkb25lOiExfTtj''@;'; put 'put ''YXNlIDU6U2UubGFiZWwrKyx2ZT1oZVsxXSxoZT1bMF07Y29udGludWU7Y2FzZSA3OmhlPVNlLm9wcy5wb3AoKSxTZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgoQWU9KEFlPVNlLnRyeXMpLmxlbmd0aD4wJiZBZVtBZS5sZW5ndGgtMV0pfHw2IT09aGVbMF0mJjIhPT1oZVsw''@;'; put 'put ''XSkpe1NlPTA7Y29udGludWV9aWYoMz09PWhlWzBdJiYoIUFlfHxoZVsxXT5BZVswXSYmaGVbMV08QWVbM10pKXtTZS5sYWJlbD1oZVsxXTticmVha31pZig2PT09aGVbMF0mJlNlLmxhYmVsPEFlWzFdKXtTZS5sYWJlbD1BZVsxXSxBZT1oZTticmVha31pZihBZSYmU2UubGFiZWw8QWVbMl0p''@;'; put 'put ''e1NlLmxhYmVsPUFlWzJdLFNlLm9wcy5wdXNoKGhlKTticmVha31BZVsyXSYmU2Uub3BzLnBvcCgpLFNlLnRyeXMucG9wKCk7Y29udGludWV9aGU9Y2UuY2FsbChvZSxTZSl9Y2F0Y2goTyl7aGU9WzYsT10sdmU9MH1maW5hbGx5e2RlPUFlPTB9aWYoNSZoZVswXSl0aHJvdyBoZVsxXTtyZXR1''@;'; put 'put ''cm57dmFsdWU6aGVbMF0/aGVbMV06dm9pZCAwLGRvbmU6ITB9fShbVGUsTWVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5KZXNKb2JFeGVjdXRvcj12b2lkIDA7dmFyIE49aigzOTAwKSx0ZT1qKDEzOTUpLEs9aig2MTE4KSxKPWooNTky''@;'; put 'put ''OCksc2U9ZnVuY3Rpb24ob2Upe2Z1bmN0aW9uIGNlKGRlLHZlKXt2YXIgQWU9b2UuY2FsbCh0aGlzLGRlLE4uU2VydmVyVHlwZS5TYXNWaXlhKXx8dGhpcztyZXR1cm4gQWUuc2FzVml5YUFwaUNsaWVudD12ZSxBZX1yZXR1cm4gYWUoY2Usb2UpLGNlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0''@;'; put 'put ''aW9uKGRlLHZlLEFlLGtlLFNlLEllKXtyZXR1cm4gdm9pZCAwPT09SWUmJihJZT1bXSksWSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVGUsaGU9dGhpcztyZXR1cm4gVyh0aGlzLGZ1bmN0aW9uKE8pe3JldHVybiBUZT1rZXx8ZnVuY3Rpb24oKXtyZXR1cm4gUHJvbWlzZS5y''@;'; put 'put ''ZXNvbHZlKCl9LFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKHosZWUpe3ZhciBuZTtudWxsPT09KG5lPWhlLnNhc1ZpeWFBcGlDbGllbnQpfHx2b2lkIDA9PT1uZXx8bmUuZXhlY3V0ZUpvYihkZSxBZS5jb250ZXh0TmFtZSxBZS5kZWJ1Zyx2ZSxTZSkudGhlbihmdW5jdGlvbih4KXtoZS5zYXNW''@;'; put 'put ''aXlhQXBpQ2xpZW50LmFwcGVuZFJlcXVlc3QoeCxkZSxBZS5kZWJ1Zyk7dmFyIFA9KDAsSi5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcykoeCxJZSk7eihQKX0pLmNhdGNoKGZ1bmN0aW9uKHgpe3JldHVybiBZKGhlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgUD10aGlzO3Jl''@;'; put 'put ''dHVybiBXKHRoaXMsZnVuY3Rpb24oVil7c3dpdGNoKFYubGFiZWwpe2Nhc2UgMDpyZXR1cm4geCBpbnN0YW5jZW9mIHRlLkpvYkV4ZWN1dGlvbkVycm9yJiYodGhpcy5zYXNWaXlhQXBpQ2xpZW50LmFwcGVuZFJlcXVlc3QoeCxkZSxBZS5kZWJ1ZyksZWUobmV3IHRlLkVycm9yUmVzcG9uc2Uo''@;'; put 'put ''bnVsbD09eD92b2lkIDA6eC5tZXNzYWdlLHgpKSkseCBpbnN0YW5jZW9mIHRlLkxvZ2luUmVxdWlyZWRFcnJvcj8odGhpcy5hcHBlbmRXYWl0aW5nUmVxdWVzdChmdW5jdGlvbigpe3JldHVybiBQLmV4ZWN1dGUoZGUsdmUsQWUsa2UsU2UsSWUpLnRoZW4oZnVuY3Rpb24oVCl7eihUKX0sZnVu''@;'; put 'put ''Y3Rpb24oVCl7ZWUoVCl9KX0pLFs0LFRlKCldKTpbMywyXTtjYXNlIDE6cmV0dXJuIFYuc2VudCgpLFszLDNdO2Nhc2UgMjplZShuZXcgdGUuRXJyb3JSZXNwb25zZShudWxsPT14P3ZvaWQgMDp4Lm1lc3NhZ2UseCkpLFYubGFiZWw9MztjYXNlIDM6cmV0dXJuWzJdfX0pfSl9KX0pXX0pfSl9''@;'; put 'put ''LGNlfShLLkJhc2VKb2JFeGVjdXRvcik7US5KZXNKb2JFeGVjdXRvcj1zZX0sNjExODpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oTix0ZSxLLEope3JldHVybiBuZXcoS3x8KEs9UHJvbWlzZSkpKGZ1bmN0aW9uKHNl''@;'; put 'put ''LG9lKXtmdW5jdGlvbiBjZShBZSl7dHJ5e3ZlKEoubmV4dChBZSkpfWNhdGNoKGtlKXtvZShrZSl9fWZ1bmN0aW9uIGRlKEFlKXt0cnl7dmUoSi50aHJvdyhBZSkpfWNhdGNoKGtlKXtvZShrZSl9fWZ1bmN0aW9uIHZlKEFlKXt2YXIga2U7QWUuZG9uZT9zZShBZS52YWx1ZSk6KGtlPUFlLnZh''@;'; put 'put ''bHVlLGtlIGluc3RhbmNlb2YgSz9rZTpuZXcgSyhmdW5jdGlvbihTZSl7U2Uoa2UpfSkpLnRoZW4oY2UsZGUpfXZlKChKPUouYXBwbHkoTix0ZXx8W10pKS5uZXh0KCkpfSl9LGFlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKE4sdGUpe3ZhciBLLEosc2Usb2UsY2U9e2xhYmVs''@;'; put 'put ''OjAsc2VudDpmdW5jdGlvbigpe2lmKDEmc2VbMF0pdGhyb3cgc2VbMV07cmV0dXJuIHNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIG9lPXtuZXh0OmRlKDApLHRocm93OmRlKDEpLHJldHVybjpkZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKG9lW1N5bWJvbC5pdGVyYXRv''@;'; put 'put ''cl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLG9lO2Z1bmN0aW9uIGRlKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe3JldHVybiBmdW5jdGlvbihrZSl7aWYoSyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtjZTspdHJ5e2lmKEs9''@;'; put 'put ''MSxKJiYoc2U9MiZrZVswXT9KLnJldHVybjprZVswXT9KLnRocm93fHwoKHNlPUoucmV0dXJuKSYmc2UuY2FsbChKKSwwKTpKLm5leHQpJiYhKHNlPXNlLmNhbGwoSixrZVsxXSkpLmRvbmUpcmV0dXJuIHNlO3N3aXRjaChKPTAsc2UmJihrZT1bMiZrZVswXSxzZS52YWx1ZV0pLGtlWzBdKXtj''@;'; put 'put ''YXNlIDA6Y2FzZSAxOnNlPWtlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gY2UubGFiZWwrKyx7dmFsdWU6a2VbMV0sZG9uZTohMX07Y2FzZSA1OmNlLmxhYmVsKyssSj1rZVsxXSxrZT1bMF07Y29udGludWU7Y2FzZSA3OmtlPWNlLm9wcy5wb3AoKSxjZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1''@;'; put 'put ''bHQ6aWYoISgoc2U9KHNlPWNlLnRyeXMpLmxlbmd0aD4wJiZzZVtzZS5sZW5ndGgtMV0pfHw2IT09a2VbMF0mJjIhPT1rZVswXSkpe2NlPTA7Y29udGludWV9aWYoMz09PWtlWzBdJiYoIXNlfHxrZVsxXT5zZVswXSYma2VbMV08c2VbM10pKXtjZS5sYWJlbD1rZVsxXTticmVha31pZig2PT09''@;'; put 'put ''a2VbMF0mJmNlLmxhYmVsPHNlWzFdKXtjZS5sYWJlbD1zZVsxXSxzZT1rZTticmVha31pZihzZSYmY2UubGFiZWw8c2VbMl0pe2NlLmxhYmVsPXNlWzJdLGNlLm9wcy5wdXNoKGtlKTticmVha31zZVsyXSYmY2Uub3BzLnBvcCgpLGNlLnRyeXMucG9wKCk7Y29udGludWV9a2U9dGUuY2FsbChO''@;'; put 'put ''LGNlKX1jYXRjaChTZSl7a2U9WzYsU2VdLEo9MH1maW5hbGx5e0s9c2U9MH1pZig1JmtlWzBdKXRocm93IGtlWzFdO3JldHVybnt2YWx1ZTprZVswXT9rZVsxXTp2b2lkIDAsZG9uZTohMH19KFt2ZSxBZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6''@;'; put 'put ''ITB9KSxRLkJhc2VKb2JFeGVjdXRvcj12b2lkIDA7dmFyIFk9aig1OTI4KSxXPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gTih0ZSxLKXt2YXIgSj10aGlzO3RoaXMuc2VydmVyVXJsPXRlLHRoaXMuc2VydmVyVHlwZT1LLHRoaXMud2FpdGluZ1JlcXVlc3RzPVtdLHRoaXMucmVzZW5kV2FpdGluZ1Jl''@;'; put 'put ''cXVlc3RzPWZ1bmN0aW9uKCl7cmV0dXJuIHJlKEosdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBzZT10aGlzO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKG9lKXtzd2l0Y2gob2UubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCwoMCxZLmFzeW5jRm9yRWFjaCkodGhpcy53YWl0aW5nUmVxdWVz''@;'; put 'put ''dHMsZnVuY3Rpb24oY2Upe3JldHVybiByZShzZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIGFlKHRoaXMsZnVuY3Rpb24oZGUpe3N3aXRjaChkZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LGNlKCldO2Nhc2UgMTpyZXR1cm4gZGUuc2VudCgpLFsyXX19KX0pfSldO2Nhc2UgMTpy''@;'; put 'put ''ZXR1cm4gb2Uuc2VudCgpLHRoaXMud2FpdGluZ1JlcXVlc3RzPVtdLFsyXX19KX0pfX1yZXR1cm4gTi5wcm90b3R5cGUuYXBwZW5kV2FpdGluZ1JlcXVlc3Q9ZnVuY3Rpb24odGUpe3RoaXMud2FpdGluZ1JlcXVlc3RzLnB1c2godGUpfSxOLnByb3RvdHlwZS5nZXRSZXF1ZXN0UGFyYW1zPWZ1''@;'; put 'put ''bmN0aW9uKHRlKXt2YXIgSz17fTtyZXR1cm4gdGUuZGVidWcmJihLLl9vbWl0dGV4dGxvZz0iZmFsc2UiLEsuX29taXRzZXNzaW9ucmVzdWx0cz0iZmFsc2UiLEsuX2RlYnVnPTEzMSksS30sTn0oKTtRLkJhc2VKb2JFeGVjdXRvcj1XfSwyNjkzOmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmlj''@;'; put 'put ''dCI7dmFyIHJlLGFlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocmU9ZnVuY3Rpb24odmUsQWUpe3JldHVybihyZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oa2UsU2Upe2tlLl9fcHJvdG9fXz1TZX18fGZ1bmN0aW9uKGtl''@;'; put 'put ''LFNlKXtmb3IodmFyIEllIGluIFNlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChTZSxJZSkmJihrZVtJZV09U2VbSWVdKX0pKHZlLEFlKX0sZnVuY3Rpb24odmUsQWUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBBZSYmbnVsbCE9PUFlKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; put 'put ''IkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoQWUpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIGtlKCl7dGhpcy5jb25zdHJ1Y3Rvcj12ZX1yZSh2ZSxBZSksdmUucHJvdG90eXBlPW51bGw9PT1BZT9PYmplY3QuY3JlYXRlKEFlKTooa2UucHJvdG90eXBl''@;'; put 'put ''PUFlLnByb3RvdHlwZSxuZXcga2UpfSksWT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBZPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHZlKXtmb3IodmFyIEFlLGtlPTEsU2U9YXJndW1lbnRzLmxlbmd0aDtrZTxTZTtrZSsrKWZvcih2YXIgSWUgaW4gQWU9YXJndW1l''@;'; put 'put ''bnRzW2tlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoQWUsSWUpJiYodmVbSWVdPUFlW0llXSk7cmV0dXJuIHZlfSxZLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odmUsQWUsa2UsU2Upe3JldHVybiBuZXcoa2V8''@;'; put 'put ''fChrZT1Qcm9taXNlKSkoZnVuY3Rpb24oSWUsVGUpe2Z1bmN0aW9uIE1lKHope3RyeXtPKFNlLm5leHQoeikpfWNhdGNoKGVlKXtUZShlZSl9fWZ1bmN0aW9uIGhlKHope3RyeXtPKFNlLnRocm93KHopKX1jYXRjaChlZSl7VGUoZWUpfX1mdW5jdGlvbiBPKHope3ZhciBlZTt6LmRvbmU/SWUo''@;'; put 'put ''ei52YWx1ZSk6KGVlPXoudmFsdWUsZWUgaW5zdGFuY2VvZiBrZT9lZTpuZXcga2UoZnVuY3Rpb24obmUpe25lKGVlKX0pKS50aGVuKE1lLGhlKX1PKChTZT1TZS5hcHBseSh2ZSxBZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24odmUsQWUpe3Zh''@;'; put 'put ''ciBrZSxTZSxJZSxUZSxNZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZJZVswXSl0aHJvdyBJZVsxXTtyZXR1cm4gSWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gVGU9e25leHQ6aGUoMCksdGhyb3c6aGUoMSkscmV0dXJuOmhlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3lt''@;'; put 'put ''Ym9sJiYoVGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksVGU7ZnVuY3Rpb24gaGUoTyl7cmV0dXJuIGZ1bmN0aW9uKHope3JldHVybiBmdW5jdGlvbihlZSl7aWYoa2UpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5n''@;'; put 'put ''LiIpO2Zvcig7TWU7KXRyeXtpZihrZT0xLFNlJiYoSWU9MiZlZVswXT9TZS5yZXR1cm46ZWVbMF0/U2UudGhyb3d8fCgoSWU9U2UucmV0dXJuKSYmSWUuY2FsbChTZSksMCk6U2UubmV4dCkmJiEoSWU9SWUuY2FsbChTZSxlZVsxXSkpLmRvbmUpcmV0dXJuIEllO3N3aXRjaChTZT0wLEllJiYo''@;'; put 'put ''ZWU9WzImZWVbMF0sSWUudmFsdWVdKSxlZVswXSl7Y2FzZSAwOmNhc2UgMTpJZT1lZTticmVhaztjYXNlIDQ6cmV0dXJuIE1lLmxhYmVsKysse3ZhbHVlOmVlWzFdLGRvbmU6ITF9O2Nhc2UgNTpNZS5sYWJlbCsrLFNlPWVlWzFdLGVlPVswXTtjb250aW51ZTtjYXNlIDc6ZWU9TWUub3BzLnBv''@;'; put 'put ''cCgpLE1lLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChJZT0oSWU9TWUudHJ5cykubGVuZ3RoPjAmJkllW0llLmxlbmd0aC0xXSl8fDYhPT1lZVswXSYmMiE9PWVlWzBdKSl7TWU9MDtjb250aW51ZX1pZigzPT09ZWVbMF0mJighSWV8fGVlWzFdPkllWzBdJiZlZVsxXTxJZVsz''@;'; put 'put ''XSkpe01lLmxhYmVsPWVlWzFdO2JyZWFrfWlmKDY9PT1lZVswXSYmTWUubGFiZWw8SWVbMV0pe01lLmxhYmVsPUllWzFdLEllPWVlO2JyZWFrfWlmKEllJiZNZS5sYWJlbDxJZVsyXSl7TWUubGFiZWw9SWVbMl0sTWUub3BzLnB1c2goZWUpO2JyZWFrfUllWzJdJiZNZS5vcHMucG9wKCksTWUu''@;'; put 'put ''dHJ5cy5wb3AoKTtjb250aW51ZX1lZT1BZS5jYWxsKHZlLE1lKX1jYXRjaChuZSl7ZWU9WzYsbmVdLFNlPTB9ZmluYWxseXtrZT1JZT0wfWlmKDUmZWVbMF0pdGhyb3cgZWVbMV07cmV0dXJue3ZhbHVlOmVlWzBdP2VlWzFdOnZvaWQgMCxkb25lOiEwfX0oW08sel0pfX19O09iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNhczlKb2JFeGVjdXRvcj12b2lkIDA7dmFyIHRlPWooNjIzMCksSz1qKDEzOTUpLEo9aig1OTI4KSxzZT1qKDYxMTgpLG9lPWooNzk1KSxjZT1mdW5jdGlvbih2ZSl7ZnVuY3Rpb24gQWUoa2UsU2UsSWUsVGUsTWUpe3Zh''@;'; put 'put ''ciBoZT12ZS5jYWxsKHRoaXMsa2UsU2UpfHx0aGlzO3JldHVybiBoZS5qb2JzUGF0aD1JZSxoZS5yZXF1ZXN0Q2xpZW50PVRlLGhlLnNhczlSZXF1ZXN0Q2xpZW50PW5ldyBvZS5TYXM5UmVxdWVzdENsaWVudChrZSxNZSksaGV9cmV0dXJuIGFlKEFlLHZlKSxBZS5wcm90b3R5cGUuZXhlY3V0''@;'; put 'put ''ZT1mdW5jdGlvbihrZSxTZSxJZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFRlLE1lLGhlLE8seixlZSxuZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oeCl7c3dpdGNoKHgubGFiZWwpe2Nhc2UgMDppZihUZT0oMCxKLmlzUmVsYXRpdmVQYXRoKShr''@;'; put 'put ''ZSkmJkllLmFwcExvYz9JZS5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStrZS5yZXBsYWNlKC9eXC8vLCIiKTprZSxNZT0iIi5jb25jYXQoSWUuc2VydmVyVXJsKS5jb25jYXQodGhpcy5qb2JzUGF0aCwiPyIpLmNvbmNhdCgiX3Byb2dyYW09IitUZSksTWU9IiIuY29uY2F0KE1lKS5jb25j''@;'; put 'put ''YXQoSWUudXNlcm5hbWUmJkllLnBhc3N3b3JkPyImX3VzZXJuYW1lPSIrSWUudXNlcm5hbWUrIiZfcGFzc3dvcmQ9IitJZS5wYXNzd29yZDoiIiksTWU9IiIuY29uY2F0KE1lKS5jb25jYXQoSWUuZGVidWc/IiZfZGVidWc9MTMxIjoiIiksaGU9WSh7fSx0aGlzLmdldFJlcXVlc3RQYXJhbXMo''@;'; put 'put ''SWUpKSxPPW5ldyB0ZSxTZSl0cnl7Tz1kZShPLFNlKX1jYXRjaChQKXtyZXR1cm5bMixQcm9taXNlLnJlamVjdChuZXcgSy5FcnJvclJlc3BvbnNlKG51bGw9PVA/dm9pZCAwOlAubWVzc2FnZSxQKSldfWVsc2UgU2U9IiI7Zm9yKHogaW4gaGUpaGUuaGFzT3duUHJvcGVydHkoeikmJk8uYXBw''@;'; put 'put ''ZW5kKHosaGVbel0pO3JldHVybls0LHRoaXMuc2FzOVJlcXVlc3RDbGllbnQubG9naW4oSWUudXNlcm5hbWUsSWUucGFzc3dvcmQsdGhpcy5qb2JzUGF0aCldO2Nhc2UgMTpyZXR1cm4geC5zZW50KCksZWU9U2UmJk9iamVjdC5rZXlzKFNlKS5sZW5ndGg/Im11bHRpcGFydC9mb3JtLWRhdGE7''@;'; put 'put ''IGJvdW5kYXJ5PSIrTy5fYm91bmRhcnk6InRleHQvcGxhaW4iLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKFAsVil7cmV0dXJuIG5lLnNhczlSZXF1ZXN0Q2xpZW50LnBvc3QoTWUsTyx2b2lkIDAsZWUse0FjY2VwdDoiKi8qIixDb25uZWN0aW9uOiJLZWVwLUFsaXZlIn0pLnRoZW4oZnVuY3Rp''@;'; put 'put ''b24oVCl7bmUucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KFQsa2UsSWUuZGVidWcpLFAoVCl9KS5jYXRjaChmdW5jdGlvbihUKXt2YXIgUz1UO1QucmVzdWx0JiYiIiE9PVQucmVzdWx0P1M9VC5yZXN1bHQ6VC5tZXNzYWdlJiYoUz1ULm1lc3NhZ2UpLG5lLnJlcXVlc3RDbGllbnQuYXBw''@;'; put 'put ''ZW5kUmVxdWVzdChTLGtlLEllLmRlYnVnKSxWKG5ldyBLLkVycm9yUmVzcG9uc2UobnVsbD09VD92b2lkIDA6VC5tZXNzYWdlLFQpKX0pfSldfX0pfSl9LEFlLnByb3RvdHlwZS5nZXRSZXF1ZXN0UGFyYW1zPWZ1bmN0aW9uKGtlKXt2YXIgU2U9e307cmV0dXJuIGtlLmRlYnVnJiYoU2UuX2Rl''@;'; put 'put ''YnVnPTEzMSksU2V9LEFlfShzZS5CYXNlSm9iRXhlY3V0b3IpO1EuU2FzOUpvYkV4ZWN1dG9yPWNlO3ZhciBkZT1mdW5jdGlvbih2ZSxBZSl7Zm9yKHZhciBrZSBpbiBBZSl7dmFyIFNlPWtlLEllPSgwLEouY29udmVydFRvQ1NWKShBZSxrZSk7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVO''@;'; put 'put ''R1RIIj09PUllKXRocm93IG5ldyBFcnJvcigiVGhlIG1heCBsZW5ndGggb2YgYSBzdHJpbmcgdmFsdWUgaW4gU0FTanMgaXMgMzI3NjUgY2hhcmFjdGVycy4iKTt2ZS5hcHBlbmQoU2UsSWUse2ZpbGVuYW1lOiIiLmNvbmNhdChTZSwiLmNzdiIpLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi9j''@;'; put 'put ''c3YifSl9cmV0dXJuIHZlfX0sMTA2NTpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZSxhZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHJlPWZ1bmN0aW9uKGRlLHZlKXtyZXR1cm4ocmU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJy''@;'; put 'put ''YXkmJmZ1bmN0aW9uKEFlLGtlKXtBZS5fX3Byb3RvX189a2V9fHxmdW5jdGlvbihBZSxrZSl7Zm9yKHZhciBTZSBpbiBrZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoa2UsU2UpJiYoQWVbU2VdPWtlW1NlXSl9KShkZSx2ZSl9LGZ1bmN0aW9uKGRlLHZlKXtpZigiZnVu''@;'; put 'put ''Y3Rpb24iIT10eXBlb2YgdmUmJm51bGwhPT12ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKHZlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBBZSgpe3RoaXMuY29uc3RydWN0b3I9ZGV9cmUoZGUsdmUpLGRlLnBy''@;'; put 'put ''b3RvdHlwZT1udWxsPT09dmU/T2JqZWN0LmNyZWF0ZSh2ZSk6KEFlLnByb3RvdHlwZT12ZS5wcm90b3R5cGUsbmV3IEFlKX0pLFk9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gWT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihkZSl7Zm9yKHZhciB2ZSxBZT0xLGtlPWFy''@;'; put 'put ''Z3VtZW50cy5sZW5ndGg7QWU8a2U7QWUrKylmb3IodmFyIFNlIGluIHZlPWFyZ3VtZW50c1tBZV0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHZlLFNlKSYmKGRlW1NlXT12ZVtTZV0pO3JldHVybiBkZX0sWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFc9dGhpcyYmdGhp''@;'; put 'put ''cy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGRlLHZlLEFlLGtlKXtyZXR1cm4gbmV3KEFlfHwoQWU9UHJvbWlzZSkpKGZ1bmN0aW9uKFNlLEllKXtmdW5jdGlvbiBUZShPKXt0cnl7aGUoa2UubmV4dChPKSl9Y2F0Y2goeil7SWUoeil9fWZ1bmN0aW9uIE1lKE8pe3RyeXtoZShrZS50aHJvdyhPKSl9''@;'; put 'put ''Y2F0Y2goeil7SWUoeil9fWZ1bmN0aW9uIGhlKE8pe3ZhciB6O08uZG9uZT9TZShPLnZhbHVlKTooej1PLnZhbHVlLHogaW5zdGFuY2VvZiBBZT96Om5ldyBBZShmdW5jdGlvbihlZSl7ZWUoeil9KSkudGhlbihUZSxNZSl9aGUoKGtlPWtlLmFwcGx5KGRlLHZlfHxbXSkpLm5leHQoKSl9KX0s''@;'; put 'put ''Tj10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbihkZSx2ZSl7dmFyIEFlLGtlLFNlLEllLFRlPXtsYWJlbDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJlNlWzBdKXRocm93IFNlWzFdO3JldHVybiBTZVsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBJZT17bmV4dDpNZSgwKSx0aHJv''@;'; put 'put ''dzpNZSgxKSxyZXR1cm46TWUoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihJZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxJZTtmdW5jdGlvbiBNZShoZSl7cmV0dXJuIGZ1bmN0aW9uKE8pe3JldHVybiBmdW5jdGlvbih6KXtpZihBZSl0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtUZTspdHJ5e2lmKEFlPTEsa2UmJihTZT0yJnpbMF0/a2UucmV0dXJuOnpbMF0/a2UudGhyb3d8fCgoU2U9a2UucmV0dXJuKSYmU2UuY2FsbChrZSksMCk6a2UubmV4dCkmJiEoU2U9U2UuY2FsbChr''@;'; put 'put ''ZSx6WzFdKSkuZG9uZSlyZXR1cm4gU2U7c3dpdGNoKGtlPTAsU2UmJih6PVsyJnpbMF0sU2UudmFsdWVdKSx6WzBdKXtjYXNlIDA6Y2FzZSAxOlNlPXo7YnJlYWs7Y2FzZSA0OnJldHVybiBUZS5sYWJlbCsrLHt2YWx1ZTp6WzFdLGRvbmU6ITF9O2Nhc2UgNTpUZS5sYWJlbCsrLGtlPXpbMV0s''@;'; put 'put ''ej1bMF07Y29udGludWU7Y2FzZSA3Ono9VGUub3BzLnBvcCgpLFRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChTZT0oU2U9VGUudHJ5cykubGVuZ3RoPjAmJlNlW1NlLmxlbmd0aC0xXSl8fDYhPT16WzBdJiYyIT09elswXSkpe1RlPTA7Y29udGludWV9aWYoMz09PXpbMF0m''@;'; put 'put ''JighU2V8fHpbMV0+U2VbMF0mJnpbMV08U2VbM10pKXtUZS5sYWJlbD16WzFdO2JyZWFrfWlmKDY9PT16WzBdJiZUZS5sYWJlbDxTZVsxXSl7VGUubGFiZWw9U2VbMV0sU2U9ejticmVha31pZihTZSYmVGUubGFiZWw8U2VbMl0pe1RlLmxhYmVsPVNlWzJdLFRlLm9wcy5wdXNoKHopO2JyZWFr''@;'; put 'put ''fVNlWzJdJiZUZS5vcHMucG9wKCksVGUudHJ5cy5wb3AoKTtjb250aW51ZX16PXZlLmNhbGwoZGUsVGUpfWNhdGNoKGVlKXt6PVs2LGVlXSxrZT0wfWZpbmFsbHl7QWU9U2U9MH1pZig1JnpbMF0pdGhyb3cgelsxXTtyZXR1cm57dmFsdWU6elswXT96WzFdOnZvaWQgMCxkb25lOiEwfX0oW2hl''@;'; put 'put ''LE9dKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TYXNqc0pvYkV4ZWN1dG9yPXZvaWQgMDt2YXIgdGU9aig2MjMwKSxLPWooMzkwMCksSj1qKDEzOTUpLHNlPWooNDAzNyksb2U9aig1OTI4KSxjZT1mdW5jdGlvbihkZSl7ZnVuY3Rpb24g''@;'; put 'put ''dmUoQWUsa2UsU2Upe3ZhciBJZT1kZS5jYWxsKHRoaXMsQWUsSy5TZXJ2ZXJUeXBlLlNhc2pzKXx8dGhpcztyZXR1cm4gSWUuam9ic1BhdGg9a2UsSWUucmVxdWVzdENsaWVudD1TZSxJZX1yZXR1cm4gYWUodmUsZGUpLHZlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKEFlLGtlLFNlLEll''@;'; put 'put ''LFRlLE1lKXtyZXR1cm4gdm9pZCAwPT09TWUmJihNZT1bXSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgaGUsTyx6LGVlLG5lLHgsUCxUPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihTKXtpZihoZT1JZSxPPSgwLG9lLmlzUmVsYXRpdmVQYXRoKShBZSkmJlNlLmFw''@;'; put 'put ''cExvYz9TZS5hcHBMb2MucmVwbGFjZSgvXC8/JC8sIi8iKStBZS5yZXBsYWNlKC9eXC8vLCIiKTpBZSx6PSIiLmNvbmNhdChTZS5zZXJ2ZXJVcmwpLmNvbmNhdCh0aGlzLmpvYnNQYXRoLCIvPyIpLmNvbmNhdCgiX3Byb2dyYW09IitPKSxlZT1ZKHt9LHRoaXMuZ2V0UmVxdWVzdFBhcmFtcyhT''@;'; put 'put ''ZSkpLG5lPSJ1bmRlZmluZWQiPT10eXBlb2YgRm9ybURhdGE/bmV3IHRlOm5ldyBGb3JtRGF0YSxrZSl0cnl7bmU9KDAsc2UuZ2VuZXJhdGVGaWxlVXBsb2FkRm9ybSkobmUsa2UpfWNhdGNoKEYpe3JldHVyblsyLFByb21pc2UucmVqZWN0KG5ldyBKLkVycm9yUmVzcG9uc2UobnVsbD09Rj92''@;'; put 'put ''b2lkIDA6Ri5tZXNzYWdlLEYpKV19Zm9yKHggaW4gZWUpZWUuaGFzT3duUHJvcGVydHkoeCkmJm5lLmFwcGVuZCh4LGVlW3hdKTtyZXR1cm4gUD1uZSBpbnN0YW5jZW9mIHRlJiYidW5kZWZpbmVkIj09dHlwZW9mIEZvcm1EYXRhPyJtdWx0aXBhcnQvZm9ybS1kYXRhOyBib3VuZGFyeT0iLmNv''@;'; put 'put ''bmNhdChuZS5nZXRCb3VuZGFyeSgpKTp2b2lkIDAsWzIsbmV3IFByb21pc2UoZnVuY3Rpb24oRix5ZSl7VC5yZXF1ZXN0Q2xpZW50LnBvc3QoeixuZSxudWxsPT1UZT92b2lkIDA6VGUuYWNjZXNzX3Rva2VuLFApLnRoZW4oZnVuY3Rpb24oQ2Upe3JldHVybiBXKFQsdm9pZCAwLHZvaWQgMCxm''@;'; put 'put ''dW5jdGlvbigpe3ZhciBEZTtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKFBlKXtpZihPYmplY3QuZW50cmllcyhDZS5yZXN1bHQpLmxlbmd0aDwxKXRocm93IG5ldyBKLkpvYkV4ZWN1dGlvbkVycm9yKDAsIk5vIHdlYm91dCB3YXMgcmV0dXJuZWQgYnkgam9iICIuY29uY2F0KE8sIi4gIFBsZWFz''@;'; put 'put ''ZSBjaGVjayB0aGUgU0FTIGxvZyBmb3IgbW9yZSBpbmZvLiIpLENlLmxvZyk7cmV0dXJuIHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KENlLEFlLFNlLmRlYnVnKSxEZT0oMCxvZS5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcykoQ2UsTWUpLEYoRGUpLFsyXX0pfSl9KS5j''@;'; put 'put ''YXRjaChmdW5jdGlvbihDZSl7cmV0dXJuIFcoVCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIERlPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihQZSl7c3dpdGNoKFBlLmxhYmVsKXtjYXNlIDA6cmV0dXJuIENlIGluc3RhbmNlb2YgSi5Kb2JFeGVjdXRpb25FcnJvciYmKHRoaXMu''@;'; put 'put ''cmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KENlLEFlLFNlLmRlYnVnKSx5ZShuZXcgSi5FcnJvclJlc3BvbnNlKG51bGw9PUNlP3ZvaWQgMDpDZS5tZXNzYWdlLENlKSkpLENlIGluc3RhbmNlb2YgSi5Mb2dpblJlcXVpcmVkRXJyb3I/KEllfHx5ZShuZXcgSi5FcnJvclJlc3BvbnNlKCJS''@;'; put 'put ''ZXF1ZXN0IGlzIG5vdCBhdXRoZW50aWNhdGVkLiBNYWtlIHN1cmUgLmVudiBmaWxlIGV4aXN0cyB3aXRoIHZhbGlkIGNyZWRlbnRpYWxzLiIsQ2UpKSx0aGlzLmFwcGVuZFdhaXRpbmdSZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIERlLmV4ZWN1dGUoQWUsa2UsU2UsSWUsVGUsTWUpLnRoZW4o''@;'; put 'put ''ZnVuY3Rpb24oUWUpe0YoUWUpfSxmdW5jdGlvbihRZSl7eWUoUWUpfSl9KSxoZT9bNCxoZSgpXTpbMywyXSk6WzMsM107Y2FzZSAxOlBlLnNlbnQoKSxQZS5sYWJlbD0yO2Nhc2UgMjpyZXR1cm5bMyw0XTtjYXNlIDM6eWUobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1DZT92b2lkIDA6Q2Uu''@;'; put 'put ''bWVzc2FnZSxDZSkpLFBlLmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSl9KV19KX0pfSx2ZX0oaig2MTE4KS5CYXNlSm9iRXhlY3V0b3IpO1EuU2FzanNKb2JFeGVjdXRvcj1jZX0sNjA4NDpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZSxhZT10aGlzJiZ0aGlzLl9f''@;'; put 'put ''ZXh0ZW5kc3x8KHJlPWZ1bmN0aW9uKGtlLFNlKXtyZXR1cm4ocmU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEllLFRlKXtJZS5fX3Byb3RvX189VGV9fHxmdW5jdGlvbihJZSxUZSl7Zm9yKHZhciBNZSBpbiBUZSlPYmpl''@;'; put 'put ''Y3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVGUsTWUpJiYoSWVbTWVdPVRlW01lXSl9KShrZSxTZSl9LGZ1bmN0aW9uKGtlLFNlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgU2UmJm51bGwhPT1TZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3Ry''@;'; put 'put ''aW5nKFNlKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBJZSgpe3RoaXMuY29uc3RydWN0b3I9a2V9cmUoa2UsU2UpLGtlLnByb3RvdHlwZT1udWxsPT09U2U/T2JqZWN0LmNyZWF0ZShTZSk6KEllLnByb3RvdHlwZT1TZS5wcm90b3R5cGUsbmV3IEllKX0pLFk9''@;'; put 'put ''dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gWT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihrZSl7Zm9yKHZhciBTZSxJZT0xLFRlPWFyZ3VtZW50cy5sZW5ndGg7SWU8VGU7SWUrKylmb3IodmFyIE1lIGluIFNlPWFyZ3VtZW50c1tJZV0pT2JqZWN0LnByb3RvdHlwZS5o''@;'; put 'put ''YXNPd25Qcm9wZXJ0eS5jYWxsKFNlLE1lKSYmKGtlW01lXT1TZVtNZV0pO3JldHVybiBrZX0sWS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LFc9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKGtlLFNlLEllLFRlKXtyZXR1cm4gbmV3KEllfHwoSWU9UHJvbWlzZSkpKGZ1bmN0aW9uKE1l''@;'; put 'put ''LGhlKXtmdW5jdGlvbiBPKG5lKXt0cnl7ZWUoVGUubmV4dChuZSkpfWNhdGNoKHgpe2hlKHgpfX1mdW5jdGlvbiB6KG5lKXt0cnl7ZWUoVGUudGhyb3cobmUpKX1jYXRjaCh4KXtoZSh4KX19ZnVuY3Rpb24gZWUobmUpe3ZhciB4O25lLmRvbmU/TWUobmUudmFsdWUpOih4PW5lLnZhbHVlLHgg''@;'; put 'put ''aW5zdGFuY2VvZiBJZT94Om5ldyBJZShmdW5jdGlvbihQKXtQKHgpfSkpLnRoZW4oTyx6KX1lZSgoVGU9VGUuYXBwbHkoa2UsU2V8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGtlLFNlKXt2YXIgSWUsVGUsTWUsaGUsTz17bGFiZWw6MCxzZW50''@;'; put 'put ''OmZ1bmN0aW9uKCl7aWYoMSZNZVswXSl0aHJvdyBNZVsxXTtyZXR1cm4gTWVbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gaGU9e25leHQ6eigwKSx0aHJvdzp6KDEpLHJldHVybjp6KDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoaGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB0aGlzfSksaGU7ZnVuY3Rpb24geihlZSl7cmV0dXJuIGZ1bmN0aW9uKG5lKXtyZXR1cm4gZnVuY3Rpb24oeCl7aWYoSWUpdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7TzspdHJ5e2lmKEllPTEsVGUmJihNZT0y''@;'; put 'put ''JnhbMF0/VGUucmV0dXJuOnhbMF0/VGUudGhyb3d8fCgoTWU9VGUucmV0dXJuKSYmTWUuY2FsbChUZSksMCk6VGUubmV4dCkmJiEoTWU9TWUuY2FsbChUZSx4WzFdKSkuZG9uZSlyZXR1cm4gTWU7c3dpdGNoKFRlPTAsTWUmJih4PVsyJnhbMF0sTWUudmFsdWVdKSx4WzBdKXtjYXNlIDA6Y2Fz''@;'; put 'put ''ZSAxOk1lPXg7YnJlYWs7Y2FzZSA0OnJldHVybiBPLmxhYmVsKysse3ZhbHVlOnhbMV0sZG9uZTohMX07Y2FzZSA1Ok8ubGFiZWwrKyxUZT14WzFdLHg9WzBdO2NvbnRpbnVlO2Nhc2UgNzp4PU8ub3BzLnBvcCgpLE8udHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKE1lPShNZT1P''@;'; put 'put ''LnRyeXMpLmxlbmd0aD4wJiZNZVtNZS5sZW5ndGgtMV0pfHw2IT09eFswXSYmMiE9PXhbMF0pKXtPPTA7Y29udGludWV9aWYoMz09PXhbMF0mJighTWV8fHhbMV0+TWVbMF0mJnhbMV08TWVbM10pKXtPLmxhYmVsPXhbMV07YnJlYWt9aWYoNj09PXhbMF0mJk8ubGFiZWw8TWVbMV0pe08ubGFi''@;'; put 'put ''ZWw9TWVbMV0sTWU9eDticmVha31pZihNZSYmTy5sYWJlbDxNZVsyXSl7Ty5sYWJlbD1NZVsyXSxPLm9wcy5wdXNoKHgpO2JyZWFrfU1lWzJdJiZPLm9wcy5wb3AoKSxPLnRyeXMucG9wKCk7Y29udGludWV9eD1TZS5jYWxsKGtlLE8pfWNhdGNoKFApe3g9WzYsUF0sVGU9MH1maW5hbGx5e0ll''@;'; put 'put ''PU1lPTB9aWYoNSZ4WzBdKXRocm93IHhbMV07cmV0dXJue3ZhbHVlOnhbMF0/eFsxXTp2b2lkIDAsZG9uZTohMH19KFtlZSxuZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLldlYkpvYkV4ZWN1dG9yPXZvaWQgMDt2YXIgdGU9aig2MjMw''@;'; put 'put ''KSxLPWooMzkwMCksSj1qKDEzOTUpLHNlPWooNDAzNyksb2U9aigyMTcwKSxjZT1qKDU5MjgpLGRlPWooNjExOCksdmU9aigyODEzKSxBZT1mdW5jdGlvbihrZSl7ZnVuY3Rpb24gU2UoSWUsVGUsTWUsaGUsTyl7dmFyIHo9a2UuY2FsbCh0aGlzLEllLFRlKXx8dGhpcztyZXR1cm4gei5qb2Jz''@;'; put 'put ''UGF0aD1NZSx6LnJlcXVlc3RDbGllbnQ9aGUsei5zYXNWaXlhQXBpQ2xpZW50PU8sen1yZXR1cm4gYWUoU2Usa2UpLFNlLnByb3RvdHlwZS5leGVjdXRlPWZ1bmN0aW9uKEllLFRlLE1lLGhlLE8seil7cmV0dXJuIHZvaWQgMD09PXomJih6PVtdKSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5j''@;'; put 'put ''dGlvbigpe3ZhciBlZSxuZSx4LFAsVixULFMsRix5ZSxEZSxQZSxRZSxndD10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24od3Qpe3N3aXRjaCh3dC5sYWJlbCl7Y2FzZSAwOmlmKGVlPWhlLG5lPSgwLGNlLmlzUmVsYXRpdmVQYXRoKShJZSkmJk1lLmFwcExvYz9NZS5hcHBMb2MucmVwbGFj''@;'; put 'put ''ZSgvXC8/JC8sIi8iKStJZS5yZXBsYWNlKC9eXC8vLCIiKTpJZSx4PSIiLmNvbmNhdChNZS5zZXJ2ZXJVcmwpLmNvbmNhdCh0aGlzLmpvYnNQYXRoLCIvPyIpLmNvbmNhdCgiX3Byb2dyYW09IituZSksTWUuc2VydmVyVHlwZSE9PUsuU2VydmVyVHlwZS5TYXNWaXlhKXJldHVyblszLDVdO1A9''@;'; put 'put ''dm9pZCAwLHd0LmxhYmVsPTE7Y2FzZSAxOnJldHVybiB3dC50cnlzLnB1c2goWzEsMywsNF0pLFs0LHRoaXMuZ2V0Sm9iVXJpKEllKV07Y2FzZSAyOnJldHVybiBQPXd0LnNlbnQoKSxbMyw0XTtjYXNlIDM6cmV0dXJuIFY9d3Quc2VudCgpLFsyLG5ldyBQcm9taXNlKGZ1bmN0aW9uKG10LHZ0''@;'; put 'put ''KXtyZXR1cm4gVyhndCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEF0PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihodCl7c3dpdGNoKGh0LmxhYmVsKXtjYXNlIDA6cmV0dXJuIFYgaW5zdGFuY2VvZiBKLkxvZ2luUmVxdWlyZWRFcnJvcj8odGhpcy5hcHBlbmRXYWl0aW5nUmVx''@;'; put 'put ''dWVzdChmdW5jdGlvbigpe3JldHVybiBBdC5leGVjdXRlKEllLFRlLE1lLGhlLE8seikudGhlbihmdW5jdGlvbihCdCl7bXQoQnQpfSxmdW5jdGlvbihCdCl7dnQoQnQpfSl9KSxlZT9bNCxlZSgpXTpbMywyXSk6WzMsM107Y2FzZSAxOmh0LnNlbnQoKSxodC5sYWJlbD0yO2Nhc2UgMjpyZXR1''@;'; put 'put ''cm5bMyw0XTtjYXNlIDM6dnQobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1WP3ZvaWQgMDpWLm1lc3NhZ2UsVikpLGh0LmxhYmVsPTQ7Y2FzZSA0OnJldHVyblsyXX19KX0pfSldO2Nhc2UgNDp4Kz1QLmxlbmd0aD4wPyImX2pvYj0iK1A6IiIsUC5sZW5ndGg+MCYmKHg9KHgrPSImX2pvYj0i''@;'; put 'put ''K1ApLnJlcGxhY2UoIl9wcm9ncmFtPSIsIl9fcHJvZ3JhbT0iKSkseCs9TWUuY29udGV4dE5hbWUmJiEvXHMvLnRlc3QoTWUuY29udGV4dE5hbWUpPyImX2NvbnRleHRuYW1lPSIuY29uY2F0KE1lLmNvbnRleHROYW1lKToiIix3dC5sYWJlbD01O2Nhc2UgNTppZihUPVkoe30sdGhpcy5nZXRS''@;'; put 'put ''ZXF1ZXN0UGFyYW1zKE1lKSksUz0idW5kZWZpbmVkIj09dHlwZW9mIEZvcm1EYXRhP25ldyB0ZTpuZXcgRm9ybURhdGEsVGUpaWYoRj1KU09OLnN0cmluZ2lmeShUZSksTWUuc2VydmVyVHlwZT09PUsuU2VydmVyVHlwZS5TYXM5fHxGLmxlbmd0aD41ZTV8fEYuaW5jbHVkZXMoIjsiKSl0cnl7''@;'; put 'put ''Uz0oMCxzZS5nZW5lcmF0ZUZpbGVVcGxvYWRGb3JtKShTLFRlKX1jYXRjaChtdCl7cmV0dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1tdD92b2lkIDA6bXQubWVzc2FnZSxtdCkpXX1lbHNlIHRyeXt5ZT0oMCxvZS5nZW5lcmF0ZVRhYmxlVXBsb2FkRm9y''@;'; put 'put ''bSkoUyxUZSksRGU9eWUucmVxdWVzdFBhcmFtcyxTPXllLmZvcm1EYXRhLFQ9WShZKHt9LFQpLERlKX1jYXRjaChtdCl7cmV0dXJuWzIsUHJvbWlzZS5yZWplY3QobmV3IEouRXJyb3JSZXNwb25zZShudWxsPT1tdD92b2lkIDA6bXQubWVzc2FnZSxtdCkpXX1mb3IoUGUgaW4gVClULmhhc093''@;'; put 'put ''blByb3BlcnR5KFBlKSYmUy5hcHBlbmQoUGUsVFtQZV0pO3JldHVybiBRZT1TIGluc3RhbmNlb2YgdGUmJiJ1bmRlZmluZWQiPT10eXBlb2YgRm9ybURhdGE/Im11bHRpcGFydC9mb3JtLWRhdGE7IGJvdW5kYXJ5PSIuY29uY2F0KFMuZ2V0Qm91bmRhcnkoKSk6dm9pZCAwLFsyLG5ldyBQcm9t''@;'; put 'put ''aXNlKGZ1bmN0aW9uKG10LHZ0KXtndC5yZXF1ZXN0Q2xpZW50LnBvc3QoeCxTLG51bGw9PU8/dm9pZCAwOk8uYWNjZXNzX3Rva2VuLFFlKS50aGVuKGZ1bmN0aW9uKEF0KXtyZXR1cm4gVyhndCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGh0LEJ0O3JldHVybiBOKHRoaXMsZnVuY3Rp''@;'; put 'put ''b24ob24pe3N3aXRjaChvbi5sYWJlbCl7Y2FzZSAwOmlmKHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KEF0LEllLE1lLmRlYnVnKSxodD1BdC5yZXN1bHQsIU1lLmRlYnVnKXJldHVyblszLDRdO3N3aXRjaCh0aGlzLnNlcnZlclR5cGUpe2Nhc2UgSy5TZXJ2ZXJUeXBlLlNhc1Zp''@;'; put 'put ''eWE6cmV0dXJuWzMsMV07Y2FzZSBLLlNlcnZlclR5cGUuU2FzOTpyZXR1cm5bMywzXX1yZXR1cm5bMyw0XTtjYXNlIDE6cmV0dXJuWzQsKDAsY2UucGFyc2VTYXNWaXlhRGVidWdSZXNwb25zZSkoQXQucmVzdWx0LHRoaXMucmVxdWVzdENsaWVudCx0aGlzLnNlcnZlclVybCldO2Nhc2UgMjpy''@;'; put 'put ''ZXR1cm4gaHQ9b24uc2VudCgpLFszLDRdO2Nhc2UgMzpyZXR1cm4gaHQ9InN0cmluZyI9PXR5cGVvZiBBdC5yZXN1bHQ/KDAsdmUucGFyc2VXZWJvdXRSZXNwb25zZSkoQXQucmVzdWx0LHgpOkF0LnJlc3VsdCxbMyw0XTtjYXNlIDQ6cmV0dXJuIEJ0PSgwLGNlLmFwcGVuZEV4dHJhUmVzcG9u''@;'; put 'put ''c2VBdHRyaWJ1dGVzKSh7cmVzdWx0Omh0LGxvZzpBdC5sb2d9LHopLG10KEJ0KSxbMl19fSl9KX0pLmNhdGNoKGZ1bmN0aW9uKEF0KXtyZXR1cm4gVyhndCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGh0PXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihCdCl7c3dpdGNoKEJ0Lmxh''@;'; put 'put ''YmVsKXtjYXNlIDA6cmV0dXJuIEF0IGluc3RhbmNlb2YgSi5Kb2JFeGVjdXRpb25FcnJvciYmKHRoaXMucmVxdWVzdENsaWVudC5hcHBlbmRSZXF1ZXN0KEF0LEllLE1lLmRlYnVnKSx2dChuZXcgSi5FcnJvclJlc3BvbnNlKG51bGw9PUF0P3ZvaWQgMDpBdC5tZXNzYWdlLEF0KSkpLEF0IGlu''@;'; put 'put ''c3RhbmNlb2YgSi5Mb2dpblJlcXVpcmVkRXJyb3I/KGhlfHx2dChuZXcgSi5FcnJvclJlc3BvbnNlKCJSZXF1ZXN0IGlzIG5vdCBhdXRoZW50aWNhdGVkLiBNYWtlIHN1cmUgLmVudiBmaWxlIGV4aXN0cyB3aXRoIHZhbGlkIGNyZWRlbnRpYWxzLiIsQXQpKSx0aGlzLmFwcGVuZFdhaXRpbmdS''@;'; put 'put ''ZXF1ZXN0KGZ1bmN0aW9uKCl7cmV0dXJuIGh0LmV4ZWN1dGUoSWUsVGUsTWUsaGUsTyx6KS50aGVuKGZ1bmN0aW9uKG9uKXttdChvbil9LGZ1bmN0aW9uKG9uKXt2dChvbil9KX0pLGVlP1s0LGVlKCldOlszLDJdKTpbMywzXTtjYXNlIDE6QnQuc2VudCgpLEJ0LmxhYmVsPTI7Y2FzZSAyOnJl''@;'; put 'put ''dHVyblszLDRdO2Nhc2UgMzp2dChuZXcgSi5FcnJvclJlc3BvbnNlKG51bGw9PUF0P3ZvaWQgMDpBdC5tZXNzYWdlLEF0KSksQnQubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzJdfX0pfSl9KX0pXX19KX0pfSxTZS5wcm90b3R5cGUuZ2V0Sm9iVXJpPWZ1bmN0aW9uKEllKXtyZXR1cm4gVyh0aGlz''@;'; put 'put ''LHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVGUsTWUsaGUsTyx6LGVlO3JldHVybiBOKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOmlmKCF0aGlzLnNhc1ZpeWFBcGlDbGllbnQpcmV0dXJuWzIsIiJdO2lmKFRlPSIiLCgwLGNlLmlzUmVsYXRpdmVQYXRo''@;'; put 'put ''KShJZSk/KE89SWUuc3BsaXQoIi8iKSxNZT1PLmxlbmd0aD4xP09bMF06IiIsaGU9Ty5sZW5ndGg+MT9PWzFdOiIiKTooTz1JZS5zcGxpdCgiLyIpLGhlPU8ucG9wKCl8fCIiLE1lPU8uam9pbigiLyIpKSwhaGUpdGhyb3cgbmV3IEVycm9yKCJKb2IgbmFtZSBpcyBlbXB0eSwgbnVsbCBvciB1''@;'; put 'put ''bmRlZmluZWQuIik7cmV0dXJuWzQsdGhpcy5zYXNWaXlhQXBpQ2xpZW50LmdldEpvYnNJbkZvbGRlcihNZSldO2Nhc2UgMTpyZXR1cm4oej1uZS5zZW50KCkpJiYoZWU9ei5maW5kKGZ1bmN0aW9uKHgpe3JldHVybiB4Lm5hbWU9PT1oZSYmImpvYkRlZmluaXRpb24iPT09eC5jb250ZW50VHlw''@;'; put 'put ''ZX0pKSYmKFRlPWVlLnVyaSksWzIsVGVdfX0pfSl9LFNlfShkZS5CYXNlSm9iRXhlY3V0b3IpO1EuV2ViSm9iRXhlY3V0b3I9QWV9LDgyMTc6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2NyZWF0ZUJpbmRpbmd8fChPYmplY3QuY3JlYXRlP2Z1bmN0''@;'; put 'put ''aW9uKFksVyxOLHRlKXt2b2lkIDA9PT10ZSYmKHRlPU4pO3ZhciBLPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVyxOKTtLJiYhKCJnZXQiaW4gSz8hVy5fX2VzTW9kdWxlOksud3JpdGFibGV8fEsuY29uZmlndXJhYmxlKXx8KEs9e2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIFdbTl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFksdGUsSyl9OmZ1bmN0aW9uKFksVyxOLHRlKXt2b2lkIDA9PT10ZSYmKHRlPU4pLFlbdGVdPVdbTl19KSxhZT10aGlzJiZ0aGlzLl9fZXhwb3J0U3Rhcnx8ZnVuY3Rpb24oWSxXKXtmb3IodmFyIE4gaW4gWSkiZGVmYXVs''@;'; put 'put ''dCI9PT1OfHxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoVyxOKXx8cmUoVyxZLE4pfTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksYWUoaigxNTcwKSxRKSxhZShqKDM0OTEpLFEpLGFlKGooNDQ0NiksUSksYWUoaig2MTE4KSxR''@;'; put 'put ''KSxhZShqKDI2OTMpLFEpLGFlKGooNjA4NCksUSksYWUoaigxMDY1KSxRKX0sNDU4ODpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT1qKDQxNTUpLGFlPWooNTEwOCksWT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBZPU9iamVjdC5hc3NpZ258fGZ1''@;'; put 'put ''bmN0aW9uKFNlKXtmb3IodmFyIEllLFRlPTEsTWU9YXJndW1lbnRzLmxlbmd0aDtUZTxNZTtUZSsrKWZvcih2YXIgaGUgaW4gSWU9YXJndW1lbnRzW1RlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSWUsaGUpJiYoU2VbaGVdPUllW2hlXSk7cmV0dXJuIFNlfSxZLmFw''@;'; put 'put ''cGx5KHRoaXMsYXJndW1lbnRzKX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oU2UsSWUsVGUsTWUpe3JldHVybiBuZXcoVGV8fChUZT1Qcm9taXNlKSkoZnVuY3Rpb24oaGUsTyl7ZnVuY3Rpb24geih4KXt0cnl7bmUoTWUubmV4dCh4KSl9Y2F0Y2goUCl7TyhQKX19ZnVuY3Rp''@;'; put 'put ''b24gZWUoeCl7dHJ5e25lKE1lLnRocm93KHgpKX1jYXRjaChQKXtPKFApfX1mdW5jdGlvbiBuZSh4KXt2YXIgUDt4LmRvbmU/aGUoeC52YWx1ZSk6KFA9eC52YWx1ZSxQIGluc3RhbmNlb2YgVGU/UDpuZXcgVGUoZnVuY3Rpb24oVil7VihQKX0pKS50aGVuKHosZWUpfW5lKChNZT1NZS5hcHBs''@;'; put 'put ''eShTZSxJZXx8W10pKS5uZXh0KCkpfSl9LE49dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oU2UsSWUpe3ZhciBUZSxNZSxoZSxPLHo9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmaGVbMF0pdGhyb3cgaGVbMV07cmV0dXJuIGhlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0''@;'; put 'put ''dXJuIE89e25leHQ6ZWUoMCksdGhyb3c6ZWUoMSkscmV0dXJuOmVlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoT1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxPO2Z1bmN0aW9uIGVlKG5lKXtyZXR1cm4gZnVuY3Rpb24oeCl7cmV0dXJuIGZ1bmN0''@;'; put 'put ''aW9uKFApe2lmKFRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO3o7KXRyeXtpZihUZT0xLE1lJiYoaGU9MiZQWzBdP01lLnJldHVybjpQWzBdP01lLnRocm93fHwoKGhlPU1lLnJldHVybikmJmhlLmNhbGwoTWUpLDApOk1lLm5l''@;'; put 'put ''eHQpJiYhKGhlPWhlLmNhbGwoTWUsUFsxXSkpLmRvbmUpcmV0dXJuIGhlO3N3aXRjaChNZT0wLGhlJiYoUD1bMiZQWzBdLGhlLnZhbHVlXSksUFswXSl7Y2FzZSAwOmNhc2UgMTpoZT1QO2JyZWFrO2Nhc2UgNDpyZXR1cm4gei5sYWJlbCsrLHt2YWx1ZTpQWzFdLGRvbmU6ITF9O2Nhc2UgNTp6''@;'; put 'put ''LmxhYmVsKyssTWU9UFsxXSxQPVswXTtjb250aW51ZTtjYXNlIDc6UD16Lm9wcy5wb3AoKSx6LnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChoZT0oaGU9ei50cnlzKS5sZW5ndGg+MCYmaGVbaGUubGVuZ3RoLTFdKXx8NiE9PVBbMF0mJjIhPT1QWzBdKSl7ej0wO2NvbnRpbnVl''@;'; put 'put ''fWlmKDM9PT1QWzBdJiYoIWhlfHxQWzFdPmhlWzBdJiZQWzFdPGhlWzNdKSl7ei5sYWJlbD1QWzFdO2JyZWFrfWlmKDY9PT1QWzBdJiZ6LmxhYmVsPGhlWzFdKXt6LmxhYmVsPWhlWzFdLGhlPVA7YnJlYWt9aWYoaGUmJnoubGFiZWw8aGVbMl0pe3oubGFiZWw9aGVbMl0sei5vcHMucHVzaChQ''@;'; put 'put ''KTticmVha31oZVsyXSYmei5vcHMucG9wKCksei50cnlzLnBvcCgpO2NvbnRpbnVlfVA9SWUuY2FsbChTZSx6KX1jYXRjaChWKXtQPVs2LFZdLE1lPTB9ZmluYWxseXtUZT1oZT0wfWlmKDUmUFswXSl0aHJvdyBQWzFdO3JldHVybnt2YWx1ZTpQWzBdP1BbMV06dm9pZCAwLGRvbmU6ITB9fShb''@;'; put 'put ''bmUseF0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnRocm93SWZFcnJvcj1RLlJlcXVlc3RDbGllbnQ9dm9pZCAwO3ZhciB0ZT1qKDgzNzMpLEs9aigxNTI3KSxKPWooMTM5NSksc2U9aigyODEzKSxvZT1qKDk3NzgpLGNlPWooOTUyNiks''@;'; put 'put ''ZGU9aig1OTI4KSx2ZT1qKDEwMDUpLEFlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gU2UoSWUsVGUsTWUpe3ZhciBoZT10aGlzO3RoaXMuYmFzZVVybD1JZSx0aGlzLnJlcXVlc3RzPVtdLHRoaXMucmVxdWVzdHNMaW1pdD0xMCx0aGlzLmNzcmZUb2tlbj17aGVhZGVyTmFtZToiIix2YWx1ZToiIn0s''@;'; put 'put ''dGhpcy5nZXRSZXF1ZXN0cz1mdW5jdGlvbigpe3JldHVybiBoZS5yZXF1ZXN0c30sdGhpcy5jbGVhclJlcXVlc3RzPWZ1bmN0aW9uKCl7aGUucmVxdWVzdHM9W119LHRoaXMuYXV0aG9yaXplPWZ1bmN0aW9uKE8pe3JldHVybiBXKGhlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgeixl''@;'; put 'put ''ZSxuZSx4LFAsVixULFMsRix5ZSxDZSxEZTtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKFBlKXtzd2l0Y2goUGUubGFiZWwpe2Nhc2UgMDpmb3IoZWU9e30sbmU9Ty5zcGxpdCgiPGJvZHk+IilbMV0uc3BsaXQoIjwvYm9keT4iKVswXSwoeD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSku''@;'; put 'put ''aW5uZXJIVE1MPW5lLFA9eC5xdWVyeVNlbGVjdG9yKCIjYXBwbGljYXRpb25fYXV0aG9yaXphdGlvbiIpLHo9UD90aGlzLmJhc2VVcmwrUC5nZXRBdHRyaWJ1dGUoImFjdGlvbiIpOm51bGwsVj1udWxsPT1QP3ZvaWQgMDpQLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0IiksVD0wLFM9VjtUPFMu''@;'; put 'put ''bGVuZ3RoO1QrKykidXNlcl9vYXV0aF9hcHByb3ZhbCI9PT0oRj1TW1RdKS5uYW1lJiYoRi52YWx1ZT0idHJ1ZSIpLGVlW0YubmFtZV09Ri52YWx1ZTtmb3IoRGUgaW4oeWU9T2JqZWN0LmtleXMoZWUpLmZpbmQoZnVuY3Rpb24oUWUpe3JldHVybiBudWxsPT1RZT92b2lkIDA6UWUudG9Mb3dl''@;'; put 'put ''ckNhc2UoKS5pbmNsdWRlcygiY3NyZiIpfSkpJiYodGhpcy5jc3JmVG9rZW4udmFsdWU9ZWVbeWVdLHRoaXMuY3NyZlRva2VuLmhlYWRlck5hbWU9dGhpcy5jc3JmVG9rZW4uaGVhZGVyTmFtZXx8IngtY3NyZi10b2tlbiIpLENlPW5ldyBGb3JtRGF0YSxlZSllZS5oYXNPd25Qcm9wZXJ0eShE''@;'; put 'put ''ZSkmJkNlLmFwcGVuZChEZSxlZVtEZV0pO2lmKCF6KXRocm93IG5ldyBFcnJvcigiQXV0aCBGb3JtIFVSTCBpcyBudWxsIG9yIHVuZGVmaW5lZC4iKTtyZXR1cm5bNCx0aGlzLmh0dHBDbGllbnQucG9zdCh6LENlLHtyZXNwb25zZVR5cGU6InRleHQiLGhlYWRlcnM6e0FjY2VwdDoiKi8qIiwi''@;'; put 'put ''Q29udGVudC1UeXBlIjoidGV4dC9wbGFpbiJ9fSkudGhlbihmdW5jdGlvbihRZSl7cmV0dXJuIFFlLmRhdGF9KS5jYXRjaChmdW5jdGlvbihRZSl7KHJlLmxvZ2dlcnx8YWUpLmVycm9yKFFlKX0pXTtjYXNlIDE6cmV0dXJuWzIsUGUuc2VudCgpXX19KX0pfSx0aGlzLmdldEhlYWRlcnM9ZnVu''@;'; put 'put ''Y3Rpb24oTyx6KXt2YXIgZWU9e307cmV0dXJuImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIhPT16JiYoZWVbIkNvbnRlbnQtVHlwZSJdPXopLGVlLkFjY2VwdD0iYXBwbGljYXRpb24vanNvbiI9PT16PyJhcHBsaWNhdGlvbi9qc29uIjoiKi8qIixPJiYoZWUuQXV0aG9yaXph''@;'; put 'put ''dGlvbj0iQmVhcmVyICIuY29uY2F0KE8pKSxoZS5jc3JmVG9rZW4uaGVhZGVyTmFtZSYmaGUuY3NyZlRva2VuLnZhbHVlJiYoZWVbaGUuY3NyZlRva2VuLmhlYWRlck5hbWVdPWhlLmNzcmZUb2tlbi52YWx1ZSksZWV9LHRoaXMucGFyc2VBbmRTZXRGaWxlVXBsb2FkQ3NyZlRva2VuPWZ1bmN0''@;'; put 'put ''aW9uKE8pe3ZhciB6PWhlLnBhcnNlQ3NyZlRva2VuKE8pO3omJihoZS5maWxlVXBsb2FkQ3NyZlRva2VuPXopfSx0aGlzLnBhcnNlQW5kU2V0Q3NyZlRva2VuPWZ1bmN0aW9uKE8pe3ZhciB6PWhlLnBhcnNlQ3NyZlRva2VuKE8pO3omJihoZS5jc3JmVG9rZW49eil9LHRoaXMucGFyc2VDc3Jm''@;'; put 'put ''VG9rZW49ZnVuY3Rpb24oTyl7dmFyIHosZWU9bnVsbD09PSh6PU8uaGVhZGVyc1sieC1jc3JmLWhlYWRlciJdKXx8dm9pZCAwPT09ej92b2lkIDA6ei50b0xvd2VyQ2FzZSgpO2lmKGVlKXJldHVybntoZWFkZXJOYW1lOmVlLHZhbHVlOk8uaGVhZGVyc1tlZV18fCIifX0sdGhpcy5oYW5kbGVF''@;'; put 'put ''cnJvcj1mdW5jdGlvbihPLHosZWUpe3JldHVybiB2b2lkIDA9PT1lZSYmKGVlPSExKSxXKGhlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbmUseDtyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKFApe3N3aXRjaChQLmxhYmVsKXtjYXNlIDA6cmV0dXJuIG5lPU8ucmVzcG9uc2UsTyBpbnN0''@;'; put 'put ''YW5jZW9mIEouQXV0aG9yaXplRXJyb3I/WzQsdGhpcy5odHRwQ2xpZW50LmdldChPLmNvbmZpcm1Vcmwse3Jlc3BvbnNlVHlwZToidGV4dCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6InRleHQvcGxhaW4iLEFjY2VwdDoiKi8qIn19KS5jYXRjaChmdW5jdGlvbihWKXt0aHJvdygwLG9lLnBy''@;'; put 'put ''ZWZpeE1lc3NhZ2UpKFYsIkVycm9yIHdoaWxlIGdldHRpbmcgZXJyb3IgY29uZmlybVVybC4gIil9KV06WzMsNV07Y2FzZSAxOnJldHVybiB4PVAuc2VudCgpLCgwLEsuaXNBdXRob3JpemVGb3JtUmVxdWlyZWQpKG51bGw9PXg/dm9pZCAwOnguZGF0YSk/WzQsdGhpcy5hdXRob3JpemUoeC5k''@;'; put 'put ''YXRhKS5jYXRjaChmdW5jdGlvbihWKXt0aHJvdygwLG9lLnByZWZpeE1lc3NhZ2UpKFYsIkVycm9yIHdoaWxlIGF1dGhvcml6aW5nIHJlcXVlc3QuICIpfSldOlszLDNdO2Nhc2UgMjpQLnNlbnQoKSxQLmxhYmVsPTM7Y2FzZSAzOnJldHVybls0LHooKS5jYXRjaChmdW5jdGlvbihWKXt0aHJv''@;'; put 'put ''dygwLG9lLnByZWZpeE1lc3NhZ2UpKFYsIkVycm9yIHdoaWxlIGV4ZWN1dGluZyBjYWxsYmFjayBpbiBoYW5kbGVFcnJvci4gIil9KV07Y2FzZSA0OnJldHVyblsyLFAuc2VudCgpXTtjYXNlIDU6aWYoTyBpbnN0YW5jZW9mIEouTG9naW5SZXF1aXJlZEVycm9yKXRocm93IHRoaXMuY2xlYXJD''@;'; put 'put ''c3JmVG9rZW5zKCksTztyZXR1cm4gTyBpbnN0YW5jZW9mIHZlLkludmFsaWRTQVNqc0NzcmZFcnJvcj9bNCx0aGlzLmh0dHBDbGllbnQuZ2V0KCIvIix7d2l0aENyZWRlbnRpYWxzOiEwfSkudGhlbihmdW5jdGlvbihWKXt2YXIgVCxTPW51bGw9PT0oVD0vPHNjcmlwdD5kb2N1bWVudC5jb29r''@;'; put 'put ''aWUgPSAnKFhTUkYtVE9LRU49Lio7IE1heC1BZ2U9ODY0MDA7IFNhbWVTaXRlPVN0cmljdDsgUGF0aD1cLzspJzxcL3NjcmlwdD4vLmV4ZWMoVi5kYXRhKSl8fHZvaWQgMD09PVQ/dm9pZCAwOlRbMV07UyYmKGRvY3VtZW50LmNvb2tpZT1TKX0pLmNhdGNoKGZ1bmN0aW9uKFYpe3Rocm93KDAs''@;'; put 'put ''b2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgcmUtZmV0Y2hpbmcgQ1NSRiB0b2tlbi4iKX0pXTpbMyw4XTtjYXNlIDY6cmV0dXJuIFAuc2VudCgpLFs0LHooKS5jYXRjaChmdW5jdGlvbihWKXt0aHJvdygwLG9lLnByZWZpeE1lc3NhZ2UpKFYsIkVycm9yIHdoaWxlIGV4ZWN1dGlu''@;'; put 'put ''ZyBjYWxsYmFjayBpbiBoYW5kbGVFcnJvci4gIil9KV07Y2FzZSA3OnJldHVyblsyLFAuc2VudCgpXTtjYXNlIDg6cmV0dXJuIDQwMyE9PShudWxsPT1uZT92b2lkIDA6bmUuc3RhdHVzKSYmNDQ5IT09KG51bGw9PW5lP3ZvaWQgMDpuZS5zdGF0dXMpP1szLDExXToodGhpcy5wYXJzZUFuZFNl''@;'; put 'put ''dENzcmZUb2tlbihuZSksdGhpcy5jc3JmVG9rZW4uaGVhZGVyTmFtZSYmdGhpcy5jc3JmVG9rZW4udmFsdWU/WzQseigpLmNhdGNoKGZ1bmN0aW9uKFYpe3Rocm93KDAsb2UucHJlZml4TWVzc2FnZSkoViwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGNhbGxiYWNrIGluIGhhbmRsZUVycm9yLiAi''@;'; put 'put ''KX0pXTpbMywxMF0pO2Nhc2UgOTpyZXR1cm5bMixQLnNlbnQoKV07Y2FzZSAxMDp0aHJvdyBPO2Nhc2UgMTE6aWYoNDA0PT09KG51bGw9PW5lP3ZvaWQgMDpuZS5zdGF0dXMpKXRocm93IG5ldyBKLk5vdEZvdW5kRXJyb3IobmUuY29uZmlnLnVybCk7aWYoNTAyPT09KG51bGw9PW5lP3ZvaWQg''@;'; put 'put ''MDpuZS5zdGF0dXMpKXtpZihlZSl0aHJvdyBuZXcgSi5JbnRlcm5hbFNlcnZlckVycm9yO3JldHVyblsyXX1QLmxhYmVsPTEyO2Nhc2UgMTI6dGhyb3cgTy5pc0F4aW9zRXJyb3ImJiJVTkFCTEVfVE9fVkVSSUZZX0xFQUZfU0lHTkFUVVJFIj09PU8uY29kZT9uZXcgSi5DZXJ0aWZpY2F0ZUVy''@;'; put 'put ''cm9yKE8ubWVzc2FnZSk6Ty5tZXNzYWdlP086KDAsb2UucHJlZml4TWVzc2FnZSkoTywiRXJyb3Igd2hpbGUgaGFuZGxpbmcgZXJyb3IuICIpfX0pfSl9LHRoaXMuY3JlYXRlSHR0cENsaWVudChJZSxUZSksTWUmJih0aGlzLnJlcXVlc3RzTGltaXQ9TWUpfXJldHVybiBTZS5wcm90b3R5cGUu''@;'; put 'put ''c2V0Q29uZmlnPWZ1bmN0aW9uKEllLFRlKXt0aGlzLmNyZWF0ZUh0dHBDbGllbnQoSWUsVGUpfSxTZS5wcm90b3R5cGUuc2F2ZUxvY2FsU3RvcmFnZVRva2VuPWZ1bmN0aW9uKEllLFRlKXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiYWNjZXNzVG9rZW4iLEllKSxsb2NhbFN0b3JhZ2Uuc2V0SXRl''@;'; put 'put ''bSgicmVmcmVzaFRva2VuIixUZSl9LFNlLnByb3RvdHlwZS5nZXRDc3JmVG9rZW49ZnVuY3Rpb24oSWUpe3JldHVybiB2b2lkIDA9PT1JZSYmKEllPSJnZW5lcmFsIiksImZpbGUiPT09SWU/dGhpcy5maWxlVXBsb2FkQ3NyZlRva2VuOnRoaXMuY3NyZlRva2VufSxTZS5wcm90b3R5cGUuY2xl''@;'; put 'put ''YXJDc3JmVG9rZW5zPWZ1bmN0aW9uKCl7dGhpcy5jc3JmVG9rZW49e2hlYWRlck5hbWU6IiIsdmFsdWU6IiJ9LHRoaXMuZmlsZVVwbG9hZENzcmZUb2tlbj17aGVhZGVyTmFtZToiIix2YWx1ZToiIn19LFNlLnByb3RvdHlwZS5jbGVhckxvY2FsU3RvcmFnZVRva2Vucz1mdW5jdGlvbigpe2xv''@;'; put 'put ''Y2FsU3RvcmFnZS5zZXRJdGVtKCJhY2Nlc3NUb2tlbiIsIiIpLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJyZWZyZXNoVG9rZW4iLCIiKX0sU2UucHJvdG90eXBlLmdldEJhc2VVcmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlZmF1bHRzLmJhc2VVUkx8fCIifSxTZS5wcm90''@;'; put 'put ''b3R5cGUuYXBwZW5kUmVxdWVzdD1mdW5jdGlvbihJZSxUZSxNZSl7dmFyIGhlPSIiLE89IiIsej1udWxsO01lJiYobnVsbCE9SWUmJkllLmxvZz8oaGU9KDAsZGUucGFyc2VTb3VyY2VDb2RlKShJZS5sb2cpLE89KDAsZGUucGFyc2VHZW5lcmF0ZWRDb2RlKShJZS5sb2cpLHo9bnVsbCE9SWUm''@;'; put 'put ''JkllLnJlc3VsdD9JZS5yZXN1bHQuV09SSzpJZS5sb2cpOm51bGwhPUllJiZJZS5yZXN1bHQmJigic3RyaW5nIj09dHlwZW9mIEllLnJlc3VsdCYmKGhlPSgwLGRlLnBhcnNlU291cmNlQ29kZSkoSWUucmVzdWx0KSxPPSgwLGRlLnBhcnNlR2VuZXJhdGVkQ29kZSkoSWUucmVzdWx0KSksej1J''@;'; put 'put ''ZS5yZXN1bHQuV09SSykpO3ZhciBlZT0ic3RyaW5nIj09dHlwZW9mKG51bGw9PUllP3ZvaWQgMDpJZS5yZXN1bHQpP251bGw9PUllP3ZvaWQgMDpJZS5yZXN1bHQ6SlNPTi5zdHJpbmdpZnkobnVsbD09SWU/dm9pZCAwOkllLnJlc3VsdCxudWxsLDIpO3RoaXMucmVxdWVzdHMucHVzaCh7bG9n''@;'; put 'put ''RmlsZToobnVsbD09SWU/dm9pZCAwOkllLmxvZyl8fGVlfHxJZSxzZXJ2aWNlTGluazpUZSx0aW1lc3RhbXA6bmV3IERhdGUsc291cmNlQ29kZTpoZSxnZW5lcmF0ZWRDb2RlOk8sU0FTV09SSzp6fSksdGhpcy5yZXF1ZXN0cy5sZW5ndGg+dGhpcy5yZXF1ZXN0c0xpbWl0JiZ0aGlzLnJlcXVl''@;'; put 'put ''c3RzLnNwbGljZSgwLDEpfSxTZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKEllLFRlLE1lLGhlLE8pe3JldHVybiB2b2lkIDA9PT1NZSYmKE1lPSJhcHBsaWNhdGlvbi9qc29uIiksdm9pZCAwPT09aGUmJihoZT17fSksdm9pZCAwPT09TyYmKE89ITEpLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIHosZWUsbmU9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHgpe3JldHVybiB6PVkoWSh7fSx0aGlzLmdldEhlYWRlcnMoVGUsTWUpKSxoZSksZWU9e2hlYWRlcnM6eixyZXNwb25zZVR5cGU6InRleHQvcGxhaW4iPT09TWU/InRleHQiOiJqc29uIix3aXRoQ3JlZGVu''@;'; put 'put ''dGlhbHM6ITB9LCJ0ZXh0L3BsYWluIj09PU1lJiYoZWUudHJhbnNmb3JtUmVzcG9uc2U9dm9pZCAwKSxbMix0aGlzLmh0dHBDbGllbnQuZ2V0KEllLGVlKS50aGVuKGZ1bmN0aW9uKFApe3JldHVybigwLFEudGhyb3dJZkVycm9yKShQKSxuZS5wYXJzZVJlc3BvbnNlKFApfSkuY2F0Y2goZnVu''@;'; put 'put ''Y3Rpb24oUCl7cmV0dXJuIFcobmUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBWPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihUKXtzd2l0Y2goVC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxlRXJyb3IoUCxmdW5jdGlvbigpe3JldHVybiBWLmdldChJZSxUZSxN''@;'; put 'put ''ZSxoZSkuY2F0Y2goZnVuY3Rpb24oUyl7dGhyb3coMCxvZS5wcmVmaXhNZXNzYWdlKShTLCJFcnJvciB3aGlsZSBleGVjdXRpbmcgaGFuZGxlIGVycm9yIGNhbGxiYWNrLiAiKX0pfSxPKV07Y2FzZSAxOnJldHVyblsyLFQuc2VudCgpXX19KX0pfSldfSl9KX0sU2UucHJvdG90eXBlLnBvc3Q9''@;'; put 'put ''ZnVuY3Rpb24oSWUsVGUsTWUsaGUsTyx6KXtyZXR1cm4gdm9pZCAwPT09aGUmJihoZT0iYXBwbGljYXRpb24vanNvbiIpLHZvaWQgMD09PU8mJihPPXt9KSx2b2lkIDA9PT16JiYoej17fSksVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgZWUsbmU9dGhpcztyZXR1cm4gTih0''@;'; put 'put ''aGlzLGZ1bmN0aW9uKHgpe3JldHVybiBlZT1ZKFkoe30sdGhpcy5nZXRIZWFkZXJzKE1lLGhlKSksTyksWzIsdGhpcy5odHRwQ2xpZW50LnBvc3QoSWUsVGUsWSh7aGVhZGVyczplZSx3aXRoQ3JlZGVudGlhbHM6ITB9LHopKS50aGVuKGZ1bmN0aW9uKFApe3JldHVybigwLFEudGhyb3dJZkVy''@;'; put 'put ''cm9yKShQKSxuZS5wYXJzZVJlc3BvbnNlKFApfSkuY2F0Y2goZnVuY3Rpb24oUCl7cmV0dXJuIFcobmUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBWPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihUKXtzd2l0Y2goVC5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxl''@;'; put 'put ''RXJyb3IoUCxmdW5jdGlvbigpe3JldHVybiBWLnBvc3QoSWUsVGUsTWUsaGUsTyl9KV07Y2FzZSAxOnJldHVyblsyLFQuc2VudCgpXX19KX0pfSldfSl9KX0sU2UucHJvdG90eXBlLnB1dD1mdW5jdGlvbihJZSxUZSxNZSxoZSl7cmV0dXJuIHZvaWQgMD09PWhlJiYoaGU9e30pLFcodGhpcyx2''@;'; put 'put ''b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE8sej10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oZWUpe3JldHVybiBPPVkoWSh7fSx0aGlzLmdldEhlYWRlcnMoTWUsImFwcGxpY2F0aW9uL2pzb24iKSksaGUpLFsyLHRoaXMuaHR0cENsaWVudC5wdXQoSWUsVGUse2hlYWRlcnM6Tyx3''@;'; put 'put ''aXRoQ3JlZGVudGlhbHM6ITB9KS50aGVuKGZ1bmN0aW9uKG5lKXtyZXR1cm4oMCxRLnRocm93SWZFcnJvcikobmUpLHoucGFyc2VSZXNwb25zZShuZSl9KS5jYXRjaChmdW5jdGlvbihuZSl7cmV0dXJuIFcoeix2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHg9dGhpcztyZXR1cm4gTih0''@;'; put 'put ''aGlzLGZ1bmN0aW9uKFApe3N3aXRjaChQLmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcihuZSxmdW5jdGlvbigpe3JldHVybiB4LnB1dChJZSxUZSxNZSxoZSl9KV07Y2FzZSAxOnJldHVyblsyLFAuc2VudCgpXX19KX0pfSldfSl9KX0sU2UucHJvdG90eXBlLmRlbGV0''@;'; put 'put ''ZT1mdW5jdGlvbihJZSxUZSl7cmV0dXJuIFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIE1lLGhlPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihPKXtyZXR1cm4gTWU9dGhpcy5nZXRIZWFkZXJzKFRlLCJhcHBsaWNhdGlvbi9qc29uIiksWzIsdGhpcy5odHRwQ2xpZW50''@;'; put 'put ''LmRlbGV0ZShJZSx7aGVhZGVyczpNZSx3aXRoQ3JlZGVudGlhbHM6ITB9KS50aGVuKGZ1bmN0aW9uKHope3JldHVybigwLFEudGhyb3dJZkVycm9yKSh6KSxoZS5wYXJzZVJlc3BvbnNlKHopfSkuY2F0Y2goZnVuY3Rpb24oeil7cmV0dXJuIFcoaGUsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigp''@;'; put 'put ''e3ZhciBlZT10aGlzO3JldHVybiBOKHRoaXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOnJldHVybls0LHRoaXMuaGFuZGxlRXJyb3IoeixmdW5jdGlvbigpe3JldHVybiBlZS5kZWxldGUoSWUsVGUpfSldO2Nhc2UgMTpyZXR1cm5bMixuZS5zZW50KCldfX0pfSl9KV19''@;'; put 'put ''KX0pfSxTZS5wcm90b3R5cGUucGF0Y2g9ZnVuY3Rpb24oSWUsVGUsTWUpe3JldHVybiB2b2lkIDA9PT1UZSYmKFRlPXt9KSxXKHRoaXMsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBoZSxPPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbih6KXtyZXR1cm4gaGU9dGhpcy5nZXRIZWFk''@;'; put 'put ''ZXJzKE1lLCJhcHBsaWNhdGlvbi9qc29uIiksWzIsdGhpcy5odHRwQ2xpZW50LnBhdGNoKEllLFRlLHtoZWFkZXJzOmhlLHdpdGhDcmVkZW50aWFsczohMH0pLnRoZW4oZnVuY3Rpb24oZWUpe3JldHVybigwLFEudGhyb3dJZkVycm9yKShlZSksTy5wYXJzZVJlc3BvbnNlKGVlKX0pLmNhdGNo''@;'; put 'put ''KGZ1bmN0aW9uKGVlKXtyZXR1cm4gVyhPLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgbmU9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKHgpe3N3aXRjaCh4LmxhYmVsKXtjYXNlIDA6cmV0dXJuWzQsdGhpcy5oYW5kbGVFcnJvcihlZSxmdW5jdGlvbigpe3JldHVybiBuZS5wYXRj''@;'; put 'put ''aChJZSxUZSxNZSl9KV07Y2FzZSAxOnJldHVyblsyLHguc2VudCgpXX19KX0pfSldfSl9KX0sU2UucHJvdG90eXBlLnVwbG9hZEZpbGU9ZnVuY3Rpb24oSWUsVGUsTWUpe3ZhciBoZTtyZXR1cm4gVyh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTyx6LGVlO3JldHVybiBOKHRo''@;'; put 'put ''aXMsZnVuY3Rpb24obmUpe3N3aXRjaChuZS5sYWJlbCl7Y2FzZSAwOk89dGhpcy5nZXRIZWFkZXJzKE1lLCJhcHBsaWNhdGlvbi9qc29uIiksIShudWxsPT09KGhlPXRoaXMuZmlsZVVwbG9hZENzcmZUb2tlbil8fHZvaWQgMD09PWhlKSYmaGUudmFsdWUmJihPW3RoaXMuZmlsZVVwbG9hZENz''@;'; put 'put ''cmZUb2tlbi5oZWFkZXJOYW1lXT10aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW4udmFsdWUpLG5lLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBuZS50cnlzLnB1c2goWzEsMywsNF0pLFs0LHRoaXMuaHR0cENsaWVudC5wb3N0KEllLFRlLHtoZWFkZXJzOk8sdHJhbnNmb3JtUmVxdWVzdDpmdW5jdGlv''@;'; put 'put ''bih4KXtyZXR1cm4geH19KV07Y2FzZSAyOnJldHVyblsyLHtyZXN1bHQ6KGVlPW5lLnNlbnQoKSkuZGF0YSxldGFnOmVlLmhlYWRlcnMuZXRhZ31dO2Nhc2UgMzppZih6PW5lLnNlbnQoKSw0MDM9PT0obnVsbD09KGVlPXoucmVzcG9uc2UpP3ZvaWQgMDplZS5zdGF0dXMpfHw0NDk9PT0obnVs''@;'; put 'put ''bD09ZWU/dm9pZCAwOmVlLnN0YXR1cykpe2lmKHRoaXMucGFyc2VBbmRTZXRGaWxlVXBsb2FkQ3NyZlRva2VuKGVlKSx0aGlzLmZpbGVVcGxvYWRDc3JmVG9rZW4pcmV0dXJuWzIsdGhpcy51cGxvYWRGaWxlKEllLFRlLE1lKV07dGhyb3cgen10aHJvdyB6O2Nhc2UgNDpyZXR1cm5bMl19fSl9''@;'; put 'put ''KX0sU2UucHJvdG90eXBlLnBhcnNlUmVzcG9uc2U9ZnVuY3Rpb24oSWUpe3ZhciBUZSxNZT1udWxsIT1JZSYmSWUuaGVhZGVycz9JZS5oZWFkZXJzLmV0YWc6IiIsaGU9ITE7dHJ5e1RlPSJzdHJpbmciPT10eXBlb2YgSWUuZGF0YT9KU09OLnBhcnNlKEllLmRhdGEpOkllLmRhdGF9Y2F0Y2go''@;'; put 'put ''eil7dHJ5e1RlPUpTT04ucGFyc2UoKDAsc2UucGFyc2VXZWJvdXRSZXNwb25zZSkoSWUuZGF0YSkpfWNhdGNoKGVlKXtUZT1JZS5kYXRhfWhlPSEwfXZhciBPPXtyZXN1bHQ6VGUsZXRhZzpNZSxzdGF0dXM6SWUuc3RhdHVzfTtyZXR1cm4gaGUmJihPLmxvZz1JZS5kYXRhKSxPfSxTZS5wcm90''@;'; put 'put ''b3R5cGUuY3JlYXRlSHR0cENsaWVudD1mdW5jdGlvbihJZSxUZSl7dmFyIE1lPVRlP25ldyB0ZS5BZ2VudChUZSk6dm9pZCAwO3RoaXMuaHR0cENsaWVudD0oMCxkZS5jcmVhdGVBeGlvc0luc3RhbmNlKShJZSxNZSksdGhpcy5odHRwQ2xpZW50LmRlZmF1bHRzLnZhbGlkYXRlU3RhdHVzPWZ1''@;'; put 'put ''bmN0aW9uKGhlKXtyZXR1cm4gaGU+PTIwMCYmaGU8PTQwMX19LFNlfSgpO1EuUmVxdWVzdENsaWVudD1BZSxRLnRocm93SWZFcnJvcj1mdW5jdGlvbihTZSl7dmFyIEllLFRlLE1lLGhlLE8seixlZTtzd2l0Y2goU2Uuc3RhdHVzKXtjYXNlIDQwMDppZigib2JqZWN0Ij09dHlwZW9mIFNlLmRh''@;'; put 'put ''dGEmJiJpbnZhbGlkX2dyYW50Ij09PVNlLmRhdGEuZXJyb3IpdGhyb3cgbmV3IEouTG9naW5SZXF1aXJlZEVycm9yKFNlLmRhdGEpO2lmKCJzdHJpbmciPT10eXBlb2YgU2UuZGF0YSYmImludmFsaWQgY3NyZiB0b2tlbiEiPT09U2UuZGF0YS50b0xvd2VyQ2FzZSgpKXRocm93IG5ldyB2ZS5J''@;'; put 'put ''bnZhbGlkU0FTanNDc3JmRXJyb3I7YnJlYWs7Y2FzZSA0MDE6dGhyb3cib2JqZWN0Ij09dHlwZW9mIFNlLmRhdGE/bmV3IEouTG9naW5SZXF1aXJlZEVycm9yKFNlLmRhdGEpOm5ldyBKLkxvZ2luUmVxdWlyZWRFcnJvcn1pZihudWxsIT09KFRlPW51bGw9PT0oSWU9U2UuZGF0YSl8fHZvaWQg''@;'; put 'put ''MD09PUllP3ZvaWQgMDpJZS5lbnRpdHlJRCkmJnZvaWQgMCE9PVRlJiZUZS5pbmNsdWRlcygibG9naW4iKSl0aHJvdyBuZXcgSi5Mb2dpblJlcXVpcmVkRXJyb3I7aWYoInN0cmluZyI9PXR5cGVvZiBTZS5kYXRhJiYoMCxLLmlzQXV0aG9yaXplRm9ybVJlcXVpcmVkKShTZS5kYXRhKSl0aHJv''@;'; put 'put ''dyBuZXcgSi5BdXRob3JpemVFcnJvcigiQXV0aG9yaXphdGlvbiByZXF1aXJlZCIsU2UucmVxdWVzdC5yZXNwb25zZVVSTCk7aWYoInN0cmluZyI9PXR5cGVvZiBTZS5kYXRhJiYoMCxLLmlzTG9nSW5SZXF1aXJlZCkoU2UuZGF0YSkmJihudWxsPT09KGhlPW51bGw9PT0oTWU9U2UuY29uZmln''@;'; put 'put ''KXx8dm9pZCAwPT09TWU/dm9pZCAwOk1lLnVybCl8fHZvaWQgMD09PWhlfHwhaGUuaW5jbHVkZXMoIi9TQVNMb2dvbi9sb2dpbiIpKSl0aHJvdyBuZXcgSi5Mb2dpblJlcXVpcmVkRXJyb3I7aWYobnVsbCE9PShPPVNlLmRhdGEpJiZ2b2lkIDAhPT1PJiZPLmF1dGhfcmVxdWVzdCl0aHJvdyBu''@;'; put 'put ''ZXcgSi5BdXRob3JpemVFcnJvcihTZS5kYXRhLm1lc3NhZ2UsU2UucmVxdWVzdC5yZXNwb25zZVVSTCk7aWYobnVsbCE9PShlZT1udWxsPT09KHo9U2UuY29uZmlnKXx8dm9pZCAwPT09ej92b2lkIDA6ei51cmwpJiZ2b2lkIDAhPT1lZSYmZWUuaW5jbHVkZXMoInNhc0F1dGhFcnJvciIpKXRo''@;'; put 'put ''cm93IG5ldyBjZS5TQVM5QXV0aEVycm9yO3ZhciB4PWtlKFNlLmRhdGEpO2lmKHgpdGhyb3cgeH07dmFyIGtlPWZ1bmN0aW9uKFNlKXtpZighU2UpcmV0dXJuIG51bGw7dHJ5e3ZhciBJZT1KU09OLnBhcnNlKG51bGw9PVNlP3ZvaWQgMDpTZS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKTtpZihJ''@;'; put 'put ''ZS5lcnJvckNvZGUmJkllLm1lc3NhZ2UpcmV0dXJuIG5ldyBKLkpvYkV4ZWN1dGlvbkVycm9yKEllLmVycm9yQ29kZSxJZS5tZXNzYWdlLG51bGw9PVNlP3ZvaWQgMDpTZS5yZXBsYWNlKC9bXG5ccl0vZywiICIpKX1jYXRjaChuZSl7fXRyeXtpZihudWxsIT1TZSYmU2UuaW5jbHVkZXMoJ3si''@;'; put 'put ''ZXJyb3JDb2RlJykmJih6PVNlLnNwbGl0KCd7ImVycm9yQ29kZScpKS5sZW5ndGg+MSl7dmFyIFRlPSd7ImVycm9yQ29kZScrelsxXS5zcGxpdCgnIn0nKVswXSsnIn0nLE1lPUpTT04ucGFyc2UoVGUucmVwbGFjZSgvW1xuXHJdL2csIiAiKSk7cmV0dXJuIG5ldyBKLkpvYkV4ZWN1dGlvbkVy''@;'; put 'put ''cm9yKE1lLmVycm9yQ29kZSxNZS5tZXNzYWdlLG51bGw9PVNlP3ZvaWQgMDpTZS5yZXBsYWNlKC9bXG5ccl0vZywiXG4iKSl9fWNhdGNoKG5lKXt9dHJ5e2lmKG51bGwhPVNlJiZTZS5tYXRjaCgvc3RvcmVkIHByb2Nlc3Mgbm90IGZvdW5kOiAvaSkmJih6PVNlLnNwbGl0KC9zdG9yZWQgcHJv''@;'; put 'put ''Y2VzcyBub3QgZm91bmQ6IC9pKSkubGVuZ3RoPjEpe3ZhciBoZT16WzFdLnNwbGl0KCI8aT4iKVsxXS5zcGxpdCgiPC9pPiIpWzBdLE89IlN0b3JlZCBwcm9jZXNzIG5vdCBmb3VuZDogIi5jb25jYXQoaGUpO3JldHVybiBuZXcgSi5Kb2JFeGVjdXRpb25FcnJvcig1MDAsTywiIil9fWNhdGNo''@;'; put 'put ''KG5lKXt9dHJ5e3ZhciB6O2lmKChudWxsPT1TZXx8IVNlLm1hdGNoKC8+PndlYm91dEJFR0lOPDwvKSkmJm51bGwhPVNlJiZTZS5tYXRjaCgvU3RvcmVkIFByb2Nlc3MgRXJyb3IvaSkmJm51bGwhPVNlJiZTZS5tYXRjaCgvVGhpcyByZXF1ZXN0IGNvbXBsZXRlZCB3aXRoIGVycm9ycy4vaSkm''@;'; put 'put ''Jih6PVNlLnNwbGl0KCI8aDI+U0FTIExvZzwvaDI+IikpLmxlbmd0aD4xKXt2YXIgZWU9elsxXS5zcGxpdCgiPHByZT4iKVsxXS5zcGxpdCgiPC9wcmU+IilbMF07cmV0dXJuIG5ldyBKLkpvYkV4ZWN1dGlvbkVycm9yKDUwMCxPPSJUaGlzIHJlcXVlc3QgY29tcGxldGVkIHdpdGggZXJyb3Jz''@;'; put 'put ''LiIsZWUpfX1jYXRjaChuZSl7fXJldHVybiBudWxsfX0sNzk1OmZ1bmN0aW9uKFUsUSxqKXsidXNlIHN0cmljdCI7dmFyIHJlLGFlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwocmU9ZnVuY3Rpb24oY2UsZGUpe3JldHVybihyZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119''@;'; put 'put ''aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24odmUsQWUpe3ZlLl9fcHJvdG9fXz1BZX18fGZ1bmN0aW9uKHZlLEFlKXtmb3IodmFyIGtlIGluIEFlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChBZSxrZSkmJih2ZVtrZV09QWVba2VdKX0pKGNlLGRlKX0sZnVuY3Rpb24o''@;'; put 'put ''Y2UsZGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkZSYmbnVsbCE9PWRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoZGUpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIHZlKCl7dGhpcy5jb25zdHJ1Y3Rvcj1jZX1y''@;'; put 'put ''ZShjZSxkZSksY2UucHJvdG90eXBlPW51bGw9PT1kZT9PYmplY3QuY3JlYXRlKGRlKToodmUucHJvdG90eXBlPWRlLnByb3RvdHlwZSxuZXcgdmUpfSksWT10aGlzJiZ0aGlzLl9fYXNzaWdufHxmdW5jdGlvbigpe3JldHVybiBZPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKGNlKXtmb3IodmFy''@;'; put 'put ''IGRlLHZlPTEsQWU9YXJndW1lbnRzLmxlbmd0aDt2ZTxBZTt2ZSsrKWZvcih2YXIga2UgaW4gZGU9YXJndW1lbnRzW3ZlXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZGUsa2UpJiYoY2Vba2VdPWRlW2tlXSk7cmV0dXJuIGNlfSxZLmFwcGx5KHRoaXMsYXJndW1lbnRz''@;'; put 'put ''KX0sVz10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24oY2UsZGUsdmUsQWUpe3JldHVybiBuZXcodmV8fCh2ZT1Qcm9taXNlKSkoZnVuY3Rpb24oa2UsU2Upe2Z1bmN0aW9uIEllKGhlKXt0cnl7TWUoQWUubmV4dChoZSkpfWNhdGNoKE8pe1NlKE8pfX1mdW5jdGlvbiBUZShoZSl7dHJ5''@;'; put 'put ''e01lKEFlLnRocm93KGhlKSl9Y2F0Y2goTyl7U2UoTyl9fWZ1bmN0aW9uIE1lKGhlKXt2YXIgTztoZS5kb25lP2tlKGhlLnZhbHVlKTooTz1oZS52YWx1ZSxPIGluc3RhbmNlb2YgdmU/TzpuZXcgdmUoZnVuY3Rpb24oeil7eihPKX0pKS50aGVuKEllLFRlKX1NZSgoQWU9QWUuYXBwbHkoY2Us''@;'; put 'put ''ZGV8fFtdKSkubmV4dCgpKX0pfSxOPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKGNlLGRlKXt2YXIgdmUsQWUsa2UsU2UsSWU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEma2VbMF0pdGhyb3cga2VbMV07cmV0dXJuIGtlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJu''@;'; put 'put ''IFNlPXtuZXh0OlRlKDApLHRocm93OlRlKDEpLHJldHVybjpUZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKFNlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFNlO2Z1bmN0aW9uIFRlKE1lKXtyZXR1cm4gZnVuY3Rpb24oaGUpe3JldHVybiBmdW5j''@;'; put 'put ''dGlvbihPKXtpZih2ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtJZTspdHJ5e2lmKHZlPTEsQWUmJihrZT0yJk9bMF0/QWUucmV0dXJuOk9bMF0/QWUudGhyb3d8fCgoa2U9QWUucmV0dXJuKSYma2UuY2FsbChBZSksMCk6QWUu''@;'; put 'put ''bmV4dCkmJiEoa2U9a2UuY2FsbChBZSxPWzFdKSkuZG9uZSlyZXR1cm4ga2U7c3dpdGNoKEFlPTAsa2UmJihPPVsyJk9bMF0sa2UudmFsdWVdKSxPWzBdKXtjYXNlIDA6Y2FzZSAxOmtlPU87YnJlYWs7Y2FzZSA0OnJldHVybiBJZS5sYWJlbCsrLHt2YWx1ZTpPWzFdLGRvbmU6ITF9O2Nhc2Ug''@;'; put 'put ''NTpJZS5sYWJlbCsrLEFlPU9bMV0sTz1bMF07Y29udGludWU7Y2FzZSA3Ok89SWUub3BzLnBvcCgpLEllLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChrZT0oa2U9SWUudHJ5cykubGVuZ3RoPjAmJmtlW2tlLmxlbmd0aC0xXSl8fDYhPT1PWzBdJiYyIT09T1swXSkpe0llPTA7''@;'; put 'put ''Y29udGludWV9aWYoMz09PU9bMF0mJigha2V8fE9bMV0+a2VbMF0mJk9bMV08a2VbM10pKXtJZS5sYWJlbD1PWzFdO2JyZWFrfWlmKDY9PT1PWzBdJiZJZS5sYWJlbDxrZVsxXSl7SWUubGFiZWw9a2VbMV0sa2U9TzticmVha31pZihrZSYmSWUubGFiZWw8a2VbMl0pe0llLmxhYmVsPWtlWzJd''@;'; put 'put ''LEllLm9wcy5wdXNoKE8pO2JyZWFrfWtlWzJdJiZJZS5vcHMucG9wKCksSWUudHJ5cy5wb3AoKTtjb250aW51ZX1PPWRlLmNhbGwoY2UsSWUpfWNhdGNoKHope089WzYsel0sQWU9MH1maW5hbGx5e3ZlPWtlPTB9aWYoNSZPWzBdKXRocm93IE9bMV07cmV0dXJue3ZhbHVlOk9bMF0/T1sxXTp2''@;'; put 'put ''b2lkIDAsZG9uZTohMH19KFtNZSxoZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLlNhczlSZXF1ZXN0Q2xpZW50PXZvaWQgMDt2YXIgdGU9aig4MjI0KSxLPWooNzg1NyksSj1qKDk3NzgpLHNlPWooNDU4OCksb2U9ZnVuY3Rpb24oY2Up''@;'; put 'put ''e2Z1bmN0aW9uIGRlKHZlLEFlKXt2YXIga2U9Y2UuY2FsbCh0aGlzLHZlLEFlKXx8dGhpcztyZXR1cm4ga2UuaHR0cENsaWVudC5kZWZhdWx0cy5tYXhSZWRpcmVjdHM9MCxrZS5odHRwQ2xpZW50LmRlZmF1bHRzLnZhbGlkYXRlU3RhdHVzPWZ1bmN0aW9uKFNlKXtyZXR1cm4gU2U+PTIwMCYm''@;'; put 'put ''U2U8MzAzfSx0ZS5kZWZhdWx0JiYoKDAsdGUuZGVmYXVsdCkoa2UuaHR0cENsaWVudCksa2UuaHR0cENsaWVudC5kZWZhdWx0cy5qYXI9bmV3IEsuQ29va2llSmFyKSxrZX1yZXR1cm4gYWUoZGUsY2UpLGRlLnByb3RvdHlwZS5sb2dpbj1mdW5jdGlvbih2ZSxBZSxrZSl7cmV0dXJuIFcodGhp''@;'; put 'put ''cyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFNlO3JldHVybiBOKHRoaXMsZnVuY3Rpb24oSWUpe3N3aXRjaChJZS5sYWJlbCl7Y2FzZSAwOnJldHVybiBTZT0iL1VzZXIgRm9sZGVycy8iLmNvbmNhdCh2ZSwiL015IEZvbGRlci9zYXNqcy9ydW5uZXIiKSx0aGlzLmh0dHBDbGllbnQu''@;'; put 'put ''ZGVmYXVsdHMuamFyPyh0aGlzLmh0dHBDbGllbnQuZGVmYXVsdHMuamFyLnJlbW92ZUFsbENvb2tpZXMoKSxbNCx0aGlzLmdldCgiIi5jb25jYXQoa2UsIj9fcHJvZ3JhbT0iKS5jb25jYXQoU2UsIiZfdXNlcm5hbWU9IikuY29uY2F0KHZlLCImX3Bhc3N3b3JkPSIpLmNvbmNhdChBZSksdm9p''@;'; put 'put ''ZCAwLCJ0ZXh0L3BsYWluIildKTpbMywyXTtjYXNlIDE6SWUuc2VudCgpLEllLmxhYmVsPTI7Y2FzZSAyOnJldHVyblsyXX19KX0pfSxkZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHZlLEFlLGtlLFNlLEllKXtyZXR1cm4gdm9pZCAwPT09a2UmJihrZT0iYXBwbGljYXRpb24vanNvbiIpLHZv''@;'; put 'put ''aWQgMD09PVNlJiYoU2U9e30pLHZvaWQgMD09PUllJiYoSWU9ITEpLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFRlLE1lLGhlPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihPKXtyZXR1cm4gVGU9WShZKHt9LHRoaXMuZ2V0SGVhZGVycyhBZSxrZSkpLFNlKSxNZT17''@;'; put 'put ''aGVhZGVyczpUZSxyZXNwb25zZVR5cGU6InRleHQvcGxhaW4iPT09a2U/InRleHQiOiJqc29uIix3aXRoQ3JlZGVudGlhbHM6ITB9LCJ0ZXh0L3BsYWluIj09PWtlJiYoTWUudHJhbnNmb3JtUmVzcG9uc2U9dm9pZCAwKSxbMix0aGlzLmh0dHBDbGllbnQuZ2V0KHZlLE1lKS50aGVuKGZ1bmN0''@;'; put 'put ''aW9uKHope3JldHVybiAzMDI9PT16LnN0YXR1cz9oZS5nZXQoei5oZWFkZXJzLmxvY2F0aW9uLEFlLGtlKTooKDAsc2UudGhyb3dJZkVycm9yKSh6KSxoZS5wYXJzZVJlc3BvbnNlKHopKX0pLmNhdGNoKGZ1bmN0aW9uKHope3JldHVybiBXKGhlLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2''@;'; put 'put ''YXIgZWU9dGhpcztyZXR1cm4gTih0aGlzLGZ1bmN0aW9uKG5lKXtzd2l0Y2gobmUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKHosZnVuY3Rpb24oKXtyZXR1cm4gZWUuZ2V0KHZlLEFlLGtlLFNlKS5jYXRjaChmdW5jdGlvbih4KXt0aHJvdygwLEoucHJlZml4TWVz''@;'; put 'put ''c2FnZSkoeCwiRXJyb3Igd2hpbGUgZXhlY3V0aW5nIGhhbmRsZSBlcnJvciBjYWxsYmFjay4gIil9KX0sSWUpLmNhdGNoKGZ1bmN0aW9uKHgpe3Rocm93KDAsSi5wcmVmaXhNZXNzYWdlKSh4LCJFcnJvciB3aGlsZSBoYW5kbGluZyBlcnJvci4gIil9KV07Y2FzZSAxOnJldHVyblsyLG5lLnNl''@;'; put 'put ''bnQoKV19fSl9KX0pXX0pfSl9LGRlLnByb3RvdHlwZS5wb3N0PWZ1bmN0aW9uKHZlLEFlLGtlLFNlLEllKXtyZXR1cm4gdm9pZCAwPT09U2UmJihTZT0iYXBwbGljYXRpb24vanNvbiIpLHZvaWQgMD09PUllJiYoSWU9e30pLFcodGhpcyx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIFRl''@;'; put 'put ''LE1lPXRoaXM7cmV0dXJuIE4odGhpcyxmdW5jdGlvbihoZSl7cmV0dXJuIFRlPVkoWSh7fSx0aGlzLmdldEhlYWRlcnMoa2UsU2UpKSxJZSksWzIsdGhpcy5odHRwQ2xpZW50LnBvc3QodmUsQWUse2hlYWRlcnM6VGUsd2l0aENyZWRlbnRpYWxzOiEwfSkudGhlbihmdW5jdGlvbihPKXtyZXR1''@;'; put 'put ''cm4gVyhNZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxmdW5jdGlvbih6KXtzd2l0Y2goei5sYWJlbCl7Y2FzZSAwOnJldHVybiAzMDIhPT1PLnN0YXR1cz9bMywyXTpbNCx0aGlzLmdldChPLmhlYWRlcnMubG9jYXRpb24sdm9pZCAwLFNlLEllKV07Y2FzZSAxOnJl''@;'; put 'put ''dHVyblsyLHouc2VudCgpXTtjYXNlIDI6cmV0dXJuKDAsc2UudGhyb3dJZkVycm9yKShPKSxbMix0aGlzLnBhcnNlUmVzcG9uc2UoTyldfX0pfSl9KS5jYXRjaChmdW5jdGlvbihPKXtyZXR1cm4gVyhNZSx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIHo9dGhpcztyZXR1cm4gTih0aGlz''@;'; put 'put ''LGZ1bmN0aW9uKGVlKXtzd2l0Y2goZWUubGFiZWwpe2Nhc2UgMDpyZXR1cm5bNCx0aGlzLmhhbmRsZUVycm9yKE8sZnVuY3Rpb24oKXtyZXR1cm4gei5wb3N0KHZlLEFlLGtlLFNlLEllKX0pXTtjYXNlIDE6cmV0dXJuWzIsZWUuc2VudCgpXX19KX0pfSldfSl9KX0sZGV9KHNlLlJlcXVlc3RD''@;'; put 'put ''bGllbnQpO1EuU2FzOVJlcXVlc3RDbGllbnQ9b2V9LDM2MDI6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmUsYWU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChyZT1mdW5jdGlvbih0ZSxLKXtyZXR1cm4ocmU9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWlu''@;'; put 'put ''c3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKEosc2Upe0ouX19wcm90b19fPXNlfXx8ZnVuY3Rpb24oSixzZSl7Zm9yKHZhciBvZSBpbiBzZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc2Usb2UpJiYoSltvZV09c2Vbb2VdKX0pKHRlLEspfSxmdW5jdGlvbih0ZSxLKXtp''@;'; put 'put ''ZigiZnVuY3Rpb24iIT10eXBlb2YgSyYmbnVsbCE9PUspdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhLKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBKKCl7dGhpcy5jb25zdHJ1Y3Rvcj10ZX1yZSh0ZSxLKSx0ZS5w''@;'; put 'put ''cm90b3R5cGU9bnVsbD09PUs/T2JqZWN0LmNyZWF0ZShLKTooSi5wcm90b3R5cGU9Sy5wcm90b3R5cGUsbmV3IEopfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuU2FzanNSZXF1ZXN0Q2xpZW50PXZvaWQgMDt2YXIgWT1qKDQ1ODgpLFc9aig1''@;'; put 'put ''OTI4KSxOPWZ1bmN0aW9uKHRlKXtmdW5jdGlvbiBLKCl7dmFyIEo9bnVsbCE9PXRlJiZ0ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fHRoaXM7cmV0dXJuIEouZ2V0SGVhZGVycz1mdW5jdGlvbihzZSxvZSl7dmFyIGNlLGRlPXt9O3JldHVybiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVu''@;'; put 'put ''Y29kZWQiIT09b2UmJihkZVsiQ29udGVudC1UeXBlIl09b2UpLGRlLkFjY2VwdD0iYXBwbGljYXRpb24vanNvbiI9PT1vZT9vZToiKi8qIixzZXx8InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3d8fChzZT1udWxsIT09KGNlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJhY2Nlc3NUb2tlbiIpKSYm''@;'; put 'put ''dm9pZCAwIT09Y2U/Y2U6dm9pZCAwKSxzZSYmKGRlLkF1dGhvcml6YXRpb249IkJlYXJlciAiLmNvbmNhdChzZSkpLGRlfSxKfXJldHVybiBhZShLLHRlKSxLLnByb3RvdHlwZS5wYXJzZVJlc3BvbnNlPWZ1bmN0aW9uKEope3ZhciBzZSxvZT1udWxsIT1KJiZKLmhlYWRlcnM/Si5oZWFkZXJz''@;'; put 'put ''LmV0YWc6IiIsY2U9e307dHJ5e2NlPSJzdHJpbmciPT10eXBlb2YgSi5kYXRhP0pTT04ucGFyc2UoSi5kYXRhKTpKLmRhdGF9Y2F0Y2godmUpe2lmKEouZGF0YS5pbmNsdWRlcyhXLlNBU0pTX0xPR1NfU0VQQVJBVE9SKSl7dmFyIGRlPUouZGF0YS5zcGxpdChXLlNBU0pTX0xPR1NfU0VQQVJB''@;'; put 'put ''VE9SKTtzZT1kZVsxXSxkZVswXS50cmltKCkmJihjZT0oMCxXLmdldFZhbGlkSnNvbikoZGVbMF0pKX1lbHNlIGNlPUouZGF0YX1yZXR1cm57cmVzdWx0OmNlLGxvZzpzZSxldGFnOm9lLHN0YXR1czpKLnN0YXR1c319LEt9KFkuUmVxdWVzdENsaWVudCk7US5TYXNqc1JlcXVlc3RDbGllbnQ9''@;'; put 'put ''Tn0sNDcwOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNDY2NjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDYxNzc6KFUsUSk9''@;'; put 'put ''PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw1NzY2OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sNDk3NTooVSxRKT0+eyJ1c2Ugc3RyaWN0''@;'; put 'put ''IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDIxNTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDQ3ODI6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw0MTY4OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sODUxNjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwi''@;'; put 'put ''X19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDMxNTM6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw1ODQxOihVLFEpPT57InVzZSBzdHJpY3QiO3ZhciBqLGFlO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2Vz''@;'; put 'put ''TW9kdWxlIix7dmFsdWU6ITB9KSxRLkxvZ2luTWVjaGFuaXNtPVEuU0FTanNDb25maWc9dm9pZCAwLFEuU0FTanNDb25maWc9ZnVuY3Rpb24oKXt0aGlzLnNlcnZlclVybD0iIix0aGlzLnBhdGhTQVNKUz0iIix0aGlzLnBhdGhTQVM5PSIiLHRoaXMucGF0aFNBU1ZpeWE9IiIsdGhpcy5hcHBM''@;'; put 'put ''b2M9IiIsdGhpcy5zZXJ2ZXJUeXBlPW51bGwsdGhpcy5kZWJ1Zz0hMCx0aGlzLmNvbnRleHROYW1lPSIiLHRoaXMudXNlQ29tcHV0ZUFwaT1udWxsLHRoaXMubG9naW5NZWNoYW5pc209ai5EZWZhdWx0LHRoaXMucmVxdWVzdEhpc3RvcnlMaW1pdD0xMH0sKGFlPWo9US5Mb2dpbk1lY2hhbmlz''@;'; put 'put ''bXx8KFEuTG9naW5NZWNoYW5pc209e30pKS5EZWZhdWx0PSJEZWZhdWx0IixhZS5SZWRpcmVjdGVkPSJSZWRpcmVjdGVkIn0sMjQ5MzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDYwMzg6KFUsUSk9PnsidXNl''@;'; put 'put ''IHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSw5NDkzOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sODY1MDooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmpl''@;'; put 'put ''Y3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LDEyNDpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgaixyZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oaj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3Rv''@;'; put 'put ''X186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTix0ZSl7Ti5fX3Byb3RvX189dGV9fHxmdW5jdGlvbihOLHRlKXtmb3IodmFyIEsgaW4gdGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLEspJiYoTltLXT10ZVtLXSl9KShZLFcpfSxmdW5jdGlvbihZLFcp''@;'; put 'put ''e2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9aihZLFcpLFkucHJv''@;'; put 'put ''dG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkF1dGhvcml6ZUVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rp''@;'; put 'put ''b24gVyhOLHRlKXt2YXIgSz1ZLmNhbGwodGhpcyxOKXx8dGhpcztyZXR1cm4gSy5tZXNzYWdlPU4sSy5jb25maXJtVXJsPXRlLEsubmFtZT0iQXV0aG9yaXplRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihLLFcucHJvdG90eXBlKSxLfXJldHVybiByZShXLFkpLFd9KEVycm9yKTtRLkF1''@;'; put 'put ''dGhvcml6ZUVycm9yPWFlfSw5NDY1OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBqLHJlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaj1mdW5jdGlvbihZLFcpe3JldHVybihqPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5j''@;'; put 'put ''dGlvbihOLHRlKXtOLl9fcHJvdG9fXz10ZX18fGZ1bmN0aW9uKE4sdGUpe2Zvcih2YXIgSyBpbiB0ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsSykmJihOW0tdPXRlW0tdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51''@;'; put 'put ''bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1qKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0''@;'; put 'put ''ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuQ2VydGlmaWNhdGVFcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoTil7dmFyIHRlPVkuY2FsbCh0aGlz''@;'; put 'put ''LCIiLmNvbmNhdChOLCJcblBsZWFzZSB2aXNpdCB0aGUgbGluayBiZWxvdyBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBvbiB0aGlzIGlzc3VlOlxuLSAiKS5jb25jYXQoImh0dHBzOi8vZ2l0aHViLmNvbS9zYXNqcy9jbGkvaXNzdWVzLzExODEjaXNzdWVjb21tZW50LTEwOTA2Mzg1ODQiLCJc''@;'; put 'put ''biIpKXx8dGhpcztyZXR1cm4gdGUubmFtZT0iQ2VydGlmaWNhdGVFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRlLFcucHJvdG90eXBlKSx0ZX1yZXR1cm4gcmUoVyxZKSxXfShFcnJvcik7US5DZXJ0aWZpY2F0ZUVycm9yPWFlfSw1MjY3OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3Qi''@;'; put 'put ''O3ZhciBqLHJlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaj1mdW5jdGlvbihZLFcpe3JldHVybihqPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLHRlKXtOLl9fcHJvdG9fXz10ZX18fGZ1bmN0aW9uKE4sdGUpe2Zvcih2''@;'; put 'put ''YXIgSyBpbiB0ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsSykmJihOW0tdPXRlW0tdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUg''@;'; put 'put ''IitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1qKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRl''@;'; put 'put ''ZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuQ29tcHV0ZUpvYkV4ZWN1dGlvbkVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVyhOLHRlKXt2YXIgSz1ZLmNhbGwodGhpcywiRXJyb3I6IEpvYiBleGVjdXRpb24gZmFpbGVkIil8fHRoaXM7''@;'; put 'put ''cmV0dXJuIEsuam9iPU4sSy5sb2c9dGUsSy5uYW1lPSJDb21wdXRlSm9iRXhlY3V0aW9uRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihLLFcucHJvdG90eXBlKSxLfXJldHVybiByZShXLFkpLFd9KEVycm9yKTtRLkNvbXB1dGVKb2JFeGVjdXRpb25FcnJvcj1hZX0sOTIzMjooVSxRKT0+''@;'; put 'put ''eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5FcnJvclJlc3BvbnNlPXZvaWQgMCxRLkVycm9yUmVzcG9uc2U9ZnVuY3Rpb24ocmUsYWUsWSl7dmFyIFc9YWU7aWYoIm9iamVjdCIhPXR5cGVvZiBhZSl0cnl7Vz1KU09OLnBh''@;'; put 'put ''cnNlKGFlKX1jYXRjaChOKXtZPWFlLFc9IiJ9dGhpcy5lcnJvcj17bWVzc2FnZTpyZSxkZXRhaWxzOlcscmF3Oll9fX0sNTEwOTpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgaixyZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oaj1PYmplY3Qu''@;'; put 'put ''c2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTix0ZSl7Ti5fX3Byb3RvX189dGV9fHxmdW5jdGlvbihOLHRlKXtmb3IodmFyIEsgaW4gdGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLEspJiYoTltLXT10ZVtL''@;'; put 'put ''XSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNv''@;'; put 'put ''bnN0cnVjdG9yPVl9aihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkludGVybmFsU2VydmVyRXJyb3I9dm9p''@;'; put 'put ''ZCAwO3ZhciBhZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKCl7dmFyIE49WS5jYWxsKHRoaXMsIkVycm9yOiBJbnRlcm5hbCBzZXJ2ZXIgZXJyb3IuIil8fHRoaXM7cmV0dXJuIE4ubmFtZT0iSW50ZXJuYWxTZXJ2ZXJFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKE4sVy5wcm90b3R5cGUp''@;'; put 'put ''LE59cmV0dXJuIHJlKFcsWSksV30oRXJyb3IpO1EuSW50ZXJuYWxTZXJ2ZXJFcnJvcj1hZX0sNTUxODpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgaixyZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oaj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8''@;'; put 'put ''fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTix0ZSl7Ti5fX3Byb3RvX189dGV9fHxmdW5jdGlvbihOLHRlKXtmb3IodmFyIEsgaW4gdGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLEspJiYoTltLXT10ZVtLXSl9KShZLFcpfSxmdW5j''@;'; put 'put ''dGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9aihZ''@;'; put 'put ''LFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkludmFsaWRKc29uRXJyb3I9dm9pZCAwO3ZhciBhZT1mdW5jdGlv''@;'; put 'put ''bihZKXtmdW5jdGlvbiBXKCl7dmFyIE49WS5jYWxsKHRoaXMsIkVycm9yOiBpbnZhbGlkIEpzb24gc3RyaW5nIil8fHRoaXM7cmV0dXJuIE4ubmFtZT0iSW52YWxpZEpzb25FcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKE4sVy5wcm90b3R5cGUpLE59cmV0dXJuIHJlKFcsWSksV30oRXJy''@;'; put 'put ''b3IpO1EuSW52YWxpZEpzb25FcnJvcj1hZX0sMTAwNTpmdW5jdGlvbihVLFEpeyJ1c2Ugc3RyaWN0Ijt2YXIgaixyZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oaj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBB''@;'; put 'put ''cnJheSYmZnVuY3Rpb24oTix0ZSl7Ti5fX3Byb3RvX189dGV9fHxmdW5jdGlvbihOLHRlKXtmb3IodmFyIEsgaW4gdGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLEspJiYoTltLXT10ZVtLXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5''@;'; put 'put ''cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBleHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9aihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09i''@;'; put 'put ''amVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBOKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLkludmFsaWRTQVNqc0NzcmZFcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoKXt2YXIg''@;'; put 'put ''Tj10aGlzO3JldHVybihOPVkuY2FsbCh0aGlzLCJBdXRoIGVycm9yOiAiLmNvbmNhdCgiSW52YWxpZCBDU1JGIHRva2VuISIpKXx8dGhpcykubmFtZT0iSW52YWxpZFNBU2pzQ3NyZkVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoTixXLnByb3RvdHlwZSksTn1yZXR1cm4gcmUoVyxZKSxX''@;'; put 'put ''fShFcnJvcik7US5JbnZhbGlkU0FTanNDc3JmRXJyb3I9YWV9LDg1MzE6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGoscmU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChqPWZ1bmN0aW9uKFksVyl7cmV0dXJuKGo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWlu''@;'; put 'put ''c3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sdGUpe04uX19wcm90b19fPXRlfXx8ZnVuY3Rpb24oTix0ZSl7Zm9yKHZhciBLIGluIHRlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZSxLKSYmKE5bS109dGVbS10pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVu''@;'; put 'put ''Y3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfWooWSxXKSxZLnByb3RvdHlwZT1u''@;'; put 'put ''dWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Kb2JFeGVjdXRpb25FcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFco''@;'; put 'put ''Tix0ZSxLKXt2YXIgSj1ZLmNhbGwodGhpcywiRXJyb3IgQ29kZSAiLmNvbmNhdChOLCI6ICIpLmNvbmNhdCh0ZSkpfHx0aGlzO3JldHVybiBKLmVycm9yQ29kZT1OLEouZXJyb3JNZXNzYWdlPXRlLEoucmVzdWx0PUssSi5uYW1lPSJKb2JFeGVjdXRpb25FcnJvciIsT2JqZWN0LnNldFByb3Rv''@;'; put 'put ''dHlwZU9mKEosVy5wcm90b3R5cGUpLEp9cmV0dXJuIHJlKFcsWSksV30oRXJyb3IpO1EuSm9iRXhlY3V0aW9uRXJyb3I9YWV9LDkwNzk6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGoscmU9dGhpcyYmdGhpcy5fX2V4dGVuZHN8fChqPWZ1bmN0aW9uKFksVyl7cmV0dXJuKGo9T2Jq''@;'; put 'put ''ZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sdGUpe04uX19wcm90b19fPXRlfXx8ZnVuY3Rpb24oTix0ZSl7Zm9yKHZhciBLIGluIHRlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZSxLKSYmKE5bS109''@;'; put 'put ''dGVbS10pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhp''@;'; put 'put ''cy5jb25zdHJ1Y3Rvcj1ZfWooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5Kb2JTdGF0ZVBvbGxFcnJvcj12''@;'; put 'put ''b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoTix0ZSl7dmFyIEs9WS5jYWxsKHRoaXMsIkVycm9yIHdoaWxlIHBvbGxpbmcgam9iIHN0YXRlIGZvciBqb2IgIi5jb25jYXQoTiwiOiAiKS5jb25jYXQodGUubWVzc2FnZXx8dGUpKXx8dGhpcztyZXR1cm4gSy5vcmlnaW5hbEVy''@;'; put 'put ''cm9yPXRlLEsubmFtZT0iSm9iU3RhdGVQb2xsRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZihLLFcucHJvdG90eXBlKSxLfXJldHVybiByZShXLFkpLFd9KEVycm9yKTtRLkpvYlN0YXRlUG9sbEVycm9yPWFlfSwzMDk2OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBqLHJlPXRo''@;'; put 'put ''aXMmJnRoaXMuX19leHRlbmRzfHwoaj1mdW5jdGlvbihZLFcpe3JldHVybihqPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLHRlKXtOLl9fcHJvdG9fXz10ZX18fGZ1bmN0aW9uKE4sdGUpe2Zvcih2YXIgSyBpbiB0ZSlP''@;'; put 'put ''YmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsSykmJihOW0tdPXRlW0tdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykr''@;'; put 'put ''IiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1qKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; put 'put ''KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuSnNvblBhcnNlQXJyYXlFcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoKXt2YXIgTj1ZLmNhbGwodGhpcywiQ2FuIG5vdCBwYXJzZSBhcnJheSBvYmplY3QgdG8ganNvbi4iKXx8dGhpcztyZXR1cm4gTi5uYW1l''@;'; put 'put ''PSJKc29uUGFyc2VBcnJheUVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2YoTixXLnByb3RvdHlwZSksTn1yZXR1cm4gcmUoVyxZKSxXfShFcnJvcik7US5Kc29uUGFyc2VBcnJheUVycm9yPWFlfSw2NzQzOmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBqLHJlPXRoaXMmJnRoaXMu''@;'; put 'put ''X19leHRlbmRzfHwoaj1mdW5jdGlvbihZLFcpe3JldHVybihqPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLHRlKXtOLl9fcHJvdG9fXz10ZX18fGZ1bmN0aW9uKE4sdGUpe2Zvcih2YXIgSyBpbiB0ZSlPYmplY3QucHJv''@;'; put 'put ''dG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsSykmJihOW0tdPXRlW0tdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3Qg''@;'; put 'put ''YSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1qKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNN''@;'; put 'put ''b2R1bGUiLHt2YWx1ZTohMH0pLFEuTG9naW5SZXF1aXJlZEVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVyhOKXt2YXIgdGU9dGhpcyxLPU4/SlNPTi5zdHJpbmdpZnkoTixudWxsLDIpOiJZb3UgbXVzdCBiZSBsb2dnZWQgaW4gdG8gYWNjZXNzIHRoaXMgcmVzb3Vy''@;'; put 'put ''Y2UiO3JldHVybih0ZT1ZLmNhbGwodGhpcywiQXV0aCBlcnJvcjogIi5jb25jYXQoSykpfHx0aGlzKS5uYW1lPSJMb2dpblJlcXVpcmVkRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZih0ZSxXLnByb3RvdHlwZSksdGV9cmV0dXJuIHJlKFcsWSksV30oRXJyb3IpO1EuTG9naW5SZXF1aXJl''@;'; put 'put ''ZEVycm9yPWFlfSw3ODY0OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBqLHJlPXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaj1mdW5jdGlvbihZLFcpe3JldHVybihqPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihO''@;'; put 'put ''LHRlKXtOLl9fcHJvdG9fXz10ZX18fGZ1bmN0aW9uKE4sdGUpe2Zvcih2YXIgSyBpbiB0ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsSykmJihOW0tdPXRlW0tdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1X''@;'; put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmcoVykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1qKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKToo''@;'; put 'put ''Ti5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuTm9TZXNzaW9uU3RhdGVFcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoTix0ZSxLKXt2YXIgSj1ZLmNhbGwodGhp''@;'; put 'put ''cywiQ291bGQgbm90IGdldCBzZXNzaW9uIHN0YXRlLiBTZXJ2ZXIgcmVzcG9uZGVkIHdpdGggIi5jb25jYXQoTiwiIHdoaWxzdCBjaGVja2luZyBzdGF0ZTogIikuY29uY2F0KHRlKSl8fHRoaXM7cmV0dXJuIEouc2VydmVyUmVzcG9uc2VTdGF0dXM9TixKLnNlc3Npb25TdGF0ZVVybD10ZSxK''@;'; put 'put ''LmxvZ1VybD1LLEoubmFtZT0iTm9TZXNzaW9uU3RhdHVzIixPYmplY3Quc2V0UHJvdG90eXBlT2YoSixXLnByb3RvdHlwZSksSn1yZXR1cm4gcmUoVyxZKSxXfShFcnJvcik7US5Ob1Nlc3Npb25TdGF0ZUVycm9yPWFlfSw5NTc3OmZ1bmN0aW9uKFUsUSl7InVzZSBzdHJpY3QiO3ZhciBqLHJl''@;'; put 'put ''PXRoaXMmJnRoaXMuX19leHRlbmRzfHwoaj1mdW5jdGlvbihZLFcpe3JldHVybihqPU9iamVjdC5zZXRQcm90b3R5cGVPZnx8e19fcHJvdG9fXzpbXX1pbnN0YW5jZW9mIEFycmF5JiZmdW5jdGlvbihOLHRlKXtOLl9fcHJvdG9fXz10ZX18fGZ1bmN0aW9uKE4sdGUpe2Zvcih2YXIgSyBpbiB0''@;'; put 'put ''ZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUsSykmJihOW0tdPXRlW0tdKX0pKFksVyl9LGZ1bmN0aW9uKFksVyl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIFcmJm51bGwhPT1XKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitTdHJpbmco''@;'; put 'put ''VykrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsIik7ZnVuY3Rpb24gTigpe3RoaXMuY29uc3RydWN0b3I9WX1qKFksVyksWS5wcm90b3R5cGU9bnVsbD09PVc/T2JqZWN0LmNyZWF0ZShXKTooTi5wcm90b3R5cGU9Vy5wcm90b3R5cGUsbmV3IE4pfSk7T2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuTm90Rm91bmRFcnJvcj12b2lkIDA7dmFyIGFlPWZ1bmN0aW9uKFkpe2Z1bmN0aW9uIFcoTil7dmFyIHRlPVkuY2FsbCh0aGlzLCJFcnJvcjogUmVzb3VyY2UgYXQgIi5jb25jYXQoTiwiIHdhcyBub3QgZm91bmQiKSl8fHRoaXM7cmV0''@;'; put 'put ''dXJuIHRlLnVybD1OLHRlLm5hbWU9Ik5vdEZvdW5kRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZih0ZSxXLnByb3RvdHlwZSksdGV9cmV0dXJuIHJlKFcsWSksV30oRXJyb3IpO1EuTm90Rm91bmRFcnJvcj1hZX0sOTI3OTpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZSxh''@;'; put 'put ''ZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KHJlPWZ1bmN0aW9uKE4sdGUpe3JldHVybihyZT1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oSyxKKXtLLl9fcHJvdG9fXz1KfXx8ZnVuY3Rpb24oSyxKKXtmb3IodmFyIHNlIGlu''@;'; put 'put ''IEopT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEosc2UpJiYoS1tzZV09SltzZV0pfSkoTix0ZSl9LGZ1bmN0aW9uKE4sdGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0ZSYmbnVsbCE9PXRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkNsYXNzIGV4dGVuZHMgdmFsdWUgIitT''@;'; put 'put ''dHJpbmcodGUpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIEsoKXt0aGlzLmNvbnN0cnVjdG9yPU59cmUoTix0ZSksTi5wcm90b3R5cGU9bnVsbD09PXRlP09iamVjdC5jcmVhdGUodGUpOihLLnByb3RvdHlwZT10ZS5wcm90b3R5cGUsbmV3IEspfSk7T2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuUm9vdEZvbGRlck5vdEZvdW5kRXJyb3I9dm9pZCAwO3ZhciBZPWooNjc5OSksVz1mdW5jdGlvbihOKXtmdW5jdGlvbiB0ZShLLEosc2Upe3ZhciBvZT10aGlzLGNlPSJSb290IGZvbGRlciAiLmNvbmNhdChLLCIg''@;'; put 'put ''d2FzIG5vdCBmb3VuZC4iKSsiXG5QbGVhc2UgY2hlY2sgIi5jb25jYXQoSiwiL1NBU0RyaXZlLiIpKyJcbklmIHRoZSBmb2xkZXIgRE9FUyBleGlzdCB0aGVuIGl0IGlzIGxpa2VseSBhIHBlcm1pc3Npb24gcHJvYmxlbS5cbiI7aWYoc2Upe3ZhciBkZT0oMCxZLmRlY29kZVRva2VuKShzZSku''@;'; put 'put ''c2NvcGU7Y2UrPSJZb3VyIGFjY2VzcyB0b2tlbiBjb250YWlucyB0aGUgZm9sbG93aW5nIHNjb3BlczpcbiIrKGRlPWRlLm1hcChmdW5jdGlvbih2ZSl7cmV0dXJuIiogIit2ZX0pKS5qb2luKCJcbiIpfXJldHVybihvZT1OLmNhbGwodGhpcyxjZSl8fHRoaXMpLm5hbWU9IlJvb3RGb2xkZXJO''@;'; put 'put ''b3RGb3VuZEVycm9yIixPYmplY3Quc2V0UHJvdG90eXBlT2Yob2UsdGUucHJvdG90eXBlKSxvZX1yZXR1cm4gYWUodGUsTiksdGV9KEVycm9yKTtRLlJvb3RGb2xkZXJOb3RGb3VuZEVycm9yPVd9LDk1MjY6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGoscmU9dGhpcyYmdGhpcy5f''@;'; put 'put ''X2V4dGVuZHN8fChqPWZ1bmN0aW9uKFksVyl7cmV0dXJuKGo9T2JqZWN0LnNldFByb3RvdHlwZU9mfHx7X19wcm90b19fOltdfWluc3RhbmNlb2YgQXJyYXkmJmZ1bmN0aW9uKE4sdGUpe04uX19wcm90b19fPXRlfXx8ZnVuY3Rpb24oTix0ZSl7Zm9yKHZhciBLIGluIHRlKU9iamVjdC5wcm90''@;'; put 'put ''b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0ZSxLKSYmKE5bS109dGVbS10pfSkoWSxXKX0sZnVuY3Rpb24oWSxXKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgVyYmbnVsbCE9PVcpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSAiK1N0cmluZyhXKSsiIGlzIG5vdCBh''@;'; put 'put ''IGNvbnN0cnVjdG9yIG9yIG51bGwiKTtmdW5jdGlvbiBOKCl7dGhpcy5jb25zdHJ1Y3Rvcj1ZfWooWSxXKSxZLnByb3RvdHlwZT1udWxsPT09Vz9PYmplY3QuY3JlYXRlKFcpOihOLnByb3RvdHlwZT1XLnByb3RvdHlwZSxuZXcgTil9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01v''@;'; put 'put ''ZHVsZSIse3ZhbHVlOiEwfSksUS5TQVM5QXV0aEVycm9yPXZvaWQgMDt2YXIgYWU9ZnVuY3Rpb24oWSl7ZnVuY3Rpb24gVygpe3ZhciBOPVkuY2FsbCh0aGlzLCJUaGUgY3JlZGVudGlhbHMgeW91IHByb3ZpZGVkIGNhbm5vdCBiZSBhdXRoZW50aWNhdGVkLiBQbGVhc2UgcHJvdmlkZSBhIHZh''@;'; put 'put ''bGlkIHNldCBvZiBjcmVkZW50aWFscy4iKXx8dGhpcztyZXR1cm4gTi5uYW1lPSJBdXRob3JpemVFcnJvciIsT2JqZWN0LnNldFByb3RvdHlwZU9mKE4sVy5wcm90b3R5cGUpLE59cmV0dXJuIHJlKFcsWSksV30oRXJyb3IpO1EuU0FTOUF1dGhFcnJvcj1hZX0sODg3NTpmdW5jdGlvbihVLFEp''@;'; put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgaixyZT10aGlzJiZ0aGlzLl9fZXh0ZW5kc3x8KGo9ZnVuY3Rpb24oWSxXKXtyZXR1cm4oaj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fHtfX3Byb3RvX186W119aW5zdGFuY2VvZiBBcnJheSYmZnVuY3Rpb24oTix0ZSl7Ti5fX3Byb3RvX189dGV9fHxmdW5jdGlv''@;'; put 'put ''bihOLHRlKXtmb3IodmFyIEsgaW4gdGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRlLEspJiYoTltLXT10ZVtLXSl9KShZLFcpfSxmdW5jdGlvbihZLFcpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXJiZudWxsIT09Vyl0aHJvdyBuZXcgVHlwZUVycm9yKCJDbGFzcyBl''@;'; put 'put ''eHRlbmRzIHZhbHVlICIrU3RyaW5nKFcpKyIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbCIpO2Z1bmN0aW9uIE4oKXt0aGlzLmNvbnN0cnVjdG9yPVl9aihZLFcpLFkucHJvdG90eXBlPW51bGw9PT1XP09iamVjdC5jcmVhdGUoVyk6KE4ucHJvdG90eXBlPVcucHJvdG90eXBlLG5ldyBO''@;'; put 'put ''KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLldlYm91dFJlc3BvbnNlRXJyb3I9dm9pZCAwO3ZhciBhZT1mdW5jdGlvbihZKXtmdW5jdGlvbiBXKE4pe3ZhciB0ZT1ZLmNhbGwodGhpcywiRXJyb3I6IGVycm9yIHdoaWxlIHBhcnNpbmcgcmVz''@;'; put 'put ''cG9uc2UgZnJvbSAiLmNvbmNhdChOKSl8fHRoaXM7cmV0dXJuIHRlLnVybD1OLHRlLm5hbWU9IldlYm91dFJlc3BvbnNlRXJyb3IiLE9iamVjdC5zZXRQcm90b3R5cGVPZih0ZSxXLnByb3RvdHlwZSksdGV9cmV0dXJuIHJlKFcsWSksV30oRXJyb3IpO1EuV2Vib3V0UmVzcG9uc2VFcnJvcj1h''@;'; put 'put ''ZX0sMTM5NTpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9Tik7dmFyIEs9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihX''@;'; put 'put ''LE4pO0smJiEoImdldCJpbiBLPyFXLl9fZXNNb2R1bGU6Sy53cml0YWJsZXx8Sy5jb25maWd1cmFibGUpfHwoSz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSx0ZSxLKX06ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQg''@;'; put 'put ''MD09PXRlJiYodGU9TiksWVt0ZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxyZShXLFksTil9O09iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShqKDEyNCksUSksYWUoaig5NDY1KSxRKSxhZShqKDUyNjcpLFEpLGFlKGooOTIzMiksUSksYWUoaig1MTA5KSxRKSxhZShqKDU1MTgpLFEpLGFlKGooODUzMSksUSksYWUoaig5MDc5KSxRKSxhZShqKDMwOTYpLFEpLGFl''@;'; put 'put ''KGooNjc0MyksUSksYWUoaig3ODY0KSxRKSxhZShqKDk1NzcpLFEpLGFlKGooOTI3OSksUSksYWUoaig4ODc1KSxRKX0sMTIzMDpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oWSxX''@;'; put 'put ''LE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9Tik7dmFyIEs9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihXLE4pO0smJiEoImdldCJpbiBLPyFXLl9fZXNNb2R1bGU6Sy53cml0YWJsZXx8Sy5jb25maWd1cmFibGUpfHwoSz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gV1tOXX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoWSx0ZSxLKX06ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9TiksWVt0ZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58''@;'; put 'put ''fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLE4pfHxyZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShqKDQ3MCksUSksYWUoaig0NjY2KSxRKSxhZShqKDQ5NzUpLFEpLGFlKGooNTc2NiksUSksYWUoaigy''@;'; put 'put ''MTUpLFEpLGFlKGooNDc4MiksUSksYWUoaig0MTY4KSxRKSxhZShqKDg1MTYpLFEpLGFlKGooNTg0MSksUSksYWUoaigyNDkzKSxRKSxhZShqKDYwMzgpLFEpLGFlKGooOTQ5MyksUSksYWUoaigzMTUzKSxRKSxhZShqKDg2NTApLFEpLGFlKGooNjE3NyksUSl9LDMzMDI6ZnVuY3Rpb24oVSxR''@;'; put 'put ''KXsidXNlIHN0cmljdCI7dmFyIGo9dGhpcyYmdGhpcy5fX2Fzc2lnbnx8ZnVuY3Rpb24oKXtyZXR1cm4gaj1PYmplY3QuYXNzaWdufHxmdW5jdGlvbihZKXtmb3IodmFyIFcsTj0xLHRlPWFyZ3VtZW50cy5sZW5ndGg7Tjx0ZTtOKyspZm9yKHZhciBLIGluIFc9YXJndW1lbnRzW05dKU9iamVj''@;'; put 'put ''dC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChXLEspJiYoWVtLXT1XW0tdKTtyZXR1cm4gWX0sai5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHJlPXRoaXMmJnRoaXMuX19hd2FpdGVyfHxmdW5jdGlvbihZLFcsTix0ZSl7cmV0dXJuIG5ldyhOfHwoTj1Qcm9taXNlKSkoZnVuY3Rpb24o''@;'; put 'put ''SyxKKXtmdW5jdGlvbiBzZShkZSl7dHJ5e2NlKHRlLm5leHQoZGUpKX1jYXRjaCh2ZSl7Sih2ZSl9fWZ1bmN0aW9uIG9lKGRlKXt0cnl7Y2UodGUudGhyb3coZGUpKX1jYXRjaCh2ZSl7Sih2ZSl9fWZ1bmN0aW9uIGNlKGRlKXt2YXIgdmU7ZGUuZG9uZT9LKGRlLnZhbHVlKToodmU9ZGUudmFs''@;'; put 'put ''dWUsdmUgaW5zdGFuY2VvZiBOP3ZlOm5ldyBOKGZ1bmN0aW9uKEFlKXtBZSh2ZSl9KSkudGhlbihzZSxvZSl9Y2UoKHRlPXRlLmFwcGx5KFksV3x8W10pKS5uZXh0KCkpfSl9LGFlPXRoaXMmJnRoaXMuX19nZW5lcmF0b3J8fGZ1bmN0aW9uKFksVyl7dmFyIE4sdGUsSyxKLHNlPXtsYWJlbDow''@;'; put 'put ''LHNlbnQ6ZnVuY3Rpb24oKXtpZigxJktbMF0pdGhyb3cgS1sxXTtyZXR1cm4gS1sxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBKPXtuZXh0Om9lKDApLHRocm93Om9lKDEpLHJldHVybjpvZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKEpbU3ltYm9sLml0ZXJhdG9yXT1mdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiB0aGlzfSksSjtmdW5jdGlvbiBvZShjZSl7cmV0dXJuIGZ1bmN0aW9uKGRlKXtyZXR1cm4gZnVuY3Rpb24odmUpe2lmKE4pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7c2U7KXRyeXtpZihOPTEsdGUmJihL''@;'; put 'put ''PTImdmVbMF0/dGUucmV0dXJuOnZlWzBdP3RlLnRocm93fHwoKEs9dGUucmV0dXJuKSYmSy5jYWxsKHRlKSwwKTp0ZS5uZXh0KSYmIShLPUsuY2FsbCh0ZSx2ZVsxXSkpLmRvbmUpcmV0dXJuIEs7c3dpdGNoKHRlPTAsSyYmKHZlPVsyJnZlWzBdLEsudmFsdWVdKSx2ZVswXSl7Y2FzZSAwOmNh''@;'; put 'put ''c2UgMTpLPXZlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gc2UubGFiZWwrKyx7dmFsdWU6dmVbMV0sZG9uZTohMX07Y2FzZSA1OnNlLmxhYmVsKyssdGU9dmVbMV0sdmU9WzBdO2NvbnRpbnVlO2Nhc2UgNzp2ZT1zZS5vcHMucG9wKCksc2UudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEo''@;'; put 'put ''KEs9KEs9c2UudHJ5cykubGVuZ3RoPjAmJktbSy5sZW5ndGgtMV0pfHw2IT09dmVbMF0mJjIhPT12ZVswXSkpe3NlPTA7Y29udGludWV9aWYoMz09PXZlWzBdJiYoIUt8fHZlWzFdPktbMF0mJnZlWzFdPEtbM10pKXtzZS5sYWJlbD12ZVsxXTticmVha31pZig2PT09dmVbMF0mJnNlLmxhYmVs''@;'; put 'put ''PEtbMV0pe3NlLmxhYmVsPUtbMV0sSz12ZTticmVha31pZihLJiZzZS5sYWJlbDxLWzJdKXtzZS5sYWJlbD1LWzJdLHNlLm9wcy5wdXNoKHZlKTticmVha31LWzJdJiZzZS5vcHMucG9wKCksc2UudHJ5cy5wb3AoKTtjb250aW51ZX12ZT1XLmNhbGwoWSxzZSl9Y2F0Y2goQWUpe3ZlPVs2LEFl''@;'; put 'put ''XSx0ZT0wfWZpbmFsbHl7Tj1LPTB9aWYoNSZ2ZVswXSl0aHJvdyB2ZVsxXTtyZXR1cm57dmFsdWU6dmVbMF0/dmVbMV06dm9pZCAwLGRvbmU6ITB9fShbY2UsZGVdKX19fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5hcHBlbmRFeHRyYVJlc3Bv''@;'; put 'put ''bnNlQXR0cmlidXRlcz12b2lkIDAsUS5hcHBlbmRFeHRyYVJlc3BvbnNlQXR0cmlidXRlcz1mdW5jdGlvbihZLFcpe3JldHVybiByZSh0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgTix0ZTtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihLKXtyZXR1cm4gTj17fSxudWxsIT1XJiZX''@;'; put 'put ''Lmxlbmd0aD8odGU9Vy5yZWR1Y2UoZnVuY3Rpb24oSixzZSl7cmV0dXJuIEpbc2VdPVlbc2VdLEp9LHt9KSxOPWooe3Jlc3VsdDpZLnJlc3VsdH0sdGUpKTpOPVkucmVzdWx0LFsyLE5dfSl9KX19LDc5MjI6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGo9dGhpcyYmdGhpcy5fX2F3''@;'; put 'put ''YWl0ZXJ8fGZ1bmN0aW9uKGFlLFksVyxOKXtyZXR1cm4gbmV3KFd8fChXPVByb21pc2UpKShmdW5jdGlvbih0ZSxLKXtmdW5jdGlvbiBKKGNlKXt0cnl7b2UoTi5uZXh0KGNlKSl9Y2F0Y2goZGUpe0soZGUpfX1mdW5jdGlvbiBzZShjZSl7dHJ5e29lKE4udGhyb3coY2UpKX1jYXRjaChkZSl7''@;'; put 'put ''SyhkZSl9fWZ1bmN0aW9uIG9lKGNlKXt2YXIgZGU7Y2UuZG9uZT90ZShjZS52YWx1ZSk6KGRlPWNlLnZhbHVlLGRlIGluc3RhbmNlb2YgVz9kZTpuZXcgVyhmdW5jdGlvbih2ZSl7dmUoZGUpfSkpLnRoZW4oSixzZSl9b2UoKE49Ti5hcHBseShhZSxZfHxbXSkpLm5leHQoKSl9KX0scmU9dGhp''@;'; put 'put ''cyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oYWUsWSl7dmFyIFcsTix0ZSxLLEo9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmdGVbMF0pdGhyb3cgdGVbMV07cmV0dXJuIHRlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIEs9e25leHQ6c2UoMCksdGhyb3c6c2UoMSkscmV0''@;'; put 'put ''dXJuOnNlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoS1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxLO2Z1bmN0aW9uIHNlKG9lKXtyZXR1cm4gZnVuY3Rpb24oY2Upe3JldHVybiBmdW5jdGlvbihkZSl7aWYoVyl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; put 'put ''KCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuIik7Zm9yKDtKOyl0cnl7aWYoVz0xLE4mJih0ZT0yJmRlWzBdP04ucmV0dXJuOmRlWzBdP04udGhyb3d8fCgodGU9Ti5yZXR1cm4pJiZ0ZS5jYWxsKE4pLDApOk4ubmV4dCkmJiEodGU9dGUuY2FsbChOLGRlWzFdKSkuZG9uZSlyZXR1''@;'; put 'put ''cm4gdGU7c3dpdGNoKE49MCx0ZSYmKGRlPVsyJmRlWzBdLHRlLnZhbHVlXSksZGVbMF0pe2Nhc2UgMDpjYXNlIDE6dGU9ZGU7YnJlYWs7Y2FzZSA0OnJldHVybiBKLmxhYmVsKysse3ZhbHVlOmRlWzFdLGRvbmU6ITF9O2Nhc2UgNTpKLmxhYmVsKyssTj1kZVsxXSxkZT1bMF07Y29udGludWU7''@;'; put 'put ''Y2FzZSA3OmRlPUoub3BzLnBvcCgpLEoudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKHRlPSh0ZT1KLnRyeXMpLmxlbmd0aD4wJiZ0ZVt0ZS5sZW5ndGgtMV0pfHw2IT09ZGVbMF0mJjIhPT1kZVswXSkpe0o9MDtjb250aW51ZX1pZigzPT09ZGVbMF0mJighdGV8fGRlWzFdPnRl''@;'; put 'put ''WzBdJiZkZVsxXTx0ZVszXSkpe0oubGFiZWw9ZGVbMV07YnJlYWt9aWYoNj09PWRlWzBdJiZKLmxhYmVsPHRlWzFdKXtKLmxhYmVsPXRlWzFdLHRlPWRlO2JyZWFrfWlmKHRlJiZKLmxhYmVsPHRlWzJdKXtKLmxhYmVsPXRlWzJdLEoub3BzLnB1c2goZGUpO2JyZWFrfXRlWzJdJiZKLm9wcy5w''@;'; put 'put ''b3AoKSxKLnRyeXMucG9wKCk7Y29udGludWV9ZGU9WS5jYWxsKGFlLEopfWNhdGNoKHZlKXtkZT1bNix2ZV0sTj0wfWZpbmFsbHl7Vz10ZT0wfWlmKDUmZGVbMF0pdGhyb3cgZGVbMV07cmV0dXJue3ZhbHVlOmRlWzBdP2RlWzFdOnZvaWQgMCxkb25lOiEwfX0oW29lLGNlXSl9fX07T2JqZWN0''@;'; put 'put ''LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuYXN5bmNGb3JFYWNoPXZvaWQgMCxRLmFzeW5jRm9yRWFjaD1mdW5jdGlvbihhZSxZKXtyZXR1cm4gaih0aGlzLHZvaWQgMCx2b2lkIDAsZnVuY3Rpb24oKXt2YXIgVztyZXR1cm4gcmUodGhpcyxmdW5jdGlvbihO''@;'; put 'put ''KXtzd2l0Y2goTi5sYWJlbCl7Y2FzZSAwOlc9MCxOLmxhYmVsPTE7Y2FzZSAxOnJldHVybiBXPGFlLmxlbmd0aD9bNCxZKGFlW1ddLFcsYWUpXTpbMyw0XTtjYXNlIDI6Ti5zZW50KCksTi5sYWJlbD0zO2Nhc2UgMzpyZXR1cm4gVysrLFszLDFdO2Nhc2UgNDpyZXR1cm5bMl19fSl9KX19LDM3''@;'; put 'put ''OTM6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuY29tcGFyZVRpbWVzdGFtcHM9dm9pZCAwLFEuY29tcGFyZVRpbWVzdGFtcHM9ZnVuY3Rpb24oaixyZSl7cmV0dXJuIHJlLnRpbWVzdGFtcC5nZXRUaW1lKCkt''@;'; put 'put ''ai50aW1lc3RhbXAuZ2V0VGltZSgpfX0sMzU1MzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5TQVNKU19MT0dTX1NFUEFSQVRPUj12b2lkIDAsUS5TQVNKU19MT0dTX1NFUEFSQVRPUj0iU0FTSlNfTE9HU19T''@;'; put 'put ''RVBBUkFUT1JfMTYzZWUxN2I2ZmYyNGYwMjg5Mjg5NzJkODBhMjY3ODQifSwyNDAyOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooNTEwOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNGb3JtYXRzVGFibGU9US5jb252ZXJ0VG9D''@;'; put 'put ''U1Y9dm9pZCAwO3ZhciBhZT1qKDY0NjcpLFk9aig5Nzc4KTtRLmNvbnZlcnRUb0NTVj1mdW5jdGlvbihOLHRlKXt2YXIgSztpZighTlt0ZV0pdGhyb3coMCxZLnByZWZpeE1lc3NhZ2UpKCJObyB0YWJsZSBwcm92aWRlZCB0byBiZSBjb252ZXJ0ZWQgdG8gQ1NWLiIsIkVycm9yIHdoaWxlIGNv''@;'; put 'put ''bnZlcnRpbmcgdG8gQ1NWLiAiKTt2YXIgSj1OW3RlXTtpZighQXJyYXkuaXNBcnJheShKKSlyZXR1cm4iIjt2YXIgc2Usb2U9bnVsbD09PShLPU5bIiQiLmNvbmNhdCh0ZSldKXx8dm9pZCAwPT09Sz92b2lkIDA6Sy5mb3JtYXRzLGNlPVtdLGRlPSExO29lJiYoY2U9T2JqZWN0LmtleXMob2Up''@;'; put 'put ''Lm1hcChmdW5jdGlvbihBZSl7cmV0dXJuIiIuY29uY2F0KEFlLCI6IikuY29uY2F0KG9lW0FlXSl9KSk7dmFyIHZlPU9iamVjdC5rZXlzKEpbMF0pO3JldHVybiB2ZS5mb3JFYWNoKGZ1bmN0aW9uKEFlKXtpZighb2V8fCFPYmplY3Qua2V5cyhvZSkuaW5jbHVkZXMoQWUpKXt2YXIga2U9ITEs''@;'; put 'put ''U2U9ITE7aWYoSi5mb3JFYWNoKGZ1bmN0aW9uKE8pe251bGw9PT1PW0FlXXx8Im51bWJlciI9PXR5cGVvZiBPW0FlXT9rZT0hMDoic3RyaW5nIj09dHlwZW9mIE9bQWVdJiYoMCxhZS5pc1NwZWNpYWxNaXNzaW5nKShPW0FlXSkmJihTZT0hMCl9KSxrZSYmU2UpY2UucHVzaCgiIi5jb25jYXQo''@;'; put 'put ''QWUsIjpiZXN0LiIpKSxvZXx8KG9lPXt9KSxvZVtBZV09ImJlc3QuIjtlbHNle3ZhciBJZT1udWxsLFRlPSExLE1lPS0xLGhlPUoubWFwKGZ1bmN0aW9uKE8seil7aWYoT1tBZV18fCIiPT09T1tBZV0pe0llP1RlfHwoTWU9KFRlPSgiIj09PU9bQWVdfHwic3RyaW5nIj09dHlwZW9mIE9bQWVd''@;'; put 'put ''PyJjaGFycyI6Im51bWJlciIpIT09SWUpP3orMTotMSk6SWU9IiI9PT1PW0FlXXx8InN0cmluZyI9PXR5cGVvZiBPW0FlXT8iY2hhcnMiOiJudW1iZXIiO3ZhciBuZT12b2lkIDA7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBPW0FlXSYmKG5lPVcoT1tBZV0pKSxuZX19KS5zb3J0KGZ1bmN0aW9u''@;'; put 'put ''KE8seil7cmV0dXJuIHotT30pWzBdO2hlJiZoZT4zMjc2NSYmKGRlPSEwKSxUZSYmcmUuZXJyb3IoIlJvdyAoIi5jb25jYXQoTWUsIiksIENvbHVtbiAoIikuY29uY2F0KEFlLCIpIGhhcyBtaXhlZCB0eXBlczogRVJST1IiKSksY2UucHVzaCgiIi5jb25jYXQoQWUsIjoiKS5jb25jYXQoImNo''@;'; put 'put ''YXJzIj09PUllPyIkY2hhciI6IiIpLmNvbmNhdChoZXx8KCJjaGFycyI9PT1JZT8iMSI6ImJlc3QiKSwiLiIpKX19fSksb2UmJihjZT1jZS5zb3J0KGZ1bmN0aW9uKEFlLGtlKXtyZXR1cm4gdmUuaW5kZXhPZihBZS5yZXBsYWNlKC86LiovLCIiKSktdmUuaW5kZXhPZihrZS5yZXBsYWNlKC86''@;'; put 'put ''LiovLCIiKSl9KSksZGU/IkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIjooc2U9Si5tYXAoZnVuY3Rpb24oQWUpe3JldHVybiBPYmplY3Qua2V5cyhBZSkubWFwKGZ1bmN0aW9uKGtlLFNlKXt2YXIgSWUsVGU9QWVba2VdO2lmKCJudW1iZXIiPT10eXBlb2YgVGUpcmV0dXJuIFRlO2lmKEll''@;'; put 'put ''PW51bGw9PT1UZT8iIjpUZSxvZSYmImJlc3QuIj09PW9lW2tlXSl7aWYoSWUmJiEoMCxhZS5pc1NwZWNpYWxNaXNzaW5nKShJZSkpdGhyb3cgbmV3IEVycm9yKCJBIFNwZWNpYWwgbWlzc2luZyB2YWx1ZSBjYW4gb25seSBiZSBhIHNpbmdsZSBjaGFyYWN0ZXIgZnJvbSAnQScgdG8gJ1onLCAn''@;'; put 'put ''XycsICcuW2Etel0nLCAnLl8nIik7dmFyIE1lPUllLmluY2x1ZGVzKCIuIik/IiI6Ii4iO3JldHVybiIiLmNvbmNhdChNZSkuY29uY2F0KEllLnRvTG93ZXJDYXNlKCkpfXJldHVybiBJZT1JZS5yZXBsYWNlKC8iL2csJyIiJyksKEllPSciJy5jb25jYXQoSWUsJyInKSkuc3Vic3RyaW5nKDEs''@;'; put 'put ''SWUubGVuZ3RoLTEpLnNlYXJjaCgvKFx0fFxufFxyfCx8XCd8XCIpL2dtKTwwJiYoSWU9SWUuc3Vic3RyaW5nKDEsSWUubGVuZ3RoLTEpKSwiIj09PShJZT1JZS5yZXBsYWNlKC9cclxuL2dtLCJcbiIpKSYmY2VbU2VdLmluY2x1ZGVzKCJiZXN0IikmJihJZT0iLiIpLEllfSkuam9pbigiLCIp''@;'; put 'put ''fSksY2Uuam9pbigiLCIpLnJlcGxhY2UoLywvZywiICIpKyJcclxuIitzZS5qb2luKCJcclxuIikpfSxRLmlzRm9ybWF0c1RhYmxlPWZ1bmN0aW9uKE4pe3JldHVybi9eXCQuKi8udGVzdChOKX07dmFyIFc9ZnVuY3Rpb24oTil7Zm9yKHZhciB0ZT1OLmxlbmd0aCxLPU4ubGVuZ3RoLTE7Sz49''@;'; put 'put ''MDtLLS0pe3ZhciBKPU4uY2hhckNvZGVBdChLKTtKPjEyNyYmSjw9MjA0Nz90ZSsrOko+MjA0NyYmSjw9NjU1MzUmJih0ZSs9MiksSj49NTYzMjAmJko8PTU3MzQzJiZLLS19cmV0dXJuIHRlfX0sNjExNjooVSxRLGopPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJf''@;'; put 'put ''X2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmNyZWF0ZUF4aW9zSW5zdGFuY2U9dm9pZCAwO3ZhciByZT1qKDk2NjkpO1EuY3JlYXRlQXhpb3NJbnN0YW5jZT1mdW5jdGlvbihhZSxZKXtyZXR1cm4gcmUuZGVmYXVsdC5jcmVhdGUoe2Jhc2VVUkw6YWUsaHR0cHNBZ2VudDpZfSl9fSw5ODI1OihV''@;'; put 'put ''LFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmRlbGF5PXZvaWQgMCxRLmRlbGF5PWZ1bmN0aW9uKGope3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZSl7cmV0dXJuIHNldFRpbWVvdXQocmUsail9KX19LDk5''@;'; put 'put ''MDpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT1qKDQxNTUpLGFlPWooNTEwOCksWT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8ZnVuY3Rpb24odGUsSyxKLHNlKXtyZXR1cm4gbmV3KEp8fChKPVByb21pc2UpKShmdW5jdGlvbihvZSxjZSl7ZnVuY3Rpb24gZGUoa2Upe3RyeXtB''@;'; put 'put ''ZShzZS5uZXh0KGtlKSl9Y2F0Y2goU2Upe2NlKFNlKX19ZnVuY3Rpb24gdmUoa2Upe3RyeXtBZShzZS50aHJvdyhrZSkpfWNhdGNoKFNlKXtjZShTZSl9fWZ1bmN0aW9uIEFlKGtlKXt2YXIgU2U7a2UuZG9uZT9vZShrZS52YWx1ZSk6KFNlPWtlLnZhbHVlLFNlIGluc3RhbmNlb2YgSj9TZTpu''@;'; put 'put ''ZXcgSihmdW5jdGlvbihJZSl7SWUoU2UpfSkpLnRoZW4oZGUsdmUpfUFlKChzZT1zZS5hcHBseSh0ZSxLfHxbXSkpLm5leHQoKSl9KX0sVz10aGlzJiZ0aGlzLl9fZ2VuZXJhdG9yfHxmdW5jdGlvbih0ZSxLKXt2YXIgSixzZSxvZSxjZSxkZT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYo''@;'; put 'put ''MSZvZVswXSl0aHJvdyBvZVsxXTtyZXR1cm4gb2VbMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gY2U9e25leHQ6dmUoMCksdGhyb3c6dmUoMSkscmV0dXJuOnZlKDIpfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoY2VbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0''@;'; put 'put ''aGlzfSksY2U7ZnVuY3Rpb24gdmUoQWUpe3JldHVybiBmdW5jdGlvbihrZSl7cmV0dXJuIGZ1bmN0aW9uKFNlKXtpZihKKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO2RlOyl0cnl7aWYoSj0xLHNlJiYob2U9MiZTZVswXT9zZS5y''@;'; put 'put ''ZXR1cm46U2VbMF0/c2UudGhyb3d8fCgob2U9c2UucmV0dXJuKSYmb2UuY2FsbChzZSksMCk6c2UubmV4dCkmJiEob2U9b2UuY2FsbChzZSxTZVsxXSkpLmRvbmUpcmV0dXJuIG9lO3N3aXRjaChzZT0wLG9lJiYoU2U9WzImU2VbMF0sb2UudmFsdWVdKSxTZVswXSl7Y2FzZSAwOmNhc2UgMTpv''@;'; put 'put ''ZT1TZTticmVhaztjYXNlIDQ6cmV0dXJuIGRlLmxhYmVsKysse3ZhbHVlOlNlWzFdLGRvbmU6ITF9O2Nhc2UgNTpkZS5sYWJlbCsrLHNlPVNlWzFdLFNlPVswXTtjb250aW51ZTtjYXNlIDc6U2U9ZGUub3BzLnBvcCgpLGRlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvZT0o''@;'; put 'put ''b2U9ZGUudHJ5cykubGVuZ3RoPjAmJm9lW29lLmxlbmd0aC0xXSl8fDYhPT1TZVswXSYmMiE9PVNlWzBdKSl7ZGU9MDtjb250aW51ZX1pZigzPT09U2VbMF0mJighb2V8fFNlWzFdPm9lWzBdJiZTZVsxXTxvZVszXSkpe2RlLmxhYmVsPVNlWzFdO2JyZWFrfWlmKDY9PT1TZVswXSYmZGUubGFi''@;'; put 'put ''ZWw8b2VbMV0pe2RlLmxhYmVsPW9lWzFdLG9lPVNlO2JyZWFrfWlmKG9lJiZkZS5sYWJlbDxvZVsyXSl7ZGUubGFiZWw9b2VbMl0sZGUub3BzLnB1c2goU2UpO2JyZWFrfW9lWzJdJiZkZS5vcHMucG9wKCksZGUudHJ5cy5wb3AoKTtjb250aW51ZX1TZT1LLmNhbGwodGUsZGUpfWNhdGNoKEll''@;'; put 'put ''KXtTZT1bNixJZV0sc2U9MH1maW5hbGx5e0o9b2U9MH1pZig1JlNlWzBdKXRocm93IFNlWzFdO3JldHVybnt2YWx1ZTpTZVswXT9TZVsxXTp2b2lkIDAsZG9uZTohMH19KFtBZSxrZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLmZldGNo''@;'; put 'put ''TG9nPVEuZmV0Y2hMb2dCeUNodW5rcz12b2lkIDA7dmFyIE49aig5Nzc4KTtRLmZldGNoTG9nQnlDaHVua3M9ZnVuY3Rpb24odGUsSyxKLHNlKXtyZXR1cm4gWSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3JldHVybiBXKHRoaXMsZnVuY3Rpb24ob2Upe3N3aXRjaChvZS5sYWJl''@;'; put 'put ''bCl7Y2FzZSAwOnJldHVybls0LCgwLFEuZmV0Y2hMb2cpKHRlLEssSiwwLHNlKV07Y2FzZSAxOnJldHVyblsyLG9lLnNlbnQoKV19fSl9KX0sUS5mZXRjaExvZz1mdW5jdGlvbih0ZSxLLEosc2Usb2Upe3JldHVybiBZKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIGNlLGRl''@;'; put 'put ''LHZlLEFlLGtlO3JldHVybiBXKHRoaXMsZnVuY3Rpb24oU2Upe3N3aXRjaChTZS5sYWJlbCl7Y2FzZSAwOmNlPXJlLmxvZ2dlcnx8YWUsZGU9IiIsdmU9b2U8MWU0P29lOjFlNCxTZS5sYWJlbD0xO2Nhc2UgMTpyZXR1cm4gY2UuaW5mbygiRmV0Y2hpbmcgbG9ncyBmcm9tIGxpbmUgbm86ICIu''@;'; put 'put ''Y29uY2F0KHNlKzEsIiB0byAiKS5jb25jYXQoc2UrdmUsIiBvZiAiKS5jb25jYXQob2UsIi4iKSksWzQsdGUuZ2V0KCIiLmNvbmNhdChKLCI/c3RhcnQ9IikuY29uY2F0KHNlLCImbGltaXQ9IikuY29uY2F0KHZlKSxLKS50aGVuKGZ1bmN0aW9uKEllKXtyZXR1cm4gSWUucmVzdWx0fSkuY2F0''@;'; put 'put ''Y2goZnVuY3Rpb24oSWUpe3Rocm93KDAsTi5wcmVmaXhNZXNzYWdlKShJZSwiRXJyb3Igd2hpbGUgZ2V0dGluZyBsb2cuICIpfSldO2Nhc2UgMjppZigwPT09KEFlPVNlLnNlbnQoKSkuaXRlbXMubGVuZ3RoKXJldHVyblszLDRdO2tlPUFlLml0ZW1zLm1hcChmdW5jdGlvbihJZSl7cmV0dXJu''@;'; put 'put ''IEllLmxpbmV9KS5qb2luKCJcbiIpLGRlKz1rZSxzZSs9dmUsU2UubGFiZWw9MztjYXNlIDM6aWYoc2U8b2UpcmV0dXJuWzMsMV07U2UubGFiZWw9NDtjYXNlIDQ6cmV0dXJuWzIsZGVdfX0pfSl9fSw3MTQ6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwi''@;'; put 'put ''X19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5mb3JtYXREYXRhRm9yUmVxdWVzdD12b2lkIDA7dmFyIHJlPWooMjQwMiksYWU9aig0Nzk5KTtRLmZvcm1hdERhdGFGb3JSZXF1ZXN0PWZ1bmN0aW9uKFkpe3ZhciBXPVtdLE49MCx0ZT17fTtmb3IodmFyIEsgaW4gWSlpZighKDAscmUuaXNGb3Jt''@;'; put 'put ''YXRzVGFibGUpKEspfHwhT2JqZWN0LmtleXMoWSkuaW5jbHVkZXMoSy5yZXBsYWNlKC9eXCQvLCIiKSkpe04rKywoMCxyZS5pc0Zvcm1hdHNUYWJsZSkoSyl8fFcucHVzaChLKTt2YXIgSj0oMCxyZS5jb252ZXJ0VG9DU1YpKFksSyk7aWYoIkVSUk9SOiBMQVJHRSBTVFJJTkcgTEVOR1RIIj09''@;'; put 'put ''PUopdGhyb3cgbmV3IEVycm9yKCJUaGUgbWF4IGxlbmd0aCBvZiBhIHN0cmluZyB2YWx1ZSBpbiBTQVNqcyBpcyAzMjc2NSBjaGFyYWN0ZXJzLiIpO2lmKEoubGVuZ3RoPjE2ZTMpe3ZhciBzZT0oMCxhZS5zcGxpdENodW5rcykoSik7dGVbInNhc2pzIi5jb25jYXQoTiwiZGF0YTAiKV09c2Uu''@;'; put 'put ''bGVuZ3RoLHNlLmZvckVhY2goZnVuY3Rpb24ob2UsY2Upe3RlWyJzYXNqcyIuY29uY2F0KE4sImRhdGEiKS5jb25jYXQoY2UrMSldPW9lfSl9ZWxzZSB0ZVsic2FzanMiLmNvbmNhdChOLCJkYXRhIildPUp9cmV0dXJuIHRlLnNhc2pzX3RhYmxlcz1XLmpvaW4oIiAiKSx0ZX19LDE4ODQ6KFUs''@;'; put 'put ''USxqKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5nZXRWYWxpZEpzb249dm9pZCAwO3ZhciByZT1qKDEzOTUpO1EuZ2V0VmFsaWRKc29uPWZ1bmN0aW9uKGFlKXt0cnl7aWYobnVsbD09YWUpdGhyb3cgbmV3IHJlLklu''@;'; put 'put ''dmFsaWRKc29uRXJyb3I7aWYoQXJyYXkuaXNBcnJheShhZSkpdGhyb3cgbmV3IHJlLkpzb25QYXJzZUFycmF5RXJyb3I7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhZT9hZToiIj09PWFlP3t9OkpTT04ucGFyc2UoYWUpfWNhdGNoKFkpe3Rocm93IFkgaW5zdGFuY2VvZiByZS5Kc29uUGFyc2VB''@;'; put 'put ''cnJheUVycm9yP1k6bmV3IHJlLkludmFsaWRKc29uRXJyb3J9fX0sNTkyODpmdW5jdGlvbihVLFEsail7InVzZSBzdHJpY3QiO3ZhciByZT10aGlzJiZ0aGlzLl9fY3JlYXRlQmluZGluZ3x8KE9iamVjdC5jcmVhdGU/ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9Tik7dmFy''@;'; put 'put ''IEs9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihXLE4pO0smJiEoImdldCJpbiBLPyFXLl9fZXNNb2R1bGU6Sy53cml0YWJsZXx8Sy5jb25maWd1cmFibGUpfHwoSz17ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gV1tOXX19KSxPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoWSx0ZSxLKX06ZnVuY3Rpb24oWSxXLE4sdGUpe3ZvaWQgMD09PXRlJiYodGU9TiksWVt0ZV09V1tOXX0pLGFlPXRoaXMmJnRoaXMuX19leHBvcnRTdGFyfHxmdW5jdGlvbihZLFcpe2Zvcih2YXIgTiBpbiBZKSJkZWZhdWx0Ij09PU58fE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVy''@;'; put 'put ''dHkuY2FsbChXLE4pfHxyZShXLFksTil9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhZShqKDMzMDIpLFEpLGFlKGooNzkyMiksUSksYWUoaigzNzkzKSxRKSxhZShqKDI0MDIpLFEpLGFlKGooMzU1MyksUSksYWUoaig2MTE2KSxRKSxhZShqKDk4''@;'; put 'put ''MjUpLFEpLGFlKGooOTkwKSxRKSxhZShqKDE4ODQpLFEpLGFlKGooNDI0MyksUSksYWUoaigyNTcpLFEpLGFlKGooMiksUSksYWUoaigyNjE1KSxRKSxhZShqKDI5MjApLFEpLGFlKGooMjQyMiksUSksYWUoaigzMSksUSksYWUoaig2NTE1KSxRKSxhZShqKDY0MTYpLFEpLGFlKGooMjgxMyks''@;'; put 'put ''USksYWUoaig5ODk2KSxRKSxhZShqKDQ3OTkpLFEpLGFlKGooNDUxNiksUSl9LDQyNDM6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MTU1KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc05vZGU9dm9pZCAwLFEuaXNOb2RlPWZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXJlJiZudWxsIT1yZS52ZXJzaW9ucyYmbnVsbCE9cmUudmVyc2lvbnMubm9kZX19LDI1NzooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5pc1JlbGF0aXZlUGF0aD12''@;'; put 'put ''b2lkIDAsUS5pc1JlbGF0aXZlUGF0aD1mdW5jdGlvbihqKXtyZXR1cm4hIWomJiFqLnN0YXJ0c1dpdGgoIi8iKX19LDI6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNVcmk9dm9pZCAwLFEuaXNVcmk9ZnVu''@;'; put 'put ''Y3Rpb24oail7cmV0dXJuL15cL2ZvbGRlcnNcL2ZvbGRlcnNcLy8udGVzdChqKX19LDI2MTU6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEuaXNVcmw9dm9pZCAwLFEuaXNVcmw9ZnVuY3Rpb24oail7dHJ5e3Zh''@;'; put 'put ''ciByZT1uZXcgVVJMKGopO2lmKCFbImh0dHA6IiwiaHR0cHM6Il0uaW5jbHVkZXMocmUucHJvdG9jb2wpKXJldHVybiExfWNhdGNoKGFlKXtyZXR1cm4hMX1yZXR1cm4hMH19LDEyMTA6ZnVuY3Rpb24oVSxRKXsidXNlIHN0cmljdCI7dmFyIGosSyxyZT10aGlzJiZ0aGlzLl9fYXdhaXRlcnx8''@;'; put 'put ''ZnVuY3Rpb24oSyxKLHNlLG9lKXtyZXR1cm4gbmV3KHNlfHwoc2U9UHJvbWlzZSkpKGZ1bmN0aW9uKGNlLGRlKXtmdW5jdGlvbiB2ZShTZSl7dHJ5e2tlKG9lLm5leHQoU2UpKX1jYXRjaChJZSl7ZGUoSWUpfX1mdW5jdGlvbiBBZShTZSl7dHJ5e2tlKG9lLnRocm93KFNlKSl9Y2F0Y2goSWUp''@;'; put 'put ''e2RlKEllKX19ZnVuY3Rpb24ga2UoU2Upe3ZhciBJZTtTZS5kb25lP2NlKFNlLnZhbHVlKTooSWU9U2UudmFsdWUsSWUgaW5zdGFuY2VvZiBzZT9JZTpuZXcgc2UoZnVuY3Rpb24oVGUpe1RlKEllKX0pKS50aGVuKHZlLEFlKX1rZSgob2U9b2UuYXBwbHkoSyxKfHxbXSkpLm5leHQoKSl9KX0s''@;'; put 'put ''YWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oSyxKKXt2YXIgc2Usb2UsY2UsZGUsdmU9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmY2VbMF0pdGhyb3cgY2VbMV07cmV0dXJuIGNlWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGRlPXtuZXh0OkFlKDApLHRocm93''@;'; put 'put ''OkFlKDEpLHJldHVybjpBZSgyKX0sImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmKGRlW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGRlO2Z1bmN0aW9uIEFlKGtlKXtyZXR1cm4gZnVuY3Rpb24oU2Upe3JldHVybiBmdW5jdGlvbihJZSl7aWYoc2UpdGhyb3cg''@;'; put 'put ''bmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLiIpO2Zvcig7dmU7KXRyeXtpZihzZT0xLG9lJiYoY2U9MiZJZVswXT9vZS5yZXR1cm46SWVbMF0/b2UudGhyb3d8fCgoY2U9b2UucmV0dXJuKSYmY2UuY2FsbChvZSksMCk6b2UubmV4dCkmJiEoY2U9Y2UuY2Fs''@;'; put 'put ''bChvZSxJZVsxXSkpLmRvbmUpcmV0dXJuIGNlO3N3aXRjaChvZT0wLGNlJiYoSWU9WzImSWVbMF0sY2UudmFsdWVdKSxJZVswXSl7Y2FzZSAwOmNhc2UgMTpjZT1JZTticmVhaztjYXNlIDQ6cmV0dXJuIHZlLmxhYmVsKysse3ZhbHVlOkllWzFdLGRvbmU6ITF9O2Nhc2UgNTp2ZS5sYWJlbCsr''@;'; put 'put ''LG9lPUllWzFdLEllPVswXTtjb250aW51ZTtjYXNlIDc6SWU9dmUub3BzLnBvcCgpLHZlLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChjZT0oY2U9dmUudHJ5cykubGVuZ3RoPjAmJmNlW2NlLmxlbmd0aC0xXSl8fDYhPT1JZVswXSYmMiE9PUllWzBdKSl7dmU9MDtjb250aW51''@;'; put 'put ''ZX1pZigzPT09SWVbMF0mJighY2V8fEllWzFdPmNlWzBdJiZJZVsxXTxjZVszXSkpe3ZlLmxhYmVsPUllWzFdO2JyZWFrfWlmKDY9PT1JZVswXSYmdmUubGFiZWw8Y2VbMV0pe3ZlLmxhYmVsPWNlWzFdLGNlPUllO2JyZWFrfWlmKGNlJiZ2ZS5sYWJlbDxjZVsyXSl7dmUubGFiZWw9Y2VbMl0s''@;'; put 'put ''dmUub3BzLnB1c2goSWUpO2JyZWFrfWNlWzJdJiZ2ZS5vcHMucG9wKCksdmUudHJ5cy5wb3AoKTtjb250aW51ZX1JZT1KLmNhbGwoSyx2ZSl9Y2F0Y2goVGUpe0llPVs2LFRlXSxvZT0wfWZpbmFsbHl7c2U9Y2U9MH1pZig1JkllWzBdKXRocm93IEllWzFdO3JldHVybnt2YWx1ZTpJZVswXT9J''@;'; put 'put ''ZVsxXTp2b2lkIDAsZG9uZTohMH19KFtrZSxTZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm9wZW5Mb2dpblByb21wdD12b2lkIDAsKEs9anx8KGo9e30pKS5zdHlsZXM9InNhc2pzQWRhcHRlclN0eWxlcyIsSy5vdmVybGF5PSJzYXNq''@;'; put 'put ''c0FkYXB0ZXJMb2dpblByb21wdEJHIixLLmRpYWxvZz0ic2FzanNBZGFwdGVyTG9naW5Qcm9tcHQiO3ZhciBZPSJzYXNqcy1hZGFwdGVyIixXPXtwb3BVcDoiIi5jb25jYXQoWSwicG9wVXAiKSxwb3BVcEJHOiIiLmNvbmNhdChZLCJwb3BVcEJHIil9O1Eub3BlbkxvZ2luUHJvbXB0PWZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEspe3JldHVybiByZSh2b2lkIDAsdm9pZCAwLHZvaWQgMCxmdW5jdGlvbigpe3ZhciBKLHNlLG9lLGNlLGRlLHZlLEFlLGtlO3JldHVybiBhZSh0aGlzLGZ1bmN0aW9uKFNlKXtyZXR1cm4oSj1kb2N1bWVudC5jcmVhdGVFbGVtZW50''@;'; put 'put ''KCJzdHlsZSIpKS5pZD1qLnN0eWxlcyxKLmlubmVyVGV4dD10ZSwoc2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmlkPWoub3ZlcmxheSxzZS5jbGFzc0xpc3QuYWRkKFcucG9wVXBCRyksKG9lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pZD1qLmRpYWxvZyxvZS5j''@;'; put 'put ''bGFzc0xpc3QuYWRkKFcucG9wVXApLChjZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJoMSIpKS5pbm5lclRleHQ9IlNlc3Npb24gRXhwaXJlZCEiLG9lLmFwcGVuZENoaWxkKGNlKSxkZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSwodmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi''@;'; put 'put ''c3BhbiIpKS5pbm5lclRleHQ9IllvdSBuZWVkIHRvIHJlbG9naW4sIGNsaWNrIE9LIHRvIGxvZ2luLiIsZGUuYXBwZW5kQ2hpbGQodmUpLG9lLmFwcGVuZENoaWxkKGRlKSwoQWU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIikpLmNsYXNzTGlzdC5hZGQoImNhbmNlbCIpLEFlLmlu''@;'; put 'put ''bmVyVGV4dD0iQ2FuY2VsIixBZS5vbmNsaWNrPWZ1bmN0aW9uKCl7TigpLEsoITEpfSxvZS5hcHBlbmRDaGlsZChBZSksKGtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpKS5jbGFzc0xpc3QuYWRkKCJjb25maXJtIiksa2UuaW5uZXJUZXh0PSJPayIsa2Uub25jbGljaz1mdW5j''@;'; put 'put ''dGlvbigpe04oKSxLKCEwKX0sb2UuYXBwZW5kQ2hpbGQoa2UpLGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChKKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNlKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG9lKSxb''@;'; put 'put ''Ml19KX0pfSl9O3ZhciBOPWZ1bmN0aW9uKCl7T2JqZWN0LnZhbHVlcyhqKS5mb3JFYWNoKGZ1bmN0aW9uKEspe3ZhciBKLHNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEspO251bGw9PT0oSj1udWxsPT1zZT92b2lkIDA6c2UucGFyZW50Tm9kZSl8fHZvaWQgMD09PUp8fEoucmVtb3ZlQ2hp''@;'; put 'put ''bGQoc2UpfSksZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdz0iYXV0byJ9LHRlPSJcbi4iLmNvbmNhdChXLnBvcFVwQkcsIiAsXG4uIikuY29uY2F0KFcucG9wVXAsIiB7XG4gIHotaW5kZXg6IDEwMDAwO1xufVxuLiIpLmNvbmNhdChXLnBvcFVwLCIge1xuICBib3gtc2l6aW5nOiBib3Jk''@;'; put 'put ''ZXItYm94O1xuICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgdG9wOiA0MCU7XG4gIGxlZnQ6IDUwJTtcbiAgcGFkZGluZzogMDtcbiAgZm9udC1z''@;'; put 'put ''aXplOiAxNHB4O1xuICBmb250LWZhbWlseTogJ1BUIFNhbnMnLCBzYW5zLXNlcmlmO1xuICBjb2xvcjogI2ZmZjtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICB6LWluZGV4OiA5OTk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAg''@;'; put 'put ''bWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiA+IGgxIHtcbiAgYm94LXNp''@;'; put 'put ''emluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDVweDtcbiAgbWluLWhlaWdodDogNDBweDtcbiAgZm9udC1zaXplOiAxLjJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7''@;'; put 'put ''XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIGJvcmRlci13aWR0aDogNXB4O1xuICBib3JkZXItY29sb3I6IGJsYWNrO1xufVxuLiIpLmNvbmNhdChXLnBvcFVw''@;'; put 'put ''LCIgPiBkaXYge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgLTEwOHB4KTtcbiAgbWFyZ2luOiAwO1xuICBkaXNwbGF5OiBibG9jaztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1z''@;'; put 'put ''aXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDUlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItY29sb3I6ICNjY2M7XG4gIGJvcmRlci1zdHlsZTogbm9uZSBub25lIHNvbGlkIG5vbmU7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxu''@;'; put 'put ''LiIpLmNvbmNhdChXLnBvcFVwLCIgPiBkaXYgPiBzcGFuIHtcbiAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjog''@;'; put 'put ''MDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDMwMHB4O1xuICBoZWlnaHQ6IDEwOHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiAuY2FuY2VsIHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG4uIikuY29u''@;'; put 'put ''Y2F0KFcucG9wVXAsIiAuY29uZmlybSB7XG4gIGZsb2F0OiByaWdodDtcbn1cbi4iKS5jb25jYXQoVy5wb3BVcCwiID4gYnV0dG9uIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRl''@;'; put 'put ''ci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDUwJTtcbiAgYm9yZGVyOiAxcHggbm9uZSAjY2NjO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgaGVpZ2h0OiA1MHB4O1xuICBiYWNr''@;'; put 'put ''Z3JvdW5kOiByZ2JhKDEsIDEsIDEsIDAuMik7XG59XG4uIikuY29uY2F0KFcucG9wVXAsIiA+IGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4yKTtcbn1cbi4iKS5jb25jYXQoVy5wb3BVcEJHLCIge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246''@;'; put 'put ''IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgb3BhY2l0eTogMC45NTtcbiAgei1pbmRleDogNTA7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudCgj''@;'; put 'put ''MDM3OGNkLCAjMDEyMDM2KTtcbn1cbiIpfSwyOTIwOihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLm5lZWRzUmV0cnk9dm9pZCAwLFEubmVlZHNSZXRyeT1mdW5jdGlvbihqKXtyZXR1cm4hIWomJihqLmluY2x1''@;'; put 'put ''ZGVzKCciZXJyb3JDb2RlIjo0MDMnKSYmai5pbmNsdWRlcygiX2NzcmYiKSYmai5pbmNsdWRlcygiWC1DU1JGLVRPS0VOIil8fGouaW5jbHVkZXMoJyJzdGF0dXMiOjQwMycpJiZqLmluY2x1ZGVzKCciZXJyb3IiOiJGb3JiaWRkZW4iJyl8fGouaW5jbHVkZXMoJyJzdGF0dXMiOjQ0OScpJiZq''@;'; put 'put ''LmluY2x1ZGVzKCJBdXRoZW50aWNhdGlvbiBzdWNjZXNzLCByZXRyeSBvcmlnaW5hbCByZXF1ZXN0IikpfX0sMjQyMjooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5wYXJzZUdlbmVyYXRlZENvZGU9dm9pZCAw''@;'; put 'put ''LFEucGFyc2VHZW5lcmF0ZWRDb2RlPWZ1bmN0aW9uKGope3JldHVybiBqLnNwbGl0KCJcbiIpLmZpbHRlcihmdW5jdGlvbihyZSl7cmV0dXJuIHJlLnRyaW0oKS5zdGFydHNXaXRoKCJNUFJJTlQiKX0pLmpvaW4oIlxyXG4iKX19LDMxOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWoo''@;'; put 'put ''NTEwOCk7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucGFyc2VTYXNWaXlhTG9nPXZvaWQgMCxRLnBhcnNlU2FzVml5YUxvZz1mdW5jdGlvbihhZSl7dmFyIFk7dHJ5e1k9YWUuaXRlbXM/YWUuaXRlbXMubWFwKGZ1bmN0aW9uKFcpe3JldHVybiBX''@;'; put 'put ''LmxpbmV9KS5qb2luKCJcbiIpOkpTT04uc3RyaW5naWZ5KGFlKX1jYXRjaChXKXtyZS5lcnJvcigiQW4gZXJyb3IgaGFzIG9jY3VycmVkIHdoaWxlIHBhcnNpbmcgdGhlIGxvZyByZXNwb25zZSIsVyksWT1hZX1yZXR1cm4gWX19LDY1MTU6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRl''@;'; put 'put ''ZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEucGFyc2VTb3VyY2VDb2RlPXZvaWQgMCxRLnBhcnNlU291cmNlQ29kZT1mdW5jdGlvbihqKXtyZXR1cm4gai5zcGxpdCgiXG4iKS5maWx0ZXIoZnVuY3Rpb24ocmUpe3JldHVybiByZS50cmltKCkuc3Vic3RyaW5nKDAs''@;'; put 'put ''MTApLnRyaW1TdGFydCgpLm1hdGNoKC9eXGQvKX0pLmpvaW4oIlxyXG4iKX19LDY0MTY6ZnVuY3Rpb24oVSxRLGopeyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9dGhpcyYmdGhpcy5fX2F3YWl0ZXJ8fGZ1bmN0aW9uKFcsTix0ZSxLKXtyZXR1cm4gbmV3KHRlfHwodGU9UHJvbWlzZSkpKGZ1bmN0aW9u''@;'; put 'put ''KEosc2Upe2Z1bmN0aW9uIG9lKHZlKXt0cnl7ZGUoSy5uZXh0KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gY2UodmUpe3RyeXtkZShLLnRocm93KHZlKSl9Y2F0Y2goQWUpe3NlKEFlKX19ZnVuY3Rpb24gZGUodmUpe3ZhciBBZTt2ZS5kb25lP0oodmUudmFsdWUpOihBZT12ZS52''@;'; put 'put ''YWx1ZSxBZSBpbnN0YW5jZW9mIHRlP0FlOm5ldyB0ZShmdW5jdGlvbihrZSl7a2UoQWUpfSkpLnRoZW4ob2UsY2UpfWRlKChLPUsuYXBwbHkoVyxOfHxbXSkpLm5leHQoKSl9KX0sYWU9dGhpcyYmdGhpcy5fX2dlbmVyYXRvcnx8ZnVuY3Rpb24oVyxOKXt2YXIgdGUsSyxKLHNlLG9lPXtsYWJl''@;'; put 'put ''bDowLHNlbnQ6ZnVuY3Rpb24oKXtpZigxJkpbMF0pdGhyb3cgSlsxXTtyZXR1cm4gSlsxXX0sdHJ5czpbXSxvcHM6W119O3JldHVybiBzZT17bmV4dDpjZSgwKSx0aHJvdzpjZSgxKSxyZXR1cm46Y2UoMil9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihzZVtTeW1ib2wuaXRlcmF0b3Jd''@;'; put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxzZTtmdW5jdGlvbiBjZShkZSl7cmV0dXJuIGZ1bmN0aW9uKHZlKXtyZXR1cm4gZnVuY3Rpb24oQWUpe2lmKHRlKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy4iKTtmb3IoO29lOyl0cnl7aWYodGU9''@;'; put 'put ''MSxLJiYoSj0yJkFlWzBdP0sucmV0dXJuOkFlWzBdP0sudGhyb3d8fCgoSj1LLnJldHVybikmJkouY2FsbChLKSwwKTpLLm5leHQpJiYhKEo9Si5jYWxsKEssQWVbMV0pKS5kb25lKXJldHVybiBKO3N3aXRjaChLPTAsSiYmKEFlPVsyJkFlWzBdLEoudmFsdWVdKSxBZVswXSl7Y2FzZSAwOmNh''@;'; put 'put ''c2UgMTpKPUFlO2JyZWFrO2Nhc2UgNDpyZXR1cm4gb2UubGFiZWwrKyx7dmFsdWU6QWVbMV0sZG9uZTohMX07Y2FzZSA1Om9lLmxhYmVsKyssSz1BZVsxXSxBZT1bMF07Y29udGludWU7Y2FzZSA3OkFlPW9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlO2RlZmF1bHQ6aWYoISgo''@;'; put 'put ''Sj0oSj1vZS50cnlzKS5sZW5ndGg+MCYmSltKLmxlbmd0aC0xXSl8fDYhPT1BZVswXSYmMiE9PUFlWzBdKSl7b2U9MDtjb250aW51ZX1pZigzPT09QWVbMF0mJighSnx8QWVbMV0+SlswXSYmQWVbMV08SlszXSkpe29lLmxhYmVsPUFlWzFdO2JyZWFrfWlmKDY9PT1BZVswXSYmb2UubGFiZWw8''@;'; put 'put ''SlsxXSl7b2UubGFiZWw9SlsxXSxKPUFlO2JyZWFrfWlmKEomJm9lLmxhYmVsPEpbMl0pe29lLmxhYmVsPUpbMl0sb2Uub3BzLnB1c2goQWUpO2JyZWFrfUpbMl0mJm9lLm9wcy5wb3AoKSxvZS50cnlzLnBvcCgpO2NvbnRpbnVlfUFlPU4uY2FsbChXLG9lKX1jYXRjaChrZSl7QWU9WzYsa2Vd''@;'; put 'put ''LEs9MH1maW5hbGx5e3RlPUo9MH1pZig1JkFlWzBdKXRocm93IEFlWzFdO3JldHVybnt2YWx1ZTpBZVswXT9BZVsxXTp2b2lkIDAsZG9uZTohMH19KFtkZSx2ZV0pfX19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnBhcnNlU2FzVml5YURlYnVn''@;'; put 'put ''UmVzcG9uc2U9dm9pZCAwO3ZhciBZPWooNTkyOCk7US5wYXJzZVNhc1ZpeWFEZWJ1Z1Jlc3BvbnNlPWZ1bmN0aW9uKFcsTix0ZSl7cmV0dXJuIHJlKHZvaWQgMCx2b2lkIDAsdm9pZCAwLGZ1bmN0aW9uKCl7dmFyIEssSjtyZXR1cm4gYWUodGhpcyxmdW5jdGlvbihzZSl7aWYoSz1XLnNwbGl0''@;'; put 'put ''KC88aWZyYW1lIHN0eWxlPSJ3aWR0aDogOTklOyBoZWlnaHQ6IDUwMHB4IiBzcmM9Inw8aWZyYW1lIHN0eWxlPSJ3aWR0aDogOTklOyBoZWlnaHQ6IDUwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOkNhbnZhczsiIHNyYz0vKVsxXSwhKEo9Sz9LLnNwbGl0KC8iPjxcL2lmcmFtZT58PjxcL2lmcmFt''@;'; put 'put ''ZT4vKVswXTpudWxsKSl0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBmaW5kIHdlYm91dCBmaWxlIFVSTC4iKTtyZXR1cm5bMixOLmdldCh0ZStKLHZvaWQgMCwidGV4dC9wbGFpbiIpLnRoZW4oZnVuY3Rpb24ob2Upe3JldHVybigwLFkuZ2V0VmFsaWRKc29uKShvZS5yZXN1bHQpfSldfSl9''@;'; put 'put ''KX19LDI4MTM6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig1MTA4KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5wYXJzZVdlYm91dFJlc3BvbnNlPXZvaWQgMDt2YXIgYWU9aigxMzk1KTtRLnBhcnNlV2Vib3V0UmVzcG9uc2U9ZnVu''@;'; put 'put ''Y3Rpb24oWSxXKXt2YXIgTj0iIjtpZihZLmluY2x1ZGVzKCI+PndlYm91dEJFR0lOPDwiKSl0cnl7Tj1ZLnNwbGl0KCI+PndlYm91dEJFR0lOPDwiKVsxXS5zcGxpdCgiPj53ZWJvdXRFTkQ8PCIpWzBdfWNhdGNoKHRlKXtpZihXKXRocm93IG5ldyBhZS5XZWJvdXRSZXNwb25zZUVycm9yKFcp''@;'; put 'put ''O049IiIscmUuZXJyb3IodGUpfXJldHVybiBOfX0sMTE3MDooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5leHRyYWN0VXNlckxvbmdOYW1lU2FzOT12b2lkIDA7dmFyIGo9WyJMb2cgT2ZmIl07US5leHRyYWN0''@;'; put 'put ''VXNlckxvbmdOYW1lU2FzOT1mdW5jdGlvbihyZSl7dmFyIGFlPW51bGw9PXJlP3ZvaWQgMDpyZS5tYXRjaCgvInRpdGxlIjpccz8iLio/Ii8pLFk9bnVsbD09YWU/dm9pZCAwOmFlWzBdLnNwbGl0KCI6IilbMV0udHJpbSgpLFc9bnVsbD09WT92b2lkIDA6WS5pbmRleE9mKCIgIik7cmV0dXJu''@;'; put 'put ''IFk/KGoubWFwKGZ1bmN0aW9uKE4pe3ZhciB0ZT0obnVsbD09WT92b2lkIDA6WS5pbmRleE9mKE4pKXx8LTE7dGU+LTEmJihXPXRlK04ubGVuZ3RoKX0pLFkuc2xpY2UoVywtMSkudHJpbSgpKToidW5rbm93biJ9fSw5ODk2OihVLFEpPT57InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9w''@;'; put 'put ''ZXJ0eShRLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxRLnNlcmlhbGl6ZT12b2lkIDAsUS5zZXJpYWxpemU9ZnVuY3Rpb24oail7dmFyIHJlPVtdO2Zvcih2YXIgYWUgaW4gailpZihqLmhhc093blByb3BlcnR5KGFlKSlpZihqW2FlXWluc3RhbmNlb2YgQXJyYXkpZm9yKHZhciBZPTAsVz1q''@;'; put 'put ''W2FlXS5sZW5ndGg7WTxXO1krKylyZS5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChhZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChqW2FlXVtZXSkpO2Vsc2UgcmUucHVzaChlbmNvZGVVUklDb21wb25lbnQoYWUpKyI9IitlbmNvZGVVUklDb21wb25lbnQoalthZV0pKTtyZXR1cm4gcmUuam9p''@;'; put 'put ''bigiJiIpfX0sNDc5OTooVSxRKT0+eyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksUS5zcGxpdENodW5rcz12b2lkIDAsUS5zcGxpdENodW5rcz1mdW5jdGlvbihqKXtmb3IodmFyIGFlPU1hdGguY2VpbChqLmxlbmd0aC8xNmUz''@;'; put 'put ''KSxZPW5ldyBBcnJheShhZSksVz0wLE49MDtXPGFlOysrVyxOKz0xNmUzKVlbV109ai5zdWJzdHIoTiwxNmUzKTtyZXR1cm4gWX19LDQ1MTY6KFUsUSk9PnsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KFEsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLFEudmFsaWRhdGVJbnB1''@;'; put 'put ''dD1RLklOVkFMSURfVEFCTEVfU1RSVUNUVVJFPVEuTU9SRV9JTkZPPXZvaWQgMCxRLk1PUkVfSU5GTz0iRm9yIG1vcmUgaW5mbyBzZWUgaHR0cHM6Ly9zYXNqcy5pby9zYXNqcy1hZGFwdGVyLyNyZXF1ZXN0LXJlc3BvbnNlIixRLklOVkFMSURfVEFCTEVfU1RSVUNUVVJFPSJQYXJhbWV0ZXIg''@;'; put 'put ''ZGF0YSBjb250YWlucyBpbnZhbGlkIHRhYmxlIHN0cnVjdHVyZS4gIi5jb25jYXQoUS5NT1JFX0lORk8pLFEudmFsaWRhdGVJbnB1dD1mdW5jdGlvbihyZSl7aWYobnVsbD09PXJlKXJldHVybntzdGF0dXM6ITAsbXNnOiIifTtpZigib2JqZWN0IiE9PWoocmUpKXJldHVybntzdGF0dXM6ITEs''@;'; put 'put ''bXNnOlEuSU5WQUxJRF9UQUJMRV9TVFJVQ1RVUkV9O3ZhciBhZT1mdW5jdGlvbihvZSl7cmV0dXJuIG9lLm1hdGNoKC9eXCQuKi8pJiZPYmplY3Qua2V5cyhyZSkuaW5jbHVkZXMob2UucmVwbGFjZSgvXlwkLywiIikpfTtmb3IodmFyIFkgaW4gcmUpe2lmKCFZLm1hdGNoKC9eW2EtekEtWl9d''@;'; put 'put ''LykmJiFhZShZKSlyZXR1cm57c3RhdHVzOiExLG1zZzoiRmlyc3QgbGV0dGVyIG9mIHRhYmxlIHNob3VsZCBiZSBhbHBoYWJldCBvciB1bmRlcnNjb3JlLiJ9O2lmKCFZLm1hdGNoKC9eW2EtekEtWl9dW2EtekEtWjAtOV9dKiQvKSYmIWFlKFkpKXJldHVybntzdGF0dXM6ITEsbXNnOiJUYWJs''@;'; put 'put ''ZSBuYW1lIHNob3VsZCBiZSBhbHBoYW51bWVyaWMuIn07aWYoWS5sZW5ndGg+MzIpcmV0dXJue3N0YXR1czohMSxtc2c6Ik1heGltdW0gbGVuZ3RoIGZvciB0YWJsZSBuYW1lIGNvdWxkIGJlIDMyIGNoYXJhY3RlcnMuIn07aWYoIkFycmF5IiE9PWoocmVbWV0pJiYhYWUoWSkpcmV0dXJue3N0''@;'; put 'put ''YXR1czohMSxtc2c6US5JTlZBTElEX1RBQkxFX1NUUlVDVFVSRX07Zm9yKHZhciBXPTAsTj1yZVtZXTtXPE4ubGVuZ3RoO1crKyl7dmFyIHRlPU5bV107aWYoIm9iamVjdCIhPT1qKHRlKSlyZXR1cm57c3RhdHVzOiExLG1zZzoiVGFibGUgIi5jb25jYXQoWSwiIGNvbnRhaW5zIGludmFsaWQg''@;'; put 'put ''c3RydWN0dXJlLiAiKS5jb25jYXQoUS5NT1JFX0lORk8pfTtmb3IodmFyIEs9MCxKPU9iamVjdC5rZXlzKHRlKTtLPEoubGVuZ3RoO0srKyl7dmFyIHNlPUpbS107aWYodm9pZCAwPT09dGVbc2VdKXJldHVybntzdGF0dXM6ITEsbXNnOiJBIHJvdyBpbiB0YWJsZSAiLmNvbmNhdChZLCIgY29u''@;'; put 'put ''dGFpbnMgaW52YWxpZCB2YWx1ZS4gQ2FuJ3QgYXNzaWduIHVuZGVmaW5lZCB0byAiKS5jb25jYXQoc2UsIi4iKX19fX1yZXR1cm57c3RhdHVzOiEwLG1zZzoiIn19O3ZhciBqPWZ1bmN0aW9uKHJlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShyZSk/IkFycmF5Ijp0eXBlb2YgcmV9fSw4OTgxOihV''@;'; put 'put ''LFEpPT57InVzZSBzdHJpY3QiO1EuZnJvbUNhbGxiYWNrPWZ1bmN0aW9uKGope3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoZnVuY3Rpb24oLi4ucmUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiByZVtyZS5sZW5ndGgtMV0pcmV0dXJuIG5ldyBQcm9taXNlKChhZSxZKT0+e2ouY2FsbCh0''@;'; put 'put ''aGlzLC4uLnJlLChXLE4pPT5udWxsIT1XP1koVyk6YWUoTikpfSk7ai5hcHBseSh0aGlzLHJlKX0sIm5hbWUiLHt2YWx1ZTpqLm5hbWV9KX0sUS5mcm9tUHJvbWlzZT1mdW5jdGlvbihqKXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKC4uLnJlKXtjb25zdCBhZT1yZVty''@;'; put 'put ''ZS5sZW5ndGgtMV07aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGFlKXJldHVybiBqLmFwcGx5KHRoaXMscmUpO2ouYXBwbHkodGhpcyxyZS5zbGljZSgwLC0xKSkudGhlbihZPT5hZShudWxsLFkpLGFlKX0sIm5hbWUiLHt2YWx1ZTpqLm5hbWV9KX19LDI1MTE6ZnVuY3Rpb24oVSxRLGope3ZhciBy''@;'; put 'put ''ZTtVPWoubm1kKFUpLGZ1bmN0aW9uKGFlKXt2YXIgVyxOPTIxNDc0ODM2NDcsSz0vXnhuLS0vLEo9L1teXHgyMC1ceDdFXS8sc2U9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLG9lPXtvdmVyZmxvdzoiT3ZlcmZsb3c6IGlucHV0IG5lZWRzIHdpZGVyIGludGVnZXJzIHRvIHByb2Nlc3Mi''@;'; put 'put ''LCJub3QtYmFzaWMiOiJJbGxlZ2FsIGlucHV0ID49IDB4ODAgKG5vdCBhIGJhc2ljIGNvZGUgcG9pbnQpIiwiaW52YWxpZC1pbnB1dCI6IkludmFsaWQgaW5wdXQifSxjZT1NYXRoLmZsb29yLGRlPVN0cmluZy5mcm9tQ2hhckNvZGU7ZnVuY3Rpb24gdmUoeil7dGhyb3cgUmFuZ2VFcnJvcihv''@;'; put 'put ''ZVt6XSl9ZnVuY3Rpb24gQWUoeixlZSl7Zm9yKHZhciBuZT16Lmxlbmd0aCx4PVtdO25lLS07KXhbbmVdPWVlKHpbbmVdKTtyZXR1cm4geH1mdW5jdGlvbiBrZSh6LGVlKXt2YXIgbmU9ei5zcGxpdCgiQCIpLHg9IiI7cmV0dXJuIG5lLmxlbmd0aD4xJiYoeD1uZVswXSsiQCIsej1uZVsxXSks''@;'; put 'put ''eCtBZSgoej16LnJlcGxhY2Uoc2UsIi4iKSkuc3BsaXQoIi4iKSxlZSkuam9pbigiLiIpfWZ1bmN0aW9uIFNlKHope2Zvcih2YXIgZWUsbmUseD1bXSxQPTAsVj16Lmxlbmd0aDtQPFY7KShlZT16LmNoYXJDb2RlQXQoUCsrKSk+PTU1Mjk2JiZlZTw9NTYzMTkmJlA8Vj81NjMyMD09KDY0NTEy''@;'; put 'put ''JihuZT16LmNoYXJDb2RlQXQoUCsrKSkpP3gucHVzaCgoKDEwMjMmZWUpPDwxMCkrKDEwMjMmbmUpKzY1NTM2KTooeC5wdXNoKGVlKSxQLS0pOngucHVzaChlZSk7cmV0dXJuIHh9ZnVuY3Rpb24gSWUoeil7cmV0dXJuIEFlKHosZnVuY3Rpb24oZWUpe3ZhciBuZT0iIjtyZXR1cm4gZWU+NjU1''@;'; put 'put ''MzUmJihuZSs9ZGUoKGVlLT02NTUzNik+Pj4xMCYxMDIzfDU1Mjk2KSxlZT01NjMyMHwxMDIzJmVlKSxuZStkZShlZSl9KS5qb2luKCIiKX1mdW5jdGlvbiBUZSh6LGVlKXtyZXR1cm4geisyMis3NSooejwyNiktKCgwIT1lZSk8PDUpfWZ1bmN0aW9uIE1lKHosZWUsbmUpe3ZhciB4PTA7Zm9y''@;'; put 'put ''KHo9bmU/Y2Uoei83MDApOno+PjEseis9Y2Uoei9lZSk7ej40NTU7eCs9MzYpej1jZSh6LzM1KTtyZXR1cm4gY2UoeCszNip6Lyh6KzM4KSl9ZnVuY3Rpb24gaGUoeil7dmFyIGVlLG5lLHgsUCxWLFQsUyxGLHllLENlLERlLFBlPVtdLFFlPXoubGVuZ3RoLCRlPTAsZ3Q9MTI4LHd0PTcyO2Zv''@;'; put 'put ''cigobmU9ei5sYXN0SW5kZXhPZigiLSIpKTwwJiYobmU9MCkseD0wO3g8bmU7Kyt4KXouY2hhckNvZGVBdCh4KT49MTI4JiZ2ZSgibm90LWJhc2ljIiksUGUucHVzaCh6LmNoYXJDb2RlQXQoeCkpO2ZvcihQPW5lPjA/bmUrMTowO1A8UWU7KXtmb3IoVj0kZSxUPTEsUz0zNjtQPj1RZSYmdmUo''@;'; put 'put ''ImludmFsaWQtaW5wdXQiKSwoKEY9KERlPXouY2hhckNvZGVBdChQKyspKS00ODwxMD9EZS0yMjpEZS02NTwyNj9EZS02NTpEZS05NzwyNj9EZS05NzozNik+PTM2fHxGPmNlKChOLSRlKS9UKSkmJnZlKCJvdmVyZmxvdyIpLCRlKz1GKlQsIShGPCh5ZT1TPD13dD8xOlM+PXd0KzI2PzI2OlMt''@;'; put 'put ''d3QpKTtTKz0zNilUPmNlKE4vKENlPTM2LXllKSkmJnZlKCJvdmVyZmxvdyIpLFQqPUNlO3d0PU1lKCRlLVYsZWU9UGUubGVuZ3RoKzEsMD09ViksY2UoJGUvZWUpPk4tZ3QmJnZlKCJvdmVyZmxvdyIpLGd0Kz1jZSgkZS9lZSksJGUlPWVlLFBlLnNwbGljZSgkZSsrLDAsZ3QpfXJldHVybiBJ''@;'; put 'put ''ZShQZSl9ZnVuY3Rpb24gTyh6KXt2YXIgZWUsbmUseCxQLFYsVCxTLEYseWUsQ2UsRGUsUGUsUWUsJGUsZ3Qsd3Q9W107Zm9yKFBlPSh6PVNlKHopKS5sZW5ndGgsZWU9MTI4LG5lPTAsVj03MixUPTA7VDxQZTsrK1QpKERlPXpbVF0pPDEyOCYmd3QucHVzaChkZShEZSkpO2Zvcih4PVA9d3Qu''@;'; put 'put ''bGVuZ3RoLFAmJnd0LnB1c2goIi0iKTt4PFBlOyl7Zm9yKFM9TixUPTA7VDxQZTsrK1QpKERlPXpbVF0pPj1lZSYmRGU8UyYmKFM9RGUpO2ZvcihTLWVlPmNlKChOLW5lKS8oUWU9eCsxKSkmJnZlKCJvdmVyZmxvdyIpLG5lKz0oUy1lZSkqUWUsZWU9UyxUPTA7VDxQZTsrK1QpaWYoKERlPXpb''@;'; put 'put ''VF0pPGVlJiYrK25lPk4mJnZlKCJvdmVyZmxvdyIpLERlPT1lZSl7Zm9yKEY9bmUseWU9MzY7IShGPChDZT15ZTw9Vj8xOnllPj1WKzI2PzI2OnllLVYpKTt5ZSs9MzYpd3QucHVzaChkZShUZShDZSsoZ3Q9Ri1DZSklKCRlPTM2LUNlKSwwKSkpLEY9Y2UoZ3QvJGUpO3d0LnB1c2goZGUoVGUo''@;'; put 'put ''RiwwKSkpLFY9TWUobmUsUWUseD09UCksbmU9MCwrK3h9KytuZSwrK2VlfXJldHVybiB3dC5qb2luKCIiKX1XPXt2ZXJzaW9uOiIxLjMuMiIsdWNzMjp7ZGVjb2RlOlNlLGVuY29kZTpJZX0sZGVjb2RlOmhlLGVuY29kZTpPLHRvQVNDSUk6ZnVuY3Rpb24oeil7cmV0dXJuIGtlKHosZnVuY3Rp''@;'; put 'put ''b24oZWUpe3JldHVybiBKLnRlc3QoZWUpPyJ4bi0tIitPKGVlKTplZX0pfSx0b1VuaWNvZGU6ZnVuY3Rpb24oeil7cmV0dXJuIGtlKHosZnVuY3Rpb24oZWUpe3JldHVybiBLLnRlc3QoZWUpP2hlKGVlLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOmVlfSl9fSx2b2lkIDA9PT0ocmU9ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gV30uY2FsbChRLGosUSxVKSl8fChVLmV4cG9ydHM9cmUpfSgpfSw4NTc1OihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPWooMjUxMSksYWU9aigyNTAyKTtmdW5jdGlvbiBZKCl7dGhpcy5wcm90b2NvbD1udWxsLHRoaXMuc2xhc2hlcz1udWxsLHRoaXMuYXV0aD1u''@;'; put 'put ''dWxsLHRoaXMuaG9zdD1udWxsLHRoaXMucG9ydD1udWxsLHRoaXMuaG9zdG5hbWU9bnVsbCx0aGlzLmhhc2g9bnVsbCx0aGlzLnNlYXJjaD1udWxsLHRoaXMucXVlcnk9bnVsbCx0aGlzLnBhdGhuYW1lPW51bGwsdGhpcy5wYXRoPW51bGwsdGhpcy5ocmVmPW51bGx9US5RYz1JZTt2YXIgVz0v''@;'; put 'put ''XihbYS16MC05ListXSs6KS9pLE49LzpbMC05XSokLyx0ZT0vXihcL1wvPyg/IVwvKVteXD9cc10qKShcP1teXHNdKik/JC8sSz1bInsiLCJ9IiwifCIsIlxcIiwiXiIsImAiXS5jb25jYXQoWyI8IiwiPiIsJyInLCJgIiwiICIsIlxyIiwiXG4iLCJcdCJdKSxKPVsiJyJdLmNvbmNhdChLKSxz''@;'; put 'put ''ZT1bIiUiLCIvIiwiPyIsIjsiLCIjIl0uY29uY2F0KEopLG9lPVsiLyIsIj8iLCIjIl0sY2U9L15bK2EtejAtOUEtWl8tXXswLDYzfSQvLGRlPS9eKFsrYS16MC05QS1aXy1dezAsNjN9KSguKikkLyx2ZT17amF2YXNjcmlwdDohMCwiamF2YXNjcmlwdDoiOiEwfSxBZT17amF2YXNjcmlwdDoh''@;'; put 'put ''MCwiamF2YXNjcmlwdDoiOiEwfSxrZT17aHR0cDohMCxodHRwczohMCxmdHA6ITAsZ29waGVyOiEwLGZpbGU6ITAsImh0dHA6IjohMCwiaHR0cHM6IjohMCwiZnRwOiI6ITAsImdvcGhlcjoiOiEwLCJmaWxlOiI6ITB9LFNlPWooNzY3Myk7ZnVuY3Rpb24gSWUoVGUsTWUsaGUpe2lmKFRlJiZh''@;'; put 'put ''ZS5pc09iamVjdChUZSkmJlRlIGluc3RhbmNlb2YgWSlyZXR1cm4gVGU7dmFyIE89bmV3IFk7cmV0dXJuIE8ucGFyc2UoVGUsTWUsaGUpLE99WS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oVGUsTWUsaGUpe2lmKCFhZS5pc1N0cmluZyhUZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiUGFyYW1l''@;'; put 'put ''dGVyICd1cmwnIG11c3QgYmUgYSBzdHJpbmcsIG5vdCAiK3R5cGVvZiBUZSk7dmFyIE89VGUuaW5kZXhPZigiPyIpLHo9LTEhPT1PJiZPPFRlLmluZGV4T2YoIiMiKT8iPyI6IiMiLGVlPVRlLnNwbGl0KHopO2VlWzBdPWVlWzBdLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgbmU9VGU9ZWUuam9p''@;'; put 'put ''bih6KTtpZihuZT1uZS50cmltKCksIWhlJiYxPT09VGUuc3BsaXQoIiMiKS5sZW5ndGgpe3ZhciB4PXRlLmV4ZWMobmUpO2lmKHgpcmV0dXJuIHRoaXMucGF0aD1uZSx0aGlzLmhyZWY9bmUsdGhpcy5wYXRobmFtZT14WzFdLHhbMl0/KHRoaXMuc2VhcmNoPXhbMl0sdGhpcy5xdWVyeT1NZT9T''@;'; put 'put ''ZS5wYXJzZSh0aGlzLnNlYXJjaC5zdWJzdHIoMSkpOnRoaXMuc2VhcmNoLnN1YnN0cigxKSk6TWUmJih0aGlzLnNlYXJjaD0iIix0aGlzLnF1ZXJ5PXt9KSx0aGlzfXZhciBQPVcuZXhlYyhuZSk7aWYoUCl7dmFyIFY9KFA9UFswXSkudG9Mb3dlckNhc2UoKTt0aGlzLnByb3RvY29sPVYsbmU9''@;'; put 'put ''bmUuc3Vic3RyKFAubGVuZ3RoKX1pZihoZXx8UHx8bmUubWF0Y2goL15cL1wvW15AXC9dK0BbXkBcL10rLykpe3ZhciBUPSIvLyI9PT1uZS5zdWJzdHIoMCwyKTshVHx8UCYmQWVbUF18fChuZT1uZS5zdWJzdHIoMiksdGhpcy5zbGFzaGVzPSEwKX1pZighQWVbUF0mJihUfHxQJiYha2VbUF0p''@;'; put 'put ''KXtmb3IodmFyIFMsRix5ZT0tMSxDZT0wO0NlPG9lLmxlbmd0aDtDZSsrKS0xIT09KERlPW5lLmluZGV4T2Yob2VbQ2VdKSkmJigtMT09PXllfHxEZTx5ZSkmJih5ZT1EZSk7Zm9yKC0xIT09KEY9LTE9PT15ZT9uZS5sYXN0SW5kZXhPZigiQCIpOm5lLmxhc3RJbmRleE9mKCJAIix5ZSkpJiYo''@;'; put 'put ''Uz1uZS5zbGljZSgwLEYpLG5lPW5lLnNsaWNlKEYrMSksdGhpcy5hdXRoPWRlY29kZVVSSUNvbXBvbmVudChTKSkseWU9LTEsQ2U9MDtDZTxzZS5sZW5ndGg7Q2UrKyl7dmFyIERlOy0xIT09KERlPW5lLmluZGV4T2Yoc2VbQ2VdKSkmJigtMT09PXllfHxEZTx5ZSkmJih5ZT1EZSl9LTE9PT15''@;'; put 'put ''ZSYmKHllPW5lLmxlbmd0aCksdGhpcy5ob3N0PW5lLnNsaWNlKDAseWUpLG5lPW5lLnNsaWNlKHllKSx0aGlzLnBhcnNlSG9zdCgpLHRoaXMuaG9zdG5hbWU9dGhpcy5ob3N0bmFtZXx8IiI7dmFyIFBlPSJbIj09PXRoaXMuaG9zdG5hbWVbMF0mJiJdIj09PXRoaXMuaG9zdG5hbWVbdGhpcy5o''@;'; put 'put ''b3N0bmFtZS5sZW5ndGgtMV07aWYoIVBlKWZvcih2YXIgUWU9dGhpcy5ob3N0bmFtZS5zcGxpdCgvXC4vKSwkZT0oQ2U9MCxRZS5sZW5ndGgpO0NlPCRlO0NlKyspe3ZhciBndD1RZVtDZV07aWYoZ3QmJiFndC5tYXRjaChjZSkpe2Zvcih2YXIgd3Q9IiIsbXQ9MCx2dD1ndC5sZW5ndGg7bXQ8''@;'; put 'put ''dnQ7bXQrKylndC5jaGFyQ29kZUF0KG10KT4xMjc/d3QrPSJ4Ijp3dCs9Z3RbbXRdO2lmKCF3dC5tYXRjaChjZSkpe3ZhciBBdD1RZS5zbGljZSgwLENlKSxodD1RZS5zbGljZShDZSsxKSxCdD1ndC5tYXRjaChkZSk7QnQmJihBdC5wdXNoKEJ0WzFdKSxodC51bnNoaWZ0KEJ0WzJdKSksaHQu''@;'; put 'put ''bGVuZ3RoJiYobmU9Ii8iK2h0LmpvaW4oIi4iKStuZSksdGhpcy5ob3N0bmFtZT1BdC5qb2luKCIuIik7YnJlYWt9fX10aGlzLmhvc3RuYW1lPXRoaXMuaG9zdG5hbWUubGVuZ3RoPjI1NT8iIjp0aGlzLmhvc3RuYW1lLnRvTG93ZXJDYXNlKCksUGV8fCh0aGlzLmhvc3RuYW1lPXJlLnRvQVND''@;'; put 'put ''SUkodGhpcy5ob3N0bmFtZSkpO3ZhciBvbj10aGlzLnBvcnQ/IjoiK3RoaXMucG9ydDoiIjt0aGlzLmhvc3Q9KHRoaXMuaG9zdG5hbWV8fCIiKStvbix0aGlzLmhyZWYrPXRoaXMuaG9zdCxQZSYmKHRoaXMuaG9zdG5hbWU9dGhpcy5ob3N0bmFtZS5zdWJzdHIoMSx0aGlzLmhvc3RuYW1lLmxl''@;'; put 'put ''bmd0aC0yKSwiLyIhPT1uZVswXSYmKG5lPSIvIituZSkpfWlmKCF2ZVtWXSlmb3IoQ2U9MCwkZT1KLmxlbmd0aDtDZTwkZTtDZSsrKXt2YXIgdHQ9SltDZV07aWYoLTEhPT1uZS5pbmRleE9mKHR0KSl7dmFyIGV0PWVuY29kZVVSSUNvbXBvbmVudCh0dCk7ZXQ9PT10dCYmKGV0PWVzY2FwZSh0''@;'; put 'put ''dCkpLG5lPW5lLnNwbGl0KHR0KS5qb2luKGV0KX19dmFyIGx0PW5lLmluZGV4T2YoIiMiKTstMSE9PWx0JiYodGhpcy5oYXNoPW5lLnN1YnN0cihsdCksbmU9bmUuc2xpY2UoMCxsdCkpO3ZhciBMdD1uZS5pbmRleE9mKCI/Iik7cmV0dXJuLTEhPT1MdD8odGhpcy5zZWFyY2g9bmUuc3Vic3Ry''@;'; put 'put ''KEx0KSx0aGlzLnF1ZXJ5PW5lLnN1YnN0cihMdCsxKSxNZSYmKHRoaXMucXVlcnk9U2UucGFyc2UodGhpcy5xdWVyeSkpLG5lPW5lLnNsaWNlKDAsTHQpKTpNZSYmKHRoaXMuc2VhcmNoPSIiLHRoaXMucXVlcnk9e30pLG5lJiYodGhpcy5wYXRobmFtZT1uZSksa2VbVl0mJnRoaXMuaG9zdG5h''@;'; put 'put ''bWUmJiF0aGlzLnBhdGhuYW1lJiYodGhpcy5wYXRobmFtZT0iLyIpLCh0aGlzLnBhdGhuYW1lfHx0aGlzLnNlYXJjaCkmJih0aGlzLnBhdGg9KG9uPXRoaXMucGF0aG5hbWV8fCIiKSsodGhpcy5zZWFyY2h8fCIiKSksdGhpcy5ocmVmPXRoaXMuZm9ybWF0KCksdGhpc30sWS5wcm90b3R5cGUu''@;'; put 'put ''Zm9ybWF0PWZ1bmN0aW9uKCl7dmFyIFRlPXRoaXMuYXV0aHx8IiI7VGUmJihUZT0oVGU9ZW5jb2RlVVJJQ29tcG9uZW50KFRlKSkucmVwbGFjZSgvJTNBL2ksIjoiKSxUZSs9IkAiKTt2YXIgTWU9dGhpcy5wcm90b2NvbHx8IiIsaGU9dGhpcy5wYXRobmFtZXx8IiIsTz10aGlzLmhhc2h8fCIi''@;'; put 'put ''LHo9ITEsZWU9IiI7dGhpcy5ob3N0P3o9VGUrdGhpcy5ob3N0OnRoaXMuaG9zdG5hbWUmJih6PVRlKygtMT09PXRoaXMuaG9zdG5hbWUuaW5kZXhPZigiOiIpP3RoaXMuaG9zdG5hbWU6IlsiK3RoaXMuaG9zdG5hbWUrIl0iKSx0aGlzLnBvcnQmJih6Kz0iOiIrdGhpcy5wb3J0KSksdGhpcy5x''@;'; put 'put ''dWVyeSYmYWUuaXNPYmplY3QodGhpcy5xdWVyeSkmJk9iamVjdC5rZXlzKHRoaXMucXVlcnkpLmxlbmd0aCYmKGVlPVNlLnN0cmluZ2lmeSh0aGlzLnF1ZXJ5KSk7dmFyIG5lPXRoaXMuc2VhcmNofHxlZSYmIj8iK2VlfHwiIjtyZXR1cm4gTWUmJiI6IiE9PU1lLnN1YnN0cigtMSkmJihNZSs9''@;'; put 'put ''IjoiKSx0aGlzLnNsYXNoZXN8fCghTWV8fGtlW01lXSkmJiExIT09ej8oej0iLy8iKyh6fHwiIiksaGUmJiIvIiE9PWhlLmNoYXJBdCgwKSYmKGhlPSIvIitoZSkpOnp8fCh6PSIiKSxPJiYiIyIhPT1PLmNoYXJBdCgwKSYmKE89IiMiK08pLG5lJiYiPyIhPT1uZS5jaGFyQXQoMCkmJihuZT0i''@;'; put 'put ''PyIrbmUpLE1lK3orKGhlPWhlLnJlcGxhY2UoL1s/I10vZyxmdW5jdGlvbih4KXtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KHgpfSkpKyhuZT1uZS5yZXBsYWNlKCIjIiwiJTIzIikpK099LFkucHJvdG90eXBlLnJlc29sdmU9ZnVuY3Rpb24oVGUpe3JldHVybiB0aGlzLnJlc29sdmVPYmpl''@;'; put 'put ''Y3QoSWUoVGUsITEsITApKS5mb3JtYXQoKX0sWS5wcm90b3R5cGUucmVzb2x2ZU9iamVjdD1mdW5jdGlvbihUZSl7aWYoYWUuaXNTdHJpbmcoVGUpKXt2YXIgTWU9bmV3IFk7TWUucGFyc2UoVGUsITEsITApLFRlPU1lfWZvcih2YXIgaGU9bmV3IFksTz1PYmplY3Qua2V5cyh0aGlzKSx6PTA7''@;'; put 'put ''ejxPLmxlbmd0aDt6Kyspe3ZhciBlZT1PW3pdO2hlW2VlXT10aGlzW2VlXX1pZihoZS5oYXNoPVRlLmhhc2gsIiI9PT1UZS5ocmVmKXJldHVybiBoZS5ocmVmPWhlLmZvcm1hdCgpLGhlO2lmKFRlLnNsYXNoZXMmJiFUZS5wcm90b2NvbCl7Zm9yKHZhciBuZT1PYmplY3Qua2V5cyhUZSkseD0w''@;'; put 'put ''O3g8bmUubGVuZ3RoO3grKyl7dmFyIFA9bmVbeF07InByb3RvY29sIiE9PVAmJihoZVtQXT1UZVtQXSl9cmV0dXJuIGtlW2hlLnByb3RvY29sXSYmaGUuaG9zdG5hbWUmJiFoZS5wYXRobmFtZSYmKGhlLnBhdGg9aGUucGF0aG5hbWU9Ii8iKSxoZS5ocmVmPWhlLmZvcm1hdCgpLGhlfWlmKFRl''@;'; put 'put ''LnByb3RvY29sJiZUZS5wcm90b2NvbCE9PWhlLnByb3RvY29sKXtpZigha2VbVGUucHJvdG9jb2xdKXtmb3IodmFyIFY9T2JqZWN0LmtleXMoVGUpLFQ9MDtUPFYubGVuZ3RoO1QrKyl7dmFyIFM9VltUXTtoZVtTXT1UZVtTXX1yZXR1cm4gaGUuaHJlZj1oZS5mb3JtYXQoKSxoZX1pZihoZS5w''@;'; put 'put ''cm90b2NvbD1UZS5wcm90b2NvbCxUZS5ob3N0fHxBZVtUZS5wcm90b2NvbF0paGUucGF0aG5hbWU9VGUucGF0aG5hbWU7ZWxzZXtmb3IodmFyIEY9KFRlLnBhdGhuYW1lfHwiIikuc3BsaXQoIi8iKTtGLmxlbmd0aCYmIShUZS5ob3N0PUYuc2hpZnQoKSk7KTtUZS5ob3N0fHwoVGUuaG9zdD0i''@;'; put 'put ''IiksVGUuaG9zdG5hbWV8fChUZS5ob3N0bmFtZT0iIiksIiIhPT1GWzBdJiZGLnVuc2hpZnQoIiIpLEYubGVuZ3RoPDImJkYudW5zaGlmdCgiIiksaGUucGF0aG5hbWU9Ri5qb2luKCIvIil9cmV0dXJuIGhlLnNlYXJjaD1UZS5zZWFyY2gsaGUucXVlcnk9VGUucXVlcnksaGUuaG9zdD1UZS5o''@;'; put 'put ''b3N0fHwiIixoZS5hdXRoPVRlLmF1dGgsaGUuaG9zdG5hbWU9VGUuaG9zdG5hbWV8fFRlLmhvc3QsaGUucG9ydD1UZS5wb3J0LChoZS5wYXRobmFtZXx8aGUuc2VhcmNoKSYmKGhlLnBhdGg9KGhlLnBhdGhuYW1lfHwiIikrKGhlLnNlYXJjaHx8IiIpKSxoZS5zbGFzaGVzPWhlLnNsYXNoZXN8''@;'; put 'put ''fFRlLnNsYXNoZXMsaGUuaHJlZj1oZS5mb3JtYXQoKSxoZX12YXIgRGU9aGUucGF0aG5hbWUmJiIvIj09PWhlLnBhdGhuYW1lLmNoYXJBdCgwKSxQZT1UZS5ob3N0fHxUZS5wYXRobmFtZSYmIi8iPT09VGUucGF0aG5hbWUuY2hhckF0KDApLFFlPVBlfHxEZXx8aGUuaG9zdCYmVGUucGF0aG5h''@;'; put 'put ''bWUsJGU9UWUsZ3Q9aGUucGF0aG5hbWUmJmhlLnBhdGhuYW1lLnNwbGl0KCIvIil8fFtdLHd0PShGPVRlLnBhdGhuYW1lJiZUZS5wYXRobmFtZS5zcGxpdCgiLyIpfHxbXSxoZS5wcm90b2NvbCYmIWtlW2hlLnByb3RvY29sXSk7aWYod3QmJihoZS5ob3N0bmFtZT0iIixoZS5wb3J0PW51bGws''@;'; put 'put ''aGUuaG9zdCYmKCIiPT09Z3RbMF0/Z3RbMF09aGUuaG9zdDpndC51bnNoaWZ0KGhlLmhvc3QpKSxoZS5ob3N0PSIiLFRlLnByb3RvY29sJiYoVGUuaG9zdG5hbWU9bnVsbCxUZS5wb3J0PW51bGwsVGUuaG9zdCYmKCIiPT09RlswXT9GWzBdPVRlLmhvc3Q6Ri51bnNoaWZ0KFRlLmhvc3QpKSxU''@;'; put 'put ''ZS5ob3N0PW51bGwpLFFlPVFlJiYoIiI9PT1GWzBdfHwiIj09PWd0WzBdKSksUGUpaGUuaG9zdD1UZS5ob3N0fHwiIj09PVRlLmhvc3Q/VGUuaG9zdDpoZS5ob3N0LGhlLmhvc3RuYW1lPVRlLmhvc3RuYW1lfHwiIj09PVRlLmhvc3RuYW1lP1RlLmhvc3RuYW1lOmhlLmhvc3RuYW1lLGhlLnNl''@;'; put 'put ''YXJjaD1UZS5zZWFyY2gsaGUucXVlcnk9VGUucXVlcnksZ3Q9RjtlbHNlIGlmKEYubGVuZ3RoKWd0fHwoZ3Q9W10pLGd0LnBvcCgpLGd0PWd0LmNvbmNhdChGKSxoZS5zZWFyY2g9VGUuc2VhcmNoLGhlLnF1ZXJ5PVRlLnF1ZXJ5O2Vsc2UgaWYoIWFlLmlzTnVsbE9yVW5kZWZpbmVkKFRlLnNl''@;'; put 'put ''YXJjaCkpcmV0dXJuIHd0JiYoaGUuaG9zdG5hbWU9aGUuaG9zdD1ndC5zaGlmdCgpLChCdD0hIShoZS5ob3N0JiZoZS5ob3N0LmluZGV4T2YoIkAiKT4wKSYmaGUuaG9zdC5zcGxpdCgiQCIpKSYmKGhlLmF1dGg9QnQuc2hpZnQoKSxoZS5ob3N0PWhlLmhvc3RuYW1lPUJ0LnNoaWZ0KCkpKSxo''@;'; put 'put ''ZS5zZWFyY2g9VGUuc2VhcmNoLGhlLnF1ZXJ5PVRlLnF1ZXJ5LGFlLmlzTnVsbChoZS5wYXRobmFtZSkmJmFlLmlzTnVsbChoZS5zZWFyY2gpfHwoaGUucGF0aD0oaGUucGF0aG5hbWU/aGUucGF0aG5hbWU6IiIpKyhoZS5zZWFyY2g/aGUuc2VhcmNoOiIiKSksaGUuaHJlZj1oZS5mb3JtYXQo''@;'; put 'put ''KSxoZTtpZighZ3QubGVuZ3RoKXJldHVybiBoZS5wYXRobmFtZT1udWxsLGhlLnBhdGg9aGUuc2VhcmNoPyIvIitoZS5zZWFyY2g6bnVsbCxoZS5ocmVmPWhlLmZvcm1hdCgpLGhlO2Zvcih2YXIgbXQ9Z3Quc2xpY2UoLTEpWzBdLHZ0PShoZS5ob3N0fHxUZS5ob3N0fHxndC5sZW5ndGg+MSkm''@;'; put 'put ''JigiLiI9PT1tdHx8Ii4uIj09PW10KXx8IiI9PT1tdCxBdD0wLGh0PWd0Lmxlbmd0aDtodD49MDtodC0tKSIuIj09PShtdD1ndFtodF0pP2d0LnNwbGljZShodCwxKToiLi4iPT09bXQ/KGd0LnNwbGljZShodCwxKSxBdCsrKTpBdCYmKGd0LnNwbGljZShodCwxKSxBdC0tKTtpZighUWUmJiEk''@;'; put 'put ''ZSlmb3IoO0F0LS07QXQpZ3QudW5zaGlmdCgiLi4iKTshUWV8fCIiPT09Z3RbMF18fGd0WzBdJiYiLyI9PT1ndFswXS5jaGFyQXQoMCl8fGd0LnVuc2hpZnQoIiIpLHZ0JiYiLyIhPT1ndC5qb2luKCIvIikuc3Vic3RyKC0xKSYmZ3QucHVzaCgiIik7dmFyIEJ0LG9uPSIiPT09Z3RbMF18fGd0''@;'; put 'put ''WzBdJiYiLyI9PT1ndFswXS5jaGFyQXQoMCk7cmV0dXJuIHd0JiYoaGUuaG9zdG5hbWU9aGUuaG9zdD1vbj8iIjpndC5sZW5ndGg/Z3Quc2hpZnQoKToiIiwoQnQ9ISEoaGUuaG9zdCYmaGUuaG9zdC5pbmRleE9mKCJAIik+MCkmJmhlLmhvc3Quc3BsaXQoIkAiKSkmJihoZS5hdXRoPUJ0LnNo''@;'; put 'put ''aWZ0KCksaGUuaG9zdD1oZS5ob3N0bmFtZT1CdC5zaGlmdCgpKSksKFFlPVFlfHxoZS5ob3N0JiZndC5sZW5ndGgpJiYhb24mJmd0LnVuc2hpZnQoIiIpLGd0Lmxlbmd0aD9oZS5wYXRobmFtZT1ndC5qb2luKCIvIik6KGhlLnBhdGhuYW1lPW51bGwsaGUucGF0aD1udWxsKSxhZS5pc051bGwo''@;'; put 'put ''aGUucGF0aG5hbWUpJiZhZS5pc051bGwoaGUuc2VhcmNoKXx8KGhlLnBhdGg9KGhlLnBhdGhuYW1lP2hlLnBhdGhuYW1lOiIiKSsoaGUuc2VhcmNoP2hlLnNlYXJjaDoiIikpLGhlLmF1dGg9VGUuYXV0aHx8aGUuYXV0aCxoZS5zbGFzaGVzPWhlLnNsYXNoZXN8fFRlLnNsYXNoZXMsaGUuaHJl''@;'; put 'put ''Zj1oZS5mb3JtYXQoKSxoZX0sWS5wcm90b3R5cGUucGFyc2VIb3N0PWZ1bmN0aW9uKCl7dmFyIFRlPXRoaXMuaG9zdCxNZT1OLmV4ZWMoVGUpO01lJiYoIjoiIT09KE1lPU1lWzBdKSYmKHRoaXMucG9ydD1NZS5zdWJzdHIoMSkpLFRlPVRlLnN1YnN0cigwLFRlLmxlbmd0aC1NZS5sZW5ndGgp''@;'; put 'put ''KSxUZSYmKHRoaXMuaG9zdG5hbWU9VGUpfX0sMjUwMjpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz17aXNTdHJpbmc6ZnVuY3Rpb24oUSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBRfSxpc09iamVjdDpmdW5jdGlvbihRKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIFEmJm51bGwhPT1RfSxp''@;'; put 'put ''c051bGw6ZnVuY3Rpb24oUSl7cmV0dXJuIG51bGw9PT1RfSxpc051bGxPclVuZGVmaW5lZDpmdW5jdGlvbihRKXtyZXR1cm4gbnVsbD09UX19fSw0OTI3OihVLFEsaik9Pnt2YXIgcmU9aig1MTA4KTtmdW5jdGlvbiBhZShZKXt0cnl7aWYoIWouZy5sb2NhbFN0b3JhZ2UpcmV0dXJuITF9Y2F0''@;'; put 'put ''Y2goTil7cmV0dXJuITF9dmFyIFc9ai5nLmxvY2FsU3RvcmFnZVtZXTtyZXR1cm4gbnVsbCE9VyYmInRydWUiPT09U3RyaW5nKFcpLnRvTG93ZXJDYXNlKCl9VS5leHBvcnRzPWZ1bmN0aW9uKFksVyl7aWYoYWUoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gWTt2YXIgTj0hMTtyZXR1cm4gZnVu''@;'; put 'put ''Y3Rpb24oKXtpZighTil7aWYoYWUoInRocm93RGVwcmVjYXRpb24iKSl0aHJvdyBuZXcgRXJyb3IoVyk7YWUoInRyYWNlRGVwcmVjYXRpb24iKT9yZS50cmFjZShXKTpyZS53YXJuKFcpLE49ITB9cmV0dXJuIFkuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LDM4NDpVPT57VS5leHBvcnRzPWZ1''@;'; put 'put ''bmN0aW9uKFEpe3JldHVybiBRJiYib2JqZWN0Ij09dHlwZW9mIFEmJiJmdW5jdGlvbiI9PXR5cGVvZiBRLmNvcHkmJiJmdW5jdGlvbiI9PXR5cGVvZiBRLmZpbGwmJiJmdW5jdGlvbiI9PXR5cGVvZiBRLnJlYWRVSW50OH19LDU5NTU6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigy''@;'; put 'put ''NTg0KSxhZT1qKDg2NjIpLFk9aig2NDMwKSxXPWooNTY5Mik7ZnVuY3Rpb24gTih5ZSl7cmV0dXJuIHllLmNhbGwuYmluZCh5ZSl9dmFyIHRlPSJ1bmRlZmluZWQiIT10eXBlb2YgQmlnSW50LEs9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wsSj1OKE9iamVjdC5wcm90b3R5cGUudG9TdHJp''@;'; put 'put ''bmcpLHNlPU4oTnVtYmVyLnByb3RvdHlwZS52YWx1ZU9mKSxvZT1OKFN0cmluZy5wcm90b3R5cGUudmFsdWVPZiksY2U9TihCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mKTtpZih0ZSl2YXIgZGU9TihCaWdJbnQucHJvdG90eXBlLnZhbHVlT2YpO2lmKEspdmFyIHZlPU4oU3ltYm9sLnByb3Rv''@;'; put 'put ''dHlwZS52YWx1ZU9mKTtmdW5jdGlvbiBBZSh5ZSxDZSl7aWYoIm9iamVjdCIhPXR5cGVvZiB5ZSlyZXR1cm4hMTt0cnl7cmV0dXJuIENlKHllKSwhMH1jYXRjaChEZSl7cmV0dXJuITF9fWZ1bmN0aW9uIGtlKHllKXtyZXR1cm4iW29iamVjdCBNYXBdIj09PUooeWUpfWZ1bmN0aW9uIFNlKHll''@;'; put 'put ''KXtyZXR1cm4iW29iamVjdCBTZXRdIj09PUooeWUpfWZ1bmN0aW9uIEllKHllKXtyZXR1cm4iW29iamVjdCBXZWFrTWFwXSI9PT1KKHllKX1mdW5jdGlvbiBUZSh5ZSl7cmV0dXJuIltvYmplY3QgV2Vha1NldF0iPT09Sih5ZSl9ZnVuY3Rpb24gTWUoeWUpe3JldHVybiJbb2JqZWN0IEFycmF5''@;'; put 'put ''QnVmZmVyXSI9PT1KKHllKX1mdW5jdGlvbiBoZSh5ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmKE1lLndvcmtpbmc/TWUoeWUpOnllIGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpfWZ1bmN0aW9uIE8oeWUpe3JldHVybiJbb2JqZWN0IERhdGFWaWV3XSI9PT1KKHll''@;'; put 'put ''KX1mdW5jdGlvbiB6KHllKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3JiYoTy53b3JraW5nP08oeWUpOnllIGluc3RhbmNlb2YgRGF0YVZpZXcpfVEuaXNBcmd1bWVudHNPYmplY3Q9cmUsUS5pc0dlbmVyYXRvckZ1bmN0aW9uPWFlLFEuaXNUeXBlZEFycmF5PVcsUS5pc1By''@;'; put 'put ''b21pc2U9ZnVuY3Rpb24oeWUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmeWUgaW5zdGFuY2VvZiBQcm9taXNlfHxudWxsIT09eWUmJiJvYmplY3QiPT10eXBlb2YgeWUmJiJmdW5jdGlvbiI9PXR5cGVvZiB5ZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgeWUuY2F0Y2h9''@;'; put 'put ''LFEuaXNBcnJheUJ1ZmZlclZpZXc9ZnVuY3Rpb24oeWUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoeWUpOlcoeWUpfHx6KHllKX0sUS5pc1VpbnQ4QXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJV''@;'; put 'put ''aW50OEFycmF5Ij09PVkoeWUpfSxRLmlzVWludDhDbGFtcGVkQXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJVaW50OENsYW1wZWRBcnJheSI9PT1ZKHllKX0sUS5pc1VpbnQxNkFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iVWludDE2QXJyYXkiPT09WSh5ZSl9LFEuaXNVaW50MzJBcnJheT1m''@;'; put 'put ''dW5jdGlvbih5ZSl7cmV0dXJuIlVpbnQzMkFycmF5Ij09PVkoeWUpfSxRLmlzSW50OEFycmF5PWZ1bmN0aW9uKHllKXtyZXR1cm4iSW50OEFycmF5Ij09PVkoeWUpfSxRLmlzSW50MTZBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkludDE2QXJyYXkiPT09WSh5ZSl9LFEuaXNJbnQzMkFycmF5''@;'; put 'put ''PWZ1bmN0aW9uKHllKXtyZXR1cm4iSW50MzJBcnJheSI9PT1ZKHllKX0sUS5pc0Zsb2F0MzJBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkZsb2F0MzJBcnJheSI9PT1ZKHllKX0sUS5pc0Zsb2F0NjRBcnJheT1mdW5jdGlvbih5ZSl7cmV0dXJuIkZsb2F0NjRBcnJheSI9PT1ZKHllKX0sUS5p''@;'; put 'put ''c0JpZ0ludDY0QXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJCaWdJbnQ2NEFycmF5Ij09PVkoeWUpfSxRLmlzQmlnVWludDY0QXJyYXk9ZnVuY3Rpb24oeWUpe3JldHVybiJCaWdVaW50NjRBcnJheSI9PT1ZKHllKX0sa2Uud29ya2luZz0idW5kZWZpbmVkIiE9dHlwZW9mIE1hcCYma2UobmV3''@;'; put 'put ''IE1hcCksUS5pc01hcD1mdW5jdGlvbih5ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBNYXAmJihrZS53b3JraW5nP2tlKHllKTp5ZSBpbnN0YW5jZW9mIE1hcCl9LFNlLndvcmtpbmc9InVuZGVmaW5lZCIhPXR5cGVvZiBTZXQmJlNlKG5ldyBTZXQpLFEuaXNTZXQ9ZnVuY3Rpb24oeWUp''@;'; put 'put ''e3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgU2V0JiYoU2Uud29ya2luZz9TZSh5ZSk6eWUgaW5zdGFuY2VvZiBTZXQpfSxJZS53b3JraW5nPSJ1bmRlZmluZWQiIT10eXBlb2YgV2Vha01hcCYmSWUobmV3IFdlYWtNYXApLFEuaXNXZWFrTWFwPWZ1bmN0aW9uKHllKXtyZXR1cm4idW5kZWZp''@;'; put 'put ''bmVkIiE9dHlwZW9mIFdlYWtNYXAmJihJZS53b3JraW5nP0llKHllKTp5ZSBpbnN0YW5jZW9mIFdlYWtNYXApfSxUZS53b3JraW5nPSJ1bmRlZmluZWQiIT10eXBlb2YgV2Vha1NldCYmVGUobmV3IFdlYWtTZXQpLFEuaXNXZWFrU2V0PWZ1bmN0aW9uKHllKXtyZXR1cm4gVGUoeWUpfSxNZS53''@;'; put 'put ''b3JraW5nPSJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJk1lKG5ldyBBcnJheUJ1ZmZlciksUS5pc0FycmF5QnVmZmVyPWhlLE8ud29ya2luZz0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIERhdGFWaWV3JiZPKG5ldyBEYXRhVmll''@;'; put 'put ''dyhuZXcgQXJyYXlCdWZmZXIoMSksMCwxKSksUS5pc0RhdGFWaWV3PXo7dmFyIGVlPSJ1bmRlZmluZWQiIT10eXBlb2YgU2hhcmVkQXJyYXlCdWZmZXI/U2hhcmVkQXJyYXlCdWZmZXI6dm9pZCAwO2Z1bmN0aW9uIG5lKHllKXtyZXR1cm4iW29iamVjdCBTaGFyZWRBcnJheUJ1ZmZlcl0iPT09''@;'; put 'put ''Sih5ZSl9ZnVuY3Rpb24geCh5ZSl7cmV0dXJuIHZvaWQgMCE9PWVlJiYodm9pZCAwPT09bmUud29ya2luZyYmKG5lLndvcmtpbmc9bmUobmV3IGVlKSksbmUud29ya2luZz9uZSh5ZSk6eWUgaW5zdGFuY2VvZiBlZSl9ZnVuY3Rpb24gUCh5ZSl7cmV0dXJuIEFlKHllLHNlKX1mdW5jdGlvbiBW''@;'; put 'put ''KHllKXtyZXR1cm4gQWUoeWUsb2UpfWZ1bmN0aW9uIFQoeWUpe3JldHVybiBBZSh5ZSxjZSl9ZnVuY3Rpb24gUyh5ZSl7cmV0dXJuIHRlJiZBZSh5ZSxkZSl9ZnVuY3Rpb24gRih5ZSl7cmV0dXJuIEsmJkFlKHllLHZlKX1RLmlzU2hhcmVkQXJyYXlCdWZmZXI9eCxRLmlzQXN5bmNGdW5jdGlv''@;'; put 'put ''bj1mdW5jdGlvbih5ZSl7cmV0dXJuIltvYmplY3QgQXN5bmNGdW5jdGlvbl0iPT09Sih5ZSl9LFEuaXNNYXBJdGVyYXRvcj1mdW5jdGlvbih5ZSl7cmV0dXJuIltvYmplY3QgTWFwIEl0ZXJhdG9yXSI9PT1KKHllKX0sUS5pc1NldEl0ZXJhdG9yPWZ1bmN0aW9uKHllKXtyZXR1cm4iW29iamVj''@;'; put 'put ''dCBTZXQgSXRlcmF0b3JdIj09PUooeWUpfSxRLmlzR2VuZXJhdG9yT2JqZWN0PWZ1bmN0aW9uKHllKXtyZXR1cm4iW29iamVjdCBHZW5lcmF0b3JdIj09PUooeWUpfSxRLmlzV2ViQXNzZW1ibHlDb21waWxlZE1vZHVsZT1mdW5jdGlvbih5ZSl7cmV0dXJuIltvYmplY3QgV2ViQXNzZW1ibHku''@;'; put 'put ''TW9kdWxlXSI9PT1KKHllKX0sUS5pc051bWJlck9iamVjdD1QLFEuaXNTdHJpbmdPYmplY3Q9VixRLmlzQm9vbGVhbk9iamVjdD1ULFEuaXNCaWdJbnRPYmplY3Q9UyxRLmlzU3ltYm9sT2JqZWN0PUYsUS5pc0JveGVkUHJpbWl0aXZlPWZ1bmN0aW9uKHllKXtyZXR1cm4gUCh5ZSl8fFYoeWUp''@;'; put 'put ''fHxUKHllKXx8Uyh5ZSl8fEYoeWUpfSxRLmlzQW55QXJyYXlCdWZmZXI9ZnVuY3Rpb24oeWUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmKGhlKHllKXx8eCh5ZSkpfSxbImlzUHJveHkiLCJpc0V4dGVybmFsIiwiaXNNb2R1bGVOYW1lc3BhY2VPYmplY3QiXS5mb3JF''@;'; put 'put ''YWNoKGZ1bmN0aW9uKHllKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoUSx5ZSx7ZW51bWVyYWJsZTohMSx2YWx1ZTpmdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcih5ZSsiIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdXNlcmxhbmQiKX19KX0pfSw5NTM5OihVLFEsaik9Pnt2YXIgcmU9aig0MTU1KSxh''@;'; put 'put ''ZT1qKDUxMDgpLFk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnN8fGZ1bmN0aW9uKENlKXtmb3IodmFyIERlPU9iamVjdC5rZXlzKENlKSxQZT17fSxRZT0wO1FlPERlLmxlbmd0aDtRZSsrKVBlW0RlW1FlXV09T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihDZSxEZVtR''@;'; put 'put ''ZV0pO3JldHVybiBQZX0sVz0vJVtzZGolXS9nO1EuZm9ybWF0PWZ1bmN0aW9uKENlKXtpZighVGUoQ2UpKXtmb3IodmFyIERlPVtdLFBlPTA7UGU8YXJndW1lbnRzLmxlbmd0aDtQZSsrKURlLnB1c2goSihhcmd1bWVudHNbUGVdKSk7cmV0dXJuIERlLmpvaW4oIiAiKX1QZT0xO2Zvcih2YXIg''@;'; put 'put ''UWU9YXJndW1lbnRzLCRlPVFlLmxlbmd0aCxndD1TdHJpbmcoQ2UpLnJlcGxhY2UoVyxmdW5jdGlvbihtdCl7aWYoIiUlIj09PW10KXJldHVybiIlIjtpZihQZT49JGUpcmV0dXJuIG10O3N3aXRjaChtdCl7Y2FzZSIlcyI6cmV0dXJuIFN0cmluZyhRZVtQZSsrXSk7Y2FzZSIlZCI6cmV0dXJu''@;'; put 'put ''IE51bWJlcihRZVtQZSsrXSk7Y2FzZSIlaiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShRZVtQZSsrXSl9Y2F0Y2godnQpe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiBtdH19KSx3dD1RZVtQZV07UGU8JGU7d3Q9UWVbKytQZV0pU2Uod3QpfHwhTyh3dCk/Z3QrPSIgIit3''@;'; put 'put ''dDpndCs9IiAiK0ood3QpO3JldHVybiBndH0sUS5kZXByZWNhdGU9ZnVuY3Rpb24oQ2UsRGUpe2lmKHZvaWQgMCE9PXJlJiYhMD09PXJlLm5vRGVwcmVjYXRpb24pcmV0dXJuIENlO2lmKHZvaWQgMD09PXJlKXJldHVybiBmdW5jdGlvbigpe3JldHVybiBRLmRlcHJlY2F0ZShDZSxEZSkuYXBw''@;'; put 'put ''bHkodGhpcyxhcmd1bWVudHMpfTt2YXIgUGU9ITE7cmV0dXJuIGZ1bmN0aW9uKCl7aWYoIVBlKXtpZihyZS50aHJvd0RlcHJlY2F0aW9uKXRocm93IG5ldyBFcnJvcihEZSk7cmUudHJhY2VEZXByZWNhdGlvbj9hZS50cmFjZShEZSk6YWUuZXJyb3IoRGUpLFBlPSEwfXJldHVybiBDZS5hcHBs''@;'; put 'put ''eSh0aGlzLGFyZ3VtZW50cyl9fTt2YXIgTj17fSx0ZT0vXiQvO2lmKHJlLmVudi5OT0RFX0RFQlVHKXt2YXIgSz1yZS5lbnYuTk9ERV9ERUJVRztLPUsucmVwbGFjZSgvW3xcXHt9KClbXF1eJCs/Ll0vZywiXFwkJiIpLnJlcGxhY2UoL1wqL2csIi4qIikucmVwbGFjZSgvLC9nLCIkfF4iKS50''@;'; put 'put ''b1VwcGVyQ2FzZSgpLHRlPW5ldyBSZWdFeHAoIl4iK0srIiQiLCJpIil9ZnVuY3Rpb24gSihDZSxEZSl7dmFyIFBlPXtzZWVuOltdLHN0eWxpemU6b2V9O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPj0zJiYoUGUuZGVwdGg9YXJndW1lbnRzWzJdKSxhcmd1bWVudHMubGVuZ3RoPj00JiYoUGUu''@;'; put 'put ''Y29sb3JzPWFyZ3VtZW50c1szXSksa2UoRGUpP1BlLnNob3dIaWRkZW49RGU6RGUmJlEuX2V4dGVuZChQZSxEZSksTWUoUGUuc2hvd0hpZGRlbikmJihQZS5zaG93SGlkZGVuPSExKSxNZShQZS5kZXB0aCkmJihQZS5kZXB0aD0yKSxNZShQZS5jb2xvcnMpJiYoUGUuY29sb3JzPSExKSxNZShQ''@;'; put 'put ''ZS5jdXN0b21JbnNwZWN0KSYmKFBlLmN1c3RvbUluc3BlY3Q9ITApLFBlLmNvbG9ycyYmKFBlLnN0eWxpemU9c2UpLGNlKFBlLENlLFBlLmRlcHRoKX1mdW5jdGlvbiBzZShDZSxEZSl7dmFyIFBlPUouc3R5bGVzW0RlXTtyZXR1cm4gUGU/Ilx4MWJbIitKLmNvbG9yc1tQZV1bMF0rIm0iK0Nl''@;'; put 'put ''KyJceDFiWyIrSi5jb2xvcnNbUGVdWzFdKyJtIjpDZX1mdW5jdGlvbiBvZShDZSxEZSl7cmV0dXJuIENlfWZ1bmN0aW9uIGNlKENlLERlLFBlKXtpZihDZS5jdXN0b21JbnNwZWN0JiZEZSYmbmUoRGUuaW5zcGVjdCkmJkRlLmluc3BlY3QhPT1RLmluc3BlY3QmJighRGUuY29uc3RydWN0b3J8''@;'; put 'put ''fERlLmNvbnN0cnVjdG9yLnByb3RvdHlwZSE9PURlKSl7dmFyIFFlPURlLmluc3BlY3QoUGUsQ2UpO3JldHVybiBUZShRZSl8fChRZT1jZShDZSxRZSxQZSkpLFFlfXZhciAkZT1mdW5jdGlvbihvbixfdCl7aWYoTWUoX3QpKXJldHVybiBvbi5zdHlsaXplKCJ1bmRlZmluZWQiLCJ1bmRlZmlu''@;'; put 'put ''ZWQiKTtpZihUZShfdCkpe3ZhciB0dD0iJyIrSlNPTi5zdHJpbmdpZnkoX3QpLnJlcGxhY2UoL14ifCIkL2csIiIpLnJlcGxhY2UoLycvZywiXFwnIikucmVwbGFjZSgvXFwiL2csJyInKSsiJyI7cmV0dXJuIG9uLnN0eWxpemUodHQsInN0cmluZyIpfXJldHVybiBJZShfdCk/b24uc3R5bGl6''@;'; put 'put ''ZSgiIitfdCwibnVtYmVyIik6a2UoX3QpP29uLnN0eWxpemUoIiIrX3QsImJvb2xlYW4iKTpTZShfdCk/b24uc3R5bGl6ZSgibnVsbCIsIm51bGwiKTp2b2lkIDB9KENlLERlKTtpZigkZSlyZXR1cm4gJGU7dmFyIF90LGd0PU9iamVjdC5rZXlzKERlKSx3dD0oX3Q9e30sZ3QuZm9yRWFjaChm''@;'; put 'put ''dW5jdGlvbih0dCxldCl7X3RbdHRdPSEwfSksX3QpO2lmKENlLnNob3dIaWRkZW4mJihndD1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhEZSkpLGVlKERlKSYmKGd0LmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8Z3QuaW5kZXhPZigiZGVzY3JpcHRpb24iKT49MCkpcmV0dXJuIGRlKERlKTtp''@;'; put 'put ''ZigwPT09Z3QubGVuZ3RoKXtpZihuZShEZSkpcmV0dXJuIENlLnN0eWxpemUoIltGdW5jdGlvbiIrKERlLm5hbWU/IjogIitEZS5uYW1lOiIiKSsiXSIsInNwZWNpYWwiKTtpZihoZShEZSkpcmV0dXJuIENlLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKERlKSwicmVn''@;'; put 'put ''ZXhwIik7aWYoeihEZSkpcmV0dXJuIENlLnN0eWxpemUoRGF0ZS5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChEZSksImRhdGUiKTtpZihlZShEZSkpcmV0dXJuIGRlKERlKX12YXIgdnQsQXQ9IiIsaHQ9ITEsQnQ9WyJ7IiwifSJdO3JldHVybiBBZShEZSkmJihodD0hMCxCdD1bIlsiLCJdIl0p''@;'; put 'put ''LG5lKERlKSYmKEF0PSIgW0Z1bmN0aW9uIisoRGUubmFtZT8iOiAiK0RlLm5hbWU6IiIpKyJdIiksaGUoRGUpJiYoQXQ9IiAiK1JlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChEZSkpLHooRGUpJiYoQXQ9IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwoRGUpKSxlZShE''@;'; put 'put ''ZSkmJihBdD0iICIrZGUoRGUpKSwwIT09Z3QubGVuZ3RofHxodCYmMCE9RGUubGVuZ3RoP1BlPDA/aGUoRGUpP0NlLnN0eWxpemUoUmVnRXhwLnByb3RvdHlwZS50b1N0cmluZy5jYWxsKERlKSwicmVnZXhwIik6Q2Uuc3R5bGl6ZSgiW09iamVjdF0iLCJzcGVjaWFsIik6KENlLnNlZW4ucHVz''@;'; put 'put ''aChEZSksdnQ9aHQ/ZnVuY3Rpb24ob24sX3QsdHQsZXQsbHQpe2Zvcih2YXIgTHQ9W10sQ3Q9MCxmdD1fdC5sZW5ndGg7Q3Q8ZnQ7KytDdClTKF90LFN0cmluZyhDdCkpP0x0LnB1c2godmUob24sX3QsdHQsZXQsU3RyaW5nKEN0KSwhMCkpOkx0LnB1c2goIiIpO3JldHVybiBsdC5mb3JFYWNo''@;'; put 'put ''KGZ1bmN0aW9uKEh0KXtIdC5tYXRjaCgvXlxkKyQvKXx8THQucHVzaCh2ZShvbixfdCx0dCxldCxIdCwhMCkpfSksTHR9KENlLERlLFBlLHd0LGd0KTpndC5tYXAoZnVuY3Rpb24ob24pe3JldHVybiB2ZShDZSxEZSxQZSx3dCxvbixodCl9KSxDZS5zZWVuLnBvcCgpLGZ1bmN0aW9uKG9uLF90''@;'; put 'put ''LHR0KXtyZXR1cm4gb24ucmVkdWNlKGZ1bmN0aW9uKGV0LGx0KXtyZXR1cm4gbHQuaW5kZXhPZigiXG4iKSxldCtsdC5yZXBsYWNlKC9cdTAwMWJcW1xkXGQ/bS9nLCIiKS5sZW5ndGgrMX0sMCk+NjA/dHRbMF0rKCIiPT09X3Q/IiI6X3QrIlxuICIpKyIgIitvbi5qb2luKCIsXG4gICIpKyIg''@;'; put 'put ''Iit0dFsxXTp0dFswXStfdCsiICIrb24uam9pbigiLCAiKSsiICIrdHRbMV19KHZ0LEF0LEJ0KSk6QnRbMF0rQXQrQnRbMV19ZnVuY3Rpb24gZGUoQ2Upe3JldHVybiJbIitFcnJvci5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChDZSkrIl0ifWZ1bmN0aW9uIHZlKENlLERlLFBlLFFlLCRlLGd0''@;'; put 'put ''KXt2YXIgd3QsbXQsdnQ7aWYoKHZ0PU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRGUsJGUpfHx7dmFsdWU6RGVbJGVdfSkuZ2V0P210PUNlLnN0eWxpemUodnQuc2V0PyJbR2V0dGVyL1NldHRlcl0iOiJbR2V0dGVyXSIsInNwZWNpYWwiKTp2dC5zZXQmJihtdD1DZS5zdHlsaXpl''@;'; put 'put ''KCJbU2V0dGVyXSIsInNwZWNpYWwiKSksUyhRZSwkZSl8fCh3dD0iWyIrJGUrIl0iKSxtdHx8KENlLnNlZW4uaW5kZXhPZih2dC52YWx1ZSk8MD8obXQ9U2UoUGUpP2NlKENlLHZ0LnZhbHVlLG51bGwpOmNlKENlLHZ0LnZhbHVlLFBlLTEpKS5pbmRleE9mKCJcbiIpPi0xJiYobXQ9Z3Q/bXQu''@;'; put 'put ''c3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKEF0KXtyZXR1cm4iICAiK0F0fSkuam9pbigiXG4iKS5zdWJzdHIoMik6IlxuIittdC5zcGxpdCgiXG4iKS5tYXAoZnVuY3Rpb24oQXQpe3JldHVybiIgICAiK0F0fSkuam9pbigiXG4iKSk6bXQ9Q2Uuc3R5bGl6ZSgiW0NpcmN1bGFyXSIsInNwZWNp''@;'; put 'put ''YWwiKSksTWUod3QpKXtpZihndCYmJGUubWF0Y2goL15cZCskLykpcmV0dXJuIG10Oyh3dD1KU09OLnN0cmluZ2lmeSgiIiskZSkpLm1hdGNoKC9eIihbYS16QS1aX11bYS16QS1aXzAtOV0qKSIkLyk/KHd0PXd0LnN1YnN0cigxLHd0Lmxlbmd0aC0yKSx3dD1DZS5zdHlsaXplKHd0LCJuYW1l''@;'; put 'put ''IikpOih3dD13dC5yZXBsYWNlKC8nL2csIlxcJyIpLnJlcGxhY2UoL1xcIi9nLCciJykucmVwbGFjZSgvKF4ifCIkKS9nLCInIiksd3Q9Q2Uuc3R5bGl6ZSh3dCwic3RyaW5nIikpfXJldHVybiB3dCsiOiAiK210fWZ1bmN0aW9uIEFlKENlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShDZSl9ZnVu''@;'; put 'put ''Y3Rpb24ga2UoQ2Upe3JldHVybiJib29sZWFuIj09dHlwZW9mIENlfWZ1bmN0aW9uIFNlKENlKXtyZXR1cm4gbnVsbD09PUNlfWZ1bmN0aW9uIEllKENlKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIENlfWZ1bmN0aW9uIFRlKENlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIENlfWZ1bmN0aW9u''@;'; put 'put ''IE1lKENlKXtyZXR1cm4gdm9pZCAwPT09Q2V9ZnVuY3Rpb24gaGUoQ2Upe3JldHVybiBPKENlKSYmIltvYmplY3QgUmVnRXhwXSI9PT14KENlKX1mdW5jdGlvbiBPKENlKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIENlJiZudWxsIT09Q2V9ZnVuY3Rpb24geihDZSl7cmV0dXJuIE8oQ2UpJiYi''@;'; put 'put ''W29iamVjdCBEYXRlXSI9PT14KENlKX1mdW5jdGlvbiBlZShDZSl7cmV0dXJuIE8oQ2UpJiYoIltvYmplY3QgRXJyb3JdIj09PXgoQ2UpfHxDZSBpbnN0YW5jZW9mIEVycm9yKX1mdW5jdGlvbiBuZShDZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIENlfWZ1bmN0aW9uIHgoQ2Upe3JldHVy''@;'; put 'put ''biBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoQ2UpfWZ1bmN0aW9uIFAoQ2Upe3JldHVybiBDZTwxMD8iMCIrQ2UudG9TdHJpbmcoMTApOkNlLnRvU3RyaW5nKDEwKX1RLmRlYnVnbG9nPWZ1bmN0aW9uKENlKXtpZihDZT1DZS50b1VwcGVyQ2FzZSgpLCFOW0NlXSlpZih0ZS50ZXN0''@;'; put 'put ''KENlKSl7dmFyIERlPXJlLnBpZDtOW0NlXT1mdW5jdGlvbigpe3ZhciBQZT1RLmZvcm1hdC5hcHBseShRLGFyZ3VtZW50cyk7YWUuZXJyb3IoIiVzICVkOiAlcyIsQ2UsRGUsUGUpfX1lbHNlIE5bQ2VdPWZ1bmN0aW9uKCl7fTtyZXR1cm4gTltDZV19LFEuaW5zcGVjdD1KLEouY29sb3JzPXti''@;'; put 'put ''b2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10sd2hpdGU6WzM3LDM5XSxncmV5Ols5MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzld''@;'; put 'put ''LHllbGxvdzpbMzMsMzldfSxKLnN0eWxlcz17c3BlY2lhbDoiY3lhbiIsbnVtYmVyOiJ5ZWxsb3ciLGJvb2xlYW46InllbGxvdyIsdW5kZWZpbmVkOiJncmV5IixudWxsOiJib2xkIixzdHJpbmc6ImdyZWVuIixkYXRlOiJtYWdlbnRhIixyZWdleHA6InJlZCJ9LFEudHlwZXM9aig1OTU1KSxR''@;'; put 'put ''LmlzQXJyYXk9QWUsUS5pc0Jvb2xlYW49a2UsUS5pc051bGw9U2UsUS5pc051bGxPclVuZGVmaW5lZD1mdW5jdGlvbihDZSl7cmV0dXJuIG51bGw9PUNlfSxRLmlzTnVtYmVyPUllLFEuaXNTdHJpbmc9VGUsUS5pc1N5bWJvbD1mdW5jdGlvbihDZSl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiBD''@;'; put 'put ''ZX0sUS5pc1VuZGVmaW5lZD1NZSxRLmlzUmVnRXhwPWhlLFEudHlwZXMuaXNSZWdFeHA9aGUsUS5pc09iamVjdD1PLFEuaXNEYXRlPXosUS50eXBlcy5pc0RhdGU9eixRLmlzRXJyb3I9ZWUsUS50eXBlcy5pc05hdGl2ZUVycm9yPWVlLFEuaXNGdW5jdGlvbj1uZSxRLmlzUHJpbWl0aXZlPWZ1''@;'; put 'put ''bmN0aW9uKENlKXtyZXR1cm4gbnVsbD09PUNlfHwiYm9vbGVhbiI9PXR5cGVvZiBDZXx8Im51bWJlciI9PXR5cGVvZiBDZXx8InN0cmluZyI9PXR5cGVvZiBDZXx8InN5bWJvbCI9PXR5cGVvZiBDZXx8dm9pZCAwPT09Q2V9LFEuaXNCdWZmZXI9aigzODQpO3ZhciBWPVsiSmFuIiwiRmViIiwi''@;'; put 'put ''TWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl07ZnVuY3Rpb24gVCgpe3ZhciBDZT1uZXcgRGF0ZSxEZT1bUChDZS5nZXRIb3VycygpKSxQKENlLmdldE1pbnV0ZXMoKSksUChDZS5nZXRTZWNvbmRzKCkpXS5qb2luKCI6Iik7cmV0dXJu''@;'; put 'put ''W0NlLmdldERhdGUoKSxWW0NlLmdldE1vbnRoKCldLERlXS5qb2luKCIgIil9ZnVuY3Rpb24gUyhDZSxEZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChDZSxEZSl9US5sb2c9ZnVuY3Rpb24oKXthZS5sb2coIiVzIC0gJXMiLFQoKSxRLmZvcm1hdC5hcHBs''@;'; put 'put ''eShRLGFyZ3VtZW50cykpfSxRLmluaGVyaXRzPWooNTcxNyksUS5fZXh0ZW5kPWZ1bmN0aW9uKENlLERlKXtpZighRGV8fCFPKERlKSlyZXR1cm4gQ2U7Zm9yKHZhciBQZT1PYmplY3Qua2V5cyhEZSksUWU9UGUubGVuZ3RoO1FlLS07KUNlW1BlW1FlXV09RGVbUGVbUWVdXTtyZXR1cm4gQ2V9''@;'; put 'put ''O3ZhciBGPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sP1N5bWJvbCgidXRpbC5wcm9taXNpZnkuY3VzdG9tIik6dm9pZCAwO2Z1bmN0aW9uIHllKENlLERlKXtpZighQ2Upe3ZhciBQZT1uZXcgRXJyb3IoIlByb21pc2Ugd2FzIHJlamVjdGVkIHdpdGggYSBmYWxzeSB2YWx1ZSIpO1BlLnJl''@;'; put 'put ''YXNvbj1DZSxDZT1QZX1yZXR1cm4gRGUoQ2UpfVEucHJvbWlzaWZ5PWZ1bmN0aW9uKENlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgQ2UpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJvcmlnaW5hbCIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uJyk7aWYoRiYmQ2VbRl0pe3Zh''@;'; put 'put ''ciBEZTtpZigiZnVuY3Rpb24iIT10eXBlb2YoRGU9Q2VbRl0pKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidXRpbC5wcm9taXNpZnkuY3VzdG9tIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24nKTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KERlLEYse3ZhbHVlOkRl''@;'; put 'put ''LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksRGV9ZnVuY3Rpb24gRGUoKXtmb3IodmFyIFBlLFFlLCRlPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG10LHZ0KXtQZT1tdCxRZT12dH0pLGd0PVtdLHd0PTA7d3Q8YXJndW1lbnRzLmxlbmd0aDt3dCsrKWd0LnB1c2go''@;'; put 'put ''YXJndW1lbnRzW3d0XSk7Z3QucHVzaChmdW5jdGlvbihtdCx2dCl7bXQ/UWUobXQpOlBlKHZ0KX0pO3RyeXtDZS5hcHBseSh0aGlzLGd0KX1jYXRjaChtdCl7UWUobXQpfXJldHVybiAkZX1yZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mKERlLE9iamVjdC5nZXRQcm90b3R5cGVPZihDZSkp''@;'; put 'put ''LEYmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShEZSxGLHt2YWx1ZTpEZSxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKERlLFkoQ2UpKX0sUS5wcm9taXNpZnkuY3VzdG9tPUYsUS5jYWxsYmFja2lmeT1mdW5jdGlvbihD''@;'; put 'put ''ZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIENlKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAib3JpZ2luYWwiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbicpO2Z1bmN0aW9uIERlKCl7Zm9yKHZhciBQZT1bXSxRZT0wO1FlPGFyZ3VtZW50cy5sZW5ndGg7UWUrKylQZS5wdXNo''@;'; put 'put ''KGFyZ3VtZW50c1tRZV0pO3ZhciAkZT1QZS5wb3AoKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgJGUpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGxhc3QgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIEZ1bmN0aW9uIik7dmFyIGd0PXRoaXMsd3Q9ZnVuY3Rpb24oKXtyZXR1cm4gJGUuYXBwbHko''@;'; put 'put ''Z3QsYXJndW1lbnRzKX07Q2UuYXBwbHkodGhpcyxQZSkudGhlbihmdW5jdGlvbihtdCl7cmUubmV4dFRpY2sod3QuYmluZChudWxsLG51bGwsbXQpKX0sZnVuY3Rpb24obXQpe3JlLm5leHRUaWNrKHllLmJpbmQobnVsbCxtdCx3dCkpfSl9cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZihE''@;'; put 'put ''ZSxPYmplY3QuZ2V0UHJvdG90eXBlT2YoQ2UpKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEZSxZKENlKSksRGV9fSw0ODE6KFUsUSxqKT0+eyFmdW5jdGlvbihyZSl7InVzZSBzdHJpY3QiO3JlLmV4cG9ydHMuaXNfdXJpPVkscmUuZXhwb3J0cy5pc19odHRwX3VyaT1XLHJlLmV4cG9ydHMu''@;'; put 'put ''aXNfaHR0cHNfdXJpPU4scmUuZXhwb3J0cy5pc193ZWJfdXJpPXRlLHJlLmV4cG9ydHMuaXNVcmk9WSxyZS5leHBvcnRzLmlzSHR0cFVyaT1XLHJlLmV4cG9ydHMuaXNIdHRwc1VyaT1OLHJlLmV4cG9ydHMuaXNXZWJVcmk9dGU7dmFyIGFlPWZ1bmN0aW9uKEspe3JldHVybiBLLm1hdGNoKC8o''@;'; put 'put ''PzooW146XC8/I10rKTopPyg/OlwvXC8oW15cLz8jXSopKT8oW14/I10qKSg/Olw/KFteI10qKSk/KD86IyguKikpPy8pfTtmdW5jdGlvbiBZKEspe2lmKEsmJiEvW15hLXowLTlcOlwvXD9cI1xbXF1cQFwhXCRcJlwnXChcKVwqXCtcLFw7XD1cLlwtXF9cflwlXS9pLnRlc3QoSykmJiEvJVte''@;'; put 'put ''MC05YS1mXS9pLnRlc3QoSykmJiEvJVswLTlhLWZdKDo/W14wLTlhLWZdfCQpL2kudGVzdChLKSl7dmFyIEosc2Usb2UsY2UsZGUsdmU9IiIsQWU9IiI7aWYodmU9KEo9YWUoSykpWzFdLHNlPUpbMl0sb2U9SlszXSxjZT1KWzRdLGRlPUpbNV0sdmUmJnZlLmxlbmd0aCYmb2UubGVuZ3RoPj0w''@;'; put 'put ''KXtpZihzZSYmc2UubGVuZ3RoKXtpZigwIT09b2UubGVuZ3RoJiYhL15cLy8udGVzdChvZSkpcmV0dXJufWVsc2UgaWYoL15cL1wvLy50ZXN0KG9lKSlyZXR1cm47aWYoL15bYS16XVthLXowLTlcK1wtXC5dKiQvLnRlc3QodmUudG9Mb3dlckNhc2UoKSkpcmV0dXJuIEFlKz12ZSsiOiIsc2Um''@;'; put 'put ''JnNlLmxlbmd0aCYmKEFlKz0iLy8iK3NlKSxBZSs9b2UsY2UmJmNlLmxlbmd0aCYmKEFlKz0iPyIrY2UpLGRlJiZkZS5sZW5ndGgmJihBZSs9IiMiK2RlKSxBZX19fWZ1bmN0aW9uIFcoSyxKKXtpZihZKEspKXt2YXIgc2Usb2UsY2UsZGUsdmU9IiIsQWU9IiIsa2U9IiIsU2U9IiI7aWYodmU9''@;'; put 'put ''KHNlPWFlKEspKVsxXSxBZT1zZVsyXSxvZT1zZVszXSxjZT1zZVs0XSxkZT1zZVs1XSx2ZSl7aWYoSil7aWYoImh0dHBzIiE9dmUudG9Mb3dlckNhc2UoKSlyZXR1cm59ZWxzZSBpZigiaHR0cCIhPXZlLnRvTG93ZXJDYXNlKCkpcmV0dXJuO2lmKEFlKXJldHVybi86KFxkKykkLy50ZXN0KEFl''@;'; put 'put ''KSYmKGtlPUFlLm1hdGNoKC86KFxkKykkLylbMF0sQWU9QWUucmVwbGFjZSgvOlxkKyQvLCIiKSksU2UrPXZlKyI6IixTZSs9Ii8vIitBZSxrZSYmKFNlKz1rZSksU2UrPW9lLGNlJiZjZS5sZW5ndGgmJihTZSs9Ij8iK2NlKSxkZSYmZGUubGVuZ3RoJiYoU2UrPSIjIitkZSksU2V9fX1mdW5j''@;'; put 'put ''dGlvbiBOKEspe3JldHVybiBXKEssITApfWZ1bmN0aW9uIHRlKEspe3JldHVybiBXKEspfHxOKEspfX0oVT1qLm5tZChVKSl9LDY0MzA6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aig0MDI5KSxhZT1qKDMwODMpLFk9aigxOTI0KSxXPVkoIk9iamVjdC5wcm90b3R5cGUudG9TdHJp''@;'; put 'put ''bmciKSxOPWooNjQxMCkoKSx0ZT0idW5kZWZpbmVkIj09dHlwZW9mIGdsb2JhbFRoaXM/ai5nOmdsb2JhbFRoaXMsSz1hZSgpLEo9WSgiU3RyaW5nLnByb3RvdHlwZS5zbGljZSIpLHNlPXt9LG9lPWooODgyKSxjZT1PYmplY3QuZ2V0UHJvdG90eXBlT2Y7TiYmb2UmJmNlJiZyZShLLGZ1bmN0''@;'; put 'put ''aW9uKHZlKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdGVbdmVdKXt2YXIgQWU9bmV3IHRlW3ZlXTtpZihTeW1ib2wudG9TdHJpbmdUYWcgaW4gQWUpe3ZhciBrZT1jZShBZSksU2U9b2Uoa2UsU3ltYm9sLnRvU3RyaW5nVGFnKTtpZighU2Upe3ZhciBJZT1jZShrZSk7U2U9b2UoSWUsU3ltYm9s''@;'; put 'put ''LnRvU3RyaW5nVGFnKX1zZVt2ZV09U2UuZ2V0fX19KTt2YXIgZGU9aig1NjkyKTtVLmV4cG9ydHM9ZnVuY3Rpb24odmUpe3JldHVybiEhZGUodmUpJiYoTiYmU3ltYm9sLnRvU3RyaW5nVGFnIGluIHZlPyhBZT12ZSxrZT0hMSxyZShzZSxmdW5jdGlvbihTZSxJZSl7aWYoIWtlKXRyeXt2YXIg''@;'; put 'put ''VGU9U2UuY2FsbChBZSk7VGU9PT1JZSYmKGtlPVRlKX1jYXRjaChNZSl7fX0pLGtlKTpKKFcodmUpLDgsLTEpKTt2YXIgQWUsa2V9fSwyNDc5OlU9PntVLmV4cG9ydHM9ZnVuY3Rpb24gUShqLHJlKXtpZihqJiZyZSlyZXR1cm4gUShqKShyZSk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGopdGhy''@;'; put 'put ''b3cgbmV3IFR5cGVFcnJvcigibmVlZCB3cmFwcGVyIGZ1bmN0aW9uIik7cmV0dXJuIE9iamVjdC5rZXlzKGopLmZvckVhY2goZnVuY3Rpb24oWSl7YWVbWV09altZXX0pLGFlO2Z1bmN0aW9uIGFlKCl7Zm9yKHZhciBZPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxXPTA7VzxZLmxlbmd0''@;'; put 'put ''aDtXKyspWVtXXT1hcmd1bWVudHNbV107dmFyIE49ai5hcHBseSh0aGlzLFkpLHRlPVlbWS5sZW5ndGgtMV07cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIE4mJk4hPT10ZSYmT2JqZWN0LmtleXModGUpLmZvckVhY2goZnVuY3Rpb24oSyl7TltLXT10ZVtLXX0pLE59fX0sOTUwOigpPT57fSw2''@;'; put 'put ''NjAxOigpPT57fSw5MjE0OigpPT57fSw4NjIzOigpPT57fSw3NzQ4OigpPT57fSw1NTY4OigpPT57fSwyNTM1OigpPT57fSwzNzEwOigpPT57fSw1NDQzOigpPT57fSw0MTI5OigpPT57fSw2NjE5OigpPT57fSw3MTA4OigpPT57fSwyMzYxOigpPT57fSw0NjE2OigpPT57fSw3MjE3OigpPT57''@;'; put 'put ''fSw4MzczOigpPT57fSwzMDgzOihVLFEsaik9PnsidXNlIHN0cmljdCI7dmFyIHJlPVsiQmlnSW50NjRBcnJheSIsIkJpZ1VpbnQ2NEFycmF5IiwiRmxvYXQzMkFycmF5IiwiRmxvYXQ2NEFycmF5IiwiSW50MTZBcnJheSIsIkludDMyQXJyYXkiLCJJbnQ4QXJyYXkiLCJVaW50MTZBcnJheSIs''@;'; put 'put ''IlVpbnQzMkFycmF5IiwiVWludDhBcnJheSIsIlVpbnQ4Q2xhbXBlZEFycmF5Il0sYWU9InVuZGVmaW5lZCI9PXR5cGVvZiBnbG9iYWxUaGlzP2ouZzpnbG9iYWxUaGlzO1UuZXhwb3J0cz1mdW5jdGlvbigpe2Zvcih2YXIgWT1bXSxXPTA7VzxyZS5sZW5ndGg7VysrKSJmdW5jdGlvbiI9PXR5''@;'; put 'put ''cGVvZiBhZVtyZVtXXV0mJihZW1kubGVuZ3RoXT1yZVtXXSk7cmV0dXJuIFl9fSw4ODI6KFUsUSxqKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgcmU9aigyMTApKCIlT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvciUiLCEwKTtpZihyZSl0cnl7cmUoW10sImxlbmd0aCIpfWNhdGNoKGFlKXty''@;'; put 'put ''ZT1udWxsfVUuZXhwb3J0cz1yZX0sNDk0NjpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCd7ImFlcy0xMjgtZWNiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWVjYiI6eyJjaXBoZXIi''@;'; put 'put ''OiJBRVMiLCJrZXkiOjE5MiwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTI1Ni1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6''@;'; put 'put ''MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTE5Mi1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2''@;'; put 'put ''LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczEyOCI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlczE5MiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6''@;'; put 'put ''ImJsb2NrIn0sImFlczI1NiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xMjgtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0x''@;'; put 'put ''OTItY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiOCI6''@;'; put 'put ''eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjgiOnsiY2lw''@;'; put 'put ''aGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjEyOCwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jZmIxIjp7ImNpcGhlciI6''@;'; put 'put ''IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMjU2LWNmYjEiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtb2ZiIjp7ImNpcGhlciI6IkFFUyIs''@;'; put 'put ''ImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtb2ZiIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2''@;'; put 'put ''LCJpdiI6MTYsIm1vZGUiOiJPRkIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xOTItY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYs''@;'; put 'put ''Im1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY3RyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDVFIiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0xMjgtZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTIsIm1vZGUiOiJH''@;'; put 'put ''Q00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMtMTkyLWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgifSwiYWVzLTI1Ni1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxMiwibW9kZSI6IkdDTSIsInR5cGUiOiJh''@;'; put 'put ''dXRoIn19Jyl9LDUyMDc6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJzaGEyMjRXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwiUlNBLVNI''@;'; put 'put ''QTIyNCI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiMzAyZDMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjA0MDUwMDA0MWMifSwic2hhMjU2V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYw''@;'; put 'put ''ODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sIlJTQS1TSEEyNTYiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IjMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwIn0sInNoYTM4NFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJo''@;'; put 'put ''YXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJSU0EtU0hBMzg0Ijp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIzMDQxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDIwNTAwMDQzMCJ9LCJzaGE1MTJX''@;'; put 'put ''aXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTUxMiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiMzA1MTMwMGQwNjA5NjA4''@;'; put 'put ''NjQ4MDE2NTAzMDQwMjAzMDUwMDA0NDAifSwiUlNBLVNIQTEiOnsic2lnbiI6InJzYSIsImhhc2giOiJzaGExIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjBlMDMwMjFhMDUwMDA0MTQifSwiZWNkc2Etd2l0aC1TSEExIjp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwic2hh''@;'; put 'put ''MjU2Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6IiJ9LCJzaGEyMjQiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sInNoYTM4NCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwic2hhNTEyIjp7InNpZ24iOiJl''@;'; put 'put ''Y2RzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtU0hBIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQS1TSEExIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoiIn0sIkRTQSI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6''@;'; put 'put ''IiJ9LCJEU0EtV0lUSC1TSEEyMjQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJEU0EtU0hBMjI0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMjU2Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQi''@;'; put 'put ''OiIifSwiRFNBLVNIQTI1NiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sIkRTQS1XSVRILVNIQTM4NCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0sIkRTQS1TSEEzODQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9''@;'; put 'put ''LCJEU0EtV0lUSC1TSEE1MTIiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtU0hBNTEyIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIifSwiRFNBLVJJUEVNRDE2MCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiIn0s''@;'; put 'put ''InJpcGVtZDE2MFdpdGhSU0EiOnsic2lnbiI6InJzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAwMDQxNCJ9LCJSU0EtUklQRU1EMTYwIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIzMDIxMzAwOTA2MDUyYjI0MDMwMjAxMDUw''@;'; put 'put ''MDA0MTQifSwibWQ1V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhhc2giOiJtZDUiLCJpZCI6IjMwMjAzMDBjMDYwODJhODY0ODg2ZjcwZDAyMDUwNTAwMDQxMCJ9LCJSU0EtTUQ1Ijp7InNpZ24iOiJyc2EiLCJoYXNoIjoibWQ1IiwiaWQiOiIzMDIwMzAwYzA2MDgyYTg2NDg4''@;'; put 'put ''NmY3MGQwMjA1MDUwMDA0MTAifX0nKX0sMTMwODpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCd7IjEuMy4xMzIuMC4xMCI6InNlY3AyNTZrMSIsIjEuMy4xMzIuMC4zMyI6InAyMjQiLCIxLjIuODQwLjEwMDQ1LjMuMS4xIjoicDE5MiIsIjEuMi44NDAuMTAwNDUuMy4x''@;'; put 'put ''LjciOiJwMjU2IiwiMS4zLjEzMi4wLjM0IjoicDM4NCIsIjEuMy4xMzIuMC4zNSI6InA1MjEifScpfSwzMjA4OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPUpTT04ucGFyc2UoJ3siT19SRE9OTFkiOjAsIk9fV1JPTkxZIjoxLCJPX1JEV1IiOjIsIlNfSUZNVCI6NjE0NDAsIlNfSUZSRUci''@;'; put 'put ''OjMyNzY4LCJTX0lGRElSIjoxNjM4NCwiU19JRkNIUiI6ODE5MiwiU19JRkJMSyI6MjQ1NzYsIlNfSUZJRk8iOjQwOTYsIlNfSUZMTksiOjQwOTYwLCJTX0lGU09DSyI6NDkxNTIsIk9fQ1JFQVQiOjUxMiwiT19FWENMIjoyMDQ4LCJPX05PQ1RUWSI6MTMxMDcyLCJPX1RSVU5DIjoxMDI0LCJP''@;'; put 'put ''X0FQUEVORCI6OCwiT19ESVJFQ1RPUlkiOjEwNDg1NzYsIk9fTk9GT0xMT1ciOjI1NiwiT19TWU5DIjoxMjgsIk9fU1lNTElOSyI6MjA5NzE1MiwiT19OT05CTE9DSyI6NCwiU19JUldYVSI6NDQ4LCJTX0lSVVNSIjoyNTYsIlNfSVdVU1IiOjEyOCwiU19JWFVTUiI6NjQsIlNfSVJXWEciOjU2''@;'; put 'put ''LCJTX0lSR1JQIjozMiwiU19JV0dSUCI6MTYsIlNfSVhHUlAiOjgsIlNfSVJXWE8iOjcsIlNfSVJPVEgiOjQsIlNfSVdPVEgiOjIsIlNfSVhPVEgiOjEsIkUyQklHIjo3LCJFQUNDRVMiOjEzLCJFQUREUklOVVNFIjo0OCwiRUFERFJOT1RBVkFJTCI6NDksIkVBRk5PU1VQUE9SVCI6NDcsIkVB''@;'; put 'put ''R0FJTiI6MzUsIkVBTFJFQURZIjozNywiRUJBREYiOjksIkVCQURNU0ciOjk0LCJFQlVTWSI6MTYsIkVDQU5DRUxFRCI6ODksIkVDSElMRCI6MTAsIkVDT05OQUJPUlRFRCI6NTMsIkVDT05OUkVGVVNFRCI6NjEsIkVDT05OUkVTRVQiOjU0LCJFREVBRExLIjoxMSwiRURFU1RBRERSUkVRIjoz''@;'; put 'put ''OSwiRURPTSI6MzMsIkVEUVVPVCI6NjksIkVFWElTVCI6MTcsIkVGQVVMVCI6MTQsIkVGQklHIjoyNywiRUhPU1RVTlJFQUNIIjo2NSwiRUlEUk0iOjkwLCJFSUxTRVEiOjkyLCJFSU5QUk9HUkVTUyI6MzYsIkVJTlRSIjo0LCJFSU5WQUwiOjIyLCJFSU8iOjUsIkVJU0NPTk4iOjU2LCJFSVNE''@;'; put 'put ''SVIiOjIxLCJFTE9PUCI6NjIsIkVNRklMRSI6MjQsIkVNTElOSyI6MzEsIkVNU0dTSVpFIjo0MCwiRU1VTFRJSE9QIjo5NSwiRU5BTUVUT09MT05HIjo2MywiRU5FVERPV04iOjUwLCJFTkVUUkVTRVQiOjUyLCJFTkVUVU5SRUFDSCI6NTEsIkVORklMRSI6MjMsIkVOT0JVRlMiOjU1LCJFTk9E''@;'; put 'put ''QVRBIjo5NiwiRU5PREVWIjoxOSwiRU5PRU5UIjoyLCJFTk9FWEVDIjo4LCJFTk9MQ0siOjc3LCJFTk9MSU5LIjo5NywiRU5PTUVNIjoxMiwiRU5PTVNHIjo5MSwiRU5PUFJPVE9PUFQiOjQyLCJFTk9TUEMiOjI4LCJFTk9TUiI6OTgsIkVOT1NUUiI6OTksIkVOT1NZUyI6NzgsIkVOT1RDT05O''@;'; put 'put ''Ijo1NywiRU5PVERJUiI6MjAsIkVOT1RFTVBUWSI6NjYsIkVOT1RTT0NLIjozOCwiRU5PVFNVUCI6NDUsIkVOT1RUWSI6MjUsIkVOWElPIjo2LCJFT1BOT1RTVVBQIjoxMDIsIkVPVkVSRkxPVyI6ODQsIkVQRVJNIjoxLCJFUElQRSI6MzIsIkVQUk9UTyI6MTAwLCJFUFJPVE9OT1NVUFBPUlQi''@;'; put 'put ''OjQzLCJFUFJPVE9UWVBFIjo0MSwiRVJBTkdFIjozNCwiRVJPRlMiOjMwLCJFU1BJUEUiOjI5LCJFU1JDSCI6MywiRVNUQUxFIjo3MCwiRVRJTUUiOjEwMSwiRVRJTUVET1VUIjo2MCwiRVRYVEJTWSI6MjYsIkVXT1VMREJMT0NLIjozNSwiRVhERVYiOjE4LCJTSUdIVVAiOjEsIlNJR0lOVCI6''@;'; put 'put ''MiwiU0lHUVVJVCI6MywiU0lHSUxMIjo0LCJTSUdUUkFQIjo1LCJTSUdBQlJUIjo2LCJTSUdJT1QiOjYsIlNJR0JVUyI6MTAsIlNJR0ZQRSI6OCwiU0lHS0lMTCI6OSwiU0lHVVNSMSI6MzAsIlNJR1NFR1YiOjExLCJTSUdVU1IyIjozMSwiU0lHUElQRSI6MTMsIlNJR0FMUk0iOjE0LCJTSUdU''@;'; put 'put ''RVJNIjoxNSwiU0lHQ0hMRCI6MjAsIlNJR0NPTlQiOjE5LCJTSUdTVE9QIjoxNywiU0lHVFNUUCI6MTgsIlNJR1RUSU4iOjIxLCJTSUdUVE9VIjoyMiwiU0lHVVJHIjoxNiwiU0lHWENQVSI6MjQsIlNJR1hGU1oiOjI1LCJTSUdWVEFMUk0iOjI2LCJTSUdQUk9GIjoyNywiU0lHV0lOQ0giOjI4''@;'; put 'put ''LCJTSUdJTyI6MjMsIlNJR1NZUyI6MTIsIlNTTF9PUF9BTEwiOjIxNDc0ODY3MTksIlNTTF9PUF9BTExPV19VTlNBRkVfTEVHQUNZX1JFTkVHT1RJQVRJT04iOjI2MjE0NCwiU1NMX09QX0NJUEhFUl9TRVJWRVJfUFJFRkVSRU5DRSI6NDE5NDMwNCwiU1NMX09QX0NJU0NPX0FOWUNPTk5FQ1Qi''@;'; put 'put ''OjMyNzY4LCJTU0xfT1BfQ09PS0lFX0VYQ0hBTkdFIjo4MTkyLCJTU0xfT1BfQ1JZUFRPUFJPX1RMU0VYVF9CVUciOjIxNDc0ODM2NDgsIlNTTF9PUF9ET05UX0lOU0VSVF9FTVBUWV9GUkFHTUVOVFMiOjIwNDgsIlNTTF9PUF9FUEhFTUVSQUxfUlNBIjowLCJTU0xfT1BfTEVHQUNZX1NFUlZF''@;'; put 'put ''Ul9DT05ORUNUIjo0LCJTU0xfT1BfTUlDUk9TT0ZUX0JJR19TU0xWM19CVUZGRVIiOjMyLCJTU0xfT1BfTUlDUk9TT0ZUX1NFU1NfSURfQlVHIjoxLCJTU0xfT1BfTVNJRV9TU0xWMl9SU0FfUEFERElORyI6MCwiU1NMX09QX05FVFNDQVBFX0NBX0ROX0JVRyI6NTM2ODcwOTEyLCJTU0xfT1Bf''@;'; put 'put ''TkVUU0NBUEVfQ0hBTExFTkdFX0JVRyI6MiwiU1NMX09QX05FVFNDQVBFX0RFTU9fQ0lQSEVSX0NIQU5HRV9CVUciOjEwNzM3NDE4MjQsIlNTTF9PUF9ORVRTQ0FQRV9SRVVTRV9DSVBIRVJfQ0hBTkdFX0JVRyI6OCwiU1NMX09QX05PX0NPTVBSRVNTSU9OIjoxMzEwNzIsIlNTTF9PUF9OT19R''@;'; put 'put ''VUVSWV9NVFUiOjQwOTYsIlNTTF9PUF9OT19TRVNTSU9OX1JFU1VNUFRJT05fT05fUkVORUdPVElBVElPTiI6NjU1MzYsIlNTTF9PUF9OT19TU0x2MiI6MTY3NzcyMTYsIlNTTF9PUF9OT19TU0x2MyI6MzM1NTQ0MzIsIlNTTF9PUF9OT19USUNLRVQiOjE2Mzg0LCJTU0xfT1BfTk9fVExTdjEi''@;'; put 'put ''OjY3MTA4ODY0LCJTU0xfT1BfTk9fVExTdjFfMSI6MjY4NDM1NDU2LCJTU0xfT1BfTk9fVExTdjFfMiI6MTM0MjE3NzI4LCJTU0xfT1BfUEtDUzFfQ0hFQ0tfMSI6MCwiU1NMX09QX1BLQ1MxX0NIRUNLXzIiOjAsIlNTTF9PUF9TSU5HTEVfREhfVVNFIjoxMDQ4NTc2LCJTU0xfT1BfU0lOR0xF''@;'; put 'put ''X0VDREhfVVNFIjo1MjQyODgsIlNTTF9PUF9TU0xFQVlfMDgwX0NMSUVOVF9ESF9CVUciOjEyOCwiU1NMX09QX1NTTFJFRjJfUkVVU0VfQ0VSVF9UWVBFX0JVRyI6MCwiU1NMX09QX1RMU19CTE9DS19QQURESU5HX0JVRyI6NTEyLCJTU0xfT1BfVExTX0Q1X0JVRyI6MjU2LCJTU0xfT1BfVExT''@;'; put 'put ''X1JPTExCQUNLX0JVRyI6ODM4ODYwOCwiRU5HSU5FX01FVEhPRF9EU0EiOjIsIkVOR0lORV9NRVRIT0RfREgiOjQsIkVOR0lORV9NRVRIT0RfUkFORCI6OCwiRU5HSU5FX01FVEhPRF9FQ0RIIjoxNiwiRU5HSU5FX01FVEhPRF9FQ0RTQSI6MzIsIkVOR0lORV9NRVRIT0RfQ0lQSEVSUyI6NjQs''@;'; put 'put ''IkVOR0lORV9NRVRIT0RfRElHRVNUUyI6MTI4LCJFTkdJTkVfTUVUSE9EX1NUT1JFIjoyNTYsIkVOR0lORV9NRVRIT0RfUEtFWV9NRVRIUyI6NTEyLCJFTkdJTkVfTUVUSE9EX1BLRVlfQVNOMV9NRVRIUyI6MTAyNCwiRU5HSU5FX01FVEhPRF9BTEwiOjY1NTM1LCJFTkdJTkVfTUVUSE9EX05P''@;'; put 'put ''TkUiOjAsIkRIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUUiOjIsIkRIX0NIRUNLX1BfTk9UX1BSSU1FIjoxLCJESF9VTkFCTEVfVE9fQ0hFQ0tfR0VORVJBVE9SIjo0LCJESF9OT1RfU1VJVEFCTEVfR0VORVJBVE9SIjo4LCJOUE5fRU5BQkxFRCI6MSwiUlNBX1BLQ1MxX1BBRERJTkciOjEsIlJT''@;'; put 'put ''QV9TU0xWMjNfUEFERElORyI6MiwiUlNBX05PX1BBRERJTkciOjMsIlJTQV9QS0NTMV9PQUVQX1BBRERJTkciOjQsIlJTQV9YOTMxX1BBRERJTkciOjUsIlJTQV9QS0NTMV9QU1NfUEFERElORyI6NiwiUE9JTlRfQ09OVkVSU0lPTl9DT01QUkVTU0VEIjoyLCJQT0lOVF9DT05WRVJTSU9OX1VO''@;'; put 'put ''Q09NUFJFU1NFRCI6NCwiUE9JTlRfQ09OVkVSU0lPTl9IWUJSSUQiOjYsIkZfT0siOjAsIlJfT0siOjQsIldfT0siOjIsIlhfT0siOjEsIlVWX1VEUF9SRVVTRUFERFIiOjR9Jyl9LDk3OTk6VT0+eyJ1c2Ugc3RyaWN0IjtVLmV4cG9ydHM9SlNPTi5wYXJzZSgneyJtb2RwMSI6eyJnZW4iOiIw''@;'; put 'put ''MiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2''@;'; put 'put ''MjVlN2VjNmY0NGM0MmU5YTYzYTM2MjBmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAyIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0''@;'; put 'put ''ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNjUzODFmZmZmZmZmZmZmZmZmZmZmIn0s''@;'; put 'put ''Im1vZHA1Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZk''@;'; put 'put ''NmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNh''@;'; put 'put ''ZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTIzNzMyN2ZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE0Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEy''@;'; put 'put ''OTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0''@;'; put 'put ''MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUz''@;'; put 'put ''NmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWNhYTY4ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6''@;'; put 'put ''ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRj''@;'; put 'put ''NDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3''@;'; put 'put ''MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0''@;'; put 'put ''MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIx''@;'; put 'put ''ZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5M2FkMmNhZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTYiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFh''@;'; put 'put ''MjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2''@;'; put 'put ''YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRm''@;'; put 'put ''MTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIx''@;'; put 'put ''YWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2''@;'; put 'put ''MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5''@;'; put 'put ''MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDA2MzE5OWZmZmZm''@;'; put 'put ''ZmZmZmZmZmZmZmYifSwibW9kcDE3Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRm''@;'; put 'put ''MjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVhODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNm''@;'; put 'put ''NWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5''@;'; put 'put ''NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2ZiODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2''@;'; put 'put ''MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBiYWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1''@;'; put 'put ''YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNhYTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2Qw''@;'; put 'put ''MDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFkNGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3Mjdi''@;'; put 'put ''MDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAxMzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBi''@;'; put 'put ''MWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhlMWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNk''@;'; put 'put ''YTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGNjNDAyNGZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDE4Ijp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4YzIzNGM0YzY2''@;'; put 'put ''MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjM3ZWQ2YjBiZmY1Y2I2ZjQwNmI3ZWRlZTM4NmJmYjVh''@;'; put 'put ''ODk5ZmE1YWU5ZjI0MTE3YzRiMWZlNjQ5Mjg2NjUxZWNlNDViM2RjMjAwN2NiOGExNjNiZjA1OThkYTQ4MzYxYzU1ZDM5YTY5MTYzZmE4ZmQyNGNmNWY4MzY1NWQyM2RjYTNhZDk2MWM2MmYzNTYyMDg1NTJiYjllZDUyOTA3NzA5Njk2NmQ2NzBjMzU0ZTRhYmM5ODA0ZjE3NDZjMDhjYTE4MjE3''@;'; put 'put ''YzMyOTA1ZTQ2MmUzNmNlM2JlMzllNzcyYzE4MGU4NjAzOWIyNzgzYTJlYzA3YTI4ZmI1YzU1ZGYwNmY0YzUyYzlkZTJiY2JmNjk1NTgxNzE4Mzk5NTQ5N2NlYTk1NmFlNTE1ZDIyNjE4OThmYTA1MTAxNTcyOGU1YThhYWFjNDJkYWQzMzE3MGQwNDUwN2EzM2E4NTUyMWFiZGYxY2JhNjRlY2Zi''@;'; put 'put ''ODUwNDU4ZGJlZjBhOGFlYTcxNTc1ZDA2MGM3ZGIzOTcwZjg1YTZlMWU0YzdhYmY1YWU4Y2RiMDkzM2Q3MWU4Yzk0ZTA0YTI1NjE5ZGNlZTNkMjI2MWFkMmVlNmJmMTJmZmEwNmQ5OGEwODY0ZDg3NjAyNzMzZWM4NmE2NDUyMWYyYjE4MTc3YjIwMGNiYmUxMTc1NzdhNjE1ZDZjNzcwOTg4YzBi''@;'; put 'put ''YWQ5NDZlMjA4ZTI0ZmEwNzRlNWFiMzE0M2RiNWJmY2UwZmQxMDhlNGI4MmQxMjBhOTIxMDgwMTFhNzIzYzEyYTc4N2U2ZDc4ODcxOWExMGJkYmE1YjI2OTljMzI3MTg2YWY0ZTIzYzFhOTQ2ODM0YjYxNTBiZGEyNTgzZTljYTJhZDQ0Y2U4ZGJiYmMyZGIwNGRlOGVmOTJlOGVmYzE0MWZiZWNh''@;'; put 'put ''YTYyODdjNTk0NzRlNmJjMDVkOTliMjk2NGZhMDkwYzNhMjIzM2JhMTg2NTE1YmU3ZWQxZjYxMjk3MGNlZTJkN2FmYjgxYmRkNzYyMTcwNDgxY2QwMDY5MTI3ZDViMDVhYTk5M2I0ZWE5ODhkOGZkZGMxODZmZmI3ZGM5MGE2YzA4ZjRkZjQzNWM5MzQwMjg0OTIzNmMzZmFiNGQyN2M3MDI2YzFk''@;'; put 'put ''NGRjYjI2MDI2NDZkZWM5NzUxZTc2M2RiYTM3YmRmOGZmOTQwNmFkOWU1MzBlZTVkYjM4MmY0MTMwMDFhZWIwNmE1M2VkOTAyN2Q4MzExNzk3MjdiMDg2NWE4OTE4ZGEzZWRiZWJjZjliMTRlZDQ0Y2U2Y2JhY2VkNGJiMWJkYjdmMTQ0N2U2Y2MyNTRiMzMyMDUxNTEyYmQ3YWY0MjZmYjhmNDAx''@;'; put 'put ''Mzc4Y2QyYmY1OTgzY2EwMWM2NGI5MmVjZjAzMmVhMTVkMTcyMWQwM2Y0ODJkN2NlNmU3NGZlZjZkNTVlNzAyZjQ2OTgwYzgyYjVhODQwMzE5MDBiMWM5ZTU5ZTdjOTdmYmVjN2U4ZjMyM2E5N2E3ZTM2Y2M4OGJlMGYxZDQ1YjdmZjU4NWFjNTRiZDQwN2IyMmI0MTU0YWFjYzhmNmQ3ZWJmNDhl''@;'; put 'put ''MWQ4MTRjYzVlZDIwZjgwMzdlMGE3OTcxNWVlZjI5YmUzMjgwNmExZDU4YmI3YzVkYTc2ZjU1MGFhM2Q4YTFmYmZmMGViMTljY2IxYTMxM2Q1NWNkYTU2YzllYzJlZjI5NjMyMzg3ZmU4ZDc2ZTNjMDQ2ODA0M2U4ZjY2M2Y0ODYwZWUxMmJmMmQ1YjBiNzQ3NGQ2ZTY5NGY5MWU2ZGJlMTE1OTc0''@;'; put 'put ''YTM5MjZmMTJmZWU1ZTQzODc3N2NiNmE5MzJkZjhjZDhiZWM0ZDA3M2I5MzFiYTNiYzgzMmI2OGQ5ZGQzMDA3NDFmYTdiZjhhZmM0N2VkMjU3NmY2OTM2YmE0MjQ2NjNhYWI2MzljNWFlNGY1NjgzNDIzYjQ3NDJiZjFjOTc4MjM4ZjE2Y2JlMzlkNjUyZGUzZmRiOGJlZmM4NDhhZDkyMjIyMmUw''@;'; put 'put ''NGE0MDM3YzA3MTNlYjU3YTgxYTIzZjBjNzM0NzNmYzY0NmNlYTMwNmI0YmNiYzg4NjJmODM4NWRkZmE5ZDRiN2ZhMmMwODdlODc5NjgzMzAzZWQ1YmRkM2EwNjJiM2NmNWIzYTI3OGE2NmQyYTEzZjgzZjQ0ZjgyZGRmMzEwZWUwNzRhYjZhMzY0NTk3ZTg5OWEwMjU1ZGMxNjRmMzFjYzUwODQ2''@;'; put 'put ''ODUxZGY5YWI0ODE5NWRlZDdlYTFiMWQ1MTBiZDdlZTc0ZDczZmFmMzZiYzMxZWNmYTI2ODM1OTA0NmY0ZWI4NzlmOTI0MDA5NDM4YjQ4MWM2Y2Q3ODg5YTAwMmVkNWVlMzgyYmM5MTkwZGE2ZmMwMjZlNDc5NTU4ZTQ0NzU2NzdlOWFhOWUzMDUwZTI3NjU2OTRkZmM4MWY1NmU4ODBiOTZlNzE2''@;'; put 'put ''MGM5ODBkZDk4ZWRkM2RmZmZmZmZmZmZmZmZmZmZmZiJ9fScpfSw4NTk3OlU9PnsidXNlIHN0cmljdCI7VS5leHBvcnRzPXtpODoiNi41LjQifX0sMjU2MjpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCd7IjIuMTYuODQwLjEuMTAxLjMuNC4xLjEiOiJhZXMtMTI4LWVj''@;'; put 'put ''YiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIiOiJhZXMtMTI4LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjMiOiJhZXMtMTI4LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQiOiJhZXMtMTI4LWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIxIjoiYWVzLTE5Mi1lY2IiLCIyLjE2''@;'; put 'put ''Ljg0MC4xLjEwMS4zLjQuMS4yMiI6ImFlcy0xOTItY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjMiOiJhZXMtMTkyLW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjI0IjoiYWVzLTE5Mi1jZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MSI6ImFlcy0yNTYtZWNiIiwiMi4xNi44NDAu''@;'; put 'put ''MS4xMDEuMy40LjEuNDIiOiJhZXMtMjU2LWNiYyIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQzIjoiYWVzLTI1Ni1vZmIiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40NCI6ImFlcy0yNTYtY2ZiIn0nKX0sMzcwNDpVPT57InVzZSBzdHJpY3QiO1UuZXhwb3J0cz1KU09OLnBhcnNlKCdbImFjIiwi''@;'; put 'put ''Y29tLmFjIiwiZWR1LmFjIiwiZ292LmFjIiwibmV0LmFjIiwibWlsLmFjIiwib3JnLmFjIiwiYWQiLCJub20uYWQiLCJhZSIsImNvLmFlIiwibmV0LmFlIiwib3JnLmFlIiwic2NoLmFlIiwiYWMuYWUiLCJnb3YuYWUiLCJtaWwuYWUiLCJhZXJvIiwiYWNjaWRlbnQtaW52ZXN0aWdhdGlvbi5h''@;'; put 'put ''ZXJvIiwiYWNjaWRlbnQtcHJldmVudGlvbi5hZXJvIiwiYWVyb2JhdGljLmFlcm8iLCJhZXJvY2x1Yi5hZXJvIiwiYWVyb2Ryb21lLmFlcm8iLCJhZ2VudHMuYWVybyIsImFpcmNyYWZ0LmFlcm8iLCJhaXJsaW5lLmFlcm8iLCJhaXJwb3J0LmFlcm8iLCJhaXItc3VydmVpbGxhbmNlLmFlcm8i''@;'; put 'put ''LCJhaXJ0cmFmZmljLmFlcm8iLCJhaXItdHJhZmZpYy1jb250cm9sLmFlcm8iLCJhbWJ1bGFuY2UuYWVybyIsImFtdXNlbWVudC5hZXJvIiwiYXNzb2NpYXRpb24uYWVybyIsImF1dGhvci5hZXJvIiwiYmFsbG9vbmluZy5hZXJvIiwiYnJva2VyLmFlcm8iLCJjYWEuYWVybyIsImNhcmdvLmFl''@;'; put 'put ''cm8iLCJjYXRlcmluZy5hZXJvIiwiY2VydGlmaWNhdGlvbi5hZXJvIiwiY2hhbXBpb25zaGlwLmFlcm8iLCJjaGFydGVyLmFlcm8iLCJjaXZpbGF2aWF0aW9uLmFlcm8iLCJjbHViLmFlcm8iLCJjb25mZXJlbmNlLmFlcm8iLCJjb25zdWx0YW50LmFlcm8iLCJjb25zdWx0aW5nLmFlcm8iLCJj''@;'; put 'put ''b250cm9sLmFlcm8iLCJjb3VuY2lsLmFlcm8iLCJjcmV3LmFlcm8iLCJkZXNpZ24uYWVybyIsImRnY2EuYWVybyIsImVkdWNhdG9yLmFlcm8iLCJlbWVyZ2VuY3kuYWVybyIsImVuZ2luZS5hZXJvIiwiZW5naW5lZXIuYWVybyIsImVudGVydGFpbm1lbnQuYWVybyIsImVxdWlwbWVudC5hZXJv''@;'; put 'put ''IiwiZXhjaGFuZ2UuYWVybyIsImV4cHJlc3MuYWVybyIsImZlZGVyYXRpb24uYWVybyIsImZsaWdodC5hZXJvIiwiZnJlaWdodC5hZXJvIiwiZnVlbC5hZXJvIiwiZ2xpZGluZy5hZXJvIiwiZ292ZXJubWVudC5hZXJvIiwiZ3JvdW5kaGFuZGxpbmcuYWVybyIsImdyb3VwLmFlcm8iLCJoYW5n''@;'; put 'put ''Z2xpZGluZy5hZXJvIiwiaG9tZWJ1aWx0LmFlcm8iLCJpbnN1cmFuY2UuYWVybyIsImpvdXJuYWwuYWVybyIsImpvdXJuYWxpc3QuYWVybyIsImxlYXNpbmcuYWVybyIsImxvZ2lzdGljcy5hZXJvIiwibWFnYXppbmUuYWVybyIsIm1haW50ZW5hbmNlLmFlcm8iLCJtZWRpYS5hZXJvIiwibWlj''@;'; put 'put ''cm9saWdodC5hZXJvIiwibW9kZWxsaW5nLmFlcm8iLCJuYXZpZ2F0aW9uLmFlcm8iLCJwYXJhY2h1dGluZy5hZXJvIiwicGFyYWdsaWRpbmcuYWVybyIsInBhc3Nlbmdlci1hc3NvY2lhdGlvbi5hZXJvIiwicGlsb3QuYWVybyIsInByZXNzLmFlcm8iLCJwcm9kdWN0aW9uLmFlcm8iLCJyZWNy''@;'; put 'put ''ZWF0aW9uLmFlcm8iLCJyZXBib2R5LmFlcm8iLCJyZXMuYWVybyIsInJlc2VhcmNoLmFlcm8iLCJyb3RvcmNyYWZ0LmFlcm8iLCJzYWZldHkuYWVybyIsInNjaWVudGlzdC5hZXJvIiwic2VydmljZXMuYWVybyIsInNob3cuYWVybyIsInNreWRpdmluZy5hZXJvIiwic29mdHdhcmUuYWVybyIs''@;'; put 'put ''InN0dWRlbnQuYWVybyIsInRyYWRlci5hZXJvIiwidHJhZGluZy5hZXJvIiwidHJhaW5lci5hZXJvIiwidW5pb24uYWVybyIsIndvcmtpbmdncm91cC5hZXJvIiwid29ya3MuYWVybyIsImFmIiwiZ292LmFmIiwiY29tLmFmIiwib3JnLmFmIiwibmV0LmFmIiwiZWR1LmFmIiwiYWciLCJjb20u''@;'; put 'put ''YWciLCJvcmcuYWciLCJuZXQuYWciLCJjby5hZyIsIm5vbS5hZyIsImFpIiwib2ZmLmFpIiwiY29tLmFpIiwibmV0LmFpIiwib3JnLmFpIiwiYWwiLCJjb20uYWwiLCJlZHUuYWwiLCJnb3YuYWwiLCJtaWwuYWwiLCJuZXQuYWwiLCJvcmcuYWwiLCJhbSIsImNvLmFtIiwiY29tLmFtIiwiY29t''@;'; put 'put ''bXVuZS5hbSIsIm5ldC5hbSIsIm9yZy5hbSIsImFvIiwiZWQuYW8iLCJndi5hbyIsIm9nLmFvIiwiY28uYW8iLCJwYi5hbyIsIml0LmFvIiwiYXEiLCJhciIsImNvbS5hciIsImVkdS5hciIsImdvYi5hciIsImdvdi5hciIsImludC5hciIsIm1pbC5hciIsIm11c2ljYS5hciIsIm5ldC5hciIs''@;'; put 'put ''Im9yZy5hciIsInR1ci5hciIsImFycGEiLCJlMTY0LmFycGEiLCJpbi1hZGRyLmFycGEiLCJpcDYuYXJwYSIsImlyaXMuYXJwYSIsInVyaS5hcnBhIiwidXJuLmFycGEiLCJhcyIsImdvdi5hcyIsImFzaWEiLCJhdCIsImFjLmF0IiwiY28uYXQiLCJndi5hdCIsIm9yLmF0IiwiYXUiLCJjb20u''@;'; put 'put ''YXUiLCJuZXQuYXUiLCJvcmcuYXUiLCJlZHUuYXUiLCJnb3YuYXUiLCJhc24uYXUiLCJpZC5hdSIsImluZm8uYXUiLCJjb25mLmF1Iiwib3ouYXUiLCJhY3QuYXUiLCJuc3cuYXUiLCJudC5hdSIsInFsZC5hdSIsInNhLmF1IiwidGFzLmF1IiwidmljLmF1Iiwid2EuYXUiLCJhY3QuZWR1LmF1''@;'; put 'put ''IiwiY2F0aG9saWMuZWR1LmF1IiwibnN3LmVkdS5hdSIsIm50LmVkdS5hdSIsInFsZC5lZHUuYXUiLCJzYS5lZHUuYXUiLCJ0YXMuZWR1LmF1IiwidmljLmVkdS5hdSIsIndhLmVkdS5hdSIsInFsZC5nb3YuYXUiLCJzYS5nb3YuYXUiLCJ0YXMuZ292LmF1IiwidmljLmdvdi5hdSIsIndhLmdv''@;'; put 'put ''di5hdSIsImVkdWNhdGlvbi50YXMuZWR1LmF1Iiwic2Nob29scy5uc3cuZWR1LmF1IiwiYXciLCJjb20uYXciLCJheCIsImF6IiwiY29tLmF6IiwibmV0LmF6IiwiaW50LmF6IiwiZ292LmF6Iiwib3JnLmF6IiwiZWR1LmF6IiwiaW5mby5heiIsInBwLmF6IiwibWlsLmF6IiwibmFtZS5heiIs''@;'; put 'put ''InByby5heiIsImJpei5heiIsImJhIiwiY29tLmJhIiwiZWR1LmJhIiwiZ292LmJhIiwibWlsLmJhIiwibmV0LmJhIiwib3JnLmJhIiwiYmIiLCJiaXouYmIiLCJjby5iYiIsImNvbS5iYiIsImVkdS5iYiIsImdvdi5iYiIsImluZm8uYmIiLCJuZXQuYmIiLCJvcmcuYmIiLCJzdG9yZS5iYiIs''@;'; put 'put ''InR2LmJiIiwiKi5iZCIsImJlIiwiYWMuYmUiLCJiZiIsImdvdi5iZiIsImJnIiwiYS5iZyIsImIuYmciLCJjLmJnIiwiZC5iZyIsImUuYmciLCJmLmJnIiwiZy5iZyIsImguYmciLCJpLmJnIiwiai5iZyIsImsuYmciLCJsLmJnIiwibS5iZyIsIm4uYmciLCJvLmJnIiwicC5iZyIsInEuYmci''@;'; put 'put ''LCJyLmJnIiwicy5iZyIsInQuYmciLCJ1LmJnIiwidi5iZyIsIncuYmciLCJ4LmJnIiwieS5iZyIsInouYmciLCIwLmJnIiwiMS5iZyIsIjIuYmciLCIzLmJnIiwiNC5iZyIsIjUuYmciLCI2LmJnIiwiNy5iZyIsIjguYmciLCI5LmJnIiwiYmgiLCJjb20uYmgiLCJlZHUuYmgiLCJuZXQuYmgi''@;'; put 'put ''LCJvcmcuYmgiLCJnb3YuYmgiLCJiaSIsImNvLmJpIiwiY29tLmJpIiwiZWR1LmJpIiwib3IuYmkiLCJvcmcuYmkiLCJiaXoiLCJiaiIsImFzc28uYmoiLCJiYXJyZWF1LmJqIiwiZ291di5iaiIsImJtIiwiY29tLmJtIiwiZWR1LmJtIiwiZ292LmJtIiwibmV0LmJtIiwib3JnLmJtIiwiYm4i''@;'; put 'put ''LCJjb20uYm4iLCJlZHUuYm4iLCJnb3YuYm4iLCJuZXQuYm4iLCJvcmcuYm4iLCJibyIsImNvbS5ibyIsImVkdS5ibyIsImdvYi5ibyIsImludC5ibyIsIm9yZy5ibyIsIm5ldC5ibyIsIm1pbC5ibyIsInR2LmJvIiwid2ViLmJvIiwiYWNhZGVtaWEuYm8iLCJhZ3JvLmJvIiwiYXJ0ZS5ibyIs''@;'; put 'put ''ImJsb2cuYm8iLCJib2xpdmlhLmJvIiwiY2llbmNpYS5ibyIsImNvb3BlcmF0aXZhLmJvIiwiZGVtb2NyYWNpYS5ibyIsImRlcG9ydGUuYm8iLCJlY29sb2dpYS5ibyIsImVjb25vbWlhLmJvIiwiZW1wcmVzYS5ibyIsImluZGlnZW5hLmJvIiwiaW5kdXN0cmlhLmJvIiwiaW5mby5ibyIsIm1l''@;'; put 'put ''ZGljaW5hLmJvIiwibW92aW1pZW50by5ibyIsIm11c2ljYS5ibyIsIm5hdHVyYWwuYm8iLCJub21icmUuYm8iLCJub3RpY2lhcy5ibyIsInBhdHJpYS5ibyIsInBvbGl0aWNhLmJvIiwicHJvZmVzaW9uYWwuYm8iLCJwbHVyaW5hY2lvbmFsLmJvIiwicHVlYmxvLmJvIiwicmV2aXN0YS5ibyIs''@;'; put 'put ''InNhbHVkLmJvIiwidGVjbm9sb2dpYS5ibyIsInRrc2F0LmJvIiwidHJhbnNwb3J0ZS5ibyIsIndpa2kuYm8iLCJiciIsIjlndWFjdS5iciIsImFiYy5iciIsImFkbS5iciIsImFkdi5iciIsImFnci5iciIsImFqdS5iciIsImFtLmJyIiwiYW5hbmkuYnIiLCJhcGFyZWNpZGEuYnIiLCJhcnEu''@;'; put 'put ''YnIiLCJhcnQuYnIiLCJhdG8uYnIiLCJiLmJyIiwiYmFydWVyaS5iciIsImJlbGVtLmJyIiwiYmh6LmJyIiwiYmlvLmJyIiwiYmxvZy5iciIsImJtZC5iciIsImJvYXZpc3RhLmJyIiwiYnNiLmJyIiwiY2FtcGluYWdyYW5kZS5iciIsImNhbXBpbmFzLmJyIiwiY2F4aWFzLmJyIiwiY2ltLmJy''@;'; put 'put ''IiwiY25nLmJyIiwiY250LmJyIiwiY29tLmJyIiwiY29udGFnZW0uYnIiLCJjb29wLmJyIiwiY3JpLmJyIiwiY3VpYWJhLmJyIiwiY3VyaXRpYmEuYnIiLCJkZWYuYnIiLCJlY24uYnIiLCJlY28uYnIiLCJlZHUuYnIiLCJlbXAuYnIiLCJlbmcuYnIiLCJlc3AuYnIiLCJldGMuYnIiLCJldGku''@;'; put 'put ''YnIiLCJmYXIuYnIiLCJmZWlyYS5iciIsImZsb2cuYnIiLCJmbG9yaXBhLmJyIiwiZm0uYnIiLCJmbmQuYnIiLCJmb3J0YWwuYnIiLCJmb3QuYnIiLCJmb3ouYnIiLCJmc3QuYnIiLCJnMTIuYnIiLCJnZ2YuYnIiLCJnb2lhbmlhLmJyIiwiZ292LmJyIiwiYWMuZ292LmJyIiwiYWwuZ292LmJy''@;'; put 'put ''IiwiYW0uZ292LmJyIiwiYXAuZ292LmJyIiwiYmEuZ292LmJyIiwiY2UuZ292LmJyIiwiZGYuZ292LmJyIiwiZXMuZ292LmJyIiwiZ28uZ292LmJyIiwibWEuZ292LmJyIiwibWcuZ292LmJyIiwibXMuZ292LmJyIiwibXQuZ292LmJyIiwicGEuZ292LmJyIiwicGIuZ292LmJyIiwicGUuZ292''@;'; put 'put ''LmJyIiwicGkuZ292LmJyIiwicHIuZ292LmJyIiwicmouZ292LmJyIiwicm4uZ292LmJyIiwicm8uZ292LmJyIiwicnIuZ292LmJyIiwicnMuZ292LmJyIiwic2MuZ292LmJyIiwic2UuZ292LmJyIiwic3AuZ292LmJyIiwidG8uZ292LmJyIiwiZ3J1LmJyIiwiaW1iLmJyIiwiaW5kLmJyIiwi''@;'; put 'put ''aW5mLmJyIiwiamFiLmJyIiwiamFtcGEuYnIiLCJqZGYuYnIiLCJqb2ludmlsbGUuYnIiLCJqb3IuYnIiLCJqdXMuYnIiLCJsZWcuYnIiLCJsZWwuYnIiLCJsb25kcmluYS5iciIsIm1hY2FwYS5iciIsIm1hY2Vpby5iciIsIm1hbmF1cy5iciIsIm1hcmluZ2EuYnIiLCJtYXQuYnIiLCJtZWQu''@;'; put 'put ''YnIiLCJtaWwuYnIiLCJtb3JlbmEuYnIiLCJtcC5iciIsIm11cy5iciIsIm5hdGFsLmJyIiwibmV0LmJyIiwibml0ZXJvaS5iciIsIioubm9tLmJyIiwibm90LmJyIiwibnRyLmJyIiwib2RvLmJyIiwib25nLmJyIiwib3JnLmJyIiwib3Nhc2NvLmJyIiwicGFsbWFzLmJyIiwicG9hLmJyIiwi''@;'; put 'put ''cHBnLmJyIiwicHJvLmJyIiwicHNjLmJyIiwicHNpLmJyIiwicHZoLmJyIiwicXNsLmJyIiwicmFkaW8uYnIiLCJyZWMuYnIiLCJyZWNpZmUuYnIiLCJyaWJlaXJhby5iciIsInJpby5iciIsInJpb2JyYW5jby5iciIsInJpb3ByZXRvLmJyIiwic2FsdmFkb3IuYnIiLCJzYW1wYS5iciIsInNh''@;'; put 'put ''bnRhbWFyaWEuYnIiLCJzYW50b2FuZHJlLmJyIiwic2FvYmVybmFyZG8uYnIiLCJzYW9nb25jYS5iciIsInNqYy5iciIsInNsZy5iciIsInNsei5iciIsInNvcm9jYWJhLmJyIiwic3J2LmJyIiwidGF4aS5iciIsInRjLmJyIiwidGVvLmJyIiwidGhlLmJyIiwidG1wLmJyIiwidHJkLmJyIiwi''@;'; put 'put ''dHVyLmJyIiwidHYuYnIiLCJ1ZGkuYnIiLCJ2ZXQuYnIiLCJ2aXguYnIiLCJ2bG9nLmJyIiwid2lraS5iciIsInpsZy5iciIsImJzIiwiY29tLmJzIiwibmV0LmJzIiwib3JnLmJzIiwiZWR1LmJzIiwiZ292LmJzIiwiYnQiLCJjb20uYnQiLCJlZHUuYnQiLCJnb3YuYnQiLCJuZXQuYnQiLCJv''@;'; put 'put ''cmcuYnQiLCJidiIsImJ3IiwiY28uYnciLCJvcmcuYnciLCJieSIsImdvdi5ieSIsIm1pbC5ieSIsImNvbS5ieSIsIm9mLmJ5IiwiYnoiLCJjb20uYnoiLCJuZXQuYnoiLCJvcmcuYnoiLCJlZHUuYnoiLCJnb3YuYnoiLCJjYSIsImFiLmNhIiwiYmMuY2EiLCJtYi5jYSIsIm5iLmNhIiwibmYu''@;'; put 'put ''Y2EiLCJubC5jYSIsIm5zLmNhIiwibnQuY2EiLCJudS5jYSIsIm9uLmNhIiwicGUuY2EiLCJxYy5jYSIsInNrLmNhIiwieWsuY2EiLCJnYy5jYSIsImNhdCIsImNjIiwiY2QiLCJnb3YuY2QiLCJjZiIsImNnIiwiY2giLCJjaSIsIm9yZy5jaSIsIm9yLmNpIiwiY29tLmNpIiwiY28uY2kiLCJl''@;'; put 'put ''ZHUuY2kiLCJlZC5jaSIsImFjLmNpIiwibmV0LmNpIiwiZ28uY2kiLCJhc3NvLmNpIiwiYVx4ZTlyb3BvcnQuY2kiLCJpbnQuY2kiLCJwcmVzc2UuY2kiLCJtZC5jaSIsImdvdXYuY2kiLCIqLmNrIiwiIXd3dy5jayIsImNsIiwiYXByZW5kZW1hcy5jbCIsImNvLmNsIiwiZ29iLmNsIiwiZ292''@;'; put 'put ''LmNsIiwibWlsLmNsIiwiY20iLCJjby5jbSIsImNvbS5jbSIsImdvdi5jbSIsIm5ldC5jbSIsImNuIiwiYWMuY24iLCJjb20uY24iLCJlZHUuY24iLCJnb3YuY24iLCJuZXQuY24iLCJvcmcuY24iLCJtaWwuY24iLCJcdTUxNmNcdTUzZjguY24iLCJcdTdmNTFcdTdlZGMuY24iLCJcdTdkYjJc''@;'; put 'put ''dTdkNjEuY24iLCJhaC5jbiIsImJqLmNuIiwiY3EuY24iLCJmai5jbiIsImdkLmNuIiwiZ3MuY24iLCJnei5jbiIsImd4LmNuIiwiaGEuY24iLCJoYi5jbiIsImhlLmNuIiwiaGkuY24iLCJobC5jbiIsImhuLmNuIiwiamwuY24iLCJqcy5jbiIsImp4LmNuIiwibG4uY24iLCJubS5jbiIsIm54''@;'; put 'put ''LmNuIiwicWguY24iLCJzYy5jbiIsInNkLmNuIiwic2guY24iLCJzbi5jbiIsInN4LmNuIiwidGouY24iLCJ4ai5jbiIsInh6LmNuIiwieW4uY24iLCJ6ai5jbiIsImhrLmNuIiwibW8uY24iLCJ0dy5jbiIsImNvIiwiYXJ0cy5jbyIsImNvbS5jbyIsImVkdS5jbyIsImZpcm0uY28iLCJnb3Yu''@;'; put 'put ''Y28iLCJpbmZvLmNvIiwiaW50LmNvIiwibWlsLmNvIiwibmV0LmNvIiwibm9tLmNvIiwib3JnLmNvIiwicmVjLmNvIiwid2ViLmNvIiwiY29tIiwiY29vcCIsImNyIiwiYWMuY3IiLCJjby5jciIsImVkLmNyIiwiZmkuY3IiLCJnby5jciIsIm9yLmNyIiwic2EuY3IiLCJjdSIsImNvbS5jdSIs''@;'; put 'put ''ImVkdS5jdSIsIm9yZy5jdSIsIm5ldC5jdSIsImdvdi5jdSIsImluZi5jdSIsImN2IiwiY3ciLCJjb20uY3ciLCJlZHUuY3ciLCJuZXQuY3ciLCJvcmcuY3ciLCJjeCIsImdvdi5jeCIsImN5IiwiYWMuY3kiLCJiaXouY3kiLCJjb20uY3kiLCJla2xvZ2VzLmN5IiwiZ292LmN5IiwibHRkLmN5''@;'; put 'put ''IiwibmFtZS5jeSIsIm5ldC5jeSIsIm9yZy5jeSIsInBhcmxpYW1lbnQuY3kiLCJwcmVzcy5jeSIsInByby5jeSIsInRtLmN5IiwiY3oiLCJkZSIsImRqIiwiZGsiLCJkbSIsImNvbS5kbSIsIm5ldC5kbSIsIm9yZy5kbSIsImVkdS5kbSIsImdvdi5kbSIsImRvIiwiYXJ0LmRvIiwiY29tLmRv''@;'; put 'put ''IiwiZWR1LmRvIiwiZ29iLmRvIiwiZ292LmRvIiwibWlsLmRvIiwibmV0LmRvIiwib3JnLmRvIiwic2xkLmRvIiwid2ViLmRvIiwiZHoiLCJjb20uZHoiLCJvcmcuZHoiLCJuZXQuZHoiLCJnb3YuZHoiLCJlZHUuZHoiLCJhc3NvLmR6IiwicG9sLmR6IiwiYXJ0LmR6IiwiZWMiLCJjb20uZWMi''@;'; put 'put ''LCJpbmZvLmVjIiwibmV0LmVjIiwiZmluLmVjIiwiazEyLmVjIiwibWVkLmVjIiwicHJvLmVjIiwib3JnLmVjIiwiZWR1LmVjIiwiZ292LmVjIiwiZ29iLmVjIiwibWlsLmVjIiwiZWR1IiwiZWUiLCJlZHUuZWUiLCJnb3YuZWUiLCJyaWlrLmVlIiwibGliLmVlIiwibWVkLmVlIiwiY29tLmVl''@;'; put 'put ''IiwicHJpLmVlIiwiYWlwLmVlIiwib3JnLmVlIiwiZmllLmVlIiwiZWciLCJjb20uZWciLCJlZHUuZWciLCJldW4uZWciLCJnb3YuZWciLCJtaWwuZWciLCJuYW1lLmVnIiwibmV0LmVnIiwib3JnLmVnIiwic2NpLmVnIiwiKi5lciIsImVzIiwiY29tLmVzIiwibm9tLmVzIiwib3JnLmVzIiwi''@;'; put 'put ''Z29iLmVzIiwiZWR1LmVzIiwiZXQiLCJjb20uZXQiLCJnb3YuZXQiLCJvcmcuZXQiLCJlZHUuZXQiLCJiaXouZXQiLCJuYW1lLmV0IiwiaW5mby5ldCIsIm5ldC5ldCIsImV1IiwiZmkiLCJhbGFuZC5maSIsImZqIiwiYWMuZmoiLCJiaXouZmoiLCJjb20uZmoiLCJnb3YuZmoiLCJpbmZvLmZq''@;'; put 'put ''IiwibWlsLmZqIiwibmFtZS5maiIsIm5ldC5maiIsIm9yZy5maiIsInByby5maiIsIiouZmsiLCJmbSIsImZvIiwiZnIiLCJhc3NvLmZyIiwiY29tLmZyIiwiZ291di5mciIsIm5vbS5mciIsInByZC5mciIsInRtLmZyIiwiYWVyb3BvcnQuZnIiLCJhdm9jYXQuZnIiLCJhdm91ZXMuZnIiLCJj''@;'; put 'put ''Y2kuZnIiLCJjaGFtYmFncmkuZnIiLCJjaGlydXJnaWVucy1kZW50aXN0ZXMuZnIiLCJleHBlcnRzLWNvbXB0YWJsZXMuZnIiLCJnZW9tZXRyZS1leHBlcnQuZnIiLCJncmV0YS5mciIsImh1aXNzaWVyLWp1c3RpY2UuZnIiLCJtZWRlY2luLmZyIiwibm90YWlyZXMuZnIiLCJwaGFybWFjaWVu''@;'; put 'put ''LmZyIiwicG9ydC5mciIsInZldGVyaW5haXJlLmZyIiwiZ2EiLCJnYiIsImdkIiwiZ2UiLCJjb20uZ2UiLCJlZHUuZ2UiLCJnb3YuZ2UiLCJvcmcuZ2UiLCJtaWwuZ2UiLCJuZXQuZ2UiLCJwdnQuZ2UiLCJnZiIsImdnIiwiY28uZ2ciLCJuZXQuZ2ciLCJvcmcuZ2ciLCJnaCIsImNvbS5naCIs''@;'; put 'put ''ImVkdS5naCIsImdvdi5naCIsIm9yZy5naCIsIm1pbC5naCIsImdpIiwiY29tLmdpIiwibHRkLmdpIiwiZ292LmdpIiwibW9kLmdpIiwiZWR1LmdpIiwib3JnLmdpIiwiZ2wiLCJjby5nbCIsImNvbS5nbCIsImVkdS5nbCIsIm5ldC5nbCIsIm9yZy5nbCIsImdtIiwiZ24iLCJhYy5nbiIsImNv''@;'; put 'put ''bS5nbiIsImVkdS5nbiIsImdvdi5nbiIsIm9yZy5nbiIsIm5ldC5nbiIsImdvdiIsImdwIiwiY29tLmdwIiwibmV0LmdwIiwibW9iaS5ncCIsImVkdS5ncCIsIm9yZy5ncCIsImFzc28uZ3AiLCJncSIsImdyIiwiY29tLmdyIiwiZWR1LmdyIiwibmV0LmdyIiwib3JnLmdyIiwiZ292LmdyIiwi''@;'; put 'put ''Z3MiLCJndCIsImNvbS5ndCIsImVkdS5ndCIsImdvYi5ndCIsImluZC5ndCIsIm1pbC5ndCIsIm5ldC5ndCIsIm9yZy5ndCIsImd1IiwiY29tLmd1IiwiZWR1Lmd1IiwiZ292Lmd1IiwiZ3VhbS5ndSIsImluZm8uZ3UiLCJuZXQuZ3UiLCJvcmcuZ3UiLCJ3ZWIuZ3UiLCJndyIsImd5IiwiY28u''@;'; put 'put ''Z3kiLCJjb20uZ3kiLCJlZHUuZ3kiLCJnb3YuZ3kiLCJuZXQuZ3kiLCJvcmcuZ3kiLCJoayIsImNvbS5oayIsImVkdS5oayIsImdvdi5oayIsImlkdi5oayIsIm5ldC5oayIsIm9yZy5oayIsIlx1NTE2Y1x1NTNmOC5oayIsIlx1NjU1OVx1ODBiMi5oayIsIlx1NjU0ZVx1ODBiMi5oayIsIlx1''@;'; put 'put ''NjUzZlx1NWU5Yy5oayIsIlx1NTAwYlx1NGViYS5oayIsIlx1NGUyYVx1NGViYS5oayIsIlx1N2I4N1x1NGViYS5oayIsIlx1N2RiMlx1N2VkYy5oayIsIlx1N2Y1MVx1N2VkYy5oayIsIlx1N2VjNFx1N2U1NC5oayIsIlx1N2RiMlx1N2Q2MS5oayIsIlx1N2Y1MVx1N2Q2MS5oayIsIlx1N2Vj''@;'; put 'put ''NFx1N2VjNy5oayIsIlx1N2Q0NFx1N2U1NC5oayIsIlx1N2Q0NFx1N2VjNy5oayIsImhtIiwiaG4iLCJjb20uaG4iLCJlZHUuaG4iLCJvcmcuaG4iLCJuZXQuaG4iLCJtaWwuaG4iLCJnb2IuaG4iLCJociIsIml6LmhyIiwiZnJvbS5ociIsIm5hbWUuaHIiLCJjb20uaHIiLCJodCIsImNvbS5o''@;'; put 'put ''dCIsInNob3AuaHQiLCJmaXJtLmh0IiwiaW5mby5odCIsImFkdWx0Lmh0IiwibmV0Lmh0IiwicHJvLmh0Iiwib3JnLmh0IiwibWVkLmh0IiwiYXJ0Lmh0IiwiY29vcC5odCIsInBvbC5odCIsImFzc28uaHQiLCJlZHUuaHQiLCJyZWwuaHQiLCJnb3V2Lmh0IiwicGVyc28uaHQiLCJodSIsImNv''@;'; put 'put ''Lmh1IiwiaW5mby5odSIsIm9yZy5odSIsInByaXYuaHUiLCJzcG9ydC5odSIsInRtLmh1IiwiMjAwMC5odSIsImFncmFyLmh1IiwiYm9sdC5odSIsImNhc2luby5odSIsImNpdHkuaHUiLCJlcm90aWNhLmh1IiwiZXJvdGlrYS5odSIsImZpbG0uaHUiLCJmb3J1bS5odSIsImdhbWVzLmh1Iiwi''@;'; put 'put ''aG90ZWwuaHUiLCJpbmdhdGxhbi5odSIsImpvZ2Fzei5odSIsImtvbnl2ZWxvLmh1IiwibGFrYXMuaHUiLCJtZWRpYS5odSIsIm5ld3MuaHUiLCJyZWtsYW0uaHUiLCJzZXguaHUiLCJzaG9wLmh1Iiwic3VsaS5odSIsInN6ZXguaHUiLCJ0b3pzZGUuaHUiLCJ1dGF6YXMuaHUiLCJ2aWRlby5o''@;'; put 'put ''dSIsImlkIiwiYWMuaWQiLCJiaXouaWQiLCJjby5pZCIsImRlc2EuaWQiLCJnby5pZCIsIm1pbC5pZCIsIm15LmlkIiwibmV0LmlkIiwib3IuaWQiLCJwb25wZXMuaWQiLCJzY2guaWQiLCJ3ZWIuaWQiLCJpZSIsImdvdi5pZSIsImlsIiwiYWMuaWwiLCJjby5pbCIsImdvdi5pbCIsImlkZi5p''@;'; put 'put ''bCIsImsxMi5pbCIsIm11bmkuaWwiLCJuZXQuaWwiLCJvcmcuaWwiLCJpbSIsImFjLmltIiwiY28uaW0iLCJjb20uaW0iLCJsdGQuY28uaW0iLCJuZXQuaW0iLCJvcmcuaW0iLCJwbGMuY28uaW0iLCJ0dC5pbSIsInR2LmltIiwiaW4iLCJjby5pbiIsImZpcm0uaW4iLCJuZXQuaW4iLCJvcmcu''@;'; put 'put ''aW4iLCJnZW4uaW4iLCJpbmQuaW4iLCJuaWMuaW4iLCJhYy5pbiIsImVkdS5pbiIsInJlcy5pbiIsImdvdi5pbiIsIm1pbC5pbiIsImluZm8iLCJpbnQiLCJldS5pbnQiLCJpbyIsImNvbS5pbyIsImlxIiwiZ292LmlxIiwiZWR1LmlxIiwibWlsLmlxIiwiY29tLmlxIiwib3JnLmlxIiwibmV0''@;'; put 'put ''LmlxIiwiaXIiLCJhYy5pciIsImNvLmlyIiwiZ292LmlyIiwiaWQuaXIiLCJuZXQuaXIiLCJvcmcuaXIiLCJzY2guaXIiLCJcdTA2MjdcdTA2Y2NcdTA2MzFcdTA2MjdcdTA2NDYuaXIiLCJcdTA2MjdcdTA2NGFcdTA2MzFcdTA2MjdcdTA2NDYuaXIiLCJpcyIsIm5ldC5pcyIsImNvbS5pcyIs''@;'; put 'put ''ImVkdS5pcyIsImdvdi5pcyIsIm9yZy5pcyIsImludC5pcyIsIml0IiwiZ292Lml0IiwiZWR1Lml0IiwiYWJyLml0IiwiYWJydXp6by5pdCIsImFvc3RhLXZhbGxleS5pdCIsImFvc3RhdmFsbGV5Lml0IiwiYmFzLml0IiwiYmFzaWxpY2F0YS5pdCIsImNhbC5pdCIsImNhbGFicmlhLml0Iiwi''@;'; put 'put ''Y2FtLml0IiwiY2FtcGFuaWEuaXQiLCJlbWlsaWEtcm9tYWduYS5pdCIsImVtaWxpYXJvbWFnbmEuaXQiLCJlbXIuaXQiLCJmcml1bGktdi1naXVsaWEuaXQiLCJmcml1bGktdmUtZ2l1bGlhLml0IiwiZnJpdWxpLXZlZ2l1bGlhLml0IiwiZnJpdWxpLXZlbmV6aWEtZ2l1bGlhLml0IiwiZnJp''@;'; put 'put ''dWxpLXZlbmV6aWFnaXVsaWEuaXQiLCJmcml1bGktdmdpdWxpYS5pdCIsImZyaXVsaXYtZ2l1bGlhLml0IiwiZnJpdWxpdmUtZ2l1bGlhLml0IiwiZnJpdWxpdmVnaXVsaWEuaXQiLCJmcml1bGl2ZW5lemlhLWdpdWxpYS5pdCIsImZyaXVsaXZlbmV6aWFnaXVsaWEuaXQiLCJmcml1bGl2Z2l1''@;'; put 'put ''bGlhLml0IiwiZnZnLml0IiwibGF6Lml0IiwibGF6aW8uaXQiLCJsaWcuaXQiLCJsaWd1cmlhLml0IiwibG9tLml0IiwibG9tYmFyZGlhLml0IiwibG9tYmFyZHkuaXQiLCJsdWNhbmlhLml0IiwibWFyLml0IiwibWFyY2hlLml0IiwibW9sLml0IiwibW9saXNlLml0IiwicGllZG1vbnQuaXQi''@;'; put 'put ''LCJwaWVtb250ZS5pdCIsInBtbi5pdCIsInB1Zy5pdCIsInB1Z2xpYS5pdCIsInNhci5pdCIsInNhcmRlZ25hLml0Iiwic2FyZGluaWEuaXQiLCJzaWMuaXQiLCJzaWNpbGlhLml0Iiwic2ljaWx5Lml0IiwidGFhLml0IiwidG9zLml0IiwidG9zY2FuYS5pdCIsInRyZW50aW4tc3VkLXRpcm9s''@;'; put 'put ''Lml0IiwidHJlbnRpbi1zXHhmY2QtdGlyb2wuaXQiLCJ0cmVudGluLXN1ZHRpcm9sLml0IiwidHJlbnRpbi1zXHhmY2R0aXJvbC5pdCIsInRyZW50aW4tc3VlZC10aXJvbC5pdCIsInRyZW50aW4tc3VlZHRpcm9sLml0IiwidHJlbnRpbm8tYS1hZGlnZS5pdCIsInRyZW50aW5vLWFhZGlnZS5p''@;'; put 'put ''dCIsInRyZW50aW5vLWFsdG8tYWRpZ2UuaXQiLCJ0cmVudGluby1hbHRvYWRpZ2UuaXQiLCJ0cmVudGluby1zLXRpcm9sLml0IiwidHJlbnRpbm8tc3Rpcm9sLml0IiwidHJlbnRpbm8tc3VkLXRpcm9sLml0IiwidHJlbnRpbm8tc1x4ZmNkLXRpcm9sLml0IiwidHJlbnRpbm8tc3VkdGlyb2wu''@;'; put 'put ''aXQiLCJ0cmVudGluby1zXHhmY2R0aXJvbC5pdCIsInRyZW50aW5vLXN1ZWQtdGlyb2wuaXQiLCJ0cmVudGluby1zdWVkdGlyb2wuaXQiLCJ0cmVudGluby5pdCIsInRyZW50aW5vYS1hZGlnZS5pdCIsInRyZW50aW5vYWFkaWdlLml0IiwidHJlbnRpbm9hbHRvLWFkaWdlLml0IiwidHJlbnRp''@;'; put 'put ''bm9hbHRvYWRpZ2UuaXQiLCJ0cmVudGlub3MtdGlyb2wuaXQiLCJ0cmVudGlub3N0aXJvbC5pdCIsInRyZW50aW5vc3VkLXRpcm9sLml0IiwidHJlbnRpbm9zXHhmY2QtdGlyb2wuaXQiLCJ0cmVudGlub3N1ZHRpcm9sLml0IiwidHJlbnRpbm9zXHhmY2R0aXJvbC5pdCIsInRyZW50aW5vc3Vl''@;'; put 'put ''ZC10aXJvbC5pdCIsInRyZW50aW5vc3VlZHRpcm9sLml0IiwidHJlbnRpbnN1ZC10aXJvbC5pdCIsInRyZW50aW5zXHhmY2QtdGlyb2wuaXQiLCJ0cmVudGluc3VkdGlyb2wuaXQiLCJ0cmVudGluc1x4ZmNkdGlyb2wuaXQiLCJ0cmVudGluc3VlZC10aXJvbC5pdCIsInRyZW50aW5zdWVkdGly''@;'; put 'put ''b2wuaXQiLCJ0dXNjYW55Lml0IiwidW1iLml0IiwidW1icmlhLml0IiwidmFsLWQtYW9zdGEuaXQiLCJ2YWwtZGFvc3RhLml0IiwidmFsZC1hb3N0YS5pdCIsInZhbGRhb3N0YS5pdCIsInZhbGxlLWFvc3RhLml0IiwidmFsbGUtZC1hb3N0YS5pdCIsInZhbGxlLWRhb3N0YS5pdCIsInZhbGxl''@;'; put 'put ''YW9zdGEuaXQiLCJ2YWxsZWQtYW9zdGEuaXQiLCJ2YWxsZWRhb3N0YS5pdCIsInZhbGxlZS1hb3N0ZS5pdCIsInZhbGxceGU5ZS1hb3N0ZS5pdCIsInZhbGxlZS1kLWFvc3RlLml0IiwidmFsbFx4ZTllLWQtYW9zdGUuaXQiLCJ2YWxsZWVhb3N0ZS5pdCIsInZhbGxceGU5ZWFvc3RlLml0Iiwi''@;'; put 'put ''dmFsbGVlZGFvc3RlLml0IiwidmFsbFx4ZTllZGFvc3RlLml0IiwidmFvLml0IiwidmRhLml0IiwidmVuLml0IiwidmVuZXRvLml0IiwiYWcuaXQiLCJhZ3JpZ2VudG8uaXQiLCJhbC5pdCIsImFsZXNzYW5kcmlhLml0IiwiYWx0by1hZGlnZS5pdCIsImFsdG9hZGlnZS5pdCIsImFuLml0Iiwi''@;'; put 'put ''YW5jb25hLml0IiwiYW5kcmlhLWJhcmxldHRhLXRyYW5pLml0IiwiYW5kcmlhLXRyYW5pLWJhcmxldHRhLml0IiwiYW5kcmlhYmFybGV0dGF0cmFuaS5pdCIsImFuZHJpYXRyYW5pYmFybGV0dGEuaXQiLCJhby5pdCIsImFvc3RhLml0IiwiYW9zdGUuaXQiLCJhcC5pdCIsImFxLml0IiwiYXF1''@;'; put 'put ''aWxhLml0IiwiYXIuaXQiLCJhcmV6em8uaXQiLCJhc2NvbGktcGljZW5vLml0IiwiYXNjb2xpcGljZW5vLml0IiwiYXN0aS5pdCIsImF0Lml0IiwiYXYuaXQiLCJhdmVsbGluby5pdCIsImJhLml0IiwiYmFsc2FuLXN1ZHRpcm9sLml0IiwiYmFsc2FuLXNceGZjZHRpcm9sLml0IiwiYmFsc2Fu''@;'; put 'put ''LXN1ZWR0aXJvbC5pdCIsImJhbHNhbi5pdCIsImJhcmkuaXQiLCJiYXJsZXR0YS10cmFuaS1hbmRyaWEuaXQiLCJiYXJsZXR0YXRyYW5pYW5kcmlhLml0IiwiYmVsbHVuby5pdCIsImJlbmV2ZW50by5pdCIsImJlcmdhbW8uaXQiLCJiZy5pdCIsImJpLml0IiwiYmllbGxhLml0IiwiYmwuaXQi''@;'; put 'put ''LCJibi5pdCIsImJvLml0IiwiYm9sb2duYS5pdCIsImJvbHphbm8tYWx0b2FkaWdlLml0IiwiYm9semFuby5pdCIsImJvemVuLXN1ZHRpcm9sLml0IiwiYm96ZW4tc1x4ZmNkdGlyb2wuaXQiLCJib3plbi1zdWVkdGlyb2wuaXQiLCJib3plbi5pdCIsImJyLml0IiwiYnJlc2NpYS5pdCIsImJy''@;'; put 'put ''aW5kaXNpLml0IiwiYnMuaXQiLCJidC5pdCIsImJ1bHNhbi1zdWR0aXJvbC5pdCIsImJ1bHNhbi1zXHhmY2R0aXJvbC5pdCIsImJ1bHNhbi1zdWVkdGlyb2wuaXQiLCJidWxzYW4uaXQiLCJiei5pdCIsImNhLml0IiwiY2FnbGlhcmkuaXQiLCJjYWx0YW5pc3NldHRhLml0IiwiY2FtcGlkYW5v''@;'; put 'put ''LW1lZGlvLml0IiwiY2FtcGlkYW5vbWVkaW8uaXQiLCJjYW1wb2Jhc3NvLml0IiwiY2FyYm9uaWEtaWdsZXNpYXMuaXQiLCJjYXJib25pYWlnbGVzaWFzLml0IiwiY2FycmFyYS1tYXNzYS5pdCIsImNhcnJhcmFtYXNzYS5pdCIsImNhc2VydGEuaXQiLCJjYXRhbmlhLml0IiwiY2F0YW56YXJv''@;'; put 'put ''Lml0IiwiY2IuaXQiLCJjZS5pdCIsImNlc2VuYS1mb3JsaS5pdCIsImNlc2VuYS1mb3JsXHhlYy5pdCIsImNlc2VuYWZvcmxpLml0IiwiY2VzZW5hZm9ybFx4ZWMuaXQiLCJjaC5pdCIsImNoaWV0aS5pdCIsImNpLml0IiwiY2wuaXQiLCJjbi5pdCIsImNvLml0IiwiY29tby5pdCIsImNvc2Vu''@;'; put 'put ''emEuaXQiLCJjci5pdCIsImNyZW1vbmEuaXQiLCJjcm90b25lLml0IiwiY3MuaXQiLCJjdC5pdCIsImN1bmVvLml0IiwiY3ouaXQiLCJkZWxsLW9nbGlhc3RyYS5pdCIsImRlbGxvZ2xpYXN0cmEuaXQiLCJlbi5pdCIsImVubmEuaXQiLCJmYy5pdCIsImZlLml0IiwiZmVybW8uaXQiLCJmZXJy''@;'; put 'put ''YXJhLml0IiwiZmcuaXQiLCJmaS5pdCIsImZpcmVuemUuaXQiLCJmbG9yZW5jZS5pdCIsImZtLml0IiwiZm9nZ2lhLml0IiwiZm9ybGktY2VzZW5hLml0IiwiZm9ybFx4ZWMtY2VzZW5hLml0IiwiZm9ybGljZXNlbmEuaXQiLCJmb3JsXHhlY2Nlc2VuYS5pdCIsImZyLml0IiwiZnJvc2lub25l''@;'; put 'put ''Lml0IiwiZ2UuaXQiLCJnZW5vYS5pdCIsImdlbm92YS5pdCIsImdvLml0IiwiZ29yaXppYS5pdCIsImdyLml0IiwiZ3Jvc3NldG8uaXQiLCJpZ2xlc2lhcy1jYXJib25pYS5pdCIsImlnbGVzaWFzY2FyYm9uaWEuaXQiLCJpbS5pdCIsImltcGVyaWEuaXQiLCJpcy5pdCIsImlzZXJuaWEuaXQi''@;'; put 'put ''LCJrci5pdCIsImxhLXNwZXppYS5pdCIsImxhcXVpbGEuaXQiLCJsYXNwZXppYS5pdCIsImxhdGluYS5pdCIsImxjLml0IiwibGUuaXQiLCJsZWNjZS5pdCIsImxlY2NvLml0IiwibGkuaXQiLCJsaXZvcm5vLml0IiwibG8uaXQiLCJsb2RpLml0IiwibHQuaXQiLCJsdS5pdCIsImx1Y2NhLml0''@;'; put 'put ''IiwibWFjZXJhdGEuaXQiLCJtYW50b3ZhLml0IiwibWFzc2EtY2FycmFyYS5pdCIsIm1hc3NhY2FycmFyYS5pdCIsIm1hdGVyYS5pdCIsIm1iLml0IiwibWMuaXQiLCJtZS5pdCIsIm1lZGlvLWNhbXBpZGFuby5pdCIsIm1lZGlvY2FtcGlkYW5vLml0IiwibWVzc2luYS5pdCIsIm1pLml0Iiwi''@;'; put 'put ''bWlsYW4uaXQiLCJtaWxhbm8uaXQiLCJtbi5pdCIsIm1vLml0IiwibW9kZW5hLml0IiwibW9uemEtYnJpYW56YS5pdCIsIm1vbnphLWUtZGVsbGEtYnJpYW56YS5pdCIsIm1vbnphLml0IiwibW9uemFicmlhbnphLml0IiwibW9uemFlYnJpYW56YS5pdCIsIm1vbnphZWRlbGxhYnJpYW56YS5p''@;'; put 'put ''dCIsIm1zLml0IiwibXQuaXQiLCJuYS5pdCIsIm5hcGxlcy5pdCIsIm5hcG9saS5pdCIsIm5vLml0Iiwibm92YXJhLml0IiwibnUuaXQiLCJudW9yby5pdCIsIm9nLml0Iiwib2dsaWFzdHJhLml0Iiwib2xiaWEtdGVtcGlvLml0Iiwib2xiaWF0ZW1waW8uaXQiLCJvci5pdCIsIm9yaXN0YW5v''@;'; put 'put ''Lml0Iiwib3QuaXQiLCJwYS5pdCIsInBhZG92YS5pdCIsInBhZHVhLml0IiwicGFsZXJtby5pdCIsInBhcm1hLml0IiwicGF2aWEuaXQiLCJwYy5pdCIsInBkLml0IiwicGUuaXQiLCJwZXJ1Z2lhLml0IiwicGVzYXJvLXVyYmluby5pdCIsInBlc2Fyb3VyYmluby5pdCIsInBlc2NhcmEuaXQi''@;'; put 'put ''LCJwZy5pdCIsInBpLml0IiwicGlhY2VuemEuaXQiLCJwaXNhLml0IiwicGlzdG9pYS5pdCIsInBuLml0IiwicG8uaXQiLCJwb3JkZW5vbmUuaXQiLCJwb3RlbnphLml0IiwicHIuaXQiLCJwcmF0by5pdCIsInB0Lml0IiwicHUuaXQiLCJwdi5pdCIsInB6Lml0IiwicmEuaXQiLCJyYWd1c2Eu''@;'; put 'put ''aXQiLCJyYXZlbm5hLml0IiwicmMuaXQiLCJyZS5pdCIsInJlZ2dpby1jYWxhYnJpYS5pdCIsInJlZ2dpby1lbWlsaWEuaXQiLCJyZWdnaW9jYWxhYnJpYS5pdCIsInJlZ2dpb2VtaWxpYS5pdCIsInJnLml0IiwicmkuaXQiLCJyaWV0aS5pdCIsInJpbWluaS5pdCIsInJtLml0Iiwicm4uaXQi''@;'; put 'put ''LCJyby5pdCIsInJvbWEuaXQiLCJyb21lLml0Iiwicm92aWdvLml0Iiwic2EuaXQiLCJzYWxlcm5vLml0Iiwic2Fzc2FyaS5pdCIsInNhdm9uYS5pdCIsInNpLml0Iiwic2llbmEuaXQiLCJzaXJhY3VzYS5pdCIsInNvLml0Iiwic29uZHJpby5pdCIsInNwLml0Iiwic3IuaXQiLCJzcy5pdCIs''@;'; put 'put ''InN1ZWR0aXJvbC5pdCIsInNceGZjZHRpcm9sLml0Iiwic3YuaXQiLCJ0YS5pdCIsInRhcmFudG8uaXQiLCJ0ZS5pdCIsInRlbXBpby1vbGJpYS5pdCIsInRlbXBpb29sYmlhLml0IiwidGVyYW1vLml0IiwidGVybmkuaXQiLCJ0bi5pdCIsInRvLml0IiwidG9yaW5vLml0IiwidHAuaXQiLCJ0''@;'; put 'put ''ci5pdCIsInRyYW5pLWFuZHJpYS1iYXJsZXR0YS5pdCIsInRyYW5pLWJhcmxldHRhLWFuZHJpYS5pdCIsInRyYW5pYW5kcmlhYmFybGV0dGEuaXQiLCJ0cmFuaWJhcmxldHRhYW5kcmlhLml0IiwidHJhcGFuaS5pdCIsInRyZW50by5pdCIsInRyZXZpc28uaXQiLCJ0cmllc3RlLml0IiwidHMu''@;'; put 'put ''aXQiLCJ0dXJpbi5pdCIsInR2Lml0IiwidWQuaXQiLCJ1ZGluZS5pdCIsInVyYmluby1wZXNhcm8uaXQiLCJ1cmJpbm9wZXNhcm8uaXQiLCJ2YS5pdCIsInZhcmVzZS5pdCIsInZiLml0IiwidmMuaXQiLCJ2ZS5pdCIsInZlbmV6aWEuaXQiLCJ2ZW5pY2UuaXQiLCJ2ZXJiYW5pYS5pdCIsInZl''@;'; put 'put ''cmNlbGxpLml0IiwidmVyb25hLml0IiwidmkuaXQiLCJ2aWJvLXZhbGVudGlhLml0Iiwidmlib3ZhbGVudGlhLml0IiwidmljZW56YS5pdCIsInZpdGVyYm8uaXQiLCJ2ci5pdCIsInZzLml0IiwidnQuaXQiLCJ2di5pdCIsImplIiwiY28uamUiLCJuZXQuamUiLCJvcmcuamUiLCIqLmptIiwi''@;'; put 'put ''am8iLCJjb20uam8iLCJvcmcuam8iLCJuZXQuam8iLCJlZHUuam8iLCJzY2guam8iLCJnb3Yuam8iLCJtaWwuam8iLCJuYW1lLmpvIiwiam9icyIsImpwIiwiYWMuanAiLCJhZC5qcCIsImNvLmpwIiwiZWQuanAiLCJnby5qcCIsImdyLmpwIiwibGcuanAiLCJuZS5qcCIsIm9yLmpwIiwiYWlj''@;'; put 'put ''aGkuanAiLCJha2l0YS5qcCIsImFvbW9yaS5qcCIsImNoaWJhLmpwIiwiZWhpbWUuanAiLCJmdWt1aS5qcCIsImZ1a3Vva2EuanAiLCJmdWt1c2hpbWEuanAiLCJnaWZ1LmpwIiwiZ3VubWEuanAiLCJoaXJvc2hpbWEuanAiLCJob2trYWlkby5qcCIsImh5b2dvLmpwIiwiaWJhcmFraS5qcCIs''@;'; put 'put ''ImlzaGlrYXdhLmpwIiwiaXdhdGUuanAiLCJrYWdhd2EuanAiLCJrYWdvc2hpbWEuanAiLCJrYW5hZ2F3YS5qcCIsImtvY2hpLmpwIiwia3VtYW1vdG8uanAiLCJreW90by5qcCIsIm1pZS5qcCIsIm1peWFnaS5qcCIsIm1peWF6YWtpLmpwIiwibmFnYW5vLmpwIiwibmFnYXNha2kuanAiLCJu''@;'; put 'put ''YXJhLmpwIiwibmlpZ2F0YS5qcCIsIm9pdGEuanAiLCJva2F5YW1hLmpwIiwib2tpbmF3YS5qcCIsIm9zYWthLmpwIiwic2FnYS5qcCIsInNhaXRhbWEuanAiLCJzaGlnYS5qcCIsInNoaW1hbmUuanAiLCJzaGl6dW9rYS5qcCIsInRvY2hpZ2kuanAiLCJ0b2t1c2hpbWEuanAiLCJ0b2t5by5q''@;'; put 'put ''cCIsInRvdHRvcmkuanAiLCJ0b3lhbWEuanAiLCJ3YWtheWFtYS5qcCIsInlhbWFnYXRhLmpwIiwieWFtYWd1Y2hpLmpwIiwieWFtYW5hc2hpLmpwIiwiXHU2ODAzXHU2NzI4LmpwIiwiXHU2MTFiXHU3N2U1LmpwIiwiXHU2MTFiXHU1YTliLmpwIiwiXHU1MTc1XHU1ZWFiLmpwIiwiXHU3MThh''@;'; put 'put ''XHU2NzJjLmpwIiwiXHU4MzI4XHU1N2NlLmpwIiwiXHU1MzE3XHU2ZDc3XHU5MDUzLmpwIiwiXHU1MzQzXHU4NDQ5LmpwIiwiXHU1NDhjXHU2YjRjXHU1YzcxLmpwIiwiXHU5NTc3XHU1ZDBlLmpwIiwiXHU5NTc3XHU5MWNlLmpwIiwiXHU2NWIwXHU2ZjVmLmpwIiwiXHU5NzUyXHU2OGVlLmpw''@;'; put 'put ''IiwiXHU5NzU5XHU1Y2ExLmpwIiwiXHU2NzcxXHU0ZWFjLmpwIiwiXHU3N2YzXHU1ZGRkLmpwIiwiXHU1N2ZjXHU3Mzg5LmpwIiwiXHU0ZTA5XHU5MWNkLmpwIiwiXHU0ZWFjXHU5MGZkLmpwIiwiXHU0ZjUwXHU4Y2MwLmpwIiwiXHU1OTI3XHU1MjA2LmpwIiwiXHU1OTI3XHU5NjJhLmpwIiwi''@;'; put 'put ''XHU1OTQ4XHU4MjZmLmpwIiwiXHU1YmFlXHU1N2NlLmpwIiwiXHU1YmFlXHU1ZDBlLmpwIiwiXHU1YmNjXHU1YzcxLmpwIiwiXHU1YzcxXHU1M2UzLmpwIiwiXHU1YzcxXHU1ZjYyLmpwIiwiXHU1YzcxXHU2OGE4LmpwIiwiXHU1Y2E5XHU2MjRiLmpwIiwiXHU1YzkwXHU5NjFjLmpwIiwiXHU1''@;'; put 'put ''Y2ExXHU1YzcxLmpwIiwiXHU1Y2Y2XHU2ODM5LmpwIiwiXHU1ZTgzXHU1Y2Y2LmpwIiwiXHU1ZmIzXHU1Y2Y2LmpwIiwiXHU2Yzk2XHU3ZTA0LmpwIiwiXHU2ZWNiXHU4Y2MwLmpwIiwiXHU3OTVlXHU1OTQ4XHU1ZGRkLmpwIiwiXHU3OThmXHU0ZTk1LmpwIiwiXHU3OThmXHU1Y2ExLmpwIiwi''@;'; put 'put ''XHU3OThmXHU1Y2Y2LmpwIiwiXHU3OWNiXHU3NTMwLmpwIiwiXHU3ZmE0XHU5OWFjLmpwIiwiXHU5OTk5XHU1ZGRkLmpwIiwiXHU5YWQ4XHU3N2U1LmpwIiwiXHU5Y2U1XHU1M2Q2LmpwIiwiXHU5ZTdmXHU1MTUwXHU1Y2Y2LmpwIiwiKi5rYXdhc2FraS5qcCIsIioua2l0YWt5dXNodS5qcCIs''@;'; put 'put ''Iioua29iZS5qcCIsIioubmFnb3lhLmpwIiwiKi5zYXBwb3JvLmpwIiwiKi5zZW5kYWkuanAiLCIqLnlva29oYW1hLmpwIiwiIWNpdHkua2F3YXNha2kuanAiLCIhY2l0eS5raXRha3l1c2h1LmpwIiwiIWNpdHkua29iZS5qcCIsIiFjaXR5Lm5hZ295YS5qcCIsIiFjaXR5LnNhcHBvcm8uanAi''@;'; put 'put ''LCIhY2l0eS5zZW5kYWkuanAiLCIhY2l0eS55b2tvaGFtYS5qcCIsImFpc2FpLmFpY2hpLmpwIiwiYW1hLmFpY2hpLmpwIiwiYW5qby5haWNoaS5qcCIsImFzdWtlLmFpY2hpLmpwIiwiY2hpcnl1LmFpY2hpLmpwIiwiY2hpdGEuYWljaGkuanAiLCJmdXNvLmFpY2hpLmpwIiwiZ2FtYWdvcmku''@;'; put 'put ''YWljaGkuanAiLCJoYW5kYS5haWNoaS5qcCIsImhhenUuYWljaGkuanAiLCJoZWtpbmFuLmFpY2hpLmpwIiwiaGlnYXNoaXVyYS5haWNoaS5qcCIsImljaGlub21peWEuYWljaGkuanAiLCJpbmF6YXdhLmFpY2hpLmpwIiwiaW51eWFtYS5haWNoaS5qcCIsImlzc2hpa2kuYWljaGkuanAiLCJp''@;'; put 'put ''d2FrdXJhLmFpY2hpLmpwIiwia2FuaWUuYWljaGkuanAiLCJrYXJpeWEuYWljaGkuanAiLCJrYXN1Z2FpLmFpY2hpLmpwIiwia2lyYS5haWNoaS5qcCIsImtpeW9zdS5haWNoaS5qcCIsImtvbWFraS5haWNoaS5qcCIsImtvbmFuLmFpY2hpLmpwIiwia290YS5haWNoaS5qcCIsIm1paGFtYS5h''@;'; put 'put ''aWNoaS5qcCIsIm1peW9zaGkuYWljaGkuanAiLCJuaXNoaW8uYWljaGkuanAiLCJuaXNzaGluLmFpY2hpLmpwIiwib2J1LmFpY2hpLmpwIiwib2d1Y2hpLmFpY2hpLmpwIiwib2hhcnUuYWljaGkuanAiLCJva2F6YWtpLmFpY2hpLmpwIiwib3dhcmlhc2FoaS5haWNoaS5qcCIsInNldG8uYWlj''@;'; put 'put ''aGkuanAiLCJzaGlrYXRzdS5haWNoaS5qcCIsInNoaW5zaGlyby5haWNoaS5qcCIsInNoaXRhcmEuYWljaGkuanAiLCJ0YWhhcmEuYWljaGkuanAiLCJ0YWthaGFtYS5haWNoaS5qcCIsInRvYmlzaGltYS5haWNoaS5qcCIsInRvZWkuYWljaGkuanAiLCJ0b2dvLmFpY2hpLmpwIiwidG9rYWku''@;'; put 'put ''YWljaGkuanAiLCJ0b2tvbmFtZS5haWNoaS5qcCIsInRveW9ha2UuYWljaGkuanAiLCJ0b3lvaGFzaGkuYWljaGkuanAiLCJ0b3lva2F3YS5haWNoaS5qcCIsInRveW9uZS5haWNoaS5qcCIsInRveW90YS5haWNoaS5qcCIsInRzdXNoaW1hLmFpY2hpLmpwIiwieWF0b21pLmFpY2hpLmpwIiwi''@;'; put 'put ''YWtpdGEuYWtpdGEuanAiLCJkYWlzZW4uYWtpdGEuanAiLCJmdWppc2F0by5ha2l0YS5qcCIsImdvam9tZS5ha2l0YS5qcCIsImhhY2hpcm9nYXRhLmFraXRhLmpwIiwiaGFwcG91LmFraXRhLmpwIiwiaGlnYXNoaW5hcnVzZS5ha2l0YS5qcCIsImhvbmpvLmFraXRhLmpwIiwiaG9uanlvLmFr''@;'; put 'put ''aXRhLmpwIiwiaWthd2EuYWtpdGEuanAiLCJrYW1pa29hbmkuYWtpdGEuanAiLCJrYW1pb2thLmFraXRhLmpwIiwia2F0YWdhbWkuYWtpdGEuanAiLCJrYXp1bm8uYWtpdGEuanAiLCJraXRhYWtpdGEuYWtpdGEuanAiLCJrb3Nha2EuYWtpdGEuanAiLCJreW93YS5ha2l0YS5qcCIsIm1pc2F0''@;'; put 'put ''by5ha2l0YS5qcCIsIm1pdGFuZS5ha2l0YS5qcCIsIm1vcml5b3NoaS5ha2l0YS5qcCIsIm5pa2Foby5ha2l0YS5qcCIsIm5vc2hpcm8uYWtpdGEuanAiLCJvZGF0ZS5ha2l0YS5qcCIsIm9nYS5ha2l0YS5qcCIsIm9nYXRhLmFraXRhLmpwIiwic2VtYm9rdS5ha2l0YS5qcCIsInlva290ZS5h''@;'; put 'put ''a2l0YS5qcCIsInl1cmlob25qby5ha2l0YS5qcCIsImFvbW9yaS5hb21vcmkuanAiLCJnb25vaGUuYW9tb3JpLmpwIiwiaGFjaGlub2hlLmFvbW9yaS5qcCIsImhhc2hpa2FtaS5hb21vcmkuanAiLCJoaXJhbmFpLmFvbW9yaS5qcCIsImhpcm9zYWtpLmFvbW9yaS5qcCIsIml0YXlhbmFnaS5h''@;'; put 'put ''b21vcmkuanAiLCJrdXJvaXNoaS5hb21vcmkuanAiLCJtaXNhd2EuYW9tb3JpLmpwIiwibXV0c3UuYW9tb3JpLmpwIiwibmFrYWRvbWFyaS5hb21vcmkuanAiLCJub2hlamkuYW9tb3JpLmpwIiwib2lyYXNlLmFvbW9yaS5qcCIsIm93YW5pLmFvbW9yaS5qcCIsInJva3Vub2hlLmFvbW9yaS5q''@;'; put 'put ''cCIsInNhbm5vaGUuYW9tb3JpLmpwIiwic2hpY2hpbm9oZS5hb21vcmkuanAiLCJzaGluZ28uYW9tb3JpLmpwIiwidGFra28uYW9tb3JpLmpwIiwidG93YWRhLmFvbW9yaS5qcCIsInRzdWdhcnUuYW9tb3JpLmpwIiwidHN1cnV0YS5hb21vcmkuanAiLCJhYmlrby5jaGliYS5qcCIsImFzYWhp''@;'; put 'put ''LmNoaWJhLmpwIiwiY2hvbmFuLmNoaWJhLmpwIiwiY2hvc2VpLmNoaWJhLmpwIiwiY2hvc2hpLmNoaWJhLmpwIiwiY2h1by5jaGliYS5qcCIsImZ1bmFiYXNoaS5jaGliYS5qcCIsImZ1dHRzdS5jaGliYS5qcCIsImhhbmFtaWdhd2EuY2hpYmEuanAiLCJpY2hpaGFyYS5jaGliYS5qcCIsImlj''@;'; put 'put ''aGlrYXdhLmNoaWJhLmpwIiwiaWNoaW5vbWl5YS5jaGliYS5qcCIsImluemFpLmNoaWJhLmpwIiwiaXN1bWkuY2hpYmEuanAiLCJrYW1hZ2F5YS5jaGliYS5qcCIsImthbW9nYXdhLmNoaWJhLmpwIiwia2FzaGl3YS5jaGliYS5qcCIsImthdG9yaS5jaGliYS5qcCIsImthdHN1dXJhLmNoaWJh''@;'; put 'put ''LmpwIiwia2ltaXRzdS5jaGliYS5qcCIsImtpc2FyYXp1LmNoaWJhLmpwIiwia296YWtpLmNoaWJhLmpwIiwia3VqdWt1cmkuY2hpYmEuanAiLCJreW9uYW4uY2hpYmEuanAiLCJtYXRzdWRvLmNoaWJhLmpwIiwibWlkb3JpLmNoaWJhLmpwIiwibWloYW1hLmNoaWJhLmpwIiwibWluYW1pYm9z''@;'; put 'put ''by5jaGliYS5qcCIsIm1vYmFyYS5jaGliYS5qcCIsIm11dHN1emF3YS5jaGliYS5qcCIsIm5hZ2FyYS5jaGliYS5qcCIsIm5hZ2FyZXlhbWEuY2hpYmEuanAiLCJuYXJhc2hpbm8uY2hpYmEuanAiLCJuYXJpdGEuY2hpYmEuanAiLCJub2RhLmNoaWJhLmpwIiwib2FtaXNoaXJhc2F0by5jaGli''@;'; put 'put ''YS5qcCIsIm9taWdhd2EuY2hpYmEuanAiLCJvbmp1a3UuY2hpYmEuanAiLCJvdGFraS5jaGliYS5qcCIsInNha2FlLmNoaWJhLmpwIiwic2FrdXJhLmNoaWJhLmpwIiwic2hpbW9mdXNhLmNoaWJhLmpwIiwic2hpcmFrby5jaGliYS5qcCIsInNoaXJvaS5jaGliYS5qcCIsInNoaXN1aS5jaGli''@;'; put 'put ''YS5qcCIsInNvZGVnYXVyYS5jaGliYS5qcCIsInNvc2EuY2hpYmEuanAiLCJ0YWtvLmNoaWJhLmpwIiwidGF0ZXlhbWEuY2hpYmEuanAiLCJ0b2dhbmUuY2hpYmEuanAiLCJ0b2hub3Noby5jaGliYS5qcCIsInRvbWlzYXRvLmNoaWJhLmpwIiwidXJheWFzdS5jaGliYS5qcCIsInlhY2hpbWF0''@;'; put 'put ''YS5jaGliYS5qcCIsInlhY2hpeW8uY2hpYmEuanAiLCJ5b2thaWNoaWJhLmNoaWJhLmpwIiwieW9rb3NoaWJhaGlrYXJpLmNoaWJhLmpwIiwieW90c3VrYWlkby5jaGliYS5qcCIsImFpbmFuLmVoaW1lLmpwIiwiaG9uYWkuZWhpbWUuanAiLCJpa2F0YS5laGltZS5qcCIsImltYWJhcmkuZWhp''@;'; put 'put ''bWUuanAiLCJpeW8uZWhpbWUuanAiLCJrYW1pamltYS5laGltZS5qcCIsImtpaG9rdS5laGltZS5qcCIsImt1bWFrb2dlbi5laGltZS5qcCIsIm1hc2FraS5laGltZS5qcCIsIm1hdHN1bm8uZWhpbWUuanAiLCJtYXRzdXlhbWEuZWhpbWUuanAiLCJuYW1pa2F0YS5laGltZS5qcCIsIm5paWhh''@;'; put 'put ''bWEuZWhpbWUuanAiLCJvenUuZWhpbWUuanAiLCJzYWlqby5laGltZS5qcCIsInNlaXlvLmVoaW1lLmpwIiwic2hpa29rdWNodW8uZWhpbWUuanAiLCJ0b2JlLmVoaW1lLmpwIiwidG9vbi5laGltZS5qcCIsInVjaGlrby5laGltZS5qcCIsInV3YWppbWEuZWhpbWUuanAiLCJ5YXdhdGFoYW1h''@;'; put 'put ''LmVoaW1lLmpwIiwiZWNoaXplbi5mdWt1aS5qcCIsImVpaGVpamkuZnVrdWkuanAiLCJmdWt1aS5mdWt1aS5qcCIsImlrZWRhLmZ1a3VpLmpwIiwia2F0c3V5YW1hLmZ1a3VpLmpwIiwibWloYW1hLmZ1a3VpLmpwIiwibWluYW1pZWNoaXplbi5mdWt1aS5qcCIsIm9iYW1hLmZ1a3VpLmpwIiwi''@;'; put 'put ''b2hpLmZ1a3VpLmpwIiwib25vLmZ1a3VpLmpwIiwic2FiYWUuZnVrdWkuanAiLCJzYWthaS5mdWt1aS5qcCIsInRha2FoYW1hLmZ1a3VpLmpwIiwidHN1cnVnYS5mdWt1aS5qcCIsIndha2FzYS5mdWt1aS5qcCIsImFzaGl5YS5mdWt1b2thLmpwIiwiYnV6ZW4uZnVrdW9rYS5qcCIsImNoaWt1''@;'; put 'put ''Z28uZnVrdW9rYS5qcCIsImNoaWt1aG8uZnVrdW9rYS5qcCIsImNoaWt1am8uZnVrdW9rYS5qcCIsImNoaWt1c2hpbm8uZnVrdW9rYS5qcCIsImNoaWt1emVuLmZ1a3Vva2EuanAiLCJjaHVvLmZ1a3Vva2EuanAiLCJkYXphaWZ1LmZ1a3Vva2EuanAiLCJmdWt1Y2hpLmZ1a3Vva2EuanAiLCJo''@;'; put 'put ''YWthdGEuZnVrdW9rYS5qcCIsImhpZ2FzaGkuZnVrdW9rYS5qcCIsImhpcm9rYXdhLmZ1a3Vva2EuanAiLCJoaXNheWFtYS5mdWt1b2thLmpwIiwiaWl6dWthLmZ1a3Vva2EuanAiLCJpbmF0c3VraS5mdWt1b2thLmpwIiwia2Foby5mdWt1b2thLmpwIiwia2FzdWdhLmZ1a3Vva2EuanAiLCJr''@;'; put 'put ''YXN1eWEuZnVrdW9rYS5qcCIsImthd2FyYS5mdWt1b2thLmpwIiwia2Vpc2VuLmZ1a3Vva2EuanAiLCJrb2dhLmZ1a3Vva2EuanAiLCJrdXJhdGUuZnVrdW9rYS5qcCIsImt1cm9naS5mdWt1b2thLmpwIiwia3VydW1lLmZ1a3Vva2EuanAiLCJtaW5hbWkuZnVrdW9rYS5qcCIsIm1peWFrby5m''@;'; put 'put ''dWt1b2thLmpwIiwibWl5YW1hLmZ1a3Vva2EuanAiLCJtaXlhd2FrYS5mdWt1b2thLmpwIiwibWl6dW1ha2kuZnVrdW9rYS5qcCIsIm11bmFrYXRhLmZ1a3Vva2EuanAiLCJuYWthZ2F3YS5mdWt1b2thLmpwIiwibmFrYW1hLmZ1a3Vva2EuanAiLCJuaXNoaS5mdWt1b2thLmpwIiwibm9nYXRh''@;'; put 'put ''LmZ1a3Vva2EuanAiLCJvZ29yaS5mdWt1b2thLmpwIiwib2thZ2FraS5mdWt1b2thLmpwIiwib2thd2EuZnVrdW9rYS5qcCIsIm9raS5mdWt1b2thLmpwIiwib211dGEuZnVrdW9rYS5qcCIsIm9uZ2EuZnVrdW9rYS5qcCIsIm9ub2pvLmZ1a3Vva2EuanAiLCJvdG8uZnVrdW9rYS5qcCIsInNh''@;'; put 'put ''aWdhd2EuZnVrdW9rYS5qcCIsInNhc2FndXJpLmZ1a3Vva2EuanAiLCJzaGluZ3UuZnVrdW9rYS5qcCIsInNoaW55b3NoaXRvbWkuZnVrdW9rYS5qcCIsInNob25haS5mdWt1b2thLmpwIiwic29lZGEuZnVrdW9rYS5qcCIsInN1ZS5mdWt1b2thLmpwIiwidGFjaGlhcmFpLmZ1a3Vva2EuanAi''@;'; put 'put ''LCJ0YWdhd2EuZnVrdW9rYS5qcCIsInRha2F0YS5mdWt1b2thLmpwIiwidG9oby5mdWt1b2thLmpwIiwidG95b3RzdS5mdWt1b2thLmpwIiwidHN1aWtpLmZ1a3Vva2EuanAiLCJ1a2loYS5mdWt1b2thLmpwIiwidW1pLmZ1a3Vva2EuanAiLCJ1c3VpLmZ1a3Vva2EuanAiLCJ5YW1hZGEuZnVr''@;'; put 'put ''dW9rYS5qcCIsInlhbWUuZnVrdW9rYS5qcCIsInlhbmFnYXdhLmZ1a3Vva2EuanAiLCJ5dWt1aGFzaGkuZnVrdW9rYS5qcCIsImFpenViYW5nZS5mdWt1c2hpbWEuanAiLCJhaXp1bWlzYXRvLmZ1a3VzaGltYS5qcCIsImFpenV3YWthbWF0c3UuZnVrdXNoaW1hLmpwIiwiYXNha2F3YS5mdWt1''@;'; put 'put ''c2hpbWEuanAiLCJiYW5kYWkuZnVrdXNoaW1hLmpwIiwiZGF0ZS5mdWt1c2hpbWEuanAiLCJmdWt1c2hpbWEuZnVrdXNoaW1hLmpwIiwiZnVydWRvbm8uZnVrdXNoaW1hLmpwIiwiZnV0YWJhLmZ1a3VzaGltYS5qcCIsImhhbmF3YS5mdWt1c2hpbWEuanAiLCJoaWdhc2hpLmZ1a3VzaGltYS5q''@;'; put 'put ''cCIsImhpcmF0YS5mdWt1c2hpbWEuanAiLCJoaXJvbm8uZnVrdXNoaW1hLmpwIiwiaWl0YXRlLmZ1a3VzaGltYS5qcCIsImluYXdhc2hpcm8uZnVrdXNoaW1hLmpwIiwiaXNoaWthd2EuZnVrdXNoaW1hLmpwIiwiaXdha2kuZnVrdXNoaW1hLmpwIiwiaXp1bWl6YWtpLmZ1a3VzaGltYS5qcCIs''@;'; put 'put ''ImthZ2FtaWlzaGkuZnVrdXNoaW1hLmpwIiwia2FuZXlhbWEuZnVrdXNoaW1hLmpwIiwia2F3YW1hdGEuZnVrdXNoaW1hLmpwIiwia2l0YWthdGEuZnVrdXNoaW1hLmpwIiwia2l0YXNoaW9iYXJhLmZ1a3VzaGltYS5qcCIsImtvb3JpLmZ1a3VzaGltYS5qcCIsImtvcml5YW1hLmZ1a3VzaGlt''@;'; put 'put ''YS5qcCIsImt1bmltaS5mdWt1c2hpbWEuanAiLCJtaWhhcnUuZnVrdXNoaW1hLmpwIiwibWlzaGltYS5mdWt1c2hpbWEuanAiLCJuYW1pZS5mdWt1c2hpbWEuanAiLCJuYW5nby5mdWt1c2hpbWEuanAiLCJuaXNoaWFpenUuZnVrdXNoaW1hLmpwIiwibmlzaGlnby5mdWt1c2hpbWEuanAiLCJv''@;'; put 'put ''a3VtYS5mdWt1c2hpbWEuanAiLCJvbW90ZWdvLmZ1a3VzaGltYS5qcCIsIm9uby5mdWt1c2hpbWEuanAiLCJvdGFtYS5mdWt1c2hpbWEuanAiLCJzYW1lZ2F3YS5mdWt1c2hpbWEuanAiLCJzaGltb2dvLmZ1a3VzaGltYS5qcCIsInNoaXJha2F3YS5mdWt1c2hpbWEuanAiLCJzaG93YS5mdWt1''@;'; put 'put ''c2hpbWEuanAiLCJzb21hLmZ1a3VzaGltYS5qcCIsInN1a2FnYXdhLmZ1a3VzaGltYS5qcCIsInRhaXNoaW4uZnVrdXNoaW1hLmpwIiwidGFtYWthd2EuZnVrdXNoaW1hLmpwIiwidGFuYWd1cmEuZnVrdXNoaW1hLmpwIiwidGVuZWkuZnVrdXNoaW1hLmpwIiwieWFidWtpLmZ1a3VzaGltYS5q''@;'; put 'put ''cCIsInlhbWF0by5mdWt1c2hpbWEuanAiLCJ5YW1hdHN1cmkuZnVrdXNoaW1hLmpwIiwieWFuYWl6dS5mdWt1c2hpbWEuanAiLCJ5dWdhd2EuZnVrdXNoaW1hLmpwIiwiYW5wYWNoaS5naWZ1LmpwIiwiZW5hLmdpZnUuanAiLCJnaWZ1LmdpZnUuanAiLCJnaW5hbi5naWZ1LmpwIiwiZ29kby5n''@;'; put 'put ''aWZ1LmpwIiwiZ3Vqby5naWZ1LmpwIiwiaGFzaGltYS5naWZ1LmpwIiwiaGljaGlzby5naWZ1LmpwIiwiaGlkYS5naWZ1LmpwIiwiaGlnYXNoaXNoaXJha2F3YS5naWZ1LmpwIiwiaWJpZ2F3YS5naWZ1LmpwIiwiaWtlZGEuZ2lmdS5qcCIsImtha2FtaWdhaGFyYS5naWZ1LmpwIiwia2FuaS5n''@;'; put 'put ''aWZ1LmpwIiwia2FzYWhhcmEuZ2lmdS5qcCIsImthc2FtYXRzdS5naWZ1LmpwIiwia2F3YXVlLmdpZnUuanAiLCJraXRhZ2F0YS5naWZ1LmpwIiwibWluby5naWZ1LmpwIiwibWlub2thbW8uZ2lmdS5qcCIsIm1pdGFrZS5naWZ1LmpwIiwibWl6dW5hbWkuZ2lmdS5qcCIsIm1vdG9zdS5naWZ1''@;'; put 'put ''LmpwIiwibmFrYXRzdWdhd2EuZ2lmdS5qcCIsIm9nYWtpLmdpZnUuanAiLCJzYWthaG9naS5naWZ1LmpwIiwic2VraS5naWZ1LmpwIiwic2VraWdhaGFyYS5naWZ1LmpwIiwic2hpcmFrYXdhLmdpZnUuanAiLCJ0YWppbWkuZ2lmdS5qcCIsInRha2F5YW1hLmdpZnUuanAiLCJ0YXJ1aS5naWZ1''@;'; put 'put ''LmpwIiwidG9raS5naWZ1LmpwIiwidG9taWthLmdpZnUuanAiLCJ3YW5vdWNoaS5naWZ1LmpwIiwieWFtYWdhdGEuZ2lmdS5qcCIsInlhb3RzdS5naWZ1LmpwIiwieW9yby5naWZ1LmpwIiwiYW5uYWthLmd1bm1hLmpwIiwiY2hpeW9kYS5ndW5tYS5qcCIsImZ1amlva2EuZ3VubWEuanAiLCJo''@;'; put 'put ''aWdhc2hpYWdhdHN1bWEuZ3VubWEuanAiLCJpc2VzYWtpLmd1bm1hLmpwIiwiaXRha3VyYS5ndW5tYS5qcCIsImthbm5hLmd1bm1hLmpwIiwia2FucmEuZ3VubWEuanAiLCJrYXRhc2hpbmEuZ3VubWEuanAiLCJrYXdhYmEuZ3VubWEuanAiLCJraXJ5dS5ndW5tYS5qcCIsImt1c2F0c3UuZ3Vu''@;'; put 'put ''bWEuanAiLCJtYWViYXNoaS5ndW5tYS5qcCIsIm1laXdhLmd1bm1hLmpwIiwibWlkb3JpLmd1bm1hLmpwIiwibWluYWthbWkuZ3VubWEuanAiLCJuYWdhbm9oYXJhLmd1bm1hLmpwIiwibmFrYW5vam8uZ3VubWEuanAiLCJuYW5tb2t1Lmd1bm1hLmpwIiwibnVtYXRhLmd1bm1hLmpwIiwib2l6''@;'; put 'put ''dW1pLmd1bm1hLmpwIiwib3JhLmd1bm1hLmpwIiwib3RhLmd1bm1hLmpwIiwic2hpYnVrYXdhLmd1bm1hLmpwIiwic2hpbW9uaXRhLmd1bm1hLmpwIiwic2hpbnRvLmd1bm1hLmpwIiwic2hvd2EuZ3VubWEuanAiLCJ0YWthc2FraS5ndW5tYS5qcCIsInRha2F5YW1hLmd1bm1hLmpwIiwidGFt''@;'; put 'put ''YW11cmEuZ3VubWEuanAiLCJ0YXRlYmF5YXNoaS5ndW5tYS5qcCIsInRvbWlva2EuZ3VubWEuanAiLCJ0c3VraXlvbm8uZ3VubWEuanAiLCJ0c3VtYWdvaS5ndW5tYS5qcCIsInVlbm8uZ3VubWEuanAiLCJ5b3NoaW9rYS5ndW5tYS5qcCIsImFzYW1pbmFtaS5oaXJvc2hpbWEuanAiLCJkYWl3''@;'; put 'put ''YS5oaXJvc2hpbWEuanAiLCJldGFqaW1hLmhpcm9zaGltYS5qcCIsImZ1Y2h1Lmhpcm9zaGltYS5qcCIsImZ1a3V5YW1hLmhpcm9zaGltYS5qcCIsImhhdHN1a2FpY2hpLmhpcm9zaGltYS5qcCIsImhpZ2FzaGloaXJvc2hpbWEuaGlyb3NoaW1hLmpwIiwiaG9uZ28uaGlyb3NoaW1hLmpwIiwi''@;'; put 'put ''amluc2VraWtvZ2VuLmhpcm9zaGltYS5qcCIsImthaXRhLmhpcm9zaGltYS5qcCIsImt1aS5oaXJvc2hpbWEuanAiLCJrdW1hbm8uaGlyb3NoaW1hLmpwIiwia3VyZS5oaXJvc2hpbWEuanAiLCJtaWhhcmEuaGlyb3NoaW1hLmpwIiwibWl5b3NoaS5oaXJvc2hpbWEuanAiLCJuYWthLmhpcm9z''@;'; put 'put ''aGltYS5qcCIsIm9ub21pY2hpLmhpcm9zaGltYS5qcCIsIm9zYWtpa2FtaWppbWEuaGlyb3NoaW1hLmpwIiwib3Rha2UuaGlyb3NoaW1hLmpwIiwic2FrYS5oaXJvc2hpbWEuanAiLCJzZXJhLmhpcm9zaGltYS5qcCIsInNlcmFuaXNoaS5oaXJvc2hpbWEuanAiLCJzaGluaWNoaS5oaXJvc2hp''@;'; put 'put ''bWEuanAiLCJzaG9iYXJhLmhpcm9zaGltYS5qcCIsInRha2VoYXJhLmhpcm9zaGltYS5qcCIsImFiYXNoaXJpLmhva2thaWRvLmpwIiwiYWJpcmEuaG9ra2FpZG8uanAiLCJhaWJldHN1Lmhva2thaWRvLmpwIiwiYWthYmlyYS5ob2trYWlkby5qcCIsImFra2VzaGkuaG9ra2FpZG8uanAiLCJh''@;'; put 'put ''c2FoaWthd2EuaG9ra2FpZG8uanAiLCJhc2hpYmV0c3UuaG9ra2FpZG8uanAiLCJhc2hvcm8uaG9ra2FpZG8uanAiLCJhc3NhYnUuaG9ra2FpZG8uanAiLCJhdHN1bWEuaG9ra2FpZG8uanAiLCJiaWJhaS5ob2trYWlkby5qcCIsImJpZWkuaG9ra2FpZG8uanAiLCJiaWZ1a2EuaG9ra2FpZG8u''@;'; put 'put ''anAiLCJiaWhvcm8uaG9ra2FpZG8uanAiLCJiaXJhdG9yaS5ob2trYWlkby5qcCIsImNoaXBwdWJldHN1Lmhva2thaWRvLmpwIiwiY2hpdG9zZS5ob2trYWlkby5qcCIsImRhdGUuaG9ra2FpZG8uanAiLCJlYmV0c3UuaG9ra2FpZG8uanAiLCJlbWJldHN1Lmhva2thaWRvLmpwIiwiZW5pd2Eu''@;'; put 'put ''aG9ra2FpZG8uanAiLCJlcmltby5ob2trYWlkby5qcCIsImVzYW4uaG9ra2FpZG8uanAiLCJlc2FzaGkuaG9ra2FpZG8uanAiLCJmdWthZ2F3YS5ob2trYWlkby5qcCIsImZ1a3VzaGltYS5ob2trYWlkby5qcCIsImZ1cmFuby5ob2trYWlkby5qcCIsImZ1cnViaXJhLmhva2thaWRvLmpwIiwi''@;'; put 'put ''aGFib3JvLmhva2thaWRvLmpwIiwiaGFrb2RhdGUuaG9ra2FpZG8uanAiLCJoYW1hdG9uYmV0c3UuaG9ra2FpZG8uanAiLCJoaWRha2EuaG9ra2FpZG8uanAiLCJoaWdhc2hpa2FndXJhLmhva2thaWRvLmpwIiwiaGlnYXNoaWthd2EuaG9ra2FpZG8uanAiLCJoaXJvby5ob2trYWlkby5qcCIs''@;'; put 'put ''Imhva3VyeXUuaG9ra2FpZG8uanAiLCJob2t1dG8uaG9ra2FpZG8uanAiLCJob25iZXRzdS5ob2trYWlkby5qcCIsImhvcm9rYW5haS5ob2trYWlkby5qcCIsImhvcm9ub2JlLmhva2thaWRvLmpwIiwiaWtlZGEuaG9ra2FpZG8uanAiLCJpbWFrYW5lLmhva2thaWRvLmpwIiwiaXNoaWthcmku''@;'; put 'put ''aG9ra2FpZG8uanAiLCJpd2FtaXphd2EuaG9ra2FpZG8uanAiLCJpd2FuYWkuaG9ra2FpZG8uanAiLCJrYW1pZnVyYW5vLmhva2thaWRvLmpwIiwia2FtaWthd2EuaG9ra2FpZG8uanAiLCJrYW1pc2hpaG9yby5ob2trYWlkby5qcCIsImthbWlzdW5hZ2F3YS5ob2trYWlkby5qcCIsImthbW9l''@;'; put 'put ''bmFpLmhva2thaWRvLmpwIiwia2F5YWJlLmhva2thaWRvLmpwIiwia2VtYnVjaGkuaG9ra2FpZG8uanAiLCJraWtvbmFpLmhva2thaWRvLmpwIiwia2ltb2JldHN1Lmhva2thaWRvLmpwIiwia2l0YWhpcm9zaGltYS5ob2trYWlkby5qcCIsImtpdGFtaS5ob2trYWlkby5qcCIsImtpeW9zYXRv''@;'; put 'put ''Lmhva2thaWRvLmpwIiwia29zaGltaXp1Lmhva2thaWRvLmpwIiwia3VubmVwcHUuaG9ra2FpZG8uanAiLCJrdXJpeWFtYS5ob2trYWlkby5qcCIsImt1cm9tYXRzdW5haS5ob2trYWlkby5qcCIsImt1c2hpcm8uaG9ra2FpZG8uanAiLCJrdXRjaGFuLmhva2thaWRvLmpwIiwia3lvd2EuaG9r''@;'; put 'put ''a2FpZG8uanAiLCJtYXNoaWtlLmhva2thaWRvLmpwIiwibWF0c3VtYWUuaG9ra2FpZG8uanAiLCJtaWthc2EuaG9ra2FpZG8uanAiLCJtaW5hbWlmdXJhbm8uaG9ra2FpZG8uanAiLCJtb21iZXRzdS5ob2trYWlkby5qcCIsIm1vc2V1c2hpLmhva2thaWRvLmpwIiwibXVrYXdhLmhva2thaWRv''@;'; put 'put ''LmpwIiwibXVyb3Jhbi5ob2trYWlkby5qcCIsIm5haWUuaG9ra2FpZG8uanAiLCJuYWthZ2F3YS5ob2trYWlkby5qcCIsIm5ha2FzYXRzdW5haS5ob2trYWlkby5qcCIsIm5ha2F0b21iZXRzdS5ob2trYWlkby5qcCIsIm5hbmFlLmhva2thaWRvLmpwIiwibmFucG9yby5ob2trYWlkby5qcCIs''@;'; put 'put ''Im5heW9yby5ob2trYWlkby5qcCIsIm5lbXVyby5ob2trYWlkby5qcCIsIm5paWthcHB1Lmhva2thaWRvLmpwIiwibmlraS5ob2trYWlkby5qcCIsIm5pc2hpb2tvcHBlLmhva2thaWRvLmpwIiwibm9ib3JpYmV0c3UuaG9ra2FpZG8uanAiLCJudW1hdGEuaG9ra2FpZG8uanAiLCJvYmloaXJv''@;'; put 'put ''Lmhva2thaWRvLmpwIiwib2JpcmEuaG9ra2FpZG8uanAiLCJva2V0by5ob2trYWlkby5qcCIsIm9rb3BwZS5ob2trYWlkby5qcCIsIm90YXJ1Lmhva2thaWRvLmpwIiwib3RvYmUuaG9ra2FpZG8uanAiLCJvdG9mdWtlLmhva2thaWRvLmpwIiwib3RvaW5lcHB1Lmhva2thaWRvLmpwIiwib3Vt''@;'; put 'put ''dS5ob2trYWlkby5qcCIsIm96b3JhLmhva2thaWRvLmpwIiwicGlwcHUuaG9ra2FpZG8uanAiLCJyYW5rb3NoaS5ob2trYWlkby5qcCIsInJlYnVuLmhva2thaWRvLmpwIiwicmlrdWJldHN1Lmhva2thaWRvLmpwIiwicmlzaGlyaS5ob2trYWlkby5qcCIsInJpc2hpcmlmdWppLmhva2thaWRv''@;'; put 'put ''LmpwIiwic2Fyb21hLmhva2thaWRvLmpwIiwic2FydWZ1dHN1Lmhva2thaWRvLmpwIiwic2hha290YW4uaG9ra2FpZG8uanAiLCJzaGFyaS5ob2trYWlkby5qcCIsInNoaWJlY2hhLmhva2thaWRvLmpwIiwic2hpYmV0c3UuaG9ra2FpZG8uanAiLCJzaGlrYWJlLmhva2thaWRvLmpwIiwic2hp''@;'; put 'put ''a2FvaS5ob2trYWlkby5qcCIsInNoaW1hbWFraS5ob2trYWlkby5qcCIsInNoaW1penUuaG9ra2FpZG8uanAiLCJzaGltb2thd2EuaG9ra2FpZG8uanAiLCJzaGluc2hpbm90c3UuaG9ra2FpZG8uanAiLCJzaGludG9rdS5ob2trYWlkby5qcCIsInNoaXJhbnVrYS5ob2trYWlkby5qcCIsInNo''@;'; put 'put ''aXJhb2kuaG9ra2FpZG8uanAiLCJzaGlyaXVjaGkuaG9ra2FpZG8uanAiLCJzb2JldHN1Lmhva2thaWRvLmpwIiwic3VuYWdhd2EuaG9ra2FpZG8uanAiLCJ0YWlraS5ob2trYWlkby5qcCIsInRha2FzdS5ob2trYWlkby5qcCIsInRha2lrYXdhLmhva2thaWRvLmpwIiwidGFraW5vdWUuaG9r''@;'; put 'put ''a2FpZG8uanAiLCJ0ZXNoaWthZ2EuaG9ra2FpZG8uanAiLCJ0b2JldHN1Lmhva2thaWRvLmpwIiwidG9obWEuaG9ra2FpZG8uanAiLCJ0b21ha29tYWkuaG9ra2FpZG8uanAiLCJ0b21hcmkuaG9ra2FpZG8uanAiLCJ0b3lhLmhva2thaWRvLmpwIiwidG95YWtvLmhva2thaWRvLmpwIiwidG95''@;'; put 'put ''b3RvbWkuaG9ra2FpZG8uanAiLCJ0b3lvdXJhLmhva2thaWRvLmpwIiwidHN1YmV0c3UuaG9ra2FpZG8uanAiLCJ0c3VraWdhdGEuaG9ra2FpZG8uanAiLCJ1cmFrYXdhLmhva2thaWRvLmpwIiwidXJhdXN1Lmhva2thaWRvLmpwIiwidXJ5dS5ob2trYWlkby5qcCIsInV0YXNoaW5haS5ob2tr''@;'; put 'put ''YWlkby5qcCIsIndha2thbmFpLmhva2thaWRvLmpwIiwid2Fzc2FtdS5ob2trYWlkby5qcCIsInlha3Vtby5ob2trYWlkby5qcCIsInlvaWNoaS5ob2trYWlkby5qcCIsImFpb2kuaHlvZ28uanAiLCJha2FzaGkuaHlvZ28uanAiLCJha28uaHlvZ28uanAiLCJhbWFnYXNha2kuaHlvZ28uanAi''@;'; put 'put ''LCJhb2dha2kuaHlvZ28uanAiLCJhc2Fnby5oeW9nby5qcCIsImFzaGl5YS5oeW9nby5qcCIsImF3YWppLmh5b2dvLmpwIiwiZnVrdXNha2kuaHlvZ28uanAiLCJnb3NoaWtpLmh5b2dvLmpwIiwiaGFyaW1hLmh5b2dvLmpwIiwiaGltZWppLmh5b2dvLmpwIiwiaWNoaWthd2EuaHlvZ28uanAi''@;'; put 'put ''LCJpbmFnYXdhLmh5b2dvLmpwIiwiaXRhbWkuaHlvZ28uanAiLCJrYWtvZ2F3YS5oeW9nby5qcCIsImthbWlnb3JpLmh5b2dvLmpwIiwia2FtaWthd2EuaHlvZ28uanAiLCJrYXNhaS5oeW9nby5qcCIsImthc3VnYS5oeW9nby5qcCIsImthd2FuaXNoaS5oeW9nby5qcCIsIm1pa2kuaHlvZ28u''@;'; put 'put ''anAiLCJtaW5hbWlhd2FqaS5oeW9nby5qcCIsIm5pc2hpbm9taXlhLmh5b2dvLmpwIiwibmlzaGl3YWtpLmh5b2dvLmpwIiwib25vLmh5b2dvLmpwIiwic2FuZGEuaHlvZ28uanAiLCJzYW5uYW4uaHlvZ28uanAiLCJzYXNheWFtYS5oeW9nby5qcCIsInNheW8uaHlvZ28uanAiLCJzaGluZ3Uu''@;'; put 'put ''aHlvZ28uanAiLCJzaGlub25zZW4uaHlvZ28uanAiLCJzaGlzby5oeW9nby5qcCIsInN1bW90by5oeW9nby5qcCIsInRhaXNoaS5oeW9nby5qcCIsInRha2EuaHlvZ28uanAiLCJ0YWthcmF6dWthLmh5b2dvLmpwIiwidGFrYXNhZ28uaHlvZ28uanAiLCJ0YWtpbm8uaHlvZ28uanAiLCJ0YW1i''@;'; put 'put ''YS5oeW9nby5qcCIsInRhdHN1bm8uaHlvZ28uanAiLCJ0b3lvb2thLmh5b2dvLmpwIiwieWFidS5oeW9nby5qcCIsInlhc2hpcm8uaHlvZ28uanAiLCJ5b2thLmh5b2dvLmpwIiwieW9rYXdhLmh5b2dvLmpwIiwiYW1pLmliYXJha2kuanAiLCJhc2FoaS5pYmFyYWtpLmpwIiwiYmFuZG8uaWJh''@;'; put 'put ''cmFraS5qcCIsImNoaWt1c2VpLmliYXJha2kuanAiLCJkYWlnby5pYmFyYWtpLmpwIiwiZnVqaXNoaXJvLmliYXJha2kuanAiLCJoaXRhY2hpLmliYXJha2kuanAiLCJoaXRhY2hpbmFrYS5pYmFyYWtpLmpwIiwiaGl0YWNoaW9taXlhLmliYXJha2kuanAiLCJoaXRhY2hpb3RhLmliYXJha2ku''@;'; put 'put ''anAiLCJpYmFyYWtpLmliYXJha2kuanAiLCJpbmEuaWJhcmFraS5qcCIsImluYXNoaWtpLmliYXJha2kuanAiLCJpdGFrby5pYmFyYWtpLmpwIiwiaXdhbWEuaWJhcmFraS5qcCIsImpvc28uaWJhcmFraS5qcCIsImthbWlzdS5pYmFyYWtpLmpwIiwia2FzYW1hLmliYXJha2kuanAiLCJrYXNo''@;'; put 'put ''aW1hLmliYXJha2kuanAiLCJrYXN1bWlnYXVyYS5pYmFyYWtpLmpwIiwia29nYS5pYmFyYWtpLmpwIiwibWloby5pYmFyYWtpLmpwIiwibWl0by5pYmFyYWtpLmpwIiwibW9yaXlhLmliYXJha2kuanAiLCJuYWthLmliYXJha2kuanAiLCJuYW1lZ2F0YS5pYmFyYWtpLmpwIiwib2FyYWkuaWJh''@;'; put 'put ''cmFraS5qcCIsIm9nYXdhLmliYXJha2kuanAiLCJvbWl0YW1hLmliYXJha2kuanAiLCJyeXVnYXNha2kuaWJhcmFraS5qcCIsInNha2FpLmliYXJha2kuanAiLCJzYWt1cmFnYXdhLmliYXJha2kuanAiLCJzaGltb2RhdGUuaWJhcmFraS5qcCIsInNoaW1vdHN1bWEuaWJhcmFraS5qcCIsInNo''@;'; put 'put ''aXJvc2F0by5pYmFyYWtpLmpwIiwic293YS5pYmFyYWtpLmpwIiwic3VpZnUuaWJhcmFraS5qcCIsInRha2FoYWdpLmliYXJha2kuanAiLCJ0YW1hdHN1a3VyaS5pYmFyYWtpLmpwIiwidG9rYWkuaWJhcmFraS5qcCIsInRvbW9iZS5pYmFyYWtpLmpwIiwidG9uZS5pYmFyYWtpLmpwIiwidG9y''@;'; put 'put ''aWRlLmliYXJha2kuanAiLCJ0c3VjaGl1cmEuaWJhcmFraS5qcCIsInRzdWt1YmEuaWJhcmFraS5qcCIsInVjaGloYXJhLmliYXJha2kuanAiLCJ1c2hpa3UuaWJhcmFraS5qcCIsInlhY2hpeW8uaWJhcmFraS5qcCIsInlhbWFnYXRhLmliYXJha2kuanAiLCJ5YXdhcmEuaWJhcmFraS5qcCIs''@;'; put 'put ''Inl1a2kuaWJhcmFraS5qcCIsImFuYW1penUuaXNoaWthd2EuanAiLCJoYWt1aS5pc2hpa2F3YS5qcCIsImhha3VzYW4uaXNoaWthd2EuanAiLCJrYWdhLmlzaGlrYXdhLmpwIiwia2Fob2t1LmlzaGlrYXdhLmpwIiwia2FuYXphd2EuaXNoaWthd2EuanAiLCJrYXdha2l0YS5pc2hpa2F3YS5q''@;'; put 'put ''cCIsImtvbWF0c3UuaXNoaWthd2EuanAiLCJuYWthbm90by5pc2hpa2F3YS5qcCIsIm5hbmFvLmlzaGlrYXdhLmpwIiwibm9taS5pc2hpa2F3YS5qcCIsIm5vbm9pY2hpLmlzaGlrYXdhLmpwIiwibm90by5pc2hpa2F3YS5qcCIsInNoaWthLmlzaGlrYXdhLmpwIiwic3V6dS5pc2hpa2F3YS5q''@;'; put 'put ''cCIsInRzdWJhdGEuaXNoaWthd2EuanAiLCJ0c3VydWdpLmlzaGlrYXdhLmpwIiwidWNoaW5hZGEuaXNoaWthd2EuanAiLCJ3YWppbWEuaXNoaWthd2EuanAiLCJmdWRhaS5pd2F0ZS5qcCIsImZ1amlzYXdhLml3YXRlLmpwIiwiaGFuYW1ha2kuaXdhdGUuanAiLCJoaXJhaXp1bWkuaXdhdGUu''@;'; put 'put ''anAiLCJoaXJvbm8uaXdhdGUuanAiLCJpY2hpbm9oZS5pd2F0ZS5qcCIsImljaGlub3Nla2kuaXdhdGUuanAiLCJpd2FpenVtaS5pd2F0ZS5qcCIsIml3YXRlLml3YXRlLmpwIiwiam9ib2ppLml3YXRlLmpwIiwia2FtYWlzaGkuaXdhdGUuanAiLCJrYW5lZ2FzYWtpLml3YXRlLmpwIiwia2Fy''@;'; put 'put ''dW1haS5pd2F0ZS5qcCIsImthd2FpLml3YXRlLmpwIiwia2l0YWthbWkuaXdhdGUuanAiLCJrdWppLml3YXRlLmpwIiwia3Vub2hlLml3YXRlLmpwIiwia3V6dW1ha2kuaXdhdGUuanAiLCJtaXlha28uaXdhdGUuanAiLCJtaXp1c2F3YS5pd2F0ZS5qcCIsIm1vcmlva2EuaXdhdGUuanAiLCJu''@;'; put 'put ''aW5vaGUuaXdhdGUuanAiLCJub2RhLml3YXRlLmpwIiwib2Z1bmF0by5pd2F0ZS5qcCIsIm9zaHUuaXdhdGUuanAiLCJvdHN1Y2hpLml3YXRlLmpwIiwicmlrdXplbnRha2F0YS5pd2F0ZS5qcCIsInNoaXdhLml3YXRlLmpwIiwic2hpenVrdWlzaGkuaXdhdGUuanAiLCJzdW1pdGEuaXdhdGUu''@;'; put 'put ''anAiLCJ0YW5vaGF0YS5pd2F0ZS5qcCIsInRvbm8uaXdhdGUuanAiLCJ5YWhhYmEuaXdhdGUuanAiLCJ5YW1hZGEuaXdhdGUuanAiLCJheWFnYXdhLmthZ2F3YS5qcCIsImhpZ2FzaGlrYWdhd2Eua2FnYXdhLmpwIiwia2Fub25qaS5rYWdhd2EuanAiLCJrb3RvaGlyYS5rYWdhd2EuanAiLCJt''@;'; put 'put ''YW5uby5rYWdhd2EuanAiLCJtYXJ1Z2FtZS5rYWdhd2EuanAiLCJtaXRveW8ua2FnYXdhLmpwIiwibmFvc2hpbWEua2FnYXdhLmpwIiwic2FudWtpLmthZ2F3YS5qcCIsInRhZG90c3Uua2FnYXdhLmpwIiwidGFrYW1hdHN1LmthZ2F3YS5qcCIsInRvbm9zaG8ua2FnYXdhLmpwIiwidWNoaW5v''@;'; put 'put ''bWkua2FnYXdhLmpwIiwidXRhenUua2FnYXdhLmpwIiwiemVudHN1amkua2FnYXdhLmpwIiwiYWt1bmUua2Fnb3NoaW1hLmpwIiwiYW1hbWkua2Fnb3NoaW1hLmpwIiwiaGlva2kua2Fnb3NoaW1hLmpwIiwiaXNhLmthZ29zaGltYS5qcCIsImlzZW4ua2Fnb3NoaW1hLmpwIiwiaXp1bWkua2Fn''@;'; put 'put ''b3NoaW1hLmpwIiwia2Fnb3NoaW1hLmthZ29zaGltYS5qcCIsImthbm95YS5rYWdvc2hpbWEuanAiLCJrYXdhbmFiZS5rYWdvc2hpbWEuanAiLCJraW5rby5rYWdvc2hpbWEuanAiLCJrb3V5YW1hLmthZ29zaGltYS5qcCIsIm1ha3VyYXpha2kua2Fnb3NoaW1hLmpwIiwibWF0c3Vtb3RvLmth''@;'; put 'put ''Z29zaGltYS5qcCIsIm1pbmFtaXRhbmUua2Fnb3NoaW1hLmpwIiwibmFrYXRhbmUua2Fnb3NoaW1hLmpwIiwibmlzaGlub29tb3RlLmthZ29zaGltYS5qcCIsInNhdHN1bWFzZW5kYWkua2Fnb3NoaW1hLmpwIiwic29vLmthZ29zaGltYS5qcCIsInRhcnVtaXp1LmthZ29zaGltYS5qcCIsInl1''@;'; put 'put ''c3VpLmthZ29zaGltYS5qcCIsImFpa2F3YS5rYW5hZ2F3YS5qcCIsImF0c3VnaS5rYW5hZ2F3YS5qcCIsImF5YXNlLmthbmFnYXdhLmpwIiwiY2hpZ2FzYWtpLmthbmFnYXdhLmpwIiwiZWJpbmEua2FuYWdhd2EuanAiLCJmdWppc2F3YS5rYW5hZ2F3YS5qcCIsImhhZGFuby5rYW5hZ2F3YS5q''@;'; put 'put ''cCIsImhha29uZS5rYW5hZ2F3YS5qcCIsImhpcmF0c3VrYS5rYW5hZ2F3YS5qcCIsImlzZWhhcmEua2FuYWdhd2EuanAiLCJrYWlzZWkua2FuYWdhd2EuanAiLCJrYW1ha3VyYS5rYW5hZ2F3YS5qcCIsImtpeW9rYXdhLmthbmFnYXdhLmpwIiwibWF0c3VkYS5rYW5hZ2F3YS5qcCIsIm1pbmFt''@;'; put 'put ''aWFzaGlnYXJhLmthbmFnYXdhLmpwIiwibWl1cmEua2FuYWdhd2EuanAiLCJuYWthaS5rYW5hZ2F3YS5qcCIsIm5pbm9taXlhLmthbmFnYXdhLmpwIiwib2Rhd2FyYS5rYW5hZ2F3YS5qcCIsIm9pLmthbmFnYXdhLmpwIiwib2lzby5rYW5hZ2F3YS5qcCIsInNhZ2FtaWhhcmEua2FuYWdhd2Eu''@;'; put 'put ''anAiLCJzYW11a2F3YS5rYW5hZ2F3YS5qcCIsInRzdWt1aS5rYW5hZ2F3YS5qcCIsInlhbWFraXRhLmthbmFnYXdhLmpwIiwieWFtYXRvLmthbmFnYXdhLmpwIiwieW9rb3N1a2Eua2FuYWdhd2EuanAiLCJ5dWdhd2FyYS5rYW5hZ2F3YS5qcCIsInphbWEua2FuYWdhd2EuanAiLCJ6dXNoaS5r''@;'; put 'put ''YW5hZ2F3YS5qcCIsImFraS5rb2NoaS5qcCIsImdlaXNlaS5rb2NoaS5qcCIsImhpZGFrYS5rb2NoaS5qcCIsImhpZ2FzaGl0c3Vuby5rb2NoaS5qcCIsImluby5rb2NoaS5qcCIsImthZ2FtaS5rb2NoaS5qcCIsImthbWkua29jaGkuanAiLCJraXRhZ2F3YS5rb2NoaS5qcCIsImtvY2hpLmtv''@;'; put 'put ''Y2hpLmpwIiwibWloYXJhLmtvY2hpLmpwIiwibW90b3lhbWEua29jaGkuanAiLCJtdXJvdG8ua29jaGkuanAiLCJuYWhhcmkua29jaGkuanAiLCJuYWthbXVyYS5rb2NoaS5qcCIsIm5hbmtva3Uua29jaGkuanAiLCJuaXNoaXRvc2Eua29jaGkuanAiLCJuaXlvZG9nYXdhLmtvY2hpLmpwIiwi''@;'; put 'put ''b2NoaS5rb2NoaS5qcCIsIm9rYXdhLmtvY2hpLmpwIiwib3RveW8ua29jaGkuanAiLCJvdHN1a2kua29jaGkuanAiLCJzYWthd2Eua29jaGkuanAiLCJzdWt1bW8ua29jaGkuanAiLCJzdXNha2kua29jaGkuanAiLCJ0b3NhLmtvY2hpLmpwIiwidG9zYXNoaW1penUua29jaGkuanAiLCJ0b3lv''@;'; put 'put ''LmtvY2hpLmpwIiwidHN1bm8ua29jaGkuanAiLCJ1bWFqaS5rb2NoaS5qcCIsInlhc3VkYS5rb2NoaS5qcCIsInl1c3VoYXJhLmtvY2hpLmpwIiwiYW1ha3VzYS5rdW1hbW90by5qcCIsImFyYW8ua3VtYW1vdG8uanAiLCJhc28ua3VtYW1vdG8uanAiLCJjaG95by5rdW1hbW90by5qcCIsImd5''@;'; put 'put ''b2t1dG8ua3VtYW1vdG8uanAiLCJrYW1pYW1ha3VzYS5rdW1hbW90by5qcCIsImtpa3VjaGkua3VtYW1vdG8uanAiLCJrdW1hbW90by5rdW1hbW90by5qcCIsIm1hc2hpa2kua3VtYW1vdG8uanAiLCJtaWZ1bmUua3VtYW1vdG8uanAiLCJtaW5hbWF0YS5rdW1hbW90by5qcCIsIm1pbmFtaW9n''@;'; put 'put ''dW5pLmt1bWFtb3RvLmpwIiwibmFnYXN1Lmt1bWFtb3RvLmpwIiwibmlzaGloYXJhLmt1bWFtb3RvLmpwIiwib2d1bmkua3VtYW1vdG8uanAiLCJvenUua3VtYW1vdG8uanAiLCJzdW1vdG8ua3VtYW1vdG8uanAiLCJ0YWthbW9yaS5rdW1hbW90by5qcCIsInVraS5rdW1hbW90by5qcCIsInV0''@;'; put 'put ''by5rdW1hbW90by5qcCIsInlhbWFnYS5rdW1hbW90by5qcCIsInlhbWF0by5rdW1hbW90by5qcCIsInlhdHN1c2hpcm8ua3VtYW1vdG8uanAiLCJheWFiZS5reW90by5qcCIsImZ1a3VjaGl5YW1hLmt5b3RvLmpwIiwiaGlnYXNoaXlhbWEua3lvdG8uanAiLCJpZGUua3lvdG8uanAiLCJpbmUu''@;'; put 'put ''a3lvdG8uanAiLCJqb3lvLmt5b3RvLmpwIiwia2FtZW9rYS5reW90by5qcCIsImthbW8ua3lvdG8uanAiLCJraXRhLmt5b3RvLmpwIiwia2l6dS5reW90by5qcCIsImt1bWl5YW1hLmt5b3RvLmpwIiwia3lvdGFtYmEua3lvdG8uanAiLCJreW90YW5hYmUua3lvdG8uanAiLCJreW90YW5nby5r''@;'; put 'put ''eW90by5qcCIsIm1haXp1cnUua3lvdG8uanAiLCJtaW5hbWkua3lvdG8uanAiLCJtaW5hbWl5YW1hc2hpcm8ua3lvdG8uanAiLCJtaXlhenUua3lvdG8uanAiLCJtdWtvLmt5b3RvLmpwIiwibmFnYW9rYWt5by5reW90by5qcCIsIm5ha2FneW8ua3lvdG8uanAiLCJuYW50YW4ua3lvdG8uanAi''@;'; put 'put ''LCJveWFtYXpha2kua3lvdG8uanAiLCJzYWt5by5reW90by5qcCIsInNlaWthLmt5b3RvLmpwIiwidGFuYWJlLmt5b3RvLmpwIiwidWppLmt5b3RvLmpwIiwidWppdGF3YXJhLmt5b3RvLmpwIiwid2F6dWthLmt5b3RvLmpwIiwieWFtYXNoaW5hLmt5b3RvLmpwIiwieWF3YXRhLmt5b3RvLmpw''@;'; put 'put ''IiwiYXNhaGkubWllLmpwIiwiaW5hYmUubWllLmpwIiwiaXNlLm1pZS5qcCIsImthbWV5YW1hLm1pZS5qcCIsImthd2Fnb2UubWllLmpwIiwia2loby5taWUuanAiLCJraXNvc2FraS5taWUuanAiLCJraXdhLm1pZS5qcCIsImtvbW9uby5taWUuanAiLCJrdW1hbm8ubWllLmpwIiwia3V3YW5h''@;'; put 'put ''Lm1pZS5qcCIsIm1hdHN1c2FrYS5taWUuanAiLCJtZWl3YS5taWUuanAiLCJtaWhhbWEubWllLmpwIiwibWluYW1paXNlLm1pZS5qcCIsIm1pc3VnaS5taWUuanAiLCJtaXlhbWEubWllLmpwIiwibmFiYXJpLm1pZS5qcCIsInNoaW1hLm1pZS5qcCIsInN1enVrYS5taWUuanAiLCJ0YWRvLm1p''@;'; put 'put ''ZS5qcCIsInRhaWtpLm1pZS5qcCIsInRha2kubWllLmpwIiwidGFtYWtpLm1pZS5qcCIsInRvYmEubWllLmpwIiwidHN1Lm1pZS5qcCIsInVkb25vLm1pZS5qcCIsInVyZXNoaW5vLm1pZS5qcCIsIndhdGFyYWkubWllLmpwIiwieW9ra2FpY2hpLm1pZS5qcCIsImZ1cnVrYXdhLm1peWFnaS5q''@;'; put 'put ''cCIsImhpZ2FzaGltYXRzdXNoaW1hLm1peWFnaS5qcCIsImlzaGlub21ha2kubWl5YWdpLmpwIiwiaXdhbnVtYS5taXlhZ2kuanAiLCJrYWt1ZGEubWl5YWdpLmpwIiwia2FtaS5taXlhZ2kuanAiLCJrYXdhc2FraS5taXlhZ2kuanAiLCJtYXJ1bW9yaS5taXlhZ2kuanAiLCJtYXRzdXNoaW1h''@;'; put 'put ''Lm1peWFnaS5qcCIsIm1pbmFtaXNhbnJpa3UubWl5YWdpLmpwIiwibWlzYXRvLm1peWFnaS5qcCIsIm11cmF0YS5taXlhZ2kuanAiLCJuYXRvcmkubWl5YWdpLmpwIiwib2dhd2FyYS5taXlhZ2kuanAiLCJvaGlyYS5taXlhZ2kuanAiLCJvbmFnYXdhLm1peWFnaS5qcCIsIm9zYWtpLm1peWFn''@;'; put 'put ''aS5qcCIsInJpZnUubWl5YWdpLmpwIiwic2VtaW5lLm1peWFnaS5qcCIsInNoaWJhdGEubWl5YWdpLmpwIiwic2hpY2hpa2FzaHVrdS5taXlhZ2kuanAiLCJzaGlrYW1hLm1peWFnaS5qcCIsInNoaW9nYW1hLm1peWFnaS5qcCIsInNoaXJvaXNoaS5taXlhZ2kuanAiLCJ0YWdham8ubWl5YWdp''@;'; put 'put ''LmpwIiwidGFpd2EubWl5YWdpLmpwIiwidG9tZS5taXlhZ2kuanAiLCJ0b21peWEubWl5YWdpLmpwIiwid2FrdXlhLm1peWFnaS5qcCIsIndhdGFyaS5taXlhZ2kuanAiLCJ5YW1hbW90by5taXlhZ2kuanAiLCJ6YW8ubWl5YWdpLmpwIiwiYXlhLm1peWF6YWtpLmpwIiwiZWJpbm8ubWl5YXph''@;'; put 'put ''a2kuanAiLCJnb2thc2UubWl5YXpha2kuanAiLCJoeXVnYS5taXlhemFraS5qcCIsImthZG9nYXdhLm1peWF6YWtpLmpwIiwia2F3YW1pbmFtaS5taXlhemFraS5qcCIsImtpam8ubWl5YXpha2kuanAiLCJraXRhZ2F3YS5taXlhemFraS5qcCIsImtpdGFrYXRhLm1peWF6YWtpLmpwIiwia2l0''@;'; put 'put ''YXVyYS5taXlhemFraS5qcCIsImtvYmF5YXNoaS5taXlhemFraS5qcCIsImt1bml0b21pLm1peWF6YWtpLmpwIiwia3VzaGltYS5taXlhemFraS5qcCIsIm1pbWF0YS5taXlhemFraS5qcCIsIm1peWFrb25vam8ubWl5YXpha2kuanAiLCJtaXlhemFraS5taXlhemFraS5qcCIsIm1vcm90c3Vr''@;'; put 'put ''YS5taXlhemFraS5qcCIsIm5pY2hpbmFuLm1peWF6YWtpLmpwIiwibmlzaGltZXJhLm1peWF6YWtpLmpwIiwibm9iZW9rYS5taXlhemFraS5qcCIsInNhaXRvLm1peWF6YWtpLmpwIiwic2hpaWJhLm1peWF6YWtpLmpwIiwic2hpbnRvbWkubWl5YXpha2kuanAiLCJ0YWthaGFydS5taXlhemFr''@;'; put 'put ''aS5qcCIsInRha2FuYWJlLm1peWF6YWtpLmpwIiwidGFrYXpha2kubWl5YXpha2kuanAiLCJ0c3Vuby5taXlhemFraS5qcCIsImFjaGkubmFnYW5vLmpwIiwiYWdlbWF0c3UubmFnYW5vLmpwIiwiYW5hbi5uYWdhbm8uanAiLCJhb2tpLm5hZ2Fuby5qcCIsImFzYWhpLm5hZ2Fuby5qcCIsImF6''@;'; put 'put ''dW1pbm8ubmFnYW5vLmpwIiwiY2hpa3Vob2t1Lm5hZ2Fuby5qcCIsImNoaWt1bWEubmFnYW5vLmpwIiwiY2hpbm8ubmFnYW5vLmpwIiwiZnVqaW1pLm5hZ2Fuby5qcCIsImhha3ViYS5uYWdhbm8uanAiLCJoYXJhLm5hZ2Fuby5qcCIsImhpcmF5YS5uYWdhbm8uanAiLCJpaWRhLm5hZ2Fuby5q''@;'; put 'put ''cCIsImlpamltYS5uYWdhbm8uanAiLCJpaXlhbWEubmFnYW5vLmpwIiwiaWl6dW5hLm5hZ2Fuby5qcCIsImlrZWRhLm5hZ2Fuby5qcCIsImlrdXNha2EubmFnYW5vLmpwIiwiaW5hLm5hZ2Fuby5qcCIsImthcnVpemF3YS5uYWdhbm8uanAiLCJrYXdha2FtaS5uYWdhbm8uanAiLCJraXNvLm5h''@;'; put 'put ''Z2Fuby5qcCIsImtpc29mdWt1c2hpbWEubmFnYW5vLmpwIiwia2l0YWFpa2kubmFnYW5vLmpwIiwia29tYWdhbmUubmFnYW5vLmpwIiwia29tb3JvLm5hZ2Fuby5qcCIsIm1hdHN1a2F3YS5uYWdhbm8uanAiLCJtYXRzdW1vdG8ubmFnYW5vLmpwIiwibWlhc2EubmFnYW5vLmpwIiwibWluYW1p''@;'; put 'put ''YWlraS5uYWdhbm8uanAiLCJtaW5hbWltYWtpLm5hZ2Fuby5qcCIsIm1pbmFtaW1pbm93YS5uYWdhbm8uanAiLCJtaW5vd2EubmFnYW5vLmpwIiwibWl5YWRhLm5hZ2Fuby5qcCIsIm1peW90YS5uYWdhbm8uanAiLCJtb2NoaXp1a2kubmFnYW5vLmpwIiwibmFnYW5vLm5hZ2Fuby5qcCIsIm5h''@;'; put 'put ''Z2F3YS5uYWdhbm8uanAiLCJuYWdpc28ubmFnYW5vLmpwIiwibmFrYWdhd2EubmFnYW5vLmpwIiwibmFrYW5vLm5hZ2Fuby5qcCIsIm5vemF3YW9uc2VuLm5hZ2Fuby5qcCIsIm9idXNlLm5hZ2Fuby5qcCIsIm9nYXdhLm5hZ2Fuby5qcCIsIm9rYXlhLm5hZ2Fuby5qcCIsIm9tYWNoaS5uYWdh''@;'; put 'put ''bm8uanAiLCJvbWkubmFnYW5vLmpwIiwib29rdXdhLm5hZ2Fuby5qcCIsIm9vc2hpa2EubmFnYW5vLmpwIiwib3Rha2kubmFnYW5vLmpwIiwib3RhcmkubmFnYW5vLmpwIiwic2FrYWUubmFnYW5vLmpwIiwic2FrYWtpLm5hZ2Fuby5qcCIsInNha3UubmFnYW5vLmpwIiwic2FrdWhvLm5hZ2Fu''@;'; put 'put ''by5qcCIsInNoaW1vc3V3YS5uYWdhbm8uanAiLCJzaGluYW5vbWFjaGkubmFnYW5vLmpwIiwic2hpb2ppcmkubmFnYW5vLmpwIiwic3V3YS5uYWdhbm8uanAiLCJzdXpha2EubmFnYW5vLmpwIiwidGFrYWdpLm5hZ2Fuby5qcCIsInRha2Ftb3JpLm5hZ2Fuby5qcCIsInRha2F5YW1hLm5hZ2Fu''@;'; put 'put ''by5qcCIsInRhdGVzaGluYS5uYWdhbm8uanAiLCJ0YXRzdW5vLm5hZ2Fuby5qcCIsInRvZ2FrdXNoaS5uYWdhbm8uanAiLCJ0b2d1cmEubmFnYW5vLmpwIiwidG9taS5uYWdhbm8uanAiLCJ1ZWRhLm5hZ2Fuby5qcCIsIndhZGEubmFnYW5vLmpwIiwieWFtYWdhdGEubmFnYW5vLmpwIiwieWFt''@;'; put 'put ''YW5vdWNoaS5uYWdhbm8uanAiLCJ5YXNha2EubmFnYW5vLmpwIiwieWFzdW9rYS5uYWdhbm8uanAiLCJjaGlqaXdhLm5hZ2FzYWtpLmpwIiwiZnV0c3UubmFnYXNha2kuanAiLCJnb3RvLm5hZ2FzYWtpLmpwIiwiaGFzYW1pLm5hZ2FzYWtpLmpwIiwiaGlyYWRvLm5hZ2FzYWtpLmpwIiwiaWtp''@;'; put 'put ''Lm5hZ2FzYWtpLmpwIiwiaXNhaGF5YS5uYWdhc2FraS5qcCIsImthd2F0YW5hLm5hZ2FzYWtpLmpwIiwia3VjaGlub3RzdS5uYWdhc2FraS5qcCIsIm1hdHN1dXJhLm5hZ2FzYWtpLmpwIiwibmFnYXNha2kubmFnYXNha2kuanAiLCJvYmFtYS5uYWdhc2FraS5qcCIsIm9tdXJhLm5hZ2FzYWtp''@;'; put 'put ''LmpwIiwib3NldG8ubmFnYXNha2kuanAiLCJzYWlrYWkubmFnYXNha2kuanAiLCJzYXNlYm8ubmFnYXNha2kuanAiLCJzZWloaS5uYWdhc2FraS5qcCIsInNoaW1hYmFyYS5uYWdhc2FraS5qcCIsInNoaW5rYW1pZ290by5uYWdhc2FraS5qcCIsInRvZ2l0c3UubmFnYXNha2kuanAiLCJ0c3Vz''@;'; put 'put ''aGltYS5uYWdhc2FraS5qcCIsInVuemVuLm5hZ2FzYWtpLmpwIiwiYW5kby5uYXJhLmpwIiwiZ29zZS5uYXJhLmpwIiwiaGVndXJpLm5hcmEuanAiLCJoaWdhc2hpeW9zaGluby5uYXJhLmpwIiwiaWthcnVnYS5uYXJhLmpwIiwiaWtvbWEubmFyYS5qcCIsImthbWlraXRheWFtYS5uYXJhLmpw''@;'; put 'put ''Iiwia2FubWFraS5uYXJhLmpwIiwia2FzaGliYS5uYXJhLmpwIiwia2FzaGloYXJhLm5hcmEuanAiLCJrYXRzdXJhZ2kubmFyYS5qcCIsImthd2FpLm5hcmEuanAiLCJrYXdha2FtaS5uYXJhLmpwIiwia2F3YW5pc2hpLm5hcmEuanAiLCJrb3J5by5uYXJhLmpwIiwia3Vyb3Rha2kubmFyYS5q''@;'; put 'put ''cCIsIm1pdHN1ZS5uYXJhLmpwIiwibWl5YWtlLm5hcmEuanAiLCJuYXJhLm5hcmEuanAiLCJub3NlZ2F3YS5uYXJhLmpwIiwib2ppLm5hcmEuanAiLCJvdWRhLm5hcmEuanAiLCJveW9kby5uYXJhLmpwIiwic2FrdXJhaS5uYXJhLmpwIiwic2FuZ28ubmFyYS5qcCIsInNoaW1vaWNoaS5uYXJh''@;'; put 'put ''LmpwIiwic2hpbW9raXRheWFtYS5uYXJhLmpwIiwic2hpbmpvLm5hcmEuanAiLCJzb25pLm5hcmEuanAiLCJ0YWthdG9yaS5uYXJhLmpwIiwidGF3YXJhbW90by5uYXJhLmpwIiwidGVua2F3YS5uYXJhLmpwIiwidGVucmkubmFyYS5qcCIsInVkYS5uYXJhLmpwIiwieWFtYXRva29yaXlhbWEu''@;'; put 'put ''bmFyYS5qcCIsInlhbWF0b3Rha2FkYS5uYXJhLmpwIiwieWFtYXpvZS5uYXJhLmpwIiwieW9zaGluby5uYXJhLmpwIiwiYWdhLm5paWdhdGEuanAiLCJhZ2Fuby5uaWlnYXRhLmpwIiwiZ29zZW4ubmlpZ2F0YS5qcCIsIml0b2lnYXdhLm5paWdhdGEuanAiLCJpenVtb3pha2kubmlpZ2F0YS5q''@;'; put 'put ''cCIsImpvZXRzdS5uaWlnYXRhLmpwIiwia2Ftby5uaWlnYXRhLmpwIiwia2FyaXdhLm5paWdhdGEuanAiLCJrYXNoaXdhemFraS5uaWlnYXRhLmpwIiwibWluYW1pdW9udW1hLm5paWdhdGEuanAiLCJtaXRzdWtlLm5paWdhdGEuanAiLCJtdWlrYS5uaWlnYXRhLmpwIiwibXVyYWthbWkubmlp''@;'; put 'put ''Z2F0YS5qcCIsIm15b2tvLm5paWdhdGEuanAiLCJuYWdhb2thLm5paWdhdGEuanAiLCJuaWlnYXRhLm5paWdhdGEuanAiLCJvaml5YS5uaWlnYXRhLmpwIiwib21pLm5paWdhdGEuanAiLCJzYWRvLm5paWdhdGEuanAiLCJzYW5qby5uaWlnYXRhLmpwIiwic2Vpcm8ubmlpZ2F0YS5qcCIsInNl''@;'; put 'put ''aXJvdS5uaWlnYXRhLmpwIiwic2VraWthd2EubmlpZ2F0YS5qcCIsInNoaWJhdGEubmlpZ2F0YS5qcCIsInRhZ2FtaS5uaWlnYXRhLmpwIiwidGFpbmFpLm5paWdhdGEuanAiLCJ0b2NoaW8ubmlpZ2F0YS5qcCIsInRva2FtYWNoaS5uaWlnYXRhLmpwIiwidHN1YmFtZS5uaWlnYXRhLmpwIiwi''@;'; put 'put ''dHN1bmFuLm5paWdhdGEuanAiLCJ1b251bWEubmlpZ2F0YS5qcCIsInlhaGlrby5uaWlnYXRhLmpwIiwieW9pdGEubmlpZ2F0YS5qcCIsInl1emF3YS5uaWlnYXRhLmpwIiwiYmVwcHUub2l0YS5qcCIsImJ1bmdvb25vLm9pdGEuanAiLCJidW5nb3Rha2FkYS5vaXRhLmpwIiwiaGFzYW1hLm9p''@;'; put 'put ''dGEuanAiLCJoaWppLm9pdGEuanAiLCJoaW1lc2hpbWEub2l0YS5qcCIsImhpdGEub2l0YS5qcCIsImthbWl0c3VlLm9pdGEuanAiLCJrb2tvbm9lLm9pdGEuanAiLCJrdWp1Lm9pdGEuanAiLCJrdW5pc2FraS5vaXRhLmpwIiwia3VzdS5vaXRhLmpwIiwib2l0YS5vaXRhLmpwIiwic2Fpa2ku''@;'; put 'put ''b2l0YS5qcCIsInRha2V0YS5vaXRhLmpwIiwidHN1a3VtaS5vaXRhLmpwIiwidXNhLm9pdGEuanAiLCJ1c3VraS5vaXRhLmpwIiwieXVmdS5vaXRhLmpwIiwiYWthaXdhLm9rYXlhbWEuanAiLCJhc2FrdWNoaS5va2F5YW1hLmpwIiwiYml6ZW4ub2theWFtYS5qcCIsImhheWFzaGltYS5va2F5''@;'; put 'put ''YW1hLmpwIiwiaWJhcmEub2theWFtYS5qcCIsImthZ2FtaW5vLm9rYXlhbWEuanAiLCJrYXNhb2thLm9rYXlhbWEuanAiLCJraWJpY2h1by5va2F5YW1hLmpwIiwia3VtZW5hbi5va2F5YW1hLmpwIiwia3VyYXNoaWtpLm9rYXlhbWEuanAiLCJtYW5pd2Eub2theWFtYS5qcCIsIm1pc2FraS5v''@;'; put 'put ''a2F5YW1hLmpwIiwibmFnaS5va2F5YW1hLmpwIiwibmlpbWkub2theWFtYS5qcCIsIm5pc2hpYXdha3VyYS5va2F5YW1hLmpwIiwib2theWFtYS5va2F5YW1hLmpwIiwic2F0b3Noby5va2F5YW1hLmpwIiwic2V0b3VjaGkub2theWFtYS5qcCIsInNoaW5qby5va2F5YW1hLmpwIiwic2hvby5v''@;'; put 'put ''a2F5YW1hLmpwIiwic29qYS5va2F5YW1hLmpwIiwidGFrYWhhc2hpLm9rYXlhbWEuanAiLCJ0YW1hbm8ub2theWFtYS5qcCIsInRzdXlhbWEub2theWFtYS5qcCIsIndha2Uub2theWFtYS5qcCIsInlha2FnZS5va2F5YW1hLmpwIiwiYWd1bmkub2tpbmF3YS5qcCIsImdpbm93YW4ub2tpbmF3''@;'; put 'put ''YS5qcCIsImdpbm96YS5va2luYXdhLmpwIiwiZ3VzaGlrYW1pLm9raW5hd2EuanAiLCJoYWViYXJ1Lm9raW5hd2EuanAiLCJoaWdhc2hpLm9raW5hd2EuanAiLCJoaXJhcmEub2tpbmF3YS5qcCIsImloZXlhLm9raW5hd2EuanAiLCJpc2hpZ2FraS5va2luYXdhLmpwIiwiaXNoaWthd2Eub2tp''@;'; put 'put ''bmF3YS5qcCIsIml0b21hbi5va2luYXdhLmpwIiwiaXplbmEub2tpbmF3YS5qcCIsImthZGVuYS5va2luYXdhLmpwIiwia2luLm9raW5hd2EuanAiLCJraXRhZGFpdG8ub2tpbmF3YS5qcCIsImtpdGFuYWthZ3VzdWt1Lm9raW5hd2EuanAiLCJrdW1lamltYS5va2luYXdhLmpwIiwia3VuaWdh''@;'; put 'put ''bWkub2tpbmF3YS5qcCIsIm1pbmFtaWRhaXRvLm9raW5hd2EuanAiLCJtb3RvYnUub2tpbmF3YS5qcCIsIm5hZ28ub2tpbmF3YS5qcCIsIm5haGEub2tpbmF3YS5qcCIsIm5ha2FndXN1a3Uub2tpbmF3YS5qcCIsIm5ha2lqaW4ub2tpbmF3YS5qcCIsIm5hbmpvLm9raW5hd2EuanAiLCJuaXNo''@;'; put 'put ''aWhhcmEub2tpbmF3YS5qcCIsIm9naW1pLm9raW5hd2EuanAiLCJva2luYXdhLm9raW5hd2EuanAiLCJvbm5hLm9raW5hd2EuanAiLCJzaGltb2ppLm9raW5hd2EuanAiLCJ0YWtldG9taS5va2luYXdhLmpwIiwidGFyYW1hLm9raW5hd2EuanAiLCJ0b2thc2hpa2kub2tpbmF3YS5qcCIsInRv''@;'; put 'put ''bWlndXN1a3Uub2tpbmF3YS5qcCIsInRvbmFraS5va2luYXdhLmpwIiwidXJhc29lLm9raW5hd2EuanAiLCJ1cnVtYS5va2luYXdhLmpwIiwieWFlc2Uub2tpbmF3YS5qcCIsInlvbWl0YW4ub2tpbmF3YS5qcCIsInlvbmFiYXJ1Lm9raW5hd2EuanAiLCJ5b25hZ3VuaS5va2luYXdhLmpwIiwi''@;'; put 'put ''emFtYW1pLm9raW5hd2EuanAiLCJhYmVuby5vc2FrYS5qcCIsImNoaWhheWFha2FzYWthLm9zYWthLmpwIiwiY2h1by5vc2FrYS5qcCIsImRhaXRvLm9zYWthLmpwIiwiZnVqaWlkZXJhLm9zYWthLmpwIiwiaGFiaWtpbm8ub3Nha2EuanAiLCJoYW5uYW4ub3Nha2EuanAiLCJoaWdhc2hpb3Nh''@;'; put 'put ''a2Eub3Nha2EuanAiLCJoaWdhc2hpc3VtaXlvc2hpLm9zYWthLmpwIiwiaGlnYXNoaXlvZG9nYXdhLm9zYWthLmpwIiwiaGlyYWthdGEub3Nha2EuanAiLCJpYmFyYWtpLm9zYWthLmpwIiwiaWtlZGEub3Nha2EuanAiLCJpenVtaS5vc2FrYS5qcCIsIml6dW1pb3RzdS5vc2FrYS5qcCIsIml6''@;'; put 'put ''dW1pc2Fuby5vc2FrYS5qcCIsImthZG9tYS5vc2FrYS5qcCIsImthaXp1a2Eub3Nha2EuanAiLCJrYW5hbi5vc2FrYS5qcCIsImthc2hpd2FyYS5vc2FrYS5qcCIsImthdGFuby5vc2FrYS5qcCIsImthd2FjaGluYWdhbm8ub3Nha2EuanAiLCJraXNoaXdhZGEub3Nha2EuanAiLCJraXRhLm9z''@;'; put 'put ''YWthLmpwIiwia3VtYXRvcmkub3Nha2EuanAiLCJtYXRzdWJhcmEub3Nha2EuanAiLCJtaW5hdG8ub3Nha2EuanAiLCJtaW5vaC5vc2FrYS5qcCIsIm1pc2FraS5vc2FrYS5qcCIsIm1vcmlndWNoaS5vc2FrYS5qcCIsIm5leWFnYXdhLm9zYWthLmpwIiwibmlzaGkub3Nha2EuanAiLCJub3Nl''@;'; put 'put ''Lm9zYWthLmpwIiwib3Nha2FzYXlhbWEub3Nha2EuanAiLCJzYWthaS5vc2FrYS5qcCIsInNheWFtYS5vc2FrYS5qcCIsInNlbm5hbi5vc2FrYS5qcCIsInNldHRzdS5vc2FrYS5qcCIsInNoaWpvbmF3YXRlLm9zYWthLmpwIiwic2hpbWFtb3RvLm9zYWthLmpwIiwic3VpdGEub3Nha2EuanAi''@;'; put 'put ''LCJ0YWRhb2thLm9zYWthLmpwIiwidGFpc2hpLm9zYWthLmpwIiwidGFqaXJpLm9zYWthLmpwIiwidGFrYWlzaGkub3Nha2EuanAiLCJ0YWthdHN1a2kub3Nha2EuanAiLCJ0b25kYWJheWFzaGkub3Nha2EuanAiLCJ0b3lvbmFrYS5vc2FrYS5qcCIsInRveW9uby5vc2FrYS5qcCIsInlhby5v''@;'; put 'put ''c2FrYS5qcCIsImFyaWFrZS5zYWdhLmpwIiwiYXJpdGEuc2FnYS5qcCIsImZ1a3Vkb21pLnNhZ2EuanAiLCJnZW5rYWkuc2FnYS5qcCIsImhhbWF0YW1hLnNhZ2EuanAiLCJoaXplbi5zYWdhLmpwIiwiaW1hcmkuc2FnYS5qcCIsImthbWltaW5lLnNhZ2EuanAiLCJrYW56YWtpLnNhZ2EuanAi''@;'; put 'put ''LCJrYXJhdHN1LnNhZ2EuanAiLCJrYXNoaW1hLnNhZ2EuanAiLCJraXRhZ2F0YS5zYWdhLmpwIiwia2l0YWhhdGEuc2FnYS5qcCIsImtpeWFtYS5zYWdhLmpwIiwia291aG9rdS5zYWdhLmpwIiwia3l1cmFnaS5zYWdhLmpwIiwibmlzaGlhcml0YS5zYWdhLmpwIiwib2dpLnNhZ2EuanAiLCJv''@;'; put 'put ''bWFjaGkuc2FnYS5qcCIsIm91Y2hpLnNhZ2EuanAiLCJzYWdhLnNhZ2EuanAiLCJzaGlyb2lzaGkuc2FnYS5qcCIsInRha3Uuc2FnYS5qcCIsInRhcmEuc2FnYS5qcCIsInRvc3Uuc2FnYS5qcCIsInlvc2hpbm9nYXJpLnNhZ2EuanAiLCJhcmFrYXdhLnNhaXRhbWEuanAiLCJhc2FrYS5zYWl0''@;'; put 'put ''YW1hLmpwIiwiY2hpY2hpYnUuc2FpdGFtYS5qcCIsImZ1amltaS5zYWl0YW1hLmpwIiwiZnVqaW1pbm8uc2FpdGFtYS5qcCIsImZ1a2F5YS5zYWl0YW1hLmpwIiwiaGFubm8uc2FpdGFtYS5qcCIsImhhbnl1LnNhaXRhbWEuanAiLCJoYXN1ZGEuc2FpdGFtYS5qcCIsImhhdG9nYXlhLnNhaXRh''@;'; put 'put ''bWEuanAiLCJoYXRveWFtYS5zYWl0YW1hLmpwIiwiaGlkYWthLnNhaXRhbWEuanAiLCJoaWdhc2hpY2hpY2hpYnUuc2FpdGFtYS5qcCIsImhpZ2FzaGltYXRzdXlhbWEuc2FpdGFtYS5qcCIsImhvbmpvLnNhaXRhbWEuanAiLCJpbmEuc2FpdGFtYS5qcCIsImlydW1hLnNhaXRhbWEuanAiLCJp''@;'; put 'put ''d2F0c3VraS5zYWl0YW1hLmpwIiwia2FtaWl6dW1pLnNhaXRhbWEuanAiLCJrYW1pa2F3YS5zYWl0YW1hLmpwIiwia2FtaXNhdG8uc2FpdGFtYS5qcCIsImthc3VrYWJlLnNhaXRhbWEuanAiLCJrYXdhZ29lLnNhaXRhbWEuanAiLCJrYXdhZ3VjaGkuc2FpdGFtYS5qcCIsImthd2FqaW1hLnNh''@;'; put 'put ''aXRhbWEuanAiLCJrYXpvLnNhaXRhbWEuanAiLCJraXRhbW90by5zYWl0YW1hLmpwIiwia29zaGlnYXlhLnNhaXRhbWEuanAiLCJrb3Vub3N1LnNhaXRhbWEuanAiLCJrdWtpLnNhaXRhbWEuanAiLCJrdW1hZ2F5YS5zYWl0YW1hLmpwIiwibWF0c3VidXNoaS5zYWl0YW1hLmpwIiwibWluYW5v''@;'; put 'put ''LnNhaXRhbWEuanAiLCJtaXNhdG8uc2FpdGFtYS5qcCIsIm1peWFzaGlyby5zYWl0YW1hLmpwIiwibWl5b3NoaS5zYWl0YW1hLmpwIiwibW9yb3lhbWEuc2FpdGFtYS5qcCIsIm5hZ2F0b3JvLnNhaXRhbWEuanAiLCJuYW1lZ2F3YS5zYWl0YW1hLmpwIiwibmlpemEuc2FpdGFtYS5qcCIsIm9n''@;'; put 'put ''YW5vLnNhaXRhbWEuanAiLCJvZ2F3YS5zYWl0YW1hLmpwIiwib2dvc2Uuc2FpdGFtYS5qcCIsIm9rZWdhd2Euc2FpdGFtYS5qcCIsIm9taXlhLnNhaXRhbWEuanAiLCJvdGFraS5zYWl0YW1hLmpwIiwicmFuemFuLnNhaXRhbWEuanAiLCJyeW9rYW1pLnNhaXRhbWEuanAiLCJzYWl0YW1hLnNh''@;'; put 'put ''aXRhbWEuanAiLCJzYWthZG8uc2FpdGFtYS5qcCIsInNhdHRlLnNhaXRhbWEuanAiLCJzYXlhbWEuc2FpdGFtYS5qcCIsInNoaWtpLnNhaXRhbWEuanAiLCJzaGlyYW9rYS5zYWl0YW1hLmpwIiwic29rYS5zYWl0YW1hLmpwIiwic3VnaXRvLnNhaXRhbWEuanAiLCJ0b2RhLnNhaXRhbWEuanAi''@;'; put 'put ''LCJ0b2tpZ2F3YS5zYWl0YW1hLmpwIiwidG9rb3JvemF3YS5zYWl0YW1hLmpwIiwidHN1cnVnYXNoaW1hLnNhaXRhbWEuanAiLCJ1cmF3YS5zYWl0YW1hLmpwIiwid2FyYWJpLnNhaXRhbWEuanAiLCJ5YXNoaW8uc2FpdGFtYS5qcCIsInlva296ZS5zYWl0YW1hLmpwIiwieW9uby5zYWl0YW1h''@;'; put 'put ''LmpwIiwieW9yaWkuc2FpdGFtYS5qcCIsInlvc2hpZGEuc2FpdGFtYS5qcCIsInlvc2hpa2F3YS5zYWl0YW1hLmpwIiwieW9zaGltaS5zYWl0YW1hLmpwIiwiYWlzaG8uc2hpZ2EuanAiLCJnYW1vLnNoaWdhLmpwIiwiaGlnYXNoaW9taS5zaGlnYS5qcCIsImhpa29uZS5zaGlnYS5qcCIsImtv''@;'; put 'put ''a2Euc2hpZ2EuanAiLCJrb25hbi5zaGlnYS5qcCIsImtvc2VpLnNoaWdhLmpwIiwia290by5zaGlnYS5qcCIsImt1c2F0c3Uuc2hpZ2EuanAiLCJtYWliYXJhLnNoaWdhLmpwIiwibW9yaXlhbWEuc2hpZ2EuanAiLCJuYWdhaGFtYS5zaGlnYS5qcCIsIm5pc2hpYXphaS5zaGlnYS5qcCIsIm5v''@;'; put 'put ''dG9nYXdhLnNoaWdhLmpwIiwib21paGFjaGltYW4uc2hpZ2EuanAiLCJvdHN1LnNoaWdhLmpwIiwicml0dG8uc2hpZ2EuanAiLCJyeXVvaC5zaGlnYS5qcCIsInRha2FzaGltYS5zaGlnYS5qcCIsInRha2F0c3VraS5zaGlnYS5qcCIsInRvcmFoaW1lLnNoaWdhLmpwIiwidG95b3NhdG8uc2hp''@;'; put 'put ''Z2EuanAiLCJ5YXN1LnNoaWdhLmpwIiwiYWthZ2kuc2hpbWFuZS5qcCIsImFtYS5zaGltYW5lLmpwIiwiZ290c3Uuc2hpbWFuZS5qcCIsImhhbWFkYS5zaGltYW5lLmpwIiwiaGlnYXNoaWl6dW1vLnNoaW1hbmUuanAiLCJoaWthd2Euc2hpbWFuZS5qcCIsImhpa2ltaS5zaGltYW5lLmpwIiwi''@;'; put 'put ''aXp1bW8uc2hpbWFuZS5qcCIsImtha2lub2tpLnNoaW1hbmUuanAiLCJtYXN1ZGEuc2hpbWFuZS5qcCIsIm1hdHN1ZS5zaGltYW5lLmpwIiwibWlzYXRvLnNoaW1hbmUuanAiLCJuaXNoaW5vc2hpbWEuc2hpbWFuZS5qcCIsIm9oZGEuc2hpbWFuZS5qcCIsIm9raW5vc2hpbWEuc2hpbWFuZS5q''@;'; put 'put ''cCIsIm9rdWl6dW1vLnNoaW1hbmUuanAiLCJzaGltYW5lLnNoaW1hbmUuanAiLCJ0YW1heXUuc2hpbWFuZS5qcCIsInRzdXdhbm8uc2hpbWFuZS5qcCIsInVubmFuLnNoaW1hbmUuanAiLCJ5YWt1bW8uc2hpbWFuZS5qcCIsInlhc3VnaS5zaGltYW5lLmpwIiwieWF0c3VrYS5zaGltYW5lLmpw''@;'; put 'put ''IiwiYXJhaS5zaGl6dW9rYS5qcCIsImF0YW1pLnNoaXp1b2thLmpwIiwiZnVqaS5zaGl6dW9rYS5qcCIsImZ1amllZGEuc2hpenVva2EuanAiLCJmdWppa2F3YS5zaGl6dW9rYS5qcCIsImZ1amlub21peWEuc2hpenVva2EuanAiLCJmdWt1cm9pLnNoaXp1b2thLmpwIiwiZ290ZW1iYS5zaGl6''@;'; put 'put ''dW9rYS5qcCIsImhhaWJhcmEuc2hpenVva2EuanAiLCJoYW1hbWF0c3Uuc2hpenVva2EuanAiLCJoaWdhc2hpaXp1LnNoaXp1b2thLmpwIiwiaXRvLnNoaXp1b2thLmpwIiwiaXdhdGEuc2hpenVva2EuanAiLCJpenUuc2hpenVva2EuanAiLCJpenVub2t1bmkuc2hpenVva2EuanAiLCJrYWtl''@;'; put 'put ''Z2F3YS5zaGl6dW9rYS5qcCIsImthbm5hbWkuc2hpenVva2EuanAiLCJrYXdhbmVob24uc2hpenVva2EuanAiLCJrYXdhenUuc2hpenVva2EuanAiLCJraWt1Z2F3YS5zaGl6dW9rYS5qcCIsImtvc2FpLnNoaXp1b2thLmpwIiwibWFraW5vaGFyYS5zaGl6dW9rYS5qcCIsIm1hdHN1emFraS5z''@;'; put 'put ''aGl6dW9rYS5qcCIsIm1pbmFtaWl6dS5zaGl6dW9rYS5qcCIsIm1pc2hpbWEuc2hpenVva2EuanAiLCJtb3JpbWFjaGkuc2hpenVva2EuanAiLCJuaXNoaWl6dS5zaGl6dW9rYS5qcCIsIm51bWF6dS5zaGl6dW9rYS5qcCIsIm9tYWV6YWtpLnNoaXp1b2thLmpwIiwic2hpbWFkYS5zaGl6dW9r''@;'; put 'put ''YS5qcCIsInNoaW1penUuc2hpenVva2EuanAiLCJzaGltb2RhLnNoaXp1b2thLmpwIiwic2hpenVva2Euc2hpenVva2EuanAiLCJzdXNvbm8uc2hpenVva2EuanAiLCJ5YWl6dS5zaGl6dW9rYS5qcCIsInlvc2hpZGEuc2hpenVva2EuanAiLCJhc2hpa2FnYS50b2NoaWdpLmpwIiwiYmF0by50''@;'; put 'put ''b2NoaWdpLmpwIiwiaGFnYS50b2NoaWdpLmpwIiwiaWNoaWthaS50b2NoaWdpLmpwIiwiaXdhZnVuZS50b2NoaWdpLmpwIiwia2FtaW5va2F3YS50b2NoaWdpLmpwIiwia2FudW1hLnRvY2hpZ2kuanAiLCJrYXJhc3V5YW1hLnRvY2hpZ2kuanAiLCJrdXJvaXNvLnRvY2hpZ2kuanAiLCJtYXNo''@;'; put 'put ''aWtvLnRvY2hpZ2kuanAiLCJtaWJ1LnRvY2hpZ2kuanAiLCJtb2thLnRvY2hpZ2kuanAiLCJtb3RlZ2kudG9jaGlnaS5qcCIsIm5hc3UudG9jaGlnaS5qcCIsIm5hc3VzaGlvYmFyYS50b2NoaWdpLmpwIiwibmlra28udG9jaGlnaS5qcCIsIm5pc2hpa2F0YS50b2NoaWdpLmpwIiwibm9naS50''@;'; put 'put ''b2NoaWdpLmpwIiwib2hpcmEudG9jaGlnaS5qcCIsIm9odGF3YXJhLnRvY2hpZ2kuanAiLCJveWFtYS50b2NoaWdpLmpwIiwic2FrdXJhLnRvY2hpZ2kuanAiLCJzYW5vLnRvY2hpZ2kuanAiLCJzaGltb3RzdWtlLnRvY2hpZ2kuanAiLCJzaGlveWEudG9jaGlnaS5qcCIsInRha2FuZXphd2Eu''@;'; put 'put ''dG9jaGlnaS5qcCIsInRvY2hpZ2kudG9jaGlnaS5qcCIsInRzdWdhLnRvY2hpZ2kuanAiLCJ1amlpZS50b2NoaWdpLmpwIiwidXRzdW5vbWl5YS50b2NoaWdpLmpwIiwieWFpdGEudG9jaGlnaS5qcCIsImFpenVtaS50b2t1c2hpbWEuanAiLCJhbmFuLnRva3VzaGltYS5qcCIsImljaGliYS50''@;'; put 'put ''b2t1c2hpbWEuanAiLCJpdGFuby50b2t1c2hpbWEuanAiLCJrYWluYW4udG9rdXNoaW1hLmpwIiwia29tYXRzdXNoaW1hLnRva3VzaGltYS5qcCIsIm1hdHN1c2hpZ2UudG9rdXNoaW1hLmpwIiwibWltYS50b2t1c2hpbWEuanAiLCJtaW5hbWkudG9rdXNoaW1hLmpwIiwibWl5b3NoaS50b2t1''@;'; put 'put ''c2hpbWEuanAiLCJtdWdpLnRva3VzaGltYS5qcCIsIm5ha2FnYXdhLnRva3VzaGltYS5qcCIsIm5hcnV0by50b2t1c2hpbWEuanAiLCJzYW5hZ29jaGkudG9rdXNoaW1hLmpwIiwic2hpc2hpa3VpLnRva3VzaGltYS5qcCIsInRva3VzaGltYS50b2t1c2hpbWEuanAiLCJ3YWppa2kudG9rdXNo''@;'; put 'put ''aW1hLmpwIiwiYWRhY2hpLnRva3lvLmpwIiwiYWtpcnVuby50b2t5by5qcCIsImFraXNoaW1hLnRva3lvLmpwIiwiYW9nYXNoaW1hLnRva3lvLmpwIiwiYXJha2F3YS50b2t5by5qcCIsImJ1bmt5by50b2t5by5qcCIsImNoaXlvZGEudG9reW8uanAiLCJjaG9mdS50b2t5by5qcCIsImNodW8u''@;'; put 'put ''dG9reW8uanAiLCJlZG9nYXdhLnRva3lvLmpwIiwiZnVjaHUudG9reW8uanAiLCJmdXNzYS50b2t5by5qcCIsImhhY2hpam8udG9reW8uanAiLCJoYWNoaW9qaS50b2t5by5qcCIsImhhbXVyYS50b2t5by5qcCIsImhpZ2FzaGlrdXJ1bWUudG9reW8uanAiLCJoaWdhc2hpbXVyYXlhbWEudG9r''@;'; put 'put ''eW8uanAiLCJoaWdhc2hpeWFtYXRvLnRva3lvLmpwIiwiaGluby50b2t5by5qcCIsImhpbm9kZS50b2t5by5qcCIsImhpbm9oYXJhLnRva3lvLmpwIiwiaW5hZ2kudG9reW8uanAiLCJpdGFiYXNoaS50b2t5by5qcCIsImthdHN1c2hpa2EudG9reW8uanAiLCJraXRhLnRva3lvLmpwIiwia2l5''@;'; put 'put ''b3NlLnRva3lvLmpwIiwia29kYWlyYS50b2t5by5qcCIsImtvZ2FuZWkudG9reW8uanAiLCJrb2t1YnVuamkudG9reW8uanAiLCJrb21hZS50b2t5by5qcCIsImtvdG8udG9reW8uanAiLCJrb3V6dXNoaW1hLnRva3lvLmpwIiwia3VuaXRhY2hpLnRva3lvLmpwIiwibWFjaGlkYS50b2t5by5q''@;'; put 'put ''cCIsIm1lZ3Vyby50b2t5by5qcCIsIm1pbmF0by50b2t5by5qcCIsIm1pdGFrYS50b2t5by5qcCIsIm1penVoby50b2t5by5qcCIsIm11c2FzaGltdXJheWFtYS50b2t5by5qcCIsIm11c2FzaGluby50b2t5by5qcCIsIm5ha2Fuby50b2t5by5qcCIsIm5lcmltYS50b2t5by5qcCIsIm9nYXNh''@;'; put 'put ''d2FyYS50b2t5by5qcCIsIm9rdXRhbWEudG9reW8uanAiLCJvbWUudG9reW8uanAiLCJvc2hpbWEudG9reW8uanAiLCJvdGEudG9reW8uanAiLCJzZXRhZ2F5YS50b2t5by5qcCIsInNoaWJ1eWEudG9reW8uanAiLCJzaGluYWdhd2EudG9reW8uanAiLCJzaGluanVrdS50b2t5by5qcCIsInN1''@;'; put 'put ''Z2luYW1pLnRva3lvLmpwIiwic3VtaWRhLnRva3lvLmpwIiwidGFjaGlrYXdhLnRva3lvLmpwIiwidGFpdG8udG9reW8uanAiLCJ0YW1hLnRva3lvLmpwIiwidG9zaGltYS50b2t5by5qcCIsImNoaXp1LnRvdHRvcmkuanAiLCJoaW5vLnRvdHRvcmkuanAiLCJrYXdhaGFyYS50b3R0b3JpLmpw''@;'; put 'put ''Iiwia29nZS50b3R0b3JpLmpwIiwia290b3VyYS50b3R0b3JpLmpwIiwibWlzYXNhLnRvdHRvcmkuanAiLCJuYW5idS50b3R0b3JpLmpwIiwibmljaGluYW4udG90dG9yaS5qcCIsInNha2FpbWluYXRvLnRvdHRvcmkuanAiLCJ0b3R0b3JpLnRvdHRvcmkuanAiLCJ3YWthc2EudG90dG9yaS5q''@;'; put 'put ''cCIsInlhenUudG90dG9yaS5qcCIsInlvbmFnby50b3R0b3JpLmpwIiwiYXNhaGkudG95YW1hLmpwIiwiZnVjaHUudG95YW1hLmpwIiwiZnVrdW1pdHN1LnRveWFtYS5qcCIsImZ1bmFoYXNoaS50b3lhbWEuanAiLCJoaW1pLnRveWFtYS5qcCIsImltaXp1LnRveWFtYS5qcCIsImluYW1pLnRv''@;'; put 'put ''eWFtYS5qcCIsImpvaGFuYS50b3lhbWEuanAiLCJrYW1paWNoaS50b3lhbWEuanAiLCJrdXJvYmUudG95YW1hLmpwIiwibmFrYW5paWthd2EudG95YW1hLmpwIiwibmFtZXJpa2F3YS50b3lhbWEuanAiLCJuYW50by50b3lhbWEuanAiLCJueXV6ZW4udG95YW1hLmpwIiwib3lhYmUudG95YW1h''@;'; put 'put ''LmpwIiwidGFpcmEudG95YW1hLmpwIiwidGFrYW9rYS50b3lhbWEuanAiLCJ0YXRleWFtYS50b3lhbWEuanAiLCJ0b2dhLnRveWFtYS5qcCIsInRvbmFtaS50b3lhbWEuanAiLCJ0b3lhbWEudG95YW1hLmpwIiwidW5henVraS50b3lhbWEuanAiLCJ1b3p1LnRveWFtYS5qcCIsInlhbWFkYS50''@;'; put 'put ''b3lhbWEuanAiLCJhcmlkYS53YWtheWFtYS5qcCIsImFyaWRhZ2F3YS53YWtheWFtYS5qcCIsImdvYm8ud2FrYXlhbWEuanAiLCJoYXNoaW1vdG8ud2FrYXlhbWEuanAiLCJoaWRha2Eud2FrYXlhbWEuanAiLCJoaXJvZ2F3YS53YWtheWFtYS5qcCIsImluYW1pLndha2F5YW1hLmpwIiwiaXdh''@;'; put 'put ''ZGUud2FrYXlhbWEuanAiLCJrYWluYW4ud2FrYXlhbWEuanAiLCJrYW1pdG9uZGEud2FrYXlhbWEuanAiLCJrYXRzdXJhZ2kud2FrYXlhbWEuanAiLCJraW1pbm8ud2FrYXlhbWEuanAiLCJraW5va2F3YS53YWtheWFtYS5qcCIsImtpdGF5YW1hLndha2F5YW1hLmpwIiwia295YS53YWtheWFt''@;'; put 'put ''YS5qcCIsImtvemEud2FrYXlhbWEuanAiLCJrb3phZ2F3YS53YWtheWFtYS5qcCIsImt1ZG95YW1hLndha2F5YW1hLmpwIiwia3VzaGltb3RvLndha2F5YW1hLmpwIiwibWloYW1hLndha2F5YW1hLmpwIiwibWlzYXRvLndha2F5YW1hLmpwIiwibmFjaGlrYXRzdXVyYS53YWtheWFtYS5qcCIs''@;'; put 'put ''InNoaW5ndS53YWtheWFtYS5qcCIsInNoaXJhaGFtYS53YWtheWFtYS5qcCIsInRhaWppLndha2F5YW1hLmpwIiwidGFuYWJlLndha2F5YW1hLmpwIiwid2FrYXlhbWEud2FrYXlhbWEuanAiLCJ5dWFzYS53YWtheWFtYS5qcCIsInl1cmEud2FrYXlhbWEuanAiLCJhc2FoaS55YW1hZ2F0YS5q''@;'; put 'put ''cCIsImZ1bmFnYXRhLnlhbWFnYXRhLmpwIiwiaGlnYXNoaW5lLnlhbWFnYXRhLmpwIiwiaWlkZS55YW1hZ2F0YS5qcCIsImthaG9rdS55YW1hZ2F0YS5qcCIsImthbWlub3lhbWEueWFtYWdhdGEuanAiLCJrYW5leWFtYS55YW1hZ2F0YS5qcCIsImthd2FuaXNoaS55YW1hZ2F0YS5qcCIsIm1h''@;'; put 'put ''bXVyb2dhd2EueWFtYWdhdGEuanAiLCJtaWthd2EueWFtYWdhdGEuanAiLCJtdXJheWFtYS55YW1hZ2F0YS5qcCIsIm5hZ2FpLnlhbWFnYXRhLmpwIiwibmFrYXlhbWEueWFtYWdhdGEuanAiLCJuYW55by55YW1hZ2F0YS5qcCIsIm5pc2hpa2F3YS55YW1hZ2F0YS5qcCIsIm9iYW5hemF3YS55''@;'; put 'put ''YW1hZ2F0YS5qcCIsIm9lLnlhbWFnYXRhLmpwIiwib2d1bmkueWFtYWdhdGEuanAiLCJvaGt1cmEueWFtYWdhdGEuanAiLCJvaXNoaWRhLnlhbWFnYXRhLmpwIiwic2FnYWUueWFtYWdhdGEuanAiLCJzYWthdGEueWFtYWdhdGEuanAiLCJzYWtlZ2F3YS55YW1hZ2F0YS5qcCIsInNoaW5qby55''@;'; put 'put ''YW1hZ2F0YS5qcCIsInNoaXJhdGFrYS55YW1hZ2F0YS5qcCIsInNob25haS55YW1hZ2F0YS5qcCIsInRha2FoYXRhLnlhbWFnYXRhLmpwIiwidGVuZG8ueWFtYWdhdGEuanAiLCJ0b3phd2EueWFtYWdhdGEuanAiLCJ0c3VydW9rYS55YW1hZ2F0YS5qcCIsInlhbWFnYXRhLnlhbWFnYXRhLmpw''@;'; put 'put ''IiwieWFtYW5vYmUueWFtYWdhdGEuanAiLCJ5b25lemF3YS55YW1hZ2F0YS5qcCIsInl1emEueWFtYWdhdGEuanAiLCJhYnUueWFtYWd1Y2hpLmpwIiwiaGFnaS55YW1hZ3VjaGkuanAiLCJoaWthcmkueWFtYWd1Y2hpLmpwIiwiaG9mdS55YW1hZ3VjaGkuanAiLCJpd2FrdW5pLnlhbWFndWNo''@;'; put 'put ''aS5qcCIsImt1ZGFtYXRzdS55YW1hZ3VjaGkuanAiLCJtaXRvdS55YW1hZ3VjaGkuanAiLCJuYWdhdG8ueWFtYWd1Y2hpLmpwIiwib3NoaW1hLnlhbWFndWNoaS5qcCIsInNoaW1vbm9zZWtpLnlhbWFndWNoaS5qcCIsInNodW5hbi55YW1hZ3VjaGkuanAiLCJ0YWJ1c2UueWFtYWd1Y2hpLmpw''@;'; put 'put ''IiwidG9rdXlhbWEueWFtYWd1Y2hpLmpwIiwidG95b3RhLnlhbWFndWNoaS5qcCIsInViZS55YW1hZ3VjaGkuanAiLCJ5dXUueWFtYWd1Y2hpLmpwIiwiY2h1by55YW1hbmFzaGkuanAiLCJkb3NoaS55YW1hbmFzaGkuanAiLCJmdWVmdWtpLnlhbWFuYXNoaS5qcCIsImZ1amlrYXdhLnlhbWFu''@;'; put 'put ''YXNoaS5qcCIsImZ1amlrYXdhZ3VjaGlrby55YW1hbmFzaGkuanAiLCJmdWppeW9zaGlkYS55YW1hbmFzaGkuanAiLCJoYXlha2F3YS55YW1hbmFzaGkuanAiLCJob2t1dG8ueWFtYW5hc2hpLmpwIiwiaWNoaWthd2FtaXNhdG8ueWFtYW5hc2hpLmpwIiwia2FpLnlhbWFuYXNoaS5qcCIsImtv''@;'; put 'put ''ZnUueWFtYW5hc2hpLmpwIiwia29zaHUueWFtYW5hc2hpLmpwIiwia29zdWdlLnlhbWFuYXNoaS5qcCIsIm1pbmFtaS1hbHBzLnlhbWFuYXNoaS5qcCIsIm1pbm9idS55YW1hbmFzaGkuanAiLCJuYWthbWljaGkueWFtYW5hc2hpLmpwIiwibmFuYnUueWFtYW5hc2hpLmpwIiwibmFydXNhd2Eu''@;'; put 'put ''eWFtYW5hc2hpLmpwIiwibmlyYXNha2kueWFtYW5hc2hpLmpwIiwibmlzaGlrYXRzdXJhLnlhbWFuYXNoaS5qcCIsIm9zaGluby55YW1hbmFzaGkuanAiLCJvdHN1a2kueWFtYW5hc2hpLmpwIiwic2hvd2EueWFtYW5hc2hpLmpwIiwidGFiYXlhbWEueWFtYW5hc2hpLmpwIiwidHN1cnUueWFt''@;'; put 'put ''YW5hc2hpLmpwIiwidWVub2hhcmEueWFtYW5hc2hpLmpwIiwieWFtYW5ha2Frby55YW1hbmFzaGkuanAiLCJ5YW1hbmFzaGkueWFtYW5hc2hpLmpwIiwia2UiLCJhYy5rZSIsImNvLmtlIiwiZ28ua2UiLCJpbmZvLmtlIiwibWUua2UiLCJtb2JpLmtlIiwibmUua2UiLCJvci5rZSIsInNjLmtl''@;'; put 'put ''Iiwia2ciLCJvcmcua2ciLCJuZXQua2ciLCJjb20ua2ciLCJlZHUua2ciLCJnb3Yua2ciLCJtaWwua2ciLCIqLmtoIiwia2kiLCJlZHUua2kiLCJiaXoua2kiLCJuZXQua2kiLCJvcmcua2kiLCJnb3Yua2kiLCJpbmZvLmtpIiwiY29tLmtpIiwia20iLCJvcmcua20iLCJub20ua20iLCJnb3Yu''@;'; put 'put ''a20iLCJwcmQua20iLCJ0bS5rbSIsImVkdS5rbSIsIm1pbC5rbSIsImFzcy5rbSIsImNvbS5rbSIsImNvb3Aua20iLCJhc3NvLmttIiwicHJlc3NlLmttIiwibWVkZWNpbi5rbSIsIm5vdGFpcmVzLmttIiwicGhhcm1hY2llbnMua20iLCJ2ZXRlcmluYWlyZS5rbSIsImdvdXYua20iLCJrbiIs''@;'; put 'put ''Im5ldC5rbiIsIm9yZy5rbiIsImVkdS5rbiIsImdvdi5rbiIsImtwIiwiY29tLmtwIiwiZWR1LmtwIiwiZ292LmtwIiwib3JnLmtwIiwicmVwLmtwIiwidHJhLmtwIiwia3IiLCJhYy5rciIsImNvLmtyIiwiZXMua3IiLCJnby5rciIsImhzLmtyIiwia2cua3IiLCJtaWwua3IiLCJtcy5rciIs''@;'; put 'put ''Im5lLmtyIiwib3Iua3IiLCJwZS5rciIsInJlLmtyIiwic2Mua3IiLCJidXNhbi5rciIsImNodW5nYnVrLmtyIiwiY2h1bmduYW0ua3IiLCJkYWVndS5rciIsImRhZWplb24ua3IiLCJnYW5nd29uLmtyIiwiZ3dhbmdqdS5rciIsImd5ZW9uZ2J1ay5rciIsImd5ZW9uZ2dpLmtyIiwiZ3llb25n''@;'; put 'put ''bmFtLmtyIiwiaW5jaGVvbi5rciIsImplanUua3IiLCJqZW9uYnVrLmtyIiwiamVvbm5hbS5rciIsInNlb3VsLmtyIiwidWxzYW4ua3IiLCJrdyIsImNvbS5rdyIsImVkdS5rdyIsImVtYi5rdyIsImdvdi5rdyIsImluZC5rdyIsIm5ldC5rdyIsIm9yZy5rdyIsImt5IiwiZWR1Lmt5IiwiZ292''@;'; put 'put ''Lmt5IiwiY29tLmt5Iiwib3JnLmt5IiwibmV0Lmt5Iiwia3oiLCJvcmcua3oiLCJlZHUua3oiLCJuZXQua3oiLCJnb3Yua3oiLCJtaWwua3oiLCJjb20ua3oiLCJsYSIsImludC5sYSIsIm5ldC5sYSIsImluZm8ubGEiLCJlZHUubGEiLCJnb3YubGEiLCJwZXIubGEiLCJjb20ubGEiLCJvcmcu''@;'; put 'put ''bGEiLCJsYiIsImNvbS5sYiIsImVkdS5sYiIsImdvdi5sYiIsIm5ldC5sYiIsIm9yZy5sYiIsImxjIiwiY29tLmxjIiwibmV0LmxjIiwiY28ubGMiLCJvcmcubGMiLCJlZHUubGMiLCJnb3YubGMiLCJsaSIsImxrIiwiZ292LmxrIiwic2NoLmxrIiwibmV0LmxrIiwiaW50LmxrIiwiY29tLmxr''@;'; put 'put ''Iiwib3JnLmxrIiwiZWR1LmxrIiwibmdvLmxrIiwic29jLmxrIiwid2ViLmxrIiwibHRkLmxrIiwiYXNzbi5sayIsImdycC5sayIsImhvdGVsLmxrIiwiYWMubGsiLCJsciIsImNvbS5sciIsImVkdS5sciIsImdvdi5sciIsIm9yZy5sciIsIm5ldC5sciIsImxzIiwiYWMubHMiLCJiaXoubHMi''@;'; put 'put ''LCJjby5scyIsImVkdS5scyIsImdvdi5scyIsImluZm8ubHMiLCJuZXQubHMiLCJvcmcubHMiLCJzYy5scyIsImx0IiwiZ292Lmx0IiwibHUiLCJsdiIsImNvbS5sdiIsImVkdS5sdiIsImdvdi5sdiIsIm9yZy5sdiIsIm1pbC5sdiIsImlkLmx2IiwibmV0Lmx2IiwiYXNuLmx2IiwiY29uZi5s''@;'; put 'put ''diIsImx5IiwiY29tLmx5IiwibmV0Lmx5IiwiZ292Lmx5IiwicGxjLmx5IiwiZWR1Lmx5Iiwic2NoLmx5IiwibWVkLmx5Iiwib3JnLmx5IiwiaWQubHkiLCJtYSIsImNvLm1hIiwibmV0Lm1hIiwiZ292Lm1hIiwib3JnLm1hIiwiYWMubWEiLCJwcmVzcy5tYSIsIm1jIiwidG0ubWMiLCJhc3Nv''@;'; put 'put ''Lm1jIiwibWQiLCJtZSIsImNvLm1lIiwibmV0Lm1lIiwib3JnLm1lIiwiZWR1Lm1lIiwiYWMubWUiLCJnb3YubWUiLCJpdHMubWUiLCJwcml2Lm1lIiwibWciLCJvcmcubWciLCJub20ubWciLCJnb3YubWciLCJwcmQubWciLCJ0bS5tZyIsImVkdS5tZyIsIm1pbC5tZyIsImNvbS5tZyIsImNv''@;'; put 'put ''Lm1nIiwibWgiLCJtaWwiLCJtayIsImNvbS5tayIsIm9yZy5tayIsIm5ldC5tayIsImVkdS5tayIsImdvdi5tayIsImluZi5tayIsIm5hbWUubWsiLCJtbCIsImNvbS5tbCIsImVkdS5tbCIsImdvdXYubWwiLCJnb3YubWwiLCJuZXQubWwiLCJvcmcubWwiLCJwcmVzc2UubWwiLCIqLm1tIiwi''@;'; put 'put ''bW4iLCJnb3YubW4iLCJlZHUubW4iLCJvcmcubW4iLCJtbyIsImNvbS5tbyIsIm5ldC5tbyIsIm9yZy5tbyIsImVkdS5tbyIsImdvdi5tbyIsIm1vYmkiLCJtcCIsIm1xIiwibXIiLCJnb3YubXIiLCJtcyIsImNvbS5tcyIsImVkdS5tcyIsImdvdi5tcyIsIm5ldC5tcyIsIm9yZy5tcyIsIm10''@;'; put 'put ''IiwiY29tLm10IiwiZWR1Lm10IiwibmV0Lm10Iiwib3JnLm10IiwibXUiLCJjb20ubXUiLCJuZXQubXUiLCJvcmcubXUiLCJnb3YubXUiLCJhYy5tdSIsImNvLm11Iiwib3IubXUiLCJtdXNldW0iLCJhY2FkZW15Lm11c2V1bSIsImFncmljdWx0dXJlLm11c2V1bSIsImFpci5tdXNldW0iLCJh''@;'; put 'put ''aXJndWFyZC5tdXNldW0iLCJhbGFiYW1hLm11c2V1bSIsImFsYXNrYS5tdXNldW0iLCJhbWJlci5tdXNldW0iLCJhbWJ1bGFuY2UubXVzZXVtIiwiYW1lcmljYW4ubXVzZXVtIiwiYW1lcmljYW5hLm11c2V1bSIsImFtZXJpY2FuYW50aXF1ZXMubXVzZXVtIiwiYW1lcmljYW5hcnQubXVzZXVt''@;'; put 'put ''IiwiYW1zdGVyZGFtLm11c2V1bSIsImFuZC5tdXNldW0iLCJhbm5lZnJhbmsubXVzZXVtIiwiYW50aHJvLm11c2V1bSIsImFudGhyb3BvbG9neS5tdXNldW0iLCJhbnRpcXVlcy5tdXNldW0iLCJhcXVhcml1bS5tdXNldW0iLCJhcmJvcmV0dW0ubXVzZXVtIiwiYXJjaGFlb2xvZ2ljYWwubXVz''@;'; put 'put ''ZXVtIiwiYXJjaGFlb2xvZ3kubXVzZXVtIiwiYXJjaGl0ZWN0dXJlLm11c2V1bSIsImFydC5tdXNldW0iLCJhcnRhbmRkZXNpZ24ubXVzZXVtIiwiYXJ0Y2VudGVyLm11c2V1bSIsImFydGRlY28ubXVzZXVtIiwiYXJ0ZWR1Y2F0aW9uLm11c2V1bSIsImFydGdhbGxlcnkubXVzZXVtIiwiYXJ0''@;'; put 'put ''cy5tdXNldW0iLCJhcnRzYW5kY3JhZnRzLm11c2V1bSIsImFzbWF0YXJ0Lm11c2V1bSIsImFzc2Fzc2luYXRpb24ubXVzZXVtIiwiYXNzaXNpLm11c2V1bSIsImFzc29jaWF0aW9uLm11c2V1bSIsImFzdHJvbm9teS5tdXNldW0iLCJhdGxhbnRhLm11c2V1bSIsImF1c3Rpbi5tdXNldW0iLCJh''@;'; put 'put ''dXN0cmFsaWEubXVzZXVtIiwiYXV0b21vdGl2ZS5tdXNldW0iLCJhdmlhdGlvbi5tdXNldW0iLCJheGlzLm11c2V1bSIsImJhZGFqb3oubXVzZXVtIiwiYmFnaGRhZC5tdXNldW0iLCJiYWhuLm11c2V1bSIsImJhbGUubXVzZXVtIiwiYmFsdGltb3JlLm11c2V1bSIsImJhcmNlbG9uYS5tdXNl''@;'; put 'put ''dW0iLCJiYXNlYmFsbC5tdXNldW0iLCJiYXNlbC5tdXNldW0iLCJiYXRocy5tdXNldW0iLCJiYXVlcm4ubXVzZXVtIiwiYmVhdXhhcnRzLm11c2V1bSIsImJlZWxkZW5nZWx1aWQubXVzZXVtIiwiYmVsbGV2dWUubXVzZXVtIiwiYmVyZ2JhdS5tdXNldW0iLCJiZXJrZWxleS5tdXNldW0iLCJi''@;'; put 'put ''ZXJsaW4ubXVzZXVtIiwiYmVybi5tdXNldW0iLCJiaWJsZS5tdXNldW0iLCJiaWxiYW8ubXVzZXVtIiwiYmlsbC5tdXNldW0iLCJiaXJkYXJ0Lm11c2V1bSIsImJpcnRocGxhY2UubXVzZXVtIiwiYm9ubi5tdXNldW0iLCJib3N0b24ubXVzZXVtIiwiYm90YW5pY2FsLm11c2V1bSIsImJvdGFu''@;'; put 'put ''aWNhbGdhcmRlbi5tdXNldW0iLCJib3RhbmljZ2FyZGVuLm11c2V1bSIsImJvdGFueS5tdXNldW0iLCJicmFuZHl3aW5ldmFsbGV5Lm11c2V1bSIsImJyYXNpbC5tdXNldW0iLCJicmlzdG9sLm11c2V1bSIsImJyaXRpc2gubXVzZXVtIiwiYnJpdGlzaGNvbHVtYmlhLm11c2V1bSIsImJyb2Fk''@;'; put 'put ''Y2FzdC5tdXNldW0iLCJicnVuZWwubXVzZXVtIiwiYnJ1c3NlbC5tdXNldW0iLCJicnVzc2Vscy5tdXNldW0iLCJicnV4ZWxsZXMubXVzZXVtIiwiYnVpbGRpbmcubXVzZXVtIiwiYnVyZ2hvZi5tdXNldW0iLCJidXMubXVzZXVtIiwiYnVzaGV5Lm11c2V1bSIsImNhZGFxdWVzLm11c2V1bSIs''@;'; put 'put ''ImNhbGlmb3JuaWEubXVzZXVtIiwiY2FtYnJpZGdlLm11c2V1bSIsImNhbi5tdXNldW0iLCJjYW5hZGEubXVzZXVtIiwiY2FwZWJyZXRvbi5tdXNldW0iLCJjYXJyaWVyLm11c2V1bSIsImNhcnRvb25hcnQubXVzZXVtIiwiY2FzYWRlbGFtb25lZGEubXVzZXVtIiwiY2FzdGxlLm11c2V1bSIs''@;'; put 'put ''ImNhc3RyZXMubXVzZXVtIiwiY2VsdGljLm11c2V1bSIsImNlbnRlci5tdXNldW0iLCJjaGF0dGFub29nYS5tdXNldW0iLCJjaGVsdGVuaGFtLm11c2V1bSIsImNoZXNhcGVha2ViYXkubXVzZXVtIiwiY2hpY2Fnby5tdXNldW0iLCJjaGlsZHJlbi5tdXNldW0iLCJjaGlsZHJlbnMubXVzZXVt''@;'; put 'put ''IiwiY2hpbGRyZW5zZ2FyZGVuLm11c2V1bSIsImNoaXJvcHJhY3RpYy5tdXNldW0iLCJjaG9jb2xhdGUubXVzZXVtIiwiY2hyaXN0aWFuc2J1cmcubXVzZXVtIiwiY2luY2lubmF0aS5tdXNldW0iLCJjaW5lbWEubXVzZXVtIiwiY2lyY3VzLm11c2V1bSIsImNpdmlsaXNhdGlvbi5tdXNldW0i''@;'; put 'put ''LCJjaXZpbGl6YXRpb24ubXVzZXVtIiwiY2l2aWx3YXIubXVzZXVtIiwiY2xpbnRvbi5tdXNldW0iLCJjbG9jay5tdXNldW0iLCJjb2FsLm11c2V1bSIsImNvYXN0YWxkZWZlbmNlLm11c2V1bSIsImNvZHkubXVzZXVtIiwiY29sZHdhci5tdXNldW0iLCJjb2xsZWN0aW9uLm11c2V1bSIsImNv''@;'; put 'put ''bG9uaWFsd2lsbGlhbXNidXJnLm11c2V1bSIsImNvbG9yYWRvcGxhdGVhdS5tdXNldW0iLCJjb2x1bWJpYS5tdXNldW0iLCJjb2x1bWJ1cy5tdXNldW0iLCJjb21tdW5pY2F0aW9uLm11c2V1bSIsImNvbW11bmljYXRpb25zLm11c2V1bSIsImNvbW11bml0eS5tdXNldW0iLCJjb21wdXRlci5t''@;'; put 'put ''dXNldW0iLCJjb21wdXRlcmhpc3RvcnkubXVzZXVtIiwiY29tdW5pY2FceGU3XHhmNWVzLm11c2V1bSIsImNvbnRlbXBvcmFyeS5tdXNldW0iLCJjb250ZW1wb3JhcnlhcnQubXVzZXVtIiwiY29udmVudC5tdXNldW0iLCJjb3BlbmhhZ2VuLm11c2V1bSIsImNvcnBvcmF0aW9uLm11c2V1bSIs''@;'; put 'put ''ImNvcnJlaW9zLWUtdGVsZWNvbXVuaWNhXHhlN1x4ZjVlcy5tdXNldW0iLCJjb3J2ZXR0ZS5tdXNldW0iLCJjb3N0dW1lLm11c2V1bSIsImNvdW50cnllc3RhdGUubXVzZXVtIiwiY291bnR5Lm11c2V1bSIsImNyYWZ0cy5tdXNldW0iLCJjcmFuYnJvb2subXVzZXVtIiwiY3JlYXRpb24ubXVz''@;'; put 'put ''ZXVtIiwiY3VsdHVyYWwubXVzZXVtIiwiY3VsdHVyYWxjZW50ZXIubXVzZXVtIiwiY3VsdHVyZS5tdXNldW0iLCJjeWJlci5tdXNldW0iLCJjeW1ydS5tdXNldW0iLCJkYWxpLm11c2V1bSIsImRhbGxhcy5tdXNldW0iLCJkYXRhYmFzZS5tdXNldW0iLCJkZHIubXVzZXVtIiwiZGVjb3JhdGl2''@;'; put 'put ''ZWFydHMubXVzZXVtIiwiZGVsYXdhcmUubXVzZXVtIiwiZGVsbWVuaG9yc3QubXVzZXVtIiwiZGVubWFyay5tdXNldW0iLCJkZXBvdC5tdXNldW0iLCJkZXNpZ24ubXVzZXVtIiwiZGV0cm9pdC5tdXNldW0iLCJkaW5vc2F1ci5tdXNldW0iLCJkaXNjb3ZlcnkubXVzZXVtIiwiZG9sbHMubXVz''@;'; put 'put ''ZXVtIiwiZG9ub3N0aWEubXVzZXVtIiwiZHVyaGFtLm11c2V1bSIsImVhc3RhZnJpY2EubXVzZXVtIiwiZWFzdGNvYXN0Lm11c2V1bSIsImVkdWNhdGlvbi5tdXNldW0iLCJlZHVjYXRpb25hbC5tdXNldW0iLCJlZ3lwdGlhbi5tdXNldW0iLCJlaXNlbmJhaG4ubXVzZXVtIiwiZWxidXJnLm11''@;'; put 'put ''c2V1bSIsImVsdmVuZHJlbGwubXVzZXVtIiwiZW1icm9pZGVyeS5tdXNldW0iLCJlbmN5Y2xvcGVkaWMubXVzZXVtIiwiZW5nbGFuZC5tdXNldW0iLCJlbnRvbW9sb2d5Lm11c2V1bSIsImVudmlyb25tZW50Lm11c2V1bSIsImVudmlyb25tZW50YWxjb25zZXJ2YXRpb24ubXVzZXVtIiwiZXBp''@;'; put 'put ''bGVwc3kubXVzZXVtIiwiZXNzZXgubXVzZXVtIiwiZXN0YXRlLm11c2V1bSIsImV0aG5vbG9neS5tdXNldW0iLCJleGV0ZXIubXVzZXVtIiwiZXhoaWJpdGlvbi5tdXNldW0iLCJmYW1pbHkubXVzZXVtIiwiZmFybS5tdXNldW0iLCJmYXJtZXF1aXBtZW50Lm11c2V1bSIsImZhcm1lcnMubXVz''@;'; put 'put ''ZXVtIiwiZmFybXN0ZWFkLm11c2V1bSIsImZpZWxkLm11c2V1bSIsImZpZ3VlcmVzLm11c2V1bSIsImZpbGF0ZWxpYS5tdXNldW0iLCJmaWxtLm11c2V1bSIsImZpbmVhcnQubXVzZXVtIiwiZmluZWFydHMubXVzZXVtIiwiZmlubGFuZC5tdXNldW0iLCJmbGFuZGVycy5tdXNldW0iLCJmbG9y''@;'; put 'put ''aWRhLm11c2V1bSIsImZvcmNlLm11c2V1bSIsImZvcnRtaXNzb3VsYS5tdXNldW0iLCJmb3J0d29ydGgubXVzZXVtIiwiZm91bmRhdGlvbi5tdXNldW0iLCJmcmFuY2Fpc2UubXVzZXVtIiwiZnJhbmtmdXJ0Lm11c2V1bSIsImZyYW56aXNrYW5lci5tdXNldW0iLCJmcmVlbWFzb25yeS5tdXNl''@;'; put 'put ''dW0iLCJmcmVpYnVyZy5tdXNldW0iLCJmcmlib3VyZy5tdXNldW0iLCJmcm9nLm11c2V1bSIsImZ1bmRhY2lvLm11c2V1bSIsImZ1cm5pdHVyZS5tdXNldW0iLCJnYWxsZXJ5Lm11c2V1bSIsImdhcmRlbi5tdXNldW0iLCJnYXRld2F5Lm11c2V1bSIsImdlZWx2aW5jay5tdXNldW0iLCJnZW1v''@;'; put 'put ''bG9naWNhbC5tdXNldW0iLCJnZW9sb2d5Lm11c2V1bSIsImdlb3JnaWEubXVzZXVtIiwiZ2llc3Nlbi5tdXNldW0iLCJnbGFzLm11c2V1bSIsImdsYXNzLm11c2V1bSIsImdvcmdlLm11c2V1bSIsImdyYW5kcmFwaWRzLm11c2V1bSIsImdyYXoubXVzZXVtIiwiZ3Vlcm5zZXkubXVzZXVtIiwi''@;'; put 'put ''aGFsbG9mZmFtZS5tdXNldW0iLCJoYW1idXJnLm11c2V1bSIsImhhbmRzb24ubXVzZXVtIiwiaGFydmVzdGNlbGVicmF0aW9uLm11c2V1bSIsImhhd2FpaS5tdXNldW0iLCJoZWFsdGgubXVzZXVtIiwiaGVpbWF0dW5kdWhyZW4ubXVzZXVtIiwiaGVsbGFzLm11c2V1bSIsImhlbHNpbmtpLm11''@;'; put 'put ''c2V1bSIsImhlbWJ5Z2RzZm9yYnVuZC5tdXNldW0iLCJoZXJpdGFnZS5tdXNldW0iLCJoaXN0b2lyZS5tdXNldW0iLCJoaXN0b3JpY2FsLm11c2V1bSIsImhpc3RvcmljYWxzb2NpZXR5Lm11c2V1bSIsImhpc3RvcmljaG91c2VzLm11c2V1bSIsImhpc3RvcmlzY2gubXVzZXVtIiwiaGlzdG9y''@;'; put 'put ''aXNjaGVzLm11c2V1bSIsImhpc3RvcnkubXVzZXVtIiwiaGlzdG9yeW9mc2NpZW5jZS5tdXNldW0iLCJob3JvbG9neS5tdXNldW0iLCJob3VzZS5tdXNldW0iLCJodW1hbml0aWVzLm11c2V1bSIsImlsbHVzdHJhdGlvbi5tdXNldW0iLCJpbWFnZWFuZHNvdW5kLm11c2V1bSIsImluZGlhbi5t''@;'; put 'put ''dXNldW0iLCJpbmRpYW5hLm11c2V1bSIsImluZGlhbmFwb2xpcy5tdXNldW0iLCJpbmRpYW5tYXJrZXQubXVzZXVtIiwiaW50ZWxsaWdlbmNlLm11c2V1bSIsImludGVyYWN0aXZlLm11c2V1bSIsImlyYXEubXVzZXVtIiwiaXJvbi5tdXNldW0iLCJpc2xlb2ZtYW4ubXVzZXVtIiwiamFtaXNv''@;'; put 'put ''bi5tdXNldW0iLCJqZWZmZXJzb24ubXVzZXVtIiwiamVydXNhbGVtLm11c2V1bSIsImpld2VscnkubXVzZXVtIiwiamV3aXNoLm11c2V1bSIsImpld2lzaGFydC5tdXNldW0iLCJqZmsubXVzZXVtIiwiam91cm5hbGlzbS5tdXNldW0iLCJqdWRhaWNhLm11c2V1bSIsImp1ZHlnYXJsYW5kLm11''@;'; put 'put ''c2V1bSIsImp1ZWRpc2NoZXMubXVzZXVtIiwianVpZi5tdXNldW0iLCJrYXJhdGUubXVzZXVtIiwia2FyaWthdHVyLm11c2V1bSIsImtpZHMubXVzZXVtIiwia29lYmVuaGF2bi5tdXNldW0iLCJrb2Vsbi5tdXNldW0iLCJrdW5zdC5tdXNldW0iLCJrdW5zdHNhbW1sdW5nLm11c2V1bSIsImt1''@;'; put 'put ''bnN0dW5kZGVzaWduLm11c2V1bSIsImxhYm9yLm11c2V1bSIsImxhYm91ci5tdXNldW0iLCJsYWpvbGxhLm11c2V1bSIsImxhbmNhc2hpcmUubXVzZXVtIiwibGFuZGVzLm11c2V1bSIsImxhbnMubXVzZXVtIiwibFx4ZTRucy5tdXNldW0iLCJsYXJzc29uLm11c2V1bSIsImxld2lzbWlsbGVy''@;'; put 'put ''Lm11c2V1bSIsImxpbmNvbG4ubXVzZXVtIiwibGluei5tdXNldW0iLCJsaXZpbmcubXVzZXVtIiwibGl2aW5naGlzdG9yeS5tdXNldW0iLCJsb2NhbGhpc3RvcnkubXVzZXVtIiwibG9uZG9uLm11c2V1bSIsImxvc2FuZ2VsZXMubXVzZXVtIiwibG91dnJlLm11c2V1bSIsImxveWFsaXN0Lm11''@;'; put 'put ''c2V1bSIsImx1Y2VybmUubXVzZXVtIiwibHV4ZW1ib3VyZy5tdXNldW0iLCJsdXplcm4ubXVzZXVtIiwibWFkLm11c2V1bSIsIm1hZHJpZC5tdXNldW0iLCJtYWxsb3JjYS5tdXNldW0iLCJtYW5jaGVzdGVyLm11c2V1bSIsIm1hbnNpb24ubXVzZXVtIiwibWFuc2lvbnMubXVzZXVtIiwibWFu''@;'; put 'put ''eC5tdXNldW0iLCJtYXJidXJnLm11c2V1bSIsIm1hcml0aW1lLm11c2V1bSIsIm1hcml0aW1vLm11c2V1bSIsIm1hcnlsYW5kLm11c2V1bSIsIm1hcnlsaHVyc3QubXVzZXVtIiwibWVkaWEubXVzZXVtIiwibWVkaWNhbC5tdXNldW0iLCJtZWRpemluaGlzdG9yaXNjaGVzLm11c2V1bSIsIm1l''@;'; put 'put ''ZXJlcy5tdXNldW0iLCJtZW1vcmlhbC5tdXNldW0iLCJtZXNhdmVyZGUubXVzZXVtIiwibWljaGlnYW4ubXVzZXVtIiwibWlkYXRsYW50aWMubXVzZXVtIiwibWlsaXRhcnkubXVzZXVtIiwibWlsbC5tdXNldW0iLCJtaW5lcnMubXVzZXVtIiwibWluaW5nLm11c2V1bSIsIm1pbm5lc290YS5t''@;'; put 'put ''dXNldW0iLCJtaXNzaWxlLm11c2V1bSIsIm1pc3NvdWxhLm11c2V1bSIsIm1vZGVybi5tdXNldW0iLCJtb21hLm11c2V1bSIsIm1vbmV5Lm11c2V1bSIsIm1vbm1vdXRoLm11c2V1bSIsIm1vbnRpY2VsbG8ubXVzZXVtIiwibW9udHJlYWwubXVzZXVtIiwibW9zY293Lm11c2V1bSIsIm1vdG9y''@;'; put 'put ''Y3ljbGUubXVzZXVtIiwibXVlbmNoZW4ubXVzZXVtIiwibXVlbnN0ZXIubXVzZXVtIiwibXVsaG91c2UubXVzZXVtIiwibXVuY2llLm11c2V1bSIsIm11c2VldC5tdXNldW0iLCJtdXNldW1jZW50ZXIubXVzZXVtIiwibXVzZXVtdmVyZW5pZ2luZy5tdXNldW0iLCJtdXNpYy5tdXNldW0iLCJu''@;'; put 'put ''YXRpb25hbC5tdXNldW0iLCJuYXRpb25hbGZpcmVhcm1zLm11c2V1bSIsIm5hdGlvbmFsaGVyaXRhZ2UubXVzZXVtIiwibmF0aXZlYW1lcmljYW4ubXVzZXVtIiwibmF0dXJhbGhpc3RvcnkubXVzZXVtIiwibmF0dXJhbGhpc3RvcnltdXNldW0ubXVzZXVtIiwibmF0dXJhbHNjaWVuY2VzLm11''@;'; put 'put ''c2V1bSIsIm5hdHVyZS5tdXNldW0iLCJuYXR1cmhpc3RvcmlzY2hlcy5tdXNldW0iLCJuYXR1dXJ3ZXRlbnNjaGFwcGVuLm11c2V1bSIsIm5hdW1idXJnLm11c2V1bSIsIm5hdmFsLm11c2V1bSIsIm5lYnJhc2thLm11c2V1bSIsIm5ldWVzLm11c2V1bSIsIm5ld2hhbXBzaGlyZS5tdXNldW0i''@;'; put 'put ''LCJuZXdqZXJzZXkubXVzZXVtIiwibmV3bWV4aWNvLm11c2V1bSIsIm5ld3BvcnQubXVzZXVtIiwibmV3c3BhcGVyLm11c2V1bSIsIm5ld3lvcmsubXVzZXVtIiwibmllcGNlLm11c2V1bSIsIm5vcmZvbGsubXVzZXVtIiwibm9ydGgubXVzZXVtIiwibnJ3Lm11c2V1bSIsIm55Yy5tdXNldW0i''@;'; put 'put ''LCJueW55Lm11c2V1bSIsIm9jZWFub2dyYXBoaWMubXVzZXVtIiwib2NlYW5vZ3JhcGhpcXVlLm11c2V1bSIsIm9tYWhhLm11c2V1bSIsIm9ubGluZS5tdXNldW0iLCJvbnRhcmlvLm11c2V1bSIsIm9wZW5haXIubXVzZXVtIiwib3JlZ29uLm11c2V1bSIsIm9yZWdvbnRyYWlsLm11c2V1bSIs''@;'; put 'put ''Im90YWdvLm11c2V1bSIsIm94Zm9yZC5tdXNldW0iLCJwYWNpZmljLm11c2V1bSIsInBhZGVyYm9ybi5tdXNldW0iLCJwYWxhY2UubXVzZXVtIiwicGFsZW8ubXVzZXVtIiwicGFsbXNwcmluZ3MubXVzZXVtIiwicGFuYW1hLm11c2V1bSIsInBhcmlzLm11c2V1bSIsInBhc2FkZW5hLm11c2V1''@;'; put 'put ''bSIsInBoYXJtYWN5Lm11c2V1bSIsInBoaWxhZGVscGhpYS5tdXNldW0iLCJwaGlsYWRlbHBoaWFhcmVhLm11c2V1bSIsInBoaWxhdGVseS5tdXNldW0iLCJwaG9lbml4Lm11c2V1bSIsInBob3RvZ3JhcGh5Lm11c2V1bSIsInBpbG90cy5tdXNldW0iLCJwaXR0c2J1cmdoLm11c2V1bSIsInBs''@;'; put 'put ''YW5ldGFyaXVtLm11c2V1bSIsInBsYW50YXRpb24ubXVzZXVtIiwicGxhbnRzLm11c2V1bSIsInBsYXphLm11c2V1bSIsInBvcnRhbC5tdXNldW0iLCJwb3J0bGFuZC5tdXNldW0iLCJwb3J0bGxpZ2F0Lm11c2V1bSIsInBvc3RzLWFuZC10ZWxlY29tbXVuaWNhdGlvbnMubXVzZXVtIiwicHJl''@;'; put 'put ''c2VydmF0aW9uLm11c2V1bSIsInByZXNpZGlvLm11c2V1bSIsInByZXNzLm11c2V1bSIsInByb2plY3QubXVzZXVtIiwicHVibGljLm11c2V1bSIsInB1Ym9sLm11c2V1bSIsInF1ZWJlYy5tdXNldW0iLCJyYWlscm9hZC5tdXNldW0iLCJyYWlsd2F5Lm11c2V1bSIsInJlc2VhcmNoLm11c2V1''@;'; put 'put ''bSIsInJlc2lzdGFuY2UubXVzZXVtIiwicmlvZGVqYW5laXJvLm11c2V1bSIsInJvY2hlc3Rlci5tdXNldW0iLCJyb2NrYXJ0Lm11c2V1bSIsInJvbWEubXVzZXVtIiwicnVzc2lhLm11c2V1bSIsInNhaW50bG91aXMubXVzZXVtIiwic2FsZW0ubXVzZXVtIiwic2FsdmFkb3JkYWxpLm11c2V1''@;'; put 'put ''bSIsInNhbHpidXJnLm11c2V1bSIsInNhbmRpZWdvLm11c2V1bSIsInNhbmZyYW5jaXNjby5tdXNldW0iLCJzYW50YWJhcmJhcmEubXVzZXVtIiwic2FudGFjcnV6Lm11c2V1bSIsInNhbnRhZmUubXVzZXVtIiwic2Fza2F0Y2hld2FuLm11c2V1bSIsInNhdHgubXVzZXVtIiwic2F2YW5uYWhn''@;'; put 'put ''YS5tdXNldW0iLCJzY2hsZXNpc2NoZXMubXVzZXVtIiwic2Nob2VuYnJ1bm4ubXVzZXVtIiwic2Nob2tvbGFkZW4ubXVzZXVtIiwic2Nob29sLm11c2V1bSIsInNjaHdlaXoubXVzZXVtIiwic2NpZW5jZS5tdXNldW0iLCJzY2llbmNlYW5kaGlzdG9yeS5tdXNldW0iLCJzY2llbmNlYW5kaW5k''@;'; put 'put ''dXN0cnkubXVzZXVtIiwic2NpZW5jZWNlbnRlci5tdXNldW0iLCJzY2llbmNlY2VudGVycy5tdXNldW0iLCJzY2llbmNlLWZpY3Rpb24ubXVzZXVtIiwic2NpZW5jZWhpc3RvcnkubXVzZXVtIiwic2NpZW5jZXMubXVzZXVtIiwic2NpZW5jZXNuYXR1cmVsbGVzLm11c2V1bSIsInNjb3RsYW5k''@;'; put 'put ''Lm11c2V1bSIsInNlYXBvcnQubXVzZXVtIiwic2V0dGxlbWVudC5tdXNldW0iLCJzZXR0bGVycy5tdXNldW0iLCJzaGVsbC5tdXNldW0iLCJzaGVyYnJvb2tlLm11c2V1bSIsInNpYmVuaWsubXVzZXVtIiwic2lsay5tdXNldW0iLCJza2kubXVzZXVtIiwic2tvbGUubXVzZXVtIiwic29jaWV0''@;'; put 'put ''eS5tdXNldW0iLCJzb2xvZ25lLm11c2V1bSIsInNvdW5kYW5kdmlzaW9uLm11c2V1bSIsInNvdXRoY2Fyb2xpbmEubXVzZXVtIiwic291dGh3ZXN0Lm11c2V1bSIsInNwYWNlLm11c2V1bSIsInNweS5tdXNldW0iLCJzcXVhcmUubXVzZXVtIiwic3RhZHQubXVzZXVtIiwic3RhbGJhbnMubXVz''@;'; put 'put ''ZXVtIiwic3Rhcm5iZXJnLm11c2V1bSIsInN0YXRlLm11c2V1bSIsInN0YXRlb2ZkZWxhd2FyZS5tdXNldW0iLCJzdGF0aW9uLm11c2V1bSIsInN0ZWFtLm11c2V1bSIsInN0ZWllcm1hcmsubXVzZXVtIiwic3Rqb2huLm11c2V1bSIsInN0b2NraG9sbS5tdXNldW0iLCJzdHBldGVyc2J1cmcu''@;'; put 'put ''bXVzZXVtIiwic3R1dHRnYXJ0Lm11c2V1bSIsInN1aXNzZS5tdXNldW0iLCJzdXJnZW9uc2hhbGwubXVzZXVtIiwic3VycmV5Lm11c2V1bSIsInN2aXp6ZXJhLm11c2V1bSIsInN3ZWRlbi5tdXNldW0iLCJzeWRuZXkubXVzZXVtIiwidGFuay5tdXNldW0iLCJ0Y20ubXVzZXVtIiwidGVjaG5v''@;'; put 'put ''bG9neS5tdXNldW0iLCJ0ZWxla29tbXVuaWthdGlvbi5tdXNldW0iLCJ0ZWxldmlzaW9uLm11c2V1bSIsInRleGFzLm11c2V1bSIsInRleHRpbGUubXVzZXVtIiwidGhlYXRlci5tdXNldW0iLCJ0aW1lLm11c2V1bSIsInRpbWVrZWVwaW5nLm11c2V1bSIsInRvcG9sb2d5Lm11c2V1bSIsInRv''@;'; put 'put ''cmluby5tdXNldW0iLCJ0b3VjaC5tdXNldW0iLCJ0b3duLm11c2V1bSIsInRyYW5zcG9ydC5tdXNldW0iLCJ0cmVlLm11c2V1bSIsInRyb2xsZXkubXVzZXVtIiwidHJ1c3QubXVzZXVtIiwidHJ1c3RlZS5tdXNldW0iLCJ1aHJlbi5tdXNldW0iLCJ1bG0ubXVzZXVtIiwidW5kZXJzZWEubXVz''@;'; put 'put ''ZXVtIiwidW5pdmVyc2l0eS5tdXNldW0iLCJ1c2EubXVzZXVtIiwidXNhbnRpcXVlcy5tdXNldW0iLCJ1c2FydHMubXVzZXVtIiwidXNjb3VudHJ5ZXN0YXRlLm11c2V1bSIsInVzY3VsdHVyZS5tdXNldW0iLCJ1c2RlY29yYXRpdmVhcnRzLm11c2V1bSIsInVzZ2FyZGVuLm11c2V1bSIsInVz''@;'; put 'put ''aGlzdG9yeS5tdXNldW0iLCJ1c2h1YWlhLm11c2V1bSIsInVzbGl2aW5naGlzdG9yeS5tdXNldW0iLCJ1dGFoLm11c2V1bSIsInV2aWMubXVzZXVtIiwidmFsbGV5Lm11c2V1bSIsInZhbnRhYS5tdXNldW0iLCJ2ZXJzYWlsbGVzLm11c2V1bSIsInZpa2luZy5tdXNldW0iLCJ2aWxsYWdlLm11''@;'; put 'put ''c2V1bSIsInZpcmdpbmlhLm11c2V1bSIsInZpcnR1YWwubXVzZXVtIiwidmlydHVlbC5tdXNldW0iLCJ2bGFhbmRlcmVuLm11c2V1bSIsInZvbGtlbmt1bmRlLm11c2V1bSIsIndhbGVzLm11c2V1bSIsIndhbGxvbmllLm11c2V1bSIsIndhci5tdXNldW0iLCJ3YXNoaW5ndG9uZGMubXVzZXVt''@;'; put 'put ''Iiwid2F0Y2hhbmRjbG9jay5tdXNldW0iLCJ3YXRjaC1hbmQtY2xvY2subXVzZXVtIiwid2VzdGVybi5tdXNldW0iLCJ3ZXN0ZmFsZW4ubXVzZXVtIiwid2hhbGluZy5tdXNldW0iLCJ3aWxkbGlmZS5tdXNldW0iLCJ3aWxsaWFtc2J1cmcubXVzZXVtIiwid2luZG1pbGwubXVzZXVtIiwid29y''@;'; put 'put ''a3Nob3AubXVzZXVtIiwieW9yay5tdXNldW0iLCJ5b3Jrc2hpcmUubXVzZXVtIiwieW9zZW1pdGUubXVzZXVtIiwieW91dGgubXVzZXVtIiwiem9vbG9naWNhbC5tdXNldW0iLCJ6b29sb2d5Lm11c2V1bSIsIlx1MDVkOVx1MDVlOFx1MDVkNVx1MDVlOVx1MDVkY1x1MDVkOVx1MDVkZC5tdXNl''@;'; put 'put ''dW0iLCJcdTA0MzhcdTA0M2FcdTA0M2VcdTA0M2MubXVzZXVtIiwibXYiLCJhZXJvLm12IiwiYml6Lm12IiwiY29tLm12IiwiY29vcC5tdiIsImVkdS5tdiIsImdvdi5tdiIsImluZm8ubXYiLCJpbnQubXYiLCJtaWwubXYiLCJtdXNldW0ubXYiLCJuYW1lLm12IiwibmV0Lm12Iiwib3JnLm12''@;'; put 'put ''IiwicHJvLm12IiwibXciLCJhYy5tdyIsImJpei5tdyIsImNvLm13IiwiY29tLm13IiwiY29vcC5tdyIsImVkdS5tdyIsImdvdi5tdyIsImludC5tdyIsIm11c2V1bS5tdyIsIm5ldC5tdyIsIm9yZy5tdyIsIm14IiwiY29tLm14Iiwib3JnLm14IiwiZ29iLm14IiwiZWR1Lm14IiwibmV0Lm14''@;'; put 'put ''IiwibXkiLCJjb20ubXkiLCJuZXQubXkiLCJvcmcubXkiLCJnb3YubXkiLCJlZHUubXkiLCJtaWwubXkiLCJuYW1lLm15IiwibXoiLCJhYy5teiIsImFkdi5teiIsImNvLm16IiwiZWR1Lm16IiwiZ292Lm16IiwibWlsLm16IiwibmV0Lm16Iiwib3JnLm16IiwibmEiLCJpbmZvLm5hIiwicHJv''@;'; put 'put ''Lm5hIiwibmFtZS5uYSIsInNjaG9vbC5uYSIsIm9yLm5hIiwiZHIubmEiLCJ1cy5uYSIsIm14Lm5hIiwiY2EubmEiLCJpbi5uYSIsImNjLm5hIiwidHYubmEiLCJ3cy5uYSIsIm1vYmkubmEiLCJjby5uYSIsImNvbS5uYSIsIm9yZy5uYSIsIm5hbWUiLCJuYyIsImFzc28ubmMiLCJub20ubmMi''@;'; put 'put ''LCJuZSIsIm5ldCIsIm5mIiwiY29tLm5mIiwibmV0Lm5mIiwicGVyLm5mIiwicmVjLm5mIiwid2ViLm5mIiwiYXJ0cy5uZiIsImZpcm0ubmYiLCJpbmZvLm5mIiwib3RoZXIubmYiLCJzdG9yZS5uZiIsIm5nIiwiY29tLm5nIiwiZWR1Lm5nIiwiZ292Lm5nIiwiaS5uZyIsIm1pbC5uZyIsIm1v''@;'; put 'put ''YmkubmciLCJuYW1lLm5nIiwibmV0Lm5nIiwib3JnLm5nIiwic2NoLm5nIiwibmkiLCJhYy5uaSIsImJpei5uaSIsImNvLm5pIiwiY29tLm5pIiwiZWR1Lm5pIiwiZ29iLm5pIiwiaW4ubmkiLCJpbmZvLm5pIiwiaW50Lm5pIiwibWlsLm5pIiwibmV0Lm5pIiwibm9tLm5pIiwib3JnLm5pIiwi''@;'; put 'put ''d2ViLm5pIiwibmwiLCJubyIsImZocy5ubyIsInZncy5ubyIsImZ5bGtlc2JpYmwubm8iLCJmb2xrZWJpYmwubm8iLCJtdXNldW0ubm8iLCJpZHJldHQubm8iLCJwcml2Lm5vIiwibWlsLm5vIiwic3RhdC5ubyIsImRlcC5ubyIsImtvbW11bmUubm8iLCJoZXJhZC5ubyIsImFhLm5vIiwiYWgu''@;'; put 'put ''bm8iLCJidS5ubyIsImZtLm5vIiwiaGwubm8iLCJobS5ubyIsImphbi1tYXllbi5ubyIsIm1yLm5vIiwibmwubm8iLCJudC5ubyIsIm9mLm5vIiwib2wubm8iLCJvc2xvLm5vIiwicmwubm8iLCJzZi5ubyIsInN0Lm5vIiwic3ZhbGJhcmQubm8iLCJ0bS5ubyIsInRyLm5vIiwidmEubm8iLCJ2''@;'; put 'put ''Zi5ubyIsImdzLmFhLm5vIiwiZ3MuYWgubm8iLCJncy5idS5ubyIsImdzLmZtLm5vIiwiZ3MuaGwubm8iLCJncy5obS5ubyIsImdzLmphbi1tYXllbi5ubyIsImdzLm1yLm5vIiwiZ3Mubmwubm8iLCJncy5udC5ubyIsImdzLm9mLm5vIiwiZ3Mub2wubm8iLCJncy5vc2xvLm5vIiwiZ3Mucmwu''@;'; put 'put ''bm8iLCJncy5zZi5ubyIsImdzLnN0Lm5vIiwiZ3Muc3ZhbGJhcmQubm8iLCJncy50bS5ubyIsImdzLnRyLm5vIiwiZ3MudmEubm8iLCJncy52Zi5ubyIsImFrcmVoYW1uLm5vIiwiXHhlNWtyZWhhbW4ubm8iLCJhbGdhcmQubm8iLCJceGU1bGdceGU1cmQubm8iLCJhcm5hLm5vIiwiYnJ1bXVu''@;'; put 'put ''ZGRhbC5ubyIsImJyeW5lLm5vIiwiYnJvbm5veXN1bmQubm8iLCJiclx4Zjhublx4Zjh5c3VuZC5ubyIsImRyb2Jhay5ubyIsImRyXHhmOGJhay5ubyIsImVnZXJzdW5kLm5vIiwiZmV0c3VuZC5ubyIsImZsb3JvLm5vIiwiZmxvclx4Zjgubm8iLCJmcmVkcmlrc3RhZC5ubyIsImhva2tzdW5k''@;'; put 'put ''Lm5vIiwiaG9uZWZvc3Mubm8iLCJoXHhmOG5lZm9zcy5ubyIsImplc3NoZWltLm5vIiwiam9ycGVsYW5kLm5vIiwialx4ZjhycGVsYW5kLm5vIiwia2lya2VuZXMubm8iLCJrb3BlcnZpay5ubyIsImtyb2tzdGFkZWx2YS5ubyIsImxhbmdldmFnLm5vIiwibGFuZ2V2XHhlNWcubm8iLCJsZWly''@;'; put 'put ''dmlrLm5vIiwibWpvbmRhbGVuLm5vIiwibWpceGY4bmRhbGVuLm5vIiwibW8taS1yYW5hLm5vIiwibW9zam9lbi5ubyIsIm1vc2pceGY4ZW4ubm8iLCJuZXNvZGR0YW5nZW4ubm8iLCJvcmthbmdlci5ubyIsIm9zb3lyby5ubyIsIm9zXHhmOHlyby5ubyIsInJhaG9sdC5ubyIsInJceGU1aG9s''@;'; put 'put ''dC5ubyIsInNhbmRuZXNzam9lbi5ubyIsInNhbmRuZXNzalx4Zjhlbi5ubyIsInNrZWRzbW9rb3JzZXQubm8iLCJzbGF0dHVtLm5vIiwic3BqZWxrYXZpay5ubyIsInN0YXRoZWxsZS5ubyIsInN0YXZlcm4ubm8iLCJzdGpvcmRhbHNoYWxzZW4ubm8iLCJzdGpceGY4cmRhbHNoYWxzZW4ubm8i''@;'; put 'put ''LCJ0YW5hbmdlci5ubyIsInRyYW5ieS5ubyIsInZvc3NldmFuZ2VuLm5vIiwiYWZqb3JkLm5vIiwiXHhlNWZqb3JkLm5vIiwiYWdkZW5lcy5ubyIsImFsLm5vIiwiXHhlNWwubm8iLCJhbGVzdW5kLm5vIiwiXHhlNWxlc3VuZC5ubyIsImFsc3RhaGF1Zy5ubyIsImFsdGEubm8iLCJceGUxbHRc''@;'; put 'put ''eGUxLm5vIiwiYWxhaGVhZGp1Lm5vIiwiXHhlMWxhaGVhZGp1Lm5vIiwiYWx2ZGFsLm5vIiwiYW1saS5ubyIsIlx4ZTVtbGkubm8iLCJhbW90Lm5vIiwiXHhlNW1vdC5ubyIsImFuZGVidS5ubyIsImFuZG95Lm5vIiwiYW5kXHhmOHkubm8iLCJhbmRhc3VvbG8ubm8iLCJhcmRhbC5ubyIsIlx4''@;'; put 'put ''ZTVyZGFsLm5vIiwiYXJlbWFyay5ubyIsImFyZW5kYWwubm8iLCJceGU1cy5ubyIsImFzZXJhbC5ubyIsIlx4ZTVzZXJhbC5ubyIsImFza2VyLm5vIiwiYXNraW0ubm8iLCJhc2t2b2xsLm5vIiwiYXNrb3kubm8iLCJhc2tceGY4eS5ubyIsImFzbmVzLm5vIiwiXHhlNXNuZXMubm8iLCJhdWRu''@;'; put 'put ''ZWRhbG4ubm8iLCJhdWtyYS5ubyIsImF1cmUubm8iLCJhdXJsYW5kLm5vIiwiYXVyc2tvZy1ob2xhbmQubm8iLCJhdXJza29nLWhceGY4bGFuZC5ubyIsImF1c3Rldm9sbC5ubyIsImF1c3RyaGVpbS5ubyIsImF2ZXJveS5ubyIsImF2ZXJceGY4eS5ubyIsImJhbGVzdHJhbmQubm8iLCJiYWxs''@;'; put 'put ''YW5nZW4ubm8iLCJiYWxhdC5ubyIsImJceGUxbFx4ZTF0Lm5vIiwiYmFsc2Zqb3JkLm5vIiwiYmFoY2NhdnVvdG5hLm5vIiwiYlx4ZTFoY2NhdnVvdG5hLm5vIiwiYmFtYmxlLm5vIiwiYmFyZHUubm8iLCJiZWFyZHUubm8iLCJiZWlhcm4ubm8iLCJiYWpkZGFyLm5vIiwiYlx4ZTFqZGRhci5u''@;'; put 'put ''byIsImJhaWRhci5ubyIsImJceGUxaWRceGUxci5ubyIsImJlcmcubm8iLCJiZXJnZW4ubm8iLCJiZXJsZXZhZy5ubyIsImJlcmxldlx4ZTVnLm5vIiwiYmVhcmFsdmFoa2kubm8iLCJiZWFyYWx2XHhlMWhraS5ubyIsImJpbmRhbC5ubyIsImJpcmtlbmVzLm5vIiwiYmphcmtveS5ubyIsImJq''@;'; put 'put ''YXJrXHhmOHkubm8iLCJiamVya3JlaW0ubm8iLCJianVnbi5ubyIsImJvZG8ubm8iLCJib2RceGY4Lm5vIiwiYmFkYWRkamEubm8iLCJiXHhlNWRceGU1ZGRqXHhlNS5ubyIsImJ1ZGVqanUubm8iLCJib2tuLm5vIiwiYnJlbWFuZ2VyLm5vIiwiYnJvbm5veS5ubyIsImJyXHhmOG5uXHhmOHku''@;'; put 'put ''bm8iLCJieWdsYW5kLm5vIiwiYnlrbGUubm8iLCJiYXJ1bS5ubyIsImJceGU2cnVtLm5vIiwiYm8udGVsZW1hcmsubm8iLCJiXHhmOC50ZWxlbWFyay5ubyIsImJvLm5vcmRsYW5kLm5vIiwiYlx4Zjgubm9yZGxhbmQubm8iLCJiaWV2YXQubm8iLCJiaWV2XHhlMXQubm8iLCJib21sby5ubyIs''@;'; put 'put ''ImJceGY4bWxvLm5vIiwiYmF0c2Zqb3JkLm5vIiwiYlx4ZTV0c2Zqb3JkLm5vIiwiYmFoY2F2dW90bmEubm8iLCJiXHhlMWhjYXZ1b3RuYS5ubyIsImRvdnJlLm5vIiwiZHJhbW1lbi5ubyIsImRyYW5nZWRhbC5ubyIsImR5cm95Lm5vIiwiZHlyXHhmOHkubm8iLCJkb25uYS5ubyIsImRceGY4''@;'; put 'put ''bm5hLm5vIiwiZWlkLm5vIiwiZWlkZmpvcmQubm8iLCJlaWRzYmVyZy5ubyIsImVpZHNrb2cubm8iLCJlaWRzdm9sbC5ubyIsImVpZ2Vyc3VuZC5ubyIsImVsdmVydW0ubm8iLCJlbmViYWtrLm5vIiwiZW5nZXJkYWwubm8iLCJldG5lLm5vIiwiZXRuZWRhbC5ubyIsImV2ZW5lcy5ubyIsImV2''@;'; put 'put ''ZW5hc3NpLm5vIiwiZXZlblx4ZTFcdTAxNjFcdTAxNjFpLm5vIiwiZXZqZS1vZy1ob3JubmVzLm5vIiwiZmFyc3VuZC5ubyIsImZhdXNrZS5ubyIsImZ1b3Nza28ubm8iLCJmdW9pc2t1Lm5vIiwiZmVkamUubm8iLCJmZXQubm8iLCJmaW5ub3kubm8iLCJmaW5uXHhmOHkubm8iLCJmaXRqYXIu''@;'; put 'put ''bm8iLCJmamFsZXIubm8iLCJmamVsbC5ubyIsImZsYWtzdGFkLm5vIiwiZmxhdGFuZ2VyLm5vIiwiZmxla2tlZmpvcmQubm8iLCJmbGVzYmVyZy5ubyIsImZsb3JhLm5vIiwiZmxhLm5vIiwiZmxceGU1Lm5vIiwiZm9sbGRhbC5ubyIsImZvcnNhbmQubm8iLCJmb3NuZXMubm8iLCJmcmVpLm5v''@;'; put 'put ''IiwiZnJvZ24ubm8iLCJmcm9sYW5kLm5vIiwiZnJvc3RhLm5vIiwiZnJhbmEubm8iLCJmclx4ZTZuYS5ubyIsImZyb3lhLm5vIiwiZnJceGY4eWEubm8iLCJmdXNhLm5vIiwiZnlyZXNkYWwubm8iLCJmb3JkZS5ubyIsImZceGY4cmRlLm5vIiwiZ2FtdmlrLm5vIiwiZ2FuZ2F2aWlrYS5ubyIs''@;'; put 'put ''ImdceGUxXHUwMTRiZ2F2aWlrYS5ubyIsImdhdWxhci5ubyIsImdhdXNkYWwubm8iLCJnaWxkZXNrYWwubm8iLCJnaWxkZXNrXHhlNWwubm8iLCJnaXNrZS5ubyIsImdqZW1uZXMubm8iLCJnamVyZHJ1bS5ubyIsImdqZXJzdGFkLm5vIiwiZ2plc2RhbC5ubyIsImdqb3Zpay5ubyIsImdqXHhm''@;'; put 'put ''OHZpay5ubyIsImdsb3BwZW4ubm8iLCJnb2wubm8iLCJncmFuLm5vIiwiZ3JhbmUubm8iLCJncmFudmluLm5vIiwiZ3JhdGFuZ2VuLm5vIiwiZ3JpbXN0YWQubm8iLCJncm9uZy5ubyIsImtyYWFuZ2hrZS5ubyIsImtyXHhlNWFuZ2hrZS5ubyIsImdydWUubm8iLCJndWxlbi5ubyIsImhhZHNl''@;'; put 'put ''bC5ubyIsImhhbGRlbi5ubyIsImhhbHNhLm5vIiwiaGFtYXIubm8iLCJoYW1hcm95Lm5vIiwiaGFibWVyLm5vIiwiaFx4ZTFibWVyLm5vIiwiaGFwbWlyLm5vIiwiaFx4ZTFwbWlyLm5vIiwiaGFtbWVyZmVzdC5ubyIsImhhbW1hcmZlYXN0YS5ubyIsImhceGUxbW1ceGUxcmZlYXN0YS5ubyIs''@;'; put 'put ''ImhhcmFtLm5vIiwiaGFyZWlkLm5vIiwiaGFyc3RhZC5ubyIsImhhc3Zpay5ubyIsImFrbm9sdW9rdGEubm8iLCJceGUxa1x1MDE0Ym9sdW9rdGEubm8iLCJoYXR0ZmplbGxkYWwubm8iLCJhYXJib3J0ZS5ubyIsImhhdWdlc3VuZC5ubyIsImhlbW5lLm5vIiwiaGVtbmVzLm5vIiwiaGVtc2Vk''@;'; put 'put ''YWwubm8iLCJoZXJveS5tb3JlLW9nLXJvbXNkYWwubm8iLCJoZXJceGY4eS5tXHhmOHJlLW9nLXJvbXNkYWwubm8iLCJoZXJveS5ub3JkbGFuZC5ubyIsImhlclx4Zjh5Lm5vcmRsYW5kLm5vIiwiaGl0cmEubm8iLCJoamFydGRhbC5ubyIsImhqZWxtZWxhbmQubm8iLCJob2JvbC5ubyIsImhv''@;'; put 'put ''Ylx4ZjhsLm5vIiwiaG9mLm5vIiwiaG9sLm5vIiwiaG9sZS5ubyIsImhvbG1lc3RyYW5kLm5vIiwiaG9sdGFsZW4ubm8iLCJob2x0XHhlNWxlbi5ubyIsImhvcm5pbmRhbC5ubyIsImhvcnRlbi5ubyIsImh1cmRhbC5ubyIsImh1cnVtLm5vIiwiaHZhbGVyLm5vIiwiaHlsbGVzdGFkLm5vIiwi''@;'; put 'put ''aGFnZWJvc3RhZC5ubyIsImhceGU2Z2Vib3N0YWQubm8iLCJob3lhbmdlci5ubyIsImhceGY4eWFuZ2VyLm5vIiwiaG95bGFuZGV0Lm5vIiwiaFx4Zjh5bGFuZGV0Lm5vIiwiaGEubm8iLCJoXHhlNS5ubyIsImliZXN0YWQubm8iLCJpbmRlcm95Lm5vIiwiaW5kZXJceGY4eS5ubyIsIml2ZWxh''@;'; put 'put ''bmQubm8iLCJqZXZuYWtlci5ubyIsImpvbmRhbC5ubyIsImpvbHN0ZXIubm8iLCJqXHhmOGxzdGVyLm5vIiwia2FyYXNqb2subm8iLCJrYXJhc2pvaGthLm5vIiwia1x4ZTFyXHhlMVx1MDE2MWpvaGthLm5vIiwia2FybHNveS5ubyIsImdhbHNhLm5vIiwiZ1x4ZTFsc1x4ZTEubm8iLCJrYXJt''@;'; put 'put ''b3kubm8iLCJrYXJtXHhmOHkubm8iLCJrYXV0b2tlaW5vLm5vIiwiZ3VvdmRhZ2VhaWRudS5ubyIsImtsZXBwLm5vIiwia2xhYnUubm8iLCJrbFx4ZTZidS5ubyIsImtvbmdzYmVyZy5ubyIsImtvbmdzdmluZ2VyLm5vIiwia3JhZ2Vyby5ubyIsImtyYWdlclx4Zjgubm8iLCJrcmlzdGlhbnNh''@;'; put 'put ''bmQubm8iLCJrcmlzdGlhbnN1bmQubm8iLCJrcm9kc2hlcmFkLm5vIiwia3JceGY4ZHNoZXJhZC5ubyIsImt2YWxzdW5kLm5vIiwicmFoa2tlcmF2anUubm8iLCJyXHhlMWhra2VyXHhlMXZqdS5ubyIsImt2YW0ubm8iLCJrdmluZXNkYWwubm8iLCJrdmlubmhlcmFkLm5vIiwia3ZpdGVzZWlk''@;'; put 'put ''Lm5vIiwia3ZpdHNveS5ubyIsImt2aXRzXHhmOHkubm8iLCJrdmFmam9yZC5ubyIsImt2XHhlNmZqb3JkLm5vIiwiZ2llaHRhdnVvYXRuYS5ubyIsImt2YW5hbmdlbi5ubyIsImt2XHhlNm5hbmdlbi5ubyIsIm5hdnVvdG5hLm5vIiwiblx4ZTF2dW90bmEubm8iLCJrYWZqb3JkLm5vIiwia1x4''@;'; put 'put ''ZTVmam9yZC5ubyIsImdhaXZ1b3RuYS5ubyIsImdceGUxaXZ1b3RuYS5ubyIsImxhcnZpay5ubyIsImxhdmFuZ2VuLm5vIiwibGF2YWdpcy5ubyIsImxvYWJhdC5ubyIsImxvYWJceGUxdC5ubyIsImxlYmVzYnkubm8iLCJkYXZ2ZXNpaWRhLm5vIiwibGVpa2FuZ2VyLm5vIiwibGVpcmZqb3Jk''@;'; put 'put ''Lm5vIiwibGVrYS5ubyIsImxla3N2aWsubm8iLCJsZW52aWsubm8iLCJsZWFuZ2F2aWlrYS5ubyIsImxlYVx1MDE0Ymdhdmlpa2Eubm8iLCJsZXNqYS5ubyIsImxldmFuZ2VyLm5vIiwibGllci5ubyIsImxpZXJuZS5ubyIsImxpbGxlaGFtbWVyLm5vIiwibGlsbGVzYW5kLm5vIiwibGluZGVz''@;'; put 'put ''bmVzLm5vIiwibGluZGFzLm5vIiwibGluZFx4ZTVzLm5vIiwibG9tLm5vIiwibG9wcGEubm8iLCJsYWhwcGkubm8iLCJsXHhlMWhwcGkubm8iLCJsdW5kLm5vIiwibHVubmVyLm5vIiwibHVyb3kubm8iLCJsdXJceGY4eS5ubyIsImx1c3Rlci5ubyIsImx5bmdkYWwubm8iLCJseW5nZW4ubm8i''@;'; put 'put ''LCJpdmd1Lm5vIiwibGFyZGFsLm5vIiwibGVyZGFsLm5vIiwibFx4ZTZyZGFsLm5vIiwibG9kaW5nZW4ubm8iLCJsXHhmOGRpbmdlbi5ubyIsImxvcmVuc2tvZy5ubyIsImxceGY4cmVuc2tvZy5ubyIsImxvdGVuLm5vIiwibFx4Zjh0ZW4ubm8iLCJtYWx2aWsubm8iLCJtYXNveS5ubyIsIm1c''@;'; put 'put ''eGU1c1x4Zjh5Lm5vIiwibXVvc2F0Lm5vIiwibXVvc1x4ZTF0Lm5vIiwibWFuZGFsLm5vIiwibWFya2VyLm5vIiwibWFybmFyZGFsLm5vIiwibWFzZmpvcmRlbi5ubyIsIm1lbGFuZC5ubyIsIm1lbGRhbC5ubyIsIm1lbGh1cy5ubyIsIm1lbG95Lm5vIiwibWVsXHhmOHkubm8iLCJtZXJha2Vy''@;'; put 'put ''Lm5vIiwibWVyXHhlNWtlci5ubyIsIm1vYXJla2Uubm8iLCJtb1x4ZTVyZWtlLm5vIiwibWlkc3VuZC5ubyIsIm1pZHRyZS1nYXVsZGFsLm5vIiwibW9kYWxlbi5ubyIsIm1vZHVtLm5vIiwibW9sZGUubm8iLCJtb3NrZW5lcy5ubyIsIm1vc3Mubm8iLCJtb3N2aWsubm8iLCJtYWxzZWx2Lm5v''@;'; put 'put ''IiwibVx4ZTVsc2Vsdi5ubyIsIm1hbGF0dnVvcG1pLm5vIiwibVx4ZTFsYXR2dW9wbWkubm8iLCJuYW1kYWxzZWlkLm5vIiwiYWVqcmllLm5vIiwibmFtc29zLm5vIiwibmFtc3Nrb2dhbi5ubyIsIm5hYW1lc2pldnVlbWllLm5vIiwiblx4ZTVceGU1bWVzamV2dWVtaWUubm8iLCJsYWFrZXN2''@;'; put 'put ''dWVtaWUubm8iLCJuYW5uZXN0YWQubm8iLCJuYXJ2aWsubm8iLCJuYXJ2aWlrYS5ubyIsIm5hdXN0ZGFsLm5vIiwibmVkcmUtZWlrZXIubm8iLCJuZXMuYWtlcnNodXMubm8iLCJuZXMuYnVza2VydWQubm8iLCJuZXNuYS5ubyIsIm5lc29kZGVuLm5vIiwibmVzc2VieS5ubyIsInVuamFyZ2Eu''@;'; put 'put ''bm8iLCJ1bmpceGUxcmdhLm5vIiwibmVzc2V0Lm5vIiwibmlzc2VkYWwubm8iLCJuaXR0ZWRhbC5ubyIsIm5vcmQtYXVyZGFsLm5vIiwibm9yZC1mcm9uLm5vIiwibm9yZC1vZGFsLm5vIiwibm9yZGRhbC5ubyIsIm5vcmRrYXBwLm5vIiwiZGF2dmVuamFyZ2Eubm8iLCJkYXZ2ZW5qXHhlMXJn''@;'; put 'put ''YS5ubyIsIm5vcmRyZS1sYW5kLm5vIiwibm9yZHJlaXNhLm5vIiwicmFpc2Eubm8iLCJyXHhlMWlzYS5ubyIsIm5vcmUtb2ctdXZkYWwubm8iLCJub3RvZGRlbi5ubyIsIm5hcm95Lm5vIiwiblx4ZTZyXHhmOHkubm8iLCJub3R0ZXJveS5ubyIsIm5ceGY4dHRlclx4Zjh5Lm5vIiwib2RkYS5u''@;'; put 'put ''byIsIm9rc25lcy5ubyIsIlx4Zjhrc25lcy5ubyIsIm9wcGRhbC5ubyIsIm9wcGVnYXJkLm5vIiwib3BwZWdceGU1cmQubm8iLCJvcmtkYWwubm8iLCJvcmxhbmQubm8iLCJceGY4cmxhbmQubm8iLCJvcnNrb2cubm8iLCJceGY4cnNrb2cubm8iLCJvcnN0YS5ubyIsIlx4Zjhyc3RhLm5vIiwi''@;'; put 'put ''b3MuaGVkbWFyay5ubyIsIm9zLmhvcmRhbGFuZC5ubyIsIm9zZW4ubm8iLCJvc3Rlcm95Lm5vIiwib3N0ZXJceGY4eS5ubyIsIm9zdHJlLXRvdGVuLm5vIiwiXHhmOHN0cmUtdG90ZW4ubm8iLCJvdmVyaGFsbGEubm8iLCJvdnJlLWVpa2VyLm5vIiwiXHhmOHZyZS1laWtlci5ubyIsIm95ZXIu''@;'; put 'put ''bm8iLCJceGY4eWVyLm5vIiwib3lnYXJkZW4ubm8iLCJceGY4eWdhcmRlbi5ubyIsIm95c3RyZS1zbGlkcmUubm8iLCJceGY4eXN0cmUtc2xpZHJlLm5vIiwicG9yc2FuZ2VyLm5vIiwicG9yc2FuZ3Uubm8iLCJwb3JzXHhlMVx1MDE0Ymd1Lm5vIiwicG9yc2dydW5uLm5vIiwicmFkb3kubm8i''@;'; put 'put ''LCJyYWRceGY4eS5ubyIsInJha2tlc3RhZC5ubyIsInJhbmEubm8iLCJydW92YXQubm8iLCJyYW5kYWJlcmcubm8iLCJyYXVtYS5ubyIsInJlbmRhbGVuLm5vIiwicmVubmVidS5ubyIsInJlbm5lc295Lm5vIiwicmVubmVzXHhmOHkubm8iLCJyaW5kYWwubm8iLCJyaW5nZWJ1Lm5vIiwicmlu''@;'; put 'put ''Z2VyaWtlLm5vIiwicmluZ3Nha2VyLm5vIiwicmlzc2Eubm8iLCJyaXNvci5ubyIsInJpc1x4ZjhyLm5vIiwicm9hbi5ubyIsInJvbGxhZy5ubyIsInJ5Z2dlLm5vIiwicmFsaW5nZW4ubm8iLCJyXHhlNmxpbmdlbi5ubyIsInJvZG95Lm5vIiwiclx4ZjhkXHhmOHkubm8iLCJyb21za29nLm5v''@;'; put 'put ''Iiwiclx4Zjhtc2tvZy5ubyIsInJvcm9zLm5vIiwiclx4Zjhyb3Mubm8iLCJyb3N0Lm5vIiwiclx4ZjhzdC5ubyIsInJveWtlbi5ubyIsInJceGY4eWtlbi5ubyIsInJveXJ2aWsubm8iLCJyXHhmOHlydmlrLm5vIiwicmFkZS5ubyIsInJceGU1ZGUubm8iLCJzYWxhbmdlbi5ubyIsInNpZWxs''@;'; put 'put ''YWsubm8iLCJzYWx0ZGFsLm5vIiwic2FsYXQubm8iLCJzXHhlMWxceGUxdC5ubyIsInNceGUxbGF0Lm5vIiwic2FtbmFuZ2VyLm5vIiwic2FuZGUubW9yZS1vZy1yb21zZGFsLm5vIiwic2FuZGUubVx4ZjhyZS1vZy1yb21zZGFsLm5vIiwic2FuZGUudmVzdGZvbGQubm8iLCJzYW5kZWZqb3Jk''@;'; put 'put ''Lm5vIiwic2FuZG5lcy5ubyIsInNhbmRveS5ubyIsInNhbmRceGY4eS5ubyIsInNhcnBzYm9yZy5ubyIsInNhdWRhLm5vIiwic2F1aGVyYWQubm8iLCJzZWwubm8iLCJzZWxidS5ubyIsInNlbGplLm5vIiwic2Vsam9yZC5ubyIsInNpZ2RhbC5ubyIsInNpbGphbi5ubyIsInNpcmRhbC5ubyIs''@;'; put 'put ''InNrYXVuLm5vIiwic2tlZHNtby5ubyIsInNraS5ubyIsInNraWVuLm5vIiwic2tpcHR2ZXQubm8iLCJza2plcnZveS5ubyIsInNramVydlx4Zjh5Lm5vIiwic2tpZXJ2YS5ubyIsInNraWVydlx4ZTEubm8iLCJza2phay5ubyIsInNralx4ZTVrLm5vIiwic2tvZGplLm5vIiwic2thbmxhbmQu''@;'; put 'put ''bm8iLCJza1x4ZTVubGFuZC5ubyIsInNrYW5pdC5ubyIsInNrXHhlMW5pdC5ubyIsInNtb2xhLm5vIiwic21ceGY4bGEubm8iLCJzbmlsbGZqb3JkLm5vIiwic25hc2Eubm8iLCJzblx4ZTVzYS5ubyIsInNub2FzYS5ubyIsInNuYWFzZS5ubyIsInNuXHhlNWFzZS5ubyIsInNvZ25kYWwubm8i''@;'; put 'put ''LCJzb2tuZGFsLm5vIiwic29sYS5ubyIsInNvbHVuZC5ubyIsInNvbmdkYWxlbi5ubyIsInNvcnRsYW5kLm5vIiwic3B5ZGViZXJnLm5vIiwic3RhbmdlLm5vIiwic3RhdmFuZ2VyLm5vIiwic3RlaWdlbi5ubyIsInN0ZWlua2plci5ubyIsInN0am9yZGFsLm5vIiwic3RqXHhmOHJkYWwubm8i''@;'; put 'put ''LCJzdG9ra2Uubm8iLCJzdG9yLWVsdmRhbC5ubyIsInN0b3JkLm5vIiwic3RvcmRhbC5ubyIsInN0b3Jmam9yZC5ubyIsIm9tYXN2dW90bmEubm8iLCJzdHJhbmQubm8iLCJzdHJhbmRhLm5vIiwic3RyeW4ubm8iLCJzdWxhLm5vIiwic3VsZGFsLm5vIiwic3VuZC5ubyIsInN1bm5kYWwubm8i''@;'; put 'put ''LCJzdXJuYWRhbC5ubyIsInN2ZWlvLm5vIiwic3ZlbHZpay5ubyIsInN5a2t5bHZlbi5ubyIsInNvZ25lLm5vIiwic1x4ZjhnbmUubm8iLCJzb21uYS5ubyIsInNceGY4bW5hLm5vIiwic29uZHJlLWxhbmQubm8iLCJzXHhmOG5kcmUtbGFuZC5ubyIsInNvci1hdXJkYWwubm8iLCJzXHhmOHIt''@;'; put 'put ''YXVyZGFsLm5vIiwic29yLWZyb24ubm8iLCJzXHhmOHItZnJvbi5ubyIsInNvci1vZGFsLm5vIiwic1x4ZjhyLW9kYWwubm8iLCJzb3ItdmFyYW5nZXIubm8iLCJzXHhmOHItdmFyYW5nZXIubm8iLCJtYXR0YS12YXJqamF0Lm5vIiwibVx4ZTF0dGEtdlx4ZTFyamphdC5ubyIsInNvcmZvbGQu''@;'; put 'put ''bm8iLCJzXHhmOHJmb2xkLm5vIiwic29ycmVpc2Eubm8iLCJzXHhmOHJyZWlzYS5ubyIsInNvcnVtLm5vIiwic1x4ZjhydW0ubm8iLCJ0YW5hLm5vIiwiZGVhdG51Lm5vIiwidGltZS5ubyIsInRpbmd2b2xsLm5vIiwidGlubi5ubyIsInRqZWxkc3VuZC5ubyIsImRpZWxkZGFudW9ycmkubm8i''@;'; put 'put ''LCJ0am9tZS5ubyIsInRqXHhmOG1lLm5vIiwidG9ra2Uubm8iLCJ0b2xnYS5ubyIsInRvcnNrZW4ubm8iLCJ0cmFub3kubm8iLCJ0cmFuXHhmOHkubm8iLCJ0cm9tc28ubm8iLCJ0cm9tc1x4Zjgubm8iLCJ0cm9tc2Eubm8iLCJyb21zYS5ubyIsInRyb25kaGVpbS5ubyIsInRyb2FuZGluLm5v''@;'; put 'put ''IiwidHJ5c2lsLm5vIiwidHJhbmEubm8iLCJ0clx4ZTZuYS5ubyIsInRyb2dzdGFkLm5vIiwidHJceGY4Z3N0YWQubm8iLCJ0dmVkZXN0cmFuZC5ubyIsInR5ZGFsLm5vIiwidHluc2V0Lm5vIiwidHlzZmpvcmQubm8iLCJkaXZ0YXN2dW9kbmEubm8iLCJkaXZ0dGFzdnVvdG5hLm5vIiwidHlz''@;'; put 'put ''bmVzLm5vIiwidHlzdmFyLm5vIiwidHlzdlx4ZTZyLm5vIiwidG9uc2Jlcmcubm8iLCJ0XHhmOG5zYmVyZy5ubyIsInVsbGVuc2FrZXIubm8iLCJ1bGxlbnN2YW5nLm5vIiwidWx2aWsubm8iLCJ1dHNpcmEubm8iLCJ2YWRzby5ubyIsInZhZHNceGY4Lm5vIiwiY2FoY2VzdW9sby5ubyIsIlx1''@;'; put 'put ''MDEwZFx4ZTFoY2VzdW9sby5ubyIsInZha3NkYWwubm8iLCJ2YWxsZS5ubyIsInZhbmcubm8iLCJ2YW55bHZlbi5ubyIsInZhcmRvLm5vIiwidmFyZFx4Zjgubm8iLCJ2YXJnZ2F0Lm5vIiwidlx4ZTFyZ2dceGUxdC5ubyIsInZlZnNuLm5vIiwidmFhcHN0ZS5ubyIsInZlZ2Eubm8iLCJ2ZWdh''@;'; put 'put ''cnNoZWkubm8iLCJ2ZWdceGU1cnNoZWkubm8iLCJ2ZW5uZXNsYS5ubyIsInZlcmRhbC5ubyIsInZlcnJhbi5ubyIsInZlc3RieS5ubyIsInZlc3RuZXMubm8iLCJ2ZXN0cmUtc2xpZHJlLm5vIiwidmVzdHJlLXRvdGVuLm5vIiwidmVzdHZhZ295Lm5vIiwidmVzdHZceGU1Z1x4Zjh5Lm5vIiwi''@;'; put 'put ''dmV2ZWxzdGFkLm5vIiwidmlrLm5vIiwidmlrbmEubm8iLCJ2aW5kYWZqb3JkLm5vIiwidm9sZGEubm8iLCJ2b3NzLm5vIiwidmFyb3kubm8iLCJ2XHhlNnJceGY4eS5ubyIsInZhZ2FuLm5vIiwidlx4ZTVnYW4ubm8iLCJ2b2FnYXQubm8iLCJ2YWdzb3kubm8iLCJ2XHhlNWdzXHhmOHkubm8i''@;'; put 'put ''LCJ2YWdhLm5vIiwidlx4ZTVnXHhlNS5ubyIsInZhbGVyLm9zdGZvbGQubm8iLCJ2XHhlNWxlci5ceGY4c3Rmb2xkLm5vIiwidmFsZXIuaGVkbWFyay5ubyIsInZceGU1bGVyLmhlZG1hcmsubm8iLCIqLm5wIiwibnIiLCJiaXoubnIiLCJpbmZvLm5yIiwiZ292Lm5yIiwiZWR1Lm5yIiwib3Jn''@;'; put 'put ''Lm5yIiwibmV0Lm5yIiwiY29tLm5yIiwibnUiLCJueiIsImFjLm56IiwiY28ubnoiLCJjcmkubnoiLCJnZWVrLm56IiwiZ2VuLm56IiwiZ292dC5ueiIsImhlYWx0aC5ueiIsIml3aS5ueiIsImtpd2kubnoiLCJtYW9yaS5ueiIsIm1pbC5ueiIsIm1cdTAxMDFvcmkubnoiLCJuZXQubnoiLCJv''@;'; put 'put ''cmcubnoiLCJwYXJsaWFtZW50Lm56Iiwic2Nob29sLm56Iiwib20iLCJjby5vbSIsImNvbS5vbSIsImVkdS5vbSIsImdvdi5vbSIsIm1lZC5vbSIsIm11c2V1bS5vbSIsIm5ldC5vbSIsIm9yZy5vbSIsInByby5vbSIsIm9uaW9uIiwib3JnIiwicGEiLCJhYy5wYSIsImdvYi5wYSIsImNvbS5w''@;'; put 'put ''YSIsIm9yZy5wYSIsInNsZC5wYSIsImVkdS5wYSIsIm5ldC5wYSIsImluZy5wYSIsImFiby5wYSIsIm1lZC5wYSIsIm5vbS5wYSIsInBlIiwiZWR1LnBlIiwiZ29iLnBlIiwibm9tLnBlIiwibWlsLnBlIiwib3JnLnBlIiwiY29tLnBlIiwibmV0LnBlIiwicGYiLCJjb20ucGYiLCJvcmcucGYi''@;'; put 'put ''LCJlZHUucGYiLCIqLnBnIiwicGgiLCJjb20ucGgiLCJuZXQucGgiLCJvcmcucGgiLCJnb3YucGgiLCJlZHUucGgiLCJuZ28ucGgiLCJtaWwucGgiLCJpLnBoIiwicGsiLCJjb20ucGsiLCJuZXQucGsiLCJlZHUucGsiLCJvcmcucGsiLCJmYW0ucGsiLCJiaXoucGsiLCJ3ZWIucGsiLCJnb3Yu''@;'; put 'put ''cGsiLCJnb2IucGsiLCJnb2sucGsiLCJnb24ucGsiLCJnb3AucGsiLCJnb3MucGsiLCJpbmZvLnBrIiwicGwiLCJjb20ucGwiLCJuZXQucGwiLCJvcmcucGwiLCJhaWQucGwiLCJhZ3JvLnBsIiwiYXRtLnBsIiwiYXV0by5wbCIsImJpei5wbCIsImVkdS5wbCIsImdtaW5hLnBsIiwiZ3NtLnBs''@;'; put 'put ''IiwiaW5mby5wbCIsIm1haWwucGwiLCJtaWFzdGEucGwiLCJtZWRpYS5wbCIsIm1pbC5wbCIsIm5pZXJ1Y2hvbW9zY2kucGwiLCJub20ucGwiLCJwYy5wbCIsInBvd2lhdC5wbCIsInByaXYucGwiLCJyZWFsZXN0YXRlLnBsIiwicmVsLnBsIiwic2V4LnBsIiwic2hvcC5wbCIsInNrbGVwLnBs''@;'; put 'put ''Iiwic29zLnBsIiwic3prb2xhLnBsIiwidGFyZ2kucGwiLCJ0bS5wbCIsInRvdXJpc20ucGwiLCJ0cmF2ZWwucGwiLCJ0dXJ5c3R5a2EucGwiLCJnb3YucGwiLCJhcC5nb3YucGwiLCJpYy5nb3YucGwiLCJpcy5nb3YucGwiLCJ1cy5nb3YucGwiLCJrbXBzcC5nb3YucGwiLCJrcHBzcC5nb3Yu''@;'; put 'put ''cGwiLCJrd3BzcC5nb3YucGwiLCJwc3AuZ292LnBsIiwid3Nrci5nb3YucGwiLCJrd3AuZ292LnBsIiwibXcuZ292LnBsIiwidWcuZ292LnBsIiwidW0uZ292LnBsIiwidW1pZy5nb3YucGwiLCJ1Z2ltLmdvdi5wbCIsInVwb3cuZ292LnBsIiwidXcuZ292LnBsIiwic3Rhcm9zdHdvLmdvdi5w''@;'; put 'put ''bCIsInBhLmdvdi5wbCIsInBvLmdvdi5wbCIsInBzc2UuZ292LnBsIiwicHVwLmdvdi5wbCIsInJ6Z3cuZ292LnBsIiwic2EuZ292LnBsIiwic28uZ292LnBsIiwic3IuZ292LnBsIiwid3NhLmdvdi5wbCIsInNrby5nb3YucGwiLCJ1enMuZ292LnBsIiwid2lpaC5nb3YucGwiLCJ3aW5iLmdv''@;'; put 'put ''di5wbCIsInBpbmIuZ292LnBsIiwid2lvcy5nb3YucGwiLCJ3aXRkLmdvdi5wbCIsInd6bWl1dy5nb3YucGwiLCJwaXcuZ292LnBsIiwid2l3Lmdvdi5wbCIsImdyaXcuZ292LnBsIiwid2lmLmdvdi5wbCIsIm91bS5nb3YucGwiLCJzZG4uZ292LnBsIiwienAuZ292LnBsIiwidXBwby5nb3Yu''@;'; put 'put ''cGwiLCJtdXAuZ292LnBsIiwid3Vvei5nb3YucGwiLCJrb25zdWxhdC5nb3YucGwiLCJvaXJtLmdvdi5wbCIsImF1Z3VzdG93LnBsIiwiYmFiaWEtZ29yYS5wbCIsImJlZHppbi5wbCIsImJlc2tpZHkucGwiLCJiaWFsb3dpZXphLnBsIiwiYmlhbHlzdG9rLnBsIiwiYmllbGF3YS5wbCIsImJp''@;'; put 'put ''ZXN6Y3phZHkucGwiLCJib2xlc2xhd2llYy5wbCIsImJ5ZGdvc3pjei5wbCIsImJ5dG9tLnBsIiwiY2llc3p5bi5wbCIsImN6ZWxhZHoucGwiLCJjemVzdC5wbCIsImRsdWdvbGVrYS5wbCIsImVsYmxhZy5wbCIsImVsay5wbCIsImdsb2dvdy5wbCIsImduaWV6bm8ucGwiLCJnb3JsaWNlLnBs''@;'; put 'put ''IiwiZ3JhamV3by5wbCIsImlsYXdhLnBsIiwiamF3b3J6bm8ucGwiLCJqZWxlbmlhLWdvcmEucGwiLCJqZ29yYS5wbCIsImthbGlzei5wbCIsImthemltaWVyei1kb2xueS5wbCIsImthcnBhY3oucGwiLCJrYXJ0dXp5LnBsIiwia2FzenVieS5wbCIsImthdG93aWNlLnBsIiwia2Vwbm8ucGwi''@;'; put 'put ''LCJrZXRyenluLnBsIiwia2xvZHprby5wbCIsImtvYmllcnp5Y2UucGwiLCJrb2xvYnJ6ZWcucGwiLCJrb25pbi5wbCIsImtvbnNrb3dvbGEucGwiLCJrdXRuby5wbCIsImxhcHkucGwiLCJsZWJvcmsucGwiLCJsZWduaWNhLnBsIiwibGV6YWpzay5wbCIsImxpbWFub3dhLnBsIiwibG9temEu''@;'; put 'put ''cGwiLCJsb3dpY3oucGwiLCJsdWJpbi5wbCIsImx1a293LnBsIiwibWFsYm9yay5wbCIsIm1hbG9wb2xza2EucGwiLCJtYXpvd3N6ZS5wbCIsIm1henVyeS5wbCIsIm1pZWxlYy5wbCIsIm1pZWxuby5wbCIsIm1yYWdvd28ucGwiLCJuYWtsby5wbCIsIm5vd2FydWRhLnBsIiwibnlzYS5wbCIs''@;'; put 'put ''Im9sYXdhLnBsIiwib2xlY2tvLnBsIiwib2xrdXN6LnBsIiwib2xzenR5bi5wbCIsIm9wb2N6bm8ucGwiLCJvcG9sZS5wbCIsIm9zdHJvZGEucGwiLCJvc3Ryb2xla2EucGwiLCJvc3Ryb3dpZWMucGwiLCJvc3Ryb3d3bGtwLnBsIiwicGlsYS5wbCIsInBpc3oucGwiLCJwb2RoYWxlLnBsIiwi''@;'; put 'put ''cG9kbGFzaWUucGwiLCJwb2xrb3dpY2UucGwiLCJwb21vcnplLnBsIiwicG9tb3Jza2llLnBsIiwicHJvY2hvd2ljZS5wbCIsInBydXN6a293LnBsIiwicHJ6ZXdvcnNrLnBsIiwicHVsYXd5LnBsIiwicmFkb20ucGwiLCJyYXdhLW1hei5wbCIsInJ5Ym5pay5wbCIsInJ6ZXN6b3cucGwiLCJz''@;'; put 'put ''YW5vay5wbCIsInNlam55LnBsIiwic2xhc2sucGwiLCJzbHVwc2sucGwiLCJzb3Nub3dpZWMucGwiLCJzdGFsb3dhLXdvbGEucGwiLCJza29jem93LnBsIiwic3RhcmFjaG93aWNlLnBsIiwic3RhcmdhcmQucGwiLCJzdXdhbGtpLnBsIiwic3dpZG5pY2EucGwiLCJzd2llYm9kemluLnBsIiwi''@;'; put 'put ''c3dpbm91anNjaWUucGwiLCJzemN6ZWNpbi5wbCIsInN6Y3p5dG5vLnBsIiwidGFybm9icnplZy5wbCIsInRnb3J5LnBsIiwidHVyZWsucGwiLCJ0eWNoeS5wbCIsInVzdGthLnBsIiwid2FsYnJ6eWNoLnBsIiwid2FybWlhLnBsIiwid2Fyc3phd2EucGwiLCJ3YXcucGwiLCJ3ZWdyb3cucGwi''@;'; put 'put ''LCJ3aWVsdW4ucGwiLCJ3bG9jbC5wbCIsIndsb2NsYXdlay5wbCIsIndvZHppc2xhdy5wbCIsIndvbG9taW4ucGwiLCJ3cm9jbGF3LnBsIiwiemFjaHBvbW9yLnBsIiwiemFnYW4ucGwiLCJ6YXJvdy5wbCIsInpnb3JhLnBsIiwiemdvcnplbGVjLnBsIiwicG0iLCJwbiIsImdvdi5wbiIsImNv''@;'; put 'put ''LnBuIiwib3JnLnBuIiwiZWR1LnBuIiwibmV0LnBuIiwicG9zdCIsInByIiwiY29tLnByIiwibmV0LnByIiwib3JnLnByIiwiZ292LnByIiwiZWR1LnByIiwiaXNsYS5wciIsInByby5wciIsImJpei5wciIsImluZm8ucHIiLCJuYW1lLnByIiwiZXN0LnByIiwicHJvZi5wciIsImFjLnByIiwi''@;'; put 'put ''cHJvIiwiYWFhLnBybyIsImFjYS5wcm8iLCJhY2N0LnBybyIsImF2b2NhdC5wcm8iLCJiYXIucHJvIiwiY3BhLnBybyIsImVuZy5wcm8iLCJqdXIucHJvIiwibGF3LnBybyIsIm1lZC5wcm8iLCJyZWNodC5wcm8iLCJwcyIsImVkdS5wcyIsImdvdi5wcyIsInNlYy5wcyIsInBsby5wcyIsImNv''@;'; put 'put ''bS5wcyIsIm9yZy5wcyIsIm5ldC5wcyIsInB0IiwibmV0LnB0IiwiZ292LnB0Iiwib3JnLnB0IiwiZWR1LnB0IiwiaW50LnB0IiwicHVibC5wdCIsImNvbS5wdCIsIm5vbWUucHQiLCJwdyIsImNvLnB3IiwibmUucHciLCJvci5wdyIsImVkLnB3IiwiZ28ucHciLCJiZWxhdS5wdyIsInB5Iiwi''@;'; put 'put ''Y29tLnB5IiwiY29vcC5weSIsImVkdS5weSIsImdvdi5weSIsIm1pbC5weSIsIm5ldC5weSIsIm9yZy5weSIsInFhIiwiY29tLnFhIiwiZWR1LnFhIiwiZ292LnFhIiwibWlsLnFhIiwibmFtZS5xYSIsIm5ldC5xYSIsIm9yZy5xYSIsInNjaC5xYSIsInJlIiwiYXNzby5yZSIsImNvbS5yZSIs''@;'; put 'put ''Im5vbS5yZSIsInJvIiwiYXJ0cy5ybyIsImNvbS5ybyIsImZpcm0ucm8iLCJpbmZvLnJvIiwibm9tLnJvIiwibnQucm8iLCJvcmcucm8iLCJyZWMucm8iLCJzdG9yZS5ybyIsInRtLnJvIiwid3d3LnJvIiwicnMiLCJhYy5ycyIsImNvLnJzIiwiZWR1LnJzIiwiZ292LnJzIiwiaW4ucnMiLCJv''@;'; put 'put ''cmcucnMiLCJydSIsInJ3IiwiYWMucnciLCJjby5ydyIsImNvb3AucnciLCJnb3YucnciLCJtaWwucnciLCJuZXQucnciLCJvcmcucnciLCJzYSIsImNvbS5zYSIsIm5ldC5zYSIsIm9yZy5zYSIsImdvdi5zYSIsIm1lZC5zYSIsInB1Yi5zYSIsImVkdS5zYSIsInNjaC5zYSIsInNiIiwiY29t''@;'; put 'put ''LnNiIiwiZWR1LnNiIiwiZ292LnNiIiwibmV0LnNiIiwib3JnLnNiIiwic2MiLCJjb20uc2MiLCJnb3Yuc2MiLCJuZXQuc2MiLCJvcmcuc2MiLCJlZHUuc2MiLCJzZCIsImNvbS5zZCIsIm5ldC5zZCIsIm9yZy5zZCIsImVkdS5zZCIsIm1lZC5zZCIsInR2LnNkIiwiZ292LnNkIiwiaW5mby5z''@;'; put 'put ''ZCIsInNlIiwiYS5zZSIsImFjLnNlIiwiYi5zZSIsImJkLnNlIiwiYnJhbmQuc2UiLCJjLnNlIiwiZC5zZSIsImUuc2UiLCJmLnNlIiwiZmguc2UiLCJmaHNrLnNlIiwiZmh2LnNlIiwiZy5zZSIsImguc2UiLCJpLnNlIiwiay5zZSIsImtvbWZvcmIuc2UiLCJrb21tdW5hbGZvcmJ1bmQuc2Ui''@;'; put 'put ''LCJrb212dXguc2UiLCJsLnNlIiwibGFuYmliLnNlIiwibS5zZSIsIm4uc2UiLCJuYXR1cmJydWtzZ3ltbi5zZSIsIm8uc2UiLCJvcmcuc2UiLCJwLnNlIiwicGFydGkuc2UiLCJwcC5zZSIsInByZXNzLnNlIiwici5zZSIsInMuc2UiLCJ0LnNlIiwidG0uc2UiLCJ1LnNlIiwidy5zZSIsIngu''@;'; put 'put ''c2UiLCJ5LnNlIiwiei5zZSIsInNnIiwiY29tLnNnIiwibmV0LnNnIiwib3JnLnNnIiwiZ292LnNnIiwiZWR1LnNnIiwicGVyLnNnIiwic2giLCJjb20uc2giLCJuZXQuc2giLCJnb3Yuc2giLCJvcmcuc2giLCJtaWwuc2giLCJzaSIsInNqIiwic2siLCJzbCIsImNvbS5zbCIsIm5ldC5zbCIs''@;'; put 'put ''ImVkdS5zbCIsImdvdi5zbCIsIm9yZy5zbCIsInNtIiwic24iLCJhcnQuc24iLCJjb20uc24iLCJlZHUuc24iLCJnb3V2LnNuIiwib3JnLnNuIiwicGVyc28uc24iLCJ1bml2LnNuIiwic28iLCJjb20uc28iLCJlZHUuc28iLCJnb3Yuc28iLCJtZS5zbyIsIm5ldC5zbyIsIm9yZy5zbyIsInNy''@;'; put 'put ''Iiwic3MiLCJiaXouc3MiLCJjb20uc3MiLCJlZHUuc3MiLCJnb3Yuc3MiLCJuZXQuc3MiLCJvcmcuc3MiLCJzdCIsImNvLnN0IiwiY29tLnN0IiwiY29uc3VsYWRvLnN0IiwiZWR1LnN0IiwiZW1iYWl4YWRhLnN0IiwiZ292LnN0IiwibWlsLnN0IiwibmV0LnN0Iiwib3JnLnN0IiwicHJpbmNp''@;'; put 'put ''cGUuc3QiLCJzYW90b21lLnN0Iiwic3RvcmUuc3QiLCJzdSIsInN2IiwiY29tLnN2IiwiZWR1LnN2IiwiZ29iLnN2Iiwib3JnLnN2IiwicmVkLnN2Iiwic3giLCJnb3Yuc3giLCJzeSIsImVkdS5zeSIsImdvdi5zeSIsIm5ldC5zeSIsIm1pbC5zeSIsImNvbS5zeSIsIm9yZy5zeSIsInN6Iiwi''@;'; put 'put ''Y28uc3oiLCJhYy5zeiIsIm9yZy5zeiIsInRjIiwidGQiLCJ0ZWwiLCJ0ZiIsInRnIiwidGgiLCJhYy50aCIsImNvLnRoIiwiZ28udGgiLCJpbi50aCIsIm1pLnRoIiwibmV0LnRoIiwib3IudGgiLCJ0aiIsImFjLnRqIiwiYml6LnRqIiwiY28udGoiLCJjb20udGoiLCJlZHUudGoiLCJnby50''@;'; put 'put ''aiIsImdvdi50aiIsImludC50aiIsIm1pbC50aiIsIm5hbWUudGoiLCJuZXQudGoiLCJuaWMudGoiLCJvcmcudGoiLCJ0ZXN0LnRqIiwid2ViLnRqIiwidGsiLCJ0bCIsImdvdi50bCIsInRtIiwiY29tLnRtIiwiY28udG0iLCJvcmcudG0iLCJuZXQudG0iLCJub20udG0iLCJnb3YudG0iLCJt''@;'; put 'put ''aWwudG0iLCJlZHUudG0iLCJ0biIsImNvbS50biIsImVucy50biIsImZpbi50biIsImdvdi50biIsImluZC50biIsImludGwudG4iLCJuYXQudG4iLCJuZXQudG4iLCJvcmcudG4iLCJpbmZvLnRuIiwicGVyc28udG4iLCJ0b3VyaXNtLnRuIiwiZWR1bmV0LnRuIiwicm5ydC50biIsInJucy50''@;'; put 'put ''biIsInJudS50biIsIm1pbmNvbS50biIsImFncmluZXQudG4iLCJkZWZlbnNlLnRuIiwidHVyZW4udG4iLCJ0byIsImNvbS50byIsImdvdi50byIsIm5ldC50byIsIm9yZy50byIsImVkdS50byIsIm1pbC50byIsInRyIiwiYXYudHIiLCJiYnMudHIiLCJiZWwudHIiLCJiaXoudHIiLCJjb20u''@;'; put 'put ''dHIiLCJkci50ciIsImVkdS50ciIsImdlbi50ciIsImdvdi50ciIsImluZm8udHIiLCJtaWwudHIiLCJrMTIudHIiLCJrZXAudHIiLCJuYW1lLnRyIiwibmV0LnRyIiwib3JnLnRyIiwicG9sLnRyIiwidGVsLnRyIiwidHNrLnRyIiwidHYudHIiLCJ3ZWIudHIiLCJuYy50ciIsImdvdi5uYy50''@;'; put 'put ''ciIsInR0IiwiY28udHQiLCJjb20udHQiLCJvcmcudHQiLCJuZXQudHQiLCJiaXoudHQiLCJpbmZvLnR0IiwicHJvLnR0IiwiaW50LnR0IiwiY29vcC50dCIsImpvYnMudHQiLCJtb2JpLnR0IiwidHJhdmVsLnR0IiwibXVzZXVtLnR0IiwiYWVyby50dCIsIm5hbWUudHQiLCJnb3YudHQiLCJl''@;'; put 'put ''ZHUudHQiLCJ0diIsInR3IiwiZWR1LnR3IiwiZ292LnR3IiwibWlsLnR3IiwiY29tLnR3IiwibmV0LnR3Iiwib3JnLnR3IiwiaWR2LnR3IiwiZ2FtZS50dyIsImViaXoudHciLCJjbHViLnR3IiwiXHU3ZGIyXHU4ZGVmLnR3IiwiXHU3ZDQ0XHU3ZTU0LnR3IiwiXHU1NTQ2XHU2OTZkLnR3Iiwi''@;'; put 'put ''dHoiLCJhYy50eiIsImNvLnR6IiwiZ28udHoiLCJob3RlbC50eiIsImluZm8udHoiLCJtZS50eiIsIm1pbC50eiIsIm1vYmkudHoiLCJuZS50eiIsIm9yLnR6Iiwic2MudHoiLCJ0di50eiIsInVhIiwiY29tLnVhIiwiZWR1LnVhIiwiZ292LnVhIiwiaW4udWEiLCJuZXQudWEiLCJvcmcudWEi''@;'; put 'put ''LCJjaGVya2Fzc3kudWEiLCJjaGVya2FzeS51YSIsImNoZXJuaWdvdi51YSIsImNoZXJuaWhpdi51YSIsImNoZXJuaXZ0c2kudWEiLCJjaGVybm92dHN5LnVhIiwiY2sudWEiLCJjbi51YSIsImNyLnVhIiwiY3JpbWVhLnVhIiwiY3YudWEiLCJkbi51YSIsImRuZXByb3BldHJvdnNrLnVhIiwi''@;'; put 'put ''ZG5pcHJvcGV0cm92c2sudWEiLCJkb21pbmljLnVhIiwiZG9uZXRzay51YSIsImRwLnVhIiwiaWYudWEiLCJpdmFuby1mcmFua2l2c2sudWEiLCJraC51YSIsImtoYXJraXYudWEiLCJraGFya292LnVhIiwia2hlcnNvbi51YSIsImtobWVsbml0c2tpeS51YSIsImtobWVsbnl0c2t5aS51YSIs''@;'; put 'put ''ImtpZXYudWEiLCJraXJvdm9ncmFkLnVhIiwia20udWEiLCJrci51YSIsImtyeW0udWEiLCJrcy51YSIsImt2LnVhIiwia3lpdi51YSIsImxnLnVhIiwibHQudWEiLCJsdWdhbnNrLnVhIiwibHV0c2sudWEiLCJsdi51YSIsImx2aXYudWEiLCJtay51YSIsIm15a29sYWl2LnVhIiwibmlrb2xh''@;'; put 'put ''ZXYudWEiLCJvZC51YSIsIm9kZXNhLnVhIiwib2Rlc3NhLnVhIiwicGwudWEiLCJwb2x0YXZhLnVhIiwicml2bmUudWEiLCJyb3Zuby51YSIsInJ2LnVhIiwic2IudWEiLCJzZWJhc3RvcG9sLnVhIiwic2V2YXN0b3BvbC51YSIsInNtLnVhIiwic3VteS51YSIsInRlLnVhIiwidGVybm9waWwu''@;'; put 'put ''dWEiLCJ1ei51YSIsInV6aGdvcm9kLnVhIiwidmlubmljYS51YSIsInZpbm55dHNpYS51YSIsInZuLnVhIiwidm9seW4udWEiLCJ5YWx0YS51YSIsInphcG9yaXpoemhlLnVhIiwiemFwb3Jpemh6aGlhLnVhIiwiemhpdG9taXIudWEiLCJ6aHl0b215ci51YSIsInpwLnVhIiwienQudWEiLCJ1''@;'; put 'put ''ZyIsImNvLnVnIiwib3IudWciLCJhYy51ZyIsInNjLnVnIiwiZ28udWciLCJuZS51ZyIsImNvbS51ZyIsIm9yZy51ZyIsInVrIiwiYWMudWsiLCJjby51ayIsImdvdi51ayIsImx0ZC51ayIsIm1lLnVrIiwibmV0LnVrIiwibmhzLnVrIiwib3JnLnVrIiwicGxjLnVrIiwicG9saWNlLnVrIiwi''@;'; put 'put ''Ki5zY2gudWsiLCJ1cyIsImRuaS51cyIsImZlZC51cyIsImlzYS51cyIsImtpZHMudXMiLCJuc24udXMiLCJhay51cyIsImFsLnVzIiwiYXIudXMiLCJhcy51cyIsImF6LnVzIiwiY2EudXMiLCJjby51cyIsImN0LnVzIiwiZGMudXMiLCJkZS51cyIsImZsLnVzIiwiZ2EudXMiLCJndS51cyIs''@;'; put 'put ''ImhpLnVzIiwiaWEudXMiLCJpZC51cyIsImlsLnVzIiwiaW4udXMiLCJrcy51cyIsImt5LnVzIiwibGEudXMiLCJtYS51cyIsIm1kLnVzIiwibWUudXMiLCJtaS51cyIsIm1uLnVzIiwibW8udXMiLCJtcy51cyIsIm10LnVzIiwibmMudXMiLCJuZC51cyIsIm5lLnVzIiwibmgudXMiLCJuai51''@;'; put 'put ''cyIsIm5tLnVzIiwibnYudXMiLCJueS51cyIsIm9oLnVzIiwib2sudXMiLCJvci51cyIsInBhLnVzIiwicHIudXMiLCJyaS51cyIsInNjLnVzIiwic2QudXMiLCJ0bi51cyIsInR4LnVzIiwidXQudXMiLCJ2aS51cyIsInZ0LnVzIiwidmEudXMiLCJ3YS51cyIsIndpLnVzIiwid3YudXMiLCJ3''@;'; put 'put ''eS51cyIsImsxMi5hay51cyIsImsxMi5hbC51cyIsImsxMi5hci51cyIsImsxMi5hcy51cyIsImsxMi5hei51cyIsImsxMi5jYS51cyIsImsxMi5jby51cyIsImsxMi5jdC51cyIsImsxMi5kYy51cyIsImsxMi5kZS51cyIsImsxMi5mbC51cyIsImsxMi5nYS51cyIsImsxMi5ndS51cyIsImsx''@;'; put 'put ''Mi5pYS51cyIsImsxMi5pZC51cyIsImsxMi5pbC51cyIsImsxMi5pbi51cyIsImsxMi5rcy51cyIsImsxMi5reS51cyIsImsxMi5sYS51cyIsImsxMi5tYS51cyIsImsxMi5tZC51cyIsImsxMi5tZS51cyIsImsxMi5taS51cyIsImsxMi5tbi51cyIsImsxMi5tby51cyIsImsxMi5tcy51cyIs''@;'; put 'put ''ImsxMi5tdC51cyIsImsxMi5uYy51cyIsImsxMi5uZS51cyIsImsxMi5uaC51cyIsImsxMi5uai51cyIsImsxMi5ubS51cyIsImsxMi5udi51cyIsImsxMi5ueS51cyIsImsxMi5vaC51cyIsImsxMi5vay51cyIsImsxMi5vci51cyIsImsxMi5wYS51cyIsImsxMi5wci51cyIsImsxMi5yaS51''@;'; put 'put ''cyIsImsxMi5zYy51cyIsImsxMi50bi51cyIsImsxMi50eC51cyIsImsxMi51dC51cyIsImsxMi52aS51cyIsImsxMi52dC51cyIsImsxMi52YS51cyIsImsxMi53YS51cyIsImsxMi53aS51cyIsImsxMi53eS51cyIsImNjLmFrLnVzIiwiY2MuYWwudXMiLCJjYy5hci51cyIsImNjLmFzLnVz''@;'; put 'put ''IiwiY2MuYXoudXMiLCJjYy5jYS51cyIsImNjLmNvLnVzIiwiY2MuY3QudXMiLCJjYy5kYy51cyIsImNjLmRlLnVzIiwiY2MuZmwudXMiLCJjYy5nYS51cyIsImNjLmd1LnVzIiwiY2MuaGkudXMiLCJjYy5pYS51cyIsImNjLmlkLnVzIiwiY2MuaWwudXMiLCJjYy5pbi51cyIsImNjLmtzLnVz''@;'; put 'put ''IiwiY2Mua3kudXMiLCJjYy5sYS51cyIsImNjLm1hLnVzIiwiY2MubWQudXMiLCJjYy5tZS51cyIsImNjLm1pLnVzIiwiY2MubW4udXMiLCJjYy5tby51cyIsImNjLm1zLnVzIiwiY2MubXQudXMiLCJjYy5uYy51cyIsImNjLm5kLnVzIiwiY2MubmUudXMiLCJjYy5uaC51cyIsImNjLm5qLnVz''@;'; put 'put ''IiwiY2Mubm0udXMiLCJjYy5udi51cyIsImNjLm55LnVzIiwiY2Mub2gudXMiLCJjYy5vay51cyIsImNjLm9yLnVzIiwiY2MucGEudXMiLCJjYy5wci51cyIsImNjLnJpLnVzIiwiY2Muc2MudXMiLCJjYy5zZC51cyIsImNjLnRuLnVzIiwiY2MudHgudXMiLCJjYy51dC51cyIsImNjLnZpLnVz''@;'; put 'put ''IiwiY2MudnQudXMiLCJjYy52YS51cyIsImNjLndhLnVzIiwiY2Mud2kudXMiLCJjYy53di51cyIsImNjLnd5LnVzIiwibGliLmFrLnVzIiwibGliLmFsLnVzIiwibGliLmFyLnVzIiwibGliLmFzLnVzIiwibGliLmF6LnVzIiwibGliLmNhLnVzIiwibGliLmNvLnVzIiwibGliLmN0LnVzIiwi''@;'; put 'put ''bGliLmRjLnVzIiwibGliLmZsLnVzIiwibGliLmdhLnVzIiwibGliLmd1LnVzIiwibGliLmhpLnVzIiwibGliLmlhLnVzIiwibGliLmlkLnVzIiwibGliLmlsLnVzIiwibGliLmluLnVzIiwibGliLmtzLnVzIiwibGliLmt5LnVzIiwibGliLmxhLnVzIiwibGliLm1hLnVzIiwibGliLm1kLnVz''@;'; put 'put ''IiwibGliLm1lLnVzIiwibGliLm1pLnVzIiwibGliLm1uLnVzIiwibGliLm1vLnVzIiwibGliLm1zLnVzIiwibGliLm10LnVzIiwibGliLm5jLnVzIiwibGliLm5kLnVzIiwibGliLm5lLnVzIiwibGliLm5oLnVzIiwibGliLm5qLnVzIiwibGliLm5tLnVzIiwibGliLm52LnVzIiwibGliLm55''@;'; put 'put ''LnVzIiwibGliLm9oLnVzIiwibGliLm9rLnVzIiwibGliLm9yLnVzIiwibGliLnBhLnVzIiwibGliLnByLnVzIiwibGliLnJpLnVzIiwibGliLnNjLnVzIiwibGliLnNkLnVzIiwibGliLnRuLnVzIiwibGliLnR4LnVzIiwibGliLnV0LnVzIiwibGliLnZpLnVzIiwibGliLnZ0LnVzIiwibGli''@;'; put 'put ''LnZhLnVzIiwibGliLndhLnVzIiwibGliLndpLnVzIiwibGliLnd5LnVzIiwicHZ0LmsxMi5tYS51cyIsImNodHIuazEyLm1hLnVzIiwicGFyb2NoLmsxMi5tYS51cyIsImFubi1hcmJvci5taS51cyIsImNvZy5taS51cyIsImRzdC5taS51cyIsImVhdG9uLm1pLnVzIiwiZ2VuLm1pLnVzIiwi''@;'; put 'put ''bXVzLm1pLnVzIiwidGVjLm1pLnVzIiwid2FzaHRlbmF3Lm1pLnVzIiwidXkiLCJjb20udXkiLCJlZHUudXkiLCJndWIudXkiLCJtaWwudXkiLCJuZXQudXkiLCJvcmcudXkiLCJ1eiIsImNvLnV6IiwiY29tLnV6IiwibmV0LnV6Iiwib3JnLnV6IiwidmEiLCJ2YyIsImNvbS52YyIsIm5ldC52''@;'; put 'put ''YyIsIm9yZy52YyIsImdvdi52YyIsIm1pbC52YyIsImVkdS52YyIsInZlIiwiYXJ0cy52ZSIsImNvLnZlIiwiY29tLnZlIiwiZTEyLnZlIiwiZWR1LnZlIiwiZmlybS52ZSIsImdvYi52ZSIsImdvdi52ZSIsImluZm8udmUiLCJpbnQudmUiLCJtaWwudmUiLCJuZXQudmUiLCJvcmcudmUiLCJy''@;'; put 'put ''ZWMudmUiLCJzdG9yZS52ZSIsInRlYy52ZSIsIndlYi52ZSIsInZnIiwidmkiLCJjby52aSIsImNvbS52aSIsImsxMi52aSIsIm5ldC52aSIsIm9yZy52aSIsInZuIiwiY29tLnZuIiwibmV0LnZuIiwib3JnLnZuIiwiZWR1LnZuIiwiZ292LnZuIiwiaW50LnZuIiwiYWMudm4iLCJiaXoudm4i''@;'; put 'put ''LCJpbmZvLnZuIiwibmFtZS52biIsInByby52biIsImhlYWx0aC52biIsInZ1IiwiY29tLnZ1IiwiZWR1LnZ1IiwibmV0LnZ1Iiwib3JnLnZ1Iiwid2YiLCJ3cyIsImNvbS53cyIsIm5ldC53cyIsIm9yZy53cyIsImdvdi53cyIsImVkdS53cyIsInl0IiwiXHUwNjI3XHUwNjQ1XHUwNjI3XHUw''@;'; put 'put ''NjMxXHUwNjI3XHUwNjJhIiwiXHUwNTcwXHUwNTYxXHUwNTc1IiwiXHUwOWFjXHUwOWJlXHUwOTgyXHUwOWIyXHUwOWJlIiwiXHUwNDMxXHUwNDMzIiwiXHUwNDMxXHUwNDM1XHUwNDNiIiwiXHU0ZTJkXHU1NmZkIiwiXHU0ZTJkXHU1NzBiIiwiXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjMyXHUw''@;'; put 'put ''NjI3XHUwNjI2XHUwNjMxIiwiXHUwNjQ1XHUwNjM1XHUwNjMxIiwiXHUwNDM1XHUwNDRlIiwiXHUwM2I1XHUwM2M1IiwiXHUwNjQ1XHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjJhXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI3IiwiXHUxMGQyXHUxMGQ0IiwiXHUwM2I1XHUwM2JiIiwiXHU5OTk5XHU2''@;'; put 'put ''ZTJmIiwiXHU1MTZjXHU1M2Y4Llx1OTk5OVx1NmUyZiIsIlx1NjU1OVx1ODBiMi5cdTk5OTlcdTZlMmYiLCJcdTY1M2ZcdTVlOWMuXHU5OTk5XHU2ZTJmIiwiXHU1MDBiXHU0ZWJhLlx1OTk5OVx1NmUyZiIsIlx1N2RiMlx1N2Q2MS5cdTk5OTlcdTZlMmYiLCJcdTdkNDRcdTdlNTQuXHU5OTk5''@;'; put 'put ''XHU2ZTJmIiwiXHUwY2FkXHUwY2JlXHUwY2IwXHUwY2E0IiwiXHUwYjJkXHUwYjNlXHUwYjMwXHUwYjI0IiwiXHUwOWFkXHUwOWJlXHUwOWYwXHUwOWE0IiwiXHUwOTJkXHUwOTNlXHUwOTMwXHUwOTI0XHUwOTJlXHUwOTRkIiwiXHUwOTJkXHUwOTNlXHUwOTMwXHUwOTRiXHUwOTI0IiwiXHUw''@;'; put 'put ''NjgwXHUwNjI3XHUwNjMxXHUwNjJhIiwiXHUwZDJkXHUwZDNlXHUwZDMwXHUwZDI0XHUwZDAyIiwiXHUwOTJkXHUwOTNlXHUwOTMwXHUwOTI0IiwiXHUwNjI4XHUwNjI3XHUwNjMxXHUwNjJhIiwiXHUwNjI4XHUwNmJlXHUwNjI3XHUwNjMxXHUwNjJhIiwiXHUwYzJkXHUwYzNlXHUwYzMwXHUw''@;'; put 'put ''YzI0XHUwYzRkIiwiXHUwYWFkXHUwYWJlXHUwYWIwXHUwYWE0IiwiXHUwYTJkXHUwYTNlXHUwYTMwXHUwYTI0IiwiXHUwOWFkXHUwOWJlXHUwOWIwXHUwOWE0IiwiXHUwYjg3XHUwYmE4XHUwYmNkXHUwYmE0XHUwYmJmXHUwYmFmXHUwYmJlIiwiXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUw''@;'; put 'put ''NjQ2IiwiXHUwNjI3XHUwNjRhXHUwNjMxXHUwNjI3XHUwNjQ2IiwiXHUwNjM5XHUwNjMxXHUwNjI3XHUwNjQyIiwiXHUwNjI3XHUwNjQ0XHUwNjI3XHUwNjMxXHUwNjJmXHUwNjQ2IiwiXHVkNTVjXHVhZDZkIiwiXHUwNDliXHUwNDMwXHUwNDM3IiwiXHUwZGJkXHUwZDgyXHUwZDlhXHUwZGNm''@;'; put 'put ''IiwiXHUwYjg3XHUwYmIyXHUwYjk5XHUwYmNkXHUwYjk1XHUwYmM4IiwiXHUwNjI3XHUwNjQ0XHUwNjQ1XHUwNjNhXHUwNjMxXHUwNjI4IiwiXHUwNDNjXHUwNDNhXHUwNDM0IiwiXHUwNDNjXHUwNDNlXHUwNDNkIiwiXHU2ZmIzXHU5NTgwIiwiXHU2ZmIzXHU5NWU4IiwiXHUwNjQ1XHUwNjQ0''@;'; put 'put ''XHUwNjRhXHUwNjMzXHUwNjRhXHUwNjI3IiwiXHUwNjM5XHUwNjQ1XHUwNjI3XHUwNjQ2IiwiXHUwNjdlXHUwNjI3XHUwNmE5XHUwNjMzXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjdlXHUwNjI3XHUwNjQzXHUwNjMzXHUwNjJhXHUwNjI3XHUwNjQ2IiwiXHUwNjQxXHUwNjQ0XHUwNjMzXHUw''@;'; put 'put ''NjM3XHUwNjRhXHUwNjQ2IiwiXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDNmXHUwNDQwLlx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQzZVx1MDQ0MFx1MDQzMy5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0M2VcdTA0MzFcdTA0NDAuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDNlXHUwNDM0''@;'; put 'put ''Llx1MDQ0MVx1MDQ0MFx1MDQzMSIsIlx1MDQ0M1x1MDQzZlx1MDQ0MC5cdTA0NDFcdTA0NDBcdTA0MzEiLCJcdTA0MzBcdTA0M2EuXHUwNDQxXHUwNDQwXHUwNDMxIiwiXHUwNDQwXHUwNDQ0IiwiXHUwNjQyXHUwNjM3XHUwNjMxIiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUw''@;'; put 'put ''NjJmXHUwNjRhXHUwNjI5IiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJmXHUwNmNjXHUwNjI5IiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJmXHUwNmNjXHUwNmMzIiwiXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjM5XHUwNjQ4XHUwNjJmXHUwNjRhXHUw''@;'; put 'put ''NjQ3IiwiXHUwNjMzXHUwNjQ4XHUwNjJmXHUwNjI3XHUwNjQ2IiwiXHU2NWIwXHU1MmEwXHU1NzYxIiwiXHUwYjlhXHUwYmJmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYmFhXHUwYmNkXHUwYmFhXHUwYmMyXHUwYmIwXHUwYmNkIiwiXHUwNjMzXHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjI5IiwiXHUw''@;'; put 'put ''NjMzXHUwNjQ4XHUwNjMxXHUwNjRhXHUwNjI3IiwiXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTI4XHUwZTM2XHUwZTAxXHUwZTI5XHUwZTMyLlx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGUxOFx1MGUzOFx1MGUyM1x1MGUwMVx1MGUzNFx1MGUwOC5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBl''@;'; put 'put ''MjNcdTBlMzFcdTBlMTBcdTBlMWFcdTBlMzJcdTBlMjUuXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwZTE3XHUwZTJiXHUwZTMyXHUwZTIzLlx1MGU0NFx1MGUxN1x1MGUyMiIsIlx1MGU0MFx1MGUxOVx1MGU0N1x1MGUxNS5cdTBlNDRcdTBlMTdcdTBlMjIiLCJcdTBlMmRcdTBlMDdcdTBlMDRc''@;'; put 'put ''dTBlNGNcdTBlMDFcdTBlMjMuXHUwZTQ0XHUwZTE3XHUwZTIyIiwiXHUwNjJhXHUwNjQ4XHUwNjQ2XHUwNjMzIiwiXHU1M2YwXHU3MDYzIiwiXHU1M2YwXHU2ZTdlIiwiXHU4MWZhXHU3MDYzIiwiXHUwNDQzXHUwNDNhXHUwNDQwIiwiXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ1XHUwNjQ2Iiwi''@;'; put 'put ''eHh4IiwiKi55ZSIsImFjLnphIiwiYWdyaWMuemEiLCJhbHQuemEiLCJjby56YSIsImVkdS56YSIsImdvdi56YSIsImdyb25kYXIuemEiLCJsYXcuemEiLCJtaWwuemEiLCJuZXQuemEiLCJuZ28uemEiLCJuaWMuemEiLCJuaXMuemEiLCJub20uemEiLCJvcmcuemEiLCJzY2hvb2wuemEiLCJ0''@;'; put 'put ''bS56YSIsIndlYi56YSIsInptIiwiYWMuem0iLCJiaXouem0iLCJjby56bSIsImNvbS56bSIsImVkdS56bSIsImdvdi56bSIsImluZm8uem0iLCJtaWwuem0iLCJuZXQuem0iLCJvcmcuem0iLCJzY2guem0iLCJ6dyIsImFjLnp3IiwiY28uenciLCJnb3YuenciLCJtaWwuenciLCJvcmcuenci''@;'; put 'put ''LCJhYWEiLCJhYXJwIiwiYWJhcnRoIiwiYWJiIiwiYWJib3R0IiwiYWJidmllIiwiYWJjIiwiYWJsZSIsImFib2dhZG8iLCJhYnVkaGFiaSIsImFjYWRlbXkiLCJhY2NlbnR1cmUiLCJhY2NvdW50YW50IiwiYWNjb3VudGFudHMiLCJhY28iLCJhY3RvciIsImFkYWMiLCJhZHMiLCJhZHVsdCIs''@;'; put 'put ''ImFlZyIsImFldG5hIiwiYWZhbWlseWNvbXBhbnkiLCJhZmwiLCJhZnJpY2EiLCJhZ2FraGFuIiwiYWdlbmN5IiwiYWlnIiwiYWlnbyIsImFpcmJ1cyIsImFpcmZvcmNlIiwiYWlydGVsIiwiYWtkbiIsImFsZmFyb21lbyIsImFsaWJhYmEiLCJhbGlwYXkiLCJhbGxmaW5hbnoiLCJhbGxzdGF0''@;'; put 'put ''ZSIsImFsbHkiLCJhbHNhY2UiLCJhbHN0b20iLCJhbWF6b24iLCJhbWVyaWNhbmV4cHJlc3MiLCJhbWVyaWNhbmZhbWlseSIsImFtZXgiLCJhbWZhbSIsImFtaWNhIiwiYW1zdGVyZGFtIiwiYW5hbHl0aWNzIiwiYW5kcm9pZCIsImFucXVhbiIsImFueiIsImFvbCIsImFwYXJ0bWVudHMiLCJh''@;'; put 'put ''cHAiLCJhcHBsZSIsImFxdWFyZWxsZSIsImFyYWIiLCJhcmFtY28iLCJhcmNoaSIsImFybXkiLCJhcnQiLCJhcnRlIiwiYXNkYSIsImFzc29jaWF0ZXMiLCJhdGhsZXRhIiwiYXR0b3JuZXkiLCJhdWN0aW9uIiwiYXVkaSIsImF1ZGlibGUiLCJhdWRpbyIsImF1c3Bvc3QiLCJhdXRob3IiLCJh''@;'; put 'put ''dXRvIiwiYXV0b3MiLCJhdmlhbmNhIiwiYXdzIiwiYXhhIiwiYXp1cmUiLCJiYWJ5IiwiYmFpZHUiLCJiYW5hbWV4IiwiYmFuYW5hcmVwdWJsaWMiLCJiYW5kIiwiYmFuayIsImJhciIsImJhcmNlbG9uYSIsImJhcmNsYXljYXJkIiwiYmFyY2xheXMiLCJiYXJlZm9vdCIsImJhcmdhaW5zIiwi''@;'; put 'put ''YmFzZWJhbGwiLCJiYXNrZXRiYWxsIiwiYmF1aGF1cyIsImJheWVybiIsImJiYyIsImJidCIsImJidmEiLCJiY2ciLCJiY24iLCJiZWF0cyIsImJlYXV0eSIsImJlZXIiLCJiZW50bGV5IiwiYmVybGluIiwiYmVzdCIsImJlc3RidXkiLCJiZXQiLCJiaGFydGkiLCJiaWJsZSIsImJpZCIsImJp''@;'; put 'put ''a2UiLCJiaW5nIiwiYmluZ28iLCJiaW8iLCJibGFjayIsImJsYWNrZnJpZGF5IiwiYmxvY2tidXN0ZXIiLCJibG9nIiwiYmxvb21iZXJnIiwiYmx1ZSIsImJtcyIsImJtdyIsImJucHBhcmliYXMiLCJib2F0cyIsImJvZWhyaW5nZXIiLCJib2ZhIiwiYm9tIiwiYm9uZCIsImJvbyIsImJvb2si''@;'; put 'put ''LCJib29raW5nIiwiYm9zY2giLCJib3N0aWsiLCJib3N0b24iLCJib3QiLCJib3V0aXF1ZSIsImJveCIsImJyYWRlc2NvIiwiYnJpZGdlc3RvbmUiLCJicm9hZHdheSIsImJyb2tlciIsImJyb3RoZXIiLCJicnVzc2VscyIsImJ1ZGFwZXN0IiwiYnVnYXR0aSIsImJ1aWxkIiwiYnVpbGRlcnMi''@;'; put 'put ''LCJidXNpbmVzcyIsImJ1eSIsImJ1enoiLCJiemgiLCJjYWIiLCJjYWZlIiwiY2FsIiwiY2FsbCIsImNhbHZpbmtsZWluIiwiY2FtIiwiY2FtZXJhIiwiY2FtcCIsImNhbmNlcnJlc2VhcmNoIiwiY2Fub24iLCJjYXBldG93biIsImNhcGl0YWwiLCJjYXBpdGFsb25lIiwiY2FyIiwiY2FyYXZh''@;'; put 'put ''biIsImNhcmRzIiwiY2FyZSIsImNhcmVlciIsImNhcmVlcnMiLCJjYXJzIiwiY2FzYSIsImNhc2UiLCJjYXNlaWgiLCJjYXNoIiwiY2FzaW5vIiwiY2F0ZXJpbmciLCJjYXRob2xpYyIsImNiYSIsImNibiIsImNicmUiLCJjYnMiLCJjZWIiLCJjZW50ZXIiLCJjZW8iLCJjZXJuIiwiY2ZhIiwi''@;'; put 'put ''Y2ZkIiwiY2hhbmVsIiwiY2hhbm5lbCIsImNoYXJpdHkiLCJjaGFzZSIsImNoYXQiLCJjaGVhcCIsImNoaW50YWkiLCJjaHJpc3RtYXMiLCJjaHJvbWUiLCJjaHVyY2giLCJjaXByaWFuaSIsImNpcmNsZSIsImNpc2NvIiwiY2l0YWRlbCIsImNpdGkiLCJjaXRpYyIsImNpdHkiLCJjaXR5ZWF0''@;'; put 'put ''cyIsImNsYWltcyIsImNsZWFuaW5nIiwiY2xpY2siLCJjbGluaWMiLCJjbGluaXF1ZSIsImNsb3RoaW5nIiwiY2xvdWQiLCJjbHViIiwiY2x1Ym1lZCIsImNvYWNoIiwiY29kZXMiLCJjb2ZmZWUiLCJjb2xsZWdlIiwiY29sb2duZSIsImNvbWNhc3QiLCJjb21tYmFuayIsImNvbW11bml0eSIs''@;'; put 'put ''ImNvbXBhbnkiLCJjb21wYXJlIiwiY29tcHV0ZXIiLCJjb21zZWMiLCJjb25kb3MiLCJjb25zdHJ1Y3Rpb24iLCJjb25zdWx0aW5nIiwiY29udGFjdCIsImNvbnRyYWN0b3JzIiwiY29va2luZyIsImNvb2tpbmdjaGFubmVsIiwiY29vbCIsImNvcnNpY2EiLCJjb3VudHJ5IiwiY291cG9uIiwi''@;'; put 'put ''Y291cG9ucyIsImNvdXJzZXMiLCJjcGEiLCJjcmVkaXQiLCJjcmVkaXRjYXJkIiwiY3JlZGl0dW5pb24iLCJjcmlja2V0IiwiY3Jvd24iLCJjcnMiLCJjcnVpc2UiLCJjcnVpc2VzIiwiY3NjIiwiY3Vpc2luZWxsYSIsImN5bXJ1IiwiY3lvdSIsImRhYnVyIiwiZGFkIiwiZGFuY2UiLCJkYXRh''@;'; put 'put ''IiwiZGF0ZSIsImRhdGluZyIsImRhdHN1biIsImRheSIsImRjbGsiLCJkZHMiLCJkZWFsIiwiZGVhbGVyIiwiZGVhbHMiLCJkZWdyZWUiLCJkZWxpdmVyeSIsImRlbGwiLCJkZWxvaXR0ZSIsImRlbHRhIiwiZGVtb2NyYXQiLCJkZW50YWwiLCJkZW50aXN0IiwiZGVzaSIsImRlc2lnbiIsImRl''@;'; put 'put ''diIsImRobCIsImRpYW1vbmRzIiwiZGlldCIsImRpZ2l0YWwiLCJkaXJlY3QiLCJkaXJlY3RvcnkiLCJkaXNjb3VudCIsImRpc2NvdmVyIiwiZGlzaCIsImRpeSIsImRucCIsImRvY3MiLCJkb2N0b3IiLCJkb2ciLCJkb21haW5zIiwiZG90IiwiZG93bmxvYWQiLCJkcml2ZSIsImR0diIsImR1''@;'; put 'put ''YmFpIiwiZHVjayIsImR1bmxvcCIsImR1cG9udCIsImR1cmJhbiIsImR2YWciLCJkdnIiLCJlYXJ0aCIsImVhdCIsImVjbyIsImVkZWthIiwiZWR1Y2F0aW9uIiwiZW1haWwiLCJlbWVyY2siLCJlbmVyZ3kiLCJlbmdpbmVlciIsImVuZ2luZWVyaW5nIiwiZW50ZXJwcmlzZXMiLCJlcHNvbiIs''@;'; put 'put ''ImVxdWlwbWVudCIsImVyaWNzc29uIiwiZXJuaSIsImVzcSIsImVzdGF0ZSIsImVzdXJhbmNlIiwiZXRpc2FsYXQiLCJldXJvdmlzaW9uIiwiZXVzIiwiZXZlbnRzIiwiZXhjaGFuZ2UiLCJleHBlcnQiLCJleHBvc2VkIiwiZXhwcmVzcyIsImV4dHJhc3BhY2UiLCJmYWdlIiwiZmFpbCIsImZh''@;'; put 'put ''aXJ3aW5kcyIsImZhaXRoIiwiZmFtaWx5IiwiZmFuIiwiZmFucyIsImZhcm0iLCJmYXJtZXJzIiwiZmFzaGlvbiIsImZhc3QiLCJmZWRleCIsImZlZWRiYWNrIiwiZmVycmFyaSIsImZlcnJlcm8iLCJmaWF0IiwiZmlkZWxpdHkiLCJmaWRvIiwiZmlsbSIsImZpbmFsIiwiZmluYW5jZSIsImZp''@;'; put 'put ''bmFuY2lhbCIsImZpcmUiLCJmaXJlc3RvbmUiLCJmaXJtZGFsZSIsImZpc2giLCJmaXNoaW5nIiwiZml0IiwiZml0bmVzcyIsImZsaWNrciIsImZsaWdodHMiLCJmbGlyIiwiZmxvcmlzdCIsImZsb3dlcnMiLCJmbHkiLCJmb28iLCJmb29kIiwiZm9vZG5ldHdvcmsiLCJmb290YmFsbCIsImZv''@;'; put 'put ''cmQiLCJmb3JleCIsImZvcnNhbGUiLCJmb3J1bSIsImZvdW5kYXRpb24iLCJmb3giLCJmcmVlIiwiZnJlc2VuaXVzIiwiZnJsIiwiZnJvZ2FucyIsImZyb250ZG9vciIsImZyb250aWVyIiwiZnRyIiwiZnVqaXRzdSIsImZ1aml4ZXJveCIsImZ1biIsImZ1bmQiLCJmdXJuaXR1cmUiLCJmdXRi''@;'; put 'put ''b2wiLCJmeWkiLCJnYWwiLCJnYWxsZXJ5IiwiZ2FsbG8iLCJnYWxsdXAiLCJnYW1lIiwiZ2FtZXMiLCJnYXAiLCJnYXJkZW4iLCJnYXkiLCJnYml6IiwiZ2RuIiwiZ2VhIiwiZ2VudCIsImdlbnRpbmciLCJnZW9yZ2UiLCJnZ2VlIiwiZ2lmdCIsImdpZnRzIiwiZ2l2ZXMiLCJnaXZpbmciLCJn''@;'; put 'put ''bGFkZSIsImdsYXNzIiwiZ2xlIiwiZ2xvYmFsIiwiZ2xvYm8iLCJnbWFpbCIsImdtYmgiLCJnbW8iLCJnbXgiLCJnb2RhZGR5IiwiZ29sZCIsImdvbGRwb2ludCIsImdvbGYiLCJnb28iLCJnb29keWVhciIsImdvb2ciLCJnb29nbGUiLCJnb3AiLCJnb3QiLCJncmFpbmdlciIsImdyYXBoaWNz''@;'; put 'put ''IiwiZ3JhdGlzIiwiZ3JlZW4iLCJncmlwZSIsImdyb2NlcnkiLCJncm91cCIsImd1YXJkaWFuIiwiZ3VjY2kiLCJndWdlIiwiZ3VpZGUiLCJndWl0YXJzIiwiZ3VydSIsImhhaXIiLCJoYW1idXJnIiwiaGFuZ291dCIsImhhdXMiLCJoYm8iLCJoZGZjIiwiaGRmY2JhbmsiLCJoZWFsdGgiLCJo''@;'; put 'put ''ZWFsdGhjYXJlIiwiaGVscCIsImhlbHNpbmtpIiwiaGVyZSIsImhlcm1lcyIsImhndHYiLCJoaXBob3AiLCJoaXNhbWl0c3UiLCJoaXRhY2hpIiwiaGl2IiwiaGt0IiwiaG9ja2V5IiwiaG9sZGluZ3MiLCJob2xpZGF5IiwiaG9tZWRlcG90IiwiaG9tZWdvb2RzIiwiaG9tZXMiLCJob21lc2Vu''@;'; put 'put ''c2UiLCJob25kYSIsImhvcnNlIiwiaG9zcGl0YWwiLCJob3N0IiwiaG9zdGluZyIsImhvdCIsImhvdGVsZXMiLCJob3RlbHMiLCJob3RtYWlsIiwiaG91c2UiLCJob3ciLCJoc2JjIiwiaHVnaGVzIiwiaHlhdHQiLCJoeXVuZGFpIiwiaWJtIiwiaWNiYyIsImljZSIsImljdSIsImllZWUiLCJp''@;'; put 'put ''Zm0iLCJpa2FubyIsImltYW1hdCIsImltZGIiLCJpbW1vIiwiaW1tb2JpbGllbiIsImluYyIsImluZHVzdHJpZXMiLCJpbmZpbml0aSIsImluZyIsImluayIsImluc3RpdHV0ZSIsImluc3VyYW5jZSIsImluc3VyZSIsImludGVsIiwiaW50ZXJuYXRpb25hbCIsImludHVpdCIsImludmVzdG1l''@;'; put 'put ''bnRzIiwiaXBpcmFuZ2EiLCJpcmlzaCIsImlzbWFpbGkiLCJpc3QiLCJpc3RhbmJ1bCIsIml0YXUiLCJpdHYiLCJpdmVjbyIsImphZ3VhciIsImphdmEiLCJqY2IiLCJqY3AiLCJqZWVwIiwiamV0enQiLCJqZXdlbHJ5IiwiamlvIiwiamxsIiwiam1wIiwiam5qIiwiam9idXJnIiwiam90Iiwi''@;'; put 'put ''am95IiwianBtb3JnYW4iLCJqcHJzIiwianVlZ29zIiwianVuaXBlciIsImthdWZlbiIsImtkZGkiLCJrZXJyeWhvdGVscyIsImtlcnJ5bG9naXN0aWNzIiwia2Vycnlwcm9wZXJ0aWVzIiwia2ZoIiwia2lhIiwia2ltIiwia2luZGVyIiwia2luZGxlIiwia2l0Y2hlbiIsImtpd2kiLCJrb2Vs''@;'; put 'put ''biIsImtvbWF0c3UiLCJrb3NoZXIiLCJrcG1nIiwia3BuIiwia3JkIiwia3JlZCIsImt1b2tncm91cCIsImt5b3RvIiwibGFjYWl4YSIsImxhbWJvcmdoaW5pIiwibGFtZXIiLCJsYW5jYXN0ZXIiLCJsYW5jaWEiLCJsYW5kIiwibGFuZHJvdmVyIiwibGFueGVzcyIsImxhc2FsbGUiLCJsYXQi''@;'; put 'put ''LCJsYXRpbm8iLCJsYXRyb2JlIiwibGF3IiwibGF3eWVyIiwibGRzIiwibGVhc2UiLCJsZWNsZXJjIiwibGVmcmFrIiwibGVnYWwiLCJsZWdvIiwibGV4dXMiLCJsZ2J0IiwibGlkbCIsImxpZmUiLCJsaWZlaW5zdXJhbmNlIiwibGlmZXN0eWxlIiwibGlnaHRpbmciLCJsaWtlIiwibGlsbHki''@;'; put 'put ''LCJsaW1pdGVkIiwibGltbyIsImxpbmNvbG4iLCJsaW5kZSIsImxpbmsiLCJsaXBzeSIsImxpdmUiLCJsaXZpbmciLCJsaXhpbCIsImxsYyIsImxscCIsImxvYW4iLCJsb2FucyIsImxvY2tlciIsImxvY3VzIiwibG9mdCIsImxvbCIsImxvbmRvbiIsImxvdHRlIiwibG90dG8iLCJsb3ZlIiwi''@;'; put 'put ''bHBsIiwibHBsZmluYW5jaWFsIiwibHRkIiwibHRkYSIsImx1bmRiZWNrIiwibHVwaW4iLCJsdXhlIiwibHV4dXJ5IiwibWFjeXMiLCJtYWRyaWQiLCJtYWlmIiwibWFpc29uIiwibWFrZXVwIiwibWFuIiwibWFuYWdlbWVudCIsIm1hbmdvIiwibWFwIiwibWFya2V0IiwibWFya2V0aW5nIiwi''@;'; put 'put ''bWFya2V0cyIsIm1hcnJpb3R0IiwibWFyc2hhbGxzIiwibWFzZXJhdGkiLCJtYXR0ZWwiLCJtYmEiLCJtY2tpbnNleSIsIm1lZCIsIm1lZGlhIiwibWVldCIsIm1lbGJvdXJuZSIsIm1lbWUiLCJtZW1vcmlhbCIsIm1lbiIsIm1lbnUiLCJtZXJja21zZCIsIm1ldGxpZmUiLCJtaWFtaSIsIm1p''@;'; put 'put ''Y3Jvc29mdCIsIm1pbmkiLCJtaW50IiwibWl0IiwibWl0c3ViaXNoaSIsIm1sYiIsIm1scyIsIm1tYSIsIm1vYmlsZSIsIm1vZGEiLCJtb2UiLCJtb2kiLCJtb20iLCJtb25hc2giLCJtb25leSIsIm1vbnN0ZXIiLCJtb3Jtb24iLCJtb3J0Z2FnZSIsIm1vc2NvdyIsIm1vdG8iLCJtb3RvcmN5''@;'; put 'put ''Y2xlcyIsIm1vdiIsIm1vdmllIiwibXNkIiwibXRuIiwibXRyIiwibXV0dWFsIiwibmFiIiwibmFkZXgiLCJuYWdveWEiLCJuYXRpb253aWRlIiwibmF0dXJhIiwibmF2eSIsIm5iYSIsIm5lYyIsIm5ldGJhbmsiLCJuZXRmbGl4IiwibmV0d29yayIsIm5ldXN0YXIiLCJuZXciLCJuZXdob2xs''@;'; put 'put ''YW5kIiwibmV3cyIsIm5leHQiLCJuZXh0ZGlyZWN0IiwibmV4dXMiLCJuZmwiLCJuZ28iLCJuaGsiLCJuaWNvIiwibmlrZSIsIm5pa29uIiwibmluamEiLCJuaXNzYW4iLCJuaXNzYXkiLCJub2tpYSIsIm5vcnRod2VzdGVybm11dHVhbCIsIm5vcnRvbiIsIm5vdyIsIm5vd3J1eiIsIm5vd3R2''@;'; put 'put ''IiwibnJhIiwibnJ3IiwibnR0IiwibnljIiwib2JpIiwib2JzZXJ2ZXIiLCJvZmYiLCJvZmZpY2UiLCJva2luYXdhIiwib2xheWFuIiwib2xheWFuZ3JvdXAiLCJvbGRuYXZ5Iiwib2xsbyIsIm9tZWdhIiwib25lIiwib25nIiwib25sIiwib25saW5lIiwib255b3Vyc2lkZSIsIm9vbyIsIm9w''@;'; put 'put ''ZW4iLCJvcmFjbGUiLCJvcmFuZ2UiLCJvcmdhbmljIiwib3JpZ2lucyIsIm9zYWthIiwib3RzdWthIiwib3R0Iiwib3ZoIiwicGFnZSIsInBhbmFzb25pYyIsInBhcmlzIiwicGFycyIsInBhcnRuZXJzIiwicGFydHMiLCJwYXJ0eSIsInBhc3NhZ2VucyIsInBheSIsInBjY3ciLCJwZXQiLCJw''@;'; put 'put ''Zml6ZXIiLCJwaGFybWFjeSIsInBoZCIsInBoaWxpcHMiLCJwaG9uZSIsInBob3RvIiwicGhvdG9ncmFwaHkiLCJwaG90b3MiLCJwaHlzaW8iLCJwaWNzIiwicGljdGV0IiwicGljdHVyZXMiLCJwaWQiLCJwaW4iLCJwaW5nIiwicGluayIsInBpb25lZXIiLCJwaXp6YSIsInBsYWNlIiwicGxh''@;'; put 'put ''eSIsInBsYXlzdGF0aW9uIiwicGx1bWJpbmciLCJwbHVzIiwicG5jIiwicG9obCIsInBva2VyIiwicG9saXRpZSIsInBvcm4iLCJwcmFtZXJpY2EiLCJwcmF4aSIsInByZXNzIiwicHJpbWUiLCJwcm9kIiwicHJvZHVjdGlvbnMiLCJwcm9mIiwicHJvZ3Jlc3NpdmUiLCJwcm9tbyIsInByb3Bl''@;'; put 'put ''cnRpZXMiLCJwcm9wZXJ0eSIsInByb3RlY3Rpb24iLCJwcnUiLCJwcnVkZW50aWFsIiwicHViIiwicHdjIiwicXBvbiIsInF1ZWJlYyIsInF1ZXN0IiwicXZjIiwicmFjaW5nIiwicmFkaW8iLCJyYWlkIiwicmVhZCIsInJlYWxlc3RhdGUiLCJyZWFsdG9yIiwicmVhbHR5IiwicmVjaXBlcyIs''@;'; put 'put ''InJlZCIsInJlZHN0b25lIiwicmVkdW1icmVsbGEiLCJyZWhhYiIsInJlaXNlIiwicmVpc2VuIiwicmVpdCIsInJlbGlhbmNlIiwicmVuIiwicmVudCIsInJlbnRhbHMiLCJyZXBhaXIiLCJyZXBvcnQiLCJyZXB1YmxpY2FuIiwicmVzdCIsInJlc3RhdXJhbnQiLCJyZXZpZXciLCJyZXZpZXdz''@;'; put 'put ''IiwicmV4cm90aCIsInJpY2giLCJyaWNoYXJkbGkiLCJyaWNvaCIsInJpZ2h0YXRob21lIiwicmlsIiwicmlvIiwicmlwIiwicm1pdCIsInJvY2hlciIsInJvY2tzIiwicm9kZW8iLCJyb2dlcnMiLCJyb29tIiwicnN2cCIsInJ1Z2J5IiwicnVociIsInJ1biIsInJ3ZSIsInJ5dWt5dSIsInNh''@;'; put 'put ''YXJsYW5kIiwic2FmZSIsInNhZmV0eSIsInNha3VyYSIsInNhbGUiLCJzYWxvbiIsInNhbXNjbHViIiwic2Ftc3VuZyIsInNhbmR2aWsiLCJzYW5kdmlrY29yb21hbnQiLCJzYW5vZmkiLCJzYXAiLCJzYXJsIiwic2FzIiwic2F2ZSIsInNheG8iLCJzYmkiLCJzYnMiLCJzY2EiLCJzY2IiLCJz''@;'; put 'put ''Y2hhZWZmbGVyIiwic2NobWlkdCIsInNjaG9sYXJzaGlwcyIsInNjaG9vbCIsInNjaHVsZSIsInNjaHdhcnoiLCJzY2llbmNlIiwic2Nqb2huc29uIiwic2NvciIsInNjb3QiLCJzZWFyY2giLCJzZWF0Iiwic2VjdXJlIiwic2VjdXJpdHkiLCJzZWVrIiwic2VsZWN0Iiwic2VuZXIiLCJzZXJ2''@;'; put 'put ''aWNlcyIsInNlcyIsInNldmVuIiwic2V3Iiwic2V4Iiwic2V4eSIsInNmciIsInNoYW5ncmlsYSIsInNoYXJwIiwic2hhdyIsInNoZWxsIiwic2hpYSIsInNoaWtzaGEiLCJzaG9lcyIsInNob3AiLCJzaG9wcGluZyIsInNob3VqaSIsInNob3ciLCJzaG93dGltZSIsInNocmlyYW0iLCJzaWxr''@;'; put 'put ''Iiwic2luYSIsInNpbmdsZXMiLCJzaXRlIiwic2tpIiwic2tpbiIsInNreSIsInNreXBlIiwic2xpbmciLCJzbWFydCIsInNtaWxlIiwic25jZiIsInNvY2NlciIsInNvY2lhbCIsInNvZnRiYW5rIiwic29mdHdhcmUiLCJzb2h1Iiwic29sYXIiLCJzb2x1dGlvbnMiLCJzb25nIiwic29ueSIs''@;'; put 'put ''InNveSIsInNwYSIsInNwYWNlIiwic3BvcnQiLCJzcG90Iiwic3ByZWFkYmV0dGluZyIsInNybCIsInN0YWRhIiwic3RhcGxlcyIsInN0YXIiLCJzdGF0ZWJhbmsiLCJzdGF0ZWZhcm0iLCJzdGMiLCJzdGNncm91cCIsInN0b2NraG9sbSIsInN0b3JhZ2UiLCJzdG9yZSIsInN0cmVhbSIsInN0''@;'; put 'put ''dWRpbyIsInN0dWR5Iiwic3R5bGUiLCJzdWNrcyIsInN1cHBsaWVzIiwic3VwcGx5Iiwic3VwcG9ydCIsInN1cmYiLCJzdXJnZXJ5Iiwic3V6dWtpIiwic3dhdGNoIiwic3dpZnRjb3ZlciIsInN3aXNzIiwic3lkbmV5Iiwic3ltYW50ZWMiLCJzeXN0ZW1zIiwidGFiIiwidGFpcGVpIiwidGFs''@;'; put 'put ''ayIsInRhb2JhbyIsInRhcmdldCIsInRhdGFtb3RvcnMiLCJ0YXRhciIsInRhdHRvbyIsInRheCIsInRheGkiLCJ0Y2kiLCJ0ZGsiLCJ0ZWFtIiwidGVjaCIsInRlY2hub2xvZ3kiLCJ0ZW1hc2VrIiwidGVubmlzIiwidGV2YSIsInRoZCIsInRoZWF0ZXIiLCJ0aGVhdHJlIiwidGlhYSIsInRp''@;'; put 'put ''Y2tldHMiLCJ0aWVuZGEiLCJ0aWZmYW55IiwidGlwcyIsInRpcmVzIiwidGlyb2wiLCJ0am1heHgiLCJ0angiLCJ0a21heHgiLCJ0bWFsbCIsInRvZGF5IiwidG9reW8iLCJ0b29scyIsInRvcCIsInRvcmF5IiwidG9zaGliYSIsInRvdGFsIiwidG91cnMiLCJ0b3duIiwidG95b3RhIiwidG95''@;'; put 'put ''cyIsInRyYWRlIiwidHJhZGluZyIsInRyYWluaW5nIiwidHJhdmVsIiwidHJhdmVsY2hhbm5lbCIsInRyYXZlbGVycyIsInRyYXZlbGVyc2luc3VyYW5jZSIsInRydXN0IiwidHJ2IiwidHViZSIsInR1aSIsInR1bmVzIiwidHVzaHUiLCJ0dnMiLCJ1YmFuayIsInVicyIsInVuaWNvbSIsInVu''@;'; put 'put ''aXZlcnNpdHkiLCJ1bm8iLCJ1b2wiLCJ1cHMiLCJ2YWNhdGlvbnMiLCJ2YW5hIiwidmFuZ3VhcmQiLCJ2ZWdhcyIsInZlbnR1cmVzIiwidmVyaXNpZ24iLCJ2ZXJzaWNoZXJ1bmciLCJ2ZXQiLCJ2aWFqZXMiLCJ2aWRlbyIsInZpZyIsInZpa2luZyIsInZpbGxhcyIsInZpbiIsInZpcCIsInZp''@;'; put 'put ''cmdpbiIsInZpc2EiLCJ2aXNpb24iLCJ2aXZhIiwidml2byIsInZsYWFuZGVyZW4iLCJ2b2RrYSIsInZvbGtzd2FnZW4iLCJ2b2x2byIsInZvdGUiLCJ2b3RpbmciLCJ2b3RvIiwidm95YWdlIiwidnVlbG9zIiwid2FsZXMiLCJ3YWxtYXJ0Iiwid2FsdGVyIiwid2FuZyIsIndhbmdnb3UiLCJ3''@;'; put 'put ''YXRjaCIsIndhdGNoZXMiLCJ3ZWF0aGVyIiwid2VhdGhlcmNoYW5uZWwiLCJ3ZWJjYW0iLCJ3ZWJlciIsIndlYnNpdGUiLCJ3ZWQiLCJ3ZWRkaW5nIiwid2VpYm8iLCJ3ZWlyIiwid2hvc3dobyIsIndpZW4iLCJ3aWtpIiwid2lsbGlhbWhpbGwiLCJ3aW4iLCJ3aW5kb3dzIiwid2luZSIsIndp''@;'; put 'put ''bm5lcnMiLCJ3bWUiLCJ3b2x0ZXJza2x1d2VyIiwid29vZHNpZGUiLCJ3b3JrIiwid29ya3MiLCJ3b3JsZCIsIndvdyIsInd0YyIsInd0ZiIsInhib3giLCJ4ZXJveCIsInhmaW5pdHkiLCJ4aWh1YW4iLCJ4aW4iLCJcdTA5MTVcdTA5NDlcdTA5MmUiLCJcdTMwYmJcdTMwZmNcdTMwZWIiLCJc''@;'; put 'put ''dTRmNWJcdTVjNzEiLCJcdTYxNDhcdTU1ODQiLCJcdTk2YzZcdTU2ZTIiLCJcdTU3MjhcdTdlYmYiLCJcdTU5MjdcdTRmMTdcdTZjN2RcdThmNjYiLCJcdTcwYjlcdTc3MGIiLCJcdTBlMDRcdTBlMmRcdTBlMjEiLCJcdTUxNmJcdTUzNjYiLCJcdTA2NDVcdTA2NDhcdTA2NDJcdTA2MzkiLCJc''@;'; put 'put ''dTUxNmNcdTc2Y2EiLCJcdTUxNmNcdTUzZjgiLCJcdTk5OTlcdTY4M2NcdTkxY2NcdTYyYzkiLCJcdTdmNTFcdTdhZDkiLCJcdTc5ZmJcdTUyYTgiLCJcdTYyMTFcdTcyMzFcdTRmNjAiLCJcdTA0M2NcdTA0M2VcdTA0NDFcdTA0M2FcdTA0MzJcdTA0MzAiLCJcdTA0M2FcdTA0MzBcdTA0NDJc''@;'; put 'put ''dTA0M2VcdTA0M2JcdTA0MzhcdTA0M2EiLCJcdTA0M2VcdTA0M2RcdTA0M2JcdTA0MzBcdTA0MzlcdTA0M2QiLCJcdTA0NDFcdTA0MzBcdTA0MzlcdTA0NDIiLCJcdTgwNTRcdTkwMWEiLCJcdTA1ZTdcdTA1ZDVcdTA1ZGQiLCJcdTY1ZjZcdTVjMWEiLCJcdTVmYWVcdTUzNWEiLCJcdTZkZTFc''@;'; put 'put ''dTlhNmNcdTk1MjEiLCJcdTMwZDVcdTMwYTFcdTMwYzNcdTMwYjdcdTMwZTdcdTMwZjMiLCJcdTA0M2VcdTA0NDBcdTA0MzMiLCJcdTA5MjhcdTA5NDdcdTA5MWYiLCJcdTMwYjlcdTMwYzhcdTMwYTIiLCJcdTMwYTJcdTMwZGVcdTMwYmVcdTMwZjMiLCJcdWMwYmNcdWMxMzEiLCJcdTU1NDZc''@;'; put 'put ''dTY4MDciLCJcdTU1NDZcdTVlOTciLCJcdTU1NDZcdTU3Y2UiLCJcdTA0MzRcdTA0MzVcdTA0NDJcdTA0MzgiLCJcdTMwZGRcdTMwYTRcdTMwZjNcdTMwYzgiLCJcdTY1YjBcdTk1ZmIiLCJcdTVkZTVcdTg4NGMiLCJcdTViYjZcdTk2ZmIiLCJcdTA2NDNcdTA2NDhcdTA2NDUiLCJcdTRlMmRc''@;'; put 'put ''dTY1ODdcdTdmNTEiLCJcdTRlMmRcdTRmZTEiLCJcdTVhMzFcdTRlNTAiLCJcdThjMzdcdTZiNGMiLCJcdTk2ZmJcdThhMGFcdTc2YzhcdTc5ZDEiLCJcdThkMmRcdTcyNjkiLCJcdTMwYWZcdTMwZTlcdTMwYTZcdTMwYzkiLCJcdTkwMWFcdThjYTkiLCJcdTdmNTFcdTVlOTciLCJcdTA5Mzhc''@;'; put 'put ''dTA5MDJcdTA5MTdcdTA5MjBcdTA5MjgiLCJcdTk5MTBcdTUzODUiLCJcdTdmNTFcdTdlZGMiLCJcdTA0M2FcdTA0M2VcdTA0M2MiLCJcdTRlOWFcdTlhNmNcdTkwMGEiLCJcdThiZmFcdTU3ZmFcdTRlOWEiLCJcdTk4ZGZcdTU0YzEiLCJcdTk4ZGVcdTUyMjlcdTZkNjYiLCJcdTYyNGJcdTg4''@;'; put 'put ''NjgiLCJcdTYyNGJcdTY3M2EiLCJcdTA2MjdcdTA2MzFcdTA2MjdcdTA2NDVcdTA2NDNcdTA2NDgiLCJcdTA2MjdcdTA2NDRcdTA2MzlcdTA2NDRcdTA2NGFcdTA2MjdcdTA2NDYiLCJcdTA2MjdcdTA2MmFcdTA2MzVcdTA2MjdcdTA2NDRcdTA2MjdcdTA2MmEiLCJcdTA2MjhcdTA2MjdcdTA2''@;'; put 'put ''MzJcdTA2MjdcdTA2MzEiLCJcdTA2MjdcdTA2MjhcdTA2NDhcdTA2MzhcdTA2MjhcdTA2NGEiLCJcdTA2NDNcdTA2MjdcdTA2MmJcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDMiLCJcdTA2NDdcdTA2NDVcdTA2MzFcdTA2MjdcdTA2NDciLCJcdWIyZjdcdWNlZjQiLCJcdTY1M2ZcdTVlOWMiLCJc''@;'; put 'put ''dTA2MzRcdTA2MjhcdTA2NDNcdTA2MjkiLCJcdTA2MjhcdTA2NGFcdTA2MmFcdTA2NDMiLCJcdTA2MzlcdTA2MzFcdTA2MjgiLCJcdTY3M2FcdTY3ODQiLCJcdTdlYzRcdTdlYzdcdTY3M2FcdTY3ODQiLCJcdTUwNjVcdTVlYjciLCJcdTYyZGJcdTgwNTgiLCJcdTA0NDBcdTA0NDNcdTA0NDEi''@;'; put 'put ''LCJcdTczZTBcdTViOWQiLCJcdTU5MjdcdTYyZmYiLCJcdTMwN2ZcdTMwOTNcdTMwNmEiLCJcdTMwYjBcdTMwZmNcdTMwYjBcdTMwZWIiLCJcdTRlMTZcdTc1NGMiLCJcdTY2ZjhcdTdjNGQiLCJcdTdmNTFcdTU3NDAiLCJcdWIyZjdcdWIxMzciLCJcdTMwYjNcdTMwZTAiLCJcdTU5MjlcdTRl''@;'; put 'put ''M2JcdTY1NTkiLCJcdTZlMzhcdTYyMGYiLCJ2ZXJtXHhmNmdlbnNiZXJhdGVyIiwidmVybVx4ZjZnZW5zYmVyYXR1bmciLCJcdTRmMDFcdTRlMWEiLCJcdTRmZTFcdTYwNmYiLCJcdTU2MDlcdTkxY2NcdTU5MjdcdTkxNTJcdTVlOTciLCJcdTU2MDlcdTkxY2MiLCJcdTVlN2ZcdTRlMWMiLCJc''@;'; put 'put ''dTY1M2ZcdTUyYTEiLCJ4eXoiLCJ5YWNodHMiLCJ5YWhvbyIsInlhbWF4dW4iLCJ5YW5kZXgiLCJ5b2RvYmFzaGkiLCJ5b2dhIiwieW9rb2hhbWEiLCJ5b3UiLCJ5b3V0dWJlIiwieXVuIiwiemFwcG9zIiwiemFyYSIsInplcm8iLCJ6aXAiLCJ6b25lIiwienVlcmljaCIsImNjLnVhIiwiaW5m''@;'; put 'put ''LnVhIiwibHRkLnVhIiwiYWRvYmVhZW1jbG91ZC5jb20iLCJhZG9iZWFlbWNsb3VkLm5ldCIsIiouZGV2LmFkb2JlYWVtY2xvdWQuY29tIiwiYmVlcC5wbCIsImJhcnN5LmNhIiwiKi5jb21wdXRlLmVzdGF0ZSIsIiouYWxjZXMubmV0d29yayIsImFsdGVydmlzdGEub3JnIiwiYWx3YXlzZGF0''@;'; put 'put ''YS5uZXQiLCJjbG91ZGZyb250Lm5ldCIsIiouY29tcHV0ZS5hbWF6b25hd3MuY29tIiwiKi5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSIsIiouY29tcHV0ZS5hbWF6b25hd3MuY29tLmNuIiwidXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJjbi1ub3J0aC0xLmViLmFtYXpvbmF3cy5jb20uY24i''@;'; put 'put ''LCJjbi1ub3J0aHdlc3QtMS5lYi5hbWF6b25hd3MuY29tLmNuIiwiZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1ub3J0aGVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImFwLW5vcnRoZWFzdC0yLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtbm9ydGhlYXN0LTMuZWxhc3RpY2JlYW5z''@;'; put 'put ''dGFsay5jb20iLCJhcC1zb3V0aC0xLmVsYXN0aWNiZWFuc3RhbGsuY29tIiwiYXAtc291dGhlYXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJhcC1zb3V0aGVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImNhLWNlbnRyYWwtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LWNlbnRy''@;'; put 'put ''YWwtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsImV1LXdlc3QtMy5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInNhLWVhc3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWVh''@;'; put 'put ''c3QtMS5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWVhc3QtMi5lbGFzdGljYmVhbnN0YWxrLmNvbSIsInVzLWdvdi13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTEuZWxhc3RpY2JlYW5zdGFsay5jb20iLCJ1cy13ZXN0LTIuZWxhc3RpY2JlYW5zdGFsay5jb20iLCIq''@;'; put 'put ''LmVsYi5hbWF6b25hd3MuY29tIiwiKi5lbGIuYW1hem9uYXdzLmNvbS5jbiIsInMzLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtYXAtbm9ydGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLWFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbSIsInMz''@;'; put 'put ''LWFwLXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy1hcC1zb3V0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy1ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtZXUt''@;'; put 'put ''d2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy1ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLWV4dGVybmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLWZpcHMtdXMtZ292LXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtc2EtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy11cy1nb3Ytd2VzdC0x''@;'; put 'put ''LmFtYXpvbmF3cy5jb20iLCJzMy11cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtdXMtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29t''@;'; put 'put ''IiwiczMuY24tbm9ydGgtMS5hbWF6b25hd3MuY29tLmNuIiwiczMuY2EtY2VudHJhbC0xLmFtYXpvbmF3cy5jb20iLCJzMy5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmV1LXdlc3QtMi5hbWF6b25hd3MuY29tIiwiczMuZXUtd2VzdC0zLmFtYXpvbmF3cy5jb20iLCJzMy51cy1l''@;'; put 'put ''YXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5hcC1ub3J0aGVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFwLW5vcnRoZWFzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtc291dGgtMS5hbWF6b25hd3MuY29tIiwiczMuZHVhbHN0YWNrLmFw''@;'; put 'put ''LXNvdXRoZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy5kdWFsc3RhY2suYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5jYS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxz''@;'; put 'put ''dGFjay5ldS13ZXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5ldS13ZXN0LTMuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay5zYS1lYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay51cy1l''@;'; put 'put ''YXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLmR1YWxzdGFjay51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtdXMtZWFzdC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLXVzLXdlc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS11cy13ZXN0LTIuYW1hem9uYXdz''@;'; put 'put ''LmNvbSIsInMzLXdlYnNpdGUtYXAtbm9ydGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtc291dGhlYXN0LTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtYXAtc291dGhlYXN0LTIuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUtZXUtd2VzdC0xLmFtYXpvbmF3cy5j''@;'; put 'put ''b20iLCJzMy13ZWJzaXRlLXNhLWVhc3QtMS5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1ub3J0aGVhc3QtMi5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmNhLWNlbnRyYWwtMS5hbWF6b25hd3MuY29tIiwiczMt''@;'; put 'put ''d2Vic2l0ZS5ldS1jZW50cmFsLTEuYW1hem9uYXdzLmNvbSIsInMzLXdlYnNpdGUuZXUtd2VzdC0yLmFtYXpvbmF3cy5jb20iLCJzMy13ZWJzaXRlLmV1LXdlc3QtMy5hbWF6b25hd3MuY29tIiwiczMtd2Vic2l0ZS51cy1lYXN0LTIuYW1hem9uYXdzLmNvbSIsImFtc3cubmwiLCJ0M2wzcDBy''@;'; put 'put ''dC5uZXQiLCJ0ZWxlLmFtdW5lLm9yZyIsImFwaWdlZS5pbyIsIm9uLWFwdGlibGUuY29tIiwidXNlci5hc2VpbmV0Lm5lLmpwIiwiZ3YudmMiLCJkLmd2LnZjIiwidXNlci5wYXJ0eS5ldXMiLCJwaW1pZW50YS5vcmciLCJwb2l2cm9uLm9yZyIsInBvdGFnZXIub3JnIiwic3dlZXRwZXBwZXIu''@;'; put 'put ''b3JnIiwibXlhc3VzdG9yLmNvbSIsIm15ZnJpdHoubmV0IiwiKi5hd2Rldi5jYSIsIiouYWR2aXNvci53cyIsImItZGF0YS5pbyIsImJhY2twbGFuZWFwcC5pbyIsImJhbGVuYS1kZXZpY2VzLmNvbSIsImFwcC5iYW56YWljbG91ZC5pbyIsImJldGFpbmFib3guY29tIiwiYm5yLmxhIiwiYmxh''@;'; put 'put ''Y2tiYXVkY2RuLm5ldCIsImJvb21sYS5uZXQiLCJib3hmdXNlLmlvIiwic3F1YXJlNy5jaCIsImJwbGFjZWQuY29tIiwiYnBsYWNlZC5kZSIsInNxdWFyZTcuZGUiLCJicGxhY2VkLm5ldCIsInNxdWFyZTcubmV0IiwiYnJvd3NlcnNhZmV0eW1hcmsuaW8iLCJ1azAuYmlndi5pbyIsImRoLmJ5''@;'; put 'put ''dGVtYXJrLmNvLnVrIiwidm0uYnl0ZW1hcmsuY28udWsiLCJteWNkLmV1IiwiY2FycmQuY28iLCJjcmQuY28iLCJ1d3UuYWkiLCJhZS5vcmciLCJhci5jb20iLCJici5jb20iLCJjbi5jb20iLCJjb20uZGUiLCJjb20uc2UiLCJkZS5jb20iLCJldS5jb20iLCJnYi5jb20iLCJnYi5uZXQiLCJo''@;'; put 'put ''dS5jb20iLCJodS5uZXQiLCJqcC5uZXQiLCJqcG4uY29tIiwia3IuY29tIiwibWV4LmNvbSIsIm5vLmNvbSIsInFjLmNvbSIsInJ1LmNvbSIsInNhLmNvbSIsInNlLm5ldCIsInVrLmNvbSIsInVrLm5ldCIsInVzLmNvbSIsInV5LmNvbSIsInphLmJ6IiwiemEuY29tIiwiYWZyaWNhLmNvbSIs''@;'; put 'put ''ImdyLmNvbSIsImluLm5ldCIsInVzLm9yZyIsImNvLmNvbSIsImMubGEiLCJjZXJ0bWdyLm9yZyIsInhlbmFwcG9uYXp1cmUuY29tIiwiZGlzY291cnNlLmdyb3VwIiwiZGlzY291cnNlLnRlYW0iLCJ2aXJ0dWVlbGRvbWVpbi5ubCIsImNsZXZlcmFwcHMuaW8iLCIqLmxjbC5kZXYiLCIqLnN0''@;'; put 'put ''Zy5kZXYiLCJjNjYubWUiLCJjbG91ZDY2LndzIiwiY2xvdWQ2Ni56b25lIiwiamRldmNsb3VkLmNvbSIsIndwZGV2Y2xvdWQuY29tIiwiY2xvdWRhY2Nlc3MuaG9zdCIsImZyZWVzaXRlLmhvc3QiLCJjbG91ZGFjY2Vzcy5uZXQiLCJjbG91ZGNvbnRyb2xsZWQuY29tIiwiY2xvdWRjb250cm9s''@;'; put 'put ''YXBwLmNvbSIsImNsb3VkZXJhLnNpdGUiLCJ0cnljbG91ZGZsYXJlLmNvbSIsIndvcmtlcnMuZGV2Iiwid25leHQuYXBwIiwiY28uY2EiLCIqLm90YXAuY28iLCJjby5jeiIsImMuY2RuNzcub3JnIiwiY2RuNzctc3NsLm5ldCIsInIuY2RuNzcubmV0IiwicnNjLmNkbjc3Lm9yZyIsInNzbC5v''@;'; put 'put ''cmlnaW4uY2RuNzctc2VjdXJlLm9yZyIsImNsb3VkbnMuYXNpYSIsImNsb3VkbnMuYml6IiwiY2xvdWRucy5jbHViIiwiY2xvdWRucy5jYyIsImNsb3VkbnMuZXUiLCJjbG91ZG5zLmluIiwiY2xvdWRucy5pbmZvIiwiY2xvdWRucy5vcmciLCJjbG91ZG5zLnBybyIsImNsb3VkbnMucHciLCJj''@;'; put 'put ''bG91ZG5zLnVzIiwiY2xvdWRlaXR5Lm5ldCIsImNucHkuZ2RuIiwiY28ubmwiLCJjby5ubyIsIndlYmhvc3RpbmcuYmUiLCJob3N0aW5nLWNsdXN0ZXIubmwiLCJhYy5ydSIsImVkdS5ydSIsImdvdi5ydSIsImludC5ydSIsIm1pbC5ydSIsInRlc3QucnUiLCJkeW4uY29zaWRucy5kZSIsImR5''@;'; put 'put ''bmFtaXNjaGVzLWRucy5kZSIsImRuc3VwZGF0ZXIuZGUiLCJpbnRlcm5ldC1kbnMuZGUiLCJsLW8tZy1pLW4uZGUiLCJkeW5hbWljLWRucy5pbmZvIiwiZmVzdGUtaXAubmV0Iiwia254LXNlcnZlci5uZXQiLCJzdGF0aWMtYWNjZXNzLm5ldCIsInJlYWxtLmN6IiwiKi5jcnlwdG9ub21pYy5u''@;'; put 'put ''ZXQiLCJjdXBjYWtlLmlzIiwiKi5jdXN0b21lci1vY2kuY29tIiwiKi5vY2kuY3VzdG9tZXItb2NpLmNvbSIsIioub2NwLmN1c3RvbWVyLW9jaS5jb20iLCIqLm9jcy5jdXN0b21lci1vY2kuY29tIiwiY3lvbi5saW5rIiwiY3lvbi5zaXRlIiwiZGFwbGllLm1lIiwibG9jYWxob3N0LmRhcGxp''@;'; put 'put ''ZS5tZSIsImRhdHRvbG9jYWwuY29tIiwiZGF0dG9yZWxheS5jb20iLCJkYXR0b3dlYi5jb20iLCJteWRhdHRvLmNvbSIsImRhdHRvbG9jYWwubmV0IiwibXlkYXR0by5uZXQiLCJiaXouZGsiLCJjby5kayIsImZpcm0uZGsiLCJyZWcuZGsiLCJzdG9yZS5kayIsIiouZGFwcHMuZWFydGgiLCIq''@;'; put 'put ''LmJ6ei5kYXBwcy5lYXJ0aCIsImJ1aWx0d2l0aGRhcmsuY29tIiwiZWRnZXN0YWNrLm1lIiwiZGViaWFuLm5ldCIsImRlZHluLmlvIiwiZG5zaG9tZS5kZSIsIm9ubGluZS50aCIsInNob3AudGgiLCJkcmF5ZGRucy5jb20iLCJkcmVhbWhvc3RlcnMuY29tIiwibXlkcm9iby5jb20iLCJkcnVk''@;'; put 'put ''LmlvIiwiZHJ1ZC51cyIsImR1Y2tkbnMub3JnIiwiZHkuZmkiLCJ0dW5rLm9yZyIsImR5bmRucy1hdC1ob21lLmNvbSIsImR5bmRucy1hdC13b3JrLmNvbSIsImR5bmRucy1ibG9nLmNvbSIsImR5bmRucy1mcmVlLmNvbSIsImR5bmRucy1ob21lLmNvbSIsImR5bmRucy1pcC5jb20iLCJkeW5k''@;'; put 'put ''bnMtbWFpbC5jb20iLCJkeW5kbnMtb2ZmaWNlLmNvbSIsImR5bmRucy1waWNzLmNvbSIsImR5bmRucy1yZW1vdGUuY29tIiwiZHluZG5zLXNlcnZlci5jb20iLCJkeW5kbnMtd2ViLmNvbSIsImR5bmRucy13aWtpLmNvbSIsImR5bmRucy13b3JrLmNvbSIsImR5bmRucy5iaXoiLCJkeW5kbnMu''@;'; put 'put ''aW5mbyIsImR5bmRucy5vcmciLCJkeW5kbnMudHYiLCJhdC1iYW5kLWNhbXAubmV0IiwiYXRoLmN4IiwiYmFycmVsLW9mLWtub3dsZWRnZS5pbmZvIiwiYmFycmVsbC1vZi1rbm93bGVkZ2UuaW5mbyIsImJldHRlci10aGFuLnR2IiwiYmxvZ2Rucy5jb20iLCJibG9nZG5zLm5ldCIsImJsb2dk''@;'; put 'put ''bnMub3JnIiwiYmxvZ3NpdGUub3JnIiwiYm9sZGx5Z29pbmdub3doZXJlLm9yZyIsImJyb2tlLWl0Lm5ldCIsImJ1eXNob3VzZXMubmV0IiwiY2VjaGlyZS5jb20iLCJkbnNhbGlhcy5jb20iLCJkbnNhbGlhcy5uZXQiLCJkbnNhbGlhcy5vcmciLCJkbnNkb2pvLmNvbSIsImRuc2Rvam8ubmV0''@;'; put 'put ''IiwiZG5zZG9qby5vcmciLCJkb2VzLWl0Lm5ldCIsImRvZXNudGV4aXN0LmNvbSIsImRvZXNudGV4aXN0Lm9yZyIsImRvbnRleGlzdC5jb20iLCJkb250ZXhpc3QubmV0IiwiZG9udGV4aXN0Lm9yZyIsImRvb21kbnMuY29tIiwiZG9vbWRucy5vcmciLCJkdnJkbnMub3JnIiwiZHluLW8tc2F1''@;'; put 'put ''ci5jb20iLCJkeW5hbGlhcy5jb20iLCJkeW5hbGlhcy5uZXQiLCJkeW5hbGlhcy5vcmciLCJkeW5hdGhvbWUubmV0IiwiZHluZG5zLndzIiwiZW5kb2ZpbnRlcm5ldC5uZXQiLCJlbmRvZmludGVybmV0Lm9yZyIsImVuZG9mdGhlaW50ZXJuZXQub3JnIiwiZXN0LWEtbGEtbWFpc29uLmNvbSIs''@;'; put 'put ''ImVzdC1hLWxhLW1hc2lvbi5jb20iLCJlc3QtbGUtcGF0cm9uLmNvbSIsImVzdC1tb24tYmxvZ3VldXIuY29tIiwiZm9yLWJldHRlci5iaXoiLCJmb3ItbW9yZS5iaXoiLCJmb3Itb3VyLmluZm8iLCJmb3Itc29tZS5iaXoiLCJmb3ItdGhlLmJpeiIsImZvcmdvdC5oZXIubmFtZSIsImZvcmdv''@;'; put 'put ''dC5oaXMubmFtZSIsImZyb20tYWsuY29tIiwiZnJvbS1hbC5jb20iLCJmcm9tLWFyLmNvbSIsImZyb20tYXoubmV0IiwiZnJvbS1jYS5jb20iLCJmcm9tLWNvLm5ldCIsImZyb20tY3QuY29tIiwiZnJvbS1kYy5jb20iLCJmcm9tLWRlLmNvbSIsImZyb20tZmwuY29tIiwiZnJvbS1nYS5jb20i''@;'; put 'put ''LCJmcm9tLWhpLmNvbSIsImZyb20taWEuY29tIiwiZnJvbS1pZC5jb20iLCJmcm9tLWlsLmNvbSIsImZyb20taW4uY29tIiwiZnJvbS1rcy5jb20iLCJmcm9tLWt5LmNvbSIsImZyb20tbGEubmV0IiwiZnJvbS1tYS5jb20iLCJmcm9tLW1kLmNvbSIsImZyb20tbWUub3JnIiwiZnJvbS1taS5j''@;'; put 'put ''b20iLCJmcm9tLW1uLmNvbSIsImZyb20tbW8uY29tIiwiZnJvbS1tcy5jb20iLCJmcm9tLW10LmNvbSIsImZyb20tbmMuY29tIiwiZnJvbS1uZC5jb20iLCJmcm9tLW5lLmNvbSIsImZyb20tbmguY29tIiwiZnJvbS1uai5jb20iLCJmcm9tLW5tLmNvbSIsImZyb20tbnYuY29tIiwiZnJvbS1u''@;'; put 'put ''eS5uZXQiLCJmcm9tLW9oLmNvbSIsImZyb20tb2suY29tIiwiZnJvbS1vci5jb20iLCJmcm9tLXBhLmNvbSIsImZyb20tcHIuY29tIiwiZnJvbS1yaS5jb20iLCJmcm9tLXNjLmNvbSIsImZyb20tc2QuY29tIiwiZnJvbS10bi5jb20iLCJmcm9tLXR4LmNvbSIsImZyb20tdXQuY29tIiwiZnJv''@;'; put 'put ''bS12YS5jb20iLCJmcm9tLXZ0LmNvbSIsImZyb20td2EuY29tIiwiZnJvbS13aS5jb20iLCJmcm9tLXd2LmNvbSIsImZyb20td3kuY29tIiwiZnRwYWNjZXNzLmNjIiwiZnVldHRlcnRkYXNuZXR6LmRlIiwiZ2FtZS1ob3N0Lm9yZyIsImdhbWUtc2VydmVyLmNjIiwiZ2V0bXlpcC5jb20iLCJn''@;'; put 'put ''ZXRzLWl0Lm5ldCIsImdvLmR5bmRucy5vcmciLCJnb3RkbnMuY29tIiwiZ290ZG5zLm9yZyIsImdyb2tzLXRoZS5pbmZvIiwiZ3Jva3MtdGhpcy5pbmZvIiwiaGFtLXJhZGlvLW9wLm5ldCIsImhlcmUtZm9yLW1vcmUuaW5mbyIsImhvYmJ5LXNpdGUuY29tIiwiaG9iYnktc2l0ZS5vcmciLCJo''@;'; put 'put ''b21lLmR5bmRucy5vcmciLCJob21lZG5zLm9yZyIsImhvbWVmdHAubmV0IiwiaG9tZWZ0cC5vcmciLCJob21laXAubmV0IiwiaG9tZWxpbnV4LmNvbSIsImhvbWVsaW51eC5uZXQiLCJob21lbGludXgub3JnIiwiaG9tZXVuaXguY29tIiwiaG9tZXVuaXgubmV0IiwiaG9tZXVuaXgub3JnIiwi''@;'; put 'put ''aWFtYWxsYW1hLmNvbSIsImluLXRoZS1iYW5kLm5ldCIsImlzLWEtYW5hcmNoaXN0LmNvbSIsImlzLWEtYmxvZ2dlci5jb20iLCJpcy1hLWJvb2trZWVwZXIuY29tIiwiaXMtYS1icnVpbnNmYW4ub3JnIiwiaXMtYS1idWxscy1mYW4uY29tIiwiaXMtYS1jYW5kaWRhdGUub3JnIiwiaXMtYS1j''@;'; put 'put ''YXRlcmVyLmNvbSIsImlzLWEtY2VsdGljc2Zhbi5vcmciLCJpcy1hLWNoZWYuY29tIiwiaXMtYS1jaGVmLm5ldCIsImlzLWEtY2hlZi5vcmciLCJpcy1hLWNvbnNlcnZhdGl2ZS5jb20iLCJpcy1hLWNwYS5jb20iLCJpcy1hLWN1YmljbGUtc2xhdmUuY29tIiwiaXMtYS1kZW1vY3JhdC5jb20i''@;'; put 'put ''LCJpcy1hLWRlc2lnbmVyLmNvbSIsImlzLWEtZG9jdG9yLmNvbSIsImlzLWEtZmluYW5jaWFsYWR2aXNvci5jb20iLCJpcy1hLWdlZWsuY29tIiwiaXMtYS1nZWVrLm5ldCIsImlzLWEtZ2Vlay5vcmciLCJpcy1hLWdyZWVuLmNvbSIsImlzLWEtZ3VydS5jb20iLCJpcy1hLWhhcmQtd29ya2Vy''@;'; put 'put ''LmNvbSIsImlzLWEtaHVudGVyLmNvbSIsImlzLWEta25pZ2h0Lm9yZyIsImlzLWEtbGFuZHNjYXBlci5jb20iLCJpcy1hLWxhd3llci5jb20iLCJpcy1hLWxpYmVyYWwuY29tIiwiaXMtYS1saWJlcnRhcmlhbi5jb20iLCJpcy1hLWxpbnV4LXVzZXIub3JnIiwiaXMtYS1sbGFtYS5jb20iLCJp''@;'; put 'put ''cy1hLW11c2ljaWFuLmNvbSIsImlzLWEtbmFzY2FyZmFuLmNvbSIsImlzLWEtbnVyc2UuY29tIiwiaXMtYS1wYWludGVyLmNvbSIsImlzLWEtcGF0c2Zhbi5vcmciLCJpcy1hLXBlcnNvbmFsdHJhaW5lci5jb20iLCJpcy1hLXBob3RvZ3JhcGhlci5jb20iLCJpcy1hLXBsYXllci5jb20iLCJp''@;'; put 'put ''cy1hLXJlcHVibGljYW4uY29tIiwiaXMtYS1yb2Nrc3Rhci5jb20iLCJpcy1hLXNvY2lhbGlzdC5jb20iLCJpcy1hLXNveGZhbi5vcmciLCJpcy1hLXN0dWRlbnQuY29tIiwiaXMtYS10ZWFjaGVyLmNvbSIsImlzLWEtdGVjaGllLmNvbSIsImlzLWEtdGhlcmFwaXN0LmNvbSIsImlzLWFuLWFj''@;'; put 'put ''Y291bnRhbnQuY29tIiwiaXMtYW4tYWN0b3IuY29tIiwiaXMtYW4tYWN0cmVzcy5jb20iLCJpcy1hbi1hbmFyY2hpc3QuY29tIiwiaXMtYW4tYXJ0aXN0LmNvbSIsImlzLWFuLWVuZ2luZWVyLmNvbSIsImlzLWFuLWVudGVydGFpbmVyLmNvbSIsImlzLWJ5LnVzIiwiaXMtY2VydGlmaWVkLmNv''@;'; put 'put ''bSIsImlzLWZvdW5kLm9yZyIsImlzLWdvbmUuY29tIiwiaXMtaW50by1hbmltZS5jb20iLCJpcy1pbnRvLWNhcnMuY29tIiwiaXMtaW50by1jYXJ0b29ucy5jb20iLCJpcy1pbnRvLWdhbWVzLmNvbSIsImlzLWxlZXQuY29tIiwiaXMtbG9zdC5vcmciLCJpcy1ub3QtY2VydGlmaWVkLmNvbSIs''@;'; put 'put ''ImlzLXNhdmVkLm9yZyIsImlzLXNsaWNrLmNvbSIsImlzLXViZXJsZWV0LmNvbSIsImlzLXZlcnktYmFkLm9yZyIsImlzLXZlcnktZXZpbC5vcmciLCJpcy12ZXJ5LWdvb2Qub3JnIiwiaXMtdmVyeS1uaWNlLm9yZyIsImlzLXZlcnktc3dlZXQub3JnIiwiaXMtd2l0aC10aGViYW5kLmNvbSIs''@;'; put 'put ''ImlzYS1nZWVrLmNvbSIsImlzYS1nZWVrLm5ldCIsImlzYS1nZWVrLm9yZyIsImlzYS1ob2NrZXludXQuY29tIiwiaXNzbWFydGVydGhhbnlvdS5jb20iLCJpc3RlaW5nZWVrLmRlIiwiaXN0bWVpbi5kZSIsImtpY2tzLWFzcy5uZXQiLCJraWNrcy1hc3Mub3JnIiwia25vd3NpdGFsbC5pbmZv''@;'; put 'put ''IiwibGFuZC00LXNhbGUudXMiLCJsZWJ0aW1uZXR6LmRlIiwibGVpdHVuZ3Nlbi5kZSIsImxpa2VzLXBpZS5jb20iLCJsaWtlc2NhbmR5LmNvbSIsIm1lcnNlaW5lLm51IiwibWluZS5udSIsIm1pc2NvbmZ1c2VkLm9yZyIsIm15cGV0cy53cyIsIm15cGhvdG9zLmNjIiwibmVhdC11cmwuY29t''@;'; put 'put ''Iiwib2ZmaWNlLW9uLXRoZS5uZXQiLCJvbi10aGUtd2ViLnR2IiwicG9kem9uZS5uZXQiLCJwb2R6b25lLm9yZyIsInJlYWRteWJsb2cub3JnIiwic2F2ZXMtdGhlLXdoYWxlcy5jb20iLCJzY3JhcHBlci1zaXRlLm5ldCIsInNjcmFwcGluZy5jYyIsInNlbGZpcC5iaXoiLCJzZWxmaXAuY29t''@;'; put 'put ''Iiwic2VsZmlwLmluZm8iLCJzZWxmaXAubmV0Iiwic2VsZmlwLm9yZyIsInNlbGxzLWZvci1sZXNzLmNvbSIsInNlbGxzLWZvci11LmNvbSIsInNlbGxzLWl0Lm5ldCIsInNlbGxzeW91cmhvbWUub3JnIiwic2VydmViYnMuY29tIiwic2VydmViYnMubmV0Iiwic2VydmViYnMub3JnIiwic2Vy''@;'; put 'put ''dmVmdHAubmV0Iiwic2VydmVmdHAub3JnIiwic2VydmVnYW1lLm9yZyIsInNoYWNrbmV0Lm51Iiwic2ltcGxlLXVybC5jb20iLCJzcGFjZS10by1yZW50LmNvbSIsInN0dWZmLTQtc2FsZS5vcmciLCJzdHVmZi00LXNhbGUudXMiLCJ0ZWFjaGVzLXlvZ2EuY29tIiwidGhydWhlcmUubmV0Iiwi''@;'; put 'put ''dHJhZXVtdGdlcmFkZS5kZSIsIndlYmhvcC5iaXoiLCJ3ZWJob3AuaW5mbyIsIndlYmhvcC5uZXQiLCJ3ZWJob3Aub3JnIiwid29yc2UtdGhhbi50diIsIndyaXRlc3RoaXNibG9nLmNvbSIsImRkbnNzLmRlIiwiZHluLmRkbnNzLmRlIiwiZHluZG5zLmRkbnNzLmRlIiwiZHluZG5zMS5kZSIs''@;'; put 'put ''ImR5bi1pcDI0LmRlIiwiaG9tZS13ZWJzZXJ2ZXIuZGUiLCJkeW4uaG9tZS13ZWJzZXJ2ZXIuZGUiLCJteWhvbWUtc2VydmVyLmRlIiwiZGRuc3Mub3JnIiwiZGVmaW5pbWEubmV0IiwiZGVmaW5pbWEuaW8iLCJiY2kuZG5zdHJhY2UucHJvIiwiZGRuc2ZyZWUuY29tIiwiZGRuc2dlZWsuY29t''@;'; put 'put ''IiwiZ2lpemUuY29tIiwiZ2xlZXplLmNvbSIsImtvem93LmNvbSIsImxvc2V5b3VyaXAuY29tIiwib29ndXkuY29tIiwidGhld29ya3BjLmNvbSIsImNhc2FjYW0ubmV0IiwiZHludS5uZXQiLCJhY2Nlc3NjYW0ub3JnIiwiY2FtZHZyLm9yZyIsImZyZWVkZG5zLm9yZyIsIm15d2lyZS5vcmci''@;'; put 'put ''LCJ3ZWJyZWRpcmVjdC5vcmciLCJteWRkbnMucm9ja3MiLCJibG9nc2l0ZS54eXoiLCJkeW52Ni5uZXQiLCJlNC5jeiIsImVuLXJvb3QuZnIiLCJteXR1bGVhcC5jb20iLCJvbnJlZC5vbmUiLCJzdGFnaW5nLm9ucmVkLm9uZSIsImVub25pYy5pbyIsImN1c3RvbWVyLmVub25pYy5pbyIsImV1''@;'; put 'put ''Lm9yZyIsImFsLmV1Lm9yZyIsImFzc28uZXUub3JnIiwiYXQuZXUub3JnIiwiYXUuZXUub3JnIiwiYmUuZXUub3JnIiwiYmcuZXUub3JnIiwiY2EuZXUub3JnIiwiY2QuZXUub3JnIiwiY2guZXUub3JnIiwiY24uZXUub3JnIiwiY3kuZXUub3JnIiwiY3ouZXUub3JnIiwiZGUuZXUub3JnIiwi''@;'; put 'put ''ZGsuZXUub3JnIiwiZWR1LmV1Lm9yZyIsImVlLmV1Lm9yZyIsImVzLmV1Lm9yZyIsImZpLmV1Lm9yZyIsImZyLmV1Lm9yZyIsImdyLmV1Lm9yZyIsImhyLmV1Lm9yZyIsImh1LmV1Lm9yZyIsImllLmV1Lm9yZyIsImlsLmV1Lm9yZyIsImluLmV1Lm9yZyIsImludC5ldS5vcmciLCJpcy5ldS5v''@;'; put 'put ''cmciLCJpdC5ldS5vcmciLCJqcC5ldS5vcmciLCJrci5ldS5vcmciLCJsdC5ldS5vcmciLCJsdS5ldS5vcmciLCJsdi5ldS5vcmciLCJtYy5ldS5vcmciLCJtZS5ldS5vcmciLCJtay5ldS5vcmciLCJtdC5ldS5vcmciLCJteS5ldS5vcmciLCJuZXQuZXUub3JnIiwibmcuZXUub3JnIiwibmwu''@;'; put 'put ''ZXUub3JnIiwibm8uZXUub3JnIiwibnouZXUub3JnIiwicGFyaXMuZXUub3JnIiwicGwuZXUub3JnIiwicHQuZXUub3JnIiwicS1hLmV1Lm9yZyIsInJvLmV1Lm9yZyIsInJ1LmV1Lm9yZyIsInNlLmV1Lm9yZyIsInNpLmV1Lm9yZyIsInNrLmV1Lm9yZyIsInRyLmV1Lm9yZyIsInVrLmV1Lm9y''@;'; put 'put ''ZyIsInVzLmV1Lm9yZyIsImV1LTEuZXZlbm5vZGUuY29tIiwiZXUtMi5ldmVubm9kZS5jb20iLCJldS0zLmV2ZW5ub2RlLmNvbSIsImV1LTQuZXZlbm5vZGUuY29tIiwidXMtMS5ldmVubm9kZS5jb20iLCJ1cy0yLmV2ZW5ub2RlLmNvbSIsInVzLTMuZXZlbm5vZGUuY29tIiwidXMtNC5ldmVu''@;'; put 'put ''bm9kZS5jb20iLCJ0d21haWwuY2MiLCJ0d21haWwubmV0IiwidHdtYWlsLm9yZyIsIm15bWFpbGVyLmNvbS50dyIsInVybC50dyIsImFwcHMuZmJzYnguY29tIiwicnUubmV0IiwiYWR5Z2V5YS5ydSIsImJhc2hraXJpYS5ydSIsImJpci5ydSIsImNiZy5ydSIsImNvbS5ydSIsImRhZ2VzdGFu''@;'; put 'put ''LnJ1IiwiZ3Jvem55LnJ1Iiwia2FsbXlraWEucnUiLCJrdXN0YW5haS5ydSIsIm1hcmluZS5ydSIsIm1vcmRvdmlhLnJ1IiwibXNrLnJ1IiwibXl0aXMucnUiLCJuYWxjaGlrLnJ1Iiwibm92LnJ1IiwicHlhdGlnb3Jzay5ydSIsInNwYi5ydSIsInZsYWRpa2F2a2F6LnJ1IiwidmxhZGltaXIu''@;'; put 'put ''cnUiLCJhYmtoYXppYS5zdSIsImFkeWdleWEuc3UiLCJha3R5dWJpbnNrLnN1IiwiYXJraGFuZ2Vsc2suc3UiLCJhcm1lbmlhLnN1IiwiYXNoZ2FiYWQuc3UiLCJhemVyYmFpamFuLnN1IiwiYmFsYXNob3Yuc3UiLCJiYXNoa2lyaWEuc3UiLCJicnlhbnNrLnN1IiwiYnVraGFyYS5zdSIsImNo''@;'; put 'put ''aW1rZW50LnN1IiwiZGFnZXN0YW4uc3UiLCJlYXN0LWthemFraHN0YW4uc3UiLCJleG5ldC5zdSIsImdlb3JnaWEuc3UiLCJncm96bnkuc3UiLCJpdmFub3ZvLnN1IiwiamFtYnlsLnN1Iiwia2FsbXlraWEuc3UiLCJrYWx1Z2Euc3UiLCJrYXJhY29sLnN1Iiwia2FyYWdhbmRhLnN1Iiwia2Fy''@;'; put 'put ''ZWxpYS5zdSIsImtoYWthc3NpYS5zdSIsImtyYXNub2Rhci5zdSIsImt1cmdhbi5zdSIsImt1c3RhbmFpLnN1IiwibGVudWcuc3UiLCJtYW5neXNobGFrLnN1IiwibW9yZG92aWEuc3UiLCJtc2suc3UiLCJtdXJtYW5zay5zdSIsIm5hbGNoaWsuc3UiLCJuYXZvaS5zdSIsIm5vcnRoLWthemFr''@;'; put 'put ''aHN0YW4uc3UiLCJub3Yuc3UiLCJvYm5pbnNrLnN1IiwicGVuemEuc3UiLCJwb2tyb3Zzay5zdSIsInNvY2hpLnN1Iiwic3BiLnN1IiwidGFzaGtlbnQuc3UiLCJ0ZXJtZXouc3UiLCJ0b2dsaWF0dGkuc3UiLCJ0cm9pdHNrLnN1IiwidHNlbGlub2dyYWQuc3UiLCJ0dWxhLnN1IiwidHV2YS5z''@;'; put 'put ''dSIsInZsYWRpa2F2a2F6LnN1IiwidmxhZGltaXIuc3UiLCJ2b2xvZ2RhLnN1IiwiY2hhbm5lbHNkdnIubmV0IiwidS5jaGFubmVsc2R2ci5uZXQiLCJmYXN0bHktdGVycmFyaXVtLmNvbSIsImZhc3RseWxiLm5ldCIsIm1hcC5mYXN0bHlsYi5uZXQiLCJmcmVldGxzLmZhc3RseS5uZXQiLCJt''@;'; put 'put ''YXAuZmFzdGx5Lm5ldCIsImEucHJvZC5mYXN0bHkubmV0IiwiZ2xvYmFsLnByb2QuZmFzdGx5Lm5ldCIsImEuc3NsLmZhc3RseS5uZXQiLCJiLnNzbC5mYXN0bHkubmV0IiwiZ2xvYmFsLnNzbC5mYXN0bHkubmV0IiwiZmFzdHBhbmVsLmRpcmVjdCIsImZhc3R2cHMtc2VydmVyLmNvbSIsImZo''@;'; put 'put ''YXBwLnh5eiIsImZlZG9yYWluZnJhY2xvdWQub3JnIiwiZmVkb3JhcGVvcGxlLm9yZyIsImNsb3VkLmZlZG9yYXByb2plY3Qub3JnIiwiYXBwLm9zLmZlZG9yYXByb2plY3Qub3JnIiwiYXBwLm9zLnN0Zy5mZWRvcmFwcm9qZWN0Lm9yZyIsIm15ZG9iaXNzLmNvbSIsImZpbGVnZWFyLm1lIiwi''@;'; put 'put ''ZmlsZWdlYXItYXUubWUiLCJmaWxlZ2Vhci1kZS5tZSIsImZpbGVnZWFyLWdiLm1lIiwiZmlsZWdlYXItaWUubWUiLCJmaWxlZ2Vhci1qcC5tZSIsImZpbGVnZWFyLXNnLm1lIiwiZmlyZWJhc2VhcHAuY29tIiwiZmx5bm5odWIuY29tIiwiZmx5bm5ob3N0aW5nLm5ldCIsIjBlLnZjIiwiZnJl''@;'; put 'put ''ZWJveC1vcy5jb20iLCJmcmVlYm94b3MuY29tIiwiZmJ4LW9zLmZyIiwiZmJ4b3MuZnIiLCJmcmVlYm94LW9zLmZyIiwiZnJlZWJveG9zLmZyIiwiZnJlZWRlc2t0b3Aub3JnIiwiKi5mdXR1cmVjbXMuYXQiLCIqLmV4LmZ1dHVyZWNtcy5hdCIsIiouaW4uZnV0dXJlY21zLmF0IiwiZnV0dXJl''@;'; put 'put ''aG9zdGluZy5hdCIsImZ1dHVyZW1haWxpbmcuYXQiLCIqLmV4Lm9ydHNpbmZvLmF0IiwiKi5rdW5kZW4ub3J0c2luZm8uYXQiLCIqLnN0YXRpY3MuY2xvdWQiLCJzZXJ2aWNlLmdvdi51ayIsImdlaGlybi5uZS5qcCIsInVzZXJjb250ZW50LmpwIiwiZ2VudGFwcHMuY29tIiwibGFiLm1zIiwi''@;'; put 'put ''Z2l0aHViLmlvIiwiZ2l0aHVidXNlcmNvbnRlbnQuY29tIiwiZ2l0bGFiLmlvIiwiZ2xpdGNoLm1lIiwibG9saXBvcC5pbyIsImNsb3VkYXBwcy5kaWdpdGFsIiwibG9uZG9uLmNsb3VkYXBwcy5kaWdpdGFsIiwiaG9tZW9mZmljZS5nb3YudWsiLCJyby5pbSIsInNob3Aucm8iLCJnb2lwLmRl''@;'; put 'put ''IiwicnVuLmFwcCIsImEucnVuLmFwcCIsIndlYi5hcHAiLCIqLjBlbW0uY29tIiwiYXBwc3BvdC5jb20iLCIqLnIuYXBwc3BvdC5jb20iLCJibG9nc3BvdC5hZSIsImJsb2dzcG90LmFsIiwiYmxvZ3Nwb3QuYW0iLCJibG9nc3BvdC5iYSIsImJsb2dzcG90LmJlIiwiYmxvZ3Nwb3QuYmciLCJi''@;'; put 'put ''bG9nc3BvdC5iaiIsImJsb2dzcG90LmNhIiwiYmxvZ3Nwb3QuY2YiLCJibG9nc3BvdC5jaCIsImJsb2dzcG90LmNsIiwiYmxvZ3Nwb3QuY28uYXQiLCJibG9nc3BvdC5jby5pZCIsImJsb2dzcG90LmNvLmlsIiwiYmxvZ3Nwb3QuY28ua2UiLCJibG9nc3BvdC5jby5ueiIsImJsb2dzcG90LmNv''@;'; put 'put ''LnVrIiwiYmxvZ3Nwb3QuY28uemEiLCJibG9nc3BvdC5jb20iLCJibG9nc3BvdC5jb20uYXIiLCJibG9nc3BvdC5jb20uYXUiLCJibG9nc3BvdC5jb20uYnIiLCJibG9nc3BvdC5jb20uYnkiLCJibG9nc3BvdC5jb20uY28iLCJibG9nc3BvdC5jb20uY3kiLCJibG9nc3BvdC5jb20uZWUiLCJi''@;'; put 'put ''bG9nc3BvdC5jb20uZWciLCJibG9nc3BvdC5jb20uZXMiLCJibG9nc3BvdC5jb20ubXQiLCJibG9nc3BvdC5jb20ubmciLCJibG9nc3BvdC5jb20udHIiLCJibG9nc3BvdC5jb20udXkiLCJibG9nc3BvdC5jdiIsImJsb2dzcG90LmN6IiwiYmxvZ3Nwb3QuZGUiLCJibG9nc3BvdC5kayIsImJs''@;'; put 'put ''b2dzcG90LmZpIiwiYmxvZ3Nwb3QuZnIiLCJibG9nc3BvdC5nciIsImJsb2dzcG90LmhrIiwiYmxvZ3Nwb3QuaHIiLCJibG9nc3BvdC5odSIsImJsb2dzcG90LmllIiwiYmxvZ3Nwb3QuaW4iLCJibG9nc3BvdC5pcyIsImJsb2dzcG90Lml0IiwiYmxvZ3Nwb3QuanAiLCJibG9nc3BvdC5rciIs''@;'; put 'put ''ImJsb2dzcG90LmxpIiwiYmxvZ3Nwb3QubHQiLCJibG9nc3BvdC5sdSIsImJsb2dzcG90Lm1kIiwiYmxvZ3Nwb3QubWsiLCJibG9nc3BvdC5tciIsImJsb2dzcG90Lm14IiwiYmxvZ3Nwb3QubXkiLCJibG9nc3BvdC5ubCIsImJsb2dzcG90Lm5vIiwiYmxvZ3Nwb3QucGUiLCJibG9nc3BvdC5w''@;'; put 'put ''dCIsImJsb2dzcG90LnFhIiwiYmxvZ3Nwb3QucmUiLCJibG9nc3BvdC5ybyIsImJsb2dzcG90LnJzIiwiYmxvZ3Nwb3QucnUiLCJibG9nc3BvdC5zZSIsImJsb2dzcG90LnNnIiwiYmxvZ3Nwb3Quc2kiLCJibG9nc3BvdC5zayIsImJsb2dzcG90LnNuIiwiYmxvZ3Nwb3QudGQiLCJibG9nc3Bv''@;'; put 'put ''dC50dyIsImJsb2dzcG90LnVnIiwiYmxvZ3Nwb3Qudm4iLCJjbG91ZGZ1bmN0aW9ucy5uZXQiLCJjbG91ZC5nb29nIiwiY29kZXNwb3QuY29tIiwiZ29vZ2xlYXBpcy5jb20iLCJnb29nbGVjb2RlLmNvbSIsInBhZ2VzcGVlZG1vYmlsaXplci5jb20iLCJwdWJsaXNocHJveHkuY29tIiwid2l0''@;'; put 'put ''aGdvb2dsZS5jb20iLCJ3aXRoeW91dHViZS5jb20iLCJhd3NtcHBsLmNvbSIsImZpbi5jaSIsImZyZWUuaHIiLCJjYWEubGkiLCJ1YS5ycyIsImNvbmYuc2UiLCJocy56b25lIiwiaHMucnVuIiwiaGFzaGJhbmcuc2giLCJoYXN1cmEuYXBwIiwiaGFzdXJhLWFwcC5pbyIsImhlcGZvcmdlLm9y''@;'; put 'put ''ZyIsImhlcm9rdWFwcC5jb20iLCJoZXJva3Vzc2wuY29tIiwibXlyYXZlbmRiLmNvbSIsInJhdmVuZGIuY29tbXVuaXR5IiwicmF2ZW5kYi5tZSIsImRldmVsb3BtZW50LnJ1biIsInJhdmVuZGIucnVuIiwiYnBsLmJpeiIsIm9yeC5iaXoiLCJuZy5jaXR5IiwiYml6LmdsIiwibmcuaW5rIiwi''@;'; put 'put ''Y29sLm5nIiwiZmlybS5uZyIsImdlbi5uZyIsImx0ZC5uZyIsIm5nby5uZyIsIm5nLnNjaG9vbCIsInNjaC5zbyIsImhceGU0a2tpbmVuLmZpIiwiKi5tb29uc2NhbGUuaW8iLCJtb29uc2NhbGUubmV0IiwiaWtpLmZpIiwiZHluLWJlcmxpbi5kZSIsImluLWJlcmxpbi5kZSIsImluLWJyYi5k''@;'; put 'put ''ZSIsImluLWJ1dHRlci5kZSIsImluLWRzbC5kZSIsImluLWRzbC5uZXQiLCJpbi1kc2wub3JnIiwiaW4tdnBuLmRlIiwiaW4tdnBuLm5ldCIsImluLXZwbi5vcmciLCJiaXouYXQiLCJpbmZvLmF0IiwiaW5mby5jeCIsImFjLmxlZy5iciIsImFsLmxlZy5iciIsImFtLmxlZy5iciIsImFwLmxl''@;'; put 'put ''Zy5iciIsImJhLmxlZy5iciIsImNlLmxlZy5iciIsImRmLmxlZy5iciIsImVzLmxlZy5iciIsImdvLmxlZy5iciIsIm1hLmxlZy5iciIsIm1nLmxlZy5iciIsIm1zLmxlZy5iciIsIm10LmxlZy5iciIsInBhLmxlZy5iciIsInBiLmxlZy5iciIsInBlLmxlZy5iciIsInBpLmxlZy5iciIsInBy''@;'; put 'put ''LmxlZy5iciIsInJqLmxlZy5iciIsInJuLmxlZy5iciIsInJvLmxlZy5iciIsInJyLmxlZy5iciIsInJzLmxlZy5iciIsInNjLmxlZy5iciIsInNlLmxlZy5iciIsInNwLmxlZy5iciIsInRvLmxlZy5iciIsInBpeG9saW5vLmNvbSIsImlwaWZvbnkubmV0IiwibWVpbi1pc2Vydi5kZSIsInRl''@;'; put 'put ''c3QtaXNlcnYuZGUiLCJpc2Vydi5kZXYiLCJpb2JiLm5ldCIsIm15amluby5ydSIsIiouaG9zdGluZy5teWppbm8ucnUiLCIqLmxhbmRpbmcubXlqaW5vLnJ1IiwiKi5zcGVjdHJ1bS5teWppbm8ucnUiLCIqLnZwcy5teWppbm8ucnUiLCIqLnRyaXRvbi56b25lIiwiKi5jbnMuam95ZW50LmNv''@;'; put 'put ''bSIsImpzLm9yZyIsImthYXMuZ2ciLCJraHBsYXkubmwiLCJrZXltYWNoaW5lLmRlIiwia2luZ2hvc3QubmV0IiwidW5pNS5uZXQiLCJrbmlnaHRwb2ludC5zeXN0ZW1zIiwib3lhLnRvIiwiY28ua3JkIiwiZWR1LmtyZCIsImdpdC1yZXBvcy5kZSIsImxjdWJlLXNlcnZlci5kZSIsInN2bi1y''@;'; put 'put ''ZXBvcy5kZSIsImxlYWRwYWdlcy5jbyIsImxwYWdlcy5jbyIsImxwdXNlcmNvbnRlbnQuY29tIiwibGVsdXguc2l0ZSIsImNvLmJ1c2luZXNzIiwiY28uZWR1Y2F0aW9uIiwiY28uZXZlbnRzIiwiY28uZmluYW5jaWFsIiwiY28ubmV0d29yayIsImNvLnBsYWNlIiwiY28udGVjaG5vbG9neSIs''@;'; put 'put ''ImFwcC5sbXBtLmNvbSIsImxpbmtpdG9vbHMuc3BhY2UiLCJsaW5reWFyZC5jbG91ZCIsImxpbmt5YXJkLWNsb3VkLmNoIiwibWVtYmVycy5saW5vZGUuY29tIiwibm9kZWJhbGFuY2VyLmxpbm9kZS5jb20iLCJ3ZS5icyIsImxvZ2lubGluZS5hcHAiLCJsb2dpbmxpbmUuZGV2IiwibG9naW5s''@;'; put 'put ''aW5lLmlvIiwibG9naW5saW5lLnNlcnZpY2VzIiwibG9naW5saW5lLnNpdGUiLCJrcmFzbmlrLnBsIiwibGVjem5hLnBsIiwibHViYXJ0b3cucGwiLCJsdWJsaW4ucGwiLCJwb25pYXRvd2EucGwiLCJzd2lkbmlrLnBsIiwidWtsdWdzLm9yZyIsImdsdWcub3JnLnVrIiwibHVnLm9yZy51ayIs''@;'; put 'put ''Imx1Z3Mub3JnLnVrIiwiYmFyc3kuYmciLCJiYXJzeS5jby51ayIsImJhcnN5b25saW5lLmNvLnVrIiwiYmFyc3ljZW50ZXIuY29tIiwiYmFyc3lvbmxpbmUuY29tIiwiYmFyc3kuY2x1YiIsImJhcnN5LmRlIiwiYmFyc3kuZXUiLCJiYXJzeS5pbiIsImJhcnN5LmluZm8iLCJiYXJzeS5pbyIs''@;'; put 'put ''ImJhcnN5Lm1lIiwiYmFyc3kubWVudSIsImJhcnN5Lm1vYmkiLCJiYXJzeS5uZXQiLCJiYXJzeS5vbmxpbmUiLCJiYXJzeS5vcmciLCJiYXJzeS5wcm8iLCJiYXJzeS5wdWIiLCJiYXJzeS5zaG9wIiwiYmFyc3kuc2l0ZSIsImJhcnN5LnN1cHBvcnQiLCJiYXJzeS51ayIsIioubWFnZW50b3Np''@;'; put 'put ''dGUuY2xvdWQiLCJtYXlmaXJzdC5pbmZvIiwibWF5Zmlyc3Qub3JnIiwiaGIuY2xkbWFpbC5ydSIsIm1pbmlzZXJ2ZXIuY29tIiwibWVtc2V0Lm5ldCIsImNsb3VkLm1ldGFjZW50cnVtLmN6IiwiY3VzdG9tLm1ldGFjZW50cnVtLmN6IiwiZmx0LmNsb3VkLm11bmkuY3oiLCJ1c3IuY2xvdWQu''@;'; put 'put ''bXVuaS5jeiIsIm1ldGVvcmFwcC5jb20iLCJldS5tZXRlb3JhcHAuY29tIiwiY28ucGwiLCJhenVyZWNvbnRhaW5lci5pbyIsImF6dXJld2Vic2l0ZXMubmV0IiwiYXp1cmUtbW9iaWxlLm5ldCIsImNsb3VkYXBwLm5ldCIsIm1vemlsbGEtaW90Lm9yZyIsImJtb2F0dGFjaG1lbnRzLm9yZyIs''@;'; put 'put ''Im5ldC5ydSIsIm9yZy5ydSIsInBwLnJ1IiwidWkubmFidS5jYXNhIiwicG9ueS5jbHViIiwib2YuZmFzaGlvbiIsIm9uLmZhc2hpb24iLCJvZi5mb290YmFsbCIsImluLmxvbmRvbiIsIm9mLmxvbmRvbiIsImZvci5tZW4iLCJhbmQubW9tIiwiZm9yLm1vbSIsImZvci5vbmUiLCJmb3Iuc2Fs''@;'; put 'put ''ZSIsIm9mLndvcmsiLCJ0by53b3JrIiwibmN0dS5tZSIsImJpdGJhbGxvb24uY29tIiwibmV0bGlmeS5jb20iLCI0dS5jb20iLCJuZ3Jvay5pbyIsIm5oLXNlcnYuY28udWsiLCJuZnNob3N0LmNvbSIsImRuc2tpbmcuY2giLCJteXBpLmNvIiwibjR0LmNvIiwiMDAxd3d3LmNvbSIsImRkbnNs''@;'; put 'put ''aXZlLmNvbSIsIm15aXBob3N0LmNvbSIsImZvcnVtei5pbmZvIiwiMTYtYi5pdCIsIjMyLWIuaXQiLCI2NC1iLml0Iiwic291bmRjYXN0Lm1lIiwidGNwNC5tZSIsImRuc3VwLm5ldCIsImhpY2FtLm5ldCIsIm5vdy1kbnMubmV0Iiwib3duaXAubmV0IiwidnBuZG5zLm5ldCIsImR5bnNlcnYu''@;'; put 'put ''b3JnIiwibm93LWRucy5vcmciLCJ4NDQzLnB3Iiwibm93LWRucy50b3AiLCJudGRsbC50b3AiLCJmcmVlZGRucy51cyIsImNyYWZ0aW5nLnh5eiIsInphcHRvLnh5eiIsIm5zdXBkYXRlLmluZm8iLCJuZXJkcG9sLm92aCIsImJsb2dzeXRlLmNvbSIsImJyYXNpbGlhLm1lIiwiY2FibGUtbW9k''@;'; put 'put ''ZW0ub3JnIiwiY2lzY29mcmVhay5jb20iLCJjb2xsZWdlZmFuLm9yZyIsImNvdWNocG90YXRvZnJpZXMub3JnIiwiZGFtbnNlcnZlci5jb20iLCJkZG5zLm1lIiwiZGl0Y2h5b3VyaXAuY29tIiwiZG5zZm9yLm1lIiwiZG5zaXNraW5reS5jb20iLCJkdnJjYW0uaW5mbyIsImR5bm5zLmNvbSIs''@;'; put 'put ''ImVhdGluZy1vcmdhbmljLm5ldCIsImZhbnRhc3lsZWFndWUuY2MiLCJnZWVrZ2FsYXh5LmNvbSIsImdvbGZmYW4udXMiLCJoZWFsdGgtY2FyZXJlZm9ybS5jb20iLCJob21lc2VjdXJpdHltYWMuY29tIiwiaG9tZXNlY3VyaXR5cGMuY29tIiwiaG9wdG8ubWUiLCJpbG92ZWNvbGxlZ2UuaW5m''@;'; put 'put ''byIsImxvZ2ludG8ubWUiLCJtbGJmYW4ub3JnIiwibW1hZmFuLmJpeiIsIm15YWN0aXZlZGlyZWN0b3J5LmNvbSIsIm15ZGlzc2VudC5uZXQiLCJteWVmZmVjdC5uZXQiLCJteW1lZGlhcGMubmV0IiwibXlwc3gubmV0IiwibXlzZWN1cml0eWNhbWVyYS5jb20iLCJteXNlY3VyaXR5Y2FtZXJh''@;'; put 'put ''Lm5ldCIsIm15c2VjdXJpdHljYW1lcmEub3JnIiwibmV0LWZyZWFrcy5jb20iLCJuZmxmYW4ub3JnIiwibmhsZmFuLm5ldCIsIm5vLWlwLmNhIiwibm8taXAuY28udWsiLCJuby1pcC5uZXQiLCJub2lwLnVzIiwib250aGV3aWZpLmNvbSIsInBnYWZhbi5uZXQiLCJwb2ludDJ0aGlzLmNvbSIs''@;'; put 'put ''InBvaW50dG8udXMiLCJwcml2YXRpemVoZWFsdGhpbnN1cmFuY2UubmV0IiwicXVpY2tzeXRlcy5jb20iLCJyZWFkLWJvb2tzLm9yZyIsInNlY3VyaXR5dGFjdGljcy5jb20iLCJzZXJ2ZWV4Y2hhbmdlLmNvbSIsInNlcnZlaHVtb3VyLmNvbSIsInNlcnZlcDJwLmNvbSIsInNlcnZlc2FyY2Fz''@;'; put 'put ''bS5jb20iLCJzdHVmZnRvcmVhZC5jb20iLCJ1ZmNmYW4ub3JnIiwidW51c3VhbHBlcnNvbi5jb20iLCJ3b3JraXNib3JpbmcuY29tIiwiM3V0aWxpdGllcy5jb20iLCJib3VuY2VtZS5uZXQiLCJkZG5zLm5ldCIsImRkbnNraW5nLmNvbSIsImdvdGRucy5jaCIsImhvcHRvLm9yZyIsIm15ZnRw''@;'; put 'put ''LmJpeiIsIm15ZnRwLm9yZyIsIm15dm5jLmNvbSIsIm5vLWlwLmJpeiIsIm5vLWlwLmluZm8iLCJuby1pcC5vcmciLCJub2lwLm1lIiwicmVkaXJlY3RtZS5uZXQiLCJzZXJ2ZWJlZXIuY29tIiwic2VydmVibG9nLm5ldCIsInNlcnZlY291bnRlcnN0cmlrZS5jb20iLCJzZXJ2ZWZ0cC5jb20i''@;'; put 'put ''LCJzZXJ2ZWdhbWUuY29tIiwic2VydmVoYWxmbGlmZS5jb20iLCJzZXJ2ZWh0dHAuY29tIiwic2VydmVpcmMuY29tIiwic2VydmVtaW5lY3JhZnQubmV0Iiwic2VydmVtcDMuY29tIiwic2VydmVwaWNzLmNvbSIsInNlcnZlcXVha2UuY29tIiwic3l0ZXMubmV0Iiwid2ViaG9wLm1lIiwiemFw''@;'; put 'put ''dG8ub3JnIiwic3RhZ2Uubm9kZWFydC5pbyIsIm5vZHVtLmNvIiwibm9kdW0uaW8iLCJwY2xvdWQuaG9zdCIsIm55Yy5tbiIsIm5vbS5hZSIsIm5vbS5hZiIsIm5vbS5haSIsIm5vbS5hbCIsIm55bS5ieSIsIm5vbS5ieiIsIm55bS5ieiIsIm5vbS5jbCIsIm55bS5lYyIsIm5vbS5nZCIsIm5v''@;'; put 'put ''bS5nZSIsIm5vbS5nbCIsIm55bS5nciIsIm5vbS5ndCIsIm55bS5neSIsIm55bS5oayIsIm5vbS5obiIsIm55bS5pZSIsIm5vbS5pbSIsIm5vbS5rZSIsIm55bS5reiIsIm55bS5sYSIsIm55bS5sYyIsIm5vbS5saSIsIm55bS5saSIsIm55bS5sdCIsIm55bS5sdSIsIm5vbS5sdiIsIm55bS5t''@;'; put 'put ''ZSIsIm5vbS5tayIsIm55bS5tbiIsIm55bS5teCIsIm5vbS5udSIsIm55bS5ueiIsIm55bS5wZSIsIm55bS5wdCIsIm5vbS5wdyIsIm5vbS5xYSIsIm55bS5ybyIsIm5vbS5ycyIsIm5vbS5zaSIsIm55bS5zayIsIm5vbS5zdCIsIm55bS5zdSIsIm55bS5zeCIsIm5vbS50aiIsIm55bS50dyIs''@;'; put 'put ''Im5vbS51ZyIsIm5vbS51eSIsIm5vbS52YyIsIm5vbS52ZyIsInN0YXRpYy5vYnNlcnZhYmxldXNlcmNvbnRlbnQuY29tIiwiY3lhLmdnIiwiY2xvdWR5Y2x1c3Rlci5uZXQiLCJuaWQuaW8iLCJvcGVuY3JhZnQuaG9zdGluZyIsIm9wZXJhdW5pdGUuY29tIiwic2t5Z2VhcmFwcC5jb20iLCJv''@;'; put 'put ''dXRzeXN0ZW1zY2xvdWQuY29tIiwib3ducHJvdmlkZXIuY29tIiwib3duLnBtIiwib3gucnMiLCJveS5sYyIsInBnZm9nLmNvbSIsInBhZ2Vmcm9udGFwcC5jb20iLCJhcnQucGwiLCJnbGl3aWNlLnBsIiwia3Jha293LnBsIiwicG96bmFuLnBsIiwid3JvYy5wbCIsInpha29wYW5lLnBsIiwi''@;'; put 'put ''cGFudGhlb25zaXRlLmlvIiwiZ290cGFudGhlb24uY29tIiwibXlwZXAubGluayIsInBlcnNwZWN0YS5jbG91ZCIsIm9uLXdlYi5mciIsIioucGxhdGZvcm0uc2giLCIqLnBsYXRmb3Jtc2guc2l0ZSIsImR5bjUzLmlvIiwiY28uYm4iLCJ4ZW4ucHJnbXIuY29tIiwicHJpdi5hdCIsInBydmN5''@;'; put 'put ''LnBhZ2UiLCIqLmR3ZWIubGluayIsInByb3RvbmV0LmlvIiwiY2hpcnVyZ2llbnMtZGVudGlzdGVzLWVuLWZyYW5jZS5mciIsImJ5ZW4uc2l0ZSIsInB1YnRscy5vcmciLCJxdWFsaWZpb2FwcC5jb20iLCJxYnVzZXIuY29tIiwiaW5zdGFudGNsb3VkLmNuIiwicmFzLnJ1IiwicWEyLmNvbSIs''@;'; put 'put ''InFjeC5pbyIsIiouc3lzLnFjeC5pbyIsImRldi1teXFuYXBjbG91ZC5jb20iLCJhbHBoYS1teXFuYXBjbG91ZC5jb20iLCJteXFuYXBjbG91ZC5jb20iLCIqLnF1aXBlbGVtZW50cy5jb20iLCJ2YXBvci5jbG91ZCIsInZhcG9yY2xvdWQuaW8iLCJyYWNrbWF6ZS5jb20iLCJyYWNrbWF6ZS5u''@;'; put 'put ''ZXQiLCIqLm9uLWszcy5pbyIsIioub24tcmFuY2hlci5jbG91ZCIsIioub24tcmlvLmlvIiwicmVhZHRoZWRvY3MuaW8iLCJyaGNsb3VkLmNvbSIsImFwcC5yZW5kZXIuY29tIiwib25yZW5kZXIuY29tIiwicmVwbC5jbyIsInJlcGwucnVuIiwicmVzaW5kZXZpY2UuaW8iLCJkZXZpY2VzLnJl''@;'; put 'put ''c2luc3RhZ2luZy5pbyIsImh6Yy5pbyIsIndlbGxiZWluZ3pvbmUuZXUiLCJwdHBsdXMuZml0Iiwid2VsbGJlaW5nem9uZS5jby51ayIsImdpdC1wYWdlcy5yaXQuZWR1Iiwic2FuZGNhdHMuaW8iLCJsb2dvaXAuZGUiLCJsb2dvaXAuY29tIiwic2Nob2tva2Vrcy5uZXQiLCJnb3Yuc2NvdCIs''@;'; put 'put ''InNjcnlzZWMuY29tIiwiZmlyZXdhbGwtZ2F0ZXdheS5jb20iLCJmaXJld2FsbC1nYXRld2F5LmRlIiwibXktZ2F0ZXdheS5kZSIsIm15LXJvdXRlci5kZSIsInNwZG5zLmRlIiwic3BkbnMuZXUiLCJmaXJld2FsbC1nYXRld2F5Lm5ldCIsIm15LWZpcmV3YWxsLm9yZyIsIm15ZmlyZXdhbGwu''@;'; put 'put ''b3JnIiwic3BkbnMub3JnIiwic2Vuc2VlcmluZy5uZXQiLCJiaXoudWEiLCJjby51YSIsInBwLnVhIiwic2hpZnRlZGl0LmlvIiwibXlzaG9wYmxvY2tzLmNvbSIsInNob3BpdHNpdGUuY29tIiwibW8tc2llbWVucy5pbyIsIjFrYXBwLmNvbSIsImFwcGNoaXppLmNvbSIsImFwcGxpbnppLmNv''@;'; put 'put ''bSIsInNpbmFhcHAuY29tIiwidmlwc2luYWFwcC5jb20iLCJzaXRlbGVhZi5uZXQiLCJib3VudHktZnVsbC5jb20iLCJhbHBoYS5ib3VudHktZnVsbC5jb20iLCJiZXRhLmJvdW50eS1mdWxsLmNvbSIsInN0YWNraGVyby1uZXR3b3JrLmNvbSIsInN0YXRpYy5sYW5kIiwiZGV2LnN0YXRpYy5s''@;'; put 'put ''YW5kIiwic2l0ZXMuc3RhdGljLmxhbmQiLCJhcHBzLmxhaXIuaW8iLCIqLnN0b2xvcy5pbyIsInNwYWNla2l0LmlvIiwiY3VzdG9tZXIuc3BlZWRwYXJ0bmVyLmRlIiwiYXBpLnN0ZGxpYi5jb20iLCJzdG9yai5mYXJtIiwidXR3ZW50ZS5pbyIsInNvYy5zcmNmLm5ldCIsInVzZXIuc3JjZi5u''@;'; put 'put ''ZXQiLCJ0ZW1wLWRucy5jb20iLCJhcHBsaWNhdGlvbmNsb3VkLmlvIiwic2NhcHAuaW8iLCIqLnM1eS5pbyIsIiouc2Vuc2lvc2l0ZS5jbG91ZCIsInN5bmNsb3VkLml0IiwiZGlza3N0YXRpb24ubWUiLCJkc2Nsb3VkLmJpeiIsImRzY2xvdWQubWUiLCJkc2Nsb3VkLm1vYmkiLCJkc215bmFz''@;'; put 'put ''LmNvbSIsImRzbXluYXMubmV0IiwiZHNteW5hcy5vcmciLCJmYW1pbHlkcy5jb20iLCJmYW1pbHlkcy5uZXQiLCJmYW1pbHlkcy5vcmciLCJpMjM0Lm1lIiwibXlkcy5tZSIsInN5bm9sb2d5Lm1lIiwidnBucGx1cy50byIsImRpcmVjdC5xdWlja2Nvbm5lY3QudG8iLCJ0YWlmdW4tZG5zLmRl''@;'; put 'put ''IiwiZ2RhLnBsIiwiZ2RhbnNrLnBsIiwiZ2R5bmlhLnBsIiwibWVkLnBsIiwic29wb3QucGwiLCJlZHVnaXQub3JnIiwidGVsZWJpdC5hcHAiLCJ0ZWxlYml0LmlvIiwiKi50ZWxlYml0Lnh5eiIsImd3aWRkbGUuY28udWsiLCJ0aGluZ2R1c3RkYXRhLmNvbSIsImN1c3QuZGV2LnRoaW5nZHVz''@;'; put 'put ''dC5pbyIsImN1c3QuZGlzcmVjLnRoaW5nZHVzdC5pbyIsImN1c3QucHJvZC50aGluZ2R1c3QuaW8iLCJjdXN0LnRlc3RpbmcudGhpbmdkdXN0LmlvIiwiYXJ2by5uZXR3b3JrIiwiYXppbXV0aC5uZXR3b3JrIiwiYmxveGNtcy5jb20iLCJ0b3dubmV3cy1zdGFnaW5nLmNvbSIsIjEyaHAuYXQi''@;'; put 'put ''LCIyaXguYXQiLCI0bGltYS5hdCIsImxpbWEtY2l0eS5hdCIsIjEyaHAuY2giLCIyaXguY2giLCI0bGltYS5jaCIsImxpbWEtY2l0eS5jaCIsInRyYWZmaWNwbGV4LmNsb3VkIiwiZGUuY29vbCIsIjEyaHAuZGUiLCIyaXguZGUiLCI0bGltYS5kZSIsImxpbWEtY2l0eS5kZSIsIjEzMzcucGlj''@;'; put 'put ''dHVyZXMiLCJjbGFuLnJpcCIsImxpbWEtY2l0eS5yb2NrcyIsIndlYnNwYWNlLnJvY2tzIiwibGltYS56b25lIiwiKi50cmFuc3VybC5iZSIsIioudHJhbnN1cmwuZXUiLCIqLnRyYW5zdXJsLm5sIiwidHV4ZmFtaWx5Lm9yZyIsImRkLWRucy5kZSIsImRpc2tzdGF0aW9uLmV1IiwiZGlza3N0''@;'; put 'put ''YXRpb24ub3JnIiwiZHJheS1kbnMuZGUiLCJkcmF5ZG5zLmRlIiwiZHluLXZwbi5kZSIsImR5bnZwbi5kZSIsIm1laW4tdmlnb3IuZGUiLCJteS12aWdvci5kZSIsIm15LXdhbi5kZSIsInN5bm8tZHMuZGUiLCJzeW5vbG9neS1kaXNrc3RhdGlvbi5kZSIsInN5bm9sb2d5LWRzLmRlIiwidWJl''@;'; put 'put ''ci5zcGFjZSIsIioudWJlcnNwYWNlLmRlIiwiaGsuY29tIiwiaGsub3JnIiwibHRkLmhrIiwiaW5jLmhrIiwidmlydHVhbHVzZXIuZGUiLCJ2aXJ0dWFsLXVzZXIuZGUiLCJ1cm93bi5jbG91ZCIsImRuc3VwZGF0ZS5pbmZvIiwibGliLmRlLnVzIiwiMjAzOC5pbyIsInJvdXRlci5tYW5hZ2Vt''@;'; put 'put ''ZW50Iiwidi1pbmZvLmluZm8iLCJ2b29ybG9wZXIuY2xvdWQiLCJ2LnVhIiwid2FmZmxlY2VsbC5jb20iLCIqLndlYmhhcmUuZGV2Iiwid2VkZXBsb3kuaW8iLCJ3ZWRlcGxveS5tZSIsIndlZGVwbG95LnNoIiwicmVtb3Rld2QuY29tIiwid21mbGFicy5vcmciLCJteWZvcnVtLmNvbW11bml0''@;'; put 'put ''eSIsImNvbW11bml0eS1wcm8uZGUiLCJkaXNrdXNzaW9uc2JlcmVpY2guZGUiLCJjb21tdW5pdHktcHJvLm5ldCIsIm1laW5mb3J1bS5uZXQiLCJoYWxmLmhvc3QiLCJ4bmJheS5jb20iLCJ1Mi54bmJheS5jb20iLCJ1Mi1sb2NhbC54bmJheS5jb20iLCJjaXN0cm9uLm5sIiwiZGVtb24ubmwi''@;'; put 'put ''LCJ4czRhbGwuc3BhY2UiLCJ5YW5kZXhjbG91ZC5uZXQiLCJzdG9yYWdlLnlhbmRleGNsb3VkLm5ldCIsIndlYnNpdGUueWFuZGV4Y2xvdWQubmV0Iiwib2ZmaWNpYWwuYWNhZGVteSIsInlvbGFzaXRlLmNvbSIsInliby5mYWl0aCIsInlvbWJvLm1lIiwiaG9tZWxpbmsub25lIiwieWJvLnBh''@;'; put 'put ''cnR5IiwieWJvLnJldmlldyIsInliby5zY2llbmNlIiwieWJvLnRyYWRlIiwibm9ob3N0Lm1lIiwibm9oby5zdCIsInphLm5ldCIsInphLm9yZyIsIm5vdy5zaCIsImJzcy5kZXNpZ24iLCJiYXNpY3NlcnZlci5pbyIsInZpcnR1YWxzZXJ2ZXIuaW8iLCJlbnRlcnByaXNlY2xvdWQubnUiXScp''@;'; put 'put ''fX0sRT17fTtmdW5jdGlvbiBFZShVKXt2YXIgUT1FW1VdO2lmKHZvaWQgMCE9PVEpcmV0dXJuIFEuZXhwb3J0czt2YXIgaj1FW1VdPXtpZDpVLGxvYWRlZDohMSxleHBvcnRzOnt9fTtyZXR1cm4gQltVXS5jYWxsKGouZXhwb3J0cyxqLGouZXhwb3J0cyxFZSksai5sb2FkZWQ9ITAsai5leHBv''@;'; put 'put ''cnRzfXJldHVybiBFZS5kPShVLFEpPT57Zm9yKHZhciBqIGluIFEpRWUubyhRLGopJiYhRWUubyhVLGopJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoVSxqLHtlbnVtZXJhYmxlOiEwLGdldDpRW2pdfSl9LEVlLmc9ZnVuY3Rpb24oKXtpZigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMpcmV0''@;'; put 'put ''dXJuIGdsb2JhbFRoaXM7dHJ5e3JldHVybiB0aGlzfHxuZXcgRnVuY3Rpb24oInJldHVybiB0aGlzIikoKX1jYXRjaChVKXtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdylyZXR1cm4gd2luZG93fX0oKSxFZS5vPShVLFEpPT5PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwo''@;'; put 'put ''VSxRKSxFZS5yPVU9PnsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoVSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KFUsIl9fZXNNb2R1bGUiLHt2YWx1''@;'; put 'put ''ZTohMH0pfSxFZS5ubWQ9VT0+KFUucGF0aHM9W10sVS5jaGlsZHJlbnx8KFUuY2hpbGRyZW49W10pLFUpLEVlKDM2MDcpfSkoKX0sMjk3NDg6ZnVuY3Rpb24oWGUsSmUsTCl7InVzZSBzdHJpY3QiO3ZhciBtZT10aGlzJiZ0aGlzLl9faW1wb3J0RGVmYXVsdHx8ZnVuY3Rpb24oail7cmV0dXJu''@;'; put 'put ''IGomJmouX19lc01vZHVsZT9qOntkZWZhdWx0Omp9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSmUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLEplLmlzU3BlY2lhbE1pc3Npbmc9SmUuY2hvaWNlVmFsaWRhdG9yPUplLmNvbmZpcm1hdGlvblZhbGlkYXRvcj1KZS51cmxWYWxpZGF0b3I9dm9p''@;'; put 'put ''ZCAwO3ZhciBCPW1lKEwoNzMzOTMpKTtKZS51cmxWYWxpZGF0b3I9ZnVuY3Rpb24oaixyZSl7cmV0dXJuISFCLmRlZmF1bHQuaXNIdHRwVXJpKGopfHwhIUIuZGVmYXVsdC5pc0h0dHBzVXJpKGopfHwiIj09PWp8fHJlfSxKZS5jb25maXJtYXRpb25WYWxpZGF0b3I9ZnVuY3Rpb24oail7cmV0''@;'; put 'put ''dXJuITA9PT1qfHwhMT09PWp9LEplLmNob2ljZVZhbGlkYXRvcj1mdW5jdGlvbihqLHJlLGFlKXtyZXR1cm4gaj4wJiZqPD1yZXx8YWV9LEplLmlzU3BlY2lhbE1pc3Npbmc9ZnVuY3Rpb24oail7cmV0dXJuKCJzdHJpbmciIT10eXBlb2Yganx8IWouaW5jbHVkZXMoIi4uIikpJiZuZXcgUmVn''@;'; put 'put ''RXhwKCJeKFxcLik/W2Etel8uXXsxfSQiLCJpIikudGVzdChqKX19LDI1ODU5OihYZSxKZSk9PnsidXNlIHN0cmljdCI7dmFyIEI7SmUuRD12b2lkIDAsKEI9SmUuRHx8KEplLkQ9e30pKS5TYXNWaXlhPSJTQVNWSVlBIixCLlNhczk9IlNBUzkiLEIuU2FzanM9IlNBU0pTIn0sMzY2MjU6KFhl''@;'; put 'put ''LEplKT0+eyJ1c2Ugc3RyaWN0IjtKZS5SPXZvaWQgMCxKZS5SPWZ1bmN0aW9uKEIsRSxFZSl7aWYodm9pZCAwPT09RSYmKEU9MSksdm9pZCAwPT09RWUmJihFZT0xMDk5NTExNjI3Nzc2KSwwPT09QilyZXR1cm4iMCBCIjtCPUI+RWU/RWU6Qjt2YXIgaj1FPDA/MDpFLHJlPU1hdGguZmxvb3Io''@;'; put 'put ''TWF0aC5sb2coQikvTWF0aC5sb2coMTAyNCkpO3JldHVybihCL01hdGgucG93KDEwMjQscmUpKS50b0ZpeGVkKGopKyIgIitbIkIiLCJLQiIsIk1CIiwiR0IiLCJUQiJdW3JlXX19LDUzMzk5OmZ1bmN0aW9uKFhlKXt2YXIgSmU9e3ZlcnNpb246IjEuMTUuMCJ9O0plWzQzN109ZnVuY3Rpb24o''@;'; put 'put ''KXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNE''@;'; put 'put ''RUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4''@;'; put 'put ''ZDZceGRjXHhhMlx4YTNceGE1XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUy''@;'; put 'put ''NTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUz''@;'; put 'put ''XHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUy''@;'; put 'put ''MjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVy''@;'; put 'put ''bntlbmM6QixkZWM6bWV9fSgpLEplWzYyMF09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAh''@;'; put 'put ''XCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHUwMTA1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHUwMTA3XHhjNFx1''@;'; put 'put ''MDEwNFx1MDExOFx1MDExOVx1MDE0Mlx4ZjRceGY2XHUwMTA2XHhmYlx4ZjlcdTAxNWFceGQ2XHhkY1x4YTJcdTAxNDFceGE1XHUwMTViXHUwMTkyXHUwMTc5XHUwMTdiXHhmM1x4ZDNcdTAxNDRcdTAxNDNcdTAxN2FcdTAxN2NceGJmXHUyMzEwXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUy''@;'; put 'put ''NTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2''@;'; put 'put ''XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRc''@;'; put 'put ''dTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2''@;'; put 'put ''NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzczN109ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBm''@;'; put 'put ''XHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdm''@;'; put 'put ''XHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUw''@;'; put 'put ''M2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2MyXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYy''@;'; put 'put ''XHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUy''@;'; put 'put ''NTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2M5XHUwM2FjXHUwM2FkXHUwM2FlXHUwM2NhXHUwM2FmXHUwM2NjXHUwM2NkXHUwM2NiXHUwM2NlXHUwMzg2XHUwMzg4XHUwMzg5XHUwMzhh''@;'; put 'put ''XHUwMzhjXHUwMzhlXHUwMzhmXHhiMVx1MjI2NVx1MjI2NFx1MDNhYVx1MDNhYlx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0''@;'; put 'put ''KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4NTBdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgx''@;'; put 'put ''OFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhl''@;'; put 'put ''YVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx4ZDdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkx''@;'; put 'put ''XHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNc''@;'; put 'put ''eGE0XHhmMFx4ZDBceGNhXHhjYlx4YzhcdTAxMzFceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVceGZlXHhkZVx4ZGFceGRiXHhkOVx4ZmRceGRkXHhhZlx4YjRceGFkXHhiMVx1MjAxN1x4YmVceGI2''@;'; put 'put ''XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCks''@;'; put 'put ''SmVbODUyXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIz''@;'; put 'put ''NDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGM3XHhmY1x4ZTlceGUyXHhlNFx1MDE2Zlx1MDEwN1x4ZTdcdTAxNDJceGViXHUwMTUwXHUwMTUxXHhlZVx1MDE3OVx4YzRcdTAxMDZceGM5XHUw''@;'; put 'put ''MTM5XHUwMTNhXHhmNFx4ZjZcdTAxM2RcdTAxM2VcdTAxNWFcdTAxNWJceGQ2XHhkY1x1MDE2NFx1MDE2NVx1MDE0MVx4ZDdcdTAxMGRceGUxXHhlZFx4ZjNceGZhXHUwMTA0XHUwMTA1XHUwMTdkXHUwMTdlXHUwMTE4XHUwMTE5XHhhY1x1MDE3YVx1MDEwY1x1MDE1Zlx4YWJceGJiXHUyNTkx''@;'; put 'put ''XHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJcdTAxMWFcdTAxNWVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTAxN2JcdTAxN2NcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTAxMDJcdTAxMDNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBc''@;'; put 'put ''dTI1NTBcdTI1NmNceGE0XHUwMTExXHUwMTEwXHUwMTBlXHhjYlx1MDEwZlx1MDE0N1x4Y2RceGNlXHUwMTFiXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUwMTYyXHUwMTZlXHUyNTgwXHhkM1x4ZGZceGQ0XHUwMTQzXHUwMTQ0XHUwMTQ4XHUwMTYwXHUwMTYxXHUwMTU0XHhkYVx1MDE1NVx1''@;'; put 'put ''MDE3MFx4ZmRceGRkXHUwMTYzXHhiNFx4YWRcdTAyZGRcdTAyZGJcdTAyYzdcdTAyZDhceGE3XHhmN1x4YjhceGIwXHhhOFx1MDJkOVx1MDE3MVx1MDE1OFx1MDE1OVx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJb''@;'; put 'put ''TC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzg1N109ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgx''@;'; put 'put ''Nlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhl''@;'; put 'put ''NVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx1MDEzMVx4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlcdTAxMzBceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MDE1ZVx1MDE1Zlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx1MDExZVx1MDExZlx4YmZceGFlXHhhY1x4YmRceGJj''@;'; put 'put ''XHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZc''@;'; put 'put ''dTI1NjBcdTI1NTBcdTI1NmNceGE0XHhiYVx4YWFceGNhXHhjYlx4YzhcdWZmZmRceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVcdWZmZmRceGQ3XHhkYVx4ZGJceGQ5XHhlY1x4ZmZceGFmXHhiNFx4''@;'; put 'put ''YWRceGIxXHVmZmZkXHhiZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1''@;'; put 'put ''cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4NjFdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYg''@;'; put 'put ''IVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhkMFx4ZjBceGRlXHhjNFx4YzVc''@;'; put 'put ''eGM5XHhlNlx4YzZceGY0XHhmNlx4ZmVceGZiXHhkZFx4ZmRceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGMxXHhjZFx4ZDNceGRhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1''@;'; put 'put ''MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2''@;'; put 'put ''OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFl''@;'; put 'put ''XHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wu''@;'; put 'put ''Y2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4NjVdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZc''@;'; put 'put ''eDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVc''@;'; put 'put ''eGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx4YWFceGJhXHhiZlx1MjMxMFx4YWNceGJkXHhiY1x4YTFceGFi''@;'; put 'put ''XHhhNFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2''@;'; put 'put ''OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBcdTAzYTNcdTAzYzNceGI1''@;'; put 'put ''XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0''@;'; put 'put ''aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVs4NjZdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJc''@;'; put 'put ''eDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7''@;'; put 'put ''fH1+XHg3Zlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1''@;'; put 'put ''MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2''@;'; put 'put ''MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1''@;'; put 'put ''MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0''@;'; put 'put ''Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MDQwMVx1MDQ1MVx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwZVx1MDQ1ZVx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMTE2XHhhNFx1MjVhMFx4YTAiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYm''@;'; put 'put ''KEJbTC5jaGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzg3NF09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1''@;'; put 'put ''XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHUyMDI2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHhhMFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1''@;'; put 'put ''MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUz''@;'; put 'put ''Nlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1''@;'; put 'put ''MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09''@;'; put 'put ''TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbODk1XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJc''@;'; put 'put ''eDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTAxMGNceGZjXHhlOVx1MDEwZlx4ZTRcdTAxMGVcdTAxNjRcdTAxMGRcdTAxMWJc''@;'; put 'put ''dTAxMWFcdTAxMzlceGNkXHUwMTNlXHUwMWVhXHhjNFx4YzFceGM5XHUwMTdlXHUwMTdkXHhmNFx4ZjZceGQzXHUwMTZmXHhkYVx4ZmRceGQ2XHhkY1x1MDE2MFx1MDEzZFx4ZGRcdTAxNThcdTAxNjVceGUxXHhlZFx4ZjNceGZhXHUwMTQ4XHUwMTQ3XHUwMTZlXHhkNFx1MDE2MVx1MDE1OVx1''@;'; put 'put ''MDE1NVx1MDE1NFx4YmNceGE3XHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVc''@;'; put 'put ''dTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkz''@;'; put 'put ''XHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCIsbWU9''@;'; put 'put ''W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbOTMyXT1mdW5jdGlvbigpe3ZhciBFLEw9W10sbWU9e30sQj1bXTtmb3IoQlswXT0i''@;'; put 'put ''XDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BR''@;'; put 'put ''UlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmNjFcdWZmNjJcdWZmNjNcdWZmNjRcdWZmNjVcdWZmNjZcdWZmNjdcdWZmNjhcdWZmNjlcdWZmNmFcdWZmNmJcdWZmNmNcdWZmNmRcdWZm''@;'; put 'put ''NmVcdWZmNmZcdWZmNzBcdWZmNzFcdWZmNzJcdWZmNzNcdWZmNzRcdWZmNzVcdWZmNzZcdWZmNzdcdWZmNzhcdWZmNzlcdWZmN2FcdWZmN2JcdWZmN2NcdWZmN2RcdWZmN2VcdWZmN2ZcdWZmODBcdWZmODFcdWZmODJcdWZmODNcdWZmODRcdWZmODVcdWZmODZcdWZmODdcdWZmODhcdWZmODlc''@;'; put 'put ''dWZmOGFcdWZmOGJcdWZmOGNcdWZmOGRcdWZmOGVcdWZmOGZcdWZmOTBcdWZmOTFcdWZmOTJcdWZmOTNcdWZmOTRcdWZmOTVcdWZmOTZcdWZmOTdcdWZmOThcdWZmOTlcdWZmOWFcdWZmOWJcdWZmOWNcdWZmOWRcdWZmOWVcdWZmOWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0''@;'; put 'put ''KCIiKSxFPTA7RSE9QlswXS5sZW5ndGg7KytFKTY1NTMzIT09QlswXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlswXVtFXV09MCtFLExbMCtFXT1CWzBdW0VdKTtmb3IoQlsxMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBc''@;'; put 'put ''dTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1''@;'; put 'put ''MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOFx1MzAwOVx1MzAwYVx1MzAwYlx1MzAwY1x1MzAwZFx1MzAwZVx1MzAw''@;'; put 'put ''Zlx1MzAxMFx1MzAxMVx1ZmYwYlx1ZmYwZFx4YjFceGQ3XHVmZmZkXHhmN1x1ZmYxZFx1MjI2MFx1ZmYxY1x1ZmYxZVx1MjI2Nlx1MjI2N1x1MjIxZVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmZTVcdWZmMDRcdWZmZTBcdWZmZTFcdWZmMDVcdWZmMDNcdWZm''@;'; put 'put ''MDZcdWZmMGFcdWZmMjBceGE3XHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMDNiXHUzMDEyXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUzMDEzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjI3XHUyMjI4XHVmZmUyXHUyMWQyXHUyMWQ0''@;'; put 'put ''XHUyMjAwXHUyMjAzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUyMjUyXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUy''@;'; put 'put ''MjJjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTJiXHUyMDMwXHUyNjZmXHUyNjZkXHUyNjZhXHUyMDIwXHUyMDIxXHhiNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjVlZlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEyOV0u''@;'; put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMTI5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMjldW0VdXT0zMzAyNCtFLExbMzMwMjQrRV09QlsxMjldW0VdKTtmb3IoQlsxMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZm''@;'; put 'put ''MzlcdWZmM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNc''@;'; put 'put ''dWZmNTRcdWZmNTVcdWZmNTZcdWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJcdTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZcdTMwNTBcdTMw''@;'; put 'put ''NTFcdTMwNTJcdTMwNTNcdTMwNTRcdTMwNTVcdTMwNTZcdTMwNTdcdTMwNThcdTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMwNjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMwNmJcdTMwNmNc''@;'; put 'put ''dTMwNmRcdTMwNmVcdTMwNmZcdTMwNzBcdTMwNzFcdTMwNzJcdTMwNzNcdTMwNzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJcdTMwODNcdTMwODRcdTMwODVcdTMwODZcdTMwODdcdTMw''@;'; put 'put ''ODhcdTMwODlcdTMwOGFcdTMwOGJcdTMwOGNcdTMwOGRcdTMwOGVcdTMwOGZcdTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; put 'put ''PTA7RSE9QlsxMzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMwXVtFXV09MzMyODArRSxMWzMzMjgwK0VdPUJbMTMwXVtFXSk7Zm9yKEJbMTMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHUzMGExXHUzMGEyXHUzMGEzXHUzMGE0XHUzMGE1XHUzMGE2XHUzMGE3XHUzMGE4XHUzMGE5XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFkXHUzMGFlXHUzMGFmXHUzMGIwXHUzMGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUzMGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJi''@;'; put 'put ''XHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJmXHUzMGMwXHUzMGMxXHUzMGMyXHUzMGMzXHUzMGM0XHUzMGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUzMGM5XHUzMGNhXHUzMGNiXHUzMGNjXHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQwXHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUz''@;'; put 'put ''MGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUzMGRiXHUzMGRjXHUzMGRkXHUzMGRlXHUzMGRmXHVmZmZkXHUzMGUwXHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0XHUzMGU1XHUzMGU2XHUzMGU3XHUzMGU4XHUzMGU5XHUzMGVhXHUzMGViXHUzMGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYx''@;'; put 'put ''XHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1XHUzMGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUw''@;'; put 'put ''MzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2Jh''@;'; put 'put ''XHUwM2JiXHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMTMxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzMV1bRV1dPTMzNTM2K0UsTFszMzUzNitFXT1CWzEzMV1bRV0pO2ZvcihCWzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQwMVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQy''@;'; put 'put ''N1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1''@;'; put 'put ''MDQzNFx1MDQzNVx1MDQ1MVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1ZmZmZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0''@;'; put 'put ''ZFx1MDQ0ZVx1MDQ0Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1''@;'; put 'put ''MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzJdW0VdXT0zMzc5MitFLExbMzM3OTIrRV09QlsxMzJdW0VdKTtmb3IoQlsxMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI0NjBcdTI0NjFcdTI0NjJcdTI0NjNcdTI0NjRcdTI0NjVcdTI0NjZcdTI0NjdcdTI0NjhcdTI0NjlcdTI0NmFcdTI0NmJcdTI0NmNcdTI0NmRcdTI0NmVcdTI0NmZcdTI0NzBcdTI0NzFcdTI0NzJcdTI0NzNcdTIxNjBcdTIxNjFcdTIx''@;'; put 'put ''NjJcdTIxNjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIxNjdcdTIxNjhcdTIxNjlcdWZmZmRcdTMzNDlcdTMzMTRcdTMzMjJcdTMzNGRcdTMzMThcdTMzMjdcdTMzMDNcdTMzMzZcdTMzNTFcdTMzNTdcdTMzMGRcdTMzMjZcdTMzMjNcdTMzMmJcdTMzNGFcdTMzM2JcdTMzOWNcdTMzOWRcdTMzOWVc''@;'; put 'put ''dTMzOGVcdTMzOGZcdTMzYzRcdTMzYTFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMzN2JcdWZmZmRcdTMwMWRcdTMwMWZcdTIxMTZcdTMzY2RcdTIxMjFcdTMyYTRcdTMyYTVcdTMyYTZcdTMyYTdcdTMyYThcdTMyMzFcdTMyMzJcdTMyMzlcdTMz''@;'; put 'put ''N2VcdTMzN2RcdTMzN2NcdTIyNTJcdTIyNjFcdTIyMmJcdTIyMmVcdTIyMTFcdTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIyMmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM1XVtFXV09MzQ1NjArRSxMWzM0NTYwK0VdPUJbMTM1XVtFXSk7Zm9yKEJbMTM2XT0iXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTljXHU1NTE2XHU1YTAzXHU5NjNmXHU1NGMwXHU2MTFiXHU2MzI4XHU1OWY2''@;'; put 'put ''XHU5MDIyXHU4NDc1XHU4MzFjXHU3YTUwXHU2MGFhXHU2M2UxXHU2ZTI1XHU2NWVkXHU4NDY2XHU4MmE2XHU5YmY1XHU2ODkzXHU1NzI3XHU2NWExXHU2MjcxXHU1YjliXHU1OWQwXHU4NjdiXHU5OGY0XHU3ZDYyXHU3ZGJlXHU5YjhlXHU2MjE2XHU3YzlmXHU4OGI3XHU1Yjg5XHU1ZWI1XHU2''@;'; put 'put ''MzA5XHU2Njk3XHU2ODQ4XHU5NWM3XHU5NzhkXHU2NzRmXHU0ZWU1XHU0ZjBhXHU0ZjRkXHU0ZjlkXHU1MDQ5XHU1NmYyXHU1OTM3XHU1OWQ0XHU1YTAxXHU1YzA5XHU2MGRmXHU2MTBmXHU2MTcwXHU2NjEzXHU2OTA1XHU3MGJhXHU3NTRmXHU3NTcwXHU3OWZiXHU3ZGFkXHU3ZGVmXHU4MGMz''@;'; put 'put ''XHU4NDBlXHU4ODYzXHU4YjAyXHU5MDU1XHU5MDdhXHU1MzNiXHU0ZTk1XHU0ZWE1XHU1N2RmXHU4MGIyXHU5MGMxXHU3OGVmXHU0ZTAwXHU1OGYxXHU2ZWEyXHU5MDM4XHU3YTMyXHU4MzI4XHU4MjhiXHU5YzJmXHU1MTQxXHU1MzcwXHU1NGJkXHU1NGUxXHU1NmUwXHU1OWZiXHU1ZjE1XHU5''@;'; put 'put ''OGYyXHU2ZGViXHU4MGU0XHU4NTJkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzNl1bRV1dPTM0ODE2K0UsTFszNDgxNitFXT1CWzEzNl1bRV0pO2ZvcihCWzEzN109''@;'; put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY2Mlx1OTY3MFx1OTZhMFx1OTdmYlx1NTQwYlx1NTNmM1x1NWI4N1x1NzBjZlx1N2ZiZFx1OGZjMlx1OTZlOFx1NTM2Zlx1OWQ1Y1x1N2FiYVx1NGUxMVx1Nzg5M1x1ODFmY1x1NmUyNlx1''@;'; put 'put ''NTYxOFx1NTUwNFx1NmIxZFx1ODUxYVx1OWMzYlx1NTllNVx1NTNhOVx1NmQ2Nlx1NzRkY1x1OTU4Zlx1NTY0Mlx1NGU5MVx1OTA0Ylx1OTZmMlx1ODM0Zlx1OTkwY1x1NTNlMVx1NTViNlx1NWIzMFx1NWY3MVx1NjYyMFx1NjZmM1x1NjgwNFx1NmMzOFx1NmNmM1x1NmQyOVx1NzQ1Ylx1NzZj''@;'; put 'put ''OFx1N2E0ZVx1OTgzNFx1ODJmMVx1ODg1Ylx1OGE2MFx1OTJlZFx1NmRiMlx1NzVhYlx1NzZjYVx1OTljNVx1NjBhNlx1OGIwMVx1OGQ4YVx1OTViMlx1Njk4ZVx1NTNhZFx1NTE4Nlx1ZmZmZFx1NTcxMlx1NTgzMFx1NTk0NFx1NWJiNFx1NWVmNlx1NjAyOFx1NjNhOVx1NjNmNFx1NmNiZlx1''@;'; put 'put ''NmYxNFx1NzA4ZVx1NzExNFx1NzE1OVx1NzFkNVx1NzMzZlx1N2UwMVx1ODI3Nlx1ODJkMVx1ODU5N1x1OTA2MFx1OTI1Ylx1OWQxYlx1NTg2OVx1NjViY1x1NmM1YVx1NzUyNVx1NTFmOVx1NTkyZVx1NTk2NVx1NWY4MFx1NWZkY1x1NjJiY1x1NjVmYVx1NmEyYVx1NmIyN1x1NmJiNFx1NzM4''@;'; put 'put ''Ylx1N2ZjMVx1ODk1Nlx1OWQyY1x1OWQwZVx1OWVjNFx1NWNhMVx1NmM5Nlx1ODM3Ylx1NTEwNFx1NWM0Ylx1NjFiNlx1ODFjNlx1Njg3Nlx1NzI2MVx1NGU1OVx1NGZmYVx1NTM3OFx1NjA2OVx1NmUyOVx1N2E0Zlx1OTdmM1x1NGUwYlx1NTMxNlx1NGVlZVx1NGY1NVx1NGYzZFx1NGZhMVx1''@;'; put 'put ''NGY3M1x1NTJhMFx1NTNlZlx1NTYwOVx1NTkwZlx1NWFjMVx1NWJiNlx1NWJlMVx1NzlkMVx1NjY4N1x1Njc5Y1x1NjdiNlx1NmI0Y1x1NmNiM1x1NzA2Ylx1NzNjMlx1Nzk4ZFx1NzliZVx1N2EzY1x1N2I4N1x1ODJiMVx1ODJkYlx1ODMwNFx1ODM3N1x1ODNlZlx1ODNkM1x1ODc2Nlx1OGFi''@;'; put 'put ''Mlx1NTYyOVx1OGNhOFx1OGZlNlx1OTA0ZVx1OTcxZVx1ODY4YVx1NGZjNFx1NWNlOFx1NjIxMVx1NzI1OVx1NzUzYlx1ODFlNVx1ODJiZFx1ODZmZVx1OGNjMFx1OTZjNVx1OTkxM1x1OTlkNVx1NGVjYlx1NGYxYVx1ODllM1x1NTZkZVx1NTg0YVx1NThjYVx1NWVmYlx1NWZlYlx1NjAyYVx1''@;'; put 'put ''NjA5NFx1NjA2Mlx1NjFkMFx1NjIxMlx1NjJkMFx1NjUzOVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzddW0VdXT0zNTA3MitFLExbMzUwNzIrRV09QlsxMzddW0Vd''@;'; put 'put ''KTtmb3IoQlsxMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVcdThjOWRcdTUxZjFcdTUyYmVcdTU5MTZc''@;'; put 'put ''dTU0YjNcdTViYjNcdTVkMTZcdTYxNjhcdTY5ODJcdTZkYWZcdTc4OGRcdTg0Y2JcdTg4NTdcdThhNzJcdTkzYTdcdTlhYjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYyZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZi''@;'; put 'put ''YmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5OWFcdTg5ZDJcdThkNmJcdThmMDNcdTkwZWRcdTk1YTNcdTk2OTRcdTk3NjlcdTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmJcdWZmZmRcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZcdTUyNzJcdTU1OWRcdTYwNzBc''@;'; put 'put ''dTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFcdTg0NWJcdTg5MTBcdThmNDRcdTRlMTRcdTljMzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzFcdTdjYTVcdTUyMDhcdTgyYzVcdTc0''@;'; put 'put ''ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTViZDJcdTUyMGFcdTUyZDhcdTUyZTdcdTVkZmJcdTU1OWFcdTU4MmFcdTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJcdTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNc''@;'; put 'put ''dTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVcdTc0YjBcdTc1MThcdTc2ZTNcdTc3MGJcdTdhZmZcdTdiYTFcdTdjMjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5''@;'; put 'put ''MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVjYjhcdTVkY2NcdTczYTlcdTc2NGNcdTc3M2NcdTVjYTlcdTdmZWJcdThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdcdTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2Vc''@;'; put 'put ''dTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdcdTY1ZTJcdTY3MWZcdTY4Y2JcdTY4YzRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM4XVtFXV09MzUzMjgrRSxMWzM1MzI4''@;'; put 'put ''K0VdPUJbMTM4XVtFXSk7Zm9yKEJbMTM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YTVmXHU1ZTMwXHU2YmM1XHU2YzE3XHU2YzdkXHU3NTdmXHU3OTQ4XHU1YjYzXHU3YTAwXHU3ZDAwXHU1ZmJkXHU4OThmXHU4YTE4XHU4Y2I0''@;'; put 'put ''XHU4ZDc3XHU4ZWNjXHU4ZjFkXHU5OGUyXHU5YTBlXHU5YjNjXHU0ZTgwXHU1MDdkXHU1MTAwXHU1OTkzXHU1YjljXHU2MjJmXHU2MjgwXHU2NGVjXHU2YjNhXHU3MmEwXHU3NTkxXHU3OTQ3XHU3ZmE5XHU4N2ZiXHU4YWJjXHU4YjcwXHU2M2FjXHU4M2NhXHU5N2EwXHU1NDA5XHU1NDAzXHU1''@;'; put 'put ''NWFiXHU2ODU0XHU2YTU4XHU4YTcwXHU3ODI3XHU2Nzc1XHU5ZWNkXHU1Mzc0XHU1YmEyXHU4MTFhXHU4NjUwXHU5MDA2XHU0ZTE4XHU0ZTQ1XHU0ZWM3XHU0ZjExXHU1M2NhXHU1NDM4XHU1YmFlXHU1ZjEzXHU2MDI1XHU2NTUxXHVmZmZkXHU2NzNkXHU2YzQyXHU2YzcyXHU2Y2UzXHU3MDc4''@;'; put 'put ''XHU3NDAzXHU3YTc2XHU3YWFlXHU3YjA4XHU3ZDFhXHU3Y2ZlXHU3ZDY2XHU2NWU3XHU3MjViXHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MmUwXHU2MzE5XHU2ZTIwXHU4NjVhXHU4YTMxXHU4ZGRkXHU5MmY4XHU2ZjAxXHU3OWE2XHU5YjVhXHU0ZWE4XHU0ZWFiXHU0ZWFjXHU0ZjliXHU0''@;'; put 'put ''ZmEwXHU1MGQxXHU1MTQ3XHU3YWY2XHU1MTcxXHU1MWY2XHU1MzU0XHU1MzIxXHU1MzdmXHU1M2ViXHU1NWFjXHU1ODgzXHU1Y2UxXHU1ZjM3XHU1ZjRhXHU2MDJmXHU2MDUwXHU2MDZkXHU2MzFmXHU2NTU5XHU2YTRiXHU2Y2MxXHU3MmMyXHU3MmVkXHU3N2VmXHU4MGY4XHU4MTA1XHU4MjA4''@;'; put 'put ''XHU4NTRlXHU5MGY3XHU5M2UxXHU5N2ZmXHU5OTU3XHU5YTVhXHU0ZWYwXHU1MWRkXHU1YzJkXHU2NjgxXHU2OTZkXHU1YzQwXHU2NmYyXHU2OTc1XHU3Mzg5XHU2ODUwXHU3YzgxXHU1MGM1XHU1MmU0XHU1NzQ3XHU1ZGZlXHU5MzI2XHU2NWE0XHU2YjIzXHU2YjNkXHU3NDM0XHU3OTgxXHU3''@;'; put 'put ''OWJkXHU3YjRiXHU3ZGNhXHU4MmI5XHU4M2NjXHU4ODdmXHU4OTVmXHU4YjM5XHU4ZmQxXHU5MWQxXHU1NDFmXHU5MjgwXHU0ZTVkXHU1MDM2XHU1M2U1XHU1MzNhXHU3MmQ3XHU3Mzk2XHU3N2U5XHU4MmU2XHU4ZWFmXHU5OWM2XHU5OWM4XHU5OWQyXHU1MTc3XHU2MTFhXHU4NjVlXHU1NWIw''@;'; put 'put ''XHU3YTdhXHU1MDc2XHU1YmQzXHU5MDQ3XHU5Njg1XHU0ZTMyXHU2YWRiXHU5MWU3XHU1YzUxXHU1YzQ4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzOV1bRV1dPTM1''@;'; put 'put ''NTg0K0UsTFszNTU4NCtFXT1CWzEzOV1bRV0pO2ZvcihCWzE0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjM5OFx1N2E5Zlx1NmM5M1x1OTc3NFx1OGY2MVx1N2FhYVx1NzE4YVx1OTY4OFx1N2M4Mlx1NjgxN1x1N2U3MFx1Njg1''@;'; put 'put ''MVx1OTM2Y1x1NTJmMlx1NTQxYlx1ODVhYlx1OGExM1x1N2ZhNFx1OGVjZFx1OTBlMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NGZjMlx1NTBiZVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyZFx1NzNlYVx1NTc4Ylx1NTk1MVx1NWY2Mlx1NWY4NFx1NjA3NVx1NjE3Nlx1NjE2N1x1NjFhOVx1NjNiMlx1''@;'; put 'put ''NjQzYVx1NjU2Y1x1NjY2Zlx1Njg0Mlx1NmUxM1x1NzU2Nlx1N2EzZFx1N2NmYlx1N2Q0Y1x1N2Q5OVx1N2U0Ylx1N2Y2Ylx1ODMwZVx1ODM0YVx1ODZjZFx1OGEwOFx1OGE2M1x1OGI2Nlx1OGVmZFx1OTgxYVx1OWQ4Zlx1ODJiOFx1OGZjZVx1OWJlOFx1ZmZmZFx1NTI4N1x1NjIxZlx1NjQ4''@;'; put 'put ''M1x1NmZjMFx1OTY5OVx1Njg0MVx1NTA5MVx1NmIyMFx1NmM3YVx1NmY1NFx1N2E3NFx1N2Q1MFx1ODg0MFx1OGEyM1x1NjcwOFx1NGVmNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Y1x1NTIzOFx1NTI2M1x1NTVhN1x1NTcwZlx1NTgwNVx1NWFjY1x1NWVmYVx1NjFiMlx1NjFmOFx1NjJmM1x1''@;'; put 'put ''NjM3Mlx1NjkxY1x1NmEyOVx1NzI3ZFx1NzJhY1x1NzMyZVx1NzgxNFx1Nzg2Zlx1N2Q3OVx1NzcwY1x1ODBhOVx1ODk4Ylx1OGIxOVx1OGNlMlx1OGVkMlx1OTA2M1x1OTM3NVx1OTY3YVx1OTg1NVx1OWExM1x1OWU3OFx1NTE0M1x1NTM5Zlx1NTNiM1x1NWU3Ylx1NWYyNlx1NmUxYlx1NmU5''@;'; put 'put ''MFx1NzM4NFx1NzNmZVx1N2Q0M1x1ODIzN1x1OGEwMFx1OGFmYVx1OTY1MFx1NGU0ZVx1NTAwYlx1NTNlNFx1NTQ3Y1x1NTZmYVx1NTlkMVx1NWI2NFx1NWRmMVx1NWVhYlx1NWYyN1x1NjIzOFx1NjU0NVx1NjdhZlx1NmU1Nlx1NzJkMFx1N2NjYVx1ODhiNFx1ODBhMVx1ODBlMVx1ODNmMFx1''@;'; put 'put ''ODY0ZVx1OGE4N1x1OGRlOFx1OTIzN1x1OTZjN1x1OTg2N1x1OWYxM1x1NGU5NFx1NGU5Mlx1NGYwZFx1NTM0OFx1NTQ0OVx1NTQzZVx1NWEyZlx1NWY4Y1x1NWZhMVx1NjA5Zlx1NjhhN1x1NmE4ZVx1NzQ1YVx1Nzg4MVx1OGE5ZVx1OGFhNFx1OGI3N1x1OTE5MFx1NGU1ZVx1OWJjOVx1NGVh''@;'; put 'put ''NFx1NGY3Y1x1NGZhZlx1NTAxOVx1NTAxNlx1NTE0OVx1NTE2Y1x1NTI5Zlx1NTJiOVx1NTJmZVx1NTM5YVx1NTNlM1x1NTQxMVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; put 'put ''QlsxNDBdW0VdXT0zNTg0MCtFLExbMzU4NDArRV09QlsxNDBdW0VdKTtmb3IoQlsxNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0MGVcdTU1ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVk''@;'; put 'put ''ZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVlOWFcdTVlYjdcdTVmMThcdTYwNTJcdTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJcdTY2NDNcdTY2ZjRcdTY3NmRcdTY4MjFcdTY4OTdcdTY5Y2JcdTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNc''@;'; put 'put ''dTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThcdTdkNWVcdTdkYjFcdTgwMTVcdTgwMDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgzNTJcdTg4NGNcdTg4NjFcdThiMWJcdThjYTJcdThjZmNcdTkwY2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGRcdWZmZmRcdTk4''@;'; put 'put ''MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUyNWJcdTUyYWJcdTUzZjdcdTU0MDhcdTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZcdTllYjlcdTUxNGJcdTUyM2JcdTU0NGFcdTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBcdTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFc''@;'; put 'put ''dTlhYThcdTcyZGJcdThmYmNcdTZiNjRcdTk4MDNcdTRlY2FcdTU2ZjBcdTU3NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2MGZcdTY2MDZcdTY4MzlcdTY4YjFcdTZkZjdcdTc1ZDVcdTdkM2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVk''@;'; put 'put ''ZWVcdTY3ZmJcdTZjOTlcdTc0NzNcdTc4MDJcdThhNTBcdTkzOTZcdTg4ZGZcdTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNcdTUxOGRcdTY3MDBcdTU0YzlcdTU4NWVcdTU5YmJcdTViYjBcdTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBc''@;'; put 'put ''dTc4MTVcdTc4MjZcdTc5NmRcdTY1OGVcdTdkMzBcdTgzZGNcdTg4YzFcdThmMDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdmNmFcdThjYTFcdTUxYjRcdTU3NDJcdTk2MmFcdTU4M2FcdTY5OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0''@;'; put 'put ''OGJcdTY0M2VcdTY2MjhcdTY3MTRcdTY3ZjVcdTdhODRcdTdiNTZcdTdkMjJcdTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlcdTUxOGFcdTUyMzdcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0MV1bRV0uY2hhckNv''@;'; put 'put ''ZGVBdCgwKSYmKG1lW0JbMTQxXVtFXV09MzYwOTYrRSxMWzM2MDk2K0VdPUJbMTQxXVtFXSk7Zm9yKEJbMTQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YmRmXHU2MmY2XHU2NGFlXHU2NGU2XHU2NzJkXHU2YmJhXHU4NWE5XHU5''@;'; put 'put ''NmQxXHU3NjkwXHU5YmQ2XHU2MzRjXHU5MzA2XHU5YmFiXHU3NmJmXHU2NjUyXHU0ZTA5XHU1MDk4XHU1M2MyXHU1YzcxXHU2MGU4XHU2NDkyXHU2NTYzXHU2ODVmXHU3MWU2XHU3M2NhXHU3NTIzXHU3Yjk3XHU3ZTgyXHU4Njk1XHU4YjgzXHU4Y2RiXHU5MTc4XHU5OTEwXHU2NWFjXHU2NmFi''@;'; put 'put ''XHU2YjhiXHU0ZWQ1XHU0ZWQ0XHU0ZjNhXHU0ZjdmXHU1MjNhXHU1M2Y4XHU1M2YyXHU1NWUzXHU1NmRiXHU1OGViXHU1OWNiXHU1OWM5XHU1OWZmXHU1YjUwXHU1YzRkXHU1ZTAyXHU1ZTJiXHU1ZmQ3XHU2MDFkXHU2MzA3XHU2NTJmXHU1YjVjXHU2NWFmXHU2NWJkXHU2NWU4XHU2NzlkXHU2''@;'; put 'put ''YjYyXHVmZmZkXHU2YjdiXHU2YzBmXHU3MzQ1XHU3OTQ5XHU3OWMxXHU3Y2Y4XHU3ZDE5XHU3ZDJiXHU4MGEyXHU4MTAyXHU4MWYzXHU4OTk2XHU4YTVlXHU4YTY5XHU4YTY2XHU4YThjXHU4YWVlXHU4Y2M3XHU4Y2RjXHU5NmNjXHU5OGZjXHU2YjZmXHU0ZThiXHU0ZjNjXHU0ZjhkXHU1MTUw''@;'; put 'put ''XHU1YjU3XHU1YmZhXHU2MTQ4XHU2MzAxXHU2NjQyXHU2YjIxXHU2ZWNiXHU2Y2JiXHU3MjNlXHU3NGJkXHU3NWQ0XHU3OGMxXHU3OTNhXHU4MDBjXHU4MDMzXHU4MWVhXHU4NDk0XHU4ZjllXHU2YzUwXHU5ZTdmXHU1ZjBmXHU4YjU4XHU5ZDJiXHU3YWZhXHU4ZWY4XHU1YjhkXHU5NmViXHU0''@;'; put 'put ''ZTAzXHU1M2YxXHU1N2Y3XHU1OTMxXHU1YWM5XHU1YmE0XHU2MDg5XHU2ZTdmXHU2ZjA2XHU3NWJlXHU4Y2VhXHU1YjlmXHU4NTAwXHU3YmUwXHU1MDcyXHU2N2Y0XHU4MjlkXHU1YzYxXHU4NTRhXHU3ZTFlXHU4MjBlXHU1MTk5XHU1YzA0XHU2MzY4XHU4ZDY2XHU2NTljXHU3MTZlXHU3OTNl''@;'; put 'put ''XHU3ZDE3XHU4MDA1XHU4YjFkXHU4ZWNhXHU5MDZlXHU4NmM3XHU5MGFhXHU1MDFmXHU1MmZhXHU1YzNhXHU2NzUzXHU3MDdjXHU3MjM1XHU5MTRjXHU5MWM4XHU5MzJiXHU4MmU1XHU1YmMyXHU1ZjMxXHU2MGY5XHU0ZTNiXHU1M2Q2XHU1Yjg4XHU2MjRiXHU2NzMxXHU2YjhhXHU3MmU5XHU3''@;'; put 'put ''M2UwXHU3YTJlXHU4MTZiXHU4ZGEzXHU5MTUyXHU5OTk2XHU1MTEyXHU1M2Q3XHU1NDZhXHU1YmZmXHU2Mzg4XHU2YTM5XHU3ZGFjXHU5NzAwXHU1NmRhXHU1M2NlXHU1NDY4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQyXS5sZW5ndGg7KytFKTY1NTMzIT09Qlsx''@;'; put 'put ''NDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0Ml1bRV1dPTM2MzUyK0UsTFszNjM1MitFXT1CWzE0Ml1bRV0pO2ZvcihCWzE0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWI5N1x1NWMzMVx1NWRkZVx1NGZlZVx1NjEwMVx1''@;'; put 'put ''NjJmZVx1NmQzMlx1NzljMFx1NzljYlx1N2Q0Mlx1N2U0ZFx1N2ZkMlx1ODFlZFx1ODIxZlx1ODQ5MFx1ODg0Nlx1ODk3Mlx1OGI5MFx1OGU3NFx1OGYyZlx1OTAzMVx1OTE0Ylx1OTE2Y1x1OTZjNlx1OTE5Y1x1NGVjMFx1NGY0Zlx1NTE0NVx1NTM0MVx1NWY5M1x1NjIwZVx1NjdkNFx1NmM0''@;'; put 'put ''MVx1NmUwYlx1NzM2M1x1N2UyNlx1OTFjZFx1OTI4M1x1NTNkNFx1NTkxOVx1NWJiZlx1NmRkMVx1Nzk1ZFx1N2UyZVx1N2M5Ylx1NTg3ZVx1NzE5Zlx1NTFmYVx1ODg1M1x1OGZmMFx1NGZjYVx1NWNmYlx1NjYyNVx1NzdhY1x1N2FlM1x1ODIxY1x1OTlmZlx1NTFjNlx1NWZhYVx1NjVlY1x1''@;'; put 'put ''Njk2Zlx1NmI4OVx1NmRmM1x1ZmZmZFx1NmU5Nlx1NmY2NFx1NzZmZVx1N2QxNFx1NWRlMVx1OTA3NVx1OTE4N1x1OTgwNlx1NTFlNlx1NTIxZFx1NjI0MFx1NjY5MVx1NjZkOVx1NmUxYVx1NWViNlx1N2RkMlx1N2Y3Mlx1NjZmOFx1ODVhZlx1ODVmN1x1OGFmOFx1NTJhOVx1NTNkOVx1NTk3''@;'; put 'put ''M1x1NWU4Zlx1NWY5MFx1NjA1NVx1OTJlNFx1OTY2NFx1NTBiN1x1NTExZlx1NTJkZFx1NTMyMFx1NTM0N1x1NTNlY1x1NTRlOFx1NTU0Nlx1NTUzMVx1NTYxN1x1NTk2OFx1NTliZVx1NWEzY1x1NWJiNVx1NWMwNlx1NWMwZlx1NWMxMVx1NWMxYVx1NWU4NFx1NWU4YVx1NWVlMFx1NWY3MFx1''@;'; put 'put ''NjI3Zlx1NjI4NFx1NjJkYlx1NjM4Y1x1NjM3N1x1NjYwN1x1NjYwY1x1NjYyZFx1NjY3Nlx1Njc3ZVx1NjhhMlx1NmExZlx1NmEzNVx1NmNiY1x1NmQ4OFx1NmUwOVx1NmU1OFx1NzEzY1x1NzEyNlx1NzE2N1x1NzVjN1x1NzcwMVx1Nzg1ZFx1NzkwMVx1Nzk2NVx1NzlmMFx1N2FlMFx1N2Ix''@;'; put 'put ''MVx1N2NhN1x1N2QzOVx1ODA5Nlx1ODNkNlx1ODQ4Ylx1ODU0OVx1ODg1ZFx1ODhmM1x1OGExZlx1OGEzY1x1OGE1NFx1OGE3M1x1OGM2MVx1OGNkZVx1OTFhNFx1OTI2Nlx1OTM3ZVx1OTQxOFx1OTY5Y1x1OTc5OFx1NGUwYVx1NGUwOFx1NGUxZVx1NGU1N1x1NTE5N1x1NTI3MFx1NTdjZVx1''@;'; put 'put ''NTgzNFx1NThjY1x1NWIyMlx1NWUzOFx1NjBjNVx1NjRmZVx1Njc2MVx1Njc1Nlx1NmQ0NFx1NzJiNlx1NzU3M1x1N2E2M1x1ODRiOFx1OGI3Mlx1OTFiOFx1OTMyMFx1NTYzMVx1NTdmNFx1OThmZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0M10ubGVuZ3RoOysr''@;'; put 'put ''RSk2NTUzMyE9PUJbMTQzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDNdW0VdXT0zNjYwOCtFLExbMzY2MDgrRV09QlsxNDNdW0VdKTtmb3IoQlsxNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYyZWRcdTY5MGRcdTZiOTZc''@;'; put 'put ''dTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJcdTg5ZTZcdTk4ZGZcdTg3NTVcdThmYjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVcdTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4ZWVcdTY5OWJcdTZkNzhcdTZkZjFcdTc1MzNcdTc1YjlcdTc3''@;'; put 'put ''MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgxZTNcdTgyYWZcdTg1YWFcdTg5YWFcdThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkxZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2RcdTgxNGVcdThhMGFcdThmYzVcdTk2NjNcdTk3NmRcdTdiMjVc''@;'; put 'put ''dThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNcdTUzYThcdWZmZmRcdTkwMTdcdTU0MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFcdTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkzMThcdTk2OGZcdTc0NWVcdTlhYzRcdTVkMDdcdTVkNjlcdTY1NzBcdTY3''@;'; put 'put ''YTJcdThkYThcdTk2ZGJcdTYzNmVcdTY3NDlcdTY5MTlcdTgzYzVcdTk4MTdcdTk2YzBcdTg4ZmVcdTZmODRcdTY0N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNcdTVmODFcdTYwMjdcdTYyMTBcdTY1M2ZcdTY1NzRcdTY2MWZcdTY2NzRc''@;'; put 'put ''dTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVcdTcyNzJcdTc1MWZcdTc2ZGJcdTdjYmVcdTgwNTZcdTU4ZjBcdTg4ZmRcdTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdhMGVcdTgxMDZcdTk2YmJcdTVlMmRcdTYwZGNcdTYyMWFcdTY1YTVcdTY2''@;'; put 'put ''MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdjNGRcdTdlM2VcdTgxMGFcdThjYWNcdThkNjRcdThkZTFcdThlNWZcdTc4YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNcdTk2ZWFcdTdkNzZcdTgyMGNcdTg3NDlcdTRlZDlcdTUxNDhcdTUzNDNc''@;'; put 'put ''dTUzNjBcdTViYTNcdTVjMDJcdTVjMTZcdTVkZGRcdTYyMjZcdTYyNDdcdTY0YjBcdTY4MTNcdTY4MzRcdTZjYzlcdTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdkZGFcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsx''@;'; put 'put ''NDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ0XVtFXV09MzY4NjQrRSxMWzM2ODY0K0VdPUJbMTQ0XVtFXSk7Zm9yKEJbMTQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTRh''@;'; put 'put ''XHU3ZmE4XHU4MTdhXHU4MjFiXHU4MjM5XHU4NWE2XHU4YTZlXHU4Y2NlXHU4ZGY1XHU5MDc4XHU5MDc3XHU5MmFkXHU5MjkxXHU5NTgzXHU5YmFlXHU1MjRkXHU1NTg0XHU2ZjM4XHU3MTM2XHU1MTY4XHU3OTg1XHU3ZTU1XHU4MWIzXHU3Y2NlXHU1NjRjXHU1ODUxXHU1Y2E4XHU2M2FhXHU2''@;'; put 'put ''NmZlXHU2NmZkXHU2OTVhXHU3MmQ5XHU3NThmXHU3NThlXHU3OTBlXHU3OTU2XHU3OWRmXHU3Yzk3XHU3ZDIwXHU3ZDQ0XHU4NjA3XHU4YTM0XHU5NjNiXHU5MDYxXHU5ZjIwXHU1MGU3XHU1Mjc1XHU1M2NjXHU1M2UyXHU1MDA5XHU1NWFhXHU1OGVlXHU1OTRmXHU3MjNkXHU1YjhiXHU1YzY0''@;'; put 'put ''XHU1MzFkXHU2MGUzXHU2MGYzXHU2MzVjXHU2MzgzXHU2MzNmXHU2M2JiXHVmZmZkXHU2NGNkXHU2NWU5XHU2NmY5XHU1ZGUzXHU2OWNkXHU2OWZkXHU2ZjE1XHU3MWU1XHU0ZTg5XHU3NWU5XHU3NmY4XHU3YTkzXHU3Y2RmXHU3ZGNmXHU3ZDljXHU4MDYxXHU4MzQ5XHU4MzU4XHU4NDZjXHU4''@;'; put 'put ''NGJjXHU4NWZiXHU4OGM1XHU4ZDcwXHU5MDAxXHU5MDZkXHU5Mzk3XHU5NzFjXHU5YTEyXHU1MGNmXHU1ODk3XHU2MThlXHU4MWQzXHU4NTM1XHU4ZDA4XHU5MDIwXHU0ZmMzXHU1MDc0XHU1MjQ3XHU1MzczXHU2MDZmXHU2MzQ5XHU2NzVmXHU2ZTJjXHU4ZGIzXHU5MDFmXHU0ZmQ3XHU1YzVl''@;'; put 'put ''XHU4Y2NhXHU2NWNmXHU3ZDlhXHU1MzUyXHU4ODk2XHU1MTc2XHU2M2MzXHU1YjU4XHU1YjZiXHU1YzBhXHU2NDBkXHU2NzUxXHU5MDVjXHU0ZWQ2XHU1OTFhXHU1OTJhXHU2YzcwXHU4YTUxXHU1NTNlXHU1ODE1XHU1OWE1XHU2MGYwXHU2MjUzXHU2N2MxXHU4MjM1XHU2OTU1XHU5NjQwXHU5''@;'; put 'put ''OWM0XHU5YTI4XHU0ZjUzXHU1ODA2XHU1YmZlXHU4MDEwXHU1Y2IxXHU1ZTJmXHU1Zjg1XHU2MDIwXHU2MTRiXHU2MjM0XHU2NmZmXHU2Y2YwXHU2ZWRlXHU4MGNlXHU4MTdmXHU4MmQ0XHU4ODhiXHU4Y2I4XHU5MDAwXHU5MDJlXHU5NjhhXHU5ZWRiXHU5YmRiXHU0ZWUzXHU1M2YwXHU1OTI3''@;'; put 'put ''XHU3YjJjXHU5MThkXHU5ODRjXHU5ZGY5XHU2ZWRkXHU3MDI3XHU1MzUzXHU1NTQ0XHU1Yjg1XHU2MjU4XHU2MjllXHU2MmQzXHU2Y2EyXHU2ZmVmXHU3NDIyXHU4YTE3XHU5NDM4XHU2ZmMxXHU4YWZlXHU4MzM4XHU1MWU3XHU4NmY4XHU1M2VhXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgi''@;'; put 'put ''IiksRT0wO0UhPUJbMTQ1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0NV1bRV1dPTM3MTIwK0UsTFszNzEyMCtFXT1CWzE0NV1bRV0pO2ZvcihCWzE0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1NTNlOVx1NGY0Nlx1OTA1NFx1OGZiMFx1NTk2YVx1ODEzMVx1NWRmZFx1N2FlYVx1OGZiZlx1NjhkYVx1OGMzN1x1NzJmOFx1OWM0OFx1NmEzZFx1OGFiMFx1NGUzOVx1NTM1OFx1NTYwNlx1NTc2Nlx1NjJjNVx1NjNhMlx1NjVlNlx1NmI0ZVx1NmRlMVx1NmU1Ylx1NzBhZFx1''@;'; put 'put ''NzdlZFx1N2FlZlx1N2JhYVx1N2RiYlx1ODAzZFx1ODBjNlx1ODZjYlx1OGE5NVx1OTM1Ylx1NTZlM1x1NThjN1x1NWYzZVx1NjVhZFx1NjY5Nlx1NmE4MFx1NmJiNVx1NzUzN1x1OGFjN1x1NTAyNFx1NzdlNVx1NTczMFx1NWYxYlx1NjA2NVx1NjY3YVx1NmM2MFx1NzVmNFx1N2ExYVx1N2Y2''@;'; put 'put ''ZVx1ODFmNFx1ODcxOFx1OTA0NVx1OTliM1x1N2JjOVx1NzU1Y1x1N2FmOVx1N2I1MVx1ODRjNFx1ZmZmZFx1OTAxMFx1NzllOVx1N2E5Mlx1ODMzNlx1NWFlMVx1Nzc0MFx1NGUyZFx1NGVmMlx1NWI5OVx1NWZlMFx1NjJiZFx1NjYzY1x1NjdmMVx1NmNlOFx1ODY2Ylx1ODg3N1x1OGEzYlx1''@;'; put 'put ''OTE0ZVx1OTJmM1x1OTlkMFx1NmExN1x1NzAyNlx1NzMyYVx1ODJlN1x1ODQ1N1x1OGNhZlx1NGUwMVx1NTE0Nlx1NTFjYlx1NTU4Ylx1NWJmNVx1NWUxNlx1NWUzM1x1NWU4MVx1NWYxNFx1NWYzNVx1NWY2Ylx1NWZiNFx1NjFmMlx1NjMxMVx1NjZhMlx1NjcxZFx1NmY2ZVx1NzI1Mlx1NzUz''@;'; put 'put ''YVx1NzczYVx1ODA3NFx1ODEzOVx1ODE3OFx1ODc3Nlx1OGFiZlx1OGFkY1x1OGQ4NVx1OGRmM1x1OTI5YVx1OTU3N1x1OTgwMlx1OWNlNVx1NTJjNVx1NjM1N1x1NzZmNFx1NjcxNVx1NmM4OFx1NzNjZFx1OGNjM1x1OTNhZVx1OTY3M1x1NmQyNVx1NTg5Y1x1NjkwZVx1NjljY1x1OGZmZFx1''@;'; put 'put ''OTM5YVx1NzVkYlx1OTAxYVx1NTg1YVx1NjgwMlx1NjNiNFx1NjlmYlx1NGY0M1x1NmYyY1x1NjdkOFx1OGZiYlx1ODUyNlx1N2RiNFx1OTM1NFx1NjkzZlx1NmY3MFx1NTc2YVx1NThmN1x1NWIyY1x1N2QyY1x1NzIyYVx1NTQwYVx1OTFlM1x1OWRiNFx1NGVhZFx1NGY0ZVx1NTA1Y1x1NTA3''@;'; put 'put ''NVx1NTI0M1x1OGM5ZVx1NTQ0OFx1NTgyNFx1NWI5YVx1NWUxZFx1NWU5NVx1NWVhZFx1NWVmN1x1NWYxZlx1NjA4Y1x1NjJiNVx1NjMzYVx1NjNkMFx1NjhhZlx1NmM0MFx1Nzg4N1x1Nzk4ZVx1N2EwYlx1N2RlMFx1ODI0N1x1OGEwMlx1OGFlNlx1OGU0NFx1OTAxM1x1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDZdW0VdXT0zNzM3NitFLExbMzczNzYrRV09QlsxNDZdW0VdKTtmb3IoQlsxNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwYjhcdTkxMmRcdTkxZDhcdTlmMGVcdTZjZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVc''@;'; put 'put ''dTVlOTdcdTZkZmJcdTdlOGZcdTc1MWNcdThjYmNcdThlZTJcdTk4NWJcdTcwYjlcdTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJcdTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkw''@;'; put 'put ''ZmRcdTkzNGRcdTc4MjVcdTc4M2FcdTUyYWFcdTVlYTZcdTU3MWZcdTU5NzRcdTYwMTJcdTUwMTJcdTUxNWFcdTUxYWNcdWZmZmRcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVkOGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNc''@;'; put 'put ''dTY4ZGZcdTc2ZDdcdTZkZDhcdTZlNmZcdTZkOWJcdTcwNmZcdTcxYzhcdTVmNTNcdTc1ZDhcdTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzBcdTg0NjNcdTg1NjlcdTg1ZTRcdThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4''@;'; put 'put ''MmRcdTlhMzBcdTk1ZDhcdTUwY2RcdTUyZDVcdTU0MGNcdTU4MDJcdTVjMGVcdTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUzM2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJc''@;'; put 'put ''dTcyZWNcdThhYWRcdTY4MDNcdTZhNjFcdTUxZjhcdTdhODFcdTY5MzRcdTVjNGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFcdTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRl''@;'; put 'put ''NGRcdTUxZWFcdTg1OTlcdThiMGVcdTcwNThcdTYzN2FcdTkzNGJcdTY5NjJcdTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThmZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjVc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ3XVtFXV09Mzc2MzIrRSxMWzM3NjMyK0VdPUJbMTQ3XVtFXSk7Zm9yKEJbMTQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTgyXHU1YzNmXHU5N2VlXHU0ZWZiXHU1OThhXHU1ZmNkXHU4YThkXHU2ZmUxXHU3OWIwXHU3OTYyXHU1YmU3XHU4NDcxXHU3MzJiXHU3MWIxXHU1ZTc0XHU1ZmY1XHU2MzdiXHU2NDlhXHU3MWMzXHU3Yzk4XHU0ZTQzXHU1ZWZj''@;'; put 'put ''XHU0ZTRiXHU1N2RjXHU1NmEyXHU2MGE5XHU2ZmMzXHU3ZDBkXHU4MGZkXHU4MTMzXHU4MWJmXHU4ZmIyXHU4OTk3XHU4NmE0XHU1ZGY0XHU2MjhhXHU2NGFkXHU4OTg3XHU2Nzc3XHU2Y2UyXHU2ZDNlXHU3NDM2XHU3ODM0XHU1YTQ2XHU3Zjc1XHU4MmFkXHU5OWFjXHU0ZmYzXHU1ZWMzXHU2''@;'; put 'put ''MmRkXHU2MzkyXHU2NTU3XHU2NzZmXHU3NmMzXHU3MjRjXHU4MGNjXHU4MGJhXHU4ZjI5XHU5MTRkXHU1MDBkXHU1N2Y5XHU1YTkyXHU2ODg1XHVmZmZkXHU2OTczXHU3MTY0XHU3MmZkXHU4Y2I3XHU1OGYyXHU4Y2UwXHU5NjZhXHU5MDE5XHU4NzdmXHU3OWU0XHU3N2U3XHU4NDI5XHU0ZjJm''@;'; put 'put ''XHU1MjY1XHU1MzVhXHU2MmNkXHU2N2NmXHU2Y2NhXHU3NjdkXHU3Yjk0XHU3Yzk1XHU4MjM2XHU4NTg0XHU4ZmViXHU2NmRkXHU2ZjIwXHU3MjA2XHU3ZTFiXHU4M2FiXHU5OWMxXHU5ZWE2XHU1MWZkXHU3YmIxXHU3ODcyXHU3YmI4XHU4MDg3XHU3YjQ4XHU2YWU4XHU1ZTYxXHU4MDhjXHU3''@;'; put 'put ''NTUxXHU3NTYwXHU1MTZiXHU5MjYyXHU2ZThjXHU3NjdhXHU5MTk3XHU5YWVhXHU0ZjEwXHU3ZjcwXHU2MjljXHU3YjRmXHU5NWE1XHU5Y2U5XHU1NjdhXHU1ODU5XHU4NmU0XHU5NmJjXHU0ZjM0XHU1MjI0XHU1MzRhXHU1M2NkXHU1M2RiXHU1ZTA2XHU2NDJjXHU2NTkxXHU2NzdmXHU2YzNl''@;'; put 'put ''XHU2YzRlXHU3MjQ4XHU3MmFmXHU3M2VkXHU3NTU0XHU3ZTQxXHU4MjJjXHU4NWU5XHU4Y2E5XHU3YmM0XHU5MWM2XHU3MTY5XHU5ODEyXHU5OGVmXHU2MzNkXHU2NjY5XHU3NTZhXHU3NmU0XHU3OGQwXHU4NTQzXHU4NmVlXHU1MzJhXHU1MzUxXHU1NDI2XHU1OTgzXHU1ZTg3XHU1ZjdjXHU2''@;'; put 'put ''MGIyXHU2MjQ5XHU2Mjc5XHU2MmFiXHU2NTkwXHU2YmQ0XHU2Y2NjXHU3NWIyXHU3NmFlXHU3ODkxXHU3OWQ4XHU3ZGNiXHU3Zjc3XHU4MGE1XHU4OGFiXHU4YWI5XHU4Y2JiXHU5MDdmXHU5NzVlXHU5OGRiXHU2YTBiXHU3YzM4XHU1MDk5XHU1YzNlXHU1ZmFlXHU2Nzg3XHU2YmQ4XHU3NDM1''@;'; put 'put ''XHU3NzA5XHU3ZjhlXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0OF1bRV1dPTM3ODg4K0UsTFszNzg4OCtFXT1CWzE0OF1bRV0pO2ZvcihCWzE0OV09Ilx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWYzYlx1NjdjYVx1N2ExN1x1NTMzOVx1NzU4Ylx1OWFlZFx1NWY2Nlx1ODE5ZFx1ODNmMVx1ODA5OFx1NWYzY1x1NWZjNVx1NzU2Mlx1N2I0Nlx1OTAzY1x1Njg2N1x1NTllYlx1NWE5Ylx1N2QxMFx1NzY3''@;'; put 'put ''ZVx1OGIyY1x1NGZmNVx1NWY2YVx1NmExOVx1NmMzN1x1NmYwMlx1NzRlMlx1Nzk2OFx1ODg2OFx1OGE1NVx1OGM3OVx1NWVkZlx1NjNjZlx1NzVjNVx1NzlkMlx1ODJkN1x1OTMyOFx1OTJmMlx1ODQ5Y1x1ODZlZFx1OWMyZFx1NTRjMVx1NWY2Y1x1NjU4Y1x1NmQ1Y1x1NzAxNVx1OGNhN1x1''@;'; put 'put ''OGNkM1x1OTgzYlx1NjU0Zlx1NzRmNlx1NGUwZFx1NGVkOFx1NTdlMFx1NTkyYlx1NWE2Nlx1NWJjY1x1NTFhOFx1NWUwM1x1NWU5Y1x1NjAxNlx1NjI3Nlx1NjU3N1x1ZmZmZFx1NjVhN1x1NjY2ZVx1NmQ2ZVx1NzIzNlx1N2IyNlx1ODE1MFx1ODE5YVx1ODI5OVx1OGI1Y1x1OGNhMFx1OGNl''@;'; put 'put ''Nlx1OGQ3NFx1OTYxY1x1OTY0NFx1NGZhZVx1NjRhYlx1NmI2Nlx1ODIxZVx1ODQ2MVx1ODU2YVx1OTBlOFx1NWMwMVx1Njk1M1x1OThhOFx1ODQ3YVx1ODU1N1x1NGYwZlx1NTI2Zlx1NWZhOVx1NWU0NVx1NjcwZFx1Nzk4Zlx1ODE3OVx1ODkwN1x1ODk4Nlx1NmRmNVx1NWYxN1x1NjI1NVx1''@;'; put 'put ''NmNiOFx1NGVjZlx1NzI2OVx1OWI5Mlx1NTIwNlx1NTQzYlx1NTY3NFx1NThiM1x1NjFhNFx1NjI2ZVx1NzExYVx1NTk2ZVx1N2M4OVx1N2NkZVx1N2QxYlx1OTZmMFx1NjU4N1x1ODA1ZVx1NGUxOVx1NGY3NVx1NTE3NVx1NTg0MFx1NWU2M1x1NWU3M1x1NWYwYVx1NjdjNFx1NGUyNlx1ODUz''@;'; put 'put ''ZFx1OTU4OVx1OTY1Ylx1N2M3M1x1OTgwMVx1NTBmYlx1NThjMVx1NzY1Nlx1NzhhN1x1NTIyNVx1NzdhNVx1ODUxMVx1N2I4Nlx1NTA0Zlx1NTkwOVx1NzI0N1x1N2JjN1x1N2RlOFx1OGZiYVx1OGZkNFx1OTA0ZFx1NGZiZlx1NTJjOVx1NWEyOVx1NWYwMVx1OTdhZFx1NGZkZFx1ODIxN1x1''@;'; put 'put ''OTJlYVx1NTcwM1x1NjM1NVx1NmI2OVx1NzUyYlx1ODhkY1x1OGYxNFx1N2E0Mlx1NTJkZlx1NTg5M1x1NjE1NVx1NjIwYVx1NjZhZVx1NmJjZFx1N2MzZlx1ODNlOVx1NTAyM1x1NGZmOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NWI5ZFx1NWNmMFx1NWNlZlx1NWQyOVx1NWU5Nlx1NjJi''@;'; put 'put ''MVx1NjM2N1x1NjUzZVx1NjViOVx1NjcwYlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDldW0VdXT0zODE0NCtFLExbMzgxNDQrRV09QlsxNDldW0VdKTtmb3IoQlsx''@;'; put 'put ''NTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZjZDVcdTZjZTFcdTcwZjlcdTc4MzJcdTdlMmJcdTgwZGVcdTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlk''@;'; put 'put ''NmNcdTRlNGZcdTRlYTFcdTUwOGRcdTUyNTZcdTU3NGFcdTU5YThcdTVlM2RcdTVmZDhcdTVmZDlcdTYyM2ZcdTY2YjRcdTY3MWJcdTY3ZDBcdTY4ZDJcdTUxOTJcdTdkMjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVc''@;'; put 'put ''dTUzNWNcdTU4YThcdTY0YjJcdTY3MzRcdTcyNjdcdTc3NjZcdTdhNDZcdTkxZTZcdTUyYzNcdTZjYTFcdTZiODZcdTU4MDBcdTVlNGNcdTU5NTRcdTY3MmNcdTdmZmJcdTUxZTFcdTc2YzZcdWZmZmRcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZi''@;'; put 'put ''Y2VcdTU0ZTlcdTY5ZDlcdTVlNTVcdTgxOWNcdTY3OTVcdTliYWFcdTY3ZmVcdTljNTJcdTY4NWRcdTRlYTZcdTRmZTNcdTUzYzhcdTYyYjlcdTY3MmJcdTZjYWJcdThmYzRcdTRmYWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODBcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTliNDVc''@;'; put 'put ''dTVkZjNcdTdiOTVcdTVjYWNcdTViYzZcdTg3MWNcdTZlNGFcdTg0ZDFcdTdhMTRcdTgxMDhcdTU5OTlcdTdjOGRcdTZjMTFcdTc3MjBcdTUyZDlcdTU5MjJcdTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTc2''@;'; put 'put ''ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5ZWFcdTcyNWRcdTZlYzVcdTUxNGRcdTY4YzlcdTdkYmZcdTdkZWNcdTk3NjJcdTllYmFcdTY0NzhcdTZhMjFcdTgzMDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2ZWVc''@;'; put 'put ''dTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRcdTYyM2JcdTdjN2VcdThjYjBcdTU1NGZcdTYwYjZcdTdkMGJcdTk1ODBcdTUzMDFcdTRlNWZcdTUxYjZcdTU5MWNcdTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZcdTY3''@;'; put 'put ''ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYxMDhcdTZjYjlcdTc2NTJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUwXVtFXV09Mzg0MDArRSxMWzM4NDAwK0VdPUJbMTUw''@;'; put 'put ''XVtFXSk7Zm9yKEJbMTUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWVkXHU4ZjM4XHU1NTJmXHU0ZjUxXHU1MTJhXHU1MmM3XHU1M2NiXHU1YmE1XHU1ZTdkXHU2MGEwXHU2MTgyXHU2M2Q2XHU2NzA5XHU2N2RhXHU2ZTY3XHU2''@;'; put 'put ''ZDhjXHU3MzM2XHU3MzM3XHU3NTMxXHU3OTUwXHU4OGQ1XHU4YTk4XHU5MDRhXHU5MDkxXHU5MGY1XHU5NmM0XHU4NzhkXHU1OTE1XHU0ZTg4XHU0ZjU5XHU0ZTBlXHU4YTg5XHU4ZjNmXHU5ODEwXHU1MGFkXHU1ZTdjXHU1OTk2XHU1YmI5XHU1ZWI4XHU2M2RhXHU2M2ZhXHU2NGMxXHU2NmRj''@;'; put 'put ''XHU2OTRhXHU2OWQ4XHU2ZDBiXHU2ZWI2XHU3MTk0XHU3NTI4XHU3YWFmXHU3ZjhhXHU4MDAwXHU4NDQ5XHU4NGM5XHU4OTgxXHU4YjIxXHU4ZTBhXHU5MDY1XHU5NjdkXHU5OTBhXHU2MTdlXHU2MjkxXHU2YjMyXHVmZmZkXHU2YzgzXHU2ZDc0XHU3ZmNjXHU3ZmZjXHU2ZGMwXHU3Zjg1XHU4''@;'; put 'put ''N2JhXHU4OGY4XHU2NzY1XHU4M2IxXHU5ODNjXHU5NmY3XHU2ZDFiXHU3ZDYxXHU4NDNkXHU5MTZhXHU0ZTcxXHU1Mzc1XHU1ZDUwXHU2YjA0XHU2ZmViXHU4NWNkXHU4NjJkXHU4OWE3XHU1MjI5XHU1NDBmXHU1YzY1XHU2NzRlXHU2OGE4XHU3NDA2XHU3NDgzXHU3NWUyXHU4OGNmXHU4OGUx''@;'; put 'put ''XHU5MWNjXHU5NmUyXHU5Njc4XHU1ZjhiXHU3Mzg3XHU3YWNiXHU4NDRlXHU2M2EwXHU3NTY1XHU1Mjg5XHU2ZDQxXHU2ZTljXHU3NDA5XHU3NTU5XHU3ODZiXHU3YzkyXHU5Njg2XHU3YWRjXHU5ZjhkXHU0ZmI2XHU2MTZlXHU2NWM1XHU4NjVjXHU0ZTg2XHU0ZWFlXHU1MGRhXHU0ZTIxXHU1''@;'; put 'put ''MWNjXHU1YmVlXHU2NTk5XHU2ODgxXHU2ZGJjXHU3MzFmXHU3NjQyXHU3N2FkXHU3YTFjXHU3Y2U3XHU4MjZmXHU4YWQyXHU5MDdjXHU5MWNmXHU5Njc1XHU5ODE4XHU1MjliXHU3ZGQxXHU1MDJiXHU1Mzk4XHU2Nzk3XHU2ZGNiXHU3MWQwXHU3NDMzXHU4MWU4XHU4ZjJhXHU5NmEzXHU5YzU3''@;'; put 'put ''XHU5ZTlmXHU3NDYwXHU1ODQxXHU2ZDk5XHU3ZDJmXHU5ODVlXHU0ZWU0XHU0ZjM2XHU0ZjhiXHU1MWI3XHU1MmIxXHU1ZGJhXHU2MDFjXHU3M2IyXHU3OTNjXHU4MmQzXHU5MjM0XHU5NmI3XHU5NmY2XHU5NzBhXHU5ZTk3XHU5ZjYyXHU2NmE2XHU2Yjc0XHU1MjE3XHU1MmEzXHU3MGM4XHU4''@;'; put 'put ''OGMyXHU1ZWM5XHU2MDRiXHU2MTkwXHU2ZjIzXHU3MTQ5XHU3YzNlXHU3ZGY0XHU4MDZmXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1MV1bRV1dPTM4NjU2K0UsTFsz''@;'; put 'put ''ODY1NitFXT1CWzE1MV1bRV0pO2ZvcihCWzE1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODRlZVx1OTAyM1x1OTMyY1x1NTQ0Mlx1OWI2Zlx1NmFkM1x1NzA4OVx1OGNjMlx1OGRlZlx1OTczMlx1NTJiNFx1NWE0MVx1NWVjYVx1''@;'; put 'put ''NWYwNFx1NjcxN1x1Njk3Y1x1Njk5NFx1NmQ2YVx1NmYwZlx1NzI2Mlx1NzJmY1x1N2JlZFx1ODAwMVx1ODA3ZVx1ODc0Ylx1OTBjZVx1NTE2ZFx1OWU5M1x1Nzk4NFx1ODA4Ylx1OTMzMlx1OGFkNlx1NTAyZFx1NTQ4Y1x1OGE3MVx1NmI2YVx1OGNjNFx1ODEwN1x1NjBkMVx1NjdhMFx1OWRm''@;'; put 'put ''Mlx1NGU5OVx1NGU5OFx1OWMxMFx1OGE2Ylx1ODVjMVx1ODU2OFx1NjkwMFx1NmU3ZVx1Nzg5N1x1ODE1NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWYw''@;'; put 'put ''Y1x1NGUxMFx1NGUxNVx1NGUyYVx1NGUzMVx1NGUzNlx1NGUzY1x1NGUzZlx1NGU0Mlx1NGU1Nlx1NGU1OFx1NGU4Mlx1NGU4NVx1OGM2Ylx1NGU4YVx1ODIxMlx1NWYwZFx1NGU4ZVx1NGU5ZVx1NGU5Zlx1NGVhMFx1NGVhMlx1NGViMFx1NGViM1x1NGViNlx1NGVjZVx1NGVjZFx1NGVjNFx1''@;'; put 'put ''NGVjNlx1NGVjMlx1NGVkN1x1NGVkZVx1NGVlZFx1NGVkZlx1NGVmN1x1NGYwOVx1NGY1YVx1NGYzMFx1NGY1Ylx1NGY1ZFx1NGY1N1x1NGY0N1x1NGY3Nlx1NGY4OFx1NGY4Zlx1NGY5OFx1NGY3Ylx1NGY2OVx1NGY3MFx1NGY5MVx1NGY2Zlx1NGY4Nlx1NGY5Nlx1NTExOFx1NGZkNFx1NGZk''@;'; put 'put ''Zlx1NGZjZVx1NGZkOFx1NGZkYlx1NGZkMVx1NGZkYVx1NGZkMFx1NGZlNFx1NGZlNVx1NTAxYVx1NTAyOFx1NTAxNFx1NTAyYVx1NTAyNVx1NTAwNVx1NGYxY1x1NGZmNlx1NTAyMVx1NTAyOVx1NTAyY1x1NGZmZVx1NGZlZlx1NTAxMVx1NTAwNlx1NTA0M1x1NTA0N1x1NjcwM1x1NTA1NVx1''@;'; put 'put ''NTA1MFx1NTA0OFx1NTA1YVx1NTA1Nlx1NTA2Y1x1NTA3OFx1NTA4MFx1NTA5YVx1NTA4NVx1NTBiNFx1NTBiMlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTJdW0Vd''@;'; put 'put ''XT0zODkxMitFLExbMzg5MTIrRV09QlsxNTJdW0VdKTtmb3IoQlsxNTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUwZWRcdTUwZTNcdTUwZWVcdTUwZjlc''@;'; put 'put ''dTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJcdTUxMTZcdTUxMTVcdTUxMTRcdTUxMWFcdTUxMjFcdTUxM2FcdTUxMzdcdTUxM2NcdTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBcdTUxODJcdTU2ZDhcdTUxOGNcdTUx''@;'; put 'put ''ODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUxOTVcdTUxOTZcdTUxYTRcdTUxYTZcdTUxYTJcdTUxYTlcdTUxYWFcdTUxYWJcdTUxYjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUxZWRcdWZmZmRcdTUxZjBcdTUxZjVc''@;'; put 'put ''dTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRcdTUyMGVcdTUyMjdcdTUyMmFcdTUyMmVcdTUyMzNcdTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJcdTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJcdTUyNzFcdTUyODhcdTUy''@;'; put 'put ''OTFcdThmYThcdThmYTdcdTUyYWNcdTUyYWRcdTUyYmNcdTUyYjVcdTUyYzFcdTUyY2RcdTUyZDdcdTUyZGVcdTUyZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUzMTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNc''@;'; put 'put ''dTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhcdTUzNDBcdTUzNDZcdTUzNDVcdTRlMTdcdTUzNDlcdTUzNGRcdTUxZDZcdTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVcdTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2''@;'; put 'put ''ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUzZWVcdTUzZThcdTUzZWRcdTUzZmFcdTU0MDFcdTU0M2RcdTU0NDBcdTU0MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2Jc''@;'; put 'put ''dTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBcdTU0ODZcdTU0YzdcdTU0YTJcdTU0YjhcdTU0YTVcdTU0YWNcdTU0YzRcdTU0YzhcdTU0YThcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1M11bRV0uY2hhckNvZGVBdCgwKSYm''@;'; put 'put ''KG1lW0JbMTUzXVtFXV09MzkxNjgrRSxMWzM5MTY4K0VdPUJbMTUzXVtFXSk7Zm9yKEJbMTU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGFiXHU1NGMyXHU1NGE0XHU1NGJlXHU1NGJjXHU1NGQ4XHU1NGU1XHU1NGU2XHU1NTBm''@;'; put 'put ''XHU1NTE0XHU1NGZkXHU1NGVlXHU1NGVkXHU1NGZhXHU1NGUyXHU1NTM5XHU1NTQwXHU1NTYzXHU1NTRjXHU1NTJlXHU1NTVjXHU1NTQ1XHU1NTU2XHU1NTU3XHU1NTM4XHU1NTMzXHU1NTVkXHU1NTk5XHU1NTgwXHU1NGFmXHU1NThhXHU1NTlmXHU1NTdiXHU1NTdlXHU1NTk4XHU1NTllXHU1''@;'; put 'put ''NWFlXHU1NTdjXHU1NTgzXHU1NWE5XHU1NTg3XHU1NWE4XHU1NWRhXHU1NWM1XHU1NWRmXHU1NWM0XHU1NWRjXHU1NWU0XHU1NWQ0XHU1NjE0XHU1NWY3XHU1NjE2XHU1NWZlXHU1NWZkXHU1NjFiXHU1NWY5XHU1NjRlXHU1NjUwXHU3MWRmXHU1NjM0XHU1NjM2XHU1NjMyXHU1NjM4XHVmZmZk''@;'; put 'put ''XHU1NjZiXHU1NjY0XHU1NjJmXHU1NjZjXHU1NjZhXHU1Njg2XHU1NjgwXHU1NjhhXHU1NmEwXHU1Njk0XHU1NjhmXHU1NmE1XHU1NmFlXHU1NmI2XHU1NmI0XHU1NmMyXHU1NmJjXHU1NmMxXHU1NmMzXHU1NmMwXHU1NmM4XHU1NmNlXHU1NmQxXHU1NmQzXHU1NmQ3XHU1NmVlXHU1NmY5XHU1''@;'; put 'put ''NzAwXHU1NmZmXHU1NzA0XHU1NzA5XHU1NzA4XHU1NzBiXHU1NzBkXHU1NzEzXHU1NzE4XHU1NzE2XHU1NWM3XHU1NzFjXHU1NzI2XHU1NzM3XHU1NzM4XHU1NzRlXHU1NzNiXHU1NzQwXHU1NzRmXHU1NzY5XHU1N2MwXHU1Nzg4XHU1NzYxXHU1NzdmXHU1Nzg5XHU1NzkzXHU1N2EwXHU1N2Iz''@;'; put 'put ''XHU1N2E0XHU1N2FhXHU1N2IwXHU1N2MzXHU1N2M2XHU1N2Q0XHU1N2QyXHU1N2QzXHU1ODBhXHU1N2Q2XHU1N2UzXHU1ODBiXHU1ODE5XHU1ODFkXHU1ODcyXHU1ODIxXHU1ODYyXHU1ODRiXHU1ODcwXHU2YmMwXHU1ODUyXHU1ODNkXHU1ODc5XHU1ODg1XHU1OGI5XHU1ODlmXHU1OGFiXHU1''@;'; put 'put ''OGJhXHU1OGRlXHU1OGJiXHU1OGI4XHU1OGFlXHU1OGM1XHU1OGQzXHU1OGQxXHU1OGQ3XHU1OGQ5XHU1OGQ4XHU1OGU1XHU1OGRjXHU1OGU0XHU1OGRmXHU1OGVmXHU1OGZhXHU1OGY5XHU1OGZiXHU1OGZjXHU1OGZkXHU1OTAyXHU1OTBhXHU1OTEwXHU1OTFiXHU2OGE2XHU1OTI1XHU1OTJj''@;'; put 'put ''XHU1OTJkXHU1OTMyXHU1OTM4XHU1OTNlXHU3YWQyXHU1OTU1XHU1OTUwXHU1OTRlXHU1OTVhXHU1OTU4XHU1OTYyXHU1OTYwXHU1OTY3XHU1OTZjXHU1OTY5XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTRdW0VdLmNo''@;'; put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzE1NF1bRV1dPTM5NDI0K0UsTFszOTQyNCtFXT1CWzE1NF1bRV0pO2ZvcihCWzE1NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTk3OFx1NTk4MVx1NTk5ZFx1NGY1ZVx1NGZhYlx1NTlhM1x1NTli''@;'; put 'put ''Mlx1NTljNlx1NTllOFx1NTlkY1x1NTk4ZFx1NTlkOVx1NTlkYVx1NWEyNVx1NWExZlx1NWExMVx1NWExY1x1NWEwOVx1NWExYVx1NWE0MFx1NWE2Y1x1NWE0OVx1NWEzNVx1NWEzNlx1NWE2Mlx1NWE2YVx1NWE5YVx1NWFiY1x1NWFiZVx1NWFjYlx1NWFjMlx1NWFiZFx1NWFlM1x1NWFkN1x1''@;'; put 'put ''NWFlNlx1NWFlOVx1NWFkNlx1NWFmYVx1NWFmYlx1NWIwY1x1NWIwYlx1NWIxNlx1NWIzMlx1NWFkMFx1NWIyYVx1NWIzNlx1NWIzZVx1NWI0M1x1NWI0NVx1NWI0MFx1NWI1MVx1NWI1NVx1NWI1YVx1NWI1Ylx1NWI2NVx1NWI2OVx1NWI3MFx1NWI3M1x1NWI3NVx1NWI3OFx1NjU4OFx1NWI3''@;'; put 'put ''YVx1NWI4MFx1ZmZmZFx1NWI4M1x1NWJhNlx1NWJiOFx1NWJjM1x1NWJjN1x1NWJjOVx1NWJkNFx1NWJkMFx1NWJlNFx1NWJlNlx1NWJlMlx1NWJkZVx1NWJlNVx1NWJlYlx1NWJmMFx1NWJmNlx1NWJmM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwZFx1NWMxM1x1NWMyMFx1NWMyMlx1NWMyOFx1''@;'; put 'put ''NWMzOFx1NWMzOVx1NWM0MVx1NWM0Nlx1NWM0ZVx1NWM1M1x1NWM1MFx1NWM0Zlx1NWI3MVx1NWM2Y1x1NWM2ZVx1NGU2Mlx1NWM3Nlx1NWM3OVx1NWM4Y1x1NWM5MVx1NWM5NFx1NTk5Ylx1NWNhYlx1NWNiYlx1NWNiNlx1NWNiY1x1NWNiN1x1NWNjNVx1NWNiZVx1NWNjN1x1NWNkOVx1NWNl''@;'; put 'put ''OVx1NWNmZFx1NWNmYVx1NWNlZFx1NWQ4Y1x1NWNlYVx1NWQwYlx1NWQxNVx1NWQxN1x1NWQ1Y1x1NWQxZlx1NWQxYlx1NWQxMVx1NWQxNFx1NWQyMlx1NWQxYVx1NWQxOVx1NWQxOFx1NWQ0Y1x1NWQ1Mlx1NWQ0ZVx1NWQ0Ylx1NWQ2Y1x1NWQ3M1x1NWQ3Nlx1NWQ4N1x1NWQ4NFx1NWQ4Mlx1''@;'; put 'put ''NWRhMlx1NWQ5ZFx1NWRhY1x1NWRhZVx1NWRiZFx1NWQ5MFx1NWRiN1x1NWRiY1x1NWRjOVx1NWRjZFx1NWRkM1x1NWRkMlx1NWRkNlx1NWRkYlx1NWRlYlx1NWRmMlx1NWRmNVx1NWUwYlx1NWUxYVx1NWUxOVx1NWUxMVx1NWUxYlx1NWUzNlx1NWUzN1x1NWU0NFx1NWU0M1x1NWU0MFx1NWU0''@;'; put 'put ''ZVx1NWU1N1x1NWU1NFx1NWU1Zlx1NWU2Mlx1NWU2NFx1NWU0N1x1NWU3NVx1NWU3Nlx1NWU3YVx1OWViY1x1NWU3Zlx1NWVhMFx1NWVjMVx1NWVjMlx1NWVjOFx1NWVkMFx1NWVjZlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1NV0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; put 'put ''PUJbMTU1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTVdW0VdXT0zOTY4MCtFLExbMzk2ODArRV09QlsxNTVdW0VdKTtmb3IoQlsxNTZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVl''@;'; put 'put ''ZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVlZTlcdTVlZWNcdTVlZjFcdTVlZjNcdTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVmNWRcdTVmNWNcdTVmMGJcdTVmMTFcdTVmMTZcdTVmMjlcdTVmMmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFc''@;'; put 'put ''dTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFcdTVmNmRcdTVmNzNcdTVmNzdcdTVmODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdcdTVmOWVcdTVmOTlcdTVmOThcdTVmYTBcdTVmYThcdTVmYWRcdTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYw''@;'; put 'put ''YjNcdTVmZmZcdTYwMjFcdTYwNjBcdWZmZmRcdTYwMTlcdTYwMTBcdTYwMjlcdTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYwMjZcdTYwMGZcdTYwM2FcdTYwNWFcdTYwNDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYwNGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJc''@;'; put 'put ''dTYwNmNcdTYwNmJcdTYwNTlcdTYwODFcdTYwOGRcdTYwZTdcdTYwODNcdTYwOWFcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJcdTYwYTdcdTYwOGJcdTYwZTFcdTYwYjhcdTYwZTBcdTYwZDNcdTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYx''@;'; put 'put ''MDZcdTYwZjZcdTYwZjdcdTYxMDBcdTYwZjRcdTYwZmFcdTYxMDNcdTYxMjFcdTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYxM2VcdTYxMjhcdTYxMjdcdTYxNGFcdTYxM2ZcdTYxM2NcdTYxMmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlc''@;'; put 'put ''dTYxNWFcdTYxNmJcdTYxNzRcdTYxNmZcdTYxNjVcdTYxNzFcdTYxNWZcdTYxNWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdcdTYxYWNcdTYxOTRcdTYxOWFcdTYxOGFcdTYxOTFcdTYxYWJcdTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYx''@;'; put 'put ''YmFcdTYxY2JcdTdmNzlcdTYxY2RcdTYxZTZcdTYxZTNcdTYxZjZcdTYxZmFcdTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYyMDBcdTYyMDhcdTYyMDlcdTYyMGRcdTYyMGNcdTYyMTRcdTYyMWJcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTZdLmxlbmd0''@;'; put 'put ''aDsrK0UpNjU1MzMhPT1CWzE1Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU2XVtFXV09Mzk5MzYrRSxMWzM5OTM2K0VdPUJbMTU2XVtFXSk7Zm9yKEJbMTU3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjFlXHU2MjIxXHU2''@;'; put 'put ''MjJhXHU2MjJlXHU2MjMwXHU2MjMyXHU2MjMzXHU2MjQxXHU2MjRlXHU2MjVlXHU2MjYzXHU2MjViXHU2MjYwXHU2MjY4XHU2MjdjXHU2MjgyXHU2Mjg5XHU2MjdlXHU2MjkyXHU2MjkzXHU2Mjk2XHU2MmQ0XHU2MjgzXHU2Mjk0XHU2MmQ3XHU2MmQxXHU2MmJiXHU2MmNmXHU2MmZmXHU2MmM2''@;'; put 'put ''XHU2NGQ0XHU2MmM4XHU2MmRjXHU2MmNjXHU2MmNhXHU2MmMyXHU2MmM3XHU2MjliXHU2MmM5XHU2MzBjXHU2MmVlXHU2MmYxXHU2MzI3XHU2MzAyXHU2MzA4XHU2MmVmXHU2MmY1XHU2MzUwXHU2MzNlXHU2MzRkXHU2NDFjXHU2MzRmXHU2Mzk2XHU2MzhlXHU2MzgwXHU2M2FiXHU2Mzc2XHU2''@;'; put 'put ''M2EzXHU2MzhmXHU2Mzg5XHU2MzlmXHU2M2I1XHU2MzZiXHVmZmZkXHU2MzY5XHU2M2JlXHU2M2U5XHU2M2MwXHU2M2M2XHU2M2UzXHU2M2M5XHU2M2QyXHU2M2Y2XHU2M2M0XHU2NDE2XHU2NDM0XHU2NDA2XHU2NDEzXHU2NDI2XHU2NDM2XHU2NTFkXHU2NDE3XHU2NDI4XHU2NDBmXHU2NDY3''@;'; put 'put ''XHU2NDZmXHU2NDc2XHU2NDRlXHU2NTJhXHU2NDk1XHU2NDkzXHU2NGE1XHU2NGE5XHU2NDg4XHU2NGJjXHU2NGRhXHU2NGQyXHU2NGM1XHU2NGM3XHU2NGJiXHU2NGQ4XHU2NGMyXHU2NGYxXHU2NGU3XHU4MjA5XHU2NGUwXHU2NGUxXHU2MmFjXHU2NGUzXHU2NGVmXHU2NTJjXHU2NGY2XHU2''@;'; put 'put ''NGY0XHU2NGYyXHU2NGZhXHU2NTAwXHU2NGZkXHU2NTE4XHU2NTFjXHU2NTA1XHU2NTI0XHU2NTIzXHU2NTJiXHU2NTM0XHU2NTM1XHU2NTM3XHU2NTM2XHU2NTM4XHU3NTRiXHU2NTQ4XHU2NTU2XHU2NTU1XHU2NTRkXHU2NTU4XHU2NTVlXHU2NTVkXHU2NTcyXHU2NTc4XHU2NTgyXHU2NTgz''@;'; put 'put ''XHU4YjhhXHU2NTliXHU2NTlmXHU2NWFiXHU2NWI3XHU2NWMzXHU2NWM2XHU2NWMxXHU2NWM0XHU2NWNjXHU2NWQyXHU2NWRiXHU2NWQ5XHU2NWUwXHU2NWUxXHU2NWYxXHU2NzcyXHU2NjBhXHU2NjAzXHU2NWZiXHU2NzczXHU2NjM1XHU2NjM2XHU2NjM0XHU2NjFjXHU2NjRmXHU2NjQ0XHU2''@;'; put 'put ''NjQ5XHU2NjQxXHU2NjVlXHU2NjVkXHU2NjY0XHU2NjY3XHU2NjY4XHU2NjVmXHU2NjYyXHU2NjcwXHU2NjgzXHU2Njg4XHU2NjhlXHU2Njg5XHU2Njg0XHU2Njk4XHU2NjlkXHU2NmMxXHU2NmI5XHU2NmM5XHU2NmJlXHU2NmJjXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; put 'put ''PUJbMTU3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1N11bRV1dPTQwMTkyK0UsTFs0MDE5MitFXT1CWzE1N11bRV0pO2ZvcihCWzE1OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''NjZjNFx1NjZiOFx1NjZkNlx1NjZkYVx1NjZlMFx1NjYzZlx1NjZlNlx1NjZlOVx1NjZmMFx1NjZmNVx1NjZmN1x1NjcwZlx1NjcxNlx1NjcxZVx1NjcyNlx1NjcyN1x1OTczOFx1NjcyZVx1NjczZlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1ZVx1Njc2MFx1Njc1OVx1Njc2''@;'; put 'put ''M1x1Njc2NFx1Njc4OVx1Njc3MFx1NjdhOVx1Njc3Y1x1Njc2YVx1Njc4Y1x1Njc4Ylx1NjdhNlx1NjdhMVx1Njc4NVx1NjdiN1x1NjdlZlx1NjdiNFx1NjdlY1x1NjdiM1x1NjdlOVx1NjdiOFx1NjdlNFx1NjdkZVx1NjdkZFx1NjdlMlx1NjdlZVx1NjdiOVx1NjdjZVx1NjdjNlx1NjdlN1x1''@;'; put 'put ''NmE5Y1x1NjgxZVx1Njg0Nlx1NjgyOVx1Njg0MFx1Njg0ZFx1NjgzMlx1Njg0ZVx1ZmZmZFx1NjhiM1x1NjgyYlx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3Zlx1Njg5Zlx1Njg4Zlx1NjhhZFx1Njg5NFx1Njg5ZFx1Njg5Ylx1Njg4M1x1NmFhZVx1NjhiOVx1Njg3NFx1NjhiNVx1NjhhMFx1Njhi''@;'; put 'put ''YVx1NjkwZlx1Njg4ZFx1Njg3ZVx1NjkwMVx1NjhjYVx1NjkwOFx1NjhkOFx1NjkyMlx1NjkyNlx1NjhlMVx1NjkwY1x1NjhjZFx1NjhkNFx1NjhlN1x1NjhkNVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhkN1x1NjhlM1x1NjkyNVx1NjhmOVx1NjhlMFx1NjhlZlx1NjkyOFx1NjkyYVx1NjkxYVx1''@;'; put 'put ''NjkyM1x1NjkyMVx1NjhjNlx1Njk3OVx1Njk3N1x1Njk1Y1x1Njk3OFx1Njk2Ylx1Njk1NFx1Njk3ZVx1Njk2ZVx1NjkzOVx1Njk3NFx1NjkzZFx1Njk1OVx1NjkzMFx1Njk2MVx1Njk1ZVx1Njk1ZFx1Njk4MVx1Njk2YVx1NjliMlx1NjlhZVx1NjlkMFx1NjliZlx1NjljMVx1NjlkM1x1Njli''@;'; put 'put ''ZVx1NjljZVx1NWJlOFx1NjljYVx1NjlkZFx1NjliYlx1NjljM1x1NjlhN1x1NmEyZVx1Njk5MVx1NjlhMFx1Njk5Y1x1Njk5NVx1NjliNFx1NjlkZVx1NjllOFx1NmEwMlx1NmExYlx1NjlmZlx1NmIwYVx1NjlmOVx1NjlmMlx1NjllN1x1NmEwNVx1NjliMVx1NmExZVx1NjllZFx1NmExNFx1''@;'; put 'put ''NjllYlx1NmEwYVx1NmExMlx1NmFjMVx1NmEyM1x1NmExM1x1NmE0NFx1NmEwY1x1NmE3Mlx1NmEzNlx1NmE3OFx1NmE0N1x1NmE2Mlx1NmE1OVx1NmE2Nlx1NmE0OFx1NmEzOFx1NmEyMlx1NmE5MFx1NmE4ZFx1NmFhMFx1NmE4NFx1NmFhMlx1NmFhM1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3Bs''@;'; put 'put ''aXQoIiIpLEU9MDtFIT1CWzE1OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNThdW0VdXT00MDQ0OCtFLExbNDA0NDgrRV09QlsxNThdW0VdKTtmb3IoQlsxNTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdTZhOTdcdTg2MTdcdTZhYmJcdTZhYzNcdTZhYzJcdTZhYjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZhZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZcdTliMzFcdTZiMWZcdTZiMzhcdTZiMzdcdTc2ZGNcdTZi''@;'; put 'put ''MzlcdTk4ZWVcdTZiNDdcdTZiNDNcdTZiNDlcdTZiNTBcdTZiNTlcdTZiNTRcdTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlcdTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZiYWFcdTZiYWJcdTZiYWZcdTZiYjJcdTZiYjFcdTZiYjNc''@;'; put 'put ''dTZiYjdcdTZiYmNcdTZiYzZcdTZiY2JcdTZiZDNcdTZiZGZcdTZiZWNcdTZiZWJcdTZiZjNcdTZiZWZcdWZmZmRcdTllYmVcdTZjMDhcdTZjMTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJcdTZjNmFcdTZjODJcdTZjOGRcdTZjOWFcdTZjODFcdTZjOWJcdTZj''@;'; put 'put ''N2VcdTZjNjhcdTZjNzNcdTZjOTJcdTZjOTBcdTZjYzRcdTZjZjFcdTZjZDNcdTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFcdTZjYmVcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4NGRcdTZkMzZcdTZkMmJcdTZkM2RcdTZkMzhcdTZkMTlcdTZkMzVc''@;'; put 'put ''dTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNcdTZkOTNcdTZkNjRcdTZkNWFcdTZkNzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZmZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZcdTZkZWNcdTZkZGVcdTZkY2NcdTZkZThcdTZkZDJcdTZkYzVcdTZk''@;'; put 'put ''ZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZkZWFcdTZkZWVcdTZlMmRcdTZlNmVcdTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZcdTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZlNGVcdTZlMjRcdTZlZmZcdTZlMWRcdTZlMzhcdTZlODJcdTZlYWFc''@;'; put 'put ''dTZlOThcdTZlYzlcdTZlYjdcdTZlZDNcdTZlYmRcdTZlYWZcdTZlYzRcdTZlYjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZlYTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2ZcdTZlZjJcdTZmMzFcdTZlZWZcdTZmMzJcdTZlY2NcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU5XVtFXV09NDA3MDQrRSxMWzQwNzA0K0VdPUJbMTU5XVtFXSk7Zm9yKEJbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZjNlXHU2ZjEzXHU2ZWY3XHU2Zjg2XHU2ZjdhXHU2Zjc4XHU2ZjgxXHU2ZjgwXHU2ZjZmXHU2ZjViXHU2ZmYzXHU2ZjZkXHU2ZjgyXHU2ZjdjXHU2ZjU4XHU2ZjhlXHU2ZjkxXHU2ZmMyXHU2ZjY2XHU2ZmIzXHU2ZmEzXHU2ZmExXHU2ZmE0XHU2''@;'; put 'put ''ZmI5XHU2ZmM2XHU2ZmFhXHU2ZmRmXHU2ZmQ1XHU2ZmVjXHU2ZmQ0XHU2ZmQ4XHU2ZmYxXHU2ZmVlXHU2ZmRiXHU3MDA5XHU3MDBiXHU2ZmZhXHU3MDExXHU3MDAxXHU3MDBmXHU2ZmZlXHU3MDFiXHU3MDFhXHU2Zjc0XHU3MDFkXHU3MDE4XHU3MDFmXHU3MDMwXHU3MDNlXHU3MDMyXHU3MDUx''@;'; put 'put ''XHU3MDYzXHU3MDk5XHU3MDkyXHU3MGFmXHU3MGYxXHU3MGFjXHU3MGI4XHU3MGIzXHU3MGFlXHU3MGRmXHU3MGNiXHU3MGRkXHVmZmZkXHU3MGQ5XHU3MTA5XHU3MGZkXHU3MTFjXHU3MTE5XHU3MTY1XHU3MTU1XHU3MTg4XHU3MTY2XHU3MTYyXHU3MTRjXHU3MTU2XHU3MTZjXHU3MThmXHU3''@;'; put 'put ''MWZiXHU3MTg0XHU3MTk1XHU3MWE4XHU3MWFjXHU3MWQ3XHU3MWI5XHU3MWJlXHU3MWQyXHU3MWM5XHU3MWQ0XHU3MWNlXHU3MWUwXHU3MWVjXHU3MWU3XHU3MWY1XHU3MWZjXHU3MWY5XHU3MWZmXHU3MjBkXHU3MjEwXHU3MjFiXHU3MjI4XHU3MjJkXHU3MjJjXHU3MjMwXHU3MjMyXHU3MjNi''@;'; put 'put ''XHU3MjNjXHU3MjNmXHU3MjQwXHU3MjQ2XHU3MjRiXHU3MjU4XHU3Mjc0XHU3MjdlXHU3MjgyXHU3MjgxXHU3Mjg3XHU3MjkyXHU3Mjk2XHU3MmEyXHU3MmE3XHU3MmI5XHU3MmIyXHU3MmMzXHU3MmM2XHU3MmM0XHU3MmNlXHU3MmQyXHU3MmUyXHU3MmUwXHU3MmUxXHU3MmY5XHU3MmY3XHU1''@;'; put 'put ''MDBmXHU3MzE3XHU3MzBhXHU3MzFjXHU3MzE2XHU3MzFkXHU3MzM0XHU3MzJmXHU3MzI5XHU3MzI1XHU3MzNlXHU3MzRlXHU3MzRmXHU5ZWQ4XHU3MzU3XHU3MzZhXHU3MzY4XHU3MzcwXHU3Mzc4XHU3Mzc1XHU3MzdiXHU3MzdhXHU3M2M4XHU3M2IzXHU3M2NlXHU3M2JiXHU3M2MwXHU3M2U1''@;'; put 'put ''XHU3M2VlXHU3M2RlXHU3NGEyXHU3NDA1XHU3NDZmXHU3NDI1XHU3M2Y4XHU3NDMyXHU3NDNhXHU3NDU1XHU3NDNmXHU3NDVmXHU3NDU5XHU3NDQxXHU3NDVjXHU3NDY5XHU3NDcwXHU3NDYzXHU3NDZhXHU3NDc2XHU3NDdlXHU3NDhiXHU3NDllXHU3NGE3XHU3NGNhXHU3NGNmXHU3NGQ0XHU3''@;'; put 'put ''M2YxXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1bRV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1CWzIyNF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzRlMFx1NzRlM1x1NzRlN1x1NzRlOVx1NzRlZVx1NzRmMlx1NzRmMFx1NzRmMVx1NzRmOFx1NzRmN1x1NzUwNFx1NzUwM1x1NzUwNVx1NzUwY1x1NzUwZVx1NzUwZFx1NzUxNVx1NzUxM1x1NzUxZVx1NzUyNlx1NzUyY1x1''@;'; put 'put ''NzUzY1x1NzU0NFx1NzU0ZFx1NzU0YVx1NzU0OVx1NzU1Ylx1NzU0Nlx1NzU1YVx1NzU2OVx1NzU2NFx1NzU2N1x1NzU2Ylx1NzU2ZFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4YVx1NzU4OVx1NzU4Mlx1NzU5NFx1NzU5YVx1NzU5ZFx1NzVhNVx1NzVhM1x1NzVjMlx1NzVi''@;'; put 'put ''M1x1NzVjM1x1NzViNVx1NzViZFx1NzViOFx1NzViY1x1NzViMVx1NzVjZFx1NzVjYVx1NzVkMlx1NzVkOVx1NzVlM1x1NzVkZVx1NzVmZVx1NzVmZlx1ZmZmZFx1NzVmY1x1NzYwMVx1NzVmMFx1NzVmYVx1NzVmMlx1NzVmM1x1NzYwYlx1NzYwZFx1NzYwOVx1NzYxZlx1NzYyN1x1NzYyMFx1''@;'; put 'put ''NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1NzYzMFx1NzYzYlx1NzY0N1x1NzY0OFx1NzY0Nlx1NzY1Y1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2YVx1NzY2N1x1NzY2Y1x1NzY3MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3Y1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Ylx1NzY4''@;'; put 'put ''ZVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5YVx1NzZiMFx1NzZiNFx1NzZiOFx1NzZiOVx1NzZiYVx1NzZjMlx1NzZjZFx1NzZkNlx1NzZkMlx1NzZkZVx1NzZlMVx1NzZlNVx1NzZlN1x1NzZlYVx1ODYyZlx1NzZmYlx1NzcwOFx1NzcwN1x1NzcwNFx1NzcyOVx1NzcyNFx1NzcxZVx1NzcyNVx1''@;'; put 'put ''NzcyNlx1NzcxYlx1NzczN1x1NzczOFx1Nzc0N1x1Nzc1YVx1Nzc2OFx1Nzc2Ylx1Nzc1Ylx1Nzc2NVx1Nzc3Zlx1Nzc3ZVx1Nzc3OVx1Nzc4ZVx1Nzc4Ylx1Nzc5MVx1NzdhMFx1Nzc5ZVx1NzdiMFx1NzdiNlx1NzdiOVx1NzdiZlx1NzdiY1x1NzdiZFx1NzdiYlx1NzdjN1x1NzdjZFx1Nzdk''@;'; put 'put ''N1x1NzdkYVx1NzdkY1x1NzdlM1x1NzdlZVx1NzdmY1x1NzgwY1x1NzgxMlx1NzkyNlx1NzgyMFx1NzkyYVx1Nzg0NVx1Nzg4ZVx1Nzg3NFx1Nzg4Nlx1Nzg3Y1x1Nzg5YVx1Nzg4Y1x1NzhhM1x1NzhiNVx1NzhhYVx1NzhhZlx1NzhkMVx1NzhjNlx1NzhjYlx1NzhkNFx1NzhiZVx1NzhiY1x1''@;'; put 'put ''NzhjNVx1NzhjYVx1NzhlY1x1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjVdW0VdXT01NzYwMCtFLExbNTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBcdTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2Zc''@;'; put 'put ''dTc5OGFcdTc5OWRcdTc5YTdcdTlmNGJcdTc5YWFcdTc5YWVcdTc5YjNcdTc5YjlcdTc5YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdhMWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdh''@;'; put 'put ''NTdcdTdhNDlcdTdhNjFcdTdhNjJcdTdhNjlcdTlmOWRcdTdhNzBcdTdhNzlcdTdhN2RcdTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjBcdWZmZmRcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZcdTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVc''@;'; put 'put ''dTdhZDNcdTdhZDlcdTdhZGFcdTdhZGRcdTdhZTFcdTdhZTJcdTdhZTZcdTdhZWRcdTdhZjBcdTdiMDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTBcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdi''@;'; put 'put ''NzVcdTdiNjVcdTdiNzRcdTdiNjdcdTdiNzBcdTdiNzFcdTdiNmNcdTdiNmVcdTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2JcdTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFc''@;'; put 'put ''dTdjMTRcdTdiZTZcdTdiZTVcdTdjNjBcdTdjMDBcdTdjMDdcdTdjMTNcdTdiZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdjNGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdj''@;'; put 'put ''NjRcdTdjNTZcdTdjNjVcdTdjNmNcdTdjNzVcdTdjODNcdTdjOTBcdTdjYTRcdTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBcdTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZc''@;'; put 'put ''dTdjZjJcdTdjZjRcdTdjZjZcdTdjZmFcdTdkMDZcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2XVtFXV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9y''@;'; put 'put ''KEJbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZDAyXHU3ZDFjXHU3ZDE1XHU3ZDBhXHU3ZDQ1XHU3ZDRiXHU3ZDJlXHU3ZDMyXHU3ZDNmXHU3ZDM1XHU3ZDQ2XHU3ZDczXHU3ZDU2XHU3ZDRlXHU3ZDcyXHU3ZDY4XHU3ZDZl''@;'; put 'put ''XHU3ZDRmXHU3ZDYzXHU3ZDkzXHU3ZDg5XHU3ZDViXHU3ZDhmXHU3ZDdkXHU3ZDliXHU3ZGJhXHU3ZGFlXHU3ZGEzXHU3ZGI1XHU3ZGM3XHU3ZGJkXHU3ZGFiXHU3ZTNkXHU3ZGEyXHU3ZGFmXHU3ZGRjXHU3ZGI4XHU3ZDlmXHU3ZGIwXHU3ZGQ4XHU3ZGRkXHU3ZGU0XHU3ZGRlXHU3ZGZiXHU3''@;'; put 'put ''ZGYyXHU3ZGUxXHU3ZTA1XHU3ZTBhXHU3ZTIzXHU3ZTIxXHU3ZTEyXHU3ZTMxXHU3ZTFmXHU3ZTA5XHU3ZTBiXHU3ZTIyXHU3ZTQ2XHU3ZTY2XHU3ZTNiXHU3ZTM1XHU3ZTM5XHU3ZTQzXHU3ZTM3XHVmZmZkXHU3ZTMyXHU3ZTNhXHU3ZTY3XHU3ZTVkXHU3ZTU2XHU3ZTVlXHU3ZTU5XHU3ZTVh''@;'; put 'put ''XHU3ZTc5XHU3ZTZhXHU3ZTY5XHU3ZTdjXHU3ZTdiXHU3ZTgzXHU3ZGQ1XHU3ZTdkXHU4ZmFlXHU3ZTdmXHU3ZTg4XHU3ZTg5XHU3ZThjXHU3ZTkyXHU3ZTkwXHU3ZTkzXHU3ZTk0XHU3ZTk2XHU3ZThlXHU3ZTliXHU3ZTljXHU3ZjM4XHU3ZjNhXHU3ZjQ1XHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3''@;'; put 'put ''ZjUwXHU3ZjUxXHU3ZjU1XHU3ZjU0XHU3ZjU4XHU3ZjVmXHU3ZjYwXHU3ZjY4XHU3ZjY5XHU3ZjY3XHU3Zjc4XHU3ZjgyXHU3Zjg2XHU3ZjgzXHU3Zjg4XHU3Zjg3XHU3ZjhjXHU3Zjk0XHU3ZjllXHU3ZjlkXHU3ZjlhXHU3ZmEzXHU3ZmFmXHU3ZmIyXHU3ZmI5XHU3ZmFlXHU3ZmI2XHU3ZmI4''@;'; put 'put ''XHU4YjcxXHU3ZmM1XHU3ZmM2XHU3ZmNhXHU3ZmQ1XHU3ZmQ0XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3ZmYzXHU3ZmY5XHU5OGRjXHU4MDA2XHU4MDA0XHU4MDBiXHU4MDEyXHU4MDE4XHU4MDE5XHU4MDFjXHU4MDIxXHU4MDI4XHU4MDNmXHU4MDNiXHU4MDRhXHU4MDQ2XHU4MDUyXHU4MDU4XHU4''@;'; put 'put ''MDVhXHU4MDVmXHU4MDYyXHU4MDY4XHU4MDczXHU4MDcyXHU4MDcwXHU4MDc2XHU4MDc5XHU4MDdkXHU4MDdmXHU4MDg0XHU4MDg2XHU4MDg1XHU4MDliXHU4MDkzXHU4MDlhXHU4MGFkXHU1MTkwXHU4MGFjXHU4MGRiXHU4MGU1XHU4MGQ5XHU4MGRkXHU4MGM0XHU4MGRhXHU4MGQ2XHU4MTA5''@;'; put 'put ''XHU4MGVmXHU4MGYxXHU4MTFiXHU4MTI5XHU4MTIzXHU4MTJmXHU4MTRiXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1C''@;'; put 'put ''WzIyN11bRV0pO2ZvcihCWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Ylx1ODE0Nlx1ODEzZVx1ODE1M1x1ODE1MVx1ODBmY1x1ODE3MVx1ODE2ZVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4YVx1ODE4''@;'; put 'put ''MFx1ODE4Mlx1ODFhMFx1ODE5NVx1ODFhNFx1ODFhM1x1ODE1Zlx1ODE5M1x1ODFhOVx1ODFiMFx1ODFiNVx1ODFiZVx1ODFiOFx1ODFiZFx1ODFjMFx1ODFjMlx1ODFiYVx1ODFjOVx1ODFjZFx1ODFkMVx1ODFkOVx1ODFkOFx1ODFjOFx1ODFkYVx1ODFkZlx1ODFlMFx1ODFlN1x1ODFmYVx1''@;'; put 'put ''ODFmYlx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNVx1ODIwN1x1ODIwYVx1ODIwZFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyYlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1ODI1OFx1ODI1ZFx1ODI1YVx1ODI1Zlx1ODI2NFx1ZmZmZFx1ODI2Mlx1ODI2OFx1ODI2YVx1ODI2Ylx1ODIyZVx1ODI3''@;'; put 'put ''MVx1ODI3N1x1ODI3OFx1ODI3ZVx1ODI4ZFx1ODI5Mlx1ODJhYlx1ODI5Zlx1ODJiYlx1ODJhY1x1ODJlMVx1ODJlM1x1ODJkZlx1ODJkMlx1ODJmNFx1ODJmM1x1ODJmYVx1ODM5M1x1ODMwM1x1ODJmYlx1ODJmOVx1ODJkZVx1ODMwNlx1ODJkY1x1ODMwOVx1ODJkOVx1ODMzNVx1ODMzNFx1''@;'; put 'put ''ODMxNlx1ODMzMlx1ODMzMVx1ODM0MFx1ODMzOVx1ODM1MFx1ODM0NVx1ODMyZlx1ODMyYlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5YVx1ODNhYVx1ODM5Zlx1ODNhMlx1ODM5Nlx1ODMyM1x1ODM4ZVx1ODM4N1x1ODM4YVx1ODM3Y1x1ODNiNVx1ODM3M1x1ODM3NVx1ODNhMFx1ODM4OVx1ODNh''@;'; put 'put ''OFx1ODNmNFx1ODQxM1x1ODNlYlx1ODNjZVx1ODNmZFx1ODQwM1x1ODNkOFx1ODQwYlx1ODNjMVx1ODNmN1x1ODQwN1x1ODNlMFx1ODNmMlx1ODQwZFx1ODQyMlx1ODQyMFx1ODNiZFx1ODQzOFx1ODUwNlx1ODNmYlx1ODQ2ZFx1ODQyYVx1ODQzY1x1ODU1YVx1ODQ4NFx1ODQ3N1x1ODQ2Ylx1''@;'; put 'put ''ODRhZFx1ODQ2ZVx1ODQ4Mlx1ODQ2OVx1ODQ0Nlx1ODQyY1x1ODQ2Zlx1ODQ3OVx1ODQzNVx1ODRjYVx1ODQ2Mlx1ODRiOVx1ODRiZlx1ODQ5Zlx1ODRkOVx1ODRjZFx1ODRiYlx1ODRkYVx1ODRkMFx1ODRjMVx1ODRjNlx1ODRkNlx1ODRhMVx1ODUyMVx1ODRmZlx1ODRmNFx1ODUxN1x1ODUx''@;'; put 'put ''OFx1ODUyY1x1ODUxZlx1ODUxNVx1ODUxNFx1ODRmY1x1ODU0MFx1ODU2M1x1ODU1OFx1ODU0OFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtF''@;'; put 'put ''LExbNTgzNjgrRV09QlsyMjhdW0VdKTtmb3IoQlsyMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg1NDFcdTg2MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1''@;'; put 'put ''OWJcdTg1ZWFcdTg1ODdcdTg1OWNcdTg1NzdcdTg1N2VcdTg1OTBcdTg1YzlcdTg1YmFcdTg1Y2ZcdTg1YjlcdTg1ZDBcdTg1ZDVcdTg1ZGRcdTg1ZTVcdTg1ZGNcdTg1ZjlcdTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRc''@;'; put 'put ''dTRlNTVcdTg2NTRcdTg2NWZcdTg2NjdcdTg2NzFcdTg2OTNcdTg2YTNcdTg2YTlcdTg2YWFcdTg2OGJcdTg2OGNcdTg2YjZcdTg2YWZcdTg2YzRcdTg2YzZcdTg2YjBcdTg2YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWNcdWZmZmRcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3''@;'; put 'put ''MTJcdTg3MDZcdTg3MDhcdTg3MDBcdTg3MDNcdTg2ZmJcdTg3MTFcdTg3MDlcdTg3MGRcdTg2ZjlcdTg3MGFcdTg3MzRcdTg3M2ZcdTg3MzdcdTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFcdTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTlc''@;'; put 'put ''dTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVcdTg3YTJcdTg3OWZcdTg3ODJcdTg3YWZcdTg3Y2JcdTg3YmRcdTg3YzBcdTg3ZDBcdTk2ZDZcdTg3YWJcdTg3YzRcdTg3YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4''@;'; put 'put ''MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4MTVcdTg4MjJcdTg4MjFcdTg4MzFcdTg4MzZcdTg4MzlcdTg4MjdcdTg4M2JcdTg4NDRcdTg4NDJcdTg4NTJcdTg4NTlcdTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdc''@;'; put 'put ''dTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJcdTg4OGRcdTg4YTRcdTg4YjBcdTg4YmZcdTg4YjFcdTg4YzNcdTg4YzRcdTg4ZDRcdTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5''@;'; put 'put ''MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5NDRcdTg5M2JcdTg5MzZcdTg5MzhcdTg5NGNcdTg5MWRcdTg5NjBcdTg5NWVcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5''@;'; put 'put ''XVtFXV09NTg2MjQrRSxMWzU4NjI0K0VdPUJbMjI5XVtFXSk7Zm9yKEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OTY2XHU4OTY0XHU4OTZkXHU4OTZhXHU4OTZmXHU4OTc0XHU4OTc3XHU4OTdlXHU4OTgzXHU4OTg4XHU4''@;'; put 'put ''OThhXHU4OTkzXHU4OTk4XHU4OWExXHU4OWE5XHU4OWE2XHU4OWFjXHU4OWFmXHU4OWIyXHU4OWJhXHU4OWJkXHU4OWJmXHU4OWMwXHU4OWRhXHU4OWRjXHU4OWRkXHU4OWU3XHU4OWY0XHU4OWY4XHU4YTAzXHU4YTE2XHU4YTEwXHU4YTBjXHU4YTFiXHU4YTFkXHU4YTI1XHU4YTM2XHU4YTQx''@;'; put 'put ''XHU4YTViXHU4YTUyXHU4YTQ2XHU4YTQ4XHU4YTdjXHU4YTZkXHU4YTZjXHU4YTYyXHU4YTg1XHU4YTgyXHU4YTg0XHU4YWE4XHU4YWExXHU4YTkxXHU4YWE1XHU4YWE2XHU4YTlhXHU4YWEzXHU4YWM0XHU4YWNkXHU4YWMyXHU4YWRhXHU4YWViXHU4YWYzXHU4YWU3XHVmZmZkXHU4YWU0XHU4''@;'; put 'put ''YWYxXHU4YjE0XHU4YWUwXHU4YWUyXHU4YWY3XHU4YWRlXHU4YWRiXHU4YjBjXHU4YjA3XHU4YjFhXHU4YWUxXHU4YjE2XHU4YjEwXHU4YjE3XHU4YjIwXHU4YjMzXHU5N2FiXHU4YjI2XHU4YjJiXHU4YjNlXHU4YjI4XHU4YjQxXHU4YjRjXHU4YjRmXHU4YjRlXHU4YjQ5XHU4YjU2XHU4YjVi''@;'; put 'put ''XHU4YjVhXHU4YjZiXHU4YjVmXHU4YjZjXHU4YjZmXHU4Yjc0XHU4YjdkXHU4YjgwXHU4YjhjXHU4YjhlXHU4YjkyXHU4YjkzXHU4Yjk2XHU4Yjk5XHU4YjlhXHU4YzNhXHU4YzQxXHU4YzNmXHU4YzQ4XHU4YzRjXHU4YzRlXHU4YzUwXHU4YzU1XHU4YzYyXHU4YzZjXHU4Yzc4XHU4YzdhXHU4''@;'; put 'put ''YzgyXHU4Yzg5XHU4Yzg1XHU4YzhhXHU4YzhkXHU4YzhlXHU4Yzk0XHU4YzdjXHU4Yzk4XHU2MjFkXHU4Y2FkXHU4Y2FhXHU4Y2JkXHU4Y2IyXHU4Y2IzXHU4Y2FlXHU4Y2I2XHU4Y2M4XHU4Y2MxXHU4Y2U0XHU4Y2UzXHU4Y2RhXHU4Y2ZkXHU4Y2ZhXHU4Y2ZiXHU4ZDA0XHU4ZDA1XHU4ZDBh''@;'; put 'put ''XHU4ZDA3XHU4ZDBmXHU4ZDBkXHU4ZDEwXHU5ZjRlXHU4ZDEzXHU4Y2NkXHU4ZDE0XHU4ZDE2XHU4ZDY3XHU4ZDZkXHU4ZDcxXHU4ZDczXHU4ZDgxXHU4ZDk5XHU4ZGMyXHU4ZGJlXHU4ZGJhXHU4ZGNmXHU4ZGRhXHU4ZGQ2XHU4ZGNjXHU4ZGRiXHU4ZGNiXHU4ZGVhXHU4ZGViXHU4ZGRmXHU4''@;'; put 'put ''ZGUzXHU4ZGZjXHU4ZTA4XHU4ZTA5XHU4ZGZmXHU4ZTFkXHU4ZTFlXHU4ZTEwXHU4ZTFmXHU4ZTQyXHU4ZTM1XHU4ZTMwXHU4ZTM0XHU4ZTRhXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQo''@;'; put 'put ''MCkmJihtZVtCWzIzMF1bRV1dPTU4ODgwK0UsTFs1ODg4MCtFXT1CWzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU0N1x1OGU0OVx1OGU0Y1x1OGU1MFx1OGU0OFx1OGU1OVx1OGU2NFx1OGU2MFx1''@;'; put 'put ''OGUyYVx1OGU2M1x1OGU1NVx1OGU3Nlx1OGU3Mlx1OGU3Y1x1OGU4MVx1OGU4N1x1OGU4NVx1OGU4NFx1OGU4Ylx1OGU4YVx1OGU5M1x1OGU5MVx1OGU5NFx1OGU5OVx1OGVhYVx1OGVhMVx1OGVhY1x1OGViMFx1OGVjNlx1OGViMVx1OGViZVx1OGVjNVx1OGVjOFx1OGVjYlx1OGVkYlx1OGVl''@;'; put 'put ''M1x1OGVmY1x1OGVmYlx1OGVlYlx1OGVmZVx1OGYwYVx1OGYwNVx1OGYxNVx1OGYxMlx1OGYxOVx1OGYxM1x1OGYxY1x1OGYxZlx1OGYxYlx1OGYwY1x1OGYyNlx1OGYzM1x1OGYzYlx1OGYzOVx1OGY0NVx1OGY0Mlx1OGYzZVx1OGY0Y1x1OGY0OVx1OGY0Nlx1OGY0ZVx1OGY1N1x1OGY1Y1x1''@;'; put 'put ''ZmZmZFx1OGY2Mlx1OGY2M1x1OGY2NFx1OGY5Y1x1OGY5Zlx1OGZhM1x1OGZhZFx1OGZhZlx1OGZiN1x1OGZkYVx1OGZlNVx1OGZlMlx1OGZlYVx1OGZlZlx1OTA4N1x1OGZmNFx1OTAwNVx1OGZmOVx1OGZmYVx1OTAxMVx1OTAxNVx1OTAyMVx1OTAwZFx1OTAxZVx1OTAxNlx1OTAwYlx1OTAy''@;'; put 'put ''N1x1OTAzNlx1OTAzNVx1OTAzOVx1OGZmOFx1OTA0Zlx1OTA1MFx1OTA1MVx1OTA1Mlx1OTAwZVx1OTA0OVx1OTAzZVx1OTA1Nlx1OTA1OFx1OTA1ZVx1OTA2OFx1OTA2Zlx1OTA3Nlx1OTZhOFx1OTA3Mlx1OTA4Mlx1OTA3ZFx1OTA4MVx1OTA4MFx1OTA4YVx1OTA4OVx1OTA4Zlx1OTBhOFx1''@;'; put 'put ''OTBhZlx1OTBiMVx1OTBiNVx1OTBlMlx1OTBlNFx1NjI0OFx1OTBkYlx1OTEwMlx1OTExMlx1OTExOVx1OTEzMlx1OTEzMFx1OTE0YVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Ylx1OTE4OVx1OTE4Mlx1OTFhMlx1OTFhYlx1OTFhZlx1OTFhYVx1OTFi''@;'; put 'put ''NVx1OTFiNFx1OTFiYVx1OTFjMFx1OTFjMVx1OTFjOVx1OTFjYlx1OTFkMFx1OTFkNlx1OTFkZlx1OTFlMVx1OTFkYlx1OTFmY1x1OTFmNVx1OTFmNlx1OTIxZVx1OTFmZlx1OTIxNFx1OTIyY1x1OTIxNVx1OTIxMVx1OTI1ZVx1OTI1N1x1OTI0NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1''@;'; put 'put ''OTIzZlx1OTI0Ylx1OTI1MFx1OTI5Y1x1OTI5Nlx1OTI5M1x1OTI5Ylx1OTI1YVx1OTJjZlx1OTJiOVx1OTJiN1x1OTJlOVx1OTMwZlx1OTJmYVx1OTM0NFx1OTMyZVx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtF''@;'; put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzFdW0VdXT01OTEzNitFLExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMTlcdTkzMjJcdTkzMWFcdTkzMjNcdTkzM2FcdTkzMzVc''@;'; put 'put ''dTkzM2JcdTkzNWNcdTkzNjBcdTkzN2NcdTkzNmVcdTkzNTZcdTkzYjBcdTkzYWNcdTkzYWRcdTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkzZDBcdTkzYzhcdTkzZTRcdTk0MWFcdTk0MTRcdTk0MTNcdTk0MDNcdTk0MDdcdTk0MTBcdTk0''@;'; put 'put ''MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0M2FcdTk0NDFcdTk0NTJcdTk0NDRcdTk0NWJcdTk0NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFcdTk0N2NcdTk0N2VcdTk0ODFcdTk0N2ZcdTk1ODJcdTk1ODdcdTk1OGFcdTk1OTRcdTk1OTZc''@;'; put 'put ''dTk1OThcdTk1OTlcdWZmZmRcdTk1YTBcdTk1YThcdTk1YTdcdTk1YWRcdTk1YmNcdTk1YmJcdTk1YjlcdTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1ZDRcdTk1ZDZcdTk1ZGNcdTk1ZTFcdTk1ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2MmVcdTk2MmZcdTk2''@;'; put 'put ''NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2NzdcdTk2NWNcdTk2NWVcdTk2NWRcdTk2NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdcdTk2YjFcdTk2YjJcdTk2YjBcdTk2YjRcdTk2YjZcdTk2YjhcdTk2YjlcdTk2Y2VcdTk2Y2JcdTk2Yzlc''@;'; put 'put ''dTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRcdTk2ZDVcdTk2ZjlcdTk3MDRcdTk3MDZcdTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3MzBcdTk3MzlcdTk3M2RcdTk3M2VcdTk3NDRcdTk3NDZcdTk3NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3''@;'; put 'put ''NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUyZDJcdTk3NmJcdTk3NzFcdTk3NzlcdTk3ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThcdTk3YTZcdTk3YTNcdTk3YjNcdTk3YjRcdTk3YzNcdTk3YzZcdTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRc''@;'; put 'put ''dTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZcdTk3ZjVcdTk4MGZcdTk4MGNcdTk4MzhcdTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4NzBcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1''@;'; put 'put ''MzMhPT1CWzIzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMyXVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODcxXHU5ODc0XHU5ODczXHU5OGFh''@;'; put 'put ''XHU5OGFmXHU5OGIxXHU5OGI2XHU5OGM0XHU5OGMzXHU5OGM2XHU5OGU5XHU5OGViXHU5OTAzXHU5OTA5XHU5OTEyXHU5OTE0XHU5OTE4XHU5OTIxXHU5OTFkXHU5OTFlXHU5OTI0XHU5OTIwXHU5OTJjXHU5OTJlXHU5OTNkXHU5OTNlXHU5OTQyXHU5OTQ5XHU5OTQ1XHU5OTUwXHU5OTRiXHU5''@;'; put 'put ''OTUxXHU5OTUyXHU5OTRjXHU5OTU1XHU5OTk3XHU5OTk4XHU5OWE1XHU5OWFkXHU5OWFlXHU5OWJjXHU5OWRmXHU5OWRiXHU5OWRkXHU5OWQ4XHU5OWQxXHU5OWVkXHU5OWVlXHU5OWYxXHU5OWYyXHU5OWZiXHU5OWY4XHU5YTAxXHU5YTBmXHU5YTA1XHU5OWUyXHU5YTE5XHU5YTJiXHU5YTM3''@;'; put 'put ''XHU5YTQ1XHU5YTQyXHU5YTQwXHU5YTQzXHVmZmZkXHU5YTNlXHU5YTU1XHU5YTRkXHU5YTViXHU5YTU3XHU5YTVmXHU5YTYyXHU5YTY1XHU5YTY0XHU5YTY5XHU5YTZiXHU5YTZhXHU5YWFkXHU5YWIwXHU5YWJjXHU5YWMwXHU5YWNmXHU5YWQxXHU5YWQzXHU5YWQ0XHU5YWRlXHU5YWRmXHU5''@;'; put 'put ''YWUyXHU5YWUzXHU5YWU2XHU5YWVmXHU5YWViXHU5YWVlXHU5YWY0XHU5YWYxXHU5YWY3XHU5YWZiXHU5YjA2XHU5YjE4XHU5YjFhXHU5YjFmXHU5YjIyXHU5YjIzXHU5YjI1XHU5YjI3XHU5YjI4XHU5YjI5XHU5YjJhXHU5YjJlXHU5YjJmXHU5YjMyXHU5YjQ0XHU5YjQzXHU5YjRmXHU5YjRk''@;'; put 'put ''XHU5YjRlXHU5YjUxXHU5YjU4XHU5Yjc0XHU5YjkzXHU5YjgzXHU5YjkxXHU5Yjk2XHU5Yjk3XHU5YjlmXHU5YmEwXHU5YmE4XHU5YmI0XHU5YmMwXHU5YmNhXHU5YmI5XHU5YmM2XHU5YmNmXHU5YmQxXHU5YmQyXHU5YmUzXHU5YmUyXHU5YmU0XHU5YmQ0XHU5YmUxXHU5YzNhXHU5YmYyXHU5''@;'; put 'put ''YmYxXHU5YmYwXHU5YzE1XHU5YzE0XHU5YzA5XHU5YzEzXHU5YzBjXHU5YzA2XHU5YzA4XHU5YzEyXHU5YzBhXHU5YzA0XHU5YzJlXHU5YzFiXHU5YzI1XHU5YzI0XHU5YzIxXHU5YzMwXHU5YzQ3XHU5YzMyXHU5YzQ2XHU5YzNlXHU5YzVhXHU5YzYwXHU5YzY3XHU5Yzc2XHU5Yzc4XHU5Y2U3''@;'; put 'put ''XHU5Y2VjXHU5Y2YwXHU5ZDA5XHU5ZDA4XHU5Y2ViXHU5ZDAzXHU5ZDA2XHU5ZDJhXHU5ZDI2XHU5ZGFmXHU5ZDIzXHU5ZDFmXHU5ZDQ0XHU5ZDE1XHU5ZDEyXHU5ZDQxXHU5ZDNmXHU5ZDNlXHU5ZDQ2XHU5ZDQ4XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5s''@;'; put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsyMzNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWQ1ZFx1OWQ1''@;'; put 'put ''ZVx1OWQ2NFx1OWQ1MVx1OWQ1MFx1OWQ1OVx1OWQ3Mlx1OWQ4OVx1OWQ4N1x1OWRhYlx1OWQ2Zlx1OWQ3YVx1OWQ5YVx1OWRhNFx1OWRhOVx1OWRiMlx1OWRjNFx1OWRjMVx1OWRiYlx1OWRiOFx1OWRiYVx1OWRjNlx1OWRjZlx1OWRjMlx1OWRkOVx1OWRkM1x1OWRmOFx1OWRlNlx1OWRlZFx1''@;'; put 'put ''OWRlZlx1OWRmZFx1OWUxYVx1OWUxYlx1OWUxZVx1OWU3NVx1OWU3OVx1OWU3ZFx1OWU4MVx1OWU4OFx1OWU4Ylx1OWU4Y1x1OWU5Mlx1OWU5NVx1OWU5MVx1OWU5ZFx1OWVhNVx1OWVhOVx1OWViOFx1OWVhYVx1OWVhZFx1OTc2MVx1OWVjY1x1OWVjZVx1OWVjZlx1OWVkMFx1OWVkNFx1OWVk''@;'; put 'put ''Y1x1OWVkZVx1OWVkZFx1OWVlMFx1OWVlNVx1OWVlOFx1OWVlZlx1ZmZmZFx1OWVmNFx1OWVmNlx1OWVmN1x1OWVmOVx1OWVmYlx1OWVmY1x1OWVmZFx1OWYwN1x1OWYwOFx1NzZiN1x1OWYxNVx1OWYyMVx1OWYyY1x1OWYzZVx1OWY0YVx1OWY1Mlx1OWY1NFx1OWY2M1x1OWY1Zlx1OWY2MFx1''@;'; put 'put ''OWY2MVx1OWY2Nlx1OWY2N1x1OWY2Y1x1OWY2YVx1OWY3N1x1OWY3Mlx1OWY3Nlx1OWY5NVx1OWY5Y1x1OWZhMFx1NTgyZlx1NjljN1x1OTA1OVx1NzQ2NFx1NTFkY1x1NzE5OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; put 'put ''MDtFIT1CWzIzNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtmb3IoQlsyMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlcdTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZc''@;'; put 'put ''dTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUwZDhcdTUxNGFcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0''@;'; put 'put ''YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3YzhcdTU3YzdcdWZhMGZcdWZmZmRcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFc''@;'; put 'put ''dTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVkYjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjdcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYz''@;'; put 'put ''ZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBcdTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBc''@;'; put 'put ''dTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZhMTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZk''@;'; put 'put ''ZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdcdTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjFcdWZmZmRcdWZmZmRcdWZmZmQi''@;'; put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsyMzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM3XVtFXV09NjA2NzIrRSxMWzYwNjcyK0VdPUJbMjM3XVtFXSk7Zm9yKEJbMjM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU3MmJlXHU3MzI0XHVmYTE2XHU3Mzc3XHU3M2JkXHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3NDJlXHU3NDYyXHU3NDg5XHU3NDlmXHU3NTAxXHU3NTZmXHU3NjgyXHU3NjljXHU3NjllXHU3NjliXHU3NmE2''@;'; put 'put ''XHVmYTE3XHU3NzQ2XHU1MmFmXHU3ODIxXHU3ODRlXHU3ODY0XHU3ODdhXHU3OTMwXHVmYTE4XHVmYTE5XHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFjXHU3YWViXHU3YjllXHVmYTFkXHU3ZDQ4XHU3ZDVjXHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUyXHU3ZjQ3XHU3''@;'; put 'put ''ZmExXHVmYTFlXHU4MzAxXHU4MzYyXHU4MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4XHU4NGI0XHU4NTUzXHU4NTU5XHVmZmZkXHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4OGY1XHU4YTEyXHU4YTM3XHU4YTc5XHU4YWE3XHU4YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4YjUz''@;'; put 'put ''XHU4YjdmXHU4Y2YwXHU4Y2Y0XHU4ZDEyXHU4ZDc2XHVmYTIzXHU4ZWNmXHVmYTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhXHU5MWQ3XHU5MWRlXHU5MWVkXHU5MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEwXHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNjXHU5''@;'; put 'put ''MjRlXHU5MjU5XHU5MjUxXHU5MjM5XHU5MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5MzI1XHU5MzIxXHU5MmZiXHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5M2M2''@;'; put 'put ''XHU5M2RlXHU5M2Y4XHU5NDMxXHU5NDQ1XHU5NDQ4XHU5NTkyXHVmOWRjXHVmYTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUxXHU5NzU1XHU5ODU3XHU5ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJjXHU5OTllXHU5YTRlXHU5YWQ5XHU5YWRjXHU5''@;'; put 'put ''Yjc1XHU5YjcyXHU5YjhmXHU5YmIxXHU5YmJiXHU5YzAwXHU5ZDcwXHU5ZDZiXHVmYTJkXHU5ZTE5XHU5ZWQxXHVmZmZkXHVmZmZkXHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmUyXHVmZmU0XHVmZjA3XHVmZjAyXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOF1bRV1dPTYwOTI4K0UsTFs2MDkyOCtFXT1CWzIzOF1bRV0pO2ZvcihCWzI1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjE3MFx1MjE3MVx1MjE3Mlx1MjE3M1x1MjE3NFx1MjE3NVx1MjE3Nlx1MjE3N1x1MjE3OFx1MjE3OVx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1MjE2OFx1MjE2OVx1ZmZlMlx1ZmZlNFx1ZmYw''@;'; put 'put ''N1x1ZmYwMlx1MzIzMVx1MjExNlx1MjEyMVx1MjIzNVx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1''@;'; put 'put ''NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1ZmZmZFx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5''@;'; put 'put ''M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1''@;'; put 'put ''NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEz''@;'; put 'put ''N1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1''@;'; put 'put ''ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4''@;'; put 'put ''N1x1NmQ2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTBdW0VdXT02NGUzK0UsTFs2NGUzK0VdPUJbMjUwXVtFXSk7Zm9yKEJbMjUxXT0iXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDk2XHU2ZGFjXHU2ZGNmXHU2ZGY4XHU2ZGYyXHU2ZGZjXHU2ZTM5XHU2ZTVjXHU2ZTI3XHU2ZTNjXHU2ZWJmXHU2Zjg4XHU2ZmI1XHU2ZmY1XHU3MDA1XHU3MDA3XHU3MDI4XHU3MDg1XHU3MGFiXHU3MTBmXHU3MTA0''@;'; put 'put ''XHU3MTVjXHU3MTQ2XHU3MTQ3XHVmYTE1XHU3MWMxXHU3MWZlXHU3MmIxXHU3MmJlXHU3MzI0XHVmYTE2XHU3Mzc3XHU3M2JkXHU3M2M5XHU3M2Q2XHU3M2UzXHU3M2QyXHU3NDA3XHU3M2Y1XHU3NDI2XHU3NDJhXHU3NDI5XHU3NDJlXHU3NDYyXHU3NDg5XHU3NDlmXHU3NTAxXHU3NTZmXHU3''@;'; put 'put ''NjgyXHU3NjljXHU3NjllXHU3NjliXHU3NmE2XHVmYTE3XHU3NzQ2XHU1MmFmXHU3ODIxXHU3ODRlXHU3ODY0XHU3ODdhXHU3OTMwXHVmYTE4XHVmYTE5XHVmZmZkXHVmYTFhXHU3OTk0XHVmYTFiXHU3OTliXHU3YWQxXHU3YWU3XHVmYTFjXHU3YWViXHU3YjllXHVmYTFkXHU3ZDQ4XHU3ZDVj''@;'; put 'put ''XHU3ZGI3XHU3ZGEwXHU3ZGQ2XHU3ZTUyXHU3ZjQ3XHU3ZmExXHVmYTFlXHU4MzAxXHU4MzYyXHU4MzdmXHU4M2M3XHU4M2Y2XHU4NDQ4XHU4NGI0XHU4NTUzXHU4NTU5XHU4NTZiXHVmYTFmXHU4NWIwXHVmYTIwXHVmYTIxXHU4ODA3XHU4OGY1XHU4YTEyXHU4YTM3XHU4YTc5XHU4YWE3XHU4''@;'; put 'put ''YWJlXHU4YWRmXHVmYTIyXHU4YWY2XHU4YjUzXHU4YjdmXHU4Y2YwXHU4Y2Y0XHU4ZDEyXHU4ZDc2XHVmYTIzXHU4ZWNmXHVmYTI0XHVmYTI1XHU5MDY3XHU5MGRlXHVmYTI2XHU5MTE1XHU5MTI3XHU5MWRhXHU5MWQ3XHU5MWRlXHU5MWVkXHU5MWVlXHU5MWU0XHU5MWU1XHU5MjA2XHU5MjEw''@;'; put 'put ''XHU5MjBhXHU5MjNhXHU5MjQwXHU5MjNjXHU5MjRlXHU5MjU5XHU5MjUxXHU5MjM5XHU5MjY3XHU5MmE3XHU5Mjc3XHU5Mjc4XHU5MmU3XHU5MmQ3XHU5MmQ5XHU5MmQwXHVmYTI3XHU5MmQ1XHU5MmUwXHU5MmQzXHU5MzI1XHU5MzIxXHU5MmZiXHVmYTI4XHU5MzFlXHU5MmZmXHU5MzFkXHU5''@;'; put 'put ''MzAyXHU5MzcwXHU5MzU3XHU5M2E0XHU5M2M2XHU5M2RlXHU5M2Y4XHU5NDMxXHU5NDQ1XHU5NDQ4XHU5NTkyXHVmOWRjXHVmYTI5XHU5NjlkXHU5NmFmXHU5NzMzXHU5NzNiXHU5NzQzXHU5NzRkXHU5NzRmXHU5NzUxXHU5NzU1XHU5ODU3XHU5ODY1XHVmYTJhXHVmYTJiXHU5OTI3XHVmYTJj''@;'; put 'put ''XHU5OTllXHU5YTRlXHU5YWQ5XHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1MV1bRV1dPTY0MjU2K0UsTFs2NDI1NitFXT1CWzI1MV1bRV0pO2ZvcihCWzI1Ml09Ilx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTJdW0VdXT02NDUxMitFLExbNjQ1MTIrRV09QlsyNTJdW0VdKTty''@;'; put 'put ''ZXR1cm57ZW5jOm1lLGRlYzpMfX0oKSxKZVs5MzZdPWZ1bmN0aW9uKCl7dmFyIEUsTD1bXSxtZT17fSxCPVtdO2ZvcihCWzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlc''@;'; put 'put ''eDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzBdW0VdXT0wK0UsTFswK0VdPUJbMF1bRV0p''@;'; put 'put ''O2ZvcihCWzEyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMlx1NGUwNFx1NGUwNVx1NGUwNlx1NGUwZlx1NGUxMlx1NGUxN1x1NGUxZlx1NGUyMFx1NGUyMVx1NGUyM1x1NGUyNlx1NGUyOVx1NGUyZVx1NGUyZlx1NGUzMVx1''@;'; put 'put ''NGUzM1x1NGUzNVx1NGUzN1x1NGUzY1x1NGU0MFx1NGU0MVx1NGU0Mlx1NGU0NFx1NGU0Nlx1NGU0YVx1NGU1MVx1NGU1NVx1NGU1N1x1NGU1YVx1NGU1Ylx1NGU2Mlx1NGU2M1x1NGU2NFx1NGU2NVx1NGU2N1x1NGU2OFx1NGU2YVx1NGU2Ylx1NGU2Y1x1NGU2ZFx1NGU2ZVx1NGU2Zlx1NGU3''@;'; put 'put ''Mlx1NGU3NFx1NGU3NVx1NGU3Nlx1NGU3N1x1NGU3OFx1NGU3OVx1NGU3YVx1NGU3Ylx1NGU3Y1x1NGU3ZFx1NGU3Zlx1NGU4MFx1NGU4MVx1NGU4Mlx1NGU4M1x1NGU4NFx1NGU4NVx1NGU4N1x1NGU4YVx1ZmZmZFx1NGU5MFx1NGU5Nlx1NGU5N1x1NGU5OVx1NGU5Y1x1NGU5ZFx1NGU5ZVx1''@;'; put 'put ''NGVhM1x1NGVhYVx1NGVhZlx1NGViMFx1NGViMVx1NGViNFx1NGViNlx1NGViN1x1NGViOFx1NGViOVx1NGViY1x1NGViZFx1NGViZVx1NGVjOFx1NGVjY1x1NGVjZlx1NGVkMFx1NGVkMlx1NGVkYVx1NGVkYlx1NGVkY1x1NGVlMFx1NGVlMlx1NGVlNlx1NGVlN1x1NGVlOVx1NGVlZFx1NGVl''@;'; put 'put ''ZVx1NGVlZlx1NGVmMVx1NGVmNFx1NGVmOFx1NGVmOVx1NGVmYVx1NGVmY1x1NGVmZVx1NGYwMFx1NGYwMlx1NGYwM1x1NGYwNFx1NGYwNVx1NGYwNlx1NGYwN1x1NGYwOFx1NGYwYlx1NGYwY1x1NGYxMlx1NGYxM1x1NGYxNFx1NGYxNVx1NGYxNlx1NGYxY1x1NGYxZFx1NGYyMVx1NGYyM1x1''@;'; put 'put ''NGYyOFx1NGYyOVx1NGYyY1x1NGYyZFx1NGYyZVx1NGYzMVx1NGYzM1x1NGYzNVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZVx1NGYzZlx1NGY0MFx1NGY0MVx1NGY0Mlx1NGY0NFx1NGY0NVx1NGY0N1x1NGY0OFx1NGY0OVx1NGY0YVx1NGY0Ylx1NGY0Y1x1NGY1Mlx1NGY1NFx1NGY1Nlx1NGY2''@;'; put 'put ''MVx1NGY2Mlx1NGY2Nlx1NGY2OFx1NGY2YVx1NGY2Ylx1NGY2ZFx1NGY2ZVx1NGY3MVx1NGY3Mlx1NGY3NVx1NGY3N1x1NGY3OFx1NGY3OVx1NGY3YVx1NGY3ZFx1NGY4MFx1NGY4MVx1NGY4Mlx1NGY4NVx1NGY4Nlx1NGY4N1x1NGY4YVx1NGY4Y1x1NGY4ZVx1NGY5MFx1NGY5Mlx1NGY5M1x1''@;'; put 'put ''NGY5NVx1NGY5Nlx1NGY5OFx1NGY5OVx1NGY5YVx1NGY5Y1x1NGY5ZVx1NGY5Zlx1NGZhMVx1NGZhMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEyOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTI5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMjldW0VdXT0zMzAyNCtFLExbMzMwMjQr''@;'; put 'put ''RV09QlsxMjldW0VdKTtmb3IoQlsxMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmYTRcdTRmYWJcdTRmYWRcdTRmYjBcdTRmYjFcdTRmYjJcdTRmYjNcdTRmYjRcdTRmYjZcdTRmYjdcdTRmYjhcdTRmYjlcdTRmYmFcdTRmYmJc''@;'; put 'put ''dTRmYmNcdTRmYmRcdTRmYmVcdTRmYzBcdTRmYzFcdTRmYzJcdTRmYzZcdTRmYzdcdTRmYzhcdTRmYzlcdTRmY2JcdTRmY2NcdTRmY2RcdTRmZDJcdTRmZDNcdTRmZDRcdTRmZDVcdTRmZDZcdTRmZDlcdTRmZGJcdTRmZTBcdTRmZTJcdTRmZTRcdTRmZTVcdTRmZTdcdTRmZWJcdTRmZWNcdTRm''@;'; put 'put ''ZjBcdTRmZjJcdTRmZjRcdTRmZjVcdTRmZjZcdTRmZjdcdTRmZjlcdTRmZmJcdTRmZmNcdTRmZmRcdTRmZmZcdTUwMDBcdTUwMDFcdTUwMDJcdTUwMDNcdTUwMDRcdTUwMDVcdTUwMDZcdTUwMDdcdTUwMDhcdTUwMDlcdTUwMGFcdWZmZmRcdTUwMGJcdTUwMGVcdTUwMTBcdTUwMTFcdTUwMTNc''@;'; put 'put ''dTUwMTVcdTUwMTZcdTUwMTdcdTUwMWJcdTUwMWRcdTUwMWVcdTUwMjBcdTUwMjJcdTUwMjNcdTUwMjRcdTUwMjdcdTUwMmJcdTUwMmZcdTUwMzBcdTUwMzFcdTUwMzJcdTUwMzNcdTUwMzRcdTUwMzVcdTUwMzZcdTUwMzdcdTUwMzhcdTUwMzlcdTUwM2JcdTUwM2RcdTUwM2ZcdTUwNDBcdTUw''@;'; put 'put ''NDFcdTUwNDJcdTUwNDRcdTUwNDVcdTUwNDZcdTUwNDlcdTUwNGFcdTUwNGJcdTUwNGRcdTUwNTBcdTUwNTFcdTUwNTJcdTUwNTNcdTUwNTRcdTUwNTZcdTUwNTdcdTUwNThcdTUwNTlcdTUwNWJcdTUwNWRcdTUwNWVcdTUwNWZcdTUwNjBcdTUwNjFcdTUwNjJcdTUwNjNcdTUwNjRcdTUwNjZc''@;'; put 'put ''dTUwNjdcdTUwNjhcdTUwNjlcdTUwNmFcdTUwNmJcdTUwNmRcdTUwNmVcdTUwNmZcdTUwNzBcdTUwNzFcdTUwNzJcdTUwNzNcdTUwNzRcdTUwNzVcdTUwNzhcdTUwNzlcdTUwN2FcdTUwN2NcdTUwN2RcdTUwODFcdTUwODJcdTUwODNcdTUwODRcdTUwODZcdTUwODdcdTUwODlcdTUwOGFcdTUw''@;'; put 'put ''OGJcdTUwOGNcdTUwOGVcdTUwOGZcdTUwOTBcdTUwOTFcdTUwOTJcdTUwOTNcdTUwOTRcdTUwOTVcdTUwOTZcdTUwOTdcdTUwOThcdTUwOTlcdTUwOWFcdTUwOWJcdTUwOWNcdTUwOWRcdTUwOWVcdTUwOWZcdTUwYTBcdTUwYTFcdTUwYTJcdTUwYTRcdTUwYTZcdTUwYWFcdTUwYWJcdTUwYWRc''@;'; put 'put ''dTUwYWVcdTUwYWZcdTUwYjBcdTUwYjFcdTUwYjNcdTUwYjRcdTUwYjVcdTUwYjZcdTUwYjdcdTUwYjhcdTUwYjlcdTUwYmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMwXVtFXV09MzMy''@;'; put 'put ''ODArRSxMWzMzMjgwK0VdPUJbMTMwXVtFXSk7Zm9yKEJbMTMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MGJkXHU1MGJlXHU1MGJmXHU1MGMwXHU1MGMxXHU1MGMyXHU1MGMzXHU1MGM0XHU1MGM1XHU1MGM2XHU1MGM3XHU1MGM4''@;'; put 'put ''XHU1MGM5XHU1MGNhXHU1MGNiXHU1MGNjXHU1MGNkXHU1MGNlXHU1MGQwXHU1MGQxXHU1MGQyXHU1MGQzXHU1MGQ0XHU1MGQ1XHU1MGQ3XHU1MGQ4XHU1MGQ5XHU1MGRiXHU1MGRjXHU1MGRkXHU1MGRlXHU1MGRmXHU1MGUwXHU1MGUxXHU1MGUyXHU1MGUzXHU1MGU0XHU1MGU1XHU1MGU4XHU1''@;'; put 'put ''MGU5XHU1MGVhXHU1MGViXHU1MGVmXHU1MGYwXHU1MGYxXHU1MGYyXHU1MGY0XHU1MGY2XHU1MGY3XHU1MGY4XHU1MGY5XHU1MGZhXHU1MGZjXHU1MGZkXHU1MGZlXHU1MGZmXHU1MTAwXHU1MTAxXHU1MTAyXHU1MTAzXHU1MTA0XHU1MTA1XHU1MTA4XHVmZmZkXHU1MTA5XHU1MTBhXHU1MTBj''@;'; put 'put ''XHU1MTBkXHU1MTBlXHU1MTBmXHU1MTEwXHU1MTExXHU1MTEzXHU1MTE0XHU1MTE1XHU1MTE2XHU1MTE3XHU1MTE4XHU1MTE5XHU1MTFhXHU1MTFiXHU1MTFjXHU1MTFkXHU1MTFlXHU1MTFmXHU1MTIwXHU1MTIyXHU1MTIzXHU1MTI0XHU1MTI1XHU1MTI2XHU1MTI3XHU1MTI4XHU1MTI5XHU1''@;'; put 'put ''MTJhXHU1MTJiXHU1MTJjXHU1MTJkXHU1MTJlXHU1MTJmXHU1MTMwXHU1MTMxXHU1MTMyXHU1MTMzXHU1MTM0XHU1MTM1XHU1MTM2XHU1MTM3XHU1MTM4XHU1MTM5XHU1MTNhXHU1MTNiXHU1MTNjXHU1MTNkXHU1MTNlXHU1MTQyXHU1MTQ3XHU1MTRhXHU1MTRjXHU1MTRlXHU1MTRmXHU1MTUw''@;'; put 'put ''XHU1MTUyXHU1MTUzXHU1MTU3XHU1MTU4XHU1MTU5XHU1MTViXHU1MTVkXHU1MTVlXHU1MTVmXHU1MTYwXHU1MTYxXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3XHU1MTY5XHU1MTZhXHU1MTZmXHU1MTcyXHU1MTdhXHU1MTdlXHU1MTdmXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThhXHU1''@;'; put 'put ''MThiXHU1MThlXHU1MThmXHU1MTkwXHU1MTkxXHU1MTkzXHU1MTk0XHU1MTk4XHU1MTlhXHU1MTlkXHU1MTllXHU1MTlmXHU1MWExXHU1MWEzXHU1MWE2XHU1MWE3XHU1MWE4XHU1MWE5XHU1MWFhXHU1MWFkXHU1MWFlXHU1MWI0XHU1MWI4XHU1MWI5XHU1MWJhXHU1MWJlXHU1MWJmXHU1MWMx''@;'; put 'put ''XHU1MWMyXHU1MWMzXHU1MWM1XHU1MWM4XHU1MWNhXHU1MWNkXHU1MWNlXHU1MWQwXHU1MWQyXHU1MWQzXHU1MWQ0XHU1MWQ1XHU1MWQ2XHU1MWQ3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; put 'put ''WzEzMV1bRV1dPTMzNTM2K0UsTFszMzUzNitFXT1CWzEzMV1bRV0pO2ZvcihCWzEzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTFkOFx1NTFkOVx1NTFkYVx1NTFkY1x1NTFkZVx1NTFkZlx1NTFlMlx1NTFlM1x1NTFlNVx1NTFl''@;'; put 'put ''Nlx1NTFlN1x1NTFlOFx1NTFlOVx1NTFlYVx1NTFlY1x1NTFlZVx1NTFmMVx1NTFmMlx1NTFmNFx1NTFmN1x1NTFmZVx1NTIwNFx1NTIwNVx1NTIwOVx1NTIwYlx1NTIwY1x1NTIwZlx1NTIxMFx1NTIxM1x1NTIxNFx1NTIxNVx1NTIxY1x1NTIxZVx1NTIxZlx1NTIyMVx1NTIyMlx1NTIyM1x1''@;'; put 'put ''NTIyNVx1NTIyNlx1NTIyN1x1NTIyYVx1NTIyY1x1NTIyZlx1NTIzMVx1NTIzMlx1NTIzNFx1NTIzNVx1NTIzY1x1NTIzZVx1NTI0NFx1NTI0NVx1NTI0Nlx1NTI0N1x1NTI0OFx1NTI0OVx1NTI0Ylx1NTI0ZVx1NTI0Zlx1NTI1Mlx1NTI1M1x1NTI1NVx1NTI1N1x1NTI1OFx1ZmZmZFx1NTI1''@;'; put 'put ''OVx1NTI1YVx1NTI1Ylx1NTI1ZFx1NTI1Zlx1NTI2MFx1NTI2Mlx1NTI2M1x1NTI2NFx1NTI2Nlx1NTI2OFx1NTI2Ylx1NTI2Y1x1NTI2ZFx1NTI2ZVx1NTI3MFx1NTI3MVx1NTI3M1x1NTI3NFx1NTI3NVx1NTI3Nlx1NTI3N1x1NTI3OFx1NTI3OVx1NTI3YVx1NTI3Ylx1NTI3Y1x1NTI3ZVx1''@;'; put 'put ''NTI4MFx1NTI4M1x1NTI4NFx1NTI4NVx1NTI4Nlx1NTI4N1x1NTI4OVx1NTI4YVx1NTI4Ylx1NTI4Y1x1NTI4ZFx1NTI4ZVx1NTI4Zlx1NTI5MVx1NTI5Mlx1NTI5NFx1NTI5NVx1NTI5Nlx1NTI5N1x1NTI5OFx1NTI5OVx1NTI5YVx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1NTJhN1x1NTJh''@;'; put 'put ''ZVx1NTJhZlx1NTJiMFx1NTJiNFx1NTJiNVx1NTJiNlx1NTJiN1x1NTJiOFx1NTJiOVx1NTJiYVx1NTJiYlx1NTJiY1x1NTJiZFx1NTJjMFx1NTJjMVx1NTJjMlx1NTJjNFx1NTJjNVx1NTJjNlx1NTJjOFx1NTJjYVx1NTJjY1x1NTJjZFx1NTJjZVx1NTJjZlx1NTJkMVx1NTJkM1x1NTJkNFx1''@;'; put 'put ''NTJkNVx1NTJkN1x1NTJkOVx1NTJkYVx1NTJkYlx1NTJkY1x1NTJkZFx1NTJkZVx1NTJlMFx1NTJlMVx1NTJlMlx1NTJlM1x1NTJlNVx1NTJlNlx1NTJlN1x1NTJlOFx1NTJlOVx1NTJlYVx1NTJlYlx1NTJlY1x1NTJlZFx1NTJlZVx1NTJlZlx1NTJmMVx1NTJmMlx1NTJmM1x1NTJmNFx1NTJm''@;'; put 'put ''NVx1NTJmNlx1NTJmN1x1NTJmOFx1NTJmYlx1NTJmY1x1NTJmZFx1NTMwMVx1NTMwMlx1NTMwM1x1NTMwNFx1NTMwN1x1NTMwOVx1NTMwYVx1NTMwYlx1NTMwY1x1NTMwZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMyXVtFXS5jaGFyQ29k''@;'; put 'put ''ZUF0KDApJiYobWVbQlsxMzJdW0VdXT0zMzc5MitFLExbMzM3OTIrRV09QlsxMzJdW0VdKTtmb3IoQlsxMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUzMTFcdTUzMTJcdTUzMTNcdTUzMTRcdTUzMThcdTUzMWJcdTUzMWNcdTUz''@;'; put 'put ''MWVcdTUzMWZcdTUzMjJcdTUzMjRcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUzMmJcdTUzMmNcdTUzMmRcdTUzMmZcdTUzMzBcdTUzMzFcdTUzMzJcdTUzMzNcdTUzMzRcdTUzMzVcdTUzMzZcdTUzMzdcdTUzMzhcdTUzM2NcdTUzM2RcdTUzNDBcdTUzNDJcdTUzNDRcdTUzNDZcdTUzNGJc''@;'; put 'put ''dTUzNGNcdTUzNGRcdTUzNTBcdTUzNTRcdTUzNThcdTUzNTlcdTUzNWJcdTUzNWRcdTUzNjVcdTUzNjhcdTUzNmFcdTUzNmNcdTUzNmRcdTUzNzJcdTUzNzZcdTUzNzlcdTUzN2JcdTUzN2NcdTUzN2RcdTUzN2VcdTUzODBcdTUzODFcdTUzODNcdTUzODdcdTUzODhcdTUzOGFcdTUzOGVcdTUz''@;'; put 'put ''OGZcdWZmZmRcdTUzOTBcdTUzOTFcdTUzOTJcdTUzOTNcdTUzOTRcdTUzOTZcdTUzOTdcdTUzOTlcdTUzOWJcdTUzOWNcdTUzOWVcdTUzYTBcdTUzYTFcdTUzYTRcdTUzYTdcdTUzYWFcdTUzYWJcdTUzYWNcdTUzYWRcdTUzYWZcdTUzYjBcdTUzYjFcdTUzYjJcdTUzYjNcdTUzYjRcdTUzYjVc''@;'; put 'put ''dTUzYjdcdTUzYjhcdTUzYjlcdTUzYmFcdTUzYmNcdTUzYmRcdTUzYmVcdTUzYzBcdTUzYzNcdTUzYzRcdTUzYzVcdTUzYzZcdTUzYzdcdTUzY2VcdTUzY2ZcdTUzZDBcdTUzZDJcdTUzZDNcdTUzZDVcdTUzZGFcdTUzZGNcdTUzZGRcdTUzZGVcdTUzZTFcdTUzZTJcdTUzZTdcdTUzZjRcdTUz''@;'; put 'put ''ZmFcdTUzZmVcdTUzZmZcdTU0MDBcdTU0MDJcdTU0MDVcdTU0MDdcdTU0MGJcdTU0MTRcdTU0MThcdTU0MTlcdTU0MWFcdTU0MWNcdTU0MjJcdTU0MjRcdTU0MjVcdTU0MmFcdTU0MzBcdTU0MzNcdTU0MzZcdTU0MzdcdTU0M2FcdTU0M2RcdTU0M2ZcdTU0NDFcdTU0NDJcdTU0NDRcdTU0NDVc''@;'; put 'put ''dTU0NDdcdTU0NDlcdTU0NGNcdTU0NGRcdTU0NGVcdTU0NGZcdTU0NTFcdTU0NWFcdTU0NWRcdTU0NWVcdTU0NWZcdTU0NjBcdTU0NjFcdTU0NjNcdTU0NjVcdTU0NjdcdTU0NjlcdTU0NmFcdTU0NmJcdTU0NmNcdTU0NmRcdTU0NmVcdTU0NmZcdTU0NzBcdTU0NzRcdTU0NzlcdTU0N2FcdTU0''@;'; put 'put ''N2VcdTU0N2ZcdTU0ODFcdTU0ODNcdTU0ODVcdTU0ODdcdTU0ODhcdTU0ODlcdTU0OGFcdTU0OGRcdTU0OTFcdTU0OTNcdTU0OTdcdTU0OThcdTU0OWNcdTU0OWVcdTU0OWZcdTU0YTBcdTU0YTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEz''@;'; put 'put ''M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMzXVtFXV09MzQwNDgrRSxMWzM0MDQ4K0VdPUJbMTMzXVtFXSk7Zm9yKEJbMTM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NGEyXHU1NGE1XHU1NGFlXHU1NGIwXHU1NGIyXHU1''@;'; put 'put ''NGI1XHU1NGI2XHU1NGI3XHU1NGI5XHU1NGJhXHU1NGJjXHU1NGJlXHU1NGMzXHU1NGM1XHU1NGNhXHU1NGNiXHU1NGQ2XHU1NGQ4XHU1NGRiXHU1NGUwXHU1NGUxXHU1NGUyXHU1NGUzXHU1NGU0XHU1NGViXHU1NGVjXHU1NGVmXHU1NGYwXHU1NGYxXHU1NGY0XHU1NGY1XHU1NGY2XHU1NGY3''@;'; put 'put ''XHU1NGY4XHU1NGY5XHU1NGZiXHU1NGZlXHU1NTAwXHU1NTAyXHU1NTAzXHU1NTA0XHU1NTA1XHU1NTA4XHU1NTBhXHU1NTBiXHU1NTBjXHU1NTBkXHU1NTBlXHU1NTEyXHU1NTEzXHU1NTE1XHU1NTE2XHU1NTE3XHU1NTE4XHU1NTE5XHU1NTFhXHU1NTFjXHU1NTFkXHU1NTFlXHU1NTFmXHU1''@;'; put 'put ''NTIxXHU1NTI1XHU1NTI2XHVmZmZkXHU1NTI4XHU1NTI5XHU1NTJiXHU1NTJkXHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNhXHU1NTNiXHU1NTNkXHU1NTQwXHU1NTQyXHU1NTQ1XHU1NTQ3XHU1NTQ4XHU1NTRiXHU1NTRjXHU1NTRkXHU1NTRlXHU1NTRmXHU1NTUx''@;'; put 'put ''XHU1NTUyXHU1NTUzXHU1NTU0XHU1NTU3XHU1NTU4XHU1NTU5XHU1NTVhXHU1NTViXHU1NTVkXHU1NTVlXHU1NTVmXHU1NTYwXHU1NTYyXHU1NTYzXHU1NTY4XHU1NTY5XHU1NTZiXHU1NTZmXHU1NTcwXHU1NTcxXHU1NTcyXHU1NTczXHU1NTc0XHU1NTc5XHU1NTdhXHU1NTdkXHU1NTdmXHU1''@;'; put 'put ''NTg1XHU1NTg2XHU1NThjXHU1NThkXHU1NThlXHU1NTkwXHU1NTkyXHU1NTkzXHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlhXHU1NTliXHU1NTllXHU1NWEwXHU1NWExXHU1NWEyXHU1NWEzXHU1NWE0XHU1NWE1XHU1NWE2XHU1NWE4XHU1NWE5XHU1NWFhXHU1NWFiXHU1NWFjXHU1NWFkXHU1NWFl''@;'; put 'put ''XHU1NWFmXHU1NWIwXHU1NWIyXHU1NWI0XHU1NWI2XHU1NWI4XHU1NWJhXHU1NWJjXHU1NWJmXHU1NWMwXHU1NWMxXHU1NWMyXHU1NWMzXHU1NWM2XHU1NWM3XHU1NWM4XHU1NWNhXHU1NWNiXHU1NWNlXHU1NWNmXHU1NWQwXHU1NWQ1XHU1NWQ3XHU1NWQ4XHU1NWQ5XHU1NWRhXHU1NWRiXHU1''@;'; put 'put ''NWRlXHU1NWUwXHU1NWUyXHU1NWU3XHU1NWU5XHU1NWVkXHU1NWVlXHU1NWYwXHU1NWYxXHU1NWY0XHU1NWY2XHU1NWY4XHU1NWY5XHU1NWZhXHU1NWZiXHU1NWZjXHU1NWZmXHU1NjAyXHU1NjAzXHU1NjA0XHU1NjA1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM0XS5sZW5ndGg7KytF''@;'; put 'put ''KTY1NTMzIT09QlsxMzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzNF1bRV1dPTM0MzA0K0UsTFszNDMwNCtFXT1CWzEzNF1bRV0pO2ZvcihCWzEzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTYwNlx1NTYwN1x1NTYwYVx1''@;'; put 'put ''NTYwYlx1NTYwZFx1NTYxMFx1NTYxMVx1NTYxMlx1NTYxM1x1NTYxNFx1NTYxNVx1NTYxNlx1NTYxN1x1NTYxOVx1NTYxYVx1NTYxY1x1NTYxZFx1NTYyMFx1NTYyMVx1NTYyMlx1NTYyNVx1NTYyNlx1NTYyOFx1NTYyOVx1NTYyYVx1NTYyYlx1NTYyZVx1NTYyZlx1NTYzMFx1NTYzM1x1NTYz''@;'; put 'put ''NVx1NTYzN1x1NTYzOFx1NTYzYVx1NTYzY1x1NTYzZFx1NTYzZVx1NTY0MFx1NTY0MVx1NTY0Mlx1NTY0M1x1NTY0NFx1NTY0NVx1NTY0Nlx1NTY0N1x1NTY0OFx1NTY0OVx1NTY0YVx1NTY0Ylx1NTY0Zlx1NTY1MFx1NTY1MVx1NTY1Mlx1NTY1M1x1NTY1NVx1NTY1Nlx1NTY1YVx1NTY1Ylx1''@;'; put 'put ''NTY1ZFx1NTY1ZVx1NTY1Zlx1NTY2MFx1NTY2MVx1ZmZmZFx1NTY2M1x1NTY2NVx1NTY2Nlx1NTY2N1x1NTY2ZFx1NTY2ZVx1NTY2Zlx1NTY3MFx1NTY3Mlx1NTY3M1x1NTY3NFx1NTY3NVx1NTY3N1x1NTY3OFx1NTY3OVx1NTY3YVx1NTY3ZFx1NTY3ZVx1NTY3Zlx1NTY4MFx1NTY4MVx1NTY4''@;'; put 'put ''Mlx1NTY4M1x1NTY4NFx1NTY4N1x1NTY4OFx1NTY4OVx1NTY4YVx1NTY4Ylx1NTY4Y1x1NTY4ZFx1NTY5MFx1NTY5MVx1NTY5Mlx1NTY5NFx1NTY5NVx1NTY5Nlx1NTY5N1x1NTY5OFx1NTY5OVx1NTY5YVx1NTY5Ylx1NTY5Y1x1NTY5ZFx1NTY5ZVx1NTY5Zlx1NTZhMFx1NTZhMVx1NTZhMlx1''@;'; put 'put ''NTZhNFx1NTZhNVx1NTZhNlx1NTZhN1x1NTZhOFx1NTZhOVx1NTZhYVx1NTZhYlx1NTZhY1x1NTZhZFx1NTZhZVx1NTZiMFx1NTZiMVx1NTZiMlx1NTZiM1x1NTZiNFx1NTZiNVx1NTZiNlx1NTZiOFx1NTZiOVx1NTZiYVx1NTZiYlx1NTZiZFx1NTZiZVx1NTZiZlx1NTZjMFx1NTZjMVx1NTZj''@;'; put 'put ''Mlx1NTZjM1x1NTZjNFx1NTZjNVx1NTZjNlx1NTZjN1x1NTZjOFx1NTZjOVx1NTZjYlx1NTZjY1x1NTZjZFx1NTZjZVx1NTZjZlx1NTZkMFx1NTZkMVx1NTZkMlx1NTZkM1x1NTZkNVx1NTZkNlx1NTZkOFx1NTZkOVx1NTZkY1x1NTZlM1x1NTZlNVx1NTZlNlx1NTZlN1x1NTZlOFx1NTZlOVx1''@;'; put 'put ''NTZlYVx1NTZlY1x1NTZlZVx1NTZlZlx1NTZmMlx1NTZmM1x1NTZmNlx1NTZmN1x1NTZmOFx1NTZmYlx1NTZmY1x1NTcwMFx1NTcwMVx1NTcwMlx1NTcwNVx1NTcwN1x1NTcwYlx1NTcwY1x1NTcwZFx1NTcwZVx1NTcwZlx1NTcxMFx1NTcxMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEz''@;'; put 'put ''NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzVdW0VdXT0zNDU2MCtFLExbMzQ1NjArRV09QlsxMzVdW0VdKTtmb3IoQlsxMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU3MTJc''@;'; put 'put ''dTU3MTNcdTU3MTRcdTU3MTVcdTU3MTZcdTU3MTdcdTU3MThcdTU3MTlcdTU3MWFcdTU3MWJcdTU3MWRcdTU3MWVcdTU3MjBcdTU3MjFcdTU3MjJcdTU3MjRcdTU3MjVcdTU3MjZcdTU3MjdcdTU3MmJcdTU3MzFcdTU3MzJcdTU3MzRcdTU3MzVcdTU3MzZcdTU3MzdcdTU3MzhcdTU3M2NcdTU3''@;'; put 'put ''M2RcdTU3M2ZcdTU3NDFcdTU3NDNcdTU3NDRcdTU3NDVcdTU3NDZcdTU3NDhcdTU3NDlcdTU3NGJcdTU3NTJcdTU3NTNcdTU3NTRcdTU3NTVcdTU3NTZcdTU3NThcdTU3NTlcdTU3NjJcdTU3NjNcdTU3NjVcdTU3NjdcdTU3NmNcdTU3NmVcdTU3NzBcdTU3NzFcdTU3NzJcdTU3NzRcdTU3NzVc''@;'; put 'put ''dTU3NzhcdTU3NzlcdTU3N2FcdTU3N2RcdTU3N2VcdTU3N2ZcdTU3ODBcdWZmZmRcdTU3ODFcdTU3ODdcdTU3ODhcdTU3ODlcdTU3OGFcdTU3OGRcdTU3OGVcdTU3OGZcdTU3OTBcdTU3OTFcdTU3OTRcdTU3OTVcdTU3OTZcdTU3OTdcdTU3OThcdTU3OTlcdTU3OWFcdTU3OWNcdTU3OWRcdTU3''@;'; put 'put ''OWVcdTU3OWZcdTU3YTVcdTU3YThcdTU3YWFcdTU3YWNcdTU3YWZcdTU3YjBcdTU3YjFcdTU3YjNcdTU3YjVcdTU3YjZcdTU3YjdcdTU3YjlcdTU3YmFcdTU3YmJcdTU3YmNcdTU3YmRcdTU3YmVcdTU3YmZcdTU3YzBcdTU3YzFcdTU3YzRcdTU3YzVcdTU3YzZcdTU3YzdcdTU3YzhcdTU3Yzlc''@;'; put 'put ''dTU3Y2FcdTU3Y2NcdTU3Y2RcdTU3ZDBcdTU3ZDFcdTU3ZDNcdTU3ZDZcdTU3ZDdcdTU3ZGJcdTU3ZGNcdTU3ZGVcdTU3ZTFcdTU3ZTJcdTU3ZTNcdTU3ZTVcdTU3ZTZcdTU3ZTdcdTU3ZThcdTU3ZTlcdTU3ZWFcdTU3ZWJcdTU3ZWNcdTU3ZWVcdTU3ZjBcdTU3ZjFcdTU3ZjJcdTU3ZjNcdTU3''@;'; put 'put ''ZjVcdTU3ZjZcdTU3ZjdcdTU3ZmJcdTU3ZmNcdTU3ZmVcdTU3ZmZcdTU4MDFcdTU4MDNcdTU4MDRcdTU4MDVcdTU4MDhcdTU4MDlcdTU4MGFcdTU4MGNcdTU4MGVcdTU4MGZcdTU4MTBcdTU4MTJcdTU4MTNcdTU4MTRcdTU4MTZcdTU4MTdcdTU4MThcdTU4MWFcdTU4MWJcdTU4MWNcdTU4MWRc''@;'; put 'put ''dTU4MWZcdTU4MjJcdTU4MjNcdTU4MjVcdTU4MjZcdTU4MjdcdTU4MjhcdTU4MjlcdTU4MmJcdTU4MmNcdTU4MmRcdTU4MmVcdTU4MmZcdTU4MzFcdTU4MzJcdTU4MzNcdTU4MzRcdTU4MzZcdTU4MzdcdTU4MzhcdTU4MzlcdTU4M2FcdTU4M2JcdTU4M2NcdTU4M2RcdWZmZmQiLnNwbGl0KCIi''@;'; put 'put ''KSxFPTA7RSE9QlsxMzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM2XVtFXV09MzQ4MTYrRSxMWzM0ODE2K0VdPUJbMTM2XVtFXSk7Zm9yKEJbMTM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHU1ODNlXHU1ODNmXHU1ODQwXHU1ODQxXHU1ODQyXHU1ODQzXHU1ODQ1XHU1ODQ2XHU1ODQ3XHU1ODQ4XHU1ODQ5XHU1ODRhXHU1ODRiXHU1ODRlXHU1ODRmXHU1ODUwXHU1ODUyXHU1ODUzXHU1ODU1XHU1ODU2XHU1ODU3XHU1ODU5XHU1ODVhXHU1ODViXHU1ODVjXHU1ODVkXHU1''@;'; put 'put ''ODVmXHU1ODYwXHU1ODYxXHU1ODYyXHU1ODYzXHU1ODY0XHU1ODY2XHU1ODY3XHU1ODY4XHU1ODY5XHU1ODZhXHU1ODZkXHU1ODZlXHU1ODZmXHU1ODcwXHU1ODcxXHU1ODcyXHU1ODczXHU1ODc0XHU1ODc1XHU1ODc2XHU1ODc3XHU1ODc4XHU1ODc5XHU1ODdhXHU1ODdiXHU1ODdjXHU1ODdk''@;'; put 'put ''XHU1ODdmXHU1ODgyXHU1ODg0XHU1ODg2XHU1ODg3XHU1ODg4XHU1ODhhXHU1ODhiXHU1ODhjXHVmZmZkXHU1ODhkXHU1ODhlXHU1ODhmXHU1ODkwXHU1ODkxXHU1ODk0XHU1ODk1XHU1ODk2XHU1ODk3XHU1ODk4XHU1ODliXHU1ODljXHU1ODlkXHU1OGEwXHU1OGExXHU1OGEyXHU1OGEzXHU1''@;'; put 'put ''OGE0XHU1OGE1XHU1OGE2XHU1OGE3XHU1OGFhXHU1OGFiXHU1OGFjXHU1OGFkXHU1OGFlXHU1OGFmXHU1OGIwXHU1OGIxXHU1OGIyXHU1OGIzXHU1OGI0XHU1OGI1XHU1OGI2XHU1OGI3XHU1OGI4XHU1OGI5XHU1OGJhXHU1OGJiXHU1OGJkXHU1OGJlXHU1OGJmXHU1OGMwXHU1OGMyXHU1OGMz''@;'; put 'put ''XHU1OGM0XHU1OGM2XHU1OGM3XHU1OGM4XHU1OGM5XHU1OGNhXHU1OGNiXHU1OGNjXHU1OGNkXHU1OGNlXHU1OGNmXHU1OGQwXHU1OGQyXHU1OGQzXHU1OGQ0XHU1OGQ2XHU1OGQ3XHU1OGQ4XHU1OGQ5XHU1OGRhXHU1OGRiXHU1OGRjXHU1OGRkXHU1OGRlXHU1OGRmXHU1OGUwXHU1OGUxXHU1''@;'; put 'put ''OGUyXHU1OGUzXHU1OGU1XHU1OGU2XHU1OGU3XHU1OGU4XHU1OGU5XHU1OGVhXHU1OGVkXHU1OGVmXHU1OGYxXHU1OGYyXHU1OGY0XHU1OGY1XHU1OGY3XHU1OGY4XHU1OGZhXHU1OGZiXHU1OGZjXHU1OGZkXHU1OGZlXHU1OGZmXHU1OTAwXHU1OTAxXHU1OTAzXHU1OTA1XHU1OTA2XHU1OTA4''@;'; put 'put ''XHU1OTA5XHU1OTBhXHU1OTBiXHU1OTBjXHU1OTBlXHU1OTEwXHU1OTExXHU1OTEyXHU1OTEzXHU1OTE3XHU1OTE4XHU1OTFiXHU1OTFkXHU1OTFlXHU1OTIwXHU1OTIxXHU1OTIyXHU1OTIzXHU1OTI2XHU1OTI4XHU1OTJjXHU1OTMwXHU1OTMyXHU1OTMzXHU1OTM1XHU1OTM2XHU1OTNiXHVm''@;'; put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzN11bRV1dPTM1MDcyK0UsTFszNTA3MitFXT1CWzEzN11bRV0pO2ZvcihCWzEzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTkzZFx1NTkzZVx1NTkzZlx1NTk0MFx1NTk0M1x1NTk0NVx1NTk0Nlx1NTk0YVx1NTk0Y1x1NTk0ZFx1NTk1MFx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1Ylx1NTk1Y1x1NTk1ZFx1NTk1ZVx1NTk1Zlx1NTk2MVx1NTk2M1x1NTk2NFx1NTk2Nlx1NTk2N1x1''@;'; put 'put ''NTk2OFx1NTk2OVx1NTk2YVx1NTk2Ylx1NTk2Y1x1NTk2ZFx1NTk2ZVx1NTk2Zlx1NTk3MFx1NTk3MVx1NTk3Mlx1NTk3NVx1NTk3N1x1NTk3YVx1NTk3Ylx1NTk3Y1x1NTk3ZVx1NTk3Zlx1NTk4MFx1NTk4NVx1NTk4OVx1NTk4Ylx1NTk4Y1x1NTk4ZVx1NTk4Zlx1NTk5MFx1NTk5MVx1NTk5''@;'; put 'put ''NFx1NTk5NVx1NTk5OFx1NTk5YVx1NTk5Ylx1NTk5Y1x1NTk5ZFx1NTk5Zlx1NTlhMFx1NTlhMVx1NTlhMlx1NTlhNlx1ZmZmZFx1NTlhN1x1NTlhY1x1NTlhZFx1NTliMFx1NTliMVx1NTliM1x1NTliNFx1NTliNVx1NTliNlx1NTliN1x1NTliOFx1NTliYVx1NTliY1x1NTliZFx1NTliZlx1''@;'; put 'put ''NTljMFx1NTljMVx1NTljMlx1NTljM1x1NTljNFx1NTljNVx1NTljN1x1NTljOFx1NTljOVx1NTljY1x1NTljZFx1NTljZVx1NTljZlx1NTlkNVx1NTlkNlx1NTlkOVx1NTlkYlx1NTlkZVx1NTlkZlx1NTllMFx1NTllMVx1NTllMlx1NTllNFx1NTllNlx1NTllN1x1NTllOVx1NTllYVx1NTll''@;'; put 'put ''Ylx1NTllZFx1NTllZVx1NTllZlx1NTlmMFx1NTlmMVx1NTlmMlx1NTlmM1x1NTlmNFx1NTlmNVx1NTlmNlx1NTlmN1x1NTlmOFx1NTlmYVx1NTlmY1x1NTlmZFx1NTlmZVx1NWEwMFx1NWEwMlx1NWEwYVx1NWEwYlx1NWEwZFx1NWEwZVx1NWEwZlx1NWExMFx1NWExMlx1NWExNFx1NWExNVx1''@;'; put 'put ''NWExNlx1NWExN1x1NWExOVx1NWExYVx1NWExYlx1NWExZFx1NWExZVx1NWEyMVx1NWEyMlx1NWEyNFx1NWEyNlx1NWEyN1x1NWEyOFx1NWEyYVx1NWEyYlx1NWEyY1x1NWEyZFx1NWEyZVx1NWEyZlx1NWEzMFx1NWEzM1x1NWEzNVx1NWEzN1x1NWEzOFx1NWEzOVx1NWEzYVx1NWEzYlx1NWEz''@;'; put 'put ''ZFx1NWEzZVx1NWEzZlx1NWE0MVx1NWE0Mlx1NWE0M1x1NWE0NFx1NWE0NVx1NWE0N1x1NWE0OFx1NWE0Ylx1NWE0Y1x1NWE0ZFx1NWE0ZVx1NWE0Zlx1NWE1MFx1NWE1MVx1NWE1Mlx1NWE1M1x1NWE1NFx1NWE1Nlx1NWE1N1x1NWE1OFx1NWE1OVx1NWE1Ylx1NWE1Y1x1NWE1ZFx1NWE1ZVx1''@;'; put 'put ''NWE1Zlx1NWE2MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzhdW0VdXT0zNTMyOCtFLExbMzUzMjgrRV09QlsxMzhdW0VdKTtmb3IoQlsxMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhNjFcdTVhNjNcdTVhNjRcdTVhNjVcdTVhNjZcdTVhNjhcdTVhNjlcdTVhNmJcdTVhNmNcdTVhNmRcdTVhNmVcdTVhNmZcdTVhNzBcdTVhNzFcdTVhNzJcdTVhNzNcdTVhNzhcdTVhNzlcdTVhN2JcdTVhN2NcdTVhN2RcdTVhN2Vc''@;'; put 'put ''dTVhODBcdTVhODFcdTVhODJcdTVhODNcdTVhODRcdTVhODVcdTVhODZcdTVhODdcdTVhODhcdTVhODlcdTVhOGFcdTVhOGJcdTVhOGNcdTVhOGRcdTVhOGVcdTVhOGZcdTVhOTBcdTVhOTFcdTVhOTNcdTVhOTRcdTVhOTVcdTVhOTZcdTVhOTdcdTVhOThcdTVhOTlcdTVhOWNcdTVhOWRcdTVh''@;'; put 'put ''OWVcdTVhOWZcdTVhYTBcdTVhYTFcdTVhYTJcdTVhYTNcdTVhYTRcdTVhYTVcdTVhYTZcdTVhYTdcdTVhYThcdTVhYTlcdTVhYWJcdTVhYWNcdWZmZmRcdTVhYWRcdTVhYWVcdTVhYWZcdTVhYjBcdTVhYjFcdTVhYjRcdTVhYjZcdTVhYjdcdTVhYjlcdTVhYmFcdTVhYmJcdTVhYmNcdTVhYmRc''@;'; put 'put ''dTVhYmZcdTVhYzBcdTVhYzNcdTVhYzRcdTVhYzVcdTVhYzZcdTVhYzdcdTVhYzhcdTVhY2FcdTVhY2JcdTVhY2RcdTVhY2VcdTVhY2ZcdTVhZDBcdTVhZDFcdTVhZDNcdTVhZDVcdTVhZDdcdTVhZDlcdTVhZGFcdTVhZGJcdTVhZGRcdTVhZGVcdTVhZGZcdTVhZTJcdTVhZTRcdTVhZTVcdTVh''@;'; put 'put ''ZTdcdTVhZThcdTVhZWFcdTVhZWNcdTVhZWRcdTVhZWVcdTVhZWZcdTVhZjBcdTVhZjJcdTVhZjNcdTVhZjRcdTVhZjVcdTVhZjZcdTVhZjdcdTVhZjhcdTVhZjlcdTVhZmFcdTVhZmJcdTVhZmNcdTVhZmRcdTVhZmVcdTVhZmZcdTViMDBcdTViMDFcdTViMDJcdTViMDNcdTViMDRcdTViMDVc''@;'; put 'put ''dTViMDZcdTViMDdcdTViMDhcdTViMGFcdTViMGJcdTViMGNcdTViMGRcdTViMGVcdTViMGZcdTViMTBcdTViMTFcdTViMTJcdTViMTNcdTViMTRcdTViMTVcdTViMThcdTViMTlcdTViMWFcdTViMWJcdTViMWNcdTViMWRcdTViMWVcdTViMWZcdTViMjBcdTViMjFcdTViMjJcdTViMjNcdTVi''@;'; put 'put ''MjRcdTViMjVcdTViMjZcdTViMjdcdTViMjhcdTViMjlcdTViMmFcdTViMmJcdTViMmNcdTViMmRcdTViMmVcdTViMmZcdTViMzBcdTViMzFcdTViMzNcdTViMzVcdTViMzZcdTViMzhcdTViMzlcdTViM2FcdTViM2JcdTViM2NcdTViM2RcdTViM2VcdTViM2ZcdTViNDFcdTViNDJcdTViNDNc''@;'; put 'put ''dTViNDRcdTViNDVcdTViNDZcdTViNDdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM5XVtFXV09MzU1ODQrRSxMWzM1NTg0K0VdPUJbMTM5XVtFXSk7Zm9yKEJbMTQwXT0iXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YjQ4XHU1YjQ5XHU1YjRhXHU1YjRiXHU1YjRjXHU1YjRkXHU1YjRlXHU1YjRmXHU1YjUyXHU1YjU2XHU1YjVlXHU1YjYwXHU1YjYxXHU1YjY3XHU1YjY4XHU1YjZiXHU1YjZkXHU1YjZlXHU1YjZmXHU1Yjcy''@;'; put 'put ''XHU1Yjc0XHU1Yjc2XHU1Yjc3XHU1Yjc4XHU1Yjc5XHU1YjdiXHU1YjdjXHU1YjdlXHU1YjdmXHU1YjgyXHU1Yjg2XHU1YjhhXHU1YjhkXHU1YjhlXHU1YjkwXHU1YjkxXHU1YjkyXHU1Yjk0XHU1Yjk2XHU1YjlmXHU1YmE3XHU1YmE4XHU1YmE5XHU1YmFjXHU1YmFkXHU1YmFlXHU1YmFmXHU1''@;'; put 'put ''YmIxXHU1YmIyXHU1YmI3XHU1YmJhXHU1YmJiXHU1YmJjXHU1YmMwXHU1YmMxXHU1YmMzXHU1YmM4XHU1YmM5XHU1YmNhXHU1YmNiXHU1YmNkXHU1YmNlXHU1YmNmXHVmZmZkXHU1YmQxXHU1YmQ0XHU1YmQ1XHU1YmQ2XHU1YmQ3XHU1YmQ4XHU1YmQ5XHU1YmRhXHU1YmRiXHU1YmRjXHU1YmUw''@;'; put 'put ''XHU1YmUyXHU1YmUzXHU1YmU2XHU1YmU3XHU1YmU5XHU1YmVhXHU1YmViXHU1YmVjXHU1YmVkXHU1YmVmXHU1YmYxXHU1YmYyXHU1YmYzXHU1YmY0XHU1YmY1XHU1YmY2XHU1YmY3XHU1YmZkXHU1YmZlXHU1YzAwXHU1YzAyXHU1YzAzXHU1YzA1XHU1YzA3XHU1YzA4XHU1YzBiXHU1YzBjXHU1''@;'; put 'put ''YzBkXHU1YzBlXHU1YzEwXHU1YzEyXHU1YzEzXHU1YzE3XHU1YzE5XHU1YzFiXHU1YzFlXHU1YzFmXHU1YzIwXHU1YzIxXHU1YzIzXHU1YzI2XHU1YzI4XHU1YzI5XHU1YzJhXHU1YzJiXHU1YzJkXHU1YzJlXHU1YzJmXHU1YzMwXHU1YzMyXHU1YzMzXHU1YzM1XHU1YzM2XHU1YzM3XHU1YzQz''@;'; put 'put ''XHU1YzQ0XHU1YzQ2XHU1YzQ3XHU1YzRjXHU1YzRkXHU1YzUyXHU1YzUzXHU1YzU0XHU1YzU2XHU1YzU3XHU1YzU4XHU1YzVhXHU1YzViXHU1YzVjXHU1YzVkXHU1YzVmXHU1YzYyXHU1YzY0XHU1YzY3XHU1YzY4XHU1YzY5XHU1YzZhXHU1YzZiXHU1YzZjXHU1YzZkXHU1YzcwXHU1YzcyXHU1''@;'; put 'put ''YzczXHU1Yzc0XHU1Yzc1XHU1Yzc2XHU1Yzc3XHU1Yzc4XHU1YzdiXHU1YzdjXHU1YzdkXHU1YzdlXHU1YzgwXHU1YzgzXHU1Yzg0XHU1Yzg1XHU1Yzg2XHU1Yzg3XHU1Yzg5XHU1YzhhXHU1YzhiXHU1YzhlXHU1YzhmXHU1YzkyXHU1YzkzXHU1Yzk1XHU1YzlkXHU1YzllXHU1YzlmXHU1Y2Ew''@;'; put 'put ''XHU1Y2ExXHU1Y2E0XHU1Y2E1XHU1Y2E2XHU1Y2E3XHU1Y2E4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0MF1bRV1dPTM1ODQwK0UsTFszNTg0MCtFXT1CWzE0MF1bRV0pO2ZvcihCWzE0''@;'; put 'put ''MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWNhYVx1NWNhZVx1NWNhZlx1NWNiMFx1NWNiMlx1NWNiNFx1NWNiNlx1NWNiOVx1NWNiYVx1NWNiYlx1NWNiY1x1NWNiZVx1NWNjMFx1NWNjMlx1NWNjM1x1NWNjNVx1NWNjNlx1NWNj''@;'; put 'put ''N1x1NWNjOFx1NWNjOVx1NWNjYVx1NWNjY1x1NWNjZFx1NWNjZVx1NWNjZlx1NWNkMFx1NWNkMVx1NWNkM1x1NWNkNFx1NWNkNVx1NWNkNlx1NWNkN1x1NWNkOFx1NWNkYVx1NWNkYlx1NWNkY1x1NWNkZFx1NWNkZVx1NWNkZlx1NWNlMFx1NWNlMlx1NWNlM1x1NWNlN1x1NWNlOVx1NWNlYlx1''@;'; put 'put ''NWNlY1x1NWNlZVx1NWNlZlx1NWNmMVx1NWNmMlx1NWNmM1x1NWNmNFx1NWNmNVx1NWNmNlx1NWNmN1x1NWNmOFx1NWNmOVx1NWNmYVx1NWNmY1x1NWNmZFx1NWNmZVx1NWNmZlx1NWQwMFx1ZmZmZFx1NWQwMVx1NWQwNFx1NWQwNVx1NWQwOFx1NWQwOVx1NWQwYVx1NWQwYlx1NWQwY1x1NWQw''@;'; put 'put ''ZFx1NWQwZlx1NWQxMFx1NWQxMVx1NWQxMlx1NWQxM1x1NWQxNVx1NWQxN1x1NWQxOFx1NWQxOVx1NWQxYVx1NWQxY1x1NWQxZFx1NWQxZlx1NWQyMFx1NWQyMVx1NWQyMlx1NWQyM1x1NWQyNVx1NWQyOFx1NWQyYVx1NWQyYlx1NWQyY1x1NWQyZlx1NWQzMFx1NWQzMVx1NWQzMlx1NWQzM1x1''@;'; put 'put ''NWQzNVx1NWQzNlx1NWQzN1x1NWQzOFx1NWQzOVx1NWQzYVx1NWQzYlx1NWQzY1x1NWQzZlx1NWQ0MFx1NWQ0MVx1NWQ0Mlx1NWQ0M1x1NWQ0NFx1NWQ0NVx1NWQ0Nlx1NWQ0OFx1NWQ0OVx1NWQ0ZFx1NWQ0ZVx1NWQ0Zlx1NWQ1MFx1NWQ1MVx1NWQ1Mlx1NWQ1M1x1NWQ1NFx1NWQ1NVx1NWQ1''@;'; put 'put ''Nlx1NWQ1N1x1NWQ1OVx1NWQ1YVx1NWQ1Y1x1NWQ1ZVx1NWQ1Zlx1NWQ2MFx1NWQ2MVx1NWQ2Mlx1NWQ2M1x1NWQ2NFx1NWQ2NVx1NWQ2Nlx1NWQ2N1x1NWQ2OFx1NWQ2YVx1NWQ2ZFx1NWQ2ZVx1NWQ3MFx1NWQ3MVx1NWQ3Mlx1NWQ3M1x1NWQ3NVx1NWQ3Nlx1NWQ3N1x1NWQ3OFx1NWQ3OVx1''@;'; put 'put ''NWQ3YVx1NWQ3Ylx1NWQ3Y1x1NWQ3ZFx1NWQ3ZVx1NWQ3Zlx1NWQ4MFx1NWQ4MVx1NWQ4M1x1NWQ4NFx1NWQ4NVx1NWQ4Nlx1NWQ4N1x1NWQ4OFx1NWQ4OVx1NWQ4YVx1NWQ4Ylx1NWQ4Y1x1NWQ4ZFx1NWQ4ZVx1NWQ4Zlx1NWQ5MFx1NWQ5MVx1NWQ5Mlx1NWQ5M1x1NWQ5NFx1NWQ5NVx1NWQ5''@;'; put 'put ''Nlx1NWQ5N1x1NWQ5OFx1NWQ5YVx1NWQ5Ylx1NWQ5Y1x1NWQ5ZVx1NWQ5Zlx1NWRhMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDFdW0VdXT0zNjA5NitFLExbMzYwOTYrRV09QlsxNDFd''@;'; put 'put ''W0VdKTtmb3IoQlsxNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVkYTFcdTVkYTJcdTVkYTNcdTVkYTRcdTVkYTVcdTVkYTZcdTVkYTdcdTVkYThcdTVkYTlcdTVkYWFcdTVkYWJcdTVkYWNcdTVkYWRcdTVkYWVcdTVkYWZcdTVk''@;'; put 'put ''YjBcdTVkYjFcdTVkYjJcdTVkYjNcdTVkYjRcdTVkYjVcdTVkYjZcdTVkYjhcdTVkYjlcdTVkYmFcdTVkYmJcdTVkYmNcdTVkYmRcdTVkYmVcdTVkYmZcdTVkYzBcdTVkYzFcdTVkYzJcdTVkYzNcdTVkYzRcdTVkYzZcdTVkYzdcdTVkYzhcdTVkYzlcdTVkY2FcdTVkY2JcdTVkY2NcdTVkY2Vc''@;'; put 'put ''dTVkY2ZcdTVkZDBcdTVkZDFcdTVkZDJcdTVkZDNcdTVkZDRcdTVkZDVcdTVkZDZcdTVkZDdcdTVkZDhcdTVkZDlcdTVkZGFcdTVkZGNcdTVkZGZcdTVkZTBcdTVkZTNcdTVkZTRcdTVkZWFcdTVkZWNcdTVkZWRcdWZmZmRcdTVkZjBcdTVkZjVcdTVkZjZcdTVkZjhcdTVkZjlcdTVkZmFcdTVk''@;'; put 'put ''ZmJcdTVkZmNcdTVkZmZcdTVlMDBcdTVlMDRcdTVlMDdcdTVlMDlcdTVlMGFcdTVlMGJcdTVlMGRcdTVlMGVcdTVlMTJcdTVlMTNcdTVlMTdcdTVlMWVcdTVlMWZcdTVlMjBcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjRcdTVlMjVcdTVlMjhcdTVlMjlcdTVlMmFcdTVlMmJcdTVlMmNcdTVlMmZc''@;'; put 'put ''dTVlMzBcdTVlMzJcdTVlMzNcdTVlMzRcdTVlMzVcdTVlMzZcdTVlMzlcdTVlM2FcdTVlM2VcdTVlM2ZcdTVlNDBcdTVlNDFcdTVlNDNcdTVlNDZcdTVlNDdcdTVlNDhcdTVlNDlcdTVlNGFcdTVlNGJcdTVlNGRcdTVlNGVcdTVlNGZcdTVlNTBcdTVlNTFcdTVlNTJcdTVlNTNcdTVlNTZcdTVl''@;'; put 'put ''NTdcdTVlNThcdTVlNTlcdTVlNWFcdTVlNWNcdTVlNWRcdTVlNWZcdTVlNjBcdTVlNjNcdTVlNjRcdTVlNjVcdTVlNjZcdTVlNjdcdTVlNjhcdTVlNjlcdTVlNmFcdTVlNmJcdTVlNmNcdTVlNmRcdTVlNmVcdTVlNmZcdTVlNzBcdTVlNzFcdTVlNzVcdTVlNzdcdTVlNzlcdTVlN2VcdTVlODFc''@;'; put 'put ''dTVlODJcdTVlODNcdTVlODVcdTVlODhcdTVlODlcdTVlOGNcdTVlOGRcdTVlOGVcdTVlOTJcdTVlOThcdTVlOWJcdTVlOWRcdTVlYTFcdTVlYTJcdTVlYTNcdTVlYTRcdTVlYThcdTVlYTlcdTVlYWFcdTVlYWJcdTVlYWNcdTVlYWVcdTVlYWZcdTVlYjBcdTVlYjFcdTVlYjJcdTVlYjRcdTVl''@;'; put 'put ''YmFcdTVlYmJcdTVlYmNcdTVlYmRcdTVlYmZcdTVlYzBcdTVlYzFcdTVlYzJcdTVlYzNcdTVlYzRcdTVlYzVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQyXVtFXV09MzYzNTIrRSxMWzM2''@;'; put 'put ''MzUyK0VdPUJbMTQyXVtFXSk7Zm9yKEJbMTQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZWM2XHU1ZWM3XHU1ZWM4XHU1ZWNiXHU1ZWNjXHU1ZWNkXHU1ZWNlXHU1ZWNmXHU1ZWQwXHU1ZWQ0XHU1ZWQ1XHU1ZWQ3XHU1ZWQ4XHU1''@;'; put 'put ''ZWQ5XHU1ZWRhXHU1ZWRjXHU1ZWRkXHU1ZWRlXHU1ZWRmXHU1ZWUwXHU1ZWUxXHU1ZWUyXHU1ZWUzXHU1ZWU0XHU1ZWU1XHU1ZWU2XHU1ZWU3XHU1ZWU5XHU1ZWViXHU1ZWVjXHU1ZWVkXHU1ZWVlXHU1ZWVmXHU1ZWYwXHU1ZWYxXHU1ZWYyXHU1ZWYzXHU1ZWY1XHU1ZWY4XHU1ZWY5XHU1ZWZi''@;'; put 'put ''XHU1ZWZjXHU1ZWZkXHU1ZjA1XHU1ZjA2XHU1ZjA3XHU1ZjA5XHU1ZjBjXHU1ZjBkXHU1ZjBlXHU1ZjEwXHU1ZjEyXHU1ZjE0XHU1ZjE2XHU1ZjE5XHU1ZjFhXHU1ZjFjXHU1ZjFkXHU1ZjFlXHU1ZjIxXHU1ZjIyXHU1ZjIzXHU1ZjI0XHVmZmZkXHU1ZjI4XHU1ZjJiXHU1ZjJjXHU1ZjJlXHU1''@;'; put 'put ''ZjMwXHU1ZjMyXHU1ZjMzXHU1ZjM0XHU1ZjM1XHU1ZjM2XHU1ZjM3XHU1ZjM4XHU1ZjNiXHU1ZjNkXHU1ZjNlXHU1ZjNmXHU1ZjQxXHU1ZjQyXHU1ZjQzXHU1ZjQ0XHU1ZjQ1XHU1ZjQ2XHU1ZjQ3XHU1ZjQ4XHU1ZjQ5XHU1ZjRhXHU1ZjRiXHU1ZjRjXHU1ZjRkXHU1ZjRlXHU1ZjRmXHU1ZjUx''@;'; put 'put ''XHU1ZjU0XHU1ZjU5XHU1ZjVhXHU1ZjViXHU1ZjVjXHU1ZjVlXHU1ZjVmXHU1ZjYwXHU1ZjYzXHU1ZjY1XHU1ZjY3XHU1ZjY4XHU1ZjZiXHU1ZjZlXHU1ZjZmXHU1ZjcyXHU1Zjc0XHU1Zjc1XHU1Zjc2XHU1Zjc4XHU1ZjdhXHU1ZjdkXHU1ZjdlXHU1ZjdmXHU1ZjgzXHU1Zjg2XHU1ZjhkXHU1''@;'; put 'put ''ZjhlXHU1ZjhmXHU1ZjkxXHU1ZjkzXHU1Zjk0XHU1Zjk2XHU1ZjlhXHU1ZjliXHU1ZjlkXHU1ZjllXHU1ZjlmXHU1ZmEwXHU1ZmEyXHU1ZmEzXHU1ZmE0XHU1ZmE1XHU1ZmE2XHU1ZmE3XHU1ZmE5XHU1ZmFiXHU1ZmFjXHU1ZmFmXHU1ZmIwXHU1ZmIxXHU1ZmIyXHU1ZmIzXHU1ZmI0XHU1ZmI2''@;'; put 'put ''XHU1ZmI4XHU1ZmI5XHU1ZmJhXHU1ZmJiXHU1ZmJlXHU1ZmJmXHU1ZmMwXHU1ZmMxXHU1ZmMyXHU1ZmM3XHU1ZmM4XHU1ZmNhXHU1ZmNiXHU1ZmNlXHU1ZmQzXHU1ZmQ0XHU1ZmQ1XHU1ZmRhXHU1ZmRiXHU1ZmRjXHU1ZmRlXHU1ZmRmXHU1ZmUyXHU1ZmUzXHU1ZmU1XHU1ZmU2XHU1ZmU4XHU1''@;'; put 'put ''ZmU5XHU1ZmVjXHU1ZmVmXHU1ZmYwXHU1ZmYyXHU1ZmYzXHU1ZmY0XHU1ZmY2XHU1ZmY3XHU1ZmY5XHU1ZmZhXHU1ZmZjXHU2MDA3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0M11bRV1d''@;'; put 'put ''PTM2NjA4K0UsTFszNjYwOCtFXT1CWzE0M11bRV0pO2ZvcihCWzE0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjAwOFx1NjAwOVx1NjAwYlx1NjAwY1x1NjAxMFx1NjAxMVx1NjAxM1x1NjAxN1x1NjAxOFx1NjAxYVx1NjAxZVx1''@;'; put 'put ''NjAxZlx1NjAyMlx1NjAyM1x1NjAyNFx1NjAyY1x1NjAyZFx1NjAyZVx1NjAzMFx1NjAzMVx1NjAzMlx1NjAzM1x1NjAzNFx1NjAzNlx1NjAzN1x1NjAzOFx1NjAzOVx1NjAzYVx1NjAzZFx1NjAzZVx1NjA0MFx1NjA0NFx1NjA0NVx1NjA0Nlx1NjA0N1x1NjA0OFx1NjA0OVx1NjA0YVx1NjA0''@;'; put 'put ''Y1x1NjA0ZVx1NjA0Zlx1NjA1MVx1NjA1M1x1NjA1NFx1NjA1Nlx1NjA1N1x1NjA1OFx1NjA1Ylx1NjA1Y1x1NjA1ZVx1NjA1Zlx1NjA2MFx1NjA2MVx1NjA2NVx1NjA2Nlx1NjA2ZVx1NjA3MVx1NjA3Mlx1NjA3NFx1NjA3NVx1NjA3N1x1NjA3ZVx1NjA4MFx1ZmZmZFx1NjA4MVx1NjA4Mlx1''@;'; put 'put ''NjA4NVx1NjA4Nlx1NjA4N1x1NjA4OFx1NjA4YVx1NjA4Ylx1NjA4ZVx1NjA4Zlx1NjA5MFx1NjA5MVx1NjA5M1x1NjA5NVx1NjA5N1x1NjA5OFx1NjA5OVx1NjA5Y1x1NjA5ZVx1NjBhMVx1NjBhMlx1NjBhNFx1NjBhNVx1NjBhN1x1NjBhOVx1NjBhYVx1NjBhZVx1NjBiMFx1NjBiM1x1NjBi''@;'; put 'put ''NVx1NjBiNlx1NjBiN1x1NjBiOVx1NjBiYVx1NjBiZFx1NjBiZVx1NjBiZlx1NjBjMFx1NjBjMVx1NjBjMlx1NjBjM1x1NjBjNFx1NjBjN1x1NjBjOFx1NjBjOVx1NjBjY1x1NjBjZFx1NjBjZVx1NjBjZlx1NjBkMFx1NjBkMlx1NjBkM1x1NjBkNFx1NjBkNlx1NjBkN1x1NjBkOVx1NjBkYlx1''@;'; put 'put ''NjBkZVx1NjBlMVx1NjBlMlx1NjBlM1x1NjBlNFx1NjBlNVx1NjBlYVx1NjBmMVx1NjBmMlx1NjBmNVx1NjBmN1x1NjBmOFx1NjBmYlx1NjBmY1x1NjBmZFx1NjBmZVx1NjBmZlx1NjEwMlx1NjEwM1x1NjEwNFx1NjEwNVx1NjEwN1x1NjEwYVx1NjEwYlx1NjEwY1x1NjExMFx1NjExMVx1NjEx''@;'; put 'put ''Mlx1NjExM1x1NjExNFx1NjExNlx1NjExN1x1NjExOFx1NjExOVx1NjExYlx1NjExY1x1NjExZFx1NjExZVx1NjEyMVx1NjEyMlx1NjEyNVx1NjEyOFx1NjEyOVx1NjEyYVx1NjEyY1x1NjEyZFx1NjEyZVx1NjEyZlx1NjEzMFx1NjEzMVx1NjEzMlx1NjEzM1x1NjEzNFx1NjEzNVx1NjEzNlx1''@;'; put 'put ''NjEzN1x1NjEzOFx1NjEzOVx1NjEzYVx1NjEzYlx1NjEzY1x1NjEzZFx1NjEzZVx1NjE0MFx1NjE0MVx1NjE0Mlx1NjE0M1x1NjE0NFx1NjE0NVx1NjE0Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ0XVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; put 'put ''bWVbQlsxNDRdW0VdXT0zNjg2NCtFLExbMzY4NjQrRV09QlsxNDRdW0VdKTtmb3IoQlsxNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxNDdcdTYxNDlcdTYxNGJcdTYxNGRcdTYxNGZcdTYxNTBcdTYxNTJcdTYxNTNcdTYxNTRc''@;'; put 'put ''dTYxNTZcdTYxNTdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNWJcdTYxNWNcdTYxNWVcdTYxNWZcdTYxNjBcdTYxNjFcdTYxNjNcdTYxNjRcdTYxNjVcdTYxNjZcdTYxNjlcdTYxNmFcdTYxNmJcdTYxNmNcdTYxNmRcdTYxNmVcdTYxNmZcdTYxNzFcdTYxNzJcdTYxNzNcdTYxNzRcdTYxNzZcdTYx''@;'; put 'put ''NzhcdTYxNzlcdTYxN2FcdTYxN2JcdTYxN2NcdTYxN2RcdTYxN2VcdTYxN2ZcdTYxODBcdTYxODFcdTYxODJcdTYxODNcdTYxODRcdTYxODVcdTYxODZcdTYxODdcdTYxODhcdTYxODlcdTYxOGFcdTYxOGNcdTYxOGRcdTYxOGZcdTYxOTBcdTYxOTFcdTYxOTJcdTYxOTNcdTYxOTVcdWZmZmRc''@;'; put 'put ''dTYxOTZcdTYxOTdcdTYxOThcdTYxOTlcdTYxOWFcdTYxOWJcdTYxOWNcdTYxOWVcdTYxOWZcdTYxYTBcdTYxYTFcdTYxYTJcdTYxYTNcdTYxYTRcdTYxYTVcdTYxYTZcdTYxYWFcdTYxYWJcdTYxYWRcdTYxYWVcdTYxYWZcdTYxYjBcdTYxYjFcdTYxYjJcdTYxYjNcdTYxYjRcdTYxYjVcdTYx''@;'; put 'put ''YjZcdTYxYjhcdTYxYjlcdTYxYmFcdTYxYmJcdTYxYmNcdTYxYmRcdTYxYmZcdTYxYzBcdTYxYzFcdTYxYzNcdTYxYzRcdTYxYzVcdTYxYzZcdTYxYzdcdTYxYzlcdTYxY2NcdTYxY2RcdTYxY2VcdTYxY2ZcdTYxZDBcdTYxZDNcdTYxZDVcdTYxZDZcdTYxZDdcdTYxZDhcdTYxZDlcdTYxZGFc''@;'; put 'put ''dTYxZGJcdTYxZGNcdTYxZGRcdTYxZGVcdTYxZGZcdTYxZTBcdTYxZTFcdTYxZTJcdTYxZTNcdTYxZTRcdTYxZTVcdTYxZTdcdTYxZThcdTYxZTlcdTYxZWFcdTYxZWJcdTYxZWNcdTYxZWRcdTYxZWVcdTYxZWZcdTYxZjBcdTYxZjFcdTYxZjJcdTYxZjNcdTYxZjRcdTYxZjZcdTYxZjdcdTYx''@;'; put 'put ''ZjhcdTYxZjlcdTYxZmFcdTYxZmJcdTYxZmNcdTYxZmRcdTYxZmVcdTYyMDBcdTYyMDFcdTYyMDJcdTYyMDNcdTYyMDRcdTYyMDVcdTYyMDdcdTYyMDlcdTYyMTNcdTYyMTRcdTYyMTlcdTYyMWNcdTYyMWRcdTYyMWVcdTYyMjBcdTYyMjNcdTYyMjZcdTYyMjdcdTYyMjhcdTYyMjlcdTYyMmJc''@;'; put 'put ''dTYyMmRcdTYyMmZcdTYyMzBcdTYyMzFcdTYyMzJcdTYyMzVcdTYyMzZcdTYyMzhcdTYyMzlcdTYyM2FcdTYyM2JcdTYyM2NcdTYyNDJcdTYyNDRcdTYyNDVcdTYyNDZcdTYyNGFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0NV1bRV0uY2hh''@;'; put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMTQ1XVtFXV09MzcxMjArRSxMWzM3MTIwK0VdPUJbMTQ1XVtFXSk7Zm9yKEJbMTQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MjRmXHU2MjUwXHU2MjU1XHU2MjU2XHU2MjU3XHU2MjU5XHU2MjVh''@;'; put 'put ''XHU2MjVjXHU2MjVkXHU2MjVlXHU2MjVmXHU2MjYwXHU2MjYxXHU2MjYyXHU2MjY0XHU2MjY1XHU2MjY4XHU2MjcxXHU2MjcyXHU2Mjc0XHU2Mjc1XHU2Mjc3XHU2Mjc4XHU2MjdhXHU2MjdiXHU2MjdkXHU2MjgxXHU2MjgyXHU2MjgzXHU2Mjg1XHU2Mjg2XHU2Mjg3XHU2Mjg4XHU2MjhiXHU2''@;'; put 'put ''MjhjXHU2MjhkXHU2MjhlXHU2MjhmXHU2MjkwXHU2Mjk0XHU2Mjk5XHU2MjljXHU2MjlkXHU2MjllXHU2MmEzXHU2MmE2XHU2MmE3XHU2MmE5XHU2MmFhXHU2MmFkXHU2MmFlXHU2MmFmXHU2MmIwXHU2MmIyXHU2MmIzXHU2MmI0XHU2MmI2XHU2MmI3XHU2MmI4XHU2MmJhXHU2MmJlXHU2MmMw''@;'; put 'put ''XHU2MmMxXHVmZmZkXHU2MmMzXHU2MmNiXHU2MmNmXHU2MmQxXHU2MmQ1XHU2MmRkXHU2MmRlXHU2MmUwXHU2MmUxXHU2MmU0XHU2MmVhXHU2MmViXHU2MmYwXHU2MmYyXHU2MmY1XHU2MmY4XHU2MmY5XHU2MmZhXHU2MmZiXHU2MzAwXHU2MzAzXHU2MzA0XHU2MzA1XHU2MzA2XHU2MzBhXHU2''@;'; put 'put ''MzBiXHU2MzBjXHU2MzBkXHU2MzBmXHU2MzEwXHU2MzEyXHU2MzEzXHU2MzE0XHU2MzE1XHU2MzE3XHU2MzE4XHU2MzE5XHU2MzFjXHU2MzI2XHU2MzI3XHU2MzI5XHU2MzJjXHU2MzJkXHU2MzJlXHU2MzMwXHU2MzMxXHU2MzMzXHU2MzM0XHU2MzM1XHU2MzM2XHU2MzM3XHU2MzM4XHU2MzNi''@;'; put 'put ''XHU2MzNjXHU2MzNlXHU2MzNmXHU2MzQwXHU2MzQxXHU2MzQ0XHU2MzQ3XHU2MzQ4XHU2MzRhXHU2MzUxXHU2MzUyXHU2MzUzXHU2MzU0XHU2MzU2XHU2MzU3XHU2MzU4XHU2MzU5XHU2MzVhXHU2MzViXHU2MzVjXHU2MzVkXHU2MzYwXHU2MzY0XHU2MzY1XHU2MzY2XHU2MzY4XHU2MzZhXHU2''@;'; put 'put ''MzZiXHU2MzZjXHU2MzZmXHU2MzcwXHU2MzcyXHU2MzczXHU2Mzc0XHU2Mzc1XHU2Mzc4XHU2Mzc5XHU2MzdjXHU2MzdkXHU2MzdlXHU2MzdmXHU2MzgxXHU2MzgzXHU2Mzg0XHU2Mzg1XHU2Mzg2XHU2MzhiXHU2MzhkXHU2MzkxXHU2MzkzXHU2Mzk0XHU2Mzk1XHU2Mzk3XHU2Mzk5XHU2Mzlh''@;'; put 'put ''XHU2MzliXHU2MzljXHU2MzlkXHU2MzllXHU2MzlmXHU2M2ExXHU2M2E0XHU2M2E2XHU2M2FiXHU2M2FmXHU2M2IxXHU2M2IyXHU2M2I1XHU2M2I2XHU2M2I5XHU2M2JiXHU2M2JkXHU2M2JmXHU2M2MwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ2XS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; put 'put ''QlsxNDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0Nl1bRV1dPTM3Mzc2K0UsTFszNzM3NitFXT1CWzE0Nl1bRV0pO2ZvcihCWzE0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjNjMVx1NjNjMlx1NjNjM1x1NjNjNVx1NjNj''@;'; put 'put ''N1x1NjNjOFx1NjNjYVx1NjNjYlx1NjNjY1x1NjNkMVx1NjNkM1x1NjNkNFx1NjNkNVx1NjNkN1x1NjNkOFx1NjNkOVx1NjNkYVx1NjNkYlx1NjNkY1x1NjNkZFx1NjNkZlx1NjNlMlx1NjNlNFx1NjNlNVx1NjNlNlx1NjNlN1x1NjNlOFx1NjNlYlx1NjNlY1x1NjNlZVx1NjNlZlx1NjNmMFx1''@;'; put 'put ''NjNmMVx1NjNmM1x1NjNmNVx1NjNmN1x1NjNmOVx1NjNmYVx1NjNmYlx1NjNmY1x1NjNmZVx1NjQwM1x1NjQwNFx1NjQwNlx1NjQwN1x1NjQwOFx1NjQwOVx1NjQwYVx1NjQwZFx1NjQwZVx1NjQxMVx1NjQxMlx1NjQxNVx1NjQxNlx1NjQxN1x1NjQxOFx1NjQxOVx1NjQxYVx1NjQxZFx1NjQx''@;'; put 'put ''Zlx1NjQyMlx1NjQyM1x1NjQyNFx1ZmZmZFx1NjQyNVx1NjQyN1x1NjQyOFx1NjQyOVx1NjQyYlx1NjQyZVx1NjQyZlx1NjQzMFx1NjQzMVx1NjQzMlx1NjQzM1x1NjQzNVx1NjQzNlx1NjQzN1x1NjQzOFx1NjQzOVx1NjQzYlx1NjQzY1x1NjQzZVx1NjQ0MFx1NjQ0Mlx1NjQ0M1x1NjQ0OVx1''@;'; put 'put ''NjQ0Ylx1NjQ0Y1x1NjQ0ZFx1NjQ0ZVx1NjQ0Zlx1NjQ1MFx1NjQ1MVx1NjQ1M1x1NjQ1NVx1NjQ1Nlx1NjQ1N1x1NjQ1OVx1NjQ1YVx1NjQ1Ylx1NjQ1Y1x1NjQ1ZFx1NjQ1Zlx1NjQ2MFx1NjQ2MVx1NjQ2Mlx1NjQ2M1x1NjQ2NFx1NjQ2NVx1NjQ2Nlx1NjQ2OFx1NjQ2YVx1NjQ2Ylx1NjQ2''@;'; put 'put ''Y1x1NjQ2ZVx1NjQ2Zlx1NjQ3MFx1NjQ3MVx1NjQ3Mlx1NjQ3M1x1NjQ3NFx1NjQ3NVx1NjQ3Nlx1NjQ3N1x1NjQ3Ylx1NjQ3Y1x1NjQ3ZFx1NjQ3ZVx1NjQ3Zlx1NjQ4MFx1NjQ4MVx1NjQ4M1x1NjQ4Nlx1NjQ4OFx1NjQ4OVx1NjQ4YVx1NjQ4Ylx1NjQ4Y1x1NjQ4ZFx1NjQ4ZVx1NjQ4Zlx1''@;'; put 'put ''NjQ5MFx1NjQ5M1x1NjQ5NFx1NjQ5N1x1NjQ5OFx1NjQ5YVx1NjQ5Ylx1NjQ5Y1x1NjQ5ZFx1NjQ5Zlx1NjRhMFx1NjRhMVx1NjRhMlx1NjRhM1x1NjRhNVx1NjRhNlx1NjRhN1x1NjRhOFx1NjRhYVx1NjRhYlx1NjRhZlx1NjRiMVx1NjRiMlx1NjRiM1x1NjRiNFx1NjRiNlx1NjRiOVx1NjRi''@;'; put 'put ''Ylx1NjRiZFx1NjRiZVx1NjRiZlx1NjRjMVx1NjRjM1x1NjRjNFx1NjRjNlx1NjRjN1x1NjRjOFx1NjRjOVx1NjRjYVx1NjRjYlx1NjRjY1x1NjRjZlx1NjRkMVx1NjRkM1x1NjRkNFx1NjRkNVx1NjRkNlx1NjRkOVx1NjRkYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0N10ubGVuZ3Ro''@;'; put 'put ''OysrRSk2NTUzMyE9PUJbMTQ3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDddW0VdXT0zNzYzMitFLExbMzc2MzIrRV09QlsxNDddW0VdKTtmb3IoQlsxNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0ZGJcdTY0ZGNcdTY0''@;'; put 'put ''ZGRcdTY0ZGZcdTY0ZTBcdTY0ZTFcdTY0ZTNcdTY0ZTVcdTY0ZTdcdTY0ZThcdTY0ZTlcdTY0ZWFcdTY0ZWJcdTY0ZWNcdTY0ZWRcdTY0ZWVcdTY0ZWZcdTY0ZjBcdTY0ZjFcdTY0ZjJcdTY0ZjNcdTY0ZjRcdTY0ZjVcdTY0ZjZcdTY0ZjdcdTY0ZjhcdTY0ZjlcdTY0ZmFcdTY0ZmJcdTY0ZmNc''@;'; put 'put ''dTY0ZmRcdTY0ZmVcdTY0ZmZcdTY1MDFcdTY1MDJcdTY1MDNcdTY1MDRcdTY1MDVcdTY1MDZcdTY1MDdcdTY1MDhcdTY1MGFcdTY1MGJcdTY1MGNcdTY1MGRcdTY1MGVcdTY1MGZcdTY1MTBcdTY1MTFcdTY1MTNcdTY1MTRcdTY1MTVcdTY1MTZcdTY1MTdcdTY1MTlcdTY1MWFcdTY1MWJcdTY1''@;'; put 'put ''MWNcdTY1MWRcdTY1MWVcdTY1MWZcdTY1MjBcdTY1MjFcdWZmZmRcdTY1MjJcdTY1MjNcdTY1MjRcdTY1MjZcdTY1MjdcdTY1MjhcdTY1MjlcdTY1MmFcdTY1MmNcdTY1MmRcdTY1MzBcdTY1MzFcdTY1MzJcdTY1MzNcdTY1MzdcdTY1M2FcdTY1M2NcdTY1M2RcdTY1NDBcdTY1NDFcdTY1NDJc''@;'; put 'put ''dTY1NDNcdTY1NDRcdTY1NDZcdTY1NDdcdTY1NGFcdTY1NGJcdTY1NGRcdTY1NGVcdTY1NTBcdTY1NTJcdTY1NTNcdTY1NTRcdTY1NTdcdTY1NThcdTY1NWFcdTY1NWNcdTY1NWZcdTY1NjBcdTY1NjFcdTY1NjRcdTY1NjVcdTY1NjdcdTY1NjhcdTY1NjlcdTY1NmFcdTY1NmRcdTY1NmVcdTY1''@;'; put 'put ''NmZcdTY1NzFcdTY1NzNcdTY1NzVcdTY1NzZcdTY1NzhcdTY1NzlcdTY1N2FcdTY1N2JcdTY1N2NcdTY1N2RcdTY1N2VcdTY1N2ZcdTY1ODBcdTY1ODFcdTY1ODJcdTY1ODNcdTY1ODRcdTY1ODVcdTY1ODZcdTY1ODhcdTY1ODlcdTY1OGFcdTY1OGRcdTY1OGVcdTY1OGZcdTY1OTJcdTY1OTRc''@;'; put 'put ''dTY1OTVcdTY1OTZcdTY1OThcdTY1OWFcdTY1OWRcdTY1OWVcdTY1YTBcdTY1YTJcdTY1YTNcdTY1YTZcdTY1YThcdTY1YWFcdTY1YWNcdTY1YWVcdTY1YjFcdTY1YjJcdTY1YjNcdTY1YjRcdTY1YjVcdTY1YjZcdTY1YjdcdTY1YjhcdTY1YmFcdTY1YmJcdTY1YmVcdTY1YmZcdTY1YzBcdTY1''@;'; put 'put ''YzJcdTY1YzdcdTY1YzhcdTY1YzlcdTY1Y2FcdTY1Y2RcdTY1ZDBcdTY1ZDFcdTY1ZDNcdTY1ZDRcdTY1ZDVcdTY1ZDhcdTY1ZDlcdTY1ZGFcdTY1ZGJcdTY1ZGNcdTY1ZGRcdTY1ZGVcdTY1ZGZcdTY1ZTFcdTY1ZTNcdTY1ZTRcdTY1ZWFcdTY1ZWJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; put 'put ''QlsxNDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ4XVtFXV09Mzc4ODgrRSxMWzM3ODg4K0VdPUJbMTQ4XVtFXSk7Zm9yKEJbMTQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2''@;'; put 'put ''NWYyXHU2NWYzXHU2NWY0XHU2NWY1XHU2NWY4XHU2NWY5XHU2NWZiXHU2NWZjXHU2NWZkXHU2NWZlXHU2NWZmXHU2NjAxXHU2NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2NjA5XHU2NjBiXHU2NjBkXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFhXHU2NjFiXHU2NjFj''@;'; put 'put ''XHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMwXHU2NjMyXHU2NjMzXHU2NjM3XHU2NjM4XHU2NjM5XHU2NjNhXHU2NjNiXHU2NjNkXHU2NjNmXHU2NjQwXHU2NjQyXHU2NjQ0XHU2NjQ1XHU2NjQ2XHU2NjQ3XHU2''@;'; put 'put ''NjQ4XHU2NjQ5XHU2NjRhXHU2NjRkXHU2NjRlXHU2NjUwXHU2NjUxXHU2NjU4XHVmZmZkXHU2NjU5XHU2NjViXHU2NjVjXHU2NjVkXHU2NjVlXHU2NjYwXHU2NjYyXHU2NjYzXHU2NjY1XHU2NjY3XHU2NjY5XHU2NjZhXHU2NjZiXHU2NjZjXHU2NjZkXHU2NjcxXHU2NjcyXHU2NjczXHU2Njc1''@;'; put 'put ''XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjdjXHU2NjdkXHU2NjdmXHU2NjgwXHU2NjgxXHU2NjgzXHU2Njg1XHU2Njg2XHU2Njg4XHU2Njg5XHU2NjhhXHU2NjhiXHU2NjhkXHU2NjhlXHU2NjhmXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2Njk1XHU2Njk4XHU2Njk5XHU2NjlhXHU2NjliXHU2''@;'; put 'put ''NjljXHU2NjllXHU2NjlmXHU2NmEwXHU2NmExXHU2NmEyXHU2NmEzXHU2NmE0XHU2NmE1XHU2NmE2XHU2NmE5XHU2NmFhXHU2NmFiXHU2NmFjXHU2NmFkXHU2NmFmXHU2NmIwXHU2NmIxXHU2NmIyXHU2NmIzXHU2NmI1XHU2NmI2XHU2NmI3XHU2NmI4XHU2NmJhXHU2NmJiXHU2NmJjXHU2NmJk''@;'; put 'put ''XHU2NmJmXHU2NmMwXHU2NmMxXHU2NmMyXHU2NmMzXHU2NmM0XHU2NmM1XHU2NmM2XHU2NmM3XHU2NmM4XHU2NmM5XHU2NmNhXHU2NmNiXHU2NmNjXHU2NmNkXHU2NmNlXHU2NmNmXHU2NmQwXHU2NmQxXHU2NmQyXHU2NmQzXHU2NmQ0XHU2NmQ1XHU2NmQ2XHU2NmQ3XHU2NmQ4XHU2NmRhXHU2''@;'; put 'put ''NmRlXHU2NmRmXHU2NmUwXHU2NmUxXHU2NmUyXHU2NmUzXHU2NmU0XHU2NmU1XHU2NmU3XHU2NmU4XHU2NmVhXHU2NmViXHU2NmVjXHU2NmVkXHU2NmVlXHU2NmVmXHU2NmYxXHU2NmY1XHU2NmY2XHU2NmY4XHU2NmZhXHU2NmZiXHU2NmZkXHU2NzAxXHU2NzAyXHU2NzAzXHVmZmZkIi5zcGxp''@;'; put 'put ''dCgiIiksRT0wO0UhPUJbMTQ5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0OV1bRV1dPTM4MTQ0K0UsTFszODE0NCtFXT1CWzE0OV1bRV0pO2ZvcihCWzE1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1NjcwNFx1NjcwNVx1NjcwNlx1NjcwN1x1NjcwY1x1NjcwZVx1NjcwZlx1NjcxMVx1NjcxMlx1NjcxM1x1NjcxNlx1NjcxOFx1NjcxOVx1NjcxYVx1NjcxY1x1NjcxZVx1NjcyMFx1NjcyMVx1NjcyMlx1NjcyM1x1NjcyNFx1NjcyNVx1NjcyN1x1NjcyOVx1NjcyZVx1Njcz''@;'; put 'put ''MFx1NjczMlx1NjczM1x1NjczNlx1NjczN1x1NjczOFx1NjczOVx1NjczYlx1NjczY1x1NjczZVx1NjczZlx1Njc0MVx1Njc0NFx1Njc0NVx1Njc0N1x1Njc0YVx1Njc0Ylx1Njc0ZFx1Njc1Mlx1Njc1NFx1Njc1NVx1Njc1N1x1Njc1OFx1Njc1OVx1Njc1YVx1Njc1Ylx1Njc1ZFx1Njc2Mlx1''@;'; put 'put ''Njc2M1x1Njc2NFx1Njc2Nlx1Njc2N1x1Njc2Ylx1Njc2Y1x1Njc2ZVx1Njc3MVx1Njc3NFx1Njc3Nlx1ZmZmZFx1Njc3OFx1Njc3OVx1Njc3YVx1Njc3Ylx1Njc3ZFx1Njc4MFx1Njc4Mlx1Njc4M1x1Njc4NVx1Njc4Nlx1Njc4OFx1Njc4YVx1Njc4Y1x1Njc4ZFx1Njc4ZVx1Njc4Zlx1Njc5''@;'; put 'put ''MVx1Njc5Mlx1Njc5M1x1Njc5NFx1Njc5Nlx1Njc5OVx1Njc5Ylx1Njc5Zlx1NjdhMFx1NjdhMVx1NjdhNFx1NjdhNlx1NjdhOVx1NjdhY1x1NjdhZVx1NjdiMVx1NjdiMlx1NjdiNFx1NjdiOVx1NjdiYVx1NjdiYlx1NjdiY1x1NjdiZFx1NjdiZVx1NjdiZlx1NjdjMFx1NjdjMlx1NjdjNVx1''@;'; put 'put ''NjdjNlx1NjdjN1x1NjdjOFx1NjdjOVx1NjdjYVx1NjdjYlx1NjdjY1x1NjdjZFx1NjdjZVx1NjdkNVx1NjdkNlx1NjdkN1x1NjdkYlx1NjdkZlx1NjdlMVx1NjdlM1x1NjdlNFx1NjdlNlx1NjdlN1x1NjdlOFx1NjdlYVx1NjdlYlx1NjdlZFx1NjdlZVx1NjdmMlx1NjdmNVx1NjdmNlx1Njdm''@;'; put 'put ''N1x1NjdmOFx1NjdmOVx1NjdmYVx1NjdmYlx1NjdmY1x1NjdmZVx1NjgwMVx1NjgwMlx1NjgwM1x1NjgwNFx1NjgwNlx1NjgwZFx1NjgxMFx1NjgxMlx1NjgxNFx1NjgxNVx1NjgxOFx1NjgxOVx1NjgxYVx1NjgxYlx1NjgxY1x1NjgxZVx1NjgxZlx1NjgyMFx1NjgyMlx1NjgyM1x1NjgyNFx1''@;'; put 'put ''NjgyNVx1NjgyNlx1NjgyN1x1NjgyOFx1NjgyYlx1NjgyY1x1NjgyZFx1NjgyZVx1NjgyZlx1NjgzMFx1NjgzMVx1NjgzNFx1NjgzNVx1NjgzNlx1NjgzYVx1NjgzYlx1NjgzZlx1Njg0N1x1Njg0Ylx1Njg0ZFx1Njg0Zlx1Njg1Mlx1Njg1Nlx1Njg1N1x1Njg1OFx1Njg1OVx1Njg1YVx1Njg1''@;'; put 'put ''Ylx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTBdW0VdXT0zODQwMCtFLExbMzg0MDArRV09QlsxNTBdW0VdKTtmb3IoQlsxNTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY4NWNcdTY4NWRcdTY4NWVcdTY4NWZcdTY4NmFcdTY4NmNcdTY4NmRcdTY4NmVcdTY4NmZcdTY4NzBcdTY4NzFcdTY4NzJcdTY4NzNcdTY4NzVcdTY4NzhcdTY4NzlcdTY4N2FcdTY4N2JcdTY4N2NcdTY4N2RcdTY4N2VcdTY4N2ZcdTY4ODBcdTY4''@;'; put 'put ''ODJcdTY4ODRcdTY4ODdcdTY4ODhcdTY4ODlcdTY4OGFcdTY4OGJcdTY4OGNcdTY4OGRcdTY4OGVcdTY4OTBcdTY4OTFcdTY4OTJcdTY4OTRcdTY4OTVcdTY4OTZcdTY4OThcdTY4OTlcdTY4OWFcdTY4OWJcdTY4OWNcdTY4OWRcdTY4OWVcdTY4OWZcdTY4YTBcdTY4YTFcdTY4YTNcdTY4YTRc''@;'; put 'put ''dTY4YTVcdTY4YTlcdTY4YWFcdTY4YWJcdTY4YWNcdTY4YWVcdTY4YjFcdTY4YjJcdTY4YjRcdTY4YjZcdTY4YjdcdTY4YjhcdWZmZmRcdTY4YjlcdTY4YmFcdTY4YmJcdTY4YmNcdTY4YmRcdTY4YmVcdTY4YmZcdTY4YzFcdTY4YzNcdTY4YzRcdTY4YzVcdTY4YzZcdTY4YzdcdTY4YzhcdTY4''@;'; put 'put ''Y2FcdTY4Y2NcdTY4Y2VcdTY4Y2ZcdTY4ZDBcdTY4ZDFcdTY4ZDNcdTY4ZDRcdTY4ZDZcdTY4ZDdcdTY4ZDlcdTY4ZGJcdTY4ZGNcdTY4ZGRcdTY4ZGVcdTY4ZGZcdTY4ZTFcdTY4ZTJcdTY4ZTRcdTY4ZTVcdTY4ZTZcdTY4ZTdcdTY4ZThcdTY4ZTlcdTY4ZWFcdTY4ZWJcdTY4ZWNcdTY4ZWRc''@;'; put 'put ''dTY4ZWZcdTY4ZjJcdTY4ZjNcdTY4ZjRcdTY4ZjZcdTY4ZjdcdTY4ZjhcdTY4ZmJcdTY4ZmRcdTY4ZmVcdTY4ZmZcdTY5MDBcdTY5MDJcdTY5MDNcdTY5MDRcdTY5MDZcdTY5MDdcdTY5MDhcdTY5MDlcdTY5MGFcdTY5MGNcdTY5MGZcdTY5MTFcdTY5MTNcdTY5MTRcdTY5MTVcdTY5MTZcdTY5''@;'; put 'put ''MTdcdTY5MThcdTY5MTlcdTY5MWFcdTY5MWJcdTY5MWNcdTY5MWRcdTY5MWVcdTY5MjFcdTY5MjJcdTY5MjNcdTY5MjVcdTY5MjZcdTY5MjdcdTY5MjhcdTY5MjlcdTY5MmFcdTY5MmJcdTY5MmNcdTY5MmVcdTY5MmZcdTY5MzFcdTY5MzJcdTY5MzNcdTY5MzVcdTY5MzZcdTY5MzdcdTY5Mzhc''@;'; put 'put ''dTY5M2FcdTY5M2JcdTY5M2NcdTY5M2VcdTY5NDBcdTY5NDFcdTY5NDNcdTY5NDRcdTY5NDVcdTY5NDZcdTY5NDdcdTY5NDhcdTY5NDlcdTY5NGFcdTY5NGJcdTY5NGNcdTY5NGRcdTY5NGVcdTY5NGZcdTY5NTBcdTY5NTFcdTY5NTJcdTY5NTNcdTY5NTVcdTY5NTZcdTY5NThcdTY5NTlcdTY5''@;'; put 'put ''NWJcdTY5NWNcdTY5NWZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUxXVtFXV09Mzg2NTYrRSxMWzM4NjU2K0VdPUJbMTUxXVtFXSk7Zm9yKEJbMTUyXT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTYxXHU2OTYyXHU2OTY0XHU2OTY1XHU2OTY3XHU2OTY4XHU2OTY5XHU2OTZhXHU2OTZjXHU2OTZkXHU2OTZmXHU2OTcwXHU2OTcyXHU2OTczXHU2OTc0XHU2OTc1XHU2OTc2XHU2OTdhXHU2OTdiXHU2OTdkXHU2OTdlXHU2''@;'; put 'put ''OTdmXHU2OTgxXHU2OTgzXHU2OTg1XHU2OThhXHU2OThiXHU2OThjXHU2OThlXHU2OThmXHU2OTkwXHU2OTkxXHU2OTkyXHU2OTkzXHU2OTk2XHU2OTk3XHU2OTk5XHU2OTlhXHU2OTlkXHU2OTllXHU2OTlmXHU2OWEwXHU2OWExXHU2OWEyXHU2OWEzXHU2OWE0XHU2OWE1XHU2OWE2XHU2OWE5''@;'; put 'put ''XHU2OWFhXHU2OWFjXHU2OWFlXHU2OWFmXHU2OWIwXHU2OWIyXHU2OWIzXHU2OWI1XHU2OWI2XHU2OWI4XHU2OWI5XHU2OWJhXHU2OWJjXHU2OWJkXHVmZmZkXHU2OWJlXHU2OWJmXHU2OWMwXHU2OWMyXHU2OWMzXHU2OWM0XHU2OWM1XHU2OWM2XHU2OWM3XHU2OWM4XHU2OWM5XHU2OWNiXHU2''@;'; put 'put ''OWNkXHU2OWNmXHU2OWQxXHU2OWQyXHU2OWQzXHU2OWQ1XHU2OWQ2XHU2OWQ3XHU2OWQ4XHU2OWQ5XHU2OWRhXHU2OWRjXHU2OWRkXHU2OWRlXHU2OWUxXHU2OWUyXHU2OWUzXHU2OWU0XHU2OWU1XHU2OWU2XHU2OWU3XHU2OWU4XHU2OWU5XHU2OWVhXHU2OWViXHU2OWVjXHU2OWVlXHU2OWVm''@;'; put 'put ''XHU2OWYwXHU2OWYxXHU2OWYzXHU2OWY0XHU2OWY1XHU2OWY2XHU2OWY3XHU2OWY4XHU2OWY5XHU2OWZhXHU2OWZiXHU2OWZjXHU2OWZlXHU2YTAwXHU2YTAxXHU2YTAyXHU2YTAzXHU2YTA0XHU2YTA1XHU2YTA2XHU2YTA3XHU2YTA4XHU2YTA5XHU2YTBiXHU2YTBjXHU2YTBkXHU2YTBlXHU2''@;'; put 'put ''YTBmXHU2YTEwXHU2YTExXHU2YTEyXHU2YTEzXHU2YTE0XHU2YTE1XHU2YTE2XHU2YTE5XHU2YTFhXHU2YTFiXHU2YTFjXHU2YTFkXHU2YTFlXHU2YTIwXHU2YTIyXHU2YTIzXHU2YTI0XHU2YTI1XHU2YTI2XHU2YTI3XHU2YTI5XHU2YTJiXHU2YTJjXHU2YTJkXHU2YTJlXHU2YTMwXHU2YTMy''@;'; put 'put ''XHU2YTMzXHU2YTM0XHU2YTM2XHU2YTM3XHU2YTM4XHU2YTM5XHU2YTNhXHU2YTNiXHU2YTNjXHU2YTNmXHU2YTQwXHU2YTQxXHU2YTQyXHU2YTQzXHU2YTQ1XHU2YTQ2XHU2YTQ4XHU2YTQ5XHU2YTRhXHU2YTRiXHU2YTRjXHU2YTRkXHU2YTRlXHU2YTRmXHU2YTUxXHU2YTUyXHU2YTUzXHU2''@;'; put 'put ''YTU0XHU2YTU1XHU2YTU2XHU2YTU3XHU2YTVhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1Ml1bRV1dPTM4OTEyK0UsTFszODkxMitFXT1CWzE1Ml1bRV0pO2ZvcihCWzE1M109Ilx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmE1Y1x1NmE1ZFx1NmE1ZVx1NmE1Zlx1NmE2MFx1NmE2Mlx1NmE2M1x1NmE2NFx1NmE2Nlx1NmE2N1x1NmE2OFx1NmE2OVx1NmE2YVx1NmE2Ylx1NmE2Y1x1NmE2ZFx1NmE2ZVx1NmE2Zlx1NmE3MFx1''@;'; put 'put ''NmE3Mlx1NmE3M1x1NmE3NFx1NmE3NVx1NmE3Nlx1NmE3N1x1NmE3OFx1NmE3YVx1NmE3Ylx1NmE3ZFx1NmE3ZVx1NmE3Zlx1NmE4MVx1NmE4Mlx1NmE4M1x1NmE4NVx1NmE4Nlx1NmE4N1x1NmE4OFx1NmE4OVx1NmE4YVx1NmE4Ylx1NmE4Y1x1NmE4ZFx1NmE4Zlx1NmE5Mlx1NmE5M1x1NmE5''@;'; put 'put ''NFx1NmE5NVx1NmE5Nlx1NmE5OFx1NmE5OVx1NmE5YVx1NmE5Ylx1NmE5Y1x1NmE5ZFx1NmE5ZVx1NmE5Zlx1NmFhMVx1NmFhMlx1NmFhM1x1NmFhNFx1NmFhNVx1NmFhNlx1ZmZmZFx1NmFhN1x1NmFhOFx1NmFhYVx1NmFhZFx1NmFhZVx1NmFhZlx1NmFiMFx1NmFiMVx1NmFiMlx1NmFiM1x1''@;'; put 'put ''NmFiNFx1NmFiNVx1NmFiNlx1NmFiN1x1NmFiOFx1NmFiOVx1NmFiYVx1NmFiYlx1NmFiY1x1NmFiZFx1NmFiZVx1NmFiZlx1NmFjMFx1NmFjMVx1NmFjMlx1NmFjM1x1NmFjNFx1NmFjNVx1NmFjNlx1NmFjN1x1NmFjOFx1NmFjOVx1NmFjYVx1NmFjYlx1NmFjY1x1NmFjZFx1NmFjZVx1NmFj''@;'; put 'put ''Zlx1NmFkMFx1NmFkMVx1NmFkMlx1NmFkM1x1NmFkNFx1NmFkNVx1NmFkNlx1NmFkN1x1NmFkOFx1NmFkOVx1NmFkYVx1NmFkYlx1NmFkY1x1NmFkZFx1NmFkZVx1NmFkZlx1NmFlMFx1NmFlMVx1NmFlMlx1NmFlM1x1NmFlNFx1NmFlNVx1NmFlNlx1NmFlN1x1NmFlOFx1NmFlOVx1NmFlYVx1''@;'; put 'put ''NmFlYlx1NmFlY1x1NmFlZFx1NmFlZVx1NmFlZlx1NmFmMFx1NmFmMVx1NmFmMlx1NmFmM1x1NmFmNFx1NmFmNVx1NmFmNlx1NmFmN1x1NmFmOFx1NmFmOVx1NmFmYVx1NmFmYlx1NmFmY1x1NmFmZFx1NmFmZVx1NmFmZlx1NmIwMFx1NmIwMVx1NmIwMlx1NmIwM1x1NmIwNFx1NmIwNVx1NmIw''@;'; put 'put ''Nlx1NmIwN1x1NmIwOFx1NmIwOVx1NmIwYVx1NmIwYlx1NmIwY1x1NmIwZFx1NmIwZVx1NmIwZlx1NmIxMFx1NmIxMVx1NmIxMlx1NmIxM1x1NmIxNFx1NmIxNVx1NmIxNlx1NmIxN1x1NmIxOFx1NmIxOVx1NmIxYVx1NmIxYlx1NmIxY1x1NmIxZFx1NmIxZVx1NmIxZlx1NmIyNVx1NmIyNlx1''@;'; put 'put ''NmIyOFx1NmIyOVx1NmIyYVx1NmIyYlx1NmIyY1x1NmIyZFx1NmIyZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTUzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTNdW0VdXT0zOTE2OCtFLExbMzkxNjgrRV09QlsxNTNdW0VdKTtmb3Io''@;'; put 'put ''QlsxNTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZiMmZcdTZiMzBcdTZiMzFcdTZiMzNcdTZiMzRcdTZiMzVcdTZiMzZcdTZiMzhcdTZiM2JcdTZiM2NcdTZiM2RcdTZiM2ZcdTZiNDBcdTZiNDFcdTZiNDJcdTZiNDRcdTZiNDVc''@;'; put 'put ''dTZiNDhcdTZiNGFcdTZiNGJcdTZiNGRcdTZiNGVcdTZiNGZcdTZiNTBcdTZiNTFcdTZiNTJcdTZiNTNcdTZiNTRcdTZiNTVcdTZiNTZcdTZiNTdcdTZiNThcdTZiNWFcdTZiNWJcdTZiNWNcdTZiNWRcdTZiNWVcdTZiNWZcdTZiNjBcdTZiNjFcdTZiNjhcdTZiNjlcdTZiNmJcdTZiNmNcdTZi''@;'; put 'put ''NmRcdTZiNmVcdTZiNmZcdTZiNzBcdTZiNzFcdTZiNzJcdTZiNzNcdTZiNzRcdTZiNzVcdTZiNzZcdTZiNzdcdTZiNzhcdTZiN2FcdTZiN2RcdTZiN2VcdTZiN2ZcdTZiODBcdTZiODVcdTZiODhcdWZmZmRcdTZiOGNcdTZiOGVcdTZiOGZcdTZiOTBcdTZiOTFcdTZiOTRcdTZiOTVcdTZiOTdc''@;'; put 'put ''dTZiOThcdTZiOTlcdTZiOWNcdTZiOWRcdTZiOWVcdTZiOWZcdTZiYTBcdTZiYTJcdTZiYTNcdTZiYTRcdTZiYTVcdTZiYTZcdTZiYTdcdTZiYThcdTZiYTlcdTZiYWJcdTZiYWNcdTZiYWRcdTZiYWVcdTZiYWZcdTZiYjBcdTZiYjFcdTZiYjJcdTZiYjZcdTZiYjhcdTZiYjlcdTZiYmFcdTZi''@;'; put 'put ''YmJcdTZiYmNcdTZiYmRcdTZiYmVcdTZiYzBcdTZiYzNcdTZiYzRcdTZiYzZcdTZiYzdcdTZiYzhcdTZiYzlcdTZiY2FcdTZiY2NcdTZiY2VcdTZiZDBcdTZiZDFcdTZiZDhcdTZiZGFcdTZiZGNcdTZiZGRcdTZiZGVcdTZiZGZcdTZiZTBcdTZiZTJcdTZiZTNcdTZiZTRcdTZiZTVcdTZiZTZc''@;'; put 'put ''dTZiZTdcdTZiZThcdTZiZTlcdTZiZWNcdTZiZWRcdTZiZWVcdTZiZjBcdTZiZjFcdTZiZjJcdTZiZjRcdTZiZjZcdTZiZjdcdTZiZjhcdTZiZmFcdTZiZmJcdTZiZmNcdTZiZmVcdTZiZmZcdTZjMDBcdTZjMDFcdTZjMDJcdTZjMDNcdTZjMDRcdTZjMDhcdTZjMDlcdTZjMGFcdTZjMGJcdTZj''@;'; put 'put ''MGNcdTZjMGVcdTZjMTJcdTZjMTdcdTZjMWNcdTZjMWRcdTZjMWVcdTZjMjBcdTZjMjNcdTZjMjVcdTZjMmJcdTZjMmNcdTZjMmRcdTZjMzFcdTZjMzNcdTZjMzZcdTZjMzdcdTZjMzlcdTZjM2FcdTZjM2JcdTZjM2NcdTZjM2VcdTZjM2ZcdTZjNDNcdTZjNDRcdTZjNDVcdTZjNDhcdTZjNGJc''@;'; put 'put ''dTZjNGNcdTZjNGRcdTZjNGVcdTZjNGZcdTZjNTFcdTZjNTJcdTZjNTNcdTZjNTZcdTZjNThcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU0XVtFXV09Mzk0MjQrRSxMWzM5NDI0K0VdPUJb''@;'; put 'put ''MTU0XVtFXSk7Zm9yKEJbMTU1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzU5XHU2YzVhXHU2YzYyXHU2YzYzXHU2YzY1XHU2YzY2XHU2YzY3XHU2YzZiXHU2YzZjXHU2YzZkXHU2YzZlXHU2YzZmXHU2YzcxXHU2YzczXHU2Yzc1''@;'; put 'put ''XHU2Yzc3XHU2Yzc4XHU2YzdhXHU2YzdiXHU2YzdjXHU2YzdmXHU2YzgwXHU2Yzg0XHU2Yzg3XHU2YzhhXHU2YzhiXHU2YzhkXHU2YzhlXHU2YzkxXHU2YzkyXHU2Yzk1XHU2Yzk2XHU2Yzk3XHU2Yzk4XHU2YzlhXHU2YzljXHU2YzlkXHU2YzllXHU2Y2EwXHU2Y2EyXHU2Y2E4XHU2Y2FjXHU2''@;'; put 'put ''Y2FmXHU2Y2IwXHU2Y2I0XHU2Y2I1XHU2Y2I2XHU2Y2I3XHU2Y2JhXHU2Y2MwXHU2Y2MxXHU2Y2MyXHU2Y2MzXHU2Y2M2XHU2Y2M3XHU2Y2M4XHU2Y2NiXHU2Y2NkXHU2Y2NlXHU2Y2NmXHU2Y2QxXHU2Y2QyXHU2Y2Q4XHVmZmZkXHU2Y2Q5XHU2Y2RhXHU2Y2RjXHU2Y2RkXHU2Y2RmXHU2Y2U0''@;'; put 'put ''XHU2Y2U2XHU2Y2U3XHU2Y2U5XHU2Y2VjXHU2Y2VkXHU2Y2YyXHU2Y2Y0XHU2Y2Y5XHU2Y2ZmXHU2ZDAwXHU2ZDAyXHU2ZDAzXHU2ZDA1XHU2ZDA2XHU2ZDA4XHU2ZDA5XHU2ZDBhXHU2ZDBkXHU2ZDBmXHU2ZDEwXHU2ZDExXHU2ZDEzXHU2ZDE0XHU2ZDE1XHU2ZDE2XHU2ZDE4XHU2ZDFjXHU2''@;'; put 'put ''ZDFkXHU2ZDFmXHU2ZDIwXHU2ZDIxXHU2ZDIyXHU2ZDIzXHU2ZDI0XHU2ZDI2XHU2ZDI4XHU2ZDI5XHU2ZDJjXHU2ZDJkXHU2ZDJmXHU2ZDMwXHU2ZDM0XHU2ZDM2XHU2ZDM3XHU2ZDM4XHU2ZDNhXHU2ZDNmXHU2ZDQwXHU2ZDQyXHU2ZDQ0XHU2ZDQ5XHU2ZDRjXHU2ZDUwXHU2ZDU1XHU2ZDU2''@;'; put 'put ''XHU2ZDU3XHU2ZDU4XHU2ZDViXHU2ZDVkXHU2ZDVmXHU2ZDYxXHU2ZDYyXHU2ZDY0XHU2ZDY1XHU2ZDY3XHU2ZDY4XHU2ZDZiXHU2ZDZjXHU2ZDZkXHU2ZDcwXHU2ZDcxXHU2ZDcyXHU2ZDczXHU2ZDc1XHU2ZDc2XHU2ZDc5XHU2ZDdhXHU2ZDdiXHU2ZDdkXHU2ZDdlXHU2ZDdmXHU2ZDgwXHU2''@;'; put 'put ''ZDgxXHU2ZDgzXHU2ZDg0XHU2ZDg2XHU2ZDg3XHU2ZDhhXHU2ZDhiXHU2ZDhkXHU2ZDhmXHU2ZDkwXHU2ZDkyXHU2ZDk2XHU2ZDk3XHU2ZDk4XHU2ZDk5XHU2ZDlhXHU2ZDljXHU2ZGEyXHU2ZGE1XHU2ZGFjXHU2ZGFkXHU2ZGIwXHU2ZGIxXHU2ZGIzXHU2ZGI0XHU2ZGI2XHU2ZGI3XHU2ZGI5''@;'; put 'put ''XHU2ZGJhXHU2ZGJiXHU2ZGJjXHU2ZGJkXHU2ZGJlXHU2ZGMxXHU2ZGMyXHU2ZGMzXHU2ZGM4XHU2ZGM5XHU2ZGNhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1NV1bRV1dPTM5NjgwK0Us''@;'; put 'put ''TFszOTY4MCtFXT1CWzE1NV1bRV0pO2ZvcihCWzE1Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmRjZFx1NmRjZVx1NmRjZlx1NmRkMFx1NmRkMlx1NmRkM1x1NmRkNFx1NmRkNVx1NmRkN1x1NmRkYVx1NmRkYlx1NmRkY1x1NmRk''@;'; put 'put ''Zlx1NmRlMlx1NmRlM1x1NmRlNVx1NmRlN1x1NmRlOFx1NmRlOVx1NmRlYVx1NmRlZFx1NmRlZlx1NmRmMFx1NmRmMlx1NmRmNFx1NmRmNVx1NmRmNlx1NmRmOFx1NmRmYVx1NmRmZFx1NmRmZVx1NmRmZlx1NmUwMFx1NmUwMVx1NmUwMlx1NmUwM1x1NmUwNFx1NmUwNlx1NmUwN1x1NmUwOFx1''@;'; put 'put ''NmUwOVx1NmUwYlx1NmUwZlx1NmUxMlx1NmUxM1x1NmUxNVx1NmUxOFx1NmUxOVx1NmUxYlx1NmUxY1x1NmUxZVx1NmUxZlx1NmUyMlx1NmUyNlx1NmUyN1x1NmUyOFx1NmUyYVx1NmUyY1x1NmUyZVx1NmUzMFx1NmUzMVx1NmUzM1x1NmUzNVx1ZmZmZFx1NmUzNlx1NmUzN1x1NmUzOVx1NmUz''@;'; put 'put ''Ylx1NmUzY1x1NmUzZFx1NmUzZVx1NmUzZlx1NmU0MFx1NmU0MVx1NmU0Mlx1NmU0NVx1NmU0Nlx1NmU0N1x1NmU0OFx1NmU0OVx1NmU0YVx1NmU0Ylx1NmU0Y1x1NmU0Zlx1NmU1MFx1NmU1MVx1NmU1Mlx1NmU1NVx1NmU1N1x1NmU1OVx1NmU1YVx1NmU1Y1x1NmU1ZFx1NmU1ZVx1NmU2MFx1''@;'; put 'put ''NmU2MVx1NmU2Mlx1NmU2M1x1NmU2NFx1NmU2NVx1NmU2Nlx1NmU2N1x1NmU2OFx1NmU2OVx1NmU2YVx1NmU2Y1x1NmU2ZFx1NmU2Zlx1NmU3MFx1NmU3MVx1NmU3Mlx1NmU3M1x1NmU3NFx1NmU3NVx1NmU3Nlx1NmU3N1x1NmU3OFx1NmU3OVx1NmU3YVx1NmU3Ylx1NmU3Y1x1NmU3ZFx1NmU4''@;'; put 'put ''MFx1NmU4MVx1NmU4Mlx1NmU4NFx1NmU4N1x1NmU4OFx1NmU4YVx1NmU4Ylx1NmU4Y1x1NmU4ZFx1NmU4ZVx1NmU5MVx1NmU5Mlx1NmU5M1x1NmU5NFx1NmU5NVx1NmU5Nlx1NmU5N1x1NmU5OVx1NmU5YVx1NmU5Ylx1NmU5ZFx1NmU5ZVx1NmVhMFx1NmVhMVx1NmVhM1x1NmVhNFx1NmVhNlx1''@;'; put 'put ''NmVhOFx1NmVhOVx1NmVhYlx1NmVhY1x1NmVhZFx1NmVhZVx1NmViMFx1NmViM1x1NmViNVx1NmViOFx1NmViOVx1NmViY1x1NmViZVx1NmViZlx1NmVjMFx1NmVjM1x1NmVjNFx1NmVjNVx1NmVjNlx1NmVjOFx1NmVjOVx1NmVjYVx1NmVjY1x1NmVjZFx1NmVjZVx1NmVkMFx1NmVkMlx1NmVk''@;'; put 'put ''Nlx1NmVkOFx1NmVkOVx1NmVkYlx1NmVkY1x1NmVkZFx1NmVlM1x1NmVlN1x1NmVlYVx1NmVlYlx1NmVlY1x1NmVlZFx1NmVlZVx1NmVlZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTZd''@;'; put 'put ''W0VdXT0zOTkzNitFLExbMzk5MzYrRV09QlsxNTZdW0VdKTtmb3IoQlsxNTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlZjBcdTZlZjFcdTZlZjJcdTZlZjNcdTZlZjVcdTZlZjZcdTZlZjdcdTZlZjhcdTZlZmFcdTZlZmJcdTZl''@;'; put 'put ''ZmNcdTZlZmRcdTZlZmVcdTZlZmZcdTZmMDBcdTZmMDFcdTZmMDNcdTZmMDRcdTZmMDVcdTZmMDdcdTZmMDhcdTZmMGFcdTZmMGJcdTZmMGNcdTZmMGRcdTZmMGVcdTZmMTBcdTZmMTFcdTZmMTJcdTZmMTZcdTZmMTdcdTZmMThcdTZmMTlcdTZmMWFcdTZmMWJcdTZmMWNcdTZmMWRcdTZmMWVc''@;'; put 'put ''dTZmMWZcdTZmMjFcdTZmMjJcdTZmMjNcdTZmMjVcdTZmMjZcdTZmMjdcdTZmMjhcdTZmMmNcdTZmMmVcdTZmMzBcdTZmMzJcdTZmMzRcdTZmMzVcdTZmMzdcdTZmMzhcdTZmMzlcdTZmM2FcdTZmM2JcdTZmM2NcdTZmM2RcdTZmM2ZcdTZmNDBcdTZmNDFcdTZmNDJcdWZmZmRcdTZmNDNcdTZm''@;'; put 'put ''NDRcdTZmNDVcdTZmNDhcdTZmNDlcdTZmNGFcdTZmNGNcdTZmNGVcdTZmNGZcdTZmNTBcdTZmNTFcdTZmNTJcdTZmNTNcdTZmNTRcdTZmNTVcdTZmNTZcdTZmNTdcdTZmNTlcdTZmNWFcdTZmNWJcdTZmNWRcdTZmNWZcdTZmNjBcdTZmNjFcdTZmNjNcdTZmNjRcdTZmNjVcdTZmNjdcdTZmNjhc''@;'; put 'put ''dTZmNjlcdTZmNmFcdTZmNmJcdTZmNmNcdTZmNmZcdTZmNzBcdTZmNzFcdTZmNzNcdTZmNzVcdTZmNzZcdTZmNzdcdTZmNzlcdTZmN2JcdTZmN2RcdTZmN2VcdTZmN2ZcdTZmODBcdTZmODFcdTZmODJcdTZmODNcdTZmODVcdTZmODZcdTZmODdcdTZmOGFcdTZmOGJcdTZmOGZcdTZmOTBcdTZm''@;'; put 'put ''OTFcdTZmOTJcdTZmOTNcdTZmOTRcdTZmOTVcdTZmOTZcdTZmOTdcdTZmOThcdTZmOTlcdTZmOWFcdTZmOWJcdTZmOWRcdTZmOWVcdTZmOWZcdTZmYTBcdTZmYTJcdTZmYTNcdTZmYTRcdTZmYTVcdTZmYTZcdTZmYThcdTZmYTlcdTZmYWFcdTZmYWJcdTZmYWNcdTZmYWRcdTZmYWVcdTZmYWZc''@;'; put 'put ''dTZmYjBcdTZmYjFcdTZmYjJcdTZmYjRcdTZmYjVcdTZmYjdcdTZmYjhcdTZmYmFcdTZmYmJcdTZmYmNcdTZmYmRcdTZmYmVcdTZmYmZcdTZmYzFcdTZmYzNcdTZmYzRcdTZmYzVcdTZmYzZcdTZmYzdcdTZmYzhcdTZmY2FcdTZmY2JcdTZmY2NcdTZmY2RcdTZmY2VcdTZmY2ZcdTZmZDBcdTZm''@;'; put 'put ''ZDNcdTZmZDRcdTZmZDVcdTZmZDZcdTZmZDdcdTZmZDhcdTZmZDlcdTZmZGFcdTZmZGJcdTZmZGNcdTZmZGRcdTZmZGZcdTZmZTJcdTZmZTNcdTZmZTRcdTZmZTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1N11bRV0uY2hhckNvZGVBdCgw''@;'; put 'put ''KSYmKG1lW0JbMTU3XVtFXV09NDAxOTIrRSxMWzQwMTkyK0VdPUJbMTU3XVtFXSk7Zm9yKEJbMTU4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZmU2XHU2ZmU3XHU2ZmU4XHU2ZmU5XHU2ZmVhXHU2ZmViXHU2ZmVjXHU2ZmVkXHU2''@;'; put 'put ''ZmYwXHU2ZmYxXHU2ZmYyXHU2ZmYzXHU2ZmY0XHU2ZmY1XHU2ZmY2XHU2ZmY3XHU2ZmY4XHU2ZmY5XHU2ZmZhXHU2ZmZiXHU2ZmZjXHU2ZmZkXHU2ZmZlXHU2ZmZmXHU3MDAwXHU3MDAxXHU3MDAyXHU3MDAzXHU3MDA0XHU3MDA1XHU3MDA2XHU3MDA3XHU3MDA4XHU3MDA5XHU3MDBhXHU3MDBi''@;'; put 'put ''XHU3MDBjXHU3MDBkXHU3MDBlXHU3MDBmXHU3MDEwXHU3MDEyXHU3MDEzXHU3MDE0XHU3MDE1XHU3MDE2XHU3MDE3XHU3MDE4XHU3MDE5XHU3MDFjXHU3MDFkXHU3MDFlXHU3MDFmXHU3MDIwXHU3MDIxXHU3MDIyXHU3MDI0XHU3MDI1XHU3MDI2XHU3MDI3XHU3MDI4XHU3MDI5XHU3MDJhXHVm''@;'; put 'put ''ZmZkXHU3MDJiXHU3MDJjXHU3MDJkXHU3MDJlXHU3MDJmXHU3MDMwXHU3MDMxXHU3MDMyXHU3MDMzXHU3MDM0XHU3MDM2XHU3MDM3XHU3MDM4XHU3MDNhXHU3MDNiXHU3MDNjXHU3MDNkXHU3MDNlXHU3MDNmXHU3MDQwXHU3MDQxXHU3MDQyXHU3MDQzXHU3MDQ0XHU3MDQ1XHU3MDQ2XHU3MDQ3''@;'; put 'put ''XHU3MDQ4XHU3MDQ5XHU3MDRhXHU3MDRiXHU3MDRkXHU3MDRlXHU3MDUwXHU3MDUxXHU3MDUyXHU3MDUzXHU3MDU0XHU3MDU1XHU3MDU2XHU3MDU3XHU3MDU4XHU3MDU5XHU3MDVhXHU3MDViXHU3MDVjXHU3MDVkXHU3MDVmXHU3MDYwXHU3MDYxXHU3MDYyXHU3MDYzXHU3MDY0XHU3MDY1XHU3''@;'; put 'put ''MDY2XHU3MDY3XHU3MDY4XHU3MDY5XHU3MDZhXHU3MDZlXHU3MDcxXHU3MDcyXHU3MDczXHU3MDc0XHU3MDc3XHU3MDc5XHU3MDdhXHU3MDdiXHU3MDdkXHU3MDgxXHU3MDgyXHU3MDgzXHU3MDg0XHU3MDg2XHU3MDg3XHU3MDg4XHU3MDhiXHU3MDhjXHU3MDhkXHU3MDhmXHU3MDkwXHU3MDkx''@;'; put 'put ''XHU3MDkzXHU3MDk3XHU3MDk4XHU3MDlhXHU3MDliXHU3MDllXHU3MDlmXHU3MGEwXHU3MGExXHU3MGEyXHU3MGEzXHU3MGE0XHU3MGE1XHU3MGE2XHU3MGE3XHU3MGE4XHU3MGE5XHU3MGFhXHU3MGIwXHU3MGIyXHU3MGI0XHU3MGI1XHU3MGI2XHU3MGJhXHU3MGJlXHU3MGJmXHU3MGM0XHU3''@;'; put 'put ''MGM1XHU3MGM2XHU3MGM3XHU3MGM5XHU3MGNiXHU3MGNjXHU3MGNkXHU3MGNlXHU3MGNmXHU3MGQwXHU3MGQxXHU3MGQyXHU3MGQzXHU3MGQ0XHU3MGQ1XHU3MGQ2XHU3MGQ3XHU3MGRhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNThdW0Vd''@;'; put 'put ''LmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1OF1bRV1dPTQwNDQ4K0UsTFs0MDQ0OCtFXT1CWzE1OF1bRV0pO2ZvcihCWzE1OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzBkY1x1NzBkZFx1NzBkZVx1NzBlMFx1NzBlMVx1NzBlMlx1''@;'; put 'put ''NzBlM1x1NzBlNVx1NzBlYVx1NzBlZVx1NzBmMFx1NzBmMVx1NzBmMlx1NzBmM1x1NzBmNFx1NzBmNVx1NzBmNlx1NzBmOFx1NzBmYVx1NzBmYlx1NzBmY1x1NzBmZVx1NzBmZlx1NzEwMFx1NzEwMVx1NzEwMlx1NzEwM1x1NzEwNFx1NzEwNVx1NzEwNlx1NzEwN1x1NzEwOFx1NzEwYlx1NzEw''@;'; put 'put ''Y1x1NzEwZFx1NzEwZVx1NzEwZlx1NzExMVx1NzExMlx1NzExNFx1NzExN1x1NzExYlx1NzExY1x1NzExZFx1NzExZVx1NzExZlx1NzEyMFx1NzEyMVx1NzEyMlx1NzEyM1x1NzEyNFx1NzEyNVx1NzEyN1x1NzEyOFx1NzEyOVx1NzEyYVx1NzEyYlx1NzEyY1x1NzEyZFx1NzEyZVx1NzEzMlx1''@;'; put 'put ''NzEzM1x1NzEzNFx1ZmZmZFx1NzEzNVx1NzEzN1x1NzEzOFx1NzEzOVx1NzEzYVx1NzEzYlx1NzEzY1x1NzEzZFx1NzEzZVx1NzEzZlx1NzE0MFx1NzE0MVx1NzE0Mlx1NzE0M1x1NzE0NFx1NzE0Nlx1NzE0N1x1NzE0OFx1NzE0OVx1NzE0Ylx1NzE0ZFx1NzE0Zlx1NzE1MFx1NzE1MVx1NzE1''@;'; put 'put ''Mlx1NzE1M1x1NzE1NFx1NzE1NVx1NzE1Nlx1NzE1N1x1NzE1OFx1NzE1OVx1NzE1YVx1NzE1Ylx1NzE1ZFx1NzE1Zlx1NzE2MFx1NzE2MVx1NzE2Mlx1NzE2M1x1NzE2NVx1NzE2OVx1NzE2YVx1NzE2Ylx1NzE2Y1x1NzE2ZFx1NzE2Zlx1NzE3MFx1NzE3MVx1NzE3NFx1NzE3NVx1NzE3Nlx1''@;'; put 'put ''NzE3N1x1NzE3OVx1NzE3Ylx1NzE3Y1x1NzE3ZVx1NzE3Zlx1NzE4MFx1NzE4MVx1NzE4Mlx1NzE4M1x1NzE4NVx1NzE4Nlx1NzE4N1x1NzE4OFx1NzE4OVx1NzE4Ylx1NzE4Y1x1NzE4ZFx1NzE4ZVx1NzE5MFx1NzE5MVx1NzE5Mlx1NzE5M1x1NzE5NVx1NzE5Nlx1NzE5N1x1NzE5YVx1NzE5''@;'; put 'put ''Ylx1NzE5Y1x1NzE5ZFx1NzE5ZVx1NzFhMVx1NzFhMlx1NzFhM1x1NzFhNFx1NzFhNVx1NzFhNlx1NzFhN1x1NzFhOVx1NzFhYVx1NzFhYlx1NzFhZFx1NzFhZVx1NzFhZlx1NzFiMFx1NzFiMVx1NzFiMlx1NzFiNFx1NzFiNlx1NzFiN1x1NzFiOFx1NzFiYVx1NzFiYlx1NzFiY1x1NzFiZFx1''@;'; put 'put ''NzFiZVx1NzFiZlx1NzFjMFx1NzFjMVx1NzFjMlx1NzFjNFx1NzFjNVx1NzFjNlx1NzFjN1x1NzFjOFx1NzFjOVx1NzFjYVx1NzFjYlx1NzFjY1x1NzFjZFx1NzFjZlx1NzFkMFx1NzFkMVx1NzFkMlx1NzFkM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1OV0ubGVuZ3RoOysrRSk2NTUz''@;'; put 'put ''MyE9PUJbMTU5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTldW0VdXT00MDcwNCtFLExbNDA3MDQrRV09QlsxNTldW0VdKTtmb3IoQlsxNjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcxZDZcdTcxZDdcdTcxZDhcdTcxZDlc''@;'; put 'put ''dTcxZGFcdTcxZGJcdTcxZGNcdTcxZGRcdTcxZGVcdTcxZGZcdTcxZTFcdTcxZTJcdTcxZTNcdTcxZTRcdTcxZTZcdTcxZThcdTcxZTlcdTcxZWFcdTcxZWJcdTcxZWNcdTcxZWRcdTcxZWZcdTcxZjBcdTcxZjFcdTcxZjJcdTcxZjNcdTcxZjRcdTcxZjVcdTcxZjZcdTcxZjdcdTcxZjhcdTcx''@;'; put 'put ''ZmFcdTcxZmJcdTcxZmNcdTcxZmRcdTcxZmVcdTcxZmZcdTcyMDBcdTcyMDFcdTcyMDJcdTcyMDNcdTcyMDRcdTcyMDVcdTcyMDdcdTcyMDhcdTcyMDlcdTcyMGFcdTcyMGJcdTcyMGNcdTcyMGRcdTcyMGVcdTcyMGZcdTcyMTBcdTcyMTFcdTcyMTJcdTcyMTNcdTcyMTRcdTcyMTVcdTcyMTZc''@;'; put 'put ''dTcyMTdcdTcyMThcdTcyMTlcdTcyMWFcdWZmZmRcdTcyMWJcdTcyMWNcdTcyMWVcdTcyMWZcdTcyMjBcdTcyMjFcdTcyMjJcdTcyMjNcdTcyMjRcdTcyMjVcdTcyMjZcdTcyMjdcdTcyMjlcdTcyMmJcdTcyMmRcdTcyMmVcdTcyMmZcdTcyMzJcdTcyMzNcdTcyMzRcdTcyM2FcdTcyM2NcdTcy''@;'; put 'put ''M2VcdTcyNDBcdTcyNDFcdTcyNDJcdTcyNDNcdTcyNDRcdTcyNDVcdTcyNDZcdTcyNDlcdTcyNGFcdTcyNGJcdTcyNGVcdTcyNGZcdTcyNTBcdTcyNTFcdTcyNTNcdTcyNTRcdTcyNTVcdTcyNTdcdTcyNThcdTcyNWFcdTcyNWNcdTcyNWVcdTcyNjBcdTcyNjNcdTcyNjRcdTcyNjVcdTcyNjhc''@;'; put 'put ''dTcyNmFcdTcyNmJcdTcyNmNcdTcyNmRcdTcyNzBcdTcyNzFcdTcyNzNcdTcyNzRcdTcyNzZcdTcyNzdcdTcyNzhcdTcyN2JcdTcyN2NcdTcyN2RcdTcyODJcdTcyODNcdTcyODVcdTcyODZcdTcyODdcdTcyODhcdTcyODlcdTcyOGNcdTcyOGVcdTcyOTBcdTcyOTFcdTcyOTNcdTcyOTRcdTcy''@;'; put 'put ''OTVcdTcyOTZcdTcyOTdcdTcyOThcdTcyOTlcdTcyOWFcdTcyOWJcdTcyOWNcdTcyOWRcdTcyOWVcdTcyYTBcdTcyYTFcdTcyYTJcdTcyYTNcdTcyYTRcdTcyYTVcdTcyYTZcdTcyYTdcdTcyYThcdTcyYTlcdTcyYWFcdTcyYWJcdTcyYWVcdTcyYjFcdTcyYjJcdTcyYjNcdTcyYjVcdTcyYmFc''@;'; put 'put ''dTcyYmJcdTcyYmNcdTcyYmRcdTcyYmVcdTcyYmZcdTcyYzBcdTcyYzVcdTcyYzZcdTcyYzdcdTcyYzlcdTcyY2FcdTcyY2JcdTcyY2NcdTcyY2ZcdTcyZDFcdTcyZDNcdTcyZDRcdTcyZDVcdTcyZDZcdTcyZDhcdTcyZGFcdTcyZGJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjBdLmxl''@;'; put 'put ''bmd0aDsrK0UpNjU1MzMhPT1CWzE2MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYwXVtFXV09NDA5NjArRSxMWzQwOTYwK0VdPUJbMTYwXVtFXSk7Zm9yKEJbMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MDJjOVx1MDJjN1x4YThcdTMwMDNcdTMwMDVcdTIwMTRcdWZmNWVcdTIwMTZcdTIwMjZcdTIwMThcdTIwMTlcdTIw''@;'; put 'put ''MWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDhcdTMwMDlcdTMwMGFcdTMwMGJcdTMwMGNcdTMwMGRcdTMwMGVcdTMwMGZcdTMwMTZcdTMwMTdcdTMwMTBcdTMwMTFceGIxXHhkN1x4ZjdcdTIyMzZcdTIyMjdcdTIyMjhcdTIyMTFcdTIyMGZcdTIyMmFcdTIyMjlcdTIyMDhcdTIyMzdcdTIyMWFc''@;'; put 'put ''dTIyYTVcdTIyMjVcdTIyMjBcdTIzMTJcdTIyOTlcdTIyMmJcdTIyMmVcdTIyNjFcdTIyNGNcdTIyNDhcdTIyM2RcdTIyMWRcdTIyNjBcdTIyNmVcdTIyNmZcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzVcdTIyMzRcdTI2NDJcdTI2NDBceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHVmZjA0XHhhNFx1''@;'; put 'put ''ZmZlMFx1ZmZlMVx1MjAzMFx4YTdcdTIxMTZcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTIwM2JcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjFdLmxlbmd0''@;'; put 'put ''aDsrK0UpNjU1MzMhPT1CWzE2MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYxXVtFXV09NDEyMTYrRSxMWzQxMjE2K0VdPUJbMTYxXVtFXSk7Zm9yKEJbMTYyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHUyNDg4XHUyNDg5XHUyNDhhXHUyNDhiXHUyNDhjXHUyNDhkXHUyNDhlXHUyNDhmXHUyNDkwXHUyNDkxXHUyNDkyXHUyNDkzXHUyNDk0XHUyNDk1XHUyNDk2XHUyNDk3XHUyNDk4XHUyNDk5XHUyNDlhXHUyNDliXHUyNDc0XHUyNDc1XHUyNDc2XHUyNDc3XHUyNDc4XHUyNDc5XHUyNDdh''@;'; put 'put ''XHUyNDdiXHUyNDdjXHUyNDdkXHUyNDdlXHUyNDdmXHUyNDgwXHUyNDgxXHUyNDgyXHUyNDgzXHUyNDg0XHUyNDg1XHUyNDg2XHUyNDg3XHUyNDYwXHUyNDYxXHUyNDYyXHUyNDYzXHUyNDY0XHUyNDY1XHUyNDY2XHUyNDY3XHUyNDY4XHUyNDY5XHVmZmZkXHVmZmZkXHUzMjIwXHUzMjIxXHUz''@;'; put 'put ''MjIyXHUzMjIzXHUzMjI0XHUzMjI1XHUzMjI2XHUzMjI3XHUzMjI4XHUzMjI5XHVmZmZkXHVmZmZkXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHUyMTZhXHUyMTZiXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; put 'put ''PUJbMTYyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2Ml1bRV1dPTQxNDcyK0UsTFs0MTQ3MitFXT1CWzE2Ml1bRV0pO2ZvcihCWzE2M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmZlNVx1ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1''@;'; put 'put ''ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1ZmYxOVx1ZmYxYVx1ZmYxYlx1ZmYxY1x1ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYyMFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYy''@;'; put 'put ''OVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYzNFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1ZmYzY1x1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1''@;'; put 'put ''ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3Bs''@;'; put 'put ''aXQoIiIpLEU9MDtFIT1CWzE2M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjNdW0VdXT00MTcyOCtFLExbNDE3MjgrRV09QlsxNjNdW0VdKTtmb3IoQlsxNjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwNDFcdTMwNDJcdTMwNDNcdTMwNDRcdTMwNDVcdTMwNDZcdTMwNDdcdTMwNDhcdTMwNDlcdTMwNGFcdTMwNGJc''@;'; put 'put ''dTMwNGNcdTMwNGRcdTMwNGVcdTMwNGZcdTMwNTBcdTMwNTFcdTMwNTJcdTMwNTNcdTMwNTRcdTMwNTVcdTMwNTZcdTMwNTdcdTMwNThcdTMwNTlcdTMwNWFcdTMwNWJcdTMwNWNcdTMwNWRcdTMwNWVcdTMwNWZcdTMwNjBcdTMwNjFcdTMwNjJcdTMwNjNcdTMwNjRcdTMwNjVcdTMwNjZcdTMw''@;'; put 'put ''NjdcdTMwNjhcdTMwNjlcdTMwNmFcdTMwNmJcdTMwNmNcdTMwNmRcdTMwNmVcdTMwNmZcdTMwNzBcdTMwNzFcdTMwNzJcdTMwNzNcdTMwNzRcdTMwNzVcdTMwNzZcdTMwNzdcdTMwNzhcdTMwNzlcdTMwN2FcdTMwN2JcdTMwN2NcdTMwN2RcdTMwN2VcdTMwN2ZcdTMwODBcdTMwODFcdTMwODJc''@;'; put 'put ''dTMwODNcdTMwODRcdTMwODVcdTMwODZcdTMwODdcdTMwODhcdTMwODlcdTMwOGFcdTMwOGJcdTMwOGNcdTMwOGRcdTMwOGVcdTMwOGZcdTMwOTBcdTMwOTFcdTMwOTJcdTMwOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY0XVtFXV09NDE5ODQrRSxMWzQxOTg0K0VdPUJbMTY0XVtFXSk7Zm9yKEJbMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMGExXHUzMGEyXHUzMGEzXHUzMGE0XHUzMGE1XHUzMGE2XHUzMGE3XHUzMGE4XHUzMGE5''@;'; put 'put ''XHUzMGFhXHUzMGFiXHUzMGFjXHUzMGFkXHUzMGFlXHUzMGFmXHUzMGIwXHUzMGIxXHUzMGIyXHUzMGIzXHUzMGI0XHUzMGI1XHUzMGI2XHUzMGI3XHUzMGI4XHUzMGI5XHUzMGJhXHUzMGJiXHUzMGJjXHUzMGJkXHUzMGJlXHUzMGJmXHUzMGMwXHUzMGMxXHUzMGMyXHUzMGMzXHUzMGM0XHUz''@;'; put 'put ''MGM1XHUzMGM2XHUzMGM3XHUzMGM4XHUzMGM5XHUzMGNhXHUzMGNiXHUzMGNjXHUzMGNkXHUzMGNlXHUzMGNmXHUzMGQwXHUzMGQxXHUzMGQyXHUzMGQzXHUzMGQ0XHUzMGQ1XHUzMGQ2XHUzMGQ3XHUzMGQ4XHUzMGQ5XHUzMGRhXHUzMGRiXHUzMGRjXHUzMGRkXHUzMGRlXHUzMGRmXHUzMGUw''@;'; put 'put ''XHUzMGUxXHUzMGUyXHUzMGUzXHUzMGU0XHUzMGU1XHUzMGU2XHUzMGU3XHUzMGU4XHUzMGU5XHUzMGVhXHUzMGViXHUzMGVjXHUzMGVkXHUzMGVlXHUzMGVmXHUzMGYwXHUzMGYxXHUzMGYyXHUzMGYzXHUzMGY0XHUzMGY1XHUzMGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NV1bRV1dPTQyMjQwK0UsTFs0MjI0MCtFXT1CWzE2NV1bRV0pO2ZvcihCWzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5''@;'; put 'put ''N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDNiMVx1MDNiMlx1''@;'; put 'put ''MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmUzNVx1ZmUzNlx1ZmUzOVx1ZmUzYVx1ZmUzZlx1ZmU0MFx1ZmUzZFx1ZmUzZVx1ZmU0MVx1ZmU0Mlx1ZmU0M1x1ZmU0NFx1ZmZmZFx1ZmZmZFx1ZmUzYlx1ZmUzY1x1ZmUzN1x1ZmUzOFx1ZmUzMVx1ZmZmZFx1ZmUzM1x1ZmUzNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjZdW0VdXT00MjQ5NitFLExbNDI0OTYrRV09QlsxNjZdW0VdKTtmb3IoQlsxNjddPSJcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0''@;'; put 'put ''MTRcdTA0MTVcdTA0MDFcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVc''@;'; put 'put ''dTA0MmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0NTFcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0''@;'; put 'put ''M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY3XVtFXV09NDI3NTIrRSxMWzQyNzUyK0VdPUJbMTY3XVtFXSk7Zm9y''@;'; put 'put ''KEJbMTY4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMmNhXHUwMmNiXHUwMmQ5XHUyMDEzXHUyMDE1XHUyMDI1XHUyMDM1XHUyMTA1XHUyMTA5XHUyMTk2XHUyMTk3XHUyMTk4XHUyMTk5XHUyMjE1XHUyMjFmXHUyMjIzXHUyMjUy''@;'; put 'put ''XHUyMjY2XHUyMjY3XHUyMmJmXHUyNTUwXHUyNTUxXHUyNTUyXHUyNTUzXHUyNTU0XHUyNTU1XHUyNTU2XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUyNTVjXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUyNTYyXHUyNTYzXHUyNTY0XHUyNTY1XHUyNTY2XHUyNTY3XHUy''@;'; put 'put ''NTY4XHUyNTY5XHUyNTZhXHUyNTZiXHUyNTZjXHUyNTZkXHUyNTZlXHUyNTZmXHUyNTcwXHUyNTcxXHUyNTcyXHUyNTczXHUyNTgxXHUyNTgyXHUyNTgzXHUyNTg0XHUyNTg1XHUyNTg2XHUyNTg3XHVmZmZkXHUyNTg4XHUyNTg5XHUyNThhXHUyNThiXHUyNThjXHUyNThkXHUyNThlXHUyNThm''@;'; put 'put ''XHUyNTkzXHUyNTk0XHUyNTk1XHUyNWJjXHUyNWJkXHUyNWUyXHUyNWUzXHUyNWU0XHUyNWU1XHUyNjA5XHUyMjk1XHUzMDEyXHUzMDFkXHUzMDFlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMTAxXHhlMVx1MDFj''@;'; put 'put ''ZVx4ZTBcdTAxMTNceGU5XHUwMTFiXHhlOFx1MDEyYlx4ZWRcdTAxZDBceGVjXHUwMTRkXHhmM1x1MDFkMlx4ZjJcdTAxNmJceGZhXHUwMWQ0XHhmOVx1MDFkNlx1MDFkOFx1MDFkYVx1MDFkY1x4ZmNceGVhXHUwMjUxXHVmZmZkXHUwMTQ0XHUwMTQ4XHVmZmZkXHUwMjYxXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHUzMTA1XHUzMTA2XHUzMTA3XHUzMTA4XHUzMTA5XHUzMTBhXHUzMTBiXHUzMTBjXHUzMTBkXHUzMTBlXHUzMTBmXHUzMTEwXHUzMTExXHUzMTEyXHUzMTEzXHUzMTE0XHUzMTE1XHUzMTE2XHUzMTE3XHUzMTE4XHUzMTE5XHUzMTFhXHUzMTFiXHUzMTFjXHUzMTFkXHUz''@;'; put 'put ''MTFlXHUzMTFmXHUzMTIwXHUzMTIxXHUzMTIyXHUzMTIzXHUzMTI0XHUzMTI1XHUzMTI2XHUzMTI3XHUzMTI4XHUzMTI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OF1bRV1dPTQzMDA4K0UsTFs0MzAwOCtFXT1CWzE2OF1bRV0pO2ZvcihCWzE2OV09Ilx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzAyMVx1MzAyMlx1MzAyM1x1MzAyNFx1MzAyNVx1MzAyNlx1MzAyN1x1MzAyOFx1MzAyOVx1MzJhM1x1MzM4ZVx1MzM4Zlx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNhMVx1MzNjNFx1MzNjZVx1MzNk''@;'; put 'put ''MVx1MzNkMlx1MzNkNVx1ZmUzMFx1ZmZlMlx1ZmZlNFx1ZmZmZFx1MjEyMVx1MzIzMVx1ZmZmZFx1MjAxMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzBmY1x1MzA5Ylx1MzA5Y1x1MzBmZFx1MzBmZVx1MzAwNlx1MzA5ZFx1MzA5ZVx1ZmU0OVx1ZmU0YVx1ZmU0Ylx1ZmU0Y1x1ZmU0ZFx1ZmU0ZVx1''@;'; put 'put ''ZmU0Zlx1ZmU1MFx1ZmU1MVx1ZmU1Mlx1ZmU1NFx1ZmU1NVx1ZmU1Nlx1ZmU1N1x1ZmU1OVx1ZmU1YVx1ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1ZmU1Zlx1ZmU2MFx1ZmU2MVx1ZmZmZFx1ZmU2Mlx1ZmU2M1x1ZmU2NFx1ZmU2NVx1ZmU2Nlx1ZmU2OFx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzAwN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUwMFx1''@;'; put 'put ''MjUwMVx1MjUwMlx1MjUwM1x1MjUwNFx1MjUwNVx1MjUwNlx1MjUwN1x1MjUwOFx1MjUwOVx1MjUwYVx1MjUwYlx1MjUwY1x1MjUwZFx1MjUwZVx1MjUwZlx1MjUxMFx1MjUxMVx1MjUxMlx1MjUxM1x1MjUxNFx1MjUxNVx1MjUxNlx1MjUxN1x1MjUxOFx1MjUxOVx1MjUxYVx1MjUxYlx1MjUx''@;'; put 'put ''Y1x1MjUxZFx1MjUxZVx1MjUxZlx1MjUyMFx1MjUyMVx1MjUyMlx1MjUyM1x1MjUyNFx1MjUyNVx1MjUyNlx1MjUyN1x1MjUyOFx1MjUyOVx1MjUyYVx1MjUyYlx1MjUyY1x1MjUyZFx1MjUyZVx1MjUyZlx1MjUzMFx1MjUzMVx1MjUzMlx1MjUzM1x1MjUzNFx1MjUzNVx1MjUzNlx1MjUzN1x1''@;'; put 'put ''MjUzOFx1MjUzOVx1MjUzYVx1MjUzYlx1MjUzY1x1MjUzZFx1MjUzZVx1MjUzZlx1MjU0MFx1MjU0MVx1MjU0Mlx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0N1x1MjU0OFx1MjU0OVx1MjU0YVx1MjU0Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjldW0VdXT00MzI2NCtFLExbNDMyNjQrRV09QlsxNjldW0VdKTtm''@;'; put 'put ''b3IoQlsxNzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcyZGNcdTcyZGRcdTcyZGZcdTcyZTJcdTcyZTNcdTcyZTRcdTcyZTVcdTcyZTZcdTcyZTdcdTcyZWFcdTcyZWJcdTcyZjVcdTcyZjZcdTcyZjlcdTcyZmRcdTcyZmVcdTcy''@;'; put 'put ''ZmZcdTczMDBcdTczMDJcdTczMDRcdTczMDVcdTczMDZcdTczMDdcdTczMDhcdTczMDlcdTczMGJcdTczMGNcdTczMGRcdTczMGZcdTczMTBcdTczMTFcdTczMTJcdTczMTRcdTczMThcdTczMTlcdTczMWFcdTczMWZcdTczMjBcdTczMjNcdTczMjRcdTczMjZcdTczMjdcdTczMjhcdTczMmRc''@;'; put 'put ''dTczMmZcdTczMzBcdTczMzJcdTczMzNcdTczMzVcdTczMzZcdTczM2FcdTczM2JcdTczM2NcdTczM2RcdTczNDBcdTczNDFcdTczNDJcdTczNDNcdTczNDRcdTczNDVcdTczNDZcdTczNDdcdTczNDhcdWZmZmRcdTczNDlcdTczNGFcdTczNGJcdTczNGNcdTczNGVcdTczNGZcdTczNTFcdTcz''@;'; put 'put ''NTNcdTczNTRcdTczNTVcdTczNTZcdTczNThcdTczNTlcdTczNWFcdTczNWJcdTczNWNcdTczNWRcdTczNWVcdTczNWZcdTczNjFcdTczNjJcdTczNjNcdTczNjRcdTczNjVcdTczNjZcdTczNjdcdTczNjhcdTczNjlcdTczNmFcdTczNmJcdTczNmVcdTczNzBcdTczNzFcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcwXVtFXV09NDM1MjArRSxMWzQzNTIwK0Vd''@;'; put 'put ''PUJbMTcwXVtFXSk7Zm9yKEJbMTcxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MzcyXHU3MzczXHU3Mzc0XHU3Mzc1XHU3Mzc2XHU3Mzc3XHU3Mzc4XHU3Mzc5XHU3MzdhXHU3MzdiXHU3MzdjXHU3MzdkXHU3MzdmXHU3MzgwXHU3''@;'; put 'put ''MzgxXHU3MzgyXHU3MzgzXHU3Mzg1XHU3Mzg2XHU3Mzg4XHU3MzhhXHU3MzhjXHU3MzhkXHU3MzhmXHU3MzkwXHU3MzkyXHU3MzkzXHU3Mzk0XHU3Mzk1XHU3Mzk3XHU3Mzk4XHU3Mzk5XHU3MzlhXHU3MzljXHU3MzlkXHU3MzllXHU3M2EwXHU3M2ExXHU3M2EzXHU3M2E0XHU3M2E1XHU3M2E2''@;'; put 'put ''XHU3M2E3XHU3M2E4XHU3M2FhXHU3M2FjXHU3M2FkXHU3M2IxXHU3M2I0XHU3M2I1XHU3M2I2XHU3M2I4XHU3M2I5XHU3M2JjXHU3M2JkXHU3M2JlXHU3M2JmXHU3M2MxXHU3M2MzXHU3M2M0XHU3M2M1XHU3M2M2XHU3M2M3XHVmZmZkXHU3M2NiXHU3M2NjXHU3M2NlXHU3M2QyXHU3M2QzXHU3''@;'; put 'put ''M2Q0XHU3M2Q1XHU3M2Q2XHU3M2Q3XHU3M2Q4XHU3M2RhXHU3M2RiXHU3M2RjXHU3M2RkXHU3M2RmXHU3M2UxXHU3M2UyXHU3M2UzXHU3M2U0XHU3M2U2XHU3M2U4XHU3M2VhXHU3M2ViXHU3M2VjXHU3M2VlXHU3M2VmXHU3M2YwXHU3M2YxXHU3M2YzXHU3M2Y0XHU3M2Y1XHU3M2Y2XHU3M2Y3''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTcxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3MV1bRV1dPTQzNzc2''@;'; put 'put ''K0UsTFs0Mzc3NitFXT1CWzE3MV1bRV0pO2ZvcihCWzE3Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzNmOFx1NzNmOVx1NzNmYVx1NzNmYlx1NzNmY1x1NzNmZFx1NzNmZVx1NzNmZlx1NzQwMFx1NzQwMVx1NzQwMlx1NzQwNFx1''@;'; put 'put ''NzQwN1x1NzQwOFx1NzQwYlx1NzQwY1x1NzQwZFx1NzQwZVx1NzQxMVx1NzQxMlx1NzQxM1x1NzQxNFx1NzQxNVx1NzQxNlx1NzQxN1x1NzQxOFx1NzQxOVx1NzQxY1x1NzQxZFx1NzQxZVx1NzQxZlx1NzQyMFx1NzQyMVx1NzQyM1x1NzQyNFx1NzQyN1x1NzQyOVx1NzQyYlx1NzQyZFx1NzQy''@;'; put 'put ''Zlx1NzQzMVx1NzQzMlx1NzQzN1x1NzQzOFx1NzQzOVx1NzQzYVx1NzQzYlx1NzQzZFx1NzQzZVx1NzQzZlx1NzQ0MFx1NzQ0Mlx1NzQ0M1x1NzQ0NFx1NzQ0NVx1NzQ0Nlx1NzQ0N1x1NzQ0OFx1NzQ0OVx1NzQ0YVx1NzQ0Ylx1NzQ0Y1x1NzQ0ZFx1ZmZmZFx1NzQ0ZVx1NzQ0Zlx1NzQ1MFx1''@;'; put 'put ''NzQ1MVx1NzQ1Mlx1NzQ1M1x1NzQ1NFx1NzQ1Nlx1NzQ1OFx1NzQ1ZFx1NzQ2MFx1NzQ2MVx1NzQ2Mlx1NzQ2M1x1NzQ2NFx1NzQ2NVx1NzQ2Nlx1NzQ2N1x1NzQ2OFx1NzQ2OVx1NzQ2YVx1NzQ2Ylx1NzQ2Y1x1NzQ2ZVx1NzQ2Zlx1NzQ3MVx1NzQ3Mlx1NzQ3M1x1NzQ3NFx1NzQ3NVx1NzQ3''@;'; put 'put ''OFx1NzQ3OVx1NzQ3YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTcyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsx''@;'; put 'put ''NzJdW0VdXT00NDAzMitFLExbNDQwMzIrRV09QlsxNzJdW0VdKTtmb3IoQlsxNzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0N2JcdTc0N2NcdTc0N2RcdTc0N2ZcdTc0ODJcdTc0ODRcdTc0ODVcdTc0ODZcdTc0ODhcdTc0ODlc''@;'; put 'put ''dTc0OGFcdTc0OGNcdTc0OGRcdTc0OGZcdTc0OTFcdTc0OTJcdTc0OTNcdTc0OTRcdTc0OTVcdTc0OTZcdTc0OTdcdTc0OThcdTc0OTlcdTc0OWFcdTc0OWJcdTc0OWRcdTc0OWZcdTc0YTBcdTc0YTFcdTc0YTJcdTc0YTNcdTc0YTRcdTc0YTVcdTc0YTZcdTc0YWFcdTc0YWJcdTc0YWNcdTc0''@;'; put 'put ''YWRcdTc0YWVcdTc0YWZcdTc0YjBcdTc0YjFcdTc0YjJcdTc0YjNcdTc0YjRcdTc0YjVcdTc0YjZcdTc0YjdcdTc0YjhcdTc0YjlcdTc0YmJcdTc0YmNcdTc0YmRcdTc0YmVcdTc0YmZcdTc0YzBcdTc0YzFcdTc0YzJcdTc0YzNcdTc0YzRcdTc0YzVcdTc0YzZcdTc0YzdcdWZmZmRcdTc0Yzhc''@;'; put 'put ''dTc0YzlcdTc0Y2FcdTc0Y2JcdTc0Y2NcdTc0Y2RcdTc0Y2VcdTc0Y2ZcdTc0ZDBcdTc0ZDFcdTc0ZDNcdTc0ZDRcdTc0ZDVcdTc0ZDZcdTc0ZDdcdTc0ZDhcdTc0ZDlcdTc0ZGFcdTc0ZGJcdTc0ZGRcdTc0ZGZcdTc0ZTFcdTc0ZTVcdTc0ZTdcdTc0ZThcdTc0ZTlcdTc0ZWFcdTc0ZWJcdTc0''@;'; put 'put ''ZWNcdTc0ZWRcdTc0ZjBcdTc0ZjFcdTc0ZjJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3M11bRV0uY2hhckNvZGVB''@;'; put 'put ''dCgwKSYmKG1lW0JbMTczXVtFXV09NDQyODgrRSxMWzQ0Mjg4K0VdPUJbMTczXVtFXSk7Zm9yKEJbMTc0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGYzXHU3NGY1XHU3NGY4XHU3NGY5XHU3NGZhXHU3NGZiXHU3NGZjXHU3NGZk''@;'; put 'put ''XHU3NGZlXHU3NTAwXHU3NTAxXHU3NTAyXHU3NTAzXHU3NTA1XHU3NTA2XHU3NTA3XHU3NTA4XHU3NTA5XHU3NTBhXHU3NTBiXHU3NTBjXHU3NTBlXHU3NTEwXHU3NTEyXHU3NTE0XHU3NTE1XHU3NTE2XHU3NTE3XHU3NTFiXHU3NTFkXHU3NTFlXHU3NTIwXHU3NTIxXHU3NTIyXHU3NTIzXHU3''@;'; put 'put ''NTI0XHU3NTI2XHU3NTI3XHU3NTJhXHU3NTJlXHU3NTM0XHU3NTM2XHU3NTM5XHU3NTNjXHU3NTNkXHU3NTNmXHU3NTQxXHU3NTQyXHU3NTQzXHU3NTQ0XHU3NTQ2XHU3NTQ3XHU3NTQ5XHU3NTRhXHU3NTRkXHU3NTUwXHU3NTUxXHU3NTUyXHU3NTUzXHU3NTU1XHU3NTU2XHU3NTU3XHU3NTU4''@;'; put 'put ''XHVmZmZkXHU3NTVkXHU3NTVlXHU3NTVmXHU3NTYwXHU3NTYxXHU3NTYyXHU3NTYzXHU3NTY0XHU3NTY3XHU3NTY4XHU3NTY5XHU3NTZiXHU3NTZjXHU3NTZkXHU3NTZlXHU3NTZmXHU3NTcwXHU3NTcxXHU3NTczXHU3NTc1XHU3NTc2XHU3NTc3XHU3NTdhXHU3NTdiXHU3NTdjXHU3NTdkXHU3''@;'; put 'put ''NTdlXHU3NTgwXHU3NTgxXHU3NTgyXHU3NTg0XHU3NTg1XHU3NTg3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzRd''@;'; put 'put ''W0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3NF1bRV1dPTQ0NTQ0K0UsTFs0NDU0NCtFXT1CWzE3NF1bRV0pO2ZvcihCWzE3NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzU4OFx1NzU4OVx1NzU4YVx1NzU4Y1x1NzU4ZFx1NzU4''@;'; put 'put ''ZVx1NzU5MFx1NzU5M1x1NzU5NVx1NzU5OFx1NzU5Ylx1NzU5Y1x1NzU5ZVx1NzVhMlx1NzVhNlx1NzVhN1x1NzVhOFx1NzVhOVx1NzVhYVx1NzVhZFx1NzViNlx1NzViN1x1NzViYVx1NzViYlx1NzViZlx1NzVjMFx1NzVjMVx1NzVjNlx1NzVjYlx1NzVjY1x1NzVjZVx1NzVjZlx1NzVkMFx1''@;'; put 'put ''NzVkMVx1NzVkM1x1NzVkN1x1NzVkOVx1NzVkYVx1NzVkY1x1NzVkZFx1NzVkZlx1NzVlMFx1NzVlMVx1NzVlNVx1NzVlOVx1NzVlY1x1NzVlZFx1NzVlZVx1NzVlZlx1NzVmMlx1NzVmM1x1NzVmNVx1NzVmNlx1NzVmN1x1NzVmOFx1NzVmYVx1NzVmYlx1NzVmZFx1NzVmZVx1NzYwMlx1NzYw''@;'; put 'put ''NFx1NzYwNlx1NzYwN1x1ZmZmZFx1NzYwOFx1NzYwOVx1NzYwYlx1NzYwZFx1NzYwZVx1NzYwZlx1NzYxMVx1NzYxMlx1NzYxM1x1NzYxNFx1NzYxNlx1NzYxYVx1NzYxY1x1NzYxZFx1NzYxZVx1NzYyMVx1NzYyM1x1NzYyN1x1NzYyOFx1NzYyY1x1NzYyZVx1NzYyZlx1NzYzMVx1NzYzMlx1''@;'; put 'put ''NzYzNlx1NzYzN1x1NzYzOVx1NzYzYVx1NzYzYlx1NzYzZFx1NzY0MVx1NzY0Mlx1NzY0NFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3NV0ubGVuZ3RoOysrRSk2''@;'; put 'put ''NTUzMyE9PUJbMTc1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzVdW0VdXT00NDgwMCtFLExbNDQ4MDArRV09QlsxNzVdW0VdKTtmb3IoQlsxNzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2NDVcdTc2NDZcdTc2NDdcdTc2''@;'; put 'put ''NDhcdTc2NDlcdTc2NGFcdTc2NGJcdTc2NGVcdTc2NGZcdTc2NTBcdTc2NTFcdTc2NTJcdTc2NTNcdTc2NTVcdTc2NTdcdTc2NThcdTc2NTlcdTc2NWFcdTc2NWJcdTc2NWRcdTc2NWZcdTc2NjBcdTc2NjFcdTc2NjJcdTc2NjRcdTc2NjVcdTc2NjZcdTc2NjdcdTc2NjhcdTc2NjlcdTc2NmFc''@;'; put 'put ''dTc2NmNcdTc2NmRcdTc2NmVcdTc2NzBcdTc2NzFcdTc2NzJcdTc2NzNcdTc2NzRcdTc2NzVcdTc2NzZcdTc2NzdcdTc2NzlcdTc2N2FcdTc2N2NcdTc2N2ZcdTc2ODBcdTc2ODFcdTc2ODNcdTc2ODVcdTc2ODlcdTc2OGFcdTc2OGNcdTc2OGRcdTc2OGZcdTc2OTBcdTc2OTJcdTc2OTRcdTc2''@;'; put 'put ''OTVcdTc2OTdcdTc2OThcdTc2OWFcdTc2OWJcdWZmZmRcdTc2OWNcdTc2OWRcdTc2OWVcdTc2OWZcdTc2YTBcdTc2YTFcdTc2YTJcdTc2YTNcdTc2YTVcdTc2YTZcdTc2YTdcdTc2YThcdTc2YTlcdTc2YWFcdTc2YWJcdTc2YWNcdTc2YWRcdTc2YWZcdTc2YjBcdTc2YjNcdTc2YjVcdTc2YjZc''@;'; put 'put ''dTc2YjdcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YmJcdTc2YmNcdTc2YmRcdTc2YmVcdTc2YzBcdTc2YzFcdTc2YzNcdTU1NGFcdTk2M2ZcdTU3YzNcdTYzMjhcdTU0Y2VcdTU1MDlcdTU0YzBcdTc2OTFcdTc2NGNcdTg1M2NcdTc3ZWVcdTgyN2VcdTc4OGRcdTcyMzFcdTk2OThcdTk3OGRcdTZj''@;'; put 'put ''MjhcdTViODlcdTRmZmFcdTYzMDlcdTY2OTdcdTVjYjhcdTgwZmFcdTY4NDhcdTgwYWVcdTY2MDJcdTc2Y2VcdTUxZjlcdTY1NTZcdTcxYWNcdTdmZjFcdTg4ODRcdTUwYjJcdTU5NjVcdTYxY2FcdTZmYjNcdTgyYWRcdTYzNGNcdTYyNTJcdTUzZWRcdTU0MjdcdTdiMDZcdTUxNmJcdTc1YTRc''@;'; put 'put ''dTVkZjRcdTYyZDRcdThkY2JcdTk3NzZcdTYyOGFcdTgwMTlcdTU3NWRcdTk3MzhcdTdmNjJcdTcyMzhcdTc2N2RcdTY3Y2ZcdTc2N2VcdTY0NDZcdTRmNzBcdThkMjVcdTYyZGNcdTdhMTdcdTY1OTFcdTczZWRcdTY0MmNcdTYyNzNcdTgyMmNcdTk4ODFcdTY3N2ZcdTcyNDhcdTYyNmVcdTYy''@;'; put 'put ''Y2NcdTRmMzRcdTc0ZTNcdTUzNGFcdTUyOWVcdTdlY2FcdTkwYTZcdTVlMmVcdTY4ODZcdTY5OWNcdTgxODBcdTdlZDFcdTY4ZDJcdTc4YzVcdTg2OGNcdTk1NTFcdTUwOGRcdThjMjRcdTgyZGVcdTgwZGVcdTUzMDVcdTg5MTJcdTUyNjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzZd''@;'; put 'put ''Lmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc2XVtFXV09NDUwNTYrRSxMWzQ1MDU2K0VdPUJbMTc2XVtFXSk7Zm9yKEJbMTc3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NmM0XHU3''@;'; put 'put ''NmM3XHU3NmM5XHU3NmNiXHU3NmNjXHU3NmQzXHU3NmQ1XHU3NmQ5XHU3NmRhXHU3NmRjXHU3NmRkXHU3NmRlXHU3NmUwXHU3NmUxXHU3NmUyXHU3NmUzXHU3NmU0XHU3NmU2XHU3NmU3XHU3NmU4XHU3NmU5XHU3NmVhXHU3NmViXHU3NmVjXHU3NmVkXHU3NmYwXHU3NmYzXHU3NmY1XHU3NmY2''@;'; put 'put ''XHU3NmY3XHU3NmZhXHU3NmZiXHU3NmZkXHU3NmZmXHU3NzAwXHU3NzAyXHU3NzAzXHU3NzA1XHU3NzA2XHU3NzBhXHU3NzBjXHU3NzBlXHU3NzBmXHU3NzEwXHU3NzExXHU3NzEyXHU3NzEzXHU3NzE0XHU3NzE1XHU3NzE2XHU3NzE3XHU3NzE4XHU3NzFiXHU3NzFjXHU3NzFkXHU3NzFlXHU3''@;'; put 'put ''NzIxXHU3NzIzXHU3NzI0XHU3NzI1XHU3NzI3XHU3NzJhXHU3NzJiXHVmZmZkXHU3NzJjXHU3NzJlXHU3NzMwXHU3NzMxXHU3NzMyXHU3NzMzXHU3NzM0XHU3NzM5XHU3NzNiXHU3NzNkXHU3NzNlXHU3NzNmXHU3NzQyXHU3NzQ0XHU3NzQ1XHU3NzQ2XHU3NzQ4XHU3NzQ5XHU3NzRhXHU3NzRi''@;'; put 'put ''XHU3NzRjXHU3NzRkXHU3NzRlXHU3NzRmXHU3NzUyXHU3NzUzXHU3NzU0XHU3NzU1XHU3NzU2XHU3NzU3XHU3NzU4XHU3NzU5XHU3NzVjXHU4NTg0XHU5NmY5XHU0ZmRkXHU1ODIxXHU5OTcxXHU1YjlkXHU2MmIxXHU2MmE1XHU2NmI0XHU4Yzc5XHU5YzhkXHU3MjA2XHU2NzZmXHU3ODkxXHU2''@;'; put 'put ''MGIyXHU1MzUxXHU1MzE3XHU4Zjg4XHU4MGNjXHU4ZDFkXHU5NGExXHU1MDBkXHU3MmM4XHU1OTA3XHU2MGViXHU3MTE5XHU4OGFiXHU1OTU0XHU4MmVmXHU2NzJjXHU3YjI4XHU1ZDI5XHU3ZWY3XHU3NTJkXHU2Y2Y1XHU4ZTY2XHU4ZmY4XHU5MDNjXHU5ZjNiXHU2YmQ0XHU5MTE5XHU3YjE0''@;'; put 'put ''XHU1ZjdjXHU3OGE3XHU4NGQ2XHU4NTNkXHU2YmQ1XHU2YmQ5XHU2YmQ2XHU1ZTAxXHU1ZTg3XHU3NWY5XHU5NWVkXHU2NTVkXHU1ZjBhXHU1ZmM1XHU4ZjlmXHU1OGMxXHU4MWMyXHU5MDdmXHU5NjViXHU5N2FkXHU4ZmI5XHU3ZjE2XHU4ZDJjXHU2MjQxXHU0ZmJmXHU1M2Q4XHU1MzVlXHU4''@;'; put 'put ''ZmE4XHU4ZmE5XHU4ZmFiXHU5MDRkXHU2ODA3XHU1ZjZhXHU4MTk4XHU4ODY4XHU5Y2Q2XHU2MThiXHU1MjJiXHU3NjJhXHU1ZjZjXHU2NThjXHU2ZmQyXHU2ZWU4XHU1YmJlXHU2NDQ4XHU1MTc1XHU1MWIwXHU2N2M0XHU0ZTE5XHU3OWM5XHU5OTdjXHU3MGIzXHVmZmZkIi5zcGxpdCgiIiks''@;'; put 'put ''RT0wO0UhPUJbMTc3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3N11bRV1dPTQ1MzEyK0UsTFs0NTMxMitFXT1CWzE3N11bRV0pO2ZvcihCWzE3OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1Nzc1ZFx1Nzc1ZVx1Nzc1Zlx1Nzc2MFx1Nzc2NFx1Nzc2N1x1Nzc2OVx1Nzc2YVx1Nzc2ZFx1Nzc2ZVx1Nzc2Zlx1Nzc3MFx1Nzc3MVx1Nzc3Mlx1Nzc3M1x1Nzc3NFx1Nzc3NVx1Nzc3Nlx1Nzc3N1x1Nzc3OFx1Nzc3YVx1Nzc3Ylx1Nzc3Y1x1Nzc4MVx1Nzc4Mlx1Nzc4M1x1Nzc4''@;'; put 'put ''Nlx1Nzc4N1x1Nzc4OFx1Nzc4OVx1Nzc4YVx1Nzc4Ylx1Nzc4Zlx1Nzc5MFx1Nzc5M1x1Nzc5NFx1Nzc5NVx1Nzc5Nlx1Nzc5N1x1Nzc5OFx1Nzc5OVx1Nzc5YVx1Nzc5Ylx1Nzc5Y1x1Nzc5ZFx1Nzc5ZVx1NzdhMVx1NzdhM1x1NzdhNFx1NzdhNlx1NzdhOFx1NzdhYlx1NzdhZFx1NzdhZVx1''@;'; put 'put ''NzdhZlx1NzdiMVx1NzdiMlx1NzdiNFx1NzdiNlx1NzdiN1x1NzdiOFx1NzdiOVx1NzdiYVx1ZmZmZFx1NzdiY1x1NzdiZVx1NzdjMFx1NzdjMVx1NzdjMlx1NzdjM1x1NzdjNFx1NzdjNVx1NzdjNlx1NzdjN1x1NzdjOFx1NzdjOVx1NzdjYVx1NzdjYlx1NzdjY1x1NzdjZVx1NzdjZlx1Nzdk''@;'; put 'put ''MFx1NzdkMVx1NzdkMlx1NzdkM1x1NzdkNFx1NzdkNVx1NzdkNlx1NzdkOFx1NzdkOVx1NzdkYVx1NzdkZFx1NzdkZVx1NzdkZlx1NzdlMFx1NzdlMVx1NzdlNFx1NzVjNVx1NWU3Nlx1NzNiYlx1ODNlMFx1NjRhZFx1NjJlOFx1OTRiNVx1NmNlMlx1NTM1YVx1NTJjM1x1NjQwZlx1OTRjMlx1''@;'; put 'put ''N2I5NFx1NGYyZlx1NWUxYlx1ODIzNlx1ODExNlx1ODE4YVx1NmUyNFx1NmNjYVx1OWE3M1x1NjM1NVx1NTM1Y1x1NTRmYVx1ODg2NVx1NTdlMFx1NGUwZFx1NWUwM1x1NmI2NVx1N2MzZlx1OTBlOFx1NjAxNlx1NjRlNlx1NzMxY1x1ODhjMVx1Njc1MFx1NjI0ZFx1OGQyMlx1Nzc2Y1x1OGUy''@;'; put 'put ''OVx1OTFjN1x1NWY2OVx1ODNkY1x1ODUyMVx1OTkxMFx1NTNjMlx1ODY5NVx1NmI4Ylx1NjBlZFx1NjBlOFx1NzA3Zlx1ODJjZFx1ODIzMVx1NGVkM1x1NmNhN1x1ODVjZlx1NjRjZFx1N2NkOVx1NjlmZFx1NjZmOVx1ODM0OVx1NTM5NVx1N2I1Nlx1NGZhN1x1NTE4Y1x1NmQ0Ylx1NWM0Mlx1''@;'; put 'put ''OGU2ZFx1NjNkMlx1NTNjOVx1ODMyY1x1ODMzNlx1NjdlNVx1NzhiNFx1NjQzZFx1NWJkZlx1NWM5NFx1NWRlZVx1OGJlN1x1NjJjNlx1NjdmNFx1OGM3YVx1NjQwMFx1NjNiYVx1ODc0OVx1OTk4Ylx1OGMxN1x1N2YyMFx1OTRmMlx1NGVhN1x1OTYxMFx1OThhNFx1NjYwY1x1NzMxNlx1ZmZm''@;'; put 'put ''ZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzhdW0VdXT00NTU2OCtFLExbNDU1NjgrRV09QlsxNzhdW0VdKTtmb3IoQlsxNzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdTc3ZTZcdTc3ZThcdTc3ZWFcdTc3ZWZcdTc3ZjBcdTc3ZjFcdTc3ZjJcdTc3ZjRcdTc3ZjVcdTc3ZjdcdTc3ZjlcdTc3ZmFcdTc3ZmJcdTc3ZmNcdTc4MDNcdTc4MDRcdTc4MDVcdTc4MDZcdTc4MDdcdTc4MDhcdTc4MGFcdTc4MGJcdTc4MGVcdTc4MGZcdTc4''@;'; put 'put ''MTBcdTc4MTNcdTc4MTVcdTc4MTlcdTc4MWJcdTc4MWVcdTc4MjBcdTc4MjFcdTc4MjJcdTc4MjRcdTc4MjhcdTc4MmFcdTc4MmJcdTc4MmVcdTc4MmZcdTc4MzFcdTc4MzJcdTc4MzNcdTc4MzVcdTc4MzZcdTc4M2RcdTc4M2ZcdTc4NDFcdTc4NDJcdTc4NDNcdTc4NDRcdTc4NDZcdTc4NDhc''@;'; put 'put ''dTc4NDlcdTc4NGFcdTc4NGJcdTc4NGRcdTc4NGZcdTc4NTFcdTc4NTNcdTc4NTRcdTc4NThcdTc4NTlcdTc4NWFcdWZmZmRcdTc4NWJcdTc4NWNcdTc4NWVcdTc4NWZcdTc4NjBcdTc4NjFcdTc4NjJcdTc4NjNcdTc4NjRcdTc4NjVcdTc4NjZcdTc4NjdcdTc4NjhcdTc4NjlcdTc4NmZcdTc4''@;'; put 'put ''NzBcdTc4NzFcdTc4NzJcdTc4NzNcdTc4NzRcdTc4NzVcdTc4NzZcdTc4NzhcdTc4NzlcdTc4N2FcdTc4N2JcdTc4N2RcdTc4N2VcdTc4N2ZcdTc4ODBcdTc4ODFcdTc4ODJcdTc4ODNcdTU3M2FcdTVjMWRcdTVlMzhcdTk1N2ZcdTUwN2ZcdTgwYTBcdTUzODJcdTY1NWVcdTc1NDVcdTU1MzFc''@;'; put 'put ''dTUwMjFcdThkODVcdTYyODRcdTk0OWVcdTY3MWRcdTU2MzJcdTZmNmVcdTVkZTJcdTU0MzVcdTcwOTJcdThmNjZcdTYyNmZcdTY0YTRcdTYzYTNcdTVmN2JcdTZmODhcdTkwZjRcdTgxZTNcdThmYjBcdTVjMThcdTY2NjhcdTVmZjFcdTZjODlcdTk2NDhcdThkODFcdTg4NmNcdTY0OTFcdTc5''@;'; put 'put ''ZjBcdTU3Y2VcdTZhNTlcdTYyMTBcdTU0NDhcdTRlNThcdTdhMGJcdTYwZTlcdTZmODRcdThiZGFcdTYyN2ZcdTkwMWVcdTlhOGJcdTc5ZTRcdTU0MDNcdTc1ZjRcdTYzMDFcdTUzMTlcdTZjNjBcdThmZGZcdTVmMWJcdTlhNzBcdTgwM2JcdTlmN2ZcdTRmODhcdTVjM2FcdThkNjRcdTdmYzVc''@;'; put 'put ''dTY1YTVcdTcwYmRcdTUxNDVcdTUxYjJcdTg2NmJcdTVkMDdcdTViYTBcdTYyYmRcdTkxNmNcdTc1NzRcdThlMGNcdTdhMjBcdTYxMDFcdTdiNzlcdTRlYzdcdTdlZjhcdTc3ODVcdTRlMTFcdTgxZWRcdTUyMWRcdTUxZmFcdTZhNzFcdTUzYThcdThlODdcdTk1MDRcdTk2Y2ZcdTZlYzFcdTk2''@;'; put 'put ''NjRcdTY5NWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc5XVtFXV09NDU4MjQrRSxMWzQ1ODI0K0VdPUJbMTc5XVtFXSk7Zm9yKEJbMTgwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ODg0XHU3ODg1XHU3ODg2XHU3ODg4XHU3ODhhXHU3ODhiXHU3ODhmXHU3ODkwXHU3ODkyXHU3ODk0XHU3ODk1XHU3ODk2XHU3ODk5XHU3ODlkXHU3ODllXHU3OGEwXHU3OGEyXHU3OGE0XHU3OGE2XHU3OGE4XHU3OGE5XHU3OGFhXHU3''@;'; put 'put ''OGFiXHU3OGFjXHU3OGFkXHU3OGFlXHU3OGFmXHU3OGI1XHU3OGI2XHU3OGI3XHU3OGI4XHU3OGJhXHU3OGJiXHU3OGJjXHU3OGJkXHU3OGJmXHU3OGMwXHU3OGMyXHU3OGMzXHU3OGM0XHU3OGM2XHU3OGM3XHU3OGM4XHU3OGNjXHU3OGNkXHU3OGNlXHU3OGNmXHU3OGQxXHU3OGQyXHU3OGQz''@;'; put 'put ''XHU3OGQ2XHU3OGQ3XHU3OGQ4XHU3OGRhXHU3OGRiXHU3OGRjXHU3OGRkXHU3OGRlXHU3OGRmXHU3OGUwXHU3OGUxXHU3OGUyXHU3OGUzXHVmZmZkXHU3OGU0XHU3OGU1XHU3OGU2XHU3OGU3XHU3OGU5XHU3OGVhXHU3OGViXHU3OGVkXHU3OGVlXHU3OGVmXHU3OGYwXHU3OGYxXHU3OGYzXHU3''@;'; put 'put ''OGY1XHU3OGY2XHU3OGY4XHU3OGY5XHU3OGZiXHU3OGZjXHU3OGZkXHU3OGZlXHU3OGZmXHU3OTAwXHU3OTAyXHU3OTAzXHU3OTA0XHU3OTA2XHU3OTA3XHU3OTA4XHU3OTA5XHU3OTBhXHU3OTBiXHU3OTBjXHU3ODQwXHU1MGE4XHU3N2Q3XHU2NDEwXHU4OWU2XHU1OTA0XHU2M2UzXHU1ZGRk''@;'; put 'put ''XHU3YTdmXHU2OTNkXHU0ZjIwXHU4MjM5XHU1NTk4XHU0ZTMyXHU3NWFlXHU3YTk3XHU1ZTYyXHU1ZThhXHU5NWVmXHU1MjFiXHU1NDM5XHU3MDhhXHU2Mzc2XHU5NTI0XHU1NzgyXHU2NjI1XHU2OTNmXHU5MTg3XHU1NTA3XHU2ZGYzXHU3ZWFmXHU4ODIyXHU2MjMzXHU3ZWYwXHU3NWI1XHU4''@;'; put 'put ''MzI4XHU3OGMxXHU5NmNjXHU4ZjllXHU2MTQ4XHU3NGY3XHU4YmNkXHU2YjY0XHU1MjNhXHU4ZDUwXHU2YjIxXHU4MDZhXHU4NDcxXHU1NmYxXHU1MzA2XHU0ZWNlXHU0ZTFiXHU1MWQxXHU3Yzk3XHU5MThiXHU3YzA3XHU0ZmMzXHU4ZTdmXHU3YmUxXHU3YTljXHU2NDY3XHU1ZDE0XHU1MGFj''@;'; put 'put ''XHU4MTA2XHU3NjAxXHU3Y2I5XHU2ZGVjXHU3ZmUwXHU2NzUxXHU1YjU4XHU1YmY4XHU3OGNiXHU2NGFlXHU2NDEzXHU2M2FhXHU2MzJiXHU5NTE5XHU2NDJkXHU4ZmJlXHU3YjU0XHU3NjI5XHU2MjUzXHU1OTI3XHU1NDQ2XHU2Yjc5XHU1MGEzXHU2MjM0XHU1ZTI2XHU2Yjg2XHU0ZWUzXHU4''@;'; put 'put ''ZDM3XHU4ODhiXHU1Zjg1XHU5MDJlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4MF1bRV1dPTQ2MDgwK0UsTFs0NjA4MCtFXT1CWzE4MF1bRV0pO2ZvcihCWzE4MV09Ilx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzkwZFx1NzkwZVx1NzkwZlx1NzkxMFx1NzkxMVx1NzkxMlx1NzkxNFx1NzkxNVx1NzkxNlx1NzkxN1x1NzkxOFx1NzkxOVx1NzkxYVx1NzkxYlx1NzkxY1x1NzkxZFx1NzkxZlx1NzkyMFx1NzkyMVx1NzkyMlx1''@;'; put 'put ''NzkyM1x1NzkyNVx1NzkyNlx1NzkyN1x1NzkyOFx1NzkyOVx1NzkyYVx1NzkyYlx1NzkyY1x1NzkyZFx1NzkyZVx1NzkyZlx1NzkzMFx1NzkzMVx1NzkzMlx1NzkzM1x1NzkzNVx1NzkzNlx1NzkzN1x1NzkzOFx1NzkzOVx1NzkzZFx1NzkzZlx1Nzk0Mlx1Nzk0M1x1Nzk0NFx1Nzk0NVx1Nzk0''@;'; put 'put ''N1x1Nzk0YVx1Nzk0Ylx1Nzk0Y1x1Nzk0ZFx1Nzk0ZVx1Nzk0Zlx1Nzk1MFx1Nzk1MVx1Nzk1Mlx1Nzk1NFx1Nzk1NVx1Nzk1OFx1Nzk1OVx1Nzk2MVx1Nzk2M1x1ZmZmZFx1Nzk2NFx1Nzk2Nlx1Nzk2OVx1Nzk2YVx1Nzk2Ylx1Nzk2Y1x1Nzk2ZVx1Nzk3MFx1Nzk3MVx1Nzk3Mlx1Nzk3M1x1''@;'; put 'put ''Nzk3NFx1Nzk3NVx1Nzk3Nlx1Nzk3OVx1Nzk3Ylx1Nzk3Y1x1Nzk3ZFx1Nzk3ZVx1Nzk3Zlx1Nzk4Mlx1Nzk4M1x1Nzk4Nlx1Nzk4N1x1Nzk4OFx1Nzk4OVx1Nzk4Ylx1Nzk4Y1x1Nzk4ZFx1Nzk4ZVx1Nzk5MFx1Nzk5MVx1Nzk5Mlx1NjAyMFx1ODAzZFx1NjJjNVx1NGUzOVx1NTM1NVx1OTBm''@;'; put 'put ''OFx1NjNiOFx1ODBjNlx1NjVlNlx1NmMyZVx1NGY0Nlx1NjBlZVx1NmRlMVx1OGJkZVx1NWYzOVx1ODZjYlx1NWY1M1x1NjMyMVx1NTE1YVx1ODM2MVx1Njg2M1x1NTIwMFx1NjM2M1x1OGU0OFx1NTAxMlx1NWM5Ylx1Nzk3N1x1NWJmY1x1NTIzMFx1N2EzYlx1NjBiY1x1OTA1M1x1NzZkN1x1''@;'; put 'put ''NWZiN1x1NWY5N1x1NzY4NFx1OGU2Y1x1NzA2Zlx1NzY3Ylx1N2I0OVx1NzdhYVx1NTFmM1x1OTA5M1x1NTgyNFx1NGY0ZVx1NmVmNFx1OGZlYVx1NjU0Y1x1N2IxYlx1NzJjNFx1NmRhNFx1N2ZkZlx1NWFlMVx1NjJiNVx1NWU5NVx1NTczMFx1ODQ4Mlx1N2IyY1x1NWUxZFx1NWYxZlx1OTAx''@;'; put 'put ''Mlx1N2YxNFx1OThhMFx1NjM4Mlx1NmVjN1x1Nzg5OFx1NzBiOVx1NTE3OFx1OTc1Ylx1NTdhYlx1NzUzNVx1NGY0M1x1NzUzOFx1NWU5N1x1NjBlNlx1NTk2MFx1NmRjMFx1NmJiZlx1Nzg4OVx1NTNmY1x1OTZkNVx1NTFjYlx1NTIwMVx1NjM4OVx1NTQwYVx1OTQ5M1x1OGMwM1x1OGRjY1x1''@;'; put 'put ''NzIzOVx1Nzg5Zlx1ODc3Nlx1OGZlZFx1OGMwZFx1NTNlMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODFdW0VdXT00NjMzNitFLExbNDYzMzYrRV09QlsxODFdW0VdKTtmb3IoQlsxODJd''@;'; put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OTNcdTc5OTRcdTc5OTVcdTc5OTZcdTc5OTdcdTc5OThcdTc5OTlcdTc5OWJcdTc5OWNcdTc5OWRcdTc5OWVcdTc5OWZcdTc5YTBcdTc5YTFcdTc5YTJcdTc5YTNcdTc5YTRcdTc5YTVc''@;'; put 'put ''dTc5YTZcdTc5YThcdTc5YTlcdTc5YWFcdTc5YWJcdTc5YWNcdTc5YWRcdTc5YWVcdTc5YWZcdTc5YjBcdTc5YjFcdTc5YjJcdTc5YjRcdTc5YjVcdTc5YjZcdTc5YjdcdTc5YjhcdTc5YmNcdTc5YmZcdTc5YzJcdTc5YzRcdTc5YzVcdTc5YzdcdTc5YzhcdTc5Y2FcdTc5Y2NcdTc5Y2VcdTc5''@;'; put 'put ''Y2ZcdTc5ZDBcdTc5ZDNcdTc5ZDRcdTc5ZDZcdTc5ZDdcdTc5ZDlcdTc5ZGFcdTc5ZGJcdTc5ZGNcdTc5ZGRcdTc5ZGVcdTc5ZTBcdTc5ZTFcdTc5ZTJcdTc5ZTVcdTc5ZThcdTc5ZWFcdWZmZmRcdTc5ZWNcdTc5ZWVcdTc5ZjFcdTc5ZjJcdTc5ZjNcdTc5ZjRcdTc5ZjVcdTc5ZjZcdTc5Zjdc''@;'; put 'put ''dTc5ZjlcdTc5ZmFcdTc5ZmNcdTc5ZmVcdTc5ZmZcdTdhMDFcdTdhMDRcdTdhMDVcdTdhMDdcdTdhMDhcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMGZcdTdhMTBcdTdhMTFcdTdhMTJcdTdhMTNcdTdhMTVcdTdhMTZcdTdhMThcdTdhMTlcdTdhMWJcdTdhMWNcdTRlMDFcdTc2ZWZcdTUzZWVcdTk0''@;'; put 'put ''ODlcdTk4NzZcdTlmMGVcdTk1MmRcdTViOWFcdThiYTJcdTRlMjJcdTRlMWNcdTUxYWNcdTg0NjNcdTYxYzJcdTUyYThcdTY4MGJcdTRmOTdcdTYwNmJcdTUxYmJcdTZkMWVcdTUxNWNcdTYyOTZcdTY1OTdcdTk2NjFcdThjNDZcdTkwMTdcdTc1ZDhcdTkwZmRcdTc3NjNcdTZiZDJcdTcyOGFc''@;'; put 'put ''dTcyZWNcdThiZmJcdTU4MzVcdTc3NzlcdThkNGNcdTY3NWNcdTk1NDBcdTgwOWFcdTVlYTZcdTZlMjFcdTU5OTJcdTdhZWZcdTc3ZWRcdTk1M2JcdTZiYjVcdTY1YWRcdTdmMGVcdTU4MDZcdTUxNTFcdTk2MWZcdTViZjlcdTU4YTlcdTU0MjhcdThlNzJcdTY1NjZcdTk4N2ZcdTU2ZTRcdTk0''@;'; put 'put ''OWRcdTc2ZmVcdTkwNDFcdTYzODdcdTU0YzZcdTU5MWFcdTU5M2FcdTU3OWJcdThlYjJcdTY3MzVcdThkZmFcdTgyMzVcdTUyNDFcdTYwZjBcdTU4MTVcdTg2ZmVcdTVjZThcdTllNDVcdTRmYzRcdTk4OWRcdThiYjlcdTVhMjVcdTYwNzZcdTUzODRcdTYyN2NcdTkwNGZcdTkxMDJcdTk5N2Zc''@;'; put 'put ''dTYwNjlcdTgwMGNcdTUxM2ZcdTgwMzNcdTVjMTRcdTk5NzVcdTZkMzFcdTRlOGNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgyXVtFXV09NDY1OTIrRSxMWzQ2NTkyK0VdPUJbMTgyXVtF''@;'; put 'put ''XSk7Zm9yKEJbMTgzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTFkXHU3YTFmXHU3YTIxXHU3YTIyXHU3YTI0XHU3YTI1XHU3YTI2XHU3YTI3XHU3YTI4XHU3YTI5XHU3YTJhXHU3YTJiXHU3YTJjXHU3YTJkXHU3YTJlXHU3YTJm''@;'; put 'put ''XHU3YTMwXHU3YTMxXHU3YTMyXHU3YTM0XHU3YTM1XHU3YTM2XHU3YTM4XHU3YTNhXHU3YTNlXHU3YTQwXHU3YTQxXHU3YTQyXHU3YTQzXHU3YTQ0XHU3YTQ1XHU3YTQ3XHU3YTQ4XHU3YTQ5XHU3YTRhXHU3YTRiXHU3YTRjXHU3YTRkXHU3YTRlXHU3YTRmXHU3YTUwXHU3YTUyXHU3YTUzXHU3''@;'; put 'put ''YTU0XHU3YTU1XHU3YTU2XHU3YTU4XHU3YTU5XHU3YTVhXHU3YTViXHU3YTVjXHU3YTVkXHU3YTVlXHU3YTVmXHU3YTYwXHU3YTYxXHU3YTYyXHU3YTYzXHU3YTY0XHU3YTY1XHU3YTY2XHU3YTY3XHU3YTY4XHVmZmZkXHU3YTY5XHU3YTZhXHU3YTZiXHU3YTZjXHU3YTZkXHU3YTZlXHU3YTZm''@;'; put 'put ''XHU3YTcxXHU3YTcyXHU3YTczXHU3YTc1XHU3YTdiXHU3YTdjXHU3YTdkXHU3YTdlXHU3YTgyXHU3YTg1XHU3YTg3XHU3YTg5XHU3YThhXHU3YThiXHU3YThjXHU3YThlXHU3YThmXHU3YTkwXHU3YTkzXHU3YTk0XHU3YTk5XHU3YTlhXHU3YTliXHU3YTllXHU3YWExXHU3YWEyXHU4ZDMwXHU1''@;'; put 'put ''M2QxXHU3ZjVhXHU3YjRmXHU0ZjEwXHU0ZTRmXHU5NjAwXHU2Y2Q1XHU3M2QwXHU4NWU5XHU1ZTA2XHU3NTZhXHU3ZmZiXHU2YTBhXHU3N2ZlXHU5NDkyXHU3ZTQxXHU1MWUxXHU3MGU2XHU1M2NkXHU4ZmQ0XHU4MzAzXHU4ZDI5XHU3MmFmXHU5OTZkXHU2Y2RiXHU1NzRhXHU4MmIzXHU2NWI5''@;'; put 'put ''XHU4MGFhXHU2MjNmXHU5NjMyXHU1OWE4XHU0ZWZmXHU4YmJmXHU3ZWJhXHU2NTNlXHU4M2YyXHU5NzVlXHU1NTYxXHU5OGRlXHU4MGE1XHU1MzJhXHU4YmZkXHU1NDIwXHU4MGJhXHU1ZTlmXHU2Y2I4XHU4ZDM5XHU4MmFjXHU5MTVhXHU1NDI5XHU2YzFiXHU1MjA2XHU3ZWI3XHU1NzVmXHU3''@;'; put 'put ''MTFhXHU2YzdlXHU3Yzg5XHU1OTRiXHU0ZWZkXHU1ZmZmXHU2MTI0XHU3Y2FhXHU0ZTMwXHU1YzAxXHU2N2FiXHU4NzAyXHU1Y2YwXHU5NTBiXHU5OGNlXHU3NWFmXHU3MGZkXHU5MDIyXHU1MWFmXHU3ZjFkXHU4YmJkXHU1OTQ5XHU1MWU0XHU0ZjViXHU1NDI2XHU1OTJiXHU2NTc3XHU4MGE0''@;'; put 'put ''XHU1Yjc1XHU2Mjc2XHU2MmMyXHU4ZjkwXHU1ZTQ1XHU2YzFmXHU3YjI2XHU0ZjBmXHU0ZmQ4XHU2NzBkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4M11bRV1dPTQ2ODQ4K0UsTFs0Njg0''@;'; put 'put ''OCtFXT1CWzE4M11bRV0pO2ZvcihCWzE4NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2FhM1x1N2FhNFx1N2FhN1x1N2FhOVx1N2FhYVx1N2FhYlx1N2FhZVx1N2FhZlx1N2FiMFx1N2FiMVx1N2FiMlx1N2FiNFx1N2FiNVx1N2Fi''@;'; put 'put ''Nlx1N2FiN1x1N2FiOFx1N2FiOVx1N2FiYVx1N2FiYlx1N2FiY1x1N2FiZFx1N2FiZVx1N2FjMFx1N2FjMVx1N2FjMlx1N2FjM1x1N2FjNFx1N2FjNVx1N2FjNlx1N2FjN1x1N2FjOFx1N2FjOVx1N2FjYVx1N2FjY1x1N2FjZFx1N2FjZVx1N2FjZlx1N2FkMFx1N2FkMVx1N2FkMlx1N2FkM1x1''@;'; put 'put ''N2FkNFx1N2FkNVx1N2FkN1x1N2FkOFx1N2FkYVx1N2FkYlx1N2FkY1x1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNFx1N2FlN1x1N2FlOFx1N2FlOVx1N2FlYVx1N2FlYlx1N2FlY1x1N2FlZVx1N2FmMFx1N2FmMVx1N2FmMlx1N2FmM1x1ZmZmZFx1N2FmNFx1N2FmNVx1N2FmNlx1N2FmN1x1N2Fm''@;'; put 'put ''OFx1N2FmYlx1N2FmY1x1N2FmZVx1N2IwMFx1N2IwMVx1N2IwMlx1N2IwNVx1N2IwN1x1N2IwOVx1N2IwY1x1N2IwZFx1N2IwZVx1N2IxMFx1N2IxMlx1N2IxM1x1N2IxNlx1N2IxN1x1N2IxOFx1N2IxYVx1N2IxY1x1N2IxZFx1N2IxZlx1N2IyMVx1N2IyMlx1N2IyM1x1N2IyN1x1N2IyOVx1''@;'; put 'put ''N2IyZFx1NmQ2ZVx1NmRhYVx1Nzk4Zlx1ODhiMVx1NWYxN1x1NzUyYlx1NjI5YVx1OGY4NVx1NGZlZlx1OTFkY1x1NjVhN1x1ODEyZlx1ODE1MVx1NWU5Y1x1ODE1MFx1OGQ3NFx1NTI2Zlx1ODk4Nlx1OGQ0Ylx1NTkwZFx1NTA4NVx1NGVkOFx1OTYxY1x1NzIzNlx1ODE3OVx1OGQxZlx1NWJj''@;'; put 'put ''Y1x1OGJhM1x1OTY0NFx1NTk4N1x1N2YxYVx1NTQ5MFx1NTY3Nlx1NTYwZVx1OGJlNVx1NjUzOVx1Njk4Mlx1OTQ5OVx1NzZkNlx1NmU4OVx1NWU3Mlx1NzUxOFx1Njc0Nlx1NjdkMVx1N2FmZlx1ODA5ZFx1OGQ3Nlx1NjExZlx1NzljNlx1NjU2Mlx1OGQ2M1x1NTE4OFx1NTIxYVx1OTRhMlx1''@;'; put 'put ''N2YzOFx1ODA5Ylx1N2ViMlx1NWM5N1x1NmUyZlx1Njc2MFx1N2JkOVx1NzY4Ylx1OWFkOFx1ODE4Zlx1N2Y5NFx1N2NkNVx1NjQxZVx1OTU1MFx1N2EzZlx1NTQ0YVx1NTRlNVx1NmI0Y1x1NjQwMVx1NjIwOFx1OWUzZFx1ODBmM1x1NzU5OVx1NTI3Mlx1OTc2OVx1ODQ1Ylx1NjgzY1x1ODZl''@;'; put 'put ''NFx1OTYwMVx1OTY5NFx1OTRlY1x1NGUyYVx1NTQwNFx1N2VkOVx1NjgzOVx1OGRkZlx1ODAxNVx1NjZmNFx1NWU5YVx1N2ZiOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODRdW0VdXT00''@;'; put 'put ''NzEwNCtFLExbNDcxMDQrRV09QlsxODRdW0VdKTtmb3IoQlsxODVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdiMmZcdTdiMzBcdTdiMzJcdTdiMzRcdTdiMzVcdTdiMzZcdTdiMzdcdTdiMzlcdTdiM2JcdTdiM2RcdTdiM2ZcdTdi''@;'; put 'put ''NDBcdTdiNDFcdTdiNDJcdTdiNDNcdTdiNDRcdTdiNDZcdTdiNDhcdTdiNGFcdTdiNGRcdTdiNGVcdTdiNTNcdTdiNTVcdTdiNTdcdTdiNTlcdTdiNWNcdTdiNWVcdTdiNWZcdTdiNjFcdTdiNjNcdTdiNjRcdTdiNjVcdTdiNjZcdTdiNjdcdTdiNjhcdTdiNjlcdTdiNmFcdTdiNmJcdTdiNmNc''@;'; put 'put ''dTdiNmRcdTdiNmZcdTdiNzBcdTdiNzNcdTdiNzRcdTdiNzZcdTdiNzhcdTdiN2FcdTdiN2NcdTdiN2RcdTdiN2ZcdTdiODFcdTdiODJcdTdiODNcdTdiODRcdTdiODZcdTdiODdcdTdiODhcdTdiODlcdTdiOGFcdTdiOGJcdTdiOGNcdTdiOGVcdTdiOGZcdWZmZmRcdTdiOTFcdTdiOTJcdTdi''@;'; put 'put ''OTNcdTdiOTZcdTdiOThcdTdiOTlcdTdiOWFcdTdiOWJcdTdiOWVcdTdiOWZcdTdiYTBcdTdiYTNcdTdiYTRcdTdiYTVcdTdiYWVcdTdiYWZcdTdiYjBcdTdiYjJcdTdiYjNcdTdiYjVcdTdiYjZcdTdiYjdcdTdiYjlcdTdiYmFcdTdiYmJcdTdiYmNcdTdiYmRcdTdiYmVcdTdiYmZcdTdiYzBc''@;'; put 'put ''dTdiYzJcdTdiYzNcdTdiYzRcdTU3YzJcdTgwM2ZcdTY4OTdcdTVkZTVcdTY1M2JcdTUyOWZcdTYwNmRcdTlmOWFcdTRmOWJcdThlYWNcdTUxNmNcdTViYWJcdTVmMTNcdTVkZTlcdTZjNWVcdTYyZjFcdThkMjFcdTUxNzFcdTk0YTlcdTUyZmVcdTZjOWZcdTgyZGZcdTcyZDdcdTU3YTJcdTY3''@;'; put 'put ''ODRcdThkMmRcdTU5MWZcdThmOWNcdTgzYzdcdTU0OTVcdTdiOGRcdTRmMzBcdTZjYmRcdTViNjRcdTU5ZDFcdTlmMTNcdTUzZTRcdTg2Y2FcdTlhYThcdThjMzdcdTgwYTFcdTY1NDVcdTk4N2VcdTU2ZmFcdTk2YzdcdTUyMmVcdTc0ZGNcdTUyNTBcdTViZTFcdTYzMDJcdTg5MDJcdTRlNTZc''@;'; put 'put ''dTYyZDBcdTYwMmFcdTY4ZmFcdTUxNzNcdTViOThcdTUxYTBcdTg5YzJcdTdiYTFcdTk5ODZcdTdmNTBcdTYwZWZcdTcwNGNcdThkMmZcdTUxNDlcdTVlN2ZcdTkwMWJcdTc0NzBcdTg5YzRcdTU3MmRcdTc4NDVcdTVmNTJcdTlmOWZcdTk1ZmFcdThmNjhcdTliM2NcdThiZTFcdTc2NzhcdTY4''@;'; put 'put ''NDJcdTY3ZGNcdThkZWFcdThkMzVcdTUyM2RcdThmOGFcdTZlZGFcdTY4Y2RcdTk1MDVcdTkwZWRcdTU2ZmRcdTY3OWNcdTg4ZjlcdThmYzdcdTU0YzhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; put 'put ''W0JbMTg1XVtFXV09NDczNjArRSxMWzQ3MzYwK0VdPUJbMTg1XVtFXSk7Zm9yKEJbMTg2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YmM1XHU3YmM4XHU3YmM5XHU3YmNhXHU3YmNiXHU3YmNkXHU3YmNlXHU3YmNmXHU3YmQwXHU3''@;'; put 'put ''YmQyXHU3YmQ0XHU3YmQ1XHU3YmQ2XHU3YmQ3XHU3YmQ4XHU3YmRiXHU3YmRjXHU3YmRlXHU3YmRmXHU3YmUwXHU3YmUyXHU3YmUzXHU3YmU0XHU3YmU3XHU3YmU4XHU3YmU5XHU3YmViXHU3YmVjXHU3YmVkXHU3YmVmXHU3YmYwXHU3YmYyXHU3YmYzXHU3YmY0XHU3YmY1XHU3YmY2XHU3YmY4''@;'; put 'put ''XHU3YmY5XHU3YmZhXHU3YmZiXHU3YmZkXHU3YmZmXHU3YzAwXHU3YzAxXHU3YzAyXHU3YzAzXHU3YzA0XHU3YzA1XHU3YzA2XHU3YzA4XHU3YzA5XHU3YzBhXHU3YzBkXHU3YzBlXHU3YzEwXHU3YzExXHU3YzEyXHU3YzEzXHU3YzE0XHU3YzE1XHU3YzE3XHU3YzE4XHU3YzE5XHVmZmZkXHU3''@;'; put 'put ''YzFhXHU3YzFiXHU3YzFjXHU3YzFkXHU3YzFlXHU3YzIwXHU3YzIxXHU3YzIyXHU3YzIzXHU3YzI0XHU3YzI1XHU3YzI4XHU3YzI5XHU3YzJiXHU3YzJjXHU3YzJkXHU3YzJlXHU3YzJmXHU3YzMwXHU3YzMxXHU3YzMyXHU3YzMzXHU3YzM0XHU3YzM1XHU3YzM2XHU3YzM3XHU3YzM5XHU3YzNh''@;'; put 'put ''XHU3YzNiXHU3YzNjXHU3YzNkXHU3YzNlXHU3YzQyXHU5YWI4XHU1YjY5XHU2ZDc3XHU2YzI2XHU0ZWE1XHU1YmIzXHU5YTg3XHU5MTYzXHU2MWE4XHU5MGFmXHU5N2U5XHU1NDJiXHU2ZGI1XHU1YmQyXHU1MWZkXHU1NThhXHU3ZjU1XHU3ZmYwXHU2NGJjXHU2MzRkXHU2NWYxXHU2MWJlXHU2''@;'; put 'put ''MDhkXHU3MTBhXHU2YzU3XHU2YzQ5XHU1OTJmXHU2NzZkXHU4MjJhXHU1OGQ1XHU1NjhlXHU4YzZhXHU2YmViXHU5MGRkXHU1OTdkXHU4MDE3XHU1M2Y3XHU2ZDY5XHU1NDc1XHU1NTlkXHU4Mzc3XHU4M2NmXHU2ODM4XHU3OWJlXHU1NDhjXHU0ZjU1XHU1NDA4XHU3NmQyXHU4Yzg5XHU5NjAy''@;'; put 'put ''XHU2Y2IzXHU2ZGI4XHU4ZDZiXHU4OTEwXHU5ZTY0XHU4ZDNhXHU1NjNmXHU5ZWQxXHU3NWQ1XHU1Zjg4XHU3MmUwXHU2MDY4XHU1NGZjXHU0ZWE4XHU2YTJhXHU4ODYxXHU2MDUyXHU4ZjcwXHU1NGM0XHU3MGQ4XHU4Njc5XHU5ZTNmXHU2ZDJhXHU1YjhmXHU1ZjE4XHU3ZWEyXHU1NTg5XHU0''@;'; put 'put ''ZmFmXHU3MzM0XHU1NDNjXHU1MzlhXHU1MDE5XHU1NDBlXHU1NDdjXHU0ZTRlXHU1ZmZkXHU3NDVhXHU1OGY2XHU4NDZiXHU4MGUxXHU4Nzc0XHU3MmQwXHU3Y2NhXHU2ZTU2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODZdW0VdLmNoYXJD''@;'; put 'put ''b2RlQXQoMCkmJihtZVtCWzE4Nl1bRV1dPTQ3NjE2K0UsTFs0NzYxNitFXT1CWzE4Nl1bRV0pO2ZvcihCWzE4N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2M0M1x1N2M0NFx1N2M0NVx1N2M0Nlx1N2M0N1x1N2M0OFx1N2M0OVx1''@;'; put 'put ''N2M0YVx1N2M0Ylx1N2M0Y1x1N2M0ZVx1N2M0Zlx1N2M1MFx1N2M1MVx1N2M1Mlx1N2M1M1x1N2M1NFx1N2M1NVx1N2M1Nlx1N2M1N1x1N2M1OFx1N2M1OVx1N2M1YVx1N2M1Ylx1N2M1Y1x1N2M1ZFx1N2M1ZVx1N2M1Zlx1N2M2MFx1N2M2MVx1N2M2Mlx1N2M2M1x1N2M2NFx1N2M2NVx1N2M2''@;'; put 'put ''Nlx1N2M2N1x1N2M2OFx1N2M2OVx1N2M2YVx1N2M2Ylx1N2M2Y1x1N2M2ZFx1N2M2ZVx1N2M2Zlx1N2M3MFx1N2M3MVx1N2M3Mlx1N2M3NVx1N2M3Nlx1N2M3N1x1N2M3OFx1N2M3OVx1N2M3YVx1N2M3ZVx1N2M3Zlx1N2M4MFx1N2M4MVx1N2M4Mlx1N2M4M1x1N2M4NFx1N2M4NVx1N2M4Nlx1''@;'; put 'put ''N2M4N1x1ZmZmZFx1N2M4OFx1N2M4YVx1N2M4Ylx1N2M4Y1x1N2M4ZFx1N2M4ZVx1N2M4Zlx1N2M5MFx1N2M5M1x1N2M5NFx1N2M5Nlx1N2M5OVx1N2M5YVx1N2M5Ylx1N2NhMFx1N2NhMVx1N2NhM1x1N2NhNlx1N2NhN1x1N2NhOFx1N2NhOVx1N2NhYlx1N2NhY1x1N2NhZFx1N2NhZlx1N2Ni''@;'; put 'put ''MFx1N2NiNFx1N2NiNVx1N2NiNlx1N2NiN1x1N2NiOFx1N2NiYVx1N2NiYlx1NWYyN1x1ODY0ZVx1NTUyY1x1NjJhNFx1NGU5Mlx1NmNhYVx1NjIzN1x1ODJiMVx1NTRkN1x1NTM0ZVx1NzMzZVx1NmVkMVx1NzUzYlx1NTIxMlx1NTMxNlx1OGJkZFx1NjlkMFx1NWY4YVx1NjAwMFx1NmRlZVx1''@;'; put 'put ''NTc0Zlx1NmIyMlx1NzNhZlx1Njg1M1x1OGZkOFx1N2YxM1x1NjM2Mlx1NjBhM1x1NTUyNFx1NzVlYVx1OGM2Mlx1NzExNVx1NmRhM1x1NWJhNlx1NWU3Ylx1ODM1Mlx1NjE0Y1x1OWVjNFx1NzhmYVx1ODc1N1x1N2MyN1x1NzY4N1x1NTFmMFx1NjBmNlx1NzE0Y1x1NjY0M1x1NWU0Y1x1NjA0''@;'; put 'put ''ZFx1OGMwZVx1NzA3MFx1NjMyNVx1OGY4OVx1NWZiZFx1NjA2Mlx1ODZkNFx1NTZkZVx1NmJjMVx1NjA5NFx1NjE2N1x1NTM0OVx1NjBlMFx1NjY2Nlx1OGQzZlx1NzlmZFx1NGYxYVx1NzBlOVx1NmM0N1x1OGJiM1x1OGJmMlx1N2VkOFx1ODM2NFx1NjYwZlx1NWE1YVx1OWI0Mlx1NmQ1MVx1''@;'; put 'put ''NmRmN1x1OGM0MVx1NmQzYlx1NGYxOVx1NzA2Ylx1ODNiN1x1NjIxNlx1NjBkMVx1OTcwZFx1OGQyN1x1Nzk3OFx1NTFmYlx1NTczZVx1NTdmYVx1NjczYVx1NzU3OFx1N2EzZFx1NzllZlx1N2I5NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJb''@;'; put 'put ''MTg3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODddW0VdXT00Nzg3MitFLExbNDc4NzIrRV09QlsxODddW0VdKTtmb3IoQlsxODhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjYmZcdTdjYzBcdTdjYzJcdTdjYzNcdTdjYzRc''@;'; put 'put ''dTdjYzZcdTdjYzlcdTdjY2JcdTdjY2VcdTdjY2ZcdTdjZDBcdTdjZDFcdTdjZDJcdTdjZDNcdTdjZDRcdTdjZDhcdTdjZGFcdTdjZGJcdTdjZGRcdTdjZGVcdTdjZTFcdTdjZTJcdTdjZTNcdTdjZTRcdTdjZTVcdTdjZTZcdTdjZTdcdTdjZTlcdTdjZWFcdTdjZWJcdTdjZWNcdTdjZWRcdTdj''@;'; put 'put ''ZWVcdTdjZjBcdTdjZjFcdTdjZjJcdTdjZjNcdTdjZjRcdTdjZjVcdTdjZjZcdTdjZjdcdTdjZjlcdTdjZmFcdTdjZmNcdTdjZmRcdTdjZmVcdTdjZmZcdTdkMDBcdTdkMDFcdTdkMDJcdTdkMDNcdTdkMDRcdTdkMDVcdTdkMDZcdTdkMDdcdTdkMDhcdTdkMDlcdTdkMGJcdTdkMGNcdTdkMGRc''@;'; put 'put ''dTdkMGVcdTdkMGZcdTdkMTBcdWZmZmRcdTdkMTFcdTdkMTJcdTdkMTNcdTdkMTRcdTdkMTVcdTdkMTZcdTdkMTdcdTdkMThcdTdkMTlcdTdkMWFcdTdkMWJcdTdkMWNcdTdkMWRcdTdkMWVcdTdkMWZcdTdkMjFcdTdkMjNcdTdkMjRcdTdkMjVcdTdkMjZcdTdkMjhcdTdkMjlcdTdkMmFcdTdk''@;'; put 'put ''MmNcdTdkMmRcdTdkMmVcdTdkMzBcdTdkMzFcdTdkMzJcdTdkMzNcdTdkMzRcdTdkMzVcdTdkMzZcdTgwOGNcdTk5NjVcdThmZjlcdTZmYzBcdThiYTVcdTllMjFcdTU5ZWNcdTdlZTlcdTdmMDlcdTU0MDlcdTY3ODFcdTY4ZDhcdThmOTFcdTdjNGRcdTk2YzZcdTUzY2FcdTYwMjVcdTc1YmVc''@;'; put 'put ''dTZjNzJcdTUzNzNcdTVhYzlcdTdlYTdcdTYzMjRcdTUxZTBcdTgxMGFcdTVkZjFcdTg0ZGZcdTYyODBcdTUxODBcdTViNjNcdTRmMGVcdTc5NmRcdTUyNDJcdTYwYjhcdTZkNGVcdTViYzRcdTViYzJcdThiYTFcdThiYjBcdTY1ZTJcdTVmY2NcdTk2NDVcdTU5OTNcdTdlZTdcdTdlYWFcdTU2''@;'; put 'put ''MDlcdTY3YjdcdTU5MzlcdTRmNzNcdTViYjZcdTUyYTBcdTgzNWFcdTk4OGFcdThkM2VcdTc1MzJcdTk0YmVcdTUwNDdcdTdhM2NcdTRlZjdcdTY3YjZcdTlhN2VcdTVhYzFcdTZiN2NcdTc2ZDFcdTU3NWFcdTVjMTZcdTdiM2FcdTk1ZjRcdTcxNGVcdTUxN2NcdTgwYTlcdTgyNzBcdTU5Nzhc''@;'; put 'put ''dTdmMDRcdTgzMjdcdTY4YzBcdTY3ZWNcdTc4YjFcdTc4NzdcdTYyZTNcdTYzNjFcdTdiODBcdTRmZWRcdTUyNmFcdTUxY2ZcdTgzNTBcdTY5ZGJcdTkyNzRcdThkZjVcdThkMzFcdTg5YzFcdTk1MmVcdTdiYWRcdTRlZjZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODhdLmxlbmd0aDsr''@;'; put 'put ''K0UpNjU1MzMhPT1CWzE4OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg4XVtFXV09NDgxMjgrRSxMWzQ4MTI4K0VdPUJbMTg4XVtFXSk7Zm9yKEJbMTg5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZDM3XHU3ZDM4XHU3ZDM5''@;'; put 'put ''XHU3ZDNhXHU3ZDNiXHU3ZDNjXHU3ZDNkXHU3ZDNlXHU3ZDNmXHU3ZDQwXHU3ZDQxXHU3ZDQyXHU3ZDQzXHU3ZDQ0XHU3ZDQ1XHU3ZDQ2XHU3ZDQ3XHU3ZDQ4XHU3ZDQ5XHU3ZDRhXHU3ZDRiXHU3ZDRjXHU3ZDRkXHU3ZDRlXHU3ZDRmXHU3ZDUwXHU3ZDUxXHU3ZDUyXHU3ZDUzXHU3ZDU0XHU3''@;'; put 'put ''ZDU1XHU3ZDU2XHU3ZDU3XHU3ZDU4XHU3ZDU5XHU3ZDVhXHU3ZDViXHU3ZDVjXHU3ZDVkXHU3ZDVlXHU3ZDVmXHU3ZDYwXHU3ZDYxXHU3ZDYyXHU3ZDYzXHU3ZDY0XHU3ZDY1XHU3ZDY2XHU3ZDY3XHU3ZDY4XHU3ZDY5XHU3ZDZhXHU3ZDZiXHU3ZDZjXHU3ZDZkXHU3ZDZmXHU3ZDcwXHU3ZDcx''@;'; put 'put ''XHU3ZDcyXHU3ZDczXHU3ZDc0XHU3ZDc1XHU3ZDc2XHVmZmZkXHU3ZDc4XHU3ZDc5XHU3ZDdhXHU3ZDdiXHU3ZDdjXHU3ZDdkXHU3ZDdlXHU3ZDdmXHU3ZDgwXHU3ZDgxXHU3ZDgyXHU3ZDgzXHU3ZDg0XHU3ZDg1XHU3ZDg2XHU3ZDg3XHU3ZDg4XHU3ZDg5XHU3ZDhhXHU3ZDhiXHU3ZDhjXHU3''@;'; put 'put ''ZDhkXHU3ZDhlXHU3ZDhmXHU3ZDkwXHU3ZDkxXHU3ZDkyXHU3ZDkzXHU3ZDk0XHU3ZDk1XHU3ZDk2XHU3ZDk3XHU3ZDk4XHU1MDY1XHU4MjMwXHU1MjUxXHU5OTZmXHU2ZTEwXHU2ZTg1XHU2ZGE3XHU1ZWZhXHU1MGY1XHU1OWRjXHU1YzA2XHU2ZDQ2XHU2YzVmXHU3NTg2XHU4NDhiXHU2ODY4''@;'; put 'put ''XHU1OTU2XHU4YmIyXHU1MzIwXHU5MTcxXHU5NjRkXHU4NTQ5XHU2OTEyXHU3OTAxXHU3MTI2XHU4MGY2XHU0ZWE0XHU5MGNhXHU2ZDQ3XHU5YTg0XHU1YTA3XHU1NmJjXHU2NDA1XHU5NGYwXHU3N2ViXHU0ZmE1XHU4MTFhXHU3MmUxXHU4OWQyXHU5OTdhXHU3ZjM0XHU3ZWRlXHU1MjdmXHU2''@;'; put 'put ''NTU5XHU5MTc1XHU4ZjdmXHU4ZjgzXHU1M2ViXHU3YTk2XHU2M2VkXHU2M2E1XHU3Njg2XHU3OWY4XHU4ODU3XHU5NjM2XHU2MjJhXHU1MmFiXHU4MjgyXHU2ODU0XHU2NzcwXHU2Mzc3XHU3NzZiXHU3YWVkXHU2ZDAxXHU3ZWQzXHU4OWUzXHU1OWQwXHU2MjEyXHU4NWM5XHU4MmE1XHU3NTRj''@;'; put 'put ''XHU1MDFmXHU0ZWNiXHU3NWE1XHU4YmViXHU1YzRhXHU1ZGZlXHU3YjRiXHU2NWE0XHU5MWQxXHU0ZWNhXHU2ZDI1XHU4OTVmXHU3ZDI3XHU5NTI2XHU0ZWM1XHU4YzI4XHU4ZmRiXHU5NzczXHU2NjRiXHU3OTgxXHU4ZmQxXHU3MGVjXHU2ZDc4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJb''@;'; put 'put ''MTg5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4OV1bRV1dPTQ4Mzg0K0UsTFs0ODM4NCtFXT1CWzE4OV1bRV0pO2ZvcihCWzE5MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Q5''@;'; put 'put ''OVx1N2Q5YVx1N2Q5Ylx1N2Q5Y1x1N2Q5ZFx1N2Q5ZVx1N2Q5Zlx1N2RhMFx1N2RhMVx1N2RhMlx1N2RhM1x1N2RhNFx1N2RhNVx1N2RhN1x1N2RhOFx1N2RhOVx1N2RhYVx1N2RhYlx1N2RhY1x1N2RhZFx1N2RhZlx1N2RiMFx1N2RiMVx1N2RiMlx1N2RiM1x1N2RiNFx1N2RiNVx1N2RiNlx1''@;'; put 'put ''N2RiN1x1N2RiOFx1N2RiOVx1N2RiYVx1N2RiYlx1N2RiY1x1N2RiZFx1N2RiZVx1N2RiZlx1N2RjMFx1N2RjMVx1N2RjMlx1N2RjM1x1N2RjNFx1N2RjNVx1N2RjNlx1N2RjN1x1N2RjOFx1N2RjOVx1N2RjYVx1N2RjYlx1N2RjY1x1N2RjZFx1N2RjZVx1N2RjZlx1N2RkMFx1N2RkMVx1N2Rk''@;'; put 'put ''Mlx1N2RkM1x1N2RkNFx1N2RkNVx1N2RkNlx1N2RkN1x1N2RkOFx1N2RkOVx1ZmZmZFx1N2RkYVx1N2RkYlx1N2RkY1x1N2RkZFx1N2RkZVx1N2RkZlx1N2RlMFx1N2RlMVx1N2RlMlx1N2RlM1x1N2RlNFx1N2RlNVx1N2RlNlx1N2RlN1x1N2RlOFx1N2RlOVx1N2RlYVx1N2RlYlx1N2RlY1x1''@;'; put 'put ''N2RlZFx1N2RlZVx1N2RlZlx1N2RmMFx1N2RmMVx1N2RmMlx1N2RmM1x1N2RmNFx1N2RmNVx1N2RmNlx1N2RmN1x1N2RmOFx1N2RmOVx1N2RmYVx1NWMzZFx1NTJiMlx1ODM0Nlx1NTE2Mlx1ODMwZVx1Nzc1Ylx1NjY3Nlx1OWNiOFx1NGVhY1x1NjBjYVx1N2NiZVx1N2NiM1x1N2VjZlx1NGU5''@;'; put 'put ''NVx1OGI2Nlx1NjY2Zlx1OTg4OFx1OTc1OVx1NTg4M1x1NjU2Y1x1OTU1Y1x1NWY4NFx1NzVjOVx1OTc1Nlx1N2FkZlx1N2FkZVx1NTFjMFx1NzBhZlx1N2E5OFx1NjNlYVx1N2E3Nlx1N2VhMFx1NzM5Nlx1OTdlZFx1NGU0NVx1NzA3OFx1NGU1ZFx1OTE1Mlx1NTNhOVx1NjU1MVx1NjVlN1x1''@;'; put 'put ''ODFmY1x1ODIwNVx1NTQ4ZVx1NWMzMVx1NzU5YVx1OTdhMFx1NjJkOFx1NzJkOVx1NzViZFx1NWM0NVx1OWE3OVx1ODNjYVx1NWM0MFx1NTQ4MFx1NzdlOVx1NGUzZVx1NmNhZVx1ODA1YVx1NjJkMlx1NjM2ZVx1NWRlOFx1NTE3N1x1OGRkZFx1OGUxZVx1OTUyZlx1NGZmMVx1NTNlNVx1NjBl''@;'; put 'put ''N1x1NzBhY1x1NTI2N1x1NjM1MFx1OWU0M1x1NWExZlx1NTAyNlx1NzczN1x1NTM3N1x1N2VlMlx1NjQ4NVx1NjUyYlx1NjI4OVx1NjM5OFx1NTAxNFx1NzIzNVx1ODljOVx1NTFiM1x1OGJjMFx1N2VkZFx1NTc0N1x1ODNjY1x1OTRhN1x1NTE5Ylx1NTQxYlx1NWNmYlx1ZmZmZCIuc3BsaXQo''@;'; put 'put ''IiIpLEU9MDtFIT1CWzE5MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTBdW0VdXT00ODY0MCtFLExbNDg2NDArRV09QlsxOTBdW0VdKTtmb3IoQlsxOTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdTdkZmJcdTdkZmNcdTdkZmRcdTdkZmVcdTdkZmZcdTdlMDBcdTdlMDFcdTdlMDJcdTdlMDNcdTdlMDRcdTdlMDVcdTdlMDZcdTdlMDdcdTdlMDhcdTdlMDlcdTdlMGFcdTdlMGJcdTdlMGNcdTdlMGRcdTdlMGVcdTdlMGZcdTdlMTBcdTdlMTFcdTdlMTJcdTdlMTNcdTdlMTRc''@;'; put 'put ''dTdlMTVcdTdlMTZcdTdlMTdcdTdlMThcdTdlMTlcdTdlMWFcdTdlMWJcdTdlMWNcdTdlMWRcdTdlMWVcdTdlMWZcdTdlMjBcdTdlMjFcdTdlMjJcdTdlMjNcdTdlMjRcdTdlMjVcdTdlMjZcdTdlMjdcdTdlMjhcdTdlMjlcdTdlMmFcdTdlMmJcdTdlMmNcdTdlMmRcdTdlMmVcdTdlMmZcdTdl''@;'; put 'put ''MzBcdTdlMzFcdTdlMzJcdTdlMzNcdTdlMzRcdTdlMzVcdTdlMzZcdTdlMzdcdTdlMzhcdTdlMzlcdWZmZmRcdTdlM2FcdTdlM2NcdTdlM2RcdTdlM2VcdTdlM2ZcdTdlNDBcdTdlNDJcdTdlNDNcdTdlNDRcdTdlNDVcdTdlNDZcdTdlNDhcdTdlNDlcdTdlNGFcdTdlNGJcdTdlNGNcdTdlNGRc''@;'; put 'put ''dTdlNGVcdTdlNGZcdTdlNTBcdTdlNTFcdTdlNTJcdTdlNTNcdTdlNTRcdTdlNTVcdTdlNTZcdTdlNTdcdTdlNThcdTdlNTlcdTdlNWFcdTdlNWJcdTdlNWNcdTdlNWRcdTRmY2FcdTdhZTNcdTZkNWFcdTkwZTFcdTlhOGZcdTU1ODBcdTU0OTZcdTUzNjFcdTU0YWZcdTVmMDBcdTYzZTlcdTY5''@;'; put 'put ''NzdcdTUxZWZcdTYxNjhcdTUyMGFcdTU4MmFcdTUyZDhcdTU3NGVcdTc4MGRcdTc3MGJcdTVlYjdcdTYxNzdcdTdjZTBcdTYyNWJcdTYyOTdcdTRlYTJcdTcwOTVcdTgwMDNcdTYyZjdcdTcwZTRcdTk3NjBcdTU3NzdcdTgyZGJcdTY3ZWZcdTY4ZjVcdTc4ZDVcdTk4OTdcdTc5ZDFcdTU4ZjNc''@;'; put 'put ''dTU0YjNcdTUzZWZcdTZlMzRcdTUxNGJcdTUyM2JcdTViYTJcdThiZmVcdTgwYWZcdTU1NDNcdTU3YTZcdTYwNzNcdTU3NTFcdTU0MmRcdTdhN2FcdTYwNTBcdTViNTRcdTYzYTdcdTYyYTBcdTUzZTNcdTYyNjNcdTViYzdcdTY3YWZcdTU0ZWRcdTdhOWZcdTgyZTZcdTkxNzdcdTVlOTNcdTg4''@;'; put 'put ''ZTRcdTU5MzhcdTU3YWVcdTYzMGVcdThkZThcdTgwZWZcdTU3NTdcdTdiNzdcdTRmYTlcdTVmZWJcdTViYmRcdTZiM2VcdTUzMjFcdTdiNTBcdTcyYzJcdTY4NDZcdTc3ZmZcdTc3MzZcdTY1ZjdcdTUxYjVcdTRlOGZcdTc2ZDRcdTVjYmZcdTdhYTVcdTg0NzVcdTU5NGVcdTliNDFcdTUwODBc''@;'; put 'put ''dWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkxXVtFXV09NDg4OTYrRSxMWzQ4ODk2K0VdPUJbMTkxXVtFXSk7Zm9yKEJbMTkyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTVlXHU3ZTVmXHU3ZTYwXHU3ZTYxXHU3ZTYyXHU3ZTYzXHU3ZTY0XHU3ZTY1XHU3ZTY2XHU3ZTY3XHU3ZTY4XHU3ZTY5XHU3ZTZhXHU3ZTZiXHU3ZTZjXHU3ZTZkXHU3ZTZlXHU3ZTZmXHU3ZTcwXHU3ZTcxXHU3ZTcyXHU3ZTczXHU3ZTc0XHU3ZTc1''@;'; put 'put ''XHU3ZTc2XHU3ZTc3XHU3ZTc4XHU3ZTc5XHU3ZTdhXHU3ZTdiXHU3ZTdjXHU3ZTdkXHU3ZTdlXHU3ZTdmXHU3ZTgwXHU3ZTgxXHU3ZTgzXHU3ZTg0XHU3ZTg1XHU3ZTg2XHU3ZTg3XHU3ZTg4XHU3ZTg5XHU3ZThhXHU3ZThiXHU3ZThjXHU3ZThkXHU3ZThlXHU3ZThmXHU3ZTkwXHU3ZTkxXHU3''@;'; put 'put ''ZTkyXHU3ZTkzXHU3ZTk0XHU3ZTk1XHU3ZTk2XHU3ZTk3XHU3ZTk4XHU3ZTk5XHU3ZTlhXHU3ZTljXHU3ZTlkXHU3ZTllXHVmZmZkXHU3ZWFlXHU3ZWI0XHU3ZWJiXHU3ZWJjXHU3ZWQ2XHU3ZWU0XHU3ZWVjXHU3ZWY5XHU3ZjBhXHU3ZjEwXHU3ZjFlXHU3ZjM3XHU3ZjM5XHU3ZjNiXHU3ZjNj''@;'; put 'put ''XHU3ZjNkXHU3ZjNlXHU3ZjNmXHU3ZjQwXHU3ZjQxXHU3ZjQzXHU3ZjQ2XHU3ZjQ3XHU3ZjQ4XHU3ZjQ5XHU3ZjRhXHU3ZjRiXHU3ZjRjXHU3ZjRkXHU3ZjRlXHU3ZjRmXHU3ZjUyXHU3ZjUzXHU5OTg4XHU2MTI3XHU2ZTgzXHU1NzY0XHU2NjA2XHU2MzQ2XHU1NmYwXHU2MmVjXHU2MjY5XHU1''@;'; put 'put ''ZWQzXHU5NjE0XHU1NzgzXHU2MmM5XHU1NTg3XHU4NzIxXHU4MTRhXHU4ZmEzXHU1NTY2XHU4M2IxXHU2NzY1XHU4ZDU2XHU4NGRkXHU1YTZhXHU2ODBmXHU2MmU2XHU3YmVlXHU5NjExXHU1MTcwXHU2ZjljXHU4YzMwXHU2M2ZkXHU4OWM4XHU2MWQyXHU3ZjA2XHU3MGMyXHU2ZWU1XHU3NDA1''@;'; put 'put ''XHU2OTk0XHU3MmZjXHU1ZWNhXHU5MGNlXHU2NzE3XHU2ZDZhXHU2MzVlXHU1MmIzXHU3MjYyXHU4MDAxXHU0ZjZjXHU1OWU1XHU5MTZhXHU3MGQ5XHU2ZDlkXHU1MmQyXHU0ZTUwXHU5NmY3XHU5NTZkXHU4NTdlXHU3OGNhXHU3ZDJmXHU1MTIxXHU1NzkyXHU2NGMyXHU4MDhiXHU3YzdiXHU2''@;'; put 'put ''Y2VhXHU2OGYxXHU2OTVlXHU1MWI3XHU1Mzk4XHU2OGE4XHU3MjgxXHU5ZWNlXHU3YmYxXHU3MmY4XHU3OWJiXHU2ZjEzXHU3NDA2XHU2NzRlXHU5MWNjXHU5Y2E0XHU3OTNjXHU4Mzg5XHU4MzU0XHU1NDBmXHU2ODE3XHU0ZTNkXHU1Mzg5XHU1MmIxXHU3ODNlXHU1Mzg2XHU1MjI5XHU1MDg4''@;'; put 'put ''XHU0ZjhiXHU0ZmQwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Ml1bRV1dPTQ5MTUyK0UsTFs0OTE1MitFXT1CWzE5Ml1bRV0pO2ZvcihCWzE5M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2Y1Nlx1N2Y1OVx1N2Y1Ylx1N2Y1Y1x1N2Y1ZFx1N2Y1ZVx1N2Y2MFx1N2Y2M1x1N2Y2NFx1N2Y2NVx1N2Y2Nlx1N2Y2N1x1N2Y2Ylx1N2Y2Y1x1N2Y2ZFx1N2Y2Zlx1N2Y3MFx1N2Y3M1x1N2Y3NVx1N2Y3Nlx1N2Y3N1x1N2Y3''@;'; put 'put ''OFx1N2Y3YVx1N2Y3Ylx1N2Y3Y1x1N2Y3ZFx1N2Y3Zlx1N2Y4MFx1N2Y4Mlx1N2Y4M1x1N2Y4NFx1N2Y4NVx1N2Y4Nlx1N2Y4N1x1N2Y4OFx1N2Y4OVx1N2Y4Ylx1N2Y4ZFx1N2Y4Zlx1N2Y5MFx1N2Y5MVx1N2Y5Mlx1N2Y5M1x1N2Y5NVx1N2Y5Nlx1N2Y5N1x1N2Y5OFx1N2Y5OVx1N2Y5Ylx1''@;'; put 'put ''N2Y5Y1x1N2ZhMFx1N2ZhMlx1N2ZhM1x1N2ZhNVx1N2ZhNlx1N2ZhOFx1N2ZhOVx1N2ZhYVx1N2ZhYlx1N2ZhY1x1N2ZhZFx1N2ZhZVx1N2ZiMVx1ZmZmZFx1N2ZiM1x1N2ZiNFx1N2ZiNVx1N2ZiNlx1N2ZiN1x1N2ZiYVx1N2ZiYlx1N2ZiZVx1N2ZjMFx1N2ZjMlx1N2ZjM1x1N2ZjNFx1N2Zj''@;'; put 'put ''Nlx1N2ZjN1x1N2ZjOFx1N2ZjOVx1N2ZjYlx1N2ZjZFx1N2ZjZlx1N2ZkMFx1N2ZkMVx1N2ZkMlx1N2ZkM1x1N2ZkNlx1N2ZkN1x1N2ZkOVx1N2ZkYVx1N2ZkYlx1N2ZkY1x1N2ZkZFx1N2ZkZVx1N2ZlMlx1N2ZlM1x1NzVlMlx1N2FjYlx1N2M5Mlx1NmNhNVx1OTZiNlx1NTI5Ylx1NzQ4M1x1''@;'; put 'put ''NTRlOVx1NGZlOVx1ODA1NFx1ODNiMlx1OGZkZVx1OTU3MFx1NWVjOVx1NjAxY1x1NmQ5Zlx1NWUxOFx1NjU1Ylx1ODEzOFx1OTRmZVx1NjA0Ylx1NzBiY1x1N2VjM1x1N2NhZVx1NTFjOVx1Njg4MVx1N2NiMVx1ODI2Zlx1NGUyNFx1OGY4Nlx1OTFjZlx1NjY3ZVx1NGVhZVx1OGMwNVx1NjRh''@;'; put 'put ''OVx1ODA0YVx1NTBkYVx1NzU5N1x1NzFjZVx1NWJlNVx1OGZiZFx1NmY2Nlx1NGU4Nlx1NjQ4Mlx1OTU2M1x1NWVkNlx1NjU5OVx1NTIxN1x1ODhjMlx1NzBjOFx1NTJhM1x1NzMwZVx1NzQzM1x1Njc5N1x1NzhmN1x1OTcxNlx1NGUzNFx1OTBiYlx1OWNkZVx1NmRjYlx1NTFkYlx1OGQ0MVx1''@;'; put 'put ''NTQxZFx1NjJjZVx1NzNiMlx1ODNmMVx1OTZmNlx1OWY4NFx1OTRjM1x1NGYzNlx1N2Y5YVx1NTFjY1x1NzA3NVx1OTY3NVx1NWNhZFx1OTg4Nlx1NTNlNlx1NGVlNFx1NmU5Y1x1NzQwOVx1NjliNFx1Nzg2Ylx1OTk4Zlx1NzU1OVx1NTIxOFx1NzYyNFx1NmQ0MVx1NjdmM1x1NTE2ZFx1OWY5''@;'; put 'put ''OVx1ODA0Ylx1NTQ5OVx1N2IzY1x1N2FiZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTNdW0VdXT00OTQwOCtFLExbNDk0MDgrRV09QlsxOTNdW0VdKTtmb3IoQlsxOTRdPSJcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdmZTRcdTdmZTdcdTdmZThcdTdmZWFcdTdmZWJcdTdmZWNcdTdmZWRcdTdmZWZcdTdmZjJcdTdmZjRcdTdmZjVcdTdmZjZcdTdmZjdcdTdmZjhcdTdmZjlcdTdmZmFcdTdmZmRcdTdmZmVcdTdmZmZcdTgw''@;'; put 'put ''MDJcdTgwMDdcdTgwMDhcdTgwMDlcdTgwMGFcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMWFcdTgwMWJcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjFcdTgwMjNcdTgwMjRcdTgwMmJcdTgwMmNcdTgwMmRcdTgwMmVcdTgwMmZcdTgwMzBcdTgwMzJcdTgwMzRcdTgwMzlcdTgwM2FcdTgwM2Nc''@;'; put 'put ''dTgwM2VcdTgwNDBcdTgwNDFcdTgwNDRcdTgwNDVcdTgwNDdcdTgwNDhcdTgwNDlcdTgwNGVcdTgwNGZcdTgwNTBcdTgwNTFcdTgwNTNcdTgwNTVcdTgwNTZcdTgwNTdcdWZmZmRcdTgwNTlcdTgwNWJcdTgwNWNcdTgwNWRcdTgwNWVcdTgwNWZcdTgwNjBcdTgwNjFcdTgwNjJcdTgwNjNcdTgw''@;'; put 'put ''NjRcdTgwNjVcdTgwNjZcdTgwNjdcdTgwNjhcdTgwNmJcdTgwNmNcdTgwNmRcdTgwNmVcdTgwNmZcdTgwNzBcdTgwNzJcdTgwNzNcdTgwNzRcdTgwNzVcdTgwNzZcdTgwNzdcdTgwNzhcdTgwNzlcdTgwN2FcdTgwN2JcdTgwN2NcdTgwN2RcdTk2ODZcdTU3ODRcdTYyZTJcdTk2NDdcdTY5N2Nc''@;'; put 'put ''dTVhMDRcdTY0MDJcdTdiZDNcdTZmMGZcdTk2NGJcdTgyYTZcdTUzNjJcdTk4ODVcdTVlOTBcdTcwODlcdTYzYjNcdTUzNjRcdTg2NGZcdTljODFcdTllOTNcdTc4OGNcdTk3MzJcdThkZWZcdThkNDJcdTllN2ZcdTZmNWVcdTc5ODRcdTVmNTVcdTk2NDZcdTYyMmVcdTlhNzRcdTU0MTVcdTk0''@;'; put 'put ''ZGRcdTRmYTNcdTY1YzVcdTVjNjVcdTVjNjFcdTdmMTVcdTg2NTFcdTZjMmZcdTVmOGJcdTczODdcdTZlZTRcdTdlZmZcdTVjZTZcdTYzMWJcdTViNmFcdTZlZTZcdTUzNzVcdTRlNzFcdTYzYTBcdTc1NjVcdTYyYTFcdThmNmVcdTRmMjZcdTRlZDFcdTZjYTZcdTdlYjZcdThiYmFcdTg0MWRc''@;'; put 'put ''dTg3YmFcdTdmNTdcdTkwM2JcdTk1MjNcdTdiYTlcdTlhYTFcdTg4ZjhcdTg0M2RcdTZkMWJcdTlhODZcdTdlZGNcdTU5ODhcdTllYmJcdTczOWJcdTc4MDFcdTg2ODJcdTlhNmNcdTlhODJcdTU2MWJcdTU0MTdcdTU3Y2JcdTRlNzBcdTllYTZcdTUzNTZcdThmYzhcdTgxMDlcdTc3OTJcdTk5''@;'; put 'put ''OTJcdTg2ZWVcdTZlZTFcdTg1MTNcdTY2ZmNcdTYxNjJcdTZmMmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk0XVtFXV09NDk2NjQrRSxMWzQ5NjY0K0VdPUJbMTk0XVtFXSk7Zm9yKEJb''@;'; put 'put ''MTk1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDdlXHU4MDgxXHU4MDgyXHU4MDg1XHU4MDg4XHU4MDhhXHU4MDhkXHU4MDhlXHU4MDhmXHU4MDkwXHU4MDkxXHU4MDkyXHU4MDk0XHU4MDk1XHU4MDk3XHU4MDk5XHU4MDllXHU4''@;'; put 'put ''MGEzXHU4MGE2XHU4MGE3XHU4MGE4XHU4MGFjXHU4MGIwXHU4MGIzXHU4MGI1XHU4MGI2XHU4MGI4XHU4MGI5XHU4MGJiXHU4MGM1XHU4MGM3XHU4MGM4XHU4MGM5XHU4MGNhXHU4MGNiXHU4MGNmXHU4MGQwXHU4MGQxXHU4MGQyXHU4MGQzXHU4MGQ0XHU4MGQ1XHU4MGQ4XHU4MGRmXHU4MGUw''@;'; put 'put ''XHU4MGUyXHU4MGUzXHU4MGU2XHU4MGVlXHU4MGY1XHU4MGY3XHU4MGY5XHU4MGZiXHU4MGZlXHU4MGZmXHU4MTAwXHU4MTAxXHU4MTAzXHU4MTA0XHU4MTA1XHU4MTA3XHU4MTA4XHU4MTBiXHVmZmZkXHU4MTBjXHU4MTE1XHU4MTE3XHU4MTE5XHU4MTFiXHU4MTFjXHU4MTFkXHU4MTFmXHU4''@;'; put 'put ''MTIwXHU4MTIxXHU4MTIyXHU4MTIzXHU4MTI0XHU4MTI1XHU4MTI2XHU4MTI3XHU4MTI4XHU4MTI5XHU4MTJhXHU4MTJiXHU4MTJkXHU4MTJlXHU4MTMwXHU4MTMzXHU4MTM0XHU4MTM1XHU4MTM3XHU4MTM5XHU4MTNhXHU4MTNiXHU4MTNjXHU4MTNkXHU4MTNmXHU4YzI5XHU4MjkyXHU4MzJi''@;'; put 'put ''XHU3NmYyXHU2YzEzXHU1ZmQ5XHU4M2JkXHU3MzJiXHU4MzA1XHU5NTFhXHU2YmRiXHU3N2RiXHU5NGM2XHU1MzZmXHU4MzAyXHU1MTkyXHU1ZTNkXHU4YzhjXHU4ZDM4XHU0ZTQ4XHU3M2FiXHU2NzlhXHU2ODg1XHU5MTc2XHU5NzA5XHU3MTY0XHU2Y2ExXHU3NzA5XHU1YTkyXHU5NTQxXHU2''@;'; put 'put ''YmNmXHU3ZjhlXHU2NjI3XHU1YmQwXHU1OWI5XHU1YTlhXHU5NWU4XHU5NWY3XHU0ZWVjXHU4NDBjXHU4NDk5XHU2YWFjXHU3NmRmXHU5NTMwXHU3MzFiXHU2OGE2XHU1YjVmXHU3NzJmXHU5MTlhXHU5NzYxXHU3Y2RjXHU4ZmY3XHU4YzFjXHU1ZjI1XHU3YzczXHU3OWQ4XHU4OWM1XHU2Y2Nj''@;'; put 'put ''XHU4NzFjXHU1YmM2XHU1ZTQyXHU2OGM5XHU3NzIwXHU3ZWY1XHU1MTk1XHU1MTRkXHU1MmM5XHU1YTI5XHU3ZjA1XHU5NzYyXHU4MmQ3XHU2M2NmXHU3Nzg0XHU4NWQwXHU3OWQyXHU2ZTNhXHU1ZTk5XHU1OTk5XHU4NTExXHU3MDZkXHU2YzExXHU2MmJmXHU3NmJmXHU2NTRmXHU2MGFmXHU5''@;'; put 'put ''NWZkXHU2NjBlXHU4NzlmXHU5ZTIzXHU5NGVkXHU1NDBkXHU1NDdkXHU4YzJjXHU2NDc4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5NV1bRV1dPTQ5OTIwK0UsTFs0OTkyMCtFXT1CWzE5''@;'; put 'put ''NV1bRV0pO2ZvcihCWzE5Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE0MFx1ODE0MVx1ODE0Mlx1ODE0M1x1ODE0NFx1ODE0NVx1ODE0N1x1ODE0OVx1ODE0ZFx1ODE0ZVx1ODE0Zlx1ODE1Mlx1ODE1Nlx1ODE1N1x1ODE1OFx1''@;'; put 'put ''ODE1Ylx1ODE1Y1x1ODE1ZFx1ODE1ZVx1ODE1Zlx1ODE2MVx1ODE2Mlx1ODE2M1x1ODE2NFx1ODE2Nlx1ODE2OFx1ODE2YVx1ODE2Ylx1ODE2Y1x1ODE2Zlx1ODE3Mlx1ODE3M1x1ODE3NVx1ODE3Nlx1ODE3N1x1ODE3OFx1ODE4MVx1ODE4M1x1ODE4NFx1ODE4NVx1ODE4Nlx1ODE4N1x1ODE4''@;'; put 'put ''OVx1ODE4Ylx1ODE4Y1x1ODE4ZFx1ODE4ZVx1ODE5MFx1ODE5Mlx1ODE5M1x1ODE5NFx1ODE5NVx1ODE5Nlx1ODE5N1x1ODE5OVx1ODE5YVx1ODE5ZVx1ODE5Zlx1ODFhMFx1ODFhMVx1ODFhMlx1ODFhNFx1ODFhNVx1ZmZmZFx1ODFhN1x1ODFhOVx1ODFhYlx1ODFhY1x1ODFhZFx1ODFhZVx1''@;'; put 'put ''ODFhZlx1ODFiMFx1ODFiMVx1ODFiMlx1ODFiNFx1ODFiNVx1ODFiNlx1ODFiN1x1ODFiOFx1ODFiOVx1ODFiY1x1ODFiZFx1ODFiZVx1ODFiZlx1ODFjNFx1ODFjNVx1ODFjN1x1ODFjOFx1ODFjOVx1ODFjYlx1ODFjZFx1ODFjZVx1ODFjZlx1ODFkMFx1ODFkMVx1ODFkMlx1ODFkM1x1NjQ3''@;'; put 'put ''OVx1ODYxMVx1NmEyMVx1ODE5Y1x1NzhlOFx1NjQ2OVx1OWI1NFx1NjJiOVx1NjcyYlx1ODNhYlx1NThhOFx1OWVkOFx1NmNhYlx1NmYyMFx1NWJkZVx1OTY0Y1x1OGMwYlx1NzI1Zlx1NjdkMFx1NjJjN1x1NzI2MVx1NGVhOVx1NTljNlx1NmJjZFx1NTg5M1x1NjZhZVx1NWU1NVx1NTJkZlx1''@;'; put 'put ''NjE1NVx1NjcyOFx1NzZlZVx1Nzc2Nlx1NzI2N1x1N2E0Nlx1NjJmZlx1NTRlYVx1NTQ1MFx1OTRhMFx1OTBhM1x1NWExY1x1N2ViM1x1NmMxNlx1NGU0M1x1NTk3Nlx1ODAxMFx1NTk0OFx1NTM1N1x1NzUzN1x1OTZiZVx1NTZjYVx1NjMyMFx1ODExMVx1NjA3Y1x1OTVmOVx1NmRkNlx1NTQ2''@;'; put 'put ''Mlx1OTk4MVx1NTE4NVx1NWFlOVx1ODBmZFx1NTlhZVx1OTcxM1x1NTAyYVx1NmNlNVx1NWMzY1x1NjJkZlx1NGY2MFx1NTMzZlx1ODE3Ylx1OTAwNlx1NmViYVx1ODUyYlx1NjJjOFx1NWU3NFx1NzhiZVx1NjRiNVx1NjM3Ylx1NWZmNVx1NWExOFx1OTE3Zlx1OWUxZlx1NWMzZlx1NjM0Zlx1''@;'; put 'put ''ODA0Mlx1NWI3ZFx1NTU2ZVx1OTU0YVx1OTU0ZFx1NmQ4NVx1NjBhOFx1NjdlMFx1NzJkZVx1NTFkZFx1NWI4MVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTZdW0VdXT01MDE3NitFLExb''@;'; put 'put ''NTAxNzYrRV09QlsxOTZdW0VdKTtmb3IoQlsxOTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgxZDRcdTgxZDVcdTgxZDZcdTgxZDdcdTgxZDhcdTgxZDlcdTgxZGFcdTgxZGJcdTgxZGNcdTgxZGRcdTgxZGVcdTgxZGZcdTgxZTBc''@;'; put 'put ''dTgxZTFcdTgxZTJcdTgxZTRcdTgxZTVcdTgxZTZcdTgxZThcdTgxZTlcdTgxZWJcdTgxZWVcdTgxZWZcdTgxZjBcdTgxZjFcdTgxZjJcdTgxZjVcdTgxZjZcdTgxZjdcdTgxZjhcdTgxZjlcdTgxZmFcdTgxZmRcdTgxZmZcdTgyMDNcdTgyMDdcdTgyMDhcdTgyMDlcdTgyMGFcdTgyMGJcdTgy''@;'; put 'put ''MGVcdTgyMGZcdTgyMTFcdTgyMTNcdTgyMTVcdTgyMTZcdTgyMTdcdTgyMThcdTgyMTlcdTgyMWFcdTgyMWRcdTgyMjBcdTgyMjRcdTgyMjVcdTgyMjZcdTgyMjdcdTgyMjlcdTgyMmVcdTgyMzJcdTgyM2FcdTgyM2NcdTgyM2RcdTgyM2ZcdWZmZmRcdTgyNDBcdTgyNDFcdTgyNDJcdTgyNDNc''@;'; put 'put ''dTgyNDVcdTgyNDZcdTgyNDhcdTgyNGFcdTgyNGNcdTgyNGRcdTgyNGVcdTgyNTBcdTgyNTFcdTgyNTJcdTgyNTNcdTgyNTRcdTgyNTVcdTgyNTZcdTgyNTdcdTgyNTlcdTgyNWJcdTgyNWNcdTgyNWRcdTgyNWVcdTgyNjBcdTgyNjFcdTgyNjJcdTgyNjNcdTgyNjRcdTgyNjVcdTgyNjZcdTgy''@;'; put 'put ''NjdcdTgyNjlcdTYyZTdcdTZjZGVcdTcyNWJcdTYyNmRcdTk0YWVcdTdlYmRcdTgxMTNcdTZkNTNcdTUxOWNcdTVmMDRcdTU5NzRcdTUyYWFcdTYwMTJcdTU5NzNcdTY2OTZcdTg2NTBcdTc1OWZcdTYzMmFcdTYxZTZcdTdjZWZcdThiZmFcdTU0ZTZcdTZiMjdcdTllMjVcdTZiYjRcdTg1ZDVc''@;'; put 'put ''dTU0NTVcdTUwNzZcdTZjYTRcdTU1NmFcdThkYjRcdTcyMmNcdTVlMTVcdTYwMTVcdTc0MzZcdTYyY2RcdTYzOTJcdTcyNGNcdTVmOThcdTZlNDNcdTZkM2VcdTY1MDBcdTZmNThcdTc2ZDhcdTc4ZDBcdTc2ZmNcdTc1NTRcdTUyMjRcdTUzZGJcdTRlNTNcdTVlOWVcdTY1YzFcdTgwMmFcdTgw''@;'; put 'put ''ZDZcdTYyOWJcdTU0ODZcdTUyMjhcdTcwYWVcdTg4OGRcdThkZDFcdTZjZTFcdTU0NzhcdTgwZGFcdTU3ZjlcdTg4ZjRcdThkNTRcdTk2NmFcdTkxNGRcdTRmNjlcdTZjOWJcdTU1YjdcdTc2YzZcdTc4MzBcdTYyYThcdTcwZjlcdTZmOGVcdTVmNmRcdTg0ZWNcdTY4ZGFcdTc4N2NcdTdiZjdc''@;'; put 'put ''dTgxYThcdTY3MGJcdTllNGZcdTYzNjdcdTc4YjBcdTU3NmZcdTc4MTJcdTk3MzlcdTYyNzlcdTYyYWJcdTUyODhcdTc0MzVcdTZiZDdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk3XVtF''@;'; put 'put ''XV09NTA0MzIrRSxMWzUwNDMyK0VdPUJbMTk3XVtFXSk7Zm9yKEJbMTk4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MjZhXHU4MjZiXHU4MjZjXHU4MjZkXHU4MjcxXHU4Mjc1XHU4Mjc2XHU4Mjc3XHU4Mjc4XHU4MjdiXHU4Mjdj''@;'; put 'put ''XHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg1XHU4Mjg2XHU4Mjg3XHU4Mjg5XHU4MjhjXHU4MjkwXHU4MjkzXHU4Mjk0XHU4Mjk1XHU4Mjk2XHU4MjlhXHU4MjliXHU4MjllXHU4MmEwXHU4MmEyXHU4MmEzXHU4MmE3XHU4MmIyXHU4MmI1XHU4MmI2XHU4MmJhXHU4MmJiXHU4MmJjXHU4MmJmXHU4''@;'; put 'put ''MmMwXHU4MmMyXHU4MmMzXHU4MmM1XHU4MmM2XHU4MmM5XHU4MmQwXHU4MmQ2XHU4MmQ5XHU4MmRhXHU4MmRkXHU4MmUyXHU4MmU3XHU4MmU4XHU4MmU5XHU4MmVhXHU4MmVjXHU4MmVkXHU4MmVlXHU4MmYwXHU4MmYyXHU4MmYzXHU4MmY1XHU4MmY2XHU4MmY4XHVmZmZkXHU4MmZhXHU4MmZj''@;'; put 'put ''XHU4MmZkXHU4MmZlXHU4MmZmXHU4MzAwXHU4MzBhXHU4MzBiXHU4MzBkXHU4MzEwXHU4MzEyXHU4MzEzXHU4MzE2XHU4MzE4XHU4MzE5XHU4MzFkXHU4MzFlXHU4MzFmXHU4MzIwXHU4MzIxXHU4MzIyXHU4MzIzXHU4MzI0XHU4MzI1XHU4MzI2XHU4MzI5XHU4MzJhXHU4MzJlXHU4MzMwXHU4''@;'; put 'put ''MzMyXHU4MzM3XHU4MzNiXHU4MzNkXHU1NTY0XHU4MTNlXHU3NWIyXHU3NmFlXHU1MzM5XHU3NWRlXHU1MGZiXHU1YzQxXHU4YjZjXHU3YmM3XHU1MDRmXHU3MjQ3XHU5YTk3XHU5OGQ4XHU2ZjAyXHU3NGUyXHU3OTY4XHU2NDg3XHU3N2E1XHU2MmZjXHU5ODkxXHU4ZDJiXHU1NGMxXHU4MDU4''@;'; put 'put ''XHU0ZTUyXHU1NzZhXHU4MmY5XHU4NDBkXHU1ZTczXHU1MWVkXHU3NGY2XHU4YmM0XHU1YzRmXHU1NzYxXHU2Y2ZjXHU5ODg3XHU1YTQ2XHU3ODM0XHU5YjQ0XHU4ZmViXHU3Yzk1XHU1MjU2XHU2MjUxXHU5NGZhXHU0ZWM2XHU4Mzg2XHU4NDYxXHU4M2U5XHU4NGIyXHU1N2Q0XHU2NzM0XHU1''@;'; put 'put ''NzAzXHU2NjZlXHU2ZDY2XHU4YzMxXHU2NmRkXHU3MDExXHU2NzFmXHU2YjNhXHU2ODE2XHU2MjFhXHU1OWJiXHU0ZTAzXHU1MWM0XHU2ZjA2XHU2N2QyXHU2YzhmXHU1MTc2XHU2OGNiXHU1OTQ3XHU2YjY3XHU3NTY2XHU1ZDBlXHU4MTEwXHU5ZjUwXHU2NWQ3XHU3OTQ4XHU3OTQxXHU5YTkx''@;'; put 'put ''XHU4ZDc3XHU1YzgyXHU0ZTVlXHU0ZjAxXHU1NDJmXHU1OTUxXHU3ODBjXHU1NjY4XHU2YzE0XHU4ZmM0XHU1ZjAzXHU2YzdkXHU2Y2UzXHU4YmFiXHU2MzkwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOThdW0VdLmNoYXJDb2RlQXQoMCkm''@;'; put 'put ''JihtZVtCWzE5OF1bRV1dPTUwNjg4K0UsTFs1MDY4OCtFXT1CWzE5OF1bRV0pO2ZvcihCWzE5OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODMzZVx1ODMzZlx1ODM0MVx1ODM0Mlx1ODM0NFx1ODM0NVx1ODM0OFx1ODM0YVx1ODM0''@;'; put 'put ''Ylx1ODM0Y1x1ODM0ZFx1ODM0ZVx1ODM1M1x1ODM1NVx1ODM1Nlx1ODM1N1x1ODM1OFx1ODM1OVx1ODM1ZFx1ODM2Mlx1ODM3MFx1ODM3MVx1ODM3Mlx1ODM3M1x1ODM3NFx1ODM3NVx1ODM3Nlx1ODM3OVx1ODM3YVx1ODM3ZVx1ODM3Zlx1ODM4MFx1ODM4MVx1ODM4Mlx1ODM4M1x1ODM4NFx1''@;'; put 'put ''ODM4N1x1ODM4OFx1ODM4YVx1ODM4Ylx1ODM4Y1x1ODM4ZFx1ODM4Zlx1ODM5MFx1ODM5MVx1ODM5NFx1ODM5NVx1ODM5Nlx1ODM5N1x1ODM5OVx1ODM5YVx1ODM5ZFx1ODM5Zlx1ODNhMVx1ODNhMlx1ODNhM1x1ODNhNFx1ODNhNVx1ODNhNlx1ODNhN1x1ODNhY1x1ODNhZFx1ODNhZVx1ZmZm''@;'; put 'put ''ZFx1ODNhZlx1ODNiNVx1ODNiYlx1ODNiZVx1ODNiZlx1ODNjMlx1ODNjM1x1ODNjNFx1ODNjNlx1ODNjOFx1ODNjOVx1ODNjYlx1ODNjZFx1ODNjZVx1ODNkMFx1ODNkMVx1ODNkMlx1ODNkM1x1ODNkNVx1ODNkN1x1ODNkOVx1ODNkYVx1ODNkYlx1ODNkZVx1ODNlMlx1ODNlM1x1ODNlNFx1''@;'; put 'put ''ODNlNlx1ODNlN1x1ODNlOFx1ODNlYlx1ODNlY1x1ODNlZFx1NjA3MFx1NmQzZFx1NzI3NVx1NjI2Nlx1OTQ4ZVx1OTRjNVx1NTM0M1x1OGZjMVx1N2I3ZVx1NGVkZlx1OGMyNlx1NGU3ZVx1OWVkNFx1OTRiMVx1OTRiM1x1NTI0ZFx1NmY1Y1x1OTA2M1x1NmQ0NVx1OGMzNFx1NTgxMVx1NWQ0''@;'; put 'put ''Y1x1NmIyMFx1NmI0OVx1NjdhYVx1NTQ1Ylx1ODE1NFx1N2Y4Y1x1NTg5OVx1ODUzN1x1NWYzYVx1NjJhMlx1NmE0N1x1OTUzOVx1NjU3Mlx1NjA4NFx1Njg2NVx1NzdhN1x1NGU1NFx1NGZhOFx1NWRlN1x1OTc5OFx1NjRhY1x1N2ZkOFx1NWNlZFx1NGZjZlx1N2E4ZFx1NTIwN1x1ODMwNFx1''@;'; put 'put ''NGUxNFx1NjAyZlx1N2E4M1x1OTRhNlx1NGZiNVx1NGViMlx1NzllNlx1NzQzNFx1NTJlNFx1ODJiOVx1NjRkMlx1NzliZFx1NWJkZFx1NmM4MVx1OTc1Mlx1OGY3Ylx1NmMyMlx1NTAzZVx1NTM3Zlx1NmUwNVx1NjRjZVx1NjY3NFx1NmMzMFx1NjBjNVx1OTg3N1x1OGJmN1x1NWU4Nlx1NzQz''@;'; put 'put ''Y1x1N2E3N1x1NzljYlx1NGUxOFx1OTBiMVx1NzQwM1x1NmM0Mlx1NTZkYVx1OTE0Ylx1NmNjNVx1OGQ4Ylx1NTMzYVx1ODZjNlx1NjZmMlx1OGVhZlx1NWM0OFx1OWE3MVx1NmUyMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk5XVtFXS5j''@;'; put 'put ''aGFyQ29kZUF0KDApJiYobWVbQlsxOTldW0VdXT01MDk0NCtFLExbNTA5NDQrRV09QlsxOTldW0VdKTtmb3IoQlsyMDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgzZWVcdTgzZWZcdTgzZjNcdTgzZjRcdTgzZjVcdTgzZjZcdTgz''@;'; put 'put ''ZjdcdTgzZmFcdTgzZmJcdTgzZmNcdTgzZmVcdTgzZmZcdTg0MDBcdTg0MDJcdTg0MDVcdTg0MDdcdTg0MDhcdTg0MDlcdTg0MGFcdTg0MTBcdTg0MTJcdTg0MTNcdTg0MTRcdTg0MTVcdTg0MTZcdTg0MTdcdTg0MTlcdTg0MWFcdTg0MWJcdTg0MWVcdTg0MWZcdTg0MjBcdTg0MjFcdTg0MjJc''@;'; put 'put ''dTg0MjNcdTg0MjlcdTg0MmFcdTg0MmJcdTg0MmNcdTg0MmRcdTg0MmVcdTg0MmZcdTg0MzBcdTg0MzJcdTg0MzNcdTg0MzRcdTg0MzVcdTg0MzZcdTg0MzdcdTg0MzlcdTg0M2FcdTg0M2JcdTg0M2VcdTg0M2ZcdTg0NDBcdTg0NDFcdTg0NDJcdTg0NDNcdTg0NDRcdTg0NDVcdTg0NDdcdTg0''@;'; put 'put ''NDhcdTg0NDlcdWZmZmRcdTg0NGFcdTg0NGJcdTg0NGNcdTg0NGRcdTg0NGVcdTg0NGZcdTg0NTBcdTg0NTJcdTg0NTNcdTg0NTRcdTg0NTVcdTg0NTZcdTg0NThcdTg0NWRcdTg0NWVcdTg0NWZcdTg0NjBcdTg0NjJcdTg0NjRcdTg0NjVcdTg0NjZcdTg0NjdcdTg0NjhcdTg0NmFcdTg0NmVc''@;'; put 'put ''dTg0NmZcdTg0NzBcdTg0NzJcdTg0NzRcdTg0NzdcdTg0NzlcdTg0N2JcdTg0N2NcdTUzZDZcdTVhMzZcdTlmOGJcdThkYTNcdTUzYmJcdTU3MDhcdTk4YTdcdTY3NDNcdTkxOWJcdTZjYzlcdTUxNjhcdTc1Y2FcdTYyZjNcdTcyYWNcdTUyMzhcdTUyOWRcdTdmM2FcdTcwOTRcdTc2MzhcdTUz''@;'; put 'put ''NzRcdTllNGFcdTY5YjdcdTc4NmVcdTk2YzBcdTg4ZDlcdTdmYTRcdTcxMzZcdTcxYzNcdTUxODlcdTY3ZDNcdTc0ZTRcdTU4ZTRcdTY1MThcdTU2YjdcdThiYTlcdTk5NzZcdTYyNzBcdTdlZDVcdTYwZjlcdTcwZWRcdTU4ZWNcdTRlYzFcdTRlYmFcdTVmY2RcdTk3ZTdcdTRlZmJcdThiYTRc''@;'; put 'put ''dTUyMDNcdTU5OGFcdTdlYWJcdTYyNTRcdTRlY2RcdTY1ZTVcdTYyMGVcdTgzMzhcdTg0YzlcdTgzNjNcdTg3OGRcdTcxOTRcdTZlYjZcdTViYjlcdTdlZDJcdTUxOTdcdTYzYzlcdTY3ZDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTViN2FcdTU5ODJcdThmYjFcdTRlNzNcdTZjNWRcdTUx''@;'; put 'put ''NjVcdTg5MjVcdThmNmZcdTk2MmVcdTg1NGFcdTc0NWVcdTk1MTBcdTk1ZjBcdTZkYTZcdTgyZTVcdTVmMzFcdTY0OTJcdTZkMTJcdTg0MjhcdTgxNmVcdTljYzNcdTU4NWVcdThkNWJcdTRlMDlcdTUzYzFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDBdLmxlbmd0aDsrK0UpNjU1MzMh''@;'; put 'put ''PT1CWzIwMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAwXVtFXV09NTEyMDArRSxMWzUxMjAwK0VdPUJbMjAwXVtFXSk7Zm9yKEJbMjAxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NDdkXHU4NDdlXHU4NDdmXHU4NDgwXHU4''@;'; put 'put ''NDgxXHU4NDgzXHU4NDg0XHU4NDg1XHU4NDg2XHU4NDhhXHU4NDhkXHU4NDhmXHU4NDkwXHU4NDkxXHU4NDkyXHU4NDkzXHU4NDk0XHU4NDk1XHU4NDk2XHU4NDk4XHU4NDlhXHU4NDliXHU4NDlkXHU4NDllXHU4NDlmXHU4NGEwXHU4NGEyXHU4NGEzXHU4NGE0XHU4NGE1XHU4NGE2XHU4NGE3''@;'; put 'put ''XHU4NGE4XHU4NGE5XHU4NGFhXHU4NGFiXHU4NGFjXHU4NGFkXHU4NGFlXHU4NGIwXHU4NGIxXHU4NGIzXHU4NGI1XHU4NGI2XHU4NGI3XHU4NGJiXHU4NGJjXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGMzXHU4NGM1XHU4NGM2XHU4NGM3XHU4NGM4XHU4NGNiXHU4NGNjXHU4NGNlXHU4NGNmXHU4''@;'; put 'put ''NGQyXHU4NGQ0XHU4NGQ1XHU4NGQ3XHVmZmZkXHU4NGQ4XHU4NGQ5XHU4NGRhXHU4NGRiXHU4NGRjXHU4NGRlXHU4NGUxXHU4NGUyXHU4NGU0XHU4NGU3XHU4NGU4XHU4NGU5XHU4NGVhXHU4NGViXHU4NGVkXHU4NGVlXHU4NGVmXHU4NGYxXHU4NGYyXHU4NGYzXHU4NGY0XHU4NGY1XHU4NGY2''@;'; put 'put ''XHU4NGY3XHU4NGY4XHU4NGY5XHU4NGZhXHU4NGZiXHU4NGZkXHU4NGZlXHU4NTAwXHU4NTAxXHU4NTAyXHU0ZjFlXHU2NTYzXHU2ODUxXHU1NWQzXHU0ZTI3XHU2NDE0XHU5YTlhXHU2MjZiXHU1YWMyXHU3NDVmXHU4MjcyXHU2ZGE5XHU2OGVlXHU1MGU3XHU4MzhlXHU3ODAyXHU2NzQwXHU1''@;'; put 'put ''MjM5XHU2Yzk5XHU3ZWIxXHU1MGJiXHU1NTY1XHU3MTVlXHU3YjViXHU2NjUyXHU3M2NhXHU4MmViXHU2NzQ5XHU1YzcxXHU1MjIwXHU3MTdkXHU4ODZiXHU5NWVhXHU5NjU1XHU2NGM1XHU4ZDYxXHU4MWIzXHU1NTg0XHU2YzU1XHU2MjQ3XHU3ZjJlXHU1ODkyXHU0ZjI0XHU1NTQ2XHU4ZDRm''@;'; put 'put ''XHU2NjRjXHU0ZTBhXHU1YzFhXHU4OGYzXHU2OGEyXHU2MzRlXHU3YTBkXHU3MGU3XHU4MjhkXHU1MmZhXHU5N2Y2XHU1YzExXHU1NGU4XHU5MGI1XHU3ZWNkXHU1OTYyXHU4ZDRhXHU4NmM3XHU4MjBjXHU4MjBkXHU4ZDY2XHU2NDQ0XHU1YzA0XHU2MTUxXHU2ZDg5XHU3OTNlXHU4YmJlXHU3''@;'; put 'put ''ODM3XHU3NTMzXHU1NDdiXHU0ZjM4XHU4ZWFiXHU2ZGYxXHU1YTIwXHU3ZWM1XHU3OTVlXHU2Yzg4XHU1YmExXHU1YTc2XHU3NTFhXHU4MGJlXHU2MTRlXHU2ZTE3XHU1OGYwXHU3NTFmXHU3NTI1XHU3MjcyXHU1MzQ3XHU3ZWYzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAxXS5sZW5n''@;'; put 'put ''dGg7KytFKTY1NTMzIT09QlsyMDFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMV1bRV1dPTUxNDU2K0UsTFs1MTQ1NitFXT1CWzIwMV1bRV0pO2ZvcihCWzIwMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODUwM1x1ODUwNFx1''@;'; put 'put ''ODUwNVx1ODUwNlx1ODUwN1x1ODUwOFx1ODUwOVx1ODUwYVx1ODUwYlx1ODUwZFx1ODUwZVx1ODUwZlx1ODUxMFx1ODUxMlx1ODUxNFx1ODUxNVx1ODUxNlx1ODUxOFx1ODUxOVx1ODUxYlx1ODUxY1x1ODUxZFx1ODUxZVx1ODUyMFx1ODUyMlx1ODUyM1x1ODUyNFx1ODUyNVx1ODUyNlx1ODUy''@;'; put 'put ''N1x1ODUyOFx1ODUyOVx1ODUyYVx1ODUyZFx1ODUyZVx1ODUyZlx1ODUzMFx1ODUzMVx1ODUzMlx1ODUzM1x1ODUzNFx1ODUzNVx1ODUzNlx1ODUzZVx1ODUzZlx1ODU0MFx1ODU0MVx1ODU0Mlx1ODU0NFx1ODU0NVx1ODU0Nlx1ODU0N1x1ODU0Ylx1ODU0Y1x1ODU0ZFx1ODU0ZVx1ODU0Zlx1''@;'; put 'put ''ODU1MFx1ODU1MVx1ODU1Mlx1ODU1M1x1ODU1NFx1ODU1NVx1ZmZmZFx1ODU1N1x1ODU1OFx1ODU1YVx1ODU1Ylx1ODU1Y1x1ODU1ZFx1ODU1Zlx1ODU2MFx1ODU2MVx1ODU2Mlx1ODU2M1x1ODU2NVx1ODU2Nlx1ODU2N1x1ODU2OVx1ODU2YVx1ODU2Ylx1ODU2Y1x1ODU2ZFx1ODU2ZVx1ODU2''@;'; put 'put ''Zlx1ODU3MFx1ODU3MVx1ODU3M1x1ODU3NVx1ODU3Nlx1ODU3N1x1ODU3OFx1ODU3Y1x1ODU3ZFx1ODU3Zlx1ODU4MFx1ODU4MVx1NzcwMVx1NzZkYlx1NTI2OVx1ODBkY1x1NTcyM1x1NWUwOFx1NTkzMVx1NzJlZVx1NjViZFx1NmU3Zlx1OGJkN1x1NWMzOFx1ODY3MVx1NTM0MVx1NzdmM1x1''@;'; put 'put ''NjJmZVx1NjVmNlx1NGVjMFx1OThkZlx1ODY4MFx1NWI5ZVx1OGJjNlx1NTNmMlx1NzdlMlx1NGY3Zlx1NWM0ZVx1OWE3Nlx1NTljYlx1NWYwZlx1NzkzYVx1NThlYlx1NGUxNlx1NjdmZlx1NGU4Ylx1NjJlZFx1OGE5M1x1OTAxZFx1NTJiZlx1NjYyZlx1NTVkY1x1NTY2Y1x1OTAwMlx1NGVk''@;'; put 'put ''NVx1NGY4ZFx1OTFjYVx1OTk3MFx1NmMwZlx1NWUwMlx1NjA0M1x1NWJhNFx1ODljNlx1OGJkNVx1NjUzNlx1NjI0Ylx1OTk5Nlx1NWI4OFx1NWJmZlx1NjM4OFx1NTUyZVx1NTNkN1x1NzYyNlx1NTE3ZFx1ODUyY1x1NjdhMlx1NjhiM1x1NmI4YVx1NjI5Mlx1OGY5M1x1NTNkNFx1ODIxMlx1''@;'; put 'put ''NmRkMVx1NzU4Zlx1NGU2Nlx1OGQ0ZVx1NWI3MFx1NzE5Zlx1ODVhZlx1NjY5MVx1NjZkOVx1N2Y3Mlx1ODcwMFx1OWVjZFx1OWYyMFx1NWM1ZVx1NjcyZlx1OGZmMFx1NjgxMVx1Njc1Zlx1NjIwZFx1N2FkNlx1NTg4NVx1NWViNlx1NjU3MFx1NmYzMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtF''@;'; put 'put ''IT1CWzIwMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDJdW0VdXT01MTcxMitFLExbNTE3MTIrRV09QlsyMDJdW0VdKTtmb3IoQlsyMDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dTg1ODJcdTg1ODNcdTg1ODZcdTg1ODhcdTg1ODlcdTg1OGFcdTg1OGJcdTg1OGNcdTg1OGRcdTg1OGVcdTg1OTBcdTg1OTFcdTg1OTJcdTg1OTNcdTg1OTRcdTg1OTVcdTg1OTZcdTg1OTdcdTg1OThcdTg1OTlcdTg1OWFcdTg1OWRcdTg1OWVcdTg1OWZcdTg1YTBcdTg1YTFcdTg1YTJcdTg1''@;'; put 'put ''YTNcdTg1YTVcdTg1YTZcdTg1YTdcdTg1YTlcdTg1YWJcdTg1YWNcdTg1YWRcdTg1YjFcdTg1YjJcdTg1YjNcdTg1YjRcdTg1YjVcdTg1YjZcdTg1YjhcdTg1YmFcdTg1YmJcdTg1YmNcdTg1YmRcdTg1YmVcdTg1YmZcdTg1YzBcdTg1YzJcdTg1YzNcdTg1YzRcdTg1YzVcdTg1YzZcdTg1Yzdc''@;'; put 'put ''dTg1YzhcdTg1Y2FcdTg1Y2JcdTg1Y2NcdTg1Y2RcdTg1Y2VcdTg1ZDFcdTg1ZDJcdWZmZmRcdTg1ZDRcdTg1ZDZcdTg1ZDdcdTg1ZDhcdTg1ZDlcdTg1ZGFcdTg1ZGJcdTg1ZGRcdTg1ZGVcdTg1ZGZcdTg1ZTBcdTg1ZTFcdTg1ZTJcdTg1ZTNcdTg1ZTVcdTg1ZTZcdTg1ZTdcdTg1ZThcdTg1''@;'; put 'put ''ZWFcdTg1ZWJcdTg1ZWNcdTg1ZWRcdTg1ZWVcdTg1ZWZcdTg1ZjBcdTg1ZjFcdTg1ZjJcdTg1ZjNcdTg1ZjRcdTg1ZjVcdTg1ZjZcdTg1ZjdcdTg1ZjhcdTYwNTVcdTUyMzdcdTgwMGRcdTY0NTRcdTg4NzBcdTc1MjlcdTVlMDVcdTY4MTNcdTYyZjRcdTk3MWNcdTUzY2NcdTcyM2RcdThjMDFc''@;'; put 'put ''dTZjMzRcdTc3NjFcdTdhMGVcdTU0MmVcdTc3YWNcdTk4N2FcdTgyMWNcdThiZjRcdTc4NTVcdTY3MTRcdTcwYzFcdTY1YWZcdTY0OTVcdTU2MzZcdTYwMWRcdTc5YzFcdTUzZjhcdTRlMWRcdTZiN2JcdTgwODZcdTViZmFcdTU1ZTNcdTU2ZGJcdTRmM2FcdTRmM2NcdTk5NzJcdTVkZjNcdTY3''@;'; put 'put ''N2VcdTgwMzhcdTYwMDJcdTk4ODJcdTkwMDFcdTViOGJcdThiYmNcdThiZjVcdTY0MWNcdTgyNThcdTY0ZGVcdTU1ZmRcdTgyY2ZcdTkxNjVcdTRmZDdcdTdkMjBcdTkwMWZcdTdjOWZcdTUwZjNcdTU4NTFcdTZlYWZcdTViYmZcdThiYzlcdTgwODNcdTkxNzhcdTg0OWNcdTdiOTdcdTg2N2Rc''@;'; put 'put ''dTk2OGJcdTk2OGZcdTdlZTVcdTlhZDNcdTc4OGVcdTVjODFcdTdhNTdcdTkwNDJcdTk2YTdcdTc5NWZcdTViNTlcdTYzNWZcdTdiMGJcdTg0ZDFcdTY4YWRcdTU1MDZcdTdmMjlcdTc0MTBcdTdkMjJcdTk1MDFcdTYyNDBcdTU4NGNcdTRlZDZcdTViODNcdTU5NzlcdTU4NTRcdWZmZmQiLnNw''@;'; put 'put ''bGl0KCIiKSxFPTA7RSE9QlsyMDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAzXVtFXV09NTE5NjgrRSxMWzUxOTY4K0VdPUJbMjAzXVtFXSk7Zm9yKEJbMjA0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHU4NWY5XHU4NWZhXHU4NWZjXHU4NWZkXHU4NWZlXHU4NjAwXHU4NjAxXHU4NjAyXHU4NjAzXHU4NjA0XHU4NjA2XHU4NjA3XHU4NjA4XHU4NjA5XHU4NjBhXHU4NjBiXHU4NjBjXHU4NjBkXHU4NjBlXHU4NjBmXHU4NjEwXHU4NjEyXHU4NjEzXHU4NjE0XHU4NjE1XHU4''@;'; put 'put ''NjE3XHU4NjE4XHU4NjE5XHU4NjFhXHU4NjFiXHU4NjFjXHU4NjFkXHU4NjFlXHU4NjFmXHU4NjIwXHU4NjIxXHU4NjIyXHU4NjIzXHU4NjI0XHU4NjI1XHU4NjI2XHU4NjI4XHU4NjJhXHU4NjJiXHU4NjJjXHU4NjJkXHU4NjJlXHU4NjJmXHU4NjMwXHU4NjMxXHU4NjMyXHU4NjMzXHU4NjM0''@;'; put 'put ''XHU4NjM1XHU4NjM2XHU4NjM3XHU4NjM5XHU4NjNhXHU4NjNiXHU4NjNkXHU4NjNlXHU4NjNmXHU4NjQwXHVmZmZkXHU4NjQxXHU4NjQyXHU4NjQzXHU4NjQ0XHU4NjQ1XHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4NjQ5XHU4NjRhXHU4NjRiXHU4NjRjXHU4NjUyXHU4NjUzXHU4NjU1XHU4NjU2XHU4''@;'; put 'put ''NjU3XHU4NjU4XHU4NjU5XHU4NjViXHU4NjVjXHU4NjVkXHU4NjVmXHU4NjYwXHU4NjYxXHU4NjYzXHU4NjY0XHU4NjY1XHU4NjY2XHU4NjY3XHU4NjY4XHU4NjY5XHU4NjZhXHU3MzZkXHU2MzFlXHU4ZTRiXHU4ZTBmXHU4MGNlXHU4MmQ0XHU2MmFjXHU1M2YwXHU2Y2YwXHU5MTVlXHU1OTJh''@;'; put 'put ''XHU2MDAxXHU2YzcwXHU1NzRkXHU2NDRhXHU4ZDJhXHU3NjJiXHU2ZWU5XHU1NzViXHU2YTgwXHU3NWYwXHU2ZjZkXHU4YzJkXHU4YzA4XHU1NzY2XHU2YmVmXHU4ODkyXHU3OGIzXHU2M2EyXHU1M2Y5XHU3MGFkXHU2YzY0XHU1ODU4XHU2NDJhXHU1ODAyXHU2OGUwXHU4MTliXHU1NTEwXHU3''@;'; put 'put ''Y2Q2XHU1MDE4XHU4ZWJhXHU2ZGNjXHU4ZDlmXHU3MGViXHU2MzhmXHU2ZDliXHU2ZWQ0XHU3ZWU2XHU4NDA0XHU2ODQzXHU5MDAzXHU2ZGQ4XHU5Njc2XHU4YmE4XHU1OTU3XHU3Mjc5XHU4NWU0XHU4MTdlXHU3NWJjXHU4YThhXHU2OGFmXHU1MjU0XHU4ZTIyXHU5NTExXHU2M2QwXHU5ODk4''@;'; put 'put ''XHU4ZTQ0XHU1NTdjXHU0ZjUzXHU2NmZmXHU1NjhmXHU2MGQ1XHU2ZDk1XHU1MjQzXHU1YzQ5XHU1OTI5XHU2ZGZiXHU1ODZiXHU3NTMwXHU3NTFjXHU2MDZjXHU4MjE0XHU4MTQ2XHU2MzExXHU2NzYxXHU4ZmUyXHU3NzNhXHU4ZGYzXHU4ZDM0XHU5NGMxXHU1ZTE2XHU1Mzg1XHU1NDJjXHU3''@;'; put 'put ''MGMzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNF1bRV1dPTUyMjI0K0UsTFs1MjIyNCtFXT1CWzIwNF1bRV0pO2ZvcihCWzIwNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODY2ZFx1ODY2Zlx1ODY3MFx1ODY3Mlx1ODY3M1x1ODY3NFx1ODY3NVx1ODY3Nlx1ODY3N1x1ODY3OFx1ODY4M1x1ODY4NFx1ODY4NVx1ODY4Nlx1ODY4N1x1ODY4OFx1ODY4OVx1ODY4ZVx1ODY4Zlx1ODY5MFx1ODY5MVx1ODY5Mlx1ODY5NFx1''@;'; put 'put ''ODY5Nlx1ODY5N1x1ODY5OFx1ODY5OVx1ODY5YVx1ODY5Ylx1ODY5ZVx1ODY5Zlx1ODZhMFx1ODZhMVx1ODZhMlx1ODZhNVx1ODZhNlx1ODZhYlx1ODZhZFx1ODZhZVx1ODZiMlx1ODZiM1x1ODZiN1x1ODZiOFx1ODZiOVx1ODZiYlx1ODZiY1x1ODZiZFx1ODZiZVx1ODZiZlx1ODZjMVx1ODZj''@;'; put 'put ''Mlx1ODZjM1x1ODZjNVx1ODZjOFx1ODZjY1x1ODZjZFx1ODZkMlx1ODZkM1x1ODZkNVx1ODZkNlx1ODZkN1x1ODZkYVx1ODZkY1x1ZmZmZFx1ODZkZFx1ODZlMFx1ODZlMVx1ODZlMlx1ODZlM1x1ODZlNVx1ODZlNlx1ODZlN1x1ODZlOFx1ODZlYVx1ODZlYlx1ODZlY1x1ODZlZlx1ODZmNVx1''@;'; put 'put ''ODZmNlx1ODZmN1x1ODZmYVx1ODZmYlx1ODZmY1x1ODZmZFx1ODZmZlx1ODcwMVx1ODcwNFx1ODcwNVx1ODcwNlx1ODcwYlx1ODcwY1x1ODcwZVx1ODcwZlx1ODcxMFx1ODcxMVx1ODcxNFx1ODcxNlx1NmM0MFx1NWVmN1x1NTA1Y1x1NGVhZFx1NWVhZFx1NjMzYVx1ODI0N1x1OTAxYVx1Njg1''@;'; put 'put ''MFx1OTE2ZVx1NzdiM1x1NTQwY1x1OTRkY1x1NWY2NFx1N2FlNVx1Njg3Nlx1NjM0NVx1N2I1Mlx1N2VkZlx1NzVkYlx1NTA3N1x1NjI5NVx1NTkzNFx1OTAwZlx1NTFmOFx1NzljM1x1N2E4MVx1NTZmZVx1NWY5Mlx1OTAxNFx1NmQ4Mlx1NWM2MFx1NTcxZlx1NTQxMFx1NTE1NFx1NmU0ZFx1''@;'; put 'put ''NTZlMlx1NjNhOFx1OTg5M1x1ODE3Zlx1ODcxNVx1ODkyYVx1OTAwMFx1NTQxZVx1NWM2Zlx1ODFjMFx1NjJkNlx1NjI1OFx1ODEzMVx1OWUzNVx1OTY0MFx1OWE2ZVx1OWE3Y1x1NjkyZFx1NTlhNVx1NjJkM1x1NTUzZVx1NjMxNlx1NTRjN1x1ODZkOVx1NmQzY1x1NWEwM1x1NzRlNlx1ODg5''@;'; put 'put ''Y1x1NmI2YVx1NTkxNlx1OGM0Y1x1NWYyZlx1NmU3ZVx1NzNhOVx1OTg3ZFx1NGUzOFx1NzBmN1x1NWI4Y1x1Nzg5N1x1NjMzZFx1NjY1YVx1NzY5Nlx1NjBjYlx1NWI5Ylx1NWE0OVx1NGUwN1x1ODE1NVx1NmM2YVx1NzM4Ylx1NGVhMVx1Njc4OVx1N2Y1MVx1NWY4MFx1NjVmYVx1NjcxYlx1''@;'; put 'put ''NWZkOFx1NTk4NFx1NWEwMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDVdW0VdXT01MjQ4MCtFLExbNTI0ODArRV09QlsyMDVdW0VdKTtmb3IoQlsyMDZdPSJcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg3MTlcdTg3MWJcdTg3MWRcdTg3MWZcdTg3MjBcdTg3MjRcdTg3MjZcdTg3MjdcdTg3MjhcdTg3MmFcdTg3MmJcdTg3MmNcdTg3MmRcdTg3MmZcdTg3MzBcdTg3MzJcdTg3MzNcdTg3MzVcdTg3MzZcdTg3MzhcdTg3Mzlc''@;'; put 'put ''dTg3M2FcdTg3M2NcdTg3M2RcdTg3NDBcdTg3NDFcdTg3NDJcdTg3NDNcdTg3NDRcdTg3NDVcdTg3NDZcdTg3NGFcdTg3NGJcdTg3NGRcdTg3NGZcdTg3NTBcdTg3NTFcdTg3NTJcdTg3NTRcdTg3NTVcdTg3NTZcdTg3NThcdTg3NWFcdTg3NWJcdTg3NWNcdTg3NWRcdTg3NWVcdTg3NWZcdTg3''@;'; put 'put ''NjFcdTg3NjJcdTg3NjZcdTg3NjdcdTg3NjhcdTg3NjlcdTg3NmFcdTg3NmJcdTg3NmNcdTg3NmRcdTg3NmZcdTg3NzFcdTg3NzJcdTg3NzNcdTg3NzVcdWZmZmRcdTg3NzdcdTg3NzhcdTg3NzlcdTg3N2FcdTg3N2ZcdTg3ODBcdTg3ODFcdTg3ODRcdTg3ODZcdTg3ODdcdTg3ODlcdTg3OGFc''@;'; put 'put ''dTg3OGNcdTg3OGVcdTg3OGZcdTg3OTBcdTg3OTFcdTg3OTJcdTg3OTRcdTg3OTVcdTg3OTZcdTg3OThcdTg3OTlcdTg3OWFcdTg3OWJcdTg3OWNcdTg3OWRcdTg3OWVcdTg3YTBcdTg3YTFcdTg3YTJcdTg3YTNcdTg3YTRcdTVkY2RcdTVmYWVcdTUzNzFcdTk3ZTZcdThmZGRcdTY4NDVcdTU2''@;'; put 'put ''ZjRcdTU1MmZcdTYwZGZcdTRlM2FcdTZmNGRcdTdlZjRcdTgyYzdcdTg0MGVcdTU5ZDRcdTRmMWZcdTRmMmFcdTVjM2VcdTdlYWNcdTY3MmFcdTg1MWFcdTU0NzNcdTc1NGZcdTgwYzNcdTU1ODJcdTliNGZcdTRmNGRcdTZlMmRcdThjMTNcdTVjMDlcdTYxNzBcdTUzNmJcdTc2MWZcdTZlMjlc''@;'; put 'put ''dTg2OGFcdTY1ODdcdTk1ZmJcdTdlYjlcdTU0M2JcdTdhMzNcdTdkMGFcdTk1ZWVcdTU1ZTFcdTdmYzFcdTc0ZWVcdTYzMWRcdTg3MTdcdTZkYTFcdTdhOWRcdTYyMTFcdTY1YTFcdTUzNjdcdTYzZTFcdTZjODNcdTVkZWJcdTU0NWNcdTk0YThcdTRlNGNcdTZjNjFcdThiZWNcdTVjNGJcdTY1''@;'; put 'put ''ZTBcdTgyOWNcdTY4YTdcdTU0M2VcdTU0MzRcdTZiY2JcdTZiNjZcdTRlOTRcdTYzNDJcdTUzNDhcdTgyMWVcdTRmMGRcdTRmYWVcdTU3NWVcdTYyMGFcdTk2ZmVcdTY2NjRcdTcyNjlcdTUyZmZcdTUyYTFcdTYwOWZcdThiZWZcdTY2MTRcdTcxOTlcdTY3OTBcdTg5N2ZcdTc4NTJcdTc3ZmRc''@;'; put 'put ''dTY2NzBcdTU2M2JcdTU0MzhcdTk1MjFcdTcyN2FcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA2XVtFXV09NTI3MzYrRSxMWzUyNzM2K0VdPUJbMjA2XVtFXSk7Zm9yKEJbMjA3XT0iXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4N2E1XHU4N2E2XHU4N2E3XHU4N2E5XHU4N2FhXHU4N2FlXHU4N2IwXHU4N2IxXHU4N2IyXHU4N2I0XHU4N2I2XHU4N2I3XHU4N2I4XHU4N2I5XHU4N2JiXHU4N2JjXHU4N2JlXHU4N2JmXHU4N2Mx''@;'; put 'put ''XHU4N2MyXHU4N2MzXHU4N2M0XHU4N2M1XHU4N2M3XHU4N2M4XHU4N2M5XHU4N2NjXHU4N2NkXHU4N2NlXHU4N2NmXHU4N2QwXHU4N2Q0XHU4N2Q1XHU4N2Q2XHU4N2Q3XHU4N2Q4XHU4N2Q5XHU4N2RhXHU4N2RjXHU4N2RkXHU4N2RlXHU4N2RmXHU4N2UxXHU4N2UyXHU4N2UzXHU4N2U0XHU4''@;'; put 'put ''N2U2XHU4N2U3XHU4N2U4XHU4N2U5XHU4N2ViXHU4N2VjXHU4N2VkXHU4N2VmXHU4N2YwXHU4N2YxXHU4N2YyXHU4N2YzXHU4N2Y0XHU4N2Y1XHU4N2Y2XHU4N2Y3XHU4N2Y4XHVmZmZkXHU4N2ZhXHU4N2ZiXHU4N2ZjXHU4N2ZkXHU4N2ZmXHU4ODAwXHU4ODAxXHU4ODAyXHU4ODA0XHU4ODA1''@;'; put 'put ''XHU4ODA2XHU4ODA3XHU4ODA4XHU4ODA5XHU4ODBiXHU4ODBjXHU4ODBkXHU4ODBlXHU4ODBmXHU4ODEwXHU4ODExXHU4ODEyXHU4ODE0XHU4ODE3XHU4ODE4XHU4ODE5XHU4ODFhXHU4ODFjXHU4ODFkXHU4ODFlXHU4ODFmXHU4ODIwXHU4ODIzXHU3YTAwXHU2MDZmXHU1ZTBjXHU2MDg5XHU4''@;'; put 'put ''MTlkXHU1OTE1XHU2MGRjXHU3MTg0XHU3MGVmXHU2ZWFhXHU2YzUwXHU3MjgwXHU2YTg0XHU4OGFkXHU1ZTJkXHU0ZTYwXHU1YWIzXHU1NTljXHU5NGUzXHU2ZDE3XHU3Y2ZiXHU5Njk5XHU2MjBmXHU3ZWM2XHU3NzhlXHU4NjdlXHU1MzIzXHU5NzFlXHU4Zjk2XHU2Njg3XHU1Y2UxXHU0ZmEw''@;'; put 'put ''XHU3MmVkXHU0ZTBiXHU1M2E2XHU1OTBmXHU1NDEzXHU2MzgwXHU5NTI4XHU1MTQ4XHU0ZWQ5XHU5YzljXHU3ZWE0XHU1NGI4XHU4ZDI0XHU4ODU0XHU4MjM3XHU5NWYyXHU2ZDhlXHU1ZjI2XHU1YWNjXHU2NjNlXHU5NjY5XHU3M2IwXHU3MzJlXHU1M2JmXHU4MTdhXHU5OTg1XHU3ZmExXHU1''@;'; put 'put ''YmFhXHU5Njc3XHU5NjUwXHU3ZWJmXHU3NmY4XHU1M2EyXHU5NTc2XHU5OTk5XHU3YmIxXHU4OTQ0XHU2ZTU4XHU0ZTYxXHU3ZmQ0XHU3OTY1XHU4YmU2XHU2MGYzXHU1NGNkXHU0ZWFiXHU5ODc5XHU1ZGY3XHU2YTYxXHU1MGNmXHU1NDExXHU4YzYxXHU4NDI3XHU3ODVkXHU5NzA0XHU1MjRh''@;'; put 'put ''XHU1NGVlXHU1NmEzXHU5NTAwXHU2ZDg4XHU1YmI1XHU2ZGM2XHU2NjUzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwN11bRV1dPTUyOTkyK0UsTFs1Mjk5MitFXT1CWzIwN11bRV0pO2Zv''@;'; put 'put ''cihCWzIwOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODgyNFx1ODgyNVx1ODgyNlx1ODgyN1x1ODgyOFx1ODgyOVx1ODgyYVx1ODgyYlx1ODgyY1x1ODgyZFx1ODgyZVx1ODgyZlx1ODgzMFx1ODgzMVx1ODgzM1x1ODgzNFx1ODgz''@;'; put 'put ''NVx1ODgzNlx1ODgzN1x1ODgzOFx1ODgzYVx1ODgzYlx1ODgzZFx1ODgzZVx1ODgzZlx1ODg0MVx1ODg0Mlx1ODg0M1x1ODg0Nlx1ODg0N1x1ODg0OFx1ODg0OVx1ODg0YVx1ODg0Ylx1ODg0ZVx1ODg0Zlx1ODg1MFx1ODg1MVx1ODg1Mlx1ODg1M1x1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1YVx1''@;'; put 'put ''ODg1Ylx1ODg1Y1x1ODg1ZFx1ODg1ZVx1ODg1Zlx1ODg2MFx1ODg2Nlx1ODg2N1x1ODg2YVx1ODg2ZFx1ODg2Zlx1ODg3MVx1ODg3M1x1ODg3NFx1ODg3NVx1ODg3Nlx1ODg3OFx1ODg3OVx1ODg3YVx1ZmZmZFx1ODg3Ylx1ODg3Y1x1ODg4MFx1ODg4M1x1ODg4Nlx1ODg4N1x1ODg4OVx1ODg4''@;'; put 'put ''YVx1ODg4Y1x1ODg4ZVx1ODg4Zlx1ODg5MFx1ODg5MVx1ODg5M1x1ODg5NFx1ODg5NVx1ODg5N1x1ODg5OFx1ODg5OVx1ODg5YVx1ODg5Ylx1ODg5ZFx1ODg5ZVx1ODg5Zlx1ODhhMFx1ODhhMVx1ODhhM1x1ODhhNVx1ODhhNlx1ODhhN1x1ODhhOFx1ODhhOVx1ODhhYVx1NWMwZlx1NWI1ZFx1''@;'; put 'put ''NjgyMVx1ODA5Nlx1NTU3OFx1N2IxMVx1NjU0OFx1Njk1NFx1NGU5Ylx1NmI0N1x1ODc0ZVx1OTc4Ylx1NTM0Zlx1NjMxZlx1NjQzYVx1OTBhYVx1NjU5Y1x1ODBjMVx1OGMxMFx1NTE5OVx1NjhiMFx1NTM3OFx1ODdmOVx1NjFjOFx1NmNjNFx1NmNmYlx1OGMyMlx1NWM1MVx1ODVhYVx1ODJh''@;'; put 'put ''Zlx1OTUwY1x1NmIyM1x1OGY5Ylx1NjViMFx1NWZmYlx1NWZjM1x1NGZlMVx1ODg0NVx1NjYxZlx1ODE2NVx1NzMyOVx1NjBmYVx1NTE3NFx1NTIxMVx1NTc4Ylx1NWY2Mlx1OTBhMlx1ODg0Y1x1OTE5Mlx1NWU3OFx1Njc0Zlx1NjAyN1x1NTlkM1x1NTE0NFx1NTFmNlx1ODBmOFx1NTMwOFx1''@;'; put 'put ''NmM3OVx1OTZjNFx1NzE4YVx1NGYxMVx1NGZlZVx1N2Y5ZVx1NjczZFx1NTVjNVx1OTUwOFx1NzljMFx1ODg5Nlx1N2VlM1x1NTg5Zlx1NjIwY1x1OTcwMFx1ODY1YVx1NTYxOFx1OTg3Ylx1NWY5MFx1OGJiOFx1ODRjNFx1OTE1N1x1NTNkOVx1NjVlZFx1NWU4Zlx1NzU1Y1x1NjA2NFx1N2Q2''@;'; put 'put ''ZVx1NWE3Zlx1N2VlYVx1N2VlZFx1OGY2OVx1NTVhN1x1NWJhM1x1NjBhY1x1NjVjYlx1NzM4NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDhdW0VdXT01MzI0OCtFLExbNTMyNDgrRV09''@;'; put 'put ''QlsyMDhdW0VdKTtmb3IoQlsyMDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg4YWNcdTg4YWVcdTg4YWZcdTg4YjBcdTg4YjJcdTg4YjNcdTg4YjRcdTg4YjVcdTg4YjZcdTg4YjhcdTg4YjlcdTg4YmFcdTg4YmJcdTg4YmRcdTg4''@;'; put 'put ''YmVcdTg4YmZcdTg4YzBcdTg4YzNcdTg4YzRcdTg4YzdcdTg4YzhcdTg4Y2FcdTg4Y2JcdTg4Y2NcdTg4Y2RcdTg4Y2ZcdTg4ZDBcdTg4ZDFcdTg4ZDNcdTg4ZDZcdTg4ZDdcdTg4ZGFcdTg4ZGJcdTg4ZGNcdTg4ZGRcdTg4ZGVcdTg4ZTBcdTg4ZTFcdTg4ZTZcdTg4ZTdcdTg4ZTlcdTg4ZWFc''@;'; put 'put ''dTg4ZWJcdTg4ZWNcdTg4ZWRcdTg4ZWVcdTg4ZWZcdTg4ZjJcdTg4ZjVcdTg4ZjZcdTg4ZjdcdTg4ZmFcdTg4ZmJcdTg4ZmRcdTg4ZmZcdTg5MDBcdTg5MDFcdTg5MDNcdTg5MDRcdTg5MDVcdTg5MDZcdTg5MDdcdTg5MDhcdWZmZmRcdTg5MDlcdTg5MGJcdTg5MGNcdTg5MGRcdTg5MGVcdTg5''@;'; put 'put ''MGZcdTg5MTFcdTg5MTRcdTg5MTVcdTg5MTZcdTg5MTdcdTg5MThcdTg5MWNcdTg5MWRcdTg5MWVcdTg5MWZcdTg5MjBcdTg5MjJcdTg5MjNcdTg5MjRcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MjlcdTg5MmNcdTg5MmRcdTg5MmVcdTg5MmZcdTg5MzFcdTg5MzJcdTg5MzNcdTg5MzVcdTg5Mzdc''@;'; put 'put ''dTkwMDlcdTc2NjNcdTc3MjlcdTdlZGFcdTk3NzRcdTg1OWJcdTViNjZcdTdhNzRcdTk2ZWFcdTg4NDBcdTUyY2JcdTcxOGZcdTVmYWFcdTY1ZWNcdThiZTJcdTViZmJcdTlhNmZcdTVkZTFcdTZiODlcdTZjNWJcdThiYWRcdThiYWZcdTkwMGFcdThmYzVcdTUzOGJcdTYyYmNcdTllMjZcdTll''@;'; put 'put ''MmRcdTU0NDBcdTRlMmJcdTgyYmRcdTcyNTlcdTg2OWNcdTVkMTZcdTg4NTlcdTZkYWZcdTk2YzVcdTU0ZDFcdTRlOWFcdThiYjZcdTcxMDlcdTU0YmRcdTk2MDlcdTcwZGZcdTZkZjlcdTc2ZDBcdTRlMjVcdTc4MTRcdTg3MTJcdTVjYTlcdTVlZjZcdThhMDBcdTk4OWNcdTk2MGVcdTcwOGVc''@;'; put 'put ''dTZjYmZcdTU5NDRcdTYzYTlcdTc3M2NcdTg4NGRcdTZmMTRcdTgyNzNcdTU4MzBcdTcxZDVcdTUzOGNcdTc4MWFcdTk2YzFcdTU1MDFcdTVmNjZcdTcxMzBcdTViYjRcdThjMWFcdTlhOGNcdTZiODNcdTU5MmVcdTllMmZcdTc5ZTdcdTY3NjhcdTYyNmNcdTRmNmZcdTc1YTFcdTdmOGFcdTZk''@;'; put 'put ''MGJcdTk2MzNcdTZjMjdcdTRlZjBcdTc1ZDJcdTUxN2JcdTY4MzdcdTZmM2VcdTkwODBcdTgxNzBcdTU5OTZcdTc0NzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA5XVtFXV09NTM1MDQr''@;'; put 'put ''RSxMWzUzNTA0K0VdPUJbMjA5XVtFXSk7Zm9yKEJbMjEwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OTM4XHU4OTM5XHU4OTNhXHU4OTNiXHU4OTNjXHU4OTNkXHU4OTNlXHU4OTNmXHU4OTQwXHU4OTQyXHU4OTQzXHU4OTQ1XHU4''@;'; put 'put ''OTQ2XHU4OTQ3XHU4OTQ4XHU4OTQ5XHU4OTRhXHU4OTRiXHU4OTRjXHU4OTRkXHU4OTRlXHU4OTRmXHU4OTUwXHU4OTUxXHU4OTUyXHU4OTUzXHU4OTU0XHU4OTU1XHU4OTU2XHU4OTU3XHU4OTU4XHU4OTU5XHU4OTVhXHU4OTViXHU4OTVjXHU4OTVkXHU4OTYwXHU4OTYxXHU4OTYyXHU4OTYz''@;'; put 'put ''XHU4OTY0XHU4OTY1XHU4OTY3XHU4OTY4XHU4OTY5XHU4OTZhXHU4OTZiXHU4OTZjXHU4OTZkXHU4OTZlXHU4OTZmXHU4OTcwXHU4OTcxXHU4OTcyXHU4OTczXHU4OTc0XHU4OTc1XHU4OTc2XHU4OTc3XHU4OTc4XHU4OTc5XHU4OTdhXHU4OTdjXHVmZmZkXHU4OTdkXHU4OTdlXHU4OTgwXHU4''@;'; put 'put ''OTgyXHU4OTg0XHU4OTg1XHU4OTg3XHU4OTg4XHU4OTg5XHU4OThhXHU4OThiXHU4OThjXHU4OThkXHU4OThlXHU4OThmXHU4OTkwXHU4OTkxXHU4OTkyXHU4OTkzXHU4OTk0XHU4OTk1XHU4OTk2XHU4OTk3XHU4OTk4XHU4OTk5XHU4OTlhXHU4OTliXHU4OTljXHU4OTlkXHU4OTllXHU4OTlm''@;'; put 'put ''XHU4OWEwXHU4OWExXHU2NDQ3XHU1YzI3XHU5MDY1XHU3YTkxXHU4YzIzXHU1OWRhXHU1NGFjXHU4MjAwXHU4MzZmXHU4OTgxXHU4MDAwXHU2OTMwXHU1NjRlXHU4MDM2XHU3MjM3XHU5MWNlXHU1MWI2XHU0ZTVmXHU5ODc1XHU2Mzk2XHU0ZTFhXHU1M2Y2XHU2NmYzXHU4MTRiXHU1OTFjXHU2''@;'; put 'put ''ZGIyXHU0ZTAwXHU1OGY5XHU1MzNiXHU2M2Q2XHU5NGYxXHU0ZjlkXHU0ZjBhXHU4ODYzXHU5ODkwXHU1OTM3XHU5MDU3XHU3OWZiXHU0ZWVhXHU4MGYwXHU3NTkxXHU2YzgyXHU1YjljXHU1OWU4XHU1ZjVkXHU2OTA1XHU4NjgxXHU1MDFhXHU1ZGYyXHU0ZTU5XHU3N2UzXHU0ZWU1XHU4Mjdh''@;'; put 'put ''XHU2MjkxXHU2NjEzXHU5MDkxXHU1Yzc5XHU0ZWJmXHU1Zjc5XHU4MWM2XHU5MDM4XHU4MDg0XHU3NWFiXHU0ZWE2XHU4OGQ0XHU2MTBmXHU2YmM1XHU1ZmM2XHU0ZTQ5XHU3NmNhXHU2ZWEyXHU4YmUzXHU4YmFlXHU4YzBhXHU4YmQxXHU1ZjAyXHU3ZmZjXHU3ZmNjXHU3ZWNlXHU4MzM1XHU4''@;'; put 'put ''MzZiXHU1NmUwXHU2YmI3XHU5N2YzXHU5NjM0XHU1OWZiXHU1NDFmXHU5NGY2XHU2ZGViXHU1YmM1XHU5OTZlXHU1YzM5XHU1ZjE1XHU5NjkwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIx''@;'; put 'put ''MF1bRV1dPTUzNzYwK0UsTFs1Mzc2MCtFXT1CWzIxMF1bRV0pO2ZvcihCWzIxMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODlhMlx1ODlhM1x1ODlhNFx1ODlhNVx1ODlhNlx1ODlhN1x1ODlhOFx1ODlhOVx1ODlhYVx1ODlhYlx1''@;'; put 'put ''ODlhY1x1ODlhZFx1ODlhZVx1ODlhZlx1ODliMFx1ODliMVx1ODliMlx1ODliM1x1ODliNFx1ODliNVx1ODliNlx1ODliN1x1ODliOFx1ODliOVx1ODliYVx1ODliYlx1ODliY1x1ODliZFx1ODliZVx1ODliZlx1ODljMFx1ODljM1x1ODljZFx1ODlkM1x1ODlkNFx1ODlkNVx1ODlkN1x1ODlk''@;'; put 'put ''OFx1ODlkOVx1ODlkYlx1ODlkZFx1ODlkZlx1ODllMFx1ODllMVx1ODllMlx1ODllNFx1ODllN1x1ODllOFx1ODllOVx1ODllYVx1ODllY1x1ODllZFx1ODllZVx1ODlmMFx1ODlmMVx1ODlmMlx1ODlmNFx1ODlmNVx1ODlmNlx1ODlmN1x1ODlmOFx1ODlmOVx1ODlmYVx1ZmZmZFx1ODlmYlx1''@;'; put 'put ''ODlmY1x1ODlmZFx1ODlmZVx1ODlmZlx1OGEwMVx1OGEwMlx1OGEwM1x1OGEwNFx1OGEwNVx1OGEwNlx1OGEwOFx1OGEwOVx1OGEwYVx1OGEwYlx1OGEwY1x1OGEwZFx1OGEwZVx1OGEwZlx1OGExMFx1OGExMVx1OGExMlx1OGExM1x1OGExNFx1OGExNVx1OGExNlx1OGExN1x1OGExOFx1OGEx''@;'; put 'put ''OVx1OGExYVx1OGExYlx1OGExY1x1OGExZFx1NTM3MFx1ODJmMVx1NmEzMVx1NWE3NFx1OWU3MFx1NWU5NFx1N2YyOFx1ODNiOVx1ODQyNFx1ODQyNVx1ODM2N1x1ODc0N1x1OGZjZVx1OGQ2Mlx1NzZjOFx1NWY3MVx1OTg5Nlx1Nzg2Y1x1NjYyMFx1NTRkZlx1NjJlNVx1NGY2M1x1ODFjM1x1''@;'; put 'put ''NzVjOFx1NWViOFx1OTZjZFx1OGUwYVx1ODZmOVx1NTQ4Zlx1NmNmM1x1NmQ4Y1x1NmMzOFx1NjA3Zlx1NTJjN1x1NzUyOFx1NWU3ZFx1NGYxOFx1NjBhMFx1NWZlN1x1NWMyNFx1NzUzMVx1OTBhZVx1OTRjMFx1NzJiOVx1NmNiOVx1NmUzOFx1OTE0OVx1NjcwOVx1NTNjYlx1NTNmM1x1NGY1''@;'; put 'put ''MVx1OTFjOVx1OGJmMVx1NTNjOFx1NWU3Y1x1OGZjMlx1NmRlNFx1NGU4ZVx1NzZjMlx1Njk4Nlx1ODY1ZVx1NjExYVx1ODIwNlx1NGY1OVx1NGZkZVx1OTAzZVx1OWM3Y1x1NjEwOVx1NmUxZFx1NmUxNFx1OTY4NVx1NGU4OFx1NWEzMVx1OTZlOFx1NGUwZVx1NWM3Zlx1NzliOVx1NWI4N1x1''@;'; put 'put ''OGJlZFx1N2ZiZFx1NzM4OVx1NTdkZlx1ODI4Ylx1OTBjMVx1NTQwMVx1OTA0N1x1NTViYlx1NWNlYVx1NWZhMVx1NjEwOFx1NmIzMlx1NzJmMVx1ODBiMlx1OGE4OVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjExXVtFXS5jaGFyQ29kZUF0''@;'; put 'put ''KDApJiYobWVbQlsyMTFdW0VdXT01NDAxNitFLExbNTQwMTYrRV09QlsyMTFdW0VdKTtmb3IoQlsyMTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThhMWVcdThhMWZcdThhMjBcdThhMjFcdThhMjJcdThhMjNcdThhMjRcdThhMjVc''@;'; put 'put ''dThhMjZcdThhMjdcdThhMjhcdThhMjlcdThhMmFcdThhMmJcdThhMmNcdThhMmRcdThhMmVcdThhMmZcdThhMzBcdThhMzFcdThhMzJcdThhMzNcdThhMzRcdThhMzVcdThhMzZcdThhMzdcdThhMzhcdThhMzlcdThhM2FcdThhM2JcdThhM2NcdThhM2RcdThhM2ZcdThhNDBcdThhNDFcdThh''@;'; put 'put ''NDJcdThhNDNcdThhNDRcdThhNDVcdThhNDZcdThhNDdcdThhNDlcdThhNGFcdThhNGJcdThhNGNcdThhNGRcdThhNGVcdThhNGZcdThhNTBcdThhNTFcdThhNTJcdThhNTNcdThhNTRcdThhNTVcdThhNTZcdThhNTdcdThhNThcdThhNTlcdThhNWFcdThhNWJcdThhNWNcdThhNWRcdThhNWVc''@;'; put 'put ''dWZmZmRcdThhNWZcdThhNjBcdThhNjFcdThhNjJcdThhNjNcdThhNjRcdThhNjVcdThhNjZcdThhNjdcdThhNjhcdThhNjlcdThhNmFcdThhNmJcdThhNmNcdThhNmRcdThhNmVcdThhNmZcdThhNzBcdThhNzFcdThhNzJcdThhNzNcdThhNzRcdThhNzVcdThhNzZcdThhNzdcdThhNzhcdThh''@;'; put 'put ''N2FcdThhN2JcdThhN2NcdThhN2RcdThhN2VcdThhN2ZcdThhODBcdTZkNzRcdTViZDNcdTg4ZDVcdTk4ODRcdThjNmJcdTlhNmRcdTllMzNcdTZlMGFcdTUxYTRcdTUxNDNcdTU3YTNcdTg4ODFcdTUzOWZcdTYzZjRcdThmOTVcdTU2ZWRcdTU0NThcdTU3MDZcdTczM2ZcdTZlOTBcdTdmMThc''@;'; put 'put ''dThmZGNcdTgyZDFcdTYxM2ZcdTYwMjhcdTk2NjJcdTY2ZjBcdTdlYTZcdThkOGFcdThkYzNcdTk0YTVcdTVjYjNcdTdjYTRcdTY3MDhcdTYwYTZcdTk2MDVcdTgwMThcdTRlOTFcdTkwZTdcdTUzMDBcdTk2NjhcdTUxNDFcdThmZDBcdTg1NzRcdTkxNWRcdTY2NTVcdTk3ZjVcdTViNTVcdTUz''@;'; put 'put ''MWRcdTc4MzhcdTY3NDJcdTY4M2RcdTU0YzlcdTcwN2VcdTViYjBcdThmN2RcdTUxOGRcdTU3MjhcdTU0YjFcdTY1MTJcdTY2ODJcdThkNWVcdThkNDNcdTgxMGZcdTg0NmNcdTkwNmRcdTdjZGZcdTUxZmZcdTg1ZmJcdTY3YTNcdTY1ZTlcdTZmYTFcdTg2YTRcdThlODFcdTU2NmFcdTkwMjBc''@;'; put 'put ''dTc2ODJcdTcwNzZcdTcxZTVcdThkMjNcdTYyZTlcdTUyMTlcdTZjZmRcdThkM2NcdTYwMGVcdTU4OWVcdTYxOGVcdTY2ZmVcdThkNjBcdTYyNGVcdTU1YjNcdTZlMjNcdTY3MmRcdThmNjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMl1b''@;'; put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjEyXVtFXV09NTQyNzIrRSxMWzU0MjcyK0VdPUJbMjEyXVtFXSk7Zm9yKEJbMjEzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YTgxXHU4YTgyXHU4YTgzXHU4YTg0XHU4YTg1XHU4YTg2''@;'; put 'put ''XHU4YTg3XHU4YTg4XHU4YThiXHU4YThjXHU4YThkXHU4YThlXHU4YThmXHU4YTkwXHU4YTkxXHU4YTkyXHU4YTk0XHU4YTk1XHU4YTk2XHU4YTk3XHU4YTk4XHU4YTk5XHU4YTlhXHU4YTliXHU4YTljXHU4YTlkXHU4YTllXHU4YTlmXHU4YWEwXHU4YWExXHU4YWEyXHU4YWEzXHU4YWE0XHU4''@;'; put 'put ''YWE1XHU4YWE2XHU4YWE3XHU4YWE4XHU4YWE5XHU4YWFhXHU4YWFiXHU4YWFjXHU4YWFkXHU4YWFlXHU4YWFmXHU4YWIwXHU4YWIxXHU4YWIyXHU4YWIzXHU4YWI0XHU4YWI1XHU4YWI2XHU4YWI3XHU4YWI4XHU4YWI5XHU4YWJhXHU4YWJiXHU4YWJjXHU4YWJkXHU4YWJlXHU4YWJmXHU4YWMw''@;'; put 'put ''XHU4YWMxXHU4YWMyXHVmZmZkXHU4YWMzXHU4YWM0XHU4YWM1XHU4YWM2XHU4YWM3XHU4YWM4XHU4YWM5XHU4YWNhXHU4YWNiXHU4YWNjXHU4YWNkXHU4YWNlXHU4YWNmXHU4YWQwXHU4YWQxXHU4YWQyXHU4YWQzXHU4YWQ0XHU4YWQ1XHU4YWQ2XHU4YWQ3XHU4YWQ4XHU4YWQ5XHU4YWRhXHU4''@;'; put 'put ''YWRiXHU4YWRjXHU4YWRkXHU4YWRlXHU4YWRmXHU4YWUwXHU4YWUxXHU4YWUyXHU4YWUzXHU5NGUxXHU5NWY4XHU3NzI4XHU2ODA1XHU2OWE4XHU1NDhiXHU0ZTRkXHU3MGI4XHU4YmM4XHU2NDU4XHU2NThiXHU1Yjg1XHU3YTg0XHU1MDNhXHU1YmU4XHU3N2JiXHU2YmUxXHU4YTc5XHU3Yzk4''@;'; put 'put ''XHU2Y2JlXHU3NmNmXHU2NWE5XHU4Zjk3XHU1ZDJkXHU1YzU1XHU4NjM4XHU2ODA4XHU1MzYwXHU2MjE4XHU3YWQ5XHU2ZTViXHU3ZWZkXHU2YTFmXHU3YWUwXHU1ZjcwXHU2ZjMzXHU1ZjIwXHU2MzhjXHU2ZGE4XHU2NzU2XHU0ZTA4XHU1ZTEwXHU4ZDI2XHU0ZWQ3XHU4MGMwXHU3NjM0XHU5''@;'; put 'put ''NjljXHU2MmRiXHU2NjJkXHU2MjdlXHU2Y2JjXHU4ZDc1XHU3MTY3XHU3ZjY5XHU1MTQ2XHU4MDg3XHU1M2VjXHU5MDZlXHU2Mjk4XHU1NGYyXHU4NmYwXHU4Zjk5XHU4MDA1XHU5NTE3XHU4NTE3XHU4ZmQ5XHU2ZDU5XHU3M2NkXHU2NTlmXHU3NzFmXHU3NTA0XHU3ODI3XHU4MWZiXHU4ZDFl''@;'; put 'put ''XHU5NDg4XHU0ZmE2XHU2Nzk1XHU3NWI5XHU4YmNhXHU5NzA3XHU2MzJmXHU5NTQ3XHU5NjM1XHU4NGI4XHU2MzIzXHU3NzQxXHU1ZjgxXHU3MmYwXHU0ZTg5XHU2MDE0XHU2NTc0XHU2MmVmXHU2YjYzXHU2NTNmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEzXS5sZW5ndGg7KytFKTY1''@;'; put 'put ''NTMzIT09QlsyMTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxM11bRV1dPTU0NTI4K0UsTFs1NDUyOCtFXT1CWzIxM11bRV0pO2ZvcihCWzIxNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlNFx1OGFlNVx1OGFlNlx1OGFl''@;'; put 'put ''N1x1OGFlOFx1OGFlOVx1OGFlYVx1OGFlYlx1OGFlY1x1OGFlZFx1OGFlZVx1OGFlZlx1OGFmMFx1OGFmMVx1OGFmMlx1OGFmM1x1OGFmNFx1OGFmNVx1OGFmNlx1OGFmN1x1OGFmOFx1OGFmOVx1OGFmYVx1OGFmYlx1OGFmY1x1OGFmZFx1OGFmZVx1OGFmZlx1OGIwMFx1OGIwMVx1OGIwMlx1''@;'; put 'put ''OGIwM1x1OGIwNFx1OGIwNVx1OGIwNlx1OGIwOFx1OGIwOVx1OGIwYVx1OGIwYlx1OGIwY1x1OGIwZFx1OGIwZVx1OGIwZlx1OGIxMFx1OGIxMVx1OGIxMlx1OGIxM1x1OGIxNFx1OGIxNVx1OGIxNlx1OGIxN1x1OGIxOFx1OGIxOVx1OGIxYVx1OGIxYlx1OGIxY1x1OGIxZFx1OGIxZVx1OGIx''@;'; put 'put ''Zlx1OGIyMFx1OGIyMVx1OGIyMlx1OGIyM1x1ZmZmZFx1OGIyNFx1OGIyNVx1OGIyN1x1OGIyOFx1OGIyOVx1OGIyYVx1OGIyYlx1OGIyY1x1OGIyZFx1OGIyZVx1OGIyZlx1OGIzMFx1OGIzMVx1OGIzMlx1OGIzM1x1OGIzNFx1OGIzNVx1OGIzNlx1OGIzN1x1OGIzOFx1OGIzOVx1OGIzYVx1''@;'; put 'put ''OGIzYlx1OGIzY1x1OGIzZFx1OGIzZVx1OGIzZlx1OGI0MFx1OGI0MVx1OGI0Mlx1OGI0M1x1OGI0NFx1OGI0NVx1NWUyN1x1NzVjN1x1OTBkMVx1OGJjMVx1ODI5ZFx1Njc5ZFx1NjUyZlx1NTQzMVx1ODcxOFx1NzdlNVx1ODBhMlx1ODEwMlx1NmM0MVx1NGU0Ylx1N2VjN1x1ODA0Y1x1NzZm''@;'; put 'put ''NFx1NjkwZFx1NmI5Nlx1NjI2N1x1NTAzY1x1NGY4NFx1NTc0MFx1NjMwN1x1NmI2Mlx1OGRiZVx1NTNlYVx1NjVlOFx1N2ViOFx1NWZkN1x1NjMxYVx1NjNiN1x1ODFmM1x1ODFmNFx1N2Y2ZVx1NWUxY1x1NWNkOVx1NTIzNlx1NjY3YVx1NzllOVx1N2ExYVx1OGQyOFx1NzA5OVx1NzVkNFx1''@;'; put 'put ''NmVkZVx1NmNiYlx1N2E5Mlx1NGUyZFx1NzZjNVx1NWZlMFx1OTQ5Zlx1ODg3N1x1N2VjOFx1NzljZFx1ODBiZlx1OTFjZFx1NGVmMlx1NGYxN1x1ODIxZlx1NTQ2OFx1NWRkZVx1NmQzMlx1OGJjY1x1N2NhNVx1OGY3NFx1ODA5OFx1NWUxYVx1NTQ5Mlx1NzZiMVx1NWI5OVx1NjYzY1x1OWFh''@;'; put 'put ''NFx1NzNlMFx1NjgyYVx1ODZkYlx1NjczMVx1NzMyYVx1OGJmOFx1OGJkYlx1OTAxMFx1N2FmOVx1NzBkYlx1NzE2ZVx1NjJjNFx1NzdhOVx1NTYzMVx1NGUzYlx1ODQ1N1x1NjdmMVx1NTJhOVx1ODZjMFx1OGQyZVx1OTRmOFx1N2I1MVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNF0u''@;'; put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTRdW0VdXT01NDc4NCtFLExbNTQ3ODQrRV09QlsyMTRdW0VdKTtmb3IoQlsyMTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiNDZcdThi''@;'; put 'put ''NDdcdThiNDhcdThiNDlcdThiNGFcdThiNGJcdThiNGNcdThiNGRcdThiNGVcdThiNGZcdThiNTBcdThiNTFcdThiNTJcdThiNTNcdThiNTRcdThiNTVcdThiNTZcdThiNTdcdThiNThcdThiNTlcdThiNWFcdThiNWJcdThiNWNcdThiNWRcdThiNWVcdThiNWZcdThiNjBcdThiNjFcdThiNjJc''@;'; put 'put ''dThiNjNcdThiNjRcdThiNjVcdThiNjdcdThiNjhcdThiNjlcdThiNmFcdThiNmJcdThiNmRcdThiNmVcdThiNmZcdThiNzBcdThiNzFcdThiNzJcdThiNzNcdThiNzRcdThiNzVcdThiNzZcdThiNzdcdThiNzhcdThiNzlcdThiN2FcdThiN2JcdThiN2NcdThiN2RcdThiN2VcdThiN2ZcdThi''@;'; put 'put ''ODBcdThiODFcdThiODJcdThiODNcdThiODRcdThiODVcdThiODZcdWZmZmRcdThiODdcdThiODhcdThiODlcdThiOGFcdThiOGJcdThiOGNcdThiOGRcdThiOGVcdThiOGZcdThiOTBcdThiOTFcdThiOTJcdThiOTNcdThiOTRcdThiOTVcdThiOTZcdThiOTdcdThiOThcdThiOTlcdThiOWFc''@;'; put 'put ''dThiOWJcdThiOWNcdThiOWRcdThiOWVcdThiOWZcdThiYWNcdThiYjFcdThiYmJcdThiYzdcdThiZDBcdThiZWFcdThjMDlcdThjMWVcdTRmNGZcdTZjZThcdTc5NWRcdTlhN2JcdTYyOTNcdTcyMmFcdTYyZmRcdTRlMTNcdTc4MTZcdThmNmNcdTY0YjBcdThkNWFcdTdiYzZcdTY4NjlcdTVl''@;'; put 'put ''ODRcdTg4YzVcdTU5ODZcdTY0OWVcdTU4ZWVcdTcyYjZcdTY5MGVcdTk1MjVcdThmZmRcdThkNThcdTU3NjBcdTdmMDBcdThjMDZcdTUxYzZcdTYzNDlcdTYyZDlcdTUzNTNcdTY4NGNcdTc0MjJcdTgzMDFcdTkxNGNcdTU1NDRcdTc3NDBcdTcwN2NcdTZkNGFcdTUxNzlcdTU0YThcdThkNDRc''@;'; put 'put ''dTU5ZmZcdTZlY2JcdTZkYzRcdTViNWNcdTdkMmJcdTRlZDRcdTdjN2RcdTZlZDNcdTViNTBcdTgxZWFcdTZlMGRcdTViNTdcdTliMDNcdTY4ZDVcdThlMmFcdTViOTdcdTdlZmNcdTYwM2JcdTdlYjVcdTkwYjlcdThkNzBcdTU5NGZcdTYzY2RcdTc5ZGZcdThkYjNcdTUzNTJcdTY1Y2ZcdTc5''@;'; put 'put ''NTZcdThiYzVcdTk2M2JcdTdlYzRcdTk0YmJcdTdlODJcdTU2MzRcdTkxODlcdTY3MDBcdTdmNmFcdTVjMGFcdTkwNzVcdTY2MjhcdTVkZTZcdTRmNTBcdTY3ZGVcdTUwNWFcdTRmNWNcdTU3NTBcdTVlYTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; put 'put ''PTA7RSE9QlsyMTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE1XVtFXV09NTUwNDArRSxMWzU1MDQwK0VdPUJbMjE1XVtFXSk7Zm9yKEJbMjE2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHU4YzM4XHU4YzM5XHU4YzNhXHU4YzNiXHU4YzNjXHU4YzNkXHU4YzNlXHU4YzNmXHU4YzQwXHU4YzQyXHU4YzQzXHU4YzQ0XHU4YzQ1XHU4YzQ4XHU4YzRhXHU4YzRiXHU4YzRkXHU4YzRlXHU4YzRmXHU4YzUwXHU4YzUxXHU4YzUyXHU4YzUzXHU4YzU0XHU4YzU2XHU4YzU3XHU4YzU4''@;'; put 'put ''XHU4YzU5XHU4YzViXHU4YzVjXHU4YzVkXHU4YzVlXHU4YzVmXHU4YzYwXHU4YzYzXHU4YzY0XHU4YzY1XHU4YzY2XHU4YzY3XHU4YzY4XHU4YzY5XHU4YzZjXHU4YzZkXHU4YzZlXHU4YzZmXHU4YzcwXHU4YzcxXHU4YzcyXHU4Yzc0XHU4Yzc1XHU4Yzc2XHU4Yzc3XHU4YzdiXHU4YzdjXHU4''@;'; put 'put ''YzdkXHU4YzdlXHU4YzdmXHU4YzgwXHU4YzgxXHU4YzgzXHU4Yzg0XHU4Yzg2XHU4Yzg3XHVmZmZkXHU4Yzg4XHU4YzhiXHU4YzhkXHU4YzhlXHU4YzhmXHU4YzkwXHU4YzkxXHU4YzkyXHU4YzkzXHU4Yzk1XHU4Yzk2XHU4Yzk3XHU4Yzk5XHU4YzlhXHU4YzliXHU4YzljXHU4YzlkXHU4Yzll''@;'; put 'put ''XHU4YzlmXHU4Y2EwXHU4Y2ExXHU4Y2EyXHU4Y2EzXHU4Y2E0XHU4Y2E1XHU4Y2E2XHU4Y2E3XHU4Y2E4XHU4Y2E5XHU4Y2FhXHU4Y2FiXHU4Y2FjXHU4Y2FkXHU0ZThkXHU0ZTBjXHU1MTQwXHU0ZTEwXHU1ZWZmXHU1MzQ1XHU0ZTE1XHU0ZTk4XHU0ZTFlXHU5YjMyXHU1YjZjXHU1NjY5XHU0''@;'; put 'put ''ZTI4XHU3OWJhXHU0ZTNmXHU1MzE1XHU0ZTQ3XHU1OTJkXHU3MjNiXHU1MzZlXHU2YzEwXHU1NmRmXHU4MGU0XHU5OTk3XHU2YmQzXHU3NzdlXHU5ZjE3XHU0ZTM2XHU0ZTlmXHU5ZjEwXHU0ZTVjXHU0ZTY5XHU0ZTkzXHU4Mjg4XHU1YjViXHU1NTZjXHU1NjBmXHU0ZWM0XHU1MzhkXHU1Mzlk''@;'; put 'put ''XHU1M2EzXHU1M2E1XHU1M2FlXHU5NzY1XHU4ZDVkXHU1MzFhXHU1M2Y1XHU1MzI2XHU1MzJlXHU1MzNlXHU4ZDVjXHU1MzY2XHU1MzYzXHU1MjAyXHU1MjA4XHU1MjBlXHU1MjJkXHU1MjMzXHU1MjNmXHU1MjQwXHU1MjRjXHU1MjVlXHU1MjYxXHU1MjVjXHU4NGFmXHU1MjdkXHU1MjgyXHU1''@;'; put 'put ''MjgxXHU1MjkwXHU1MjkzXHU1MTgyXHU3ZjU0XHU0ZWJiXHU0ZWMzXHU0ZWM5XHU0ZWMyXHU0ZWU4XHU0ZWUxXHU0ZWViXHU0ZWRlXHU0ZjFiXHU0ZWYzXHU0ZjIyXHU0ZjY0XHU0ZWY1XHU0ZjI1XHU0ZjI3XHU0ZjA5XHU0ZjJiXHU0ZjVlXHU0ZjY3XHU2NTM4XHU0ZjVhXHU0ZjVkXHVmZmZk''@;'; put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMjE2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNl1bRV1dPTU1Mjk2K0UsTFs1NTI5NitFXT1CWzIxNl1bRV0pO2ZvcihCWzIxN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1OGNhZVx1OGNhZlx1OGNiMFx1OGNiMVx1OGNiMlx1OGNiM1x1OGNiNFx1OGNiNVx1OGNiNlx1OGNiN1x1OGNiOFx1OGNiOVx1OGNiYVx1OGNiYlx1OGNiY1x1OGNiZFx1OGNiZVx1OGNiZlx1OGNjMFx1OGNjMVx1OGNjMlx1OGNjM1x1OGNjNFx1OGNjNVx1OGNj''@;'; put 'put ''Nlx1OGNjN1x1OGNjOFx1OGNjOVx1OGNjYVx1OGNjYlx1OGNjY1x1OGNjZFx1OGNjZVx1OGNjZlx1OGNkMFx1OGNkMVx1OGNkMlx1OGNkM1x1OGNkNFx1OGNkNVx1OGNkNlx1OGNkN1x1OGNkOFx1OGNkOVx1OGNkYVx1OGNkYlx1OGNkY1x1OGNkZFx1OGNkZVx1OGNkZlx1OGNlMFx1OGNlMVx1''@;'; put 'put ''OGNlMlx1OGNlM1x1OGNlNFx1OGNlNVx1OGNlNlx1OGNlN1x1OGNlOFx1OGNlOVx1OGNlYVx1OGNlYlx1OGNlY1x1ZmZmZFx1OGNlZFx1OGNlZVx1OGNlZlx1OGNmMFx1OGNmMVx1OGNmMlx1OGNmM1x1OGNmNFx1OGNmNVx1OGNmNlx1OGNmN1x1OGNmOFx1OGNmOVx1OGNmYVx1OGNmYlx1OGNm''@;'; put 'put ''Y1x1OGNmZFx1OGNmZVx1OGNmZlx1OGQwMFx1OGQwMVx1OGQwMlx1OGQwM1x1OGQwNFx1OGQwNVx1OGQwNlx1OGQwN1x1OGQwOFx1OGQwOVx1OGQwYVx1OGQwYlx1OGQwY1x1OGQwZFx1NGY1Zlx1NGY1N1x1NGYzMlx1NGYzZFx1NGY3Nlx1NGY3NFx1NGY5MVx1NGY4OVx1NGY4M1x1NGY4Zlx1''@;'; put 'put ''NGY3ZVx1NGY3Ylx1NGZhYVx1NGY3Y1x1NGZhY1x1NGY5NFx1NGZlNlx1NGZlOFx1NGZlYVx1NGZjNVx1NGZkYVx1NGZlM1x1NGZkY1x1NGZkMVx1NGZkZlx1NGZmOFx1NTAyOVx1NTA0Y1x1NGZmM1x1NTAyY1x1NTAwZlx1NTAyZVx1NTAyZFx1NGZmZVx1NTAxY1x1NTAwY1x1NTAyNVx1NTAy''@;'; put 'put ''OFx1NTA3ZVx1NTA0M1x1NTA1NVx1NTA0OFx1NTA0ZVx1NTA2Y1x1NTA3Ylx1NTBhNVx1NTBhN1x1NTBhOVx1NTBiYVx1NTBkNlx1NTEwNlx1NTBlZFx1NTBlY1x1NTBlNlx1NTBlZVx1NTEwN1x1NTEwYlx1NGVkZFx1NmMzZFx1NGY1OFx1NGY2NVx1NGZjZVx1OWZhMFx1NmM0Nlx1N2M3NFx1''@;'; put 'put ''NTE2ZVx1NWRmZFx1OWVjOVx1OTk5OFx1NTE4MVx1NTkxNFx1NTJmOVx1NTMwZFx1OGEwN1x1NTMxMFx1NTFlYlx1NTkxOVx1NTE1NVx1NGVhMFx1NTE1Nlx1NGViM1x1ODg2ZVx1ODhhNFx1NGViNVx1ODExNFx1ODhkMlx1Nzk4MFx1NWIzNFx1ODgwM1x1N2ZiOFx1NTFhYlx1NTFiMVx1NTFi''@;'; put 'put ''ZFx1NTFiY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTddW0VdXT01NTU1MitFLExbNTU1NTIrRV09QlsyMTddW0VdKTtmb3IoQlsyMThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThkMGVcdThkMGZcdThkMTBcdThkMTFcdThkMTJcdThkMTNcdThkMTRcdThkMTVcdThkMTZcdThkMTdcdThkMThcdThkMTlcdThkMWFcdThkMWJcdThkMWNcdThkMjBcdThkNTFcdThkNTJcdThkNTdcdThkNWZcdThkNjVcdThkNjhcdThk''@;'; put 'put ''NjlcdThkNmFcdThkNmNcdThkNmVcdThkNmZcdThkNzFcdThkNzJcdThkNzhcdThkNzlcdThkN2FcdThkN2JcdThkN2NcdThkN2RcdThkN2VcdThkN2ZcdThkODBcdThkODJcdThkODNcdThkODZcdThkODdcdThkODhcdThkODlcdThkOGNcdThkOGRcdThkOGVcdThkOGZcdThkOTBcdThkOTJc''@;'; put 'put ''dThkOTNcdThkOTVcdThkOTZcdThkOTdcdThkOThcdThkOTlcdThkOWFcdThkOWJcdThkOWNcdThkOWRcdThkOWVcdThkYTBcdThkYTFcdWZmZmRcdThkYTJcdThkYTRcdThkYTVcdThkYTZcdThkYTdcdThkYThcdThkYTlcdThkYWFcdThkYWJcdThkYWNcdThkYWRcdThkYWVcdThkYWZcdThk''@;'; put 'put ''YjBcdThkYjJcdThkYjZcdThkYjdcdThkYjlcdThkYmJcdThkYmRcdThkYzBcdThkYzFcdThkYzJcdThkYzVcdThkYzdcdThkYzhcdThkYzlcdThkY2FcdThkY2RcdThkZDBcdThkZDJcdThkZDNcdThkZDRcdTUxYzdcdTUxOTZcdTUxYTJcdTUxYTVcdThiYTBcdThiYTZcdThiYTdcdThiYWFc''@;'; put 'put ''dThiYjRcdThiYjVcdThiYjdcdThiYzJcdThiYzNcdThiY2JcdThiY2ZcdThiY2VcdThiZDJcdThiZDNcdThiZDRcdThiZDZcdThiZDhcdThiZDlcdThiZGNcdThiZGZcdThiZTBcdThiZTRcdThiZThcdThiZTlcdThiZWVcdThiZjBcdThiZjNcdThiZjZcdThiZjlcdThiZmNcdThiZmZcdThj''@;'; put 'put ''MDBcdThjMDJcdThjMDRcdThjMDdcdThjMGNcdThjMGZcdThjMTFcdThjMTJcdThjMTRcdThjMTVcdThjMTZcdThjMTlcdThjMWJcdThjMThcdThjMWRcdThjMWZcdThjMjBcdThjMjFcdThjMjVcdThjMjdcdThjMmFcdThjMmJcdThjMmVcdThjMmZcdThjMzJcdThjMzNcdThjMzVcdThjMzZc''@;'; put 'put ''dTUzNjlcdTUzN2FcdTk2MWRcdTk2MjJcdTk2MjFcdTk2MzFcdTk2MmFcdTk2M2RcdTk2M2NcdTk2NDJcdTk2NDlcdTk2NTRcdTk2NWZcdTk2NjdcdTk2NmNcdTk2NzJcdTk2NzRcdTk2ODhcdTk2OGRcdTk2OTdcdTk2YjBcdTkwOTdcdTkwOWJcdTkwOWRcdTkwOTlcdTkwYWNcdTkwYTFcdTkw''@;'; put 'put ''YjRcdTkwYjNcdTkwYjZcdTkwYmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE4XVtFXV09NTU4MDgrRSxMWzU1ODA4K0VdPUJbMjE4XVtFXSk7Zm9yKEJbMjE5XT0iXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZGQ1XHU4ZGQ4XHU4ZGQ5XHU4ZGRjXHU4ZGUwXHU4ZGUxXHU4ZGUyXHU4ZGU1XHU4ZGU2XHU4ZGU3XHU4ZGU5XHU4ZGVkXHU4ZGVlXHU4ZGYwXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGY2XHU4ZGZjXHU4ZGZlXHU4''@;'; put 'put ''ZGZmXHU4ZTAwXHU4ZTAxXHU4ZTAyXHU4ZTAzXHU4ZTA0XHU4ZTA2XHU4ZTA3XHU4ZTA4XHU4ZTBiXHU4ZTBkXHU4ZTBlXHU4ZTEwXHU4ZTExXHU4ZTEyXHU4ZTEzXHU4ZTE1XHU4ZTE2XHU4ZTE3XHU4ZTE4XHU4ZTE5XHU4ZTFhXHU4ZTFiXHU4ZTFjXHU4ZTIwXHU4ZTIxXHU4ZTI0XHU4ZTI1''@;'; put 'put ''XHU4ZTI2XHU4ZTI3XHU4ZTI4XHU4ZTJiXHU4ZTJkXHU4ZTMwXHU4ZTMyXHU4ZTMzXHU4ZTM0XHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTNiXHU4ZTNjXHU4ZTNlXHVmZmZkXHU4ZTNmXHU4ZTQzXHU4ZTQ1XHU4ZTQ2XHU4ZTRjXHU4ZTRkXHU4ZTRlXHU4ZTRmXHU4ZTUwXHU4ZTUzXHU4ZTU0XHU4''@;'; put 'put ''ZTU1XHU4ZTU2XHU4ZTU3XHU4ZTU4XHU4ZTVhXHU4ZTViXHU4ZTVjXHU4ZTVkXHU4ZTVlXHU4ZTVmXHU4ZTYwXHU4ZTYxXHU4ZTYyXHU4ZTYzXHU4ZTY0XHU4ZTY1XHU4ZTY3XHU4ZTY4XHU4ZTZhXHU4ZTZiXHU4ZTZlXHU4ZTcxXHU5MGI4XHU5MGIwXHU5MGNmXHU5MGM1XHU5MGJlXHU5MGQw''@;'; put 'put ''XHU5MGM0XHU5MGM3XHU5MGQzXHU5MGU2XHU5MGUyXHU5MGRjXHU5MGQ3XHU5MGRiXHU5MGViXHU5MGVmXHU5MGZlXHU5MTA0XHU5MTIyXHU5MTFlXHU5MTIzXHU5MTMxXHU5MTJmXHU5MTM5XHU5MTQzXHU5MTQ2XHU1MjBkXHU1OTQyXHU1MmEyXHU1MmFjXHU1MmFkXHU1MmJlXHU1NGZmXHU1''@;'; put 'put ''MmQwXHU1MmQ2XHU1MmYwXHU1M2RmXHU3MWVlXHU3N2NkXHU1ZWY0XHU1MWY1XHU1MWZjXHU5YjJmXHU1M2I2XHU1ZjAxXHU3NTVhXHU1ZGVmXHU1NzRjXHU1N2E5XHU1N2ExXHU1ODdlXHU1OGJjXHU1OGM1XHU1OGQxXHU1NzI5XHU1NzJjXHU1NzJhXHU1NzMzXHU1NzM5XHU1NzJlXHU1NzJm''@;'; put 'put ''XHU1NzVjXHU1NzNiXHU1NzQyXHU1NzY5XHU1Nzg1XHU1NzZiXHU1Nzg2XHU1NzdjXHU1NzdiXHU1NzY4XHU1NzZkXHU1Nzc2XHU1NzczXHU1N2FkXHU1N2E0XHU1NzhjXHU1N2IyXHU1N2NmXHU1N2E3XHU1N2I0XHU1NzkzXHU1N2EwXHU1N2Q1XHU1N2Q4XHU1N2RhXHU1N2Q5XHU1N2QyXHU1''@;'; put 'put ''N2I4XHU1N2Y0XHU1N2VmXHU1N2Y4XHU1N2U0XHU1N2RkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOV1bRV1dPTU2MDY0K0UsTFs1NjA2NCtFXT1CWzIxOV1bRV0pO2ZvcihCWzIyMF09''@;'; put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU3M1x1OGU3NVx1OGU3N1x1OGU3OFx1OGU3OVx1OGU3YVx1OGU3Ylx1OGU3ZFx1OGU3ZVx1OGU4MFx1OGU4Mlx1OGU4M1x1OGU4NFx1OGU4Nlx1OGU4OFx1OGU4OVx1OGU4YVx1OGU4Ylx1''@;'; put 'put ''OGU4Y1x1OGU4ZFx1OGU4ZVx1OGU5MVx1OGU5Mlx1OGU5M1x1OGU5NVx1OGU5Nlx1OGU5N1x1OGU5OFx1OGU5OVx1OGU5YVx1OGU5Ylx1OGU5ZFx1OGU5Zlx1OGVhMFx1OGVhMVx1OGVhMlx1OGVhM1x1OGVhNFx1OGVhNVx1OGVhNlx1OGVhN1x1OGVhOFx1OGVhOVx1OGVhYVx1OGVhZFx1OGVh''@;'; put 'put ''ZVx1OGViMFx1OGViMVx1OGViM1x1OGViNFx1OGViNVx1OGViNlx1OGViN1x1OGViOFx1OGViOVx1OGViYlx1OGViY1x1OGViZFx1OGViZVx1OGViZlx1OGVjMFx1OGVjMVx1OGVjMlx1ZmZmZFx1OGVjM1x1OGVjNFx1OGVjNVx1OGVjNlx1OGVjN1x1OGVjOFx1OGVjOVx1OGVjYVx1OGVjYlx1''@;'; put 'put ''OGVjY1x1OGVjZFx1OGVjZlx1OGVkMFx1OGVkMVx1OGVkMlx1OGVkM1x1OGVkNFx1OGVkNVx1OGVkNlx1OGVkN1x1OGVkOFx1OGVkOVx1OGVkYVx1OGVkYlx1OGVkY1x1OGVkZFx1OGVkZVx1OGVkZlx1OGVlMFx1OGVlMVx1OGVlMlx1OGVlM1x1OGVlNFx1NTgwYlx1NTgwZFx1NTdmZFx1NTdl''@;'; put 'put ''ZFx1NTgwMFx1NTgxZVx1NTgxOVx1NTg0NFx1NTgyMFx1NTg2NVx1NTg2Y1x1NTg4MVx1NTg4OVx1NTg5YVx1NTg4MFx1OTlhOFx1OWYxOVx1NjFmZlx1ODI3OVx1ODI3ZFx1ODI3Zlx1ODI4Zlx1ODI4YVx1ODJhOFx1ODI4NFx1ODI4ZVx1ODI5MVx1ODI5N1x1ODI5OVx1ODJhYlx1ODJiOFx1''@;'; put 'put ''ODJiZVx1ODJiMFx1ODJjOFx1ODJjYVx1ODJlM1x1ODI5OFx1ODJiN1x1ODJhZVx1ODJjYlx1ODJjY1x1ODJjMVx1ODJhOVx1ODJiNFx1ODJhMVx1ODJhYVx1ODI5Zlx1ODJjNFx1ODJjZVx1ODJhNFx1ODJlMVx1ODMwOVx1ODJmN1x1ODJlNFx1ODMwZlx1ODMwN1x1ODJkY1x1ODJmNFx1ODJk''@;'; put 'put ''Mlx1ODJkOFx1ODMwY1x1ODJmYlx1ODJkM1x1ODMxMVx1ODMxYVx1ODMwNlx1ODMxNFx1ODMxNVx1ODJlMFx1ODJkNVx1ODMxY1x1ODM1MVx1ODM1Ylx1ODM1Y1x1ODMwOFx1ODM5Mlx1ODMzY1x1ODMzNFx1ODMzMVx1ODM5Ylx1ODM1ZVx1ODMyZlx1ODM0Zlx1ODM0N1x1ODM0M1x1ODM1Zlx1''@;'; put 'put ''ODM0MFx1ODMxN1x1ODM2MFx1ODMyZFx1ODMzYVx1ODMzM1x1ODM2Nlx1ODM2NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjBdW0VdXT01NjMyMCtFLExbNTYzMjArRV09QlsyMjBdW0Vd''@;'; put 'put ''KTtmb3IoQlsyMjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThlZTVcdThlZTZcdThlZTdcdThlZThcdThlZTlcdThlZWFcdThlZWJcdThlZWNcdThlZWRcdThlZWVcdThlZWZcdThlZjBcdThlZjFcdThlZjJcdThlZjNcdThlZjRc''@;'; put 'put ''dThlZjVcdThlZjZcdThlZjdcdThlZjhcdThlZjlcdThlZmFcdThlZmJcdThlZmNcdThlZmRcdThlZmVcdThlZmZcdThmMDBcdThmMDFcdThmMDJcdThmMDNcdThmMDRcdThmMDVcdThmMDZcdThmMDdcdThmMDhcdThmMDlcdThmMGFcdThmMGJcdThmMGNcdThmMGRcdThmMGVcdThmMGZcdThm''@;'; put 'put ''MTBcdThmMTFcdThmMTJcdThmMTNcdThmMTRcdThmMTVcdThmMTZcdThmMTdcdThmMThcdThmMTlcdThmMWFcdThmMWJcdThmMWNcdThmMWRcdThmMWVcdThmMWZcdThmMjBcdThmMjFcdThmMjJcdThmMjNcdWZmZmRcdThmMjRcdThmMjVcdThmMjZcdThmMjdcdThmMjhcdThmMjlcdThmMmFc''@;'; put 'put ''dThmMmJcdThmMmNcdThmMmRcdThmMmVcdThmMmZcdThmMzBcdThmMzFcdThmMzJcdThmMzNcdThmMzRcdThmMzVcdThmMzZcdThmMzdcdThmMzhcdThmMzlcdThmM2FcdThmM2JcdThmM2NcdThmM2RcdThmM2VcdThmM2ZcdThmNDBcdThmNDFcdThmNDJcdThmNDNcdThmNDRcdTgzNjhcdTgz''@;'; put 'put ''MWJcdTgzNjlcdTgzNmNcdTgzNmFcdTgzNmRcdTgzNmVcdTgzYjBcdTgzNzhcdTgzYjNcdTgzYjRcdTgzYTBcdTgzYWFcdTgzOTNcdTgzOWNcdTgzODVcdTgzN2NcdTgzYjZcdTgzYTlcdTgzN2RcdTgzYjhcdTgzN2JcdTgzOThcdTgzOWVcdTgzYThcdTgzYmFcdTgzYmNcdTgzYzFcdTg0MDFc''@;'; put 'put ''dTgzZTVcdTgzZDhcdTU4MDdcdTg0MThcdTg0MGJcdTgzZGRcdTgzZmRcdTgzZDZcdTg0MWNcdTg0MzhcdTg0MTFcdTg0MDZcdTgzZDRcdTgzZGZcdTg0MGZcdTg0MDNcdTgzZjhcdTgzZjlcdTgzZWFcdTgzYzVcdTgzYzBcdTg0MjZcdTgzZjBcdTgzZTFcdTg0NWNcdTg0NTFcdTg0NWFcdTg0''@;'; put 'put ''NTlcdTg0NzNcdTg0ODdcdTg0ODhcdTg0N2FcdTg0ODlcdTg0NzhcdTg0M2NcdTg0NDZcdTg0NjlcdTg0NzZcdTg0OGNcdTg0OGVcdTg0MzFcdTg0NmRcdTg0YzFcdTg0Y2RcdTg0ZDBcdTg0ZTZcdTg0YmRcdTg0ZDNcdTg0Y2FcdTg0YmZcdTg0YmFcdTg0ZTBcdTg0YTFcdTg0YjlcdTg0YjRc''@;'; put 'put ''dTg0OTdcdTg0ZTVcdTg0ZTNcdTg1MGNcdTc1MGRcdTg1MzhcdTg0ZjBcdTg1MzlcdTg1MWZcdTg1M2FcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIxXVtFXV09NTY1NzYrRSxMWzU2NTc2''@;'; put 'put ''K0VdPUJbMjIxXVtFXSk7Zm9yKEJbMjIyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjQ1XHU4ZjQ2XHU4ZjQ3XHU4ZjQ4XHU4ZjQ5XHU4ZjRhXHU4ZjRiXHU4ZjRjXHU4ZjRkXHU4ZjRlXHU4ZjRmXHU4ZjUwXHU4ZjUxXHU4ZjUy''@;'; put 'put ''XHU4ZjUzXHU4ZjU0XHU4ZjU1XHU4ZjU2XHU4ZjU3XHU4ZjU4XHU4ZjU5XHU4ZjVhXHU4ZjViXHU4ZjVjXHU4ZjVkXHU4ZjVlXHU4ZjVmXHU4ZjYwXHU4ZjYxXHU4ZjYyXHU4ZjYzXHU4ZjY0XHU4ZjY1XHU4ZjZhXHU4ZjgwXHU4ZjhjXHU4ZjkyXHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmEyXHU4''@;'; put 'put ''ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmE3XHU4ZmFhXHU4ZmFjXHU4ZmFkXHU4ZmFlXHU4ZmFmXHU4ZmIyXHU4ZmIzXHU4ZmI0XHU4ZmI1XHU4ZmI3XHU4ZmI4XHU4ZmJhXHU4ZmJiXHU4ZmJjXHU4ZmJmXHU4ZmMwXHU4ZmMzXHU4ZmM2XHVmZmZkXHU4ZmM5XHU4ZmNhXHU4ZmNiXHU4ZmNjXHU4ZmNk''@;'; put 'put ''XHU4ZmNmXHU4ZmQyXHU4ZmQ2XHU4ZmQ3XHU4ZmRhXHU4ZmUwXHU4ZmUxXHU4ZmUzXHU4ZmU3XHU4ZmVjXHU4ZmVmXHU4ZmYxXHU4ZmYyXHU4ZmY0XHU4ZmY1XHU4ZmY2XHU4ZmZhXHU4ZmZiXHU4ZmZjXHU4ZmZlXHU4ZmZmXHU5MDA3XHU5MDA4XHU5MDBjXHU5MDBlXHU5MDEzXHU5MDE1XHU5''@;'; put 'put ''MDE4XHU4NTU2XHU4NTNiXHU4NGZmXHU4NGZjXHU4NTU5XHU4NTQ4XHU4NTY4XHU4NTY0XHU4NTVlXHU4NTdhXHU3N2EyXHU4NTQzXHU4NTcyXHU4NTdiXHU4NWE0XHU4NWE4XHU4NTg3XHU4NThmXHU4NTc5XHU4NWFlXHU4NTljXHU4NTg1XHU4NWI5XHU4NWI3XHU4NWIwXHU4NWQzXHU4NWMx''@;'; put 'put ''XHU4NWRjXHU4NWZmXHU4NjI3XHU4NjA1XHU4NjI5XHU4NjE2XHU4NjNjXHU1ZWZlXHU1ZjA4XHU1OTNjXHU1OTQxXHU4MDM3XHU1OTU1XHU1OTVhXHU1OTU4XHU1MzBmXHU1YzIyXHU1YzI1XHU1YzJjXHU1YzM0XHU2MjRjXHU2MjZhXHU2MjlmXHU2MmJiXHU2MmNhXHU2MmRhXHU2MmQ3XHU2''@;'; put 'put ''MmVlXHU2MzIyXHU2MmY2XHU2MzM5XHU2MzRiXHU2MzQzXHU2M2FkXHU2M2Y2XHU2MzcxXHU2MzdhXHU2MzhlXHU2M2I0XHU2MzZkXHU2M2FjXHU2MzhhXHU2MzY5XHU2M2FlXHU2M2JjXHU2M2YyXHU2M2Y4XHU2M2UwXHU2M2ZmXHU2M2M0XHU2M2RlXHU2M2NlXHU2NDUyXHU2M2M2XHU2M2Jl''@;'; put 'put ''XHU2NDQ1XHU2NDQxXHU2NDBiXHU2NDFiXHU2NDIwXHU2NDBjXHU2NDI2XHU2NDIxXHU2NDVlXHU2NDg0XHU2NDZkXHU2NDk2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMl1bRV1dPTU2''@;'; put 'put ''ODMyK0UsTFs1NjgzMitFXT1CWzIyMl1bRV0pO2ZvcihCWzIyM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTAxOVx1OTAxY1x1OTAyM1x1OTAyNFx1OTAyNVx1OTAyN1x1OTAyOFx1OTAyOVx1OTAyYVx1OTAyYlx1OTAyY1x1OTAz''@;'; put 'put ''MFx1OTAzMVx1OTAzMlx1OTAzM1x1OTAzNFx1OTAzN1x1OTAzOVx1OTAzYVx1OTAzZFx1OTAzZlx1OTA0MFx1OTA0M1x1OTA0NVx1OTA0Nlx1OTA0OFx1OTA0OVx1OTA0YVx1OTA0Ylx1OTA0Y1x1OTA0ZVx1OTA1NFx1OTA1NVx1OTA1Nlx1OTA1OVx1OTA1YVx1OTA1Y1x1OTA1ZFx1OTA1ZVx1''@;'; put 'put ''OTA1Zlx1OTA2MFx1OTA2MVx1OTA2NFx1OTA2Nlx1OTA2N1x1OTA2OVx1OTA2YVx1OTA2Ylx1OTA2Y1x1OTA2Zlx1OTA3MFx1OTA3MVx1OTA3Mlx1OTA3M1x1OTA3Nlx1OTA3N1x1OTA3OFx1OTA3OVx1OTA3YVx1OTA3Ylx1OTA3Y1x1OTA3ZVx1OTA4MVx1ZmZmZFx1OTA4NFx1OTA4NVx1OTA4''@;'; put 'put ''Nlx1OTA4N1x1OTA4OVx1OTA4YVx1OTA4Y1x1OTA4ZFx1OTA4ZVx1OTA4Zlx1OTA5MFx1OTA5Mlx1OTA5NFx1OTA5Nlx1OTA5OFx1OTA5YVx1OTA5Y1x1OTA5ZVx1OTA5Zlx1OTBhMFx1OTBhNFx1OTBhNVx1OTBhN1x1OTBhOFx1OTBhOVx1OTBhYlx1OTBhZFx1OTBiMlx1OTBiN1x1OTBiY1x1''@;'; put 'put ''OTBiZFx1OTBiZlx1OTBjMFx1NjQ3YVx1NjRiN1x1NjRiOFx1NjQ5OVx1NjRiYVx1NjRjMFx1NjRkMFx1NjRkN1x1NjRlNFx1NjRlMlx1NjUwOVx1NjUyNVx1NjUyZVx1NWYwYlx1NWZkMlx1NzUxOVx1NWYxMVx1NTM1Zlx1NTNmMVx1NTNmZFx1NTNlOVx1NTNlOFx1NTNmYlx1NTQxMlx1NTQx''@;'; put 'put ''Nlx1NTQwNlx1NTQ0Ylx1NTQ1Mlx1NTQ1M1x1NTQ1NFx1NTQ1Nlx1NTQ0M1x1NTQyMVx1NTQ1N1x1NTQ1OVx1NTQyM1x1NTQzMlx1NTQ4Mlx1NTQ5NFx1NTQ3N1x1NTQ3MVx1NTQ2NFx1NTQ5YVx1NTQ5Ylx1NTQ4NFx1NTQ3Nlx1NTQ2Nlx1NTQ5ZFx1NTRkMFx1NTRhZFx1NTRjMlx1NTRiNFx1''@;'; put 'put ''NTRkMlx1NTRhN1x1NTRhNlx1NTRkM1x1NTRkNFx1NTQ3Mlx1NTRhM1x1NTRkNVx1NTRiYlx1NTRiZlx1NTRjY1x1NTRkOVx1NTRkYVx1NTRkY1x1NTRhOVx1NTRhYVx1NTRhNFx1NTRkZFx1NTRjZlx1NTRkZVx1NTUxYlx1NTRlN1x1NTUyMFx1NTRmZFx1NTUxNFx1NTRmM1x1NTUyMlx1NTUy''@;'; put 'put ''M1x1NTUwZlx1NTUxMVx1NTUyN1x1NTUyYVx1NTU2N1x1NTU4Zlx1NTViNVx1NTU0OVx1NTU2ZFx1NTU0MVx1NTU1NVx1NTUzZlx1NTU1MFx1NTUzY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; put 'put ''QlsyMjNdW0VdXT01NzA4OCtFLExbNTcwODgrRV09QlsyMjNdW0VdKTtmb3IoQlsyMjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwYzJcdTkwYzNcdTkwYzZcdTkwYzhcdTkwYzlcdTkwY2JcdTkwY2NcdTkwY2RcdTkwZDJcdTkw''@;'; put 'put ''ZDRcdTkwZDVcdTkwZDZcdTkwZDhcdTkwZDlcdTkwZGFcdTkwZGVcdTkwZGZcdTkwZTBcdTkwZTNcdTkwZTRcdTkwZTVcdTkwZTlcdTkwZWFcdTkwZWNcdTkwZWVcdTkwZjBcdTkwZjFcdTkwZjJcdTkwZjNcdTkwZjVcdTkwZjZcdTkwZjdcdTkwZjlcdTkwZmFcdTkwZmJcdTkwZmNcdTkwZmZc''@;'; put 'put ''dTkxMDBcdTkxMDFcdTkxMDNcdTkxMDVcdTkxMDZcdTkxMDdcdTkxMDhcdTkxMDlcdTkxMGFcdTkxMGJcdTkxMGNcdTkxMGRcdTkxMGVcdTkxMGZcdTkxMTBcdTkxMTFcdTkxMTJcdTkxMTNcdTkxMTRcdTkxMTVcdTkxMTZcdTkxMTdcdTkxMThcdTkxMWFcdTkxMWJcdTkxMWNcdWZmZmRcdTkx''@;'; put 'put ''MWRcdTkxMWZcdTkxMjBcdTkxMjFcdTkxMjRcdTkxMjVcdTkxMjZcdTkxMjdcdTkxMjhcdTkxMjlcdTkxMmFcdTkxMmJcdTkxMmNcdTkxMmRcdTkxMmVcdTkxMzBcdTkxMzJcdTkxMzNcdTkxMzRcdTkxMzVcdTkxMzZcdTkxMzdcdTkxMzhcdTkxM2FcdTkxM2JcdTkxM2NcdTkxM2RcdTkxM2Vc''@;'; put 'put ''dTkxM2ZcdTkxNDBcdTkxNDFcdTkxNDJcdTkxNDRcdTU1MzdcdTU1NTZcdTU1NzVcdTU1NzZcdTU1NzdcdTU1MzNcdTU1MzBcdTU1NWNcdTU1OGJcdTU1ZDJcdTU1ODNcdTU1YjFcdTU1YjlcdTU1ODhcdTU1ODFcdTU1OWZcdTU1N2VcdTU1ZDZcdTU1OTFcdTU1N2JcdTU1ZGZcdTU1YmRcdTU1''@;'; put 'put ''YmVcdTU1OTRcdTU1OTlcdTU1ZWFcdTU1ZjdcdTU1YzlcdTU2MWZcdTU1ZDFcdTU1ZWJcdTU1ZWNcdTU1ZDRcdTU1ZTZcdTU1ZGRcdTU1YzRcdTU1ZWZcdTU1ZTVcdTU1ZjJcdTU1ZjNcdTU1Y2NcdTU1Y2RcdTU1ZThcdTU1ZjVcdTU1ZTRcdThmOTRcdTU2MWVcdTU2MDhcdTU2MGNcdTU2MDFc''@;'; put 'put ''dTU2MjRcdTU2MjNcdTU1ZmVcdTU2MDBcdTU2MjdcdTU2MmRcdTU2NThcdTU2MzlcdTU2NTdcdTU2MmNcdTU2NGRcdTU2NjJcdTU2NTlcdTU2NWNcdTU2NGNcdTU2NTRcdTU2ODZcdTU2NjRcdTU2NzFcdTU2NmJcdTU2N2JcdTU2N2NcdTU2ODVcdTU2OTNcdTU2YWZcdTU2ZDRcdTU2ZDdcdTU2''@;'; put 'put ''ZGRcdTU2ZTFcdTU2ZjVcdTU2ZWJcdTU2ZjlcdTU2ZmZcdTU3MDRcdTU3MGFcdTU3MDlcdTU3MWNcdTVlMGZcdTVlMTlcdTVlMTRcdTVlMTFcdTVlMzFcdTVlM2JcdTVlM2NcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNF1bRV0uY2hhckNv''@;'; put 'put ''ZGVBdCgwKSYmKG1lW0JbMjI0XVtFXV09NTczNDQrRSxMWzU3MzQ0K0VdPUJbMjI0XVtFXSk7Zm9yKEJbMjI1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MTQ1XHU5MTQ3XHU5MTQ4XHU5MTUxXHU5MTUzXHU5MTU0XHU5MTU1XHU5''@;'; put 'put ''MTU2XHU5MTU4XHU5MTU5XHU5MTViXHU5MTVjXHU5MTVmXHU5MTYwXHU5MTY2XHU5MTY3XHU5MTY4XHU5MTZiXHU5MTZkXHU5MTczXHU5MTdhXHU5MTdiXHU5MTdjXHU5MTgwXHU5MTgxXHU5MTgyXHU5MTgzXHU5MTg0XHU5MTg2XHU5MTg4XHU5MThhXHU5MThlXHU5MThmXHU5MTkzXHU5MTk0''@;'; put 'put ''XHU5MTk1XHU5MTk2XHU5MTk3XHU5MTk4XHU5MTk5XHU5MTljXHU5MTlkXHU5MTllXHU5MTlmXHU5MWEwXHU5MWExXHU5MWE0XHU5MWE1XHU5MWE2XHU5MWE3XHU5MWE4XHU5MWE5XHU5MWFiXHU5MWFjXHU5MWIwXHU5MWIxXHU5MWIyXHU5MWIzXHU5MWI2XHU5MWI3XHU5MWI4XHU5MWI5XHU5''@;'; put 'put ''MWJiXHVmZmZkXHU5MWJjXHU5MWJkXHU5MWJlXHU5MWJmXHU5MWMwXHU5MWMxXHU5MWMyXHU5MWMzXHU5MWM0XHU5MWM1XHU5MWM2XHU5MWM4XHU5MWNiXHU5MWQwXHU5MWQyXHU5MWQzXHU5MWQ0XHU5MWQ1XHU5MWQ2XHU5MWQ3XHU5MWQ4XHU5MWQ5XHU5MWRhXHU5MWRiXHU5MWRkXHU5MWRl''@;'; put 'put ''XHU5MWRmXHU5MWUwXHU5MWUxXHU5MWUyXHU5MWUzXHU5MWU0XHU5MWU1XHU1ZTM3XHU1ZTQ0XHU1ZTU0XHU1ZTViXHU1ZTVlXHU1ZTYxXHU1YzhjXHU1YzdhXHU1YzhkXHU1YzkwXHU1Yzk2XHU1Yzg4XHU1Yzk4XHU1Yzk5XHU1YzkxXHU1YzlhXHU1YzljXHU1Y2I1XHU1Y2EyXHU1Y2JkXHU1''@;'; put 'put ''Y2FjXHU1Y2FiXHU1Y2IxXHU1Y2EzXHU1Y2MxXHU1Y2I3XHU1Y2M0XHU1Y2QyXHU1Y2U0XHU1Y2NiXHU1Y2U1XHU1ZDAyXHU1ZDAzXHU1ZDI3XHU1ZDI2XHU1ZDJlXHU1ZDI0XHU1ZDFlXHU1ZDA2XHU1ZDFiXHU1ZDU4XHU1ZDNlXHU1ZDM0XHU1ZDNkXHU1ZDZjXHU1ZDViXHU1ZDZmXHU1ZDVk''@;'; put 'put ''XHU1ZDZiXHU1ZDRiXHU1ZDRhXHU1ZDY5XHU1ZDc0XHU1ZDgyXHU1ZDk5XHU1ZDlkXHU4YzczXHU1ZGI3XHU1ZGM1XHU1ZjczXHU1Zjc3XHU1ZjgyXHU1Zjg3XHU1Zjg5XHU1ZjhjXHU1Zjk1XHU1Zjk5XHU1ZjljXHU1ZmE4XHU1ZmFkXHU1ZmI1XHU1ZmJjXHU4ODYyXHU1ZjYxXHU3MmFkXHU3''@;'; put 'put ''MmIwXHU3MmI0XHU3MmI3XHU3MmI4XHU3MmMzXHU3MmMxXHU3MmNlXHU3MmNkXHU3MmQyXHU3MmU4XHU3MmVmXHU3MmU5XHU3MmYyXHU3MmY0XHU3MmY3XHU3MzAxXHU3MmYzXHU3MzAzXHU3MmZhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI1XS5sZW5ndGg7KytFKTY1NTMzIT09Qlsy''@;'; put 'put ''MjVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNV1bRV1dPTU3NjAwK0UsTFs1NzYwMCtFXT1CWzIyNV1bRV0pO2ZvcihCWzIyNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTFlNlx1OTFlN1x1OTFlOFx1OTFlOVx1OTFlYVx1''@;'; put 'put ''OTFlYlx1OTFlY1x1OTFlZFx1OTFlZVx1OTFlZlx1OTFmMFx1OTFmMVx1OTFmMlx1OTFmM1x1OTFmNFx1OTFmNVx1OTFmNlx1OTFmN1x1OTFmOFx1OTFmOVx1OTFmYVx1OTFmYlx1OTFmY1x1OTFmZFx1OTFmZVx1OTFmZlx1OTIwMFx1OTIwMVx1OTIwMlx1OTIwM1x1OTIwNFx1OTIwNVx1OTIw''@;'; put 'put ''Nlx1OTIwN1x1OTIwOFx1OTIwOVx1OTIwYVx1OTIwYlx1OTIwY1x1OTIwZFx1OTIwZVx1OTIwZlx1OTIxMFx1OTIxMVx1OTIxMlx1OTIxM1x1OTIxNFx1OTIxNVx1OTIxNlx1OTIxN1x1OTIxOFx1OTIxOVx1OTIxYVx1OTIxYlx1OTIxY1x1OTIxZFx1OTIxZVx1OTIxZlx1OTIyMFx1OTIyMVx1''@;'; put 'put ''OTIyMlx1OTIyM1x1OTIyNFx1ZmZmZFx1OTIyNVx1OTIyNlx1OTIyN1x1OTIyOFx1OTIyOVx1OTIyYVx1OTIyYlx1OTIyY1x1OTIyZFx1OTIyZVx1OTIyZlx1OTIzMFx1OTIzMVx1OTIzMlx1OTIzM1x1OTIzNFx1OTIzNVx1OTIzNlx1OTIzN1x1OTIzOFx1OTIzOVx1OTIzYVx1OTIzYlx1OTIz''@;'; put 'put ''Y1x1OTIzZFx1OTIzZVx1OTIzZlx1OTI0MFx1OTI0MVx1OTI0Mlx1OTI0M1x1OTI0NFx1OTI0NVx1NzJmYlx1NzMxN1x1NzMxM1x1NzMyMVx1NzMwYVx1NzMxZVx1NzMxZFx1NzMxNVx1NzMyMlx1NzMzOVx1NzMyNVx1NzMyY1x1NzMzOFx1NzMzMVx1NzM1MFx1NzM0ZFx1NzM1N1x1NzM2MFx1''@;'; put 'put ''NzM2Y1x1NzM2Zlx1NzM3ZVx1ODIxYlx1NTkyNVx1OThlN1x1NTkyNFx1NTkwMlx1OTk2M1x1OTk2N1x1OTk2OFx1OTk2OVx1OTk2YVx1OTk2Ylx1OTk2Y1x1OTk3NFx1OTk3N1x1OTk3ZFx1OTk4MFx1OTk4NFx1OTk4N1x1OTk4YVx1OTk4ZFx1OTk5MFx1OTk5MVx1OTk5M1x1OTk5NFx1OTk5''@;'; put 'put ''NVx1NWU4MFx1NWU5MVx1NWU4Ylx1NWU5Nlx1NWVhNVx1NWVhMFx1NWViOVx1NWViNVx1NWViZVx1NWViM1x1OGQ1M1x1NWVkMlx1NWVkMVx1NWVkYlx1NWVlOFx1NWVlYVx1ODFiYVx1NWZjNFx1NWZjOVx1NWZkNlx1NWZjZlx1NjAwM1x1NWZlZVx1NjAwNFx1NWZlMVx1NWZlNFx1NWZmZVx1''@;'; put 'put ''NjAwNVx1NjAwNlx1NWZlYVx1NWZlZFx1NWZmOFx1NjAxOVx1NjAzNVx1NjAyNlx1NjAxYlx1NjAwZlx1NjAwZFx1NjAyOVx1NjAyYlx1NjAwYVx1NjAzZlx1NjAyMVx1NjA3OFx1NjA3OVx1NjA3Ylx1NjA3YVx1NjA0Mlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNl0ubGVuZ3RoOysr''@;'; put 'put ''RSk2NTUzMyE9PUJbMjI2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjZdW0VdXT01Nzg1NitFLExbNTc4NTYrRV09QlsyMjZdW0VdKTtmb3IoQlsyMjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkyNDZcdTkyNDdcdTkyNDhc''@;'; put 'put ''dTkyNDlcdTkyNGFcdTkyNGJcdTkyNGNcdTkyNGRcdTkyNGVcdTkyNGZcdTkyNTBcdTkyNTFcdTkyNTJcdTkyNTNcdTkyNTRcdTkyNTVcdTkyNTZcdTkyNTdcdTkyNThcdTkyNTlcdTkyNWFcdTkyNWJcdTkyNWNcdTkyNWRcdTkyNWVcdTkyNWZcdTkyNjBcdTkyNjFcdTkyNjJcdTkyNjNcdTky''@;'; put 'put ''NjRcdTkyNjVcdTkyNjZcdTkyNjdcdTkyNjhcdTkyNjlcdTkyNmFcdTkyNmJcdTkyNmNcdTkyNmRcdTkyNmVcdTkyNmZcdTkyNzBcdTkyNzFcdTkyNzJcdTkyNzNcdTkyNzVcdTkyNzZcdTkyNzdcdTkyNzhcdTkyNzlcdTkyN2FcdTkyN2JcdTkyN2NcdTkyN2RcdTkyN2VcdTkyN2ZcdTkyODBc''@;'; put 'put ''dTkyODFcdTkyODJcdTkyODNcdTkyODRcdTkyODVcdWZmZmRcdTkyODZcdTkyODdcdTkyODhcdTkyODlcdTkyOGFcdTkyOGJcdTkyOGNcdTkyOGRcdTkyOGZcdTkyOTBcdTkyOTFcdTkyOTJcdTkyOTNcdTkyOTRcdTkyOTVcdTkyOTZcdTkyOTdcdTkyOThcdTkyOTlcdTkyOWFcdTkyOWJcdTky''@;'; put 'put ''OWNcdTkyOWRcdTkyOWVcdTkyOWZcdTkyYTBcdTkyYTFcdTkyYTJcdTkyYTNcdTkyYTRcdTkyYTVcdTkyYTZcdTkyYTdcdTYwNmFcdTYwN2RcdTYwOTZcdTYwOWFcdTYwYWRcdTYwOWRcdTYwODNcdTYwOTJcdTYwOGNcdTYwOWJcdTYwZWNcdTYwYmJcdTYwYjFcdTYwZGRcdTYwZDhcdTYwYzZc''@;'; put 'put ''dTYwZGFcdTYwYjRcdTYxMjBcdTYxMjZcdTYxMTVcdTYxMjNcdTYwZjRcdTYxMDBcdTYxMGVcdTYxMmJcdTYxNGFcdTYxNzVcdTYxYWNcdTYxOTRcdTYxYTdcdTYxYjdcdTYxZDRcdTYxZjVcdTVmZGRcdTk2YjNcdTk1ZTlcdTk1ZWJcdTk1ZjFcdTk1ZjNcdTk1ZjVcdTk1ZjZcdTk1ZmNcdTk1''@;'; put 'put ''ZmVcdTk2MDNcdTk2MDRcdTk2MDZcdTk2MDhcdTk2MGFcdTk2MGJcdTk2MGNcdTk2MGRcdTk2MGZcdTk2MTJcdTk2MTVcdTk2MTZcdTk2MTdcdTk2MTlcdTk2MWFcdTRlMmNcdTcyM2ZcdTYyMTVcdTZjMzVcdTZjNTRcdTZjNWNcdTZjNGFcdTZjYTNcdTZjODVcdTZjOTBcdTZjOTRcdTZjOGNc''@;'; put 'put ''dTZjNjhcdTZjNjlcdTZjNzRcdTZjNzZcdTZjODZcdTZjYTlcdTZjZDBcdTZjZDRcdTZjYWRcdTZjZjdcdTZjZjhcdTZjZjFcdTZjZDdcdTZjYjJcdTZjZTBcdTZjZDZcdTZjZmFcdTZjZWJcdTZjZWVcdTZjYjFcdTZjZDNcdTZjZWZcdTZjZmVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsy''@;'; put 'put ''MjddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI3XVtFXV09NTgxMTIrRSxMWzU4MTEyK0VdPUJbMjI3XVtFXSk7Zm9yKEJbMjI4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MmE4''@;'; put 'put ''XHU5MmE5XHU5MmFhXHU5MmFiXHU5MmFjXHU5MmFkXHU5MmFmXHU5MmIwXHU5MmIxXHU5MmIyXHU5MmIzXHU5MmI0XHU5MmI1XHU5MmI2XHU5MmI3XHU5MmI4XHU5MmI5XHU5MmJhXHU5MmJiXHU5MmJjXHU5MmJkXHU5MmJlXHU5MmJmXHU5MmMwXHU5MmMxXHU5MmMyXHU5MmMzXHU5MmM0XHU5''@;'; put 'put ''MmM1XHU5MmM2XHU5MmM3XHU5MmM5XHU5MmNhXHU5MmNiXHU5MmNjXHU5MmNkXHU5MmNlXHU5MmNmXHU5MmQwXHU5MmQxXHU5MmQyXHU5MmQzXHU5MmQ0XHU5MmQ1XHU5MmQ2XHU5MmQ3XHU5MmQ4XHU5MmQ5XHU5MmRhXHU5MmRiXHU5MmRjXHU5MmRkXHU5MmRlXHU5MmRmXHU5MmUwXHU5MmUx''@;'; put 'put ''XHU5MmUyXHU5MmUzXHU5MmU0XHU5MmU1XHU5MmU2XHU5MmU3XHU5MmU4XHVmZmZkXHU5MmU5XHU5MmVhXHU5MmViXHU5MmVjXHU5MmVkXHU5MmVlXHU5MmVmXHU5MmYwXHU5MmYxXHU5MmYyXHU5MmYzXHU5MmY0XHU5MmY1XHU5MmY2XHU5MmY3XHU5MmY4XHU5MmY5XHU5MmZhXHU5MmZiXHU5''@;'; put 'put ''MmZjXHU5MmZkXHU5MmZlXHU5MmZmXHU5MzAwXHU5MzAxXHU5MzAyXHU5MzAzXHU5MzA0XHU5MzA1XHU5MzA2XHU5MzA3XHU5MzA4XHU5MzA5XHU2ZDM5XHU2ZDI3XHU2ZDBjXHU2ZDQzXHU2ZDQ4XHU2ZDA3XHU2ZDA0XHU2ZDE5XHU2ZDBlXHU2ZDJiXHU2ZDRkXHU2ZDJlXHU2ZDM1XHU2ZDFh''@;'; put 'put ''XHU2ZDRmXHU2ZDUyXHU2ZDU0XHU2ZDMzXHU2ZDkxXHU2ZDZmXHU2ZDllXHU2ZGEwXHU2ZDVlXHU2ZDkzXHU2ZDk0XHU2ZDVjXHU2ZDYwXHU2ZDdjXHU2ZDYzXHU2ZTFhXHU2ZGM3XHU2ZGM1XHU2ZGRlXHU2ZTBlXHU2ZGJmXHU2ZGUwXHU2ZTExXHU2ZGU2XHU2ZGRkXHU2ZGQ5XHU2ZTE2XHU2''@;'; put 'put ''ZGFiXHU2ZTBjXHU2ZGFlXHU2ZTJiXHU2ZTZlXHU2ZTRlXHU2ZTZiXHU2ZWIyXHU2ZTVmXHU2ZTg2XHU2ZTUzXHU2ZTU0XHU2ZTMyXHU2ZTI1XHU2ZTQ0XHU2ZWRmXHU2ZWIxXHU2ZTk4XHU2ZWUwXHU2ZjJkXHU2ZWUyXHU2ZWE1XHU2ZWE3XHU2ZWJkXHU2ZWJiXHU2ZWI3XHU2ZWQ3XHU2ZWI0''@;'; put 'put ''XHU2ZWNmXHU2ZThmXHU2ZWMyXHU2ZTlmXHU2ZjYyXHU2ZjQ2XHU2ZjQ3XHU2ZjI0XHU2ZjE1XHU2ZWY5XHU2ZjJmXHU2ZjM2XHU2ZjRiXHU2Zjc0XHU2ZjJhXHU2ZjA5XHU2ZjI5XHU2Zjg5XHU2ZjhkXHU2ZjhjXHU2Zjc4XHU2ZjcyXHU2ZjdjXHU2ZjdhXHU2ZmQxXHVmZmZkIi5zcGxpdCgi''@;'; put 'put ''IiksRT0wO0UhPUJbMjI4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyOF1bRV1dPTU4MzY4K0UsTFs1ODM2OCtFXT1CWzIyOF1bRV0pO2ZvcihCWzIyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1OTMwYVx1OTMwYlx1OTMwY1x1OTMwZFx1OTMwZVx1OTMwZlx1OTMxMFx1OTMxMVx1OTMxMlx1OTMxM1x1OTMxNFx1OTMxNVx1OTMxNlx1OTMxN1x1OTMxOFx1OTMxOVx1OTMxYVx1OTMxYlx1OTMxY1x1OTMxZFx1OTMxZVx1OTMxZlx1OTMyMFx1OTMyMVx1OTMyMlx1OTMyM1x1''@;'; put 'put ''OTMyNFx1OTMyNVx1OTMyNlx1OTMyN1x1OTMyOFx1OTMyOVx1OTMyYVx1OTMyYlx1OTMyY1x1OTMyZFx1OTMyZVx1OTMyZlx1OTMzMFx1OTMzMVx1OTMzMlx1OTMzM1x1OTMzNFx1OTMzNVx1OTMzNlx1OTMzN1x1OTMzOFx1OTMzOVx1OTMzYVx1OTMzYlx1OTMzY1x1OTMzZFx1OTMzZlx1OTM0''@;'; put 'put ''MFx1OTM0MVx1OTM0Mlx1OTM0M1x1OTM0NFx1OTM0NVx1OTM0Nlx1OTM0N1x1OTM0OFx1OTM0OVx1ZmZmZFx1OTM0YVx1OTM0Ylx1OTM0Y1x1OTM0ZFx1OTM0ZVx1OTM0Zlx1OTM1MFx1OTM1MVx1OTM1Mlx1OTM1M1x1OTM1NFx1OTM1NVx1OTM1Nlx1OTM1N1x1OTM1OFx1OTM1OVx1OTM1YVx1''@;'; put 'put ''OTM1Ylx1OTM1Y1x1OTM1ZFx1OTM1ZVx1OTM1Zlx1OTM2MFx1OTM2MVx1OTM2Mlx1OTM2M1x1OTM2NFx1OTM2NVx1OTM2Nlx1OTM2N1x1OTM2OFx1OTM2OVx1OTM2Ylx1NmZjOVx1NmZhN1x1NmZiOVx1NmZiNlx1NmZjMlx1NmZlMVx1NmZlZVx1NmZkZVx1NmZlMFx1NmZlZlx1NzAxYVx1NzAy''@;'; put 'put ''M1x1NzAxYlx1NzAzOVx1NzAzNVx1NzA0Zlx1NzA1ZVx1NWI4MFx1NWI4NFx1NWI5NVx1NWI5M1x1NWJhNVx1NWJiOFx1NzUyZlx1OWE5ZVx1NjQzNFx1NWJlNFx1NWJlZVx1ODkzMFx1NWJmMFx1OGU0N1x1OGIwN1x1OGZiNlx1OGZkM1x1OGZkNVx1OGZlNVx1OGZlZVx1OGZlNFx1OGZlOVx1''@;'; put 'put ''OGZlNlx1OGZmM1x1OGZlOFx1OTAwNVx1OTAwNFx1OTAwYlx1OTAyNlx1OTAxMVx1OTAwZFx1OTAxNlx1OTAyMVx1OTAzNVx1OTAzNlx1OTAyZFx1OTAyZlx1OTA0NFx1OTA1MVx1OTA1Mlx1OTA1MFx1OTA2OFx1OTA1OFx1OTA2Mlx1OTA1Ylx1NjZiOVx1OTA3NFx1OTA3ZFx1OTA4Mlx1OTA4''@;'; put 'put ''OFx1OTA4M1x1OTA4Ylx1NWY1MFx1NWY1N1x1NWY1Nlx1NWY1OFx1NWMzYlx1NTRhYlx1NWM1MFx1NWM1OVx1NWI3MVx1NWM2M1x1NWM2Nlx1N2ZiY1x1NWYyYVx1NWYyOVx1NWYyZFx1ODI3NFx1NWYzY1x1OWIzYlx1NWM2ZVx1NTk4MVx1NTk4M1x1NTk4ZFx1NTlhOVx1NTlhYVx1NTlhM1x1''@;'; put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjldW0VdXT01ODYyNCtFLExbNTg2MjQrRV09QlsyMjldW0VdKTtmb3IoQlsyMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzNmNcdTkzNmRcdTkzNmVcdTkzNmZcdTkzNzBcdTkzNzFcdTkzNzJcdTkzNzNcdTkzNzRcdTkzNzVcdTkzNzZcdTkzNzdcdTkzNzhcdTkzNzlcdTkzN2FcdTkzN2JcdTkzN2NcdTkzN2RcdTkzN2VcdTkzN2ZcdTkzODBcdTkzODFcdTkzODJcdTkzODNc''@;'; put 'put ''dTkzODRcdTkzODVcdTkzODZcdTkzODdcdTkzODhcdTkzODlcdTkzOGFcdTkzOGJcdTkzOGNcdTkzOGRcdTkzOGVcdTkzOTBcdTkzOTFcdTkzOTJcdTkzOTNcdTkzOTRcdTkzOTVcdTkzOTZcdTkzOTdcdTkzOThcdTkzOTlcdTkzOWFcdTkzOWJcdTkzOWNcdTkzOWRcdTkzOWVcdTkzOWZcdTkz''@;'; put 'put ''YTBcdTkzYTFcdTkzYTJcdTkzYTNcdTkzYTRcdTkzYTVcdTkzYTZcdTkzYTdcdTkzYThcdTkzYTlcdTkzYWFcdTkzYWJcdWZmZmRcdTkzYWNcdTkzYWRcdTkzYWVcdTkzYWZcdTkzYjBcdTkzYjFcdTkzYjJcdTkzYjNcdTkzYjRcdTkzYjVcdTkzYjZcdTkzYjdcdTkzYjhcdTkzYjlcdTkzYmFc''@;'; put 'put ''dTkzYmJcdTkzYmNcdTkzYmRcdTkzYmVcdTkzYmZcdTkzYzBcdTkzYzFcdTkzYzJcdTkzYzNcdTkzYzRcdTkzYzVcdTkzYzZcdTkzYzdcdTkzYzhcdTkzYzlcdTkzY2JcdTkzY2NcdTkzY2RcdTU5OTdcdTU5Y2FcdTU5YWJcdTU5OWVcdTU5YTRcdTU5ZDJcdTU5YjJcdTU5YWZcdTU5ZDdcdTU5''@;'; put 'put ''YmVcdTVhMDVcdTVhMDZcdTU5ZGRcdTVhMDhcdTU5ZTNcdTU5ZDhcdTU5ZjlcdTVhMGNcdTVhMDlcdTVhMzJcdTVhMzRcdTVhMTFcdTVhMjNcdTVhMTNcdTVhNDBcdTVhNjdcdTVhNGFcdTVhNTVcdTVhM2NcdTVhNjJcdTVhNzVcdTgwZWNcdTVhYWFcdTVhOWJcdTVhNzdcdTVhN2FcdTVhYmVc''@;'; put 'put ''dTVhZWJcdTVhYjJcdTVhZDJcdTVhZDRcdTVhYjhcdTVhZTBcdTVhZTNcdTVhZjFcdTVhZDZcdTVhZTZcdTVhZDhcdTVhZGNcdTViMDlcdTViMTdcdTViMTZcdTViMzJcdTViMzdcdTViNDBcdTVjMTVcdTVjMWNcdTViNWFcdTViNjVcdTViNzNcdTViNTFcdTViNTNcdTViNjJcdTlhNzVcdTlh''@;'; put 'put ''NzdcdTlhNzhcdTlhN2FcdTlhN2ZcdTlhN2RcdTlhODBcdTlhODFcdTlhODVcdTlhODhcdTlhOGFcdTlhOTBcdTlhOTJcdTlhOTNcdTlhOTZcdTlhOThcdTlhOWJcdTlhOWNcdTlhOWRcdTlhOWZcdTlhYTBcdTlhYTJcdTlhYTNcdTlhYTVcdTlhYTdcdTdlOWZcdTdlYTFcdTdlYTNcdTdlYTVc''@;'; put 'put ''dTdlYThcdTdlYTlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMwXVtFXV09NTg4ODArRSxMWzU4ODgwK0VdPUJbMjMwXVtFXSk7Zm9yKEJbMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5M2NlXHU5M2NmXHU5M2QwXHU5M2QxXHU5M2QyXHU5M2QzXHU5M2Q0XHU5M2Q1XHU5M2Q3XHU5M2Q4XHU5M2Q5XHU5M2RhXHU5M2RiXHU5M2RjXHU5M2RkXHU5M2RlXHU5M2RmXHU5M2UwXHU5M2UxXHU5M2UyXHU5M2UzXHU5M2U0''@;'; put 'put ''XHU5M2U1XHU5M2U2XHU5M2U3XHU5M2U4XHU5M2U5XHU5M2VhXHU5M2ViXHU5M2VjXHU5M2VkXHU5M2VlXHU5M2VmXHU5M2YwXHU5M2YxXHU5M2YyXHU5M2YzXHU5M2Y0XHU5M2Y1XHU5M2Y2XHU5M2Y3XHU5M2Y4XHU5M2Y5XHU5M2ZhXHU5M2ZiXHU5M2ZjXHU5M2ZkXHU5M2ZlXHU5M2ZmXHU5''@;'; put 'put ''NDAwXHU5NDAxXHU5NDAyXHU5NDAzXHU5NDA0XHU5NDA1XHU5NDA2XHU5NDA3XHU5NDA4XHU5NDA5XHU5NDBhXHU5NDBiXHU5NDBjXHU5NDBkXHVmZmZkXHU5NDBlXHU5NDBmXHU5NDEwXHU5NDExXHU5NDEyXHU5NDEzXHU5NDE0XHU5NDE1XHU5NDE2XHU5NDE3XHU5NDE4XHU5NDE5XHU5NDFh''@;'; put 'put ''XHU5NDFiXHU5NDFjXHU5NDFkXHU5NDFlXHU5NDFmXHU5NDIwXHU5NDIxXHU5NDIyXHU5NDIzXHU5NDI0XHU5NDI1XHU5NDI2XHU5NDI3XHU5NDI4XHU5NDI5XHU5NDJhXHU5NDJiXHU5NDJjXHU5NDJkXHU5NDJlXHU3ZWFkXHU3ZWIwXHU3ZWJlXHU3ZWMwXHU3ZWMxXHU3ZWMyXHU3ZWM5XHU3''@;'; put 'put ''ZWNiXHU3ZWNjXHU3ZWQwXHU3ZWQ0XHU3ZWQ3XHU3ZWRiXHU3ZWUwXHU3ZWUxXHU3ZWU4XHU3ZWViXHU3ZWVlXHU3ZWVmXHU3ZWYxXHU3ZWYyXHU3ZjBkXHU3ZWY2XHU3ZWZhXHU3ZWZiXHU3ZWZlXHU3ZjAxXHU3ZjAyXHU3ZjAzXHU3ZjA3XHU3ZjA4XHU3ZjBiXHU3ZjBjXHU3ZjBmXHU3ZjEx''@;'; put 'put ''XHU3ZjEyXHU3ZjE3XHU3ZjE5XHU3ZjFjXHU3ZjFiXHU3ZjFmXHU3ZjIxXHU3ZjIyXHU3ZjIzXHU3ZjI0XHU3ZjI1XHU3ZjI2XHU3ZjI3XHU3ZjJhXHU3ZjJiXHU3ZjJjXHU3ZjJkXHU3ZjJmXHU3ZjMwXHU3ZjMxXHU3ZjMyXHU3ZjMzXHU3ZjM1XHU1ZTdhXHU3NTdmXHU1ZGRiXHU3NTNlXHU5''@;'; put 'put ''MDk1XHU3MzhlXHU3MzkxXHU3M2FlXHU3M2EyXHU3MzlmXHU3M2NmXHU3M2MyXHU3M2QxXHU3M2I3XHU3M2IzXHU3M2MwXHU3M2M5XHU3M2M4XHU3M2U1XHU3M2Q5XHU5ODdjXHU3NDBhXHU3M2U5XHU3M2U3XHU3M2RlXHU3M2JhXHU3M2YyXHU3NDBmXHU3NDJhXHU3NDViXHU3NDI2XHU3NDI1''@;'; put 'put ''XHU3NDI4XHU3NDMwXHU3NDJlXHU3NDJjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMV1bRV1dPTU5MTM2K0UsTFs1OTEzNitFXT1CWzIzMV1bRV0pO2ZvcihCWzIzMl09Ilx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTQyZlx1OTQzMFx1OTQzMVx1OTQzMlx1OTQzM1x1OTQzNFx1OTQzNVx1OTQzNlx1OTQzN1x1OTQzOFx1OTQzOVx1OTQzYVx1OTQzYlx1OTQzY1x1OTQzZFx1OTQzZlx1OTQ0MFx1OTQ0MVx1OTQ0Mlx1OTQ0''@;'; put 'put ''M1x1OTQ0NFx1OTQ0NVx1OTQ0Nlx1OTQ0N1x1OTQ0OFx1OTQ0OVx1OTQ0YVx1OTQ0Ylx1OTQ0Y1x1OTQ0ZFx1OTQ0ZVx1OTQ0Zlx1OTQ1MFx1OTQ1MVx1OTQ1Mlx1OTQ1M1x1OTQ1NFx1OTQ1NVx1OTQ1Nlx1OTQ1N1x1OTQ1OFx1OTQ1OVx1OTQ1YVx1OTQ1Ylx1OTQ1Y1x1OTQ1ZFx1OTQ1ZVx1''@;'; put 'put ''OTQ1Zlx1OTQ2MFx1OTQ2MVx1OTQ2Mlx1OTQ2M1x1OTQ2NFx1OTQ2NVx1OTQ2Nlx1OTQ2N1x1OTQ2OFx1OTQ2OVx1OTQ2YVx1OTQ2Y1x1OTQ2ZFx1OTQ2ZVx1OTQ2Zlx1ZmZmZFx1OTQ3MFx1OTQ3MVx1OTQ3Mlx1OTQ3M1x1OTQ3NFx1OTQ3NVx1OTQ3Nlx1OTQ3N1x1OTQ3OFx1OTQ3OVx1OTQ3''@;'; put 'put ''YVx1OTQ3Ylx1OTQ3Y1x1OTQ3ZFx1OTQ3ZVx1OTQ3Zlx1OTQ4MFx1OTQ4MVx1OTQ4Mlx1OTQ4M1x1OTQ4NFx1OTQ5MVx1OTQ5Nlx1OTQ5OFx1OTRjN1x1OTRjZlx1OTRkM1x1OTRkNFx1OTRkYVx1OTRlNlx1OTRmYlx1OTUxY1x1OTUyMFx1NzQxYlx1NzQxYVx1NzQ0MVx1NzQ1Y1x1NzQ1N1x1''@;'; put 'put ''NzQ1NVx1NzQ1OVx1NzQ3N1x1NzQ2ZFx1NzQ3ZVx1NzQ5Y1x1NzQ4ZVx1NzQ4MFx1NzQ4MVx1NzQ4N1x1NzQ4Ylx1NzQ5ZVx1NzRhOFx1NzRhOVx1NzQ5MFx1NzRhN1x1NzRkMlx1NzRiYVx1OTdlYVx1OTdlYlx1OTdlY1x1Njc0Y1x1Njc1M1x1Njc1ZVx1Njc0OFx1Njc2OVx1NjdhNVx1Njc4''@;'; put 'put ''N1x1Njc2YVx1Njc3M1x1Njc5OFx1NjdhN1x1Njc3NVx1NjdhOFx1Njc5ZVx1NjdhZFx1Njc4Ylx1Njc3N1x1Njc3Y1x1NjdmMFx1NjgwOVx1NjdkOFx1NjgwYVx1NjdlOVx1NjdiMFx1NjgwY1x1NjdkOVx1NjdiNVx1NjdkYVx1NjdiM1x1NjdkZFx1NjgwMFx1NjdjM1x1NjdiOFx1NjdlMlx1''@;'; put 'put ''NjgwZVx1NjdjMVx1NjdmZFx1NjgzMlx1NjgzM1x1Njg2MFx1Njg2MVx1Njg0ZVx1Njg2Mlx1Njg0NFx1Njg2NFx1Njg4M1x1NjgxZFx1Njg1NVx1Njg2Nlx1Njg0MVx1Njg2N1x1Njg0MFx1NjgzZVx1Njg0YVx1Njg0OVx1NjgyOVx1NjhiNVx1Njg4Zlx1Njg3NFx1Njg3N1x1Njg5M1x1Njg2''@;'; put 'put ''Ylx1NjhjMlx1Njk2ZVx1NjhmY1x1NjkxZlx1NjkyMFx1NjhmOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzJdW0VdXT01OTM5MitFLExbNTkzOTIrRV09QlsyMzJdW0VdKTtmb3IoQlsy''@;'; put 'put ''MzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk1MjdcdTk1MzNcdTk1M2RcdTk1NDNcdTk1NDhcdTk1NGJcdTk1NTVcdTk1NWFcdTk1NjBcdTk1NmVcdTk1NzRcdTk1NzVcdTk1NzdcdTk1NzhcdTk1NzlcdTk1N2FcdTk1N2JcdTk1''@;'; put 'put ''N2NcdTk1N2RcdTk1N2VcdTk1ODBcdTk1ODFcdTk1ODJcdTk1ODNcdTk1ODRcdTk1ODVcdTk1ODZcdTk1ODdcdTk1ODhcdTk1ODlcdTk1OGFcdTk1OGJcdTk1OGNcdTk1OGRcdTk1OGVcdTk1OGZcdTk1OTBcdTk1OTFcdTk1OTJcdTk1OTNcdTk1OTRcdTk1OTVcdTk1OTZcdTk1OTdcdTk1OThc''@;'; put 'put ''dTk1OTlcdTk1OWFcdTk1OWJcdTk1OWNcdTk1OWRcdTk1OWVcdTk1OWZcdTk1YTBcdTk1YTFcdTk1YTJcdTk1YTNcdTk1YTRcdTk1YTVcdTk1YTZcdTk1YTdcdTk1YThcdTk1YTlcdTk1YWFcdWZmZmRcdTk1YWJcdTk1YWNcdTk1YWRcdTk1YWVcdTk1YWZcdTk1YjBcdTk1YjFcdTk1YjJcdTk1''@;'; put 'put ''YjNcdTk1YjRcdTk1YjVcdTk1YjZcdTk1YjdcdTk1YjhcdTk1YjlcdTk1YmFcdTk1YmJcdTk1YmNcdTk1YmRcdTk1YmVcdTk1YmZcdTk1YzBcdTk1YzFcdTk1YzJcdTk1YzNcdTk1YzRcdTk1YzVcdTk1YzZcdTk1YzdcdTk1YzhcdTk1YzlcdTk1Y2FcdTk1Y2JcdTY5MjRcdTY4ZjBcdTY5MGJc''@;'; put 'put ''dTY5MDFcdTY5NTdcdTY4ZTNcdTY5MTBcdTY5NzFcdTY5MzlcdTY5NjBcdTY5NDJcdTY5NWRcdTY5ODRcdTY5NmJcdTY5ODBcdTY5OThcdTY5NzhcdTY5MzRcdTY5Y2NcdTY5ODdcdTY5ODhcdTY5Y2VcdTY5ODlcdTY5NjZcdTY5NjNcdTY5NzlcdTY5OWJcdTY5YTdcdTY5YmJcdTY5YWJcdTY5''@;'; put 'put ''YWRcdTY5ZDRcdTY5YjFcdTY5YzFcdTY5Y2FcdTY5ZGZcdTY5OTVcdTY5ZTBcdTY5OGRcdTY5ZmZcdTZhMmZcdTY5ZWRcdTZhMTdcdTZhMThcdTZhNjVcdTY5ZjJcdTZhNDRcdTZhM2VcdTZhYTBcdTZhNTBcdTZhNWJcdTZhMzVcdTZhOGVcdTZhNzlcdTZhM2RcdTZhMjhcdTZhNThcdTZhN2Nc''@;'; put 'put ''dTZhOTFcdTZhOTBcdTZhYTlcdTZhOTdcdTZhYWJcdTczMzdcdTczNTJcdTZiODFcdTZiODJcdTZiODdcdTZiODRcdTZiOTJcdTZiOTNcdTZiOGRcdTZiOWFcdTZiOWJcdTZiYTFcdTZiYWFcdThmNmJcdThmNmRcdThmNzFcdThmNzJcdThmNzNcdThmNzVcdThmNzZcdThmNzhcdThmNzdcdThm''@;'; put 'put ''NzlcdThmN2FcdThmN2NcdThmN2VcdThmODFcdThmODJcdThmODRcdThmODdcdThmOGJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMzXVtFXV09NTk2NDgrRSxMWzU5NjQ4K0VdPUJbMjMz''@;'; put 'put ''XVtFXSk7Zm9yKEJbMjM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NWNjXHU5NWNkXHU5NWNlXHU5NWNmXHU5NWQwXHU5NWQxXHU5NWQyXHU5NWQzXHU5NWQ0XHU5NWQ1XHU5NWQ2XHU5NWQ3XHU5NWQ4XHU5NWQ5XHU5NWRhXHU5''@;'; put 'put ''NWRiXHU5NWRjXHU5NWRkXHU5NWRlXHU5NWRmXHU5NWUwXHU5NWUxXHU5NWUyXHU5NWUzXHU5NWU0XHU5NWU1XHU5NWU2XHU5NWU3XHU5NWVjXHU5NWZmXHU5NjA3XHU5NjEzXHU5NjE4XHU5NjFiXHU5NjFlXHU5NjIwXHU5NjIzXHU5NjI0XHU5NjI1XHU5NjI2XHU5NjI3XHU5NjI4XHU5NjI5''@;'; put 'put ''XHU5NjJiXHU5NjJjXHU5NjJkXHU5NjJmXHU5NjMwXHU5NjM3XHU5NjM4XHU5NjM5XHU5NjNhXHU5NjNlXHU5NjQxXHU5NjQzXHU5NjRhXHU5NjRlXHU5NjRmXHU5NjUxXHU5NjUyXHU5NjUzXHU5NjU2XHU5NjU3XHVmZmZkXHU5NjU4XHU5NjU5XHU5NjVhXHU5NjVjXHU5NjVkXHU5NjVlXHU5''@;'; put 'put ''NjYwXHU5NjYzXHU5NjY1XHU5NjY2XHU5NjZiXHU5NjZkXHU5NjZlXHU5NjZmXHU5NjcwXHU5NjcxXHU5NjczXHU5Njc4XHU5Njc5XHU5NjdhXHU5NjdiXHU5NjdjXHU5NjdkXHU5NjdlXHU5NjdmXHU5NjgwXHU5NjgxXHU5NjgyXHU5NjgzXHU5Njg0XHU5Njg3XHU5Njg5XHU5NjhhXHU4Zjhk''@;'; put 'put ''XHU4ZjhlXHU4ZjhmXHU4Zjk4XHU4ZjlhXHU4ZWNlXHU2MjBiXHU2MjE3XHU2MjFiXHU2MjFmXHU2MjIyXHU2MjIxXHU2MjI1XHU2MjI0XHU2MjJjXHU4MWU3XHU3NGVmXHU3NGY0XHU3NGZmXHU3NTBmXHU3NTExXHU3NTEzXHU2NTM0XHU2NWVlXHU2NWVmXHU2NWYwXHU2NjBhXHU2NjE5XHU2''@;'; put 'put ''NzcyXHU2NjAzXHU2NjE1XHU2NjAwXHU3MDg1XHU2NmY3XHU2NjFkXHU2NjM0XHU2NjMxXHU2NjM2XHU2NjM1XHU4MDA2XHU2NjVmXHU2NjU0XHU2NjQxXHU2NjRmXHU2NjU2XHU2NjYxXHU2NjU3XHU2Njc3XHU2Njg0XHU2NjhjXHU2NmE3XHU2NjlkXHU2NmJlXHU2NmRiXHU2NmRjXHU2NmU2''@;'; put 'put ''XHU2NmU5XHU4ZDMyXHU4ZDMzXHU4ZDM2XHU4ZDNiXHU4ZDNkXHU4ZDQwXHU4ZDQ1XHU4ZDQ2XHU4ZDQ4XHU4ZDQ5XHU4ZDQ3XHU4ZDRkXHU4ZDU1XHU4ZDU5XHU4OWM3XHU4OWNhXHU4OWNiXHU4OWNjXHU4OWNlXHU4OWNmXHU4OWQwXHU4OWQxXHU3MjZlXHU3MjlmXHU3MjVkXHU3MjY2XHU3''@;'; put 'put ''MjZmXHU3MjdlXHU3MjdmXHU3Mjg0XHU3MjhiXHU3MjhkXHU3MjhmXHU3MjkyXHU2MzA4XHU2MzMyXHU2M2IwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNF1bRV1dPTU5OTA0K0UsTFs1''@;'; put 'put ''OTkwNCtFXT1CWzIzNF1bRV0pO2ZvcihCWzIzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4Y1x1OTY4ZVx1OTY5MVx1OTY5Mlx1OTY5M1x1OTY5NVx1OTY5Nlx1OTY5YVx1OTY5Ylx1OTY5ZFx1OTY5ZVx1OTY5Zlx1OTZhMFx1''@;'; put 'put ''OTZhMVx1OTZhMlx1OTZhM1x1OTZhNFx1OTZhNVx1OTZhNlx1OTZhOFx1OTZhOVx1OTZhYVx1OTZhYlx1OTZhY1x1OTZhZFx1OTZhZVx1OTZhZlx1OTZiMVx1OTZiMlx1OTZiNFx1OTZiNVx1OTZiN1x1OTZiOFx1OTZiYVx1OTZiYlx1OTZiZlx1OTZjMlx1OTZjM1x1OTZjOFx1OTZjYVx1OTZj''@;'; put 'put ''Ylx1OTZkMFx1OTZkMVx1OTZkM1x1OTZkNFx1OTZkNlx1OTZkN1x1OTZkOFx1OTZkOVx1OTZkYVx1OTZkYlx1OTZkY1x1OTZkZFx1OTZkZVx1OTZkZlx1OTZlMVx1OTZlMlx1OTZlM1x1OTZlNFx1OTZlNVx1OTZlNlx1OTZlN1x1OTZlYlx1ZmZmZFx1OTZlY1x1OTZlZFx1OTZlZVx1OTZmMFx1''@;'; put 'put ''OTZmMVx1OTZmMlx1OTZmNFx1OTZmNVx1OTZmOFx1OTZmYVx1OTZmYlx1OTZmY1x1OTZmZFx1OTZmZlx1OTcwMlx1OTcwM1x1OTcwNVx1OTcwYVx1OTcwYlx1OTcwY1x1OTcxMFx1OTcxMVx1OTcxMlx1OTcxNFx1OTcxNVx1OTcxN1x1OTcxOFx1OTcxOVx1OTcxYVx1OTcxYlx1OTcxZFx1OTcx''@;'; put 'put ''Zlx1OTcyMFx1NjQzZlx1NjRkOFx1ODAwNFx1NmJlYVx1NmJmM1x1NmJmZFx1NmJmNVx1NmJmOVx1NmMwNVx1NmMwN1x1NmMwNlx1NmMwZFx1NmMxNVx1NmMxOFx1NmMxOVx1NmMxYVx1NmMyMVx1NmMyOVx1NmMyNFx1NmMyYVx1NmMzMlx1NjUzNVx1NjU1NVx1NjU2Ylx1NzI0ZFx1NzI1Mlx1''@;'; put 'put ''NzI1Nlx1NzIzMFx1ODY2Mlx1NTIxNlx1ODA5Zlx1ODA5Y1x1ODA5M1x1ODBiY1x1NjcwYVx1ODBiZFx1ODBiMVx1ODBhYlx1ODBhZFx1ODBiNFx1ODBiN1x1ODBlN1x1ODBlOFx1ODBlOVx1ODBlYVx1ODBkYlx1ODBjMlx1ODBjNFx1ODBkOVx1ODBjZFx1ODBkN1x1NjcxMFx1ODBkZFx1ODBl''@;'; put 'put ''Ylx1ODBmMVx1ODBmNFx1ODBlZFx1ODEwZFx1ODEwZVx1ODBmMlx1ODBmY1x1NjcxNVx1ODExMlx1OGM1YVx1ODEzNlx1ODExZVx1ODEyY1x1ODExOFx1ODEzMlx1ODE0OFx1ODE0Y1x1ODE1M1x1ODE3NFx1ODE1OVx1ODE1YVx1ODE3MVx1ODE2MFx1ODE2OVx1ODE3Y1x1ODE3ZFx1ODE2ZFx1''@;'; put 'put ''ODE2N1x1NTg0ZFx1NWFiNVx1ODE4OFx1ODE4Mlx1ODE5MVx1NmVkNVx1ODFhM1x1ODFhYVx1ODFjY1x1NjcyNlx1ODFjYVx1ODFiYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzVdW0Vd''@;'; put 'put ''XT02MDE2MCtFLExbNjAxNjArRV09QlsyMzVdW0VdKTtmb3IoQlsyMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3MjFcdTk3MjJcdTk3MjNcdTk3MjRcdTk3MjVcdTk3MjZcdTk3MjdcdTk3MjhcdTk3MjlcdTk3MmJcdTk3MmNc''@;'; put 'put ''dTk3MmVcdTk3MmZcdTk3MzFcdTk3MzNcdTk3MzRcdTk3MzVcdTk3MzZcdTk3MzdcdTk3M2FcdTk3M2JcdTk3M2NcdTk3M2RcdTk3M2ZcdTk3NDBcdTk3NDFcdTk3NDJcdTk3NDNcdTk3NDRcdTk3NDVcdTk3NDZcdTk3NDdcdTk3NDhcdTk3NDlcdTk3NGFcdTk3NGJcdTk3NGNcdTk3NGRcdTk3''@;'; put 'put ''NGVcdTk3NGZcdTk3NTBcdTk3NTFcdTk3NTRcdTk3NTVcdTk3NTdcdTk3NThcdTk3NWFcdTk3NWNcdTk3NWRcdTk3NWZcdTk3NjNcdTk3NjRcdTk3NjZcdTk3NjdcdTk3NjhcdTk3NmFcdTk3NmJcdTk3NmNcdTk3NmRcdTk3NmVcdTk3NmZcdTk3NzBcdTk3NzFcdWZmZmRcdTk3NzJcdTk3NzVc''@;'; put 'put ''dTk3NzdcdTk3NzhcdTk3NzlcdTk3N2FcdTk3N2JcdTk3N2RcdTk3N2VcdTk3N2ZcdTk3ODBcdTk3ODFcdTk3ODJcdTk3ODNcdTk3ODRcdTk3ODZcdTk3ODdcdTk3ODhcdTk3ODlcdTk3OGFcdTk3OGNcdTk3OGVcdTk3OGZcdTk3OTBcdTk3OTNcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTlcdTk3''@;'; put 'put ''OWFcdTk3OWJcdTk3OWNcdTk3OWRcdTgxYzFcdTgxYTZcdTZiMjRcdTZiMzdcdTZiMzlcdTZiNDNcdTZiNDZcdTZiNTlcdTk4ZDFcdTk4ZDJcdTk4ZDNcdTk4ZDVcdTk4ZDlcdTk4ZGFcdTZiYjNcdTVmNDBcdTZiYzJcdTg5ZjNcdTY1OTBcdTlmNTFcdTY1OTNcdTY1YmNcdTY1YzZcdTY1YzRc''@;'; put 'put ''dTY1YzNcdTY1Y2NcdTY1Y2VcdTY1ZDJcdTY1ZDZcdTcwODBcdTcwOWNcdTcwOTZcdTcwOWRcdTcwYmJcdTcwYzBcdTcwYjdcdTcwYWJcdTcwYjFcdTcwZThcdTcwY2FcdTcxMTBcdTcxMTNcdTcxMTZcdTcxMmZcdTcxMzFcdTcxNzNcdTcxNWNcdTcxNjhcdTcxNDVcdTcxNzJcdTcxNGFcdTcx''@;'; put 'put ''NzhcdTcxN2FcdTcxOThcdTcxYjNcdTcxYjVcdTcxYThcdTcxYTBcdTcxZTBcdTcxZDRcdTcxZTdcdTcxZjlcdTcyMWRcdTcyMjhcdTcwNmNcdTcxMThcdTcxNjZcdTcxYjlcdTYyM2VcdTYyM2RcdTYyNDNcdTYyNDhcdTYyNDlcdTc5M2JcdTc5NDBcdTc5NDZcdTc5NDlcdTc5NWJcdTc5NWNc''@;'; put 'put ''dTc5NTNcdTc5NWFcdTc5NjJcdTc5NTdcdTc5NjBcdTc5NmZcdTc5NjdcdTc5N2FcdTc5ODVcdTc5OGFcdTc5OWFcdTc5YTdcdTc5YjNcdTVmZDFcdTVmZDBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNl1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; put 'put ''KG1lW0JbMjM2XVtFXV09NjA0MTYrRSxMWzYwNDE2K0VdPUJbMjM2XVtFXSk7Zm9yKEJbMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NzllXHU5NzlmXHU5N2ExXHU5N2EyXHU5N2E0XHU5N2E1XHU5N2E2XHU5N2E3XHU5N2E4''@;'; put 'put ''XHU5N2E5XHU5N2FhXHU5N2FjXHU5N2FlXHU5N2IwXHU5N2IxXHU5N2IzXHU5N2I1XHU5N2I2XHU5N2I3XHU5N2I4XHU5N2I5XHU5N2JhXHU5N2JiXHU5N2JjXHU5N2JkXHU5N2JlXHU5N2JmXHU5N2MwXHU5N2MxXHU5N2MyXHU5N2MzXHU5N2M0XHU5N2M1XHU5N2M2XHU5N2M3XHU5N2M4XHU5''@;'; put 'put ''N2M5XHU5N2NhXHU5N2NiXHU5N2NjXHU5N2NkXHU5N2NlXHU5N2NmXHU5N2QwXHU5N2QxXHU5N2QyXHU5N2QzXHU5N2Q0XHU5N2Q1XHU5N2Q2XHU5N2Q3XHU5N2Q4XHU5N2Q5XHU5N2RhXHU5N2RiXHU5N2RjXHU5N2RkXHU5N2RlXHU5N2RmXHU5N2UwXHU5N2UxXHU5N2UyXHU5N2UzXHVmZmZk''@;'; put 'put ''XHU5N2U0XHU5N2U1XHU5N2U4XHU5N2VlXHU5N2VmXHU5N2YwXHU5N2YxXHU5N2YyXHU5N2Y0XHU5N2Y3XHU5N2Y4XHU5N2Y5XHU5N2ZhXHU5N2ZiXHU5N2ZjXHU5N2ZkXHU5N2ZlXHU5N2ZmXHU5ODAwXHU5ODAxXHU5ODAyXHU5ODAzXHU5ODA0XHU5ODA1XHU5ODA2XHU5ODA3XHU5ODA4XHU5''@;'; put 'put ''ODA5XHU5ODBhXHU5ODBiXHU5ODBjXHU5ODBkXHU5ODBlXHU2MDNjXHU2MDVkXHU2MDVhXHU2MDY3XHU2MDQxXHU2MDU5XHU2MDYzXHU2MGFiXHU2MTA2XHU2MTBkXHU2MTVkXHU2MWE5XHU2MTlkXHU2MWNiXHU2MWQxXHU2MjA2XHU4MDgwXHU4MDdmXHU2YzkzXHU2Y2Y2XHU2ZGZjXHU3N2Y2''@;'; put 'put ''XHU3N2Y4XHU3ODAwXHU3ODA5XHU3ODE3XHU3ODE4XHU3ODExXHU2NWFiXHU3ODJkXHU3ODFjXHU3ODFkXHU3ODM5XHU3ODNhXHU3ODNiXHU3ODFmXHU3ODNjXHU3ODI1XHU3ODJjXHU3ODIzXHU3ODI5XHU3ODRlXHU3ODZkXHU3ODU2XHU3ODU3XHU3ODI2XHU3ODUwXHU3ODQ3XHU3ODRjXHU3''@;'; put 'put ''ODZhXHU3ODliXHU3ODkzXHU3ODlhXHU3ODg3XHU3ODljXHU3OGExXHU3OGEzXHU3OGIyXHU3OGI5XHU3OGE1XHU3OGQ0XHU3OGQ5XHU3OGM5XHU3OGVjXHU3OGYyXHU3OTA1XHU3OGY0XHU3OTEzXHU3OTI0XHU3OTFlXHU3OTM0XHU5ZjliXHU5ZWY5XHU5ZWZiXHU5ZWZjXHU3NmYxXHU3NzA0''@;'; put 'put ''XHU3NzBkXHU3NmY5XHU3NzA3XHU3NzA4XHU3NzFhXHU3NzIyXHU3NzE5XHU3NzJkXHU3NzI2XHU3NzM1XHU3NzM4XHU3NzUwXHU3NzUxXHU3NzQ3XHU3NzQzXHU3NzVhXHU3NzY4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzddW0VdLmNo''@;'; put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzIzN11bRV1dPTYwNjcyK0UsTFs2MDY3MitFXT1CWzIzN11bRV0pO2ZvcihCWzIzOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTgwZlx1OTgxMFx1OTgxMVx1OTgxMlx1OTgxM1x1OTgxNFx1OTgx''@;'; put 'put ''NVx1OTgxNlx1OTgxN1x1OTgxOFx1OTgxOVx1OTgxYVx1OTgxYlx1OTgxY1x1OTgxZFx1OTgxZVx1OTgxZlx1OTgyMFx1OTgyMVx1OTgyMlx1OTgyM1x1OTgyNFx1OTgyNVx1OTgyNlx1OTgyN1x1OTgyOFx1OTgyOVx1OTgyYVx1OTgyYlx1OTgyY1x1OTgyZFx1OTgyZVx1OTgyZlx1OTgzMFx1''@;'; put 'put ''OTgzMVx1OTgzMlx1OTgzM1x1OTgzNFx1OTgzNVx1OTgzNlx1OTgzN1x1OTgzOFx1OTgzOVx1OTgzYVx1OTgzYlx1OTgzY1x1OTgzZFx1OTgzZVx1OTgzZlx1OTg0MFx1OTg0MVx1OTg0Mlx1OTg0M1x1OTg0NFx1OTg0NVx1OTg0Nlx1OTg0N1x1OTg0OFx1OTg0OVx1OTg0YVx1OTg0Ylx1OTg0''@;'; put 'put ''Y1x1OTg0ZFx1ZmZmZFx1OTg0ZVx1OTg0Zlx1OTg1MFx1OTg1MVx1OTg1Mlx1OTg1M1x1OTg1NFx1OTg1NVx1OTg1Nlx1OTg1N1x1OTg1OFx1OTg1OVx1OTg1YVx1OTg1Ylx1OTg1Y1x1OTg1ZFx1OTg1ZVx1OTg1Zlx1OTg2MFx1OTg2MVx1OTg2Mlx1OTg2M1x1OTg2NFx1OTg2NVx1OTg2Nlx1''@;'; put 'put ''OTg2N1x1OTg2OFx1OTg2OVx1OTg2YVx1OTg2Ylx1OTg2Y1x1OTg2ZFx1OTg2ZVx1Nzc2Mlx1Nzc2NVx1Nzc3Zlx1Nzc4ZFx1Nzc3ZFx1Nzc4MFx1Nzc4Y1x1Nzc5MVx1Nzc5Zlx1NzdhMFx1NzdiMFx1NzdiNVx1NzdiZFx1NzUzYVx1NzU0MFx1NzU0ZVx1NzU0Ylx1NzU0OFx1NzU1Ylx1NzU3''@;'; put 'put ''Mlx1NzU3OVx1NzU4M1x1N2Y1OFx1N2Y2MVx1N2Y1Zlx1OGE0OFx1N2Y2OFx1N2Y3NFx1N2Y3MVx1N2Y3OVx1N2Y4MVx1N2Y3ZVx1NzZjZFx1NzZlNVx1ODgzMlx1OTQ4NVx1OTQ4Nlx1OTQ4N1x1OTQ4Ylx1OTQ4YVx1OTQ4Y1x1OTQ4ZFx1OTQ4Zlx1OTQ5MFx1OTQ5NFx1OTQ5N1x1OTQ5NVx1''@;'; put 'put ''OTQ5YVx1OTQ5Ylx1OTQ5Y1x1OTRhM1x1OTRhNFx1OTRhYlx1OTRhYVx1OTRhZFx1OTRhY1x1OTRhZlx1OTRiMFx1OTRiMlx1OTRiNFx1OTRiNlx1OTRiN1x1OTRiOFx1OTRiOVx1OTRiYVx1OTRiY1x1OTRiZFx1OTRiZlx1OTRjNFx1OTRjOFx1OTRjOVx1OTRjYVx1OTRjYlx1OTRjY1x1OTRj''@;'; put 'put ''ZFx1OTRjZVx1OTRkMFx1OTRkMVx1OTRkMlx1OTRkNVx1OTRkNlx1OTRkN1x1OTRkOVx1OTRkOFx1OTRkYlx1OTRkZVx1OTRkZlx1OTRlMFx1OTRlMlx1OTRlNFx1OTRlNVx1OTRlN1x1OTRlOFx1OTRlYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzOF0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; put 'put ''PUJbMjM4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzhdW0VdXT02MDkyOCtFLExbNjA5MjgrRV09QlsyMzhdW0VdKTtmb3IoQlsyMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk4NmZcdTk4NzBcdTk4NzFcdTk4NzJcdTk4''@;'; put 'put ''NzNcdTk4NzRcdTk4OGJcdTk4OGVcdTk4OTJcdTk4OTVcdTk4OTlcdTk4YTNcdTk4YThcdTk4YTlcdTk4YWFcdTk4YWJcdTk4YWNcdTk4YWRcdTk4YWVcdTk4YWZcdTk4YjBcdTk4YjFcdTk4YjJcdTk4YjNcdTk4YjRcdTk4YjVcdTk4YjZcdTk4YjdcdTk4YjhcdTk4YjlcdTk4YmFcdTk4YmJc''@;'; put 'put ''dTk4YmNcdTk4YmRcdTk4YmVcdTk4YmZcdTk4YzBcdTk4YzFcdTk4YzJcdTk4YzNcdTk4YzRcdTk4YzVcdTk4YzZcdTk4YzdcdTk4YzhcdTk4YzlcdTk4Y2FcdTk4Y2JcdTk4Y2NcdTk4Y2RcdTk4Y2ZcdTk4ZDBcdTk4ZDRcdTk4ZDZcdTk4ZDdcdTk4ZGJcdTk4ZGNcdTk4ZGRcdTk4ZTBcdTk4''@;'; put 'put ''ZTFcdTk4ZTJcdTk4ZTNcdTk4ZTRcdWZmZmRcdTk4ZTVcdTk4ZTZcdTk4ZTlcdTk4ZWFcdTk4ZWJcdTk4ZWNcdTk4ZWRcdTk4ZWVcdTk4ZWZcdTk4ZjBcdTk4ZjFcdTk4ZjJcdTk4ZjNcdTk4ZjRcdTk4ZjVcdTk4ZjZcdTk4ZjdcdTk4ZjhcdTk4ZjlcdTk4ZmFcdTk4ZmJcdTk4ZmNcdTk4ZmRc''@;'; put 'put ''dTk4ZmVcdTk4ZmZcdTk5MDBcdTk5MDFcdTk5MDJcdTk5MDNcdTk5MDRcdTk5MDVcdTk5MDZcdTk5MDdcdTk0ZTlcdTk0ZWJcdTk0ZWVcdTk0ZWZcdTk0ZjNcdTk0ZjRcdTk0ZjVcdTk0ZjdcdTk0ZjlcdTk0ZmNcdTk0ZmRcdTk0ZmZcdTk1MDNcdTk1MDJcdTk1MDZcdTk1MDdcdTk1MDlcdTk1''@;'; put 'put ''MGFcdTk1MGRcdTk1MGVcdTk1MGZcdTk1MTJcdTk1MTNcdTk1MTRcdTk1MTVcdTk1MTZcdTk1MThcdTk1MWJcdTk1MWRcdTk1MWVcdTk1MWZcdTk1MjJcdTk1MmFcdTk1MmJcdTk1MjlcdTk1MmNcdTk1MzFcdTk1MzJcdTk1MzRcdTk1MzZcdTk1MzdcdTk1MzhcdTk1M2NcdTk1M2VcdTk1M2Zc''@;'; put 'put ''dTk1NDJcdTk1MzVcdTk1NDRcdTk1NDVcdTk1NDZcdTk1NDlcdTk1NGNcdTk1NGVcdTk1NGZcdTk1NTJcdTk1NTNcdTk1NTRcdTk1NTZcdTk1NTdcdTk1NThcdTk1NTlcdTk1NWJcdTk1NWVcdTk1NWZcdTk1NWRcdTk1NjFcdTk1NjJcdTk1NjRcdTk1NjVcdTk1NjZcdTk1NjdcdTk1NjhcdTk1''@;'; put 'put ''NjlcdTk1NmFcdTk1NmJcdTk1NmNcdTk1NmZcdTk1NzFcdTk1NzJcdTk1NzNcdTk1M2FcdTc3ZTdcdTc3ZWNcdTk2YzlcdTc5ZDVcdTc5ZWRcdTc5ZTNcdTc5ZWJcdTdhMDZcdTVkNDdcdTdhMDNcdTdhMDJcdTdhMWVcdTdhMTRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzldLmxlbmd0''@;'; put 'put ''aDsrK0UpNjU1MzMhPT1CWzIzOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM5XVtFXV09NjExODQrRSxMWzYxMTg0K0VdPUJbMjM5XVtFXSk7Zm9yKEJbMjQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5OTA4XHU5OTA5XHU5''@;'; put 'put ''OTBhXHU5OTBiXHU5OTBjXHU5OTBlXHU5OTBmXHU5OTExXHU5OTEyXHU5OTEzXHU5OTE0XHU5OTE1XHU5OTE2XHU5OTE3XHU5OTE4XHU5OTE5XHU5OTFhXHU5OTFiXHU5OTFjXHU5OTFkXHU5OTFlXHU5OTFmXHU5OTIwXHU5OTIxXHU5OTIyXHU5OTIzXHU5OTI0XHU5OTI1XHU5OTI2XHU5OTI3''@;'; put 'put ''XHU5OTI4XHU5OTI5XHU5OTJhXHU5OTJiXHU5OTJjXHU5OTJkXHU5OTJmXHU5OTMwXHU5OTMxXHU5OTMyXHU5OTMzXHU5OTM0XHU5OTM1XHU5OTM2XHU5OTM3XHU5OTM4XHU5OTM5XHU5OTNhXHU5OTNiXHU5OTNjXHU5OTNkXHU5OTNlXHU5OTNmXHU5OTQwXHU5OTQxXHU5OTQyXHU5OTQzXHU5''@;'; put 'put ''OTQ0XHU5OTQ1XHU5OTQ2XHU5OTQ3XHU5OTQ4XHU5OTQ5XHVmZmZkXHU5OTRhXHU5OTRiXHU5OTRjXHU5OTRkXHU5OTRlXHU5OTRmXHU5OTUwXHU5OTUxXHU5OTUyXHU5OTUzXHU5OTU2XHU5OTU3XHU5OTU4XHU5OTU5XHU5OTVhXHU5OTViXHU5OTVjXHU5OTVkXHU5OTVlXHU5OTVmXHU5OTYw''@;'; put 'put ''XHU5OTYxXHU5OTYyXHU5OTY0XHU5OTY2XHU5OTczXHU5OTc4XHU5OTc5XHU5OTdiXHU5OTdlXHU5OTgyXHU5OTgzXHU5OTg5XHU3YTM5XHU3YTM3XHU3YTUxXHU5ZWNmXHU5OWE1XHU3YTcwXHU3Njg4XHU3NjhlXHU3NjkzXHU3Njk5XHU3NmE0XHU3NGRlXHU3NGUwXHU3NTJjXHU5ZTIwXHU5''@;'; put 'put ''ZTIyXHU5ZTI4XHU5ZTI5XHU5ZTJhXHU5ZTJiXHU5ZTJjXHU5ZTMyXHU5ZTMxXHU5ZTM2XHU5ZTM4XHU5ZTM3XHU5ZTM5XHU5ZTNhXHU5ZTNlXHU5ZTQxXHU5ZTQyXHU5ZTQ0XHU5ZTQ2XHU5ZTQ3XHU5ZTQ4XHU5ZTQ5XHU5ZTRiXHU5ZTRjXHU5ZTRlXHU5ZTUxXHU5ZTU1XHU5ZTU3XHU5ZTVh''@;'; put 'put ''XHU5ZTViXHU5ZTVjXHU5ZTVlXHU5ZTYzXHU5ZTY2XHU5ZTY3XHU5ZTY4XHU5ZTY5XHU5ZTZhXHU5ZTZiXHU5ZTZjXHU5ZTcxXHU5ZTZkXHU5ZTczXHU3NTkyXHU3NTk0XHU3NTk2XHU3NWEwXHU3NTlkXHU3NWFjXHU3NWEzXHU3NWIzXHU3NWI0XHU3NWI4XHU3NWM0XHU3NWIxXHU3NWIwXHU3''@;'; put 'put ''NWMzXHU3NWMyXHU3NWQ2XHU3NWNkXHU3NWUzXHU3NWU4XHU3NWU2XHU3NWU0XHU3NWViXHU3NWU3XHU3NjAzXHU3NWYxXHU3NWZjXHU3NWZmXHU3NjEwXHU3NjAwXHU3NjA1XHU3NjBjXHU3NjE3XHU3NjBhXHU3NjI1XHU3NjE4XHU3NjE1XHU3NjE5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; put 'put ''PUJbMjQwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0MF1bRV1dPTYxNDQwK0UsTFs2MTQ0MCtFXT1CWzI0MF1bRV0pO2ZvcihCWzI0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''OTk4Y1x1OTk4ZVx1OTk5YVx1OTk5Ylx1OTk5Y1x1OTk5ZFx1OTk5ZVx1OTk5Zlx1OTlhMFx1OTlhMVx1OTlhMlx1OTlhM1x1OTlhNFx1OTlhNlx1OTlhN1x1OTlhOVx1OTlhYVx1OTlhYlx1OTlhY1x1OTlhZFx1OTlhZVx1OTlhZlx1OTliMFx1OTliMVx1OTliMlx1OTliM1x1OTliNFx1OTli''@;'; put 'put ''NVx1OTliNlx1OTliN1x1OTliOFx1OTliOVx1OTliYVx1OTliYlx1OTliY1x1OTliZFx1OTliZVx1OTliZlx1OTljMFx1OTljMVx1OTljMlx1OTljM1x1OTljNFx1OTljNVx1OTljNlx1OTljN1x1OTljOFx1OTljOVx1OTljYVx1OTljYlx1OTljY1x1OTljZFx1OTljZVx1OTljZlx1OTlkMFx1''@;'; put 'put ''OTlkMVx1OTlkMlx1OTlkM1x1OTlkNFx1OTlkNVx1OTlkNlx1OTlkN1x1OTlkOFx1ZmZmZFx1OTlkOVx1OTlkYVx1OTlkYlx1OTlkY1x1OTlkZFx1OTlkZVx1OTlkZlx1OTllMFx1OTllMVx1OTllMlx1OTllM1x1OTllNFx1OTllNVx1OTllNlx1OTllN1x1OTllOFx1OTllOVx1OTllYVx1OTll''@;'; put 'put ''Ylx1OTllY1x1OTllZFx1OTllZVx1OTllZlx1OTlmMFx1OTlmMVx1OTlmMlx1OTlmM1x1OTlmNFx1OTlmNVx1OTlmNlx1OTlmN1x1OTlmOFx1OTlmOVx1NzYxYlx1NzYzY1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyZFx1NzYzMFx1NzYzZlx1NzYzNVx1NzY0M1x1NzYzZVx1NzYzM1x1NzY0ZFx1''@;'; put 'put ''NzY1ZVx1NzY1NFx1NzY1Y1x1NzY1Nlx1NzY2Ylx1NzY2Zlx1N2ZjYVx1N2FlNlx1N2E3OFx1N2E3OVx1N2E4MFx1N2E4Nlx1N2E4OFx1N2E5NVx1N2FhNlx1N2FhMFx1N2FhY1x1N2FhOFx1N2FhZFx1N2FiM1x1ODg2NFx1ODg2OVx1ODg3Mlx1ODg3ZFx1ODg3Zlx1ODg4Mlx1ODhhMlx1ODhj''@;'; put 'put ''Nlx1ODhiN1x1ODhiY1x1ODhjOVx1ODhlMlx1ODhjZVx1ODhlM1x1ODhlNVx1ODhmMVx1ODkxYVx1ODhmY1x1ODhlOFx1ODhmZVx1ODhmMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxYlx1ODkwYVx1ODkzNFx1ODkyYlx1ODkzNlx1ODk0MVx1ODk2Nlx1ODk3Ylx1NzU4Ylx1ODBlNVx1NzZiMlx1''@;'; put 'put ''NzZiNFx1NzdkY1x1ODAxMlx1ODAxNFx1ODAxNlx1ODAxY1x1ODAyMFx1ODAyMlx1ODAyNVx1ODAyNlx1ODAyN1x1ODAyOVx1ODAyOFx1ODAzMVx1ODAwYlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0ZFx1ODA1Mlx1ODA2OVx1ODA3MVx1ODk4M1x1OTg3OFx1OTg4MFx1OTg4M1x1ZmZmZCIuc3Bs''@;'; put 'put ''aXQoIiIpLEU9MDtFIT1CWzI0MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDFdW0VdXT02MTY5NitFLExbNjE2OTYrRV09QlsyNDFdW0VdKTtmb3IoQlsyNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdTk5ZmFcdTk5ZmJcdTk5ZmNcdTk5ZmRcdTk5ZmVcdTk5ZmZcdTlhMDBcdTlhMDFcdTlhMDJcdTlhMDNcdTlhMDRcdTlhMDVcdTlhMDZcdTlhMDdcdTlhMDhcdTlhMDlcdTlhMGFcdTlhMGJcdTlhMGNcdTlhMGRcdTlhMGVcdTlhMGZcdTlhMTBcdTlhMTFcdTlhMTJcdTlh''@;'; put 'put ''MTNcdTlhMTRcdTlhMTVcdTlhMTZcdTlhMTdcdTlhMThcdTlhMTlcdTlhMWFcdTlhMWJcdTlhMWNcdTlhMWRcdTlhMWVcdTlhMWZcdTlhMjBcdTlhMjFcdTlhMjJcdTlhMjNcdTlhMjRcdTlhMjVcdTlhMjZcdTlhMjdcdTlhMjhcdTlhMjlcdTlhMmFcdTlhMmJcdTlhMmNcdTlhMmRcdTlhMmVc''@;'; put 'put ''dTlhMmZcdTlhMzBcdTlhMzFcdTlhMzJcdTlhMzNcdTlhMzRcdTlhMzVcdTlhMzZcdTlhMzdcdTlhMzhcdWZmZmRcdTlhMzlcdTlhM2FcdTlhM2JcdTlhM2NcdTlhM2RcdTlhM2VcdTlhM2ZcdTlhNDBcdTlhNDFcdTlhNDJcdTlhNDNcdTlhNDRcdTlhNDVcdTlhNDZcdTlhNDdcdTlhNDhcdTlh''@;'; put 'put ''NDlcdTlhNGFcdTlhNGJcdTlhNGNcdTlhNGRcdTlhNGVcdTlhNGZcdTlhNTBcdTlhNTFcdTlhNTJcdTlhNTNcdTlhNTRcdTlhNTVcdTlhNTZcdTlhNTdcdTlhNThcdTlhNTlcdTk4ODlcdTk4OGNcdTk4OGRcdTk4OGZcdTk4OTRcdTk4OWFcdTk4OWJcdTk4OWVcdTk4OWZcdTk4YTFcdTk4YTJc''@;'; put 'put ''dTk4YTVcdTk4YTZcdTg2NGRcdTg2NTRcdTg2NmNcdTg2NmVcdTg2N2ZcdTg2N2FcdTg2N2NcdTg2N2JcdTg2YThcdTg2OGRcdTg2OGJcdTg2YWNcdTg2OWRcdTg2YTdcdTg2YTNcdTg2YWFcdTg2OTNcdTg2YTlcdTg2YjZcdTg2YzRcdTg2YjVcdTg2Y2VcdTg2YjBcdTg2YmFcdTg2YjFcdTg2''@;'; put 'put ''YWZcdTg2YzlcdTg2Y2ZcdTg2YjRcdTg2ZTlcdTg2ZjFcdTg2ZjJcdTg2ZWRcdTg2ZjNcdTg2ZDBcdTg3MTNcdTg2ZGVcdTg2ZjRcdTg2ZGZcdTg2ZDhcdTg2ZDFcdTg3MDNcdTg3MDdcdTg2ZjhcdTg3MDhcdTg3MGFcdTg3MGRcdTg3MDlcdTg3MjNcdTg3M2JcdTg3MWVcdTg3MjVcdTg3MmVc''@;'; put 'put ''dTg3MWFcdTg3M2VcdTg3NDhcdTg3MzRcdTg3MzFcdTg3MjlcdTg3MzdcdTg3M2ZcdTg3ODJcdTg3MjJcdTg3N2RcdTg3N2VcdTg3N2JcdTg3NjBcdTg3NzBcdTg3NGNcdTg3NmVcdTg3OGJcdTg3NTNcdTg3NjNcdTg3N2NcdTg3NjRcdTg3NTlcdTg3NjVcdTg3OTNcdTg3YWZcdTg3YThcdTg3''@;'; put 'put ''ZDJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQyXVtFXV09NjE5NTIrRSxMWzYxOTUyK0VdPUJbMjQyXVtFXSk7Zm9yKEJbMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YTVhXHU5YTViXHU5YTVjXHU5YTVkXHU5YTVlXHU5YTVmXHU5YTYwXHU5YTYxXHU5YTYyXHU5YTYzXHU5YTY0XHU5YTY1XHU5YTY2XHU5YTY3XHU5YTY4XHU5YTY5XHU5YTZhXHU5YTZiXHU5YTcyXHU5YTgzXHU5YTg5XHU5YThkXHU5YThlXHU5''@;'; put 'put ''YTk0XHU5YTk1XHU5YTk5XHU5YWE2XHU5YWE5XHU5YWFhXHU5YWFiXHU5YWFjXHU5YWFkXHU5YWFlXHU5YWFmXHU5YWIyXHU5YWIzXHU5YWI0XHU5YWI1XHU5YWI5XHU5YWJiXHU5YWJkXHU5YWJlXHU5YWJmXHU5YWMzXHU5YWM0XHU5YWM2XHU5YWM3XHU5YWM4XHU5YWM5XHU5YWNhXHU5YWNk''@;'; put 'put ''XHU5YWNlXHU5YWNmXHU5YWQwXHU5YWQyXHU5YWQ0XHU5YWQ1XHU5YWQ2XHU5YWQ3XHU5YWQ5XHU5YWRhXHU5YWRiXHU5YWRjXHVmZmZkXHU5YWRkXHU5YWRlXHU5YWUwXHU5YWUyXHU5YWUzXHU5YWU0XHU5YWU1XHU5YWU3XHU5YWU4XHU5YWU5XHU5YWVhXHU5YWVjXHU5YWVlXHU5YWYwXHU5''@;'; put 'put ''YWYxXHU5YWYyXHU5YWYzXHU5YWY0XHU5YWY1XHU5YWY2XHU5YWY3XHU5YWY4XHU5YWZhXHU5YWZjXHU5YWZkXHU5YWZlXHU5YWZmXHU5YjAwXHU5YjAxXHU5YjAyXHU5YjA0XHU5YjA1XHU5YjA2XHU4N2M2XHU4Nzg4XHU4Nzg1XHU4N2FkXHU4Nzk3XHU4NzgzXHU4N2FiXHU4N2U1XHU4N2Fj''@;'; put 'put ''XHU4N2I1XHU4N2IzXHU4N2NiXHU4N2QzXHU4N2JkXHU4N2QxXHU4N2MwXHU4N2NhXHU4N2RiXHU4N2VhXHU4N2UwXHU4N2VlXHU4ODE2XHU4ODEzXHU4N2ZlXHU4ODBhXHU4ODFiXHU4ODIxXHU4ODM5XHU4ODNjXHU3ZjM2XHU3ZjQyXHU3ZjQ0XHU3ZjQ1XHU4MjEwXHU3YWZhXHU3YWZkXHU3''@;'; put 'put ''YjA4XHU3YjAzXHU3YjA0XHU3YjE1XHU3YjBhXHU3YjJiXHU3YjBmXHU3YjQ3XHU3YjM4XHU3YjJhXHU3YjE5XHU3YjJlXHU3YjMxXHU3YjIwXHU3YjI1XHU3YjI0XHU3YjMzXHU3YjNlXHU3YjFlXHU3YjU4XHU3YjVhXHU3YjQ1XHU3Yjc1XHU3YjRjXHU3YjVkXHU3YjYwXHU3YjZlXHU3Yjdi''@;'; put 'put ''XHU3YjYyXHU3YjcyXHU3YjcxXHU3YjkwXHU3YmE2XHU3YmE3XHU3YmI4XHU3YmFjXHU3YjlkXHU3YmE4XHU3Yjg1XHU3YmFhXHU3YjljXHU3YmEyXHU3YmFiXHU3YmI0XHU3YmQxXHU3YmMxXHU3YmNjXHU3YmRkXHU3YmRhXHU3YmU1XHU3YmU2XHU3YmVhXHU3YzBjXHU3YmZlXHU3YmZjXHU3''@;'; put 'put ''YzBmXHU3YzE2XHU3YzBiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0M11bRV1dPTYyMjA4K0UsTFs2MjIwOCtFXT1CWzI0M11bRV0pO2ZvcihCWzI0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWIwN1x1OWIwOVx1OWIwYVx1OWIwYlx1OWIwY1x1OWIwZFx1OWIwZVx1OWIxMFx1OWIxMVx1OWIxMlx1OWIxNFx1OWIxNVx1OWIxNlx1OWIxN1x1OWIxOFx1OWIxOVx1OWIxYVx1OWIxYlx1OWIxY1x1OWIxZFx1OWIxZVx1''@;'; put 'put ''OWIyMFx1OWIyMVx1OWIyMlx1OWIyNFx1OWIyNVx1OWIyNlx1OWIyN1x1OWIyOFx1OWIyOVx1OWIyYVx1OWIyYlx1OWIyY1x1OWIyZFx1OWIyZVx1OWIzMFx1OWIzMVx1OWIzM1x1OWIzNFx1OWIzNVx1OWIzNlx1OWIzN1x1OWIzOFx1OWIzOVx1OWIzYVx1OWIzZFx1OWIzZVx1OWIzZlx1OWI0''@;'; put 'put ''MFx1OWI0Nlx1OWI0YVx1OWI0Ylx1OWI0Y1x1OWI0ZVx1OWI1MFx1OWI1Mlx1OWI1M1x1OWI1NVx1OWI1Nlx1OWI1N1x1OWI1OFx1OWI1OVx1OWI1YVx1ZmZmZFx1OWI1Ylx1OWI1Y1x1OWI1ZFx1OWI1ZVx1OWI1Zlx1OWI2MFx1OWI2MVx1OWI2Mlx1OWI2M1x1OWI2NFx1OWI2NVx1OWI2Nlx1''@;'; put 'put ''OWI2N1x1OWI2OFx1OWI2OVx1OWI2YVx1OWI2Ylx1OWI2Y1x1OWI2ZFx1OWI2ZVx1OWI2Zlx1OWI3MFx1OWI3MVx1OWI3Mlx1OWI3M1x1OWI3NFx1OWI3NVx1OWI3Nlx1OWI3N1x1OWI3OFx1OWI3OVx1OWI3YVx1OWI3Ylx1N2MxZlx1N2MyYVx1N2MyNlx1N2MzOFx1N2M0MVx1N2M0MFx1ODFm''@;'; put 'put ''ZVx1ODIwMVx1ODIwMlx1ODIwNFx1ODFlY1x1ODg0NFx1ODIyMVx1ODIyMlx1ODIyM1x1ODIyZFx1ODIyZlx1ODIyOFx1ODIyYlx1ODIzOFx1ODIzYlx1ODIzM1x1ODIzNFx1ODIzZVx1ODI0NFx1ODI0OVx1ODI0Ylx1ODI0Zlx1ODI1YVx1ODI1Zlx1ODI2OFx1ODg3ZVx1ODg4NVx1ODg4OFx1''@;'; put 'put ''ODhkOFx1ODhkZlx1ODk1ZVx1N2Y5ZFx1N2Y5Zlx1N2ZhN1x1N2ZhZlx1N2ZiMFx1N2ZiMlx1N2M3Y1x1NjU0OVx1N2M5MVx1N2M5ZFx1N2M5Y1x1N2M5ZVx1N2NhMlx1N2NiMlx1N2NiY1x1N2NiZFx1N2NjMVx1N2NjN1x1N2NjY1x1N2NjZFx1N2NjOFx1N2NjNVx1N2NkN1x1N2NlOFx1ODI2''@;'; put 'put ''ZVx1NjZhOFx1N2ZiZlx1N2ZjZVx1N2ZkNVx1N2ZlNVx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZlZVx1N2ZmM1x1N2NmOFx1N2Q3N1x1N2RhNlx1N2RhZVx1N2U0N1x1N2U5Ylx1OWViOFx1OWViNFx1OGQ3M1x1OGQ4NFx1OGQ5NFx1OGQ5MVx1OGRiMVx1OGQ2N1x1OGQ2ZFx1OGM0N1x1OGM0OVx1''@;'; put 'put ''OTE0YVx1OTE1MFx1OTE0ZVx1OTE0Zlx1OTE2NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDRdW0VdXT02MjQ2NCtFLExbNjI0NjQrRV09QlsyNDRdW0VdKTtmb3IoQlsyNDVdPSJcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliN2NcdTliN2RcdTliN2VcdTliN2ZcdTliODBcdTliODFcdTliODJcdTliODNcdTliODRcdTliODVcdTliODZcdTliODdcdTliODhcdTliODlcdTliOGFcdTliOGJcdTliOGNcdTliOGRcdTliOGVc''@;'; put 'put ''dTliOGZcdTliOTBcdTliOTFcdTliOTJcdTliOTNcdTliOTRcdTliOTVcdTliOTZcdTliOTdcdTliOThcdTliOTlcdTliOWFcdTliOWJcdTliOWNcdTliOWRcdTliOWVcdTliOWZcdTliYTBcdTliYTFcdTliYTJcdTliYTNcdTliYTRcdTliYTVcdTliYTZcdTliYTdcdTliYThcdTliYTlcdTli''@;'; put 'put ''YWFcdTliYWJcdTliYWNcdTliYWRcdTliYWVcdTliYWZcdTliYjBcdTliYjFcdTliYjJcdTliYjNcdTliYjRcdTliYjVcdTliYjZcdTliYjdcdTliYjhcdTliYjlcdTliYmFcdWZmZmRcdTliYmJcdTliYmNcdTliYmRcdTliYmVcdTliYmZcdTliYzBcdTliYzFcdTliYzJcdTliYzNcdTliYzRc''@;'; put 'put ''dTliYzVcdTliYzZcdTliYzdcdTliYzhcdTliYzlcdTliY2FcdTliY2JcdTliY2NcdTliY2RcdTliY2VcdTliY2ZcdTliZDBcdTliZDFcdTliZDJcdTliZDNcdTliZDRcdTliZDVcdTliZDZcdTliZDdcdTliZDhcdTliZDlcdTliZGFcdTliZGJcdTkxNjJcdTkxNjFcdTkxNzBcdTkxNjlcdTkx''@;'; put 'put ''NmZcdTkxN2RcdTkxN2VcdTkxNzJcdTkxNzRcdTkxNzlcdTkxOGNcdTkxODVcdTkxOTBcdTkxOGRcdTkxOTFcdTkxYTJcdTkxYTNcdTkxYWFcdTkxYWRcdTkxYWVcdTkxYWZcdTkxYjVcdTkxYjRcdTkxYmFcdThjNTVcdTllN2VcdThkYjhcdThkZWJcdThlMDVcdThlNTlcdThlNjlcdThkYjVc''@;'; put 'put ''dThkYmZcdThkYmNcdThkYmFcdThkYzRcdThkZDZcdThkZDdcdThkZGFcdThkZGVcdThkY2VcdThkY2ZcdThkZGJcdThkYzZcdThkZWNcdThkZjdcdThkZjhcdThkZTNcdThkZjlcdThkZmJcdThkZTRcdThlMDlcdThkZmRcdThlMTRcdThlMWRcdThlMWZcdThlMmNcdThlMmVcdThlMjNcdThl''@;'; put 'put ''MmZcdThlM2FcdThlNDBcdThlMzlcdThlMzVcdThlM2RcdThlMzFcdThlNDlcdThlNDFcdThlNDJcdThlNTFcdThlNTJcdThlNGFcdThlNzBcdThlNzZcdThlN2NcdThlNmZcdThlNzRcdThlODVcdThlOGZcdThlOTRcdThlOTBcdThlOWNcdThlOWVcdThjNzhcdThjODJcdThjOGFcdThjODVc''@;'; put 'put ''dThjOThcdThjOTRcdTY1OWJcdTg5ZDZcdTg5ZGVcdTg5ZGFcdTg5ZGNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ1XVtFXV09NjI3MjArRSxMWzYyNzIwK0VdPUJbMjQ1XVtFXSk7Zm9y''@;'; put 'put ''KEJbMjQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YmRjXHU5YmRkXHU5YmRlXHU5YmRmXHU5YmUwXHU5YmUxXHU5YmUyXHU5YmUzXHU5YmU0XHU5YmU1XHU5YmU2XHU5YmU3XHU5YmU4XHU5YmU5XHU5YmVhXHU5YmViXHU5YmVj''@;'; put 'put ''XHU5YmVkXHU5YmVlXHU5YmVmXHU5YmYwXHU5YmYxXHU5YmYyXHU5YmYzXHU5YmY0XHU5YmY1XHU5YmY2XHU5YmY3XHU5YmY4XHU5YmY5XHU5YmZhXHU5YmZiXHU5YmZjXHU5YmZkXHU5YmZlXHU5YmZmXHU5YzAwXHU5YzAxXHU5YzAyXHU5YzAzXHU5YzA0XHU5YzA1XHU5YzA2XHU5YzA3XHU5''@;'; put 'put ''YzA4XHU5YzA5XHU5YzBhXHU5YzBiXHU5YzBjXHU5YzBkXHU5YzBlXHU5YzBmXHU5YzEwXHU5YzExXHU5YzEyXHU5YzEzXHU5YzE0XHU5YzE1XHU5YzE2XHU5YzE3XHU5YzE4XHU5YzE5XHU5YzFhXHVmZmZkXHU5YzFiXHU5YzFjXHU5YzFkXHU5YzFlXHU5YzFmXHU5YzIwXHU5YzIxXHU5YzIy''@;'; put 'put ''XHU5YzIzXHU5YzI0XHU5YzI1XHU5YzI2XHU5YzI3XHU5YzI4XHU5YzI5XHU5YzJhXHU5YzJiXHU5YzJjXHU5YzJkXHU5YzJlXHU5YzJmXHU5YzMwXHU5YzMxXHU5YzMyXHU5YzMzXHU5YzM0XHU5YzM1XHU5YzM2XHU5YzM3XHU5YzM4XHU5YzM5XHU5YzNhXHU5YzNiXHU4OWU1XHU4OWViXHU4''@;'; put 'put ''OWVmXHU4YTNlXHU4YjI2XHU5NzUzXHU5NmU5XHU5NmYzXHU5NmVmXHU5NzA2XHU5NzAxXHU5NzA4XHU5NzBmXHU5NzBlXHU5NzJhXHU5NzJkXHU5NzMwXHU5NzNlXHU5ZjgwXHU5ZjgzXHU5Zjg1XHU5Zjg2XHU5Zjg3XHU5Zjg4XHU5Zjg5XHU5ZjhhXHU5ZjhjXHU5ZWZlXHU5ZjBiXHU5ZjBk''@;'; put 'put ''XHU5NmI5XHU5NmJjXHU5NmJkXHU5NmNlXHU5NmQyXHU3N2JmXHU5NmUwXHU5MjhlXHU5MmFlXHU5MmM4XHU5MzNlXHU5MzZhXHU5M2NhXHU5MzhmXHU5NDNlXHU5NDZiXHU5YzdmXHU5YzgyXHU5Yzg1XHU5Yzg2XHU5Yzg3XHU5Yzg4XHU3YTIzXHU5YzhiXHU5YzhlXHU5YzkwXHU5YzkxXHU5''@;'; put 'put ''YzkyXHU5Yzk0XHU5Yzk1XHU5YzlhXHU5YzliXHU5YzllXHU5YzlmXHU5Y2EwXHU5Y2ExXHU5Y2EyXHU5Y2EzXHU5Y2E1XHU5Y2E2XHU5Y2E3XHU5Y2E4XHU5Y2E5XHU5Y2FiXHU5Y2FkXHU5Y2FlXHU5Y2IwXHU5Y2IxXHU5Y2IyXHU5Y2IzXHU5Y2I0XHU5Y2I1XHU5Y2I2XHU5Y2I3XHU5Y2Jh''@;'; put 'put ''XHU5Y2JiXHU5Y2JjXHU5Y2JkXHU5Y2M0XHU5Y2M1XHU5Y2M2XHU5Y2M3XHU5Y2NhXHU5Y2NiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Nl1bRV1dPTYyOTc2K0UsTFs2Mjk3NitFXT1C''@;'; put 'put ''WzI0Nl1bRV0pO2ZvcihCWzI0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWMzY1x1OWMzZFx1OWMzZVx1OWMzZlx1OWM0MFx1OWM0MVx1OWM0Mlx1OWM0M1x1OWM0NFx1OWM0NVx1OWM0Nlx1OWM0N1x1OWM0OFx1OWM0OVx1OWM0''@;'; put 'put ''YVx1OWM0Ylx1OWM0Y1x1OWM0ZFx1OWM0ZVx1OWM0Zlx1OWM1MFx1OWM1MVx1OWM1Mlx1OWM1M1x1OWM1NFx1OWM1NVx1OWM1Nlx1OWM1N1x1OWM1OFx1OWM1OVx1OWM1YVx1OWM1Ylx1OWM1Y1x1OWM1ZFx1OWM1ZVx1OWM1Zlx1OWM2MFx1OWM2MVx1OWM2Mlx1OWM2M1x1OWM2NFx1OWM2NVx1''@;'; put 'put ''OWM2Nlx1OWM2N1x1OWM2OFx1OWM2OVx1OWM2YVx1OWM2Ylx1OWM2Y1x1OWM2ZFx1OWM2ZVx1OWM2Zlx1OWM3MFx1OWM3MVx1OWM3Mlx1OWM3M1x1OWM3NFx1OWM3NVx1OWM3Nlx1OWM3N1x1OWM3OFx1OWM3OVx1OWM3YVx1ZmZmZFx1OWM3Ylx1OWM3ZFx1OWM3ZVx1OWM4MFx1OWM4M1x1OWM4''@;'; put 'put ''NFx1OWM4OVx1OWM4YVx1OWM4Y1x1OWM4Zlx1OWM5M1x1OWM5Nlx1OWM5N1x1OWM5OFx1OWM5OVx1OWM5ZFx1OWNhYVx1OWNhY1x1OWNhZlx1OWNiOVx1OWNiZVx1OWNiZlx1OWNjMFx1OWNjMVx1OWNjMlx1OWNjOFx1OWNjOVx1OWNkMVx1OWNkMlx1OWNkYVx1OWNkYlx1OWNlMFx1OWNlMVx1''@;'; put 'put ''OWNjY1x1OWNjZFx1OWNjZVx1OWNjZlx1OWNkMFx1OWNkM1x1OWNkNFx1OWNkNVx1OWNkN1x1OWNkOFx1OWNkOVx1OWNkY1x1OWNkZFx1OWNkZlx1OWNlMlx1OTc3Y1x1OTc4NVx1OTc5MVx1OTc5Mlx1OTc5NFx1OTdhZlx1OTdhYlx1OTdhM1x1OTdiMlx1OTdiNFx1OWFiMVx1OWFiMFx1OWFi''@;'; put 'put ''N1x1OWU1OFx1OWFiNlx1OWFiYVx1OWFiY1x1OWFjMVx1OWFjMFx1OWFjNVx1OWFjMlx1OWFjYlx1OWFjY1x1OWFkMVx1OWI0NVx1OWI0M1x1OWI0N1x1OWI0OVx1OWI0OFx1OWI0ZFx1OWI1MVx1OThlOFx1OTkwZFx1OTkyZVx1OTk1NVx1OTk1NFx1OWFkZlx1OWFlMVx1OWFlNlx1OWFlZlx1''@;'; put 'put ''OWFlYlx1OWFmYlx1OWFlZFx1OWFmOVx1OWIwOFx1OWIwZlx1OWIxM1x1OWIxZlx1OWIyM1x1OWViZFx1OWViZVx1N2UzYlx1OWU4Mlx1OWU4N1x1OWU4OFx1OWU4Ylx1OWU5Mlx1OTNkNlx1OWU5ZFx1OWU5Zlx1OWVkYlx1OWVkY1x1OWVkZFx1OWVlMFx1OWVkZlx1OWVlMlx1OWVlOVx1OWVl''@;'; put 'put ''N1x1OWVlNVx1OWVlYVx1OWVlZlx1OWYyMlx1OWYyY1x1OWYyZlx1OWYzOVx1OWYzN1x1OWYzZFx1OWYzZVx1OWY0NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDddW0VdXT02MzIzMitF''@;'; put 'put ''LExbNjMyMzIrRV09QlsyNDddW0VdKTtmb3IoQlsyNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljZTNcdTljZTRcdTljZTVcdTljZTZcdTljZTdcdTljZThcdTljZTlcdTljZWFcdTljZWJcdTljZWNcdTljZWRcdTljZWVcdTlj''@;'; put 'put ''ZWZcdTljZjBcdTljZjFcdTljZjJcdTljZjNcdTljZjRcdTljZjVcdTljZjZcdTljZjdcdTljZjhcdTljZjlcdTljZmFcdTljZmJcdTljZmNcdTljZmRcdTljZmVcdTljZmZcdTlkMDBcdTlkMDFcdTlkMDJcdTlkMDNcdTlkMDRcdTlkMDVcdTlkMDZcdTlkMDdcdTlkMDhcdTlkMDlcdTlkMGFc''@;'; put 'put ''dTlkMGJcdTlkMGNcdTlkMGRcdTlkMGVcdTlkMGZcdTlkMTBcdTlkMTFcdTlkMTJcdTlkMTNcdTlkMTRcdTlkMTVcdTlkMTZcdTlkMTdcdTlkMThcdTlkMTlcdTlkMWFcdTlkMWJcdTlkMWNcdTlkMWRcdTlkMWVcdTlkMWZcdTlkMjBcdTlkMjFcdWZmZmRcdTlkMjJcdTlkMjNcdTlkMjRcdTlk''@;'; put 'put ''MjVcdTlkMjZcdTlkMjdcdTlkMjhcdTlkMjlcdTlkMmFcdTlkMmJcdTlkMmNcdTlkMmRcdTlkMmVcdTlkMmZcdTlkMzBcdTlkMzFcdTlkMzJcdTlkMzNcdTlkMzRcdTlkMzVcdTlkMzZcdTlkMzdcdTlkMzhcdTlkMzlcdTlkM2FcdTlkM2JcdTlkM2NcdTlkM2RcdTlkM2VcdTlkM2ZcdTlkNDBc''@;'; put 'put ''dTlkNDFcdTlkNDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ4''@;'; put 'put ''XVtFXV09NjM0ODgrRSxMWzYzNDg4K0VdPUJbMjQ4XVtFXSk7Zm9yKEJbMjQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDQzXHU5ZDQ0XHU5ZDQ1XHU5ZDQ2XHU5ZDQ3XHU5ZDQ4XHU5ZDQ5XHU5ZDRhXHU5ZDRiXHU5ZDRjXHU5''@;'; put 'put ''ZDRkXHU5ZDRlXHU5ZDRmXHU5ZDUwXHU5ZDUxXHU5ZDUyXHU5ZDUzXHU5ZDU0XHU5ZDU1XHU5ZDU2XHU5ZDU3XHU5ZDU4XHU5ZDU5XHU5ZDVhXHU5ZDViXHU5ZDVjXHU5ZDVkXHU5ZDVlXHU5ZDVmXHU5ZDYwXHU5ZDYxXHU5ZDYyXHU5ZDYzXHU5ZDY0XHU5ZDY1XHU5ZDY2XHU5ZDY3XHU5ZDY4''@;'; put 'put ''XHU5ZDY5XHU5ZDZhXHU5ZDZiXHU5ZDZjXHU5ZDZkXHU5ZDZlXHU5ZDZmXHU5ZDcwXHU5ZDcxXHU5ZDcyXHU5ZDczXHU5ZDc0XHU5ZDc1XHU5ZDc2XHU5ZDc3XHU5ZDc4XHU5ZDc5XHU5ZDdhXHU5ZDdiXHU5ZDdjXHU5ZDdkXHU5ZDdlXHU5ZDdmXHU5ZDgwXHU5ZDgxXHVmZmZkXHU5ZDgyXHU5''@;'; put 'put ''ZDgzXHU5ZDg0XHU5ZDg1XHU5ZDg2XHU5ZDg3XHU5ZDg4XHU5ZDg5XHU5ZDhhXHU5ZDhiXHU5ZDhjXHU5ZDhkXHU5ZDhlXHU5ZDhmXHU5ZDkwXHU5ZDkxXHU5ZDkyXHU5ZDkzXHU5ZDk0XHU5ZDk1XHU5ZDk2XHU5ZDk3XHU5ZDk4XHU5ZDk5XHU5ZDlhXHU5ZDliXHU5ZDljXHU5ZDlkXHU5ZDll''@;'; put 'put ''XHU5ZDlmXHU5ZGEwXHU5ZGExXHU5ZGEyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDldW0VdLmNoYXJDb2RlQXQo''@;'; put 'put ''MCkmJihtZVtCWzI0OV1bRV1dPTYzNzQ0K0UsTFs2Mzc0NCtFXT1CWzI0OV1bRV0pO2ZvcihCWzI1MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWRhM1x1OWRhNFx1OWRhNVx1OWRhNlx1OWRhN1x1OWRhOFx1OWRhOVx1OWRhYVx1''@;'; put 'put ''OWRhYlx1OWRhY1x1OWRhZFx1OWRhZVx1OWRhZlx1OWRiMFx1OWRiMVx1OWRiMlx1OWRiM1x1OWRiNFx1OWRiNVx1OWRiNlx1OWRiN1x1OWRiOFx1OWRiOVx1OWRiYVx1OWRiYlx1OWRiY1x1OWRiZFx1OWRiZVx1OWRiZlx1OWRjMFx1OWRjMVx1OWRjMlx1OWRjM1x1OWRjNFx1OWRjNVx1OWRj''@;'; put 'put ''Nlx1OWRjN1x1OWRjOFx1OWRjOVx1OWRjYVx1OWRjYlx1OWRjY1x1OWRjZFx1OWRjZVx1OWRjZlx1OWRkMFx1OWRkMVx1OWRkMlx1OWRkM1x1OWRkNFx1OWRkNVx1OWRkNlx1OWRkN1x1OWRkOFx1OWRkOVx1OWRkYVx1OWRkYlx1OWRkY1x1OWRkZFx1OWRkZVx1OWRkZlx1OWRlMFx1OWRlMVx1''@;'; put 'put ''ZmZmZFx1OWRlMlx1OWRlM1x1OWRlNFx1OWRlNVx1OWRlNlx1OWRlN1x1OWRlOFx1OWRlOVx1OWRlYVx1OWRlYlx1OWRlY1x1OWRlZFx1OWRlZVx1OWRlZlx1OWRmMFx1OWRmMVx1OWRmMlx1OWRmM1x1OWRmNFx1OWRmNVx1OWRmNlx1OWRmN1x1OWRmOFx1OWRmOVx1OWRmYVx1OWRmYlx1OWRm''@;'; put 'put ''Y1x1OWRmZFx1OWRmZVx1OWRmZlx1OWUwMFx1OWUwMVx1OWUwMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUwXVtF''@;'; put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTBdW0VdXT02NGUzK0UsTFs2NGUzK0VdPUJbMjUwXVtFXSk7Zm9yKEJbMjUxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZTAzXHU5ZTA0XHU5ZTA1XHU5ZTA2XHU5ZTA3XHU5ZTA4XHU5''@;'; put 'put ''ZTA5XHU5ZTBhXHU5ZTBiXHU5ZTBjXHU5ZTBkXHU5ZTBlXHU5ZTBmXHU5ZTEwXHU5ZTExXHU5ZTEyXHU5ZTEzXHU5ZTE0XHU5ZTE1XHU5ZTE2XHU5ZTE3XHU5ZTE4XHU5ZTE5XHU5ZTFhXHU5ZTFiXHU5ZTFjXHU5ZTFkXHU5ZTFlXHU5ZTI0XHU5ZTI3XHU5ZTJlXHU5ZTMwXHU5ZTM0XHU5ZTNi''@;'; put 'put ''XHU5ZTNjXHU5ZTQwXHU5ZTRkXHU5ZTUwXHU5ZTUyXHU5ZTUzXHU5ZTU0XHU5ZTU2XHU5ZTU5XHU5ZTVkXHU5ZTVmXHU5ZTYwXHU5ZTYxXHU5ZTYyXHU5ZTY1XHU5ZTZlXHU5ZTZmXHU5ZTcyXHU5ZTc0XHU5ZTc1XHU5ZTc2XHU5ZTc3XHU5ZTc4XHU5ZTc5XHU5ZTdhXHU5ZTdiXHU5ZTdjXHU5''@;'; put 'put ''ZTdkXHU5ZTgwXHVmZmZkXHU5ZTgxXHU5ZTgzXHU5ZTg0XHU5ZTg1XHU5ZTg2XHU5ZTg5XHU5ZThhXHU5ZThjXHU5ZThkXHU5ZThlXHU5ZThmXHU5ZTkwXHU5ZTkxXHU5ZTk0XHU5ZTk1XHU5ZTk2XHU5ZTk3XHU5ZTk4XHU5ZTk5XHU5ZTlhXHU5ZTliXHU5ZTljXHU5ZTllXHU5ZWEwXHU5ZWEx''@;'; put 'put ''XHU5ZWEyXHU5ZWEzXHU5ZWE0XHU5ZWE1XHU5ZWE3XHU5ZWE4XHU5ZWE5XHU5ZWFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUxXS5sZW5ndGg7KytFKTY1NTMz''@;'; put 'put ''IT09QlsyNTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1MV1bRV1dPTY0MjU2K0UsTFs2NDI1NitFXT1CWzI1MV1bRV0pO2ZvcihCWzI1Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWVhYlx1OWVhY1x1OWVhZFx1OWVhZVx1''@;'; put 'put ''OWVhZlx1OWViMFx1OWViMVx1OWViMlx1OWViM1x1OWViNVx1OWViNlx1OWViN1x1OWViOVx1OWViYVx1OWViY1x1OWViZlx1OWVjMFx1OWVjMVx1OWVjMlx1OWVjM1x1OWVjNVx1OWVjNlx1OWVjN1x1OWVjOFx1OWVjYVx1OWVjYlx1OWVjY1x1OWVkMFx1OWVkMlx1OWVkM1x1OWVkNVx1OWVk''@;'; put 'put ''Nlx1OWVkN1x1OWVkOVx1OWVkYVx1OWVkZVx1OWVlMVx1OWVlM1x1OWVlNFx1OWVlNlx1OWVlOFx1OWVlYlx1OWVlY1x1OWVlZFx1OWVlZVx1OWVmMFx1OWVmMVx1OWVmMlx1OWVmM1x1OWVmNFx1OWVmNVx1OWVmNlx1OWVmN1x1OWVmOFx1OWVmYVx1OWVmZFx1OWVmZlx1OWYwMFx1OWYwMVx1''@;'; put 'put ''OWYwMlx1OWYwM1x1OWYwNFx1OWYwNVx1ZmZmZFx1OWYwNlx1OWYwN1x1OWYwOFx1OWYwOVx1OWYwYVx1OWYwY1x1OWYwZlx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNVx1OWYxNlx1OWYxOFx1OWYxYVx1OWYxYlx1OWYxY1x1OWYxZFx1OWYxZVx1OWYxZlx1OWYyMVx1OWYyM1x1OWYyNFx1OWYy''@;'; put 'put ''NVx1OWYyNlx1OWYyN1x1OWYyOFx1OWYyOVx1OWYyYVx1OWYyYlx1OWYyZFx1OWYyZVx1OWYzMFx1OWYzMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1Ml0ubGVu''@;'; put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMjUyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTJdW0VdXT02NDUxMitFLExbNjQ1MTIrRV09QlsyNTJdW0VdKTtmb3IoQlsyNTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlmMzJcdTlmMzNc''@;'; put 'put ''dTlmMzRcdTlmMzVcdTlmMzZcdTlmMzhcdTlmM2FcdTlmM2NcdTlmM2ZcdTlmNDBcdTlmNDFcdTlmNDJcdTlmNDNcdTlmNDVcdTlmNDZcdTlmNDdcdTlmNDhcdTlmNDlcdTlmNGFcdTlmNGJcdTlmNGNcdTlmNGRcdTlmNGVcdTlmNGZcdTlmNTJcdTlmNTNcdTlmNTRcdTlmNTVcdTlmNTZcdTlm''@;'; put 'put ''NTdcdTlmNThcdTlmNTlcdTlmNWFcdTlmNWJcdTlmNWNcdTlmNWRcdTlmNWVcdTlmNWZcdTlmNjBcdTlmNjFcdTlmNjJcdTlmNjNcdTlmNjRcdTlmNjVcdTlmNjZcdTlmNjdcdTlmNjhcdTlmNjlcdTlmNmFcdTlmNmJcdTlmNmNcdTlmNmRcdTlmNmVcdTlmNmZcdTlmNzBcdTlmNzFcdTlmNzJc''@;'; put 'put ''dTlmNzNcdTlmNzRcdTlmNzVcdTlmNzZcdTlmNzdcdTlmNzhcdWZmZmRcdTlmNzlcdTlmN2FcdTlmN2JcdTlmN2NcdTlmN2RcdTlmN2VcdTlmODFcdTlmODJcdTlmOGRcdTlmOGVcdTlmOGZcdTlmOTBcdTlmOTFcdTlmOTJcdTlmOTNcdTlmOTRcdTlmOTVcdTlmOTZcdTlmOTdcdTlmOThcdTlm''@;'; put 'put ''OWNcdTlmOWRcdTlmOWVcdTlmYTFcdTlmYTJcdTlmYTNcdTlmYTRcdTlmYTVcdWY5MmNcdWY5NzlcdWY5OTVcdWY5ZTdcdWY5ZjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; put 'put ''RSE9QlsyNTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUzXVtFXV09NjQ3NjgrRSxMWzY0NzY4K0VdPUJbMjUzXVtFXSk7Zm9yKEJbMjU0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmYTBjXHVmYTBkXHVmYTBlXHVmYTBmXHVmYTExXHVmYTEzXHVmYTE0XHVmYTE4XHVmYTFmXHVmYTIwXHVmYTIxXHVmYTIzXHVmYTI0XHVmYTI3XHVmYTI4XHVmYTI5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5z''@;'; put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMjU0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1NF1bRV1dPTY1MDI0K0UsTFs2NTAyNCtFXT1CWzI1NF1bRV0pO3JldHVybntlbmM6bWUsZGVjOkx9fSgpLEplWzk0OV09ZnVuY3Rpb24oKXt2YXIgRSxMPVtd''@;'; put 'put ''LG1lPXt9LEI9W107Zm9yKEJbMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7''@;'; put 'put ''PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMF1bRV1dPTArRSxMWzArRV09QlswXVtFXSk7Zm9yKEJbMTI5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhYzAyXHVhYzAzXHVhYzA1XHVhYzA2XHVhYzBiXHVhYzBjXHVhYzBkXHVhYzBlXHVhYzBmXHVhYzE4XHVhYzFlXHVhYzFmXHVhYzIxXHVhYzIyXHVhYzIzXHVhYzI1XHVhYzI2XHVhYzI3XHVhYzI4XHVhYzI5XHVhYzJhXHVhYzJiXHVhYzJlXHVhYzMy''@;'; put 'put ''XHVhYzMzXHVhYzM0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhYzM1XHVhYzM2XHVhYzM3XHVhYzNhXHVhYzNiXHVhYzNkXHVhYzNlXHVhYzNmXHVhYzQxXHVhYzQyXHVhYzQzXHVhYzQ0XHVhYzQ1XHVhYzQ2XHVhYzQ3XHVhYzQ4XHVhYzQ5XHVhYzRhXHVhYzRjXHVh''@;'; put 'put ''YzRlXHVhYzRmXHVhYzUwXHVhYzUxXHVhYzUyXHVhYzUzXHVhYzU1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhYzU2XHVhYzU3XHVhYzU5XHVhYzVhXHVhYzViXHVhYzVkXHVhYzVlXHVhYzVmXHVhYzYwXHVhYzYxXHVhYzYyXHVhYzYzXHVhYzY0XHVhYzY1XHVhYzY2''@;'; put 'put ''XHVhYzY3XHVhYzY4XHVhYzY5XHVhYzZhXHVhYzZiXHVhYzZjXHVhYzZkXHVhYzZlXHVhYzZmXHVhYzcyXHVhYzczXHVhYzc1XHVhYzc2XHVhYzc5XHVhYzdiXHVhYzdjXHVhYzdkXHVhYzdlXHVhYzdmXHVhYzgyXHVhYzg3XHVhYzg4XHVhYzhkXHVhYzhlXHVhYzhmXHVhYzkxXHVhYzkyXHVh''@;'; put 'put ''YzkzXHVhYzk1XHVhYzk2XHVhYzk3XHVhYzk4XHVhYzk5XHVhYzlhXHVhYzliXHVhYzllXHVhY2EyXHVhY2EzXHVhY2E0XHVhY2E1XHVhY2E2XHVhY2E3XHVhY2FiXHVhY2FkXHVhY2FlXHVhY2IxXHVhY2IyXHVhY2IzXHVhY2I0XHVhY2I1XHVhY2I2XHVhY2I3XHVhY2JhXHVhY2JlXHVhY2Jm''@;'; put 'put ''XHVhY2MwXHVhY2MyXHVhY2MzXHVhY2M1XHVhY2M2XHVhY2M3XHVhY2M5XHVhY2NhXHVhY2NiXHVhY2NkXHVhY2NlXHVhY2NmXHVhY2QwXHVhY2QxXHVhY2QyXHVhY2QzXHVhY2Q0XHVhY2Q2XHVhY2Q4XHVhY2Q5XHVhY2RhXHVhY2RiXHVhY2RjXHVhY2RkXHVhY2RlXHVhY2RmXHVhY2UyXHVh''@;'; put 'put ''Y2UzXHVhY2U1XHVhY2U2XHVhY2U5XHVhY2ViXHVhY2VkXHVhY2VlXHVhY2YyXHVhY2Y0XHVhY2Y3XHVhY2Y4XHVhY2Y5XHVhY2ZhXHVhY2ZiXHVhY2ZlXHVhY2ZmXHVhZDAxXHVhZDAyXHVhZDAzXHVhZDA1XHVhZDA3XHVhZDA4XHVhZDA5XHVhZDBhXHVhZDBiXHVhZDBlXHVhZDEwXHVhZDEy''@;'; put 'put ''XHVhZDEzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTI5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEyOV1bRV1dPTMzMDI0K0UsTFszMzAyNCtFXT1CWzEyOV1bRV0pO2ZvcihCWzEzMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQxNFx1YWQxNVx1YWQxNlx1YWQxN1x1YWQxOVx1YWQxYVx1YWQxYlx1YWQxZFx1YWQxZVx1YWQxZlx1YWQyMVx1YWQyMlx1YWQyM1x1YWQyNFx1YWQyNVx1YWQyNlx1YWQyN1x1YWQyOFx1YWQyYVx1YWQyYlx1YWQyZVx1YWQy''@;'; put 'put ''Zlx1YWQzMFx1YWQzMVx1YWQzMlx1YWQzM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQzNlx1YWQzN1x1YWQzOVx1YWQzYVx1YWQzYlx1YWQzZFx1YWQzZVx1YWQzZlx1YWQ0MFx1YWQ0MVx1YWQ0Mlx1YWQ0M1x1YWQ0Nlx1YWQ0OFx1YWQ0YVx1YWQ0Ylx1YWQ0Y1x1''@;'; put 'put ''YWQ0ZFx1YWQ0ZVx1YWQ0Zlx1YWQ1MVx1YWQ1Mlx1YWQ1M1x1YWQ1NVx1YWQ1Nlx1YWQ1N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWQ1OVx1YWQ1YVx1YWQ1Ylx1YWQ1Y1x1YWQ1ZFx1YWQ1ZVx1YWQ1Zlx1YWQ2MFx1YWQ2Mlx1YWQ2NFx1YWQ2NVx1YWQ2Nlx1YWQ2''@;'; put 'put ''N1x1YWQ2OFx1YWQ2OVx1YWQ2YVx1YWQ2Ylx1YWQ2ZVx1YWQ2Zlx1YWQ3MVx1YWQ3Mlx1YWQ3N1x1YWQ3OFx1YWQ3OVx1YWQ3YVx1YWQ3ZVx1YWQ4MFx1YWQ4M1x1YWQ4NFx1YWQ4NVx1YWQ4Nlx1YWQ4N1x1YWQ4YVx1YWQ4Ylx1YWQ4ZFx1YWQ4ZVx1YWQ4Zlx1YWQ5MVx1YWQ5Mlx1YWQ5M1x1''@;'; put 'put ''YWQ5NFx1YWQ5NVx1YWQ5Nlx1YWQ5N1x1YWQ5OFx1YWQ5OVx1YWQ5YVx1YWQ5Ylx1YWQ5ZVx1YWQ5Zlx1YWRhMFx1YWRhMVx1YWRhMlx1YWRhM1x1YWRhNVx1YWRhNlx1YWRhN1x1YWRhOFx1YWRhOVx1YWRhYVx1YWRhYlx1YWRhY1x1YWRhZFx1YWRhZVx1YWRhZlx1YWRiMFx1YWRiMVx1YWRi''@;'; put 'put ''Mlx1YWRiM1x1YWRiNFx1YWRiNVx1YWRiNlx1YWRiOFx1YWRiOVx1YWRiYVx1YWRiYlx1YWRiY1x1YWRiZFx1YWRiZVx1YWRiZlx1YWRjMlx1YWRjM1x1YWRjNVx1YWRjNlx1YWRjN1x1YWRjOVx1YWRjYVx1YWRjYlx1YWRjY1x1YWRjZFx1YWRjZVx1YWRjZlx1YWRkMlx1YWRkNFx1YWRkNVx1''@;'; put 'put ''YWRkNlx1YWRkN1x1YWRkOFx1YWRkOVx1YWRkYVx1YWRkYlx1YWRkZFx1YWRkZVx1YWRkZlx1YWRlMVx1YWRlMlx1YWRlM1x1YWRlNVx1YWRlNlx1YWRlN1x1YWRlOFx1YWRlOVx1YWRlYVx1YWRlYlx1YWRlY1x1YWRlZFx1YWRlZVx1YWRlZlx1YWRmMFx1YWRmMVx1YWRmMlx1YWRmM1x1YWRm''@;'; put 'put ''NFx1YWRmNVx1YWRmNlx1YWRmN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzBdW0VdXT0zMzI4MCtFLExbMzMyODArRV09QlsxMzBdW0VdKTtmb3IoQlsxMzFdPSJcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFkZmFcdWFkZmJcdWFkZmRcdWFkZmVcdWFlMDJcdWFlMDNcdWFlMDRcdWFlMDVcdWFlMDZcdWFlMDdcdWFlMGFcdWFlMGNcdWFlMGVcdWFlMGZcdWFlMTBcdWFlMTFcdWFlMTJcdWFlMTNcdWFlMTVcdWFl''@;'; put 'put ''MTZcdWFlMTdcdWFlMThcdWFlMTlcdWFlMWFcdWFlMWJcdWFlMWNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFlMWRcdWFlMWVcdWFlMWZcdWFlMjBcdWFlMjFcdWFlMjJcdWFlMjNcdWFlMjRcdWFlMjVcdWFlMjZcdWFlMjdcdWFlMjhcdWFlMjlcdWFlMmFcdWFlMmJc''@;'; put 'put ''dWFlMmNcdWFlMmRcdWFlMmVcdWFlMmZcdWFlMzJcdWFlMzNcdWFlMzVcdWFlMzZcdWFlMzlcdWFlM2JcdWFlM2NcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWFlM2RcdWFlM2VcdWFlM2ZcdWFlNDJcdWFlNDRcdWFlNDdcdWFlNDhcdWFlNDlcdWFlNGJcdWFlNGZcdWFl''@;'; put 'put ''NTFcdWFlNTJcdWFlNTNcdWFlNTVcdWFlNTdcdWFlNThcdWFlNTlcdWFlNWFcdWFlNWJcdWFlNWVcdWFlNjJcdWFlNjNcdWFlNjRcdWFlNjZcdWFlNjdcdWFlNmFcdWFlNmJcdWFlNmRcdWFlNmVcdWFlNmZcdWFlNzFcdWFlNzJcdWFlNzNcdWFlNzRcdWFlNzVcdWFlNzZcdWFlNzdcdWFlN2Fc''@;'; put 'put ''dWFlN2VcdWFlN2ZcdWFlODBcdWFlODFcdWFlODJcdWFlODNcdWFlODZcdWFlODdcdWFlODhcdWFlODlcdWFlOGFcdWFlOGJcdWFlOGRcdWFlOGVcdWFlOGZcdWFlOTBcdWFlOTFcdWFlOTJcdWFlOTNcdWFlOTRcdWFlOTVcdWFlOTZcdWFlOTdcdWFlOThcdWFlOTlcdWFlOWFcdWFlOWJcdWFl''@;'; put 'put ''OWNcdWFlOWRcdWFlOWVcdWFlOWZcdWFlYTBcdWFlYTFcdWFlYTJcdWFlYTNcdWFlYTRcdWFlYTVcdWFlYTZcdWFlYTdcdWFlYThcdWFlYTlcdWFlYWFcdWFlYWJcdWFlYWNcdWFlYWRcdWFlYWVcdWFlYWZcdWFlYjBcdWFlYjFcdWFlYjJcdWFlYjNcdWFlYjRcdWFlYjVcdWFlYjZcdWFlYjdc''@;'; put 'put ''dWFlYjhcdWFlYjlcdWFlYmFcdWFlYmJcdWFlYmZcdWFlYzFcdWFlYzJcdWFlYzNcdWFlYzVcdWFlYzZcdWFlYzdcdWFlYzhcdWFlYzlcdWFlY2FcdWFlY2JcdWFlY2VcdWFlZDJcdWFlZDNcdWFlZDRcdWFlZDVcdWFlZDZcdWFlZDdcdWFlZGFcdWFlZGJcdWFlZGRcdWFlZGVcdWFlZGZcdWFl''@;'; put 'put ''ZTBcdWFlZTFcdWFlZTJcdWFlZTNcdWFlZTRcdWFlZTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTMxXVtFXV09MzM1MzYrRSxMWzMzNTM2K0VdPUJbMTMxXVtFXSk7Zm9yKEJbMTMyXT0i''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZWU2XHVhZWU3XHVhZWU5XHVhZWVhXHVhZWVjXHVhZWVlXHVhZWVmXHVhZWYwXHVhZWYxXHVhZWYyXHVhZWYzXHVhZWY1XHVhZWY2XHVhZWY3XHVhZWY5XHVhZWZhXHVhZWZiXHVh''@;'; put 'put ''ZWZkXHVhZWZlXHVhZWZmXHVhZjAwXHVhZjAxXHVhZjAyXHVhZjAzXHVhZjA0XHVhZjA1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZjA2XHVhZjA5XHVhZjBhXHVhZjBiXHVhZjBjXHVhZjBlXHVhZjBmXHVhZjExXHVhZjEyXHVhZjEzXHVhZjE0XHVhZjE1XHVhZjE2''@;'; put 'put ''XHVhZjE3XHVhZjE4XHVhZjE5XHVhZjFhXHVhZjFiXHVhZjFjXHVhZjFkXHVhZjFlXHVhZjFmXHVhZjIwXHVhZjIxXHVhZjIyXHVhZjIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVhZjI0XHVhZjI1XHVhZjI2XHVhZjI3XHVhZjI4XHVhZjI5XHVhZjJhXHVhZjJiXHVh''@;'; put 'put ''ZjJlXHVhZjJmXHVhZjMxXHVhZjMzXHVhZjM1XHVhZjM2XHVhZjM3XHVhZjM4XHVhZjM5XHVhZjNhXHVhZjNiXHVhZjNlXHVhZjQwXHVhZjQ0XHVhZjQ1XHVhZjQ2XHVhZjQ3XHVhZjRhXHVhZjRiXHVhZjRjXHVhZjRkXHVhZjRlXHVhZjRmXHVhZjUxXHVhZjUyXHVhZjUzXHVhZjU0XHVhZjU1''@;'; put 'put ''XHVhZjU2XHVhZjU3XHVhZjU4XHVhZjU5XHVhZjVhXHVhZjViXHVhZjVlXHVhZjVmXHVhZjYwXHVhZjYxXHVhZjYyXHVhZjYzXHVhZjY2XHVhZjY3XHVhZjY4XHVhZjY5XHVhZjZhXHVhZjZiXHVhZjZjXHVhZjZkXHVhZjZlXHVhZjZmXHVhZjcwXHVhZjcxXHVhZjcyXHVhZjczXHVhZjc0XHVh''@;'; put 'put ''Zjc1XHVhZjc2XHVhZjc3XHVhZjc4XHVhZjdhXHVhZjdiXHVhZjdjXHVhZjdkXHVhZjdlXHVhZjdmXHVhZjgxXHVhZjgyXHVhZjgzXHVhZjg1XHVhZjg2XHVhZjg3XHVhZjg5XHVhZjhhXHVhZjhiXHVhZjhjXHVhZjhkXHVhZjhlXHVhZjhmXHVhZjkyXHVhZjkzXHVhZjk0XHVhZjk2XHVhZjk3''@;'; put 'put ''XHVhZjk4XHVhZjk5XHVhZjlhXHVhZjliXHVhZjlkXHVhZjllXHVhZjlmXHVhZmEwXHVhZmExXHVhZmEyXHVhZmEzXHVhZmE0XHVhZmE1XHVhZmE2XHVhZmE3XHVhZmE4XHVhZmE5XHVhZmFhXHVhZmFiXHVhZmFjXHVhZmFkXHVhZmFlXHVhZmFmXHVhZmIwXHVhZmIxXHVhZmIyXHVhZmIzXHVh''@;'; put 'put ''ZmI0XHVhZmI1XHVhZmI2XHVhZmI3XHVhZmJhXHVhZmJiXHVhZmJkXHVhZmJlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTMyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzMl1bRV1dPTMzNzkyK0UsTFszMzc5MitFXT1CWzEzMl1bRV0p''@;'; put 'put ''O2ZvcihCWzEzM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZiZlx1YWZjMVx1YWZjMlx1YWZjM1x1YWZjNFx1YWZjNVx1YWZjNlx1YWZjYVx1YWZjY1x1YWZjZlx1YWZkMFx1YWZkMVx1YWZkMlx1YWZkM1x1YWZkNVx1''@;'; put 'put ''YWZkNlx1YWZkN1x1YWZkOFx1YWZkOVx1YWZkYVx1YWZkYlx1YWZkZFx1YWZkZVx1YWZkZlx1YWZlMFx1YWZlMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YWZlMlx1YWZlM1x1YWZlNFx1YWZlNVx1YWZlNlx1YWZlN1x1YWZlYVx1YWZlYlx1YWZlY1x1YWZlZFx1YWZl''@;'; put 'put ''ZVx1YWZlZlx1YWZmMlx1YWZmM1x1YWZmNVx1YWZmNlx1YWZmN1x1YWZmOVx1YWZmYVx1YWZmYlx1YWZmY1x1YWZmZFx1YWZmZVx1YWZmZlx1YjAwMlx1YjAwM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjAwNVx1YjAwNlx1YjAwN1x1YjAwOFx1YjAwOVx1YjAwYVx1''@;'; put 'put ''YjAwYlx1YjAwZFx1YjAwZVx1YjAwZlx1YjAxMVx1YjAxMlx1YjAxM1x1YjAxNVx1YjAxNlx1YjAxN1x1YjAxOFx1YjAxOVx1YjAxYVx1YjAxYlx1YjAxZVx1YjAxZlx1YjAyMFx1YjAyMVx1YjAyMlx1YjAyM1x1YjAyNFx1YjAyNVx1YjAyNlx1YjAyN1x1YjAyOVx1YjAyYVx1YjAyYlx1YjAy''@;'; put 'put ''Y1x1YjAyZFx1YjAyZVx1YjAyZlx1YjAzMFx1YjAzMVx1YjAzMlx1YjAzM1x1YjAzNFx1YjAzNVx1YjAzNlx1YjAzN1x1YjAzOFx1YjAzOVx1YjAzYVx1YjAzYlx1YjAzY1x1YjAzZFx1YjAzZVx1YjAzZlx1YjA0MFx1YjA0MVx1YjA0Mlx1YjA0M1x1YjA0Nlx1YjA0N1x1YjA0OVx1YjA0Ylx1''@;'; put 'put ''YjA0ZFx1YjA0Zlx1YjA1MFx1YjA1MVx1YjA1Mlx1YjA1Nlx1YjA1OFx1YjA1YVx1YjA1Ylx1YjA1Y1x1YjA1ZVx1YjA1Zlx1YjA2MFx1YjA2MVx1YjA2Mlx1YjA2M1x1YjA2NFx1YjA2NVx1YjA2Nlx1YjA2N1x1YjA2OFx1YjA2OVx1YjA2YVx1YjA2Ylx1YjA2Y1x1YjA2ZFx1YjA2ZVx1YjA2''@;'; put 'put ''Zlx1YjA3MFx1YjA3MVx1YjA3Mlx1YjA3M1x1YjA3NFx1YjA3NVx1YjA3Nlx1YjA3N1x1YjA3OFx1YjA3OVx1YjA3YVx1YjA3Ylx1YjA3ZVx1YjA3Zlx1YjA4MVx1YjA4Mlx1YjA4M1x1YjA4NVx1YjA4Nlx1YjA4N1x1YjA4OFx1YjA4OVx1YjA4YVx1YjA4Ylx1YjA4ZVx1YjA5MFx1YjA5Mlx1''@;'; put 'put ''YjA5M1x1YjA5NFx1YjA5NVx1YjA5Nlx1YjA5N1x1YjA5Ylx1YjA5ZFx1YjA5ZVx1YjBhM1x1YjBhNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTMzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzNdW0VdXT0zNDA0OCtFLExbMzQwNDgr''@;'; put 'put ''RV09QlsxMzNdW0VdKTtmb3IoQlsxMzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwYTVcdWIwYTZcdWIwYTdcdWIwYWFcdWIwYjBcdWIwYjJcdWIwYjZcdWIwYjdcdWIwYjlcdWIwYmFcdWIwYmJcdWIwYmRcdWIwYmVc''@;'; put 'put ''dWIwYmZcdWIwYzBcdWIwYzFcdWIwYzJcdWIwYzNcdWIwYzZcdWIwY2FcdWIwY2JcdWIwY2NcdWIwY2RcdWIwY2VcdWIwY2ZcdWIwZDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwZDNcdWIwZDVcdWIwZDZcdWIwZDdcdWIwZDlcdWIwZGFcdWIwZGJcdWIwZGNcdWIw''@;'; put 'put ''ZGRcdWIwZGVcdWIwZGZcdWIwZTFcdWIwZTJcdWIwZTNcdWIwZTRcdWIwZTZcdWIwZTdcdWIwZThcdWIwZTlcdWIwZWFcdWIwZWJcdWIwZWNcdWIwZWRcdWIwZWVcdWIwZWZcdWIwZjBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIwZjFcdWIwZjJcdWIwZjNcdWIwZjRc''@;'; put 'put ''dWIwZjVcdWIwZjZcdWIwZjdcdWIwZjhcdWIwZjlcdWIwZmFcdWIwZmJcdWIwZmNcdWIwZmRcdWIwZmVcdWIwZmZcdWIxMDBcdWIxMDFcdWIxMDJcdWIxMDNcdWIxMDRcdWIxMDVcdWIxMDZcdWIxMDdcdWIxMGFcdWIxMGRcdWIxMGVcdWIxMGZcdWIxMTFcdWIxMTRcdWIxMTVcdWIxMTZcdWIx''@;'; put 'put ''MTdcdWIxMWFcdWIxMWVcdWIxMWZcdWIxMjBcdWIxMjFcdWIxMjJcdWIxMjZcdWIxMjdcdWIxMjlcdWIxMmFcdWIxMmJcdWIxMmRcdWIxMmVcdWIxMmZcdWIxMzBcdWIxMzFcdWIxMzJcdWIxMzNcdWIxMzZcdWIxM2FcdWIxM2JcdWIxM2NcdWIxM2RcdWIxM2VcdWIxM2ZcdWIxNDJcdWIxNDNc''@;'; put 'put ''dWIxNDVcdWIxNDZcdWIxNDdcdWIxNDlcdWIxNGFcdWIxNGJcdWIxNGNcdWIxNGRcdWIxNGVcdWIxNGZcdWIxNTJcdWIxNTNcdWIxNTZcdWIxNTdcdWIxNTlcdWIxNWFcdWIxNWJcdWIxNWRcdWIxNWVcdWIxNWZcdWIxNjFcdWIxNjJcdWIxNjNcdWIxNjRcdWIxNjVcdWIxNjZcdWIxNjdcdWIx''@;'; put 'put ''NjhcdWIxNjlcdWIxNmFcdWIxNmJcdWIxNmNcdWIxNmRcdWIxNmVcdWIxNmZcdWIxNzBcdWIxNzFcdWIxNzJcdWIxNzNcdWIxNzRcdWIxNzVcdWIxNzZcdWIxNzdcdWIxN2FcdWIxN2JcdWIxN2RcdWIxN2VcdWIxN2ZcdWIxODFcdWIxODNcdWIxODRcdWIxODVcdWIxODZcdWIxODdcdWIxOGFc''@;'; put 'put ''dWIxOGNcdWIxOGVcdWIxOGZcdWIxOTBcdWIxOTFcdWIxOTVcdWIxOTZcdWIxOTdcdWIxOTlcdWIxOWFcdWIxOWJcdWIxOWRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEzNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM0XVtFXV09MzQz''@;'; put 'put ''MDQrRSxMWzM0MzA0K0VdPUJbMTM0XVtFXSk7Zm9yKEJbMTM1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMTllXHViMTlmXHViMWEwXHViMWExXHViMWEyXHViMWEzXHViMWE0XHViMWE1XHViMWE2XHViMWE3XHViMWE5''@;'; put 'put ''XHViMWFhXHViMWFiXHViMWFjXHViMWFkXHViMWFlXHViMWFmXHViMWIwXHViMWIxXHViMWIyXHViMWIzXHViMWI0XHViMWI1XHViMWI2XHViMWI3XHViMWI4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMWI5XHViMWJhXHViMWJiXHViMWJjXHViMWJkXHViMWJlXHVi''@;'; put 'put ''MWJmXHViMWMwXHViMWMxXHViMWMyXHViMWMzXHViMWM0XHViMWM1XHViMWM2XHViMWM3XHViMWM4XHViMWM5XHViMWNhXHViMWNiXHViMWNkXHViMWNlXHViMWNmXHViMWQxXHViMWQyXHViMWQzXHViMWQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViMWQ2XHViMWQ3''@;'; put 'put ''XHViMWQ4XHViMWQ5XHViMWRhXHViMWRiXHViMWRlXHViMWUwXHViMWUxXHViMWUyXHViMWUzXHViMWU0XHViMWU1XHViMWU2XHViMWU3XHViMWVhXHViMWViXHViMWVkXHViMWVlXHViMWVmXHViMWYxXHViMWYyXHViMWYzXHViMWY0XHViMWY1XHViMWY2XHViMWY3XHViMWY4XHViMWZhXHVi''@;'; put 'put ''MWZjXHViMWZlXHViMWZmXHViMjAwXHViMjAxXHViMjAyXHViMjAzXHViMjA2XHViMjA3XHViMjA5XHViMjBhXHViMjBkXHViMjBlXHViMjBmXHViMjEwXHViMjExXHViMjEyXHViMjEzXHViMjE2XHViMjE4XHViMjFhXHViMjFiXHViMjFjXHViMjFkXHViMjFlXHViMjFmXHViMjIxXHViMjIy''@;'; put 'put ''XHViMjIzXHViMjI0XHViMjI1XHViMjI2XHViMjI3XHViMjI4XHViMjI5XHViMjJhXHViMjJiXHViMjJjXHViMjJkXHViMjJlXHViMjJmXHViMjMwXHViMjMxXHViMjMyXHViMjMzXHViMjM1XHViMjM2XHViMjM3XHViMjM4XHViMjM5XHViMjNhXHViMjNiXHViMjNkXHViMjNlXHViMjNmXHVi''@;'; put 'put ''MjQwXHViMjQxXHViMjQyXHViMjQzXHViMjQ0XHViMjQ1XHViMjQ2XHViMjQ3XHViMjQ4XHViMjQ5XHViMjRhXHViMjRiXHViMjRjXHViMjRkXHViMjRlXHViMjRmXHViMjUwXHViMjUxXHViMjUyXHViMjUzXHViMjU0XHViMjU1XHViMjU2XHViMjU3XHViMjU5XHViMjVhXHViMjViXHViMjVk''@;'; put 'put ''XHViMjVlXHViMjVmXHViMjYxXHViMjYyXHViMjYzXHViMjY0XHViMjY1XHViMjY2XHViMjY3XHViMjZhXHViMjZiXHViMjZjXHViMjZkXHViMjZlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxMzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; put 'put ''WzEzNV1bRV1dPTM0NTYwK0UsTFszNDU2MCtFXT1CWzEzNV1bRV0pO2ZvcihCWzEzNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI2Zlx1YjI3MFx1YjI3MVx1YjI3Mlx1YjI3M1x1YjI3Nlx1YjI3N1x1YjI3OFx1YjI3''@;'; put 'put ''OVx1YjI3YVx1YjI3Ylx1YjI3ZFx1YjI3ZVx1YjI3Zlx1YjI4MFx1YjI4MVx1YjI4Mlx1YjI4M1x1YjI4Nlx1YjI4N1x1YjI4OFx1YjI4YVx1YjI4Ylx1YjI4Y1x1YjI4ZFx1YjI4ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjI4Zlx1YjI5Mlx1YjI5M1x1YjI5NVx1''@;'; put 'put ''YjI5Nlx1YjI5N1x1YjI5Ylx1YjI5Y1x1YjI5ZFx1YjI5ZVx1YjI5Zlx1YjJhMlx1YjJhNFx1YjJhN1x1YjJhOFx1YjJhOVx1YjJhYlx1YjJhZFx1YjJhZVx1YjJhZlx1YjJiMVx1YjJiMlx1YjJiM1x1YjJiNVx1YjJiNlx1YjJiN1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1YjJiOFx1YjJiOVx1YjJiYVx1YjJiYlx1YjJiY1x1YjJiZFx1YjJiZVx1YjJiZlx1YjJjMFx1YjJjMVx1YjJjMlx1YjJjM1x1YjJjNFx1YjJjNVx1YjJjNlx1YjJjN1x1YjJjYVx1YjJjYlx1YjJjZFx1YjJjZVx1YjJjZlx1YjJkMVx1YjJkM1x1YjJkNFx1YjJkNVx1YjJkNlx1YjJkN1x1''@;'; put 'put ''YjJkYVx1YjJkY1x1YjJkZVx1YjJkZlx1YjJlMFx1YjJlMVx1YjJlM1x1YjJlN1x1YjJlOVx1YjJlYVx1YjJmMFx1YjJmMVx1YjJmMlx1YjJmNlx1YjJmY1x1YjJmZFx1YjJmZVx1YjMwMlx1YjMwM1x1YjMwNVx1YjMwNlx1YjMwN1x1YjMwOVx1YjMwYVx1YjMwYlx1YjMwY1x1YjMwZFx1YjMw''@;'; put 'put ''ZVx1YjMwZlx1YjMxMlx1YjMxNlx1YjMxN1x1YjMxOFx1YjMxOVx1YjMxYVx1YjMxYlx1YjMxZFx1YjMxZVx1YjMxZlx1YjMyMFx1YjMyMVx1YjMyMlx1YjMyM1x1YjMyNFx1YjMyNVx1YjMyNlx1YjMyN1x1YjMyOFx1YjMyOVx1YjMyYVx1YjMyYlx1YjMyY1x1YjMyZFx1YjMyZVx1YjMyZlx1''@;'; put 'put ''YjMzMFx1YjMzMVx1YjMzMlx1YjMzM1x1YjMzNFx1YjMzNVx1YjMzNlx1YjMzN1x1YjMzOFx1YjMzOVx1YjMzYVx1YjMzYlx1YjMzY1x1YjMzZFx1YjMzZVx1YjMzZlx1YjM0MFx1YjM0MVx1YjM0Mlx1YjM0M1x1YjM0NFx1YjM0NVx1YjM0Nlx1YjM0N1x1YjM0OFx1YjM0OVx1YjM0YVx1YjM0''@;'; put 'put ''Ylx1YjM0Y1x1YjM0ZFx1YjM0ZVx1YjM0Zlx1YjM1MFx1YjM1MVx1YjM1Mlx1YjM1M1x1YjM1N1x1YjM1OVx1YjM1YVx1YjM1ZFx1YjM2MFx1YjM2MVx1YjM2Mlx1YjM2M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEzNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM2XVtFXS5jaGFyQ29k''@;'; put 'put ''ZUF0KDApJiYobWVbQlsxMzZdW0VdXT0zNDgxNitFLExbMzQ4MTYrRV09QlsxMzZdW0VdKTtmb3IoQlsxMzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzNjZcdWIzNjhcdWIzNmFcdWIzNmNcdWIzNmRcdWIzNmZcdWIz''@;'; put 'put ''NzJcdWIzNzNcdWIzNzVcdWIzNzZcdWIzNzdcdWIzNzlcdWIzN2FcdWIzN2JcdWIzN2NcdWIzN2RcdWIzN2VcdWIzN2ZcdWIzODJcdWIzODZcdWIzODdcdWIzODhcdWIzODlcdWIzOGFcdWIzOGJcdWIzOGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWIzOGVcdWIzOGZc''@;'; put 'put ''dWIzOTFcdWIzOTJcdWIzOTNcdWIzOTVcdWIzOTZcdWIzOTdcdWIzOThcdWIzOTlcdWIzOWFcdWIzOWJcdWIzOWNcdWIzOWRcdWIzOWVcdWIzOWZcdWIzYTJcdWIzYTNcdWIzYTRcdWIzYTVcdWIzYTZcdWIzYTdcdWIzYTlcdWIzYWFcdWIzYWJcdWIzYWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWIzYWVcdWIzYWZcdWIzYjBcdWIzYjFcdWIzYjJcdWIzYjNcdWIzYjRcdWIzYjVcdWIzYjZcdWIzYjdcdWIzYjhcdWIzYjlcdWIzYmFcdWIzYmJcdWIzYmNcdWIzYmRcdWIzYmVcdWIzYmZcdWIzYzBcdWIzYzFcdWIzYzJcdWIzYzNcdWIzYzZcdWIzYzdcdWIzYzlc''@;'; put 'put ''dWIzY2FcdWIzY2RcdWIzY2ZcdWIzZDFcdWIzZDJcdWIzZDNcdWIzZDZcdWIzZDhcdWIzZGFcdWIzZGNcdWIzZGVcdWIzZGZcdWIzZTFcdWIzZTJcdWIzZTNcdWIzZTVcdWIzZTZcdWIzZTdcdWIzZTlcdWIzZWFcdWIzZWJcdWIzZWNcdWIzZWRcdWIzZWVcdWIzZWZcdWIzZjBcdWIzZjFcdWIz''@;'; put 'put ''ZjJcdWIzZjNcdWIzZjRcdWIzZjVcdWIzZjZcdWIzZjdcdWIzZjhcdWIzZjlcdWIzZmFcdWIzZmJcdWIzZmRcdWIzZmVcdWIzZmZcdWI0MDBcdWI0MDFcdWI0MDJcdWI0MDNcdWI0MDRcdWI0MDVcdWI0MDZcdWI0MDdcdWI0MDhcdWI0MDlcdWI0MGFcdWI0MGJcdWI0MGNcdWI0MGRcdWI0MGVc''@;'; put 'put ''dWI0MGZcdWI0MTFcdWI0MTJcdWI0MTNcdWI0MTRcdWI0MTVcdWI0MTZcdWI0MTdcdWI0MTlcdWI0MWFcdWI0MWJcdWI0MWRcdWI0MWVcdWI0MWZcdWI0MjFcdWI0MjJcdWI0MjNcdWI0MjRcdWI0MjVcdWI0MjZcdWI0MjdcdWI0MmFcdWI0MmNcdWI0MmRcdWI0MmVcdWI0MmZcdWI0MzBcdWI0''@;'; put 'put ''MzFcdWI0MzJcdWI0MzNcdWI0MzVcdWI0MzZcdWI0MzdcdWI0MzhcdWI0MzlcdWI0M2FcdWI0M2JcdWI0M2NcdWI0M2RcdWI0M2VcdWI0M2ZcdWI0NDBcdWI0NDFcdWI0NDJcdWI0NDNcdWI0NDRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxMzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzEz''@;'; put 'put ''N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTM3XVtFXV09MzUwNzIrRSxMWzM1MDcyK0VdPUJbMTM3XVtFXSk7Zm9yKEJbMTM4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNDQ1XHViNDQ2XHViNDQ3XHViNDQ4XHVi''@;'; put 'put ''NDQ5XHViNDRhXHViNDRiXHViNDRjXHViNDRkXHViNDRlXHViNDRmXHViNDUyXHViNDUzXHViNDU1XHViNDU2XHViNDU3XHViNDU5XHViNDVhXHViNDViXHViNDVjXHViNDVkXHViNDVlXHViNDVmXHViNDYyXHViNDY0XHViNDY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHViNDY3XHViNDY4XHViNDY5XHViNDZhXHViNDZiXHViNDZkXHViNDZlXHViNDZmXHViNDcwXHViNDcxXHViNDcyXHViNDczXHViNDc0XHViNDc1XHViNDc2XHViNDc3XHViNDc4XHViNDc5XHViNDdhXHViNDdiXHViNDdjXHViNDdkXHViNDdlXHViNDdmXHViNDgxXHViNDgyXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNDgzXHViNDg0XHViNDg1XHViNDg2XHViNDg3XHViNDg5XHViNDhhXHViNDhiXHViNDhjXHViNDhkXHViNDhlXHViNDhmXHViNDkwXHViNDkxXHViNDkyXHViNDkzXHViNDk0XHViNDk1XHViNDk2XHViNDk3XHViNDk4XHViNDk5XHViNDlh''@;'; put 'put ''XHViNDliXHViNDljXHViNDllXHViNDlmXHViNGEwXHViNGExXHViNGEyXHViNGEzXHViNGE1XHViNGE2XHViNGE3XHViNGE5XHViNGFhXHViNGFiXHViNGFkXHViNGFlXHViNGFmXHViNGIwXHViNGIxXHViNGIyXHViNGIzXHViNGI0XHViNGI2XHViNGI4XHViNGJhXHViNGJiXHViNGJjXHVi''@;'; put 'put ''NGJkXHViNGJlXHViNGJmXHViNGMxXHViNGMyXHViNGMzXHViNGM1XHViNGM2XHViNGM3XHViNGM5XHViNGNhXHViNGNiXHViNGNjXHViNGNkXHViNGNlXHViNGNmXHViNGQxXHViNGQyXHViNGQzXHViNGQ0XHViNGQ2XHViNGQ3XHViNGQ4XHViNGQ5XHViNGRhXHViNGRiXHViNGRlXHViNGRm''@;'; put 'put ''XHViNGUxXHViNGUyXHViNGU1XHViNGU3XHViNGU4XHViNGU5XHViNGVhXHViNGViXHViNGVlXHViNGYwXHViNGYyXHViNGYzXHViNGY0XHViNGY1XHViNGY2XHViNGY3XHViNGY5XHViNGZhXHViNGZiXHViNGZjXHViNGZkXHViNGZlXHViNGZmXHViNTAwXHViNTAxXHViNTAyXHViNTAzXHVi''@;'; put 'put ''NTA0XHViNTA1XHViNTA2XHViNTA3XHViNTA4XHViNTA5XHViNTBhXHViNTBiXHViNTBjXHViNTBkXHViNTBlXHViNTBmXHViNTEwXHViNTExXHViNTEyXHViNTEzXHViNTE2XHViNTE3XHViNTE5XHViNTFhXHViNTFkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTM4XS5sZW5ndGg7KytF''@;'; put 'put ''KTY1NTMzIT09QlsxMzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzEzOF1bRV1dPTM1MzI4K0UsTFszNTMyOCtFXT1CWzEzOF1bRV0pO2ZvcihCWzEzOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjUxZVx1YjUxZlx1''@;'; put 'put ''YjUyMFx1YjUyMVx1YjUyMlx1YjUyM1x1YjUyNlx1YjUyYlx1YjUyY1x1YjUyZFx1YjUyZVx1YjUyZlx1YjUzMlx1YjUzM1x1YjUzNVx1YjUzNlx1YjUzN1x1YjUzOVx1YjUzYVx1YjUzYlx1YjUzY1x1YjUzZFx1YjUzZVx1YjUzZlx1YjU0Mlx1YjU0Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1YjU0N1x1YjU0OFx1YjU0OVx1YjU0YVx1YjU0ZVx1YjU0Zlx1YjU1MVx1YjU1Mlx1YjU1M1x1YjU1NVx1YjU1Nlx1YjU1N1x1YjU1OFx1YjU1OVx1YjU1YVx1YjU1Ylx1YjU1ZVx1YjU2Mlx1YjU2M1x1YjU2NFx1YjU2NVx1YjU2Nlx1YjU2N1x1YjU2OFx1YjU2OVx1''@;'; put 'put ''YjU2YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjU2Ylx1YjU2Y1x1YjU2ZFx1YjU2ZVx1YjU2Zlx1YjU3MFx1YjU3MVx1YjU3Mlx1YjU3M1x1YjU3NFx1YjU3NVx1YjU3Nlx1YjU3N1x1YjU3OFx1YjU3OVx1YjU3YVx1YjU3Ylx1YjU3Y1x1YjU3ZFx1YjU3ZVx1YjU3''@;'; put 'put ''Zlx1YjU4MFx1YjU4MVx1YjU4Mlx1YjU4M1x1YjU4NFx1YjU4NVx1YjU4Nlx1YjU4N1x1YjU4OFx1YjU4OVx1YjU4YVx1YjU4Ylx1YjU4Y1x1YjU4ZFx1YjU4ZVx1YjU4Zlx1YjU5MFx1YjU5MVx1YjU5Mlx1YjU5M1x1YjU5NFx1YjU5NVx1YjU5Nlx1YjU5N1x1YjU5OFx1YjU5OVx1YjU5YVx1''@;'; put 'put ''YjU5Ylx1YjU5Y1x1YjU5ZFx1YjU5ZVx1YjU5Zlx1YjVhMlx1YjVhM1x1YjVhNVx1YjVhNlx1YjVhN1x1YjVhOVx1YjVhY1x1YjVhZFx1YjVhZVx1YjVhZlx1YjViMlx1YjViNlx1YjViN1x1YjViOFx1YjViOVx1YjViYVx1YjViZVx1YjViZlx1YjVjMVx1YjVjMlx1YjVjM1x1YjVjNVx1YjVj''@;'; put 'put ''Nlx1YjVjN1x1YjVjOFx1YjVjOVx1YjVjYVx1YjVjYlx1YjVjZVx1YjVkMlx1YjVkM1x1YjVkNFx1YjVkNVx1YjVkNlx1YjVkN1x1YjVkOVx1YjVkYVx1YjVkYlx1YjVkY1x1YjVkZFx1YjVkZVx1YjVkZlx1YjVlMFx1YjVlMVx1YjVlMlx1YjVlM1x1YjVlNFx1YjVlNVx1YjVlNlx1YjVlN1x1''@;'; put 'put ''YjVlOFx1YjVlOVx1YjVlYVx1YjVlYlx1YjVlZFx1YjVlZVx1YjVlZlx1YjVmMFx1YjVmMVx1YjVmMlx1YjVmM1x1YjVmNFx1YjVmNVx1YjVmNlx1YjVmN1x1YjVmOFx1YjVmOVx1YjVmYVx1YjVmYlx1YjVmY1x1YjVmZFx1YjVmZVx1YjVmZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzEz''@;'; put 'put ''OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTM5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxMzldW0VdXT0zNTU4NCtFLExbMzU1ODQrRV09QlsxMzldW0VdKTtmb3IoQlsxNDBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWI2MDBcdWI2MDFcdWI2MDJcdWI2MDNcdWI2MDRcdWI2MDVcdWI2MDZcdWI2MDdcdWI2MDhcdWI2MDlcdWI2MGFcdWI2MGJcdWI2MGNcdWI2MGRcdWI2MGVcdWI2MGZcdWI2MTJcdWI2MTNcdWI2MTVcdWI2MTZcdWI2MTdcdWI2MTlcdWI2MWFcdWI2MWJcdWI2MWNcdWI2MWRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI2MWVcdWI2MWZcdWI2MjBcdWI2MjFcdWI2MjJcdWI2MjNcdWI2MjRcdWI2MjZcdWI2MjdcdWI2MjhcdWI2MjlcdWI2MmFcdWI2MmJcdWI2MmRcdWI2MmVcdWI2MmZcdWI2MzBcdWI2MzFcdWI2MzJcdWI2MzNcdWI2MzVcdWI2MzZcdWI2Mzdc''@;'; put 'put ''dWI2MzhcdWI2MzlcdWI2M2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI2M2JcdWI2M2NcdWI2M2RcdWI2M2VcdWI2M2ZcdWI2NDBcdWI2NDFcdWI2NDJcdWI2NDNcdWI2NDRcdWI2NDVcdWI2NDZcdWI2NDdcdWI2NDlcdWI2NGFcdWI2NGJcdWI2NGNcdWI2NGRcdWI2''@;'; put 'put ''NGVcdWI2NGZcdWI2NTBcdWI2NTFcdWI2NTJcdWI2NTNcdWI2NTRcdWI2NTVcdWI2NTZcdWI2NTdcdWI2NThcdWI2NTlcdWI2NWFcdWI2NWJcdWI2NWNcdWI2NWRcdWI2NWVcdWI2NWZcdWI2NjBcdWI2NjFcdWI2NjJcdWI2NjNcdWI2NjVcdWI2NjZcdWI2NjdcdWI2NjlcdWI2NmFcdWI2NmJc''@;'; put 'put ''dWI2NmNcdWI2NmRcdWI2NmVcdWI2NmZcdWI2NzBcdWI2NzFcdWI2NzJcdWI2NzNcdWI2NzRcdWI2NzVcdWI2NzZcdWI2NzdcdWI2NzhcdWI2NzlcdWI2N2FcdWI2N2JcdWI2N2NcdWI2N2RcdWI2N2VcdWI2N2ZcdWI2ODBcdWI2ODFcdWI2ODJcdWI2ODNcdWI2ODRcdWI2ODVcdWI2ODZcdWI2''@;'; put 'put ''ODdcdWI2ODhcdWI2ODlcdWI2OGFcdWI2OGJcdWI2OGNcdWI2OGRcdWI2OGVcdWI2OGZcdWI2OTBcdWI2OTFcdWI2OTJcdWI2OTNcdWI2OTRcdWI2OTVcdWI2OTZcdWI2OTdcdWI2OThcdWI2OTlcdWI2OWFcdWI2OWJcdWI2OWVcdWI2OWZcdWI2YTFcdWI2YTJcdWI2YTNcdWI2YTVcdWI2YTZc''@;'; put 'put ''dWI2YTdcdWI2YThcdWI2YTlcdWI2YWFcdWI2YWRcdWI2YWVcdWI2YWZcdWI2YjBcdWI2YjJcdWI2YjNcdWI2YjRcdWI2YjVcdWI2YjZcdWI2YjdcdWI2YjhcdWI2YjlcdWI2YmFcdWI2YmJcdWI2YmNcdWI2YmRcdWI2YmVcdWI2YmZcdWI2YzBcdWI2YzFcdWI2YzJcdWZmZmQiLnNwbGl0KCIi''@;'; put 'put ''KSxFPTA7RSE9QlsxNDBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQwXVtFXV09MzU4NDArRSxMWzM1ODQwK0VdPUJbMTQwXVtFXSk7Zm9yKEJbMTQxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHViNmMzXHViNmM0XHViNmM1XHViNmM2XHViNmM3XHViNmM4XHViNmM5XHViNmNhXHViNmNiXHViNmNjXHViNmNkXHViNmNlXHViNmNmXHViNmQwXHViNmQxXHViNmQyXHViNmQzXHViNmQ1XHViNmQ2XHViNmQ3XHViNmQ4XHViNmQ5XHViNmRhXHViNmRiXHViNmRjXHVi''@;'; put 'put ''NmRkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNmRlXHViNmRmXHViNmUwXHViNmUxXHViNmUyXHViNmUzXHViNmU0XHViNmU1XHViNmU2XHViNmU3XHViNmU4XHViNmU5XHViNmVhXHViNmViXHViNmVjXHViNmVkXHViNmVlXHViNmVmXHViNmYxXHViNmYyXHViNmYz''@;'; put 'put ''XHViNmY1XHViNmY2XHViNmY3XHViNmY5XHViNmZhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViNmZiXHViNmZjXHViNmZkXHViNmZlXHViNmZmXHViNzAyXHViNzAzXHViNzA0XHViNzA2XHViNzA3XHViNzA4XHViNzA5XHViNzBhXHViNzBiXHViNzBjXHViNzBkXHVi''@;'; put 'put ''NzBlXHViNzBmXHViNzEwXHViNzExXHViNzEyXHViNzEzXHViNzE0XHViNzE1XHViNzE2XHViNzE3XHViNzE4XHViNzE5XHViNzFhXHViNzFiXHViNzFjXHViNzFkXHViNzFlXHViNzFmXHViNzIwXHViNzIxXHViNzIyXHViNzIzXHViNzI0XHViNzI1XHViNzI2XHViNzI3XHViNzJhXHViNzJi''@;'; put 'put ''XHViNzJkXHViNzJlXHViNzMxXHViNzMyXHViNzMzXHViNzM0XHViNzM1XHViNzM2XHViNzM3XHViNzNhXHViNzNjXHViNzNkXHViNzNlXHViNzNmXHViNzQwXHViNzQxXHViNzQyXHViNzQzXHViNzQ1XHViNzQ2XHViNzQ3XHViNzQ5XHViNzRhXHViNzRiXHViNzRkXHViNzRlXHViNzRmXHVi''@;'; put 'put ''NzUwXHViNzUxXHViNzUyXHViNzUzXHViNzU2XHViNzU3XHViNzU4XHViNzU5XHViNzVhXHViNzViXHViNzVjXHViNzVkXHViNzVlXHViNzVmXHViNzYxXHViNzYyXHViNzYzXHViNzY1XHViNzY2XHViNzY3XHViNzY5XHViNzZhXHViNzZiXHViNzZjXHViNzZkXHViNzZlXHViNzZmXHViNzcy''@;'; put 'put ''XHViNzc0XHViNzc2XHViNzc3XHViNzc4XHViNzc5XHViNzdhXHViNzdiXHViNzdlXHViNzdmXHViNzgxXHViNzgyXHViNzgzXHViNzg1XHViNzg2XHViNzg3XHViNzg4XHViNzg5XHViNzhhXHViNzhiXHViNzhlXHViNzkzXHViNzk0XHViNzk1XHViNzlhXHViNzliXHViNzlkXHViNzllXHVm''@;'; put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0MV1bRV1dPTM2MDk2K0UsTFszNjA5NitFXT1CWzE0MV1bRV0pO2ZvcihCWzE0Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yjc5Zlx1YjdhMVx1YjdhMlx1YjdhM1x1YjdhNFx1YjdhNVx1YjdhNlx1YjdhN1x1YjdhYVx1YjdhZVx1YjdhZlx1YjdiMFx1YjdiMVx1YjdiMlx1YjdiM1x1YjdiNlx1YjdiN1x1YjdiOVx1YjdiYVx1YjdiYlx1YjdiY1x1YjdiZFx1YjdiZVx1''@;'; put 'put ''YjdiZlx1YjdjMFx1YjdjMVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjdjMlx1YjdjM1x1YjdjNFx1YjdjNVx1YjdjNlx1YjdjOFx1YjdjYVx1YjdjYlx1YjdjY1x1YjdjZFx1YjdjZVx1YjdjZlx1YjdkMFx1YjdkMVx1YjdkMlx1YjdkM1x1YjdkNFx1YjdkNVx1Yjdk''@;'; put 'put ''Nlx1YjdkN1x1YjdkOFx1YjdkOVx1YjdkYVx1YjdkYlx1YjdkY1x1YjdkZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YjdkZVx1YjdkZlx1YjdlMFx1YjdlMVx1YjdlMlx1YjdlM1x1YjdlNFx1YjdlNVx1YjdlNlx1YjdlN1x1YjdlOFx1YjdlOVx1YjdlYVx1YjdlYlx1''@;'; put 'put ''YjdlZVx1YjdlZlx1YjdmMVx1YjdmMlx1YjdmM1x1YjdmNVx1YjdmNlx1YjdmN1x1YjdmOFx1YjdmOVx1YjdmYVx1YjdmYlx1YjdmZVx1YjgwMlx1YjgwM1x1YjgwNFx1YjgwNVx1YjgwNlx1YjgwYVx1YjgwYlx1YjgwZFx1YjgwZVx1YjgwZlx1YjgxMVx1YjgxMlx1YjgxM1x1YjgxNFx1Yjgx''@;'; put 'put ''NVx1YjgxNlx1YjgxN1x1YjgxYVx1YjgxY1x1YjgxZVx1YjgxZlx1YjgyMFx1YjgyMVx1YjgyMlx1YjgyM1x1YjgyNlx1YjgyN1x1YjgyOVx1YjgyYVx1YjgyYlx1YjgyZFx1YjgyZVx1YjgyZlx1YjgzMFx1YjgzMVx1YjgzMlx1YjgzM1x1YjgzNlx1YjgzYVx1YjgzYlx1YjgzY1x1YjgzZFx1''@;'; put 'put ''YjgzZVx1YjgzZlx1Yjg0MVx1Yjg0Mlx1Yjg0M1x1Yjg0NVx1Yjg0Nlx1Yjg0N1x1Yjg0OFx1Yjg0OVx1Yjg0YVx1Yjg0Ylx1Yjg0Y1x1Yjg0ZFx1Yjg0ZVx1Yjg0Zlx1Yjg1MFx1Yjg1Mlx1Yjg1NFx1Yjg1NVx1Yjg1Nlx1Yjg1N1x1Yjg1OFx1Yjg1OVx1Yjg1YVx1Yjg1Ylx1Yjg1ZVx1Yjg1''@;'; put 'put ''Zlx1Yjg2MVx1Yjg2Mlx1Yjg2M1x1Yjg2NVx1Yjg2Nlx1Yjg2N1x1Yjg2OFx1Yjg2OVx1Yjg2YVx1Yjg2Ylx1Yjg2ZVx1Yjg3MFx1Yjg3Mlx1Yjg3M1x1Yjg3NFx1Yjg3NVx1Yjg3Nlx1Yjg3N1x1Yjg3OVx1Yjg3YVx1Yjg3Ylx1Yjg3ZFx1Yjg3ZVx1Yjg3Zlx1Yjg4MFx1Yjg4MVx1Yjg4Mlx1''@;'; put 'put ''Yjg4M1x1Yjg4NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDJdW0VdXT0zNjM1MitFLExbMzYzNTIrRV09QlsxNDJdW0VdKTtmb3IoQlsxNDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4ODVcdWI4ODZcdWI4ODdcdWI4ODhcdWI4ODlcdWI4OGFcdWI4OGJcdWI4OGNcdWI4OGVcdWI4OGZcdWI4OTBcdWI4OTFcdWI4OTJcdWI4OTNcdWI4OTRcdWI4OTVcdWI4OTZcdWI4OTdcdWI4OThcdWI4OTlcdWI4OWFc''@;'; put 'put ''dWI4OWJcdWI4OWNcdWI4OWRcdWI4OWVcdWI4OWZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4YTBcdWI4YTFcdWI4YTJcdWI4YTNcdWI4YTRcdWI4YTVcdWI4YTZcdWI4YTdcdWI4YTlcdWI4YWFcdWI4YWJcdWI4YWNcdWI4YWRcdWI4YWVcdWI4YWZcdWI4YjFcdWI4''@;'; put 'put ''YjJcdWI4YjNcdWI4YjVcdWI4YjZcdWI4YjdcdWI4YjlcdWI4YmFcdWI4YmJcdWI4YmNcdWI4YmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWI4YmVcdWI4YmZcdWI4YzJcdWI4YzRcdWI4YzZcdWI4YzdcdWI4YzhcdWI4YzlcdWI4Y2FcdWI4Y2JcdWI4Y2RcdWI4Y2Vc''@;'; put 'put ''dWI4Y2ZcdWI4ZDFcdWI4ZDJcdWI4ZDNcdWI4ZDVcdWI4ZDZcdWI4ZDdcdWI4ZDhcdWI4ZDlcdWI4ZGFcdWI4ZGJcdWI4ZGNcdWI4ZGVcdWI4ZTBcdWI4ZTJcdWI4ZTNcdWI4ZTRcdWI4ZTVcdWI4ZTZcdWI4ZTdcdWI4ZWFcdWI4ZWJcdWI4ZWRcdWI4ZWVcdWI4ZWZcdWI4ZjFcdWI4ZjJcdWI4''@;'; put 'put ''ZjNcdWI4ZjRcdWI4ZjVcdWI4ZjZcdWI4ZjdcdWI4ZmFcdWI4ZmNcdWI4ZmVcdWI4ZmZcdWI5MDBcdWI5MDFcdWI5MDJcdWI5MDNcdWI5MDVcdWI5MDZcdWI5MDdcdWI5MDhcdWI5MDlcdWI5MGFcdWI5MGJcdWI5MGNcdWI5MGRcdWI5MGVcdWI5MGZcdWI5MTBcdWI5MTFcdWI5MTJcdWI5MTNc''@;'; put 'put ''dWI5MTRcdWI5MTVcdWI5MTZcdWI5MTdcdWI5MTlcdWI5MWFcdWI5MWJcdWI5MWNcdWI5MWRcdWI5MWVcdWI5MWZcdWI5MjFcdWI5MjJcdWI5MjNcdWI5MjRcdWI5MjVcdWI5MjZcdWI5MjdcdWI5MjhcdWI5MjlcdWI5MmFcdWI5MmJcdWI5MmNcdWI5MmRcdWI5MmVcdWI5MmZcdWI5MzBcdWI5''@;'; put 'put ''MzFcdWI5MzJcdWI5MzNcdWI5MzRcdWI5MzVcdWI5MzZcdWI5MzdcdWI5MzhcdWI5MzlcdWI5M2FcdWI5M2JcdWI5M2VcdWI5M2ZcdWI5NDFcdWI5NDJcdWI5NDNcdWI5NDVcdWI5NDZcdWI5NDdcdWI5NDhcdWI5NDlcdWI5NGFcdWI5NGJcdWI5NGRcdWI5NGVcdWI5NTBcdWI5NTJcdWI5NTNc''@;'; put 'put ''dWI5NTRcdWI5NTVcdWI5NTZcdWI5NTdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQzXVtFXV09MzY2MDgrRSxMWzM2NjA4K0VdPUJbMTQzXVtFXSk7Zm9yKEJbMTQ0XT0iXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTVhXHViOTViXHViOTVkXHViOTVlXHViOTVmXHViOTYxXHViOTYyXHViOTYzXHViOTY0XHViOTY1XHViOTY2XHViOTY3XHViOTZhXHViOTZjXHViOTZlXHViOTZmXHViOTcwXHViOTcxXHViOTcy''@;'; put 'put ''XHViOTczXHViOTc2XHViOTc3XHViOTc5XHViOTdhXHViOTdiXHViOTdkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTdlXHViOTdmXHViOTgwXHViOTgxXHViOTgyXHViOTgzXHViOTg2XHViOTg4XHViOThiXHViOThjXHViOThmXHViOTkwXHViOTkxXHViOTkyXHVi''@;'; put 'put ''OTkzXHViOTk0XHViOTk1XHViOTk2XHViOTk3XHViOTk4XHViOTk5XHViOTlhXHViOTliXHViOTljXHViOTlkXHViOTllXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViOTlmXHViOWEwXHViOWExXHViOWEyXHViOWEzXHViOWE0XHViOWE1XHViOWE2XHViOWE3XHViOWE4''@;'; put 'put ''XHViOWE5XHViOWFhXHViOWFiXHViOWFlXHViOWFmXHViOWIxXHViOWIyXHViOWIzXHViOWI1XHViOWI2XHViOWI3XHViOWI4XHViOWI5XHViOWJhXHViOWJiXHViOWJlXHViOWMwXHViOWMyXHViOWMzXHViOWM0XHViOWM1XHViOWM2XHViOWM3XHViOWNhXHViOWNiXHViOWNkXHViOWQzXHVi''@;'; put 'put ''OWQ0XHViOWQ1XHViOWQ2XHViOWQ3XHViOWRhXHViOWRjXHViOWRmXHViOWUwXHViOWUyXHViOWU2XHViOWU3XHViOWU5XHViOWVhXHViOWViXHViOWVkXHViOWVlXHViOWVmXHViOWYwXHViOWYxXHViOWYyXHViOWYzXHViOWY2XHViOWZiXHViOWZjXHViOWZkXHViOWZlXHViOWZmXHViYTAy''@;'; put 'put ''XHViYTAzXHViYTA0XHViYTA1XHViYTA2XHViYTA3XHViYTA5XHViYTBhXHViYTBiXHViYTBjXHViYTBkXHViYTBlXHViYTBmXHViYTEwXHViYTExXHViYTEyXHViYTEzXHViYTE0XHViYTE2XHViYTE3XHViYTE4XHViYTE5XHViYTFhXHViYTFiXHViYTFjXHViYTFkXHViYTFlXHViYTFmXHVi''@;'; put 'put ''YTIwXHViYTIxXHViYTIyXHViYTIzXHViYTI0XHViYTI1XHViYTI2XHViYTI3XHViYTI4XHViYTI5XHViYTJhXHViYTJiXHViYTJjXHViYTJkXHViYTJlXHViYTJmXHViYTMwXHViYTMxXHViYTMyXHViYTMzXHViYTM0XHViYTM1XHViYTM2XHViYTM3XHViYTNhXHViYTNiXHViYTNkXHViYTNl''@;'; put 'put ''XHViYTNmXHViYTQxXHViYTQzXHViYTQ0XHViYTQ1XHViYTQ2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0NF1bRV1dPTM2ODY0K0UsTFszNjg2NCtFXT1CWzE0NF1bRV0pO2ZvcihCWzE0''@;'; put 'put ''NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE0N1x1YmE0YVx1YmE0Y1x1YmE0Zlx1YmE1MFx1YmE1MVx1YmE1Mlx1YmE1Nlx1YmE1N1x1YmE1OVx1YmE1YVx1YmE1Ylx1YmE1ZFx1YmE1ZVx1YmE1Zlx1YmE2MFx1YmE2''@;'; put 'put ''MVx1YmE2Mlx1YmE2M1x1YmE2Nlx1YmE2YVx1YmE2Ylx1YmE2Y1x1YmE2ZFx1YmE2ZVx1YmE2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE3Mlx1YmE3M1x1YmE3NVx1YmE3Nlx1YmE3N1x1YmE3OVx1YmE3YVx1YmE3Ylx1YmE3Y1x1YmE3ZFx1YmE3ZVx1YmE3Zlx1''@;'; put 'put ''YmE4MFx1YmE4MVx1YmE4Mlx1YmE4Nlx1YmE4OFx1YmE4OVx1YmE4YVx1YmE4Ylx1YmE4ZFx1YmE4ZVx1YmE4Zlx1YmE5MFx1YmE5MVx1YmE5Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmE5M1x1YmE5NFx1YmE5NVx1YmE5Nlx1YmE5N1x1YmE5OFx1YmE5OVx1YmE5''@;'; put 'put ''YVx1YmE5Ylx1YmE5Y1x1YmE5ZFx1YmE5ZVx1YmE5Zlx1YmFhMFx1YmFhMVx1YmFhMlx1YmFhM1x1YmFhNFx1YmFhNVx1YmFhNlx1YmFhN1x1YmFhYVx1YmFhZFx1YmFhZVx1YmFhZlx1YmFiMVx1YmFiM1x1YmFiNFx1YmFiNVx1YmFiNlx1YmFiN1x1YmFiYVx1YmFiY1x1YmFiZVx1YmFiZlx1''@;'; put 'put ''YmFjMFx1YmFjMVx1YmFjMlx1YmFjM1x1YmFjNVx1YmFjNlx1YmFjN1x1YmFjOVx1YmFjYVx1YmFjYlx1YmFjY1x1YmFjZFx1YmFjZVx1YmFjZlx1YmFkMFx1YmFkMVx1YmFkMlx1YmFkM1x1YmFkNFx1YmFkNVx1YmFkNlx1YmFkN1x1YmFkYVx1YmFkYlx1YmFkY1x1YmFkZFx1YmFkZVx1YmFk''@;'; put 'put ''Zlx1YmFlMFx1YmFlMVx1YmFlMlx1YmFlM1x1YmFlNFx1YmFlNVx1YmFlNlx1YmFlN1x1YmFlOFx1YmFlOVx1YmFlYVx1YmFlYlx1YmFlY1x1YmFlZFx1YmFlZVx1YmFlZlx1YmFmMFx1YmFmMVx1YmFmMlx1YmFmM1x1YmFmNFx1YmFmNVx1YmFmNlx1YmFmN1x1YmFmOFx1YmFmOVx1YmFmYVx1''@;'; put 'put ''YmFmYlx1YmFmZFx1YmFmZVx1YmFmZlx1YmIwMVx1YmIwMlx1YmIwM1x1YmIwNVx1YmIwNlx1YmIwN1x1YmIwOFx1YmIwOVx1YmIwYVx1YmIwYlx1YmIwY1x1YmIwZVx1YmIxMFx1YmIxMlx1YmIxM1x1YmIxNFx1YmIxNVx1YmIxNlx1YmIxN1x1YmIxOVx1YmIxYVx1YmIxYlx1YmIxZFx1YmIx''@;'; put 'put ''ZVx1YmIxZlx1YmIyMVx1YmIyMlx1YmIyM1x1YmIyNFx1YmIyNVx1YmIyNlx1YmIyN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNDVdW0VdXT0zNzEyMCtFLExbMzcxMjArRV09QlsxNDVd''@;'; put 'put ''W0VdKTtmb3IoQlsxNDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiMjhcdWJiMmFcdWJiMmNcdWJiMmRcdWJiMmVcdWJiMmZcdWJiMzBcdWJiMzFcdWJiMzJcdWJiMzNcdWJiMzdcdWJiMzlcdWJiM2FcdWJiM2ZcdWJi''@;'; put 'put ''NDBcdWJiNDFcdWJiNDJcdWJiNDNcdWJiNDZcdWJiNDhcdWJiNGFcdWJiNGJcdWJiNGNcdWJiNGVcdWJiNTFcdWJiNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiNTNcdWJiNTVcdWJiNTZcdWJiNTdcdWJiNTlcdWJiNWFcdWJiNWJcdWJiNWNcdWJiNWRcdWJiNWVc''@;'; put 'put ''dWJiNWZcdWJiNjBcdWJiNjJcdWJiNjRcdWJiNjVcdWJiNjZcdWJiNjdcdWJiNjhcdWJiNjlcdWJiNmFcdWJiNmJcdWJiNmRcdWJiNmVcdWJiNmZcdWJiNzBcdWJiNzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJiNzJcdWJiNzNcdWJiNzRcdWJiNzVcdWJiNzZcdWJi''@;'; put 'put ''NzdcdWJiNzhcdWJiNzlcdWJiN2FcdWJiN2JcdWJiN2NcdWJiN2RcdWJiN2VcdWJiN2ZcdWJiODBcdWJiODFcdWJiODJcdWJiODNcdWJiODRcdWJiODVcdWJiODZcdWJiODdcdWJiODlcdWJiOGFcdWJiOGJcdWJiOGRcdWJiOGVcdWJiOGZcdWJiOTFcdWJiOTJcdWJiOTNcdWJiOTRcdWJiOTVc''@;'; put 'put ''dWJiOTZcdWJiOTdcdWJiOThcdWJiOTlcdWJiOWFcdWJiOWJcdWJiOWNcdWJiOWRcdWJiOWVcdWJiOWZcdWJiYTBcdWJiYTFcdWJiYTJcdWJiYTNcdWJiYTVcdWJiYTZcdWJiYTdcdWJiYTlcdWJiYWFcdWJiYWJcdWJiYWRcdWJiYWVcdWJiYWZcdWJiYjBcdWJiYjFcdWJiYjJcdWJiYjNcdWJi''@;'; put 'put ''YjVcdWJiYjZcdWJiYjhcdWJiYjlcdWJiYmFcdWJiYmJcdWJiYmNcdWJiYmRcdWJiYmVcdWJiYmZcdWJiYzFcdWJiYzJcdWJiYzNcdWJiYzVcdWJiYzZcdWJiYzdcdWJiYzlcdWJiY2FcdWJiY2JcdWJiY2NcdWJiY2RcdWJiY2VcdWJiY2ZcdWJiZDFcdWJiZDJcdWJiZDRcdWJiZDVcdWJiZDZc''@;'; put 'put ''dWJiZDdcdWJiZDhcdWJiZDlcdWJiZGFcdWJiZGJcdWJiZGNcdWJiZGRcdWJiZGVcdWJiZGZcdWJiZTBcdWJiZTFcdWJiZTJcdWJiZTNcdWJiZTRcdWJiZTVcdWJiZTZcdWJiZTdcdWJiZThcdWJiZTlcdWJiZWFcdWJiZWJcdWJiZWNcdWJiZWRcdWJiZWVcdWJiZWZcdWJiZjBcdWJiZjFcdWJi''@;'; put 'put ''ZjJcdWJiZjNcdWJiZjRcdWJiZjVcdWJiZjZcdWJiZjdcdWJiZmFcdWJiZmJcdWJiZmRcdWJiZmVcdWJjMDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTQ2XVtFXV09MzczNzYrRSxMWzM3''@;'; put 'put ''Mzc2K0VdPUJbMTQ2XVtFXSk7Zm9yKEJbMTQ3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzAzXHViYzA0XHViYzA1XHViYzA2XHViYzA3XHViYzBhXHViYzBlXHViYzEwXHViYzEyXHViYzEzXHViYzE5XHViYzFhXHVi''@;'; put 'put ''YzIwXHViYzIxXHViYzIyXHViYzIzXHViYzI2XHViYzI4XHViYzJhXHViYzJiXHViYzJjXHViYzJlXHViYzJmXHViYzMyXHViYzMzXHViYzM1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzM2XHViYzM3XHViYzM5XHViYzNhXHViYzNiXHViYzNjXHViYzNkXHViYzNl''@;'; put 'put ''XHViYzNmXHViYzQyXHViYzQ2XHViYzQ3XHViYzQ4XHViYzRhXHViYzRiXHViYzRlXHViYzRmXHViYzUxXHViYzUyXHViYzUzXHViYzU0XHViYzU1XHViYzU2XHViYzU3XHViYzU4XHViYzU5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViYzVhXHViYzViXHViYzVjXHVi''@;'; put 'put ''YzVlXHViYzVmXHViYzYwXHViYzYxXHViYzYyXHViYzYzXHViYzY0XHViYzY1XHViYzY2XHViYzY3XHViYzY4XHViYzY5XHViYzZhXHViYzZiXHViYzZjXHViYzZkXHViYzZlXHViYzZmXHViYzcwXHViYzcxXHViYzcyXHViYzczXHViYzc0XHViYzc1XHViYzc2XHViYzc3XHViYzc4XHViYzc5''@;'; put 'put ''XHViYzdhXHViYzdiXHViYzdjXHViYzdkXHViYzdlXHViYzdmXHViYzgwXHViYzgxXHViYzgyXHViYzgzXHViYzg2XHViYzg3XHViYzg5XHViYzhhXHViYzhkXHViYzhmXHViYzkwXHViYzkxXHViYzkyXHViYzkzXHViYzk2XHViYzk4XHViYzliXHViYzljXHViYzlkXHViYzllXHViYzlmXHVi''@;'; put 'put ''Y2EyXHViY2EzXHViY2E1XHViY2E2XHViY2E5XHViY2FhXHViY2FiXHViY2FjXHViY2FkXHViY2FlXHViY2FmXHViY2IyXHViY2I2XHViY2I3XHViY2I4XHViY2I5XHViY2JhXHViY2JiXHViY2JlXHViY2JmXHViY2MxXHViY2MyXHViY2MzXHViY2M1XHViY2M2XHViY2M3XHViY2M4XHViY2M5''@;'; put 'put ''XHViY2NhXHViY2NiXHViY2NjXHViY2NlXHViY2QyXHViY2QzXHViY2Q0XHViY2Q2XHViY2Q3XHViY2Q5XHViY2RhXHViY2RiXHViY2RkXHViY2RlXHViY2RmXHViY2UwXHViY2UxXHViY2UyXHViY2UzXHViY2U0XHViY2U1XHViY2U2XHViY2U3XHViY2U4XHViY2U5XHViY2VhXHViY2ViXHVi''@;'; put 'put ''Y2VjXHViY2VkXHViY2VlXHViY2VmXHViY2YwXHViY2YxXHViY2YyXHViY2YzXHViY2Y3XHViY2Y5XHViY2ZhXHViY2ZiXHViY2ZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTQ3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNDddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE0N11bRV1d''@;'; put 'put ''PTM3NjMyK0UsTFszNzYzMitFXT1CWzE0N11bRV0pO2ZvcihCWzE0OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmNmZVx1YmNmZlx1YmQwMFx1YmQwMVx1YmQwMlx1YmQwM1x1YmQwNlx1YmQwOFx1YmQwYVx1YmQwYlx1''@;'; put 'put ''YmQwY1x1YmQwZFx1YmQwZVx1YmQwZlx1YmQxMVx1YmQxMlx1YmQxM1x1YmQxNVx1YmQxNlx1YmQxN1x1YmQxOFx1YmQxOVx1YmQxYVx1YmQxYlx1YmQxY1x1YmQxZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQxZVx1YmQxZlx1YmQyMFx1YmQyMVx1YmQyMlx1YmQy''@;'; put 'put ''M1x1YmQyNVx1YmQyNlx1YmQyN1x1YmQyOFx1YmQyOVx1YmQyYVx1YmQyYlx1YmQyZFx1YmQyZVx1YmQyZlx1YmQzMFx1YmQzMVx1YmQzMlx1YmQzM1x1YmQzNFx1YmQzNVx1YmQzNlx1YmQzN1x1YmQzOFx1YmQzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmQzYVx1''@;'; put 'put ''YmQzYlx1YmQzY1x1YmQzZFx1YmQzZVx1YmQzZlx1YmQ0MVx1YmQ0Mlx1YmQ0M1x1YmQ0NFx1YmQ0NVx1YmQ0Nlx1YmQ0N1x1YmQ0YVx1YmQ0Ylx1YmQ0ZFx1YmQ0ZVx1YmQ0Zlx1YmQ1MVx1YmQ1Mlx1YmQ1M1x1YmQ1NFx1YmQ1NVx1YmQ1Nlx1YmQ1N1x1YmQ1YVx1YmQ1Ylx1YmQ1Y1x1YmQ1''@;'; put 'put ''ZFx1YmQ1ZVx1YmQ1Zlx1YmQ2MFx1YmQ2MVx1YmQ2Mlx1YmQ2M1x1YmQ2NVx1YmQ2Nlx1YmQ2N1x1YmQ2OVx1YmQ2YVx1YmQ2Ylx1YmQ2Y1x1YmQ2ZFx1YmQ2ZVx1YmQ2Zlx1YmQ3MFx1YmQ3MVx1YmQ3Mlx1YmQ3M1x1YmQ3NFx1YmQ3NVx1YmQ3Nlx1YmQ3N1x1YmQ3OFx1YmQ3OVx1YmQ3YVx1''@;'; put 'put ''YmQ3Ylx1YmQ3Y1x1YmQ3ZFx1YmQ3ZVx1YmQ3Zlx1YmQ4Mlx1YmQ4M1x1YmQ4NVx1YmQ4Nlx1YmQ4Ylx1YmQ4Y1x1YmQ4ZFx1YmQ4ZVx1YmQ4Zlx1YmQ5Mlx1YmQ5NFx1YmQ5Nlx1YmQ5N1x1YmQ5OFx1YmQ5Ylx1YmQ5ZFx1YmQ5ZVx1YmQ5Zlx1YmRhMFx1YmRhMVx1YmRhMlx1YmRhM1x1YmRh''@;'; put 'put ''NVx1YmRhNlx1YmRhN1x1YmRhOFx1YmRhOVx1YmRhYVx1YmRhYlx1YmRhY1x1YmRhZFx1YmRhZVx1YmRhZlx1YmRiMVx1YmRiMlx1YmRiM1x1YmRiNFx1YmRiNVx1YmRiNlx1YmRiN1x1YmRiOVx1YmRiYVx1YmRiYlx1YmRiY1x1YmRiZFx1YmRiZVx1YmRiZlx1YmRjMFx1YmRjMVx1YmRjMlx1''@;'; put 'put ''YmRjM1x1YmRjNFx1YmRjNVx1YmRjNlx1YmRjN1x1YmRjOFx1YmRjOVx1YmRjYVx1YmRjYlx1YmRjY1x1YmRjZFx1YmRjZVx1YmRjZlx1YmRkMFx1YmRkMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE0OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTQ4XVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; put 'put ''bWVbQlsxNDhdW0VdXT0zNzg4OCtFLExbMzc4ODgrRV09QlsxNDhdW0VdKTtmb3IoQlsxNDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkZDJcdWJkZDNcdWJkZDZcdWJkZDdcdWJkZDlcdWJkZGFcdWJkZGJcdWJkZGRc''@;'; put 'put ''dWJkZGVcdWJkZGZcdWJkZTBcdWJkZTFcdWJkZTJcdWJkZTNcdWJkZTRcdWJkZTVcdWJkZTZcdWJkZTdcdWJkZThcdWJkZWFcdWJkZWJcdWJkZWNcdWJkZWRcdWJkZWVcdWJkZWZcdWJkZjFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWJkZjJcdWJkZjNcdWJkZjVcdWJk''@;'; put 'put ''ZjZcdWJkZjdcdWJkZjlcdWJkZmFcdWJkZmJcdWJkZmNcdWJkZmRcdWJkZmVcdWJkZmZcdWJlMDFcdWJlMDJcdWJlMDRcdWJlMDZcdWJlMDdcdWJlMDhcdWJlMDlcdWJlMGFcdWJlMGJcdWJlMGVcdWJlMGZcdWJlMTFcdWJlMTJcdWJlMTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWJlMTVcdWJlMTZcdWJlMTdcdWJlMThcdWJlMTlcdWJlMWFcdWJlMWJcdWJlMWVcdWJlMjBcdWJlMjFcdWJlMjJcdWJlMjNcdWJlMjRcdWJlMjVcdWJlMjZcdWJlMjdcdWJlMjhcdWJlMjlcdWJlMmFcdWJlMmJcdWJlMmNcdWJlMmRcdWJlMmVcdWJlMmZcdWJlMzBcdWJlMzFcdWJl''@;'; put 'put ''MzJcdWJlMzNcdWJlMzRcdWJlMzVcdWJlMzZcdWJlMzdcdWJlMzhcdWJlMzlcdWJlM2FcdWJlM2JcdWJlM2NcdWJlM2RcdWJlM2VcdWJlM2ZcdWJlNDBcdWJlNDFcdWJlNDJcdWJlNDNcdWJlNDZcdWJlNDdcdWJlNDlcdWJlNGFcdWJlNGJcdWJlNGRcdWJlNGZcdWJlNTBcdWJlNTFcdWJlNTJc''@;'; put 'put ''dWJlNTNcdWJlNTZcdWJlNThcdWJlNWNcdWJlNWRcdWJlNWVcdWJlNWZcdWJlNjJcdWJlNjNcdWJlNjVcdWJlNjZcdWJlNjdcdWJlNjlcdWJlNmJcdWJlNmNcdWJlNmRcdWJlNmVcdWJlNmZcdWJlNzJcdWJlNzZcdWJlNzdcdWJlNzhcdWJlNzlcdWJlN2FcdWJlN2VcdWJlN2ZcdWJlODFcdWJl''@;'; put 'put ''ODJcdWJlODNcdWJlODVcdWJlODZcdWJlODdcdWJlODhcdWJlODlcdWJlOGFcdWJlOGJcdWJlOGVcdWJlOTJcdWJlOTNcdWJlOTRcdWJlOTVcdWJlOTZcdWJlOTdcdWJlOWFcdWJlOWJcdWJlOWNcdWJlOWRcdWJlOWVcdWJlOWZcdWJlYTBcdWJlYTFcdWJlYTJcdWJlYTNcdWJlYTRcdWJlYTVc''@;'; put 'put ''dWJlYTZcdWJlYTdcdWJlYTlcdWJlYWFcdWJlYWJcdWJlYWNcdWJlYWRcdWJlYWVcdWJlYWZcdWJlYjBcdWJlYjFcdWJlYjJcdWJlYjNcdWJlYjRcdWJlYjVcdWJlYjZcdWJlYjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNDldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE0OV1bRV0uY2hh''@;'; put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMTQ5XVtFXV09MzgxNDQrRSxMWzM4MTQ0K0VdPUJbMTQ5XVtFXSk7Zm9yKEJbMTUwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWI4XHViZWI5XHViZWJhXHViZWJiXHViZWJjXHViZWJk''@;'; put 'put ''XHViZWJlXHViZWJmXHViZWMwXHViZWMxXHViZWMyXHViZWMzXHViZWM0XHViZWM1XHViZWM2XHViZWM3XHViZWM4XHViZWM5XHViZWNhXHViZWNiXHViZWNjXHViZWNkXHViZWNlXHViZWNmXHViZWQyXHViZWQzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHViZWQ1XHVi''@;'; put 'put ''ZWQ2XHViZWQ5XHViZWRhXHViZWRiXHViZWRjXHViZWRkXHViZWRlXHViZWRmXHViZWUxXHViZWUyXHViZWU2XHViZWU3XHViZWU4XHViZWU5XHViZWVhXHViZWViXHViZWVkXHViZWVlXHViZWVmXHViZWYwXHViZWYxXHViZWYyXHViZWYzXHViZWY0XHViZWY1XHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHViZWY2XHViZWY3XHViZWY4XHViZWY5XHViZWZhXHViZWZiXHViZWZjXHViZWZkXHViZWZlXHViZWZmXHViZjAwXHViZjAyXHViZjAzXHViZjA0XHViZjA1XHViZjA2XHViZjA3XHViZjBhXHViZjBiXHViZjBjXHViZjBkXHViZjBlXHViZjBmXHViZjEwXHVi''@;'; put 'put ''ZjExXHViZjEyXHViZjEzXHViZjE0XHViZjE1XHViZjE2XHViZjE3XHViZjFhXHViZjFlXHViZjFmXHViZjIwXHViZjIxXHViZjIyXHViZjIzXHViZjI0XHViZjI1XHViZjI2XHViZjI3XHViZjI4XHViZjI5XHViZjJhXHViZjJiXHViZjJjXHViZjJkXHViZjJlXHViZjJmXHViZjMwXHViZjMx''@;'; put 'put ''XHViZjMyXHViZjMzXHViZjM0XHViZjM1XHViZjM2XHViZjM3XHViZjM4XHViZjM5XHViZjNhXHViZjNiXHViZjNjXHViZjNkXHViZjNlXHViZjNmXHViZjQyXHViZjQzXHViZjQ1XHViZjQ2XHViZjQ3XHViZjQ5XHViZjRhXHViZjRiXHViZjRjXHViZjRkXHViZjRlXHViZjRmXHViZjUyXHVi''@;'; put 'put ''ZjUzXHViZjU0XHViZjU2XHViZjU3XHViZjU4XHViZjU5XHViZjVhXHViZjViXHViZjVjXHViZjVkXHViZjVlXHViZjVmXHViZjYwXHViZjYxXHViZjYyXHViZjYzXHViZjY0XHViZjY1XHViZjY2XHViZjY3XHViZjY4XHViZjY5XHViZjZhXHViZjZiXHViZjZjXHViZjZkXHViZjZlXHViZjZm''@;'; put 'put ''XHViZjcwXHViZjcxXHViZjcyXHViZjczXHViZjc0XHViZjc1XHViZjc2XHViZjc3XHViZjc4XHViZjc5XHViZjdhXHViZjdiXHViZjdjXHViZjdkXHViZjdlXHViZjdmXHViZjgwXHViZjgxXHViZjgyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTUwXS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; put 'put ''QlsxNTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1MF1bRV1dPTM4NDAwK0UsTFszODQwMCtFXT1CWzE1MF1bRV0pO2ZvcihCWzE1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmY4M1x1YmY4NFx1YmY4NVx1YmY4''@;'; put 'put ''Nlx1YmY4N1x1YmY4OFx1YmY4OVx1YmY4YVx1YmY4Ylx1YmY4Y1x1YmY4ZFx1YmY4ZVx1YmY4Zlx1YmY5MFx1YmY5MVx1YmY5Mlx1YmY5M1x1YmY5NVx1YmY5Nlx1YmY5N1x1YmY5OFx1YmY5OVx1YmY5YVx1YmY5Ylx1YmY5Y1x1YmY5ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1YmY5ZVx1YmY5Zlx1YmZhMFx1YmZhMVx1YmZhMlx1YmZhM1x1YmZhNFx1YmZhNVx1YmZhNlx1YmZhN1x1YmZhOFx1YmZhOVx1YmZhYVx1YmZhYlx1YmZhY1x1YmZhZFx1YmZhZVx1YmZhZlx1YmZiMVx1YmZiMlx1YmZiM1x1YmZiNFx1YmZiNVx1YmZiNlx1YmZiN1x1YmZiOFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YmZiOVx1YmZiYVx1YmZiYlx1YmZiY1x1YmZiZFx1YmZiZVx1YmZiZlx1YmZjMFx1YmZjMVx1YmZjMlx1YmZjM1x1YmZjNFx1YmZjNlx1YmZjN1x1YmZjOFx1YmZjOVx1YmZjYVx1YmZjYlx1YmZjZVx1YmZjZlx1YmZkMVx1YmZkMlx1''@;'; put 'put ''YmZkM1x1YmZkNVx1YmZkNlx1YmZkN1x1YmZkOFx1YmZkOVx1YmZkYVx1YmZkYlx1YmZkZFx1YmZkZVx1YmZlMFx1YmZlMlx1YmZlM1x1YmZlNFx1YmZlNVx1YmZlNlx1YmZlN1x1YmZlOFx1YmZlOVx1YmZlYVx1YmZlYlx1YmZlY1x1YmZlZFx1YmZlZVx1YmZlZlx1YmZmMFx1YmZmMVx1YmZm''@;'; put 'put ''Mlx1YmZmM1x1YmZmNFx1YmZmNVx1YmZmNlx1YmZmN1x1YmZmOFx1YmZmOVx1YmZmYVx1YmZmYlx1YmZmY1x1YmZmZFx1YmZmZVx1YmZmZlx1YzAwMFx1YzAwMVx1YzAwMlx1YzAwM1x1YzAwNFx1YzAwNVx1YzAwNlx1YzAwN1x1YzAwOFx1YzAwOVx1YzAwYVx1YzAwYlx1YzAwY1x1YzAwZFx1''@;'; put 'put ''YzAwZVx1YzAwZlx1YzAxMFx1YzAxMVx1YzAxMlx1YzAxM1x1YzAxNFx1YzAxNVx1YzAxNlx1YzAxN1x1YzAxOFx1YzAxOVx1YzAxYVx1YzAxYlx1YzAxY1x1YzAxZFx1YzAxZVx1YzAxZlx1YzAyMFx1YzAyMVx1YzAyMlx1YzAyM1x1YzAyNFx1YzAyNVx1YzAyNlx1YzAyN1x1YzAyOFx1YzAy''@;'; put 'put ''OVx1YzAyYVx1YzAyYlx1YzAyY1x1YzAyZFx1YzAyZVx1YzAyZlx1YzAzMFx1YzAzMVx1YzAzMlx1YzAzM1x1YzAzNFx1YzAzNVx1YzAzNlx1YzAzN1x1YzAzOFx1YzAzOVx1YzAzYVx1YzAzYlx1YzAzZFx1YzAzZVx1YzAzZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1MV0ubGVuZ3Ro''@;'; put 'put ''OysrRSk2NTUzMyE9PUJbMTUxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTFdW0VdXT0zODY1NitFLExbMzg2NTYrRV09QlsxNTFdW0VdKTtmb3IoQlsxNTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMwNDBcdWMw''@;'; put 'put ''NDFcdWMwNDJcdWMwNDNcdWMwNDRcdWMwNDVcdWMwNDZcdWMwNDdcdWMwNDhcdWMwNDlcdWMwNGFcdWMwNGJcdWMwNGNcdWMwNGRcdWMwNGVcdWMwNGZcdWMwNTBcdWMwNTJcdWMwNTNcdWMwNTRcdWMwNTVcdWMwNTZcdWMwNTdcdWMwNTlcdWMwNWFcdWMwNWJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWMwNWRcdWMwNWVcdWMwNWZcdWMwNjFcdWMwNjJcdWMwNjNcdWMwNjRcdWMwNjVcdWMwNjZcdWMwNjdcdWMwNmFcdWMwNmJcdWMwNmNcdWMwNmRcdWMwNmVcdWMwNmZcdWMwNzBcdWMwNzFcdWMwNzJcdWMwNzNcdWMwNzRcdWMwNzVcdWMwNzZcdWMwNzdcdWMw''@;'; put 'put ''NzhcdWMwNzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMwN2FcdWMwN2JcdWMwN2NcdWMwN2RcdWMwN2VcdWMwN2ZcdWMwODBcdWMwODFcdWMwODJcdWMwODNcdWMwODRcdWMwODVcdWMwODZcdWMwODdcdWMwODhcdWMwODlcdWMwOGFcdWMwOGJcdWMwOGNcdWMwOGRc''@;'; put 'put ''dWMwOGVcdWMwOGZcdWMwOTJcdWMwOTNcdWMwOTVcdWMwOTZcdWMwOTdcdWMwOTlcdWMwOWFcdWMwOWJcdWMwOWNcdWMwOWRcdWMwOWVcdWMwOWZcdWMwYTJcdWMwYTRcdWMwYTZcdWMwYTdcdWMwYThcdWMwYTlcdWMwYWFcdWMwYWJcdWMwYWVcdWMwYjFcdWMwYjJcdWMwYjdcdWMwYjhcdWMw''@;'; put 'put ''YjlcdWMwYmFcdWMwYmJcdWMwYmVcdWMwYzJcdWMwYzNcdWMwYzRcdWMwYzZcdWMwYzdcdWMwY2FcdWMwY2JcdWMwY2RcdWMwY2VcdWMwY2ZcdWMwZDFcdWMwZDJcdWMwZDNcdWMwZDRcdWMwZDVcdWMwZDZcdWMwZDdcdWMwZGFcdWMwZGVcdWMwZGZcdWMwZTBcdWMwZTFcdWMwZTJcdWMwZTNc''@;'; put 'put ''dWMwZTZcdWMwZTdcdWMwZTlcdWMwZWFcdWMwZWJcdWMwZWRcdWMwZWVcdWMwZWZcdWMwZjBcdWMwZjFcdWMwZjJcdWMwZjNcdWMwZjZcdWMwZjhcdWMwZmFcdWMwZmJcdWMwZmNcdWMwZmRcdWMwZmVcdWMwZmZcdWMxMDFcdWMxMDJcdWMxMDNcdWMxMDVcdWMxMDZcdWMxMDdcdWMxMDlcdWMx''@;'; put 'put ''MGFcdWMxMGJcdWMxMGNcdWMxMGRcdWMxMGVcdWMxMGZcdWMxMTFcdWMxMTJcdWMxMTNcdWMxMTRcdWMxMTZcdWMxMTdcdWMxMThcdWMxMTlcdWMxMWFcdWMxMWJcdWMxMjFcdWMxMjJcdWMxMjVcdWMxMjhcdWMxMjlcdWMxMmFcdWMxMmJcdWMxMmVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; put 'put ''QlsxNTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTUyXVtFXV09Mzg5MTIrRSxMWzM4OTEyK0VdPUJbMTUyXVtFXSk7Zm9yKEJbMTUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVjMTMyXHVjMTMzXHVjMTM0XHVjMTM1XHVjMTM3XHVjMTNhXHVjMTNiXHVjMTNkXHVjMTNlXHVjMTNmXHVjMTQxXHVjMTQyXHVjMTQzXHVjMTQ0XHVjMTQ1XHVjMTQ2XHVjMTQ3XHVjMTRhXHVjMTRlXHVjMTRmXHVjMTUwXHVjMTUxXHVjMTUyXHVjMTUzXHVjMTU2XHVjMTU3XHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMTU5XHVjMTVhXHVjMTViXHVjMTVkXHVjMTVlXHVjMTVmXHVjMTYwXHVjMTYxXHVjMTYyXHVjMTYzXHVjMTY2XHVjMTZhXHVjMTZiXHVjMTZjXHVjMTZkXHVjMTZlXHVjMTZmXHVjMTcxXHVjMTcyXHVjMTczXHVjMTc1XHVjMTc2XHVj''@;'; put 'put ''MTc3XHVjMTc5XHVjMTdhXHVjMTdiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjMTdjXHVjMTdkXHVjMTdlXHVjMTdmXHVjMTgwXHVjMTgxXHVjMTgyXHVjMTgzXHVjMTg0XHVjMTg2XHVjMTg3XHVjMTg4XHVjMTg5XHVjMThhXHVjMThiXHVjMThmXHVjMTkxXHVjMTky''@;'; put 'put ''XHVjMTkzXHVjMTk1XHVjMTk3XHVjMTk4XHVjMTk5XHVjMTlhXHVjMTliXHVjMTllXHVjMWEwXHVjMWEyXHVjMWEzXHVjMWE0XHVjMWE2XHVjMWE3XHVjMWFhXHVjMWFiXHVjMWFkXHVjMWFlXHVjMWFmXHVjMWIxXHVjMWIyXHVjMWIzXHVjMWI0XHVjMWI1XHVjMWI2XHVjMWI3XHVjMWI4XHVj''@;'; put 'put ''MWI5XHVjMWJhXHVjMWJiXHVjMWJjXHVjMWJlXHVjMWJmXHVjMWMwXHVjMWMxXHVjMWMyXHVjMWMzXHVjMWM1XHVjMWM2XHVjMWM3XHVjMWM5XHVjMWNhXHVjMWNiXHVjMWNkXHVjMWNlXHVjMWNmXHVjMWQwXHVjMWQxXHVjMWQyXHVjMWQzXHVjMWQ1XHVjMWQ2XHVjMWQ5XHVjMWRhXHVjMWRi''@;'; put 'put ''XHVjMWRjXHVjMWRkXHVjMWRlXHVjMWRmXHVjMWUxXHVjMWUyXHVjMWUzXHVjMWU1XHVjMWU2XHVjMWU3XHVjMWU5XHVjMWVhXHVjMWViXHVjMWVjXHVjMWVkXHVjMWVlXHVjMWVmXHVjMWYyXHVjMWY0XHVjMWY1XHVjMWY2XHVjMWY3XHVjMWY4XHVjMWY5XHVjMWZhXHVjMWZiXHVjMWZlXHVj''@;'; put 'put ''MWZmXHVjMjAxXHVjMjAyXHVjMjAzXHVjMjA1XHVjMjA2XHVjMjA3XHVjMjA4XHVjMjA5XHVjMjBhXHVjMjBiXHVjMjBlXHVjMjEwXHVjMjEyXHVjMjEzXHVjMjE0XHVjMjE1XHVjMjE2XHVjMjE3XHVjMjFhXHVjMjFiXHVjMjFkXHVjMjFlXHVjMjIxXHVjMjIyXHVjMjIzXHVmZmZkIi5zcGxp''@;'; put 'put ''dCgiIiksRT0wO0UhPUJbMTUzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1M11bRV1dPTM5MTY4K0UsTFszOTE2OCtFXT1CWzE1M11bRV0pO2ZvcihCWzE1NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1YzIyNFx1YzIyNVx1YzIyNlx1YzIyN1x1YzIyYVx1YzIyY1x1YzIyZVx1YzIzMFx1YzIzM1x1YzIzNVx1YzIzNlx1YzIzN1x1YzIzOFx1YzIzOVx1YzIzYVx1YzIzYlx1YzIzY1x1YzIzZFx1YzIzZVx1YzIzZlx1YzI0MFx1YzI0MVx1YzI0Mlx1YzI0M1x1YzI0''@;'; put 'put ''NFx1YzI0NVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzI0Nlx1YzI0N1x1YzI0OVx1YzI0YVx1YzI0Ylx1YzI0Y1x1YzI0ZFx1YzI0ZVx1YzI0Zlx1YzI1Mlx1YzI1M1x1YzI1NVx1YzI1Nlx1YzI1N1x1YzI1OVx1YzI1YVx1YzI1Ylx1YzI1Y1x1YzI1ZFx1YzI1ZVx1''@;'; put 'put ''YzI1Zlx1YzI2MVx1YzI2Mlx1YzI2M1x1YzI2NFx1YzI2Nlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzI2N1x1YzI2OFx1YzI2OVx1YzI2YVx1YzI2Ylx1YzI2ZVx1YzI2Zlx1YzI3MVx1YzI3Mlx1YzI3M1x1YzI3NVx1YzI3Nlx1YzI3N1x1YzI3OFx1YzI3OVx1YzI3''@;'; put 'put ''YVx1YzI3Ylx1YzI3ZVx1YzI4MFx1YzI4Mlx1YzI4M1x1YzI4NFx1YzI4NVx1YzI4Nlx1YzI4N1x1YzI4YVx1YzI4Ylx1YzI4Y1x1YzI4ZFx1YzI4ZVx1YzI4Zlx1YzI5MVx1YzI5Mlx1YzI5M1x1YzI5NFx1YzI5NVx1YzI5Nlx1YzI5N1x1YzI5OVx1YzI5YVx1YzI5Y1x1YzI5ZVx1YzI5Zlx1''@;'; put 'put ''YzJhMFx1YzJhMVx1YzJhMlx1YzJhM1x1YzJhNlx1YzJhN1x1YzJhOVx1YzJhYVx1YzJhYlx1YzJhZVx1YzJhZlx1YzJiMFx1YzJiMVx1YzJiMlx1YzJiM1x1YzJiNlx1YzJiOFx1YzJiYVx1YzJiYlx1YzJiY1x1YzJiZFx1YzJiZVx1YzJiZlx1YzJjMFx1YzJjMVx1YzJjMlx1YzJjM1x1YzJj''@;'; put 'put ''NFx1YzJjNVx1YzJjNlx1YzJjN1x1YzJjOFx1YzJjOVx1YzJjYVx1YzJjYlx1YzJjY1x1YzJjZFx1YzJjZVx1YzJjZlx1YzJkMFx1YzJkMVx1YzJkMlx1YzJkM1x1YzJkNFx1YzJkNVx1YzJkNlx1YzJkN1x1YzJkOFx1YzJkOVx1YzJkYVx1YzJkYlx1YzJkZVx1YzJkZlx1YzJlMVx1YzJlMlx1''@;'; put 'put ''YzJlNVx1YzJlNlx1YzJlN1x1YzJlOFx1YzJlOVx1YzJlYVx1YzJlZVx1YzJmMFx1YzJmMlx1YzJmM1x1YzJmNFx1YzJmNVx1YzJmN1x1YzJmYVx1YzJmZFx1YzJmZVx1YzJmZlx1YzMwMVx1YzMwMlx1YzMwM1x1YzMwNFx1YzMwNVx1YzMwNlx1YzMwN1x1YzMwYVx1YzMwYlx1YzMwZVx1YzMw''@;'; put 'put ''Zlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTRdW0VdXT0zOTQyNCtFLExbMzk0MjQrRV09QlsxNTRdW0VdKTtmb3IoQlsxNTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMzMTBcdWMzMTFcdWMzMTJcdWMzMTZcdWMzMTdcdWMzMTlcdWMzMWFcdWMzMWJcdWMzMWRcdWMzMWVcdWMzMWZcdWMzMjBcdWMzMjFcdWMzMjJcdWMzMjNcdWMzMjZcdWMzMjdcdWMzMmFcdWMzMmJcdWMzMmNcdWMzMmRcdWMzMmVcdWMz''@;'; put 'put ''MmZcdWMzMzBcdWMzMzFcdWMzMzJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMzMzNcdWMzMzRcdWMzMzVcdWMzMzZcdWMzMzdcdWMzMzhcdWMzMzlcdWMzM2FcdWMzM2JcdWMzM2NcdWMzM2RcdWMzM2VcdWMzM2ZcdWMzNDBcdWMzNDFcdWMzNDJcdWMzNDNcdWMzNDRc''@;'; put 'put ''dWMzNDZcdWMzNDdcdWMzNDhcdWMzNDlcdWMzNGFcdWMzNGJcdWMzNGNcdWMzNGRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWMzNGVcdWMzNGZcdWMzNTBcdWMzNTFcdWMzNTJcdWMzNTNcdWMzNTRcdWMzNTVcdWMzNTZcdWMzNTdcdWMzNThcdWMzNTlcdWMzNWFcdWMz''@;'; put 'put ''NWJcdWMzNWNcdWMzNWRcdWMzNWVcdWMzNWZcdWMzNjBcdWMzNjFcdWMzNjJcdWMzNjNcdWMzNjRcdWMzNjVcdWMzNjZcdWMzNjdcdWMzNmFcdWMzNmJcdWMzNmRcdWMzNmVcdWMzNmZcdWMzNzFcdWMzNzNcdWMzNzRcdWMzNzVcdWMzNzZcdWMzNzdcdWMzN2FcdWMzN2JcdWMzN2VcdWMzN2Zc''@;'; put 'put ''dWMzODBcdWMzODFcdWMzODJcdWMzODNcdWMzODVcdWMzODZcdWMzODdcdWMzODlcdWMzOGFcdWMzOGJcdWMzOGRcdWMzOGVcdWMzOGZcdWMzOTBcdWMzOTFcdWMzOTJcdWMzOTNcdWMzOTRcdWMzOTVcdWMzOTZcdWMzOTdcdWMzOThcdWMzOTlcdWMzOWFcdWMzOWJcdWMzOWNcdWMzOWRcdWMz''@;'; put 'put ''OWVcdWMzOWZcdWMzYTBcdWMzYTFcdWMzYTJcdWMzYTNcdWMzYTRcdWMzYTVcdWMzYTZcdWMzYTdcdWMzYThcdWMzYTlcdWMzYWFcdWMzYWJcdWMzYWNcdWMzYWRcdWMzYWVcdWMzYWZcdWMzYjBcdWMzYjFcdWMzYjJcdWMzYjNcdWMzYjRcdWMzYjVcdWMzYjZcdWMzYjdcdWMzYjhcdWMzYjlc''@;'; put 'put ''dWMzYmFcdWMzYmJcdWMzYmNcdWMzYmRcdWMzYmVcdWMzYmZcdWMzYzFcdWMzYzJcdWMzYzNcdWMzYzRcdWMzYzVcdWMzYzZcdWMzYzdcdWMzYzhcdWMzYzlcdWMzY2FcdWMzY2JcdWMzY2NcdWMzY2RcdWMzY2VcdWMzY2ZcdWMzZDBcdWMzZDFcdWMzZDJcdWMzZDNcdWMzZDRcdWMzZDVcdWMz''@;'; put 'put ''ZDZcdWMzZDdcdWMzZGFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU1XVtFXV09Mzk2ODArRSxMWzM5NjgwK0VdPUJbMTU1XVtFXSk7Zm9yKEJbMTU2XT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjM2RiXHVjM2RkXHVjM2RlXHVjM2UxXHVjM2UzXHVjM2U0XHVjM2U1XHVjM2U2XHVjM2U3XHVjM2VhXHVjM2ViXHVjM2VjXHVjM2VlXHVjM2VmXHVjM2YwXHVjM2YxXHVjM2YyXHVjM2YzXHVjM2Y2XHVjM2Y3XHVj''@;'; put 'put ''M2Y5XHVjM2ZhXHVjM2ZiXHVjM2ZjXHVjM2ZkXHVjM2ZlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjM2ZmXHVjNDAwXHVjNDAxXHVjNDAyXHVjNDAzXHVjNDA0XHVjNDA1XHVjNDA2XHVjNDA3XHVjNDA5XHVjNDBhXHVjNDBiXHVjNDBjXHVjNDBkXHVjNDBlXHVjNDBm''@;'; put 'put ''XHVjNDExXHVjNDEyXHVjNDEzXHVjNDE0XHVjNDE1XHVjNDE2XHVjNDE3XHVjNDE4XHVjNDE5XHVjNDFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNDFiXHVjNDFjXHVjNDFkXHVjNDFlXHVjNDFmXHVjNDIwXHVjNDIxXHVjNDIyXHVjNDIzXHVjNDI1XHVjNDI2XHVj''@;'; put 'put ''NDI3XHVjNDI4XHVjNDI5XHVjNDJhXHVjNDJiXHVjNDJkXHVjNDJlXHVjNDJmXHVjNDMxXHVjNDMyXHVjNDMzXHVjNDM1XHVjNDM2XHVjNDM3XHVjNDM4XHVjNDM5XHVjNDNhXHVjNDNiXHVjNDNlXHVjNDNmXHVjNDQwXHVjNDQxXHVjNDQyXHVjNDQzXHVjNDQ0XHVjNDQ1XHVjNDQ2XHVjNDQ3''@;'; put 'put ''XHVjNDQ5XHVjNDRhXHVjNDRiXHVjNDRjXHVjNDRkXHVjNDRlXHVjNDRmXHVjNDUwXHVjNDUxXHVjNDUyXHVjNDUzXHVjNDU0XHVjNDU1XHVjNDU2XHVjNDU3XHVjNDU4XHVjNDU5XHVjNDVhXHVjNDViXHVjNDVjXHVjNDVkXHVjNDVlXHVjNDVmXHVjNDYwXHVjNDYxXHVjNDYyXHVjNDYzXHVj''@;'; put 'put ''NDY2XHVjNDY3XHVjNDY5XHVjNDZhXHVjNDZiXHVjNDZkXHVjNDZlXHVjNDZmXHVjNDcwXHVjNDcxXHVjNDcyXHVjNDczXHVjNDc2XHVjNDc3XHVjNDc4XHVjNDdhXHVjNDdiXHVjNDdjXHVjNDdkXHVjNDdlXHVjNDdmXHVjNDgxXHVjNDgyXHVjNDgzXHVjNDg0XHVjNDg1XHVjNDg2XHVjNDg3''@;'; put 'put ''XHVjNDg4XHVjNDg5XHVjNDhhXHVjNDhiXHVjNDhjXHVjNDhkXHVjNDhlXHVjNDhmXHVjNDkwXHVjNDkxXHVjNDkyXHVjNDkzXHVjNDk1XHVjNDk2XHVjNDk3XHVjNDk4XHVjNDk5XHVjNDlhXHVjNDliXHVjNDlkXHVjNDllXHVjNDlmXHVjNGEwXHVjNGExXHVjNGEyXHVjNGEzXHVjNGE0XHVj''@;'; put 'put ''NGE1XHVjNGE2XHVjNGE3XHVjNGE4XHVjNGE5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1Nl1bRV1dPTM5OTM2K0UsTFszOTkzNitFXT1CWzE1Nl1bRV0pO2ZvcihCWzE1N109Ilx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRhYVx1YzRhYlx1YzRhY1x1YzRhZFx1YzRhZVx1YzRhZlx1YzRiMFx1YzRiMVx1YzRiMlx1YzRiM1x1YzRiNFx1YzRiNVx1YzRiNlx1YzRiN1x1YzRiOVx1YzRiYVx1YzRiYlx1YzRiZFx1''@;'; put 'put ''YzRiZVx1YzRiZlx1YzRjMFx1YzRjMVx1YzRjMlx1YzRjM1x1YzRjNFx1YzRjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRjNlx1YzRjN1x1YzRjOFx1YzRjOVx1YzRjYVx1YzRjYlx1YzRjY1x1YzRjZFx1YzRjZVx1YzRjZlx1YzRkMFx1YzRkMVx1YzRkMlx1YzRk''@;'; put 'put ''M1x1YzRkNFx1YzRkNVx1YzRkNlx1YzRkN1x1YzRkOFx1YzRkOVx1YzRkYVx1YzRkYlx1YzRkY1x1YzRkZFx1YzRkZVx1YzRkZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzRlMFx1YzRlMVx1YzRlMlx1YzRlM1x1YzRlNFx1YzRlNVx1YzRlNlx1YzRlN1x1YzRlOFx1''@;'; put 'put ''YzRlYVx1YzRlYlx1YzRlY1x1YzRlZFx1YzRlZVx1YzRlZlx1YzRmMlx1YzRmM1x1YzRmNVx1YzRmNlx1YzRmN1x1YzRmOVx1YzRmYlx1YzRmY1x1YzRmZFx1YzRmZVx1YzUwMlx1YzUwM1x1YzUwNFx1YzUwNVx1YzUwNlx1YzUwN1x1YzUwOFx1YzUwOVx1YzUwYVx1YzUwYlx1YzUwZFx1YzUw''@;'; put 'put ''ZVx1YzUwZlx1YzUxMVx1YzUxMlx1YzUxM1x1YzUxNVx1YzUxNlx1YzUxN1x1YzUxOFx1YzUxOVx1YzUxYVx1YzUxYlx1YzUxZFx1YzUxZVx1YzUxZlx1YzUyMFx1YzUyMVx1YzUyMlx1YzUyM1x1YzUyNFx1YzUyNVx1YzUyNlx1YzUyN1x1YzUyYVx1YzUyYlx1YzUyZFx1YzUyZVx1YzUyZlx1''@;'; put 'put ''YzUzMVx1YzUzMlx1YzUzM1x1YzUzNFx1YzUzNVx1YzUzNlx1YzUzN1x1YzUzYVx1YzUzY1x1YzUzZVx1YzUzZlx1YzU0MFx1YzU0MVx1YzU0Mlx1YzU0M1x1YzU0Nlx1YzU0N1x1YzU0Ylx1YzU0Zlx1YzU1MFx1YzU1MVx1YzU1Mlx1YzU1Nlx1YzU1YVx1YzU1Ylx1YzU1Y1x1YzU1Zlx1YzU2''@;'; put 'put ''Mlx1YzU2M1x1YzU2NVx1YzU2Nlx1YzU2N1x1YzU2OVx1YzU2YVx1YzU2Ylx1YzU2Y1x1YzU2ZFx1YzU2ZVx1YzU2Zlx1YzU3Mlx1YzU3Nlx1YzU3N1x1YzU3OFx1YzU3OVx1YzU3YVx1YzU3Ylx1YzU3ZVx1YzU3Zlx1YzU4MVx1YzU4Mlx1YzU4M1x1YzU4NVx1YzU4Nlx1YzU4OFx1YzU4OVx1''@;'; put 'put ''YzU4YVx1YzU4Ylx1YzU4ZVx1YzU5MFx1YzU5Mlx1YzU5M1x1YzU5NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE1N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTU3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNTddW0VdXT00MDE5MitFLExbNDAxOTIrRV09QlsxNTddW0VdKTtmb3Io''@;'; put 'put ''QlsxNThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1OTZcdWM1OTlcdWM1OWFcdWM1OWJcdWM1OWRcdWM1OWVcdWM1OWZcdWM1YTFcdWM1YTJcdWM1YTNcdWM1YTRcdWM1YTVcdWM1YTZcdWM1YTdcdWM1YThcdWM1YWFc''@;'; put 'put ''dWM1YWJcdWM1YWNcdWM1YWRcdWM1YWVcdWM1YWZcdWM1YjBcdWM1YjFcdWM1YjJcdWM1YjNcdWM1YjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1YjdcdWM1YmFcdWM1YmZcdWM1YzBcdWM1YzFcdWM1YzJcdWM1YzNcdWM1Y2JcdWM1Y2RcdWM1Y2ZcdWM1ZDJcdWM1''@;'; put 'put ''ZDNcdWM1ZDVcdWM1ZDZcdWM1ZDdcdWM1ZDlcdWM1ZGFcdWM1ZGJcdWM1ZGNcdWM1ZGRcdWM1ZGVcdWM1ZGZcdWM1ZTJcdWM1ZTRcdWM1ZTZcdWM1ZTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM1ZThcdWM1ZTlcdWM1ZWFcdWM1ZWJcdWM1ZWZcdWM1ZjFcdWM1ZjJc''@;'; put 'put ''dWM1ZjNcdWM1ZjVcdWM1ZjhcdWM1ZjlcdWM1ZmFcdWM1ZmJcdWM2MDJcdWM2MDNcdWM2MDRcdWM2MDlcdWM2MGFcdWM2MGJcdWM2MGRcdWM2MGVcdWM2MGZcdWM2MTFcdWM2MTJcdWM2MTNcdWM2MTRcdWM2MTVcdWM2MTZcdWM2MTdcdWM2MWFcdWM2MWRcdWM2MWVcdWM2MWZcdWM2MjBcdWM2''@;'; put 'put ''MjFcdWM2MjJcdWM2MjNcdWM2MjZcdWM2MjdcdWM2MjlcdWM2MmFcdWM2MmJcdWM2MmZcdWM2MzFcdWM2MzJcdWM2MzZcdWM2MzhcdWM2M2FcdWM2M2NcdWM2M2RcdWM2M2VcdWM2M2ZcdWM2NDJcdWM2NDNcdWM2NDVcdWM2NDZcdWM2NDdcdWM2NDlcdWM2NGFcdWM2NGJcdWM2NGNcdWM2NGRc''@;'; put 'put ''dWM2NGVcdWM2NGZcdWM2NTJcdWM2NTZcdWM2NTdcdWM2NThcdWM2NTlcdWM2NWFcdWM2NWJcdWM2NWVcdWM2NWZcdWM2NjFcdWM2NjJcdWM2NjNcdWM2NjRcdWM2NjVcdWM2NjZcdWM2NjdcdWM2NjhcdWM2NjlcdWM2NmFcdWM2NmJcdWM2NmRcdWM2NmVcdWM2NzBcdWM2NzJcdWM2NzNcdWM2''@;'; put 'put ''NzRcdWM2NzVcdWM2NzZcdWM2NzdcdWM2N2FcdWM2N2JcdWM2N2RcdWM2N2VcdWM2N2ZcdWM2ODFcdWM2ODJcdWM2ODNcdWM2ODRcdWM2ODVcdWM2ODZcdWM2ODdcdWM2OGFcdWM2OGNcdWM2OGVcdWM2OGZcdWM2OTBcdWM2OTFcdWM2OTJcdWM2OTNcdWM2OTZcdWM2OTdcdWM2OTlcdWM2OWFc''@;'; put 'put ''dWM2OWJcdWM2OWRcdWM2OWVcdWM2OWZcdWM2YTBcdWM2YTFcdWM2YTJcdWM2YTNcdWM2YTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE1OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTU4XVtFXV09NDA0NDgrRSxMWzQwNDQ4K0VdPUJb''@;'; put 'put ''MTU4XVtFXSk7Zm9yKEJbMTU5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmE4XHVjNmFhXHVjNmFiXHVjNmFjXHVjNmFkXHVjNmFlXHVjNmFmXHVjNmIyXHVjNmIzXHVjNmI1XHVjNmI2XHVjNmI3XHVjNmJiXHVjNmJj''@;'; put 'put ''XHVjNmJkXHVjNmJlXHVjNmJmXHVjNmMyXHVjNmM0XHVjNmM2XHVjNmM3XHVjNmM4XHVjNmM5XHVjNmNhXHVjNmNiXHVjNmNlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmNmXHVjNmQxXHVjNmQyXHVjNmQzXHVjNmQ1XHVjNmQ2XHVjNmQ3XHVjNmQ4XHVjNmQ5XHVj''@;'; put 'put ''NmRhXHVjNmRiXHVjNmRlXHVjNmRmXHVjNmUyXHVjNmUzXHVjNmU0XHVjNmU1XHVjNmU2XHVjNmU3XHVjNmVhXHVjNmViXHVjNmVkXHVjNmVlXHVjNmVmXHVjNmYxXHVjNmYyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjNmYzXHVjNmY0XHVjNmY1XHVjNmY2XHVjNmY3''@;'; put 'put ''XHVjNmZhXHVjNmZiXHVjNmZjXHVjNmZlXHVjNmZmXHVjNzAwXHVjNzAxXHVjNzAyXHVjNzAzXHVjNzA2XHVjNzA3XHVjNzA5XHVjNzBhXHVjNzBiXHVjNzBkXHVjNzBlXHVjNzBmXHVjNzEwXHVjNzExXHVjNzEyXHVjNzEzXHVjNzE2XHVjNzE4XHVjNzFhXHVjNzFiXHVjNzFjXHVjNzFkXHVj''@;'; put 'put ''NzFlXHVjNzFmXHVjNzIyXHVjNzIzXHVjNzI1XHVjNzI2XHVjNzI3XHVjNzI5XHVjNzJhXHVjNzJiXHVjNzJjXHVjNzJkXHVjNzJlXHVjNzJmXHVjNzMyXHVjNzM0XHVjNzM2XHVjNzM4XHVjNzM5XHVjNzNhXHVjNzNiXHVjNzNlXHVjNzNmXHVjNzQxXHVjNzQyXHVjNzQzXHVjNzQ1XHVjNzQ2''@;'; put 'put ''XHVjNzQ3XHVjNzQ4XHVjNzQ5XHVjNzRiXHVjNzRlXHVjNzUwXHVjNzU5XHVjNzVhXHVjNzViXHVjNzVkXHVjNzVlXHVjNzVmXHVjNzYxXHVjNzYyXHVjNzYzXHVjNzY0XHVjNzY1XHVjNzY2XHVjNzY3XHVjNzY5XHVjNzZhXHVjNzZjXHVjNzZkXHVjNzZlXHVjNzZmXHVjNzcwXHVjNzcxXHVj''@;'; put 'put ''NzcyXHVjNzczXHVjNzc2XHVjNzc3XHVjNzc5XHVjNzdhXHVjNzdiXHVjNzdmXHVjNzgwXHVjNzgxXHVjNzgyXHVjNzg2XHVjNzhiXHVjNzhjXHVjNzhkXHVjNzhmXHVjNzkyXHVjNzkzXHVjNzk1XHVjNzk5XHVjNzliXHVjNzljXHVjNzlkXHVjNzllXHVjNzlmXHVjN2EyXHVjN2E3XHVjN2E4''@;'; put 'put ''XHVjN2E5XHVjN2FhXHVjN2FiXHVjN2FlXHVjN2FmXHVjN2IxXHVjN2IyXHVjN2IzXHVjN2I1XHVjN2I2XHVjN2I3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTU5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE1OV1bRV1dPTQwNzA0K0Us''@;'; put 'put ''TFs0MDcwNCtFXT1CWzE1OV1bRV0pO2ZvcihCWzE2MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdiOFx1YzdiOVx1YzdiYVx1YzdiYlx1YzdiZVx1YzdjMlx1YzdjM1x1YzdjNFx1YzdjNVx1YzdjNlx1YzdjN1x1Yzdj''@;'; put 'put ''YVx1YzdjYlx1YzdjZFx1YzdjZlx1YzdkMVx1YzdkMlx1YzdkM1x1YzdkNFx1YzdkNVx1YzdkNlx1YzdkN1x1YzdkOVx1YzdkYVx1YzdkYlx1YzdkY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdkZVx1YzdkZlx1YzdlMFx1YzdlMVx1YzdlMlx1YzdlM1x1YzdlNVx1''@;'; put 'put ''YzdlNlx1YzdlN1x1YzdlOVx1YzdlYVx1YzdlYlx1YzdlZFx1YzdlZVx1YzdlZlx1YzdmMFx1YzdmMVx1YzdmMlx1YzdmM1x1YzdmNFx1YzdmNVx1YzdmNlx1YzdmN1x1YzdmOFx1YzdmOVx1YzdmYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzdmYlx1YzdmY1x1Yzdm''@;'; put 'put ''ZFx1YzdmZVx1YzdmZlx1YzgwMlx1YzgwM1x1YzgwNVx1YzgwNlx1YzgwN1x1YzgwOVx1YzgwYlx1YzgwY1x1YzgwZFx1YzgwZVx1YzgwZlx1YzgxMlx1YzgxNFx1YzgxN1x1YzgxOFx1YzgxOVx1YzgxYVx1YzgxYlx1YzgxZVx1YzgxZlx1YzgyMVx1YzgyMlx1YzgyM1x1YzgyNVx1YzgyNlx1''@;'; put 'put ''YzgyN1x1YzgyOFx1YzgyOVx1YzgyYVx1YzgyYlx1YzgyZVx1YzgzMFx1YzgzMlx1YzgzM1x1YzgzNFx1YzgzNVx1YzgzNlx1YzgzN1x1YzgzOVx1YzgzYVx1YzgzYlx1YzgzZFx1YzgzZVx1YzgzZlx1Yzg0MVx1Yzg0Mlx1Yzg0M1x1Yzg0NFx1Yzg0NVx1Yzg0Nlx1Yzg0N1x1Yzg0YVx1Yzg0''@;'; put 'put ''Ylx1Yzg0ZVx1Yzg0Zlx1Yzg1MFx1Yzg1MVx1Yzg1Mlx1Yzg1M1x1Yzg1NVx1Yzg1Nlx1Yzg1N1x1Yzg1OFx1Yzg1OVx1Yzg1YVx1Yzg1Ylx1Yzg1Y1x1Yzg1ZFx1Yzg1ZVx1Yzg1Zlx1Yzg2MFx1Yzg2MVx1Yzg2Mlx1Yzg2M1x1Yzg2NFx1Yzg2NVx1Yzg2Nlx1Yzg2N1x1Yzg2OFx1Yzg2OVx1''@;'; put 'put ''Yzg2YVx1Yzg2Ylx1Yzg2Y1x1Yzg2ZFx1Yzg2ZVx1Yzg2Zlx1Yzg3Mlx1Yzg3M1x1Yzg3NVx1Yzg3Nlx1Yzg3N1x1Yzg3OVx1Yzg3Ylx1Yzg3Y1x1Yzg3ZFx1Yzg3ZVx1Yzg3Zlx1Yzg4Mlx1Yzg4NFx1Yzg4OFx1Yzg4OVx1Yzg4YVx1Yzg4ZVx1Yzg4Zlx1Yzg5MFx1Yzg5MVx1Yzg5Mlx1Yzg5''@;'; put 'put ''M1x1Yzg5NVx1Yzg5Nlx1Yzg5N1x1Yzg5OFx1Yzg5OVx1Yzg5YVx1Yzg5Ylx1Yzg5Y1x1Yzg5ZVx1YzhhMFx1YzhhMlx1YzhhM1x1YzhhNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjBd''@;'; put 'put ''W0VdXT00MDk2MCtFLExbNDA5NjArRV09QlsxNjBdW0VdKTtmb3IoQlsxNjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4YTVcdWM4YTZcdWM4YTdcdWM4YTlcdWM4YWFcdWM4YWJcdWM4YWNcdWM4YWRcdWM4YWVcdWM4''@;'; put 'put ''YWZcdWM4YjBcdWM4YjFcdWM4YjJcdWM4YjNcdWM4YjRcdWM4YjVcdWM4YjZcdWM4YjdcdWM4YjhcdWM4YjlcdWM4YmFcdWM4YmJcdWM4YmVcdWM4YmZcdWM4YzBcdWM4YzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4YzJcdWM4YzNcdWM4YzVcdWM4YzZcdWM4Yzdc''@;'; put 'put ''dWM4YzlcdWM4Y2FcdWM4Y2JcdWM4Y2RcdWM4Y2VcdWM4Y2ZcdWM4ZDBcdWM4ZDFcdWM4ZDJcdWM4ZDNcdWM4ZDZcdWM4ZDhcdWM4ZGFcdWM4ZGJcdWM4ZGNcdWM4ZGRcdWM4ZGVcdWM4ZGZcdWM4ZTJcdWM4ZTNcdWM4ZTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM4''@;'; put 'put ''ZTZcdWM4ZTdcdWM4ZThcdWM4ZTlcdWM4ZWFcdWM4ZWJcdWM4ZWNcdWM4ZWRcdWM4ZWVcdWM4ZWZcdWM4ZjBcdWM4ZjFcdWM4ZjJcdWM4ZjNcdWM4ZjRcdWM4ZjZcdWM4ZjdcdWM4ZjhcdWM4ZjlcdWM4ZmFcdWM4ZmJcdWM4ZmVcdWM4ZmZcdWM5MDFcdWM5MDJcdWM5MDNcdWM5MDdcdWM5MDhc''@;'; put 'put ''dWM5MDlcdWM5MGFcdWM5MGJcdWM5MGVcdTMwMDBcdTMwMDFcdTMwMDJceGI3XHUyMDI1XHUyMDI2XHhhOFx1MzAwM1x4YWRcdTIwMTVcdTIyMjVcdWZmM2NcdTIyM2NcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDhcdTMwMDlcdTMwMGFcdTMwMGJcdTMwMGNcdTMw''@;'; put 'put ''MGRcdTMwMGVcdTMwMGZcdTMwMTBcdTMwMTFceGIxXHhkN1x4ZjdcdTIyNjBcdTIyNjRcdTIyNjVcdTIyMWVcdTIyMzRceGIwXHUyMDMyXHUyMDMzXHUyMTAzXHUyMTJiXHVmZmUwXHVmZmUxXHVmZmU1XHUyNjQyXHUyNjQwXHUyMjIwXHUyMmE1XHUyMzEyXHUyMjAyXHUyMjA3XHUyMjYxXHUy''@;'; put 'put ''MjUyXHhhN1x1MjAzYlx1MjYwNlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjViZFx1MjViY1x1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MjE5NFx1MzAxM1x1MjI2YVx1MjI2Ylx1MjIxYVx1MjIzZFx1MjIxZFx1MjIzNVx1''@;'; put 'put ''MjIyYlx1MjIyY1x1MjIwOFx1MjIwYlx1MjI4Nlx1MjI4N1x1MjI4Mlx1MjI4M1x1MjIyYVx1MjIyOVx1MjIyN1x1MjIyOFx1ZmZlMlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjFdW0Vd''@;'; put 'put ''XT00MTIxNitFLExbNDEyMTYrRV09QlsxNjFdW0VdKTtmb3IoQlsxNjJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5MTBcdWM5MTJcdWM5MTNcdWM5MTRcdWM5MTVcdWM5MTZcdWM5MTdcdWM5MTlcdWM5MWFcdWM5MWJc''@;'; put 'put ''dWM5MWNcdWM5MWRcdWM5MWVcdWM5MWZcdWM5MjBcdWM5MjFcdWM5MjJcdWM5MjNcdWM5MjRcdWM5MjVcdWM5MjZcdWM5MjdcdWM5MjhcdWM5MjlcdWM5MmFcdWM5MmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5MmRcdWM5MmVcdWM5MmZcdWM5MzBcdWM5MzFcdWM5''@;'; put 'put ''MzJcdWM5MzNcdWM5MzVcdWM5MzZcdWM5MzdcdWM5MzhcdWM5MzlcdWM5M2FcdWM5M2JcdWM5M2NcdWM5M2RcdWM5M2VcdWM5M2ZcdWM5NDBcdWM5NDFcdWM5NDJcdWM5NDNcdWM5NDRcdWM5NDVcdWM5NDZcdWM5NDdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5NDhc''@;'; put 'put ''dWM5NDlcdWM5NGFcdWM5NGJcdWM5NGNcdWM5NGRcdWM5NGVcdWM5NGZcdWM5NTJcdWM5NTNcdWM5NTVcdWM5NTZcdWM5NTdcdWM5NTlcdWM5NWFcdWM5NWJcdWM5NWNcdWM5NWRcdWM5NWVcdWM5NWZcdWM5NjJcdWM5NjRcdWM5NjVcdWM5NjZcdWM5NjdcdWM5NjhcdWM5NjlcdWM5NmFcdWM5''@;'; put 'put ''NmJcdWM5NmRcdWM5NmVcdWM5NmZcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDNceGI0XHVmZjVlXHUwMmM3XHUwMmQ4XHUwMmRkXHUwMmRhXHUwMmQ5XHhiOFx1MDJkYlx4YTFceGJmXHUwMmQwXHUyMjJlXHUyMjExXHUyMjBmXHhhNFx1MjEwOVx1MjAzMFx1MjVjMVx1MjVjMFx1MjViN1x1MjVi''@;'; put 'put ''Nlx1MjY2NFx1MjY2MFx1MjY2MVx1MjY2NVx1MjY2N1x1MjY2M1x1MjI5OVx1MjVjOFx1MjVhM1x1MjVkMFx1MjVkMVx1MjU5Mlx1MjVhNFx1MjVhNVx1MjVhOFx1MjVhN1x1MjVhNlx1MjVhOVx1MjY2OFx1MjYwZlx1MjYwZVx1MjYxY1x1MjYxZVx4YjZcdTIwMjBcdTIwMjFcdTIxOTVcdTIx''@;'; put 'put ''OTdcdTIxOTlcdTIxOTZcdTIxOThcdTI2NmRcdTI2NjlcdTI2NmFcdTI2NmNcdTMyN2ZcdTMyMWNcdTIxMTZcdTMzYzdcdTIxMjJcdTMzYzJcdTMzZDhcdTIxMjFcdTIwYWNceGFlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2Ml1bRV1d''@;'; put 'put ''PTQxNDcyK0UsTFs0MTQ3MitFXT1CWzE2Ml1bRV0pO2ZvcihCWzE2M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk3MVx1Yzk3Mlx1Yzk3M1x1Yzk3NVx1Yzk3Nlx1Yzk3N1x1Yzk3OFx1Yzk3OVx1Yzk3YVx1Yzk3Ylx1''@;'; put 'put ''Yzk3ZFx1Yzk3ZVx1Yzk3Zlx1Yzk4MFx1Yzk4MVx1Yzk4Mlx1Yzk4M1x1Yzk4NFx1Yzk4NVx1Yzk4Nlx1Yzk4N1x1Yzk4YVx1Yzk4Ylx1Yzk4ZFx1Yzk4ZVx1Yzk4Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Yzk5MVx1Yzk5Mlx1Yzk5M1x1Yzk5NFx1Yzk5NVx1Yzk5''@;'; put 'put ''Nlx1Yzk5N1x1Yzk5YVx1Yzk5Y1x1Yzk5ZVx1Yzk5Zlx1YzlhMFx1YzlhMVx1YzlhMlx1YzlhM1x1YzlhNFx1YzlhNVx1YzlhNlx1YzlhN1x1YzlhOFx1YzlhOVx1YzlhYVx1YzlhYlx1YzlhY1x1YzlhZFx1YzlhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1YzlhZlx1''@;'; put 'put ''YzliMFx1YzliMVx1YzliMlx1YzliM1x1YzliNFx1YzliNVx1YzliNlx1YzliN1x1YzliOFx1YzliOVx1YzliYVx1YzliYlx1YzliY1x1YzliZFx1YzliZVx1YzliZlx1YzljMlx1YzljM1x1YzljNVx1YzljNlx1YzljOVx1YzljYlx1YzljY1x1YzljZFx1YzljZVx1YzljZlx1YzlkMlx1Yzlk''@;'; put 'put ''NFx1YzlkN1x1YzlkOFx1YzlkYlx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmYwNFx1ZmYwNVx1ZmYwNlx1ZmYwN1x1ZmYwOFx1ZmYwOVx1ZmYwYVx1ZmYwYlx1ZmYwY1x1ZmYwZFx1ZmYwZVx1ZmYwZlx1ZmYxMFx1ZmYxMVx1ZmYxMlx1ZmYxM1x1ZmYxNFx1ZmYxNVx1ZmYxNlx1ZmYxN1x1ZmYxOFx1''@;'; put 'put ''ZmYxOVx1ZmYxYVx1ZmYxYlx1ZmYxY1x1ZmYxZFx1ZmYxZVx1ZmYxZlx1ZmYyMFx1ZmYyMVx1ZmYyMlx1ZmYyM1x1ZmYyNFx1ZmYyNVx1ZmYyNlx1ZmYyN1x1ZmYyOFx1ZmYyOVx1ZmYyYVx1ZmYyYlx1ZmYyY1x1ZmYyZFx1ZmYyZVx1ZmYyZlx1ZmYzMFx1ZmYzMVx1ZmYzMlx1ZmYzM1x1ZmYz''@;'; put 'put ''NFx1ZmYzNVx1ZmYzNlx1ZmYzN1x1ZmYzOFx1ZmYzOVx1ZmYzYVx1ZmYzYlx1ZmZlNlx1ZmYzZFx1ZmYzZVx1ZmYzZlx1ZmY0MFx1ZmY0MVx1ZmY0Mlx1ZmY0M1x1ZmY0NFx1ZmY0NVx1ZmY0Nlx1ZmY0N1x1ZmY0OFx1ZmY0OVx1ZmY0YVx1ZmY0Ylx1ZmY0Y1x1ZmY0ZFx1ZmY0ZVx1ZmY0Zlx1''@;'; put 'put ''ZmY1MFx1ZmY1MVx1ZmY1Mlx1ZmY1M1x1ZmY1NFx1ZmY1NVx1ZmY1Nlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1ZmY1Ylx1ZmY1Y1x1ZmY1ZFx1ZmZlM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYzXVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; put 'put ''bWVbQlsxNjNdW0VdXT00MTcyOCtFLExbNDE3MjgrRV09QlsxNjNdW0VdKTtmb3IoQlsxNjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWM5ZGVcdWM5ZGZcdWM5ZTFcdWM5ZTNcdWM5ZTVcdWM5ZTZcdWM5ZThcdWM5ZTlc''@;'; put 'put ''dWM5ZWFcdWM5ZWJcdWM5ZWVcdWM5ZjJcdWM5ZjNcdWM5ZjRcdWM5ZjVcdWM5ZjZcdWM5ZjdcdWM5ZmFcdWM5ZmJcdWM5ZmRcdWM5ZmVcdWM5ZmZcdWNhMDFcdWNhMDJcdWNhMDNcdWNhMDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNhMDVcdWNhMDZcdWNhMDdcdWNh''@;'; put 'put ''MGFcdWNhMGVcdWNhMGZcdWNhMTBcdWNhMTFcdWNhMTJcdWNhMTNcdWNhMTVcdWNhMTZcdWNhMTdcdWNhMTlcdWNhMWFcdWNhMWJcdWNhMWNcdWNhMWRcdWNhMWVcdWNhMWZcdWNhMjBcdWNhMjFcdWNhMjJcdWNhMjNcdWNhMjRcdWNhMjVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWNhMjZcdWNhMjdcdWNhMjhcdWNhMmFcdWNhMmJcdWNhMmNcdWNhMmRcdWNhMmVcdWNhMmZcdWNhMzBcdWNhMzFcdWNhMzJcdWNhMzNcdWNhMzRcdWNhMzVcdWNhMzZcdWNhMzdcdWNhMzhcdWNhMzlcdWNhM2FcdWNhM2JcdWNhM2NcdWNhM2RcdWNhM2VcdWNhM2ZcdWNhNDBcdWNh''@;'; put 'put ''NDFcdWNhNDJcdWNhNDNcdWNhNDRcdWNhNDVcdWNhNDZcdTMxMzFcdTMxMzJcdTMxMzNcdTMxMzRcdTMxMzVcdTMxMzZcdTMxMzdcdTMxMzhcdTMxMzlcdTMxM2FcdTMxM2JcdTMxM2NcdTMxM2RcdTMxM2VcdTMxM2ZcdTMxNDBcdTMxNDFcdTMxNDJcdTMxNDNcdTMxNDRcdTMxNDVcdTMxNDZc''@;'; put 'put ''dTMxNDdcdTMxNDhcdTMxNDlcdTMxNGFcdTMxNGJcdTMxNGNcdTMxNGRcdTMxNGVcdTMxNGZcdTMxNTBcdTMxNTFcdTMxNTJcdTMxNTNcdTMxNTRcdTMxNTVcdTMxNTZcdTMxNTdcdTMxNThcdTMxNTlcdTMxNWFcdTMxNWJcdTMxNWNcdTMxNWRcdTMxNWVcdTMxNWZcdTMxNjBcdTMxNjFcdTMx''@;'; put 'put ''NjJcdTMxNjNcdTMxNjRcdTMxNjVcdTMxNjZcdTMxNjdcdTMxNjhcdTMxNjlcdTMxNmFcdTMxNmJcdTMxNmNcdTMxNmRcdTMxNmVcdTMxNmZcdTMxNzBcdTMxNzFcdTMxNzJcdTMxNzNcdTMxNzRcdTMxNzVcdTMxNzZcdTMxNzdcdTMxNzhcdTMxNzlcdTMxN2FcdTMxN2JcdTMxN2NcdTMxN2Rc''@;'; put 'put ''dTMxN2VcdTMxN2ZcdTMxODBcdTMxODFcdTMxODJcdTMxODNcdTMxODRcdTMxODVcdTMxODZcdTMxODdcdTMxODhcdTMxODlcdTMxOGFcdTMxOGJcdTMxOGNcdTMxOGRcdTMxOGVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NF1bRV0uY2hh''@;'; put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMTY0XVtFXV09NDE5ODQrRSxMWzQxOTg0K0VdPUJbMTY0XVtFXSk7Zm9yKEJbMTY1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTQ3XHVjYTQ4XHVjYTQ5XHVjYTRhXHVjYTRiXHVjYTRl''@;'; put 'put ''XHVjYTRmXHVjYTUxXHVjYTUyXHVjYTUzXHVjYTU1XHVjYTU2XHVjYTU3XHVjYTU4XHVjYTU5XHVjYTVhXHVjYTViXHVjYTVlXHVjYTYyXHVjYTYzXHVjYTY0XHVjYTY1XHVjYTY2XHVjYTY3XHVjYTY5XHVjYTZhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYTZiXHVj''@;'; put 'put ''YTZjXHVjYTZkXHVjYTZlXHVjYTZmXHVjYTcwXHVjYTcxXHVjYTcyXHVjYTczXHVjYTc0XHVjYTc1XHVjYTc2XHVjYTc3XHVjYTc4XHVjYTc5XHVjYTdhXHVjYTdiXHVjYTdjXHVjYTdlXHVjYTdmXHVjYTgwXHVjYTgxXHVjYTgyXHVjYTgzXHVjYTg1XHVjYTg2XHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVjYTg3XHVjYTg4XHVjYTg5XHVjYThhXHVjYThiXHVjYThjXHVjYThkXHVjYThlXHVjYThmXHVjYTkwXHVjYTkxXHVjYTkyXHVjYTkzXHVjYTk0XHVjYTk1XHVjYTk2XHVjYTk3XHVjYTk5XHVjYTlhXHVjYTliXHVjYTljXHVjYTlkXHVjYTllXHVjYTlmXHVj''@;'; put 'put ''YWEwXHVjYWExXHVjYWEyXHVjYWEzXHVjYWE0XHVjYWE1XHVjYWE2XHVjYWE3XHUyMTcwXHUyMTcxXHUyMTcyXHUyMTczXHUyMTc0XHUyMTc1XHUyMTc2XHUyMTc3XHUyMTc4XHUyMTc5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMTYwXHUyMTYxXHUyMTYyXHUyMTYzXHUyMTY0''@;'; put 'put ''XHUyMTY1XHUyMTY2XHUyMTY3XHUyMTY4XHUyMTY5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUwMzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUw''@;'; put 'put ''M2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2Ji''@;'; put 'put ''XHUwM2JjXHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY1XS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; put 'put ''QlsxNjVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NV1bRV1dPTQyMjQwK0UsTFs0MjI0MCtFXT1CWzE2NV1bRV0pO2ZvcihCWzE2Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FhOFx1Y2FhOVx1Y2FhYVx1Y2Fh''@;'; put 'put ''Ylx1Y2FhY1x1Y2FhZFx1Y2FhZVx1Y2FhZlx1Y2FiMFx1Y2FiMVx1Y2FiMlx1Y2FiM1x1Y2FiNFx1Y2FiNVx1Y2FiNlx1Y2FiN1x1Y2FiOFx1Y2FiOVx1Y2FiYVx1Y2FiYlx1Y2FiZVx1Y2FiZlx1Y2FjMVx1Y2FjMlx1Y2FjM1x1Y2FjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1Y2FjNlx1Y2FjN1x1Y2FjOFx1Y2FjOVx1Y2FjYVx1Y2FjYlx1Y2FjZVx1Y2FkMFx1Y2FkMlx1Y2FkNFx1Y2FkNVx1Y2FkNlx1Y2FkN1x1Y2FkYVx1Y2FkYlx1Y2FkY1x1Y2FkZFx1Y2FkZVx1Y2FkZlx1Y2FlMVx1Y2FlMlx1Y2FlM1x1Y2FlNFx1Y2FlNVx1Y2FlNlx1Y2FlN1x1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2FlOFx1Y2FlOVx1Y2FlYVx1Y2FlYlx1Y2FlZFx1Y2FlZVx1Y2FlZlx1Y2FmMFx1Y2FmMVx1Y2FmMlx1Y2FmM1x1Y2FmNVx1Y2FmNlx1Y2FmN1x1Y2FmOFx1Y2FmOVx1Y2FmYVx1Y2FmYlx1Y2FmY1x1Y2FmZFx1Y2FmZVx1Y2FmZlx1''@;'; put 'put ''Y2IwMFx1Y2IwMVx1Y2IwMlx1Y2IwM1x1Y2IwNFx1Y2IwNVx1Y2IwNlx1Y2IwN1x1Y2IwOVx1Y2IwYVx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUy''@;'; put 'put ''M1x1MjUzM1x1MjUyYlx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0Mlx1MjUxMlx1MjUxMVx1MjUxYVx1MjUxOVx1MjUxNlx1MjUxNVx1MjUwZVx1MjUwZFx1MjUxZVx1MjUxZlx1MjUyMVx1MjUyMlx1MjUyNlx1''@;'; put 'put ''MjUyN1x1MjUyOVx1MjUyYVx1MjUyZFx1MjUyZVx1MjUzMVx1MjUzMlx1MjUzNVx1MjUzNlx1MjUzOVx1MjUzYVx1MjUzZFx1MjUzZVx1MjU0MFx1MjU0MVx1MjU0M1x1MjU0NFx1MjU0NVx1MjU0Nlx1MjU0N1x1MjU0OFx1MjU0OVx1MjU0YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Nl0ubGVuZ3Ro''@;'; put 'put ''OysrRSk2NTUzMyE9PUJbMTY2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjZdW0VdXT00MjQ5NitFLExbNDI0OTYrRV09QlsxNjZdW0VdKTtmb3IoQlsxNjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiMGJcdWNi''@;'; put 'put ''MGNcdWNiMGRcdWNiMGVcdWNiMGZcdWNiMTFcdWNiMTJcdWNiMTNcdWNiMTVcdWNiMTZcdWNiMTdcdWNiMTlcdWNiMWFcdWNiMWJcdWNiMWNcdWNiMWRcdWNiMWVcdWNiMWZcdWNiMjJcdWNiMjNcdWNiMjRcdWNiMjVcdWNiMjZcdWNiMjdcdWNiMjhcdWNiMjlcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWNiMmFcdWNiMmJcdWNiMmNcdWNiMmRcdWNiMmVcdWNiMmZcdWNiMzBcdWNiMzFcdWNiMzJcdWNiMzNcdWNiMzRcdWNiMzVcdWNiMzZcdWNiMzdcdWNiMzhcdWNiMzlcdWNiM2FcdWNiM2JcdWNiM2NcdWNiM2RcdWNiM2VcdWNiM2ZcdWNiNDBcdWNiNDJcdWNi''@;'; put 'put ''NDNcdWNiNDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNiNDVcdWNiNDZcdWNiNDdcdWNiNGFcdWNiNGJcdWNiNGRcdWNiNGVcdWNiNGZcdWNiNTFcdWNiNTJcdWNiNTNcdWNiNTRcdWNiNTVcdWNiNTZcdWNiNTdcdWNiNWFcdWNiNWJcdWNiNWNcdWNiNWVcdWNiNWZc''@;'; put 'put ''dWNiNjBcdWNiNjFcdWNiNjJcdWNiNjNcdWNiNjVcdWNiNjZcdWNiNjdcdWNiNjhcdWNiNjlcdWNiNmFcdWNiNmJcdWNiNmNcdTMzOTVcdTMzOTZcdTMzOTdcdTIxMTNcdTMzOThcdTMzYzRcdTMzYTNcdTMzYTRcdTMzYTVcdTMzYTZcdTMzOTlcdTMzOWFcdTMzOWJcdTMzOWNcdTMzOWRcdTMz''@;'; put 'put ''OWVcdTMzOWZcdTMzYTBcdTMzYTFcdTMzYTJcdTMzY2FcdTMzOGRcdTMzOGVcdTMzOGZcdTMzY2ZcdTMzODhcdTMzODlcdTMzYzhcdTMzYTdcdTMzYThcdTMzYjBcdTMzYjFcdTMzYjJcdTMzYjNcdTMzYjRcdTMzYjVcdTMzYjZcdTMzYjdcdTMzYjhcdTMzYjlcdTMzODBcdTMzODFcdTMzODJc''@;'; put 'put ''dTMzODNcdTMzODRcdTMzYmFcdTMzYmJcdTMzYmNcdTMzYmRcdTMzYmVcdTMzYmZcdTMzOTBcdTMzOTFcdTMzOTJcdTMzOTNcdTMzOTRcdTIxMjZcdTMzYzBcdTMzYzFcdTMzOGFcdTMzOGJcdTMzOGNcdTMzZDZcdTMzYzVcdTMzYWRcdTMzYWVcdTMzYWZcdTMzZGJcdTMzYTlcdTMzYWFcdTMz''@;'; put 'put ''YWJcdTMzYWNcdTMzZGRcdTMzZDBcdTMzZDNcdTMzYzNcdTMzYzlcdTMzZGNcdTMzYzZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; put 'put ''QlsxNjddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY3XVtFXV09NDI3NTIrRSxMWzQyNzUyK0VdPUJbMTY3XVtFXSk7Zm9yKEJbMTY4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVjYjZkXHVjYjZlXHVjYjZmXHVjYjcwXHVjYjcxXHVjYjcyXHVjYjczXHVjYjc0XHVjYjc1XHVjYjc2XHVjYjc3XHVjYjdhXHVjYjdiXHVjYjdjXHVjYjdkXHVjYjdlXHVjYjdmXHVjYjgwXHVjYjgxXHVjYjgyXHVjYjgzXHVjYjg0XHVjYjg1XHVjYjg2XHVjYjg3XHVjYjg4XHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYjg5XHVjYjhhXHVjYjhiXHVjYjhjXHVjYjhkXHVjYjhlXHVjYjhmXHVjYjkwXHVjYjkxXHVjYjkyXHVjYjkzXHVjYjk0XHVjYjk1XHVjYjk2XHVjYjk3XHVjYjk4XHVjYjk5XHVjYjlhXHVjYjliXHVjYjlkXHVjYjllXHVjYjlmXHVj''@;'; put 'put ''YmEwXHVjYmExXHVjYmEyXHVjYmEzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjYmE0XHVjYmE1XHVjYmE2XHVjYmE3XHVjYmE4XHVjYmE5XHVjYmFhXHVjYmFiXHVjYmFjXHVjYmFkXHVjYmFlXHVjYmFmXHVjYmIwXHVjYmIxXHVjYmIyXHVjYmIzXHVjYmI0XHVjYmI1''@;'; put 'put ''XHVjYmI2XHVjYmI3XHVjYmI5XHVjYmJhXHVjYmJiXHVjYmJjXHVjYmJkXHVjYmJlXHVjYmJmXHVjYmMwXHVjYmMxXHVjYmMyXHVjYmMzXHVjYmM0XHhjNlx4ZDBceGFhXHUwMTI2XHVmZmZkXHUwMTMyXHVmZmZkXHUwMTNmXHUwMTQxXHhkOFx1MDE1Mlx4YmFceGRlXHUwMTY2XHUwMTRhXHVm''@;'; put 'put ''ZmZkXHUzMjYwXHUzMjYxXHUzMjYyXHUzMjYzXHUzMjY0XHUzMjY1XHUzMjY2XHUzMjY3XHUzMjY4XHUzMjY5XHUzMjZhXHUzMjZiXHUzMjZjXHUzMjZkXHUzMjZlXHUzMjZmXHUzMjcwXHUzMjcxXHUzMjcyXHUzMjczXHUzMjc0XHUzMjc1XHUzMjc2XHUzMjc3XHUzMjc4XHUzMjc5XHUzMjdh''@;'; put 'put ''XHUzMjdiXHUyNGQwXHUyNGQxXHUyNGQyXHUyNGQzXHUyNGQ0XHUyNGQ1XHUyNGQ2XHUyNGQ3XHUyNGQ4XHUyNGQ5XHUyNGRhXHUyNGRiXHUyNGRjXHUyNGRkXHUyNGRlXHUyNGRmXHUyNGUwXHUyNGUxXHUyNGUyXHUyNGUzXHUyNGU0XHUyNGU1XHUyNGU2XHUyNGU3XHUyNGU4XHUyNGU5XHUy''@;'; put 'put ''NDYwXHUyNDYxXHUyNDYyXHUyNDYzXHUyNDY0XHUyNDY1XHUyNDY2XHUyNDY3XHUyNDY4XHUyNDY5XHUyNDZhXHUyNDZiXHUyNDZjXHUyNDZkXHUyNDZlXHhiZFx1MjE1M1x1MjE1NFx4YmNceGJlXHUyMTViXHUyMTVjXHUyMTVkXHUyMTVlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY4''@;'; put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OF1bRV1dPTQzMDA4K0UsTFs0MzAwOCtFXT1CWzE2OF1bRV0pO2ZvcihCWzE2OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''Y2JjNVx1Y2JjNlx1Y2JjN1x1Y2JjOFx1Y2JjOVx1Y2JjYVx1Y2JjYlx1Y2JjY1x1Y2JjZFx1Y2JjZVx1Y2JjZlx1Y2JkMFx1Y2JkMVx1Y2JkMlx1Y2JkM1x1Y2JkNVx1Y2JkNlx1Y2JkN1x1Y2JkOFx1Y2JkOVx1Y2JkYVx1Y2JkYlx1Y2JkY1x1Y2JkZFx1Y2JkZVx1Y2JkZlx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JlMFx1Y2JlMVx1Y2JlMlx1Y2JlM1x1Y2JlNVx1Y2JlNlx1Y2JlOFx1Y2JlYVx1Y2JlYlx1Y2JlY1x1Y2JlZFx1Y2JlZVx1Y2JlZlx1Y2JmMFx1Y2JmMVx1Y2JmMlx1Y2JmM1x1Y2JmNFx1Y2JmNVx1Y2JmNlx1Y2JmN1x1Y2JmOFx1Y2JmOVx1''@;'; put 'put ''Y2JmYVx1Y2JmYlx1Y2JmY1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2JmZFx1Y2JmZVx1Y2JmZlx1Y2MwMFx1Y2MwMVx1Y2MwMlx1Y2MwM1x1Y2MwNFx1Y2MwNVx1Y2MwNlx1Y2MwN1x1Y2MwOFx1Y2MwOVx1Y2MwYVx1Y2MwYlx1Y2MwZVx1Y2MwZlx1Y2MxMVx1Y2Mx''@;'; put 'put ''Mlx1Y2MxM1x1Y2MxNVx1Y2MxNlx1Y2MxN1x1Y2MxOFx1Y2MxOVx1Y2MxYVx1Y2MxYlx1Y2MxZVx1Y2MxZlx1Y2MyMFx1Y2MyM1x1Y2MyNFx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHhmOFx1MDE1M1x4ZGZceGZlXHUwMTY3XHUwMTRiXHUwMTQ5''@;'; put 'put ''XHUzMjAwXHUzMjAxXHUzMjAyXHUzMjAzXHUzMjA0XHUzMjA1XHUzMjA2XHUzMjA3XHUzMjA4XHUzMjA5XHUzMjBhXHUzMjBiXHUzMjBjXHUzMjBkXHUzMjBlXHUzMjBmXHUzMjEwXHUzMjExXHUzMjEyXHUzMjEzXHUzMjE0XHUzMjE1XHUzMjE2XHUzMjE3XHUzMjE4XHUzMjE5XHUzMjFhXHUz''@;'; put 'put ''MjFiXHUyNDljXHUyNDlkXHUyNDllXHUyNDlmXHUyNGEwXHUyNGExXHUyNGEyXHUyNGEzXHUyNGE0XHUyNGE1XHUyNGE2XHUyNGE3XHUyNGE4XHUyNGE5XHUyNGFhXHUyNGFiXHUyNGFjXHUyNGFkXHUyNGFlXHUyNGFmXHUyNGIwXHUyNGIxXHUyNGIyXHUyNGIzXHUyNGI0XHUyNGI1XHUyNDc0''@;'; put 'put ''XHUyNDc1XHUyNDc2XHUyNDc3XHUyNDc4XHUyNDc5XHUyNDdhXHUyNDdiXHUyNDdjXHUyNDdkXHUyNDdlXHUyNDdmXHUyNDgwXHUyNDgxXHUyNDgyXHhiOVx4YjJceGIzXHUyMDc0XHUyMDdmXHUyMDgxXHUyMDgyXHUyMDgzXHUyMDg0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY5XS5s''@;'; put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsxNjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OV1bRV1dPTQzMjY0K0UsTFs0MzI2NCtFXT1CWzE2OV1bRV0pO2ZvcihCWzE3MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2My''@;'; put 'put ''NVx1Y2MyNlx1Y2MyYVx1Y2MyYlx1Y2MyZFx1Y2MyZlx1Y2MzMVx1Y2MzMlx1Y2MzM1x1Y2MzNFx1Y2MzNVx1Y2MzNlx1Y2MzN1x1Y2MzYVx1Y2MzZlx1Y2M0MFx1Y2M0MVx1Y2M0Mlx1Y2M0M1x1Y2M0Nlx1Y2M0N1x1Y2M0OVx1Y2M0YVx1Y2M0Ylx1Y2M0ZFx1Y2M0ZVx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2M0Zlx1Y2M1MFx1Y2M1MVx1Y2M1Mlx1Y2M1M1x1Y2M1Nlx1Y2M1YVx1Y2M1Ylx1Y2M1Y1x1Y2M1ZFx1Y2M1ZVx1Y2M1Zlx1Y2M2MVx1Y2M2Mlx1Y2M2M1x1Y2M2NVx1Y2M2N1x1Y2M2OVx1Y2M2YVx1Y2M2Ylx1Y2M2Y1x1Y2M2ZFx1Y2M2ZVx1Y2M2''@;'; put 'put ''Zlx1Y2M3MVx1Y2M3Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2M3M1x1Y2M3NFx1Y2M3Nlx1Y2M3N1x1Y2M3OFx1Y2M3OVx1Y2M3YVx1Y2M3Ylx1Y2M3Y1x1Y2M3ZFx1Y2M3ZVx1Y2M3Zlx1Y2M4MFx1Y2M4MVx1Y2M4Mlx1Y2M4M1x1Y2M4NFx1Y2M4NVx1Y2M4Nlx1''@;'; put 'put ''Y2M4N1x1Y2M4OFx1Y2M4OVx1Y2M4YVx1Y2M4Ylx1Y2M4Y1x1Y2M4ZFx1Y2M4ZVx1Y2M4Zlx1Y2M5MFx1Y2M5MVx1Y2M5Mlx1Y2M5M1x1MzA0MVx1MzA0Mlx1MzA0M1x1MzA0NFx1MzA0NVx1MzA0Nlx1MzA0N1x1MzA0OFx1MzA0OVx1MzA0YVx1MzA0Ylx1MzA0Y1x1MzA0ZFx1MzA0ZVx1MzA0''@;'; put 'put ''Zlx1MzA1MFx1MzA1MVx1MzA1Mlx1MzA1M1x1MzA1NFx1MzA1NVx1MzA1Nlx1MzA1N1x1MzA1OFx1MzA1OVx1MzA1YVx1MzA1Ylx1MzA1Y1x1MzA1ZFx1MzA1ZVx1MzA1Zlx1MzA2MFx1MzA2MVx1MzA2Mlx1MzA2M1x1MzA2NFx1MzA2NVx1MzA2Nlx1MzA2N1x1MzA2OFx1MzA2OVx1MzA2YVx1''@;'; put 'put ''MzA2Ylx1MzA2Y1x1MzA2ZFx1MzA2ZVx1MzA2Zlx1MzA3MFx1MzA3MVx1MzA3Mlx1MzA3M1x1MzA3NFx1MzA3NVx1MzA3Nlx1MzA3N1x1MzA3OFx1MzA3OVx1MzA3YVx1MzA3Ylx1MzA3Y1x1MzA3ZFx1MzA3ZVx1MzA3Zlx1MzA4MFx1MzA4MVx1MzA4Mlx1MzA4M1x1MzA4NFx1MzA4NVx1MzA4''@;'; put 'put ''Nlx1MzA4N1x1MzA4OFx1MzA4OVx1MzA4YVx1MzA4Ylx1MzA4Y1x1MzA4ZFx1MzA4ZVx1MzA4Zlx1MzA5MFx1MzA5MVx1MzA5Mlx1MzA5M1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; put 'put ''MDtFIT1CWzE3MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTcwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzBdW0VdXT00MzUyMCtFLExbNDM1MjArRV09QlsxNzBdW0VdKTtmb3IoQlsxNzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWNjOTRcdWNjOTVcdWNjOTZcdWNjOTdcdWNjOWFcdWNjOWJcdWNjOWRcdWNjOWVcdWNjOWZcdWNjYTFcdWNjYTJcdWNjYTNcdWNjYTRcdWNjYTVcdWNjYTZcdWNjYTdcdWNjYWFcdWNjYWVcdWNjYWZcdWNjYjBcdWNjYjFcdWNjYjJcdWNjYjNcdWNjYjZcdWNjYjdcdWNjYjlc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjYmFcdWNjYmJcdWNjYmRcdWNjYmVcdWNjYmZcdWNjYzBcdWNjYzFcdWNjYzJcdWNjYzNcdWNjYzZcdWNjYzhcdWNjY2FcdWNjY2JcdWNjY2NcdWNjY2RcdWNjY2VcdWNjY2ZcdWNjZDFcdWNjZDJcdWNjZDNcdWNjZDVcdWNj''@;'; put 'put ''ZDZcdWNjZDdcdWNjZDhcdWNjZDlcdWNjZGFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNjZGJcdWNjZGNcdWNjZGRcdWNjZGVcdWNjZGZcdWNjZTBcdWNjZTFcdWNjZTJcdWNjZTNcdWNjZTVcdWNjZTZcdWNjZTdcdWNjZThcdWNjZTlcdWNjZWFcdWNjZWJcdWNjZWRc''@;'; put 'put ''dWNjZWVcdWNjZWZcdWNjZjFcdWNjZjJcdWNjZjNcdWNjZjRcdWNjZjVcdWNjZjZcdWNjZjdcdWNjZjhcdWNjZjlcdWNjZmFcdWNjZmJcdWNjZmNcdWNjZmRcdTMwYTFcdTMwYTJcdTMwYTNcdTMwYTRcdTMwYTVcdTMwYTZcdTMwYTdcdTMwYThcdTMwYTlcdTMwYWFcdTMwYWJcdTMwYWNcdTMw''@;'; put 'put ''YWRcdTMwYWVcdTMwYWZcdTMwYjBcdTMwYjFcdTMwYjJcdTMwYjNcdTMwYjRcdTMwYjVcdTMwYjZcdTMwYjdcdTMwYjhcdTMwYjlcdTMwYmFcdTMwYmJcdTMwYmNcdTMwYmRcdTMwYmVcdTMwYmZcdTMwYzBcdTMwYzFcdTMwYzJcdTMwYzNcdTMwYzRcdTMwYzVcdTMwYzZcdTMwYzdcdTMwYzhc''@;'; put 'put ''dTMwYzlcdTMwY2FcdTMwY2JcdTMwY2NcdTMwY2RcdTMwY2VcdTMwY2ZcdTMwZDBcdTMwZDFcdTMwZDJcdTMwZDNcdTMwZDRcdTMwZDVcdTMwZDZcdTMwZDdcdTMwZDhcdTMwZDlcdTMwZGFcdTMwZGJcdTMwZGNcdTMwZGRcdTMwZGVcdTMwZGZcdTMwZTBcdTMwZTFcdTMwZTJcdTMwZTNcdTMw''@;'; put 'put ''ZTRcdTMwZTVcdTMwZTZcdTMwZTdcdTMwZThcdTMwZTlcdTMwZWFcdTMwZWJcdTMwZWNcdTMwZWRcdTMwZWVcdTMwZWZcdTMwZjBcdTMwZjFcdTMwZjJcdTMwZjNcdTMwZjRcdTMwZjVcdTMwZjZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQi''@;'; put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsxNzFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcxXVtFXV09NDM3NzYrRSxMWzQzNzc2K0VdPUJbMTcxXVtFXSk7Zm9yKEJbMTcyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjY2ZlXHVjY2ZmXHVjZDAwXHVjZDAyXHVjZDAzXHVjZDA0XHVjZDA1XHVjZDA2XHVjZDA3XHVjZDBhXHVjZDBiXHVjZDBkXHVjZDBlXHVjZDBmXHVjZDExXHVjZDEyXHVjZDEzXHVjZDE0XHVjZDE1XHVjZDE2XHVjZDE3XHVjZDFhXHVjZDFjXHVjZDFl''@;'; put 'put ''XHVjZDFmXHVjZDIwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDIxXHVjZDIyXHVjZDIzXHVjZDI1XHVjZDI2XHVjZDI3XHVjZDI5XHVjZDJhXHVjZDJiXHVjZDJkXHVjZDJlXHVjZDJmXHVjZDMwXHVjZDMxXHVjZDMyXHVjZDMzXHVjZDM0XHVjZDM1XHVjZDM2XHVj''@;'; put 'put ''ZDM3XHVjZDM4XHVjZDNhXHVjZDNiXHVjZDNjXHVjZDNkXHVjZDNlXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZDNmXHVjZDQwXHVjZDQxXHVjZDQyXHVjZDQzXHVjZDQ0XHVjZDQ1XHVjZDQ2XHVjZDQ3XHVjZDQ4XHVjZDQ5XHVjZDRhXHVjZDRiXHVjZDRjXHVjZDRk''@;'; put 'put ''XHVjZDRlXHVjZDRmXHVjZDUwXHVjZDUxXHVjZDUyXHVjZDUzXHVjZDU0XHVjZDU1XHVjZDU2XHVjZDU3XHVjZDU4XHVjZDU5XHVjZDVhXHVjZDViXHVjZDVkXHVjZDVlXHVjZDVmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUw''@;'; put 'put ''NDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUw''@;'; put 'put ''NDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTcyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3Ml1bRV1dPTQ0MDMyK0UsTFs0NDAzMitFXT1CWzE3Ml1bRV0pO2ZvcihCWzE3M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2Q2MVx1Y2Q2Mlx1Y2Q2M1x1Y2Q2NVx1Y2Q2Nlx1Y2Q2N1x1Y2Q2OFx1Y2Q2OVx1Y2Q2YVx1Y2Q2Ylx1Y2Q2ZVx1Y2Q3MFx1Y2Q3Mlx1Y2Q3M1x1Y2Q3NFx1Y2Q3NVx1Y2Q3Nlx1Y2Q3N1x1Y2Q3OVx1Y2Q3YVx1Y2Q3Ylx1Y2Q3''@;'; put 'put ''Y1x1Y2Q3ZFx1Y2Q3ZVx1Y2Q3Zlx1Y2Q4MFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2Q4MVx1Y2Q4Mlx1Y2Q4M1x1Y2Q4NFx1Y2Q4NVx1Y2Q4Nlx1Y2Q4N1x1Y2Q4OVx1Y2Q4YVx1Y2Q4Ylx1Y2Q4Y1x1Y2Q4ZFx1Y2Q4ZVx1Y2Q4Zlx1Y2Q5MFx1Y2Q5MVx1Y2Q5Mlx1''@;'; put 'put ''Y2Q5M1x1Y2Q5Nlx1Y2Q5N1x1Y2Q5OVx1Y2Q5YVx1Y2Q5Ylx1Y2Q5ZFx1Y2Q5ZVx1Y2Q5Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2RhMFx1Y2RhMVx1Y2RhMlx1Y2RhM1x1Y2RhNlx1Y2RhOFx1Y2RhYVx1Y2RhYlx1Y2RhY1x1Y2RhZFx1Y2RhZVx1Y2RhZlx1Y2Ri''@;'; put 'put ''MVx1Y2RiMlx1Y2RiM1x1Y2RiNFx1Y2RiNVx1Y2RiNlx1Y2RiN1x1Y2RiOFx1Y2RiOVx1Y2RiYVx1Y2RiYlx1Y2RiY1x1Y2RiZFx1Y2RiZVx1Y2RiZlx1Y2RjMFx1Y2RjMVx1Y2RjMlx1Y2RjM1x1Y2RjNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTczXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzNdW0VdXT00NDI4OCtFLExbNDQyODgrRV09QlsxNzNdW0VdKTtmb3IoQlsxNzRdPSJcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNkYzZcdWNkYzdcdWNkYzhcdWNkYzlcdWNkY2FcdWNkY2JcdWNkY2RcdWNkY2VcdWNkY2ZcdWNkZDFcdWNkZDJcdWNkZDNcdWNkZDRcdWNkZDVcdWNkZDZcdWNkZDdcdWNkZDhcdWNkZDlcdWNkZGFcdWNk''@;'; put 'put ''ZGJcdWNkZGNcdWNkZGRcdWNkZGVcdWNkZGZcdWNkZTBcdWNkZTFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNkZTJcdWNkZTNcdWNkZTRcdWNkZTVcdWNkZTZcdWNkZTdcdWNkZTlcdWNkZWFcdWNkZWJcdWNkZWRcdWNkZWVcdWNkZWZcdWNkZjFcdWNkZjJcdWNkZjNc''@;'; put 'put ''dWNkZjRcdWNkZjVcdWNkZjZcdWNkZjdcdWNkZmFcdWNkZmNcdWNkZmVcdWNkZmZcdWNlMDBcdWNlMDFcdWNlMDJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNlMDNcdWNlMDVcdWNlMDZcdWNlMDdcdWNlMDlcdWNlMGFcdWNlMGJcdWNlMGRcdWNlMGVcdWNlMGZcdWNl''@;'; put 'put ''MTBcdWNlMTFcdWNlMTJcdWNlMTNcdWNlMTVcdWNlMTZcdWNlMTdcdWNlMThcdWNlMWFcdWNlMWJcdWNlMWNcdWNlMWRcdWNlMWVcdWNlMWZcdWNlMjJcdWNlMjNcdWNlMjVcdWNlMjZcdWNlMjdcdWNlMjlcdWNlMmFcdWNlMmJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc0XVtFXV09NDQ1NDQrRSxMWzQ0NTQ0K0VdPUJbMTc0XVtFXSk7Zm9yKEJbMTc1XT0i''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTJjXHVjZTJkXHVjZTJlXHVjZTJmXHVjZTMyXHVjZTM0XHVjZTM2XHVjZTM3XHVjZTM4XHVjZTM5XHVjZTNhXHVjZTNiXHVjZTNjXHVjZTNkXHVjZTNlXHVjZTNmXHVjZTQwXHVj''@;'; put 'put ''ZTQxXHVjZTQyXHVjZTQzXHVjZTQ0XHVjZTQ1XHVjZTQ2XHVjZTQ3XHVjZTQ4XHVjZTQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTRhXHVjZTRiXHVjZTRjXHVjZTRkXHVjZTRlXHVjZTRmXHVjZTUwXHVjZTUxXHVjZTUyXHVjZTUzXHVjZTU0XHVjZTU1XHVjZTU2''@;'; put 'put ''XHVjZTU3XHVjZTVhXHVjZTViXHVjZTVkXHVjZTVlXHVjZTYyXHVjZTYzXHVjZTY0XHVjZTY1XHVjZTY2XHVjZTY3XHVjZTZhXHVjZTZjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZTZlXHVjZTZmXHVjZTcwXHVjZTcxXHVjZTcyXHVjZTczXHVjZTc2XHVjZTc3XHVj''@;'; put 'put ''ZTc5XHVjZTdhXHVjZTdiXHVjZTdkXHVjZTdlXHVjZTdmXHVjZTgwXHVjZTgxXHVjZTgyXHVjZTgzXHVjZTg2XHVjZTg4XHVjZThhXHVjZThiXHVjZThjXHVjZThkXHVjZThlXHVjZThmXHVjZTkyXHVjZTkzXHVjZTk1XHVjZTk2XHVjZTk3XHVjZTk5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3NV1bRV1dPTQ0ODAwK0UsTFs0NDgwMCtFXT1CWzE3NV1bRV0p''@;'; put 'put ''O2ZvcihCWzE3Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2U5YVx1Y2U5Ylx1Y2U5Y1x1Y2U5ZFx1Y2U5ZVx1Y2U5Zlx1Y2VhMlx1Y2VhNlx1Y2VhN1x1Y2VhOFx1Y2VhOVx1Y2VhYVx1Y2VhYlx1Y2VhZVx1Y2VhZlx1''@;'; put 'put ''Y2ViMFx1Y2ViMVx1Y2ViMlx1Y2ViM1x1Y2ViNFx1Y2ViNVx1Y2ViNlx1Y2ViN1x1Y2ViOFx1Y2ViOVx1Y2ViYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ViYlx1Y2ViY1x1Y2ViZFx1Y2ViZVx1Y2ViZlx1Y2VjMFx1Y2VjMlx1Y2VjM1x1Y2VjNFx1Y2VjNVx1Y2Vj''@;'; put 'put ''Nlx1Y2VjN1x1Y2VjOFx1Y2VjOVx1Y2VjYVx1Y2VjYlx1Y2VjY1x1Y2VjZFx1Y2VjZVx1Y2VjZlx1Y2VkMFx1Y2VkMVx1Y2VkMlx1Y2VkM1x1Y2VkNFx1Y2VkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2VkNlx1Y2VkN1x1Y2VkOFx1Y2VkOVx1Y2VkYVx1Y2VkYlx1''@;'; put 'put ''Y2VkY1x1Y2VkZFx1Y2VkZVx1Y2VkZlx1Y2VlMFx1Y2VlMVx1Y2VlMlx1Y2VlM1x1Y2VlNlx1Y2VlN1x1Y2VlOVx1Y2VlYVx1Y2VlZFx1Y2VlZVx1Y2VlZlx1Y2VmMFx1Y2VmMVx1Y2VmMlx1Y2VmM1x1Y2VmNlx1Y2VmYVx1Y2VmYlx1Y2VmY1x1Y2VmZFx1Y2VmZVx1Y2VmZlx1YWMwMFx1YWMw''@;'; put 'put ''MVx1YWMwNFx1YWMwN1x1YWMwOFx1YWMwOVx1YWMwYVx1YWMxMFx1YWMxMVx1YWMxMlx1YWMxM1x1YWMxNFx1YWMxNVx1YWMxNlx1YWMxN1x1YWMxOVx1YWMxYVx1YWMxYlx1YWMxY1x1YWMxZFx1YWMyMFx1YWMyNFx1YWMyY1x1YWMyZFx1YWMyZlx1YWMzMFx1YWMzMVx1YWMzOFx1YWMzOVx1''@;'; put 'put ''YWMzY1x1YWM0MFx1YWM0Ylx1YWM0ZFx1YWM1NFx1YWM1OFx1YWM1Y1x1YWM3MFx1YWM3MVx1YWM3NFx1YWM3N1x1YWM3OFx1YWM3YVx1YWM4MFx1YWM4MVx1YWM4M1x1YWM4NFx1YWM4NVx1YWM4Nlx1YWM4OVx1YWM4YVx1YWM4Ylx1YWM4Y1x1YWM5MFx1YWM5NFx1YWM5Y1x1YWM5ZFx1YWM5''@;'; put 'put ''Zlx1YWNhMFx1YWNhMVx1YWNhOFx1YWNhOVx1YWNhYVx1YWNhY1x1YWNhZlx1YWNiMFx1YWNiOFx1YWNiOVx1YWNiYlx1YWNiY1x1YWNiZFx1YWNjMVx1YWNjNFx1YWNjOFx1YWNjY1x1YWNkNVx1YWNkN1x1YWNlMFx1YWNlMVx1YWNlNFx1YWNlN1x1YWNlOFx1YWNlYVx1YWNlY1x1YWNlZlx1''@;'; put 'put ''YWNmMFx1YWNmMVx1YWNmM1x1YWNmNVx1YWNmNlx1YWNmY1x1YWNmZFx1YWQwMFx1YWQwNFx1YWQwNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzZdW0VdXT00NTA1NitFLExbNDUwNTYr''@;'; put 'put ''RV09QlsxNzZdW0VdKTtmb3IoQlsxNzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmMDJcdWNmMDNcdWNmMDVcdWNmMDZcdWNmMDdcdWNmMDlcdWNmMGFcdWNmMGJcdWNmMGNcdWNmMGRcdWNmMGVcdWNmMGZcdWNmMTJc''@;'; put 'put ''dWNmMTRcdWNmMTZcdWNmMTdcdWNmMThcdWNmMTlcdWNmMWFcdWNmMWJcdWNmMWRcdWNmMWVcdWNmMWZcdWNmMjFcdWNmMjJcdWNmMjNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmMjVcdWNmMjZcdWNmMjdcdWNmMjhcdWNmMjlcdWNmMmFcdWNmMmJcdWNmMmVcdWNm''@;'; put 'put ''MzJcdWNmMzNcdWNmMzRcdWNmMzVcdWNmMzZcdWNmMzdcdWNmMzlcdWNmM2FcdWNmM2JcdWNmM2NcdWNmM2RcdWNmM2VcdWNmM2ZcdWNmNDBcdWNmNDFcdWNmNDJcdWNmNDNcdWNmNDRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWNmNDVcdWNmNDZcdWNmNDdcdWNmNDhc''@;'; put 'put ''dWNmNDlcdWNmNGFcdWNmNGJcdWNmNGNcdWNmNGRcdWNmNGVcdWNmNGZcdWNmNTBcdWNmNTFcdWNmNTJcdWNmNTNcdWNmNTZcdWNmNTdcdWNmNTlcdWNmNWFcdWNmNWJcdWNmNWRcdWNmNWVcdWNmNWZcdWNmNjBcdWNmNjFcdWNmNjJcdWNmNjNcdWNmNjZcdWNmNjhcdWNmNmFcdWNmNmJcdWNm''@;'; put 'put ''NmNcdWFkMGNcdWFkMGRcdWFkMGZcdWFkMTFcdWFkMThcdWFkMWNcdWFkMjBcdWFkMjlcdWFkMmNcdWFkMmRcdWFkMzRcdWFkMzVcdWFkMzhcdWFkM2NcdWFkNDRcdWFkNDVcdWFkNDdcdWFkNDlcdWFkNTBcdWFkNTRcdWFkNThcdWFkNjFcdWFkNjNcdWFkNmNcdWFkNmRcdWFkNzBcdWFkNzNc''@;'; put 'put ''dWFkNzRcdWFkNzVcdWFkNzZcdWFkN2JcdWFkN2NcdWFkN2RcdWFkN2ZcdWFkODFcdWFkODJcdWFkODhcdWFkODlcdWFkOGNcdWFkOTBcdWFkOWNcdWFkOWRcdWFkYTRcdWFkYjdcdWFkYzBcdWFkYzFcdWFkYzRcdWFkYzhcdWFkZDBcdWFkZDFcdWFkZDNcdWFkZGNcdWFkZTBcdWFkZTRcdWFk''@;'; put 'put ''ZjhcdWFkZjlcdWFkZmNcdWFkZmZcdWFlMDBcdWFlMDFcdWFlMDhcdWFlMDlcdWFlMGJcdWFlMGRcdWFlMTRcdWFlMzBcdWFlMzFcdWFlMzRcdWFlMzdcdWFlMzhcdWFlM2FcdWFlNDBcdWFlNDFcdWFlNDNcdWFlNDVcdWFlNDZcdWFlNGFcdWFlNGNcdWFlNGRcdWFlNGVcdWFlNTBcdWFlNTRc''@;'; put 'put ''dWFlNTZcdWFlNWNcdWFlNWRcdWFlNWZcdWFlNjBcdWFlNjFcdWFlNjVcdWFlNjhcdWFlNjlcdWFlNmNcdWFlNzBcdWFlNzhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc3XVtFXV09NDUz''@;'; put 'put ''MTIrRSxMWzQ1MzEyK0VdPUJbMTc3XVtFXSk7Zm9yKEJbMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjZkXHVjZjZlXHVjZjZmXHVjZjcyXHVjZjczXHVjZjc1XHVjZjc2XHVjZjc3XHVjZjc5XHVjZjdhXHVjZjdi''@;'; put 'put ''XHVjZjdjXHVjZjdkXHVjZjdlXHVjZjdmXHVjZjgxXHVjZjgyXHVjZjgzXHVjZjg0XHVjZjg2XHVjZjg3XHVjZjg4XHVjZjg5XHVjZjhhXHVjZjhiXHVjZjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZjhlXHVjZjhmXHVjZjkwXHVjZjkxXHVjZjkyXHVjZjkzXHVj''@;'; put 'put ''Zjk0XHVjZjk1XHVjZjk2XHVjZjk3XHVjZjk4XHVjZjk5XHVjZjlhXHVjZjliXHVjZjljXHVjZjlkXHVjZjllXHVjZjlmXHVjZmEwXHVjZmEyXHVjZmEzXHVjZmE0XHVjZmE1XHVjZmE2XHVjZmE3XHVjZmE5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVjZmFhXHVjZmFi''@;'; put 'put ''XHVjZmFjXHVjZmFkXHVjZmFlXHVjZmFmXHVjZmIxXHVjZmIyXHVjZmIzXHVjZmI0XHVjZmI1XHVjZmI2XHVjZmI3XHVjZmI4XHVjZmI5XHVjZmJhXHVjZmJiXHVjZmJjXHVjZmJkXHVjZmJlXHVjZmJmXHVjZmMwXHVjZmMxXHVjZmMyXHVjZmMzXHVjZmM1XHVjZmM2XHVjZmM3XHVjZmM4XHVj''@;'; put 'put ''ZmM5XHVjZmNhXHVjZmNiXHVhZTc5XHVhZTdiXHVhZTdjXHVhZTdkXHVhZTg0XHVhZTg1XHVhZThjXHVhZWJjXHVhZWJkXHVhZWJlXHVhZWMwXHVhZWM0XHVhZWNjXHVhZWNkXHVhZWNmXHVhZWQwXHVhZWQxXHVhZWQ4XHVhZWQ5XHVhZWRjXHVhZWU4XHVhZWViXHVhZWVkXHVhZWY0XHVhZWY4''@;'; put 'put ''XHVhZWZjXHVhZjA3XHVhZjA4XHVhZjBkXHVhZjEwXHVhZjJjXHVhZjJkXHVhZjMwXHVhZjMyXHVhZjM0XHVhZjNjXHVhZjNkXHVhZjNmXHVhZjQxXHVhZjQyXHVhZjQzXHVhZjQ4XHVhZjQ5XHVhZjUwXHVhZjVjXHVhZjVkXHVhZjY0XHVhZjY1XHVhZjc5XHVhZjgwXHVhZjg0XHVhZjg4XHVh''@;'; put 'put ''ZjkwXHVhZjkxXHVhZjk1XHVhZjljXHVhZmI4XHVhZmI5XHVhZmJjXHVhZmMwXHVhZmM3XHVhZmM4XHVhZmM5XHVhZmNiXHVhZmNkXHVhZmNlXHVhZmQ0XHVhZmRjXHVhZmU4XHVhZmU5XHVhZmYwXHVhZmYxXHVhZmY0XHVhZmY4XHViMDAwXHViMDAxXHViMDA0XHViMDBjXHViMDEwXHViMDE0''@;'; put 'put ''XHViMDFjXHViMDFkXHViMDI4XHViMDQ0XHViMDQ1XHViMDQ4XHViMDRhXHViMDRjXHViMDRlXHViMDUzXHViMDU0XHViMDU1XHViMDU3XHViMDU5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; put 'put ''WzE3OF1bRV1dPTQ1NTY4K0UsTFs0NTU2OCtFXT1CWzE3OF1bRV0pO2ZvcihCWzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ZjY1x1Y2ZjZFx1Y2ZjZVx1Y2ZjZlx1Y2ZkMFx1Y2ZkMVx1Y2ZkMlx1Y2ZkM1x1Y2Zk''@;'; put 'put ''NFx1Y2ZkNVx1Y2ZkNlx1Y2ZkN1x1Y2ZkOFx1Y2ZkOVx1Y2ZkYVx1Y2ZkYlx1Y2ZkY1x1Y2ZkZFx1Y2ZkZVx1Y2ZkZlx1Y2ZlMlx1Y2ZlM1x1Y2ZlNVx1Y2ZlNlx1Y2ZlN1x1Y2ZlOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Y2ZlYVx1Y2ZlYlx1Y2ZlY1x1Y2ZlZFx1''@;'; put 'put ''Y2ZlZVx1Y2ZlZlx1Y2ZmMlx1Y2ZmNFx1Y2ZmNlx1Y2ZmN1x1Y2ZmOFx1Y2ZmOVx1Y2ZmYVx1Y2ZmYlx1Y2ZmZFx1Y2ZmZVx1Y2ZmZlx1ZDAwMVx1ZDAwMlx1ZDAwM1x1ZDAwNVx1ZDAwNlx1ZDAwN1x1ZDAwOFx1ZDAwOVx1ZDAwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZDAwYlx1ZDAwY1x1ZDAwZFx1ZDAwZVx1ZDAwZlx1ZDAxMFx1ZDAxMlx1ZDAxM1x1ZDAxNFx1ZDAxNVx1ZDAxNlx1ZDAxN1x1ZDAxOVx1ZDAxYVx1ZDAxYlx1ZDAxY1x1ZDAxZFx1ZDAxZVx1ZDAxZlx1ZDAyMFx1ZDAyMVx1ZDAyMlx1ZDAyM1x1ZDAyNFx1ZDAyNVx1ZDAyNlx1ZDAyN1x1''@;'; put 'put ''ZDAyOFx1ZDAyOVx1ZDAyYVx1ZDAyYlx1ZDAyY1x1YjA1ZFx1YjA3Y1x1YjA3ZFx1YjA4MFx1YjA4NFx1YjA4Y1x1YjA4ZFx1YjA4Zlx1YjA5MVx1YjA5OFx1YjA5OVx1YjA5YVx1YjA5Y1x1YjA5Zlx1YjBhMFx1YjBhMVx1YjBhMlx1YjBhOFx1YjBhOVx1YjBhYlx1YjBhY1x1YjBhZFx1YjBh''@;'; put 'put ''ZVx1YjBhZlx1YjBiMVx1YjBiM1x1YjBiNFx1YjBiNVx1YjBiOFx1YjBiY1x1YjBjNFx1YjBjNVx1YjBjN1x1YjBjOFx1YjBjOVx1YjBkMFx1YjBkMVx1YjBkNFx1YjBkOFx1YjBlMFx1YjBlNVx1YjEwOFx1YjEwOVx1YjEwYlx1YjEwY1x1YjExMFx1YjExMlx1YjExM1x1YjExOFx1YjExOVx1''@;'; put 'put ''YjExYlx1YjExY1x1YjExZFx1YjEyM1x1YjEyNFx1YjEyNVx1YjEyOFx1YjEyY1x1YjEzNFx1YjEzNVx1YjEzN1x1YjEzOFx1YjEzOVx1YjE0MFx1YjE0MVx1YjE0NFx1YjE0OFx1YjE1MFx1YjE1MVx1YjE1NFx1YjE1NVx1YjE1OFx1YjE1Y1x1YjE2MFx1YjE3OFx1YjE3OVx1YjE3Y1x1YjE4''@;'; put 'put ''MFx1YjE4Mlx1YjE4OFx1YjE4OVx1YjE4Ylx1YjE4ZFx1YjE5Mlx1YjE5M1x1YjE5NFx1YjE5OFx1YjE5Y1x1YjFhOFx1YjFjY1x1YjFkMFx1YjFkNFx1YjFkY1x1YjFkZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc5XVtFXS5jaGFyQ29k''@;'; put 'put ''ZUF0KDApJiYobWVbQlsxNzldW0VdXT00NTgyNCtFLExbNDU4MjQrRV09QlsxNzldW0VdKTtmb3IoQlsxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwMmVcdWQwMmZcdWQwMzBcdWQwMzFcdWQwMzJcdWQwMzNcdWQw''@;'; put 'put ''MzZcdWQwMzdcdWQwMzlcdWQwM2FcdWQwM2JcdWQwM2RcdWQwM2VcdWQwM2ZcdWQwNDBcdWQwNDFcdWQwNDJcdWQwNDNcdWQwNDZcdWQwNDhcdWQwNGFcdWQwNGJcdWQwNGNcdWQwNGRcdWQwNGVcdWQwNGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQwNTFcdWQwNTJc''@;'; put 'put ''dWQwNTNcdWQwNTVcdWQwNTZcdWQwNTdcdWQwNTlcdWQwNWFcdWQwNWJcdWQwNWNcdWQwNWRcdWQwNWVcdWQwNWZcdWQwNjFcdWQwNjJcdWQwNjNcdWQwNjRcdWQwNjVcdWQwNjZcdWQwNjdcdWQwNjhcdWQwNjlcdWQwNmFcdWQwNmJcdWQwNmVcdWQwNmZcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWQwNzFcdWQwNzJcdWQwNzNcdWQwNzVcdWQwNzZcdWQwNzdcdWQwNzhcdWQwNzlcdWQwN2FcdWQwN2JcdWQwN2VcdWQwN2ZcdWQwODBcdWQwODJcdWQwODNcdWQwODRcdWQwODVcdWQwODZcdWQwODdcdWQwODhcdWQwODlcdWQwOGFcdWQwOGJcdWQwOGNcdWQwOGRc''@;'; put 'put ''dWQwOGVcdWQwOGZcdWQwOTBcdWQwOTFcdWQwOTJcdWQwOTNcdWQwOTRcdWIxZGZcdWIxZThcdWIxZTlcdWIxZWNcdWIxZjBcdWIxZjlcdWIxZmJcdWIxZmRcdWIyMDRcdWIyMDVcdWIyMDhcdWIyMGJcdWIyMGNcdWIyMTRcdWIyMTVcdWIyMTdcdWIyMTlcdWIyMjBcdWIyMzRcdWIyM2NcdWIy''@;'; put 'put ''NThcdWIyNWNcdWIyNjBcdWIyNjhcdWIyNjlcdWIyNzRcdWIyNzVcdWIyN2NcdWIyODRcdWIyODVcdWIyODlcdWIyOTBcdWIyOTFcdWIyOTRcdWIyOThcdWIyOTlcdWIyOWFcdWIyYTBcdWIyYTFcdWIyYTNcdWIyYTVcdWIyYTZcdWIyYWFcdWIyYWNcdWIyYjBcdWIyYjRcdWIyYzhcdWIyYzlc''@;'; put 'put ''dWIyY2NcdWIyZDBcdWIyZDJcdWIyZDhcdWIyZDlcdWIyZGJcdWIyZGRcdWIyZTJcdWIyZTRcdWIyZTVcdWIyZTZcdWIyZThcdWIyZWJcdWIyZWNcdWIyZWRcdWIyZWVcdWIyZWZcdWIyZjNcdWIyZjRcdWIyZjVcdWIyZjdcdWIyZjhcdWIyZjlcdWIyZmFcdWIyZmJcdWIyZmZcdWIzMDBcdWIz''@;'; put 'put ''MDFcdWIzMDRcdWIzMDhcdWIzMTBcdWIzMTFcdWIzMTNcdWIzMTRcdWIzMTVcdWIzMWNcdWIzNTRcdWIzNTVcdWIzNTZcdWIzNThcdWIzNWJcdWIzNWNcdWIzNWVcdWIzNWZcdWIzNjRcdWIzNjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4''@;'; put 'put ''MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgwXVtFXV09NDYwODArRSxMWzQ2MDgwK0VdPUJbMTgwXVtFXSk7Zm9yKEJbMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMDk1XHVkMDk2XHVkMDk3XHVkMDk4XHVk''@;'; put 'put ''MDk5XHVkMDlhXHVkMDliXHVkMDljXHVkMDlkXHVkMDllXHVkMDlmXHVkMGEwXHVkMGExXHVkMGEyXHVkMGEzXHVkMGE2XHVkMGE3XHVkMGE5XHVkMGFhXHVkMGFiXHVkMGFkXHVkMGFlXHVkMGFmXHVkMGIwXHVkMGIxXHVkMGIyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVkMGIzXHVkMGI2XHVkMGI4XHVkMGJhXHVkMGJiXHVkMGJjXHVkMGJkXHVkMGJlXHVkMGJmXHVkMGMyXHVkMGMzXHVkMGM1XHVkMGM2XHVkMGM3XHVkMGNhXHVkMGNiXHVkMGNjXHVkMGNkXHVkMGNlXHVkMGNmXHVkMGQyXHVkMGQ2XHVkMGQ3XHVkMGQ4XHVkMGQ5XHVkMGRhXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMGRiXHVkMGRlXHVkMGRmXHVkMGUxXHVkMGUyXHVkMGUzXHVkMGU1XHVkMGU2XHVkMGU3XHVkMGU4XHVkMGU5XHVkMGVhXHVkMGViXHVkMGVlXHVkMGYyXHVkMGYzXHVkMGY0XHVkMGY1XHVkMGY2XHVkMGY3XHVkMGY5XHVkMGZhXHVkMGZi''@;'; put 'put ''XHVkMGZjXHVkMGZkXHVkMGZlXHVkMGZmXHVkMTAwXHVkMTAxXHVkMTAyXHVkMTAzXHVkMTA0XHViMzY3XHViMzY5XHViMzZiXHViMzZlXHViMzcwXHViMzcxXHViMzc0XHViMzc4XHViMzgwXHViMzgxXHViMzgzXHViMzg0XHViMzg1XHViMzhjXHViMzkwXHViMzk0XHViM2EwXHViM2ExXHVi''@;'; put 'put ''M2E4XHViM2FjXHViM2M0XHViM2M1XHViM2M4XHViM2NiXHViM2NjXHViM2NlXHViM2QwXHViM2Q0XHViM2Q1XHViM2Q3XHViM2Q5XHViM2RiXHViM2RkXHViM2UwXHViM2U0XHViM2U4XHViM2ZjXHViNDEwXHViNDE4XHViNDFjXHViNDIwXHViNDI4XHViNDI5XHViNDJiXHViNDM0XHViNDUw''@;'; put 'put ''XHViNDUxXHViNDU0XHViNDU4XHViNDYwXHViNDYxXHViNDYzXHViNDY1XHViNDZjXHViNDgwXHViNDg4XHViNDlkXHViNGE0XHViNGE4XHViNGFjXHViNGI1XHViNGI3XHViNGI5XHViNGMwXHViNGM0XHViNGM4XHViNGQwXHViNGQ1XHViNGRjXHViNGRkXHViNGUwXHViNGUzXHViNGU0XHVi''@;'; put 'put ''NGU2XHViNGVjXHViNGVkXHViNGVmXHViNGYxXHViNGY4XHViNTE0XHViNTE1XHViNTE4XHViNTFiXHViNTFjXHViNTI0XHViNTI1XHViNTI3XHViNTI4XHViNTI5XHViNTJhXHViNTMwXHViNTMxXHViNTM0XHViNTM4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgxXS5sZW5ndGg7KytF''@;'; put 'put ''KTY1NTMzIT09QlsxODFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4MV1bRV1dPTQ2MzM2K0UsTFs0NjMzNitFXT1CWzE4MV1bRV0pO2ZvcihCWzE4Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEwNVx1ZDEwNlx1''@;'; put 'put ''ZDEwN1x1ZDEwOFx1ZDEwOVx1ZDEwYVx1ZDEwYlx1ZDEwY1x1ZDEwZVx1ZDEwZlx1ZDExMFx1ZDExMVx1ZDExMlx1ZDExM1x1ZDExNFx1ZDExNVx1ZDExNlx1ZDExN1x1ZDExOFx1ZDExOVx1ZDExYVx1ZDExYlx1ZDExY1x1ZDExZFx1ZDExZVx1ZDExZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZDEyMFx1ZDEyMVx1ZDEyMlx1ZDEyM1x1ZDEyNFx1ZDEyNVx1ZDEyNlx1ZDEyN1x1ZDEyOFx1ZDEyOVx1ZDEyYVx1ZDEyYlx1ZDEyY1x1ZDEyZFx1ZDEyZVx1ZDEyZlx1ZDEzMlx1ZDEzM1x1ZDEzNVx1ZDEzNlx1ZDEzN1x1ZDEzOVx1ZDEzYlx1ZDEzY1x1ZDEzZFx1''@;'; put 'put ''ZDEzZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDEzZlx1ZDE0Mlx1ZDE0Nlx1ZDE0N1x1ZDE0OFx1ZDE0OVx1ZDE0YVx1ZDE0Ylx1ZDE0ZVx1ZDE0Zlx1ZDE1MVx1ZDE1Mlx1ZDE1M1x1ZDE1NVx1ZDE1Nlx1ZDE1N1x1ZDE1OFx1ZDE1OVx1ZDE1YVx1ZDE1Ylx1ZDE1''@;'; put 'put ''ZVx1ZDE2MFx1ZDE2Mlx1ZDE2M1x1ZDE2NFx1ZDE2NVx1ZDE2Nlx1ZDE2N1x1ZDE2OVx1ZDE2YVx1ZDE2Ylx1ZDE2ZFx1YjU0MFx1YjU0MVx1YjU0M1x1YjU0NFx1YjU0NVx1YjU0Ylx1YjU0Y1x1YjU0ZFx1YjU1MFx1YjU1NFx1YjU1Y1x1YjU1ZFx1YjU1Zlx1YjU2MFx1YjU2MVx1YjVhMFx1''@;'; put 'put ''YjVhMVx1YjVhNFx1YjVhOFx1YjVhYVx1YjVhYlx1YjViMFx1YjViMVx1YjViM1x1YjViNFx1YjViNVx1YjViYlx1YjViY1x1YjViZFx1YjVjMFx1YjVjNFx1YjVjY1x1YjVjZFx1YjVjZlx1YjVkMFx1YjVkMVx1YjVkOFx1YjVlY1x1YjYxMFx1YjYxMVx1YjYxNFx1YjYxOFx1YjYyNVx1YjYy''@;'; put 'put ''Y1x1YjYzNFx1YjY0OFx1YjY2NFx1YjY2OFx1YjY5Y1x1YjY5ZFx1YjZhMFx1YjZhNFx1YjZhYlx1YjZhY1x1YjZiMVx1YjZkNFx1YjZmMFx1YjZmNFx1YjZmOFx1YjcwMFx1YjcwMVx1YjcwNVx1YjcyOFx1YjcyOVx1YjcyY1x1YjcyZlx1YjczMFx1YjczOFx1YjczOVx1YjczYlx1Yjc0NFx1''@;'; put 'put ''Yjc0OFx1Yjc0Y1x1Yjc1NFx1Yjc1NVx1Yjc2MFx1Yjc2NFx1Yjc2OFx1Yjc3MFx1Yjc3MVx1Yjc3M1x1Yjc3NVx1Yjc3Y1x1Yjc3ZFx1Yjc4MFx1Yjc4NFx1Yjc4Y1x1Yjc4ZFx1Yjc4Zlx1Yjc5MFx1Yjc5MVx1Yjc5Mlx1Yjc5Nlx1Yjc5N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4''@;'; put 'put ''Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODJdW0VdXT00NjU5MitFLExbNDY1OTIrRV09QlsxODJdW0VdKTtmb3IoQlsxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWQxNmVcdWQxNmZcdWQxNzBcdWQxNzFcdWQxNzJcdWQxNzNcdWQxNzRcdWQxNzVcdWQxNzZcdWQxNzdcdWQxNzhcdWQxNzlcdWQxN2FcdWQxN2JcdWQxN2RcdWQxN2VcdWQxN2ZcdWQxODBcdWQxODFcdWQxODJcdWQxODNcdWQxODVcdWQxODZcdWQxODdcdWQxODlcdWQxOGFcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxOGJcdWQxOGNcdWQxOGRcdWQxOGVcdWQxOGZcdWQxOTBcdWQxOTFcdWQxOTJcdWQxOTNcdWQxOTRcdWQxOTVcdWQxOTZcdWQxOTdcdWQxOThcdWQxOTlcdWQxOWFcdWQxOWJcdWQxOWNcdWQxOWRcdWQxOWVcdWQxOWZcdWQxYTJcdWQxYTNc''@;'; put 'put ''dWQxYTVcdWQxYTZcdWQxYTdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQxYTlcdWQxYWFcdWQxYWJcdWQxYWNcdWQxYWRcdWQxYWVcdWQxYWZcdWQxYjJcdWQxYjRcdWQxYjZcdWQxYjdcdWQxYjhcdWQxYjlcdWQxYmJcdWQxYmRcdWQxYmVcdWQxYmZcdWQxYzFcdWQx''@;'; put 'put ''YzJcdWQxYzNcdWQxYzRcdWQxYzVcdWQxYzZcdWQxYzdcdWQxYzhcdWQxYzlcdWQxY2FcdWQxY2JcdWQxY2NcdWQxY2RcdWQxY2VcdWQxY2ZcdWI3OThcdWI3OTlcdWI3OWNcdWI3YTBcdWI3YThcdWI3YTlcdWI3YWJcdWI3YWNcdWI3YWRcdWI3YjRcdWI3YjVcdWI3YjhcdWI3YzdcdWI3Yzlc''@;'; put 'put ''dWI3ZWNcdWI3ZWRcdWI3ZjBcdWI3ZjRcdWI3ZmNcdWI3ZmRcdWI3ZmZcdWI4MDBcdWI4MDFcdWI4MDdcdWI4MDhcdWI4MDlcdWI4MGNcdWI4MTBcdWI4MThcdWI4MTlcdWI4MWJcdWI4MWRcdWI4MjRcdWI4MjVcdWI4MjhcdWI4MmNcdWI4MzRcdWI4MzVcdWI4MzdcdWI4MzhcdWI4MzlcdWI4''@;'; put 'put ''NDBcdWI4NDRcdWI4NTFcdWI4NTNcdWI4NWNcdWI4NWRcdWI4NjBcdWI4NjRcdWI4NmNcdWI4NmRcdWI4NmZcdWI4NzFcdWI4NzhcdWI4N2NcdWI4OGRcdWI4YThcdWI4YjBcdWI4YjRcdWI4YjhcdWI4YzBcdWI4YzFcdWI4YzNcdWI4YzVcdWI4Y2NcdWI4ZDBcdWI4ZDRcdWI4ZGRcdWI4ZGZc''@;'; put 'put ''dWI4ZTFcdWI4ZThcdWI4ZTlcdWI4ZWNcdWI4ZjBcdWI4ZjhcdWI4ZjlcdWI4ZmJcdWI4ZmRcdWI5MDRcdWI5MThcdWI5MjBcdWI5M2NcdWI5M2RcdWI5NDBcdWI5NDRcdWI5NGNcdWI5NGZcdWI5NTFcdWI5NThcdWI5NTlcdWI5NWNcdWI5NjBcdWI5NjhcdWI5NjlcdWZmZmQiLnNwbGl0KCIi''@;'; put 'put ''KSxFPTA7RSE9QlsxODNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgzXVtFXV09NDY4NDgrRSxMWzQ2ODQ4K0VdPUJbMTgzXVtFXSk7Zm9yKEJbMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVkMWQwXHVkMWQxXHVkMWQyXHVkMWQzXHVkMWQ0XHVkMWQ1XHVkMWQ2XHVkMWQ3XHVkMWQ5XHVkMWRhXHVkMWRiXHVkMWRjXHVkMWRkXHVkMWRlXHVkMWRmXHVkMWUwXHVkMWUxXHVkMWUyXHVkMWUzXHVkMWU0XHVkMWU1XHVkMWU2XHVkMWU3XHVkMWU4XHVkMWU5XHVk''@;'; put 'put ''MWVhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMWViXHVkMWVjXHVkMWVkXHVkMWVlXHVkMWVmXHVkMWYwXHVkMWYxXHVkMWYyXHVkMWYzXHVkMWY1XHVkMWY2XHVkMWY3XHVkMWY5XHVkMWZhXHVkMWZiXHVkMWZjXHVkMWZkXHVkMWZlXHVkMWZmXHVkMjAwXHVkMjAx''@;'; put 'put ''XHVkMjAyXHVkMjAzXHVkMjA0XHVkMjA1XHVkMjA2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMjA4XHVkMjBhXHVkMjBiXHVkMjBjXHVkMjBkXHVkMjBlXHVkMjBmXHVkMjExXHVkMjEyXHVkMjEzXHVkMjE0XHVkMjE1XHVkMjE2XHVkMjE3XHVkMjE4XHVkMjE5XHVk''@;'; put 'put ''MjFhXHVkMjFiXHVkMjFjXHVkMjFkXHVkMjFlXHVkMjFmXHVkMjIwXHVkMjIxXHVkMjIyXHVkMjIzXHVkMjI0XHVkMjI1XHVkMjI2XHVkMjI3XHVkMjI4XHVkMjI5XHViOTZiXHViOTZkXHViOTc0XHViOTc1XHViOTc4XHViOTdjXHViOTg0XHViOTg1XHViOTg3XHViOTg5XHViOThhXHViOThk''@;'; put 'put ''XHViOThlXHViOWFjXHViOWFkXHViOWIwXHViOWI0XHViOWJjXHViOWJkXHViOWJmXHViOWMxXHViOWM4XHViOWM5XHViOWNjXHViOWNlXHViOWNmXHViOWQwXHViOWQxXHViOWQyXHViOWQ4XHViOWQ5XHViOWRiXHViOWRkXHViOWRlXHViOWUxXHViOWUzXHViOWU0XHViOWU1XHViOWU4XHVi''@;'; put 'put ''OWVjXHViOWY0XHViOWY1XHViOWY3XHViOWY4XHViOWY5XHViOWZhXHViYTAwXHViYTAxXHViYTA4XHViYTE1XHViYTM4XHViYTM5XHViYTNjXHViYTQwXHViYTQyXHViYTQ4XHViYTQ5XHViYTRiXHViYTRkXHViYTRlXHViYTUzXHViYTU0XHViYTU1XHViYTU4XHViYTVjXHViYTY0XHViYTY1''@;'; put 'put ''XHViYTY3XHViYTY4XHViYTY5XHViYTcwXHViYTcxXHViYTc0XHViYTc4XHViYTgzXHViYTg0XHViYTg1XHViYTg3XHViYThjXHViYWE4XHViYWE5XHViYWFiXHViYWFjXHViYWIwXHViYWIyXHViYWI4XHViYWI5XHViYWJiXHViYWJkXHViYWM0XHViYWM4XHViYWQ4XHViYWQ5XHViYWZjXHVm''@;'; put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NF1bRV1dPTQ3MTA0K0UsTFs0NzEwNCtFXT1CWzE4NF1bRV0pO2ZvcihCWzE4NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDIyYVx1ZDIyYlx1ZDIyZVx1ZDIyZlx1ZDIzMVx1ZDIzMlx1ZDIzM1x1ZDIzNVx1ZDIzNlx1ZDIzN1x1ZDIzOFx1ZDIzOVx1ZDIzYVx1ZDIzYlx1ZDIzZVx1ZDI0MFx1ZDI0Mlx1ZDI0M1x1ZDI0NFx1ZDI0NVx1ZDI0Nlx1ZDI0N1x1ZDI0OVx1''@;'; put 'put ''ZDI0YVx1ZDI0Ylx1ZDI0Y1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDI0ZFx1ZDI0ZVx1ZDI0Zlx1ZDI1MFx1ZDI1MVx1ZDI1Mlx1ZDI1M1x1ZDI1NFx1ZDI1NVx1ZDI1Nlx1ZDI1N1x1ZDI1OFx1ZDI1OVx1ZDI1YVx1ZDI1Ylx1ZDI1ZFx1ZDI1ZVx1ZDI1Zlx1ZDI2''@;'; put 'put ''MFx1ZDI2MVx1ZDI2Mlx1ZDI2M1x1ZDI2NVx1ZDI2Nlx1ZDI2N1x1ZDI2OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDI2OVx1ZDI2YVx1ZDI2Ylx1ZDI2Y1x1ZDI2ZFx1ZDI2ZVx1ZDI2Zlx1ZDI3MFx1ZDI3MVx1ZDI3Mlx1ZDI3M1x1ZDI3NFx1ZDI3NVx1ZDI3Nlx1''@;'; put 'put ''ZDI3N1x1ZDI3OFx1ZDI3OVx1ZDI3YVx1ZDI3Ylx1ZDI3Y1x1ZDI3ZFx1ZDI3ZVx1ZDI3Zlx1ZDI4Mlx1ZDI4M1x1ZDI4NVx1ZDI4Nlx1ZDI4N1x1ZDI4OVx1ZDI4YVx1ZDI4Ylx1ZDI4Y1x1YmIwMFx1YmIwNFx1YmIwZFx1YmIwZlx1YmIxMVx1YmIxOFx1YmIxY1x1YmIyMFx1YmIyOVx1YmIy''@;'; put 'put ''Ylx1YmIzNFx1YmIzNVx1YmIzNlx1YmIzOFx1YmIzYlx1YmIzY1x1YmIzZFx1YmIzZVx1YmI0NFx1YmI0NVx1YmI0N1x1YmI0OVx1YmI0ZFx1YmI0Zlx1YmI1MFx1YmI1NFx1YmI1OFx1YmI2MVx1YmI2M1x1YmI2Y1x1YmI4OFx1YmI4Y1x1YmI5MFx1YmJhNFx1YmJhOFx1YmJhY1x1YmJiNFx1''@;'; put 'put ''YmJiN1x1YmJjMFx1YmJjNFx1YmJjOFx1YmJkMFx1YmJkM1x1YmJmOFx1YmJmOVx1YmJmY1x1YmJmZlx1YmMwMFx1YmMwMlx1YmMwOFx1YmMwOVx1YmMwYlx1YmMwY1x1YmMwZFx1YmMwZlx1YmMxMVx1YmMxNFx1YmMxNVx1YmMxNlx1YmMxN1x1YmMxOFx1YmMxYlx1YmMxY1x1YmMxZFx1YmMx''@;'; put 'put ''ZVx1YmMxZlx1YmMyNFx1YmMyNVx1YmMyN1x1YmMyOVx1YmMyZFx1YmMzMFx1YmMzMVx1YmMzNFx1YmMzOFx1YmM0MFx1YmM0MVx1YmM0M1x1YmM0NFx1YmM0NVx1YmM0OVx1YmM0Y1x1YmM0ZFx1YmM1MFx1YmM1ZFx1YmM4NFx1YmM4NVx1YmM4OFx1YmM4Ylx1YmM4Y1x1YmM4ZVx1YmM5NFx1''@;'; put 'put ''YmM5NVx1YmM5N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODVdW0VdXT00NzM2MCtFLExbNDczNjArRV09QlsxODVdW0VdKTtmb3IoQlsxODZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyOGRcdWQyOGVcdWQyOGZcdWQyOTJcdWQyOTNcdWQyOTRcdWQyOTZcdWQyOTdcdWQyOThcdWQyOTlcdWQyOWFcdWQyOWJcdWQyOWRcdWQyOWVcdWQyOWZcdWQyYTFcdWQyYTJcdWQyYTNcdWQyYTVcdWQyYTZcdWQyYTdc''@;'; put 'put ''dWQyYThcdWQyYTlcdWQyYWFcdWQyYWJcdWQyYWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyYWVcdWQyYWZcdWQyYjBcdWQyYjJcdWQyYjNcdWQyYjRcdWQyYjVcdWQyYjZcdWQyYjdcdWQyYmFcdWQyYmJcdWQyYmRcdWQyYmVcdWQyYzFcdWQyYzNcdWQyYzRcdWQy''@;'; put 'put ''YzVcdWQyYzZcdWQyYzdcdWQyY2FcdWQyY2NcdWQyY2RcdWQyY2VcdWQyY2ZcdWQyZDBcdWQyZDFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyZDJcdWQyZDNcdWQyZDVcdWQyZDZcdWQyZDdcdWQyZDlcdWQyZGFcdWQyZGJcdWQyZGRcdWQyZGVcdWQyZGZcdWQyZTBc''@;'; put 'put ''dWQyZTFcdWQyZTJcdWQyZTNcdWQyZTZcdWQyZTdcdWQyZThcdWQyZTlcdWQyZWFcdWQyZWJcdWQyZWNcdWQyZWRcdWQyZWVcdWQyZWZcdWQyZjJcdWQyZjNcdWQyZjVcdWQyZjZcdWQyZjdcdWQyZjlcdWQyZmFcdWJjOTlcdWJjOWFcdWJjYTBcdWJjYTFcdWJjYTRcdWJjYTdcdWJjYThcdWJj''@;'; put 'put ''YjBcdWJjYjFcdWJjYjNcdWJjYjRcdWJjYjVcdWJjYmNcdWJjYmRcdWJjYzBcdWJjYzRcdWJjY2RcdWJjY2ZcdWJjZDBcdWJjZDFcdWJjZDVcdWJjZDhcdWJjZGNcdWJjZjRcdWJjZjVcdWJjZjZcdWJjZjhcdWJjZmNcdWJkMDRcdWJkMDVcdWJkMDdcdWJkMDlcdWJkMTBcdWJkMTRcdWJkMjRc''@;'; put 'put ''dWJkMmNcdWJkNDBcdWJkNDhcdWJkNDlcdWJkNGNcdWJkNTBcdWJkNThcdWJkNTlcdWJkNjRcdWJkNjhcdWJkODBcdWJkODFcdWJkODRcdWJkODdcdWJkODhcdWJkODlcdWJkOGFcdWJkOTBcdWJkOTFcdWJkOTNcdWJkOTVcdWJkOTlcdWJkOWFcdWJkOWNcdWJkYTRcdWJkYjBcdWJkYjhcdWJk''@;'; put 'put ''ZDRcdWJkZDVcdWJkZDhcdWJkZGNcdWJkZTlcdWJkZjBcdWJkZjRcdWJkZjhcdWJlMDBcdWJlMDNcdWJlMDVcdWJlMGNcdWJlMGRcdWJlMTBcdWJlMTRcdWJlMWNcdWJlMWRcdWJlMWZcdWJlNDRcdWJlNDVcdWJlNDhcdWJlNGNcdWJlNGVcdWJlNTRcdWJlNTVcdWJlNTdcdWJlNTlcdWJlNWFc''@;'; put 'put ''dWJlNWJcdWJlNjBcdWJlNjFcdWJlNjRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg2XVtFXV09NDc2MTYrRSxMWzQ3NjE2K0VdPUJbMTg2XVtFXSk7Zm9yKEJbMTg3XT0iXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMmZiXHVkMmZjXHVkMmZkXHVkMmZlXHVkMmZmXHVkMzAyXHVkMzA0XHVkMzA2XHVkMzA3XHVkMzA4XHVkMzA5XHVkMzBhXHVkMzBiXHVkMzBmXHVkMzExXHVkMzEyXHVkMzEzXHVkMzE1XHVkMzE3''@;'; put 'put ''XHVkMzE4XHVkMzE5XHVkMzFhXHVkMzFiXHVkMzFlXHVkMzIyXHVkMzIzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzI0XHVkMzI2XHVkMzI3XHVkMzJhXHVkMzJiXHVkMzJkXHVkMzJlXHVkMzJmXHVkMzMxXHVkMzMyXHVkMzMzXHVkMzM0XHVkMzM1XHVkMzM2XHVk''@;'; put 'put ''MzM3XHVkMzNhXHVkMzNlXHVkMzNmXHVkMzQwXHVkMzQxXHVkMzQyXHVkMzQzXHVkMzQ2XHVkMzQ3XHVkMzQ4XHVkMzQ5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkMzRhXHVkMzRiXHVkMzRjXHVkMzRkXHVkMzRlXHVkMzRmXHVkMzUwXHVkMzUxXHVkMzUyXHVkMzUz''@;'; put 'put ''XHVkMzU0XHVkMzU1XHVkMzU2XHVkMzU3XHVkMzU4XHVkMzU5XHVkMzVhXHVkMzViXHVkMzVjXHVkMzVkXHVkMzVlXHVkMzVmXHVkMzYwXHVkMzYxXHVkMzYyXHVkMzYzXHVkMzY0XHVkMzY1XHVkMzY2XHVkMzY3XHVkMzY4XHVkMzY5XHViZTY4XHViZTZhXHViZTcwXHViZTcxXHViZTczXHVi''@;'; put 'put ''ZTc0XHViZTc1XHViZTdiXHViZTdjXHViZTdkXHViZTgwXHViZTg0XHViZThjXHViZThkXHViZThmXHViZTkwXHViZTkxXHViZTk4XHViZTk5XHViZWE4XHViZWQwXHViZWQxXHViZWQ0XHViZWQ3XHViZWQ4XHViZWUwXHViZWUzXHViZWU0XHViZWU1XHViZWVjXHViZjAxXHViZjA4XHViZjA5''@;'; put 'put ''XHViZjE4XHViZjE5XHViZjFiXHViZjFjXHViZjFkXHViZjQwXHViZjQxXHViZjQ0XHViZjQ4XHViZjUwXHViZjUxXHViZjU1XHViZjk0XHViZmIwXHViZmM1XHViZmNjXHViZmNkXHViZmQwXHViZmQ0XHViZmRjXHViZmRmXHViZmUxXHVjMDNjXHVjMDUxXHVjMDU4XHVjMDVjXHVjMDYwXHVj''@;'; put 'put ''MDY4XHVjMDY5XHVjMDkwXHVjMDkxXHVjMDk0XHVjMDk4XHVjMGEwXHVjMGExXHVjMGEzXHVjMGE1XHVjMGFjXHVjMGFkXHVjMGFmXHVjMGIwXHVjMGIzXHVjMGI0XHVjMGI1XHVjMGI2XHVjMGJjXHVjMGJkXHVjMGJmXHVjMGMwXHVjMGMxXHVjMGM1XHVjMGM4XHVjMGM5XHVjMGNjXHVjMGQw''@;'; put 'put ''XHVjMGQ4XHVjMGQ5XHVjMGRiXHVjMGRjXHVjMGRkXHVjMGU0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4N11bRV1dPTQ3ODcyK0UsTFs0Nzg3MitFXT1CWzE4N11bRV0pO2ZvcihCWzE4''@;'; put 'put ''OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDM2YVx1ZDM2Ylx1ZDM2Y1x1ZDM2ZFx1ZDM2ZVx1ZDM2Zlx1ZDM3MFx1ZDM3MVx1ZDM3Mlx1ZDM3M1x1ZDM3NFx1ZDM3NVx1ZDM3Nlx1ZDM3N1x1ZDM3OFx1ZDM3OVx1ZDM3''@;'; put 'put ''YVx1ZDM3Ylx1ZDM3ZVx1ZDM3Zlx1ZDM4MVx1ZDM4Mlx1ZDM4M1x1ZDM4NVx1ZDM4Nlx1ZDM4N1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDM4OFx1ZDM4OVx1ZDM4YVx1ZDM4Ylx1ZDM4ZVx1ZDM5Mlx1ZDM5M1x1ZDM5NFx1ZDM5NVx1ZDM5Nlx1ZDM5N1x1ZDM5YVx1''@;'; put 'put ''ZDM5Ylx1ZDM5ZFx1ZDM5ZVx1ZDM5Zlx1ZDNhMVx1ZDNhMlx1ZDNhM1x1ZDNhNFx1ZDNhNVx1ZDNhNlx1ZDNhN1x1ZDNhYVx1ZDNhY1x1ZDNhZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDNhZlx1ZDNiMFx1ZDNiMVx1ZDNiMlx1ZDNiM1x1ZDNiNVx1ZDNiNlx1ZDNi''@;'; put 'put ''N1x1ZDNiOVx1ZDNiYVx1ZDNiYlx1ZDNiZFx1ZDNiZVx1ZDNiZlx1ZDNjMFx1ZDNjMVx1ZDNjMlx1ZDNjM1x1ZDNjNlx1ZDNjN1x1ZDNjYVx1ZDNjYlx1ZDNjY1x1ZDNjZFx1ZDNjZVx1ZDNjZlx1ZDNkMVx1ZDNkMlx1ZDNkM1x1ZDNkNFx1ZDNkNVx1ZDNkNlx1YzBlNVx1YzBlOFx1YzBlY1x1''@;'; put 'put ''YzBmNFx1YzBmNVx1YzBmN1x1YzBmOVx1YzEwMFx1YzEwNFx1YzEwOFx1YzExMFx1YzExNVx1YzExY1x1YzExZFx1YzExZVx1YzExZlx1YzEyMFx1YzEyM1x1YzEyNFx1YzEyNlx1YzEyN1x1YzEyY1x1YzEyZFx1YzEyZlx1YzEzMFx1YzEzMVx1YzEzNlx1YzEzOFx1YzEzOVx1YzEzY1x1YzE0''@;'; put 'put ''MFx1YzE0OFx1YzE0OVx1YzE0Ylx1YzE0Y1x1YzE0ZFx1YzE1NFx1YzE1NVx1YzE1OFx1YzE1Y1x1YzE2NFx1YzE2NVx1YzE2N1x1YzE2OFx1YzE2OVx1YzE3MFx1YzE3NFx1YzE3OFx1YzE4NVx1YzE4Y1x1YzE4ZFx1YzE4ZVx1YzE5MFx1YzE5NFx1YzE5Nlx1YzE5Y1x1YzE5ZFx1YzE5Zlx1''@;'; put 'put ''YzFhMVx1YzFhNVx1YzFhOFx1YzFhOVx1YzFhY1x1YzFiMFx1YzFiZFx1YzFjNFx1YzFjOFx1YzFjY1x1YzFkNFx1YzFkN1x1YzFkOFx1YzFlMFx1YzFlNFx1YzFlOFx1YzFmMFx1YzFmMVx1YzFmM1x1YzFmY1x1YzFmZFx1YzIwMFx1YzIwNFx1YzIwY1x1YzIwZFx1YzIwZlx1YzIxMVx1YzIx''@;'; put 'put ''OFx1YzIxOVx1YzIxY1x1YzIxZlx1YzIyMFx1YzIyOFx1YzIyOVx1YzIyYlx1YzIyZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODhdW0VdXT00ODEyOCtFLExbNDgxMjgrRV09QlsxODhd''@;'; put 'put ''W0VdKTtmb3IoQlsxODldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzZDdcdWQzZDlcdWQzZGFcdWQzZGJcdWQzZGNcdWQzZGRcdWQzZGVcdWQzZGZcdWQzZTBcdWQzZTJcdWQzZTRcdWQzZTVcdWQzZTZcdWQzZTdcdWQz''@;'; put 'put ''ZThcdWQzZTlcdWQzZWFcdWQzZWJcdWQzZWVcdWQzZWZcdWQzZjFcdWQzZjJcdWQzZjNcdWQzZjVcdWQzZjZcdWQzZjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQzZjhcdWQzZjlcdWQzZmFcdWQzZmJcdWQzZmVcdWQ0MDBcdWQ0MDJcdWQ0MDNcdWQ0MDRcdWQ0MDVc''@;'; put 'put ''dWQ0MDZcdWQ0MDdcdWQ0MDlcdWQ0MGFcdWQ0MGJcdWQ0MGNcdWQ0MGRcdWQ0MGVcdWQ0MGZcdWQ0MTBcdWQ0MTFcdWQ0MTJcdWQ0MTNcdWQ0MTRcdWQ0MTVcdWQ0MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0MTdcdWQ0MThcdWQ0MTlcdWQ0MWFcdWQ0MWJcdWQ0''@;'; put 'put ''MWNcdWQ0MWVcdWQ0MWZcdWQ0MjBcdWQ0MjFcdWQ0MjJcdWQ0MjNcdWQ0MjRcdWQ0MjVcdWQ0MjZcdWQ0MjdcdWQ0MjhcdWQ0MjlcdWQ0MmFcdWQ0MmJcdWQ0MmNcdWQ0MmRcdWQ0MmVcdWQ0MmZcdWQ0MzBcdWQ0MzFcdWQ0MzJcdWQ0MzNcdWQ0MzRcdWQ0MzVcdWQ0MzZcdWQ0MzdcdWMyMmZc''@;'; put 'put ''dWMyMzFcdWMyMzJcdWMyMzRcdWMyNDhcdWMyNTBcdWMyNTFcdWMyNTRcdWMyNThcdWMyNjBcdWMyNjVcdWMyNmNcdWMyNmRcdWMyNzBcdWMyNzRcdWMyN2NcdWMyN2RcdWMyN2ZcdWMyODFcdWMyODhcdWMyODlcdWMyOTBcdWMyOThcdWMyOWJcdWMyOWRcdWMyYTRcdWMyYTVcdWMyYThcdWMy''@;'; put 'put ''YWNcdWMyYWRcdWMyYjRcdWMyYjVcdWMyYjdcdWMyYjlcdWMyZGNcdWMyZGRcdWMyZTBcdWMyZTNcdWMyZTRcdWMyZWJcdWMyZWNcdWMyZWRcdWMyZWZcdWMyZjFcdWMyZjZcdWMyZjhcdWMyZjlcdWMyZmJcdWMyZmNcdWMzMDBcdWMzMDhcdWMzMDlcdWMzMGNcdWMzMGRcdWMzMTNcdWMzMTRc''@;'; put 'put ''dWMzMTVcdWMzMThcdWMzMWNcdWMzMjRcdWMzMjVcdWMzMjhcdWMzMjlcdWMzNDVcdWMzNjhcdWMzNjlcdWMzNmNcdWMzNzBcdWMzNzJcdWMzNzhcdWMzNzlcdWMzN2NcdWMzN2RcdWMzODRcdWMzODhcdWMzOGNcdWMzYzBcdWMzZDhcdWMzZDlcdWMzZGNcdWMzZGZcdWMzZTBcdWMzZTJcdWMz''@;'; put 'put ''ZThcdWMzZTlcdWMzZWRcdWMzZjRcdWMzZjVcdWMzZjhcdWM0MDhcdWM0MTBcdWM0MjRcdWM0MmNcdWM0MzBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg5XVtFXV09NDgzODQrRSxMWzQ4''@;'; put 'put ''Mzg0K0VdPUJbMTg5XVtFXSk7Zm9yKEJbMTkwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDM4XHVkNDM5XHVkNDNhXHVkNDNiXHVkNDNjXHVkNDNkXHVkNDNlXHVkNDNmXHVkNDQxXHVkNDQyXHVkNDQzXHVkNDQ1XHVk''@;'; put 'put ''NDQ2XHVkNDQ3XHVkNDQ4XHVkNDQ5XHVkNDRhXHVkNDRiXHVkNDRjXHVkNDRkXHVkNDRlXHVkNDRmXHVkNDUwXHVkNDUxXHVkNDUyXHVkNDUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDU0XHVkNDU1XHVkNDU2XHVkNDU3XHVkNDU4XHVkNDU5XHVkNDVhXHVkNDVi''@;'; put 'put ''XHVkNDVkXHVkNDVlXHVkNDVmXHVkNDYxXHVkNDYyXHVkNDYzXHVkNDY1XHVkNDY2XHVkNDY3XHVkNDY4XHVkNDY5XHVkNDZhXHVkNDZiXHVkNDZjXHVkNDZlXHVkNDcwXHVkNDcxXHVkNDcyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDczXHVkNDc0XHVkNDc1XHVk''@;'; put 'put ''NDc2XHVkNDc3XHVkNDdhXHVkNDdiXHVkNDdkXHVkNDdlXHVkNDgxXHVkNDgzXHVkNDg0XHVkNDg1XHVkNDg2XHVkNDg3XHVkNDhhXHVkNDhjXHVkNDhlXHVkNDhmXHVkNDkwXHVkNDkxXHVkNDkyXHVkNDkzXHVkNDk1XHVkNDk2XHVkNDk3XHVkNDk4XHVkNDk5XHVkNDlhXHVkNDliXHVkNDlj''@;'; put 'put ''XHVkNDlkXHVjNDM0XHVjNDNjXHVjNDNkXHVjNDQ4XHVjNDY0XHVjNDY1XHVjNDY4XHVjNDZjXHVjNDc0XHVjNDc1XHVjNDc5XHVjNDgwXHVjNDk0XHVjNDljXHVjNGI4XHVjNGJjXHVjNGU5XHVjNGYwXHVjNGYxXHVjNGY0XHVjNGY4XHVjNGZhXHVjNGZmXHVjNTAwXHVjNTAxXHVjNTBjXHVj''@;'; put 'put ''NTEwXHVjNTE0XHVjNTFjXHVjNTI4XHVjNTI5XHVjNTJjXHVjNTMwXHVjNTM4XHVjNTM5XHVjNTNiXHVjNTNkXHVjNTQ0XHVjNTQ1XHVjNTQ4XHVjNTQ5XHVjNTRhXHVjNTRjXHVjNTRkXHVjNTRlXHVjNTUzXHVjNTU0XHVjNTU1XHVjNTU3XHVjNTU4XHVjNTU5XHVjNTVkXHVjNTVlXHVjNTYw''@;'; put 'put ''XHVjNTYxXHVjNTY0XHVjNTY4XHVjNTcwXHVjNTcxXHVjNTczXHVjNTc0XHVjNTc1XHVjNTdjXHVjNTdkXHVjNTgwXHVjNTg0XHVjNTg3XHVjNThjXHVjNThkXHVjNThmXHVjNTkxXHVjNTk1XHVjNTk3XHVjNTk4XHVjNTljXHVjNWEwXHVjNWE5XHVjNWI0XHVjNWI1XHVjNWI4XHVjNWI5XHVj''@;'; put 'put ''NWJiXHVjNWJjXHVjNWJkXHVjNWJlXHVjNWM0XHVjNWM1XHVjNWM2XHVjNWM3XHVjNWM4XHVjNWM5XHVjNWNhXHVjNWNjXHVjNWNlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5MF1bRV1d''@;'; put 'put ''PTQ4NjQwK0UsTFs0ODY0MCtFXT1CWzE5MF1bRV0pO2ZvcihCWzE5MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDQ5ZVx1ZDQ5Zlx1ZDRhMFx1ZDRhMVx1ZDRhMlx1ZDRhM1x1ZDRhNFx1ZDRhNVx1ZDRhNlx1ZDRhN1x1''@;'; put 'put ''ZDRhOFx1ZDRhYVx1ZDRhYlx1ZDRhY1x1ZDRhZFx1ZDRhZVx1ZDRhZlx1ZDRiMFx1ZDRiMVx1ZDRiMlx1ZDRiM1x1ZDRiNFx1ZDRiNVx1ZDRiNlx1ZDRiN1x1ZDRiOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDRiOVx1ZDRiYVx1ZDRiYlx1ZDRiY1x1ZDRiZFx1ZDRi''@;'; put 'put ''ZVx1ZDRiZlx1ZDRjMFx1ZDRjMVx1ZDRjMlx1ZDRjM1x1ZDRjNFx1ZDRjNVx1ZDRjNlx1ZDRjN1x1ZDRjOFx1ZDRjOVx1ZDRjYVx1ZDRjYlx1ZDRjZFx1ZDRjZVx1ZDRjZlx1ZDRkMVx1ZDRkMlx1ZDRkM1x1ZDRkNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDRkNlx1''@;'; put 'put ''ZDRkN1x1ZDRkOFx1ZDRkOVx1ZDRkYVx1ZDRkYlx1ZDRkZFx1ZDRkZVx1ZDRlMFx1ZDRlMVx1ZDRlMlx1ZDRlM1x1ZDRlNFx1ZDRlNVx1ZDRlNlx1ZDRlN1x1ZDRlOVx1ZDRlYVx1ZDRlYlx1ZDRlZFx1ZDRlZVx1ZDRlZlx1ZDRmMVx1ZDRmMlx1ZDRmM1x1ZDRmNFx1ZDRmNVx1ZDRmNlx1ZDRm''@;'; put 'put ''N1x1ZDRmOVx1ZDRmYVx1ZDRmY1x1YzVkMFx1YzVkMVx1YzVkNFx1YzVkOFx1YzVlMFx1YzVlMVx1YzVlM1x1YzVlNVx1YzVlY1x1YzVlZFx1YzVlZVx1YzVmMFx1YzVmNFx1YzVmNlx1YzVmN1x1YzVmY1x1YzVmZFx1YzVmZVx1YzVmZlx1YzYwMFx1YzYwMVx1YzYwNVx1YzYwNlx1YzYwN1x1''@;'; put 'put ''YzYwOFx1YzYwY1x1YzYxMFx1YzYxOFx1YzYxOVx1YzYxYlx1YzYxY1x1YzYyNFx1YzYyNVx1YzYyOFx1YzYyY1x1YzYyZFx1YzYyZVx1YzYzMFx1YzYzM1x1YzYzNFx1YzYzNVx1YzYzN1x1YzYzOVx1YzYzYlx1YzY0MFx1YzY0MVx1YzY0NFx1YzY0OFx1YzY1MFx1YzY1MVx1YzY1M1x1YzY1''@;'; put 'put ''NFx1YzY1NVx1YzY1Y1x1YzY1ZFx1YzY2MFx1YzY2Y1x1YzY2Zlx1YzY3MVx1YzY3OFx1YzY3OVx1YzY3Y1x1YzY4MFx1YzY4OFx1YzY4OVx1YzY4Ylx1YzY4ZFx1YzY5NFx1YzY5NVx1YzY5OFx1YzY5Y1x1YzZhNFx1YzZhNVx1YzZhN1x1YzZhOVx1YzZiMFx1YzZiMVx1YzZiNFx1YzZiOFx1''@;'; put 'put ''YzZiOVx1YzZiYVx1YzZjMFx1YzZjMVx1YzZjM1x1YzZjNVx1YzZjY1x1YzZjZFx1YzZkMFx1YzZkNFx1YzZkY1x1YzZkZFx1YzZlMFx1YzZlMVx1YzZlOFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkxXVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; put 'put ''bWVbQlsxOTFdW0VdXT00ODg5NitFLExbNDg4OTYrRV09QlsxOTFdW0VdKTtmb3IoQlsxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ0ZmVcdWQ0ZmZcdWQ1MDBcdWQ1MDFcdWQ1MDJcdWQ1MDNcdWQ1MDVcdWQ1MDZc''@;'; put 'put ''dWQ1MDdcdWQ1MDlcdWQ1MGFcdWQ1MGJcdWQ1MGRcdWQ1MGVcdWQ1MGZcdWQ1MTBcdWQ1MTFcdWQ1MTJcdWQ1MTNcdWQ1MTZcdWQ1MThcdWQ1MTlcdWQ1MWFcdWQ1MWJcdWQ1MWNcdWQ1MWRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ1MWVcdWQ1MWZcdWQ1MjBcdWQ1''@;'; put 'put ''MjFcdWQ1MjJcdWQ1MjNcdWQ1MjRcdWQ1MjVcdWQ1MjZcdWQ1MjdcdWQ1MjhcdWQ1MjlcdWQ1MmFcdWQ1MmJcdWQ1MmNcdWQ1MmRcdWQ1MmVcdWQ1MmZcdWQ1MzBcdWQ1MzFcdWQ1MzJcdWQ1MzNcdWQ1MzRcdWQ1MzVcdWQ1MzZcdWQ1MzdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWQ1MzhcdWQ1MzlcdWQ1M2FcdWQ1M2JcdWQ1M2VcdWQ1M2ZcdWQ1NDFcdWQ1NDJcdWQ1NDNcdWQ1NDVcdWQ1NDZcdWQ1NDdcdWQ1NDhcdWQ1NDlcdWQ1NGFcdWQ1NGJcdWQ1NGVcdWQ1NTBcdWQ1NTJcdWQ1NTNcdWQ1NTRcdWQ1NTVcdWQ1NTZcdWQ1NTdcdWQ1NWFcdWQ1NWJcdWQ1''@;'; put 'put ''NWRcdWQ1NWVcdWQ1NWZcdWQ1NjFcdWQ1NjJcdWQ1NjNcdWM2ZTlcdWM2ZWNcdWM2ZjBcdWM2ZjhcdWM2ZjlcdWM2ZmRcdWM3MDRcdWM3MDVcdWM3MDhcdWM3MGNcdWM3MTRcdWM3MTVcdWM3MTdcdWM3MTlcdWM3MjBcdWM3MjFcdWM3MjRcdWM3MjhcdWM3MzBcdWM3MzFcdWM3MzNcdWM3MzVc''@;'; put 'put ''dWM3MzdcdWM3M2NcdWM3M2RcdWM3NDBcdWM3NDRcdWM3NGFcdWM3NGNcdWM3NGRcdWM3NGZcdWM3NTFcdWM3NTJcdWM3NTNcdWM3NTRcdWM3NTVcdWM3NTZcdWM3NTdcdWM3NThcdWM3NWNcdWM3NjBcdWM3NjhcdWM3NmJcdWM3NzRcdWM3NzVcdWM3NzhcdWM3N2NcdWM3N2RcdWM3N2VcdWM3''@;'; put 'put ''ODNcdWM3ODRcdWM3ODVcdWM3ODdcdWM3ODhcdWM3ODlcdWM3OGFcdWM3OGVcdWM3OTBcdWM3OTFcdWM3OTRcdWM3OTZcdWM3OTdcdWM3OThcdWM3OWFcdWM3YTBcdWM3YTFcdWM3YTNcdWM3YTRcdWM3YTVcdWM3YTZcdWM3YWNcdWM3YWRcdWM3YjBcdWM3YjRcdWM3YmNcdWM3YmRcdWM3YmZc''@;'; put 'put ''dWM3YzBcdWM3YzFcdWM3YzhcdWM3YzlcdWM3Y2NcdWM3Y2VcdWM3ZDBcdWM3ZDhcdWM3ZGRcdWM3ZTRcdWM3ZThcdWM3ZWNcdWM4MDBcdWM4MDFcdWM4MDRcdWM4MDhcdWM4MGFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5Ml1bRV0uY2hh''@;'; put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMTkyXVtFXV09NDkxNTIrRSxMWzQ5MTUyK0VdPUJbMTkyXVtFXSk7Zm9yKEJbMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNTY0XHVkNTY2XHVkNTY3XHVkNTZhXHVkNTZjXHVkNTZl''@;'; put 'put ''XHVkNTZmXHVkNTcwXHVkNTcxXHVkNTcyXHVkNTczXHVkNTc2XHVkNTc3XHVkNTc5XHVkNTdhXHVkNTdiXHVkNTdkXHVkNTdlXHVkNTdmXHVkNTgwXHVkNTgxXHVkNTgyXHVkNTgzXHVkNTg2XHVkNThhXHVkNThiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNThjXHVk''@;'; put 'put ''NThkXHVkNThlXHVkNThmXHVkNTkxXHVkNTkyXHVkNTkzXHVkNTk0XHVkNTk1XHVkNTk2XHVkNTk3XHVkNTk4XHVkNTk5XHVkNTlhXHVkNTliXHVkNTljXHVkNTlkXHVkNTllXHVkNTlmXHVkNWEwXHVkNWExXHVkNWEyXHVkNWEzXHVkNWE0XHVkNWE2XHVkNWE3XHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVkNWE4XHVkNWE5XHVkNWFhXHVkNWFiXHVkNWFjXHVkNWFkXHVkNWFlXHVkNWFmXHVkNWIwXHVkNWIxXHVkNWIyXHVkNWIzXHVkNWI0XHVkNWI1XHVkNWI2XHVkNWI3XHVkNWI4XHVkNWI5XHVkNWJhXHVkNWJiXHVkNWJjXHVkNWJkXHVkNWJlXHVkNWJmXHVk''@;'; put 'put ''NWMwXHVkNWMxXHVkNWMyXHVkNWMzXHVkNWM0XHVkNWM1XHVkNWM2XHVkNWM3XHVjODEwXHVjODExXHVjODEzXHVjODE1XHVjODE2XHVjODFjXHVjODFkXHVjODIwXHVjODI0XHVjODJjXHVjODJkXHVjODJmXHVjODMxXHVjODM4XHVjODNjXHVjODQwXHVjODQ4XHVjODQ5XHVjODRjXHVjODRk''@;'; put 'put ''XHVjODU0XHVjODcwXHVjODcxXHVjODc0XHVjODc4XHVjODdhXHVjODgwXHVjODgxXHVjODgzXHVjODg1XHVjODg2XHVjODg3XHVjODhiXHVjODhjXHVjODhkXHVjODk0XHVjODlkXHVjODlmXHVjOGExXHVjOGE4XHVjOGJjXHVjOGJkXHVjOGM0XHVjOGM4XHVjOGNjXHVjOGQ0XHVjOGQ1XHVj''@;'; put 'put ''OGQ3XHVjOGQ5XHVjOGUwXHVjOGUxXHVjOGU0XHVjOGY1XHVjOGZjXHVjOGZkXHVjOTAwXHVjOTA0XHVjOTA1XHVjOTA2XHVjOTBjXHVjOTBkXHVjOTBmXHVjOTExXHVjOTE4XHVjOTJjXHVjOTM0XHVjOTUwXHVjOTUxXHVjOTU0XHVjOTU4XHVjOTYwXHVjOTYxXHVjOTYzXHVjOTZjXHVjOTcw''@;'; put 'put ''XHVjOTc0XHVjOTdjXHVjOTg4XHVjOTg5XHVjOThjXHVjOTkwXHVjOTk4XHVjOTk5XHVjOTliXHVjOTlkXHVjOWMwXHVjOWMxXHVjOWM0XHVjOWM3XHVjOWM4XHVjOWNhXHVjOWQwXHVjOWQxXHVjOWQzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkzXS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; put 'put ''QlsxOTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5M11bRV1dPTQ5NDA4K0UsTFs0OTQwOCtFXT1CWzE5M11bRV0pO2ZvcihCWzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDVjYVx1ZDVjYlx1ZDVjZFx1ZDVj''@;'; put 'put ''ZVx1ZDVjZlx1ZDVkMVx1ZDVkM1x1ZDVkNFx1ZDVkNVx1ZDVkNlx1ZDVkN1x1ZDVkYVx1ZDVkY1x1ZDVkZVx1ZDVkZlx1ZDVlMFx1ZDVlMVx1ZDVlMlx1ZDVlM1x1ZDVlNlx1ZDVlN1x1ZDVlOVx1ZDVlYVx1ZDVlYlx1ZDVlZFx1ZDVlZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZDVlZlx1ZDVmMFx1ZDVmMVx1ZDVmMlx1ZDVmM1x1ZDVmNlx1ZDVmOFx1ZDVmYVx1ZDVmYlx1ZDVmY1x1ZDVmZFx1ZDVmZVx1ZDVmZlx1ZDYwMlx1ZDYwM1x1ZDYwNVx1ZDYwNlx1ZDYwN1x1ZDYwOVx1ZDYwYVx1ZDYwYlx1ZDYwY1x1ZDYwZFx1ZDYwZVx1ZDYwZlx1ZDYxMlx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDYxNlx1ZDYxN1x1ZDYxOFx1ZDYxOVx1ZDYxYVx1ZDYxYlx1ZDYxZFx1ZDYxZVx1ZDYxZlx1ZDYyMVx1ZDYyMlx1ZDYyM1x1ZDYyNVx1ZDYyNlx1ZDYyN1x1ZDYyOFx1ZDYyOVx1ZDYyYVx1ZDYyYlx1ZDYyY1x1ZDYyZVx1ZDYyZlx1''@;'; put 'put ''ZDYzMFx1ZDYzMVx1ZDYzMlx1ZDYzM1x1ZDYzNFx1ZDYzNVx1ZDYzNlx1ZDYzN1x1ZDYzYVx1ZDYzYlx1YzlkNVx1YzlkNlx1YzlkOVx1YzlkYVx1YzlkY1x1YzlkZFx1YzllMFx1YzllMlx1YzllNFx1YzllN1x1YzllY1x1YzllZFx1YzllZlx1YzlmMFx1YzlmMVx1YzlmOFx1YzlmOVx1Yzlm''@;'; put 'put ''Y1x1Y2EwMFx1Y2EwOFx1Y2EwOVx1Y2EwYlx1Y2EwY1x1Y2EwZFx1Y2ExNFx1Y2ExOFx1Y2EyOVx1Y2E0Y1x1Y2E0ZFx1Y2E1MFx1Y2E1NFx1Y2E1Y1x1Y2E1ZFx1Y2E1Zlx1Y2E2MFx1Y2E2MVx1Y2E2OFx1Y2E3ZFx1Y2E4NFx1Y2E5OFx1Y2FiY1x1Y2FiZFx1Y2FjMFx1Y2FjNFx1Y2FjY1x1''@;'; put 'put ''Y2FjZFx1Y2FjZlx1Y2FkMVx1Y2FkM1x1Y2FkOFx1Y2FkOVx1Y2FlMFx1Y2FlY1x1Y2FmNFx1Y2IwOFx1Y2IxMFx1Y2IxNFx1Y2IxOFx1Y2IyMFx1Y2IyMVx1Y2I0MVx1Y2I0OFx1Y2I0OVx1Y2I0Y1x1Y2I1MFx1Y2I1OFx1Y2I1OVx1Y2I1ZFx1Y2I2NFx1Y2I3OFx1Y2I3OVx1Y2I5Y1x1Y2Ji''@;'; put 'put ''OFx1Y2JkNFx1Y2JlNFx1Y2JlN1x1Y2JlOVx1Y2MwY1x1Y2MwZFx1Y2MxMFx1Y2MxNFx1Y2MxY1x1Y2MxZFx1Y2MyMVx1Y2MyMlx1Y2MyN1x1Y2MyOFx1Y2MyOVx1Y2MyY1x1Y2MyZVx1Y2MzMFx1Y2MzOFx1Y2MzOVx1Y2MzYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5NF0ubGVuZ3Ro''@;'; put 'put ''OysrRSk2NTUzMyE9PUJbMTk0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTRdW0VdXT00OTY2NCtFLExbNDk2NjQrRV09QlsxOTRdW0VdKTtmb3IoQlsxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2M2RcdWQ2''@;'; put 'put ''M2VcdWQ2M2ZcdWQ2NDFcdWQ2NDJcdWQ2NDNcdWQ2NDRcdWQ2NDZcdWQ2NDdcdWQ2NGFcdWQ2NGNcdWQ2NGVcdWQ2NGZcdWQ2NTBcdWQ2NTJcdWQ2NTNcdWQ2NTZcdWQ2NTdcdWQ2NTlcdWQ2NWFcdWQ2NWJcdWQ2NWRcdWQ2NWVcdWQ2NWZcdWQ2NjBcdWQ2NjFcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWQ2NjJcdWQ2NjNcdWQ2NjRcdWQ2NjVcdWQ2NjZcdWQ2NjhcdWQ2NmFcdWQ2NmJcdWQ2NmNcdWQ2NmRcdWQ2NmVcdWQ2NmZcdWQ2NzJcdWQ2NzNcdWQ2NzVcdWQ2NzZcdWQ2NzdcdWQ2NzhcdWQ2NzlcdWQ2N2FcdWQ2N2JcdWQ2N2NcdWQ2N2RcdWQ2N2VcdWQ2''@;'; put 'put ''N2ZcdWQ2ODBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ2ODFcdWQ2ODJcdWQ2ODRcdWQ2ODZcdWQ2ODdcdWQ2ODhcdWQ2ODlcdWQ2OGFcdWQ2OGJcdWQ2OGVcdWQ2OGZcdWQ2OTFcdWQ2OTJcdWQ2OTNcdWQ2OTVcdWQ2OTZcdWQ2OTdcdWQ2OThcdWQ2OTlcdWQ2OWFc''@;'; put 'put ''dWQ2OWJcdWQ2OWNcdWQ2OWVcdWQ2YTBcdWQ2YTJcdWQ2YTNcdWQ2YTRcdWQ2YTVcdWQ2YTZcdWQ2YTdcdWQ2YTlcdWQ2YWFcdWNjM2NcdWNjM2RcdWNjM2VcdWNjNDRcdWNjNDVcdWNjNDhcdWNjNGNcdWNjNTRcdWNjNTVcdWNjNTdcdWNjNThcdWNjNTlcdWNjNjBcdWNjNjRcdWNjNjZcdWNj''@;'; put 'put ''NjhcdWNjNzBcdWNjNzVcdWNjOThcdWNjOTlcdWNjOWNcdWNjYTBcdWNjYThcdWNjYTlcdWNjYWJcdWNjYWNcdWNjYWRcdWNjYjRcdWNjYjVcdWNjYjhcdWNjYmNcdWNjYzRcdWNjYzVcdWNjYzdcdWNjYzlcdWNjZDBcdWNjZDRcdWNjZTRcdWNjZWNcdWNjZjBcdWNkMDFcdWNkMDhcdWNkMDlc''@;'; put 'put ''dWNkMGNcdWNkMTBcdWNkMThcdWNkMTlcdWNkMWJcdWNkMWRcdWNkMjRcdWNkMjhcdWNkMmNcdWNkMzlcdWNkNWNcdWNkNjBcdWNkNjRcdWNkNmNcdWNkNmRcdWNkNmZcdWNkNzFcdWNkNzhcdWNkODhcdWNkOTRcdWNkOTVcdWNkOThcdWNkOWNcdWNkYTRcdWNkYTVcdWNkYTdcdWNkYTlcdWNk''@;'; put 'put ''YjBcdWNkYzRcdWNkY2NcdWNkZDBcdWNkZThcdWNkZWNcdWNkZjBcdWNkZjhcdWNkZjlcdWNkZmJcdWNkZmRcdWNlMDRcdWNlMDhcdWNlMGNcdWNlMTRcdWNlMTlcdWNlMjBcdWNlMjFcdWNlMjRcdWNlMjhcdWNlMzBcdWNlMzFcdWNlMzNcdWNlMzVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; put 'put ''QlsxOTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk1XVtFXV09NDk5MjArRSxMWzQ5OTIwK0VdPUJbMTk1XVtFXSk7Zm9yKEJbMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVkNmFiXHVkNmFkXHVkNmFlXHVkNmFmXHVkNmIxXHVkNmIyXHVkNmIzXHVkNmI0XHVkNmI1XHVkNmI2XHVkNmI3XHVkNmI4XHVkNmJhXHVkNmJjXHVkNmJkXHVkNmJlXHVkNmJmXHVkNmMwXHVkNmMxXHVkNmMyXHVkNmMzXHVkNmM2XHVkNmM3XHVkNmM5XHVkNmNhXHVkNmNiXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmNkXHVkNmNlXHVkNmNmXHVkNmQwXHVkNmQyXHVkNmQzXHVkNmQ1XHVkNmQ2XHVkNmQ4XHVkNmRhXHVkNmRiXHVkNmRjXHVkNmRkXHVkNmRlXHVkNmRmXHVkNmUxXHVkNmUyXHVkNmUzXHVkNmU1XHVkNmU2XHVkNmU3XHVkNmU5XHVk''@;'; put 'put ''NmVhXHVkNmViXHVkNmVjXHVkNmVkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNmVlXHVkNmVmXHVkNmYxXHVkNmYyXHVkNmYzXHVkNmY0XHVkNmY2XHVkNmY3XHVkNmY4XHVkNmY5XHVkNmZhXHVkNmZiXHVkNmZlXHVkNmZmXHVkNzAxXHVkNzAyXHVkNzAzXHVkNzA1''@;'; put 'put ''XHVkNzA2XHVkNzA3XHVkNzA4XHVkNzA5XHVkNzBhXHVkNzBiXHVkNzBjXHVkNzBkXHVkNzBlXHVkNzBmXHVkNzEwXHVkNzEyXHVkNzEzXHVkNzE0XHVjZTU4XHVjZTU5XHVjZTVjXHVjZTVmXHVjZTYwXHVjZTYxXHVjZTY4XHVjZTY5XHVjZTZiXHVjZTZkXHVjZTc0XHVjZTc1XHVjZTc4XHVj''@;'; put 'put ''ZTdjXHVjZTg0XHVjZTg1XHVjZTg3XHVjZTg5XHVjZTkwXHVjZTkxXHVjZTk0XHVjZTk4XHVjZWEwXHVjZWExXHVjZWEzXHVjZWE0XHVjZWE1XHVjZWFjXHVjZWFkXHVjZWMxXHVjZWU0XHVjZWU1XHVjZWU4XHVjZWViXHVjZWVjXHVjZWY0XHVjZWY1XHVjZWY3XHVjZWY4XHVjZWY5XHVjZjAw''@;'; put 'put ''XHVjZjAxXHVjZjA0XHVjZjA4XHVjZjEwXHVjZjExXHVjZjEzXHVjZjE1XHVjZjFjXHVjZjIwXHVjZjI0XHVjZjJjXHVjZjJkXHVjZjJmXHVjZjMwXHVjZjMxXHVjZjM4XHVjZjU0XHVjZjU1XHVjZjU4XHVjZjVjXHVjZjY0XHVjZjY1XHVjZjY3XHVjZjY5XHVjZjcwXHVjZjcxXHVjZjc0XHVj''@;'; put 'put ''Zjc4XHVjZjgwXHVjZjg1XHVjZjhjXHVjZmExXHVjZmE4XHVjZmIwXHVjZmM0XHVjZmUwXHVjZmUxXHVjZmU0XHVjZmU4XHVjZmYwXHVjZmYxXHVjZmYzXHVjZmY1XHVjZmZjXHVkMDAwXHVkMDA0XHVkMDExXHVkMDE4XHVkMDJkXHVkMDM0XHVkMDM1XHVkMDM4XHVkMDNjXHVmZmZkIi5zcGxp''@;'; put 'put ''dCgiIiksRT0wO0UhPUJbMTk2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Nl1bRV1dPTUwMTc2K0UsTFs1MDE3NitFXT1CWzE5Nl1bRV0pO2ZvcihCWzE5N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDcxNVx1ZDcxNlx1ZDcxN1x1ZDcxYVx1ZDcxYlx1ZDcxZFx1ZDcxZVx1ZDcxZlx1ZDcyMVx1ZDcyMlx1ZDcyM1x1ZDcyNFx1ZDcyNVx1ZDcyNlx1ZDcyN1x1ZDcyYVx1ZDcyY1x1ZDcyZVx1ZDcyZlx1ZDczMFx1ZDczMVx1ZDczMlx1ZDczM1x1ZDczNlx1ZDcz''@;'; put 'put ''N1x1ZDczOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDczYVx1ZDczYlx1ZDczZFx1ZDczZVx1ZDczZlx1ZDc0MFx1ZDc0MVx1ZDc0Mlx1ZDc0M1x1ZDc0NVx1ZDc0Nlx1ZDc0OFx1ZDc0YVx1ZDc0Ylx1ZDc0Y1x1ZDc0ZFx1ZDc0ZVx1ZDc0Zlx1ZDc1Mlx1ZDc1M1x1''@;'; put 'put ''ZDc1NVx1ZDc1YVx1ZDc1Ylx1ZDc1Y1x1ZDc1ZFx1ZDc1ZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDc1Zlx1ZDc2Mlx1ZDc2NFx1ZDc2Nlx1ZDc2N1x1ZDc2OFx1ZDc2YVx1ZDc2Ylx1ZDc2ZFx1ZDc2ZVx1ZDc2Zlx1ZDc3MVx1ZDc3Mlx1ZDc3M1x1ZDc3NVx1ZDc3''@;'; put 'put ''Nlx1ZDc3N1x1ZDc3OFx1ZDc3OVx1ZDc3YVx1ZDc3Ylx1ZDc3ZVx1ZDc3Zlx1ZDc4MFx1ZDc4Mlx1ZDc4M1x1ZDc4NFx1ZDc4NVx1ZDc4Nlx1ZDc4N1x1ZDc4YVx1ZDc4Ylx1ZDA0NFx1ZDA0NVx1ZDA0N1x1ZDA0OVx1ZDA1MFx1ZDA1NFx1ZDA1OFx1ZDA2MFx1ZDA2Y1x1ZDA2ZFx1ZDA3MFx1''@;'; put 'put ''ZDA3NFx1ZDA3Y1x1ZDA3ZFx1ZDA4MVx1ZDBhNFx1ZDBhNVx1ZDBhOFx1ZDBhY1x1ZDBiNFx1ZDBiNVx1ZDBiN1x1ZDBiOVx1ZDBjMFx1ZDBjMVx1ZDBjNFx1ZDBjOFx1ZDBjOVx1ZDBkMFx1ZDBkMVx1ZDBkM1x1ZDBkNFx1ZDBkNVx1ZDBkY1x1ZDBkZFx1ZDBlMFx1ZDBlNFx1ZDBlY1x1ZDBl''@;'; put 'put ''ZFx1ZDBlZlx1ZDBmMFx1ZDBmMVx1ZDBmOFx1ZDEwZFx1ZDEzMFx1ZDEzMVx1ZDEzNFx1ZDEzOFx1ZDEzYVx1ZDE0MFx1ZDE0MVx1ZDE0M1x1ZDE0NFx1ZDE0NVx1ZDE0Y1x1ZDE0ZFx1ZDE1MFx1ZDE1NFx1ZDE1Y1x1ZDE1ZFx1ZDE1Zlx1ZDE2MVx1ZDE2OFx1ZDE2Y1x1ZDE3Y1x1ZDE4NFx1''@;'; put 'put ''ZDE4OFx1ZDFhMFx1ZDFhMVx1ZDFhNFx1ZDFhOFx1ZDFiMFx1ZDFiMVx1ZDFiM1x1ZDFiNVx1ZDFiYVx1ZDFiY1x1ZDFjMFx1ZDFkOFx1ZDFmNFx1ZDFmOFx1ZDIwN1x1ZDIwOVx1ZDIxMFx1ZDIyY1x1ZDIyZFx1ZDIzMFx1ZDIzNFx1ZDIzY1x1ZDIzZFx1ZDIzZlx1ZDI0MVx1ZDI0OFx1ZDI1''@;'; put 'put ''Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTddW0VdXT01MDQzMitFLExbNTA0MzIrRV09QlsxOTddW0VdKTtmb3IoQlsxOThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQ3OGRcdWQ3OGVcdWQ3OGZcdWQ3OTFcdWQ3OTJcdWQ3OTNcdWQ3OTRcdWQ3OTVcdWQ3OTZcdWQ3OTdcdWQ3OWFcdWQ3OWNcdWQ3OWVcdWQ3OWZcdWQ3YTBcdWQ3YTFcdWQ3YTJcdWQ3YTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWQyNjRcdWQyODBcdWQyODFcdWQyODRcdWQyODhcdWQyOTBcdWQyOTFcdWQyOTVcdWQyOWNc''@;'; put 'put ''dWQyYTBcdWQyYTRcdWQyYWNcdWQyYjFcdWQyYjhcdWQyYjlcdWQyYmNcdWQyYmZcdWQyYzBcdWQyYzJcdWQyYzhcdWQyYzlcdWQyY2JcdWQyZDRcdWQyZDhcdWQyZGNcdWQyZTRcdWQyZTVcdWQyZjBcdWQyZjFcdWQyZjRcdWQyZjhcdWQzMDBcdWQzMDFcdWQzMDNcdWQzMDVcdWQzMGNcdWQz''@;'; put 'put ''MGRcdWQzMGVcdWQzMTBcdWQzMTRcdWQzMTZcdWQzMWNcdWQzMWRcdWQzMWZcdWQzMjBcdWQzMjFcdWQzMjVcdWQzMjhcdWQzMjlcdWQzMmNcdWQzMzBcdWQzMzhcdWQzMzlcdWQzM2JcdWQzM2NcdWQzM2RcdWQzNDRcdWQzNDVcdWQzN2NcdWQzN2RcdWQzODBcdWQzODRcdWQzOGNcdWQzOGRc''@;'; put 'put ''dWQzOGZcdWQzOTBcdWQzOTFcdWQzOThcdWQzOTlcdWQzOWNcdWQzYTBcdWQzYThcdWQzYTlcdWQzYWJcdWQzYWRcdWQzYjRcdWQzYjhcdWQzYmNcdWQzYzRcdWQzYzVcdWQzYzhcdWQzYzlcdWQzZDBcdWQzZDhcdWQzZTFcdWQzZTNcdWQzZWNcdWQzZWRcdWQzZjBcdWQzZjRcdWQzZmNcdWQz''@;'; put 'put ''ZmRcdWQzZmZcdWQ0MDFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk4XVtFXV09NTA2ODgrRSxMWzUwNjg4K0VdPUJbMTk4XVtFXSk7Zm9yKEJbMTk5XT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVkNDA4XHVkNDFkXHVkNDQwXHVkNDQ0XHVkNDVjXHVkNDYwXHVkNDY0''@;'; put 'put ''XHVkNDZkXHVkNDZmXHVkNDc4XHVkNDc5XHVkNDdjXHVkNDdmXHVkNDgwXHVkNDgyXHVkNDg4XHVkNDg5XHVkNDhiXHVkNDhkXHVkNDk0XHVkNGE5XHVkNGNjXHVkNGQwXHVkNGQ0XHVkNGRjXHVkNGRmXHVkNGU4XHVkNGVjXHVkNGYwXHVkNGY4XHVkNGZiXHVkNGZkXHVkNTA0XHVkNTA4XHVk''@;'; put 'put ''NTBjXHVkNTE0XHVkNTE1XHVkNTE3XHVkNTNjXHVkNTNkXHVkNTQwXHVkNTQ0XHVkNTRjXHVkNTRkXHVkNTRmXHVkNTUxXHVkNTU4XHVkNTU5XHVkNTVjXHVkNTYwXHVkNTY1XHVkNTY4XHVkNTY5XHVkNTZiXHVkNTZkXHVkNTc0XHVkNTc1XHVkNTc4XHVkNTdjXHVkNTg0XHVkNTg1XHVkNTg3''@;'; put 'put ''XHVkNTg4XHVkNTg5XHVkNTkwXHVkNWE1XHVkNWM4XHVkNWM5XHVkNWNjXHVkNWQwXHVkNWQyXHVkNWQ4XHVkNWQ5XHVkNWRiXHVkNWRkXHVkNWU0XHVkNWU1XHVkNWU4XHVkNWVjXHVkNWY0XHVkNWY1XHVkNWY3XHVkNWY5XHVkNjAwXHVkNjAxXHVkNjA0XHVkNjA4XHVkNjEwXHVkNjExXHVk''@;'; put 'put ''NjEzXHVkNjE0XHVkNjE1XHVkNjFjXHVkNjIwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5OV1bRV1dPTUwOTQ0K0UsTFs1MDk0NCtFXT1CWzE5OV1bRV0pO2ZvcihCWzIwMF09Ilx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZDYyNFx1ZDYyZFx1ZDYzOFx1ZDYzOVx1ZDYz''@;'; put 'put ''Y1x1ZDY0MFx1ZDY0NVx1ZDY0OFx1ZDY0OVx1ZDY0Ylx1ZDY0ZFx1ZDY1MVx1ZDY1NFx1ZDY1NVx1ZDY1OFx1ZDY1Y1x1ZDY2N1x1ZDY2OVx1ZDY3MFx1ZDY3MVx1ZDY3NFx1ZDY4M1x1ZDY4NVx1ZDY4Y1x1ZDY4ZFx1ZDY5MFx1ZDY5NFx1ZDY5ZFx1ZDY5Zlx1ZDZhMVx1ZDZhOFx1ZDZhY1x1''@;'; put 'put ''ZDZiMFx1ZDZiOVx1ZDZiYlx1ZDZjNFx1ZDZjNVx1ZDZjOFx1ZDZjY1x1ZDZkMVx1ZDZkNFx1ZDZkN1x1ZDZkOVx1ZDZlMFx1ZDZlNFx1ZDZlOFx1ZDZmMFx1ZDZmNVx1ZDZmY1x1ZDZmZFx1ZDcwMFx1ZDcwNFx1ZDcxMVx1ZDcxOFx1ZDcxOVx1ZDcxY1x1ZDcyMFx1ZDcyOFx1ZDcyOVx1ZDcy''@;'; put 'put ''Ylx1ZDcyZFx1ZDczNFx1ZDczNVx1ZDczOFx1ZDczY1x1ZDc0NFx1ZDc0N1x1ZDc0OVx1ZDc1MFx1ZDc1MVx1ZDc1NFx1ZDc1Nlx1ZDc1N1x1ZDc1OFx1ZDc1OVx1ZDc2MFx1ZDc2MVx1ZDc2M1x1ZDc2NVx1ZDc2OVx1ZDc2Y1x1ZDc3MFx1ZDc3NFx1ZDc3Y1x1ZDc3ZFx1ZDc4MVx1ZDc4OFx1''@;'; put 'put ''ZDc4OVx1ZDc4Y1x1ZDc5MFx1ZDc5OFx1ZDc5OVx1ZDc5Ylx1ZDc5ZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDBdW0VdXT01MTIwMCtFLExbNTEyMDArRV09QlsyMDBdW0VdKTtmb3Io''@;'; put 'put ''QlsyMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmM2RcdTRmNzNcdTUw''@;'; put 'put ''NDdcdTUwZjlcdTUyYTBcdTUzZWZcdTU0NzVcdTU0ZTVcdTU2MDlcdTVhYzFcdTViYjZcdTY2ODdcdTY3YjZcdTY3YjdcdTY3ZWZcdTZiNGNcdTczYzJcdTc1YzJcdTdhM2NcdTgyZGJcdTgzMDRcdTg4NTdcdTg4ODhcdThhMzZcdThjYzhcdThkY2ZcdThlZmJcdThmZTZcdTk5ZDVcdTUyM2Jc''@;'; put 'put ''dTUzNzRcdTU0MDRcdTYwNmFcdTYxNjRcdTZiYmNcdTczY2ZcdTgxMWFcdTg5YmFcdTg5ZDJcdTk1YTNcdTRmODNcdTUyMGFcdTU4YmVcdTU5NzhcdTU5ZTZcdTVlNzJcdTVlNzlcdTYxYzdcdTYzYzBcdTY3NDZcdTY3ZWNcdTY4N2ZcdTZmOTdcdTc2NGVcdTc3MGJcdTc4ZjVcdTdhMDhcdTdh''@;'; put 'put ''ZmZcdTdjMjFcdTgwOWRcdTgyNmVcdTgyNzFcdThhZWJcdTk1OTNcdTRlNmJcdTU1OWRcdTY2ZjdcdTZlMzRcdTc4YTNcdTdhZWRcdTg0NWJcdTg5MTBcdTg3NGVcdTk3YThcdTUyZDhcdTU3NGVcdTU4MmFcdTVkNGNcdTYxMWZcdTYxYmVcdTYyMjFcdTY1NjJcdTY3ZDFcdTZhNDRcdTZlMWJc''@;'; put 'put ''dTc1MThcdTc1YjNcdTc2ZTNcdTc3YjBcdTdkM2FcdTkwYWZcdTk0NTFcdTk0NTJcdTlmOTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAyXVtFXV09NTE3MTIrRSxMWzUxNzEyK0VdPUJb''@;'; put 'put ''MjAyXVtFXSk7Zm9yKEJbMjAzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1''@;'; put 'put ''MzIzXHU1Y2FjXHU3NTMyXHU4MGRiXHU5MjQwXHU5NTk4XHU1MjViXHU1ODA4XHU1OWRjXHU1Y2ExXHU1ZDE3XHU1ZWI3XHU1ZjNhXHU1ZjRhXHU2MTc3XHU2YzVmXHU3NTdhXHU3NTg2XHU3Y2UwXHU3ZDczXHU3ZGIxXHU3ZjhjXHU4MTU0XHU4MjIxXHU4NTkxXHU4OTQxXHU4YjFiXHU5MmZj''@;'; put 'put ''XHU5NjRkXHU5YzQ3XHU0ZWNiXHU0ZWY3XHU1MDBiXHU1MWYxXHU1ODRmXHU2MTM3XHU2MTNlXHU2MTY4XHU2NTM5XHU2OWVhXHU2ZjExXHU3NWE1XHU3Njg2XHU3NmQ2XHU3Yjg3XHU4MmE1XHU4NGNiXHVmOTAwXHU5M2E3XHU5NThiXHU1NTgwXHU1YmEyXHU1NzUxXHVmOTAxXHU3Y2IzXHU3''@;'; put 'put ''ZmI5XHU5MWI1XHU1MDI4XHU1M2JiXHU1YzQ1XHU1ZGU4XHU2MmQyXHU2MzZlXHU2NGRhXHU2NGU3XHU2ZTIwXHU3MGFjXHU3OTViXHU4ZGRkXHU4ZTFlXHVmOTAyXHU5MDdkXHU5MjQ1XHU5MmY4XHU0ZTdlXHU0ZWY2XHU1MDY1XHU1ZGZlXHU1ZWZhXHU2MTA2XHU2OTU3XHU4MTcxXHU4NjU0''@;'; put 'put ''XHU4ZTQ3XHU5Mzc1XHU5YTJiXHU0ZTVlXHU1MDkxXHU2NzcwXHU2ODQwXHU1MTA5XHU1MjhkXHU1MjkyXHU2YWEyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwM11bRV1dPTUxOTY4K0Us''@;'; put 'put ''TFs1MTk2OCtFXT1CWzIwM11bRV0pO2ZvcihCWzIwNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1NzdiY1x1OTIxMFx1OWVkNFx1NTJhYlx1NjAyZlx1OGZmMlx1NTA0OFx1NjFhOVx1NjNlZFx1NjRjYVx1NjgzY1x1NmE4NFx1NmZjMFx1ODE4OFx1ODlhMVx1OTY5NFx1NTgwNVx1NzI3ZFx1NzJhY1x1NzUwNFx1N2Q3OVx1N2U2ZFx1ODBhOVx1ODk4Ylx1OGI3NFx1OTA2''@;'; put 'put ''M1x1OWQ1MVx1NjI4OVx1NmM3YVx1NmY1NFx1N2Q1MFx1N2YzYVx1OGEyM1x1NTE3Y1x1NjE0YVx1N2I5ZFx1OGIxOVx1OTI1N1x1OTM4Y1x1NGVhY1x1NGZkM1x1NTAxZVx1NTBiZVx1NTEwNlx1NTJjMVx1NTJjZFx1NTM3Zlx1NTc3MFx1NTg4M1x1NWU5YVx1NWY5MVx1NjE3Nlx1NjFhY1x1''@;'; put 'put ''NjRjZVx1NjU2Y1x1NjY2Zlx1NjZiYlx1NjZmNFx1Njg5N1x1NmQ4N1x1NzA4NVx1NzBmMVx1NzQ5Zlx1NzRhNVx1NzRjYVx1NzVkOVx1Nzg2Y1x1NzhlY1x1N2FkZlx1N2FmNlx1N2Q0NVx1N2Q5M1x1ODAxNVx1ODAzZlx1ODExYlx1ODM5Nlx1OGI2Nlx1OGYxNVx1OTAxNVx1OTNlMVx1OTgw''@;'; put 'put ''M1x1OTgzOFx1OWE1YVx1OWJlOFx1NGZjMlx1NTU1M1x1NTgzYVx1NTk1MVx1NWI2M1x1NWM0Nlx1NjBiOFx1NjIxMlx1Njg0Mlx1NjhiMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDRd''@;'; put 'put ''W0VdXT01MjIyNCtFLExbNTIyMjQrRV09QlsyMDRdW0VdKTtmb3IoQlsyMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY4ZThcdTZlYWFcdTc1NGNcdTc2NzhcdTc4Y2VcdTdhM2RcdTdjZmJcdTdlNmJcdTdlN2NcdThhMDhcdThhYTFcdThjM2ZcdTk2OGVcdTlkYzRcdTUzZTRcdTUzZTlcdTU0NGFcdTU0NzFcdTU2ZmFcdTU5ZDFcdTViNjRcdTVjM2JcdTVlYWJcdTYy''@;'; put 'put ''ZjdcdTY1MzdcdTY1NDVcdTY1NzJcdTY2YTBcdTY3YWZcdTY5YzFcdTZjYmRcdTc1ZmNcdTc2OTBcdTc3N2VcdTdhM2ZcdTdmOTRcdTgwMDNcdTgwYTFcdTgxOGZcdTgyZTZcdTgyZmRcdTgzZjBcdTg1YzFcdTg4MzFcdTg4YjRcdThhYTVcdWY5MDNcdThmOWNcdTkzMmVcdTk2YzdcdTk4Njdc''@;'; put 'put ''dTlhZDhcdTlmMTNcdTU0ZWRcdTY1OWJcdTY2ZjJcdTY4OGZcdTdhNDBcdThjMzdcdTlkNjBcdTU2ZjBcdTU3NjRcdTVkMTFcdTY2MDZcdTY4YjFcdTY4Y2RcdTZlZmVcdTc0MjhcdTg4OWVcdTliZTRcdTZjNjhcdWY5MDRcdTlhYThcdTRmOWJcdTUxNmNcdTUxNzFcdTUyOWZcdTViNTRcdTVk''@;'; put 'put ''ZTVcdTYwNTBcdTYwNmRcdTYyZjFcdTYzYTdcdTY1M2JcdTczZDlcdTdhN2FcdTg2YTNcdThjYTJcdTk3OGZcdTRlMzJcdTViZTFcdTYyMDhcdTY3OWNcdTc0ZGNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNV1bRV0uY2hhckNvZGVBdCgw''@;'; put 'put ''KSYmKG1lW0JbMjA1XVtFXV09NTI0ODArRSxMWzUyNDgwK0VdPUJbMjA1XVtFXSk7Zm9yKEJbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3OWQxXHU4M2QzXHU4YTg3XHU4YWIyXHU4ZGU4XHU5MDRlXHU5MzRiXHU5ODQ2XHU1ZWQzXHU2OWU4XHU4NWZmXHU5MGVkXHVmOTA1XHU1MWEwXHU1Yjk4XHU1YmVjXHU2MTYzXHU2OGZhXHU2YjNlXHU3MDRjXHU3NDJmXHU3''@;'; put 'put ''NGQ4XHU3YmExXHU3ZjUwXHU4M2M1XHU4OWMwXHU4Y2FiXHU5NWRjXHU5OTI4XHU1MjJlXHU2MDVkXHU2MmVjXHU5MDAyXHU0ZjhhXHU1MTQ5XHU1MzIxXHU1OGQ5XHU1ZWUzXHU2NmUwXHU2ZDM4XHU3MDlhXHU3MmMyXHU3M2Q2XHU3YjUwXHU4MGYxXHU5NDViXHU1MzY2XHU2MzliXHU3ZjZi''@;'; put 'put ''XHU0ZTU2XHU1MDgwXHU1ODRhXHU1OGRlXHU2MDJhXHU2MTI3XHU2MmQwXHU2OWQwXHU5YjQxXHU1YjhmXHU3ZDE4XHU4MGIxXHU4ZjVmXHU0ZWE0XHU1MGQxXHU1NGFjXHU1NWFjXHU1YjBjXHU1ZGEwXHU1ZGU3XHU2NTJhXHU2NTRlXHU2ODIxXHU2YTRiXHU3MmUxXHU3NjhlXHU3N2VmXHU3''@;'; put 'put ''ZDVlXHU3ZmY5XHU4MWEwXHU4NTRlXHU4NmRmXHU4ZjAzXHU4ZjRlXHU5MGNhXHU5OTAzXHU5YTU1XHU5YmFiXHU0ZTE4XHU0ZTQ1XHU0ZTVkXHU0ZWM3XHU0ZmYxXHU1MTc3XHU1MmZlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDZdW0Vd''@;'; put 'put ''LmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNl1bRV1dPTUyNzM2K0UsTFs1MjczNitFXT1CWzIwNl1bRV0pO2ZvcihCWzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTM0MFx1NTNlM1x1NTNlNVx1NTQ4ZVx1NTYxNFx1NTc3NVx1NTdhMlx1NWJjN1x1NWQ4N1x1NWVkMFx1NjFmY1x1NjJkOFx1NjU1MVx1NjdiOFx1NjdlOVx1NjljYlx1NmI1MFx1NmJjNlx1NmJlY1x1''@;'; put 'put ''NmM0Mlx1NmU5ZFx1NzA3OFx1NzJkN1x1NzM5Nlx1NzQwM1x1NzdiZlx1NzdlOVx1N2E3Nlx1N2Q3Zlx1ODAwOVx1ODFmY1x1ODIwNVx1ODIwYVx1ODJkZlx1ODg2Mlx1OGIzM1x1OGNmY1x1OGVjMFx1OTAxMVx1OTBiMVx1OTI2NFx1OTJiNlx1OTlkMlx1OWE0NVx1OWNlOVx1OWRkN1x1OWY5''@;'; put 'put ''Y1x1NTcwYlx1NWM0MFx1ODNjYVx1OTdhMFx1OTdhYlx1OWViNFx1NTQxYlx1N2E5OFx1N2ZhNFx1ODhkOVx1OGVjZFx1OTBlMVx1NTgwMFx1NWM0OFx1NjM5OFx1N2E5Zlx1NWJhZVx1NWYxM1x1N2E3OVx1N2FhZVx1ODI4ZVx1OGVhY1x1NTAyNlx1NTIzOFx1NTJmOFx1NTM3N1x1NTcwOFx1''@;'; put 'put ''NjJmM1x1NjM3Mlx1NmIwYVx1NmRjM1x1NzczN1x1NTNhNVx1NzM1N1x1ODU2OFx1OGU3Nlx1OTVkNVx1NjczYVx1NmFjM1x1NmY3MFx1OGE2ZFx1OGVjY1x1OTk0Ylx1ZjkwNlx1NjY3N1x1NmI3OFx1OGNiNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwN10ubGVuZ3RoOysrRSk2NTUz''@;'; put 'put ''MyE9PUJbMjA3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDddW0VdXT01Mjk5MitFLExbNTI5OTIrRV09QlsyMDddW0VdKTtmb3IoQlsyMDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliM2NcdWY5MDdcdTUzZWJcdTU3MmRcdTU5NGVcdTYzYzZcdTY5ZmJcdTczZWFcdTc4NDVcdTdhYmFcdTdhYzVcdTdjZmVcdTg0NzVcdTg5OGZcdThkNzNcdTkwMzVcdTk1YThc''@;'; put 'put ''dTUyZmJcdTU3NDdcdTc1NDdcdTdiNjBcdTgzY2NcdTkyMWVcdWY5MDhcdTZhNThcdTUxNGJcdTUyNGJcdTUyODdcdTYyMWZcdTY4ZDhcdTY5NzVcdTk2OTlcdTUwYzVcdTUyYTRcdTUyZTRcdTYxYzNcdTY1YTRcdTY4MzlcdTY5ZmZcdTc0N2VcdTdiNGJcdTgyYjlcdTgzZWJcdTg5YjJcdThi''@;'; put 'put ''MzlcdThmZDFcdTk5NDlcdWY5MDlcdTRlY2FcdTU5OTdcdTY0ZDJcdTY2MTFcdTZhOGVcdTc0MzRcdTc5ODFcdTc5YmRcdTgyYTlcdTg4N2VcdTg4N2ZcdTg5NWZcdWY5MGFcdTkzMjZcdTRmMGJcdTUzY2FcdTYwMjVcdTYyNzFcdTZjNzJcdTdkMWFcdTdkNjZcdTRlOThcdTUxNjJcdTc3ZGNc''@;'; put 'put ''dTgwYWZcdTRmMDFcdTRmMGVcdTUxNzZcdTUxODBcdTU1ZGNcdTU2NjhcdTU3M2JcdTU3ZmFcdTU3ZmNcdTU5MTRcdTU5NDdcdTU5OTNcdTViYzRcdTVjOTBcdTVkMGVcdTVkZjFcdTVlN2VcdTVmY2NcdTYyODBcdTY1ZDdcdTY1ZTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDhdLmxl''@;'; put 'put ''bmd0aDsrK0UpNjU1MzMhPT1CWzIwOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA4XVtFXV09NTMyNDgrRSxMWzUzMjQ4K0VdPUJbMjA4XVtFXSk7Zm9yKEJbMjA5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2NzFlXHU2NzFmXHU2NzVlXHU2OGNiXHU2OGM0XHU2YTVmXHU2YjNhXHU2YzIzXHU2YzdkXHU2YzgyXHU2ZGM3XHU3Mzk4XHU3NDI2XHU3NDJhXHU3NDgy''@;'; put 'put ''XHU3NGEzXHU3NTc4XHU3NTdmXHU3ODgxXHU3OGVmXHU3OTQxXHU3OTQ3XHU3OTQ4XHU3OTdhXHU3Yjk1XHU3ZDAwXHU3ZGJhXHU3Zjg4XHU4MDA2XHU4MDJkXHU4MDhjXHU4YTE4XHU4YjRmXHU4YzQ4XHU4ZDc3XHU5MzIxXHU5MzI0XHU5OGUyXHU5OTUxXHU5YTBlXHU5YTBmXHU5YTY1XHU5''@;'; put 'put ''ZTkyXHU3ZGNhXHU0Zjc2XHU1NDA5XHU2MmVlXHU2ODU0XHU5MWQxXHU1NWFiXHU1MTNhXHVmOTBiXHVmOTBjXHU1YTFjXHU2MWU2XHVmOTBkXHU2MmNmXHU2MmZmXHVmOTBlXHVmOTBmXHVmOTEwXHVmOTExXHVmOTEyXHVmOTEzXHU5MGEzXHVmOTE0XHVmOTE1XHVmOTE2XHVmOTE3XHVmOTE4''@;'; put 'put ''XHU4YWZlXHVmOTE5XHVmOTFhXHVmOTFiXHVmOTFjXHU2Njk2XHVmOTFkXHU3MTU2XHVmOTFlXHVmOTFmXHU5NmUzXHVmOTIwXHU2MzRmXHU2MzdhXHU1MzU3XHVmOTIxXHU2NzhmXHU2OTYwXHU2ZTczXHVmOTIyXHU3NTM3XHVmOTIzXHVmOTI0XHVmOTI1XHVmZmZkIi5zcGxpdCgiIiksRT0w''@;'; put 'put ''O0UhPUJbMjA5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwOV1bRV1dPTUzNTA0K0UsTFs1MzUwNCtFXT1CWzIwOV1bRV0pO2ZvcihCWzIxMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2QwZFx1ZjkyNlx1ZjkyN1x1ODg3Mlx1NTZjYVx1NWExOFx1ZjkyOFx1ZjkyOVx1ZjkyYVx1ZjkyYlx1ZjkyY1x1NGU0M1x1Zjky''@;'; put 'put ''ZFx1NTE2N1x1NTk0OFx1NjdmMFx1ODAxMFx1ZjkyZVx1NTk3M1x1NWU3NFx1NjQ5YVx1NzljYVx1NWZmNVx1NjA2Y1x1NjJjOFx1NjM3Ylx1NWJlN1x1NWJkN1x1NTJhYVx1ZjkyZlx1NTk3NFx1NWYyOVx1NjAxMlx1ZjkzMFx1ZjkzMVx1ZjkzMlx1NzQ1OVx1ZjkzM1x1ZjkzNFx1ZjkzNVx1''@;'; put 'put ''ZjkzNlx1ZjkzN1x1ZjkzOFx1OTlkMVx1ZjkzOVx1ZjkzYVx1ZjkzYlx1ZjkzY1x1ZjkzZFx1ZjkzZVx1ZjkzZlx1Zjk0MFx1Zjk0MVx1Zjk0Mlx1Zjk0M1x1NmZjM1x1Zjk0NFx1Zjk0NVx1ODFiZlx1OGZiMlx1NjBmMVx1Zjk0Nlx1Zjk0N1x1ODE2Nlx1Zjk0OFx1Zjk0OVx1NWMzZlx1Zjk0''@;'; put 'put ''YVx1Zjk0Ylx1Zjk0Y1x1Zjk0ZFx1Zjk0ZVx1Zjk0Zlx1Zjk1MFx1Zjk1MVx1NWFlOVx1OGEyNVx1Njc3Ylx1N2QxMFx1Zjk1Mlx1Zjk1M1x1Zjk1NFx1Zjk1NVx1Zjk1Nlx1Zjk1N1x1ODBmZFx1Zjk1OFx1Zjk1OVx1NWMzY1x1NmNlNVx1NTMzZlx1NmViYVx1NTkxYVx1ODMzNlx1ZmZmZCIu''@;'; put 'put ''c3BsaXQoIiIpLEU9MDtFIT1CWzIxMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTBdW0VdXT01Mzc2MCtFLExbNTM3NjArRV09QlsyMTBdW0VdKTtmb3IoQlsyMTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMzlcdTRlYjZcdTRmNDZcdTU1YWVcdTU3MThcdTU4YzdcdTVmNTZcdTY1YjdcdTY1ZTZcdTZhODBcdTZi''@;'; put 'put ''YjVcdTZlNGRcdTc3ZWRcdTdhZWZcdTdjMWVcdTdkZGVcdTg2Y2JcdTg4OTJcdTkxMzJcdTkzNWJcdTY0YmJcdTZmYmVcdTczN2FcdTc1YjhcdTkwNTRcdTU1NTZcdTU3NGRcdTYxYmFcdTY0ZDRcdTY2YzdcdTZkZTFcdTZlNWJcdTZmNmRcdTZmYjlcdTc1ZjBcdTgwNDNcdTgxYmRcdTg1NDFc''@;'; put 'put ''dTg5ODNcdThhYzdcdThiNWFcdTkzMWZcdTZjOTNcdTc1NTNcdTdiNTRcdThlMGZcdTkwNWRcdTU1MTBcdTU4MDJcdTU4NThcdTVlNjJcdTYyMDdcdTY0OWVcdTY4ZTBcdTc1NzZcdTdjZDZcdTg3YjNcdTllZThcdTRlZTNcdTU3ODhcdTU3NmVcdTU5MjdcdTVjMGRcdTVjYjFcdTVlMzZcdTVm''@;'; put 'put ''ODVcdTYyMzRcdTY0ZTFcdTczYjNcdTgxZmFcdTg4OGJcdThjYjhcdTk2OGFcdTllZGJcdTViODVcdTVmYjdcdTYwYjNcdTUwMTJcdTUyMDBcdTUyMzBcdTU3MTZcdTU4MzVcdTU4NTdcdTVjMGVcdTVjNjBcdTVjZjZcdTVkOGJcdTVlYTZcdTVmOTJcdTYwYmNcdTYzMTFcdTYzODlcdTY0MTdc''@;'; put 'put ''dTY4NDNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjExXVtFXV09NTQwMTYrRSxMWzU0MDE2K0VdPUJbMjExXVtFXSk7Zm9yKEJbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OGY5XHU2YWMyXHU2ZGQ4XHU2ZTIxXHU2ZWQ0XHU2ZmU0XHU3MWZlXHU3NmRjXHU3''@;'; put 'put ''Nzc5XHU3OWIxXHU3YTNiXHU4NDA0XHU4OWE5XHU4Y2VkXHU4ZGYzXHU4ZTQ4XHU5MDAzXHU5MDE0XHU5MDUzXHU5MGZkXHU5MzRkXHU5Njc2XHU5N2RjXHU2YmQyXHU3MDA2XHU3MjU4XHU3MmEyXHU3MzY4XHU3NzYzXHU3OWJmXHU3YmU0XHU3ZTliXHU4YjgwXHU1OGE5XHU2MGM3XHU2NTY2''@;'; put 'put ''XHU2NWZkXHU2NmJlXHU2YzhjXHU3MTFlXHU3MWM5XHU4YzVhXHU5ODEzXHU0ZTZkXHU3YTgxXHU0ZWRkXHU1MWFjXHU1MWNkXHU1MmQ1XHU1NDBjXHU2MWE3XHU2NzcxXHU2ODUwXHU2OGRmXHU2ZDFlXHU2ZjdjXHU3NWJjXHU3N2IzXHU3YWU1XHU4MGY0XHU4NDYzXHU5Mjg1XHU1MTVjXHU2''@;'; put 'put ''NTk3XHU2NzVjXHU2NzkzXHU3NWQ4XHU3YWM3XHU4MzczXHVmOTVhXHU4YzQ2XHU5MDE3XHU5ODJkXHU1YzZmXHU4MWMwXHU4MjlhXHU5MDQxXHU5MDZmXHU5MjBkXHU1Zjk3XHU1ZDlkXHU2YTU5XHU3MWM4XHU3NjdiXHU3YjQ5XHU4NWU0XHU4YjA0XHU5MTI3XHU5YTMwXHU1NTg3XHU2MWY2''@;'; put 'put ''XHVmOTViXHU3NjY5XHU3Zjg1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMl1bRV1dPTU0MjcyK0UsTFs1NDI3MitFXT1CWzIxMl1bRV0pO2ZvcihCWzIxM109Ilx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODYzZlx1ODdiYVx1ODhmOFx1OTA4Zlx1Zjk1Y1x1NmQxYlx1''@;'; put 'put ''NzBkOVx1NzNkZVx1N2Q2MVx1ODQzZFx1Zjk1ZFx1OTE2YVx1OTlmMVx1Zjk1ZVx1NGU4Mlx1NTM3NVx1NmIwNFx1NmIxMlx1NzAzZVx1NzIxYlx1ODYyZFx1OWUxZVx1NTI0Y1x1OGZhM1x1NWQ1MFx1NjRlNVx1NjUyY1x1NmIxNlx1NmZlYlx1N2M0M1x1N2U5Y1x1ODVjZFx1ODk2NFx1ODli''@;'; put 'put ''ZFx1NjJjOVx1ODFkOFx1ODgxZlx1NWVjYVx1NjcxN1x1NmQ2YVx1NzJmY1x1NzQwNVx1NzQ2Zlx1ODc4Mlx1OTBkZVx1NGY4Nlx1NWQwZFx1NWZhMFx1ODQwYVx1NTFiN1x1NjNhMFx1NzU2NVx1NGVhZVx1NTAwNlx1NTE2OVx1NTFjOVx1Njg4MVx1NmExMVx1N2NhZVx1N2NiMVx1N2NlN1x1''@;'; put 'put ''ODI2Zlx1OGFkMlx1OGYxYlx1OTFjZlx1NGZiNlx1NTEzN1x1NTJmNVx1NTQ0Mlx1NWVlY1x1NjE2ZVx1NjIzZVx1NjVjNVx1NmFkYVx1NmZmZVx1NzkyYVx1ODVkY1x1ODgyM1x1OTVhZFx1OWE2Mlx1OWE2YVx1OWU5N1x1OWVjZVx1NTI5Ylx1NjZjNlx1NmI3N1x1NzAxZFx1NzkyYlx1OGY2''@;'; put 'put ''Mlx1OTc0Mlx1NjE5MFx1NjIwMFx1NjUyM1x1NmYyM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTNdW0VdXT01NDUyOCtFLExbNTQ1MjgrRV09QlsyMTNdW0VdKTtmb3IoQlsyMTRdPSJc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcxNDlcdTc0ODlcdTdkZjRcdTgwNmZc''@;'; put 'put ''dTg0ZWVcdThmMjZcdTkwMjNcdTkzNGFcdTUxYmRcdTUyMTdcdTUyYTNcdTZkMGNcdTcwYzhcdTg4YzJcdTVlYzlcdTY1ODJcdTZiYWVcdTZmYzJcdTdjM2VcdTczNzVcdTRlZTRcdTRmMzZcdTU2ZjlcdWY5NWZcdTVjYmFcdTVkYmFcdTYwMWNcdTczYjJcdTdiMmRcdTdmOWFcdTdmY2VcdTgw''@;'; put 'put ''NDZcdTkwMWVcdTkyMzRcdTk2ZjZcdTk3NDhcdTk4MThcdTlmNjFcdTRmOGJcdTZmYTdcdTc5YWVcdTkxYjRcdTk2YjdcdTUyZGVcdWY5NjBcdTY0ODhcdTY0YzRcdTZhZDNcdTZmNWVcdTcwMThcdTcyMTBcdTc2ZTdcdTgwMDFcdTg2MDZcdTg2NWNcdThkZWZcdThmMDVcdTk3MzJcdTliNmZc''@;'; put 'put ''dTlkZmFcdTllNzVcdTc4OGNcdTc5N2ZcdTdkYTBcdTgzYzlcdTkzMDRcdTllN2ZcdTllOTNcdThhZDZcdTU4ZGZcdTVmMDRcdTY3MjdcdTcwMjdcdTc0Y2ZcdTdjNjBcdTgwN2VcdTUxMjFcdTcwMjhcdTcyNjJcdTc4Y2FcdThjYzJcdThjZGFcdThjZjRcdTk2ZjdcdTRlODZcdTUwZGFcdTVi''@;'; put 'put ''ZWVcdTVlZDZcdTY1OTlcdTcxY2VcdTc2NDJcdTc3YWRcdTgwNGFcdTg0ZmNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE0XVtFXV09NTQ3ODQrRSxMWzU0Nzg0K0VdPUJbMjE0XVtFXSk7''@;'; put 'put ''Zm9yKEJbMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDdjXHU5YjI3''@;'; put 'put ''XHU5ZjhkXHU1OGQ4XHU1YTQxXHU1YzYyXHU2YTEzXHU2ZGRhXHU2ZjBmXHU3NjNiXHU3ZDJmXHU3ZTM3XHU4NTFlXHU4OTM4XHU5M2U0XHU5NjRiXHU1Mjg5XHU2NWQyXHU2N2YzXHU2OWI0XHU2ZDQxXHU2ZTljXHU3MDBmXHU3NDA5XHU3NDYwXHU3NTU5XHU3NjI0XHU3ODZiXHU4YjJjXHU5''@;'; put 'put ''ODVlXHU1MTZkXHU2MjJlXHU5Njc4XHU0Zjk2XHU1MDJiXHU1ZDE5XHU2ZGVhXHU3ZGI4XHU4ZjJhXHU1ZjhiXHU2MTQ0XHU2ODE3XHVmOTYxXHU5Njg2XHU1MmQyXHU4MDhiXHU1MWRjXHU1MWNjXHU2OTVlXHU3YTFjXHU3ZGJlXHU4M2YxXHU5Njc1XHU0ZmRhXHU1MjI5XHU1Mzk4XHU1NDBm''@;'; put 'put ''XHU1NTBlXHU1YzY1XHU2MGE3XHU2NzRlXHU2OGE4XHU2ZDZjXHU3MjgxXHU3MmY4XHU3NDA2XHU3NDgzXHVmOTYyXHU3NWUyXHU3YzZjXHU3Zjc5XHU3ZmI4XHU4Mzg5XHU4OGNmXHU4OGUxXHU5MWNjXHU5MWQwXHU5NmUyXHU5YmM5XHU1NDFkXHU2ZjdlXHU3MWQwXHU3NDk4XHU4NWZhXHU4''@;'; put 'put ''ZWFhXHU5NmEzXHU5YzU3XHU5ZTlmXHU2Nzk3XHU2ZGNiXHU3NDMzXHU4MWU4XHU5NzE2XHU3ODJjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNV1bRV1dPTU1MDQwK0UsTFs1NTA0MCtF''@;'; put 'put ''XT1CWzIxNV1bRV0pO2ZvcihCWzIxNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1N2FjYlx1N2IyMFx1N2M5Mlx1NjQ2OVx1NzQ2YVx1NzVmMlx1NzhiY1x1NzhlOFx1OTlhY1x1OWI1NFx1OWViYlx1NWJkZVx1NWU1NVx1NmYyMFx1ODE5Y1x1ODNhYlx1OTA4OFx1NGUwN1x1NTM0ZFx1NWEyOVx1NWRkMlx1NWY0ZVx1NjE2Mlx1NjMzZFx1NjY2OVx1NjZmY1x1NmVmZlx1''@;'; put 'put ''NmYyYlx1NzA2M1x1Nzc5ZVx1ODQyY1x1ODUxM1x1ODgzYlx1OGYxM1x1OTk0NVx1OWMzYlx1NTUxY1x1NjJiOVx1NjcyYlx1NmNhYlx1ODMwOVx1ODk2YVx1OTc3YVx1NGVhMVx1NTk4NFx1NWZkOFx1NWZkOVx1NjcxYlx1N2RiMlx1N2Y1NFx1ODI5Mlx1ODMyYlx1ODNiZFx1OGYxZVx1OTA5''@;'; put 'put ''OVx1NTdjYlx1NTliOVx1NWE5Mlx1NWJkMFx1NjYyN1x1Njc5YVx1Njg4NVx1NmJjZlx1NzE2NFx1N2Y3NVx1OGNiN1x1OGNlM1x1OTA4MVx1OWI0NVx1ODEwOFx1OGM4YVx1OTY0Y1x1OWE0MFx1OWVhNVx1NWI1Zlx1NmMxM1x1NzMxYlx1NzZmMlx1NzZkZlx1ODQwY1x1NTFhYVx1ODk5M1x1''@;'; put 'put ''NTE0ZFx1NTE5NVx1NTJjOVx1NjhjOVx1NmM5NFx1NzcwNFx1NzcyMFx1N2RiZlx1N2RlY1x1OTc2Mlx1OWViNVx1NmVjNVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTZdW0VdXT01NTI5''@;'; put 'put ''NitFLExbNTUyOTYrRV09QlsyMTZdW0VdKTtmb3IoQlsyMTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdTg1MTFcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTY2OWRcdTY5MjdcdTZlOWZcdTc2YmZcdTc3OTFcdTgzMTdcdTg0YzJcdTg3OWZcdTkxNjlcdTkyOThcdTljZjRcdTg4ODJcdTRmYWVcdTUxOTJcdTUyZGZcdTU5YzZcdTVlM2RcdTYxNTVcdTY0NzhcdTY0Nzlc''@;'; put 'put ''dTY2YWVcdTY3ZDBcdTZhMjFcdTZiY2RcdTZiZGJcdTcyNWZcdTcyNjFcdTc0NDFcdTc3MzhcdTc3ZGJcdTgwMTdcdTgyYmNcdTgzMDVcdThiMDBcdThiMjhcdThjOGNcdTY3MjhcdTZjOTBcdTcyNjdcdTc2ZWVcdTc3NjZcdTdhNDZcdTlkYTlcdTZiN2ZcdTZjOTJcdTU5MjJcdTY3MjZcdTg0''@;'; put 'put ''OTlcdTUzNmZcdTU4OTNcdTU5OTlcdTVlZGZcdTYzY2ZcdTY2MzRcdTY3NzNcdTZlM2FcdTczMmJcdTdhZDdcdTgyZDdcdTkzMjhcdTUyZDlcdTVkZWJcdTYxYWVcdTYxY2JcdTYyMGFcdTYyYzdcdTY0YWJcdTY1ZTBcdTY5NTlcdTZiNjZcdTZiY2JcdTcxMjFcdTczZjdcdTc1NWRcdTdlNDZc''@;'; put 'put ''dTgyMWVcdTgzMDJcdTg1NmFcdThhYTNcdThjYmZcdTk3MjdcdTlkNjFcdTU4YThcdTllZDhcdTUwMTFcdTUyMGVcdTU0M2JcdTU1NGZcdTY1ODdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0Jb''@;'; put 'put ''MjE3XVtFXV09NTU1NTIrRSxMWzU1NTUyK0VdPUJbMjE3XVtFXSk7Zm9yKEJbMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Yzc2XHU3ZDBhXHU3ZDBiXHU4MDVlXHU4NjhhXHU5NTgwXHU5NmVmXHU1MmZmXHU2Yzk1XHU3MjY5XHU1NDczXHU1YTlhXHU1YzNlXHU1ZDRiXHU1ZjRjXHU1ZmFlXHU2NzJhXHU2OGI2XHU2OTYzXHU2ZTNjXHU2ZTQ0XHU3NzA5XHU3Yzcz''@;'; put 'put ''XHU3ZjhlXHU4NTg3XHU4YjBlXHU4ZmY3XHU5NzYxXHU5ZWY0XHU1Y2I3XHU2MGI2XHU2MTBkXHU2MWFiXHU2NTRmXHU2NWZiXHU2NWZjXHU2YzExXHU2Y2VmXHU3MzlmXHU3M2M5XHU3ZGUxXHU5NTk0XHU1YmM2XHU4NzFjXHU4YjEwXHU1MjVkXHU1MzVhXHU2MmNkXHU2NDBmXHU2NGIyXHU2''@;'; put 'put ''NzM0XHU2YTM4XHU2Y2NhXHU3M2MwXHU3NDllXHU3Yjk0XHU3Yzk1XHU3ZTFiXHU4MThhXHU4MjM2XHU4NTg0XHU4ZmViXHU5NmY5XHU5OWMxXHU0ZjM0XHU1MzRhXHU1M2NkXHU1M2RiXHU2MmNjXHU2NDJjXHU2NTAwXHU2NTkxXHU2OWMzXHU2Y2VlXHU2ZjU4XHU3M2VkXHU3NTU0XHU3NjIy''@;'; put 'put ''XHU3NmU0XHU3NmZjXHU3OGQwXHU3OGZiXHU3OTJjXHU3ZDQ2XHU4MjJjXHU4N2UwXHU4ZmQ0XHU5ODEyXHU5OGVmXHU1MmMzXHU2MmQ0XHU2NGE1XHU2ZTI0XHU2ZjUxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMThdW0VdLmNoYXJDb2Rl''@;'; put 'put ''QXQoMCkmJihtZVtCWzIxOF1bRV1dPTU1ODA4K0UsTFs1NTgwOCtFXT1CWzIxOF1bRV0pO2ZvcihCWzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzY3Y1x1OGRjYlx1OTFiMVx1OTI2Mlx1OWFlZVx1OWI0M1x1NTAyM1x1NTA4ZFx1NTc0YVx1NTlhOFx1NWMyOFx1NWU0N1x1NWY3N1x1NjIzZlx1NjUzZVx1NjViOVx1NjVjMVx1NjYwOVx1Njc4Ylx1Njk5Y1x1NmVj''@;'; put 'put ''Mlx1NzhjNVx1N2QyMVx1ODBhYVx1ODE4MFx1ODIyYlx1ODJiM1x1ODRhMVx1ODY4Y1x1OGEyYVx1OGIxN1x1OTBhNlx1OTYzMlx1OWY5MFx1NTAwZFx1NGZmM1x1Zjk2M1x1NTdmOVx1NWY5OFx1NjJkY1x1NjM5Mlx1Njc2Zlx1NmU0M1x1NzExOVx1NzZjM1x1ODBjY1x1ODBkYVx1ODhmNFx1''@;'; put 'put ''ODhmNVx1ODkxOVx1OGNlMFx1OGYyOVx1OTE0ZFx1OTY2YVx1NGYyZlx1NGY3MFx1NWUxYlx1NjdjZlx1NjgyMlx1NzY3ZFx1NzY3ZVx1OWI0NFx1NWU2MVx1NmEwYVx1NzE2OVx1NzFkNFx1NzU2YVx1Zjk2NFx1N2U0MVx1ODU0M1x1ODVlOVx1OThkY1x1NGYxMFx1N2I0Zlx1N2Y3MFx1OTVh''@;'; put 'put ''NVx1NTFlMVx1NWUwNlx1NjhiNVx1NmMzZVx1NmM0ZVx1NmNkYlx1NzJhZlx1N2JjNFx1ODMwM1x1NmNkNVx1NzQzYVx1NTBmYlx1NTI4OFx1NThjMVx1NjRkOFx1NmE5N1x1NzRhN1x1NzY1Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE5''@;'; put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTldW0VdXT01NjA2NCtFLExbNTYwNjQrRV09QlsyMTldW0VdKTtmb3IoQlsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc4YTdcdTg2MTdcdTk1ZTJcdTk3MzlcdWY5NjVcdTUzNWVcdTVmMDFcdThiOGFcdThmYThcdThmYWZcdTkwOGFcdTUyMjVcdTc3YTVcdTljNDlcdTlmMDhcdTRlMTlcdTUwMDJcdTUxNzVcdTVj''@;'; put 'put ''NWJcdTVlNzdcdTY2MWVcdTY2M2FcdTY3YzRcdTY4YzVcdTcwYjNcdTc1MDFcdTc1YzVcdTc5YzlcdTdhZGRcdThmMjdcdTk5MjBcdTlhMDhcdTRmZGRcdTU4MjFcdTU4MzFcdTViZjZcdTY2NmVcdTZiNjVcdTZkMTFcdTZlN2FcdTZmN2RcdTczZTRcdTc1MmJcdTgzZTlcdTg4ZGNcdTg5MTNc''@;'; put 'put ''dThiNWNcdThmMTRcdTRmMGZcdTUwZDVcdTUzMTBcdTUzNWNcdTViOTNcdTVmYTlcdTY3MGRcdTc5OGZcdTgxNzlcdTgzMmZcdTg1MTRcdTg5MDdcdTg5ODZcdThmMzlcdThmM2JcdTk5YTVcdTljMTJcdTY3MmNcdTRlNzZcdTRmZjhcdTU5NDlcdTVjMDFcdTVjZWZcdTVjZjBcdTYzNjdcdTY4''@;'; put 'put ''ZDJcdTcwZmRcdTcxYTJcdTc0MmJcdTdlMmJcdTg0ZWNcdTg3MDJcdTkwMjJcdTkyZDJcdTljZjNcdTRlMGRcdTRlZDhcdTRmZWZcdTUwODVcdTUyNTZcdTUyNmZcdTU0MjZcdTU0OTBcdTU3ZTBcdTU5MmJcdTVhNjZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjBdLmxlbmd0aDsrK0Up''@;'; put 'put ''NjU1MzMhPT1CWzIyMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIwXVtFXV09NTYzMjArRSxMWzU2MzIwK0VdPUJbMjIwXVtFXSk7Zm9yKEJbMjIxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YjVhXHU1Yjc1XHU1YmNjXHU1ZTljXHVmOTY2XHU2Mjc2XHU2NTc3XHU2NWE3XHU2ZDZlXHU2ZWE1XHU3MjM2XHU3YjI2XHU3YzNmXHU3ZjM2XHU4MTUwXHU4MTUxXHU4''@;'; put 'put ''MTlhXHU4MjQwXHU4Mjk5XHU4M2E5XHU4YTAzXHU4Y2EwXHU4Y2U2XHU4Y2ZiXHU4ZDc0XHU4ZGJhXHU5MGU4XHU5MWRjXHU5NjFjXHU5NjQ0XHU5OWQ5XHU5Y2U3XHU1MzE3XHU1MjA2XHU1NDI5XHU1Njc0XHU1OGIzXHU1OTU0XHU1OTZlXHU1ZmZmXHU2MWE0XHU2MjZlXHU2NjEwXHU2Yzdl''@;'; put 'put ''XHU3MTFhXHU3NmM2XHU3Yzg5XHU3Y2RlXHU3ZDFiXHU4MmFjXHU4Y2MxXHU5NmYwXHVmOTY3XHU0ZjViXHU1ZjE3XHU1ZjdmXHU2MmMyXHU1ZDI5XHU2NzBiXHU2OGRhXHU3ODdjXHU3ZTQzXHU5ZDZjXHU0ZTE1XHU1MDk5XHU1MzE1XHU1MzJhXHU1MzUxXHU1OTgzXHU1YTYyXHU1ZTg3XHU2''@;'; put 'put ''MGIyXHU2MThhXHU2MjQ5XHU2Mjc5XHU2NTkwXHU2Nzg3XHU2OWE3XHU2YmQ0XHU2YmQ2XHU2YmQ3XHU2YmQ4XHU2Y2I4XHVmOTY4XHU3NDM1XHU3NWZhXHU3ODEyXHU3ODkxXHU3OWQ1XHU3OWQ4XHU3YzgzXHU3ZGNiXHU3ZmUxXHU4MGE1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIx''@;'; put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMV1bRV1dPTU2NTc2K0UsTFs1NjU3NitFXT1CWzIyMV1bRV0pO2ZvcihCWzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODEzZVx1ODFjMlx1ODNmMlx1ODcxYVx1ODhlOFx1OGFiOVx1OGI2Y1x1OGNiYlx1OTExOVx1OTc1ZVx1OThkYlx1OWYzYlx1NTZhY1x1NWIyYVx1''@;'; put 'put ''NWY2Y1x1NjU4Y1x1NmFiM1x1NmJhZlx1NmQ1Y1x1NmZmMVx1NzAxNVx1NzI1ZFx1NzNhZFx1OGNhN1x1OGNkM1x1OTgzYlx1NjE5MVx1NmMzN1x1ODA1OFx1OWEwMVx1NGU0ZFx1NGU4Ylx1NGU5Ylx1NGVkNVx1NGYzYVx1NGYzY1x1NGY3Zlx1NGZkZlx1NTBmZlx1NTNmMlx1NTNmOFx1NTUw''@;'; put 'put ''Nlx1NTVlM1x1NTZkYlx1NThlYlx1NTk2Mlx1NWExMVx1NWJlYlx1NWJmYVx1NWMwNFx1NWRmM1x1NWUyYlx1NWY5OVx1NjAxZFx1NjM2OFx1NjU5Y1x1NjVhZlx1NjdmNlx1NjdmYlx1NjhhZFx1NmI3Ylx1NmM5OVx1NmNkN1x1NmUyM1x1NzAwOVx1NzM0NVx1NzgwMlx1NzkzZVx1Nzk0MFx1''@;'; put 'put ''Nzk2MFx1NzljMVx1N2JlOVx1N2QxN1x1N2Q3Mlx1ODA4Nlx1ODIwZFx1ODM4ZVx1ODRkMVx1ODZjN1x1ODhkZlx1OGE1MFx1OGE1ZVx1OGIxZFx1OGNkY1x1OGQ2Nlx1OGZhZFx1OTBhYVx1OThmY1x1OTlkZlx1OWU5ZFx1NTI0YVx1Zjk2OVx1NjcxNFx1Zjk2YVx1ZmZmZCIuc3BsaXQoIiIp''@;'; put 'put ''LEU9MDtFIT1CWzIyMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjJdW0VdXT01NjgzMitFLExbNTY4MzIrRV09QlsyMjJdW0VdKTtmb3IoQlsyMjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTUwOThcdTUyMmFcdTVjNzFcdTY1NjNcdTZjNTVcdTczY2FcdTc1MjNcdTc1OWRcdTdiOTdcdTg0OWNcdTkxNzhcdTk3MzBc''@;'; put 'put ''dTRlNzdcdTY0OTJcdTZiYmFcdTcxNWVcdTg1YTlcdTRlMDlcdWY5NmJcdTY3NDlcdTY4ZWVcdTZlMTdcdTgyOWZcdTg1MThcdTg4NmJcdTYzZjdcdTZmODFcdTkyMTJcdTk4YWZcdTRlMGFcdTUwYjdcdTUwY2ZcdTUxMWZcdTU1NDZcdTU1YWFcdTU2MTdcdTViNDBcdTVjMTlcdTVjZTBcdTVl''@;'; put 'put ''MzhcdTVlOGFcdTVlYTBcdTVlYzJcdTYwZjNcdTY4NTFcdTZhNjFcdTZlNThcdTcyM2RcdTcyNDBcdTcyYzBcdTc2ZjhcdTc5NjVcdTdiYjFcdTdmZDRcdTg4ZjNcdTg5ZjRcdThhNzNcdThjNjFcdThjZGVcdTk3MWNcdTU4NWVcdTc0YmRcdThjZmRcdTU1YzdcdWY5NmNcdTdhNjFcdTdkMjJc''@;'; put 'put ''dTgyNzJcdTcyNzJcdTc1MWZcdTc1MjVcdWY5NmRcdTdiMTlcdTU4ODVcdTU4ZmJcdTVkYmNcdTVlOGZcdTVlYjZcdTVmOTBcdTYwNTVcdTYyOTJcdTYzN2ZcdTY1NGRcdTY2OTFcdTY2ZDlcdTY2ZjhcdTY4MTZcdTY4ZjJcdTcyODBcdTc0NWVcdTdiNmVcdTdkNmVcdTdkZDZcdTdmNzJcdWZm''@;'; put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIzXVtFXV09NTcwODgrRSxMWzU3MDg4K0VdPUJbMjIzXVtFXSk7Zm9yKEJbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MGU1XHU4MjEyXHU4NWFmXHU4OTdmXHU4YTkzXHU5MDFkXHU5MmU0XHU5ZWNkXHU5ZjIwXHU1OTE1''@;'; put 'put ''XHU1OTZkXHU1ZTJkXHU2MGRjXHU2NjE0XHU2NjczXHU2NzkwXHU2YzUwXHU2ZGM1XHU2ZjVmXHU3N2YzXHU3OGE5XHU4NGM2XHU5MWNiXHU5MzJiXHU0ZWQ5XHU1MGNhXHU1MTQ4XHU1NTg0XHU1YjBiXHU1YmEzXHU2MjQ3XHU2NTdlXHU2NWNiXHU2ZTMyXHU3MTdkXHU3NDAxXHU3NDQ0XHU3''@;'; put 'put ''NDg3XHU3NGJmXHU3NjZjXHU3OWFhXHU3ZGRhXHU3ZTU1XHU3ZmE4XHU4MTdhXHU4MWIzXHU4MjM5XHU4NjFhXHU4N2VjXHU4YTc1XHU4ZGUzXHU5MDc4XHU5MjkxXHU5NDI1XHU5OTRkXHU5YmFlXHU1MzY4XHU1YzUxXHU2OTU0XHU2Y2M0XHU2ZDI5XHU2ZTJiXHU4MjBjXHU4NTliXHU4OTNi''@;'; put 'put ''XHU4YTJkXHU4YWFhXHU5NmVhXHU5ZjY3XHU1MjYxXHU2NmI5XHU2YmIyXHU3ZTk2XHU4N2ZlXHU4ZDBkXHU5NTgzXHU5NjVkXHU2NTFkXHU2ZDg5XHU3MWVlXHVmOTZlXHU1N2NlXHU1OWQzXHU1YmFjXHU2MDI3XHU2MGZhXHU2MjEwXHU2NjFmXHU2NjVmXHU3MzI5XHU3M2Y5XHU3NmRiXHU3''@;'; put 'put ''NzAxXHU3YjZjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1bRV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1CWzIyNF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODA1Nlx1ODA3Mlx1ODE2NVx1OGFhMFx1OTE5Mlx1NGUxNlx1NTJlMlx1NmI3''@;'; put 'put ''Mlx1NmQxN1x1N2EwNVx1N2IzOVx1N2QzMFx1Zjk2Zlx1OGNiMFx1NTNlY1x1NTYyZlx1NTg1MVx1NWJiNVx1NWMwZlx1NWMxMVx1NWRlMlx1NjI0MFx1NjM4M1x1NjQxNFx1NjYyZFx1NjhiM1x1NmNiY1x1NmQ4OFx1NmVhZlx1NzAxZlx1NzBhNFx1NzFkMlx1NzUyNlx1NzU4Zlx1NzU4ZVx1''@;'; put 'put ''NzYxOVx1N2IxMVx1N2JlMFx1N2MyYlx1N2QyMFx1N2QzOVx1ODUyY1x1ODU2ZFx1ODYwN1x1OGEzNFx1OTAwZFx1OTA2MVx1OTBiNVx1OTJiN1x1OTdmNlx1OWEzN1x1NGZkN1x1NWM2Y1x1Njc1Zlx1NmQ5MVx1N2M5Zlx1N2U4Y1x1OGIxNlx1OGQxNlx1OTAxZlx1NWI2Ylx1NWRmZFx1NjQw''@;'; put 'put ''ZFx1ODRjMFx1OTA1Y1x1OThlMVx1NzM4N1x1NWI4Ylx1NjA5YVx1Njc3ZVx1NmRkZVx1OGExZlx1OGFhNlx1OTAwMVx1OTgwY1x1NTIzN1x1Zjk3MFx1NzA1MVx1Nzg4ZVx1OTM5Nlx1ODg3MFx1OTFkN1x1NGZlZVx1NTNkN1x1NTVmZFx1NTZkYVx1NTc4Mlx1NThmZFx1NWFjMlx1NWI4OFx1''@;'; put 'put ''NWNhYlx1NWNjMFx1NWUyNVx1NjEwMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjVdW0VdXT01NzYwMCtFLExbNTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYyMGRcdTYyNGJcdTYzODhcdTY0MWNcdTY1MzZcdTY1''@;'; put 'put ''NzhcdTZhMzlcdTZiOGFcdTZjMzRcdTZkMTlcdTZmMzFcdTcxZTdcdTcyZTlcdTczNzhcdTc0MDdcdTc0YjJcdTc2MjZcdTc3NjFcdTc5YzBcdTdhNTdcdTdhZWFcdTdjYjlcdTdkOGZcdTdkYWNcdTdlNjFcdTdmOWVcdTgxMjlcdTgzMzFcdTg0OTBcdTg0ZGFcdTg1ZWFcdTg4OTZcdThhYjBc''@;'; put 'put ''dThiOTBcdThmMzhcdTkwNDJcdTkwODNcdTkxNmNcdTkyOTZcdTkyYjlcdTk2OGJcdTk2YTdcdTk2YThcdTk2ZDZcdTk3MDBcdTk4MDhcdTk5OTZcdTlhZDNcdTliMWFcdTUzZDRcdTU4N2VcdTU5MTlcdTViNzBcdTViYmZcdTZkZDFcdTZmNWFcdTcxOWZcdTc0MjFcdTc0YjlcdTgwODVcdTgz''@;'; put 'put ''ZmRcdTVkZTFcdTVmODdcdTVmYWFcdTYwNDJcdTY1ZWNcdTY4MTJcdTY5NmZcdTZhNTNcdTZiODlcdTZkMzVcdTZkZjNcdTczZTNcdTc2ZmVcdTc3YWNcdTdiNGRcdTdkMTRcdTgxMjNcdTgyMWNcdTgzNDBcdTg0ZjRcdTg1NjNcdThhNjJcdThhYzRcdTkxODdcdTkzMWVcdTk4MDZcdTk5YjRc''@;'; put 'put ''dTYyMGNcdTg4NTNcdThmZjBcdTkyNjVcdTVkMDdcdTVkMjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2XVtFXV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9yKEJbMjI3''@;'; put 'put ''XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZDY5XHU3NDVmXHU4MTlkXHU4''@;'; put 'put ''NzY4XHU2ZmQ1XHU2MmZlXHU3ZmQyXHU4OTM2XHU4OTcyXHU0ZTFlXHU0ZTU4XHU1MGU3XHU1MmRkXHU1MzQ3XHU2MjdmXHU2NjA3XHU3ZTY5XHU4ODA1XHU5NjVlXHU0ZjhkXHU1MzE5XHU1NjM2XHU1OWNiXHU1YWE0XHU1YzM4XHU1YzRlXHU1YzRkXHU1ZTAyXHU1ZjExXHU2MDQzXHU2NWJk''@;'; put 'put ''XHU2NjJmXHU2NjQyXHU2N2JlXHU2N2Y0XHU3MzFjXHU3N2UyXHU3OTNhXHU3ZmM1XHU4NDk0XHU4NGNkXHU4OTk2XHU4YTY2XHU4YTY5XHU4YWUxXHU4YzU1XHU4YzdhXHU1N2Y0XHU1YmQ0XHU1ZjBmXHU2MDZmXHU2MmVkXHU2OTBkXHU2Yjk2XHU2ZTVjXHU3MTg0XHU3YmQyXHU4NzU1XHU4''@;'; put 'put ''YjU4XHU4ZWZlXHU5OGRmXHU5OGZlXHU0ZjM4XHU0ZjgxXHU0ZmUxXHU1NDdiXHU1YTIwXHU1YmI4XHU2MTNjXHU2NWIwXHU2NjY4XHU3MWZjXHU3NTMzXHU3OTVlXHU3ZDMzXHU4MTRlXHU4MWUzXHU4Mzk4XHU4NWFhXHU4NWNlXHU4NzAzXHU4YTBhXHU4ZWFiXHU4ZjliXHVmOTcxXHU4ZmM1''@;'; put 'put ''XHU1OTMxXHU1YmE0XHU1YmU2XHU2MDg5XHU1YmU5XHU1YzBiXHU1ZmMzXHU2YzgxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1CWzIyN11b''@;'; put 'put ''RV0pO2ZvcihCWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Zjk3Mlx1''@;'; put 'put ''NmRmMVx1NzAwYlx1NzUxYVx1ODJhZlx1OGFmNlx1NGVjMFx1NTM0MVx1Zjk3M1x1OTZkOVx1NmMwZlx1NGU5ZVx1NGZjNFx1NTE1Mlx1NTU1ZVx1NWEyNVx1NWNlOFx1NjIxMVx1NzI1OVx1ODJiZFx1ODNhYVx1ODZmZVx1ODg1OVx1OGExZFx1OTYzZlx1OTZjNVx1OTkxM1x1OWQwOVx1OWQ1''@;'; put 'put ''ZFx1NTgwYVx1NWNiM1x1NWRiZFx1NWU0NFx1NjBlMVx1NjExNVx1NjNlMVx1NmEwMlx1NmUyNVx1OTEwMlx1OTM1NFx1OTg0ZVx1OWMxMFx1OWY3N1x1NWI4OVx1NWNiOFx1NjMwOVx1NjY0Zlx1Njg0OFx1NzczY1x1OTZjMVx1OTc4ZFx1OTg1NFx1OWI5Zlx1NjVhMVx1OGIwMVx1OGVjYlx1''@;'; put 'put ''OTViY1x1NTUzNVx1NWNhOVx1NWRkNlx1NWViNVx1NjY5N1x1NzY0Y1x1ODNmNFx1OTVjN1x1NThkM1x1NjJiY1x1NzJjZVx1OWQyOFx1NGVmMFx1NTkyZVx1NjAwZlx1NjYzYlx1NmI4M1x1NzllN1x1OWQyNlx1NTM5M1x1NTRjMFx1NTdjM1x1NWQxNlx1NjExYlx1NjZkNlx1NmRhZlx1Nzg4''@;'; put 'put ''ZFx1ODI3ZVx1OTY5OFx1OTc0NFx1NTM4NFx1NjI3Y1x1NjM5Nlx1NmRiMlx1N2UwYVx1ODE0Ylx1OTg0ZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtFLExbNTgz''@;'; put 'put ''NjgrRV09QlsyMjhdW0VdKTtmb3IoQlsyMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdTZhZmJcdTdmNGNcdTlkYWZcdTllMWFcdTRlNWZcdTUwM2JcdTUxYjZcdTU5MWNcdTYwZjlcdTYzZjZcdTY5MzBcdTcyM2FcdTgwMzZcdWY5NzRcdTkxY2VcdTVmMzFcdWY5NzVcdWY5NzZcdTdkMDRcdTgyZTVcdTg0NmZcdTg0YmJcdTg1ZTVcdThlOGRcdWY5NzdcdTRmNmZcdWY5''@;'; put 'put ''NzhcdWY5NzlcdTU4ZTRcdTViNDNcdTYwNTlcdTYzZGFcdTY1MThcdTY1NmRcdTY2OThcdWY5N2FcdTY5NGFcdTZhMjNcdTZkMGJcdTcwMDFcdTcxNmNcdTc1ZDJcdTc2MGRcdTc5YjNcdTdhNzBcdWY5N2JcdTdmOGFcdWY5N2NcdTg5NDRcdWY5N2RcdThiOTNcdTkxYzBcdTk2N2RcdWY5N2Vc''@;'; put 'put ''dTk5MGFcdTU3MDRcdTVmYTFcdTY1YmNcdTZmMDFcdTc2MDBcdTc5YTZcdThhOWVcdTk5YWRcdTliNWFcdTlmNmNcdTUxMDRcdTYxYjZcdTYyOTFcdTZhOGRcdTgxYzZcdTUwNDNcdTU4MzBcdTVmNjZcdTcxMDlcdThhMDBcdThhZmFcdTViN2NcdTg2MTZcdTRmZmFcdTUxM2NcdTU2YjRcdTU5''@;'; put 'put ''NDRcdTYzYTlcdTZkZjlcdTVkYWFcdTY5NmRcdTUxODZcdTRlODhcdTRmNTlcdWY5N2ZcdWY5ODBcdWY5ODFcdTU5ODJcdWY5ODJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5XVtFXV09''@;'; put 'put ''NTg2MjQrRSxMWzU4NjI0K0VdPUJbMjI5XVtFXSk7Zm9yKEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmOTgzXHU2YjVmXHU2YzVkXHVmOTg0XHU3NGI1XHU3OTE2XHVmOTg1XHU4MjA3XHU4MjQ1XHU4MzM5XHU4ZjNmXHU4ZjVkXHVmOTg2XHU5OTE4XHVmOTg3XHVmOTg4XHVmOTg5XHU0ZWE2XHVmOThhXHU1N2RmXHU1Zjc5XHU2NjEzXHVmOThiXHVmOThjXHU3''@;'; put 'put ''NWFiXHU3ZTc5XHU4YjZmXHVmOThkXHU5MDA2XHU5YTViXHU1NmE1XHU1ODI3XHU1OWY4XHU1YTFmXHU1YmI0XHVmOThlXHU1ZWY2XHVmOThmXHVmOTkwXHU2MzUwXHU2MzNiXHVmOTkxXHU2OTNkXHU2Yzg3XHU2Y2JmXHU2ZDhlXHU2ZDkzXHU2ZGY1XHU2ZjE0XHVmOTkyXHU3MGRmXHU3MTM2''@;'; put 'put ''XHU3MTU5XHVmOTkzXHU3MWMzXHU3MWQ1XHVmOTk0XHU3ODRmXHU3ODZmXHVmOTk1XHU3Yjc1XHU3ZGUzXHVmOTk2XHU3ZTJmXHVmOTk3XHU4ODRkXHU4ZWRmXHVmOTk4XHVmOTk5XHVmOTlhXHU5MjViXHVmOTliXHU5Y2Y2XHVmOTljXHVmOTlkXHVmOTllXHU2MDg1XHU2ZDg1XHVmOTlmXHU3''@;'; put 'put ''MWIxXHVmOWEwXHVmOWExXHU5NWIxXHU1M2FkXHVmOWEyXHVmOWEzXHVmOWE0XHU2N2QzXHVmOWE1XHU3MDhlXHU3MTMwXHU3NDMwXHU4Mjc2XHU4MmQyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQoMCkmJiht''@;'; put 'put ''ZVtCWzIzMF1bRV1dPTU4ODgwK0UsTFs1ODg4MCtFXT1CWzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZjlhNlx1OTViYlx1OWFlNVx1OWU3ZFx1NjZjNFx1ZjlhN1x1NzFjMVx1ODQ0OVx1ZjlhOFx1ZjlhOVx1NTg0Ylx1ZjlhYVx1ZjlhYlx1NWRiOFx1NWY3MVx1ZjlhY1x1NjYyMFx1NjY4ZVx1Njk3OVx1NjlhZVx1NmMzOFx1NmNmM1x1''@;'; put 'put ''NmUzNlx1NmY0MVx1NmZkYVx1NzAxYlx1NzAyZlx1NzE1MFx1NzFkZlx1NzM3MFx1ZjlhZFx1NzQ1Ylx1ZjlhZVx1NzRkNFx1NzZjOFx1N2E0ZVx1N2U5M1x1ZjlhZlx1ZjliMFx1ODJmMVx1OGE2MFx1OGZjZVx1ZjliMVx1OTM0OFx1ZjliMlx1OTcxOVx1ZjliM1x1ZjliNFx1NGU0Mlx1NTAy''@;'; put 'put ''YVx1ZjliNVx1NTIwOFx1NTNlMVx1NjZmM1x1NmM2ZFx1NmZjYVx1NzMwYVx1Nzc3Zlx1N2E2Mlx1ODJhZVx1ODVkZFx1ODYwMlx1ZjliNlx1ODhkNFx1OGE2M1x1OGI3ZFx1OGM2Ylx1ZjliN1x1OTJiM1x1ZjliOFx1OTcxM1x1OTgxMFx1NGU5NFx1NGYwZFx1NGZjOVx1NTBiMlx1NTM0OFx1''@;'; put 'put ''NTQzZVx1NTQzM1x1NTVkYVx1NTg2Mlx1NThiYVx1NTk2N1x1NWExYlx1NWJlNFx1NjA5Zlx1ZjliOVx1NjFjYVx1NjU1Nlx1NjVmZlx1NjY2NFx1NjhhN1x1NmM1YVx1NmZiM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtFXS5jaGFy''@;'; put 'put ''Q29kZUF0KDApJiYobWVbQlsyMzFdW0VdXT01OTEzNitFLExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcwY2ZcdTcxYWNcdTczNTJcdTdiN2RcdTg3MDhcdThhYTRcdTljMzJcdTlmMDdcdTVjNGJcdTZjODNcdTczNDRcdTczODlcdTkyM2FcdTZlYWJcdTc0NjVcdTc2MWZcdTdhNjlcdTdlMTVcdTg2MGFcdTUxNDBc''@;'; put 'put ''dTU4YzVcdTY0YzFcdTc0ZWVcdTc1MTVcdTc2NzBcdTdmYzFcdTkwOTVcdTk2Y2RcdTk5NTRcdTZlMjZcdTc0ZTZcdTdhYTlcdTdhYWFcdTgxZTVcdTg2ZDlcdTg3NzhcdThhMWJcdTVhNDlcdTViOGNcdTViOWJcdTY4YTFcdTY5MDBcdTZkNjNcdTczYTlcdTc0MTNcdTc0MmNcdTc4OTdcdTdk''@;'; put 'put ''ZTlcdTdmZWJcdTgxMThcdTgxNTVcdTgzOWVcdThjNGNcdTk2MmVcdTk4MTFcdTY2ZjBcdTVmODBcdTY1ZmFcdTY3ODlcdTZjNmFcdTczOGJcdTUwMmRcdTVhMDNcdTZiNmFcdTc3ZWVcdTU5MTZcdTVkNmNcdTVkY2RcdTczMjVcdTc1NGZcdWY5YmFcdWY5YmJcdTUwZTVcdTUxZjlcdTU4MmZc''@;'; put 'put ''dTU5MmRcdTU5OTZcdTU5ZGFcdTViZTVcdWY5YmNcdWY5YmRcdTVkYTJcdTYyZDdcdTY0MTZcdTY0OTNcdTY0ZmVcdWY5YmVcdTY2ZGNcdWY5YmZcdTZhNDhcdWY5YzBcdTcxZmZcdTc0NjRcdWY5YzFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1C''@;'; put 'put ''WzIzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMyXVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTg4XHU3YWFmXHU3ZTQ3XHU3ZTVlXHU4MDAwXHU4MTcwXHVmOWMyXHU4N2VmXHU4OTgxXHU4YjIwXHU5MDU5XHVmOWMzXHU5MDgwXHU5OTUyXHU2MTdlXHU2YjMyXHU2ZDc0XHU3ZTFm''@;'; put 'put ''XHU4OTI1XHU4ZmIxXHU0ZmQxXHU1MGFkXHU1MTk3XHU1MmM3XHU1N2M3XHU1ODg5XHU1YmI5XHU1ZWI4XHU2MTQyXHU2OTk1XHU2ZDhjXHU2ZTY3XHU2ZWI2XHU3MTk0XHU3NDYyXHU3NTI4XHU3NTJjXHU4MDczXHU4MzM4XHU4NGM5XHU4ZTBhXHU5Mzk0XHU5M2RlXHVmOWM0XHU0ZThlXHU0''@;'; put 'put ''ZjUxXHU1MDc2XHU1MTJhXHU1M2M4XHU1M2NiXHU1M2YzXHU1Yjg3XHU1YmQzXHU1YzI0XHU2MTFhXHU2MTgyXHU2NWY0XHU3MjViXHU3Mzk3XHU3NDQwXHU3NmMyXHU3OTUwXHU3OTkxXHU3OWI5XHU3ZDA2XHU3ZmJkXHU4MjhiXHU4NWQ1XHU4NjVlXHU4ZmMyXHU5MDQ3XHU5MGY1XHU5MWVh''@;'; put 'put ''XHU5Njg1XHU5NmU4XHU5NmU5XHU1MmQ2XHU1ZjY3XHU2NWVkXHU2NjMxXHU2ODJmXHU3MTVjXHU3YTM2XHU5MGMxXHU5ODBhXHU0ZTkxXHVmOWM1XHU2YTUyXHU2YjllXHU2ZjkwXHU3MTg5XHU4MDE4XHU4MmI4XHU4NTUzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5sZW5ndGg7''@;'; put 'put ''KytFKTY1NTMzIT09QlsyMzNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTA0Ylx1OTY5NVx1OTZmMlx1OTdmYlx1ODUxYVx1OWIzMVx1NGU5MFx1NzE4YVx1OTZjNFx1NTE0M1x1NTM5Zlx1NTRlMVx1NTcxM1x1NTcxMlx1NTdhM1x1NWE5''@;'; put 'put ''Ylx1NWFjNFx1NWJjM1x1NjAyOFx1NjEzZlx1NjNmNFx1NmM4NVx1NmQzOVx1NmU3Mlx1NmU5MFx1NzIzMFx1NzMzZlx1NzQ1N1x1ODJkMVx1ODg4MVx1OGY0NVx1OTA2MFx1ZjljNlx1OTY2Mlx1OTg1OFx1OWQxYlx1NjcwOFx1OGQ4YVx1OTI1ZVx1NGY0ZFx1NTA0OVx1NTBkZVx1NTM3MVx1''@;'; put 'put ''NTcwZFx1NTlkNFx1NWEwMVx1NWMwOVx1NjE3MFx1NjY5MFx1NmUyZFx1NzIzMlx1NzQ0Ylx1N2RlZlx1ODBjM1x1ODQwZVx1ODQ2Nlx1ODUzZlx1ODc1Zlx1ODg1Ylx1ODkxOFx1OGIwMlx1OTA1NVx1OTdjYlx1OWI0Zlx1NGU3M1x1NGY5MVx1NTExMlx1NTE2YVx1ZjljN1x1NTUyZlx1NTVh''@;'; put 'put ''OVx1NWI3YVx1NWJhNVx1NWU3Y1x1NWU3ZFx1NWViZVx1NjBhMFx1NjBkZlx1NjEwOFx1NjEwOVx1NjNjNFx1NjUzOFx1NjcwOVx1ZjljOFx1NjdkNFx1NjdkYVx1ZjljOVx1Njk2MVx1Njk2Mlx1NmNiOVx1NmQyN1x1ZjljYVx1NmUzOFx1ZjljYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; put 'put ''WzIzNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtmb3IoQlsyMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmZTFcdTczMzZcdTczMzdcdWY5Y2NcdTc0NWNcdTc1MzFcdWY5Y2RcdTc2NTJcdWY5Y2VcdWY5Y2ZcdTdkYWRcdTgxZmVcdTg0MzhcdTg4''@;'; put 'put ''ZDVcdThhOThcdThhZGJcdThhZWRcdThlMzBcdThlNDJcdTkwNGFcdTkwM2VcdTkwN2FcdTkxNDlcdTkxYzlcdTkzNmVcdWY5ZDBcdWY5ZDFcdTU4MDlcdWY5ZDJcdTZiZDNcdTgwODlcdTgwYjJcdWY5ZDNcdWY5ZDRcdTUxNDFcdTU5NmJcdTVjMzlcdWY5ZDVcdWY5ZDZcdTZmNjRcdTczYTdc''@;'; put 'put ''dTgwZTRcdThkMDdcdWY5ZDdcdTkyMTdcdTk1OGZcdWY5ZDhcdWY5ZDlcdWY5ZGFcdWY5ZGJcdTgwN2ZcdTYyMGVcdTcwMWNcdTdkNjhcdTg3OGRcdWY5ZGNcdTU3YTBcdTYwNjlcdTYxNDdcdTZiYjdcdThhYmVcdTkyODBcdTk2YjFcdTRlNTlcdTU0MWZcdTZkZWJcdTg1MmRcdTk2NzBcdTk3''@;'; put 'put ''ZjNcdTk4ZWVcdTYzZDZcdTZjZTNcdTkwOTFcdTUxZGRcdTYxYzlcdTgxYmFcdTlkZjlcdTRmOWRcdTUwMWFcdTUxMDBcdTViOWNcdTYxMGZcdTYxZmZcdTY0ZWNcdTY5MDVcdTZiYzVcdTc1OTFcdTc3ZTNcdTdmYTlcdTgyNjRcdTg1OGZcdTg3ZmJcdTg4NjNcdThhYmNcdWZmZmQiLnNwbGl0''@;'; put 'put ''KCIiKSxFPTA7RSE9QlsyMzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM1XVtFXV09NjAxNjArRSxMWzYwMTYwK0VdPUJbMjM1XVtFXSk7Zm9yKEJbMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjcwXHU5MWFiXHU0ZThjXHU0ZWU1XHU0ZjBhXHVmOWRkXHVmOWRlXHU1OTM3XHU1OWU4XHVmOWRmXHU1ZGYyXHU1''@;'; put 'put ''ZjFiXHU1ZjViXHU2MDIxXHVmOWUwXHVmOWUxXHVmOWUyXHVmOWUzXHU3MjNlXHU3M2U1XHVmOWU0XHU3NTcwXHU3NWNkXHVmOWU1XHU3OWZiXHVmOWU2XHU4MDBjXHU4MDMzXHU4MDg0XHU4MmUxXHU4MzUxXHVmOWU3XHVmOWU4XHU4Y2JkXHU4Y2IzXHU5MDg3XHVmOWU5XHVmOWVhXHU5OGY0''@;'; put 'put ''XHU5OTBjXHVmOWViXHVmOWVjXHU3MDM3XHU3NmNhXHU3ZmNhXHU3ZmNjXHU3ZmZjXHU4YjFhXHU0ZWJhXHU0ZWMxXHU1MjAzXHU1MzcwXHVmOWVkXHU1NGJkXHU1NmUwXHU1OWZiXHU1YmM1XHU1ZjE1XHU1ZmNkXHU2ZTZlXHVmOWVlXHVmOWVmXHU3ZDZhXHU4MzM1XHVmOWYwXHU4NjkzXHU4''@;'; put 'put ''YThkXHVmOWYxXHU5NzZkXHU5Nzc3XHVmOWYyXHVmOWYzXHU0ZTAwXHU0ZjVhXHU0ZjdlXHU1OGY5XHU2NWU1XHU2ZWEyXHU5MDM4XHU5M2IwXHU5OWI5XHU0ZWZiXHU1OGVjXHU1OThhXHU1OWQ5XHU2MDQxXHVmOWY0XHVmOWY1XHU3YTE0XHVmOWY2XHU4MzRmXHU4Y2MzXHU1MTY1XHU1MzQ0''@;'; put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNl1bRV1dPTYwNDE2K0UsTFs2MDQxNitFXT1CWzIzNl1bRV0pO2ZvcihCWzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZjlmN1x1ZjlmOFx1ZjlmOVx1NGVjZFx1NTI2OVx1NWI1NVx1ODJiZlx1NGVkNFx1NTIzYVx1''@;'; put 'put ''NTRhOFx1NTljOVx1NTlmZlx1NWI1MFx1NWI1N1x1NWI1Y1x1NjA2M1x1NjE0OFx1NmVjYlx1NzA5OVx1NzE2ZVx1NzM4Nlx1NzRmN1x1NzViNVx1NzhjMVx1N2QyYlx1ODAwNVx1ODFlYVx1ODMyOFx1ODUxN1x1ODVjOVx1OGFlZVx1OGNjN1x1OTZjY1x1NGY1Y1x1NTJmYVx1NTZiY1x1NjVh''@;'; put 'put ''Ylx1NjYyOFx1NzA3Y1x1NzBiOFx1NzIzNVx1N2RiZFx1ODI4ZFx1OTE0Y1x1OTZjMFx1OWQ3Mlx1NWI3MVx1NjhlN1x1NmI5OFx1NmY3YVx1NzZkZVx1NWM5MVx1NjZhYlx1NmY1Ylx1N2JiNFx1N2MyYVx1ODgzNlx1OTZkY1x1NGUwOFx1NGVkN1x1NTMyMFx1NTgzNFx1NThiYlx1NThlZlx1''@;'; put 'put ''NTk2Y1x1NWMwN1x1NWUzM1x1NWU4NFx1NWYzNVx1NjM4Y1x1NjZiMlx1Njc1Nlx1NmExZlx1NmFhM1x1NmIwY1x1NmYzZlx1NzI0Nlx1ZjlmYVx1NzM1MFx1NzQ4Ylx1N2FlMFx1N2NhN1x1ODE3OFx1ODFkZlx1ODFlN1x1ODM4YVx1ODQ2Y1x1ODUyM1x1ODU5NFx1ODVjZlx1ODhkZFx1OGQx''@;'; put 'put ''M1x1OTFhY1x1OTU3N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzddW0VdXT02MDY3MitFLExbNjA2NzIrRV09QlsyMzddW0VdKTtmb3IoQlsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2OWNcdTUxOGRcdTU0YzlcdTU3MjhcdTViYjBcdTYyNGRcdTY3NTBc''@;'; put 'put ''dTY4M2RcdTY4OTNcdTZlM2RcdTZlZDNcdTcwN2RcdTdlMjFcdTg4YzFcdThjYTFcdThmMDlcdTlmNGJcdTlmNGVcdTcyMmRcdTdiOGZcdThhY2RcdTkzMWFcdTRmNDdcdTRmNGVcdTUxMzJcdTU0ODBcdTU5ZDBcdTVlOTVcdTYyYjVcdTY3NzVcdTY5NmVcdTZhMTdcdTZjYWVcdTZlMWFcdTcy''@;'; put 'put ''ZDlcdTczMmFcdTc1YmRcdTdiYjhcdTdkMzVcdTgyZTdcdTgzZjlcdTg0NTdcdTg1ZjdcdThhNWJcdThjYWZcdThlODdcdTkwMTlcdTkwYjhcdTk2Y2VcdTlmNWZcdTUyZTNcdTU0MGFcdTVhZTFcdTViYzJcdTY0NThcdTY1NzVcdTZlZjRcdTcyYzRcdWY5ZmJcdTc2ODRcdTdhNGRcdTdiMWJc''@;'; put 'put ''dTdjNGRcdTdlM2VcdTdmZGZcdTgzN2JcdThiMmJcdThjY2FcdThkNjRcdThkZTFcdThlNWZcdThmZWFcdThmZjlcdTkwNjlcdTkzZDFcdTRmNDNcdTRmN2FcdTUwYjNcdTUxNjhcdTUxNzhcdTUyNGRcdTUyNmFcdTU4NjFcdTU4N2NcdTU5NjBcdTVjMDhcdTVjNTVcdTVlZGJcdTYwOWJcdTYy''@;'; put 'put ''MzBcdTY4MTNcdTZiYmZcdTZjMDhcdTZmYjFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM4XVtFXV09NjA5MjgrRSxMWzYwOTI4K0VdPUJbMjM4XVtFXSk7Zm9yKEJbMjM5XT0iXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTRlXHU3NDIwXHU3NTMwXHU3NTM4XHU3NTUx''@;'; put 'put ''XHU3NjcyXHU3YjRjXHU3YjhiXHU3YmFkXHU3YmM2XHU3ZThmXHU4YTZlXHU4ZjNlXHU4ZjQ5XHU5MjNmXHU5MjkzXHU5MzIyXHU5NDJiXHU5NmZiXHU5ODVhXHU5ODZiXHU5OTFlXHU1MjA3XHU2MjJhXHU2Mjk4XHU2ZDU5XHU3NjY0XHU3YWNhXHU3YmMwXHU3ZDc2XHU1MzYwXHU1Y2JlXHU1''@;'; put 'put ''ZTk3XHU2ZjM4XHU3MGI5XHU3Yzk4XHU5NzExXHU5YjhlXHU5ZWRlXHU2M2E1XHU2NDdhXHU4Nzc2XHU0ZTAxXHU0ZTk1XHU0ZWFkXHU1MDVjXHU1MDc1XHU1NDQ4XHU1OWMzXHU1YjlhXHU1ZTQwXHU1ZWFkXHU1ZWY3XHU1ZjgxXHU2MGM1XHU2MzNhXHU2NTNmXHU2NTc0XHU2NWNjXHU2Njc2''@;'; put 'put ''XHU2Njc4XHU2N2ZlXHU2OTY4XHU2YTg5XHU2YjYzXHU2YzQwXHU2ZGMwXHU2ZGU4XHU2ZTFmXHU2ZTVlXHU3MDFlXHU3MGExXHU3MzhlXHU3M2ZkXHU3NTNhXHU3NzViXHU3ODg3XHU3OThlXHU3YTBiXHU3YTdkXHU3Y2JlXHU3ZDhlXHU4MjQ3XHU4YTAyXHU4YWVhXHU4YzllXHU5MTJkXHU5''@;'; put 'put ''MTRhXHU5MWQ4XHU5MjY2XHU5MmNjXHU5MzIwXHU5NzA2XHU5NzU2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOV1bRV1dPTYxMTg0K0UsTFs2MTE4NCtFXT1CWzIzOV1bRV0pO2ZvcihC''@;'; put 'put ''WzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTc1Y1x1OTgwMlx1OWYw''@;'; put 'put ''ZVx1NTIzNlx1NTI5MVx1NTU3Y1x1NTgyNFx1NWUxZFx1NWYxZlx1NjA4Y1x1NjNkMFx1NjhhZlx1NmZkZlx1Nzk2ZFx1N2IyY1x1ODFjZFx1ODViYVx1ODhmZFx1OGFmOFx1OGU0NFx1OTE4ZFx1OTY2NFx1OTY5Ylx1OTczZFx1OTg0Y1x1OWY0YVx1NGZjZVx1NTE0Nlx1NTFjYlx1NTJhOVx1''@;'; put 'put ''NTYzMlx1NWYxNFx1NWY2Ylx1NjNhYVx1NjRjZFx1NjVlOVx1NjY0MVx1NjZmYVx1NjZmOVx1NjcxZFx1Njg5ZFx1NjhkN1x1NjlmZFx1NmYxNVx1NmY2ZVx1NzE2N1x1NzFlNVx1NzIyYVx1NzRhYVx1NzczYVx1Nzk1Nlx1Nzk1YVx1NzlkZlx1N2EyMFx1N2E5NVx1N2M5N1x1N2NkZlx1N2Q0''@;'; put 'put ''NFx1N2U3MFx1ODA4N1x1ODVmYlx1ODZhNFx1OGE1NFx1OGFiZlx1OGQ5OVx1OGU4MVx1OTAyMFx1OTA2ZFx1OTFlM1x1OTYzYlx1OTZkNVx1OWNlNVx1NjVjZlx1N2MwN1x1OGRiM1x1OTNjM1x1NWI1OFx1NWMwYVx1NTM1Mlx1NjJkOVx1NzMxZFx1NTAyN1x1NWI5N1x1NWY5ZVx1NjBiMFx1''@;'; put 'put ''NjE2Ylx1NjhkNVx1NmRkOVx1NzQyZVx1N2EyZVx1N2Q0Mlx1N2Q5Y1x1N2UzMVx1ODE2Ylx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDBdW0VdXT02MTQ0MCtFLExbNjE0NDArRV09Qlsy''@;'; put 'put ''NDBdW0VdKTtmb3IoQlsyNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThl''@;'; put 'put ''MmFcdThlMzVcdTkzN2VcdTk0MThcdTRmNTBcdTU3NTBcdTVkZTZcdTVlYTdcdTYzMmJcdTdmNmFcdTRlM2JcdTRmNGZcdTRmOGZcdTUwNWFcdTU5ZGRcdTgwYzRcdTU0NmFcdTU0NjhcdTU1ZmVcdTU5NGZcdTViOTlcdTVkZGVcdTVlZGFcdTY2NWRcdTY3MzFcdTY3ZjFcdTY4MmFcdTZjZThc''@;'; put 'put ''dTZkMzJcdTZlNGFcdTZmOGRcdTcwYjdcdTczZTBcdTc1ODdcdTdjNGNcdTdkMDJcdTdkMmNcdTdkYTJcdTgyMWZcdTg2ZGJcdThhM2JcdThhODVcdThkNzBcdThlOGFcdThmMzNcdTkwMzFcdTkxNGVcdTkxNTJcdTk0NDRcdTk5ZDBcdTdhZjlcdTdjYTVcdTRmY2FcdTUxMDFcdTUxYzZcdTU3''@;'; put 'put ''YzhcdTViZWZcdTVjZmJcdTY2NTlcdTZhM2RcdTZkNWFcdTZlOTZcdTZmZWNcdTcxMGNcdTc1NmZcdTdhZTNcdTg4MjJcdTkwMjFcdTkwNzVcdTk2Y2JcdTk5ZmZcdTgzMDFcdTRlMmRcdTRlZjJcdTg4NDZcdTkxY2RcdTUzN2RcdTZhZGJcdTY5NmJcdTZjNDFcdTg0N2FcdTU4OWVcdTYxOGVc''@;'; put 'put ''dTY2ZmVcdTYyZWZcdTcwZGRcdTc1MTFcdTc1YzdcdTdlNTJcdTg0YjhcdThiNDlcdThkMDhcdTRlNGJcdTUzZWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQxXVtFXV09NjE2OTYrRSxM''@;'; put 'put ''WzYxNjk2K0VdPUJbMjQxXVtFXSk7Zm9yKEJbMjQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHU1NGFiXHU1NzMwXHU1NzQwXHU1ZmQ3XHU2MzAxXHU2MzA3XHU2NDZmXHU2NTJmXHU2NWU4XHU2NjdhXHU2NzlkXHU2N2IzXHU2YjYyXHU2YzYwXHU2YzlhXHU2ZjJjXHU3N2U1XHU3ODI1XHU3OTQ5XHU3OTU3XHU3ZDE5XHU4MGEyXHU4MTAyXHU4MWYzXHU4MjlkXHU4MmI3''@;'; put 'put ''XHU4NzE4XHU4YThjXHVmOWZjXHU4ZDA0XHU4ZGJlXHU5MDcyXHU3NmY0XHU3YTE5XHU3YTM3XHU3ZTU0XHU4MDc3XHU1NTA3XHU1NWQ0XHU1ODc1XHU2MzJmXHU2NDIyXHU2NjQ5XHU2NjRiXHU2ODZkXHU2OTliXHU2Yjg0XHU2ZDI1XHU2ZWIxXHU3M2NkXHU3NDY4XHU3NGExXHU3NTViXHU3''@;'; put 'put ''NWI5XHU3NmUxXHU3NzFlXHU3NzhiXHU3OWU2XHU3ZTA5XHU3ZTFkXHU4MWZiXHU4NTJmXHU4ODk3XHU4YTNhXHU4Y2QxXHU4ZWViXHU4ZmIwXHU5MDMyXHU5M2FkXHU5NjYzXHU5NjczXHU5NzA3XHU0Zjg0XHU1M2YxXHU1OWVhXHU1YWM5XHU1ZTE5XHU2ODRlXHU3NGM2XHU3NWJlXHU3OWU5''@;'; put 'put ''XHU3YTkyXHU4MWEzXHU4NmVkXHU4Y2VhXHU4ZGNjXHU4ZmVkXHU2NTlmXHU2NzE1XHVmOWZkXHU1N2Y3XHU2ZjU3XHU3ZGRkXHU4ZjJmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Ml1b''@;'; put 'put ''RV1dPTYxOTUyK0UsTFs2MTk1MitFXT1CWzI0Ml1bRV0pO2ZvcihCWzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTNmNlx1OTZjNlx1NWZiNVx1NjFmMlx1NmY4NFx1NGUxNFx1NGY5OFx1NTAxZlx1NTNjOVx1NTVkZlx1NWQ2Zlx1NWRlZVx1NmIyMVx1NmI2NFx1NzhjYlx1N2I5YVx1ZjlmZVx1OGU0OVx1OGVjYVx1OTA2ZVx1NjM0OVx1NjQzZVx1Nzc0MFx1N2E4''@;'; put 'put ''NFx1OTMyZlx1OTQ3Zlx1OWY2YVx1NjRiMFx1NmZhZlx1NzFlNlx1NzRhOFx1NzRkYVx1N2FjNFx1N2MxMlx1N2U4Mlx1N2NiMlx1N2U5OFx1OGI5YVx1OGQwYVx1OTQ3ZFx1OTkxMFx1OTk0Y1x1NTIzOVx1NWJkZlx1NjRlNlx1NjcyZFx1N2QyZVx1NTBlZFx1NTNjM1x1NTg3OVx1NjE1OFx1''@;'; put 'put ''NjE1OVx1NjFmYVx1NjVhY1x1N2FkOVx1OGI5Mlx1OGI5Nlx1NTAwOVx1NTAyMVx1NTI3NVx1NTUzMVx1NWEzY1x1NWVlMFx1NWY3MFx1NjEzNFx1NjU1ZVx1NjYwY1x1NjYzNlx1NjZhMlx1NjljZFx1NmVjNFx1NmYzMlx1NzMxNlx1NzYyMVx1N2E5M1x1ODEzOVx1ODI1OVx1ODNkNlx1ODRi''@;'; put 'put ''Y1x1NTBiNVx1NTdmMFx1NWJjMFx1NWJlOFx1NWY2OVx1NjNhMVx1NzgyNlx1N2RiNVx1ODNkY1x1ODUyMVx1OTFjN1x1OTFmNVx1NTE4YVx1NjdmNVx1N2I1Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQzXVtFXS5jaGFyQ29kZUF0KDAp''@;'; put 'put ''JiYobWVbQlsyNDNdW0VdXT02MjIwOCtFLExbNjIyMDgrRV09QlsyNDNdW0VdKTtmb3IoQlsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThjYWNcdTUxYzRcdTU5YmJcdTYwYmRcdTg2NTVcdTUwMWNcdWY5ZmZcdTUyNTRcdTVjM2FcdTYxN2RcdTYyMWFcdTYyZDNcdTY0ZjJcdTY1YTVcdTZlY2NcdTc2MjBcdTgxMGFcdThlNjBcdTk2NWZcdTk2YmJcdTRlZGZcdTUz''@;'; put 'put ''NDNcdTU1OThcdTU5MjlcdTVkZGRcdTY0YzVcdTZjYzlcdTZkZmFcdTczOTRcdTdhN2ZcdTgyMWJcdTg1YTZcdThjZTRcdThlMTBcdTkwNzdcdTkxZTdcdTk1ZTFcdTk2MjFcdTk3YzZcdTUxZjhcdTU0ZjJcdTU1ODZcdTVmYjlcdTY0YTRcdTZmODhcdTdkYjRcdThmMWZcdThmNGRcdTk0MzVc''@;'; put 'put ''dTUwYzlcdTVjMTZcdTZjYmVcdTZkZmJcdTc1MWJcdTc3YmJcdTdjM2RcdTdjNjRcdThhNzlcdThhYzJcdTU4MWVcdTU5YmVcdTVlMTZcdTYzNzdcdTcyNTJcdTc1OGFcdTc3NmJcdThhZGNcdThjYmNcdThmMTJcdTVlZjNcdTY2NzRcdTZkZjhcdTgwN2RcdTgzYzFcdThhY2JcdTk3NTFcdTli''@;'; put 'put ''ZDZcdWZhMDBcdTUyNDNcdTY2ZmZcdTZkOTVcdTZlZWZcdTdkZTBcdThhZTZcdTkwMmVcdTkwNWVcdTlhZDRcdTUyMWRcdTUyN2ZcdTU0ZThcdTYxOTRcdTYyODRcdTYyZGJcdTY4YTJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NF1bRV0u''@;'; put 'put ''Y2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ0XVtFXV09NjI0NjQrRSxMWzYyNDY0K0VdPUJbMjQ0XVtFXSk7Zm9yKEJbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTEyXHU2OTVhXHU2YTM1XHU3MDkyXHU3MTI2XHU3ODVkXHU3OTAxXHU3OTBlXHU3OWQyXHU3YTBkXHU4MDk2XHU4Mjc4XHU4MmQ1XHU4MzQ5XHU4NTQ5XHU4YzgyXHU4ZDg1XHU5MTYyXHU5MThiXHU5''@;'; put 'put ''MWFlXHU0ZmMzXHU1NmQxXHU3MWVkXHU3N2Q3XHU4NzAwXHU4OWY4XHU1YmY4XHU1ZmQ2XHU2NzUxXHU5MGE4XHU1M2UyXHU1ODVhXHU1YmY1XHU2MGE0XHU2MTgxXHU2NDYwXHU3ZTNkXHU4MDcwXHU4NTI1XHU5MjgzXHU2NGFlXHU1MGFjXHU1ZDE0XHU2NzAwXHU1ODljXHU2MmJkXHU2M2E4''@;'; put 'put ''XHU2OTBlXHU2OTc4XHU2YTFlXHU2ZTZiXHU3NmJhXHU3OWNiXHU4MmJiXHU4NDI5XHU4YWNmXHU4ZGE4XHU4ZmZkXHU5MTEyXHU5MTRiXHU5MTljXHU5MzEwXHU5MzE4XHU5MzlhXHU5NmRiXHU5YTM2XHU5YzBkXHU0ZTExXHU3NTVjXHU3OTVkXHU3YWZhXHU3YjUxXHU3YmM5XHU3ZTJlXHU4''@;'; put 'put ''NGM0XHU4ZTU5XHU4ZTc0XHU4ZWY4XHU5MDEwXHU2NjI1XHU2OTNmXHU3NDQzXHU1MWZhXHU2NzJlXHU5ZWRjXHU1MTQ1XHU1ZmUwXHU2Yzk2XHU4N2YyXHU4ODVkXHU4ODc3XHU2MGI0XHU4MWI1XHU4NDAzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ1XS5sZW5ndGg7KytFKTY1NTMz''@;'; put 'put ''IT09QlsyNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0NV1bRV1dPTYyNzIwK0UsTFs2MjcyMCtFXT1CWzI0NV1bRV0pO2ZvcihCWzI0Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGQwNVx1NTNkNlx1NTQzOVx1NTYzNFx1NWEzNlx1NWMzMVx1NzA4YVx1N2ZlMFx1ODA1YVx1ODEwNlx1ODFlZFx1OGRhM1x1OTE4OVx1OWE1Zlx1OWRmMlx1NTA3NFx1NGVjNFx1''@;'; put 'put ''NTNhMFx1NjBmYlx1NmUyY1x1NWM2NFx1NGY4OFx1NTAyNFx1NTVlNFx1NWNkOVx1NWU1Zlx1NjA2NVx1Njg5NFx1NmNiYlx1NmRjNFx1NzFiZVx1NzVkNFx1NzVmNFx1NzY2MVx1N2ExYVx1N2E0OVx1N2RjN1x1N2RmYlx1N2Y2ZVx1ODFmNFx1ODZhOVx1OGYxY1x1OTZjOVx1OTliM1x1OWY1''@;'; put 'put ''Mlx1NTI0N1x1NTJjNVx1OThlZFx1ODlhYVx1NGUwM1x1NjdkMlx1NmYwNlx1NGZiNVx1NWJlMlx1Njc5NVx1NmM4OFx1NmQ3OFx1NzQxYlx1NzgyN1x1OTFkZFx1OTM3Y1x1ODdjNFx1NzllNFx1N2EzMVx1NWZlYlx1NGVkNlx1NTRhNFx1NTUzZVx1NThhZVx1NTlhNVx1NjBmMFx1NjI1M1x1''@;'; put 'put ''NjJkNlx1NjczNlx1Njk1NVx1ODIzNVx1OTY0MFx1OTliMVx1OTlkZFx1NTAyY1x1NTM1M1x1NTU0NFx1NTc3Y1x1ZmEwMVx1NjI1OFx1ZmEwMlx1NjRlMlx1NjY2Ylx1NjdkZFx1NmZjMVx1NmZlZlx1NzQyMlx1NzQzOFx1OGExN1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Nl0ubGVu''@;'; put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMjQ2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDZdW0VdXT02Mjk3NitFLExbNjI5NzYrRV09QlsyNDZdW0VdKTtmb3IoQlsyNDddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk0MzhcdTU0NTFcdTU2MDZcdTU3NjZcdTVmNDhcdTYxOWFcdTZiNGVcdTcwNThcdTcwYWRcdTdkYmJcdThhOTVcdTU5NmFcdTgxMmJcdTYzYTJcdTc3MDhc''@;'; put 'put ''dTgwM2RcdThjYWFcdTU4NTRcdTY0MmRcdTY5YmJcdTViOTVcdTVlMTFcdTZlNmZcdWZhMDNcdTg1NjlcdTUxNGNcdTUzZjBcdTU5MmFcdTYwMjBcdTYxNGJcdTZiODZcdTZjNzBcdTZjZjBcdTdiMWVcdTgwY2VcdTgyZDRcdThkYzZcdTkwYjBcdTk4YjFcdWZhMDRcdTY0YzdcdTZmYTRcdTY0''@;'; put 'put ''OTFcdTY1MDRcdTUxNGVcdTU0MTBcdTU3MWZcdThhMGVcdTYxNWZcdTY4NzZcdWZhMDVcdTc1ZGJcdTdiNTJcdTdkNzFcdTkwMWFcdTU4MDZcdTY5Y2NcdTgxN2ZcdTg5MmFcdTkwMDBcdTk4MzlcdTUwNzhcdTU5NTdcdTU5YWNcdTYyOTVcdTkwMGZcdTliMmFcdTYxNWRcdTcyNzlcdTk1ZDZc''@;'; put 'put ''dTU3NjFcdTVhNDZcdTVkZjRcdTYyOGFcdTY0YWRcdTY0ZmFcdTY3NzdcdTZjZTJcdTZkM2VcdTcyMmNcdTc0MzZcdTc4MzRcdTdmNzdcdTgyYWRcdThkZGJcdTk4MTdcdTUyMjRcdTU3NDJcdTY3N2ZcdTcyNDhcdTc0ZTNcdThjYTlcdThmYTZcdTkyMTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; put 'put ''RSE9QlsyNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ3XVtFXV09NjMyMzIrRSxMWzYzMjMyK0VdPUJbMjQ3XVtFXSk7Zm9yKEJbMjQ4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NjJhXHU1MTZiXHU1M2VkXHU2MzRjXHU0ZjY5XHU1NTA0XHU2MDk2XHU2NTU3XHU2YzliXHU2ZDdmXHU3MjRjXHU3MmZkXHU3YTE3''@;'; put 'put ''XHU4OTg3XHU4YzlkXHU1ZjZkXHU2ZjhlXHU3MGY5XHU4MWE4XHU2MTBlXHU0ZmJmXHU1MDRmXHU2MjQxXHU3MjQ3XHU3YmM3XHU3ZGU4XHU3ZmU5XHU5MDRkXHU5N2FkXHU5YTE5XHU4Y2I2XHU1NzZhXHU1ZTczXHU2N2IwXHU4NDBkXHU4YTU1XHU1NDIwXHU1YjE2XHU1ZTYzXHU1ZWUyXHU1''@;'; put 'put ''ZjBhXHU2NTgzXHU4MGJhXHU4NTNkXHU5NTg5XHU5NjViXHU0ZjQ4XHU1MzA1XHU1MzBkXHU1MzBmXHU1NDg2XHU1NGZhXHU1NzAzXHU1ZTAzXHU2MDE2XHU2MjliXHU2MmIxXHU2MzU1XHVmYTA2XHU2Y2UxXHU2ZDY2XHU3NWIxXHU3ODMyXHU4MGRlXHU4MTJmXHU4MmRlXHU4NDYxXHU4NGIy''@;'; put 'put ''XHU4ODhkXHU4OTEyXHU5MDBiXHU5MmVhXHU5OGZkXHU5YjkxXHU1ZTQ1XHU2NmI0XHU2NmRkXHU3MDExXHU3MjA2XHVmYTA3XHU0ZmY1XHU1MjdkXHU1ZjZhXHU2MTUzXHU2NzUzXHU2YTE5XHU2ZjAyXHU3NGUyXHU3OTY4XHU4ODY4XHU4Yzc5XHU5OGM3XHU5OGM0XHU5YTQzXHVmZmZkIi5z''@;'; put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMjQ4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0OF1bRV1dPTYzNDg4K0UsTFs2MzQ4OCtFXT1CWzI0OF1bRV0pO2ZvcihCWzI0OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTRjMVx1N2ExZlx1Njk1M1x1OGFmN1x1OGM0YVx1OThhOFx1OTlhZVx1NWY3Y1x1NjJhYlx1NzViMlx1NzZh''@;'; put 'put ''ZVx1ODhhYlx1OTA3Zlx1OTY0Mlx1NTMzOVx1NWYzY1x1NWZjNVx1NmNjY1x1NzNjY1x1NzU2Mlx1NzU4Ylx1N2I0Nlx1ODJmZVx1OTk5ZFx1NGU0Zlx1OTAzY1x1NGUwYlx1NGY1NVx1NTNhNlx1NTkwZlx1NWVjOFx1NjYzMFx1NmNiM1x1NzQ1NVx1ODM3N1x1ODc2Nlx1OGNjMFx1OTA1MFx1''@;'; put 'put ''OTcxZVx1OWMxNVx1NThkMVx1NWI3OFx1ODY1MFx1OGIxNFx1OWRiNFx1NWJkMlx1NjA2OFx1NjA4ZFx1NjVmMVx1NmM1N1x1NmYyMlx1NmZhM1x1NzAxYVx1N2Y1NVx1N2ZmMFx1OTU5MVx1OTU5Mlx1OTY1MFx1OTdkM1x1NTI3Mlx1OGY0NFx1NTFmZFx1NTQyYlx1NTRiOFx1NTU2M1x1NTU4''@;'; put 'put ''YVx1NmFiYlx1NmRiNVx1N2RkOFx1ODI2Nlx1OTI5Y1x1OTY3N1x1OWU3OVx1NTQwOFx1NTRjOFx1NzZkMlx1ODZlNFx1OTVhNFx1OTVkNFx1OTY1Y1x1NGVhMlx1NGYwOVx1NTllZVx1NWFlNlx1NWRmN1x1NjA1Mlx1NjI5N1x1Njc2ZFx1Njg0MVx1NmM4Nlx1NmUyZlx1N2YzOFx1ODA5Ylx1''@;'; put 'put ''ODIyYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0OV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDldW0VdXT02Mzc0NCtFLExbNjM3NDQrRV09QlsyNDldW0VdKTtmb3IoQlsyNTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZhMDhcdWZhMDlcdTk4MDVcdTRlYTVcdTUwNTVcdTU0YjNcdTU3OTNcdTU5NWFcdTVi''@;'; put 'put ''NjlcdTViYjNcdTYxYzhcdTY5NzdcdTZkNzdcdTcwMjNcdTg3ZjlcdTg5ZTNcdThhNzJcdThhZTdcdTkwODJcdTk5ZWRcdTlhYjhcdTUyYmVcdTY4MzhcdTUwMTZcdTVlNzhcdTY3NGZcdTgzNDdcdTg4NGNcdTRlYWJcdTU0MTFcdTU2YWVcdTczZTZcdTkxMTVcdTk3ZmZcdTk5MDlcdTk5NTdc''@;'; put 'put ''dTk5OTlcdTU2NTNcdTU4OWZcdTg2NWJcdThhMzFcdTYxYjJcdTZhZjZcdTczN2JcdThlZDJcdTZiNDdcdTk2YWFcdTlhNTdcdTU5NTVcdTcyMDBcdThkNmJcdTk3NjlcdTRmZDRcdTVjZjRcdTVmMjZcdTYxZjhcdTY2NWJcdTZjZWJcdTcwYWJcdTczODRcdTczYjlcdTczZmVcdTc3MjlcdTc3''@;'; put 'put ''NGRcdTdkNDNcdTdkNjJcdTdlMjNcdTgyMzdcdTg4NTJcdWZhMGFcdThjZTJcdTkyNDlcdTk4NmZcdTViNTFcdTdhNzRcdTg4NDBcdTk4MDFcdTVhY2NcdTRmZTBcdTUzNTRcdTU5M2VcdTVjZmRcdTYzM2VcdTZkNzlcdTcyZjlcdTgxMDVcdTgxMDdcdTgzYTJcdTkyY2ZcdTk4MzBcdTRlYThc''@;'; put 'put ''dTUxNDRcdTUyMTFcdTU3OGJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNTBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUwXVtFXV09NjRlMytFLExbNjRlMytFXT1CWzI1MF1bRV0pO2ZvcihCWzI1MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWY2Mlx1NmNjMlx1NmVjZVx1NzAwNVx1NzA1MFx1NzBhZlx1NzE5''@;'; put 'put ''Mlx1NzNlOVx1NzQ2OVx1ODM0YVx1ODdhMlx1ODg2MVx1OTAwOFx1OTBhMlx1OTNhM1x1OTlhOFx1NTE2ZVx1NWY1N1x1NjBlMFx1NjE2N1x1NjZiM1x1ODU1OVx1OGU0YVx1OTFhZlx1OTc4Ylx1NGU0ZVx1NGU5Mlx1NTQ3Y1x1NThkNVx1NThmYVx1NTk3ZFx1NWNiNVx1NWYyN1x1NjIzNlx1''@;'; put 'put ''NjI0OFx1NjYwYVx1NjY2N1x1NmJlYlx1NmQ2OVx1NmRjZlx1NmU1Nlx1NmVmOFx1NmY5NFx1NmZlMFx1NmZlOVx1NzA1ZFx1NzJkMFx1NzQyNVx1NzQ1YVx1NzRlMFx1NzY5M1x1Nzk1Y1x1N2NjYVx1N2UxZVx1ODBlMVx1ODJhNlx1ODQ2Ylx1ODRiZlx1ODY0ZVx1ODY1Zlx1ODc3NFx1OGI3''@;'; put 'put ''N1x1OGM2YVx1OTNhY1x1OTgwMFx1OTg2NVx1NjBkMVx1NjIxNlx1OTE3N1x1NWE1YVx1NjYwZlx1NmRmN1x1NmUzZVx1NzQzZlx1OWI0Mlx1NWZmZFx1NjBkYVx1N2IwZlx1NTRjNFx1NWYxOFx1NmM1ZVx1NmNkM1x1NmQyYVx1NzBkOFx1N2QwNVx1ODY3OVx1OGEwY1x1OWQzYlx1NTMxNlx1''@;'; put 'put ''NTQ4Y1x1NWIwNVx1NmEzYVx1NzA2Ylx1NzU3NVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI1MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjUxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNTFdW0VdXT02NDI1NitFLExbNjQyNTYrRV09QlsyNTFdW0VdKTtmb3IoQlsyNTJdPSJcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OGRcdTc5YmVcdTgyYjFcdTgzZWZcdThh''@;'; put 'put ''NzFcdThiNDFcdThjYThcdTk3NzRcdWZhMGJcdTY0ZjRcdTY1MmJcdTc4YmFcdTc4YmJcdTdhNmJcdTRlMzhcdTU1OWFcdTU5NTBcdTViYTZcdTVlN2JcdTYwYTNcdTYzZGJcdTZiNjFcdTY2NjVcdTY4NTNcdTZlMTlcdTcxNjVcdTc0YjBcdTdkMDhcdTkwODRcdTlhNjlcdTljMjVcdTZkM2Jc''@;'; put 'put ''dTZlZDFcdTczM2VcdThjNDFcdTk1Y2FcdTUxZjBcdTVlNGNcdTVmYThcdTYwNGRcdTYwZjZcdTYxMzBcdTYxNGNcdTY2NDNcdTY2NDRcdTY5YTVcdTZjYzFcdTZlNWZcdTZlYzlcdTZmNjJcdTcxNGNcdTc0OWNcdTc2ODdcdTdiYzFcdTdjMjdcdTgzNTJcdTg3NTdcdTkwNTFcdTk2OGRcdTll''@;'; put 'put ''YzNcdTUzMmZcdTU2ZGVcdTVlZmJcdTVmOGFcdTYwNjJcdTYwOTRcdTYxZjdcdTY2NjZcdTY3MDNcdTZhOWNcdTZkZWVcdTZmYWVcdTcwNzBcdTczNmFcdTdlNmFcdTgxYmVcdTgzMzRcdTg2ZDRcdThhYThcdThjYzRcdTUyODNcdTczNzJcdTViOTZcdTZhNmJcdTk0MDRcdTU0ZWVcdTU2ODZc''@;'; put 'put ''dTViNWRcdTY1NDhcdTY1ODVcdTY2YzlcdTY4OWZcdTZkOGRcdTZkYzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI1Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjUyXVtFXV09NjQ1MTIrRSxMWzY0NTEyK0VdPUJbMjUyXVtFXSk7Zm9y''@;'; put 'put ''KEJbMjUzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MjNiXHU4MGI0XHU5''@;'; put 'put ''MTc1XHU5YTRkXHU0ZmFmXHU1MDE5XHU1MzlhXHU1NDBlXHU1NDNjXHU1NTg5XHU1NWM1XHU1ZTNmXHU1ZjhjXHU2NzNkXHU3MTY2XHU3M2RkXHU5MDA1XHU1MmRiXHU1MmYzXHU1ODY0XHU1OGNlXHU3MTA0XHU3MThmXHU3MWZiXHU4NWIwXHU4YTEzXHU2Njg4XHU4NWE4XHU1NWE3XHU2Njg0''@;'; put 'put ''XHU3MTRhXHU4NDMxXHU1MzQ5XHU1NTk5XHU2YmMxXHU1ZjU5XHU1ZmJkXHU2M2VlXHU2Njg5XHU3MTQ3XHU4YWYxXHU4ZjFkXHU5ZWJlXHU0ZjExXHU2NDNhXHU3MGNiXHU3NTY2XHU4NjY3XHU2MDY0XHU4YjRlXHU5ZGY4XHU1MTQ3XHU1MWY2XHU1MzA4XHU2ZDM2XHU4MGY4XHU5ZWQxXHU2''@;'; put 'put ''NjE1XHU2YjIzXHU3MDk4XHU3NWQ1XHU1NDAzXHU1Yzc5XHU3ZDA3XHU4YTE2XHU2YjIwXHU2YjNkXHU2YjQ2XHU1NDM4XHU2MDcwXHU2ZDNkXHU3ZmQ1XHU4MjA4XHU1MGQ2XHU1MWRlXHU1NTljXHU1NjZiXHU1NmNkXHU1OWVjXHU1YjA5XHU1ZTBjXHU2MTk5XHU2MTk4XHU2MjMxXHU2NjVl''@;'; put 'put ''XHU2NmU2XHU3MTk5XHU3MWI5XHU3MWJhXHU3MmE3XHU3OWE3XHU3YTAwXHU3ZmIyXHU4YTcwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjUzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI1M11bRV1dPTY0NzY4K0UsTFs2NDc2OCtFXT1C''@;'; put 'put ''WzI1M11bRV0pO3JldHVybntlbmM6bWUsZGVjOkx9fSgpLEplWzk1MF09ZnVuY3Rpb24oKXt2YXIgRSxMPVtdLG1lPXt9LEI9W107Zm9yKEJbMF09IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4''@;'; put 'put ''MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMF1bRV1dPTArRSxMWzAr''@;'; put 'put ''RV09QlswXVtFXSk7Zm9yKEJbMTYxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDAwXHVmZjBjXHUzMDAxXHUzMDAyXHVmZjBlXHUyMDI3XHVmZjFiXHVmZjFhXHVmZjFmXHVmZjAxXHVmZTMwXHUyMDI2XHUyMDI1XHVmZTUwXHVm''@;'; put 'put ''ZTUxXHVmZTUyXHhiN1x1ZmU1NFx1ZmU1NVx1ZmU1Nlx1ZmU1N1x1ZmY1Y1x1MjAxM1x1ZmUzMVx1MjAxNFx1ZmUzM1x1MjU3NFx1ZmUzNFx1ZmU0Zlx1ZmYwOFx1ZmYwOVx1ZmUzNVx1ZmUzNlx1ZmY1Ylx1ZmY1ZFx1ZmUzN1x1ZmUzOFx1MzAxNFx1MzAxNVx1ZmUzOVx1ZmUzYVx1MzAxMFx1''@;'; put 'put ''MzAxMVx1ZmUzYlx1ZmUzY1x1MzAwYVx1MzAwYlx1ZmUzZFx1ZmUzZVx1MzAwOFx1MzAwOVx1ZmUzZlx1ZmU0MFx1MzAwY1x1MzAwZFx1ZmU0MVx1ZmU0Mlx1MzAwZVx1MzAwZlx1ZmU0M1x1ZmU0NFx1ZmU1OVx1ZmU1YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmU1Ylx1ZmU1Y1x1ZmU1ZFx1ZmU1ZVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MzAxZFx1MzAxZVx1MjAzNVx1MjAzMlx1ZmYwM1x1ZmYwNlx1ZmYwYVx1MjAzYlx4YTdcdTMwMDNcdTI1Y2JcdTI1Y2ZcdTI1YjNcdTI1YjJcdTI1Y2VcdTI2MDZcdTI2MDVcdTI1YzdcdTI1YzZcdTI1YTFc''@;'; put 'put ''dTI1YTBcdTI1YmRcdTI1YmNcdTMyYTNcdTIxMDVceGFmXHVmZmUzXHVmZjNmXHUwMmNkXHVmZTQ5XHVmZTRhXHVmZTRkXHVmZTRlXHVmZTRiXHVmZTRjXHVmZTVmXHVmZTYwXHVmZTYxXHVmZjBiXHVmZjBkXHhkN1x4ZjdceGIxXHUyMjFhXHVmZjFjXHVmZjFlXHVmZjFkXHUyMjY2XHUyMjY3''@;'; put 'put ''XHUyMjYwXHUyMjFlXHUyMjUyXHUyMjYxXHVmZTYyXHVmZTYzXHVmZTY0XHVmZTY1XHVmZTY2XHVmZjVlXHUyMjI5XHUyMjJhXHUyMmE1XHUyMjIwXHUyMjFmXHUyMmJmXHUzM2QyXHUzM2QxXHUyMjJiXHUyMjJlXHUyMjM1XHUyMjM0XHUyNjQwXHUyNjQyXHUyMjk1XHUyMjk5XHUyMTkxXHUy''@;'; put 'put ''MTkzXHUyMTkwXHUyMTkyXHUyMTk2XHUyMTk3XHUyMTk5XHUyMTk4XHUyMjI1XHUyMjIzXHVmZjBmXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2MV1bRV1dPTQxMjE2K0UsTFs0MTIxNitF''@;'; put 'put ''XT1CWzE2MV1bRV0pO2ZvcihCWzE2Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmYzY1x1MjIxNVx1ZmU2OFx1ZmYwNFx1ZmZlNVx1MzAxMlx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYyMFx1MjEwM1x1MjEwOVx1ZmU2OVx1ZmU2YVx1''@;'; put 'put ''ZmU2Ylx1MzNkNVx1MzM5Y1x1MzM5ZFx1MzM5ZVx1MzNjZVx1MzNhMVx1MzM4ZVx1MzM4Zlx1MzNjNFx4YjBcdTUxNTlcdTUxNWJcdTUxNWVcdTUxNWRcdTUxNjFcdTUxNjNcdTU1ZTdcdTc0ZTlcdTdjY2VcdTI1ODFcdTI1ODJcdTI1ODNcdTI1ODRcdTI1ODVcdTI1ODZcdTI1ODdcdTI1ODhc''@;'; put 'put ''dTI1OGZcdTI1OGVcdTI1OGRcdTI1OGNcdTI1OGJcdTI1OGFcdTI1ODlcdTI1M2NcdTI1MzRcdTI1MmNcdTI1MjRcdTI1MWNcdTI1OTRcdTI1MDBcdTI1MDJcdTI1OTVcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1NmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dTI1NmVcdTI1NzBcdTI1NmZcdTI1NTBcdTI1NWVcdTI1NmFcdTI1NjFcdTI1ZTJcdTI1ZTNcdTI1ZTVcdTI1ZTRcdTI1NzFcdTI1NzJcdTI1NzNcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdTIxNjBcdTIxNjFcdTIxNjJcdTIx''@;'; put 'put ''NjNcdTIxNjRcdTIxNjVcdTIxNjZcdTIxNjdcdTIxNjhcdTIxNjlcdTMwMjFcdTMwMjJcdTMwMjNcdTMwMjRcdTMwMjVcdTMwMjZcdTMwMjdcdTMwMjhcdTMwMjlcdTUzNDFcdTUzNDRcdTUzNDVcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlc''@;'; put 'put ''dWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZm''@;'; put 'put ''NGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYyXVtFXV09NDE0NzIr''@;'; put 'put ''RSxMWzQxNDcyK0VdPUJbMTYyXVtFXSk7Zm9yKEJbMTYzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZjU3XHVmZjU4XHVmZjU5XHVmZjVhXHUwMzkxXHUwMzkyXHUwMzkzXHUwMzk0XHUwMzk1XHUwMzk2XHUwMzk3XHUwMzk4XHUw''@;'; put 'put ''Mzk5XHUwMzlhXHUwMzliXHUwMzljXHUwMzlkXHUwMzllXHUwMzlmXHUwM2EwXHUwM2ExXHUwM2EzXHUwM2E0XHUwM2E1XHUwM2E2XHUwM2E3XHUwM2E4XHUwM2E5XHUwM2IxXHUwM2IyXHUwM2IzXHUwM2I0XHUwM2I1XHUwM2I2XHUwM2I3XHUwM2I4XHUwM2I5XHUwM2JhXHUwM2JiXHUwM2Jj''@;'; put 'put ''XHUwM2JkXHUwM2JlXHUwM2JmXHUwM2MwXHUwM2MxXHUwM2MzXHUwM2M0XHUwM2M1XHUwM2M2XHUwM2M3XHUwM2M4XHUwM2M5XHUzMTA1XHUzMTA2XHUzMTA3XHUzMTA4XHUzMTA5XHUzMTBhXHUzMTBiXHUzMTBjXHUzMTBkXHUzMTBlXHUzMTBmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHUzMTEwXHUzMTExXHUzMTEyXHUzMTEzXHUzMTE0XHUzMTE1XHUzMTE2XHUzMTE3XHUzMTE4XHUzMTE5XHUzMTFhXHUzMTFiXHUzMTFjXHUzMTFkXHUzMTFlXHUzMTFmXHUzMTIwXHUzMTIxXHUzMTIyXHUzMTIzXHUzMTI0XHUzMTI1XHUzMTI2XHUzMTI3XHUzMTI4XHUz''@;'; put 'put ''MTI5XHUwMmQ5XHUwMmM5XHUwMmNhXHUwMmM3XHUwMmNiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMGFjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2''@;'; put 'put ''M11bRV1dPTQxNzI4K0UsTFs0MTcyOCtFXT1CWzE2M11bRV0pO2ZvcihCWzE2NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUwMFx1NGU1OVx1NGUwMVx1NGUwM1x1NGU0M1x1NGU1ZFx1NGU4Nlx1NGU4Y1x1NGViYVx1NTEzZlx1''@;'; put 'put ''NTE2NVx1NTE2Ylx1NTFlMFx1NTIwMFx1NTIwMVx1NTI5Ylx1NTMxNVx1NTM0MVx1NTM1Y1x1NTNjOFx1NGUwOVx1NGUwYlx1NGUwOFx1NGUwYVx1NGUyYlx1NGUzOFx1NTFlMVx1NGU0NVx1NGU0OFx1NGU1Zlx1NGU1ZVx1NGU4ZVx1NGVhMVx1NTE0MFx1NTIwM1x1NTJmYVx1NTM0M1x1NTNj''@;'; put 'put ''OVx1NTNlM1x1NTcxZlx1NThlYlx1NTkxNVx1NTkyN1x1NTk3M1x1NWI1MFx1NWI1MVx1NWI1M1x1NWJmOFx1NWMwZlx1NWMyMlx1NWMzOFx1NWM3MVx1NWRkZFx1NWRlNVx1NWRmMVx1NWRmMlx1NWRmM1x1NWRmZVx1NWU3Mlx1NWVmZVx1NWYwYlx1NWYxM1x1NjI0ZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGUxMVx1NGUxMFx1NGUwZFx1NGUyZFx1NGUzMFx1NGUzOVx1NGU0Ylx1NWMzOVx1NGU4OFx1NGU5MVx1NGU5NVx1NGU5Mlx1NGU5NFx1NGVhMlx1NGVjMVx1NGVjMFx1NGVjM1x1NGVjNlx1NGVjN1x1NGVjZFx1NGVjYVx1NGVjYlx1NGVjNFx1''@;'; put 'put ''NTE0M1x1NTE0MVx1NTE2N1x1NTE2ZFx1NTE2ZVx1NTE2Y1x1NTE5N1x1NTFmNlx1NTIwNlx1NTIwN1x1NTIwOFx1NTJmYlx1NTJmZVx1NTJmZlx1NTMxNlx1NTMzOVx1NTM0OFx1NTM0N1x1NTM0NVx1NTM1ZVx1NTM4NFx1NTNjYlx1NTNjYVx1NTNjZFx1NThlY1x1NTkyOVx1NTkyYlx1NTky''@;'; put 'put ''YVx1NTkyZFx1NWI1NFx1NWMxMVx1NWMyNFx1NWMzYVx1NWM2Zlx1NWRmNFx1NWU3Ylx1NWVmZlx1NWYxNFx1NWYxNVx1NWZjM1x1NjIwOFx1NjIzNlx1NjI0Ylx1NjI0ZVx1NjUyZlx1NjU4N1x1NjU5N1x1NjVhNFx1NjViOVx1NjVlNVx1NjZmMFx1NjcwOFx1NjcyOFx1NmIyMFx1NmI2Mlx1''@;'; put 'put ''NmI3OVx1NmJjYlx1NmJkNFx1NmJkYlx1NmMwZlx1NmMzNFx1NzA2Ylx1NzIyYVx1NzIzNlx1NzIzYlx1NzI0N1x1NzI1OVx1NzI1Ylx1NzJhY1x1NzM4Ylx1NGUxOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY0XVtFXS5jaGFyQ29kZUF0''@;'; put 'put ''KDApJiYobWVbQlsxNjRdW0VdXT00MTk4NCtFLExbNDE5ODQrRV09QlsxNjRdW0VdKTtmb3IoQlsxNjVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRlMTZcdTRlMTVcdTRlMTRcdTRlMThcdTRlM2JcdTRlNGRcdTRlNGZcdTRlNGVc''@;'; put 'put ''dTRlZTVcdTRlZDhcdTRlZDRcdTRlZDVcdTRlZDZcdTRlZDdcdTRlZTNcdTRlZTRcdTRlZDlcdTRlZGVcdTUxNDVcdTUxNDRcdTUxODlcdTUxOGFcdTUxYWNcdTUxZjlcdTUxZmFcdTUxZjhcdTUyMGFcdTUyYTBcdTUyOWZcdTUzMDVcdTUzMDZcdTUzMTdcdTUzMWRcdTRlZGZcdTUzNGFcdTUz''@;'; put 'put ''NDlcdTUzNjFcdTUzNjBcdTUzNmZcdTUzNmVcdTUzYmJcdTUzZWZcdTUzZTRcdTUzZjNcdTUzZWNcdTUzZWVcdTUzZTlcdTUzZThcdTUzZmNcdTUzZjhcdTUzZjVcdTUzZWJcdTUzZTZcdTUzZWFcdTUzZjJcdTUzZjFcdTUzZjBcdTUzZTVcdTUzZWRcdTUzZmJcdTU2ZGJcdTU2ZGFcdTU5MTZc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU5MmVcdTU5MzFcdTU5NzRcdTU5NzZcdTViNTVcdTViODNcdTVjM2NcdTVkZThcdTVkZTdcdTVkZTZcdTVlMDJcdTVlMDNcdTVlNzNcdTVlN2NcdTVmMDFcdTVmMThcdTVmMTdcdTVmYzVcdTYyMGFcdTYyNTNcdTYyNTRc''@;'; put 'put ''dTYyNTJcdTYyNTFcdTY1YTVcdTY1ZTZcdTY3MmVcdTY3MmNcdTY3MmFcdTY3MmJcdTY3MmRcdTZiNjNcdTZiY2RcdTZjMTFcdTZjMTBcdTZjMzhcdTZjNDFcdTZjNDBcdTZjM2VcdTcyYWZcdTczODRcdTczODlcdTc0ZGNcdTc0ZTZcdTc1MThcdTc1MWZcdTc1MjhcdTc1MjlcdTc1MzBcdTc1''@;'; put 'put ''MzFcdTc1MzJcdTc1MzNcdTc1OGJcdTc2N2RcdTc2YWVcdTc2YmZcdTc2ZWVcdTc3ZGJcdTc3ZTJcdTc3ZjNcdTc5M2FcdTc5YmVcdTdhNzRcdTdhY2JcdTRlMWVcdTRlMWZcdTRlNTJcdTRlNTNcdTRlNjlcdTRlOTlcdTRlYTRcdTRlYTZcdTRlYTVcdTRlZmZcdTRmMDlcdTRmMTlcdTRmMGFc''@;'; put 'put ''dTRmMTVcdTRmMGRcdTRmMTBcdTRmMTFcdTRmMGZcdTRlZjJcdTRlZjZcdTRlZmJcdTRlZjBcdTRlZjNcdTRlZmRcdTRmMDFcdTRmMGJcdTUxNDlcdTUxNDdcdTUxNDZcdTUxNDhcdTUxNjhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2NV1b''@;'; put 'put ''RV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY1XVtFXV09NDIyNDArRSxMWzQyMjQwK0VdPUJbMTY1XVtFXSk7Zm9yKEJbMTY2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MTcxXHU1MThkXHU1MWIwXHU1MjE3XHU1MjExXHU1MjEy''@;'; put 'put ''XHU1MjBlXHU1MjE2XHU1MmEzXHU1MzA4XHU1MzIxXHU1MzIwXHU1MzcwXHU1MzcxXHU1NDA5XHU1NDBmXHU1NDBjXHU1NDBhXHU1NDEwXHU1NDAxXHU1NDBiXHU1NDA0XHU1NDExXHU1NDBkXHU1NDA4XHU1NDAzXHU1NDBlXHU1NDA2XHU1NDEyXHU1NmUwXHU1NmRlXHU1NmRkXHU1NzMzXHU1''@;'; put 'put ''NzMwXHU1NzI4XHU1NzJkXHU1NzJjXHU1NzJmXHU1NzI5XHU1OTE5XHU1OTFhXHU1OTM3XHU1OTM4XHU1OTg0XHU1OTc4XHU1OTgzXHU1OTdkXHU1OTc5XHU1OTgyXHU1OTgxXHU1YjU3XHU1YjU4XHU1Yjg3XHU1Yjg4XHU1Yjg1XHU1Yjg5XHU1YmZhXHU1YzE2XHU1Yzc5XHU1ZGRlXHU1ZTA2''@;'; put 'put ''XHU1ZTc2XHU1ZTc0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZjBmXHU1ZjFiXHU1ZmQ5XHU1ZmQ2XHU2MjBlXHU2MjBjXHU2MjBkXHU2MjEwXHU2MjYzXHU2MjViXHU2MjU4XHU2NTM2XHU2NWU5XHU2NWU4XHU2NWVjXHU2NWVkXHU2NmYyXHU2NmYzXHU2NzA5''@;'; put 'put ''XHU2NzNkXHU2NzM0XHU2NzMxXHU2NzM1XHU2YjIxXHU2YjY0XHU2YjdiXHU2YzE2XHU2YzVkXHU2YzU3XHU2YzU5XHU2YzVmXHU2YzYwXHU2YzUwXHU2YzU1XHU2YzYxXHU2YzViXHU2YzRkXHU2YzRlXHU3MDcwXHU3MjVmXHU3MjVkXHU3NjdlXHU3YWY5XHU3YzczXHU3Y2Y4XHU3ZjM2XHU3''@;'; put 'put ''ZjhhXHU3ZmJkXHU4MDAxXHU4MDAzXHU4MDBjXHU4MDEyXHU4MDMzXHU4MDdmXHU4MDg5XHU4MDhiXHU4MDhjXHU4MWUzXHU4MWVhXHU4MWYzXHU4MWZjXHU4MjBjXHU4MjFiXHU4MjFmXHU4MjZlXHU4MjcyXHU4MjdlXHU4NjZiXHU4ODQwXHU4ODRjXHU4ODYzXHU4OTdmXHU5NjIxXHU0ZTMy''@;'; put 'put ''XHU0ZWE4XHU0ZjRkXHU0ZjRmXHU0ZjQ3XHU0ZjU3XHU0ZjVlXHU0ZjM0XHU0ZjViXHU0ZjU1XHU0ZjMwXHU0ZjUwXHU0ZjUxXHU0ZjNkXHU0ZjNhXHU0ZjM4XHU0ZjQzXHU0ZjU0XHU0ZjNjXHU0ZjQ2XHU0ZjYzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY2XS5sZW5ndGg7KytFKTY1''@;'; put 'put ''NTMzIT09QlsxNjZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2Nl1bRV1dPTQyNDk2K0UsTFs0MjQ5NitFXT1CWzE2Nl1bRV0pO2ZvcihCWzE2N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGY1Y1x1NGY2MFx1NGYyZlx1NGY0''@;'; put 'put ''ZVx1NGYzNlx1NGY1OVx1NGY1ZFx1NGY0OFx1NGY1YVx1NTE0Y1x1NTE0Ylx1NTE0ZFx1NTE3NVx1NTFiNlx1NTFiN1x1NTIyNVx1NTIyNFx1NTIyOVx1NTIyYVx1NTIyOFx1NTJhYlx1NTJhOVx1NTJhYVx1NTJhY1x1NTMyM1x1NTM3M1x1NTM3NVx1NTQxZFx1NTQyZFx1NTQxZVx1NTQzZVx1''@;'; put 'put ''NTQyNlx1NTQ0ZVx1NTQyN1x1NTQ0Nlx1NTQ0M1x1NTQzM1x1NTQ0OFx1NTQ0Mlx1NTQxYlx1NTQyOVx1NTQ0YVx1NTQzOVx1NTQzYlx1NTQzOFx1NTQyZVx1NTQzNVx1NTQzNlx1NTQyMFx1NTQzY1x1NTQ0MFx1NTQzMVx1NTQyYlx1NTQxZlx1NTQyY1x1NTZlYVx1NTZmMFx1NTZlNFx1NTZl''@;'; put 'put ''Ylx1NTc0YVx1NTc1MVx1NTc0MFx1NTc0ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTc0N1x1NTc0ZVx1NTczZVx1NTc1MFx1NTc0Zlx1NTczYlx1NThlZlx1NTkzZVx1NTk5ZFx1NTk5Mlx1NTlhOFx1NTk5ZVx1NTlhM1x1NTk5OVx1NTk5Nlx1NTk4ZFx1NTlh''@;'; put 'put ''NFx1NTk5M1x1NTk4YVx1NTlhNVx1NWI1ZFx1NWI1Y1x1NWI1YVx1NWI1Ylx1NWI4Y1x1NWI4Ylx1NWI4Zlx1NWMyY1x1NWM0MFx1NWM0MVx1NWMzZlx1NWMzZVx1NWM5MFx1NWM5MVx1NWM5NFx1NWM4Y1x1NWRlYlx1NWUwY1x1NWU4Zlx1NWU4N1x1NWU4YVx1NWVmN1x1NWYwNFx1NWYxZlx1''@;'; put 'put ''NWY2NFx1NWY2Mlx1NWY3N1x1NWY3OVx1NWZkOFx1NWZjY1x1NWZkN1x1NWZjZFx1NWZmMVx1NWZlYlx1NWZmOFx1NWZlYVx1NjIxMlx1NjIxMVx1NjI4NFx1NjI5N1x1NjI5Nlx1NjI4MFx1NjI3Nlx1NjI4OVx1NjI2ZFx1NjI4YVx1NjI3Y1x1NjI3ZVx1NjI3OVx1NjI3M1x1NjI5Mlx1NjI2''@;'; put 'put ''Zlx1NjI5OFx1NjI2ZVx1NjI5NVx1NjI5M1x1NjI5MVx1NjI4Nlx1NjUzOVx1NjUzYlx1NjUzOFx1NjVmMVx1NjZmNFx1Njc1Zlx1Njc0ZVx1Njc0Zlx1Njc1MFx1Njc1MVx1Njc1Y1x1Njc1Nlx1Njc1ZVx1Njc0OVx1Njc0Nlx1Njc2MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2N10u''@;'; put 'put ''bGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjddW0VdXT00Mjc1MitFLExbNDI3NTIrRV09QlsxNjddW0VdKTtmb3IoQlsxNjhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY3NTNcdTY3''@;'; put 'put ''NTdcdTZiNjVcdTZiY2ZcdTZjNDJcdTZjNWVcdTZjOTlcdTZjODFcdTZjODhcdTZjODlcdTZjODVcdTZjOWJcdTZjNmFcdTZjN2FcdTZjOTBcdTZjNzBcdTZjOGNcdTZjNjhcdTZjOTZcdTZjOTJcdTZjN2RcdTZjODNcdTZjNzJcdTZjN2VcdTZjNzRcdTZjODZcdTZjNzZcdTZjOGRcdTZjOTRc''@;'; put 'put ''dTZjOThcdTZjODJcdTcwNzZcdTcwN2NcdTcwN2RcdTcwNzhcdTcyNjJcdTcyNjFcdTcyNjBcdTcyYzRcdTcyYzJcdTczOTZcdTc1MmNcdTc1MmJcdTc1MzdcdTc1MzhcdTc2ODJcdTc2ZWZcdTc3ZTNcdTc5YzFcdTc5YzBcdTc5YmZcdTdhNzZcdTdjZmJcdTdmNTVcdTgwOTZcdTgwOTNcdTgw''@;'; put 'put ''OWRcdTgwOThcdTgwOWJcdTgwOWFcdTgwYjJcdTgyNmZcdTgyOTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgyOGJcdTgyOGRcdTg5OGJcdTg5ZDJcdThhMDBcdThjMzdcdThjNDZcdThjNTVcdThjOWRcdThkNjRcdThkNzBcdThkYjNcdThlYWJcdThlY2FcdThm''@;'; put 'put ''OWJcdThmYjBcdThmYzJcdThmYzZcdThmYzVcdThmYzRcdTVkZTFcdTkwOTFcdTkwYTJcdTkwYWFcdTkwYTZcdTkwYTNcdTkxNDlcdTkxYzZcdTkxY2NcdTk2MzJcdTk2MmVcdTk2MzFcdTk2MmFcdTk2MmNcdTRlMjZcdTRlNTZcdTRlNzNcdTRlOGJcdTRlOWJcdTRlOWVcdTRlYWJcdTRlYWNc''@;'; put 'put ''dTRmNmZcdTRmOWRcdTRmOGRcdTRmNzNcdTRmN2ZcdTRmNmNcdTRmOWJcdTRmOGJcdTRmODZcdTRmODNcdTRmNzBcdTRmNzVcdTRmODhcdTRmNjlcdTRmN2JcdTRmOTZcdTRmN2VcdTRmOGZcdTRmOTFcdTRmN2FcdTUxNTRcdTUxNTJcdTUxNTVcdTUxNjlcdTUxNzdcdTUxNzZcdTUxNzhcdTUx''@;'; put 'put ''YmRcdTUxZmRcdTUyM2JcdTUyMzhcdTUyMzdcdTUyM2FcdTUyMzBcdTUyMmVcdTUyMzZcdTUyNDFcdTUyYmVcdTUyYmJcdTUzNTJcdTUzNTRcdTUzNTNcdTUzNTFcdTUzNjZcdTUzNzdcdTUzNzhcdTUzNzlcdTUzZDZcdTUzZDRcdTUzZDdcdTU0NzNcdTU0NzVcdWZmZmQiLnNwbGl0KCIiKSxF''@;'; put 'put ''PTA7RSE9QlsxNjhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTY4XVtFXV09NDMwMDgrRSxMWzQzMDA4K0VdPUJbMTY4XVtFXSk7Zm9yKEJbMTY5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHU1NDk2XHU1NDc4XHU1NDk1XHU1NDgwXHU1NDdiXHU1NDc3XHU1NDg0XHU1NDkyXHU1NDg2XHU1NDdjXHU1NDkwXHU1NDcxXHU1NDc2XHU1NDhjXHU1NDlhXHU1NDYyXHU1NDY4XHU1NDhiXHU1NDdkXHU1NDhlXHU1NmZhXHU1NzgzXHU1Nzc3XHU1NzZhXHU1NzY5XHU1NzYxXHU1NzY2''@;'; put 'put ''XHU1NzY0XHU1NzdjXHU1OTFjXHU1OTQ5XHU1OTQ3XHU1OTQ4XHU1OTQ0XHU1OTU0XHU1OWJlXHU1OWJiXHU1OWQ0XHU1OWI5XHU1OWFlXHU1OWQxXHU1OWM2XHU1OWQwXHU1OWNkXHU1OWNiXHU1OWQzXHU1OWNhXHU1OWFmXHU1OWIzXHU1OWQyXHU1OWM1XHU1YjVmXHU1YjY0XHU1YjYzXHU1''@;'; put 'put ''Yjk3XHU1YjlhXHU1Yjk4XHU1YjljXHU1Yjk5XHU1YjliXHU1YzFhXHU1YzQ4XHU1YzQ1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YzQ2XHU1Y2I3XHU1Y2ExXHU1Y2I4XHU1Y2E5XHU1Y2FiXHU1Y2IxXHU1Y2IzXHU1ZTE4XHU1ZTFhXHU1ZTE2XHU1ZTE1XHU1''@;'; put 'put ''ZTFiXHU1ZTExXHU1ZTc4XHU1ZTlhXHU1ZTk3XHU1ZTljXHU1ZTk1XHU1ZTk2XHU1ZWY2XHU1ZjI2XHU1ZjI3XHU1ZjI5XHU1ZjgwXHU1ZjgxXHU1ZjdmXHU1ZjdjXHU1ZmRkXHU1ZmUwXHU1ZmZkXHU1ZmY1XHU1ZmZmXHU2MDBmXHU2MDE0XHU2MDJmXHU2MDM1XHU2MDE2XHU2MDJhXHU2MDE1''@;'; put 'put ''XHU2MDIxXHU2MDI3XHU2MDI5XHU2MDJiXHU2MDFiXHU2MjE2XHU2MjE1XHU2MjNmXHU2MjNlXHU2MjQwXHU2MjdmXHU2MmM5XHU2MmNjXHU2MmM0XHU2MmJmXHU2MmMyXHU2MmI5XHU2MmQyXHU2MmRiXHU2MmFiXHU2MmQzXHU2MmQ0XHU2MmNiXHU2MmM4XHU2MmE4XHU2MmJkXHU2MmJjXHU2''@;'; put 'put ''MmQwXHU2MmQ5XHU2MmM3XHU2MmNkXHU2MmI1XHU2MmRhXHU2MmIxXHU2MmQ4XHU2MmQ2XHU2MmQ3XHU2MmM2XHU2MmFjXHU2MmNlXHU2NTNlXHU2NWE3XHU2NWJjXHU2NWZhXHU2NjE0XHU2NjEzXHU2NjBjXHU2NjA2XHU2NjAyXHU2NjBlXHU2NjAwXHU2NjBmXHU2NjE1XHU2NjBhXHVmZmZk''@;'; put 'put ''Ii5zcGxpdCgiIiksRT0wO0UhPUJbMTY5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2OV1bRV1dPTQzMjY0K0UsTFs0MzI2NCtFXT1CWzE2OV1bRV0pO2ZvcihCWzE3MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1NjYwN1x1NjcwZFx1NjcwYlx1Njc2ZFx1Njc4Ylx1Njc5NVx1Njc3MVx1Njc5Y1x1Njc3M1x1Njc3N1x1Njc4N1x1Njc5ZFx1Njc5N1x1Njc2Zlx1Njc3MFx1Njc3Zlx1Njc4OVx1Njc3ZVx1Njc5MFx1Njc3NVx1Njc5YVx1Njc5M1x1Njc3Y1x1Njc2YVx1Njc3''@;'; put 'put ''Mlx1NmIyM1x1NmI2Nlx1NmI2N1x1NmI3Zlx1NmMxM1x1NmMxYlx1NmNlM1x1NmNlOFx1NmNmM1x1NmNiMVx1NmNjY1x1NmNlNVx1NmNiM1x1NmNiZFx1NmNiZVx1NmNiY1x1NmNlMlx1NmNhYlx1NmNkNVx1NmNkM1x1NmNiOFx1NmNjNFx1NmNiOVx1NmNjMVx1NmNhZVx1NmNkN1x1NmNjNVx1''@;'; put 'put ''NmNmMVx1NmNiZlx1NmNiYlx1NmNlMVx1NmNkYlx1NmNjYVx1NmNhY1x1NmNlZlx1NmNkY1x1NmNkNlx1NmNlMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzA5NVx1NzA4ZVx1NzA5Mlx1NzA4YVx1NzA5OVx1NzIyY1x1NzIyZFx1NzIzOFx1NzI0OFx1NzI2N1x1''@;'; put 'put ''NzI2OVx1NzJjMFx1NzJjZVx1NzJkOVx1NzJkN1x1NzJkMFx1NzNhOVx1NzNhOFx1NzM5Zlx1NzNhYlx1NzNhNVx1NzUzZFx1NzU5ZFx1NzU5OVx1NzU5YVx1NzY4NFx1NzZjMlx1NzZmMlx1NzZmNFx1NzdlNVx1NzdmZFx1NzkzZVx1Nzk0MFx1Nzk0MVx1NzljOVx1NzljOFx1N2E3YVx1N2E3''@;'; put 'put ''OVx1N2FmYVx1N2NmZVx1N2Y1NFx1N2Y4Y1x1N2Y4Ylx1ODAwNVx1ODBiYVx1ODBhNVx1ODBhMlx1ODBiMVx1ODBhMVx1ODBhYlx1ODBhOVx1ODBiNFx1ODBhYVx1ODBhZlx1ODFlNVx1ODFmZVx1ODIwZFx1ODJiM1x1ODI5ZFx1ODI5OVx1ODJhZFx1ODJiZFx1ODI5Zlx1ODJiOVx1ODJiMVx1''@;'; put 'put ''ODJhY1x1ODJhNVx1ODJhZlx1ODJiOFx1ODJhM1x1ODJiMFx1ODJiZVx1ODJiN1x1ODY0ZVx1ODY3MVx1NTIxZFx1ODg2OFx1OGVjYlx1OGZjZVx1OGZkNFx1OGZkMVx1OTBiNVx1OTBiOFx1OTBiMVx1OTBiNlx1OTFjN1x1OTFkMVx1OTU3N1x1OTU4MFx1OTYxY1x1OTY0MFx1OTYzZlx1OTYz''@;'; put 'put ''Ylx1OTY0NFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTcwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzBdW0VdXT00MzUyMCtFLExbNDM1MjArRV09QlsxNzBdW0VdKTtmb3IoQlsxNzFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk2NDJcdTk2YjlcdTk2ZThcdTk3NTJcdTk3NWVcdTRlOWZcdTRlYWRcdTRlYWVcdTRmZTFcdTRmYjVcdTRmYWZcdTRmYmZcdTRmZTBcdTRmZDFcdTRmY2ZcdTRmZGRcdTRmYzNcdTRmYjZcdTRmZDhcdTRmZGZcdTRmY2FcdTRmZDdcdTRm''@;'; put 'put ''YWVcdTRmZDBcdTRmYzRcdTRmYzJcdTRmZGFcdTRmY2VcdTRmZGVcdTRmYjdcdTUxNTdcdTUxOTJcdTUxOTFcdTUxYTBcdTUyNGVcdTUyNDNcdTUyNGFcdTUyNGRcdTUyNGNcdTUyNGJcdTUyNDdcdTUyYzdcdTUyYzlcdTUyYzNcdTUyYzFcdTUzMGRcdTUzNTdcdTUzN2JcdTUzOWFcdTUzZGJc''@;'; put 'put ''dTU0YWNcdTU0YzBcdTU0YThcdTU0Y2VcdTU0YzlcdTU0YjhcdTU0YTZcdTU0YjNcdTU0YzdcdTU0YzJcdTU0YmRcdTU0YWFcdTU0YzFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0YzRcdTU0YzhcdTU0YWZcdTU0YWJcdTU0YjFcdTU0YmJcdTU0YTlcdTU0YTdc''@;'; put 'put ''dTU0YmZcdTU2ZmZcdTU3ODJcdTU3OGJcdTU3YTBcdTU3YTNcdTU3YTJcdTU3Y2VcdTU3YWVcdTU3OTNcdTU5NTVcdTU5NTFcdTU5NGZcdTU5NGVcdTU5NTBcdTU5ZGNcdTU5ZDhcdTU5ZmZcdTU5ZTNcdTU5ZThcdTVhMDNcdTU5ZTVcdTU5ZWFcdTU5ZGFcdTU5ZTZcdTVhMDFcdTU5ZmJcdTVi''@;'; put 'put ''NjlcdTViYTNcdTViYTZcdTViYTRcdTViYTJcdTViYTVcdTVjMDFcdTVjNGVcdTVjNGZcdTVjNGRcdTVjNGJcdTVjZDlcdTVjZDJcdTVkZjdcdTVlMWRcdTVlMjVcdTVlMWZcdTVlN2RcdTVlYTBcdTVlYTZcdTVlZmFcdTVmMDhcdTVmMmRcdTVmNjVcdTVmODhcdTVmODVcdTVmOGFcdTVmOGJc''@;'; put 'put ''dTVmODdcdTVmOGNcdTVmODlcdTYwMTJcdTYwMWRcdTYwMjBcdTYwMjVcdTYwMGVcdTYwMjhcdTYwNGRcdTYwNzBcdTYwNjhcdTYwNjJcdTYwNDZcdTYwNDNcdTYwNmNcdTYwNmJcdTYwNmFcdTYwNjRcdTYyNDFcdTYyZGNcdTYzMTZcdTYzMDlcdTYyZmNcdTYyZWRcdTYzMDFcdTYyZWVcdTYy''@;'; put 'put ''ZmRcdTYzMDdcdTYyZjFcdTYyZjdcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTcxXVtFXV09NDM3NzYrRSxMWzQzNzc2K0VdPUJbMTcxXVtFXSk7Zm9yKEJbMTcyXT0iXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MmVmXHU2MmVjXHU2MmZlXHU2MmY0XHU2MzExXHU2MzAyXHU2NTNmXHU2NTQ1XHU2NWFiXHU2NWJkXHU2NWUyXHU2NjI1XHU2NjJkXHU2NjIwXHU2NjI3XHU2NjJmXHU2NjFmXHU2NjI4XHU2NjMxXHU2NjI0XHU2''@;'; put 'put ''NmY3XHU2N2ZmXHU2N2QzXHU2N2YxXHU2N2Q0XHU2N2QwXHU2N2VjXHU2N2I2XHU2N2FmXHU2N2Y1XHU2N2U5XHU2N2VmXHU2N2M0XHU2N2QxXHU2N2I0XHU2N2RhXHU2N2U1XHU2N2I4XHU2N2NmXHU2N2RlXHU2N2YzXHU2N2IwXHU2N2Q5XHU2N2UyXHU2N2RkXHU2N2QyXHU2YjZhXHU2Yjgz''@;'; put 'put ''XHU2Yjg2XHU2YmI1XHU2YmQyXHU2YmQ3XHU2YzFmXHU2Y2M5XHU2ZDBiXHU2ZDMyXHU2ZDJhXHU2ZDQxXHU2ZDI1XHU2ZDBjXHU2ZDMxXHU2ZDFlXHU2ZDE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDNiXHU2ZDNkXHU2ZDNlXHU2ZDM2XHU2ZDFiXHU2Y2Y1''@;'; put 'put ''XHU2ZDM5XHU2ZDI3XHU2ZDM4XHU2ZDI5XHU2ZDJlXHU2ZDM1XHU2ZDBlXHU2ZDJiXHU3MGFiXHU3MGJhXHU3MGIzXHU3MGFjXHU3MGFmXHU3MGFkXHU3MGI4XHU3MGFlXHU3MGE0XHU3MjMwXHU3MjcyXHU3MjZmXHU3Mjc0XHU3MmU5XHU3MmUwXHU3MmUxXHU3M2I3XHU3M2NhXHU3M2JiXHU3''@;'; put 'put ''M2IyXHU3M2NkXHU3M2MwXHU3M2IzXHU3NTFhXHU3NTJkXHU3NTRmXHU3NTRjXHU3NTRlXHU3NTRiXHU3NWFiXHU3NWE0XHU3NWE1XHU3NWEyXHU3NWEzXHU3Njc4XHU3Njg2XHU3Njg3XHU3Njg4XHU3NmM4XHU3NmM2XHU3NmMzXHU3NmM1XHU3NzAxXHU3NmY5XHU3NmY4XHU3NzA5XHU3NzBi''@;'; put 'put ''XHU3NmZlXHU3NmZjXHU3NzA3XHU3N2RjXHU3ODAyXHU3ODE0XHU3ODBjXHU3ODBkXHU3OTQ2XHU3OTQ5XHU3OTQ4XHU3OTQ3XHU3OWI5XHU3OWJhXHU3OWQxXHU3OWQyXHU3OWNiXHU3YTdmXHU3YTgxXHU3YWZmXHU3YWZkXHU3YzdkXHU3ZDAyXHU3ZDA1XHU3ZDAwXHU3ZDA5XHU3ZDA3XHU3''@;'; put 'put ''ZDA0XHU3ZDA2XHU3ZjM4XHU3ZjhlXHU3ZmJmXHU4MDA0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTcyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3Ml1bRV1dPTQ0MDMyK0UsTFs0NDAzMitFXT1CWzE3Ml1bRV0pO2ZvcihCWzE3M109''@;'; put 'put ''Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODAxMFx1ODAwZFx1ODAxMVx1ODAzNlx1ODBkNlx1ODBlNVx1ODBkYVx1ODBjM1x1ODBjNFx1ODBjY1x1ODBlMVx1ODBkYlx1ODBjZVx1ODBkZVx1ODBlNFx1ODBkZFx1ODFmNFx1ODIyMlx1''@;'; put 'put ''ODJlN1x1ODMwM1x1ODMwNVx1ODJlM1x1ODJkYlx1ODJlNlx1ODMwNFx1ODJlNVx1ODMwMlx1ODMwOVx1ODJkMlx1ODJkN1x1ODJmMVx1ODMwMVx1ODJkY1x1ODJkNFx1ODJkMVx1ODJkZVx1ODJkM1x1ODJkZlx1ODJlZlx1ODMwNlx1ODY1MFx1ODY3OVx1ODY3Ylx1ODY3YVx1ODg0ZFx1ODg2''@;'; put 'put ''Ylx1ODk4MVx1ODlkNFx1OGEwOFx1OGEwMlx1OGEwM1x1OGM5ZVx1OGNhMFx1OGQ3NFx1OGQ3M1x1OGRiNFx1OGVjZFx1OGVjY1x1OGZmMFx1OGZlNlx1OGZlMlx1OGZlYVx1OGZlNVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGZlZFx1OGZlYlx1OGZlNFx1OGZl''@;'; put 'put ''OFx1OTBjYVx1OTBjZVx1OTBjMVx1OTBjM1x1OTE0Ylx1OTE0YVx1OTFjZFx1OTU4Mlx1OTY1MFx1OTY0Ylx1OTY0Y1x1OTY0ZFx1OTc2Mlx1OTc2OVx1OTdjYlx1OTdlZFx1OTdmM1x1OTgwMVx1OThhOFx1OThkYlx1OThkZlx1OTk5Nlx1OTk5OVx1NGU1OFx1NGViM1x1NTAwY1x1NTAwZFx1''@;'; put 'put ''NTAyM1x1NGZlZlx1NTAyNlx1NTAyNVx1NGZmOFx1NTAyOVx1NTAxNlx1NTAwNlx1NTAzY1x1NTAxZlx1NTAxYVx1NTAxMlx1NTAxMVx1NGZmYVx1NTAwMFx1NTAxNFx1NTAyOFx1NGZmMVx1NTAyMVx1NTAwYlx1NTAxOVx1NTAxOFx1NGZmM1x1NGZlZVx1NTAyZFx1NTAyYVx1NGZmZVx1NTAy''@;'; put 'put ''Ylx1NTAwOVx1NTE3Y1x1NTFhNFx1NTFhNVx1NTFhMlx1NTFjZFx1NTFjY1x1NTFjNlx1NTFjYlx1NTI1Nlx1NTI1Y1x1NTI1NFx1NTI1Ylx1NTI1ZFx1NTMyYVx1NTM3Zlx1NTM5Zlx1NTM5ZFx1NTNkZlx1NTRlOFx1NTUxMFx1NTUwMVx1NTUzN1x1NTRmY1x1NTRlNVx1NTRmMlx1NTUwNlx1''@;'; put 'put ''NTRmYVx1NTUxNFx1NTRlOVx1NTRlZFx1NTRlMVx1NTUwOVx1NTRlZVx1NTRlYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTczXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzNdW0VdXT00NDI4OCtFLExbNDQyODgrRV09QlsxNzNdW0Vd''@;'; put 'put ''KTtmb3IoQlsxNzRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0ZTZcdTU1MjdcdTU1MDdcdTU0ZmRcdTU1MGZcdTU3MDNcdTU3MDRcdTU3YzJcdTU3ZDRcdTU3Y2JcdTU3YzNcdTU4MDlcdTU5MGZcdTU5NTdcdTU5NThcdTU5NWFc''@;'; put 'put ''dTVhMTFcdTVhMThcdTVhMWNcdTVhMWZcdTVhMWJcdTVhMTNcdTU5ZWNcdTVhMjBcdTVhMjNcdTVhMjlcdTVhMjVcdTVhMGNcdTVhMDlcdTViNmJcdTVjNThcdTViYjBcdTViYjNcdTViYjZcdTViYjRcdTViYWVcdTViYjVcdTViYjlcdTViYjhcdTVjMDRcdTVjNTFcdTVjNTVcdTVjNTBcdTVj''@;'; put 'put ''ZWRcdTVjZmRcdTVjZmJcdTVjZWFcdTVjZThcdTVjZjBcdTVjZjZcdTVkMDFcdTVjZjRcdTVkZWVcdTVlMmRcdTVlMmJcdTVlYWJcdTVlYWRcdTVlYTdcdTVmMzFcdTVmOTJcdTVmOTFcdTVmOTBcdTYwNTlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNjNcdTYw''@;'; put 'put ''NjVcdTYwNTBcdTYwNTVcdTYwNmRcdTYwNjlcdTYwNmZcdTYwODRcdTYwOWZcdTYwOWFcdTYwOGRcdTYwOTRcdTYwOGNcdTYwODVcdTYwOTZcdTYyNDdcdTYyZjNcdTYzMDhcdTYyZmZcdTYzNGVcdTYzM2VcdTYzMmZcdTYzNTVcdTYzNDJcdTYzNDZcdTYzNGZcdTYzNDlcdTYzM2FcdTYzNTBc''@;'; put 'put ''dTYzM2RcdTYzMmFcdTYzMmJcdTYzMjhcdTYzNGRcdTYzNGNcdTY1NDhcdTY1NDlcdTY1OTlcdTY1YzFcdTY1YzVcdTY2NDJcdTY2NDlcdTY2NGZcdTY2NDNcdTY2NTJcdTY2NGNcdTY2NDVcdTY2NDFcdTY2ZjhcdTY3MTRcdTY3MTVcdTY3MTdcdTY4MjFcdTY4MzhcdTY4NDhcdTY4NDZcdTY4''@;'; put 'put ''NTNcdTY4MzlcdTY4NDJcdTY4NTRcdTY4MjlcdTY4YjNcdTY4MTdcdTY4NGNcdTY4NTFcdTY4M2RcdTY3ZjRcdTY4NTBcdTY4NDBcdTY4M2NcdTY4NDNcdTY4MmFcdTY4NDVcdTY4MTNcdTY4MThcdTY4NDFcdTZiOGFcdTZiODlcdTZiYjdcdTZjMjNcdTZjMjdcdTZjMjhcdTZjMjZcdTZjMjRc''@;'; put 'put ''dTZjZjBcdTZkNmFcdTZkOTVcdTZkODhcdTZkODdcdTZkNjZcdTZkNzhcdTZkNzdcdTZkNTlcdTZkOTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc0XVtFXV09NDQ1NDQrRSxMWzQ0NTQ0''@;'; put 'put ''K0VdPUJbMTc0XVtFXSk7Zm9yKEJbMTc1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDZjXHU2ZDg5XHU2ZDZlXHU2ZDVhXHU2ZDc0XHU2ZDY5XHU2ZDhjXHU2ZDhhXHU2ZDc5XHU2ZDg1XHU2ZDY1XHU2ZDk0XHU3MGNhXHU3MGQ4''@;'; put 'put ''XHU3MGU0XHU3MGQ5XHU3MGM4XHU3MGNmXHU3MjM5XHU3Mjc5XHU3MmZjXHU3MmY5XHU3MmZkXHU3MmY4XHU3MmY3XHU3Mzg2XHU3M2VkXHU3NDA5XHU3M2VlXHU3M2UwXHU3M2VhXHU3M2RlXHU3NTU0XHU3NTVkXHU3NTVjXHU3NTVhXHU3NTU5XHU3NWJlXHU3NWM1XHU3NWM3XHU3NWIyXHU3''@;'; put 'put ''NWIzXHU3NWJkXHU3NWJjXHU3NWI5XHU3NWMyXHU3NWI4XHU3NjhiXHU3NmIwXHU3NmNhXHU3NmNkXHU3NmNlXHU3NzI5XHU3NzFmXHU3NzIwXHU3NzI4XHU3N2U5XHU3ODMwXHU3ODI3XHU3ODM4XHU3ODFkXHU3ODM0XHU3ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHU3ODI1XHU3ODJkXHU3ODIwXHU3ODFmXHU3ODMyXHU3OTU1XHU3OTUwXHU3OTYwXHU3OTVmXHU3OTU2XHU3OTVlXHU3OTVkXHU3OTU3XHU3OTVhXHU3OWU0XHU3OWUzXHU3OWU3XHU3OWRmXHU3OWU2XHU3OWU5XHU3OWQ4XHU3YTg0XHU3YTg4XHU3YWQ5XHU3YjA2XHU3YjExXHU3Yzg5''@;'; put 'put ''XHU3ZDIxXHU3ZDE3XHU3ZDBiXHU3ZDBhXHU3ZDIwXHU3ZDIyXHU3ZDE0XHU3ZDEwXHU3ZDE1XHU3ZDFhXHU3ZDFjXHU3ZDBkXHU3ZDE5XHU3ZDFiXHU3ZjNhXHU3ZjVmXHU3Zjk0XHU3ZmM1XHU3ZmMxXHU4MDA2XHU4MDE4XHU4MDE1XHU4MDE5XHU4MDE3XHU4MDNkXHU4MDNmXHU4MGYxXHU4''@;'; put 'put ''MTAyXHU4MGYwXHU4MTA1XHU4MGVkXHU4MGY0XHU4MTA2XHU4MGY4XHU4MGYzXHU4MTA4XHU4MGZkXHU4MTBhXHU4MGZjXHU4MGVmXHU4MWVkXHU4MWVjXHU4MjAwXHU4MjEwXHU4MjJhXHU4MjJiXHU4MjI4XHU4MjJjXHU4MmJiXHU4MzJiXHU4MzUyXHU4MzU0XHU4MzRhXHU4MzM4XHU4MzUw''@;'; put 'put ''XHU4MzQ5XHU4MzM1XHU4MzM0XHU4MzRmXHU4MzMyXHU4MzM5XHU4MzM2XHU4MzE3XHU4MzQwXHU4MzMxXHU4MzI4XHU4MzQzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3NV1bRV1dPTQ0''@;'; put 'put ''ODAwK0UsTFs0NDgwMCtFXT1CWzE3NV1bRV0pO2ZvcihCWzE3Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODY1NFx1ODY4YVx1ODZhYVx1ODY5M1x1ODZhNFx1ODZhOVx1ODY4Y1x1ODZhM1x1ODY5Y1x1ODg3MFx1ODg3N1x1ODg4''@;'; put 'put ''MVx1ODg4Mlx1ODg3ZFx1ODg3OVx1OGExOFx1OGExMFx1OGEwZVx1OGEwY1x1OGExNVx1OGEwYVx1OGExN1x1OGExM1x1OGExNlx1OGEwZlx1OGExMVx1OGM0OFx1OGM3YVx1OGM3OVx1OGNhMVx1OGNhMlx1OGQ3N1x1OGVhY1x1OGVkMlx1OGVkNFx1OGVjZlx1OGZiMVx1OTAwMVx1OTAwNlx1''@;'; put 'put ''OGZmN1x1OTAwMFx1OGZmYVx1OGZmNFx1OTAwM1x1OGZmZFx1OTAwNVx1OGZmOFx1OTA5NVx1OTBlMVx1OTBkZFx1OTBlMlx1OTE1Mlx1OTE0ZFx1OTE0Y1x1OTFkOFx1OTFkZFx1OTFkN1x1OTFkY1x1OTFkOVx1OTU4M1x1OTY2Mlx1OTY2M1x1OTY2MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY1Ylx1OTY1ZFx1OTY2NFx1OTY1OFx1OTY1ZVx1OTZiYlx1OThlMlx1OTlhY1x1OWFhOFx1OWFkOFx1OWIyNVx1OWIzMlx1OWIzY1x1NGU3ZVx1NTA3YVx1NTA3ZFx1NTA1Y1x1NTA0N1x1NTA0M1x1NTA0Y1x1NTA1YVx1NTA0OVx1NTA2NVx1NTA3Nlx1NTA0''@;'; put 'put ''ZVx1NTA1NVx1NTA3NVx1NTA3NFx1NTA3N1x1NTA0Zlx1NTAwZlx1NTA2Zlx1NTA2ZFx1NTE1Y1x1NTE5NVx1NTFmMFx1NTI2YVx1NTI2Zlx1NTJkMlx1NTJkOVx1NTJkOFx1NTJkNVx1NTMxMFx1NTMwZlx1NTMxOVx1NTMzZlx1NTM0MFx1NTMzZVx1NTNjM1x1NjZmY1x1NTU0Nlx1NTU2YVx1''@;'; put 'put ''NTU2Nlx1NTU0NFx1NTU1ZVx1NTU2MVx1NTU0M1x1NTU0YVx1NTUzMVx1NTU1Nlx1NTU0Zlx1NTU1NVx1NTUyZlx1NTU2NFx1NTUzOFx1NTUyZVx1NTU1Y1x1NTUyY1x1NTU2M1x1NTUzM1x1NTU0MVx1NTU1N1x1NTcwOFx1NTcwYlx1NTcwOVx1NTdkZlx1NTgwNVx1NTgwYVx1NTgwNlx1NTdl''@;'; put 'put ''MFx1NTdlNFx1NTdmYVx1NTgwMlx1NTgzNVx1NTdmN1x1NTdmOVx1NTkyMFx1NTk2Mlx1NWEzNlx1NWE0MVx1NWE0OVx1NWE2Nlx1NWE2YVx1NWE0MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTc2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVb''@;'; put 'put ''QlsxNzZdW0VdXT00NTA1NitFLExbNDUwNTYrRV09QlsxNzZdW0VdKTtmb3IoQlsxNzddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhM2NcdTVhNjJcdTVhNWFcdTVhNDZcdTVhNGFcdTViNzBcdTViYzdcdTViYzVcdTViYzRcdTVi''@;'; put 'put ''YzJcdTViYmZcdTViYzZcdTVjMDlcdTVjMDhcdTVjMDdcdTVjNjBcdTVjNWNcdTVjNWRcdTVkMDdcdTVkMDZcdTVkMGVcdTVkMWJcdTVkMTZcdTVkMjJcdTVkMTFcdTVkMjlcdTVkMTRcdTVkMTlcdTVkMjRcdTVkMjdcdTVkMTdcdTVkZTJcdTVlMzhcdTVlMzZcdTVlMzNcdTVlMzdcdTVlYjdc''@;'; put 'put ''dTVlYjhcdTVlYjZcdTVlYjVcdTVlYmVcdTVmMzVcdTVmMzdcdTVmNTdcdTVmNmNcdTVmNjlcdTVmNmJcdTVmOTdcdTVmOTlcdTVmOWVcdTVmOThcdTVmYTFcdTVmYTBcdTVmOWNcdTYwN2ZcdTYwYTNcdTYwODlcdTYwYTBcdTYwYThcdTYwY2JcdTYwYjRcdTYwZTZcdTYwYmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwYzVcdTYwYmJcdTYwYjVcdTYwZGNcdTYwYmNcdTYwZDhcdTYwZDVcdTYwYzZcdTYwZGZcdTYwYjhcdTYwZGFcdTYwYzdcdTYyMWFcdTYyMWJcdTYyNDhcdTYzYTBcdTYzYTdcdTYzNzJcdTYzOTZcdTYzYTJcdTYzYTVcdTYzNzdcdTYz''@;'; put 'put ''NjdcdTYzOThcdTYzYWFcdTYzNzFcdTYzYTlcdTYzODlcdTYzODNcdTYzOWJcdTYzNmJcdTYzYThcdTYzODRcdTYzODhcdTYzOTlcdTYzYTFcdTYzYWNcdTYzOTJcdTYzOGZcdTYzODBcdTYzN2JcdTYzNjlcdTYzNjhcdTYzN2FcdTY1NWRcdTY1NTZcdTY1NTFcdTY1NTlcdTY1NTdcdTU1NWZc''@;'; put 'put ''dTY1NGZcdTY1NThcdTY1NTVcdTY1NTRcdTY1OWNcdTY1OWJcdTY1YWNcdTY1Y2ZcdTY1Y2JcdTY1Y2NcdTY1Y2VcdTY2NWRcdTY2NWFcdTY2NjRcdTY2NjhcdTY2NjZcdTY2NWVcdTY2ZjlcdTUyZDdcdTY3MWJcdTY4ODFcdTY4YWZcdTY4YTJcdTY4OTNcdTY4YjVcdTY4N2ZcdTY4NzZcdTY4''@;'; put 'put ''YjFcdTY4YTdcdTY4OTdcdTY4YjBcdTY4ODNcdTY4YzRcdTY4YWRcdTY4ODZcdTY4ODVcdTY4OTRcdTY4OWRcdTY4YThcdTY4OWZcdTY4YTFcdTY4ODJcdTZiMzJcdTZiYmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNzddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3N11bRV0uY2hhckNv''@;'; put 'put ''ZGVBdCgwKSYmKG1lW0JbMTc3XVtFXV09NDUzMTIrRSxMWzQ1MzEyK0VdPUJbMTc3XVtFXSk7Zm9yKEJbMTc4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YmViXHU2YmVjXHU2YzJiXHU2ZDhlXHU2ZGJjXHU2ZGYzXHU2ZGQ5XHU2''@;'; put 'put ''ZGIyXHU2ZGUxXHU2ZGNjXHU2ZGU0XHU2ZGZiXHU2ZGZhXHU2ZTA1XHU2ZGM3XHU2ZGNiXHU2ZGFmXHU2ZGQxXHU2ZGFlXHU2ZGRlXHU2ZGY5XHU2ZGI4XHU2ZGY3XHU2ZGY1XHU2ZGM1XHU2ZGQyXHU2ZTFhXHU2ZGI1XHU2ZGRhXHU2ZGViXHU2ZGQ4XHU2ZGVhXHU2ZGYxXHU2ZGVlXHU2ZGU4''@;'; put 'put ''XHU2ZGM2XHU2ZGM0XHU2ZGFhXHU2ZGVjXHU2ZGJmXHU2ZGU2XHU3MGY5XHU3MTA5XHU3MTBhXHU3MGZkXHU3MGVmXHU3MjNkXHU3MjdkXHU3MjgxXHU3MzFjXHU3MzFiXHU3MzE2XHU3MzEzXHU3MzE5XHU3Mzg3XHU3NDA1XHU3NDBhXHU3NDAzXHU3NDA2XHU3M2ZlXHU3NDBkXHU3NGUwXHU3''@;'; put 'put ''NGY2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGY3XHU3NTFjXHU3NTIyXHU3NTY1XHU3NTY2XHU3NTYyXHU3NTcwXHU3NThmXHU3NWQ0XHU3NWQ1XHU3NWI1XHU3NWNhXHU3NWNkXHU3NjhlXHU3NmQ0XHU3NmQyXHU3NmRiXHU3NzM3XHU3NzNlXHU3NzNjXHU3''@;'; put 'put ''NzM2XHU3NzM4XHU3NzNhXHU3ODZiXHU3ODQzXHU3ODRlXHU3OTY1XHU3OTY4XHU3OTZkXHU3OWZiXHU3YTkyXHU3YTk1XHU3YjIwXHU3YjI4XHU3YjFiXHU3YjJjXHU3YjI2XHU3YjE5XHU3YjFlXHU3YjJlXHU3YzkyXHU3Yzk3XHU3Yzk1XHU3ZDQ2XHU3ZDQzXHU3ZDcxXHU3ZDJlXHU3ZDM5''@;'; put 'put ''XHU3ZDNjXHU3ZDQwXHU3ZDMwXHU3ZDMzXHU3ZDQ0XHU3ZDJmXHU3ZDQyXHU3ZDMyXHU3ZDMxXHU3ZjNkXHU3ZjllXHU3ZjlhXHU3ZmNjXHU3ZmNlXHU3ZmQyXHU4MDFjXHU4MDRhXHU4MDQ2XHU4MTJmXHU4MTE2XHU4MTIzXHU4MTJiXHU4MTI5XHU4MTMwXHU4MTI0XHU4MjAyXHU4MjM1XHU4''@;'; put 'put ''MjM3XHU4MjM2XHU4MjM5XHU4MzhlXHU4MzllXHU4Mzk4XHU4Mzc4XHU4M2EyXHU4Mzk2XHU4M2JkXHU4M2FiXHU4MzkyXHU4MzhhXHU4MzkzXHU4Mzg5XHU4M2EwXHU4Mzc3XHU4MzdiXHU4MzdjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc4XS5sZW5ndGg7KytFKTY1NTMzIT09Qlsx''@;'; put 'put ''NzhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3OF1bRV1dPTQ1NTY4K0UsTFs0NTU2OCtFXT1CWzE3OF1bRV0pO2ZvcihCWzE3OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM4Nlx1ODNhN1x1ODY1NVx1NWY2YVx1ODZjN1x1''@;'; put 'put ''ODZjMFx1ODZiNlx1ODZjNFx1ODZiNVx1ODZjNlx1ODZjYlx1ODZiMVx1ODZhZlx1ODZjOVx1ODg1M1x1ODg5ZVx1ODg4OFx1ODhhYlx1ODg5Mlx1ODg5Nlx1ODg4ZFx1ODg4Ylx1ODk5M1x1ODk4Zlx1OGEyYVx1OGExZFx1OGEyM1x1OGEyNVx1OGEzMVx1OGEyZFx1OGExZlx1OGExYlx1OGEy''@;'; put 'put ''Mlx1OGM0OVx1OGM1YVx1OGNhOVx1OGNhY1x1OGNhYlx1OGNhOFx1OGNhYVx1OGNhN1x1OGQ2N1x1OGQ2Nlx1OGRiZVx1OGRiYVx1OGVkYlx1OGVkZlx1OTAxOVx1OTAwZFx1OTAxYVx1OTAxN1x1OTAyM1x1OTAxZlx1OTAxZFx1OTAxMFx1OTAxNVx1OTAxZVx1OTAyMFx1OTAwZlx1OTAyMlx1''@;'; put 'put ''OTAxNlx1OTAxYlx1OTAxNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTBlOFx1OTBlZFx1OTBmZFx1OTE1N1x1OTFjZVx1OTFmNVx1OTFlNlx1OTFlM1x1OTFlN1x1OTFlZFx1OTFlOVx1OTU4OVx1OTY2YVx1OTY3NVx1OTY3M1x1OTY3OFx1OTY3MFx1OTY3NFx1''@;'; put 'put ''OTY3Nlx1OTY3N1x1OTY2Y1x1OTZjMFx1OTZlYVx1OTZlOVx1N2FlMFx1N2FkZlx1OTgwMlx1OTgwM1x1OWI1YVx1OWNlNVx1OWU3NVx1OWU3Zlx1OWVhNVx1OWViYlx1NTBhMlx1NTA4ZFx1NTA4NVx1NTA5OVx1NTA5MVx1NTA4MFx1NTA5Nlx1NTA5OFx1NTA5YVx1NjcwMFx1NTFmMVx1NTI3''@;'; put 'put ''Mlx1NTI3NFx1NTI3NVx1NTI2OVx1NTJkZVx1NTJkZFx1NTJkYlx1NTM1YVx1NTNhNVx1NTU3Ylx1NTU4MFx1NTVhN1x1NTU3Y1x1NTU4YVx1NTU5ZFx1NTU5OFx1NTU4Mlx1NTU5Y1x1NTVhYVx1NTU5NFx1NTU4N1x1NTU4Ylx1NTU4M1x1NTViM1x1NTVhZVx1NTU5Zlx1NTUzZVx1NTViMlx1''@;'; put 'put ''NTU5YVx1NTViYlx1NTVhY1x1NTViMVx1NTU3ZVx1NTU4OVx1NTVhYlx1NTU5OVx1NTcwZFx1NTgyZlx1NTgyYVx1NTgzNFx1NTgyNFx1NTgzMFx1NTgzMVx1NTgyMVx1NTgxZFx1NTgyMFx1NThmOVx1NThmYVx1NTk2MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3OV0ubGVuZ3RoOysr''@;'; put 'put ''RSk2NTUzMyE9PUJbMTc5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzldW0VdXT00NTgyNCtFLExbNDU4MjQrRV09QlsxNzldW0VdKTtmb3IoQlsxODBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhNzdcdTVhOWFcdTVhN2Zc''@;'; put 'put ''dTVhOTJcdTVhOWJcdTVhYTdcdTViNzNcdTViNzFcdTViZDJcdTViY2NcdTViZDNcdTViZDBcdTVjMGFcdTVjMGJcdTVjMzFcdTVkNGNcdTVkNTBcdTVkMzRcdTVkNDdcdTVkZmRcdTVlNDVcdTVlM2RcdTVlNDBcdTVlNDNcdTVlN2VcdTVlY2FcdTVlYzFcdTVlYzJcdTVlYzRcdTVmM2NcdTVm''@;'; put 'put ''NmRcdTVmYTlcdTVmYWFcdTVmYThcdTYwZDFcdTYwZTFcdTYwYjJcdTYwYjZcdTYwZTBcdTYxMWNcdTYxMjNcdTYwZmFcdTYxMTVcdTYwZjBcdTYwZmJcdTYwZjRcdTYxNjhcdTYwZjFcdTYxMGVcdTYwZjZcdTYxMDlcdTYxMDBcdTYxMTJcdTYyMWZcdTYyNDlcdTYzYTNcdTYzOGNcdTYzY2Zc''@;'; put 'put ''dTYzYzBcdTYzZTlcdTYzYzlcdTYzYzZcdTYzY2RcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYzZDJcdTYzZTNcdTYzZDBcdTYzZTFcdTYzZDZcdTYzZWRcdTYzZWVcdTYzNzZcdTYzZjRcdTYzZWFcdTYzZGJcdTY0NTJcdTYzZGFcdTYzZjlcdTY1NWVcdTY1NjZc''@;'; put 'put ''dTY1NjJcdTY1NjNcdTY1OTFcdTY1OTBcdTY1YWZcdTY2NmVcdTY2NzBcdTY2NzRcdTY2NzZcdTY2NmZcdTY2OTFcdTY2N2FcdTY2N2VcdTY2NzdcdTY2ZmVcdTY2ZmZcdTY3MWZcdTY3MWRcdTY4ZmFcdTY4ZDVcdTY4ZTBcdTY4ZDhcdTY4ZDdcdTY5MDVcdTY4ZGZcdTY4ZjVcdTY4ZWVcdTY4''@;'; put 'put ''ZTdcdTY4ZjlcdTY4ZDJcdTY4ZjJcdTY4ZTNcdTY4Y2JcdTY4Y2RcdTY5MGRcdTY5MTJcdTY5MGVcdTY4YzlcdTY4ZGFcdTY5NmVcdTY4ZmJcdTZiM2VcdTZiM2FcdTZiM2RcdTZiOThcdTZiOTZcdTZiYmNcdTZiZWZcdTZjMmVcdTZjMmZcdTZjMmNcdTZlMmZcdTZlMzhcdTZlNTRcdTZlMjFc''@;'; put 'put ''dTZlMzJcdTZlNjdcdTZlNGFcdTZlMjBcdTZlMjVcdTZlMjNcdTZlMWJcdTZlNWJcdTZlNThcdTZlMjRcdTZlNTZcdTZlNmVcdTZlMmRcdTZlMjZcdTZlNmZcdTZlMzRcdTZlNGRcdTZlM2FcdTZlMmNcdTZlNDNcdTZlMWRcdTZlM2VcdTZlY2JcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9Qlsx''@;'; put 'put ''ODBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgwXVtFXV09NDYwODArRSxMWzQ2MDgwK0VdPUJbMTgwXVtFXSk7Zm9yKEJbMTgxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZTg5''@;'; put 'put ''XHU2ZTE5XHU2ZTRlXHU2ZTYzXHU2ZTQ0XHU2ZTcyXHU2ZTY5XHU2ZTVmXHU3MTE5XHU3MTFhXHU3MTI2XHU3MTMwXHU3MTIxXHU3MTM2XHU3MTZlXHU3MTFjXHU3MjRjXHU3Mjg0XHU3MjgwXHU3MzM2XHU3MzI1XHU3MzM0XHU3MzI5XHU3NDNhXHU3NDJhXHU3NDMzXHU3NDIyXHU3NDI1XHU3''@;'; put 'put ''NDM1XHU3NDM2XHU3NDM0XHU3NDJmXHU3NDFiXHU3NDI2XHU3NDI4XHU3NTI1XHU3NTI2XHU3NTZiXHU3NTZhXHU3NWUyXHU3NWRiXHU3NWUzXHU3NWQ5XHU3NWQ4XHU3NWRlXHU3NWUwXHU3NjdiXHU3NjdjXHU3Njk2XHU3NjkzXHU3NmI0XHU3NmRjXHU3NzRmXHU3N2VkXHU3ODVkXHU3ODZj''@;'; put 'put ''XHU3ODZmXHU3YTBkXHU3YTA4XHU3YTBiXHU3YTA1XHU3YTAwXHU3YTk4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3YTk3XHU3YTk2XHU3YWU1XHU3YWUzXHU3YjQ5XHU3YjU2XHU3YjQ2XHU3YjUwXHU3YjUyXHU3YjU0XHU3YjRkXHU3YjRiXHU3YjRmXHU3YjUx''@;'; put 'put ''XHU3YzlmXHU3Y2E1XHU3ZDVlXHU3ZDUwXHU3ZDY4XHU3ZDU1XHU3ZDJiXHU3ZDZlXHU3ZDcyXHU3ZDYxXHU3ZDY2XHU3ZDYyXHU3ZDcwXHU3ZDczXHU1NTg0XHU3ZmQ0XHU3ZmQ1XHU4MDBiXHU4MDUyXHU4MDg1XHU4MTU1XHU4MTU0XHU4MTRiXHU4MTUxXHU4MTRlXHU4MTM5XHU4MTQ2XHU4''@;'; put 'put ''MTNlXHU4MTRjXHU4MTUzXHU4MTc0XHU4MjEyXHU4MjFjXHU4M2U5XHU4NDAzXHU4M2Y4XHU4NDBkXHU4M2UwXHU4M2M1XHU4NDBiXHU4M2MxXHU4M2VmXHU4M2YxXHU4M2Y0XHU4NDU3XHU4NDBhXHU4M2YwXHU4NDBjXHU4M2NjXHU4M2ZkXHU4M2YyXHU4M2NhXHU4NDM4XHU4NDBlXHU4NDA0''@;'; put 'put ''XHU4M2RjXHU4NDA3XHU4M2Q0XHU4M2RmXHU4NjViXHU4NmRmXHU4NmQ5XHU4NmVkXHU4NmQ0XHU4NmRiXHU4NmU0XHU4NmQwXHU4NmRlXHU4ODU3XHU4OGMxXHU4OGMyXHU4OGIxXHU4OTgzXHU4OTk2XHU4YTNiXHU4YTYwXHU4YTU1XHU4YTVlXHU4YTNjXHU4YTQxXHVmZmZkIi5zcGxpdCgi''@;'; put 'put ''IiksRT0wO0UhPUJbMTgxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4MV1bRV1dPTQ2MzM2K0UsTFs0NjMzNitFXT1CWzE4MV1bRV0pO2ZvcihCWzE4Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1OGE1NFx1OGE1Ylx1OGE1MFx1OGE0Nlx1OGEzNFx1OGEzYVx1OGEzNlx1OGE1Nlx1OGM2MVx1OGM4Mlx1OGNhZlx1OGNiY1x1OGNiM1x1OGNiZFx1OGNjMVx1OGNiYlx1OGNjMFx1OGNiNFx1OGNiN1x1OGNiNlx1OGNiZlx1OGNiOFx1OGQ4YVx1OGQ4NVx1OGQ4MVx1OGRjZVx1''@;'; put 'put ''OGRkZFx1OGRjYlx1OGRkYVx1OGRkMVx1OGRjY1x1OGRkYlx1OGRjNlx1OGVmYlx1OGVmOFx1OGVmY1x1OGY5Y1x1OTAyZVx1OTAzNVx1OTAzMVx1OTAzOFx1OTAzMlx1OTAzNlx1OTEwMlx1OTBmNVx1OTEwOVx1OTBmZVx1OTE2M1x1OTE2NVx1OTFjZlx1OTIxNFx1OTIxNVx1OTIyM1x1OTIw''@;'; put 'put ''OVx1OTIxZVx1OTIwZFx1OTIxMFx1OTIwN1x1OTIxMVx1OTU5NFx1OTU4Zlx1OTU4Ylx1OTU5MVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTU5M1x1OTU5Mlx1OTU4ZVx1OTY4YVx1OTY4ZVx1OTY4Ylx1OTY3ZFx1OTY4NVx1OTY4Nlx1OTY4ZFx1OTY3Mlx1OTY4''@;'; put 'put ''NFx1OTZjMVx1OTZjNVx1OTZjNFx1OTZjNlx1OTZjN1x1OTZlZlx1OTZmMlx1OTdjY1x1OTgwNVx1OTgwNlx1OTgwOFx1OThlN1x1OThlYVx1OThlZlx1OThlOVx1OThmMlx1OThlZFx1OTlhZVx1OTlhZFx1OWVjM1x1OWVjZFx1OWVkMVx1NGU4Mlx1NTBhZFx1NTBiNVx1NTBiMlx1NTBiM1x1''@;'; put 'put ''NTBjNVx1NTBiZVx1NTBhY1x1NTBiN1x1NTBiYlx1NTBhZlx1NTBjN1x1NTI3Zlx1NTI3N1x1NTI3ZFx1NTJkZlx1NTJlNlx1NTJlNFx1NTJlMlx1NTJlM1x1NTMyZlx1NTVkZlx1NTVlOFx1NTVkM1x1NTVlNlx1NTVjZVx1NTVkY1x1NTVjN1x1NTVkMVx1NTVlM1x1NTVlNFx1NTVlZlx1NTVk''@;'; put 'put ''YVx1NTVlMVx1NTVjNVx1NTVjNlx1NTVlNVx1NTVjOVx1NTcxMlx1NTcxM1x1NTg1ZVx1NTg1MVx1NTg1OFx1NTg1N1x1NTg1YVx1NTg1NFx1NTg2Ylx1NTg0Y1x1NTg2ZFx1NTg0YVx1NTg2Mlx1NTg1Mlx1NTg0Ylx1NTk2N1x1NWFjMVx1NWFjOVx1NWFjY1x1NWFiZVx1NWFiZFx1NWFiY1x1''@;'; put 'put ''ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODJdW0VdXT00NjU5MitFLExbNDY1OTIrRV09QlsxODJdW0VdKTtmb3IoQlsxODNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhYjNcdTVhYzJcdTVhYjJcdTVkNjlcdTVkNmZcdTVlNGNcdTVlNzlcdTVlYzlcdTVlYzhcdTVmMTJcdTVmNTlcdTVmYWNcdTVmYWVcdTYxMWFcdTYxMGZcdTYxNDhcdTYxMWZcdTYwZjNcdTYxMWJcdTYwZjlcdTYxMDFcdTYxMDhcdTYxNGVcdTYxNGNc''@;'; put 'put ''dTYxNDRcdTYxNGRcdTYxM2VcdTYxMzRcdTYxMjdcdTYxMGRcdTYxMDZcdTYxMzdcdTYyMjFcdTYyMjJcdTY0MTNcdTY0M2VcdTY0MWVcdTY0MmFcdTY0MmRcdTY0M2RcdTY0MmNcdTY0MGZcdTY0MWNcdTY0MTRcdTY0MGRcdTY0MzZcdTY0MTZcdTY0MTdcdTY0MDZcdTY1NmNcdTY1OWZcdTY1''@;'; put 'put ''YjBcdTY2OTdcdTY2ODlcdTY2ODdcdTY2ODhcdTY2OTZcdTY2ODRcdTY2OThcdTY2OGRcdTY3MDNcdTY5OTRcdTY5NmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY5NWFcdTY5NzdcdTY5NjBcdTY5NTRcdTY5NzVcdTY5MzBcdTY5ODJcdTY5NGFcdTY5NjhcdTY5''@;'; put 'put ''NmJcdTY5NWVcdTY5NTNcdTY5NzlcdTY5ODZcdTY5NWRcdTY5NjNcdTY5NWJcdTZiNDdcdTZiNzJcdTZiYzBcdTZiYmZcdTZiZDNcdTZiZmRcdTZlYTJcdTZlYWZcdTZlZDNcdTZlYjZcdTZlYzJcdTZlOTBcdTZlOWRcdTZlYzdcdTZlYzVcdTZlYTVcdTZlOThcdTZlYmNcdTZlYmFcdTZlYWJc''@;'; put 'put ''dTZlZDFcdTZlOTZcdTZlOWNcdTZlYzRcdTZlZDRcdTZlYWFcdTZlYTdcdTZlYjRcdTcxNGVcdTcxNTlcdTcxNjlcdTcxNjRcdTcxNDlcdTcxNjdcdTcxNWNcdTcxNmNcdTcxNjZcdTcxNGNcdTcxNjVcdTcxNWVcdTcxNDZcdTcxNjhcdTcxNTZcdTcyM2FcdTcyNTJcdTczMzdcdTczNDVcdTcz''@;'; put 'put ''M2ZcdTczM2VcdTc0NmZcdTc0NWFcdTc0NTVcdTc0NWZcdTc0NWVcdTc0NDFcdTc0M2ZcdTc0NTlcdTc0NWJcdTc0NWNcdTc1NzZcdTc1NzhcdTc2MDBcdTc1ZjBcdTc2MDFcdTc1ZjJcdTc1ZjFcdTc1ZmFcdTc1ZmZcdTc1ZjRcdTc1ZjNcdTc2ZGVcdTc2ZGZcdTc3NWJcdTc3NmJcdTc3NjZc''@;'; put 'put ''dTc3NWVcdTc3NjNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgzXVtFXV09NDY4NDgrRSxMWzQ2ODQ4K0VdPUJbMTgzXVtFXSk7Zm9yKEJbMTg0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Nzc5XHU3NzZhXHU3NzZjXHU3NzVjXHU3NzY1XHU3NzY4XHU3NzYyXHU3N2VlXHU3ODhlXHU3OGIwXHU3ODk3XHU3ODk4XHU3ODhjXHU3ODg5XHU3ODdjXHU3ODkxXHU3ODkzXHU3ODdmXHU3OTdhXHU3OTdmXHU3OTgxXHU4NDJj''@;'; put 'put ''XHU3OWJkXHU3YTFjXHU3YTFhXHU3YTIwXHU3YTE0XHU3YTFmXHU3YTFlXHU3YTlmXHU3YWEwXHU3Yjc3XHU3YmMwXHU3YjYwXHU3YjZlXHU3YjY3XHU3Y2IxXHU3Y2IzXHU3Y2I1XHU3ZDkzXHU3ZDc5XHU3ZDkxXHU3ZDgxXHU3ZDhmXHU3ZDViXHU3ZjZlXHU3ZjY5XHU3ZjZhXHU3ZjcyXHU3''@;'; put 'put ''ZmE5XHU3ZmE4XHU3ZmE0XHU4MDU2XHU4MDU4XHU4MDg2XHU4MDg0XHU4MTcxXHU4MTcwXHU4MTc4XHU4MTY1XHU4MTZlXHU4MTczXHU4MTZiXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTc5XHU4MTdhXHU4MTY2XHU4MjA1XHU4MjQ3XHU4NDgyXHU4NDc3XHU4''@;'; put 'put ''NDNkXHU4NDMxXHU4NDc1XHU4NDY2XHU4NDZiXHU4NDQ5XHU4NDZjXHU4NDViXHU4NDNjXHU4NDM1XHU4NDYxXHU4NDYzXHU4NDY5XHU4NDZkXHU4NDQ2XHU4NjVlXHU4NjVjXHU4NjVmXHU4NmY5XHU4NzEzXHU4NzA4XHU4NzA3XHU4NzAwXHU4NmZlXHU4NmZiXHU4NzAyXHU4NzAzXHU4NzA2''@;'; put 'put ''XHU4NzBhXHU4ODU5XHU4OGRmXHU4OGQ0XHU4OGQ5XHU4OGRjXHU4OGQ4XHU4OGRkXHU4OGUxXHU4OGNhXHU4OGQ1XHU4OGQyXHU4OTljXHU4OWUzXHU4YTZiXHU4YTcyXHU4YTczXHU4YTY2XHU4YTY5XHU4YTcwXHU4YTg3XHU4YTdjXHU4YTYzXHU4YWEwXHU4YTcxXHU4YTg1XHU4YTZkXHU4''@;'; put 'put ''YTYyXHU4YTZlXHU4YTZjXHU4YTc5XHU4YTdiXHU4YTNlXHU4YTY4XHU4YzYyXHU4YzhhXHU4Yzg5XHU4Y2NhXHU4Y2M3XHU4Y2M4XHU4Y2M0XHU4Y2IyXHU4Y2MzXHU4Y2MyXHU4Y2M1XHU4ZGUxXHU4ZGRmXHU4ZGU4XHU4ZGVmXHU4ZGYzXHU4ZGZhXHU4ZGVhXHU4ZGU0XHU4ZGU2XHU4ZWIy''@;'; put 'put ''XHU4ZjAzXHU4ZjA5XHU4ZWZlXHU4ZjBhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NF1bRV1dPTQ3MTA0K0UsTFs0NzEwNCtFXT1CWzE4NF1bRV0pO2ZvcihCWzE4NV09Ilx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGY5Zlx1OGZiMlx1OTA0Ylx1OTA0YVx1OTA1M1x1OTA0Mlx1OTA1NFx1OTAzY1x1OTA1NVx1OTA1MFx1OTA0N1x1OTA0Zlx1OTA0ZVx1OTA0ZFx1OTA1MVx1OTAzZVx1OTA0MVx1OTExMlx1OTExN1x1OTE2''@;'; put 'put ''Y1x1OTE2YVx1OTE2OVx1OTFjOVx1OTIzN1x1OTI1N1x1OTIzOFx1OTIzZFx1OTI0MFx1OTIzZVx1OTI1Ylx1OTI0Ylx1OTI2NFx1OTI1MVx1OTIzNFx1OTI0OVx1OTI0ZFx1OTI0NVx1OTIzOVx1OTIzZlx1OTI1YVx1OTU5OFx1OTY5OFx1OTY5NFx1OTY5NVx1OTZjZFx1OTZjYlx1OTZjOVx1''@;'; put 'put ''OTZjYVx1OTZmN1x1OTZmYlx1OTZmOVx1OTZmNlx1OTc1Nlx1OTc3NFx1OTc3Nlx1OTgxMFx1OTgxMVx1OTgxM1x1OTgwYVx1OTgxMlx1OTgwY1x1OThmY1x1OThmNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OThmZFx1OThmZVx1OTliM1x1OTliMVx1OTliNFx1''@;'; put 'put ''OWFlMVx1OWNlOVx1OWU4Mlx1OWYwZVx1OWYxM1x1OWYyMFx1NTBlN1x1NTBlZVx1NTBlNVx1NTBkNlx1NTBlZFx1NTBkYVx1NTBkNVx1NTBjZlx1NTBkMVx1NTBmMVx1NTBjZVx1NTBlOVx1NTE2Mlx1NTFmM1x1NTI4M1x1NTI4Mlx1NTMzMVx1NTNhZFx1NTVmZVx1NTYwMFx1NTYxYlx1NTYx''@;'; put 'put ''N1x1NTVmZFx1NTYxNFx1NTYwNlx1NTYwOVx1NTYwZFx1NTYwZVx1NTVmN1x1NTYxNlx1NTYxZlx1NTYwOFx1NTYxMFx1NTVmNlx1NTcxOFx1NTcxNlx1NTg3NVx1NTg3ZVx1NTg4M1x1NTg5M1x1NTg4YVx1NTg3OVx1NTg4NVx1NTg3ZFx1NThmZFx1NTkyNVx1NTkyMlx1NTkyNFx1NTk2YVx1''@;'; put 'put ''NTk2OVx1NWFlMVx1NWFlNlx1NWFlOVx1NWFkN1x1NWFkNlx1NWFkOFx1NWFlM1x1NWI3NVx1NWJkZVx1NWJlN1x1NWJlMVx1NWJlNVx1NWJlNlx1NWJlOFx1NWJlMlx1NWJlNFx1NWJkZlx1NWMwZFx1NWM2Mlx1NWQ4NFx1NWQ4N1x1NWU1Ylx1NWU2M1x1NWU1NVx1NWU1N1x1NWU1NFx1NWVk''@;'; put 'put ''M1x1NWVkNlx1NWYwYVx1NWY0Nlx1NWY3MFx1NWZiOVx1NjE0N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODVdW0VdXT00NzM2MCtFLExbNDczNjArRV09QlsxODVdW0VdKTtmb3IoQlsx''@;'; put 'put ''ODZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxM2ZcdTYxNGJcdTYxNzdcdTYxNjJcdTYxNjNcdTYxNWZcdTYxNWFcdTYxNThcdTYxNzVcdTYyMmFcdTY0ODdcdTY0NThcdTY0NTRcdTY0YTRcdTY0NzhcdTY0NWZcdTY0N2FcdTY0''@;'; put 'put ''NTFcdTY0NjdcdTY0MzRcdTY0NmRcdTY0N2JcdTY1NzJcdTY1YTFcdTY1ZDdcdTY1ZDZcdTY2YTJcdTY2YThcdTY2OWRcdTY5OWNcdTY5YThcdTY5OTVcdTY5YzFcdTY5YWVcdTY5ZDNcdTY5Y2JcdTY5OWJcdTY5YjdcdTY5YmJcdTY5YWJcdTY5YjRcdTY5ZDBcdTY5Y2RcdTY5YWRcdTY5Y2Nc''@;'; put 'put ''dTY5YTZcdTY5YzNcdTY5YTNcdTZiNDlcdTZiNGNcdTZjMzNcdTZmMzNcdTZmMTRcdTZlZmVcdTZmMTNcdTZlZjRcdTZmMjlcdTZmM2VcdTZmMjBcdTZmMmNcdTZmMGZcdTZmMDJcdTZmMjJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlZmZcdTZlZWZcdTZmMDZc''@;'; put 'put ''dTZmMzFcdTZmMzhcdTZmMzJcdTZmMjNcdTZmMTVcdTZmMmJcdTZmMmZcdTZmODhcdTZmMmFcdTZlZWNcdTZmMDFcdTZlZjJcdTZlY2NcdTZlZjdcdTcxOTRcdTcxOTlcdTcxN2RcdTcxOGFcdTcxODRcdTcxOTJcdTcyM2VcdTcyOTJcdTcyOTZcdTczNDRcdTczNTBcdTc0NjRcdTc0NjNcdTc0''@;'; put 'put ''NmFcdTc0NzBcdTc0NmRcdTc1MDRcdTc1OTFcdTc2MjdcdTc2MGRcdTc2MGJcdTc2MDlcdTc2MTNcdTc2ZTFcdTc2ZTNcdTc3ODRcdTc3N2RcdTc3N2ZcdTc3NjFcdTc4YzFcdTc4OWZcdTc4YTdcdTc4YjNcdTc4YTlcdTc4YTNcdTc5OGVcdTc5OGZcdTc5OGRcdTdhMmVcdTdhMzFcdTdhYWFc''@;'; put 'put ''dTdhYTlcdTdhZWRcdTdhZWZcdTdiYTFcdTdiOTVcdTdiOGJcdTdiNzVcdTdiOTdcdTdiOWRcdTdiOTRcdTdiOGZcdTdiYjhcdTdiODdcdTdiODRcdTdjYjlcdTdjYmRcdTdjYmVcdTdkYmJcdTdkYjBcdTdkOWNcdTdkYmRcdTdkYmVcdTdkYTBcdTdkY2FcdTdkYjRcdTdkYjJcdTdkYjFcdTdk''@;'; put 'put ''YmFcdTdkYTJcdTdkYmZcdTdkYjVcdTdkYjhcdTdkYWRcdTdkZDJcdTdkYzdcdTdkYWNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg2XVtFXV09NDc2MTYrRSxMWzQ3NjE2K0VdPUJbMTg2''@;'; put 'put ''XVtFXSk7Zm9yKEJbMTg3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjcwXHU3ZmUwXHU3ZmUxXHU3ZmRmXHU4MDVlXHU4MDVhXHU4MDg3XHU4MTUwXHU4MTgwXHU4MThmXHU4MTg4XHU4MThhXHU4MTdmXHU4MTgyXHU4MWU3XHU4''@;'; put 'put ''MWZhXHU4MjA3XHU4MjE0XHU4MjFlXHU4MjRiXHU4NGM5XHU4NGJmXHU4NGM2XHU4NGM0XHU4NDk5XHU4NDllXHU4NGIyXHU4NDljXHU4NGNiXHU4NGI4XHU4NGMwXHU4NGQzXHU4NDkwXHU4NGJjXHU4NGQxXHU4NGNhXHU4NzNmXHU4NzFjXHU4NzNiXHU4NzIyXHU4NzI1XHU4NzM0XHU4NzE4''@;'; put 'put ''XHU4NzU1XHU4NzM3XHU4NzI5XHU4OGYzXHU4OTAyXHU4OGY0XHU4OGY5XHU4OGY4XHU4OGZkXHU4OGU4XHU4OTFhXHU4OGVmXHU4YWE2XHU4YThjXHU4YTllXHU4YWEzXHU4YThkXHU4YWExXHU4YTkzXHU4YWE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YWFh''@;'; put 'put ''XHU4YWE1XHU4YWE4XHU4YTk4XHU4YTkxXHU4YTlhXHU4YWE3XHU4YzZhXHU4YzhkXHU4YzhjXHU4Y2QzXHU4Y2QxXHU4Y2QyXHU4ZDZiXHU4ZDk5XHU4ZDk1XHU4ZGZjXHU4ZjE0XHU4ZjEyXHU4ZjE1XHU4ZjEzXHU4ZmEzXHU5MDYwXHU5MDU4XHU5MDVjXHU5MDYzXHU5MDU5XHU5MDVlXHU5''@;'; put 'put ''MDYyXHU5MDVkXHU5MDViXHU5MTE5XHU5MTE4XHU5MTFlXHU5MTc1XHU5MTc4XHU5MTc3XHU5MTc0XHU5Mjc4XHU5MjgwXHU5Mjg1XHU5Mjk4XHU5Mjk2XHU5MjdiXHU5MjkzXHU5MjljXHU5MmE4XHU5MjdjXHU5MjkxXHU5NWExXHU5NWE4XHU5NWE5XHU5NWEzXHU5NWE1XHU5NWE0XHU5Njk5''@;'; put 'put ''XHU5NjljXHU5NjliXHU5NmNjXHU5NmQyXHU5NzAwXHU5NzdjXHU5Nzg1XHU5N2Y2XHU5ODE3XHU5ODE4XHU5OGFmXHU5OGIxXHU5OTAzXHU5OTA1XHU5OTBjXHU5OTA5XHU5OWMxXHU5YWFmXHU5YWIwXHU5YWU2XHU5YjQxXHU5YjQyXHU5Y2Y0XHU5Y2Y2XHU5Y2YzXHU5ZWJjXHU5ZjNiXHU5''@;'; put 'put ''ZjRhXHU1MTA0XHU1MTAwXHU1MGZiXHU1MGY1XHU1MGY5XHU1MTAyXHU1MTA4XHU1MTA5XHU1MTA1XHU1MWRjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4N11bRV1dPTQ3ODcyK0UsTFs0''@;'; put 'put ''Nzg3MitFXT1CWzE4N11bRV0pO2ZvcihCWzE4OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTI4N1x1NTI4OFx1NTI4OVx1NTI4ZFx1NTI4YVx1NTJmMFx1NTNiMlx1NTYyZVx1NTYzYlx1NTYzOVx1NTYzMlx1NTYzZlx1NTYzNFx1''@;'; put 'put ''NTYyOVx1NTY1M1x1NTY0ZVx1NTY1N1x1NTY3NFx1NTYzNlx1NTYyZlx1NTYzMFx1NTg4MFx1NTg5Zlx1NTg5ZVx1NThiM1x1NTg5Y1x1NThhZVx1NThhOVx1NThhNlx1NTk2ZFx1NWIwOVx1NWFmYlx1NWIwYlx1NWFmNVx1NWIwY1x1NWIwOFx1NWJlZVx1NWJlY1x1NWJlOVx1NWJlYlx1NWM2''@;'; put 'put ''NFx1NWM2NVx1NWQ5ZFx1NWQ5NFx1NWU2Mlx1NWU1Zlx1NWU2MVx1NWVlMlx1NWVkYVx1NWVkZlx1NWVkZFx1NWVlM1x1NWVlMFx1NWY0OFx1NWY3MVx1NWZiN1x1NWZiNVx1NjE3Nlx1NjE2N1x1NjE2ZVx1NjE1ZFx1NjE1NVx1NjE4Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1NjE3Y1x1NjE3MFx1NjE2Ylx1NjE3ZVx1NjFhN1x1NjE5MFx1NjFhYlx1NjE4ZVx1NjFhY1x1NjE5YVx1NjFhNFx1NjE5NFx1NjFhZVx1NjIyZVx1NjQ2OVx1NjQ2Zlx1NjQ3OVx1NjQ5ZVx1NjRiMlx1NjQ4OFx1NjQ5MFx1NjRiMFx1NjRhNVx1NjQ5M1x1NjQ5NVx1NjRhOVx1''@;'; put 'put ''NjQ5Mlx1NjRhZVx1NjRhZFx1NjRhYlx1NjQ5YVx1NjRhY1x1NjQ5OVx1NjRhMlx1NjRiM1x1NjU3NVx1NjU3N1x1NjU3OFx1NjZhZVx1NjZhYlx1NjZiNFx1NjZiMVx1NmEyM1x1NmExZlx1NjllOFx1NmEwMVx1NmExZVx1NmExOVx1NjlmZFx1NmEyMVx1NmExM1x1NmEwYVx1NjlmM1x1NmEw''@;'; put 'put ''Mlx1NmEwNVx1NjllZFx1NmExMVx1NmI1MFx1NmI0ZVx1NmJhNFx1NmJjNVx1NmJjNlx1NmYzZlx1NmY3Y1x1NmY4NFx1NmY1MVx1NmY2Nlx1NmY1NFx1NmY4Nlx1NmY2ZFx1NmY1Ylx1NmY3OFx1NmY2ZVx1NmY4ZVx1NmY3YVx1NmY3MFx1NmY2NFx1NmY5N1x1NmY1OFx1NmVkNVx1NmY2Zlx1''@;'; put 'put ''NmY2MFx1NmY1Zlx1NzE5Zlx1NzFhY1x1NzFiMVx1NzFhOFx1NzI1Nlx1NzI5Ylx1NzM0ZVx1NzM1N1x1NzQ2OVx1NzQ4Ylx1NzQ4M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODhdW0Vd''@;'; put 'put ''XT00ODEyOCtFLExbNDgxMjgrRV09QlsxODhdW0VdKTtmb3IoQlsxODldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0N2VcdTc0ODBcdTc1N2ZcdTc2MjBcdTc2MjlcdTc2MWZcdTc2MjRcdTc2MjZcdTc2MjFcdTc2MjJcdTc2OWFc''@;'; put 'put ''dTc2YmFcdTc2ZTRcdTc3OGVcdTc3ODdcdTc3OGNcdTc3OTFcdTc3OGJcdTc4Y2JcdTc4YzVcdTc4YmFcdTc4Y2FcdTc4YmVcdTc4ZDVcdTc4YmNcdTc4ZDBcdTdhM2ZcdTdhM2NcdTdhNDBcdTdhM2RcdTdhMzdcdTdhM2JcdTdhYWZcdTdhYWVcdTdiYWRcdTdiYjFcdTdiYzRcdTdiYjRcdTdi''@;'; put 'put ''YzZcdTdiYzdcdTdiYzFcdTdiYTBcdTdiY2NcdTdjY2FcdTdkZTBcdTdkZjRcdTdkZWZcdTdkZmJcdTdkZDhcdTdkZWNcdTdkZGRcdTdkZThcdTdkZTNcdTdkZGFcdTdkZGVcdTdkZTlcdTdkOWVcdTdkZDlcdTdkZjJcdTdkZjlcdTdmNzVcdTdmNzdcdTdmYWZcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdmZTlcdTgwMjZcdTgxOWJcdTgxOWNcdTgxOWRcdTgxYTBcdTgxOWFcdTgxOThcdTg1MTdcdTg1M2RcdTg1MWFcdTg0ZWVcdTg1MmNcdTg1MmRcdTg1MTNcdTg1MTFcdTg1MjNcdTg1MjFcdTg1MTRcdTg0ZWNcdTg1MjVcdTg0ZmZcdTg1MDZcdTg3ODJc''@;'; put 'put ''dTg3NzRcdTg3NzZcdTg3NjBcdTg3NjZcdTg3NzhcdTg3NjhcdTg3NTlcdTg3NTdcdTg3NGNcdTg3NTNcdTg4NWJcdTg4NWRcdTg5MTBcdTg5MDdcdTg5MTJcdTg5MTNcdTg5MTVcdTg5MGFcdThhYmNcdThhZDJcdThhYzdcdThhYzRcdThhOTVcdThhY2JcdThhZjhcdThhYjJcdThhYzlcdThh''@;'; put 'put ''YzJcdThhYmZcdThhYjBcdThhZDZcdThhY2RcdThhYjZcdThhYjlcdThhZGJcdThjNGNcdThjNGVcdThjNmNcdThjZTBcdThjZGVcdThjZTZcdThjZTRcdThjZWNcdThjZWRcdThjZTJcdThjZTNcdThjZGNcdThjZWFcdThjZTFcdThkNmRcdThkOWZcdThkYTNcdThlMmJcdThlMTBcdThlMWRc''@;'; put 'put ''dThlMjJcdThlMGZcdThlMjlcdThlMWZcdThlMjFcdThlMWVcdThlYmFcdThmMWRcdThmMWJcdThmMWZcdThmMjlcdThmMjZcdThmMmFcdThmMWNcdThmMWVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4OV1bRV0uY2hhckNvZGVBdCgwKSYm''@;'; put 'put ''KG1lW0JbMTg5XVtFXV09NDgzODQrRSxMWzQ4Mzg0K0VdPUJbMTg5XVtFXSk7Zm9yKEJbMTkwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ZjI1XHU5MDY5XHU5MDZlXHU5MDY4XHU5MDZkXHU5MDc3XHU5MTMwXHU5MTJkXHU5MTI3''@;'; put 'put ''XHU5MTMxXHU5MTg3XHU5MTg5XHU5MThiXHU5MTgzXHU5MmM1XHU5MmJiXHU5MmI3XHU5MmVhXHU5MmFjXHU5MmU0XHU5MmMxXHU5MmIzXHU5MmJjXHU5MmQyXHU5MmM3XHU5MmYwXHU5MmIyXHU5NWFkXHU5NWIxXHU5NzA0XHU5NzA2XHU5NzA3XHU5NzA5XHU5NzYwXHU5NzhkXHU5NzhiXHU5''@;'; put 'put ''NzhmXHU5ODIxXHU5ODJiXHU5ODFjXHU5OGIzXHU5OTBhXHU5OTEzXHU5OTEyXHU5OTE4XHU5OWRkXHU5OWQwXHU5OWRmXHU5OWRiXHU5OWQxXHU5OWQ1XHU5OWQyXHU5OWQ5XHU5YWI3XHU5YWVlXHU5YWVmXHU5YjI3XHU5YjQ1XHU5YjQ0XHU5Yjc3XHU5YjZmXHU5ZDA2XHU5ZDA5XHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZDAzXHU5ZWE5XHU5ZWJlXHU5ZWNlXHU1OGE4XHU5ZjUyXHU1MTEyXHU1MTE4XHU1MTE0XHU1MTEwXHU1MTE1XHU1MTgwXHU1MWFhXHU1MWRkXHU1MjkxXHU1MjkzXHU1MmYzXHU1NjU5XHU1NjZiXHU1Njc5XHU1NjY5XHU1NjY0''@;'; put 'put ''XHU1Njc4XHU1NjZhXHU1NjY4XHU1NjY1XHU1NjcxXHU1NjZmXHU1NjZjXHU1NjYyXHU1Njc2XHU1OGMxXHU1OGJlXHU1OGM3XHU1OGM1XHU1OTZlXHU1YjFkXHU1YjM0XHU1Yjc4XHU1YmYwXHU1YzBlXHU1ZjRhXHU2MWIyXHU2MTkxXHU2MWE5XHU2MThhXHU2MWNkXHU2MWI2XHU2MWJlXHU2''@;'; put 'put ''MWNhXHU2MWM4XHU2MjMwXHU2NGM1XHU2NGMxXHU2NGNiXHU2NGJiXHU2NGJjXHU2NGRhXHU2NGM0XHU2NGM3XHU2NGMyXHU2NGNkXHU2NGJmXHU2NGQyXHU2NGQ0XHU2NGJlXHU2NTc0XHU2NmM2XHU2NmM5XHU2NmI5XHU2NmM0XHU2NmM3XHU2NmI4XHU2YTNkXHU2YTM4XHU2YTNhXHU2YTU5''@;'; put 'put ''XHU2YTZiXHU2YTU4XHU2YTM5XHU2YTQ0XHU2YTYyXHU2YTYxXHU2YTRiXHU2YTQ3XHU2YTM1XHU2YTVmXHU2YTQ4XHU2YjU5XHU2Yjc3XHU2YzA1XHU2ZmMyXHU2ZmIxXHU2ZmExXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTkwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTBdW0VdLmNo''@;'; put 'put ''YXJDb2RlQXQoMCkmJihtZVtCWzE5MF1bRV1dPTQ4NjQwK0UsTFs0ODY0MCtFXT1CWzE5MF1bRV0pO2ZvcihCWzE5MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmZjM1x1NmZhNFx1NmZjMVx1NmZhN1x1NmZiM1x1NmZjMFx1NmZi''@;'; put 'put ''OVx1NmZiNlx1NmZhNlx1NmZhMFx1NmZiNFx1NzFiZVx1NzFjOVx1NzFkMFx1NzFkMlx1NzFjOFx1NzFkNVx1NzFiOVx1NzFjZVx1NzFkOVx1NzFkY1x1NzFjM1x1NzFjNFx1NzM2OFx1NzQ5Y1x1NzRhM1x1NzQ5OFx1NzQ5Zlx1NzQ5ZVx1NzRlMlx1NzUwY1x1NzUwZFx1NzYzNFx1NzYzOFx1''@;'; put 'put ''NzYzYVx1NzZlN1x1NzZlNVx1NzdhMFx1Nzc5ZVx1Nzc5Zlx1NzdhNVx1NzhlOFx1NzhkYVx1NzhlY1x1NzhlN1x1NzlhNlx1N2E0ZFx1N2E0ZVx1N2E0Nlx1N2E0Y1x1N2E0Ylx1N2FiYVx1N2JkOVx1N2MxMVx1N2JjOVx1N2JlNFx1N2JkYlx1N2JlMVx1N2JlOVx1N2JlNlx1N2NkNVx1N2Nk''@;'; put 'put ''Nlx1N2UwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2UxMVx1N2UwOFx1N2UxYlx1N2UyM1x1N2UxZVx1N2UxZFx1N2UwOVx1N2UxMFx1N2Y3OVx1N2ZiMlx1N2ZmMFx1N2ZmMVx1N2ZlZVx1ODAyOFx1ODFiM1x1ODFhOVx1ODFhOFx1ODFmYlx1ODIwOFx1ODI1''@;'; put 'put ''OFx1ODI1OVx1ODU0YVx1ODU1OVx1ODU0OFx1ODU2OFx1ODU2OVx1ODU0M1x1ODU0OVx1ODU2ZFx1ODU2YVx1ODU1ZVx1ODc4M1x1ODc5Zlx1ODc5ZVx1ODdhMlx1ODc4ZFx1ODg2MVx1ODkyYVx1ODkzMlx1ODkyNVx1ODkyYlx1ODkyMVx1ODlhYVx1ODlhNlx1OGFlNlx1OGFmYVx1OGFlYlx1''@;'; put 'put ''OGFmMVx1OGIwMFx1OGFkY1x1OGFlN1x1OGFlZVx1OGFmZVx1OGIwMVx1OGIwMlx1OGFmN1x1OGFlZFx1OGFmM1x1OGFmNlx1OGFmY1x1OGM2Ylx1OGM2ZFx1OGM5M1x1OGNmNFx1OGU0NFx1OGUzMVx1OGUzNFx1OGU0Mlx1OGUzOVx1OGUzNVx1OGYzYlx1OGYyZlx1OGYzOFx1OGYzM1x1OGZh''@;'; put 'put ''OFx1OGZhNlx1OTA3NVx1OTA3NFx1OTA3OFx1OTA3Mlx1OTA3Y1x1OTA3YVx1OTEzNFx1OTE5Mlx1OTMyMFx1OTMzNlx1OTJmOFx1OTMzM1x1OTMyZlx1OTMyMlx1OTJmY1x1OTMyYlx1OTMwNFx1OTMxYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5MV0ubGVuZ3RoOysrRSk2NTUzMyE9''@;'; put 'put ''PUJbMTkxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTFdW0VdXT00ODg5NitFLExbNDg4OTYrRV09QlsxOTFdW0VdKTtmb3IoQlsxOTJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMTBcdTkzMjZcdTkzMjFcdTkzMTVcdTkz''@;'; put 'put ''MmVcdTkzMTlcdTk1YmJcdTk2YTdcdTk2YThcdTk2YWFcdTk2ZDVcdTk3MGVcdTk3MTFcdTk3MTZcdTk3MGRcdTk3MTNcdTk3MGZcdTk3NWJcdTk3NWNcdTk3NjZcdTk3OThcdTk4MzBcdTk4MzhcdTk4M2JcdTk4MzdcdTk4MmRcdTk4MzlcdTk4MjRcdTk5MTBcdTk5MjhcdTk5MWVcdTk5MWJc''@;'; put 'put ''dTk5MjFcdTk5MWFcdTk5ZWRcdTk5ZTJcdTk5ZjFcdTlhYjhcdTlhYmNcdTlhZmJcdTlhZWRcdTliMjhcdTliOTFcdTlkMTVcdTlkMjNcdTlkMjZcdTlkMjhcdTlkMTJcdTlkMWJcdTllZDhcdTllZDRcdTlmOGRcdTlmOWNcdTUxMmFcdTUxMWZcdTUxMjFcdTUxMzJcdTUyZjVcdTU2OGVcdTU2''@;'; put 'put ''ODBcdTU2OTBcdTU2ODVcdTU2ODdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2OGZcdTU4ZDVcdTU4ZDNcdTU4ZDFcdTU4Y2VcdTViMzBcdTViMmFcdTViMjRcdTViN2FcdTVjMzdcdTVjNjhcdTVkYmNcdTVkYmFcdTVkYmRcdTVkYjhcdTVlNmJcdTVmNGNcdTVm''@;'; put 'put ''YmRcdTYxYzlcdTYxYzJcdTYxYzdcdTYxZTZcdTYxY2JcdTYyMzJcdTYyMzRcdTY0Y2VcdTY0Y2FcdTY0ZDhcdTY0ZTBcdTY0ZjBcdTY0ZTZcdTY0ZWNcdTY0ZjFcdTY0ZTJcdTY0ZWRcdTY1ODJcdTY1ODNcdTY2ZDlcdTY2ZDZcdTZhODBcdTZhOTRcdTZhODRcdTZhYTJcdTZhOWNcdTZhZGJc''@;'; put 'put ''dTZhYTNcdTZhN2VcdTZhOTdcdTZhOTBcdTZhYTBcdTZiNWNcdTZiYWVcdTZiZGFcdTZjMDhcdTZmZDhcdTZmZjFcdTZmZGZcdTZmZTBcdTZmZGJcdTZmZTRcdTZmZWJcdTZmZWZcdTZmODBcdTZmZWNcdTZmZTFcdTZmZTlcdTZmZDVcdTZmZWVcdTZmZjBcdTcxZTdcdTcxZGZcdTcxZWVcdTcx''@;'; put 'put ''ZTZcdTcxZTVcdTcxZWRcdTcxZWNcdTcxZjRcdTcxZTBcdTcyMzVcdTcyNDZcdTczNzBcdTczNzJcdTc0YTlcdTc0YjBcdTc0YTZcdTc0YThcdTc2NDZcdTc2NDJcdTc2NGNcdTc2ZWFcdTc3YjNcdTc3YWFcdTc3YjBcdTc3YWNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTJdLmxlbmd0''@;'; put 'put ''aDsrK0UpNjU1MzMhPT1CWzE5Ml1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkyXVtFXV09NDkxNTIrRSxMWzQ5MTUyK0VdPUJbMTkyXVtFXSk7Zm9yKEJbMTkzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2E3XHU3N2FkXHU3''@;'; put 'put ''N2VmXHU3OGY3XHU3OGZhXHU3OGY0XHU3OGVmXHU3OTAxXHU3OWE3XHU3OWFhXHU3YTU3XHU3YWJmXHU3YzA3XHU3YzBkXHU3YmZlXHU3YmY3XHU3YzBjXHU3YmUwXHU3Y2UwXHU3Y2RjXHU3Y2RlXHU3Y2UyXHU3Y2RmXHU3Y2Q5XHU3Y2RkXHU3ZTJlXHU3ZTNlXHU3ZTQ2XHU3ZTM3XHU3ZTMy''@;'; put 'put ''XHU3ZTQzXHU3ZTJiXHU3ZTNkXHU3ZTMxXHU3ZTQ1XHU3ZTQxXHU3ZTM0XHU3ZTM5XHU3ZTQ4XHU3ZTM1XHU3ZTNmXHU3ZTJmXHU3ZjQ0XHU3ZmYzXHU3ZmZjXHU4MDcxXHU4MDcyXHU4MDcwXHU4MDZmXHU4MDczXHU4MWM2XHU4MWMzXHU4MWJhXHU4MWMyXHU4MWMwXHU4MWJmXHU4MWJkXHU4''@;'; put 'put ''MWM5XHU4MWJlXHU4MWU4XHU4MjA5XHU4MjcxXHU4NWFhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NTg0XHU4NTdlXHU4NTljXHU4NTkxXHU4NTk0XHU4NWFmXHU4NTliXHU4NTg3XHU4NWE4XHU4NThhXHU4NjY3XHU4N2MwXHU4N2QxXHU4N2IzXHU4N2QyXHU4''@;'; put 'put ''N2M2XHU4N2FiXHU4N2JiXHU4N2JhXHU4N2M4XHU4N2NiXHU4OTNiXHU4OTM2XHU4OTQ0XHU4OTM4XHU4OTNkXHU4OWFjXHU4YjBlXHU4YjE3XHU4YjE5XHU4YjFiXHU4YjBhXHU4YjIwXHU4YjFkXHU4YjA0XHU4YjEwXHU4YzQxXHU4YzNmXHU4YzczXHU4Y2ZhXHU4Y2ZkXHU4Y2ZjXHU4Y2Y4''@;'; put 'put ''XHU4Y2ZiXHU4ZGE4XHU4ZTQ5XHU4ZTRiXHU4ZTQ4XHU4ZTRhXHU4ZjQ0XHU4ZjNlXHU4ZjQyXHU4ZjQ1XHU4ZjNmXHU5MDdmXHU5MDdkXHU5MDg0XHU5MDgxXHU5MDgyXHU5MDgwXHU5MTM5XHU5MWEzXHU5MTllXHU5MTljXHU5MzRkXHU5MzgyXHU5MzI4XHU5Mzc1XHU5MzRhXHU5MzY1XHU5''@;'; put 'put ''MzRiXHU5MzE4XHU5MzdlXHU5MzZjXHU5MzViXHU5MzcwXHU5MzVhXHU5MzU0XHU5NWNhXHU5NWNiXHU5NWNjXHU5NWM4XHU5NWM2XHU5NmIxXHU5NmI4XHU5NmQ2XHU5NzFjXHU5NzFlXHU5N2EwXHU5N2QzXHU5ODQ2XHU5OGI2XHU5OTM1XHU5YTAxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0Uh''@;'; put 'put ''PUJbMTkzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5M11bRV1dPTQ5NDA4K0UsTFs0OTQwOCtFXT1CWzE5M11bRV0pO2ZvcihCWzE5NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''OTlmZlx1OWJhZVx1OWJhYlx1OWJhYVx1OWJhZFx1OWQzYlx1OWQzZlx1OWU4Ylx1OWVjZlx1OWVkZVx1OWVkY1x1OWVkZFx1OWVkYlx1OWYzZVx1OWY0Ylx1NTNlMlx1NTY5NVx1NTZhZVx1NThkOVx1NThkOFx1NWIzOFx1NWY1ZFx1NjFlM1x1NjIzM1x1NjRmNFx1NjRmMlx1NjRmZVx1NjUw''@;'; put 'put ''Nlx1NjRmYVx1NjRmYlx1NjRmN1x1NjViN1x1NjZkY1x1NjcyNlx1NmFiM1x1NmFhY1x1NmFjM1x1NmFiYlx1NmFiOFx1NmFjMlx1NmFhZVx1NmFhZlx1NmI1Zlx1NmI3OFx1NmJhZlx1NzAwOVx1NzAwYlx1NmZmZVx1NzAwNlx1NmZmYVx1NzAxMVx1NzAwZlx1NzFmYlx1NzFmY1x1NzFmZVx1''@;'; put 'put ''NzFmOFx1NzM3N1x1NzM3NVx1NzRhN1x1NzRiZlx1NzUxNVx1NzY1Nlx1NzY1OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzY1Mlx1NzdiZFx1NzdiZlx1NzdiYlx1NzdiY1x1NzkwZVx1NzlhZVx1N2E2MVx1N2E2Mlx1N2E2MFx1N2FjNFx1N2FjNVx1N2MyYlx1''@;'; put 'put ''N2MyN1x1N2MyYVx1N2MxZVx1N2MyM1x1N2MyMVx1N2NlN1x1N2U1NFx1N2U1NVx1N2U1ZVx1N2U1YVx1N2U2MVx1N2U1Mlx1N2U1OVx1N2Y0OFx1N2ZmOVx1N2ZmYlx1ODA3N1x1ODA3Nlx1ODFjZFx1ODFjZlx1ODIwYVx1ODVjZlx1ODVhOVx1ODVjZFx1ODVkMFx1ODVjOVx1ODViMFx1ODVi''@;'; put 'put ''YVx1ODViOVx1ODVhNlx1ODdlZlx1ODdlY1x1ODdmMlx1ODdlMFx1ODk4Nlx1ODliMlx1ODlmNFx1OGIyOFx1OGIzOVx1OGIyY1x1OGIyYlx1OGM1MFx1OGQwNVx1OGU1OVx1OGU2M1x1OGU2Nlx1OGU2NFx1OGU1Zlx1OGU1NVx1OGVjMFx1OGY0OVx1OGY0ZFx1OTA4N1x1OTA4M1x1OTA4OFx1''@;'; put 'put ''OTFhYlx1OTFhY1x1OTFkMFx1OTM5NFx1OTM4YVx1OTM5Nlx1OTNhMlx1OTNiM1x1OTNhZVx1OTNhY1x1OTNiMFx1OTM5OFx1OTM5YVx1OTM5N1x1OTVkNFx1OTVkNlx1OTVkMFx1OTVkNVx1OTZlMlx1OTZkY1x1OTZkOVx1OTZkYlx1OTZkZVx1OTcyNFx1OTdhM1x1OTdhNlx1ZmZmZCIuc3Bs''@;'; put 'put ''aXQoIiIpLEU9MDtFIT1CWzE5NF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTRdW0VdXT00OTY2NCtFLExbNDk2NjQrRV09QlsxOTRdW0VdKTtmb3IoQlsxOTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdTk3YWRcdTk3ZjlcdTk4NGRcdTk4NGZcdTk4NGNcdTk4NGVcdTk4NTNcdTk4YmFcdTk5M2VcdTk5M2ZcdTk5M2RcdTk5MmVcdTk5YTVcdTlhMGVcdTlhYzFcdTliMDNcdTliMDZcdTliNGZcdTliNGVcdTliNGRcdTliY2FcdTliYzlcdTliZmRcdTliYzhcdTliYzBcdTlk''@;'; put 'put ''NTFcdTlkNWRcdTlkNjBcdTllZTBcdTlmMTVcdTlmMmNcdTUxMzNcdTU2YTVcdTU4ZGVcdTU4ZGZcdTU4ZTJcdTViZjVcdTlmOTBcdTVlZWNcdTYxZjJcdTYxZjdcdTYxZjZcdTYxZjVcdTY1MDBcdTY1MGZcdTY2ZTBcdTY2ZGRcdTZhZTVcdTZhZGRcdTZhZGFcdTZhZDNcdTcwMWJcdTcwMWZc''@;'; put 'put ''dTcwMjhcdTcwMWFcdTcwMWRcdTcwMTVcdTcwMThcdTcyMDZcdTcyMGRcdTcyNThcdTcyYTJcdTczNzhcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczN2FcdTc0YmRcdTc0Y2FcdTc0ZTNcdTc1ODdcdTc1ODZcdTc2NWZcdTc2NjFcdTc3YzdcdTc5MTlcdTc5YjFc''@;'; put 'put ''dTdhNmJcdTdhNjlcdTdjM2VcdTdjM2ZcdTdjMzhcdTdjM2RcdTdjMzdcdTdjNDBcdTdlNmJcdTdlNmRcdTdlNzlcdTdlNjlcdTdlNmFcdTdmODVcdTdlNzNcdTdmYjZcdTdmYjlcdTdmYjhcdTgxZDhcdTg1ZTlcdTg1ZGRcdTg1ZWFcdTg1ZDVcdTg1ZTRcdTg1ZTVcdTg1ZjdcdTg3ZmJcdTg4''@;'; put 'put ''MDVcdTg4MGRcdTg3ZjlcdTg3ZmVcdTg5NjBcdTg5NWZcdTg5NTZcdTg5NWVcdThiNDFcdThiNWNcdThiNThcdThiNDlcdThiNWFcdThiNGVcdThiNGZcdThiNDZcdThiNTlcdThkMDhcdThkMGFcdThlN2NcdThlNzJcdThlODdcdThlNzZcdThlNmNcdThlN2FcdThlNzRcdThmNTRcdThmNGVc''@;'; put 'put ''dThmYWRcdTkwOGFcdTkwOGJcdTkxYjFcdTkxYWVcdTkzZTFcdTkzZDFcdTkzZGZcdTkzYzNcdTkzYzhcdTkzZGNcdTkzZGRcdTkzZDZcdTkzZTJcdTkzY2RcdTkzZDhcdTkzZTRcdTkzZDdcdTkzZThcdTk1ZGNcdTk2YjRcdTk2ZTNcdTk3MmFcdTk3MjdcdTk3NjFcdTk3ZGNcdTk3ZmJcdTk4''@;'; put 'put ''NWVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk1XVtFXV09NDk5MjArRSxMWzQ5OTIwK0VdPUJbMTk1XVtFXSk7Zm9yKEJbMTk2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODU4XHU5ODViXHU5OGJjXHU5OTQ1XHU5OTQ5XHU5YTE2XHU5YTE5XHU5YjBkXHU5YmU4XHU5YmU3XHU5YmQ2XHU5YmRiXHU5ZDg5XHU5ZDYxXHU5ZDcyXHU5ZDZhXHU5ZDZjXHU5ZTkyXHU5ZTk3XHU5ZTkzXHU5ZWI0XHU1MmY4XHU1NmE4XHU1''@;'; put 'put ''NmI3XHU1NmI2XHU1NmI0XHU1NmJjXHU1OGU0XHU1YjQwXHU1YjQzXHU1YjdkXHU1YmY2XHU1ZGM5XHU2MWY4XHU2MWZhXHU2NTE4XHU2NTE0XHU2NTE5XHU2NmU2XHU2NzI3XHU2YWVjXHU3MDNlXHU3MDMwXHU3MDMyXHU3MjEwXHU3MzdiXHU3NGNmXHU3NjYyXHU3NjY1XHU3OTI2XHU3OTJh''@;'; put 'put ''XHU3OTJjXHU3OTJiXHU3YWM3XHU3YWY2XHU3YzRjXHU3YzQzXHU3YzRkXHU3Y2VmXHU3Y2YwXHU4ZmFlXHU3ZTdkXHU3ZTdjXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTgyXHU3ZjRjXHU4MDAwXHU4MWRhXHU4MjY2XHU4NWZiXHU4NWY5XHU4NjExXHU4NWZh''@;'; put 'put ''XHU4NjA2XHU4NjBiXHU4NjA3XHU4NjBhXHU4ODE0XHU4ODE1XHU4OTY0XHU4OWJhXHU4OWY4XHU4YjcwXHU4YjZjXHU4YjY2XHU4YjZmXHU4YjVmXHU4YjZiXHU4ZDBmXHU4ZDBkXHU4ZTg5XHU4ZTgxXHU4ZTg1XHU4ZTgyXHU5MWI0XHU5MWNiXHU5NDE4XHU5NDAzXHU5M2ZkXHU5NWUxXHU5''@;'; put 'put ''NzMwXHU5OGM0XHU5OTUyXHU5OTUxXHU5OWE4XHU5YTJiXHU5YTMwXHU5YTM3XHU5YTM1XHU5YzEzXHU5YzBkXHU5ZTc5XHU5ZWI1XHU5ZWU4XHU5ZjJmXHU5ZjVmXHU5ZjYzXHU5ZjYxXHU1MTM3XHU1MTM4XHU1NmMxXHU1NmMwXHU1NmMyXHU1OTE0XHU1YzZjXHU1ZGNkXHU2MWZjXHU2MWZl''@;'; put 'put ''XHU2NTFkXHU2NTFjXHU2NTk1XHU2NmU5XHU2YWZiXHU2YjA0XHU2YWZhXHU2YmIyXHU3MDRjXHU3MjFiXHU3MmE3XHU3NGQ2XHU3NGQ0XHU3NjY5XHU3N2QzXHU3YzUwXHU3ZThmXHU3ZThjXHU3ZmJjXHU4NjE3XHU4NjJkXHU4NjFhXHU4ODIzXHU4ODIyXHU4ODIxXHU4ODFmXHU4OTZhXHU4''@;'; put 'put ''OTZjXHU4OWJkXHU4Yjc0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5Nl1bRV1dPTUwMTc2K0UsTFs1MDE3NitFXT1CWzE5Nl1bRV0pO2ZvcihCWzE5N109Ilx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGI3N1x1OGI3ZFx1OGQxM1x1OGU4YVx1OGU4ZFx1OGU4Ylx1OGY1Zlx1OGZhZlx1OTFiYVx1OTQyZVx1OTQzM1x1OTQzNVx1OTQzYVx1OTQzOFx1OTQzMlx1OTQyYlx1OTVlMlx1OTczOFx1OTczOVx1OTczMlx1OTdmZlx1''@;'; put 'put ''OTg2N1x1OTg2NVx1OTk1N1x1OWE0NVx1OWE0M1x1OWE0MFx1OWEzZVx1OWFjZlx1OWI1NFx1OWI1MVx1OWMyZFx1OWMyNVx1OWRhZlx1OWRiNFx1OWRjMlx1OWRiOFx1OWU5ZFx1OWVlZlx1OWYxOVx1OWY1Y1x1OWY2Nlx1OWY2N1x1NTEzY1x1NTEzYlx1NTZjOFx1NTZjYVx1NTZjOVx1NWI3''@;'; put 'put ''Zlx1NWRkNFx1NWRkMlx1NWY0ZVx1NjFmZlx1NjUyNFx1NmIwYVx1NmI2MVx1NzA1MVx1NzA1OFx1NzM4MFx1NzRlNFx1NzU4YVx1NzY2ZVx1NzY2Y1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzliM1x1N2M2MFx1N2M1Zlx1ODA3ZVx1ODA3ZFx1ODFkZlx1ODk3''@;'; put 'put ''Mlx1ODk2Zlx1ODlmY1x1OGI4MFx1OGQxNlx1OGQxN1x1OGU5MVx1OGU5M1x1OGY2MVx1OTE0OFx1OTQ0NFx1OTQ1MVx1OTQ1Mlx1OTczZFx1OTczZVx1OTdjM1x1OTdjMVx1OTg2Ylx1OTk1NVx1OWE1NVx1OWE0ZFx1OWFkMlx1OWIxYVx1OWM0OVx1OWMzMVx1OWMzZVx1OWMzYlx1OWRkM1x1''@;'; put 'put ''OWRkN1x1OWYzNFx1OWY2Y1x1OWY2YVx1OWY5NFx1NTZjY1x1NWRkNlx1NjIwMFx1NjUyM1x1NjUyYlx1NjUyYVx1NjZlY1x1NmIxMFx1NzRkYVx1N2FjYVx1N2M2NFx1N2M2M1x1N2M2NVx1N2U5M1x1N2U5Nlx1N2U5NFx1ODFlMlx1ODYzOFx1ODYzZlx1ODgzMVx1OGI4YVx1OTA5MFx1OTA4''@;'; put 'put ''Zlx1OTQ2M1x1OTQ2MFx1OTQ2NFx1OTc2OFx1OTg2Zlx1OTk1Y1x1OWE1YVx1OWE1Ylx1OWE1N1x1OWFkM1x1OWFkNFx1OWFkMVx1OWM1NFx1OWM1N1x1OWM1Nlx1OWRlNVx1OWU5Zlx1OWVmNFx1NTZkMVx1NThlOVx1NjUyY1x1NzA1ZVx1NzY3MVx1NzY3Mlx1NzdkN1x1N2Y1MFx1N2Y4OFx1''@;'; put 'put ''ODgzNlx1ODgzOVx1ODg2Mlx1OGI5M1x1OGI5Mlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTddW0VdXT01MDQzMitFLExbNTA0MzIrRV09QlsxOTddW0VdKTtmb3IoQlsxOThdPSJcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdThiOTZcdTgyNzdcdThkMWJcdTkxYzBcdTk0NmFcdTk3NDJcdTk3NDhcdTk3NDRcdTk3YzZcdTk4NzBcdTlhNWZcdTliMjJcdTliNThcdTljNWZcdTlkZjlcdTlkZmFcdTllN2NcdTllN2RcdTlmMDdc''@;'; put 'put ''dTlmNzdcdTlmNzJcdTVlZjNcdTZiMTZcdTcwNjNcdTdjNmNcdTdjNmVcdTg4M2JcdTg5YzBcdThlYTFcdTkxYzFcdTk0NzJcdTk0NzBcdTk4NzFcdTk5NWVcdTlhZDZcdTliMjNcdTllY2NcdTcwNjRcdTc3ZGFcdThiOWFcdTk0NzdcdTk3YzlcdTlhNjJcdTlhNjVcdTdlOWNcdThiOWNcdThl''@;'; put 'put ''YWFcdTkxYzVcdTk0N2RcdTk0N2VcdTk0N2NcdTljNzdcdTljNzhcdTllZjdcdThjNTRcdTk0N2ZcdTllMWFcdTcyMjhcdTlhNmFcdTliMzFcdTllMWJcdTllMWVcdTdjNzJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk4XVtFXV09NTA2ODgrRSxMWzUwNjg4K0VdPUJbMTk4XVtFXSk7Zm9y''@;'; put 'put ''KEJbMjAxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTQyXHU0ZTVjXHU1MWY1XHU1MzFhXHU1MzgyXHU0ZTA3XHU0ZTBjXHU0ZTQ3XHU0ZThkXHU1NmQ3XHVmYTBjXHU1YzZlXHU1ZjczXHU0ZTBmXHU1MTg3XHU0ZTBlXHU0ZTJl''@;'; put 'put ''XHU0ZTkzXHU0ZWMyXHU0ZWM5XHU0ZWM4XHU1MTk4XHU1MmZjXHU1MzZjXHU1M2I5XHU1NzIwXHU1OTAzXHU1OTJjXHU1YzEwXHU1ZGZmXHU2NWUxXHU2YmIzXHU2YmNjXHU2YzE0XHU3MjNmXHU0ZTMxXHU0ZTNjXHU0ZWU4XHU0ZWRjXHU0ZWU5XHU0ZWUxXHU0ZWRkXHU0ZWRhXHU1MjBjXHU1''@;'; put 'put ''MzFjXHU1MzRjXHU1NzIyXHU1NzIzXHU1OTE3XHU1OTJmXHU1YjgxXHU1Yjg0XHU1YzEyXHU1YzNiXHU1Yzc0XHU1YzczXHU1ZTA0XHU1ZTgwXHU1ZTgyXHU1ZmM5XHU2MjA5XHU2MjUwXHU2YzE1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YzM2XHU2YzQzXHU2''@;'; put 'put ''YzNmXHU2YzNiXHU3MmFlXHU3MmIwXHU3MzhhXHU3OWI4XHU4MDhhXHU5NjFlXHU0ZjBlXHU0ZjE4XHU0ZjJjXHU0ZWY1XHU0ZjE0XHU0ZWYxXHU0ZjAwXHU0ZWY3XHU0ZjA4XHU0ZjFkXHU0ZjAyXHU0ZjA1XHU0ZjIyXHU0ZjEzXHU0ZjA0XHU0ZWY0XHU0ZjEyXHU1MWIxXHU1MjEzXHU1MjA5''@;'; put 'put ''XHU1MjEwXHU1MmE2XHU1MzIyXHU1MzFmXHU1MzRkXHU1MzhhXHU1NDA3XHU1NmUxXHU1NmRmXHU1NzJlXHU1NzJhXHU1NzM0XHU1OTNjXHU1OTgwXHU1OTdjXHU1OTg1XHU1OTdiXHU1OTdlXHU1OTc3XHU1OTdmXHU1YjU2XHU1YzE1XHU1YzI1XHU1YzdjXHU1YzdhXHU1YzdiXHU1YzdlXHU1''@;'; put 'put ''ZGRmXHU1ZTc1XHU1ZTg0XHU1ZjAyXHU1ZjFhXHU1Zjc0XHU1ZmQ1XHU1ZmQ0XHU1ZmNmXHU2MjVjXHU2MjVlXHU2MjY0XHU2MjYxXHU2MjY2XHU2MjYyXHU2MjU5XHU2MjYwXHU2MjVhXHU2MjY1XHU2NWVmXHU2NWVlXHU2NzNlXHU2NzM5XHU2NzM4XHU2NzNiXHU2NzNhXHU2NzNmXHU2NzNj''@;'; put 'put ''XHU2NzMzXHU2YzE4XHU2YzQ2XHU2YzUyXHU2YzVjXHU2YzRmXHU2YzRhXHU2YzU0XHU2YzRiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwMV1bRV1dPTUxNDU2K0UsTFs1MTQ1NitFXT1C''@;'; put 'put ''WzIwMV1bRV0pO2ZvcihCWzIwMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmM0Y1x1NzA3MVx1NzI1ZVx1NzJiNFx1NzJiNVx1NzM4ZVx1NzUyYVx1NzY3Zlx1N2E3NVx1N2Y1MVx1ODI3OFx1ODI3Y1x1ODI4MFx1ODI3ZFx1ODI3''@;'; put 'put ''Zlx1ODY0ZFx1ODk3ZVx1OTA5OVx1OTA5N1x1OTA5OFx1OTA5Ylx1OTA5NFx1OTYyMlx1OTYyNFx1OTYyMFx1OTYyM1x1NGY1Nlx1NGYzYlx1NGY2Mlx1NGY0OVx1NGY1M1x1NGY2NFx1NGYzZVx1NGY2N1x1NGY1Mlx1NGY1Zlx1NGY0MVx1NGY1OFx1NGYyZFx1NGYzM1x1NGYzZlx1NGY2MVx1''@;'; put 'put ''NTE4Zlx1NTFiOVx1NTIxY1x1NTIxZVx1NTIyMVx1NTJhZFx1NTJhZVx1NTMwOVx1NTM2M1x1NTM3Mlx1NTM4ZVx1NTM4Zlx1NTQzMFx1NTQzN1x1NTQyYVx1NTQ1NFx1NTQ0NVx1NTQxOVx1NTQxY1x1NTQyNVx1NTQxOFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''NTQzZFx1NTQ0Zlx1NTQ0MVx1NTQyOFx1NTQyNFx1NTQ0N1x1NTZlZVx1NTZlN1x1NTZlNVx1NTc0MVx1NTc0NVx1NTc0Y1x1NTc0OVx1NTc0Ylx1NTc1Mlx1NTkwNlx1NTk0MFx1NTlhNlx1NTk5OFx1NTlhMFx1NTk5N1x1NTk4ZVx1NTlhMlx1NTk5MFx1NTk4Zlx1NTlhN1x1NTlhMVx1NWI4''@;'; put 'put ''ZVx1NWI5Mlx1NWMyOFx1NWMyYVx1NWM4ZFx1NWM4Zlx1NWM4OFx1NWM4Ylx1NWM4OVx1NWM5Mlx1NWM4YVx1NWM4Nlx1NWM5M1x1NWM5NVx1NWRlMFx1NWUwYVx1NWUwZVx1NWU4Ylx1NWU4OVx1NWU4Y1x1NWU4OFx1NWU4ZFx1NWYwNVx1NWYxZFx1NWY3OFx1NWY3Nlx1NWZkMlx1NWZkMVx1''@;'; put 'put ''NWZkMFx1NWZlZFx1NWZlOFx1NWZlZVx1NWZmM1x1NWZlMVx1NWZlNFx1NWZlM1x1NWZmYVx1NWZlZlx1NWZmN1x1NWZmYlx1NjAwMFx1NWZmNFx1NjIzYVx1NjI4M1x1NjI4Y1x1NjI4ZVx1NjI4Zlx1NjI5NFx1NjI4N1x1NjI3MVx1NjI3Ylx1NjI3YVx1NjI3MFx1NjI4MVx1NjI4OFx1NjI3''@;'; put 'put ''N1x1NjI3ZFx1NjI3Mlx1NjI3NFx1NjUzN1x1NjVmMFx1NjVmNFx1NjVmM1x1NjVmMlx1NjVmNVx1Njc0NVx1Njc0N1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDJdW0VdXT01MTcxMitF''@;'; put 'put ''LExbNTE3MTIrRV09QlsyMDJdW0VdKTtmb3IoQlsyMDNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY3NTlcdTY3NTVcdTY3NGNcdTY3NDhcdTY3NWRcdTY3NGRcdTY3NWFcdTY3NGJcdTZiZDBcdTZjMTlcdTZjMWFcdTZjNzhcdTZj''@;'; put 'put ''NjdcdTZjNmJcdTZjODRcdTZjOGJcdTZjOGZcdTZjNzFcdTZjNmZcdTZjNjlcdTZjOWFcdTZjNmRcdTZjODdcdTZjOTVcdTZjOWNcdTZjNjZcdTZjNzNcdTZjNjVcdTZjN2JcdTZjOGVcdTcwNzRcdTcwN2FcdTcyNjNcdTcyYmZcdTcyYmRcdTcyYzNcdTcyYzZcdTcyYzFcdTcyYmFcdTcyYzVc''@;'; put 'put ''dTczOTVcdTczOTdcdTczOTNcdTczOTRcdTczOTJcdTc1M2FcdTc1MzlcdTc1OTRcdTc1OTVcdTc2ODFcdTc5M2RcdTgwMzRcdTgwOTVcdTgwOTlcdTgwOTBcdTgwOTJcdTgwOWNcdTgyOTBcdTgyOGZcdTgyODVcdTgyOGVcdTgyOTFcdTgyOTNcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdTgyOGFcdTgyODNcdTgyODRcdThjNzhcdThmYzlcdThmYmZcdTkwOWZcdTkwYTFcdTkwYTVcdTkwOWVcdTkwYTdcdTkwYTBcdTk2MzBcdTk2MjhcdTk2MmZcdTk2MmRcdTRlMzNcdTRmOThcdTRmN2NcdTRmODVcdTRmN2RcdTRmODBcdTRmODdcdTRmNzZcdTRmNzRcdTRm''@;'; put 'put ''ODlcdTRmODRcdTRmNzdcdTRmNGNcdTRmOTdcdTRmNmFcdTRmOWFcdTRmNzlcdTRmODFcdTRmNzhcdTRmOTBcdTRmOWNcdTRmOTRcdTRmOWVcdTRmOTJcdTRmODJcdTRmOTVcdTRmNmJcdTRmNmVcdTUxOWVcdTUxYmNcdTUxYmVcdTUyMzVcdTUyMzJcdTUyMzNcdTUyNDZcdTUyMzFcdTUyYmNc''@;'; put 'put ''dTUzMGFcdTUzMGJcdTUzM2NcdTUzOTJcdTUzOTRcdTU0ODdcdTU0N2ZcdTU0ODFcdTU0OTFcdTU0ODJcdTU0ODhcdTU0NmJcdTU0N2FcdTU0N2VcdTU0NjVcdTU0NmNcdTU0NzRcdTU0NjZcdTU0OGRcdTU0NmZcdTU0NjFcdTU0NjBcdTU0OThcdTU0NjNcdTU0NjdcdTU0NjRcdTU2ZjdcdTU2''@;'; put 'put ''ZjlcdTU3NmZcdTU3NzJcdTU3NmRcdTU3NmJcdTU3NzFcdTU3NzBcdTU3NzZcdTU3ODBcdTU3NzVcdTU3N2JcdTU3NzNcdTU3NzRcdTU3NjJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAz''@;'; put 'put ''XVtFXV09NTE5NjgrRSxMWzUxOTY4K0VdPUJbMjAzXVtFXSk7Zm9yKEJbMjA0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzY4XHU1NzdkXHU1OTBjXHU1OTQ1XHU1OWI1XHU1OWJhXHU1OWNmXHU1OWNlXHU1OWIyXHU1OWNjXHU1''@;'; put 'put ''OWMxXHU1OWI2XHU1OWJjXHU1OWMzXHU1OWQ2XHU1OWIxXHU1OWJkXHU1OWMwXHU1OWM4XHU1OWI0XHU1OWM3XHU1YjYyXHU1YjY1XHU1YjkzXHU1Yjk1XHU1YzQ0XHU1YzQ3XHU1Y2FlXHU1Y2E0XHU1Y2EwXHU1Y2I1XHU1Y2FmXHU1Y2E4XHU1Y2FjXHU1YzlmXHU1Y2EzXHU1Y2FkXHU1Y2Ey''@;'; put 'put ''XHU1Y2FhXHU1Y2E3XHU1YzlkXHU1Y2E1XHU1Y2I2XHU1Y2IwXHU1Y2E2XHU1ZTE3XHU1ZTE0XHU1ZTE5XHU1ZjI4XHU1ZjIyXHU1ZjIzXHU1ZjI0XHU1ZjU0XHU1ZjgyXHU1ZjdlXHU1ZjdkXHU1ZmRlXHU1ZmU1XHU2MDJkXHU2MDI2XHU2MDE5XHU2MDMyXHU2MDBiXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDM0XHU2MDBhXHU2MDE3XHU2MDMzXHU2MDFhXHU2MDFlXHU2MDJjXHU2MDIyXHU2MDBkXHU2MDEwXHU2MDJlXHU2MDEzXHU2MDExXHU2MDBjXHU2MDA5XHU2MDFjXHU2MjE0XHU2MjNkXHU2MmFkXHU2MmI0XHU2MmQxXHU2MmJlXHU2MmFhXHU2''@;'; put 'put ''MmI2XHU2MmNhXHU2MmFlXHU2MmIzXHU2MmFmXHU2MmJiXHU2MmE5XHU2MmIwXHU2MmI4XHU2NTNkXHU2NWE4XHU2NWJiXHU2NjA5XHU2NWZjXHU2NjA0XHU2NjEyXHU2NjA4XHU2NWZiXHU2NjAzXHU2NjBiXHU2NjBkXHU2NjA1XHU2NWZkXHU2NjExXHU2NjEwXHU2NmY2XHU2NzBhXHU2Nzg1''@;'; put 'put ''XHU2NzZjXHU2NzhlXHU2NzkyXHU2Nzc2XHU2NzdiXHU2Nzk4XHU2Nzg2XHU2Nzg0XHU2Nzc0XHU2NzhkXHU2NzhjXHU2NzdhXHU2NzlmXHU2NzkxXHU2Nzk5XHU2NzgzXHU2NzdkXHU2NzgxXHU2Nzc4XHU2Nzc5XHU2Nzk0XHU2YjI1XHU2YjgwXHU2YjdlXHU2YmRlXHU2YzFkXHU2YzkzXHU2''@;'; put 'put ''Y2VjXHU2Y2ViXHU2Y2VlXHU2Y2Q5XHU2Y2I2XHU2Y2Q0XHU2Y2FkXHU2Y2U3XHU2Y2I3XHU2Y2QwXHU2Y2MyXHU2Y2JhXHU2Y2MzXHU2Y2M2XHU2Y2VkXHU2Y2YyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDRdW0VdLmNoYXJDb2RlQXQo''@;'; put 'put ''MCkmJihtZVtCWzIwNF1bRV1dPTUyMjI0K0UsTFs1MjIyNCtFXT1CWzIwNF1bRV0pO2ZvcihCWzIwNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmNkMlx1NmNkZFx1NmNiNFx1NmM4YVx1NmM5ZFx1NmM4MFx1NmNkZVx1NmNjMFx1''@;'; put 'put ''NmQzMFx1NmNjZFx1NmNjN1x1NmNiMFx1NmNmOVx1NmNjZlx1NmNlOVx1NmNkMVx1NzA5NFx1NzA5OFx1NzA4NVx1NzA5M1x1NzA4Nlx1NzA4NFx1NzA5MVx1NzA5Nlx1NzA4Mlx1NzA5YVx1NzA4M1x1NzI2YVx1NzJkNlx1NzJjYlx1NzJkOFx1NzJjOVx1NzJkY1x1NzJkMlx1NzJkNFx1NzJk''@;'; put 'put ''YVx1NzJjY1x1NzJkMVx1NzNhNFx1NzNhMVx1NzNhZFx1NzNhNlx1NzNhMlx1NzNhMFx1NzNhY1x1NzM5ZFx1NzRkZFx1NzRlOFx1NzUzZlx1NzU0MFx1NzUzZVx1NzU4Y1x1NzU5OFx1NzZhZlx1NzZmM1x1NzZmMVx1NzZmMFx1NzZmNVx1NzdmOFx1NzdmY1x1NzdmOVx1NzdmYlx1NzdmYVx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzdmN1x1Nzk0Mlx1NzkzZlx1NzljNVx1N2E3OFx1N2E3Ylx1N2FmYlx1N2M3NVx1N2NmZFx1ODAzNVx1ODA4Zlx1ODBhZVx1ODBhM1x1ODBiOFx1ODBiNVx1ODBhZFx1ODIyMFx1ODJhMFx1ODJjMFx1ODJhYlx1ODI5YVx1''@;'; put 'put ''ODI5OFx1ODI5Ylx1ODJiNVx1ODJhN1x1ODJhZVx1ODJiY1x1ODI5ZVx1ODJiYVx1ODJiNFx1ODJhOFx1ODJhMVx1ODJhOVx1ODJjMlx1ODJhNFx1ODJjM1x1ODJiNlx1ODJhMlx1ODY3MFx1ODY2Zlx1ODY2ZFx1ODY2ZVx1OGM1Nlx1OGZkMlx1OGZjYlx1OGZkM1x1OGZjZFx1OGZkNlx1OGZk''@;'; put 'put ''NVx1OGZkN1x1OTBiMlx1OTBiNFx1OTBhZlx1OTBiM1x1OTBiMFx1OTYzOVx1OTYzZFx1OTYzY1x1OTYzYVx1OTY0M1x1NGZjZFx1NGZjNVx1NGZkM1x1NGZiMlx1NGZjOVx1NGZjYlx1NGZjMVx1NGZkNFx1NGZkY1x1NGZkOVx1NGZiYlx1NGZiM1x1NGZkYlx1NGZjN1x1NGZkNlx1NGZiYVx1''@;'; put 'put ''NGZjMFx1NGZiOVx1NGZlY1x1NTI0NFx1NTI0OVx1NTJjMFx1NTJjMlx1NTMzZFx1NTM3Y1x1NTM5N1x1NTM5Nlx1NTM5OVx1NTM5OFx1NTRiYVx1NTRhMVx1NTRhZFx1NTRhNVx1NTRjZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA1XVtF''@;'; put 'put ''XS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDVdW0VdXT01MjQ4MCtFLExbNTI0ODArRV09QlsyMDVdW0VdKTtmb3IoQlsyMDZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU0YzNcdTgzMGRcdTU0YjdcdTU0YWVcdTU0ZDZcdTU0YjZc''@;'; put 'put ''dTU0YzVcdTU0YzZcdTU0YTBcdTU0NzBcdTU0YmNcdTU0YTJcdTU0YmVcdTU0NzJcdTU0ZGVcdTU0YjBcdTU3YjVcdTU3OWVcdTU3OWZcdTU3YTRcdTU3OGNcdTU3OTdcdTU3OWRcdTU3OWJcdTU3OTRcdTU3OThcdTU3OGZcdTU3OTlcdTU3YTVcdTU3OWFcdTU3OTVcdTU4ZjRcdTU5MGRcdTU5''@;'; put 'put ''NTNcdTU5ZTFcdTU5ZGVcdTU5ZWVcdTVhMDBcdTU5ZjFcdTU5ZGRcdTU5ZmFcdTU5ZmRcdTU5ZmNcdTU5ZjZcdTU5ZTRcdTU5ZjJcdTU5ZjdcdTU5ZGJcdTU5ZTlcdTU5ZjNcdTU5ZjVcdTU5ZTBcdTU5ZmVcdTU5ZjRcdTU5ZWRcdTViYThcdTVjNGNcdTVjZDBcdTVjZDhcdTVjY2NcdTVjZDdc''@;'; put 'put ''dTVjY2JcdTVjZGJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjZGVcdTVjZGFcdTVjYzlcdTVjYzdcdTVjY2FcdTVjZDZcdTVjZDNcdTVjZDRcdTVjY2ZcdTVjYzhcdTVjYzZcdTVjY2VcdTVjZGZcdTVjZjhcdTVkZjlcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjBc''@;'; put 'put ''dTVlMjRcdTVlYjBcdTVlYTRcdTVlYTJcdTVlOWJcdTVlYTNcdTVlYTVcdTVmMDdcdTVmMmVcdTVmNTZcdTVmODZcdTYwMzdcdTYwMzlcdTYwNTRcdTYwNzJcdTYwNWVcdTYwNDVcdTYwNTNcdTYwNDdcdTYwNDlcdTYwNWJcdTYwNGNcdTYwNDBcdTYwNDJcdTYwNWZcdTYwMjRcdTYwNDRcdTYw''@;'; put 'put ''NThcdTYwNjZcdTYwNmVcdTYyNDJcdTYyNDNcdTYyY2ZcdTYzMGRcdTYzMGJcdTYyZjVcdTYzMGVcdTYzMDNcdTYyZWJcdTYyZjlcdTYzMGZcdTYzMGNcdTYyZjhcdTYyZjZcdTYzMDBcdTYzMTNcdTYzMTRcdTYyZmFcdTYzMTVcdTYyZmJcdTYyZjBcdTY1NDFcdTY1NDNcdTY1YWFcdTY1YmZc''@;'; put 'put ''dTY2MzZcdTY2MjFcdTY2MzJcdTY2MzVcdTY2MWNcdTY2MjZcdTY2MjJcdTY2MzNcdTY2MmJcdTY2M2FcdTY2MWRcdTY2MzRcdTY2MzlcdTY2MmVcdTY3MGZcdTY3MTBcdTY3YzFcdTY3ZjJcdTY3YzhcdTY3YmFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDZdLmxlbmd0aDsrK0UpNjU1''@;'; put 'put ''MzMhPT1CWzIwNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA2XVtFXV09NTI3MzYrRSxMWzUyNzM2K0VdPUJbMjA2XVtFXSk7Zm9yKEJbMjA3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2N2RjXHU2N2JiXHU2N2Y4XHU2N2Q4''@;'; put 'put ''XHU2N2MwXHU2N2I3XHU2N2M1XHU2N2ViXHU2N2U0XHU2N2RmXHU2N2I1XHU2N2NkXHU2N2IzXHU2N2Y3XHU2N2Y2XHU2N2VlXHU2N2UzXHU2N2MyXHU2N2I5XHU2N2NlXHU2N2U3XHU2N2YwXHU2N2IyXHU2N2ZjXHU2N2M2XHU2N2VkXHU2N2NjXHU2N2FlXHU2N2U2XHU2N2RiXHU2N2ZhXHU2''@;'; put 'put ''N2M5XHU2N2NhXHU2N2MzXHU2N2VhXHU2N2NiXHU2YjI4XHU2YjgyXHU2Yjg0XHU2YmI2XHU2YmQ2XHU2YmQ4XHU2YmUwXHU2YzIwXHU2YzIxXHU2ZDI4XHU2ZDM0XHU2ZDJkXHU2ZDFmXHU2ZDNjXHU2ZDNmXHU2ZDEyXHU2ZDBhXHU2Y2RhXHU2ZDMzXHU2ZDA0XHU2ZDE5XHU2ZDNhXHU2ZDFh''@;'; put 'put ''XHU2ZDExXHU2ZDAwXHU2ZDFkXHU2ZDQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDAxXHU2ZDE4XHU2ZDM3XHU2ZDAzXHU2ZDBmXHU2ZDQwXHU2ZDA3XHU2ZDIwXHU2ZDJjXHU2ZDA4XHU2ZDIyXHU2ZDA5XHU2ZDEwXHU3MGI3XHU3MDlmXHU3MGJlXHU3MGIx''@;'; put 'put ''XHU3MGIwXHU3MGExXHU3MGI0XHU3MGI1XHU3MGE5XHU3MjQxXHU3MjQ5XHU3MjRhXHU3MjZjXHU3MjcwXHU3MjczXHU3MjZlXHU3MmNhXHU3MmU0XHU3MmU4XHU3MmViXHU3MmRmXHU3MmVhXHU3MmU2XHU3MmUzXHU3Mzg1XHU3M2NjXHU3M2MyXHU3M2M4XHU3M2M1XHU3M2I5XHU3M2I2XHU3''@;'; put 'put ''M2I1XHU3M2I0XHU3M2ViXHU3M2JmXHU3M2M3XHU3M2JlXHU3M2MzXHU3M2M2XHU3M2I4XHU3M2NiXHU3NGVjXHU3NGVlXHU3NTJlXHU3NTQ3XHU3NTQ4XHU3NWE3XHU3NWFhXHU3Njc5XHU3NmM0XHU3NzA4XHU3NzAzXHU3NzA0XHU3NzA1XHU3NzBhXHU3NmY3XHU3NmZiXHU3NmZhXHU3N2U3''@;'; put 'put ''XHU3N2U4XHU3ODA2XHU3ODExXHU3ODEyXHU3ODA1XHU3ODEwXHU3ODBmXHU3ODBlXHU3ODA5XHU3ODAzXHU3ODEzXHU3OTRhXHU3OTRjXHU3OTRiXHU3OTQ1XHU3OTQ0XHU3OWQ1XHU3OWNkXHU3OWNmXHU3OWQ2XHU3OWNlXHU3YTgwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA3XS5s''@;'; put 'put ''ZW5ndGg7KytFKTY1NTMzIT09QlsyMDddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwN11bRV1dPTUyOTkyK0UsTFs1Mjk5MitFXT1CWzIwN11bRV0pO2ZvcihCWzIwOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2E3ZVx1N2Fk''@;'; put 'put ''MVx1N2IwMFx1N2IwMVx1N2M3YVx1N2M3OFx1N2M3OVx1N2M3Zlx1N2M4MFx1N2M4MVx1N2QwM1x1N2QwOFx1N2QwMVx1N2Y1OFx1N2Y5MVx1N2Y4ZFx1N2ZiZVx1ODAwN1x1ODAwZVx1ODAwZlx1ODAxNFx1ODAzN1x1ODBkOFx1ODBjN1x1ODBlMFx1ODBkMVx1ODBjOFx1ODBjMlx1ODBkMFx1''@;'; put 'put ''ODBjNVx1ODBlM1x1ODBkOVx1ODBkY1x1ODBjYVx1ODBkNVx1ODBjOVx1ODBjZlx1ODBkN1x1ODBlNlx1ODBjZFx1ODFmZlx1ODIyMVx1ODI5NFx1ODJkOVx1ODJmZVx1ODJmOVx1ODMwN1x1ODJlOFx1ODMwMFx1ODJkNVx1ODMzYVx1ODJlYlx1ODJkNlx1ODJmNFx1ODJlY1x1ODJlMVx1ODJm''@;'; put 'put ''Mlx1ODJmNVx1ODMwY1x1ODJmYlx1ODJmNlx1ODJmMFx1ODJlYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODJlNFx1ODJlMFx1ODJmYVx1ODJmM1x1ODJlZFx1ODY3N1x1ODY3NFx1ODY3Y1x1ODY3M1x1ODg0MVx1ODg0ZVx1ODg2N1x1ODg2YVx1ODg2OVx1ODlk''@;'; put 'put ''M1x1OGEwNFx1OGEwN1x1OGQ3Mlx1OGZlM1x1OGZlMVx1OGZlZVx1OGZlMFx1OTBmMVx1OTBiZFx1OTBiZlx1OTBkNVx1OTBjNVx1OTBiZVx1OTBjN1x1OTBjYlx1OTBjOFx1OTFkNFx1OTFkM1x1OTY1NFx1OTY0Zlx1OTY1MVx1OTY1M1x1OTY0YVx1OTY0ZVx1NTAxZVx1NTAwNVx1NTAwN1x1''@;'; put 'put ''NTAxM1x1NTAyMlx1NTAzMFx1NTAxYlx1NGZmNVx1NGZmNFx1NTAzM1x1NTAzN1x1NTAyY1x1NGZmNlx1NGZmN1x1NTAxN1x1NTAxY1x1NTAyMFx1NTAyN1x1NTAzNVx1NTAyZlx1NTAzMVx1NTAwZVx1NTE1YVx1NTE5NFx1NTE5M1x1NTFjYVx1NTFjNFx1NTFjNVx1NTFjOFx1NTFjZVx1NTI2''@;'; put 'put ''MVx1NTI1YVx1NTI1Mlx1NTI1ZVx1NTI1Zlx1NTI1NVx1NTI2Mlx1NTJjZFx1NTMwZVx1NTM5ZVx1NTUyNlx1NTRlMlx1NTUxN1x1NTUxMlx1NTRlN1x1NTRmM1x1NTRlNFx1NTUxYVx1NTRmZlx1NTUwNFx1NTUwOFx1NTRlYlx1NTUxMVx1NTUwNVx1NTRmMVx1ZmZmZCIuc3BsaXQoIiIpLEU9''@;'; put 'put ''MDtFIT1CWzIwOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDhdW0VdXT01MzI0OCtFLExbNTMyNDgrRV09QlsyMDhdW0VdKTtmb3IoQlsyMDldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdTU1MGFcdTU0ZmJcdTU0ZjdcdTU0ZjhcdTU0ZTBcdTU1MGVcdTU1MDNcdTU1MGJcdTU3MDFcdTU3MDJcdTU3Y2NcdTU4MzJcdTU3ZDVcdTU3ZDJcdTU3YmFcdTU3YzZcdTU3YmRcdTU3YmNcdTU3YjhcdTU3YjZcdTU3YmZcdTU3YzdcdTU3ZDBcdTU3YjlcdTU3YzFcdTU5MGVcdTU5NGFc''@;'; put 'put ''dTVhMTlcdTVhMTZcdTVhMmRcdTVhMmVcdTVhMTVcdTVhMGZcdTVhMTdcdTVhMGFcdTVhMWVcdTVhMzNcdTViNmNcdTViYTdcdTViYWRcdTViYWNcdTVjMDNcdTVjNTZcdTVjNTRcdTVjZWNcdTVjZmZcdTVjZWVcdTVjZjFcdTVjZjdcdTVkMDBcdTVjZjlcdTVlMjlcdTVlMjhcdTVlYThcdTVl''@;'; put 'put ''YWVcdTVlYWFcdTVlYWNcdTVmMzNcdTVmMzBcdTVmNjdcdTYwNWRcdTYwNWFcdTYwNjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwNDFcdTYwYTJcdTYwODhcdTYwODBcdTYwOTJcdTYwODFcdTYwOWRcdTYwODNcdTYwOTVcdTYwOWJcdTYwOTdcdTYwODdcdTYw''@;'; put 'put ''OWNcdTYwOGVcdTYyMTlcdTYyNDZcdTYyZjJcdTYzMTBcdTYzNTZcdTYzMmNcdTYzNDRcdTYzNDVcdTYzMzZcdTYzNDNcdTYzZTRcdTYzMzlcdTYzNGJcdTYzNGFcdTYzM2NcdTYzMjlcdTYzNDFcdTYzMzRcdTYzNThcdTYzNTRcdTYzNTlcdTYzMmRcdTYzNDdcdTYzMzNcdTYzNWFcdTYzNTFc''@;'; put 'put ''dTYzMzhcdTYzNTdcdTYzNDBcdTYzNDhcdTY1NGFcdTY1NDZcdTY1YzZcdTY1YzNcdTY1YzRcdTY1YzJcdTY2NGFcdTY2NWZcdTY2NDdcdTY2NTFcdTY3MTJcdTY3MTNcdTY4MWZcdTY4MWFcdTY4NDlcdTY4MzJcdTY4MzNcdTY4M2JcdTY4NGJcdTY4NGZcdTY4MTZcdTY4MzFcdTY4MWNcdTY4''@;'; put 'put ''MzVcdTY4MmJcdTY4MmRcdTY4MmZcdTY4NGVcdTY4NDRcdTY4MzRcdTY4MWRcdTY4MTJcdTY4MTRcdTY4MjZcdTY4MjhcdTY4MmVcdTY4NGRcdTY4M2FcdTY4MjVcdTY4MjBcdTZiMmNcdTZiMmZcdTZiMmRcdTZiMzFcdTZiMzRcdTZiNmRcdTgwODJcdTZiODhcdTZiZTZcdTZiZTRcdWZmZmQi''@;'; put 'put ''LnNwbGl0KCIiKSxFPTA7RSE9QlsyMDldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA5XVtFXV09NTM1MDQrRSxMWzUzNTA0K0VdPUJbMjA5XVtFXSk7Zm9yKEJbMjEwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU2YmU4XHU2YmUzXHU2YmUyXHU2YmU3XHU2YzI1XHU2ZDdhXHU2ZDYzXHU2ZDY0XHU2ZDc2XHU2ZDBkXHU2ZDYxXHU2ZDkyXHU2ZDU4XHU2ZDYyXHU2ZDZkXHU2ZDZmXHU2ZDkxXHU2ZDhkXHU2ZGVmXHU2ZDdmXHU2ZDg2XHU2ZDVlXHU2ZDY3XHU2ZDYwXHU2ZDk3''@;'; put 'put ''XHU2ZDcwXHU2ZDdjXHU2ZDVmXHU2ZDgyXHU2ZDk4XHU2ZDJmXHU2ZDY4XHU2ZDhiXHU2ZDdlXHU2ZDgwXHU2ZDg0XHU2ZDE2XHU2ZDgzXHU2ZDdiXHU2ZDdkXHU2ZDc1XHU2ZDkwXHU3MGRjXHU3MGQzXHU3MGQxXHU3MGRkXHU3MGNiXHU3ZjM5XHU3MGUyXHU3MGQ3XHU3MGQyXHU3MGRlXHU3''@;'; put 'put ''MGUwXHU3MGQ0XHU3MGNkXHU3MGM1XHU3MGM2XHU3MGM3XHU3MGRhXHU3MGNlXHU3MGUxXHU3MjQyXHU3Mjc4XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Mjc3XHU3Mjc2XHU3MzAwXHU3MmZhXHU3MmY0XHU3MmZlXHU3MmY2XHU3MmYzXHU3MmZiXHU3MzAxXHU3''@;'; put 'put ''M2QzXHU3M2Q5XHU3M2U1XHU3M2Q2XHU3M2JjXHU3M2U3XHU3M2UzXHU3M2U5XHU3M2RjXHU3M2QyXHU3M2RiXHU3M2Q0XHU3M2RkXHU3M2RhXHU3M2Q3XHU3M2Q4XHU3M2U4XHU3NGRlXHU3NGRmXHU3NGY0XHU3NGY1XHU3NTIxXHU3NTViXHU3NTVmXHU3NWIwXHU3NWMxXHU3NWJiXHU3NWM0''@;'; put 'put ''XHU3NWMwXHU3NWJmXHU3NWI2XHU3NWJhXHU3NjhhXHU3NmM5XHU3NzFkXHU3NzFiXHU3NzEwXHU3NzEzXHU3NzEyXHU3NzIzXHU3NzExXHU3NzE1XHU3NzE5XHU3NzFhXHU3NzIyXHU3NzI3XHU3ODIzXHU3ODJjXHU3ODIyXHU3ODM1XHU3ODJmXHU3ODI4XHU3ODJlXHU3ODJiXHU3ODIxXHU3''@;'; put 'put ''ODI5XHU3ODMzXHU3ODJhXHU3ODMxXHU3OTU0XHU3OTViXHU3OTRmXHU3OTVjXHU3OTUzXHU3OTUyXHU3OTUxXHU3OWViXHU3OWVjXHU3OWUwXHU3OWVlXHU3OWVkXHU3OWVhXHU3OWRjXHU3OWRlXHU3OWRkXHU3YTg2XHU3YTg5XHU3YTg1XHU3YThiXHU3YThjXHU3YThhXHU3YTg3XHU3YWQ4''@;'; put 'put ''XHU3YjEwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxMF1bRV1dPTUzNzYwK0UsTFs1Mzc2MCtFXT1CWzIxMF1bRV0pO2ZvcihCWzIxMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2IwNFx1N2IxM1x1N2IwNVx1N2IwZlx1N2IwOFx1N2IwYVx1N2IwZVx1N2IwOVx1N2IxMlx1N2M4NFx1N2M5MVx1N2M4YVx1N2M4Y1x1N2M4OFx1N2M4ZFx1N2M4NVx1N2QxZVx1N2QxZFx1N2QxMVx1N2QwZVx1N2QxOFx1N2QxNlx1N2Qx''@;'; put 'put ''M1x1N2QxZlx1N2QxMlx1N2QwZlx1N2QwY1x1N2Y1Y1x1N2Y2MVx1N2Y1ZVx1N2Y2MFx1N2Y1ZFx1N2Y1Ylx1N2Y5Nlx1N2Y5Mlx1N2ZjM1x1N2ZjMlx1N2ZjMFx1ODAxNlx1ODAzZVx1ODAzOVx1ODBmYVx1ODBmMlx1ODBmOVx1ODBmNVx1ODEwMVx1ODBmYlx1ODEwMFx1ODIwMVx1ODIyZlx1''@;'; put 'put ''ODIyNVx1ODMzM1x1ODMyZFx1ODM0NFx1ODMxOVx1ODM1MVx1ODMyNVx1ODM1Nlx1ODMzZlx1ODM0MVx1ODMyNlx1ODMxY1x1ODMyMlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODM0Mlx1ODM0ZVx1ODMxYlx1ODMyYVx1ODMwOFx1ODMzY1x1ODM0ZFx1ODMxNlx1''@;'; put 'put ''ODMyNFx1ODMyMFx1ODMzN1x1ODMyZlx1ODMyOVx1ODM0N1x1ODM0NVx1ODM0Y1x1ODM1M1x1ODMxZVx1ODMyY1x1ODM0Ylx1ODMyN1x1ODM0OFx1ODY1M1x1ODY1Mlx1ODZhMlx1ODZhOFx1ODY5Nlx1ODY4ZFx1ODY5MVx1ODY5ZVx1ODY4N1x1ODY5N1x1ODY4Nlx1ODY4Ylx1ODY5YVx1ODY4''@;'; put 'put ''NVx1ODZhNVx1ODY5OVx1ODZhMVx1ODZhN1x1ODY5NVx1ODY5OFx1ODY4ZVx1ODY5ZFx1ODY5MFx1ODY5NFx1ODg0M1x1ODg0NFx1ODg2ZFx1ODg3NVx1ODg3Nlx1ODg3Mlx1ODg4MFx1ODg3MVx1ODg3Zlx1ODg2Zlx1ODg4M1x1ODg3ZVx1ODg3NFx1ODg3Y1x1OGExMlx1OGM0N1x1OGM1N1x1''@;'; put 'put ''OGM3Ylx1OGNhNFx1OGNhM1x1OGQ3Nlx1OGQ3OFx1OGRiNVx1OGRiN1x1OGRiNlx1OGVkMVx1OGVkM1x1OGZmZVx1OGZmNVx1OTAwMlx1OGZmZlx1OGZmYlx1OTAwNFx1OGZmY1x1OGZmNlx1OTBkNlx1OTBlMFx1OTBkOVx1OTBkYVx1OTBlM1x1OTBkZlx1OTBlNVx1OTBkOFx1OTBkYlx1OTBk''@;'; put 'put ''N1x1OTBkY1x1OTBlNFx1OTE1MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjExXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTFdW0VdXT01NDAxNitFLExbNTQwMTYrRV09QlsyMTFdW0VdKTtmb3IoQlsyMTJdPSJcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkxNGVcdTkxNGZcdTkxZDVcdTkxZTJcdTkxZGFcdTk2NWNcdTk2NWZcdTk2YmNcdTk4ZTNcdTlhZGZcdTliMmZcdTRlN2ZcdTUwNzBcdTUwNmFcdTUwNjFcdTUwNWVcdTUwNjBcdTUwNTNcdTUwNGJcdTUwNWRcdTUw''@;'; put 'put ''NzJcdTUwNDhcdTUwNGRcdTUwNDFcdTUwNWJcdTUwNGFcdTUwNjJcdTUwMTVcdTUwNDVcdTUwNWZcdTUwNjlcdTUwNmJcdTUwNjNcdTUwNjRcdTUwNDZcdTUwNDBcdTUwNmVcdTUwNzNcdTUwNTdcdTUwNTFcdTUxZDBcdTUyNmJcdTUyNmRcdTUyNmNcdTUyNmVcdTUyZDZcdTUyZDNcdTUzMmRc''@;'; put 'put ''dTUzOWNcdTU1NzVcdTU1NzZcdTU1M2NcdTU1NGRcdTU1NTBcdTU1MzRcdTU1MmFcdTU1NTFcdTU1NjJcdTU1MzZcdTU1MzVcdTU1MzBcdTU1NTJcdTU1NDVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU1MGNcdTU1MzJcdTU1NjVcdTU1NGVcdTU1MzlcdTU1NDhc''@;'; put 'put ''dTU1MmRcdTU1M2JcdTU1NDBcdTU1NGJcdTU3MGFcdTU3MDdcdTU3ZmJcdTU4MTRcdTU3ZTJcdTU3ZjZcdTU3ZGNcdTU3ZjRcdTU4MDBcdTU3ZWRcdTU3ZmRcdTU4MDhcdTU3ZjhcdTU4MGJcdTU3ZjNcdTU3Y2ZcdTU4MDdcdTU3ZWVcdTU3ZTNcdTU3ZjJcdTU3ZTVcdTU3ZWNcdTU3ZTFcdTU4''@;'; put 'put ''MGVcdTU3ZmNcdTU4MTBcdTU3ZTdcdTU4MDFcdTU4MGNcdTU3ZjFcdTU3ZTlcdTU3ZjBcdTU4MGRcdTU4MDRcdTU5NWNcdTVhNjBcdTVhNThcdTVhNTVcdTVhNjdcdTVhNWVcdTVhMzhcdTVhMzVcdTVhNmRcdTVhNTBcdTVhNWZcdTVhNjVcdTVhNmNcdTVhNTNcdTVhNjRcdTVhNTdcdTVhNDNc''@;'; put 'put ''dTVhNWRcdTVhNTJcdTVhNDRcdTVhNWJcdTVhNDhcdTVhOGVcdTVhM2VcdTVhNGRcdTVhMzlcdTVhNGNcdTVhNzBcdTVhNjlcdTVhNDdcdTVhNTFcdTVhNTZcdTVhNDJcdTVhNWNcdTViNzJcdTViNmVcdTViYzFcdTViYzBcdTVjNTlcdTVkMWVcdTVkMGJcdTVkMWRcdTVkMWFcdTVkMjBcdTVk''@;'; put 'put ''MGNcdTVkMjhcdTVkMGRcdTVkMjZcdTVkMjVcdTVkMGZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjEyXVtFXV09NTQyNzIrRSxMWzU0MjcyK0VdPUJbMjEyXVtFXSk7Zm9yKEJbMjEzXT0i''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZDMwXHU1ZDEyXHU1ZDIzXHU1ZDFmXHU1ZDJlXHU1ZTNlXHU1ZTM0XHU1ZWIxXHU1ZWI0XHU1ZWI5XHU1ZWIyXHU1ZWIzXHU1ZjM2XHU1ZjM4XHU1ZjliXHU1Zjk2XHU1ZjlmXHU2MDhhXHU2''@;'; put 'put ''MDkwXHU2MDg2XHU2MGJlXHU2MGIwXHU2MGJhXHU2MGQzXHU2MGQ0XHU2MGNmXHU2MGU0XHU2MGQ5XHU2MGRkXHU2MGM4XHU2MGIxXHU2MGRiXHU2MGI3XHU2MGNhXHU2MGJmXHU2MGMzXHU2MGNkXHU2MGMwXHU2MzMyXHU2MzY1XHU2MzhhXHU2MzgyXHU2MzdkXHU2M2JkXHU2MzllXHU2M2Fk''@;'; put 'put ''XHU2MzlkXHU2Mzk3XHU2M2FiXHU2MzhlXHU2MzZmXHU2Mzg3XHU2MzkwXHU2MzZlXHU2M2FmXHU2Mzc1XHU2MzljXHU2MzZkXHU2M2FlXHU2MzdjXHU2M2E0XHU2MzNiXHU2MzlmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2Mzc4XHU2Mzg1XHU2MzgxXHU2Mzkx''@;'; put 'put ''XHU2MzhkXHU2MzcwXHU2NTUzXHU2NWNkXHU2NjY1XHU2NjYxXHU2NjViXHU2NjU5XHU2NjVjXHU2NjYyXHU2NzE4XHU2ODc5XHU2ODg3XHU2ODkwXHU2ODljXHU2ODZkXHU2ODZlXHU2OGFlXHU2OGFiXHU2OTU2XHU2ODZmXHU2OGEzXHU2OGFjXHU2OGE5XHU2ODc1XHU2ODc0XHU2OGIyXHU2''@;'; put 'put ''ODhmXHU2ODc3XHU2ODkyXHU2ODdjXHU2ODZiXHU2ODcyXHU2OGFhXHU2ODgwXHU2ODcxXHU2ODdlXHU2ODliXHU2ODk2XHU2ODhiXHU2OGEwXHU2ODg5XHU2OGE0XHU2ODc4XHU2ODdiXHU2ODkxXHU2ODhjXHU2ODhhXHU2ODdkXHU2YjM2XHU2YjMzXHU2YjM3XHU2YjM4XHU2YjkxXHU2Yjhm''@;'; put 'put ''XHU2YjhkXHU2YjhlXHU2YjhjXHU2YzJhXHU2ZGMwXHU2ZGFiXHU2ZGI0XHU2ZGIzXHU2ZTc0XHU2ZGFjXHU2ZGU5XHU2ZGUyXHU2ZGI3XHU2ZGY2XHU2ZGQ0XHU2ZTAwXHU2ZGM4XHU2ZGUwXHU2ZGRmXHU2ZGQ2XHU2ZGJlXHU2ZGU1XHU2ZGRjXHU2ZGRkXHU2ZGRiXHU2ZGY0XHU2ZGNhXHU2''@;'; put 'put ''ZGJkXHU2ZGVkXHU2ZGYwXHU2ZGJhXHU2ZGQ1XHU2ZGMyXHU2ZGNmXHU2ZGM5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxM11bRV1dPTU0NTI4K0UsTFs1NDUyOCtFXT1CWzIxM11bRV0p''@;'; put 'put ''O2ZvcihCWzIxNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmRkMFx1NmRmMlx1NmRkM1x1NmRmZFx1NmRkN1x1NmRjZFx1NmRlM1x1NmRiYlx1NzBmYVx1NzEwZFx1NzBmN1x1NzExN1x1NzBmNFx1NzEwY1x1NzBmMFx1NzEwNFx1''@;'; put 'put ''NzBmM1x1NzExMFx1NzBmY1x1NzBmZlx1NzEwNlx1NzExM1x1NzEwMFx1NzBmOFx1NzBmNlx1NzEwYlx1NzEwMlx1NzEwZVx1NzI3ZVx1NzI3Ylx1NzI3Y1x1NzI3Zlx1NzMxZFx1NzMxN1x1NzMwN1x1NzMxMVx1NzMxOFx1NzMwYVx1NzMwOFx1NzJmZlx1NzMwZlx1NzMxZVx1NzM4OFx1NzNm''@;'; put 'put ''Nlx1NzNmOFx1NzNmNVx1NzQwNFx1NzQwMVx1NzNmZFx1NzQwN1x1NzQwMFx1NzNmYVx1NzNmY1x1NzNmZlx1NzQwY1x1NzQwYlx1NzNmNFx1NzQwOFx1NzU2NFx1NzU2M1x1NzVjZVx1NzVkMlx1NzVjZlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzVjYlx1NzVj''@;'; put 'put ''Y1x1NzVkMVx1NzVkMFx1NzY4Zlx1NzY4OVx1NzZkM1x1NzczOVx1NzcyZlx1NzcyZFx1NzczMVx1NzczMlx1NzczNFx1NzczM1x1NzczZFx1NzcyNVx1NzczYlx1NzczNVx1Nzg0OFx1Nzg1Mlx1Nzg0OVx1Nzg0ZFx1Nzg0YVx1Nzg0Y1x1NzgyNlx1Nzg0NVx1Nzg1MFx1Nzk2NFx1Nzk2N1x1''@;'; put 'put ''Nzk2OVx1Nzk2YVx1Nzk2M1x1Nzk2Ylx1Nzk2MVx1NzliYlx1NzlmYVx1NzlmOFx1NzlmNlx1NzlmN1x1N2E4Zlx1N2E5NFx1N2E5MFx1N2IzNVx1N2I0N1x1N2IzNFx1N2IyNVx1N2IzMFx1N2IyMlx1N2IyNFx1N2IzM1x1N2IxOFx1N2IyYVx1N2IxZFx1N2IzMVx1N2IyYlx1N2IyZFx1N2Iy''@;'; put 'put ''Zlx1N2IzMlx1N2IzOFx1N2IxYVx1N2IyM1x1N2M5NFx1N2M5OFx1N2M5Nlx1N2NhM1x1N2QzNVx1N2QzZFx1N2QzOFx1N2QzNlx1N2QzYVx1N2Q0NVx1N2QyY1x1N2QyOVx1N2Q0MVx1N2Q0N1x1N2QzZVx1N2QzZlx1N2Q0YVx1N2QzYlx1N2QyOFx1N2Y2M1x1N2Y5NVx1N2Y5Y1x1N2Y5ZFx1''@;'; put 'put ''N2Y5Ylx1N2ZjYVx1N2ZjYlx1N2ZjZFx1N2ZkMFx1N2ZkMVx1N2ZjN1x1N2ZjZlx1N2ZjOVx1ODAxZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTRdW0VdXT01NDc4NCtFLExbNTQ3ODQr''@;'; put 'put ''RV09QlsyMTRdW0VdKTtmb3IoQlsyMTVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwMWVcdTgwMWJcdTgwNDdcdTgwNDNcdTgwNDhcdTgxMThcdTgxMjVcdTgxMTlcdTgxMWJcdTgxMmRcdTgxMWZcdTgxMmNcdTgxMWVcdTgxMjFc''@;'; put 'put ''dTgxMTVcdTgxMjdcdTgxMWRcdTgxMjJcdTgyMTFcdTgyMzhcdTgyMzNcdTgyM2FcdTgyMzRcdTgyMzJcdTgyNzRcdTgzOTBcdTgzYTNcdTgzYThcdTgzOGRcdTgzN2FcdTgzNzNcdTgzYTRcdTgzNzRcdTgzOGZcdTgzODFcdTgzOTVcdTgzOTlcdTgzNzVcdTgzOTRcdTgzYTlcdTgzN2RcdTgz''@;'; put 'put ''ODNcdTgzOGNcdTgzOWRcdTgzOWJcdTgzYWFcdTgzOGJcdTgzN2VcdTgzYTVcdTgzYWZcdTgzODhcdTgzOTdcdTgzYjBcdTgzN2ZcdTgzYTZcdTgzODdcdTgzYWVcdTgzNzZcdTgzOWFcdTg2NTlcdTg2NTZcdTg2YmZcdTg2YjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdTg2YzJcdTg2YzFcdTg2YzVcdTg2YmFcdTg2YjBcdTg2YzhcdTg2YjlcdTg2YjNcdTg2YjhcdTg2Y2NcdTg2YjRcdTg2YmJcdTg2YmNcdTg2YzNcdTg2YmRcdTg2YmVcdTg4NTJcdTg4ODlcdTg4OTVcdTg4YThcdTg4YTJcdTg4YWFcdTg4OWFcdTg4OTFcdTg4YTFcdTg4OWZcdTg4OThc''@;'; put 'put ''dTg4YTdcdTg4OTlcdTg4OWJcdTg4OTdcdTg4YTRcdTg4YWNcdTg4OGNcdTg4OTNcdTg4OGVcdTg5ODJcdTg5ZDZcdTg5ZDlcdTg5ZDVcdThhMzBcdThhMjdcdThhMmNcdThhMWVcdThjMzlcdThjM2JcdThjNWNcdThjNWRcdThjN2RcdThjYTVcdThkN2RcdThkN2JcdThkNzlcdThkYmNcdThk''@;'; put 'put ''YzJcdThkYjlcdThkYmZcdThkYzFcdThlZDhcdThlZGVcdThlZGRcdThlZGNcdThlZDdcdThlZTBcdThlZTFcdTkwMjRcdTkwMGJcdTkwMTFcdTkwMWNcdTkwMGNcdTkwMjFcdTkwZWZcdTkwZWFcdTkwZjBcdTkwZjRcdTkwZjJcdTkwZjNcdTkwZDRcdTkwZWJcdTkwZWNcdTkwZTlcdTkxNTZc''@;'; put 'put ''dTkxNThcdTkxNWFcdTkxNTNcdTkxNTVcdTkxZWNcdTkxZjRcdTkxZjFcdTkxZjNcdTkxZjhcdTkxZTRcdTkxZjlcdTkxZWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE1XVtFXV09NTUw''@;'; put 'put ''NDArRSxMWzU1MDQwK0VdPUJbMjE1XVtFXSk7Zm9yKEJbMjE2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MWViXHU5MWY3XHU5MWU4XHU5MWVlXHU5NTdhXHU5NTg2XHU5NTg4XHU5NjdjXHU5NjZkXHU5NjZiXHU5NjcxXHU5NjZm''@;'; put 'put ''XHU5NmJmXHU5NzZhXHU5ODA0XHU5OGU1XHU5OTk3XHU1MDliXHU1MDk1XHU1MDk0XHU1MDllXHU1MDhiXHU1MGEzXHU1MDgzXHU1MDhjXHU1MDhlXHU1MDlkXHU1MDY4XHU1MDljXHU1MDkyXHU1MDgyXHU1MDg3XHU1MTVmXHU1MWQ0XHU1MzEyXHU1MzExXHU1M2E0XHU1M2E3XHU1NTkxXHU1''@;'; put 'put ''NWE4XHU1NWE1XHU1NWFkXHU1NTc3XHU1NjQ1XHU1NWEyXHU1NTkzXHU1NTg4XHU1NThmXHU1NWI1XHU1NTgxXHU1NWEzXHU1NTkyXHU1NWE0XHU1NTdkXHU1NThjXHU1NWE2XHU1NTdmXHU1NTk1XHU1NWExXHU1NThlXHU1NzBjXHU1ODI5XHU1ODM3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHU1ODE5XHU1ODFlXHU1ODI3XHU1ODIzXHU1ODI4XHU1N2Y1XHU1ODQ4XHU1ODI1XHU1ODFjXHU1ODFiXHU1ODMzXHU1ODNmXHU1ODM2XHU1ODJlXHU1ODM5XHU1ODM4XHU1ODJkXHU1ODJjXHU1ODNiXHU1OTYxXHU1YWFmXHU1YTk0XHU1YTlmXHU1YTdhXHU1YWEy''@;'; put 'put ''XHU1YTllXHU1YTc4XHU1YWE2XHU1YTdjXHU1YWE1XHU1YWFjXHU1YTk1XHU1YWFlXHU1YTM3XHU1YTg0XHU1YThhXHU1YTk3XHU1YTgzXHU1YThiXHU1YWE5XHU1YTdiXHU1YTdkXHU1YThjXHU1YTljXHU1YThmXHU1YTkzXHU1YTlkXHU1YmVhXHU1YmNkXHU1YmNiXHU1YmQ0XHU1YmQxXHU1''@;'; put 'put ''YmNhXHU1YmNlXHU1YzBjXHU1YzMwXHU1ZDM3XHU1ZDQzXHU1ZDZiXHU1ZDQxXHU1ZDRiXHU1ZDNmXHU1ZDM1XHU1ZDUxXHU1ZDRlXHU1ZDU1XHU1ZDMzXHU1ZDNhXHU1ZDUyXHU1ZDNkXHU1ZDMxXHU1ZDU5XHU1ZDQyXHU1ZDM5XHU1ZDQ5XHU1ZDM4XHU1ZDNjXHU1ZDMyXHU1ZDM2XHU1ZDQw''@;'; put 'put ''XHU1ZDQ1XHU1ZTQ0XHU1ZTQxXHU1ZjU4XHU1ZmE2XHU1ZmE1XHU1ZmFiXHU2MGM5XHU2MGI5XHU2MGNjXHU2MGUyXHU2MGNlXHU2MGM0XHU2MTE0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtC''@;'; put 'put ''WzIxNl1bRV1dPTU1Mjk2K0UsTFs1NTI5NitFXT1CWzIxNl1bRV0pO2ZvcihCWzIxN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjBmMlx1NjEwYVx1NjExNlx1NjEwNVx1NjBmNVx1NjExM1x1NjBmOFx1NjBmY1x1NjBmZVx1NjBj''@;'; put 'put ''MVx1NjEwM1x1NjExOFx1NjExZFx1NjExMFx1NjBmZlx1NjEwNFx1NjEwYlx1NjI0YVx1NjM5NFx1NjNiMVx1NjNiMFx1NjNjZVx1NjNlNVx1NjNlOFx1NjNlZlx1NjNjM1x1NjQ5ZFx1NjNmM1x1NjNjYVx1NjNlMFx1NjNmNlx1NjNkNVx1NjNmMlx1NjNmNVx1NjQ2MVx1NjNkZlx1NjNiZVx1''@;'; put 'put ''NjNkZFx1NjNkY1x1NjNjNFx1NjNkOFx1NjNkM1x1NjNjMlx1NjNjN1x1NjNjY1x1NjNjYlx1NjNjOFx1NjNmMFx1NjNkN1x1NjNkOVx1NjUzMlx1NjU2N1x1NjU2YVx1NjU2NFx1NjU1Y1x1NjU2OFx1NjU2NVx1NjU4Y1x1NjU5ZFx1NjU5ZVx1NjVhZVx1NjVkMFx1NjVkMlx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjY3Y1x1NjY2Y1x1NjY3Ylx1NjY4MFx1NjY3MVx1NjY3OVx1NjY2YVx1NjY3Mlx1NjcwMVx1NjkwY1x1NjhkM1x1NjkwNFx1NjhkY1x1NjkyYVx1NjhlY1x1NjhlYVx1NjhmMVx1NjkwZlx1NjhkNlx1NjhmN1x1NjhlYlx1NjhlNFx1Njhm''@;'; put 'put ''Nlx1NjkxM1x1NjkxMFx1NjhmM1x1NjhlMVx1NjkwN1x1NjhjY1x1NjkwOFx1Njk3MFx1NjhiNFx1NjkxMVx1NjhlZlx1NjhjNlx1NjkxNFx1NjhmOFx1NjhkMFx1NjhmZFx1NjhmY1x1NjhlOFx1NjkwYlx1NjkwYVx1NjkxN1x1NjhjZVx1NjhjOFx1NjhkZFx1NjhkZVx1NjhlNlx1NjhmNFx1''@;'; put 'put ''NjhkMVx1NjkwNlx1NjhkNFx1NjhlOVx1NjkxNVx1NjkyNVx1NjhjN1x1NmIzOVx1NmIzYlx1NmIzZlx1NmIzY1x1NmI5NFx1NmI5N1x1NmI5OVx1NmI5NVx1NmJiZFx1NmJmMFx1NmJmMlx1NmJmM1x1NmMzMFx1NmRmY1x1NmU0Nlx1NmU0N1x1NmUxZlx1NmU0OVx1NmU4OFx1NmUzY1x1NmUz''@;'; put 'put ''ZFx1NmU0NVx1NmU2Mlx1NmUyYlx1NmUzZlx1NmU0MVx1NmU1ZFx1NmU3M1x1NmUxY1x1NmUzM1x1NmU0Ylx1NmU0MFx1NmU1MVx1NmUzYlx1NmUwM1x1NmUyZVx1NmU1ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE3XVtFXS5jaGFyQ29k''@;'; put 'put ''ZUF0KDApJiYobWVbQlsyMTddW0VdXT01NTU1MitFLExbNTU1NTIrRV09QlsyMTddW0VdKTtmb3IoQlsyMThdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZlNjhcdTZlNWNcdTZlNjFcdTZlMzFcdTZlMjhcdTZlNjBcdTZlNzFcdTZl''@;'; put 'put ''NmJcdTZlMzlcdTZlMjJcdTZlMzBcdTZlNTNcdTZlNjVcdTZlMjdcdTZlNzhcdTZlNjRcdTZlNzdcdTZlNTVcdTZlNzlcdTZlNTJcdTZlNjZcdTZlMzVcdTZlMzZcdTZlNWFcdTcxMjBcdTcxMWVcdTcxMmZcdTcwZmJcdTcxMmVcdTcxMzFcdTcxMjNcdTcxMjVcdTcxMjJcdTcxMzJcdTcxMWZc''@;'; put 'put ''dTcxMjhcdTcxM2FcdTcxMWJcdTcyNGJcdTcyNWFcdTcyODhcdTcyODlcdTcyODZcdTcyODVcdTcyOGJcdTczMTJcdTczMGJcdTczMzBcdTczMjJcdTczMzFcdTczMzNcdTczMjdcdTczMzJcdTczMmRcdTczMjZcdTczMjNcdTczMzVcdTczMGNcdTc0MmVcdTc0MmNcdTc0MzBcdTc0MmJcdTc0''@;'; put 'put ''MTZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0MWFcdTc0MjFcdTc0MmRcdTc0MzFcdTc0MjRcdTc0MjNcdTc0MWRcdTc0MjlcdTc0MjBcdTc0MzJcdTc0ZmJcdTc1MmZcdTc1NmZcdTc1NmNcdTc1ZTdcdTc1ZGFcdTc1ZTFcdTc1ZTZcdTc1ZGRcdTc1ZGZcdTc1''@;'; put 'put ''ZTRcdTc1ZDdcdTc2OTVcdTc2OTJcdTc2ZGFcdTc3NDZcdTc3NDdcdTc3NDRcdTc3NGRcdTc3NDVcdTc3NGFcdTc3NGVcdTc3NGJcdTc3NGNcdTc3ZGVcdTc3ZWNcdTc4NjBcdTc4NjRcdTc4NjVcdTc4NWNcdTc4NmRcdTc4NzFcdTc4NmFcdTc4NmVcdTc4NzBcdTc4NjlcdTc4NjhcdTc4NWVc''@;'; put 'put ''dTc4NjJcdTc5NzRcdTc5NzNcdTc5NzJcdTc5NzBcdTdhMDJcdTdhMGFcdTdhMDNcdTdhMGNcdTdhMDRcdTdhOTlcdTdhZTZcdTdhZTRcdTdiNGFcdTdiM2JcdTdiNDRcdTdiNDhcdTdiNGNcdTdiNGVcdTdiNDBcdTdiNThcdTdiNDVcdTdjYTJcdTdjOWVcdTdjYThcdTdjYTFcdTdkNThcdTdk''@;'; put 'put ''NmZcdTdkNjNcdTdkNTNcdTdkNTZcdTdkNjdcdTdkNmFcdTdkNGZcdTdkNmRcdTdkNWNcdTdkNmJcdTdkNTJcdTdkNTRcdTdkNjlcdTdkNTFcdTdkNWZcdTdkNGVcdTdmM2VcdTdmM2ZcdTdmNjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMThdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIx''@;'; put 'put ''OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE4XVtFXV09NTU4MDgrRSxMWzU1ODA4K0VdPUJbMjE4XVtFXSk7Zm9yKEJbMjE5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZjY2XHU3ZmEyXHU3ZmEwXHU3ZmExXHU3ZmQ3XHU4''@;'; put 'put ''MDUxXHU4MDRmXHU4MDUwXHU4MGZlXHU4MGQ0XHU4MTQzXHU4MTRhXHU4MTUyXHU4MTRmXHU4MTQ3XHU4MTNkXHU4MTRkXHU4MTNhXHU4MWU2XHU4MWVlXHU4MWY3XHU4MWY4XHU4MWY5XHU4MjA0XHU4MjNjXHU4MjNkXHU4MjNmXHU4Mjc1XHU4MzNiXHU4M2NmXHU4M2Y5XHU4NDIzXHU4M2Mw''@;'; put 'put ''XHU4M2U4XHU4NDEyXHU4M2U3XHU4M2U0XHU4M2ZjXHU4M2Y2XHU4NDEwXHU4M2M2XHU4M2M4XHU4M2ViXHU4M2UzXHU4M2JmXHU4NDAxXHU4M2RkXHU4M2U1XHU4M2Q4XHU4M2ZmXHU4M2UxXHU4M2NiXHU4M2NlXHU4M2Q2XHU4M2Y1XHU4M2M5XHU4NDA5XHU4NDBmXHU4M2RlXHU4NDExXHU4''@;'; put 'put ''NDA2XHU4M2MyXHU4M2YzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4M2Q1XHU4M2ZhXHU4M2M3XHU4M2QxXHU4M2VhXHU4NDEzXHU4M2MzXHU4M2VjXHU4M2VlXHU4M2M0XHU4M2ZiXHU4M2Q3XHU4M2UyXHU4NDFiXHU4M2RiXHU4M2ZlXHU4NmQ4XHU4NmUyXHU4''@;'; put 'put ''NmU2XHU4NmQzXHU4NmUzXHU4NmRhXHU4NmVhXHU4NmRkXHU4NmViXHU4NmRjXHU4NmVjXHU4NmU5XHU4NmQ3XHU4NmU4XHU4NmQxXHU4ODQ4XHU4ODU2XHU4ODU1XHU4OGJhXHU4OGQ3XHU4OGI5XHU4OGI4XHU4OGMwXHU4OGJlXHU4OGI2XHU4OGJjXHU4OGI3XHU4OGJkXHU4OGIyXHU4OTAx''@;'; put 'put ''XHU4OGM5XHU4OTk1XHU4OTk4XHU4OTk3XHU4OWRkXHU4OWRhXHU4OWRiXHU4YTRlXHU4YTRkXHU4YTM5XHU4YTU5XHU4YTQwXHU4YTU3XHU4YTU4XHU4YTQ0XHU4YTQ1XHU4YTUyXHU4YTQ4XHU4YTUxXHU4YTRhXHU4YTRjXHU4YTRmXHU4YzVmXHU4YzgxXHU4YzgwXHU4Y2JhXHU4Y2JlXHU4''@;'; put 'put ''Y2IwXHU4Y2I5XHU4Y2I1XHU4ZDg0XHU4ZDgwXHU4ZDg5XHU4ZGQ4XHU4ZGQzXHU4ZGNkXHU4ZGM3XHU4ZGQ2XHU4ZGRjXHU4ZGNmXHU4ZGQ1XHU4ZGQ5XHU4ZGM4XHU4ZGQ3XHU4ZGM1XHU4ZWVmXHU4ZWY3XHU4ZWZhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE5XS5sZW5ndGg7KytF''@;'; put 'put ''KTY1NTMzIT09QlsyMTldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOV1bRV1dPTU2MDY0K0UsTFs1NjA2NCtFXT1CWzIxOV1bRV0pO2ZvcihCWzIyMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGVmOVx1OGVlNlx1OGVlZVx1''@;'; put 'put ''OGVlNVx1OGVmNVx1OGVlN1x1OGVlOFx1OGVmNlx1OGVlYlx1OGVmMVx1OGVlY1x1OGVmNFx1OGVlOVx1OTAyZFx1OTAzNFx1OTAyZlx1OTEwNlx1OTEyY1x1OTEwNFx1OTBmZlx1OTBmY1x1OTEwOFx1OTBmOVx1OTBmYlx1OTEwMVx1OTEwMFx1OTEwN1x1OTEwNVx1OTEwM1x1OTE2MVx1OTE2''@;'; put 'put ''NFx1OTE1Zlx1OTE2Mlx1OTE2MFx1OTIwMVx1OTIwYVx1OTIyNVx1OTIwM1x1OTIxYVx1OTIyNlx1OTIwZlx1OTIwY1x1OTIwMFx1OTIxMlx1OTFmZlx1OTFmZFx1OTIwNlx1OTIwNFx1OTIyN1x1OTIwMlx1OTIxY1x1OTIyNFx1OTIxOVx1OTIxN1x1OTIwNVx1OTIxNlx1OTU3Ylx1OTU4ZFx1''@;'; put 'put ''OTU4Y1x1OTU5MFx1OTY4N1x1OTY3ZVx1OTY4OFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTY4OVx1OTY4M1x1OTY4MFx1OTZjMlx1OTZjOFx1OTZjM1x1OTZmMVx1OTZmMFx1OTc2Y1x1OTc3MFx1OTc2ZVx1OTgwN1x1OThhOVx1OThlYlx1OWNlNlx1OWVmOVx1''@;'; put 'put ''NGU4M1x1NGU4NFx1NGViNlx1NTBiZFx1NTBiZlx1NTBjNlx1NTBhZVx1NTBjNFx1NTBjYVx1NTBiNFx1NTBjOFx1NTBjMlx1NTBiMFx1NTBjMVx1NTBiYVx1NTBiMVx1NTBjYlx1NTBjOVx1NTBiNlx1NTBiOFx1NTFkN1x1NTI3YVx1NTI3OFx1NTI3Ylx1NTI3Y1x1NTVjM1x1NTVkYlx1NTVj''@;'; put 'put ''Y1x1NTVkMFx1NTVjYlx1NTVjYVx1NTVkZFx1NTVjMFx1NTVkNFx1NTVjNFx1NTVlOVx1NTViZlx1NTVkMlx1NTU4ZFx1NTVjZlx1NTVkNVx1NTVlMlx1NTVkNlx1NTVjOFx1NTVmMlx1NTVjZFx1NTVkOVx1NTVjMlx1NTcxNFx1NTg1M1x1NTg2OFx1NTg2NFx1NTg0Zlx1NTg0ZFx1NTg0OVx1''@;'; put 'put ''NTg2Zlx1NTg1NVx1NTg0ZVx1NTg1ZFx1NTg1OVx1NTg2NVx1NTg1Ylx1NTgzZFx1NTg2M1x1NTg3MVx1NThmY1x1NWFjN1x1NWFjNFx1NWFjYlx1NWFiYVx1NWFiOFx1NWFiMVx1NWFiNVx1NWFiMFx1NWFiZlx1NWFjOFx1NWFiYlx1NWFjNlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIy''@;'; put 'put ''MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjBdW0VdXT01NjMyMCtFLExbNTYzMjArRV09QlsyMjBdW0VdKTtmb3IoQlsyMjFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVhYjdc''@;'; put 'put ''dTVhYzBcdTVhY2FcdTVhYjRcdTVhYjZcdTVhY2RcdTVhYjlcdTVhOTBcdTViZDZcdTViZDhcdTViZDlcdTVjMWZcdTVjMzNcdTVkNzFcdTVkNjNcdTVkNGFcdTVkNjVcdTVkNzJcdTVkNmNcdTVkNWVcdTVkNjhcdTVkNjdcdTVkNjJcdTVkZjBcdTVlNGZcdTVlNGVcdTVlNGFcdTVlNGRcdTVl''@;'; put 'put ''NGJcdTVlYzVcdTVlY2NcdTVlYzZcdTVlY2JcdTVlYzdcdTVmNDBcdTVmYWZcdTVmYWRcdTYwZjdcdTYxNDlcdTYxNGFcdTYxMmJcdTYxNDVcdTYxMzZcdTYxMzJcdTYxMmVcdTYxNDZcdTYxMmZcdTYxNGZcdTYxMjlcdTYxNDBcdTYyMjBcdTkxNjhcdTYyMjNcdTYyMjVcdTYyMjRcdTYzYzVc''@;'; put 'put ''dTYzZjFcdTYzZWJcdTY0MTBcdTY0MTJcdTY0MDlcdTY0MjBcdTY0MjRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0MzNcdTY0NDNcdTY0MWZcdTY0MTVcdTY0MThcdTY0MzlcdTY0MzdcdTY0MjJcdTY0MjNcdTY0MGNcdTY0MjZcdTY0MzBcdTY0MjhcdTY0NDFc''@;'; put 'put ''dTY0MzVcdTY0MmZcdTY0MGFcdTY0MWFcdTY0NDBcdTY0MjVcdTY0MjdcdTY0MGJcdTYzZTdcdTY0MWJcdTY0MmVcdTY0MjFcdTY0MGVcdTY1NmZcdTY1OTJcdTY1ZDNcdTY2ODZcdTY2OGNcdTY2OTVcdTY2OTBcdTY2OGJcdTY2OGFcdTY2OTlcdTY2OTRcdTY2NzhcdTY3MjBcdTY5NjZcdTY5''@;'; put 'put ''NWZcdTY5MzhcdTY5NGVcdTY5NjJcdTY5NzFcdTY5M2ZcdTY5NDVcdTY5NmFcdTY5MzlcdTY5NDJcdTY5NTdcdTY5NTlcdTY5N2FcdTY5NDhcdTY5NDlcdTY5MzVcdTY5NmNcdTY5MzNcdTY5M2RcdTY5NjVcdTY4ZjBcdTY5NzhcdTY5MzRcdTY5NjlcdTY5NDBcdTY5NmZcdTY5NDRcdTY5NzZc''@;'; put 'put ''dTY5NThcdTY5NDFcdTY5NzRcdTY5NGNcdTY5M2JcdTY5NGJcdTY5MzdcdTY5NWNcdTY5NGZcdTY5NTFcdTY5MzJcdTY5NTJcdTY5MmZcdTY5N2JcdTY5M2NcdTZiNDZcdTZiNDVcdTZiNDNcdTZiNDJcdTZiNDhcdTZiNDFcdTZiOWJcdWZhMGRcdTZiZmJcdTZiZmNcdWZmZmQiLnNwbGl0KCIi''@;'; put 'put ''KSxFPTA7RSE9QlsyMjFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIxXVtFXV09NTY1NzYrRSxMWzU2NTc2K0VdPUJbMjIxXVtFXSk7Zm9yKEJbMjIyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHU2YmY5XHU2YmY3XHU2YmY4XHU2ZTliXHU2ZWQ2XHU2ZWM4XHU2ZThmXHU2ZWMwXHU2ZTlmXHU2ZTkzXHU2ZTk0XHU2ZWEwXHU2ZWIxXHU2ZWI5XHU2ZWM2XHU2ZWQyXHU2ZWJkXHU2ZWMxXHU2ZTllXHU2ZWM5XHU2ZWI3XHU2ZWIwXHU2ZWNkXHU2ZWE2XHU2ZWNmXHU2ZWIyXHU2''@;'; put 'put ''ZWJlXHU2ZWMzXHU2ZWRjXHU2ZWQ4XHU2ZTk5XHU2ZTkyXHU2ZThlXHU2ZThkXHU2ZWE0XHU2ZWExXHU2ZWJmXHU2ZWIzXHU2ZWQwXHU2ZWNhXHU2ZTk3XHU2ZWFlXHU2ZWEzXHU3MTQ3XHU3MTU0XHU3MTUyXHU3MTYzXHU3MTYwXHU3MTQxXHU3MTVkXHU3MTYyXHU3MTcyXHU3MTc4XHU3MTZh''@;'; put 'put ''XHU3MTYxXHU3MTQyXHU3MTU4XHU3MTQzXHU3MTRiXHU3MTcwXHU3MTVmXHU3MTUwXHU3MTUzXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3MTQ0XHU3MTRkXHU3MTVhXHU3MjRmXHU3MjhkXHU3MjhjXHU3MjkxXHU3MjkwXHU3MjhlXHU3MzNjXHU3MzQyXHU3MzNi''@;'; put 'put ''XHU3MzNhXHU3MzQwXHU3MzRhXHU3MzQ5XHU3NDQ0XHU3NDRhXHU3NDRiXHU3NDUyXHU3NDUxXHU3NDU3XHU3NDQwXHU3NDRmXHU3NDUwXHU3NDRlXHU3NDQyXHU3NDQ2XHU3NDRkXHU3NDU0XHU3NGUxXHU3NGZmXHU3NGZlXHU3NGZkXHU3NTFkXHU3NTc5XHU3NTc3XHU2OTgzXHU3NWVmXHU3''@;'; put 'put ''NjBmXHU3NjAzXHU3NWY3XHU3NWZlXHU3NWZjXHU3NWY5XHU3NWY4XHU3NjEwXHU3NWZiXHU3NWY2XHU3NWVkXHU3NWY1XHU3NWZkXHU3Njk5XHU3NmI1XHU3NmRkXHU3NzU1XHU3NzVmXHU3NzYwXHU3NzUyXHU3NzU2XHU3NzVhXHU3NzY5XHU3NzY3XHU3NzU0XHU3NzU5XHU3NzZkXHU3N2Uw''@;'; put 'put ''XHU3ODg3XHU3ODlhXHU3ODk0XHU3ODhmXHU3ODg0XHU3ODk1XHU3ODg1XHU3ODg2XHU3OGExXHU3ODgzXHU3ODc5XHU3ODk5XHU3ODgwXHU3ODk2XHU3ODdiXHU3OTdjXHU3OTgyXHU3OTdkXHU3OTc5XHU3YTExXHU3YTE4XHU3YTE5XHU3YTEyXHU3YTE3XHU3YTE1XHU3YTIyXHU3YTEzXHVm''@;'; put 'put ''ZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMl1bRV1dPTU2ODMyK0UsTFs1NjgzMitFXT1CWzIyMl1bRV0pO2ZvcihCWzIyM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2ExYlx1N2ExMFx1N2FhM1x1N2FhMlx1N2E5ZVx1N2FlYlx1N2I2Nlx1N2I2NFx1N2I2ZFx1N2I3NFx1N2I2OVx1N2I3Mlx1N2I2NVx1N2I3M1x1N2I3MVx1N2I3MFx1N2I2MVx1N2I3OFx1N2I3Nlx1N2I2M1x1N2NiMlx1N2NiNFx1N2NhZlx1N2Q4OFx1''@;'; put 'put ''N2Q4Nlx1N2Q4MFx1N2Q4ZFx1N2Q3Zlx1N2Q4NVx1N2Q3YVx1N2Q4ZVx1N2Q3Ylx1N2Q4M1x1N2Q3Y1x1N2Q4Y1x1N2Q5NFx1N2Q4NFx1N2Q3ZFx1N2Q5Mlx1N2Y2ZFx1N2Y2Ylx1N2Y2N1x1N2Y2OFx1N2Y2Y1x1N2ZhNlx1N2ZhNVx1N2ZhN1x1N2ZkYlx1N2ZkY1x1ODAyMVx1ODE2NFx1ODE2''@;'; put 'put ''MFx1ODE3N1x1ODE1Y1x1ODE2OVx1ODE1Ylx1ODE2Mlx1ODE3Mlx1NjcyMVx1ODE1ZVx1ODE3Nlx1ODE2N1x1ODE2Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODE0NFx1ODE2MVx1ODIxZFx1ODI0OVx1ODI0NFx1ODI0MFx1ODI0Mlx1ODI0NVx1ODRmMVx1ODQz''@;'; put 'put ''Zlx1ODQ1Nlx1ODQ3Nlx1ODQ3OVx1ODQ4Zlx1ODQ4ZFx1ODQ2NVx1ODQ1MVx1ODQ0MFx1ODQ4Nlx1ODQ2N1x1ODQzMFx1ODQ0ZFx1ODQ3ZFx1ODQ1YVx1ODQ1OVx1ODQ3NFx1ODQ3M1x1ODQ1ZFx1ODUwN1x1ODQ1ZVx1ODQzN1x1ODQzYVx1ODQzNFx1ODQ3YVx1ODQ0M1x1ODQ3OFx1ODQzMlx1''@;'; put 'put ''ODQ0NVx1ODQyOVx1ODNkOVx1ODQ0Ylx1ODQyZlx1ODQ0Mlx1ODQyZFx1ODQ1Zlx1ODQ3MFx1ODQzOVx1ODQ0ZVx1ODQ0Y1x1ODQ1Mlx1ODQ2Zlx1ODRjNVx1ODQ4ZVx1ODQzYlx1ODQ0N1x1ODQzNlx1ODQzM1x1ODQ2OFx1ODQ3ZVx1ODQ0NFx1ODQyYlx1ODQ2MFx1ODQ1NFx1ODQ2ZVx1ODQ1''@;'; put 'put ''MFx1ODcwYlx1ODcwNFx1ODZmN1x1ODcwY1x1ODZmYVx1ODZkNlx1ODZmNVx1ODc0ZFx1ODZmOFx1ODcwZVx1ODcwOVx1ODcwMVx1ODZmNlx1ODcwZFx1ODcwNVx1ODhkNlx1ODhjYlx1ODhjZFx1ODhjZVx1ODhkZVx1ODhkYlx1ODhkYVx1ODhjY1x1ODhkMFx1ODk4NVx1ODk5Ylx1ODlkZlx1''@;'; put 'put ''ODllNVx1ODllNFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjNdW0VdXT01NzA4OCtFLExbNTcwODgrRV09QlsyMjNdW0VdKTtmb3IoQlsyMjRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTg5ZTFcdTg5ZTBcdTg5ZTJcdTg5ZGNcdTg5ZTZcdThhNzZcdThhODZcdThhN2ZcdThhNjFcdThhM2ZcdThhNzdcdThhODJcdThhODRcdThhNzVcdThhODNcdThhODFcdThhNzRcdThhN2FcdThjM2NcdThjNGJcdThjNGFcdThjNjVc''@;'; put 'put ''dThjNjRcdThjNjZcdThjODZcdThjODRcdThjODVcdThjY2NcdThkNjhcdThkNjlcdThkOTFcdThkOGNcdThkOGVcdThkOGZcdThkOGRcdThkOTNcdThkOTRcdThkOTBcdThkOTJcdThkZjBcdThkZTBcdThkZWNcdThkZjFcdThkZWVcdThkZDBcdThkZTlcdThkZTNcdThkZTJcdThkZTdcdThk''@;'; put 'put ''ZjJcdThkZWJcdThkZjRcdThmMDZcdThlZmZcdThmMDFcdThmMDBcdThmMDVcdThmMDdcdThmMDhcdThmMDJcdThmMGJcdTkwNTJcdTkwM2ZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkwNDRcdTkwNDlcdTkwM2RcdTkxMTBcdTkxMGRcdTkxMGZcdTkxMTFcdTkx''@;'; put 'put ''MTZcdTkxMTRcdTkxMGJcdTkxMGVcdTkxNmVcdTkxNmZcdTkyNDhcdTkyNTJcdTkyMzBcdTkyM2FcdTkyNjZcdTkyMzNcdTkyNjVcdTkyNWVcdTkyODNcdTkyMmVcdTkyNGFcdTkyNDZcdTkyNmRcdTkyNmNcdTkyNGZcdTkyNjBcdTkyNjdcdTkyNmZcdTkyMzZcdTkyNjFcdTkyNzBcdTkyMzFc''@;'; put 'put ''dTkyNTRcdTkyNjNcdTkyNTBcdTkyNzJcdTkyNGVcdTkyNTNcdTkyNGNcdTkyNTZcdTkyMzJcdTk1OWZcdTk1OWNcdTk1OWVcdTk1OWJcdTk2OTJcdTk2OTNcdTk2OTFcdTk2OTdcdTk2Y2VcdTk2ZmFcdTk2ZmRcdTk2ZjhcdTk2ZjVcdTk3NzNcdTk3NzdcdTk3NzhcdTk3NzJcdTk4MGZcdTk4''@;'; put 'put ''MGRcdTk4MGVcdTk4YWNcdTk4ZjZcdTk4ZjlcdTk5YWZcdTk5YjJcdTk5YjBcdTk5YjVcdTlhYWRcdTlhYWJcdTliNWJcdTljZWFcdTljZWRcdTljZTdcdTllODBcdTllZmRcdTUwZTZcdTUwZDRcdTUwZDdcdTUwZThcdTUwZjNcdTUwZGJcdTUwZWFcdTUwZGRcdTUwZTRcdTUwZDNcdTUwZWNc''@;'; put 'put ''dTUwZjBcdTUwZWZcdTUwZTNcdTUwZTBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI0XVtFXV09NTczNDQrRSxMWzU3MzQ0K0VdPUJbMjI0XVtFXSk7Zm9yKEJbMjI1XT0iXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MWQ4XHU1MjgwXHU1MjgxXHU1MmU5XHU1MmViXHU1MzMwXHU1M2FjXHU1NjI3XHU1NjE1XHU1NjBjXHU1NjEyXHU1NWZjXHU1NjBmXHU1NjFjXHU1NjAxXHU1NjEzXHU1NjAyXHU1NWZhXHU1NjFkXHU1NjA0''@;'; put 'put ''XHU1NWZmXHU1NWY5XHU1ODg5XHU1ODdjXHU1ODkwXHU1ODk4XHU1ODg2XHU1ODgxXHU1ODdmXHU1ODc0XHU1ODhiXHU1ODdhXHU1ODg3XHU1ODkxXHU1ODhlXHU1ODc2XHU1ODgyXHU1ODg4XHU1ODdiXHU1ODk0XHU1ODhmXHU1OGZlXHU1OTZiXHU1YWRjXHU1YWVlXHU1YWU1XHU1YWQ1XHU1''@;'; put 'put ''YWVhXHU1YWRhXHU1YWVkXHU1YWViXHU1YWYzXHU1YWUyXHU1YWUwXHU1YWRiXHU1YWVjXHU1YWRlXHU1YWRkXHU1YWQ5XHU1YWU4XHU1YWRmXHU1Yjc3XHU1YmUwXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1YmUzXHU1YzYzXHU1ZDgyXHU1ZDgwXHU1ZDdkXHU1''@;'; put 'put ''ZDg2XHU1ZDdhXHU1ZDgxXHU1ZDc3XHU1ZDhhXHU1ZDg5XHU1ZDg4XHU1ZDdlXHU1ZDdjXHU1ZDhkXHU1ZDc5XHU1ZDdmXHU1ZTU4XHU1ZTU5XHU1ZTUzXHU1ZWQ4XHU1ZWQxXHU1ZWQ3XHU1ZWNlXHU1ZWRjXHU1ZWQ1XHU1ZWQ5XHU1ZWQyXHU1ZWQ0XHU1ZjQ0XHU1ZjQzXHU1ZjZmXHU1ZmI2''@;'; put 'put ''XHU2MTJjXHU2MTI4XHU2MTQxXHU2MTVlXHU2MTcxXHU2MTczXHU2MTUyXHU2MTUzXHU2MTcyXHU2MTZjXHU2MTgwXHU2MTc0XHU2MTU0XHU2MTdhXHU2MTViXHU2MTY1XHU2MTNiXHU2MTZhXHU2MTYxXHU2MTU2XHU2MjI5XHU2MjI3XHU2MjJiXHU2NDJiXHU2NDRkXHU2NDViXHU2NDVkXHU2''@;'; put 'put ''NDc0XHU2NDc2XHU2NDcyXHU2NDczXHU2NDdkXHU2NDc1XHU2NDY2XHU2NGE2XHU2NDRlXHU2NDgyXHU2NDVlXHU2NDVjXHU2NDRiXHU2NDUzXHU2NDYwXHU2NDUwXHU2NDdmXHU2NDNmXHU2NDZjXHU2NDZiXHU2NDU5XHU2NDY1XHU2NDc3XHU2NTczXHU2NWEwXHU2NmExXHU2NmEwXHU2Njlm''@;'; put 'put ''XHU2NzA1XHU2NzA0XHU2NzIyXHU2OWIxXHU2OWI2XHU2OWM5XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNV1bRV1dPTU3NjAwK0UsTFs1NzYwMCtFXT1CWzIyNV1bRV0pO2ZvcihCWzIy''@;'; put 'put ''Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjlhMFx1NjljZVx1Njk5Nlx1NjliMFx1NjlhY1x1NjliY1x1Njk5MVx1Njk5OVx1Njk4ZVx1NjlhN1x1Njk4ZFx1NjlhOVx1NjliZVx1NjlhZlx1NjliZlx1NjljNFx1NjliZFx1Njlh''@;'; put 'put ''NFx1NjlkNFx1NjliOVx1NjljYVx1Njk5YVx1NjljZlx1NjliM1x1Njk5M1x1NjlhYVx1NjlhMVx1Njk5ZVx1NjlkOVx1Njk5N1x1Njk5MFx1NjljMlx1NjliNVx1NjlhNVx1NjljNlx1NmI0YVx1NmI0ZFx1NmI0Ylx1NmI5ZVx1NmI5Zlx1NmJhMFx1NmJjM1x1NmJjNFx1NmJmZVx1NmVjZVx1''@;'; put 'put ''NmVmNVx1NmVmMVx1NmYwM1x1NmYyNVx1NmVmOFx1NmYzN1x1NmVmYlx1NmYyZVx1NmYwOVx1NmY0ZVx1NmYxOVx1NmYxYVx1NmYyN1x1NmYxOFx1NmYzYlx1NmYxMlx1NmVlZFx1NmYwYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmYzNlx1NmY3M1x1NmVmOVx1''@;'; put 'put ''NmVlZVx1NmYyZFx1NmY0MFx1NmYzMFx1NmYzY1x1NmYzNVx1NmVlYlx1NmYwN1x1NmYwZVx1NmY0M1x1NmYwNVx1NmVmZFx1NmVmNlx1NmYzOVx1NmYxY1x1NmVmY1x1NmYzYVx1NmYxZlx1NmYwZFx1NmYxZVx1NmYwOFx1NmYyMVx1NzE4N1x1NzE5MFx1NzE4OVx1NzE4MFx1NzE4NVx1NzE4''@;'; put 'put ''Mlx1NzE4Zlx1NzE3Ylx1NzE4Nlx1NzE4MVx1NzE5N1x1NzI0NFx1NzI1M1x1NzI5N1x1NzI5NVx1NzI5M1x1NzM0M1x1NzM0ZFx1NzM1MVx1NzM0Y1x1NzQ2Mlx1NzQ3M1x1NzQ3MVx1NzQ3NVx1NzQ3Mlx1NzQ2N1x1NzQ2ZVx1NzUwMFx1NzUwMlx1NzUwM1x1NzU3ZFx1NzU5MFx1NzYxNlx1''@;'; put 'put ''NzYwOFx1NzYwY1x1NzYxNVx1NzYxMVx1NzYwYVx1NzYxNFx1NzZiOFx1Nzc4MVx1Nzc3Y1x1Nzc4NVx1Nzc4Mlx1Nzc2ZVx1Nzc4MFx1Nzc2Zlx1Nzc3ZVx1Nzc4M1x1NzhiMlx1NzhhYVx1NzhiNFx1NzhhZFx1NzhhOFx1Nzg3ZVx1NzhhYlx1Nzg5ZVx1NzhhNVx1NzhhMFx1NzhhY1x1Nzhh''@;'; put 'put ''Mlx1NzhhNFx1Nzk5OFx1Nzk4YVx1Nzk4Ylx1Nzk5Nlx1Nzk5NVx1Nzk5NFx1Nzk5M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjZdW0VdXT01Nzg1NitFLExbNTc4NTYrRV09QlsyMjZd''@;'; put 'put ''W0VdKTtmb3IoQlsyMjddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5OTdcdTc5ODhcdTc5OTJcdTc5OTBcdTdhMmJcdTdhNGFcdTdhMzBcdTdhMmZcdTdhMjhcdTdhMjZcdTdhYThcdTdhYWJcdTdhYWNcdTdhZWVcdTdiODhcdTdi''@;'; put 'put ''OWNcdTdiOGFcdTdiOTFcdTdiOTBcdTdiOTZcdTdiOGRcdTdiOGNcdTdiOWJcdTdiOGVcdTdiODVcdTdiOThcdTUyODRcdTdiOTlcdTdiYTRcdTdiODJcdTdjYmJcdTdjYmZcdTdjYmNcdTdjYmFcdTdkYTdcdTdkYjdcdTdkYzJcdTdkYTNcdTdkYWFcdTdkYzFcdTdkYzBcdTdkYzVcdTdkOWRc''@;'; put 'put ''dTdkY2VcdTdkYzRcdTdkYzZcdTdkY2JcdTdkY2NcdTdkYWZcdTdkYjlcdTdkOTZcdTdkYmNcdTdkOWZcdTdkYTZcdTdkYWVcdTdkYTlcdTdkYTFcdTdkYzlcdTdmNzNcdTdmZTJcdTdmZTNcdTdmZTVcdTdmZGVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTgwMjRc''@;'; put 'put ''dTgwNWRcdTgwNWNcdTgxODlcdTgxODZcdTgxODNcdTgxODdcdTgxOGRcdTgxOGNcdTgxOGJcdTgyMTVcdTg0OTdcdTg0YTRcdTg0YTFcdTg0OWZcdTg0YmFcdTg0Y2VcdTg0YzJcdTg0YWNcdTg0YWVcdTg0YWJcdTg0YjlcdTg0YjRcdTg0YzFcdTg0Y2RcdTg0YWFcdTg0OWFcdTg0YjFcdTg0''@;'; put 'put ''ZDBcdTg0OWRcdTg0YTdcdTg0YmJcdTg0YTJcdTg0OTRcdTg0YzdcdTg0Y2NcdTg0OWJcdTg0YTlcdTg0YWZcdTg0YThcdTg0ZDZcdTg0OThcdTg0YjZcdTg0Y2ZcdTg0YTBcdTg0ZDdcdTg0ZDRcdTg0ZDJcdTg0ZGJcdTg0YjBcdTg0OTFcdTg2NjFcdTg3MzNcdTg3MjNcdTg3MjhcdTg3NmJc''@;'; put 'put ''dTg3NDBcdTg3MmVcdTg3MWVcdTg3MjFcdTg3MTlcdTg3MWJcdTg3NDNcdTg3MmNcdTg3NDFcdTg3M2VcdTg3NDZcdTg3MjBcdTg3MzJcdTg3MmFcdTg3MmRcdTg3M2NcdTg3MTJcdTg3M2FcdTg3MzFcdTg3MzVcdTg3NDJcdTg3MjZcdTg3MjdcdTg3MzhcdTg3MjRcdTg3MWFcdTg3MzBcdTg3''@;'; put 'put ''MTFcdTg4ZjdcdTg4ZTdcdTg4ZjFcdTg4ZjJcdTg4ZmFcdTg4ZmVcdTg4ZWVcdTg4ZmNcdTg4ZjZcdTg4ZmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI3XVtFXV09NTgxMTIrRSxMWzU4''@;'; put 'put ''MTEyK0VdPUJbMjI3XVtFXSk7Zm9yKEJbMjI4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4OGYwXHU4OGVjXHU4OGViXHU4OTlkXHU4OWExXHU4OTlmXHU4OTllXHU4OWU5XHU4OWViXHU4OWU4XHU4YWFiXHU4YTk5XHU4YThiXHU4''@;'; put 'put ''YTkyXHU4YThmXHU4YTk2XHU4YzNkXHU4YzY4XHU4YzY5XHU4Y2Q1XHU4Y2NmXHU4Y2Q3XHU4ZDk2XHU4ZTA5XHU4ZTAyXHU4ZGZmXHU4ZTBkXHU4ZGZkXHU4ZTBhXHU4ZTAzXHU4ZTA3XHU4ZTA2XHU4ZTA1XHU4ZGZlXHU4ZTAwXHU4ZTA0XHU4ZjEwXHU4ZjExXHU4ZjBlXHU4ZjBkXHU5MTIz''@;'; put 'put ''XHU5MTFjXHU5MTIwXHU5MTIyXHU5MTFmXHU5MTFkXHU5MTFhXHU5MTI0XHU5MTIxXHU5MTFiXHU5MTdhXHU5MTcyXHU5MTc5XHU5MTczXHU5MmE1XHU5MmE0XHU5Mjc2XHU5MjliXHU5MjdhXHU5MmEwXHU5Mjk0XHU5MmFhXHU5MjhkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHU5MmE2XHU5MjlhXHU5MmFiXHU5Mjc5XHU5Mjk3XHU5MjdmXHU5MmEzXHU5MmVlXHU5MjhlXHU5MjgyXHU5Mjk1XHU5MmEyXHU5MjdkXHU5Mjg4XHU5MmExXHU5MjhhXHU5Mjg2XHU5MjhjXHU5Mjk5XHU5MmE3XHU5MjdlXHU5Mjg3XHU5MmE5XHU5MjlkXHU5MjhiXHU5MjJkXHU5''@;'; put 'put ''NjllXHU5NmExXHU5NmZmXHU5NzU4XHU5NzdkXHU5NzdhXHU5NzdlXHU5NzgzXHU5NzgwXHU5NzgyXHU5NzdiXHU5Nzg0XHU5NzgxXHU5NzdmXHU5N2NlXHU5N2NkXHU5ODE2XHU5OGFkXHU5OGFlXHU5OTAyXHU5OTAwXHU5OTA3XHU5OTlkXHU5OTljXHU5OWMzXHU5OWI5XHU5OWJiXHU5OWJh''@;'; put 'put ''XHU5OWMyXHU5OWJkXHU5OWM3XHU5YWIxXHU5YWUzXHU5YWU3XHU5YjNlXHU5YjNmXHU5YjYwXHU5YjYxXHU5YjVmXHU5Y2YxXHU5Y2YyXHU5Y2Y1XHU5ZWE3XHU1MGZmXHU1MTAzXHU1MTMwXHU1MGY4XHU1MTA2XHU1MTA3XHU1MGY2XHU1MGZlXHU1MTBiXHU1MTBjXHU1MGZkXHU1MTBhXHU1''@;'; put 'put ''MjhiXHU1MjhjXHU1MmYxXHU1MmVmXHU1NjQ4XHU1NjQyXHU1NjRjXHU1NjM1XHU1NjQxXHU1NjRhXHU1NjQ5XHU1NjQ2XHU1NjU4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjhdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyOF1bRV1d''@;'; put 'put ''PTU4MzY4K0UsTFs1ODM2OCtFXT1CWzIyOF1bRV0pO2ZvcihCWzIyOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTY1YVx1NTY0MFx1NTYzM1x1NTYzZFx1NTYyY1x1NTYzZVx1NTYzOFx1NTYyYVx1NTYzYVx1NTcxYVx1NThhYlx1''@;'; put 'put ''NTg5ZFx1NThiMVx1NThhMFx1NThhM1x1NThhZlx1NThhY1x1NThhNVx1NThhMVx1NThmZlx1NWFmZlx1NWFmNFx1NWFmZFx1NWFmN1x1NWFmNlx1NWIwM1x1NWFmOFx1NWIwMlx1NWFmOVx1NWIwMVx1NWIwN1x1NWIwNVx1NWIwZlx1NWM2N1x1NWQ5OVx1NWQ5N1x1NWQ5Zlx1NWQ5Mlx1NWRh''@;'; put 'put ''Mlx1NWQ5M1x1NWQ5NVx1NWRhMFx1NWQ5Y1x1NWRhMVx1NWQ5YVx1NWQ5ZVx1NWU2OVx1NWU1ZFx1NWU2MFx1NWU1Y1x1N2RmM1x1NWVkYlx1NWVkZVx1NWVlMVx1NWY0OVx1NWZiMlx1NjE4Ylx1NjE4M1x1NjE3OVx1NjFiMVx1NjFiMFx1NjFhMlx1NjE4OVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjE5Ylx1NjE5M1x1NjFhZlx1NjFhZFx1NjE5Zlx1NjE5Mlx1NjFhYVx1NjFhMVx1NjE4ZFx1NjE2Nlx1NjFiM1x1NjIyZFx1NjQ2ZVx1NjQ3MFx1NjQ5Nlx1NjRhMFx1NjQ4NVx1NjQ5N1x1NjQ5Y1x1NjQ4Zlx1NjQ4Ylx1NjQ4YVx1NjQ4Y1x1NjRhM1x1''@;'; put 'put ''NjQ5Zlx1NjQ2OFx1NjRiMVx1NjQ5OFx1NjU3Nlx1NjU3YVx1NjU3OVx1NjU3Ylx1NjViMlx1NjViM1x1NjZiNVx1NjZiMFx1NjZhOVx1NjZiMlx1NjZiN1x1NjZhYVx1NjZhZlx1NmEwMFx1NmEwNlx1NmExN1x1NjllNVx1NjlmOFx1NmExNVx1NjlmMVx1NjllNFx1NmEyMFx1NjlmZlx1Njll''@;'; put 'put ''Y1x1NjllMlx1NmExYlx1NmExZFx1NjlmZVx1NmEyN1x1NjlmMlx1NjllZVx1NmExNFx1NjlmN1x1NjllN1x1NmE0MFx1NmEwOFx1NjllNlx1NjlmYlx1NmEwZFx1NjlmY1x1NjllYlx1NmEwOVx1NmEwNFx1NmExOFx1NmEyNVx1NmEwZlx1NjlmNlx1NmEyNlx1NmEwN1x1NjlmNFx1NmExNlx1''@;'; put 'put ''NmI1MVx1NmJhNVx1NmJhM1x1NmJhMlx1NmJhNlx1NmMwMVx1NmMwMFx1NmJmZlx1NmMwMlx1NmY0MVx1NmYyNlx1NmY3ZVx1NmY4N1x1NmZjNlx1NmY5Mlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI5XVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; put 'put ''bWVbQlsyMjldW0VdXT01ODYyNCtFLExbNTg2MjQrRV09QlsyMjldW0VdKTtmb3IoQlsyMzBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmOGRcdTZmODlcdTZmOGNcdTZmNjJcdTZmNGZcdTZmODVcdTZmNWFcdTZmOTZcdTZmNzZc''@;'; put 'put ''dTZmNmNcdTZmODJcdTZmNTVcdTZmNzJcdTZmNTJcdTZmNTBcdTZmNTdcdTZmOTRcdTZmOTNcdTZmNWRcdTZmMDBcdTZmNjFcdTZmNmJcdTZmN2RcdTZmNjdcdTZmOTBcdTZmNTNcdTZmOGJcdTZmNjlcdTZmN2ZcdTZmOTVcdTZmNjNcdTZmNzdcdTZmNmFcdTZmN2JcdTcxYjJcdTcxYWZcdTcx''@;'; put 'put ''OWJcdTcxYjBcdTcxYTBcdTcxOWFcdTcxYTlcdTcxYjVcdTcxOWRcdTcxYTVcdTcxOWVcdTcxYTRcdTcxYTFcdTcxYWFcdTcxOWNcdTcxYTdcdTcxYjNcdTcyOThcdTcyOWFcdTczNThcdTczNTJcdTczNWVcdTczNWZcdTczNjBcdTczNWRcdTczNWJcdTczNjFcdTczNWFcdTczNTlcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTczNjJcdTc0ODdcdTc0ODlcdTc0OGFcdTc0ODZcdTc0ODFcdTc0N2RcdTc0ODVcdTc0ODhcdTc0N2NcdTc0NzlcdTc1MDhcdTc1MDdcdTc1N2VcdTc2MjVcdTc2MWVcdTc2MTlcdTc2MWRcdTc2MWNcdTc2MjNcdTc2MWFcdTc2Mjhc''@;'; put 'put ''dTc2MWJcdTc2OWNcdTc2OWRcdTc2OWVcdTc2OWJcdTc3OGRcdTc3OGZcdTc3ODlcdTc3ODhcdTc4Y2RcdTc4YmJcdTc4Y2ZcdTc4Y2NcdTc4ZDFcdTc4Y2VcdTc4ZDRcdTc4YzhcdTc4YzNcdTc4YzRcdTc4YzlcdTc5OWFcdTc5YTFcdTc5YTBcdTc5OWNcdTc5YTJcdTc5OWJcdTZiNzZcdTdh''@;'; put 'put ''MzlcdTdhYjJcdTdhYjRcdTdhYjNcdTdiYjdcdTdiY2JcdTdiYmVcdTdiYWNcdTdiY2VcdTdiYWZcdTdiYjlcdTdiY2FcdTdiYjVcdTdjYzVcdTdjYzhcdTdjY2NcdTdjY2JcdTdkZjdcdTdkZGJcdTdkZWFcdTdkZTdcdTdkZDdcdTdkZTFcdTdlMDNcdTdkZmFcdTdkZTZcdTdkZjZcdTdkZjFc''@;'; put 'put ''dTdkZjBcdTdkZWVcdTdkZGZcdTdmNzZcdTdmYWNcdTdmYjBcdTdmYWRcdTdmZWRcdTdmZWJcdTdmZWFcdTdmZWNcdTdmZTZcdTdmZThcdTgwNjRcdTgwNjdcdTgxYTNcdTgxOWZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMF1bRV0uY2hh''@;'; put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMjMwXVtFXV09NTg4ODArRSxMWzU4ODgwK0VdPUJbMjMwXVtFXSk7Zm9yKEJbMjMxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MTllXHU4MTk1XHU4MWEyXHU4MTk5XHU4MTk3XHU4MjE2XHU4MjRm''@;'; put 'put ''XHU4MjUzXHU4MjUyXHU4MjUwXHU4MjRlXHU4MjUxXHU4NTI0XHU4NTNiXHU4NTBmXHU4NTAwXHU4NTI5XHU4NTBlXHU4NTA5XHU4NTBkXHU4NTFmXHU4NTBhXHU4NTI3XHU4NTFjXHU4NGZiXHU4NTJiXHU4NGZhXHU4NTA4XHU4NTBjXHU4NGY0XHU4NTJhXHU4NGYyXHU4NTE1XHU4NGY3XHU4''@;'; put 'put ''NGViXHU4NGYzXHU4NGZjXHU4NTEyXHU4NGVhXHU4NGU5XHU4NTE2XHU4NGZlXHU4NTI4XHU4NTFkXHU4NTJlXHU4NTAyXHU4NGZkXHU4NTFlXHU4NGY2XHU4NTMxXHU4NTI2XHU4NGU3XHU4NGU4XHU4NGYwXHU4NGVmXHU4NGY5XHU4NTE4XHU4NTIwXHU4NTMwXHU4NTBiXHU4NTE5XHU4NTJm''@;'; put 'put ''XHU4NjYyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4NzU2XHU4NzYzXHU4NzY0XHU4Nzc3XHU4N2UxXHU4NzczXHU4NzU4XHU4NzU0XHU4NzViXHU4NzUyXHU4NzYxXHU4NzVhXHU4NzUxXHU4NzVlXHU4NzZkXHU4NzZhXHU4NzUwXHU4NzRlXHU4NzVmXHU4NzVk''@;'; put 'put ''XHU4NzZmXHU4NzZjXHU4NzdhXHU4NzZlXHU4NzVjXHU4NzY1XHU4NzRmXHU4NzdiXHU4Nzc1XHU4NzYyXHU4NzY3XHU4NzY5XHU4ODVhXHU4OTA1XHU4OTBjXHU4OTE0XHU4OTBiXHU4OTE3XHU4OTE4XHU4OTE5XHU4OTA2XHU4OTE2XHU4OTExXHU4OTBlXHU4OTA5XHU4OWEyXHU4OWE0XHU4''@;'; put 'put ''OWEzXHU4OWVkXHU4OWYwXHU4OWVjXHU4YWNmXHU4YWM2XHU4YWI4XHU4YWQzXHU4YWQxXHU4YWQ0XHU4YWQ1XHU4YWJiXHU4YWQ3XHU4YWJlXHU4YWMwXHU4YWM1XHU4YWQ4XHU4YWMzXHU4YWJhXHU4YWJkXHU4YWQ5XHU4YzNlXHU4YzRkXHU4YzhmXHU4Y2U1XHU4Y2RmXHU4Y2Q5XHU4Y2U4''@;'; put 'put ''XHU4Y2RhXHU4Y2RkXHU4Y2U3XHU4ZGEwXHU4ZDljXHU4ZGExXHU4ZDliXHU4ZTIwXHU4ZTIzXHU4ZTI1XHU4ZTI0XHU4ZTJlXHU4ZTE1XHU4ZTFiXHU4ZTE2XHU4ZTExXHU4ZTE5XHU4ZTI2XHU4ZTI3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMxXS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; put 'put ''QlsyMzFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMV1bRV1dPTU5MTM2K0UsTFs1OTEzNitFXT1CWzIzMV1bRV0pO2ZvcihCWzIzMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGUxNFx1OGUxMlx1OGUxOFx1OGUxM1x1OGUx''@;'; put 'put ''Y1x1OGUxN1x1OGUxYVx1OGYyY1x1OGYyNFx1OGYxOFx1OGYxYVx1OGYyMFx1OGYyM1x1OGYxNlx1OGYxN1x1OTA3M1x1OTA3MFx1OTA2Zlx1OTA2N1x1OTA2Ylx1OTEyZlx1OTEyYlx1OTEyOVx1OTEyYVx1OTEzMlx1OTEyNlx1OTEyZVx1OTE4NVx1OTE4Nlx1OTE4YVx1OTE4MVx1OTE4Mlx1''@;'; put 'put ''OTE4NFx1OTE4MFx1OTJkMFx1OTJjM1x1OTJjNFx1OTJjMFx1OTJkOVx1OTJiNlx1OTJjZlx1OTJmMVx1OTJkZlx1OTJkOFx1OTJlOVx1OTJkN1x1OTJkZFx1OTJjY1x1OTJlZlx1OTJjMlx1OTJlOFx1OTJjYVx1OTJjOFx1OTJjZVx1OTJlNlx1OTJjZFx1OTJkNVx1OTJjOVx1OTJlMFx1OTJk''@;'; put 'put ''ZVx1OTJlN1x1OTJkMVx1OTJkM1x1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTJiNVx1OTJlMVx1OTJjNlx1OTJiNFx1OTU3Y1x1OTVhY1x1OTVhYlx1OTVhZVx1OTViMFx1OTZhNFx1OTZhMlx1OTZkM1x1OTcwNVx1OTcwOFx1OTcwMlx1OTc1YVx1OTc4YVx1OTc4''@;'; put 'put ''ZVx1OTc4OFx1OTdkMFx1OTdjZlx1OTgxZVx1OTgxZFx1OTgyNlx1OTgyOVx1OTgyOFx1OTgyMFx1OTgxYlx1OTgyN1x1OThiMlx1OTkwOFx1OThmYVx1OTkxMVx1OTkxNFx1OTkxNlx1OTkxN1x1OTkxNVx1OTlkY1x1OTljZFx1OTljZlx1OTlkM1x1OTlkNFx1OTljZVx1OTljOVx1OTlkNlx1''@;'; put 'put ''OTlkOFx1OTljYlx1OTlkN1x1OTljY1x1OWFiM1x1OWFlY1x1OWFlYlx1OWFmM1x1OWFmMlx1OWFmMVx1OWI0Nlx1OWI0M1x1OWI2N1x1OWI3NFx1OWI3MVx1OWI2Nlx1OWI3Nlx1OWI3NVx1OWI3MFx1OWI2OFx1OWI2NFx1OWI2Y1x1OWNmY1x1OWNmYVx1OWNmZFx1OWNmZlx1OWNmN1x1OWQw''@;'; put 'put ''N1x1OWQwMFx1OWNmOVx1OWNmYlx1OWQwOFx1OWQwNVx1OWQwNFx1OWU4M1x1OWVkM1x1OWYwZlx1OWYxMFx1NTExY1x1NTExM1x1NTExN1x1NTExYVx1NTExMVx1NTFkZVx1NTMzNFx1NTNlMVx1NTY3MFx1NTY2MFx1NTY2ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMl0ubGVuZ3Ro''@;'; put 'put ''OysrRSk2NTUzMyE9PUJbMjMyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzJdW0VdXT01OTM5MitFLExbNTkzOTIrRV09QlsyMzJdW0VdKTtmb3IoQlsyMzNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU2NzNcdTU2NjZcdTU2''@;'; put 'put ''NjNcdTU2NmRcdTU2NzJcdTU2NWVcdTU2NzdcdTU3MWNcdTU3MWJcdTU4YzhcdTU4YmRcdTU4YzlcdTU4YmZcdTU4YmFcdTU4YzJcdTU4YmNcdTU4YzZcdTViMTdcdTViMTlcdTViMWJcdTViMjFcdTViMTRcdTViMTNcdTViMTBcdTViMTZcdTViMjhcdTViMWFcdTViMjBcdTViMWVcdTViZWZc''@;'; put 'put ''dTVkYWNcdTVkYjFcdTVkYTlcdTVkYTdcdTVkYjVcdTVkYjBcdTVkYWVcdTVkYWFcdTVkYThcdTVkYjJcdTVkYWRcdTVkYWZcdTVkYjRcdTVlNjdcdTVlNjhcdTVlNjZcdTVlNmZcdTVlZTlcdTVlZTdcdTVlZTZcdTVlZThcdTVlZTVcdTVmNGJcdTVmYmNcdTYxOWRcdTYxYThcdTYxOTZcdTYx''@;'; put 'put ''YzVcdTYxYjRcdTYxYzZcdTYxYzFcdTYxY2NcdTYxYmFcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYxYmZcdTYxYjhcdTYxOGNcdTY0ZDdcdTY0ZDZcdTY0ZDBcdTY0Y2ZcdTY0YzlcdTY0YmRcdTY0ODlcdTY0YzNcdTY0ZGJcdTY0ZjNcdTY0ZDlcdTY1MzNcdTY1''@;'; put 'put ''N2ZcdTY1N2NcdTY1YTJcdTY2YzhcdTY2YmVcdTY2YzBcdTY2Y2FcdTY2Y2JcdTY2Y2ZcdTY2YmRcdTY2YmJcdTY2YmFcdTY2Y2NcdTY3MjNcdTZhMzRcdTZhNjZcdTZhNDlcdTZhNjdcdTZhMzJcdTZhNjhcdTZhM2VcdTZhNWRcdTZhNmRcdTZhNzZcdTZhNWJcdTZhNTFcdTZhMjhcdTZhNWFc''@;'; put 'put ''dTZhM2JcdTZhM2ZcdTZhNDFcdTZhNmFcdTZhNjRcdTZhNTBcdTZhNGZcdTZhNTRcdTZhNmZcdTZhNjlcdTZhNjBcdTZhM2NcdTZhNWVcdTZhNTZcdTZhNTVcdTZhNGRcdTZhNGVcdTZhNDZcdTZiNTVcdTZiNTRcdTZiNTZcdTZiYTdcdTZiYWFcdTZiYWJcdTZiYzhcdTZiYzdcdTZjMDRcdTZj''@;'; put 'put ''MDNcdTZjMDZcdTZmYWRcdTZmY2JcdTZmYTNcdTZmYzdcdTZmYmNcdTZmY2VcdTZmYzhcdTZmNWVcdTZmYzRcdTZmYmRcdTZmOWVcdTZmY2FcdTZmYThcdTcwMDRcdTZmYTVcdTZmYWVcdTZmYmFcdTZmYWNcdTZmYWFcdTZmY2ZcdTZmYmZcdTZmYjhcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; put 'put ''QlsyMzNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMzXVtFXV09NTk2NDgrRSxMWzU5NjQ4K0VdPUJbMjMzXVtFXSk7Zm9yKEJbMjM0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2''@;'; put 'put ''ZmEyXHU2ZmM5XHU2ZmFiXHU2ZmNkXHU2ZmFmXHU2ZmIyXHU2ZmIwXHU3MWM1XHU3MWMyXHU3MWJmXHU3MWI4XHU3MWQ2XHU3MWMwXHU3MWMxXHU3MWNiXHU3MWQ0XHU3MWNhXHU3MWM3XHU3MWNmXHU3MWJkXHU3MWQ4XHU3MWJjXHU3MWM2XHU3MWRhXHU3MWRiXHU3MjlkXHU3MjllXHU3MzY5''@;'; put 'put ''XHU3MzY2XHU3MzY3XHU3MzZjXHU3MzY1XHU3MzZiXHU3MzZhXHU3NDdmXHU3NDlhXHU3NGEwXHU3NDk0XHU3NDkyXHU3NDk1XHU3NGExXHU3NTBiXHU3NTgwXHU3NjJmXHU3NjJkXHU3NjMxXHU3NjNkXHU3NjMzXHU3NjNjXHU3NjM1XHU3NjMyXHU3NjMwXHU3NmJiXHU3NmU2XHU3NzlhXHU3''@;'; put 'put ''NzlkXHU3N2ExXHU3NzljXHU3NzliXHU3N2EyXHU3N2EzXHU3Nzk1XHU3Nzk5XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3Nzk3XHU3OGRkXHU3OGU5XHU3OGU1XHU3OGVhXHU3OGRlXHU3OGUzXHU3OGRiXHU3OGUxXHU3OGUyXHU3OGVkXHU3OGRmXHU3OGUwXHU3''@;'; put 'put ''OWE0XHU3YTQ0XHU3YTQ4XHU3YTQ3XHU3YWI2XHU3YWI4XHU3YWI1XHU3YWIxXHU3YWI3XHU3YmRlXHU3YmUzXHU3YmU3XHU3YmRkXHU3YmQ1XHU3YmU1XHU3YmRhXHU3YmU4XHU3YmY5XHU3YmQ0XHU3YmVhXHU3YmUyXHU3YmRjXHU3YmViXHU3YmQ4XHU3YmRmXHU3Y2QyXHU3Y2Q0XHU3Y2Q3''@;'; put 'put ''XHU3Y2QwXHU3Y2QxXHU3ZTEyXHU3ZTIxXHU3ZTE3XHU3ZTBjXHU3ZTFmXHU3ZTIwXHU3ZTEzXHU3ZTBlXHU3ZTFjXHU3ZTE1XHU3ZTFhXHU3ZTIyXHU3ZTBiXHU3ZTBmXHU3ZTE2XHU3ZTBkXHU3ZTE0XHU3ZTI1XHU3ZTI0XHU3ZjQzXHU3ZjdiXHU3ZjdjXHU3ZjdhXHU3ZmIxXHU3ZmVmXHU4''@;'; put 'put ''MDJhXHU4MDI5XHU4MDZjXHU4MWIxXHU4MWE2XHU4MWFlXHU4MWI5XHU4MWI1XHU4MWFiXHU4MWIwXHU4MWFjXHU4MWI0XHU4MWIyXHU4MWI3XHU4MWE3XHU4MWYyXHU4MjU1XHU4MjU2XHU4MjU3XHU4NTU2XHU4NTQ1XHU4NTZiXHU4NTRkXHU4NTUzXHU4NTYxXHU4NTU4XHVmZmZkIi5zcGxp''@;'; put 'put ''dCgiIiksRT0wO0UhPUJbMjM0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNF1bRV1dPTU5OTA0K0UsTFs1OTkwNCtFXT1CWzIzNF1bRV0pO2ZvcihCWzIzNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ODU0MFx1ODU0Nlx1ODU2NFx1ODU0MVx1ODU2Mlx1ODU0NFx1ODU1MVx1ODU0N1x1ODU2M1x1ODUzZVx1ODU1Ylx1ODU3MVx1ODU0ZVx1ODU2ZVx1ODU3NVx1ODU1NVx1ODU2N1x1ODU2MFx1ODU4Y1x1ODU2Nlx1ODU1ZFx1ODU1NFx1ODU2NVx1ODU2Y1x1ODY2M1x1ODY2''@;'; put 'put ''NVx1ODY2NFx1ODc5Ylx1ODc4Zlx1ODc5N1x1ODc5M1x1ODc5Mlx1ODc4OFx1ODc4MVx1ODc5Nlx1ODc5OFx1ODc3OVx1ODc4N1x1ODdhM1x1ODc4NVx1ODc5MFx1ODc5MVx1ODc5ZFx1ODc4NFx1ODc5NFx1ODc5Y1x1ODc5YVx1ODc4OVx1ODkxZVx1ODkyNlx1ODkzMFx1ODkyZFx1ODkyZVx1''@;'; put 'put ''ODkyN1x1ODkzMVx1ODkyMlx1ODkyOVx1ODkyM1x1ODkyZlx1ODkyY1x1ODkxZlx1ODlmMVx1OGFlMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGFlMlx1OGFmMlx1OGFmNFx1OGFmNVx1OGFkZFx1OGIxNFx1OGFlNFx1OGFkZlx1OGFmMFx1OGFjOFx1OGFkZVx1''@;'; put 'put ''OGFlMVx1OGFlOFx1OGFmZlx1OGFlZlx1OGFmYlx1OGM5MVx1OGM5Mlx1OGM5MFx1OGNmNVx1OGNlZVx1OGNmMVx1OGNmMFx1OGNmM1x1OGQ2Y1x1OGQ2ZVx1OGRhNVx1OGRhN1x1OGUzM1x1OGUzZVx1OGUzOFx1OGU0MFx1OGU0NVx1OGUzNlx1OGUzY1x1OGUzZFx1OGU0MVx1OGUzMFx1OGUz''@;'; put 'put ''Zlx1OGViZFx1OGYzNlx1OGYyZVx1OGYzNVx1OGYzMlx1OGYzOVx1OGYzN1x1OGYzNFx1OTA3Nlx1OTA3OVx1OTA3Ylx1OTA4Nlx1OTBmYVx1OTEzM1x1OTEzNVx1OTEzNlx1OTE5M1x1OTE5MFx1OTE5MVx1OTE4ZFx1OTE4Zlx1OTMyN1x1OTMxZVx1OTMwOFx1OTMxZlx1OTMwNlx1OTMwZlx1''@;'; put 'put ''OTM3YVx1OTMzOFx1OTMzY1x1OTMxYlx1OTMyM1x1OTMxMlx1OTMwMVx1OTM0Nlx1OTMyZFx1OTMwZVx1OTMwZFx1OTJjYlx1OTMxZFx1OTJmYVx1OTMyNVx1OTMxM1x1OTJmOVx1OTJmN1x1OTMzNFx1OTMwMlx1OTMyNFx1OTJmZlx1OTMyOVx1OTMzOVx1OTMzNVx1OTMyYVx1OTMxNFx1OTMw''@;'; put 'put ''Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzVdW0VdXT02MDE2MCtFLExbNjAxNjArRV09QlsyMzVdW0VdKTtmb3IoQlsyMzZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzMGJcdTkyZmVcdTkzMDlcdTkzMDBcdTkyZmJcdTkzMTZcdTk1YmNcdTk1Y2RcdTk1YmVcdTk1YjlcdTk1YmFcdTk1YjZcdTk1YmZcdTk1YjVcdTk1YmRcdTk2YTlcdTk2ZDRcdTk3MGJcdTk3MTJcdTk3MTBcdTk3OTlcdTk3OTdcdTk3OTRcdTk3''@;'; put 'put ''ZjBcdTk3ZjhcdTk4MzVcdTk4MmZcdTk4MzJcdTk5MjRcdTk5MWZcdTk5MjdcdTk5MjlcdTk5OWVcdTk5ZWVcdTk5ZWNcdTk5ZTVcdTk5ZTRcdTk5ZjBcdTk5ZTNcdTk5ZWFcdTk5ZTlcdTk5ZTdcdTlhYjlcdTlhYmZcdTlhYjRcdTlhYmJcdTlhZjZcdTlhZmFcdTlhZjlcdTlhZjdcdTliMzNc''@;'; put 'put ''dTliODBcdTliODVcdTliODdcdTliN2NcdTliN2VcdTliN2JcdTliODJcdTliOTNcdTliOTJcdTliOTBcdTliN2FcdTliOTVcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTliN2RcdTliODhcdTlkMjVcdTlkMTdcdTlkMjBcdTlkMWVcdTlkMTRcdTlkMjlcdTlkMWRc''@;'; put 'put ''dTlkMThcdTlkMjJcdTlkMTBcdTlkMTlcdTlkMWZcdTllODhcdTllODZcdTllODdcdTllYWVcdTllYWRcdTllZDVcdTllZDZcdTllZmFcdTlmMTJcdTlmM2RcdTUxMjZcdTUxMjVcdTUxMjJcdTUxMjRcdTUxMjBcdTUxMjlcdTUyZjRcdTU2OTNcdTU2OGNcdTU2OGRcdTU2ODZcdTU2ODRcdTU2''@;'; put 'put ''ODNcdTU2N2VcdTU2ODJcdTU2N2ZcdTU2ODFcdTU4ZDZcdTU4ZDRcdTU4Y2ZcdTU4ZDJcdTViMmRcdTViMjVcdTViMzJcdTViMjNcdTViMmNcdTViMjdcdTViMjZcdTViMmZcdTViMmVcdTViN2JcdTViZjFcdTViZjJcdTVkYjdcdTVlNmNcdTVlNmFcdTVmYmVcdTVmYmJcdTYxYzNcdTYxYjVc''@;'; put 'put ''dTYxYmNcdTYxZTdcdTYxZTBcdTYxZTVcdTYxZTRcdTYxZThcdTYxZGVcdTY0ZWZcdTY0ZTlcdTY0ZTNcdTY0ZWJcdTY0ZTRcdTY0ZThcdTY1ODFcdTY1ODBcdTY1YjZcdTY1ZGFcdTY2ZDJcdTZhOGRcdTZhOTZcdTZhODFcdTZhYTVcdTZhODlcdTZhOWZcdTZhOWJcdTZhYTFcdTZhOWVcdTZh''@;'; put 'put ''ODdcdTZhOTNcdTZhOGVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM2XVtFXV09NjA0MTYrRSxMWzYwNDE2K0VdPUJbMjM2XVtFXSk7Zm9yKEJbMjM3XT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2YTk1XHU2YTgzXHU2YWE4XHU2YWE0XHU2YTkxXHU2YTdmXHU2YWE2XHU2YTlhXHU2YTg1XHU2YThjXHU2YTkyXHU2YjViXHU2YmFkXHU2YzA5XHU2ZmNjXHU2ZmE5XHU2ZmY0XHU2ZmQ0XHU2ZmUzXHU2ZmRjXHU2ZmVkXHU2''@;'; put 'put ''ZmU3XHU2ZmU2XHU2ZmRlXHU2ZmYyXHU2ZmRkXHU2ZmUyXHU2ZmU4XHU3MWUxXHU3MWYxXHU3MWU4XHU3MWYyXHU3MWU0XHU3MWYwXHU3MWUyXHU3MzczXHU3MzZlXHU3MzZmXHU3NDk3XHU3NGIyXHU3NGFiXHU3NDkwXHU3NGFhXHU3NGFkXHU3NGIxXHU3NGE1XHU3NGFmXHU3NTEwXHU3NTEx''@;'; put 'put ''XHU3NTEyXHU3NTBmXHU3NTg0XHU3NjQzXHU3NjQ4XHU3NjQ5XHU3NjQ3XHU3NmE0XHU3NmU5XHU3N2I1XHU3N2FiXHU3N2IyXHU3N2I3XHU3N2I2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3N2I0XHU3N2IxXHU3N2E4XHU3N2YwXHU3OGYzXHU3OGZkXHU3OTAy''@;'; put 'put ''XHU3OGZiXHU3OGZjXHU3OGYyXHU3OTA1XHU3OGY5XHU3OGZlXHU3OTA0XHU3OWFiXHU3OWE4XHU3YTVjXHU3YTViXHU3YTU2XHU3YTU4XHU3YTU0XHU3YTVhXHU3YWJlXHU3YWMwXHU3YWMxXHU3YzA1XHU3YzBmXHU3YmYyXHU3YzAwXHU3YmZmXHU3YmZiXHU3YzBlXHU3YmY0XHU3YzBiXHU3''@;'; put 'put ''YmYzXHU3YzAyXHU3YzA5XHU3YzAzXHU3YzAxXHU3YmY4XHU3YmZkXHU3YzA2XHU3YmYwXHU3YmYxXHU3YzEwXHU3YzBhXHU3Y2U4XHU3ZTJkXHU3ZTNjXHU3ZTQyXHU3ZTMzXHU5ODQ4XHU3ZTM4XHU3ZTJhXHU3ZTQ5XHU3ZTQwXHU3ZTQ3XHU3ZTI5XHU3ZTRjXHU3ZTMwXHU3ZTNiXHU3ZTM2''@;'; put 'put ''XHU3ZTQ0XHU3ZTNhXHU3ZjQ1XHU3ZjdmXHU3ZjdlXHU3ZjdkXHU3ZmY0XHU3ZmYyXHU4MDJjXHU4MWJiXHU4MWM0XHU4MWNjXHU4MWNhXHU4MWM1XHU4MWM3XHU4MWJjXHU4MWU5XHU4MjViXHU4MjVhXHU4MjVjXHU4NTgzXHU4NTgwXHU4NThmXHU4NWE3XHU4NTk1XHU4NWEwXHU4NThiXHU4''@;'; put 'put ''NWEzXHU4NTdiXHU4NWE0XHU4NTlhXHU4NTllXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzN11bRV1dPTYwNjcyK0UsTFs2MDY3MitFXT1CWzIzN11bRV0pO2ZvcihCWzIzOF09Ilx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU3N1x1ODU3Y1x1ODU4OVx1ODVhMVx1ODU3YVx1ODU3OFx1ODU1N1x1ODU4ZVx1ODU5Nlx1ODU4Nlx1ODU4ZFx1ODU5OVx1ODU5ZFx1ODU4MVx1ODVhMlx1ODU4Mlx1ODU4OFx1ODU4NVx1ODU3OVx1''@;'; put 'put ''ODU3Nlx1ODU5OFx1ODU5MFx1ODU5Zlx1ODY2OFx1ODdiZVx1ODdhYVx1ODdhZFx1ODdjNVx1ODdiMFx1ODdhY1x1ODdiOVx1ODdiNVx1ODdiY1x1ODdhZVx1ODdjOVx1ODdjM1x1ODdjMlx1ODdjY1x1ODdiN1x1ODdhZlx1ODdjNFx1ODdjYVx1ODdiNFx1ODdiNlx1ODdiZlx1ODdiOFx1ODdi''@;'; put 'put ''ZFx1ODdkZVx1ODdiMlx1ODkzNVx1ODkzM1x1ODkzY1x1ODkzZVx1ODk0MVx1ODk1Mlx1ODkzN1x1ODk0Mlx1ODlhZFx1ODlhZlx1ODlhZVx1ODlmMlx1ODlmM1x1OGIxZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGIxOFx1OGIxNlx1OGIxMVx1OGIwNVx1OGIw''@;'; put 'put ''Ylx1OGIyMlx1OGIwZlx1OGIxMlx1OGIxNVx1OGIwN1x1OGIwZFx1OGIwOFx1OGIwNlx1OGIxY1x1OGIxM1x1OGIxYVx1OGM0Zlx1OGM3MFx1OGM3Mlx1OGM3MVx1OGM2Zlx1OGM5NVx1OGM5NFx1OGNmOVx1OGQ2Zlx1OGU0ZVx1OGU0ZFx1OGU1M1x1OGU1MFx1OGU0Y1x1OGU0N1x1OGY0M1x1''@;'; put 'put ''OGY0MFx1OTA4NVx1OTA3ZVx1OTEzOFx1OTE5YVx1OTFhMlx1OTE5Ylx1OTE5OVx1OTE5Zlx1OTFhMVx1OTE5ZFx1OTFhMFx1OTNhMVx1OTM4M1x1OTNhZlx1OTM2NFx1OTM1Nlx1OTM0N1x1OTM3Y1x1OTM1OFx1OTM1Y1x1OTM3Nlx1OTM0OVx1OTM1MFx1OTM1MVx1OTM2MFx1OTM2ZFx1OTM4''@;'; put 'put ''Zlx1OTM0Y1x1OTM2YVx1OTM3OVx1OTM1N1x1OTM1NVx1OTM1Mlx1OTM0Zlx1OTM3MVx1OTM3N1x1OTM3Ylx1OTM2MVx1OTM1ZVx1OTM2M1x1OTM2N1x1OTM4MFx1OTM0ZVx1OTM1OVx1OTVjN1x1OTVjMFx1OTVjOVx1OTVjM1x1OTVjNVx1OTViN1x1OTZhZVx1OTZiMFx1OTZhY1x1OTcyMFx1''@;'; put 'put ''OTcxZlx1OTcxOFx1OTcxZFx1OTcxOVx1OTc5YVx1OTdhMVx1OTc5Y1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzOF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzhdW0VdXT02MDkyOCtFLExbNjA5MjgrRV09QlsyMzhdW0VdKTtmb3Io''@;'; put 'put ''QlsyMzldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTk3OWVcdTk3OWRcdTk3ZDVcdTk3ZDRcdTk3ZjFcdTk4NDFcdTk4NDRcdTk4NGFcdTk4NDlcdTk4NDVcdTk4NDNcdTk5MjVcdTk5MmJcdTk5MmNcdTk5MmFcdTk5MzNcdTk5MzJc''@;'; put 'put ''dTk5MmZcdTk5MmRcdTk5MzFcdTk5MzBcdTk5OThcdTk5YTNcdTk5YTFcdTlhMDJcdTk5ZmFcdTk5ZjRcdTk5ZjdcdTk5ZjlcdTk5ZjhcdTk5ZjZcdTk5ZmJcdTk5ZmRcdTk5ZmVcdTk5ZmNcdTlhMDNcdTlhYmVcdTlhZmVcdTlhZmRcdTliMDFcdTlhZmNcdTliNDhcdTliOWFcdTliYThcdTli''@;'; put 'put ''OWVcdTliOWJcdTliYTZcdTliYTFcdTliYTVcdTliYTRcdTliODZcdTliYTJcdTliYTBcdTliYWZcdTlkMzNcdTlkNDFcdTlkNjdcdTlkMzZcdTlkMmVcdTlkMmZcdTlkMzFcdTlkMzhcdTlkMzBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkNDVcdTlkNDJcdTlk''@;'; put 'put ''NDNcdTlkM2VcdTlkMzdcdTlkNDBcdTlkM2RcdTdmZjVcdTlkMmRcdTllOGFcdTllODlcdTllOGRcdTllYjBcdTllYzhcdTllZGFcdTllZmJcdTllZmZcdTlmMjRcdTlmMjNcdTlmMjJcdTlmNTRcdTlmYTBcdTUxMzFcdTUxMmRcdTUxMmVcdTU2OThcdTU2OWNcdTU2OTdcdTU2OWFcdTU2OWRc''@;'; put 'put ''dTU2OTlcdTU5NzBcdTViM2NcdTVjNjlcdTVjNmFcdTVkYzBcdTVlNmRcdTVlNmVcdTYxZDhcdTYxZGZcdTYxZWRcdTYxZWVcdTYxZjFcdTYxZWFcdTYxZjBcdTYxZWJcdTYxZDZcdTYxZTlcdTY0ZmZcdTY1MDRcdTY0ZmRcdTY0ZjhcdTY1MDFcdTY1MDNcdTY0ZmNcdTY1OTRcdTY1ZGJcdTY2''@;'; put 'put ''ZGFcdTY2ZGJcdTY2ZDhcdTZhYzVcdTZhYjlcdTZhYmRcdTZhZTFcdTZhYzZcdTZhYmFcdTZhYjZcdTZhYjdcdTZhYzdcdTZhYjRcdTZhYWRcdTZiNWVcdTZiYzlcdTZjMGJcdTcwMDdcdTcwMGNcdTcwMGRcdTcwMDFcdTcwMDVcdTcwMTRcdTcwMGVcdTZmZmZcdTcwMDBcdTZmZmJcdTcwMjZc''@;'; put 'put ''dTZmZmNcdTZmZjdcdTcwMGFcdTcyMDFcdTcxZmZcdTcxZjlcdTcyMDNcdTcxZmRcdTczNzZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM5XVtFXV09NjExODQrRSxMWzYxMTg0K0VdPUJb''@;'; put 'put ''MjM5XVtFXSk7Zm9yKEJbMjQwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3NGI4XHU3NGMwXHU3NGI1XHU3NGMxXHU3NGJlXHU3NGI2XHU3NGJiXHU3NGMyXHU3NTE0XHU3NTEzXHU3NjVjXHU3NjY0XHU3NjU5XHU3NjUwXHU3NjUz''@;'; put 'put ''XHU3NjU3XHU3NjVhXHU3NmE2XHU3NmJkXHU3NmVjXHU3N2MyXHU3N2JhXHU3OGZmXHU3OTBjXHU3OTEzXHU3OTE0XHU3OTA5XHU3OTEwXHU3OTEyXHU3OTExXHU3OWFkXHU3OWFjXHU3YTVmXHU3YzFjXHU3YzI5XHU3YzE5XHU3YzIwXHU3YzFmXHU3YzJkXHU3YzFkXHU3YzI2XHU3YzI4XHU3''@;'; put 'put ''YzIyXHU3YzI1XHU3YzMwXHU3ZTVjXHU3ZTUwXHU3ZTU2XHU3ZTYzXHU3ZTU4XHU3ZTYyXHU3ZTVmXHU3ZTUxXHU3ZTYwXHU3ZTU3XHU3ZTUzXHU3ZmI1XHU3ZmIzXHU3ZmY3XHU3ZmY4XHU4MDc1XHU4MWQxXHU4MWQyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4''@;'; put 'put ''MWQwXHU4MjVmXHU4MjVlXHU4NWI0XHU4NWM2XHU4NWMwXHU4NWMzXHU4NWMyXHU4NWIzXHU4NWI1XHU4NWJkXHU4NWM3XHU4NWM0XHU4NWJmXHU4NWNiXHU4NWNlXHU4NWM4XHU4NWM1XHU4NWIxXHU4NWI2XHU4NWQyXHU4NjI0XHU4NWI4XHU4NWI3XHU4NWJlXHU4NjY5XHU4N2U3XHU4N2U2''@;'; put 'put ''XHU4N2UyXHU4N2RiXHU4N2ViXHU4N2VhXHU4N2U1XHU4N2RmXHU4N2YzXHU4N2U0XHU4N2Q0XHU4N2RjXHU4N2QzXHU4N2VkXHU4N2Q4XHU4N2UzXHU4N2E0XHU4N2Q3XHU4N2Q5XHU4ODAxXHU4N2Y0XHU4N2U4XHU4N2RkXHU4OTUzXHU4OTRiXHU4OTRmXHU4OTRjXHU4OTQ2XHU4OTUwXHU4''@;'; put 'put ''OTUxXHU4OTQ5XHU4YjJhXHU4YjI3XHU4YjIzXHU4YjMzXHU4YjMwXHU4YjM1XHU4YjQ3XHU4YjJmXHU4YjNjXHU4YjNlXHU4YjMxXHU4YjI1XHU4YjM3XHU4YjI2XHU4YjM2XHU4YjJlXHU4YjI0XHU4YjNiXHU4YjNkXHU4YjNhXHU4YzQyXHU4Yzc1XHU4Yzk5XHU4Yzk4XHU4Yzk3XHU4Y2Zl''@;'; put 'put ''XHU4ZDA0XHU4ZDAyXHU4ZDAwXHU4ZTVjXHU4ZTYyXHU4ZTYwXHU4ZTU3XHU4ZTU2XHU4ZTVlXHU4ZTY1XHU4ZTY3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0MF1bRV1dPTYxNDQwK0Us''@;'; put 'put ''TFs2MTQ0MCtFXT1CWzI0MF1bRV0pO2ZvcihCWzI0MV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGU1Ylx1OGU1YVx1OGU2MVx1OGU1ZFx1OGU2OVx1OGU1NFx1OGY0Nlx1OGY0N1x1OGY0OFx1OGY0Ylx1OTEyOFx1OTEzYVx1OTEz''@;'; put 'put ''Ylx1OTEzZVx1OTFhOFx1OTFhNVx1OTFhN1x1OTFhZlx1OTFhYVx1OTNiNVx1OTM4Y1x1OTM5Mlx1OTNiN1x1OTM5Ylx1OTM5ZFx1OTM4OVx1OTNhN1x1OTM4ZVx1OTNhYVx1OTM5ZVx1OTNhNlx1OTM5NVx1OTM4OFx1OTM5OVx1OTM5Zlx1OTM4ZFx1OTNiMVx1OTM5MVx1OTNiMlx1OTNhNFx1''@;'; put 'put ''OTNhOFx1OTNiNFx1OTNhM1x1OTNhNVx1OTVkMlx1OTVkM1x1OTVkMVx1OTZiM1x1OTZkN1x1OTZkYVx1NWRjMlx1OTZkZlx1OTZkOFx1OTZkZFx1OTcyM1x1OTcyMlx1OTcyNVx1OTdhY1x1OTdhZVx1OTdhOFx1OTdhYlx1OTdhNFx1OTdhYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1OTdhMlx1OTdhNVx1OTdkN1x1OTdkOVx1OTdkNlx1OTdkOFx1OTdmYVx1OTg1MFx1OTg1MVx1OTg1Mlx1OThiOFx1OTk0MVx1OTkzY1x1OTkzYVx1OWEwZlx1OWEwYlx1OWEwOVx1OWEwZFx1OWEwNFx1OWExMVx1OWEwYVx1OWEwNVx1OWEwN1x1OWEwNlx1OWFjMFx1OWFk''@;'; put 'put ''Y1x1OWIwOFx1OWIwNFx1OWIwNVx1OWIyOVx1OWIzNVx1OWI0YVx1OWI0Y1x1OWI0Ylx1OWJjN1x1OWJjNlx1OWJjM1x1OWJiZlx1OWJjMVx1OWJiNVx1OWJiOFx1OWJkM1x1OWJiNlx1OWJjNFx1OWJiOVx1OWJiZFx1OWQ1Y1x1OWQ1M1x1OWQ0Zlx1OWQ0YVx1OWQ1Ylx1OWQ0Ylx1OWQ1OVx1''@;'; put 'put ''OWQ1Nlx1OWQ0Y1x1OWQ1N1x1OWQ1Mlx1OWQ1NFx1OWQ1Zlx1OWQ1OFx1OWQ1YVx1OWU4ZVx1OWU4Y1x1OWVkZlx1OWYwMVx1OWYwMFx1OWYxNlx1OWYyNVx1OWYyYlx1OWYyYVx1OWYyOVx1OWYyOFx1OWY0Y1x1OWY1NVx1NTEzNFx1NTEzNVx1NTI5Nlx1NTJmN1x1NTNiNFx1NTZhYlx1NTZh''@;'; put 'put ''ZFx1NTZhNlx1NTZhN1x1NTZhYVx1NTZhY1x1NThkYVx1NThkZFx1NThkYlx1NTkxMlx1NWIzZFx1NWIzZVx1NWIzZlx1NWRjM1x1NWU3MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDFd''@;'; put 'put ''W0VdXT02MTY5NitFLExbNjE2OTYrRV09QlsyNDFdW0VdKTtmb3IoQlsyNDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVmYmZcdTYxZmJcdTY1MDdcdTY1MTBcdTY1MGRcdTY1MDlcdTY1MGNcdTY1MGVcdTY1ODRcdTY1ZGVcdTY1''@;'; put 'put ''ZGRcdTY2ZGVcdTZhZTdcdTZhZTBcdTZhY2NcdTZhZDFcdTZhZDlcdTZhY2JcdTZhZGZcdTZhZGNcdTZhZDBcdTZhZWJcdTZhY2ZcdTZhY2RcdTZhZGVcdTZiNjBcdTZiYjBcdTZjMGNcdTcwMTlcdTcwMjdcdTcwMjBcdTcwMTZcdTcwMmJcdTcwMjFcdTcwMjJcdTcwMjNcdTcwMjlcdTcwMTdc''@;'; put 'put ''dTcwMjRcdTcwMWNcdTcwMmFcdTcyMGNcdTcyMGFcdTcyMDdcdTcyMDJcdTcyMDVcdTcyYTVcdTcyYTZcdTcyYTRcdTcyYTNcdTcyYTFcdTc0Y2JcdTc0YzVcdTc0YjdcdTc0YzNcdTc1MTZcdTc2NjBcdTc3YzlcdTc3Y2FcdTc3YzRcdTc3ZjFcdTc5MWRcdTc5MWJcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc5MjFcdTc5MWNcdTc5MTdcdTc5MWVcdTc5YjBcdTdhNjdcdTdhNjhcdTdjMzNcdTdjM2NcdTdjMzlcdTdjMmNcdTdjM2JcdTdjZWNcdTdjZWFcdTdlNzZcdTdlNzVcdTdlNzhcdTdlNzBcdTdlNzdcdTdlNmZcdTdlN2FcdTdlNzJcdTdlNzRcdTdl''@;'; put 'put ''NjhcdTdmNGJcdTdmNGFcdTdmODNcdTdmODZcdTdmYjdcdTdmZmRcdTdmZmVcdTgwNzhcdTgxZDdcdTgxZDVcdTgyNjRcdTgyNjFcdTgyNjNcdTg1ZWJcdTg1ZjFcdTg1ZWRcdTg1ZDlcdTg1ZTFcdTg1ZThcdTg1ZGFcdTg1ZDdcdTg1ZWNcdTg1ZjJcdTg1ZjhcdTg1ZDhcdTg1ZGZcdTg1ZTNc''@;'; put 'put ''dTg1ZGNcdTg1ZDFcdTg1ZjBcdTg1ZTZcdTg1ZWZcdTg1ZGVcdTg1ZTJcdTg4MDBcdTg3ZmFcdTg4MDNcdTg3ZjZcdTg3ZjdcdTg4MDlcdTg4MGNcdTg4MGJcdTg4MDZcdTg3ZmNcdTg4MDhcdTg3ZmZcdTg4MGFcdTg4MDJcdTg5NjJcdTg5NWFcdTg5NWJcdTg5NTdcdTg5NjFcdTg5NWNcdTg5''@;'; put 'put ''NThcdTg5NWRcdTg5NTlcdTg5ODhcdTg5YjdcdTg5YjZcdTg5ZjZcdThiNTBcdThiNDhcdThiNGFcdThiNDBcdThiNTNcdThiNTZcdThiNTRcdThiNGJcdThiNTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0Ml1bRV0uY2hhckNvZGVBdCgw''@;'; put 'put ''KSYmKG1lW0JbMjQyXVtFXV09NjE5NTIrRSxMWzYxOTUyK0VdPUJbMjQyXVtFXSk7Zm9yKEJbMjQzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4YjUxXHU4YjQyXHU4YjUyXHU4YjU3XHU4YzQzXHU4Yzc3XHU4Yzc2XHU4YzlhXHU4''@;'; put 'put ''ZDA2XHU4ZDA3XHU4ZDA5XHU4ZGFjXHU4ZGFhXHU4ZGFkXHU4ZGFiXHU4ZTZkXHU4ZTc4XHU4ZTczXHU4ZTZhXHU4ZTZmXHU4ZTdiXHU4ZWMyXHU4ZjUyXHU4ZjUxXHU4ZjRmXHU4ZjUwXHU4ZjUzXHU4ZmI0XHU5MTQwXHU5MTNmXHU5MWIwXHU5MWFkXHU5M2RlXHU5M2M3XHU5M2NmXHU5M2My''@;'; put 'put ''XHU5M2RhXHU5M2QwXHU5M2Y5XHU5M2VjXHU5M2NjXHU5M2Q5XHU5M2E5XHU5M2U2XHU5M2NhXHU5M2Q0XHU5M2VlXHU5M2UzXHU5M2Q1XHU5M2M0XHU5M2NlXHU5M2MwXHU5M2QyXHU5M2U3XHU5NTdkXHU5NWRhXHU5NWRiXHU5NmUxXHU5NzI5XHU5NzJiXHU5NzJjXHU5NzI4XHU5NzI2XHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5N2IzXHU5N2I3XHU5N2I2XHU5N2RkXHU5N2RlXHU5N2RmXHU5ODVjXHU5ODU5XHU5ODVkXHU5ODU3XHU5OGJmXHU5OGJkXHU5OGJiXHU5OGJlXHU5OTQ4XHU5OTQ3XHU5OTQzXHU5OWE2XHU5OWE3XHU5YTFhXHU5YTE1XHU5''@;'; put 'put ''YTI1XHU5YTFkXHU5YTI0XHU5YTFiXHU5YTIyXHU5YTIwXHU5YTI3XHU5YTIzXHU5YTFlXHU5YTFjXHU5YTE0XHU5YWMyXHU5YjBiXHU5YjBhXHU5YjBlXHU5YjBjXHU5YjM3XHU5YmVhXHU5YmViXHU5YmUwXHU5YmRlXHU5YmU0XHU5YmU2XHU5YmUyXHU5YmYwXHU5YmQ0XHU5YmQ3XHU5YmVj''@;'; put 'put ''XHU5YmRjXHU5YmQ5XHU5YmU1XHU5YmQ1XHU5YmUxXHU5YmRhXHU5ZDc3XHU5ZDgxXHU5ZDhhXHU5ZDg0XHU5ZDg4XHU5ZDcxXHU5ZDgwXHU5ZDc4XHU5ZDg2XHU5ZDhiXHU5ZDhjXHU5ZDdkXHU5ZDZiXHU5ZDc0XHU5ZDc1XHU5ZDcwXHU5ZDY5XHU5ZDg1XHU5ZDczXHU5ZDdiXHU5ZDgyXHU5''@;'; put 'put ''ZDZmXHU5ZDc5XHU5ZDdmXHU5ZDg3XHU5ZDY4XHU5ZTk0XHU5ZTkxXHU5ZWMwXHU5ZWZjXHU5ZjJkXHU5ZjQwXHU5ZjQxXHU5ZjRkXHU5ZjU2XHU5ZjU3XHU5ZjU4XHU1MzM3XHU1NmIyXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDNdW0Vd''@;'; put 'put ''LmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0M11bRV1dPTYyMjA4K0UsTFs2MjIwOCtFXT1CWzI0M11bRV0pO2ZvcihCWzI0NF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTZiNVx1NTZiM1x1NThlM1x1NWI0NVx1NWRjNlx1NWRjN1x1''@;'; put 'put ''NWVlZVx1NWVlZlx1NWZjMFx1NWZjMVx1NjFmOVx1NjUxN1x1NjUxNlx1NjUxNVx1NjUxM1x1NjVkZlx1NjZlOFx1NjZlM1x1NjZlNFx1NmFmM1x1NmFmMFx1NmFlYVx1NmFlOFx1NmFmOVx1NmFmMVx1NmFlZVx1NmFlZlx1NzAzY1x1NzAzNVx1NzAyZlx1NzAzN1x1NzAzNFx1NzAzMVx1NzA0''@;'; put 'put ''Mlx1NzAzOFx1NzAzZlx1NzAzYVx1NzAzOVx1NzA0MFx1NzAzYlx1NzAzM1x1NzA0MVx1NzIxM1x1NzIxNFx1NzJhOFx1NzM3ZFx1NzM3Y1x1NzRiYVx1NzZhYlx1NzZhYVx1NzZiZVx1NzZlZFx1NzdjY1x1NzdjZVx1NzdjZlx1NzdjZFx1NzdmMlx1NzkyNVx1NzkyM1x1NzkyN1x1NzkyOFx1''@;'; put 'put ''NzkyNFx1NzkyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzliMlx1N2E2ZVx1N2E2Y1x1N2E2ZFx1N2FmN1x1N2M0OVx1N2M0OFx1N2M0YVx1N2M0N1x1N2M0NVx1N2NlZVx1N2U3Ylx1N2U3ZVx1N2U4MVx1N2U4MFx1N2ZiYVx1N2ZmZlx1ODA3OVx1ODFkYlx1''@;'; put 'put ''ODFkOVx1ODIwYlx1ODI2OFx1ODI2OVx1ODYyMlx1ODVmZlx1ODYwMVx1ODVmZVx1ODYxYlx1ODYwMFx1ODVmNlx1ODYwNFx1ODYwOVx1ODYwNVx1ODYwY1x1ODVmZFx1ODgxOVx1ODgxMFx1ODgxMVx1ODgxN1x1ODgxM1x1ODgxNlx1ODk2M1x1ODk2Nlx1ODliOVx1ODlmN1x1OGI2MFx1OGI2''@;'; put 'put ''YVx1OGI1ZFx1OGI2OFx1OGI2M1x1OGI2NVx1OGI2N1x1OGI2ZFx1OGRhZVx1OGU4Nlx1OGU4OFx1OGU4NFx1OGY1OVx1OGY1Nlx1OGY1N1x1OGY1NVx1OGY1OFx1OGY1YVx1OTA4ZFx1OTE0M1x1OTE0MVx1OTFiN1x1OTFiNVx1OTFiMlx1OTFiM1x1OTQwYlx1OTQxM1x1OTNmYlx1OTQyMFx1''@;'; put 'put ''OTQwZlx1OTQxNFx1OTNmZVx1OTQxNVx1OTQxMFx1OTQyOFx1OTQxOVx1OTQwZFx1OTNmNVx1OTQwMFx1OTNmN1x1OTQwN1x1OTQwZVx1OTQxNlx1OTQxMlx1OTNmYVx1OTQwOVx1OTNmOFx1OTQwYVx1OTNmZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0NF0ubGVuZ3RoOysrRSk2NTUz''@;'; put 'put ''MyE9PUJbMjQ0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDRdW0VdXT02MjQ2NCtFLExbNjI0NjQrRV09QlsyNDRdW0VdKTtmb3IoQlsyNDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTkzZmNcdTk0MGNcdTkzZjZcdTk0MTFc''@;'; put 'put ''dTk0MDZcdTk1ZGVcdTk1ZTBcdTk1ZGZcdTk3MmVcdTk3MmZcdTk3YjlcdTk3YmJcdTk3ZmRcdTk3ZmVcdTk4NjBcdTk4NjJcdTk4NjNcdTk4NWZcdTk4YzFcdTk4YzJcdTk5NTBcdTk5NGVcdTk5NTlcdTk5NGNcdTk5NGJcdTk5NTNcdTlhMzJcdTlhMzRcdTlhMzFcdTlhMmNcdTlhMmFcdTlh''@;'; put 'put ''MzZcdTlhMjlcdTlhMmVcdTlhMzhcdTlhMmRcdTlhYzdcdTlhY2FcdTlhYzZcdTliMTBcdTliMTJcdTliMTFcdTljMGJcdTljMDhcdTliZjdcdTljMDVcdTljMTJcdTliZjhcdTljNDBcdTljMDdcdTljMGVcdTljMDZcdTljMTdcdTljMTRcdTljMDlcdTlkOWZcdTlkOTlcdTlkYTRcdTlkOWRc''@;'; put 'put ''dTlkOTJcdTlkOThcdTlkOTBcdTlkOWJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlkYTBcdTlkOTRcdTlkOWNcdTlkYWFcdTlkOTdcdTlkYTFcdTlkOWFcdTlkYTJcdTlkYThcdTlkOWVcdTlkYTNcdTlkYmZcdTlkYTlcdTlkOTZcdTlkYTZcdTlkYTdcdTllOTlc''@;'; put 'put ''dTllOWJcdTllOWFcdTllZTVcdTllZTRcdTllZTdcdTllZTZcdTlmMzBcdTlmMmVcdTlmNWJcdTlmNjBcdTlmNWVcdTlmNWRcdTlmNTlcdTlmOTFcdTUxM2FcdTUxMzlcdTUyOThcdTUyOTdcdTU2YzNcdTU2YmRcdTU2YmVcdTViNDhcdTViNDdcdTVkY2JcdTVkY2ZcdTVlZjFcdTYxZmRcdTY1''@;'; put 'put ''MWJcdTZiMDJcdTZhZmNcdTZiMDNcdTZhZjhcdTZiMDBcdTcwNDNcdTcwNDRcdTcwNGFcdTcwNDhcdTcwNDlcdTcwNDVcdTcwNDZcdTcyMWRcdTcyMWFcdTcyMTlcdTczN2VcdTc1MTdcdTc2NmFcdTc3ZDBcdTc5MmRcdTc5MzFcdTc5MmZcdTdjNTRcdTdjNTNcdTdjZjJcdTdlOGFcdTdlODdc''@;'; put 'put ''dTdlODhcdTdlOGJcdTdlODZcdTdlOGRcdTdmNGRcdTdmYmJcdTgwMzBcdTgxZGRcdTg2MThcdTg2MmFcdTg2MjZcdTg2MWZcdTg2MjNcdTg2MWNcdTg2MTlcdTg2MjdcdTg2MmVcdTg2MjFcdTg2MjBcdTg2MjlcdTg2MWVcdTg2MjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDVdLmxl''@;'; put 'put ''bmd0aDsrK0UpNjU1MzMhPT1CWzI0NV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ1XVtFXV09NjI3MjArRSxMWzYyNzIwK0VdPUJbMjQ1XVtFXSk7Zm9yKEJbMjQ2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4ODI5XHU4ODFk''@;'; put 'put ''XHU4ODFiXHU4ODIwXHU4ODI0XHU4ODFjXHU4ODJiXHU4ODRhXHU4OTZkXHU4OTY5XHU4OTZlXHU4OTZiXHU4OWZhXHU4Yjc5XHU4Yjc4XHU4YjQ1XHU4YjdhXHU4YjdiXHU4ZDEwXHU4ZDE0XHU4ZGFmXHU4ZThlXHU4ZThjXHU4ZjVlXHU4ZjViXHU4ZjVkXHU5MTQ2XHU5MTQ0XHU5MTQ1XHU5''@;'; put 'put ''MWI5XHU5NDNmXHU5NDNiXHU5NDM2XHU5NDI5XHU5NDNkXHU5NDNjXHU5NDMwXHU5NDM5XHU5NDJhXHU5NDM3XHU5NDJjXHU5NDQwXHU5NDMxXHU5NWU1XHU5NWU0XHU5NWUzXHU5NzM1XHU5NzNhXHU5N2JmXHU5N2UxXHU5ODY0XHU5OGM5XHU5OGM2XHU5OGMwXHU5OTU4XHU5OTU2XHU5YTM5''@;'; put 'put ''XHU5YTNkXHU5YTQ2XHU5YTQ0XHU5YTQyXHU5YTQxXHU5YTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5YTNmXHU5YWNkXHU5YjE1XHU5YjE3XHU5YjE4XHU5YjE2XHU5YjNhXHU5YjUyXHU5YzJiXHU5YzFkXHU5YzFjXHU5YzJjXHU5YzIzXHU5YzI4XHU5YzI5''@;'; put 'put ''XHU5YzI0XHU5YzIxXHU5ZGI3XHU5ZGI2XHU5ZGJjXHU5ZGMxXHU5ZGM3XHU5ZGNhXHU5ZGNmXHU5ZGJlXHU5ZGM1XHU5ZGMzXHU5ZGJiXHU5ZGI1XHU5ZGNlXHU5ZGI5XHU5ZGJhXHU5ZGFjXHU5ZGM4XHU5ZGIxXHU5ZGFkXHU5ZGNjXHU5ZGIzXHU5ZGNkXHU5ZGIyXHU5ZTdhXHU5ZTljXHU5''@;'; put 'put ''ZWViXHU5ZWVlXHU5ZWVkXHU5ZjFiXHU5ZjE4XHU5ZjFhXHU5ZjMxXHU5ZjRlXHU5ZjY1XHU5ZjY0XHU5ZjkyXHU0ZWI5XHU1NmM2XHU1NmM1XHU1NmNiXHU1OTcxXHU1YjRiXHU1YjRjXHU1ZGQ1XHU1ZGQxXHU1ZWYyXHU2NTIxXHU2NTIwXHU2NTI2XHU2NTIyXHU2YjBiXHU2YjA4XHU2YjA5''@;'; put 'put ''XHU2YzBkXHU3MDU1XHU3MDU2XHU3MDU3XHU3MDUyXHU3MjFlXHU3MjFmXHU3MmE5XHU3MzdmXHU3NGQ4XHU3NGQ1XHU3NGQ5XHU3NGQ3XHU3NjZkXHU3NmFkXHU3OTM1XHU3OWI0XHU3YTcwXHU3YTcxXHU3YzU3XHU3YzVjXHU3YzU5XHU3YzViXHU3YzVhXHVmZmZkIi5zcGxpdCgiIiksRT0w''@;'; put 'put ''O0UhPUJbMjQ2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Nl1bRV1dPTYyOTc2K0UsTFs2Mjk3NitFXT1CWzI0Nl1bRV0pO2ZvcihCWzI0N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1N2NmNFx1N2NmMVx1N2U5MVx1N2Y0Zlx1N2Y4N1x1ODFkZVx1ODI2Ylx1ODYzNFx1ODYzNVx1ODYzM1x1ODYyY1x1ODYzMlx1ODYzNlx1ODgyY1x1ODgyOFx1ODgyNlx1ODgyYVx1ODgyNVx1ODk3MVx1ODliZlx1ODliZVx1ODlmYlx1OGI3ZVx1OGI4NFx1OGI4Mlx1OGI4Nlx1OGI4NVx1''@;'; put 'put ''OGI3Zlx1OGQxNVx1OGU5NVx1OGU5NFx1OGU5YVx1OGU5Mlx1OGU5MFx1OGU5Nlx1OGU5N1x1OGY2MFx1OGY2Mlx1OTE0N1x1OTQ0Y1x1OTQ1MFx1OTQ0YVx1OTQ0Ylx1OTQ0Zlx1OTQ0N1x1OTQ0NVx1OTQ0OFx1OTQ0OVx1OTQ0Nlx1OTczZlx1OTdlM1x1OTg2YVx1OTg2OVx1OThjYlx1OTk1''@;'; put 'put ''NFx1OTk1Ylx1OWE0ZVx1OWE1M1x1OWE1NFx1OWE0Y1x1OWE0Zlx1OWE0OFx1OWE0YVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OWE0OVx1OWE1Mlx1OWE1MFx1OWFkMFx1OWIxOVx1OWIyYlx1OWIzYlx1OWI1Nlx1OWI1NVx1OWM0Nlx1OWM0OFx1OWMzZlx1OWM0''@;'; put 'put ''NFx1OWMzOVx1OWMzM1x1OWM0MVx1OWMzY1x1OWMzN1x1OWMzNFx1OWMzMlx1OWMzZFx1OWMzNlx1OWRkYlx1OWRkMlx1OWRkZVx1OWRkYVx1OWRjYlx1OWRkMFx1OWRkY1x1OWRkMVx1OWRkZlx1OWRlOVx1OWRkOVx1OWRkOFx1OWRkNlx1OWRmNVx1OWRkNVx1OWRkZFx1OWViNlx1OWVmMFx1''@;'; put 'put ''OWYzNVx1OWYzM1x1OWYzMlx1OWY0Mlx1OWY2Ylx1OWY5NVx1OWZhMlx1NTEzZFx1NTI5OVx1NThlOFx1NThlN1x1NTk3Mlx1NWI0ZFx1NWRkOFx1ODgyZlx1NWY0Zlx1NjIwMVx1NjIwM1x1NjIwNFx1NjUyOVx1NjUyNVx1NjU5Nlx1NjZlYlx1NmIxMVx1NmIxMlx1NmIwZlx1NmJjYVx1NzA1''@;'; put 'put ''Ylx1NzA1YVx1NzIyMlx1NzM4Mlx1NzM4MVx1NzM4M1x1NzY3MFx1NzdkNFx1N2M2N1x1N2M2Nlx1N2U5NVx1ODI2Y1x1ODYzYVx1ODY0MFx1ODYzOVx1ODYzY1x1ODYzMVx1ODYzYlx1ODYzZVx1ODgzMFx1ODgzMlx1ODgyZVx1ODgzM1x1ODk3Nlx1ODk3NFx1ODk3M1x1ODlmZVx1ZmZmZCIu''@;'; put 'put ''c3BsaXQoIiIpLEU9MDtFIT1CWzI0N10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDddW0VdXT02MzIzMitFLExbNjMyMzIrRV09QlsyNDddW0VdKTtmb3IoQlsyNDhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdThiOGNcdThiOGVcdThiOGJcdThiODhcdThjNDVcdThkMTlcdThlOThcdThmNjRcdThmNjNcdTkxYmNcdTk0NjJcdTk0NTVcdTk0NWRcdTk0NTdcdTk0NWVcdTk3YzRcdTk3YzVcdTk4MDBcdTlhNTZcdTlhNTlcdTliMWVcdTliMWZcdTliMjBcdTljNTJcdTljNThc''@;'; put 'put ''dTljNTBcdTljNGFcdTljNGRcdTljNGJcdTljNTVcdTljNTlcdTljNGNcdTljNGVcdTlkZmJcdTlkZjdcdTlkZWZcdTlkZTNcdTlkZWJcdTlkZjhcdTlkZTRcdTlkZjZcdTlkZTFcdTlkZWVcdTlkZTZcdTlkZjJcdTlkZjBcdTlkZTJcdTlkZWNcdTlkZjRcdTlkZjNcdTlkZThcdTlkZWRcdTll''@;'; put 'put ''YzJcdTllZDBcdTllZjJcdTllZjNcdTlmMDZcdTlmMWNcdTlmMzhcdTlmMzdcdTlmMzZcdTlmNDNcdTlmNGZcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTlmNzFcdTlmNzBcdTlmNmVcdTlmNmZcdTU2ZDNcdTU2Y2RcdTViNGVcdTVjNmRcdTY1MmRcdTY2ZWRcdTY2''@;'; put 'put ''ZWVcdTZiMTNcdTcwNWZcdTcwNjFcdTcwNWRcdTcwNjBcdTcyMjNcdTc0ZGJcdTc0ZTVcdTc3ZDVcdTc5MzhcdTc5YjdcdTc5YjZcdTdjNmFcdTdlOTdcdTdmODlcdTgyNmRcdTg2NDNcdTg4MzhcdTg4MzdcdTg4MzVcdTg4NGJcdThiOTRcdThiOTVcdThlOWVcdThlOWZcdThlYTBcdThlOWRc''@;'; put 'put ''dTkxYmVcdTkxYmRcdTkxYzJcdTk0NmJcdTk0NjhcdTk0NjlcdTk2ZTVcdTk3NDZcdTk3NDNcdTk3NDdcdTk3YzdcdTk3ZTVcdTlhNWVcdTlhZDVcdTliNTlcdTljNjNcdTljNjdcdTljNjZcdTljNjJcdTljNWVcdTljNjBcdTllMDJcdTlkZmVcdTllMDdcdTllMDNcdTllMDZcdTllMDVcdTll''@;'; put 'put ''MDBcdTllMDFcdTllMDlcdTlkZmZcdTlkZmRcdTllMDRcdTllYTBcdTlmMWVcdTlmNDZcdTlmNzRcdTlmNzVcdTlmNzZcdTU2ZDRcdTY1MmVcdTY1YjhcdTZiMThcdTZiMTlcdTZiMTdcdTZiMWFcdTcwNjJcdTcyMjZcdTcyYWFcdTc3ZDhcdTc3ZDlcdTc5MzlcdTdjNjlcdTdjNmJcdTdjZjZc''@;'; put 'put ''dTdlOWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ4XVtFXV09NjM0ODgrRSxMWzYzNDg4K0VdPUJbMjQ4XVtFXSk7Zm9yKEJbMjQ5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU3ZTk4XHU3ZTliXHU3ZTk5XHU4MWUwXHU4MWUxXHU4NjQ2XHU4NjQ3XHU4NjQ4XHU4OTc5XHU4OTdhXHU4OTdjXHU4OTdiXHU4OWZmXHU4Yjk4XHU4Yjk5XHU4ZWE1XHU4ZWE0XHU4ZWEzXHU5NDZlXHU5NDZkXHU5NDZmXHU5NDcxXHU5NDcz''@;'; put 'put ''XHU5NzQ5XHU5ODcyXHU5OTVmXHU5YzY4XHU5YzZlXHU5YzZkXHU5ZTBiXHU5ZTBkXHU5ZTEwXHU5ZTBmXHU5ZTEyXHU5ZTExXHU5ZWExXHU5ZWY1XHU5ZjA5XHU5ZjQ3XHU5Zjc4XHU5ZjdiXHU5ZjdhXHU5Zjc5XHU1NzFlXHU3MDY2XHU3YzZmXHU4ODNjXHU4ZGIyXHU4ZWE2XHU5MWMzXHU5''@;'; put 'put ''NDc0XHU5NDc4XHU5NDc2XHU5NDc1XHU5YTYwXHU5Yzc0XHU5YzczXHU5YzcxXHU5Yzc1XHU5ZTE0XHU5ZTEzXHU5ZWY2XHU5ZjBhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ZmE0XHU3MDY4XHU3MDY1XHU3Y2Y3XHU4NjZhXHU4ODNlXHU4ODNkXHU4ODNmXHU4''@;'; put 'put ''YjllXHU4YzljXHU4ZWE5XHU4ZWM5XHU5NzRiXHU5ODczXHU5ODc0XHU5OGNjXHU5OTYxXHU5OWFiXHU5YTY0XHU5YTY2XHU5YTY3XHU5YjI0XHU5ZTE1XHU5ZTE3XHU5ZjQ4XHU2MjA3XHU2YjFlXHU3MjI3XHU4NjRjXHU4ZWE4XHU5NDgyXHU5NDgwXHU5NDgxXHU5YTY5XHU5YTY4XHU5YjJl''@;'; put 'put ''XHU5ZTE5XHU3MjI5XHU4NjRiXHU4YjlmXHU5NDgzXHU5Yzc5XHU5ZWI3XHU3Njc1XHU5YTZiXHU5YzdhXHU5ZTFkXHU3MDY5XHU3MDZhXHU5ZWE0XHU5ZjdlXHU5ZjQ5XHU5Zjk4XHU3ODgxXHU5MmI5XHU4OGNmXHU1OGJiXHU2MDUyXHU3Y2E3XHU1YWZhXHUyNTU0XHUyNTY2XHUyNTU3XHUy''@;'; put 'put ''NTYwXHUyNTZjXHUyNTYzXHUyNTVhXHUyNTY5XHUyNTVkXHUyNTUyXHUyNTY0XHUyNTU1XHUyNTVlXHUyNTZhXHUyNTYxXHUyNTU4XHUyNTY3XHUyNTViXHUyNTUzXHUyNTY1XHUyNTU2XHUyNTVmXHUyNTZiXHUyNTYyXHUyNTU5XHUyNTY4XHUyNTVjXHUyNTUxXHUyNTUwXHUyNTZkXHUyNTZl''@;'; put 'put ''XHUyNTcwXHUyNTZmXHUyNTkzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0OV1bRV1dPTYzNzQ0K0UsTFs2Mzc0NCtFXT1CWzI0OV1bRV0pO3JldHVybntlbmM6bWUsZGVjOkx9fSgpLEpl''@;'; put 'put ''WzEyNTBdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0''@;'; put 'put ''NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1YVx1MDE2NFx1''@;'; put 'put ''MDE3ZFx1MDE3OVx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDE2MVx1MjAzYVx1MDE1Ylx1MDE2NVx1MDE3ZVx1MDE3YVx4YTBcdTAyYzdcdTAyZDhcdTAxNDFceGE0XHUwMTA0XHhhNlx4YTdceGE4XHhhOVx1MDE1ZVx4YWJc''@;'; put 'put ''eGFjXHhhZFx4YWVcdTAxN2JceGIwXHhiMVx1MDJkYlx1MDE0Mlx4YjRceGI1XHhiNlx4YjdceGI4XHUwMTA1XHUwMTVmXHhiYlx1MDEzZFx1MDJkZFx1MDEzZVx1MDE3Y1x1MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4''@;'; put 'put ''Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQzXHUwMTQ3XHhkM1x4ZDRcdTAxNTBceGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBceGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVceGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhl''@;'; put 'put ''ZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0OFx4ZjNceGY0XHUwMTUxXHhmNlx4ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4ZmRcdTAxNjNcdTAyZDkiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUp''@;'; put 'put ''LG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTFdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlc''@;'; put 'put ''eDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDQwMlx1MDQwM1x1MjAxYVx1MDQ1M1x1MjAxZVx1MjAyNlx1MjAy''@;'; put 'put ''MFx1MjAyMVx1MjBhY1x1MjAzMFx1MDQwOVx1MjAzOVx1MDQwYVx1MDQwY1x1MDQwYlx1MDQwZlx1MDQ1Mlx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDQ1OVx1MjAzYVx1MDQ1YVx1MDQ1Y1x1MDQ1Ylx1MDQ1Zlx4YTBcdTA0MGVcdTA0''@;'; put 'put ''NWVcdTA0MDhceGE0XHUwNDkwXHhhNlx4YTdcdTA0MDFceGE5XHUwNDA0XHhhYlx4YWNceGFkXHhhZVx1MDQwN1x4YjBceGIxXHUwNDA2XHUwNDU2XHUwNDkxXHhiNVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNDU0XHhiYlx1MDQ1OFx1MDQwNVx1MDQ1NVx1MDQ1N1x1MDQxMFx1MDQxMVx1MDQx''@;'; put 'put ''Mlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1''@;'; put 'put ''MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0''@;'; put 'put ''OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0ZiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1Ml09''@;'; put 'put ''ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7''@;'; put 'put ''PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHVmZmZkXHUwMTdkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHVmZmZkXHUwMTdlXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4''@;'; put 'put ''YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhk''@;'; put 'put ''OVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIixtZT1bXSxCPXt9''@;'; put 'put ''LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxMjUzXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZc''@;'; put 'put ''eDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWpr''@;'; put 'put ''bG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIw''@;'; put 'put ''MTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwMzg1XHUwMzg2XHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1ZmZmZFx4YWJceGFjXHhhZFx4YWVcdTIwMTVceGIwXHhiMVx4YjJceGIzXHUwMzg0XHhiNVx4YjZceGI3XHUwMzg4XHUw''@;'; put 'put ''Mzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRcdTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAz''@;'; put 'put ''YTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAzYWZcdTAzYjBcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBc''@;'; put 'put ''dTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2FcdTAzY2JcdTAzY2NcdTAzY2RcdTAzY2VcdWZmZmQiLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5jaGFyQXQoRSldPUUp''@;'; put 'put ''LG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzEyNTRdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlc''@;'; put 'put ''eDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAy''@;'; put 'put ''MFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1ZmZmZFx1MDE3OFx4YTBceGExXHhhMlx4''@;'; put 'put ''YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhj''@;'; put 'put ''Y1x4Y2RceGNlXHhjZlx1MDExZVx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDEzMFx1MDE1ZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTFmXHhmMVx4ZjJceGYz''@;'; put 'put ''XHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMTMxXHUwMTVmXHhmZiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzpt''@;'; put 'put ''ZX19KCksSmVbMTI1NV09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKiss''@;'; put 'put ''LS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHVmZmZkXHUyMDNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhMFx4YTFceGEyXHhhM1x1MjBhYVx4YTVceGE2XHhhN1x4YThceGE5XHhkN1x4YWJc''@;'; put 'put ''eGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4ZjdceGJiXHhiY1x4YmRceGJlXHhiZlx1MDViMFx1MDViMVx1MDViMlx1MDViM1x1MDViNFx1MDViNVx1MDViNlx1MDViN1x1MDViOFx1MDViOVx1ZmZmZFx1MDViYlx1MDViY1x1MDViZFx1''@;'; put 'put ''MDViZVx1MDViZlx1MDVjMFx1MDVjMVx1MDVjMlx1MDVjM1x1MDVmMFx1MDVmMVx1MDVmMlx1MDVmM1x1MDVmNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVk''@;'; put 'put ''OVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVlOVx1MDVlYVx1ZmZmZFx1ZmZmZFx1MjAwZVx1MjAwZlx1ZmZmZCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytF''@;'; put 'put ''KTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1Nl09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVc''@;'; put 'put ''eDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5c''@;'; put 'put ''eDdmXHUyMGFjXHUwNjdlXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwNjc5XHUyMDM5XHUwMTUyXHUwNjg2XHUwNjk4XHUwNjg4XHUwNmFmXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNmE5XHUyMTIyXHUwNjkx''@;'; put 'put ''XHUyMDNhXHUwMTUzXHUyMDBjXHUyMDBkXHUwNmJhXHhhMFx1MDYwY1x4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHUwNmJlXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHUwNjFiXHhiYlx4YmNceGJkXHhiZVx1MDYx''@;'; put 'put ''Zlx1MDZjMVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx4ZDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2''@;'; put 'put ''M2FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNceGUwXHUwNjQ0XHhlMlx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx4ZTdceGU4XHhlOVx4ZWFceGViXHUwNjQ5XHUwNjRhXHhlZVx4ZWZcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVceGY0XHUwNjRmXHUwNjUwXHhmN1x1MDY1MVx4ZjlcdTA2NTJc''@;'; put 'put ''eGZiXHhmY1x1MjAwZVx1MjAwZlx1MDZkMiIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTI1N109ZnVuY3Rpb24oKXtm''@;'; put 'put ''b3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZH''@;'; put 'put ''SElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHUyMGFjXHVmZmZkXHUyMDFhXHVmZmZkXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHVmZmZkXHUyMDMwXHVmZmZkXHUyMDM5XHVmZmZkXHhhOFx1MDJjN1x4YjhcdWZmZmRcdTIwMThc''@;'; put 'put ''dTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRceGFmXHUwMmRiXHVmZmZkXHhhMFx1ZmZmZFx4YTJceGEzXHhhNFx1ZmZmZFx4YTZceGE3XHhkOFx4YTlcdTAxNTZceGFiXHhhY1x4YWRceGFlXHhjNlx4YjBceGIxXHhiMlx4''@;'; put 'put ''YjNceGI0XHhiNVx4YjZceGI3XHhmOFx4YjlcdTAxNTdceGJiXHhiY1x4YmRceGJlXHhlNlx1MDEwNFx1MDEyZVx1MDEwMFx1MDEwNlx4YzRceGM1XHUwMTE4XHUwMTEyXHUwMTBjXHhjOVx1MDE3OVx1MDExNlx1MDEyMlx1MDEzNlx1MDEyYVx1MDEzYlx1MDE2MFx1MDE0M1x1MDE0NVx4ZDNc''@;'; put 'put ''dTAxNGNceGQ1XHhkNlx4ZDdcdTAxNzJcdTAxNDFcdTAxNWFcdTAxNmFceGRjXHUwMTdiXHUwMTdkXHhkZlx1MDEwNVx1MDEyZlx1MDEwMVx1MDEwN1x4ZTRceGU1XHUwMTE5XHUwMTEzXHUwMTBkXHhlOVx1MDE3YVx1MDExN1x1MDEyM1x1MDEzN1x1MDEyYlx1MDEzY1x1MDE2MVx1MDE0NFx1''@;'; put 'put ''MDE0Nlx4ZjNcdTAxNGRceGY1XHhmNlx4ZjdcdTAxNzNcdTAxNDJcdTAxNWJcdTAxNmJceGZjXHUwMTdjXHUwMTdlXHUwMmQ5IixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChF''@;'; put 'put ''KTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxMjU4XT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4''@;'; put 'put ''MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdTAyYzZcdTIw''@;'; put 'put ''MzBcdWZmZmRcdTIwMzlcdTAxNTJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdWZmZmRcdTIwM2FcdTAxNTNcdWZmZmRcdWZmZmRcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhh''@;'; put 'put ''N1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx1MDEwMlx4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHUwMzAwXHhjZFx4Y2VceGNm''@;'; put 'put ''XHUwMTEwXHhkMVx1MDMwOVx4ZDNceGQ0XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDExMVx4ZjFcdTAzMjNceGYzXHhm''@;'; put 'put ''NFx1MDFhMVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZmIixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1l''@;'; put 'put ''fX0oKSxKZVsxZTRdPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0u''@;'; put 'put ''LzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVj''@;'; put 'put ''XHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJceGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUy''@;'; put 'put ''MjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZm''@;'; put 'put ''XHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx1ZmIwMVx1ZmIwMlx1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwMmQ4XHUw''@;'; put 'put ''MmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTAwMDZdPWZ1bmN0''@;'; put 'put ''aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9A''@;'; put 'put ''QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRceGI5XHhiMlx4YzlceGIzXHhkNlx4ZGNcdTAzODVceGUwXHhlMlx4ZTRcdTAzODRceGE4XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGEzXHUyMTIyXHhlZVx4ZWZcdTIw''@;'; put 'put ''MjJceGJkXHUyMDMwXHhmNFx4ZjZceGE2XHhhZFx4ZjlceGZiXHhmY1x1MjAyMFx1MDM5M1x1MDM5NFx1MDM5OFx1MDM5Ylx1MDM5ZVx1MDNhMFx4ZGZceGFlXHhhOVx1MDNhM1x1MDNhYVx4YTdcdTIyNjBceGIwXHUwMzg3XHUwMzkxXHhiMVx1MjI2NFx1MjI2NVx4YTVcdTAzOTJcdTAzOTVc''@;'; put 'put ''dTAzOTZcdTAzOTdcdTAzOTlcdTAzOWFcdTAzOWNcdTAzYTZcdTAzYWJcdTAzYThcdTAzYTlcdTAzYWNcdTAzOWRceGFjXHUwMzlmXHUwM2ExXHUyMjQ4XHUwM2E0XHhhYlx4YmJcdTIwMjZceGEwXHUwM2E1XHUwM2E3XHUwMzg2XHUwMzg4XHUwMTUzXHUyMDEzXHUyMDE1XHUyMDFjXHUyMDFk''@;'; put 'put ''XHUyMDE4XHUyMDE5XHhmN1x1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDNhZFx1MDNhZVx1MDNhZlx1MDNjY1x1MDM4Zlx1MDNjZFx1MDNiMVx1MDNiMlx1MDNjOFx1MDNiNFx1MDNiNVx1MDNjNlx1MDNiM1x1MDNiN1x1MDNiOVx1MDNiZVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNi''@;'; put 'put ''Zlx1MDNjMFx1MDNjZVx1MDNjMVx1MDNjM1x1MDNjNFx1MDNiOFx1MDNjOVx1MDNjMlx1MDNjN1x1MDNjNVx1MDNiNlx1MDNjYVx1MDNjYlx1MDM5MFx1MDNiMFx1ZmZmZCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJB''@;'; put 'put ''dChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksSmVbMTAwMDddPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3''@;'; put 'put ''XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1''@;'; put 'put ''MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MjAy''@;'; put 'put ''MFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MjIwMlx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1''@;'; put 'put ''MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUy''@;'; put 'put ''MTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3''@;'; put 'put ''XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHhhNCIsbWU9W10sQj17fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCks''@;'; put 'put ''SmVbMTAwMDhdPWZ1bmN0aW9uKCl7dmFyIEUsTD1bXSxtZT17fSxCPVtdO2ZvcihCWzBdPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFkXHgxZVx4''@;'; put 'put ''MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4ODBcdWY4ZDhcdWY4ZDlcdWY4ZGFcdWY4ZGJcdWY4ZGNcdWY4ZGRcdWY4ZGVcdWY4ZGZcdWY4ZTBcdWY4''@;'; put 'put ''ZTFcdWY4ZTJcdWY4ZTNcdWY4ZTRcdWY4ZTVcdWY4ZTZcdWY4ZTdcdWY4ZThcdWY4ZTlcdWY4ZWFcdWY4ZWJcdWY4ZWNcdWY4ZWRcdWY4ZWVcdWY4ZWZcdWY4ZjBcdWY4ZjFcdWY4ZjJcdWY4ZjNcdWY4ZjRcdWY4ZjVcdWY4ZjZcdWY4ZjdcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWY4''@;'; put 'put ''ZjhcdWY4ZjlcdWY4ZmFcdWY4ZmJcdWY4ZmNcdWY4ZmRcdWY4ZmVcdWY4ZmYiLnNwbGl0KCIiKSxFPTA7RSE9QlswXS5sZW5ndGg7KytFKTY1NTMzIT09QlswXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlswXVtFXV09MCtFLExbMCtFXT1CWzBdW0VdKTtmb3IoQlsxNjFdPSJcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTMwMDBcdTMwMDFcdTMwMDJcdTMwZmJcdTAyYzlcdTAy''@;'; put 'put ''YzdceGE4XHUzMDAzXHUzMDA1XHUyMDE1XHVmZjVlXHVmZmZkXHUyMDI2XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDE0XHUzMDE1XHUzMDA4XHUzMDA5XHUzMDBhXHUzMDBiXHUzMDBjXHUzMDBkXHUzMDBlXHUzMDBmXHUzMDE2XHUzMDE3XHUzMDEwXHUzMDExXHhiMVx4ZDdceGY3XHUy''@;'; put 'put ''MjM2XHUyMjI3XHUyMjI4XHUyMjExXHUyMjBmXHUyMjJhXHUyMjI5XHUyMjA4XHUyMjM3XHUyMjFhXHUyMmE1XHUyMjI1XHUyMjIwXHUyMzEyXHUyMjk5XHUyMjJiXHUyMjJlXHUyMjYxXHUyMjRjXHUyMjQ4XHUyMjNkXHUyMjFkXHUyMjYwXHUyMjZlXHUyMjZmXHUyMjY0XHUyMjY1XHUyMjFl''@;'; put 'put ''XHUyMjM1XHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmYwNFx4YTRcdWZmZTBcdWZmZTFcdTIwMzBceGE3XHUyMTE2XHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUyNWEwXHUyNWIzXHUyNWIyXHUyMDNiXHUyMTkyXHUy''@;'; put 'put ''MTkwXHUyMTkxXHUyMTkzXHUzMDEzXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTYxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2MV1bRV1dPTQxMjE2K0UsTFs0MTIxNitFXT1CWzE2MV1bRV0pO2ZvcihCWzE2Ml09Ilx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjQ4OFx1MjQ4OVx1MjQ4YVx1MjQ4Ylx1MjQ4Y1x1MjQ4ZFx1MjQ4ZVx1MjQ4Zlx1MjQ5MFx1MjQ5MVx1MjQ5Mlx1MjQ5M1x1MjQ5NFx1MjQ5NVx1MjQ5Nlx1MjQ5N1x1MjQ5OFx1''@;'; put 'put ''MjQ5OVx1MjQ5YVx1MjQ5Ylx1MjQ3NFx1MjQ3NVx1MjQ3Nlx1MjQ3N1x1MjQ3OFx1MjQ3OVx1MjQ3YVx1MjQ3Ylx1MjQ3Y1x1MjQ3ZFx1MjQ3ZVx1MjQ3Zlx1MjQ4MFx1MjQ4MVx1MjQ4Mlx1MjQ4M1x1MjQ4NFx1MjQ4NVx1MjQ4Nlx1MjQ4N1x1MjQ2MFx1MjQ2MVx1MjQ2Mlx1MjQ2M1x1MjQ2''@;'; put 'put ''NFx1MjQ2NVx1MjQ2Nlx1MjQ2N1x1MjQ2OFx1MjQ2OVx1ZmZmZFx1ZmZmZFx1MzIyMFx1MzIyMVx1MzIyMlx1MzIyM1x1MzIyNFx1MzIyNVx1MzIyNlx1MzIyN1x1MzIyOFx1MzIyOVx1ZmZmZFx1ZmZmZFx1MjE2MFx1MjE2MVx1MjE2Mlx1MjE2M1x1MjE2NFx1MjE2NVx1MjE2Nlx1MjE2N1x1''@;'; put 'put ''MjE2OFx1MjE2OVx1MjE2YVx1MjE2Ylx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTYyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjJdW0VdXT00MTQ3MitFLExbNDE0NzIrRV09QlsxNjJdW0VdKTtmb3IoQlsxNjNd''@;'; put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmMDFcdWZmMDJcdWZmMDNcdWZm''@;'; put 'put ''ZTVcdWZmMDVcdWZmMDZcdWZmMDdcdWZmMDhcdWZmMDlcdWZmMGFcdWZmMGJcdWZmMGNcdWZmMGRcdWZmMGVcdWZmMGZcdWZmMTBcdWZmMTFcdWZmMTJcdWZmMTNcdWZmMTRcdWZmMTVcdWZmMTZcdWZmMTdcdWZmMThcdWZmMTlcdWZmMWFcdWZmMWJcdWZmMWNcdWZmMWRcdWZmMWVcdWZmMWZc''@;'; put 'put ''dWZmMjBcdWZmMjFcdWZmMjJcdWZmMjNcdWZmMjRcdWZmMjVcdWZmMjZcdWZmMjdcdWZmMjhcdWZmMjlcdWZmMmFcdWZmMmJcdWZmMmNcdWZmMmRcdWZmMmVcdWZmMmZcdWZmMzBcdWZmMzFcdWZmMzJcdWZmMzNcdWZmMzRcdWZmMzVcdWZmMzZcdWZmMzdcdWZmMzhcdWZmMzlcdWZmM2FcdWZm''@;'; put 'put ''M2JcdWZmM2NcdWZmM2RcdWZmM2VcdWZmM2ZcdWZmNDBcdWZmNDFcdWZmNDJcdWZmNDNcdWZmNDRcdWZmNDVcdWZmNDZcdWZmNDdcdWZmNDhcdWZmNDlcdWZmNGFcdWZmNGJcdWZmNGNcdWZmNGRcdWZmNGVcdWZmNGZcdWZmNTBcdWZmNTFcdWZmNTJcdWZmNTNcdWZmNTRcdWZmNTVcdWZmNTZc''@;'; put 'put ''dWZmNTdcdWZmNThcdWZmNTlcdWZmNWFcdWZmNWJcdWZmNWNcdWZmNWRcdWZmZTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTYzXVtFXV09NDE3MjgrRSxMWzQxNzI4K0VdPUJbMTYzXVtF''@;'; put 'put ''XSk7Zm9yKEJbMTY0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUzMDQxXHUz''@;'; put 'put ''MDQyXHUzMDQzXHUzMDQ0XHUzMDQ1XHUzMDQ2XHUzMDQ3XHUzMDQ4XHUzMDQ5XHUzMDRhXHUzMDRiXHUzMDRjXHUzMDRkXHUzMDRlXHUzMDRmXHUzMDUwXHUzMDUxXHUzMDUyXHUzMDUzXHUzMDU0XHUzMDU1XHUzMDU2XHUzMDU3XHUzMDU4XHUzMDU5XHUzMDVhXHUzMDViXHUzMDVjXHUzMDVk''@;'; put 'put ''XHUzMDVlXHUzMDVmXHUzMDYwXHUzMDYxXHUzMDYyXHUzMDYzXHUzMDY0XHUzMDY1XHUzMDY2XHUzMDY3XHUzMDY4XHUzMDY5XHUzMDZhXHUzMDZiXHUzMDZjXHUzMDZkXHUzMDZlXHUzMDZmXHUzMDcwXHUzMDcxXHUzMDcyXHUzMDczXHUzMDc0XHUzMDc1XHUzMDc2XHUzMDc3XHUzMDc4XHUz''@;'; put 'put ''MDc5XHUzMDdhXHUzMDdiXHUzMDdjXHUzMDdkXHUzMDdlXHUzMDdmXHUzMDgwXHUzMDgxXHUzMDgyXHUzMDgzXHUzMDg0XHUzMDg1XHUzMDg2XHUzMDg3XHUzMDg4XHUzMDg5XHUzMDhhXHUzMDhiXHUzMDhjXHUzMDhkXHUzMDhlXHUzMDhmXHUzMDkwXHUzMDkxXHUzMDkyXHUzMDkzXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE2NF1bRV1dPTQxOTg0K0UsTFs0MTk4''@;'; put 'put ''NCtFXT1CWzE2NF1bRV0pO2ZvcihCWzE2NV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1MzBhMVx1MzBhMlx1MzBhM1x1MzBhNFx1MzBhNVx1MzBhNlx1MzBhN1x1MzBhOFx1MzBhOVx1MzBhYVx1MzBhYlx1MzBhY1x1MzBhZFx1MzBhZVx1MzBhZlx1MzBiMFx1MzBiMVx1MzBiMlx1MzBiM1x1MzBiNFx1MzBiNVx1MzBiNlx1MzBiN1x1MzBiOFx1MzBiOVx1MzBiYVx1MzBi''@;'; put 'put ''Ylx1MzBiY1x1MzBiZFx1MzBiZVx1MzBiZlx1MzBjMFx1MzBjMVx1MzBjMlx1MzBjM1x1MzBjNFx1MzBjNVx1MzBjNlx1MzBjN1x1MzBjOFx1MzBjOVx1MzBjYVx1MzBjYlx1MzBjY1x1MzBjZFx1MzBjZVx1MzBjZlx1MzBkMFx1MzBkMVx1MzBkMlx1MzBkM1x1MzBkNFx1MzBkNVx1MzBkNlx1''@;'; put 'put ''MzBkN1x1MzBkOFx1MzBkOVx1MzBkYVx1MzBkYlx1MzBkY1x1MzBkZFx1MzBkZVx1MzBkZlx1MzBlMFx1MzBlMVx1MzBlMlx1MzBlM1x1MzBlNFx1MzBlNVx1MzBlNlx1MzBlN1x1MzBlOFx1MzBlOVx1MzBlYVx1MzBlYlx1MzBlY1x1MzBlZFx1MzBlZVx1MzBlZlx1MzBmMFx1MzBmMVx1MzBm''@;'; put 'put ''Mlx1MzBmM1x1MzBmNFx1MzBmNVx1MzBmNlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNjVdW0VdXT00''@;'; put 'put ''MjI0MCtFLExbNDIyNDArRV09QlsxNjVdW0VdKTtmb3IoQlsxNjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJcdTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAzYjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzNcdTAzYzRcdTAzYzVc''@;'; put 'put ''dTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1l''@;'; put 'put ''W0JbMTY2XVtFXV09NDI0OTYrRSxMWzQyNDk2K0VdPUJbMTY2XVtFXSk7Zm9yKEJbMTY3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDAxXHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUw''@;'; put 'put ''NDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNDMwXHUwNDMx''@;'; put 'put ''XHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDUxXHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUw''@;'; put 'put ''NDRjXHUwNDRkXHUwNDRlXHUwNDRmXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTY3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNjddW0VdLmNoYXJD''@;'; put 'put ''b2RlQXQoMCkmJihtZVtCWzE2N11bRV1dPTQyNzUyK0UsTFs0Mjc1MitFXT1CWzE2N11bRV0pO2ZvcihCWzE2OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGFcdTAx''@;'; put 'put ''ZGNceGZjXHhlYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MzEwNVx1MzEwNlx1MzEwN1x1MzEwOFx1MzEwOVx1MzEwYVx1MzEwYlx1MzEwY1x1MzEwZFx1MzEwZVx1MzEwZlx1MzExMFx1MzExMVx1MzExMlx1MzExM1x1MzEx''@;'; put 'put ''NFx1MzExNVx1MzExNlx1MzExN1x1MzExOFx1MzExOVx1MzExYVx1MzExYlx1MzExY1x1MzExZFx1MzExZVx1MzExZlx1MzEyMFx1MzEyMVx1MzEyMlx1MzEyM1x1MzEyNFx1MzEyNVx1MzEyNlx1MzEyN1x1MzEyOFx1MzEyOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE2OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTY4XVtFXS5jaGFyQ29kZUF0KDApJiYo''@;'; put 'put ''bWVbQlsxNjhdW0VdXT00MzAwOCtFLExbNDMwMDgrRV09QlsxNjhdW0VdKTtmb3IoQlsxNjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTI1MDBcdTI1MDFcdTI1MDJcdTI1MDNcdTI1MDRcdTI1MDVcdTI1MDZcdTI1MDdcdTI1MDhcdTI1MDlcdTI1MGFcdTI1MGJcdTI1MGNcdTI1MGRcdTI1MGVcdTI1MGZcdTI1MTBcdTI1MTFcdTI1MTJc''@;'; put 'put ''dTI1MTNcdTI1MTRcdTI1MTVcdTI1MTZcdTI1MTdcdTI1MThcdTI1MTlcdTI1MWFcdTI1MWJcdTI1MWNcdTI1MWRcdTI1MWVcdTI1MWZcdTI1MjBcdTI1MjFcdTI1MjJcdTI1MjNcdTI1MjRcdTI1MjVcdTI1MjZcdTI1MjdcdTI1MjhcdTI1MjlcdTI1MmFcdTI1MmJcdTI1MmNcdTI1MmRcdTI1''@;'; put 'put ''MmVcdTI1MmZcdTI1MzBcdTI1MzFcdTI1MzJcdTI1MzNcdTI1MzRcdTI1MzVcdTI1MzZcdTI1MzdcdTI1MzhcdTI1MzlcdTI1M2FcdTI1M2JcdTI1M2NcdTI1M2RcdTI1M2VcdTI1M2ZcdTI1NDBcdTI1NDFcdTI1NDJcdTI1NDNcdTI1NDRcdTI1NDVcdTI1NDZcdTI1NDdcdTI1NDhcdTI1NDlc''@;'; put 'put ''dTI1NGFcdTI1NGJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxNjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE2OV1bRV0uY2hh''@;'; put 'put ''ckNvZGVBdCgwKSYmKG1lW0JbMTY5XVtFXV09NDMyNjQrRSxMWzQzMjY0K0VdPUJbMTY5XVtFXSk7Zm9yKEJbMTc2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NTRhXHU5NjNmXHU1N2MzXHU2MzI4XHU1NGNlXHU1NTA5XHU1NGMwXHU3NjkxXHU3NjRjXHU4NTNjXHU3N2VlXHU4MjdlXHU3ODhkXHU3MjMxXHU5Njk4XHU5NzhkXHU2YzI4XHU1Yjg5XHU0ZmZhXHU2MzA5''@;'; put 'put ''XHU2Njk3XHU1Y2I4XHU4MGZhXHU2ODQ4XHU4MGFlXHU2NjAyXHU3NmNlXHU1MWY5XHU2NTU2XHU3MWFjXHU3ZmYxXHU4ODg0XHU1MGIyXHU1OTY1XHU2MWNhXHU2ZmIzXHU4MmFkXHU2MzRjXHU2MjUyXHU1M2VkXHU1NDI3XHU3YjA2XHU1MTZiXHU3NWE0XHU1ZGY0XHU2MmQ0XHU4ZGNiXHU5''@;'; put 'put ''Nzc2XHU2MjhhXHU4MDE5XHU1NzVkXHU5NzM4XHU3ZjYyXHU3MjM4XHU3NjdkXHU2N2NmXHU3NjdlXHU2NDQ2XHU0ZjcwXHU4ZDI1XHU2MmRjXHU3YTE3XHU2NTkxXHU3M2VkXHU2NDJjXHU2MjczXHU4MjJjXHU5ODgxXHU2NzdmXHU3MjQ4XHU2MjZlXHU2MmNjXHU0ZjM0XHU3NGUzXHU1MzRh''@;'; put 'put ''XHU1MjllXHU3ZWNhXHU5MGE2XHU1ZTJlXHU2ODg2XHU2OTljXHU4MTgwXHU3ZWQxXHU2OGQyXHU3OGM1XHU4NjhjXHU5NTUxXHU1MDhkXHU4YzI0XHU4MmRlXHU4MGRlXHU1MzA1XHU4OTEyXHU1MjY1XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTc2XS5sZW5ndGg7KytFKTY1NTMzIT09''@;'; put 'put ''QlsxNzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3Nl1bRV1dPTQ1MDU2K0UsTFs0NTA1NitFXT1CWzE3Nl1bRV0pO2ZvcihCWzE3N109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJhNVx1NjZiNFx1OGM3OVx1OWM4ZFx1NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1NTM1MVx1NTMxN1x1OGY4''@;'; put 'put ''OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAwZFx1NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1OGU2Nlx1OGZmOFx1OTAzY1x1OWYzYlx1NmJkNFx1OTExOVx1N2IxNFx1NWY3Y1x1NzhhN1x1ODRkNlx1''@;'; put 'put ''ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1NWUwMVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYwYVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZiOVx1N2YxNlx1OGQyY1x1NjI0MVx1NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1OGZhOVx1OGZhYlx1OTA0''@;'; put 'put ''ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2OFx1OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1NGUxOVx1NzljOVx1OTk3Y1x1NzBiM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE3N10ubGVuZ3Ro''@;'; put 'put ''OysrRSk2NTUzMyE9PUJbMTc3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxNzddW0VdXT00NTMxMitFLExbNDUzMTIrRV09QlsxNzddW0VdKTtmb3IoQlsxNzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1YzVcdTVlNzZcdTczYmJcdTgzZTBcdTY0YWRcdTYyZThcdTk0YjVcdTZjZTJcdTUzNWFcdTUyYzNcdTY0MGZcdTk0YzJcdTdiOTRcdTRmMmZcdTVlMWJcdTgy''@;'; put 'put ''MzZcdTgxMTZcdTgxOGFcdTZlMjRcdTZjY2FcdTlhNzNcdTYzNTVcdTUzNWNcdTU0ZmFcdTg4NjVcdTU3ZTBcdTRlMGRcdTVlMDNcdTZiNjVcdTdjM2ZcdTkwZThcdTYwMTZcdTY0ZTZcdTczMWNcdTg4YzFcdTY3NTBcdTYyNGRcdThkMjJcdTc3NmNcdThlMjlcdTkxYzdcdTVmNjlcdTgzZGNc''@;'; put 'put ''dTg1MjFcdTk5MTBcdTUzYzJcdTg2OTVcdTZiOGJcdTYwZWRcdTYwZThcdTcwN2ZcdTgyY2RcdTgyMzFcdTRlZDNcdTZjYTdcdTg1Y2ZcdTY0Y2RcdTdjZDlcdTY5ZmRcdTY2ZjlcdTgzNDlcdTUzOTVcdTdiNTZcdTRmYTdcdTUxOGNcdTZkNGJcdTVjNDJcdThlNmRcdTYzZDJcdTUzYzlcdTgz''@;'; put 'put ''MmNcdTgzMzZcdTY3ZTVcdTc4YjRcdTY0M2RcdTViZGZcdTVjOTRcdTVkZWVcdThiZTdcdTYyYzZcdTY3ZjRcdThjN2FcdTY0MDBcdTYzYmFcdTg3NDlcdTk5OGJcdThjMTdcdTdmMjBcdTk0ZjJcdTRlYTdcdTk2MTBcdTk4YTRcdTY2MGNcdTczMTZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9''@;'; put 'put ''QlsxNzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE3OF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTc4XVtFXV09NDU1NjgrRSxMWzQ1NTY4K0VdPUJbMTc4XVtFXSk7Zm9yKEJbMTc5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1NzNhXHU1YzFkXHU1ZTM4XHU5NTdmXHU1MDdmXHU4MGEwXHU1MzgyXHU2NTVlXHU3NTQ1XHU1NTMxXHU1MDIxXHU4ZDg1XHU2Mjg0XHU5''@;'; put 'put ''NDllXHU2NzFkXHU1NjMyXHU2ZjZlXHU1ZGUyXHU1NDM1XHU3MDkyXHU4ZjY2XHU2MjZmXHU2NGE0XHU2M2EzXHU1ZjdiXHU2Zjg4XHU5MGY0XHU4MWUzXHU4ZmIwXHU1YzE4XHU2NjY4XHU1ZmYxXHU2Yzg5XHU5NjQ4XHU4ZDgxXHU4ODZjXHU2NDkxXHU3OWYwXHU1N2NlXHU2YTU5XHU2MjEw''@;'; put 'put ''XHU1NDQ4XHU0ZTU4XHU3YTBiXHU2MGU5XHU2Zjg0XHU4YmRhXHU2MjdmXHU5MDFlXHU5YThiXHU3OWU0XHU1NDAzXHU3NWY0XHU2MzAxXHU1MzE5XHU2YzYwXHU4ZmRmXHU1ZjFiXHU5YTcwXHU4MDNiXHU5ZjdmXHU0Zjg4XHU1YzNhXHU4ZDY0XHU3ZmM1XHU2NWE1XHU3MGJkXHU1MTQ1XHU1''@;'; put 'put ''MWIyXHU4NjZiXHU1ZDA3XHU1YmEwXHU2MmJkXHU5MTZjXHU3NTc0XHU4ZTBjXHU3YTIwXHU2MTAxXHU3Yjc5XHU0ZWM3XHU3ZWY4XHU3Nzg1XHU0ZTExXHU4MWVkXHU1MjFkXHU1MWZhXHU2YTcxXHU1M2E4XHU4ZTg3XHU5NTA0XHU5NmNmXHU2ZWMxXHU5NjY0XHU2OTVhXHVmZmZkIi5zcGxp''@;'; put 'put ''dCgiIiksRT0wO0UhPUJbMTc5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxNzldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE3OV1bRV1dPTQ1ODI0K0UsTFs0NTgyNCtFXT1CWzE3OV1bRV0pO2ZvcihCWzE4MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1Nzg0MFx1NTBhOFx1NzdkN1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1NjkzZFx1NGYyMFx1''@;'; put 'put ''ODIzOVx1NTU5OFx1NGUzMlx1NzVhZVx1N2E5N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1NjkzZlx1OTE4N1x1NTUwN1x1NmRmM1x1N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1OTZjY1x1OGY5''@;'; put 'put ''ZVx1NjE0OFx1NzRmN1x1OGJjZFx1NmI2NFx1NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5N1x1OTE4Ylx1N2MwN1x1NGZjM1x1OGU3Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYwMVx1N2NiOVx1''@;'; put 'put ''NmRlY1x1N2ZlMFx1Njc1MVx1NWI1OFx1NWJmOFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1NjI1M1x1NTkyN1x1NTQ0Nlx1NmI3OVx1NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1NWY4NVx1OTAy''@;'; put 'put ''ZVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4MF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODBdW0VdXT00NjA4MCtFLExbNDYwODArRV09QlsxODBdW0VdKTtmb3IoQlsxODFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTYwMjBcdTgwM2RcdTYyYzVcdTRlMzlcdTUzNTVcdTkwZjhcdTYzYjhcdTgwYzZcdTY1ZTZc''@;'; put 'put ''dTZjMmVcdTRmNDZcdTYwZWVcdTZkZTFcdThiZGVcdTVmMzlcdTg2Y2JcdTVmNTNcdTYzMjFcdTUxNWFcdTgzNjFcdTY4NjNcdTUyMDBcdTYzNjNcdThlNDhcdTUwMTJcdTVjOWJcdTc5NzdcdTViZmNcdTUyMzBcdTdhM2JcdTYwYmNcdTkwNTNcdTc2ZDdcdTVmYjdcdTVmOTdcdTc2ODRcdThl''@;'; put 'put ''NmNcdTcwNmZcdTc2N2JcdTdiNDlcdTc3YWFcdTUxZjNcdTkwOTNcdTU4MjRcdTRmNGVcdTZlZjRcdThmZWFcdTY1NGNcdTdiMWJcdTcyYzRcdTZkYTRcdTdmZGZcdTVhZTFcdTYyYjVcdTVlOTVcdTU3MzBcdTg0ODJcdTdiMmNcdTVlMWRcdTVmMWZcdTkwMTJcdTdmMTRcdTk4YTBcdTYzODJc''@;'; put 'put ''dTZlYzdcdTc4OThcdTcwYjlcdTUxNzhcdTk3NWJcdTU3YWJcdTc1MzVcdTRmNDNcdTc1MzhcdTVlOTdcdTYwZTZcdTU5NjBcdTZkYzBcdTZiYmZcdTc4ODlcdTUzZmNcdTk2ZDVcdTUxY2JcdTUyMDFcdTYzODlcdTU0MGFcdTk0OTNcdThjMDNcdThkY2NcdTcyMzlcdTc4OWZcdTg3NzZcdThm''@;'; put 'put ''ZWRcdThjMGRcdTUzZTBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTgxXVtFXV09NDYzMzYrRSxMWzQ2MzM2K0VdPUJbMTgxXVtFXSk7Zm9yKEJbMTgyXT0iXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZTAxXHU3NmVmXHU1M2VlXHU5NDg5XHU5ODc2XHU5ZjBlXHU5NTJk''@;'; put 'put ''XHU1YjlhXHU4YmEyXHU0ZTIyXHU0ZTFjXHU1MWFjXHU4NDYzXHU2MWMyXHU1MmE4XHU2ODBiXHU0Zjk3XHU2MDZiXHU1MWJiXHU2ZDFlXHU1MTVjXHU2Mjk2XHU2NTk3XHU5NjYxXHU4YzQ2XHU5MDE3XHU3NWQ4XHU5MGZkXHU3NzYzXHU2YmQyXHU3MjhhXHU3MmVjXHU4YmZiXHU1ODM1XHU3''@;'; put 'put ''Nzc5XHU4ZDRjXHU2NzVjXHU5NTQwXHU4MDlhXHU1ZWE2XHU2ZTIxXHU1OTkyXHU3YWVmXHU3N2VkXHU5NTNiXHU2YmI1XHU2NWFkXHU3ZjBlXHU1ODA2XHU1MTUxXHU5NjFmXHU1YmY5XHU1OGE5XHU1NDI4XHU4ZTcyXHU2NTY2XHU5ODdmXHU1NmU0XHU5NDlkXHU3NmZlXHU5MDQxXHU2Mzg3''@;'; put 'put ''XHU1NGM2XHU1OTFhXHU1OTNhXHU1NzliXHU4ZWIyXHU2NzM1XHU4ZGZhXHU4MjM1XHU1MjQxXHU2MGYwXHU1ODE1XHU4NmZlXHU1Y2U4XHU5ZTQ1XHU0ZmM0XHU5ODlkXHU4YmI5XHU1YTI1XHU2MDc2XHU1Mzg0XHU2MjdjXHU5MDRmXHU5MTAyXHU5OTdmXHU2MDY5XHU4MDBjXHU1MTNmXHU4''@;'; put 'put ''MDMzXHU1YzE0XHU5OTc1XHU2ZDMxXHU0ZThjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTgyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4Ml1bRV1dPTQ2NTkyK0UsTFs0NjU5MitFXT1CWzE4Ml1bRV0pO2ZvcihCWzE4M109Ilx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGQzMFx1NTNkMVx1N2Y1YVx1N2I0Zlx1NGYx''@;'; put 'put ''MFx1NGU0Zlx1OTYwMFx1NmNkNVx1NzNkMFx1ODVlOVx1NWUwNlx1NzU2YVx1N2ZmYlx1NmEwYVx1NzdmZVx1OTQ5Mlx1N2U0MVx1NTFlMVx1NzBlNlx1NTNjZFx1OGZkNFx1ODMwM1x1OGQyOVx1NzJhZlx1OTk2ZFx1NmNkYlx1NTc0YVx1ODJiM1x1NjViOVx1ODBhYVx1NjIzZlx1OTYzMlx1''@;'; put 'put ''NTlhOFx1NGVmZlx1OGJiZlx1N2ViYVx1NjUzZVx1ODNmMlx1OTc1ZVx1NTU2MVx1OThkZVx1ODBhNVx1NTMyYVx1OGJmZFx1NTQyMFx1ODBiYVx1NWU5Zlx1NmNiOFx1OGQzOVx1ODJhY1x1OTE1YVx1NTQyOVx1NmMxYlx1NTIwNlx1N2ViN1x1NTc1Zlx1NzExYVx1NmM3ZVx1N2M4OVx1NTk0''@;'; put 'put ''Ylx1NGVmZFx1NWZmZlx1NjEyNFx1N2NhYVx1NGUzMFx1NWMwMVx1NjdhYlx1ODcwMlx1NWNmMFx1OTUwYlx1OThjZVx1NzVhZlx1NzBmZFx1OTAyMlx1NTFhZlx1N2YxZFx1OGJiZFx1NTk0OVx1NTFlNFx1NGY1Ylx1NTQyNlx1NTkyYlx1NjU3N1x1ODBhNFx1NWI3NVx1NjI3Nlx1NjJjMlx1''@;'; put 'put ''OGY5MFx1NWU0NVx1NmMxZlx1N2IyNlx1NGYwZlx1NGZkOFx1NjcwZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTgzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODNdW0VdXT00Njg0OCtFLExbNDY4NDgrRV09QlsxODNdW0VdKTtmb3Io''@;'; put 'put ''QlsxODRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZkNmVcdTZkYWFcdTc5''@;'; put 'put ''OGZcdTg4YjFcdTVmMTdcdTc1MmJcdTYyOWFcdThmODVcdTRmZWZcdTkxZGNcdTY1YTdcdTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUyNmZcdTg5ODZcdThkNGJcdTU5MGRcdTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNcdTk2NDRcdTU5ODdc''@;'; put 'put ''dTdmMWFcdTU0OTBcdTU2NzZcdTU2MGVcdThiZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFcdTdhZmZcdTgwOWRcdThkNzZcdTYxMWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgwOWJcdTdlYjJcdTVj''@;'; put 'put ''OTdcdTZlMmZcdTY3NjBcdTdiZDlcdTc2OGJcdTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVcdTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZiNGNcdTY0MDFcdTYyMDhcdTllM2RcdTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFcdTk2OTRcdTk0ZWNc''@;'; put 'put ''dTRlMmFcdTU0MDRcdTdlZDlcdTY4MzlcdThkZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdmYjlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTg0XVtFXV09NDcxMDQrRSxMWzQ3MTA0K0VdPUJb''@;'; put 'put ''MTg0XVtFXSk7Zm9yKEJbMTg1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1''@;'; put 'put ''N2MyXHU4MDNmXHU2ODk3XHU1ZGU1XHU2NTNiXHU1MjlmXHU2MDZkXHU5ZjlhXHU0ZjliXHU4ZWFjXHU1MTZjXHU1YmFiXHU1ZjEzXHU1ZGU5XHU2YzVlXHU2MmYxXHU4ZDIxXHU1MTcxXHU5NGE5XHU1MmZlXHU2YzlmXHU4MmRmXHU3MmQ3XHU1N2EyXHU2Nzg0XHU4ZDJkXHU1OTFmXHU4Zjlj''@;'; put 'put ''XHU4M2M3XHU1NDk1XHU3YjhkXHU0ZjMwXHU2Y2JkXHU1YjY0XHU1OWQxXHU5ZjEzXHU1M2U0XHU4NmNhXHU5YWE4XHU4YzM3XHU4MGExXHU2NTQ1XHU5ODdlXHU1NmZhXHU5NmM3XHU1MjJlXHU3NGRjXHU1MjUwXHU1YmUxXHU2MzAyXHU4OTAyXHU0ZTU2XHU2MmQwXHU2MDJhXHU2OGZhXHU1''@;'; put 'put ''MTczXHU1Yjk4XHU1MWEwXHU4OWMyXHU3YmExXHU5OTg2XHU3ZjUwXHU2MGVmXHU3MDRjXHU4ZDJmXHU1MTQ5XHU1ZTdmXHU5MDFiXHU3NDcwXHU4OWM0XHU1NzJkXHU3ODQ1XHU1ZjUyXHU5ZjlmXHU5NWZhXHU4ZjY4XHU5YjNjXHU4YmUxXHU3Njc4XHU2ODQyXHU2N2RjXHU4ZGVhXHU4ZDM1''@;'; put 'put ''XHU1MjNkXHU4ZjhhXHU2ZWRhXHU2OGNkXHU5NTA1XHU5MGVkXHU1NmZkXHU2NzljXHU4OGY5XHU4ZmM3XHU1NGM4XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4NV1bRV1dPTQ3MzYwK0Us''@;'; put 'put ''TFs0NzM2MCtFXT1CWzE4NV1bRV0pO2ZvcihCWzE4Nl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1OWFiOFx1NWI2OVx1NmQ3N1x1NmMyNlx1NGVhNVx1NWJiM1x1OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1NjA4ZFx1NzEwYVx1NmM1N1x1NmM0''@;'; put 'put ''OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThkNVx1NTY4ZVx1OGM2YVx1NmJlYlx1OTBkZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYwMlx1NmNiM1x1NmRiOFx1OGQ2Ylx1''@;'; put 'put ''ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1OWVkMVx1NzVkNVx1NWY4OFx1NzJlMFx1NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1NGZhZlx1NzMzNFx1NTQzY1x1NTM5''@;'; put 'put ''YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0ZVx1NWZmZFx1NzQ1YVx1NThmNlx1ODQ2Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2NjYVx1NmU1Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTg2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODZd''@;'; put 'put ''W0VdXT00NzYxNitFLExbNDc2MTYrRV09QlsxODZdW0VdKTtmb3IoQlsxODddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVmMjdcdTg2NGVcdTU1MmNcdTYyYTRcdTRlOTJcdTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUyMTJcdTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFcdTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4''@;'; put 'put ''NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYwYTNcdTU1MjRcdTc1ZWFcdThjNjJcdTcxMTVcdTZkYTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdcdTc2ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVc''@;'; put 'put ''dThmODlcdTVmYmRcdTYwNjJcdTg2ZDRcdTU2ZGVcdTZiYzFcdTYwOTRcdTYxNjdcdTUzNDlcdTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThiZjJcdTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFcdTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRm''@;'; put 'put ''MTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYwZDFcdTk3MGRcdThkMjdcdTc5NzhcdTUxZmJcdTU3M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxODddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE4N11bRV0uY2hhckNvZGVBdCgw''@;'; put 'put ''KSYmKG1lW0JbMTg3XVtFXV09NDc4NzIrRSxMWzQ3ODcyK0VdPUJbMTg3XVtFXSk7Zm9yKEJbMTg4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MDhjXHU5OTY1XHU4ZmY5XHU2ZmMwXHU4YmE1XHU5ZTIxXHU1OWVjXHU3ZWU5XHU3ZjA5XHU1NDA5XHU2NzgxXHU2OGQ4XHU4ZjkxXHU3YzRkXHU5NmM2XHU1M2NhXHU2MDI1XHU3NWJlXHU2YzcyXHU1MzczXHU1YWM5XHU3''@;'; put 'put ''ZWE3XHU2MzI0XHU1MWUwXHU4MTBhXHU1ZGYxXHU4NGRmXHU2MjgwXHU1MTgwXHU1YjYzXHU0ZjBlXHU3OTZkXHU1MjQyXHU2MGI4XHU2ZDRlXHU1YmM0XHU1YmMyXHU4YmExXHU4YmIwXHU2NWUyXHU1ZmNjXHU5NjQ1XHU1OTkzXHU3ZWU3XHU3ZWFhXHU1NjA5XHU2N2I3XHU1OTM5XHU0Zjcz''@;'; put 'put ''XHU1YmI2XHU1MmEwXHU4MzVhXHU5ODhhXHU4ZDNlXHU3NTMyXHU5NGJlXHU1MDQ3XHU3YTNjXHU0ZWY3XHU2N2I2XHU5YTdlXHU1YWMxXHU2YjdjXHU3NmQxXHU1NzVhXHU1YzE2XHU3YjNhXHU5NWY0XHU3MTRlXHU1MTdjXHU4MGE5XHU4MjcwXHU1OTc4XHU3ZjA0XHU4MzI3XHU2OGMwXHU2''@;'; put 'put ''N2VjXHU3OGIxXHU3ODc3XHU2MmUzXHU2MzYxXHU3YjgwXHU0ZmVkXHU1MjZhXHU1MWNmXHU4MzUwXHU2OWRiXHU5Mjc0XHU4ZGY1XHU4ZDMxXHU4OWMxXHU5NTJlXHU3YmFkXHU0ZWY2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTg4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxODhdW0Vd''@;'; put 'put ''LmNoYXJDb2RlQXQoMCkmJihtZVtCWzE4OF1bRV1dPTQ4MTI4K0UsTFs0ODEyOCtFXT1CWzE4OF1bRV0pO2ZvcihCWzE4OV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1NTBmNVx1NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1''@;'; put 'put ''OTE3MVx1OTY0ZFx1ODU0OVx1NjkxMlx1NzkwMVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZhNVx1ODExYVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4''@;'; put 'put ''M1x1NTNlYlx1N2E5Nlx1NjNlZFx1NjNhNVx1NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1NmQwMVx1N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1''@;'; put 'put ''OGJlYlx1NWM0YVx1NWRmZVx1N2I0Ylx1NjVhNFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4MVx1OGZkMVx1NzBlY1x1NmQ3OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE4OV0ubGVuZ3RoOysrRSk2NTUz''@;'; put 'put ''MyE9PUJbMTg5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxODldW0VdXT00ODM4NCtFLExbNDgzODQrRV09QlsxODldW0VdKTtmb3IoQlsxOTBdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjM2RcdTUyYjJcdTgzNDZcdTUxNjJcdTgzMGVcdTc3NWJcdTY2NzZcdTljYjhcdTRlYWNcdTYwY2FcdTdjYmVcdTdjYjNcdTdlY2ZcdTRlOTVcdThiNjZcdTY2NmZcdTk4ODhc''@;'; put 'put ''dTk3NTlcdTU4ODNcdTY1NmNcdTk1NWNcdTVmODRcdTc1YzlcdTk3NTZcdTdhZGZcdTdhZGVcdTUxYzBcdTcwYWZcdTdhOThcdTYzZWFcdTdhNzZcdTdlYTBcdTczOTZcdTk3ZWRcdTRlNDVcdTcwNzhcdTRlNWRcdTkxNTJcdTUzYTlcdTY1NTFcdTY1ZTdcdTgxZmNcdTgyMDVcdTU0OGVcdTVj''@;'; put 'put ''MzFcdTc1OWFcdTk3YTBcdTYyZDhcdTcyZDlcdTc1YmRcdTVjNDVcdTlhNzlcdTgzY2FcdTVjNDBcdTU0ODBcdTc3ZTlcdTRlM2VcdTZjYWVcdTgwNWFcdTYyZDJcdTYzNmVcdTVkZThcdTUxNzdcdThkZGRcdThlMWVcdTk1MmZcdTRmZjFcdTUzZTVcdTYwZTdcdTcwYWNcdTUyNjdcdTYzNTBc''@;'; put 'put ''dTllNDNcdTVhMWZcdTUwMjZcdTc3MzdcdTUzNzdcdTdlZTJcdTY0ODVcdTY1MmJcdTYyODlcdTYzOThcdTUwMTRcdTcyMzVcdTg5YzlcdTUxYjNcdThiYzBcdTdlZGRcdTU3NDdcdTgzY2NcdTk0YTdcdTUxOWJcdTU0MWJcdTVjZmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTBdLmxl''@;'; put 'put ''bmd0aDsrK0UpNjU1MzMhPT1CWzE5MF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkwXVtFXV09NDg2NDArRSxMWzQ4NjQwK0VdPUJbMTkwXVtFXSk7Zm9yKEJbMTkxXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZmNhXHU3YWUzXHU2ZDVhXHU5MGUxXHU5YThmXHU1NTgwXHU1NDk2XHU1MzYxXHU1NGFmXHU1ZjAwXHU2M2U5XHU2OTc3XHU1MWVmXHU2MTY4XHU1MjBh''@;'; put 'put ''XHU1ODJhXHU1MmQ4XHU1NzRlXHU3ODBkXHU3NzBiXHU1ZWI3XHU2MTc3XHU3Y2UwXHU2MjViXHU2Mjk3XHU0ZWEyXHU3MDk1XHU4MDAzXHU2MmY3XHU3MGU0XHU5NzYwXHU1Nzc3XHU4MmRiXHU2N2VmXHU2OGY1XHU3OGQ1XHU5ODk3XHU3OWQxXHU1OGYzXHU1NGIzXHU1M2VmXHU2ZTM0XHU1''@;'; put 'put ''MTRiXHU1MjNiXHU1YmEyXHU4YmZlXHU4MGFmXHU1NTQzXHU1N2E2XHU2MDczXHU1NzUxXHU1NDJkXHU3YTdhXHU2MDUwXHU1YjU0XHU2M2E3XHU2MmEwXHU1M2UzXHU2MjYzXHU1YmM3XHU2N2FmXHU1NGVkXHU3YTlmXHU4MmU2XHU5MTc3XHU1ZTkzXHU4OGU0XHU1OTM4XHU1N2FlXHU2MzBl''@;'; put 'put ''XHU4ZGU4XHU4MGVmXHU1NzU3XHU3Yjc3XHU0ZmE5XHU1ZmViXHU1YmJkXHU2YjNlXHU1MzIxXHU3YjUwXHU3MmMyXHU2ODQ2XHU3N2ZmXHU3NzM2XHU2NWY3XHU1MWI1XHU0ZThmXHU3NmQ0XHU1Y2JmXHU3YWE1XHU4NDc1XHU1OTRlXHU5YjQxXHU1MDgwXHVmZmZkIi5zcGxpdCgiIiksRT0w''@;'; put 'put ''O0UhPUJbMTkxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5MV1bRV1dPTQ4ODk2K0UsTFs0ODg5NitFXT1CWzE5MV1bRV0pO2ZvcihCWzE5Ml09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTk4OFx1NjEyN1x1NmU4M1x1NTc2NFx1NjYwNlx1NjM0Nlx1NTZmMFx1NjJlY1x1NjI2OVx1NWVkM1x1OTYxNFx1NTc4M1x1NjJj''@;'; put 'put ''OVx1NTU4N1x1ODcyMVx1ODE0YVx1OGZhM1x1NTU2Nlx1ODNiMVx1Njc2NVx1OGQ1Nlx1ODRkZFx1NWE2YVx1NjgwZlx1NjJlNlx1N2JlZVx1OTYxMVx1NTE3MFx1NmY5Y1x1OGMzMFx1NjNmZFx1ODljOFx1NjFkMlx1N2YwNlx1NzBjMlx1NmVlNVx1NzQwNVx1Njk5NFx1NzJmY1x1NWVjYVx1''@;'; put 'put ''OTBjZVx1NjcxN1x1NmQ2YVx1NjM1ZVx1NTJiM1x1NzI2Mlx1ODAwMVx1NGY2Y1x1NTllNVx1OTE2YVx1NzBkOVx1NmQ5ZFx1NTJkMlx1NGU1MFx1OTZmN1x1OTU2ZFx1ODU3ZVx1NzhjYVx1N2QyZlx1NTEyMVx1NTc5Mlx1NjRjMlx1ODA4Ylx1N2M3Ylx1NmNlYVx1NjhmMVx1Njk1ZVx1NTFi''@;'; put 'put ''N1x1NTM5OFx1NjhhOFx1NzI4MVx1OWVjZVx1N2JmMVx1NzJmOFx1NzliYlx1NmYxM1x1NzQwNlx1Njc0ZVx1OTFjY1x1OWNhNFx1NzkzY1x1ODM4OVx1ODM1NFx1NTQwZlx1NjgxN1x1NGUzZFx1NTM4OVx1NTJiMVx1NzgzZVx1NTM4Nlx1NTIyOVx1NTA4OFx1NGY4Ylx1NGZkMFx1ZmZmZCIu''@;'; put 'put ''c3BsaXQoIiIpLEU9MDtFIT1CWzE5Ml0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTkyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTJdW0VdXT00OTE1MitFLExbNDkxNTIrRV09QlsxOTJdW0VdKTtmb3IoQlsxOTNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc1ZTJcdTdhY2JcdTdjOTJcdTZjYTVcdTk2YjZcdTUyOWJcdTc0ODNcdTU0ZTlcdTRmZTlcdTgwNTRcdTgz''@;'; put 'put ''YjJcdThmZGVcdTk1NzBcdTVlYzlcdTYwMWNcdTZkOWZcdTVlMThcdTY1NWJcdTgxMzhcdTk0ZmVcdTYwNGJcdTcwYmNcdTdlYzNcdTdjYWVcdTUxYzlcdTY4ODFcdTdjYjFcdTgyNmZcdTRlMjRcdThmODZcdTkxY2ZcdTY2N2VcdTRlYWVcdThjMDVcdTY0YTlcdTgwNGFcdTUwZGFcdTc1OTdc''@;'; put 'put ''dTcxY2VcdTViZTVcdThmYmRcdTZmNjZcdTRlODZcdTY0ODJcdTk1NjNcdTVlZDZcdTY1OTlcdTUyMTdcdTg4YzJcdTcwYzhcdTUyYTNcdTczMGVcdTc0MzNcdTY3OTdcdTc4ZjdcdTk3MTZcdTRlMzRcdTkwYmJcdTljZGVcdTZkY2JcdTUxZGJcdThkNDFcdTU0MWRcdTYyY2VcdTczYjJcdTgz''@;'; put 'put ''ZjFcdTk2ZjZcdTlmODRcdTk0YzNcdTRmMzZcdTdmOWFcdTUxY2NcdTcwNzVcdTk2NzVcdTVjYWRcdTk4ODZcdTUzZTZcdTRlZTRcdTZlOWNcdTc0MDlcdTY5YjRcdTc4NmJcdTk5OGZcdTc1NTlcdTUyMThcdTc2MjRcdTZkNDFcdTY3ZjNcdTUxNmRcdTlmOTlcdTgwNGJcdTU0OTlcdTdiM2Nc''@;'; put 'put ''dTdhYmZcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5M11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTkzXVtFXV09NDk0MDgrRSxMWzQ5NDA4K0VdPUJbMTkzXVtFXSk7Zm9yKEJbMTk0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5Njg2XHU1Nzg0XHU2MmUyXHU5NjQ3XHU2OTdjXHU1YTA0XHU2NDAyXHU3YmQzXHU2''@;'; put 'put ''ZjBmXHU5NjRiXHU4MmE2XHU1MzYyXHU5ODg1XHU1ZTkwXHU3MDg5XHU2M2IzXHU1MzY0XHU4NjRmXHU5YzgxXHU5ZTkzXHU3ODhjXHU5NzMyXHU4ZGVmXHU4ZDQyXHU5ZTdmXHU2ZjVlXHU3OTg0XHU1ZjU1XHU5NjQ2XHU2MjJlXHU5YTc0XHU1NDE1XHU5NGRkXHU0ZmEzXHU2NWM1XHU1YzY1''@;'; put 'put ''XHU1YzYxXHU3ZjE1XHU4NjUxXHU2YzJmXHU1ZjhiXHU3Mzg3XHU2ZWU0XHU3ZWZmXHU1Y2U2XHU2MzFiXHU1YjZhXHU2ZWU2XHU1Mzc1XHU0ZTcxXHU2M2EwXHU3NTY1XHU2MmExXHU4ZjZlXHU0ZjI2XHU0ZWQxXHU2Y2E2XHU3ZWI2XHU4YmJhXHU4NDFkXHU4N2JhXHU3ZjU3XHU5MDNiXHU5''@;'; put 'put ''NTIzXHU3YmE5XHU5YWExXHU4OGY4XHU4NDNkXHU2ZDFiXHU5YTg2XHU3ZWRjXHU1OTg4XHU5ZWJiXHU3MzliXHU3ODAxXHU4NjgyXHU5YTZjXHU5YTgyXHU1NjFiXHU1NDE3XHU1N2NiXHU0ZTcwXHU5ZWE2XHU1MzU2XHU4ZmM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NmVlXHU2ZWUxXHU4NTEz''@;'; put 'put ''XHU2NmZjXHU2MTYyXHU2ZjJiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5NF1bRV1dPTQ5NjY0K0UsTFs0OTY2NCtFXT1CWzE5NF1bRV0pO2ZvcihCWzE5NV09Ilx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGMyOVx1ODI5Mlx1ODMyYlx1NzZmMlx1NmMxM1x1NWZkOVx1''@;'; put 'put ''ODNiZFx1NzMyYlx1ODMwNVx1OTUxYVx1NmJkYlx1NzdkYlx1OTRjNlx1NTM2Zlx1ODMwMlx1NTE5Mlx1NWUzZFx1OGM4Y1x1OGQzOFx1NGU0OFx1NzNhYlx1Njc5YVx1Njg4NVx1OTE3Nlx1OTcwOVx1NzE2NFx1NmNhMVx1NzcwOVx1NWE5Mlx1OTU0MVx1NmJjZlx1N2Y4ZVx1NjYyN1x1NWJk''@;'; put 'put ''MFx1NTliOVx1NWE5YVx1OTVlOFx1OTVmN1x1NGVlY1x1ODQwY1x1ODQ5OVx1NmFhY1x1NzZkZlx1OTUzMFx1NzMxYlx1NjhhNlx1NWI1Zlx1NzcyZlx1OTE5YVx1OTc2MVx1N2NkY1x1OGZmN1x1OGMxY1x1NWYyNVx1N2M3M1x1NzlkOFx1ODljNVx1NmNjY1x1ODcxY1x1NWJjNlx1NWU0Mlx1''@;'; put 'put ''NjhjOVx1NzcyMFx1N2VmNVx1NTE5NVx1NTE0ZFx1NTJjOVx1NWEyOVx1N2YwNVx1OTc2Mlx1ODJkN1x1NjNjZlx1Nzc4NFx1ODVkMFx1NzlkMlx1NmUzYVx1NWU5OVx1NTk5OVx1ODUxMVx1NzA2ZFx1NmMxMVx1NjJiZlx1NzZiZlx1NjU0Zlx1NjBhZlx1OTVmZFx1NjYwZVx1ODc5Zlx1OWUy''@;'; put 'put ''M1x1OTRlZFx1NTQwZFx1NTQ3ZFx1OGMyY1x1NjQ3OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5NV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk1XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOTVdW0VdXT00OTkyMCtFLExbNDk5MjArRV09QlsxOTVdW0VdKTtmb3IoQlsxOTZdPSJc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0NzlcdTg2MTFcdTZhMjFcdTgxOWNc''@;'; put 'put ''dTc4ZThcdTY0NjlcdTliNTRcdTYyYjlcdTY3MmJcdTgzYWJcdTU4YThcdTllZDhcdTZjYWJcdTZmMjBcdTViZGVcdTk2NGNcdThjMGJcdTcyNWZcdTY3ZDBcdTYyYzdcdTcyNjFcdTRlYTlcdTU5YzZcdTZiY2RcdTU4OTNcdTY2YWVcdTVlNTVcdTUyZGZcdTYxNTVcdTY3MjhcdTc2ZWVcdTc3''@;'; put 'put ''NjZcdTcyNjdcdTdhNDZcdTYyZmZcdTU0ZWFcdTU0NTBcdTk0YTBcdTkwYTNcdTVhMWNcdTdlYjNcdTZjMTZcdTRlNDNcdTU5NzZcdTgwMTBcdTU5NDhcdTUzNTdcdTc1MzdcdTk2YmVcdTU2Y2FcdTYzMjBcdTgxMTFcdTYwN2NcdTk1ZjlcdTZkZDZcdTU0NjJcdTk5ODFcdTUxODVcdTVhZTlc''@;'; put 'put ''dTgwZmRcdTU5YWVcdTk3MTNcdTUwMmFcdTZjZTVcdTVjM2NcdTYyZGZcdTRmNjBcdTUzM2ZcdTgxN2JcdTkwMDZcdTZlYmFcdTg1MmJcdTYyYzhcdTVlNzRcdTc4YmVcdTY0YjVcdTYzN2JcdTVmZjVcdTVhMThcdTkxN2ZcdTllMWZcdTVjM2ZcdTYzNGZcdTgwNDJcdTViN2RcdTU1NmVcdTk1''@;'; put 'put ''NGFcdTk1NGRcdTZkODVcdTYwYThcdTY3ZTBcdTcyZGVcdTUxZGRcdTViODFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5Nl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMTk2XVtFXV09NTAxNzYrRSxMWzUwMTc2K0VdPUJbMTk2XVtFXSk7''@;'; put 'put ''Zm9yKEJbMTk3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MmU3XHU2Y2Rl''@;'; put 'put ''XHU3MjViXHU2MjZkXHU5NGFlXHU3ZWJkXHU4MTEzXHU2ZDUzXHU1MTljXHU1ZjA0XHU1OTc0XHU1MmFhXHU2MDEyXHU1OTczXHU2Njk2XHU4NjUwXHU3NTlmXHU2MzJhXHU2MWU2XHU3Y2VmXHU4YmZhXHU1NGU2XHU2YjI3XHU5ZTI1XHU2YmI0XHU4NWQ1XHU1NDU1XHU1MDc2XHU2Y2E0XHU1''@;'; put 'put ''NTZhXHU4ZGI0XHU3MjJjXHU1ZTE1XHU2MDE1XHU3NDM2XHU2MmNkXHU2MzkyXHU3MjRjXHU1Zjk4XHU2ZTQzXHU2ZDNlXHU2NTAwXHU2ZjU4XHU3NmQ4XHU3OGQwXHU3NmZjXHU3NTU0XHU1MjI0XHU1M2RiXHU0ZTUzXHU1ZTllXHU2NWMxXHU4MDJhXHU4MGQ2XHU2MjliXHU1NDg2XHU1MjI4''@;'; put 'put ''XHU3MGFlXHU4ODhkXHU4ZGQxXHU2Y2UxXHU1NDc4XHU4MGRhXHU1N2Y5XHU4OGY0XHU4ZDU0XHU5NjZhXHU5MTRkXHU0ZjY5XHU2YzliXHU1NWI3XHU3NmM2XHU3ODMwXHU2MmE4XHU3MGY5XHU2ZjhlXHU1ZjZkXHU4NGVjXHU2OGRhXHU3ODdjXHU3YmY3XHU4MWE4XHU2NzBiXHU5ZTRmXHU2''@;'; put 'put ''MzY3XHU3OGIwXHU1NzZmXHU3ODEyXHU5NzM5XHU2Mjc5XHU2MmFiXHU1Mjg4XHU3NDM1XHU2YmQ3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMTk3XS5sZW5ndGg7KytFKTY1NTMzIT09QlsxOTddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzE5N11bRV1dPTUwNDMyK0UsTFs1MDQzMitF''@;'; put 'put ''XT1CWzE5N11bRV0pO2ZvcihCWzE5OF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1NTU2NFx1ODEzZVx1NzViMlx1NzZhZVx1NTMzOVx1NzVkZVx1NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1NjQ4N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQyYlx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1''@;'; put 'put ''ODQwZFx1NWU3M1x1NTFlZFx1NzRmNlx1OGJjNFx1NWM0Zlx1NTc2MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVjNlx1ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMz''@;'; put 'put ''MVx1NjZkZFx1NzAxMVx1NjcxZlx1NmIzYVx1NjgxNlx1NjIxYVx1NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1NWQwZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1''@;'; put 'put ''NGYwMVx1NTQyZlx1NTk1MVx1NzgwY1x1NTY2OFx1NmMxNFx1OGZjNFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzE5OF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMTk4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsxOThdW0VdXT01MDY4''@;'; put 'put ''OCtFLExbNTA2ODgrRV09QlsxOThdW0VdKTtmb3IoQlsxOTldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdTYwNzBcdTZkM2RcdTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdiN2VcdTRlZGZcdThjMjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0YjNcdTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFc''@;'; put 'put ''dTU0NWJcdTgxNTRcdTdmOGNcdTU4OTlcdTg1MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3YTdcdTRlNTRcdTRmYThcdTVkZTdcdTk3OThcdTY0YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0''@;'; put 'put ''YTZcdTRmYjVcdTRlYjJcdTc5ZTZcdTc0MzRcdTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3NTJcdThmN2JcdTZjMjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0Y2VcdTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThc''@;'; put 'put ''dTkwYjFcdTc0MDNcdTZjNDJcdTU2ZGFcdTkxNGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZcdTVjNDhcdTlhNzFcdTZlMjBcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsxOTldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzE5OV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0Jb''@;'; put 'put ''MTk5XVtFXV09NTA5NDQrRSxMWzUwOTQ0K0VdPUJbMTk5XVtFXSk7Zm9yKEJbMjAwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1M2Q2XHU1YTM2XHU5ZjhiXHU4ZGEzXHU1M2JiXHU1NzA4XHU5OGE3XHU2NzQzXHU5MTliXHU2Y2M5XHU1MTY4XHU3NWNhXHU2MmYzXHU3MmFjXHU1MjM4XHU1MjlkXHU3ZjNhXHU3MDk0XHU3NjM4XHU1Mzc0XHU5ZTRhXHU2OWI3XHU3ODZl''@;'; put 'put ''XHU5NmMwXHU4OGQ5XHU3ZmE0XHU3MTM2XHU3MWMzXHU1MTg5XHU2N2QzXHU3NGU0XHU1OGU0XHU2NTE4XHU1NmI3XHU4YmE5XHU5OTc2XHU2MjcwXHU3ZWQ1XHU2MGY5XHU3MGVkXHU1OGVjXHU0ZWMxXHU0ZWJhXHU1ZmNkXHU5N2U3XHU0ZWZiXHU4YmE0XHU1MjAzXHU1OThhXHU3ZWFiXHU2''@;'; put 'put ''MjU0XHU0ZWNkXHU2NWU1XHU2MjBlXHU4MzM4XHU4NGM5XHU4MzYzXHU4NzhkXHU3MTk0XHU2ZWI2XHU1YmI5XHU3ZWQyXHU1MTk3XHU2M2M5XHU2N2Q0XHU4MDg5XHU4MzM5XHU4ODE1XHU1MTEyXHU1YjdhXHU1OTgyXHU4ZmIxXHU0ZTczXHU2YzVkXHU1MTY1XHU4OTI1XHU4ZjZmXHU5NjJl''@;'; put 'put ''XHU4NTRhXHU3NDVlXHU5NTEwXHU5NWYwXHU2ZGE2XHU4MmU1XHU1ZjMxXHU2NDkyXHU2ZDEyXHU4NDI4XHU4MTZlXHU5Y2MzXHU1ODVlXHU4ZDViXHU0ZTA5XHU1M2MxXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDBdW0VdLmNoYXJDb2Rl''@;'; put 'put ''QXQoMCkmJihtZVtCWzIwMF1bRV1dPTUxMjAwK0UsTFs1MTIwMCtFXT1CWzIwMF1bRV0pO2ZvcihCWzIwMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBi''@;'; put 'put ''Ylx1NTU2NVx1NzE1ZVx1N2I1Ylx1NjY1Mlx1NzNjYVx1ODJlYlx1Njc0OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1''@;'; put 'put ''ODhmM1x1NjhhMlx1NjM0ZVx1N2EwZFx1NzBlN1x1ODI4ZFx1NTJmYVx1OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYz''@;'; put 'put ''OFx1OGVhYlx1NmRmMVx1NWEyMFx1N2VjNVx1Nzk1ZVx1NmM4OFx1NWJhMVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1N2VmM1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjAx''@;'; put 'put ''XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDFdW0VdXT01MTQ1NitFLExbNTE0NTYrRV09QlsyMDFdW0VdKTtmb3IoQlsyMDJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3MDFcdTc2ZGJcdTUyNjlcdTgwZGNcdTU3MjNcdTVlMDhcdTU5MzFcdTcyZWVcdTY1YmRcdTZlN2ZcdThiZDdcdTVjMzhcdTg2NzFcdTUzNDFcdTc3ZjNcdTYyZmVcdTY1ZjZcdTRlYzBcdTk4''@;'; put 'put ''ZGZcdTg2ODBcdTViOWVcdThiYzZcdTUzZjJcdTc3ZTJcdTRmN2ZcdTVjNGVcdTlhNzZcdTU5Y2JcdTVmMGZcdTc5M2FcdTU4ZWJcdTRlMTZcdTY3ZmZcdTRlOGJcdTYyZWRcdThhOTNcdTkwMWRcdTUyYmZcdTY2MmZcdTU1ZGNcdTU2NmNcdTkwMDJcdTRlZDVcdTRmOGRcdTkxY2FcdTk5NzBc''@;'; put 'put ''dTZjMGZcdTVlMDJcdTYwNDNcdTViYTRcdTg5YzZcdThiZDVcdTY1MzZcdTYyNGJcdTk5OTZcdTViODhcdTViZmZcdTYzODhcdTU1MmVcdTUzZDdcdTc2MjZcdTUxN2RcdTg1MmNcdTY3YTJcdTY4YjNcdTZiOGFcdTYyOTJcdThmOTNcdTUzZDRcdTgyMTJcdTZkZDFcdTc1OGZcdTRlNjZcdThk''@;'; put 'put ''NGVcdTViNzBcdTcxOWZcdTg1YWZcdTY2OTFcdTY2ZDlcdTdmNzJcdTg3MDBcdTllY2RcdTlmMjBcdTVjNWVcdTY3MmZcdThmZjBcdTY4MTFcdTY3NWZcdTYyMGRcdTdhZDZcdTU4ODVcdTVlYjZcdTY1NzBcdTZmMzFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDJdLmxlbmd0aDsrK0Up''@;'; put 'put ''NjU1MzMhPT1CWzIwMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjAyXVtFXV09NTE3MTIrRSxMWzUxNzEyK0VdPUJbMjAyXVtFXSk7Zm9yKEJbMjAzXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDU1XHU1MjM3XHU4MDBkXHU2NDU0XHU4ODcwXHU3NTI5XHU1ZTA1XHU2ODEzXHU2MmY0XHU5NzFjXHU1M2NjXHU3MjNkXHU4YzAxXHU2YzM0XHU3NzYxXHU3YTBlXHU1''@;'; put 'put ''NDJlXHU3N2FjXHU5ODdhXHU4MjFjXHU4YmY0XHU3ODU1XHU2NzE0XHU3MGMxXHU2NWFmXHU2NDk1XHU1NjM2XHU2MDFkXHU3OWMxXHU1M2Y4XHU0ZTFkXHU2YjdiXHU4MDg2XHU1YmZhXHU1NWUzXHU1NmRiXHU0ZjNhXHU0ZjNjXHU5OTcyXHU1ZGYzXHU2NzdlXHU4MDM4XHU2MDAyXHU5ODgy''@;'; put 'put ''XHU5MDAxXHU1YjhiXHU4YmJjXHU4YmY1XHU2NDFjXHU4MjU4XHU2NGRlXHU1NWZkXHU4MmNmXHU5MTY1XHU0ZmQ3XHU3ZDIwXHU5MDFmXHU3YzlmXHU1MGYzXHU1ODUxXHU2ZWFmXHU1YmJmXHU4YmM5XHU4MDgzXHU5MTc4XHU4NDljXHU3Yjk3XHU4NjdkXHU5NjhiXHU5NjhmXHU3ZWU1XHU5''@;'; put 'put ''YWQzXHU3ODhlXHU1YzgxXHU3YTU3XHU5MDQyXHU5NmE3XHU3OTVmXHU1YjU5XHU2MzVmXHU3YjBiXHU4NGQxXHU2OGFkXHU1NTA2XHU3ZjI5XHU3NDEwXHU3ZDIyXHU5NTAxXHU2MjQwXHU1ODRjXHU0ZWQ2XHU1YjgzXHU1OTc5XHU1ODU0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjAz''@;'; put 'put ''XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwM11bRV1dPTUxOTY4K0UsTFs1MTk2OCtFXT1CWzIwM11bRV0pO2ZvcihCWzIwNF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NzM2ZFx1NjMxZVx1OGU0Ylx1OGUwZlx1ODBjZVx1ODJkNFx1NjJhY1x1NTNmMFx1NmNmMFx1OTE1ZVx1NTkyYVx1NjAwMVx1NmM3MFx1NTc0ZFx1''@;'; put 'put ''NjQ0YVx1OGQyYVx1NzYyYlx1NmVlOVx1NTc1Ylx1NmE4MFx1NzVmMFx1NmY2ZFx1OGMyZFx1OGMwOFx1NTc2Nlx1NmJlZlx1ODg5Mlx1NzhiM1x1NjNhMlx1NTNmOVx1NzBhZFx1NmM2NFx1NTg1OFx1NjQyYVx1NTgwMlx1NjhlMFx1ODE5Ylx1NTUxMFx1N2NkNlx1NTAxOFx1OGViYVx1NmRj''@;'; put 'put ''Y1x1OGQ5Zlx1NzBlYlx1NjM4Zlx1NmQ5Ylx1NmVkNFx1N2VlNlx1ODQwNFx1Njg0M1x1OTAwM1x1NmRkOFx1OTY3Nlx1OGJhOFx1NTk1N1x1NzI3OVx1ODVlNFx1ODE3ZVx1NzViY1x1OGE4YVx1NjhhZlx1NTI1NFx1OGUyMlx1OTUxMVx1NjNkMFx1OTg5OFx1OGU0NFx1NTU3Y1x1NGY1M1x1''@;'; put 'put ''NjZmZlx1NTY4Zlx1NjBkNVx1NmQ5NVx1NTI0M1x1NWM0OVx1NTkyOVx1NmRmYlx1NTg2Ylx1NzUzMFx1NzUxY1x1NjA2Y1x1ODIxNFx1ODE0Nlx1NjMxMVx1Njc2MVx1OGZlMlx1NzczYVx1OGRmM1x1OGQzNFx1OTRjMVx1NWUxNlx1NTM4NVx1NTQyY1x1NzBjM1x1ZmZmZCIuc3BsaXQoIiIp''@;'; put 'put ''LEU9MDtFIT1CWzIwNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDRdW0VdXT01MjIyNCtFLExbNTIyMjQrRV09QlsyMDRdW0VdKTtmb3IoQlsyMDVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZjNDBcdTVlZjdcdTUwNWNcdTRlYWRcdTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNc''@;'; put 'put ''dTk0ZGNcdTVmNjRcdTdhZTVcdTY4NzZcdTYzNDVcdTdiNTJcdTdlZGZcdTc1ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZcdTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkwMTRcdTZkODJcdTVjNjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgx''@;'; put 'put ''N2ZcdTg3MTVcdTg5MmFcdTkwMDBcdTU0MWVcdTVjNmZcdTgxYzBcdTYyZDZcdTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlhNmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2VcdTYzMTZcdTU0YzdcdTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNc''@;'; put 'put ''dTVmMmZcdTZlN2VcdTczYTlcdTk4N2RcdTRlMzhcdTcwZjdcdTViOGNcdTc4OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2JcdTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTczOGJcdTRlYTFcdTY3ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDFcdWZm''@;'; put 'put ''ZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA1XVtFXV09NTI0ODArRSxMWzUyNDgwK0VdPUJbMjA1XVtFXSk7Zm9yKEJbMjA2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1ZGNkXHU1ZmFlXHU1MzcxXHU5N2U2XHU4ZmRkXHU2ODQ1XHU1NmY0XHU1NTJmXHU2MGRmXHU0ZTNh''@;'; put 'put ''XHU2ZjRkXHU3ZWY0XHU4MmM3XHU4NDBlXHU1OWQ0XHU0ZjFmXHU0ZjJhXHU1YzNlXHU3ZWFjXHU2NzJhXHU4NTFhXHU1NDczXHU3NTRmXHU4MGMzXHU1NTgyXHU5YjRmXHU0ZjRkXHU2ZTJkXHU4YzEzXHU1YzA5XHU2MTcwXHU1MzZiXHU3NjFmXHU2ZTI5XHU4NjhhXHU2NTg3XHU5NWZiXHU3''@;'; put 'put ''ZWI5XHU1NDNiXHU3YTMzXHU3ZDBhXHU5NWVlXHU1NWUxXHU3ZmMxXHU3NGVlXHU2MzFkXHU4NzE3XHU2ZGExXHU3YTlkXHU2MjExXHU2NWExXHU1MzY3XHU2M2UxXHU2YzgzXHU1ZGViXHU1NDVjXHU5NGE4XHU0ZTRjXHU2YzYxXHU4YmVjXHU1YzRiXHU2NWUwXHU4MjljXHU2OGE3XHU1NDNl''@;'; put 'put ''XHU1NDM0XHU2YmNiXHU2YjY2XHU0ZTk0XHU2MzQyXHU1MzQ4XHU4MjFlXHU0ZjBkXHU0ZmFlXHU1NzVlXHU2MjBhXHU5NmZlXHU2NjY0XHU3MjY5XHU1MmZmXHU1MmExXHU2MDlmXHU4YmVmXHU2NjE0XHU3MTk5XHU2NzkwXHU4OTdmXHU3ODUyXHU3N2ZkXHU2NjcwXHU1NjNiXHU1NDM4XHU5''@;'; put 'put ''NTIxXHU3MjdhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwNl1bRV1dPTUyNzM2K0UsTFs1MjczNitFXT1CWzIwNl1bRV0pO2ZvcihCWzIwN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBkY1x1NzE4''@;'; put 'put ''NFx1NzBlZlx1NmVhYVx1NmM1MFx1NzI4MFx1NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1NjIwZlx1N2VjNlx1Nzc4ZVx1ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1NTNhNlx1''@;'; put 'put ''NTkwZlx1NTQxM1x1NjM4MFx1OTUyOFx1NTE0OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYyNlx1NWFjY1x1NjYzZVx1OTY2OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1MFx1N2Vi''@;'; put 'put ''Zlx1NzZmOFx1NTNhMlx1OTU3Nlx1OTk5OVx1N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1OTg3OVx1NWRmN1x1NmE2MVx1NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1OTUwMFx1''@;'; put 'put ''NmQ4OFx1NWJiNVx1NmRjNlx1NjY1M1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIwN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjA3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMDddW0VdXT01Mjk5MitFLExbNTI5OTIrRV09QlsyMDddW0VdKTtmb3IoQlsyMDhdPSJcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVjMGZcdTViNWRcdTY4MjFcdTgwOTZcdTU1NzhcdTdi''@;'; put 'put ''MTFcdTY1NDhcdTY5NTRcdTRlOWJcdTZiNDdcdTg3NGVcdTk3OGJcdTUzNGZcdTYzMWZcdTY0M2FcdTkwYWFcdTY1OWNcdTgwYzFcdThjMTBcdTUxOTlcdTY4YjBcdTUzNzhcdTg3ZjlcdTYxYzhcdTZjYzRcdTZjZmJcdThjMjJcdTVjNTFcdTg1YWFcdTgyYWZcdTk1MGNcdTZiMjNcdThmOWJc''@;'; put 'put ''dTY1YjBcdTVmZmJcdTVmYzNcdTRmZTFcdTg4NDVcdTY2MWZcdTgxNjVcdTczMjlcdTYwZmFcdTUxNzRcdTUyMTFcdTU3OGJcdTVmNjJcdTkwYTJcdTg4NGNcdTkxOTJcdTVlNzhcdTY3NGZcdTYwMjdcdTU5ZDNcdTUxNDRcdTUxZjZcdTgwZjhcdTUzMDhcdTZjNzlcdTk2YzRcdTcxOGFcdTRm''@;'; put 'put ''MTFcdTRmZWVcdTdmOWVcdTY3M2RcdTU1YzVcdTk1MDhcdTc5YzBcdTg4OTZcdTdlZTNcdTU4OWZcdTYyMGNcdTk3MDBcdTg2NWFcdTU2MThcdTk4N2JcdTVmOTBcdThiYjhcdTg0YzRcdTkxNTdcdTUzZDlcdTY1ZWRcdTVlOGZcdTc1NWNcdTYwNjRcdTdkNmVcdTVhN2ZcdTdlZWFcdTdlZWRc''@;'; put 'put ''dThmNjlcdTU1YTdcdTViYTNcdTYwYWNcdTY1Y2JcdTczODRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMDhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIwOF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjA4XVtFXV09NTMyNDgrRSxMWzUzMjQ4K0VdPUJbMjA4XVtFXSk7Zm9yKEJbMjA5''@;'; put 'put ''XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MDA5XHU3NjYzXHU3NzI5XHU3''@;'; put 'put ''ZWRhXHU5Nzc0XHU4NTliXHU1YjY2XHU3YTc0XHU5NmVhXHU4ODQwXHU1MmNiXHU3MThmXHU1ZmFhXHU2NWVjXHU4YmUyXHU1YmZiXHU5YTZmXHU1ZGUxXHU2Yjg5XHU2YzViXHU4YmFkXHU4YmFmXHU5MDBhXHU4ZmM1XHU1MzhiXHU2MmJjXHU5ZTI2XHU5ZTJkXHU1NDQwXHU0ZTJiXHU4MmJk''@;'; put 'put ''XHU3MjU5XHU4NjljXHU1ZDE2XHU4ODU5XHU2ZGFmXHU5NmM1XHU1NGQxXHU0ZTlhXHU4YmI2XHU3MTA5XHU1NGJkXHU5NjA5XHU3MGRmXHU2ZGY5XHU3NmQwXHU0ZTI1XHU3ODE0XHU4NzEyXHU1Y2E5XHU1ZWY2XHU4YTAwXHU5ODljXHU5NjBlXHU3MDhlXHU2Y2JmXHU1OTQ0XHU2M2E5XHU3''@;'; put 'put ''NzNjXHU4ODRkXHU2ZjE0XHU4MjczXHU1ODMwXHU3MWQ1XHU1MzhjXHU3ODFhXHU5NmMxXHU1NTAxXHU1ZjY2XHU3MTMwXHU1YmI0XHU4YzFhXHU5YThjXHU2YjgzXHU1OTJlXHU5ZTJmXHU3OWU3XHU2NzY4XHU2MjZjXHU0ZjZmXHU3NWExXHU3ZjhhXHU2ZDBiXHU5NjMzXHU2YzI3XHU0ZWYw''@;'; put 'put ''XHU3NWQyXHU1MTdiXHU2ODM3XHU2ZjNlXHU5MDgwXHU4MTcwXHU1OTk2XHU3NDc2XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjA5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMDldW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIwOV1bRV1dPTUzNTA0K0UsTFs1MzUwNCtFXT1CWzIwOV1b''@;'; put 'put ''RV0pO2ZvcihCWzIxMF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NjQ0N1x1''@;'; put 'put ''NWMyN1x1OTA2NVx1N2E5MVx1OGMyM1x1NTlkYVx1NTRhY1x1ODIwMFx1ODM2Zlx1ODk4MVx1ODAwMFx1NjkzMFx1NTY0ZVx1ODAzNlx1NzIzN1x1OTFjZVx1NTFiNlx1NGU1Zlx1OTg3NVx1NjM5Nlx1NGUxYVx1NTNmNlx1NjZmM1x1ODE0Ylx1NTkxY1x1NmRiMlx1NGUwMFx1NThmOVx1NTMz''@;'; put 'put ''Ylx1NjNkNlx1OTRmMVx1NGY5ZFx1NGYwYVx1ODg2M1x1OTg5MFx1NTkzN1x1OTA1N1x1NzlmYlx1NGVlYVx1ODBmMFx1NzU5MVx1NmM4Mlx1NWI5Y1x1NTllOFx1NWY1ZFx1NjkwNVx1ODY4MVx1NTAxYVx1NWRmMlx1NGU1OVx1NzdlM1x1NGVlNVx1ODI3YVx1NjI5MVx1NjYxM1x1OTA5MVx1''@;'; put 'put ''NWM3OVx1NGViZlx1NWY3OVx1ODFjNlx1OTAzOFx1ODA4NFx1NzVhYlx1NGVhNlx1ODhkNFx1NjEwZlx1NmJjNVx1NWZjNlx1NGU0OVx1NzZjYVx1NmVhMlx1OGJlM1x1OGJhZVx1OGMwYVx1OGJkMVx1NWYwMlx1N2ZmY1x1N2ZjY1x1N2VjZVx1ODMzNVx1ODM2Ylx1NTZlMFx1NmJiN1x1OTdm''@;'; put 'put ''M1x1OTYzNFx1NTlmYlx1NTQxZlx1OTRmNlx1NmRlYlx1NWJjNVx1OTk2ZVx1NWMzOVx1NWYxNVx1OTY5MFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxMF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTBdW0VdXT01Mzc2MCtFLExbNTM3''@;'; put 'put ''NjArRV09QlsyMTBdW0VdKTtmb3IoQlsyMTFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdTUzNzBcdTgyZjFcdTZhMzFcdTVhNzRcdTllNzBcdTVlOTRcdTdmMjhcdTgzYjlcdTg0MjRcdTg0MjVcdTgzNjdcdTg3NDdcdThmY2VcdThkNjJcdTc2YzhcdTVmNzFcdTk4OTZcdTc4NmNcdTY2MjBcdTU0ZGZcdTYyZTVcdTRmNjNcdTgxYzNcdTc1YzhcdTVlYjhcdTk2Y2RcdThl''@;'; put 'put ''MGFcdTg2ZjlcdTU0OGZcdTZjZjNcdTZkOGNcdTZjMzhcdTYwN2ZcdTUyYzdcdTc1MjhcdTVlN2RcdTRmMThcdTYwYTBcdTVmZTdcdTVjMjRcdTc1MzFcdTkwYWVcdTk0YzBcdTcyYjlcdTZjYjlcdTZlMzhcdTkxNDlcdTY3MDlcdTUzY2JcdTUzZjNcdTRmNTFcdTkxYzlcdThiZjFcdTUzYzhc''@;'; put 'put ''dTVlN2NcdThmYzJcdTZkZTRcdTRlOGVcdTc2YzJcdTY5ODZcdTg2NWVcdTYxMWFcdTgyMDZcdTRmNTlcdTRmZGVcdTkwM2VcdTljN2NcdTYxMDlcdTZlMWRcdTZlMTRcdTk2ODVcdTRlODhcdTVhMzFcdTk2ZThcdTRlMGVcdTVjN2ZcdTc5YjlcdTViODdcdThiZWRcdTdmYmRcdTczODlcdTU3''@;'; put 'put ''ZGZcdTgyOGJcdTkwYzFcdTU0MDFcdTkwNDdcdTU1YmJcdTVjZWFcdTVmYTFcdTYxMDhcdTZiMzJcdTcyZjFcdTgwYjJcdThhODlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTFdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxMV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjExXVtFXV09''@;'; put 'put ''NTQwMTYrRSxMWzU0MDE2K0VdPUJbMjExXVtFXSk7Zm9yKEJbMjEyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHU2ZDc0XHU1YmQzXHU4OGQ1XHU5ODg0XHU4YzZiXHU5YTZkXHU5ZTMzXHU2ZTBhXHU1MWE0XHU1MTQzXHU1N2EzXHU4ODgxXHU1MzlmXHU2M2Y0XHU4Zjk1XHU1NmVkXHU1NDU4XHU1NzA2XHU3MzNmXHU2ZTkwXHU3ZjE4XHU4ZmRjXHU4MmQxXHU2MTNmXHU2''@;'; put 'put ''MDI4XHU5NjYyXHU2NmYwXHU3ZWE2XHU4ZDhhXHU4ZGMzXHU5NGE1XHU1Y2IzXHU3Y2E0XHU2NzA4XHU2MGE2XHU5NjA1XHU4MDE4XHU0ZTkxXHU5MGU3XHU1MzAwXHU5NjY4XHU1MTQxXHU4ZmQwXHU4NTc0XHU5MTVkXHU2NjU1XHU5N2Y1XHU1YjU1XHU1MzFkXHU3ODM4XHU2NzQyXHU2ODNk''@;'; put 'put ''XHU1NGM5XHU3MDdlXHU1YmIwXHU4ZjdkXHU1MThkXHU1NzI4XHU1NGIxXHU2NTEyXHU2NjgyXHU4ZDVlXHU4ZDQzXHU4MTBmXHU4NDZjXHU5MDZkXHU3Y2RmXHU1MWZmXHU4NWZiXHU2N2EzXHU2NWU5XHU2ZmExXHU4NmE0XHU4ZTgxXHU1NjZhXHU5MDIwXHU3NjgyXHU3MDc2XHU3MWU1XHU4''@;'; put 'put ''ZDIzXHU2MmU5XHU1MjE5XHU2Y2ZkXHU4ZDNjXHU2MDBlXHU1ODllXHU2MThlXHU2NmZlXHU4ZDYwXHU2MjRlXHU1NWIzXHU2ZTIzXHU2NzJkXHU4ZjY3XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjEyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMTJdW0VdLmNoYXJDb2RlQXQoMCkmJiht''@;'; put 'put ''ZVtCWzIxMl1bRV1dPTU0MjcyK0UsTFs1NDI3MitFXT1CWzIxMl1bRV0pO2ZvcihCWzIxM109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTRlMVx1OTVmOFx1NzcyOFx1NjgwNVx1NjlhOFx1NTQ4Ylx1NGU0ZFx1NzBiOFx1OGJjOFx1NjQ1OFx1NjU4Ylx1NWI4NVx1N2E4NFx1NTAzYVx1NWJlOFx1NzdiYlx1NmJlMVx1OGE3OVx1N2M5OFx1NmNiZVx1NzZjZlx1NjVhOVx1''@;'; put 'put ''OGY5N1x1NWQyZFx1NWM1NVx1ODYzOFx1NjgwOFx1NTM2MFx1NjIxOFx1N2FkOVx1NmU1Ylx1N2VmZFx1NmExZlx1N2FlMFx1NWY3MFx1NmYzM1x1NWYyMFx1NjM4Y1x1NmRhOFx1Njc1Nlx1NGUwOFx1NWUxMFx1OGQyNlx1NGVkN1x1ODBjMFx1NzYzNFx1OTY5Y1x1NjJkYlx1NjYyZFx1NjI3''@;'; put 'put ''ZVx1NmNiY1x1OGQ3NVx1NzE2N1x1N2Y2OVx1NTE0Nlx1ODA4N1x1NTNlY1x1OTA2ZVx1NjI5OFx1NTRmMlx1ODZmMFx1OGY5OVx1ODAwNVx1OTUxN1x1ODUxN1x1OGZkOVx1NmQ1OVx1NzNjZFx1NjU5Zlx1NzcxZlx1NzUwNFx1NzgyN1x1ODFmYlx1OGQxZVx1OTQ4OFx1NGZhNlx1Njc5NVx1''@;'; put 'put ''NzViOVx1OGJjYVx1OTcwN1x1NjMyZlx1OTU0N1x1OTYzNVx1ODRiOFx1NjMyM1x1Nzc0MVx1NWY4MVx1NzJmMFx1NGU4OVx1NjAxNFx1NjU3NFx1NjJlZlx1NmI2M1x1NjUzZlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxM10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjEzXVtFXS5jaGFy''@;'; put 'put ''Q29kZUF0KDApJiYobWVbQlsyMTNdW0VdXT01NDUyOCtFLExbNTQ1MjgrRV09QlsyMTNdW0VdKTtmb3IoQlsyMTRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRcdTY1MmZcdTU0MzFcdTg3MThcdTc3ZTVcdTgwYTJcdTgxMDJcdTZjNDFcdTRlNGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdc''@;'; put 'put ''dTUwM2NcdTRmODRcdTU3NDBcdTYzMDdcdTZiNjJcdThkYmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgxZjRcdTdmNmVcdTVlMWNcdTVjZDlcdTUyMzZcdTY2N2FcdTc5ZTlcdTdhMWFcdThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRl''@;'; put 'put ''MmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4NzdcdTdlYzhcdTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVcdTZkMzJcdThiY2NcdTdjYTVcdThmNzRcdTgwOThcdTVlMWFcdTU0OTJcdTc2YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJc''@;'; put 'put ''dTY3MzFcdTczMmFcdThiZjhcdThiZGJcdTkwMTBcdTdhZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3ZjFcdTUyYTlcdTg2YzBcdThkMmVcdTk0ZjhcdTdiNTFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMTRdLmxlbmd0aDsrK0UpNjU1MzMhPT1C''@;'; put 'put ''WzIxNF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE0XVtFXV09NTQ3ODQrRSxMWzU0Nzg0K0VdPUJbMjE0XVtFXSk7Zm9yKEJbMjE1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU0ZjRmXHU2Y2U4XHU3OTVkXHU5YTdiXHU2MjkzXHU3MjJhXHU2MmZkXHU0ZTEzXHU3ODE2XHU4ZjZjXHU2NGIwXHU4ZDVhXHU3YmM2XHU2ODY5XHU1ZTg0XHU4OGM1XHU1OTg2XHU2NDll''@;'; put 'put ''XHU1OGVlXHU3MmI2XHU2OTBlXHU5NTI1XHU4ZmZkXHU4ZDU4XHU1NzYwXHU3ZjAwXHU4YzA2XHU1MWM2XHU2MzQ5XHU2MmQ5XHU1MzUzXHU2ODRjXHU3NDIyXHU4MzAxXHU5MTRjXHU1NTQ0XHU3NzQwXHU3MDdjXHU2ZDRhXHU1MTc5XHU1NGE4XHU4ZDQ0XHU1OWZmXHU2ZWNiXHU2ZGM0XHU1''@;'; put 'put ''YjVjXHU3ZDJiXHU0ZWQ0XHU3YzdkXHU2ZWQzXHU1YjUwXHU4MWVhXHU2ZTBkXHU1YjU3XHU5YjAzXHU2OGQ1XHU4ZTJhXHU1Yjk3XHU3ZWZjXHU2MDNiXHU3ZWI1XHU5MGI5XHU4ZDcwXHU1OTRmXHU2M2NkXHU3OWRmXHU4ZGIzXHU1MzUyXHU2NWNmXHU3OTU2XHU4YmM1XHU5NjNiXHU3ZWM0''@;'; put 'put ''XHU5NGJiXHU3ZTgyXHU1NjM0XHU5MTg5XHU2NzAwXHU3ZjZhXHU1YzBhXHU5MDc1XHU2NjI4XHU1ZGU2XHU0ZjUwXHU2N2RlXHU1MDVhXHU0ZjVjXHU1NzUwXHU1ZWE3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE1XS5sZW5ndGg7''@;'; put 'put ''KytFKTY1NTMzIT09QlsyMTVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxNV1bRV1dPTU1MDQwK0UsTFs1NTA0MCtFXT1CWzIxNV1bRV0pO2ZvcihCWzIxNl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NGU4ZFx1NGUwY1x1NTE0MFx1NGUxMFx1NWVmZlx1NTM0NVx1NGUxNVx1NGU5OFx1NGUxZVx1OWIzMlx1NWI2Y1x1NTY2OVx1NGUyOFx1NzliYVx1NGUzZlx1NTMx''@;'; put 'put ''NVx1NGU0N1x1NTkyZFx1NzIzYlx1NTM2ZVx1NmMxMFx1NTZkZlx1ODBlNFx1OTk5N1x1NmJkM1x1Nzc3ZVx1OWYxN1x1NGUzNlx1NGU5Zlx1OWYxMFx1NGU1Y1x1NGU2OVx1NGU5M1x1ODI4OFx1NWI1Ylx1NTU2Y1x1NTYwZlx1NGVjNFx1NTM4ZFx1NTM5ZFx1NTNhM1x1NTNhNVx1NTNhZVx1''@;'; put 'put ''OTc2NVx1OGQ1ZFx1NTMxYVx1NTNmNVx1NTMyNlx1NTMyZVx1NTMzZVx1OGQ1Y1x1NTM2Nlx1NTM2M1x1NTIwMlx1NTIwOFx1NTIwZVx1NTIyZFx1NTIzM1x1NTIzZlx1NTI0MFx1NTI0Y1x1NTI1ZVx1NTI2MVx1NTI1Y1x1ODRhZlx1NTI3ZFx1NTI4Mlx1NTI4MVx1NTI5MFx1NTI5M1x1NTE4''@;'; put 'put ''Mlx1N2Y1NFx1NGViYlx1NGVjM1x1NGVjOVx1NGVjMlx1NGVlOFx1NGVlMVx1NGVlYlx1NGVkZVx1NGYxYlx1NGVmM1x1NGYyMlx1NGY2NFx1NGVmNVx1NGYyNVx1NGYyN1x1NGYwOVx1NGYyYlx1NGY1ZVx1NGY2N1x1NjUzOFx1NGY1YVx1NGY1ZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1C''@;'; put 'put ''WzIxNl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTZdW0VdXT01NTI5NitFLExbNTUyOTYrRV09QlsyMTZdW0VdKTtmb3IoQlsyMTddPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTRmNWZcdTRmNTdcdTRmMzJcdTRmM2RcdTRmNzZcdTRmNzRcdTRmOTFcdTRmODlcdTRmODNcdTRmOGZcdTRmN2VcdTRmN2JcdTRmYWFcdTRm''@;'; put 'put ''N2NcdTRmYWNcdTRmOTRcdTRmZTZcdTRmZThcdTRmZWFcdTRmYzVcdTRmZGFcdTRmZTNcdTRmZGNcdTRmZDFcdTRmZGZcdTRmZjhcdTUwMjlcdTUwNGNcdTRmZjNcdTUwMmNcdTUwMGZcdTUwMmVcdTUwMmRcdTRmZmVcdTUwMWNcdTUwMGNcdTUwMjVcdTUwMjhcdTUwN2VcdTUwNDNcdTUwNTVc''@;'; put 'put ''dTUwNDhcdTUwNGVcdTUwNmNcdTUwN2JcdTUwYTVcdTUwYTdcdTUwYTlcdTUwYmFcdTUwZDZcdTUxMDZcdTUwZWRcdTUwZWNcdTUwZTZcdTUwZWVcdTUxMDdcdTUxMGJcdTRlZGRcdTZjM2RcdTRmNThcdTRmNjVcdTRmY2VcdTlmYTBcdTZjNDZcdTdjNzRcdTUxNmVcdTVkZmRcdTllYzlcdTk5''@;'; put 'put ''OThcdTUxODFcdTU5MTRcdTUyZjlcdTUzMGRcdThhMDdcdTUzMTBcdTUxZWJcdTU5MTlcdTUxNTVcdTRlYTBcdTUxNTZcdTRlYjNcdTg4NmVcdTg4YTRcdTRlYjVcdTgxMTRcdTg4ZDJcdTc5ODBcdTViMzRcdTg4MDNcdTdmYjhcdTUxYWJcdTUxYjFcdTUxYmRcdTUxYmNcdWZmZmQiLnNwbGl0''@;'; put 'put ''KCIiKSxFPTA7RSE9QlsyMTddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIxN11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjE3XVtFXV09NTU1NTIrRSxMWzU1NTUyK0VdPUJbMjE3XVtFXSk7Zm9yKEJbMjE4XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1MWM3XHU1MTk2XHU1MWEyXHU1MWE1XHU4YmEwXHU4YmE2XHU4YmE3XHU4YmFhXHU4YmI0XHU4YmI1XHU4YmI3XHU4''@;'; put 'put ''YmMyXHU4YmMzXHU4YmNiXHU4YmNmXHU4YmNlXHU4YmQyXHU4YmQzXHU4YmQ0XHU4YmQ2XHU4YmQ4XHU4YmQ5XHU4YmRjXHU4YmRmXHU4YmUwXHU4YmU0XHU4YmU4XHU4YmU5XHU4YmVlXHU4YmYwXHU4YmYzXHU4YmY2XHU4YmY5XHU4YmZjXHU4YmZmXHU4YzAwXHU4YzAyXHU4YzA0XHU4YzA3''@;'; put 'put ''XHU4YzBjXHU4YzBmXHU4YzExXHU4YzEyXHU4YzE0XHU4YzE1XHU4YzE2XHU4YzE5XHU4YzFiXHU4YzE4XHU4YzFkXHU4YzFmXHU4YzIwXHU4YzIxXHU4YzI1XHU4YzI3XHU4YzJhXHU4YzJiXHU4YzJlXHU4YzJmXHU4YzMyXHU4YzMzXHU4YzM1XHU4YzM2XHU1MzY5XHU1MzdhXHU5NjFkXHU5''@;'; put 'put ''NjIyXHU5NjIxXHU5NjMxXHU5NjJhXHU5NjNkXHU5NjNjXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVmXHU5NjY3XHU5NjZjXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhkXHU5Njk3XHU5NmIwXHU5MDk3XHU5MDliXHU5MDlkXHU5MDk5XHU5MGFjXHU5MGExXHU5MGI0XHU5MGIzXHU5MGI2XHU5MGJh''@;'; put 'put ''XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjE4XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMThdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIxOF1bRV1dPTU1ODA4K0UsTFs1NTgwOCtFXT1CWzIxOF1bRV0pO2ZvcihCWzIxOV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1''@;'; put 'put ''OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1OTBkYlx1OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIwZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNk''@;'; put 'put ''Zlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFmNVx1NTFmY1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThjNVx1NThkMVx1NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1''@;'; put 'put ''NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1NTc3Y1x1NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1NTdiNFx1NTc5M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdm''@;'; put 'put ''OFx1NTdlNFx1NTdkZFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIxOV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjE5XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMTldW0VdXT01NjA2NCtFLExbNTYwNjQrRV09QlsyMTldW0VdKTtmb3IoQlsyMjBdPSJcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4MWVcdTU4MTlc''@;'; put 'put ''dTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNcdTU4ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlcdTYxZmZcdTgyNzlcdTgyN2RcdTgyN2ZcdTgyOGZcdTgyOGFcdTgyYThcdTgyODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBcdTgyYzhcdTgy''@;'; put 'put ''Y2FcdTgyZTNcdTgyOThcdTgyYjdcdTgyYWVcdTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgyYTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgyY2VcdTgyYTRcdTgyZTFcdTgzMDlcdTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgzMGNcdTgyZmJc''@;'; put 'put ''dTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZcdTgzMTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFcdTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJcdTgzM2NcdTgzMzRcdTgzMzFcdTgzOWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdcdTgzNjBcdTgz''@;'; put 'put ''MmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgzNjVcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjBdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyMF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIwXVtFXV09NTYzMjArRSxMWzU2MzIwK0VdPUJbMjIwXVtFXSk7Zm9yKEJbMjIxXT0iXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU4MzY4XHU4MzFiXHU4MzY5XHU4MzZjXHU4MzZh''@;'; put 'put ''XHU4MzZkXHU4MzZlXHU4M2IwXHU4Mzc4XHU4M2IzXHU4M2I0XHU4M2EwXHU4M2FhXHU4MzkzXHU4MzljXHU4Mzg1XHU4MzdjXHU4M2I2XHU4M2E5XHU4MzdkXHU4M2I4XHU4MzdiXHU4Mzk4XHU4MzllXHU4M2E4XHU4M2JhXHU4M2JjXHU4M2MxXHU4NDAxXHU4M2U1XHU4M2Q4XHU1ODA3XHU4''@;'; put 'put ''NDE4XHU4NDBiXHU4M2RkXHU4M2ZkXHU4M2Q2XHU4NDFjXHU4NDM4XHU4NDExXHU4NDA2XHU4M2Q0XHU4M2RmXHU4NDBmXHU4NDAzXHU4M2Y4XHU4M2Y5XHU4M2VhXHU4M2M1XHU4M2MwXHU4NDI2XHU4M2YwXHU4M2UxXHU4NDVjXHU4NDUxXHU4NDVhXHU4NDU5XHU4NDczXHU4NDg3XHU4NDg4''@;'; put 'put ''XHU4NDdhXHU4NDg5XHU4NDc4XHU4NDNjXHU4NDQ2XHU4NDY5XHU4NDc2XHU4NDhjXHU4NDhlXHU4NDMxXHU4NDZkXHU4NGMxXHU4NGNkXHU4NGQwXHU4NGU2XHU4NGJkXHU4NGQzXHU4NGNhXHU4NGJmXHU4NGJhXHU4NGUwXHU4NGExXHU4NGI5XHU4NGI0XHU4NDk3XHU4NGU1XHU4NGUzXHU4''@;'; put 'put ''NTBjXHU3NTBkXHU4NTM4XHU4NGYwXHU4NTM5XHU4NTFmXHU4NTNhXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjIxXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjFdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyMV1bRV1dPTU2NTc2K0UsTFs1NjU3NitFXT1CWzIyMV1bRV0pO2ZvcihC''@;'; put 'put ''WzIyMl09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODU1Nlx1ODUzYlx1ODRm''@;'; put 'put ''Zlx1ODRmY1x1ODU1OVx1ODU0OFx1ODU2OFx1ODU2NFx1ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1ODVhZVx1ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1''@;'; put 'put ''ODYwNVx1ODYyOVx1ODYxNlx1ODYzY1x1NWVmZVx1NWYwOFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMzNFx1NjI0Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMz''@;'; put 'put ''OVx1NjM0Ylx1NjM0M1x1NjNhZFx1NjNmNlx1NjM3MVx1NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1NjNlMFx1NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1''@;'; put 'put ''NjQxYlx1NjQyMFx1NjQwY1x1NjQyNlx1NjQyMVx1NjQ1ZVx1NjQ4NFx1NjQ2ZFx1NjQ5Nlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyMl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjIyXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjJdW0VdXT01NjgzMitFLExbNTY4MzIrRV09Qlsy''@;'; put 'put ''MjJdW0VdKTtmb3IoQlsyMjNdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0''@;'; put 'put ''N2FcdTY0YjdcdTY0YjhcdTY0OTlcdTY0YmFcdTY0YzBcdTY0ZDBcdTY0ZDdcdTY0ZTRcdTY0ZTJcdTY1MDlcdTY1MjVcdTY1MmVcdTVmMGJcdTVmZDJcdTc1MTlcdTVmMTFcdTUzNWZcdTUzZjFcdTUzZmRcdTUzZTlcdTUzZThcdTUzZmJcdTU0MTJcdTU0MTZcdTU0MDZcdTU0NGJcdTU0NTJc''@;'; put 'put ''dTU0NTNcdTU0NTRcdTU0NTZcdTU0NDNcdTU0MjFcdTU0NTdcdTU0NTlcdTU0MjNcdTU0MzJcdTU0ODJcdTU0OTRcdTU0NzdcdTU0NzFcdTU0NjRcdTU0OWFcdTU0OWJcdTU0ODRcdTU0NzZcdTU0NjZcdTU0OWRcdTU0ZDBcdTU0YWRcdTU0YzJcdTU0YjRcdTU0ZDJcdTU0YTdcdTU0YTZcdTU0''@;'; put 'put ''ZDNcdTU0ZDRcdTU0NzJcdTU0YTNcdTU0ZDVcdTU0YmJcdTU0YmZcdTU0Y2NcdTU0ZDlcdTU0ZGFcdTU0ZGNcdTU0YTlcdTU0YWFcdTU0YTRcdTU0ZGRcdTU0Y2ZcdTU0ZGVcdTU1MWJcdTU0ZTdcdTU1MjBcdTU0ZmRcdTU1MTRcdTU0ZjNcdTU1MjJcdTU1MjNcdTU1MGZcdTU1MTFcdTU1Mjdc''@;'; put 'put ''dTU1MmFcdTU1NjdcdTU1OGZcdTU1YjVcdTU1NDlcdTU1NmRcdTU1NDFcdTU1NTVcdTU1M2ZcdTU1NTBcdTU1M2NcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjNdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyM11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjIzXVtFXV09NTcwODgrRSxM''@;'; put 'put ''WzU3MDg4K0VdPUJbMjIzXVtFXSk7Zm9yKEJbMjI0XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHU1NTM3XHU1NTU2XHU1NTc1XHU1NTc2XHU1NTc3XHU1NTMzXHU1NTMwXHU1NTVjXHU1NThiXHU1NWQyXHU1NTgzXHU1NWIxXHU1NWI5XHU1NTg4XHU1NTgxXHU1NTlmXHU1NTdlXHU1NWQ2XHU1NTkxXHU1NTdiXHU1NWRmXHU1NWJkXHU1NWJlXHU1NTk0XHU1NTk5XHU1NWVh''@;'; put 'put ''XHU1NWY3XHU1NWM5XHU1NjFmXHU1NWQxXHU1NWViXHU1NWVjXHU1NWQ0XHU1NWU2XHU1NWRkXHU1NWM0XHU1NWVmXHU1NWU1XHU1NWYyXHU1NWYzXHU1NWNjXHU1NWNkXHU1NWU4XHU1NWY1XHU1NWU0XHU4Zjk0XHU1NjFlXHU1NjA4XHU1NjBjXHU1NjAxXHU1NjI0XHU1NjIzXHU1NWZlXHU1''@;'; put 'put ''NjAwXHU1NjI3XHU1NjJkXHU1NjU4XHU1NjM5XHU1NjU3XHU1NjJjXHU1NjRkXHU1NjYyXHU1NjU5XHU1NjVjXHU1NjRjXHU1NjU0XHU1Njg2XHU1NjY0XHU1NjcxXHU1NjZiXHU1NjdiXHU1NjdjXHU1Njg1XHU1NjkzXHU1NmFmXHU1NmQ0XHU1NmQ3XHU1NmRkXHU1NmUxXHU1NmY1XHU1NmVi''@;'; put 'put ''XHU1NmY5XHU1NmZmXHU1NzA0XHU1NzBhXHU1NzA5XHU1NzFjXHU1ZTBmXHU1ZTE5XHU1ZTE0XHU1ZTExXHU1ZTMxXHU1ZTNiXHU1ZTNjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI0XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMjRdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyNF1b''@;'; put 'put ''RV1dPTU3MzQ0K0UsTFs1NzM0NCtFXT1CWzIyNF1bRV0pO2ZvcihCWzIyNV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NWUzN1x1NWU0NFx1NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1NWM4OFx1NWM5OFx1NWM5OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNiMVx1NWNh''@;'; put 'put ''M1x1NWNjMVx1NWNiN1x1NWNjNFx1NWNkMlx1NWNlNFx1NWNjYlx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQwNlx1NWQxYlx1NWQ1OFx1NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1NWQ0YVx1''@;'; put 'put ''NWQ2OVx1NWQ3NFx1NWQ4Mlx1NWQ5OVx1NWQ5ZFx1OGM3M1x1NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1NWY5OVx1NWY5Y1x1NWZhOFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJiN1x1NzJi''@;'; put 'put ''OFx1NzJjM1x1NzJjMVx1NzJjZVx1NzJjZFx1NzJkMlx1NzJlOFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJmYVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyNV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjI1XVtFXS5jaGFyQ29kZUF0KDAp''@;'; put 'put ''JiYobWVbQlsyMjVdW0VdXT01NzYwMCtFLExbNTc2MDArRV09QlsyMjVdW0VdKTtmb3IoQlsyMjZdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTcyZmJcdTczMTdcdTczMTNcdTczMjFcdTczMGFcdTczMWVcdTczMWRcdTczMTVcdTczMjJcdTczMzlcdTczMjVcdTczMmNcdTczMzhcdTczMzFcdTczNTBcdTczNGRcdTczNTdcdTczNjBcdTczNmNcdTczNmZcdTczN2VcdTgy''@;'; put 'put ''MWJcdTU5MjVcdTk4ZTdcdTU5MjRcdTU5MDJcdTk5NjNcdTk5NjdcdTk5NjhcdTk5NjlcdTk5NmFcdTk5NmJcdTk5NmNcdTk5NzRcdTk5NzdcdTk5N2RcdTk5ODBcdTk5ODRcdTk5ODdcdTk5OGFcdTk5OGRcdTk5OTBcdTk5OTFcdTk5OTNcdTk5OTRcdTk5OTVcdTVlODBcdTVlOTFcdTVlOGJc''@;'; put 'put ''dTVlOTZcdTVlYTVcdTVlYTBcdTVlYjlcdTVlYjVcdTVlYmVcdTVlYjNcdThkNTNcdTVlZDJcdTVlZDFcdTVlZGJcdTVlZThcdTVlZWFcdTgxYmFcdTVmYzRcdTVmYzlcdTVmZDZcdTVmY2ZcdTYwMDNcdTVmZWVcdTYwMDRcdTVmZTFcdTVmZTRcdTVmZmVcdTYwMDVcdTYwMDZcdTVmZWFcdTVm''@;'; put 'put ''ZWRcdTVmZjhcdTYwMTlcdTYwMzVcdTYwMjZcdTYwMWJcdTYwMGZcdTYwMGRcdTYwMjlcdTYwMmJcdTYwMGFcdTYwM2ZcdTYwMjFcdTYwNzhcdTYwNzlcdTYwN2JcdTYwN2FcdTYwNDJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMjZdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyNl1bRV0u''@;'; put 'put ''Y2hhckNvZGVBdCgwKSYmKG1lW0JbMjI2XVtFXV09NTc4NTYrRSxMWzU3ODU2K0VdPUJbMjI2XVtFXSk7Zm9yKEJbMjI3XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2MDZhXHU2MDdkXHU2MDk2XHU2MDlhXHU2MGFkXHU2MDlkXHU2MDgzXHU2MDkyXHU2MDhjXHU2MDliXHU2MGVjXHU2MGJiXHU2MGIxXHU2MGRkXHU2MGQ4XHU2MGM2XHU2MGRhXHU2MGI0XHU2MTIwXHU2''@;'; put 'put ''MTI2XHU2MTE1XHU2MTIzXHU2MGY0XHU2MTAwXHU2MTBlXHU2MTJiXHU2MTRhXHU2MTc1XHU2MWFjXHU2MTk0XHU2MWE3XHU2MWI3XHU2MWQ0XHU2MWY1XHU1ZmRkXHU5NmIzXHU5NWU5XHU5NWViXHU5NWYxXHU5NWYzXHU5NWY1XHU5NWY2XHU5NWZjXHU5NWZlXHU5NjAzXHU5NjA0XHU5NjA2''@;'; put 'put ''XHU5NjA4XHU5NjBhXHU5NjBiXHU5NjBjXHU5NjBkXHU5NjBmXHU5NjEyXHU5NjE1XHU5NjE2XHU5NjE3XHU5NjE5XHU5NjFhXHU0ZTJjXHU3MjNmXHU2MjE1XHU2YzM1XHU2YzU0XHU2YzVjXHU2YzRhXHU2Y2EzXHU2Yzg1XHU2YzkwXHU2Yzk0XHU2YzhjXHU2YzY4XHU2YzY5XHU2Yzc0XHU2''@;'; put 'put ''Yzc2XHU2Yzg2XHU2Y2E5XHU2Y2QwXHU2Y2Q0XHU2Y2FkXHU2Y2Y3XHU2Y2Y4XHU2Y2YxXHU2Y2Q3XHU2Y2IyXHU2Y2UwXHU2Y2Q2XHU2Y2ZhXHU2Y2ViXHU2Y2VlXHU2Y2IxXHU2Y2QzXHU2Y2VmXHU2Y2ZlXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjI3XS5sZW5ndGg7KytFKTY1NTMz''@;'; put 'put ''IT09QlsyMjddW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIyN11bRV1dPTU4MTEyK0UsTFs1ODExMitFXT1CWzIyN11bRV0pO2ZvcihCWzIyOF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQwN1x1NmQwNFx1NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1''@;'; put 'put ''NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1NmRhMFx1NmQ1ZVx1NmQ5M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1NmUwZVx1NmRiZlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUy''@;'; put 'put ''Ylx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmViMlx1NmU1Zlx1NmU4Nlx1NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYyZFx1NmVlMlx1NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1''@;'; put 'put ''NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1NmYyNFx1NmYxNVx1NmVmOVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1NmY4Y1x1NmY3OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIyOF0ubGVu''@;'; put 'put ''Z3RoOysrRSk2NTUzMyE9PUJbMjI4XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMjhdW0VdXT01ODM2OCtFLExbNTgzNjgrRV09QlsyMjhdW0VdKTtmb3IoQlsyMjldPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTZmYzlcdTZmYTdcdTZmYjlcdTZmYjZcdTZmYzJcdTZmZTFcdTZmZWVcdTZmZGVcdTZmZTBcdTZmZWZcdTcwMWFcdTcwMjNcdTcwMWJcdTcwMzlcdTcwMzVc''@;'; put 'put ''dTcwNGZcdTcwNWVcdTViODBcdTViODRcdTViOTVcdTViOTNcdTViYTVcdTViYjhcdTc1MmZcdTlhOWVcdTY0MzRcdTViZTRcdTViZWVcdTg5MzBcdTViZjBcdThlNDdcdThiMDdcdThmYjZcdThmZDNcdThmZDVcdThmZTVcdThmZWVcdThmZTRcdThmZTlcdThmZTZcdThmZjNcdThmZThcdTkw''@;'; put 'put ''MDVcdTkwMDRcdTkwMGJcdTkwMjZcdTkwMTFcdTkwMGRcdTkwMTZcdTkwMjFcdTkwMzVcdTkwMzZcdTkwMmRcdTkwMmZcdTkwNDRcdTkwNTFcdTkwNTJcdTkwNTBcdTkwNjhcdTkwNThcdTkwNjJcdTkwNWJcdTY2YjlcdTkwNzRcdTkwN2RcdTkwODJcdTkwODhcdTkwODNcdTkwOGJcdTVmNTBc''@;'; put 'put ''dTVmNTdcdTVmNTZcdTVmNThcdTVjM2JcdTU0YWJcdTVjNTBcdTVjNTlcdTViNzFcdTVjNjNcdTVjNjZcdTdmYmNcdTVmMmFcdTVmMjlcdTVmMmRcdTgyNzRcdTVmM2NcdTliM2JcdTVjNmVcdTU5ODFcdTU5ODNcdTU5OGRcdTU5YTlcdTU5YWFcdTU5YTNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7''@;'; put 'put ''RSE9QlsyMjldLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIyOV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjI5XVtFXV09NTg2MjQrRSxMWzU4NjI0K0VdPUJbMjI5XVtFXSk7Zm9yKEJbMjMwXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU1OTk3XHU1OWNhXHU1OWFiXHU1OTllXHU1OWE0XHU1OWQyXHU1OWIyXHU1OWFmXHU1OWQ3XHU1OWJlXHU1YTA1XHU1YTA2XHU1OWRk''@;'; put 'put ''XHU1YTA4XHU1OWUzXHU1OWQ4XHU1OWY5XHU1YTBjXHU1YTA5XHU1YTMyXHU1YTM0XHU1YTExXHU1YTIzXHU1YTEzXHU1YTQwXHU1YTY3XHU1YTRhXHU1YTU1XHU1YTNjXHU1YTYyXHU1YTc1XHU4MGVjXHU1YWFhXHU1YTliXHU1YTc3XHU1YTdhXHU1YWJlXHU1YWViXHU1YWIyXHU1YWQyXHU1''@;'; put 'put ''YWQ0XHU1YWI4XHU1YWUwXHU1YWUzXHU1YWYxXHU1YWQ2XHU1YWU2XHU1YWQ4XHU1YWRjXHU1YjA5XHU1YjE3XHU1YjE2XHU1YjMyXHU1YjM3XHU1YjQwXHU1YzE1XHU1YzFjXHU1YjVhXHU1YjY1XHU1YjczXHU1YjUxXHU1YjUzXHU1YjYyXHU5YTc1XHU5YTc3XHU5YTc4XHU5YTdhXHU5YTdm''@;'; put 'put ''XHU5YTdkXHU5YTgwXHU5YTgxXHU5YTg1XHU5YTg4XHU5YThhXHU5YTkwXHU5YTkyXHU5YTkzXHU5YTk2XHU5YTk4XHU5YTliXHU5YTljXHU5YTlkXHU5YTlmXHU5YWEwXHU5YWEyXHU5YWEzXHU5YWE1XHU5YWE3XHU3ZTlmXHU3ZWExXHU3ZWEzXHU3ZWE1XHU3ZWE4XHU3ZWE5XHVmZmZkIi5z''@;'; put 'put ''cGxpdCgiIiksRT0wO0UhPUJbMjMwXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzBdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzMF1bRV1dPTU4ODgwK0UsTFs1ODg4MCtFXT1CWzIzMF1bRV0pO2ZvcihCWzIzMV09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2VhZFx1N2ViMFx1N2ViZVx1N2VjMFx1N2VjMVx1N2VjMlx1N2VjOVx1N2VjYlx1N2VjY1x1N2VkMFx1N2Vk''@;'; put 'put ''NFx1N2VkN1x1N2VkYlx1N2VlMFx1N2VlMVx1N2VlOFx1N2VlYlx1N2VlZVx1N2VlZlx1N2VmMVx1N2VmMlx1N2YwZFx1N2VmNlx1N2VmYVx1N2VmYlx1N2VmZVx1N2YwMVx1N2YwMlx1N2YwM1x1N2YwN1x1N2YwOFx1N2YwYlx1N2YwY1x1N2YwZlx1N2YxMVx1N2YxMlx1N2YxN1x1N2YxOVx1''@;'; put 'put ''N2YxY1x1N2YxYlx1N2YxZlx1N2YyMVx1N2YyMlx1N2YyM1x1N2YyNFx1N2YyNVx1N2YyNlx1N2YyN1x1N2YyYVx1N2YyYlx1N2YyY1x1N2YyZFx1N2YyZlx1N2YzMFx1N2YzMVx1N2YzMlx1N2YzM1x1N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNh''@;'; put 'put ''ZVx1NzNhMlx1NzM5Zlx1NzNjZlx1NzNjMlx1NzNkMVx1NzNiN1x1NzNiM1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1NzNiYVx1NzNmMlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1''@;'; put 'put ''NzQyY1x1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzMV0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjMxXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzFdW0VdXT01OTEzNitFLExbNTkxMzYrRV09QlsyMzFdW0VdKTtmb3IoQlsyMzJdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc0MWJcdTc0MWFcdTc0NDFcdTc0NWNcdTc0NTdcdTc0NTVcdTc0NTlcdTc0NzdcdTc0''@;'; put 'put ''NmRcdTc0N2VcdTc0OWNcdTc0OGVcdTc0ODBcdTc0ODFcdTc0ODdcdTc0OGJcdTc0OWVcdTc0YThcdTc0YTlcdTc0OTBcdTc0YTdcdTc0ZDJcdTc0YmFcdTk3ZWFcdTk3ZWJcdTk3ZWNcdTY3NGNcdTY3NTNcdTY3NWVcdTY3NDhcdTY3NjlcdTY3YTVcdTY3ODdcdTY3NmFcdTY3NzNcdTY3OThc''@;'; put 'put ''dTY3YTdcdTY3NzVcdTY3YThcdTY3OWVcdTY3YWRcdTY3OGJcdTY3NzdcdTY3N2NcdTY3ZjBcdTY4MDlcdTY3ZDhcdTY4MGFcdTY3ZTlcdTY3YjBcdTY4MGNcdTY3ZDlcdTY3YjVcdTY3ZGFcdTY3YjNcdTY3ZGRcdTY4MDBcdTY3YzNcdTY3YjhcdTY3ZTJcdTY4MGVcdTY3YzFcdTY3ZmRcdTY4''@;'; put 'put ''MzJcdTY4MzNcdTY4NjBcdTY4NjFcdTY4NGVcdTY4NjJcdTY4NDRcdTY4NjRcdTY4ODNcdTY4MWRcdTY4NTVcdTY4NjZcdTY4NDFcdTY4NjdcdTY4NDBcdTY4M2VcdTY4NGFcdTY4NDlcdTY4MjlcdTY4YjVcdTY4OGZcdTY4NzRcdTY4NzdcdTY4OTNcdTY4NmJcdTY4YzJcdTY5NmVcdTY4ZmNc''@;'; put 'put ''dTY5MWZcdTY5MjBcdTY4ZjlcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzJdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzMl1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjMyXVtFXV09NTkzOTIrRSxMWzU5MzkyK0VdPUJbMjMyXVtFXSk7Zm9yKEJbMjMzXT0iXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU2OTI0XHU2OGYwXHU2OTBiXHU2OTAxXHU2OTU3XHU2OGUzXHU2''@;'; put 'put ''OTEwXHU2OTcxXHU2OTM5XHU2OTYwXHU2OTQyXHU2OTVkXHU2OTg0XHU2OTZiXHU2OTgwXHU2OTk4XHU2OTc4XHU2OTM0XHU2OWNjXHU2OTg3XHU2OTg4XHU2OWNlXHU2OTg5XHU2OTY2XHU2OTYzXHU2OTc5XHU2OTliXHU2OWE3XHU2OWJiXHU2OWFiXHU2OWFkXHU2OWQ0XHU2OWIxXHU2OWMx''@;'; put 'put ''XHU2OWNhXHU2OWRmXHU2OTk1XHU2OWUwXHU2OThkXHU2OWZmXHU2YTJmXHU2OWVkXHU2YTE3XHU2YTE4XHU2YTY1XHU2OWYyXHU2YTQ0XHU2YTNlXHU2YWEwXHU2YTUwXHU2YTViXHU2YTM1XHU2YThlXHU2YTc5XHU2YTNkXHU2YTI4XHU2YTU4XHU2YTdjXHU2YTkxXHU2YTkwXHU2YWE5XHU2''@;'; put 'put ''YTk3XHU2YWFiXHU3MzM3XHU3MzUyXHU2YjgxXHU2YjgyXHU2Yjg3XHU2Yjg0XHU2YjkyXHU2YjkzXHU2YjhkXHU2YjlhXHU2YjliXHU2YmExXHU2YmFhXHU4ZjZiXHU4ZjZkXHU4ZjcxXHU4ZjcyXHU4ZjczXHU4Zjc1XHU4Zjc2XHU4Zjc4XHU4Zjc3XHU4Zjc5XHU4ZjdhXHU4ZjdjXHU4Zjdl''@;'; put 'put ''XHU4ZjgxXHU4ZjgyXHU4Zjg0XHU4Zjg3XHU4ZjhiXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjMzXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzNdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzM11bRV1dPTU5NjQ4K0UsTFs1OTY0OCtFXT1CWzIzM11bRV0pO2ZvcihCWzIzNF09Ilx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1OGY4ZFx1OGY4ZVx1OGY4Zlx1OGY5OFx1''@;'; put 'put ''OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1NjIxYlx1NjIxZlx1NjIyMlx1NjIyMVx1NjIyNVx1NjIyNFx1NjIyY1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRmZlx1NzUwZlx1NzUxMVx1NzUxM1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYxNVx1NjYw''@;'; put 'put ''MFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYzNFx1NjYzMVx1NjYzNlx1NjYzNVx1ODAwNlx1NjY1Zlx1NjY1NFx1NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1NjY1N1x1NjY3N1x1NjY4NFx1NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1OGQzM1x1''@;'; put 'put ''OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1OGQ0NVx1OGQ0Nlx1OGQ0OFx1OGQ0OVx1OGQ0N1x1OGQ0ZFx1OGQ1NVx1OGQ1OVx1ODljN1x1ODljYVx1ODljYlx1ODljY1x1ODljZVx1ODljZlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3Zlx1NzI4''@;'; put 'put ''NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5Mlx1NjMwOFx1NjMzMlx1NjNiMFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzNF0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM0XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyMzRdW0VdXT01OTkwNCtFLExbNTk5MDQrRV09QlsyMzRdW0VdKTtm''@;'; put 'put ''b3IoQlsyMzVdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTY0M2ZcdTY0ZDhc''@;'; put 'put ''dTgwMDRcdTZiZWFcdTZiZjNcdTZiZmRcdTZiZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZjMjFcdTZjMjlcdTZjMjRcdTZjMmFcdTZjMzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUy''@;'; put 'put ''MTZcdTgwOWZcdTgwOWNcdTgwOTNcdTgwYmNcdTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlcdTgwZWFcdTgwZGJcdTgwYzJcdTgwYzRcdTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRc''@;'; put 'put ''dTgxMGRcdTgxMGVcdTgwZjJcdTgwZmNcdTY3MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgxNTNcdTgxNzRcdTgxNTlcdTgxNWFcdTgxNzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgx''@;'; put 'put ''ODhcdTgxODJcdTgxOTFcdTZlZDVcdTgxYTNcdTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmJcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzVdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzNV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjM1XVtFXV09NjAxNjArRSxMWzYwMTYwK0Vd''@;'; put 'put ''PUJbMjM1XVtFXSk7Zm9yKEJbMjM2XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHU4MWMxXHU4MWE2XHU2YjI0XHU2YjM3XHU2YjM5XHU2YjQzXHU2YjQ2XHU2YjU5XHU5OGQxXHU5OGQyXHU5OGQzXHU5OGQ1XHU5OGQ5XHU5OGRhXHU2YmIzXHU1ZjQwXHU2YmMyXHU4OWYzXHU2NTkwXHU5ZjUxXHU2NTkzXHU2NWJjXHU2NWM2XHU2NWM0XHU2NWMzXHU2NWNjXHU2NWNlXHU2''@;'; put 'put ''NWQyXHU2NWQ2XHU3MDgwXHU3MDljXHU3MDk2XHU3MDlkXHU3MGJiXHU3MGMwXHU3MGI3XHU3MGFiXHU3MGIxXHU3MGU4XHU3MGNhXHU3MTEwXHU3MTEzXHU3MTE2XHU3MTJmXHU3MTMxXHU3MTczXHU3MTVjXHU3MTY4XHU3MTQ1XHU3MTcyXHU3MTRhXHU3MTc4XHU3MTdhXHU3MTk4XHU3MWIz''@;'; put 'put ''XHU3MWI1XHU3MWE4XHU3MWEwXHU3MWUwXHU3MWQ0XHU3MWU3XHU3MWY5XHU3MjFkXHU3MjI4XHU3MDZjXHU3MTE4XHU3MTY2XHU3MWI5XHU2MjNlXHU2MjNkXHU2MjQzXHU2MjQ4XHU2MjQ5XHU3OTNiXHU3OTQwXHU3OTQ2XHU3OTQ5XHU3OTViXHU3OTVjXHU3OTUzXHU3OTVhXHU3OTYyXHU3''@;'; put 'put ''OTU3XHU3OTYwXHU3OTZmXHU3OTY3XHU3OTdhXHU3OTg1XHU3OThhXHU3OTlhXHU3OWE3XHU3OWIzXHU1ZmQxXHU1ZmQwXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM2XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzZdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzNl1bRV1dPTYwNDE2''@;'; put 'put ''K0UsTFs2MDQxNitFXT1CWzIzNl1bRV0pO2ZvcihCWzIzN109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1NjAzY1x1NjA1ZFx1NjA1YVx1NjA2N1x1NjA0MVx1NjA1OVx1NjA2M1x1NjBhYlx1NjEwNlx1NjEwZFx1NjE1ZFx1NjFhOVx1NjE5ZFx1NjFjYlx1NjFkMVx1NjIwNlx1ODA4MFx1ODA3Zlx1NmM5M1x1NmNmNlx1NmRmY1x1NzdmNlx1NzdmOFx1NzgwMFx1NzgwOVx1''@;'; put 'put ''NzgxN1x1NzgxOFx1NzgxMVx1NjVhYlx1NzgyZFx1NzgxY1x1NzgxZFx1NzgzOVx1NzgzYVx1NzgzYlx1NzgxZlx1NzgzY1x1NzgyNVx1NzgyY1x1NzgyM1x1NzgyOVx1Nzg0ZVx1Nzg2ZFx1Nzg1Nlx1Nzg1N1x1NzgyNlx1Nzg1MFx1Nzg0N1x1Nzg0Y1x1Nzg2YVx1Nzg5Ylx1Nzg5M1x1Nzg5''@;'; put 'put ''YVx1Nzg4N1x1Nzg5Y1x1NzhhMVx1NzhhM1x1NzhiMlx1NzhiOVx1NzhhNVx1NzhkNFx1NzhkOVx1NzhjOVx1NzhlY1x1NzhmMlx1NzkwNVx1NzhmNFx1NzkxM1x1NzkyNFx1NzkxZVx1NzkzNFx1OWY5Ylx1OWVmOVx1OWVmYlx1OWVmY1x1NzZmMVx1NzcwNFx1NzcwZFx1NzZmOVx1NzcwN1x1''@;'; put 'put ''NzcwOFx1NzcxYVx1NzcyMlx1NzcxOVx1NzcyZFx1NzcyNlx1NzczNVx1NzczOFx1Nzc1MFx1Nzc1MVx1Nzc0N1x1Nzc0M1x1Nzc1YVx1Nzc2OFx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzIzN10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjM3XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsy''@;'; put 'put ''MzddW0VdXT02MDY3MitFLExbNjA2NzIrRV09QlsyMzddW0VdKTtmb3IoQlsyMzhdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBcdTc3YjBcdTc3YjVcdTc3YmRcdTc1M2FcdTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThc''@;'; put 'put ''dTdmNjFcdTdmNWZcdThhNDhcdTdmNjhcdTdmNzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0ODdcdTk0OGJcdTk0OGFcdTk0OGNcdTk0OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0''@;'; put 'put ''YTNcdTk0YTRcdTk0YWJcdTk0YWFcdTk0YWRcdTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjZcdTk0YjdcdTk0YjhcdTk0YjlcdTk0YmFcdTk0YmNcdTk0YmRcdTk0YmZcdTk0YzRcdTk0YzhcdTk0YzlcdTk0Y2FcdTk0Y2JcdTk0Y2NcdTk0Y2RcdTk0Y2VcdTk0ZDBcdTk0ZDFc''@;'; put 'put ''dTk0ZDJcdTk0ZDVcdTk0ZDZcdTk0ZDdcdTk0ZDlcdTk0ZDhcdTk0ZGJcdTk0ZGVcdTk0ZGZcdTk0ZTBcdTk0ZTJcdTk0ZTRcdTk0ZTVcdTk0ZTdcdTk0ZThcdTk0ZWFcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyMzhdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzIzOF1bRV0uY2hhckNvZGVB''@;'; put 'put ''dCgwKSYmKG1lW0JbMjM4XVtFXV09NjA5MjgrRSxMWzYwOTI4K0VdPUJbMjM4XVtFXSk7Zm9yKEJbMjM5XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5NGU5XHU5NGViXHU5NGVlXHU5NGVmXHU5NGYzXHU5NGY0XHU5NGY1XHU5NGY3XHU5NGY5XHU5NGZjXHU5NGZkXHU5NGZmXHU5NTAzXHU5NTAyXHU5NTA2XHU5NTA3XHU5NTA5XHU5NTBhXHU5NTBkXHU5NTBlXHU5NTBm''@;'; put 'put ''XHU5NTEyXHU5NTEzXHU5NTE0XHU5NTE1XHU5NTE2XHU5NTE4XHU5NTFiXHU5NTFkXHU5NTFlXHU5NTFmXHU5NTIyXHU5NTJhXHU5NTJiXHU5NTI5XHU5NTJjXHU5NTMxXHU5NTMyXHU5NTM0XHU5NTM2XHU5NTM3XHU5NTM4XHU5NTNjXHU5NTNlXHU5NTNmXHU5NTQyXHU5NTM1XHU5NTQ0XHU5''@;'; put 'put ''NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRjXHU5NTRlXHU5NTRmXHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTViXHU5NTVlXHU5NTVmXHU5NTVkXHU5NTYxXHU5NTYyXHU5NTY0XHU5NTY1XHU5NTY2XHU5NTY3XHU5NTY4XHU5NTY5XHU5NTZhXHU5NTZiXHU5NTZj''@;'; put 'put ''XHU5NTZmXHU5NTcxXHU5NTcyXHU5NTczXHU5NTNhXHU3N2U3XHU3N2VjXHU5NmM5XHU3OWQ1XHU3OWVkXHU3OWUzXHU3OWViXHU3YTA2XHU1ZDQ3XHU3YTAzXHU3YTAyXHU3YTFlXHU3YTE0XHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjM5XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyMzld''@;'; put 'put ''W0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzIzOV1bRV1dPTYxMTg0K0UsTFs2MTE4NCtFXT1CWzIzOV1bRV0pO2ZvcihCWzI0MF09Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1N2EzOVx1N2EzN1x1N2E1MVx1OWVjZlx1OTlhNVx1N2E3MFx1NzY4OFx1NzY4ZVx1NzY5M1x1NzY5OVx1NzZhNFx1NzRkZVx1NzRlMFx1NzUyY1x1OWUyMFx1OWUyMlx1OWUyOFx1OWUyOVx1OWUy''@;'; put 'put ''YVx1OWUyYlx1OWUyY1x1OWUzMlx1OWUzMVx1OWUzNlx1OWUzOFx1OWUzN1x1OWUzOVx1OWUzYVx1OWUzZVx1OWU0MVx1OWU0Mlx1OWU0NFx1OWU0Nlx1OWU0N1x1OWU0OFx1OWU0OVx1OWU0Ylx1OWU0Y1x1OWU0ZVx1OWU1MVx1OWU1NVx1OWU1N1x1OWU1YVx1OWU1Ylx1OWU1Y1x1OWU1ZVx1''@;'; put 'put ''OWU2M1x1OWU2Nlx1OWU2N1x1OWU2OFx1OWU2OVx1OWU2YVx1OWU2Ylx1OWU2Y1x1OWU3MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1NzVhMFx1NzU5ZFx1NzVhY1x1NzVhM1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVjMlx1NzVkNlx1NzVj''@;'; put 'put ''ZFx1NzVlM1x1NzVlOFx1NzVlNlx1NzVlNFx1NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYwY1x1NzYxN1x1NzYwYVx1NzYyNVx1NzYxOFx1NzYxNVx1NzYxOVx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0MF0ubGVuZ3RoOysrRSk2''@;'; put 'put ''NTUzMyE9PUJbMjQwXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDBdW0VdXT02MTQ0MCtFLExbNjE0NDArRV09QlsyNDBdW0VdKTtmb3IoQlsyNDFdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTc2MWJcdTc2M2NcdTc2MjJcdTc2MjBcdTc2NDBcdTc2MmRcdTc2MzBcdTc2M2ZcdTc2MzVcdTc2NDNcdTc2M2VcdTc2MzNcdTc2NGRcdTc2NWVcdTc2NTRcdTc2NWNcdTc2''@;'; put 'put ''NTZcdTc2NmJcdTc2NmZcdTdmY2FcdTdhZTZcdTdhNzhcdTdhNzlcdTdhODBcdTdhODZcdTdhODhcdTdhOTVcdTdhYTZcdTdhYTBcdTdhYWNcdTdhYThcdTdhYWRcdTdhYjNcdTg4NjRcdTg4NjlcdTg4NzJcdTg4N2RcdTg4N2ZcdTg4ODJcdTg4YTJcdTg4YzZcdTg4YjdcdTg4YmNcdTg4Yzlc''@;'; put 'put ''dTg4ZTJcdTg4Y2VcdTg4ZTNcdTg4ZTVcdTg4ZjFcdTg5MWFcdTg4ZmNcdTg4ZThcdTg4ZmVcdTg4ZjBcdTg5MjFcdTg5MTlcdTg5MTNcdTg5MWJcdTg5MGFcdTg5MzRcdTg5MmJcdTg5MzZcdTg5NDFcdTg5NjZcdTg5N2JcdTc1OGJcdTgwZTVcdTc2YjJcdTc2YjRcdTc3ZGNcdTgwMTJcdTgw''@;'; put 'put ''MTRcdTgwMTZcdTgwMWNcdTgwMjBcdTgwMjJcdTgwMjVcdTgwMjZcdTgwMjdcdTgwMjlcdTgwMjhcdTgwMzFcdTgwMGJcdTgwMzVcdTgwNDNcdTgwNDZcdTgwNGRcdTgwNTJcdTgwNjlcdTgwNzFcdTg5ODNcdTk4NzhcdTk4ODBcdTk4ODNcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDFd''@;'; put 'put ''Lmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0MV1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQxXVtFXV09NjE2OTYrRSxMWzYxNjk2K0VdPUJbMjQxXVtFXSk7Zm9yKEJbMjQyXT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5ODg5XHU5ODhjXHU5ODhkXHU5ODhmXHU5ODk0XHU5ODlhXHU5ODliXHU5ODllXHU5ODlmXHU5OGExXHU5OGEyXHU5OGE1XHU5OGE2XHU4NjRkXHU4''@;'; put 'put ''NjU0XHU4NjZjXHU4NjZlXHU4NjdmXHU4NjdhXHU4NjdjXHU4NjdiXHU4NmE4XHU4NjhkXHU4NjhiXHU4NmFjXHU4NjlkXHU4NmE3XHU4NmEzXHU4NmFhXHU4NjkzXHU4NmE5XHU4NmI2XHU4NmM0XHU4NmI1XHU4NmNlXHU4NmIwXHU4NmJhXHU4NmIxXHU4NmFmXHU4NmM5XHU4NmNmXHU4NmI0''@;'; put 'put ''XHU4NmU5XHU4NmYxXHU4NmYyXHU4NmVkXHU4NmYzXHU4NmQwXHU4NzEzXHU4NmRlXHU4NmY0XHU4NmRmXHU4NmQ4XHU4NmQxXHU4NzAzXHU4NzA3XHU4NmY4XHU4NzA4XHU4NzBhXHU4NzBkXHU4NzA5XHU4NzIzXHU4NzNiXHU4NzFlXHU4NzI1XHU4NzJlXHU4NzFhXHU4NzNlXHU4NzQ4XHU4''@;'; put 'put ''NzM0XHU4NzMxXHU4NzI5XHU4NzM3XHU4NzNmXHU4NzgyXHU4NzIyXHU4NzdkXHU4NzdlXHU4NzdiXHU4NzYwXHU4NzcwXHU4NzRjXHU4NzZlXHU4NzhiXHU4NzUzXHU4NzYzXHU4NzdjXHU4NzY0XHU4NzU5XHU4NzY1XHU4NzkzXHU4N2FmXHU4N2E4XHU4N2QyXHVmZmZkIi5zcGxpdCgiIiks''@;'; put 'put ''RT0wO0UhPUJbMjQyXS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDJdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0Ml1bRV1dPTYxOTUyK0UsTFs2MTk1MitFXT1CWzI0Ml1bRV0pO2ZvcihCWzI0M109Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODdjNlx1ODc4OFx1ODc4NVx1ODdhZFx1ODc5N1x1ODc4M1x1ODdhYlx1ODdlNVx1ODdhY1x1ODdiNVx1ODdiM1x1ODdjYlx1''@;'; put 'put ''ODdkM1x1ODdiZFx1ODdkMVx1ODdjMFx1ODdjYVx1ODdkYlx1ODdlYVx1ODdlMFx1ODdlZVx1ODgxNlx1ODgxM1x1ODdmZVx1ODgwYVx1ODgxYlx1ODgyMVx1ODgzOVx1ODgzY1x1N2YzNlx1N2Y0Mlx1N2Y0NFx1N2Y0NVx1ODIxMFx1N2FmYVx1N2FmZFx1N2IwOFx1N2IwM1x1N2IwNFx1N2Ix''@;'; put 'put ''NVx1N2IwYVx1N2IyYlx1N2IwZlx1N2I0N1x1N2IzOFx1N2IyYVx1N2IxOVx1N2IyZVx1N2IzMVx1N2IyMFx1N2IyNVx1N2IyNFx1N2IzM1x1N2IzZVx1N2IxZVx1N2I1OFx1N2I1YVx1N2I0NVx1N2I3NVx1N2I0Y1x1N2I1ZFx1N2I2MFx1N2I2ZVx1N2I3Ylx1N2I2Mlx1N2I3Mlx1N2I3MVx1''@;'; put 'put ''N2I5MFx1N2JhNlx1N2JhN1x1N2JiOFx1N2JhY1x1N2I5ZFx1N2JhOFx1N2I4NVx1N2JhYVx1N2I5Y1x1N2JhMlx1N2JhYlx1N2JiNFx1N2JkMVx1N2JjMVx1N2JjY1x1N2JkZFx1N2JkYVx1N2JlNVx1N2JlNlx1N2JlYVx1N2MwY1x1N2JmZVx1N2JmY1x1N2MwZlx1N2MxNlx1N2MwYlx1ZmZm''@;'; put 'put ''ZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0M10ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQzXVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDNdW0VdXT02MjIwOCtFLExbNjIyMDgrRV09QlsyNDNdW0VdKTtmb3IoQlsyNDRdPSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTdjMWZcdTdjMmFcdTdjMjZcdTdjMzhcdTdjNDFcdTdjNDBcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDRc''@;'; put 'put ''dTgxZWNcdTg4NDRcdTgyMjFcdTgyMjJcdTgyMjNcdTgyMmRcdTgyMmZcdTgyMjhcdTgyMmJcdTgyMzhcdTgyM2JcdTgyMzNcdTgyMzRcdTgyM2VcdTgyNDRcdTgyNDlcdTgyNGJcdTgyNGZcdTgyNWFcdTgyNWZcdTgyNjhcdTg4N2VcdTg4ODVcdTg4ODhcdTg4ZDhcdTg4ZGZcdTg5NWVcdTdm''@;'; put 'put ''OWRcdTdmOWZcdTdmYTdcdTdmYWZcdTdmYjBcdTdmYjJcdTdjN2NcdTY1NDlcdTdjOTFcdTdjOWRcdTdjOWNcdTdjOWVcdTdjYTJcdTdjYjJcdTdjYmNcdTdjYmRcdTdjYzFcdTdjYzdcdTdjY2NcdTdjY2RcdTdjYzhcdTdjYzVcdTdjZDdcdTdjZThcdTgyNmVcdTY2YThcdTdmYmZcdTdmY2Vc''@;'; put 'put ''dTdmZDVcdTdmZTVcdTdmZTFcdTdmZTZcdTdmZTlcdTdmZWVcdTdmZjNcdTdjZjhcdTdkNzdcdTdkYTZcdTdkYWVcdTdlNDdcdTdlOWJcdTllYjhcdTllYjRcdThkNzNcdThkODRcdThkOTRcdThkOTFcdThkYjFcdThkNjdcdThkNmRcdThjNDdcdThjNDlcdTkxNGFcdTkxNTBcdTkxNGVcdTkx''@;'; put 'put ''NGZcdTkxNjRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDRdLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0NF1bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ0XVtFXV09NjI0NjQrRSxMWzYyNDY0K0VdPUJbMjQ0XVtFXSk7Zm9yKEJbMjQ1XT0iXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHU5MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZmXHU5MTdkXHU5MTdlXHU5MTcy''@;'; put 'put ''XHU5MTc0XHU5MTc5XHU5MThjXHU5MTg1XHU5MTkwXHU5MThkXHU5MTkxXHU5MWEyXHU5MWEzXHU5MWFhXHU5MWFkXHU5MWFlXHU5MWFmXHU5MWI1XHU5MWI0XHU5MWJhXHU4YzU1XHU5ZTdlXHU4ZGI4XHU4ZGViXHU4ZTA1XHU4ZTU5XHU4ZTY5XHU4ZGI1XHU4ZGJmXHU4ZGJjXHU4ZGJhXHU4''@;'; put 'put ''ZGM0XHU4ZGQ2XHU4ZGQ3XHU4ZGRhXHU4ZGRlXHU4ZGNlXHU4ZGNmXHU4ZGRiXHU4ZGM2XHU4ZGVjXHU4ZGY3XHU4ZGY4XHU4ZGUzXHU4ZGY5XHU4ZGZiXHU4ZGU0XHU4ZTA5XHU4ZGZkXHU4ZTE0XHU4ZTFkXHU4ZTFmXHU4ZTJjXHU4ZTJlXHU4ZTIzXHU4ZTJmXHU4ZTNhXHU4ZTQwXHU4ZTM5''@;'; put 'put ''XHU4ZTM1XHU4ZTNkXHU4ZTMxXHU4ZTQ5XHU4ZTQxXHU4ZTQyXHU4ZTUxXHU4ZTUyXHU4ZTRhXHU4ZTcwXHU4ZTc2XHU4ZTdjXHU4ZTZmXHU4ZTc0XHU4ZTg1XHU4ZThmXHU4ZTk0XHU4ZTkwXHU4ZTljXHU4ZTllXHU4Yzc4XHU4YzgyXHU4YzhhXHU4Yzg1XHU4Yzk4XHU4Yzk0XHU2NTliXHU4''@;'; put 'put ''OWQ2XHU4OWRlXHU4OWRhXHU4OWRjXHVmZmZkIi5zcGxpdCgiIiksRT0wO0UhPUJbMjQ1XS5sZW5ndGg7KytFKTY1NTMzIT09QlsyNDVdW0VdLmNoYXJDb2RlQXQoMCkmJihtZVtCWzI0NV1bRV1dPTYyNzIwK0UsTFs2MjcyMCtFXT1CWzI0NV1bRV0pO2ZvcihCWzI0Nl09Ilx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ODllNVx1ODllYlx1ODllZlx1OGEzZVx1OGIyNlx1OTc1''@;'; put 'put ''M1x1OTZlOVx1OTZmM1x1OTZlZlx1OTcwNlx1OTcwMVx1OTcwOFx1OTcwZlx1OTcwZVx1OTcyYVx1OTcyZFx1OTczMFx1OTczZVx1OWY4MFx1OWY4M1x1OWY4NVx1OWY4Nlx1OWY4N1x1OWY4OFx1OWY4OVx1OWY4YVx1OWY4Y1x1OWVmZVx1OWYwYlx1OWYwZFx1OTZiOVx1OTZiY1x1OTZiZFx1''@;'; put 'put ''OTZjZVx1OTZkMlx1NzdiZlx1OTZlMFx1OTI4ZVx1OTJhZVx1OTJjOFx1OTMzZVx1OTM2YVx1OTNjYVx1OTM4Zlx1OTQzZVx1OTQ2Ylx1OWM3Zlx1OWM4Mlx1OWM4NVx1OWM4Nlx1OWM4N1x1OWM4OFx1N2EyM1x1OWM4Ylx1OWM4ZVx1OWM5MFx1OWM5MVx1OWM5Mlx1OWM5NFx1OWM5NVx1OWM5''@;'; put 'put ''YVx1OWM5Ylx1OWM5ZVx1OWM5Zlx1OWNhMFx1OWNhMVx1OWNhMlx1OWNhM1x1OWNhNVx1OWNhNlx1OWNhN1x1OWNhOFx1OWNhOVx1OWNhYlx1OWNhZFx1OWNhZVx1OWNiMFx1OWNiMVx1OWNiMlx1OWNiM1x1OWNiNFx1OWNiNVx1OWNiNlx1OWNiN1x1OWNiYVx1OWNiYlx1OWNiY1x1OWNiZFx1''@;'; put 'put ''OWNjNFx1OWNjNVx1OWNjNlx1OWNjN1x1OWNjYVx1OWNjYlx1ZmZmZCIuc3BsaXQoIiIpLEU9MDtFIT1CWzI0Nl0ubGVuZ3RoOysrRSk2NTUzMyE9PUJbMjQ2XVtFXS5jaGFyQ29kZUF0KDApJiYobWVbQlsyNDZdW0VdXT02Mjk3NitFLExbNjI5NzYrRV09QlsyNDZdW0VdKTtmb3IoQlsyNDdd''@;'; put 'put ''PSJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTljY2NcdTljY2RcdTljY2VcdTlj''@;'; put 'put ''Y2ZcdTljZDBcdTljZDNcdTljZDRcdTljZDVcdTljZDdcdTljZDhcdTljZDlcdTljZGNcdTljZGRcdTljZGZcdTljZTJcdTk3N2NcdTk3ODVcdTk3OTFcdTk3OTJcdTk3OTRcdTk3YWZcdTk3YWJcdTk3YTNcdTk3YjJcdTk3YjRcdTlhYjFcdTlhYjBcdTlhYjdcdTllNThcdTlhYjZcdTlhYmFc''@;'; put 'put ''dTlhYmNcdTlhYzFcdTlhYzBcdTlhYzVcdTlhYzJcdTlhY2JcdTlhY2NcdTlhZDFcdTliNDVcdTliNDNcdTliNDdcdTliNDlcdTliNDhcdTliNGRcdTliNTFcdTk4ZThcdTk5MGRcdTk5MmVcdTk5NTVcdTk5NTRcdTlhZGZcdTlhZTFcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZmJcdTlhZWRcdTlh''@;'; put 'put ''ZjlcdTliMDhcdTliMGZcdTliMTNcdTliMWZcdTliMjNcdTllYmRcdTllYmVcdTdlM2JcdTllODJcdTllODdcdTllODhcdTllOGJcdTllOTJcdTkzZDZcdTllOWRcdTllOWZcdTllZGJcdTllZGNcdTllZGRcdTllZTBcdTllZGZcdTllZTJcdTllZTlcdTllZTdcdTllZTVcdTllZWFcdTllZWZc''@;'; put 'put ''dTlmMjJcdTlmMmNcdTlmMmZcdTlmMzlcdTlmMzdcdTlmM2RcdTlmM2VcdTlmNDRcdWZmZmQiLnNwbGl0KCIiKSxFPTA7RSE9QlsyNDddLmxlbmd0aDsrK0UpNjU1MzMhPT1CWzI0N11bRV0uY2hhckNvZGVBdCgwKSYmKG1lW0JbMjQ3XVtFXV09NjMyMzIrRSxMWzYzMjMyK0VdPUJbMjQ3XVtF''@;'; put 'put ''XSk7cmV0dXJue2VuYzptZSxkZWM6TH19KCksSmVbMTAwMjldPWZ1bmN0aW9uKCl7Zm9yKHZhciBMPSJcMFx4MDFceDAyXHgwM1x4MDRceDA1XHgwNlx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNceDE0XHgxNVx4MTZceDE3XHgxOFx4MTlceDFhXHgxYlx4MWNceDFk''@;'; put 'put ''XHgxZVx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx4YzRcdTAxMDBcdTAxMDFceGM5XHUwMTA0XHhkNlx4ZGNceGUxXHUwMTA1XHUwMTBjXHhlNFx1''@;'; put 'put ''MDEwZFx1MDEwNlx1MDEwN1x4ZTlcdTAxNzlcdTAxN2FcdTAxMGVceGVkXHUwMTBmXHUwMTEyXHUwMTEzXHUwMTE2XHhmM1x1MDExN1x4ZjRceGY2XHhmNVx4ZmFcdTAxMWFcdTAxMWJceGZjXHUyMDIwXHhiMFx1MDExOFx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx1MDEx''@;'; put 'put ''OVx4YThcdTIyNjBcdTAxMjNcdTAxMmVcdTAxMmZcdTAxMmFcdTIyNjRcdTIyNjVcdTAxMmJcdTAxMzZcdTIyMDJcdTIyMTFcdTAxNDJcdTAxM2JcdTAxM2NcdTAxM2RcdTAxM2VcdTAxMzlcdTAxM2FcdTAxNDVcdTAxNDZcdTAxNDNceGFjXHUyMjFhXHUwMTQ0XHUwMTQ3XHUyMjA2XHhhYlx4''@;'; put 'put ''YmJcdTIwMjZceGEwXHUwMTQ4XHUwMTUwXHhkNVx1MDE1MVx1MDE0Y1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdTAxNGRcdTAxNTRcdTAxNTVcdTAxNThcdTIwMzlcdTIwM2FcdTAxNTlcdTAxNTZcdTAxNTdcdTAxNjBcdTIwMWFcdTIwMWVcdTAxNjFc''@;'; put 'put ''dTAxNWFcdTAxNWJceGMxXHUwMTY0XHUwMTY1XHhjZFx1MDE3ZFx1MDE3ZVx1MDE2YVx4ZDNceGQ0XHUwMTZiXHUwMTZlXHhkYVx1MDE2Zlx1MDE3MFx1MDE3MVx1MDE3Mlx1MDE3M1x4ZGRceGZkXHUwMTM3XHUwMTdiXHUwMTQxXHUwMTdjXHUwMTIyXHUwMmM3IixtZT1bXSxCPXt9LEU9MDtF''@;'; put 'put ''IT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJDb2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxMDA3OV09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xi''@;'; put 'put ''XHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9w''@;'; put 'put ''cXJzdHV2d3h5ent8fX5ceDdmXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNceGRkXHhiMFx4YTJceGEzXHhh''@;'; put 'put ''N1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1''@;'; put 'put ''MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx4ZDBceGYwXHhkZVx4ZmVceGZkXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhj''@;'; put 'put ''MVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3IixtZT1bXSxCPXt9LEU9MDtFIT1MLmxlbmd0aDsrK0UpNjU1MzMhPT1MLmNoYXJD''@;'; put 'put ''b2RlQXQoRSkmJihCW0wuY2hhckF0KEUpXT1FKSxtZVtFXT1MLmNoYXJBdChFKTtyZXR1cm57ZW5jOkIsZGVjOm1lfX0oKSxKZVsxMDA4MV09ZnVuY3Rpb24oKXtmb3IodmFyIEw9IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEy''@;'; put 'put ''XHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjNFx4YzVceGM3''@;'; put 'put ''XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEy''@;'; put 'put ''Mlx4YjRceGE4XHUyMjYwXHhjNlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4''@;'; put 'put ''YzNceGQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTAxMWVcdTAxMWZcdTAxMzBcdTAxMzFcdTAxNWVcdTAxNWZcdTIwMjFceGI3XHUyMDFhXHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhj''@;'; put 'put ''ZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHVmZmZkXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzciLG1lPVtdLEI9e30sRT0wO0UhPUwubGVuZ3RoOysrRSk2NTUzMyE9PUwuY2hhckNvZGVBdChFKSYmKEJbTC5j''@;'; put 'put ''aGFyQXQoRSldPUUpLG1lW0VdPUwuY2hhckF0KEUpO3JldHVybntlbmM6QixkZWM6bWV9fSgpLEplWzI4NTkxXT1mdW5jdGlvbigpe2Zvcih2YXIgTD0iXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2''@;'; put 'put ''XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVceDFmICFcIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2''@;'; put 'put ''XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZc''@;'; put 'put ''eGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4''@;'; put 'put ''ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiIsbWU9W10sQj17''@;'; put 'put ''fSxFPTA7RSE9TC5sZW5ndGg7KytFKTY1NTMzIT09TC5jaGFyQ29kZUF0KEUpJiYoQltMLmNoYXJBdChFKV09RSksbWVbRV09TC5jaGFyQXQoRSk7cmV0dXJue2VuYzpCLGRlYzptZX19KCksWGUuZXhwb3J0cyYmInVuZGVmaW5lZCI9PXR5cGVvZiBET19OT1RfRVhQT1JUX0NPREVQQUdFJiYo''@;'; put 'put ''WGUuZXhwb3J0cz1KZSksZnVuY3Rpb24oTCxtZSl7InVzZSBzdHJpY3QiO2lmKHZvaWQgMD09PUplKXt2YXIgQj1KZTtYZS5leHBvcnRzJiYidW5kZWZpbmVkIj09dHlwZW9mIERPX05PVF9FWFBPUlRfQ09ERVBBR0U/WGUuZXhwb3J0cz1tZShCKTpMLmNwdGFibGU9bWUoQil9ZWxzZSBKZT1t''@;'; put 'put ''ZShKZSl9KHRoaXMsZnVuY3Rpb24oTCl7InVzZSBzdHJpY3QiO3ZhciBtZT17MTIwMDoidXRmMTZsZSIsMTIwMToidXRmMTZiZSIsMTJlMzoidXRmMzJsZSIsMTIwMDE6InV0ZjMyYmUiLDE2OTY5OiJ1dGY2NGxlIiwyMDEyNzoiYXNjaWkiLDY1ZTM6InV0ZjciLDY1MDAxOiJ1dGY4In0sQj1b''@;'; put 'put ''ODc0LDEyNTAsMTI1MSwxMjUyLDEyNTMsMTI1NCwxMjU1LDEyNTYsMWU0XSxFPVs5MzIsOTM2LDk0OSw5NTBdLEVlPVs2NTAwMV0sVT17fSxRPXt9LGo9e30scmU9e30sYWU9ZnVuY3Rpb24oVil7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoVil9LFk9ZnVuY3Rpb24oVil7cmV0dXJuIFYu''@;'; put 'put ''Y2hhckNvZGVBdCgwKX0sVz0idW5kZWZpbmVkIiE9dHlwZW9mIEJ1ZmZlcixOPWZ1bmN0aW9uKCl7fTtpZihXKXt2YXIgdGU9IUJ1ZmZlci5mcm9tO2lmKCF0ZSl0cnl7QnVmZmVyLmZyb20oImZvbyIsInV0ZjgiKX1jYXRjaChQKXt0ZT0hMH1OPXRlP2Z1bmN0aW9uKFAsVil7cmV0dXJuIFY/''@;'; put 'put ''bmV3IEJ1ZmZlcihQLFYpOm5ldyBCdWZmZXIoUCl9OkJ1ZmZlci5mcm9tLmJpbmQoQnVmZmVyKSxCdWZmZXIuYWxsb2NVbnNhZmV8fChCdWZmZXIuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oUCl7cmV0dXJuIG5ldyBCdWZmZXIoUCl9KTt2YXIgSz0xMDI0LEo9QnVmZmVyLmFsbG9jVW5zYWZlKEsp''@;'; put 'put ''LG9lPWZ1bmN0aW9uKFYpe3ZhciBUPWZ1bmN0aW9uKFYpe2Zvcih2YXIgVD1CdWZmZXIuYWxsb2NVbnNhZmUoNjU1MzYpLFM9MDtTPDY1NTM2OysrUylUW1NdPTA7Zm9yKHZhciBGPU9iamVjdC5rZXlzKFYpLHllPUYubGVuZ3RoLENlPTAsRGU9RltDZV07Q2U8eWU7KytDZSkhKERlPUZbQ2Vd''@;'; put 'put ''KXx8KFRbRGUuY2hhckNvZGVBdCgwKV09VltEZV0pO3JldHVybiBUfShMW1ZdLmVuYyk7cmV0dXJuIGZ1bmN0aW9uKEYseWUpe3ZhciBEZSxDZT1GLmxlbmd0aCxQZT0wLFFlPTAsJGU9MCxndD0wO2lmKCJzdHJpbmciPT10eXBlb2YgRilmb3IoRGU9QnVmZmVyLmFsbG9jVW5zYWZlKENlKSxQ''@;'; put 'put ''ZT0wO1BlPENlOysrUGUpRGVbUGVdPVRbRi5jaGFyQ29kZUF0KFBlKV07ZWxzZSBpZihCdWZmZXIuaXNCdWZmZXIoRikpe2ZvcihEZT1CdWZmZXIuYWxsb2NVbnNhZmUoMipDZSksUWU9MCxQZT0wO1BlPENlOysrUGUpKCRlPUZbUGVdKTwxMjg/RGVbUWUrK109VFskZV06JGU8MjI0PyhEZVtR''@;'; put 'put ''ZSsrXT1UWygoMzEmJGUpPDw2KSsoNjMmRltQZSsxXSldLCsrUGUpOiRlPDI0MD8oRGVbUWUrK109VFsoKDE1JiRlKTw8MTIpKygoNjMmRltQZSsxXSk8PDYpKyg2MyZGW1BlKzJdKV0sUGUrPTIpOihndD0oKDcmJGUpPDwxOCkrKCg2MyZGW1BlKzFdKTw8MTIpKygoNjMmRltQZSsyXSk8PDYp''@;'; put 'put ''Kyg2MyZGW1BlKzNdKSxQZSs9MyxndDw2NTUzNj9EZVtRZSsrXT1UW2d0XTooRGVbUWUrK109VFs1NTI5NisoKGd0LT02NTUzNik+PjEwJjEwMjMpXSxEZVtRZSsrXT1UWzU2MzIwKygxMDIzJmd0KV0pKTtEZT1EZS5zbGljZSgwLFFlKX1lbHNlIGZvcihEZT1CdWZmZXIuYWxsb2NVbnNhZmUo''@;'; put 'put ''Q2UpLFBlPTA7UGU8Q2U7KytQZSlEZVtQZV09VFtGW1BlXS5jaGFyQ29kZUF0KDApXTtyZXR1cm4geWUmJiJidWYiIT09eWU/ImFyciIhPT15ZT9EZS50b1N0cmluZygiYmluYXJ5Iik6W10uc2xpY2UuY2FsbChEZSk6RGV9fSxjZT1mdW5jdGlvbihWKXt2YXIgVD1MW1ZdLmRlYyxTPUJ1ZmZl''@;'; put 'put ''ci5hbGxvY1Vuc2FmZSgxMzEwNzIpLEY9MCx5ZT0iIjtmb3IoRj0wO0Y8VC5sZW5ndGg7KytGKWlmKHllPVRbRl0pe3ZhciBDZT15ZS5jaGFyQ29kZUF0KDApO1NbMipGXT0yNTUmQ2UsU1syKkYrMV09Q2U+Pjh9cmV0dXJuIGZ1bmN0aW9uKFBlKXt2YXIgUWU9UGUubGVuZ3RoLCRlPTAsZ3Q9''@;'; put 'put ''MDtpZigyKlFlPksmJihLPTIqUWUsSj1CdWZmZXIuYWxsb2NVbnNhZmUoSykpLEJ1ZmZlci5pc0J1ZmZlcihQZSkpZm9yKCRlPTA7JGU8UWU7JGUrKylKWzIqJGVdPVNbZ3Q9MipQZVskZV1dLEpbMiokZSsxXT1TW2d0KzFdO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiBQZSlmb3IoJGU9MDsk''@;'; put 'put ''ZTxRZTskZSsrKWd0PTIqUGUuY2hhckNvZGVBdCgkZSksSlsyKiRlXT1TW2d0XSxKWzIqJGUrMV09U1tndCsxXTtlbHNlIGZvcigkZT0wOyRlPFFlOyRlKyspSlsyKiRlXT1TW2d0PTIqUGVbJGVdXSxKWzIqJGUrMV09U1tndCsxXTtyZXR1cm4gSi5zbGljZSgwLDIqUWUpLnRvU3RyaW5nKCJ1''@;'; put 'put ''Y3MyIil9fSxkZT1mdW5jdGlvbihWKXtmb3IodmFyIFQ9TFtWXS5lbmMsUz1CdWZmZXIuYWxsb2NVbnNhZmUoMTMxMDcyKSxGPTA7RjwxMzEwNzI7KytGKVNbRl09MDtmb3IodmFyIHllPU9iamVjdC5rZXlzKFQpLENlPTAsRGU9eWVbQ2VdO0NlPHllLmxlbmd0aDsrK0NlKWlmKERlPXllW0Nl''@;'; put 'put ''XSl7dmFyIFBlPURlLmNoYXJDb2RlQXQoMCk7U1syKlBlXT0yNTUmVFtEZV0sU1syKlBlKzFdPVRbRGVdPj44fXJldHVybiBmdW5jdGlvbigkZSxndCl7dmFyIHd0PSRlLmxlbmd0aCxtdD1CdWZmZXIuYWxsb2NVbnNhZmUoMip3dCksdnQ9MCxBdD0wLGh0PTAsQnQ9MCxvbj0wO2lmKCJzdHJp''@;'; put 'put ''bmciPT10eXBlb2YgJGUpe2Zvcih2dD1CdD0wO3Z0PHd0OysrdnQpQXQ9MiokZS5jaGFyQ29kZUF0KHZ0KSxtdFtCdCsrXT1TW0F0KzFdfHxTW0F0XSxTW0F0KzFdPjAmJihtdFtCdCsrXT1TW0F0XSk7bXQ9bXQuc2xpY2UoMCxCdCl9ZWxzZSBpZihCdWZmZXIuaXNCdWZmZXIoJGUpKXtmb3Io''@;'; put 'put ''dnQ9QnQ9MDt2dDx3dDsrK3Z0KShvbj0kZVt2dF0pPDEyOD9BdD1vbjpvbjwyMjQ/KEF0PSgoMzEmb24pPDw2KSsoNjMmJGVbdnQrMV0pLCsrdnQpOm9uPDI0MD8oQXQ9KCgxNSZvbik8PDEyKSsoKDYzJiRlW3Z0KzFdKTw8NikrKDYzJiRlW3Z0KzJdKSx2dCs9Mik6KEF0PSgoNyZvbik8PDE4''@;'; put 'put ''KSsoKDYzJiRlW3Z0KzFdKTw8MTIpKygoNjMmJGVbdnQrMl0pPDw2KSsoNjMmJGVbdnQrM10pLHZ0Kz0zKSxBdDw2NTUzNj8obXRbQnQrK109U1sxKyhBdCo9MildfHxTW0F0XSxTW0F0KzFdPjAmJihtdFtCdCsrXT1TW0F0XSkpOihtdFtCdCsrXT1TWzErKEF0PTIqKDU1Mjk2KygoaHQ9QXQt''@;'; put 'put ''NjU1MzYpPj4xMCYxMDIzKSkpXXx8U1tBdF0sU1tBdCsxXT4wJiYobXRbQnQrK109U1tBdF0pLG10W0J0KytdPVNbMSsoQXQ9MiooNTYzMjArKDEwMjMmaHQpKSldfHxTW0F0XSxTW0F0KzFdPjAmJihtdFtCdCsrXT1TW0F0XSkpO210PW10LnNsaWNlKDAsQnQpfWVsc2UgZm9yKHZ0PUJ0PTA7''@;'; put 'put ''dnQ8d3Q7dnQrKylBdD0yKiRlW3Z0XS5jaGFyQ29kZUF0KDApLG10W0J0KytdPVNbQXQrMV18fFNbQXRdLFNbQXQrMV0+MCYmKG10W0J0KytdPVNbQXRdKTtyZXR1cm4gZ3QmJiJidWYiIT09Z3Q/ImFyciIhPT1ndD9tdC50b1N0cmluZygiYmluYXJ5Iik6W10uc2xpY2UuY2FsbChtdCk6bXR9''@;'; put 'put ''fSx2ZT1mdW5jdGlvbihWKXt2YXIgeWUsVD1MW1ZdLmRlYyxTPUJ1ZmZlci5hbGxvY1Vuc2FmZSgxMzEwNzIpLEY9MCxDZT0wLERlPTAsUGU9MDtmb3IoUGU9MDtQZTw2NTUzNjsrK1BlKVNbMipQZV09MjU1LFNbMipQZSsxXT0yNTM7Zm9yKEY9MDtGPFQubGVuZ3RoOysrRikhKHllPVRbRl0p''@;'; put 'put ''fHwoQ2U9eWUuY2hhckNvZGVBdCgwKSxTW0RlPTIqRl09MjU1JkNlLFNbRGUrMV09Q2U+PjgpO3JldHVybiBmdW5jdGlvbigkZSl7dmFyIGd0PSRlLmxlbmd0aCx3dD1CdWZmZXIuYWxsb2NVbnNhZmUoMipndCksbXQ9MCx2dD0wLEF0PTA7aWYoQnVmZmVyLmlzQnVmZmVyKCRlKSlmb3IobXQ9''@;'; put 'put ''MDttdDxndDttdCsrKTI1NT09PVNbdnQ9MiokZVttdF1dJiYyNTM9PT1TW3Z0KzFdJiYodnQ9MiooKCRlW210XTw8OCkrJGVbbXQrMV0pLCsrbXQpLHd0W0F0KytdPVNbdnRdLHd0W0F0KytdPVNbdnQrMV07ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mICRlKWZvcihtdD0wO210PGd0O210Kysp''@;'; put 'put ''dnQ9MiokZS5jaGFyQ29kZUF0KG10KSwyNTU9PT1TW3Z0XSYmMjUzPT09U1t2dCsxXSYmKHZ0PTIqKCgkZS5jaGFyQ29kZUF0KG10KTw8OCkrJGUuY2hhckNvZGVBdChtdCsxKSksKyttdCksd3RbQXQrK109U1t2dF0sd3RbQXQrK109U1t2dCsxXTtlbHNlIGZvcihtdD0wO210PGd0O210Kysp''@;'; put 'put ''MjU1PT09U1t2dD0yKiRlW210XV0mJjI1Mz09PVNbdnQrMV0mJih2dD0yKigoJGVbbXRdPDw4KSskZVttdCsxXSksKyttdCksd3RbQXQrK109U1t2dF0sd3RbQXQrK109U1t2dCsxXTtyZXR1cm4gd3Quc2xpY2UoMCxBdCkudG9TdHJpbmcoInVjczIiKX19O1VbNjUwMDFdPWZ1bmN0aW9uIFAo''@;'; put 'put ''Vil7aWYoInN0cmluZyI9PXR5cGVvZiBWKXJldHVybiBQKFYuc3BsaXQoIiIpLm1hcChZKSk7dmFyIFQ9Vi5sZW5ndGgsUz0wLEY9MDs0KlQ+SyYmKEs9NCpULEo9QnVmZmVyLmFsbG9jVW5zYWZlKEspKTt2YXIgeWU9MDtUPj0zJiYyMzk9PVZbMF0mJjE4Nz09VlsxXSYmMTkxPT1WWzJdJiYo''@;'; put 'put ''eWU9Myk7Zm9yKHZhciBDZT0xLERlPTAsUGU9MDt5ZTxUO3llKz1DZSlDZT0xLChQZT1WW3llXSk8MTI4P1M9UGU6UGU8MjI0PyhTPTY0KigzMSZQZSkrKDYzJlZbeWUrMV0pLENlPTIpOlBlPDI0MD8oUz0oKDE1JlBlKTw8MTIpKzY0Kig2MyZWW3llKzFdKSsoNjMmVlt5ZSsyXSksQ2U9Myk6''@;'; put 'put ''KFM9MjYyMTQ0Kig3JlBlKSsoKDYzJlZbeWUrMV0pPDwxMikrNjQqKDYzJlZbeWUrMl0pKyg2MyZWW3llKzNdKSxDZT00KSxTPDY1NTM2PyhKW0RlKytdPTI1NSZTLEpbRGUrK109Uz4+OCk6KEY9NTUyOTYrKChTLT02NTUzNik+PjEwJjEwMjMpLFM9NTYzMjArKDEwMjMmUyksSltEZSsrXT0y''@;'; put 'put ''NTUmRixKW0RlKytdPUY+Pj44LEpbRGUrK109MjU1JlMsSltEZSsrXT1TPj4+OCYyNTUpO3JldHVybiBKLnNsaWNlKDAsRGUpLnRvU3RyaW5nKCJ1Y3MyIil9LFFbNjUwMDFdPWZ1bmN0aW9uKFYsVCl7aWYoVyYmQnVmZmVyLmlzQnVmZmVyKFYpKXJldHVybiBUJiYiYnVmIiE9PVQ/ImFyciIh''@;'; put 'put ''PT1UP1YudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoVik6Vjt2YXIgUz1WLmxlbmd0aCxGPTAseWU9MCxDZT0wLERlPSJzdHJpbmciPT10eXBlb2YgVjs0KlM+SyYmKEs9NCpTLEo9QnVmZmVyLmFsbG9jVW5zYWZlKEspKTtmb3IodmFyIFBlPTA7UGU8UzsrK1BlKShGPURlP1Yu''@;'; put 'put ''Y2hhckNvZGVBdChQZSk6VltQZV0uY2hhckNvZGVBdCgwKSk8PTEyNz9KW0NlKytdPUY6Rjw9MjA0Nz8oSltDZSsrXT0xOTIrKEY+PjYpLEpbQ2UrK109MTI4Kyg2MyZGKSk6Rj49NTUyOTYmJkY8PTU3MzQzPyhGLT01NTI5NiwrK1BlLHllPShEZT9WLmNoYXJDb2RlQXQoUGUpOlZbUGVdLmNo''@;'; put 'put ''YXJDb2RlQXQoMCkpLTU2MzIwKyhGPDwxMCksSltDZSsrXT0yNDArKHllPj4+MTgmNyksSltDZSsrXT0xNDQrKHllPj4+MTImNjMpLEpbQ2UrK109MTI4Kyh5ZT4+PjYmNjMpLEpbQ2UrK109MTI4Kyg2MyZ5ZSkpOihKW0NlKytdPTIyNCsoRj4+MTIpLEpbQ2UrK109MTI4KyhGPj42JjYzKSxK''@;'; put 'put ''W0NlKytdPTEyOCsoNjMmRikpO3JldHVybiBUJiYiYnVmIiE9PVQ/ImFyciIhPT1UP0ouc2xpY2UoMCxDZSkudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoSiwwLENlKTpKLnNsaWNlKDAsQ2UpfX12YXIgQWU9ZnVuY3Rpb24oKXtpZihXKXtpZihqW0JbMF1dKXJldHVybjt2YXIg''@;'; put 'put ''Vj0wLFQ9MDtmb3IoVj0wO1Y8Qi5sZW5ndGg7KytWKUxbVD1CW1ZdXSYmKGpbVF09Y2UoVCkscmVbVF09b2UoVCkpO2ZvcihWPTA7VjxFLmxlbmd0aDsrK1YpTFtUPUVbVl1dJiYoaltUXT12ZShUKSxyZVtUXT1kZShUKSk7Zm9yKFY9MDtWPEVlLmxlbmd0aDsrK1YpVVtUPUVlW1ZdXSYmKGpb''@;'; put 'put ''VF09VVtUXSksUVtUXSYmKHJlW1RdPVFbVF0pfX0sa2U9ZnVuY3Rpb24oUCxWKXtyZXR1cm4iIn0sU2U9ZnVuY3Rpb24oVil7ZGVsZXRlIGpbVl0sZGVsZXRlIHJlW1ZdfSxUZT17ZW5jYWNoZTpBZSxkZWNhY2hlOmZ1bmN0aW9uKCl7aWYoVyl7aWYoIWpbQlswXV0pcmV0dXJuO0IuZm9yRWFj''@;'; put 'put ''aChTZSksRS5mb3JFYWNoKFNlKSxFZS5mb3JFYWNoKFNlKX1PPWtlLHo9MH0sc2JjczpCLGRiY3M6RX07QWUoKTt2YXIgTWU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLE89a2Usej0wO3JldHVybiBMLnV0aWxzPXtk''@;'; put 'put ''ZWNvZGU6ZnVuY3Rpb24gUChWLFQpe3ZhciBTO2lmKFM9altWXSlyZXR1cm4gUyhUKTtpZigic3RyaW5nIj09dHlwZW9mIFQpcmV0dXJuIFAoVixULnNwbGl0KCIiKS5tYXAoWSkpO3ZhciBtdCxGPVQubGVuZ3RoLHllPW5ldyBBcnJheShGKSxDZT0iIixEZT0wLFBlPTAsUWU9MSwkZT0wLGd0''@;'; put 'put ''PTAsd3Q9TFtWXSx2dD0iIjtpZih3dCYmKG10PXd0LmRlYykpZm9yKFBlPTA7UGU8RjtQZSs9UWUpe2lmKFFlPTIsKENlPW10WyhUW1BlXTw8OCkrVFtQZSsxXV0pfHwoUWU9MSxDZT1tdFtUW1BlXV0pLCFDZSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBjb2RlOiAiK1RbUGVdKyIg''@;'; put 'put ''IitUW1BlK1FlLTFdKyIgIitQZSsiICIrUWUrIiAiK210W1RbUGVdXSk7eWVbJGUrK109Q2V9ZWxzZXtpZighKHZ0PW1lW1ZdKSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBDUDogIitWKTtzd2l0Y2godnQpe2Nhc2UidXRmOCI6Zm9yKEY+PTMmJjIzOT09VFswXSYmMTg3PT1UWzFd''@;'; put 'put ''JiYxOTE9PVRbMl0mJihQZT0zKTtQZTxGO1BlKz1RZSlRZT0xLFRbUGVdPDEyOD9EZT1UW1BlXTpUW1BlXTwyMjQ/KERlPTY0KigzMSZUW1BlXSkrKDYzJlRbUGUrMV0pLFFlPTIpOlRbUGVdPDI0MD8oRGU9KCgxNSZUW1BlXSk8PDEyKSs2NCooNjMmVFtQZSsxXSkrKDYzJlRbUGUrMl0pLFFl''@;'; put 'put ''PTMpOihEZT0yNjIxNDQqKDcmVFtQZV0pKygoNjMmVFtQZSsxXSk8PDEyKSs2NCooNjMmVFtQZSsyXSkrKDYzJlRbUGUrM10pLFFlPTQpLERlPDY1NTM2fHwoZ3Q9NTUyOTYrKChEZS09NjU1MzYpPj4xMCYxMDIzKSxEZT01NjMyMCsoMTAyMyZEZSkseWVbJGUrK109U3RyaW5nLmZyb21DaGFy''@;'; put 'put ''Q29kZShndCkpLHllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoRGUpO2JyZWFrO2Nhc2UiYXNjaWkiOmlmKFcmJkJ1ZmZlci5pc0J1ZmZlcihUKSlyZXR1cm4gVC50b1N0cmluZyh2dCk7Zm9yKFBlPTA7UGU8RjtQZSsrKXllW1BlXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGVdKTskZT1G''@;'; put 'put ''O2JyZWFrO2Nhc2UidXRmMTZsZSI6aWYoRj49MiYmMjU1PT1UWzBdJiYyNTQ9PVRbMV0mJihQZT0yKSxXJiZCdWZmZXIuaXNCdWZmZXIoVCkpcmV0dXJuIFQudG9TdHJpbmcodnQpO2ZvcihRZT0yO1BlKzE8RjtQZSs9UWUpeWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSgoVFtQZSsxXTw8''@;'; put 'put ''OCkrVFtQZV0pO2JyZWFrO2Nhc2UidXRmMTZiZSI6Zm9yKEY+PTImJjI1ND09VFswXSYmMjU1PT1UWzFdJiYoUGU9MiksUWU9MjtQZSsxPEY7UGUrPVFlKXllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoKFRbUGVdPDw4KStUW1BlKzFdKTticmVhaztjYXNlInV0ZjMybGUiOmZvcihGPj00''@;'; put 'put ''JiYyNTU9PVRbMF0mJjI1ND09VFsxXSYmMD09PVRbMl0mJjA9PT1UWzNdJiYoUGU9NCksUWU9NDtQZTxGO1BlKz1RZSkoRGU9KFRbUGUrM108PDI0KSsoVFtQZSsyXTw8MTYpKyhUW1BlKzFdPDw4KStUW1BlXSk+NjU1MzU/KERlLT02NTUzNix5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2Rl''@;'; put 'put ''KDU1Mjk2KyhEZT4+MTAmMTAyMykpLHllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoNTYzMjArKDEwMjMmRGUpKSk6eWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZShEZSk7YnJlYWs7Y2FzZSJ1dGYzMmJlIjpmb3IoRj49NCYmMjU1PT1UWzNdJiYyNTQ9PVRbMl0mJjA9PT1UWzFdJiYw''@;'; put 'put ''PT09VFswXSYmKFBlPTQpLFFlPTQ7UGU8RjtQZSs9UWUpKERlPShUW1BlXTw8MjQpKyhUW1BlKzFdPDwxNikrKFRbUGUrMl08PDgpK1RbUGUrM10pPjY1NTM1PyhEZS09NjU1MzYseWVbJGUrK109U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NisoRGU+PjEwJjEwMjMpKSx5ZVskZSsrXT1TdHJp''@;'; put 'put ''bmcuZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJkRlKSkpOnllWyRlKytdPVN0cmluZy5mcm9tQ2hhckNvZGUoRGUpO2JyZWFrO2Nhc2UidXRmNyI6Zm9yKEY+PTQmJjQzPT1UWzBdJiY0Nz09VFsxXSYmMTE4PT1UWzJdJiYoRj49NSYmNTY9PVRbM10mJjQ1PT1UWzRdP1BlPTU6KDU2PT1UWzNd''@;'; put 'put ''fHw1Nz09VFszXXx8NDM9PVRbM118fDQ3PT1UWzNdKSYmKFBlPTQpKTtQZTxGO1BlKz1RZSlpZig0Mz09PVRbUGVdKWlmKFFlPTEsNDUhPT1UW1BlKzFdKXtmb3IoO1N0cmluZy5mcm9tQ2hhckNvZGUoVFtQZStRZV0pLm1hdGNoKC9bQS1aYS16MC05K1wvXS8pOylRZSsrO3ZhciBBdD0wOzQ1''@;'; put 'put ''PT09VFtQZStRZV0mJigrK1FlLEF0PTEpO2Zvcih2YXIgaHQ9W10sQnQ9IiIsZXQ9MCxsdD0wLEx0PTAsQ3Q9MCxmdD0xO2Z0PFFlLUF0JiYoZXQ9TWUuaW5kZXhPZihTdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGUrZnQrK10pKSxsdD1NZS5pbmRleE9mKFN0cmluZy5mcm9tQ2hhckNvZGUoVFtQ''@;'; put 'put ''ZStmdCsrXSkpLGh0LnB1c2goZXQ8PDJ8bHQ+PjQpLC0xIT09KEx0PU1lLmluZGV4T2YoU3RyaW5nLmZyb21DaGFyQ29kZShUW1BlK2Z0KytdKSkpJiYoaHQucHVzaCgoMTUmbHQpPDw0fEx0Pj4yKSwtMSE9PShDdD1NZS5pbmRleE9mKFN0cmluZy5mcm9tQ2hhckNvZGUoVFtQZStmdCsrXSkp''@;'; put 'put ''KSkpOylDdDw2NCYmaHQucHVzaCgoMyZMdCk8PDZ8Q3QpO2ZvcihCdD1QKDEyMDEsaHQpLGZ0PTA7ZnQ8QnQubGVuZ3RoOysrZnQpeWVbJGUrK109QnQuY2hhckF0KGZ0KX1lbHNlIFFlPTIseWVbJGUrK109IisiO2Vsc2UgUWU9MSx5ZVskZSsrXT1TdHJpbmcuZnJvbUNoYXJDb2RlKFRbUGVd''@;'; put 'put ''KTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgbWFnaWM6ICIrVisiICIrbWVbVl0pfX1yZXR1cm4geWUuc2xpY2UoMCwkZSkuam9pbigiIil9LGVuY29kZTpmdW5jdGlvbiBQKFYsVCxTKXtpZihWPT09eiYmTylyZXR1cm4gTyhULFMpO2lmKHJlW1ZdKXJldHVy''@;'; put 'put ''bihPPXJlW3o9Vl0pKFQsUyk7VyYmQnVmZmVyLmlzQnVmZmVyKFQpJiYoVD1ULnRvU3RyaW5nKCJ1dGY4IikpO3ZhciBndCxGPVQubGVuZ3RoLHllPVc/QnVmZmVyLmFsbG9jVW5zYWZlKDQqRik6W10sQ2U9MCxEZT0wLFBlPTAsUWU9MCwkZT1MW1ZdLHd0PSIiLG10PSJzdHJpbmciPT10eXBl''@;'; put 'put ''b2YgVDtpZigkZSYmKGd0PSRlLmVuYykpZm9yKERlPTA7RGU8RjsrK0RlLCsrUGUpKENlPWd0W210P1QuY2hhckF0KERlKTpUW0RlXV0pPjI1NT8oeWVbUGVdPUNlPj44LHllWysrUGVdPTI1NSZDZSk6eWVbUGVdPTI1NSZDZTtlbHNle2lmKCEod3Q9bWVbVl0pKXRocm93IG5ldyBFcnJvcigi''@;'; put 'put ''VW5yZWNvZ25pemVkIENQOiAiK1YpO3N3aXRjaCh3dCl7Y2FzZSJ1dGY4IjppZihXJiZtdCl7UGU9KHllPU4oVCx3dCkpLmxlbmd0aDticmVha31mb3IoRGU9MDtEZTxGOysrRGUsKytQZSkoQ2U9bXQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApKTw9MTI3P3llW1BlXT1D''@;'; put 'put ''ZTpDZTw9MjA0Nz8oeWVbUGVdPTE5MisoQ2U+PjYpLHllWysrUGVdPTEyOCsoNjMmQ2UpKTpDZT49NTUyOTYmJkNlPD01NzM0Mz8oQ2UtPTU1Mjk2LFFlPShtdD9ULmNoYXJDb2RlQXQoKytEZSk6VFsrK0RlXS5jaGFyQ29kZUF0KDApKS01NjMyMCsoQ2U8PDEwKSx5ZVtQZV09MjQwKyhRZT4+''@;'; put 'put ''PjE4JjcpLHllWysrUGVdPTE0NCsoUWU+Pj4xMiY2MykseWVbKytQZV09MTI4KyhRZT4+PjYmNjMpLHllWysrUGVdPTEyOCsoNjMmUWUpKTooeWVbUGVdPTIyNCsoQ2U+PjEyKSx5ZVsrK1BlXT0xMjgrKENlPj42JjYzKSx5ZVsrK1BlXT0xMjgrKDYzJkNlKSk7YnJlYWs7Y2FzZSJhc2NpaSI6''@;'; put 'put ''aWYoVyYmInN0cmluZyI9PXR5cGVvZiBUKXtQZT0oeWU9TihULHd0KSkubGVuZ3RoO2JyZWFrfWZvcihEZT0wO0RlPEY7KytEZSwrK1BlKXtpZighKChDZT1tdD9ULmNoYXJDb2RlQXQoRGUpOlRbRGVdLmNoYXJDb2RlQXQoMCkpPD0xMjcpKXRocm93IG5ldyBFcnJvcigiYmFkIGFzY2lpICIr''@;'; put 'put ''Q2UpO3llW1BlXT1DZX1icmVhaztjYXNlInV0ZjE2bGUiOmlmKFcmJiJzdHJpbmciPT10eXBlb2YgVCl7UGU9KHllPU4oVCx3dCkpLmxlbmd0aDticmVha31mb3IoRGU9MDtEZTxGOysrRGUpQ2U9bXQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApLHllW1BlKytdPTI1NSZD''@;'; put 'put ''ZSx5ZVtQZSsrXT1DZT4+ODticmVhaztjYXNlInV0ZjE2YmUiOmZvcihEZT0wO0RlPEY7KytEZSlDZT1tdD9ULmNoYXJDb2RlQXQoRGUpOlRbRGVdLmNoYXJDb2RlQXQoMCkseWVbUGUrK109Q2U+PjgseWVbUGUrK109MjU1JkNlO2JyZWFrO2Nhc2UidXRmMzJsZSI6Zm9yKERlPTA7RGU8Rjsr''@;'; put 'put ''K0RlKShDZT1tdD9ULmNoYXJDb2RlQXQoRGUpOlRbRGVdLmNoYXJDb2RlQXQoMCkpPj01NTI5NiYmQ2U8PTU3MzQzJiYoQ2U9NjU1MzYrKENlLTU1Mjk2PDwxMCkrKFRbKytEZV0uY2hhckNvZGVBdCgwKS01NjMyMCkpLHllW1BlKytdPTI1NSZDZSx5ZVtQZSsrXT0yNTUmKENlPj49OCkseWVb''@;'; put 'put ''UGUrK109MjU1JihDZT4+PTgpLHllW1BlKytdPTI1NSYoQ2U+Pj04KTticmVhaztjYXNlInV0ZjMyYmUiOmZvcihEZT0wO0RlPEY7KytEZSkoQ2U9bXQ/VC5jaGFyQ29kZUF0KERlKTpUW0RlXS5jaGFyQ29kZUF0KDApKT49NTUyOTYmJkNlPD01NzM0MyYmKENlPTY1NTM2KyhDZS01NTI5Njw8''@;'; put 'put ''MTApKyhUWysrRGVdLmNoYXJDb2RlQXQoMCktNTYzMjApKSx5ZVtQZSszXT0yNTUmQ2UseWVbUGUrMl09MjU1JihDZT4+PTgpLHllW1BlKzFdPTI1NSYoQ2U+Pj04KSx5ZVtQZV09MjU1JihDZT4+PTgpLFBlKz00O2JyZWFrO2Nhc2UidXRmNyI6Zm9yKERlPTA7RGU8RjtEZSsrKXt2YXIgdnQ9''@;'; put 'put ''bXQ/VC5jaGFyQXQoRGUpOlRbRGVdLmNoYXJBdCgwKTtpZigiKyIhPT12dClpZigiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknKCksLS4vOj8iLmluZGV4T2YodnQpPi0xKXllW1BlKytdPXZ0LmNoYXJDb2RlQXQoMCk7ZWxz''@;'; put 'put ''ZXt2YXIgQXQ9UCgxMjAxLHZ0KTt5ZVtQZSsrXT00Myx5ZVtQZSsrXT1NZS5jaGFyQ29kZUF0KEF0WzBdPj4yKSx5ZVtQZSsrXT1NZS5jaGFyQ29kZUF0KCgoMyZBdFswXSk8PDQpKygoQXRbMV18fDApPj40KSkseWVbUGUrK109TWUuY2hhckNvZGVBdCgoKDE1JkF0WzFdKTw8MikrKChBdFsy''@;'; put 'put ''XXx8MCk+PjYpKSx5ZVtQZSsrXT00NX1lbHNlIHllW1BlKytdPTQzLHllW1BlKytdPTQ1fWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBtYWdpYzogIitWKyIgIittZVtWXSl9fXJldHVybiB5ZT15ZS5zbGljZSgwLFBlKSxXP1MmJiJidWYiIT09Uz8iYXJyIiE9''@;'; put 'put ''PVM/eWUudG9TdHJpbmcoImJpbmFyeSIpOltdLnNsaWNlLmNhbGwoeWUpOnllOiJzdHIiPT1TP3llLm1hcChhZSkuam9pbigiIik6eWV9LGhhc2NwOmZ1bmN0aW9uKFYpe3JldHVybiEoIUxbVl0mJiFtZVtWXSl9LG1hZ2ljOm1lLGNhY2hlOlRlfSxMfSl9LDY5OTYzOihYZSxKZSk9Pnt2YXIg''@;'; put 'put ''TCxtZSxCOyFmdW5jdGlvbihFKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIERPX05PVF9FWFBPUlRfSlNaSVApWGUuZXhwb3J0cz1FKCk7ZWxzZSBpZigidW5kZWZpbmVkIj09dHlwZW9mIERPX05PVF9FWFBPUlRfSlNaSVApSlNaaXBTeW5jPUUoKSxtZT1bXSx2b2lkIDAhPT0oQj0iZnVuY3Rp''@;'; put 'put ''b24iPT10eXBlb2YoTD1FKT9MLmFwcGx5KEplLG1lKTpMKSYmKFhlLmV4cG9ydHM9Qik7ZWxzZXt2YXIgRWU7InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP0VlPWdsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/RWU9d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; put 'put ''Z2xvYmFsP0VlPWdsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mICQmJiQuZ2xvYmFsP0VlPSQuZ2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmKEVlPXNlbGYpLEVlLkpTWmlwU3luYz1FKCl9fShmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBRKGoscmUsYWUpe2Z1bmN0aW9uIFko''@;'; put 'put ''dGUsSyl7aWYoIXJlW3RlXSl7aWYoIWpbdGVdKXtpZihXKXJldHVybiBXKHRlLCEwKTt0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIG1vZHVsZSAnIit0ZSsiJyIpfXZhciBzZT1yZVt0ZV09e2V4cG9ydHM6e319O2pbdGVdWzBdLmNhbGwoc2UuZXhwb3J0cyxmdW5jdGlvbihvZSl7cmV0''@;'; put 'put ''dXJuIFkoalt0ZV1bMV1bb2VdfHxvZSl9LHNlLHNlLmV4cG9ydHMsUSxqLHJlLGFlKX1yZXR1cm4gcmVbdGVdLmV4cG9ydHN9Zm9yKHZhciBXPXZvaWQgMCxOPTA7TjxhZS5sZW5ndGg7TisrKVkoYWVbTl0pO3JldHVybiBZfSh7MTpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFy''@;'; put 'put ''IGFlPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7cmUuZW5jb2RlPWZ1bmN0aW9uKFksVyl7Zm9yKHZhciB0ZSxLLEosc2Usb2UsY2UsZGUsTj0iIix2ZT0wO3ZlPFkubGVuZ3RoOylzZT0odGU9WS5jaGFyQ29kZUF0''@;'; put 'put ''KHZlKyspKT4+MixvZT0oMyZ0ZSk8PDR8KEs9WS5jaGFyQ29kZUF0KHZlKyspKT4+NCxjZT0oMTUmSyk8PDJ8KEo9WS5jaGFyQ29kZUF0KHZlKyspKT4+NixkZT02MyZKLGlzTmFOKEspP2NlPWRlPTY0OmlzTmFOKEopJiYoZGU9NjQpLE49TithZS5jaGFyQXQoc2UpK2FlLmNoYXJBdChvZSkr''@;'; put 'put ''YWUuY2hhckF0KGNlKSthZS5jaGFyQXQoZGUpO3JldHVybiBOfSxyZS5kZWNvZGU9ZnVuY3Rpb24oWSxXKXt2YXIgSyxKLHNlLG9lLGNlLGRlLE49IiIsdmU9MDtmb3IoWT1ZLnJlcGxhY2UoL1teQS1aYS16MC05XCtcL1w9XS9nLCIiKTt2ZTxZLmxlbmd0aDspc2U9YWUuaW5kZXhPZihZLmNo''@;'; put 'put ''YXJBdCh2ZSsrKSksSz0oMTUmKG9lPWFlLmluZGV4T2YoWS5jaGFyQXQodmUrKykpKSk8PDR8KGNlPWFlLmluZGV4T2YoWS5jaGFyQXQodmUrKykpKT4+MixKPSgzJmNlKTw8NnwoZGU9YWUuaW5kZXhPZihZLmNoYXJBdCh2ZSsrKSkpLE4rPVN0cmluZy5mcm9tQ2hhckNvZGUoc2U8PDJ8b2U+''@;'; put 'put ''PjQpLDY0IT1jZSYmKE4rPVN0cmluZy5mcm9tQ2hhckNvZGUoSykpLDY0IT1kZSYmKE4rPVN0cmluZy5mcm9tQ2hhckNvZGUoSikpO3JldHVybiBOfX0se31dLDI6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGFlKCl7dGhpcy5jb21wcmVzc2VkU2l6ZT0wLHRoaXMu''@;'; put 'put ''dW5jb21wcmVzc2VkU2l6ZT0wLHRoaXMuY3JjMzI9MCx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPW51bGwsdGhpcy5jb21wcmVzc2VkQ29udGVudD1udWxsfWFlLnByb3RvdHlwZT17Z2V0Q29udGVudDpmdW5jdGlvbigpe3JldHVybiBudWxsfSxnZXRDb21wcmVzc2VkQ29udGVudDpmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiBudWxsfX0sai5leHBvcnRzPWFlfSx7fV0sMzpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7cmUuU1RPUkU9e21hZ2ljOiJcMFwwIixjb21wcmVzczpmdW5jdGlvbihhZSl7cmV0dXJuIGFlfSx1bmNvbXByZXNzOmZ1bmN0aW9uKGFlKXtyZXR1cm4gYWV9LGNvbXBy''@;'; put 'put ''ZXNzSW5wdXRUeXBlOm51bGwsdW5jb21wcmVzc0lucHV0VHlwZTpudWxsfSxyZS5ERUZMQVRFPVEoIi4vZmxhdGUiKX0seyIuL2ZsYXRlIjo4fV0sNDpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdXRpbHMiKSxZPVswLDE5OTY5NTk4OTQsMzk5MzkxOTc4OCwy''@;'; put 'put ''NTY3NTI0Nzk0LDEyNDYzNDEzNywxODg2MDU3NjE1LDM5MTU2MjE2ODUsMjY1NzM5MjAzNSwyNDkyNjgyNzQsMjA0NDUwODMyNCwzNzcyMTE1MjMwLDI1NDcxNzc4NjQsMTYyOTQxOTk1LDIxMjU1NjEwMjEsMzg4NzYwNzA0NywyNDI4NDQ0MDQ5LDQ5ODUzNjU0OCwxNzg5OTI3NjY2LDQwODkw''@;'; put 'put ''MTY2NDgsMjIyNzA2MTIxNCw0NTA1NDg4NjEsMTg0MzI1ODYwMyw0MTA3NTgwNzUzLDIyMTE2Nzc2MzksMzI1ODgzOTkwLDE2ODQ3NzcxNTIsNDI1MTEyMjA0MiwyMzIxOTI2NjM2LDMzNTYzMzQ4NywxNjYxMzY1NDY1LDQxOTUzMDI3NTUsMjM2NjExNTMxNyw5OTcwNzMwOTYsMTI4MTk1Mzg4''@;'; put 'put ''NiwzNTc5ODU1MzMyLDI3MjQ2ODgyNDIsMTAwNjg4ODE0NSwxMjU4NjA3Njg3LDM1MjQxMDE2MjksMjc2ODk0MjQ0Myw5MDEwOTc3MjIsMTExOTAwMDY4NCwzNjg2NTE3MjA2LDI4OTgwNjU3MjgsODUzMDQ0NDUxLDExNzIyNjYxMDEsMzcwNTAxNTc1OSwyODgyNjE2NjY1LDY1MTc2Nzk4MCwx''@;'; put 'put ''MzczNTAzNTQ2LDMzNjk1NTQzMDQsMzIxODEwNDU5OCw1NjU1MDcyNTMsMTQ1NDYyMTczMSwzNDg1MTExNzA1LDMwOTk0MzYzMDMsNjcxMjY2OTc0LDE1OTQxOTgwMjQsMzMyMjczMDkzMCwyOTcwMzQ3ODEyLDc5NTgzNTUyNywxNDgzMjMwMjI1LDMyNDQzNjcyNzUsMzA2MDE0OTU2NSwxOTk0''@;'; put 'put ''MTQ2MTkyLDMxMTU4NTM0LDI1NjM5MDc3NzIsNDAyMzcxNzkzMCwxOTA3NDU5NDY1LDExMjYzNzIxNSwyNjgwMTUzMjUzLDM5MDQ0MjcwNTksMjAxMzc3NjI5MCwyNTE3MjIwMzYsMjUxNzIxNTM3NCwzNzc1ODMwMDQwLDIxMzc2NTY3NjMsMTQxMzc2ODEzLDI0MzkyNzc3MTksMzg2NTI3MTI5''@;'; put 'put ''NywxODAyMTk1NDQ0LDQ3Njg2NDg2NiwyMjM4MDAxMzY4LDQwNjY1MDg4NzgsMTgxMjM3MDkyNSw0NTMwOTI3MzEsMjE4MTYyNTAyNSw0MTExNDUxMjIzLDE3MDYwODg5MDIsMzE0MDQyNzA0LDIzNDQ1MzIyMDIsNDI0MDAxNzUzMiwxNjU4NjU4MjcxLDM2NjYxOTk3NywyMzYyNjcwMzIzLDQy''@;'; put 'put ''MjQ5OTQ0MDUsMTMwMzUzNTk2MCw5ODQ5NjE0ODYsMjc0NzAwNzA5MiwzNTY5MDM3NTM4LDEyNTYxNzA4MTcsMTAzNzYwNDMxMSwyNzY1MjEwNzMzLDM1NTQwNzk5OTUsMTEzMTAxNDUwNiw4Nzk2Nzk5OTYsMjkwOTI0MzQ2MiwzNjYzNzcxODU2LDExNDExMjQ0NjcsODU1ODQyMjc3LDI4NTI4''@;'; put 'put ''MDE2MzEsMzcwODY0ODY0OSwxMzQyNTMzOTQ4LDY1NDQ1OTMwNiwzMTg4Mzk2MDQ4LDMzNzMwMTUxNzQsMTQ2NjQ3OTkwOSw1NDQxNzk2MzUsMzExMDUyMzkxMywzNDYyNTIyMDE1LDE1OTE2NzEwNTQsNzAyMTM4Nzc2LDI5NjY0NjA0NTAsMzM1Mjc5OTQxMiwxNTA0OTE4ODA3LDc4MzU1MTg3''@;'; put 'put ''MywzMDgyNjQwNDQzLDMyMzM0NDI5ODksMzk4ODI5MjM4NCwyNTk2MjU0NjQ2LDYyMzE3MDY4LDE5NTc4MTA4NDIsMzkzOTg0NTk0NSwyNjQ3ODE2MTExLDgxNDcwOTk3LDE5NDM4MDM1MjMsMzgxNDkxODkzMCwyNDg5NTk2ODA0LDIyNTI3NDQzMCwyMDUzNzkwMzc2LDM4MjYxNzU3NTUsMjQ2''@;'; put 'put ''NjkwNjAxMywxNjc4MTY3NDMsMjA5NzY1MTM3Nyw0MDI3NTUyNTgwLDIyNjU0OTAzODYsNTAzNDQ0MDcyLDE3NjIwNTA4MTQsNDE1MDQxNzI0NSwyMTU0MTI5MzU1LDQyNjUyMjIyNSwxODUyNTA3ODc5LDQyNzUzMTM1MjYsMjMxMjMxNzkyMCwyODI3NTM2MjYsMTc0MjU1NTg1Miw0MTg5NzA4''@;'; put 'put ''MTQzLDIzOTQ4Nzc5NDUsMzk3OTE3NzYzLDE2MjIxODM2MzcsMzYwNDM5MDg4OCwyNzE0ODY2NTU4LDk1MzcyOTczMiwxMzQwMDc2NjI2LDM1MTg3MTk5ODUsMjc5NzM2MDk5OSwxMDY4ODI4MzgxLDEyMTk2Mzg4NTksMzYyNDc0MTg1MCwyOTM2Njc1MTQ4LDkwNjE4NTQ2MiwxMDkwODEyNTEy''@;'; put 'put ''LDM3NDc2NzIwMDMsMjgyNTM3OTY2OSw4MjkzMjkxMzUsMTE4MTMzNTE2MSwzNDEyMTc3ODA0LDMxNjA4MzQ4NDIsNjI4MDg1NDA4LDEzODI2MDUzNjYsMzQyMzM2OTEwOSwzMTM4MDc4NDY3LDU3MDU2MjIzMywxNDI2NDAwODE1LDMzMTczMTY1NDIsMjk5ODczMzYwOCw3MzMyMzk5NTQsMTU1''@;'; put 'put ''NTI2MTk1NiwzMjY4OTM1NTkxLDMwNTAzNjA2MjUsNzUyNDU5NDAzLDE1NDEzMjAyMjEsMjYwNzA3MTkyMCwzOTY1OTczMDMwLDE5Njk5MjI5NzIsNDA3MzU0OTgsMjYxNzgzNzIyNSwzOTQzNTc3MTUxLDE5MTMwODc4NzcsODM5MDgzNzEsMjUxMjM0MTYzNCwzODAzNzQwNjkyLDIwNzUyMDg2''@;'; put 'put ''MjIsMjEzMjYxMTEyLDI0NjMyNzI2MDMsMzg1NTk5MDI4NSwyMDk0ODU0MDcxLDE5ODk1ODg4MSwyMjYyMDI5MDEyLDQwNTcyNjA2MTAsMTc1OTM1OTk5Miw1MzQ0MTQxOTAsMjE3NjcxODU0MSw0MTM5MzI5MTE1LDE4NzM4MzYwMDEsNDE0NjY0NTY3LDIyODIyNDg5MzQsNDI3OTIwMDM2OCwx''@;'; put 'put ''NzExNjg0NTU0LDI4NTI4MTExNiwyNDA1ODAxNzI3LDQxNjcyMTY3NDUsMTYzNDQ2Nzc5NSwzNzYyMjk3MDEsMjY4NTA2Nzg5NiwzNjA4MDA3NDA2LDEzMDg5MTg2MTIsOTU2NTQzOTM4LDI4MDg1NTUxMDUsMzQ5NTk1ODI2MywxMjMxNjM2MzAxLDEwNDc0MjcwMzUsMjkzMjk1OTgxOCwzNjU0''@;'; put 'put ''NzAzODM2LDEwODgzNTkyNzAsOTM2OTE4ZTMsMjg0NzcxNDg5OSwzNzM2ODM3ODI5LDEyMDI5MDA4NjMsODE3MjMzODk3LDMxODMzNDIxMDgsMzQwMTIzNzEzMCwxNDA0Mjc3NTUyLDYxNTgxODE1MCwzMTM0MjA3NDkzLDM0NTM0MjEyMDMsMTQyMzg1NzQ0OSw2MDE0NTA0MzEsMzAwOTgzNzYx''@;'; put 'put ''NCwzMjk0NzEwNDU2LDE1NjcxMDM3NDYsNzExOTI4NzI0LDMwMjA2Njg0NzEsMzI3MjM4MDA2NSwxNTEwMzM0MjM1LDc1NTE2NzExN107ai5leHBvcnRzPWZ1bmN0aW9uKE4sdGUpe2lmKHZvaWQgMD09PU58fCFOLmxlbmd0aClyZXR1cm4gMDt2YXIgSz0ic3RyaW5nIiE9PWFlLmdldFR5cGVP''@;'; put 'put ''ZihOKTt2b2lkIDA9PT10ZSYmKHRlPTApO3ZhciBvZT0wO3RlXj0tMTtmb3IodmFyIGNlPTAsZGU9Ti5sZW5ndGg7Y2U8ZGU7Y2UrKylvZT1LP05bY2VdOk4uY2hhckNvZGVBdChjZSksdGU9dGU+Pj44XllbMjU1Jih0ZV5vZSldO3JldHVybi0xXnRlfX0seyIuL3V0aWxzIjoyMX1dLDU6W2Z1''@;'; put 'put ''bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL3V0aWxzIik7ZnVuY3Rpb24gWShXKXt0aGlzLmRhdGE9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMuaW5kZXg9MH1ZLnByb3RvdHlwZT17Y2hlY2tPZmZzZXQ6ZnVuY3Rpb24oVyl7dGhpcy5jaGVja0luZGV4KHRoaXMuaW5k''@;'; put 'put ''ZXgrVyl9LGNoZWNrSW5kZXg6ZnVuY3Rpb24oVyl7aWYodGhpcy5sZW5ndGg8V3x8VzwwKXRocm93IG5ldyBFcnJvcigiRW5kIG9mIGRhdGEgcmVhY2hlZCAoZGF0YSBsZW5ndGggPSAiK3RoaXMubGVuZ3RoKyIsIGFza2VkIGluZGV4ID0gIitXKyIpLiBDb3JydXB0ZWQgemlwID8iKX0sc2V0''@;'; put 'put ''SW5kZXg6ZnVuY3Rpb24oVyl7dGhpcy5jaGVja0luZGV4KFcpLHRoaXMuaW5kZXg9V30sc2tpcDpmdW5jdGlvbihXKXt0aGlzLnNldEluZGV4KHRoaXMuaW5kZXgrVyl9LGJ5dGVBdDpmdW5jdGlvbihXKXt9LHJlYWRJbnQ6ZnVuY3Rpb24oVyl7dmFyIHRlLE49MDtmb3IodGhpcy5jaGVja09m''@;'; put 'put ''ZnNldChXKSx0ZT10aGlzLmluZGV4K1ctMTt0ZT49dGhpcy5pbmRleDt0ZS0tKU49KE48PDgpK3RoaXMuYnl0ZUF0KHRlKTtyZXR1cm4gdGhpcy5pbmRleCs9VyxOfSxyZWFkU3RyaW5nOmZ1bmN0aW9uKFcpe3JldHVybiBhZS50cmFuc2Zvcm1Ubygic3RyaW5nIix0aGlzLnJlYWREYXRhKFcp''@;'; put 'put ''KX0scmVhZERhdGE6ZnVuY3Rpb24oVyl7fSxsYXN0SW5kZXhPZlNpZ25hdHVyZTpmdW5jdGlvbihXKXt9LHJlYWREYXRlOmZ1bmN0aW9uKCl7dmFyIFc9dGhpcy5yZWFkSW50KDQpO3JldHVybiBuZXcgRGF0ZSgxOTgwKyhXPj4yNSYxMjcpLChXPj4yMSYxNSktMSxXPj4xNiYzMSxXPj4xMSYz''@;'; put 'put ''MSxXPj41JjYzLCgzMSZXKTw8MSl9fSxqLmV4cG9ydHM9WX0seyIuL3V0aWxzIjoyMX1dLDY6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3JlLmJhc2U2ND0hMSxyZS5iaW5hcnk9ITEscmUuZGlyPSExLHJlLmNyZWF0ZUZvbGRlcnM9ITEscmUuZGF0ZT1udWxsLHJlLmNvbXByZXNz''@;'; put 'put ''aW9uPW51bGwscmUuY29tbWVudD1udWxsfSx7fV0sNzpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdXRpbHMiKTtyZS5zdHJpbmcyYmluYXJ5PWZ1bmN0aW9uKFkpe3JldHVybiBhZS5zdHJpbmcyYmluYXJ5KFkpfSxyZS5zdHJpbmcyVWludDhBcnJheT1mdW5j''@;'; put 'put ''dGlvbihZKXtyZXR1cm4gYWUudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLFkpfSxyZS51aW50OEFycmF5MlN0cmluZz1mdW5jdGlvbihZKXtyZXR1cm4gYWUudHJhbnNmb3JtVG8oInN0cmluZyIsWSl9LHJlLnN0cmluZzJCbG9iPWZ1bmN0aW9uKFkpe3ZhciBXPWFlLnRyYW5zZm9ybVRvKCJh''@;'; put 'put ''cnJheWJ1ZmZlciIsWSk7cmV0dXJuIGFlLmFycmF5QnVmZmVyMkJsb2IoVyl9LHJlLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24oWSl7cmV0dXJuIGFlLmFycmF5QnVmZmVyMkJsb2IoWSl9LHJlLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKFksVyl7cmV0dXJuIGFlLnRyYW5zZm9ybVRvKFksVyl9''@;'; put 'put ''LHJlLmdldFR5cGVPZj1mdW5jdGlvbihZKXtyZXR1cm4gYWUuZ2V0VHlwZU9mKFkpfSxyZS5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIGFlLmNoZWNrU3VwcG9ydChZKX0scmUuTUFYX1ZBTFVFXzE2QklUUz1hZS5NQVhfVkFMVUVfMTZCSVRTLHJlLk1BWF9WQUxVRV8zMkJJVFM9''@;'; put 'put ''YWUuTUFYX1ZBTFVFXzMyQklUUyxyZS5wcmV0dHk9ZnVuY3Rpb24oWSl7cmV0dXJuIGFlLnByZXR0eShZKX0scmUuZmluZENvbXByZXNzaW9uPWZ1bmN0aW9uKFkpe3JldHVybiBhZS5maW5kQ29tcHJlc3Npb24oWSl9LHJlLmlzUmVnRXhwPWZ1bmN0aW9uKFkpe3JldHVybiBhZS5pc1JlZ0V4''@;'; put 'put ''cChZKX19LHsiLi91dGlscyI6MjF9XSw4OltmdW5jdGlvbihRLGoscmUpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQxNkFycmF5JiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQzMkFycmF5LFk9USgi''@;'; put 'put ''cGFrbyIpO3JlLnVuY29tcHJlc3NJbnB1dFR5cGU9YWU/InVpbnQ4YXJyYXkiOiJhcnJheSIscmUuY29tcHJlc3NJbnB1dFR5cGU9YWU/InVpbnQ4YXJyYXkiOiJhcnJheSIscmUubWFnaWM9IlxiXDAiLHJlLmNvbXByZXNzPWZ1bmN0aW9uKFcpe3JldHVybiBZLmRlZmxhdGVSYXcoVyl9LHJl''@;'; put 'put ''LnVuY29tcHJlc3M9ZnVuY3Rpb24oVyl7cmV0dXJuIFkuaW5mbGF0ZVJhdyhXKX19LHtwYWtvOjI0fV0sOTpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vYmFzZTY0Iik7ZnVuY3Rpb24gWShXLE4pe2lmKCEodGhpcyBpbnN0YW5jZW9mIFkpKXJldHVybiBuZXcg''@;'; put 'put ''WShXLE4pO3RoaXMuZmlsZXM9e30sdGhpcy5jb21tZW50PW51bGwsdGhpcy5yb290PSIiLFcmJnRoaXMubG9hZChXLE4pLHRoaXMuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgdGU9bmV3IFk7Zm9yKHZhciBLIGluIHRoaXMpImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXNbS10mJih0ZVtLXT10aGlzW0td''@;'; put 'put ''KTtyZXR1cm4gdGV9fShZLnByb3RvdHlwZT1RKCIuL29iamVjdCIpKS5sb2FkPVEoIi4vbG9hZCIpLFkuc3VwcG9ydD1RKCIuL3N1cHBvcnQiKSxZLmRlZmF1bHRzPVEoIi4vZGVmYXVsdHMiKSxZLnV0aWxzPVEoIi4vZGVwcmVjYXRlZFB1YmxpY1V0aWxzIiksWS5iYXNlNjQ9e2VuY29kZTpm''@;'; put 'put ''dW5jdGlvbihXKXtyZXR1cm4gYWUuZW5jb2RlKFcpfSxkZWNvZGU6ZnVuY3Rpb24oVyl7cmV0dXJuIGFlLmRlY29kZShXKX19LFkuY29tcHJlc3Npb25zPVEoIi4vY29tcHJlc3Npb25zIiksai5leHBvcnRzPVl9LHsiLi9iYXNlNjQiOjEsIi4vY29tcHJlc3Npb25zIjozLCIuL2RlZmF1bHRz''@;'; put 'put ''Ijo2LCIuL2RlcHJlY2F0ZWRQdWJsaWNVdGlscyI6NywiLi9sb2FkIjoxMCwiLi9vYmplY3QiOjEzLCIuL3N1cHBvcnQiOjE3fV0sMTA6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL2Jhc2U2NCIpLFk9USgiLi96aXBFbnRyaWVzIik7ai5leHBvcnRzPWZ1bmN0''@;'; put 'put ''aW9uKFcsTil7dmFyIHRlLEssSixzZTtmb3IoKE49Tnx8e30pLmJhc2U2NCYmKFc9YWUuZGVjb2RlKFcpKSx0ZT0oSz1uZXcgWShXLE4pKS5maWxlcyxKPTA7Sjx0ZS5sZW5ndGg7SisrKXRoaXMuZmlsZSgoc2U9dGVbSl0pLmZpbGVOYW1lLHNlLmRlY29tcHJlc3NlZCx7YmluYXJ5OiEwLG9w''@;'; put 'put ''dGltaXplZEJpbmFyeVN0cmluZzohMCxkYXRlOnNlLmRhdGUsZGlyOnNlLmRpcixjb21tZW50OnNlLmZpbGVDb21tZW50Lmxlbmd0aD9zZS5maWxlQ29tbWVudDpudWxsLGNyZWF0ZUZvbGRlcnM6Ti5jcmVhdGVGb2xkZXJzfSk7cmV0dXJuIEsuemlwQ29tbWVudC5sZW5ndGgmJih0aGlzLmNv''@;'; put 'put ''bW1lbnQ9Sy56aXBDb21tZW50KSx0aGlzfX0seyIuL2Jhc2U2NCI6MSwiLi96aXBFbnRyaWVzIjoyMn1dLDExOltmdW5jdGlvbihRLGoscmUpeyhmdW5jdGlvbihhZSl7InVzZSBzdHJpY3QiO3ZhciBZPWZ1bmN0aW9uKCl7fTtpZih2b2lkIDAhPT1hZSl7dmFyIFc9IWFlLmZyb207aWYoIVcp''@;'; put 'put ''dHJ5e2FlLmZyb20oImZvbyIsInV0ZjgiKX1jYXRjaChOKXtXPSEwfVk9Vz9mdW5jdGlvbihOLHRlKXtyZXR1cm4gdGU/bmV3IGFlKE4sdGUpOm5ldyBhZShOKX06YWUuZnJvbS5iaW5kKGFlKSxhZS5hbGxvY3x8KGFlLmFsbG9jPWZ1bmN0aW9uKE4pe3JldHVybiBuZXcgYWUoTil9KX1qLmV4''@;'; put 'put ''cG9ydHM9ZnVuY3Rpb24oTix0ZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBOP2FlLmFsbG9jKE4pOlkoTix0ZSl9LGouZXhwb3J0cy50ZXN0PWZ1bmN0aW9uKE4pe3JldHVybiBhZS5pc0J1ZmZlcihOKX19KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXI/QnVmZmVyOnZv''@;'; put 'put ''aWQgMCl9LHt9XSwxMjpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdWludDhBcnJheVJlYWRlciIpO2Z1bmN0aW9uIFkoVyl7dGhpcy5kYXRhPVcsdGhpcy5sZW5ndGg9dGhpcy5kYXRhLmxlbmd0aCx0aGlzLmluZGV4PTB9KFkucHJvdG90eXBlPW5ldyBhZSku''@;'; put 'put ''cmVhZERhdGE9ZnVuY3Rpb24oVyl7dGhpcy5jaGVja09mZnNldChXKTt2YXIgTj10aGlzLmRhdGEuc2xpY2UodGhpcy5pbmRleCx0aGlzLmluZGV4K1cpO3JldHVybiB0aGlzLmluZGV4Kz1XLE59LGouZXhwb3J0cz1ZfSx7Ii4vdWludDhBcnJheVJlYWRlciI6MTh9XSwxMzpbZnVuY3Rpb24o''@;'; put 'put ''USxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vc3VwcG9ydCIpLFk9USgiLi91dGlscyIpLFc9USgiLi9jcmMzMiIpLE49USgiLi9zaWduYXR1cmUiKSx0ZT1RKCIuL2RlZmF1bHRzIiksSz1RKCIuL2Jhc2U2NCIpLEo9USgiLi9jb21wcmVzc2lvbnMiKSxzZT1RKCIuL2NvbXByZXNz''@;'; put 'put ''ZWRPYmplY3QiKSxvZT1RKCIuL25vZGVCdWZmZXIiKSxjZT1RKCIuL3V0ZjgiKSxkZT1RKCIuL3N0cmluZ1dyaXRlciIpLHZlPVEoIi4vdWludDhBcnJheVdyaXRlciIpLEFlPWZ1bmN0aW9uKFYpe2lmKFYuX2RhdGEgaW5zdGFuY2VvZiBzZSYmKFYuX2RhdGE9Vi5fZGF0YS5nZXRDb250ZW50''@;'; put 'put ''KCksVi5vcHRpb25zLmJpbmFyeT0hMCxWLm9wdGlvbnMuYmFzZTY0PSExLCJ1aW50OGFycmF5Ij09PVkuZ2V0VHlwZU9mKFYuX2RhdGEpKSl7dmFyIFQ9Vi5fZGF0YTtWLl9kYXRhPW5ldyBVaW50OEFycmF5KFQubGVuZ3RoKSwwIT09VC5sZW5ndGgmJlYuX2RhdGEuc2V0KFQsMCl9cmV0dXJu''@;'; put 'put ''IFYuX2RhdGF9LGtlPWZ1bmN0aW9uKFYpe3ZhciBUPUFlKFYpO3JldHVybiJzdHJpbmciPT09WS5nZXRUeXBlT2YoVCk/IVYub3B0aW9ucy5iaW5hcnkmJmFlLm5vZGVidWZmZXI/b2UoVCwidXRmLTgiKTpWLmFzQmluYXJ5KCk6VH0sU2U9ZnVuY3Rpb24oVil7dmFyIFQ9QWUodGhpcyk7cmV0''@;'; put 'put ''dXJuIG51bGw9PVQ/IiI6KHRoaXMub3B0aW9ucy5iYXNlNjQmJihUPUsuZGVjb2RlKFQpKSxUPVYmJnRoaXMub3B0aW9ucy5iaW5hcnk/UC51dGY4ZGVjb2RlKFQpOlkudHJhbnNmb3JtVG8oInN0cmluZyIsVCksIVYmJiF0aGlzLm9wdGlvbnMuYmluYXJ5JiYoVD1ZLnRyYW5zZm9ybVRvKCJz''@;'; put 'put ''dHJpbmciLFAudXRmOGVuY29kZShUKSkpLFQpfSxJZT1mdW5jdGlvbihWLFQsUyl7dGhpcy5uYW1lPVYsdGhpcy5kaXI9Uy5kaXIsdGhpcy5kYXRlPVMuZGF0ZSx0aGlzLmNvbW1lbnQ9Uy5jb21tZW50LHRoaXMuX2RhdGE9VCx0aGlzLm9wdGlvbnM9Uyx0aGlzLl9pbml0aWFsTWV0YWRhdGE9''@;'; put 'put ''e2RpcjpTLmRpcixkYXRlOlMuZGF0ZX19O0llLnByb3RvdHlwZT17YXNUZXh0OmZ1bmN0aW9uKCl7cmV0dXJuIFNlLmNhbGwodGhpcywhMCl9LGFzQmluYXJ5OmZ1bmN0aW9uKCl7cmV0dXJuIFNlLmNhbGwodGhpcywhMSl9LGFzTm9kZUJ1ZmZlcjpmdW5jdGlvbigpe3ZhciBWPWtlKHRoaXMp''@;'; put 'put ''O3JldHVybiBZLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixWKX0sYXNVaW50OEFycmF5OmZ1bmN0aW9uKCl7dmFyIFY9a2UodGhpcyk7cmV0dXJuIFkudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLFYpfSxhc0FycmF5QnVmZmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXNVaW50OEFycmF5''@;'; put 'put ''KCkuYnVmZmVyfX07dmFyIFRlPWZ1bmN0aW9uKFYsVCl7dmFyIEYsUz0iIjtmb3IoRj0wO0Y8VDtGKyspUys9U3RyaW5nLmZyb21DaGFyQ29kZSgyNTUmViksVj4+Pj04O3JldHVybiBTfSxNZT1mdW5jdGlvbigpe3ZhciBULFMsVj17fTtmb3IoVD0wO1Q8YXJndW1lbnRzLmxlbmd0aDtUKysp''@;'; put 'put ''Zm9yKFMgaW4gYXJndW1lbnRzW1RdKWFyZ3VtZW50c1tUXS5oYXNPd25Qcm9wZXJ0eShTKSYmdm9pZCAwPT09VltTXSYmKFZbU109YXJndW1lbnRzW1RdW1NdKTtyZXR1cm4gVn0sTz1mdW5jdGlvbihWLFQsUyl7dmFyIHllLEY9WS5nZXRUeXBlT2YoVCk7aWYoUz1mdW5jdGlvbihWKXtyZXR1''@;'; put 'put ''cm4hMD09PShWPVZ8fHt9KS5iYXNlNjQmJm51bGw9PVYuYmluYXJ5JiYoVi5iaW5hcnk9ITApLChWPU1lKFYsdGUpKS5kYXRlPVYuZGF0ZXx8bmV3IERhdGUsbnVsbCE9PVYuY29tcHJlc3Npb24mJihWLmNvbXByZXNzaW9uPVYuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSksVn0oUyksUy5j''@;'; put 'put ''cmVhdGVGb2xkZXJzJiYoeWU9eihWKSkmJmVlLmNhbGwodGhpcyx5ZSwhMCksUy5kaXJ8fG51bGw9PVQpUy5iYXNlNjQ9ITEsUy5iaW5hcnk9ITEsVD1udWxsO2Vsc2UgaWYoInN0cmluZyI9PT1GKVMuYmluYXJ5JiYhUy5iYXNlNjQmJiEwIT09Uy5vcHRpbWl6ZWRCaW5hcnlTdHJpbmcmJihU''@;'; put 'put ''PVkuc3RyaW5nMmJpbmFyeShUKSk7ZWxzZXtpZihTLmJhc2U2ND0hMSxTLmJpbmFyeT0hMCwhKEZ8fFQgaW5zdGFuY2VvZiBzZSkpdGhyb3cgbmV3IEVycm9yKCJUaGUgZGF0YSBvZiAnIitWKyInIGlzIGluIGFuIHVuc3VwcG9ydGVkIGZvcm1hdCAhIik7ImFycmF5YnVmZmVyIj09PUYmJihU''@;'; put 'put ''PVkudHJhbnNmb3JtVG8oInVpbnQ4YXJyYXkiLFQpKX12YXIgQ2U9bmV3IEllKFYsVCxTKTtyZXR1cm4gdGhpcy5maWxlc1tWXT1DZSxDZX0sej1mdW5jdGlvbihWKXsiLyI9PVYuc2xpY2UoLTEpJiYoVj1WLnN1YnN0cmluZygwLFYubGVuZ3RoLTEpKTt2YXIgVD1WLmxhc3RJbmRleE9mKCIv''@;'; put 'put ''Iik7cmV0dXJuIFQ+MD9WLnN1YnN0cmluZygwLFQpOiIifSxlZT1mdW5jdGlvbihWLFQpe3JldHVybiIvIiE9Vi5zbGljZSgtMSkmJihWKz0iLyIpLFQ9dm9pZCAwIT09VCYmVCx0aGlzLmZpbGVzW1ZdfHxPLmNhbGwodGhpcyxWLG51bGwse2RpcjohMCxjcmVhdGVGb2xkZXJzOlR9KSx0aGlz''@;'; put 'put ''LmZpbGVzW1ZdfSxuZT1mdW5jdGlvbihWLFQpe3ZhciBGLFM9bmV3IHNlO3JldHVybiBWLl9kYXRhIGluc3RhbmNlb2Ygc2U/KFMudW5jb21wcmVzc2VkU2l6ZT1WLl9kYXRhLnVuY29tcHJlc3NlZFNpemUsUy5jcmMzMj1WLl9kYXRhLmNyYzMyLDA9PT1TLnVuY29tcHJlc3NlZFNpemV8fFYu''@;'; put 'put ''ZGlyPyhUPUouU1RPUkUsUy5jb21wcmVzc2VkQ29udGVudD0iIixTLmNyYzMyPTApOlYuX2RhdGEuY29tcHJlc3Npb25NZXRob2Q9PT1ULm1hZ2ljP1MuY29tcHJlc3NlZENvbnRlbnQ9Vi5fZGF0YS5nZXRDb21wcmVzc2VkQ29udGVudCgpOihGPVYuX2RhdGEuZ2V0Q29udGVudCgpLFMuY29t''@;'; put 'put ''cHJlc3NlZENvbnRlbnQ9VC5jb21wcmVzcyhZLnRyYW5zZm9ybVRvKFQuY29tcHJlc3NJbnB1dFR5cGUsRikpKSk6KCghKEY9a2UoVikpfHwwPT09Ri5sZW5ndGh8fFYuZGlyKSYmKFQ9Si5TVE9SRSxGPSIiKSxTLnVuY29tcHJlc3NlZFNpemU9Ri5sZW5ndGgsUy5jcmMzMj1XKEYpLFMuY29t''@;'; put 'put ''cHJlc3NlZENvbnRlbnQ9VC5jb21wcmVzcyhZLnRyYW5zZm9ybVRvKFQuY29tcHJlc3NJbnB1dFR5cGUsRikpKSxTLmNvbXByZXNzZWRTaXplPVMuY29tcHJlc3NlZENvbnRlbnQubGVuZ3RoLFMuY29tcHJlc3Npb25NZXRob2Q9VC5tYWdpYyxTfSx4PWZ1bmN0aW9uKFYsVCxTLEYpe3ZhciB3''@;'; put 'put ''dCxtdCxCdCxvbixDZT1ZLnRyYW5zZm9ybVRvKCJzdHJpbmciLGNlLnV0ZjhlbmNvZGUoVC5uYW1lKSksRGU9VC5jb21tZW50fHwiIixQZT1ZLnRyYW5zZm9ybVRvKCJzdHJpbmciLGNlLnV0ZjhlbmNvZGUoRGUpKSxRZT1DZS5sZW5ndGghPT1ULm5hbWUubGVuZ3RoLCRlPVBlLmxlbmd0aCE9''@;'; put 'put ''PURlLmxlbmd0aCxndD1ULm9wdGlvbnMsdnQ9IiIsQXQ9IiIsaHQ9IiI7QnQ9VC5faW5pdGlhbE1ldGFkYXRhLmRpciE9PVQuZGlyP1QuZGlyOmd0LmRpcix3dD0ob249VC5faW5pdGlhbE1ldGFkYXRhLmRhdGUhPT1ULmRhdGU/VC5kYXRlOmd0LmRhdGUpLmdldEhvdXJzKCksd3Q8PD02LHd0''@;'; put 'put ''fD1vbi5nZXRNaW51dGVzKCksd3Q8PD01LHd0fD1vbi5nZXRTZWNvbmRzKCkvMixtdD1vbi5nZXRGdWxsWWVhcigpLTE5ODAsbXQ8PD00LG10fD1vbi5nZXRNb250aCgpKzEsbXQ8PD01LG10fD1vbi5nZXREYXRlKCksUWUmJihBdD1UZSgxLDEpK1RlKFcoQ2UpLDQpK0NlLHZ0Kz0idXAiK1Rl''@;'; put 'put ''KEF0Lmxlbmd0aCwyKStBdCksJGUmJihodD1UZSgxLDEpK1RlKHRoaXMuY3JjMzIoUGUpLDQpK1BlLHZ0Kz0idWMiK1RlKGh0Lmxlbmd0aCwyKStodCk7dmFyIF90PSIiO3JldHVybiBfdCs9IlxuXDAiLF90Kz1RZXx8JGU/IlwwXGIiOiJcMFwwIixfdCs9Uy5jb21wcmVzc2lvbk1ldGhvZCxf''@;'; put 'put ''dCs9VGUod3QsMiksX3QrPVRlKG10LDIpLF90Kz1UZShTLmNyYzMyLDQpLF90Kz1UZShTLmNvbXByZXNzZWRTaXplLDQpLF90Kz1UZShTLnVuY29tcHJlc3NlZFNpemUsNCksX3QrPVRlKENlLmxlbmd0aCwyKSxfdCs9VGUodnQubGVuZ3RoLDIpLHtmaWxlUmVjb3JkOk4uTE9DQUxfRklMRV9I''@;'; put 'put ''RUFERVIrX3QrQ2UrdnQsZGlyUmVjb3JkOk4uQ0VOVFJBTF9GSUxFX0hFQURFUisiXHgxNFwwIitfdCtUZShQZS5sZW5ndGgsMikrIlwwXDBcMFwwIisoITA9PT1CdD8iXHgxMFwwXDBcMCI6IlwwXDBcMFwwIikrVGUoRiw0KStDZSt2dCtQZSxjb21wcmVzc2VkT2JqZWN0OlN9fSxQPXtsb2Fk''@;'; put 'put ''OmZ1bmN0aW9uKFYsVCl7dGhyb3cgbmV3IEVycm9yKCJMb2FkIG1ldGhvZCBpcyBub3QgZGVmaW5lZC4gSXMgdGhlIGZpbGUganN6aXAtbG9hZC5qcyBpbmNsdWRlZCA/Iil9LGZpbHRlcjpmdW5jdGlvbihWKXt2YXIgUyxGLHllLENlLFQ9W107Zm9yKFMgaW4gdGhpcy5maWxlcykhdGhpcy5m''@;'; put 'put ''aWxlcy5oYXNPd25Qcm9wZXJ0eShTKXx8KENlPW5ldyBJZSgoeWU9dGhpcy5maWxlc1tTXSkubmFtZSx5ZS5fZGF0YSxNZSh5ZS5vcHRpb25zKSksRj1TLnNsaWNlKHRoaXMucm9vdC5sZW5ndGgsUy5sZW5ndGgpLFMuc2xpY2UoMCx0aGlzLnJvb3QubGVuZ3RoKT09PXRoaXMucm9vdCYmVihG''@;'; put 'put ''LENlKSYmVC5wdXNoKENlKSk7cmV0dXJuIFR9LGZpbGU6ZnVuY3Rpb24oVixULFMpe2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXtpZihZLmlzUmVnRXhwKFYpKXt2YXIgRj1WO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbih5ZSxDZSl7cmV0dXJuIUNlLmRpciYmRi50ZXN0KHllKX0pfXJl''@;'; put 'put ''dHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbih5ZSxDZSl7cmV0dXJuIUNlLmRpciYmeWU9PT1WfSlbMF18fG51bGx9cmV0dXJuIE8uY2FsbCh0aGlzLFY9dGhpcy5yb290K1YsVCxTKSx0aGlzfSxmb2xkZXI6ZnVuY3Rpb24oVil7aWYoIVYpcmV0dXJuIHRoaXM7aWYoWS5pc1JlZ0V4cChWKSly''@;'; put 'put ''ZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oeWUsQ2Upe3JldHVybiBDZS5kaXImJlYudGVzdCh5ZSl9KTt2YXIgUz1lZS5jYWxsKHRoaXMsdGhpcy5yb290K1YpLEY9dGhpcy5jbG9uZSgpO3JldHVybiBGLnJvb3Q9Uy5uYW1lLEZ9LHJlbW92ZTpmdW5jdGlvbihWKXt2YXIgVD10aGlzLmZp''@;'; put 'put ''bGVzW1Y9dGhpcy5yb290K1ZdO2lmKFR8fCgiLyIhPVYuc2xpY2UoLTEpJiYoVis9Ii8iKSxUPXRoaXMuZmlsZXNbVl0pLFQmJiFULmRpcilkZWxldGUgdGhpcy5maWxlc1tWXTtlbHNlIGZvcih2YXIgUz10aGlzLmZpbHRlcihmdW5jdGlvbih5ZSxDZSl7cmV0dXJuIENlLm5hbWUuc2xpY2Uo''@;'; put 'put ''MCxWLmxlbmd0aCk9PT1WfSksRj0wO0Y8Uy5sZW5ndGg7RisrKWRlbGV0ZSB0aGlzLmZpbGVzW1NbRl0ubmFtZV07cmV0dXJuIHRoaXN9LGdlbmVyYXRlOmZ1bmN0aW9uKFYpe1Y9TWUoVnx8e30se2Jhc2U2NDohMCxjb21wcmVzc2lvbjoiU1RPUkUiLHR5cGU6ImJhc2U2NCIsY29tbWVudDpu''@;'; put 'put ''dWxsfSksWS5jaGVja1N1cHBvcnQoVi50eXBlKTt2YXIgeWUsQ2UsdnQsVD1bXSxTPTAsRj0wLERlPVkudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy51dGY4ZW5jb2RlKFYuY29tbWVudHx8dGhpcy5jb21tZW50fHwiIikpO2Zvcih2YXIgUGUgaW4gdGhpcy5maWxlcylpZih0aGlzLmZpbGVz''@;'; put 'put ''Lmhhc093blByb3BlcnR5KFBlKSl7dmFyIFFlPXRoaXMuZmlsZXNbUGVdLCRlPVFlLm9wdGlvbnMuY29tcHJlc3Npb258fFYuY29tcHJlc3Npb24udG9VcHBlckNhc2UoKSxndD1KWyRlXTtpZighZ3QpdGhyb3cgbmV3IEVycm9yKCRlKyIgaXMgbm90IGEgdmFsaWQgY29tcHJlc3Npb24gbWV0''@;'; put 'put ''aG9kICEiKTt2YXIgd3Q9bmUuY2FsbCh0aGlzLFFlLGd0KSxtdD14LmNhbGwodGhpcyxQZSxRZSx3dCxTKTtTKz1tdC5maWxlUmVjb3JkLmxlbmd0aCt3dC5jb21wcmVzc2VkU2l6ZSxGKz1tdC5kaXJSZWNvcmQubGVuZ3RoLFQucHVzaChtdCl9dnQ9Ti5DRU5UUkFMX0RJUkVDVE9SWV9FTkQr''@;'; put 'put ''IlwwXDBcMFwwIitUZShULmxlbmd0aCwyKStUZShULmxlbmd0aCwyKStUZShGLDQpK1RlKFMsNCkrVGUoRGUubGVuZ3RoLDIpK0RlO3ZhciBBdD1WLnR5cGUudG9Mb3dlckNhc2UoKTtmb3IoeWU9InVpbnQ4YXJyYXkiPT09QXR8fCJhcnJheWJ1ZmZlciI9PT1BdHx8ImJsb2IiPT09QXR8fCJu''@;'; put 'put ''b2RlYnVmZmVyIj09PUF0P25ldyB2ZShTK0YrdnQubGVuZ3RoKTpuZXcgZGUoUytGK3Z0Lmxlbmd0aCksQ2U9MDtDZTxULmxlbmd0aDtDZSsrKXllLmFwcGVuZChUW0NlXS5maWxlUmVjb3JkKSx5ZS5hcHBlbmQoVFtDZV0uY29tcHJlc3NlZE9iamVjdC5jb21wcmVzc2VkQ29udGVudCk7Zm9y''@;'; put 'put ''KENlPTA7Q2U8VC5sZW5ndGg7Q2UrKyl5ZS5hcHBlbmQoVFtDZV0uZGlyUmVjb3JkKTt5ZS5hcHBlbmQodnQpO3ZhciBodD15ZS5maW5hbGl6ZSgpO3N3aXRjaChWLnR5cGUudG9Mb3dlckNhc2UoKSl7Y2FzZSJ1aW50OGFycmF5IjpjYXNlImFycmF5YnVmZmVyIjpjYXNlIm5vZGVidWZmZXIi''@;'; put 'put ''OnJldHVybiBZLnRyYW5zZm9ybVRvKFYudHlwZS50b0xvd2VyQ2FzZSgpLGh0KTtjYXNlImJsb2IiOnJldHVybiBZLmFycmF5QnVmZmVyMkJsb2IoWS50cmFuc2Zvcm1UbygiYXJyYXlidWZmZXIiLGh0KSk7Y2FzZSJiYXNlNjQiOnJldHVybiBWLmJhc2U2ND9LLmVuY29kZShodCk6aHQ7ZGVm''@;'; put 'put ''YXVsdDpyZXR1cm4gaHR9fSxjcmMzMjpmdW5jdGlvbihWLFQpe3JldHVybiBXKFYsVCl9LHV0ZjhlbmNvZGU6ZnVuY3Rpb24oVil7cmV0dXJuIFkudHJhbnNmb3JtVG8oInN0cmluZyIsY2UudXRmOGVuY29kZShWKSl9LHV0ZjhkZWNvZGU6ZnVuY3Rpb24oVil7cmV0dXJuIGNlLnV0ZjhkZWNv''@;'; put 'put ''ZGUoVil9fTtqLmV4cG9ydHM9UH0seyIuL2Jhc2U2NCI6MSwiLi9jb21wcmVzc2VkT2JqZWN0IjoyLCIuL2NvbXByZXNzaW9ucyI6MywiLi9jcmMzMiI6NCwiLi9kZWZhdWx0cyI6NiwiLi9ub2RlQnVmZmVyIjoxMSwiLi9zaWduYXR1cmUiOjE0LCIuL3N0cmluZ1dyaXRlciI6MTYsIi4vc3Vw''@;'; put 'put ''cG9ydCI6MTcsIi4vdWludDhBcnJheVdyaXRlciI6MTksIi4vdXRmOCI6MjAsIi4vdXRpbHMiOjIxfV0sMTQ6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3JlLkxPQ0FMX0ZJTEVfSEVBREVSPSJQS1x4MDNceDA0IixyZS5DRU5UUkFMX0ZJTEVfSEVBREVSPSJQS1x4MDFceDAyIixy''@;'; put 'put ''ZS5DRU5UUkFMX0RJUkVDVE9SWV9FTkQ9IlBLXHgwNVx4MDYiLHJlLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0xPQ0FUT1I9IlBLXHgwNlx4MDciLHJlLlpJUDY0X0NFTlRSQUxfRElSRUNUT1JZX0VORD0iUEtceDA2XHgwNiIscmUuREFUQV9ERVNDUklQVE9SPSJQS1x4MDdcYiJ9LHt9XSwx''@;'; put 'put ''NTpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vZGF0YVJlYWRlciIpLFk9USgiLi91dGlscyIpO2Z1bmN0aW9uIFcoTix0ZSl7dGhpcy5kYXRhPU4sdGV8fCh0aGlzLmRhdGE9WS5zdHJpbmcyYmluYXJ5KHRoaXMuZGF0YSkpLHRoaXMubGVuZ3RoPXRoaXMuZGF0''@;'; put 'put ''YS5sZW5ndGgsdGhpcy5pbmRleD0wfShXLnByb3RvdHlwZT1uZXcgYWUpLmJ5dGVBdD1mdW5jdGlvbihOKXtyZXR1cm4gdGhpcy5kYXRhLmNoYXJDb2RlQXQoTil9LFcucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKE4pe3JldHVybiB0aGlzLmRhdGEubGFzdEluZGV4''@;'; put 'put ''T2YoTil9LFcucHJvdG90eXBlLnJlYWREYXRhPWZ1bmN0aW9uKE4pe3RoaXMuY2hlY2tPZmZzZXQoTik7dmFyIHRlPXRoaXMuZGF0YS5zbGljZSh0aGlzLmluZGV4LHRoaXMuaW5kZXgrTik7cmV0dXJuIHRoaXMuaW5kZXgrPU4sdGV9LGouZXhwb3J0cz1XfSx7Ii4vZGF0YVJlYWRlciI6NSwi''@;'; put 'put ''Li91dGlscyI6MjF9XSwxNjpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vdXRpbHMiKSxZPWZ1bmN0aW9uKCl7dGhpcy5kYXRhPVtdfTtZLnByb3RvdHlwZT17YXBwZW5kOmZ1bmN0aW9uKFcpe1c9YWUudHJhbnNmb3JtVG8oInN0cmluZyIsVyksdGhpcy5kYXRh''@;'; put 'put ''LnB1c2goVyl9LGZpbmFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YS5qb2luKCIiKX19LGouZXhwb3J0cz1ZfSx7Ii4vdXRpbHMiOjIxfV0sMTc6W2Z1bmN0aW9uKFEsaixyZSl7KGZ1bmN0aW9uKGFlKXsidXNlIHN0cmljdCI7aWYocmUuYmFzZTY0PSEwLHJlLmFycmF5PSEwLHJl''@;'; put 'put ''LnN0cmluZz0hMCxyZS5hcnJheWJ1ZmZlcj0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiYidW5kZWZpbmVkIiE9dHlwZW9mIFVpbnQ4QXJyYXkscmUubm9kZWJ1ZmZlcj12b2lkIDAhPT1hZSxyZS51aW50OGFycmF5PSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSwidW5k''@;'; put 'put ''ZWZpbmVkIj09dHlwZW9mIEFycmF5QnVmZmVyKXJlLmJsb2I9ITE7ZWxzZXt2YXIgWT1uZXcgQXJyYXlCdWZmZXIoMCk7dHJ5e3JlLmJsb2I9MD09PW5ldyBCbG9iKFtZXSx7dHlwZToiYXBwbGljYXRpb24vemlwIn0pLnNpemV9Y2F0Y2godGUpe3RyeXt2YXIgTj1uZXcod2luZG93LkJsb2JC''@;'; put 'put ''dWlsZGVyfHx3aW5kb3cuV2ViS2l0QmxvYkJ1aWxkZXJ8fHdpbmRvdy5Nb3pCbG9iQnVpbGRlcnx8d2luZG93Lk1TQmxvYkJ1aWxkZXIpO04uYXBwZW5kKFkpLHJlLmJsb2I9MD09PU4uZ2V0QmxvYigiYXBwbGljYXRpb24vemlwIikuc2l6ZX1jYXRjaChLKXtyZS5ibG9iPSExfX19fSkuY2Fs''@;'; put 'put ''bCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyP0J1ZmZlcjp2b2lkIDApfSx7fV0sMTg6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL2RhdGFSZWFkZXIiKTtmdW5jdGlvbiBZKFcpe1cmJih0aGlzLmRhdGE9Vyx0aGlzLmxlbmd0aD10aGlzLmRhdGEu''@;'; put 'put ''bGVuZ3RoLHRoaXMuaW5kZXg9MCl9KFkucHJvdG90eXBlPW5ldyBhZSkuYnl0ZUF0PWZ1bmN0aW9uKFcpe3JldHVybiB0aGlzLmRhdGFbV119LFkucHJvdG90eXBlLmxhc3RJbmRleE9mU2lnbmF0dXJlPWZ1bmN0aW9uKFcpe2Zvcih2YXIgTj1XLmNoYXJDb2RlQXQoMCksdGU9Vy5jaGFyQ29k''@;'; put 'put ''ZUF0KDEpLEs9Vy5jaGFyQ29kZUF0KDIpLEo9Vy5jaGFyQ29kZUF0KDMpLHNlPXRoaXMubGVuZ3RoLTQ7c2U+PTA7LS1zZSlpZih0aGlzLmRhdGFbc2VdPT09TiYmdGhpcy5kYXRhW3NlKzFdPT09dGUmJnRoaXMuZGF0YVtzZSsyXT09PUsmJnRoaXMuZGF0YVtzZSszXT09PUopcmV0dXJuIHNl''@;'; put 'put ''O3JldHVybi0xfSxZLnByb3RvdHlwZS5yZWFkRGF0YT1mdW5jdGlvbihXKXtpZih0aGlzLmNoZWNrT2Zmc2V0KFcpLDA9PT1XKXJldHVybiBuZXcgVWludDhBcnJheSgwKTt2YXIgTj10aGlzLmRhdGEuc3ViYXJyYXkodGhpcy5pbmRleCx0aGlzLmluZGV4K1cpO3JldHVybiB0aGlzLmluZGV4''@;'; put 'put ''Kz1XLE59LGouZXhwb3J0cz1ZfSx7Ii4vZGF0YVJlYWRlciI6NX1dLDE5OltmdW5jdGlvbihRLGoscmUpeyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9USgiLi91dGlscyIpLFk9ZnVuY3Rpb24oVyl7dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KFcpLHRoaXMuaW5kZXg9MH07WS5wcm90b3R5cGU9e2Fw''@;'; put 'put ''cGVuZDpmdW5jdGlvbihXKXswIT09Vy5sZW5ndGgmJihXPWFlLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixXKSx0aGlzLmRhdGEuc2V0KFcsdGhpcy5pbmRleCksdGhpcy5pbmRleCs9Vy5sZW5ndGgpfSxmaW5hbGl6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRhdGF9fSxqLmV4cG9ydHM9''@;'; put 'put ''WX0seyIuL3V0aWxzIjoyMX1dLDIwOltmdW5jdGlvbihRLGoscmUpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIGFlPVEoIi4vdXRpbHMiKSxZPVEoIi4vc3VwcG9ydCIpLFc9USgiLi9ub2RlQnVmZmVyIiksTj1uZXcgQXJyYXkoMjU2KSx0ZT0wO3RlPDI1Njt0ZSsrKU5bdGVdPXRlPj0yNTI/Njp0''@;'; put 'put ''ZT49MjQ4PzU6dGU+PTI0MD80OnRlPj0yMjQ/Mzp0ZT49MTkyPzI6MTtOWzI1NF09TlsyNTRdPTE7dmFyIEo9ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZTtmb3IoKGNlPWNlfHxvZS5sZW5ndGgpPm9lLmxlbmd0aCYmKGNlPW9lLmxlbmd0aCksZGU9Y2UtMTtkZT49MCYmMTI4PT0oMTkyJm9lW2Rl''@;'; put 'put ''XSk7KWRlLS07cmV0dXJuIGRlPDB8fDA9PT1kZT9jZTpkZStOW29lW2RlXV0+Y2U/ZGU6Y2V9LHNlPWZ1bmN0aW9uKG9lKXt2YXIgZGUsdmUsQWUsa2UsU2U9b2UubGVuZ3RoLEllPW5ldyBBcnJheSgyKlNlKTtmb3IodmU9MCxkZT0wO2RlPFNlOylpZigoQWU9b2VbZGUrK10pPDEyOClJZVt2''@;'; put 'put ''ZSsrXT1BZTtlbHNlIGlmKChrZT1OW0FlXSk+NClJZVt2ZSsrXT02NTUzMyxkZSs9a2UtMTtlbHNle2ZvcihBZSY9Mj09PWtlPzMxOjM9PT1rZT8xNTo3O2tlPjEmJmRlPFNlOylBZT1BZTw8Nnw2MyZvZVtkZSsrXSxrZS0tO2tlPjE/SWVbdmUrK109NjU1MzM6QWU8NjU1MzY/SWVbdmUrK109''@;'; put 'put ''QWU6KEllW3ZlKytdPTU1Mjk2fChBZS09NjU1MzYpPj4xMCYxMDIzLEllW3ZlKytdPTU2MzIwfDEwMjMmQWUpfXJldHVybiBJZS5sZW5ndGghPT12ZSYmKEllLnN1YmFycmF5P0llPUllLnN1YmFycmF5KDAsdmUpOkllLmxlbmd0aD12ZSksYWUuYXBwbHlGcm9tQ2hhckNvZGUoSWUpfTtyZS51''@;'; put 'put ''dGY4ZW5jb2RlPWZ1bmN0aW9uKGNlKXtyZXR1cm4gWS5ub2RlYnVmZmVyP1coY2UsInV0Zi04Iik6ZnVuY3Rpb24ob2Upe3ZhciBjZSxkZSx2ZSxBZSxrZSxTZT1vZS5sZW5ndGgsSWU9MDtmb3IoQWU9MDtBZTxTZTtBZSsrKTU1Mjk2PT0oNjQ1MTImKGRlPW9lLmNoYXJDb2RlQXQoQWUpKSkm''@;'; put 'put ''JkFlKzE8U2UmJjU2MzIwPT0oNjQ1MTImKHZlPW9lLmNoYXJDb2RlQXQoQWUrMSkpKSYmKGRlPTY1NTM2KyhkZS01NTI5Njw8MTApKyh2ZS01NjMyMCksQWUrKyksSWUrPWRlPDEyOD8xOmRlPDIwNDg/MjpkZTw2NTUzNj8zOjQ7Zm9yKGNlPVkudWludDhhcnJheT9uZXcgVWludDhBcnJheShJ''@;'; put 'put ''ZSk6bmV3IEFycmF5KEllKSxrZT0wLEFlPTA7a2U8SWU7QWUrKyk1NTI5Nj09KDY0NTEyJihkZT1vZS5jaGFyQ29kZUF0KEFlKSkpJiZBZSsxPFNlJiY1NjMyMD09KDY0NTEyJih2ZT1vZS5jaGFyQ29kZUF0KEFlKzEpKSkmJihkZT02NTUzNisoZGUtNTUyOTY8PDEwKSsodmUtNTYzMjApLEFl''@;'; put 'put ''KyspLGRlPDEyOD9jZVtrZSsrXT1kZTpkZTwyMDQ4PyhjZVtrZSsrXT0xOTJ8ZGU+Pj42LGNlW2tlKytdPTEyOHw2MyZkZSk6ZGU8NjU1MzY/KGNlW2tlKytdPTIyNHxkZT4+PjEyLGNlW2tlKytdPTEyOHxkZT4+PjYmNjMsY2Vba2UrK109MTI4fDYzJmRlKTooY2Vba2UrK109MjQwfGRlPj4+''@;'; put 'put ''MTgsY2Vba2UrK109MTI4fGRlPj4+MTImNjMsY2Vba2UrK109MTI4fGRlPj4+NiY2MyxjZVtrZSsrXT0xMjh8NjMmZGUpO3JldHVybiBjZX0oY2UpfSxyZS51dGY4ZGVjb2RlPWZ1bmN0aW9uKGNlKXtpZihZLm5vZGVidWZmZXIpcmV0dXJuIGFlLnRyYW5zZm9ybVRvKCJub2RlYnVmZmVyIixj''@;'; put 'put ''ZSkudG9TdHJpbmcoInV0Zi04Iik7Zm9yKHZhciBkZT1bXSx2ZT0wLEFlPShjZT1hZS50cmFuc2Zvcm1UbyhZLnVpbnQ4YXJyYXk/InVpbnQ4YXJyYXkiOiJhcnJheSIsY2UpKS5sZW5ndGg7dmU8QWU7KXt2YXIgU2U9SihjZSxNYXRoLm1pbih2ZSs2NTUzNixBZSkpO2RlLnB1c2goc2UoWS51''@;'; put 'put ''aW50OGFycmF5P2NlLnN1YmFycmF5KHZlLFNlKTpjZS5zbGljZSh2ZSxTZSkpKSx2ZT1TZX1yZXR1cm4gZGUuam9pbigiIil9fSx7Ii4vbm9kZUJ1ZmZlciI6MTEsIi4vc3VwcG9ydCI6MTcsIi4vdXRpbHMiOjIxfV0sMjE6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1R''@;'; put 'put ''KCIuL3N1cHBvcnQiKSxZPVEoIi4vY29tcHJlc3Npb25zIiksVz1RKCIuL25vZGVCdWZmZXIiKTtmdW5jdGlvbiBOKG9lKXtyZXR1cm4gb2V9ZnVuY3Rpb24gdGUob2UsY2Upe2Zvcih2YXIgZGU9MDtkZTxvZS5sZW5ndGg7KytkZSljZVtkZV09MjU1Jm9lLmNoYXJDb2RlQXQoZGUpO3JldHVy''@;'; put 'put ''biBjZX1mdW5jdGlvbiBLKG9lKXt2YXIgY2U9NjU1MzYsZGU9W10sdmU9b2UubGVuZ3RoLEFlPXJlLmdldFR5cGVPZihvZSksa2U9MCxTZT0hMDt0cnl7c3dpdGNoKEFlKXtjYXNlInVpbnQ4YXJyYXkiOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxuZXcgVWludDhBcnJheSgwKSk7''@;'; put 'put ''YnJlYWs7Y2FzZSJub2RlYnVmZmVyIjpTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsVygwKSl9fWNhdGNoKE1lKXtTZT0hMX1pZighU2Upe2Zvcih2YXIgSWU9IiIsVGU9MDtUZTxvZS5sZW5ndGg7VGUrKylJZSs9U3RyaW5nLmZyb21DaGFyQ29kZShvZVtUZV0pO3JldHVybiBJZX1m''@;'; put 'put ''b3IoO2tlPHZlJiZjZT4xOyl0cnl7ZGUucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsImFycmF5Ij09PUFlfHwibm9kZWJ1ZmZlciI9PT1BZT9vZS5zbGljZShrZSxNYXRoLm1pbihrZStjZSx2ZSkpOm9lLnN1YmFycmF5KGtlLE1hdGgubWluKGtlK2NlLHZlKSkpKSxrZSs9''@;'; put 'put ''Y2V9Y2F0Y2goTWUpe2NlPU1hdGguZmxvb3IoY2UvMil9cmV0dXJuIGRlLmpvaW4oIiIpfWZ1bmN0aW9uIEoob2UsY2Upe2Zvcih2YXIgZGU9MDtkZTxvZS5sZW5ndGg7ZGUrKyljZVtkZV09b2VbZGVdO3JldHVybiBjZX1yZS5zdHJpbmcyYmluYXJ5PWZ1bmN0aW9uKG9lKXtmb3IodmFyIGNl''@;'; put 'put ''PSIiLGRlPTA7ZGU8b2UubGVuZ3RoO2RlKyspY2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoMjU1Jm9lLmNoYXJDb2RlQXQoZGUpKTtyZXR1cm4gY2V9LHJlLmFycmF5QnVmZmVyMkJsb2I9ZnVuY3Rpb24ob2Upe3JlLmNoZWNrU3VwcG9ydCgiYmxvYiIpO3RyeXtyZXR1cm4gbmV3IEJsb2IoW29l''@;'; put 'put ''XSx7dHlwZToiYXBwbGljYXRpb24vemlwIn0pfWNhdGNoKHZlKXt0cnl7dmFyIGRlPW5ldyh3aW5kb3cuQmxvYkJ1aWxkZXJ8fHdpbmRvdy5XZWJLaXRCbG9iQnVpbGRlcnx8d2luZG93Lk1vekJsb2JCdWlsZGVyfHx3aW5kb3cuTVNCbG9iQnVpbGRlcik7cmV0dXJuIGRlLmFwcGVuZChvZSks''@;'; put 'put ''ZGUuZ2V0QmxvYigiYXBwbGljYXRpb24vemlwIil9Y2F0Y2goQWUpe3Rocm93IG5ldyBFcnJvcigiQnVnIDogY2FuJ3QgY29uc3RydWN0IHRoZSBCbG9iLiIpfX19LHJlLmFwcGx5RnJvbUNoYXJDb2RlPUs7dmFyIHNlPXt9O3NlLnN0cmluZz17c3RyaW5nOk4sYXJyYXk6ZnVuY3Rpb24ob2Up''@;'; put 'put ''e3JldHVybiB0ZShvZSxuZXcgQXJyYXkob2UubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gc2Uuc3RyaW5nLnVpbnQ4YXJyYXkob2UpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihvZSl7cmV0dXJuIHRlKG9lLG5ldyBVaW50OEFycmF5KG9lLmxlbmd0aCkp''@;'; put 'put ''fSxub2RlYnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gdGUob2UsVyhvZS5sZW5ndGgpKX19LHNlLmFycmF5PXtzdHJpbmc6SyxhcnJheTpOLGFycmF5YnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkob2UpLmJ1ZmZlcn0sdWludDhhcnJheTpmdW5jdGlvbihvZSl7''@;'; put 'put ''cmV0dXJuIG5ldyBVaW50OEFycmF5KG9lKX0sbm9kZWJ1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIFcob2UpfX0sc2UuYXJyYXlidWZmZXI9e3N0cmluZzpmdW5jdGlvbihvZSl7cmV0dXJuIEsobmV3IFVpbnQ4QXJyYXkob2UpKX0sYXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBKKG5ldyBV''@;'; put 'put ''aW50OEFycmF5KG9lKSxuZXcgQXJyYXkob2UuYnl0ZUxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpOLHVpbnQ4YXJyYXk6ZnVuY3Rpb24ob2Upe3JldHVybiBuZXcgVWludDhBcnJheShvZSl9LG5vZGVidWZmZXI6ZnVuY3Rpb24ob2Upe3JldHVybiBXKG5ldyBVaW50OEFycmF5KG9lKSl9fSxzZS51''@;'; put 'put ''aW50OGFycmF5PXtzdHJpbmc6SyxhcnJheTpmdW5jdGlvbihvZSl7cmV0dXJuIEoob2UsbmV3IEFycmF5KG9lLmxlbmd0aCkpfSxhcnJheWJ1ZmZlcjpmdW5jdGlvbihvZSl7cmV0dXJuIG9lLmJ1ZmZlcn0sdWludDhhcnJheTpOLG5vZGVidWZmZXI6ZnVuY3Rpb24ob2Upe3JldHVybiBXKG9l''@;'; put 'put ''KX19LHNlLm5vZGVidWZmZXI9e3N0cmluZzpLLGFycmF5OmZ1bmN0aW9uKG9lKXtyZXR1cm4gSihvZSxuZXcgQXJyYXkob2UubGVuZ3RoKSl9LGFycmF5YnVmZmVyOmZ1bmN0aW9uKG9lKXtyZXR1cm4gc2Uubm9kZWJ1ZmZlci51aW50OGFycmF5KG9lKS5idWZmZXJ9LHVpbnQ4YXJyYXk6ZnVu''@;'; put 'put ''Y3Rpb24ob2Upe3JldHVybiBKKG9lLG5ldyBVaW50OEFycmF5KG9lLmxlbmd0aCkpfSxub2RlYnVmZmVyOk59LHJlLnRyYW5zZm9ybVRvPWZ1bmN0aW9uKG9lLGNlKXtpZihjZXx8KGNlPSIiKSwhb2UpcmV0dXJuIGNlO3JlLmNoZWNrU3VwcG9ydChvZSk7dmFyIGRlPXJlLmdldFR5cGVPZihj''@;'; put 'put ''ZSk7cmV0dXJuIHNlW2RlXVtvZV0oY2UpfSxyZS5nZXRUeXBlT2Y9ZnVuY3Rpb24ob2Upe3JldHVybiJzdHJpbmciPT10eXBlb2Ygb2U/InN0cmluZyI6IltvYmplY3QgQXJyYXldIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvZSk/ImFycmF5IjphZS5ub2RlYnVmZmVyJiZX''@;'; put 'put ''LnRlc3Qob2UpPyJub2RlYnVmZmVyIjphZS51aW50OGFycmF5JiZvZSBpbnN0YW5jZW9mIFVpbnQ4QXJyYXk/InVpbnQ4YXJyYXkiOmFlLmFycmF5YnVmZmVyJiZvZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyPyJhcnJheWJ1ZmZlciI6dm9pZCAwfSxyZS5jaGVja1N1cHBvcnQ9ZnVuY3Rpb24o''@;'; put 'put ''b2Upe2lmKCFhZVtvZS50b0xvd2VyQ2FzZSgpXSl0aHJvdyBuZXcgRXJyb3Iob2UrIiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoaXMgYnJvd3NlciIpfSxyZS5NQVhfVkFMVUVfMTZCSVRTPTY1NTM1LHJlLk1BWF9WQUxVRV8zMkJJVFM9LTEscmUucHJldHR5PWZ1bmN0aW9uKG9lKXt2YXIgZGUs''@;'; put 'put ''dmUsY2U9IiI7Zm9yKHZlPTA7dmU8KG9lfHwiIikubGVuZ3RoO3ZlKyspY2UrPSJcXHgiKygoZGU9b2UuY2hhckNvZGVBdCh2ZSkpPDE2PyIwIjoiIikrZGUudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCk7cmV0dXJuIGNlfSxyZS5maW5kQ29tcHJlc3Npb249ZnVuY3Rpb24ob2Upe2Zvcih2''@;'; put 'put ''YXIgY2UgaW4gWSlpZihZLmhhc093blByb3BlcnR5KGNlKSYmWVtjZV0ubWFnaWM9PT1vZSlyZXR1cm4gWVtjZV07cmV0dXJuIG51bGx9LHJlLmlzUmVnRXhwPWZ1bmN0aW9uKG9lKXtyZXR1cm4iW29iamVjdCBSZWdFeHBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvZSl9''@;'; put 'put ''fSx7Ii4vY29tcHJlc3Npb25zIjozLCIuL25vZGVCdWZmZXIiOjExLCIuL3N1cHBvcnQiOjE3fV0sMjI6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuL3N0cmluZ1JlYWRlciIpLFk9USgiLi9ub2RlQnVmZmVyUmVhZGVyIiksVz1RKCIuL3VpbnQ4QXJyYXlSZWFk''@;'; put 'put ''ZXIiKSxOPVEoIi4vdXRpbHMiKSx0ZT1RKCIuL3NpZ25hdHVyZSIpLEs9USgiLi96aXBFbnRyeSIpLEo9USgiLi9zdXBwb3J0Iiksc2U9USgiLi9vYmplY3QiKTtmdW5jdGlvbiBvZShjZSxkZSl7dGhpcy5maWxlcz1bXSx0aGlzLmxvYWRPcHRpb25zPWRlLGNlJiZ0aGlzLmxvYWQoY2UpfW9l''@;'; put 'put ''LnByb3RvdHlwZT17Y2hlY2tTaWduYXR1cmU6ZnVuY3Rpb24oY2Upe3ZhciBkZT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDQpO2lmKGRlIT09Y2UpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIG9yIGJ1ZyA6IHVuZXhwZWN0ZWQgc2lnbmF0dXJlICgiK04ucHJldHR5KGRlKSsiLCBl''@;'; put 'put ''eHBlY3RlZCAiK04ucHJldHR5KGNlKSsiKSIpfSxyZWFkQmxvY2tFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLmRpc2tOdW1iZXI9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmRpc2tXaXRoQ2VudHJhbERpclN0YXJ0PXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFs''@;'; put 'put ''RGlyUmVjb3Jkc09uVGhpc0Rpc2s9dGhpcy5yZWFkZXIucmVhZEludCgyKSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzPXRoaXMucmVhZGVyLnJlYWRJbnQoMiksdGhpcy5jZW50cmFsRGlyU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuY2VudHJhbERpck9mZnNldD10aGlzLnJlYWRl''@;'; put 'put ''ci5yZWFkSW50KDQpLHRoaXMuemlwQ29tbWVudExlbmd0aD10aGlzLnJlYWRlci5yZWFkSW50KDIpLHRoaXMuemlwQ29tbWVudD10aGlzLnJlYWRlci5yZWFkU3RyaW5nKHRoaXMuemlwQ29tbWVudExlbmd0aCksdGhpcy56aXBDb21tZW50PXNlLnV0ZjhkZWNvZGUodGhpcy56aXBDb21tZW50''@;'; put 'put ''KX0scmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt0aGlzLnppcDY0RW5kT2ZDZW50cmFsU2l6ZT10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMudmVyc2lvbk1hZGVCeT10aGlzLnJlYWRlci5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD10aGlzLnJlYWRl''@;'; put 'put ''ci5yZWFkSW50KDIpLHRoaXMuZGlza051bWJlcj10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza1dpdGhDZW50cmFsRGlyU3RhcnQ9dGhpcy5yZWFkZXIucmVhZEludCg0KSx0aGlzLmNlbnRyYWxEaXJSZWNvcmRzT25UaGlzRGlzaz10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMu''@;'; put 'put ''Y2VudHJhbERpclJlY29yZHM9dGhpcy5yZWFkZXIucmVhZEludCg4KSx0aGlzLmNlbnRyYWxEaXJTaXplPXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy5jZW50cmFsRGlyT2Zmc2V0PXRoaXMucmVhZGVyLnJlYWRJbnQoOCksdGhpcy56aXA2NEV4dGVuc2libGVEYXRhPXt9O2Zvcih2YXIg''@;'; put 'put ''dmUsQWUsa2UsY2U9dGhpcy56aXA2NEVuZE9mQ2VudHJhbFNpemUtNDQ7MDxjZTspdmU9dGhpcy5yZWFkZXIucmVhZEludCgyKSxBZT10aGlzLnJlYWRlci5yZWFkSW50KDQpLGtlPXRoaXMucmVhZGVyLnJlYWRTdHJpbmcoQWUpLHRoaXMuemlwNjRFeHRlbnNpYmxlRGF0YVt2ZV09e2lkOnZl''@;'; put 'put ''LGxlbmd0aDpBZSx2YWx1ZTprZX19LHJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcjpmdW5jdGlvbigpe2lmKHRoaXMuZGlza1dpdGhaaXA2NENlbnRyYWxEaXJTdGFydD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMucmVsYXRpdmVPZmZzZXRFbmRPZlppcDY0Q2VudHJhbERp''@;'; put 'put ''cj10aGlzLnJlYWRlci5yZWFkSW50KDgpLHRoaXMuZGlza3NDb3VudD10aGlzLnJlYWRlci5yZWFkSW50KDQpLHRoaXMuZGlza3NDb3VudD4xKXRocm93IG5ldyBFcnJvcigiTXVsdGktdm9sdW1lcyB6aXAgYXJlIG5vdCBzdXBwb3J0ZWQiKX0scmVhZExvY2FsRmlsZXM6ZnVuY3Rpb24oKXt2''@;'; put 'put ''YXIgY2UsZGU7Zm9yKGNlPTA7Y2U8dGhpcy5maWxlcy5sZW5ndGg7Y2UrKyl0aGlzLnJlYWRlci5zZXRJbmRleCgoZGU9dGhpcy5maWxlc1tjZV0pLmxvY2FsSGVhZGVyT2Zmc2V0KSx0aGlzLmNoZWNrU2lnbmF0dXJlKHRlLkxPQ0FMX0ZJTEVfSEVBREVSKSxkZS5yZWFkTG9jYWxQYXJ0KHRo''@;'; put 'put ''aXMucmVhZGVyKSxkZS5oYW5kbGVVVEY4KCl9LHJlYWRDZW50cmFsRGlyOmZ1bmN0aW9uKCl7dmFyIGNlO2Zvcih0aGlzLnJlYWRlci5zZXRJbmRleCh0aGlzLmNlbnRyYWxEaXJPZmZzZXQpO3RoaXMucmVhZGVyLnJlYWRTdHJpbmcoNCk9PT10ZS5DRU5UUkFMX0ZJTEVfSEVBREVSOykoY2U9''@;'; put 'put ''bmV3IEsoe3ppcDY0OnRoaXMuemlwNjR9LHRoaXMubG9hZE9wdGlvbnMpKS5yZWFkQ2VudHJhbFBhcnQodGhpcy5yZWFkZXIpLHRoaXMuZmlsZXMucHVzaChjZSl9LHJlYWRFbmRPZkNlbnRyYWw6ZnVuY3Rpb24oKXt2YXIgY2U9dGhpcy5yZWFkZXIubGFzdEluZGV4T2ZTaWduYXR1cmUodGUu''@;'; put 'put ''Q0VOVFJBTF9ESVJFQ1RPUllfRU5EKTtpZigtMT09PWNlKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IGNhbid0IGZpbmQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5Iik7aWYodGhpcy5yZWFkZXIuc2V0SW5kZXgoY2UpLHRoaXMuY2hlY2tTaWduYXR1cmUodGUuQ0VOVFJBTF9E''@;'; put 'put ''SVJFQ1RPUllfRU5EKSx0aGlzLnJlYWRCbG9ja0VuZE9mQ2VudHJhbCgpLHRoaXMuZGlza051bWJlcj09PU4uTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5kaXNrV2l0aENlbnRyYWxEaXJTdGFydD09PU4uTUFYX1ZBTFVFXzE2QklUU3x8dGhpcy5jZW50cmFsRGlyUmVjb3Jkc09uVGhpc0Rpc2s9''@;'; put 'put ''PT1OLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclJlY29yZHM9PT1OLk1BWF9WQUxVRV8xNkJJVFN8fHRoaXMuY2VudHJhbERpclNpemU9PT1OLk1BWF9WQUxVRV8zMkJJVFN8fHRoaXMuY2VudHJhbERpck9mZnNldD09PU4uTUFYX1ZBTFVFXzMyQklUUyl7aWYodGhpcy56aXA2''@;'; put 'put ''ND0hMCwtMT09PShjZT10aGlzLnJlYWRlci5sYXN0SW5kZXhPZlNpZ25hdHVyZSh0ZS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSkpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY2FuJ3QgZmluZCB0aGUgWklQNjQgZW5kIG9mIGNlbnRyYWwgZGlyZWN0b3J5IGxv''@;'; put 'put ''Y2F0b3IiKTt0aGlzLnJlYWRlci5zZXRJbmRleChjZSksdGhpcy5jaGVja1NpZ25hdHVyZSh0ZS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9MT0NBVE9SKSx0aGlzLnJlYWRCbG9ja1ppcDY0RW5kT2ZDZW50cmFsTG9jYXRvcigpLHRoaXMucmVhZGVyLnNldEluZGV4KHRoaXMucmVsYXRpdmVP''@;'; put 'put ''ZmZzZXRFbmRPZlppcDY0Q2VudHJhbERpciksdGhpcy5jaGVja1NpZ25hdHVyZSh0ZS5aSVA2NF9DRU5UUkFMX0RJUkVDVE9SWV9FTkQpLHRoaXMucmVhZEJsb2NrWmlwNjRFbmRPZkNlbnRyYWwoKX19LHByZXBhcmVSZWFkZXI6ZnVuY3Rpb24oY2Upe3ZhciBkZT1OLmdldFR5cGVPZihjZSk7''@;'; put 'put ''dGhpcy5yZWFkZXI9InN0cmluZyIhPT1kZXx8Si51aW50OGFycmF5PyJub2RlYnVmZmVyIj09PWRlP25ldyBZKGNlKTpuZXcgVyhOLnRyYW5zZm9ybVRvKCJ1aW50OGFycmF5IixjZSkpOm5ldyBhZShjZSx0aGlzLmxvYWRPcHRpb25zLm9wdGltaXplZEJpbmFyeVN0cmluZyl9LGxvYWQ6ZnVu''@;'; put 'put ''Y3Rpb24oY2Upe3RoaXMucHJlcGFyZVJlYWRlcihjZSksdGhpcy5yZWFkRW5kT2ZDZW50cmFsKCksdGhpcy5yZWFkQ2VudHJhbERpcigpLHRoaXMucmVhZExvY2FsRmlsZXMoKX19LGouZXhwb3J0cz1vZX0seyIuL25vZGVCdWZmZXJSZWFkZXIiOjEyLCIuL29iamVjdCI6MTMsIi4vc2lnbmF0''@;'; put 'put ''dXJlIjoxNCwiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3N1cHBvcnQiOjE3LCIuL3VpbnQ4QXJyYXlSZWFkZXIiOjE4LCIuL3V0aWxzIjoyMSwiLi96aXBFbnRyeSI6MjN9XSwyMzpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vc3RyaW5nUmVhZGVyIiksWT1RKCIu''@;'; put 'put ''L3V0aWxzIiksVz1RKCIuL2NvbXByZXNzZWRPYmplY3QiKSxOPVEoIi4vb2JqZWN0Iik7ZnVuY3Rpb24gdGUoSyxKKXt0aGlzLm9wdGlvbnM9Syx0aGlzLmxvYWRPcHRpb25zPUp9dGUucHJvdG90eXBlPXtpc0VuY3J5cHRlZDpmdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLmJpdEZsYWcp''@;'; put 'put ''fSx1c2VVVEY4OmZ1bmN0aW9uKCl7cmV0dXJuIDIwNDg9PSgyMDQ4JnRoaXMuYml0RmxhZyl9LHByZXBhcmVDb21wcmVzc2VkQ29udGVudDpmdW5jdGlvbihLLEosc2Upe3JldHVybiBmdW5jdGlvbigpe3ZhciBvZT1LLmluZGV4O0suc2V0SW5kZXgoSik7dmFyIGNlPUsucmVhZERhdGEoc2Up''@;'; put 'put ''O3JldHVybiBLLnNldEluZGV4KG9lKSxjZX19LHByZXBhcmVDb250ZW50OmZ1bmN0aW9uKEssSixzZSxvZSxjZSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGRlPVkudHJhbnNmb3JtVG8ob2UudW5jb21wcmVzc0lucHV0VHlwZSx0aGlzLmdldENvbXByZXNzZWRDb250ZW50KCkpLHZlPW9lLnVu''@;'; put 'put ''Y29tcHJlc3MoZGUpO2lmKHZlLmxlbmd0aCE9PWNlKXRocm93IG5ldyBFcnJvcigiQnVnIDogdW5jb21wcmVzc2VkIGRhdGEgc2l6ZSBtaXNtYXRjaCIpO3JldHVybiB2ZX19LHJlYWRMb2NhbFBhcnQ6ZnVuY3Rpb24oSyl7dmFyIEosc2U7aWYoSy5za2lwKDIyKSx0aGlzLmZpbGVOYW1lTGVu''@;'; put 'put ''Z3RoPUsucmVhZEludCgyKSxzZT1LLnJlYWRJbnQoMiksdGhpcy5maWxlTmFtZT1LLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksSy5za2lwKHNlKSwtMT09dGhpcy5jb21wcmVzc2VkU2l6ZXx8LTE9PXRoaXMudW5jb21wcmVzc2VkU2l6ZSl0aHJvdyBuZXcgRXJyb3IoIkJ1ZyBv''@;'; put 'put ''ciBjb3JydXB0ZWQgemlwIDogZGlkbid0IGdldCBlbm91Z2ggaW5mb3JtYXRpb25zIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5IChjb21wcmVzc2VkU2l6ZSA9PSAtMSB8fCB1bmNvbXByZXNzZWRTaXplID09IC0xKSIpO2lmKG51bGw9PT0oSj1ZLmZpbmRDb21wcmVzc2lvbih0aGlzLmNv''@;'; put 'put ''bXByZXNzaW9uTWV0aG9kKSkpdGhyb3cgbmV3IEVycm9yKCJDb3JydXB0ZWQgemlwIDogY29tcHJlc3Npb24gIitZLnByZXR0eSh0aGlzLmNvbXByZXNzaW9uTWV0aG9kKSsiIHVua25vd24gKGlubmVyIGZpbGUgOiAiK3RoaXMuZmlsZU5hbWUrIikiKTtpZih0aGlzLmRlY29tcHJlc3NlZD1u''@;'; put 'put ''ZXcgVyx0aGlzLmRlY29tcHJlc3NlZC5jb21wcmVzc2VkU2l6ZT10aGlzLmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLnVuY29tcHJlc3NlZFNpemU9dGhpcy51bmNvbXByZXNzZWRTaXplLHRoaXMuZGVjb21wcmVzc2VkLmNyYzMyPXRoaXMuY3JjMzIsdGhpcy5kZWNvbXByZXNz''@;'; put 'put ''ZWQuY29tcHJlc3Npb25NZXRob2Q9dGhpcy5jb21wcmVzc2lvbk1ldGhvZCx0aGlzLmRlY29tcHJlc3NlZC5nZXRDb21wcmVzc2VkQ29udGVudD10aGlzLnByZXBhcmVDb21wcmVzc2VkQ29udGVudChLLEsuaW5kZXgsdGhpcy5jb21wcmVzc2VkU2l6ZSxKKSx0aGlzLmRlY29tcHJlc3NlZC5n''@;'; put 'put ''ZXRDb250ZW50PXRoaXMucHJlcGFyZUNvbnRlbnQoSyxLLmluZGV4LHRoaXMuY29tcHJlc3NlZFNpemUsSix0aGlzLnVuY29tcHJlc3NlZFNpemUpLHRoaXMubG9hZE9wdGlvbnMuY2hlY2tDUkMzMiYmKHRoaXMuZGVjb21wcmVzc2VkPVkudHJhbnNmb3JtVG8oInN0cmluZyIsdGhpcy5kZWNv''@;'; put 'put ''bXByZXNzZWQuZ2V0Q29udGVudCgpKSxOLmNyYzMyKHRoaXMuZGVjb21wcmVzc2VkKSE9PXRoaXMuY3JjMzIpKXRocm93IG5ldyBFcnJvcigiQ29ycnVwdGVkIHppcCA6IENSQzMyIG1pc21hdGNoIil9LHJlYWRDZW50cmFsUGFydDpmdW5jdGlvbihLKXtpZih0aGlzLnZlcnNpb25NYWRlQnk9''@;'; put 'put ''Sy5yZWFkU3RyaW5nKDIpLHRoaXMudmVyc2lvbk5lZWRlZD1LLnJlYWRJbnQoMiksdGhpcy5iaXRGbGFnPUsucmVhZEludCgyKSx0aGlzLmNvbXByZXNzaW9uTWV0aG9kPUsucmVhZFN0cmluZygyKSx0aGlzLmRhdGU9Sy5yZWFkRGF0ZSgpLHRoaXMuY3JjMzI9Sy5yZWFkSW50KDQpLHRoaXMu''@;'; put 'put ''Y29tcHJlc3NlZFNpemU9Sy5yZWFkSW50KDQpLHRoaXMudW5jb21wcmVzc2VkU2l6ZT1LLnJlYWRJbnQoNCksdGhpcy5maWxlTmFtZUxlbmd0aD1LLnJlYWRJbnQoMiksdGhpcy5leHRyYUZpZWxkc0xlbmd0aD1LLnJlYWRJbnQoMiksdGhpcy5maWxlQ29tbWVudExlbmd0aD1LLnJlYWRJbnQo''@;'; put 'put ''MiksdGhpcy5kaXNrTnVtYmVyU3RhcnQ9Sy5yZWFkSW50KDIpLHRoaXMuaW50ZXJuYWxGaWxlQXR0cmlidXRlcz1LLnJlYWRJbnQoMiksdGhpcy5leHRlcm5hbEZpbGVBdHRyaWJ1dGVzPUsucmVhZEludCg0KSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PUsucmVhZEludCg0KSx0aGlzLmlzRW5j''@;'; put 'put ''cnlwdGVkKCkpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0ZWQgemlwIGFyZSBub3Qgc3VwcG9ydGVkIik7dGhpcy5maWxlTmFtZT1LLnJlYWRTdHJpbmcodGhpcy5maWxlTmFtZUxlbmd0aCksdGhpcy5yZWFkRXh0cmFGaWVsZHMoSyksdGhpcy5wYXJzZVpJUDY0RXh0cmFGaWVsZChLKSx0aGlz''@;'; put 'put ''LmZpbGVDb21tZW50PUsucmVhZFN0cmluZyh0aGlzLmZpbGVDb21tZW50TGVuZ3RoKSx0aGlzLmRpcj0hISgxNiZ0aGlzLmV4dGVybmFsRmlsZUF0dHJpYnV0ZXMpfSxwYXJzZVpJUDY0RXh0cmFGaWVsZDpmdW5jdGlvbihLKXtpZih0aGlzLmV4dHJhRmllbGRzWzFdKXt2YXIgSj1uZXcgYWUo''@;'; put 'put ''dGhpcy5leHRyYUZpZWxkc1sxXS52YWx1ZSk7dGhpcy51bmNvbXByZXNzZWRTaXplPT09WS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy51bmNvbXByZXNzZWRTaXplPUoucmVhZEludCg4KSksdGhpcy5jb21wcmVzc2VkU2l6ZT09PVkuTUFYX1ZBTFVFXzMyQklUUyYmKHRoaXMuY29tcHJlc3Nl''@;'; put 'put ''ZFNpemU9Si5yZWFkSW50KDgpKSx0aGlzLmxvY2FsSGVhZGVyT2Zmc2V0PT09WS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5sb2NhbEhlYWRlck9mZnNldD1KLnJlYWRJbnQoOCkpLHRoaXMuZGlza051bWJlclN0YXJ0PT09WS5NQVhfVkFMVUVfMzJCSVRTJiYodGhpcy5kaXNrTnVtYmVyU3Rh''@;'; put 'put ''cnQ9Si5yZWFkSW50KDQpKX19LHJlYWRFeHRyYUZpZWxkczpmdW5jdGlvbihLKXt2YXIgc2Usb2UsY2UsSj1LLmluZGV4O2Zvcih0aGlzLmV4dHJhRmllbGRzPXRoaXMuZXh0cmFGaWVsZHN8fHt9O0suaW5kZXg8Sit0aGlzLmV4dHJhRmllbGRzTGVuZ3RoOylzZT1LLnJlYWRJbnQoMiksb2U9''@;'; put 'put ''Sy5yZWFkSW50KDIpLGNlPUsucmVhZFN0cmluZyhvZSksdGhpcy5leHRyYUZpZWxkc1tzZV09e2lkOnNlLGxlbmd0aDpvZSx2YWx1ZTpjZX19LGhhbmRsZVVURjg6ZnVuY3Rpb24oKXtpZih0aGlzLnVzZVVURjgoKSl0aGlzLmZpbGVOYW1lPU4udXRmOGRlY29kZSh0aGlzLmZpbGVOYW1lKSx0''@;'; put 'put ''aGlzLmZpbGVDb21tZW50PU4udXRmOGRlY29kZSh0aGlzLmZpbGVDb21tZW50KTtlbHNle3ZhciBLPXRoaXMuZmluZEV4dHJhRmllbGRVbmljb2RlUGF0aCgpO251bGwhPT1LJiYodGhpcy5maWxlTmFtZT1LKTt2YXIgSj10aGlzLmZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQoKTtudWxs''@;'; put 'put ''IT09SiYmKHRoaXMuZmlsZUNvbW1lbnQ9Sil9fSxmaW5kRXh0cmFGaWVsZFVuaWNvZGVQYXRoOmZ1bmN0aW9uKCl7dmFyIEs9dGhpcy5leHRyYUZpZWxkc1syODc4OV07aWYoSyl7dmFyIEo9bmV3IGFlKEsudmFsdWUpO3JldHVybiAxIT09Si5yZWFkSW50KDEpfHxOLmNyYzMyKHRoaXMuZmls''@;'; put 'put ''ZU5hbWUpIT09Si5yZWFkSW50KDQpP251bGw6Ti51dGY4ZGVjb2RlKEoucmVhZFN0cmluZyhLLmxlbmd0aC01KSl9cmV0dXJuIG51bGx9LGZpbmRFeHRyYUZpZWxkVW5pY29kZUNvbW1lbnQ6ZnVuY3Rpb24oKXt2YXIgSz10aGlzLmV4dHJhRmllbGRzWzI1NDYxXTtpZihLKXt2YXIgSj1uZXcg''@;'; put 'put ''YWUoSy52YWx1ZSk7cmV0dXJuIDEhPT1KLnJlYWRJbnQoMSl8fE4uY3JjMzIodGhpcy5maWxlQ29tbWVudCkhPT1KLnJlYWRJbnQoNCk/bnVsbDpOLnV0ZjhkZWNvZGUoSi5yZWFkU3RyaW5nKEsubGVuZ3RoLTUpKX1yZXR1cm4gbnVsbH19LGouZXhwb3J0cz10ZX0seyIuL2NvbXByZXNzZWRP''@;'; put 'put ''YmplY3QiOjIsIi4vb2JqZWN0IjoxMywiLi9zdHJpbmdSZWFkZXIiOjE1LCIuL3V0aWxzIjoyMX1dLDI0OltmdW5jdGlvbihRLGoscmUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdGU9e307KDAsUSgiLi9saWIvdXRpbHMvY29tbW9uIikuYXNzaWduKSh0ZSxRKCIuL2xpYi9kZWZsYXRlIiksUSgiLi9s''@;'; put 'put ''aWIvaW5mbGF0ZSIpLFEoIi4vbGliL3psaWIvY29uc3RhbnRzIikpLGouZXhwb3J0cz10ZX0seyIuL2xpYi9kZWZsYXRlIjoyNSwiLi9saWIvaW5mbGF0ZSI6MjYsIi4vbGliL3V0aWxzL2NvbW1vbiI6MjcsIi4vbGliL3psaWIvY29uc3RhbnRzIjozMH1dLDI1OltmdW5jdGlvbihRLGoscmUp''@;'; put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgYWU9USgiLi96bGliL2RlZmxhdGUuanMiKSxZPVEoIi4vdXRpbHMvY29tbW9uIiksVz1RKCIuL3V0aWxzL3N0cmluZ3MiKSxOPVEoIi4vemxpYi9tZXNzYWdlcyIpLHRlPVEoIi4vemxpYi96c3RyZWFtIiksQWU9ZnVuY3Rpb24oVGUpe3RoaXMub3B0aW9ucz1Z''@;'; put 'put ''LmFzc2lnbih7bGV2ZWw6LTEsbWV0aG9kOjgsY2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MTUsbWVtTGV2ZWw6OCxzdHJhdGVneTowLHRvOiIifSxUZXx8e30pO3ZhciBNZT10aGlzLm9wdGlvbnM7TWUucmF3JiZNZS53aW5kb3dCaXRzPjA/TWUud2luZG93Qml0cz0tTWUud2luZG93Qml0''@;'; put 'put ''czpNZS5nemlwJiZNZS53aW5kb3dCaXRzPjAmJk1lLndpbmRvd0JpdHM8MTYmJihNZS53aW5kb3dCaXRzKz0xNiksdGhpcy5lcnI9MCx0aGlzLm1zZz0iIix0aGlzLmVuZGVkPSExLHRoaXMuY2h1bmtzPVtdLHRoaXMuc3RybT1uZXcgdGUsdGhpcy5zdHJtLmF2YWlsX291dD0wO3ZhciBoZT1h''@;'; put 'put ''ZS5kZWZsYXRlSW5pdDIodGhpcy5zdHJtLE1lLmxldmVsLE1lLm1ldGhvZCxNZS53aW5kb3dCaXRzLE1lLm1lbUxldmVsLE1lLnN0cmF0ZWd5KTtpZigwIT09aGUpdGhyb3cgbmV3IEVycm9yKE5baGVdKTtNZS5oZWFkZXImJmFlLmRlZmxhdGVTZXRIZWFkZXIodGhpcy5zdHJtLE1lLmhlYWRl''@;'; put 'put ''cil9O2Z1bmN0aW9uIGtlKFRlLE1lKXt2YXIgaGU9bmV3IEFlKE1lKTtpZihoZS5wdXNoKFRlLCEwKSxoZS5lcnIpdGhyb3cgaGUubXNnO3JldHVybiBoZS5yZXN1bHR9QWUucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oVGUsTWUpe3ZhciB6LGVlLGhlPXRoaXMuc3RybSxPPXRoaXMub3B0aW9u''@;'; put 'put ''cy5jaHVua1NpemU7aWYodGhpcy5lbmRlZClyZXR1cm4hMTtlZT1NZT09PX5+TWU/TWU6ITA9PT1NZT80OjAsaGUuaW5wdXQ9InN0cmluZyI9PXR5cGVvZiBUZT9XLnN0cmluZzJidWYoVGUpOlRlLGhlLm5leHRfaW49MCxoZS5hdmFpbF9pbj1oZS5pbnB1dC5sZW5ndGg7ZG97aWYoMD09PWhl''@;'; put 'put ''LmF2YWlsX291dCYmKGhlLm91dHB1dD1uZXcgWS5CdWY4KE8pLGhlLm5leHRfb3V0PTAsaGUuYXZhaWxfb3V0PU8pLDEhPT0oej1hZS5kZWZsYXRlKGhlLGVlKSkmJjAhPT16KXJldHVybiB0aGlzLm9uRW5kKHopLHRoaXMuZW5kZWQ9ITAsITE7KDA9PT1oZS5hdmFpbF9vdXR8fDA9PT1oZS5h''@;'; put 'put ''dmFpbF9pbiYmND09PWVlKSYmdGhpcy5vbkRhdGEoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/Vy5idWYyYmluc3RyaW5nKFkuc2hyaW5rQnVmKGhlLm91dHB1dCxoZS5uZXh0X291dCkpOlkuc2hyaW5rQnVmKGhlLm91dHB1dCxoZS5uZXh0X291dCkpfXdoaWxlKChoZS5hdmFpbF9pbj4w''@;'; put 'put ''fHwwPT09aGUuYXZhaWxfb3V0KSYmMSE9PXopO3JldHVybiA0IT09ZWV8fCh6PWFlLmRlZmxhdGVFbmQodGhpcy5zdHJtKSx0aGlzLm9uRW5kKHopLHRoaXMuZW5kZWQ9ITAsMD09PXopfSxBZS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKFRlKXt0aGlzLmNodW5rcy5wdXNoKFRlKX0sQWUu''@;'; put 'put ''cHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKFRlKXswPT09VGUmJih0aGlzLnJlc3VsdD0ic3RyaW5nIj09PXRoaXMub3B0aW9ucy50bz90aGlzLmNodW5rcy5qb2luKCIiKTpZLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj1UZSx0aGlzLm1zZz10''@;'; put 'put ''aGlzLnN0cm0ubXNnfSxyZS5EZWZsYXRlPUFlLHJlLmRlZmxhdGU9a2UscmUuZGVmbGF0ZVJhdz1mdW5jdGlvbiBTZShUZSxNZSl7cmV0dXJuKE1lPU1lfHx7fSkucmF3PSEwLGtlKFRlLE1lKX0scmUuZ3ppcD1mdW5jdGlvbiBJZShUZSxNZSl7cmV0dXJuKE1lPU1lfHx7fSkuZ3ppcD0hMCxr''@;'; put 'put ''ZShUZSxNZSl9fSx7Ii4vdXRpbHMvY29tbW9uIjoyNywiLi91dGlscy9zdHJpbmdzIjoyOCwiLi96bGliL2RlZmxhdGUuanMiOjMyLCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3psaWIvenN0cmVhbSI6Mzl9XSwyNjpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4v''@;'; put 'put ''emxpYi9pbmZsYXRlLmpzIiksWT1RKCIuL3V0aWxzL2NvbW1vbiIpLFc9USgiLi91dGlscy9zdHJpbmdzIiksTj1RKCIuL3psaWIvY29uc3RhbnRzIiksdGU9USgiLi96bGliL21lc3NhZ2VzIiksSz1RKCIuL3psaWIvenN0cmVhbSIpLEo9USgiLi96bGliL2d6aGVhZGVyIiksc2U9ZnVuY3Rp''@;'; put 'put ''b24oZGUpe3RoaXMub3B0aW9ucz1ZLmFzc2lnbih7Y2h1bmtTaXplOjE2Mzg0LHdpbmRvd0JpdHM6MCx0bzoiIn0sZGV8fHt9KTt2YXIgdmU9dGhpcy5vcHRpb25zO3ZlLnJhdyYmdmUud2luZG93Qml0cz49MCYmdmUud2luZG93Qml0czwxNiYmKHZlLndpbmRvd0JpdHM9LXZlLndpbmRvd0Jp''@;'; put 'put ''dHMsMD09PXZlLndpbmRvd0JpdHMmJih2ZS53aW5kb3dCaXRzPS0xNSkpLHZlLndpbmRvd0JpdHM+PTAmJnZlLndpbmRvd0JpdHM8MTYmJiEoZGUmJmRlLndpbmRvd0JpdHMpJiYodmUud2luZG93Qml0cys9MzIpLHZlLndpbmRvd0JpdHM+MTUmJnZlLndpbmRvd0JpdHM8NDgmJjA9PSgxNSZ2''@;'; put 'put ''ZS53aW5kb3dCaXRzKSYmKHZlLndpbmRvd0JpdHN8PTE1KSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyBLLHRoaXMuc3RybS5hdmFpbF9vdXQ9MDt2YXIgQWU9YWUuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSx2ZS53aW5k''@;'; put 'put ''b3dCaXRzKTtpZihBZSE9PU4uWl9PSyl0aHJvdyBuZXcgRXJyb3IodGVbQWVdKTt0aGlzLmhlYWRlcj1uZXcgSixhZS5pbmZsYXRlR2V0SGVhZGVyKHRoaXMuc3RybSx0aGlzLmhlYWRlcil9O2Z1bmN0aW9uIG9lKGRlLHZlKXt2YXIgQWU9bmV3IHNlKHZlKTtpZihBZS5wdXNoKGRlLCEwKSxB''@;'; put 'put ''ZS5lcnIpdGhyb3cgQWUubXNnO3JldHVybiBBZS5yZXN1bHR9c2UucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZGUsdmUpe3ZhciBTZSxJZSxUZSxNZSxoZSxBZT10aGlzLnN0cm0sa2U9dGhpcy5vcHRpb25zLmNodW5rU2l6ZTtpZih0aGlzLmVuZGVkKXJldHVybiExO0llPXZlPT09fn52ZT92''@;'; put 'put ''ZTohMD09PXZlP04uWl9GSU5JU0g6Ti5aX05PX0ZMVVNILEFlLmlucHV0PSJzdHJpbmciPT10eXBlb2YgZGU/Vy5iaW5zdHJpbmcyYnVmKGRlKTpkZSxBZS5uZXh0X2luPTAsQWUuYXZhaWxfaW49QWUuaW5wdXQubGVuZ3RoO2Rve2lmKDA9PT1BZS5hdmFpbF9vdXQmJihBZS5vdXRwdXQ9bmV3''@;'; put 'put ''IFkuQnVmOChrZSksQWUubmV4dF9vdXQ9MCxBZS5hdmFpbF9vdXQ9a2UpLChTZT1hZS5pbmZsYXRlKEFlLE4uWl9OT19GTFVTSCkpIT09Ti5aX1NUUkVBTV9FTkQmJlNlIT09Ti5aX09LKXJldHVybiB0aGlzLm9uRW5kKFNlKSx0aGlzLmVuZGVkPSEwLCExO0FlLm5leHRfb3V0JiYoMD09PUFl''@;'; put 'put ''LmF2YWlsX291dHx8U2U9PT1OLlpfU1RSRUFNX0VORHx8MD09PUFlLmF2YWlsX2luJiZJZT09PU4uWl9GSU5JU0gpJiYoInN0cmluZyI9PT10aGlzLm9wdGlvbnMudG8/KFRlPVcudXRmOGJvcmRlcihBZS5vdXRwdXQsQWUubmV4dF9vdXQpLE1lPUFlLm5leHRfb3V0LVRlLGhlPVcuYnVmMnN0''@;'; put 'put ''cmluZyhBZS5vdXRwdXQsVGUpLEFlLm5leHRfb3V0PU1lLEFlLmF2YWlsX291dD1rZS1NZSxNZSYmWS5hcnJheVNldChBZS5vdXRwdXQsQWUub3V0cHV0LFRlLE1lLDApLHRoaXMub25EYXRhKGhlKSk6dGhpcy5vbkRhdGEoWS5zaHJpbmtCdWYoQWUub3V0cHV0LEFlLm5leHRfb3V0KSkpfXdo''@;'; put 'put ''aWxlKEFlLmF2YWlsX2luPjAmJlNlIT09Ti5aX1NUUkVBTV9FTkQpO3JldHVybiBTZT09PU4uWl9TVFJFQU1fRU5EJiYoSWU9Ti5aX0ZJTklTSCksSWUhPT1OLlpfRklOSVNIfHwoU2U9YWUuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoU2UpLHRoaXMuZW5kZWQ9ITAsU2U9PT1O''@;'; put 'put ''LlpfT0spfSxzZS5wcm90b3R5cGUub25EYXRhPWZ1bmN0aW9uKGRlKXt0aGlzLmNodW5rcy5wdXNoKGRlKX0sc2UucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKGRlKXtkZT09PU4uWl9PSyYmKHRoaXMucmVzdWx0PSJzdHJpbmciPT09dGhpcy5vcHRpb25zLnRvP3RoaXMuY2h1bmtzLmpvaW4o''@;'; put 'put ''IiIpOlkuZmxhdHRlbkNodW5rcyh0aGlzLmNodW5rcykpLHRoaXMuY2h1bmtzPVtdLHRoaXMuZXJyPWRlLHRoaXMubXNnPXRoaXMuc3RybS5tc2d9LHJlLkluZmxhdGU9c2UscmUuaW5mbGF0ZT1vZSxyZS5pbmZsYXRlUmF3PWZ1bmN0aW9uIGNlKGRlLHZlKXtyZXR1cm4odmU9dmV8fHt9KS5y''@;'; put 'put ''YXc9ITAsb2UoZGUsdmUpfSxyZS51bmd6aXA9b2V9LHsiLi91dGlscy9jb21tb24iOjI3LCIuL3V0aWxzL3N0cmluZ3MiOjI4LCIuL3psaWIvY29uc3RhbnRzIjozMCwiLi96bGliL2d6aGVhZGVyIjozMywiLi96bGliL2luZmxhdGUuanMiOjM1LCIuL3psaWIvbWVzc2FnZXMiOjM3LCIuL3ps''@;'; put 'put ''aWIvenN0cmVhbSI6Mzl9XSwyNzpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50MTZBcnJheSYmInVuZGVmaW5lZCIhPXR5cGVvZiBJbnQzMkFycmF5O3JlLmFzc2lnbj1m''@;'; put 'put ''dW5jdGlvbihOKXtmb3IodmFyIHRlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTt0ZS5sZW5ndGg7KXt2YXIgSz10ZS5zaGlmdCgpO2lmKEspe2lmKCJvYmplY3QiIT10eXBlb2YgSyl0aHJvdyBuZXcgVHlwZUVycm9yKEsrIm11c3QgYmUgbm9uLW9iamVjdCIpO2Zv''@;'; put 'put ''cih2YXIgSiBpbiBLKUsuaGFzT3duUHJvcGVydHkoSikmJihOW0pdPUtbSl0pfX1yZXR1cm4gTn0scmUuc2hyaW5rQnVmPWZ1bmN0aW9uKE4sdGUpe3JldHVybiBOLmxlbmd0aD09PXRlP046Ti5zdWJhcnJheT9OLnN1YmFycmF5KDAsdGUpOihOLmxlbmd0aD10ZSxOKX07dmFyIFk9e2FycmF5''@;'; put 'put ''U2V0OmZ1bmN0aW9uKE4sdGUsSyxKLHNlKXtpZih0ZS5zdWJhcnJheSYmTi5zdWJhcnJheSlOLnNldCh0ZS5zdWJhcnJheShLLEsrSiksc2UpO2Vsc2UgZm9yKHZhciBvZT0wO29lPEo7b2UrKylOW3NlK29lXT10ZVtLK29lXX0sZmxhdHRlbkNodW5rczpmdW5jdGlvbihOKXt2YXIgdGUsSyxK''@;'; put 'put ''LHNlLG9lLGNlO2ZvcihKPTAsdGU9MCxLPU4ubGVuZ3RoO3RlPEs7dGUrKylKKz1OW3RlXS5sZW5ndGg7Zm9yKGNlPW5ldyBVaW50OEFycmF5KEopLHNlPTAsdGU9MCxLPU4ubGVuZ3RoO3RlPEs7dGUrKyljZS5zZXQob2U9Tlt0ZV0sc2UpLHNlKz1vZS5sZW5ndGg7cmV0dXJuIGNlfX0sVz17''@;'; put 'put ''YXJyYXlTZXQ6ZnVuY3Rpb24oTix0ZSxLLEosc2Upe2Zvcih2YXIgb2U9MDtvZTxKO29lKyspTltzZStvZV09dGVbSytvZV19LGZsYXR0ZW5DaHVua3M6ZnVuY3Rpb24oTil7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLE4pfX07cmUuc2V0VHlwZWQ9ZnVuY3Rpb24oTil7Tj8ocmUuQnVmOD1V''@;'; put 'put ''aW50OEFycmF5LHJlLkJ1ZjE2PVVpbnQxNkFycmF5LHJlLkJ1ZjMyPUludDMyQXJyYXkscmUuYXNzaWduKHJlLFkpKToocmUuQnVmOD1BcnJheSxyZS5CdWYxNj1BcnJheSxyZS5CdWYzMj1BcnJheSxyZS5hc3NpZ24ocmUsVykpfSxyZS5zZXRUeXBlZChhZSl9LHt9XSwyODpbZnVuY3Rpb24o''@;'; put 'put ''USxqLHJlKXsidXNlIHN0cmljdCI7dmFyIGFlPVEoIi4vY29tbW9uIiksWT0hMCxXPSEwO3RyeXtTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsWzBdKX1jYXRjaChKKXtZPSExfXRyeXtTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMSkpfWNhdGNo''@;'; put 'put ''KEope1c9ITF9Zm9yKHZhciBOPW5ldyBhZS5CdWY4KDI1NiksdGU9MDt0ZTwyNTY7dGUrKylOW3RlXT10ZT49MjUyPzY6dGU+PTI0OD81OnRlPj0yNDA/NDp0ZT49MjI0PzM6dGU+PTE5Mj8yOjE7ZnVuY3Rpb24gSyhKLHNlKXtpZihzZTw2NTUzNyYmKEouc3ViYXJyYXkmJld8fCFKLnN1YmFy''@;'; put 'put ''cmF5JiZZKSlyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGFlLnNocmlua0J1ZihKLHNlKSk7Zm9yKHZhciBvZT0iIixjZT0wO2NlPHNlO2NlKyspb2UrPVN0cmluZy5mcm9tQ2hhckNvZGUoSltjZV0pO3JldHVybiBvZX1OWzI1NF09TlsyNTRdPTEscmUuc3RyaW5nMmJ1''@;'; put 'put ''Zj1mdW5jdGlvbihKKXt2YXIgc2Usb2UsY2UsZGUsdmUsQWU9Si5sZW5ndGgsa2U9MDtmb3IoZGU9MDtkZTxBZTtkZSsrKTU1Mjk2PT0oNjQ1MTImKG9lPUouY2hhckNvZGVBdChkZSkpKSYmZGUrMTxBZSYmNTYzMjA9PSg2NDUxMiYoY2U9Si5jaGFyQ29kZUF0KGRlKzEpKSkmJihvZT02NTUz''@;'; put 'put ''Nisob2UtNTUyOTY8PDEwKSsoY2UtNTYzMjApLGRlKyspLGtlKz1vZTwxMjg/MTpvZTwyMDQ4PzI6b2U8NjU1MzY/Mzo0O2ZvcihzZT1uZXcgYWUuQnVmOChrZSksdmU9MCxkZT0wO3ZlPGtlO2RlKyspNTUyOTY9PSg2NDUxMiYob2U9Si5jaGFyQ29kZUF0KGRlKSkpJiZkZSsxPEFlJiY1NjMy''@;'; put 'put ''MD09KDY0NTEyJihjZT1KLmNoYXJDb2RlQXQoZGUrMSkpKSYmKG9lPTY1NTM2KyhvZS01NTI5Njw8MTApKyhjZS01NjMyMCksZGUrKyksb2U8MTI4P3NlW3ZlKytdPW9lOm9lPDIwNDg/KHNlW3ZlKytdPTE5MnxvZT4+PjYsc2VbdmUrK109MTI4fDYzJm9lKTpvZTw2NTUzNj8oc2VbdmUrK109''@;'; put 'put ''MjI0fG9lPj4+MTIsc2VbdmUrK109MTI4fG9lPj4+NiY2MyxzZVt2ZSsrXT0xMjh8NjMmb2UpOihzZVt2ZSsrXT0yNDB8b2U+Pj4xOCxzZVt2ZSsrXT0xMjh8b2U+Pj4xMiY2MyxzZVt2ZSsrXT0xMjh8b2U+Pj42JjYzLHNlW3ZlKytdPTEyOHw2MyZvZSk7cmV0dXJuIHNlfSxyZS5idWYyYmlu''@;'; put 'put ''c3RyaW5nPWZ1bmN0aW9uKEope3JldHVybiBLKEosSi5sZW5ndGgpfSxyZS5iaW5zdHJpbmcyYnVmPWZ1bmN0aW9uKEope2Zvcih2YXIgc2U9bmV3IGFlLkJ1ZjgoSi5sZW5ndGgpLG9lPTAsY2U9c2UubGVuZ3RoO29lPGNlO29lKyspc2Vbb2VdPUouY2hhckNvZGVBdChvZSk7cmV0dXJuIHNl''@;'; put 'put ''fSxyZS5idWYyc3RyaW5nPWZ1bmN0aW9uKEosc2Upe3ZhciBvZSxjZSxkZSx2ZSxBZT1zZXx8Si5sZW5ndGgsa2U9bmV3IEFycmF5KDIqQWUpO2ZvcihjZT0wLG9lPTA7b2U8QWU7KWlmKChkZT1KW29lKytdKTwxMjgpa2VbY2UrK109ZGU7ZWxzZSBpZigodmU9TltkZV0pPjQpa2VbY2UrK109''@;'; put 'put ''NjU1MzMsb2UrPXZlLTE7ZWxzZXtmb3IoZGUmPTI9PT12ZT8zMTozPT09dmU/MTU6Nzt2ZT4xJiZvZTxBZTspZGU9ZGU8PDZ8NjMmSltvZSsrXSx2ZS0tO3ZlPjE/a2VbY2UrK109NjU1MzM6ZGU8NjU1MzY/a2VbY2UrK109ZGU6KGtlW2NlKytdPTU1Mjk2fChkZS09NjU1MzYpPj4xMCYxMDIz''@;'; put 'put ''LGtlW2NlKytdPTU2MzIwfDEwMjMmZGUpfXJldHVybiBLKGtlLGNlKX0scmUudXRmOGJvcmRlcj1mdW5jdGlvbihKLHNlKXt2YXIgb2U7Zm9yKChzZT1zZXx8Si5sZW5ndGgpPkoubGVuZ3RoJiYoc2U9Si5sZW5ndGgpLG9lPXNlLTE7b2U+PTAmJjEyOD09KDE5MiZKW29lXSk7KW9lLS07cmV0''@;'; put 'put ''dXJuIG9lPDB8fDA9PT1vZT9zZTpvZStOW0pbb2VdXT5zZT9vZTpzZX19LHsiLi9jb21tb24iOjI3fV0sMjk6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO2ouZXhwb3J0cz1mdW5jdGlvbiBhZShZLFcsTix0ZSl7Zm9yKHZhciBLPTY1NTM1Jll8MCxKPVk+Pj4xNiY2NTUzNXwwLHNl''@;'; put 'put ''PTA7MCE9PU47KXtOLT1zZT1OPjJlMz8yZTM6Tjtkb3tKPUorKEs9SytXW3RlKytdfDApfDB9d2hpbGUoLS1zZSk7SyU9NjU1MjEsSiU9NjU1MjF9cmV0dXJuIEt8Sjw8MTZ8MH19LHt9XSwzMDpbZnVuY3Rpb24oUSxqLHJlKXtqLmV4cG9ydHM9e1pfTk9fRkxVU0g6MCxaX1BBUlRJQUxfRkxV''@;'; put 'put ''U0g6MSxaX1NZTkNfRkxVU0g6MixaX0ZVTExfRkxVU0g6MyxaX0ZJTklTSDo0LFpfQkxPQ0s6NSxaX1RSRUVTOjYsWl9PSzowLFpfU1RSRUFNX0VORDoxLFpfTkVFRF9ESUNUOjIsWl9FUlJOTzotMSxaX1NUUkVBTV9FUlJPUjotMixaX0RBVEFfRVJST1I6LTMsWl9CVUZfRVJST1I6LTUsWl9O''@;'; put 'put ''T19DT01QUkVTU0lPTjowLFpfQkVTVF9TUEVFRDoxLFpfQkVTVF9DT01QUkVTU0lPTjo5LFpfREVGQVVMVF9DT01QUkVTU0lPTjotMSxaX0ZJTFRFUkVEOjEsWl9IVUZGTUFOX09OTFk6MixaX1JMRTozLFpfRklYRUQ6NCxaX0RFRkFVTFRfU1RSQVRFR1k6MCxaX0JJTkFSWTowLFpfVEVYVDox''@;'; put 'put ''LFpfVU5LTk9XTjoyLFpfREVGTEFURUQ6OH19LHt9XSwzMTpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7dmFyIFk9ZnVuY3Rpb24gYWUoKXtmb3IodmFyIE4sdGU9W10sSz0wO0s8MjU2O0srKyl7Tj1LO2Zvcih2YXIgSj0wO0o8ODtKKyspTj0xJk4/Mzk4ODI5MjM4NF5OPj4+MTpO''@;'; put 'put ''Pj4+MTt0ZVtLXT1OfXJldHVybiB0ZX0oKTtqLmV4cG9ydHM9ZnVuY3Rpb24gVyhOLHRlLEssSil7dmFyIHNlPVksb2U9SitLO05ePS0xO2Zvcih2YXIgY2U9SjtjZTxvZTtjZSsrKU49Tj4+Pjhec2VbMjU1JihOXnRlW2NlXSldO3JldHVybi0xXk59fSx7fV0sMzI6W2Z1bmN0aW9uKFEsaixy''@;'; put 'put ''ZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuLi91dGlscy9jb21tb24iKSxZPVEoIi4vdHJlZXMiKSxXPVEoIi4vYWRsZXIzMiIpLE49USgiLi9jcmMzMiIpLHRlPVEoIi4vbWVzc2FnZXMiKSxndD0yNjI7ZnVuY3Rpb24gZnQoTnQsc24pe3JldHVybiBOdC5tc2c9dGVbc25dLHNufWZ1bmN0''@;'; put 'put ''aW9uIEh0KE50KXtyZXR1cm4oTnQ8PDEpLShOdD40Pzk6MCl9ZnVuY3Rpb24gR2UoTnQpe2Zvcih2YXIgc249TnQubGVuZ3RoOy0tc24+PTA7KU50W3NuXT0wfWZ1bmN0aW9uIFVlKE50KXt2YXIgc249TnQuc3RhdGUsVW49c24ucGVuZGluZztVbj5OdC5hdmFpbF9vdXQmJihVbj1OdC5hdmFp''@;'; put 'put ''bF9vdXQpLDAhPT1VbiYmKGFlLmFycmF5U2V0KE50Lm91dHB1dCxzbi5wZW5kaW5nX2J1Zixzbi5wZW5kaW5nX291dCxVbixOdC5uZXh0X291dCksTnQubmV4dF9vdXQrPVVuLHNuLnBlbmRpbmdfb3V0Kz1VbixOdC50b3RhbF9vdXQrPVVuLE50LmF2YWlsX291dC09VW4sc24ucGVuZGluZy09''@;'; put 'put ''VW4sMD09PXNuLnBlbmRpbmcmJihzbi5wZW5kaW5nX291dD0wKSl9ZnVuY3Rpb24geXQoTnQsc24pe1kuX3RyX2ZsdXNoX2Jsb2NrKE50LE50LmJsb2NrX3N0YXJ0Pj0wP050LmJsb2NrX3N0YXJ0Oi0xLE50LnN0cnN0YXJ0LU50LmJsb2NrX3N0YXJ0LHNuKSxOdC5ibG9ja19zdGFydD1OdC5z''@;'; put 'put ''dHJzdGFydCxVZShOdC5zdHJtKX1mdW5jdGlvbiBqdChOdCxzbil7TnQucGVuZGluZ19idWZbTnQucGVuZGluZysrXT1zbn1mdW5jdGlvbiBKdChOdCxzbil7TnQucGVuZGluZ19idWZbTnQucGVuZGluZysrXT1zbj4+PjgmMjU1LE50LnBlbmRpbmdfYnVmW050LnBlbmRpbmcrK109MjU1JnNu''@;'; put 'put ''fWZ1bmN0aW9uIGduKE50LHNuLFVuLHduKXt2YXIgdG49TnQuYXZhaWxfaW47cmV0dXJuIHRuPnduJiYodG49d24pLDA9PT10bj8wOihOdC5hdmFpbF9pbi09dG4sYWUuYXJyYXlTZXQoc24sTnQuaW5wdXQsTnQubmV4dF9pbix0bixVbiksMT09PU50LnN0YXRlLndyYXA/TnQuYWRsZXI9VyhO''@;'; put 'put ''dC5hZGxlcixzbix0bixVbik6Mj09PU50LnN0YXRlLndyYXAmJihOdC5hZGxlcj1OKE50LmFkbGVyLHNuLHRuLFVuKSksTnQubmV4dF9pbis9dG4sTnQudG90YWxfaW4rPXRuLHRuKX1mdW5jdGlvbiBkbihOdCxzbil7dmFyIHRuLHpuLFVuPU50Lm1heF9jaGFpbl9sZW5ndGgsd249TnQuc3Ry''@;'; put 'put ''c3RhcnQsVHI9TnQucHJldl9sZW5ndGgsQm49TnQubmljZV9tYXRjaCxrcj1OdC5zdHJzdGFydD5OdC53X3NpemUtZ3Q/TnQuc3Ryc3RhcnQtKE50Lndfc2l6ZS1ndCk6MCxtbj1OdC53aW5kb3csdW49TnQud19tYXNrLGNuPU50LnByZXYsX249TnQuc3Ryc3RhcnQrMjU4LEd0PW1uW3duK1Ry''@;'; put 'put ''LTFdLGtuPW1uW3duK1RyXTtOdC5wcmV2X2xlbmd0aD49TnQuZ29vZF9tYXRjaCYmKFVuPj49MiksQm4+TnQubG9va2FoZWFkJiYoQm49TnQubG9va2FoZWFkKTtkb3tpZihtblsodG49c24pK1RyXT09PWtuJiZtblt0bitUci0xXT09PUd0JiZtblt0bl09PT1tblt3bl0mJm1uWysrdG5dPT09''@;'; put 'put ''bW5bd24rMV0pe3duKz0yLHRuKys7ZG97fXdoaWxlKG1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJm1uWysrd25d''@;'; put 'put ''PT09bW5bKyt0bl0mJm1uWysrd25dPT09bW5bKyt0bl0mJnduPF9uKTtpZih6bj0yNTgtKF9uLXduKSx3bj1fbi0yNTgsem4+VHIpe2lmKE50Lm1hdGNoX3N0YXJ0PXNuLFRyPXpuLHpuPj1CbilicmVhaztHdD1tblt3bitUci0xXSxrbj1tblt3bitUcl19fX13aGlsZSgoc249Y25bc24mdW5d''@;'; put 'put ''KT5rciYmMCE9LS1Vbik7cmV0dXJuIFRyPD1OdC5sb29rYWhlYWQ/VHI6TnQubG9va2FoZWFkfWZ1bmN0aW9uIHluKE50KXt2YXIgVW4sd24sdG4sem4sVHIsc249TnQud19zaXplO2Rve2lmKHpuPU50LndpbmRvd19zaXplLU50Lmxvb2thaGVhZC1OdC5zdHJzdGFydCxOdC5zdHJzdGFydD49''@;'; put 'put ''c24rKHNuLWd0KSl7YWUuYXJyYXlTZXQoTnQud2luZG93LE50LndpbmRvdyxzbixzbiwwKSxOdC5tYXRjaF9zdGFydC09c24sTnQuc3Ryc3RhcnQtPXNuLE50LmJsb2NrX3N0YXJ0LT1zbixVbj13bj1OdC5oYXNoX3NpemU7ZG97dG49TnQuaGVhZFstLVVuXSxOdC5oZWFkW1VuXT10bj49c24/''@;'; put 'put ''dG4tc246MH13aGlsZSgtLXduKTtVbj13bj1zbjtkb3t0bj1OdC5wcmV2Wy0tVW5dLE50LnByZXZbVW5dPXRuPj1zbj90bi1zbjowfXdoaWxlKC0td24pO3puKz1zbn1pZigwPT09TnQuc3RybS5hdmFpbF9pbilicmVhaztpZih3bj1nbihOdC5zdHJtLE50LndpbmRvdyxOdC5zdHJzdGFydCtO''@;'; put 'put ''dC5sb29rYWhlYWQsem4pLE50Lmxvb2thaGVhZCs9d24sTnQubG9va2FoZWFkK050Lmluc2VydD49Mylmb3IoTnQuaW5zX2g9TnQud2luZG93W1RyPU50LnN0cnN0YXJ0LU50Lmluc2VydF0sTnQuaW5zX2g9KE50Lmluc19oPDxOdC5oYXNoX3NoaWZ0Xk50LndpbmRvd1tUcisxXSkmTnQuaGFz''@;'; put 'put ''aF9tYXNrO050Lmluc2VydCYmKE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbVHIrMy0xXSkmTnQuaGFzaF9tYXNrLE50LnByZXZbVHImTnQud19tYXNrXT1OdC5oZWFkW050Lmluc19oXSxOdC5oZWFkW050Lmluc19oXT1UcixUcisrLE50Lmluc2VydC0tLCEo''@;'; put 'put ''TnQubG9va2FoZWFkK050Lmluc2VydDwzKSk7KTt9d2hpbGUoTnQubG9va2FoZWFkPGd0JiYwIT09TnQuc3RybS5hdmFpbF9pbil9ZnVuY3Rpb24gTm4oTnQsc24pe2Zvcih2YXIgVW4sd247Oyl7aWYoTnQubG9va2FoZWFkPGd0KXtpZih5bihOdCksTnQubG9va2FoZWFkPGd0JiYwPT09c24p''@;'; put 'put ''cmV0dXJuIDE7aWYoMD09PU50Lmxvb2thaGVhZClicmVha31pZihVbj0wLE50Lmxvb2thaGVhZD49MyYmKE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbTnQuc3Ryc3RhcnQrMy0xXSkmTnQuaGFzaF9tYXNrLFVuPU50LnByZXZbTnQuc3Ryc3RhcnQmTnQud19t''@;'; put 'put ''YXNrXT1OdC5oZWFkW050Lmluc19oXSxOdC5oZWFkW050Lmluc19oXT1OdC5zdHJzdGFydCksMCE9PVVuJiZOdC5zdHJzdGFydC1Vbjw9TnQud19zaXplLWd0JiYoTnQubWF0Y2hfbGVuZ3RoPWRuKE50LFVuKSksTnQubWF0Y2hfbGVuZ3RoPj0zKWlmKHduPVkuX3RyX3RhbGx5KE50LE50LnN0''@;'; put 'put ''cnN0YXJ0LU50Lm1hdGNoX3N0YXJ0LE50Lm1hdGNoX2xlbmd0aC0zKSxOdC5sb29rYWhlYWQtPU50Lm1hdGNoX2xlbmd0aCxOdC5tYXRjaF9sZW5ndGg8PU50Lm1heF9sYXp5X21hdGNoJiZOdC5sb29rYWhlYWQ+PTMpe050Lm1hdGNoX2xlbmd0aC0tO2Rve050LnN0cnN0YXJ0KyssTnQuaW5z''@;'; put 'put ''X2g9KE50Lmluc19oPDxOdC5oYXNoX3NoaWZ0Xk50LndpbmRvd1tOdC5zdHJzdGFydCszLTFdKSZOdC5oYXNoX21hc2ssVW49TnQucHJldltOdC5zdHJzdGFydCZOdC53X21hc2tdPU50LmhlYWRbTnQuaW5zX2hdLE50LmhlYWRbTnQuaW5zX2hdPU50LnN0cnN0YXJ0fXdoaWxlKDAhPS0tTnQu''@;'; put 'put ''bWF0Y2hfbGVuZ3RoKTtOdC5zdHJzdGFydCsrfWVsc2UgTnQuc3Ryc3RhcnQrPU50Lm1hdGNoX2xlbmd0aCxOdC5tYXRjaF9sZW5ndGg9MCxOdC5pbnNfaD1OdC53aW5kb3dbTnQuc3Ryc3RhcnRdLE50Lmluc19oPShOdC5pbnNfaDw8TnQuaGFzaF9zaGlmdF5OdC53aW5kb3dbTnQuc3Ryc3Rh''@;'; put 'put ''cnQrMV0pJk50Lmhhc2hfbWFzaztlbHNlIHduPVkuX3RyX3RhbGx5KE50LDAsTnQud2luZG93W050LnN0cnN0YXJ0XSksTnQubG9va2FoZWFkLS0sTnQuc3Ryc3RhcnQrKztpZih3biYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBOdC5pbnNlcnQ9''@;'; put 'put ''TnQuc3Ryc3RhcnQ8Mj9OdC5zdHJzdGFydDoyLDQ9PT1zbj8oeXQoTnQsITApLDA9PT1OdC5zdHJtLmF2YWlsX291dD8zOjQpOk50Lmxhc3RfbGl0JiYoeXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCk/MToyfWZ1bmN0aW9uIGJuKE50LHNuKXtmb3IodmFyIFVuLHduLHRuOzspe2lm''@;'; put 'put ''KE50Lmxvb2thaGVhZDxndCl7aWYoeW4oTnQpLE50Lmxvb2thaGVhZDxndCYmMD09PXNuKXJldHVybiAxO2lmKDA9PT1OdC5sb29rYWhlYWQpYnJlYWt9aWYoVW49MCxOdC5sb29rYWhlYWQ+PTMmJihOdC5pbnNfaD0oTnQuaW5zX2g8PE50Lmhhc2hfc2hpZnReTnQud2luZG93W050LnN0cnN0''@;'; put 'put ''YXJ0KzMtMV0pJk50Lmhhc2hfbWFzayxVbj1OdC5wcmV2W050LnN0cnN0YXJ0Jk50LndfbWFza109TnQuaGVhZFtOdC5pbnNfaF0sTnQuaGVhZFtOdC5pbnNfaF09TnQuc3Ryc3RhcnQpLE50LnByZXZfbGVuZ3RoPU50Lm1hdGNoX2xlbmd0aCxOdC5wcmV2X21hdGNoPU50Lm1hdGNoX3N0YXJ0''@;'; put 'put ''LE50Lm1hdGNoX2xlbmd0aD0yLDAhPT1VbiYmTnQucHJldl9sZW5ndGg8TnQubWF4X2xhenlfbWF0Y2gmJk50LnN0cnN0YXJ0LVVuPD1OdC53X3NpemUtZ3QmJihOdC5tYXRjaF9sZW5ndGg9ZG4oTnQsVW4pLE50Lm1hdGNoX2xlbmd0aDw9NSYmKDE9PT1OdC5zdHJhdGVneXx8Mz09PU50Lm1h''@;'; put 'put ''dGNoX2xlbmd0aCYmTnQuc3Ryc3RhcnQtTnQubWF0Y2hfc3RhcnQ+NDA5NikmJihOdC5tYXRjaF9sZW5ndGg9MikpLE50LnByZXZfbGVuZ3RoPj0zJiZOdC5tYXRjaF9sZW5ndGg8PU50LnByZXZfbGVuZ3RoKXt0bj1OdC5zdHJzdGFydCtOdC5sb29rYWhlYWQtMyx3bj1ZLl90cl90YWxseShO''@;'; put 'put ''dCxOdC5zdHJzdGFydC0xLU50LnByZXZfbWF0Y2gsTnQucHJldl9sZW5ndGgtMyksTnQubG9va2FoZWFkLT1OdC5wcmV2X2xlbmd0aC0xLE50LnByZXZfbGVuZ3RoLT0yO2RveysrTnQuc3Ryc3RhcnQ8PXRuJiYoTnQuaW5zX2g9KE50Lmluc19oPDxOdC5oYXNoX3NoaWZ0Xk50LndpbmRvd1tO''@;'; put 'put ''dC5zdHJzdGFydCszLTFdKSZOdC5oYXNoX21hc2ssVW49TnQucHJldltOdC5zdHJzdGFydCZOdC53X21hc2tdPU50LmhlYWRbTnQuaW5zX2hdLE50LmhlYWRbTnQuaW5zX2hdPU50LnN0cnN0YXJ0KX13aGlsZSgwIT0tLU50LnByZXZfbGVuZ3RoKTtpZihOdC5tYXRjaF9hdmFpbGFibGU9MCxO''@;'; put 'put ''dC5tYXRjaF9sZW5ndGg9MixOdC5zdHJzdGFydCsrLHduJiYoeXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCkpcmV0dXJuIDF9ZWxzZSBpZihOdC5tYXRjaF9hdmFpbGFibGUpe2lmKCh3bj1ZLl90cl90YWxseShOdCwwLE50LndpbmRvd1tOdC5zdHJzdGFydC0xXSkpJiZ5dChOdCwh''@;'; put 'put ''MSksTnQuc3Ryc3RhcnQrKyxOdC5sb29rYWhlYWQtLSwwPT09TnQuc3RybS5hdmFpbF9vdXQpcmV0dXJuIDF9ZWxzZSBOdC5tYXRjaF9hdmFpbGFibGU9MSxOdC5zdHJzdGFydCsrLE50Lmxvb2thaGVhZC0tfXJldHVybiBOdC5tYXRjaF9hdmFpbGFibGUmJih3bj1ZLl90cl90YWxseShOdCww''@;'; put 'put ''LE50LndpbmRvd1tOdC5zdHJzdGFydC0xXSksTnQubWF0Y2hfYXZhaWxhYmxlPTApLE50Lmluc2VydD1OdC5zdHJzdGFydDwyP050LnN0cnN0YXJ0OjIsND09PXNuPyh5dChOdCwhMCksMD09PU50LnN0cm0uYXZhaWxfb3V0PzM6NCk6TnQubGFzdF9saXQmJih5dChOdCwhMSksMD09PU50LnN0''@;'; put 'put ''cm0uYXZhaWxfb3V0KT8xOjJ9dmFyIEZyLFhuPWZ1bmN0aW9uKE50LHNuLFVuLHduLHRuKXt0aGlzLmdvb2RfbGVuZ3RoPU50LHRoaXMubWF4X2xhenk9c24sdGhpcy5uaWNlX2xlbmd0aD1Vbix0aGlzLm1heF9jaGFpbj13bix0aGlzLmZ1bmM9dG59O2Z1bmN0aW9uIHF0KCl7dGhpcy5zdHJt''@;'; put 'put ''PW51bGwsdGhpcy5zdGF0dXM9MCx0aGlzLnBlbmRpbmdfYnVmPW51bGwsdGhpcy5wZW5kaW5nX2J1Zl9zaXplPTAsdGhpcy5wZW5kaW5nX291dD0wLHRoaXMucGVuZGluZz0wLHRoaXMud3JhcD0wLHRoaXMuZ3poZWFkPW51bGwsdGhpcy5nemluZGV4PTAsdGhpcy5tZXRob2Q9OCx0aGlzLmxh''@;'; put 'put ''c3RfZmx1c2g9LTEsdGhpcy53X3NpemU9MCx0aGlzLndfYml0cz0wLHRoaXMud19tYXNrPTAsdGhpcy53aW5kb3c9bnVsbCx0aGlzLndpbmRvd19zaXplPTAsdGhpcy5wcmV2PW51bGwsdGhpcy5oZWFkPW51bGwsdGhpcy5pbnNfaD0wLHRoaXMuaGFzaF9zaXplPTAsdGhpcy5oYXNoX2JpdHM9''@;'; put 'put ''MCx0aGlzLmhhc2hfbWFzaz0wLHRoaXMuaGFzaF9zaGlmdD0wLHRoaXMuYmxvY2tfc3RhcnQ9MCx0aGlzLm1hdGNoX2xlbmd0aD0wLHRoaXMucHJldl9tYXRjaD0wLHRoaXMubWF0Y2hfYXZhaWxhYmxlPTAsdGhpcy5zdHJzdGFydD0wLHRoaXMubWF0Y2hfc3RhcnQ9MCx0aGlzLmxvb2thaGVh''@;'; put 'put ''ZD0wLHRoaXMucHJldl9sZW5ndGg9MCx0aGlzLm1heF9jaGFpbl9sZW5ndGg9MCx0aGlzLm1heF9sYXp5X21hdGNoPTAsdGhpcy5sZXZlbD0wLHRoaXMuc3RyYXRlZ3k9MCx0aGlzLmdvb2RfbWF0Y2g9MCx0aGlzLm5pY2VfbWF0Y2g9MCx0aGlzLmR5bl9sdHJlZT1uZXcgYWUuQnVmMTYoMTE0''@;'; put 'put ''NiksdGhpcy5keW5fZHRyZWU9bmV3IGFlLkJ1ZjE2KDEyMiksdGhpcy5ibF90cmVlPW5ldyBhZS5CdWYxNig3OCksR2UodGhpcy5keW5fbHRyZWUpLEdlKHRoaXMuZHluX2R0cmVlKSxHZSh0aGlzLmJsX3RyZWUpLHRoaXMubF9kZXNjPW51bGwsdGhpcy5kX2Rlc2M9bnVsbCx0aGlzLmJsX2Rl''@;'; put 'put ''c2M9bnVsbCx0aGlzLmJsX2NvdW50PW5ldyBhZS5CdWYxNigxNiksdGhpcy5oZWFwPW5ldyBhZS5CdWYxNig1NzMpLEdlKHRoaXMuaGVhcCksdGhpcy5oZWFwX2xlbj0wLHRoaXMuaGVhcF9tYXg9MCx0aGlzLmRlcHRoPW5ldyBhZS5CdWYxNig1NzMpLEdlKHRoaXMuZGVwdGgpLHRoaXMubF9i''@;'; put 'put ''dWY9MCx0aGlzLmxpdF9idWZzaXplPTAsdGhpcy5sYXN0X2xpdD0wLHRoaXMuZF9idWY9MCx0aGlzLm9wdF9sZW49MCx0aGlzLnN0YXRpY19sZW49MCx0aGlzLm1hdGNoZXM9MCx0aGlzLmluc2VydD0wLHRoaXMuYmlfYnVmPTAsdGhpcy5iaV92YWxpZD0wfWZ1bmN0aW9uIHByKE50KXt2YXIg''@;'; put 'put ''c247cmV0dXJuIE50JiZOdC5zdGF0ZT8oTnQudG90YWxfaW49TnQudG90YWxfb3V0PTAsTnQuZGF0YV90eXBlPTIsKHNuPU50LnN0YXRlKS5wZW5kaW5nPTAsc24ucGVuZGluZ19vdXQ9MCxzbi53cmFwPDAmJihzbi53cmFwPS1zbi53cmFwKSxzbi5zdGF0dXM9c24ud3JhcD80MjoxMTMsTnQu''@;'; put 'put ''YWRsZXI9Mj09PXNuLndyYXA/MDoxLHNuLmxhc3RfZmx1c2g9MCxZLl90cl9pbml0KHNuKSwwKTpmdChOdCwtMil9ZnVuY3Rpb24gbnIoTnQpe3ZhciBzbj1wcihOdCk7cmV0dXJuIDA9PT1zbiYmZnVuY3Rpb24geHIoTnQpe050LndpbmRvd19zaXplPTIqTnQud19zaXplLEdlKE50LmhlYWQp''@;'; put 'put ''LE50Lm1heF9sYXp5X21hdGNoPUZyW050LmxldmVsXS5tYXhfbGF6eSxOdC5nb29kX21hdGNoPUZyW050LmxldmVsXS5nb29kX2xlbmd0aCxOdC5uaWNlX21hdGNoPUZyW050LmxldmVsXS5uaWNlX2xlbmd0aCxOdC5tYXhfY2hhaW5fbGVuZ3RoPUZyW050LmxldmVsXS5tYXhfY2hhaW4sTnQu''@;'; put 'put ''c3Ryc3RhcnQ9MCxOdC5ibG9ja19zdGFydD0wLE50Lmxvb2thaGVhZD0wLE50Lmluc2VydD0wLE50Lm1hdGNoX2xlbmd0aD1OdC5wcmV2X2xlbmd0aD0yLE50Lm1hdGNoX2F2YWlsYWJsZT0wLE50Lmluc19oPTB9KE50LnN0YXRlKSxzbn1mdW5jdGlvbiBxbihOdCxzbixVbix3bix0bix6bil7''@;'; put 'put ''aWYoIU50KXJldHVybi0yO3ZhciBUcj0xO2lmKC0xPT09c24mJihzbj02KSx3bjwwPyhUcj0wLHduPS13bik6d24+MTUmJihUcj0yLHduLT0xNiksdG48MXx8dG4+OXx8OCE9PVVufHx3bjw4fHx3bj4xNXx8c248MHx8c24+OXx8em48MHx8em4+NClyZXR1cm4gZnQoTnQsLTIpOzg9PT13biYm''@;'; put 'put ''KHduPTkpO3ZhciBCbj1uZXcgcXQ7cmV0dXJuIE50LnN0YXRlPUJuLEJuLnN0cm09TnQsQm4ud3JhcD1UcixCbi5nemhlYWQ9bnVsbCxCbi53X2JpdHM9d24sQm4ud19zaXplPTE8PEJuLndfYml0cyxCbi53X21hc2s9Qm4ud19zaXplLTEsQm4uaGFzaF9iaXRzPXRuKzcsQm4uaGFzaF9zaXpl''@;'; put 'put ''PTE8PEJuLmhhc2hfYml0cyxCbi5oYXNoX21hc2s9Qm4uaGFzaF9zaXplLTEsQm4uaGFzaF9zaGlmdD1+figoQm4uaGFzaF9iaXRzKzMtMSkvMyksQm4ud2luZG93PW5ldyBhZS5CdWY4KDIqQm4ud19zaXplKSxCbi5oZWFkPW5ldyBhZS5CdWYxNihCbi5oYXNoX3NpemUpLEJuLnByZXY9bmV3''@;'; put 'put ''IGFlLkJ1ZjE2KEJuLndfc2l6ZSksQm4ubGl0X2J1ZnNpemU9MTw8dG4rNixCbi5wZW5kaW5nX2J1Zl9zaXplPTQqQm4ubGl0X2J1ZnNpemUsQm4ucGVuZGluZ19idWY9bmV3IGFlLkJ1ZjgoQm4ucGVuZGluZ19idWZfc2l6ZSksQm4uZF9idWY9Qm4ubGl0X2J1ZnNpemU+PjEsQm4ubF9idWY9''@;'; put 'put ''MypCbi5saXRfYnVmc2l6ZSxCbi5sZXZlbD1zbixCbi5zdHJhdGVneT16bixCbi5tZXRob2Q9VW4sbnIoTnQpfUZyPVtuZXcgWG4oMCwwLDAsMCxmdW5jdGlvbiBsbihOdCxzbil7dmFyIFVuPTY1NTM1O2ZvcihVbj5OdC5wZW5kaW5nX2J1Zl9zaXplLTUmJihVbj1OdC5wZW5kaW5nX2J1Zl9z''@;'; put 'put ''aXplLTUpOzspe2lmKE50Lmxvb2thaGVhZDw9MSl7aWYoeW4oTnQpLDA9PT1OdC5sb29rYWhlYWQmJjA9PT1zbilyZXR1cm4gMTtpZigwPT09TnQubG9va2FoZWFkKWJyZWFrfU50LnN0cnN0YXJ0Kz1OdC5sb29rYWhlYWQsTnQubG9va2FoZWFkPTA7dmFyIHduPU50LmJsb2NrX3N0YXJ0K1Vu''@;'; put 'put ''O2lmKCgwPT09TnQuc3Ryc3RhcnR8fE50LnN0cnN0YXJ0Pj13bikmJihOdC5sb29rYWhlYWQ9TnQuc3Ryc3RhcnQtd24sTnQuc3Ryc3RhcnQ9d24seXQoTnQsITEpLDA9PT1OdC5zdHJtLmF2YWlsX291dCl8fE50LnN0cnN0YXJ0LU50LmJsb2NrX3N0YXJ0Pj1OdC53X3NpemUtZ3QmJih5dChO''@;'; put 'put ''dCwhMSksMD09PU50LnN0cm0uYXZhaWxfb3V0KSlyZXR1cm4gMX1yZXR1cm4gTnQuaW5zZXJ0PTAsND09PXNuPyh5dChOdCwhMCksMD09PU50LnN0cm0uYXZhaWxfb3V0PzM6NCk6KE50LnN0cnN0YXJ0Pk50LmJsb2NrX3N0YXJ0JiZ5dChOdCwhMSksMSl9KSxuZXcgWG4oNCw0LDgsNCxObiks''@;'; put 'put ''bmV3IFhuKDQsNSwxNiw4LE5uKSxuZXcgWG4oNCw2LDMyLDMyLE5uKSxuZXcgWG4oNCw0LDE2LDE2LGJuKSxuZXcgWG4oOCwxNiwzMiwzMixibiksbmV3IFhuKDgsMTYsMTI4LDEyOCxibiksbmV3IFhuKDgsMzIsMTI4LDI1NixibiksbmV3IFhuKDMyLDEyOCwyNTgsMTAyNCxibiksbmV3IFhu''@;'; put 'put ''KDMyLDI1OCwyNTgsNDA5NixibildLHJlLmRlZmxhdGVJbml0PWZ1bmN0aW9uIFd0KE50LHNuKXtyZXR1cm4gcW4oTnQsc24sOCwxNSw4LDApfSxyZS5kZWZsYXRlSW5pdDI9cW4scmUuZGVmbGF0ZVJlc2V0PW5yLHJlLmRlZmxhdGVSZXNldEtlZXA9cHIscmUuZGVmbGF0ZVNldEhlYWRlcj1m''@;'; put 'put ''dW5jdGlvbiBBbihOdCxzbil7cmV0dXJuIE50JiZOdC5zdGF0ZSYmMj09PU50LnN0YXRlLndyYXA/KE50LnN0YXRlLmd6aGVhZD1zbiwwKTotMn0scmUuZGVmbGF0ZT1mdW5jdGlvbiBwbihOdCxzbil7dmFyIFVuLHduLHRuLHpuO2lmKCFOdHx8IU50LnN0YXRlfHxzbj41fHxzbjwwKXJldHVy''@;'; put 'put ''biBOdD9mdChOdCwtMik6LTI7aWYod249TnQuc3RhdGUsIU50Lm91dHB1dHx8IU50LmlucHV0JiYwIT09TnQuYXZhaWxfaW58fDY2Nj09PXduLnN0YXR1cyYmNCE9PXNuKXJldHVybiBmdChOdCwwPT09TnQuYXZhaWxfb3V0Py01Oi0yKTtpZih3bi5zdHJtPU50LFVuPXduLmxhc3RfZmx1c2gs''@;'; put 'put ''d24ubGFzdF9mbHVzaD1zbiw0Mj09PXduLnN0YXR1cylpZigyPT09d24ud3JhcClOdC5hZGxlcj0wLGp0KHduLDMxKSxqdCh3biwxMzkpLGp0KHduLDgpLHduLmd6aGVhZD8oanQod24sKHduLmd6aGVhZC50ZXh0PzE6MCkrKHduLmd6aGVhZC5oY3JjPzI6MCkrKHduLmd6aGVhZC5leHRyYT80''@;'; put 'put ''OjApKyh3bi5nemhlYWQubmFtZT84OjApKyh3bi5nemhlYWQuY29tbWVudD8xNjowKSksanQod24sMjU1JnduLmd6aGVhZC50aW1lKSxqdCh3bix3bi5nemhlYWQudGltZT4+OCYyNTUpLGp0KHduLHduLmd6aGVhZC50aW1lPj4xNiYyNTUpLGp0KHduLHduLmd6aGVhZC50aW1lPj4yNCYyNTUp''@;'; put 'put ''LGp0KHduLDk9PT13bi5sZXZlbD8yOnduLnN0cmF0ZWd5Pj0yfHx3bi5sZXZlbDwyPzQ6MCksanQod24sMjU1JnduLmd6aGVhZC5vcyksd24uZ3poZWFkLmV4dHJhJiZ3bi5nemhlYWQuZXh0cmEubGVuZ3RoJiYoanQod24sMjU1JnduLmd6aGVhZC5leHRyYS5sZW5ndGgpLGp0KHduLHduLmd6''@;'; put 'put ''aGVhZC5leHRyYS5sZW5ndGg+PjgmMjU1KSksd24uZ3poZWFkLmhjcmMmJihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRpbmdfYnVmLHduLnBlbmRpbmcsMCkpLHduLmd6aW5kZXg9MCx3bi5zdGF0dXM9NjkpOihqdCh3biwwKSxqdCh3biwwKSxqdCh3biwwKSxqdCh3biwwKSxqdCh3biww''@;'; put 'put ''KSxqdCh3biw5PT09d24ubGV2ZWw/Mjp3bi5zdHJhdGVneT49Mnx8d24ubGV2ZWw8Mj80OjApLGp0KHduLDMpLHduLnN0YXR1cz0xMTMpO2Vsc2V7dmFyIFRyPTgrKHduLndfYml0cy04PDw0KTw8ODtUcnw9KHduLnN0cmF0ZWd5Pj0yfHx3bi5sZXZlbDwyPzA6d24ubGV2ZWw8Nj8xOjY9PT13''@;'; put 'put ''bi5sZXZlbD8yOjMpPDw2LDAhPT13bi5zdHJzdGFydCYmKFRyfD0zMiksVHIrPTMxLVRyJTMxLHduLnN0YXR1cz0xMTMsSnQod24sVHIpLDAhPT13bi5zdHJzdGFydCYmKEp0KHduLE50LmFkbGVyPj4+MTYpLEp0KHduLDY1NTM1Jk50LmFkbGVyKSksTnQuYWRsZXI9MX1pZig2OT09PXduLnN0''@;'; put 'put ''YXR1cylpZih3bi5nemhlYWQuZXh0cmEpe2Zvcih0bj13bi5wZW5kaW5nO3duLmd6aW5kZXg8KDY1NTM1JnduLmd6aGVhZC5leHRyYS5sZW5ndGgpJiYod24ucGVuZGluZyE9PXduLnBlbmRpbmdfYnVmX3NpemV8fCh3bi5nemhlYWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4o''@;'; put 'put ''TnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0bikpLFVlKE50KSx0bj13bi5wZW5kaW5nLHduLnBlbmRpbmchPT13bi5wZW5kaW5nX2J1Zl9zaXplKSk7KWp0KHduLDI1NSZ3bi5nemhlYWQuZXh0cmFbd24uZ3ppbmRleF0pLHduLmd6aW5kZXgrKzt3bi5nemhlYWQuaGNy''@;'; put 'put ''YyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0bikpLHduLmd6aW5kZXg9PT13bi5nemhlYWQuZXh0cmEubGVuZ3RoJiYod24uZ3ppbmRleD0wLHduLnN0YXR1cz03Myl9ZWxzZSB3bi5zdGF0dXM9NzM7aWYoNzM9PT13''@;'; put 'put ''bi5zdGF0dXMpaWYod24uZ3poZWFkLm5hbWUpe3RuPXduLnBlbmRpbmc7ZG97aWYod24ucGVuZGluZz09PXduLnBlbmRpbmdfYnVmX3NpemUmJih3bi5nemhlYWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0''@;'; put 'put ''bikpLFVlKE50KSx0bj13bi5wZW5kaW5nLHduLnBlbmRpbmc9PT13bi5wZW5kaW5nX2J1Zl9zaXplKSl7em49MTticmVha316bj13bi5nemluZGV4PHduLmd6aGVhZC5uYW1lLmxlbmd0aD8yNTUmd24uZ3poZWFkLm5hbWUuY2hhckNvZGVBdCh3bi5nemluZGV4KyspOjAsanQod24sem4pfXdo''@;'; put 'put ''aWxlKDAhPT16bik7d24uZ3poZWFkLmhjcmMmJnduLnBlbmRpbmc+dG4mJihOdC5hZGxlcj1OKE50LmFkbGVyLHduLnBlbmRpbmdfYnVmLHduLnBlbmRpbmctdG4sdG4pKSwwPT09em4mJih3bi5nemluZGV4PTAsd24uc3RhdHVzPTkxKX1lbHNlIHduLnN0YXR1cz05MTtpZig5MT09PXduLnN0''@;'; put 'put ''YXR1cylpZih3bi5nemhlYWQuY29tbWVudCl7dG49d24ucGVuZGluZztkb3tpZih3bi5wZW5kaW5nPT09d24ucGVuZGluZ19idWZfc2l6ZSYmKHduLmd6aGVhZC5oY3JjJiZ3bi5wZW5kaW5nPnRuJiYoTnQuYWRsZXI9TihOdC5hZGxlcix3bi5wZW5kaW5nX2J1Zix3bi5wZW5kaW5nLXRuLHRu''@;'; put 'put ''KSksVWUoTnQpLHRuPXduLnBlbmRpbmcsd24ucGVuZGluZz09PXduLnBlbmRpbmdfYnVmX3NpemUpKXt6bj0xO2JyZWFrfXpuPXduLmd6aW5kZXg8d24uZ3poZWFkLmNvbW1lbnQubGVuZ3RoPzI1NSZ3bi5nemhlYWQuY29tbWVudC5jaGFyQ29kZUF0KHduLmd6aW5kZXgrKyk6MCxqdCh3bix6''@;'; put 'put ''bil9d2hpbGUoMCE9PXpuKTt3bi5nemhlYWQuaGNyYyYmd24ucGVuZGluZz50biYmKE50LmFkbGVyPU4oTnQuYWRsZXIsd24ucGVuZGluZ19idWYsd24ucGVuZGluZy10bix0bikpLDA9PT16biYmKHduLnN0YXR1cz0xMDMpfWVsc2Ugd24uc3RhdHVzPTEwMztpZigxMDM9PT13bi5zdGF0dXMm''@;'; put 'put ''Jih3bi5nemhlYWQuaGNyYz8od24ucGVuZGluZysyPnduLnBlbmRpbmdfYnVmX3NpemUmJlVlKE50KSx3bi5wZW5kaW5nKzI8PXduLnBlbmRpbmdfYnVmX3NpemUmJihqdCh3biwyNTUmTnQuYWRsZXIpLGp0KHduLE50LmFkbGVyPj44JjI1NSksTnQuYWRsZXI9MCx3bi5zdGF0dXM9MTEzKSk6''@;'; put 'put ''d24uc3RhdHVzPTExMyksMCE9PXduLnBlbmRpbmcpe2lmKFVlKE50KSwwPT09TnQuYXZhaWxfb3V0KXJldHVybiB3bi5sYXN0X2ZsdXNoPS0xLDB9ZWxzZSBpZigwPT09TnQuYXZhaWxfaW4mJkh0KHNuKTw9SHQoVW4pJiY0IT09c24pcmV0dXJuIGZ0KE50LC01KTtpZig2NjY9PT13bi5zdGF0''@;'; put 'put ''dXMmJjAhPT1OdC5hdmFpbF9pbilyZXR1cm4gZnQoTnQsLTUpO2lmKDAhPT1OdC5hdmFpbF9pbnx8MCE9PXduLmxvb2thaGVhZHx8MCE9PXNuJiY2NjYhPT13bi5zdGF0dXMpe3ZhciBrcj0yPT09d24uc3RyYXRlZ3k/ZnVuY3Rpb24gc3IoTnQsc24pe2Zvcih2YXIgVW47Oyl7aWYoMD09PU50''@;'; put 'put ''Lmxvb2thaGVhZCYmKHluKE50KSwwPT09TnQubG9va2FoZWFkKSl7aWYoMD09PXNuKXJldHVybiAxO2JyZWFrfWlmKE50Lm1hdGNoX2xlbmd0aD0wLFVuPVkuX3RyX3RhbGx5KE50LDAsTnQud2luZG93W050LnN0cnN0YXJ0XSksTnQubG9va2FoZWFkLS0sTnQuc3Ryc3RhcnQrKyxVbiYmKHl0''@;'; put 'put ''KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBOdC5pbnNlcnQ9MCw0PT09c24/KHl0KE50LCEwKSwwPT09TnQuc3RybS5hdmFpbF9vdXQ/Mzo0KTpOdC5sYXN0X2xpdCYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpPzE6Mn0od24sc24pOjM9''@;'; put 'put ''PT13bi5zdHJhdGVneT9mdW5jdGlvbiBlcihOdCxzbil7Zm9yKHZhciBVbix3bix0bix6bixUcj1OdC53aW5kb3c7Oyl7aWYoTnQubG9va2FoZWFkPD0yNTgpe2lmKHluKE50KSxOdC5sb29rYWhlYWQ8PTI1OCYmMD09PXNuKXJldHVybiAxO2lmKDA9PT1OdC5sb29rYWhlYWQpYnJlYWt9aWYo''@;'; put 'put ''TnQubWF0Y2hfbGVuZ3RoPTAsTnQubG9va2FoZWFkPj0zJiZOdC5zdHJzdGFydD4wJiYod249VHJbdG49TnQuc3Ryc3RhcnQtMV0pPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0mJnduPT09VHJbKyt0bl0pe3puPU50LnN0cnN0YXJ0KzI1ODtkb3t9d2hpbGUod249PT1UclsrK3RuXSYmd249''@;'; put 'put ''PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmd249PT1UclsrK3RuXSYmdG48em4pO050Lm1hdGNoX2xlbmd0aD0yNTgtKHpuLXRuKSxOdC5tYXRjaF9sZW5ndGg+TnQubG9va2FoZWFk''@;'; put 'put ''JiYoTnQubWF0Y2hfbGVuZ3RoPU50Lmxvb2thaGVhZCl9aWYoTnQubWF0Y2hfbGVuZ3RoPj0zPyhVbj1ZLl90cl90YWxseShOdCwxLE50Lm1hdGNoX2xlbmd0aC0zKSxOdC5sb29rYWhlYWQtPU50Lm1hdGNoX2xlbmd0aCxOdC5zdHJzdGFydCs9TnQubWF0Y2hfbGVuZ3RoLE50Lm1hdGNoX2xl''@;'; put 'put ''bmd0aD0wKTooVW49WS5fdHJfdGFsbHkoTnQsMCxOdC53aW5kb3dbTnQuc3Ryc3RhcnRdKSxOdC5sb29rYWhlYWQtLSxOdC5zdHJzdGFydCsrKSxVbiYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpKXJldHVybiAxfXJldHVybiBOdC5pbnNlcnQ9MCw0PT09c24/KHl0KE50LCEw''@;'; put 'put ''KSwwPT09TnQuc3RybS5hdmFpbF9vdXQ/Mzo0KTpOdC5sYXN0X2xpdCYmKHl0KE50LCExKSwwPT09TnQuc3RybS5hdmFpbF9vdXQpPzE6Mn0od24sc24pOkZyW3duLmxldmVsXS5mdW5jKHduLHNuKTtpZigoMz09PWtyfHw0PT09a3IpJiYod24uc3RhdHVzPTY2NiksMT09PWtyfHwzPT09a3Ip''@;'; put 'put ''cmV0dXJuIDA9PT1OdC5hdmFpbF9vdXQmJih3bi5sYXN0X2ZsdXNoPS0xKSwwO2lmKDI9PT1rciYmKDE9PT1zbj9ZLl90cl9hbGlnbih3bik6NSE9PXNuJiYoWS5fdHJfc3RvcmVkX2Jsb2NrKHduLDAsMCwhMSksMz09PXNuJiYoR2Uod24uaGVhZCksMD09PXduLmxvb2thaGVhZCYmKHduLnN0''@;'; put 'put ''cnN0YXJ0PTAsd24uYmxvY2tfc3RhcnQ9MCx3bi5pbnNlcnQ9MCkpKSxVZShOdCksMD09PU50LmF2YWlsX291dCkpcmV0dXJuIHduLmxhc3RfZmx1c2g9LTEsMH1yZXR1cm4gNCE9PXNuPzA6d24ud3JhcDw9MD8xOigyPT09d24ud3JhcD8oanQod24sMjU1Jk50LmFkbGVyKSxqdCh3bixOdC5h''@;'; put 'put ''ZGxlcj4+OCYyNTUpLGp0KHduLE50LmFkbGVyPj4xNiYyNTUpLGp0KHduLE50LmFkbGVyPj4yNCYyNTUpLGp0KHduLDI1NSZOdC50b3RhbF9pbiksanQod24sTnQudG90YWxfaW4+PjgmMjU1KSxqdCh3bixOdC50b3RhbF9pbj4+MTYmMjU1KSxqdCh3bixOdC50b3RhbF9pbj4+MjQmMjU1KSk6''@;'; put 'put ''KEp0KHduLE50LmFkbGVyPj4+MTYpLEp0KHduLDY1NTM1Jk50LmFkbGVyKSksVWUoTnQpLHduLndyYXA+MCYmKHduLndyYXA9LXduLndyYXApLDAhPT13bi5wZW5kaW5nPzA6MSl9LHJlLmRlZmxhdGVFbmQ9ZnVuY3Rpb24gS24oTnQpe3ZhciBzbjtyZXR1cm4gTnQmJk50LnN0YXRlPzQyIT09''@;'; put 'put ''KHNuPU50LnN0YXRlLnN0YXR1cykmJjY5IT09c24mJjczIT09c24mJjkxIT09c24mJjEwMyE9PXNuJiYxMTMhPT1zbiYmNjY2IT09c24/ZnQoTnQsLTIpOihOdC5zdGF0ZT1udWxsLDExMz09PXNuP2Z0KE50LC0zKTowKTotMn0scmUuZGVmbGF0ZUluZm89InBha28gZGVmbGF0ZSAoZnJvbSBO''@;'; put 'put ''b2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6MjcsIi4vYWRsZXIzMiI6MjksIi4vY3JjMzIiOjMxLCIuL21lc3NhZ2VzIjozNywiLi90cmVlcyI6Mzh9XSwzMzpbZnVuY3Rpb24oUSxqLHJlKXsidXNlIHN0cmljdCI7ai5leHBvcnRzPWZ1bmN0aW9uIGFlKCl7dGhpcy50ZXh0''@;'; put 'put ''PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9fSx7fV0sMzQ6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3Qi''@;'; put 'put ''O2ouZXhwb3J0cz1mdW5jdGlvbihOLHRlKXt2YXIgSyxKLHNlLG9lLGNlLGRlLHZlLEFlLGtlLFNlLEllLFRlLE1lLGhlLE8seixlZSxuZSx4LFAsVixULFMsRix5ZTtGPU4uaW5wdXQsc2U9KEo9Ti5uZXh0X2luKSsoTi5hdmFpbF9pbi01KSx5ZT1OLm91dHB1dCxjZT0ob2U9Ti5uZXh0X291''@;'; put 'put ''dCktKHRlLU4uYXZhaWxfb3V0KSxkZT1vZSsoTi5hdmFpbF9vdXQtMjU3KSx2ZT0oSz1OLnN0YXRlKS5kbWF4LEFlPUsud3NpemUsa2U9Sy53aGF2ZSxTZT1LLnduZXh0LEllPUsud2luZG93LFRlPUsuaG9sZCxNZT1LLmJpdHMsaGU9Sy5sZW5jb2RlLE89Sy5kaXN0Y29kZSx6PSgxPDxLLmxl''@;'; put 'put ''bmJpdHMpLTEsZWU9KDE8PEsuZGlzdGJpdHMpLTE7ZTpkb3tNZTwxNSYmKFRlKz1GW0orK108PE1lLFRlKz1GW0orK108PChNZSs9OCksTWUrPTgpLG5lPWhlW1RlJnpdO3Q6Zm9yKDs7KXtpZihUZT4+Pj14PW5lPj4+MjQsTWUtPXgsMD09KHg9bmU+Pj4xNiYyNTUpKXllW29lKytdPTY1NTM1''@;'; put 'put ''Jm5lO2Vsc2V7aWYoISgxNiZ4KSl7aWYoMD09KDY0JngpKXtuZT1oZVsoNjU1MzUmbmUpKyhUZSYoMTw8eCktMSldO2NvbnRpbnVlIHR9aWYoMzImeCl7Sy5tb2RlPTEyO2JyZWFrIGV9Ti5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGggY29kZSIsSy5tb2RlPTMwO2JyZWFrIGV9UD02NTUz''@;'; put 'put ''NSZuZSwoeCY9MTUpJiYoTWU8eCYmKFRlKz1GW0orK108PE1lLE1lKz04KSxQKz1UZSYoMTw8eCktMSxUZT4+Pj14LE1lLT14KSxNZTwxNSYmKFRlKz1GW0orK108PE1lLFRlKz1GW0orK108PChNZSs9OCksTWUrPTgpLG5lPU9bVGUmZWVdO246Zm9yKDs7KXtpZihUZT4+Pj14PW5lPj4+MjQs''@;'; put 'put ''TWUtPXgsISgxNiYoeD1uZT4+PjE2JjI1NSkpKXtpZigwPT0oNjQmeCkpe25lPU9bKDY1NTM1Jm5lKSsoVGUmKDE8PHgpLTEpXTtjb250aW51ZSBufU4ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLEsubW9kZT0zMDticmVhayBlfWlmKFY9NjU1MzUmbmUsTWU8KHgmPTE1KSYmKFRlKz1G''@;'; put 'put ''W0orK108PE1lLChNZSs9OCk8eCYmKFRlKz1GW0orK108PE1lLE1lKz04KSksKFYrPVRlJigxPDx4KS0xKT52ZSl7Ti5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixLLm1vZGU9MzA7YnJlYWsgZX1pZihUZT4+Pj14LE1lLT14LFY+KHg9b2UtY2UpKXtpZigoeD1WLXgpPmtl''@;'; put 'put ''JiZLLnNhbmUpe04ubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsSy5tb2RlPTMwO2JyZWFrIGV9aWYoVD0wLFM9SWUsMD09PVNlKXtpZihUKz1BZS14LHg8UCl7UC09eDtkb3t5ZVtvZSsrXT1JZVtUKytdfXdoaWxlKC0teCk7VD1vZS1WLFM9eWV9fWVsc2UgaWYoU2U8eCl7''@;'; put 'put ''aWYoVCs9QWUrU2UteCwoeC09U2UpPFApe1AtPXg7ZG97eWVbb2UrK109SWVbVCsrXX13aGlsZSgtLXgpO2lmKFQ9MCxTZTxQKXtQLT14PVNlO2Rve3llW29lKytdPUllW1QrK119d2hpbGUoLS14KTtUPW9lLVYsUz15ZX19fWVsc2UgaWYoVCs9U2UteCx4PFApe1AtPXg7ZG97eWVbb2UrK109''@;'; put 'put ''SWVbVCsrXX13aGlsZSgtLXgpO1Q9b2UtVixTPXllfWZvcig7UD4yOyl5ZVtvZSsrXT1TW1QrK10seWVbb2UrK109U1tUKytdLHllW29lKytdPVNbVCsrXSxQLT0zO1AmJih5ZVtvZSsrXT1TW1QrK10sUD4xJiYoeWVbb2UrK109U1tUKytdKSl9ZWxzZXtUPW9lLVY7ZG97eWVbb2UrK109eWVb''@;'; put 'put ''VCsrXSx5ZVtvZSsrXT15ZVtUKytdLHllW29lKytdPXllW1QrK10sUC09M313aGlsZShQPjIpO1AmJih5ZVtvZSsrXT15ZVtUKytdLFA+MSYmKHllW29lKytdPXllW1QrK10pKX1icmVha319YnJlYWt9fXdoaWxlKEo8c2UmJm9lPGRlKTtUZSY9KDE8PChNZS09KFA9TWU+PjMpPDwzKSktMSxO''@;'; put 'put ''Lm5leHRfaW49Si09UCxOLm5leHRfb3V0PW9lLE4uYXZhaWxfaW49SjxzZT9zZS1KKzU6NS0oSi1zZSksTi5hdmFpbF9vdXQ9b2U8ZGU/ZGUtb2UrMjU3OjI1Ny0ob2UtZGUpLEsuaG9sZD1UZSxLLmJpdHM9TWV9fSx7fV0sMzU6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3ZhciBh''@;'; put 'put ''ZT1RKCIuLi91dGlscy9jb21tb24iKSxZPVEoIi4vYWRsZXIzMiIpLFc9USgiLi9jcmMzMiIpLE49USgiLi9pbmZmYXN0IiksdGU9USgiLi9pbmZ0cmVlcyIpO2Z1bmN0aW9uIEp0KEFuKXtyZXR1cm4oQW4+Pj4yNCYyNTUpKyhBbj4+PjgmNjUyODApKygoNjUyODAmQW4pPDw4KSsoKDI1NSZB''@;'; put 'put ''bik8PDI0KX1mdW5jdGlvbiBnbigpe3RoaXMubW9kZT0wLHRoaXMubGFzdD0hMSx0aGlzLndyYXA9MCx0aGlzLmhhdmVkaWN0PSExLHRoaXMuZmxhZ3M9MCx0aGlzLmRtYXg9MCx0aGlzLmNoZWNrPTAsdGhpcy50b3RhbD0wLHRoaXMuaGVhZD1udWxsLHRoaXMud2JpdHM9MCx0aGlzLndzaXpl''@;'; put 'put ''PTAsdGhpcy53aGF2ZT0wLHRoaXMud25leHQ9MCx0aGlzLndpbmRvdz1udWxsLHRoaXMuaG9sZD0wLHRoaXMuYml0cz0wLHRoaXMubGVuZ3RoPTAsdGhpcy5vZmZzZXQ9MCx0aGlzLmV4dHJhPTAsdGhpcy5sZW5jb2RlPW51bGwsdGhpcy5kaXN0Y29kZT1udWxsLHRoaXMubGVuYml0cz0wLHRo''@;'; put 'put ''aXMuZGlzdGJpdHM9MCx0aGlzLm5jb2RlPTAsdGhpcy5ubGVuPTAsdGhpcy5uZGlzdD0wLHRoaXMuaGF2ZT0wLHRoaXMubmV4dD1udWxsLHRoaXMubGVucz1uZXcgYWUuQnVmMTYoMzIwKSx0aGlzLndvcms9bmV3IGFlLkJ1ZjE2KDI4OCksdGhpcy5sZW5keW49bnVsbCx0aGlzLmRpc3RkeW49''@;'; put 'put ''bnVsbCx0aGlzLnNhbmU9MCx0aGlzLmJhY2s9MCx0aGlzLndhcz0wfWZ1bmN0aW9uIGRuKEFuKXt2YXIgcW47cmV0dXJuIEFuJiZBbi5zdGF0ZT8oQW4udG90YWxfaW49QW4udG90YWxfb3V0PShxbj1Bbi5zdGF0ZSkudG90YWw9MCxBbi5tc2c9IiIscW4ud3JhcCYmKEFuLmFkbGVyPTEmcW4u''@;'; put 'put ''d3JhcCkscW4ubW9kZT0xLHFuLmxhc3Q9MCxxbi5oYXZlZGljdD0wLHFuLmRtYXg9MzI3NjgscW4uaGVhZD1udWxsLHFuLmhvbGQ9MCxxbi5iaXRzPTAscW4ubGVuY29kZT1xbi5sZW5keW49bmV3IGFlLkJ1ZjMyKDg1MikscW4uZGlzdGNvZGU9cW4uZGlzdGR5bj1uZXcgYWUuQnVmMzIoNTky''@;'; put 'put ''KSxxbi5zYW5lPTEscW4uYmFjaz0tMSwwKTotMn1mdW5jdGlvbiB5bihBbil7dmFyIHFuO3JldHVybiBBbiYmQW4uc3RhdGU/KChxbj1Bbi5zdGF0ZSkud3NpemU9MCxxbi53aGF2ZT0wLHFuLnduZXh0PTAsZG4oQW4pKTotMn1mdW5jdGlvbiBsbihBbixxbil7dmFyIFd0LHBuO3JldHVybiFB''@;'; put 'put ''bnx8IUFuLnN0YXRlfHwocG49QW4uc3RhdGUscW48MD8oV3Q9MCxxbj0tcW4pOihXdD0xKyhxbj4+NCkscW48NDgmJihxbiY9MTUpKSxxbiYmKHFuPDh8fHFuPjE1KSk/LTI6KG51bGwhPT1wbi53aW5kb3cmJnBuLndiaXRzIT09cW4mJihwbi53aW5kb3c9bnVsbCkscG4ud3JhcD1XdCxwbi53''@;'; put 'put ''Yml0cz1xbix5bihBbikpfWZ1bmN0aW9uIE5uKEFuLHFuKXt2YXIgV3QscG47cmV0dXJuIEFuPyhwbj1uZXcgZ24sQW4uc3RhdGU9cG4scG4ud2luZG93PW51bGwsMCE9PShXdD1sbihBbixxbikpJiYoQW4uc3RhdGU9bnVsbCksV3QpOi0yfXZhciBzcixYbixlcj0hMDtmdW5jdGlvbiBGcihB''@;'; put 'put ''bil7aWYoZXIpe3ZhciBxbjtmb3Ioc3I9bmV3IGFlLkJ1ZjMyKDUxMiksWG49bmV3IGFlLkJ1ZjMyKDMyKSxxbj0wO3FuPDE0NDspQW4ubGVuc1txbisrXT04O2Zvcig7cW48MjU2OylBbi5sZW5zW3FuKytdPTk7Zm9yKDtxbjwyODA7KUFuLmxlbnNbcW4rK109Nztmb3IoO3FuPDI4ODspQW4u''@;'; put 'put ''bGVuc1txbisrXT04O2Zvcih0ZSgxLEFuLmxlbnMsMCwyODgsc3IsMCxBbi53b3JrLHtiaXRzOjl9KSxxbj0wO3FuPDMyOylBbi5sZW5zW3FuKytdPTU7dGUoMixBbi5sZW5zLDAsMzIsWG4sMCxBbi53b3JrLHtiaXRzOjV9KSxlcj0hMX1Bbi5sZW5jb2RlPXNyLEFuLmxlbmJpdHM9OSxBbi5k''@;'; put 'put ''aXN0Y29kZT1YbixBbi5kaXN0Yml0cz01fXJlLmluZmxhdGVSZXNldD15bixyZS5pbmZsYXRlUmVzZXQyPWxuLHJlLmluZmxhdGVSZXNldEtlZXA9ZG4scmUuaW5mbGF0ZUluaXQ9ZnVuY3Rpb24gYm4oQW4pe3JldHVybiBObihBbiwxNSl9LHJlLmluZmxhdGVJbml0Mj1ObixyZS5pbmZsYXRl''@;'; put 'put ''PWZ1bmN0aW9uIHF0KEFuLHFuKXt2YXIgV3QscG4sS24sTnQsc24sVW4sd24sdG4sem4sVHIsQm4sa3IsbW4sdW4sX24sR3Qsa24sVm4sZW4sSW4sSm4sb3IsS3IsVnIsY249MCxncj1uZXcgYWUuQnVmOCg0KSxpaT1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQs''@;'; put 'put ''MSwxNV07aWYoIUFufHwhQW4uc3RhdGV8fCFBbi5vdXRwdXR8fCFBbi5pbnB1dCYmMCE9PUFuLmF2YWlsX2luKXJldHVybi0yOzEyPT09KFd0PUFuLnN0YXRlKS5tb2RlJiYoV3QubW9kZT0xMyksc249QW4ubmV4dF9vdXQsS249QW4ub3V0cHV0LE50PUFuLm5leHRfaW4scG49QW4uaW5wdXQs''@;'; put 'put ''dG49V3QuaG9sZCx6bj1XdC5iaXRzLFRyPVVuPUFuLmF2YWlsX2luLEJuPXduPUFuLmF2YWlsX291dCxvcj0wO2U6Zm9yKDs7KXN3aXRjaChXdC5tb2RlKXtjYXNlIDE6aWYoMD09PVd0LndyYXApe1d0Lm1vZGU9MTM7YnJlYWt9Zm9yKDt6bjwxNjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0s''@;'; put 'put ''dG4rPXBuW050KytdPDx6bix6bis9OH1pZigyJld0LndyYXAmJjM1NjE1PT09dG4pe1d0LmNoZWNrPTAsZ3JbMF09MjU1JnRuLGdyWzFdPXRuPj4+OCYyNTUsV3QuY2hlY2s9VyhXdC5jaGVjayxnciwyLDApLHRuPTAsem49MCxXdC5tb2RlPTI7YnJlYWt9aWYoV3QuZmxhZ3M9MCxXdC5oZWFk''@;'; put 'put ''JiYoV3QuaGVhZC5kb25lPSExKSwhKDEmV3Qud3JhcCl8fCgoKDI1NSZ0bik8PDgpKyh0bj4+OCkpJTMxKXtBbi5tc2c9ImluY29ycmVjdCBoZWFkZXIgY2hlY2siLFd0Lm1vZGU9MzA7YnJlYWt9aWYoOCE9KDE1JnRuKSl7QW4ubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsV3Qu''@;'; put 'put ''bW9kZT0zMDticmVha31pZih6bi09NCxKbj04KygxNSYodG4+Pj49NCkpLDA9PT1XdC53Yml0cylXdC53Yml0cz1KbjtlbHNlIGlmKEpuPld0LndiaXRzKXtBbi5tc2c9ImludmFsaWQgd2luZG93IHNpemUiLFd0Lm1vZGU9MzA7YnJlYWt9V3QuZG1heD0xPDxKbixBbi5hZGxlcj1XdC5jaGVj''@;'; put 'put ''az0xLFd0Lm1vZGU9NTEyJnRuPzEwOjEyLHRuPTAsem49MDticmVhaztjYXNlIDI6Zm9yKDt6bjwxNjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZihXdC5mbGFncz10biw4IT0oMjU1Jld0LmZsYWdzKSl7QW4ubXNnPSJ1bmtub3duIGNvbXByZXNz''@;'; put 'put ''aW9uIG1ldGhvZCIsV3QubW9kZT0zMDticmVha31pZig1NzM0NCZXdC5mbGFncyl7QW4ubXNnPSJ1bmtub3duIGhlYWRlciBmbGFncyBzZXQiLFd0Lm1vZGU9MzA7YnJlYWt9V3QuaGVhZCYmKFd0LmhlYWQudGV4dD10bj4+OCYxKSw1MTImV3QuZmxhZ3MmJihnclswXT0yNTUmdG4sZ3JbMV09''@;'; put 'put ''dG4+Pj44JjI1NSxXdC5jaGVjaz1XKFd0LmNoZWNrLGdyLDIsMCkpLHRuPTAsem49MCxXdC5tb2RlPTM7Y2FzZSAzOmZvcig7em48MzI7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9V3QuaGVhZCYmKFd0LmhlYWQudGltZT10biksNTEyJld0LmZsYWdz''@;'; put 'put ''JiYoZ3JbMF09MjU1JnRuLGdyWzFdPXRuPj4+OCYyNTUsZ3JbMl09dG4+Pj4xNiYyNTUsZ3JbM109dG4+Pj4yNCYyNTUsV3QuY2hlY2s9VyhXdC5jaGVjayxnciw0LDApKSx0bj0wLHpuPTAsV3QubW9kZT00O2Nhc2UgNDpmb3IoO3puPDE2Oyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9''@;'; put 'put ''cG5bTnQrK108PHpuLHpuKz04fVd0LmhlYWQmJihXdC5oZWFkLnhmbGFncz0yNTUmdG4sV3QuaGVhZC5vcz10bj4+OCksNTEyJld0LmZsYWdzJiYoZ3JbMF09MjU1JnRuLGdyWzFdPXRuPj4+OCYyNTUsV3QuY2hlY2s9VyhXdC5jaGVjayxnciwyLDApKSx0bj0wLHpuPTAsV3QubW9kZT01O2Nh''@;'; put 'put ''c2UgNTppZigxMDI0Jld0LmZsYWdzKXtmb3IoO3puPDE2Oyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fVd0Lmxlbmd0aD10bixXdC5oZWFkJiYoV3QuaGVhZC5leHRyYV9sZW49dG4pLDUxMiZXdC5mbGFncyYmKGdyWzBdPTI1NSZ0bixnclsxXT10bj4+''@;'; put 'put ''PjgmMjU1LFd0LmNoZWNrPVcoV3QuY2hlY2ssZ3IsMiwwKSksdG49MCx6bj0wfWVsc2UgV3QuaGVhZCYmKFd0LmhlYWQuZXh0cmE9bnVsbCk7V3QubW9kZT02O2Nhc2UgNjppZigxMDI0Jld0LmZsYWdzJiYoKGtyPVd0Lmxlbmd0aCk+VW4mJihrcj1Vbiksa3ImJihXdC5oZWFkJiYoSm49V3Qu''@;'; put 'put ''aGVhZC5leHRyYV9sZW4tV3QubGVuZ3RoLFd0LmhlYWQuZXh0cmF8fChXdC5oZWFkLmV4dHJhPW5ldyBBcnJheShXdC5oZWFkLmV4dHJhX2xlbikpLGFlLmFycmF5U2V0KFd0LmhlYWQuZXh0cmEscG4sTnQsa3IsSm4pKSw1MTImV3QuZmxhZ3MmJihXdC5jaGVjaz1XKFd0LmNoZWNrLHBuLGty''@;'; put 'put ''LE50KSksVW4tPWtyLE50Kz1rcixXdC5sZW5ndGgtPWtyKSxXdC5sZW5ndGgpKWJyZWFrIGU7V3QubGVuZ3RoPTAsV3QubW9kZT03O2Nhc2UgNzppZigyMDQ4Jld0LmZsYWdzKXtpZigwPT09VW4pYnJlYWsgZTtrcj0wO2Rve0puPXBuW050K2tyKytdLFd0LmhlYWQmJkpuJiZXdC5sZW5ndGg8''@;'; put 'put ''NjU1MzYmJihXdC5oZWFkLm5hbWUrPVN0cmluZy5mcm9tQ2hhckNvZGUoSm4pKX13aGlsZShKbiYma3I8VW4pO2lmKDUxMiZXdC5mbGFncyYmKFd0LmNoZWNrPVcoV3QuY2hlY2sscG4sa3IsTnQpKSxVbi09a3IsTnQrPWtyLEpuKWJyZWFrIGV9ZWxzZSBXdC5oZWFkJiYoV3QuaGVhZC5uYW1l''@;'; put 'put ''PW51bGwpO1d0Lmxlbmd0aD0wLFd0Lm1vZGU9ODtjYXNlIDg6aWYoNDA5NiZXdC5mbGFncyl7aWYoMD09PVVuKWJyZWFrIGU7a3I9MDtkb3tKbj1wbltOdCtrcisrXSxXdC5oZWFkJiZKbiYmV3QubGVuZ3RoPDY1NTM2JiYoV3QuaGVhZC5jb21tZW50Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKEpu''@;'; put 'put ''KSl9d2hpbGUoSm4mJmtyPFVuKTtpZig1MTImV3QuZmxhZ3MmJihXdC5jaGVjaz1XKFd0LmNoZWNrLHBuLGtyLE50KSksVW4tPWtyLE50Kz1rcixKbilicmVhayBlfWVsc2UgV3QuaGVhZCYmKFd0LmhlYWQuY29tbWVudD1udWxsKTtXdC5tb2RlPTk7Y2FzZSA5OmlmKDUxMiZXdC5mbGFncyl7''@;'; put 'put ''Zm9yKDt6bjwxNjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZih0biE9PSg2NTUzNSZXdC5jaGVjaykpe0FuLm1zZz0iaGVhZGVyIGNyYyBtaXNtYXRjaCIsV3QubW9kZT0zMDticmVha310bj0wLHpuPTB9V3QuaGVhZCYmKFd0LmhlYWQuaGNyYz1X''@;'; put 'put ''dC5mbGFncz4+OSYxLFd0LmhlYWQuZG9uZT0hMCksQW4uYWRsZXI9V3QuY2hlY2s9MCxXdC5tb2RlPTEyO2JyZWFrO2Nhc2UgMTA6Zm9yKDt6bjwzMjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1Bbi5hZGxlcj1XdC5jaGVjaz1KdCh0biksdG49MCx6''@;'; put 'put ''bj0wLFd0Lm1vZGU9MTE7Y2FzZSAxMTppZigwPT09V3QuaGF2ZWRpY3QpcmV0dXJuIEFuLm5leHRfb3V0PXNuLEFuLmF2YWlsX291dD13bixBbi5uZXh0X2luPU50LEFuLmF2YWlsX2luPVVuLFd0LmhvbGQ9dG4sV3QuYml0cz16biwyO0FuLmFkbGVyPVd0LmNoZWNrPTEsV3QubW9kZT0xMjtj''@;'; put 'put ''YXNlIDEyOmlmKDU9PT1xbnx8Nj09PXFuKWJyZWFrIGU7Y2FzZSAxMzppZihXdC5sYXN0KXt0bj4+Pj03JnpuLHpuLT03JnpuLFd0Lm1vZGU9Mjc7YnJlYWt9Zm9yKDt6bjwzOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fXN3aXRjaChXdC5sYXN0PTEm''@;'; put 'put ''dG4sem4tPTEsMyYodG4+Pj49MSkpe2Nhc2UgMDpXdC5tb2RlPTE0O2JyZWFrO2Nhc2UgMTppZihGcihXdCksV3QubW9kZT0yMCw2PT09cW4pe3RuPj4+PTIsem4tPTI7YnJlYWsgZX1icmVhaztjYXNlIDI6V3QubW9kZT0xNzticmVhaztjYXNlIDM6QW4ubXNnPSJpbnZhbGlkIGJsb2NrIHR5''@;'; put 'put ''cGUiLFd0Lm1vZGU9MzB9dG4+Pj49Mix6bi09MjticmVhaztjYXNlIDE0OmZvcih0bj4+Pj03JnpuLHpuLT03JnpuO3puPDMyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fWlmKCg2NTUzNSZ0bikhPSh0bj4+PjE2XjY1NTM1KSl7QW4ubXNnPSJpbnZh''@;'; put 'put ''bGlkIHN0b3JlZCBibG9jayBsZW5ndGhzIixXdC5tb2RlPTMwO2JyZWFrfWlmKFd0Lmxlbmd0aD02NTUzNSZ0bix0bj0wLHpuPTAsV3QubW9kZT0xNSw2PT09cW4pYnJlYWsgZTtjYXNlIDE1Old0Lm1vZGU9MTY7Y2FzZSAxNjppZihrcj1XdC5sZW5ndGgpe2lmKGtyPlVuJiYoa3I9VW4pLGty''@;'; put 'put ''PnduJiYoa3I9d24pLDA9PT1rcilicmVhayBlO2FlLmFycmF5U2V0KEtuLHBuLE50LGtyLHNuKSxVbi09a3IsTnQrPWtyLHduLT1rcixzbis9a3IsV3QubGVuZ3RoLT1rcjticmVha31XdC5tb2RlPTEyO2JyZWFrO2Nhc2UgMTc6Zm9yKDt6bjwxNDspe2lmKDA9PT1VbilicmVhayBlO1VuLS0s''@;'; put 'put ''dG4rPXBuW050KytdPDx6bix6bis9OH1pZihXdC5ubGVuPTI1NysoMzEmdG4pLHpuLT01LFd0Lm5kaXN0PTErKDMxJih0bj4+Pj01KSksem4tPTUsV3QubmNvZGU9NCsoMTUmKHRuPj4+PTUpKSx0bj4+Pj00LHpuLT00LFd0Lm5sZW4+Mjg2fHxXdC5uZGlzdD4zMCl7QW4ubXNnPSJ0b28gbWFu''@;'; put 'put ''eSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scyIsV3QubW9kZT0zMDticmVha31XdC5oYXZlPTAsV3QubW9kZT0xODtjYXNlIDE4OmZvcig7V3QuaGF2ZTxXdC5uY29kZTspe2Zvcig7em48Mzspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1XdC5sZW5z''@;'; put 'put ''W2lpW1d0LmhhdmUrK11dPTcmdG4sdG4+Pj49Myx6bi09M31mb3IoO1d0LmhhdmU8MTk7KVd0LmxlbnNbaWlbV3QuaGF2ZSsrXV09MDtpZihXdC5sZW5jb2RlPVd0LmxlbmR5bixXdC5sZW5iaXRzPTcsb3I9dGUoMCxXdC5sZW5zLDAsMTksV3QubGVuY29kZSwwLFd0LndvcmssS3I9e2JpdHM6''@;'; put 'put ''V3QubGVuYml0c30pLFd0LmxlbmJpdHM9S3IuYml0cyxvcil7QW4ubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLFd0Lm1vZGU9MzA7YnJlYWt9V3QuaGF2ZT0wLFd0Lm1vZGU9MTk7Y2FzZSAxOTpmb3IoO1d0LmhhdmU8V3QubmxlbitXdC5uZGlzdDspe2Zvcig7R3Q9KGNuPVd0Lmxl''@;'; put 'put ''bmNvZGVbdG4mKDE8PFd0LmxlbmJpdHMpLTFdKT4+PjE2JjI1NSxrbj02NTUzNSZjbiwhKChfbj1jbj4+PjI0KTw9em4pOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fWlmKGtuPDE2KXRuPj4+PV9uLHpuLT1fbixXdC5sZW5zW1d0LmhhdmUrK109a247''@;'; put 'put ''ZWxzZXtpZigxNj09PWtuKXtmb3IoVnI9X24rMjt6bjxWcjspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH1pZih0bj4+Pj1fbix6bi09X24sMD09PVd0LmhhdmUpe0FuLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsV3QubW9kZT0zMDticmVh''@;'; put 'put ''a31Kbj1XdC5sZW5zW1d0LmhhdmUtMV0sa3I9MysoMyZ0biksdG4+Pj49Mix6bi09Mn1lbHNlIGlmKDE3PT09a24pe2ZvcihWcj1fbiszO3puPFZyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fXpuLT1fbixKbj0wLGtyPTMrKDcmKHRuPj4+PV9uKSks''@;'; put 'put ''dG4+Pj49Myx6bi09M31lbHNle2ZvcihWcj1fbis3O3puPFZyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fXpuLT1fbixKbj0wLGtyPTExKygxMjcmKHRuPj4+PV9uKSksdG4+Pj49Nyx6bi09N31pZihXdC5oYXZlK2tyPld0Lm5sZW4rV3QubmRpc3Qp''@;'; put 'put ''e0FuLm1zZz0iaW52YWxpZCBiaXQgbGVuZ3RoIHJlcGVhdCIsV3QubW9kZT0zMDticmVha31mb3IoO2tyLS07KVd0LmxlbnNbV3QuaGF2ZSsrXT1Kbn19aWYoMzA9PT1XdC5tb2RlKWJyZWFrO2lmKDA9PT1XdC5sZW5zWzI1Nl0pe0FuLm1zZz0iaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5k''@;'; put 'put ''LW9mLWJsb2NrIixXdC5tb2RlPTMwO2JyZWFrfWlmKFd0LmxlbmJpdHM9OSxvcj10ZSgxLFd0LmxlbnMsMCxXdC5ubGVuLFd0LmxlbmNvZGUsMCxXdC53b3JrLEtyPXtiaXRzOld0LmxlbmJpdHN9KSxXdC5sZW5iaXRzPUtyLmJpdHMsb3Ipe0FuLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0''@;'; put 'put ''aHMgc2V0IixXdC5tb2RlPTMwO2JyZWFrfWlmKFd0LmRpc3RiaXRzPTYsV3QuZGlzdGNvZGU9V3QuZGlzdGR5bixvcj10ZSgyLFd0LmxlbnMsV3QubmxlbixXdC5uZGlzdCxXdC5kaXN0Y29kZSwwLFd0LndvcmssS3I9e2JpdHM6V3QuZGlzdGJpdHN9KSxXdC5kaXN0Yml0cz1Lci5iaXRzLG9y''@;'; put 'put ''KXtBbi5tc2c9ImludmFsaWQgZGlzdGFuY2VzIHNldCIsV3QubW9kZT0zMDticmVha31pZihXdC5tb2RlPTIwLDY9PT1xbilicmVhayBlO2Nhc2UgMjA6V3QubW9kZT0yMTtjYXNlIDIxOmlmKFVuPj02JiZ3bj49MjU4KXtBbi5uZXh0X291dD1zbixBbi5hdmFpbF9vdXQ9d24sQW4ubmV4dF9p''@;'; put 'put ''bj1OdCxBbi5hdmFpbF9pbj1VbixXdC5ob2xkPXRuLFd0LmJpdHM9em4sTihBbixCbiksc249QW4ubmV4dF9vdXQsS249QW4ub3V0cHV0LHduPUFuLmF2YWlsX291dCxOdD1Bbi5uZXh0X2luLHBuPUFuLmlucHV0LFVuPUFuLmF2YWlsX2luLHRuPVd0LmhvbGQsem49V3QuYml0cywxMj09PVd0''@;'; put 'put ''Lm1vZGUmJihXdC5iYWNrPS0xKTticmVha31mb3IoV3QuYmFjaz0wO0d0PShjbj1XdC5sZW5jb2RlW3RuJigxPDxXdC5sZW5iaXRzKS0xXSk+Pj4xNiYyNTUsa249NjU1MzUmY24sISgoX249Y24+Pj4yNCk8PXpuKTspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6''@;'; put 'put ''bis9OH1pZihHdCYmMD09KDI0MCZHdCkpe2ZvcihWbj1fbixlbj1HdCxJbj1rbjtHdD0oY249V3QubGVuY29kZVtJbisoKHRuJigxPDxWbitlbiktMSk+PlZuKV0pPj4+MTYmMjU1LGtuPTY1NTM1JmNuLCEoVm4rKF9uPWNuPj4+MjQpPD16bik7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRu''@;'; put 'put ''Kz1wbltOdCsrXTw8em4sem4rPTh9dG4+Pj49Vm4sem4tPVZuLFd0LmJhY2srPVZufWlmKHRuPj4+PV9uLHpuLT1fbixXdC5iYWNrKz1fbixXdC5sZW5ndGg9a24sMD09PUd0KXtXdC5tb2RlPTI2O2JyZWFrfWlmKDMyJkd0KXtXdC5iYWNrPS0xLFd0Lm1vZGU9MTI7YnJlYWt9aWYoNjQmR3Qp''@;'; put 'put ''e0FuLm1zZz0iaW52YWxpZCBsaXRlcmFsL2xlbmd0aCBjb2RlIixXdC5tb2RlPTMwO2JyZWFrfVd0LmV4dHJhPTE1Jkd0LFd0Lm1vZGU9MjI7Y2FzZSAyMjppZihXdC5leHRyYSl7Zm9yKFZyPVd0LmV4dHJhO3puPFZyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpu''@;'; put 'put ''LHpuKz04fVd0Lmxlbmd0aCs9dG4mKDE8PFd0LmV4dHJhKS0xLHRuPj4+PVd0LmV4dHJhLHpuLT1XdC5leHRyYSxXdC5iYWNrKz1XdC5leHRyYX1XdC53YXM9V3QubGVuZ3RoLFd0Lm1vZGU9MjM7Y2FzZSAyMzpmb3IoO0d0PShjbj1XdC5kaXN0Y29kZVt0biYoMTw8V3QuZGlzdGJpdHMpLTFd''@;'; put 'put ''KT4+PjE2JjI1NSxrbj02NTUzNSZjbiwhKChfbj1jbj4+PjI0KTw9em4pOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bis9cG5bTnQrK108PHpuLHpuKz04fWlmKDA9PSgyNDAmR3QpKXtmb3IoVm49X24sZW49R3QsSW49a247R3Q9KGNuPVd0LmRpc3Rjb2RlW0luKygodG4mKDE8PFZuK2Vu''@;'; put 'put ''KS0xKT4+Vm4pXSk+Pj4xNiYyNTUsa249NjU1MzUmY24sIShWbisoX249Y24+Pj4yNCk8PXpuKTspe2lmKDA9PT1VbilicmVhayBlO1VuLS0sdG4rPXBuW050KytdPDx6bix6bis9OH10bj4+Pj1Wbix6bi09Vm4sV3QuYmFjays9Vm59aWYodG4+Pj49X24sem4tPV9uLFd0LmJhY2srPV9uLDY0''@;'; put 'put ''Jkd0KXtBbi5tc2c9ImludmFsaWQgZGlzdGFuY2UgY29kZSIsV3QubW9kZT0zMDticmVha31XdC5vZmZzZXQ9a24sV3QuZXh0cmE9MTUmR3QsV3QubW9kZT0yNDtjYXNlIDI0OmlmKFd0LmV4dHJhKXtmb3IoVnI9V3QuZXh0cmE7em48VnI7KXtpZigwPT09VW4pYnJlYWsgZTtVbi0tLHRuKz1w''@;'; put 'put ''bltOdCsrXTw8em4sem4rPTh9V3Qub2Zmc2V0Kz10biYoMTw8V3QuZXh0cmEpLTEsdG4+Pj49V3QuZXh0cmEsem4tPVd0LmV4dHJhLFd0LmJhY2srPVd0LmV4dHJhfWlmKFd0Lm9mZnNldD5XdC5kbWF4KXtBbi5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixXdC5tb2RlPTMw''@;'; put 'put ''O2JyZWFrfVd0Lm1vZGU9MjU7Y2FzZSAyNTppZigwPT09d24pYnJlYWsgZTtpZihXdC5vZmZzZXQ+KGtyPUJuLXduKSl7aWYoKGtyPVd0Lm9mZnNldC1rcik+V3Qud2hhdmUmJld0LnNhbmUpe0FuLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLFd0Lm1vZGU9MzA7YnJlYWt9''@;'; put 'put ''bW49a3I+V3Qud25leHQ/V3Qud3NpemUtKGtyLT1XdC53bmV4dCk6V3Qud25leHQta3Isa3I+V3QubGVuZ3RoJiYoa3I9V3QubGVuZ3RoKSx1bj1XdC53aW5kb3d9ZWxzZSB1bj1Lbixtbj1zbi1XdC5vZmZzZXQsa3I9V3QubGVuZ3RoO2tyPnduJiYoa3I9d24pLHduLT1rcixXdC5sZW5ndGgt''@;'; put 'put ''PWtyO2Rve0tuW3NuKytdPXVuW21uKytdfXdoaWxlKC0ta3IpOzA9PT1XdC5sZW5ndGgmJihXdC5tb2RlPTIxKTticmVhaztjYXNlIDI2OmlmKDA9PT13bilicmVhayBlO0tuW3NuKytdPVd0Lmxlbmd0aCx3bi0tLFd0Lm1vZGU9MjE7YnJlYWs7Y2FzZSAyNzppZihXdC53cmFwKXtmb3IoO3pu''@;'; put 'put ''PDMyOyl7aWYoMD09PVVuKWJyZWFrIGU7VW4tLSx0bnw9cG5bTnQrK108PHpuLHpuKz04fWlmKEFuLnRvdGFsX291dCs9Qm4tPXduLFd0LnRvdGFsKz1CbixCbiYmKEFuLmFkbGVyPVd0LmNoZWNrPVd0LmZsYWdzP1coV3QuY2hlY2ssS24sQm4sc24tQm4pOlkoV3QuY2hlY2ssS24sQm4sc24t''@;'; put 'put ''Qm4pKSxCbj13biwoV3QuZmxhZ3M/dG46SnQodG4pKSE9PVd0LmNoZWNrKXtBbi5tc2c9ImluY29ycmVjdCBkYXRhIGNoZWNrIixXdC5tb2RlPTMwO2JyZWFrfXRuPTAsem49MH1XdC5tb2RlPTI4O2Nhc2UgMjg6aWYoV3Qud3JhcCYmV3QuZmxhZ3Mpe2Zvcig7em48MzI7KXtpZigwPT09VW4p''@;'; put 'put ''YnJlYWsgZTtVbi0tLHRuKz1wbltOdCsrXTw8em4sem4rPTh9aWYodG4hPT0oNDI5NDk2NzI5NSZXdC50b3RhbCkpe0FuLm1zZz0iaW5jb3JyZWN0IGxlbmd0aCBjaGVjayIsV3QubW9kZT0zMDticmVha310bj0wLHpuPTB9V3QubW9kZT0yOTtjYXNlIDI5Om9yPTE7YnJlYWsgZTtjYXNlIDMw''@;'; put 'put ''Om9yPS0zO2JyZWFrIGU7Y2FzZSAzMTpyZXR1cm4tNDtkZWZhdWx0OnJldHVybi0yfXJldHVybiBBbi5uZXh0X291dD1zbixBbi5hdmFpbF9vdXQ9d24sQW4ubmV4dF9pbj1OdCxBbi5hdmFpbF9pbj1VbixXdC5ob2xkPXRuLFd0LmJpdHM9em4sKFd0LndzaXplfHxCbiE9PUFuLmF2YWlsX291''@;'; put 'put ''dCYmV3QubW9kZTwzMCYmKFd0Lm1vZGU8Mjd8fDQhPT1xbikpJiZmdW5jdGlvbiB4cihBbixxbixXdCxwbil7dmFyIEtuLE50PUFuLnN0YXRlO3JldHVybiBudWxsPT09TnQud2luZG93JiYoTnQud3NpemU9MTw8TnQud2JpdHMsTnQud25leHQ9MCxOdC53aGF2ZT0wLE50LndpbmRvdz1uZXcg''@;'; put 'put ''YWUuQnVmOChOdC53c2l6ZSkpLHBuPj1OdC53c2l6ZT8oYWUuYXJyYXlTZXQoTnQud2luZG93LHFuLFd0LU50LndzaXplLE50LndzaXplLDApLE50LnduZXh0PTAsTnQud2hhdmU9TnQud3NpemUpOigoS249TnQud3NpemUtTnQud25leHQpPnBuJiYoS249cG4pLGFlLmFycmF5U2V0KE50Lndp''@;'; put 'put ''bmRvdyxxbixXdC1wbixLbixOdC53bmV4dCksKHBuLT1Lbik/KGFlLmFycmF5U2V0KE50LndpbmRvdyxxbixXdC1wbixwbiwwKSxOdC53bmV4dD1wbixOdC53aGF2ZT1OdC53c2l6ZSk6KE50LnduZXh0Kz1LbixOdC53bmV4dD09PU50LndzaXplJiYoTnQud25leHQ9MCksTnQud2hhdmU8TnQu''@;'; put 'put ''d3NpemUmJihOdC53aGF2ZSs9S24pKSksMH0oQW4sQW4ub3V0cHV0LEFuLm5leHRfb3V0LEJuLUFuLmF2YWlsX291dCk/KFd0Lm1vZGU9MzEsLTQpOihCbi09QW4uYXZhaWxfb3V0LEFuLnRvdGFsX2luKz1Uci09QW4uYXZhaWxfaW4sQW4udG90YWxfb3V0Kz1CbixXdC50b3RhbCs9Qm4sV3Qu''@;'; put 'put ''d3JhcCYmQm4mJihBbi5hZGxlcj1XdC5jaGVjaz1XdC5mbGFncz9XKFd0LmNoZWNrLEtuLEJuLEFuLm5leHRfb3V0LUJuKTpZKFd0LmNoZWNrLEtuLEJuLEFuLm5leHRfb3V0LUJuKSksQW4uZGF0YV90eXBlPVd0LmJpdHMrKFd0Lmxhc3Q/NjQ6MCkrKDEyPT09V3QubW9kZT8xMjg6MCkrKDIw''@;'; put 'put ''PT09V3QubW9kZXx8MTU9PT1XdC5tb2RlPzI1NjowKSwoMD09PVRyJiYwPT09Qm58fDQ9PT1xbikmJjA9PT1vciYmKG9yPS01KSxvcil9LHJlLmluZmxhdGVFbmQ9ZnVuY3Rpb24gcHIoQW4pe2lmKCFBbnx8IUFuLnN0YXRlKXJldHVybi0yO3ZhciBxbj1Bbi5zdGF0ZTtyZXR1cm4gcW4ud2lu''@;'; put 'put ''ZG93JiYocW4ud2luZG93PW51bGwpLEFuLnN0YXRlPW51bGwsMH0scmUuaW5mbGF0ZUdldEhlYWRlcj1mdW5jdGlvbiBucihBbixxbil7dmFyIFd0O3JldHVybiBBbiYmQW4uc3RhdGUmJjAhPSgyJihXdD1Bbi5zdGF0ZSkud3JhcCk/KFd0LmhlYWQ9cW4scW4uZG9uZT0hMSwwKTotMn0scmUu''@;'; put 'put ''aW5mbGF0ZUluZm89InBha28gaW5mbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCkifSx7Ii4uL3V0aWxzL2NvbW1vbiI6MjcsIi4vYWRsZXIzMiI6MjksIi4vY3JjMzIiOjMxLCIuL2luZmZhc3QiOjM0LCIuL2luZnRyZWVzIjozNn1dLDM2OltmdW5jdGlvbihRLGoscmUpeyJ1c2Ugc3RyaWN0''@;'; put 'put ''Ijt2YXIgYWU9USgiLi4vdXRpbHMvY29tbW9uIiksc2U9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNTgsMCwwXSxvZT1bMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTYsMTcsMTcsMTcsMTcs''@;'; put 'put ''MTgsMTgsMTgsMTgsMTksMTksMTksMTksMjAsMjAsMjAsMjAsMjEsMjEsMjEsMjEsMTYsNzIsNzhdLGNlPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYz''@;'; put 'put ''ODUsMjQ1NzcsMCwwXSxkZT1bMTYsMTYsMTYsMTYsMTcsMTcsMTgsMTgsMTksMTksMjAsMjAsMjEsMjEsMjIsMjIsMjMsMjMsMjQsMjQsMjUsMjUsMjYsMjYsMjcsMjcsMjgsMjgsMjksMjksNjQsNjRdO2ouZXhwb3J0cz1mdW5jdGlvbihBZSxrZSxTZSxJZSxUZSxNZSxoZSxPKXt2YXIgRGUs''@;'; put 'put ''UGUsUWUsJGUsZ3QsdnQsX3QsdHQsZXQsej1PLmJpdHMsZWU9MCxuZT0wLHg9MCxQPTAsVj0wLFQ9MCxTPTAsRj0wLHllPTAsQ2U9MCx3dD1udWxsLG10PTAsQXQ9bmV3IGFlLkJ1ZjE2KDE2KSxodD1uZXcgYWUuQnVmMTYoMTYpLEJ0PW51bGwsb249MDtmb3IoZWU9MDtlZTw9MTU7ZWUrKylB''@;'; put 'put ''dFtlZV09MDtmb3IobmU9MDtuZTxJZTtuZSsrKUF0W2tlW1NlK25lXV0rKztmb3IoVj16LFA9MTU7UD49MSYmMD09PUF0W1BdO1AtLSk7aWYoVj5QJiYoVj1QKSwwPT09UClyZXR1cm4gVGVbTWUrK109MjA5NzE1MjAsVGVbTWUrK109MjA5NzE1MjAsTy5iaXRzPTEsMDtmb3IoeD0xO3g8UCYm''@;'; put 'put ''MD09PUF0W3hdO3grKyk7Zm9yKFY8eCYmKFY9eCksRj0xLGVlPTE7ZWU8PTE1O2VlKyspaWYoRjw8PTEsKEYtPUF0W2VlXSk8MClyZXR1cm4tMTtpZihGPjAmJigwPT09QWV8fDEhPT1QKSlyZXR1cm4tMTtmb3IoaHRbMV09MCxlZT0xO2VlPDE1O2VlKyspaHRbZWUrMV09aHRbZWVdK0F0W2Vl''@;'; put 'put ''XTtmb3IobmU9MDtuZTxJZTtuZSsrKTAhPT1rZVtTZStuZV0mJihoZVtodFtrZVtTZStuZV1dKytdPW5lKTtpZigwPT09QWU/KHd0PUJ0PWhlLHZ0PTE5KToxPT09QWU/KHd0PXNlLG10LT0yNTcsQnQ9b2Usb24tPTI1Nyx2dD0yNTYpOih3dD1jZSxCdD1kZSx2dD0tMSksQ2U9MCxuZT0wLGVl''@;'; put 'put ''PXgsZ3Q9TWUsVD1WLFM9MCxRZT0tMSwkZT0oeWU9MTw8ViktMSwxPT09QWUmJnllPjg1Mnx8Mj09PUFlJiZ5ZT41OTIpcmV0dXJuIDE7Zm9yKDs7KXtfdD1lZS1TLGhlW25lXTx2dD8odHQ9MCxldD1oZVtuZV0pOmhlW25lXT52dD8odHQ9QnRbb24raGVbbmVdXSxldD13dFttdCtoZVtuZV1d''@;'; put 'put ''KToodHQ9OTYsZXQ9MCksRGU9MTw8ZWUtUyx4PVBlPTE8PFQ7ZG97VGVbZ3QrKENlPj5TKSsoUGUtPURlKV09X3Q8PDI0fHR0PDwxNnxldHwwfXdoaWxlKDAhPT1QZSk7Zm9yKERlPTE8PGVlLTE7Q2UmRGU7KURlPj49MTtpZigwIT09RGU/KENlJj1EZS0xLENlKz1EZSk6Q2U9MCxuZSsrLDA9''@;'; put 'put ''PS0tQXRbZWVdKXtpZihlZT09PVApYnJlYWs7ZWU9a2VbU2UraGVbbmVdXX1pZihlZT5WJiYoQ2UmJGUpIT09UWUpe2ZvcigwPT09UyYmKFM9ViksZ3QrPXgsRj0xPDwoVD1lZS1TKTtUK1M8UCYmISgoRi09QXRbVCtTXSk8PTApOylUKyssRjw8PTE7aWYoeWUrPTE8PFQsMT09PUFlJiZ5ZT44''@;'; put 'put ''NTJ8fDI9PT1BZSYmeWU+NTkyKXJldHVybiAxO1RlW1FlPUNlJiRlXT1WPDwyNHxUPDwxNnxndC1NZXwwfX1yZXR1cm4gMCE9PUNlJiYoVGVbZ3QrQ2VdPWVlLVM8PDI0fDY0PDwxNnwwKSxPLmJpdHM9ViwwfX0seyIuLi91dGlscy9jb21tb24iOjI3fV0sMzc6W2Z1bmN0aW9uKFEsaixyZSl7''@;'; put 'put ''InVzZSBzdHJpY3QiO2ouZXhwb3J0cz17MjoibmVlZCBkaWN0aW9uYXJ5IiwxOiJzdHJlYW0gZW5kIiwwOiIiLCItMSI6ImZpbGUgZXJyb3IiLCItMiI6InN0cmVhbSBlcnJvciIsIi0zIjoiZGF0YSBlcnJvciIsIi00IjoiaW5zdWZmaWNpZW50IG1lbW9yeSIsIi01IjoiYnVmZmVyIGVycm9y''@;'; put 'put ''IiwiLTYiOiJpbmNvbXBhdGlibGUgdmVyc2lvbiJ9fSx7fV0sMzg6W2Z1bmN0aW9uKFEsaixyZSl7InVzZSBzdHJpY3QiO3ZhciBhZT1RKCIuLi91dGlscy9jb21tb24iKTtmdW5jdGlvbiBLKHF0KXtmb3IodmFyIHByPXF0Lmxlbmd0aDstLXByPj0wOylxdFtwcl09MH12YXIgUD1bMCwwLDAs''@;'; put 'put ''MCwwLDAsMCwwLDEsMSwxLDEsMiwyLDIsMiwzLDMsMywzLDQsNCw0LDQsNSw1LDUsNSwwXSxWPVswLDAsMCwwLDEsMSwyLDIsMywzLDQsNCw1LDUsNiw2LDcsNyw4LDgsOSw5LDEwLDEwLDExLDExLDEyLDEyLDEzLDEzXSxUPVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDIsMyw3''@;'; put 'put ''XSxTPVsxNiwxNywxOCwwLDgsNyw5LDYsMTAsNSwxMSw0LDEyLDMsMTMsMiwxNCwxLDE1XSx5ZT1uZXcgQXJyYXkoNTc2KTtLKHllKTt2YXIgQ2U9bmV3IEFycmF5KDYwKTtLKENlKTt2YXIgRGU9bmV3IEFycmF5KDUxMik7SyhEZSk7dmFyIFBlPW5ldyBBcnJheSgyNTYpO0soUGUpO3ZhciBR''@;'; put 'put ''ZT1uZXcgQXJyYXkoMjkpO0soUWUpO3ZhciAkZT1uZXcgQXJyYXkoMzApO0soJGUpO3ZhciB3dCxtdCx2dCxndD1mdW5jdGlvbihxdCxwcixucixBbixxbil7dGhpcy5zdGF0aWNfdHJlZT1xdCx0aGlzLmV4dHJhX2JpdHM9cHIsdGhpcy5leHRyYV9iYXNlPW5yLHRoaXMuZWxlbXM9QW4sdGhp''@;'; put 'put ''cy5tYXhfbGVuZ3RoPXFuLHRoaXMuaGFzX3N0cmVlPXF0JiZxdC5sZW5ndGh9LEF0PWZ1bmN0aW9uKHF0LHByKXt0aGlzLmR5bl90cmVlPXF0LHRoaXMubWF4X2NvZGU9MCx0aGlzLnN0YXRfZGVzYz1wcn07ZnVuY3Rpb24gaHQocXQpe3JldHVybiBxdDwyNTY/RGVbcXRdOkRlWzI1NisocXQ+''@;'; put 'put ''Pj43KV19ZnVuY3Rpb24gQnQocXQscHIpe3F0LnBlbmRpbmdfYnVmW3F0LnBlbmRpbmcrK109MjU1JnByLHF0LnBlbmRpbmdfYnVmW3F0LnBlbmRpbmcrK109cHI+Pj44JjI1NX1mdW5jdGlvbiBvbihxdCxwcixucil7cXQuYmlfdmFsaWQ+MTYtbnI/KHF0LmJpX2J1Znw9cHI8PHF0LmJpX3Zh''@;'; put 'put ''bGlkJjY1NTM1LEJ0KHF0LHF0LmJpX2J1ZikscXQuYmlfYnVmPXByPj4xNi1xdC5iaV92YWxpZCxxdC5iaV92YWxpZCs9bnItMTYpOihxdC5iaV9idWZ8PXByPDxxdC5iaV92YWxpZCY2NTUzNSxxdC5iaV92YWxpZCs9bnIpfWZ1bmN0aW9uIF90KHF0LHByLG5yKXtvbihxdCxuclsyKnByXSxu''@;'; put 'put ''clsyKnByKzFdKX1mdW5jdGlvbiB0dChxdCxwcil7dmFyIG5yPTA7ZG97bnJ8PTEmcXQscXQ+Pj49MSxucjw8PTF9d2hpbGUoLS1wcj4wKTtyZXR1cm4gbnI+Pj4xfWZ1bmN0aW9uIEx0KHF0LHByLG5yKXt2YXIgV3QscG4sQW49bmV3IEFycmF5KDE2KSxxbj0wO2ZvcihXdD0xO1d0PD0xNTtX''@;'; put 'put ''dCsrKUFuW1d0XT1xbj1xbitucltXdC0xXTw8MTtmb3IocG49MDtwbjw9cHI7cG4rKyl7dmFyIEtuPXF0WzIqcG4rMV07MCE9PUtuJiYocXRbMipwbl09dHQoQW5bS25dKyssS24pKX19ZnVuY3Rpb24gZnQocXQpe3ZhciBwcjtmb3IocHI9MDtwcjwyODY7cHIrKylxdC5keW5fbHRyZWVbMipw''@;'; put 'put ''cl09MDtmb3IocHI9MDtwcjwzMDtwcisrKXF0LmR5bl9kdHJlZVsyKnByXT0wO2Zvcihwcj0wO3ByPDE5O3ByKyspcXQuYmxfdHJlZVsyKnByXT0wO3F0LmR5bl9sdHJlZVs1MTJdPTEscXQub3B0X2xlbj1xdC5zdGF0aWNfbGVuPTAscXQubGFzdF9saXQ9cXQubWF0Y2hlcz0wfWZ1bmN0aW9u''@;'; put 'put ''IEh0KHF0KXtxdC5iaV92YWxpZD44P0J0KHF0LHF0LmJpX2J1Zik6cXQuYmlfdmFsaWQ+MCYmKHF0LnBlbmRpbmdfYnVmW3F0LnBlbmRpbmcrK109cXQuYmlfYnVmKSxxdC5iaV9idWY9MCxxdC5iaV92YWxpZD0wfWZ1bmN0aW9uIFVlKHF0LHByLG5yLEFuKXt2YXIgcW49MipwcixXdD0yKm5y''@;'; put 'put ''O3JldHVybiBxdFtxbl08cXRbV3RdfHxxdFtxbl09PT1xdFtXdF0mJkFuW3ByXTw9QW5bbnJdfWZ1bmN0aW9uIHl0KHF0LHByLG5yKXtmb3IodmFyIEFuPXF0LmhlYXBbbnJdLHFuPW5yPDwxO3FuPD1xdC5oZWFwX2xlbiYmKHFuPHF0LmhlYXBfbGVuJiZVZShwcixxdC5oZWFwW3FuKzFdLHF0''@;'; put 'put ''LmhlYXBbcW5dLHF0LmRlcHRoKSYmcW4rKywhVWUocHIsQW4scXQuaGVhcFtxbl0scXQuZGVwdGgpKTspcXQuaGVhcFtucl09cXQuaGVhcFtxbl0sbnI9cW4scW48PD0xO3F0LmhlYXBbbnJdPUFufWZ1bmN0aW9uIGp0KHF0LHByLG5yKXt2YXIgQW4scW4scG4sS24sV3Q9MDtpZigwIT09cXQu''@;'; put 'put ''bGFzdF9saXQpZG97QW49cXQucGVuZGluZ19idWZbcXQuZF9idWYrMipXdF08PDh8cXQucGVuZGluZ19idWZbcXQuZF9idWYrMipXdCsxXSxxbj1xdC5wZW5kaW5nX2J1ZltxdC5sX2J1ZitXdF0sV3QrKywwPT09QW4/X3QocXQscW4scHIpOihfdChxdCwocG49UGVbcW5dKSsyNTYrMSxwciks''@;'; put 'put ''MCE9PShLbj1QW3BuXSkmJm9uKHF0LHFuLT1RZVtwbl0sS24pLF90KHF0LHBuPWh0KC0tQW4pLG5yKSwwIT09KEtuPVZbcG5dKSYmb24ocXQsQW4tPSRlW3BuXSxLbikpfXdoaWxlKFd0PHF0Lmxhc3RfbGl0KTtfdChxdCwyNTYscHIpfWZ1bmN0aW9uIEp0KHF0LHByKXt2YXIgcG4sS24sc24s''@;'; put 'put ''bnI9cHIuZHluX3RyZWUsQW49cHIuc3RhdF9kZXNjLnN0YXRpY190cmVlLHFuPXByLnN0YXRfZGVzYy5oYXNfc3RyZWUsV3Q9cHIuc3RhdF9kZXNjLmVsZW1zLE50PS0xO2ZvcihxdC5oZWFwX2xlbj0wLHF0LmhlYXBfbWF4PTU3Myxwbj0wO3BuPFd0O3BuKyspMCE9PW5yWzIqcG5dPyhxdC5o''@;'; put 'put ''ZWFwWysrcXQuaGVhcF9sZW5dPU50PXBuLHF0LmRlcHRoW3BuXT0wKTpuclsyKnBuKzFdPTA7Zm9yKDtxdC5oZWFwX2xlbjwyOyluclsyKihzbj1xdC5oZWFwWysrcXQuaGVhcF9sZW5dPU50PDI/KytOdDowKV09MSxxdC5kZXB0aFtzbl09MCxxdC5vcHRfbGVuLS0scW4mJihxdC5zdGF0aWNf''@;'; put 'put ''bGVuLT1BblsyKnNuKzFdKTtmb3IocHIubWF4X2NvZGU9TnQscG49cXQuaGVhcF9sZW4+PjE7cG4+PTE7cG4tLSl5dChxdCxucixwbik7c249V3Q7ZG97cG49cXQuaGVhcFsxXSxxdC5oZWFwWzFdPXF0LmhlYXBbcXQuaGVhcF9sZW4tLV0seXQocXQsbnIsMSksS249cXQuaGVhcFsxXSxxdC5o''@;'; put 'put ''ZWFwWy0tcXQuaGVhcF9tYXhdPXBuLHF0LmhlYXBbLS1xdC5oZWFwX21heF09S24sbnJbMipzbl09bnJbMipwbl0rbnJbMipLbl0scXQuZGVwdGhbc25dPShxdC5kZXB0aFtwbl0+PXF0LmRlcHRoW0tuXT9xdC5kZXB0aFtwbl06cXQuZGVwdGhbS25dKSsxLG5yWzIqcG4rMV09bnJbMipLbisx''@;'; put 'put ''XT1zbixxdC5oZWFwWzFdPXNuKysseXQocXQsbnIsMSl9d2hpbGUocXQuaGVhcF9sZW4+PTIpO3F0LmhlYXBbLS1xdC5oZWFwX21heF09cXQuaGVhcFsxXSxmdW5jdGlvbiBsdChxdCxwcil7dmFyIHNuLFVuLHduLHRuLHpuLFRyLG5yPXByLmR5bl90cmVlLEFuPXByLm1heF9jb2RlLHFuPXBy''@;'; put 'put ''LnN0YXRfZGVzYy5zdGF0aWNfdHJlZSxXdD1wci5zdGF0X2Rlc2MuaGFzX3N0cmVlLHBuPXByLnN0YXRfZGVzYy5leHRyYV9iaXRzLEtuPXByLnN0YXRfZGVzYy5leHRyYV9iYXNlLE50PXByLnN0YXRfZGVzYy5tYXhfbGVuZ3RoLEJuPTA7Zm9yKHRuPTA7dG48PTE1O3RuKyspcXQuYmxfY291''@;'; put 'put ''bnRbdG5dPTA7Zm9yKG5yWzIqcXQuaGVhcFtxdC5oZWFwX21heF0rMV09MCxzbj1xdC5oZWFwX21heCsxO3NuPDU3MztzbisrKSh0bj1uclsyKm5yWzIqKFVuPXF0LmhlYXBbc25dKSsxXSsxXSsxKT5OdCYmKHRuPU50LEJuKyspLG5yWzIqVW4rMV09dG4sIShVbj5BbikmJihxdC5ibF9jb3Vu''@;'; put 'put ''dFt0bl0rKyx6bj0wLFVuPj1LbiYmKHpuPXBuW1VuLUtuXSkscXQub3B0X2xlbis9KFRyPW5yWzIqVW5dKSoodG4rem4pLFd0JiYocXQuc3RhdGljX2xlbis9VHIqKHFuWzIqVW4rMV0rem4pKSk7aWYoMCE9PUJuKXtkb3tmb3IodG49TnQtMTswPT09cXQuYmxfY291bnRbdG5dOyl0bi0tO3F0''@;'; put 'put ''LmJsX2NvdW50W3RuXS0tLHF0LmJsX2NvdW50W3RuKzFdKz0yLHF0LmJsX2NvdW50W050XS0tLEJuLT0yfXdoaWxlKEJuPjApO2Zvcih0bj1OdDswIT09dG47dG4tLSlmb3IoVW49cXQuYmxfY291bnRbdG5dOzAhPT1VbjspISgod249cXQuaGVhcFstLXNuXSk+QW4pJiYobnJbMip3bisxXSE9''@;'; put 'put ''PXRuJiYocXQub3B0X2xlbis9KHRuLW5yWzIqd24rMV0pKm5yWzIqd25dLG5yWzIqd24rMV09dG4pLFVuLS0pfX0ocXQscHIpLEx0KG5yLE50LHF0LmJsX2NvdW50KX1mdW5jdGlvbiBnbihxdCxwcixucil7dmFyIEFuLFd0LHFuPS0xLHBuPXByWzFdLEtuPTAsTnQ9Nyxzbj00O2ZvcigwPT09''@;'; put 'put ''cG4mJihOdD0xMzgsc249MykscHJbMioobnIrMSkrMV09NjU1MzUsQW49MDtBbjw9bnI7QW4rKylXdD1wbixwbj1wclsyKihBbisxKSsxXSwhKCsrS248TnQmJld0PT09cG4pJiYoS248c24/cXQuYmxfdHJlZVsyKld0XSs9S246MCE9PVd0PyhXdCE9PXFuJiZxdC5ibF90cmVlWzIqV3RdKyss''@;'; put 'put ''cXQuYmxfdHJlZVszMl0rKyk6S248PTEwP3F0LmJsX3RyZWVbMzRdKys6cXQuYmxfdHJlZVszNl0rKyxLbj0wLHFuPVd0LDA9PT1wbj8oTnQ9MTM4LHNuPTMpOld0PT09cG4/KE50PTYsc249Myk6KE50PTcsc249NCkpfWZ1bmN0aW9uIGRuKHF0LHByLG5yKXt2YXIgQW4sV3QscW49LTEscG49''@;'; put 'put ''cHJbMV0sS249MCxOdD03LHNuPTQ7Zm9yKDA9PT1wbiYmKE50PTEzOCxzbj0zKSxBbj0wO0FuPD1ucjtBbisrKWlmKFd0PXBuLHBuPXByWzIqKEFuKzEpKzFdLCEoKytLbjxOdCYmV3Q9PT1wbikpe2lmKEtuPHNuKWRve190KHF0LFd0LHF0LmJsX3RyZWUpfXdoaWxlKDAhPS0tS24pO2Vsc2Ug''@;'; put 'put ''MCE9PVd0PyhXdCE9PXFuJiYoX3QocXQsV3QscXQuYmxfdHJlZSksS24tLSksX3QocXQsMTYscXQuYmxfdHJlZSksb24ocXQsS24tMywyKSk6S248PTEwPyhfdChxdCwxNyxxdC5ibF90cmVlKSxvbihxdCxLbi0zLDMpKTooX3QocXQsMTgscXQuYmxfdHJlZSksb24ocXQsS24tMTEsNykpO0tu''@;'; put 'put ''PTAscW49V3QsMD09PXBuPyhOdD0xMzgsc249Myk6V3Q9PT1wbj8oTnQ9Nixzbj0zKTooTnQ9Nyxzbj00KX19dmFyIGJuPSExO2Z1bmN0aW9uIHNyKHF0LHByLG5yLEFuKXtvbihxdCwwKyhBbj8xOjApLDMpLGZ1bmN0aW9uIEdlKHF0LHByLG5yLEFuKXtIdChxdCksQW4mJihCdChxdCxuciks''@;'; put 'put ''QnQocXQsfm5yKSksYWUuYXJyYXlTZXQocXQucGVuZGluZ19idWYscXQud2luZG93LHByLG5yLHF0LnBlbmRpbmcpLHF0LnBlbmRpbmcrPW5yfShxdCxwcixuciwhMCl9cmUuX3RyX2luaXQ9ZnVuY3Rpb24gZXIocXQpe2JufHwoZnVuY3Rpb24gQ3QoKXt2YXIgcXQscHIsbnIsQW4scW4sV3Q9''@;'; put 'put ''bmV3IEFycmF5KDE2KTtmb3IobnI9MCxBbj0wO0FuPDI4O0FuKyspZm9yKFFlW0FuXT1ucixxdD0wO3F0PDE8PFBbQW5dO3F0KyspUGVbbnIrK109QW47Zm9yKFBlW25yLTFdPUFuLHFuPTAsQW49MDtBbjwxNjtBbisrKWZvcigkZVtBbl09cW4scXQ9MDtxdDwxPDxWW0FuXTtxdCsrKURlW3Fu''@;'; put 'put ''KytdPUFuO2Zvcihxbj4+PTc7QW48MzA7QW4rKylmb3IoJGVbQW5dPXFuPDw3LHF0PTA7cXQ8MTw8VltBbl0tNztxdCsrKURlWzI1NitxbisrXT1Bbjtmb3IocHI9MDtwcjw9MTU7cHIrKylXdFtwcl09MDtmb3IocXQ9MDtxdDw9MTQzOyl5ZVsyKnF0KzFdPTgscXQrKyxXdFs4XSsrO2Zvcig7''@;'; put 'put ''cXQ8PTI1NTspeWVbMipxdCsxXT05LHF0KyssV3RbOV0rKztmb3IoO3F0PD0yNzk7KXllWzIqcXQrMV09NyxxdCsrLFd0WzddKys7Zm9yKDtxdDw9Mjg3Oyl5ZVsyKnF0KzFdPTgscXQrKyxXdFs4XSsrO2ZvcihMdCh5ZSwyODcsV3QpLHF0PTA7cXQ8MzA7cXQrKylDZVsyKnF0KzFdPTUsQ2Vb''@;'; put 'put ''MipxdF09dHQocXQsNSk7d3Q9bmV3IGd0KHllLFAsMjU3LDI4NiwxNSksbXQ9bmV3IGd0KENlLFYsMCwzMCwxNSksdnQ9bmV3IGd0KG5ldyBBcnJheSgwKSxULDAsMTksNyl9KCksYm49ITApLHF0LmxfZGVzYz1uZXcgQXQocXQuZHluX2x0cmVlLHd0KSxxdC5kX2Rlc2M9bmV3IEF0KHF0LmR5''@;'; put 'put ''bl9kdHJlZSxtdCkscXQuYmxfZGVzYz1uZXcgQXQocXQuYmxfdHJlZSx2dCkscXQuYmlfYnVmPTAscXQuYmlfdmFsaWQ9MCxmdChxdCl9LHJlLl90cl9zdG9yZWRfYmxvY2s9c3IscmUuX3RyX2ZsdXNoX2Jsb2NrPWZ1bmN0aW9uIEZyKHF0LHByLG5yLEFuKXt2YXIgcW4sV3QscG49MDtxdC5s''@;'; put 'put ''ZXZlbD4wPygyPT09cXQuc3RybS5kYXRhX3R5cGUmJihxdC5zdHJtLmRhdGFfdHlwZT1mdW5jdGlvbiBObihxdCl7dmFyIG5yLHByPTQwOTM2MjQ0NDc7Zm9yKG5yPTA7bnI8PTMxO25yKysscHI+Pj49MSlpZigxJnByJiYwIT09cXQuZHluX2x0cmVlWzIqbnJdKXJldHVybiAwO2lmKDAhPT1x''@;'; put 'put ''dC5keW5fbHRyZWVbMThdfHwwIT09cXQuZHluX2x0cmVlWzIwXXx8MCE9PXF0LmR5bl9sdHJlZVsyNl0pcmV0dXJuIDE7Zm9yKG5yPTMyO25yPDI1NjtucisrKWlmKDAhPT1xdC5keW5fbHRyZWVbMipucl0pcmV0dXJuIDE7cmV0dXJuIDB9KHF0KSksSnQocXQscXQubF9kZXNjKSxKdChxdCxx''@;'; put 'put ''dC5kX2Rlc2MpLHBuPWZ1bmN0aW9uIHluKHF0KXt2YXIgcHI7Zm9yKGduKHF0LHF0LmR5bl9sdHJlZSxxdC5sX2Rlc2MubWF4X2NvZGUpLGduKHF0LHF0LmR5bl9kdHJlZSxxdC5kX2Rlc2MubWF4X2NvZGUpLEp0KHF0LHF0LmJsX2Rlc2MpLHByPTE4O3ByPj0zJiYwPT09cXQuYmxfdHJlZVsy''@;'; put 'put ''KlNbcHJdKzFdO3ByLS0pO3JldHVybiBxdC5vcHRfbGVuKz0zKihwcisxKSs1KzUrNCxwcn0ocXQpLChXdD1xdC5zdGF0aWNfbGVuKzMrNz4+PjMpPD0ocW49cXQub3B0X2xlbiszKzc+Pj4zKSYmKHFuPVd0KSk6cW49V3Q9bnIrNSxucis0PD1xbiYmLTEhPT1wcj9zcihxdCxwcixucixBbik6''@;'; put 'put ''ND09PXF0LnN0cmF0ZWd5fHxXdD09PXFuPyhvbihxdCwyKyhBbj8xOjApLDMpLGp0KHF0LHllLENlKSk6KG9uKHF0LDQrKEFuPzE6MCksMyksZnVuY3Rpb24gbG4ocXQscHIsbnIsQW4pe3ZhciBxbjtmb3Iob24ocXQscHItMjU3LDUpLG9uKHF0LG5yLTEsNSksb24ocXQsQW4tNCw0KSxxbj0w''@;'; put 'put ''O3FuPEFuO3FuKyspb24ocXQscXQuYmxfdHJlZVsyKlNbcW5dKzFdLDMpO2RuKHF0LHF0LmR5bl9sdHJlZSxwci0xKSxkbihxdCxxdC5keW5fZHRyZWUsbnItMSl9KHF0LHF0LmxfZGVzYy5tYXhfY29kZSsxLHF0LmRfZGVzYy5tYXhfY29kZSsxLHBuKzEpLGp0KHF0LHF0LmR5bl9sdHJlZSxx''@;'; put 'put ''dC5keW5fZHRyZWUpKSxmdChxdCksQW4mJkh0KHF0KX0scmUuX3RyX3RhbGx5PWZ1bmN0aW9uIHhyKHF0LHByLG5yKXtyZXR1cm4gcXQucGVuZGluZ19idWZbcXQuZF9idWYrMipxdC5sYXN0X2xpdF09cHI+Pj44JjI1NSxxdC5wZW5kaW5nX2J1ZltxdC5kX2J1ZisyKnF0Lmxhc3RfbGl0KzFd''@;'; put 'put ''PTI1NSZwcixxdC5wZW5kaW5nX2J1ZltxdC5sX2J1ZitxdC5sYXN0X2xpdF09MjU1Jm5yLHF0Lmxhc3RfbGl0KyssMD09PXByP3F0LmR5bl9sdHJlZVsyKm5yXSsrOihxdC5tYXRjaGVzKysscHItLSxxdC5keW5fbHRyZWVbMiooUGVbbnJdKzI1NisxKV0rKyxxdC5keW5fZHRyZWVbMipodChw''@;'; put 'put ''cildKyspLHF0Lmxhc3RfbGl0PT09cXQubGl0X2J1ZnNpemUtMX0scmUuX3RyX2FsaWduPWZ1bmN0aW9uIFhuKHF0KXtvbihxdCwyLDMpLF90KHF0LDI1Nix5ZSksZnVuY3Rpb24gZXQocXQpezE2PT09cXQuYmlfdmFsaWQ/KEJ0KHF0LHF0LmJpX2J1ZikscXQuYmlfYnVmPTAscXQuYmlfdmFs''@;'; put 'put ''aWQ9MCk6cXQuYmlfdmFsaWQ+PTgmJihxdC5wZW5kaW5nX2J1ZltxdC5wZW5kaW5nKytdPTI1NSZxdC5iaV9idWYscXQuYmlfYnVmPj49OCxxdC5iaV92YWxpZC09OCl9KHF0KX19LHsiLi4vdXRpbHMvY29tbW9uIjoyN31dLDM5OltmdW5jdGlvbihRLGoscmUpeyJ1c2Ugc3RyaWN0IjtqLmV4''@;'; put 'put ''cG9ydHM9ZnVuY3Rpb24gYWUoKXt0aGlzLmlucHV0PW51bGwsdGhpcy5uZXh0X2luPTAsdGhpcy5hdmFpbF9pbj0wLHRoaXMudG90YWxfaW49MCx0aGlzLm91dHB1dD1udWxsLHRoaXMubmV4dF9vdXQ9MCx0aGlzLmF2YWlsX291dD0wLHRoaXMudG90YWxfb3V0PTAsdGhpcy5tc2c9IiIsdGhp''@;'; put 'put ''cy5zdGF0ZT1udWxsLHRoaXMuZGF0YV90eXBlPTIsdGhpcy5hZGxlcj0wfX0se31dfSx7fSxbOV0pKDkpfSl9LDMwNjI4OihYZSxKZSxMKT0+eyFmdW5jdGlvbiBCKFUpe1UudmVyc2lvbj0iMS4yMDIxMTEyMi4xIjt2YXIgUT0xMjAwLGo9MTI1MjsidW5kZWZpbmVkIj09dHlwZW9mIGNwdGFi''@;'; put 'put ''bGUmJigidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWwuY3B0YWJsZT1MKDUzMzk5KToidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5jcHRhYmxlPUwoNTMzOTkpKSk7Zm9yKHZhciByZT1bODc0LDkzMiw5MzYsOTQ5LDk1MCwxZTRdLGFlPTA7YWU8PTg7KythZSly''@;'; put 'put ''ZS5wdXNoKDEyNTArYWUpO3ZhciBZPXswOjEyNTIsMTo2NTAwMSwyOjY1MDAxLDc3OjFlNCwxMjg6OTMyLDEyOTo5NDksMTMwOjEzNjEsMTM0OjkzNiwxMzY6OTUwLDE2MToxMjUzLDE2MjoxMjU0LDE2MzoxMjU4LDE3NzoxMjU1LDE3ODoxMjU2LDE4NjoxMjU3LDIwNDoxMjUxLDIyMjo4NzQs''@;'; put 'put ''MjM4OjEyNTAsMjU1OjEyNTIsNjk6Njk2OX0sVz1mdW5jdGlvbihIKXstMSE9cmUuaW5kZXhPZihIKSYmKGo9WVswXT1IKX0sdGU9ZnVuY3Rpb24oSCl7UT1ILFcoSCl9O2Z1bmN0aW9uIEsoKXt0ZSgxMjAwKSxmdW5jdGlvbiBOKCl7VygxMjUyKX0oKX1mdW5jdGlvbiBKKEgpe2Zvcih2YXIg''@;'; put 'put ''aWU9W10sWD0wLHdlPUgubGVuZ3RoO1g8d2U7KytYKWllW1hdPUguY2hhckNvZGVBdChYKTtyZXR1cm4gaWV9dmFyIGNlPWZ1bmN0aW9uKEgpe3ZhciBpZT1ILmNoYXJDb2RlQXQoMCksWD1ILmNoYXJDb2RlQXQoMSk7cmV0dXJuIDI1NT09aWUmJjI1ND09WD9mdW5jdGlvbiBzZShIKXtmb3Io''@;'; put 'put ''dmFyIGllPVtdLFg9MDtYPEgubGVuZ3RoPj4xOysrWClpZVtYXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEguY2hhckNvZGVBdCgyKlgpKyhILmNoYXJDb2RlQXQoMipYKzEpPDw4KSk7cmV0dXJuIGllLmpvaW4oIiIpfShILnNsaWNlKDIpKToyNTQ9PWllJiYyNTU9PVg/ZnVuY3Rpb24gb2UoSCl7''@;'; put 'put ''Zm9yKHZhciBpZT1bXSxYPTA7WDxILmxlbmd0aD4+MTsrK1gpaWVbWF09U3RyaW5nLmZyb21DaGFyQ29kZShILmNoYXJDb2RlQXQoMipYKzEpKyhILmNoYXJDb2RlQXQoMipYKTw8OCkpO3JldHVybiBpZS5qb2luKCIiKX0oSC5zbGljZSgyKSk6NjUyNzk9PWllP0guc2xpY2UoMSk6SH0sZGU9''@;'; put 'put ''ZnVuY3Rpb24oaWUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGllKX0sdmU9ZnVuY3Rpb24oaWUpe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGllKX07InVuZGVmaW5lZCIhPXR5cGVvZiBjcHRhYmxlJiYodGU9ZnVuY3Rpb24oSCl7UT1ILFcoSCl9LGNlPWZ1bmN0aW9uKEgpe3Jl''@;'; put 'put ''dHVybiAyNTU9PT1ILmNoYXJDb2RlQXQoMCkmJjI1ND09PUguY2hhckNvZGVBdCgxKT9jcHRhYmxlLnV0aWxzLmRlY29kZSgxMjAwLEooSC5zbGljZSgyKSkpOkh9LGRlPWZ1bmN0aW9uKGllKXtyZXR1cm4gMTIwMD09PVE/U3RyaW5nLmZyb21DaGFyQ29kZShpZSk6Y3B0YWJsZS51dGlscy5k''@;'; put 'put ''ZWNvZGUoUSxbMjU1JmllLGllPj44XSlbMF19LHZlPWZ1bmN0aW9uKGllKXtyZXR1cm4gY3B0YWJsZS51dGlscy5kZWNvZGUoaixbaWVdKVswXX0pO3ZhciBpZSxTZT0oaWU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky89''@;'; put 'put ''Iix7ZW5jb2RlOmZ1bmN0aW9uKFgpe2Zvcih2YXIgd2U9IiIseGU9MCxGZT0wLFplPTAsamU9MCxZZT0wLE10PTAseHQ9MCxSdD0wO1J0PFgubGVuZ3RoOylqZT0oeGU9WC5jaGFyQ29kZUF0KFJ0KyspKT4+MixZZT0oMyZ4ZSk8PDR8KEZlPVguY2hhckNvZGVBdChSdCsrKSk+PjQsTXQ9KDE1''@;'; put 'put ''JkZlKTw8MnwoWmU9WC5jaGFyQ29kZUF0KFJ0KyspKT4+Nix4dD02MyZaZSxpc05hTihGZSk/TXQ9eHQ9NjQ6aXNOYU4oWmUpJiYoeHQ9NjQpLHdlKz1pZS5jaGFyQXQoamUpK2llLmNoYXJBdChZZSkraWUuY2hhckF0KE10KStpZS5jaGFyQXQoeHQpO3JldHVybiB3ZX0sZGVjb2RlOmZ1bmN0''@;'; put 'put ''aW9uKHdlKXt2YXIgeGU9IiIsWWU9MCxNdD0wLHh0PTAsUnQ9MDt3ZT13ZS5yZXBsYWNlKC9bXlx3XCtcL1w9XS9nLCIiKTtmb3IodmFyIFV0PTA7VXQ8d2UubGVuZ3RoOylZZT1pZS5pbmRleE9mKHdlLmNoYXJBdChVdCsrKSksTXQ9aWUuaW5kZXhPZih3ZS5jaGFyQXQoVXQrKykpLHhlKz1T''@;'; put 'put ''dHJpbmcuZnJvbUNoYXJDb2RlKFllPDwyfE10Pj40KSw2NCE9PSh4dD1pZS5pbmRleE9mKHdlLmNoYXJBdChVdCsrKSkpJiYoeGUrPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1Jk10KTw8NHx4dD4+MikpLDY0IT09KFJ0PWllLmluZGV4T2Yod2UuY2hhckF0KFV0KyspKSkmJih4ZSs9U3RyaW5n''@;'; put 'put ''LmZyb21DaGFyQ29kZSgoMyZ4dCk8PDZ8UnQpKTtyZXR1cm4geGV9fSksSWU9InVuZGVmaW5lZCIhPXR5cGVvZiBCdWZmZXImJiJ1bmRlZmluZWQiIT10eXBlb2YgcHJvY2VzcyYmdm9pZCAwIT09cHJvY2Vzcy52ZXJzaW9ucyYmISFwcm9jZXNzLnZlcnNpb25zLm5vZGUsVGU9ZnVuY3Rpb24o''@;'; put 'put ''KXt9O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQnVmZmVyKXt2YXIgTWU9IUJ1ZmZlci5mcm9tO2lmKCFNZSl0cnl7QnVmZmVyLmZyb20oImZvbyIsInV0ZjgiKX1jYXRjaChIKXtNZT0hMH1UZT1NZT9mdW5jdGlvbihILGllKXtyZXR1cm4gaWU/bmV3IEJ1ZmZlcihILGllKTpuZXcgQnVmZmVy''@;'; put 'put ''KEgpfTpCdWZmZXIuZnJvbS5iaW5kKEJ1ZmZlciksQnVmZmVyLmFsbG9jfHwoQnVmZmVyLmFsbG9jPWZ1bmN0aW9uKEgpe3JldHVybiBuZXcgQnVmZmVyKEgpfSksQnVmZmVyLmFsbG9jVW5zYWZlfHwoQnVmZmVyLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKEgpe3JldHVybiBuZXcgQnVmZmVyKEgp''@;'; put 'put ''fSl9ZnVuY3Rpb24gaGUoSCl7cmV0dXJuIEllP0J1ZmZlci5hbGxvYyhIKTpuZXcgQXJyYXkoSCl9ZnVuY3Rpb24gTyhIKXtyZXR1cm4gSWU/QnVmZmVyLmFsbG9jVW5zYWZlKEgpOm5ldyBBcnJheShIKX12YXIgej1mdW5jdGlvbihpZSl7cmV0dXJuIEllP1RlKGllLCJiaW5hcnkiKTppZS5z''@;'; put 'put ''cGxpdCgiIikubWFwKGZ1bmN0aW9uKFgpe3JldHVybiAyNTUmWC5jaGFyQ29kZUF0KDApfSl9O2Z1bmN0aW9uIGVlKEgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQXJyYXlCdWZmZXIpcmV0dXJuIHooSCk7Zm9yKHZhciBpZT1uZXcgQXJyYXlCdWZmZXIoSC5sZW5ndGgpLFg9bmV3IFVpbnQ4''@;'; put 'put ''QXJyYXkoaWUpLHdlPTA7d2UhPUgubGVuZ3RoOysrd2UpWFt3ZV09MjU1JkguY2hhckNvZGVBdCh3ZSk7cmV0dXJuIGllfWZ1bmN0aW9uIG5lKEgpe2lmKEFycmF5LmlzQXJyYXkoSCkpcmV0dXJuIEgubWFwKGZ1bmN0aW9uKHdlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSh3ZSl9KS5q''@;'; put 'put ''b2luKCIiKTtmb3IodmFyIGllPVtdLFg9MDtYPEgubGVuZ3RoOysrWClpZVtYXT1TdHJpbmcuZnJvbUNoYXJDb2RlKEhbWF0pO3JldHVybiBpZS5qb2luKCIiKX1mdW5jdGlvbiBQKEgpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQXJyYXlCdWZmZXIpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBv''@;'; put 'put ''cnRlZCIpO2lmKEggaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gUChuZXcgVWludDhBcnJheShIKSk7Zm9yKHZhciBpZT1uZXcgQXJyYXkoSC5sZW5ndGgpLFg9MDtYPEgubGVuZ3RoOysrWClpZVtYXT1IW1hdO3JldHVybiBpZX12YXIgVj1mdW5jdGlvbihIKXt2YXIgaWU9W107cmV0''@;'; put 'put ''dXJuIEguZm9yRWFjaChmdW5jdGlvbihYKXtBcnJheS5pc0FycmF5KFgpP2llPWllLmNvbmNhdChYKTooInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiZYIGluc3RhbmNlb2YgVWludDhBcnJheXx8InVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmWCBpbnN0YW5jZW9mIEFy''@;'; put 'put ''cmF5QnVmZmVyKSYmKGllPWllLmNvbmNhdChQKFgpKSl9KSxpZX0sVD0vXHUwMDAwL2csUz0vW1x1MDAwMS1cdTAwMDZdL2csRj17fSx5ZT1mdW5jdGlvbihpZSl7ZnVuY3Rpb24gWChycil7Zm9yKHZhciBJcj0iIixacj1yci5sZW5ndGgtMTtacj49MDspSXIrPXJyLmNoYXJBdChaci0tKTty''@;'; put 'put ''ZXR1cm4gSXJ9ZnVuY3Rpb24gd2UocnIsSXIpe2Zvcih2YXIgWnI9IiI7WnIubGVuZ3RoPElyOylacis9cnI7cmV0dXJuIFpyfWZ1bmN0aW9uIHhlKHJyLElyKXt2YXIgWnI9IiIrcnI7cmV0dXJuIFpyLmxlbmd0aD49SXI/WnI6d2UoIjAiLElyLVpyLmxlbmd0aCkrWnJ9ZnVuY3Rpb24gRmUo''@;'; put 'put ''cnIsSXIpe3ZhciBacj0iIitycjtyZXR1cm4gWnIubGVuZ3RoPj1Jcj9acjp3ZSgiICIsSXItWnIubGVuZ3RoKStacn1mdW5jdGlvbiBaZShycixJcil7dmFyIFpyPSIiK3JyO3JldHVybiBaci5sZW5ndGg+PUlyP1pyOlpyK3dlKCIgIixJci1aci5sZW5ndGgpfWllLnZlcnNpb249IjEuMjAy''@;'; put 'put ''MTA3MjYuMSI7dmFyIE10PU1hdGgucG93KDIsMzIpO2Z1bmN0aW9uIHh0KHJyLElyKXtyZXR1cm4gcnI+TXR8fHJyPC1NdD9mdW5jdGlvbiBqZShycixJcil7dmFyIFpyPSIiK01hdGgucm91bmQocnIpO3JldHVybiBaci5sZW5ndGg+PUlyP1pyOndlKCIwIixJci1aci5sZW5ndGgpK1pyfShy''@;'; put 'put ''cixJcik6ZnVuY3Rpb24gWWUocnIsSXIpe3ZhciBacj0iIitycjtyZXR1cm4gWnIubGVuZ3RoPj1Jcj9acjp3ZSgiMCIsSXItWnIubGVuZ3RoKStacn0oTWF0aC5yb3VuZChyciksSXIpfWZ1bmN0aW9uIFJ0KHJyLElyKXtyZXR1cm4gcnIubGVuZ3RoPj03KyhJcj1Jcnx8MCkmJjEwMz09KDMy''@;'; put 'put ''fHJyLmNoYXJDb2RlQXQoSXIpKSYmMTAxPT0oMzJ8cnIuY2hhckNvZGVBdChJcisxKSkmJjExMD09KDMyfHJyLmNoYXJDb2RlQXQoSXIrMikpJiYxMDE9PSgzMnxyci5jaGFyQ29kZUF0KElyKzMpKSYmMTE0PT0oMzJ8cnIuY2hhckNvZGVBdChJcis0KSkmJjk3PT0oMzJ8cnIuY2hhckNvZGVB''@;'; put 'put ''dChJcis1KSkmJjEwOD09KDMyfHJyLmNoYXJDb2RlQXQoSXIrNikpfWZ1bmN0aW9uIFV0KHJyKXtmb3IodmFyIElyPVtdLFpyPU9iamVjdC5rZXlzKHJyKSxxaT0wO3FpIT09WnIubGVuZ3RoOysrcWkpSXJbcnJbWnJbcWldXV09WnJbcWldO3JldHVybiBJcn12YXIgbm49W1siU3VuIiwiU3Vu''@;'; put 'put ''ZGF5Il0sWyJNb24iLCJNb25kYXkiXSxbIlR1ZSIsIlR1ZXNkYXkiXSxbIldlZCIsIldlZG5lc2RheSJdLFsiVGh1IiwiVGh1cnNkYXkiXSxbIkZyaSIsIkZyaWRheSJdLFsiU2F0IiwiU2F0dXJkYXkiXV0sQ249W1siSiIsIkphbiIsIkphbnVhcnkiXSxbIkYiLCJGZWIiLCJGZWJydWFyeSJd''@;'; put 'put ''LFsiTSIsIk1hciIsIk1hcmNoIl0sWyJBIiwiQXByIiwiQXByaWwiXSxbIk0iLCJNYXkiLCJNYXkiXSxbIkoiLCJKdW4iLCJKdW5lIl0sWyJKIiwiSnVsIiwiSnVseSJdLFsiQSIsIkF1ZyIsIkF1Z3VzdCJdLFsiUyIsIlNlcCIsIlNlcHRlbWJlciJdLFsiTyIsIk9jdCIsIk9jdG9iZXIiXSxb''@;'; put 'put ''Ik4iLCJOb3YiLCJOb3ZlbWJlciJdLFsiRCIsIkRlYyIsIkRlY2VtYmVyIl1dO2Z1bmN0aW9uIER0KHJyKXtyclswXT0iR2VuZXJhbCIscnJbMV09IjAiLHJyWzJdPSIwLjAwIixyclszXT0iIywjIzAiLHJyWzRdPSIjLCMjMC4wMCIscnJbOV09IjAlIixyclsxMF09IjAuMDAlIixyclsxMV09''@;'; put 'put ''IjAuMDBFKzAwIixyclsxMl09IiMgPy8/IixyclsxM109IiMgPz8vPz8iLHJyWzE0XT0ibS9kL3l5IixyclsxNV09ImQtbW1tLXl5IixyclsxNl09ImQtbW1tIixyclsxN109Im1tbS15eSIscnJbMThdPSJoOm1tIEFNL1BNIixyclsxOV09Img6bW06c3MgQU0vUE0iLHJyWzIwXT0iaDptbSIs''@;'; put 'put ''cnJbMjFdPSJoOm1tOnNzIixyclsyMl09Im0vZC95eSBoOm1tIixyclszN109IiMsIyMwIDsoIywjIzApIixyclszOF09IiMsIyMwIDtbUmVkXSgjLCMjMCkiLHJyWzM5XT0iIywjIzAuMDA7KCMsIyMwLjAwKSIscnJbNDBdPSIjLCMjMC4wMDtbUmVkXSgjLCMjMC4wMCkiLHJyWzQ1XT0ibW06''@;'; put 'put ''c3MiLHJyWzQ2XT0iW2hdOm1tOnNzIixycls0N109Im1tc3MuMCIscnJbNDhdPSIjIzAuMEUrMCIscnJbNDldPSJAIixycls1Nl09JyJcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4ICJoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiAiJyxOcihycil9dmFyIHp0PXt9O0R0KHp0KTt2YXIg''@;'; put 'put ''UG49W10sVG49MDtmb3IoVG49NTtUbjw9ODsrK1RuKVBuW1RuXT0zMitUbjtmb3IoVG49MjM7VG48PTI2OysrVG4pUG5bVG5dPTA7Zm9yKFRuPTI3O1RuPD0zMTsrK1RuKVBuW1RuXT0xNDtmb3IoVG49NTA7VG48PTU4OysrVG4pUG5bVG5dPTE0O2ZvcihUbj01OTtUbjw9NjI7KytUbilQbltU''@;'; put 'put ''bl09VG4tNTg7Zm9yKFRuPTY3O1RuPD02ODsrK1RuKVBuW1RuXT1Ubi01ODtmb3IoVG49NzI7VG48PTc1OysrVG4pUG5bVG5dPVRuLTU4O2ZvcihUbj02NztUbjw9Njg7KytUbilQbltUbl09VG4tNTc7Zm9yKFRuPTc2O1RuPD03ODsrK1RuKVBuW1RuXT1Ubi01Njtmb3IoVG49Nzk7VG48PTgx''@;'; put 'put ''OysrVG4pUG5bVG5dPVRuLTM0O3ZhciBPbj1bXTtmdW5jdGlvbiBZbihycixJcixacil7Zm9yKHZhciBxaT1ycjwwPy0xOjEscmk9cnIqcWkscjA9MCxwaT0xLGUwPTAsT289MSxrMD0wLHBvPTAscDA9TWF0aC5mbG9vcihyaSk7azA8SXImJihlMD0ocDA9TWF0aC5mbG9vcihyaSkpKnBpK3Iw''@;'; put 'put ''LHBvPXAwKmswK09vLCEocmktcDA8NWUtOCkpOylyaT0xLyhyaS1wMCkscjA9cGkscGk9ZTAsT289azAsazA9cG87aWYocG8+SXImJihrMD5Jcj8ocG89T28sZTA9cjApOihwbz1rMCxlMD1waSkpLCFacilyZXR1cm5bMCxxaSplMCxwb107dmFyIFFsPU1hdGguZmxvb3IocWkqZTAvcG8pO3Jl''@;'; put 'put ''dHVybltRbCxxaSplMC1RbCpwbyxwb119ZnVuY3Rpb24gTXIocnIsSXIsWnIpe2lmKHJyPjI5NTg0NjV8fHJyPDApcmV0dXJuIG51bGw7dmFyIHFpPTB8cnIscmk9TWF0aC5mbG9vcig4NjQwMCoocnItcWkpKSxyMD0wLHBpPVtdLGUwPXtEOnFpLFQ6cmksdTo4NjQwMCoocnItcWkpLXJpLHk6''@;'; put 'put ''MCxtOjAsZDowLEg6MCxNOjAsUzowLHE6MH07aWYoTWF0aC5hYnMoZTAudSk8MWUtNiYmKGUwLnU9MCksSXImJklyLmRhdGUxOTA0JiYocWkrPTE0NjIpLGUwLnU+Ljk5OTkmJihlMC51PTAsODY0MDA9PSsrcmkmJihlMC5UPXJpPTAsKytxaSwrK2UwLkQpKSw2MD09PXFpKXBpPVpyP1sxMzE3''@;'; put 'put ''LDEwLDI5XTpbMTkwMCwyLDI5XSxyMD0zO2Vsc2UgaWYoMD09PXFpKXBpPVpyP1sxMzE3LDgsMjldOlsxOTAwLDEsMF0scjA9NjtlbHNle3FpPjYwJiYtLXFpO3ZhciBPbz1uZXcgRGF0ZSgxOTAwLDAsMSk7T28uc2V0RGF0ZShPby5nZXREYXRlKCkrcWktMSkscGk9W09vLmdldEZ1bGxZZWFy''@;'; put 'put ''KCksT28uZ2V0TW9udGgoKSsxLE9vLmdldERhdGUoKV0scjA9T28uZ2V0RGF5KCkscWk8NjAmJihyMD0ocjArNiklNyksWnImJihyMD1mdW5jdGlvbiBvYShycixJcil7SXJbMF0tPTU4MTt2YXIgWnI9cnIuZ2V0RGF5KCk7cmV0dXJuIHJyPDYwJiYoWnI9KFpyKzYpJTcpLFpyfShPbyxwaSkp''@;'; put 'put ''fXJldHVybiBlMC55PXBpWzBdLGUwLm09cGlbMV0sZTAuZD1waVsyXSxlMC5TPXJpJTYwLHJpPU1hdGguZmxvb3IocmkvNjApLGUwLk09cmklNjAscmk9TWF0aC5mbG9vcihyaS82MCksZTAuSD1yaSxlMC5xPXIwLGUwfU9uWzVdPU9uWzYzXT0nIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScs''@;'; put 'put ''T25bNl09T25bNjRdPSciJCIjLCMjMF8pO1tSZWRdXFwoIiQiIywjIzBcXCknLE9uWzddPU9uWzY1XT0nIiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsT25bOF09T25bNjZdPSciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLE9uWzQxXT0nXygqICMsIyMwXyk7''@;'; put 'put ''XygqIFxcKCMsIyMwXFwpO18oKiAiLSJfKTtfKEBfKScsT25bNDJdPSdfKCIkIiogIywjIzBfKTtfKCIkIiogXFwoIywjIzBcXCk7XygiJCIqICItIl8pO18oQF8pJyxPbls0M109J18oKiAjLCMjMC4wMF8pO18oKiBcXCgjLCMjMC4wMFxcKTtfKCogIi0iPz9fKTtfKEBfKScsT25bNDRdPSdf''@;'; put 'put ''KCIkIiogIywjIzAuMDBfKTtfKCIkIiogXFwoIywjIzAuMDBcXCk7XygiJCIqICItIj8/Xyk7XyhAXyknLGllLnBhcnNlX2RhdGVfY29kZT1Ncjt2YXIgYWk9bmV3IERhdGUoMTg5OSwxMSwzMSwwLDAsMCkseXI9YWkuZ2V0VGltZSgpLGFyPW5ldyBEYXRlKDE5MDAsMiwxLDAsMCwwKTtmdW5j''@;'; put 'put ''dGlvbiBHcihycixJcil7dmFyIFpyPXJyLmdldFRpbWUoKTtyZXR1cm4gSXI/WnItPTEyNjIzMDRlNTpycj49YXImJihacis9ODY0ZTUpLChaci0oeXIrNmU0Kihyci5nZXRUaW1lem9uZU9mZnNldCgpLWFpLmdldFRpbWV6b25lT2Zmc2V0KCkpKSkvODY0ZTV9dmFyIHpyPSIiLHFyPXsiZW4t''@;'; put 'put ''dXMiOnt5OiJ5IixkOiJkIiwiLCI6IiwiLCIuIjoiLiIsZGF0ZToiXy8ifSwiZGUtZGUiOnt5OiJqIixkOiJ0IiwiLCI6Ii4iLCIuIjoiLCIsZGF0ZToiXy4ifSwiaXQtaXQiOnt5OiJ5IixkOiJkIiwiLCI6Ii4iLCIuIjoiLCIsZGF0ZToiXy8ifX0sb2k9cXJbenIudG9Mb3dlckNhc2UoKV18''@;'; put 'put ''fHFyWyJlbi11cyJdLGNyPVV0KG9pKSxkaT0iJCIsdjA9IiIsQTA9IiwiLGJpPSIuIixZcj0iLyI7ZnVuY3Rpb24gTnIocnIpe3N3aXRjaCgoenJ8fCIiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInpoLXR3IjpyclsyN109IlskLTQwNF1lL20vZCIscnJbMjhdPSdbJC00MDRdZSJcdTVlNzQibSJc''@;'; put 'put ''dTY3MDgiZCJcdTY1ZTUiJyxyclsyOV09J1skLTQwNF1lIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzMwXT0nbSIvImQiLyJ5eScscnJbMzFdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzMyXT0naGgiXHU2NjQyIm1tIlx1NTIwNiInLHJyWzMzXT0naGgiXHU2''@;'; put 'put ''NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxyclszNF09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiInLHJyWzM1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJcdTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzM2XT0iWyQtNDA0XWUv''@;'; put 'put ''bS9kIixycls1MF09IlskLTQwNF1lL20vZCIscnJbNTFdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxycls1Ml09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgiXHU2NjQyIm1tIlx1NTIwNiInLHJyWzUzXT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoaCJc''@;'; put 'put ''dTY2NDIibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzU0XT0nWyQtNDA0XWUiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1IicscnJbNTVdPSdcdTRlMGFcdTUzNDgvXHU0ZTBiXHU1MzQ4IGhoIlx1NjY0MiJtbSJcdTUyMDYiJyxycls1Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaGgi''@;'; put 'put ''XHU2NjQyIm1tIlx1NTIwNiJzcyJcdTc5ZDIiJyxycls1N109IlskLTQwNF1lL20vZCIscnJbNThdPSdbJC00MDRdZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJzticmVhaztjYXNlInpoLWNuIjpyclsyN109J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbMjhdPSdtIlx1NjcwOCJkIlx1''@;'; put 'put ''NjVlNSInLHJyWzI5XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszMF09J20iLSJkIi0ieXknLHJyWzMxXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszMl09J2giXHU2NWY2Im1tIlx1NTIwNiInLHJyWzMzXT0naCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLHJy''@;'; put 'put ''WzM0XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBoIlx1NjVmNiJtbSJcdTUyMDYiJyxyclszNV09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzM2XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1MF09J3l5eXkiXHU1''@;'; put 'put ''ZTc0Im0iXHU2NzA4IicscnJbNTFdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzUyXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1M109J20iXHU2NzA4ImQiXHU2NWU1IicscnJbNTRdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzU1XT0nXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCBo''@;'; put 'put ''Ilx1NjVmNiJtbSJcdTUyMDYiJyxycls1Nl09J1x1NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDggaCJcdTY1ZjYibW0iXHU1MjA2InNzIlx1NzlkMiInLHJyWzU3XT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1OF09J20iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJqYS1qcCI6cnJb''@;'; put 'put ''MjddPSdbJC00MTFdZ2UiLiJtIi4iZCcscnJbMjhdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJcdTY3MDgiZCJcdTY1ZTUiJyxyclsyOV09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzMwXT0nbSIvImQiLyJ5eScscnJbMzFdPSd5eXl5Ilx1NWU3NCJtIlx1Njcw''@;'; put 'put ''OCJkIlx1NjVlNSInLHJyWzMyXT0naCJcdTY2NDIibW0iXHU1MjA2IicscnJbMzNdPSdoIlx1NjY0MiJtbSJcdTUyMDYic3MiXHU3OWQyIicscnJbMzRdPSd5eXl5Ilx1NWU3NCJtIlx1NjcwOCInLHJyWzM1XT0nbSJcdTY3MDgiZCJcdTY1ZTUiJyxyclszNl09J1skLTQxMV1nZSIuIm0iLiJk''@;'; put 'put ''Jyxycls1MF09J1skLTQxMV1nZSIuIm0iLiJkJyxycls1MV09J1skLTQxMV1nZ2dlIlx1NWU3NCJtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzUyXT0neXl5eSJcdTVlNzQibSJcdTY3MDgiJyxycls1M109J20iXHU2NzA4ImQiXHU2NWU1IicscnJbNTRdPSdbJC00MTFdZ2dnZSJcdTVlNzQibSJc''@;'; put 'put ''dTY3MDgiZCJcdTY1ZTUiJyxycls1NV09J3l5eXkiXHU1ZTc0Im0iXHU2NzA4IicscnJbNTZdPSdtIlx1NjcwOCJkIlx1NjVlNSInLHJyWzU3XT0nWyQtNDExXWdlIi4ibSIuImQnLHJyWzU4XT0nWyQtNDExXWdnZ2UiXHU1ZTc0Im0iXHU2NzA4ImQiXHU2NWU1Iic7YnJlYWs7Y2FzZSJrby1r''@;'; put 'put ''ciI6cnJbMjddPSd5eXl5Ilx1NWU3NCIgbW0iXHU2NzA4IiBkZCJcdTY1ZTUiJyxyclsyOF09Im1tLWRkIixyclsyOV09Im1tLWRkIixyclszMF09Im1tLWRkLXl5IixyclszMV09J3l5eXkiXHViMTQ0IiBtbSJcdWM2ZDQiIGRkIlx1Yzc3YyInLHJyWzMyXT0naCJcdWMyZGMiIG1tIlx1YmQ4''@;'; put 'put ''NCInLHJyWzMzXT0naCJcdWMyZGMiIG1tIlx1YmQ4NCIgc3MiXHVjZDA4IicscnJbMzRdPSJ5eXl5LW1tLWRkIixyclszNV09Inl5eXktbW0tZGQiLHJyWzM2XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicscnJbNTBdPSd5eXl5Ilx1NWU3NCIgbW0iXHU2NzA4IiBkZCJc''@;'; put 'put ''dTY1ZTUiJyxycls1MV09Im1tLWRkIixycls1Ml09Inl5eXktbW0tZGQiLHJyWzUzXT0ieXl5eS1tbS1kZCIscnJbNTRdPSJtbS1kZCIscnJbNTVdPSJ5eXl5LW1tLWRkIixycls1Nl09Inl5eXktbW0tZGQiLHJyWzU3XT0neXl5eSJcdTVlNzQiIG1tIlx1NjcwOCIgZGQiXHU2NWU1IicscnJb''@;'; put 'put ''NThdPSJtbS1kZCI7YnJlYWs7Y2FzZSJ0aC10aCI6cnJbNTldPScidCIwJyxycls2MF09JyJ0IjAuMDAnLHJyWzYxXT0nInQiIywjIzAnLHJyWzYyXT0nInQiIywjIzAuMDAnLHJyWzY3XT0idDAlIixycls2OF09InQwLjAwJSIscnJbNjldPSJ0IyA/Lz8iLHJyWzcwXT0idCMgPz8vPz8iLHJy''@;'; put 'put ''WzcxXT0nXHUwZTI3Ii8iXHUwZTE0Ii8iXHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiJyxycls3Ml09J1x1MGUyNyItIlx1MGUxNFx1MGUxNFx1MGUxNCItIlx1MGUxYlx1MGUxYicscnJbNzNdPSdcdTBlMjciLSJcdTBlMTRcdTBlMTRcdTBlMTQnLHJyWzc0XT0nXHUwZTE0XHUwZTE0XHUwZTE0''@;'; put 'put ''Ii0iXHUwZTFiXHUwZTFiJyxycls3NV09J1x1MGUwYSI6Ilx1MGUxOVx1MGUxOScscnJbNzZdPSdcdTBlMGEiOiJcdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLHJyWzc3XT0nXHUwZTI3Ii8iXHUwZTE0Ii8iXHUwZTFiXHUwZTFiXHUwZTFiXHUwZTFiIFx1MGUwYSI6Ilx1MGUxOVx1MGUx''@;'; put 'put ''OScscnJbNzhdPSdcdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLHJyWzc5XT0nW1x1MGUwYV1cdTBlMTlcdTBlMTkiOiJcdTBlMTdcdTBlMTcnLHJyWzgwXT0nXHUwZTE5XHUwZTE5IjoiXHUwZTE3XHUwZTE3LjAnLHJyWzgxXT0iZC9tL2JiIn19aWUuX2dlbmVyYWxfaW50PWZ1bmN0aW9u''@;'; put 'put ''IE4wKHJyKXtyZXR1cm4gcnIudG9TdHJpbmcoMTApfTt2YXIgdDA9ZnVuY3Rpb24oKXt2YXIgSXI9Lyg/OlwuMCp8KFwuXGQqWzEtOV0pMCspJC87ZnVuY3Rpb24gWnIoazApe3JldHVybi0xPT1rMC5pbmRleE9mKCIuIik/azA6azAucmVwbGFjZShJciwiJDEiKX12YXIgcWk9Lyg/OlwuMCp8''@;'; put 'put ''KFwuXGQqWzEtOV0pMCspW0VlXS8scmk9LyhFWystXSkoXGQpJC87cmV0dXJuIGZ1bmN0aW9uKHBvKXt2YXIgcDA9ZnVuY3Rpb24gT28oazApe3ZhciBwMCxwbz1NYXRoLmZsb29yKE1hdGgubG9nKE1hdGguYWJzKGswKSkqTWF0aC5MT0cxMEUpO3JldHVybiBwMD1wbz49LTQmJnBvPD0tMT9r''@;'; put 'put ''MC50b1ByZWNpc2lvbigxMCtwbyk6TWF0aC5hYnMocG8pPD05P2Z1bmN0aW9uIHBpKGswKXt2YXIgcG89azA8MD8xMjoxMSxwMD1acihrMC50b0ZpeGVkKDEyKSk7cmV0dXJuIHAwLmxlbmd0aDw9cG98fChwMD1rMC50b1ByZWNpc2lvbigxMCkpLmxlbmd0aDw9cG8/cDA6azAudG9FeHBvbmVu''@;'; put 'put ''dGlhbCg1KX0oazApOjEwPT09cG8/azAudG9GaXhlZCgxMCkuc3Vic3RyKDAsMTIpOmZ1bmN0aW9uIGUwKGswKXt2YXIgcG89WnIoazAudG9GaXhlZCgxMSkpO3JldHVybiBwby5sZW5ndGg+KGswPDA/MTI6MTEpfHwiMCI9PT1wb3x8Ii0wIj09PXBvP2swLnRvUHJlY2lzaW9uKDYpOnBvfShr''@;'; put 'put ''MCksWnIoZnVuY3Rpb24gcjAoazApe3JldHVybi0xPT1rMC5pbmRleE9mKCJFIik/azA6azAucmVwbGFjZShxaSwiJDFFIikucmVwbGFjZShyaSwiJDEwJDIiKX0ocDAudG9VcHBlckNhc2UoKSkpfShwbyk7cmV0dXJuIiwiPT09QTAmJiIuIj09PWJpP3AwOnAwLnJlcGxhY2UoL1ssLl0vZyxm''@;'; put 'put ''dW5jdGlvbihRbCl7cmV0dXJuIiwiPT1RbD9BMDpiaX0pfX0oKTtmdW5jdGlvbiBpbyhycixJcil7c3dpdGNoKHR5cGVvZiBycil7Y2FzZSJzdHJpbmciOnJldHVybiBycjtjYXNlImJvb2xlYW4iOnJldHVybiBycj8iVFJVRSI6IkZBTFNFIjtjYXNlIm51bWJlciI6cmV0dXJuKDB8cnIpPT09''@;'; put 'put ''cnI/cnIudG9TdHJpbmcoMTApOnQwKHJyKTtjYXNlInVuZGVmaW5lZCI6cmV0dXJuIiI7Y2FzZSJvYmplY3QiOmlmKG51bGw9PXJyKXJldHVybiIiO2lmKHJyIGluc3RhbmNlb2YgRGF0ZSlyZXR1cm4gTWMoMTQsR3IocnIsSXImJklyLmRhdGUxOTA0KSxJcil9dGhyb3cgbmV3IEVycm9yKCJ1''@;'; put 'put ''bnN1cHBvcnRlZCB2YWx1ZSBpbiBHZW5lcmFsIGZvcm1hdDogIitycil9aWUuX2dlbmVyYWxfbnVtPXQwLGllLl9nZW5lcmFsPWlvO3ZhciAkMD0iXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5Ii5zcGxpdCgiIik7ZnVuY3Rpb24g''@;'; put 'put ''VmEocnIsSXIsWnIscWkpe3ZhciBPbyxyaT0iIixyMD0wLHBpPTAsZTA9WnIueSxrMD0wO3N3aXRjaChycil7Y2FzZSA5ODplMD1aci55KzU0MztjYXNlIDEyMTpzd2l0Y2goSXIubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOk9vPWUwJTEwMCxrMD0yO2JyZWFrO2RlZmF1bHQ6T289ZTAlMWU0LGsw''@;'; put 'put ''PTR9YnJlYWs7Y2FzZSAxMDk6c3dpdGNoKElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1aci5tLGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIENuW1pyLm0tMV1bMV07Y2FzZSA1OnJldHVybiBDbltaci5tLTFdWzBdO2RlZmF1bHQ6cmV0dXJuIENuW1pyLm0tMV1bMl19YnJl''@;'; put 'put ''YWs7Y2FzZSAxMDA6c3dpdGNoKElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1aci5kLGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM6cmV0dXJuIG5uW1pyLnFdWzBdO2RlZmF1bHQ6cmV0dXJuIG5uW1pyLnFdWzFdfWJyZWFrO2Nhc2UgMTA0OnN3aXRjaChJci5sZW5ndGgpe2Nhc2UgMTpj''@;'; put 'put ''YXNlIDI6T289MSsoWnIuSCsxMSklMTIsazA9SXIubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGhvdXIgZm9ybWF0OiAiK0lyfWJyZWFrO2Nhc2UgNzI6c3dpdGNoKElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1aci5ILGswPUlyLmxlbmd0aDticmVhaztkZWZhdWx0OnRocm93''@;'; put 'put ''ImJhZCBob3VyIGZvcm1hdDogIitJcn1icmVhaztjYXNlIDc3OnN3aXRjaChJci5sZW5ndGgpe2Nhc2UgMTpjYXNlIDI6T289WnIuTSxrMD1Jci5sZW5ndGg7YnJlYWs7ZGVmYXVsdDp0aHJvdyJiYWQgbWludXRlIGZvcm1hdDogIitJcn1icmVhaztjYXNlIDExNTppZigicyIhPUlyJiYic3Mi''@;'; put 'put ''IT1JciYmIi4wIiE9SXImJiIuMDAiIT1JciYmIi4wMDAiIT1Jcil0aHJvdyJiYWQgc2Vjb25kIGZvcm1hdDogIitJcjtyZXR1cm4gMCE9PVpyLnV8fCJzIiE9SXImJiJzcyIhPUlyPyhwaT1xaT49Mj8zPT09cWk/MWUzOjEwMDoxPT09cWk/MTA6MSwocjA9TWF0aC5yb3VuZChwaSooWnIuUyta''@;'; put 'put ''ci51KSkpPj02MCpwaSYmKHIwPTApLCJzIj09PUlyPzA9PT1yMD8iMCI6IiIrcjAvcGk6KHJpPXhlKHIwLDIrcWkpLCJzcyI9PT1Jcj9yaS5zdWJzdHIoMCwyKToiLiIrcmkuc3Vic3RyKDIsSXIubGVuZ3RoLTEpKSk6eGUoWnIuUyxJci5sZW5ndGgpO2Nhc2UgOTA6c3dpdGNoKElyKXtjYXNl''@;'; put 'put ''IltoXSI6Y2FzZSJbaGhdIjpjYXNlIltcdTBlMGFdIjpjYXNlIltcdTBlMGFcdTBlMGFdIjpPbz0yNCpaci5EK1pyLkg7YnJlYWs7Y2FzZSJbbV0iOmNhc2UiW21tXSI6Y2FzZSJbXHUwZTE5XSI6Y2FzZSJbXHUwZTE5XHUwZTE5XSI6T289NjAqKDI0KlpyLkQrWnIuSCkrWnIuTTticmVhaztj''@;'; put 'put ''YXNlIltzXSI6Y2FzZSJbc3NdIjpjYXNlIltcdTBlMTddIjpjYXNlIltcdTBlMTdcdTBlMTddIjpPbz02MCooNjAqKDI0KlpyLkQrWnIuSCkrWnIuTSkrTWF0aC5yb3VuZChaci5TK1pyLnUpO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGFic3RpbWUgZm9ybWF0OiAiK0lyfWswPTM9PT1Jci5s''@;'; put 'put ''ZW5ndGg/MToyO2JyZWFrO2Nhc2UgMTAxOk9vPWUwLGswPTE7YnJlYWs7Y2FzZSAzNjIzOk9vPVpyLmQsazA9SXIubGVuZ3RoO2JyZWFrO2Nhc2UgMzYwNDpzd2l0Y2goSXIubGVuZ3RoKXtjYXNlIDE6Y2FzZSAyOk9vPVpyLm0sazA9SXIubGVuZ3RoO2JyZWFrO2Nhc2UgMzpyZXR1cm4gQ25b''@;'; put 'put ''WnIubS0xXVsxXTtjYXNlIDU6cmV0dXJuIENuW1pyLm0tMV1bMF07ZGVmYXVsdDpyZXR1cm4gQ25bWnIubS0xXVsyXX1icmVhaztjYXNlIDM2MTE6c3dpdGNoKGUwPVpyLnkrNTQzLElyLmxlbmd0aCl7Y2FzZSAxOmNhc2UgMjpPbz1lMCUxMDAsazA9MjticmVhaztkZWZhdWx0Ok9vPWUwJTFl''@;'; put 'put ''NCxrMD00fWJyZWFrO2Nhc2UgMzU5NDpPbz1aci5ILGswPUlyLmxlbmd0aDticmVhaztjYXNlIDM2MDk6T289WnIuTSxrMD1Jci5sZW5ndGg7YnJlYWs7Y2FzZSAzNjA3Ok9vPVpyLlMsazA9SXIubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3cgcnIudG9TdHJpbmcoMTYpfXZhciBwbz1rMD4w''@;'; put 'put ''P3hlKE9vLGswKToiIjtyZXR1cm4oOTA9PXJyP0lyLmNoYXJDb2RlQXQoMSk8MzU4NDpycjwzNTg0KT9wbzpwby5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKHAwKXtyZXR1cm4gJDBbK3AwXX0pfWZ1bmN0aW9uIGpvKHJyKXtpZihyci5sZW5ndGg8PTMpcmV0dXJuIHJyO2Zvcih2YXIgWnI9''@;'; put 'put ''cnIubGVuZ3RoJTMscWk9cnIuc3Vic3RyKDAsWnIpO1pyIT1yci5sZW5ndGg7WnIrPTMpcWkrPShxaS5sZW5ndGg+MD8iLCI6IiIpK3JyLnN1YnN0cihaciwzKTtyZXR1cm4gcWl9dmFyIHdhPWZ1bmN0aW9uKCl7dmFyIElyPS8lL2c7ZnVuY3Rpb24gcmkoZHIsV24pe3ZhciAkbixicj1kci5p''@;'; put 'put ''bmRleE9mKCJFIiktZHIuaW5kZXhPZigiLiIpLTE7aWYoZHIubWF0Y2goL14jKzAuMEVcKzAkLykpe2lmKDA9PVduKXJldHVybiIwLjBFKzAiO2lmKFduPDApcmV0dXJuIi0iK3JpKGRyLC1Xbik7dmFyIFdyPWRyLmluZGV4T2YoIi4iKTstMT09PVdyJiYoV3I9ZHIuaW5kZXhPZigiRSIpKTt2''@;'; put 'put ''YXIgdWk9TWF0aC5mbG9vcihNYXRoLmxvZyhXbikqTWF0aC5MT0cxMEUpJVdyO2lmKHVpPDAmJih1aSs9V3IpLC0xPT09KCRuPShXbi9NYXRoLnBvdygxMCx1aSkpLnRvUHJlY2lzaW9uKGJyKzErKFdyK3VpKSVXcikpLmluZGV4T2YoImUiKSl7dmFyIElpPU1hdGguZmxvb3IoTWF0aC5sb2co''@;'; put 'put ''V24pKk1hdGguTE9HMTBFKTtmb3IoLTE9PT0kbi5pbmRleE9mKCIuIik/JG49JG4uY2hhckF0KDApKyIuIiskbi5zdWJzdHIoMSkrIkUrIisoSWktJG4ubGVuZ3RoK3VpKTokbis9IkUrIisoSWktdWkpOyIwLiI9PT0kbi5zdWJzdHIoMCwyKTspJG49KCRuPSRuLmNoYXJBdCgwKSskbi5zdWJz''@;'; put 'put ''dHIoMixXcikrIi4iKyRuLnN1YnN0cigyK1dyKSkucmVwbGFjZSgvXjArKFsxLTldKS8sIiQxIikucmVwbGFjZSgvXjArXC4vLCIwLiIpOyRuPSRuLnJlcGxhY2UoL1wrLS8sIi0iKX0kbj0kbi5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKHUwLHppLEowLEkw''@;'; put 'put ''KXtyZXR1cm4gemkrSjArSTAuc3Vic3RyKDAsKFdyK3VpKSVXcikrIi4iK0kwLnN1YnN0cih1aSkrIkUifSl9ZWxzZSAkbj1Xbi50b0V4cG9uZW50aWFsKGJyKTtyZXR1cm4gZHIubWF0Y2goL0VcKzAwJC8pJiYkbi5tYXRjaCgvZVsrLV1cZCQvKSYmKCRuPSRuLnN1YnN0cigwLCRuLmxlbmd0''@;'; put 'put ''aC0xKSsiMCIrJG4uY2hhckF0KCRuLmxlbmd0aC0xKSksZHIubWF0Y2goL0VcLS8pJiYkbi5tYXRjaCgvZVwrLykmJigkbj0kbi5yZXBsYWNlKC9lXCsvLCJlIikpLCRuLnJlcGxhY2UoImUiLCJFIil9dmFyIHIwPS8jIChcPyspKCA/KVwvKCA/KShcZCspLyxPbz0vXiMqMCpcLihbMCNdKykv''@;'; put 'put ''LGswPS9cKS4qWzAjXS8scG89L1woIyMjXCkgIyMjXFw/LSMjIyMvO2Z1bmN0aW9uIHAwKGRyKXtmb3IodmFyICRuLFduPSIiLGJyPTA7YnIhPWRyLmxlbmd0aDsrK2JyKXN3aXRjaCgkbj1kci5jaGFyQ29kZUF0KGJyKSl7Y2FzZSAzNTpicmVhaztjYXNlIDYzOlduKz0iICI7YnJlYWs7Y2Fz''@;'; put 'put ''ZSA0ODpXbis9IjAiO2JyZWFrO2RlZmF1bHQ6V24rPVN0cmluZy5mcm9tQ2hhckNvZGUoJG4pfXJldHVybiBXbn1mdW5jdGlvbiBRbChkcixXbil7dmFyICRuPU1hdGgucG93KDEwLFduKTtyZXR1cm4iIitNYXRoLnJvdW5kKGRyKiRuKS8kbn1mdW5jdGlvbiBBbChkcixXbil7aWYoV24+MTEp''@;'; put 'put ''cmV0dXJuIEFsKGRyLDExKSpNYXRoLnBvdygxMCxXbi0xMSk7dmFyICRuPWRyLU1hdGguZmxvb3IoZHIpLGJyPU1hdGgucG93KDEwLFduKTtyZXR1cm4gV248KCIiK01hdGgucm91bmQoJG4qYnIpKS5sZW5ndGg/MDpNYXRoLnJvdW5kKCRuKmJyKX1mdW5jdGlvbiBLcyhkcixXbiwkbil7aWYo''@;'; put 'put ''NDA9PT1kci5jaGFyQ29kZUF0KDApJiYhV24ubWF0Y2goazApKXt2YXIgYnI9V24ucmVwbGFjZSgvXCggKi8sIiIpLnJlcGxhY2UoLyBcKS8sIiIpLnJlcGxhY2UoL1wpLywiIik7cmV0dXJuICRuPj0wP0tzKCJuIixiciwkbik6IigiK0tzKCJuIixiciwtJG4pKyIpIn1pZig0ND09PVduLmNo''@;'; put 'put ''YXJDb2RlQXQoV24ubGVuZ3RoLTEpKXJldHVybiBmdW5jdGlvbiBxaShkcixXbiwkbil7Zm9yKHZhciBicj1Xbi5sZW5ndGgtMTs0ND09PVduLmNoYXJDb2RlQXQoYnItMSk7KS0tYnI7cmV0dXJuIHdhKGRyLFduLnN1YnN0cigwLGJyKSwkbi9NYXRoLnBvdygxMCwzKihXbi5sZW5ndGgtYnIp''@;'; put 'put ''KSl9KGRyLFduLCRuKTtpZigtMSE9PVduLmluZGV4T2YoIiUiKSlyZXR1cm4gZnVuY3Rpb24gWnIoZHIsV24sJG4pe3ZhciBicj1Xbi5yZXBsYWNlKElyLCIiKSxXcj1Xbi5sZW5ndGgtYnIubGVuZ3RoO3JldHVybiB3YShkcixiciwkbipNYXRoLnBvdygxMCwyKldyKSkrd2UoIiUiLFdyKX0o''@;'; put 'put ''ZHIsV24sJG4pO2lmKC0xIT09V24uaW5kZXhPZigiRSIpKXJldHVybiByaShXbiwkbik7aWYoMzY9PT1Xbi5jaGFyQ29kZUF0KDApKXJldHVybiIkIitLcyhkcixXbi5zdWJzdHIoIiAiPT1Xbi5jaGFyQXQoMSk/MjoxKSwkbik7dmFyIFdyLHVpLElpLHUwLHppPU1hdGguYWJzKCRuKSxKMD0k''@;'; put 'put ''bjwwPyItIjoiIjtpZihXbi5tYXRjaCgvXjAwKyQvKSlyZXR1cm4gSjAreHQoemksV24ubGVuZ3RoKTtpZihXbi5tYXRjaCgvXlsjP10rJC8pKXJldHVybiIwIj09PShXcj14dCgkbiwwKSkmJihXcj0iIiksV3IubGVuZ3RoPlduLmxlbmd0aD9XcjpwMChXbi5zdWJzdHIoMCxXbi5sZW5ndGgt''@;'; put 'put ''V3IubGVuZ3RoKSkrV3I7aWYodWk9V24ubWF0Y2gocjApKXJldHVybiBmdW5jdGlvbiBwaShkcixXbiwkbil7dmFyIGJyPXBhcnNlSW50KGRyWzRdLDEwKSxXcj1NYXRoLnJvdW5kKFduKmJyKSx1aT1NYXRoLmZsb29yKFdyL2JyKSxJaT1Xci11aSpicix1MD1icjtyZXR1cm4gJG4rKDA9PT11''@;'; put 'put ''aT8iIjoiIit1aSkrIiAiKygwPT09SWk/d2UoIiAiLGRyWzFdLmxlbmd0aCsxK2RyWzRdLmxlbmd0aCk6RmUoSWksZHJbMV0ubGVuZ3RoKStkclsyXSsiLyIrZHJbM10reGUodTAsZHJbNF0ubGVuZ3RoKSl9KHVpLHppLEowKTtpZihXbi5tYXRjaCgvXiMrMCskLykpcmV0dXJuIEowK3h0KHpp''@;'; put 'put ''LFduLmxlbmd0aC1Xbi5pbmRleE9mKCIwIikpO2lmKHVpPVduLm1hdGNoKE9vKSlyZXR1cm4gV3I9UWwoJG4sdWlbMV0ubGVuZ3RoKS5yZXBsYWNlKC9eKFteXC5dKykkLywiJDEuIitwMCh1aVsxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK3AwKHVpWzFdKSkucmVwbGFjZSgvXC4oXGQqKSQvLGZ1''@;'; put 'put ''bmN0aW9uKCRhLGpzKXtyZXR1cm4iLiIranMrd2UoIjAiLHAwKHVpWzFdKS5sZW5ndGgtanMubGVuZ3RoKX0pLC0xIT09V24uaW5kZXhPZigiMC4iKT9XcjpXci5yZXBsYWNlKC9eMFwuLywiLiIpO2lmKFduPVduLnJlcGxhY2UoL14jKyhbMC5dKS8sIiQxIiksdWk9V24ubWF0Y2goL14oMCop''@;'; put 'put ''XC4oIyopJC8pKXJldHVybiBKMCtRbCh6aSx1aVsyXS5sZW5ndGgpLnJlcGxhY2UoL1wuKFxkKlsxLTldKTAqJC8sIi4kMSIpLnJlcGxhY2UoL14oLT9cZCopJC8sIiQxLiIpLnJlcGxhY2UoL14wXC4vLHVpWzFdLmxlbmd0aD8iMC4iOiIuIik7aWYodWk9V24ubWF0Y2goL14jezEsM30sIyMw''@;'; put 'put ''KFwuPykkLykpcmV0dXJuIEowK2pvKHh0KHppLDApKTtpZih1aT1Xbi5tYXRjaCgvXiMsIyMwXC4oWyMwXSowKSQvKSlyZXR1cm4gJG48MD8iLSIrS3MoZHIsV24sLSRuKTpqbygiIisoTWF0aC5mbG9vcigkbikrZnVuY3Rpb24gcTIoZHIsV24pe3JldHVybiBXbjwoIiIrTWF0aC5yb3VuZCgo''@;'; put 'put ''ZHItTWF0aC5mbG9vcihkcikpKk1hdGgucG93KDEwLFduKSkpLmxlbmd0aD8xOjB9KCRuLHVpWzFdLmxlbmd0aCkpKSsiLiIreGUoQWwoJG4sdWlbMV0ubGVuZ3RoKSx1aVsxXS5sZW5ndGgpO2lmKHVpPVduLm1hdGNoKC9eIywjKiwjMC8pKXJldHVybiBLcyhkcixXbi5yZXBsYWNlKC9eIywj''@;'; put 'put ''KiwvLCIiKSwkbik7aWYodWk9V24ubWF0Y2goL14oWzAjXSspKFxcPy0oWzAjXSspKSskLykpcmV0dXJuIFdyPVgoS3MoZHIsV24ucmVwbGFjZSgvW1xcLV0vZywiIiksJG4pKSxJaT0wLFgoWChXbi5yZXBsYWNlKC9cXC9nLCIiKSkucmVwbGFjZSgvWzAjXS9nLGZ1bmN0aW9uKCRhKXtyZXR1''@;'; put 'put ''cm4gSWk8V3IubGVuZ3RoP1dyLmNoYXJBdChJaSsrKToiMCI9PT0kYT8iMCI6IiJ9KSk7aWYoV24ubWF0Y2gocG8pKXJldHVybiIoIisoV3I9S3MoZHIsIiMjIyMjIyMjIyMiLCRuKSkuc3Vic3RyKDAsMykrIikgIitXci5zdWJzdHIoMywzKSsiLSIrV3Iuc3Vic3RyKDYpO3ZhciBJMD0iIjtp''@;'; put 'put ''Zih1aT1Xbi5tYXRjaCgvXihbIzA/XSspKCA/KVwvKCA/KShbIzA/XSspLykpcmV0dXJuIElpPU1hdGgubWluKHVpWzRdLmxlbmd0aCw3KSx1MD1Zbih6aSxNYXRoLnBvdygxMCxJaSktMSwhMSksV3I9IiIrSjAsIiAiPT0oSTA9d2EoIm4iLHVpWzFdLHUwWzFdKSkuY2hhckF0KEkwLmxlbmd0''@;'; put 'put ''aC0xKSYmKEkwPUkwLnN1YnN0cigwLEkwLmxlbmd0aC0xKSsiMCIpLFdyKz1JMCt1aVsyXSsiLyIrdWlbM10sKEkwPVplKHUwWzJdLElpKSkubGVuZ3RoPHVpWzRdLmxlbmd0aCYmKEkwPXAwKHVpWzRdLnN1YnN0cih1aVs0XS5sZW5ndGgtSTAubGVuZ3RoKSkrSTApLFdyKz1JMDtpZih1aT1X''@;'; put 'put ''bi5tYXRjaCgvXiMgKFsjMD9dKykoID8pXC8oID8pKFsjMD9dKykvKSlyZXR1cm4gSWk9TWF0aC5taW4oTWF0aC5tYXgodWlbMV0ubGVuZ3RoLHVpWzRdLmxlbmd0aCksNyksSjArKCh1MD1Zbih6aSxNYXRoLnBvdygxMCxJaSktMSwhMCkpWzBdfHwodTBbMV0/IiI6IjAiKSkrIiAiKyh1MFsx''@;'; put 'put ''XT9GZSh1MFsxXSxJaSkrdWlbMl0rIi8iK3VpWzNdK1plKHUwWzJdLElpKTp3ZSgiICIsMipJaSsxK3VpWzJdLmxlbmd0aCt1aVszXS5sZW5ndGgpKTtpZih1aT1Xbi5tYXRjaCgvXlsjMD9dKyQvKSlyZXR1cm4gV3I9eHQoJG4sMCksV24ubGVuZ3RoPD1Xci5sZW5ndGg/V3I6cDAoV24uc3Vi''@;'; put 'put ''c3RyKDAsV24ubGVuZ3RoLVdyLmxlbmd0aCkpK1dyO2lmKHVpPVduLm1hdGNoKC9eKFsjMD9dKylcLihbIzBdKykkLykpe1dyPSIiKyRuLnRvRml4ZWQoTWF0aC5taW4odWlbMl0ubGVuZ3RoLDEwKSkucmVwbGFjZSgvKFteMF0pMCskLywiJDEiKSxJaT1Xci5pbmRleE9mKCIuIik7dmFyIGVh''@;'; put 'put ''PVduLmluZGV4T2YoIi4iKS1JaSxZbz1Xbi5sZW5ndGgtV3IubGVuZ3RoLWVhO3JldHVybiBwMChXbi5zdWJzdHIoMCxlYSkrV3IrV24uc3Vic3RyKFduLmxlbmd0aC1ZbykpfWlmKHVpPVduLm1hdGNoKC9eMDAsMDAwXC4oWyMwXSowKSQvKSlyZXR1cm4gSWk9QWwoJG4sdWlbMV0ubGVuZ3Ro''@;'; put 'put ''KSwkbjwwPyItIitLcyhkcixXbiwtJG4pOmpvKGZ1bmN0aW9uIGUxKGRyKXtyZXR1cm4gZHI8MjE0NzQ4MzY0NyYmZHI+LTIxNDc0ODM2NDg/IiIrKGRyPj0wPzB8ZHI6ZHItMXwwKToiIitNYXRoLmZsb29yKGRyKX0oJG4pKS5yZXBsYWNlKC9eXGQsXGR7M30kLywiMCQmIikucmVwbGFjZSgv''@;'; put 'put ''XlxkKiQvLGZ1bmN0aW9uKCRhKXtyZXR1cm4iMDAsIisoJGEubGVuZ3RoPDM/eGUoMCwzLSRhLmxlbmd0aCk6IiIpKyRhfSkrIi4iK3hlKElpLHVpWzFdLmxlbmd0aCk7c3dpdGNoKFduKXtjYXNlIiMjIywjIzAuMDAiOnJldHVybiBLcyhkciwiIywjIzAuMDAiLCRuKTtjYXNlIiMjIywjIyMi''@;'; put 'put ''OmNhc2UiIyMsIyMjIjpjYXNlIiMsIyMjIjp2YXIgeW89am8oeHQoemksMCkpO3JldHVybiIwIiE9PXlvP0owK3lvOiIiO2Nhc2UiIyMjLCMjIy4wMCI6cmV0dXJuIEtzKGRyLCIjIyMsIyMwLjAwIiwkbikucmVwbGFjZSgvXjBcLi8sIi4iKTtjYXNlIiMsIyMjLjAwIjpyZXR1cm4gS3MoZHIs''@;'; put 'put ''IiMsIyMwLjAwIiwkbikucmVwbGFjZSgvXjBcLi8sIi4iKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IitXbisifCIpfWZ1bmN0aW9uIGxyKGRyLFduKXt2YXIgJG4sYnI9ZHIuaW5kZXhPZigiRSIpLWRyLmluZGV4T2YoIi4iKS0xO2lmKGRyLm1hdGNoKC9eIyswLjBF''@;'; put 'put ''XCswJC8pKXtpZigwPT1XbilyZXR1cm4iMC4wRSswIjtpZihXbjwwKXJldHVybiItIitscihkciwtV24pO3ZhciBXcj1kci5pbmRleE9mKCIuIik7LTE9PT1XciYmKFdyPWRyLmluZGV4T2YoIkUiKSk7dmFyIHVpPU1hdGguZmxvb3IoTWF0aC5sb2coV24pKk1hdGguTE9HMTBFKSVXcjtpZih1''@;'; put 'put ''aTwwJiYodWkrPVdyKSwhKCRuPShXbi9NYXRoLnBvdygxMCx1aSkpLnRvUHJlY2lzaW9uKGJyKzErKFdyK3VpKSVXcikpLm1hdGNoKC9bRWVdLykpe3ZhciBJaT1NYXRoLmZsb29yKE1hdGgubG9nKFduKSpNYXRoLkxPRzEwRSk7LTE9PT0kbi5pbmRleE9mKCIuIik/JG49JG4uY2hhckF0KDAp''@;'; put 'put ''KyIuIiskbi5zdWJzdHIoMSkrIkUrIisoSWktJG4ubGVuZ3RoK3VpKTokbis9IkUrIisoSWktdWkpLCRuPSRuLnJlcGxhY2UoL1wrLS8sIi0iKX0kbj0kbi5yZXBsYWNlKC9eKFsrLV0/KShcZCopXC4oXGQqKVtFZV0vLGZ1bmN0aW9uKHUwLHppLEowLEkwKXtyZXR1cm4gemkrSjArSTAuc3Vi''@;'; put 'put ''c3RyKDAsKFdyK3VpKSVXcikrIi4iK0kwLnN1YnN0cih1aSkrIkUifSl9ZWxzZSAkbj1Xbi50b0V4cG9uZW50aWFsKGJyKTtyZXR1cm4gZHIubWF0Y2goL0VcKzAwJC8pJiYkbi5tYXRjaCgvZVsrLV1cZCQvKSYmKCRuPSRuLnN1YnN0cigwLCRuLmxlbmd0aC0xKSsiMCIrJG4uY2hhckF0KCRu''@;'; put 'put ''Lmxlbmd0aC0xKSksZHIubWF0Y2goL0VcLS8pJiYkbi5tYXRjaCgvZVwrLykmJigkbj0kbi5yZXBsYWNlKC9lXCsvLCJlIikpLCRuLnJlcGxhY2UoImUiLCJFIil9ZnVuY3Rpb24gQnIoZHIsV24sJG4pe2lmKDQwPT09ZHIuY2hhckNvZGVBdCgwKSYmIVduLm1hdGNoKGswKSl7dmFyIGJyPVdu''@;'; put 'put ''LnJlcGxhY2UoL1woICovLCIiKS5yZXBsYWNlKC8gXCkvLCIiKS5yZXBsYWNlKC9cKS8sIiIpO3JldHVybiAkbj49MD9CcigibiIsYnIsJG4pOiIoIitCcigibiIsYnIsLSRuKSsiKSJ9aWYoNDQ9PT1Xbi5jaGFyQ29kZUF0KFduLmxlbmd0aC0xKSlyZXR1cm4gZnVuY3Rpb24gUDYoZHIsV24s''@;'; put 'put ''JG4pe2Zvcih2YXIgYnI9V24ubGVuZ3RoLTE7NDQ9PT1Xbi5jaGFyQ29kZUF0KGJyLTEpOyktLWJyO3JldHVybiB3YShkcixXbi5zdWJzdHIoMCxiciksJG4vTWF0aC5wb3coMTAsMyooV24ubGVuZ3RoLWJyKSkpfShkcixXbiwkbik7aWYoLTEhPT1Xbi5pbmRleE9mKCIlIikpcmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uIHRoKGRyLFduLCRuKXt2YXIgYnI9V24ucmVwbGFjZShJciwiIiksV3I9V24ubGVuZ3RoLWJyLmxlbmd0aDtyZXR1cm4gd2EoZHIsYnIsJG4qTWF0aC5wb3coMTAsMipXcikpK3dlKCIlIixXcil9KGRyLFduLCRuKTtpZigtMSE9PVduLmluZGV4T2YoIkUiKSlyZXR1cm4gbHIoV24s''@;'; put 'put ''JG4pO2lmKDM2PT09V24uY2hhckNvZGVBdCgwKSlyZXR1cm4iJCIrQnIoZHIsV24uc3Vic3RyKCIgIj09V24uY2hhckF0KDEpPzI6MSksJG4pO3ZhciBXcix1aSxJaSx1MCx6aT1NYXRoLmFicygkbiksSjA9JG48MD8iLSI6IiI7aWYoV24ubWF0Y2goL14wMCskLykpcmV0dXJuIEowK3hlKHpp''@;'; put 'put ''LFduLmxlbmd0aCk7aWYoV24ubWF0Y2goL15bIz9dKyQvKSlyZXR1cm4gV3I9IiIrJG4sMD09PSRuJiYoV3I9IiIpLFdyLmxlbmd0aD5Xbi5sZW5ndGg/V3I6cDAoV24uc3Vic3RyKDAsV24ubGVuZ3RoLVdyLmxlbmd0aCkpK1dyO2lmKHVpPVduLm1hdGNoKHIwKSlyZXR1cm4gZnVuY3Rpb24g''@;'; put 'put ''ZTAoZHIsV24sJG4pe3JldHVybiAkbisoMD09PVduPyIiOiIiK1duKSt3ZSgiICIsZHJbMV0ubGVuZ3RoKzIrZHJbNF0ubGVuZ3RoKX0odWksemksSjApO2lmKFduLm1hdGNoKC9eIyswKyQvKSlyZXR1cm4gSjAreGUoemksV24ubGVuZ3RoLVduLmluZGV4T2YoIjAiKSk7aWYodWk9V24ubWF0''@;'; put 'put ''Y2goT28pKXJldHVybiBXcj0oV3I9KCIiKyRuKS5yZXBsYWNlKC9eKFteXC5dKykkLywiJDEuIitwMCh1aVsxXSkpLnJlcGxhY2UoL1wuJC8sIi4iK3AwKHVpWzFdKSkpLnJlcGxhY2UoL1wuKFxkKikkLyxmdW5jdGlvbigkYSxqcyl7cmV0dXJuIi4iK2pzK3dlKCIwIixwMCh1aVsxXSkubGVu''@;'; put 'put ''Z3RoLWpzLmxlbmd0aCl9KSwtMSE9PVduLmluZGV4T2YoIjAuIik/V3I6V3IucmVwbGFjZSgvXjBcLi8sIi4iKTtpZihXbj1Xbi5yZXBsYWNlKC9eIysoWzAuXSkvLCIkMSIpLHVpPVduLm1hdGNoKC9eKDAqKVwuKCMqKSQvKSlyZXR1cm4gSjArKCIiK3ppKS5yZXBsYWNlKC9cLihcZCpbMS05''@;'; put 'put ''XSkwKiQvLCIuJDEiKS5yZXBsYWNlKC9eKC0/XGQqKSQvLCIkMS4iKS5yZXBsYWNlKC9eMFwuLyx1aVsxXS5sZW5ndGg/IjAuIjoiLiIpO2lmKHVpPVduLm1hdGNoKC9eI3sxLDN9LCMjMChcLj8pJC8pKXJldHVybiBKMCtqbygiIit6aSk7aWYodWk9V24ubWF0Y2goL14jLCMjMFwuKFsjMF0q''@;'; put 'put ''MCkkLykpcmV0dXJuICRuPDA/Ii0iK0JyKGRyLFduLC0kbik6am8oIiIrJG4pKyIuIit3ZSgiMCIsdWlbMV0ubGVuZ3RoKTtpZih1aT1Xbi5tYXRjaCgvXiMsIyosIzAvKSlyZXR1cm4gQnIoZHIsV24ucmVwbGFjZSgvXiMsIyosLywiIiksJG4pO2lmKHVpPVduLm1hdGNoKC9eKFswI10rKShc''@;'; put 'put ''XD8tKFswI10rKSkrJC8pKXJldHVybiBXcj1YKEJyKGRyLFduLnJlcGxhY2UoL1tcXC1dL2csIiIpLCRuKSksSWk9MCxYKFgoV24ucmVwbGFjZSgvXFwvZywiIikpLnJlcGxhY2UoL1swI10vZyxmdW5jdGlvbigkYSl7cmV0dXJuIElpPFdyLmxlbmd0aD9Xci5jaGFyQXQoSWkrKyk6IjAiPT09''@;'; put 'put ''JGE/IjAiOiIifSkpO2lmKFduLm1hdGNoKHBvKSlyZXR1cm4iKCIrKFdyPUJyKGRyLCIjIyMjIyMjIyMjIiwkbikpLnN1YnN0cigwLDMpKyIpICIrV3Iuc3Vic3RyKDMsMykrIi0iK1dyLnN1YnN0cig2KTt2YXIgSTA9IiI7aWYodWk9V24ubWF0Y2goL14oWyMwP10rKSggPylcLyggPykoWyMw''@;'; put 'put ''P10rKS8pKXJldHVybiBJaT1NYXRoLm1pbih1aVs0XS5sZW5ndGgsNyksdTA9WW4oemksTWF0aC5wb3coMTAsSWkpLTEsITEpLFdyPSIiK0owLCIgIj09KEkwPXdhKCJuIix1aVsxXSx1MFsxXSkpLmNoYXJBdChJMC5sZW5ndGgtMSkmJihJMD1JMC5zdWJzdHIoMCxJMC5sZW5ndGgtMSkrIjAi''@;'; put 'put ''KSxXcis9STArdWlbMl0rIi8iK3VpWzNdLChJMD1aZSh1MFsyXSxJaSkpLmxlbmd0aDx1aVs0XS5sZW5ndGgmJihJMD1wMCh1aVs0XS5zdWJzdHIodWlbNF0ubGVuZ3RoLUkwLmxlbmd0aCkpK0kwKSxXcis9STA7aWYodWk9V24ubWF0Y2goL14jIChbIzA/XSspKCA/KVwvKCA/KShbIzA/XSsp''@;'; put 'put ''LykpcmV0dXJuIElpPU1hdGgubWluKE1hdGgubWF4KHVpWzFdLmxlbmd0aCx1aVs0XS5sZW5ndGgpLDcpLEowKygodTA9WW4oemksTWF0aC5wb3coMTAsSWkpLTEsITApKVswXXx8KHUwWzFdPyIiOiIwIikpKyIgIisodTBbMV0/RmUodTBbMV0sSWkpK3VpWzJdKyIvIit1aVszXStaZSh1MFsy''@;'; put 'put ''XSxJaSk6d2UoIiAiLDIqSWkrMSt1aVsyXS5sZW5ndGgrdWlbM10ubGVuZ3RoKSk7aWYodWk9V24ubWF0Y2goL15bIzA/XSskLykpcmV0dXJuIFduLmxlbmd0aDw9KFdyPSIiKyRuKS5sZW5ndGg/V3I6cDAoV24uc3Vic3RyKDAsV24ubGVuZ3RoLVdyLmxlbmd0aCkpK1dyO2lmKHVpPVduLm1h''@;'; put 'put ''dGNoKC9eKFsjMF0rKVwuKFsjMF0rKSQvKSl7V3I9IiIrJG4udG9GaXhlZChNYXRoLm1pbih1aVsyXS5sZW5ndGgsMTApKS5yZXBsYWNlKC8oW14wXSkwKyQvLCIkMSIpLElpPVdyLmluZGV4T2YoIi4iKTt2YXIgZWE9V24uaW5kZXhPZigiLiIpLUlpLFlvPVduLmxlbmd0aC1Xci5sZW5ndGgt''@;'; put 'put ''ZWE7cmV0dXJuIHAwKFduLnN1YnN0cigwLGVhKStXcitXbi5zdWJzdHIoV24ubGVuZ3RoLVlvKSl9aWYodWk9V24ubWF0Y2goL14wMCwwMDBcLihbIzBdKjApJC8pKXJldHVybiAkbjwwPyItIitCcihkcixXbiwtJG4pOmpvKCIiKyRuKS5yZXBsYWNlKC9eXGQsXGR7M30kLywiMCQmIikucmVw''@;'; put 'put ''bGFjZSgvXlxkKiQvLGZ1bmN0aW9uKCRhKXtyZXR1cm4iMDAsIisoJGEubGVuZ3RoPDM/eGUoMCwzLSRhLmxlbmd0aCk6IiIpKyRhfSkrIi4iK3hlKDAsdWlbMV0ubGVuZ3RoKTt2YXIgeW89am8oIiIremkpO3N3aXRjaChXbil7Y2FzZSIjIyMsIyMjIjpjYXNlIiMjLCMjIyI6Y2FzZSIjLCMj''@;'; put 'put ''IyI6cmV0dXJuIjAiIT09eW8/SjAreW86IiI7Y2FzZSIjLCMwMCI6cmV0dXJuIjAwIiE9PSh5bz14ZSh5bywyKSk/SjAreW86IiI7ZGVmYXVsdDppZihXbi5tYXRjaCgvXC5bMCM/XSokLykpcmV0dXJuIEJyKGRyLFduLnNsaWNlKDAsV24ubGFzdEluZGV4T2YoIi4iKSksJG4pK3AwKFduLnNs''@;'; put 'put ''aWNlKFduLmxhc3RJbmRleE9mKCIuIikpKX10aHJvdyBuZXcgRXJyb3IoInVuc3VwcG9ydGVkIGZvcm1hdCB8IitXbisifCIpfXJldHVybiBmdW5jdGlvbihXbiwkbixicil7cmV0dXJuIjAsMCI9PSRuJiYoJG49IiMsIzAwIiksKDB8YnIpPT09YnI/QnIoV24sJG4sYnIpOktzKFduLCRuLGJy''@;'; put 'put ''KX19KCk7ZnVuY3Rpb24gYW8ocnIpe2Zvcih2YXIgSXI9W10sWnI9ITEscWk9MCxyaT0wO3FpPHJyLmxlbmd0aDsrK3FpKXN3aXRjaChyci5jaGFyQ29kZUF0KHFpKSl7Y2FzZSAzNDpacj0hWnI7YnJlYWs7Y2FzZSA5NTpjYXNlIDQyOmNhc2UgOTI6KytxaTticmVhaztjYXNlIDU5OklyW0ly''@;'; put 'put ''Lmxlbmd0aF09cnIuc3Vic3RyKHJpLHFpLXJpKSxyaT1xaSsxfWlmKElyW0lyLmxlbmd0aF09cnIuc3Vic3RyKHJpKSwhMD09PVpyKXRocm93IG5ldyBFcnJvcigiRm9ybWF0IHwiK3JyKyJ8IHVudGVybWluYXRlZCBzdHJpbmcgIik7cmV0dXJuIElyfWllLl9zcGxpdD1hbzt2YXIgeDA9L1xb''@;'; put 'put ''W0hoTW1Tc1x1MEUwQVx1MEUxOVx1MEUxN10qXF0vO2Z1bmN0aW9uIGgwKHJyKXtmb3IodmFyIElyPTAsWnI9IiIscWk9IiI7SXI8cnIubGVuZ3RoOylzd2l0Y2goWnI9cnIuY2hhckF0KElyKSl7Y2FzZSJHIjpSdChycixJcikmJihJcis9NiksSXIrKzticmVhaztjYXNlJyInOmZvcig7MzQh''@;'; put 'put ''PT1yci5jaGFyQ29kZUF0KCsrSXIpJiZJcjxyci5sZW5ndGg7KTsrK0lyO2JyZWFrO2Nhc2UiXFwiOmNhc2UiXyI6SXIrPTI7YnJlYWs7Y2FzZSJAIjorK0lyO2JyZWFrO2Nhc2UiQiI6Y2FzZSJiIjppZigiMSI9PT1yci5jaGFyQXQoSXIrMSl8fCIyIj09PXJyLmNoYXJBdChJcisxKSlyZXR1''@;'; put 'put ''cm4hMDtjYXNlIk0iOmNhc2UiRCI6Y2FzZSJZIjpjYXNlIkgiOmNhc2UiUyI6Y2FzZSJFIjpjYXNlIm0iOmNhc2UiZCI6Y2FzZSJ5IjpjYXNlImgiOmNhc2UicyI6Y2FzZSJlIjpjYXNlImciOnJldHVybiEwO2Nhc2UiQSI6Y2FzZSJhIjpjYXNlIlx1NGUwYSI6aWYoIkEvUCI9PT1yci5zdWJz''@;'; put 'put ''dHIoSXIsMykudG9VcHBlckNhc2UoKXx8IkFNL1BNIj09PXJyLnN1YnN0cihJciw1KS50b1VwcGVyQ2FzZSgpfHwiXHU0ZTBhXHU1MzQ4L1x1NGUwYlx1NTM0OCI9PT1yci5zdWJzdHIoSXIsNSkudG9VcHBlckNhc2UoKSlyZXR1cm4hMDsrK0lyO2JyZWFrO2Nhc2UiWyI6Zm9yKHFpPVpyOyJd''@;'; put 'put ''IiE9PXJyLmNoYXJBdChJcisrKSYmSXI8cnIubGVuZ3RoOylxaSs9cnIuY2hhckF0KElyKTtpZihxaS5tYXRjaCh4MCkpcmV0dXJuITA7YnJlYWs7Y2FzZSIuIjpjYXNlIjAiOmNhc2UiIyI6Zm9yKDtJcjxyci5sZW5ndGgmJigiMCM/LixFKy0lIi5pbmRleE9mKFpyPXJyLmNoYXJBdCgrK0ly''@;'; put 'put ''KSk+LTF8fCJcXCI9PVpyJiYiLSI9PXJyLmNoYXJBdChJcisxKSYmIjAjIi5pbmRleE9mKHJyLmNoYXJBdChJcisyKSk+LTEpOyk7YnJlYWs7Y2FzZSI/Ijpmb3IoO3JyLmNoYXJBdCgrK0lyKT09PVpyOyk7YnJlYWs7Y2FzZSIqIjorK0lyLCgiICI9PXJyLmNoYXJBdChJcil8fCIqIj09cnIu''@;'; put 'put ''Y2hhckF0KElyKSkmJisrSXI7YnJlYWs7Y2FzZSIoIjpjYXNlIikiOisrSXI7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKDtJcjxyci5sZW5ndGgmJiIwMTIzNDU2Nzg5Ii5pbmRleE9mKHJy''@;'; put 'put ''LmNoYXJBdCgrK0lyKSk+LTE7KTticmVhaztkZWZhdWx0OisrSXJ9cmV0dXJuITF9ZnVuY3Rpb24ganIocnIsSXIsWnIscWkpe2Zvcih2YXIgazAscG8scDAscmk9W10scjA9IiIscGk9MCxlMD0iIixPbz0idCIsUWw9IkgiO3BpPHJyLmxlbmd0aDspc3dpdGNoKGUwPXJyLmNoYXJBdChwaSkp''@;'; put 'put ''e2Nhc2UiRyI6aWYoIVJ0KHJyLHBpKSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBjaGFyYWN0ZXIgIitlMCsiIGluICIrcnIpO3JpW3JpLmxlbmd0aF09e3Q6IkciLHY6IkdlbmVyYWwifSxwaSs9NzticmVhaztjYXNlJyInOmZvcihyMD0iIjszNCE9PShwMD1yci5jaGFyQ29kZUF0''@;'; put 'put ''KCsrcGkpKSYmcGk8cnIubGVuZ3RoOylyMCs9U3RyaW5nLmZyb21DaGFyQ29kZShwMCk7cmlbcmkubGVuZ3RoXT17dDoidCIsdjpyMH0sKytwaTticmVhaztjYXNlIlxcIjp2YXIgQWw9cnIuY2hhckF0KCsrcGkpO3JpW3JpLmxlbmd0aF09e3Q6IigiPT09QWx8fCIpIj09PUFsP0FsOiJ0Iix2''@;'; put 'put ''OkFsfSwrK3BpO2JyZWFrO2Nhc2UiXyI6cmlbcmkubGVuZ3RoXT17dDoidCIsdjoiICJ9LHBpKz0yO2JyZWFrO2Nhc2UiQCI6cmlbcmkubGVuZ3RoXT17dDoiVCIsdjpJcn0sKytwaTticmVhaztjYXNlIkIiOmNhc2UiYiI6aWYoIjEiPT09cnIuY2hhckF0KHBpKzEpfHwiMiI9PT1yci5jaGFy''@;'; put 'put ''QXQocGkrMSkpe2lmKG51bGw9PWswJiZudWxsPT0oazA9TXIoSXIsWnIsIjIiPT09cnIuY2hhckF0KHBpKzEpKSkpcmV0dXJuIiI7cmlbcmkubGVuZ3RoXT17dDoiWCIsdjpyci5zdWJzdHIocGksMil9LE9vPWUwLHBpKz0yO2JyZWFrfWNhc2UiTSI6Y2FzZSJEIjpjYXNlIlkiOmNhc2UiSCI6''@;'; put 'put ''Y2FzZSJTIjpjYXNlIkUiOmUwPWUwLnRvTG93ZXJDYXNlKCk7Y2FzZSJtIjpjYXNlImQiOmNhc2UieSI6Y2FzZSJoIjpjYXNlInMiOmNhc2UiZSI6Y2FzZSJnIjpjYXNlIlx1MGUyNyI6Y2FzZSJcdTBlMTQiOmNhc2UiXHUwZTFiIjpjYXNlIlx1MGUwYSI6Y2FzZSJcdTBlMTkiOmNhc2UiXHUw''@;'; put 'put ''ZTE3IjppZihJcjwwfHxudWxsPT1rMCYmbnVsbD09KGswPU1yKElyLFpyKSkpcmV0dXJuIiI7Zm9yKHIwPWUwOysrcGk8cnIubGVuZ3RoJiZyci5jaGFyQXQocGkpLnRvTG93ZXJDYXNlKCk9PT1lMDspcjArPWUwOyJtIj09PWUwJiYiaCI9PT1Pby50b0xvd2VyQ2FzZSgpJiYoZTA9Ik0iKSwi''@;'; put 'put ''aCI9PT1lMCYmKGUwPVFsKSxyaVtyaS5sZW5ndGhdPXt0OmUwLHY6cjB9LE9vPWUwO2JyZWFrO2Nhc2UiQSI6Y2FzZSJhIjpjYXNlIlx1NGUwYSI6dmFyIGUxPXt0OmUwLHY6ZTB9O2lmKG51bGw9PWswJiYoazA9TXIoSXIsWnIpKSwiQS9QIj09PXJyLnN1YnN0cihwaSwzKS50b1VwcGVyQ2Fz''@;'; put 'put ''ZSgpPyhudWxsIT1rMCYmKGUxLnY9azAuSD49MTI/IlAiOiJBIiksZTEudD0iVCIsUWw9ImgiLHBpKz0zKToiQU0vUE0iPT09cnIuc3Vic3RyKHBpLDUpLnRvVXBwZXJDYXNlKCk/KG51bGwhPWswJiYoZTEudj1rMC5IPj0xMj8iUE0iOiJBTSIpLGUxLnQ9IlQiLHBpKz01LFFsPSJoIik6Ilx1''@;'; put 'put ''NGUwYVx1NTM0OC9cdTRlMGJcdTUzNDgiPT09cnIuc3Vic3RyKHBpLDUpLnRvVXBwZXJDYXNlKCk/KG51bGwhPWswJiYoZTEudj1rMC5IPj0xMj8iXHU0ZTBiXHU1MzQ4IjoiXHU0ZTBhXHU1MzQ4IiksZTEudD0iVCIscGkrPTUsUWw9ImgiKTooZTEudD0idCIsKytwaSksbnVsbD09azAmJiJU''@;'; put 'put ''Ij09PWUxLnQpcmV0dXJuIiI7cmlbcmkubGVuZ3RoXT1lMSxPbz1lMDticmVhaztjYXNlIlsiOmZvcihyMD1lMDsiXSIhPT1yci5jaGFyQXQocGkrKykmJnBpPHJyLmxlbmd0aDspcjArPXJyLmNoYXJBdChwaSk7aWYoIl0iIT09cjAuc2xpY2UoLTEpKXRocm93J3VudGVybWluYXRlZCAiWyIg''@;'; put 'put ''YmxvY2s6IHwnK3IwKyJ8IjtpZihyMC5tYXRjaCh4MCkpe2lmKG51bGw9PWswJiZudWxsPT0oazA9TXIoSXIsWnIpKSlyZXR1cm4iIjtyaVtyaS5sZW5ndGhdPXt0OiJaIix2OnIwLnRvTG93ZXJDYXNlKCl9LE9vPXIwLmNoYXJBdCgxKX1lbHNlIHIwLmluZGV4T2YoIiQiKT4tMSYmKHIwPShy''@;'; put 'put ''MC5tYXRjaCgvXCQoW14tXFtcXV0qKS8pfHxbXSlbMV18fCIkIixoMChycil8fChyaVtyaS5sZW5ndGhdPXt0OiJ0Iix2OnIwfSkpO2JyZWFrO2Nhc2UiLiI6aWYobnVsbCE9azApe2ZvcihyMD1lMDsrK3BpPHJyLmxlbmd0aCYmIjAiPT09KGUwPXJyLmNoYXJBdChwaSkpOylyMCs9ZTA7cmlb''@;'; put 'put ''cmkubGVuZ3RoXT17dDoicyIsdjpyMH07YnJlYWt9Y2FzZSIwIjpjYXNlIiMiOmZvcihyMD1lMDsrK3BpPHJyLmxlbmd0aCYmIjAjPy4sRSstJSIuaW5kZXhPZihlMD1yci5jaGFyQXQocGkpKT4tMTspcjArPWUwO3JpW3JpLmxlbmd0aF09e3Q6Im4iLHY6cjB9O2JyZWFrO2Nhc2UiPyI6Zm9y''@;'; put 'put ''KHIwPWUwO3JyLmNoYXJBdCgrK3BpKT09PWUwOylyMCs9ZTA7cmlbcmkubGVuZ3RoXT17dDplMCx2OnIwfSxPbz1lMDticmVhaztjYXNlIioiOisrcGksKCIgIj09cnIuY2hhckF0KHBpKXx8IioiPT1yci5jaGFyQXQocGkpKSYmKytwaTticmVhaztjYXNlIigiOmNhc2UiKSI6cmlbcmkubGVu''@;'; put 'put ''Z3RoXT17dDoxPT09cWk/InQiOmUwLHY6ZTB9LCsrcGk7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKHIwPWUwO3BpPHJyLmxlbmd0aCYmIjAxMjM0NTY3ODkiLmluZGV4T2YocnIuY2hhckF0''@;'; put 'put ''KCsrcGkpKT4tMTspcjArPXJyLmNoYXJBdChwaSk7cmlbcmkubGVuZ3RoXT17dDoiRCIsdjpyMH07YnJlYWs7Y2FzZSIgIjpyaVtyaS5sZW5ndGhdPXt0OmUwLHY6ZTB9LCsrcGk7YnJlYWs7Y2FzZSIkIjpyaVtyaS5sZW5ndGhdPXt0OiJ0Iix2OmRpfSwrK3BpO2JyZWFrO2Nhc2UiLyI6cmlb''@;'; put 'put ''cmkubGVuZ3RoXT1yaS5sZW5ndGg+MCYmaDAocmlbcmkubGVuZ3RoLTFdLnYpP3t0OiJ0Iix2OllyfTp7dDoidCIsdjoiLyJ9LCsrcGk7YnJlYWs7ZGVmYXVsdDppZigtMT09PSIsJC0rLygpOiFeJid+e308Pj1cdTIwYWNhY2Zpamtsb3BxcnR1dnd4elAiLmluZGV4T2YoZTApKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigidW5yZWNvZ25pemVkIGNoYXJhY3RlciAiK2UwKyIgaW4gIitycik7cmlbcmkubGVuZ3RoXT17dDoidCIsdjplMH0sKytwaX12YXIgdGgsS3M9MCxQNj0wO2ZvcihwaT1yaS5sZW5ndGgtMSxPbz0idCI7cGk+PTA7LS1waSlzd2l0Y2gocmlbcGldLnQpe2Nhc2UiaCI6Y2FzZSJI''@;'; put 'put ''IjpyaVtwaV0udD1RbCxPbz0iaCIsS3M8MSYmKEtzPTEpO2JyZWFrO2Nhc2UicyI6KHRoPXJpW3BpXS52Lm1hdGNoKC9cLjArJC8pKSYmKFA2PU1hdGgubWF4KFA2LHRoWzBdLmxlbmd0aC0xKSksS3M8MyYmKEtzPTMpO2Nhc2UiZCI6Y2FzZSJ5IjpjYXNlIk0iOmNhc2UiZSI6T289cmlbcGld''@;'; put 'put ''LnQ7YnJlYWs7Y2FzZSJtIjoicyI9PT1PbyYmKHJpW3BpXS50PSJNIixLczwyJiYoS3M9MikpO2JyZWFrO2Nhc2UiWCI6YnJlYWs7Y2FzZSJaIjpLczwxJiZyaVtwaV0udi5tYXRjaCgvW0hoXS8pJiYoS3M9MSksS3M8MiYmcmlbcGldLnYubWF0Y2goL1tNbV0vKSYmKEtzPTIpLEtzPDMmJnJp''@;'; put 'put ''W3BpXS52Lm1hdGNoKC9bU3NdLykmJihLcz0zKX1zd2l0Y2goS3Mpe2Nhc2UgMDpicmVhaztjYXNlIDE6azAudT49LjUmJihrMC51PTAsKytrMC5TKSxrMC5TPj02MCYmKGswLlM9MCwrK2swLk0pLGswLk0+PTYwJiYoazAuTT0wLCsrazAuSCk7YnJlYWs7Y2FzZSAyOmswLnU+PS41JiYoazAu''@;'; put 'put ''dT0wLCsrazAuUyksazAuUz49NjAmJihrMC5TPTAsKytrMC5NKX12YXIgQnIsbHI9IiI7Zm9yKHBpPTA7cGk8cmkubGVuZ3RoOysrcGkpc3dpdGNoKHJpW3BpXS50KXtjYXNlInQiOmNhc2UiVCI6Y2FzZSIgIjpjYXNlIkQiOmJyZWFrO2Nhc2UiWCI6cmlbcGldLnY9IiIscmlbcGldLnQ9Ijsi''@;'; put 'put ''O2JyZWFrO2Nhc2UiZCI6Y2FzZSJtIjpjYXNlInkiOmNhc2UiaCI6Y2FzZSJIIjpjYXNlIk0iOmNhc2UicyI6Y2FzZSJlIjpjYXNlImIiOmNhc2UiWiI6Y2FzZSJcdTBlMjciOmNhc2UiXHUwZTE0IjpjYXNlIlx1MGUxYiI6Y2FzZSJcdTBlMGEiOmNhc2UiXHUwZTE5IjpjYXNlIlx1MGUxNyI6''@;'; put 'put ''cmlbcGldLnY9VmEocmlbcGldLnQuY2hhckNvZGVBdCgwKSxyaVtwaV0udixrMCxQNikscmlbcGldLnQ9InQiO2JyZWFrO2Nhc2UibiI6Y2FzZSI/Ijpmb3IoQnI9cGkrMTtudWxsIT1yaVtCcl0mJigiPyI9PT0oZTA9cmlbQnJdLnQpfHwiRCI9PT1lMHx8KCIgIj09PWUwfHwidCI9PT1lMCkm''@;'; put 'put ''Jm51bGwhPXJpW0JyKzFdJiYoIj8iPT09cmlbQnIrMV0udHx8InQiPT09cmlbQnIrMV0udCYmIi8iPT09cmlbQnIrMV0udil8fCIoIj09PXJpW3BpXS50JiYoIiAiPT09ZTB8fCJuIj09PWUwfHwiKSI9PT1lMCl8fCJ0Ij09PWUwJiYoIi8iPT09cmlbQnJdLnZ8fCIgIj09PXJpW0JyXS52JiZu''@;'; put 'put ''dWxsIT1yaVtCcisxXSYmIj8iPT1yaVtCcisxXS50KSk7KXJpW3BpXS52Kz1yaVtCcl0udixyaVtCcl09e3Y6IiIsdDoiOyJ9LCsrQnI7bHIrPXJpW3BpXS52LHBpPUJyLTE7YnJlYWs7Y2FzZSJHIjpyaVtwaV0udD0idCIscmlbcGldLnY9aW8oSXIsWnIpfXZhciBXbiwkbixkcj0iIjtpZihs''@;'; put 'put ''ci5sZW5ndGg+MCl7NDA9PWxyLmNoYXJDb2RlQXQoMCk/KFduPUlyPDAmJjQ1PT09bHIuY2hhckNvZGVBdCgwKT8tSXI6SXIsJG49d2EoIm4iLGxyLFduKSk6KCRuPXdhKCJuIixscixXbj1JcjwwJiZxaT4xPy1JcjpJciksV248MCYmcmlbMF0mJiJ0Ij09cmlbMF0udCYmKCRuPSRuLnN1YnN0''@;'; put 'put ''cigxKSxyaVswXS52PSItIityaVswXS52KSksQnI9KCRuPSRuLnJlcGxhY2UoL1ssXC5dL2csZnVuY3Rpb24oSWkpe3JldHVybiIuIj09SWk/Ymk6QTB9KSkubGVuZ3RoLTE7dmFyIGJyPXJpLmxlbmd0aDtmb3IocGk9MDtwaTxyaS5sZW5ndGg7KytwaSlpZihudWxsIT1yaVtwaV0mJiJ0IiE9''@;'; put 'put ''cmlbcGldLnQmJnJpW3BpXS52LmluZGV4T2YoIi4iKT4tMSl7YnI9cGk7YnJlYWt9dmFyIFdyPXJpLmxlbmd0aDtpZihicj09PXJpLmxlbmd0aCYmLTE9PT0kbi5pbmRleE9mKCJFIikpe2ZvcihwaT1yaS5sZW5ndGgtMTtwaT49MDstLXBpKW51bGw9PXJpW3BpXXx8LTE9PT0ibj8iLmluZGV4''@;'; put 'put ''T2YocmlbcGldLnQpfHwoQnI+PXJpW3BpXS52Lmxlbmd0aC0xP3JpW3BpXS52PSRuLnN1YnN0cigxKyhCci09cmlbcGldLnYubGVuZ3RoKSxyaVtwaV0udi5sZW5ndGgpOkJyPDA/cmlbcGldLnY9IiI6KHJpW3BpXS52PSRuLnN1YnN0cigwLEJyKzEpLEJyPS0xKSxyaVtwaV0udD0idCIsV3I9''@;'; put 'put ''cGkpO0JyPj0wJiZXcjxyaS5sZW5ndGgmJihyaVtXcl0udj0kbi5zdWJzdHIoMCxCcisxKStyaVtXcl0udil9ZWxzZSBpZihiciE9PXJpLmxlbmd0aCYmLTE9PT0kbi5pbmRleE9mKCJFIikpe2ZvcihCcj0kbi5pbmRleE9mKGJpKS0xLHBpPWJyO3BpPj0wOy0tcGkpaWYobnVsbCE9cmlbcGld''@;'; put 'put ''JiYtMSE9PSJuPyIuaW5kZXhPZihyaVtwaV0udCkpe2Zvcihwbz1yaVtwaV0udi5pbmRleE9mKCIuIik+LTEmJnBpPT09YnI/cmlbcGldLnYuaW5kZXhPZigiLiIpLTE6cmlbcGldLnYubGVuZ3RoLTEsZHI9cmlbcGldLnYuc3Vic3RyKHBvKzEpO3BvPj0wOy0tcG8pQnI+PTAmJigiMCI9PT1y''@;'; put 'put ''aVtwaV0udi5jaGFyQXQocG8pfHwiIyI9PT1yaVtwaV0udi5jaGFyQXQocG8pKSYmKGRyPSRuLmNoYXJBdChCci0tKStkcik7cmlbcGldLnY9ZHIscmlbcGldLnQ9InQiLFdyPXBpfWZvcihCcj49MCYmV3I8cmkubGVuZ3RoJiYocmlbV3JdLnY9JG4uc3Vic3RyKDAsQnIrMSkrcmlbV3JdLnYp''@;'; put 'put ''LEJyPSRuLmluZGV4T2YoYmkpKzEscGk9YnI7cGk8cmkubGVuZ3RoOysrcGkpaWYobnVsbCE9cmlbcGldJiYoLTEhPT0ibj8oIi5pbmRleE9mKHJpW3BpXS50KXx8cGk9PT1icikpe2Zvcihwbz1yaVtwaV0udi5pbmRleE9mKGJpKT4tMSYmcGk9PT1icj9yaVtwaV0udi5pbmRleE9mKGJpKSsx''@;'; put 'put ''OjAsZHI9cmlbcGldLnYuc3Vic3RyKDAscG8pO3BvPHJpW3BpXS52Lmxlbmd0aDsrK3BvKUJyPCRuLmxlbmd0aCYmKGRyKz0kbi5jaGFyQXQoQnIrKykpO3JpW3BpXS52PWRyLHJpW3BpXS50PSJ0IixXcj1waX19fWZvcihwaT0wO3BpPHJpLmxlbmd0aDsrK3BpKW51bGwhPXJpW3BpXSYmIm4/''@;'; put 'put ''Ii5pbmRleE9mKHJpW3BpXS50KT4tMSYmKHJpW3BpXS52PXdhKHJpW3BpXS50LHJpW3BpXS52LFduPXFpPjEmJklyPDAmJnBpPjAmJiItIj09PXJpW3BpLTFdLnY/LUlyOklyKS5yZXBsYWNlKC9cLi9nLGJpKS5yZXBsYWNlKC8sLyxBMCkscmlbcGldLnQ9InQiKTt2YXIgdWk9IiI7Zm9yKHBp''@;'; put 'put ''PTA7cGkhPT1yaS5sZW5ndGg7KytwaSludWxsIT1yaVtwaV0mJih1aSs9cmlbcGldLnYpO3JldHVybiB1aX1pZS5pc19kYXRlPWgwLGllLl9ldmFsPWpyO3ZhciB2bz0vXFtbPTw+XS8seG89L1xbKD18Pls9XT98PFs+PV0/KSgtP1xkKyg/OlwuXGQqKT8pXF0vO2Z1bmN0aW9uICRpKHJyLEly''@;'; put 'put ''KXtpZihudWxsPT1JcilyZXR1cm4hMTt2YXIgWnI9cGFyc2VGbG9hdChJclsyXSk7c3dpdGNoKElyWzFdKXtjYXNlIj0iOmlmKHJyPT1acilyZXR1cm4hMDticmVhaztjYXNlIj4iOmlmKHJyPlpyKXJldHVybiEwO2JyZWFrO2Nhc2UiPCI6aWYocnI8WnIpcmV0dXJuITA7YnJlYWs7Y2FzZSI8''@;'; put 'put ''PiI6aWYocnIhPVpyKXJldHVybiEwO2JyZWFrO2Nhc2UiPj0iOmlmKHJyPj1acilyZXR1cm4hMDticmVhaztjYXNlIjw9IjppZihycjw9WnIpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gTWMocnIsSXIsWnIpe251bGw9PVpyJiYoWnI9e30pO3ZhciBxaT0iIjtzd2l0Y2godHlwZW9mIHJy''@;'; put 'put ''KXtjYXNlInN0cmluZyI6cWk9Im0vZC95eSI9PXJyJiZaci5kYXRlTkY/WnIuZGF0ZU5GOnJyO2JyZWFrO2Nhc2UibnVtYmVyIjpudWxsPT0ocWk9MTQ9PXJyJiZaci5kYXRlTkY/WnIuZGF0ZU5GOihudWxsIT1aci50YWJsZT9aci50YWJsZTp6dClbcnJdKSYmKHFpPVpyLnRhYmxlJiZaci50''@;'; put 'put ''YWJsZVtQbltycl1dfHx6dFtQbltycl1dKSxudWxsPT1xaSYmKHFpPU9uW3JyXXx8IkdlbmVyYWwiKX1pZihSdChxaSwwKSlyZXR1cm4gaW8oSXIsWnIpO0lyIGluc3RhbmNlb2YgRGF0ZSYmKElyPUdyKElyLFpyLmRhdGUxOTA0KSk7dmFyIHJpPWZ1bmN0aW9uIGwyKHJyLElyKXt2YXIgWnI9''@;'; put 'put ''YW8ocnIpLHFpPVpyLmxlbmd0aCxyaT1acltxaS0xXS5pbmRleE9mKCJAIik7aWYocWk8NCYmcmk+LTEmJi0tcWksWnIubGVuZ3RoPjQpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZmluZCByaWdodCBmb3JtYXQgZm9yIHwiK1pyLmpvaW4oInwiKSsifCIpO2lmKCJudW1iZXIiIT10eXBlb2Yg''@;'; put 'put ''SXIpcmV0dXJuWzQsND09PVpyLmxlbmd0aHx8cmk+LTE/WnJbWnIubGVuZ3RoLTFdOiJAIl07c3dpdGNoKFpyLmxlbmd0aCl7Y2FzZSAxOlpyPXJpPi0xP1siR2VuZXJhbCIsIkdlbmVyYWwiLCJHZW5lcmFsIixaclswXV06W1pyWzBdLFpyWzBdLFpyWzBdLCJAIl07YnJlYWs7Y2FzZSAyOlpy''@;'; put 'put ''PXJpPi0xP1taclswXSxaclswXSxaclswXSxaclsxXV06W1pyWzBdLFpyWzFdLFpyWzBdLCJAIl07YnJlYWs7Y2FzZSAzOlpyPXJpPi0xP1taclswXSxaclsxXSxaclswXSxaclsyXV06W1pyWzBdLFpyWzFdLFpyWzJdLCJAIl19dmFyIHIwPUlyPjA/WnJbMF06SXI8MD9aclsxXTpaclsyXTtp''@;'; put 'put ''ZigtMT09PVpyWzBdLmluZGV4T2YoIlsiKSYmLTE9PT1aclsxXS5pbmRleE9mKCJbIikpcmV0dXJuW3FpLHIwXTtpZihudWxsIT1aclswXS5tYXRjaCh2byl8fG51bGwhPVpyWzFdLm1hdGNoKHZvKSl7dmFyIHBpPVpyWzBdLm1hdGNoKHhvKSxlMD1aclsxXS5tYXRjaCh4byk7cmV0dXJuICRp''@;'; put 'put ''KElyLHBpKT9bcWksWnJbMF1dOiRpKElyLGUwKT9bcWksWnJbMV1dOltxaSxacltudWxsIT1waSYmbnVsbCE9ZTA/MjoxXV19cmV0dXJuW3FpLHIwXX0ocWksSXIpO2lmKFJ0KHJpWzFdKSlyZXR1cm4gaW8oSXIsWnIpO2lmKCEwPT09SXIpSXI9IlRSVUUiO2Vsc2UgaWYoITE9PT1JcilJcj0i''@;'; put 'put ''RkFMU0UiO2Vsc2UgaWYoIiI9PT1Jcnx8bnVsbD09SXIpcmV0dXJuIiI7cmV0dXJuIGpyKHJpWzFdLElyLFpyLHJpWzBdKX1mdW5jdGlvbiBwMihycixJcil7aWYoIm51bWJlciIhPXR5cGVvZiBJcil7SXI9K0lyfHwtMTtmb3IodmFyIFpyPTA7WnI8MzkyOysrWnIpaWYobnVsbCE9enRbWnJd''@;'; put 'put ''KXtpZih6dFtacl09PXJyKXtJcj1acjticmVha319ZWxzZSBJcjwwJiYoSXI9WnIpO0lyPDAmJihJcj0zOTEpfXJldHVybiB6dFtJcl09cnIsSXJ9aWUubG9hZD1wMixpZS5fdGFibGU9enQsaWUuZ2V0X3RhYmxlPWZ1bmN0aW9uKCl7cmV0dXJuIHp0fSxpZS5sb2FkX3RhYmxlPWZ1bmN0aW9u''@;'; put 'put ''KElyKXtmb3IodmFyIFpyPTA7MzkyIT1acjsrK1pyKXZvaWQgMCE9PUlyW1pyXSYmcDIoSXJbWnJdLFpyKX0saWUuaW5pdF90YWJsZT1EdCxpZS5mb3JtYXQ9TWMsaWUuZ2V0bG9jYWxlPWZ1bmN0aW9uIEVpKCl7cmV0dXJuIHpyfHwiZW4tVVMifSxpZS5zZXRsb2NhbGU9ZnVuY3Rpb24gaGko''@;'; put 'put ''cnIpe2lmKGZ1bmN0aW9uIGtpKHJyKXt2YXIgSXI9MDtzd2l0Y2goKHpyfHwiIikudG9Mb3dlckNhc2UoKSl7Y2FzZSJ6aC10dyI6Y2FzZSJ6aC1jbiI6Y2FzZSJqYS1qcCI6Y2FzZSJrby1rciI6Zm9yKElyPTI3O0lyPD0zNjsrK0lyKWRlbGV0ZSBycltJcl07Zm9yKElyPTUwO0lyPD01ODsr''@;'; put 'put ''K0lyKWRlbGV0ZSBycltJcl07YnJlYWs7Y2FzZSJ0aC10aCI6Zm9yKElyPTU5O0lyPD02MjsrK0lyKWRlbGV0ZSBycltJcl07Zm9yKElyPTY3O0lyPD04MTsrK0lyKWRlbGV0ZSBycltJcl19fSh6dCksenI9cnIsTnIoenQpLCJ1bmRlZmluZWQiIT10eXBlb2YgSW50bCl7dmFyIElyPUludGwu''@;'; put 'put ''RGF0ZVRpbWVGb3JtYXQocnIpO2lmKElyLmZvcm1hdFRvUGFydHMpe2Zvcih2YXIgWnI9SXIuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLDAsNSwwLDAsMCkpLHFpPTA7cWk8NzsrK3FpKW5uW3FpXVsxXT1JbnRsLkRhdGVUaW1lRm9ybWF0KHJyLHt3ZWVrZGF5OiJsb25nIn0pLmZvcm1h''@;'; put 'put ''dFRvUGFydHMobmV3IERhdGUoMjAyMCwwLDUrcWksMCwwLDApKVswXS52YWx1ZSxubltxaV1bMF09SW50bC5EYXRlVGltZUZvcm1hdChycix7d2Vla2RheToic2hvcnQifSkuZm9ybWF0VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLDAsNStxaSwwLDAsMCkpWzBdLnZhbHVlO2Zvcih2YXIgcmk9MDty''@;'; put 'put ''aTwxMjsrK3JpKUNuW3JpXVsyXT1JbnRsLkRhdGVUaW1lRm9ybWF0KHJyLHttb250aDoibG9uZyJ9KS5mb3JtYXRUb1BhcnRzKG5ldyBEYXRlKDIwMjAscmksMiwwLDAsMCkpWzBdLnZhbHVlLENuW3JpXVsxXT1JbnRsLkRhdGVUaW1lRm9ybWF0KHJyLHttb250aDoic2hvcnQifSkuZm9ybWF0''@;'; put 'put ''VG9QYXJ0cyhuZXcgRGF0ZSgyMDIwLHJpLDIsMCwwLDApKVswXS52YWx1ZSxDbltyaV1bMF09Q25bcmldWzFdLnNsaWNlKDAsMSk7Zm9yKHZhciByMD0iIixwaT0wO3BpPFpyLmxlbmd0aDsrK3BpKXt2YXIgZTA9WnJbcGldLnZhbHVlO3N3aXRjaChacltwaV0udHlwZSl7Y2FzZSJ5ZWFyIjpy''@;'; put 'put ''MCs9Mj09ZTAubGVuZ3RoPyJ5eSI6Inl5eXkiO2JyZWFrO2Nhc2UibW9udGgiOnIwKz0iMSI9PWUwPyJtIjoiMDEiPT1lMD8ibW0iOmUwPT1DblswXVsxXT8ibW1tIjplMD09Q25bMF1bMl0/Im1tbW0iOmUwPT1DblswXVswXT8ibW1tbW0iOiJtbSI7YnJlYWs7Y2FzZSJkYXkiOnIwKz0iNSI9''@;'; put 'put ''PWUwPyJkIjoiMDUiPT1lMD8iZGQiOmUwPT1ublswXVswXT8iZGRkIjplMD09bm5bMF1bMV0/ImRkZGQiOiJkZCI7YnJlYWs7Y2FzZSJsaXRlcmFsIjpyMCs9ZTAucmVwbGFjZSgvLi9nLCJcXCQmIiksMT09ZTAubGVuZ3RoJiYoWXI9ZTApfX0ocnIubWF0Y2goL2VuL2kpJiZyci5tYXRjaCgv''@;'; put 'put ''dXMvaSl8fCFycikmJihyMD0ibS9kL3l5IiksenRbMTRdPXIwfWVsc2UiamEtanAiPT1yci50b0xvd2VyQ2FzZSgpJiYoenRbMTRdPSJ5eXl5XFwvbVxcL2QiKTt2YXIgT289SW50bC5OdW1iZXJGb3JtYXQocnIse30pLmZvcm1hdCgxMjM0NTY3Ljg5KTtPbyYmKEEwPShPby5tYXRjaCgvMSgu''@;'; put 'put ''KikyLyl8fFtdKVsxXSxiaT0oT28ubWF0Y2goLzcoLiopOC8pfHxbXSlbMV0pfXFyW3JyLnRvTG93ZXJDYXNlKCldfHwocXJbcnIudG9Mb3dlckNhc2UoKV09eyIuIjpiaSwiLCI6QTB9KSxjcj1VdChvaT1xcltyci50b0xvd2VyQ2FzZSgpXXx8cXJbImVuLXVzIl0pfSxpZS5ub3JtYWxpemU9''@;'; put 'put ''ZnVuY3Rpb24gSGkocnIpe2Zvcih2YXIgSXI9MCxacj0wLHFpPSIiLHJpPSIiLHIwPSIiLHBpPW9pLnl8fCJ5IixlMD1waS50b1VwcGVyQ2FzZSgpLE9vPW9pLmR8fCJkIixrMD1Pby50b1VwcGVyQ2FzZSgpLHBvPW9pWyIuIl0scDA9b2lbIiwiXSxRbD0iMCM/RSstJSIrb2lbIiwiXStwbztJ''@;'; put 'put ''cjxyci5sZW5ndGg7KXN3aXRjaChxaT1yci5jaGFyQXQoSXIpKXtjYXNlIkciOklyKysscjArPXFpO2JyZWFrO2Nhc2UnIic6Zm9yKHIwKz1xaTszNCE9PShacj1yci5jaGFyQ29kZUF0KCsrSXIpKSYmSXI8cnIubGVuZ3RoOylyMCs9U3RyaW5nLmZyb21DaGFyQ29kZShacik7cjArPSciJywr''@;'; put 'put ''K0lyO2JyZWFrO2Nhc2UiXFwiOmNhc2UiXyI6cjArPXJyLnNsaWNlKElyLElyKzIpLElyKz0yO2JyZWFrO2Nhc2UiQCI6cjArPXFpLCsrSXI7YnJlYWs7Y2FzZSJCIjpjYXNlImIiOisrSXIscjArPXFpO2JyZWFrO2Nhc2UgcGk6Y2FzZSBlMDpjYXNlIE9vOmNhc2UgazA6cjArPWNyW3FpLnRv''@;'; put 'put ''TG93ZXJDYXNlKCldLCsrSXI7YnJlYWs7Y2FzZSJNIjpjYXNlIkgiOmNhc2UiUyI6Y2FzZSJFIjpjYXNlIm0iOmNhc2UiaCI6Y2FzZSJzIjpjYXNlImUiOmNhc2UiZyI6Y2FzZSJBIjpjYXNlImEiOnIwKz1xaSwrK0lyO2JyZWFrO2Nhc2UiWyI6Zm9yKHJpPXFpOyJdIiE9PXJyLmNoYXJBdChJ''@;'; put 'put ''cisrKSYmSXI8cnIubGVuZ3RoOylyaSs9cnIuY2hhckF0KElyKTtyMCs9cmk7YnJlYWs7Y2FzZSBwMDpyMCs9JyInK3FpKyciJywrK0lyO2JyZWFrO2Nhc2UgcG86aWYoIShJcjxyci5sZW5ndGgmJihRbC5pbmRleE9mKHFpPXJyLmNoYXJBdCgrK0lyKSk+LTF8fCJcXCI9PXFpJiYiLSI9PXJy''@;'; put 'put ''LmNoYXJBdChJcisxKSYmIjAjIi5pbmRleE9mKHJyLmNoYXJBdChJcisyKSk+LTEpKSl7cjArPSciJytwbysnIic7YnJlYWt9cWk9cG8sLS1JcjtjYXNlIjAiOmNhc2UiIyI6Zm9yKHIwKz1jcltxaS50b0xvd2VyQ2FzZSgpXXx8cWk7SXI8cnIubGVuZ3RoJiYoUWwuaW5kZXhPZihxaT1yci5j''@;'; put 'put ''aGFyQXQoKytJcikpPi0xfHwiXFwiPT1xaSYmIi0iPT1yci5jaGFyQXQoSXIrMSkmJiIwIyIuaW5kZXhPZihyci5jaGFyQXQoSXIrMikpPi0xKTspcjArPWNyW3FpLnRvTG93ZXJDYXNlKCldfHxxaTticmVhaztjYXNlIj8iOmZvcihyMCs9cWk7cnIuY2hhckF0KCsrSXIpPT09cWk7KXIwKz1x''@;'; put 'put ''aTticmVhaztjYXNlIioiOnIwKz1xaSwrK0lyLCgiICI9PXJyLmNoYXJBdChJcil8fCIqIj09cnIuY2hhckF0KElyKSkmJihyMCs9cnIuY2hhckF0KElyKSwrK0lyKTticmVhaztjYXNlIigiOmNhc2UiKSI6cjArPXFpLCsrSXI7YnJlYWs7Y2FzZSIxIjpjYXNlIjIiOmNhc2UiMyI6Y2FzZSI0''@;'; put 'put ''IjpjYXNlIjUiOmNhc2UiNiI6Y2FzZSI3IjpjYXNlIjgiOmNhc2UiOSI6Zm9yKHIwKz1xaTtJcjxyci5sZW5ndGgmJiIwMTIzNDU2Nzg5Ii5pbmRleE9mKHJyLmNoYXJBdCgrK0lyKSk+LTE7KXIwKz1yci5jaGFyQXQoSXIpO2JyZWFrO2RlZmF1bHQ6cjArPXFpLCsrSXJ9cmV0dXJuIHIwfSxp''@;'; put 'put ''ZS5nZXRjdXJyZW5jeT1mdW5jdGlvbiBVaSgpe3JldHVybiB2MHx8IlVTRCJ9LGllLnNldGN1cnJlbmN5PWZ1bmN0aW9uIHRvKHJyKXt2MD1ycixkaT0idW5kZWZpbmVkIiE9dHlwZW9mIEludGw/SW50bC5OdW1iZXJGb3JtYXQoenIse3N0eWxlOiJjdXJyZW5jeSIsY3VycmVuY3lEaXNwbGF5''@;'; put 'put ''OiJzeW1ib2wiLGN1cnJlbmN5OnJyfSkuZm9ybWF0KDApLnJlcGxhY2UoL1swXC5cLFxzXS9nLCIiKToiJCJ9fTt5ZShGKTt2YXIgd3QsQ2U9eyJHZW5lcmFsIE51bWJlciI6IkdlbmVyYWwiLCJHZW5lcmFsIERhdGUiOkYuX3RhYmxlWzIyXSwiTG9uZyBEYXRlIjoiZGRkZCwgbW1tbSBkZCwg''@;'; put 'put ''eXl5eSIsIk1lZGl1bSBEYXRlIjpGLl90YWJsZVsxNV0sIlNob3J0IERhdGUiOkYuX3RhYmxlWzE0XSwiTG9uZyBUaW1lIjpGLl90YWJsZVsxOV0sIk1lZGl1bSBUaW1lIjpGLl90YWJsZVsxOF0sIlNob3J0IFRpbWUiOkYuX3RhYmxlWzIwXSxDdXJyZW5jeTonIiQiIywjIzAuMDBfKTtbUmVk''@;'; put 'put ''XVxcKCIkIiMsIyMwLjAwXFwpJyxGaXhlZDpGLl90YWJsZVsyXSxTdGFuZGFyZDpGLl90YWJsZVs0XSxQZXJjZW50OkYuX3RhYmxlWzEwXSxTY2llbnRpZmljOkYuX3RhYmxlWzExXSwiWWVzL05vIjonIlllcyI7IlllcyI7Ik5vIjtAJywiVHJ1ZS9GYWxzZSI6JyJUcnVlIjsiVHJ1ZSI7IkZh''@;'; put 'put ''bHNlIjtAJywiT24vT2ZmIjonIlllcyI7IlllcyI7Ik5vIjtAJ30sRGU9ezU6JyIkIiMsIyMwXyk7XFwoIiQiIywjIzBcXCknLDY6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNzonIiQiIywjIzAuMDBfKTtcXCgiJCIjLCMjMC4wMFxcKScsODonIiQiIywjIzAuMDBfKTtbUmVk''@;'; put 'put ''XVxcKCIkIiMsIyMwLjAwXFwpJywyMzoiR2VuZXJhbCIsMjQ6IkdlbmVyYWwiLDI1OiJHZW5lcmFsIiwyNjoiR2VuZXJhbCIsMjc6Im0vZC95eSIsMjg6Im0vZC95eSIsMjk6Im0vZC95eSIsMzA6Im0vZC95eSIsMzE6Im0vZC95eSIsMzI6Img6bW06c3MiLDMzOiJoOm1tOnNzIiwzNDoiaDpt''@;'; put 'put ''bTpzcyIsMzU6Img6bW06c3MiLDM2OiJtL2QveXkiLDQxOidfKCogIywjIzBfKTtfKCogKCMsIyMwKTtfKCogIi0iXyk7XyhAXyknLDQyOidfKCIkIiogIywjIzBfKTtfKCIkIiogKCMsIyMwKTtfKCIkIiogIi0iXyk7XyhAXyknLDQzOidfKCogIywjIzAuMDBfKTtfKCogKCMsIyMwLjAwKTtf''@;'; put 'put ''KCogIi0iPz9fKTtfKEBfKScsNDQ6J18oIiQiKiAjLCMjMC4wMF8pO18oIiQiKiAoIywjIzAuMDApO18oIiQiKiAiLSI/P18pO18oQF8pJyw1MDoibS9kL3l5Iiw1MToibS9kL3l5Iiw1MjoibS9kL3l5Iiw1MzoibS9kL3l5Iiw1NDoibS9kL3l5Iiw1NToibS9kL3l5Iiw1NjoibS9kL3l5Iiw1''@;'; put 'put ''NzoibS9kL3l5Iiw1ODoibS9kL3l5Iiw1OToiMCIsNjA6IjAuMDAiLDYxOiIjLCMjMCIsNjI6IiMsIyMwLjAwIiw2MzonIiQiIywjIzBfKTtcXCgiJCIjLCMjMFxcKScsNjQ6JyIkIiMsIyMwXyk7W1JlZF1cXCgiJCIjLCMjMFxcKScsNjU6JyIkIiMsIyMwLjAwXyk7XFwoIiQiIywjIzAuMDBc''@;'; put 'put ''XCknLDY2OiciJCIjLCMjMC4wMF8pO1tSZWRdXFwoIiQiIywjIzAuMDBcXCknLDY3OiIwJSIsNjg6IjAuMDAlIiw2OToiIyA/Lz8iLDcwOiIjID8/Lz8/Iiw3MToibS9kL3l5Iiw3MjoibS9kL3l5Iiw3MzoiZC1tbW0teXkiLDc0OiJkLW1tbSIsNzU6Im1tbS15eSIsNzY6Img6bW0iLDc3OiJo''@;'; put 'put ''Om1tOnNzIiw3ODoibS9kL3l5IGg6bW0iLDc5OiJtbTpzcyIsODA6IltoXTptbTpzcyIsODE6Im1tc3MuMCJ9LFBlPS9bZERdK3xbbU1dK3xbeVllRV0rfFtIaF0rfFtTc10rL2c7IWZ1bmN0aW9uKEgpe0gudmVyc2lvbj0iMS4yLjAiO3ZhciBYPWZ1bmN0aW9uIGllKCl7Zm9yKHZhciBqZT0w''@;'; put 'put ''LFllPW5ldyBBcnJheSgyNTYpLE10PTA7MjU2IT1NdDsrK010KVllW010XT1qZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT0xJihqZT1NdCk/LTMwNjY3NDkxMl5qZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjEpPy0zMDY2NzQ5MTJeamU+''@;'; put 'put ''Pj4xOmplPj4+MSk/LTMwNjY3NDkxMl5qZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjEpPy0zMDY2NzQ5MTJeamU+Pj4xOmplPj4+MSk/LTMwNjY3NDkxMl5qZT4+PjE6amU+Pj4xKT8tMzA2Njc0OTEyXmplPj4+MTpqZT4+PjE7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVv''@;'; put 'put ''ZiBJbnQzMkFycmF5P25ldyBJbnQzMkFycmF5KFllKTpZZX0oKTtILnRhYmxlPVgsSC5ic3RyPWZ1bmN0aW9uIHdlKGplLFllKXtmb3IodmFyIE10PS0xXlllLHh0PWplLmxlbmd0aC0xLFJ0PTA7UnQ8eHQ7KU10PShNdD1NdD4+PjheWFsyNTUmKE10XmplLmNoYXJDb2RlQXQoUnQrKykpXSk+''@;'; put 'put ''Pj44XlhbMjU1JihNdF5qZS5jaGFyQ29kZUF0KFJ0KyspKV07cmV0dXJuIFJ0PT09eHQmJihNdD1NdD4+PjheWFsyNTUmKE10XmplLmNoYXJDb2RlQXQoUnQpKV0pLC0xXk10fSxILmJ1Zj1mdW5jdGlvbiB4ZShqZSxZZSl7aWYoamUubGVuZ3RoPjFlNClyZXR1cm4gZnVuY3Rpb24gRmUoamUs''@;'; put 'put ''WWUpe2Zvcih2YXIgTXQ9LTFeWWUseHQ9amUubGVuZ3RoLTcsUnQ9MDtSdDx4dDspTXQ9KE10PShNdD0oTXQ9KE10PShNdD0oTXQ9KE10PU10Pj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5Y''@;'; put 'put ''WzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldO2Zvcig7UnQ8eHQrNzspTXQ9TXQ+Pj44XlhbMjU1JihNdF5qZVtSdCsr''@;'; put 'put ''XSldO3JldHVybi0xXk10fShqZSxZZSk7Zm9yKHZhciBNdD0tMV5ZZSx4dD1qZS5sZW5ndGgtMyxSdD0wO1J0PHh0OylNdD0oTXQ9KE10PShNdD1NdD4+PjheWFsyNTUmKE10XmplW1J0KytdKV0pPj4+OF5YWzI1NSYoTXReamVbUnQrK10pXSk+Pj44XlhbMjU1JihNdF5qZVtSdCsrXSldKT4+''@;'; put 'put ''PjheWFsyNTUmKE10XmplW1J0KytdKV07Zm9yKDtSdDx4dCszOylNdD1NdD4+PjheWFsyNTUmKE10XmplW1J0KytdKV07cmV0dXJuLTFeTXR9LEguc3RyPWZ1bmN0aW9uIFplKGplLFllKXtmb3IodmFyIFV0LG5uLE10PS0xXlllLHh0PTAsUnQ9amUubGVuZ3RoO3h0PFJ0OykoVXQ9amUuY2hh''@;'; put 'put ''ckNvZGVBdCh4dCsrKSk8MTI4P010PU10Pj4+OF5YWzI1NSYoTXReVXQpXTpVdDwyMDQ4P010PShNdD1NdD4+PjheWFsyNTUmKE10XigxOTJ8VXQ+PjYmMzEpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHw2MyZVdCkpXTpVdD49NTUyOTYmJlV0PDU3MzQ0PyhVdD02NCsoMTAyMyZVdCksbm49MTAy''@;'; put 'put ''MyZqZS5jaGFyQ29kZUF0KHh0KyspLE10PShNdD0oTXQ9KE10PU10Pj4+OF5YWzI1NSYoTXReKDI0MHxVdD4+OCY3KSldKT4+PjheWFsyNTUmKE10XigxMjh8VXQ+PjImNjMpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHxubj4+NiYxNXwoMyZVdCk8PDQpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHw2''@;'; put 'put ''MyZubikpXSk6TXQ9KE10PShNdD1NdD4+PjheWFsyNTUmKE10XigyMjR8VXQ+PjEyJjE1KSldKT4+PjheWFsyNTUmKE10XigxMjh8VXQ+PjYmNjMpKV0pPj4+OF5YWzI1NSYoTXReKDEyOHw2MyZVdCkpXTtyZXR1cm4tMV5NdH19KHd0PXt9KTt2YXIgdnQsbXQ9ZnVuY3Rpb24oKXt2YXIgWWUs''@;'; put 'put ''aWU9e307ZnVuY3Rpb24gd2UobHIpe2lmKCIvIj09bHIuY2hhckF0KGxyLmxlbmd0aC0xKSlyZXR1cm4tMT09PWxyLnNsaWNlKDAsLTEpLmluZGV4T2YoIi8iKT9scjp3ZShsci5zbGljZSgwLC0xKSk7dmFyIEJyPWxyLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1Ccj9scjpsci5zbGlj''@;'; put 'put ''ZSgwLEJyKzEpfWZ1bmN0aW9uIHhlKGxyKXtpZigiLyI9PWxyLmNoYXJBdChsci5sZW5ndGgtMSkpcmV0dXJuIHhlKGxyLnNsaWNlKDAsLTEpKTt2YXIgQnI9bHIubGFzdEluZGV4T2YoIi8iKTtyZXR1cm4tMT09PUJyP2xyOmxyLnNsaWNlKEJyKzEpfWZ1bmN0aW9uIEZlKGxyLEJyKXsic3Ry''@;'; put 'put ''aW5nIj09dHlwZW9mIEJyJiYoQnI9bmV3IERhdGUoQnIpKTt2YXIgZHI9QnIuZ2V0SG91cnMoKTtkcj0oZHI9ZHI8PDZ8QnIuZ2V0TWludXRlcygpKTw8NXxCci5nZXRTZWNvbmRzKCk+Pj4xLGxyLndyaXRlX3NoaWZ0KDIsZHIpO3ZhciBXbj1Cci5nZXRGdWxsWWVhcigpLTE5ODA7V249KFdu''@;'; put 'put ''PVduPDw0fEJyLmdldE1vbnRoKCkrMSk8PDV8QnIuZ2V0RGF0ZSgpLGxyLndyaXRlX3NoaWZ0KDIsV24pfWZ1bmN0aW9uIGplKGxyKXtLbChsciwwKTtmb3IodmFyIEJyPXt9LGRyPTA7bHIubDw9bHIubGVuZ3RoLTQ7KXt2YXIgV249bHIucmVhZF9zaGlmdCgyKSwkbj1sci5yZWFkX3NoaWZ0''@;'; put 'put ''KDIpLGJyPWxyLmwrJG4sV3I9e307MjE1ODk9PT1XbiYmKDEmKGRyPWxyLnJlYWRfc2hpZnQoMSkpJiYoV3IubXRpbWU9bHIucmVhZF9zaGlmdCg0KSksJG4+NSYmKDImZHImJihXci5hdGltZT1sci5yZWFkX3NoaWZ0KDQpKSw0JmRyJiYoV3IuY3RpbWU9bHIucmVhZF9zaGlmdCg0KSkpLFdy''@;'; put 'put ''Lm10aW1lJiYoV3IubXQ9bmV3IERhdGUoMWUzKldyLm10aW1lKSkpLGxyLmw9YnIsQnJbV25dPVdyfXJldHVybiBCcn1mdW5jdGlvbiBNdCgpe3JldHVybiBZZXx8KFllPUwoNzg3NzMpKX1mdW5jdGlvbiB4dChscixCcil7aWYoODA9PWxyWzBdJiY3NT09bHJbMV0pcmV0dXJuIHAwKGxyLEJy''@;'; put 'put ''KTtpZihsci5sZW5ndGg8NTEyKXRocm93IG5ldyBFcnJvcigiQ0ZCIGZpbGUgc2l6ZSAiK2xyLmxlbmd0aCsiIDwgNTEyIik7dmFyIGRyLCRuLGJyLFdyLHVpLElpLFduPTUxMix1MD1bXSx6aT1sci5zbGljZSgwLDUxMik7S2woemksMCk7dmFyIEowPWZ1bmN0aW9uIFJ0KGxyKXtpZig4MD09''@;'; put 'put ''bHJbbHIubF0mJjc1PT1scltsci5sKzFdKXJldHVyblswLDBdO2xyLmNoayhkaSwiSGVhZGVyIFNpZ25hdHVyZTogIiksbHIubCs9MTY7dmFyIEJyPWxyLnJlYWRfc2hpZnQoMiwidSIpO3JldHVybltsci5yZWFkX3NoaWZ0KDIsInUiKSxCcl19KHppKTtzd2l0Y2goZHI9SjBbMF0pe2Nhc2Ug''@;'; put 'put ''MzpXbj01MTI7YnJlYWs7Y2FzZSA0OlduPTQwOTY7YnJlYWs7Y2FzZSAwOmlmKDA9PUowWzFdKXJldHVybiBwMChscixCcik7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIk1ham9yIFZlcnNpb246IEV4cGVjdGVkIDMgb3IgNCBzYXcgIitkcil9NTEyIT09V24mJktsKHppPWxyLnNsaWNlKDAs''@;'; put 'put ''V24pLDI4KTt2YXIgSTA9bHIuc2xpY2UoMCxXbik7IWZ1bmN0aW9uIFV0KGxyLEJyKXt2YXIgZHI7c3dpdGNoKGxyLmwrPTIsZHI9bHIucmVhZF9zaGlmdCgyKSl7Y2FzZSA5OmlmKDMhPUJyKXRocm93IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCA5IHNhdyAiK2RyKTticmVh''@;'; put 'put ''aztjYXNlIDEyOmlmKDQhPUJyKXRocm93IG5ldyBFcnJvcigiU2VjdG9yIFNoaWZ0OiBFeHBlY3RlZCAxMiBzYXcgIitkcik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlNlY3RvciBTaGlmdDogRXhwZWN0ZWQgOSBvciAxMiBzYXcgIitkcil9bHIuY2hrKCIwNjAwIiwiTWluaSBT''@;'; put 'put ''ZWN0b3IgU2hpZnQ6ICIpLGxyLmNoaygiMDAwMDAwMDAwMDAwIiwiUmVzZXJ2ZWQ6ICIpfSh6aSxkcik7dmFyIGVhPXppLnJlYWRfc2hpZnQoNCwiaSIpO2lmKDM9PT1kciYmMCE9PWVhKXRocm93IG5ldyBFcnJvcigiIyBEaXJlY3RvcnkgU2VjdG9yczogRXhwZWN0ZWQgMCBzYXcgIitlYSk7''@;'; put 'put ''emkubCs9NCxXcj16aS5yZWFkX3NoaWZ0KDQsImkiKSx6aS5sKz00LHppLmNoaygiMDAxMDAwMDAiLCJNaW5pIFN0cmVhbSBDdXRvZmYgU2l6ZTogIiksdWk9emkucmVhZF9zaGlmdCg0LCJpIiksJG49emkucmVhZF9zaGlmdCg0LCJpIiksSWk9emkucmVhZF9zaGlmdCg0LCJpIiksYnI9emku''@;'; put 'put ''cmVhZF9zaGlmdCg0LCJpIik7Zm9yKHZhciBZbz0tMSx5bz0wO3lvPDEwOSYmISgoWW89emkucmVhZF9zaGlmdCg0LCJpIikpPDApOysreW8pdTBbeW9dPVlvO3ZhciAkYT1mdW5jdGlvbiBubihscixCcil7Zm9yKHZhciBkcj1NYXRoLmNlaWwobHIubGVuZ3RoL0JyKS0xLFduPVtdLCRuPTE7''@;'; put 'put ''JG48ZHI7KyskbilXblskbi0xXT1sci5zbGljZSgkbipCciwoJG4rMSkqQnIpO3JldHVybiBXbltkci0xXT1sci5zbGljZShkcipCciksV259KGxyLFduKTt6dChJaSxiciwkYSxXbix1MCk7dmFyIGpzPWZ1bmN0aW9uIFRuKGxyLEJyLGRyLFduKXt2YXIgJG49bHIubGVuZ3RoLGJyPVtdLFdy''@;'; put 'put ''PVtdLHVpPVtdLElpPVtdLHUwPVduLTEsemk9MCxKMD0wLEkwPTAsZWE9MDtmb3Ioemk9MDt6aTwkbjsrK3ppKWlmKHVpPVtdLChJMD16aStCcik+PSRuJiYoSTAtPSRuKSwhV3JbSTBdKXtJaT1bXTt2YXIgWW89W107Zm9yKEowPUkwO0owPj0wOyl7WW9bSjBdPSEwLFdyW0owXT0hMCx1aVt1''@;'; put 'put ''aS5sZW5ndGhdPUowLElpLnB1c2gobHJbSjBdKTt2YXIgeW89ZHJbTWF0aC5mbG9vcig0KkowL1duKV07aWYoV248NCsoZWE9NCpKMCZ1MCkpdGhyb3cgbmV3IEVycm9yKCJGQVQgYm91bmRhcnkgY3Jvc3NlZDogIitKMCsiIDQgIitXbik7aWYoIWxyW3lvXXx8WW9bSjA9TmMobHJbeW9dLGVh''@;'; put 'put ''KV0pYnJlYWt9YnJbSTBdPXtub2Rlczp1aSxkYXRhOnZuKFtJaV0pfX1yZXR1cm4gYnJ9KCRhLFdyLHUwLFduKTtqc1tXcl0ubmFtZT0iIURpcmVjdG9yeSIsJG4+MCYmdWkhPT1jciYmKGpzW3VpXS5uYW1lPSIhTWluaUZBVCIpLGpzW3UwWzBdXS5uYW1lPSIhRkFUIixqcy5mYXRfYWRkcnM9''@;'; put 'put ''dTAsanMuc3N6PVduO3ZhciBPdT1bXSxwcz1bXSx3cz1bXTsoZnVuY3Rpb24gT24obHIsQnIsZHIsV24sJG4sYnIsV3IsdWkpe2Zvcih2YXIgZWEsSWk9MCx1MD1Xbi5sZW5ndGg/MjowLHppPUJyW2xyXS5kYXRhLEowPTAsSTA9MDtKMDx6aS5sZW5ndGg7SjArPTEyOCl7dmFyIFlvPXppLnNs''@;'; put 'put ''aWNlKEowLEowKzEyOCk7S2woWW8sNjQpLEkwPVlvLnJlYWRfc2hpZnQoMiksZWE9Z2MoWW8sMCxJMC11MCksV24ucHVzaChlYSk7dmFyIHlvPXtuYW1lOmVhLHR5cGU6WW8ucmVhZF9zaGlmdCgxKSxjb2xvcjpZby5yZWFkX3NoaWZ0KDEpLEw6WW8ucmVhZF9zaGlmdCg0LCJpIiksUjpZby5y''@;'; put 'put ''ZWFkX3NoaWZ0KDQsImkiKSxDOllvLnJlYWRfc2hpZnQoNCwiaSIpLGNsc2lkOllvLnJlYWRfc2hpZnQoMTYpLHN0YXRlOllvLnJlYWRfc2hpZnQoNCwiaSIpLHN0YXJ0OjAsc2l6ZTowfTswIT09WW8ucmVhZF9zaGlmdCgyKStZby5yZWFkX3NoaWZ0KDIpK1lvLnJlYWRfc2hpZnQoMikrWW8u''@;'; put 'put ''cmVhZF9zaGlmdCgyKSYmKHlvLmN0PVluKFlvLFlvLmwtOCkpLDAhPT1Zby5yZWFkX3NoaWZ0KDIpK1lvLnJlYWRfc2hpZnQoMikrWW8ucmVhZF9zaGlmdCgyKStZby5yZWFkX3NoaWZ0KDIpJiYoeW8ubXQ9WW4oWW8sWW8ubC04KSkseW8uc3RhcnQ9WW8ucmVhZF9zaGlmdCg0LCJpIikseW8u''@;'; put 'put ''c2l6ZT1Zby5yZWFkX3NoaWZ0KDQsImkiKSx5by5zaXplPDAmJnlvLnN0YXJ0PDAmJih5by5zaXplPXlvLnR5cGU9MCx5by5zdGFydD1jcix5by5uYW1lPSIiKSw1PT09eW8udHlwZT8oSWk9eW8uc3RhcnQsJG4+MCYmSWkhPT1jciYmKEJyW0lpXS5uYW1lPSIhU3RyZWFtRGF0YSIpKTp5by5z''@;'; put 'put ''aXplPj00MDk2Pyh5by5zdG9yYWdlPSJmYXQiLHZvaWQgMD09PUJyW3lvLnN0YXJ0XSYmKEJyW3lvLnN0YXJ0XT1Qbihkcix5by5zdGFydCxCci5mYXRfYWRkcnMsQnIuc3N6KSksQnJbeW8uc3RhcnRdLm5hbWU9eW8ubmFtZSx5by5jb250ZW50PUJyW3lvLnN0YXJ0XS5kYXRhLnNsaWNlKDAs''@;'; put 'put ''eW8uc2l6ZSkpOih5by5zdG9yYWdlPSJtaW5pZmF0Iix5by5zaXplPDA/eW8uc2l6ZT0wOklpIT09Y3ImJnlvLnN0YXJ0IT09Y3ImJkJyW0lpXSYmKHlvLmNvbnRlbnQ9RHQoeW8sQnJbSWldLmRhdGEsKEJyW3VpXXx8e30pLmRhdGEpKSkseW8uY29udGVudCYmS2woeW8uY29udGVudCwwKSxi''@;'; put 'put ''cltlYV09eW8sV3IucHVzaCh5byl9fSkoV3IsanMsJGEsT3UsJG4se30scHMsdWkpLGZ1bmN0aW9uIENuKGxyLEJyLGRyKXtmb3IodmFyIFduPTAsJG49MCxicj0wLFdyPTAsdWk9MCxJaT1kci5sZW5ndGgsdTA9W10semk9W107V248SWk7KytXbil1MFtXbl09emlbV25dPVduLEJyW1duXT1k''@;'; put 'put ''cltXbl07Zm9yKDt1aTx6aS5sZW5ndGg7Kyt1aSkkbj1scltXbj16aVt1aV1dLkwsYnI9bHJbV25dLlIsV3I9bHJbV25dLkMsdTBbV25dPT09V24mJigtMSE9PSRuJiZ1MFskbl0hPT0kbiYmKHUwW1duXT11MFskbl0pLC0xIT09YnImJnUwW2JyXSE9PWJyJiYodTBbV25dPXUwW2JyXSkpLC0x''@;'; put 'put ''IT09V3ImJih1MFtXcl09V24pLC0xIT09JG4mJlduIT11MFtXbl0mJih1MFskbl09dTBbV25dLHppLmxhc3RJbmRleE9mKCRuKTx1aSYmemkucHVzaCgkbikpLC0xIT09YnImJlduIT11MFtXbl0mJih1MFticl09dTBbV25dLHppLmxhc3RJbmRleE9mKGJyKTx1aSYmemkucHVzaChicikpO2Zv''@;'; put 'put ''cihXbj0xO1duPElpOysrV24pdTBbV25dPT09V24mJigtMSE9PWJyJiZ1MFticl0hPT1icj91MFtXbl09dTBbYnJdOi0xIT09JG4mJnUwWyRuXSE9PSRuJiYodTBbV25dPXUwWyRuXSkpO2ZvcihXbj0xO1duPElpOysrV24paWYoMCE9PWxyW1duXS50eXBlKXtpZigodWk9V24pIT11MFt1aV0p''@;'; put 'put ''ZG97QnJbV25dPUJyW3VpPXUwW3VpXV0rIi8iK0JyW1duXX13aGlsZSgwIT09dWkmJi0xIT09dTBbdWldJiZ1aSE9dTBbdWldKTt1MFtXbl09LTF9Zm9yKEJyWzBdKz0iLyIsV249MTtXbjxJaTsrK1duKTIhPT1scltXbl0udHlwZSYmKEJyW1duXSs9Ii8iKX0ocHMsd3MsT3UpLE91LnNoaWZ0''@;'; put 'put ''KCk7dmFyIEVzPXtGaWxlSW5kZXg6cHMsRnVsbFBhdGhzOndzfTtyZXR1cm4gQnImJkJyLnJhdyYmKEVzLnJhdz17aGVhZGVyOkkwLHNlY3RvcnM6JGF9KSxFc31mdW5jdGlvbiBEdChscixCcixkcil7Zm9yKHZhciAkbj1sci5zaXplLGJyPVtdLFdyPWxyLnN0YXJ0O2RyJiYkbj4wJiZXcj49''@;'; put 'put ''MDspYnIucHVzaChCci5zbGljZShXcipvaSxXcipvaStvaSkpLCRuLT1vaSxXcj1OYyhkciw0KldyKTtyZXR1cm4gMD09PWJyLmxlbmd0aD9SaSgwKTpWKGJyKS5zbGljZSgwLGxyLnNpemUpfWZ1bmN0aW9uIHp0KGxyLEJyLGRyLFduLCRuKXt2YXIgYnI9Y3I7aWYobHI9PT1jcil7aWYoMCE9''@;'; put 'put ''PUJyKXRocm93IG5ldyBFcnJvcigiRElGQVQgY2hhaW4gc2hvcnRlciB0aGFuIGV4cGVjdGVkIil9ZWxzZSBpZigtMSE9PWxyKXt2YXIgV3I9ZHJbbHJdLHVpPShXbj4+PjIpLTE7aWYoIVdyKXJldHVybjtmb3IodmFyIElpPTA7SWk8dWkmJihicj1OYyhXciw0KklpKSkhPT1jcjsrK0lpKSRu''@;'; put 'put ''LnB1c2goYnIpO3p0KE5jKFdyLFduLTQpLEJyLTEsZHIsV24sJG4pfX1mdW5jdGlvbiBQbihscixCcixkcixXbiwkbil7dmFyIGJyPVtdLFdyPVtdOyRufHwoJG49W10pO3ZhciB1aT1Xbi0xLElpPTAsdTA9MDtmb3IoSWk9QnI7SWk+PTA7KXskbltJaV09ITAsYnJbYnIubGVuZ3RoXT1JaSxX''@;'; put 'put ''ci5wdXNoKGxyW0lpXSk7dmFyIHppPWRyW01hdGguZmxvb3IoNCpJaS9XbildO2lmKFduPDQrKHUwPTQqSWkmdWkpKXRocm93IG5ldyBFcnJvcigiRkFUIGJvdW5kYXJ5IGNyb3NzZWQ6ICIrSWkrIiA0ICIrV24pO2lmKCFsclt6aV0pYnJlYWs7SWk9TmMobHJbemldLHUwKX1yZXR1cm57bm9k''@;'; put 'put ''ZXM6YnIsZGF0YTp2bihbV3JdKX19ZnVuY3Rpb24gWW4obHIsQnIpe3JldHVybiBuZXcgRGF0ZSgxZTMqKFlsKGxyLEJyKzQpLzFlNypNYXRoLnBvdygyLDMyKStZbChscixCcikvMWU3LTExNjQ0NDczNjAwKSl9ZnVuY3Rpb24geXIobHIsQnIpe3ZhciBkcj1Ccnx8e30sV249ZHIucm9vdHx8''@;'; put 'put ''IlJvb3QgRW50cnkiO2lmKGxyLkZ1bGxQYXRoc3x8KGxyLkZ1bGxQYXRocz1bXSksbHIuRmlsZUluZGV4fHwobHIuRmlsZUluZGV4PVtdKSxsci5GdWxsUGF0aHMubGVuZ3RoIT09bHIuRmlsZUluZGV4Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImluY29uc2lzdGVudCBDRkIgc3RydWN0dXJl''@;'; put 'put ''Iik7MD09PWxyLkZ1bGxQYXRocy5sZW5ndGgmJihsci5GdWxsUGF0aHNbMF09V24rIi8iLGxyLkZpbGVJbmRleFswXT17bmFtZTpXbix0eXBlOjV9KSxkci5DTFNJRCYmKGxyLkZpbGVJbmRleFswXS5jbHNpZD1kci5DTFNJRCksZnVuY3Rpb24gYXIobHIpe3ZhciBCcj0iXHgwMVNoMzN0SjUi''@;'; put 'put ''O2lmKCFtdC5maW5kKGxyLCIvIitCcikpe3ZhciBkcj1SaSg0KTtkclswXT01NSxkclsxXT1kclszXT01MCxkclsyXT01NCxsci5GaWxlSW5kZXgucHVzaCh7bmFtZTpCcix0eXBlOjIsY29udGVudDpkcixzaXplOjQsTDo2OSxSOjY5LEM6Njl9KSxsci5GdWxsUGF0aHMucHVzaChsci5GdWxs''@;'; put 'put ''UGF0aHNbMF0rQnIpLEdyKGxyKX19KGxyKX1mdW5jdGlvbiBHcihscixCcil7eXIobHIpO2Zvcih2YXIgZHI9ITEsV249ITEsJG49bHIuRnVsbFBhdGhzLmxlbmd0aC0xOyRuPj0wOy0tJG4pe3ZhciBicj1sci5GaWxlSW5kZXhbJG5dO3N3aXRjaChici50eXBlKXtjYXNlIDA6V24/ZHI9ITA6''@;'; put 'put ''KGxyLkZpbGVJbmRleC5wb3AoKSxsci5GdWxsUGF0aHMucG9wKCkpO2JyZWFrO2Nhc2UgMTpjYXNlIDI6Y2FzZSA1OlduPSEwLGlzTmFOKGJyLlIqYnIuTCpici5DKSYmKGRyPSEwKSxici5SPi0xJiZici5MPi0xJiZici5SPT1ici5MJiYoZHI9ITApO2JyZWFrO2RlZmF1bHQ6ZHI9ITB9fWlm''@;'; put 'put ''KGRyfHxCcil7dmFyIFdyPW5ldyBEYXRlKDE5ODcsMSwxOSksdWk9MCxJaT1bXTtmb3IoJG49MDskbjxsci5GdWxsUGF0aHMubGVuZ3RoOysrJG4pMCE9PWxyLkZpbGVJbmRleFskbl0udHlwZSYmSWkucHVzaChbbHIuRnVsbFBhdGhzWyRuXSxsci5GaWxlSW5kZXhbJG5dXSk7Zm9yKCRuPTA7''@;'; put 'put ''JG48SWkubGVuZ3RoOysrJG4pe3ZhciB1MD13ZShJaVskbl1bMF0pO2ZvcihXbj0hMSx1aT0wO3VpPElpLmxlbmd0aDsrK3VpKUlpW3VpXVswXT09PXUwJiYoV249ITApO1dufHxJaS5wdXNoKFt1MCx7bmFtZTp4ZSh1MCkucmVwbGFjZSgiLyIsIiIpLHR5cGU6MSxjbHNpZDpVaSxjdDpXcixt''@;'; put 'put ''dDpXcixjb250ZW50Om51bGx9XSl9Zm9yKElpLnNvcnQoZnVuY3Rpb24oSTAsZWEpe3JldHVybiBmdW5jdGlvbiBYKGxyLEJyKXtmb3IodmFyIGRyPWxyLnNwbGl0KCIvIiksV249QnIuc3BsaXQoIi8iKSwkbj0wLGJyPTAsV3I9TWF0aC5taW4oZHIubGVuZ3RoLFduLmxlbmd0aCk7JG48V3I7''@;'; put 'put ''Kyskbil7aWYoYnI9ZHJbJG5dLmxlbmd0aC1Xblskbl0ubGVuZ3RoKXJldHVybiBicjtpZihkclskbl0hPVduWyRuXSlyZXR1cm4gZHJbJG5dPFduWyRuXT8tMToxfXJldHVybiBkci5sZW5ndGgtV24ubGVuZ3RofShJMFswXSxlYVswXSl9KSxsci5GdWxsUGF0aHM9W10sbHIuRmlsZUluZGV4''@;'; put 'put ''PVtdLCRuPTA7JG48SWkubGVuZ3RoOysrJG4pbHIuRnVsbFBhdGhzWyRuXT1JaVskbl1bMF0sbHIuRmlsZUluZGV4WyRuXT1JaVskbl1bMV07Zm9yKCRuPTA7JG48SWkubGVuZ3RoOysrJG4pe3ZhciB6aT1sci5GaWxlSW5kZXhbJG5dLEowPWxyLkZ1bGxQYXRoc1skbl07aWYoemkubmFtZT14''@;'; put 'put ''ZShKMCkucmVwbGFjZSgiLyIsIiIpLHppLkw9emkuUj16aS5DPS0oemkuY29sb3I9MSksemkuc2l6ZT16aS5jb250ZW50P3ppLmNvbnRlbnQubGVuZ3RoOjAsemkuc3RhcnQ9MCx6aS5jbHNpZD16aS5jbHNpZHx8VWksMD09PSRuKXppLkM9SWkubGVuZ3RoPjE/MTotMSx6aS5zaXplPTAsemku''@;'; put 'put ''dHlwZT01O2Vsc2UgaWYoIi8iPT1KMC5zbGljZSgtMSkpe2Zvcih1aT0kbisxO3VpPElpLmxlbmd0aCYmd2UobHIuRnVsbFBhdGhzW3VpXSkhPUowOysrdWkpO2Zvcih6aS5DPXVpPj1JaS5sZW5ndGg/LTE6dWksdWk9JG4rMTt1aTxJaS5sZW5ndGgmJndlKGxyLkZ1bGxQYXRoc1t1aV0pIT13''@;'; put 'put ''ZShKMCk7Kyt1aSk7emkuUj11aT49SWkubGVuZ3RoPy0xOnVpLHppLnR5cGU9MX1lbHNlIHdlKGxyLkZ1bGxQYXRoc1skbisxXXx8IiIpPT13ZShKMCkmJih6aS5SPSRuKzEpLHppLnR5cGU9Mn19fWZ1bmN0aW9uIHpyKGxyLEJyKXt2YXIgZHI9QnJ8fHt9O2lmKEdyKGxyKSwiemlwIj09ZHIu''@;'; put 'put ''ZmlsZVR5cGUpcmV0dXJuIGZ1bmN0aW9uIEFsKGxyLEJyKXt2YXIgZHI9QnJ8fHt9LFduPVtdLCRuPVtdLGJyPVJpKDEpLFdyPWRyLmNvbXByZXNzaW9uPzg6MCx1MD0wLHppPTAsSjA9MCxJMD0wLGVhPWxyLkZ1bGxQYXRoc1swXSxZbz1lYSx5bz1sci5GaWxlSW5kZXhbMF0sJGE9W10sanM9''@;'; put 'put ''MDtmb3IodTA9MTt1MDxsci5GdWxsUGF0aHMubGVuZ3RoOysrdTApaWYoWW89bHIuRnVsbFBhdGhzW3UwXS5zbGljZShlYS5sZW5ndGgpLCh5bz1sci5GaWxlSW5kZXhbdTBdKS5zaXplJiZ5by5jb250ZW50JiYiXHgwMVNoMzN0SjUiIT1Zbyl7dmFyIEVjPUowLE91PVJpKFlvLmxlbmd0aCk7''@;'; put 'put ''Zm9yKHppPTA7emk8WW8ubGVuZ3RoOysremkpT3Uud3JpdGVfc2hpZnQoMSwxMjcmWW8uY2hhckNvZGVBdCh6aSkpO091PU91LnNsaWNlKDAsT3UubCksJGFbSTBdPXd0LmJ1Zih5by5jb250ZW50LDApO3ZhciBwcz15by5jb250ZW50Ozg9PVdyJiYocHM9a2kocHMpKSwoYnI9UmkoMzApKS53''@;'; put 'put ''cml0ZV9zaGlmdCg0LDY3MzI0NzUyKSxici53cml0ZV9zaGlmdCgyLDIwKSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsV3IpLHlvLm10P0ZlKGJyLHlvLm10KTpici53cml0ZV9zaGlmdCg0LDApLGJyLndyaXRlX3NoaWZ0KC00LCRhW0kwXSksYnIud3JpdGVfc2hpZnQo''@;'; put 'put ''NCxwcy5sZW5ndGgpLGJyLndyaXRlX3NoaWZ0KDQseW8uY29udGVudC5sZW5ndGgpLGJyLndyaXRlX3NoaWZ0KDIsT3UubGVuZ3RoKSxici53cml0ZV9zaGlmdCgyLDApLEowKz1ici5sZW5ndGgsV24ucHVzaChiciksSjArPU91Lmxlbmd0aCxXbi5wdXNoKE91KSxKMCs9cHMubGVuZ3RoLFdu''@;'; put 'put ''LnB1c2gocHMpLChicj1SaSg0NikpLndyaXRlX3NoaWZ0KDQsMzM2MzkyNDgpLGJyLndyaXRlX3NoaWZ0KDIsMCksYnIud3JpdGVfc2hpZnQoMiwyMCksYnIud3JpdGVfc2hpZnQoMiwwKSxici53cml0ZV9zaGlmdCgyLFdyKSxici53cml0ZV9zaGlmdCg0LDApLGJyLndyaXRlX3NoaWZ0KC00''@;'; put 'put ''LCRhW0kwXSksYnIud3JpdGVfc2hpZnQoNCxwcy5sZW5ndGgpLGJyLndyaXRlX3NoaWZ0KDQseW8uY29udGVudC5sZW5ndGgpLGJyLndyaXRlX3NoaWZ0KDIsT3UubGVuZ3RoKSxici53cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsMCksYnIud3JpdGVfc2hpZnQoMiwwKSxici53''@;'; put 'put ''cml0ZV9zaGlmdCgyLDApLGJyLndyaXRlX3NoaWZ0KDQsMCksYnIud3JpdGVfc2hpZnQoNCxFYyksanMrPWJyLmwsJG4ucHVzaChiciksanMrPU91Lmxlbmd0aCwkbi5wdXNoKE91KSwrK0kwfXJldHVybihicj1SaSgyMikpLndyaXRlX3NoaWZ0KDQsMTAxMDEwMjU2KSxici53cml0ZV9zaGlm''@;'; put 'put ''dCgyLDApLGJyLndyaXRlX3NoaWZ0KDIsMCksYnIud3JpdGVfc2hpZnQoMixJMCksYnIud3JpdGVfc2hpZnQoMixJMCksYnIud3JpdGVfc2hpZnQoNCxqcyksYnIud3JpdGVfc2hpZnQoNCxKMCksYnIud3JpdGVfc2hpZnQoMiwwKSxWKFtWKFduKSxWKCRuKSxicl0pfShscixkcik7dmFyIFdu''@;'; put 'put ''PWZ1bmN0aW9uKGVhKXtmb3IodmFyIFlvPTAseW89MCwkYT0wOyRhPGVhLkZpbGVJbmRleC5sZW5ndGg7KyskYSl7dmFyIGpzPWVhLkZpbGVJbmRleFskYV07aWYoanMuY29udGVudCl7dmFyIEVjPWpzLmNvbnRlbnQubGVuZ3RoO0VjPjAmJihFYzw0MDk2P1lvKz1FYys2Mz4+Njp5bys9RWMr''@;'; put 'put ''NTExPj45KX19Zm9yKHZhciBPdT1lYS5GdWxsUGF0aHMubGVuZ3RoKzM+PjIsd3M9WW8rMTI3Pj43LEVzPShZbys3Pj4zKSt5bytPdSt3cyxrMT1FcysxMjc+Pjcscjc9azE8PTEwOT8wOk1hdGguY2VpbCgoazEtMTA5KS8xMjcpO0VzK2sxK3I3KzEyNz4+Nz5rMTspcjc9KytrMTw9MTA5PzA6''@;'; put 'put ''TWF0aC5jZWlsKChrMS0xMDkpLzEyNyk7dmFyIFdkPVsxLHI3LGsxLHdzLE91LHlvLFlvLDBdO3JldHVybiBlYS5GaWxlSW5kZXhbMF0uc2l6ZT1Zbzw8NixXZFs3XT0oZWEuRmlsZUluZGV4WzBdLnN0YXJ0PVdkWzBdK1dkWzFdK1dkWzJdK1dkWzNdK1dkWzRdK1dkWzVdKSsoV2RbNl0rNz4+''@;'; put 'put ''MyksV2R9KGxyKSwkbj1SaShXbls3XTw8OSksYnI9MCxXcj0wO2Zvcihicj0wO2JyPDg7Kyticikkbi53cml0ZV9zaGlmdCgxLHYwW2JyXSk7Zm9yKGJyPTA7YnI8ODsrK2JyKSRuLndyaXRlX3NoaWZ0KDIsMCk7Zm9yKCRuLndyaXRlX3NoaWZ0KDIsNjIpLCRuLndyaXRlX3NoaWZ0KDIsMyks''@;'; put 'put ''JG4ud3JpdGVfc2hpZnQoMiw2NTUzNCksJG4ud3JpdGVfc2hpZnQoMiw5KSwkbi53cml0ZV9zaGlmdCgyLDYpLGJyPTA7YnI8MzsrK2JyKSRuLndyaXRlX3NoaWZ0KDIsMCk7Zm9yKCRuLndyaXRlX3NoaWZ0KDQsMCksJG4ud3JpdGVfc2hpZnQoNCxXblsyXSksJG4ud3JpdGVfc2hpZnQoNCxX''@;'; put 'put ''blswXStXblsxXStXblsyXStXblszXS0xKSwkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsNDA5NiksJG4ud3JpdGVfc2hpZnQoNCxXblszXT9XblswXStXblsxXStXblsyXS0xOmNyKSwkbi53cml0ZV9zaGlmdCg0LFduWzNdKSwkbi53cml0ZV9zaGlmdCgtNCxXblsxXT9X''@;'; put 'put ''blswXS0xOmNyKSwkbi53cml0ZV9zaGlmdCg0LFduWzFdKSxicj0wO2JyPDEwOTsrK2JyKSRuLndyaXRlX3NoaWZ0KC00LGJyPFduWzJdP1duWzFdK2JyOi0xKTtpZihXblsxXSlmb3IoV3I9MDtXcjxXblsxXTsrK1dyKXtmb3IoO2JyPDIzNisxMjcqV3I7Kyticikkbi53cml0ZV9zaGlmdCgt''@;'; put 'put ''NCxicjxXblsyXT9XblsxXSticjotMSk7JG4ud3JpdGVfc2hpZnQoLTQsV3I9PT1XblsxXS0xP2NyOldyKzEpfXZhciB1aT1mdW5jdGlvbihlYSl7Zm9yKFdyKz1lYTticjxXci0xOysrYnIpJG4ud3JpdGVfc2hpZnQoLTQsYnIrMSk7ZWEmJigrK2JyLCRuLndyaXRlX3NoaWZ0KC00LGNyKSl9''@;'; put 'put ''O2ZvcihXcj1icj0wLFdyKz1XblsxXTticjxXcjsrK2JyKSRuLndyaXRlX3NoaWZ0KC00LHRvLkRJRlNFQ1QpO2ZvcihXcis9V25bMl07YnI8V3I7Kyticikkbi53cml0ZV9zaGlmdCgtNCx0by5GQVRTRUNUKTt1aShXblszXSksdWkoV25bNF0pO2Zvcih2YXIgSWk9MCx1MD0wLHppPWxyLkZp''@;'; put 'put ''bGVJbmRleFswXTtJaTxsci5GaWxlSW5kZXgubGVuZ3RoOysrSWkpKHppPWxyLkZpbGVJbmRleFtJaV0pLmNvbnRlbnQmJiEoKHUwPXppLmNvbnRlbnQubGVuZ3RoKTw0MDk2KSYmKHppLnN0YXJ0PVdyLHVpKHUwKzUxMT4+OSkpO2Zvcih1aShXbls2XSs3Pj4zKTs1MTEmJG4ubDspJG4ud3Jp''@;'; put 'put ''dGVfc2hpZnQoLTQsdG8uRU5ET0ZDSEFJTik7Zm9yKFdyPWJyPTAsSWk9MDtJaTxsci5GaWxlSW5kZXgubGVuZ3RoOysrSWkpKHppPWxyLkZpbGVJbmRleFtJaV0pLmNvbnRlbnQmJih1MD16aS5jb250ZW50Lmxlbmd0aCkmJiEodTA+PTQwOTYpJiYoemkuc3RhcnQ9V3IsdWkodTArNjM+PjYp''@;'; put 'put ''KTtmb3IoOzUxMSYkbi5sOykkbi53cml0ZV9zaGlmdCgtNCx0by5FTkRPRkNIQUlOKTtmb3IoYnI9MDticjxXbls0XTw8MjsrK2JyKXt2YXIgSjA9bHIuRnVsbFBhdGhzW2JyXTtpZihKMCYmMCE9PUowLmxlbmd0aCl7emk9bHIuRmlsZUluZGV4W2JyXSwwPT09YnImJih6aS5zdGFydD16aS5z''@;'; put 'put ''aXplP3ppLnN0YXJ0LTE6Y3IpO3ZhciBJMD0wPT09YnImJmRyLnJvb3R8fHppLm5hbWU7aWYodTA9MiooSTAubGVuZ3RoKzEpLCRuLndyaXRlX3NoaWZ0KDY0LEkwLCJ1dGYxNmxlIiksJG4ud3JpdGVfc2hpZnQoMix1MCksJG4ud3JpdGVfc2hpZnQoMSx6aS50eXBlKSwkbi53cml0ZV9zaGlm''@;'; put 'put ''dCgxLHppLmNvbG9yKSwkbi53cml0ZV9zaGlmdCgtNCx6aS5MKSwkbi53cml0ZV9zaGlmdCgtNCx6aS5SKSwkbi53cml0ZV9zaGlmdCgtNCx6aS5DKSx6aS5jbHNpZCkkbi53cml0ZV9zaGlmdCgxNix6aS5jbHNpZCwiaGV4Iik7ZWxzZSBmb3IoSWk9MDtJaTw0OysrSWkpJG4ud3JpdGVfc2hp''@;'; put 'put ''ZnQoNCwwKTskbi53cml0ZV9zaGlmdCg0LHppLnN0YXRlfHwwKSwkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsMCksJG4ud3JpdGVfc2hpZnQoNCwwKSwkbi53cml0ZV9zaGlmdCg0LDApLCRuLndyaXRlX3NoaWZ0KDQsemkuc3RhcnQpLCRuLndyaXRlX3NoaWZ0KDQsemku''@;'; put 'put ''c2l6ZSksJG4ud3JpdGVfc2hpZnQoNCwwKX1lbHNle2ZvcihJaT0wO0lpPDE3OysrSWkpJG4ud3JpdGVfc2hpZnQoNCwwKTtmb3IoSWk9MDtJaTwzOysrSWkpJG4ud3JpdGVfc2hpZnQoNCwtMSk7Zm9yKElpPTA7SWk8MTI7KytJaSkkbi53cml0ZV9zaGlmdCg0LDApfX1mb3IoYnI9MTticjxs''@;'; put 'put ''ci5GaWxlSW5kZXgubGVuZ3RoOysrYnIpaWYoKHppPWxyLkZpbGVJbmRleFticl0pLnNpemU+PTQwOTYpe2Zvcigkbi5sPXppLnN0YXJ0KzE8PDksSWk9MDtJaTx6aS5zaXplOysrSWkpJG4ud3JpdGVfc2hpZnQoMSx6aS5jb250ZW50W0lpXSk7Zm9yKDs1MTEmSWk7KytJaSkkbi53cml0ZV9z''@;'; put 'put ''aGlmdCgxLDApfWZvcihicj0xO2JyPGxyLkZpbGVJbmRleC5sZW5ndGg7KyticilpZigoemk9bHIuRmlsZUluZGV4W2JyXSkuc2l6ZT4wJiZ6aS5zaXplPDQwOTYpe2ZvcihJaT0wO0lpPHppLnNpemU7KytJaSkkbi53cml0ZV9zaGlmdCgxLHppLmNvbnRlbnRbSWldKTtmb3IoOzYzJklpOysr''@;'; put 'put ''SWkpJG4ud3JpdGVfc2hpZnQoMSwwKX1mb3IoOyRuLmw8JG4ubGVuZ3RoOykkbi53cml0ZV9zaGlmdCgxLDApO3JldHVybiAkbn1pZS52ZXJzaW9uPSIxLjEuNCI7dmFyIEVpLG9pPTY0LGNyPS0yLGRpPSJkMGNmMTFlMGExYjExYWUxIix2MD1bMjA4LDIwNywxNywyMjQsMTYxLDE3NywyNiwy''@;'; put 'put ''MjVdLFVpPSIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsdG89e01BWFJFR1NFQ1Q6LTYsRElGU0VDVDotNCxGQVRTRUNUOi0zLEVORE9GQ0hBSU46Y3IsRlJFRVNFQ1Q6LTEsSEVBREVSX1NJR05BVFVSRTpkaSxIRUFERVJfTUlOT1JfVkVSU0lPTjoiM2UwMCIsTUFYUkVHU0lE''@;'; put 'put ''Oi02LE5PU1RSRUFNOi0xLEhFQURFUl9DTFNJRDpVaSxFbnRyeVR5cGVzOlsidW5rbm93biIsInN0b3JhZ2UiLCJzdHJlYW0iLCJsb2NrYnl0ZXMiLCJwcm9wZXJ0eSIsInJvb3QiXX07ZnVuY3Rpb24gYmkobHIpe2Zvcih2YXIgQnI9bmV3IEFycmF5KGxyLmxlbmd0aCksZHI9MDtkcjxsci5s''@;'; put 'put ''ZW5ndGg7KytkcilCcltkcl09U3RyaW5nLmZyb21DaGFyQ29kZShscltkcl0pO3JldHVybiBCci5qb2luKCIiKX1mdW5jdGlvbiBraShscil7cmV0dXJuIEVpP0VpLmRlZmxhdGVSYXdTeW5jKGxyKTpsMihscil9Zm9yKHZhciBscixCcixOMD1bMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEs''@;'; put 'put ''NCwxMiwzLDEzLDIsMTQsMSwxNV0sdDA9WzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNThdLGlvPVsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4''@;'; put 'put ''NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzddLCQwPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSxWYT0kMD9uZXcgVWludDhBcnJheSgyNTYpOltdLGpvPTA7am88MjU2Oysram8pVmFbam9dPSh2b2lkIDAsMjU1Jigo''@;'; put 'put ''QnI9MTM5NTM2JigobHI9am8pPDwxfGxyPDwxMSl8NTU4MTQ0Jihscjw8NXxscjw8MTUpKT4+MTZ8QnI+Pjh8QnIpKTtmdW5jdGlvbiB3YShscixCcil7dmFyIGRyPVZhWzI1NSZscl07cmV0dXJuIEJyPD04P2RyPj4+OC1CcjooZHI9ZHI8PDh8VmFbbHI+PjgmMjU1XSxCcjw9MTY/ZHI+Pj4x''@;'; put 'put ''Ni1CcjooZHI9ZHI8PDh8VmFbbHI+PjE2JjI1NV0pPj4+MjQtQnIpfWZ1bmN0aW9uIGFvKGxyLEJyKXt2YXIgZHI9NyZCcixXbj1Ccj4+PjM7cmV0dXJuKGxyW1duXXwoZHI8PTY/MDpscltXbisxXTw8OCkpPj4+ZHImM31mdW5jdGlvbiB4MChscixCcil7dmFyIGRyPTcmQnIsV249QnI+Pj4z''@;'; put 'put ''O3JldHVybihscltXbl18KGRyPD01PzA6bHJbV24rMV08PDgpKT4+PmRyJjd9ZnVuY3Rpb24ganIobHIsQnIpe3ZhciBkcj03JkJyLFduPUJyPj4+MztyZXR1cm4obHJbV25dfChkcjw9Mz8wOmxyW1duKzFdPDw4KSk+Pj5kciYzMX1mdW5jdGlvbiBIaShscixCcil7dmFyIGRyPTcmQnIsV249''@;'; put 'put ''QnI+Pj4zO3JldHVybihscltXbl18KGRyPD0xPzA6bHJbV24rMV08PDgpKT4+PmRyJjEyN31mdW5jdGlvbiB2byhscixCcixkcil7dmFyIFduPTcmQnIsJG49QnI+Pj4zLFdyPWxyWyRuXT4+PlduO3JldHVybiBkcjw4LVdufHwoV3J8PWxyWyRuKzFdPDw4LVduLGRyPDE2LVduKXx8KFdyfD1s''@;'; put 'put ''clskbisyXTw8MTYtV24sZHI8MjQtV24pfHwoV3J8PWxyWyRuKzNdPDwyNC1XbiksV3ImKDE8PGRyKS0xfWZ1bmN0aW9uIHhvKGxyLEJyKXt2YXIgZHI9bHIubGVuZ3RoLFduPTIqZHI+QnI/MipkcjpCcis1LCRuPTA7aWYoZHI+PUJyKXJldHVybiBscjtpZihJZSl7dmFyIGJyPU8oV24pO2lm''@;'; put 'put ''KGxyLmNvcHkpbHIuY29weShicik7ZWxzZSBmb3IoOyRuPGxyLmxlbmd0aDsrKyRuKWJyWyRuXT1sclskbl07cmV0dXJuIGJyfWlmKCQwKXt2YXIgV3I9bmV3IFVpbnQ4QXJyYXkoV24pO2lmKFdyLnNldClXci5zZXQobHIpO2Vsc2UgZm9yKDskbjxsci5sZW5ndGg7KyskbilXclskbl09bHJb''@;'; put 'put ''JG5dO3JldHVybiBXcn1yZXR1cm4gbHIubGVuZ3RoPVduLGxyfWZ1bmN0aW9uICRpKGxyKXtmb3IodmFyIEJyPW5ldyBBcnJheShsciksZHI9MDtkcjxscjsrK2RyKUJyW2RyXT0wO3JldHVybiBCcn12YXIgbDI9ZnVuY3Rpb24oQnIpe3ZhciBkcj1SaSg1MCtNYXRoLmZsb29yKDEuMSpCci5s''@;'; put 'put ''ZW5ndGgpKSxXbj1mdW5jdGlvbihkcixXbil7Zm9yKHZhciAkbj0wOyRuPGRyLmxlbmd0aDspe3ZhciBicj1NYXRoLm1pbig2NTUzNSxkci5sZW5ndGgtJG4pO2ZvcihXbi53cml0ZV9zaGlmdCgxLCsoJG4rYnI9PWRyLmxlbmd0aCkpLFduLndyaXRlX3NoaWZ0KDIsYnIpLFduLndyaXRlX3No''@;'; put 'put ''aWZ0KDIsNjU1MzUmfmJyKTtici0tID4wOylXbltXbi5sKytdPWRyWyRuKytdfXJldHVybiBXbi5sfShCcixkcik7cmV0dXJuIGRyLnNsaWNlKDAsV24pfTtmdW5jdGlvbiBNYyhscixCcixkcil7dmFyIFduPTEsJG49MCxicj0wLFdyPTAsdWk9MCxJaT1sci5sZW5ndGgsdTA9JDA/bmV3IFVp''@;'; put 'put ''bnQxNkFycmF5KDMyKTokaSgzMik7Zm9yKGJyPTA7YnI8MzI7Kyticil1MFticl09MDtmb3IoYnI9SWk7YnI8ZHI7Kyticilsclticl09MDtJaT1sci5sZW5ndGg7dmFyIHppPSQwP25ldyBVaW50MTZBcnJheShJaSk6JGkoSWkpO2Zvcihicj0wO2JyPElpOysrYnIpdTBbJG49bHJbYnJdXSsr''@;'; put 'put ''LFduPCRuJiYoV249JG4pLHppW2JyXT0wO2Zvcih1MFswXT0wLGJyPTE7YnI8PVduOysrYnIpdTBbYnIrMTZdPXVpPXVpK3UwW2JyLTFdPDwxO2Zvcihicj0wO2JyPElpOysrYnIpMCE9KHVpPWxyW2JyXSkmJih6aVticl09dTBbdWkrMTZdKyspO3ZhciBKMD0wO2Zvcihicj0wO2JyPElpOysr''@;'; put 'put ''YnIpaWYoMCE9KEowPWxyW2JyXSkpZm9yKHVpPXdhKHppW2JyXSxXbik+PlduLUowLFdyPSgxPDxXbis0LUowKS0xO1dyPj0wOy0tV3IpQnJbdWl8V3I8PEowXT0xNSZKMHxicjw8NDtyZXR1cm4gV259dmFyIHAyPSQwP25ldyBVaW50MTZBcnJheSg1MTIpOiRpKDUxMikscnI9JDA/bmV3IFVp''@;'; put 'put ''bnQxNkFycmF5KDMyKTokaSgzMik7aWYoISQwKXtmb3IodmFyIElyPTA7SXI8NTEyOysrSXIpcDJbSXJdPTA7Zm9yKElyPTA7SXI8MzI7KytJcilycltJcl09MH0hZnVuY3Rpb24oKXtmb3IodmFyIGxyPVtdLEJyPTA7QnI8MzI7QnIrKylsci5wdXNoKDUpO01jKGxyLHJyLDMyKTt2YXIgZHI9''@;'; put 'put ''W107Zm9yKEJyPTA7QnI8PTE0MztCcisrKWRyLnB1c2goOCk7Zm9yKDtCcjw9MjU1O0JyKyspZHIucHVzaCg5KTtmb3IoO0JyPD0yNzk7QnIrKylkci5wdXNoKDcpO2Zvcig7QnI8PTI4NztCcisrKWRyLnB1c2goOCk7TWMoZHIscDIsMjg4KX0oKTt2YXIgWnI9JDA/bmV3IFVpbnQxNkFycmF5''@;'; put 'put ''KDMyNzY4KTokaSgzMjc2OCkscWk9JDA/bmV3IFVpbnQxNkFycmF5KDMyNzY4KTokaSgzMjc2OCkscmk9JDA/bmV3IFVpbnQxNkFycmF5KDEyOCk6JGkoMTI4KSxyMD0xLHBpPTE7ZnVuY3Rpb24gZTAobHIsQnIpe3ZhciBkcj1qcihscixCcikrMjU3LFduPWpyKGxyLEJyKz01KSsxLCRuPWZ1''@;'; put 'put ''bmN0aW9uIGgwKGxyLEJyKXt2YXIgZHI9NyZCcixXbj1Ccj4+PjM7cmV0dXJuKGxyW1duXXwoZHI8PTQ/MDpscltXbisxXTw8OCkpPj4+ZHImMTV9KGxyLEJyKz01KSs0O0JyKz00O2Zvcih2YXIgYnI9MCxXcj0kMD9uZXcgVWludDhBcnJheSgxOSk6JGkoMTkpLHVpPVswLDAsMCwwLDAsMCww''@;'; put 'put ''LDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSxJaT0xLHUwPSQwP25ldyBVaW50OEFycmF5KDgpOiRpKDgpLHppPSQwP25ldyBVaW50OEFycmF5KDgpOiRpKDgpLEowPVdyLmxlbmd0aCxJMD0wO0kwPCRuOysrSTApV3JbTjBbSTBdXT1icj14MChscixCciksSWk8YnImJihJaT1iciksdTBbYnJd''@;'; put 'put ''KyssQnIrPTM7dmFyIGVhPTA7Zm9yKHUwWzBdPTAsSTA9MTtJMDw9SWk7KytJMCl6aVtJMF09ZWE9ZWErdTBbSTAtMV08PDE7Zm9yKEkwPTA7STA8SjA7KytJMCkwIT0oZWE9V3JbSTBdKSYmKHVpW0kwXT16aVtlYV0rKyk7dmFyIFlvPTA7Zm9yKEkwPTA7STA8SjA7KytJMClpZigwIT0oWW89''@;'; put 'put ''V3JbSTBdKSl7ZWE9VmFbdWlbSTBdXT4+OC1Zbztmb3IodmFyIHlvPSgxPDw3LVlvKS0xO3lvPj0wOy0teW8pcmlbZWF8eW88PFlvXT03JllvfEkwPDwzfXZhciAkYT1bXTtmb3IoSWk9MTskYS5sZW5ndGg8ZHIrV247KXN3aXRjaChlYT1yaVtIaShscixCcildLEJyKz03JmVhLGVhPj4+PTMp''@;'; put 'put ''e2Nhc2UgMTY6Zm9yKGJyPTMrYW8obHIsQnIpLEJyKz0yLGVhPSRhWyRhLmxlbmd0aC0xXTtici0tID4wOykkYS5wdXNoKGVhKTticmVhaztjYXNlIDE3OmZvcihicj0zK3gwKGxyLEJyKSxCcis9Mztici0tID4wOykkYS5wdXNoKDApO2JyZWFrO2Nhc2UgMTg6Zm9yKGJyPTExK0hpKGxyLEJy''@;'; put 'put ''KSxCcis9Nztici0tID4wOykkYS5wdXNoKDApO2JyZWFrO2RlZmF1bHQ6JGEucHVzaChlYSksSWk8ZWEmJihJaT1lYSl9dmFyIGpzPSRhLnNsaWNlKDAsZHIpLEVjPSRhLnNsaWNlKGRyKTtmb3IoSTA9ZHI7STA8Mjg2OysrSTApanNbSTBdPTA7Zm9yKEkwPVduO0kwPDMwOysrSTApRWNbSTBd''@;'; put 'put ''PTA7cmV0dXJuIHIwPU1jKGpzLFpyLDI4NikscGk9TWMoRWMscWksMzApLEJyfWZ1bmN0aW9uIGswKGxyLEJyKXt2YXIgV249ZnVuY3Rpb24gT28obHIsQnIpe2lmKDM9PWxyWzBdJiYhKDMmbHJbMV0pKXJldHVybltoZShCciksMl07Zm9yKHZhciBkcj0wLFduPTAsJG49TyhCcnx8MTw8MTgp''@;'; put 'put ''LGJyPTAsV3I9JG4ubGVuZ3RoPj4+MCx1aT0wLElpPTA7MD09KDEmV24pOylpZihXbj14MChscixkciksZHIrPTMsV24+Pj4xIT0wKWZvcihXbj4+PjE9PTE/KHVpPTksSWk9NSk6KGRyPWUwKGxyLGRyKSx1aT1yMCxJaT1waSksIUJyJiZXcjxiciszMjc2NyYmKFdyPSgkbj14bygkbixicisz''@;'; put 'put ''Mjc2NykpLmxlbmd0aCk7Oyl7dmFyIHppPXZvKGxyLGRyLHVpKSxKMD1Xbj4+PjE9PTE/cDJbemldOlpyW3ppXTtpZihkcis9MTUmSjAsMD09KChKMD4+Pj00KT4+PjgmMjU1KSkkblticisrXT1KMDtlbHNle2lmKDI1Nj09SjApYnJlYWs7dmFyIEkwPShKMC09MjU3KTw4PzA6SjAtND4+MjtJ''@;'; put 'put ''MD41JiYoSTA9MCk7dmFyIGVhPWJyK3QwW0owXTtJMD4wJiYoZWErPXZvKGxyLGRyLEkwKSxkcis9STApLHppPXZvKGxyLGRyLElpKSxkcis9MTUmKEowPVduPj4+MT09MT9yclt6aV06cWlbemldKTt2YXIgWW89KEowPj4+PTQpPDQ/MDpKMC0yPj4xLHlvPWlvW0owXTtmb3IoWW8+MCYmKHlv''@;'; put 'put ''Kz12byhscixkcixZbyksZHIrPVlvKSwhQnImJldyPGVhJiYoV3I9KCRuPXhvKCRuLGVhKSkubGVuZ3RoKTticjxlYTspJG5bYnJdPSRuW2JyLXlvXSwrK2JyfX1lbHNlezcmZHImJihkcis9OC0oNyZkcikpO3ZhciB1MD1scltkcj4+PjNdfGxyWzErKGRyPj4+MyldPDw4O2lmKGRyKz0zMiwh''@;'; put 'put ''QnImJldyPGJyK3UwJiYoV3I9KCRuPXhvKCRuLGJyK3UwKSkubGVuZ3RoKSwiZnVuY3Rpb24iPT10eXBlb2YgbHIuY29weSlsci5jb3B5KCRuLGJyLGRyPj4+MywoZHI+Pj4zKSt1MCksYnIrPXUwLGRyKz04KnUwO2Vsc2UgZm9yKDt1MC0tID4wOykkblticisrXT1scltkcj4+PjNdLGRyKz04''@;'; put 'put ''fXJldHVybltCcj8kbjokbi5zbGljZSgwLGJyKSxkcis3Pj4+M119KGxyLnNsaWNlKGxyLmx8fDApLEJyKTtyZXR1cm4gbHIubCs9V25bMV0sV25bMF19ZnVuY3Rpb24gcG8obHIsQnIpe2lmKCFscil0aHJvdyBuZXcgRXJyb3IoQnIpOyJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29u''@;'; put 'put ''c29sZS5lcnJvcihCcil9ZnVuY3Rpb24gcDAobHIsQnIpe3ZhciBkcj1scjtLbChkciwwKTt2YXIgYnI9e0ZpbGVJbmRleDpbXSxGdWxsUGF0aHM6W119O3lyKGJyLHtyb290OkJyLnJvb3R9KTtmb3IodmFyIFdyPWRyLmxlbmd0aC00Oyg4MCE9ZHJbV3JdfHw3NSE9ZHJbV3IrMV18fDUhPWRy''@;'; put 'put ''W1dyKzJdfHw2IT1kcltXciszXSkmJldyPj0wOyktLVdyO2RyLmw9V3IrNCxkci5sKz00O3ZhciB1aT1kci5yZWFkX3NoaWZ0KDIpO2RyLmwrPTY7dmFyIElpPWRyLnJlYWRfc2hpZnQoNCk7Zm9yKGRyLmw9SWksV3I9MDtXcjx1aTsrK1dyKXtkci5sKz0yMDt2YXIgdTA9ZHIucmVhZF9zaGlm''@;'; put 'put ''dCg0KSx6aT1kci5yZWFkX3NoaWZ0KDQpLEowPWRyLnJlYWRfc2hpZnQoMiksSTA9ZHIucmVhZF9zaGlmdCgyKSxlYT1kci5yZWFkX3NoaWZ0KDIpO2RyLmwrPTg7dmFyIFlvPWRyLnJlYWRfc2hpZnQoNCkseW89amUoZHIuc2xpY2UoZHIubCtKMCxkci5sK0owK0kwKSk7ZHIubCs9SjArSTAr''@;'; put 'put ''ZWE7dmFyICRhPWRyLmw7ZHIubD1Zbys0LFFsKGRyLHUwLHppLGJyLHlvKSxkci5sPSRhfXJldHVybiBicn1mdW5jdGlvbiBRbChscixCcixkcixXbiwkbil7bHIubCs9Mjt2YXIgYnI9bHIucmVhZF9zaGlmdCgyKSxXcj1sci5yZWFkX3NoaWZ0KDIpLHVpPWZ1bmN0aW9uIFplKGxyKXt2YXIg''@;'; put 'put ''QnI9NjU1MzUmbHIucmVhZF9zaGlmdCgyKSxkcj02NTUzNSZsci5yZWFkX3NoaWZ0KDIpLFduPW5ldyBEYXRlLCRuPTMxJmRyLGJyPTE1Jihkcj4+Pj01KTtkcj4+Pj00LFduLnNldE1pbGxpc2Vjb25kcygwKSxXbi5zZXRGdWxsWWVhcihkcisxOTgwKSxXbi5zZXRNb250aChici0xKSxXbi5z''@;'; put 'put ''ZXREYXRlKCRuKTt2YXIgV3I9MzEmQnIsdWk9NjMmKEJyPj4+PTUpO3JldHVybiBXbi5zZXRIb3VycyhCcj4+Pj02KSxXbi5zZXRNaW51dGVzKHVpKSxXbi5zZXRTZWNvbmRzKFdyPDwxKSxXbn0obHIpO2lmKDgyNTcmYnIpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBaSVAgZW5jcnlw''@;'; put 'put ''dGlvbiIpO2Zvcih2YXIgSWk9bHIucmVhZF9zaGlmdCg0KSx1MD1sci5yZWFkX3NoaWZ0KDQpLHppPWxyLnJlYWRfc2hpZnQoNCksSjA9bHIucmVhZF9zaGlmdCgyKSxJMD1sci5yZWFkX3NoaWZ0KDIpLGVhPSIiLFlvPTA7WW88SjA7KytZbyllYSs9U3RyaW5nLmZyb21DaGFyQ29kZShsclts''@;'; put 'put ''ci5sKytdKTtpZihJMCl7dmFyIHlvPWplKGxyLnNsaWNlKGxyLmwsbHIubCtJMCkpOyh5b1syMTU4OV18fHt9KS5tdCYmKHVpPXlvWzIxNTg5XS5tdCksKCgkbnx8e30pWzIxNTg5XXx8e30pLm10JiYodWk9JG5bMjE1ODldLm10KX1sci5sKz1JMDt2YXIgJGE9bHIuc2xpY2UobHIubCxsci5s''@;'; put 'put ''K3UwKTtzd2l0Y2goV3Ipe2Nhc2UgODokYT1mdW5jdGlvbiBOcihscixCcil7aWYoIUVpKXJldHVybiBrMChscixCcik7dmFyIFduPW5ldygwLEVpLkluZmxhdGVSYXcpLCRuPVduLl9wcm9jZXNzQ2h1bmsobHIuc2xpY2UobHIubCksV24uX2ZpbmlzaEZsdXNoRmxhZyk7cmV0dXJuIGxyLmwr''@;'; put 'put ''PVduLmJ5dGVzUmVhZCwkbn0obHIsemkpO2JyZWFrO2Nhc2UgMDpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgWklQIENvbXByZXNzaW9uIG1ldGhvZCAiK1dyKX12YXIganM9ITE7OCZiciYmKDEzNDY5NTc2MD09KElpPWxyLnJlYWRfc2hpZnQoNCkpJiYoSWk9''@;'; put 'put ''bHIucmVhZF9zaGlmdCg0KSxqcz0hMCksdTA9bHIucmVhZF9zaGlmdCg0KSx6aT1sci5yZWFkX3NoaWZ0KDQpKSx1MCE9QnImJnBvKGpzLCJCYWQgY29tcHJlc3NlZCBzaXplOiAiK0JyKyIgIT0gIit1MCksemkhPWRyJiZwbyhqcywiQmFkIHVuY29tcHJlc3NlZCBzaXplOiAiK2RyKyIgIT0g''@;'; put 'put ''Iit6aSk7dmFyIEVjPXd0LmJ1ZigkYSwwKTtJaT4+MCE9RWM+PjAmJnBvKGpzLCJCYWQgQ1JDMzIgY2hlY2tzdW06ICIrSWkrIiAhPSAiK0VjKSxlMShXbixlYSwkYSx7dW5zYWZlOiEwLG10OnVpfSl9ZnVuY3Rpb24gZTEobHIsQnIsZHIsV24pe3ZhciAkbj1XbiYmV24udW5zYWZlOyRufHx5''@;'; put 'put ''cihscik7dmFyIGJyPSEkbiYmbXQuZmluZChscixCcik7aWYoIWJyKXt2YXIgV3I9bHIuRnVsbFBhdGhzWzBdO0JyLnNsaWNlKDAsV3IubGVuZ3RoKT09V3I/V3I9QnI6KCIvIiE9V3Iuc2xpY2UoLTEpJiYoV3IrPSIvIiksV3I9KFdyK0JyKS5yZXBsYWNlKCIvLyIsIi8iKSksYnI9e25hbWU6''@;'; put 'put ''eGUoQnIpLHR5cGU6Mn0sbHIuRmlsZUluZGV4LnB1c2goYnIpLGxyLkZ1bGxQYXRocy5wdXNoKFdyKSwkbnx8bXQudXRpbHMuY2ZiX2djKGxyKX1yZXR1cm4gYnIuY29udGVudD1kcixici5zaXplPWRyP2RyLmxlbmd0aDowLFduJiYoV24uQ0xTSUQmJihici5jbHNpZD1Xbi5DTFNJRCksV24u''@;'; put 'put ''bXQmJihici5tdD1Xbi5tdCksV24uY3QmJihici5jdD1Xbi5jdCkpLGJyfXJldHVybiBpZS5maW5kPWZ1bmN0aW9uIHFyKGxyLEJyKXt2YXIgZHI9bHIuRnVsbFBhdGhzLm1hcChmdW5jdGlvbihJaSl7cmV0dXJuIElpLnRvVXBwZXJDYXNlKCl9KSxXbj1kci5tYXAoZnVuY3Rpb24oSWkpe3Zh''@;'; put 'put ''ciB1MD1JaS5zcGxpdCgiLyIpO3JldHVybiB1MFt1MC5sZW5ndGgtKCIvIj09SWkuc2xpY2UoLTEpPzI6MSldfSksJG49ITE7NDc9PT1Cci5jaGFyQ29kZUF0KDApPygkbj0hMCxCcj1kclswXS5zbGljZSgwLC0xKStCcik6JG49LTEhPT1Cci5pbmRleE9mKCIvIik7dmFyIGJyPUJyLnRvVXBw''@;'; put 'put ''ZXJDYXNlKCksV3I9ITA9PT0kbj9kci5pbmRleE9mKGJyKTpXbi5pbmRleE9mKGJyKTtpZigtMSE9PVdyKXJldHVybiBsci5GaWxlSW5kZXhbV3JdO3ZhciB1aT0hYnIubWF0Y2goUyk7Zm9yKGJyPWJyLnJlcGxhY2UoVCwiIiksdWkmJihicj1ici5yZXBsYWNlKFMsIiEiKSksV3I9MDtXcjxk''@;'; put 'put ''ci5sZW5ndGg7KytXcilpZigodWk/ZHJbV3JdLnJlcGxhY2UoUywiISIpOmRyW1dyXSkucmVwbGFjZShULCIiKT09YnJ8fCh1aT9XbltXcl0ucmVwbGFjZShTLCIhIik6V25bV3JdKS5yZXBsYWNlKFQsIiIpPT1icilyZXR1cm4gbHIuRmlsZUluZGV4W1dyXTtyZXR1cm4gbnVsbH0saWUucmVh''@;'; put 'put ''ZD1mdW5jdGlvbiBhaShscixCcil7c3dpdGNoKEJyJiZCci50eXBlfHwiYmFzZTY0Iil7Y2FzZSJmaWxlIjpyZXR1cm4gZnVuY3Rpb24gTXIobHIsQnIpe3JldHVybiBNdCgpLHh0KFllLnJlYWRGaWxlU3luYyhsciksQnIpfShscixCcik7Y2FzZSJiYXNlNjQiOnJldHVybiB4dCh6KFNlLmRl''@;'; put 'put ''Y29kZShscikpLEJyKTtjYXNlImJpbmFyeSI6cmV0dXJuIHh0KHoobHIpLEJyKX1yZXR1cm4geHQobHIsQnIpfSxpZS5wYXJzZT14dCxpZS53cml0ZT1mdW5jdGlvbiBZcihscixCcil7dmFyIGRyPXpyKGxyLEJyKTtzd2l0Y2goQnImJkJyLnR5cGUpe2Nhc2UiZmlsZSI6cmV0dXJuIE10KCks''@;'; put 'put ''WWUud3JpdGVGaWxlU3luYyhCci5maWxlbmFtZSxkciksZHI7Y2FzZSJiaW5hcnkiOnJldHVybiBiaShkcik7Y2FzZSJiYXNlNjQiOnJldHVybiBTZS5lbmNvZGUoYmkoZHIpKX1yZXR1cm4gZHJ9LGllLndyaXRlRmlsZT1mdW5jdGlvbiBBMChscixCcixkcil7TXQoKTt2YXIgV249enIobHIs''@;'; put 'put ''ZHIpO1llLndyaXRlRmlsZVN5bmMoQnIsV24pfSxpZS51dGlscz17Y2ZiX25ldzpmdW5jdGlvbiBxMihscil7dmFyIEJyPXt9O3JldHVybiB5cihCcixsciksQnJ9LGNmYl9hZGQ6ZTEsY2ZiX2RlbDpmdW5jdGlvbiBLcyhscixCcil7eXIobHIpO3ZhciBkcj1tdC5maW5kKGxyLEJyKTtpZihk''@;'; put 'put ''cilmb3IodmFyIFduPTA7V248bHIuRmlsZUluZGV4Lmxlbmd0aDsrK1duKWlmKGxyLkZpbGVJbmRleFtXbl09PWRyKXJldHVybiBsci5GaWxlSW5kZXguc3BsaWNlKFduLDEpLGxyLkZ1bGxQYXRocy5zcGxpY2UoV24sMSksITA7cmV0dXJuITF9LGNmYl9tb3Y6ZnVuY3Rpb24gUDYobHIsQnIs''@;'; put 'put ''ZHIpe3lyKGxyKTt2YXIgV249bXQuZmluZChscixCcik7aWYoV24pZm9yKHZhciAkbj0wOyRuPGxyLkZpbGVJbmRleC5sZW5ndGg7KyskbilpZihsci5GaWxlSW5kZXhbJG5dPT1XbilyZXR1cm4gbHIuRmlsZUluZGV4WyRuXS5uYW1lPXhlKGRyKSxsci5GdWxsUGF0aHNbJG5dPWRyLCEwO3Jl''@;'; put 'put ''dHVybiExfSxjZmJfZ2M6ZnVuY3Rpb24gdGgobHIpe0dyKGxyLCEwKX0sUmVhZFNoaWZ0OkM0LENoZWNrRmllbGQ6RjEscHJlcF9ibG9iOktsLGJjb25jYXQ6Vix1c2VfemxpYjpmdW5jdGlvbiBoaShscil7dHJ5e3ZhciBkcj1uZXcoMCxsci5JbmZsYXRlUmF3KTtpZihkci5fcHJvY2Vzc0No''@;'; put 'put ''dW5rKG5ldyBVaW50OEFycmF5KFszLDBdKSxkci5fZmluaXNoRmx1c2hGbGFnKSwhZHIuYnl0ZXNSZWFkKXRocm93IG5ldyBFcnJvcigiemxpYiBkb2VzIG5vdCBleHBvc2UgYnl0ZXNSZWFkIik7RWk9bHJ9Y2F0Y2goV24pe2NvbnNvbGUuZXJyb3IoImNhbm5vdCB1c2UgbmF0aXZlIHpsaWI6''@;'; put 'put ''ICIrKFduLm1lc3NhZ2V8fFduKSl9fSxfZGVmbGF0ZVJhdzpsMixfaW5mbGF0ZVJhdzprMCxjb25zdHM6dG99LGllfSgpO3RyeXt2dD1MKDc4NzczKX1jYXRjaChIKXt9ZnVuY3Rpb24gQXQoSCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBIP2VlKEgpOkFycmF5LmlzQXJyYXkoSCk/ZnVuY3Rp''@;'; put 'put ''b24geChIKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIFVpbnQ4QXJyYXkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCIpO3JldHVybiBuZXcgVWludDhBcnJheShIKX0oSCk6SH1mdW5jdGlvbiBodChILGllLFgpe2lmKHZvaWQgMCE9PXZ0JiZ2dC53cml0ZUZpbGVTeW5jKXJldHVybiBY''@;'; put 'put ''P3Z0LndyaXRlRmlsZVN5bmMoSCxpZSxYKTp2dC53cml0ZUZpbGVTeW5jKEgsaWUpO3ZhciB3ZT0idXRmOCI9PVg/RW8oaWUpOmllO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgSUVfU2F2ZUZpbGUpcmV0dXJuIElFX1NhdmVGaWxlKHdlLEgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQmxvYil7''@;'; put 'put ''dmFyIHhlPW5ldyBCbG9iKFtBdCh3ZSldLHt0eXBlOiJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0ifSk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci5tc1NhdmVCbG9iKXJldHVybiBuYXZpZ2F0b3IubXNTYXZlQmxvYih4ZSxIKTtpZigidW5kZWZpbmVkIiE9''@;'; put 'put ''dHlwZW9mIHNhdmVBcylyZXR1cm4gc2F2ZUFzKHhlLEgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgVVJMJiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5jcmVhdGVFbGVtZW50JiZVUkwuY3JlYXRlT2JqZWN0VVJMKXt2YXIgRmU9VVJMLmNyZWF0ZU9iamVjdFVSTCh4''@;'; put 'put ''ZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBjaHJvbWUmJiJmdW5jdGlvbiI9PXR5cGVvZihjaHJvbWUuZG93bmxvYWRzfHx7fSkuZG93bmxvYWQpcmV0dXJuIFVSTC5yZXZva2VPYmplY3RVUkwmJiJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0VGltZW91dCYmc2V0VGltZW91dChmdW5jdGlvbigpe1VS''@;'; put 'put ''TC5yZXZva2VPYmplY3RVUkwoRmUpfSw2ZTQpLGNocm9tZS5kb3dubG9hZHMuZG93bmxvYWQoe3VybDpGZSxmaWxlbmFtZTpILHNhdmVBczohMH0pO3ZhciBaZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7aWYobnVsbCE9WmUuZG93bmxvYWQpcmV0dXJuIFplLmRvd25sb2FkPUgsWmUu''@;'; put 'put ''aHJlZj1GZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFplKSxaZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoWmUpLFVSTC5yZXZva2VPYmplY3RVUkwmJiJ1bmRlZmluZWQiIT10eXBlb2Ygc2V0VGltZW91dCYmc2V0VGltZW91dChmdW5jdGlvbigpe1VSTC5yZXZva2VP''@;'; put 'put ''YmplY3RVUkwoRmUpfSw2ZTQpLEZlfX1pZigidW5kZWZpbmVkIiE9dHlwZW9mICQmJiJ1bmRlZmluZWQiIT10eXBlb2YgRmlsZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBGb2xkZXIpdHJ5e3ZhciBqZT1GaWxlKEgpO3JldHVybiBqZS5vcGVuKCJ3IiksamUuZW5jb2Rpbmc9ImJpbmFyeSIsQXJy''@;'; put 'put ''YXkuaXNBcnJheShpZSkmJihpZT1uZShpZSkpLGplLndyaXRlKGllKSxqZS5jbG9zZSgpLGllfWNhdGNoKFllKXtpZighWWUubWVzc2FnZXx8IVllLm1lc3NhZ2UubWF0Y2goL29uc3RydWN0LykpdGhyb3cgWWV9dGhyb3cgbmV3IEVycm9yKCJjYW5ub3Qgc2F2ZSBmaWxlICIrSCl9ZnVuY3Rp''@;'; put 'put ''b24gb24oSCl7Zm9yKHZhciBpZT1PYmplY3Qua2V5cyhIKSxYPVtdLHdlPTA7d2U8aWUubGVuZ3RoOysrd2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEgsaWVbd2VdKSYmWC5wdXNoKGllW3dlXSk7cmV0dXJuIFh9ZnVuY3Rpb24gX3QoSCxpZSl7Zm9yKHZhciBYPVtd''@;'; put 'put ''LHdlPW9uKEgpLHhlPTA7eGUhPT13ZS5sZW5ndGg7Kyt4ZSludWxsPT1YW0hbd2VbeGVdXVtpZV1dJiYoWFtIW3dlW3hlXV1baWVdXT13ZVt4ZV0pO3JldHVybiBYfWZ1bmN0aW9uIHR0KEgpe2Zvcih2YXIgaWU9W10sWD1vbihIKSx3ZT0wO3dlIT09WC5sZW5ndGg7Kyt3ZSlpZVtIW1hbd2Vd''@;'; put 'put ''XV09WFt3ZV07cmV0dXJuIGllfWZ1bmN0aW9uIGV0KEgpe2Zvcih2YXIgaWU9W10sWD1vbihIKSx3ZT0wO3dlIT09WC5sZW5ndGg7Kyt3ZSlpZVtIW1hbd2VdXV09cGFyc2VJbnQoWFt3ZV0sMTApO3JldHVybiBpZX12YXIgZnQsSHQsTHQ9bmV3IERhdGUoMTg5OSwxMSwzMCwwLDAsMCksQ3Q9''@;'; put 'put ''MDtmdW5jdGlvbiBHZSgpe0N0PUx0LmdldFRpbWUoKSs2ZTQqKChuZXcgRGF0ZSkuZ2V0VGltZXpvbmVPZmZzZXQoKS1MdC5nZXRUaW1lem9uZU9mZnNldCgpKSxmdD1mdW5jdGlvbihpZSxYKXt2YXIgd2U9aWUuZ2V0VGltZSgpO3JldHVybiBYJiYod2UtPTEyNjMxNjhlNSksKHdlLUN0KS84''@;'; put 'put ''NjRlNX0sSHQ9ZnVuY3Rpb24oaWUpe3ZhciBYPW5ldyBEYXRlO3JldHVybiBYLnNldFRpbWUoMjQqaWUqNjAqNjAqMWUzK0N0KSxYfX1mdW5jdGlvbiBqdChIKXt2YXIgaWU9MCxYPTAsd2U9ITEseGU9SC5tYXRjaCgvUChbMC05XC5dK1kpPyhbMC05XC5dK00pPyhbMC05XC5dK0QpP1QoWzAt''@;'; put 'put ''OVwuXStIKT8oWzAtOVwuXStNKT8oWzAtOVwuXStTKT8vKTtpZigheGUpdGhyb3cgbmV3IEVycm9yKCJ8IitIKyJ8IGlzIG5vdCBhbiBJU084NjAxIER1cmF0aW9uIik7Zm9yKHZhciBGZT0xO0ZlIT14ZS5sZW5ndGg7KytGZSlpZih4ZVtGZV0pe3N3aXRjaChYPTEsRmU+MyYmKHdlPSEwKSx4''@;'; put 'put ''ZVtGZV0uc2xpY2UoeGVbRmVdLmxlbmd0aC0xKSl7Y2FzZSJZIjp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIElTTyBEdXJhdGlvbiBGaWVsZDogIit4ZVtGZV0uc2xpY2UoeGVbRmVdLmxlbmd0aC0xKSk7Y2FzZSJEIjpYKj0yNDtjYXNlIkgiOlgqPTYwO2Nhc2UiTSI6aWYoIXdlKXRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgSVNPIER1cmF0aW9uIEZpZWxkOiBNIik7WCo9NjB9aWUrPVgqcGFyc2VJbnQoeGVbRmVdLDEwKX1yZXR1cm4gaWV9R2UoKTt2YXIgSnQ9bmV3IERhdGUoIjIwMTctMDItMTlUMTk6MDY6MDkuMDAwWiIpO2lzTmFOKEp0LmdldEZ1bGxZZWFyKCkp''@;'; put 'put ''JiYoSnQ9bmV3IERhdGUoIjIvMTkvMTciKSk7dmFyIGduPTIwMTc9PUp0LmdldEZ1bGxZZWFyKCk7ZnVuY3Rpb24gZG4oSCxpZSl7dmFyIFg9bmV3IERhdGUoSCk7aWYoZ24pcmV0dXJuIGllPjA/WC5zZXRUaW1lKFguZ2V0VGltZSgpKzYwKlguZ2V0VGltZXpvbmVPZmZzZXQoKSoxZTMpOmll''@;'; put 'put ''PDAmJlguc2V0VGltZShYLmdldFRpbWUoKS02MCpYLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKSxYO2lmKEggaW5zdGFuY2VvZiBEYXRlKXJldHVybiBIO2lmKDE5MTc9PUp0LmdldEZ1bGxZZWFyKCkmJiFpc05hTihYLmdldEZ1bGxZZWFyKCkpKXt2YXIgd2U9WC5nZXRGdWxsWWVhcigpO3Jl''@;'; put 'put ''dHVybiBILmluZGV4T2YoIiIrd2UpPi0xfHxYLnNldEZ1bGxZZWFyKFguZ2V0RnVsbFllYXIoKSsxMDApLFh9dmFyIHhlPUgubWF0Y2goL1xkKy9nKXx8WyIyMDE3IiwiMiIsIjE5IiwiMCIsIjAiLCIwIl0sRmU9bmV3IERhdGUoK3hlWzBdLCt4ZVsxXS0xLCt4ZVsyXSwreGVbM118fDAsK3hl''@;'; put 'put ''WzRdfHwwLCt4ZVs1XXx8MCk7cmV0dXJuIEguaW5kZXhPZigiWiIpPi0xJiYoRmU9bmV3IERhdGUoRmUuZ2V0VGltZSgpLTYwKkZlLmdldFRpbWV6b25lT2Zmc2V0KCkqMWUzKSksRmV9ZnVuY3Rpb24geW4oSCl7Zm9yKHZhciBpZT0iIixYPTA7WCE9SC5sZW5ndGg7KytYKWllKz1TdHJpbmcu''@;'; put 'put ''ZnJvbUNoYXJDb2RlKEhbWF0pO3JldHVybiBpZX1mdW5jdGlvbiBsbihIKXtpZigib2JqZWN0IiE9dHlwZW9mIEh8fG51bGw9PUgpcmV0dXJuIEg7aWYoSCBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIG5ldyBEYXRlKEguZ2V0VGltZSgpKTtpZihBcnJheS5pc0FycmF5KEgpKXJldHVybiBmdW5j''@;'; put 'put ''dGlvbiBObihIKXtmb3IodmFyIGllPVtdLFg9MDtYPEgubGVuZ3RoOysrWCl7dmFyIHdlPUhbWF07Im9iamVjdCI9PXR5cGVvZiB3ZT9pZVtYXT1sbih3ZSk6bnVsbCE9d2UmJihpZVtYXT13ZSl9cmV0dXJuIGllfShIKTt2YXIgaWU9e307Zm9yKHZhciBYIGluIEgpT2JqZWN0LnByb3RvdHlw''@;'; put 'put ''ZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEgsWCkmJihpZVtYXT1sbihIW1hdKSk7cmV0dXJuIGllfWZ1bmN0aW9uIGJuKEgsaWUpe2lmKCJvYmplY3QiIT10eXBlb2YgaWV8fG51bGw9PWllKXJldHVybiBIO2Zvcih2YXIgWCBpbiBpZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNh''@;'; put 'put ''bGwoaWUsWCkmJihIW1hdPWxuKGllW1hdKSk7cmV0dXJuIEh9ZnVuY3Rpb24gZXIoSCxpZSl7Zm9yKHZhciBYPSIiO1gubGVuZ3RoPGllOylYKz1IO3JldHVybiBYfWZ1bmN0aW9uIHNyKEgpe3ZhciBpZT1OdW1iZXIoSCk7aWYoIWlzTmFOKGllKSlyZXR1cm4gaXNGaW5pdGUoaWUpP2llOk5h''@;'; put 'put ''TjtpZighL1xkLy50ZXN0KEgpKXJldHVybiBpZTt2YXIgWD0xLHdlPUgucmVwbGFjZSgvKFtcZF0pLChbXGRdKS9nLCIkMSQyIikucmVwbGFjZSgvWyRdL2csIiIpLnJlcGxhY2UoL1slXS9nLGZ1bmN0aW9uKCl7cmV0dXJuIFgqPTEwMCwiIn0pO3JldHVybiBpc05hTihpZT1OdW1iZXIod2Up''@;'; put 'put ''KSYmKHdlPXdlLnJlcGxhY2UoL1soXSguKilbKV0vLGZ1bmN0aW9uKHhlLEZlKXtyZXR1cm4gWD0tWCxGZX0pLGlzTmFOKGllPU51bWJlcih3ZSkpKT9pZTppZS9YfWZ1bmN0aW9uIFhuKEgpe3ZhciBpZT1uZXcgRGF0ZShIKSxYPW5ldyBEYXRlKE5hTiksd2U9aWUuZ2V0WWVhcigpLHhlPWll''@;'; put 'put ''LmdldE1vbnRoKCksRmU9aWUuZ2V0RGF0ZSgpO3JldHVybiBpc05hTihGZSl8fHdlPDB8fHdlPjgwOTk/WDooeGU+MHx8RmU+MSkmJjEwMSE9d2V8fEgudG9Mb3dlckNhc2UoKS5tYXRjaCgvamFufGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMvKT9pZTpILm1h''@;'; put 'put ''dGNoKC9bXi0wLTk6LFwvXFxdLyk/WDppZX1mdW5jdGlvbiBGcihILGllKXtpZihpZSYmaWUucmF3KXJldHVybnt0OiJzIix2Okh9O2lmKCFIKXJldHVybnt0OiJ6In07aWYoIlRSVUUiPT09SClyZXR1cm57dDoiYiIsdjohMH07aWYoIkZBTFNFIj09PUgpcmV0dXJue3Q6ImIiLHY6ITF9O3Zh''@;'; put 'put ''ciBYPSIiLHdlPU51bWJlcihIKTtpZihpc0Zpbml0ZSh3ZSkpcmV0dXJue3Q6Im4iLHY6d2V9O2lmKGlzTmFOKHdlKSYmL1xkLy50ZXN0KEgpKXt2YXIgeGU9MSxGZT1ILnJlcGxhY2UoLyhbXGRdKSwoW1xkXSkvZyxmdW5jdGlvbihVdCxubixDbil7cmV0dXJuIFh8fChYPSIjLCMjMCIpLG5u''@;'; put 'put ''K0NufSkucmVwbGFjZSgvWyRdL2csIiIpLnJlcGxhY2UoL1wuXGQqLyxmdW5jdGlvbihVdCl7WHx8KFg9IjAiKSxYKz0iLiI7Zm9yKHZhciBubj0yO25uPD1VdC5sZW5ndGg7KytubilYKz0iMCI7cmV0dXJuIFV0fSkucmVwbGFjZSgvWyVdL2csZnVuY3Rpb24oKXtyZXR1cm4geGUqPTEwMCxY''@;'; put 'put ''fHwoWD0iMCIpLFgrPSIlIiwiIn0pO2lmKCFpc05hTih3ZT1OdW1iZXIoRmUpKSlyZXR1cm57dDoibiIsdjp3ZS94ZSx6Olh9O2lmKEZlPUZlLnJlcGxhY2UoL1soXSguKilbKV0vLGZ1bmN0aW9uKFV0LG5uKXtyZXR1cm4geGU9LXhlLG5ufSksIWlzTmFOKHdlPU51bWJlcihGZSkpKXJldHVy''@;'; put 'put ''bnt0OiJuIix2OndlL3hlLHo6KFh8fCIwIikrIl8pOygiKyhYfHwiMCIpKyIpO0AifX1lOmlmKCFpZXx8IWllLnJhd0RhdGVzKXt2YXIgWmU9aWUmJmllLmNlbGxEYXRlcyxqZT1uZXcgRGF0ZShIKSxNdD0obmV3IERhdGUoTmFOKSxqZS5nZXRZZWFyKCkpLHh0PWplLmdldE1vbnRoKCksUnQ9''@;'; put 'put ''amUuZ2V0RGF0ZSgpO2lmKGlzTmFOKFJ0KXx8TXQ8MHx8TXQ+ODA5OSlicmVhayBlO2lmKCh4dD4wfHxSdD4xKSYmMTAxIT1NdClyZXR1cm57dDpaZT8iZCI6Im4iLHY6WmU/amU6ZnQoamUpLHo6aWUuZGF0ZU5GfHxGLl90YWJsZVsxNF19O2lmKEgudG9Mb3dlckNhc2UoKS5tYXRjaCgvamFu''@;'; put 'put ''fGZlYnxtYXJ8YXByfG1heXxqdW58anVsfGF1Z3xzZXB8b2N0fG5vdnxkZWMvKSlyZXR1cm57dDpaZT8iZCI6Im4iLHY6WmU/amU6ZnQoamUpLHo6aWUuZGF0ZU5GfHxGLl90YWJsZVsxNF19O2lmKEgubWF0Y2goL1teLTAtOTosXC9cXF0vKSlicmVhayBlO3JldHVybiBqZX1yZXR1cm57dDoi''@;'; put 'put ''cyIsdjpIfX12YXIgQm4seHI9NT09ImFiYWNhYmEiLnNwbGl0KC8oOj9iKS9pKS5sZW5ndGg7ZnVuY3Rpb24gbnIoSCl7cmV0dXJuIG51bGwhPUgmJiFIfWZ1bmN0aW9uIEFuKEgpe3JldHVybiBILmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK0guc2xpY2UoMSl9ZnVuY3Rpb24gcW4oSCl7cmV0''@;'; put 'put ''dXJuIEg/SC5kYXRhP2NlKEguZGF0YSk6SC5hc05vZGVCdWZmZXImJkllP2NlKEguYXNOb2RlQnVmZmVyKCkudG9TdHJpbmcoImJpbmFyeSIpKTpILmFzQmluYXJ5P2NlKEguYXNCaW5hcnkoKSk6SC5fZGF0YSYmSC5fZGF0YS5nZXRDb250ZW50P2NlKHluKEFycmF5LnByb3RvdHlwZS5zbGlj''@;'; put 'put ''ZS5jYWxsKEguX2RhdGEuZ2V0Q29udGVudCgpLDApKSk6SC5jb250ZW50JiZILnR5cGU/Y2UoeW4oSC5jb250ZW50KSk6bnVsbDpudWxsfWZ1bmN0aW9uIFd0KEgpe2lmKCFIKXJldHVybiBudWxsO2lmKEguZGF0YSlyZXR1cm4gSihILmRhdGEpO2lmKEguYXNOb2RlQnVmZmVyJiZJZSlyZXR1''@;'; put 'put ''cm4gSC5hc05vZGVCdWZmZXIoKTtpZihILl9kYXRhJiZILl9kYXRhLmdldENvbnRlbnQpe3ZhciBpZT1ILl9kYXRhLmdldENvbnRlbnQoKTtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGllP0ooaWUpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGllKX1yZXR1cm4gSC5jb250ZW50JiZILnR5''@;'; put 'put ''cGU/SC5jb250ZW50Om51bGx9ZnVuY3Rpb24gS24oSCxpZSl7Zm9yKHZhciBYPUguRnVsbFBhdGhzfHxvbihILmZpbGVzKSx3ZT1pZS50b0xvd2VyQ2FzZSgpLHhlPXdlLnJlcGxhY2UoL1wvL2csIlxcIiksRmU9MDtGZTxYLmxlbmd0aDsrK0ZlKXt2YXIgWmU9WFtGZV0udG9Mb3dlckNhc2Uo''@;'; put 'put ''KTtpZih3ZT09WmV8fHhlPT1aZSlyZXR1cm4gSC5maWxlc1tYW0ZlXV19cmV0dXJuIG51bGx9ZnVuY3Rpb24gTnQoSCxpZSl7dmFyIFg9S24oSCxpZSk7aWYobnVsbD09WCl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGZpbGUgIitpZSsiIGluIHppcCIpO3JldHVybiBYfWZ1bmN0aW9u''@;'; put 'put ''IHNuKEgsaWUsWCl7aWYoIVgpcmV0dXJuIGZ1bmN0aW9uIHBuKEgpe3JldHVybiBIJiYiLmJpbiI9PT1ILm5hbWUuc2xpY2UoLTQpP1d0KEgpOnFuKEgpfShOdChILGllKSk7aWYoIWllKXJldHVybiBudWxsO3RyeXtyZXR1cm4gc24oSCxpZSl9Y2F0Y2god2Upe3JldHVybiBudWxsfX1mdW5j''@;'; put 'put ''dGlvbiBVbihILGllLFgpe2lmKCFYKXJldHVybiBxbihOdChILGllKSk7aWYoIWllKXJldHVybiBudWxsO3RyeXtyZXR1cm4gVW4oSCxpZSl9Y2F0Y2god2Upe3JldHVybiBudWxsfX1mdW5jdGlvbiB3bihILGllLFgpe2lmKCFYKXJldHVybiBXdChOdChILGllKSk7aWYoIWllKXJldHVybiBu''@;'; put 'put ''dWxsO3RyeXtyZXR1cm4gd24oSCxpZSl9Y2F0Y2god2Upe3JldHVybiBudWxsfX1mdW5jdGlvbiB6bihILGllLFgpe0guRnVsbFBhdGhzP210LnV0aWxzLmNmYl9hZGQoSCxpZSxYKTpILmZpbGUoaWUsWCl9ZnVuY3Rpb24ga3IoKXtyZXR1cm4gQm4/bmV3IEJuOm10LnV0aWxzLmNmYl9uZXco''@;'; put 'put ''KX1mdW5jdGlvbiBtbihILGllKXt2YXIgWDtpZihCbilzd2l0Y2goaWUudHlwZSl7Y2FzZSJiYXNlNjQiOlg9bmV3IEJuKEgse2Jhc2U2NDohMH0pO2JyZWFrO2Nhc2UiYmluYXJ5IjpjYXNlImFycmF5IjpYPW5ldyBCbihILHtiYXNlNjQ6ITF9KTticmVhaztjYXNlImJ1ZmZlciI6WD1uZXcg''@;'; put 'put ''Qm4oSCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIraWUudHlwZSl9ZWxzZSBzd2l0Y2goaWUudHlwZSl7Y2FzZSJiYXNlNjQiOlg9bXQucmVhZChILHt0eXBlOiJiYXNlNjQifSk7YnJlYWs7Y2FzZSJiaW5hcnkiOlg9bXQucmVhZChILHt0eXBl''@;'; put 'put ''OiJiaW5hcnkifSk7YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOlg9bXQucmVhZChILHt0eXBlOiJidWZmZXIifSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIraWUudHlwZSl9cmV0dXJuIFh9ZnVuY3Rpb24gdW4oSCxpZSl7aWYoIi8i''@;'; put 'put ''PT1ILmNoYXJBdCgwKSlyZXR1cm4gSC5zbGljZSgxKTt2YXIgWD1pZS5zcGxpdCgiLyIpOyIvIiE9aWUuc2xpY2UoLTEpJiZYLnBvcCgpO2Zvcih2YXIgd2U9SC5zcGxpdCgiLyIpOzAhPT13ZS5sZW5ndGg7KXt2YXIgeGU9d2Uuc2hpZnQoKTsiLi4iPT09eGU/WC5wb3AoKToiLiIhPT14ZSYm''@;'; put 'put ''WC5wdXNoKHhlKX1yZXR1cm4gWC5qb2luKCIvIil9InVuZGVmaW5lZCIhPXR5cGVvZiBKU1ppcFN5bmMmJihCbj1KU1ppcFN5bmMpLFhlLmV4cG9ydHMmJnZvaWQgMD09PUJuJiYoQm49TCg2OTk2MykpO3ZhciBjbj0nPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5k''@;'; put 'put ''YWxvbmU9InllcyI/PlxyXG4nLF9uPS8oPzpbXiJccz8+XC9dKylccyo9XHMqKCg/OiIpKD86W14iXSo/KSg/OiIpfCg/OicpKD86W14nXSo/KSg/OicpfCg/OlteJyI+XHNdKykpL2csR3Q9LzxbXC9cP10/W2EtekEtWjAtOTpfLV0rKD86XHMrW14iXHM/PlwvXStccyo9XHMqKD86IlteIl0q''@;'; put 'put ''InwnW14nXSonfFteJyI+XHM9XSspKSpccz9bXC9cP10/Pi9nO2NuLm1hdGNoKEd0KXx8KEd0PS88W14+XSo+L2cpO3ZhciBrbj0vPFx3KjovLFZuPS88KFwvPylcdys6LztmdW5jdGlvbiBlbihILGllLFgpe2Zvcih2YXIgd2U9e30seGU9MCxGZT0wO3hlIT09SC5sZW5ndGgmJjMyIT09KEZl''@;'; put 'put ''PUguY2hhckNvZGVBdCh4ZSkpJiYxMCE9PUZlJiYxMyE9PUZlOysreGUpO2lmKGllfHwod2VbMF09SC5zbGljZSgwLHhlKSkseGU9PT1ILmxlbmd0aClyZXR1cm4gd2U7dmFyIFplPUgubWF0Y2goX24pLGplPTAsWWU9IiIsTXQ9MCx4dD0iIixSdD0iIixVdD0xO2lmKFplKWZvcihNdD0wO010''@;'; put 'put ''IT1aZS5sZW5ndGg7KytNdCl7Zm9yKFJ0PVplW010XSxGZT0wO0ZlIT1SdC5sZW5ndGgmJjYxIT09UnQuY2hhckNvZGVBdChGZSk7KytGZSk7Zm9yKHh0PVJ0LnNsaWNlKDAsRmUpLnRyaW0oKTszMj09UnQuY2hhckNvZGVBdChGZSsxKTspKytGZTtmb3IoVXQ9MzQ9PSh4ZT1SdC5jaGFyQ29k''@;'; put 'put ''ZUF0KEZlKzEpKXx8Mzk9PXhlPzE6MCxZZT1SdC5zbGljZShGZSsxK1V0LFJ0Lmxlbmd0aC1VdCksamU9MDtqZSE9eHQubGVuZ3RoJiY1OCE9PXh0LmNoYXJDb2RlQXQoamUpOysramUpO2lmKGplPT09eHQubGVuZ3RoKXh0LmluZGV4T2YoIl8iKT4wJiYoeHQ9eHQuc2xpY2UoMCx4dC5pbmRl''@;'; put 'put ''eE9mKCJfIikpKSx3ZVt4dF09WWUsWHx8KHdlW3h0LnRvTG93ZXJDYXNlKCldPVllKTtlbHNle3ZhciBubj0oNT09PWplJiYieG1sbnMiPT09eHQuc2xpY2UoMCw1KT8ieG1sbnMiOiIiKSt4dC5zbGljZShqZSsxKTtpZih3ZVtubl0mJiJleHQiPT14dC5zbGljZShqZS0zLGplKSljb250aW51''@;'; put 'put ''ZTt3ZVtubl09WWUsWHx8KHdlW25uLnRvTG93ZXJDYXNlKCldPVllKX19cmV0dXJuIHdlfWZ1bmN0aW9uIEluKEgpe3JldHVybiBILnJlcGxhY2UoVm4sIjwkMSIpfXZhciBKbj17IiZxdW90OyI6JyInLCImYXBvczsiOiInIiwiJmd0OyI6Ij4iLCImbHQ7IjoiPCIsIiZhbXA7IjoiJiJ9LG9y''@;'; put 'put ''PXR0KEpuKSxncj1mdW5jdGlvbigpe3ZhciBIPS8mKD86cXVvdHxhcG9zfGd0fGx0fGFtcHwjeD8oW1xkYS1mQS1GXSspKTsvZ2ksaWU9L194KFtcZGEtZkEtRl17NH0pXy9naTtyZXR1cm4gZnVuY3Rpb24gWCh3ZSl7dmFyIHhlPXdlKyIiLEZlPXhlLmluZGV4T2YoIjwhW0NEQVRBWyIpO2lm''@;'; put 'put ''KC0xPT1GZSlyZXR1cm4geGUucmVwbGFjZShILGZ1bmN0aW9uKGplLFllKXtyZXR1cm4gSm5bamVdfHxTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KFllLGplLmluZGV4T2YoIngiKT4tMT8xNjoxMCkpfHxqZX0pLnJlcGxhY2UoaWUsZnVuY3Rpb24oamUsWWUpe3JldHVybiBTdHJpbmcu''@;'; put 'put ''ZnJvbUNoYXJDb2RlKHBhcnNlSW50KFllLDE2KSl9KTt2YXIgWmU9eGUuaW5kZXhPZigiXV0+Iik7cmV0dXJuIFgoeGUuc2xpY2UoMCxGZSkpK3hlLnNsaWNlKEZlKzksWmUpK1goeGUuc2xpY2UoWmUrMykpfX0oKSxLcj0vWyY8PiciXS9nLFZyPS9bXHUwMDAwLVx1MDAwOFx1MDAwYi1cdTAw''@;'; put 'put ''MWZdL2csaWk9L194WzAtOWEtZkEtRl17NH1fL2c7ZnVuY3Rpb24gUnIoSCl7cmV0dXJuKEgrIiIpLnJlcGxhY2UoaWksIl94MDA1RiQmIikucmVwbGFjZShLcixmdW5jdGlvbihYKXtyZXR1cm4gb3JbWF19KS5yZXBsYWNlKFZyLGZ1bmN0aW9uKFgpe3JldHVybiJfeCIrKCIwMDAiK1guY2hh''@;'; put 'put ''ckNvZGVBdCgwKS50b1N0cmluZygxNikpLnNsaWNlKC00KSsiXyJ9KX1mdW5jdGlvbiBsaShIKXtyZXR1cm4gUnIoSCkucmVwbGFjZSgvXG4vZywiX3gwMDBhXyIpfWZ1bmN0aW9uIE1pKEgpe3JldHVybiBScihIKS5yZXBsYWNlKC8gL2csIl94MDAyMF8iKX12YXIgbzA9L1tcdTAwMDAtXHUw''@;'; put 'put ''MDFmXS9nO2Z1bmN0aW9uIG4wKEgpe3JldHVybihIKyIiKS5yZXBsYWNlKEtyLGZ1bmN0aW9uKFgpe3JldHVybiBvcltYXX0pLnJlcGxhY2UoL1xuL2csIjxici8+IikucmVwbGFjZShvMCxmdW5jdGlvbihYKXtyZXR1cm4iJiN4IisoIjAwMCIrWC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2''@;'; put 'put ''KSkuc2xpY2UoLTQpKyI7In0pfWZ1bmN0aW9uIGQwKEgpe3JldHVybihIKyIiKS5yZXBsYWNlKEtyLGZ1bmN0aW9uKFgpe3JldHVybiBvcltYXX0pLnJlcGxhY2UobzAsZnVuY3Rpb24oWCl7cmV0dXJuIiYjeCIrWC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpKyI7''@;'; put 'put ''In0pfXZhciBtMD1mdW5jdGlvbigpe3ZhciBIPS8mIyhcZCspOy9nO2Z1bmN0aW9uIGllKFgsd2Upe3JldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KHdlLDEwKSl9cmV0dXJuIGZ1bmN0aW9uKHdlKXtyZXR1cm4gd2UucmVwbGFjZShILGllKX19KCk7ZnVuY3Rpb24gRGkoSCl7''@;'; put 'put ''c3dpdGNoKEgpe2Nhc2UgMTpjYXNlITA6Y2FzZSIxIjpjYXNlInRydWUiOmNhc2UiVFJVRSI6cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMX19dmFyIFcwPWZ1bmN0aW9uKGllKXtmb3IodmFyIFg9IiIsd2U9MCx4ZT0wLEZlPTAsWmU9MCxqZT0wLFllPTA7d2U8aWUubGVuZ3RoOykoeGU9aWUu''@;'; put 'put ''Y2hhckNvZGVBdCh3ZSsrKSk8MTI4P1grPVN0cmluZy5mcm9tQ2hhckNvZGUoeGUpOihGZT1pZS5jaGFyQ29kZUF0KHdlKyspLHhlPjE5MSYmeGU8MjI0PyhqZT0oMzEmeGUpPDw2LGplfD02MyZGZSxYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGplKSk6KFplPWllLmNoYXJDb2RlQXQod2UrKyks''@;'; put 'put ''eGU8MjQwP1grPVN0cmluZy5mcm9tQ2hhckNvZGUoKDE1JnhlKTw8MTJ8KDYzJkZlKTw8Nnw2MyZaZSk6KFllPSgoNyZ4ZSk8PDE4fCg2MyZGZSk8PDEyfCg2MyZaZSk8PDZ8NjMmKGplPWllLmNoYXJDb2RlQXQod2UrKykpKS02NTUzNixYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2KyhZ''@;'; put 'put ''ZT4+PjEwJjEwMjMpKSxYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU2MzIwKygxMDIzJlllKSkpKSk7cmV0dXJuIFh9LEVvPWZ1bmN0aW9uKEgpe2Zvcih2YXIgaWU9W10sWD0wLHdlPTAseGU9MDtYPEgubGVuZ3RoOylzd2l0Y2god2U9SC5jaGFyQ29kZUF0KFgrKyksITApe2Nhc2Ugd2U8MTI4''@;'; put 'put ''OmllLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSh3ZSkpO2JyZWFrO2Nhc2Ugd2U8MjA0ODppZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTkyKyh3ZT4+NikpKSxpZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZ3ZSkpKTticmVhaztjYXNlIHdlPj01NTI5NiYmd2U8NTcz''@;'; put 'put ''NDQ6d2UtPTU1Mjk2LHhlPUguY2hhckNvZGVBdChYKyspLTU2MzIwKyh3ZTw8MTApLGllLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgyNDArKHhlPj4xOCY3KSkpLGllLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgxNDQrKHhlPj4xMiY2MykpKSxpZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNv''@;'; put 'put ''ZGUoMTI4Kyh4ZT4+NiY2MykpKSxpZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZ4ZSkpKTticmVhaztkZWZhdWx0OmllLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZSgyMjQrKHdlPj4xMikpKSxpZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyh3ZT4+NiY2MykpKSxp''@;'; put 'put ''ZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoMTI4Kyg2MyZ3ZSkpKX1yZXR1cm4gaWUuam9pbigiIil9O2lmKEllKXt2YXIgcW89ZnVuY3Rpb24oaWUpe3ZhciB3ZSx4ZSxZZSxYPUJ1ZmZlci5hbGxvYygyKmllLmxlbmd0aCksRmU9MSxaZT0wLGplPTA7Zm9yKHhlPTA7eGU8aWUubGVuZ3Ro''@;'; put 'put ''O3hlKz1GZSlGZT0xLChZZT1pZS5jaGFyQ29kZUF0KHhlKSk8MTI4P3dlPVllOlllPDIyND8od2U9NjQqKDMxJlllKSsoNjMmaWUuY2hhckNvZGVBdCh4ZSsxKSksRmU9Mik6WWU8MjQwPyh3ZT00MDk2KigxNSZZZSkrNjQqKDYzJmllLmNoYXJDb2RlQXQoeGUrMSkpKyg2MyZpZS5jaGFyQ29k''@;'; put 'put ''ZUF0KHhlKzIpKSxGZT0zKTooRmU9NCx3ZT0yNjIxNDQqKDcmWWUpKzQwOTYqKDYzJmllLmNoYXJDb2RlQXQoeGUrMSkpKzY0Kig2MyZpZS5jaGFyQ29kZUF0KHhlKzIpKSsoNjMmaWUuY2hhckNvZGVBdCh4ZSszKSksamU9NTUyOTYrKCh3ZS09NjU1MzYpPj4+MTAmMTAyMyksd2U9NTYzMjAr''@;'; put 'put ''KDEwMjMmd2UpKSwwIT09amUmJihYW1plKytdPTI1NSZqZSxYW1plKytdPWplPj4+OCxqZT0wKSxYW1plKytdPXdlJTI1NixYW1plKytdPXdlPj4+ODtyZXR1cm4gWC5zbGljZSgwLFplKS50b1N0cmluZygidWNzMiIpfSxjYT0iZm9vIGJhciBiYXpceGUyXHg5OFx4ODNceGYwXHg5Zlx4OGRc''@;'; put 'put ''eGEzIjtXMChjYSk9PXFvKGNhKSYmKFcwPXFvKTt2YXIgbGw9ZnVuY3Rpb24oaWUpe3JldHVybiBUZShpZSwiYmluYXJ5IikudG9TdHJpbmcoInV0ZjgiKX07VzAoY2EpPT1sbChjYSkmJihXMD1sbCksRW89ZnVuY3Rpb24oSCl7cmV0dXJuIFRlKEgsInV0ZjgiKS50b1N0cmluZygiYmluYXJ5''@;'; put 'put ''Iil9fXZhciBILFFpPShIPXt9LGZ1bmN0aW9uKFgsd2Upe3ZhciB4ZT1YKyJ8Iisod2V8fCIiKTtyZXR1cm4gSFt4ZV0/SFt4ZV06SFt4ZV09bmV3IFJlZ0V4cCgiPCg/Olxcdys6KT8iK1grJyg/OiB4bWw6c3BhY2U9InByZXNlcnZlIik/KD86W14+XSopPihbXFxzXFxTXSo/KTwvKD86XFx3''@;'; put 'put ''KzopPycrWCsiPiIsd2V8fCIiKX0pLE1hPWZ1bmN0aW9uKCl7dmFyIEg9W1sibmJzcCIsIiAiXSxbIm1pZGRvdCIsIlx4YjciXSxbInF1b3QiLCciJ10sWyJhcG9zIiwiJyJdLFsiZ3QiLCI+Il0sWyJsdCIsIjwiXSxbImFtcCIsIiYiXV0ubWFwKGZ1bmN0aW9uKGllKXtyZXR1cm5bbmV3IFJl''@;'; put 'put ''Z0V4cCgiJiIraWVbMF0rIjsiLCJpZyIpLGllWzFdXX0pO3JldHVybiBmdW5jdGlvbihYKXtmb3IodmFyIHdlPVgucmVwbGFjZSgvXltcdFxuXHIgXSsvLCIiKS5yZXBsYWNlKC9bXHRcblxyIF0rJC8sIiIpLnJlcGxhY2UoL1tcdFxuXHIgXSsvZywiICIpLnJlcGxhY2UoLzxccypbYkJdW3JS''@;'; put 'put ''XVxzKlwvPz4vZywiXG4iKS5yZXBsYWNlKC88W14+XSo+L2csIiIpLHhlPTA7eGU8SC5sZW5ndGg7Kyt4ZSl3ZT13ZS5yZXBsYWNlKEhbeGVdWzBdLEhbeGVdWzFdKTtyZXR1cm4gd2V9fSgpLG5sPWZ1bmN0aW9uKCl7dmFyIEg9e307cmV0dXJuIGZ1bmN0aW9uKFgpe3JldHVybiB2b2lkIDAh''@;'; put 'put ''PT1IW1hdP0hbWF06SFtYXT1uZXcgUmVnRXhwKCI8KD86dnQ6KT8iK1grIj4oW1xcc1xcU10qPyk8Lyg/OnZ0Oik/IitYKyI+IiwiZyIpfX0oKSxnbD0vPFwvPyg/OnZ0Oik/dmFyaWFudD4vZyxBaT0vPCg/OnZ0OikoW14+XSopPihbXHNcU10qKTwvO2Z1bmN0aW9uIHZpKEgsaWUpe3ZhciBY''@;'; put 'put ''PWVuKEgpLHdlPUgubWF0Y2gobmwoWC5iYXNlVHlwZSkpfHxbXSx4ZT1bXTtpZih3ZS5sZW5ndGghPVguc2l6ZSl7aWYoaWUuV1RGKXRocm93IG5ldyBFcnJvcigidW5leHBlY3RlZCB2ZWN0b3IgbGVuZ3RoICIrd2UubGVuZ3RoKyIgIT0gIitYLnNpemUpO3JldHVybiB4ZX1yZXR1cm4gd2Uu''@;'; put 'put ''Zm9yRWFjaChmdW5jdGlvbihGZSl7dmFyIFplPUZlLnJlcGxhY2UoZ2wsIiIpLm1hdGNoKEFpKTtaZSYmeGUucHVzaCh7djpXMChaZVsyXSksdDpaZVsxXX0pfSkseGV9dmFyIGIwPS8oXlxzfFxzJHxcbikvO2Z1bmN0aW9uIHNhKEgsaWUpe3JldHVybiI8IitIKyhpZS5tYXRjaChiMCk/JyB4''@;'; put 'put ''bWw6c3BhY2U9InByZXNlcnZlIic6IiIpKyI+IitpZSsiPC8iK0grIj4ifWZ1bmN0aW9uIHJsKEgpe3JldHVybiBvbihIKS5tYXAoZnVuY3Rpb24oaWUpe3JldHVybiIgIitpZSsnPSInK0hbaWVdKyciJ30pLmpvaW4oIiIpfWZ1bmN0aW9uIF9pKEgsaWUsWCl7cmV0dXJuIjwiK0grKG51bGwh''@;'; put 'put ''PVg/cmwoWCk6IiIpKyhudWxsIT1pZT8oaWUubWF0Y2goYjApPycgeG1sOnNwYWNlPSJwcmVzZXJ2ZSInOiIiKSsiPiIraWUrIjwvIitIOiIvIikrIj4ifWZ1bmN0aW9uIFUwKEgsaWUpe3RyeXtyZXR1cm4gSC50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqLywiIil9Y2F0Y2goWCl7aWYo''@;'; put 'put ''aWUpdGhyb3cgWH1yZXR1cm4iIn12YXIgZmksUjAsWDA9e2RjOiJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIsZGN0ZXJtczoiaHR0cDovL3B1cmwub3JnL2RjL3Rlcm1zLyIsZGNtaXR5cGU6Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS8iLG14OiJodHRwOi8vc2NoZW1h''@;'; put 'put ''cy5taWNyb3NvZnQuY29tL29mZmljZS9tYWMvZXhjZWwvMjAwOC9tYWluIixyOiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIixzanM6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIw''@;'; put 'put ''MDYvc2hlZXRqcy9jb3JlLXByb3BlcnRpZXMiLHZ0OiJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9kb2NQcm9wc1ZUeXBlcyIseHNpOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIseHNkOiJodHRwOi8vd3d3''@;'; put 'put ''LnczLm9yZy8yMDAxL1hNTFNjaGVtYSIsbWFpbjpbImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpbiIsImh0dHA6Ly9wdXJsLm9jbGMub3JnL29veG1sL3NwcmVhZHNoZWV0bWwvbWFpbiIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5j''@;'; put 'put ''b20vb2ZmaWNlL2V4Y2VsLzIwMDYvbWFpbiIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL2V4Y2VsLzIwMDYvMiJdfSx1YV9vPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiLHVhX3g9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNl''@;'; put 'put ''OmV4Y2VsIix1YV9zcz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6c3ByZWFkc2hlZXQiLHVhX3Y9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIix2bj1mdW5jdGlvbihIKXtmb3IodmFyIGllPVtdLHdlPTA7d2U8SFswXS5sZW5ndGg7Kyt3ZSlpZihIWzBdW3dlXSlm''@;'; put 'put ''b3IodmFyIHhlPTAsRmU9SFswXVt3ZV0ubGVuZ3RoO3hlPEZlO3hlKz0xMDI0MClpZS5wdXNoLmFwcGx5KGllLEhbMF1bd2VdLnNsaWNlKHhlLHhlKzEwMjQwKSk7cmV0dXJuIGllfSxfMD12bixnYz1mdW5jdGlvbihILGllLFgpe2Zvcih2YXIgd2U9W10seGU9aWU7eGU8WDt4ZSs9Mil3ZS5w''@;'; put 'put ''dXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoUHMoSCx4ZSkpKTtyZXR1cm4gd2Uuam9pbigiIikucmVwbGFjZShULCIiKX0scGQ9Z2MsQjE9ZnVuY3Rpb24oSCxpZSxYKXtmb3IodmFyIHdlPVtdLHhlPWllO3hlPGllK1g7Kyt4ZSl3ZS5wdXNoKCgiMCIrSFt4ZV0udG9TdHJpbmcoMTYpKS5zbGlj''@;'; put 'put ''ZSgtMikpO3JldHVybiB3ZS5qb2luKCIiKX0sYXU9QjEsUDE9ZnVuY3Rpb24oSCxpZSxYKXtmb3IodmFyIHdlPVtdLHhlPWllO3hlPFg7eGUrKyl3ZS5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoVGkoSCx4ZSkpKTtyZXR1cm4gd2Uuam9pbigiIil9LG1jPVAxLHgyPWZ1bmN0aW9uKEgsaWUp''@;'; put 'put ''e3ZhciBYPVlsKEgsaWUpO3JldHVybiBYPjA/UDEoSCxpZSs0LGllKzQrWC0xKToiIn0sUGw9eDIsZDM9ZnVuY3Rpb24oSCxpZSl7dmFyIFg9WWwoSCxpZSk7cmV0dXJuIFg+MD9QMShILGllKzQsaWUrNCtYLTEpOiIifSxRMj1kMyxzMT1mdW5jdGlvbihILGllKXt2YXIgWD0yKllsKEgsaWUp''@;'; put 'put ''O3JldHVybiBYPjA/UDEoSCxpZSs0LGllKzQrWC0xKToiIn0sWjA9czE7Zmk9UjA9ZnVuY3Rpb24oaWUsWCl7dmFyIHdlPVlsKGllLFgpO3JldHVybiB3ZT4wP2djKGllLFgrNCxYKzQrd2UpOiIifTt2YXIgZHMsbjIsbW89ZnVuY3Rpb24oSCxpZSl7dmFyIFg9WWwoSCxpZSk7cmV0dXJuIFg+''@;'; put 'put ''MD9QMShILGllKzQsaWUrNCtYKToiIn0scnM9bW87ZHM9bjI9ZnVuY3Rpb24oSCxpZSl7cmV0dXJuIGZ1bmN0aW9uIGowKEgsaWUpe2Zvcih2YXIgWD0xLTIqKEhbaWUrN10+Pj43KSx3ZT0oKDEyNyZIW2llKzddKTw8NCkrKEhbaWUrNl0+Pj40JjE1KSx4ZT0xNSZIW2llKzZdLEZlPTU7RmU+''@;'; put 'put ''PTA7LS1GZSl4ZT0yNTYqeGUrSFtpZStGZV07cmV0dXJuIDIwNDc9PXdlPzA9PXhlP1gqKDEvMCk6TmFOOigwPT13ZT93ZT0tMTAyMjood2UtPTEwMjMseGUrPU1hdGgucG93KDIsNTIpKSxYKk1hdGgucG93KDIsd2UtNTIpKnhlKX0oSCxpZSl9O3ZhciBUMj1mdW5jdGlvbihpZSl7cmV0dXJu''@;'; put 'put ''IEFycmF5LmlzQXJyYXkoaWUpfTtJZSYmKGdjPWZ1bmN0aW9uKEgsaWUsWCl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZlcihIKT9ILnRvU3RyaW5nKCJ1dGYxNmxlIixpZSxYKS5yZXBsYWNlKFQsIiIpOnBkKEgsaWUsWCl9LEIxPWZ1bmN0aW9uKEgsaWUsWCl7cmV0dXJuIEJ1ZmZlci5pc0J1ZmZl''@;'; put 'put ''cihIKT9ILnRvU3RyaW5nKCJoZXgiLGllLGllK1gpOmF1KEgsaWUsWCl9LHgyPWZ1bmN0aW9uKGllLFgpe2lmKCFCdWZmZXIuaXNCdWZmZXIoaWUpKXJldHVybiBQbChpZSxYKTt2YXIgd2U9aWUucmVhZFVJbnQzMkxFKFgpO3JldHVybiB3ZT4wP2llLnRvU3RyaW5nKCJ1dGY4IixYKzQsWCs0''@;'; put 'put ''K3dlLTEpOiIifSxkMz1mdW5jdGlvbihpZSxYKXtpZighQnVmZmVyLmlzQnVmZmVyKGllKSlyZXR1cm4gUTIoaWUsWCk7dmFyIHdlPWllLnJlYWRVSW50MzJMRShYKTtyZXR1cm4gd2U+MD9pZS50b1N0cmluZygidXRmOCIsWCs0LFgrNCt3ZS0xKToiIn0sczE9ZnVuY3Rpb24oaWUsWCl7aWYo''@;'; put 'put ''IUJ1ZmZlci5pc0J1ZmZlcihpZSkpcmV0dXJuIFowKGllLFgpO3ZhciB3ZT0yKmllLnJlYWRVSW50MzJMRShYKTtyZXR1cm4gaWUudG9TdHJpbmcoInV0ZjE2bGUiLFgrNCxYKzQrd2UtMSl9LGZpPWZ1bmN0aW9uKGllLFgpe2lmKCFCdWZmZXIuaXNCdWZmZXIoaWUpKXJldHVybiBSMChpZSxY''@;'; put 'put ''KTt2YXIgd2U9aWUucmVhZFVJbnQzMkxFKFgpO3JldHVybiBpZS50b1N0cmluZygidXRmMTZsZSIsWCs0LFgrNCt3ZSl9LG1vPWZ1bmN0aW9uKGllLFgpe2lmKCFCdWZmZXIuaXNCdWZmZXIoaWUpKXJldHVybiBycyhpZSxYKTt2YXIgd2U9aWUucmVhZFVJbnQzMkxFKFgpO3JldHVybiBpZS50''@;'; put 'put ''b1N0cmluZygidXRmOCIsWCs0LFgrNCt3ZSl9LFAxPWZ1bmN0aW9uKGllLFgsd2Upe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoaWUpP2llLnRvU3RyaW5nKCJ1dGY4IixYLHdlKTptYyhpZSxYLHdlKX0sdm49ZnVuY3Rpb24oSCl7cmV0dXJuIEhbMF0ubGVuZ3RoPjAmJkJ1ZmZlci5pc0J1ZmZl''@;'; put 'put ''cihIWzBdWzBdKT9CdWZmZXIuY29uY2F0KEhbMF0pOl8wKEgpfSxWPWZ1bmN0aW9uKEgpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoSFswXSk/QnVmZmVyLmNvbmNhdChIKTpbXS5jb25jYXQuYXBwbHkoW10sSCl9LGRzPWZ1bmN0aW9uKGllLFgpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoaWUp''@;'; put 'put ''P2llLnJlYWREb3VibGVMRShYKTpuMihpZSxYKX0sVDI9ZnVuY3Rpb24oaWUpe3JldHVybiBCdWZmZXIuaXNCdWZmZXIoaWUpfHxBcnJheS5pc0FycmF5KGllKX0pLCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSYmKGdjPWZ1bmN0aW9uKEgsaWUsWCl7cmV0dXJuIGNwdGFibGUudXRpbHMu''@;'; put 'put ''ZGVjb2RlKDEyMDAsSC5zbGljZShpZSxYKSkucmVwbGFjZShULCIiKX0sUDE9ZnVuY3Rpb24oSCxpZSxYKXtyZXR1cm4gY3B0YWJsZS51dGlscy5kZWNvZGUoNjUwMDEsSC5zbGljZShpZSxYKSl9LHgyPWZ1bmN0aW9uKEgsaWUpe3ZhciBYPVlsKEgsaWUpO3JldHVybiBYPjA/Y3B0YWJsZS51''@;'; put 'put ''dGlscy5kZWNvZGUoaixILnNsaWNlKGllKzQsaWUrNCtYLTEpKToiIn0sZDM9ZnVuY3Rpb24oSCxpZSl7dmFyIFg9WWwoSCxpZSk7cmV0dXJuIFg+MD9jcHRhYmxlLnV0aWxzLmRlY29kZShRLEguc2xpY2UoaWUrNCxpZSs0K1gtMSkpOiIifSxzMT1mdW5jdGlvbihILGllKXt2YXIgWD0yKlls''@;'; put 'put ''KEgsaWUpO3JldHVybiBYPjA/Y3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCxILnNsaWNlKGllKzQsaWUrNCtYLTEpKToiIn0sZmk9ZnVuY3Rpb24oSCxpZSl7dmFyIFg9WWwoSCxpZSk7cmV0dXJuIFg+MD9jcHRhYmxlLnV0aWxzLmRlY29kZSgxMjAwLEguc2xpY2UoaWUrNCxpZSs0K1gpKToi''@;'; put 'put ''In0sbW89ZnVuY3Rpb24oSCxpZSl7dmFyIFg9WWwoSCxpZSk7cmV0dXJuIFg+MD9jcHRhYmxlLnV0aWxzLmRlY29kZSg2NTAwMSxILnNsaWNlKGllKzQsaWUrNCtYKSk6IiJ9KTt2YXIgVGk9ZnVuY3Rpb24oSCxpZSl7cmV0dXJuIEhbaWVdfSxQcz1mdW5jdGlvbihILGllKXtyZXR1cm4gMjU2''@;'; put 'put ''KkhbaWUrMV0rSFtpZV19LE5mPWZ1bmN0aW9uKEgsaWUpe3ZhciBYPTI1NipIW2llKzFdK0hbaWVdO3JldHVybiBYPDMyNzY4P1g6LTEqKDY1NTM1LVgrMSl9LFlsPWZ1bmN0aW9uKEgsaWUpe3JldHVybiBIW2llKzNdKigxPDwyNCkrKEhbaWUrMl08PDE2KSsoSFtpZSsxXTw8OCkrSFtpZV19''@;'; put 'put ''LE5jPWZ1bmN0aW9uKEgsaWUpe3JldHVybiBIW2llKzNdPDwyNHxIW2llKzJdPDwxNnxIW2llKzFdPDw4fEhbaWVdfSxjbz1mdW5jdGlvbihILGllKXtyZXR1cm4gSFtpZV08PDI0fEhbaWUrMV08PDE2fEhbaWUrMl08PDh8SFtpZSszXX07ZnVuY3Rpb24gQzQoSCxpZSl7dmFyIHdlLHhlLFpl''@;'; put 'put ''LGplLFllLE10LFg9IiIsRmU9W107c3dpdGNoKGllKXtjYXNlImRiY3MiOmlmKE10PXRoaXMubCxJZSYmQnVmZmVyLmlzQnVmZmVyKHRoaXMpKVg9dGhpcy5zbGljZSh0aGlzLmwsdGhpcy5sKzIqSCkudG9TdHJpbmcoInV0ZjE2bGUiKTtlbHNlIGZvcihZZT0wO1llPEg7KytZZSlYKz1TdHJp''@;'; put 'put ''bmcuZnJvbUNoYXJDb2RlKFBzKHRoaXMsTXQpKSxNdCs9MjtIKj0yO2JyZWFrO2Nhc2UidXRmOCI6WD1QMSh0aGlzLHRoaXMubCx0aGlzLmwrSCk7YnJlYWs7Y2FzZSJ1dGYxNmxlIjpYPWdjKHRoaXMsdGhpcy5sLHRoaXMubCsoSCo9MikpO2JyZWFrO2Nhc2Uid3N0ciI6aWYoInVuZGVmaW5l''@;'; put 'put ''ZCI9PXR5cGVvZiBjcHRhYmxlKXJldHVybiBDNC5jYWxsKHRoaXMsSCwiZGJjcyIpO1g9Y3B0YWJsZS51dGlscy5kZWNvZGUoUSx0aGlzLnNsaWNlKHRoaXMubCx0aGlzLmwrMipIKSksSCo9MjticmVhaztjYXNlImxwc3RyLWFuc2kiOlg9eDIodGhpcyx0aGlzLmwpLEg9NCtZbCh0aGlzLHRo''@;'; put 'put ''aXMubCk7YnJlYWs7Y2FzZSJscHN0ci1jcCI6WD1kMyh0aGlzLHRoaXMubCksSD00K1lsKHRoaXMsdGhpcy5sKTticmVhaztjYXNlImxwd3N0ciI6WD1zMSh0aGlzLHRoaXMubCksSD00KzIqWWwodGhpcyx0aGlzLmwpO2JyZWFrO2Nhc2UibHBwNCI6SD00K1lsKHRoaXMsdGhpcy5sKSxYPWZp''@;'; put 'put ''KHRoaXMsdGhpcy5sKSwyJkgmJihIKz0yKTticmVhaztjYXNlIjhscHA0IjpIPTQrWWwodGhpcyx0aGlzLmwpLFg9bW8odGhpcyx0aGlzLmwpLDMmSCYmKEgrPTQtKDMmSCkpO2JyZWFrO2Nhc2UiY3N0ciI6Zm9yKEg9MCxYPSIiOzAhPT0oWmU9VGkodGhpcyx0aGlzLmwrSCsrKSk7KUZlLnB1''@;'; put 'put ''c2goZGUoWmUpKTtYPUZlLmpvaW4oIiIpO2JyZWFrO2Nhc2UiX3dzdHIiOmZvcihIPTAsWD0iIjswIT09KFplPVBzKHRoaXMsdGhpcy5sK0gpKTspRmUucHVzaChkZShaZSkpLEgrPTI7SCs9MixYPUZlLmpvaW4oIiIpO2JyZWFrO2Nhc2UiZGJjcy1jb250Ijpmb3IoWD0iIixNdD10aGlzLmws''@;'; put 'put ''WWU9MDtZZTxIOysrWWUpe2lmKHRoaXMubGVucyYmLTEhPT10aGlzLmxlbnMuaW5kZXhPZihNdCkpcmV0dXJuIFplPVRpKHRoaXMsTXQpLHRoaXMubD1NdCsxLGplPUM0LmNhbGwodGhpcyxILVllLFplPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxGZS5qb2luKCIiKStqZTtGZS5wdXNoKGRl''@;'; put 'put ''KFBzKHRoaXMsTXQpKSksTXQrPTJ9WD1GZS5qb2luKCIiKSxIKj0yO2JyZWFrO2Nhc2UiY3BzdHIiOmlmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSl7WD1jcHRhYmxlLnV0aWxzLmRlY29kZShRLHRoaXMuc2xpY2UodGhpcy5sLHRoaXMubCtIKSk7YnJlYWt9Y2FzZSJzYmNzLWNvbnQi''@;'; put 'put ''OmZvcihYPSIiLE10PXRoaXMubCxZZT0wO1llIT1IOysrWWUpe2lmKHRoaXMubGVucyYmLTEhPT10aGlzLmxlbnMuaW5kZXhPZihNdCkpcmV0dXJuIFplPVRpKHRoaXMsTXQpLHRoaXMubD1NdCsxLGplPUM0LmNhbGwodGhpcyxILVllLFplPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKSxGZS5q''@;'; put 'put ''b2luKCIiKStqZTtGZS5wdXNoKGRlKFRpKHRoaXMsTXQpKSksTXQrPTF9WD1GZS5qb2luKCIiKTticmVhaztkZWZhdWx0OnN3aXRjaChIKXtjYXNlIDE6cmV0dXJuIHdlPVRpKHRoaXMsdGhpcy5sKSx0aGlzLmwrKyx3ZTtjYXNlIDI6cmV0dXJuIHdlPSgiaSI9PT1pZT9OZjpQcykodGhpcyx0''@;'; put 'put ''aGlzLmwpLHRoaXMubCs9Mix3ZTtjYXNlIDQ6Y2FzZS00OnJldHVybiJpIj09PWllfHwwPT0oMTI4JnRoaXNbdGhpcy5sKzNdKT8od2U9KEg+MD9OYzpjbykodGhpcyx0aGlzLmwpLHRoaXMubCs9NCx3ZSk6KHhlPVlsKHRoaXMsdGhpcy5sKSx0aGlzLmwrPTQseGUpO2Nhc2UgODpjYXNlLTg6''@;'; put 'put ''aWYoImYiPT09aWUpcmV0dXJuIHhlPTg9PUg/ZHModGhpcyx0aGlzLmwpOmRzKFt0aGlzW3RoaXMubCs3XSx0aGlzW3RoaXMubCs2XSx0aGlzW3RoaXMubCs1XSx0aGlzW3RoaXMubCs0XSx0aGlzW3RoaXMubCszXSx0aGlzW3RoaXMubCsyXSx0aGlzW3RoaXMubCsxXSx0aGlzW3RoaXMubCsw''@;'; put 'put ''XV0sMCksdGhpcy5sKz04LHhlO0g9ODtjYXNlIDE2Olg9QjEodGhpcyx0aGlzLmwsSCl9fXJldHVybiB0aGlzLmwrPUgsWH12YXIgVXM9ZnVuY3Rpb24oSCxpZSxYKXtIW1hdPTI1NSZpZSxIW1grMV09aWU+Pj44JjI1NX07ZnVuY3Rpb24gdnMoSCxpZSxYKXt2YXIgd2U9MCx4ZT0wO2lmKCJk''@;'; put 'put ''YmNzIj09PVgpe2Zvcih4ZT0wO3hlIT1pZS5sZW5ndGg7Kyt4ZSlVcyh0aGlzLGllLmNoYXJDb2RlQXQoeGUpLHRoaXMubCsyKnhlKTt3ZT0yKmllLmxlbmd0aH1lbHNlIGlmKCJzYmNzIj09PVgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSYmODc0PT1qKWZvcih4ZT0wO3hlIT1p''@;'; put 'put ''ZS5sZW5ndGg7Kyt4ZSl7dmFyIEZlPWNwdGFibGUudXRpbHMuZW5jb2RlKGosaWUuY2hhckF0KHhlKSk7dGhpc1t0aGlzLmwreGVdPUZlWzBdfWVsc2UgZm9yKGllPWllLnJlcGxhY2UoL1teXHgwMC1ceDdGXS9nLCJfIikseGU9MDt4ZSE9aWUubGVuZ3RoOysreGUpdGhpc1t0aGlzLmwreGVd''@;'; put 'put ''PTI1NSZpZS5jaGFyQ29kZUF0KHhlKTt3ZT1pZS5sZW5ndGh9ZWxzZXtpZigiaGV4Ij09PVgpe2Zvcig7eGU8SDsrK3hlKXRoaXNbdGhpcy5sKytdPXBhcnNlSW50KGllLnNsaWNlKDIqeGUsMip4ZSsyKSwxNil8fDA7cmV0dXJuIHRoaXN9aWYoInV0ZjE2bGUiPT09WCl7dmFyIFplPU1hdGgu''@;'; put 'put ''bWluKHRoaXMubCtILHRoaXMubGVuZ3RoKTtmb3IoeGU9MDt4ZTxNYXRoLm1pbihpZS5sZW5ndGgsSCk7Kyt4ZSl7dmFyIGplPWllLmNoYXJDb2RlQXQoeGUpO3RoaXNbdGhpcy5sKytdPTI1NSZqZSx0aGlzW3RoaXMubCsrXT1qZT4+OH1mb3IoO3RoaXMubDxaZTspdGhpc1t0aGlzLmwrK109''@;'; put 'put ''MDtyZXR1cm4gdGhpc31zd2l0Y2goSCl7Y2FzZSAxOndlPTEsdGhpc1t0aGlzLmxdPTI1NSZpZTticmVhaztjYXNlIDI6d2U9Mix0aGlzW3RoaXMubF09MjU1JmllLHRoaXNbdGhpcy5sKzFdPTI1NSYoaWU+Pj49OCk7YnJlYWs7Y2FzZSAzOndlPTMsdGhpc1t0aGlzLmxdPTI1NSZpZSx0aGlz''@;'; put 'put ''W3RoaXMubCsxXT0yNTUmKGllPj4+PTgpLHRoaXNbdGhpcy5sKzJdPTI1NSYoaWU+Pj49OCk7YnJlYWs7Y2FzZSA0OndlPTQsZnVuY3Rpb24oSCxpZSxYKXtIW1hdPTI1NSZpZSxIW1grMV09aWU+Pj44JjI1NSxIW1grMl09aWU+Pj4xNiYyNTUsSFtYKzNdPWllPj4+MjQmMjU1fSh0aGlzLGll''@;'; put 'put ''LHRoaXMubCk7YnJlYWs7Y2FzZSA4OmlmKHdlPTgsImYiPT09WCl7IWZ1bmN0aW9uIEJsKEgsaWUsWCl7dmFyIHdlPShpZTwwfHwxL2llPT0tMS8wPzE6MCk8PDcseGU9MCxGZT0wLFplPXdlPy1pZTppZTtpc0Zpbml0ZShaZSk/MD09WmU/eGU9RmU9MDooeGU9TWF0aC5mbG9vcihNYXRoLmxv''@;'; put 'put ''ZyhaZSkvTWF0aC5MTjIpLEZlPVplKk1hdGgucG93KDIsNTIteGUpLHhlPD0tMTAyMyYmKCFpc0Zpbml0ZShGZSl8fEZlPE1hdGgucG93KDIsNTIpKT94ZT0tMTAyMjooRmUtPU1hdGgucG93KDIsNTIpLHhlKz0xMDIzKSk6KHhlPTIwNDcsRmU9aXNOYU4oaWUpPzI2OTg1OjApO2Zvcih2YXIg''@;'; put 'put ''amU9MDtqZTw9NTsrK2plLEZlLz0yNTYpSFtYK2plXT0yNTUmRmU7SFtYKzZdPSgxNSZ4ZSk8PDR8MTUmRmUsSFtYKzddPXhlPj40fHdlfSh0aGlzLGllLHRoaXMubCk7YnJlYWt9Y2FzZSAxNjpicmVhaztjYXNlLTQ6d2U9NCxmdW5jdGlvbihILGllLFgpe0hbWF09MjU1JmllLEhbWCsxXT1p''@;'; put 'put ''ZT4+OCYyNTUsSFtYKzJdPWllPj4xNiYyNTUsSFtYKzNdPWllPj4yNCYyNTV9KHRoaXMsaWUsdGhpcy5sKX19cmV0dXJuIHRoaXMubCs9d2UsdGhpc31mdW5jdGlvbiBGMShILGllKXt2YXIgWD1CMSh0aGlzLHRoaXMubCxILmxlbmd0aD4+MSk7aWYoWCE9PUgpdGhyb3cgbmV3IEVycm9yKGll''@;'; put 'put ''KyJFeHBlY3RlZCAiK0grIiBzYXcgIitYKTt0aGlzLmwrPUgubGVuZ3RoPj4xfWZ1bmN0aW9uIEtsKEgsaWUpe0gubD1pZSxILnJlYWRfc2hpZnQ9QzQsSC5jaGs9RjEsSC53cml0ZV9zaGlmdD12c31mdW5jdGlvbiBDcyhILGllKXtILmwrPWllfWZ1bmN0aW9uIFJpKEgpe3ZhciBpZT1oZShI''@;'; put 'put ''KTtyZXR1cm4gS2woaWUsMCksaWV9ZnVuY3Rpb24gSDEoSCxpZSxYKXtpZihIKXt2YXIgd2UseGUsRmU7S2woSCxILmx8fDApO2Zvcih2YXIgWmU9SC5sZW5ndGgsamU9MCxZZT0wO0gubDxaZTspezEyOCYoamU9SC5yZWFkX3NoaWZ0KDEpKSYmKGplPSgxMjcmamUpKygoMTI3JkgucmVhZF9z''@;'; put 'put ''aGlmdCgxKSk8PDcpKTt2YXIgTXQ9eDVbamVdfHx4NVs2NTUzNV07Zm9yKEZlPTEyNyYod2U9SC5yZWFkX3NoaWZ0KDEpKSx4ZT0xO3hlPDQmJjEyOCZ3ZTsrK3hlKUZlKz0oMTI3Jih3ZT1ILnJlYWRfc2hpZnQoMSkpKTw8Nyp4ZTtZZT1ILmwrRmU7dmFyIHh0PShNdC5mfHxDcykoSCxGZSxY''@;'; put 'put ''KTtpZihILmw9WWUsaWUoeHQsTXQubixqZSkpcmV0dXJufX19ZnVuY3Rpb24gSjIoKXt2YXIgSD1bXSxpZT1JZT8yNTY6MjA0OCxYPWZ1bmN0aW9uKE10KXt2YXIgeHQ9UmkoTXQpO3JldHVybiBLbCh4dCwwKSx4dH0sd2U9WChpZSkseGU9ZnVuY3Rpb24oKXshd2V8fCh3ZS5sZW5ndGg+d2Uu''@;'; put 'put ''bCYmKCh3ZT13ZS5zbGljZSgwLHdlLmwpKS5sPXdlLmxlbmd0aCksd2UubGVuZ3RoPjAmJkgucHVzaCh3ZSksd2U9bnVsbCl9LEZlPWZ1bmN0aW9uKE10KXtyZXR1cm4gd2UmJk10PHdlLmxlbmd0aC13ZS5sP3dlOih4ZSgpLHdlPVgoTWF0aC5tYXgoTXQrMSxpZSkpKX07cmV0dXJue25leHQ6''@;'; put 'put ''RmUscHVzaDpmdW5jdGlvbihNdCl7eGUoKSxudWxsPT0od2U9TXQpLmwmJih3ZS5sPXdlLmxlbmd0aCksRmUoaWUpfSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4geGUoKSx2bihbSF0pfSxfYnVmczpIfX1mdW5jdGlvbiBDMChILGllLFgsd2Upe3ZhciBGZSx4ZT0rdVRbaWVdO2lmKCFpc05hTih4''@;'; put 'put ''ZSkpe3dlfHwod2U9eDVbeGVdLnB8fChYfHxbXSkubGVuZ3RofHwwKSxGZT0xKyh4ZT49MTI4PzE6MCkrMSx3ZT49MTI4JiYrK0ZlLHdlPj0xNjM4NCYmKytGZSx3ZT49MjA5NzE1MiYmKytGZTt2YXIgWmU9SC5uZXh0KEZlKTt4ZTw9MTI3P1plLndyaXRlX3NoaWZ0KDEseGUpOihaZS53cml0''@;'; put 'put ''ZV9zaGlmdCgxLDEyOCsoMTI3JnhlKSksWmUud3JpdGVfc2hpZnQoMSx4ZT4+NykpO2Zvcih2YXIgamU9MDs0IT1qZTsrK2plKXtpZighKHdlPj0xMjgpKXtaZS53cml0ZV9zaGlmdCgxLHdlKTticmVha31aZS53cml0ZV9zaGlmdCgxLDEyOCsoMTI3JndlKSksd2U+Pj03fXdlPjAmJlQyKFgp''@;'; put 'put ''JiZILnB1c2goWCl9fWZ1bmN0aW9uIHUxKEgsaWUsWCl7dmFyIHdlPWxuKEgpO2lmKGllLnM/KHdlLmNSZWwmJih3ZS5jKz1pZS5zLmMpLHdlLnJSZWwmJih3ZS5yKz1pZS5zLnIpKTood2UuY1JlbCYmKHdlLmMrPWllLmMpLHdlLnJSZWwmJih3ZS5yKz1pZS5yKSksIVh8fFguYmlmZjwxMil7''@;'; put 'put ''Zm9yKDt3ZS5jPj0yNTY7KXdlLmMtPTI1Njtmb3IoO3dlLnI+PTY1NTM2Oyl3ZS5yLT02NTUzNn1yZXR1cm4gd2V9ZnVuY3Rpb24gbWwoSCxpZSxYKXt2YXIgd2U9bG4oSCk7cmV0dXJuIHdlLnM9dTEod2UucyxpZS5zLFgpLHdlLmU9dTEod2UuZSxpZS5zLFgpLHdlfWZ1bmN0aW9uIHAzKEgs''@;'; put 'put ''aWUpe2lmKEguY1JlbCYmSC5jPDApZm9yKEg9bG4oSCk7SC5jPDA7KUguYys9aWU+OD8xNjM4NDoyNTY7aWYoSC5yUmVsJiZILnI8MClmb3IoSD1sbihIKTtILnI8MDspSC5yKz1pZT44PzEwNDg1NzY6aWU+NT82NTUzNjoxNjM4NDtpZihILmNSZWwmJkguYz49KGllPjg/MTYzODQ6MjU2KSlm''@;'; put 'put ''b3IoSD1sbihIKTtILmM+PShpZT44PzE2Mzg0OjI1Nik7KUguYy09aWU+OD8xNjM4NDoyNTY7aWYoSC5yUmVsJiZILnI+PTEwNDg1NzYpZm9yKEg9bG4oSCk7SC5yPj0xMDQ4NTc2OylILnItPTEwNDg1NzY7dmFyIFg9WTAoSCk7cmV0dXJuIUguY1JlbCYmbnVsbCE9SC5jUmVsJiYoWD1mdW5j''@;'; put 'put ''dGlvbiBqcChIKXtyZXR1cm4gSC5yZXBsYWNlKC9eKFtBLVpdKS8sIiQkJDEiKX0oWCkpLCFILnJSZWwmJm51bGwhPUguclJlbCYmKFg9ZnVuY3Rpb24gVXUoSCl7cmV0dXJuIEgucmVwbGFjZSgvKFtBLVpdfF4pKFxkKykkLywiJDEkJCQyIil9KFgpKSxYfWZ1bmN0aW9uIFl1KEgsaWUpe3Jl''@;'; put 'put ''dHVybiAwIT1ILnMucnx8SC5zLnJSZWx8fEguZS5yIT0oaWUuYmlmZj49MTI/MTA0ODU3NTppZS5iaWZmPj04PzY1NTM2OjE2Mzg0KXx8SC5lLnJSZWw/MCE9SC5zLmN8fEgucy5jUmVsfHxILmUuYyE9KGllLmJpZmY+PTEyPzE2MzgzOjI1NSl8fEguZS5jUmVsP3AzKEgucyxpZS5iaWZmKSsi''@;'; put 'put ''OiIrcDMoSC5lLGllLmJpZmYpOihILnMuclJlbD8iIjoiJCIpK1hhKEgucy5yKSsiOiIrKEguZS5yUmVsPyIiOiIkIikrWGEoSC5lLnIpOihILnMuY1JlbD8iIjoiJCIpK19hKEgucy5jKSsiOiIrKEguZS5jUmVsPyIiOiIkIikrX2EoSC5lLmMpfXZhciBzbz17fTtmdW5jdGlvbiBhcyhIKXty''@;'; put 'put ''ZXR1cm4gcGFyc2VJbnQoZnVuY3Rpb24gQTEoSCl7cmV0dXJuIEgucmVwbGFjZSgvXCQoXGQrKSQvLCIkMSIpfShIKSwxMCktMX1mdW5jdGlvbiBYYShIKXtyZXR1cm4iIisoSCsxKX1mdW5jdGlvbiBtaChIKXtmb3IodmFyIGllPWZ1bmN0aW9uIGs0KEgpe3JldHVybiBILnJlcGxhY2UoL15c''@;'; put 'put ''JChbQS1aXSkvLCIkMSIpfShIKSxYPTAsd2U9MDt3ZSE9PWllLmxlbmd0aDsrK3dlKVg9MjYqWCtpZS5jaGFyQ29kZUF0KHdlKS02NDtyZXR1cm4gWC0xfWZ1bmN0aW9uIF9hKEgpe2lmKEg8MCl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgY29sdW1uICIrSCk7dmFyIGllPSIiO2ZvcigrK0g7''@;'; put 'put ''SDtIPU1hdGguZmxvb3IoKEgtMSkvMjYpKWllPVN0cmluZy5mcm9tQ2hhckNvZGUoKEgtMSklMjYrNjUpK2llO3JldHVybiBpZX1mdW5jdGlvbiB1bChIKXtmb3IodmFyIGllPTAsWD0wLHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSl7dmFyIHhlPUguY2hhckNvZGVBdCh3ZSk7eGU+PTQ4JiZ4ZTw9''@;'; put 'put ''NTc/aWU9MTAqaWUrKHhlLTQ4KTp4ZT49NjUmJnhlPD05MCYmKFg9MjYqWCsoeGUtNjQpKX1yZXR1cm57YzpYLTEscjppZS0xfX1mdW5jdGlvbiBZMChIKXtmb3IodmFyIGllPUguYysxLFg9IiI7aWU7aWU9KGllLTEpLzI2fDApWD1TdHJpbmcuZnJvbUNoYXJDb2RlKChpZS0xKSUyNis2NSkr''@;'; put 'put ''WDtyZXR1cm4gWCsoSC5yKzEpfWZ1bmN0aW9uIEFzKEgpe3ZhciBpZT1ILmluZGV4T2YoIjoiKTtyZXR1cm4tMT09aWU/e3M6dWwoSCksZTp1bChIKX06e3M6dWwoSC5zbGljZSgwLGllKSksZTp1bChILnNsaWNlKGllKzEpKX19ZnVuY3Rpb24gZmEoSCxpZSl7cmV0dXJuIHZvaWQgMD09PWll''@;'; put 'put ''fHwibnVtYmVyIj09dHlwZW9mIGllP2ZhKEgucyxILmUpOigic3RyaW5nIiE9dHlwZW9mIEgmJihIPVkwKEgpKSwic3RyaW5nIiE9dHlwZW9mIGllJiYoaWU9WTAoaWUpKSxIPT1pZT9IOkgrIjoiK2llKX1mdW5jdGlvbiBGbyhIKXt2YXIgaWU9SlNPTi5wYXJzZSgneyJzIjp7ImMiOjAsInIi''@;'; put 'put ''OjB9LCJlIjp7ImMiOjAsInIiOjB9fScpLFg9MCx3ZT0wLHhlPTAsRmU9SC5sZW5ndGg7Zm9yKFg9MDt3ZTxGZSYmISgoeGU9SC5jaGFyQ29kZUF0KHdlKS02NCk8MXx8eGU+MjYpOysrd2UpWD0yNipYK3hlO2ZvcihpZS5zLmM9LS1YLFg9MDt3ZTxGZSYmISgoeGU9SC5jaGFyQ29kZUF0KHdl''@;'; put 'put ''KS00OCk8MHx8eGU+OSk7Kyt3ZSlYPTEwKlgreGU7aWYoaWUucy5yPS0tWCx3ZT09PUZlfHw1OD09PUguY2hhckNvZGVBdCgrK3dlKSlyZXR1cm4gaWUuZS5jPWllLnMuYyxpZS5lLnI9aWUucy5yLGllO2ZvcihYPTA7d2UhPUZlJiYhKCh4ZT1ILmNoYXJDb2RlQXQod2UpLTY0KTwxfHx4ZT4y''@;'; put 'put ''Nik7Kyt3ZSlYPTI2KlgreGU7Zm9yKGllLmUuYz0tLVgsWD0wO3dlIT1GZSYmISgoeGU9SC5jaGFyQ29kZUF0KHdlKS00OCk8MHx8eGU+OSk7Kyt3ZSlYPTEwKlgreGU7cmV0dXJuIGllLmUucj0tLVgsaWV9ZnVuY3Rpb24gZ2QoSCxpZSl7dmFyIFg9ImQiPT1ILnQmJmllIGluc3RhbmNlb2Yg''@;'; put 'put ''RGF0ZTtpZihudWxsIT1ILnopdHJ5e3JldHVybiBILnc9Ri5mb3JtYXQoSC56LFg/ZnQoaWUpOmllKX1jYXRjaCh3ZSl7fXRyeXtyZXR1cm4gSC53PUYuZm9ybWF0KChILlhGfHx7fSkubnVtRm10SWR8fChYPzE0OjApLFg/ZnQoaWUpOmllKX1jYXRjaCh3ZSl7cmV0dXJuIiIraWV9fWZ1bmN0''@;'; put 'put ''aW9uIHkxKEgsaWUsWCl7cmV0dXJuIG51bGw9PUh8fG51bGw9PUgudHx8InoiPT1ILnQ/IiI6dm9pZCAwIT09SC53P0gudzooImQiPT1ILnQmJiFILnomJlgmJlguZGF0ZU5GJiYoSC56PVguZGF0ZU5GKSwiZSI9PUgudD9OMVtILnZdfHxILnY6Z2QoSCxudWxsPT1pZT9ILnY6aWUpKX1mdW5j''@;'; put 'put ''dGlvbiB3MShILGllKXt2YXIgWD1pZSYmaWUuc2hlZXQ/aWUuc2hlZXQ6IlNoZWV0MSIsd2U9e307cmV0dXJuIHdlW1hdPUgse1NoZWV0TmFtZXM6W1hdLFNoZWV0czp3ZX19ZnVuY3Rpb24gbGYoSCxpZSxYKXt2YXIgd2U9WHx8e30seGU9SD9BcnJheS5pc0FycmF5KEgpOndlLmRlbnNlLEZl''@;'; put 'put ''PUh8fCh4ZT9bXTp7fSksWmU9MCxqZT0wO2lmKEZlJiZudWxsIT13ZS5vcmlnaW4pe2lmKCJudW1iZXIiPT10eXBlb2Ygd2Uub3JpZ2luKVplPXdlLm9yaWdpbjtlbHNle3ZhciBZZT0ic3RyaW5nIj09dHlwZW9mIHdlLm9yaWdpbj91bCh3ZS5vcmlnaW4pOndlLm9yaWdpbjtaZT1ZZS5yLGpl''@;'; put 'put ''PVllLmN9RmVbIiFyZWYiXXx8KEZlWyIhcmVmIl09IkExOkExIil9dmFyIE10PXtzOntjOjFlNyxyOjFlN30sZTp7YzowLHI6MH19O2lmKEZlWyIhcmVmIl0pe3ZhciB4dD1GbyhGZVsiIXJlZiJdKTtNdC5zLmM9eHQucy5jLE10LnMucj14dC5zLnIsTXQuZS5jPU1hdGgubWF4KE10LmUuYyx4''@;'; put 'put ''dC5lLmMpLE10LmUucj1NYXRoLm1heChNdC5lLnIseHQuZS5yKSwtMT09WmUmJihNdC5lLnI9WmU9eHQuZS5yKzEpfWZvcih2YXIgUnQ9MDtSdCE9aWUubGVuZ3RoOysrUnQpaWYoaWVbUnRdKXtpZighQXJyYXkuaXNBcnJheShpZVtSdF0pKXRocm93IG5ldyBFcnJvcigiYW9hX3RvX3NoZWV0''@;'; put 'put ''IGV4cGVjdHMgYW4gYXJyYXkgb2YgYXJyYXlzIik7Zm9yKHZhciBVdD0wO1V0IT1pZVtSdF0ubGVuZ3RoOysrVXQpaWYodm9pZCAwIT09aWVbUnRdW1V0XSl7dmFyIG5uPXt2OmllW1J0XVtVdF19LENuPVplK1J0LER0PWplK1V0O2lmKE10LnMucj5DbiYmKE10LnMucj1DbiksTXQucy5jPkR0''@;'; put 'put ''JiYoTXQucy5jPUR0KSxNdC5lLnI8Q24mJihNdC5lLnI9Q24pLE10LmUuYzxEdCYmKE10LmUuYz1EdCksIWllW1J0XVtVdF18fCJvYmplY3QiIT10eXBlb2YgaWVbUnRdW1V0XXx8QXJyYXkuaXNBcnJheShpZVtSdF1bVXRdKXx8aWVbUnRdW1V0XWluc3RhbmNlb2YgRGF0ZSlpZihBcnJheS5p''@;'; put 'put ''c0FycmF5KG5uLnYpJiYobm4uZj1pZVtSdF1bVXRdWzFdLG5uLnY9bm4udlswXSksbnVsbD09PW5uLnYpaWYobm4uZilubi50PSJuIjtlbHNlIGlmKHdlLm51bGxFcnJvcilubi50PSJlIixubi52PTA7ZWxzZXtpZighd2Uuc2hlZXRTdHVicyljb250aW51ZTtubi50PSJ6In1lbHNlIm51bWJl''@;'; put 'put ''ciI9PXR5cGVvZiBubi52P25uLnQ9Im4iOiJib29sZWFuIj09dHlwZW9mIG5uLnY/bm4udD0iYiI6bm4udiBpbnN0YW5jZW9mIERhdGU/KG5uLno9d2UuZGF0ZU5GfHxGLl90YWJsZVsxNF0sd2UuY2VsbERhdGVzPyhubi50PSJkIixubi53PUYuZm9ybWF0KG5uLnosZnQobm4udikpKToobm4u''@;'; put 'put ''dD0ibiIsbm4udj1mdChubi52KSxubi53PUYuZm9ybWF0KG5uLnosbm4udikpKTpubi50PSJzIjtlbHNlIG5uPWllW1J0XVtVdF07aWYobm4mJm5uLmgpdHJ5e25uLlI9dXMuaHRtbF90b19ycyhubi5oKSxubi52PSIiO2Zvcih2YXIgenQ9MDt6dDxubi5SLmxlbmd0aDsrK3p0KW5uLnYrPW5u''@;'; put 'put ''LlJbenRdLnZ8fCIifWNhdGNoKFRuKXt9aWYoeGUpRmVbQ25dfHwoRmVbQ25dPVtdKSxGZVtDbl1bRHRdJiZGZVtDbl1bRHRdLnMmJihubi5zPUZlW0NuXVtEdF0ucyksRmVbQ25dW0R0XSYmRmVbQ25dW0R0XS56JiYobm4uej1GZVtDbl1bRHRdLnopLEZlW0NuXVtEdF09bm47ZWxzZXt2YXIg''@;'; put 'put ''UG49WTAoe2M6RHQscjpDbn0pO0ZlW1BuXSYmRmVbUG5dLnMmJihubi5zPUZlW1BuXS5zKSxGZVtQbl0mJkZlW1BuXS56JiYobm4uej1GZVtQbl0ueiksRmVbUG5dPW5ufX19cmV0dXJuIE10LnMuYzwxZTcmJihGZVsiIXJlZiJdPWZhKE10KSksRmV9ZnVuY3Rpb24gbWQoSCxpZSl7cmV0dXJu''@;'; put 'put ''IGxmKG51bGwsSCxpZSl9ZnVuY3Rpb24gJGwoSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoNCkpLGllLndyaXRlX3NoaWZ0KDQsSCksaWV9ZnVuY3Rpb24geHUoSCl7dmFyIGllPUgucmVhZF9zaGlmdCg0KTtyZXR1cm4gMD09PWllPyIiOkgucmVhZF9zaGlmdChpZSwiZGJjcyIpfWZ1bmN0aW9u''@;'; put 'put ''IGx1KEgsaWUpe3ZhciBYPSExO3JldHVybiBudWxsPT1pZSYmKFg9ITAsaWU9UmkoNCsyKkgubGVuZ3RoKSksaWUud3JpdGVfc2hpZnQoNCxILmxlbmd0aCksSC5sZW5ndGg+MCYmaWUud3JpdGVfc2hpZnQoMCxILCJkYmNzIiksWD9pZS5zbGljZSgwLGllLmwpOmllfWZ1bmN0aW9uIHNmKEgp''@;'; put 'put ''e3JldHVybntpY2g6SC5yZWFkX3NoaWZ0KDIpLGlmbnQ6SC5yZWFkX3NoaWZ0KDIpfX1mdW5jdGlvbiBrcyhILGllKXt2YXIgWD1ILmwsd2U9SC5yZWFkX3NoaWZ0KDEpLHhlPXh1KEgpLEZlPVtdLFplPXt0OnhlLGg6eGV9O2lmKDAhPSgxJndlKSl7Zm9yKHZhciBqZT1ILnJlYWRfc2hpZnQo''@;'; put 'put ''NCksWWU9MDtZZSE9amU7KytZZSlGZS5wdXNoKHNmKEgpKTtaZS5yPUZlfWVsc2UgWmUucj1be2ljaDowLGlmbnQ6MH1dO3JldHVybiBILmw9WCtpZSxaZX0hZnVuY3Rpb24oSCxpZSl7dmFyIFg7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjcnlwdG9Ccm93c2VyaWZ5KVg9Y3J5cHRvQnJvd3Nl''@;'; put 'put ''cmlmeTtlbHNlIGlmKHZvaWQgMCE9PWllKVg9aWU7ZWxzZSB0cnl7WD1MKDQxMzQ4KX1jYXRjaCh3ZSl7WD1udWxsfUgucmM0PWZ1bmN0aW9uKHdlLHhlKXt2YXIgRmU9bmV3IEFycmF5KDI1NiksWmU9MCxqZT0wLFllPTAsTXQ9MDtmb3IoamU9MDsyNTYhPWplOysramUpRmVbamVdPWplO2Zv''@;'; put 'put ''cihqZT0wOzI1NiE9amU7KytqZSlZZT1ZZStGZVtqZV0rd2VbamUld2UubGVuZ3RoXS5jaGFyQ29kZUF0KDApJjI1NSxNdD1GZVtqZV0sRmVbamVdPUZlW1llXSxGZVtZZV09TXQ7amU9WWU9MDt2YXIgeHQ9aGUoeGUubGVuZ3RoKTtmb3IoWmU9MDtaZSE9eGUubGVuZ3RoOysrWmUpTXQ9RmVb''@;'; put 'put ''amU9amUrMSYyNTVdLEZlW2plXT1GZVtZZT0oWWUrRmVbamVdKSUyNTZdLEZlW1llXT1NdCx4dFtaZV09eGVbWmVdXkZlW0ZlW2plXStGZVtZZV0mMjU1XTtyZXR1cm4geHR9LEgubWQ1PWZ1bmN0aW9uKHdlKXtpZighWCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNyeXB0byIpO3Jl''@;'; put 'put ''dHVybiBYLmNyZWF0ZUhhc2goIm1kNSIpLnVwZGF0ZShCdWZmZXIuZnJvbSh3ZSkpLmRpZ2VzdCgiaGV4Iil9fShzbywidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0bz9jcnlwdG86dm9pZCAwKTt2YXIgVmY9a3M7ZnVuY3Rpb24gdmgoSCl7dmFyIGllPUgucmVhZF9zaGlmdCg0KSxYPUgucmVh''@;'; put 'put ''ZF9zaGlmdCgyKTtyZXR1cm4gWCs9SC5yZWFkX3NoaWZ0KDEpPDwxNixILmwrKyx7YzppZSxpU3R5bGVSZWY6WH19ZnVuY3Rpb24gUzQoSCxpZSl7cmV0dXJuIG51bGw9PWllJiYoaWU9UmkoOCkpLGllLndyaXRlX3NoaWZ0KC00LEguYyksaWUud3JpdGVfc2hpZnQoMyxILmlTdHlsZVJlZnx8''@;'; put 'put ''SC5zKSxpZS53cml0ZV9zaGlmdCgxLDApLGllfWZ1bmN0aW9uIE00KEgpe3ZhciBpZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIGllKz1ILnJlYWRfc2hpZnQoMSk8PDE2LEgubCsrLHtjOi0xLGlTdHlsZVJlZjppZX19ZnVuY3Rpb24gQWgoSCxpZSl7cmV0dXJuIG51bGw9PWllJiYoaWU9Umko''@;'; put 'put ''NCkpLGllLndyaXRlX3NoaWZ0KDMsSC5pU3R5bGVSZWZ8fEgucyksaWUud3JpdGVfc2hpZnQoMSwwKSxpZX12YXIgZWI9eHUsVE09bHU7ZnVuY3Rpb24geWgoSCl7dmFyIGllPUgucmVhZF9zaGlmdCg0KTtyZXR1cm4gMD09PWllfHw0Mjk0OTY3Mjk1PT09aWU/IiI6SC5yZWFkX3NoaWZ0KGll''@;'; put 'put ''LCJkYmNzIil9ZnVuY3Rpb24gWnAoSCxpZSl7dmFyIFg9ITE7cmV0dXJuIG51bGw9PWllJiYoWD0hMCxpZT1SaSgxMjcpKSxpZS53cml0ZV9zaGlmdCg0LEgubGVuZ3RoPjA/SC5sZW5ndGg6NDI5NDk2NzI5NSksSC5sZW5ndGg+MCYmaWUud3JpdGVfc2hpZnQoMCxILCJkYmNzIiksWD9pZS5z''@;'; put 'put ''bGljZSgwLGllLmwpOmllfXZhciBsOT14dSxHZz15aCx6cD1acDtmdW5jdGlvbiBXZyhIKXt2YXIgaWU9SC5zbGljZShILmwsSC5sKzQpLFg9MSZpZVswXSx3ZT0yJmllWzBdO0gubCs9NCxpZVswXSY9MjUyO3ZhciB4ZT0wPT09d2U/ZHMoWzAsMCwwLDAsaWVbMF0saWVbMV0saWVbMl0saWVb''@;'; put 'put ''M11dLDApOk5jKGllLDApPj4yO3JldHVybiBYP3hlLzEwMDp4ZX1mdW5jdGlvbiBJTShILGllKXtudWxsPT1pZSYmKGllPVJpKDQpKTt2YXIgWD0wLHdlPTAseGU9MTAwKkg7aWYoSD09KDB8SCkmJkg+PS0oMTw8MjkpJiZIPDE8PDI5P3dlPTE6eGU9PSgwfHhlKSYmeGU+PS0oMTw8MjkpJiZ4''@;'; put 'put ''ZTwxPDwyOSYmKHdlPTEsWD0xKSwhd2UpdGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBSa051bWJlciAiK0gpO2llLndyaXRlX3NoaWZ0KC00LCgoWD94ZTpIKTw8MikrKFgrMikpfWZ1bmN0aW9uIHM5KEgpe3ZhciBpZT17czp7fSxlOnt9fTtyZXR1cm4gaWUucy5yPUgucmVhZF9zaGlm''@;'; put 'put ''dCg0KSxpZS5lLnI9SC5yZWFkX3NoaWZ0KDQpLGllLnMuYz1ILnJlYWRfc2hpZnQoNCksaWUuZS5jPUgucmVhZF9zaGlmdCg0KSxpZX12YXIgd2g9czksR3A9ZnVuY3Rpb24gWWcoSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoMTYpKSxpZS53cml0ZV9zaGlmdCg0LEgucy5yKSxpZS53cml0ZV9z''@;'; put 'put ''aGlmdCg0LEguZS5yKSxpZS53cml0ZV9zaGlmdCg0LEgucy5jKSxpZS53cml0ZV9zaGlmdCg0LEguZS5jKSxpZX07ZnVuY3Rpb24gdTkoSCl7Zm9yKHZhciBpZT1ILnJlYWRfc2hpZnQoNCksWD1bXSx3ZT0wO3dlPGllOysrd2Upe3ZhciB4ZT13aChIKTtYLnB1c2goZmEoeGUpKX1yZXR1cm4g''@;'; put 'put ''WC5qb2luKCIsIil9ZnVuY3Rpb24gSTIoSCl7aWYoSC5sZW5ndGgtSC5sPDgpdGhyb3ciWExTIFhudW0gQnVmZmVyIHVuZGVyZmxvdyI7cmV0dXJuIEgucmVhZF9zaGlmdCg4LCJmIil9ZnVuY3Rpb24gdWYoSCxpZSl7cmV0dXJuKGllfHxSaSg4KSkud3JpdGVfc2hpZnQoOCxILCJmIil9ZnVu''@;'; put 'put ''Y3Rpb24gVWcoSCl7dmFyIGllPXt9LHdlPUgucmVhZF9zaGlmdCgxKT4+PjEseGU9SC5yZWFkX3NoaWZ0KDEpLEZlPUgucmVhZF9zaGlmdCgyLCJpIiksWmU9SC5yZWFkX3NoaWZ0KDEpLGplPUgucmVhZF9zaGlmdCgxKSxZZT1ILnJlYWRfc2hpZnQoMSk7c3dpdGNoKEgubCsrLHdlKXtjYXNl''@;'; put 'put ''IDA6aWUuYXV0bz0xO2JyZWFrO2Nhc2UgMTppZS5pbmRleD14ZTt2YXIgTXQ9dXVbeGVdO010JiYoaWUucmdiPWIzKE10KSk7YnJlYWs7Y2FzZSAyOmllLnJnYj1iMyhbWmUsamUsWWVdKTticmVhaztjYXNlIDM6aWUudGhlbWU9eGV9cmV0dXJuIDAhPUZlJiYoaWUudGludD1GZT4wP0ZlLzMy''@;'; put 'put ''NzY3OkZlLzMyNzY4KSxpZX1mdW5jdGlvbiBqZihILGllKXtpZihpZXx8KGllPVJpKDgpKSwhSHx8SC5hdXRvKXJldHVybiBpZS53cml0ZV9zaGlmdCg0LDApLGllLndyaXRlX3NoaWZ0KDQsMCksaWU7bnVsbCE9SC5pbmRleD8oaWUud3JpdGVfc2hpZnQoMSwyKSxpZS53cml0ZV9zaGlmdCgx''@;'; put 'put ''LEguaW5kZXgpKTpudWxsIT1ILnRoZW1lPyhpZS53cml0ZV9zaGlmdCgxLDYpLGllLndyaXRlX3NoaWZ0KDEsSC50aGVtZSkpOihpZS53cml0ZV9zaGlmdCgxLDUpLGllLndyaXRlX3NoaWZ0KDEsMCkpO3ZhciBYPUgudGludHx8MDtpZihYPjA/WCo9MzI3Njc6WDwwJiYoWCo9MzI3NjgpLGll''@;'; put 'put ''LndyaXRlX3NoaWZ0KDIsWCksSC5yZ2ImJm51bGw9PUgudGhlbWUpe3ZhciB3ZT1ILnJnYnx8IkZGRkZGRiI7Im51bWJlciI9PXR5cGVvZiB3ZSYmKHdlPSgiMDAwMDAwIit3ZS50b1N0cmluZygxNikpLnNsaWNlKC02KSksaWUud3JpdGVfc2hpZnQoMSxwYXJzZUludCh3ZS5zbGljZSgwLDIp''@;'; put 'put ''LDE2KSksaWUud3JpdGVfc2hpZnQoMSxwYXJzZUludCh3ZS5zbGljZSgyLDQpLDE2KSksaWUud3JpdGVfc2hpZnQoMSxwYXJzZUludCh3ZS5zbGljZSg0LDYpLDE2KSksaWUud3JpdGVfc2hpZnQoMSwyNTUpfWVsc2UgaWUud3JpdGVfc2hpZnQoMiwwKSxpZS53cml0ZV9zaGlmdCgxLDApLGll''@;'; put 'put ''LndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIGllfWZ1bmN0aW9uIHRiKEgpe3ZhciBpZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuIEgubCsrLHtmQm9sZDoxJmllLGZJdGFsaWM6MiZpZSxmVW5kZXJsaW5lOjQmaWUsZlN0cmlrZW91dDo4JmllLGZPdXRsaW5lOjE2JmllLGZTaGFkb3c6MzImaWUs''@;'; put 'put ''ZkNvbmRlbnNlOjY0JmllLGZFeHRlbmQ6MTI4JmllfX1mdW5jdGlvbiBmOShILGllKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDQpO3N3aXRjaCh3ZSl7Y2FzZSAwOnJldHVybiIiO2Nhc2UgNDI5NDk2NzI5NTpjYXNlIDQyOTQ5NjcyOTQ6cmV0dXJuezI6IkJJVE1BUCIsMzoiTUVUQUZJTEVQSUNU''@;'; put 'put ''Iiw4OiJESUIiLDE0OiJFTkhNRVRBRklMRSJ9W0gucmVhZF9zaGlmdCg0KV18fCIifWlmKHdlPjQwMCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENsaXBib2FyZDogIit3ZS50b1N0cmluZygxNikpO3JldHVybiBILmwtPTQsSC5yZWFkX3NoaWZ0KDAsMT09aWU/Imxwc3RyIjoibHB3''@;'; put 'put ''c3RyIil9dmFyIExNPVs4MCw4MV0scmI9ezE6e246IkNvZGVQYWdlIix0OjJ9LDI6e246IkNhdGVnb3J5Iix0OjgwfSwzOntuOiJQcmVzZW50YXRpb25Gb3JtYXQiLHQ6ODB9LDQ6e246IkJ5dGVDb3VudCIsdDozfSw1OntuOiJMaW5lQ291bnQiLHQ6M30sNjp7bjoiUGFyYWdyYXBoQ291bnQi''@;'; put 'put ''LHQ6M30sNzp7bjoiU2xpZGVDb3VudCIsdDozfSw4OntuOiJOb3RlQ291bnQiLHQ6M30sOTp7bjoiSGlkZGVuQ291bnQiLHQ6M30sMTA6e246Ik11bHRpbWVkaWFDbGlwQ291bnQiLHQ6M30sMTE6e246IlNjYWxlQ3JvcCIsdDoxMX0sMTI6e246IkhlYWRpbmdQYWlycyIsdDo0MTA4fSwxMzp7''@;'; put 'put ''bjoiVGl0bGVzT2ZQYXJ0cyIsdDo0MTI2fSwxNDp7bjoiTWFuYWdlciIsdDo4MH0sMTU6e246IkNvbXBhbnkiLHQ6ODB9LDE2OntuOiJMaW5rc1VwVG9EYXRlIix0OjExfSwxNzp7bjoiQ2hhcmFjdGVyQ291bnQiLHQ6M30sMTk6e246IlNoYXJlZERvYyIsdDoxMX0sMjI6e246Ikh5cGVybGlu''@;'; put 'put ''a3NDaGFuZ2VkIix0OjExfSwyMzp7bjoiQXBwVmVyc2lvbiIsdDozLHA6InZlcnNpb24ifSwyNDp7bjoiRGlnU2lnIix0OjY1fSwyNjp7bjoiQ29udGVudFR5cGUiLHQ6ODB9LDI3OntuOiJDb250ZW50U3RhdHVzIix0OjgwfSwyODp7bjoiTGFuZ3VhZ2UiLHQ6ODB9LDI5OntuOiJWZXJzaW9u''@;'; put 'put ''Iix0OjgwfSwyNTU6e30sMjE0NzQ4MzY0ODp7bjoiTG9jYWxlIix0OjE5fSwyMTQ3NDgzNjUxOntuOiJCZWhhdmlvciIsdDoxOX0sMTkxOTA1NDQzNDp7fX0sVXA9ezE6e246IkNvZGVQYWdlIix0OjJ9LDI6e246IlRpdGxlIix0OjgwfSwzOntuOiJTdWJqZWN0Iix0OjgwfSw0OntuOiJBdXRo''@;'; put 'put ''b3IiLHQ6ODB9LDU6e246IktleXdvcmRzIix0OjgwfSw2OntuOiJDb21tZW50cyIsdDo4MH0sNzp7bjoiVGVtcGxhdGUiLHQ6ODB9LDg6e246Ikxhc3RBdXRob3IiLHQ6ODB9LDk6e246IlJldk51bWJlciIsdDo4MH0sMTA6e246IkVkaXRUaW1lIix0OjY0fSwxMTp7bjoiTGFzdFByaW50ZWQi''@;'; put 'put ''LHQ6NjR9LDEyOntuOiJDcmVhdGVkRGF0ZSIsdDo2NH0sMTM6e246Ik1vZGlmaWVkRGF0ZSIsdDo2NH0sMTQ6e246IlBhZ2VDb3VudCIsdDozfSwxNTp7bjoiV29yZENvdW50Iix0OjN9LDE2OntuOiJDaGFyQ291bnQiLHQ6M30sMTc6e246IlRodW1ibmFpbCIsdDo3MX0sMTg6e246IkFwcGxp''@;'; put 'put ''Y2F0aW9uIix0OjgwfSwxOTp7bjoiRG9jU2VjdXJpdHkiLHQ6M30sMjU1Ont9LDIxNDc0ODM2NDg6e246IkxvY2FsZSIsdDoxOX0sMjE0NzQ4MzY1MTp7bjoiQmVoYXZpb3IiLHQ6MTl9LDE5MTkwNTQ0MzQ6e319LHZjPV90KHJiLCJuIikscDk9X3QoVXAsIm4iKSxYZz17MToiVVMiLDI6IkNB''@;'; put 'put ''IiwzOiIiLDc6IlJVIiwyMDoiRUciLDMwOiJHUiIsMzE6Ik5MIiwzMjoiQkUiLDMzOiJGUiIsMzQ6IkVTIiwzNjoiSFUiLDM5OiJJVCIsNDE6IkNIIiw0MzoiQVQiLDQ0OiJHQiIsNDU6IkRLIiw0NjoiU0UiLDQ3OiJOTyIsNDg6IlBMIiw0OToiREUiLDUyOiJNWCIsNTU6IkJSIiw2MToiQVUi''@;'; put 'put ''LDY0OiJOWiIsNjY6IlRIIiw4MToiSlAiLDgyOiJLUiIsODQ6IlZOIiw4NjoiQ04iLDkwOiJUUiIsMTA1OiJKUyIsMjEzOiJEWiIsMjE2OiJNQSIsMjE4OiJMWSIsMzUxOiJQVCIsMzU0OiJJUyIsMzU4OiJGSSIsNDIwOiJDWiIsODg2OiJUVyIsOTYxOiJMQiIsOTYyOiJKTyIsOTYzOiJTWSIs''@;'; put 'put ''OTY0OiJJUSIsOTY1OiJLVyIsOTY2OiJTQSIsOTcxOiJBRSIsOTcyOiJJTCIsOTc0OiJRQSIsOTgxOiJJUiIsNjU1MzU6IlVTIn0sUXA9W251bGwsInNvbGlkIiwibWVkaXVtR3JheSIsImRhcmtHcmF5IiwibGlnaHRHcmF5IiwiZGFya0hvcml6b250YWwiLCJkYXJrVmVydGljYWwiLCJkYXJr''@;'; put 'put ''RG93biIsImRhcmtVcCIsImRhcmtHcmlkIiwiZGFya1RyZWxsaXMiLCJsaWdodEhvcml6b250YWwiLCJsaWdodFZlcnRpY2FsIiwibGlnaHREb3duIiwibGlnaHRVcCIsImxpZ2h0R3JpZCIsImxpZ2h0VHJlbGxpcyIsImdyYXkxMjUiLCJncmF5MDYyNSJdO2Z1bmN0aW9uIFF1KEgpe3JldHVy''@;'; put 'put ''biBILm1hcChmdW5jdGlvbihpZSl7cmV0dXJuW2llPj4xNiYyNTUsaWU+PjgmMjU1LDI1NSZpZV19KX12YXIgS2c9UXUoWzAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2NzExOTM1LDY1NTM1LDAsMTY3NzcyMTUsMTY3MTE2ODAsNjUyODAsMjU1LDE2Nzc2OTYwLDE2''@;'; put 'put ''NzExOTM1LDY1NTM1LDgzODg2MDgsMzI3NjgsMTI4LDg0MjEzNzYsODM4ODczNiwzMjg5NiwxMjYzMjI1Niw4NDIxNTA0LDEwMDY2NDMxLDEwMDQwMTY2LDE2Nzc3MTY0LDEzNDM0ODc5LDY2ODQ3NzQsMTY3NDQ1NzYsMjYzMTYsMTM0MjE4MjMsMTI4LDE2NzExOTM1LDE2Nzc2OTYwLDY1NTM1''@;'; put 'put ''LDgzODg3MzYsODM4ODYwOCwzMjg5NiwyNTUsNTI0NzksMTM0MzQ4NzksMTM0MzQ4MjgsMTY3NzcxMTMsMTAwNzk0ODcsMTY3NTEwNTIsMTM0MDg3NjcsMTY3NjQwNTcsMzM2ODcwMywzMzk0NzY0LDEwMDc5MjMyLDE2NzYzOTA0LDE2NzUwODQ4LDE2NzM3NzkyLDY3MTA5MzcsOTg2ODk1MCwx''@;'; put 'put ''MzE1OCwzMzgxNjA2LDEzMDU2LDMzNTUzOTIsMTAwNDAwNjQsMTAwNDAxNjYsMzM1NTU0NSwzMzU1NDQzLDAsMTY3NzcyMTUsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0pLHV1PWxuKEtnKSxPTT1RdShbMTI2MzIyNTYsOTg2ODk1MCw4NDIxNTA0LDY3MTA4ODYsMzM1NTQ0Mywx''@;'; put 'put ''NjcxMTY4MCwzMjc2OCwxMzM2OTQ5NywxMjgsMzM5NDU2MCwyNjM2NywxMDAyNzIxMiwxMDA1MzE3MSwxMjgsMzI3NjgsODM4ODYwOCwzMjg5Niw4Mzg4NzM2LDg0MjEzNzYsMTM2MzE0ODgsMTQ1Mzk5OTQsMTMwNjg4NTAsMTM5MjQzNTIsOTk2NzQ5Niw5MTc1MjY3LDkxOTUwMDgsMzY4MzUz''@;'; put 'put ''NywxMDY5MjU4LDg4ODA4OTksNzQ5NDY0LDI4OTM0NzYsMTE3NDU3MzAsMzc1MDIwMSwxNTU1OTUwMywxODM3OTQxLDEyMDg0MzU5LDc2MzIyNTAsNzM2MzMyOCw5NTE0NTg4LDgyODg2MTcsMzAzNjgxNCwxMTE4NDgxMF0pLE4xPXswOiIjTlVMTCEiLDc6IiNESVYvMCEiLDE1OiIjVkFMVUUh''@;'; put 'put ''IiwyMzoiI1JFRiEiLDI5OiIjTkFNRT8iLDM2OiIjTlVNISIsNDI6IiNOL0EiLDQzOiIjR0VUVElOR19EQVRBIiwyNTU6IiNXVEY/In0sX2g9ZXQoTjEpLHZkPXsiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQubWFpbit4''@;'; put 'put ''bWwiOiJ3b3JrYm9va3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuYmluSW5kZXhXcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuaW50bG1hY3Jvc2hlZXQiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmJpbkluZGV4TXMiOiJUT0RPIiwiYXBwbGljYXRp''@;'; put 'put ''b24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UuY29yZS1wcm9wZXJ0aWVzK3htbCI6ImNvcmVwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b20tcHJvcGVydGllcyt4bWwiOiJjdXN0cHJvcHMiLCJhcHBsaWNhdGlvbi92bmQub3Bl''@;'; put 'put ''bnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZXh0ZW5kZWQtcHJvcGVydGllcyt4bWwiOiJleHRwcm9wcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5jdXN0b21YbWxQcm9wZXJ0aWVzK3htbCI6ImN1c3RvbXhtbHByb3BzIiwiYXBwbGljYXRpb24v''@;'; put 'put ''dm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY3VzdG9tUHJvcGVydHkiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90VGFibGUiOiJwaXZvdHMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQu''@;'; put 'put ''c3ByZWFkc2hlZXRtbC5waXZvdFRhYmxlK3htbCI6InBpdm90cyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuY2hhcnQreG1sIjoiY2hhcnRvYmpzIiwiYXBwbGljYXRpb24vdm5kLm1zLW9mZmljZS5jaGFydGNvbG9yc3R5bGUreG1s''@;'; put 'put ''IjoiY2hhcnRjb2xvcnMiLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0c3R5bGUreG1sIjoiY2hhcnRzdHlsZXMiLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmNoYXJ0ZXgreG1sIjoiY2hhcnRleHMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2FsY0NoYWluIjoiY2Fs''@;'; put 'put ''Y2NoYWlucyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmNhbGNDaGFpbit4bWwiOiJjYWxjY2hhaW5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwucHJpbnRl''@;'; put 'put ''clNldHRpbmdzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UuYWN0aXZlWCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLmFjdGl2ZVgreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5hdHRhY2hlZFRvb2xiYXJzIjoiVE9ETyIsImFwcGxp''@;'; put 'put ''Y2F0aW9uL3ZuZC5tcy1leGNlbC5jb25uZWN0aW9ucyI6ImNvbm5zIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29ubmVjdGlvbnMreG1sIjoiY29ubnMiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5r''@;'; put 'put ''IjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIjoibGlua3MiLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc2hlZXRNZXRhZGF0YSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3Bl''@;'; put 'put ''bnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldE1ldGFkYXRhK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucGl2b3RDYWNoZURlZmluaXRpb24iOiJwaXZvdGNhY2hlcyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdENhY2hl''@;'; put 'put ''UmVjb3JkcyI6InBpdm90cmVjb3JkcyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0aW9uK3htbCI6InBpdm90Y2FjaGVzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRv''@;'; put 'put ''Y3VtZW50LnNwcmVhZHNoZWV0bWwucGl2b3RDYWNoZVJlY29yZHMreG1sIjoicGl2b3RyZWNvcmRzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnF1ZXJ5VGFibGUiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwu''@;'; put 'put ''cXVlcnlUYWJsZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnVzZXJOYW1lcyI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwucmV2aXNpb25IZWFkZXJzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5yZXZpc2lvbkxvZyI6IlRPRE8iLCJh''@;'; put 'put ''cHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5yZXZpc2lvbkhlYWRlcnMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnJldmlzaW9uTG9nK3htbCI6''@;'; put 'put ''IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC51c2VyTmFtZXMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZVNpbmdsZUNlbGxzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1s''@;'; put 'put ''Zm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRhYmxlU2luZ2xlQ2VsbHMreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXIiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNsaWNlckNhY2hlIjoiVE9ETyIsImFwcGxpY2F0aW9u''@;'; put 'put ''L3ZuZC5tcy1leGNlbC5zbGljZXIreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zbGljZXJDYWNoZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLndzU29ydE1hcCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwudGFibGUiOiJ0YWJs''@;'; put 'put ''ZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiOiJ0YWJsZXMiLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sIjoidGhlbWVzIiwiYXBwbGljYXRpb24v''@;'; put 'put ''dm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnRoZW1lT3ZlcnJpZGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5UaW1lbGluZSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlRpbWVsaW5lQ2FjaGUreG1sIjoiVE9ETyIsImFwcGxp''@;'; put 'put ''Y2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdCI6InZiYSIsImFwcGxpY2F0aW9uL3ZuZC5tcy1vZmZpY2UudmJhUHJvamVjdFNpZ25hdHVyZSI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNlLnZvbGF0aWxlRGVwZW5kZW5jaWVzIjoiVE9ETyIsImFwcGxpY2F0aW9uL3Zu''@;'; put 'put ''ZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnZvbGF0aWxlRGVwZW5kZW5jaWVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29udHJvbHByb3BlcnRpZXMreG1sIjoiY3RybHByb3BzIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxm''@;'; put 'put ''b3JtYXRzLW9mZmljZWRvY3VtZW50Lm1vZGVsK2RhdGEiOiJkYXRhbW9kZWxzIiwiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLlN1cnZleSt4bWwiOiJUT0RPIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmcreG1sIjoiZHJhd2luZ3MiLCJh''@;'; put 'put ''cHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmNoYXJ0c2hhcGVzK3htbCI6IlRPRE8iLCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuZHJhd2luZ21sLmRpYWdyYW1Db2xvcnMreG1sIjoiVE9ETyIsImFw''@;'; put 'put ''cGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbURhdGEreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5kcmF3aW5nbWwuZGlhZ3JhbUxheW91dCt4bWwiOiJUT0RPIiwiYXBw''@;'; put 'put ''bGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmRyYXdpbmdtbC5kaWFncmFtU3R5bGUreG1sIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIjoiVE9ETyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVu''@;'; put 'put ''eG1sZm9ybWF0cy1wYWNrYWdlLnJlbGF0aW9uc2hpcHMreG1sIjoicmVscyIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5vbGVPYmplY3QiOiJUT0RPIiwiaW1hZ2UvcG5nIjoiVE9ETyIsc2hlZXQ6ImpzIn0sQ2E9ZnVuY3Rpb24oKXt2YXIgSD17d29y''@;'; put 'put ''a2Jvb2tzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldC5tYWluK3htbCIseGxzbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoZWV0Lm1hY3JvRW5hYmxlZC5tYWluK3htbCIseGxzYjoiYXBwbGljYXRp''@;'; put 'put ''b24vdm5kLm1zLWV4Y2VsLnNoZWV0LmJpbmFyeS5tYWNyb0VuYWJsZWQubWFpbiIseGxhbToiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC5tYWluK3htbCIseGx0eDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVh''@;'; put 'put ''ZHNoZWV0bWwudGVtcGxhdGUubWFpbit4bWwifSxzdHJzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGFyZWRTdHJpbmdzK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnNoYXJlZFN0cmluZ3Mi''@;'; put 'put ''fSxjb21tZW50czp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuY29tbWVudHMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY29tbWVudHMifSxzaGVldHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5v''@;'; put 'put ''cGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLndvcmtzaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC53b3Jrc2hlZXQifSxjaGFydHM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJl''@;'; put 'put ''YWRzaGVldG1sLmNoYXJ0c2hlZXQreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuY2hhcnRzaGVldCJ9LGRpYWxvZ3M6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLmRpYWxvZ3NoZWV0K3htbCIseGxz''@;'; put 'put ''YjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmRpYWxvZ3NoZWV0In0sbWFjcm9zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwubWFjcm9zaGVldCt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5tYWNyb3NoZWV0In0sdGFibGVzOnt4bHN4OiJhcHBsaWNhdGlv''@;'; put 'put ''bi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC50YWJsZSt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC50YWJsZSJ9LHBpdm90czp7eGxzeDoiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVh''@;'; put 'put ''ZHNoZWV0bWwucGl2b3RUYWJsZSt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdFRhYmxlIn0scGl2b3RjYWNoZXM6e3hsc3g6ImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnBpdm90Q2FjaGVEZWZpbml0''@;'; put 'put ''aW9uK3htbCIseGxzYjoiYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLnBpdm90Q2FjaGVEZWZpbml0aW9uIn0scGl2b3RyZWNvcmRzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5waXZvdENhY2hlUmVjb3Jkcyt4bWwi''@;'; put 'put ''LHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5waXZvdENhY2hlUmVjb3JkcyJ9LGNvbm5zOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5jb25uZWN0aW9ucyt4bWwiLHhsc2I6ImFwcGxpY2F0aW9uL3ZuZC5t''@;'; put 'put ''cy1leGNlbC5jb25uZWN0aW9ucyJ9LGxpbmtzOnt4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5leHRlcm5hbExpbmsreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuZXh0ZXJuYWxMaW5rIn0sc3R5bGVz''@;'; put 'put ''Ont4bHN4OiJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zdHlsZXMreG1sIix4bHNiOiJhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwuc3R5bGVzIn19O3JldHVybiBvbihIKS5mb3JFYWNoKGZ1bmN0aW9uKGllKXtbInhsc20iLCJ4''@;'; put 'put ''bGFtIl0uZm9yRWFjaChmdW5jdGlvbihYKXtIW2llXVtYXXx8KEhbaWVdW1hdPUhbaWVdLnhsc3gpfSl9KSxvbihIKS5mb3JFYWNoKGZ1bmN0aW9uKGllKXtvbihIW2llXSkuZm9yRWFjaChmdW5jdGlvbihYKXt2ZFtIW2llXVtYXV09aWV9KX0pLEh9KCksJGc9ZnVuY3Rpb24gbHQoSCl7Zm9y''@;'; put 'put ''KHZhciBpZT1bXSxYPW9uKEgpLHdlPTA7d2UhPT1YLmxlbmd0aDsrK3dlKW51bGw9PWllW0hbWFt3ZV1dXSYmKGllW0hbWFt3ZV1dXT1bXSksaWVbSFtYW3dlXV1dLnB1c2goWFt3ZV0pO3JldHVybiBpZX0odmQpO1gwLkNUPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFj''@;'; put 'put ''a2FnZS8yMDA2L2NvbnRlbnQtdHlwZXMiO3ZhciBmMj1faSgiVHlwZXMiLG51bGwse3htbG5zOlgwLkNULCJ4bWxuczp4c2QiOlgwLnhzZCwieG1sbnM6eHNpIjpYMC54c2l9KSxwUj1bWyJ4bWwiLCJhcHBsaWNhdGlvbi94bWwiXSxbImJpbiIsImFwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5z''@;'; put 'put ''aGVldC5iaW5hcnkubWFjcm9FbmFibGVkLm1haW4iXSxbInZtbCIsImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC52bWxEcmF3aW5nIl0sWyJkYXRhIiwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50Lm1vZGVsK2RhdGEi''@;'; put 'put ''XSxbImJtcCIsImltYWdlL2JtcCJdLFsicG5nIiwiaW1hZ2UvcG5nIl0sWyJnaWYiLCJpbWFnZS9naWYiXSxbImVtZiIsImltYWdlL3gtZW1mIl0sWyJ3bWYiLCJpbWFnZS94LXdtZiJdLFsianBnIiwiaW1hZ2UvanBlZyJdLFsianBlZyIsImltYWdlL2pwZWciXSxbInRpZiIsImltYWdlL3Rp''@;'; put 'put ''ZmYiXSxbInRpZmYiLCJpbWFnZS90aWZmIl0sWyJwZGYiLCJhcHBsaWNhdGlvbi9wZGYiXSxbInJlbHMiLCRnLnJlbHNbMF1dXS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIF9pKCJEZWZhdWx0IixudWxsLHtFeHRlbnNpb246SFswXSxDb250ZW50VHlwZTpIWzFdfSl9KSxkdD17V0I6Imh0dHA6''@;'; put 'put ''Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvb2ZmaWNlRG9jdW1lbnQiLFNIRUVUOiJodHRwOi8vc2hlZXRqcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3Vt''@;'; put 'put ''ZW50IixITElOSzoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9oeXBlcmxpbmsiLFZNTDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy92''@;'; put 'put ''bWxEcmF3aW5nIixYUEFUSDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlcm5hbExpbmtQYXRoIixYTUlTUzoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9yZWxhdGlvbnNoaXBz''@;'; put 'put ''L3hsRXh0ZXJuYWxMaW5rUGF0aC94bFBhdGhNaXNzaW5nIixYTElOSzoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9leHRlcm5hbExpbmsiLENYTUw6Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9v''@;'; put 'put ''ZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tWG1sIixDWE1MUDoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jdXN0b21YbWxQcm9wcyIsVkJBOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQu''@;'; put 'put ''Y29tL29mZmljZS8yMDA2L3JlbGF0aW9uc2hpcHMvdmJhUHJvamVjdCJ9O2Z1bmN0aW9uIEl0KEgpe3ZhciBpZT1ILmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIEguc2xpY2UoMCxpZSsxKSsiX3JlbHMvIitILnNsaWNlKGllKzEpKyIucmVscyJ9ZnVuY3Rpb24gUHQoSCxpZSl7dmFyIFg9eyIh''@;'; put 'put ''aWQiOnt9fTtpZighSClyZXR1cm4gWDsiLyIhPT1pZS5jaGFyQXQoMCkmJihpZT0iLyIraWUpO3ZhciB3ZT17fTtyZXR1cm4oSC5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt2YXIgRmU9ZW4oeGUpO2lmKCI8UmVsYXRpb25zaGlwIj09PUZlWzBdKXt2YXIgWmU9e307WmUu''@;'; put 'put ''VHlwZT1GZS5UeXBlLFplLlRhcmdldD1GZS5UYXJnZXQsWmUuSWQ9RmUuSWQsWmUuVGFyZ2V0TW9kZT1GZS5UYXJnZXRNb2RlO3ZhciBqZT0iRXh0ZXJuYWwiPT09RmUuVGFyZ2V0TW9kZT9GZS5UYXJnZXQ6dW4oRmUuVGFyZ2V0LGllKTtYW2plXT1aZSx3ZVtGZS5JZF09WmV9fSksWFsiIWlk''@;'; put 'put ''Il09d2UsWH1YMC5SRUxTPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHMiO3ZhciBmZT1faSgiUmVsYXRpb25zaGlwcyIsbnVsbCx7eG1sbnM6WDAuUkVMU30pO2Z1bmN0aW9uIGl0KEgpe3ZhciBpZT1bY24sZmVdO3JldHVybiBv''@;'; put 'put ''bihIWyIhaWQiXSkuZm9yRWFjaChmdW5jdGlvbihYKXtpZVtpZS5sZW5ndGhdPV9pKCJSZWxhdGlvbnNoaXAiLG51bGwsSFsiIWlkIl1bWF0pfSksaWUubGVuZ3RoPjImJihpZVtpZS5sZW5ndGhdPSI8L1JlbGF0aW9uc2hpcHM+IixpZVsxXT1pZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksaWUu''@;'; put 'put ''am9pbigiIil9dmFyIGE9W2R0LkhMSU5LLGR0LlhQQVRILGR0LlhNSVNTXTtmdW5jdGlvbiBYdChILGllLFgsd2UseGUsRmUpe2lmKHhlfHwoeGU9e30pLEhbIiFpZCJdfHwoSFsiIWlkIl09e30pLGllPDApZm9yKGllPTE7SFsiIWlkIl1bInJJZCIraWVdOysraWUpO2lmKHhlLklkPSJySWQi''@;'; put 'put ''K2llLHhlLlR5cGU9d2UseGUuVGFyZ2V0PVgsRmU/eGUuVGFyZ2V0TW9kZT1GZTphLmluZGV4T2YoeGUuVHlwZSk+LTEmJih4ZS5UYXJnZXRNb2RlPSJFeHRlcm5hbCIpLEhbIiFpZCJdW3hlLklkXSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCByZXdyaXRlIHJJZCAiK2llKTtyZXR1cm4gSFsi''@;'; put 'put ''IWlkIl1beGUuSWRdPXhlLEhbKCIvIit4ZS5UYXJnZXQpLnJlcGxhY2UoIi8vIiwiLyIpXT14ZSxpZX1mdW5jdGlvbiBfKEgsaWUsWCl7cmV0dXJuWycgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSInK0grJyI+XG4nLCcgICAgPHJkZjp0eXBlIHJkZjpyZXNvdXJjZT0iaHR0cDovL2Rv''@;'; put 'put ''Y3Mub2FzaXMtb3Blbi5vcmcvbnMvb2ZmaWNlLzEuMi9tZXRhLycrKFh8fCJvZGYiKSsiIyIraWUrJyIvPlxuJywiICA8L3JkZjpEZXNjcmlwdGlvbj5cbiJdLmpvaW4oIiIpfWZ1bmN0aW9uIEFvKEgsaWUpe3JldHVyblsnICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iJytIKyciPlxu''@;'; put 'put ''JywnICAgIDxuczA6aGFzUGFydCB4bWxuczpuczA9Imh0dHA6Ly9kb2NzLm9hc2lzLW9wZW4ub3JnL25zL29mZmljZS8xLjIvbWV0YS9wa2cjIiByZGY6cmVzb3VyY2U9IicraWUrJyIvPlxuJywiICA8L3JkZjpEZXNjcmlwdGlvbj5cbiJdLmpvaW4oIiIpfXZhciAkbz1mdW5jdGlvbigpe3Zh''@;'; put 'put ''ciBIPSc8b2ZmaWNlOmRvY3VtZW50LW1ldGEgeG1sbnM6b2ZmaWNlPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOm9mZmljZToxLjAiIHhtbG5zOm1ldGE9InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6bWV0YToxLjAiIHhtbG5zOmRjPSJodHRw''@;'; put 'put ''Oi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG9mZmljZTp2ZXJzaW9uPSIxLjIiPjxvZmZpY2U6bWV0YT48bWV0YTpnZW5lcmF0b3I+U2hlZXRKUyAnK1UudmVyc2lvbisiPC9tZXRhOmdlbmVyYXRvcj48L29m''@;'; put 'put ''ZmljZTptZXRhPjwvb2ZmaWNlOmRvY3VtZW50LW1ldGE+IjtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gSH19KCksbGU9W1siY3A6Y2F0ZWdvcnkiLCJDYXRlZ29yeSJdLFsiY3A6Y29udGVudFN0YXR1cyIsIkNvbnRlbnRTdGF0dXMiXSxbImNwOmtleXdvcmRzIiwiS2V5d29yZHMiXSxbImNw''@;'; put 'put ''Omxhc3RNb2RpZmllZEJ5IiwiTGFzdEF1dGhvciJdLFsiY3A6bGFzdFByaW50ZWQiLCJMYXN0UHJpbnRlZCJdLFsiY3A6cmV2aXNpb24iLCJSZXZOdW1iZXIiXSxbImNwOnZlcnNpb24iLCJWZXJzaW9uIl0sWyJkYzpjcmVhdG9yIiwiQXV0aG9yIl0sWyJkYzpkZXNjcmlwdGlvbiIsIkNvbW1l''@;'; put 'put ''bnRzIl0sWyJkYzppZGVudGlmaWVyIiwiSWRlbnRpZmllciJdLFsiZGM6bGFuZ3VhZ2UiLCJMYW5ndWFnZSJdLFsiZGM6c3ViamVjdCIsIlN1YmplY3QiXSxbImRjOnRpdGxlIiwiVGl0bGUiXSxbImRjdGVybXM6Y3JlYXRlZCIsIkNyZWF0ZWREYXRlIiwiZGF0ZSJdLFsiZGN0ZXJtczptb2Rp''@;'; put 'put ''ZmllZCIsIk1vZGlmaWVkRGF0ZSIsImRhdGUiXV07WDAuQ09SRV9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMiLGR0LkNPUkVfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9y''@;'; put 'put ''Zy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcy9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXMiO3ZhciBWMT1mdW5jdGlvbigpe2Zvcih2YXIgSD1uZXcgQXJyYXkobGUubGVuZ3RoKSxpZT0wO2llPGxlLmxlbmd0aDsrK2llKXt2YXIgWD1sZVtpZV0sd2U9Iig/OiIrWFswXS5zbGljZSgwLFhb''@;'; put 'put ''MF0uaW5kZXhPZigiOiIpKSsiOikiK1hbMF0uc2xpY2UoWFswXS5pbmRleE9mKCI6IikrMSk7SFtpZV09bmV3IFJlZ0V4cCgiPCIrd2UrIltePl0qPihbXFxzXFxTXSo/KTwvIit3ZSsiPiIpfXJldHVybiBIfSgpO2Z1bmN0aW9uIGxzKEgpe3ZhciBpZT17fTtIPVcwKEgpO2Zvcih2YXIgWD0w''@;'; put 'put ''O1g8bGUubGVuZ3RoOysrWCl7dmFyIHdlPWxlW1hdLHhlPUgubWF0Y2goVjFbWF0pO251bGwhPXhlJiZ4ZS5sZW5ndGg+MCYmKGllW3dlWzFdXT1ncih4ZVsxXSkpLCJkYXRlIj09PXdlWzJdJiZpZVt3ZVsxXV0mJihpZVt3ZVsxXV09ZG4oaWVbd2VbMV1dKSl9cmV0dXJuIGllfXZhciBNbj1f''@;'; put 'put ''aSgiY3A6Y29yZVByb3BlcnRpZXMiLG51bGwseyJ4bWxuczpjcCI6WDAuQ09SRV9QUk9QUywieG1sbnM6ZGMiOlgwLmRjLCJ4bWxuczpkY3Rlcm1zIjpYMC5kY3Rlcm1zLCJ4bWxuczpkY21pdHlwZSI6WDAuZGNtaXR5cGUsInhtbG5zOnhzaSI6WDAueHNpfSk7ZnVuY3Rpb24geG4oSCxpZSxY''@;'; put 'put ''LHdlLHhlKXtudWxsIT14ZVtIXXx8bnVsbD09aWV8fCIiPT09aWV8fCh4ZVtIXT1pZSxpZT1ScihpZSksd2Vbd2UubGVuZ3RoXT1YP19pKEgsaWUsWCk6c2EoSCxpZSkpfXZhciBvMj1bWyJBcHBsaWNhdGlvbiIsIkFwcGxpY2F0aW9uIiwic3RyaW5nIl0sWyJBcHBWZXJzaW9uIiwiQXBwVmVy''@;'; put 'put ''c2lvbiIsInN0cmluZyJdLFsiQ29tcGFueSIsIkNvbXBhbnkiLCJzdHJpbmciXSxbIkRvY1NlY3VyaXR5IiwiRG9jU2VjdXJpdHkiLCJzdHJpbmciXSxbIk1hbmFnZXIiLCJNYW5hZ2VyIiwic3RyaW5nIl0sWyJIeXBlcmxpbmtzQ2hhbmdlZCIsIkh5cGVybGlua3NDaGFuZ2VkIiwiYm9vbCJd''@;'; put 'put ''LFsiU2hhcmVkRG9jIiwiU2hhcmVkRG9jIiwiYm9vbCJdLFsiTGlua3NVcFRvRGF0ZSIsIkxpbmtzVXBUb0RhdGUiLCJib29sIl0sWyJTY2FsZUNyb3AiLCJTY2FsZUNyb3AiLCJib29sIl0sWyJIZWFkaW5nUGFpcnMiLCJIZWFkaW5nUGFpcnMiLCJyYXciXSxbIlRpdGxlc09mUGFydHMiLCJU''@;'; put 'put ''aXRsZXNPZlBhcnRzIiwicmF3Il1dO2Z1bmN0aW9uIHlzKEgsaWUsWCx3ZSl7dmFyIHhlPVtdO2lmKCJzdHJpbmciPT10eXBlb2YgSCl4ZT12aShILHdlKTtlbHNlIGZvcih2YXIgRmU9MDtGZTxILmxlbmd0aDsrK0ZlKXhlPXhlLmNvbmNhdChIW0ZlXS5tYXAoZnVuY3Rpb24oeHQpe3JldHVy''@;'; put 'put ''bnt2Onh0fX0pKTt2YXIgWmU9InN0cmluZyI9PXR5cGVvZiBpZT92aShpZSx3ZSkubWFwKGZ1bmN0aW9uKHh0KXtyZXR1cm4geHQudn0pOmllLGplPTAsWWU9MDtpZihaZS5sZW5ndGg+MClmb3IodmFyIE10PTA7TXQhPT14ZS5sZW5ndGg7TXQrPTIpe3N3aXRjaChZZT0reGVbTXQrMV0udix4''@;'; put 'put ''ZVtNdF0udil7Y2FzZSJXb3Jrc2hlZXRzIjpjYXNlIlx1NWRlNVx1NGY1Y1x1ODg2OCI6Y2FzZSJcdTA0MWJcdTA0MzhcdTA0NDFcdTA0NDJcdTA0NGIiOmNhc2UiXHUwNjIzXHUwNjQ4XHUwNjMxXHUwNjI3XHUwNjQyIFx1MDYyN1x1MDY0NFx1MDYzOVx1MDY0NVx1MDY0NCI6Y2FzZSJcdTMw''@;'; put 'put ''ZWZcdTMwZmNcdTMwYWZcdTMwYjdcdTMwZmNcdTMwYzgiOmNhc2UiXHUwNWQyXHUwNWRjXHUwNWQ5XHUwNWQ1XHUwNWUwXHUwNWQ1XHUwNWVhIFx1MDVlMlx1MDVkMVx1MDVkNVx1MDVkM1x1MDVkNCI6Y2FzZSJBcmJlaXRzYmxceGU0dHRlciI6Y2FzZSJceGM3YWxcdTAxMzFcdTAxNWZtYSBT''@;'; put 'put ''YXlmYWxhclx1MDEzMSI6Y2FzZSJGZXVpbGxlcyBkZSBjYWxjdWwiOmNhc2UiRm9nbGkgZGkgbGF2b3JvIjpjYXNlIkZvbGhhcyBkZSBjXHhlMWxjdWxvIjpjYXNlIlBsYW5pbGhhcyI6Y2FzZSJSZWduZWFyayI6Y2FzZSJIb2phcyBkZSBjXHhlMWxjdWxvIjpjYXNlIldlcmtibGFkZW4iOlgu''@;'; put 'put ''V29ya3NoZWV0cz1ZZSxYLlNoZWV0TmFtZXM9WmUuc2xpY2UoamUsamUrWWUpO2JyZWFrO2Nhc2UiTmFtZWQgUmFuZ2VzIjpjYXNlIlJhbmdvcyBjb24gbm9tYnJlIjpjYXNlIlx1NTQwZFx1NTI0ZFx1NGVkOFx1MzA0ZFx1NGUwMFx1ODlhNyI6Y2FzZSJCZW5hbm50ZSBCZXJlaWNoZSI6Y2Fz''@;'; put 'put ''ZSJOYXZuZ2l2bmUgb21yXHhlNWRlciI6WC5OYW1lZFJhbmdlcz1ZZSxYLkRlZmluZWROYW1lcz1aZS5zbGljZShqZSxqZStZZSk7YnJlYWs7Y2FzZSJDaGFydHMiOmNhc2UiRGlhZ3JhbW1lIjpYLkNoYXJ0c2hlZXRzPVllLFguQ2hhcnROYW1lcz1aZS5zbGljZShqZSxqZStZZSl9amUrPVll''@;'; put 'put ''fX1YMC5FWFRfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXMiLGR0LkVYVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRp''@;'; put 'put ''b25zaGlwcy9leHRlbmRlZC1wcm9wZXJ0aWVzIjt2YXIgUE09X2koIlByb3BlcnRpZXMiLG51bGwse3htbG5zOlgwLkVYVF9QUk9QUywieG1sbnM6dnQiOlgwLnZ0fSk7WDAuQ1VTVF9QUk9QUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYv''@;'; put 'put ''Y3VzdG9tLXByb3BlcnRpZXMiLGR0LkNVU1RfUFJPUFM9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY3VzdG9tLXByb3BlcnRpZXMiO3ZhciBtOT0vPFtePl0rPltePF0qL2csRG49X2koIlByb3BlcnRpZXMiLG51''@;'; put 'put ''bGwse3htbG5zOlgwLkNVU1RfUFJPUFMsInhtbG5zOnZ0IjpYMC52dH0pO3ZhciBlbz17VGl0bGU6IlRpdGxlIixTdWJqZWN0OiJTdWJqZWN0IixBdXRob3I6IkF1dGhvciIsS2V5d29yZHM6IktleXdvcmRzIixDb21tZW50czoiRGVzY3JpcHRpb24iLExhc3RBdXRob3I6Ikxhc3RBdXRob3Ii''@;'; put 'put ''LFJldk51bWJlcjoiUmV2aXNpb24iLEFwcGxpY2F0aW9uOiJBcHBOYW1lIixMYXN0UHJpbnRlZDoiTGFzdFByaW50ZWQiLENyZWF0ZWREYXRlOiJDcmVhdGVkIixNb2RpZmllZERhdGU6Ikxhc3RTYXZlZCIsQ2F0ZWdvcnk6IkNhdGVnb3J5IixNYW5hZ2VyOiJNYW5hZ2VyIixDb21wYW55OiJD''@;'; put 'put ''b21wYW55IixBcHBWZXJzaW9uOiJWZXJzaW9uIixDb250ZW50U3RhdHVzOiJDb250ZW50U3RhdHVzIixJZGVudGlmaWVyOiJJZGVudGlmaWVyIixMYW5ndWFnZToiTGFuZ3VhZ2UifSxEMD10dChlbyk7ZnVuY3Rpb24gcWwoSCxpZSxYKXtIW2llPUQwW2llXXx8aWVdPVh9ZnVuY3Rpb24gVDgo''@;'; put 'put ''SCl7dmFyIGllPUgucmVhZF9zaGlmdCg0KSxYPUgucmVhZF9zaGlmdCg0KTtyZXR1cm4gbmV3IERhdGUoMWUzKihYLzFlNypNYXRoLnBvdygyLDMyKStpZS8xZTctMTE2NDQ0NzM2MDApKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuMDAwLywiIil9ZnVuY3Rpb24gWHAoSCxpZSxYKXt2YXIg''@;'; put 'put ''d2U9SC5sLHhlPUgucmVhZF9zaGlmdCgwLCJscHN0ci1jcCIpO2lmKFgpZm9yKDtILmwtd2UmMzspKytILmw7cmV0dXJuIHhlfWZ1bmN0aW9uIFpmKEgsaWUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCgwLCJscHdzdHIiKTtyZXR1cm4gWCYmKEgubCs9NC0od2UubGVuZ3RoKzEmMykmMyksd2V9''@;'; put 'put ''ZnVuY3Rpb24gVWwoSCxpZSxYKXtyZXR1cm4gMzE9PT1pZT9aZihIKTpYcChILDAsWCl9ZnVuY3Rpb24gemYoSCxpZSxYKXtyZXR1cm4gVWwoSCxpZSwhMT09PVg/MDo0KX1mdW5jdGlvbiBhYihIKXt2YXIgaWU9SC5sLFg9eWQoSCw4MSk7cmV0dXJuIDA9PUhbSC5sXSYmMD09SFtILmwrMV0m''@;'; put 'put ''JkgubC1pZSYyJiYoSC5sKz0yKSxbWCx5ZChILDMpXX1mdW5jdGlvbiBBZChILGllKXtmb3IodmFyIFg9SC5yZWFkX3NoaWZ0KDQpLHdlPXt9LHhlPTA7eGUhPVg7Kyt4ZSl7dmFyIEZlPUgucmVhZF9zaGlmdCg0KSxaZT1ILnJlYWRfc2hpZnQoNCk7d2VbRmVdPUgucmVhZF9zaGlmdChaZSwx''@;'; put 'put ''MjAwPT09aWU/InV0ZjE2bGUiOiJ1dGY4IikucmVwbGFjZShULCIiKS5yZXBsYWNlKFMsIiEiKSwxMjAwPT09aWUmJlplJTImJihILmwrPTIpfXJldHVybiAzJkgubCYmKEgubD1ILmw+PjM8PDIpLHdlfWZ1bmN0aW9uIHcyKEgpe3ZhciBpZT1ILnJlYWRfc2hpZnQoNCksWD1ILnNsaWNlKEgu''@;'; put 'put ''bCxILmwraWUpO3JldHVybiBILmwrPWllLCgzJmllKT4wJiYoSC5sKz00LSgzJmllKSYzKSxYfWZ1bmN0aW9uIHlkKEgsaWUsWCl7dmFyIHhlLHdlPUgucmVhZF9zaGlmdCgyKSxGZT1YfHx7fTtpZihILmwrPTIsMTIhPT1pZSYmd2UhPT1pZSYmLTE9PT1MTS5pbmRleE9mKGllKSYmKDQxMjYh''@;'; put 'put ''PSg2NTUzNCZpZSl8fDQxMjYhPSg2NTUzNCZ3ZSkpKXRocm93IG5ldyBFcnJvcigiRXhwZWN0ZWQgdHlwZSAiK2llKyIgc2F3ICIrd2UpO3N3aXRjaCgxMj09PWllP3dlOmllKXtjYXNlIDI6cmV0dXJuIHhlPUgucmVhZF9zaGlmdCgyLCJpIiksRmUucmF3fHwoSC5sKz0yKSx4ZTtjYXNlIDM6''@;'; put 'put ''cmV0dXJuIEgucmVhZF9zaGlmdCg0LCJpIik7Y2FzZSAxMTpyZXR1cm4gMCE9PUgucmVhZF9zaGlmdCg0KTtjYXNlIDE5OnJldHVybiBILnJlYWRfc2hpZnQoNCk7Y2FzZSAzMDpyZXR1cm4gWHAoSCwwLDQpLnJlcGxhY2UoVCwiIik7Y2FzZSAzMTpyZXR1cm4gWmYoSCk7Y2FzZSA2NDpyZXR1''@;'; put 'put ''cm4gVDgoSCk7Y2FzZSA2NTpyZXR1cm4gdzIoSCk7Y2FzZSA3MTpyZXR1cm4gZnVuY3Rpb24gZW0oSCl7dmFyIGllPXt9O3JldHVybiBpZS5TaXplPUgucmVhZF9zaGlmdCg0KSxILmwrPWllLlNpemUrMy0oaWUuU2l6ZS0xKSU0LGllfShIKTtjYXNlIDgwOnJldHVybiB6ZihILHdlLCFGZS5y''@;'; put 'put ''YXcpLnJlcGxhY2UoVCwiIik7Y2FzZSA4MTpyZXR1cm4gZnVuY3Rpb24gRjIoSCxpZSl7aWYoIWllKXRocm93IG5ldyBFcnJvcigiVnRVbmFsaWduZWRTdHJpbmcgbXVzdCBoYXZlIHBvc2l0aXZlIGxlbmd0aCIpO3JldHVybiBVbChILGllLDApfShILHdlKS5yZXBsYWNlKFQsIiIpO2Nhc2Ug''@;'; put 'put ''NDEwODpyZXR1cm4gZnVuY3Rpb24gRk0oSCl7Zm9yKHZhciBpZT1ILnJlYWRfc2hpZnQoNCksWD1bXSx3ZT0wO3dlPGllLzI7Kyt3ZSlYLnB1c2goYWIoSCkpO3JldHVybiBYfShIKTtjYXNlIDQxMjY6Y2FzZSA0MTI3OnJldHVybiA0MTI3PT13ZT9mdW5jdGlvbiBJdShIKXtmb3IodmFyIGll''@;'; put 'put ''PUgucmVhZF9zaGlmdCg0KSxYPVtdLHdlPTA7d2UhPWllOysrd2Upe3ZhciB4ZT1ILmw7WFt3ZV09SC5yZWFkX3NoaWZ0KDAsImxwd3N0ciIpLnJlcGxhY2UoVCwiIiksSC5sLXhlJjImJihILmwrPTIpfXJldHVybiBYfShIKTpmdW5jdGlvbiBBcihIKXtmb3IodmFyIGllPUgucmVhZF9zaGlm''@;'; put 'put ''dCg0KSxYPVtdLHdlPTA7d2UhPWllOysrd2UpWFt3ZV09SC5yZWFkX3NoaWZ0KDAsImxwc3RyLWNwIikucmVwbGFjZShULCIiKTtyZXR1cm4gWH0oSCk7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGVkUHJvcGVydHlWYWx1ZSB1bnJlY29nbml6ZWQgdHlwZSAiK2llKyIgIit3ZSl9fWZ1''@;'; put 'put ''bmN0aW9uIEtwKEgsaWUpe3ZhciBYPVJpKDQpLHdlPVJpKDQpO3N3aXRjaChYLndyaXRlX3NoaWZ0KDQsODA9PUg/MzE6SCksSCl7Y2FzZSAzOndlLndyaXRlX3NoaWZ0KC00LGllKTticmVhaztjYXNlIDU6KHdlPVJpKDgpKS53cml0ZV9zaGlmdCg4LGllLCJmIik7YnJlYWs7Y2FzZSAxMTp3''@;'; put 'put ''ZS53cml0ZV9zaGlmdCg0LGllPzE6MCk7YnJlYWs7Y2FzZSA2NDp3ZT1mdW5jdGlvbiBKcChIKXt2YXIgWD0oInN0cmluZyI9PXR5cGVvZiBIP25ldyBEYXRlKERhdGUucGFyc2UoSCkpOkgpLmdldFRpbWUoKS8xZTMrMTE2NDQ0NzM2MDAsd2U9WCVNYXRoLnBvdygyLDMyKSx4ZT0oWC13ZSkv''@;'; put 'put ''TWF0aC5wb3coMiwzMik7eGUqPTFlNzt2YXIgRmU9KHdlKj0xZTcpL01hdGgucG93KDIsMzIpfDA7RmU+MCYmKHdlJT1NYXRoLnBvdygyLDMyKSx4ZSs9RmUpO3ZhciBaZT1SaSg4KTtyZXR1cm4gWmUud3JpdGVfc2hpZnQoNCx3ZSksWmUud3JpdGVfc2hpZnQoNCx4ZSksWmV9KGllKTticmVh''@;'; put 'put ''aztjYXNlIDMxOmNhc2UgODA6Zm9yKCh3ZT1SaSg0KzIqKGllLmxlbmd0aCsxKSsoaWUubGVuZ3RoJTI/MDoyKSkpLndyaXRlX3NoaWZ0KDQsaWUubGVuZ3RoKzEpLHdlLndyaXRlX3NoaWZ0KDAsaWUsImRiY3MiKTt3ZS5sIT13ZS5sZW5ndGg7KXdlLndyaXRlX3NoaWZ0KDEsMCk7YnJlYWs7''@;'; put 'put ''ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlR5cGVkUHJvcGVydHlWYWx1ZSB1bnJlY29nbml6ZWQgdHlwZSAiK0grIiAiK2llKX1yZXR1cm4gVihbWCx3ZV0pfWZ1bmN0aW9uIGZmKEgsaWUpe3ZhciBYPUgubCx3ZT1ILnJlYWRfc2hpZnQoNCkseGU9SC5yZWFkX3NoaWZ0KDQpLEZlPVtdLFpl''@;'; put 'put ''PTAsamU9MCxZZT0tMSxNdD17fTtmb3IoWmU9MDtaZSE9eGU7KytaZSl7dmFyIHh0PUgucmVhZF9zaGlmdCg0KSxSdD1ILnJlYWRfc2hpZnQoNCk7RmVbWmVdPVt4dCxSdCtYXX1GZS5zb3J0KGZ1bmN0aW9uKFRuLE9uKXtyZXR1cm4gVG5bMV0tT25bMV19KTt2YXIgVXQ9e307Zm9yKFplPTA7''@;'; put 'put ''WmUhPXhlOysrWmUpe2lmKEgubCE9PUZlW1plXVsxXSl7dmFyIG5uPSEwO2lmKFplPjAmJmllKXN3aXRjaChpZVtGZVtaZS0xXVswXV0udCl7Y2FzZSAyOkgubCsyPT09RmVbWmVdWzFdJiYoSC5sKz0yLG5uPSExKTticmVhaztjYXNlIDgwOmNhc2UgNDEwODpILmw8PUZlW1plXVsxXSYmKEgu''@;'; put 'put ''bD1GZVtaZV1bMV0sbm49ITEpfWlmKCghaWV8fDA9PVplKSYmSC5sPD1GZVtaZV1bMV0mJihubj0hMSxILmw9RmVbWmVdWzFdKSxubil0aHJvdyBuZXcgRXJyb3IoIlJlYWQgRXJyb3I6IEV4cGVjdGVkIGFkZHJlc3MgIitGZVtaZV1bMV0rIiBhdCAiK0gubCsiIDoiK1plKX1pZihpZSl7dmFy''@;'; put 'put ''IENuPWllW0ZlW1plXVswXV07aWYoVXRbQ24ubl09eWQoSCxDbi50LHtyYXc6ITB9KSwidmVyc2lvbiI9PT1Dbi5wJiYoVXRbQ24ubl09U3RyaW5nKFV0W0NuLm5dPj4xNikrIi4iKygiMDAwMCIrU3RyaW5nKDY1NTM1JlV0W0NuLm5dKSkuc2xpY2UoLTQpKSwiQ29kZVBhZ2UiPT1Dbi5uKXN3''@;'; put 'put ''aXRjaChVdFtDbi5uXSl7Y2FzZSAwOlV0W0NuLm5dPTEyNTI7Y2FzZSA4NzQ6Y2FzZSA5MzI6Y2FzZSA5MzY6Y2FzZSA5NDk6Y2FzZSA5NTA6Y2FzZSAxMjUwOmNhc2UgMTI1MTpjYXNlIDEyNTM6Y2FzZSAxMjU0OmNhc2UgMTI1NTpjYXNlIDEyNTY6Y2FzZSAxMjU3OmNhc2UgMTI1ODpjYXNl''@;'; put 'put ''IDFlNDpjYXNlIDEyMDA6Y2FzZSAxMjAxOmNhc2UgMTI1MjpjYXNlIDY1ZTM6Y2FzZS01MzY6Y2FzZSA2NTAwMTpjYXNlLTUzNTp0ZShqZT1VdFtDbi5uXT4+PjAmNjU1MzUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBDb2RlUGFnZTogIitVdFtDbi5uXSl9''@;'; put 'put ''fWVsc2UgaWYoMT09PUZlW1plXVswXSl7aWYoamU9VXQuQ29kZVBhZ2U9eWQoSCwyKSx0ZShqZSksLTEhPT1ZZSl7dmFyIER0PUgubDtILmw9RmVbWWVdWzFdLE10PUFkKEgsamUpLEgubD1EdH19ZWxzZSBpZigwPT09RmVbWmVdWzBdKXtpZigwPT09amUpe1llPVplLEgubD1GZVtaZSsxXVsx''@;'; put 'put ''XTtjb250aW51ZX1NdD1BZChILGplKX1lbHNle3ZhciBQbix6dD1NdFtGZVtaZV1bMF1dO3N3aXRjaChIW0gubF0pe2Nhc2UgNjU6SC5sKz00LFBuPXcyKEgpO2JyZWFrO2Nhc2UgMzA6Y2FzZSAzMTpILmwrPTQsUG49emYoSCxIW0gubC00XSkucmVwbGFjZSgvXHUwMDAwKyQvLCIiKTticmVh''@;'; put 'put ''aztjYXNlIDM6SC5sKz00LFBuPUgucmVhZF9zaGlmdCg0LCJpIik7YnJlYWs7Y2FzZSAxOTpILmwrPTQsUG49SC5yZWFkX3NoaWZ0KDQpO2JyZWFrO2Nhc2UgNTpILmwrPTQsUG49SC5yZWFkX3NoaWZ0KDgsImYiKTticmVhaztjYXNlIDExOkgubCs9NCxQbj10YShILDQpO2JyZWFrO2Nhc2Ug''@;'; put 'put ''NjQ6SC5sKz00LFBuPWRuKFQ4KEgpKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigidW5wYXJzZWQgdmFsdWU6ICIrSFtILmxdKX1VdFt6dF09UG59fXJldHVybiBILmw9WCt3ZSxVdH12YXIgSTg9WyJDb2RlUGFnZSIsIlRodW1ibmFpbCIsIl9QSURfTElOS0JBU0UiLCJfUElEX0hM''@;'; put 'put ''SU5LUyIsIlN5c3RlbUlkZW50aWZpZXIiLCJGTVRJRCJdLmNvbmNhdChbIldvcmtzaGVldHMiLCJTaGVldE5hbWVzIiwiTmFtZWRSYW5nZXMiLCJEZWZpbmVkTmFtZXMiLCJDaGFydHNoZWV0cyIsIkNoYXJ0TmFtZXMiXSk7ZnVuY3Rpb24gSE0oSCl7c3dpdGNoKHR5cGVvZiBIKXtjYXNlImJv''@;'; put 'put ''b2xlYW4iOnJldHVybiAxMTtjYXNlIm51bWJlciI6cmV0dXJuKDB8SCk9PUg/Mzo1O2Nhc2Uic3RyaW5nIjpyZXR1cm4gMzE7Y2FzZSJvYmplY3QiOmlmKEggaW5zdGFuY2VvZiBEYXRlKXJldHVybiA2NH1yZXR1cm4tMX1mdW5jdGlvbiBDaChILGllLFgpe3ZhciB3ZT1SaSg4KSx4ZT1bXSxG''@;'; put 'put ''ZT1bXSxaZT04LGplPTAsWWU9UmkoOCksTXQ9UmkoOCk7aWYoWWUud3JpdGVfc2hpZnQoNCwyKSxZZS53cml0ZV9zaGlmdCg0LDEyMDApLE10LndyaXRlX3NoaWZ0KDQsMSksRmUucHVzaChZZSkseGUucHVzaChNdCksWmUrPTgrWWUubGVuZ3RoLCFpZSl7KE10PVJpKDgpKS53cml0ZV9zaGlm''@;'; put 'put ''dCg0LDApLHhlLnVuc2hpZnQoTXQpO3ZhciB4dD1bUmkoNCldO2Zvcih4dFswXS53cml0ZV9zaGlmdCg0LEgubGVuZ3RoKSxqZT0wO2plPEgubGVuZ3RoOysramUpe3ZhciBSdD1IW2plXVswXTtmb3IoKFllPVJpKDgrMiooUnQubGVuZ3RoKzEpKyhSdC5sZW5ndGglMj8wOjIpKSkud3JpdGVf''@;'; put 'put ''c2hpZnQoNCxqZSsyKSxZZS53cml0ZV9zaGlmdCg0LFJ0Lmxlbmd0aCsxKSxZZS53cml0ZV9zaGlmdCgwLFJ0LCJkYmNzIik7WWUubCE9WWUubGVuZ3RoOylZZS53cml0ZV9zaGlmdCgxLDApO3h0LnB1c2goWWUpfVllPVYoeHQpLEZlLnVuc2hpZnQoWWUpLFplKz04K1llLmxlbmd0aH1mb3Io''@;'; put 'put ''amU9MDtqZTxILmxlbmd0aDsrK2plKWlmKCghaWV8fGllW0hbamVdWzBdXSkmJiEoSTguaW5kZXhPZihIW2plXVswXSk+LTEpJiZudWxsIT1IW2plXVsxXSl7dmFyIFV0PUhbamVdWzFdLG5uPTA7aWYoaWUpe3ZhciBDbj1YW25uPStpZVtIW2plXVswXV1dO2lmKCJ2ZXJzaW9uIj09Q24ucCYm''@;'; put 'put ''InN0cmluZyI9PXR5cGVvZiBVdCl7dmFyIER0PVV0LnNwbGl0KCIuIik7VXQ9KCtEdFswXTw8MTYpKygrRHRbMV18fDApfVllPUtwKENuLnQsVXQpfWVsc2V7dmFyIHp0PUhNKFV0KTstMT09enQmJih6dD0zMSxVdD1TdHJpbmcoVXQpKSxZZT1LcCh6dCxVdCl9RmUucHVzaChZZSksKE10PVJp''@;'; put 'put ''KDgpKS53cml0ZV9zaGlmdCg0LGllP25uOjIramUpLHhlLnB1c2goTXQpLFplKz04K1llLmxlbmd0aH12YXIgUG49OCooRmUubGVuZ3RoKzEpO2ZvcihqZT0wO2plPEZlLmxlbmd0aDsrK2plKXhlW2plXS53cml0ZV9zaGlmdCg0LFBuKSxQbis9RmVbamVdLmxlbmd0aDtyZXR1cm4gd2Uud3Jp''@;'; put 'put ''dGVfc2hpZnQoNCxaZSksd2Uud3JpdGVfc2hpZnQoNCxGZS5sZW5ndGgpLFYoW3dlXS5jb25jYXQoeGUpLmNvbmNhdChGZSkpfWZ1bmN0aW9uIHdkKEgsaWUsWCl7dmFyIHdlPUguY29udGVudDtpZighd2UpcmV0dXJue307S2wod2UsMCk7dmFyIHhlLEZlLFplLGplLFllPTA7d2UuY2hrKCJm''@;'; put 'put ''ZWZmIiwiQnl0ZSBPcmRlcjogIiksd2UucmVhZF9zaGlmdCgyKTt2YXIgTXQ9d2UucmVhZF9zaGlmdCg0KSx4dD13ZS5yZWFkX3NoaWZ0KDE2KTtpZih4dCE9PW10LnV0aWxzLmNvbnN0cy5IRUFERVJfQ0xTSUQmJnh0IT09WCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBQcm9wZXJ0eVNldCBDTFNJ''@;'; put 'put ''RCAiK3h0KTtpZigxIT09KHhlPXdlLnJlYWRfc2hpZnQoNCkpJiYyIT09eGUpdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgI1NldHM6ICIreGUpO2lmKEZlPXdlLnJlYWRfc2hpZnQoMTYpLGplPXdlLnJlYWRfc2hpZnQoNCksMT09PXhlJiZqZSE9PXdlLmwpdGhyb3cgbmV3IEVycm9y''@;'; put 'put ''KCJMZW5ndGggbWlzbWF0Y2g6ICIramUrIiAhPT0gIit3ZS5sKTsyPT09eGUmJihaZT13ZS5yZWFkX3NoaWZ0KDE2KSxZZT13ZS5yZWFkX3NoaWZ0KDQpKTt2YXIgQ24sUnQ9ZmYod2UsaWUpLFV0PXtTeXN0ZW1JZGVudGlmaWVyOk10fTtmb3IodmFyIG5uIGluIFJ0KVV0W25uXT1SdFtubl07''@;'; put 'put ''aWYoVXQuRk1USUQ9RmUsMT09PXhlKXJldHVybiBVdDtpZihZZS13ZS5sPT0yJiYod2UubCs9Miksd2UubCE9PVllKXRocm93IG5ldyBFcnJvcigiTGVuZ3RoIG1pc21hdGNoIDI6ICIrd2UubCsiICE9PSAiK1llKTt0cnl7Q249ZmYod2UsbnVsbCl9Y2F0Y2goRHQpe31mb3Iobm4gaW4gQ24p''@;'; put 'put ''VXRbbm5dPUNuW25uXTtyZXR1cm4gVXQuRk1USUQ9W0ZlLFplXSxVdH1mdW5jdGlvbiBhMChILGllLFgsd2UseGUsRmUpe3ZhciBaZT1SaSh4ZT82ODo0OCksamU9W1plXTtaZS53cml0ZV9zaGlmdCgyLDY1NTM0KSxaZS53cml0ZV9zaGlmdCgyLDApLFplLndyaXRlX3NoaWZ0KDQsODQyNDEy''@;'; put 'put ''NTk5KSxaZS53cml0ZV9zaGlmdCgxNixtdC51dGlscy5jb25zdHMuSEVBREVSX0NMU0lELCJoZXgiKSxaZS53cml0ZV9zaGlmdCg0LHhlPzI6MSksWmUud3JpdGVfc2hpZnQoMTYsaWUsImhleCIpLFplLndyaXRlX3NoaWZ0KDQseGU/Njg6NDgpO3ZhciBZZT1DaChILFgsd2UpO2lmKGplLnB1''@;'; put 'put ''c2goWWUpLHhlKXt2YXIgTXQ9Q2goeGUsbnVsbCxudWxsKTtaZS53cml0ZV9zaGlmdCgxNixGZSwiaGV4IiksWmUud3JpdGVfc2hpZnQoNCw2OCtZZS5sZW5ndGgpLGplLnB1c2goTXQpfXJldHVybiBWKGplKX1mdW5jdGlvbiBGbChILGllKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KGllKSxudWxs''@;'; put 'put ''fWZ1bmN0aW9uIHRhKEgsaWUpe3JldHVybiAxPT09SC5yZWFkX3NoaWZ0KGllKX1mdW5jdGlvbiBqMShILGllKXtyZXR1cm4gaWV8fChpZT1SaSgyKSksaWUud3JpdGVfc2hpZnQoMiwrISFIKSxpZX1mdW5jdGlvbiBjMShIKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDIsInUiKX1mdW5jdGlvbiBo''@;'; put 'put ''ZihILGllKXtyZXR1cm4gaWV8fChpZT1SaSgyKSksaWUud3JpdGVfc2hpZnQoMixIKSxpZX1mdW5jdGlvbiBaYyhILGllKXtyZXR1cm4gZnVuY3Rpb24gSnMoSCxpZSxYKXtmb3IodmFyIHdlPVtdLHhlPUgubCtpZTtILmw8eGU7KXdlLnB1c2goWChILHhlLUgubCkpO2lmKHhlIT09SC5sKXRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigiU2x1cnAgZXJyb3IiKTtyZXR1cm4gd2V9KEgsaWUsYzEpfWZ1bmN0aW9uIFoxKEgsaWUsWCl7cmV0dXJuIFh8fChYPVJpKDIpKSxYLndyaXRlX3NoaWZ0KDEsImUiPT1pZT8rSDorISFIKSxYLndyaXRlX3NoaWZ0KDEsImUiPT1pZT8xOjApLFh9ZnVuY3Rpb24gemMo''@;'; put 'put ''SCxpZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KFgmJlguYmlmZj49MTI/MjoxKSx4ZT0ic2Jjcy1jb250IixGZT1RO1gmJlguYmlmZj49OCYmKFE9MTIwMCksWCYmOCE9WC5iaWZmPzEyPT1YLmJpZmYmJih4ZT0id3N0ciIpOkgucmVhZF9zaGlmdCgxKSYmKHhlPSJkYmNzLWNvbnQiKSxYLmJp''@;'; put 'put ''ZmY+PTImJlguYmlmZjw9NSYmKHhlPSJjcHN0ciIpO3ZhciBqZT13ZT9ILnJlYWRfc2hpZnQod2UseGUpOiIiO3JldHVybiBRPUZlLGplfWZ1bmN0aW9uIGxiKEgpe3ZhciBpZT1RO1E9MTIwMDt2YXIgWWUsWD1ILnJlYWRfc2hpZnQoMiksd2U9SC5yZWFkX3NoaWZ0KDEpLHhlPTQmd2UsRmU9''@;'; put 'put ''OCZ3ZSxaZT0xKygxJndlKSxqZT0wLE10PXt9O0ZlJiYoamU9SC5yZWFkX3NoaWZ0KDIpKSx4ZSYmKFllPUgucmVhZF9zaGlmdCg0KSk7dmFyIFJ0PTA9PT1YPyIiOkgucmVhZF9zaGlmdChYLDI9PVplPyJkYmNzLWNvbnQiOiJzYmNzLWNvbnQiKTtpZihGZSlmb3IoTXQuX1I9W107amUtLSA+''@;'; put 'put ''MDspTXQuX1IucHVzaCh7aWR4OkgucmVhZF9zaGlmdCgyKSxpZm50OkgucmVhZF9zaGlmdCgyKX0pO3JldHVybiB4ZSYmKEgubCs9WWUpLE10LnQ9UnQsRmV8fChNdC5yPSI8dD4iK010LnQrIjwvdD4iKSxRPWllLE10fWZ1bmN0aW9uIEdjKEgsaWUpe3ZhciBYPUguUiYmSC5SLmxlbmd0aHx8''@;'; put 'put ''SC5yO0guciYmKEguUj1XOChILnIpKTt2YXIgd2U9IiIseGU9MDtYP0guUi5mb3JFYWNoKGZ1bmN0aW9uKENuKXt4ZSsrLHdlKz1Dbi52fHwiIn0pOih3ZT1ILnR8fCIiLHhlPTEpO3ZhciBGZT1SaSgzKyh4ZT4xPzI6MCkpO0ZlLndyaXRlX3NoaWZ0KDIsd2UubGVuZ3RoKSxGZS53cml0ZV9z''@;'; put 'put ''aGlmdCgxLDF8KHhlPjE/ODowKSkseGU+MSYmRmUud3JpdGVfc2hpZnQoMix4ZSk7dmFyIFplPVJpKDIqd2UubGVuZ3RoKTtaZS53cml0ZV9zaGlmdCgyKndlLmxlbmd0aCx3ZSwidXRmMTZsZSIpO3ZhciBqZT1bRmUsWmVdO2lmKFgpe3ZhciBZZT1SaSg0KkguUi5sZW5ndGgpLE10PTA7amUu''@;'; put 'put ''cHVzaChZZSk7Zm9yKHZhciB4dD0wO3h0PEguUi5sZW5ndGg7Kyt4dCl7dmFyIFJ0PUguUlt4dF07WWUud3JpdGVfc2hpZnQoMixNdCksTXQrPShSdC52fHwiIikubGVuZ3RoO3ZhciBVdD1SdC5zP1kxKGllLmNlbGxYZnMsaWUuY2VsbFN0eWxlWGZzLHt0OiJuIix2OjAsczpSdC5zfSxpZSk6''@;'; put 'put ''MCxubj1pZS5jZWxsWGZzW1V0XS5mb250SWQ7WWUud3JpdGVfc2hpZnQoMixubjw0P25uOm5uKzEpfX1yZXR1cm4gVihqZSl9ZnVuY3Rpb24gY3UoSCxpZSxYKXtpZihYKXtpZihYLmJpZmY+PTImJlguYmlmZjw9NSlyZXR1cm4gSC5yZWFkX3NoaWZ0KGllLCJjcHN0ciIpO2lmKFguYmlmZj49''@;'; put 'put ''MTIpcmV0dXJuIEgucmVhZF9zaGlmdChpZSwiZGJjcy1jb250Iil9dmFyIHhlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm4gSC5yZWFkX3NoaWZ0KGllLDA9PT14ZT8ic2Jjcy1jb250IjoiZGJjcy1jb250Iil9ZnVuY3Rpb24geDQoSCxpZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KFgmJjI9PVgu''@;'; put 'put ''YmlmZj8xOjIpO3JldHVybiAwPT09d2U/KEgubCsrLCIiKTpjdShILHdlLFgpfWZ1bmN0aW9uIGRmKEgsaWUsWCl7aWYoWC5iaWZmPjUpcmV0dXJuIHg0KEgsMCxYKTt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiAwPT09d2U/KEgubCsrLCIiKTpILnJlYWRfc2hpZnQod2UsWC5iaWZm''@;'; put 'put ''PD00fHwhSC5sZW5zPyJjcHN0ciI6InNiY3MtY29udCIpfWZ1bmN0aW9uIFByKEgsaWUsWCl7cmV0dXJuIFh8fChYPVJpKDMrMipILmxlbmd0aCkpLFgud3JpdGVfc2hpZnQoMixILmxlbmd0aCksWC53cml0ZV9zaGlmdCgxLDEpLFgud3JpdGVfc2hpZnQoMzEsSCwidXRmMTZsZSIpLFh9ZnVu''@;'; put 'put ''Y3Rpb24gcXAoSCl7dmFyIGllPUgucmVhZF9zaGlmdCg0KTtyZXR1cm4gaWU+MD9ILnJlYWRfc2hpZnQoaWUsInV0ZjE2bGUiKS5yZXBsYWNlKFQsIiIpOiIifWZ1bmN0aW9uIHBmKEgsaWUpe2llfHwoaWU9UmkoNisyKkgubGVuZ3RoKSksaWUud3JpdGVfc2hpZnQoNCwxK0gubGVuZ3RoKTtm''@;'; put 'put ''b3IodmFyIFg9MDtYPEgubGVuZ3RoOysrWClpZS53cml0ZV9zaGlmdCgyLEguY2hhckNvZGVBdChYKSk7cmV0dXJuIGllLndyaXRlX3NoaWZ0KDIsMCksaWV9ZnVuY3Rpb24gZTYoSCl7dmFyIGllPVJpKDUxMiksWD0wLHdlPUguVGFyZ2V0OyJmaWxlOi8vIj09d2Uuc2xpY2UoMCw3KSYmKHdl''@;'; put 'put ''PXdlLnNsaWNlKDcpKTt2YXIgeGU9d2UuaW5kZXhPZigiIyIpLEZlPXhlPi0xPzMxOjIzO3N3aXRjaCh3ZS5jaGFyQXQoMCkpe2Nhc2UiIyI6RmU9Mjg7YnJlYWs7Y2FzZSIuIjpGZSY9LTN9aWUud3JpdGVfc2hpZnQoNCwyKSxpZS53cml0ZV9zaGlmdCg0LEZlKTt2YXIgWmU9WzgsNjgxNTgy''@;'; put 'put ''Nyw2NjE5MjM3LDQ4NDk3ODAsODNdO2ZvcihYPTA7WDxaZS5sZW5ndGg7KytYKWllLndyaXRlX3NoaWZ0KDQsWmVbWF0pO2lmKDI4PT1GZSlwZih3ZT13ZS5zbGljZSgxKSxpZSk7ZWxzZSBpZigyJkZlKXtmb3IoWmU9ImUwIGM5IGVhIDc5IGY5IGJhIGNlIDExIDhjIDgyIDAwIGFhIDAwIDRi''@;'; put 'put ''IGE5IDBiIi5zcGxpdCgiICIpLFg9MDtYPFplLmxlbmd0aDsrK1gpaWUud3JpdGVfc2hpZnQoMSxwYXJzZUludChaZVtYXSwxNikpO3ZhciBqZT14ZT4tMT93ZS5zbGljZSgwLHhlKTp3ZTtmb3IoaWUud3JpdGVfc2hpZnQoNCwyKihqZS5sZW5ndGgrMSkpLFg9MDtYPGplLmxlbmd0aDsrK1gp''@;'; put 'put ''aWUud3JpdGVfc2hpZnQoMixqZS5jaGFyQ29kZUF0KFgpKTtpZS53cml0ZV9zaGlmdCgyLDApLDgmRmUmJnBmKHhlPi0xP3dlLnNsaWNlKHhlKzEpOiIiLGllKX1lbHNle2ZvcihaZT0iMDMgMDMgMDAgMDAgMDAgMDAgMDAgMDAgYzAgMDAgMDAgMDAgMDAgMDAgMDAgNDYiLnNwbGl0KCIgIiks''@;'; put 'put ''WD0wO1g8WmUubGVuZ3RoOysrWClpZS53cml0ZV9zaGlmdCgxLHBhcnNlSW50KFplW1hdLDE2KSk7Zm9yKHZhciBZZT0wOyIuLi8iPT13ZS5zbGljZSgzKlllLDMqWWUrMyl8fCIuLlxcIj09d2Uuc2xpY2UoMypZZSwzKlllKzMpOykrK1llO2ZvcihpZS53cml0ZV9zaGlmdCgyLFllKSxpZS53''@;'; put 'put ''cml0ZV9zaGlmdCg0LHdlLmxlbmd0aC0zKlllKzEpLFg9MDtYPHdlLmxlbmd0aC0zKlllOysrWClpZS53cml0ZV9zaGlmdCgxLDI1NSZ3ZS5jaGFyQ29kZUF0KFgrMypZZSkpO2ZvcihpZS53cml0ZV9zaGlmdCgxLDApLGllLndyaXRlX3NoaWZ0KDIsNjU1MzUpLGllLndyaXRlX3NoaWZ0KDIs''@;'; put 'put ''NTcwMDUpLFg9MDtYPDY7KytYKWllLndyaXRlX3NoaWZ0KDQsMCl9cmV0dXJuIGllLnNsaWNlKDAsaWUubCl9ZnVuY3Rpb24gdDYoSCl7cmV0dXJuW0gucmVhZF9zaGlmdCgxKSxILnJlYWRfc2hpZnQoMSksSC5yZWFkX3NoaWZ0KDEpLEgucmVhZF9zaGlmdCgxKV19ZnVuY3Rpb24gUjgoSCxp''@;'; put 'put ''ZSl7dmFyIFg9dDYoSCk7cmV0dXJuIFhbM109MCxYfWZ1bmN0aW9uIEFjKEgpe3JldHVybntyOkgucmVhZF9zaGlmdCgyKSxjOkgucmVhZF9zaGlmdCgyKSxpeGZlOkgucmVhZF9zaGlmdCgyKX19ZnVuY3Rpb24gR2YoSCxpZSxYLHdlKXtyZXR1cm4gd2V8fCh3ZT1SaSg2KSksd2Uud3JpdGVf''@;'; put 'put ''c2hpZnQoMixIKSx3ZS53cml0ZV9zaGlmdCgyLGllKSx3ZS53cml0ZV9zaGlmdCgyLFh8fDApLHdlfWZ1bmN0aW9uIHY5KEgsaWUsWCl7dmFyIHdlPVguYmlmZj44PzQ6MjtyZXR1cm5bSC5yZWFkX3NoaWZ0KHdlKSxILnJlYWRfc2hpZnQod2UsImkiKSxILnJlYWRfc2hpZnQod2UsImkiKV19''@;'; put 'put ''ZnVuY3Rpb24gdG0oSCl7cmV0dXJuW0gucmVhZF9zaGlmdCgyKSxXZyhIKV19ZnVuY3Rpb24gbjYoSCl7dmFyIGllPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm57czp7YzpILnJlYWRfc2hpZnQoMikscjppZX0sZTp7YzpILnJlYWRfc2hpZnQoMikscjpYfX19ZnVu''@;'; put 'put ''Y3Rpb24gSnUoSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoOCkpLGllLndyaXRlX3NoaWZ0KDIsSC5zLnIpLGllLndyaXRlX3NoaWZ0KDIsSC5lLnIpLGllLndyaXRlX3NoaWZ0KDIsSC5zLmMpLGllLndyaXRlX3NoaWZ0KDIsSC5lLmMpLGllfWZ1bmN0aW9uIFQ0KEgpe3ZhciBpZT1ILnJlYWRf''@;'; put 'put ''c2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMik7cmV0dXJue3M6e2M6SC5yZWFkX3NoaWZ0KDEpLHI6aWV9LGU6e2M6SC5yZWFkX3NoaWZ0KDEpLHI6WH19fXZhciB1Yj1UNDtmdW5jdGlvbiBBOShIKXtILmwrPTQ7dmFyIGllPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKSx3ZT1I''@;'; put 'put ''LnJlYWRfc2hpZnQoMik7cmV0dXJuIEgubCs9MTIsW1gsaWUsd2VdfWZ1bmN0aW9uIGZsKEgpe0gubCs9MixILmwrPUgucmVhZF9zaGlmdCgyKX12YXIgbm09ezA6ZmwsNDpmbCw1OmZsLDY6ZmwsNzpmdW5jdGlvbiBWTShIKXtyZXR1cm4gSC5sKz00LEguY2Y9SC5yZWFkX3NoaWZ0KDIpLHt9''@;'; put 'put ''fSw4OmZsLDk6ZmwsMTA6ZmwsMTE6ZmwsMTI6ZmwsMTM6ZnVuY3Rpb24gSTQoSCl7dmFyIGllPXt9O3JldHVybiBILmwrPTQsSC5sKz0xNixpZS5mU2hhcmVkTm90ZT1ILnJlYWRfc2hpZnQoMiksSC5sKz00LGllfSwxNDpmbCwxNTpmbCwxNjpmbCwxNzpmbCwxODpmbCwxOTpmbCwyMDpmbCwy''@;'; put 'put ''MTpBOX07ZnVuY3Rpb24gRHUoSCxpZSl7dmFyIFg9e0JJRkZWZXI6MCxkdDowfTtzd2l0Y2goWC5CSUZGVmVyPUgucmVhZF9zaGlmdCgyKSwoaWUtPTIpPj0yJiYoWC5kdD1ILnJlYWRfc2hpZnQoMiksSC5sLT0yKSxYLkJJRkZWZXIpe2Nhc2UgMTUzNjpjYXNlIDEyODA6Y2FzZSAxMDI0OmNh''@;'; put 'put ''c2UgNzY4OmNhc2UgNTEyOmNhc2UgMjpjYXNlIDc6YnJlYWs7ZGVmYXVsdDppZihpZT42KXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBCSUZGIFZlciAiK1guQklGRlZlcil9cmV0dXJuIEgucmVhZF9zaGlmdChpZSksWH1mdW5jdGlvbiBnMyhILGllLFgpe3ZhciB3ZT0xNTM2LHhlPTE2''@;'; put 'put ''O3N3aXRjaChYLmJvb2tUeXBlKXtjYXNlImJpZmY4IjpjYXNlInhsYSI6YnJlYWs7Y2FzZSJiaWZmNSI6d2U9MTI4MCx4ZT04O2JyZWFrO2Nhc2UiYmlmZjQiOndlPTQseGU9NjticmVhaztjYXNlImJpZmYzIjp3ZT0zLHhlPTY7YnJlYWs7Y2FzZSJiaWZmMiI6d2U9Mix4ZT00O2JyZWFrO2Rl''@;'; put 'put ''ZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bnN1cHBvcnRlZCBCSUZGIHZlcnNpb24iKX12YXIgRmU9UmkoeGUpO3JldHVybiBGZS53cml0ZV9zaGlmdCgyLHdlKSxGZS53cml0ZV9zaGlmdCgyLGllKSx4ZT40JiZGZS53cml0ZV9zaGlmdCgyLDI5MjgyKSx4ZT42JiZGZS53cml0ZV9zaGlmdCgy''@;'; put 'put ''LDE5OTcpLHhlPjgmJihGZS53cml0ZV9zaGlmdCgyLDQ5MTYxKSxGZS53cml0ZV9zaGlmdCgyLDEpLEZlLndyaXRlX3NoaWZ0KDIsMTc5OCksRmUud3JpdGVfc2hpZnQoMiwwKSksRmV9ZnVuY3Rpb24gV2YoSCxpZSl7dmFyIFg9IWllfHxpZS5iaWZmPj04PzI6MSx3ZT1SaSg4K1gqSC5uYW1l''@;'; put 'put ''Lmxlbmd0aCk7d2Uud3JpdGVfc2hpZnQoNCxILnBvcyksd2Uud3JpdGVfc2hpZnQoMSxILmhzfHwwKSx3ZS53cml0ZV9zaGlmdCgxLEguZHQpLHdlLndyaXRlX3NoaWZ0KDEsSC5uYW1lLmxlbmd0aCksaWUuYmlmZj49OCYmd2Uud3JpdGVfc2hpZnQoMSwxKSx3ZS53cml0ZV9zaGlmdChYKkgu''@;'; put 'put ''bmFtZS5sZW5ndGgsSC5uYW1lLGllLmJpZmY8OD8ic2JjcyI6InV0ZjE2bGUiKTt2YXIgeGU9d2Uuc2xpY2UoMCx3ZS5sKTtyZXR1cm4geGUubD13ZS5sLHhlfWZ1bmN0aW9uIFlpKEgpe3JldHVybiBILnJlYWRfc2hpZnQoNCksd2goSCl9ZnVuY3Rpb24gemEoSCl7cmV0dXJuIEgucmVhZF9z''@;'; put 'put ''aGlmdCg0KSx1OShIKX1mdW5jdGlvbiBLdShILGllLFgpe3JldHVybiBILnJlYWRfc2hpZnQoNCksekIoSCwwLFgpfWZ1bmN0aW9uIFdjKEgsaWUsWCl7dmFyIHdlPTA7WCYmMj09WC5iaWZmfHwod2U9SC5yZWFkX3NoaWZ0KDIpKTt2YXIgeGU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiBYJiYy''@;'; put 'put ''PT1YLmJpZmYmJih3ZT0xLSh4ZT4+MTUpLHhlJj0zMjc2NyksW3tVbnN5bmNlZDoxJndlLER5WmVybzooMiZ3ZSk+PjEsRXhBc2M6KDQmd2UpPj4yLEV4RHNjOig4JndlKT4+M30seGVdfWZ1bmN0aW9uIGhiKEgsaWUsWCx3ZSl7dmFyIHhlPVgmJjU9PVguYmlmZjt3ZXx8KHdlPVJpKHhlPzMr''@;'; put 'put ''aWUubGVuZ3RoOjUrMippZS5sZW5ndGgpKSx3ZS53cml0ZV9zaGlmdCgyLEgpLHdlLndyaXRlX3NoaWZ0KHhlPzE6MixpZS5sZW5ndGgpLHhlfHx3ZS53cml0ZV9zaGlmdCgxLDEpLHdlLndyaXRlX3NoaWZ0KCh4ZT8xOjIpKmllLmxlbmd0aCxpZSx4ZT8ic2JjcyI6InV0ZjE2bGUiKTt2YXIg''@;'; put 'put ''RmU9d2UubGVuZ3RoPndlLmw/d2Uuc2xpY2UoMCx3ZS5sKTp3ZTtyZXR1cm4gbnVsbD09RmUubCYmKEZlLmw9RmUubGVuZ3RoKSxGZX12YXIgWWM9ZGY7ZnVuY3Rpb24gaW0oSCxpZSxYKXt2YXIgd2U9SC5sK2llLHhlPTghPVguYmlmZiYmWC5iaWZmPzI6NCxGZT1ILnJlYWRfc2hpZnQoeGUp''@;'; put 'put ''LFplPUgucmVhZF9zaGlmdCh4ZSksamU9SC5yZWFkX3NoaWZ0KDIpLFllPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gSC5sPXdlLHtzOntyOkZlLGM6amV9LGU6e3I6WmUsYzpZZX19fWZ1bmN0aW9uIFNoKEgsaWUsWCx3ZSl7dmFyIEZlPSFYfHwhWC5iaWZmfHw4PT1YLmJpZmY7d2V8fCh3ZT1S''@;'; put 'put ''aShYJiY1PT1YLmJpZmY/MTY6MjApKSx3ZS53cml0ZV9zaGlmdCgyLEZlJiZYLmNlbGxTdHlsZXMmJkguZm9udElkJiYoSC5mb250SWQ8ND9ILmZvbnRJZDpILmZvbnRJZCsxKXx8MCk7dmFyIFplPTE7SC5wcm90ZWN0aW9uJiYoSC5wcm90ZWN0aW9uLmVkaXRhYmxlJiYoWmUmPS0yKSxILnBy''@;'; put 'put ''b3RlY3Rpb24uaGlkZGVuJiYoWmV8PTIpKSxILnN0eWxlPyh3ZS53cml0ZV9zaGlmdCgyLEgubnVtRm10SWR8fDApLHdlLndyaXRlX3NoaWZ0KDIsNjU1MjR8WmUpKTood2Uud3JpdGVfc2hpZnQoMixILm51bUZtdElkfHwwKSx3ZS53cml0ZV9zaGlmdCgyLGllPDw0fFplKSk7dmFyIGplPUgu''@;'; put 'put ''YWxpZ25tZW50fHx7fTtpZihGZSl7dmFyIFllPTAsTXQ9MDtQOS5pbmRleE9mKGplLmhvcml6b250YWwpPi0xJiYoWWV8PVA5LmluZGV4T2YoamUuaG9yaXpvbnRhbCkpLGplLndyYXBUZXh0JiYoWWV8PTgpLHltLmluZGV4T2YoamUudmVydGljYWwpPi0xP1llfD15bS5pbmRleE9mKGplLnZl''@;'; put 'put ''cnRpY2FsKTw8NDpudWxsPT1qZS52ZXJ0aWNhbCYmKFllfD0zMiksd2Uud3JpdGVfc2hpZnQoMSxZZSksd2Uud3JpdGVfc2hpZnQoMSwwKSxqZS5zaHJpbmtUb0ZpdCYmKE10fD0xNiksd2Uud3JpdGVfc2hpZnQoMixNdCk7dmFyIHh0PW51bGw7bnVsbCE9SC5ib3JkZXJJZCYmKHh0PVguQm9y''@;'; put 'put ''ZGVycyYmWC5Cb3JkZXJzW0guYm9yZGVySWR8fDBdfHx7fSk7dmFyIFJ0PTAsVXQ9MCxubj0wO3h0JiYobnVsbCE9eHQubGVmdCYmeHQubGVmdC5zdHlsZSYmKFJ0fD0obm49VDMuaW5kZXhPZih4dC5sZWZ0LnN0eWxlKSk+LTE/bm46MCksbnVsbCE9eHQucmlnaHQmJnh0LnJpZ2h0LnN0eWxl''@;'; put 'put ''JiYoUnR8PSgobm49VDMuaW5kZXhPZih4dC5yaWdodC5zdHlsZSkpPi0xP25uOjApPDw0KSxudWxsIT14dC50b3AmJnh0LnRvcC5zdHlsZSYmKFV0fD0obm49VDMuaW5kZXhPZih4dC50b3Auc3R5bGUpKT4tMT9ubjowKSxudWxsIT14dC5ib3R0b20mJnh0LmJvdHRvbS5zdHlsZSYmKFV0fD0o''@;'; put 'put ''KG5uPVQzLmluZGV4T2YoeHQuYm90dG9tLnN0eWxlKSk+LTE/bm46MCk8PDQpKSx3ZS53cml0ZV9zaGlmdCgxLFJ0KSx3ZS53cml0ZV9zaGlmdCgxLFV0KSx3ZS53cml0ZV9zaGlmdCgyLDApLHdlLndyaXRlX3NoaWZ0KDIsMCksd2Uud3JpdGVfc2hpZnQoMSwwKTt2YXIgQ249MCxEdD1YLkZp''@;'; put 'put ''bGxzJiZYLkZpbGxzW0guZmlsbElkfHwwXXx8e307KER0LmZnQ29sb3J8fER0LmJnQ29sb3IpJiYoQ258PTQpLHdlLndyaXRlX3NoaWZ0KDEsQ24pO3ZhciB6dD0wO3p0fD1SYihEdC5mZ0NvbG9yLDY1KSx6dHw9UmIoRHQuYmdDb2xvciw2NSk8PDcsd2Uud3JpdGVfc2hpZnQoMix6dCl9ZWxz''@;'; put 'put ''ZSB3ZS53cml0ZV9zaGlmdCg0LDApLHdlLndyaXRlX3NoaWZ0KDQsMCksd2Uud3JpdGVfc2hpZnQoMiwwKTtyZXR1cm4gd2V9ZnVuY3Rpb24gYW0oSCxpZSxYKXt2YXIgd2U9QWMoSCk7KDI9PVguYmlmZnx8OT09aWUpJiYrK0gubDt2YXIgeGU9ZnVuY3Rpb24gc3MoSCl7dmFyIGllPUgucmVh''@;'; put 'put ''ZF9zaGlmdCgxKTtyZXR1cm4gMT09PUgucmVhZF9zaGlmdCgxKT9pZToxPT09aWV9KEgpO3JldHVybiB3ZS52YWw9eGUsd2UudD0hMD09PXhlfHwhMT09PXhlPyJiIjoiZSIsd2V9dmFyIEQ0PWZ1bmN0aW9uIGJkKEgsaWUsWCl7cmV0dXJuIDA9PT1pZT8iIjpkZihILDAsWCl9O2Z1bmN0aW9u''@;'; put 'put ''IEdNKEgsaWUsWCl7dmFyIHhlLHdlPUgucmVhZF9zaGlmdCgyKSxGZT17ZkJ1aWx0SW46MSZ3ZSxmV2FudEFkdmlzZTp3ZT4+PjEmMSxmV2FudFBpY3Q6d2U+Pj4yJjEsZk9sZTp3ZT4+PjMmMSxmT2xlTGluazp3ZT4+PjQmMSxjZjp3ZT4+PjUmMTAyMyxmSWNvbjp3ZT4+PjE1JjF9O3JldHVy''@;'; put 'put ''biAxNDg0OT09PVguc2JjY2gmJih4ZT1mdW5jdGlvbiBCOChILGllLFgpe0gubCs9NDt2YXIgd2U9SC5sKyhpZS09NCkseGU9emMoSCwwLFgpLEZlPUgucmVhZF9zaGlmdCgyKTtpZihGZSE9PSh3ZS09SC5sKSl0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBBZGRpblVkZjogcGFkZGluZyA9''@;'; put 'put ''ICIrd2UrIiAhPSAiK0ZlKTtyZXR1cm4gSC5sKz1GZSx4ZX0oSCxpZS0yLFgpKSxGZS5ib2R5PXhlfHxILnJlYWRfc2hpZnQoaWUtMiksInN0cmluZyI9PXR5cGVvZiB4ZSYmKEZlLk5hbWU9eGUpLEZlfXZhciBXTT1bIl94bG5tLkNvbnNvbGlkYXRlX0FyZWEiLCJfeGxubS5BdXRvX09wZW4i''@;'; put 'put ''LCJfeGxubS5BdXRvX0Nsb3NlIiwiX3hsbm0uRXh0cmFjdCIsIl94bG5tLkRhdGFiYXNlIiwiX3hsbm0uQ3JpdGVyaWEiLCJfeGxubS5QcmludF9BcmVhIiwiX3hsbm0uUHJpbnRfVGl0bGVzIiwiX3hsbm0uUmVjb3JkZXIiLCJfeGxubS5EYXRhX0Zvcm0iLCJfeGxubS5BdXRvX0FjdGl2YXRl''@;'; put 'put ''IiwiX3hsbm0uQXV0b19EZWFjdGl2YXRlIiwiX3hsbm0uU2hlZXRfVGl0bGUiLCJfeGxubS5fRmlsdGVyRGF0YWJhc2UiXTtmdW5jdGlvbiBwYihILGllLFgpe3ZhciB3ZT1ILmwraWUseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgxKSxaZT1ILnJlYWRfc2hpZnQoMSksamU9''@;'; put 'put ''SC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpLFllPTA7KCFYfHxYLmJpZmY+PTUpJiYoNSE9WC5iaWZmJiYoSC5sKz0yKSxZZT1ILnJlYWRfc2hpZnQoMiksNT09WC5iaWZmJiYoSC5sKz0yKSxILmwrPTQpO3ZhciBNdD1jdShILFplLFgpOzMyJnhlJiYoTXQ9V01bTXQuY2hhckNvZGVB''@;'; put 'put ''dCgwKV0pO3ZhciB4dD13ZS1ILmw7WCYmMj09WC5iaWZmJiYtLXh0O3ZhciBSdD13ZSE9SC5sJiYwIT09amUmJnh0PjA/ZnVuY3Rpb24gbkEoSCxpZSxYLHdlKXt2YXIgWmUseGU9SC5sK2llLEZlPWo0KEgsd2UsWCk7cmV0dXJuIHhlIT09SC5sJiYoWmU9TGQoSCx4ZS1ILmwsRmUsWCkpLFtG''@;'; put 'put ''ZSxaZV19KEgseHQsWCxqZSk6W107cmV0dXJue2NoS2V5OkZlLE5hbWU6TXQsaXRhYjpZZSxyZ2NlOlJ0fX1mdW5jdGlvbiBWOChILGllLFgpe2lmKFguYmlmZjw4KXJldHVybiBmdW5jdGlvbiBqOChILGllLFgpezM9PUhbSC5sKzFdJiZIW0gubF0rKzt2YXIgd2U9emMoSCwwLFgpO3JldHVy''@;'; put 'put ''biAzPT13ZS5jaGFyQ29kZUF0KDApP3dlLnNsaWNlKDEpOndlfShILDAsWCk7Zm9yKHZhciB3ZT1bXSx4ZT1ILmwraWUsRmU9SC5yZWFkX3NoaWZ0KFguYmlmZj44PzQ6Mik7MCE9RmUtLTspd2UucHVzaCh2OShILDAsWCkpO2lmKEgubCE9eGUpdGhyb3cgbmV3IEVycm9yKCJCYWQgRXh0ZXJu''@;'; put 'put ''U2hlZXQ6ICIrSC5sKyIgIT0gIit4ZSk7cmV0dXJuIHdlfWZ1bmN0aW9uIGdiKEgsaWUsWCl7dmFyIHdlPXViKEgsNik7c3dpdGNoKFguYmlmZil7Y2FzZSAyOkgubCsrLGllLT03O2JyZWFrO2Nhc2UgMzpjYXNlIDQ6SC5sKz0yLGllLT04O2JyZWFrO2RlZmF1bHQ6SC5sKz02LGllLT0xMn1y''@;'; put 'put ''ZXR1cm5bd2UsaEcoSCxpZSxYKV19dmFyIF85PVtdO2Z1bmN0aW9uIFVNKEgpe3ZhciBpZT1SaSgyNCksWD11bChIWzBdKTtpZS53cml0ZV9zaGlmdCgyLFguciksaWUud3JpdGVfc2hpZnQoMixYLnIpLGllLndyaXRlX3NoaWZ0KDIsWC5jKSxpZS53cml0ZV9zaGlmdCgyLFguYyk7Zm9yKHZh''@;'; put 'put ''ciB3ZT0iZDAgYzkgZWEgNzkgZjkgYmEgY2UgMTEgOGMgODIgMDAgYWEgMDAgNGIgYTkgMGIiLnNwbGl0KCIgIikseGU9MDt4ZTwxNjsrK3hlKWllLndyaXRlX3NoaWZ0KDEscGFyc2VJbnQod2VbeGVdLDE2KSk7cmV0dXJuIFYoW2llLGU2KEhbMV0pXSl9ZnVuY3Rpb24gc20oSCl7dmFyIGll''@;'; put 'put ''PUhbMV0uVG9vbHRpcCxYPVJpKDEwKzIqKGllLmxlbmd0aCsxKSk7WC53cml0ZV9zaGlmdCgyLDIwNDgpO3ZhciB3ZT11bChIWzBdKTtYLndyaXRlX3NoaWZ0KDIsd2UuciksWC53cml0ZV9zaGlmdCgyLHdlLnIpLFgud3JpdGVfc2hpZnQoMix3ZS5jKSxYLndyaXRlX3NoaWZ0KDIsd2UuYyk7''@;'; put 'put ''Zm9yKHZhciB4ZT0wO3hlPGllLmxlbmd0aDsrK3hlKVgud3JpdGVfc2hpZnQoMixpZS5jaGFyQ29kZUF0KHhlKSk7cmV0dXJuIFgud3JpdGVfc2hpZnQoMiwwKSxYfWZ1bmN0aW9uIHYzKEgsaWUsWCl7aWYoIVguY2VsbFN0eWxlcylyZXR1cm4gQ3MoSCxpZSk7dmFyIHdlPVgmJlguYmlmZj49''@;'; put 'put ''MTI/NDoyLHhlPUgucmVhZF9zaGlmdCh3ZSksRmU9SC5yZWFkX3NoaWZ0KHdlKSxaZT1ILnJlYWRfc2hpZnQod2UpLGplPUgucmVhZF9zaGlmdCh3ZSksWWU9SC5yZWFkX3NoaWZ0KDIpOzI9PXdlJiYoSC5sKz0yKTt2YXIgTXQ9e3M6eGUsZTpGZSx3OlplLGl4ZmU6amUsZmxhZ3M6WWV9O3Jl''@;'; put 'put ''dHVybihYLmJpZmY+PTV8fCFYLmJpZmYpJiYoTXQubGV2ZWw9WWU+PjgmNyksTXR9XzlbOF09ZnVuY3Rpb24oSCxpZSl7dmFyIFg9SC5sK2llO0gubCs9MTA7dmFyIHdlPUgucmVhZF9zaGlmdCgyKTtILmwrPTQsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz00O3ZhciB4ZT1ILnJlYWRfc2hp''@;'; put 'put ''ZnQoMSk7cmV0dXJuIEgubCs9eGUsSC5sPVgse2ZtdDp3ZX19O3ZhciBUUj1BYyxTOT1aYyx6OD14NDt2YXIgWWY9ZnVuY3Rpb24oKXt2YXIgSD17MTo0MzcsMjo4NTAsMzoxMjUyLDQ6MWU0LDEwMDo4NTIsMTAxOjg2NiwxMDI6ODY1LDEwMzo4NjEsMTA0Ojg5NSwxMDU6NjIwLDEwNjo3Mzcs''@;'; put 'put ''MTA3Ojg1NywxMjA6OTUwLDEyMTo5NDksMTIyOjkzNiwxMjM6OTMyLDEyNDo4NzQsMTI1OjEyNTUsMTI2OjEyNTYsMTUwOjEwMDA3LDE1MToxMDAyOSwxNTI6MTAwMDYsMjAwOjEyNTAsMjAxOjEyNTEsMjAyOjEyNTQsMjAzOjEyNTMsMDoyMDEyNyw4Ojg2NSw5OjQzNywxMDo4NTAsMTE6NDM3''@;'; put 'put ''LDEzOjQzNywxNDo4NTAsMTU6NDM3LDE2Ojg1MCwxNzo0MzcsMTg6ODUwLDE5OjkzMiwyMDo4NTAsMjE6NDM3LDIyOjg1MCwyMzo4NjUsMjQ6NDM3LDI1OjQzNywyNjo4NTAsMjc6NDM3LDI4Ojg2MywyOTo4NTAsMzE6ODUyLDM0Ojg1MiwzNTo4NTIsMzY6ODYwLDM3Ojg1MCwzODo4NjYsNTU6''@;'; put 'put ''ODUwLDY0Ojg1Miw3Nzo5MzYsNzg6OTQ5LDc5Ojk1MCw4MDo4NzQsODc6MTI1Miw4ODoxMjUyLDg5OjEyNTIsMTA4Ojg2MywxMzQ6NzM3LDEzNTo4NTIsMTM2Ojg1NywyMDQ6MTI1NywyNTU6MTY5Njl9LGllPXR0KHsxOjQzNywyOjg1MCwzOjEyNTIsNDoxZTQsMTAwOjg1MiwxMDE6ODY2LDEw''@;'; put 'put ''Mjo4NjUsMTAzOjg2MSwxMDQ6ODk1LDEwNTo2MjAsMTA2OjczNywxMDc6ODU3LDEyMDo5NTAsMTIxOjk0OSwxMjI6OTM2LDEyMzo5MzIsMTI0Ojg3NCwxMjU6MTI1NSwxMjY6MTI1NiwxNTA6MTAwMDcsMTUxOjEwMDI5LDE1MjoxMDAwNiwyMDA6MTI1MCwyMDE6MTI1MSwyMDI6MTI1NCwyMDM6''@;'; put 'put ''MTI1MywwOjIwMTI3fSk7ZnVuY3Rpb24geGUoWWUsTXQpe3ZhciB4dD1NdHx8e307cmV0dXJuIHh0LmRhdGVORnx8KHh0LmRhdGVORj0ieXl5eW1tZGQiKSxtZChmdW5jdGlvbiB3ZShZZSxNdCl7dmFyIHh0PVtdLFJ0PWhlKDEpO3N3aXRjaChNdC50eXBlKXtjYXNlImJhc2U2NCI6UnQ9eihT''@;'; put 'put ''ZS5kZWNvZGUoWWUpKTticmVhaztjYXNlImJpbmFyeSI6UnQ9eihZZSk7YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOlJ0PVllfUtsKFJ0LDApO3ZhciBVdD1SdC5yZWFkX3NoaWZ0KDEpLG5uPSEhKDEzNiZVdCksQ249ITEsRHQ9ITE7c3dpdGNoKFV0KXtjYXNlIDI6Y2FzZSAzOmNh''@;'; put 'put ''c2UgMTMxOmNhc2UgMTM5OmNhc2UgMjQ1OmJyZWFrO2Nhc2UgNDg6Y2FzZSA0OTpDbj0hMCxubj0hMDticmVhaztjYXNlIDE0MDpEdD0hMDticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVuc3VwcG9ydGVkIFZlcnNpb246ICIrVXQudG9TdHJpbmcoMTYpKX12YXIgenQ9MCxQ''@;'; put 'put ''bj01MjE7Mj09VXQmJih6dD1SdC5yZWFkX3NoaWZ0KDIpKSxSdC5sKz0zLDIhPVV0JiYoenQ9UnQucmVhZF9zaGlmdCg0KSksenQ+MTA0ODU3NiYmKHp0PTFlNiksMiE9VXQmJihQbj1SdC5yZWFkX3NoaWZ0KDIpKTt2YXIgVG49UnQucmVhZF9zaGlmdCgyKSxPbj1NdC5jb2RlcGFnZXx8MTI1''@;'; put 'put ''MjsyIT1VdCYmKFJ0LmwrPTE2LFJ0LnJlYWRfc2hpZnQoMSksMCE9PVJ0W1J0LmxdJiYoT249SFtSdFtSdC5sXV0pLFJ0LmwrPTEsUnQubCs9MiksRHQmJihSdC5sKz0zNik7Zm9yKHZhciBZbj1bXSxNcj17fSxhaT1NYXRoLm1pbihSdC5sZW5ndGgsMj09VXQ/NTIxOlBuLTEwLShDbj8yNjQ6''@;'; put 'put ''MCkpLHlyPUR0PzMyOjExO1J0Lmw8YWkmJjEzIT1SdFtSdC5sXTspc3dpdGNoKE1yPXt9LE1yLm5hbWU9Y3B0YWJsZS51dGlscy5kZWNvZGUoT24sUnQuc2xpY2UoUnQubCxSdC5sK3lyKSkucmVwbGFjZSgvW1x1MDAwMFxyXG5dLiokL2csIiIpLFJ0LmwrPXlyLE1yLnR5cGU9U3RyaW5nLmZy''@;'; put 'put ''b21DaGFyQ29kZShSdC5yZWFkX3NoaWZ0KDEpKSwyIT1VdCYmIUR0JiYoTXIub2Zmc2V0PVJ0LnJlYWRfc2hpZnQoNCkpLE1yLmxlbj1SdC5yZWFkX3NoaWZ0KDEpLDI9PVV0JiYoTXIub2Zmc2V0PVJ0LnJlYWRfc2hpZnQoMikpLE1yLmRlYz1SdC5yZWFkX3NoaWZ0KDEpLE1yLm5hbWUubGVu''@;'; put 'put ''Z3RoJiZZbi5wdXNoKE1yKSwyIT1VdCYmKFJ0LmwrPUR0PzEzOjE0KSxNci50eXBlKXtjYXNlIkIiOighQ258fDghPU1yLmxlbikmJk10LldURiYmY29uc29sZS5sb2coIlNraXBwaW5nICIrTXIubmFtZSsiOiIrTXIudHlwZSk7YnJlYWs7Y2FzZSJHIjpjYXNlIlAiOk10LldURiYmY29uc29s''@;'; put 'put ''ZS5sb2coIlNraXBwaW5nICIrTXIubmFtZSsiOiIrTXIudHlwZSk7YnJlYWs7Y2FzZSIrIjpjYXNlIjAiOmNhc2UiQCI6Y2FzZSJDIjpjYXNlIkQiOmNhc2UiRiI6Y2FzZSJJIjpjYXNlIkwiOmNhc2UiTSI6Y2FzZSJOIjpjYXNlIk8iOmNhc2UiVCI6Y2FzZSJZIjpicmVhaztkZWZhdWx0OnRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigiVW5rbm93biBGaWVsZCBUeXBlOiAiK01yLnR5cGUpfWlmKDEzIT09UnRbUnQubF0mJihSdC5sPVBuLTEpLDEzIT09UnQucmVhZF9zaGlmdCgxKSl0aHJvdyBuZXcgRXJyb3IoIkRCRiBUZXJtaW5hdG9yIG5vdCBmb3VuZCAiK1J0LmwrIiAiK1J0W1J0LmxdKTtSdC5s''@;'; put 'put ''PVBuO3ZhciBhcj0wLEdyPTA7Zm9yKHh0WzBdPVtdLEdyPTA7R3IhPVluLmxlbmd0aDsrK0dyKXh0WzBdW0dyXT1ZbltHcl0ubmFtZTtmb3IoO3p0LS0gPjA7KWlmKDQyIT09UnRbUnQubF0pZm9yKCsrUnQubCx4dFsrK2FyXT1bXSxHcj0wLEdyPTA7R3IhPVluLmxlbmd0aDsrK0dyKXt2YXIg''@;'; put 'put ''enI9UnQuc2xpY2UoUnQubCxSdC5sK1luW0dyXS5sZW4pO1J0LmwrPVluW0dyXS5sZW4sS2woenIsMCk7dmFyIHFyPWNwdGFibGUudXRpbHMuZGVjb2RlKE9uLHpyKTtzd2l0Y2goWW5bR3JdLnR5cGUpe2Nhc2UiQyI6cXIudHJpbSgpLmxlbmd0aCYmKHh0W2FyXVtHcl09cXIucmVwbGFjZSgv''@;'; put 'put ''XHMrJC8sIiIpKTticmVhaztjYXNlIkQiOnh0W2FyXVtHcl09OD09PXFyLmxlbmd0aD9uZXcgRGF0ZSgrcXIuc2xpY2UoMCw0KSwrcXIuc2xpY2UoNCw2KS0xLCtxci5zbGljZSg2LDgpKTpxcjticmVhaztjYXNlIkYiOnh0W2FyXVtHcl09cGFyc2VGbG9hdChxci50cmltKCkpO2JyZWFrO2Nh''@;'; put 'put ''c2UiKyI6Y2FzZSJJIjp4dFthcl1bR3JdPUR0PzIxNDc0ODM2NDheenIucmVhZF9zaGlmdCgtNCwiaSIpOnpyLnJlYWRfc2hpZnQoNCwiaSIpO2JyZWFrO2Nhc2UiTCI6c3dpdGNoKHFyLnRyaW0oKS50b1VwcGVyQ2FzZSgpKXtjYXNlIlkiOmNhc2UiVCI6eHRbYXJdW0dyXT0hMDticmVhaztj''@;'; put 'put ''YXNlIk4iOmNhc2UiRiI6eHRbYXJdW0dyXT0hMTticmVhaztjYXNlIiI6Y2FzZSI/IjpicmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiREJGIFVucmVjb2duaXplZCBMOnwiK3FyKyJ8Iil9YnJlYWs7Y2FzZSJNIjppZighbm4pdGhyb3cgbmV3IEVycm9yKCJEQkYgVW5leHBlY3RlZCBN''@;'; put 'put ''RU1PIGZvciB0eXBlICIrVXQudG9TdHJpbmcoMTYpKTt4dFthcl1bR3JdPSIjI01FTU8jIyIrKER0P3BhcnNlSW50KHFyLnRyaW0oKSwxMCk6enIucmVhZF9zaGlmdCg0KSk7YnJlYWs7Y2FzZSJOIjoocXI9cXIucmVwbGFjZSgvXHUwMDAwL2csIiIpLnRyaW0oKSkmJiIuIiE9cXImJih4dFth''@;'; put 'put ''cl1bR3JdPStxcnx8MCk7YnJlYWs7Y2FzZSJAIjp4dFthcl1bR3JdPW5ldyBEYXRlKHpyLnJlYWRfc2hpZnQoLTgsImYiKS02MjEzNTY4MzJlNSk7YnJlYWs7Y2FzZSJUIjp4dFthcl1bR3JdPW5ldyBEYXRlKDg2NGU1Kih6ci5yZWFkX3NoaWZ0KDQpLTI0NDA1ODgpK3pyLnJlYWRfc2hpZnQo''@;'; put 'put ''NCkpO2JyZWFrO2Nhc2UiWSI6eHRbYXJdW0dyXT16ci5yZWFkX3NoaWZ0KDQsImkiKS8xZTQ7YnJlYWs7Y2FzZSJPIjp4dFthcl1bR3JdPS16ci5yZWFkX3NoaWZ0KC04LCJmIik7YnJlYWs7Y2FzZSJCIjppZihDbiYmOD09WW5bR3JdLmxlbil7eHRbYXJdW0dyXT16ci5yZWFkX3NoaWZ0KDgs''@;'; put 'put ''ImYiKTticmVha31jYXNlIkciOmNhc2UiUCI6enIubCs9WW5bR3JdLmxlbjticmVhaztjYXNlIjAiOmlmKCJfTnVsbEZsYWdzIj09PVluW0dyXS5uYW1lKWJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJEQkYgVW5zdXBwb3J0ZWQgZGF0YSB0eXBlICIrWW5bR3JdLnR5cGUpfX1lbHNl''@;'; put 'put ''IFJ0LmwrPVRuO2lmKDIhPVV0JiZSdC5sPFJ0Lmxlbmd0aCYmMjYhPVJ0W1J0LmwrK10pdGhyb3cgbmV3IEVycm9yKCJEQkYgRU9GIE1hcmtlciBtaXNzaW5nICIrKFJ0LmwtMSkrIiBvZiAiK1J0Lmxlbmd0aCsiICIrUnRbUnQubC0xXS50b1N0cmluZygxNikpO3JldHVybiBNdCYmTXQuc2hl''@;'; put 'put ''ZXRSb3dzJiYoeHQ9eHQuc2xpY2UoMCxNdC5zaGVldFJvd3MpKSx4dH0oWWUseHQpLHh0KX12YXIgWmU9e0I6OCxDOjI1MCxMOjEsRDo4LCI/IjowLCIiOjB9O3JldHVybnt2ZXJzaW9uczpbMiwzLDQ4LDQ5LDEzMSwxMzksMTQwLDI0NV0sdG9fd29ya2Jvb2s6ZnVuY3Rpb24gRmUoWWUsTXQp''@;'; put 'put ''e3RyeXtyZXR1cm4gdzEoeGUoWWUsTXQpLE10KX1jYXRjaCh4dCl7aWYoTXQmJk10LldURil0aHJvdyB4dH1yZXR1cm57U2hlZXROYW1lczpbXSxTaGVldHM6e319fSx0b19zaGVldDp4ZSxmcm9tX3NoZWV0OmZ1bmN0aW9uIGplKFllLE10KXt2YXIgeHQ9TXR8fHt9O2lmKCt4dC5jb2RlcGFn''@;'; put 'put ''ZT49MCYmdGUoK3h0LmNvZGVwYWdlKSwic3RyaW5nIj09eHQudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBEQkYgdG8gSlMgc3RyaW5nIik7dmFyIFJ0PUoyKCksVXQ9T0EoWWUse2hlYWRlcjoxLHJhdzohMCxjZWxsRGF0ZXM6ITB9KSxubj1VdFswXSxDbj1VdC5zbGljZSgx''@;'; put 'put ''KSxEdD0wLHp0PTAsUG49MCxUbj0xO2ZvcihEdD0wO0R0PG5uLmxlbmd0aDsrK0R0KWlmKG51bGwhPUR0KXtpZigrK1BuLCJudW1iZXIiPT10eXBlb2Ygbm5bRHRdJiYobm5bRHRdPW5uW0R0XS50b1N0cmluZygxMCkpLCJzdHJpbmciIT10eXBlb2Ygbm5bRHRdKXRocm93IG5ldyBFcnJvcigi''@;'; put 'put ''REJGIEludmFsaWQgY29sdW1uIG5hbWUgIitubltEdF0rIiB8Iit0eXBlb2Ygbm5bRHRdKyJ8Iik7aWYobm4uaW5kZXhPZihubltEdF0pIT09RHQpZm9yKHp0PTA7enQ8MTAyNDsrK3p0KWlmKC0xPT1ubi5pbmRleE9mKG5uW0R0XSsiXyIrenQpKXtubltEdF0rPSJfIit6dDticmVha319dmFy''@;'; put 'put ''IE9uPUZvKFllWyIhcmVmIl0pLFluPVtdO2ZvcihEdD0wO0R0PD1Pbi5lLmMtT24ucy5jOysrRHQpe3ZhciBNcj1bXTtmb3IoenQ9MDt6dDxDbi5sZW5ndGg7Kyt6dCludWxsIT1Dblt6dF1bRHRdJiZNci5wdXNoKENuW3p0XVtEdF0pO2lmKDAhPU1yLmxlbmd0aCYmbnVsbCE9bm5bRHRdKXt2''@;'; put 'put ''YXIgYWk9IiIseXI9IiI7Zm9yKHp0PTA7enQ8TXIubGVuZ3RoOysrenQpe3N3aXRjaCh0eXBlb2YgTXJbenRdKXtjYXNlIm51bWJlciI6eXI9IkIiO2JyZWFrO2Nhc2Uic3RyaW5nIjpkZWZhdWx0OnlyPSJDIjticmVhaztjYXNlImJvb2xlYW4iOnlyPSJMIjticmVhaztjYXNlIm9iamVjdCI6''@;'; put 'put ''eXI9TXJbenRdaW5zdGFuY2VvZiBEYXRlPyJEIjoiQyJ9aWYoIkMiPT0oYWk9YWkmJmFpIT15cj8iQyI6eXIpKWJyZWFrfVRuKz1aZVthaV18fDAsWW5bRHRdPWFpfWVsc2UgWW5bRHRdPSI/In12YXIgYXI9UnQubmV4dCgzMik7Zm9yKGFyLndyaXRlX3NoaWZ0KDQsMzE4OTAyNTc2KSxhci53''@;'; put 'put ''cml0ZV9zaGlmdCg0LENuLmxlbmd0aCksYXIud3JpdGVfc2hpZnQoMiwyOTYrMzIqUG4pLGFyLndyaXRlX3NoaWZ0KDIsVG4pLER0PTA7RHQ8NDsrK0R0KWFyLndyaXRlX3NoaWZ0KDQsMCk7Zm9yKGFyLndyaXRlX3NoaWZ0KDQsMHwoK2llW2pdfHwzKTw8OCksRHQ9MCx6dD0wO0R0PG5uLmxl''@;'; put 'put ''bmd0aDsrK0R0KWlmKG51bGwhPW5uW0R0XSl7dmFyIEdyPVJ0Lm5leHQoMzIpLHpyPShubltEdF0uc2xpY2UoLTEwKSsiXDBcMFwwXDBcMFwwXDBcMFwwXDBcMCIpLnNsaWNlKDAsMTEpO0dyLndyaXRlX3NoaWZ0KDEsenIsInNiY3MiKSxHci53cml0ZV9zaGlmdCgxLCI/Ij09WW5bRHRdPyJD''@;'; put 'put ''IjpZbltEdF0sInNiY3MiKSxHci53cml0ZV9zaGlmdCg0LHp0KSxHci53cml0ZV9zaGlmdCgxLFplW1luW0R0XV18fDApLEdyLndyaXRlX3NoaWZ0KDEsMCksR3Iud3JpdGVfc2hpZnQoMSwyKSxHci53cml0ZV9zaGlmdCg0LDApLEdyLndyaXRlX3NoaWZ0KDEsMCksR3Iud3JpdGVfc2hpZnQo''@;'; put 'put ''NCwwKSxHci53cml0ZV9zaGlmdCg0LDApLHp0Kz1aZVtZbltEdF1dfHwwfXZhciBxcj1SdC5uZXh0KDI2NCk7Zm9yKHFyLndyaXRlX3NoaWZ0KDQsMTMpLER0PTA7RHQ8NjU7KytEdClxci53cml0ZV9zaGlmdCg0LDApO2ZvcihEdD0wO0R0PENuLmxlbmd0aDsrK0R0KXt2YXIgb2k9UnQubmV4''@;'; put 'put ''dChUbik7Zm9yKG9pLndyaXRlX3NoaWZ0KDEsMCksenQ9MDt6dDxubi5sZW5ndGg7Kyt6dClpZihudWxsIT1ublt6dF0pc3dpdGNoKFluW3p0XSl7Y2FzZSJMIjpvaS53cml0ZV9zaGlmdCgxLG51bGw9PUNuW0R0XVt6dF0/NjM6Q25bRHRdW3p0XT84NDo3MCk7YnJlYWs7Y2FzZSJCIjpvaS53''@;'; put 'put ''cml0ZV9zaGlmdCg4LENuW0R0XVt6dF18fDAsImYiKTticmVhaztjYXNlIkQiOkNuW0R0XVt6dF0/KG9pLndyaXRlX3NoaWZ0KDQsKCIwMDAwIitDbltEdF1benRdLmdldEZ1bGxZZWFyKCkpLnNsaWNlKC00KSwic2JjcyIpLG9pLndyaXRlX3NoaWZ0KDIsKCIwMCIrKENuW0R0XVt6dF0uZ2V0''@;'; put 'put ''TW9udGgoKSsxKSkuc2xpY2UoLTIpLCJzYmNzIiksb2kud3JpdGVfc2hpZnQoMiwoIjAwIitDbltEdF1benRdLmdldERhdGUoKSkuc2xpY2UoLTIpLCJzYmNzIikpOm9pLndyaXRlX3NoaWZ0KDgsIjAwMDAwMDAwIiwic2JjcyIpO2JyZWFrO2Nhc2UiQyI6dmFyIGNyPVN0cmluZyhDbltEdF1b''@;'; put 'put ''enRdfHwiIik7Zm9yKG9pLndyaXRlX3NoaWZ0KDEsY3IsInNiY3MiKSxQbj0wO1BuPDI1MC1jci5sZW5ndGg7KytQbilvaS53cml0ZV9zaGlmdCgxLDMyKX19cmV0dXJuIFJ0Lm5leHQoMSkud3JpdGVfc2hpZnQoMSwyNiksUnQuZW5kKCl9fX0oKSxmbT1mdW5jdGlvbigpe3ZhciBIPXtBQToi''@;'; put 'put ''XHhjMCIsQkE6Ilx4YzEiLENBOiJceGMyIixEQToxOTUsSEE6Ilx4YzQiLEpBOjE5NyxBRToiXHhjOCIsQkU6Ilx4YzkiLENFOiJceGNhIixIRToiXHhjYiIsQUk6Ilx4Y2MiLEJJOiJceGNkIixDSToiXHhjZSIsSEk6Ilx4Y2YiLEFPOiJceGQyIixCTzoiXHhkMyIsQ086Ilx4ZDQiLERPOjIx''@;'; put 'put ''MyxITzoiXHhkNiIsQVU6Ilx4ZDkiLEJVOiJceGRhIixDVToiXHhkYiIsSFU6Ilx4ZGMiLEFhOiJceGUwIixCYToiXHhlMSIsQ2E6Ilx4ZTIiLERhOjIyNyxIYToiXHhlNCIsSmE6MjI5LEFlOiJceGU4IixCZToiXHhlOSIsQ2U6Ilx4ZWEiLEhlOiJceGViIixBaToiXHhlYyIsQmk6Ilx4ZWQi''@;'; put 'put ''LENpOiJceGVlIixIaToiXHhlZiIsQW86Ilx4ZjIiLEJvOiJceGYzIixDbzoiXHhmNCIsRG86MjQ1LEhvOiJceGY2IixBdToiXHhmOSIsQnU6Ilx4ZmEiLEN1OiJceGZiIixIdToiXHhmYyIsS0M6Ilx4YzciLEtjOiJceGU3IixxOiJceGU2Iix6OiJcdTAxNTMiLGE6Ilx4YzYiLGo6Ilx1MDE1''@;'; put 'put ''MiIsRE46MjA5LERuOjI0MSxIeToyNTUsUzoxNjksYzoxNzAsUjoxNzQsIkIgIjoxODAsMDoxNzYsMToxNzcsMjoxNzgsMzoxNzksNToxODEsNjoxODIsNzoxODMsUToxODUsazoxODYsYjoyMDgsaToyMTYsbDoyMjIsczoyNDAseToyNDgsIiEiOjE2MSwnIic6MTYyLCIjIjoxNjMsIigiOjE2''@;'; put 'put ''NCwiJSI6MTY1LCInIjoxNjcsIkggIjoxNjgsIisiOjE3MSwiOyI6MTg3LCI8IjoxODgsIj0iOjE4OSwiPiI6MTkwLCI/IjoxOTEsInsiOjIyM30saWU9bmV3IFJlZ0V4cCgiXHgxYk4oIitvbihIKS5qb2luKCJ8IikucmVwbGFjZSgvXHxcfFx8LywifFxcfHwiKS5yZXBsYWNlKC8oWz8oKStd''@;'; put 'put ''KS9nLCJcXCQxIikrInxcXHwpIiwiZ20iKSxYPWZ1bmN0aW9uKFV0LG5uKXt2YXIgQ249SFtubl07cmV0dXJuIm51bWJlciI9PXR5cGVvZiBDbj92ZShDbik6Q259LHdlPWZ1bmN0aW9uKFV0LG5uLENuKXt2YXIgRHQ9bm4uY2hhckNvZGVBdCgwKS0zMjw8NHxDbi5jaGFyQ29kZUF0KDApLTQ4''@;'; put 'put ''O3JldHVybiA1OT09RHQ/VXQ6dmUoRHQpfTtmdW5jdGlvbiBGZShVdCxubil7dmFyIHFyLENuPVV0LnNwbGl0KC9bXG5ccl0rLyksRHQ9LTEsenQ9LTEsUG49MCxUbj0wLE9uPVtdLFluPVtdLE1yPW51bGwsYWk9e30seXI9W10sYXI9W10sR3I9W10senI9MDtmb3IoK25uLmNvZGVwYWdlPj0w''@;'; put 'put ''JiZ0ZSgrbm4uY29kZXBhZ2UpO1BuIT09Q24ubGVuZ3RoOysrUG4pe3pyPTA7dmFyIHYwLG9pPUNuW1BuXS50cmltKCkucmVwbGFjZSgvXHgxQihbXHgyMC1ceDJGXSkoW1x4MzAtXHgzRl0pL2csd2UpLnJlcGxhY2UoaWUsWCksY3I9b2kucmVwbGFjZSgvOzsvZywiXDAiKS5zcGxpdCgiOyIp''@;'; put 'put ''Lm1hcChmdW5jdGlvbihOMCl7cmV0dXJuIE4wLnJlcGxhY2UoL1x1MDAwMC9nLCI7Iil9KTtpZihvaS5sZW5ndGg+MClzd2l0Y2goY3JbMF0pe2Nhc2UiSUQiOmNhc2UiRSI6Y2FzZSJCIjpjYXNlIk8iOmNhc2UiVyI6YnJlYWs7Y2FzZSJQIjoiUCI9PWNyWzFdLmNoYXJBdCgwKSYmWW4ucHVz''@;'; put 'put ''aChvaS5zbGljZSgzKS5yZXBsYWNlKC87Oy9nLCI7IikpO2JyZWFrO2Nhc2UiQyI6dmFyIFVpPSExLHRvPSExLEEwPSExLGJpPSExLFlyPS0xLEVpPS0xO2ZvcihUbj0xO1RuPGNyLmxlbmd0aDsrK1RuKXN3aXRjaChjcltUbl0uY2hhckF0KDApKXtjYXNlIkEiOmNhc2UiRyI6YnJlYWs7Y2Fz''@;'; put 'put ''ZSJYIjp6dD1wYXJzZUludChjcltUbl0uc2xpY2UoMSkpLTEsdG89ITA7YnJlYWs7Y2FzZSJZIjpmb3IoRHQ9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xLHRvfHwoenQ9MCkscXI9T24ubGVuZ3RoO3FyPD1EdDsrK3FyKU9uW3FyXT1bXTticmVhaztjYXNlIksiOiciJz09PSh2MD1jcltU''@;'; put 'put ''bl0uc2xpY2UoMSkpLmNoYXJBdCgwKT92MD12MC5zbGljZSgxLHYwLmxlbmd0aC0xKToiVFJVRSI9PT12MD92MD0hMDoiRkFMU0UiPT09djA/djA9ITE6aXNOYU4oc3IodjApKT9pc05hTihYbih2MCkuZ2V0RGF0ZSgpKXx8KHYwPWRuKHYwKSk6KHYwPXNyKHYwKSxudWxsIT09TXImJkYuaXNf''@;'; put 'put ''ZGF0ZShNcikmJih2MD1IdCh2MCkpKSwidW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGUmJiJzdHJpbmciPT10eXBlb2YgdjAmJiJzdHJpbmciIT0obm58fHt9KS50eXBlJiYobm58fHt9KS5jb2RlcGFnZSYmKHYwPWNwdGFibGUudXRpbHMuZGVjb2RlKG5uLmNvZGVwYWdlLHYwKSksVWk9ITA7''@;'; put 'put ''YnJlYWs7Y2FzZSJFIjpiaT0hMDt2YXIgaGk9RDMoY3JbVG5dLnNsaWNlKDEpLHtyOkR0LGM6enR9KTtPbltEdF1benRdPVtPbltEdF1benRdLGhpXTticmVhaztjYXNlIlMiOkEwPSEwLE9uW0R0XVt6dF09W09uW0R0XVt6dF0sIlM1UyJdO2JyZWFrO2Nhc2UiUiI6WXI9cGFyc2VJbnQoY3Jb''@;'; put 'put ''VG5dLnNsaWNlKDEpKS0xO2JyZWFrO2Nhc2UiQyI6RWk9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xO2JyZWFrO2RlZmF1bHQ6aWYobm4mJm5uLldURil0aHJvdyBuZXcgRXJyb3IoIlNZTEsgYmFkIHJlY29yZCAiK29pKX1pZihVaSYmKE9uW0R0XVt6dF0mJjI9PU9uW0R0XVt6dF0ubGVu''@;'; put 'put ''Z3RoP09uW0R0XVt6dF1bMF09djA6T25bRHRdW3p0XT12MCxNcj1udWxsKSxBMCl7aWYoYmkpdGhyb3cgbmV3IEVycm9yKCJTWUxLIHNoYXJlZCBmb3JtdWxhIGNhbm5vdCBoYXZlIG93biBmb3JtdWxhIik7dmFyIE5yPVlyPi0xJiZPbltZcl1bRWldO2lmKCFOcnx8IU5yWzFdKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigiU1lMSyBzaGFyZWQgZm9ybXVsYSBjYW5ub3QgZmluZCBiYXNlIik7T25bRHRdW3p0XVsxXT1ROShOclsxXSx7cjpEdC1ZcixjOnp0LUVpfSl9YnJlYWs7Y2FzZSJGIjp2YXIga2k9MDtmb3IoVG49MTtUbjxjci5sZW5ndGg7KytUbilzd2l0Y2goY3JbVG5dLmNoYXJBdCgwKSl7''@;'; put 'put ''Y2FzZSJYIjp6dD1wYXJzZUludChjcltUbl0uc2xpY2UoMSkpLTEsKytraTticmVhaztjYXNlIlkiOmZvcihEdD1wYXJzZUludChjcltUbl0uc2xpY2UoMSkpLTEscXI9T24ubGVuZ3RoO3FyPD1EdDsrK3FyKU9uW3FyXT1bXTticmVhaztjYXNlIk0iOnpyPXBhcnNlSW50KGNyW1RuXS5zbGlj''@;'; put 'put ''ZSgxKSkvMjA7YnJlYWs7Y2FzZSJGIjpjYXNlIkciOmNhc2UiUyI6Y2FzZSJEIjpjYXNlIk4iOmJyZWFrO2Nhc2UiUCI6TXI9WW5bcGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKV07YnJlYWs7Y2FzZSJXIjpmb3IoR3I9Y3JbVG5dLnNsaWNlKDEpLnNwbGl0KCIgIikscXI9cGFyc2VJbnQoR3Jb''@;'; put 'put ''MF0sMTApO3FyPD1wYXJzZUludChHclsxXSwxMCk7Kytxcil6cj1wYXJzZUludChHclsyXSwxMCksYXJbcXItMV09MD09PXpyP3toaWRkZW46ITB9Ont3Y2g6enJ9LHljKGFyW3FyLTFdKTticmVhaztjYXNlIkMiOmFyW3p0PXBhcnNlSW50KGNyW1RuXS5zbGljZSgxKSktMV18fChhclt6dF09''@;'; put 'put ''e30pO2JyZWFrO2Nhc2UiUiI6eXJbRHQ9cGFyc2VJbnQoY3JbVG5dLnNsaWNlKDEpKS0xXXx8KHlyW0R0XT17fSksenI+MD8oeXJbRHRdLmhwdD16cix5cltEdF0uaHB4PUFmKHpyKSk6MD09PXpyJiYoeXJbRHRdLmhpZGRlbj0hMCk7YnJlYWs7ZGVmYXVsdDppZihubiYmbm4uV1RGKXRocm93''@;'; put 'put ''IG5ldyBFcnJvcigiU1lMSyBiYWQgcmVjb3JkICIrb2kpfWtpPDEmJihNcj1udWxsKTticmVhaztkZWZhdWx0OmlmKG5uJiZubi5XVEYpdGhyb3cgbmV3IEVycm9yKCJTWUxLIGJhZCByZWNvcmQgIitvaSl9fXJldHVybiB5ci5sZW5ndGg+MCYmKGFpWyIhcm93cyJdPXlyKSxhci5sZW5ndGg+''@;'; put 'put ''MCYmKGFpWyIhY29scyJdPWFyKSxubiYmbm4uc2hlZXRSb3dzJiYoT249T24uc2xpY2UoMCxubi5zaGVldFJvd3MpKSxbT24sYWldfWZ1bmN0aW9uIFplKFV0LG5uKXt2YXIgQ249ZnVuY3Rpb24geGUoVXQsbm4pe3N3aXRjaChubi50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIEZlKFNlLmRl''@;'; put 'put ''Y29kZShVdCksbm4pO2Nhc2UiYmluYXJ5IjpyZXR1cm4gRmUoVXQsbm4pO2Nhc2UiYnVmZmVyIjpyZXR1cm4gRmUoVXQudG9TdHJpbmcoImJpbmFyeSIpLG5uKTtjYXNlImFycmF5IjpyZXR1cm4gRmUoeW4oVXQpLG5uKX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrbm4u''@;'; put 'put ''dHlwZSl9KFV0LG5uKSx6dD1DblsxXSxQbj1tZChDblswXSxubik7cmV0dXJuIG9uKHp0KS5mb3JFYWNoKGZ1bmN0aW9uKFRuKXtQbltUbl09enRbVG5dfSksUG59ZnVuY3Rpb24gWWUoVXQsbm4sQ24sRHQpe3ZhciB6dD0iQztZIisoQ24rMSkrIjtYIisoRHQrMSkrIjtLIjtzd2l0Y2goVXQu''@;'; put 'put ''dCl7Y2FzZSJuIjp6dCs9VXQudnx8MCxVdC5mJiYhVXQuRiYmKHp0Kz0iO0UiK1ZFKFV0LmYse3I6Q24sYzpEdH0pKTticmVhaztjYXNlImIiOnp0Kz1VdC52PyJUUlVFIjoiRkFMU0UiO2JyZWFrO2Nhc2UiZSI6enQrPVV0Lnd8fFV0LnY7YnJlYWs7Y2FzZSJkIjp6dCs9JyInKyhVdC53fHxV''@;'; put 'put ''dC52KSsnIic7YnJlYWs7Y2FzZSJzIjp6dCs9JyInK1V0LnYucmVwbGFjZSgvIi9nLCIiKSsnIid9cmV0dXJuIHp0fXJldHVybiBIWyJ8Il09MjU0LHt0b193b3JrYm9vazpmdW5jdGlvbiBqZShVdCxubil7cmV0dXJuIHcxKFplKFV0LG5uKSxubil9LHRvX3NoZWV0OlplLGZyb21fc2hlZXQ6''@;'; put 'put ''ZnVuY3Rpb24gUnQoVXQsbm4pe3ZhciBQbixDbj1bIklEO1BTaGVldEpTO047RSJdLER0PVtdLHp0PUZvKFV0WyIhcmVmIl0pLFRuPUFycmF5LmlzQXJyYXkoVXQpLE9uPSJcclxuIjtDbi5wdXNoKCJQO1BHZW5lcmFsIiksQ24ucHVzaCgiRjtQMDtERzBHODtNMjU1IiksVXRbIiFjb2xzIl0m''@;'; put 'put ''JmZ1bmN0aW9uIE10KFV0LG5uKXtubi5mb3JFYWNoKGZ1bmN0aW9uKENuLER0KXt2YXIgenQ9IkY7VyIrKER0KzEpKyIgIisoRHQrMSkrIiAiO0NuLmhpZGRlbj96dCs9IjAiOigibnVtYmVyIj09dHlwZW9mIENuLndpZHRoJiYhQ24ud3B4JiYoQ24ud3B4PW1tKENuLndpZHRoKSksIm51bWJl''@;'; put 'put ''ciI9PXR5cGVvZiBDbi53cHgmJiFDbi53Y2gmJihDbi53Y2g9STkoQ24ud3B4KSksIm51bWJlciI9PXR5cGVvZiBDbi53Y2gmJih6dCs9TWF0aC5yb3VuZChDbi53Y2gpKSksIiAiIT16dC5jaGFyQXQoenQubGVuZ3RoLTEpJiZVdC5wdXNoKHp0KX0pfShDbixVdFsiIWNvbHMiXSksVXRbIiFy''@;'; put 'put ''b3dzIl0mJmZ1bmN0aW9uIHh0KFV0LG5uKXtubi5mb3JFYWNoKGZ1bmN0aW9uKENuLER0KXt2YXIgenQ9IkY7IjtDbi5oaWRkZW4/enQrPSJNMDsiOkNuLmhwdD96dCs9Ik0iKzIwKkNuLmhwdCsiOyI6Q24uaHB4JiYoenQrPSJNIisyMCpUaChDbi5ocHgpKyI7IiksenQubGVuZ3RoPjImJlV0''@;'; put 'put ''LnB1c2goenQrIlIiKyhEdCsxKSl9KX0oQ24sVXRbIiFyb3dzIl0pLENuLnB1c2goIkI7WSIrKHp0LmUuci16dC5zLnIrMSkrIjtYIisoenQuZS5jLXp0LnMuYysxKSsiO0QiK1t6dC5zLmMsenQucy5yLHp0LmUuYyx6dC5lLnJdLmpvaW4oIiAiKSk7Zm9yKHZhciBZbj16dC5zLnI7WW48PXp0''@;'; put 'put ''LmUucjsrK1luKWZvcih2YXIgTXI9enQucy5jO01yPD16dC5lLmM7KytNcil7dmFyIGFpPVkwKHtyOlluLGM6TXJ9KTsoUG49VG4/KFV0W1luXXx8W10pW01yXTpVdFthaV0pJiYobnVsbCE9UG4udnx8UG4uZiYmIVBuLkYpJiZEdC5wdXNoKFllKFBuLDAsWW4sTXIpKX1yZXR1cm4gQ24uam9p''@;'; put 'put ''bihPbikrT24rRHQuam9pbihPbikrT24rIkUiK09ufX19KCksdmI9ZnVuY3Rpb24oKXtmdW5jdGlvbiBpZShGZSxaZSl7Zm9yKHZhciBqZT1GZS5zcGxpdCgiXG4iKSxZZT0tMSxNdD0tMSx4dD0wLFJ0PVtdO3h0IT09amUubGVuZ3RoOysreHQpaWYoIkJPVCIhPT1qZVt4dF0udHJpbSgpKXtp''@;'; put 'put ''ZighKFllPDApKXtmb3IodmFyIFV0PWplW3h0XS50cmltKCkuc3BsaXQoIiwiKSxubj1VdFswXSxDbj1VdFsxXSxEdD1qZVsrK3h0XXx8IiI7MSYoRHQubWF0Y2goL1siXS9nKXx8W10pLmxlbmd0aCYmeHQ8amUubGVuZ3RoLTE7KUR0Kz0iXG4iK2plWysreHRdO3N3aXRjaChEdD1EdC50cmlt''@;'; put 'put ''KCksK25uKXtjYXNlLTE6aWYoIkJPVCI9PT1EdCl7UnRbKytZZV09W10sTXQ9MDtjb250aW51ZX1pZigiRU9EIiE9PUR0KXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIERJRiBzcGVjaWFsIGNvbW1hbmQgIitEdCk7YnJlYWs7Y2FzZSAwOlJ0W1llXVtNdF09IlRSVUUiPT09RHR8fCJG''@;'; put 'put ''QUxTRSIhPT1EdCYmKGlzTmFOKHNyKENuKSk/aXNOYU4oWG4oQ24pLmdldERhdGUoKSk/Q246ZG4oQ24pOnNyKENuKSksKytNdDticmVhaztjYXNlIDE6KER0PShEdD1EdC5zbGljZSgxLER0Lmxlbmd0aC0xKSkucmVwbGFjZSgvIiIvZywnIicpKSYmRHQubWF0Y2goL149Ii4qIiQvKSYmKER0''@;'; put 'put ''PUR0LnNsaWNlKDIsLTEpKSxSdFtZZV1bTXQrK109IiIhPT1EdD9EdDpudWxsfWlmKCJFT0QiPT09RHQpYnJlYWt9fWVsc2UgUnRbKytZZV09W10sTXQ9MDtyZXR1cm4gWmUmJlplLnNoZWV0Um93cyYmKFJ0PVJ0LnNsaWNlKDAsWmUuc2hlZXRSb3dzKSksUnR9ZnVuY3Rpb24gWChGZSxaZSl7''@;'; put 'put ''cmV0dXJuIG1kKGZ1bmN0aW9uIEgoRmUsWmUpe3N3aXRjaChaZS50eXBlKXtjYXNlImJhc2U2NCI6cmV0dXJuIGllKFNlLmRlY29kZShGZSksWmUpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gaWUoRmUsWmUpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gaWUoRmUudG9TdHJpbmcoImJpbmFyeSIpLFplKTtj''@;'; put 'put ''YXNlImFycmF5IjpyZXR1cm4gaWUoeW4oRmUpLFplKX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIrWmUudHlwZSl9KEZlLFplKSxaZSl9dmFyIEZlLFplO3JldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiB3ZShGZSxaZSl7cmV0dXJuIHcxKFgoRmUsWmUpLFplKX0sdG9f''@;'; put 'put ''c2hlZXQ6WCxmcm9tX3NoZWV0OihGZT1mdW5jdGlvbihZZSxNdCx4dCxSdCxVdCl7WWUucHVzaChNdCksWWUucHVzaCh4dCsiLCIrUnQpLFllLnB1c2goJyInK1V0LnJlcGxhY2UoLyIvZywnIiInKSsnIicpfSxaZT1mdW5jdGlvbihZZSxNdCx4dCxSdCl7WWUucHVzaChNdCsiLCIreHQpLFll''@;'; put 'put ''LnB1c2goMT09TXQ/JyInK1J0LnJlcGxhY2UoLyIvZywnIiInKSsnIic6UnQpfSxmdW5jdGlvbihZZSl7dmFyIFJ0LE10PVtdLHh0PUZvKFllWyIhcmVmIl0pLFV0PUFycmF5LmlzQXJyYXkoWWUpO0ZlKE10LCJUQUJMRSIsMCwxLCJzaGVldGpzIiksRmUoTXQsIlZFQ1RPUlMiLDAseHQuZS5y''@;'; put 'put ''LXh0LnMucisxLCIiKSxGZShNdCwiVFVQTEVTIiwwLHh0LmUuYy14dC5zLmMrMSwiIiksRmUoTXQsIkRBVEEiLDAsMCwiIik7Zm9yKHZhciBubj14dC5zLnI7bm48PXh0LmUucjsrK25uKXtaZShNdCwtMSwwLCJCT1QiKTtmb3IodmFyIENuPXh0LnMuYztDbjw9eHQuZS5jOysrQ24pe3ZhciBE''@;'; put 'put ''dD1ZMCh7cjpubixjOkNufSk7aWYoUnQ9VXQ/KFllW25uXXx8W10pW0NuXTpZZVtEdF0pc3dpdGNoKFJ0LnQpe2Nhc2UibiI6dmFyIHp0PVJ0Lnc7IXp0JiZudWxsIT1SdC52JiYoenQ9UnQudiksbnVsbD09enQ/WmUoTXQsMSwwLFJ0LmYmJiFSdC5GPyI9IitSdC5mOiIiKTpaZShNdCwwLHp0''@;'; put 'put ''LCJWIik7YnJlYWs7Y2FzZSJiIjpaZShNdCwwLFJ0LnY/MTowLFJ0LnY/IlRSVUUiOiJGQUxTRSIpO2JyZWFrO2Nhc2UicyI6WmUoTXQsMSwwLGlzTmFOKFJ0LnYpP1J0LnY6Jz0iJytSdC52KyciJyk7YnJlYWs7Y2FzZSJkIjpSdC53fHwoUnQudz1GLmZvcm1hdChSdC56fHxGLl90YWJsZVsx''@;'; put 'put ''NF0sZnQoZG4oUnQudikpKSksWmUoTXQsMCxSdC53LCJWIik7YnJlYWs7ZGVmYXVsdDpaZShNdCwxLDAsIiIpfWVsc2UgWmUoTXQsMSwwLCIiKX19cmV0dXJuIFplKE10LC0xLDAsIkVPRCIpLE10LmpvaW4oIlxyXG4iKX0pfX0oKSxlRT1mdW5jdGlvbigpe2Z1bmN0aW9uIEgoUnQpe3JldHVy''@;'; put 'put ''biBSdC5yZXBsYWNlKC9cXGIvZywiXFwiKS5yZXBsYWNlKC9cXGMvZywiOiIpLnJlcGxhY2UoL1xcbi9nLCJcbiIpfWZ1bmN0aW9uIGllKFJ0KXtyZXR1cm4gUnQucmVwbGFjZSgvXFwvZywiXFxiIikucmVwbGFjZSgvOi9nLCJcXGMiKS5yZXBsYWNlKC9cbi9nLCJcXG4iKX1mdW5jdGlvbiB3''@;'; put 'put ''ZShSdCxVdCl7cmV0dXJuIG1kKGZ1bmN0aW9uIFgoUnQsVXQpe2Zvcih2YXIgbm49UnQuc3BsaXQoIlxuIiksQ249LTEsRHQ9LTEsenQ9MCxQbj1bXTt6dCE9PW5uLmxlbmd0aDsrK3p0KXt2YXIgVG49bm5benRdLnRyaW0oKS5zcGxpdCgiOiIpO2lmKCJjZWxsIj09PVRuWzBdKXt2YXIgT249''@;'; put 'put ''dWwoVG5bMV0pO2lmKFBuLmxlbmd0aDw9T24ucilmb3IoQ249UG4ubGVuZ3RoO0NuPD1Pbi5yOysrQ24pUG5bQ25dfHwoUG5bQ25dPVtdKTtzd2l0Y2goQ249T24ucixEdD1Pbi5jLFRuWzJdKXtjYXNlInQiOlBuW0NuXVtEdF09SChUblszXSk7YnJlYWs7Y2FzZSJ2IjpQbltDbl1bRHRdPStU''@;'; put 'put ''blszXTticmVhaztjYXNlInZ0ZiI6dmFyIFluPVRuW1RuLmxlbmd0aC0xXTtjYXNlInZ0YyI6UG5bQ25dW0R0XT0ibmwiPT09VG5bM10/ISErVG5bNF06K1RuWzRdLCJ2dGYiPT1UblsyXSYmKFBuW0NuXVtEdF09W1BuW0NuXVtEdF0sWW5dKX19fXJldHVybiBVdCYmVXQuc2hlZXRSb3dzJiYo''@;'; put 'put ''UG49UG4uc2xpY2UoMCxVdC5zaGVldFJvd3MpKSxQbn0oUnQsVXQpLFV0KX12YXIgRmU9WyJzb2NpYWxjYWxjOnZlcnNpb246MS41IiwiTUlNRS1WZXJzaW9uOiAxLjAiLCJDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9U29jaWFsQ2FsY1NwcmVhZHNoZWV0Q29udHJv''@;'; put 'put ''bFNhdmUiXS5qb2luKCJcbiIpLFplPVsiLS1Tb2NpYWxDYWxjU3ByZWFkc2hlZXRDb250cm9sU2F2ZSIsIkNvbnRlbnQtdHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOCJdLmpvaW4oIlxuIikrIlxuIixqZT1bIiMgU29jaWFsQ2FsYyBTcHJlYWRzaGVldCBDb250cm9sIFNhdmUiLCJw''@;'; put 'put ''YXJ0OnNoZWV0Il0uam9pbigiXG4iKSxZZT0iLS1Tb2NpYWxDYWxjU3ByZWFkc2hlZXRDb250cm9sU2F2ZS0tIjtmdW5jdGlvbiBNdChSdCl7aWYoIVJ0fHwhUnRbIiFyZWYiXSlyZXR1cm4iIjtmb3IodmFyIENuLFV0PVtdLG5uPVtdLER0PSIiLHp0PUFzKFJ0WyIhcmVmIl0pLFBuPUFycmF5''@;'; put 'put ''LmlzQXJyYXkoUnQpLFRuPXp0LnMucjtUbjw9enQuZS5yOysrVG4pZm9yKHZhciBPbj16dC5zLmM7T248PXp0LmUuYzsrK09uKWlmKER0PVkwKHtyOlRuLGM6T259KSwoQ249UG4/KFJ0W1RuXXx8W10pW09uXTpSdFtEdF0pJiZudWxsIT1Dbi52JiYieiIhPT1Dbi50KXtzd2l0Y2gobm49WyJj''@;'; put 'put ''ZWxsIixEdCwidCJdLENuLnQpe2Nhc2UicyI6Y2FzZSJzdHIiOm5uLnB1c2goaWUoQ24udikpO2JyZWFrO2Nhc2UibiI6Q24uZj8obm5bMl09InZ0ZiIsbm5bM109Im4iLG5uWzRdPUNuLnYsbm5bNV09aWUoQ24uZikpOihublsyXT0idiIsbm5bM109Q24udik7YnJlYWs7Y2FzZSJiIjpublsy''@;'; put 'put ''XT0idnQiKyhDbi5mPyJmIjoiYyIpLG5uWzNdPSJubCIsbm5bNF09Q24udj8iMSI6IjAiLG5uWzVdPWllKENuLmZ8fChDbi52PyJUUlVFIjoiRkFMU0UiKSk7YnJlYWs7Y2FzZSJkIjp2YXIgWW49ZnQoZG4oQ24udikpO25uWzJdPSJ2dGMiLG5uWzNdPSJuZCIsbm5bNF09IiIrWW4sbm5bNV09''@;'; put 'put ''Q24ud3x8Ri5mb3JtYXQoQ24uenx8Ri5fdGFibGVbMTRdLFluKTticmVhaztjYXNlImUiOmNvbnRpbnVlfVV0LnB1c2gobm4uam9pbigiOiIpKX1yZXR1cm4gVXQucHVzaCgic2hlZXQ6YzoiKyh6dC5lLmMtenQucy5jKzEpKyI6cjoiKyh6dC5lLnItenQucy5yKzEpKyI6dHZmOjEiKSxVdC5w''@;'; put 'put ''dXNoKCJ2YWx1ZWZvcm1hdDoxOnRleHQtd2lraSIpLFV0LmpvaW4oIlxuIil9cmV0dXJue3RvX3dvcmtib29rOmZ1bmN0aW9uIHhlKFJ0LFV0KXtyZXR1cm4gdzEod2UoUnQsVXQpLFV0KX0sdG9fc2hlZXQ6d2UsZnJvbV9zaGVldDpmdW5jdGlvbiB4dChSdCl7cmV0dXJuW0ZlLFplLGplLFpl''@;'; put 'put ''LE10KFJ0KSxZZV0uam9pbigiXG4iKX19fSgpLEEzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSCh4dCxSdCxVdCxubixDbil7Q24ucmF3P1J0W1V0XVtubl09eHQ6IiI9PT14dHx8KFJ0W1V0XVtubl09RnIoeHQsQ24pP0ZyKHh0LENuKS52Onh0KX12YXIgWD17NDQ6IiwiLDk6Ilx0Iiw1OToiOyJ9''@;'; put 'put ''LHdlPXs0NDozLDk6Miw1OToxfTtmdW5jdGlvbiB4ZSh4dCl7Zm9yKHZhciBSdD17fSxVdD0hMSxubj0wLENuPTA7bm48eHQubGVuZ3RoOysrbm4pMzQ9PShDbj14dC5jaGFyQ29kZUF0KG5uKSk/VXQ9IVV0OiFVdCYmQ24gaW4gWCYmKFJ0W0NuXT0oUnRbQ25dfHwwKSsxKTtmb3Iobm4gaW4g''@;'; put 'put ''Q249W10sUnQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFJ0LG5uKSYmQ24ucHVzaChbUnRbbm5dLG5uXSk7aWYoIUNuLmxlbmd0aClmb3Iobm4gaW4gUnQ9d2UpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKFJ0LG5uKSYmQ24ucHVzaChbUnRbbm5d''@;'; put 'put ''LG5uXSk7cmV0dXJuIENuLnNvcnQoZnVuY3Rpb24oRHQsenQpe3JldHVybiBEdFswXS16dFswXXx8d2VbRHRbMV1dLXdlW3p0WzFdXX0pLFhbQ24ucG9wKClbMV1dfWZ1bmN0aW9uIFplKHh0LFJ0KXtyZXR1cm4hUnR8fCFSdC5QUk58fCJzZXA9Ij09eHQuc2xpY2UoMCw0KXx8eHQuaW5kZXhP''@;'; put 'put ''ZigiXHQiKT49MHx8eHQuaW5kZXhPZigiLCIpPj0wfHx4dC5pbmRleE9mKCI7Iik+PTA/ZnVuY3Rpb24gRmUoeHQsUnQpe3ZhciBVdD1SdHx8e30sbm49IiIsQ249VXQuZGVuc2U/W106e30sRHQ9e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fTsic2VwPSI9PXh0LnNsaWNlKDAsNCk/MTM9PXh0''@;'; put 'put ''LmNoYXJDb2RlQXQoNSkmJjEwPT14dC5jaGFyQ29kZUF0KDYpPyhubj14dC5jaGFyQXQoNCkseHQ9eHQuc2xpY2UoNykpOjEzPT14dC5jaGFyQ29kZUF0KDUpfHwxMD09eHQuY2hhckNvZGVBdCg1KT8obm49eHQuY2hhckF0KDQpLHh0PXh0LnNsaWNlKDYpKTpubj14ZSh4dC5zbGljZSgwLDEw''@;'; put 'put ''MjQpKTpubj14ZSh4dC5zbGljZSgwLDEwMjQpKTt2YXIgenQ9MCxQbj0wLFRuPTAsT249MCxZbj0wLE1yPW5uLmNoYXJDb2RlQXQoMCksYWk9ITEseXI9MCxhcj14dC5jaGFyQ29kZUF0KDApO3h0PXh0LnJlcGxhY2UoL1xyXG4vZ20sIlxuIik7dmFyIEdyPW51bGwhPVV0LmRhdGVORj9mdW5j''@;'; put 'put ''dGlvbiBRZShIKXt2YXIgaWU9Im51bWJlciI9PXR5cGVvZiBIP0YuX3RhYmxlW0hdOkg7cmV0dXJuIGllPWllLnJlcGxhY2UoUGUsIihcXGQrKSIpLG5ldyBSZWdFeHAoIl4iK2llKyIkIil9KFV0LmRhdGVORik6bnVsbDtmdW5jdGlvbiB6cigpe3ZhciBxcj14dC5zbGljZShPbixZbiksb2k9''@;'; put 'put ''e307aWYoJyInPT1xci5jaGFyQXQoMCkmJiciJz09cXIuY2hhckF0KHFyLmxlbmd0aC0xKSYmKHFyPXFyLnNsaWNlKDEsLTEpLnJlcGxhY2UoLyIiL2csJyInKSksMD09PXFyLmxlbmd0aClvaS50PSJ6IjtlbHNlIGlmKFV0LnJhdylvaS50PSJzIixvaS52PXFyO2Vsc2UgaWYoMD09PXFyLnRy''@;'; put 'put ''aW0oKS5sZW5ndGgpb2kudD0icyIsb2kudj1xcjtlbHNlIGlmKDYxPT1xci5jaGFyQ29kZUF0KDApKTM0PT1xci5jaGFyQ29kZUF0KDEpJiYzND09cXIuY2hhckNvZGVBdChxci5sZW5ndGgtMSk/KG9pLnQ9InMiLG9pLnY9cXIuc2xpY2UoMiwtMSkucmVwbGFjZSgvIiIvZywnIicpKTpmdW5j''@;'; put 'put ''dGlvbiB4ZChIKXtyZXR1cm4gMSE9SC5sZW5ndGh9KHFyKT8ob2kudD0ibiIsb2kuZj1xci5zbGljZSgxKSk6KG9pLnQ9InMiLG9pLnY9cXIpO2Vsc2UgaWYoIlRSVUUiPT1xcilvaS50PSJiIixvaS52PSEwO2Vsc2UgaWYoIkZBTFNFIj09cXIpb2kudD0iYiIsb2kudj0hMTtlbHNlIGlmKGlz''@;'; put 'put ''TmFOKFRuPXNyKHFyKSkpaWYoIWlzTmFOKFhuKHFyKS5nZXREYXRlKCkpfHxHciYmcXIubWF0Y2goR3IpKXtvaS56PVV0LmRhdGVORnx8Ri5fdGFibGVbMTRdO3ZhciBjcj0wO0dyJiZxci5tYXRjaChHcikmJihxcj1mdW5jdGlvbiAkZShILGllLFgpe3ZhciB3ZT0tMSx4ZT0tMSxGZT0tMSxa''@;'; put 'put ''ZT0tMSxqZT0tMSxZZT0tMTsoaWUubWF0Y2goUGUpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihSdCxVdCl7dmFyIG5uPXBhcnNlSW50KFhbVXQrMV0sMTApO3N3aXRjaChSdC50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKSl7Y2FzZSJ5Ijp3ZT1ubjticmVhaztjYXNlImQiOkZlPW5uO2JyZWFrO2Nh''@;'; put 'put ''c2UiaCI6WmU9bm47YnJlYWs7Y2FzZSJzIjpZZT1ubjticmVhaztjYXNlIm0iOlplPj0wP2plPW5uOnhlPW5ufX0pLFllPj0wJiYtMT09amUmJnhlPj0wJiYoamU9eGUseGU9LTEpO3ZhciBNdD0oIiIrKHdlPj0wP3dlOihuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSkpLnNsaWNlKC00KSsiLSIr''@;'; put 'put ''KCIwMCIrKHhlPj0xP3hlOjEpKS5zbGljZSgtMikrIi0iKygiMDAiKyhGZT49MT9GZToxKSkuc2xpY2UoLTIpOzc9PU10Lmxlbmd0aCYmKE10PSIwIitNdCksOD09TXQubGVuZ3RoJiYoTXQ9IjIwIitNdCk7dmFyIHh0PSgiMDAiKyhaZT49MD9aZTowKSkuc2xpY2UoLTIpKyI6IisoIjAwIiso''@;'; put 'put ''amU+PTA/amU6MCkpLnNsaWNlKC0yKSsiOiIrKCIwMCIrKFllPj0wP1llOjApKS5zbGljZSgtMik7cmV0dXJuLTE9PVplJiYtMT09amUmJi0xPT1ZZT9NdDotMT09d2UmJi0xPT14ZSYmLTE9PUZlP3h0Ok10KyJUIit4dH0oMCxVdC5kYXRlTkYscXIubWF0Y2goR3IpfHxbXSksY3I9MSksVXQu''@;'; put 'put ''Y2VsbERhdGVzPyhvaS50PSJkIixvaS52PWRuKHFyLGNyKSk6KG9pLnQ9Im4iLG9pLnY9ZnQoZG4ocXIsY3IpKSksITEhPT1VdC5jZWxsVGV4dCYmKG9pLnc9Ri5mb3JtYXQob2kueixvaS52IGluc3RhbmNlb2YgRGF0ZT9mdChvaS52KTpvaS52KSksVXQuY2VsbE5GfHxkZWxldGUgb2kuen1l''@;'; put 'put ''bHNlIG9pLnQ9InMiLG9pLnY9cXI7ZWxzZSBvaS50PSJuIiwhMSE9PVV0LmNlbGxUZXh0JiYob2kudz1xciksb2kudj1UbjtpZigieiI9PW9pLnR8fChVdC5kZW5zZT8oQ25benRdfHwoQ25benRdPVtdKSxDblt6dF1bUG5dPW9pKTpDbltZMCh7YzpQbixyOnp0fSldPW9pKSxhcj14dC5jaGFy''@;'; put 'put ''Q29kZUF0KE9uPVluKzEpLER0LmUuYzxQbiYmKER0LmUuYz1QbiksRHQuZS5yPHp0JiYoRHQuZS5yPXp0KSx5cj09TXIpKytQbjtlbHNlIGlmKFBuPTAsKyt6dCxVdC5zaGVldFJvd3MmJlV0LnNoZWV0Um93czw9enQpcmV0dXJuITB9ZTpmb3IoO1luPHh0Lmxlbmd0aDsrK1luKXN3aXRjaCh5''@;'; put 'put ''cj14dC5jaGFyQ29kZUF0KFluKSl7Y2FzZSAzNDozND09PWFyJiYoYWk9IWFpKTticmVhaztjYXNlIE1yOmNhc2UgMTA6Y2FzZSAxMzppZighYWkmJnpyKCkpYnJlYWsgZX1yZXR1cm4gWW4tT24+MCYmenIoKSxDblsiIXJlZiJdPWZhKER0KSxDbn0oeHQsUnQpOm1kKGZ1bmN0aW9uIGllKHh0''@;'; put 'put ''LFJ0KXt2YXIgVXQ9UnR8fHt9LG5uPVtdO2lmKCF4dHx8MD09PXh0Lmxlbmd0aClyZXR1cm4gbm47Zm9yKHZhciBDbj14dC5zcGxpdCgvW1xyXG5dLyksRHQ9Q24ubGVuZ3RoLTE7RHQ+PTAmJjA9PT1DbltEdF0ubGVuZ3RoOyktLUR0O2Zvcih2YXIgenQ9MTAsUG49MCxUbj0wO1RuPD1EdDsr''@;'; put 'put ''K1RuKS0xPT0oUG49Q25bVG5dLmluZGV4T2YoIiAiKSk/UG49Q25bVG5dLmxlbmd0aDpQbisrLHp0PU1hdGgubWF4KHp0LFBuKTtmb3IoVG49MDtUbjw9RHQ7KytUbil7bm5bVG5dPVtdO3ZhciBPbj0wO2ZvcihIKENuW1RuXS5zbGljZSgwLHp0KS50cmltKCksbm4sVG4sT24sVXQpLE9uPTE7''@;'; put 'put ''T248PShDbltUbl0ubGVuZ3RoLXp0KS8xMCsxOysrT24pSChDbltUbl0uc2xpY2UoenQrMTAqKE9uLTEpLHp0KzEwKk9uKS50cmltKCksbm4sVG4sT24sVXQpfXJldHVybiBVdC5zaGVldFJvd3MmJihubj1ubi5zbGljZSgwLFV0LnNoZWV0Um93cykpLG5ufSh4dCxSdCksUnQpfWZ1bmN0aW9u''@;'; put 'put ''IGplKHh0LFJ0KXt2YXIgVXQ9IiIsbm49InN0cmluZyI9PVJ0LnR5cGU/WzAsMCwwLDBdOmZDKHh0LFJ0KTtzd2l0Y2goUnQudHlwZSl7Y2FzZSJiYXNlNjQiOlV0PVNlLmRlY29kZSh4dCk7YnJlYWs7Y2FzZSJiaW5hcnkiOmNhc2Uic3RyaW5nIjpVdD14dDticmVhaztjYXNlImJ1ZmZlciI6''@;'; put 'put ''VXQ9NjUwMDE9PVJ0LmNvZGVwYWdlP3h0LnRvU3RyaW5nKCJ1dGY4Iik6UnQuY29kZXBhZ2UmJiJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZT9jcHRhYmxlLnV0aWxzLmRlY29kZShSdC5jb2RlcGFnZSx4dCk6eHQudG9TdHJpbmcoImJpbmFyeSIpO2JyZWFrO2Nhc2UiYXJyYXkiOlV0PXlu''@;'; put 'put ''KHh0KTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitSdC50eXBlKX1yZXR1cm4gMjM5PT1ublswXSYmMTg3PT1ublsxXSYmMTkxPT1ublsyXT9VdD1XMChVdC5zbGljZSgzKSk6ImJpbmFyeSI9PVJ0LnR5cGUmJiJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; put 'put ''Y3B0YWJsZSYmUnQuY29kZXBhZ2UmJihVdD1jcHRhYmxlLnV0aWxzLmRlY29kZShSdC5jb2RlcGFnZSxjcHRhYmxlLnV0aWxzLmVuY29kZSgyODU5MSxVdCkpKSwic29jaWFsY2FsYzp2ZXJzaW9uOiI9PVV0LnNsaWNlKDAsMTkpP2VFLnRvX3NoZWV0KCJzdHJpbmciPT1SdC50eXBlP1V0Olcw''@;'; put 'put ''KFV0KSxSdCk6WmUoVXQsUnQpfXJldHVybnt0b193b3JrYm9vazpmdW5jdGlvbiBZZSh4dCxSdCl7cmV0dXJuIHcxKGplKHh0LFJ0KSxSdCl9LHRvX3NoZWV0OmplLGZyb21fc2hlZXQ6ZnVuY3Rpb24gTXQoeHQpe2Zvcih2YXIgbm4sUnQ9W10sVXQ9Rm8oeHRbIiFyZWYiXSksQ249QXJyYXku''@;'; put 'put ''aXNBcnJheSh4dCksRHQ9VXQucy5yO0R0PD1VdC5lLnI7KytEdCl7Zm9yKHZhciB6dD1bXSxQbj1VdC5zLmM7UG48PVV0LmUuYzsrK1BuKXt2YXIgVG49WTAoe3I6RHQsYzpQbn0pO2lmKChubj1Dbj8oeHRbRHRdfHxbXSlbUG5dOnh0W1RuXSkmJm51bGwhPW5uLnYpe2Zvcih2YXIgT249KG5u''@;'; put 'put ''Lnd8fCh5MShubiksbm4udyl8fCIiKS5zbGljZSgwLDEwKTtPbi5sZW5ndGg8MTA7KU9uKz0iICI7enQucHVzaChPbisoMD09PVBuPyIgIjoiIikpfWVsc2UgenQucHVzaCgiICAgICAgICAgICIpfVJ0LnB1c2goenQuam9pbigiIikpfXJldHVybiBSdC5qb2luKCJcbiIpfX19KCksRzE9ZnVu''@;'; put 'put ''Y3Rpb24oKXtmdW5jdGlvbiBIKFlyLEVpLGhpKXtpZihZcil7S2woWXIsWXIubHx8MCk7Zm9yKHZhciBOcj1oaS5FbnVtfHxBMDtZci5sPFlyLmxlbmd0aDspe3ZhciBraT1Zci5yZWFkX3NoaWZ0KDIpLE4wPU5yW2tpXXx8TnJbNjU1MzVdLHQwPVlyLnJlYWRfc2hpZnQoMiksaW89WXIubCt0''@;'; put 'put ''MCxvYT1OMC5mJiZOMC5mKFlyLHQwLGhpKTtpZihZci5sPWlvLEVpKG9hLE4wLGtpKSlyZXR1cm59fX1mdW5jdGlvbiBYKFlyLEVpKXtpZighWXIpcmV0dXJuIFlyO3ZhciBoaT1FaXx8e30sTnI9aGkuZGVuc2U/W106e30sa2k9IlNoZWV0MSIsTjA9MCx0MD17fSxpbz1ba2ldLG9hPVtdLCQw''@;'; put 'put ''PXtzOntyOjAsYzowfSxlOntyOjAsYzowfX0sVmE9aGkuc2hlZXRSb3dzfHwwO2lmKDI9PVlyWzJdKWhpLkVudW09QTAsSChZcixmdW5jdGlvbih4MCxoMCxqcil7c3dpdGNoKGpyKXtjYXNlIDA6aGkudmVycz14MCx4MD49NDA5NiYmKGhpLnFwcm89ITApO2JyZWFrO2Nhc2UgNjokMD14MDti''@;'; put 'put ''cmVhaztjYXNlIDE1OmNhc2UgNTE6aGkucXByb3x8KHgwWzFdLnY9eDBbMV0udi5zbGljZSgxKSk7Y2FzZSAxMzpjYXNlIDE0OmNhc2UgMTY6MTQ9PWpyJiYxMTI9PSgxMTImeDBbMl0pJiYoMTUmeDBbMl0pPjEmJigxNSZ4MFsyXSk8MTUmJih4MFsxXS56PWhpLmRhdGVORnx8Ri5fdGFibGVb''@;'; put 'put ''MTRdLGhpLmNlbGxEYXRlcyYmKHgwWzFdLnQ9ImQiLHgwWzFdLnY9SHQoeDBbMV0udikpKTt2YXIgSGk9aGkuZGVuc2U/KE5yW3gwWzBdLnJdfHxbXSlbeDBbMF0uY106TnJbWTAoeDBbMF0pXTtpZihIaSl7SGkudD14MFsxXS50LEhpLnY9eDBbMV0udixudWxsIT14MFsxXS56JiYoSGkuej14''@;'; put 'put ''MFsxXS56KSxudWxsIT14MFsxXS5mJiYoSGkuZj14MFsxXS5mKTticmVha31oaS5kZW5zZT8oTnJbeDBbMF0ucl18fChOclt4MFswXS5yXT1bXSksTnJbeDBbMF0ucl1beDBbMF0uY109eDBbMV0pOk5yW1kwKHgwWzBdKV09eDBbMV19fSxoaSk7ZWxzZXtpZigyNiE9WXJbMl0mJjE0IT1Zclsy''@;'; put 'put ''XSl0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBMT1RVUyBCT0YgIitZclsyXSk7aGkuRW51bT1iaSwxND09WXJbMl0mJihoaS5xcHJvPSEwLFlyLmw9MCksSChZcixmdW5jdGlvbih4MCxoMCxqcil7c3dpdGNoKGpyKXtjYXNlIDIyOngwWzFdLnY9eDBbMV0udi5zbGljZSgxKTtjYXNl''@;'; put 'put ''IDIzOmNhc2UgMjQ6Y2FzZSAyNTpjYXNlIDM3OmNhc2UgMzk6Y2FzZSA0MDppZih4MFszXT5OMCYmKE5yWyIhcmVmIl09ZmEoJDApLHQwW2tpXT1OcixOcj1oaS5kZW5zZT9bXTp7fSwkMD17czp7cjowLGM6MH0sZTp7cjowLGM6MH19LGlvLnB1c2goa2k9IlNoZWV0IisoKE4wPXgwWzNdKSsx''@;'; put 'put ''KSkpLFZhPjAmJngwWzBdLnI+PVZhKWJyZWFrO2hpLmRlbnNlPyhOclt4MFswXS5yXXx8KE5yW3gwWzBdLnJdPVtdKSxOclt4MFswXS5yXVt4MFswXS5jXT14MFsxXSk6TnJbWTAoeDBbMF0pXT14MFsxXSwkMC5lLmM8eDBbMF0uYyYmKCQwLmUuYz14MFswXS5jKSwkMC5lLnI8eDBbMF0uciYm''@;'; put 'put ''KCQwLmUucj14MFswXS5yKTticmVhaztjYXNlIDI3OngwWzE0ZTNdJiYob2FbeDBbMTRlM11bMF1dPXgwWzE0ZTNdWzFdKX19LGhpKX1pZihOclsiIXJlZiJdPWZhKCQwKSx0MFtraV09TnIsIW9hLmxlbmd0aClyZXR1cm57U2hlZXROYW1lczppbyxTaGVldHM6dDB9O2Zvcih2YXIgam89e30s''@;'; put 'put ''d2E9W10sYW89MDthbzxvYS5sZW5ndGg7Kythbyl0MFtpb1thb11dJiYod2EucHVzaChvYVthb10pLGpvW29hW2FvXV09dDBbaW9bYW9dXSk7cmV0dXJue1NoZWV0TmFtZXM6d2EsU2hlZXRzOmpvfX1mdW5jdGlvbiBNdChZcixFaSxoaSl7dmFyIE5yPVt7YzowLHI6MH0se3Q6Im4iLHY6MH0s''@;'; put 'put ''MF07cmV0dXJuIGhpLnFwcm8mJjIwNzY4IT1oaS52ZXJzPyhOclswXS5jPVlyLnJlYWRfc2hpZnQoMSksWXIubCsrLE5yWzBdLnI9WXIucmVhZF9zaGlmdCgyKSxZci5sKz0yKTooTnJbMl09WXIucmVhZF9zaGlmdCgxKSxOclswXS5jPVlyLnJlYWRfc2hpZnQoMiksTnJbMF0ucj1Zci5yZWFk''@;'; put 'put ''X3NoaWZ0KDIpKSxOcn1mdW5jdGlvbiB4dChZcixFaSxoaSl7dmFyIE5yPVlyLmwrRWksa2k9TXQoWXIsMCxoaSk7aWYoa2lbMV0udD0icyIsMjA3Njg9PWhpLnZlcnMpe1lyLmwrKzt2YXIgTjA9WXIucmVhZF9zaGlmdCgxKTtyZXR1cm4ga2lbMV0udj1Zci5yZWFkX3NoaWZ0KE4wLCJ1dGY4''@;'; put 'put ''Iiksa2l9cmV0dXJuIGhpLnFwcm8mJllyLmwrKyxraVsxXS52PVlyLnJlYWRfc2hpZnQoTnItWXIubCwiY3N0ciIpLGtpfWZ1bmN0aW9uIFJ0KFlyLEVpLGhpKXt2YXIgTnI9UmkoNytoaS5sZW5ndGgpO05yLndyaXRlX3NoaWZ0KDEsMjU1KSxOci53cml0ZV9zaGlmdCgyLEVpKSxOci53cml0''@;'; put 'put ''ZV9zaGlmdCgyLFlyKSxOci53cml0ZV9zaGlmdCgxLDM5KTtmb3IodmFyIGtpPTA7a2k8TnIubGVuZ3RoOysra2kpe3ZhciBOMD1oaS5jaGFyQ29kZUF0KGtpKTtOci53cml0ZV9zaGlmdCgxLE4wPj0xMjg/OTU6TjApfXJldHVybiBOci53cml0ZV9zaGlmdCgxLDApLE5yfWZ1bmN0aW9uIG5u''@;'; put 'put ''KFlyLEVpLGhpKXt2YXIgTnI9UmkoNyk7cmV0dXJuIE5yLndyaXRlX3NoaWZ0KDEsMjU1KSxOci53cml0ZV9zaGlmdCgyLEVpKSxOci53cml0ZV9zaGlmdCgyLFlyKSxOci53cml0ZV9zaGlmdCgyLGhpLCJpIiksTnJ9ZnVuY3Rpb24gRHQoWXIsRWksaGkpe3ZhciBOcj1SaSgxMyk7cmV0dXJu''@;'; put 'put ''IE5yLndyaXRlX3NoaWZ0KDEsMjU1KSxOci53cml0ZV9zaGlmdCgyLEVpKSxOci53cml0ZV9zaGlmdCgyLFlyKSxOci53cml0ZV9zaGlmdCg4LGhpLCJmIiksTnJ9ZnVuY3Rpb24gUG4oWXIsRWksaGkpe3ZhciBOcj0zMjc2OCZFaTtyZXR1cm4gRWk9KE5yP1lyOjApKygoRWkmPS0zMjc2OSk+''@;'; put 'put ''PTgxOTI/RWktMTYzODQ6RWkpLChOcj8iIjoiJCIpKyhoaT9fYShFaSk6WGEoRWkpKX12YXIgT249ezUxOlsiRkFMU0UiLDBdLDUyOlsiVFJVRSIsMF0sNzA6WyJMRU4iLDFdLDgwOlsiU1VNIiw2OV0sODE6WyJBVkVSQUdFQSIsNjldLDgyOlsiQ09VTlRBIiw2OV0sODM6WyJNSU5BIiw2OV0s''@;'; put 'put ''ODQ6WyJNQVhBIiw2OV0sMTExOlsiVCIsMV19LFluPVsiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiKyIsIi0iLCIqIiwiLyIsIl4iLCI9IiwiPD4iLCI8PSIsIj49IiwiPCIsIj4iLCIiLCIiLCIiLCIiLCImIiwiIiwiIiwiIiwiIiwiIiwiIiwiIl07ZnVuY3Rpb24gYWkoWXIpe3ZhciBF''@;'; put 'put ''aT1be2M6MCxyOjB9LHt0OiJuIix2OjB9LDBdO3JldHVybiBFaVswXS5yPVlyLnJlYWRfc2hpZnQoMiksRWlbM109WXJbWXIubCsrXSxFaVswXS5jPVlyW1lyLmwrK10sRWl9ZnVuY3Rpb24gYXIoWXIsRWksaGksTnIpe3ZhciBraT1SaSg2K05yLmxlbmd0aCk7a2kud3JpdGVfc2hpZnQoMixZ''@;'; put 'put ''ciksa2kud3JpdGVfc2hpZnQoMSxoaSksa2kud3JpdGVfc2hpZnQoMSxFaSksa2kud3JpdGVfc2hpZnQoMSwzOSk7Zm9yKHZhciBOMD0wO04wPE5yLmxlbmd0aDsrK04wKXt2YXIgdDA9TnIuY2hhckNvZGVBdChOMCk7a2kud3JpdGVfc2hpZnQoMSx0MD49MTI4Pzk1OnQwKX1yZXR1cm4ga2ku''@;'; put 'put ''d3JpdGVfc2hpZnQoMSwwKSxraX1mdW5jdGlvbiB6cihZcixFaSl7dmFyIGhpPWFpKFlyKSxOcj1Zci5yZWFkX3NoaWZ0KDQpLGtpPVlyLnJlYWRfc2hpZnQoNCksTjA9WXIucmVhZF9zaGlmdCgyKTtpZig2NTUzNT09TjApcmV0dXJuIDA9PT1OciYmMzIyMTIyNTQ3Mj09PWtpPyhoaVsxXS50''@;'; put 'put ''PSJlIixoaVsxXS52PTE1KTowPT09TnImJjM0ODk2NjA5Mjg9PT1raT8oaGlbMV0udD0iZSIsaGlbMV0udj00Mik6aGlbMV0udj0wLGhpO3ZhciB0MD0zMjc2OCZOMDtyZXR1cm4gTjA9KDMyNzY3Jk4wKS0xNjQ0NixoaVsxXS52PSgxLTIqdDApKihraSpNYXRoLnBvdygyLE4wKzMyKStOcipN''@;'; put 'put ''YXRoLnBvdygyLE4wKSksaGl9ZnVuY3Rpb24gcXIoWXIsRWksaGksTnIpe3ZhciBraT1SaSgxNCk7aWYoa2kud3JpdGVfc2hpZnQoMixZciksa2kud3JpdGVfc2hpZnQoMSxoaSksa2kud3JpdGVfc2hpZnQoMSxFaSksMD09TnIpcmV0dXJuIGtpLndyaXRlX3NoaWZ0KDQsMCksa2kud3JpdGVf''@;'; put 'put ''c2hpZnQoNCwwKSxraS53cml0ZV9zaGlmdCgyLDY1NTM1KSxraTt2YXIgTjA9MCx0MD0wLG9hPTA7cmV0dXJuIE5yPDAmJihOMD0xLE5yPS1OciksdDA9MHxNYXRoLmxvZzIoTnIpLDA9PSgyMTQ3NDgzNjQ4JihvYT0oTnIvPU1hdGgucG93KDIsdDAtMzEpKT4+PjApKSYmKCsrdDAsb2E9KE5y''@;'; put 'put ''Lz0yKT4+PjApLE5yLT1vYSxvYXw9MjE0NzQ4MzY0OCxvYT4+Pj0wLE5yKj1NYXRoLnBvdygyLDMyKSxraS53cml0ZV9zaGlmdCg0LE5yPj4+MCksa2kud3JpdGVfc2hpZnQoNCxvYSksa2kud3JpdGVfc2hpZnQoMix0MCs9MTYzODMrKE4wPzMyNzY4OjApKSxraX1mdW5jdGlvbiBkaShZcixF''@;'; put 'put ''aSl7dmFyIGhpPWFpKFlyKSxOcj1Zci5yZWFkX3NoaWZ0KDgsImYiKTtyZXR1cm4gaGlbMV0udj1OcixoaX1mdW5jdGlvbiB0byhZcixFaSl7dmFyIGhpPVJpKDUrWXIubGVuZ3RoKTtoaS53cml0ZV9zaGlmdCgyLDE0ZTMpLGhpLndyaXRlX3NoaWZ0KDIsRWkpO2Zvcih2YXIgTnI9MDtOcjxZ''@;'; put 'put ''ci5sZW5ndGg7KytOcil7dmFyIGtpPVlyLmNoYXJDb2RlQXQoTnIpO2hpW2hpLmwrK109a2k+MTI3Pzk1OmtpfXJldHVybiBoaVtoaS5sKytdPTAsaGl9dmFyIEEwPXswOntuOiJCT0YiLGY6YzF9LDE6e246IkVPRiJ9LDI6e246IkNBTENNT0RFIn0sMzp7bjoiQ0FMQ09SREVSIn0sNDp7bjoi''@;'; put 'put ''U1BMSVQifSw1OntuOiJTWU5DIn0sNjp7bjoiUkFOR0UiLGY6ZnVuY3Rpb24gamUoWXIpe3ZhciBFaT17czp7YzowLHI6MH0sZTp7YzowLHI6MH19O3JldHVybiBFaS5zLmM9WXIucmVhZF9zaGlmdCgyKSxFaS5zLnI9WXIucmVhZF9zaGlmdCgyKSxFaS5lLmM9WXIucmVhZF9zaGlmdCgyKSxF''@;'; put 'put ''aS5lLnI9WXIucmVhZF9zaGlmdCgyKSw2NTUzNT09RWkucy5jJiYoRWkucy5jPUVpLmUuYz1FaS5zLnI9RWkuZS5yPTApLEVpfX0sNzp7bjoiV0lORE9XMSJ9LDg6e246IkNPTFcxIn0sOTp7bjoiV0lOVFdPIn0sMTA6e246IkNPTFcyIn0sMTE6e246Ik5BTUUifSwxMjp7bjoiQkxBTksifSwx''@;'; put 'put ''Mzp7bjoiSU5URUdFUiIsZjpmdW5jdGlvbiBVdChZcixFaSxoaSl7dmFyIE5yPU10KFlyLDAsaGkpO3JldHVybiBOclsxXS52PVlyLnJlYWRfc2hpZnQoMiwiaSIpLE5yfX0sMTQ6e246Ik5VTUJFUiIsZjpmdW5jdGlvbiBDbihZcixFaSxoaSl7dmFyIE5yPU10KFlyLDAsaGkpO3JldHVybiBO''@;'; put 'put ''clsxXS52PVlyLnJlYWRfc2hpZnQoOCwiZiIpLE5yfX0sMTU6e246IkxBQkVMIixmOnh0fSwxNjp7bjoiRk9STVVMQSIsZjpmdW5jdGlvbiB6dChZcixFaSxoaSl7dmFyIE5yPVlyLmwrRWksa2k9TXQoWXIsMCxoaSk7aWYoa2lbMV0udj1Zci5yZWFkX3NoaWZ0KDgsImYiKSxoaS5xcHJvKVly''@;'; put 'put ''Lmw9TnI7ZWxzZXt2YXIgTjA9WXIucmVhZF9zaGlmdCgyKTsoZnVuY3Rpb24gTXIoWXIsRWkpe0tsKFlyLDApO2Zvcih2YXIgaGk9W10sTnI9MCxraT0iIixOMD0iIjtZci5sPFlyLmxlbmd0aDspe3ZhciB0MD1ZcltZci5sKytdO3N3aXRjaCh0MCl7Y2FzZSAwOmhpLnB1c2goWXIucmVhZF9z''@;'; put 'put ''aGlmdCg4LCJmIikpO2JyZWFrO2Nhc2UgMTpOMD1QbihFaVswXS5jLFlyLnJlYWRfc2hpZnQoMiksITApLGtpPVBuKEVpWzBdLnIsWXIucmVhZF9zaGlmdCgyKSwhMSksaGkucHVzaChOMCtraSk7YnJlYWs7Y2FzZSAyOnZhciBpbz1QbihFaVswXS5jLFlyLnJlYWRfc2hpZnQoMiksITApLG9h''@;'; put 'put ''PVBuKEVpWzBdLnIsWXIucmVhZF9zaGlmdCgyKSwhMSk7TjA9UG4oRWlbMF0uYyxZci5yZWFkX3NoaWZ0KDIpLCEwKSxraT1QbihFaVswXS5yLFlyLnJlYWRfc2hpZnQoMiksITEpLGhpLnB1c2goaW8rb2ErIjoiK04wK2tpKTticmVhaztjYXNlIDM6aWYoWXIubDxZci5sZW5ndGgpcmV0dXJu''@;'; put 'put ''IHZvaWQgY29uc29sZS5lcnJvcigiV0sxIHByZW1hdHVyZSBmb3JtdWxhIGVuZCIpO2JyZWFrO2Nhc2UgNDpoaS5wdXNoKCIoIitoaS5wb3AoKSsiKSIpO2JyZWFrO2Nhc2UgNTpoaS5wdXNoKFlyLnJlYWRfc2hpZnQoMikpO2JyZWFrO2Nhc2UgNjpmb3IodmFyICQwPSIiO3QwPVlyW1lyLmwr''@;'; put 'put ''K107KSQwKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHQwKTtoaS5wdXNoKCciJyskMC5yZXBsYWNlKC8iL2csJyIiJykrJyInKTticmVhaztjYXNlIDg6aGkucHVzaCgiLSIraGkucG9wKCkpO2JyZWFrO2Nhc2UgMjM6aGkucHVzaCgiKyIraGkucG9wKCkpO2JyZWFrO2Nhc2UgMjI6aGkucHVzaCgi''@;'; put 'put ''Tk9UKCIraGkucG9wKCkrIikiKTticmVhaztjYXNlIDIwOmNhc2UgMjE6dmFyIFZhPWhpLnBvcCgpLGpvPWhpLnBvcCgpO2hpLnB1c2goWyJBTkQiLCJPUiJdW3QwLTIwXSsiKCIram8rIiwiK1ZhKyIpIik7YnJlYWs7ZGVmYXVsdDppZih0MDwzMiYmWW5bdDBdKVZhPWhpLnBvcCgpLGpvPWhp''@;'; put 'put ''LnBvcCgpLGhpLnB1c2goam8rWW5bdDBdK1ZhKTtlbHNle2lmKCFPblt0MF0pcmV0dXJuIHQwPD03P2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK3QwLnRvU3RyaW5nKDE2KSk6dDA8PTI0P2NvbnNvbGUuZXJyb3IoIldLMSB1bnN1cHBvcnRlZCBvcCAiK3QwLnRvU3RyaW5n''@;'; put 'put ''KDE2KSk6dDA8PTMwP2NvbnNvbGUuZXJyb3IoIldLMSBpbnZhbGlkIG9wY29kZSAiK3QwLnRvU3RyaW5nKDE2KSk6dDA8PTExNT9jb25zb2xlLmVycm9yKCJXSzEgdW5zdXBwb3J0ZWQgZnVuY3Rpb24gb3Bjb2RlICIrdDAudG9TdHJpbmcoMTYpKTpjb25zb2xlLmVycm9yKCJXSzEgdW5yZWNv''@;'; put 'put ''Z25pemVkIG9wY29kZSAiK3QwLnRvU3RyaW5nKDE2KSk7aWYoNjk9PShOcj1Pblt0MF1bMV0pJiYoTnI9WXJbWXIubCsrXSksTnI+aGkubGVuZ3RoKXJldHVybiB2b2lkIGNvbnNvbGUuZXJyb3IoIldLMSBiYWQgZm9ybXVsYSBwYXJzZSAweCIrdDAudG9TdHJpbmcoMTYpKyI6fCIraGkuam9p''@;'; put 'put ''bigifCIpKyJ8Iik7dmFyIHdhPWhpLnNsaWNlKC1Ocik7aGkubGVuZ3RoLT1OcixoaS5wdXNoKE9uW3QwXVswXSsiKCIrd2Euam9pbigiLCIpKyIpIil9fX0xPT1oaS5sZW5ndGg/RWlbMV0uZj0iIitoaVswXTpjb25zb2xlLmVycm9yKCJXSzEgYmFkIGZvcm11bGEgcGFyc2UgfCIraGkuam9p''@;'; put 'put ''bigifCIpKyJ8Iil9KShZci5zbGljZShZci5sLFlyLmwrTjApLGtpKSxZci5sKz1OMH1yZXR1cm4ga2l9fSwyNDp7bjoiVEFCTEUifSwyNTp7bjoiT1JBTkdFIn0sMjY6e246IlBSQU5HRSJ9LDI3OntuOiJTUkFOR0UifSwyODp7bjoiRlJBTkdFIn0sMjk6e246IktSQU5HRTEifSwzMjp7bjoi''@;'; put 'put ''SFJBTkdFIn0sMzU6e246IktSQU5HRTIifSwzNjp7bjoiUFJPVEVDIn0sMzc6e246IkZPT1RFUiJ9LDM4OntuOiJIRUFERVIifSwzOTp7bjoiU0VUVVAifSw0MDp7bjoiTUFSR0lOUyJ9LDQxOntuOiJMQUJFTEZNVCJ9LDQyOntuOiJUSVRMRVMifSw0Mzp7bjoiU0hFRVRKUyJ9LDQ1OntuOiJH''@;'; put 'put ''UkFQSCJ9LDQ2OntuOiJOR1JBUEgifSw0Nzp7bjoiQ0FMQ0NPVU5UIn0sNDg6e246IlVORk9STUFUVEVEIn0sNDk6e246IkNVUlNPUlcxMiJ9LDUwOntuOiJXSU5ET1cifSw1MTp7bjoiU1RSSU5HIixmOnh0fSw1NTp7bjoiUEFTU1dPUkQifSw1Njp7bjoiTE9DS0VEIn0sNjA6e246IlFVRVJZ''@;'; put 'put ''In0sNjE6e246IlFVRVJZTkFNRSJ9LDYyOntuOiJQUklOVCJ9LDYzOntuOiJQUklOVE5BTUUifSw2NDp7bjoiR1JBUEgyIn0sNjU6e246IkdSQVBITkFNRSJ9LDY2OntuOiJaT09NIn0sNjc6e246IlNZTVNQTElUIn0sNjg6e246Ik5TUk9XUyJ9LDY5OntuOiJOU0NPTFMifSw3MDp7bjoiUlVM''@;'; put 'put ''RVIifSw3MTp7bjoiTk5BTUUifSw3Mjp7bjoiQUNPTU0ifSw3Mzp7bjoiQU1BQ1JPIn0sNzQ6e246IlBBUlNFIn0sMTAyOntuOiJQUkFOR0VTPz8ifSwxMDM6e246IlJSQU5HRVM/PyJ9LDEwNDp7bjoiRk5BTUU/PyJ9LDEwNTp7bjoiTVJBTkdFUz8/In0sNjU1MzU6e246IiJ9fSxiaT17MDp7''@;'; put 'put ''bjoiQk9GIn0sMTp7bjoiRU9GIn0sMjp7bjoiUEFTU1dPUkQifSwzOntuOiJDQUxDU0VUIn0sNDp7bjoiV0lORE9XU0VUIn0sNTp7bjoiU0hFRVRDRUxMUFRSIn0sNjp7bjoiU0hFRVRMQVlPVVQifSw3OntuOiJDT0xVTU5XSURUSCJ9LDg6e246IkhJRERFTkNPTFVNTiJ9LDk6e246IlVTRVJS''@;'; put 'put ''QU5HRSJ9LDEwOntuOiJTWVNURU1SQU5HRSJ9LDExOntuOiJaRVJPRk9SQ0UifSwxMjp7bjoiU09SVEtFWURJUiJ9LDEzOntuOiJGSUxFU0VBTCJ9LDE0OntuOiJEQVRBRklMTE5VTVMifSwxNTp7bjoiUFJJTlRNQUlOIn0sMTY6e246IlBSSU5UU1RSSU5HIn0sMTc6e246IkdSQVBITUFJTiJ9''@;'; put 'put ''LDE4OntuOiJHUkFQSFNUUklORyJ9LDE5OntuOiI/PyJ9LDIwOntuOiJFUlJDRUxMIn0sMjE6e246Ik5BQ0VMTCJ9LDIyOntuOiJMQUJFTDE2IixmOmZ1bmN0aW9uIHlyKFlyLEVpKXt2YXIgaGk9YWkoWXIpO3JldHVybiBoaVsxXS50PSJzIixoaVsxXS52PVlyLnJlYWRfc2hpZnQoRWktNCwi''@;'; put 'put ''Y3N0ciIpLGhpfX0sMjM6e246Ik5VTUJFUjE3IixmOnpyfSwyNDp7bjoiTlVNQkVSMTgiLGY6ZnVuY3Rpb24gR3IoWXIsRWkpe3ZhciBoaT1haShZcik7aGlbMV0udj1Zci5yZWFkX3NoaWZ0KDIpO3ZhciBOcj1oaVsxXS52Pj4xO2lmKDEmaGlbMV0udilzd2l0Y2goNyZOcil7Y2FzZSAwOk5y''@;'; put 'put ''PTVlMyooTnI+PjMpO2JyZWFrO2Nhc2UgMTpOcj01MDAqKE5yPj4zKTticmVhaztjYXNlIDI6TnI9KE5yPj4zKS8yMDticmVhaztjYXNlIDM6TnI9KE5yPj4zKS8yMDA7YnJlYWs7Y2FzZSA0Ok5yPShOcj4+MykvMmUzO2JyZWFrO2Nhc2UgNTpOcj0oTnI+PjMpLzJlNDticmVhaztjYXNlIDY6''@;'; put 'put ''TnI9KE5yPj4zKS8xNjticmVhaztjYXNlIDc6TnI9KE5yPj4zKS82NH1yZXR1cm4gaGlbMV0udj1OcixoaX19LDI1OntuOiJGT1JNVUxBMTkiLGY6ZnVuY3Rpb24gb2koWXIsRWkpe3ZhciBoaT16cihZcik7cmV0dXJuIFlyLmwrPUVpLTE0LGhpfX0sMjY6e246IkZPUk1VTEExQSJ9LDI3Ontu''@;'; put 'put ''OiJYRk9STUFUIixmOmZ1bmN0aW9uIFVpKFlyLEVpKXtmb3IodmFyIGhpPXt9LE5yPVlyLmwrRWk7WXIubDxOcjspe3ZhciBraT1Zci5yZWFkX3NoaWZ0KDIpO2lmKDE0ZTM9PWtpKXtmb3IoaGlba2ldPVswLCIiXSxoaVtraV1bMF09WXIucmVhZF9zaGlmdCgyKTtZcltZci5sXTspaGlba2ld''@;'; put 'put ''WzFdKz1TdHJpbmcuZnJvbUNoYXJDb2RlKFlyW1lyLmxdKSxZci5sKys7WXIubCsrfX1yZXR1cm4gaGl9fSwyODp7bjoiRFRMQUJFTE1JU0MifSwyOTp7bjoiRFRMQUJFTENFTEwifSwzMDp7bjoiR1JBUEhXSU5ET1cifSwzMTp7bjoiQ1BBIn0sMzI6e246IkxQTEFVVE8ifSwzMzp7bjoiUVVF''@;'; put 'put ''UlkifSwzNDp7bjoiSElEREVOU0hFRVQifSwzNTp7bjoiPz8ifSwzNzp7bjoiTlVNQkVSMjUiLGY6ZnVuY3Rpb24gY3IoWXIsRWkpe3ZhciBoaT1haShZciksTnI9WXIucmVhZF9zaGlmdCg0KTtyZXR1cm4gaGlbMV0udj1Ocj4+NixoaX19LDM4OntuOiI/PyJ9LDM5OntuOiJOVU1CRVIyNyIs''@;'; put 'put ''ZjpkaX0sNDA6e246IkZPUk1VTEEyOCIsZjpmdW5jdGlvbiB2MChZcixFaSl7dmFyIGhpPWRpKFlyKTtyZXR1cm4gWXIubCs9RWktMTAsaGl9fSwxNDI6e246Ij8/In0sMTQ3OntuOiI/PyJ9LDE1MDp7bjoiPz8ifSwxNTE6e246Ij8/In0sMTUyOntuOiI/PyJ9LDE1Mzp7bjoiPz8ifSwxNTQ6''@;'; put 'put ''e246Ij8/In0sMTU1OntuOiI/PyJ9LDE1Njp7bjoiPz8ifSwxNjM6e246Ij8/In0sMTc0OntuOiI/PyJ9LDE3NTp7bjoiPz8ifSwxNzY6e246Ij8/In0sMTc3OntuOiI/PyJ9LDE4NDp7bjoiPz8ifSwxODU6e246Ij8/In0sMTg2OntuOiI/PyJ9LDE4Nzp7bjoiPz8ifSwxODg6e246Ij8/In0s''@;'; put 'put ''MTk1OntuOiI/PyJ9LDIwMTp7bjoiPz8ifSwyMDU6e246Ij8/In0sMjA2OntuOiI/PyJ9LDIwNzp7bjoiPz8ifSwyMDg6e246Ij8/In0sMjU2OntuOiI/PyJ9LDI1OTp7bjoiPz8ifSwyNjA6e246Ij8/In0sMjYxOntuOiI/PyJ9LDI2Mjp7bjoiPz8ifSwyNjM6e246Ij8/In0sMjY1OntuOiI/''@;'; put 'put ''PyJ9LDI2Njp7bjoiPz8ifSwyNjc6e246Ij8/In0sMjY4OntuOiI/PyJ9LDI3MDp7bjoiPz8ifSwyNzE6e246Ij8/In0sMzg0OntuOiI/PyJ9LDM4OTp7bjoiPz8ifSwzOTA6e246Ij8/In0sMzkzOntuOiI/PyJ9LDM5Njp7bjoiPz8ifSw1MTI6e246Ij8/In0sNTE0OntuOiI/PyJ9LDUxMzp7''@;'; put 'put ''bjoiPz8ifSw1MTY6e246Ij8/In0sNTE3OntuOiI/PyJ9LDY0MDp7bjoiPz8ifSw2NDE6e246Ij8/In0sNjQyOntuOiI/PyJ9LDY0Mzp7bjoiPz8ifSw2NDQ6e246Ij8/In0sNjQ1OntuOiI/PyJ9LDY0Njp7bjoiPz8ifSw2NDc6e246Ij8/In0sNjQ4OntuOiI/PyJ9LDY1ODp7bjoiPz8ifSw2''@;'; put 'put ''NTk6e246Ij8/In0sNjYwOntuOiI/PyJ9LDY2MTp7bjoiPz8ifSw2NjI6e246Ij8/In0sNjY1OntuOiI/PyJ9LDY2Njp7bjoiPz8ifSw3Njg6e246Ij8/In0sNzcyOntuOiI/PyJ9LDE2MDA6e246Ij8/In0sMTYwMjp7bjoiPz8ifSwxNzkzOntuOiI/PyJ9LDE3OTQ6e246Ij8/In0sMTc5NTp7''@;'; put 'put ''bjoiPz8ifSwxNzk2OntuOiI/PyJ9LDE5MjA6e246Ij8/In0sMjA0ODp7bjoiPz8ifSwyMDQ5OntuOiI/PyJ9LDIwNTI6e246Ij8/In0sMjY4ODp7bjoiPz8ifSwxMDk5ODp7bjoiPz8ifSwxMjg0OTp7bjoiPz8ifSwyODIzMzp7bjoiPz8ifSwyODQ4NDp7bjoiPz8ifSw2NTUzNTp7bjoiIn19''@;'; put 'put ''O3JldHVybntzaGVldF90b193azE6ZnVuY3Rpb24gd2UoWXIsRWkpe3ZhciBoaT1FaXx8e307aWYoK2hpLmNvZGVwYWdlPj0wJiZ0ZSgraGkuY29kZXBhZ2UpLCJzdHJpbmciPT1oaS50eXBlKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHdyaXRlIFdLMSB0byBKUyBzdHJpbmciKTt2YXIgTnI9''@;'; put 'put ''SjIoKSxraT1GbyhZclsiIXJlZiJdKSxOMD1BcnJheS5pc0FycmF5KFlyKSx0MD1bXTtzMChOciwwLGZ1bmN0aW9uIEZlKFlyKXt2YXIgRWk9UmkoMik7cmV0dXJuIEVpLndyaXRlX3NoaWZ0KDIsWXIpLEVpfSgxMDMwKSksczAoTnIsNixmdW5jdGlvbiBZZShZcil7dmFyIEVpPVJpKDgpO3Jl''@;'; put 'put ''dHVybiBFaS53cml0ZV9zaGlmdCgyLFlyLnMuYyksRWkud3JpdGVfc2hpZnQoMixZci5zLnIpLEVpLndyaXRlX3NoaWZ0KDIsWXIuZS5jKSxFaS53cml0ZV9zaGlmdCgyLFlyLmUuciksRWl9KGtpKSk7Zm9yKHZhciBpbz1raS5zLnI7aW88PWtpLmUucjsrK2lvKWZvcih2YXIgb2E9WGEoaW8p''@;'; put 'put ''LCQwPWtpLnMuYzskMDw9a2kuZS5jOysrJDApe2lvPT09a2kucy5yJiYodDBbJDBdPV9hKCQwKSk7dmFyIGpvPU4wPyhZcltpb118fFtdKVskMF06WXJbdDBbJDBdK29hXTtqbyYmInoiIT1qby50JiYoIm4iPT1qby50PygwfGpvLnYpPT1qby52JiZqby52Pj0tMzI3NjgmJmpvLnY8PTMyNzY3''@;'; put 'put ''P3MwKE5yLDEzLG5uKGlvLCQwLGpvLnYpKTpzMChOciwxNCxEdChpbywkMCxqby52KSk6czAoTnIsMTUsUnQoaW8sJDAseTEoam8pLnNsaWNlKDAsMjM5KSkpKX1yZXR1cm4gczAoTnIsMSksTnIuZW5kKCl9LGJvb2tfdG9fd2szOmZ1bmN0aW9uIHhlKFlyLEVpKXt2YXIgaGk9RWl8fHt9O2lm''@;'; put 'put ''KCtoaS5jb2RlcGFnZT49MCYmdGUoK2hpLmNvZGVwYWdlKSwic3RyaW5nIj09aGkudHlwZSl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCB3cml0ZSBXSzMgdG8gSlMgc3RyaW5nIik7dmFyIE5yPUoyKCk7czAoTnIsMCxmdW5jdGlvbiBaZShZcil7dmFyIEVpPVJpKDI2KTtFaS53cml0ZV9zaGlm''@;'; put 'put ''dCgyLDQwOTYpLEVpLndyaXRlX3NoaWZ0KDIsNCksRWkud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIGhpPTAsTnI9MCxraT0wLE4wPTA7TjA8WXIuU2hlZXROYW1lcy5sZW5ndGg7KytOMCl7dmFyIGlvPVlyLlNoZWV0c1tZci5TaGVldE5hbWVzW04wXV07aWYoaW8mJmlvWyIhcmVmIl0peysr''@;'; put 'put ''a2k7dmFyIG9hPUFzKGlvWyIhcmVmIl0pO2hpPG9hLmUuciYmKGhpPW9hLmUuciksTnI8b2EuZS5jJiYoTnI9b2EuZS5jKX19cmV0dXJuIEVpLndyaXRlX3NoaWZ0KDIsaGkpLEVpLndyaXRlX3NoaWZ0KDEsa2kpLEVpLndyaXRlX3NoaWZ0KDEsTnIpLEVpLndyaXRlX3NoaWZ0KDIsMCksRWku''@;'; put 'put ''d3JpdGVfc2hpZnQoMiwwKSxFaS53cml0ZV9zaGlmdCgxLDEpLEVpLndyaXRlX3NoaWZ0KDEsMiksRWkud3JpdGVfc2hpZnQoNCwwKSxFaS53cml0ZV9zaGlmdCg0LDApLEVpfShZcikpO2Zvcih2YXIga2k9MCxOMD0wO2tpPFlyLlNoZWV0TmFtZXMubGVuZ3RoOysra2kpKFlyLlNoZWV0c1tZ''@;'; put 'put ''ci5TaGVldE5hbWVzW2tpXV18fHt9KVsiIXJlZiJdJiZzMChOciwyNyx0byhZci5TaGVldE5hbWVzW2tpXSxOMCsrKSk7dmFyIHQwPTA7Zm9yKGtpPTA7a2k8WXIuU2hlZXROYW1lcy5sZW5ndGg7KytraSl7dmFyIGlvPVlyLlNoZWV0c1tZci5TaGVldE5hbWVzW2tpXV07aWYoaW8mJmlvWyIh''@;'; put 'put ''cmVmIl0pe2Zvcih2YXIgb2E9Rm8oaW9bIiFyZWYiXSksJDA9QXJyYXkuaXNBcnJheShpbyksVmE9W10sam89b2Eucy5yO2pvPD1vYS5lLnI7Kytqbylmb3IodmFyIHdhPVhhKGpvKSxhbz1vYS5zLmM7YW88PW9hLmUuYzsrK2FvKXtqbz09PW9hLnMuciYmKFZhW2FvXT1fYShhbykpO3ZhciBo''@;'; put 'put ''MD0kMD8oaW9bam9dfHxbXSlbYW9dOmlvW1ZhW2FvXSt3YV07aDAmJiJ6IiE9aDAudCYmKCJuIj09aDAudD9zMChOciwyMyxxcihqbyxhbyx0MCxoMC52KSk6czAoTnIsMjIsYXIoam8sYW8sdDAseTEoaDApLnNsaWNlKDAsMjM5KSkpKX0rK3QwfX1yZXR1cm4gczAoTnIsMSksTnIuZW5kKCl9''@;'; put 'put ''LHRvX3dvcmtib29rOmZ1bmN0aW9uIGllKFlyLEVpKXtzd2l0Y2goRWkudHlwZSl7Y2FzZSJiYXNlNjQiOnJldHVybiBYKHooU2UuZGVjb2RlKFlyKSksRWkpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gWCh6KFlyKSxFaSk7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOnJldHVybiBYKFlyLEVpKX10''@;'; put 'put ''aHJvdyJVbnN1cHBvcnRlZCB0eXBlICIrRWkudHlwZX19fSgpLFc4PWZ1bmN0aW9uKCl7dmFyIEg9UWkoInQiKSxpZT1RaSgiclByIik7ZnVuY3Rpb24gWChGZSl7dmFyIFplPUZlLm1hdGNoKEgpO2lmKCFaZSlyZXR1cm57dDoicyIsdjoiIn07dmFyIGplPXt0OiJzIix2OmdyKFplWzFdKX0s''@;'; put 'put ''WWU9RmUubWF0Y2goaWUpO3JldHVybiBZZSYmKGplLnM9ZnVuY3Rpb24gRWgoSCl7dmFyIGllPXt9LFg9SC5tYXRjaChHdCksd2U9MCx4ZT0hMTtpZihYKWZvcig7d2UhPVgubGVuZ3RoOysrd2Upe3ZhciBGZT1lbihYW3dlXSk7c3dpdGNoKEZlWzBdLnJlcGxhY2UoL1x3KjovZywiIikpe2Nh''@;'; put 'put ''c2UiPGNvbmRlbnNlIjpjYXNlIjxleHRlbmQiOmJyZWFrO2Nhc2UiPHNoYWRvdyI6aWYoIUZlLnZhbClicmVhaztjYXNlIjxzaGFkb3c+IjpjYXNlIjxzaGFkb3cvPiI6aWUuc2hhZG93PTE7YnJlYWs7Y2FzZSI8L3NoYWRvdz4iOmJyZWFrO2Nhc2UiPGNoYXJzZXQiOmlmKCIxIj09RmUudmFs''@;'; put 'put ''KWJyZWFrO2llLmNwPVlbcGFyc2VJbnQoRmUudmFsLDEwKV07YnJlYWs7Y2FzZSI8b3V0bGluZSI6aWYoIUZlLnZhbClicmVhaztjYXNlIjxvdXRsaW5lPiI6Y2FzZSI8b3V0bGluZS8+IjppZS5vdXRsaW5lPTE7YnJlYWs7Y2FzZSI8L291dGxpbmU+IjpicmVhaztjYXNlIjxyRm9udCI6aWUu''@;'; put 'put ''bmFtZT1GZS52YWw7YnJlYWs7Y2FzZSI8c3oiOmllLnN6PUZlLnZhbDticmVhaztjYXNlIjxzdHJpa2UiOmlmKCFGZS52YWwpYnJlYWs7Y2FzZSI8c3RyaWtlPiI6Y2FzZSI8c3RyaWtlLz4iOmllLnN0cmlrZT0xO2JyZWFrO2Nhc2UiPC9zdHJpa2U+IjpicmVhaztjYXNlIjx1IjppZighRmUu''@;'; put 'put ''dmFsKWJyZWFrO3N3aXRjaChGZS52YWwpe2Nhc2UiZG91YmxlIjppZS51bmRlcmxpbmU9MjticmVhaztjYXNlInNpbmdsZUFjY291bnRpbmciOmllLnVuZGVybGluZT0zMzticmVhaztjYXNlImRvdWJsZUFjY291bnRpbmciOmllLnVuZGVybGluZT0zNH1jYXNlIjx1PiI6Y2FzZSI8dS8+Ijpp''@;'; put 'put ''ZS51bmRlcmxpbmV8fChpZS51bmRlcmxpbmU9MSk7YnJlYWs7Y2FzZSI8L3U+IjpicmVhaztjYXNlIjxiIjppZigiMCI9PUZlLnZhbClicmVhaztjYXNlIjxiPiI6Y2FzZSI8Yi8+IjppZS5ib2xkPTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjppZigiMCI9PUZlLnZhbClicmVh''@;'; put 'put ''aztjYXNlIjxpPiI6Y2FzZSI8aS8+IjppZS5pdGFsaWM9MTticmVhaztjYXNlIjwvaT4iOmJyZWFrO2Nhc2UiPGNvbG9yIjpGZS5yZ2ImJihpZS5jb2xvcj17cmdiOjg9PUZlLnJnYi5sZW5ndGg/RmUucmdiLnNsaWNlKDIsOCk6KCIwMDAwMDAiK0ZlLnJnYikuc2xpY2UoLTYpfSk7YnJlYWs7''@;'; put 'put ''Y2FzZSI8ZmFtaWx5IjppZS5mYW1pbHk9RmUudmFsO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbiI6Im5vbmUiIT0oRmUudmFsfHwibm9uZSIpJiYoaWUudmFsaWduPUZlLnZhbC5yZXBsYWNlKCJzY3JpcHQiLCIiKSk7YnJlYWs7Y2FzZSI8c2NoZW1lIjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExz''@;'; put 'put ''dD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOnhlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+Ijp4ZT0hMTticmVhaztkZWZhdWx0OmlmKDQ3IT09RmVbMF0uY2hhckNvZGVBdCgxKSYmIXhlKXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHJpY2ggZm9ybWF0ICIrRmVbMF0p''@;'; put 'put ''fX1yZXR1cm4gaWV9KFllWzFdKSksamV9dmFyIHdlPS88KD86XHcrOik/cj4vZyx4ZT0vPFwvKD86XHcrOik/cj4vO3JldHVybiBmdW5jdGlvbihaZSl7cmV0dXJuIFplLnJlcGxhY2Uod2UsIiIpLnNwbGl0KHhlKS5tYXAoWCkuZmlsdGVyKGZ1bmN0aW9uKGplKXtyZXR1cm4gamUudn0pfX0o''@;'; put 'put ''KSxPND17MToic2luZ2xlIiwyOiJkb3VibGUiLDMzOiJzaW5nbGUtYWNjb3VudGluZyIsMzQ6ImRvdWJsZS1hY2NvdW50aW5nIn0saG09ZnVuY3Rpb24oKXt2YXIgaWU9LyhcclxufFxuKS9nO2Z1bmN0aW9uIHdlKHhlKXt2YXIgRmU9W1tdLHhlLnYsW11dO3JldHVybiB4ZS52Pyh4ZS5zJiZm''@;'; put 'put ''dW5jdGlvbiBYKHhlLEZlLFplKXt2YXIgamU9W107eGUudW5kZXJsaW5lJiZqZS5wdXNoKCJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsiKSx4ZS51bmRlcmxpbmU+MSYmamUucHVzaCgidGV4dC11bmRlcmxpbmUtc3R5bGU6IitPNFt4ZS51bmRlcmxpbmVdKyI7IikseGUuc3omJmplLnB1''@;'; put 'put ''c2goImZvbnQtc2l6ZToiK3hlLnN6KyJwdDsiKSx4ZS5vdXRsaW5lJiZqZS5wdXNoKCJ0ZXh0LWVmZmVjdDogb3V0bGluZTsiKSx4ZS5zaGFkb3cmJmplLnB1c2goInRleHQtc2hhZG93OiBhdXRvOyIpLHhlLmNvbG9yJiZ4ZS5jb2xvci5yZ2ImJmplLnB1c2goImNvbG9yOiAjIitMbyh4ZS5j''@;'; put 'put ''b2xvci5yZ2IpKyI7IiksRmUucHVzaCgnPHNwYW4gc3R5bGU9IicramUuam9pbigiIikrJyI+JykseGUuYm9sZCYmKEZlLnB1c2goIjxiPiIpLFplLnB1c2goIjwvYj4iKSkseGUuaXRhbGljJiYoRmUucHVzaCgiPGk+IiksWmUucHVzaCgiPC9pPiIpKSx4ZS5zdHJpa2UmJihGZS5wdXNoKCI8''@;'; put 'put ''cz4iKSxaZS5wdXNoKCI8L3M+IikpO3ZhciBZZT14ZS52YWxpZ258fCIiOyJzdXBlcnNjcmlwdCI9PVllfHwic3VwZXIiPT1ZZT9ZZT0ic3VwIjoic3Vic2NyaXB0Ij09WWUmJihZZT0ic3ViIiksIiIhPVllJiYoRmUucHVzaCgiPCIrWWUrIj4iKSxaZS5wdXNoKCI8LyIrWWUrIj4iKSksWmUu''@;'; put 'put ''cHVzaCgiPC9zcGFuPiIpfSh4ZS5zLEZlWzBdLEZlWzJdKSxGZVswXS5qb2luKCIiKStGZVsxXS5yZXBsYWNlKGllLCI8YnIvPiIpK0ZlWzJdLmpvaW4oIiIpKToiIn1yZXR1cm4gZnVuY3Rpb24oRmUpe3JldHVybiBGZS5tYXAod2UpLmpvaW4oIiIpfX0oKTtmdW5jdGlvbiB1NihIKXtyZXR1''@;'; put 'put ''cm4gSC5tYXAoZnVuY3Rpb24oWCl7cmV0dXJuIGZ1bmN0aW9uIG1hKEgpe3ZhciBpZT0iIixYPVtdO3JldHVybiBILnMmJihILnMuYm9sZCYmWC5wdXNoKCI8Yi8+IiksSC5zLml0YWxpYyYmWC5wdXNoKCI8aS8+IiksSC5zLnN0cmlrZSYmWC5wdXNoKCI8c3RyaWtlLz4iKSxILnMudW5kZXJs''@;'; put 'put ''aW5lJiZYLnB1c2goJzx1IHZhbD0iJysoTzlbSC5zLnVuZGVybGluZV18fCJzaW5nbGUiKSsnIi8+JyksSC5zLmNvbG9yJiZYLnB1c2goWHMoSC5zLmNvbG9yKSksSC5zLnN6JiZYLnB1c2goJzxzeiB2YWw9IicrSC5zLnN6KyciLz4nKSxILnMubmFtZSYmWC5wdXNoKCc8ckZvbnQgdmFsPSIn''@;'; put 'put ''K0gucy5uYW1lKyciLz4nKSwoInN1cGVyIj09SC5zLnZhbGlnbnx8InN1YiI9PUgucy52YWxpZ24pJiZYLnB1c2goJzx2ZXJ0QWxpZ24gdmFsPSInK0gucy52YWxpZ24rJ3NjcmlwdCIvPicpKSxYLmxlbmd0aCYmKGllKz0iPHJQcj4iK1guam9pbigiIikrIjwvclByPiIpLCI8cj4iKyhpZSs9''@;'; put 'put ''X2koInQiLFJyKEgudiksbnVsbCkpKyI8L3I+In0oWCl9KS5qb2luKCIiKX12YXIgaGw9LzwoPzpcdys6KT90W14+XSo+KFtePF0qKTxcLyg/Olx3KzopP3Q+L2csVWY9LzwoPzpcdys6KT9yXGJbXj5dKj4vLGQyPS88KD86XHcrOik/clBoLio/PihbXHNcU10qPyk8XC8oPzpcdys6KT9yUGg+''@;'; put 'put ''L2c7ZnVuY3Rpb24gJHUoSCxpZSl7dmFyIFg9IWllfHxpZS5jZWxsSFRNTCx3ZT17fTtyZXR1cm4gSD8oSC5tYXRjaCgvXlxzKjwoPzpcdys6KT90W14+XSo+Lyk/KHdlLnQ9Z3IoVzAoSC5zbGljZShILmluZGV4T2YoIj4iKSsxKS5zcGxpdCgvPFwvKD86XHcrOik/dD4vKVswXXx8IiIpKSx3''@;'; put 'put ''ZS5yPVcwKEgpLFgmJih3ZS5oPW4wKHdlLnQpKSk6SC5tYXRjaChVZikmJih3ZS5yPVcwKEgpLHdlLnQ9Z3IoVzAoKEgucmVwbGFjZShkMiwiIikubWF0Y2goaGwpfHxbXSkuam9pbigiIikucmVwbGFjZShHdCwiIikpKSx3ZS5SPVc4KHdlLnIpLFgmJih3ZS5oPWhtKHdlLlIpKSksd2UpOnt0''@;'; put 'put ''OiIifX12YXIga2E9LzwoPzpcdys6KT9zc3QoW14+XSopPihbXHNcU10qKTxcLyg/Olx3KzopP3NzdD4vLHkzPS88KD86XHcrOik/KD86c2l8c3N0SXRlbSk+L2csUWY9LzxcLyg/Olx3KzopPyg/OnNpfHNzdEl0ZW0pPi87ZHQuU1NUPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5v''@;'; put 'put ''cmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3MiO3ZhciBkbT0vXlxzfFxzJHxbXHRcblxyXS87ZnVuY3Rpb24gdEUoSCxpZSl7aWYoIWllLmJvb2tTU1QpcmV0dXJuIiI7dmFyIFg9W2NuXTtYW1gubGVuZ3RoXT1faSgic3N0IixudWxsLHt4bWxuczpY''@;'; put 'put ''MC5tYWluWzBdLGNvdW50OkguQ291bnQsdW5pcXVlQ291bnQ6SC5VbmlxdWV9KTtmb3IodmFyIHdlPTA7d2UhPUgubGVuZ3RoOysrd2UpaWYobnVsbCE9SFt3ZV0pe3ZhciB4ZT1IW3dlXSxGZT0iPHNpPiI7eGUucj9GZSs9eGUucjooRmUrPSI8dCIseGUudHx8KHhlLnQ9IiIpLHhlLnQubWF0''@;'; put 'put ''Y2goZG0pJiYoRmUrPScgeG1sOnNwYWNlPSJwcmVzZXJ2ZSInKSxGZSs9Ij4iK1JyKHhlLnQpKyI8L3Q+IiksWFtYLmxlbmd0aF09RmUrPSI8L3NpPiJ9cmV0dXJuIFgubGVuZ3RoPjImJihYW1gubGVuZ3RoXT0iPC9zc3Q+IixYWzFdPVhbMV0ucmVwbGFjZSgiLz4iLCI+IikpLFguam9pbigi''@;'; put 'put ''Iil9dmFyIExSPWZ1bmN0aW9uIHpnKEgsaWUsWCl7dmFyIHdlPTEzKzQqSC50Lmxlbmd0aCx4ZT1ILlImJkguUi5sZW5ndGh8fEgucjtILnImJihILlI9VzgoSC5yKSkseGUmJih3ZSs9NCs0KkguUi5sZW5ndGgpO3ZhciBGZT0hMTtpZihudWxsPT1YJiYoRmU9ITAsWD1SaSh3ZSkpLFgud3Jp''@;'; put 'put ''dGVfc2hpZnQoMSx4ZT8xOjApLGx1KEgudCxYKSx4ZSl7WC53cml0ZV9zaGlmdCg0LEguUi5sZW5ndGgpO2Zvcih2YXIgWmU9MCxqZT0wO2plPEguUi5sZW5ndGg7KytqZSl7dmFyIFllPUguUltqZV07WC53cml0ZV9zaGlmdCgyLFplKSxaZSs9KFllLnZ8fCIiKS5sZW5ndGg7dmFyIE10PVll''@;'; put 'put ''LnM/WTEoaWUuY2VsbFhmcyxpZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOlllLnN9LGllKTowO1gud3JpdGVfc2hpZnQoMixpZS5jZWxsWGZzW010XS5mb250SWQpfX1yZXR1cm4gRmU/WC5zbGljZSgwLFgubCk6WH07ZnVuY3Rpb24gT1IoSCxpZSl7dmFyIFg9SjIoKTtDMChYLCJCcnRC''@;'; put 'put ''ZWdpblNzdCIsZnVuY3Rpb24gckUoSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoOCkpLGllLndyaXRlX3NoaWZ0KDQsSC5Db3VudCksaWUud3JpdGVfc2hpZnQoNCxILlVuaXF1ZSksaWV9KEgpKTtmb3IodmFyIHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSlDMChYLCJCcnRTU1RJdGVtIixMUihIW3dl''@;'; put 'put ''XSxpZSkpO3JldHVybiBDMChYLCJCcnRFbmRTc3QiKSxYLmVuZCgpfWZ1bmN0aW9uIGlFKEgpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3B0YWJsZSlyZXR1cm4gY3B0YWJsZS51dGlscy5lbmNvZGUoaixIKTtmb3IodmFyIGllPVtdLFg9SC5zcGxpdCgiIiksd2U9MDt3ZTxYLmxlbmd0aDsr''@;'; put 'put ''K3dlKWllW3dlXT1YW3dlXS5jaGFyQ29kZUF0KDApO3JldHVybiBpZX1mdW5jdGlvbiB2ZihILGllKXt2YXIgWD17fTtyZXR1cm4gWC5NYWpvcj1ILnJlYWRfc2hpZnQoMiksWC5NaW5vcj1ILnJlYWRfc2hpZnQoMiksaWU+PTQmJihILmwrPWllLTQpLFh9ZnVuY3Rpb24gdzMoSCl7Zm9yKHZh''@;'; put 'put ''ciBpZT1ILnJlYWRfc2hpZnQoNCksWD1ILmwraWUtNCx3ZT17fSx4ZT1ILnJlYWRfc2hpZnQoNCksRmU9W107eGUtLSA+MDspRmUucHVzaCh7dDpILnJlYWRfc2hpZnQoNCksdjpILnJlYWRfc2hpZnQoMCwibHBwNCIpfSk7aWYod2UubmFtZT1ILnJlYWRfc2hpZnQoMCwibHBwNCIpLHdlLmNv''@;'; put 'put ''bXBzPUZlLEgubCE9WCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRhU3BhY2VNYXBFbnRyeTogIitILmwrIiAhPSAiK1gpO3JldHVybiB3ZX1mdW5jdGlvbiBSUihILGllKXt2YXIgWD1ILmwraWUsd2U9e307d2UuRmxhZ3M9NjMmSC5yZWFkX3NoaWZ0KDQpLEgubCs9NCx3ZS5BbGdJRD1ILnJl''@;'; put 'put ''YWRfc2hpZnQoNCk7dmFyIHhlPSExO3N3aXRjaCh3ZS5BbGdJRCl7Y2FzZSAyNjEyNjpjYXNlIDI2MTI3OmNhc2UgMjYxMjg6eGU9MzY9PXdlLkZsYWdzO2JyZWFrO2Nhc2UgMjY2MjU6eGU9ND09KDUyJndlLkZsYWdzKTticmVhaztjYXNlIDA6eGU9MTY9PXdlLkZsYWdzfHw0PT13ZS5GbGFn''@;'; put 'put ''c3x8MzY9PXdlLkZsYWdzO2JyZWFrO2RlZmF1bHQ6dGhyb3ciVW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAiK3dlLkFsZ0lEfWlmKCF4ZSl0aHJvdyBuZXcgRXJyb3IoIkVuY3J5cHRpb24gRmxhZ3MvQWxnSUQgbWlzbWF0Y2giKTtyZXR1cm4gd2UuQWxnSURIYXNoPUgucmVh''@;'; put 'put ''ZF9zaGlmdCg0KSx3ZS5LZXlTaXplPUgucmVhZF9zaGlmdCg0KSx3ZS5Qcm92aWRlclR5cGU9SC5yZWFkX3NoaWZ0KDQpLEgubCs9OCx3ZS5DU1BOYW1lPUgucmVhZF9zaGlmdChYLUgubD4+MSwidXRmMTZsZSIpLEgubD1YLHdlfWZ1bmN0aW9uIEJSKEgsaWUpe3ZhciBYPXt9LHdlPUgubCtp''@;'; put 'put ''ZTtyZXR1cm4gSC5sKz00LFguU2FsdD1ILnNsaWNlKEgubCxILmwrMTYpLEgubCs9MTYsWC5WZXJpZmllcj1ILnNsaWNlKEgubCxILmwrMTYpLEgubCs9MTYsSC5yZWFkX3NoaWZ0KDQpLFguVmVyaWZpZXJIYXNoPUguc2xpY2UoSC5sLHdlKSxILmw9d2UsWH1mdW5jdGlvbiB5YihIKXtpZigz''@;'; put 'put ''NiE9KDYzJkgucmVhZF9zaGlmdCg0KSkpdGhyb3cgbmV3IEVycm9yKCJFbmNyeXB0aW9uSW5mbyBtaXNtYXRjaCIpO3ZhciBYPUgucmVhZF9zaGlmdCg0KTtyZXR1cm57dDoiU3RkIixoOlJSKEgsWCksdjpCUihILEgubGVuZ3RoLUgubCl9fWZ1bmN0aW9uIHdiKCl7dGhyb3cgbmV3IEVycm9y''@;'; put 'put ''KCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZDogRUNNQS0zNzYgRXh0ZW5zaWJsZSIpfWZ1bmN0aW9uIGJiKEgpe3ZhciBpZT1bInNhbHRTaXplIiwiYmxvY2tTaXplIiwia2V5Qml0cyIsImhhc2hTaXplIiwiY2lwaGVyQWxnb3JpdGhtIiwiY2lwaGVyQ2hhaW5pbmciLCJoYXNoQWxnb3Jp''@;'; put 'put ''dGhtIiwic2FsdFZhbHVlIl07SC5sKz00O3ZhciBYPUgucmVhZF9zaGlmdChILmxlbmd0aC1ILmwsInV0ZjgiKSx3ZT17fTtyZXR1cm4gWC5yZXBsYWNlKEd0LGZ1bmN0aW9uKEZlKXt2YXIgWmU9ZW4oRmUpO3N3aXRjaChJbihaZVswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPGVuY3J5cHRpb24i''@;'; put 'put ''OmNhc2UiPC9lbmNyeXB0aW9uPiI6Y2FzZSI8L2tleUVuY3J5cHRvcnM+IjpjYXNlIjwva2V5RW5jcnlwdG9yPiI6YnJlYWs7Y2FzZSI8a2V5RGF0YSI6aWUuZm9yRWFjaChmdW5jdGlvbihqZSl7d2VbamVdPVplW2plXX0pO2JyZWFrO2Nhc2UiPGRhdGFJbnRlZ3JpdHkiOndlLmVuY3J5cHRl''@;'; put 'put ''ZEhtYWNLZXk9WmUuZW5jcnlwdGVkSG1hY0tleSx3ZS5lbmNyeXB0ZWRIbWFjVmFsdWU9WmUuZW5jcnlwdGVkSG1hY1ZhbHVlO2JyZWFrO2Nhc2UiPGtleUVuY3J5cHRvcnM+IjpjYXNlIjxrZXlFbmNyeXB0b3JzIjp3ZS5lbmNzPVtdO2JyZWFrO2Nhc2UiPGtleUVuY3J5cHRvciI6d2UudXJp''@;'; put 'put ''PVplLnVyaTticmVhaztjYXNlIjxlbmNyeXB0ZWRLZXkiOndlLmVuY3MucHVzaChaZSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBaZVswXX19KSx3ZX1mdW5jdGlvbiBNOShIKXt2YXIgWCxGZSxpZT0wLHdlPWlFKEgpLHhlPXdlLmxlbmd0aCsxO2ZvcigoWD1oZSh4ZSkpWzBdPXdlLmxlbmd0aCxG''@;'; put 'put ''ZT0xO0ZlIT14ZTsrK0ZlKVhbRmVdPXdlW0ZlLTFdO2ZvcihGZT14ZS0xO0ZlPj0wOy0tRmUpaWU9KCgwPT0oMTYzODQmaWUpPzA6MSl8aWU8PDEmMzI3NjcpXlhbRmVdO3JldHVybiA1MjgxMV5pZX12YXIgRTk9ZnVuY3Rpb24oKXt2YXIgSD1bMTg3LDI1NSwyNTUsMTg2LDI1NSwyNTUsMTg1''@;'; put 'put ''LDEyOCwwLDE5MCwxNSwwLDE5MSwxNSwwXSxpZT1bNTc4NDAsNzQzOSw1MjM4MCwzMzk4NCw0MzY0LDM2MDAsNjE5MDIsMTI2MDYsNjI1OCw1NzY1Nyw1NDI4NywzNDA0MSwxMDI1Miw0MzM3MCwyMDE2M10sWD1bNDQ3OTYsMTk5MjksMzk4NTgsMTAwNTMsMjAxMDYsNDAyMTIsMTA3NjEsMzE1''@;'; put 'put ''ODUsNjMxNzAsNjQ5MzMsNjAyNjcsNTA5MzUsNDAzOTksMTExOTksMTc3NjMsMzU1MjYsMTQ1MywyOTA2LDU4MTIsMTE2MjQsMjMyNDgsODg1LDE3NzAsMzU0MCw3MDgwLDE0MTYwLDI4MzIwLDU2NjQwLDU1MzY5LDQxMTM5LDIwODA3LDQxNjE0LDIxODIxLDQzNjQyLDE3NjIxLDI4NDg1LDU2''@;'; put 'put ''OTcwLDQ0MzQxLDE5MDE5LDM4MDM4LDE0NjA1LDI5MjEwLDYwMTk1LDUwNzkxLDQwMTc1LDEwNzUxLDIxNTAyLDQzMDA0LDI0NTM3LDE4Mzg3LDM2Nzc0LDM5NDksNzg5OCwxNTc5NiwzMTU5Miw2MzE4NCw0NzIwMSwyNDgwMyw0OTYwNiwzNzgwNSwxNDIwMywyODQwNiw1NjgxMiwxNzgyNCwz''@;'; put 'put ''NTY0OCwxNjk3LDMzOTQsNjc4OCwxMzU3NiwyNzE1Miw0MzYwMSwxNzUzOSwzNTA3OCw1NTcsMTExNCwyMjI4LDQ0NTYsMzAzODgsNjA3NzYsNTE5NTMsMzQyNDMsNzA3OSwxNDE1OCwyODMxNiwxNDEyOCwyODI1Niw1NjUxMiw0MzQyNSwxNzI1MSwzNDUwMiw3NTk3LDEzMTA1LDI2MjEwLDUy''@;'; put 'put ''NDIwLDM1MjQxLDg4MywxNzY2LDM1MzIsNDEyOSw4MjU4LDE2NTE2LDMzMDMyLDQ2NTcsOTMxNCwxODYyOF0seGU9ZnVuY3Rpb24oWmUsamUpe3JldHVybiBmdW5jdGlvbihaZSl7cmV0dXJuIDI1NSYoWmU+PjF8WmU8PDcpfShaZV5qZSl9O3JldHVybiBmdW5jdGlvbihqZSl7Zm9yKHZhciBZ''@;'; put 'put ''ZT1pRShqZSksTXQ9ZnVuY3Rpb24oWmUpe2Zvcih2YXIgamU9aWVbWmUubGVuZ3RoLTFdLFllPTEwNCxNdD1aZS5sZW5ndGgtMTtNdD49MDstLU10KWZvcih2YXIgeHQ9WmVbTXRdLFJ0PTA7NyE9UnQ7KytSdCk2NCZ4dCYmKGplXj1YW1llXSkseHQqPTIsLS1ZZTtyZXR1cm4gamV9KFllKSx4''@;'; put 'put ''dD1ZZS5sZW5ndGgsUnQ9aGUoMTYpLFV0PTA7MTYhPVV0OysrVXQpUnRbVXRdPTA7dmFyIER0O2ZvcigxPT0oMSZ4dCkmJihSdFt4dF09eGUoSFswXSxNdD4+OCksUnRbLS14dF09eGUoWWVbWWUubGVuZ3RoLTFdLDI1NSZNdCkpO3h0PjA7KVJ0Wy0teHRdPXhlKFllW3h0XSxNdD4+OCksUnRb''@;'; put 'put ''LS14dF09eGUoWWVbeHRdLDI1NSZNdCk7Zm9yKHh0PTE1LER0PTE1LVllLmxlbmd0aDtEdD4wOylSdFt4dF09eGUoSFtEdF0sTXQ+PjgpLC0tRHQsUnRbLS14dF09eGUoWWVbeHRdLDI1NSZNdCksLS14dCwtLUR0O3JldHVybiBSdH19KCk7dmFyIHg5PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gSCh4''@;'; put 'put ''ZSxGZSl7c3dpdGNoKEZlLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gaWUoU2UuZGVjb2RlKHhlKSxGZSk7Y2FzZSJiaW5hcnkiOnJldHVybiBpZSh4ZSxGZSk7Y2FzZSJidWZmZXIiOnJldHVybiBpZSh4ZS50b1N0cmluZygiYmluYXJ5IiksRmUpO2Nhc2UiYXJyYXkiOnJldHVybiBpZSh5''@;'; put 'put ''bih4ZSksRmUpfXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitGZS50eXBlKX1mdW5jdGlvbiBpZSh4ZSxGZSl7dmFyIGplPShGZXx8e30pLmRlbnNlP1tdOnt9O2lmKCF4ZS5tYXRjaCgvXFx0cm93ZC8pKXRocm93IG5ldyBFcnJvcigiUlRGIG1pc3NpbmcgdGFibGUiKTty''@;'; put 'put ''ZXR1cm4gamVbIiFyZWYiXT1mYSh7czp7YzowLHI6MH0sZTp7YzowLHI6MH19KSxqZX1yZXR1cm57dG9fd29ya2Jvb2s6ZnVuY3Rpb24gWCh4ZSxGZSl7cmV0dXJuIHcxKEgoeGUsRmUpLEZlKX0sdG9fc2hlZXQ6SCxmcm9tX3NoZWV0OmZ1bmN0aW9uIHdlKHhlKXtmb3IodmFyIGplLEZlPVsi''@;'; put 'put ''e1xccnRmMVxcYW5zaSJdLFplPUZvKHhlWyIhcmVmIl0pLFllPUFycmF5LmlzQXJyYXkoeGUpLE10PVplLnMucjtNdDw9WmUuZS5yOysrTXQpe0ZlLnB1c2goIlxcdHJvd2RcXHRyYXV0b2ZpdDEiKTtmb3IodmFyIHh0PVplLnMuYzt4dDw9WmUuZS5jOysreHQpRmUucHVzaCgiXFxjZWxseCIr''@;'; put 'put ''KHh0KzEpKTtmb3IoRmUucHVzaCgiXFxwYXJkXFxpbnRibCIpLHh0PVplLnMuYzt4dDw9WmUuZS5jOysreHQpe3ZhciBSdD1ZMCh7cjpNdCxjOnh0fSk7KGplPVllPyh4ZVtNdF18fFtdKVt4dF06eGVbUnRdKSYmKG51bGwhPWplLnZ8fGplLmYmJiFqZS5GKSYmKEZlLnB1c2goIiAiKyhqZS53''@;'; put 'put ''fHwoeTEoamUpLGplLncpKSksRmUucHVzaCgiXFxjZWxsIikpfUZlLnB1c2goIlxccGFyZFxcaW50YmxcXHJvdyIpfXJldHVybiBGZS5qb2luKCIiKSsifSJ9fX0oKTtmdW5jdGlvbiBZOChIKXt2YXIgaWU9SC5zbGljZSgiIyI9PT1IWzBdPzE6MCkuc2xpY2UoMCw2KTtyZXR1cm5bcGFyc2VJ''@;'; put 'put ''bnQoaWUuc2xpY2UoMCwyKSwxNikscGFyc2VJbnQoaWUuc2xpY2UoMiw0KSwxNikscGFyc2VJbnQoaWUuc2xpY2UoNCw2KSwxNildfWZ1bmN0aW9uIGIzKEgpe2Zvcih2YXIgaWU9MCxYPTE7MyE9aWU7KytpZSlYPTI1NipYKyhIW2llXT4yNTU/MjU1OkhbaWVdPDA/MDpIW2llXSk7cmV0dXJu''@;'; put 'put ''IFgudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCkuc2xpY2UoMSl9ZnVuY3Rpb24gXzMoSCxpZSl7aWYobnVsbD09SClyZXR1cm4gbnVsbCE9aWU7aWYobnVsbD09aWUpcmV0dXJuITA7aWYoMT09SC5hdXRvJiYxPT1pZS5hdXRvKXJldHVybiExO2lmKCEhSC5hdXRvIT0hIWllLmF1dG98fG51''@;'; put 'put ''bGw9PUgudGhlbWUhPShudWxsPT1pZS50aGVtZSkpcmV0dXJuITA7aWYobnVsbCE9SC50aGVtZSlyZXR1cm4gSC50aGVtZSE9aWUudGhlbWV8fEgudGludCE9aWUudGludDtpZihudWxsPT1ILnJnYiYmbnVsbD09aWUucmdiKXJldHVybiExO3ZhciBYPUgucmdiOyJudW1iZXIiPT10eXBlb2Yg''@;'; put 'put ''WCYmKFg9WC50b1N0cmluZygxNikpLFg9WC5zbGljZSgtNik7dmFyIHdlPWllLnJnYjtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHdlJiYod2U9d2UudG9TdHJpbmcoMTYpKSx3ZT13ZS5zbGljZSgtNiksWC50b0xvd2VyQ2FzZSgpIT13ZS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIFQ5KEgsaWUp''@;'; put 'put ''e3JldHVybiBudWxsPT1IP251bGwhPWllOm51bGw9PWllP251bGwhPUg6SC5zdHlsZSE9aWUuc3R5bGV8fF8zKEguY29sb3IsaWUuY29sb3IpfWZ1bmN0aW9uIFE4KEgsaWUpe2lmKDA9PT1pZSlyZXR1cm4gSDt2YXIgWD1mdW5jdGlvbiBhMihIKXt2YXIgaWU9SFswXS8yNTUsWD1IWzFdLzI1''@;'; put 'put ''NSx3ZT1IWzJdLzI1NSx4ZT1NYXRoLm1heChpZSxYLHdlKSxGZT1NYXRoLm1pbihpZSxYLHdlKSxaZT14ZS1GZTtpZigwPT09WmUpcmV0dXJuWzAsMCxpZV07dmFyIFllLGplPTAsTXQ9eGUrRmU7c3dpdGNoKFllPVplLyhNdD4xPzItTXQ6TXQpLHhlKXtjYXNlIGllOmplPSgoWC13ZSkvWmUr''@;'; put 'put ''NiklNjticmVhaztjYXNlIFg6amU9KHdlLWllKS9aZSsyO2JyZWFrO2Nhc2Ugd2U6amU9KGllLVgpL1plKzR9cmV0dXJuW2plLzYsWWUsTXQvMl19KFk4KEgpKTtyZXR1cm4gWFsyXT1pZTwwP1hbMl0qKDEraWUpOjEtKDEtWFsyXSkqKDEtaWUpLGIzKGZ1bmN0aW9uIFU4KEgpe3ZhciBZZSxY''@;'; put 'put ''PUhbMV0sd2U9SFsyXSx4ZT0yKlgqKHdlPC41P3dlOjEtd2UpLEZlPXdlLXhlLzIsWmU9W0ZlLEZlLEZlXSxqZT02KkhbMF07aWYoMCE9PVgpc3dpdGNoKDB8amUpe2Nhc2UgMDpjYXNlIDY6WWU9eGUqamUsWmVbMF0rPXhlLFplWzFdKz1ZZTticmVhaztjYXNlIDE6WmVbMF0rPVllPXhlKigy''@;'; put 'put ''LWplKSxaZVsxXSs9eGU7YnJlYWs7Y2FzZSAyOlllPXhlKihqZS0yKSxaZVsxXSs9eGUsWmVbMl0rPVllO2JyZWFrO2Nhc2UgMzpaZVsxXSs9WWU9eGUqKDQtamUpLFplWzJdKz14ZTticmVhaztjYXNlIDQ6WWU9eGUqKGplLTQpLFplWzJdKz14ZSxaZVswXSs9WWU7YnJlYWs7Y2FzZSA1Olpl''@;'; put 'put ''WzJdKz1ZZT14ZSooNi1qZSksWmVbMF0rPXhlfWZvcih2YXIgTXQ9MDszIT1NdDsrK010KVplW010XT1NYXRoLnJvdW5kKDI1NSpaZVtNdF0pO3JldHVybiBaZX0oWCkpfXZhciBLMj02O2Z1bmN0aW9uIG1tKEgpe3JldHVybiBNYXRoLmZsb29yKChIK01hdGgucm91bmQoMTI4L0syKS8yNTYp''@;'; put 'put ''KksyKX1mdW5jdGlvbiBJOShIKXtyZXR1cm4gTWF0aC5mbG9vcigoSC01KS9LMioxMDArLjUpLzEwMH1mdW5jdGlvbiBfYihIKXtyZXR1cm4gTWF0aC5yb3VuZCgoSCpLMis1KS9LMioyNTYpLzI1Nn1mdW5jdGlvbiB5YyhIKXtILmJlc3RGaXQmJmRlbGV0ZSBILmJlc3RGaXQsSC53aWR0aD8o''@;'; put 'put ''SC53cHg9bW0oSC53aWR0aCksSC53Y2g9STkoSC53cHgpLEguTURXPUsyKTpILndweD8oSC53Y2g9STkoSC53cHgpLEgud2lkdGg9X2IoSC53Y2gpLEguTURXPUsyKToibnVtYmVyIj09dHlwZW9mIEgud2NoJiYoSC53aWR0aD1fYihILndjaCksSC53cHg9bW0oSC53aWR0aCksSC5NRFc9SzIp''@;'; put 'put ''LEguY3VzdG9tV2lkdGgmJmRlbGV0ZSBILmN1c3RvbVdpZHRofXZhciBSND05NjtmdW5jdGlvbiBUaChIKXtyZXR1cm4gNzIqSC9SNH1mdW5jdGlvbiBBZihIKXtyZXR1cm4gSCpSNC83Mn1mdW5jdGlvbiBDMyhIKXtSND1IPXtvc3g6NzIsd2luOjk2LHdpbjEwMDo5Nix3aW4xMjU6MTIwLHdp''@;'; put 'put ''bjE1MDoxNDR9W0hdfHxIfHw5NixDYj1mNltIXX1mdW5jdGlvbiBKOChIKXtILmhweD9ILmhwdD1UaChILmhweCk6SC5ocHQmJihILmhweD1BZihILmhwdCkpfXZhciBqUj17Tm9uZToibm9uZSIsU29saWQ6InNvbGlkIixHcmF5NTA6Im1lZGl1bUdyYXkiLEdyYXk3NToiZGFya0dyYXkiLEdy''@;'; put 'put ''YXkyNToibGlnaHRHcmF5IixIb3J6U3RyaXBlOiJkYXJrSG9yaXpvbnRhbCIsVmVydFN0cmlwZToiZGFya1ZlcnRpY2FsIixSZXZlcnNlRGlhZ1N0cmlwZToiZGFya0Rvd24iLERpYWdTdHJpcGU6ImRhcmtVcCIsRGlhZ0Nyb3NzOiJkYXJrR3JpZCIsVGhpY2tEaWFnQ3Jvc3M6ImRhcmtUcmVs''@;'; put 'put ''bGlzIixUaGluSG9yelN0cmlwZToibGlnaHRIb3Jpem9udGFsIixUaGluVmVydFN0cmlwZToibGlnaHRWZXJ0aWNhbCIsVGhpblJldmVyc2VEaWFnU3RyaXBlOiJsaWdodERvd24iLFRoaW5Ib3J6Q3Jvc3M6ImxpZ2h0R3JpZCJ9LGhFPXR0KGpSKSxEOT17b3JhbmdlOjE2NzUzOTIwLGJsYWNr''@;'; put 'put ''OjAsbmF2eToxMjgsYmx1ZToyNTUsZ3JlZW46MzI3NjgsdGVhbDozMjg5NixsaW1lOjY1MjgwLGFxdWE6NjU1MzUsc2lsdmVyOjEyNjMyMjU2LG1hcm9vbjo4Mzg4NjA4LHB1cnBsZTo4Mzg4NzM2LG9saXZlOjg0MjEzNzYsZ3JheTo4NDIxNTA0LHJlZDoxNjcxMTY4MCxmdWNoc2lhOjE2NzEx''@;'; put 'put ''OTM1LHllbGxvdzoxNjc3Njk2MCx3aGl0ZToxNjc3NzIxNX07ZnVuY3Rpb24gWDgoSCxpZSl7aWYoSC5yZXBsYWNlKCIjIiwiIikubWF0Y2goL15bMC05YS1mQS1GXXs2fSQvKSlyZXR1cm4gcGFyc2VJbnQoSC5yZXBsYWNlKCIjIiwiIiksMTYpO2lmKEQ5W0hdKXJldHVybiBEOVtIXTt2YXIg''@;'; put 'put ''WD1ILm1hdGNoKC9yZ2JcKFxzKihcZCopXHMqLFxzKihcZCopXHMqLFxzKihcZCopXHMqXCkvKTtpZihYKXJldHVybigrWFsxXTw8MTYpKygrWFsyXTw8OCkrICtYWzNdO2lmKFg9SC5tYXRjaCgvcmdiYVwoXHMqKFxkKilccyosXHMqKFxkKilccyosXHMqKFxkKilccyooXGQqKS8pKXJldHVy''@;'; put 'put ''biAwIT0oWFs0XSYmWFs0XS5sZW5ndGg+MCYmK1hbNF18fDApfHwrWFsxXT4wfHwrWFsyXT4wfHwrWFszXT4wPygrWFsxXTw8MTYpKygrWFsyXTw8OCkrICtYWzNdOmllPy0xOjE2Nzc3MjE1O3Rocm93IG5ldyBFcnJvcigiVW5rbm93biBIVE1MIGNvbG9yICIrSCl9dmFyIGY2PXt9O2Z1bmN0''@;'; put 'put ''aW9uIGszKEgpe0g9SHx8OTY7dmFyIGllPXtDYWxpYnJpOltdLEFyaWFsOltdLCJTcGFya2Fzc2UgUmciOltdLFx1NWI4Ylx1NGY1MzpbXSxcdTZlMzhcdTMwYjRcdTMwYjdcdTMwYzNcdTMwYWY6W10sIkNlbnR1cnkgR290aGljIjpbXX07cmV0dXJuIGllLkNhbGlicmlbMTFdPTcsaWUuQ2Fs''@;'; put 'put ''aWJyaVsxMl09ezcyOjYsOTY6OCwxMjA6MTAsMTQ0OjEyfVtIXXx8OCxpZS5DYWxpYnJpWzEzXT0xMCxpZS5DYWxpYnJpWzE0XT0xMSxpZS5DYWxpYnJpWzE2XT0xMixpZS5DYWxpYnJpWzE4XT0xNCxpZS5DYWxpYnJpWzIwXT0xNixpZS5cdTViOGJcdTRmNTNbMTFdPTgsaWUuXHU2ZTM4XHUz''@;'; put 'put ''MGI0XHUzMGI3XHUzMGMzXHUzMGFmWzExXT04LGllWyJTcGFya2Fzc2UgUmciXVsxMV09NyxpZS5BcmlhbFsxMF09NyxpZVsiQ2VudHVyeSBHb3RoaWMiXVsxMl09OSxpZX1mNls3Ml09azMoNzIpLGY2Wzk2XT1rMyg5NiksZjZbMTIwXT1rMygxMjApLGY2WzE0NF09azMoMTQ0KTt2YXIgQ2I9''@;'; put 'put ''ZjZbOTZdO2Z1bmN0aW9uIHZtKEgpe3JldHVybihDYltILm5hbWV8fEguRm9udE5hbWVdfHxbXSlbSC5zenx8SC5TaXplXX1mdW5jdGlvbiBTMyhIKXtpZihIKXt2YXIgaWU9dm0oSCk7aWYoaWUpcmV0dXJuIEsyPWllfXJldHVybiBLMj02fWZ1bmN0aW9uIGg2KEgsaWUsWCl7cmV0dXJuIGIz''@;'; put 'put ''KGZ1bmN0aW9uIFpSKEgsaWUsWCl7cmV0dXJuW01hdGgucm91bmQoaWVbMF0qWCtIWzBdKigxLVgpKSxNYXRoLnJvdW5kKGllWzFdKlgrSFsxXSooMS1YKSksTWF0aC5yb3VuZChpZVsyXSpYK0hbMl0qKDEtWCkpXX0oWTgoIm51bWJlciI9PXR5cGVvZiBILnJnYj8oIjAwMDAwIitILnRvU3Ry''@;'; put 'put ''aW5nKDE2KSkuc2xpY2UoLTYpOkgucmdiKSxZOCgibnVtYmVyIj09dHlwZW9mIGllLnJnYj8oIjAwMDAwIitpZS50b1N0cmluZygxNikpLnNsaWNlKC02KTppZS5yZ2IpLFgpKX1mdW5jdGlvbiBNMyhILGllLFgpe2lmKFgpc3dpdGNoKCtIKXtjYXNlIDY0Okg9NjU7YnJlYWs7Y2FzZSA2NTpI''@;'; put 'put ''PTY0fXZhciB3ZT1pZSYmaWVbK0hdfHx1dVsrSF18fE9NWytILTIwMF07aWYoODE9PStIJiYod2U9dXVbMV0pLHdlfHwod2U9dXVbMV0pLCF3ZSl0aHJvdyBuZXcgRXJyb3IoImJhZCBJQ1YgaW5kZXggIitIKTtyZXR1cm4gYjMod2UpfWZ1bmN0aW9uIEUzKEgsaWUsWCl7dmFyIHdlPXt9O3Jl''@;'; put 'put ''dHVybiBudWxsIT1ILmluZGV4ZWQmJih3ZS5pbmRleD1wYXJzZUludChILmluZGV4ZWQsMTApLHdlLnJnYj1NMyh3ZS5pbmRleCxpZS5JbmRleGVkKSksbnVsbCE9SC50aGVtZSYmKHdlLnRoZW1lPXBhcnNlSW50KEgudGhlbWUsMTApKSxudWxsIT1ILnRpbnQmJih3ZS50aW50PXBhcnNlRmxv''@;'; put 'put ''YXQoSC50aW50KSksbnVsbCE9SC5yZ2ImJih3ZS5yZ2I9SC5yZ2Iuc2xpY2UoLTYpKSxudWxsIT13ZS50aGVtZSYmIXdlLnJnYiYmWC50aGVtZUVsZW1lbnRzJiYod2UucmdiPVE4KFgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbd2UudGhlbWVdLnJnYix3ZS50aW50fHwwKSx3ZS5yYXdfcmdi''@;'; put 'put ''PVgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbd2UudGhlbWVdLnJnYiksd2V9ZnVuY3Rpb24ga2IoSCxpZSxYLHdlKXtpZS5Cb3JkZXJzPVtdO3ZhciB4ZT17fSxGZT17fSxaZT0hMTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKGplKXt2YXIgWWU9ZW4oamUpO3N3aXRj''@;'; put 'put ''aChJbihZZVswXSkpe2Nhc2UiPGJvcmRlcnMiOmNhc2UiPGJvcmRlcnM+IjpjYXNlIjwvYm9yZGVycz4iOmNhc2UiPC9ib3JkZXI+IjpjYXNlIjxsZWZ0Lz4iOmNhc2UiPC9sZWZ0PiI6Y2FzZSI8cmlnaHQvPiI6Y2FzZSI8L3JpZ2h0PiI6Y2FzZSI8dG9wLz4iOmNhc2UiPC90b3A+IjpjYXNl''@;'; put 'put ''Ijxib3R0b20vPiI6Y2FzZSI8L2JvdHRvbT4iOmNhc2UiPGRpYWdvbmFsIjpjYXNlIjxkaWFnb25hbD4iOmNhc2UiPGRpYWdvbmFsLz4iOmNhc2UiPGhvcml6b250YWwiOmNhc2UiPGhvcml6b250YWw+IjpjYXNlIjxob3Jpem9udGFsLz4iOmNhc2UiPHZlcnRpY2FsIjpjYXNlIjx2ZXJ0aWNh''@;'; put 'put ''bD4iOmNhc2UiPHZlcnRpY2FsLz4iOmNhc2UiPHN0YXJ0IjpjYXNlIjxzdGFydD4iOmNhc2UiPHN0YXJ0Lz4iOmNhc2UiPC9zdGFydD4iOmNhc2UiPGVuZCI6Y2FzZSI8ZW5kPiI6Y2FzZSI8ZW5kLz4iOmNhc2UiPC9lbmQ+IjpjYXNlIjxjb2xvci8+IjpjYXNlIjwvY29sb3I+IjpjYXNlIjxl''@;'; put 'put ''eHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxib3JkZXIiOmNhc2UiPGJvcmRlcj4iOmNhc2UiPGJvcmRlci8+Ijp4ZT17fSxZZS5kaWFnb25hbFVwJiYoeGUuZGlhZ29uYWxVcD1EaShZZS5kaWFnb25hbFVwKSksWWUuZGlhZ29uYWxEb3duJiYoeGUu''@;'; put 'put ''ZGlhZ29uYWxEb3duPURpKFllLmRpYWdvbmFsRG93bikpLGllLkJvcmRlcnMucHVzaCh4ZSk7YnJlYWs7Y2FzZSI8bGVmdCI6Y2FzZSI8bGVmdD4iOkZlPXhlLmxlZnQ9e30sWWUuc3R5bGUmJihGZS5zdHlsZT1ZZS5zdHlsZSk7YnJlYWs7Y2FzZSI8cmlnaHQiOmNhc2UiPHJpZ2h0PiI6RmU9''@;'; put 'put ''eGUucmlnaHQ9e30sWWUuc3R5bGUmJihGZS5zdHlsZT1ZZS5zdHlsZSk7YnJlYWs7Y2FzZSI8dG9wIjpjYXNlIjx0b3A+IjpGZT14ZS50b3A9e30sWWUuc3R5bGUmJihGZS5zdHlsZT1ZZS5zdHlsZSk7YnJlYWs7Y2FzZSI8Ym90dG9tIjpjYXNlIjxib3R0b20+IjpGZT14ZS5ib3R0b209e30s''@;'; put 'put ''WWUuc3R5bGUmJihGZS5zdHlsZT1ZZS5zdHlsZSk7YnJlYWs7Y2FzZSI8L2RpYWdvbmFsPiI6eGUuZGlhZ29uYWw9RmUsRmU9e307YnJlYWs7Y2FzZSI8L2hvcml6b250YWw+Ijp4ZS5ob3Jpem9udGFsPUZlLEZlPXt9O2JyZWFrO2Nhc2UiPC92ZXJ0aWNhbD4iOnhlLnZlcnRpY2FsPUZlLEZl''@;'; put 'put ''PXt9O2JyZWFrO2Nhc2UiPGNvbG9yIjpjYXNlIjxjb2xvcj4iOkZlLmNvbG9yfHwoRmUuY29sb3I9e30pLFllLmF1dG8mJihGZS5jb2xvci5hdXRvPURpKFllLmF1dG8pKSxudWxsIT1ZZS5yZ2I/RmUuY29sb3IucmdiPVllLnJnYi5zbGljZSgtNik6WWUuaW5kZXhlZD8oRmUuY29sb3IuaW5k''@;'; put 'put ''ZXg9cGFyc2VJbnQoWWUuaW5kZXhlZCwxMCksRmUuY29sb3IucmdiPU0zKEZlLmNvbG9yLmluZGV4LGllLkluZGV4ZWQsITEpKTpZZS50aGVtZSYmKEZlLmNvbG9yLnRoZW1lPXBhcnNlSW50KFllLnRoZW1lLDEwKSxZZS50aW50JiYoRmUuY29sb3IudGludD1wYXJzZUZsb2F0KFllLnRpbnQp''@;'; put 'put ''KSxZZS50aGVtZSYmWC50aGVtZUVsZW1lbnRzJiZYLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lJiYoRmUuY29sb3IucmdiPVE4KFgudGhlbWVFbGVtZW50cy5jbHJTY2hlbWVbRmUuY29sb3IudGhlbWVdLnJnYixGZS5jb2xvci50aW50fHwwKSkpLCFZZS5hdXRvJiZudWxsPT1ZZS5yZ2ImJiFZ''@;'; put 'put ''ZS5pbmRleGVkJiZkZWxldGUgRmUuY29sb3I7YnJlYWs7Y2FzZSI8ZXh0IjpaZT0hMDticmVhaztjYXNlIjwvZXh0PiI6WmU9ITE7YnJlYWs7ZGVmYXVsdDppZih3ZSYmd2UuV1RGJiYhWmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitZZVswXSsiIGluIGJvcmRlcnMiKX19KX1m''@;'; put 'put ''dW5jdGlvbiBrZChILGllKXt2YXIgWD1bIjwiK2llXTtyZXR1cm4gSCYmSC5zdHlsZT8oWC5wdXNoKCcgc3R5bGU9IicrSC5zdHlsZSsnIicpLEguY29sb3I/KFgucHVzaCgiPiIpLFgucHVzaChYcyhILmNvbG9yLCEwKSksWC5qb2luKCIiKSsiPC8iK2llKyI+Iik6WC5qb2luKCIiKSsiLz4i''@;'; put 'put ''KTpYWzBdKyIvPiJ9ZnVuY3Rpb24gZEUoSCxpZSxYLHdlKXtpZS5GaWxscz1bXTt2YXIgeGU9e30sRmU9e30sWmU9ITEsamU9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihZZSl7dmFyIE10PWVuKFllKTtzd2l0Y2goSW4oTXRbMF0pKXtjYXNlIjxmaWxscyI6Y2Fz''@;'; put 'put ''ZSI8ZmlsbHM+IjpjYXNlIjwvZmlsbHM+IjpjYXNlIjwvZmlsbD4iOmNhc2UiPC9ncmFkaWVudEZpbGw+IjpjYXNlIjxiZ0NvbG9yLz4iOmNhc2UiPC9iZ0NvbG9yPiI6Y2FzZSI8ZmdDb2xvci8+IjpjYXNlIjwvZmdDb2xvcj4iOmNhc2UiPGNvbG9yLz4iOmNhc2UiPC9jb2xvcj4iOmNhc2Ui''@;'; put 'put ''PHN0b3AvPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZmlsbD4iOmNhc2UiPGZpbGwiOmNhc2UiPGZpbGwvPiI6aWUuRmlsbHMucHVzaCh4ZT17fSk7YnJlYWs7Y2FzZSI8Z3JhZGllbnRGaWxsPiI6eGUuc3RvcHM9W107YnJlYWs7''@;'; put 'put ''Y2FzZSI8Z3JhZGllbnRGaWxsIjp4ZS5zdG9wcz1bXSxNdC5kZWdyZWUmJih4ZS5hbmdsZT0rTXQuZGVncmVlKTticmVhaztjYXNlIjxwYXR0ZXJuRmlsbCI6Y2FzZSI8cGF0dGVybkZpbGw+IjpNdC5wYXR0ZXJuVHlwZSYmKHhlLnBhdHRlcm5UeXBlPU10LnBhdHRlcm5UeXBlKTticmVhaztj''@;'; put 'put ''YXNlIjxwYXR0ZXJuRmlsbC8+IjpjYXNlIjwvcGF0dGVybkZpbGw+IjppZihaZSl0aHJvdyBuZXcgRXJyb3IoImJhZCBzdG9wIik7YnJlYWs7Y2FzZSI8Y29sb3IiOmNhc2UiPGJnQ29sb3IiOmNhc2UiPGZnQ29sb3IiOnZhciB4dD1JbihNdFswXSkuc2xpY2UoMSk7ImNvbG9yIiE9eHQmJiF4''@;'; put 'put ''ZVt4dF0mJih4ZVt4dF09e30pO3ZhciBSdD1aZT9GZTp4ZVt4dF07bnVsbCE9TXQuaW5kZXhlZCYmKFJ0LmluZGV4PXBhcnNlSW50KE10LmluZGV4ZWQsMTApLFJ0LnJnYj1NMyhSdC5pbmRleCxpZS5JbmRleGVkKSksbnVsbCE9TXQudGhlbWUmJihSdC50aGVtZT1wYXJzZUludChNdC50aGVt''@;'; put 'put ''ZSwxMCkpLG51bGwhPU10LnRpbnQmJihSdC50aW50PXBhcnNlRmxvYXQoTXQudGludCkpLG51bGwhPU10LnJnYiYmKFJ0LnJnYj1NdC5yZ2Iuc2xpY2UoLTYpKSxudWxsIT1NdC5hdXRvJiZkZWxldGUgeGVbeHRdLG51bGwhPVJ0LnRoZW1lJiYhUnQucmdiJiZYLnRoZW1lRWxlbWVudHMmJihS''@;'; put 'put ''dC5yZ2I9UTgoWC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtSdC50aGVtZV0ucmdiLFJ0LnRpbnR8fDApLHdlLldURiYmKFJ0LnJhd19yZ2I9WC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVtSdC50aGVtZV0ucmdiKSk7YnJlYWs7Y2FzZSI8c3RvcD4iOlplPSEwLEZlPXt9O2JyZWFrO2Nhc2Ui''@;'; put 'put ''PHN0b3AiOlplPSEwLEZlPXt9LG51bGwhPU10LnBvc2l0aW9uJiYoRmUudj1wYXJzZUZsb2F0KE10LnBvc2l0aW9uKSk7YnJlYWs7Y2FzZSI8L3N0b3A+IjpaZT0hMSx4ZS5zdG9wcy5wdXNoKEZlKTticmVhaztjYXNlIjxleHQiOmplPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpqZT0hMTticmVh''@;'; put 'put ''aztkZWZhdWx0OmlmKHdlJiZ3ZS5XVEYmJiFqZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK010WzBdKyIgaW4gZmlsbHMiKX19KX1mdW5jdGlvbiBkNihILGllLFgsd2Upe2llLkZvbnRzPVtdO3ZhciB4ZT17fSxGZT0hMTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1''@;'; put 'put ''bmN0aW9uKFplKXt2YXIgamU9ZW4oWmUpO3N3aXRjaChJbihqZVswXSkpe2Nhc2UiPGZvbnRzIjpjYXNlIjxmb250cz4iOmNhc2UiPC9mb250cz4iOmJyZWFrO2Nhc2UiPGZvbnQiOmNhc2UiPGZvbnQ+IjppZigiLz4iIT1aZS5zbGljZSgtMikpYnJlYWs7Y2FzZSI8L2ZvbnQ+IjpjYXNlIjxm''@;'; put 'put ''b250Lz4iOmllLkZvbnRzLnB1c2goeGUpLHhlPXt9O2JyZWFrO2Nhc2UiPG5hbWUiOmplLnZhbCYmKHhlLm5hbWU9VzAoamUudmFsKSk7YnJlYWs7Y2FzZSI8bmFtZS8+IjpjYXNlIjwvbmFtZT4iOmJyZWFrO2Nhc2UiPGIiOnhlLmJvbGQ9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNl''@;'; put 'put ''IjxiLz4iOmNhc2UiPGI+Ijp4ZS5ib2xkPTE7YnJlYWs7Y2FzZSI8L2I+IjpicmVhaztjYXNlIjxpIjp4ZS5pdGFsaWM9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxpLz4iOmNhc2UiPGk+Ijp4ZS5pdGFsaWM9MTticmVhaztjYXNlIjwvaT4iOmJyZWFrO2Nhc2UiPHUiOnN3aXRj''@;'; put 'put ''aChqZS52YWwpe2Nhc2Uibm9uZSI6eGUudW5kZXJsaW5lPTA7YnJlYWs7Y2FzZSJzaW5nbGUiOnhlLnVuZGVybGluZT0xO2JyZWFrO2Nhc2UiZG91YmxlIjp4ZS51bmRlcmxpbmU9MjticmVhaztjYXNlInNpbmdsZUFjY291bnRpbmciOnhlLnVuZGVybGluZT0zMzticmVhaztjYXNlImRvdWJs''@;'; put 'put ''ZUFjY291bnRpbmciOnhlLnVuZGVybGluZT0zNH1icmVhaztjYXNlIjx1Lz4iOmNhc2UiPHU+Ijp4ZS51bmRlcmxpbmU9MTticmVhaztjYXNlIjwvdT4iOmJyZWFrO2Nhc2UiPHN0cmlrZSI6eGUuc3RyaWtlPWplLnZhbD9EaShqZS52YWwpOjE7YnJlYWs7Y2FzZSI8c3RyaWtlLz4iOnhlLnN0''@;'; put 'put ''cmlrZT0xO2JyZWFrO2Nhc2UiPG91dGxpbmUiOnhlLm91dGxpbmU9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxvdXRsaW5lLz4iOnhlLm91dGxpbmU9MTticmVhaztjYXNlIjxzaGFkb3ciOnhlLnNoYWRvdz1qZS52YWw/RGkoamUudmFsKToxO2JyZWFrO2Nhc2UiPHNoYWRvdy8+''@;'; put 'put ''Ijp4ZS5zaGFkb3c9MTticmVhaztjYXNlIjxjb25kZW5zZSI6eGUuY29uZGVuc2U9amUudmFsP0RpKGplLnZhbCk6MTticmVhaztjYXNlIjxjb25kZW5zZS8+Ijp4ZS5jb25kZW5zZT0xO2JyZWFrO2Nhc2UiPGV4dGVuZCI6eGUuZXh0ZW5kPWplLnZhbD9EaShqZS52YWwpOjE7YnJlYWs7Y2Fz''@;'; put 'put ''ZSI8ZXh0ZW5kLz4iOnhlLmV4dGVuZD0xO2JyZWFrO2Nhc2UiPHN6IjpqZS52YWwmJih4ZS5zej0ramUudmFsKTticmVhaztjYXNlIjxzei8+IjpjYXNlIjwvc3o+IjpicmVhaztjYXNlIjx2ZXJ0QWxpZ24iOiJub25lIiE9KGplLnZhbHx8Im5vbmUiKSYmKHhlLnZhbGlnbj1qZS52YWwucmVw''@;'; put 'put ''bGFjZSgic2NyaXB0IiwiIikpO2JyZWFrO2Nhc2UiPHZlcnRBbGlnbi8+IjpjYXNlIjwvdmVydEFsaWduPiI6YnJlYWs7Y2FzZSI8ZmFtaWx5IjpqZS52YWwmJih4ZS5mYW1pbHk9cGFyc2VJbnQoamUudmFsLDEwKSk7YnJlYWs7Y2FzZSI8ZmFtaWx5Lz4iOmNhc2UiPC9mYW1pbHk+IjpicmVh''@;'; put 'put ''aztjYXNlIjxzY2hlbWUiOmplLnZhbCYmKHhlLnNjaGVtZT1qZS52YWwpO2JyZWFrO2Nhc2UiPHNjaGVtZS8+IjpjYXNlIjwvc2NoZW1lPiI6YnJlYWs7Y2FzZSI8Y2hhcnNldCI6aWYoIjEiPT1qZS52YWwpYnJlYWs7amUuY29kZXBhZ2U9WVtwYXJzZUludChqZS52YWwsMTApXTticmVhaztj''@;'; put 'put ''YXNlIjxjb2xvciI6eGUuY29sb3J8fCh4ZS5jb2xvcj17fSksamUuYXV0byYmKHhlLmNvbG9yLmF1dG89RGkoamUuYXV0bykpLGplLnJnYj94ZS5jb2xvci5yZ2I9amUucmdiLnNsaWNlKC02KTpqZS5pbmRleGVkPyh4ZS5jb2xvci5pbmRleD1wYXJzZUludChqZS5pbmRleGVkLDEwKSx4ZS5j''@;'; put 'put ''b2xvci5yZ2I9TTMoeGUuY29sb3IuaW5kZXgsaWUuSW5kZXhlZCkpOmplLnRoZW1lJiYoeGUuY29sb3IudGhlbWU9cGFyc2VJbnQoamUudGhlbWUsMTApLGplLnRpbnQmJih4ZS5jb2xvci50aW50PXBhcnNlRmxvYXQoamUudGludCkpLGplLnRoZW1lJiZYLnRoZW1lRWxlbWVudHMmJlgudGhl''@;'; put 'put ''bWVFbGVtZW50cy5jbHJTY2hlbWUmJih4ZS5jb2xvci5yZ2I9UTgoWC50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVt4ZS5jb2xvci50aGVtZV0ucmdiLHhlLmNvbG9yLnRpbnR8fDApKSk7YnJlYWs7Y2FzZSI8Y29sb3IvPiI6Y2FzZSI8L2NvbG9yPiI6YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29u''@;'; put 'put ''dGVudCI6RmU9ITA7YnJlYWs7Y2FzZSI8L0FsdGVybmF0ZUNvbnRlbnQ+IjpGZT0hMTticmVhaztjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxleHQiOkZlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+IjpGZT0hMTticmVhaztkZWZhdWx0Omlm''@;'; put 'put ''KHdlJiZ3ZS5XVEYmJiFGZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK2plWzBdKyIgaW4gZm9udHMiKX19KX12YXIgTzk9ezA6Im5vbmUiLDE6InNpbmdsZSIsMjoiZG91YmxlIiwzMzoic2luZ2xlQWNjb3VudGluZyIsMzQ6ImRvdWJsZUFjY291bnRpbmcifSx4Mz1bIm51bUZt''@;'; put 'put ''dElkIiwiZmlsbElkIiwiZm9udElkIiwiYm9yZGVySWQiLCJ4ZklkIl0sQjQ9WyJhcHBseUFsaWdubWVudCIsImFwcGx5Qm9yZGVyIiwiYXBwbHlGaWxsIiwiYXBwbHlGb250IiwiYXBwbHlOdW1iZXJGb3JtYXQiLCJhcHBseVByb3RlY3Rpb24iLCJwaXZvdEJ1dHRvbiIsInF1b3RlUHJlZml4''@;'; put 'put ''Il0scDY9ZnVuY3Rpb24oKXt2YXIgSD0vPCg/Olx3KzopP2ZvbnQoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Zm9udD4vLGllPS88KD86XHcrOik/bnVtRm10KFtePl0qKVwvPi8sWD0vPCg/Olx3KzopP2ZpbGwoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/ZmlsbD4vLHhlPS88KD86''@;'; put 'put ''XHcrOik/Ym9yZGVyKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2JvcmRlcj4vO3JldHVybiBmdW5jdGlvbihqZSxZZSxNdCx4dCl7dmFyIG5uLENuLFJ0PXt9LFV0PXt9O3JldHVybihubj1qZS5tYXRjaChIKSkmJihkNihubixSdCxNdCx4dCksKFJ0LkZvbnRzfHxbXSlbMF0mJmJuKFV0''@;'; put 'put ''LFJ0LkZvbnRzWzBdKSksKG5uPWplLm1hdGNoKGllKSkmJihDbj1lbihXMChublswXSkpLFV0Lno9Q24uZm9ybWF0Q29kZT9ncihDbi5mb3JtYXRDb2RlKTooWWUuTnVtYmVyRm10fHxbXSlbK0NuLm51bUZtdElkXXx8IkdlbmVyYWwiKSwobm49amUubWF0Y2goWCkpJiYoZEUobm4sUnQsTXQs''@;'; put 'put ''eHQpLChSdC5GaWxsc3x8W10pWzBdJiZibihVdCxSdC5GaWxsc1swXSkpLChubj1qZS5tYXRjaCh4ZSkpJiYoa2Iobm4sUnQsTXQseHQpLChSdC5Cb3JkZXJzfHxbXSlbMF0mJmJuKFV0LFJ0LkJvcmRlcnNbMF0pKSxVdH19KCksYm89LzwoPzpcdys6KT9keGY+W1xTXHNdKj88XC8oPzpcdys6''@;'; put 'put ''KT9keGY+L2csR2E9LzwoPzpcdys6KT90YWJsZVN0eWxlXGIuKj8+W1xTXHNdKj88XC8oPzpcdys6KT90YWJsZVN0eWxlPi9nO3ZhciBCOT1mdW5jdGlvbigpe3ZhciBpZT0vPCg/Olx3KzopP251bUZtdHMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/bnVtRm10cz4vLFg9LzwoPzpcdys6''@;'; put 'put ''KT9jZWxsU3R5bGVYZnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/Y2VsbFN0eWxlWGZzPi8sd2U9LzwoPzpcdys6KT9jZWxsU3R5bGVzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2NlbGxTdHlsZXM+Lyx4ZT0vPCg/Olx3KzopP2NlbGxYZnMoW14+XSopPltcU1xzXSo/PFwvKD86''@;'; put 'put ''XHcrOik/Y2VsbFhmcz4vLEZlPS88KD86XHcrOik/ZmlsbHMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/ZmlsbHM+LyxaZT0vPCg/Olx3KzopP2ZvbnRzKFtePl0qKT5bXFNcc10qPzxcLyg/Olx3KzopP2ZvbnRzPi8samU9LzwoPzpcdys6KT9ib3JkZXJzKFtePl0qKT5bXFNcc10qPzxc''@;'; put 'put ''Lyg/Olx3KzopP2JvcmRlcnM+LyxZZT0vPCg/Olx3KzopP2luZGV4ZWRDb2xvcnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/aW5kZXhlZENvbG9ycz4vLE10PS88KD86XHcrOik/dGFibGVTdHlsZXMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/dGFibGVTdHlsZXM+Lyx4dD0vPCg/''@;'; put 'put ''Olx3KzopP2R4ZnMoW14+XSopPltcU1xzXSo/PFwvKD86XHcrOik/ZHhmcz4vO3JldHVybiBmdW5jdGlvbihVdCxubixDbil7dmFyIHp0LER0PXt9O3JldHVybiBVdD8oKHp0PShVdD1VdC5yZXBsYWNlKC88IS0tKFtcc1xTXSo/KS0tPi9nbSwiIikucmVwbGFjZSgvPCFET0NUWVBFW15cW10q''@;'; put 'put ''XFtbXlxdXSpcXT4vZ20sIiIpKS5tYXRjaChZZSkpJiZmdW5jdGlvbiB3RShILGllLFgpe2llLkluZGV4ZWR8fChpZS5JbmRleGVkPVtdKTt2YXIgd2U9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPWVuKHhlKTtzd2l0Y2goSW4oRmVbMF0pKXtj''@;'; put 'put ''YXNlIjxpbmRleGVkQ29sb3JzPiI6Y2FzZSI8aW5kZXhlZENvbG9ycyI6Y2FzZSI8aW5kZXhlZENvbG9ycy8+IjpjYXNlIjwvaW5kZXhlZENvbG9ycz4iOmNhc2UiPC9yZ2JDb2xvcj4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHJn''@;'; put 'put ''YkNvbG9yIjpkZWxldGUgRmVbMF07dmFyIFplPXBhcnNlSW50KEZlLnJnYi5zbGljZSgtNiksMTYpO2llLkluZGV4ZWQucHVzaChbWmU+PjE2JjI1NSxaZT4+OCYyNTUsMjU1JlplXSk7YnJlYWs7Y2FzZSI8ZXh0Ijp3ZT0hMDticmVhaztjYXNlIjwvZXh0PiI6d2U9ITE7YnJlYWs7ZGVmYXVs''@;'; put 'put ''dDppZihYJiZYLldURiYmIXdlKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrRmVbMF0rIiBpbiBjZWxsU3R5bGVzIil9fSl9KHp0LER0LENuKSwoenQ9VXQubWF0Y2goaWUpKSYmZnVuY3Rpb24gZ0UoSCxpZSxYKXtpZS5OdW1iZXJGbXQ9W107Zm9yKHZhciB3ZT1vbihGLl90YWJs''@;'; put 'put ''ZSkseGU9MDt4ZTx3ZS5sZW5ndGg7Kyt4ZSlpZS5OdW1iZXJGbXRbd2VbeGVdXT1GLl90YWJsZVt3ZVt4ZV1dO3ZhciBGZT1IWzBdLm1hdGNoKEd0KTtpZihGZSlmb3IoeGU9MDt4ZTxGZS5sZW5ndGg7Kyt4ZSl7dmFyIFplPWVuKEZlW3hlXSk7c3dpdGNoKEluKFplWzBdKSl7Y2FzZSI8bnVt''@;'; put 'put ''Rm10cyI6Y2FzZSI8L251bUZtdHM+IjpjYXNlIjxudW1GbXRzLz4iOmNhc2UiPG51bUZtdHM+IjpjYXNlIjwvbnVtRm10PiI6YnJlYWs7Y2FzZSI8bnVtRm10Ijp2YXIgamU9Z3IoVzAoWmUuZm9ybWF0Q29kZSkpLFllPXBhcnNlSW50KFplLm51bUZtdElkLDEwKTtpZihpZS5OdW1iZXJGbXRb''@;'; put 'put ''WWVdPWplLFllPjApe2lmKFllPjM5Mil7Zm9yKFllPTM5MjtZZT42MCYmbnVsbCE9aWUuTnVtYmVyRm10W1llXTstLVllKTtpZS5OdW1iZXJGbXRbWWVdPWplfUYubG9hZChqZSxZZSl9YnJlYWs7ZGVmYXVsdDppZihYLldURil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK1plWzBd''@;'; put 'put ''KyIgaW4gbnVtRm10cyIpfX19KHp0LER0LENuKSwoenQ9VXQubWF0Y2goWmUpKSYmZDYoenQsRHQsbm4sQ24pLCh6dD1VdC5tYXRjaChGZSkpJiZkRSh6dCxEdCxubixDbiksKHp0PVV0Lm1hdGNoKGplKSkmJmtiKHp0LER0LG5uLENuKSwoenQ9VXQubWF0Y2goWCkpJiZmdW5jdGlvbiBBRShI''@;'; put 'put ''LGllLFgpe2llLkNlbGxTdHlsZVhmPVtdO3ZhciB3ZSx4ZT0hMTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXt2YXIgWmU9ZW4oRmUpLGplPTA7c3dpdGNoKEluKFplWzBdKSl7Y2FzZSI8Y2VsbFN0eWxlWGZzIjpjYXNlIjxjZWxsU3R5bGVYZnM+IjpjYXNlIjxj''@;'; put 'put ''ZWxsU3R5bGVYZnMvPiI6Y2FzZSI8L2NlbGxTdHlsZVhmcz4iOmNhc2UiPC94Zj4iOmNhc2UiPC9hbGlnbm1lbnQ+IjpjYXNlIjwvcHJvdGVjdGlvbj4iOmNhc2UiPHByb3RlY3Rpb24vPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8''@;'; put 'put ''eGYiOmNhc2UiPHhmLz4iOmZvcihkZWxldGUod2U9WmUpWzBdLGplPTA7amU8eDMubGVuZ3RoOysramUpd2VbeDNbamVdXSYmKHdlW3gzW2plXV09cGFyc2VJbnQod2VbeDNbamVdXSwxMCkpO2ZvcihqZT0wO2plPEI0Lmxlbmd0aDsrK2plKXdlW0I0W2plXV0mJih3ZVtCNFtqZV1dPURpKHdl''@;'; put 'put ''W0I0W2plXV0pKTtpZihpZS5OdW1iZXJGbXQmJndlLm51bUZtdElkPjM5Milmb3IoamU9MzkyO2plPjYwOy0tamUpaWYoaWUuTnVtYmVyRm10W3dlLm51bUZtdElkXT09aWUuTnVtYmVyRm10W2plXSl7d2UubnVtRm10SWQ9amU7YnJlYWt9aWUuQ2VsbFN0eWxlWGYucHVzaCh3ZSk7YnJlYWs7''@;'; put 'put ''Y2FzZSI8YWxpZ25tZW50IjpjYXNlIjxhbGlnbm1lbnQvPiI6dmFyIFllPXt9O1plLnZlcnRpY2FsJiYoWWUudmVydGljYWw9WmUudmVydGljYWwpLFplLmhvcml6b250YWwmJihZZS5ob3Jpem9udGFsPVplLmhvcml6b250YWwpLG51bGwhPVplLnRleHRSb3RhdGlvbiYmKFllLnRleHRSb3Rh''@;'; put 'put ''dGlvbj1aZS50ZXh0Um90YXRpb24pLFplLmluZGVudCYmKFllLmluZGVudD1aZS5pbmRlbnQpLFplLndyYXBUZXh0JiYoWWUud3JhcFRleHQ9WmUud3JhcFRleHQpLFplLnNocmlua1RvRml0JiYoWWUuc2hyaW5rVG9GaXQ9RGkoWmUuc2hyaW5rVG9GaXQpKSx3ZS5hbGlnbm1lbnQ9WWU7YnJl''@;'; put 'put ''YWs7Y2FzZSI8cHJvdGVjdGlvbiI6d2UucHJvdGVjdGlvbj17fSxEaShaZS5oaWRkZW4pJiYod2UucHJvdGVjdGlvbi5oaWRkZW49ITApLG51bGwhPVplLmxvY2tlZCYmKHdlLnByb3RlY3Rpb24uZWRpdGFibGU9IURpKFplLmxvY2tlZCkpO2JyZWFrO2Nhc2UiPGV4dCI6eGU9ITA7YnJlYWs7''@;'; put 'put ''Y2FzZSI8L2V4dD4iOnhlPSExO2JyZWFrO2RlZmF1bHQ6aWYoWCYmWC5XVEYmJiF4ZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK1plWzBdKyIgaW4gY2VsbFN0eWxlWGZzIil9fSl9KHp0LER0LENuKSwoenQ9VXQubWF0Y2god2UpKSYmZnVuY3Rpb24geUUoSCxpZSxYKXtpZS5D''@;'; put 'put ''ZWxsU3R5bGVYZnx8KGllLkNlbGxTdHlsZVhmPVtdKTt2YXIgd2U9ITE7KEhbMF0ubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPWVuKHhlKTtzd2l0Y2goSW4oRmVbMF0pKXtjYXNlIjxjZWxsU3R5bGVzIjpjYXNlIjxjZWxsU3R5bGVzPiI6Y2FzZSI8Y2VsbFN0''@;'; put 'put ''eWxlcy8+IjpjYXNlIjwvY2VsbFN0eWxlcz4iOmNhc2UiPC94Zj4iOmNhc2UiPC9jZWxsU3R5bGU+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjxjZWxsU3R5bGUiOmNhc2UiPGNlbGxTdHlsZS8+IjpkZWxldGUgRmVbMF07dmFyIFpl''@;'; put 'put ''PStGZS54ZklkO2lmKGllLkNlbGxTdHlsZVhmW1plXSlpZS5DZWxsU3R5bGVYZltaZV0uc3R5bGU9VzAoRmUubmFtZSk7ZWxzZSBpZighRmUuYnVpbHRpbklkKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgQ2VsbFN0eWxlICIrWmUpO2JyZWFrO2Nhc2UiPGV4dCI6d2U9ITA7YnJl''@;'; put 'put ''YWs7Y2FzZSI8L2V4dD4iOndlPSExO2JyZWFrO2RlZmF1bHQ6aWYoWCYmWC5XVEYmJiF3ZSl0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCAiK0ZlWzBdKyIgaW4gY2VsbFN0eWxlcyIpfX0pfSh6dCxEdCxDbiksKHp0PVV0Lm1hdGNoKHhlKSkmJmZ1bmN0aW9uIHZFKEgsaWUsWCl7aWUu''@;'; put 'put ''Q2VsbFhmPVtdO3ZhciB3ZSx4ZT0hMTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXt2YXIgWmU9ZW4oRmUpLGplPTA7c3dpdGNoKEluKFplWzBdKSl7Y2FzZSI8Y2VsbFhmcyI6Y2FzZSI8Y2VsbFhmcz4iOmNhc2UiPGNlbGxYZnMvPiI6Y2FzZSI8L2NlbGxYZnM+''@;'; put 'put ''IjpjYXNlIjwveGY+IjpjYXNlIjwvYWxpZ25tZW50PiI6Y2FzZSI8L3Byb3RlY3Rpb24+IjpjYXNlIjxwcm90ZWN0aW9uLz4iOmNhc2UiPGV4dExzdCI6Y2FzZSI8ZXh0THN0PiI6Y2FzZSI8L2V4dExzdD4iOmJyZWFrO2Nhc2UiPHhmIjpjYXNlIjx4Zi8+Ijpmb3IoZGVsZXRlKHdlPVplKVsw''@;'; put 'put ''XSxqZT0wO2plPHgzLmxlbmd0aDsrK2plKXdlW3gzW2plXV0mJih3ZVt4M1tqZV1dPXBhcnNlSW50KHdlW3gzW2plXV0sMTApKTtmb3IoamU9MDtqZTxCNC5sZW5ndGg7KytqZSl3ZVtCNFtqZV1dJiYod2VbQjRbamVdXT1EaSh3ZVtCNFtqZV1dKSk7aWYoaWUuTnVtYmVyRm10JiZ3ZS5udW1G''@;'; put 'put ''bXRJZD4zOTIpZm9yKGplPTM5MjtqZT42MDstLWplKWlmKGllLk51bWJlckZtdFt3ZS5udW1GbXRJZF09PWllLk51bWJlckZtdFtqZV0pe3dlLm51bUZtdElkPWplO2JyZWFrfWllLkNlbGxTdHlsZVhmJiZ3ZS54ZklkJiZpZS5DZWxsU3R5bGVYZlt3ZS54ZklkXSYmaWUuQ2VsbFN0eWxlWGZb''@;'; put 'put ''d2UueGZJZF0uc3R5bGUmJih3ZS5zdHlsZT1pZS5DZWxsU3R5bGVYZlt3ZS54ZklkXS5zdHlsZSksaWUuQ2VsbFhmLnB1c2god2UpO2JyZWFrO2Nhc2UiPGFsaWdubWVudCI6Y2FzZSI8YWxpZ25tZW50Lz4iOnZhciBZZT17fTtaZS52ZXJ0aWNhbCYmKFllLnZlcnRpY2FsPVplLnZlcnRpY2Fs''@;'; put 'put ''KSxaZS5ob3Jpem9udGFsJiYoWWUuaG9yaXpvbnRhbD1aZS5ob3Jpem9udGFsKSxudWxsIT1aZS50ZXh0Um90YXRpb24mJihZZS50ZXh0Um90YXRpb249WmUudGV4dFJvdGF0aW9uKSxaZS5pbmRlbnQmJihZZS5pbmRlbnQ9WmUuaW5kZW50KSxaZS53cmFwVGV4dCYmKFllLndyYXBUZXh0PURp''@;'; put 'put ''KFplLndyYXBUZXh0KSksWmUuc2hyaW5rVG9GaXQmJihZZS5zaHJpbmtUb0ZpdD1EaShaZS5zaHJpbmtUb0ZpdCkpLHdlLmFsaWdubWVudD1ZZTticmVhaztjYXNlIjxwcm90ZWN0aW9uIjp3ZS5wcm90ZWN0aW9uPXt9LERpKFplLmhpZGRlbikmJih3ZS5wcm90ZWN0aW9uLmhpZGRlbj0hMCks''@;'; put 'put ''bnVsbCE9WmUubG9ja2VkJiYod2UucHJvdGVjdGlvbi5lZGl0YWJsZT0hRGkoWmUubG9ja2VkKSk7YnJlYWs7Y2FzZSI8QWx0ZXJuYXRlQ29udGVudCI6Y2FzZSI8ZXh0Ijp4ZT0hMDticmVhaztjYXNlIjwvQWx0ZXJuYXRlQ29udGVudD4iOmNhc2UiPC9leHQ+Ijp4ZT0hMTticmVhaztkZWZh''@;'; put 'put ''dWx0OmlmKFgmJlguV1RGJiYheGUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitaZVswXSsiIGluIGNlbGxYZnMiKX19KX0oenQsRHQsQ24pLCh6dD1VdC5tYXRjaCh4dCkpJiZmdW5jdGlvbiBSOShILGllLFgsd2Upe2llLkRYRnx8KGllLkRYRj1bXSksKEhbMF0ubWF0Y2goYm8p''@;'; put 'put ''fHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7aWUuRFhGLnB1c2gocDYoeGUsaWUsWCx3ZSkpfSl9KHp0LER0LG5uLENuKSwoenQ9VXQubWF0Y2goTXQpKSYmZnVuY3Rpb24gWVIoSCxpZSxYLHdlKXtpZS5UYWJsZXx8KGllLlRhYmxlPVtdKSwoSFswXS5tYXRjaChHYSl8fFtdKS5mb3JFYWNo''@;'; put 'put ''KGZ1bmN0aW9uKHhlKXtpZS5UYWJsZS5wdXNoKGZ1bmN0aW9uIFdSKEgsaWUsWCx3ZSl7dmFyIHhlPSExLEZlPXt9O3JldHVybihILm1hdGNoKEd0KXx8W10pLmZvckVhY2goZnVuY3Rpb24oWmUpe3ZhciBqZT1lbihaZSk7c3dpdGNoKEluKGplWzBdKSl7Y2FzZSI8dGFibGVTdHlsZT4iOmNh''@;'; put 'put ''c2UiPHRhYmxlU3R5bGUiOkZlLm5hbWU9amUubmFtZS5yZXBsYWNlKC9eKFRhYmxlfFBpdm90KVN0eWxlLywiIiksRmUucmF3bmFtZT1qZS5uYW1lLEZlLnBpdm90PSFqZS5waXZvdHx8RGkoamUucGl2b3QpLEZlLnRhYmxlPSFqZS50YWJsZXx8RGkoamUudGFibGUpO2JyZWFrO2Nhc2UiPHRh''@;'; put 'put ''YmxlU3R5bGUvPiI6Y2FzZSI8L3RhYmxlU3R5bGU+IjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRMc3Q+IjpicmVhaztjYXNlIjx0YWJsZVN0eWxlRWxlbWVudCI6aWYoamUudHlwZSYmamUuZHhmSWQpe2lmKCFpZS5EWEZ8fCFpZS5EWEZbK2plLmR4ZklkXSl0aHJv''@;'; put 'put ''dyBuZXcgRXJyb3IoWmUrIiBjYW5ub3QgZmluZCBEWEYiKTtGZVtqZS50eXBlXT1pZS5EWEZbK2plLmR4ZklkXX1icmVhaztjYXNlIjxleHQiOnhlPSEwO2JyZWFrO2Nhc2UiPC9leHQ+Ijp4ZT0hMTticmVhaztkZWZhdWx0OmlmKHdlJiZ3ZS5XVEYmJiF4ZSl0aHJvdyBuZXcgRXJyb3IoInVu''@;'; put 'put ''cmVjb2duaXplZCAiK2plWzBdKyIgaW4gdGFibGVTdHlsZSIpfX0pLEZlfSh4ZSxpZSwwLHdlKSl9KX0oenQsRHQsMCxDbiksKER0LkZvbnRzfHxbXSlbMF0mJlMzKER0LkZvbnRzWzBdKSxEdCk6RHR9fSgpLFVSPV9pKCJzdHlsZVNoZWV0IixudWxsLHt4bWxuczpYMC5tYWluWzBdLCJ4bWxu''@;'; put 'put ''czp2dCI6WDAudnR9KTtmdW5jdGlvbiBRUihILGllKXt2YXIgd2UsWD1bY24sVVJdO0guU1NGJiZudWxsIT0od2U9ZnVuY3Rpb24gbUUoSCl7dmFyIGllPVsiPG51bUZtdHM+Il07cmV0dXJuW1s1LDhdLFsyMywyNl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9yRWFjaChmdW5jdGlvbihYKXtmb3Io''@;'; put 'put ''dmFyIHdlPVhbMF07d2U8PVhbMV07Kyt3ZSludWxsIT1IW3dlXSYmKGllW2llLmxlbmd0aF09X2koIm51bUZtdCIsbnVsbCx7bnVtRm10SWQ6d2UsZm9ybWF0Q29kZTpScihIW3dlXSl9KSl9KSwxPT09aWUubGVuZ3RoPyIiOihpZVtpZS5sZW5ndGhdPSI8L251bUZtdHM+IixpZVswXT1faSgi''@;'; put 'put ''bnVtRm10cyIsbnVsbCx7Y291bnQ6aWUubGVuZ3RoLTJ9KS5yZXBsYWNlKCIvPiIsIj4iKSxpZS5qb2luKCIiKSl9KEguU1NGKSkmJihYW1gubGVuZ3RoXT13ZSksWFtYLmxlbmd0aF09ZnVuY3Rpb24gelIoSCl7dmFyIGllPVtdO3JldHVybiBILmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdl''@;'; put 'put ''PVsiPGZvbnQ+Il07WC5ib2xkJiZ3ZS5wdXNoKCI8Yi8+IiksWC5pdGFsaWMmJndlLnB1c2goIjxpLz4iKSxYLnN0cmlrZSYmd2UucHVzaCgiPHN0cmlrZS8+IiksWC5zaGFkb3cmJndlLnB1c2goIjxzaGFkb3cvPiIpLE85WytYLnVuZGVybGluZV0mJndlLnB1c2goJzx1IHZhbD0iJytPOVsr''@;'; put 'put ''WC51bmRlcmxpbmVdKyciLz4nKSxYLnN6JiZ3ZS5wdXNoKCc8c3ogdmFsPSInK1guc3orJyIvPicpLFguY29sb3ImJndlLnB1c2goWHMoWC5jb2xvciwhMCkpLFgubmFtZSYmd2UucHVzaCgnPG5hbWUgdmFsPSInK1gubmFtZSsnIi8+JyksWC5mYW1pbHkmJndlLnB1c2goJzxmYW1pbHkgdmFs''@;'; put 'put ''PSInK1guZmFtaWx5KyciLz4nKSxYLnNjaGVtZSYmd2UucHVzaCgnPHNjaGVtZSB2YWw9IicrWC5zY2hlbWUrJyIvPicpLFgudmFsaWduJiZ3ZS5wdXNoKCc8dmVydEFsaWduIHZhbD0iJytYLnZhbGlnbisoInN1YiI9PVgudmFsaWdufHwic3VwZXIiPT1YLnZhbGlnbj8ic2NyaXB0IjoiIikr''@;'; put 'put ''JyIvPicpLGllLnB1c2god2Uuam9pbigiIikrIjwvZm9udD4iKX0pLCc8Zm9udHMgY291bnQ9IicraWUubGVuZ3RoKyciPicraWUuam9pbigiIikrIjwvZm9udHM+In0oKEguU3R5bGVzfHx7fSkuRm9udHN8fFtdKSxYW1gubGVuZ3RoXT1mdW5jdGlvbiBwRShIKXt2YXIgaWU9W107cmV0dXJu''@;'; put 'put ''IEguZm9yRWFjaChmdW5jdGlvbihYKXt2YXIgd2U9bnVsbDtpZihYLnN0b3BzJiZYLnN0b3BzLmxlbmd0aCl7dmFyIHhlPXt9O1guYW5nbGUmJih4ZS5kZWdyZWU9TWF0aC5yb3VuZChYLmFuZ2xlKSksd2U9WC5zdG9wcy5tYXAoZnVuY3Rpb24oRmUpe3JldHVybiBfaSgic3RvcCIsWHMoRmUs''@;'; put 'put ''ImNvbG9yIiwhMCksbnVsbCE9RmUudj97cG9zaXRpb246RmUudn06e30pfSksaWUucHVzaCgiPGZpbGw+IitfaSgiZ3JhZGllbnRGaWxsIix3ZS5qb2luKCIiKSx4ZSkrIjwvZmlsbD4iKX1lbHNle2lmKFguZmdDb2xvcil7aWYod2U9KHdlfHwiIikrIjxmZ0NvbG9yICIsWC5mZ0NvbG9yLnRo''@;'; put 'put ''ZW1lKXdlKz0ndGhlbWU9IicrWC5mZ0NvbG9yLnRoZW1lKyciJysoWC5mZ0NvbG9yLnRpbnQ/JyB0aW50PSInK1guZmdDb2xvci50aW50KyciJzoiIikrIi8+IjtlbHNlIGlmKG51bGwhPVguZmdDb2xvci5pbmRleCYmbnVsbD09WC5mZ0NvbG9yLnJnYil3ZSs9J2luZGV4ZWQ9IicrWC5mZ0Nv''@;'; put 'put ''bG9yLmluZGV4KyciLz4nO2Vsc2UgaWYoWC5mZ0NvbG9yLmF1dG8pd2UrPSdhdXRvPSIxIi8+JztlbHNle2lmKG51bGw9PVguZmdDb2xvci5yZ2IpdGhyb3cgbmV3IEVycm9yKCJCYWQgY29sb3IgIitvbihYLmZnQ29sb3IpLmpvaW4oInwiKSk7d2UrPSdyZ2I9IkZGJytMbyhYLmZnQ29sb3Iu''@;'; put 'put ''cmdiKSsnIi8+J30ic29saWQiPT1YLnBhdHRlcm5UeXBlJiYhWC5iZ0NvbG9yJiYoWC5iZ0NvbG9yPXtpbmRleDo2NH0pfWlmKFguYmdDb2xvcilpZih3ZT0od2V8fCIiKSsiPGJnQ29sb3IgIixYLmJnQ29sb3IudGhlbWUpd2UrPSd0aGVtZT0iJytYLmJnQ29sb3IudGhlbWUrJyIvPic7ZWxz''@;'; put 'put ''ZSBpZihudWxsIT1YLmJnQ29sb3IuaW5kZXgmJm51bGw9PVguYmdDb2xvci5yZ2Ipd2UrPSdpbmRleGVkPSInK1guYmdDb2xvci5pbmRleCsnIi8+JztlbHNlIGlmKFguYmdDb2xvci5hdXRvKXdlKz0nYXV0bz0iMSIvPic7ZWxzZXtpZihudWxsPT1YLmJnQ29sb3IucmdiKXRocm93IG5ldyBF''@;'; put 'put ''cnJvcigiQmFkIGNvbG9yICIrb24oWC5iZ0NvbG9yKS5qb2luKCJ8IikpO3dlKz0ncmdiPSJGRicrTG8oWC5iZ0NvbG9yLnJnYikrJyIvPid9aWUucHVzaCgiPGZpbGw+IitfaSgicGF0dGVybkZpbGwiLHdlLHtwYXR0ZXJuVHlwZTpYLnBhdHRlcm5UeXBlfSkrIjwvZmlsbD4iKX19KSwnPGZp''@;'; put 'put ''bGxzIGNvdW50PSInK2llLmxlbmd0aCsnIj4nK2llLmpvaW4oIiIpKyI8L2ZpbGxzPiJ9KChILlN0eWxlc3x8e30pLkZpbGxzfHxbXSksWFtYLmxlbmd0aF09ZnVuY3Rpb24gTDkoSCl7dmFyIGllPVtdO3JldHVybiBILmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPVtdO3dlLnB1c2goa2Qo''@;'; put 'put ''WC5sZWZ0LCJsZWZ0IikpLHdlLnB1c2goa2QoWC5yaWdodCwicmlnaHQiKSksd2UucHVzaChrZChYLnRvcCwidG9wIikpLHdlLnB1c2goa2QoWC5ib3R0b20sImJvdHRvbSIpKSx3ZS5wdXNoKGtkKFguZGlhZ29uYWwsImRpYWdvbmFsIikpLGllLnB1c2goIjxib3JkZXI+Iit3ZS5qb2luKCIi''@;'; put 'put ''KSsiPC9ib3JkZXI+Iil9KSwnPGJvcmRlcnMgY291bnQ9IicraWUubGVuZ3RoKyciPicraWUuam9pbigiIikrIjwvYm9yZGVycz4ifSgoSC5TdHlsZXN8fHt9KS5Cb3JkZXJzfHxbXSksWFtYLmxlbmd0aF09ZnVuY3Rpb24gZUcoSCl7dmFyIGllPVsnPHhmIG51bUZtdElkPSIwIiBmb250SWQ9''@;'; put 'put ''IjAiIGZpbGxJZD0iMCIgYm9yZGVySWQ9IjAiLz4nXTtpZihIKWZvcih2YXIgWD0xO1g8SC5sZW5ndGg7KytYKWllLnB1c2goX2koInhmIixudWxsLHtudW1GbXRJZDpIW1hdLm51bUZtdElkfHwwLGZvbnRJZDpIW1hdLmZvbnRJZHx8MCxmaWxsSWQ6SFtYXS5maWxsSWR8fDAsYm9yZGVySWQ6''@;'; put 'put ''SFtYXS5ib3JkZXJJZHx8MH0pKTtyZXR1cm4nPGNlbGxTdHlsZVhmcyBjb3VudD0iJytpZS5sZW5ndGgrJyI+JytpZS5qb2luKCIiKSsiPC9jZWxsU3R5bGVYZnM+In0oaWUuY2VsbFN0eWxlWGZzKSwod2U9ZnVuY3Rpb24gR1IoSCl7dmFyIGllPVtdO3JldHVybiBpZVtpZS5sZW5ndGhdPV9p''@;'; put 'put ''KCJjZWxsWGZzIixudWxsKSxILmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPVguYWxpZ25tZW50O2RlbGV0ZSBYLmFsaWdubWVudDt2YXIgeGU9WC5wcm90ZWN0aW9uO2RlbGV0ZSBYLnByb3RlY3Rpb247dmFyIEZlPXdlP19pKCJhbGlnbm1lbnQiLG51bGwsd2UpOiIiO0ZlKz14ZT9faSgi''@;'; put 'put ''cHJvdGVjdGlvbiIsbnVsbCx7aGlkZGVuOnhlLmhpZGRlbj8xOjAsbG9ja2VkOnhlLmVkaXRhYmxlPzA6MX0pOiIiLGllW2llLmxlbmd0aF09X2koInhmIixGZXx8bnVsbCxYKSx3ZSYmKFguYWxpZ25tZW50PXdlKSx4ZSYmKFgucHJvdGVjdGlvbj14ZSl9KSxpZVtpZS5sZW5ndGhdPSI8L2Nl''@;'; put 'put ''bGxYZnM+IiwyPT09aWUubGVuZ3RoPyIiOihpZVswXT1faSgiY2VsbFhmcyIsbnVsbCx7Y291bnQ6aWUubGVuZ3RoLTJ9KS5yZXBsYWNlKCIvPiIsIj4iKSxpZS5qb2luKCIiKSl9KGllLmNlbGxYZnMpKSYmKFhbWC5sZW5ndGhdPXdlKSxYW1gubGVuZ3RoXT1mdW5jdGlvbiBTZChIKXt2YXIg''@;'; put 'put ''aWU9Wyc8Y2VsbFN0eWxlIG5hbWU9Ik5vcm1hbCIgeGZJZD0iMCIgYnVpbHRpbklkPSIwIi8+J107aWYoSClmb3IodmFyIFg9MTtYPEgubGVuZ3RoOysrWClpZS5wdXNoKF9pKCJjZWxsU3R5bGUiLG51bGwse25hbWU6SFtYXS5uYW1lLHhmSWQ6WH0pKTtyZXR1cm4nPGNlbGxTdHlsZXMgY291''@;'; put 'put ''bnQ9IicraWUubGVuZ3RoKyciPicraWUuam9pbigiIikrIjwvY2VsbFN0eWxlcz4ifShpZS5jZWxsU3R5bGVYZnMpLEguU3R5bGVzLkRYRnx8KEguU3R5bGVzLkRYRj1bXSk7dmFyIHhlPWZ1bmN0aW9uIGJFKEgsaWUsWCl7dmFyIHdlPVsnPHRhYmxlU3R5bGVzIGNvdW50PSInKyhIfHxbXSku''@;'; put 'put ''bGVuZ3RoKyciIGRlZmF1bHRUYWJsZVN0eWxlPSJUYWJsZVN0eWxlTWVkaXVtOSIgZGVmYXVsdFBpdm90U3R5bGU9IlBpdm90U3R5bGVNZWRpdW00IiddO3JldHVybiBIJiZILmxlbmd0aD8od2VbMF0rPSI+IixILmZvckVhY2goZnVuY3Rpb24oeGUpe3dlLnB1c2goZnVuY3Rpb24gTWQoSCxp''@;'; put 'put ''ZSxYKXt2YXIgd2U9W107WyJ3aG9sZVRhYmxlIiwiaGVhZGVyUm93IiwidG90YWxSb3ciLCJmaXJzdENvbHVtbiIsImxhc3RDb2x1bW4iLCJmaXJzdFJvd1N0cmlwZSIsInNlY29uZFJvd1N0cmlwZSIsImZpcnN0Q29sdW1uU3RyaXBlIiwic2Vjb25kQ29sdW1uU3RyaXBlIiwiZmlyc3RIZWFk''@;'; put 'put ''ZXJDZWxsIiwibGFzdEhlYWRlckNlbGwiLCJmaXJzdFRvdGFsQ2VsbCIsImxhc3RUb3RhbENlbGwiLCJmaXJzdFN1YnRvdGFsQ29sdW1uIiwic2Vjb25kU3VidG90YWxDb2x1bW4iLCJ0aGlyZFN1YnRvdGFsQ29sdW1uIiwiZmlyc3RTdWJ0b3RhbFJvdyIsInNlY29uZFN1YnRvdGFsUm93Iiwi''@;'; put 'put ''dGhpcmRTdWJ0b3RhbFJvdyIsImJsYW5rUm93IiwiZmlyc3RDb2x1bW5TdWJoZWFkaW5nIiwic2Vjb25kQ29sdW1uU3ViaGVhZGluZyIsInRoaXJkQ29sdW1uU3ViaGVhZGluZyIsImZpcnN0Um93U3ViaGVhZGluZyIsInNlY29uZFJvd1N1YmhlYWRpbmciLCJ0aGlyZFJvd1N1YmhlYWRpbmci''@;'; put 'put ''LCJwYWdlRmllbGRMYWJlbHMiLCJwYWdlRmllbGRWYWx1ZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXtpZihIW0ZlXSl7dmFyIFplPXo0KGllLEhbRmVdKTt3ZS5wdXNoKCc8dGFibGVTdHlsZUVsZW1lbnQgZHhmSWQ9IicrWmUrJyIgdHlwZT0iJytGZSsnIi8+Jyl9fSk7dmFyIHhlPSc8dGFi''@;'; put 'put ''bGVTdHlsZSBjb3VudD0iJyt3ZS5sZW5ndGgrJyIgcGl2b3Q9IicrICshIUgucGl2b3QrJyIgbmFtZT0iJytILm5hbWUrJyInO3JldHVybiB3ZS5sZW5ndGg/eGUrIj4iK3dlLmpvaW4oIiIpKyI8L3RhYmxlU3R5bGU+Ijp4ZSsiLz4ifSh4ZSxpZSkpfSksd2Uuam9pbigiIikrIjwvdGFibGVT''@;'; put 'put ''dHlsZXM+Iik6d2VbMF0rIi8+In0oKEguU3R5bGVzfHx7fSkuVGFibGV8fFtdLEguU3R5bGVzLkRYRik7cmV0dXJuIFhbWC5sZW5ndGhdPWZ1bmN0aW9uIF9FKEgsaWUpe2lmKCFILmxlbmd0aClyZXR1cm4nPGR4ZnMgY291bnQ9IjAiLz4nO3ZhciBYPVsnPGR4ZnMgY291bnQ9IicrSC5sZW5n''@;'; put 'put ''dGgrJyI+J107cmV0dXJuIEguZm9yRWFjaChmdW5jdGlvbih3ZSl7WC5wdXNoKGZ1bmN0aW9uIFA0KEgsaWUpe3ZhciBYPXtib2xkOiJiIixpdGFsaWM6ImkiLHZhbGlnbjoidmVydEFsaWduIn0sd2U9WyI8ZHhmPiJdLHhlPVtdLEZlPVtdLFplPVtdLFllPVtdO2lmKG9uKEgpLmZvckVhY2go''@;'; put 'put ''ZnVuY3Rpb24oeHQpe3N3aXRjaCh4dCl7Y2FzZSJib2xkIjpjYXNlIml0YWxpYyI6Y2FzZSJzdHJpa2UiOmNhc2UidW5kZXJsaW5lIjpjYXNlImNvbG9yIjpjYXNlInZhbGlnbiI6Y2FzZSJzeiI6Y2FzZSJuYW1lIjpjYXNlIm91dGxpbmUiOmNhc2Uic2hhZG93IjpjYXNlImNoYXJzZXQiOmNh''@;'; put 'put ''c2UiZmFtaWx5IjpjYXNlImNvbmRlbnNlIjpjYXNlImV4dGVuZCI6Y2FzZSJzY2hlbWUiOnhlLnB1c2goeHQpO2JyZWFrO2Nhc2UiYmdDb2xvciI6Y2FzZSJmZ0NvbG9yIjpaZS5wdXNoKHh0KTticmVhaztjYXNlInoiOkZlLnB1c2goeHQpO2JyZWFrO2Nhc2UidG9wIjpjYXNlImJvdHRvbSI6''@;'; put 'put ''Y2FzZSJsZWZ0IjpjYXNlInJpZ2h0IjpjYXNlImRpYWdvbmFsIjpjYXNlInZlcnRpY2FsIjpjYXNlImhvcml6b250YWwiOlllLnB1c2goeHQpO2JyZWFrO2Nhc2UicGF0dGVyblR5cGUiOmNhc2UiZGlhZ29uYWxEb3duIjpjYXNlImRpYWdvbmFsVXAiOmNhc2Uic3RvcHMiOmNhc2UiZGVncmVl''@;'; put 'put ''IjpicmVhaztkZWZhdWx0OnRocm93IlVucmVjb2duaXplZCAiK3h0KyIgaW4gRFhGIn19KSx4ZS5sZW5ndGg+MCYmKHdlLnB1c2goIjxmb250PiIpLHhlLmZvckVhY2goZnVuY3Rpb24oeHQpe3N3aXRjaCh4dCl7Y2FzZSJib2xkIjpjYXNlIml0YWxpYyI6Y2FzZSJzdHJpa2UiOmNhc2Uib3V0''@;'; put 'put ''bGluZSI6Y2FzZSJzaGFkb3ciOmNhc2UiY29uZGVuc2UiOmNhc2UiZXh0ZW5kIjp3ZS5wdXNoKCI8IisoWFt4dF18fHh0KSsnIHZhbD0iJysoSFt4dF0/IjEiOiIwIikrJyIvPicpO2JyZWFrO2Nhc2UiY29sb3IiOndlLnB1c2goWHMoSFt4dF0seHQsITApKTticmVhaztjYXNlImZhbWlseSI6''@;'; put 'put ''Y2FzZSJuYW1lIjpjYXNlInN6IjpjYXNlInNjaGVtZSI6d2UucHVzaCgiPCIrKFhbeHRdfHx4dCkrJyB2YWw9IicrSFt4dF0rJyIvPicpO2JyZWFrO2Nhc2UidW5kZXJsaW5lIjp3ZS5wdXNoKCc8dSB2YWw9IicrTzlbSFt4dF18fDBdKyciLz4nKTticmVhaztjYXNlInZhbGlnbiI6d2UucHVz''@;'; put 'put ''aCgnPHZlcnRBbGlnbiB2YWw9IicrSC52YWxpZ24rKCJzdWIiPT1ILnZhbGlnbnx8InN1cGVyIj09SC52YWxpZ24/InNjcmlwdCI6IiIpKyciLz4nKTticmVhaztkZWZhdWx0OnRocm93IlVuc3VwcG9ydGVkICIreHQrIiA6IGZvbnQgRFhGIn19KSx3ZS5wdXNoKCI8L2ZvbnQ+IikpLEZlLmxl''@;'; put 'put ''bmd0aD4wJiZ3ZS5wdXNoKCc8bnVtRm10IGZvcm1hdENvZGU9IicrUnIoSC56KSsnIiBudW1GbXRJZD0iJytmdW5jdGlvbiBoNShILGllKXtpZigibnVtYmVyIj09dHlwZW9mIEgpcmV0dXJuIEg7dmFyIFg9aWUucmV2c3NmW251bGwhPUg/SDoiR2VuZXJhbCJdLHdlPTYwO2lmKG51bGw9PVgp''@;'; put 'put ''Zm9yKDt3ZTwzOTI7Kyt3ZSlpZihudWxsPT1pZS5zc2Zbd2VdKXJldHVybiBGLmxvYWQoSCx3ZSksaWUuc3NmW3dlXT1ILGllLnJldnNzZltIXT13ZSx3ZTtyZXR1cm4gWH0oSC56LGllKSsnIi8+JyksWmUubGVuZ3RoPjAmJih3ZS5wdXNoKCI8ZmlsbD4iKSx3ZS5wdXNoKCI8cGF0dGVybkZp''@;'; put 'put ''bGwiKyhILnBhdHRlcm5UeXBlPycgcGF0dGVyblR5cGU9IicrSC5wYXR0ZXJuVHlwZSsnIj4nOiI+IikpLFplLmZvckVhY2goZnVuY3Rpb24oeHQpe3N3aXRjaCh4dCl7Y2FzZSJwYXR0ZXJuVHlwZSI6YnJlYWs7Y2FzZSJmZ0NvbG9yIjpjYXNlImJnQ29sb3IiOndlLnB1c2goWHMoSFt4dF0s''@;'; put 'put ''eHQsITApKTticmVhaztkZWZhdWx0OnRocm93IlVuc3VwcG9ydGVkICIreHQrIiA6IGZpbGwgRFhGIn19KSx3ZS5wdXNoKCI8L3BhdHRlcm5GaWxsPiIpLHdlLnB1c2goIjwvZmlsbD4iKSksW10ubGVuZ3RoPjApdGhyb3ciVW5zdXBwb3J0ZWQgYWxpZ24gLSBEWEYiO2lmKFllLmxlbmd0aD4w''@;'; put 'put ''Pyh3ZS5wdXNoKFsiPGJvcmRlciIsbnVsbCE9SC5kaWFnb25hbERvd24/JyBkaWFnb25hbERvd249IicrICshIUguZGlhZ29uYWxEb3duKyciJzoiIixudWxsIT1ILmRpYWdvbmFsVXA/JyBkaWFnb25hbFVwPSInKyArISFILmRpYWdvbmFsVXArJyInOiIiLCI+Il0uam9pbigiIikpLFllLmZv''@;'; put 'put ''ckVhY2goZnVuY3Rpb24oeHQpe3dlLnB1c2goa2QoSFt4dF0seHQpKX0pLHdlLnB1c2goIjwvYm9yZGVyPiIpKToobnVsbCE9SC5kaWFnb25hbERvd258fG51bGwhPUguZGlhZ29uYWxVcCkmJndlLnB1c2goWyI8Ym9yZGVyIixudWxsIT1ILmRpYWdvbmFsRG93bj8nIGRpYWdvbmFsRG93bj0i''@;'; put 'put ''JysgKyEhSC5kaWFnb25hbERvd24rJyInOiIiLG51bGwhPUguZGlhZ29uYWxVcD8nIGRpYWdvbmFsVXA9IicrICshIUguZGlhZ29uYWxVcCsnIic6IiIsIi8+Il0uam9pbigiIikpLFtdLmxlbmd0aD4wKXRocm93IlVuc3VwcG9ydGVkIHByb3RlY3Rpb24gLSBEWEYiO3JldHVybiAxPT13ZS5s''@;'; put 'put ''ZW5ndGg/IjxkeGYvPiI6d2Uuam9pbigiIikrIjwvZHhmPiJ9KHdlLGllKSl9KSxYLmpvaW4oIiIpKyI8L2R4ZnM+In0oSC5TdHlsZXMuRFhGLGllKSxYW1gubGVuZ3RoXT14ZSxYLmxlbmd0aD4yJiYoWFtYLmxlbmd0aF09Ijwvc3R5bGVTaGVldD4iLFhbMV09WFsxXS5yZXBsYWNlKCIvPiIs''@;'; put 'put ''Ij4iKSksWC5qb2luKCIiKX1mdW5jdGlvbiBKUihILGllLFgpe1h8fChYPVJpKDYrNCppZS5sZW5ndGgpKSxYLndyaXRlX3NoaWZ0KDIsSCksbHUoaWUsWCk7dmFyIHdlPVgubGVuZ3RoPlgubD9YLnNsaWNlKDAsWC5sKTpYO3JldHVybiBudWxsPT1YLmwmJihYLmw9WC5sZW5ndGgpLHdlfWZ1''@;'; put 'put ''bmN0aW9uIG5HKEgpe3JldHVybntjb2xvcjpVZyhIKSxwb3M6STIoSCl9fWR0LlNUWT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9zdHlsZXMiO3ZhciBYUj1bIm5vbmUiLCJzb2xpZCIsIm1lZGl1bUdyYXkiLCJk''@;'; put 'put ''YXJrR3JheSIsImxpZ2h0R3JheSIsImRhcmtIb3Jpem9udGFsIiwiZGFya1ZlcnRpY2FsIiwiZGFya0Rvd24iLCJkYXJrVXAiLCJkYXJrR3JpZCIsImRhcmtUcmVsbGlzIiwibGlnaHRIb3Jpem9udGFsIiwibGlnaHRWZXJ0aWNhbCIsImxpZ2h0RG93biIsImxpZ2h0VXAiLCJsaWdodEdyaWQi''@;'; put 'put ''LCJsaWdodFRyZWxsaXMiLCJncmF5MTI1IiwiZ3JheTA2MjUiXSxyRz10dChYUiksUDk9WyJnZW5lcmFsIiwibGVmdCIsImNlbnRlciIsInJpZ2h0IiwiZmlsbCIsImp1c3RpZnkiLCJjZW50ZXJDb250aW51b3VzIiwiZGlzdHJpYnV0ZWQiXSx5bT1bInRvcCIsImNlbnRlciIsImJvdHRvbSIs''@;'; put 'put ''Imp1c3RpZnkiLCJkaXN0cmlidXRlZCJdO2Z1bmN0aW9uIEY5KEgsaWUsWCl7WHx8KFg9UmkoMTYpKSxYLndyaXRlX3NoaWZ0KDIsaWV8fDApLFgud3JpdGVfc2hpZnQoMixILm51bUZtdElkfHwwKSxYLndyaXRlX3NoaWZ0KDIsSC5mb250SWR8fDApLFgud3JpdGVfc2hpZnQoMixILmZpbGxJ''@;'; put 'put ''ZHx8MCksWC53cml0ZV9zaGlmdCgyLEguYm9yZGVySWR8fDApLFgud3JpdGVfc2hpZnQoMSxILmFsaWdubWVudCYmSC5hbGlnbm1lbnQudGV4dFJvdGF0aW9ufHwwKSxYLndyaXRlX3NoaWZ0KDEsSC5hbGlnbm1lbnQmJkguYWxpZ25tZW50LmluZGVudHx8MCk7dmFyIHdlPTAseGU9MDtpZihI''@;'; put 'put ''LmFsaWdubWVudCl7aWYoSC5hbGlnbm1lbnQuaG9yaXpvbnRhbCl7dmFyIEZlPVA5LmluZGV4T2YoSC5hbGlnbm1lbnQuaG9yaXpvbnRhbCk7RmU8MCYmKEZlPTApLHdlfD1GZX1pZihILmFsaWdubWVudC52ZXJ0aWNhbCl7dmFyIFplPXltLmluZGV4T2YoSC5hbGlnbm1lbnQudmVydGljYWwp''@;'; put 'put ''O1plPDAmJihaZT0yKSx3ZXw9WmU8PDN9SC5hbGlnbm1lbnQud3JhcFRleHQmJih3ZXw9NjQpLEguYWxpZ25tZW50LnNocmlua1RvRml0JiYoeGV8PTEpfXJldHVybiBYLndyaXRlX3NoaWZ0KDEsd2UpLFgud3JpdGVfc2hpZnQoMSx4ZSksWC53cml0ZV9zaGlmdCgxLDApLFgud3JpdGVfc2hp''@;'; put 'put ''ZnQoMSwwKSxYfXZhciBUMz1bIm5vbmUiLCJ0aGluIiwibWVkaXVtIiwiZGFzaGVkIiwiZG90dGVkIiwidGhpY2siLCJkb3VibGUiLCJoYWlyIiwibWVkaXVtRGFzaGVkIiwiZGFzaERvdCIsIm1lZGl1bURhc2hEb3QiLCJkYXNoRG90RG90IiwibWVkaXVtRGFzaERvdERvdCIsInNsYW50RGFz''@;'; put 'put ''aERvdCJdO2Z1bmN0aW9uIGc2KEgpe3ZhciBpZT1ILnJlYWRfc2hpZnQoMSk7SC5sKz0xO3ZhciBYPVVnKEgpO3JldHVybntzdHlsZTpUM1tpZV0sY29sb3I6WH19ZnVuY3Rpb24gbTYoSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoMTApKSxIJiZILnN0eWxlJiYiIiE9SC5zdHlsZSYmIm5vbmUi''@;'; put 'put ''IT1ILnN0eWxlJiYtMSE9PVQzLmluZGV4T2YoSC5zdHlsZSk/KGllLndyaXRlX3NoaWZ0KDEsVDMuaW5kZXhPZihILnN0eWxlKSksaWUud3JpdGVfc2hpZnQoMSwwKSxILmNvbG9yP2pmKEguY29sb3IsaWUpOihpZS53cml0ZV9zaGlmdCg0LDApLGllLndyaXRlX3NoaWZ0KDQsMCkpKTooaWUu''@;'; put 'put ''d3JpdGVfc2hpZnQoMSwwKSxpZS53cml0ZV9zaGlmdCgxLDApLGllLndyaXRlX3NoaWZ0KDQsMCksaWUud3JpdGVfc2hpZnQoNCwwKSksaWV9ZnVuY3Rpb24gdjYoSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoNTIpKSxpZS53cml0ZV9zaGlmdCg0LEgueGZJZCksaWUud3JpdGVfc2hpZnQoMiwx''@;'; put 'put ''KSxpZS53cml0ZV9zaGlmdCgxLCtILmJ1aWx0aW5JZCksaWUud3JpdGVfc2hpZnQoMSwwKSxacChILm5hbWV8fCIiLGllKSxpZS5sZW5ndGg+aWUubD9pZS5zbGljZSgwLGllLmwpOmllfWZ1bmN0aW9uIHdtKEgsaWUpeyFpZXx8IWllLnRoZW1lRWxlbWVudHN8fCFpZS50aGVtZUVsZW1lbnRz''@;'; put 'put ''LmNsclNjaGVtZXx8bnVsbCE9SC50aGVtZSYmKEgucmdiPVE4KGllLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lW0gudGhlbWVdLnJnYixILnRpbnR8fDApKX1mdW5jdGlvbiBNRShILGllKXt2YXIgWD1KMigpO3JldHVybiBDMChYLCJCcnRCZWdpblN0eWxlU2hlZXQiKSxmdW5jdGlvbiBNYihI''@;'; put 'put ''LGllKXtpZihpZSl7dmFyIFg9MDtbWzUsOF0sWzIzLDI2XSxbNDEsNDRdLFs1MCwzOTJdXS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtmb3IodmFyIHhlPXdlWzBdO3hlPD13ZVsxXTsrK3hlKW51bGwhPWllW3hlXSYmKytYfSksMCE9WCYmKEMwKEgsIkJydEJlZ2luRm10cyIsJGwoWCkpLFtbNSw4''@;'; put 'put ''XSxbMjMsMjZdLFs0MSw0NF0sWzUwLDM5Ml1dLmZvckVhY2goZnVuY3Rpb24od2Upe2Zvcih2YXIgeGU9d2VbMF07eGU8PXdlWzFdOysreGUpbnVsbCE9aWVbeGVdJiZDMChILCJCcnRGbXQiLEpSKHhlLGllW3hlXSkpfSksQzAoSCwiQnJ0RW5kRm10cyIpKX19KFgsSC5TU0YpLGZ1bmN0aW9u''@;'; put 'put ''IGtFKEgsaWUpe3ZhciBYPWllLmxlbmd0aDswIT1YJiYoQzAoSCwiQnJ0QmVnaW5Gb250cyIsJGwoWCkpLGllLmZvckVhY2goZnVuY3Rpb24od2Upe0MwKEgsIkJydEZvbnQiLGZ1bmN0aW9uIEFtKEgsaWUpe2llfHwoaWU9UmkoMTUzKSksaWUud3JpdGVfc2hpZnQoMiwyMCpILnN6KSxmdW5j''@;'; put 'put ''dGlvbiBEMihILGllKXtpZXx8KGllPVJpKDIpKSxpZS53cml0ZV9zaGlmdCgxLChILml0YWxpYz8yOjApfChILnN0cmlrZT84OjApfChILm91dGxpbmU/MTY6MCl8KEguc2hhZG93PzMyOjApfChILmNvbmRlbnNlPzY0OjApfChILmV4dGVuZD8xMjg6MCkpLGllLndyaXRlX3NoaWZ0KDEsMCl9''@;'; put 'put ''KEgsaWUpLGllLndyaXRlX3NoaWZ0KDIsSC5ib2xkPzcwMDo0MDApO3ZhciBYPTA7InN1cGVyIj09SC52YWxpZ24/WD0xOiJzdWIiPT1ILnZhbGlnbiYmKFg9MiksaWUud3JpdGVfc2hpZnQoMixYKSxpZS53cml0ZV9zaGlmdCgxLEgudW5kZXJsaW5lfHwwKSxpZS53cml0ZV9zaGlmdCgxLEgu''@;'; put 'put ''ZmFtaWx5fHwwKSxpZS53cml0ZV9zaGlmdCgxLEguY2hhcnNldHx8MCksaWUud3JpdGVfc2hpZnQoMSwwKSxqZihILmNvbG9yLGllKTt2YXIgd2U9MDtyZXR1cm4ibWFqb3IiPT1ILnNjaGVtZSYmKHdlPTEpLCJtaW5vciI9PUguc2NoZW1lJiYod2U9MiksaWUud3JpdGVfc2hpZnQoMSx3ZSks''@;'; put 'put ''bHUoSC5uYW1lLGllKSxpZS5sZW5ndGg+aWUubD9pZS5zbGljZSgwLGllLmwpOmllfSh3ZSkpfSksQzAoSCwiQnJ0RW5kRm9udHMiKSl9KFgsKEguU3R5bGVzfHx7fSkuRm9udHN8fFtdKSxmdW5jdGlvbiBTRShILGllKXt2YXIgWD1pZS5sZW5ndGg7MCE9WCYmKEMwKEgsIkJydEJlZ2luRmls''@;'; put 'put ''bHMiLCRsKFgpKSxpZS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtDMChILCJCcnRGaWxsIixmdW5jdGlvbiBpRyhILGllKXtpZXx8KGllPVJpKDg0KSk7dmFyIFg9ckdbSC5wYXR0ZXJuVHlwZV07bnVsbD09WCYmKFg9NDApLGllLndyaXRlX3NoaWZ0KDQsWD0rWCk7dmFyIHdlPTA7aWYoNDAhPVgp''@;'; put 'put ''Zm9yKGpmKEguZmdDb2xvcnx8e2luZGV4OjY0fSxpZSksamYoSC5iZ0NvbG9yfHx7aW5kZXg6NjV9LGllKTt3ZTwxMjsrK3dlKWllLndyaXRlX3NoaWZ0KDQsMCk7ZWxzZXtmb3IoO3dlPDQ7Kyt3ZSlpZS53cml0ZV9zaGlmdCg0LDApO2Zvcig7d2U8MTI7Kyt3ZSlpZS53cml0ZV9zaGlmdCg0''@;'; put 'put ''LDApfXJldHVybiBpZS5sZW5ndGg+aWUubD9pZS5zbGljZSgwLGllLmwpOmllfSh3ZSkpfSksQzAoSCwiQnJ0RW5kRmlsbHMiKSl9KFgsKEguU3R5bGVzfHx7fSkuRmlsbHN8fFtdKSxmdW5jdGlvbiBlQihILGllKXt2YXIgWD1pZS5sZW5ndGg7MCE9WCYmKEMwKEgsIkJydEJlZ2luQm9yZGVy''@;'; put 'put ''cyIsJGwoWCkpLGllLmZvckVhY2goZnVuY3Rpb24od2Upe0MwKEgsIkJydEJvcmRlciIsZnVuY3Rpb24gU2IoSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoNTEpKSxpZS53cml0ZV9zaGlmdCgxLDApLG02KEgudG9wLGllKSxtNihILmJvdHRvbSxpZSksbTYoSC5sZWZ0LGllKSxtNihILnJpZ2h0''@;'; put 'put ''LGllKSxtNihudWxsLGllKSxpZS5sZW5ndGg+aWUubD9pZS5zbGljZSgwLGllLmwpOmllfSh3ZSkpfSksQzAoSCwiQnJ0RW5kQm9yZGVycyIpKX0oWCwoSC5TdHlsZXN8fHt9KS5Cb3JkZXJzfHxbXSksZnVuY3Rpb24gdEIoSCxpZSl7dmFyIFg9MTtpZihpZSYmKFg9aWUubGVuZ3RoKSxDMChI''@;'; put 'put ''LCJCcnRCZWdpbkNlbGxTdHlsZVhGcyIsJGwoWCkpLEMwKEgsIkJydFhGIixGOSh7bnVtRm10SWQ6MCxmb250SWQ6MCxmaWxsSWQ6MCxib3JkZXJJZDowfSw2NTUzNSkpLGllKWZvcih2YXIgd2U9MTt3ZTxpZS5sZW5ndGg7Kyt3ZSlDMChILCJCcnRYRiIsRjkoe251bUZtdElkOmllW3dlXS5u''@;'; put 'put ''dW1GbXRJZHx8MCxmb250SWQ6aWVbd2VdLmZvbnRJZHx8MCxmaWxsSWQ6aWVbd2VdLmZpbGxJZHx8MCxib3JkZXJJZDppZVt3ZV0uYm9yZGVySWR8fDB9LDY1NTM1KSk7QzAoSCwiQnJ0RW5kQ2VsbFN0eWxlWEZzIil9KFgsaWUuY2VsbFN0eWxlWGZzKSxmdW5jdGlvbiBFYihILGllKXtDMChI''@;'; put 'put ''LCJCcnRCZWdpbkNlbGxYRnMiLCRsKGllLmxlbmd0aCkpLGllLmZvckVhY2goZnVuY3Rpb24oWCl7QzAoSCwiQnJ0WEYiLEY5KFgsMCkpfSksQzAoSCwiQnJ0RW5kQ2VsbFhGcyIpfShYLGllLmNlbGxYZnMpLGZ1bmN0aW9uIG5CKEgsaWUpe3ZhciBYPTE7aWYoaWUmJihYPWllLmxlbmd0aCks''@;'; put 'put ''QzAoSCwiQnJ0QmVnaW5TdHlsZXMiLCRsKFgpKSxDMChILCJCcnRTdHlsZSIsdjYoe3hmSWQ6MCxidWlsdGluSWQ6MCxuYW1lOiJOb3JtYWwifSkpLGllKWZvcih2YXIgd2U9MTt3ZTxpZS5sZW5ndGg7Kyt3ZSlDMChILCJCcnRTdHlsZSIsdjYoe3hmSWQ6d2UsYnVpbHRpbklkOjAsbmFtZTpp''@;'; put 'put ''ZVt3ZV0ubmFtZX0pKTtDMChILCJCcnRFbmRTdHlsZXMiKX0oWCxpZS5jZWxsU3R5bGVYZnMpLGZ1bmN0aW9uIHJCKEgpe0MwKEgsIkJydEJlZ2luRFhGcyIsJGwoMCkpLEMwKEgsIkJydEVuZERYRnMiKX0oWCksZnVuY3Rpb24gaUIoSCl7QzAoSCwiQnJ0QmVnaW5UYWJsZVN0eWxlcyIsZnVu''@;'; put 'put ''Y3Rpb24gcVIoSCxpZSxYKXt2YXIgd2U9UmkoMjA1Mik7cmV0dXJuIHdlLndyaXRlX3NoaWZ0KDQsSCksWnAoaWUsd2UpLFpwKFgsd2UpLHdlLmxlbmd0aD53ZS5sP3dlLnNsaWNlKDAsd2UubCk6d2V9KDAsIlRhYmxlU3R5bGVNZWRpdW05IiwiUGl2b3RTdHlsZU1lZGl1bTQiKSksQzAoSCwi''@;'; put 'put ''QnJ0RW5kVGFibGVTdHlsZXMiKX0oWCksQzAoWCwiQnJ0RW5kU3R5bGVTaGVldCIpLFguZW5kKCl9ZHQuVEhFTUU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGhlbWUiO3ZhciBhQj1bIjwvYTpsdDE+IiwiPC9h''@;'; put 'put ''OmRrMT4iLCI8L2E6bHQyPiIsIjwvYTpkazI+IiwiPC9hOmFjY2VudDE+IiwiPC9hOmFjY2VudDI+IiwiPC9hOmFjY2VudDM+IiwiPC9hOmFjY2VudDQ+IiwiPC9hOmFjY2VudDU+IiwiPC9hOmFjY2VudDY+IiwiPC9hOmhsaW5rPiIsIjwvYTpmb2xIbGluaz4iXTtmdW5jdGlvbiBiYyhILGll''@;'; put 'put ''LFgpe2llLnRoZW1lRWxlbWVudHMuY2xyU2NoZW1lPVtdO3ZhciB3ZT17fTsoSFswXS5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt2YXIgRmU9ZW4oeGUpO3N3aXRjaChGZVswXSl7Y2FzZSI8YTpjbHJTY2hlbWUiOmNhc2UiPC9hOmNsclNjaGVtZT4iOmNhc2UiPC9hOnNy''@;'; put 'put ''Z2JDbHI+IjpjYXNlIjwvYTpzeXNDbHI+IjpicmVhaztjYXNlIjxhOnNyZ2JDbHIiOndlLnJnYj1GZS52YWw7YnJlYWs7Y2FzZSI8YTpzeXNDbHIiOndlLnJnYj1GZS5sYXN0Q2xyO2JyZWFrO2Nhc2UiPGE6ZGsxPiI6Y2FzZSI8L2E6ZGsxPiI6Y2FzZSI8YTpsdDE+IjpjYXNlIjwvYTpsdDE+''@;'; put 'put ''IjpjYXNlIjxhOmRrMj4iOmNhc2UiPC9hOmRrMj4iOmNhc2UiPGE6bHQyPiI6Y2FzZSI8L2E6bHQyPiI6Y2FzZSI8YTphY2NlbnQxPiI6Y2FzZSI8L2E6YWNjZW50MT4iOmNhc2UiPGE6YWNjZW50Mj4iOmNhc2UiPC9hOmFjY2VudDI+IjpjYXNlIjxhOmFjY2VudDM+IjpjYXNlIjwvYTphY2Nl''@;'; put 'put ''bnQzPiI6Y2FzZSI8YTphY2NlbnQ0PiI6Y2FzZSI8L2E6YWNjZW50ND4iOmNhc2UiPGE6YWNjZW50NT4iOmNhc2UiPC9hOmFjY2VudDU+IjpjYXNlIjxhOmFjY2VudDY+IjpjYXNlIjwvYTphY2NlbnQ2PiI6Y2FzZSI8YTpobGluaz4iOmNhc2UiPC9hOmhsaW5rPiI6Y2FzZSI8YTpmb2xIbGlu''@;'; put 'put ''az4iOmNhc2UiPC9hOmZvbEhsaW5rPiI6Ii8iPT09RmVbMF0uY2hhckF0KDEpPyhpZS50aGVtZUVsZW1lbnRzLmNsclNjaGVtZVthQi5pbmRleE9mKEZlWzBdKV09d2Usd2U9e30pOndlLm5hbWU9RmVbMF0uc2xpY2UoMyxGZVswXS5sZW5ndGgtMSk7YnJlYWs7ZGVmYXVsdDppZihYJiZYLldU''@;'; put 'put ''Ril0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCAiK0ZlWzBdKyIgaW4gY2xyU2NoZW1lIil9fSl9ZnVuY3Rpb24geGIoKXt9ZnVuY3Rpb24gRUUoKXt9dmFyIFRiPS88YTpjbHJTY2hlbWUoW14+XSopPltcc1xTXSo8XC9hOmNsclNjaGVtZT4vLHF1PS88YTpmb250U2NoZW1lKFtePl0q''@;'; put 'put ''KT5bXHNcU10qPFwvYTpmb250U2NoZW1lPi8sYm09LzxhOmZtdFNjaGVtZShbXj5dKik+W1xzXFNdKjxcL2E6Zm10U2NoZW1lPi8sRGI9LzxhOnRoZW1lRWxlbWVudHMoW14+XSopPltcc1xTXSo8XC9hOnRoZW1lRWxlbWVudHM+LztmdW5jdGlvbiBIOShILGllKXtpZighSHx8MD09PUgubGVu''@;'; put 'put ''Z3RoKXJldHVybiBIOShOOSgpKTt2YXIgWCx3ZT17fTtpZighKFg9SC5tYXRjaChEYikpKXRocm93IG5ldyBFcnJvcigidGhlbWVFbGVtZW50cyBub3QgZm91bmQgaW4gdGhlbWUiKTtyZXR1cm4gZnVuY3Rpb24gSWIoSCxpZSxYKXt2YXIgd2U7aWUudGhlbWVFbGVtZW50cz17fSxbWyJjbHJT''@;'; put 'put ''Y2hlbWUiLFRiLGJjXSxbImZvbnRTY2hlbWUiLHF1LHhiXSxbImZtdFNjaGVtZSIsYm0sRUVdXS5mb3JFYWNoKGZ1bmN0aW9uKHhlKXtpZighKHdlPUgubWF0Y2goeGVbMV0pKSl0aHJvdyBuZXcgRXJyb3IoeGVbMF0rIiBub3QgZm91bmQgaW4gdGhlbWVFbGVtZW50cyIpO3hlWzJdKHdlLGll''@;'; put 'put ''LFgpfSl9KFhbMF0sd2UsaWUpLHdlLnJhdz1ILHdlfWZ1bmN0aW9uIE45KEgsaWUpe2lmKGllJiZpZS50aGVtZVhMU1gpcmV0dXJuIGllLnRoZW1lWExTWDtpZihIJiYic3RyaW5nIj09dHlwZW9mIEgucmF3KXJldHVybiBILnJhdzt2YXIgWD1bY25dO3JldHVybiBYW1gubGVuZ3RoXT0nPGE6''@;'; put 'put ''dGhlbWUgeG1sbnM6YT0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL2RyYXdpbmdtbC8yMDA2L21haW4iIG5hbWU9Ik9mZmljZSBUaGVtZSI+JyxYW1gubGVuZ3RoXT0iPGE6dGhlbWVFbGVtZW50cz4iLFhbWC5sZW5ndGhdPSc8YTpjbHJTY2hlbWUgbmFtZT0iT2ZmaWNlIj4n''@;'; put 'put ''LFhbWC5sZW5ndGhdPSc8YTpkazE+PGE6c3lzQ2xyIHZhbD0id2luZG93VGV4dCIgbGFzdENscj0iMDAwMDAwIi8+PC9hOmRrMT4nLFhbWC5sZW5ndGhdPSc8YTpsdDE+PGE6c3lzQ2xyIHZhbD0id2luZG93IiBsYXN0Q2xyPSJGRkZGRkYiLz48L2E6bHQxPicsWFtYLmxlbmd0aF09JzxhOmRr''@;'; put 'put ''Mj48YTpzcmdiQ2xyIHZhbD0iMUY0OTdEIi8+PC9hOmRrMj4nLFhbWC5sZW5ndGhdPSc8YTpsdDI+PGE6c3JnYkNsciB2YWw9IkVFRUNFMSIvPjwvYTpsdDI+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD0iNEY4MUJEIi8+PC9hOmFjY2VudDE+JyxYW1gubGVuZ3Ro''@;'; put 'put ''XT0nPGE6YWNjZW50Mj48YTpzcmdiQ2xyIHZhbD0iQzA1MDREIi8+PC9hOmFjY2VudDI+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50Mz48YTpzcmdiQ2xyIHZhbD0iOUJCQjU5Ii8+PC9hOmFjY2VudDM+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD0iODA2NEEyIi8+''@;'; put 'put ''PC9hOmFjY2VudDQ+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50NT48YTpzcmdiQ2xyIHZhbD0iNEJBQ0M2Ii8+PC9hOmFjY2VudDU+JyxYW1gubGVuZ3RoXT0nPGE6YWNjZW50Nj48YTpzcmdiQ2xyIHZhbD0iRjc5NjQ2Ii8+PC9hOmFjY2VudDY+JyxYW1gubGVuZ3RoXT0nPGE6aGxpbms+PGE6''@;'; put 'put ''c3JnYkNsciB2YWw9IjAwMDBGRiIvPjwvYTpobGluaz4nLFhbWC5sZW5ndGhdPSc8YTpmb2xIbGluaz48YTpzcmdiQ2xyIHZhbD0iODAwMDgwIi8+PC9hOmZvbEhsaW5rPicsWFtYLmxlbmd0aF09IjwvYTpjbHJTY2hlbWU+IixYW1gubGVuZ3RoXT0nPGE6Zm9udFNjaGVtZSBuYW1lPSJPZmZp''@;'; put 'put ''Y2UiPicsWFtYLmxlbmd0aF09IjxhOm1ham9yRm9udD4iLFhbWC5sZW5ndGhdPSc8YTpsYXRpbiB0eXBlZmFjZT0iQ2FtYnJpYSIvPicsWFtYLmxlbmd0aF09JzxhOmVhIHR5cGVmYWNlPSIiLz4nLFhbWC5sZW5ndGhdPSc8YTpjcyB0eXBlZmFjZT0iIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9u''@;'; put 'put ''dCBzY3JpcHQ9IkpwYW4iIHR5cGVmYWNlPSJcdWZmMmRcdWZmMzMgXHVmZjMwXHUzMGI0XHUzMGI3XHUzMGMzXHUzMGFmIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhhbmciIHR5cGVmYWNlPSJcdWI5ZDFcdWM3NDAgXHVhY2UwXHViNTE1Ii8+JyxYW1gubGVuZ3RoXT0nPGE6''@;'; put 'put ''Zm9udCBzY3JpcHQ9IkhhbnMiIHR5cGVmYWNlPSJcdTViOGJcdTRmNTMiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFudCIgdHlwZWZhY2U9Ilx1NjViMFx1N2QzMFx1NjYwZVx1OWFkNCIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJBcmFiIiB0eXBlZmFjZT0i''@;'; put 'put ''VGltZXMgTmV3IFJvbWFuIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkhlYnIiIHR5cGVmYWNlPSJUaW1lcyBOZXcgUm9tYW4iLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZhY2U9IlRhaG9tYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2Ny''@;'; put 'put ''aXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBlZmFjZT0iU2hydXRpIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBz''@;'; put 'put ''Y3JpcHQ9IktobXIiIHR5cGVmYWNlPSJNb29sQm9yYW4iLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iS25kYSIgdHlwZWZhY2U9IlR1bmdhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ikd1cnUiIHR5cGVmYWNlPSJSYWF2aSIvPicsWFtYLmxlbmd0aF09JzxhOmZv''@;'; put 'put ''bnQgc2NyaXB0PSJDYW5zIiB0eXBlZmFjZT0iRXVwaGVtaWEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQ2hlciIgdHlwZWZhY2U9IlBsYW50YWdlbmV0IENoZXJva2VlIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IllpaWkiIHR5cGVmYWNlPSJNaWNyb3NvZnQg''@;'; put 'put ''WWkgQmFpdGkiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGlidCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBIaW1hbGF5YSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaGFhIiB0eXBlZmFjZT0iTVYgQm9saSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0''@;'; put 'put ''PSJEZXZhIiB0eXBlZmFjZT0iTWFuZ2FsIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRlbHUiIHR5cGVmYWNlPSJHYXV0YW1pIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRhbWwiIHR5cGVmYWNlPSJMYXRoYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2Ny''@;'; put 'put ''aXB0PSJTeXJjIiB0eXBlZmFjZT0iRXN0cmFuZ2VsbyBFZGVzc2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iT3J5YSIgdHlwZWZhY2U9IkthbGluZ2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iTWx5bSIgdHlwZWZhY2U9IkthcnRpa2EiLz4nLFhbWC5sZW5n''@;'; put 'put ''dGhdPSc8YTpmb250IHNjcmlwdD0iTGFvbyIgdHlwZWZhY2U9IkRva0NoYW1wYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJTaW5oIiB0eXBlZmFjZT0iSXNrb29sYSBQb3RhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9Ik1vbmciIHR5cGVmYWNlPSJNb25nb2xp''@;'; put 'put ''YW4gQmFpdGkiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVmlldCIgdHlwZWZhY2U9IlRpbWVzIE5ldyBSb21hbiIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJVaWdoIiB0eXBlZmFjZT0iTWljcm9zb2Z0IFVpZ2h1ciIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQg''@;'; put 'put ''c2NyaXB0PSJHZW9yIiB0eXBlZmFjZT0iU3lsZmFlbiIvPicsWFtYLmxlbmd0aF09IjwvYTptYWpvckZvbnQ+IixYW1gubGVuZ3RoXT0iPGE6bWlub3JGb250PiIsWFtYLmxlbmd0aF09JzxhOmxhdGluIHR5cGVmYWNlPSJDYWxpYnJpIi8+JyxYW1gubGVuZ3RoXT0nPGE6ZWEgdHlwZWZhY2U9''@;'; put 'put ''IiIvPicsWFtYLmxlbmd0aF09JzxhOmNzIHR5cGVmYWNlPSIiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSnBhbiIgdHlwZWZhY2U9Ilx1ZmYyZFx1ZmYzMyBcdWZmMzBcdTMwYjRcdTMwYjdcdTMwYzNcdTMwYWYiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFu''@;'; put 'put ''ZyIgdHlwZWZhY2U9Ilx1YjlkMVx1Yzc0MCBcdWFjZTBcdWI1MTUiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iSGFucyIgdHlwZWZhY2U9Ilx1NWI4Ylx1NGY1MyIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIYW50IiB0eXBlZmFjZT0iXHU2NWIwXHU3ZDMwXHU2''@;'; put 'put ''NjBlXHU5YWQ0Ii8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkFyYWIiIHR5cGVmYWNlPSJBcmlhbCIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJIZWJyIiB0eXBlZmFjZT0iQXJpYWwiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGhhaSIgdHlwZWZh''@;'; put 'put ''Y2U9IlRhaG9tYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJFdGhpIiB0eXBlZmFjZT0iTnlhbGEiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iQmVuZyIgdHlwZWZhY2U9IlZyaW5kYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJHdWpyIiB0eXBl''@;'; put 'put ''ZmFjZT0iU2hydXRpIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IktobXIiIHR5cGVmYWNlPSJEYXVuUGVuaCIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJLbmRhIiB0eXBlZmFjZT0iVHVuZ2EiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR3VydSIg''@;'; put 'put ''dHlwZWZhY2U9IlJhYXZpIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkNhbnMiIHR5cGVmYWNlPSJFdXBoZW1pYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJDaGVyIiB0eXBlZmFjZT0iUGxhbnRhZ2VuZXQgQ2hlcm9rZWUiLz4nLFhbWC5sZW5ndGhdPSc8YTpm''@;'; put 'put ''b250IHNjcmlwdD0iWWlpaSIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBZaSBCYWl0aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJUaWJ0IiB0eXBlZmFjZT0iTWljcm9zb2Z0IEhpbWFsYXlhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlRoYWEiIHR5cGVmYWNlPSJN''@;'; put 'put ''ViBCb2xpIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IkRldmEiIHR5cGVmYWNlPSJNYW5nYWwiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGVsdSIgdHlwZWZhY2U9IkdhdXRhbWkiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVGFtbCIgdHlwZWZh''@;'; put 'put ''Y2U9IkxhdGhhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlN5cmMiIHR5cGVmYWNlPSJFc3RyYW5nZWxvIEVkZXNzYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJPcnlhIiB0eXBlZmFjZT0iS2FsaW5nYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0''@;'; put 'put ''PSJNbHltIiB0eXBlZmFjZT0iS2FydGlrYSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJMYW9vIiB0eXBlZmFjZT0iRG9rQ2hhbXBhIi8+JyxYW1gubGVuZ3RoXT0nPGE6Zm9udCBzY3JpcHQ9IlNpbmgiIHR5cGVmYWNlPSJJc2tvb2xhIFBvdGEiLz4nLFhbWC5sZW5ndGhdPSc8''@;'; put 'put ''YTpmb250IHNjcmlwdD0iTW9uZyIgdHlwZWZhY2U9Ik1vbmdvbGlhbiBCYWl0aSIvPicsWFtYLmxlbmd0aF09JzxhOmZvbnQgc2NyaXB0PSJWaWV0IiB0eXBlZmFjZT0iQXJpYWwiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iVWlnaCIgdHlwZWZhY2U9Ik1pY3Jvc29mdCBVaWdo''@;'; put 'put ''dXIiLz4nLFhbWC5sZW5ndGhdPSc8YTpmb250IHNjcmlwdD0iR2VvciIgdHlwZWZhY2U9IlN5bGZhZW4iLz4nLFhbWC5sZW5ndGhdPSI8L2E6bWlub3JGb250PiIsWFtYLmxlbmd0aF09IjwvYTpmb250U2NoZW1lPiIsWFtYLmxlbmd0aF09JzxhOmZtdFNjaGVtZSBuYW1lPSJPZmZpY2UiPics''@;'; put 'put ''WFtYLmxlbmd0aF09IjxhOmZpbGxTdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSc8YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPicsWFtYLmxlbmd0aF09JzxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT0iMSI+JyxYW1gubGVuZ3RoXT0iPGE6Z3NMc3Q+''@;'; put 'put ''IixYW1gubGVuZ3RoXT0nPGE6Z3MgcG9zPSIwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjUwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzAwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0nPGE6Z3MgcG9zPSIzNTAwMCI+PGE6c2NoZW1lQ2xy''@;'; put 'put ''IHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSIzNzAwMCIvPjxhOnNhdE1vZCB2YWw9IjMwMDAwMCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iMTAwMDAwIj48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6dGludCB2YWw9IjE1MDAwIi8+PGE6c2F0''@;'; put 'put ''TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0iPC9hOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOmxpbiBhbmc9IjE2MjAwMDAwIiBzY2FsZWQ9IjEiLz4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0nPGE6Z3JhZEZp''@;'; put 'put ''bGwgcm90V2l0aFNoYXBlPSIxIj4nLFhbWC5sZW5ndGhdPSI8YTpnc0xzdD4iLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iMTAwMDAwIi8+PGE6c2hhZGUgdmFsPSIxMDAwMDAiLz48YTpzYXRNb2QgdmFsPSIxMzAwMDAi''@;'; put 'put ''Lz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAwMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI1MDAwMCIvPjxhOnNoYWRlIHZhbD0iMTAwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48''@;'; put 'put ''L2E6Z3M+JyxYW1gubGVuZ3RoXT0iPC9hOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOmxpbiBhbmc9IjE2MjAwMDAwIiBzY2FsZWQ9IjAiLz4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0iPC9hOmZpbGxTdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSI8YTpsblN0eWxl''@;'; put 'put ''THN0PiIsWFtYLmxlbmd0aF09JzxhOmxuIHc9Ijk1MjUiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciI+PGE6c2hhZGUgdmFsPSI5NTAwMCIvPjxhOnNhdE1vZCB2YWw9IjEwNTAwMCIvPjwvYTpzY2hlbWVDbHI+''@;'; put 'put ''PC9hOnNvbGlkRmlsbD48YTpwcnN0RGFzaCB2YWw9InNvbGlkIi8+PC9hOmxuPicsWFtYLmxlbmd0aF09JzxhOmxuIHc9IjI1NDAwIiBjYXA9ImZsYXQiIGNtcGQ9InNuZyIgYWxnbj0iY3RyIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiLz48L2E6c29saWRGaWxsPjxh''@;'; put 'put ''OnByc3REYXNoIHZhbD0ic29saWQiLz48L2E6bG4+JyxYW1gubGVuZ3RoXT0nPGE6bG4gdz0iMzgxMDAiIGNhcD0iZmxhdCIgY21wZD0ic25nIiBhbGduPSJjdHIiPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPSJwaENsciIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPSJz''@;'; put 'put ''b2xpZCIvPjwvYTpsbj4nLFhbWC5sZW5ndGhdPSI8L2E6bG5TdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZUxzdD4iLFhbWC5sZW5ndGhdPSI8YTplZmZlY3RTdHlsZT4iLFhbWC5sZW5ndGhdPSI8YTplZmZlY3RMc3Q+IixYW1gubGVuZ3RoXT0nPGE6b3V0ZXJTaGR3IGJs''@;'; put 'put ''dXJSYWQ9IjQwMDAwIiBkaXN0PSIyMDAwMCIgZGlyPSI1NDAwMDAwIiByb3RXaXRoU2hhcGU9IjAiPjxhOnNyZ2JDbHIgdmFsPSIwMDAwMDAiPjxhOmFscGhhIHZhbD0iMzgwMDAiLz48L2E6c3JnYkNscj48L2E6b3V0ZXJTaGR3PicsWFtYLmxlbmd0aF09IjwvYTplZmZlY3RMc3Q+IixYW1gu''@;'; put 'put ''bGVuZ3RoXT0iPC9hOmVmZmVjdFN0eWxlPiIsWFtYLmxlbmd0aF09IjxhOmVmZmVjdFN0eWxlPiIsWFtYLmxlbmd0aF09IjxhOmVmZmVjdExzdD4iLFhbWC5sZW5ndGhdPSc8YTpvdXRlclNoZHcgYmx1clJhZD0iNDAwMDAiIGRpc3Q9IjIzMDAwIiBkaXI9IjU0MDAwMDAiIHJvdFdpdGhTaGFw''@;'; put 'put ''ZT0iMCI+PGE6c3JnYkNsciB2YWw9IjAwMDAwMCI+PGE6YWxwaGEgdmFsPSIzNTAwMCIvPjwvYTpzcmdiQ2xyPjwvYTpvdXRlclNoZHc+JyxYW1gubGVuZ3RoXT0iPC9hOmVmZmVjdExzdD4iLFhbWC5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGU+IixYW1gubGVuZ3RoXT0iPGE6ZWZmZWN0U3R5''@;'; put 'put ''bGU+IixYW1gubGVuZ3RoXT0iPGE6ZWZmZWN0THN0PiIsWFtYLmxlbmd0aF09JzxhOm91dGVyU2hkdyBibHVyUmFkPSI0MDAwMCIgZGlzdD0iMjMwMDAiIGRpcj0iNTQwMDAwMCIgcm90V2l0aFNoYXBlPSIwIj48YTpzcmdiQ2xyIHZhbD0iMDAwMDAwIj48YTphbHBoYSB2YWw9IjM1MDAwIi8+''@;'; put 'put ''PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz4nLFhbWC5sZW5ndGhdPSI8L2E6ZWZmZWN0THN0PiIsWFtYLmxlbmd0aF09JzxhOnNjZW5lM2Q+PGE6Y2FtZXJhIHByc3Q9Im9ydGhvZ3JhcGhpY0Zyb250Ij48YTpyb3QgbGF0PSIwIiBsb249IjAiIHJldj0iMCIvPjwvYTpjYW1lcmE+PGE6bGln''@;'; put 'put ''aHRSaWcgcmlnPSJ0aHJlZVB0IiBkaXI9InQiPjxhOnJvdCBsYXQ9IjAiIGxvbj0iMCIgcmV2PSIxMjAwMDAwIi8+PC9hOmxpZ2h0UmlnPjwvYTpzY2VuZTNkPicsWFtYLmxlbmd0aF09JzxhOnNwM2Q+PGE6YmV2ZWxUIHc9IjYzNTAwIiBoPSIyNTQwMCIvPjwvYTpzcDNkPicsWFtYLmxlbmd0''@;'; put 'put ''aF09IjwvYTplZmZlY3RTdHlsZT4iLFhbWC5sZW5ndGhdPSI8L2E6ZWZmZWN0U3R5bGVMc3Q+IixYW1gubGVuZ3RoXT0iPGE6YmdGaWxsU3R5bGVMc3Q+IixYW1gubGVuZ3RoXT0nPGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIi8+PC9hOnNvbGlkRmlsbD4nLFhbWC5sZW5n''@;'; put 'put ''dGhdPSc8YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9IjEiPicsWFtYLmxlbmd0aF09IjxhOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnRpbnQgdmFsPSI0MDAwMCIvPjxhOnNhdE1vZCB2YWw9IjM1MDAwMCIvPjwvYTpzY2hl''@;'; put 'put ''bWVDbHI+PC9hOmdzPicsWFtYLmxlbmd0aF09JzxhOmdzIHBvcz0iNDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iNDUwMDAiLz48YTpzaGFkZSB2YWw9Ijk5MDAwIi8+PGE6c2F0TW9kIHZhbD0iMzUwMDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gu''@;'; put 'put ''bGVuZ3RoXT0nPGE6Z3MgcG9zPSIxMDAwMDAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTpzaGFkZSB2YWw9IjIwMDAwIi8+PGE6c2F0TW9kIHZhbD0iMjU1MDAwIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+JyxYW1gubGVuZ3RoXT0iPC9hOmdzTHN0PiIsWFtYLmxlbmd0aF09JzxhOnBh''@;'; put 'put ''dGggcGF0aD0iY2lyY2xlIj48YTpmaWxsVG9SZWN0IGw9IjUwMDAwIiB0PSItODAwMDAiIHI9IjUwMDAwIiBiPSIxODAwMDAiLz48L2E6cGF0aD4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0nPGE6Z3JhZEZpbGwgcm90V2l0aFNoYXBlPSIxIj4nLFhbWC5sZW5n''@;'; put 'put ''dGhdPSI8YTpnc0xzdD4iLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjAiPjxhOnNjaGVtZUNsciB2YWw9InBoQ2xyIj48YTp0aW50IHZhbD0iODAwMDAiLz48YTpzYXRNb2QgdmFsPSIzMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLFhbWC5sZW5ndGhdPSc8YTpncyBwb3M9IjEwMDAw''@;'; put 'put ''MCI+PGE6c2NoZW1lQ2xyIHZhbD0icGhDbHIiPjxhOnNoYWRlIHZhbD0iMzAwMDAiLz48YTpzYXRNb2QgdmFsPSIyMDAwMDAiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz4nLFhbWC5sZW5ndGhdPSI8L2E6Z3NMc3Q+IixYW1gubGVuZ3RoXT0nPGE6cGF0aCBwYXRoPSJjaXJjbGUiPjxhOmZpbGxU''@;'; put 'put ''b1JlY3QgbD0iNTAwMDAiIHQ9IjUwMDAwIiByPSI1MDAwMCIgYj0iNTAwMDAiLz48L2E6cGF0aD4nLFhbWC5sZW5ndGhdPSI8L2E6Z3JhZEZpbGw+IixYW1gubGVuZ3RoXT0iPC9hOmJnRmlsbFN0eWxlTHN0PiIsWFtYLmxlbmd0aF09IjwvYTpmbXRTY2hlbWU+IixYW1gubGVuZ3RoXT0iPC9h''@;'; put 'put ''OnRoZW1lRWxlbWVudHM+IixYW1gubGVuZ3RoXT0iPGE6b2JqZWN0RGVmYXVsdHM+IixYW1gubGVuZ3RoXT0iPGE6c3BEZWY+IixYW1gubGVuZ3RoXT0nPGE6c3BQci8+PGE6Ym9keVByLz48YTpsc3RTdHlsZS8+PGE6c3R5bGU+PGE6bG5SZWYgaWR4PSIxIj48YTpzY2hlbWVDbHIgdmFsPSJh''@;'; put 'put ''Y2NlbnQxIi8+PC9hOmxuUmVmPjxhOmZpbGxSZWYgaWR4PSIzIj48YTpzY2hlbWVDbHIgdmFsPSJhY2NlbnQxIi8+PC9hOmZpbGxSZWY+PGE6ZWZmZWN0UmVmIGlkeD0iMiI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTplZmZlY3RSZWY+PGE6Zm9udFJlZiBpZHg9Im1pbm9yIj48''@;'; put 'put ''YTpzY2hlbWVDbHIgdmFsPSJsdDEiLz48L2E6Zm9udFJlZj48L2E6c3R5bGU+JyxYW1gubGVuZ3RoXT0iPC9hOnNwRGVmPiIsWFtYLmxlbmd0aF09IjxhOmxuRGVmPiIsWFtYLmxlbmd0aF09JzxhOnNwUHIvPjxhOmJvZHlQci8+PGE6bHN0U3R5bGUvPjxhOnN0eWxlPjxhOmxuUmVmIGlkeD0i''@;'; put 'put ''MiI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTpsblJlZj48YTpmaWxsUmVmIGlkeD0iMCI+PGE6c2NoZW1lQ2xyIHZhbD0iYWNjZW50MSIvPjwvYTpmaWxsUmVmPjxhOmVmZmVjdFJlZiBpZHg9IjEiPjxhOnNjaGVtZUNsciB2YWw9ImFjY2VudDEiLz48L2E6ZWZmZWN0UmVmPjxh''@;'; put 'put ''OmZvbnRSZWYgaWR4PSJtaW5vciI+PGE6c2NoZW1lQ2xyIHZhbD0idHgxIi8+PC9hOmZvbnRSZWY+PC9hOnN0eWxlPicsWFtYLmxlbmd0aF09IjwvYTpsbkRlZj4iLFhbWC5sZW5ndGhdPSI8L2E6b2JqZWN0RGVmYXVsdHM+IixYW1gubGVuZ3RoXT0iPGE6ZXh0cmFDbHJTY2hlbWVMc3QvPiIs''@;'; put 'put ''WFtYLmxlbmd0aF09IjwvYTp0aGVtZT4iLFguam9pbigiIil9ZnVuY3Rpb24gdUIoSCl7dmFyIGllPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKS00LHdlPVtpZV07c3dpdGNoKGllKXtjYXNlIDQ6Y2FzZSA1OmNhc2UgNzpjYXNlIDg6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAxMTpj''@;'; put 'put ''YXNlIDEzOndlWzFdPWZ1bmN0aW9uIHNCKEgpe3ZhciBpZT17fTtzd2l0Y2goaWUueGNsclR5cGU9SC5yZWFkX3NoaWZ0KDIpLGllLm5UaW50U2hhZGU9SC5yZWFkX3NoaWZ0KDIpLGllLnhjbHJUeXBlKXtjYXNlIDA6Y2FzZSA0OkgubCs9NDticmVhaztjYXNlIDE6aWUueGNsclZhbHVlPWZ1''@;'; put 'put ''bmN0aW9uIFRFKEgsaWUpe3JldHVybiBDcyhILGllKX0oSCw0KTticmVhaztjYXNlIDI6aWUueGNsclZhbHVlPXQ2KEgpO2JyZWFrO2Nhc2UgMzppZS54Y2xyVmFsdWU9ZnVuY3Rpb24geEUoSCl7cmV0dXJuIEgucmVhZF9zaGlmdCg0KX0oSCl9cmV0dXJuIEgubCs9OCxpZX0oSCk7YnJlYWs7''@;'; put 'put ''Y2FzZSA2OndlWzFdPWZ1bmN0aW9uIElFKEgsaWUpe3JldHVybiBDcyhILGllKX0oSCxYKTticmVhaztjYXNlIDE0OmNhc2UgMTU6d2VbMV09SC5yZWFkX3NoaWZ0KDE9PT1YPzE6Mik7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCBFeHRQcm9wIHR5cGU6ICIr''@;'; put 'put ''aWUrIiAiK1gpfXJldHVybiB3ZX1mdW5jdGlvbiBMYihILGllKXtpZS5mb3JFYWNoKGZ1bmN0aW9uKFgpe3N3aXRjaChYWzBdKXtjYXNlIDQ6Y2FzZSA1OmNhc2UgNjpjYXNlIDc6Y2FzZSA4OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxNDpjYXNlIDE1OmJyZWFrO2Nhc2UgMTM6SC5m''@;'; put 'put ''b250JiZILmZvbnQuY29sb3ImJkFycmF5LmlzQXJyYXkoWFsxXS54Y2xyVmFsdWUpJiYoSC5mb250LmNvbG9yLnJnYj1iMyhYWzFdLnhjbHJWYWx1ZSkpfX0pfWZ1bmN0aW9uIEhsKEgpe3JldHVybiBILzkxNDQwMCpSNH1mdW5jdGlvbiAkOChILGllKXt2YXIgWD17fTtpZihILnBvcylYLng9''@;'; put 'put ''SGwoSC5wb3MueCksWC55PUhsKEgucG9zLnkpO2Vsc2V7aWYoIUguZnJvbSl0aHJvdyJiYWQgYW5jaG9yIHN0YXJ0IjtYLnI9SC5mcm9tLnJ8fDAsWC5jPUguZnJvbS5jfHwwLEguZnJvbS5jT2ZmJiYoWC54PUhsKEguZnJvbS5jT2ZmKSksSC5mcm9tLnJPZmYmJihYLnk9SGwoSC5mcm9tLnJP''@;'; put 'put ''ZmYpKX1pZihILmV4dClYLnc9SGwoSC5leHQueCksWC5oPUhsKEguZXh0LnkpO2Vsc2V7aWYoIUgudG8pdGhyb3ciYmFkIGFuY2hvciBlbmQiO1guQz1ILnRvLmMsWC5SPUgudG8ucixILnRvLmNPZmYmJihYLlg9SGwoSC50by5jT2ZmKSksSC50by5yT2ZmJiYoWC5ZPUhsKEgudG8uck9mZikp''@;'; put 'put ''fXJldHVybiBYfWZ1bmN0aW9uIHlmKEgsaWUpe3ZhciBYPXt4Oi0xLHk6LTEsdzotMSxoOi0xfTtpZihILnBvcylYLng9SGwoSC5wb3MueCksWC55PUhsKEgucG9zLnkpO2Vsc2V7aWYoIUguZnJvbSl0aHJvdyJiYWQgYW5jaG9yIHN0YXJ0IjtYLng9ZnUoaWUsSC5mcm9tLmMsIkMiKStIbChI''@;'; put 'put ''LmZyb20uY09mZiksWC55PWZ1KGllLEguZnJvbS5yLCJSIikrSGwoSC5mcm9tLnJPZmYpfWlmKEguZXh0KVgudz1IbChILmV4dC54KSxYLmg9SGwoSC5leHQueSk7ZWxzZXtpZighSC50byl0aHJvdyJiYWQgYW5jaG9yIGVuZCI7WC53PWZ1KGllLEgudG8uYywiQyIpK0hsKEgudG8uY09mZikt''@;'; put 'put ''WC54LFguaD1mdShpZSxILnRvLnIsIlIiKStIbChILnRvLnJPZmYpLVgueX1yZXR1cm4gWH1mdW5jdGlvbiBPYihILGllKXt2YXIgWD17cjotMSxjOi0xLHg6LTEseTotMSxSOi0xLEM6LTEsWDotMSxZOi0xfTtzd2l0Y2goSC50eXBlKXtjYXNlInR3b0NlbGxBbmNob3IiOlgucj1ILmZyb20u''@;'; put 'put ''cixYLnk9SGwoSC5mcm9tLnJPZmYpLFguUj1ILnRvLnIsWC5ZPUhsKEgudG8uck9mZiksWC5jPUguZnJvbS5jLFgueD1IbChILmZyb20uY09mZiksWC5DPUgudG8uYyxYLlg9SGwoSC50by5jT2ZmKTticmVhaztjYXNlIm9uZUNlbGxBbmNob3IiOlgucj1ILmZyb20ucixYLnk9SGwoSC5mcm9t''@;'; put 'put ''LnJPZmYpO3ZhciB3ZT1FZChpZSxYLnIsWC55K0hsKEguZXh0LnkpKTtYLlI9d2VbMF0sWC5ZPXdlWzFdLFguYz1ILmZyb20uYyxYLng9SGwoSC5mcm9tLmNPZmYpO3ZhciB4ZT1fbShpZSxYLmMsWC54K0hsKEguZXh0LngpKTtYLkM9eGVbMF0sWC5YPXhlWzFdO2JyZWFrO2Nhc2UiYWJzb2x1''@;'; put 'put ''dGVBbmNob3IiOnZhciBGZT1FZChpZSwwLEhsKEgucG9zLnkpKTtYLnI9RmVbMF0sWC55PUZlWzFdO3ZhciBaZT1FZChpZSxYLnIsWC55K0hsKEguZXh0LnkpKTtYLlI9WmVbMF0sWC5ZPVplWzFdO3ZhciBqZT1FZChpZSwwLEhsKEgucG9zLngpKTtYLmM9amVbMF0sWC54PWplWzFdO3ZhciBZ''@;'; put 'put ''ZT1FZChpZSxYLmMsWC54K0hsKEguZXh0LngpKTtYLkM9WWVbMF0sWC5YPVllWzFdO2JyZWFrO2RlZmF1bHQ6dGhyb3ciYmFkIGFuY2hvciB0eXBlICIrSC50eXBlfXJldHVybiBYfWZ1bmN0aW9uIERFKEgsaWUpe3ZhciBYPUgudHJpbSgpLnNwbGl0KC9ccyosXHMqLyk7aWVbIiFwb3MiXT17''@;'; put 'put ''YzorWFswXSx4OitYWzFdLHI6K1hbMl0seTorWFszXSxDOitYWzRdLFg6K1hbNV0sUjorWFs2XSxZOitYWzddfX1mdW5jdGlvbiBoQihILGllLFgpe3ZhciB3ZT0tMTtpZihudWxsIT1ILlJ8fG51bGwhPUguQyl3ZT0wO2Vsc2V7aWYobnVsbD09SC54fHxudWxsPT1ILnl8fG51bGw9PUgud3x8''@;'; put 'put ''bnVsbD09SC5oKXRocm93ImNhbm5vdCBwYXJzZSBhbmNob3IgIitKU09OLnN0cmluZ2lmeShIKTt3ZT0xKzIqIShILmN8fEgucil9aWYod2UhPWllKXtzd2l0Y2goaWUpe2Nhc2UgMDpjYXNlIDE6aWYoMyE9d2UpYnJlYWs7dmFyIHhlPV9tKFgsSC5jfHwwLEgueHx8MCk7SC5jPXhlWzBdLEgu''@;'; put 'put ''eD14ZVsxXTt2YXIgRmU9RWQoWCxILnJ8fDAsSC55fHwwKTtILnI9RmVbMF0sSC55PUZlWzFdO2JyZWFrO2Nhc2UgMzppZigzPT13ZSlicmVhazt2YXIgWmU9SC5jfHwwLGplPUgueHx8MDtkZWxldGUgSC5jLGRlbGV0ZSBILngsSC54PShaZT9WOShYLFplKTowKStqZTt2YXIgWWU9SC5yfHww''@;'; put 'put ''LE10PUgueXx8MDtkZWxldGUgSC5yLGRlbGV0ZSBILnksSC55PShZZT9xOChYLFllKTowKStNdDticmVhaztkZWZhdWx0OnRocm93ImNvbnZlcnRfYW5jaG9yIHVucmVjb2duaXplZCB0eXBlICIraWV9c3dpdGNoKGllKXtjYXNlIDA6aWYoMD09d2UpYnJlYWs7dmFyIHh0PV9tKFgsSC5jfHww''@;'; put 'put ''LChILnh8fDApK0gudyk7ZGVsZXRlIEgudyxILkM9eHRbMF0sSC5YPXh0WzFdO3ZhciBSdD1FZChYLEgucnx8MCwoSC55fHwwKStILmgpO2RlbGV0ZSBILmgsSC5SPVJ0WzBdLEguWT1SdFsxXTticmVhaztjYXNlIDE6Y2FzZSAzOmlmKDAhPXdlKWJyZWFrO3ZhciBVdD1ILkN8fDAsbm49SC5Y''@;'; put 'put ''fHwwO2RlbGV0ZSBILkMsZGVsZXRlIEguWCxILnc9VjkoWCxVdCkrbm4tKEguYz9WOShYLEguYyk6MCktKEgueHx8MCk7dmFyIENuPUguUnx8MCxEdD1ILll8fDA7ZGVsZXRlIEguUixkZWxldGUgSC5ZLEguaD1xOChYLENuKStEdC0oSC5yP3E4KFgsSC5yKTowKS0oSC55fHwwKTticmVhaztk''@;'; put 'put ''ZWZhdWx0OnRocm93ImNvbnZlcnRfYW5jaG9yIHVucmVjb2duaXplZCB0eXBlICIraWV9fX1mdW5jdGlvbiBkQihIKXt2YXIgaWU9W0guY3x8MCxNYXRoLnJvdW5kKEgueHx8MCksSC5yfHwwLE1hdGgucm91bmQoSC55fHwwKV07cmV0dXJuKGllPWllLmNvbmNhdChILmgmJkgudz9baWVbMF0s''@;'; put 'put ''TWF0aC5yb3VuZChpZVsxXStILncpLGllWzJdLE1hdGgucm91bmQoaWVbM10rSC5oKV06W0guQ3x8MCxNYXRoLnJvdW5kKEguWHx8MCksSC5SfHwwLE1hdGgucm91bmQoSC5ZfHwwKV0pKS5qb2luKCIsICIpfWZ1bmN0aW9uIHE4KEgsaWUpe2lmKCFIKXJldHVybiAwO2Zvcih2YXIgWD0wOy0t''@;'; put 'put ''aWU+PTA7KXt2YXIgd2U9KChIWyIhcm93cyJdfHxbXSlbaWVdfHx7fSkuaHB4O251bGw9PXdlJiYod2U9KChIWyIhc2hlZXRGb3JtYXQiXXx8e30pLnJvd3x8e30pLmhweCksbnVsbD09d2UmJih3ZT0yNCksWCs9d2V9cmV0dXJuIFh9ZnVuY3Rpb24gVjkoSCxpZSl7aWYoIUgpcmV0dXJuIDA7''@;'; put 'put ''Zm9yKHZhciBYPTA7LS1pZT49MDspe3ZhciB3ZT0oKEhbIiFjb2xzIl18fFtdKVtpZV18fHt9KS53cHg7aWYobnVsbD09d2UmJih3ZT0oKEhbIiFzaGVldEZvcm1hdCJdfHx7fSkuY29sfHx7fSkud3B4KSxudWxsPT13ZSl7dmFyIHhlPXt3Y2g6OC40M307eWMoeGUpLEhbIiFjb2xzIl0mJihI''@;'; put 'put ''WyIhY29scyJdW2llXT14ZSksd2U9eGUud3B4fVgrPXdlfXJldHVybiBYfWZ1bmN0aW9uIGZ1KEgsaWUsWCl7cmV0dXJuIkMiPT1YP1Y5KEgsaWUpOnE4KEgsaWUpfWZ1bmN0aW9uIEVkKEgsaWUsWCl7dmFyIHdlPVtpZSxYXTtpZighSClyZXR1cm4gd2U7Zm9yKDs7KXt2YXIgeGU9KEhbIiFy''@;'; put 'put ''b3dzIl18fFtdKVt3ZVswXV18fHt9O2lmKHhlLmhpZGRlbikrK3dlWzBdO2Vsc2V7dmFyIEZlPXhlLmhweDtpZihudWxsPT1GZSYmKEZlPSgoSFsiIXNoZWV0Rm9ybWF0Il18fHt9KS5yb3d8fHt9KS5ocHgpLG51bGw9PUZlJiYoRmU9QWYoMTUpKSx3ZVsxXTxGZSlicmVhazt3ZVswXSsrLHdl''@;'; put 'put ''WzFdLT1GZX19cmV0dXJuIHdlfWZ1bmN0aW9uIF9tKEgsaWUsWCl7dmFyIHdlPVtpZSxYXTtpZighSClyZXR1cm4gd2U7Zm9yKDs7KXt2YXIgeGU9KEhbIiFjb2xzIl18fFtdKVt3ZVswXV18fHt9O2lmKHhlLmhpZGRlbnx8MD09PXhlLndweCkrK3dlWzBdO2Vsc2V7dmFyIEZlPXhlLndweDtp''@;'; put 'put ''ZihudWxsPT1GZSYmKEZlPSgoSFsiIXNoZWV0Rm9ybWF0Il18fHt9KS5jb2x8fHt9KS53cHgpLG51bGw9PUZlKXt2YXIgWmU9e3djaDo4LjQzfTt5YyhaZSksSFsiIWNvbHMiXSYmKEhbIiFjb2xzIl1bd2VbMF1dPVplKSxGZT1aZS53cHh9aWYod2VbMV08RmUpYnJlYWs7d2VbMF0rKyx3ZVsx''@;'; put 'put ''XS09RmV9fXJldHVybiB3ZX1mdW5jdGlvbiBMbyhIKXtyZXR1cm4oIjAwMDAwMCIrKCJudW1iZXIiPT10eXBlb2YgSD9ILnRvU3RyaW5nKDE2KTpIKSkuc2xpY2UoLTYpfWZ1bmN0aW9uIFhzKEgsaWUsWCl7dmFyIHdlPSJzdHJpbmciPT10eXBlb2YgaWU/ISFYOiEhaWU7InN0cmluZyIhPXR5''@;'; put 'put ''cGVvZiBpZSYmKGllPSJjb2xvciIpO3ZhciB4ZT0iPCIraWUrIiAiO3JldHVybiBILmF1dG8/eGUrJ2F1dG89IjEiLz4nOkguaW5kZXgmJm51bGw9PUgucmdiP3hlKydpbmRleGVkPSInK0guaW5kZXgrJyIvPic6bnVsbCE9SC50aGVtZT94ZSsndGhlbWU9IicrSC50aGVtZSsnIicrKEgudGlu''@;'; put 'put ''dD8nIHRpbnQ9IicrSC50aW50KyciJzoiIikrIi8+IjpudWxsIT1ILnJnYj94ZSsncmdiPSInKyh3ZT8iRkYiOiIiKStMbyhILnJnYikrJyIvPic6eGUrIi8+In1mdW5jdGlvbiBSYihILGllKXtpZighSHx8bnVsbD09SC5yZ2IpcmV0dXJuIGllO2Zvcih2YXIgWD0oIjAwMDAwMCIrSC5yZ2Iu''@;'; put 'put ''dG9TdHJpbmcoMTYpKS5zbGljZSgtNiksd2U9W1guc2xpY2UoMCwyKSxYLnNsaWNlKDIsNCksWC5zbGljZSg0LDYpXS5tYXAoZnVuY3Rpb24oWmUpe3JldHVybiBwYXJzZUludChaZSwxNil9KSx4ZT0wO3hlPHV1Lmxlbmd0aDsrK3hlKXt2YXIgRmU9dXVbeGVdO2lmKEZlWzBdPT13ZVswXSYm''@;'; put 'put ''RmVbMV09PXdlWzFdJiZGZVsyXT09d2VbMl0pcmV0dXJuIHhlfXJldHVybiB1dS5sZW5ndGg8NjQ/KHV1LnB1c2goW3dlWzBdLHdlWzFdLHdlWzJdXSksdXUubGVuZ3RoLTEpOmllfWZ1bmN0aW9uIEkzKEgpe3ZhciBpZT1bIiIsIiIsIiJdO2lmKCFIKXJldHVybltdO3ZhciBYPSIiLHdlPUgm''@;'; put 'put ''Jkgucz9mdW5jdGlvbiBlNShIKXt2YXIgaWU9WyIiLCIiXTtpZighSClyZXR1cm4gaWU7aWYoSC5zeiYmKGllWzBdKz0iJiIrSC5zeixpZVsxXT0iJjEyIitpZVsxXSksSC5uYW1lJiYoaWVbMF0rPScmIicrSC5uYW1lKycsUmVndWxhciInLGllWzFdPScmIi0sUmVndWxhciInK2llWzFdKSxI''@;'; put 'put ''LmJvbGQmJihpZVswXSs9IiZCIixpZVsxXT0iJkIiK2llWzFdKSxILnVuZGVybGluZSl7dmFyIFg9Mj09SC51bmRlcmxpbmU/IiZFIjoiJlUiO2llWzBdKz1YLGllWzFdPVgraWVbMV19cmV0dXJuIEguaXRhbGljJiYoaWVbMF0rPSImSSIsaWVbMV09IiZJIitpZVsxXSksSC5jb2xvciYmbnVs''@;'; put 'put ''bCE9SC5jb2xvci5yZ2ImJihpZVswXSs9IiZLIitMbyhILmNvbG9yLnJnYiksaWVbMV0rPSImSzAwMDAwMCIpLEguc3RyaWtlJiYoaWVbMF0rPSImUyIsaWVbMV09IiZTIitpZVsxXSksInN1cGVyIj09SC52YWxpZ24mJihpZVswXSs9IiZYIixpZVsxXT0iJlgiK2llWzFdKSwic3ViIj09SC52''@;'; put 'put ''YWxpZ24mJihpZVswXSs9IiZZIixpZVsxXT0iJlkiK2llWzFdKSxpZX0oSC5zKTpbIiIsIiJdO3JldHVybiJzdHJpbmciPT10eXBlb2YgSD9bSCxILEhdOm51bGwhPUguZmlyc3R8fG51bGwhPUguZXZlbnx8bnVsbCE9SC5vZGQ/KG51bGwhPUgub2RkJiYoaWVbMF09STMoSC5vZGQpWzBdKSx2''@;'; put 'put ''b2lkIDA9PT1ILmZpcnN0JiZpZVswXSYmKGllWzFdPWllWzBdKSxudWxsIT1ILmZpcnN0JiYoaWVbMV09STMoSC5maXJzdClbMF0pLG51bGwhPUguZXZlbiYmKGllWzJdPUkzKEguZXZlbilbMF0pLGllKTpILmxlZnR8fEguY2VudGVyfHxILnJpZ2h0PyhILmxlZnQmJihYKz0iJkwiK0kzKEgu''@;'; put 'put ''bGVmdClbMF0pLEguY2VudGVyJiYoWCs9IiZDIitJMyhILmNlbnRlcilbMF0pLEgucmlnaHQmJihYKz0iJlIiK0kzKEgucmlnaHQpWzBdKSxbWCxYLFhdKTpudWxsIT1ILnY/W1g9d2VbMF0rSC52LnJlcGxhY2UoLyYvZywiJiYiKSt3ZVsxXSxYLFhdOm51bGwhPUgudz9bWD13ZVswXStILncr''@;'; put 'put ''d2VbMV0sWCxYXTpBcnJheS5pc0FycmF5KEguUik/KEguUi5mb3JFYWNoKGZ1bmN0aW9uKHhlKXtYKz1JMyh4ZSlbMF19KSxbWCxYLFhdKTpbXX12YXIgWjk9ezE6IkxldHRlciIsMzoiVGFibG9pZCIsNToiTGVnYWwiLDc6IkV4ZWN1dGl2ZSIsODoiQTMiLDk6IkE0IiwxMToiQTUiLDEyOiJC''@;'; put 'put ''NCIsMTM6IkI1IiwxNDoiRm9saW8iLDIwOiJFbnZlbG9wZSIsMzc6Ik1vbmFyY2giLDcwOiJBNiJ9LFBiPXR0KFo5KTtkdC5DT05OPSJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2Nvbm5lY3Rpb25zIjt2YXIgeTY9''@;'; put 'put ''X2koImV4dGVybmFsTGluayIsbnVsbCx7eG1sbnM6WDAubWFpblswXX0pO2R0LklNRz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9pbWFnZSIsZHQuRFJBVz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMu''@;'; put 'put ''b3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9kcmF3aW5nIjt2YXIgT0U9e3Q6InRvcCIsY3RyOiJjZW50ZXIiLGI6ImJvdHRvbSIsanVzdDoidG9wIixkaXN0OiJ0b3AifSxIYj17Y3RyOiJjZW50ZXIiLGRpc3Q6ImNlbnRlciIsanVzdDoiY2VudGVyIixqdXN0TG93OiJj''@;'; put 'put ''ZW50ZXIiLGw6ImxlZnQiLHI6InJpZ2h0Iix0aGFpRGlzdDoiY2VudGVyIn07ZnVuY3Rpb24gTmIoKXt2YXIgSD1bY25dO3JldHVybiBILnB1c2goJzx4ZHI6d3NEciB4bWxuczp4ZHI9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9zcHJlYWRzaGVl''@;'; put 'put ''dERyYXdpbmciIHhtbG5zOmE9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9tYWluIi8+JyksSC5qb2luKCIiKX1mdW5jdGlvbiBCRShIKXt2YXIgWCxpZT1IWyIhZGF0YSJdO3JldHVybiJiYXNlNjQiPT09SFsiIWRhdGF0eXBlIl0/KChYPWllLm1h''@;'; put 'put ''dGNoKC9eZGF0YTouKiwvKSkmJihpZT1pZS5zbGljZShYWzBdLmxlbmd0aCkpLFNlLmRlY29kZShpZSkpOmllfWZ1bmN0aW9uIHo5KEgsaWUsWCx3ZSx4ZSl7dmFyIEZlPXtzdHlsZTp7fSxoZWFkZXI6MH0sWmU9ITE7SC5yZXBsYWNlKEd0LGZ1bmN0aW9uKGplKXt2YXIgWWU9ZW4oamUpO3N3''@;'; put 'put ''aXRjaChJbihZZVswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPC90YWJsZT4iOmNhc2UiPC9hdXRvRmlsdGVyPiI6Y2FzZSI8c29ydFN0YXRlIjpjYXNlIjxzb3J0U3RhdGU+IjpjYXNlIjwvc29ydFN0YXRlPiI6Y2FzZSI8L3RhYmxlQ29sdW1ucyI6Y2FzZSI8L3RhYmxlQ29sdW1ucz4iOmNhc2Ui''@;'; put 'put ''PC90YWJsZUNvbHVtbj4iOmNhc2UiPGNhbGN1bGF0ZWRDb2x1bW5Gb3JtdWxhPiI6Y2FzZSI8Y2FsY3VsYXRlZENvbHVtbkZvcm11bGEiOmNhc2UiPC9jYWxjdWxhdGVkQ29sdW1uRm9ybXVsYT4iOmNhc2UiPHRvdGFsc1Jvd0Zvcm11bGE+IjpjYXNlIjx0b3RhbHNSb3dGb3JtdWxhIjpjYXNl''@;'; put 'put ''IjwvdG90YWxzUm93Rm9ybXVsYT4iOmNhc2UiPHhtbENvbHVtblByPiI6Y2FzZSI8eG1sQ29sdW1uUHIiOmNhc2UiPC94bWxDb2x1bW5Qcj4iOmNhc2UiPHNvcnRDb25kaXRpb24+IjpjYXNlIjxzb3J0Q29uZGl0aW9uIjpjYXNlIjxleHRMc3QiOmNhc2UiPGV4dExzdD4iOmNhc2UiPC9leHRM''@;'; put 'put ''c3Q+IjpjYXNlIjxleHRMc3QvPiI6YnJlYWs7Y2FzZSI8dGFibGUiOlllLnJlZiYmKEZlLnJlZj1ZZS5yZWYpLFllLm5hbWU/RmUubmFtZT1ZZS5uYW1lOlllLmRpc3BsYXlOYW1lJiYoRmUubmFtZT1ZZS5kaXNwbGF5TmFtZSksbnVsbCE9WWUuaGVhZGVycm93Y291bnQmJjEhPStZZS5oZWFk''@;'; put 'put ''ZXJyb3djb3VudD9GZS5oZWFkZXI9K1llLmhlYWRlcnJvd2NvdW50Om51bGw9PVllLmhlYWRlcnJvd2NvdW50JiYoRmUuaGVhZGVyPTEpO2JyZWFrO2Nhc2UiPGF1dG9GaWx0ZXIiOmNhc2UiPGF1dG9GaWx0ZXI+IjpGZS5maWx0ZXI9ITA7YnJlYWs7Y2FzZSI8dGFibGVDb2x1bW5zIjpjYXNl''@;'; put 'put ''Ijx0YWJsZUNvbHVtbnM+IjpGZS5jb2xzPVtdO2JyZWFrO2Nhc2UiPHRhYmxlU3R5bGVJbmZvIjpZZS5zaG93Um93U3RyaXBlcyYmKEZlLnN0eWxlLnJvd3N0cmlwZT1EaShZZS5zaG93Um93U3RyaXBlcykpLFllLnNob3dDb2x1bW5TdHJpcGVzJiYoRmUuc3R5bGUuY29sc3RyaXBlPURpKFll''@;'; put 'put ''LnNob3dDb2x1bW5TdHJpcGVzKSksWWUuc2hvd0ZpcnN0Q29sdW1uJiYoRmUuc3R5bGUuY29sZmlyc3Q9RGkoWWUuc2hvd0ZpcnN0Q29sdW1uKSksWWUuc2hvd0xhc3RDb2x1bW4mJihGZS5zdHlsZS5jb2xsYXN0PURpKFllLnNob3dMYXN0Q29sdW1uKSksWWUubmFtZSYmKEZlLnN0eWxlLm5h''@;'; put 'put ''bWU9WWUubmFtZS5yZXBsYWNlKC9eVGFibGVTdHlsZS8sIiIpKTticmVhaztjYXNlIjx0YWJsZUNvbHVtbiI6Y2FzZSI8dGFibGVDb2x1bW4+IjpGZS5jb2xzLnB1c2goe2lkOitZZS5pZCxuYW1lOlllLm5hbWV9KTticmVhaztjYXNlIjxmaWx0ZXJDb2x1bW4+IjpjYXNlIjxmaWx0ZXJDb2x1''@;'; put 'put ''bW4iOmNhc2UiPGN1c3RvbUZpbHRlcnMiOmNhc2UiPGN1c3RvbUZpbHRlcnM+IjpjYXNlIjxleHQiOlplPSEwO2JyZWFrO2Nhc2UiPC9maWx0ZXJDb2x1bW4+IjpjYXNlIjwvY3VzdG9tRmlsdGVycz4iOmNhc2UiPC9leHQ+IjpaZT0hMTticmVhaztkZWZhdWx0OmlmKCFaZSYmeGUuV1RGKXRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIrWWVbMF0rIiBpbiB0YWJsZSIpfXJldHVybiBqZX0pLEZlLmZpbHRlcnx8KEZlLmZpbHRlcj0hMSksRmUuc3R5bGUubmFtZSYmIUZlLnN0eWxlLm5hbWUubWF0Y2goL14oTGlnaHR8TWVkaXVtfERhcmspXGQrJC8pJiZYLlRhYmxlJiZYLlRh''@;'; put 'put ''YmxlLmZvckVhY2goZnVuY3Rpb24oamUpeyhqZS5uYW1lPT1GZS5zdHlsZS5uYW1lfHxqZS5yYXduYW1lPT1GZS5zdHlsZS5uYW1lKSYmKEZlLnN0eWxlLnJhdz1sbihqZSkpfSksaWVbIiF0YWJsZXMiXS5wdXNoKEZlKX1mdW5jdGlvbiBWYihILGllLFgsd2Upe0guZm9yRWFjaChmdW5jdGlv''@;'; put 'put ''bih4ZSxGZSl7dmFyIFplPWllLlNoZWV0c1tpZS5TaGVldE5hbWVzW3hlWzBdXV0samU9InhsL3RhYmxlcy90YWJsZSIrKHhlWzBdKzEpKyJfIit4ZVsxXSsiLnhtbCI7d2UudGFibGVzLnB1c2goamUpO3ZhciBZZT14ZVsyXS5yZWZ8fFplWyIhcmVmIl07InN0cmluZyIhPXR5cGVvZiBZZSYm''@;'; put 'put ''KFllPWZhKFllKSk7dmFyIE10PUZvKFllKSx4dD14ZVsyXS5uYW1lfHwic2pzdGJsXyIreGVbMF0rIl8iK3hlWzFdLFJ0PVtjbl0sVXQ9IW5yKHhlWzJdLmhlYWRlciksbm49VXQmJiFucih4ZVsyXS5maWx0ZXIpO1J0LnB1c2goJzx0YWJsZSB4bWxucz0iaHR0cDovL3NjaGVtYXMub3Blbnht''@;'; put 'put ''bGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluIiBpZD0iJysoRmUrMSkrJyIgbmFtZT0iJytScih4dCkrJyIgZGlzcGxheU5hbWU9IicrUnIoeHQpKyciIHJlZj0iJytZZSsnIiAnKyhudWxsIT14ZVsyXS5oZWFkZXImJjEhPXhlWzJdLmhlYWRlcj8naGVhZGVyUm93Q291bnQ9''@;'; put 'put ''IicrKHhlWzJdLmhlYWRlcnx8MCkrJyIgJzoiIikrIj4iKSxubiYmUnQucHVzaCgnPGF1dG9GaWx0ZXIgcmVmPSInK1llKyciLz4nKSxSdC5wdXNoKCc8dGFibGVDb2x1bW5zIGNvdW50PSInKyhNdC5lLmMtTXQucy5jKzEpKyciPicpO2Zvcih2YXIgQ249W10sRHQ9TXQucy5jO0R0PD1NdC5l''@;'; put 'put ''LmM7KytEdClpZihVdCl7Zm9yKHZhciB6dD1ZMCh7cjpNdC5zLnIsYzpEdH0pLFBuPVplW3p0XSxUbj14ZVsyXS5jb2xzJiZ4ZVsyXS5jb2xzW0R0LU10LnMuY10mJnhlWzJdLmNvbHNbRHQtTXQucy5jXS5uYW1lfHxQbiYmKFBuLnd8fFBuLnYpfHwiQ29sdW1uICIrKER0LU10LnMuYysxKSxP''@;'; put 'put ''bj1UbixZbj0xO0NuLmluZGV4T2YoT24pPi0xJiYrK1luPDE2Mzg0OylPbj1UbitZbjtpZihPbiE9VG4pdGhyb3cidGFibGUgY29sdW1ucyAiK0R0KyIgYW5kICIrKENuLmluZGV4T2YoVG4pK010LnMuYykrIiBoYXZlIHRoZSBzYW1lIGhlYWRlciAnIitUbisiJzsgdHJ5IHNldHRpbmcgY2Vs''@;'; put 'put ''bCAiK3p0KyIgdG8gJyIrT24rIiciO0NuLnB1c2goT24pLFJ0LnB1c2goJzx0YWJsZUNvbHVtbiBpZD0iJysoeGVbMl0uY29scyYmeGVbMl0uY29sc1tEdC1NdC5zLmNdJiZudWxsIT14ZVsyXS5jb2xzW0R0LU10LnMuY10uaWQ/eGVbMl0uY29sc1tEdC1NdC5zLmNdLmlkOkR0LU10LnMuYysx''@;'; put 'put ''KSsnIiBuYW1lPSInK1JyKE9uKSsnIi8+Jyl9ZWxzZSBSdC5wdXNoKHhlWzJdLmNvbHMmJnhlWzJdLmNvbHNbRHQtTXQucy5jXT8nPHRhYmxlQ29sdW1uIGlkPSInK3hlWzJdLmNvbHNbRHQtTXQucy5jXS5pZCsnIiBuYW1lPSInK3hlWzJdLmNvbHNbRHQtTXQucy5jXS5uYW1lKyciLz4nOic8''@;'; put 'put ''dGFibGVDb2x1bW4gaWQ9IicrKER0LU10LnMuYysxKSsnIiB1bmlxdWVOYW1lPSInKyhEdC1NdC5zLmMrMSkrJyIgbmFtZT0iJysoRHQtTXQucy5jKzEpKyciLz4nKTtSdC5wdXNoKCI8L3RhYmxlQ29sdW1ucz4iKTt2YXIgYWk9KyghMSE9PSh4ZVsyXS5zdHlsZXx8e30pLnJvd3N0cmlwZSks''@;'; put 'put ''eXI9KyEhKHhlWzJdLnN0eWxlfHx7fSkuY29sc3RyaXBlLGFyPSshISh4ZVsyXS5zdHlsZXx8e30pLmNvbGZpcnN0LEdyPSshISh4ZVsyXS5zdHlsZXx8e30pLmNvbGxhc3QsenI9KHhlWzJdLnN0eWxlfHx7fSkubmFtZXx8Ik1lZGl1bTkiO3pyPXpyLm1hdGNoKC9eKExpZ2h0fE1lZGl1bXxE''@;'; put 'put ''YXJrKVxkKyQvKT8iVGFibGVTdHlsZSIrenI6enIsUnQucHVzaCgnPHRhYmxlU3R5bGVJbmZvIG5hbWU9IicrenIrJyIgc2hvd0ZpcnN0Q29sdW1uPSInK2FyKyciIHNob3dMYXN0Q29sdW1uPSInK0dyKyciIHNob3dSb3dTdHJpcGVzPSInK2FpKyciIHNob3dDb2x1bW5TdHJpcGVzPSInK3ly''@;'; put 'put ''KyciLz4nKSxSdC5wdXNoKCI8L3RhYmxlPiIpLHpuKFgsamUsUnQuam9pbigiIikpfSl9ZHQuVEFCTEU9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvdGFibGUiO3ZhciBwQj0vPCg/Olx3KzopP3NoYXBlKD86W15c''@;'; put 'put ''d11bXj5dKik/PihbXHNcU10qPyk8XC8oPzpcdys6KT9zaGFwZT4vZztmdW5jdGlvbiBaYihILGllLFgsd2Upe3ZhciB4ZT1bMjE2MDAsMjE2MDBdLEZlPVsibTAsMGwwIix4ZVsxXSx4ZVswXSx4ZVsxXSx4ZVswXSwiMHhlIl0uam9pbigiLCIpLFplPVtfaSgieG1sIixudWxsLHsieG1sbnM6''@;'; put 'put ''diI6dWFfdiwieG1sbnM6byI6dWFfbywieG1sbnM6eCI6dWFfeCwieG1sbnM6bXYiOiJodHRwOi8vbWFjVm1sU2NoZW1hVXJpIn0pLnJlcGxhY2UoL1wvPi8sIj4iKSxfaSgibzpzaGFwZWxheW91dCIsX2koIm86aWRtYXAiLG51bGwseyJ2OmV4dCI6ImVkaXQifSkseyJ2OmV4dCI6ImVkaXQi''@;'; put 'put ''fSldLGplPTEwMjQqSCxZZT1YfHxbXTtZZS5sZW5ndGg+MCYmWmUucHVzaChfaSgidjpzaGFwZXR5cGUiLFtfaSgidjpzdHJva2UiLG51bGwse2pvaW5zdHlsZToibWl0ZXIifSksX2koInY6cGF0aCIsbnVsbCx7c2hhZG93b2s6ImYiLGV4dHJ1c2lvbm9rOiJmIixzdHJva2VvazoiZiIsZmls''@;'; put 'put ''bG9rOiJmIiwibzpjb25uZWN0dHlwZSI6InJlY3QifSksX2koIm86bG9jayIsbnVsbCx7InY6ZXh0IjoiZWRpdCIsc2hhcGV0eXBlOiJ0In0pXS5qb2luKCIiKSx7aWQ6Il94MDAwMF90MjAxIixjb29yZHNpemU6eGUuam9pbigiLCIpLCJvOnNwdCI6MjAxLHBhdGg6RmV9KSksdm9pZCAwIT09''@;'; put 'put ''RzkmJlllLmZvckVhY2goZnVuY3Rpb24oeHQpeysramUsWmU9WmUuY29uY2F0KEc5KHh0LGplKSl9KTt2YXIgTXQ9aWV8fFtdO3JldHVybiBNdC5sZW5ndGg+MCYmWmUucHVzaChfaSgidjpzaGFwZXR5cGUiLFtfaSgidjpzdHJva2UiLG51bGwse2pvaW5zdHlsZToibWl0ZXIifSksX2koInY6''@;'; put 'put ''cGF0aCIsbnVsbCx7Z3JhZGllbnRzaGFwZW9rOiJ0Iiwibzpjb25uZWN0dHlwZSI6InJlY3QifSldLmpvaW4oIiIpLHtpZDoiX3gwMDAwX3QyMDIiLGNvb3Jkc2l6ZTp4ZS5qb2luKCIsIiksIm86c3B0IjoyMDIscGF0aDpGZX0pKSxNdC5mb3JFYWNoKGZ1bmN0aW9uKHh0KXsrK2plLFplPVpl''@;'; put 'put ''LmNvbmNhdChmdW5jdGlvbiBnQihILGllLFgpe3ZhciB3ZT11bChIWzBdKSx4ZT1IWzFdLmZpbGx8fHt9O0hbMV0ucyYmKHhlPXt0eXBlOkhbMV0ucy5wYXR0ZXJuVHlwZXx8InNvbGlkIn0sSFsxXS5zLmZnQ29sb3ImJih4ZS5jb2xvcjI9eGUuY29sb3IxPSIjIitMbyhIWzFdLnMuZmdDb2xv''@;'; put 'put ''ci5yZ2IpKSxIWzFdLnMuYmdDb2xvciYmKHhlLmNvbG9yMj0iIyIrTG8oSFsxXS5zLmJnQ29sb3IucmdiKSkpO3ZhciBGZT17Y29sb3IyOnhlLmNvbG9yMnx8IiNCRUZGODIiLHR5cGU6eGUudHlwZXx8ImdyYWRpZW50In07ImdyYWRpZW50Ij09RmUudHlwZSYmKEZlLmFuZ2xlPSItMTgwIik7''@;'; put 'put ''dmFyIFplPSJncmFkaWVudCI9PUZlLnR5cGU/X2koIm86ZmlsbCIsbnVsbCx7dHlwZToiZ3JhZGllbnRVbnNjYWxlZCIsInY6ZXh0IjoidmlldyJ9KTpudWxsLGplPV9pKCJ2OmZpbGwiLFplLEZlKSxZZT17fTtIWzFdLnNoYWRvdyYmKEhbMV0uc2hhZG93LmNvbG9yJiYoWWUuY29sb3I9SFsx''@;'; put 'put ''XS5zaGFkb3cuY29sb3IpLEhbMV0uc2hhZG93Lm9uJiYoWWUub249SFsxXS5zaGFkb3cub24pKSxZZS5vYnNjdXJlZD0idCI7dmFyIE10PSEwLHh0PSEwLFJ0PUhbMV1bIiFwb3MiXT9sbihIWzFdWyIhcG9zIl0pOm51bGw7cmV0dXJuIFJ0JiYoeHQ9bnVsbD09UnQuUiYmbnVsbD09UnQuQyYm''@;'; put 'put ''bnVsbD09UnQuWCYmbnVsbD09UnQuWSxNdD0hUnQuciYmIVJ0LmMsaEIoUnQsMCxYKSksWyI8djpzaGFwZSIrcmwoe2lkOiJfeDAwMDBfcyIraWUsdHlwZToiI194MDAwMF90MjAyIixzdHlsZToicG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi1sZWZ0OjgwcHQ7bWFyZ2luLXRvcDo1cHQ7d2lk''@;'; put 'put ''dGg6MTA0cHQ7aGVpZ2h0OjY0cHQ7ei1pbmRleDoxMCIrKEhbMV0uaGlkZGVuPyI7dmlzaWJpbGl0eTpoaWRkZW4iOiIiKSxmaWxsY29sb3I6eGUuY29sb3IxfHwiI0VDRkFENCIsc3Ryb2tlY29sb3I6KEhbMV0uc3Ryb2tlfHx7fSkuY29sb3J8fCIjZWRlYWExIn0pKyI+IixqZSxfaSgidjpz''@;'; put 'put ''aGFkb3ciLG51bGwsWWUpLF9pKCJ2OnBhdGgiLG51bGwseyJvOmNvbm5lY3R0eXBlIjoibm9uZSJ9KSwnPHY6dGV4dGJveD48ZGl2IHN0eWxlPSJ0ZXh0LWFsaWduOmxlZnQiPjwvZGl2Pjwvdjp0ZXh0Ym94PicsJzx4OkNsaWVudERhdGEgT2JqZWN0VHlwZT0iTm90ZSI+JyxNdD8iPHg6TW92''@;'; put 'put ''ZVdpdGhDZWxscy8+IjoiIix4dD8iPHg6U2l6ZVdpdGhDZWxscy8+IjoiIixzYSgieDpBbmNob3IiLFJ0P2RCKFJ0KTpIWzFdLnJhd2FuY2hvcnx8W3dlLmMrMSwwLHdlLnIrMSwwLHdlLmMrMywyMCx3ZS5yKzUsMjBdLmpvaW4oIiwiKSksc2EoIng6QXV0b0ZpbGwiLCJGYWxzZSIpLHNhKCJ4''@;'; put 'put ''OlJvdyIsU3RyaW5nKHdlLnIpKSxzYSgieDpDb2x1bW4iLFN0cmluZyh3ZS5jKSksSFsxXS5oaWRkZW4/IiI6Ijx4OlZpc2libGUvPiIsIjwveDpDbGllbnREYXRhPiIsIjwvdjpzaGFwZT4iXX0oeHQsamUsd2UpKX0pLFplLnB1c2goIjwveG1sPiIpLFplLmpvaW4oIiIpfXZhciBOND17QnV0''@;'; put 'put ''dG9uOlsiPHg6QXV0b0ZpbGw+RmFsc2U8L3g6QXV0b0ZpbGw+IiwiPHg6VGV4dEhBbGlnbj5DZW50ZXI8L3g6VGV4dEhBbGlnbj4iLCI8eDpUZXh0VkFsaWduPkNlbnRlcjwveDpUZXh0VkFsaWduPiJdLEdCb3g6WyI8eDpTaXplV2l0aENlbGxzLz4iLCI8eDpBdXRvRmlsbD5GYWxzZTwveDpB''@;'; put 'put ''dXRvRmlsbD4iLCI8eDpOb1RocmVlRC8+Il0sTGFiZWw6WyI8eDpBdXRvRmlsbD5GYWxzZTwveDpBdXRvRmlsbD4iLCI8eDpBdXRvTGluZT5GYWxzZTwveDpBdXRvTGluZT4iXSxSYWRpbzpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9GaWxsPkZhbHNlPC94OkF1dG9GaWxsPiIsIjx4''@;'; put 'put ''OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9MaW5lPiIsIjx4OlRleHRWQWxpZ24+Q2VudGVyPC94OlRleHRWQWxpZ24+IiwiPHg6Tm9UaHJlZUQvPiJdLENoZWNrYm94OlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0ZpbGw+RmFsc2U8L3g6QXV0b0ZpbGw+IiwiPHg6QXV0b0xpbmU+RmFs''@;'; put 'put ''c2U8L3g6QXV0b0xpbmU+IiwiPHg6VGV4dFZBbGlnbj5DZW50ZXI8L3g6VGV4dFZBbGlnbj4iLCI8eDpOb1RocmVlRC8+Il0sRHJvcDpbIjx4OlNpemVXaXRoQ2VsbHMvPiIsIjx4OkF1dG9MaW5lPkZhbHNlPC94OkF1dG9MaW5lPiIsIjx4Ok5vVGhyZWVEMi8+IiwiPHg6U2VsVHlwZT5TaW5n''@;'; put 'put ''bGU8L3g6U2VsVHlwZT4iLCI8eDpEcm9wU3R5bGU+Q29tYm88L3g6RHJvcFN0eWxlPiIsIjx4OkxDVD5Ob3JtYWw8L3g6TENUPiIsIjx4OkRyb3BMaW5lcz40PC94OkRyb3BMaW5lcz4iXSxMaXN0OlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6QXV0b0xpbmU+RmFsc2U8L3g6QXV0b0xpbmU+''@;'; put 'put ''IiwiPHg6Tm9UaHJlZUQyLz4iLCI8eDpMQ1Q+Tm9ybWFsPC94OkxDVD4iLCI8eDpWYWw+MDwveDpWYWw+IiwiPHg6TWluPjA8L3g6TWluPiIsIjx4Ok1heD41PC94Ok1heD4iLCI8eDpJbmM+MTwveDpJbmM+IiwiPHg6UGFnZT40PC94OlBhZ2U+IiwiPHg6RHg+MTU8L3g6RHg+Il0sU2Nyb2xs''@;'; put 'put ''OlsiPHg6U2l6ZVdpdGhDZWxscy8+IiwiPHg6SG9yaXovPiIsIjx4OkR4PjE1PC94OkR4PiJdLFNwaW46WyI8eDpEeD4xNTwveDpEeD4iXX0semI9e0J1dHRvbjoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6YXV0bycgbzpzaW5nbGVjbGljaz0nZic+PGRpdiBzdHlsZT0n''@;'; put 'put ''dGV4dC1hbGlnbjpjZW50ZXInPjxmb250IGZhY2U9J0NhbGlicmknIHNpemU9JzI0MCcgY29sb3I9JyMwMDAwMDAnPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixHQm94OiI8djp0ZXh0Ym94IHN0eWxlPSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48''@;'; put 'put ''ZGl2IHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQnPjxmb250IGZhY2U9J0x1Y2lkYSBHcmFuZGUnIHNpemU9JzI2MCcgY29sb3I9JyMwMDAwMDAnPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixSYWRpbzoiPHY6dGV4dGJveCBzdHlsZT0nbXNvLWRpcmVjdGlvbi1hbHQ6YXV0bycgbzpz''@;'; put 'put ''aW5nbGVjbGljaz0nZic+PGRpdiBzdHlsZT0ndGV4dC1hbGlnbjpsZWZ0Jz48Zm9udCBmYWNlPSdMdWNpZGEgR3JhbmRlJyBzaXplPScyNjAnIGNvbG9yPSdhdXRvJz4jIyMjPC9mb250PjwvZGl2Pjwvdjp0ZXh0Ym94PiIsTGFiZWw6Ijx2OnRleHRib3ggc3R5bGU9J21zby1kaXJlY3Rpb24t''@;'; put 'put ''YWx0OmF1dG8nIG86c2luZ2xlY2xpY2s9J2YnPjxkaXYgc3R5bGU9J3RleHQtYWxpZ246bGVmdCc+PGZvbnQgZmFjZT0nTHVjaWRhIEdyYW5kZScgc2l6ZT0nMjYwJyBjb2xvcj0nIzAwMDAwMCc+IyMjIzwvZm9udD48L2Rpdj48L3Y6dGV4dGJveD4iLENoZWNrYm94OiI8djp0ZXh0Ym94IHN0''@;'; put 'put ''eWxlPSdtc28tZGlyZWN0aW9uLWFsdDphdXRvJyBvOnNpbmdsZWNsaWNrPSdmJz48ZGl2IHN0eWxlPSd0ZXh0LWFsaWduOmxlZnQnPjxmb250IGZhY2U9J0x1Y2lkYSBHcmFuZGUnIHNpemU9JzI2MCcgY29sb3I9JyMwMDAwMDAnPiMjIyM8L2ZvbnQ+PC9kaXY+PC92OnRleHRib3g+IixzaGVl''@;'; put 'put ''dGpzOiJkYWZ1cSJ9LEdiPXtCdXR0b246Wyc8djpmaWxsIGNvbG9yMj0iI2YwZjBmMCBbNjddIiBvOmRldGVjdG1vdXNlY2xpY2s9InQiLz4nLCc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPiddLEdCb3g6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPidd''@;'; put 'put ''LERyb3A6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIgdGV4dD0idCIvPiddLExpc3Q6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIgdGV4dD0idCIvPiddLFNwaW46Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIgdGV4dD0idCIvPiddLFNj''@;'; put 'put ''cm9sbDpbJzxvOmxvY2sgdjpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0IiB0ZXh0PSJ0Ii8+J10sTGFiZWw6Wyc8bzpsb2NrIHY6ZXh0PSJlZGl0IiByb3RhdGlvbj0idCIvPiddLFJhZGlvOlsnPHY6cGF0aCBzaGFkb3dvaz0idCIgc3Ryb2tlb2s9InQiIGZpbGxvaz0idCIvPicsJzxvOmxvY2sg''@;'; put 'put ''djpleHQ9ImVkaXQiIHJvdGF0aW9uPSJ0Ii8+J10sQ2hlY2tib3g6Wyc8djpwYXRoIHNoYWRvd29rPSJ0IiBzdHJva2Vvaz0idCIgZmlsbG9rPSJ0Ii8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXSxzaGVldGpzOltdfTtmdW5jdGlvbiBHOShILGllKXt2YXIgWD17''@;'; put 'put ''aWQ6Il94MDAwMF9zIitpZSx0eXBlOiIjX3gwMDAwX3QyMDEiLHN0eWxlOiJtc28td3JhcC1zdHlsZTp0aWdodCJ9OygiUmFkaW8iPT1IWyIhdHlwZSJdfHwiQ2hlY2tib3giPT1IWyIhdHlwZSJdfHwiTGlzdCI9PUhbIiF0eXBlIl18fCJEcm9wIj09SFsiIXR5cGUiXSkmJihYLnN0cm9rZWQ9''@;'; put 'put ''ImYiKSwiTGFiZWwiPT1IWyIhdHlwZSJdJiYoWC5maWxsZWQ9ImYiKTt2YXIgd2U9IiI7SC50JiZ6YltIWyIhdHlwZSJdXSYmKHdlPXpiW0hbIiF0eXBlIl1dLnJlcGxhY2UoLyMjIyMvLFJyKEgudCkpKTt2YXIgeGU9W107cmV0dXJuIEgubWFjcm8mJnhlLnB1c2goc2EoIng6Rm1sYU1hY3Jv''@;'; put 'put ''IixILm1hY3JvKSksSC5saW5rJiZ4ZS5wdXNoKHNhKCJ4OkZtbGFMaW5rIixILmxpbmspKSxILnZhbCYmeGUucHVzaChzYSgiUmFkaW8iPT1IWyIhdHlwZSJdfHwiQ2hlY2tib3giPT1IWyIhdHlwZSJdPyJ4OkNoZWNrZWQiOiJ4OlZhbCIsU3RyaW5nKEgudmFsKSkpLEgucmVmJiZ4ZS5wdXNo''@;'; put 'put ''KHNhKCJ4OkZtbGFSYW5nZSIsSC5yZWYpKSxILnNlbCYmIkxpc3QiPT1IWyIhdHlwZSJdJiZ4ZS5wdXNoKHNhKCJ4OlNlbFR5cGUiLEguc2VsKSksSC5taW4mJnhlLnB1c2goc2EoIng6TWluIixTdHJpbmcoSC5taW4pKSksSC5tYXgmJnhlLnB1c2goc2EoIng6TWF4IixTdHJpbmcoSC5tYXgp''@;'; put 'put ''KSksSC5zdGVwJiZ4ZS5wdXNoKHNhKCJ4OkluYyIsU3RyaW5nKEguc3RlcCkpKSxILnBhZ2UmJnhlLnB1c2goc2EoIng6UGFnZSIsU3RyaW5nKEgucGFnZSkpKSxbXS5jb25jYXQoWyI8djpzaGFwZSIrcmwoWCkrIj4iXSkuY29uY2F0KEdiW0hbIiF0eXBlIl1dfHxbXSkuY29uY2F0KFt3ZV0p''@;'; put 'put ''LmNvbmNhdChbJzx4OkNsaWVudERhdGEgT2JqZWN0VHlwZT0iJytIWyIhdHlwZSJdKyciPicsc2EoIng6QW5jaG9yIixkQihIWyIhcG9zIl0pKSxzYSgieDpQcmludE9iamVjdCIsIkZhbHNlIildKS5jb25jYXQoeGUpLmNvbmNhdChONFtIWyIhdHlwZSJdXXx8W10pLmNvbmNhdChbIjwveDpD''@;'; put 'put ''bGllbnREYXRhPiIsIjwvdjpzaGFwZT4iXSl9ZnVuY3Rpb24gQ20oSCxpZSxYLHdlKXt2YXIgeGU9eyIhaWQiOnt9fSxGZT1bX2koInhtbCIsbnVsbCx7InhtbG5zOnYiOnVhX3YsInhtbG5zOm8iOnVhX28sInhtbG5zOngiOnVhX3h9KS5yZXBsYWNlKC9cLz4vLCI+IiksX2koIm86c2hhcGVs''@;'; put 'put ''YXlvdXQiLF9pKCJvOmlkbWFwIixudWxsLHsidjpleHQiOiJlZGl0IixkYXRhOjF9KSx7InY6ZXh0IjoiZWRpdCJ9KSwnPHY6c2hhcGV0eXBlIGlkPSJfeDAwMDBfdDc1IiBjb29yZHNpemU9IjIxNjAwLDIxNjAwIiBvOnNwdD0iNzUiIG86cHJlZmVycmVsYXRpdmU9InQiIHBhdGg9Im1ANEA1''@;'; put 'put ''bEA0QDExQDlAMTFAOUA1eGUiIGZpbGxlZD0iZiIgc3Ryb2tlZD0iZiI+JywnPHY6c3Ryb2tlIGpvaW5zdHlsZT0ibWl0ZXIiLz4nLCI8djpmb3JtdWxhcz4iLCc8djpmIGVxbj0iaWYgbGluZURyYXduIHBpeGVsTGluZVdpZHRoIDAiLz4nLCc8djpmIGVxbj0ic3VtIEAwIDEgMCIvPicsJzx2''@;'; put 'put ''OmYgZXFuPSJzdW0gMCAwIEAxIi8+JywnPHY6ZiBlcW49InByb2QgQDIgMSAyIi8+JywnPHY6ZiBlcW49InByb2QgQDMgMjE2MDAgcGl4ZWxXaWR0aCIvPicsJzx2OmYgZXFuPSJwcm9kIEAzIDIxNjAwIHBpeGVsSGVpZ2h0Ii8+JywnPHY6ZiBlcW49InN1bSBAMCAwIDEiLz4nLCc8djpmIGVx''@;'; put 'put ''bj0icHJvZCBANiAxIDIiLz4nLCc8djpmIGVxbj0icHJvZCBANyAyMTYwMCBwaXhlbFdpZHRoIi8+JywnPHY6ZiBlcW49InN1bSBAOCAyMTYwMCAwIi8+JywnPHY6ZiBlcW49InByb2QgQDcgMjE2MDAgcGl4ZWxIZWlnaHQiLz4nLCc8djpmIGVxbj0ic3VtIEAxMCAyMTYwMCAwIi8+JywiPC92''@;'; put 'put ''OmZvcm11bGFzPiIsJzx2OnBhdGggbzpleHRydXNpb25vaz0iZiIgZ3JhZGllbnRzaGFwZW9rPSJ0IiBvOmNvbm5lY3R0eXBlPSJyZWN0Ii8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgYXNwZWN0cmF0aW89InQiLz4nLCI8L3Y6c2hhcGV0eXBlPiJdLFplPTE7WyJoZWFkZXIiLCJmb290ZXIi''@;'; put 'put ''XS5mb3JFYWNoKGZ1bmN0aW9uKGplKXshd2VbamVdfHxbIm9kZCIsImV2ZW4iLCJmaXJzdCJdLmZvckVhY2goZnVuY3Rpb24oWWUpeyF3ZVtqZV1bWWVdfHxbImxlZnQiLCJyaWdodCIsImNlbnRlciJdLmZvckVhY2goZnVuY3Rpb24oTXQpe2lmKEFycmF5LmlzQXJyYXkod2VbamVdW1llXVtN''@;'; put 'put ''dF0pKWZvcih2YXIgeHQ9MDt4dDx3ZVtqZV1bWWVdW010XS5sZW5ndGg7Kyt4dClpZih3ZVtqZV1bWWVdW010XVt4dF0pe3ZhciBSdD13ZVtqZV1bWWVdW010XVt4dF07aWYoInJlbW90ZSI9PVJ0WyIhZGF0YXR5cGUiXSl0aHJvdyJDYW5ub3QgdXNlIGxpbmtlZCBpbWFnZSBpbiBoZWFkZXIg''@;'; put 'put ''b3IgZm9vdGVyIjtmb3IoO0tuKEgsInhsL21lZGlhL2ltYWdlIitaZSsiLmpwZyIpOykrK1plO0guZmlsZSgieGwvbWVkaWEvaW1hZ2UiK1plKyIuanBnIixCRShSdCkse2JpbmFyeTohMH0pLFh0KHhlLC0xLCIuLi9tZWRpYS9pbWFnZSIrWmUrIi5qcGciLGR0LklNRyk7dmFyIFV0PSJfeDAw''@;'; put 'put ''MDBfcyIrKDEwMjUrUnQuX2NudCksbm49InBvc2l0aW9uOmFic29sdXRlO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXRvcDowO3otaW5kZXg6IisoUnQuX2NudCsxKSsiOyI7bm4rPSJ3aWR0aDoiK1J0WyIhcG9zIl0udysicHg7Iixubis9ImhlaWdodDoiK1J0WyIhcG9zIl0uaCsicHg7Ijt2YXIg''@;'; put 'put ''Q249TXQuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkramUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCk7Im9kZCIhPT1ZZSYmKENuKz1ZZS50b1VwcGVyQ2FzZSgpKSx3ZVtqZV1bWWVdW010XS5sZW5ndGg+MSYmKENuKz14dCksRmUucHVzaChfaSgidjpzaGFwZSIsWyc8djppbWFnZWRhdGEgbzpy''@;'; put 'put ''ZWxpZD0icklkJysoUnQuX2NudCsxKSsnIiBvOnRpdGxlPSJzaGVldGpzIi8+JywnPG86bG9jayB2OmV4dD0iZWRpdCIgcm90YXRpb249InQiLz4nXS5qb2luKCIiKSx7aWQ6Q24sIm86c3BpZCI6VXQsdHlwZToiI194MDAwMF90NzUiLHN0eWxlOm5ufSkpfX0pfSl9KSxGZS5wdXNoKCI8L3ht''@;'; put 'put ''bD4iKSxILmZpbGUoInhsL2RyYXdpbmdzL3ZtbERyYXdpbmciK1grIkhGLnZtbCIsRmUuam9pbigiIikpLEguZmlsZSgieGwvZHJhd2luZ3MvX3JlbHMvdm1sRHJhd2luZyIrWCsiSEYudm1sLnJlbHMiLGl0KHhlKSl9ZHQuQ01OVD0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3Jn''@;'; put 'put ''L29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9jb21tZW50cyI7dmFyIGI2PV9pKCJjb21tZW50cyIsbnVsbCx7eG1sbnM6WDAubWFpblswXX0pO2Z1bmN0aW9uIFdiKEgpe3ZhciBpZT1bY24sYjZdLFg9W107cmV0dXJuIGllLnB1c2goIjxhdXRob3JzPiIpLEguZm9yRWFjaChm''@;'; put 'put ''dW5jdGlvbih3ZSl7d2VbMV0uZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIEZlPVJyKHhlLmEpO1guaW5kZXhPZihGZSk+LTF8fChYLnB1c2goRmUpLGllLnB1c2goIjxhdXRob3I+IitGZSsiPC9hdXRob3I+IikpfSl9KSxpZS5wdXNoKCI8L2F1dGhvcnM+IiksaWUucHVzaCgiPGNvbW1lbnRM''@;'; put 'put ''aXN0PiIpLEguZm9yRWFjaChmdW5jdGlvbih3ZSl7d2VbMV0uZm9yRWFjaChmdW5jdGlvbih4ZSl7aWUucHVzaCgnPGNvbW1lbnQgcmVmPSInK3dlWzBdKyciIGF1dGhvcklkPSInK1guaW5kZXhPZihScih4ZS5hKSkrJyI+PHRleHQ+JyksaWUucHVzaCh4ZS5SP3U2KHhlLlIpOnNhKCJ0Iixu''@;'; put 'put ''dWxsPT14ZS50PyIiOlJyKHhlLnQpKSksaWUucHVzaCgiPC90ZXh0PjwvY29tbWVudD4iKX0pfSksaWUucHVzaCgiPC9jb21tZW50TGlzdD4iKSxpZS5sZW5ndGg+MiYmKGllW2llLmxlbmd0aF09IjwvY29tbWVudHM+IixpZVsxXT1pZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksaWUuam9pbigi''@;'; put 'put ''Iil9dmFyIGJmPXh1O2Z1bmN0aW9uIFViKEgpe3ZhciBpZT1KMigpLFg9W107cmV0dXJuIEMwKGllLCJCcnRCZWdpbkNvbW1lbnRzIiksQzAoaWUsIkJydEJlZ2luQ29tbWVudEF1dGhvcnMiKSxILmZvckVhY2goZnVuY3Rpb24od2Upe3dlWzFdLmZvckVhY2goZnVuY3Rpb24oeGUpe1guaW5k''@;'; put 'put ''ZXhPZih4ZS5hKT4tMXx8KFgucHVzaCh4ZS5hLnNsaWNlKDAsNTQpKSxDMChpZSwiQnJ0Q29tbWVudEF1dGhvciIsZnVuY3Rpb24gSWgoSCl7cmV0dXJuIGx1KEguc2xpY2UoMCw1NCkpfSh4ZS5hKSkpfSl9KSxDMChpZSwiQnJ0RW5kQ29tbWVudEF1dGhvcnMiKSxDMChpZSwiQnJ0QmVnaW5D''@;'; put 'put ''b21tZW50TGlzdCIpLEguZm9yRWFjaChmdW5jdGlvbih3ZSl7d2VbMV0uZm9yRWFjaChmdW5jdGlvbih4ZSl7eGUuaWF1dGhvcj1YLmluZGV4T2YoeGUuYSk7dmFyIEZlPXtzOnVsKHdlWzBdKSxlOnVsKHdlWzBdKX07QzAoaWUsIkJydEJlZ2luQ29tbWVudCIsZnVuY3Rpb24gRkUoSCxpZSl7''@;'; put 'put ''cmV0dXJuIG51bGw9PWllJiYoaWU9UmkoMzYpKSxpZS53cml0ZV9zaGlmdCg0LEhbMV0uaWF1dGhvciksR3AoSFswXSxpZSksaWUud3JpdGVfc2hpZnQoNCwwKSxpZS53cml0ZV9zaGlmdCg0LDApLGllLndyaXRlX3NoaWZ0KDQsMCksaWUud3JpdGVfc2hpZnQoNCwwKSxpZX0oW0ZlLHhlXSkp''@;'; put 'put ''LHhlLnQmJnhlLnQubGVuZ3RoPjAmJkMwKGllLCJCcnRDb21tZW50VGV4dCIsZnVuY3Rpb24gcXcoSCxpZSl7dmFyIFg9ITE7cmV0dXJuIG51bGw9PWllJiYoWD0hMCxpZT1SaSgyMys0KkgudC5sZW5ndGgpKSxpZS53cml0ZV9zaGlmdCgxLDEpLGx1KEgudCxpZSksaWUud3JpdGVfc2hpZnQo''@;'; put 'put ''NCwxKSxmdW5jdGlvbiBLbyhILGllKXtpZXx8KGllPVJpKDQpKSxpZS53cml0ZV9zaGlmdCgyLEguaWNofHwwKSxpZS53cml0ZV9zaGlmdCgyLEguaWZudHx8MCl9KHtpY2g6MCxpZm50OjB9LGllKSxYP2llLnNsaWNlKDAsaWUubCk6aWV9KHhlKSksQzAoaWUsIkJydEVuZENvbW1lbnQiKSxk''@;'; put 'put ''ZWxldGUgeGUuaWF1dGhvcn0pfSksQzAoaWUsIkJydEVuZENvbW1lbnRMaXN0IiksQzAoaWUsIkJydEVuZENvbW1lbnRzIiksaWUuZW5kKCl9dmFyIG1CPVsieGxzYiIsInhsc20iLCJ4bGFtIiwiYmlmZjgiLCJ4bGEiXTtkdC5EUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3Jn''@;'; put 'put ''L29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwcy9kaWFsb2dzaGVldCIsZHQuTVM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYvcmVsYXRpb25zaGlwcy94bE1hY3Jvc2hlZXQiO3ZhciBEMz1mdW5jdGlvbigpe3ZhciBIPS8oXnxbXkEtWmEtel9dKVIo''@;'; put 'put ''XFs/LT9cZCtcXXxbMS05XVxkKnwpQyhcWz8tP1xkK1xdfFsxLTldXGQqfCkoPyFbQS1aYS16MC05X10pL2csaWU9e3I6MCxjOjB9O2Z1bmN0aW9uIFgod2UseGUsRmUsWmUpe3ZhciBqZT0hMSxZZT0hMTswPT1GZS5sZW5ndGg/WWU9ITA6IlsiPT1GZS5jaGFyQXQoMCkmJihZZT0hMCxGZT1G''@;'; put 'put ''ZS5zbGljZSgxLC0xKSksMD09WmUubGVuZ3RoP2plPSEwOiJbIj09WmUuY2hhckF0KDApJiYoamU9ITAsWmU9WmUuc2xpY2UoMSwtMSkpO3ZhciBNdD1GZS5sZW5ndGg+MD8wfHBhcnNlSW50KEZlLDEwKTowLHh0PVplLmxlbmd0aD4wPzB8cGFyc2VJbnQoWmUsMTApOjA7cmV0dXJuIGplP3h0''@;'; put 'put ''Kz1pZS5jOi0teHQsWWU/TXQrPWllLnI6LS1NdCx4ZSsoamU/IiI6IiQiKStfYSh4dCkrKFllPyIiOiIkIikrWGEoTXQpfXJldHVybiBmdW5jdGlvbih4ZSxGZSl7cmV0dXJuIGllPUZlLHhlLnJlcGxhY2UoSCxYKX19KCksU209LyhefFteLl9BLVowLTldKShbJF0/KShbQS1aXXsxLDJ9fFtB''@;'; put 'put ''LVddW0EtWl17Mn18WFtBLUVdW0EtWl18WEZbQS1EXSkoWyRdPykoMTBbMC0zXVxkezR9fDEwNFswLTddXGR7M318MTA0OFswLTRdXGR7Mn18MTA0ODVbMC02XVxkfDEwNDg1N1swLTZdfFsxLTldXGR7MCw1fSkoPyFbXy5cKEEtWmEtejAtOV0pL2csVkU9ZnVuY3Rpb24oaWUsWCl7cmV0dXJu''@;'; put 'put ''IGllLnJlcGxhY2UoU20sZnVuY3Rpb24od2UseGUsRmUsWmUsamUsWWUpe3ZhciBNdD1taChaZSktKEZlPzA6WC5jKSx4dD1hcyhZZSktKGplPzA6WC5yKTtyZXR1cm4geGUrIlIiKygwPT14dD8iIjpqZT94dCsxOiJbIit4dCsiXSIpKyJDIisoMD09TXQ/IiI6RmU/TXQrMToiWyIrTXQrIl0i''@;'; put 'put ''KX0pfTtmdW5jdGlvbiBROShILGllKXtyZXR1cm4gSC5yZXBsYWNlKFNtLGZ1bmN0aW9uKFgsd2UseGUsRmUsWmUsamUpe3JldHVybiB3ZSsoIiQiPT14ZT94ZStGZTpfYShtaChGZSkraWUuYykpKygiJCI9PVplP1plK2plOlhhKGFzKGplKStpZS5yKSl9KS5yZXBsYWNlKC8oXGQrKTooXGQr''@;'; put 'put ''KS9nLGZ1bmN0aW9uKFgsd2UseGUpe3JldHVybiBYYShhcyh3ZSkraWUucikrIjoiK1hhKGFzKHhlKStpZS5yKX0pfWZ1bmN0aW9uIFY0KEgsaWUsWCl7dmFyIHhlPUFzKGllKS5zLEZlPXVsKFgpO3JldHVybiBROShILHtyOkZlLnIteGUucixjOkZlLmMteGUuY30pfWZ1bmN0aW9uIFhiKEgp''@;'; put 'put ''e3JldHVybiBILnJlcGxhY2UoL194bGZuXC4vZywiIil9ZnVuY3Rpb24gYjEoSCl7SC5sKz0xfWZ1bmN0aW9uIGh1KEgsaWUpe3ZhciBYPUgucmVhZF9zaGlmdCgxPT1pZT8xOjIpO3JldHVyblsxNjM4MyZYLFg+PjE0JjEsWD4+MTUmMV19ZnVuY3Rpb24gTW0oSCxpZSxYKXt2YXIgd2U9Mjtp''@;'; put 'put ''ZihYKXtpZihYLmJpZmY+PTImJlguYmlmZjw9NSlyZXR1cm4gS2IoSCk7MTI9PVguYmlmZiYmKHdlPTQpfXZhciB4ZT1ILnJlYWRfc2hpZnQod2UpLEZlPUgucmVhZF9zaGlmdCh3ZSksWmU9aHUoSCwyKSxqZT1odShILDIpO3JldHVybntzOntyOnhlLGM6WmVbMF0sY1JlbDpaZVsxXSxyUmVs''@;'; put 'put ''OlplWzJdfSxlOntyOkZlLGM6amVbMF0sY1JlbDpqZVsxXSxyUmVsOmplWzJdfX19ZnVuY3Rpb24gS2IoSCl7dmFyIGllPWh1KEgsMiksWD1odShILDIpLHdlPUgucmVhZF9zaGlmdCgxKSx4ZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJue3M6e3I6aWVbMF0sYzp3ZSxjUmVsOmllWzFdLHJSZWw6''@;'; put 'put ''aWVbMl19LGU6e3I6WFswXSxjOnhlLGNSZWw6WFsxXSxyUmVsOlhbMl19fX1mdW5jdGlvbiBqRShILGllLFgpe2lmKFgmJlguYmlmZj49MiYmWC5iaWZmPD01KXJldHVybiBmdW5jdGlvbiBaRShIKXt2YXIgaWU9aHUoSCwyKSxYPUgucmVhZF9zaGlmdCgxKTtyZXR1cm57cjppZVswXSxjOlgs''@;'; put 'put ''Y1JlbDppZVsxXSxyUmVsOmllWzJdfX0oSCk7dmFyIHdlPUgucmVhZF9zaGlmdChYJiYxMj09WC5iaWZmPzQ6MikseGU9aHUoSCwyKTtyZXR1cm57cjp3ZSxjOnhlWzBdLGNSZWw6eGVbMV0sclJlbDp4ZVsyXX19ZnVuY3Rpb24geUIoSCl7dmFyIGllPUgucmVhZF9zaGlmdCgyKSxYPUgucmVh''@;'; put 'put ''ZF9zaGlmdCgyKTtyZXR1cm57cjppZSxjOjI1NSZYLGZRdW90ZWQ6ISEoMTYzODQmWCksY1JlbDpYPj4xNSxyUmVsOlg+PjE1fX1mdW5jdGlvbiBUZChIKXtyZXR1cm5bSC5yZWFkX3NoaWZ0KDEpLEgucmVhZF9zaGlmdCgxKV19ZnVuY3Rpb24gcjUoSCxpZSl7dmFyIFg9W0gucmVhZF9zaGlm''@;'; put 'put ''dCgxKV07aWYoMTI9PWllKXN3aXRjaChYWzBdKXtjYXNlIDI6WFswXT00O2JyZWFrO2Nhc2UgNDpYWzBdPTE2O2JyZWFrO2Nhc2UgMDpYWzBdPTE7YnJlYWs7Y2FzZSAxOlhbMF09Mn1zd2l0Y2goWFswXSl7Y2FzZSA0OlhbMV09dGEoSCwxKT8iVFJVRSI6IkZBTFNFIiwxMiE9aWUmJihILmwr''@;'; put 'put ''PTcpO2JyZWFrO2Nhc2UgMzc6Y2FzZSAxNjpYWzFdPU4xW0hbSC5sXV0sSC5sKz0xMj09aWU/NDo4O2JyZWFrO2Nhc2UgMDpILmwrPTg7YnJlYWs7Y2FzZSAxOlhbMV09STIoSCk7YnJlYWs7Y2FzZSAyOlhbMV09ZGYoSCwwLHtiaWZmOmllPjAmJmllPDg/MjppZX0pO2JyZWFrO2RlZmF1bHQ6''@;'; put 'put ''dGhyb3cgbmV3IEVycm9yKCJCYWQgU2VyQXI6ICIrWFswXSl9cmV0dXJuIFh9ZnVuY3Rpb24gSUIoSCxpZSxYKXtmb3IodmFyIHdlPUgucmVhZF9zaGlmdCgxMj09WC5iaWZmPzQ6MikseGU9W10sRmU9MDtGZSE9d2U7KytGZSl4ZS5wdXNoKCgxMj09WC5iaWZmP3doOm42KShILDgpKTtyZXR1''@;'; put 'put ''cm4geGV9ZnVuY3Rpb24gWEUoSCxpZSxYKXt2YXIgd2U9MCx4ZT0wOzEyPT1YLmJpZmY/KHdlPUgucmVhZF9zaGlmdCg0KSx4ZT1ILnJlYWRfc2hpZnQoNCkpOih4ZT0xK0gucmVhZF9zaGlmdCgxKSx3ZT0xK0gucmVhZF9zaGlmdCgyKSksWC5iaWZmPj0yJiZYLmJpZmY8OCYmKC0td2UsMD09''@;'; put 'put ''LS14ZSYmKHhlPTI1NikpO2Zvcih2YXIgRmU9MCxaZT1bXTtGZSE9d2UmJihaZVtGZV09W10pOysrRmUpZm9yKHZhciBqZT0wO2plIT14ZTsrK2plKVplW0ZlXVtqZV09cjUoSCxYLmJpZmYpO3JldHVybiBaZX1mdW5jdGlvbiBvNShILGllLFgpe3JldHVybiBILmwrPTIsW3lCKEgpXX1mdW5j''@;'; put 'put ''dGlvbiBYOShIKXtyZXR1cm4gSC5sKz02LFtdfXZhciB0Xz1vNSxmRz1YOSxuXz1YOSxIQj1vNTtmdW5jdGlvbiBOQihIKXtyZXR1cm4gSC5sKz0yLFtjMShIKSwxJkgucmVhZF9zaGlmdCgyKV19dmFyIEt0PW81LEs5PU5CLHFFPVg5LCQ5PW81LERoPW81LHJfPVsiRGF0YSIsIkFsbCIsIkhl''@;'; put 'put ''YWRlcnMiLCI/PyIsIj9EYXRhMiIsIj8/IiwiP0RhdGFIZWFkZXJzIiwiPz8iLCJUb3RhbHMiLCI/PyIsIj8/IiwiPz8iLCI/RGF0YVRvdGFscyIsIj8/IiwiPz8iLCI/PyIsIj9DdXJyZW50Il0sbDU9ezE6e246IlB0Z0V4cCIsZjpmdW5jdGlvbiB1RyhILGllLFgpe3JldHVybiBILmwrKyxY''@;'; put 'put ''JiYxMj09WC5iaWZmP1tILnJlYWRfc2hpZnQoNCwiaSIpLDBdOltILnJlYWRfc2hpZnQoMiksSC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpXX19LDI6e246IlB0Z1RibCIsZjpDc30sMzp7bjoiUHRnQWRkIixmOmIxfSw0OntuOiJQdGdTdWIiLGY6YjF9LDU6e246IlB0Z011bCIsZjpi''@;'; put 'put ''MX0sNjp7bjoiUHRnRGl2IixmOmIxfSw3OntuOiJQdGdQb3dlciIsZjpiMX0sODp7bjoiUHRnQ29uY2F0IixmOmIxfSw5OntuOiJQdGdMdCIsZjpiMX0sMTA6e246IlB0Z0xlIixmOmIxfSwxMTp7bjoiUHRnRXEiLGY6YjF9LDEyOntuOiJQdGdHZSIsZjpiMX0sMTM6e246IlB0Z0d0IixmOmIx''@;'; put 'put ''fSwxNDp7bjoiUHRnTmUiLGY6YjF9LDE1OntuOiJQdGdJc2VjdCIsZjpiMX0sMTY6e246IlB0Z1VuaW9uIixmOmIxfSwxNzp7bjoiUHRnUmFuZ2UiLGY6YjF9LDE4OntuOiJQdGdVcGx1cyIsZjpiMX0sMTk6e246IlB0Z1VtaW51cyIsZjpiMX0sMjA6e246IlB0Z1BlcmNlbnQiLGY6YjF9LDIx''@;'; put 'put ''OntuOiJQdGdQYXJlbiIsZjpiMX0sMjI6e246IlB0Z01pc3NBcmciLGY6YjF9LDIzOntuOiJQdGdTdHIiLGY6ZnVuY3Rpb24gVEIoSCxpZSxYKXtyZXR1cm4gSC5sKyssemMoSCwwLFgpfX0sMjY6e246IlB0Z1NoZWV0IixmOmZ1bmN0aW9uIERkKEgsaWUsWCl7cmV0dXJuIEgubCs9NSxILmwr''@;'; put 'put ''PTIsSC5sKz0yPT1YLmJpZmY/MTo0LFsiUFRHU0hFRVQiXX19LDI3OntuOiJQdGdFbmRTaGVldCIsZjpmdW5jdGlvbiBfNihILGllLFgpe3JldHVybiBILmwrPTI9PVguYmlmZj80OjUsWyJQVEdFTkRTSEVFVCJdfX0sMjg6e246IlB0Z0VyciIsZjpmdW5jdGlvbiBJZChIKXtyZXR1cm4gSC5s''@;'; put 'put ''KyssTjFbSC5yZWFkX3NoaWZ0KDEpXX19LDI5OntuOiJQdGdCb29sIixmOmZ1bmN0aW9uIEpFKEgpe3JldHVybiBILmwrKywwIT09SC5yZWFkX3NoaWZ0KDEpfX0sMzA6e246IlB0Z0ludCIsZjpmdW5jdGlvbiB4QihIKXtyZXR1cm4gSC5sKyssSC5yZWFkX3NoaWZ0KDIpfX0sMzE6e246IlB0''@;'; put 'put ''Z051bSIsZjpmdW5jdGlvbiBjRyhIKXtyZXR1cm4gSC5sKyssSTIoSCl9fSwzMjp7bjoiUHRnQXJyYXkiLGY6ZnVuY3Rpb24gR0UoSCxpZSxYKXt2YXIgd2U9KDk2JkhbSC5sKytdKT4+NTtyZXR1cm4gSC5sKz0yPT1YLmJpZmY/NjoxMj09WC5iaWZmPzE0OjcsW3dlXX19LDMzOntuOiJQdGdG''@;'; put 'put ''dW5jIixmOmZ1bmN0aW9uIHFiKEgsaWUsWCl7dmFyIHdlPSg5NiZIW0gubF0pPj41O0gubCs9MTt2YXIgeGU9SC5yZWFkX3NoaWZ0KFgmJlguYmlmZjw9Mz8xOjIpO3JldHVybltjX1t4ZV0sYzVbeGVdLHdlXX19LDM0OntuOiJQdGdGdW5jVmFyIixmOmZ1bmN0aW9uIGVfKEgsaWUsWCl7dmFy''@;'; put 'put ''IHdlPUhbSC5sKytdLHhlPUgucmVhZF9zaGlmdCgxKSxGZT1YJiZYLmJpZmY8PTM/Wzg4PT13ZT8tMTowLEgucmVhZF9zaGlmdCgxKV06ZnVuY3Rpb24gRUIoSCl7cmV0dXJuW0hbSC5sKzFdPj43LDMyNzY3JkgucmVhZF9zaGlmdCgyKV19KEgpO3JldHVyblt4ZSwoMD09PUZlWzBdP2M1OnVf''@;'; put 'put ''KVtGZVsxXV1dfX0sMzU6e246IlB0Z05hbWUiLGY6ZnVuY3Rpb24gSjkoSCxpZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpPj4+NSYzLEZlPUgucmVhZF9zaGlmdCghWHx8WC5iaWZmPj04PzQ6Mik7c3dpdGNoKFguYmlmZil7Y2FzZSAyOkgubCs9NTticmVhaztjYXNlIDM6Y2FzZSA0Okgu''@;'; put 'put ''bCs9ODticmVhaztjYXNlIDU6SC5sKz0xMn1yZXR1cm5bd2UsMCxGZV19fSwzNjp7bjoiUHRnUmVmIixmOmZ1bmN0aW9uIG41KEgsaWUsWCl7dmFyIHdlPSg5NiZIW0gubF0pPj41O3JldHVybiBILmwrPTEsW3dlLGpFKEgsMCxYKV19fSwzNzp7bjoiUHRnQXJlYSIsZjpmdW5jdGlvbiBiQihI''@;'; put 'put ''LGllLFgpe3JldHVyblsoOTYmSFtILmwrK10pPj41LE1tKEgsMCxYKV19fSwzODp7bjoiUHRnTWVtQXJlYSIsZjpmdW5jdGlvbiBMQihILGllLFgpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoMSk+Pj41JjM7cmV0dXJuIEgubCs9WCYmMj09WC5iaWZmPzM6NCxbd2UsSC5yZWFkX3NoaWZ0KFgmJjI9''@;'; put 'put ''PVguYmlmZj8xOjIpXX19LDM5OntuOiJQdGdNZW1FcnIiLGY6Q3N9LDQwOntuOiJQdGdNZW1Ob01lbSIsZjpDc30sNDE6e246IlB0Z01lbUZ1bmMiLGY6ZnVuY3Rpb24gT0IoSCxpZSxYKXtyZXR1cm5bSC5yZWFkX3NoaWZ0KDEpPj4+NSYzLEgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/MToy''@;'; put 'put ''KV19fSw0Mjp7bjoiUHRnUmVmRXJyIixmOmZ1bmN0aW9uIFJCKEgsaWUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCgxKT4+PjUmMztyZXR1cm4gSC5sKz00LFguYmlmZjw4JiZILmwtLSwxMj09WC5iaWZmJiYoSC5sKz0yKSxbd2VdfX0sNDM6e246IlB0Z0FyZWFFcnIiLGY6ZnVuY3Rpb24gTmEo''@;'; put 'put ''SCxpZSxYKXt2YXIgd2U9KDk2JkhbSC5sKytdKT4+NTtyZXR1cm4gSC5sKz1YJiZYLmJpZmY+OD8xMjpYLmJpZmY8OD82OjgsW3dlXX19LDQ0OntuOiJQdGdSZWZOIixmOmZ1bmN0aW9uIFNzKEgsaWUsWCl7dmFyIHdlPSg5NiZIW0gubF0pPj41O0gubCs9MTt2YXIgeGU9ZnVuY3Rpb24gekUo''@;'; put 'put ''SCxpZSxYKXt2YXIgd2U9WCYmWC5iaWZmP1guYmlmZjo4O2lmKHdlPj0yJiZ3ZTw9NSlyZXR1cm4gZnVuY3Rpb24gd0IoSCl7dmFyIGllPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgxKSx3ZT0oMzI3NjgmaWUpPj4xNSx4ZT0oMTYzODQmaWUpPj4xNDtyZXR1cm4gaWUmPTE2Mzgz''@;'; put 'put ''LDE9PXdlJiZpZT49ODE5MiYmKGllLT0xNjM4NCksMT09eGUmJlg+PTEyOCYmKFgtPTI1Nikse3I6aWUsYzpYLGNSZWw6eGUsclJlbDp3ZX19KEgpO3ZhciB4ZT1ILnJlYWRfc2hpZnQod2U+PTEyPzQ6MiksRmU9SC5yZWFkX3NoaWZ0KDIpLFplPSgxNjM4NCZGZSk+PjE0LGplPSgzMjc2OCZG''@;'; put 'put ''ZSk+PjE1O2lmKEZlJj0xNjM4MywxPT1qZSlmb3IoO3hlPjUyNDI4NzspeGUtPTEwNDg1NzY7aWYoMT09WmUpZm9yKDtGZT44MTkxOylGZS09MTYzODQ7cmV0dXJue3I6eGUsYzpGZSxjUmVsOlplLHJSZWw6amV9fShILDAsWCk7cmV0dXJuW3dlLHhlXX19LDQ1OntuOiJQdGdBcmVhTiIsZjpm''@;'; put 'put ''dW5jdGlvbiAkYihILGllLFgpe3ZhciB3ZT0oOTYmSFtILmwrK10pPj41LHhlPWZ1bmN0aW9uIEFCKEgsaWUsWCl7aWYoWC5iaWZmPDgpcmV0dXJuIEtiKEgpO3ZhciB3ZT1ILnJlYWRfc2hpZnQoMTI9PVguYmlmZj80OjIpLHhlPUgucmVhZF9zaGlmdCgxMj09WC5iaWZmPzQ6MiksRmU9aHUo''@;'; put 'put ''SCwyKSxaZT1odShILDIpO3JldHVybntzOntyOndlLGM6RmVbMF0sY1JlbDpGZVsxXSxyUmVsOkZlWzJdfSxlOntyOnhlLGM6WmVbMF0sY1JlbDpaZVsxXSxyUmVsOlplWzJdfX19KEgsMCxYKTtyZXR1cm5bd2UseGVdfX0sNDY6e246IlB0Z01lbUFyZWFOIixmOmZ1bmN0aW9uIGVBKEgpe3Jl''@;'; put 'put ''dHVybltILnJlYWRfc2hpZnQoMSk+Pj41JjMsSC5yZWFkX3NoaWZ0KDIpXX19LDQ3OntuOiJQdGdNZW1Ob01lbU4iLGY6ZnVuY3Rpb24gYTUoSCl7cmV0dXJuW0gucmVhZF9zaGlmdCgxKT4+PjUmMyxILnJlYWRfc2hpZnQoMildfX0sNTc6e246IlB0Z05hbWVYIixmOmZ1bmN0aW9uIERCKEgs''@;'; put 'put ''aWUsWCl7cmV0dXJuIDU9PVguYmlmZj9mdW5jdGlvbiBLRShIKXt2YXIgaWU9SC5yZWFkX3NoaWZ0KDEpPj4+NSYzLFg9SC5yZWFkX3NoaWZ0KDIsImkiKTtILmwrPTg7dmFyIHdlPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gSC5sKz0xMixbaWUsWCx3ZV19KEgpOltILnJlYWRfc2hpZnQoMSk+''@;'; put 'put ''Pj41JjMsSC5yZWFkX3NoaWZ0KDIpLEgucmVhZF9zaGlmdCg0KV19fSw1ODp7bjoiUHRnUmVmM2QiLGY6ZnVuY3Rpb24gTUIoSCxpZSxYKXt2YXIgd2U9KDk2JkhbSC5sXSk+PjU7SC5sKz0xO3ZhciB4ZT1ILnJlYWRfc2hpZnQoMik7cmV0dXJuIFgmJjU9PVguYmlmZiYmKEgubCs9MTIpLFt3''@;'; put 'put ''ZSx4ZSxqRShILDAsWCldfX0sNTk6e246IlB0Z0FyZWEzZCIsZjpmdW5jdGlvbiBfQihILGllLFgpe3ZhciB3ZT0oOTYmSFtILmwrK10pPj41LHhlPUgucmVhZF9zaGlmdCgyLCJpIik7aWYoWCYmNT09PVguYmlmZilILmwrPTEyO3JldHVyblt3ZSx4ZSxNbShILDAsWCldfX0sNjA6e246IlB0''@;'; put 'put ''Z1JlZkVycjNkIixmOmZ1bmN0aW9uIEJCKEgsaWUsWCl7dmFyIHdlPSg5NiZIW0gubCsrXSk+PjUseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPTQ7aWYoWClzd2l0Y2goWC5iaWZmKXtjYXNlIDU6RmU9MTU7YnJlYWs7Y2FzZSAxMjpGZT02fXJldHVybiBILmwrPUZlLFt3ZSx4ZV19fSw2MTp7bjoi''@;'; put 'put ''UHRnQXJlYUVycjNkIixmOmZ1bmN0aW9uIHV0KEgsaWUsWCl7dmFyIHdlPSg5NiZIW0gubCsrXSk+PjUseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPTg7aWYoWClzd2l0Y2goWC5iaWZmKXtjYXNlIDU6SC5sKz0xMixGZT02O2JyZWFrO2Nhc2UgMTI6RmU9MTJ9cmV0dXJuIEgubCs9RmUsW3dlLHhl''@;'; put 'put ''XX19LDI1NTp7fX0sb189ezY0OjMyLDk2OjMyLDY1OjMzLDk3OjMzLDY2OjM0LDk4OjM0LDY3OjM1LDk5OjM1LDY4OjM2LDEwMDozNiw2OTozNywxMDE6MzcsNzA6MzgsMTAyOjM4LDcxOjM5LDEwMzozOSw3Mjo0MCwxMDQ6NDAsNzM6NDEsMTA1OjQxLDc0OjQyLDEwNjo0Miw3NTo0MywxMDc6''@;'; put 'put ''NDMsNzY6NDQsMTA4OjQ0LDc3OjQ1LDEwOTo0NSw3ODo0NiwxMTA6NDYsNzk6NDcsMTExOjQ3LDg4OjM0LDEyMDozNCw4OTo1NywxMjE6NTcsOTA6NTgsMTIyOjU4LDkxOjU5LDEyMzo1OSw5Mjo2MCwxMjQ6NjAsOTM6NjEsMTI1OjYxfTshZnVuY3Rpb24oKXtmb3IodmFyIEggaW4gb18pbDVb''@;'; put 'put ''SF09bDVbb19bSF1dfSgpO3ZhciBFbT17MTp7bjoiUHRnRWxmTGVsIixmOk5CfSwyOntuOiJQdGdFbGZSdyIsZjokOX0sMzp7bjoiUHRnRWxmQ29sIixmOnRffSw2OntuOiJQdGdFbGZSd1YiLGY6RGh9LDc6e246IlB0Z0VsZkNvbFYiLGY6SEJ9LDEwOntuOiJQdGdFbGZSYWRpY2FsIixmOkt0''@;'; put 'put ''fSwxMTp7bjoiUHRnRWxmUmFkaWNhbFMiLGY6cUV9LDEzOntuOiJQdGdFbGZDb2xTIixmOmZHfSwxNTp7bjoiUHRnRWxmQ29sU1YiLGY6bl99LDE2OntuOiJQdGdFbGZSYWRpY2FsTGVsIixmOks5fSwyNTp7bjoiUHRnTGlzdCIsZjpmdW5jdGlvbiBxOShIKXtILmwrPTI7dmFyIGllPUgucmVh''@;'; put 'put ''ZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKSx3ZT1ILnJlYWRfc2hpZnQoNCkseGU9SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgyKTtyZXR1cm57aXh0aTppZSxjb2x0eXBlOjMmWCxydDpyX1tYPj4yJjMxXSxpZHg6d2UsYzp4ZSxDOkZlfX19LDI5OntuOiJQdGdTeE5hbWUi''@;'; put 'put ''LGY6ZnVuY3Rpb24gaV8oSCl7cmV0dXJuIEgubCs9MixbSC5yZWFkX3NoaWZ0KDQpXX19LDI1NTp7fX0sX2Y9ezA6e246IlB0Z0F0dHJOb29wIixmOmZ1bmN0aW9uIGV4KEgpe3JldHVybiBILmwrPTQsWzAsMF19fSwxOntuOiJQdGdBdHRyU2VtaSIsZjpmdW5jdGlvbiBTQihILGllLFgpe3Zh''@;'; put 'put ''ciB3ZT0yNTUmSFtILmwrMV0/MTowO3JldHVybiBILmwrPVgmJjI9PVguYmlmZj8zOjQsW3dlXX19LDI6e246IlB0Z0F0dHJJZiIsZjpmdW5jdGlvbiBZRShILGllLFgpe3ZhciB3ZT0yNTUmSFtILmwrMV0/MTowO3JldHVybiBILmwrPTIsW3dlLEgucmVhZF9zaGlmdChYJiYyPT1YLmJpZmY/''@;'; put 'put ''MToyKV19fSw0OntuOiJQdGdBdHRyQ2hvb3NlIixmOmZ1bmN0aW9uIGtCKEgsaWUsWCl7SC5sKz0yO2Zvcih2YXIgd2U9SC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpLHhlPVtdLEZlPTA7RmU8PXdlOysrRmUpeGUucHVzaChILnJlYWRfc2hpZnQoWCYmMj09WC5iaWZmPzE6MikpO3Jl''@;'; put 'put ''dHVybiB4ZX19LDg6e246IlB0Z0F0dHJHb3RvIixmOmZ1bmN0aW9uIFdFKEgsaWUsWCl7dmFyIHdlPTI1NSZIW0gubCsxXT8xOjA7cmV0dXJuIEgubCs9Mixbd2UsSC5yZWFkX3NoaWZ0KFgmJjI9PVguYmlmZj8xOjIpXX19LDE2OntuOiJQdGdBdHRyU3VtIixmOmZ1bmN0aW9uIHNHKEgsaWUs''@;'; put 'put ''WCl7SC5sKz1YJiYyPT1YLmJpZmY/Mzo0fX0sMzI6e246IlB0Z0F0dHJCYXhjZWwiLGY6ZnVuY3Rpb24gQ0IoSCl7dmFyIGllPTEmSFtILmwrMV07cmV0dXJuIEgubCs9NCxbaWUsMV19fSw2NDp7bjoiUHRnQXR0clNwYWNlIixmOmZ1bmN0aW9uIGxHKEgpe3JldHVybiBILnJlYWRfc2hpZnQo''@;'; put 'put ''MiksVGQoSCl9fSw2NTp7bjoiUHRnQXR0clNwYWNlU2VtaSIsZjpmdW5jdGlvbiBRRShIKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDIpLFRkKEgpfX0sMTI4OntuOiJQdGdBdHRySWZFcnJvciIsZjpmdW5jdGlvbiBVRShIKXt2YXIgaWU9MjU1JkhbSC5sKzFdPzE6MDtyZXR1cm4gSC5sKz0yLFtp''@;'; put 'put ''ZSxILnJlYWRfc2hpZnQoMildfX0sMjU1Ont9fTtmdW5jdGlvbiBMZChILGllLFgsd2UseGUpe2lmKHdlLmJpZmY8OClyZXR1cm4gQ3MoSCxpZSk7Zm9yKHZhciBGZT1ILmwraWUsWmU9W10samU9MDtqZSE9PVgubGVuZ3RoOysramUpc3dpdGNoKFhbamVdWzBdKXtjYXNlIlB0Z0FycmF5IjpY''@;'; put 'put ''W2plXVsxXT1YRShILDAsd2UpLFplLnB1c2goWFtqZV1bMV0pO2JyZWFrO2Nhc2UiUHRnTWVtQXJlYSI6WFtqZV1bMl09SUIoSCwwLHdlKSxaZS5wdXNoKFhbamVdWzJdKTticmVhaztjYXNlIlB0Z0V4cCI6d2UmJjEyPT13ZS5iaWZmJiYoWFtqZV1bMV1bMV09SC5yZWFkX3NoaWZ0KDQpLFpl''@;'; put 'put ''LnB1c2goWFtqZV1bMV0pKTticmVhaztjYXNlIlB0Z0xpc3QiOmNhc2UiUHRnRWxmUmFkaWNhbFMiOmNhc2UiUHRnRWxmQ29sUyI6Y2FzZSJQdGdFbGZDb2xTViI6dGhyb3ciVW5zdXBwb3J0ZWQgIitYW2plXVswXX1yZXR1cm4gaWU9RmUtSC5sLCF4ZSYmMCE9PWllJiZaZS5wdXNoKENzKEgs''@;'; put 'put ''aWUpKSxaZX1mdW5jdGlvbiBqNChILGllLFgpe2Zvcih2YXIgeGUsRmUsd2U9SC5sK2llLFplPVtdO3dlIT1ILmw7KWllPXdlLUgubCx4ZT1sNVtGZT1IW0gubF1dLCgyND09PUZlfHwyNT09PUZlKSYmKHhlPSgyND09PUZlP0VtOl9mKVtIW0gubCsxXV0pLHhlJiZ4ZS5mP1plLnB1c2goW3hl''@;'; put 'put ''Lm4seGUuZihILGllLFgpXSk6Q3MoSCxpZSk7cmV0dXJuIFplfWZ1bmN0aW9uIGFfKEgpe2Zvcih2YXIgaWU9W10sWD0wO1g8SC5sZW5ndGg7KytYKXtmb3IodmFyIHdlPUhbWF0seGU9W10sRmU9MDtGZTx3ZS5sZW5ndGg7KytGZSl7dmFyIFplPXdlW0ZlXTt4ZS5wdXNoKFplPzI9PT1aZVsw''@;'; put 'put ''XT8nIicrWmVbMV0ucmVwbGFjZSgvIi9nLCciIicpKyciJzpaZVsxXToiIil9aWUucHVzaCh4ZS5qb2luKCIsIikpfXJldHVybiBpZS5qb2luKCI7Iil9X2ZbMzNdPV9mWzMyXTt2YXIgdHg9e1B0Z0FkZDoiKyIsUHRnQ29uY2F0OiImIixQdGdEaXY6Ii8iLFB0Z0VxOiI9IixQdGdHZToiPj0i''@;'; put 'put ''LFB0Z0d0OiI+IixQdGdMZToiPD0iLFB0Z0x0OiI8IixQdGdNdWw6IioiLFB0Z05lOiI8PiIsUHRnUG93ZXI6Il4iLFB0Z1N1YjoiLSJ9LHRBPW5ldyBSZWdFeHAoL1teXHdcdTRFMDAtXHU5RkZGXHUzMDQwLVx1MzBGRl0vKTtmdW5jdGlvbiBueChILGllLFgpe2lmKCFIKXJldHVybiJTSDMz''@;'; put 'put ''VEpTRVJSMCI7aWYoWC5iaWZmPjgmJighSC5YVEl8fCFILlhUSVtpZV0pKXJldHVybiBILlNoZWV0TmFtZXNbaWVdO2lmKCFILlhUSSlyZXR1cm4iU0gzM1RKU0VSUjYiO3ZhciB3ZT1ILlhUSVtpZV07aWYoWC5iaWZmPDgpcmV0dXJuIGllPjFlNCYmKGllLT02NTUzNiksaWU8MCYmKGllPS1p''@;'; put 'put ''ZSksMD09aWU/IiI6SC5YVElbaWUtMV07aWYoIXdlKXJldHVybiJTSDMzVEpTRVJSMSI7dmFyIHhlPSIiO2lmKFguYmlmZj44KXN3aXRjaChIW3dlWzBdXVswXSl7Y2FzZSAzNTc6cmV0dXJuIHhlPS0xPT13ZVsxXT8iI1JFRiI6SC5TaGVldE5hbWVzW3dlWzFdXSx3ZVsxXT09d2VbMl0/eGU6''@;'; put 'put ''eGUrIjoiK0guU2hlZXROYW1lc1t3ZVsyXV07Y2FzZSAzNTg6cmV0dXJuIG51bGwhPVguU0lEP0guU2hlZXROYW1lc1tYLlNJRF06IlNIMzNUSlNTQU1FIitIW3dlWzBdXVswXTtkZWZhdWx0OnJldHVybiJTSDMzVEpTU1JDIitIW3dlWzBdXVswXX1zd2l0Y2goSFt3ZVswXV1bMF1bMF0pe2Nh''@;'; put 'put ''c2UgMTAyNTpyZXR1cm4geGU9LTE9PXdlWzFdPyIjUkVGIjpILlNoZWV0TmFtZXNbd2VbMV1dfHwiU0gzM1RKU0VSUjMiLHdlWzFdPT13ZVsyXT94ZTp4ZSsiOiIrSC5TaGVldE5hbWVzW3dlWzJdXTtjYXNlIDE0ODQ5OnJldHVybiBIW3dlWzBdXS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oRmUp''@;'; put 'put ''e3JldHVybiBGZS5OYW1lfSkuam9pbigiOzsiKTtkZWZhdWx0OnJldHVybiBIW3dlWzBdXVswXVszXT8oeGU9LTE9PXdlWzFdPyIjUkVGIjpIW3dlWzBdXVswXVszXVt3ZVsxXV18fCJTSDMzVEpTRVJSNCIsd2VbMV09PXdlWzJdP3hlOnhlKyI6IitIW3dlWzBdXVswXVszXVt3ZVsyXV0pOiJT''@;'; put 'put ''SDMzVEpTRVJSMiJ9fWZ1bmN0aW9uIGxfKEgsaWUsWCl7cmV0dXJuIGZ1bmN0aW9uIFZCKEgsaWUpe2lmKCEoSHx8aWUmJmllLmJpZmY8PTUmJmllLmJpZmY+PTIpKXRocm93IG5ldyBFcnJvcigiZW1wdHkgc2hlZXQgbmFtZSIpO3JldHVybi8jUkVGLy50ZXN0KEgpP0g6dEEudGVzdChIKT8i''@;'; put 'put ''JyIrSCsiJyI6SH0obngoSCxpZSxYKSxYKX1mdW5jdGlvbiBXMShILGllLFgsd2UseGUsRmUpe3ZhciBNdCx4dCxSdCxDbixaZT14ZSYmeGUuYmlmZnx8OCxqZT1GZSYmbnVsbCE9aWU/aWU6e3M6e2M6MCxyOjB9LGU6e2M6MCxyOjB9fSxZZT1bXSxVdD0wLG5uPTAsRHQ9IiI7aWYoIUhbMF18''@;'; put 'put ''fCFIWzBdWzBdKXJldHVybiIiO2Zvcih2YXIgenQ9LTEsUG49IiIsVG49MCxPbj1IWzBdLmxlbmd0aDtUbjxPbjsrK1RuKXt2YXIgWW49SFswXVtUbl07c3dpdGNoKFluWzBdKXtjYXNlIlB0Z1VtaW51cyI6WWUucHVzaCgiLSIrWWUucG9wKCkpO2JyZWFrO2Nhc2UiUHRnVXBsdXMiOlllLnB1''@;'; put 'put ''c2goIisiK1llLnBvcCgpKTticmVhaztjYXNlIlB0Z1BlcmNlbnQiOlllLnB1c2goWWUucG9wKCkrIiUiKTticmVhaztjYXNlIlB0Z0FkZCI6Y2FzZSJQdGdDb25jYXQiOmNhc2UiUHRnRGl2IjpjYXNlIlB0Z0VxIjpjYXNlIlB0Z0dlIjpjYXNlIlB0Z0d0IjpjYXNlIlB0Z0xlIjpjYXNlIlB0''@;'; put 'put ''Z0x0IjpjYXNlIlB0Z011bCI6Y2FzZSJQdGdOZSI6Y2FzZSJQdGdQb3dlciI6Y2FzZSJQdGdTdWIiOmlmKE10PVllLnBvcCgpLHh0PVllLnBvcCgpLHp0Pj0wKXtzd2l0Y2goSFswXVt6dF1bMV1bMF0pe2Nhc2UgMDpQbj1lcigiICIsSFswXVt6dF1bMV1bMV0pO2JyZWFrO2Nhc2UgMTpQbj1l''@;'; put 'put ''cigiXHIiLEhbMF1benRdWzFdWzFdKTticmVhaztkZWZhdWx0OmlmKFBuPSIiLHhlLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK0hbMF1benRdWzFdWzBdKX14dCs9UG4senQ9LTF9WWUucHVzaCh4dCt0eFtZblswXV0rTXQpO2JyZWFrO2Nhc2Ui''@;'; put 'put ''UHRnSXNlY3QiOk10PVllLnBvcCgpLHh0PVllLnBvcCgpLFllLnB1c2goeHQrIiAiK010KTticmVhaztjYXNlIlB0Z1VuaW9uIjpNdD1ZZS5wb3AoKSx4dD1ZZS5wb3AoKSxZZS5wdXNoKHh0KyIsIitNdCk7YnJlYWs7Y2FzZSJQdGdSYW5nZSI6TXQ9WWUucG9wKCkseHQ9WWUucG9wKCksWWUu''@;'; put 'put ''cHVzaCh4dCsiOiIrTXQpO2JyZWFrO2Nhc2UiUHRnQXR0ckNob29zZSI6Y2FzZSJQdGdBdHRyR290byI6Y2FzZSJQdGdBdHRySWYiOmNhc2UiUHRnQXR0cklmRXJyb3IiOmNhc2UiUHRnQXR0ckJheGNlbCI6Y2FzZSJQdGdBdHRyU2VtaSI6Y2FzZSJQdGdNZW1BcmVhIjpjYXNlIlB0Z1RibCI6''@;'; put 'put ''Y2FzZSJQdGdNZW1FcnIiOmNhc2UiUHRnTWVtQXJlYU4iOmNhc2UiUHRnTWVtTm9NZW1OIjpjYXNlIlB0Z0F0dHJOb29wIjpjYXNlIlB0Z1NoZWV0IjpjYXNlIlB0Z0VuZFNoZWV0IjpjYXNlIlB0Z01lbUZ1bmMiOmNhc2UiUHRnTWVtTm9NZW0iOmJyZWFrO2Nhc2UiUHRnUmVmIjpSdD11MShZ''@;'; put 'put ''blsxXVsxXSxqZSx4ZSksWWUucHVzaChwMyhSdCxaZSkpO2JyZWFrO2Nhc2UiUHRnUmVmTiI6UnQ9WD91MShZblsxXVsxXSxYLHhlKTpZblsxXVsxXSxZZS5wdXNoKHAzKFJ0LFplKSk7YnJlYWs7Y2FzZSJQdGdSZWYzZCI6VXQ9WW5bMV1bMV0sUnQ9dTEoWW5bMV1bMl0samUseGUpLER0PWxf''@;'; put 'put ''KHdlLFV0LHhlKSxZZS5wdXNoKER0KyIhIitwMyhSdCxaZSkpO2JyZWFrO2Nhc2UiUHRnRnVuYyI6Y2FzZSJQdGdGdW5jVmFyIjp2YXIgYWk9WW5bMV1bMF0seXI9WW5bMV1bMV07YWl8fChhaT0wKTt2YXIgYXI9MD09KGFpJj0xMjcpP1tdOlllLnNsaWNlKC1haSk7WWUubGVuZ3RoLT1haSwi''@;'; put 'put ''VXNlciI9PT15ciYmKHlyPWFyLnNoaWZ0KCkpLFllLnB1c2goeXIrIigiK2FyLmpvaW4oIiwiKSsiKSIpO2JyZWFrO2Nhc2UiUHRnQm9vbCI6WWUucHVzaChZblsxXT8iVFJVRSI6IkZBTFNFIik7YnJlYWs7Y2FzZSJQdGdJbnQiOmNhc2UiUHRnTnVtIjpZZS5wdXNoKFN0cmluZyhZblsxXSkp''@;'; put 'put ''O2JyZWFrO2Nhc2UiUHRnU3RyIjpZZS5wdXNoKCciJytZblsxXS5yZXBsYWNlKC8iL2csJyIiJykrJyInKTticmVhaztjYXNlIlB0Z0VyciI6WWUucHVzaChZblsxXSk7YnJlYWs7Y2FzZSJQdGdBcmVhTiI6Q249bWwoWW5bMV1bMV0sWD97czpYfTpqZSx4ZSksWWUucHVzaChZdShDbix4ZSkp''@;'; put 'put ''O2JyZWFrO2Nhc2UiUHRnQXJlYSI6Q249bWwoWW5bMV1bMV0samUseGUpLFllLnB1c2goWXUoQ24seGUpKTticmVhaztjYXNlIlB0Z0FyZWEzZCI6VXQ9WW5bMV1bMV0sQ249bWwoWW5bMV1bMl0samUseGUpLER0PWxfKHdlLFV0LHhlKSxZZS5wdXNoKER0KyIhIitZdShDbix4ZSkpO2JyZWFr''@;'; put 'put ''O2Nhc2UiUHRnQXR0clN1bSI6WWUucHVzaCgiU1VNKCIrWWUucG9wKCkrIikiKTticmVhaztjYXNlIlB0Z05hbWUiOnZhciBHcj0od2UubmFtZXN8fFtdKVsobm49WW5bMV1bMl0pLTFdfHwod2VbMF18fFtdKVtubl0senI9R3I/R3IuTmFtZToiU0gzM1RKU05BTUUiK1N0cmluZyhubik7enIg''@;'; put 'put ''aW4gYXgmJih6cj1heFt6cl0pLFllLnB1c2goenIpO2JyZWFrO2Nhc2UiUHRnTmFtZVgiOnZhciBvaSxxcj1ZblsxXVsxXTtpZihubj1ZblsxXVsyXSwhKHhlLmJpZmY8PTUpKXt2YXIgY3I9IiI7aWYoMTQ4NDk9PSgod2VbcXJdfHxbXSlbMF18fFtdKVswXXx8KDEwMjU9PSgod2VbcXJdfHxb''@;'; put 'put ''XSlbMF18fFtdKVswXT93ZVtxcl1bbm5dJiZ3ZVtxcl1bbm5dLml0YWI+MCYmKGNyPXdlLlNoZWV0TmFtZXNbd2VbcXJdW25uXS5pdGFiLTFdKyIhIik6Y3I9d2UuU2hlZXROYW1lc1tubi0xXSsiISIpLHdlW3FyXSYmd2VbcXJdW25uXSljcis9d2VbcXJdW25uXS5OYW1lO2Vsc2UgaWYod2Vb''@;'; put 'put ''MF0mJndlWzBdW25uXSljcis9d2VbMF1bbm5dLk5hbWU7ZWxzZXt2YXIgdjA9KG54KHdlLHFyLHhlKXx8IiIpLnNwbGl0KCI7OyIpO3YwW25uLTFdP2NyPXYwW25uLTFdOmNyKz0iU0gzM1RKU0VSUlgifVllLnB1c2goY3IpO2JyZWFrfXFyPDAmJihxcj0tcXIpLHdlW3FyXSYmKG9pPXdlW3Fy''@;'; put 'put ''XVtubl0pLG9pfHwob2k9e05hbWU6IlNIMzNUSlNFUlJZIn0pLFllLnB1c2gob2kuTmFtZSk7YnJlYWs7Y2FzZSJQdGdQYXJlbiI6dmFyIFVpPSIoIix0bz0iKSI7aWYoenQ+PTApe3N3aXRjaChQbj0iIixIWzBdW3p0XVsxXVswXSl7Y2FzZSAyOlVpPWVyKCIgIixIWzBdW3p0XVsxXVsxXSkr''@;'; put 'put ''VWk7YnJlYWs7Y2FzZSAzOlVpPWVyKCJcciIsSFswXVt6dF1bMV1bMV0pK1VpO2JyZWFrO2Nhc2UgNDp0bz1lcigiICIsSFswXVt6dF1bMV1bMV0pK3RvO2JyZWFrO2Nhc2UgNTp0bz1lcigiXHIiLEhbMF1benRdWzFdWzFdKSt0bzticmVhaztkZWZhdWx0OmlmKHhlLldURil0aHJvdyBuZXcg''@;'; put 'put ''RXJyb3IoIlVuZXhwZWN0ZWQgUHRnQXR0clNwYWNlVHlwZSAiK0hbMF1benRdWzFdWzBdKX16dD0tMX1ZZS5wdXNoKFVpK1llLnBvcCgpK3RvKTticmVhaztjYXNlIlB0Z1JlZkVyciI6Y2FzZSJQdGdBcmVhRXJyIjpjYXNlIlB0Z0FyZWFFcnIzZCI6Y2FzZSJQdGdSZWZFcnIzZCI6WWUucHVz''@;'; put 'put ''aCgiI1JFRiEiKTticmVhaztjYXNlIlB0Z0V4cCI6dmFyIGJpPXtjOlguYyxyOlgucn07aWYod2Uuc2hhcmVkZltZMChSdD17YzpZblsxXVsxXSxyOlluWzFdWzBdfSldKXt2YXIgWXI9d2Uuc2hhcmVkZltZMChSdCldO1llLnB1c2goVzEoWXIsamUsYmksd2UseGUpKX1lbHNle3ZhciBFaT0h''@;'; put 'put ''MTtmb3IoTXQ9MDtNdCE9d2UuYXJyYXlmLmxlbmd0aDsrK010KWlmKCEoUnQuYzwoeHQ9d2UuYXJyYXlmW010XSlbMF0ucy5jfHxSdC5jPnh0WzBdLmUuY3x8UnQucjx4dFswXS5zLnJ8fFJ0LnI+eHRbMF0uZS5yKSl7WWUucHVzaChXMSh4dFsxXSxqZSxiaSx3ZSx4ZSkpLEVpPSEwO2JyZWFr''@;'; put 'put ''fUVpfHxZZS5wdXNoKFluWzFdKX1icmVhaztjYXNlIlB0Z0FycmF5IjpZZS5wdXNoKCJ7IithXyhZblsxXSkrIn0iKTticmVhaztjYXNlIlB0Z0F0dHJTcGFjZSI6Y2FzZSJQdGdBdHRyU3BhY2VTZW1pIjp6dD1UbjticmVhaztjYXNlIlB0Z01pc3NBcmciOlllLnB1c2goIiIpO2JyZWFrO2Nh''@;'; put 'put ''c2UiUHRnTGlzdCI6WWUucHVzaCgiVGFibGUiK1luWzFdLmlkeCsiWyMiK1luWzFdLnJ0KyJdIik7YnJlYWs7Y2FzZSJQdGdFbGZDb2wiOmNhc2UiUHRnRWxmQ29sUyI6Y2FzZSJQdGdFbGZDb2xTViI6Y2FzZSJQdGdFbGZDb2xWIjpjYXNlIlB0Z0VsZkxlbCI6Y2FzZSJQdGdFbGZSYWRpY2Fs''@;'; put 'put ''IjpjYXNlIlB0Z0VsZlJhZGljYWxMZWwiOmNhc2UiUHRnRWxmUmFkaWNhbFMiOmNhc2UiUHRnRWxmUnciOmNhc2UiUHRnRWxmUndWIjp0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIEVMRnMiKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIEZvcm11bGEgVG9rZW46''@;'; put 'put ''ICIrU3RyaW5nKFluKSl9aWYoMyE9eGUuYmlmZiYmenQ+PTAmJi0xPT1bIlB0Z0F0dHJTcGFjZSIsIlB0Z0F0dHJTcGFjZVNlbWkiLCJQdGdBdHRyR290byJdLmluZGV4T2YoSFswXVtUbl1bMF0pKXt2YXIgTnI9ITA7c3dpdGNoKChZbj1IWzBdW3p0XSlbMV1bMF0pe2Nhc2UgNDpOcj0hMTtj''@;'; put 'put ''YXNlIDA6UG49ZXIoIiAiLFluWzFdWzFdKTticmVhaztjYXNlIDU6TnI9ITE7Y2FzZSAxOlBuPWVyKCJcciIsWW5bMV1bMV0pO2JyZWFrO2RlZmF1bHQ6aWYoUG49IiIseGUuV1RGKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCBQdGdBdHRyU3BhY2VUeXBlICIrWW5bMV1bMF0pfVllLnB1''@;'; put 'put ''c2goKE5yP1BuOiIiKStZZS5wb3AoKSsoTnI/IiI6UG4pKSx6dD0tMX19aWYoWWUubGVuZ3RoPjEmJnhlLldURil0aHJvdyBuZXcgRXJyb3IoImJhZCBmb3JtdWxhIHN0YWNrIik7cmV0dXJuIFllWzBdfWZ1bmN0aW9uIGhHKEgsaWUsWCl7dmFyIEZlLHdlPUgubCtpZSx4ZT0yPT1YLmJpZmY/''@;'; put 'put ''MToyLFplPUgucmVhZF9zaGlmdCh4ZSk7aWYoNjU1MzU9PVplKXJldHVybltbXSxDcyhILGllLTIpXTt2YXIgamU9ajQoSCxaZSxYKTtyZXR1cm4gaWUhPT1aZSt4ZSYmKEZlPUxkKEgsaWUtWmUteGUsamUsWCkpLEgubD13ZSxbamUsRmVdfWZ1bmN0aW9uIHM1KEgsaWUsWCl7dmFyIHhlLHdl''@;'; put 'put ''PUgubCtpZSxGZT1ILnJlYWRfc2hpZnQoMiksWmU9ajQoSCxGZSxYKTtyZXR1cm4gNjU1MzU9PUZlP1tbXSxDcyhILGllLTIpXTooaWUhPT1GZSsyJiYoeGU9TGQoSCx3ZS1GZS0yLFplLFgpKSxbWmUseGVdKX1mdW5jdGlvbiB1NShILGllLFgpe3ZhciB3ZT1ILmwraWUseGU9QWMoSCk7Mj09''@;'; put 'put ''WC5iaWZmJiYrK0gubDt2YXIgRmU9ZnVuY3Rpb24gcngoSCl7dmFyIGllO2lmKDY1NTM1IT09UHMoSCxILmwrNikpcmV0dXJuW0kyKEgpLCJuIl07c3dpdGNoKEhbSC5sXSl7Y2FzZSAwOnJldHVybiBILmwrPTgsWyJTdHJpbmciLCJzIl07Y2FzZSAxOnJldHVybiBpZT0xPT09SFtILmwrMl0s''@;'; put 'put ''SC5sKz04LFtpZSwiYiJdO2Nhc2UgMjpyZXR1cm4gaWU9SFtILmwrMl0sSC5sKz04LFtpZSwiZSJdO2Nhc2UgMzpyZXR1cm4gSC5sKz04LFsiIiwicyJdfXJldHVybltdfShIKSxaZT1ILnJlYWRfc2hpZnQoMSk7MiE9WC5iaWZmJiYoSC5yZWFkX3NoaWZ0KDEpLFguYmlmZj49NSYmSC5yZWFk''@;'; put 'put ''X3NoaWZ0KDQpKTt2YXIgamU9ZnVuY3Rpb24geG0oSCxpZSxYKXt2YXIgRmUsd2U9SC5sK2llLHhlPTI9PVguYmlmZj8xOjIsWmU9SC5yZWFkX3NoaWZ0KHhlKTtpZig2NTUzNT09WmUpcmV0dXJuW1tdLENzKEgsaWUtMildO3ZhciBqZT1qNChILFplLFgpO3JldHVybiBpZSE9PVplK3hlJiYo''@;'; put 'put ''RmU9TGQoSCxpZS1aZS14ZSxqZSxYKSksSC5sPXdlLFtqZSxGZV19KEgsd2UtSC5sLFgpO3JldHVybntjZWxsOnhlLHZhbDpGZVswXSxmb3JtdWxhOmplLHNoYXJlZDpaZT4+MyYxLHR0OkZlWzFdfX1mdW5jdGlvbiByQShILGllLFgpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoNCkseGU9ajQoSCx3''@;'; put 'put ''ZSxYKSxGZT1ILnJlYWRfc2hpZnQoNCk7cmV0dXJuW3hlLEZlPjA/TGQoSCxGZSx4ZSxYLCEwKTpudWxsXX12YXIgcEc9ckEsc189ckEsWkI9ckEsekI9ZnVuY3Rpb24gSmYoSCxpZSxYKXt2YXIgd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPUgucmVhZF9zaGlmdCg0KSxGZT1qNChILHdlLFgpO3Jl''@;'; put 'put ''dHVybltGZSx4ZT4wP0xkKEgseGUsRmUsWCwhMCk6bnVsbF19LGdHPXJBLG1HPXJBO2Z1bmN0aW9uIGl4KEgpe2lmKCgwfEgpPT1IJiZIPE1hdGgucG93KDIsMTYpJiZIPj0wKXt2YXIgaWU9UmkoMTEpO3JldHVybiBpZS53cml0ZV9zaGlmdCg0LDMpLGllLndyaXRlX3NoaWZ0KDEsMzApLGll''@;'; put 'put ''LndyaXRlX3NoaWZ0KDIsSCksaWUud3JpdGVfc2hpZnQoNCwwKSxpZX12YXIgWD1SaSgxNyk7cmV0dXJuIFgud3JpdGVfc2hpZnQoNCwxMSksWC53cml0ZV9zaGlmdCgxLDMxKSxYLndyaXRlX3NoaWZ0KDgsSCksWC53cml0ZV9zaGlmdCg0LDApLFh9ZnVuY3Rpb24gaUEoSCl7dmFyIGllPVJp''@;'; put 'put ''KDcpO2llLndyaXRlX3NoaWZ0KDQsMysyKkgubGVuZ3RoKSxpZS53cml0ZV9zaGlmdCgxLDIzKSxpZS53cml0ZV9zaGlmdCgyLEgubGVuZ3RoKTt2YXIgWD1SaSgyKkgubGVuZ3RoKTtYLndyaXRlX3NoaWZ0KDIqSC5sZW5ndGgsSCwidXRmMTZsZSIpO3ZhciB3ZT1SaSg0KTtyZXR1cm4gd2Uu''@;'; put 'put ''d3JpdGVfc2hpZnQoNCwwKSxWKFtpZSxYLHdlXSl9ZnVuY3Rpb24gVG0oSCl7aWYoSC5tYXRjaCgvXiMoRElWXC8wIXxHRVRUSU5HX0RBVEF8TlwvQXxOQU1FXD98TlVMTCF8TlVNIXxSRUYhfFZBTFVFISkkLykpcmV0dXJuIGZ1bmN0aW9uIFo0KEgpe3ZhciBpZT1SaSgxMCk7cmV0dXJuIGll''@;'; put 'put ''LndyaXRlX3NoaWZ0KDQsMiksaWUud3JpdGVfc2hpZnQoMSwyOCksaWUud3JpdGVfc2hpZnQoMSxIKSxpZS53cml0ZV9zaGlmdCg0LDApLGllfSgrX2hbSF0pO2lmKEgubWF0Y2goL15cJD8oPzpbQS1XXVtBLVpdezJ9fFhbQS1FXVtBLVpdfFhGW0EtRF18W0EtWl17MSwyfSlcJD8oPzoxMFsw''@;'; put 'put ''LTNdXGR7NH18MTA0WzAtN11cZHszfXwxMDQ4WzAtNF1cZHsyfXwxMDQ4NVswLTZdXGR8MTA0ODU3WzAtNl18WzEtOV1cZHswLDV9KSQvKSlyZXR1cm4gZnVuY3Rpb24gb3goSCl7dmFyIGllPXVsKEgpLFg9UmkoMTUpO3JldHVybiBYLndyaXRlX3NoaWZ0KDQsNyksWC53cml0ZV9zaGlmdCgx''@;'; put 'put ''LDM2KSxYLndyaXRlX3NoaWZ0KDQsaWUuciksWC53cml0ZV9zaGlmdCgyLGllLmN8KCIkIj09SC5jaGFyQXQoMCk/MDoxKTw8MTR8KEgubWF0Y2goL1wkXGQvKT8wOjEpPDwxNSksWC53cml0ZV9zaGlmdCg0LDApLFh9KEgpO2lmKEgubWF0Y2goL14iLioiJC8pKXJldHVybiBpQShIKTt0aHJv''@;'; put 'put ''dyJGb3JtdWxhIHwiK0grInwgbm90IHN1cHBvcnRlZCBmb3IgWExTQiJ9dmFyIHVfPXswOiJCRUVQIiwxOiJPUEVOIiwyOiJPUEVOLkxJTktTIiwzOiJDTE9TRS5BTEwiLDQ6IlNBVkUiLDU6IlNBVkUuQVMiLDY6IkZJTEUuREVMRVRFIiw3OiJQQUdFLlNFVFVQIiw4OiJQUklOVCIsOToiUFJJ''@;'; put 'put ''TlRFUi5TRVRVUCIsMTA6IlFVSVQiLDExOiJORVcuV0lORE9XIiwxMjoiQVJSQU5HRS5BTEwiLDEzOiJXSU5ET1cuU0laRSIsMTQ6IldJTkRPVy5NT1ZFIiwxNToiRlVMTCIsMTY6IkNMT1NFIiwxNzoiUlVOIiwyMjoiU0VULlBSSU5ULkFSRUEiLDIzOiJTRVQuUFJJTlQuVElUTEVTIiwyNDoi''@;'; put 'put ''U0VULlBBR0UuQlJFQUsiLDI1OiJSRU1PVkUuUEFHRS5CUkVBSyIsMjY6IkZPTlQiLDI3OiJESVNQTEFZIiwyODoiUFJPVEVDVC5ET0NVTUVOVCIsMjk6IlBSRUNJU0lPTiIsMzA6IkExLlIxQzEiLDMxOiJDQUxDVUxBVEUuTk9XIiwzMjoiQ0FMQ1VMQVRJT04iLDM0OiJEQVRBLkZJTkQiLDM1''@;'; put 'put ''OiJFWFRSQUNUIiwzNjoiREFUQS5ERUxFVEUiLDM3OiJTRVQuREFUQUJBU0UiLDM4OiJTRVQuQ1JJVEVSSUEiLDM5OiJTT1JUIiw0MDoiREFUQS5TRVJJRVMiLDQxOiJUQUJMRSIsNDI6IkZPUk1BVC5OVU1CRVIiLDQzOiJBTElHTk1FTlQiLDQ0OiJTVFlMRSIsNDU6IkJPUkRFUiIsNDY6IkNF''@;'; put 'put ''TEwuUFJPVEVDVElPTiIsNDc6IkNPTFVNTi5XSURUSCIsNDg6IlVORE8iLDQ5OiJDVVQiLDUwOiJDT1BZIiw1MToiUEFTVEUiLDUyOiJDTEVBUiIsNTM6IlBBU1RFLlNQRUNJQUwiLDU0OiJFRElULkRFTEVURSIsNTU6IklOU0VSVCIsNTY6IkZJTEwuUklHSFQiLDU3OiJGSUxMLkRPV04iLDYx''@;'; put 'put ''OiJERUZJTkUuTkFNRSIsNjI6IkNSRUFURS5OQU1FUyIsNjM6IkZPUk1VTEEuR09UTyIsNjQ6IkZPUk1VTEEuRklORCIsNjU6IlNFTEVDVC5MQVNULkNFTEwiLDY2OiJTSE9XLkFDVElWRS5DRUxMIiw2NzoiR0FMTEVSWS5BUkVBIiw2ODoiR0FMTEVSWS5CQVIiLDY5OiJHQUxMRVJZLkNPTFVN''@;'; put 'put ''TiIsNzA6IkdBTExFUlkuTElORSIsNzE6IkdBTExFUlkuUElFIiw3MjoiR0FMTEVSWS5TQ0FUVEVSIiw3MzoiQ09NQklOQVRJT04iLDc0OiJQUkVGRVJSRUQiLDc1OiJBREQuT1ZFUkxBWSIsNzY6IkdSSURMSU5FUyIsNzc6IlNFVC5QUkVGRVJSRUQiLDc4OiJBWEVTIiw3OToiTEVHRU5EIiw4''@;'; put 'put ''MDoiQVRUQUNILlRFWFQiLDgxOiJBREQuQVJST1ciLDgyOiJTRUxFQ1QuQ0hBUlQiLDgzOiJTRUxFQ1QuUExPVC5BUkVBIiw4NDoiUEFUVEVSTlMiLDg1OiJNQUlOLkNIQVJUIiw4NjoiT1ZFUkxBWSIsODc6IlNDQUxFIiw4ODoiRk9STUFULkxFR0VORCIsODk6IkZPUk1BVC5URVhUIiw5MDoi''@;'; put 'put ''RURJVC5SRVBFQVQiLDkxOiJQQVJTRSIsOTI6IkpVU1RJRlkiLDkzOiJISURFIiw5NDoiVU5ISURFIiw5NToiV09SS1NQQUNFIiw5NjoiRk9STVVMQSIsOTc6IkZPUk1VTEEuRklMTCIsOTg6IkZPUk1VTEEuQVJSQVkiLDk5OiJEQVRBLkZJTkQuTkVYVCIsMTAwOiJEQVRBLkZJTkQuUFJFViIs''@;'; put 'put ''MTAxOiJGT1JNVUxBLkZJTkQuTkVYVCIsMTAyOiJGT1JNVUxBLkZJTkQuUFJFViIsMTAzOiJBQ1RJVkFURSIsMTA0OiJBQ1RJVkFURS5ORVhUIiwxMDU6IkFDVElWQVRFLlBSRVYiLDEwNjoiVU5MT0NLRUQuTkVYVCIsMTA3OiJVTkxPQ0tFRC5QUkVWIiwxMDg6IkNPUFkuUElDVFVSRSIsMTA5''@;'; put 'put ''OiJTRUxFQ1QiLDExMDoiREVMRVRFLk5BTUUiLDExMToiREVMRVRFLkZPUk1BVCIsMTEyOiJWTElORSIsMTEzOiJITElORSIsMTE0OiJWUEFHRSIsMTE1OiJIUEFHRSIsMTE2OiJWU0NST0xMIiwxMTc6IkhTQ1JPTEwiLDExODoiQUxFUlQiLDExOToiTkVXIiwxMjA6IkNBTkNFTC5DT1BZIiwx''@;'; put 'put ''MjE6IlNIT1cuQ0xJUEJPQVJEIiwxMjI6Ik1FU1NBR0UiLDEyNDoiUEFTVEUuTElOSyIsMTI1OiJBUFAuQUNUSVZBVEUiLDEyNjoiREVMRVRFLkFSUk9XIiwxMjc6IlJPVy5IRUlHSFQiLDEyODoiRk9STUFULk1PVkUiLDEyOToiRk9STUFULlNJWkUiLDEzMDoiRk9STVVMQS5SRVBMQUNFIiwx''@;'; put 'put ''MzE6IlNFTkQuS0VZUyIsMTMyOiJTRUxFQ1QuU1BFQ0lBTCIsMTMzOiJBUFBMWS5OQU1FUyIsMTM0OiJSRVBMQUNFLkZPTlQiLDEzNToiRlJFRVpFLlBBTkVTIiwxMzY6IlNIT1cuSU5GTyIsMTM3OiJTUExJVCIsMTM4OiJPTi5XSU5ET1ciLDEzOToiT04uREFUQSIsMTQwOiJESVNBQkxFLklO''@;'; put 'put ''UFVUIiwxNDI6Ik9VVExJTkUiLDE0MzoiTElTVC5OQU1FUyIsMTQ0OiJGSUxFLkNMT1NFIiwxNDU6IlNBVkUuV09SS0JPT0siLDE0NjoiREFUQS5GT1JNIiwxNDc6IkNPUFkuQ0hBUlQiLDE0ODoiT04uVElNRSIsMTQ5OiJXQUlUIiwxNTA6IkZPUk1BVC5GT05UIiwxNTE6IkZJTEwuVVAiLDE1''@;'; put 'put ''MjoiRklMTC5MRUZUIiwxNTM6IkRFTEVURS5PVkVSTEFZIiwxNTU6IlNIT1JULk1FTlVTIiwxNTk6IlNFVC5VUERBVEUuU1RBVFVTIiwxNjE6IkNPTE9SLlBBTEVUVEUiLDE2MjoiREVMRVRFLlNUWUxFIiwxNjM6IldJTkRPVy5SRVNUT1JFIiwxNjQ6IldJTkRPVy5NQVhJTUlaRSIsMTY2OiJD''@;'; put 'put ''SEFOR0UuTElOSyIsMTY3OiJDQUxDVUxBVEUuRE9DVU1FTlQiLDE2ODoiT04uS0VZIiwxNjk6IkFQUC5SRVNUT1JFIiwxNzA6IkFQUC5NT1ZFIiwxNzE6IkFQUC5TSVpFIiwxNzI6IkFQUC5NSU5JTUlaRSIsMTczOiJBUFAuTUFYSU1JWkUiLDE3NDoiQlJJTkcuVE8uRlJPTlQiLDE3NToiU0VO''@;'; put 'put ''RC5UTy5CQUNLIiwxODU6Ik1BSU4uQ0hBUlQuVFlQRSIsMTg2OiJPVkVSTEFZLkNIQVJULlRZUEUiLDE4NzoiU0VMRUNULkVORCIsMTg4OiJPUEVOLk1BSUwiLDE4OToiU0VORC5NQUlMIiwxOTA6IlNUQU5EQVJELkZPTlQiLDE5MToiQ09OU09MSURBVEUiLDE5MjoiU09SVC5TUEVDSUFMIiwx''@;'; put 'put ''OTM6IkdBTExFUlkuM0QuQVJFQSIsMTk0OiJHQUxMRVJZLjNELkNPTFVNTiIsMTk1OiJHQUxMRVJZLjNELkxJTkUiLDE5NjoiR0FMTEVSWS4zRC5QSUUiLDE5NzoiVklFVy4zRCIsMTk4OiJHT0FMLlNFRUsiLDE5OToiV09SS0dST1VQIiwyMDA6IkZJTEwuR1JPVVAiLDIwMToiVVBEQVRFLkxJ''@;'; put 'put ''TksiLDIwMjoiUFJPTU9URSIsMjAzOiJERU1PVEUiLDIwNDoiU0hPVy5ERVRBSUwiLDIwNjoiVU5HUk9VUCIsMjA3OiJPQkpFQ1QuUFJPUEVSVElFUyIsMjA4OiJTQVZFLk5FVy5PQkpFQ1QiLDIwOToiU0hBUkUiLDIxMDoiU0hBUkUuTkFNRSIsMjExOiJEVVBMSUNBVEUiLDIxMjoiQVBQTFku''@;'; put 'put ''U1RZTEUiLDIxMzoiQVNTSUdOLlRPLk9CSkVDVCIsMjE0OiJPQkpFQ1QuUFJPVEVDVElPTiIsMjE1OiJISURFLk9CSkVDVCIsMjE2OiJTRVQuRVhUUkFDVCIsMjE3OiJDUkVBVEUuUFVCTElTSEVSIiwyMTg6IlNVQlNDUklCRS5UTyIsMjE5OiJBVFRSSUJVVEVTIiwyMjA6IlNIT1cuVE9PTEJB''@;'; put 'put ''UiIsMjIyOiJQUklOVC5QUkVWSUVXIiwyMjM6IkVESVQuQ09MT1IiLDIyNDoiU0hPVy5MRVZFTFMiLDIyNToiRk9STUFULk1BSU4iLDIyNjoiRk9STUFULk9WRVJMQVkiLDIyNzoiT04uUkVDQUxDIiwyMjg6IkVESVQuU0VSSUVTIiwyMjk6IkRFRklORS5TVFlMRSIsMjQwOiJMSU5FLlBSSU5U''@;'; put 'put ''IiwyNDM6IkVOVEVSLkRBVEEiLDI0OToiR0FMTEVSWS5SQURBUiIsMjUwOiJNRVJHRS5TVFlMRVMiLDI1MToiRURJVElPTi5PUFRJT05TIiwyNTI6IlBBU1RFLlBJQ1RVUkUiLDI1MzoiUEFTVEUuUElDVFVSRS5MSU5LIiwyNTQ6IlNQRUxMSU5HIiwyNTY6IlpPT00iLDI1OToiSU5TRVJULk9C''@;'; put 'put ''SkVDVCIsMjYwOiJXSU5ET1cuTUlOSU1JWkUiLDI2NToiU09VTkQuTk9URSIsMjY2OiJTT1VORC5QTEFZIiwyNjc6IkZPUk1BVC5TSEFQRSIsMjY4OiJFWFRFTkQuUE9MWUdPTiIsMjY5OiJGT1JNQVQuQVVUTyIsMjcyOiJHQUxMRVJZLjNELkJBUiIsMjczOiJHQUxMRVJZLjNELlNVUkZBQ0Ui''@;'; put 'put ''LDI3NDoiRklMTC5BVVRPIiwyNzY6IkNVU1RPTUlaRS5UT09MQkFSIiwyNzc6IkFERC5UT09MIiwyNzg6IkVESVQuT0JKRUNUIiwyNzk6Ik9OLkRPVUJMRUNMSUNLIiwyODA6Ik9OLkVOVFJZIiwyODE6IldPUktCT09LLkFERCIsMjgyOiJXT1JLQk9PSy5NT1ZFIiwyODM6IldPUktCT09LLkNP''@;'; put 'put ''UFkiLDI4NDoiV09SS0JPT0suT1BUSU9OUyIsMjg1OiJTQVZFLldPUktTUEFDRSIsMjg4OiJDSEFSVC5XSVpBUkQiLDI4OToiREVMRVRFLlRPT0wiLDI5MDoiTU9WRS5UT09MIiwyOTE6IldPUktCT09LLlNFTEVDVCIsMjkyOiJXT1JLQk9PSy5BQ1RJVkFURSIsMjkzOiJBU1NJR04uVE8uVE9P''@;'; put 'put ''TCIsMjk1OiJDT1BZLlRPT0wiLDI5NjoiUkVTRVQuVE9PTCIsMjk3OiJDT05TVFJBSU4uTlVNRVJJQyIsMjk4OiJQQVNURS5UT09MIiwzMDI6IldPUktCT09LLk5FVyIsMzA1OiJTQ0VOQVJJTy5DRUxMUyIsMzA2OiJTQ0VOQVJJTy5ERUxFVEUiLDMwNzoiU0NFTkFSSU8uQUREIiwzMDg6IlND''@;'; put 'put ''RU5BUklPLkVESVQiLDMwOToiU0NFTkFSSU8uU0hPVyIsMzEwOiJTQ0VOQVJJTy5TSE9XLk5FWFQiLDMxMToiU0NFTkFSSU8uU1VNTUFSWSIsMzEyOiJQSVZPVC5UQUJMRS5XSVpBUkQiLDMxMzoiUElWT1QuRklFTEQuUFJPUEVSVElFUyIsMzE0OiJQSVZPVC5GSUVMRCIsMzE1OiJQSVZPVC5J''@;'; put 'put ''VEVNIiwzMTY6IlBJVk9ULkFERC5GSUVMRFMiLDMxODoiT1BUSU9OUy5DQUxDVUxBVElPTiIsMzE5OiJPUFRJT05TLkVESVQiLDMyMDoiT1BUSU9OUy5WSUVXIiwzMjE6IkFERElOLk1BTkFHRVIiLDMyMjoiTUVOVS5FRElUT1IiLDMyMzoiQVRUQUNILlRPT0xCQVJTIiwzMjQ6IlZCQUFjdGl2''@;'; put 'put ''YXRlIiwzMjU6Ik9QVElPTlMuQ0hBUlQiLDMyODoiVkJBLklOU0VSVC5GSUxFIiwzMzA6IlZCQS5QUk9DRURVUkUuREVGSU5JVElPTiIsMzM2OiJST1VUSU5HLlNMSVAiLDMzODoiUk9VVEUuRE9DVU1FTlQiLDMzOToiTUFJTC5MT0dPTiIsMzQyOiJJTlNFUlQuUElDVFVSRSIsMzQzOiJFRElU''@;'; put 'put ''LlRPT0wiLDM0NDoiR0FMTEVSWS5ET1VHSE5VVCIsMzUwOiJDSEFSVC5UUkVORCIsMzUyOiJQSVZPVC5JVEVNLlBST1BFUlRJRVMiLDM1NDoiV09SS0JPT0suSU5TRVJUIiwzNTU6Ik9QVElPTlMuVFJBTlNJVElPTiIsMzU2OiJPUFRJT05TLkdFTkVSQUwiLDM3MDoiRklMVEVSLkFEVkFOQ0VE''@;'; put 'put ''IiwzNzM6Ik1BSUwuQURELk1BSUxFUiIsMzc0OiJNQUlMLkRFTEVURS5NQUlMRVIiLDM3NToiTUFJTC5SRVBMWSIsMzc2OiJNQUlMLlJFUExZLkFMTCIsMzc3OiJNQUlMLkZPUldBUkQiLDM3ODoiTUFJTC5ORVhULkxFVFRFUiIsMzc5OiJEQVRBLkxBQkVMIiwzODA6IklOU0VSVC5USVRMRSIs''@;'; put 'put ''MzgxOiJGT05ULlBST1BFUlRJRVMiLDM4MjoiTUFDUk8uT1BUSU9OUyIsMzgzOiJXT1JLQk9PSy5ISURFIiwzODQ6IldPUktCT09LLlVOSElERSIsMzg1OiJXT1JLQk9PSy5ERUxFVEUiLDM4NjoiV09SS0JPT0suTkFNRSIsMzg4OiJHQUxMRVJZLkNVU1RPTSIsMzkwOiJBREQuQ0hBUlQuQVVU''@;'; put 'put ''T0ZPUk1BVCIsMzkxOiJERUxFVEUuQ0hBUlQuQVVUT0ZPUk1BVCIsMzkyOiJDSEFSVC5BREQuREFUQSIsMzkzOiJBVVRPLk9VVExJTkUiLDM5NDoiVEFCLk9SREVSIiwzOTU6IlNIT1cuRElBTE9HIiwzOTY6IlNFTEVDVC5BTEwiLDM5NzoiVU5HUk9VUC5TSEVFVFMiLDM5ODoiU1VCVE9UQUwu''@;'; put 'put ''Q1JFQVRFIiwzOTk6IlNVQlRPVEFMLlJFTU9WRSIsNDAwOiJSRU5BTUUuT0JKRUNUIiw0MTI6IldPUktCT09LLlNDUk9MTCIsNDEzOiJXT1JLQk9PSy5ORVhUIiw0MTQ6IldPUktCT09LLlBSRVYiLDQxNToiV09SS0JPT0suVEFCLlNQTElUIiw0MTY6IkZVTEwuU0NSRUVOIiw0MTc6IldPUktC''@;'; put 'put ''T09LLlBST1RFQ1QiLDQyMDoiU0NST0xMQkFSLlBST1BFUlRJRVMiLDQyMToiUElWT1QuU0hPVy5QQUdFUyIsNDIyOiJURVhULlRPLkNPTFVNTlMiLDQyMzoiRk9STUFULkNIQVJUVFlQRSIsNDI0OiJMSU5LLkZPUk1BVCIsNDI1OiJUUkFDRVIuRElTUExBWSIsNDMwOiJUUkFDRVIuTkFWSUdB''@;'; put 'put ''VEUiLDQzMToiVFJBQ0VSLkNMRUFSIiw0MzI6IlRSQUNFUi5FUlJPUiIsNDMzOiJQSVZPVC5GSUVMRC5HUk9VUCIsNDM0OiJQSVZPVC5GSUVMRC5VTkdST1VQIiw0MzU6IkNIRUNLQk9YLlBST1BFUlRJRVMiLDQzNjoiTEFCRUwuUFJPUEVSVElFUyIsNDM3OiJMSVNUQk9YLlBST1BFUlRJRVMi''@;'; put 'put ''LDQzODoiRURJVEJPWC5QUk9QRVJUSUVTIiw0Mzk6IlBJVk9ULlJFRlJFU0giLDQ0MDoiTElOSy5DT01CTyIsNDQxOiJPUEVOLlRFWFQiLDQ0MjoiSElERS5ESUFMT0ciLDQ0MzoiU0VULkRJQUxPRy5GT0NVUyIsNDQ0OiJFTkFCTEUuT0JKRUNUIiw0NDU6IlBVU0hCVVRUT04uUFJPUEVSVElF''@;'; put 'put ''UyIsNDQ2OiJTRVQuRElBTE9HLkRFRkFVTFQiLDQ0NzoiRklMVEVSIiw0NDg6IkZJTFRFUi5TSE9XLkFMTCIsNDQ5OiJDTEVBUi5PVVRMSU5FIiw0NTA6IkZVTkNUSU9OLldJWkFSRCIsNDUxOiJBREQuTElTVC5JVEVNIiw0NTI6IlNFVC5MSVNULklURU0iLDQ1MzoiUkVNT1ZFLkxJU1QuSVRF''@;'; put 'put ''TSIsNDU0OiJTRUxFQ1QuTElTVC5JVEVNIiw0NTU6IlNFVC5DT05UUk9MLlZBTFVFIiw0NTY6IlNBVkUuQ09QWS5BUyIsNDU4OiJPUFRJT05TLkxJU1RTLkFERCIsNDU5OiJPUFRJT05TLkxJU1RTLkRFTEVURSIsNDYwOiJTRVJJRVMuQVhFUyIsNDYxOiJTRVJJRVMuWCIsNDYyOiJTRVJJRVMu''@;'; put 'put ''WSIsNDYzOiJFUlJPUkJBUi5YIiw0NjQ6IkVSUk9SQkFSLlkiLDQ2NToiRk9STUFULkNIQVJUIiw0NjY6IlNFUklFUy5PUkRFUiIsNDY3OiJNQUlMLkxPR09GRiIsNDY4OiJDTEVBUi5ST1VUSU5HLlNMSVAiLDQ2OToiQVBQLkFDVElWQVRFLk1JQ1JPU09GVCIsNDcwOiJNQUlMLkVESVQuTUFJ''@;'; put 'put ''TEVSIiw0NzE6Ik9OLlNIRUVUIiw0NzI6IlNUQU5EQVJELldJRFRIIiw0NzM6IlNDRU5BUklPLk1FUkdFIiw0NzQ6IlNVTU1BUlkuSU5GTyIsNDc1OiJGSU5ELkZJTEUiLDQ3NjoiQUNUSVZFLkNFTEwuRk9OVCIsNDc3OiJFTkFCTEUuVElQV0laQVJEIiw0Nzg6IlZCQS5NQUtFLkFERElOIiw0''@;'; put 'put ''ODA6IklOU0VSVERBVEFUQUJMRSIsNDgxOiJXT1JLR1JPVVAuT1BUSU9OUyIsNDgyOiJNQUlMLlNFTkQuTUFJTEVSIiw0ODU6IkFVVE9DT1JSRUNUIiw0ODk6IlBPU1QuRE9DVU1FTlQiLDQ5MToiUElDS0xJU1QiLDQ5MzoiVklFVy5TSE9XIiw0OTQ6IlZJRVcuREVGSU5FIiw0OTU6IlZJRVcu''@;'; put 'put ''REVMRVRFIiw1MDk6IlNIRUVULkJBQ0tHUk9VTkQiLDUxMDoiSU5TRVJULk1BUC5PQkpFQ1QiLDUxMToiT1BUSU9OUy5NRU5PTk8iLDUxNzoiTVNPQ0hFQ0tTIiw1MTg6Ik5PUk1BTCIsNTE5OiJMQVlPVVQiLDUyMDoiUk0uUFJJTlQuQVJFQSIsNTIxOiJDTEVBUi5QUklOVC5BUkVBIiw1MjI6''@;'; put 'put ''IkFERC5QUklOVC5BUkVBIiw1MjM6Ik1PVkUuQlJLIiw1NDU6IkhJREVDVVJSLk5PVEUiLDU0NjoiSElERUFMTC5OT1RFUyIsNTQ3OiJERUxFVEUuTk9URSIsNTQ4OiJUUkFWRVJTRS5OT1RFUyIsNTQ5OiJBQ1RJVkFURS5OT1RFUyIsNjIwOiJQUk9URUNULlJFVklTSU9OUyIsNjIxOiJVTlBS''@;'; put 'put ''T1RFQ1QuUkVWSVNJT05TIiw2NDc6Ik9QVElPTlMuTUUiLDY1MzoiV0VCLlBVQkxJU0giLDY2NzoiTkVXV0VCUVVFUlkiLDY3MzoiUElWT1QuVEFCTEUuQ0hBUlQiLDc1MzoiT1BUSU9OUy5TQVZFIiw3NTU6Ik9QVElPTlMuU1BFTEwiLDgwODoiSElERUFMTC5JTktBTk5PVFMifSxjNT17MDoi''@;'; put 'put ''Q09VTlQiLDE6IklGIiwyOiJJU05BIiwzOiJJU0VSUk9SIiw0OiJTVU0iLDU6IkFWRVJBR0UiLDY6Ik1JTiIsNzoiTUFYIiw4OiJST1ciLDk6IkNPTFVNTiIsMTA6Ik5BIiwxMToiTlBWIiwxMjoiU1RERVYiLDEzOiJET0xMQVIiLDE0OiJGSVhFRCIsMTU6IlNJTiIsMTY6IkNPUyIsMTc6IlRB''@;'; put 'put ''TiIsMTg6IkFUQU4iLDE5OiJQSSIsMjA6IlNRUlQiLDIxOiJFWFAiLDIyOiJMTiIsMjM6IkxPRzEwIiwyNDoiQUJTIiwyNToiSU5UIiwyNjoiU0lHTiIsMjc6IlJPVU5EIiwyODoiTE9PS1VQIiwyOToiSU5ERVgiLDMwOiJSRVBUIiwzMToiTUlEIiwzMjoiTEVOIiwzMzoiVkFMVUUiLDM0OiJU''@;'; put 'put ''UlVFIiwzNToiRkFMU0UiLDM2OiJBTkQiLDM3OiJPUiIsMzg6Ik5PVCIsMzk6Ik1PRCIsNDA6IkRDT1VOVCIsNDE6IkRTVU0iLDQyOiJEQVZFUkFHRSIsNDM6IkRNSU4iLDQ0OiJETUFYIiw0NToiRFNUREVWIiw0NjoiVkFSIiw0NzoiRFZBUiIsNDg6IlRFWFQiLDQ5OiJMSU5FU1QiLDUwOiJU''@;'; put 'put ''UkVORCIsNTE6IkxPR0VTVCIsNTI6IkdST1dUSCIsNTM6IkdPVE8iLDU0OiJIQUxUIiw1NToiUkVUVVJOIiw1NjoiUFYiLDU3OiJGViIsNTg6Ik5QRVIiLDU5OiJQTVQiLDYwOiJSQVRFIiw2MToiTUlSUiIsNjI6IklSUiIsNjM6IlJBTkQiLDY0OiJNQVRDSCIsNjU6IkRBVEUiLDY2OiJUSU1F''@;'; put 'put ''Iiw2NzoiREFZIiw2ODoiTU9OVEgiLDY5OiJZRUFSIiw3MDoiV0VFS0RBWSIsNzE6IkhPVVIiLDcyOiJNSU5VVEUiLDczOiJTRUNPTkQiLDc0OiJOT1ciLDc1OiJBUkVBUyIsNzY6IlJPV1MiLDc3OiJDT0xVTU5TIiw3ODoiT0ZGU0VUIiw3OToiQUJTUkVGIiw4MDoiUkVMUkVGIiw4MToiQVJH''@;'; put 'put ''VU1FTlQiLDgyOiJTRUFSQ0giLDgzOiJUUkFOU1BPU0UiLDg0OiJFUlJPUiIsODU6IlNURVAiLDg2OiJUWVBFIiw4NzoiRUNITyIsODg6IlNFVC5OQU1FIiw4OToiQ0FMTEVSIiw5MDoiREVSRUYiLDkxOiJXSU5ET1dTIiw5MjoiU0VSSUVTIiw5MzoiRE9DVU1FTlRTIiw5NDoiQUNUSVZFLkNF''@;'; put 'put ''TEwiLDk1OiJTRUxFQ1RJT04iLDk2OiJSRVNVTFQiLDk3OiJBVEFOMiIsOTg6IkFTSU4iLDk5OiJBQ09TIiwxMDA6IkNIT09TRSIsMTAxOiJITE9PS1VQIiwxMDI6IlZMT09LVVAiLDEwMzoiTElOS1MiLDEwNDoiSU5QVVQiLDEwNToiSVNSRUYiLDEwNjoiR0VULkZPUk1VTEEiLDEwNzoiR0VU''@;'; put 'put ''Lk5BTUUiLDEwODoiU0VULlZBTFVFIiwxMDk6IkxPRyIsMTEwOiJFWEVDIiwxMTE6IkNIQVIiLDExMjoiTE9XRVIiLDExMzoiVVBQRVIiLDExNDoiUFJPUEVSIiwxMTU6IkxFRlQiLDExNjoiUklHSFQiLDExNzoiRVhBQ1QiLDExODoiVFJJTSIsMTE5OiJSRVBMQUNFIiwxMjA6IlNVQlNUSVRV''@;'; put 'put ''VEUiLDEyMToiQ09ERSIsMTIyOiJOQU1FUyIsMTIzOiJESVJFQ1RPUlkiLDEyNDoiRklORCIsMTI1OiJDRUxMIiwxMjY6IklTRVJSIiwxMjc6IklTVEVYVCIsMTI4OiJJU05VTUJFUiIsMTI5OiJJU0JMQU5LIiwxMzA6IlQiLDEzMToiTiIsMTMyOiJGT1BFTiIsMTMzOiJGQ0xPU0UiLDEzNDoi''@;'; put 'put ''RlNJWkUiLDEzNToiRlJFQURMTiIsMTM2OiJGUkVBRCIsMTM3OiJGV1JJVEVMTiIsMTM4OiJGV1JJVEUiLDEzOToiRlBPUyIsMTQwOiJEQVRFVkFMVUUiLDE0MToiVElNRVZBTFVFIiwxNDI6IlNMTiIsMTQzOiJTWUQiLDE0NDoiRERCIiwxNDU6IkdFVC5ERUYiLDE0NjoiUkVGVEVYVCIsMTQ3''@;'; put 'put ''OiJURVhUUkVGIiwxNDg6IklORElSRUNUIiwxNDk6IlJFR0lTVEVSIiwxNTA6IkNBTEwiLDE1MToiQURELkJBUiIsMTUyOiJBREQuTUVOVSIsMTUzOiJBREQuQ09NTUFORCIsMTU0OiJFTkFCTEUuQ09NTUFORCIsMTU1OiJDSEVDSy5DT01NQU5EIiwxNTY6IlJFTkFNRS5DT01NQU5EIiwxNTc6''@;'; put 'put ''IlNIT1cuQkFSIiwxNTg6IkRFTEVURS5NRU5VIiwxNTk6IkRFTEVURS5DT01NQU5EIiwxNjA6IkdFVC5DSEFSVC5JVEVNIiwxNjE6IkRJQUxPRy5CT1giLDE2MjoiQ0xFQU4iLDE2MzoiTURFVEVSTSIsMTY0OiJNSU5WRVJTRSIsMTY1OiJNTVVMVCIsMTY2OiJGSUxFUyIsMTY3OiJJUE1UIiwx''@;'; put 'put ''Njg6IlBQTVQiLDE2OToiQ09VTlRBIiwxNzA6IkNBTkNFTC5LRVkiLDE3MToiRk9SIiwxNzI6IldISUxFIiwxNzM6IkJSRUFLIiwxNzQ6Ik5FWFQiLDE3NToiSU5JVElBVEUiLDE3NjoiUkVRVUVTVCIsMTc3OiJQT0tFIiwxNzg6IkVYRUNVVEUiLDE3OToiVEVSTUlOQVRFIiwxODA6IlJFU1RB''@;'; put 'put ''UlQiLDE4MToiSEVMUCIsMTgyOiJHRVQuQkFSIiwxODM6IlBST0RVQ1QiLDE4NDoiRkFDVCIsMTg1OiJHRVQuQ0VMTCIsMTg2OiJHRVQuV09SS1NQQUNFIiwxODc6IkdFVC5XSU5ET1ciLDE4ODoiR0VULkRPQ1VNRU5UIiwxODk6IkRQUk9EVUNUIiwxOTA6IklTTk9OVEVYVCIsMTkxOiJHRVQu''@;'; put 'put ''Tk9URSIsMTkyOiJOT1RFIiwxOTM6IlNUREVWUCIsMTk0OiJWQVJQIiwxOTU6IkRTVERFVlAiLDE5NjoiRFZBUlAiLDE5NzoiVFJVTkMiLDE5ODoiSVNMT0dJQ0FMIiwxOTk6IkRDT1VOVEEiLDIwMDoiREVMRVRFLkJBUiIsMjAxOiJVTlJFR0lTVEVSIiwyMDQ6IlVTRE9MTEFSIiwyMDU6IkZJ''@;'; put 'put ''TkRCIiwyMDY6IlNFQVJDSEIiLDIwNzoiUkVQTEFDRUIiLDIwODoiTEVGVEIiLDIwOToiUklHSFRCIiwyMTA6Ik1JREIiLDIxMToiTEVOQiIsMjEyOiJST1VORFVQIiwyMTM6IlJPVU5ERE9XTiIsMjE0OiJBU0MiLDIxNToiREJDUyIsMjE2OiJSQU5LIiwyMTk6IkFERFJFU1MiLDIyMDoiREFZ''@;'; put 'put ''UzM2MCIsMjIxOiJUT0RBWSIsMjIyOiJWREIiLDIyMzoiRUxTRSIsMjI0OiJFTFNFLklGIiwyMjU6IkVORC5JRiIsMjI2OiJGT1IuQ0VMTCIsMjI3OiJNRURJQU4iLDIyODoiU1VNUFJPRFVDVCIsMjI5OiJTSU5IIiwyMzA6IkNPU0giLDIzMToiVEFOSCIsMjMyOiJBU0lOSCIsMjMzOiJBQ09T''@;'; put 'put ''SCIsMjM0OiJBVEFOSCIsMjM1OiJER0VUIiwyMzY6IkNSRUFURS5PQkpFQ1QiLDIzNzoiVk9MQVRJTEUiLDIzODoiTEFTVC5FUlJPUiIsMjM5OiJDVVNUT00uVU5ETyIsMjQwOiJDVVNUT00uUkVQRUFUIiwyNDE6IkZPUk1VTEEuQ09OVkVSVCIsMjQyOiJHRVQuTElOSy5JTkZPIiwyNDM6IlRF''@;'; put 'put ''WFQuQk9YIiwyNDQ6IklORk8iLDI0NToiR1JPVVAiLDI0NjoiR0VULk9CSkVDVCIsMjQ3OiJEQiIsMjQ4OiJQQVVTRSIsMjUxOiJSRVNVTUUiLDI1MjoiRlJFUVVFTkNZIiwyNTM6IkFERC5UT09MQkFSIiwyNTQ6IkRFTEVURS5UT09MQkFSIiwyNTU6IlVzZXIiLDI1NjoiUkVTRVQuVE9PTEJB''@;'; put 'put ''UiIsMjU3OiJFVkFMVUFURSIsMjU4OiJHRVQuVE9PTEJBUiIsMjU5OiJHRVQuVE9PTCIsMjYwOiJTUEVMTElORy5DSEVDSyIsMjYxOiJFUlJPUi5UWVBFIiwyNjI6IkFQUC5USVRMRSIsMjYzOiJXSU5ET1cuVElUTEUiLDI2NDoiU0FWRS5UT09MQkFSIiwyNjU6IkVOQUJMRS5UT09MIiwyNjY6''@;'; put 'put ''IlBSRVNTLlRPT0wiLDI2NzoiUkVHSVNURVIuSUQiLDI2ODoiR0VULldPUktCT09LIiwyNjk6IkFWRURFViIsMjcwOiJCRVRBRElTVCIsMjcxOiJHQU1NQUxOIiwyNzI6IkJFVEFJTlYiLDI3MzoiQklOT01ESVNUIiwyNzQ6IkNISURJU1QiLDI3NToiQ0hJSU5WIiwyNzY6IkNPTUJJTiIsMjc3''@;'; put 'put ''OiJDT05GSURFTkNFIiwyNzg6IkNSSVRCSU5PTSIsMjc5OiJFVkVOIiwyODA6IkVYUE9ORElTVCIsMjgxOiJGRElTVCIsMjgyOiJGSU5WIiwyODM6IkZJU0hFUiIsMjg0OiJGSVNIRVJJTlYiLDI4NToiRkxPT1IiLDI4NjoiR0FNTUFESVNUIiwyODc6IkdBTU1BSU5WIiwyODg6IkNFSUxJTkci''@;'; put 'put ''LDI4OToiSFlQR0VPTURJU1QiLDI5MDoiTE9HTk9STURJU1QiLDI5MToiTE9HSU5WIiwyOTI6Ik5FR0JJTk9NRElTVCIsMjkzOiJOT1JNRElTVCIsMjk0OiJOT1JNU0RJU1QiLDI5NToiTk9STUlOViIsMjk2OiJOT1JNU0lOViIsMjk3OiJTVEFOREFSRElaRSIsMjk4OiJPREQiLDI5OToiUEVS''@;'; put 'put ''TVVUIiwzMDA6IlBPSVNTT04iLDMwMToiVERJU1QiLDMwMjoiV0VJQlVMTCIsMzAzOiJTVU1YTVkyIiwzMDQ6IlNVTVgyTVkyIiwzMDU6IlNVTVgyUFkyIiwzMDY6IkNISVRFU1QiLDMwNzoiQ09SUkVMIiwzMDg6IkNPVkFSIiwzMDk6IkZPUkVDQVNUIiwzMTA6IkZURVNUIiwzMTE6IklOVEVS''@;'; put 'put ''Q0VQVCIsMzEyOiJQRUFSU09OIiwzMTM6IlJTUSIsMzE0OiJTVEVZWCIsMzE1OiJTTE9QRSIsMzE2OiJUVEVTVCIsMzE3OiJQUk9CIiwzMTg6IkRFVlNRIiwzMTk6IkdFT01FQU4iLDMyMDoiSEFSTUVBTiIsMzIxOiJTVU1TUSIsMzIyOiJLVVJUIiwzMjM6IlNLRVciLDMyNDoiWlRFU1QiLDMy''@;'; put 'put ''NToiTEFSR0UiLDMyNjoiU01BTEwiLDMyNzoiUVVBUlRJTEUiLDMyODoiUEVSQ0VOVElMRSIsMzI5OiJQRVJDRU5UUkFOSyIsMzMwOiJNT0RFIiwzMzE6IlRSSU1NRUFOIiwzMzI6IlRJTlYiLDMzNDoiTU9WSUUuQ09NTUFORCIsMzM1OiJHRVQuTU9WSUUiLDMzNjoiQ09OQ0FURU5BVEUiLDMz''@;'; put 'put ''NzoiUE9XRVIiLDMzODoiUElWT1QuQURELkRBVEEiLDMzOToiR0VULlBJVk9ULlRBQkxFIiwzNDA6IkdFVC5QSVZPVC5GSUVMRCIsMzQxOiJHRVQuUElWT1QuSVRFTSIsMzQyOiJSQURJQU5TIiwzNDM6IkRFR1JFRVMiLDM0NDoiU1VCVE9UQUwiLDM0NToiU1VNSUYiLDM0NjoiQ09VTlRJRiIs''@;'; put 'put ''MzQ3OiJDT1VOVEJMQU5LIiwzNDg6IlNDRU5BUklPLkdFVCIsMzQ5OiJPUFRJT05TLkxJU1RTLkdFVCIsMzUwOiJJU1BNVCIsMzUxOiJEQVRFRElGIiwzNTI6IkRBVEVTVFJJTkciLDM1MzoiTlVNQkVSU1RSSU5HIiwzNTQ6IlJPTUFOIiwzNTU6Ik9QRU4uRElBTE9HIiwzNTY6IlNBVkUuRElB''@;'; put 'put ''TE9HIiwzNTc6IlZJRVcuR0VUIiwzNTg6IkdFVFBJVk9UREFUQSIsMzU5OiJIWVBFUkxJTksiLDM2MDoiUEhPTkVUSUMiLDM2MToiQVZFUkFHRUEiLDM2MjoiTUFYQSIsMzYzOiJNSU5BIiwzNjQ6IlNUREVWUEEiLDM2NToiVkFSUEEiLDM2NjoiU1RERVZBIiwzNjc6IlZBUkEiLDM2ODoiQkFI''@;'; put 'put ''VFRFWFQiLDM2OToiVEhBSURBWU9GV0VFSyIsMzcwOiJUSEFJRElHSVQiLDM3MToiVEhBSU1PTlRIT0ZZRUFSIiwzNzI6IlRIQUlOVU1TT1VORCIsMzczOiJUSEFJTlVNU1RSSU5HIiwzNzQ6IlRIQUlTVFJJTkdMRU5HVEgiLDM3NToiSVNUSEFJRElHSVQiLDM3NjoiUk9VTkRCQUhURE9XTiIs''@;'; put 'put ''Mzc3OiJST1VOREJBSFRVUCIsMzc4OiJUSEFJWUVBUiIsMzc5OiJSVEQiLDM4MDoiQ1VCRVZBTFVFIiwzODE6IkNVQkVNRU1CRVIiLDM4MjoiQ1VCRU1FTUJFUlBST1BFUlRZIiwzODM6IkNVQkVSQU5LRURNRU1CRVIiLDM4NDoiSEVYMkJJTiIsMzg1OiJIRVgyREVDIiwzODY6IkhFWDJPQ1Qi''@;'; put 'put ''LDM4NzoiREVDMkJJTiIsMzg4OiJERUMySEVYIiwzODk6IkRFQzJPQ1QiLDM5MDoiT0NUMkJJTiIsMzkxOiJPQ1QySEVYIiwzOTI6Ik9DVDJERUMiLDM5MzoiQklOMkRFQyIsMzk0OiJCSU4yT0NUIiwzOTU6IkJJTjJIRVgiLDM5NjoiSU1TVUIiLDM5NzoiSU1ESVYiLDM5ODoiSU1QT1dFUiIs''@;'; put 'put ''Mzk5OiJJTUFCUyIsNDAwOiJJTVNRUlQiLDQwMToiSU1MTiIsNDAyOiJJTUxPRzIiLDQwMzoiSU1MT0cxMCIsNDA0OiJJTVNJTiIsNDA1OiJJTUNPUyIsNDA2OiJJTUVYUCIsNDA3OiJJTUFSR1VNRU5UIiw0MDg6IklNQ09OSlVHQVRFIiw0MDk6IklNQUdJTkFSWSIsNDEwOiJJTVJFQUwiLDQx''@;'; put 'put ''MToiQ09NUExFWCIsNDEyOiJJTVNVTSIsNDEzOiJJTVBST0RVQ1QiLDQxNDoiU0VSSUVTU1VNIiw0MTU6IkZBQ1RET1VCTEUiLDQxNjoiU1FSVFBJIiw0MTc6IlFVT1RJRU5UIiw0MTg6IkRFTFRBIiw0MTk6IkdFU1RFUCIsNDIwOiJJU0VWRU4iLDQyMToiSVNPREQiLDQyMjoiTVJPVU5EIiw0''@;'; put 'put ''MjM6IkVSRiIsNDI0OiJFUkZDIiw0MjU6IkJFU1NFTEoiLDQyNjoiQkVTU0VMSyIsNDI3OiJCRVNTRUxZIiw0Mjg6IkJFU1NFTEkiLDQyOToiWElSUiIsNDMwOiJYTlBWIiw0MzE6IlBSSUNFTUFUIiw0MzI6IllJRUxETUFUIiw0MzM6IklOVFJBVEUiLDQzNDoiUkVDRUlWRUQiLDQzNToiRElT''@;'; put 'put ''QyIsNDM2OiJQUklDRURJU0MiLDQzNzoiWUlFTERESVNDIiw0Mzg6IlRCSUxMRVEiLDQzOToiVEJJTExQUklDRSIsNDQwOiJUQklMTFlJRUxEIiw0NDE6IlBSSUNFIiw0NDI6IllJRUxEIiw0NDM6IkRPTExBUkRFIiw0NDQ6IkRPTExBUkZSIiw0NDU6Ik5PTUlOQUwiLDQ0NjoiRUZGRUNUIiw0''@;'; put 'put ''NDc6IkNVTVBSSU5DIiw0NDg6IkNVTUlQTVQiLDQ0OToiRURBVEUiLDQ1MDoiRU9NT05USCIsNDUxOiJZRUFSRlJBQyIsNDUyOiJDT1VQREFZQlMiLDQ1MzoiQ09VUERBWVMiLDQ1NDoiQ09VUERBWVNOQyIsNDU1OiJDT1VQTkNEIiw0NTY6IkNPVVBOVU0iLDQ1NzoiQ09VUFBDRCIsNDU4OiJE''@;'; put 'put ''VVJBVElPTiIsNDU5OiJNRFVSQVRJT04iLDQ2MDoiT0RETFBSSUNFIiw0NjE6Ik9ERExZSUVMRCIsNDYyOiJPRERGUFJJQ0UiLDQ2MzoiT0RERllJRUxEIiw0NjQ6IlJBTkRCRVRXRUVOIiw0NjU6IldFRUtOVU0iLDQ2NjoiQU1PUkRFR1JDIiw0Njc6IkFNT1JMSU5DIiw0Njg6IkNPTlZFUlQi''@;'; put 'put ''LDcyNDoiU0hFRVRKUyIsNDY5OiJBQ0NSSU5UIiw0NzA6IkFDQ1JJTlRNIiw0NzE6IldPUktEQVkiLDQ3MjoiTkVUV09SS0RBWVMiLDQ3MzoiR0NEIiw0NzQ6Ik1VTFRJTk9NSUFMIiw0NzU6IkxDTSIsNDc2OiJGVlNDSEVEVUxFIiw0Nzc6IkNVQkVLUElNRU1CRVIiLDQ3ODoiQ1VCRVNFVCIs''@;'; put 'put ''NDc5OiJDVUJFU0VUQ09VTlQiLDQ4MDoiSUZFUlJPUiIsNDgxOiJDT1VOVElGUyIsNDgyOiJTVU1JRlMiLDQ4MzoiQVZFUkFHRUlGIiw0ODQ6IkFWRVJBR0VJRlMifSxjXz17MjoxLDM6MSwxMDowLDE1OjEsMTY6MSwxNzoxLDE4OjEsMTk6MCwyMDoxLDIxOjEsMjI6MSwyMzoxLDI0OjEsMjU6''@;'; put 'put ''MSwyNjoxLDI3OjIsMzA6MiwzMTozLDMyOjEsMzM6MSwzNDowLDM1OjAsMzg6MSwzOToyLDQwOjMsNDE6Myw0MjozLDQzOjMsNDQ6Myw0NTozLDQ3OjMsNDg6Miw1MzoxLDYxOjMsNjM6MCw2NTozLDY2OjMsNjc6MSw2ODoxLDY5OjEsNzA6MSw3MToxLDcyOjEsNzM6MSw3NDowLDc1OjEsNzY6''@;'; put 'put ''MSw3NzoxLDc5OjIsODA6Miw4MzoxLDg1OjAsODY6MSw4OTowLDkwOjEsOTQ6MCw5NTowLDk3OjIsOTg6MSw5OToxLDEwMTozLDEwMjozLDEwNToxLDEwNjoxLDEwODoyLDExMToxLDExMjoxLDExMzoxLDExNDoxLDExNzoyLDExODoxLDExOTo0LDEyMToxLDEyNjoxLDEyNzoxLDEyODoxLDEy''@;'; put 'put ''OToxLDEzMDoxLDEzMToxLDEzMzoxLDEzNDoxLDEzNToxLDEzNjoyLDEzNzoyLDEzODoyLDE0MDoxLDE0MToxLDE0MjozLDE0Mzo0LDE0NDo0LDE2MToxLDE2MjoxLDE2MzoxLDE2NDoxLDE2NToyLDE3MjoxLDE3NToyLDE3NjoyLDE3NzozLDE3ODoyLDE3OToxLDE4NDoxLDE4NjoxLDE4OToz''@;'; put 'put ''LDE5MDoxLDE5NTozLDE5NjozLDE5NzoxLDE5ODoxLDE5OTozLDIwMToxLDIwNzo0LDIxMDozLDIxMToxLDIxMjoyLDIxMzoyLDIxNDoxLDIxNToxLDIyNTowLDIyOToxLDIzMDoxLDIzMToxLDIzMjoxLDIzMzoxLDIzNDoxLDIzNTozLDI0NDoxLDI0Nzo0LDI1MjoyLDI1NzoxLDI2MToxLDI3''@;'; put 'put ''MToxLDI3Mzo0LDI3NDoyLDI3NToyLDI3NjoyLDI3NzozLDI3ODozLDI3OToxLDI4MDozLDI4MTozLDI4MjozLDI4MzoxLDI4NDoxLDI4NToyLDI4Njo0LDI4NzozLDI4ODoyLDI4OTo0LDI5MDozLDI5MTozLDI5MjozLDI5Mzo0LDI5NDoxLDI5NTozLDI5NjoxLDI5NzozLDI5ODoxLDI5OToy''@;'; put 'put ''LDMwMDozLDMwMTozLDMwMjo0LDMwMzoyLDMwNDoyLDMwNToyLDMwNjoyLDMwNzoyLDMwODoyLDMwOTozLDMxMDoyLDMxMToyLDMxMjoyLDMxMzoyLDMxNDoyLDMxNToyLDMxNjo0LDMyNToyLDMyNjoyLDMyNzoyLDMyODoyLDMzMToyLDMzMjoyLDMzNzoyLDM0MjoxLDM0MzoxLDM0NjoyLDM0''@;'; put 'put ''NzoxLDM1MDo0LDM1MTozLDM1MjoxLDM1MzoyLDM2MDoxLDM2ODoxLDM2OToxLDM3MDoxLDM3MToxLDM3MjoxLDM3MzoxLDM3NDoxLDM3NToxLDM3NjoxLDM3NzoxLDM3ODoxLDM4MjozLDM4NToxLDM5MjoxLDM5MzoxLDM5NjoyLDM5NzoyLDM5ODoyLDM5OToxLDQwMDoxLDQwMToxLDQwMjox''@;'; put 'put ''LDQwMzoxLDQwNDoxLDQwNToxLDQwNjoxLDQwNzoxLDQwODoxLDQwOToxLDQxMDoxLDQxNDo0LDQxNToxLDQxNjoxLDQxNzoyLDQyMDoxLDQyMToxLDQyMjoyLDQyNDoxLDQyNToyLDQyNjoyLDQyNzoyLDQyODoyLDQzMDozLDQzODozLDQzOTozLDQ0MDozLDQ0MzoyLDQ0NDoyLDQ0NToyLDQ0''@;'; put 'put ''NjoyLDQ0Nzo2LDQ0ODo2LDQ0OToyLDQ1MDoyLDQ2NDoyLDQ2ODozLDQ3NjoyLDQ3OToxLDQ4MDoyLDY1NTM1OjB9LGF4PXsiX3hsZm4uQUNPVCI6IkFDT1QiLCJfeGxmbi5BQ09USCI6IkFDT1RIIiwiX3hsZm4uQUdHUkVHQVRFIjoiQUdHUkVHQVRFIiwiX3hsZm4uQVJBQklDIjoiQVJBQklD''@;'; put 'put ''IiwiX3hsZm4uQVZFUkFHRUlGIjoiQVZFUkFHRUlGIiwiX3hsZm4uQVZFUkFHRUlGUyI6IkFWRVJBR0VJRlMiLCJfeGxmbi5CQVNFIjoiQkFTRSIsIl94bGZuLkJFVEEuRElTVCI6IkJFVEEuRElTVCIsIl94bGZuLkJFVEEuSU5WIjoiQkVUQS5JTlYiLCJfeGxmbi5CSU5PTS5ESVNUIjoiQklO''@;'; put 'put ''T00uRElTVCIsIl94bGZuLkJJTk9NLkRJU1QuUkFOR0UiOiJCSU5PTS5ESVNULlJBTkdFIiwiX3hsZm4uQklOT00uSU5WIjoiQklOT00uSU5WIiwiX3hsZm4uQklUQU5EIjoiQklUQU5EIiwiX3hsZm4uQklUTFNISUZUIjoiQklUTFNISUZUIiwiX3hsZm4uQklUT1IiOiJCSVRPUiIsIl94bGZu''@;'; put 'put ''LkJJVFJTSElGVCI6IkJJVFJTSElGVCIsIl94bGZuLkJJVFhPUiI6IkJJVFhPUiIsIl94bGZuLkNFSUxJTkcuTUFUSCI6IkNFSUxJTkcuTUFUSCIsIl94bGZuLkNFSUxJTkcuUFJFQ0lTRSI6IkNFSUxJTkcuUFJFQ0lTRSIsIl94bGZuLkNISVNRLkRJU1QiOiJDSElTUS5ESVNUIiwiX3hsZm4u''@;'; put 'put ''Q0hJU1EuRElTVC5SVCI6IkNISVNRLkRJU1QuUlQiLCJfeGxmbi5DSElTUS5JTlYiOiJDSElTUS5JTlYiLCJfeGxmbi5DSElTUS5JTlYuUlQiOiJDSElTUS5JTlYuUlQiLCJfeGxmbi5DSElTUS5URVNUIjoiQ0hJU1EuVEVTVCIsIl94bGZuLkNPTUJJTkEiOiJDT01CSU5BIiwiX3hsZm4uQ09O''@;'; put 'put ''Q0FUIjoiQ09OQ0FUIiwiX3hsZm4uQ09ORklERU5DRS5OT1JNIjoiQ09ORklERU5DRS5OT1JNIiwiX3hsZm4uQ09ORklERU5DRS5UIjoiQ09ORklERU5DRS5UIiwiX3hsZm4uQ09UIjoiQ09UIiwiX3hsZm4uQ09USCI6IkNPVEgiLCJfeGxmbi5DT1VOVElGUyI6IkNPVU5USUZTIiwiX3hsZm4u''@;'; put 'put ''Q09WQVJJQU5DRS5QIjoiQ09WQVJJQU5DRS5QIiwiX3hsZm4uQ09WQVJJQU5DRS5TIjoiQ09WQVJJQU5DRS5TIiwiX3hsZm4uQ1NDIjoiQ1NDIiwiX3hsZm4uQ1NDSCI6IkNTQ0giLCJfeGxmbi5EQVlTIjoiREFZUyIsIl94bGZuLkRFQ0lNQUwiOiJERUNJTUFMIiwiX3hsZm4uRUNNQS5DRUlM''@;'; put 'put ''SU5HIjoiRUNNQS5DRUlMSU5HIiwiX3hsZm4uRVJGLlBSRUNJU0UiOiJFUkYuUFJFQ0lTRSIsIl94bGZuLkVSRkMuUFJFQ0lTRSI6IkVSRkMuUFJFQ0lTRSIsIl94bGZuLkVYUE9OLkRJU1QiOiJFWFBPTi5ESVNUIiwiX3hsZm4uRi5ESVNUIjoiRi5ESVNUIiwiX3hsZm4uRi5ESVNULlJUIjoi''@;'; put 'put ''Ri5ESVNULlJUIiwiX3hsZm4uRi5JTlYiOiJGLklOViIsIl94bGZuLkYuSU5WLlJUIjoiRi5JTlYuUlQiLCJfeGxmbi5GLlRFU1QiOiJGLlRFU1QiLCJfeGxmbi5GSUxURVJYTUwiOiJGSUxURVJYTUwiLCJfeGxmbi5GTE9PUi5NQVRIIjoiRkxPT1IuTUFUSCIsIl94bGZuLkZMT09SLlBSRUNJ''@;'; put 'put ''U0UiOiJGTE9PUi5QUkVDSVNFIiwiX3hsZm4uRk9SRUNBU1QuRVRTIjoiRk9SRUNBU1QuRVRTIiwiX3hsZm4uRk9SRUNBU1QuRVRTLkNPTkZJTlQiOiJGT1JFQ0FTVC5FVFMuQ09ORklOVCIsIl94bGZuLkZPUkVDQVNULkVUUy5TRUFTT05BTElUWSI6IkZPUkVDQVNULkVUUy5TRUFTT05BTElU''@;'; put 'put ''WSIsIl94bGZuLkZPUkVDQVNULkVUUy5TVEFUIjoiRk9SRUNBU1QuRVRTLlNUQVQiLCJfeGxmbi5GT1JFQ0FTVC5MSU5FQVIiOiJGT1JFQ0FTVC5MSU5FQVIiLCJfeGxmbi5GT1JNVUxBVEVYVCI6IkZPUk1VTEFURVhUIiwiX3hsZm4uR0FNTUEiOiJHQU1NQSIsIl94bGZuLkdBTU1BLkRJU1Qi''@;'; put 'put ''OiJHQU1NQS5ESVNUIiwiX3hsZm4uR0FNTUEuSU5WIjoiR0FNTUEuSU5WIiwiX3hsZm4uR0FNTUFMTi5QUkVDSVNFIjoiR0FNTUFMTi5QUkVDSVNFIiwiX3hsZm4uR0FVU1MiOiJHQVVTUyIsIl94bGZuLkhZUEdFT00uRElTVCI6IkhZUEdFT00uRElTVCIsIl94bGZuLklGRVJST1IiOiJJRkVS''@;'; put 'put ''Uk9SIiwiX3hsZm4uSUZOQSI6IklGTkEiLCJfeGxmbi5JRlMiOiJJRlMiLCJfeGxmbi5JTUNPU0giOiJJTUNPU0giLCJfeGxmbi5JTUNPVCI6IklNQ09UIiwiX3hsZm4uSU1DU0MiOiJJTUNTQyIsIl94bGZuLklNQ1NDSCI6IklNQ1NDSCIsIl94bGZuLklNU0VDIjoiSU1TRUMiLCJfeGxmbi5J''@;'; put 'put ''TVNFQ0giOiJJTVNFQ0giLCJfeGxmbi5JTVNJTkgiOiJJTVNJTkgiLCJfeGxmbi5JTVRBTiI6IklNVEFOIiwiX3hsZm4uSVNGT1JNVUxBIjoiSVNGT1JNVUxBIiwiX3hsZm4uSVNPLkNFSUxJTkciOiJJU08uQ0VJTElORyIsIl94bGZuLklTT1dFRUtOVU0iOiJJU09XRUVLTlVNIiwiX3hsZm4u''@;'; put 'put ''TE9HTk9STS5ESVNUIjoiTE9HTk9STS5ESVNUIiwiX3hsZm4uTE9HTk9STS5JTlYiOiJMT0dOT1JNLklOViIsIl94bGZuLk1BWElGUyI6Ik1BWElGUyIsIl94bGZuLk1JTklGUyI6Ik1JTklGUyIsIl94bGZuLk1PREUuTVVMVCI6Ik1PREUuTVVMVCIsIl94bGZuLk1PREUuU05HTCI6Ik1PREUu''@;'; put 'put ''U05HTCIsIl94bGZuLk1VTklUIjoiTVVOSVQiLCJfeGxmbi5ORUdCSU5PTS5ESVNUIjoiTkVHQklOT00uRElTVCIsIl94bGZuLk5FVFdPUktEQVlTLklOVEwiOiJORVRXT1JLREFZUy5JTlRMIiwiX3hsZm4uTklHQklOT00iOiJOSUdCSU5PTSIsIl94bGZuLk5PUk0uRElTVCI6Ik5PUk0uRElT''@;'; put 'put ''VCIsIl94bGZuLk5PUk0uSU5WIjoiTk9STS5JTlYiLCJfeGxmbi5OT1JNLlMuRElTVCI6Ik5PUk0uUy5ESVNUIiwiX3hsZm4uTk9STS5TLklOViI6Ik5PUk0uUy5JTlYiLCJfeGxmbi5OVU1CRVJWQUxVRSI6Ik5VTUJFUlZBTFVFIiwiX3hsZm4uUERVUkFUSU9OIjoiUERVUkFUSU9OIiwiX3hs''@;'; put 'put ''Zm4uUEVSQ0VOVElMRS5FWEMiOiJQRVJDRU5USUxFLkVYQyIsIl94bGZuLlBFUkNFTlRJTEUuSU5DIjoiUEVSQ0VOVElMRS5JTkMiLCJfeGxmbi5QRVJDRU5UUkFOSy5FWEMiOiJQRVJDRU5UUkFOSy5FWEMiLCJfeGxmbi5QRVJDRU5UUkFOSy5JTkMiOiJQRVJDRU5UUkFOSy5JTkMiLCJfeGxm''@;'; put 'put ''bi5QRVJNVVRBVElPTkEiOiJQRVJNVVRBVElPTkEiLCJfeGxmbi5QSEkiOiJQSEkiLCJfeGxmbi5QT0lTU09OLkRJU1QiOiJQT0lTU09OLkRJU1QiLCJfeGxmbi5RVUFSVElMRS5FWEMiOiJRVUFSVElMRS5FWEMiLCJfeGxmbi5RVUFSVElMRS5JTkMiOiJRVUFSVElMRS5JTkMiLCJfeGxmbi5R''@;'; put 'put ''VUVSWVNUUklORyI6IlFVRVJZU1RSSU5HIiwiX3hsZm4uUkFOSy5BVkciOiJSQU5LLkFWRyIsIl94bGZuLlJBTksuRVEiOiJSQU5LLkVRIiwiX3hsZm4uUlJJIjoiUlJJIiwiX3hsZm4uU0VDIjoiU0VDIiwiX3hsZm4uU0VDSCI6IlNFQ0giLCJfeGxmbi5TSEVFVCI6IlNIRUVUIiwiX3hsZm4u''@;'; put 'put ''U0hFRVRTIjoiU0hFRVRTIiwiX3hsZm4uU0tFVy5QIjoiU0tFVy5QIiwiX3hsZm4uU1RERVYuUCI6IlNUREVWLlAiLCJfeGxmbi5TVERFVi5TIjoiU1RERVYuUyIsIl94bGZuLlNVTUlGUyI6IlNVTUlGUyIsIl94bGZuLlNXSVRDSCI6IlNXSVRDSCIsIl94bGZuLlQuRElTVCI6IlQuRElTVCIs''@;'; put 'put ''Il94bGZuLlQuRElTVC4yVCI6IlQuRElTVC4yVCIsIl94bGZuLlQuRElTVC5SVCI6IlQuRElTVC5SVCIsIl94bGZuLlQuSU5WIjoiVC5JTlYiLCJfeGxmbi5ULklOVi4yVCI6IlQuSU5WLjJUIiwiX3hsZm4uVC5URVNUIjoiVC5URVNUIiwiX3hsZm4uVEVYVEpPSU4iOiJURVhUSk9JTiIsIl94''@;'; put 'put ''bGZuLlVOSUNIQVIiOiJVTklDSEFSIiwiX3hsZm4uVU5JQ09ERSI6IlVOSUNPREUiLCJfeGxmbi5WQVIuUCI6IlZBUi5QIiwiX3hsZm4uVkFSLlMiOiJWQVIuUyIsIl94bGZuLldFQlNFUlZJQ0UiOiJXRUJTRVJWSUNFIiwiX3hsZm4uV0VJQlVMTC5ESVNUIjoiV0VJQlVMTC5ESVNUIiwiX3hs''@;'; put 'put ''Zm4uV09SS0RBWS5JTlRMIjoiV09SS0RBWS5JTlRMIiwiX3hsZm4uWE9SIjoiWE9SIiwiX3hsZm4uWi5URVNUIjoiWi5URVNUIn07ZnVuY3Rpb24gTGgoSCl7cmV0dXJuIm9mOiI9PUguc2xpY2UoMCwzKSYmKEg9SC5zbGljZSgzKSksNjE9PUguY2hhckNvZGVBdCgwKSYmNjE9PShIPUguc2xp''@;'; put 'put ''Y2UoMSkpLmNoYXJDb2RlQXQoMCkmJihIPUguc2xpY2UoMSkpLChIPShIPShIPUgucmVwbGFjZSgvQ09NXC5NSUNST1NPRlRcLi9nLCIiKSkucmVwbGFjZSgvXFsoKD86XC5bQS1aXStbMC05XSspKD86OlwuW0EtWl0rWzAtOV0rKT8pXF0vZyxmdW5jdGlvbihpZSxYKXtyZXR1cm4gWC5yZXBs''@;'; put 'put ''YWNlKC9cLi9nLCIiKX0pKS5yZXBsYWNlKC9cWy4oI1tBLVpdKls/IV0pXF0vZywiJDEiKSkucmVwbGFjZSgvWzt+XS9nLCIsIikucmVwbGFjZSgvXHwvZywiOyIpfWZ1bmN0aW9uIGx4KEgpe3JldHVybigib2Y6PSIrSC5yZXBsYWNlKFNtLCIkMVsuJDIkMyQ0JDVdIikucmVwbGFjZSgvXF06''@;'; put 'put ''XFsvZywiOiIpKS5yZXBsYWNlKC87L2csInwiKS5yZXBsYWNlKC8sL2csIjsiKX1mdW5jdGlvbiBmXyhIKXt2YXIgaWU9SC5zcGxpdCgiOiIpO3JldHVybltpZVswXS5zcGxpdCgiLiIpWzBdLGllWzBdLnNwbGl0KCIuIilbMV0rKGllLmxlbmd0aD4xPyI6IisoaWVbMV0uc3BsaXQoIi4iKVsx''@;'; put 'put ''XXx8aWVbMV0uc3BsaXQoIi4iKVswXSk6IiIpXX1mdW5jdGlvbiBoXyhIKXtyZXR1cm4gSC5yZXBsYWNlKC9cLi8sIiEiKX12YXIgT2Q9e30sVWM9e307ZHQuV1M9WyJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dv''@;'; put 'put ''cmtzaGVldCIsImh0dHA6Ly9wdXJsLm9jbGMub3JnL29veG1sL29mZmljZURvY3VtZW50L3JlbGF0aW9uc2hpcHMvd29ya3NoZWV0Il07dmFyIGY1PSJ1bmRlZmluZWQiIT10eXBlb2YgTWFwO2Z1bmN0aW9uIEM2KEgsaWUsWCx3ZSl7dmFyIHhlPTAsRmU9SC5sZW5ndGg7aWYod2Upe2lmKGY1''@;'; put 'put ''P3dlLmhhcyhpZSk6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHdlLGllKSlmb3IodmFyIFplPWY1P3dlLmdldChpZSk6d2VbaWVdO3hlPFplLmxlbmd0aDsrK3hlKWlmKEhbWmVbeGVdXS50PT09aWUmJighSFtaZVt4ZV1dLnImJiFYfHxIW1plW3hlXV0ucj09WCkpcmV0''@;'; put 'put ''dXJuIEguQ291bnQrKyxaZVt4ZV19ZWxzZSBmb3IoO3hlPEZlOysreGUpaWYoSFt4ZV0udD09PWllJiYoIUhbeGVdLnImJiFYfHxIW3hlXS5yPT1YKSlyZXR1cm4gSC5Db3VudCsrLHhlO3JldHVybiBIW0ZlXT17dDppZSxyOlh9LEguQ291bnQrKyxILlVuaXF1ZSsrLHdlJiYoZjU/KHdlLmhh''@;'; put 'put ''cyhpZSl8fHdlLnNldChpZSxbXSksd2UuZ2V0KGllKS5wdXNoKEZlKSk6KE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh3ZSxpZSl8fCh3ZVtpZV09W10pLHdlW2llXS5wdXNoKEZlKSkpLEZlfWZ1bmN0aW9uIGs2KEgsaWUpe3ZhciBYPXttaW46SCsxLG1heDpIKzF9LHdl''@;'; put 'put ''PUsyO2lmKCFpZSlyZXR1cm4gaWU7dmFyIHhlPS0xO3JldHVybiBpZS5hdXRvJiYoWC5iZXN0Rml0PTEsaWUuYmVzdHdpZHRoJiYoeGU9aWUuYmVzdHdpZHRoKSxkZWxldGUgaWUuYmVzdHdpZHRoKSxudWxsIT1pZS53cHg/eGU9STkoaWUud3B4KTpudWxsIT1pZS53Y2g/eGU9aWUud2NoOm51''@;'; put 'put ''bGwhPWllLndpZHRoJiYoWC5jdXN0b21XaWR0aD0xKSx4ZT4tMT8oWC53aWR0aD1fYih4ZSksWC5jdXN0b21XaWR0aD0xKTpudWxsIT1pZS53aWR0aCYmKFgud2lkdGg9aWUud2lkdGgpLGllLmhpZGRlbiYmKFguaGlkZGVuPSEwKSxYLmJlc3RGaXQmJmRlbGV0ZSBYLmN1c3RvbVdpZHRoLEsy''@;'; put 'put ''PXdlLG51bGwhPWllLmxldmVsJiYoWC5vdXRsaW5lTGV2ZWw9WC5sZXZlbD1pZS5sZXZlbCksbnVsbCE9aWUuc3R5bGUmJihYLnN0eWxlPWllLnN0eWxlKSxYfWZ1bmN0aW9uIFM2KEgsaWUsWCl7dmFyIHdlPUFzKEhbIiFyZWYiXSkseGU9MCxGZT1IWyIhbWVyZ2VzIl18fFtdLFplPUFycmF5''@;'; put 'put ''LmlzQXJyYXkoSCk7ZTpmb3IodmFyIGplPTA7amU8PXdlLmUucjsrK2plKXtmb3IodmFyIFllPTA7WWU8RmUubGVuZ3RoOysrWWUpaWYoRmVbWWVdLnMucjw9amUmJmplPD1GZVtZZV0uZS5yJiZGZVtZZV0ucy5jPD1YJiZYPD1GZVtZZV0uZS5jKWNvbnRpbnVlIGU7dmFyIE10PVplPyhIW2pl''@;'; put 'put ''XXx8W10pW1hdOkhbWTAoe3I6amUsYzpYfSldO2lmKE10KXt2YXIgeHQ9MTtpZihNdC5zJiYoeHQ9dm0oTXQucykvQ2IuQ2FsaWJyaVsxMl18fDEpLE10LncpeGU9TWF0aC5tYXgoeGUsTXQudy5sZW5ndGgqeHQpO2Vsc2Ugc3dpdGNoKE10LnQpe2Nhc2UiYiI6Y2FzZSJlIjp4ZT1NYXRoLm1h''@;'; put 'put ''eCh4ZSw1Knh0KTticmVhaztjYXNlInMiOnhlPU1hdGgubWF4KHhlLE10LnYubGVuZ3RoKnh0KjEuMnwwKTticmVhaztjYXNlIm4iOmdkKE10LE10LnYpLHhlPU1hdGgubWF4KHhlLFN0cmluZyhNdC53fHxNdC52KS5sZW5ndGgqeHQpO2JyZWFrO2Nhc2UiZCI6eGU9TWF0aC5tYXgoeGUsOCp4''@;'; put 'put ''dCl9fX14ZTwxJiYoeGU9MSksaWUuYmVzdHdpZHRoPXhlfWZ1bmN0aW9uIFJkKEgsaWUpe2lmKEgpe3ZhciBYPVsuNywuNywuNzUsLjc1LC4zLC4zXTsieGxtbCI9PWllJiYoWD1bMSwxLDEsMSwuNSwuNV0pLG51bGw9PUgubGVmdCYmKEgubGVmdD1YWzBdKSxudWxsPT1ILnJpZ2h0JiYoSC5y''@;'; put 'put ''aWdodD1YWzFdKSxudWxsPT1ILnRvcCYmKEgudG9wPVhbMl0pLG51bGw9PUguYm90dG9tJiYoSC5ib3R0b209WFszXSksbnVsbD09SC5oZWFkZXImJihILmhlYWRlcj1YWzRdKSxudWxsPT1ILmZvb3RlciYmKEguZm9vdGVyPVhbNV0pfX1mdW5jdGlvbiB6NChILGllKXtmb3IodmFyIFg9b24o''@;'; put 'put ''aWUpLHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSl7dmFyIHhlPSEwLEZlPUhbd2VdO2lmKEZlJiZYLmxlbmd0aD09b24oRmUpLmxlbmd0aCYmKFguZm9yRWFjaChmdW5jdGlvbihaZSl7aWYoeGUpe2lmKG51bGw9PT1pZVtaZV0hPShudWxsPT09RmVbWmVdKSlyZXR1cm4gdm9pZCh4ZT0hMSk7aWYo''@;'; put 'put ''Im9iamVjdCI9PXR5cGVvZiBpZVtaZV0paWYoWyJjb2xvciIsImZnQ29sb3IiLCJiZ0NvbG9yIl0uaW5kZXhPZihaZSk+LTEpe2lmKF8zKGllW1plXSxGZVtaZV0pKXJldHVybiB2b2lkKHhlPSExKX1lbHNle2lmKCEoWyJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iXS5pbmRleE9mKFpl''@;'; put 'put ''KT4tMSkpcmV0dXJuIHZvaWQoeGU9ITEpO2lmKFQ5KGllW1plXSxGZVtaZV0pKXJldHVybiB2b2lkKHhlPSExKX1pZihpZVtaZV0hPUZlW1plXSlyZXR1cm4gdm9pZCh4ZT0hMSl9fSkseGUpKXJldHVybiB3ZX1yZXR1cm4gSFtILmxlbmd0aF09bG4oaWUpLEgubGVuZ3RoLTF9ZnVuY3Rpb24g''@;'; put 'put ''WTEoSCxpZSxYLHdlKXt2YXIgeGU9d2UucmV2c3NmW251bGwhPVguej9YLno6IkdlbmVyYWwiXSxGZT02MCxaZT1ILmxlbmd0aDtpZihudWxsPT14ZSYmd2Uuc3NmKWZvcig7RmU8MzkyOysrRmUpaWYobnVsbD09d2Uuc3NmW0ZlXSl7Ri5sb2FkKFgueixGZSksd2Uuc3NmW0ZlXT1YLnosd2Uu''@;'; put 'put ''cmV2c3NmW1guel09eGU9RmU7YnJlYWt9dmFyIGplPTAsWWU9MCxNdD0wLHh0PTA7aWYod2UuY2VsbFN0eWxlcyl7aWYoWC5zKXtpZih3ZS5Gb250cyl7WC5zLmNvbG9yfHwoWC5zLmNvbG9yPXt0aGVtZToxLHJnYjoiMDAwMDAwIn0pO2Zvcih2YXIgUnQ9KFgucy5ib2xkPzE6MCl8KFgucy5p''@;'; put 'put ''dGFsaWM/MjowKXwoWC5zLnN0cmlrZT80OjApfChYLnMuc2hhZG93Pzg6MCk7amU8d2UuRm9udHMubGVuZ3RoOysramUpe3ZhciBVdD13ZS5Gb250c1tqZV07aWYobnVsbD09VXQuZm9udGhhc2gmJihVdC5mb250aGFzaD0oVXQuYm9sZD8xOjApfChVdC5pdGFsaWM/MjowKXwoVXQuc3RyaWtl''@;'; put 'put ''PzQ6MCl8KFV0LnNoYWRvdz84OjApKSwhKFJ0IT1VdC5mb250aGFzaHx8ISFYLnMuY29sb3IhPSEhVXQuY29sb3J8fFgucy52YWxpZ24hPVV0LnZhbGlnbnx8KFgucy5zenx8VXQuc3opJiYoWC5zLnN6fHwxMikhPShVdC5zenx8MTIpfHxYLnMubmFtZSYmWC5zLm5hbWUhPVV0Lm5hbWV8fChY''@;'; put 'put ''LnMudW5kZXJsaW5lfHwwKSE9KFV0LnVuZGVybGluZXx8MCl8fFgucy5jb2xvciYmXzMoWC5zLmNvbG9yLFV0LmNvbG9yKSkpYnJlYWt9amU9PXdlLkZvbnRzLmxlbmd0aCYmKHdlLkZvbnRzLnB1c2goe3N6Olgucy5zenx8MTIsY29sb3I6WC5zLmNvbG9yfHx7dGhlbWU6MSxyZ2I6IjAwMDAw''@;'; put 'put ''MCJ9LG5hbWU6WC5zLm5hbWV8fCJDYWxpYnJpIixmYW1pbHk6WC5zLmZhbWlseXx8MixzY2hlbWU6WC5zLnNjaGVtZSxib2xkOlgucy5ib2xkLGl0YWxpYzpYLnMuaXRhbGljLHN0cmlrZTpYLnMuc3RyaWtlLHNoYWRvdzpYLnMuc2hhZG93LHZhbGlnbjpYLnMudmFsaWduLHVuZGVybGluZTpY''@;'; put 'put ''LnMudW5kZXJsaW5lfSksMT09d2UuRm9udHMubGVuZ3RoJiZTMyh3ZS5Gb250c1swXSkpfWlmKHdlLkZpbGxzKXtmb3IoO1llPHdlLkZpbGxzLmxlbmd0aDsrK1llKXt2YXIgbm49d2UuRmlsbHNbWWVdO2lmKCEhWC5zLnN0b3BzPT0hIW5uLnN0b3BzKXtpZihYLnMuc3RvcHMpe2lmKFgucy5h''@;'; put 'put ''bmdsZSE9bm4uYW5nbGUpY29udGludWU7dmFyIENuPSEwO2lmKFgucy5zdG9wcy5mb3JFYWNoKGZ1bmN0aW9uKFRuLE9uKXtfMyhUbixubi5zdG9wc1tPbl0pJiYoQ249ITEpLFRuLnYhPW5uLnN0b3BzW09uXS52JiYoQ249ITEpfSksIUNuKWNvbnRpbnVlfWVsc2V7aWYobnVsbD09WC5zLnBh''@;'; put 'put ''dHRlcm5UeXBlJiZYLnMuZmdDb2xvciYmKFgucy5wYXR0ZXJuVHlwZT0ic29saWQiKSxudWxsPT1YLnMucGF0dGVyblR5cGUpYnJlYWs7aWYoWC5zLnBhdHRlcm5UeXBlIT1ubi5wYXR0ZXJuVHlwZXx8XzMoWC5zLmZnQ29sb3Isbm4uZmdDb2xvcil8fF8zKFgucy5iZ0NvbG9yLG5uLmJnQ29s''@;'; put 'put ''b3IpKWNvbnRpbnVlfWJyZWFrfX1pZihZZT09d2UuRmlsbHMubGVuZ3RoKXt2YXIgRHQ9e307WC5zLnN0b3BzPyhudWxsIT1YLnMuYW5nbGUmJihEdC5hbmdsZT1YLnMuYW5nbGUpLER0LnN0b3BzPVtdLFgucy5zdG9wcy5mb3JFYWNoKGZ1bmN0aW9uKFRuKXtEdC5zdG9wcy5wdXNoKGxuKFRu''@;'; put 'put ''KSl9KSk6RHQ9e3BhdHRlcm5UeXBlOlgucy5wYXR0ZXJuVHlwZSxmZ0NvbG9yOlgucy5mZ0NvbG9yLGJnQ29sb3I6WC5zLmJnQ29sb3J9LHdlLkZpbGxzLnB1c2goRHQpfX1pZih3ZS5Cb3JkZXJzKXtmb3IoO010PHdlLkJvcmRlcnMubGVuZ3RoOysrTXQpe3ZhciB6dD13ZS5Cb3JkZXJzW010''@;'; put 'put ''XSxQbj0idG9wIjtpZihYLnNbUG5dKXtpZighenRbUG5dfHxYLnNbUG5dLnN0eWxlIT16dFtQbl0uc3R5bGV8fF8zKFguc1tQbl0uY29sb3IsenRbUG5dLmNvbG9yKSljb250aW51ZX1lbHNlIGlmKG51bGwhPXp0W1BuXSljb250aW51ZTtpZihYLnNbUG49ImJvdHRvbSJdKXtpZighenRbUG5d''@;'; put 'put ''fHxYLnNbUG5dLnN0eWxlIT16dFtQbl0uc3R5bGV8fF8zKFguc1tQbl0uY29sb3IsenRbUG5dLmNvbG9yKSljb250aW51ZX1lbHNlIGlmKG51bGwhPXp0W1BuXSljb250aW51ZTtpZihYLnNbUG49ImxlZnQiXSl7aWYoIXp0W1BuXXx8WC5zW1BuXS5zdHlsZSE9enRbUG5dLnN0eWxlfHxfMyhY''@;'; put 'put ''LnNbUG5dLmNvbG9yLHp0W1BuXS5jb2xvcikpY29udGludWV9ZWxzZSBpZihudWxsIT16dFtQbl0pY29udGludWU7aWYoWC5zW1BuPSJyaWdodCJdKXtpZighenRbUG5dfHxYLnNbUG5dLnN0eWxlIT16dFtQbl0uc3R5bGV8fF8zKFguc1tQbl0uY29sb3IsenRbUG5dLmNvbG9yKSljb250aW51''@;'; put 'put ''ZX1lbHNlIGlmKG51bGwhPXp0W1BuXSljb250aW51ZTticmVha31NdD09d2UuQm9yZGVycy5sZW5ndGgmJndlLkJvcmRlcnMucHVzaCh7dG9wOlgucy50b3AmJmxuKFgucy50b3ApfHx2b2lkIDAsYm90dG9tOlgucy5ib3R0b20mJmxuKFgucy5ib3R0b20pfHx2b2lkIDAsbGVmdDpYLnMubGVm''@;'; put 'put ''dCYmbG4oWC5zLmxlZnQpfHx2b2lkIDAscmlnaHQ6WC5zLnJpZ2h0JiZsbihYLnMucmlnaHQpfHx2b2lkIDB9KX1pZihpZSYmWC5zLnN0eWxlJiYiTm9ybWFsIiE9PVgucy5zdHlsZSl7Zm9yKHh0PTE7eHQ8aWUubGVuZ3RoJiZpZVt4dF0ubmFtZSE9WC5zLnN0eWxlOysreHQpO3h0PT1pZS5s''@;'; put 'put ''ZW5ndGgmJmllLnB1c2goe25hbWU6WC5zLnN0eWxlLG51bUZtdElkOnhlLGZvbnRJZDpqZSxmaWxsSWQ6WWUsYm9yZGVySWQ6TXR9KX19Zm9yKEZlPTA7RmUhPVplOysrRmUpaWYoSFtGZV0ubnVtRm10SWQ9PXhlJiZIW0ZlXS5mb250SWQ9PWplJiZIW0ZlXS5maWxsSWQ9PVllJiZIW0ZlXS5i''@;'; put 'put ''b3JkZXJJZD09TXQmJkhbRmVdLnhmSWQ9PXh0KXtpZihYLnMmJlgucy5hbGlnbm1lbnQpe2lmKCFIW0ZlXS5hbGlnbm1lbnQpY29udGludWU7aWYoWC5zLmFsaWdubWVudC5ob3Jpem9udGFsIT1IW0ZlXS5hbGlnbm1lbnQuaG9yaXpvbnRhbHx8WC5zLmFsaWdubWVudC52ZXJ0aWNhbCE9SFtG''@;'; put 'put ''ZV0uYWxpZ25tZW50LnZlcnRpY2FsfHxYLnMuYWxpZ25tZW50LndyYXBUZXh0IT1IW0ZlXS5hbGlnbm1lbnQud3JhcFRleHR8fFgucy5hbGlnbm1lbnQuc2hyaW5rVG9GaXQhPUhbRmVdLmFsaWdubWVudC5zaHJpbmtUb0ZpdHx8WC5zLmFsaWdubWVudC50ZXh0Um90YXRpb24hPUhbRmVdLmFs''@;'; put 'put ''aWdubWVudC50ZXh0Um90YXRpb258fFgucy5hbGlnbm1lbnQuaW5kZW50IT1IW0ZlXS5hbGlnbm1lbnQuaW5kZW50KWNvbnRpbnVlfWVsc2UgaWYoSFtGZV0uYWxpZ25tZW50KWNvbnRpbnVlO2lmKFgucyl7aWYoISFYLnMuaGlkZGVuPT0oIUhbRmVdLnByb3RlY3Rpb258fCFIW0ZlXS5wcm90''@;'; put 'put ''ZWN0aW9uLmhpZGRlbil8fCEhWC5zLmVkaXRhYmxlPT0oIUhbRmVdLnByb3RlY3Rpb258fCFIW0ZlXS5wcm90ZWN0aW9uLmVkaXRhYmxlKSljb250aW51ZX1lbHNlIGlmKEhbRmVdLnByb3RlY3Rpb24pY29udGludWU7cmV0dXJuIEZlfX1lbHNlIGZvcihGZT0wO0ZlIT1aZTsrK0ZlKWlmKEhb''@;'; put 'put ''RmVdLm51bUZtdElkPT09eGUpcmV0dXJuIEZlO3JldHVybiBIW1plXT17bnVtRm10SWQ6eGUsZm9udElkOmplLGZpbGxJZDpZZSxib3JkZXJJZDpNdCx4ZklkOnh0LGFwcGx5TnVtYmVyRm9ybWF0OjF9LGplPjAmJihIW1plXS5hcHBseUZvbnQ9MSksWWU+MCYmKEhbWmVdLmFwcGx5RmlsbD0x''@;'; put 'put ''KSxNdD4wJiYoSFtaZV0uYXBwbHlCb3JkZXI9MSksIWllJiZYLnMmJlgucy5zdHlsZSYmIk5vcm1hbCIhPVgucy5zdHlsZSYmKEhbWmVdLnN0eWxlPVgucy5zdHlsZSksWC5zJiZYLnMuYWxpZ25tZW50JiYoSFtaZV0uYWxpZ25tZW50PXt9LFsiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwid3Jh''@;'; put 'put ''cFRleHQiLCJzaHJpbmtUb0ZpdCIsImluZGVudCIsInRleHRSb3RhdGlvbiJdLmZvckVhY2goZnVuY3Rpb24oVG4pe251bGwhPVgucy5hbGlnbm1lbnRbVG5dJiYoSFtaZV0uYWxpZ25tZW50W1RuXT1YLnMuYWxpZ25tZW50W1RuXSl9KSksWC5zJiZYLnMuaGlkZGVuJiYoSFtaZV0ucHJvdGVj''@;'; put 'put ''dGlvbnx8KEhbWmVdLnByb3RlY3Rpb249e30pLEhbWmVdLnByb3RlY3Rpb24uaGlkZGVuPSEwKSxYLnMmJlgucy5lZGl0YWJsZSYmKEhbWmVdLnByb3RlY3Rpb258fChIW1plXS5wcm90ZWN0aW9uPXt9KSxIW1plXS5wcm90ZWN0aW9uLmVkaXRhYmxlPSEwKSxaZX1mdW5jdGlvbiBkNShILGll''@;'; put 'put ''LFgsd2UseGUsRmUsWmUsamUpeyJkIj09PUgudCYmInN0cmluZyI9PXR5cGVvZiBILnYmJihILnY9ZG4oSC52KSk7dHJ5e0ZlLmNlbGxORiYmKEguej1GLl90YWJsZVtpZV0pfWNhdGNoKE10KXtpZihGZS5XVEYpdGhyb3cgTXR9aWYoKCFGZXx8ITEhPT1GZS5jZWxsVGV4dCkmJiJ6IiE9SC50''@;'; put 'put ''KXRyeXtpZihudWxsPT1GLl90YWJsZVtpZV0mJkYubG9hZChEZVtpZV18fCJHZW5lcmFsIixpZSksImUiPT09SC50KUgudz1ILnd8fE4xW0gudl07ZWxzZSBpZigwPT09aWUpaWYoIm4iPT09SC50KUgudz0oMHxILnYpPT09SC52P0YuX2dlbmVyYWxfaW50KEgudik6Ri5fZ2VuZXJhbF9udW0o''@;'; put 'put ''SC52KTtlbHNlIGlmKCJkIj09PUgudCl7dmFyIFllPWZ0KEgudik7SC53PSgwfFllKT09PVllP0YuX2dlbmVyYWxfaW50KFllKTpGLl9nZW5lcmFsX251bShZZSl9ZWxzZXtpZih2b2lkIDA9PT1ILnYpcmV0dXJuIiI7SC53PUYuX2dlbmVyYWwoSC52LFVjKX1lbHNlIEgudz1GLmZvcm1hdChp''@;'; put 'put ''ZSwiZCI9PT1ILnQ/ZnQoSC52KTpILnYsVWMpfWNhdGNoKE10KXtpZihGZS5XVEYpdGhyb3cgTXR9aWYoRmUuY2VsbFN0eWxlcyYmamUpe2lmKEgucz17fSxudWxsIT1YJiZqZS5GaWxscyl0cnl7Ym4oSC5zLGplLkZpbGxzW1hdKX1jYXRjaChNdCl7aWYoRmUuV1RGKXRocm93IE10fWlmKG51''@;'; put 'put ''bGwhPXdlJiZqZS5Gb250cyl0cnl7Ym4oSC5zLGplLkZvbnRzW3dlXSl9Y2F0Y2goTXQpe2lmKEZlLldURil0aHJvdyBNdH1pZihudWxsIT14ZSYmamUuQm9yZGVycyl0cnl7Ym4oSC5zLGplLkJvcmRlcnNbeGVdKX1jYXRjaChNdCl7aWYoRmUuV1RGKXRocm93IE10fX19ZnVuY3Rpb24gb0Eo''@;'; put 'put ''SCxpZSxYKXtpZihIJiZIWyIhcmVmIl0pe3ZhciB3ZT1GbyhIWyIhcmVmIl0pO2lmKHdlLmUuYzx3ZS5zLmN8fHdlLmUucjx3ZS5zLnIpdGhyb3cgbmV3IEVycm9yKCJCYWQgcmFuZ2UgKCIrWCsiKTogIitIWyIhcmVmIl0pfX12YXIgcF89LzwoPzpcdzopP21lcmdlQ2VsbCByZWY9IltBLVow''@;'; put 'put ''LTk6XSsiXHMqW1wvXT8+L2csZ189LzwoPzpcdys6KT9zaGVldERhdGFbXj5dKj4oW1xzXFNdKik8XC8oPzpcdys6KT9zaGVldERhdGE+LyxzeD0vPCg/Olx3Oik/aHlwZXJsaW5rIFtePl0qPi9nbSxtXz0vIihcdyo6XHcqKSIvLEdCPS88KD86XHc6KT9jb2xcYltePl0qW1wvXT8+L2csdkc9''@;'; put 'put ''LzwoPzpcdzopP2NvbnRyb2xcYltePl0qW1wvXT8+L2csYUE9LzwoPzpcdzopP2F1dG9GaWx0ZXJbXj5dKihbXC9dfD4oW1xzXFNdKik8XC8oPzpcdzopP2F1dG9GaWx0ZXIpPi9nLHZfPS88KD86XHc6KT9wYWdlTWFyZ2luc1tePl0qXC8+L2csQV89LzwoPzpcdzopP3NoZWV0UHJcYig/Olte''@;'; put 'put ''PmEtel1bXj5dKik/XC8+LyxsQT0vPCg/Olx3Oik/c2hlZXRQcm90ZWN0aW9uXGIoPzpbXj5hLXpdW14+XSopP1wvPi8sSW09LzwoPzpcdzopP3NoZWV0UHJbXj5dKig/OltcL118PihbXHNcU10qKTxcLyg/Olx3Oik/c2hlZXRQcik+LyxXQj0vPCg/Olx3Oik/c2hlZXRWaWV3c1tePl0qKD86''@;'; put 'put ''W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9zaGVldFZpZXdzKT4vLGVjPS88KD86XHcrOik/ZGF0YVZhbGlkYXRpb25zW14+XSooPzpbXC9dfD4oW1xzXFNdKj8pPFwvKD86XHcrOik/ZGF0YVZhbGlkYXRpb25zKT4vLERtPS88KD86XHcrOik/Y29uZGl0aW9uYWxGb3JtYXR0aW5nXGJbXj5d''@;'; put 'put ''Kig/OltcL118PihbXHNcU10qPyk8XC8oPzpcdys6KT9jb25kaXRpb25hbEZvcm1hdHRpbmcpPi9nLExtPS88KD86XHc6KT9zaGVldEZvcm1hdFByW14+XSpcLz4vLEFHPS88KD86XHcrOik/dGFibGVQYXJ0cy4qPz4oW1xzXFNdKj8pPFwvKD86XHcrOik/dGFibGVQYXJ0cz4vLFlCPS88KD86''@;'; put 'put ''XHc6KT9wYWdlU2V0dXBbXj5dKlwvPi8seV89LzwoPzpcdzopP3Jvd0JyZWFrc1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9yb3dCcmVha3MpPi8sc0E9LzwoPzpcdzopP2NvbEJyZWFrc1tePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9jb2xCcmVha3MpPi8sdUE9''@;'; put 'put ''LzwoPzpcdzopP2hlYWRlckZvb3RlcltePl0qKD86W1wvXXw+KFtcc1xTXSopPFwvKD86XHc6KT9oZWFkZXJGb290ZXIpPi8sdXg9LzwoPzpcdzopP3ByaW50T3B0aW9uc1xiW14+XC9dKlwvPi87dmFyIF8xPS88KD86XHc6KT90YWJsZVBhcnRcYlteXC8+XSpbXC9dPz4vZztmdW5jdGlvbiBP''@;'; put 'put ''bShILGllLFgsd2Upe3ZhciB4ZT1lbihIKTtYLlNoZWV0c1t3ZV18fChYLlNoZWV0c1t3ZV09e30pLHhlLmNvZGVOYW1lJiYoWC5TaGVldHNbd2VdLkNvZGVOYW1lPXhlLmNvZGVOYW1lKX12YXIgYl89LzwoPzpcdzopP3RhYkNvbG9yW14+XSpbXC9dPz4vLGN4PS88KD86XHc6KT9wYWdlU2V0''@;'; put 'put ''VXBQcltePl0qW1wvXT8+LyxmQT0vPCg/Olx3Oik/b3V0bGluZVByW14+XSpbXC9dPz4vLF9fPXtkaXNwbGF5ZWQ6ImFzRGlzcGxheWVkIixlbmQ6ImF0RW5kIixub25lOiJub25lIn0sQ189dHQoX18pLF8yPXtkaXNwbGF5ZWQ6ImRpc3BsYXllZCIsbm9uZToiYmxhbmsiLGRhc2g6ImRhc2gi''@;'; put 'put ''LCJuL2EiOiJOQSJ9LGhBPXR0KF8yKSxkQT0vPCg/Olx3Oik/YnJrW14+XSpcLz4vZyxNXz1bIm9iamVjdHMiLCJzY2VuYXJpb3MiLCJzZWxlY3RMb2NrZWRDZWxscyIsInNlbGVjdFVubG9ja2VkQ2VsbHMiXSxnQT1bImZvcm1hdENvbHVtbnMiLCJmb3JtYXRSb3dzIiwiZm9ybWF0Q2VsbHMi''@;'; put 'put ''LCJpbnNlcnRDb2x1bW5zIiwiaW5zZXJ0Um93cyIsImluc2VydEh5cGVybGlua3MiLCJkZWxldGVDb2x1bW5zIiwiZGVsZXRlUm93cyIsInNvcnQiLCJhdXRvRmlsdGVyIiwicGl2b3RUYWJsZXMiXTtmdW5jdGlvbiBQbShIKXt2YXIgaWU9e307cmV0dXJuWyJsZWZ0IiwicmlnaHQiLCJ0b3Ai''@;'; put 'put ''LCJib3R0b20iLCJoZWFkZXIiLCJmb290ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKFgpe0hbWF0mJihpZVtYXT1wYXJzZUZsb2F0KEhbWF0pKX0pLGllfXZhciBSaD17Q3VzdG9tOiJjdXN0b20iLERhdGU6ImRhdGUiLFRpbWU6InRpbWUiLExlbmd0aDoidGV4dExlbmd0aCIsTGlzdDoibGlzdCIs''@;'; put 'put ''RGVjaW1hbDoiZGVjaW1hbCIsV2hvbGU6Indob2xlIixBbnk6Im5vbmUifSxwNT10dChSaCksRzQ9e0lOOiJiZXR3ZWVuIixPVDoibm90QmV0d2VlbiIsRVE6ImVxdWFsIixORToibm90RXF1YWwiLEdUOiJncmVhdGVyVGhhbiIsTFQ6Imxlc3NUaGFuIixHRToiZ3JlYXRlclRoYW5PckVxdWFs''@;'; put 'put ''IixMRToibGVzc1RoYW5PckVxdWFsIn0sTTY9dHQoRzQpO2Z1bmN0aW9uIEFBKEgsaWUsWCl7dmFyIHdlPVtdLHhlPXt9LEZlPSIiLFplPSExLGplPTAsWWU9MDtyZXR1cm4gSC5yZXBsYWNlKEd0LGZ1bmN0aW9uKE10LHh0KXt2YXIgUnQ9ZW4oTXQpO3N3aXRjaChJbihSdFswXSkpe2Nhc2Ui''@;'; put 'put ''PGRhdGFWYWxpZGF0aW9ucyI6Y2FzZSI8ZGF0YVZhbGlkYXRpb25zPiI6Y2FzZSI8L2RhdGFWYWxpZGF0aW9ucz4iOmJyZWFrO2Nhc2UiPGRhdGFWYWxpZGF0aW9uIjp4ZT17dDpwNVtSdC50eXBlfHwibm9uZSJdLHJlZjooRmU9UnQuc3FyZWYpP0ZlLmluZGV4T2YoIiAiKT4tMT9GZTpGbyhG''@;'; put 'put ''ZSk6IiJ9LFJ0Lm9wZXJhdG9yJiYoeGUub3A9TTZbUnQub3BlcmF0b3JdKSx4ZS5ibGFuaz0hIVJ0LmFsbG93QmxhbmsmJkRpKFJ0LmFsbG93QmxhbmspLCghUnQuc2hvd0lucHV0TWVzc2FnZXx8IURpKFJ0LnNob3dJbnB1dE1lc3NhZ2UpKSYmKHhlLmlucHV0PSExKSxSdC5wcm9tcHRUaXRs''@;'; put 'put ''ZSYmKCh4ZS5pbnB1dHx8KHhlLmlucHV0PXt9KSkudGl0bGU9Z3IoUnQucHJvbXB0VGl0bGUpKSxSdC5wcm9tcHQmJigoeGUuaW5wdXR8fCh4ZS5pbnB1dD17fSkpLm1lc3NhZ2U9Z3IoUnQucHJvbXB0KSksKCFSdC5zaG93RXJyb3JNZXNzYWdlfHwhRGkoUnQuc2hvd0Vycm9yTWVzc2FnZSkp''@;'; put 'put ''JiYoeGUuZXJyb3I9ITEpLFJ0LmVycm9yVGl0bGUmJigoeGUuZXJyb3J8fCh4ZS5lcnJvcj17fSkpLnRpdGxlPWdyKFJ0LmVycm9yVGl0bGUpKSxSdC5lcnJvciYmKCh4ZS5lcnJvcnx8KHhlLmVycm9yPXt9KSkubWVzc2FnZT1ncihSdC5lcnJvcikpLHhlLmVycm9yP3hlLmVycm9yLnN0eWxl''@;'; put 'put ''PVJ0LmVycm9yU3R5bGV8fCJzdG9wIjpSdC5lcnJvclN0eWxlJiYoeGUuZXJyb3I9e3N0eWxlOlJ0LmVycm9yU3R5bGV9KSx4ZS50JiZ3ZS5wdXNoKHhlKTticmVhaztjYXNlIjxkYXRhVmFsaWRhdGlvbi8+IjpjYXNlIjwvZGF0YVZhbGlkYXRpb24+IjpicmVhaztjYXNlIjxzcXJlZj4iOlll''@;'; put 'put ''PXh0K010Lmxlbmd0aDticmVhaztjYXNlIjwvc3FyZWY+IjpGZT1ILnNsaWNlKFllLHh0KSx4ZS5yZWY9RmU/RmUuaW5kZXhPZigiICIpPi0xP0ZlOkZvKEZlKToiIjticmVhaztjYXNlIjxmPiI6Y2FzZSI8Zm9ybXVsYTEiOmNhc2UiPGZvcm11bGExPiI6Y2FzZSI8Zm9ybXVsYTIiOmNhc2Ui''@;'; put 'put ''PGZvcm11bGEyPiI6amU9eHQrTXQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9mb3JtdWxhMT4iOmNhc2UiPC9mb3JtdWxhMj4iOmlmKFgpYnJlYWs7Y2FzZSI8L2Y+Ijp2YXIgVXQ9Z3IoVzAoSC5zbGljZShqZSx4dCkpKTtzd2l0Y2goeGUudCl7Y2FzZSJMaXN0IjppZih4ZS5sfHx4ZS5mKWJyZWFr''@;'; put 'put ''O2lmKDM0PT1VdC5jaGFyQ29kZUF0KDApKXt4ZS5sPVV0LnNsaWNlKDEsLTEpLnNwbGl0KCIsIik7YnJlYWt9Y2FzZSJDdXN0b20iOm51bGw9PXhlLmYmJih4ZS5mPVV0KTticmVhaztjYXNlIkRhdGUiOmNhc2UiRGVjaW1hbCI6Y2FzZSJMZW5ndGgiOmNhc2UiVGltZSI6Y2FzZSJXaG9sZSI6''@;'; put 'put ''eGUub3B8fCh4ZS5vcD0iSU4iKSxudWxsPT14ZS52P3hlLnY9aXNOYU4oK1V0KT9VdDorVXQ6KHhlLm1pbj14ZS52LHhlLm1heD1pc05hTigrVXQpP1V0OitVdCxkZWxldGUgeGUudil9YnJlYWs7Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2Fz''@;'; put 'put ''ZSI8ZXh0IjpaZT0hMDticmVhaztjYXNlIjwvZXh0PiI6WmU9ITE7YnJlYWs7ZGVmYXVsdDppZihpZSYmaWUuV1RGJiYhWmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitSdFswXSsiIGluIGRhdGEgdmFsaWRhdGlvbiIpfXJldHVybiBNdH0pLHdlfXZhciB5QT17SU46ImNvbnRh''@;'; put 'put ''aW5zVGV4dCIsT1Q6Im5vdENvbnRhaW5zVGV4dCIsU1Q6ImJlZ2luc1dpdGgiLE5EOiJlbmRzV2l0aCJ9LExfPXR0KHlBKSx3QT17TE06Imxhc3RNb250aCIsTFM6Imxhc3Q3RGF5cyIsTFc6Imxhc3RXZWVrIixOTToibmV4dE1vbnRoIixOVzoibmV4dFdlZWsiLFRNOiJ0aGlzTW9udGgiLFRX''@;'; put 'put ''OiJ0aGlzV2VlayIsVEQ6InRvZGF5IixUTzoidG9tb3Jyb3ciLFlTOiJ5ZXN0ZXJkYXkifSxGbT10dCh3QSk7ZnVuY3Rpb24gSG0oSCl7dmFyIGllPXt9O3JldHVybiBudWxsIT1ILnZhbCYmKGlzTmFOKCtILnZhbCk/aWUuZj1ILnZhbDppZS52PStILnZhbCksaWUudD1ILnR5cGUsaWV9ZnVu''@;'; put 'put ''Y3Rpb24gQmQoSCl7cmV0dXJuIF9pKCJjZnZvIixudWxsLHt0eXBlOkgudCx2YWw6bnVsbCE9SC52P0gudjpScihILmYpfSl9ZnVuY3Rpb24gT18oSCxpZSxYLHdlKXt2YXIgeGU9SG0oSCk7cmV0dXJuIHhlLmNvbG9yPUUzKGllLFgsd2UpLHhlfWZ1bmN0aW9uIGd4KEgsaWUsWCx3ZSx4ZSl7''@;'; put 'put ''dmFyIEZlPShILm1hdGNoKC9zcXJlZj0iKFtcdzokIF0qKSIvKXx8W10pWzFdO3JldHVybiBmdW5jdGlvbiB3RyhILGllLFgsd2UseGUsRmUpe3ZhciBaZT0hMSxqZT1bXSxZZT17ZjpbXX0sTXQ9MCx4dD0wLFJ0PXtjZnZvczpbXSxjb2xvcnM6W119LFV0PXt9LG5uPS0xLENuPTAsRHQ9IiI7''@;'; put 'put ''cmV0dXJuIEgucmVwbGFjZShHdCxmdW5jdGlvbih6dCxQbil7dmFyIFRuPWVuKHp0KTtzd2l0Y2goSW4oVG5bMF0pKXtjYXNlIjxjb25kaXRpb25hbEZvcm1hdHRpbmciOmNhc2UiPC9jb25kaXRpb25hbEZvcm1hdHRpbmc+IjpicmVhaztjYXNlIjxjZlJ1bGUiOmNhc2UiPGNmUnVsZT4iOmlm''@;'; put 'put ''KHh0PVBuLFV0PVRuLFllPXtyZWY6aWUsZjpbXX0sIXp0Lm1hdGNoKC9cLz4vKSlicmVhaztjYXNlIjwvY2ZSdWxlPiI6c3dpdGNoKFV0LmR4ZklkJiZ4ZSYmeGUuRFhGJiYoWWUucz14ZS5EWEZbK1V0LmR4ZklkXSksVXQudHlwZSl7Y2FzZSJkdXBsaWNhdGVWYWx1ZXMiOlllLnQ9ImR1cCI7''@;'; put 'put ''YnJlYWs7Y2FzZSJ1bmlxdWVWYWx1ZXMiOlllLnQ9InVuaXF1ZSI7YnJlYWs7Y2FzZSJjb250YWluc0JsYW5rcyI6WWUudD0iYmxhbmsiLFllLnY9ITA7YnJlYWs7Y2FzZSJub3RDb250YWluc0JsYW5rcyI6WWUudD0iYmxhbmsiLFllLnY9ITE7YnJlYWs7Y2FzZSJjb250YWluc0Vycm9ycyI6''@;'; put 'put ''WWUudD0iZXJyb3IiLFllLnY9ITA7YnJlYWs7Y2FzZSJub3RDb250YWluc0Vycm9ycyI6WWUudD0iZXJyb3IiLFllLnY9ITE7YnJlYWs7Y2FzZSJjZWxsSXMiOnN3aXRjaChVdC5vcGVyYXRvcil7Y2FzZSJjb250YWluc1RleHQiOmNhc2Uibm90Q29udGFpbnMiOmNhc2UiYmVnaW5zV2l0aCI6''@;'; put 'put ''Y2FzZSJlbmRzV2l0aCI6aWYoWWUudD0idGV4dCIsWWUub3A9TF9bVXQub3BlcmF0b3JdLG51bGw9PVV0LnRleHQpdGhyb3cgbmV3IEVycm9yKCJDRiBUZXh0IFJ1bGUgIitZZS5vcCsiIG1pc3NpbmcgdGV4dCIpO1llLnY9VXQudGV4dCxZZS5mPVllLmZbMF0sbnVsbD09WWUuZiYmZGVsZXRl''@;'; put 'put ''IFllLmY7YnJlYWs7ZGVmYXVsdDpZZS50PSJ2YWwiLFllLm9wPU02W1V0Lm9wZXJhdG9yXSwxPT1ZZS5mLmxlbmd0aD9pc05hTigrWWUuZlswXSk/WWUuZj1ZZS5mWzBdOihZZS52PStZZS5mWzBdLGRlbGV0ZSBZZS5mKTooWWUubWluPWlzTmFOKCtZZS5mWzBdKT9ZZS5mWzBdOitZZS5mWzBd''@;'; put 'put ''LFllLm1heD1pc05hTigrWWUuZlsxXSk/WWUuZlsxXTorWWUuZlsxXSxkZWxldGUgWWUuZil9YnJlYWs7Y2FzZSJleHByZXNzaW9uIjpZZS50PSJmb3JtdWxhIixZZS5mPVllLmZbMF07YnJlYWs7Y2FzZSJjb250YWluc1RleHQiOmNhc2Uibm90Q29udGFpbnNUZXh0IjpjYXNlImJlZ2luc1dp''@;'; put 'put ''dGgiOmNhc2UiZW5kc1dpdGgiOmlmKFllLnQ9InRleHQiLFllLm9wPUxfW1V0LnR5cGVdLG51bGw9PVV0LnRleHQmJlllLmYubGVuZ3RoPDIpdGhyb3cgbmV3IEVycm9yKCJDRiBUZXh0IFJ1bGUgIitZZS5vcCsiIG1pc3NpbmcgdGV4dCIpO1llLnY9bnVsbCE9VXQudGV4dD9VdC50ZXh0Olll''@;'; put 'put ''LmZbMV0ubWF0Y2goLyIuKiIvKT9ZZS5mWzFdLnNsaWNlKDEsLTEpOlllLmZbMV0sWWUuZj1ZZS5mWzBdLG51bGw9PVllLmYmJmRlbGV0ZSBZZS5mO2JyZWFrO2Nhc2UiY29sb3JTY2FsZSI6aWYoWWUudD0ic2NhbGUiLCFZZS5jb2xvclNjYWxlKXRocm93IG5ldyBFcnJvcigibWlzc2luZyBj''@;'; put 'put ''b2xvclNjYWxlIik7WWUuY21pbj1PXygoUnQ9WWUuY29sb3JTY2FsZSkuY2Z2b3NbMF0sUnQuY29sb3JzWzBdLHhlLHdlKSwzPT1SdC5jZnZvcy5sZW5ndGgmJihZZS5jbWlkPU9fKFJ0LmNmdm9zWzFdLFJ0LmNvbG9yc1sxXSx4ZSx3ZSkpLFllLmNtYXg9T18oUnQuY2Z2b3NbUnQuY2Z2b3Mu''@;'; put 'put ''bGVuZ3RoLTFdLFJ0LmNvbG9yc1tSdC5jZnZvcy5sZW5ndGgtMV0seGUsd2UpO2JyZWFrO2Nhc2UiZGF0YUJhciI6aWYoWWUudD0iYmFyIiwhWWUuZGF0YUJhcil0aHJvdyBuZXcgRXJyb3IoIm1pc3NpbmcgZGF0YUJhciIpOyhSdD1ZZS5kYXRhQmFyKS5jb2xvcnNbMF0mJihZZS5jb2xvcj1F''@;'; put 'put ''MyhSdC5jb2xvcnNbMF0seGUsd2UpKSxZZS5jbWluPUhtKFJ0LmNmdm9zWzBdKSxZZS5jbWF4PUhtKFJ0LmNmdm9zWzFdKTticmVhaztjYXNlImljb25TZXQiOmlmKFllLnQ9Imljb24iLCFZZS5pY29uU2V0KXRocm93IG5ldyBFcnJvcigibWlzc2luZyBpY29uU2V0Iik7WWUudGhyZXNoPShS''@;'; put 'put ''dD1ZZS5pY29uU2V0KS5jZnZvcy5tYXAoZnVuY3Rpb24oT24pe3JldHVybiBIbShPbil9KSxZZS52PVJ0LnRhZyYmUnQudGFnLmljb25TZXR8fCIzVHJhZmZpY0xpZ2h0czEiLFllLnJldj1EaShSdC50YWcucmV2ZXJzZXx8ImZhbHNlIiksWWUucGN0PURpKFJ0LnRhZy5wZXJjZW50fHwidHJ1''@;'; put 'put ''ZSIpLFllLmhpZGRlbj0hRGkoUnQudGFnLnNob3dWYWx1ZXx8InRydWUiKTticmVhaztjYXNlInRpbWVQZXJpb2QiOlllLnQ9ImRhdGUiLFllLm9wPUZtW1V0LnRpbWVQZXJpb2RdO2JyZWFrO2Nhc2UiYWJvdmVBdmVyYWdlIjpZZS50PSJhdmciLFllLm9wPSIwIj09VXQuYWJvdmVBdmVyYWdl''@;'; put 'put ''PyJMIjoiRyIsWWUub3ArPVV0LnN0ZERldj9VdC5zdGREZXY6RGkoVXQuZXF1YWxBdmVyYWdlfHwiMCIpPyJFIjoiVCI7YnJlYWs7Y2FzZSJ0b3AxMCI6WWUudD0icmFuayIsWWUub3A9KERpKFV0LmJvdHRvbXx8IjAiKT8iQiI6IlQiKSsoRGkoVXQucGVyY2VudHx8IjAiKT8iUCI6IlYiKSxZ''@;'; put 'put ''ZS52PStVdC5yYW5rO2JyZWFrO2RlZmF1bHQ6dGhyb3ciVW5zdXBwb3J0ZWQgQ0YgVHlwZSAiK1V0LnR5cGV9aWYoZGVsZXRlIFllLmNvbG9yU2NhbGUsZGVsZXRlIFllLmRhdGFCYXIsZGVsZXRlIFllLmljb25TZXQsIVllLnQpdGhyb3cgY29uc29sZS5sb2coSC5zbGljZSh4dCxQbit6dC5s''@;'; put 'put ''ZW5ndGgpKSwiYmFkIENGIHJ1bGUiO251bGwhPVllLmYmJiFZZS5mLmxlbmd0aCYmZGVsZXRlIFllLmYsWWUuZGVsfHxqZS5wdXNoKFllKTticmVhaztjYXNlIjxmb3JtdWxhIjpjYXNlIjxmb3JtdWxhPiI6TXQ9UG4renQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9mb3JtdWxhPiI6WWUuZi5wdXNo''@;'; put 'put ''KGdyKEguc2xpY2UoTXQsUG4pKSk7YnJlYWs7Y2FzZSI8ZiI6Y2FzZSI8Zj4iOk10PVBuK3p0Lmxlbmd0aDticmVhaztjYXNlIjwvZj4iOlllLmYucHVzaChncihILnNsaWNlKE10LFBuKSkpO2JyZWFrO2Nhc2UiPHNxcmVmPiI6Q249UG4renQubGVuZ3RoO2JyZWFrO2Nhc2UiPC9zcXJlZj4i''@;'; put 'put ''OkR0PUguc2xpY2UoQ24sUG4pLGllPUR0P0R0LmluZGV4T2YoIiAiKT4tMT9EdDpGbyhEdCk6IiIsWWUucmVmPWllLGplLmZvckVhY2goZnVuY3Rpb24oT24pe09uLnJlZj1pZX0pO2JyZWFrO2Nhc2UiPGNvbG9yU2NhbGUiOmNhc2UiPGNvbG9yU2NhbGU+IjpjYXNlIjxkYXRhQmFyIjpjYXNl''@;'; put 'put ''IjxkYXRhQmFyPiI6Y2FzZSI8aWNvblNldCI6Y2FzZSI8aWNvblNldD4iOlJ0PXtjZnZvczpbXSxjb2xvcnM6W10sdGFnOlRufSxNdD1Qbit6dC5sZW5ndGg7YnJlYWs7Y2FzZSI8L2NvbG9yU2NhbGU+IjpZZS5jb2xvclNjYWxlPVJ0O2JyZWFrO2Nhc2UiPC9kYXRhQmFyPiI6WWUuZGF0YUJh''@;'; put 'put ''cj1SdDticmVhaztjYXNlIjwvaWNvblNldD4iOlllLmljb25TZXQ9UnQ7YnJlYWs7Y2FzZSI8Y2Z2byI6Y2FzZSI8Y2Z2by8+IjpSdC5jZnZvcy5wdXNoKFRuKTticmVhaztjYXNlIjwvY2Z2bz4iOmJyZWFrO2Nhc2UiPGNvbG9yIjpSdC5jb2xvcnMucHVzaChUbik7YnJlYWs7Y2FzZSI8L2Nv''@;'; put 'put ''bG9yPiI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6YnJlYWs7Y2FzZSI8ZXh0IjpaZT0hMDticmVhaztjYXNlIjwvZXh0PiI6WmU9ITE7YnJlYWs7Y2FzZSI8bmVnYXRpdmVGaWxsQ29sb3IiOmNhc2UiPGF4aXNDb2xvciI6Y2FzZSI8Ym9yZGVyQ29sb3Ii''@;'; put 'put ''OmNhc2UiPG5lZ2F0aXZlQm9yZGVyQ29sb3IiOmNhc2UiPGNmSWNvbiI6WWUuZGVsPSEwO2JyZWFrO2Nhc2UiPGR4Zj4iOlplPSEwLG5uPVBuO2JyZWFrO2Nhc2UiPC9keGY+IjpaZT0hMSxZZS5zPXA2KEguc2xpY2Uobm4sUG4renQubGVuZ3RoKSx4ZSx3ZSxYKTticmVhaztkZWZhdWx0Omlm''@;'; put 'put ''KFgmJlguV1RGKXtpZihGZSlicmVhaztpZighWmUpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIitUblswXSsiIGluIGNvbmRmbXQiKX19cmV0dXJuIHp0fSksamV9KEgsRmUsaWUsWCx3ZSx4ZSl9dmFyIHZ4PS88KD86XHc6KT9zaGVldFZpZXcoPzpbXj5hLXpdW14+XSopP1wvPz4v''@;'; put 'put ''ZztmdW5jdGlvbiBEbyhILGllKXt2YXIgWD0wLHdlPTAseGU9MCxGZT0wO2lmKCFpZXx8IWllLkNlbGxYZilyZXR1cm4gbnVsbDt2YXIgWmU9aWUuQ2VsbFhmW0hdO251bGwhPVplJiYobnVsbCE9WmUubnVtRm10SWQmJihYPVplLm51bUZtdElkKSxudWxsIT1aZS5maWxsSWQmJih3ZT1aZS5m''@;'; put 'put ''aWxsSWQpLG51bGwhPVplLmZvbnRJZCYmKHhlPVplLmZvbnRJZCksbnVsbCE9WmUuYm9yZGVySWQmJihGZT1aZS5ib3JkZXJJZCkpO3ZhciBqZT17dDoieiJ9O3RyeXtkNShqZSxYLHdlLHhlLEZlLHtXVEY6MSxjZWxsU3R5bGVzOiEwfSwwLGllKX1jYXRjaChZZSl7fXJldHVybiBqZS5zfWZ1''@;'; put 'put ''bmN0aW9uIFhCKEgsaWUsWCx3ZSl7aWYodm9pZCAwPT09SC52JiZ2b2lkIDA9PT1ILmYmJm51bGw9PUgucyYmIUguY3x8InoiPT09SC50JiYhSC5jJiYhd2Uuc2hlZXRTdHVicylyZXR1cm4iIjt2YXIgeGU9IiIsRmU9SC50LFplPUgudjtpZigieiIhPT1ILnQpc3dpdGNoKEgudCl7Y2FzZSJi''@;'; put 'put ''Ijp4ZT1ILnY/IjEiOiIwIjticmVhaztjYXNlIm4iOnhlPSIiK0gudjticmVhaztjYXNlImUiOnhlPU4xW0gudl07YnJlYWs7Y2FzZSJkIjp3ZSYmd2UuY2VsbERhdGVzP3hlPWRuKEgudiwtMSkudG9JU09TdHJpbmcoKTooKEg9bG4oSCkpLnQ9Im4iLHhlPSIiKyhILnY9ZnQoZG4oSC52KSkp''@;'; put 'put ''KSx2b2lkIDA9PT1ILnomJihILno9Ri5fdGFibGVbMTRdKTticmVhaztkZWZhdWx0OnhlPUgudn12YXIgamU9InoiPT1ILnQ/IiI6c2EoInYiLFJyKHhlKSksWWU9e3I6aWV9LE10PXdlP1kxKHdlLmNlbGxYZnMsd2UuY2VsbFN0eWxlWGZzLEgsd2UpOjA7c3dpdGNoKDAhPT1NdCYmKFllLnM9''@;'; put 'put ''TXQpLEgudCl7Y2FzZSJuIjpjYXNlInoiOmJyZWFrO2Nhc2UiZCI6WWUudD0iZCI7YnJlYWs7Y2FzZSJiIjpZZS50PSJiIjticmVhaztjYXNlImUiOlllLnQ9ImUiO2JyZWFrO2RlZmF1bHQ6aWYobnVsbD09SC52KXtkZWxldGUgSC50O2JyZWFrfWlmKHdlJiZ3ZS5ib29rU1NUKXtqZT1zYSgi''@;'; put 'put ''diIsIiIrQzYod2UuU3RyaW5ncyxILnYsSC5SP0gucj11NihILlIpOm51bGwsd2UucmV2U3RyaW5ncykpLFllLnQ9InMiO2JyZWFrfUFycmF5LmlzQXJyYXkoSC5SKT8oamU9Ijxpcz4iK3U2KEguUikrIjwvaXM+IixZZS50PSJpbmxpbmVTdHIiKTpZZS50PSJzdHIifWlmKEgudCE9RmUmJihI''@;'; put 'put ''LnQ9RmUsSC52PVplKSxILmYpe3ZhciB4dD1ILkYmJkguRi5zbGljZSgwLGllLmxlbmd0aCk9PWllP3t0OiJhcnJheSIscmVmOkguRn06bnVsbDtqZT1faSgiZiIsUnIoSC5mKSx4dCkrKG51bGwhPUgudj9qZToiIil9cmV0dXJuIEgubCYmWFsiIWxpbmtzIl0ucHVzaChbaWUsSC5sXSksSC5j''@;'; put 'put ''JiZYWyIhY29tbWVudHMiXS5wdXNoKFtpZSxILmNdKSxfaSgiYyIsamUsWWUpfXZhciBSXz1mdW5jdGlvbigpe3ZhciBIPS88KD86XHcrOik/Y1sgXC8+XS8saWU9LzxcLyg/Olx3KzopP3Jvdz4vLFg9L3I9WyInXShbXiInXSopWyInXS8sd2U9LzwoPzpcdys6KT9pcz4oW1xTXHNdKj8pPFwv''@;'; put 'put ''KD86XHcrOik/aXM+Lyx4ZT0vcmVmPVsiJ10oW14iJ10qKVsiJ10vLEZlPVFpKCJ2IiksWmU9UWkoImYiKTtyZXR1cm4gZnVuY3Rpb24oWWUsTXQseHQsUnQsVXQsbm4sQ24pe2Zvcih2YXIgeXIsYXIscXIsb2ksQTAsRHQ9MCx6dD0iIixQbj1bXSxUbj1bXSxPbj0wLFluPTAsTXI9MCxhaT0i''@;'; put 'put ''IixHcj0wLHpyPTAsY3I9MCxkaT0wLHYwPTAsVWk9MCx0bz1BcnJheS5pc0FycmF5KENuLkNlbGxYZiksYmk9W10sWXI9W10sRWk9QXJyYXkuaXNBcnJheSh4dCksaGk9W10sTnI9e30sa2k9ITEsTjA9WWUuc3BsaXQoaWUpLHQwPSEhUnQuc2hlZXRTdHVicyxpbz0hIVJ0LmNlbGxIVE1MLG9h''@;'; put 'put ''PSEoITE9PT1SdC5jZWxsVGV4dCYmIVJ0LmNlbGxORiYmIVJ0LmNlbGxTdHlsZXMpLCQwPTAsVmE9TjAubGVuZ3RoOyQwIT1WYTsrKyQwKXt2YXIgam89KHp0PU4wWyQwXS50cmltKCkpLmxlbmd0aDtpZigwIT09am8pe3ZhciB3YT0wO2U6Zm9yKER0PTA7RHQ8am87KytEdClzd2l0Y2goenRb''@;'; put 'put ''RHRdKXtjYXNlIj4iOmlmKCIvIiE9enRbRHQtMV0peysrRHQ7YnJlYWsgZX1SdC5jZWxsU3R5bGVzJiZudWxsIT0oYXI9ZW4oenQuc2xpY2Uod2EsRHQpLCEwKSkuciYmcGFyc2VJbnQoYXIuciwxMCkmJihHcj1wYXJzZUludChhci5yLDEwKSxOcj17fSxraT0hMSxhci5odCYmKGtpPSEwLE5y''@;'; put 'put ''LmhwdD1wYXJzZUZsb2F0KGFyLmh0KSxOci5ocHg9QWYoTnIuaHB0KSksYXIuZHlEZXNjZW50JiYoa2k9ITAsTnIuZHlEZXNjZW50PWFyLmR5RGVzY2VudCksIjEiPT1hci5oaWRkZW4mJihraT0hMCxOci5oaWRkZW49ITApLG51bGwhPWFyLm91dGxpbmVMZXZlbCYmKGtpPSEwLE5yLmxldmVs''@;'; put 'put ''PSthci5vdXRsaW5lTGV2ZWwpLGFyLnMmJkNuJiZDbi5DZWxsWGYmJihraT0hMCxOci5zPURvKGFyLnMsQ24pKSxraSYmKGhpW0dyLTFdPU5yKSk7YnJlYWs7Y2FzZSI8Ijp3YT1EdH1pZih3YT49RHQpYnJlYWs7aWYoR3I9bnVsbCE9KGFyPWVuKHp0LnNsaWNlKHdhLER0KSwhMCkpLnI/cGFy''@;'; put 'put ''c2VJbnQoYXIuciwxMCk6R3IrMSx6cj0tMSwhKFJ0LnNoZWV0Um93cyYmUnQuc2hlZXRSb3dzPEdyKSl7UnQubm9kaW18fChVdC5zLnI+R3ItMSYmKFV0LnMucj1Hci0xKSxVdC5lLnI8R3ItMSYmKFV0LmUucj1Hci0xKSk7dmFyIGFvPXt0OiJyb3ciLHJvdzpbXSxSOkdyLTEsaWR4Ok10fTtS''@;'; put 'put ''dC5jZWxsU3R5bGVzJiYoTnI9e30sa2k9ITEsYXIuaHQmJihraT0hMCxOci5ocHQ9cGFyc2VGbG9hdChhci5odCksTnIuaHB4PUFmKE5yLmhwdCkpLGFyLmR5RGVzY2VudCYmKGtpPSEwLE5yLmR5RGVzY2VudD1hci5keURlc2NlbnQpLCIxIj09YXIuaGlkZGVuJiYoa2k9ITAsTnIuaGlkZGVu''@;'; put 'put ''PSEwKSxudWxsIT1hci5vdXRsaW5lTGV2ZWwmJihraT0hMCxOci5sZXZlbD0rYXIub3V0bGluZUxldmVsKSxhci5zJiYoa2k9ITAsTnIucz1Ebyhhci5zLENuKSksa2kmJihSdC5jYWxsYmFjaz9hby5wcm9wcz1OcjpoaVtHci0xXT1OcikpLFBuPXp0LnNsaWNlKER0KS5zcGxpdChIKTtmb3Io''@;'; put 'put ''dmFyIHgwPTA7eDAhPVBuLmxlbmd0aCYmIjwiPT1Qblt4MF0udHJpbSgpLmNoYXJBdCgwKTsrK3gwKTtmb3IoUG49UG4uc2xpY2UoeDApLER0PTA7RHQhPVBuLmxlbmd0aDsrK0R0KWlmKDAhPT0oenQ9UG5bRHRdLnRyaW0oKSkubGVuZ3RoKXtpZihUbj16dC5tYXRjaChYKSxPbj1EdCxZbj0w''@;'; put 'put ''LE1yPTAsenQ9IjxjICIrKCI8Ij09enQuc2xpY2UoMCwxKT8iPiI6IiIpK3p0LG51bGwhPVRuJiYyPT09VG4ubGVuZ3RoKXtmb3IoT249MCxhaT1UblsxXSxZbj0wO1luIT1haS5sZW5ndGgmJiEoKE1yPWFpLmNoYXJDb2RlQXQoWW4pLTY0KTwxfHxNcj4yNik7KytZbilPbj0yNipPbitNcjt6''@;'; put 'put ''cj0tLU9ufWVsc2UrK3pyO2ZvcihZbj0wO1luIT16dC5sZW5ndGgmJjYyIT09enQuY2hhckNvZGVBdChZbik7KytZbik7aWYoKytZbiwoYXI9ZW4oenQuc2xpY2UoMCxZbiksITApKS5yfHwoYXIucj1ZMCh7cjpHci0xLGM6enJ9KSkseXI9e3Q6IiJ9LG51bGwhPShUbj0oYWk9enQuc2xpY2Uo''@;'; put 'put ''WW4pKS5tYXRjaChGZSkpJiYiIiE9PVRuWzFdJiYoeXIudj1ncihUblsxXSkpLFJ0LmNlbGxGb3JtdWxhKXtpZihudWxsIT0oVG49YWkubWF0Y2goWmUpKSYmIiIhPT1UblsxXSl7aWYoeXIuZj1ncihXMChUblsxXSkpLnJlcGxhY2UoL1xyXG4vZywiXG4iKSxSdC54bGZufHwoeXIuZj1YYih5''@;'; put 'put ''ci5mKSksVG5bMF0uaW5kZXhPZigndD0iYXJyYXkiJyk+LTEpeXIuRj0oYWkubWF0Y2goeGUpfHxbXSlbMV0seXIuRi5pbmRleE9mKCI6Iik+LTEmJmJpLnB1c2goW0ZvKHlyLkYpLHlyLkZdKTtlbHNlIGlmKFRuWzBdLmluZGV4T2YoJ3Q9InNoYXJlZCInKT4tMSl7b2k9ZW4oVG5bMF0pO3Zh''@;'; put 'put ''ciBoMD1ncihXMChUblsxXSkpO1J0LnhsZm58fChoMD1YYihoMCkpLFlyW3BhcnNlSW50KG9pLnNpLDEwKV09W29pLGgwLGFyLnJdfX1lbHNlKFRuPWFpLm1hdGNoKC88ZltePl0qXC8+LykpJiZZclsob2k9ZW4oVG5bMF0pKS5zaV0mJih5ci5mPVY0KFlyW29pLnNpXVsxXSxZcltvaS5zaV1b''@;'; put 'put ''Ml0sYXIucikpO3ZhciBqcj11bChhci5yKTtmb3IoWW49MDtZbjxiaS5sZW5ndGg7KytZbilqci5yPj1iaVtZbl1bMF0ucy5yJiZqci5yPD1iaVtZbl1bMF0uZS5yJiZqci5jPj1iaVtZbl1bMF0ucy5jJiZqci5jPD1iaVtZbl1bMF0uZS5jJiYoeXIuRj1iaVtZbl1bMV0pfWlmKG51bGw9PWFy''@;'; put 'put ''LnQmJnZvaWQgMD09PXlyLnYpaWYoeXIuZnx8eXIuRil5ci52PTAseXIudD0ibiI7ZWxzZXtpZighdDApY29udGludWU7eXIudD0ieiJ9ZWxzZSB5ci50PWFyLnR8fCJuIjtzd2l0Y2goVXQucy5jPnpyJiYoVXQucy5jPXpyKSxVdC5lLmM8enImJihVdC5lLmM9enIpLHlyLnQpe2Nhc2UibiI6''@;'; put 'put ''aWYoIiI9PXlyLnZ8fG51bGw9PXlyLnYpe2lmKCF0MCljb250aW51ZTt5ci50PSJ6In1lbHNlIHlyLnY9cGFyc2VGbG9hdCh5ci52KTticmVhaztjYXNlInMiOmlmKHZvaWQgMD09PXlyLnYpe2lmKCF0MCljb250aW51ZTt5ci50PSJ6In1lbHNlIHFyPU9kW3BhcnNlSW50KHlyLnYsMTApXSx5''@;'; put 'put ''ci52PXFyLnQseXIucj1xci5yLHFyLlImJih5ci5SPXFyLlIpLGlvJiYoeXIuaD1xci5oKTticmVhaztjYXNlInN0ciI6eXIudD0icyIseXIudj1udWxsIT15ci52P1cwKHlyLnYpOiIiLGlvJiYoeXIuaD1uMCh5ci52KSk7YnJlYWs7Y2FzZSJpbmxpbmVTdHIiOlRuPWFpLm1hdGNoKHdlKSx5''@;'; put 'put ''ci50PSJzIixudWxsIT1UbiYmKHFyPSR1KFRuWzFdKSk/KHlyLnY9cXIudCxxci5SJiYoeXIuUj1xci5SKSxpbyYmKHlyLmg9cXIuaCkpOnlyLnY9IiI7YnJlYWs7Y2FzZSJiIjp5ci52PURpKHlyLnYpO2JyZWFrO2Nhc2UiZCI6UnQuY2VsbERhdGVzP3lyLnY9ZG4oeXIudiwxKTooeXIudj1m''@;'; put 'put ''dChkbih5ci52LDEpKSx5ci50PSJuIik7YnJlYWs7Y2FzZSJlIjohMSE9PVJ0LmNlbGxUZXh0JiYoeXIudz15ci52KSx5ci52PV9oW3lyLnZdfWlmKG9hKXtjcj1kaT12MD1VaT0wLEEwPW51bGwsdG8mJnZvaWQgMCE9PWFyLnMmJm51bGwhPShBMD1Dbi5DZWxsWGZbYXIuc10pJiYobnVsbCE9''@;'; put 'put ''QTAubnVtRm10SWQmJihjcj1BMC5udW1GbXRJZCksUnQuY2VsbFN0eWxlcyYmKG51bGwhPUEwLmZpbGxJZCYmKGRpPUEwLmZpbGxJZCksbnVsbCE9QTAuZm9udElkJiYodjA9QTAuZm9udElkKSxudWxsIT1BMC5ib3JkZXJJZCYmKFVpPUEwLmJvcmRlcklkKSkpO3RyeXtkNSh5cixjcixkaSx2''@;'; put 'put ''MCxVaSxSdCwwLENuKX1jYXRjaCh2byl7fVJ0LmNlbGxTdHlsZXMmJnlyLnMmJihBMCYmQTAuYWxpZ25tZW50JiYoeXIucy5hbGlnbm1lbnQ9bG4oQTAuYWxpZ25tZW50KSksQTAmJkEwLnByb3RlY3Rpb24mJihudWxsIT1BMC5wcm90ZWN0aW9uLmhpZGRlbiYmKHlyLnMuaGlkZGVuPUEwLnBy''@;'; put 'put ''b3RlY3Rpb24uaGlkZGVuKSxudWxsIT1BMC5wcm90ZWN0aW9uLmVkaXRhYmxlJiYoeXIucy5lZGl0YWJsZT1BMC5wcm90ZWN0aW9uLmVkaXRhYmxlKSksQTAmJkEwLnN0eWxlJiYoeXIucy5zdHlsZT1BMC5zdHlsZSkpLFJ0LmNlbGxEYXRlcyYmdG8mJiJuIj09eXIudCYmRi5pc19kYXRlKEYu''@;'; put 'put ''X3RhYmxlW2NyXSkmJih5ci50PSJkIix5ci52PUh0KHlyLnYpKX12YXIgSGk7UnQubm9kaW0mJihIaT11bChhci5yKSxVdC5zLnI+SGkuciYmKFV0LnMucj1IaS5yKSxVdC5lLnI8SGkuciYmKFV0LmUucj1IaS5yKSksUnQuY2FsbGJhY2s/KEhpPXVsKGFyLnIpLGFvLnJvd1tIaS5jXT15cik6''@;'; put 'put ''RWk/KHh0WyhIaT11bChhci5yKSkucl18fCh4dFtIaS5yXT1bXSkseHRbSGkucl1bSGkuY109eXIpOnh0W2FyLnJdPXlyfVJ0LmNhbGxiYWNrJiZSdC5jYWxsYmFjayhhbyl9fX10MCYmIVJ0LmNhbGxiYWNrJiZEbygwLENuKSxoaS5sZW5ndGg+MCYmKHh0WyIhcm93cyJdPWhpKX19KCksS0I9''@;'; put 'put ''X2koIndvcmtzaGVldCIsbnVsbCx7eG1sbnM6WDAubWFpblswXSwieG1sbnM6ciI6WDAuciwieG1sbnM6eDE0YWMiOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hYyIsInhtbG5zOm1jIjoiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZv''@;'; put 'put ''cm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDYiLCJtYzpJZ25vcmFibGUiOiJ4MTRhYyJ9KTtmdW5jdGlvbiAkQihILGllLFgsd2Upe3ZhciBaZSx4ZT1bY24sS0JdLGplPSIiLFllPVguU2hlZXRzW1guU2hlZXROYW1lc1tIXV07bnVsbD09WWUmJihZZT17fSk7dmFyIE10PVll''@;'; put 'put ''WyIhcmVmIl18fCJBMSIseHQ9Rm8oTXQpO2lmKHh0LmUuYz4xNjM4M3x8eHQuZS5yPjEwNDg1NzUpe2lmKGllLldURil0aHJvdyBuZXcgRXJyb3IoIlJhbmdlICIrTXQrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpYRkQxMDQ4NTc2Iik7eHQuZS5jPU1hdGgubWluKHh0LmUuYywxNjM4Myks''@;'; put 'put ''eHQuZS5yPU1hdGgubWluKHh0LmUuYywxMDQ4NTc1KSxNdD1mYSh4dCl9d2V8fCh3ZT17fSksWWVbIiFjb21tZW50cyJdPVtdO3ZhciBSdD1bXSxVdD1ZZVsiIXByaW50Il07aWYoZnVuY3Rpb24gdmwoSCxpZSxYLHdlLHhlKXt2YXIgRmU9ITEsWmU9e30samU9bnVsbDtpZigieGxzeCIhPT13''@;'; put 'put ''ZS5ib29rVHlwZSYmaWUudmJhcmF3KXt2YXIgWWU9aWUuU2hlZXROYW1lc1tYXTt0cnl7aWUuV29ya2Jvb2smJihZZT1pZS5Xb3JrYm9vay5TaGVldHNbWF0uQ29kZU5hbWV8fFllKX1jYXRjaChVdCl7fUZlPSEwLFplLmNvZGVOYW1lPVJyKFllKX1IJiZIWyIhY29uZGZtdCJdJiYoWmUuZW5h''@;'; put 'put ''YmxlRm9ybWF0Q29uZGl0aW9uc0NhbGN1bGF0aW9uPSIxIiksSCYmSFsiIXRhYmNvbG9yIl0mJihqZT0oamV8fCIiKSsnPHRhYkNvbG9yIHJnYj0iRkYnK0xvKEhbIiF0YWJjb2xvciJdLnJnYikrJyIvPicpO3ZhciBNdD0hMSx4dD17fTtpZigoKChIfHx7fSlbIiFwcmludCJdfHx7fSkucHJv''@;'; put 'put ''cHN8fHt9KS5maXQmJihNdD0hMCx4dC5maXRUb1BhZ2U9MSksTXQmJihqZT0oamV8fCIiKStfaSgicGFnZVNldFVwUHIiLG51bGwseHQpKSxIJiZIWyIhb3V0bGluZSJdKXt2YXIgUnQ9e3N1bW1hcnlCZWxvdzoxLHN1bW1hcnlSaWdodDoxfTtIWyIhb3V0bGluZSJdLmFib3ZlJiYoUnQuc3Vt''@;'; put 'put ''bWFyeUJlbG93PTApLEhbIiFvdXRsaW5lIl0ubGVmdCYmKFJ0LnN1bW1hcnlSaWdodD0wKSxqZT0oamV8fCIiKStfaSgib3V0bGluZVByIixudWxsLFJ0KX0hRmUmJiFqZXx8KHhlW3hlLmxlbmd0aF09X2koInNoZWV0UHIiLGplLFplKSl9KFllLFgsSCxpZSx4ZSkseGVbeGUubGVuZ3RoXT1f''@;'; put 'put ''aSgiZGltZW5zaW9uIixudWxsLHtyZWY6TXR9KSx4ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIEF4KEgsaWUsWCx3ZSl7dmFyIHhlPXt3b3JrYm9va1ZpZXdJZDoiMCJ9O2lmKCgoKHdlfHx7fSkuV29ya2Jvb2t8fHt9KS5WaWV3c3x8W10pLmxlbmd0aCl7dmFyIEZlPXdlLldvcmtib29rLlZpZXdz''@;'; put 'put ''LFplPUZlW1hdfHxGZVswXTt4ZS5yaWdodFRvTGVmdD1aZS5SVEw/IjEiOiIwIixaZS56b29tJiYoeGUuem9vbVNjYWxlPVplLnpvb20pLG51bGwhPVplLmdyaWQmJih4ZS5zaG93R3JpZExpbmVzPVplLmdyaWQpLFplLnZpZXcmJih4ZS52aWV3PVplLnZpZXcpfW51bGwhPUhbIiFncmlkbGlu''@;'; put 'put ''ZXMiXSYmKHhlLnNob3dHcmlkTGluZXM9ISFIWyIhZ3JpZGxpbmVzIl0pO3ZhciBqZT0iIixZZT17cjowLGM6MH07aWYoSFsiIXNlbCJdKXtpZighKFllPUhbIiFzZWwiXS5jZWxsKSl7aWYoIUhbIiFzZWwiXS5yYW5nZSl0aHJvdyBuZXcgRXJyb3IoIk11c3Qgc3BlY2lmeSBhIHNlbGVjdGlv''@;'; put 'put ''biBjZWxsIG9yIHJhbmdlIik7WWU9QXMoSFsiIXNlbCJdLnJhbmdlLnJlcGxhY2UoL1xzLiokLywiIikpLnN9InN0cmluZyI9PXR5cGVvZiBZZSYmKFllPXVsKFllKSl9dmFyIHh0PUhbIiFmcmVlemUiXT8ic3RyaW5nIj09dHlwZW9mIEhbIiFmcmVlemUiXT91bChIWyIhZnJlZXplIl0pOkhb''@;'; put 'put ''IiFmcmVlemUiXTp7YzowLHI6MH07aWYoSFsiIWZyZWV6ZSJdKXt2YXIgUnQ9WTAoeHQpLFV0PXtzdGF0ZToiZnJvemVuIix4U3BsaXQ6eHQuYyx5U3BsaXQ6eHQucix0b3BMZWZ0Q2VsbDpSdH07SFsiIXNlbCJdJiYoVXQuYWN0aXZlUGFuZT0oWWUucj49eHQuciYmeHQucj4wPyJib3R0b20i''@;'; put 'put ''OiJ0b3AiKSsoWWUuYz49eHQuYyYmeHQuYz4wPyJSaWdodCI6IkxlZnQiKSksamU9X2koInBhbmUiLG51bGwsVXQpfWlmKEhbIiFzZWwiXSl7dmFyIG5uPXthY3RpdmVDZWxsOiJzdHJpbmciPT10eXBlb2YgWWU/WWU6WTAoWWUpfTtubi5zcXJlZj1IWyIhc2VsIl0ucmFuZ2U/SFsiIXNlbCJd''@;'; put 'put ''LnJhbmdlOm5uLmFjdGl2ZUNlbGwrIjoiK25uLmFjdGl2ZUNlbGwsamUrPV9pKCJzZWxlY3Rpb24iLG51bGwsbm4pLEhbIiFmcmVlemUiXSYmKHh0LmM+MCYmKG5uLnBhbmU9InRvcFJpZ2h0IixqZSs9X2koInNlbGVjdGlvbiIsbnVsbCxubikpLHh0LnI+MCYmKG5uLnBhbmU9ImJvdHRvbUxl''@;'; put 'put ''ZnQiLGplKz1faSgic2VsZWN0aW9uIixudWxsLG5uKSkseHQuYz4wJiZ4dC5yPjAmJihubi5wYW5lPSJib3R0b21SaWdodCIsamUrPV9pKCJzZWxlY3Rpb24iLG51bGwsbm4pKSl9cmV0dXJuIF9pKCJzaGVldFZpZXdzIixfaSgic2hlZXRWaWV3IixqZXx8bnVsbCx4ZSkse30pfShZZSwwLEgs''@;'; put 'put ''WCksaWUuc2hlZXRGb3JtYXQpe3ZhciBubj17ZGVmYXVsdFJvd0hlaWdodDppZS5zaGVldEZvcm1hdC5kZWZhdWx0Um93SGVpZ2h0fHwiMTYiLGJhc2VDb2xXaWR0aDppZS5zaGVldEZvcm1hdC5iYXNlQ29sV2lkdGh8fCIxMCJ9O251bGwhPWllLnNoZWV0Rm9ybWF0Lm91dGxpbmVMZXZlbFJv''@;'; put 'put ''dyYmKG5uLm91dGxpbmVMZXZlbFJvdz1pZS5zaGVldEZvcm1hdC5vdXRsaW5lTGV2ZWxSb3cpLHhlW3hlLmxlbmd0aF09X2koInNoZWV0Rm9ybWF0UHIiLG51bGwsbm4pfWVsc2UgaWYoWWVbIiFzaGVldEZvcm1hdCJdKXt2YXIgQ249e30sRHQ9ITE7WWVbIiFzaGVldEZvcm1hdCJdLnJvdyYm''@;'; put 'put ''KFllWyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB0PyhEdD0hMCxDbi5kZWZhdWx0Um93SGVpZ2h0PVllWyIhc2hlZXRGb3JtYXQiXS5yb3cuaHB0LENuLmN1c3RvbUhlaWdodD0xKTpZZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhweD8oRHQ9ITAsQ24uZGVmYXVsdFJvd0hlaWdodD1UaChZZVsiIXNo''@;'; put 'put ''ZWV0Rm9ybWF0Il0ucm93LmhweCksQ24uY3VzdG9tSGVpZ2h0PTEpOigwPT09WWVbIiFzaGVldEZvcm1hdCJdLnJvdy5ocHR8fDA9PT1ZZVsiIXNoZWV0Rm9ybWF0Il0ucm93LmhweHx8WWVbIiFzaGVldEZvcm1hdCJdLnJvdy5oaWRkZW4pJiYoRHQ9ITAsQ24uZGVmYXVsdFJvd0hlaWdodD1D''@;'; put 'put ''bi5kZWZhdWx0Um93SGVpZ2h0fHwxNixDbi5jdXN0b21IZWlnaHQ9MSxDbi56ZXJvSGVpZ2h0PTEpLFllWyIhc2hlZXRGb3JtYXQiXS5keURlc2NlbnQmJihDblsieDE0YWM6ZHlEZXNjZW50Il09WWVbIiFzaGVldEZvcm1hdCJdLmR5RGVzY2VudCkpLFllWyIhc2hlZXRGb3JtYXQiXS5jb2wm''@;'; put 'put ''JihZZVsiIXNoZWV0Rm9ybWF0Il0uY29sLndjaHx8eWMoWWVbIiFzaGVldEZvcm1hdCJdLmNvbCksQ24uZGVmYXVsdENvbFdpZHRoPVllWyIhc2hlZXRGb3JtYXQiXS5jb2wud2NoKzUvSzJ8fDAsRHQ9ITApLG51bGw9PUNuLmRlZmF1bHRSb3dIZWlnaHQmJihDbi5kZWZhdWx0Um93SGVpZ2h0''@;'; put 'put ''PTE2KSxudWxsPT1Dbi5kZWZhdWx0Q29sV2lkdGgmJihDbi5kZWZhdWx0Q29sV2lkdGg9MTApLENuLm91dGxpbmVMZXZlbFJvdz1Dbi5vdXRsaW5lTGV2ZWxSb3d8fDcsRHQmJih4ZVt4ZS5sZW5ndGhdPV9pKCJzaGVldEZvcm1hdFByIixudWxsLENuKSl9bnVsbCE9WWVbIiFjb2xzIl0mJlll''@;'; put 'put ''WyIhY29scyJdLmxlbmd0aD4wJiYoeGVbeGUubGVuZ3RoXT1mdW5jdGlvbiB4XyhILGllLFgpe2Zvcih2YXIgeGUsd2U9WyI8Y29scz4iXSxGZT0wO0ZlIT1pZS5sZW5ndGg7KytGZSlpZih4ZT1pZVtGZV0pe2lmKHhlLmF1dG8mJlM2KEgseGUsRmUpLHhlLnN8fHhlLnope3ZhciBaZT17dDoi''@;'; put 'put ''eiJ9O251bGwhPXhlLnMmJihaZS5zPXhlLnMpLG51bGwhPXhlLnomJihaZS56PXhlLnopLHhlLnN0eWxlPVkxKFguY2VsbFhmcyxYLmNlbGxTdHlsZVhmcyxaZSxYKX13ZVt3ZS5sZW5ndGhdPV9pKCJjb2wiLG51bGwsazYoRmUseGUpKX1yZXR1cm4gd2Vbd2UubGVuZ3RoXT0iPC9jb2xzPiIs''@;'; put 'put ''d2Uuam9pbigiIil9KFllLFllWyIhY29scyJdLGllKSkseGVbWmU9eGUubGVuZ3RoXT0iPHNoZWV0RGF0YS8+IixZZVsiIWxpbmtzIl09W10sbnVsbCE9WWVbIiFyZWYiXSYmKGplPWZ1bmN0aW9uIHl4KEgsaWUsWCx3ZSl7dmFyIFllLHp0LHhlPVtdLEZlPVtdLFplPUZvKEhbIiFyZWYiXSks''@;'; put 'put ''amU9IiIsTXQ9IiIseHQ9W10sUnQ9MCxVdD0wLG5uPUhbIiFyb3dzIl0sQ249QXJyYXkuaXNBcnJheShIKSxEdD17cjpNdH0sUG49LTE7Zm9yKFV0PVplLnMuYztVdDw9WmUuZS5jOysrVXQpeHRbVXRdPV9hKFV0KTtmb3IoUnQ9WmUucy5yO1J0PD1aZS5lLnI7KytSdCl7Zm9yKEZlPVtdLE10''@;'; put 'put ''PVhhKFJ0KSxVdD1aZS5zLmM7VXQ8PVplLmUuYzsrK1V0KXtZZT14dFtVdF0rTXQ7dmFyIFRuPUNuPyhIW1J0XXx8W10pW1V0XTpIW1llXTt2b2lkIDAhPT1UbiYmbnVsbCE9KGplPVhCKFRuLFllLEgsaWUpKSYmRmUucHVzaChqZSl9KEZlLmxlbmd0aD4wfHxubiYmbm5bUnRdKSYmKER0PXty''@;'; put 'put ''Ok10fSxubiYmbm5bUnRdJiYoKHp0PW5uW1J0XSkuaGlkZGVuJiYoRHQuaGlkZGVuPTEpLFBuPS0xLHp0LmhweD9Qbj1UaCh6dC5ocHgpOnp0LmhwdCYmKFBuPXp0LmhwdCksUG4+LTEmJihEdC5odD1QbixEdC5jdXN0b21IZWlnaHQ9MSksenQubGV2ZWwmJihEdC5vdXRsaW5lTGV2ZWw9enQu''@;'; put 'put ''bGV2ZWwpLHp0LmR5RGVzY2VudCYmKER0WyJ4MTRhYzpkeURlc2NlbnQiXT16dC5keURlc2NlbnQpLHp0LnMmJihEdC5zPVkxKGllLmNlbGxYZnMsaWUuY2VsbFN0eWxlWGZzLHt0OiJ6IixzOnp0LnN9LGllKSxEdC5jdXN0b21Gb3JtYXQ9MSkpLHhlW3hlLmxlbmd0aF09X2koInJvdyIsRmUu''@;'; put 'put ''am9pbigiIiksRHQpKX1pZihubilmb3IoO1J0PG5uLmxlbmd0aDsrK1J0KW5uJiZubltSdF0mJihEdD17cjpSdCsxfSwoenQ9bm5bUnRdKS5oaWRkZW4mJihEdC5oaWRkZW49MSksUG49LTEsenQuaHB4P1BuPVRoKHp0LmhweCk6enQuaHB0JiYoUG49enQuaHB0KSxQbj4tMSYmKER0Lmh0PVBu''@;'; put 'put ''LER0LmN1c3RvbUhlaWdodD0xKSx6dC5sZXZlbCYmKER0Lm91dGxpbmVMZXZlbD16dC5sZXZlbCkseGVbeGUubGVuZ3RoXT1faSgicm93IiwiIixEdCkpO3JldHVybiB4ZS5qb2luKCIiKX0oWWUsaWUpLGplLmxlbmd0aD4wJiYoeGVbeGUubGVuZ3RoXT1qZSkpLHhlLmxlbmd0aD5aZSsxJiYo''@;'; put 'put ''eGVbeGUubGVuZ3RoXT0iPC9zaGVldERhdGE+Iix4ZVtaZV09eGVbWmVdLnJlcGxhY2UoIi8+IiwiPiIpKSxZZVsiIXByb3RlY3QiXSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gRV8oSCl7dmFyIGllPXtzaGVldDoxfTtyZXR1cm4gTV8uZm9yRWFjaChmdW5jdGlvbihYKXtudWxsIT1IW1hd''@;'; put 'put ''JiZIW1hdJiYoaWVbWF09IjEiKX0pLGdBLmZvckVhY2goZnVuY3Rpb24oWCl7bnVsbCE9SFtYXSYmIUhbWF0mJihpZVtYXT0iMCIpfSksSC5wYXNzd29yZD9pZS5wYXNzd29yZD1NOShILnBhc3N3b3JkKS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTpILmVuY3J5cHRpb24mJihpZS5hbGdv''@;'; put 'put ''cml0aG1OYW1lPUguZW5jcnlwdGlvbi5hbGdvLGllLmhhc2hWYWx1ZT1ILmVuY3J5cHRpb24uaGFzaCxpZS5zYWx0VmFsdWU9SC5lbmNyeXB0aW9uLnNhbHQsaWUuc3BpbkNvdW50PUguZW5jcnlwdGlvbi5zcGluKSxfaSgic2hlZXRQcm90ZWN0aW9uIixudWxsLGllKX0oWWVbIiFwcm90ZWN0''@;'; put 'put ''Il0pKSxudWxsIT1ZZVsiIWF1dG9maWx0ZXIiXSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gSV8oSCxpZSxYLHdlKXt2YXIgeGU9InN0cmluZyI9PXR5cGVvZiBILnJlZj9ILnJlZjpmYShILnJlZik7WC5Xb3JrYm9va3x8KFguV29ya2Jvb2s9e1NoZWV0czpbXX0pLFguV29ya2Jvb2suTmFt''@;'; put 'put ''ZXN8fChYLldvcmtib29rLk5hbWVzPVtdKTt2YXIgRmU9WC5Xb3JrYm9vay5OYW1lcyxaZT1Bcyh4ZSk7WmUucy5yPT1aZS5lLnImJihaZS5lLnI9QXMoaWVbIiFyZWYiXSkuZS5yLHhlPWZhKFplKSk7Zm9yKHZhciBqZT0wO2plPEZlLmxlbmd0aDsrK2plKXt2YXIgWWU9RmVbamVdO2lmKCJf''@;'; put 'put ''eGxubS5fRmlsdGVyRGF0YWJhc2UiPT1ZZS5OYW1lJiZZZS5TaGVldD09d2Upe1llLlJlZj0iJyIrWC5TaGVldE5hbWVzW3dlXSsiJyEiK3hlO2JyZWFrfX1yZXR1cm4gamU9PUZlLmxlbmd0aCYmRmUucHVzaCh7TmFtZToiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIixTaGVldDp3ZSxSZWY6Iici''@;'; put 'put ''K1guU2hlZXROYW1lc1t3ZV0rIichIit4ZX0pLF9pKCJhdXRvRmlsdGVyIixudWxsLHtyZWY6eGV9KX0oWWVbIiFhdXRvZmlsdGVyIl0sWWUsWCxIKSksbnVsbCE9WWVbIiFtZXJnZXMiXSYmWWVbIiFtZXJnZXMiXS5sZW5ndGg+MCYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gd18oSCl7aWYo''@;'; put 'put ''MD09PUgubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgaWU9JzxtZXJnZUNlbGxzIGNvdW50PSInK0gubGVuZ3RoKyciPicsWD0wO1ghPUgubGVuZ3RoOysrWClpZSs9JzxtZXJnZUNlbGwgcmVmPSInK2ZhKEhbWF0pKyciLz4nO3JldHVybiBpZSsiPC9tZXJnZUNlbGxzPiJ9KFllWyIhbWVyZ2Vz''@;'; put 'put ''Il0pKSxZZVsiIWNvbmRmbXQiXSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gbXgoSCxpZSl7cmV0dXJuIEgubWFwKGZ1bmN0aW9uKFgsd2Upe3JldHVybiBmdW5jdGlvbiBKQihILGllLFgpe3ZhciB3ZT1ILnM/ejQoWC5EWEYsSC5zKTotMSx4ZT0ic3RyaW5nIj09dHlwZW9mIEgucmVmP0gu''@;'; put 'put ''cmVmOmZhKEgucmVmKSxaZT1Gbyh4ZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zO1plLnI8MCYmKFplLnI9MCksWmUuYzwwJiYoWmUuYz0wKTt2YXIgamU9IiIsWWU9e3ByaW9yaXR5OmllKzF9O3N3aXRjaCh3ZT4tMSYmKFllLmR4ZklkPXdlKSxILnQpe2Nhc2UidW5pcXVlIjpZZS50eXBlPSJ1''@;'; put 'put ''bmlxdWVWYWx1ZXMiO2JyZWFrO2Nhc2UiZHVwIjpZZS50eXBlPSJkdXBsaWNhdGVWYWx1ZXMiO2JyZWFrO2Nhc2UiYmxhbmsiOlllLnR5cGU9KEgudj8iYyI6Im5vdEMiKSsib250YWluc0JsYW5rcyIsamU9Ijxmb3JtdWxhPkxFTihUUklNKCIrWTAoWmUpKyIpKSIrKEgudj8iPSI6IiZndDsi''@;'; put 'put ''KSsiMDwvZm9ybXVsYT4iO2JyZWFrO2Nhc2UiZXJyb3IiOlllLnR5cGU9KEgudj8iYyI6Im5vdEMiKSsib250YWluc0Vycm9ycyI7YnJlYWs7Y2FzZSJmb3JtdWxhIjpZZS50eXBlPSJleHByZXNzaW9uIixqZT1faSgiZm9ybXVsYSIsUnIoSC5mKSx7fSk7YnJlYWs7Y2FzZSJkYXRlIjpZZS50''@;'; put 'put ''eXBlPSJ0aW1lUGVyaW9kIixZZS50aW1lUGVyaW9kPXdBW0gub3BdO2JyZWFrO2Nhc2UidGV4dCI6c3dpdGNoKFllLnR5cGU9WWUub3BlcmF0b3I9eUFbSC5vcF0sWWUudGV4dD1ILnYsSC5vcCl7Y2FzZSJJTiI6amU9Jzxmb3JtdWxhPk5PVChJU0VSUk9SKFNFQVJDSCgiJytScihILnYpKyci''@;'; put 'put ''LCcrWTAoWmUpKyIpKSk8L2Zvcm11bGE+IjticmVhaztjYXNlIk9UIjpqZT0nPGZvcm11bGE+SVNFUlJPUihTRUFSQ0goIicrUnIoSC52KSsnIiwnK1kwKFplKSsiKSk8L2Zvcm11bGE+IjticmVhaztjYXNlIlNUIjpqZT0iPGZvcm11bGE+TEVGVCgiK1kwKFplKSsnLExFTigiJytScihILnYp''@;'; put 'put ''KyciKSk9IicrUnIoSC52KSsnIjwvZm9ybXVsYT4nO2JyZWFrO2Nhc2UiTkQiOmplPSI8Zm9ybXVsYT5SSUdIVCgiK1kwKFplKSsnLExFTigiJytScihILnYpKyciKSk9IicrUnIoSC52KSsnIjwvZm9ybXVsYT4nfWJyZWFrO2Nhc2UidmFsIjpZZS50eXBlPSJjZWxsSXMiLFllLm9wZXJhdG9y''@;'; put 'put ''PUc0W0gub3BdLGplPW51bGwhPUgubWluP19pKCJmb3JtdWxhIixScihTdHJpbmcoSC5taW4pKSx7fSkrX2koImZvcm11bGEiLFJyKFN0cmluZyhILm1heCkpLHt9KTpfaSgiZm9ybXVsYSIsUnIobnVsbCE9SC52P1N0cmluZygic3RyaW5nIj09dHlwZW9mIEgudj8nIicrSC52LnJlcGxhY2Uo''@;'; put 'put ''LyIvZywnIiInKSsnIic6SC52KTpILmYpLHt9KTticmVhaztjYXNlImF2ZyI6c3dpdGNoKFllLnR5cGU9ImFib3ZlQXZlcmFnZSIsWWUuYWJvdmVBdmVyYWdlPSJMIj09SC5vcC5jaGFyQXQoMCk/IjAiOiIxIixILm9wLmNoYXJBdCgxKSl7Y2FzZSJUIjpZZS5lcXVhbEF2ZXJhZ2U9IjAiO2Jy''@;'; put 'put ''ZWFrO2Nhc2UiRSI6WWUuZXF1YWxBdmVyYWdlPSIxIjticmVhaztkZWZhdWx0OlllLnN0ZERldj1ILm9wLmNoYXJBdCgxKX1icmVhaztjYXNlInJhbmsiOlllLnR5cGU9InRvcDEwIixZZS5ib3R0b209IkIiPT1ILm9wLmNoYXJBdCgwKT8iMSI6IjAiLFllLnBlcmNlbnQ9IlAiPT1ILm9wLmNo''@;'; put 'put ''YXJBdCgxKT8iMSI6IjAiLFllLnJhbms9SC52O2JyZWFrO2Nhc2UiaWNvbiI6WWUudHlwZT0iaWNvblNldCI7dmFyIE10PXtpY29uU2V0OkgudixwZXJjZW50OkgucGN0PyJ0cnVlIjoiZmFsc2UifTtILnJldiYmKE10LnJldmVyc2U9InRydWUiKSxILmhpZGRlbiYmKE10LnNob3dWYWx1ZT0i''@;'; put 'put ''ZmFsc2UiKSxqZT1faSgiaWNvblNldCIsSC50aHJlc2gubWFwKEJkKS5qb2luKCIiKSxNdCk7YnJlYWs7Y2FzZSJzY2FsZSI6WWUudHlwZT0iY29sb3JTY2FsZSIsamUrPUJkKEguY21pbiksSC5jbWlkJiYoamUrPUJkKEguY21pZCkpLGplKz1CZChILmNtYXgpLGplKz1YcyhILmNtaW4uY29s''@;'; put 'put ''b3IpLEguY21pZCYmKGplKz1YcyhILmNtaWQuY29sb3IpKSxqZT1faSgiY29sb3JTY2FsZSIsamUrPVhzKEguY21heC5jb2xvcikse30pO2JyZWFrO2Nhc2UiYmFyIjpZZS50eXBlPSJkYXRhQmFyIixqZSs9QmQoSC5jbWluKSxqZSs9QmQoSC5jbWF4KSxqZT1faSgiZGF0YUJhciIsamUrPVhz''@;'; put 'put ''KEguY29sb3IpLHt9KTticmVhaztkZWZhdWx0OnRocm93IGNvbnNvbGUubG9nKEgpLCJDRiBtaXNzaW5nIHR5cGUgIitILnR9cmV0dXJuJzxjb25kaXRpb25hbEZvcm1hdHRpbmcgc3FyZWY9IicreGUrJyI+JytfaSgiY2ZSdWxlIiwiIj09amU/bnVsbDpqZSxZZSkrIjwvY29uZGl0aW9uYWxG''@;'; put 'put ''b3JtYXR0aW5nPiJ9KFgsd2UsaWUpfSkuam9pbigiIil9KFllWyIhY29uZGZtdCJdLGllKSksWWVbIiF2YWxpZGF0aW9ucyJdJiYoeGVbeGUubGVuZ3RoXT1mdW5jdGlvbiBEXyhIKXtpZighSHx8MD09SC5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBpZT1bXSxYPTAsd2U9MDt3ZTxILmxlbmd0''@;'; put 'put ''aDsrK3dlKXt2YXIgeGU9SFt3ZV0sRmU9UmhbeGUudF07aWYoeGUucmVmJiYoInN0cmluZyIhPXR5cGVvZiB4ZS5yZWZ8fC0xIT14ZS5yZWYuaW5kZXhPZigiICIpfHwoeGUucmVmPUZvKHhlLnJlZikseGUucmVmLnMmJiEoeGUucmVmLnMuYzwwKSkpKXsrK1g7dmFyIFplPXt0eXBlOkZlLGFs''@;'; put 'put ''bG93Qmxhbms6KygwIT14ZS5ibGFuayksc2hvd0lucHV0TWVzc2FnZTorKDAhPXhlLmlucHV0KSxzaG93RXJyb3JNZXNzYWdlOisoMCE9eGUuZXJyb3IpLHNxcmVmOiJzdHJpbmciPT10eXBlb2YgeGUucmVmP3hlLnJlZjpmYSh4ZS5yZWYpfTtpZih4ZS5pbnB1dCYmKHhlLmlucHV0LnRpdGxl''@;'; put 'put ''JiYoWmUucHJvbXB0VGl0bGU9bGkoeGUuaW5wdXQudGl0bGUpKSx4ZS5pbnB1dC5tZXNzYWdlJiYoWmUucHJvbXB0PWxpKHhlLmlucHV0Lm1lc3NhZ2UpKSkseGUuZXJyb3ImJih4ZS5lcnJvci50aXRsZSYmKFplLmVycm9yVGl0bGU9bGkoeGUuZXJyb3IudGl0bGUpKSx4ZS5lcnJvci5tZXNz''@;'; put 'put ''YWdlJiYoWmUuZXJyb3I9bGkoeGUuZXJyb3IubWVzc2FnZSkpLHhlLmVycm9yLnN0eWxlJiYoWmUuZXJyb3JTdHlsZT14ZS5lcnJvci5zdHlsZSkpLCFGZSl0aHJvdyBuZXcgRXJyb3IoIkJhZCB2YWxpZGF0aW9uOiB1bnJlY29nbml6ZWQgdHlwZSAiK3hlLnQpO3ZhciBqZT0iIjtzd2l0Y2go''@;'; put 'put ''eGUudCl7Y2FzZSJBbnkiOmJyZWFrO2Nhc2UiTGlzdCI6Y2FzZSJDdXN0b20iOmlmKHhlLmwpe2lmKHhlLmwuam9pbigiLCIpLmxlbmd0aD4yNTApdGhyb3cgbmV3IEVycm9yKCJEViBsZW5ndGggPiAyNTAgdHJpZ2dlcnMgY29ycnVwdGlvbiBlcnJvcnMgaW4gRXhjZWwuICBVc2UgYSBsb29r''@;'; put 'put ''dXAgdGFibGUiKTtqZT0nPGZvcm11bGExPiInK1JyKHhlLmwuam9pbigiLCIpKSsnIjwvZm9ybXVsYTE+J31lbHNlIGplPSI8Zm9ybXVsYTE+IitScih4ZS5mKSsiPC9mb3JtdWxhMT4iO2JyZWFrO2Nhc2UiRGF0ZSI6Y2FzZSJUaW1lIjpjYXNlIkRlY2ltYWwiOmNhc2UiTGVuZ3RoIjpjYXNl''@;'; put 'put ''Ildob2xlIjppZighRzRbeGUub3BdKXRocm93IG5ldyBFcnJvcigiQmFkIERhdGEgVmFsaWRhdGlvbiB0eXBlICIreGUub3ArIiBmb3IgIit4ZS50KTtpZihaZS5vcGVyYXRvcj1HNFt4ZS5vcF0sbnVsbCE9eGUudilqZT0iPGZvcm11bGExPiIrUnIoU3RyaW5nKHhlLnYgaW5zdGFuY2VvZiBE''@;'; put 'put ''YXRlP2Z0KHhlLnYpOnhlLnYpKSsiPC9mb3JtdWxhMT4iO2Vsc2V7aWYobnVsbD09eGUubWlufHxudWxsPT14ZS5tYXgpdGhyb3cgbmV3IEVycm9yKCJCYWQgRGF0YSBWYWxpZGF0aW9uOiBgdmAgb3IgYG1pbmArYG1heGAgcmVxdWlyZWQgZm9yIFR5cGUgIit4ZS50KTtqZT0iPGZvcm11bGEx''@;'; put 'put ''PiIrUnIoU3RyaW5nKHhlLm1pbiBpbnN0YW5jZW9mIERhdGU/ZnQoeGUubWluKTp4ZS5taW4pKSsiPC9mb3JtdWxhMT48Zm9ybXVsYTI+IitScihTdHJpbmcoeGUubWF4IGluc3RhbmNlb2YgRGF0ZT9mdCh4ZS5tYXgpOnhlLm1heCkpKyI8L2Zvcm11bGEyPiJ9fWllLnB1c2goX2koImRhdGFW''@;'; put 'put ''YWxpZGF0aW9uIixqZXx8bnVsbCxaZSkpfX1yZXR1cm4gWD4wPyc8ZGF0YVZhbGlkYXRpb25zIGNvdW50PSInK1grJyI+JytpZS5qb2luKCIiKSsiPC9kYXRhVmFsaWRhdGlvbnM+IjoiIn0oWWVbIiF2YWxpZGF0aW9ucyJdKSk7dmFyIFBuLHp0PS0xLFRuPS0xO2lmKFllWyIhbGlua3MiXS5s''@;'; put 'put ''ZW5ndGg+MCYmKHhlW3hlLmxlbmd0aF09IjxoeXBlcmxpbmtzPiIsWWVbIiFsaW5rcyJdLmZvckVhY2goZnVuY3Rpb24oeXIpeyF5clsxXS5UYXJnZXR8fChQbj17cmVmOnlyWzBdfSwiIyIhPXlyWzFdLlRhcmdldC5jaGFyQXQoMCkmJihUbj1YdCh3ZSwtMSxScih5clsxXS5UYXJnZXQpLnJl''@;'; put 'put ''cGxhY2UoLyMuKiQvLCIiKSxkdC5ITElOSyksUG5bInI6aWQiXT0icklkIitUbiksKHp0PXlyWzFdLlRhcmdldC5pbmRleE9mKCIjIikpPi0xJiYoUG4ubG9jYXRpb249UnIoeXJbMV0uVGFyZ2V0LnNsaWNlKHp0KzEpKSkseXJbMV0uVG9vbHRpcCYmKFBuLnRvb2x0aXA9UnIoeXJbMV0uVG9v''@;'; put 'put ''bHRpcCkpLHhlW3hlLmxlbmd0aF09X2koImh5cGVybGluayIsbnVsbCxQbikpfSkseGVbeGUubGVuZ3RoXT0iPC9oeXBlcmxpbmtzPiIpLGRlbGV0ZSBZZVsiIWxpbmtzIl0sVXQpe3ZhciBPbj1mdW5jdGlvbiBrXyhIKXtpZihILnByb3BzKXt2YXIgaWU9e30sWD1ILnByb3BzO3JldHVybiBY''@;'; put 'put ''LmdyaWRsaW5lcyYmKGllLmdyaWRMaW5lcz1pZS5ncmlkTGluZXNTZXQ9MSksWC5oZWFkaW5ncyYmKGllLmhlYWRpbmdzPTEpLFguY2VudGVyWCYmKGllLmhvcml6b250YWxDZW50ZXJlZD0xKSxYLmNlbnRlclkmJihpZS52ZXJ0aWNhbENlbnRlcmVkPTEpLF9pKCJwcmludE9wdGlvbnMiLG51''@;'; put 'put ''bGwsaWUpfXJldHVybiIifShVdCk7T24ubGVuZ3RoJiYoeGVbeGUubGVuZ3RoXT1Pbil9aWYoKG51bGwhPVllWyIhbWFyZ2lucyJdfHxVdCYmVXQubWFyZ2lucykmJih4ZVt4ZS5sZW5ndGhdPWZ1bmN0aW9uIHlHKEgpe3JldHVybiBSZChIKSxfaSgicGFnZU1hcmdpbnMiLG51bGwsSCl9KFll''@;'; put 'put ''WyIhbWFyZ2lucyJdfHxVdC5tYXJnaW5zKSksVXQpe3ZhciBZbj1mdW5jdGlvbiBmeChIKXtpZihILnByb3BzKXt2YXIgaWU9e30sWD1ILnByb3BzO2lmKFgub3JpZW50YXRpb24mJihpZS5vcmllbnRhdGlvbj1YLm9yaWVudGF0aW9uKSxYLnNjYWxlJiYoaWUuc2NhbGU9WC5zY2FsZSksWC5m''@;'; put 'put ''aXQmJihudWxsIT1YLmZpdC5oZWlnaHQmJihpZS5maXRUb0hlaWdodD1YLmZpdC5oZWlnaHQpLG51bGwhPVguZml0LndpZHRoJiYoaWUuZml0VG9XaWR0aD1YLmZpdC53aWR0aCkpLFguZHBpJiYoaWUuaG9yaXpvbnRhbERwaT1pZS52ZXJ0aWNhbERwaT1YLmRwaSksbnVsbCE9WC5maXJzdCYm''@;'; put 'put ''KGllLmZpcnN0UGFnZU51bWJlcj1YLmZpcnN0LGllLnVzZUZpcnN0UGFnZU51bWJlcj0xKSxYLmJ3JiYoaWUuYmxhY2tBbmRXaGl0ZT0xKSxYLmRyYWZ0JiYoaWUuZHJhZnQ9MSksWC5jb21tZW50cyYmKGllLmNlbGxDb21tZW50cz1fX1tYLmNvbW1lbnRzXXx8Im5vbmUiKSxYLmVycm9ycyYm''@;'; put 'put ''KGllLmVycm9ycz1fMltYLmVycm9yc118fCJub25lIiksWC5wYXBlcilzd2l0Y2godHlwZW9mIFgucGFwZXIpe2Nhc2UibnVtYmVyIjppZS5wYXBlclNpemU9WC5wYXBlcjticmVhaztjYXNlInN0cmluZyI6UGJbWC5wYXBlcl0/aWUucGFwZXJTaXplPVBiW1gucGFwZXJdOitYLnBhcGVyJiYo''@;'; put 'put ''aWUucGFwZXJTaXplPStYLnBhcGVyKTticmVhaztjYXNlIm9iamVjdCI6aWYoIVgucGFwZXIuaGVpZ2h0fHwhWC5wYXBlci53aWR0aCl0aHJvdyJDdXN0b20gUGFwZXIgU2l6ZSBtdXN0IGluY2x1ZGUgd2lkdGggYW5kIGhlaWdodCEiO2llLnBhcGVySGVpZ2h0PVgucGFwZXIuaGVpZ2h0LGll''@;'; put 'put ''LnBhcGVyV2lkdGg9WC5wYXBlci53aWR0aH1yZXR1cm5bMSwhMCwidHJ1ZSIsIm92ZXIiXS5pbmRleE9mKFgub3JkZXIpPi0xJiYoaWUucGFnZU9yZGVyPSJvdmVyVGhlbkRvd24iKSxfaSgicGFnZVNldHVwIixudWxsLGllKX1yZXR1cm4iIn0oVXQpO1luLmxlbmd0aCYmKHhlW3hlLmxlbmd0''@;'; put 'put ''aF09WW4pLFluPWZ1bmN0aW9uIHZBKEgpe3ZhciBpZT1bXSxYPSIiLHdlPSIiLHhlPSIiLEZlPSIiLFplPSIiLGplPSIiLFllPSIiLE10PUkzKEguaGVhZGVyKTtNdC5sZW5ndGgmJih3ZT1NdFswXSxqZT1NdFsxXSxGZT1NdFsyXSk7dmFyIHh0PUkzKEguZm9vdGVyKTtyZXR1cm4geHQubGVu''@;'; put 'put ''Z3RoJiYoeGU9eHRbMF0sWWU9eHRbMV0sWmU9eHRbMl0pLHdlJiZpZS5wdXNoKCI8b2RkSGVhZGVyPiIrUnIod2UpKyI8L29kZEhlYWRlcj4iKSx4ZSYmaWUucHVzaCgiPG9kZEZvb3Rlcj4iK1JyKHhlKSsiPC9vZGRGb290ZXI+IiksKFplIT14ZXx8RmUhPXdlKSYmKFgrPScgZGlmZmVyZW50''@;'; put 'put ''T2RkRXZlbj0iMSInLGllLnB1c2goIjxldmVuSGVhZGVyPiIrUnIoRmUpKyI8L2V2ZW5IZWFkZXI+IiksaWUucHVzaCgiPGV2ZW5Gb290ZXI+IitScihaZSkrIjwvZXZlbkZvb3Rlcj4iKSksKFllIT14ZXx8amUhPXdlKSYmKFgrPScgZGlmZmVyZW50Rmlyc3Q9IjEiJyxpZS5wdXNoKCI8Zmly''@;'; put 'put ''c3RIZWFkZXI+IitScihqZSkrIjwvZmlyc3RIZWFkZXI+IiksaWUucHVzaCgiPGZpcnN0Rm9vdGVyPiIrUnIoWWUpKyI8L2ZpcnN0Rm9vdGVyPiIpKSxpZS5sZW5ndGg/IjxoZWFkZXJGb290ZXIiK1grIj4iK2llLmpvaW4oIiIpKyI8L2hlYWRlckZvb3Rlcj4iOiIifShVdCksWW4ubGVuZ3Ro''@;'; put 'put ''JiYoeGVbeGUubGVuZ3RoXT1Zbil9aWYoKG51bGwhPVllWyIhcm93QnJlYWtzIl18fFV0JiZVdC5yb3dCcmVha3MpJiYoeGVbeGUubGVuZ3RoXT1mdW5jdGlvbiBSbShIKXtpZigwPT1ILmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIGllPVsnPHJvd0JyZWFrcyBjb3VudD0iJytILmxlbmd0aCsn''@;'; put 'put ''IiBtYW51YWxCcmVha0NvdW50PSInK0gubGVuZ3RoKyciPiddLFg9MDtYPEgubGVuZ3RoOysrWClpZS5wdXNoKCc8YnJrIGlkPSInK0hbWF0uUisnIiBtYW49IjEiLz4nKTtyZXR1cm4gaWUuam9pbigiIikrIjwvcm93QnJlYWtzPiJ9KFllWyIhcm93QnJlYWtzIl18fFV0LnJvd0JyZWFrcykp''@;'; put 'put ''LChudWxsIT1ZZVsiIWNvbEJyZWFrcyJdfHxVdCYmVXQuY29sQnJlYWtzKSYmKHhlW3hlLmxlbmd0aF09ZnVuY3Rpb24gQm0oSCl7aWYoMD09SC5sZW5ndGgpcmV0dXJuIiI7Zm9yKHZhciBpZT1bJzxjb2xCcmVha3MgY291bnQ9IicrSC5sZW5ndGgrJyIgbWFudWFsQnJlYWtDb3VudD0iJytI''@;'; put 'put ''Lmxlbmd0aCsnIj4nXSxYPTA7WDxILmxlbmd0aDsrK1gpaWUucHVzaCgnPGJyayBpZD0iJytIW1hdLkMrJyIgbWFuPSIxIi8+Jyk7cmV0dXJuIGllLmpvaW4oIiIpKyI8L2NvbEJyZWFrcz4ifShZZVsiIWNvbEJyZWFrcyJdfHxVdC5jb2xCcmVha3MpKSwoIWllfHxpZS5pZ25vcmVFQ3x8bnVs''@;'; put 'put ''bD09aWUuaWdub3JlRUMpJiYoeGVbeGUubGVuZ3RoXT1zYSgiaWdub3JlZEVycm9ycyIsX2koImlnbm9yZWRFcnJvciIsbnVsbCx7bnVtYmVyU3RvcmVkQXNUZXh0OjEsc3FyZWY6TXR9KSkpLFllWyIhY2hhcnRzIl0mJlJ0LnB1c2guYXBwbHkoUnQsWWVbIiFjaGFydHMiXSksWWVbIiFpbWFn''@;'; put 'put ''ZXMiXSYmUnQucHVzaC5hcHBseShSdCxZZVsiIWltYWdlcyJdKSxZZVsiIXNoYXBlcyJdJiZSdC5wdXNoLmFwcGx5KFJ0LFllWyIhc2hhcGVzIl0pLFJ0Lmxlbmd0aD4wJiYoVG49WHQod2UsLTEsIi4uL2RyYXdpbmdzL2RyYXdpbmciKyhIKzEpKyIueG1sIixkdC5EUkFXKSx4ZVt4ZS5sZW5n''@;'; put 'put ''dGhdPV9pKCJkcmF3aW5nIixudWxsLHsicjppZCI6InJJZCIrVG59KSxZZVsiIWRyYXdpbmciXT1SdCksKFllWyIhY29tbWVudHMiXS5sZW5ndGg+MHx8KFllWyIhY29udHJvbHMiXXx8W10pLmxlbmd0aD4wKSYmKFRuPVh0KHdlLC0xLCIuLi9kcmF3aW5ncy92bWxEcmF3aW5nIisoSCsxKSsi''@;'; put 'put ''LnZtbCIsZHQuVk1MKSx4ZVt4ZS5sZW5ndGhdPV9pKCJsZWdhY3lEcmF3aW5nIixudWxsLHsicjppZCI6InJJZCIrVG59KSxZZVsiIWxlZ2FjeSJdPVRuKSxZZVsiIXByaW50Il0mJlllWyIhcHJpbnQiXS5pbWFnZXMpe3ZhciBNcj1ZZVsiIXByaW50Il0uaW1hZ2VzLGFpPTA7WyJoZWFkZXIi''@;'; put 'put ''LCJmb290ZXIiXS5mb3JFYWNoKGZ1bmN0aW9uKHlyKXshTXJbeXJdfHxbIm9kZCIsImV2ZW4iLCJmaXJzdCJdLmZvckVhY2goZnVuY3Rpb24oYXIpeyFNclt5cl1bYXJdfHxbImxlZnQiLCJyaWdodCIsImNlbnRlciJdLmZvckVhY2goZnVuY3Rpb24oR3Ipe2lmKEFycmF5LmlzQXJyYXkoTXJb''@;'; put 'put ''eXJdW2FyXVtHcl0pKWZvcih2YXIgenI9MDt6cjxNclt5cl1bYXJdW0dyXS5sZW5ndGg7Kyt6cilNclt5cl1bYXJdW0dyXVt6cl0mJihNclt5cl1bYXJdW0dyXVt6cl0uX2NudD1haSsrKX0pfSl9KSxhaT4wJiYoVG49WHQod2UsLTEsIi4uL2RyYXdpbmdzL3ZtbERyYXdpbmciKyhIKzEpKyJI''@;'; put 'put ''Ri52bWwiLGR0LlZNTCkseGVbeGUubGVuZ3RoXT1faSgibGVnYWN5RHJhd2luZ0hGIixudWxsLHsicjppZCI6InJJZCIrVG59KSxZZVsiIWxlZ2FjeUhGIl09VG4pfXJldHVybihZZVsiIXRhYmxlcyJdfHxbXSkubGVuZ3RoPjAmJih4ZVt4ZS5sZW5ndGhdPSc8dGFibGVQYXJ0cyBjb3VudD0i''@;'; put 'put ''JytZZVsiIXRhYmxlcyJdLmxlbmd0aCsnIj4nLFllWyIhdGFibGVzIl0uZm9yRWFjaChmdW5jdGlvbih5cixhcil7VG49WHQod2UsLTEsIi4uL3RhYmxlcy90YWJsZSIrKEgrMSkrIl8iK2FyKyIueG1sIixkdC5UQUJMRSkseGVbeGUubGVuZ3RoXT0nPHRhYmxlUGFydCByOmlkPSJySWQnK1Ru''@;'; put 'put ''KyciLz4nfSkseGVbeGUubGVuZ3RoXT0iPC90YWJsZVBhcnRzPiIpLHhlLmxlbmd0aD4xJiYoeGVbeGUubGVuZ3RoXT0iPC93b3Jrc2hlZXQ+Iix4ZVsxXT14ZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSkseGUuam9pbigiIil9ZnVuY3Rpb24gdFAoSCxpZSxYLHdlKXt2YXIgeGU9ZnVuY3Rpb24g''@;'; put 'put ''ZVAoSCxpZSxYKXt2YXIgd2U9UmkoMTQ1KSx4ZT0oWFsiIXJvd3MiXXx8W10pW0hdfHx7fTt3ZS53cml0ZV9zaGlmdCg0LEgpLHdlLndyaXRlX3NoaWZ0KDQsMCk7dmFyIEZlPTMyMDt4ZS5ocHg/RmU9MjAqVGgoeGUuaHB4KTp4ZS5ocHQmJihGZT0yMCp4ZS5ocHQpLHdlLndyaXRlX3NoaWZ0''@;'; put 'put ''KDIsRmUpLHdlLndyaXRlX3NoaWZ0KDEsMCk7dmFyIFplPTA7eGUubGV2ZWwmJihaZXw9eGUubGV2ZWwpLHhlLmhpZGRlbiYmKFplfD0xNiksKHhlLmhweHx8eGUuaHB0KSYmKFplfD0zMiksd2Uud3JpdGVfc2hpZnQoMSxaZSksd2Uud3JpdGVfc2hpZnQoMSwwKTt2YXIgamU9MCxZZT13ZS5s''@;'; put 'put ''O3dlLmwrPTQ7Zm9yKHZhciBNdD17cjpILGM6MH0seHQ9MDt4dDwxNjsrK3h0KWlmKCEoaWUucy5jPnh0KzE8PDEwfHxpZS5lLmM8eHQ8PDEwKSl7Zm9yKHZhciBSdD0tMSxVdD0tMSxubj14dDw8MTA7bm48eHQrMTw8MTA7KytubilNdC5jPW5uLChBcnJheS5pc0FycmF5KFgpPyhYW010LnJd''@;'; put 'put ''fHxbXSlbTXQuY106WFtZMChNdCldKSYmKFJ0PDAmJihSdD1ubiksVXQ9bm4pO1J0PDB8fCgrK2plLHdlLndyaXRlX3NoaWZ0KDQsUnQpLHdlLndyaXRlX3NoaWZ0KDQsVXQpKX12YXIgRHQ9d2UubDtyZXR1cm4gd2UubD1ZZSx3ZS53cml0ZV9zaGlmdCg0LGplKSx3ZS5sPUR0LHdlLmxlbmd0''@;'; put 'put ''aD53ZS5sP3dlLnNsaWNlKDAsd2UubCk6d2V9KHdlLFgsaWUpOyh4ZS5sZW5ndGg+MTd8fChpZVsiIXJvd3MiXXx8W10pW3dlXSkmJkMwKEgsIkJydFJvd0hkciIseGUpfXZhciBXND13aCxFNj1HcDtmdW5jdGlvbiBVNChIKXtyZXR1cm5bTTQoSCksSTIoSCksIm4iXX12YXIga3g9d2gsdmE9''@;'; put 'put ''R3Asd2k9WyJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJoZWFkZXIiLCJmb290ZXIiXSxqbT1bIkFueSIsIldob2xlIiwiRGVjaW1hbCIsIkxpc3QiLCJEYXRlIiwiVGltZSIsIkxlbmd0aCIsIkN1c3RvbSJdLENBPVsiSU4iLCJPVCIsIkVRIiwiTkUiLCJHVCIsIkxUIiwiR0UiLCJM''@;'; put 'put ''RSJdO2Z1bmN0aW9uIE5pKEgpe3ZhciBpZT1SaSg0KSxYPVtpZV0sd2U9am0uaW5kZXhPZihILnQpO2lmKHdlPDApdGhyb3cgbmV3IEVycm9yKCJCYWQgdmFsaWRhdGlvbjogdW5yZWNvZ25pemVkIHR5cGUgIitILnQpO3ZhciBGZT1DQS5pbmRleE9mKEgub3ApO3N3aXRjaCh3ZSl7Y2FzZSAw''@;'; put 'put ''OmNhc2UgMzpjYXNlIDc6RmU9MDticmVhaztkZWZhdWx0OmlmKC0xPT1GZSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBEYXRhIFZhbGlkYXRpb24gdHlwZSAiK0gub3ArIiBmb3IgIitILnQpfWllLndyaXRlX3NoaWZ0KDEsMHx3ZSksaWUud3JpdGVfc2hpZnQoMSwxKSxpZS53cml0ZV9zaGlmdCgx''@;'; put 'put ''LDEyfEZlPDw0KSxpZS53cml0ZV9zaGlmdCgxLDApLFgucHVzaChmdW5jdGlvbiBjOShIKXt2YXIgaWU9SC5zcGxpdCgvXHMqLFxzKi8pLFg9UmkoNCk7WC53cml0ZV9zaGlmdCg0LGllLmxlbmd0aCk7dmFyIHdlPVtYXTtyZXR1cm4gaWUuZm9yRWFjaChmdW5jdGlvbih4ZSl7d2UucHVzaChH''@;'; put 'put ''cChGbyh4ZSkpKX0pLFYod2UpfSgic3RyaW5nIj09dHlwZW9mIEgucmVmP0gucmVmOmZhKEgucmVmKSkpO3ZhciBaZT1SaSgxNik7WmUud3JpdGVfc2hpZnQoNCw0Mjk0OTY3Mjk1KSxaZS53cml0ZV9zaGlmdCg0LDQyOTQ5NjcyOTUpLFplLndyaXRlX3NoaWZ0KDQsNDI5NDk2NzI5NSksWmUu''@;'; put 'put ''d3JpdGVfc2hpZnQoNCw0Mjk0OTY3Mjk1KSxYLnB1c2goWmUpO3ZhciBqZT1SaSg4KTtqZS53cml0ZV9zaGlmdCg0LDApLGplLndyaXRlX3NoaWZ0KDQsMCk7dmFyIFllPTE7c3dpdGNoKEgudCl7Y2FzZSJBbnkiOlgucHVzaChqZSksWC5wdXNoKGplKTticmVhaztjYXNlIkRlY2ltYWwiOmNh''@;'; put 'put ''c2UiTGVuZ3RoIjpjYXNlIldob2xlIjppZihudWxsIT1ILnZ8fG51bGwhPUguZilYLnB1c2goIm51bWJlciI9PXR5cGVvZiBILnY/aXgoSC52KTpUbShudWxsPT1ILnY/SC5mOkgudikpO2Vsc2V7aWYobnVsbD09SC5taW58fG51bGw9PUgubWF4KXRocm93IlVuc3VwcG9ydGVkIERhdGEgVmFs''@;'; put 'put ''aWRhdGlvbjogYHZgIG9yIGBtaW5gK2BtYXhgIHJlcXVpcmVkIGZvciBUeXBlICIrSC50O1gucHVzaCgibnVtYmVyIj09dHlwZW9mIEgubWluP2l4KEgubWluKTpUbShILm1pbikpLFgucHVzaCgibnVtYmVyIj09dHlwZW9mIEgubWF4P2l4KEgubWF4KTpUbShILm1heCkpLFllPTJ9YnJlYWs7''@;'; put 'put ''Y2FzZSJMaXN0IjppZihudWxsIT1ILmwpe1gucHVzaChpQShILmwuam9pbigiLCIpKSk7YnJlYWt9Y2FzZSJDdXN0b20iOmlmKCJudWxsIiE9SC5mKXtYLnB1c2goVG0oSC5mKSk7YnJlYWt9dGhyb3ciVW5zdXBwb3J0ZWQgRGF0YSBWYWxpZGF0aW9uOiBgZmAiKygiTGlzdCI9PUgudD8iIG9y''@;'; put 'put ''IGBsYCI6IiIpKyIgcmVxdWlyZWQgZm9yIFR5cGUgIitILnQ7ZGVmYXVsdDp0aHJvdyJYTFNCIGRvZXMgbm90IHN1cHBvcnQgRGF0YSBWYWxpZGF0aW9uIHR5cGUgIitILnR9cmV0dXJuIDE9PVllJiZYLnB1c2goamUpLFYoWCl9ZnVuY3Rpb24gWm0oSCxpZSxYLHdlLHhlLEZlLFplKXtpZih2''@;'; put 'put ''b2lkIDA9PT1pZS52JiZudWxsPT1pZS5zfHwieiI9PT1pZS50JiYheGUuc2hlZXRTdHVicylyZXR1cm4hMTt2YXIgamU9IiI7c3dpdGNoKGllLnQpe2Nhc2UiYiI6amU9aWUudj8iMSI6IjAiO2JyZWFrO2Nhc2UiZCI6KGllPWxuKGllKSkuej1pZS56fHxGLl90YWJsZVsxNF0saWUudj1mdChk''@;'; put 'put ''bihpZS52KSksaWUudD0ibiI7YnJlYWs7Y2FzZSJuIjpjYXNlImUiOmplPSIiK2llLnY7YnJlYWs7ZGVmYXVsdDpqZT1pZS52fXZhciBZZT17cjpYLGM6d2V9O3N3aXRjaChZZS5zPVkxKHhlLmNlbGxYZnMseGUuY2VsbFN0eWxlWGZzLGllLHhlKSxpZS5sJiZGZVsiIWxpbmtzIl0ucHVzaChb''@;'; put 'put ''WTAoWWUpLGllLmxdKSxpZS5jJiZGZVsiIWNvbW1lbnRzIl0ucHVzaChbWTAoWWUpLGllLmNdKSxpZS50KXtjYXNlInMiOmNhc2Uic3RyIjppZih4ZS5ib29rU1NUKXtpZihqZT1DNih4ZS5TdHJpbmdzLGllLnYsaWUuUj9pZS5yPXU2KGllLlIpOm51bGwseGUucmV2U3RyaW5ncyksaWUuUilm''@;'; put 'put ''b3IodmFyIE10PTA7TXQ8aWUuUi5sZW5ndGg7KytNdClpZS5SW010XS5zJiZZMSh4ZS5jZWxsWGZzLHhlLmNlbGxTdHlsZVhmcyx7dDoibiIsdjowLHM6aWUuUltNdF0uc30seGUpO1llLnQ9InMiLFllLnY9amUsWmU/QzAoSCwiQnJ0U2hvcnRJc3N0IixmdW5jdGlvbiBZNChILGllLFgpe3Jl''@;'; put 'put ''dHVybiBudWxsPT1YJiYoWD1SaSg4KSksQWgoaWUsWCksWC53cml0ZV9zaGlmdCg0LGllLnYpLFh9KDAsWWUpKTpDMChILCJCcnRDZWxsSXNzdCIsZnVuY3Rpb24gRmQoSCxpZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoMTIpKSxTNChpZSxYKSxYLndyaXRlX3NoaWZ0KDQsaWUudiksWH0o''@;'; put 'put ''MCxZZSkpfWVsc2UgWWUudD0ic3RyIixaZT9DMChILCJCcnRTaG9ydFN0IixmdW5jdGlvbiBQXyhILGllLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KzQqSC52Lmxlbmd0aCkpLEFoKGllLFgpLGx1KEgudixYKSxYLmxlbmd0aD5YLmw/WC5zbGljZSgwLFgubCk6WH0oaWUsWWUpKTpDMChI''@;'; put 'put ''LCJCcnRDZWxsU3QiLGZ1bmN0aW9uIHk1KEgsaWUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDEyKzQqSC52Lmxlbmd0aCkpLFM0KGllLFgpLGx1KEgudixYKSxYLmxlbmd0aD5YLmw/WC5zbGljZSgwLFgubCk6WH0oaWUsWWUpKTtyZXR1cm4hMDtjYXNlIm4iOnJldHVybiBpZS52PT0oMHxp''@;'; put 'put ''ZS52KSYmaWUudj4tMWUzJiZpZS52PDFlMz9aZT9DMChILCJCcnRTaG9ydFJrIixmdW5jdGlvbiBIZChILGllLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KSksQWgoaWUsWCksSU0oSC52LFgpLFh9KGllLFllKSk6QzAoSCwiQnJ0Q2VsbFJrIixmdW5jdGlvbiBCaChILGllLFgpe3JldHVy''@;'; put 'put ''biBudWxsPT1YJiYoWD1SaSgxMikpLFM0KGllLFgpLElNKEgudixYKSxYfShpZSxZZSkpOlplP0MwKEgsIkJydFNob3J0UmVhbCIsZnVuY3Rpb24gQTUoSCxpZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoMTIpKSxBaChpZSxYKSx1ZihILnYsWCksWH0oaWUsWWUpKTpDMChILCJCcnRDZWxs''@;'; put 'put ''UmVhbCIsZnVuY3Rpb24gdjUoSCxpZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoMTYpKSxTNChpZSxYKSx1ZihILnYsWCksWH0oaWUsWWUpKSwhMDtjYXNlImIiOnJldHVybiBZZS50PSJiIixaZT9DMChILCJCcnRTaG9ydEJvb2wiLGZ1bmN0aW9uIGJBKEgsaWUsWCl7cmV0dXJuIG51bGw9''@;'; put 'put ''PVgmJihYPVJpKDUpKSxBaChpZSxYKSxYLndyaXRlX3NoaWZ0KDEsSC52PzE6MCksWH0oaWUsWWUpKTpDMChILCJCcnRDZWxsQm9vbCIsZnVuY3Rpb24gdGMoSCxpZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoOSkpLFM0KGllLFgpLFgud3JpdGVfc2hpZnQoMSxILnY/MTowKSxYfShpZSxZ''@;'; put 'put ''ZSkpLCEwO2Nhc2UiZSI6cmV0dXJuIFllLnQ9ImUiLFplP0MwKEgsIkJydFNob3J0RXJyb3IiLGZ1bmN0aW9uIG01KEgsaWUsWCl7cmV0dXJuIG51bGw9PVgmJihYPVJpKDgpKSxBaChpZSxYKSxYLndyaXRlX3NoaWZ0KDEsSC52KSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCgx''@;'; put 'put ''LDApLFh9KGllLFllKSk6QzAoSCwiQnJ0Q2VsbEVycm9yIixmdW5jdGlvbiBHaShILGllLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg5KSksUzQoaWUsWCksWC53cml0ZV9zaGlmdCgxLEgudiksWH0oaWUsWWUpKSwhMH1yZXR1cm4gWmU/QzAoSCwiQnJ0U2hvcnRCbGFuayIsZnVuY3Rpb24g''@;'; put 'put ''TDMoSCxpZSxYKXtyZXR1cm4gbnVsbD09WCYmKFg9UmkoNCkpLEFoKGllLFgpfSgwLFllKSk6QzAoSCwiQnJ0Q2VsbEJsYW5rIixmdW5jdGlvbiBCXyhILGllLFgpe3JldHVybiBudWxsPT1YJiYoWD1SaSg4KSksUzQoaWUsWCl9KDAsWWUpKSwhMH1mdW5jdGlvbiBEeChILGllLFgsd2Upe3Zh''@;'; put 'put ''ciB4ZT1KMigpLEZlPVguU2hlZXROYW1lc1tIXSxaZT1YLlNoZWV0c1tGZV18fHt9LGplPUZlO3RyeXtYJiZYLldvcmtib29rJiYoamU9WC5Xb3JrYm9vay5TaGVldHNbSF0uQ29kZU5hbWV8fGplKX1jYXRjaChNdCl7fXZhciBZZT1GbyhaZVsiIXJlZiJdfHwiQTEiKTtpZihZZS5lLmM+MTYz''@;'; put 'put ''ODN8fFllLmUucj4xMDQ4NTc1KXtpZihpZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJSYW5nZSAiKyhaZVsiIXJlZiJdfHwiQTEiKSsiIGV4Y2VlZHMgZm9ybWF0IGxpbWl0IEExOlhGRDEwNDg1NzYiKTtZZS5lLmM9TWF0aC5taW4oWWUuZS5jLDE2MzgzKSxZZS5lLnI9TWF0aC5taW4oWWUuZS5j''@;'; put 'put ''LDEwNDg1NzUpfXJldHVybiBaZVsiIWxpbmtzIl09W10sWmVbIiFjb21tZW50cyJdPVtdLEMwKHhlLCJCcnRCZWdpblNoZWV0IiksKFgudmJhcmF3fHxaZVsiIW91dGxpbmUiXSkmJkMwKHhlLCJCcnRXc1Byb3AiLGZ1bmN0aW9uIHJQKEgsaWUsWCl7bnVsbD09WCYmKFg9UmkoODQrNCpILmxl''@;'; put 'put ''bmd0aCkpO3ZhciB3ZT0xOTI7aWUmJihpZS5hYm92ZSYmKHdlJj0tNjUpLGllLmxlZnQmJih3ZSY9LTEyOSkpLFgud3JpdGVfc2hpZnQoMSx3ZSk7Zm9yKHZhciB4ZT0xO3hlPDM7Kyt4ZSlYLndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIGpmKHthdXRvOjF9LFgpLFgud3JpdGVfc2hpZnQoLTQs''@;'; put 'put ''LTEpLFgud3JpdGVfc2hpZnQoLTQsLTEpLFRNKEgsWCksWC5zbGljZSgwLFgubCl9KGplLFplWyIhb3V0bGluZSJdKSksQzAoeGUsIkJydFdzRGltIixFNihZZSkpLGZ1bmN0aW9uIEl4KEgsaWUsWCl7QzAoSCwiQnJ0QmVnaW5Xc1ZpZXdzIiksQzAoSCwiQnJ0QmVnaW5Xc1ZpZXciLGZ1bmN0''@;'; put 'put ''aW9uIEduKEgsaWUsWCl7bnVsbD09WCYmKFg9UmkoMzApKTt2YXIgd2U9OTI0O3JldHVybigoKGllfHx7fSkuVmlld3N8fFtdKVswXXx8e30pLlJUTCYmKHdlfD0zMiksbnIoSFsiIWdyaWRsaW5lcyJdKSYmKHdlJj0tNSksbnIoKCgoaWV8fHt9KS5WaWV3c3x8W10pWzBdfHx7fSkuZ3JpZCkm''@;'; put 'put ''Jih3ZSY9LTUpLFgud3JpdGVfc2hpZnQoMix3ZSksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDQsMCksWC53cml0ZV9zaGlmdCgxLDApLFgud3JpdGVfc2hpZnQoMSwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCgyLDEwMCks''@;'; put 'put ''WC53cml0ZV9zaGlmdCgyLDApLFgud3JpdGVfc2hpZnQoMiwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCg0LDApLFh9KGllLFgpKSxpZVsiIWZyZWV6ZSJdJiZDMChILCJCcnRQYW5lIixmdW5jdGlvbiBvdChIKXt2YXIgaWU9dWwoSFsiIWZyZWV6ZSJdKSxYPVJpKDI5KTty''@;'; put 'put ''ZXR1cm4gWC53cml0ZV9zaGlmdCg4LGllLmMsImYiKSxYLndyaXRlX3NoaWZ0KDgsaWUuciwiZiIpLFgud3JpdGVfc2hpZnQoNCxpZS5yKSxYLndyaXRlX3NoaWZ0KDQsaWUuYyksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoMSwzKSxYfShpZSkpLGllWyIhc2VsIl0mJkMwKEgs''@;'; put 'put ''IkJydFNlbCIsZnVuY3Rpb24gdzUoSCxpZSl7dmFyIFg9UmkoMzYpLHdlPUguY2VsbDtpZighd2Upe2lmKCFILnJhbmdlKXRocm93IG5ldyBFcnJvcigiTXVzdCBzcGVjaWZ5IGEgc2VsZWN0aW9uIGNlbGwgb3IgcmFuZ2UiKTt3ZT1ZMChBcyhILnJhbmdlLnJlcGxhY2UoL1xzLiokLywiIikp''@;'; put 'put ''LnMpfXZhciB4ZT0ic3RyaW5nIj09dHlwZW9mIHdlP3VsKHdlKTp3ZTtpZihpZSl7dmFyIEZlPSJzdHJpbmciPT10eXBlb2YgaWU/dWwoaWUpOmllO1gud3JpdGVfc2hpZnQoNCx4ZS5yPj1GZS5yJiZ4ZS5jPj1GZS5jPzA6eGUucj49RmUuciYmeGUuYzxGZS5jPzI6eGUucjxGZS5yJiZ4ZS5j''@;'; put 'put ''Pj1GZS5jPzE6Myl9ZWxzZSBYLndyaXRlX3NoaWZ0KDQsMyk7cmV0dXJuIFgud3JpdGVfc2hpZnQoNCx4ZS5yKSxYLndyaXRlX3NoaWZ0KDQseGUuYyksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoNCwxKSxYLndyaXRlX3NoaWZ0KDQseGUuciksWC53cml0ZV9zaGlmdCg0LHhl''@;'; put 'put ''LnIpLFgud3JpdGVfc2hpZnQoNCx4ZS5jKSxYLndyaXRlX3NoaWZ0KDQseGUuYyksWH0oaWVbIiFzZWwiXSxpZVsiIWZyZWV6ZSJdKSksQzAoSCwiQnJ0RW5kV3NWaWV3IiksQzAoSCwiQnJ0RW5kV3NWaWV3cyIpfSh4ZSxaZSxYLldvcmtib29rKSxmdW5jdGlvbiBRNChILGllKXshaWV8fCFp''@;'; put 'put ''ZVsiIWNvbHMiXXx8KEMwKEgsIkJydEJlZ2luQ29sSW5mb3MiKSxpZVsiIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKFgsd2Upe1gmJkMwKEgsIkJydENvbEluZm8iLGZ1bmN0aW9uIGYxKEgsaWUsWCl7bnVsbD09WCYmKFg9UmkoMTgpKTt2YXIgd2U9azYoSCxpZSk7WC53cml0ZV9zaGlmdCgt''@;'; put 'put ''NCxIKSxYLndyaXRlX3NoaWZ0KC00LEgpLFgud3JpdGVfc2hpZnQoNCwyNTYqKHdlLndpZHRofHwxMCkpLFgud3JpdGVfc2hpZnQoNCwwKTt2YXIgeGU9MDtyZXR1cm4gaWUuaGlkZGVuJiYoeGV8PTEpLCJudW1iZXIiPT10eXBlb2Ygd2Uud2lkdGgmJih4ZXw9MiksaWUubGV2ZWwmJih4ZXw9''@;'; put 'put ''aWUubGV2ZWw8PDgpLFgud3JpdGVfc2hpZnQoMix4ZSksWH0od2UsWCkpfSksQzAoSCwiQnJ0RW5kQ29sSW5mb3MiKSl9KHhlLFplKSxmdW5jdGlvbiBqXyhILGllLFgsd2Upe3ZhciB4ZT1GbyhpZVsiIXJlZiJdfHwiQTEiKSxaZT0iIixqZT1bXTtDMChILCJCcnRCZWdpblNoZWV0RGF0YSIp''@;'; put 'put ''O3ZhciBZZT1BcnJheS5pc0FycmF5KGllKSxNdD14ZS5lLnI7aWVbIiFyb3dzIl0mJihNdD1NYXRoLm1heCh4ZS5lLnIsaWVbIiFyb3dzIl0ubGVuZ3RoLTEpKTtmb3IodmFyIHh0PXhlLnMucjt4dDw9TXQ7Kyt4dCl7WmU9WGEoeHQpLHRQKEgsaWUseGUseHQpO3ZhciBSdD0hMTtpZih4dDw9''@;'; put 'put ''eGUuZS5yKWZvcih2YXIgVXQ9eGUucy5jO1V0PD14ZS5lLmM7KytVdCl7eHQ9PT14ZS5zLnImJihqZVtVdF09X2EoVXQpKTt2YXIgbm49WWU/KGllW3h0XXx8W10pW1V0XTppZVtqZVtVdF0rWmVdO1J0PSEhbm4mJlptKEgsbm4seHQsVXQsd2UsaWUsUnQpfX1DMChILCJCcnRFbmRTaGVldERh''@;'; put 'put ''dGEiKX0oeGUsWmUsMCxpZSksZnVuY3Rpb24gdVAoSCxpZSl7IWllWyIhcHJvdGVjdCJdfHxDMChILCJCcnRTaGVldFByb3RlY3Rpb24iLGZ1bmN0aW9uIGxQKEgsaWUpe3JldHVybiBudWxsPT1pZSYmKGllPVJpKDY2KSksaWUud3JpdGVfc2hpZnQoMixILnBhc3N3b3JkP005KEgucGFzc3dv''@;'; put 'put ''cmQpOjApLGllLndyaXRlX3NoaWZ0KDQsMSksW1sib2JqZWN0cyIsITFdLFsic2NlbmFyaW9zIiwhMV0sWyJmb3JtYXRDZWxscyIsITBdLFsiZm9ybWF0Q29sdW1ucyIsITBdLFsiZm9ybWF0Um93cyIsITBdLFsiaW5zZXJ0Q29sdW1ucyIsITBdLFsiaW5zZXJ0Um93cyIsITBdLFsiaW5zZXJ0''@;'; put 'put ''SHlwZXJsaW5rcyIsITBdLFsiZGVsZXRlQ29sdW1ucyIsITBdLFsiZGVsZXRlUm93cyIsITBdLFsic2VsZWN0TG9ja2VkQ2VsbHMiLCExXSxbInNvcnQiLCEwXSxbImF1dG9GaWx0ZXIiLCEwXSxbInBpdm90VGFibGVzIiwhMF0sWyJzZWxlY3RVbmxvY2tlZENlbGxzIiwhMV1dLmZvckVhY2go''@;'; put 'put ''ZnVuY3Rpb24oWCl7aWUud3JpdGVfc2hpZnQoNCxYWzFdP251bGw9PUhbWFswXV18fEhbWFswXV0/MDoxOm51bGwhPUhbWFswXV0mJkhbWFswXV0/MDoxKX0pLGllfShpZVsiIXByb3RlY3QiXSkpfSh4ZSxaZSksZnVuY3Rpb24gem0oSCxpZSxYLHdlKXtpZihpZVsiIWF1dG9maWx0ZXIiXSl7''@;'; put 'put ''dmFyIHhlPWllWyIhYXV0b2ZpbHRlciJdLEZlPSJzdHJpbmciPT10eXBlb2YgeGUucmVmP3hlLnJlZjpmYSh4ZS5yZWYpO1guV29ya2Jvb2t8fChYLldvcmtib29rPXtTaGVldHM6W119KSxYLldvcmtib29rLk5hbWVzfHwoWC5Xb3JrYm9vay5OYW1lcz1bXSk7dmFyIFplPVguV29ya2Jvb2su''@;'; put 'put ''TmFtZXMsamU9QXMoRmUpO2plLnMucj09amUuZS5yJiYoamUuZS5yPUFzKGllWyIhcmVmIl0pLmUucixGZT1mYShqZSkpO2Zvcih2YXIgWWU9MDtZZTxaZS5sZW5ndGg7KytZZSl7dmFyIE10PVplW1llXTtpZigiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIj09TXQuTmFtZSYmTXQuU2hlZXQ9PXdl''@;'; put 'put ''KXtNdC5SZWY9IiciK1guU2hlZXROYW1lc1t3ZV0rIichIitGZTticmVha319WWU9PVplLmxlbmd0aCYmWmUucHVzaCh7TmFtZToiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIixTaGVldDp3ZSxSZWY6IiciK1guU2hlZXROYW1lc1t3ZV0rIichIitGZX0pLEMwKEgsIkJydEJlZ2luQUZpbHRlciIs''@;'; put 'put ''R3AoRm8oRmUpKSksQzAoSCwiQnJ0RW5kQUZpbHRlciIpfX0oeGUsWmUsWCxIKSxmdW5jdGlvbiBNeChILGllKXshaWV8fCFpZVsiIW1lcmdlcyJdfHwoQzAoSCwiQnJ0QmVnaW5NZXJnZUNlbGxzIixmdW5jdGlvbiBUdChILGllKXtyZXR1cm4gbnVsbD09aWUmJihpZT1SaSg0KSksaWUud3Jp''@;'; put 'put ''dGVfc2hpZnQoNCxIKSxpZX0oaWVbIiFtZXJnZXMiXS5sZW5ndGgpKSxpZVsiIW1lcmdlcyJdLmZvckVhY2goZnVuY3Rpb24oWCl7QzAoSCwiQnJ0TWVyZ2VDZWxsIix2YShYKSl9KSxDMChILCJCcnRFbmRNZXJnZUNlbGxzIikpfSh4ZSxaZSksZnVuY3Rpb24gY1AoSCxpZSl7aWYoaWUpe0Mw''@;'; put 'put ''KEgsIkJydEJlZ2luRFZhbHMiLGZ1bmN0aW9uIFZfKEgsaWUpe251bGw9PWllJiYoaWU9UmkoMTgpKSxpZS53cml0ZV9zaGlmdCgyLDApLGllLndyaXRlX3NoaWZ0KDQsMCksaWUud3JpdGVfc2hpZnQoNCwwKSxpZS53cml0ZV9zaGlmdCg0LDApO2Zvcih2YXIgWD0wLHdlPTA7d2U8SC5sZW5n''@;'; put 'put ''dGg7Kyt3ZSkoKEhbd2VdfHx7fSkucmVmfHx7fSkucyYmSFt3ZV0ucmVmLnMuYzwwfHwrK1g7cmV0dXJuIGllLndyaXRlX3NoaWZ0KDQsWCksaWV9KGllKSk7Zm9yKHZhciBYPTA7WDxpZS5sZW5ndGg7KytYKSgoaWVbWF18fHt9KS5yZWZ8fHt9KS5zJiZpZVtYXS5yZWYucy5jPDB8fEMwKEgs''@;'; put 'put ''IkJydERWYWwiLE5pKGllW1hdKSk7QzAoSCwiQnJ0RW5kRFZhbHMiKX19KHhlLFplWyIhdmFsaWRhdGlvbnMiXSksZnVuY3Rpb24geHgoSCxpZSxYKXtpZVsiIWxpbmtzIl0uZm9yRWFjaChmdW5jdGlvbih3ZSl7aWYod2VbMV0uVGFyZ2V0KXt2YXIgeGU9WHQoWCwtMSx3ZVsxXS5UYXJnZXQu''@;'; put 'put ''cmVwbGFjZSgvIy4qJC8sIiIpLGR0LkhMSU5LKTtDMChILCJCcnRITGluayIsZnVuY3Rpb24gYVAoSCxpZSl7dmFyIFg9UmkoNTArNCooSFsxXS5UYXJnZXQubGVuZ3RoKyhIWzFdLlRvb2x0aXB8fCIiKS5sZW5ndGgpKTtHcCh7czp1bChIWzBdKSxlOnVsKEhbMF0pfSxYKSx6cCgicklkIitp''@;'; put 'put ''ZSxYKTt2YXIgd2U9SFsxXS5UYXJnZXQuaW5kZXhPZigiIyIpO3JldHVybiBsdSgoLTE9PXdlPyIiOkhbMV0uVGFyZ2V0LnNsaWNlKHdlKzEpKXx8IiIsWCksbHUoSFsxXS5Ub29sdGlwfHwiIixYKSxsdSgiIixYKSxYLnNsaWNlKDAsWC5sKX0od2UseGUpKX19KSxkZWxldGUgaWVbIiFsaW5r''@;'; put 'put ''cyJdfSh4ZSxaZSx3ZSksWmVbIiFtYXJnaW5zIl0mJkMwKHhlLCJCcnRNYXJnaW5zIixmdW5jdGlvbiBTeChILGllKXtyZXR1cm4gbnVsbD09aWUmJihpZT1SaSg0OCkpLFJkKEgpLHdpLmZvckVhY2goZnVuY3Rpb24oWCl7dWYoSFtYXSxpZSl9KSxpZX0oWmVbIiFtYXJnaW5zIl0pKSwoIWll''@;'; put 'put ''fHxpZS5pZ25vcmVFQ3x8bnVsbD09aWUuaWdub3JlRUMpJiZmdW5jdGlvbiBFeChILGllKXshaWV8fCFpZVsiIXJlZiJdfHwoQzAoSCwiQnJ0QmVnaW5DZWxsSWdub3JlRUNzIiksQzAoSCwiQnJ0Q2VsbElnbm9yZUVDIixmdW5jdGlvbiBOXyhIKXt2YXIgaWU9UmkoMjQpO3JldHVybiBpZS53''@;'; put 'put ''cml0ZV9zaGlmdCg0LDQpLGllLndyaXRlX3NoaWZ0KDQsMSksR3AoSCxpZSksaWV9KEZvKGllWyIhcmVmIl0pKSksQzAoSCwiQnJ0RW5kQ2VsbElnbm9yZUVDcyIpKX0oeGUsWmUpLGZ1bmN0aW9uIFR4KEgsaWUsWCx3ZSl7aWYoaWVbIiFjb21tZW50cyJdLmxlbmd0aD4wKXt2YXIgeGU9WHQo''@;'; put 'put ''d2UsLTEsIi4uL2RyYXdpbmdzL3ZtbERyYXdpbmciKyhYKzEpKyIudm1sIixkdC5WTUwpO0MwKEgsIkJydExlZ2FjeURyYXdpbmciLHpwKCJySWQiK3hlKSksaWVbIiFsZWdhY3kiXT14ZX19KHhlLFplLEgsd2UpLEMwKHhlLCJCcnRFbmRTaGVldCIpLHhlLmVuZCgpfWZ1bmN0aW9uIFpfKEgp''@;'; put 'put ''e3ZhciB3ZSxpZT1bXSxYPUgubWF0Y2goL148YzpudW1DYWNoZT4vKTsoSC5tYXRjaCgvPGM6cHQgaWR4PSIoXGQqKSI+KC4qPyk8XC9jOnB0Pi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXt2YXIgWmU9RmUubWF0Y2goLzxjOnB0IGlkeD0iKFxkKj8pIj48Yzp2PiguKik8XC9jOnY+''@;'; put 'put ''PFwvYzpwdD4vKTshWmV8fChpZVsrWmVbMV1dPVg/K1plWzJdOlplWzJdKX0pO3ZhciB4ZT1ncigoSC5tYXRjaCgvPGM6Zm9ybWF0Q29kZT4oW1xzXFNdKj8pPFwvYzpmb3JtYXRDb2RlPi8pfHxbIiIsIkdlbmVyYWwiXSlbMV0pO3JldHVybihILm1hdGNoKC88YzpmPiguKj8pPFwvYzpmPi9n''@;'; put 'put ''bSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXt3ZT1GZS5yZXBsYWNlKC88Lio/Pi9nLCIiKX0pLFtpZSx4ZSx3ZV19ZHQuQ0hBUlQ9Imh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvY2hhcnQiLGR0LkNIQVJURVg9''@;'; put 'put ''Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMTQvcmVsYXRpb25zaGlwcy9jaGFydEV4Ijt2YXIgT3g9LzwoPzpcdys6KT9jaGFydD4oW1xzXFNdKj8pPFwvKD86XHcrOik/Y2hhcnQ+LyxmUD0vPCg/Olx3KzopP3Bsb3RBcmVhPihbXHNcU10qPyk8XC8oPzpcdys6KT9w''@;'; put 'put ''bG90QXJlYT4vLFJ4PS88KD86XHcrOik/bGVnZW5kPihbXHNcU10qPyk8XC8oPzpcdys6KT9sZWdlbmQ+LyxoUD0vPCg/Olx3KzopP3RpdGxlPihbXHNcU10qPyk8XC8oPzpcdys6KT90aXRsZT4vO2Z1bmN0aW9uIEJ4KEgsaWUsWCx3ZSx4ZSxGZSxaZSxqZSl7dmFyIFllPUZlfHx7IiF0eXBl''@;'; put 'put ''IjoiY2hhcnQifTtpZighSClyZXR1cm4gRmU7WmUmJlplLkFuY2hvciYmKFllWyIhcG9zIl09eWYoWmUuQW5jaG9yLGplKSxZZVsiIXBvc1R5cGUiXT1aZS5BbmNob3IudHlwZS5yZXBsYWNlKC9BbmNob3IvLCIiKSxZZVsiIWFic3BvcyJdPXlmKFplLkFuY2hvcixqZSksWWVbIiFyZWxwb3Mi''@;'; put 'put ''XT1PYihaZS5BbmNob3IsamUpKSxZZVsiIXBsb3QiXT1bXTt2YXIgTXQ9IiIseHQ9IiIsUnQ9SC5tYXRjaChPeCk7UnQ/KE10PUguc2xpY2UoMCxSdC5pbmRleCkseHQ9SC5zbGljZShSdC5pbmRleCtSdFswXS5sZW5ndGgpKTpNdD14dD1IO3ZhciBVdD1bXSxubj1NdC5tYXRjaCgvPGM6bGFu''@;'; put 'put ''Zy4qPz4vKXx8SC5tYXRjaCgvPGM6bGFuZy4qPz4vKXx8eHQubWF0Y2goLzxjOmxhbmcuKj8+Lyk7cmV0dXJuIG5uJiYoWWVbIiFsYW5nIl09KGVuKG5uWzBdKXx8e30pLnZhbHx8ImVuLVVTIiksUnQmJigoVXQ9UnRbMV0ubWF0Y2goaFApKSYmZnVuY3Rpb24gTHgoSCxpZSl7dmFyIFg9IiI7''@;'; put 'put ''SC5tYXRjaCgvPGM6cmljaD4vKSYmSC5yZXBsYWNlKC88YTp0PihbXHNcU10qPyk8XC9hOnQ+L2csZnVuY3Rpb24od2UseGUpe1grPXhlfSksaWVbIiF0aXRsZSJdPVh8fCJDaGFydCBUaXRsZSJ9KFV0WzFdLFllKSxmdW5jdGlvbiBkUChILGllKXtpZihIKXt2YXIgWD0wLHdlPTAseGU9IkEi''@;'; put 'put ''LEZlPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19O0gucmVwbGFjZShQeCxmdW5jdGlvbihaZSxqZSl7dmFyIFllPXt0OmplLGM6WCx3OjAsc2VyOltdfSxNdD1bXSx4dD0oWmUubWF0Y2goLzxjOnNlci8pfHxbXSkuaW5kZXgsUnQ9eHQ/WmUuc2xpY2UoMCx4dCk6WmU7InNjYXR0ZXIi''@;'; put 'put ''PT1qZSYmKE10PVplLm1hdGNoKC88YzpzY2F0dGVyU3R5bGUoW15cLz5dKilcLz4vbSkpJiZlbihNdFswXSksImJhciI9PWplJiYoTXQ9WmUubWF0Y2goLzxjOmJhckRpcihbXlwvPl0qKVwvPi9tKSkmJihZZS5iYXJEaXI9ImJhciI9PWVuKE10WzBdKS52YWw/ImgiOiJ2IiksKE10PVJ0Lm1h''@;'; put 'put ''dGNoKC88Yzpncm91cGluZyhbXlwvPl0qKVwvPi9tKSkmJihZZS5ncm91cGluZz1lbihNdFswXSkudmFsfHwic3RhbmRhcmQiKSwoWmUubWF0Y2goYjUpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihubil7dmFyIENuPVtdLER0PXt9LHp0PVtdO2lmKG5uLm1hdGNoKC88Yzp0eD4vKSl7dmFyIFBu''@;'; put 'put ''PVpfKChubi5tYXRjaCgvPGM6dHg+KFtcc1xTXSo/KTxcL2M6dHg+Lyl8fFtdKVsxXXx8IiIpfHxbXTtQblswXSYmUG5bMF1bMF0mJihEdC5uYW1lPVBuWzBdWzBdKSxQblsyXSYmKER0Lm5hbWVyZWY9UG5bMl0pfVsieFZhbCIsInlWYWwiLCJjYXQiLCJ2YWwiLCJidWJibGVTaXplIl0uZm9y''@;'; put 'put ''RWFjaChmdW5jdGlvbihUbil7dmFyIFluLE9uPW5uLm1hdGNoKG5ldyBSZWdFeHAoIjxjOiIrVG4rIj5bXFxzXFxTXSo/PFxcL2M6IitUbisiPiIsImdtIikpO09uJiYoKE9uWzBdLm1hdGNoKC88YzpmPiguKj8pPFwvYzpmPi9nbSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKE1yKXtZbj1Nci5y''@;'; put 'put ''ZXBsYWNlKC88Lio/Pi9nLCIiKX0pLChPblswXS5tYXRjaCgvPGM6KD86XHcqKUNhY2hlPltcc1xTXSo/PFwvYzooPzpcdyopQ2FjaGU+L2dtKXx8W10pLmZvckVhY2goZnVuY3Rpb24oTXIpe3ZhciBhaT1aXyhNcik7RmUucy5yPUZlLnMuYz0wLEZlLmUuYz1YLHhlPV9hKFgpLGFpWzBdLmZv''@;'; put 'put ''ckVhY2goZnVuY3Rpb24oeXIsYXIpe2llW3hlK1hhKGFyKV09e3Q6Im51bWJlciI9PXR5cGVvZiB5cj8ibiI6InMiLHY6eXIsejphaVsxXX0sd2U9YXJ9KSxGZS5lLnI8d2UmJihGZS5lLnI9d2UpLCsrWCxZZS53KyssQ24ucHVzaChUbiksKGFpWzJdfHxZbikmJnp0LnB1c2goYWlbMl18fFlu''@;'; put 'put ''KSwidmFsIj09VG4mJihEdC56PWFpWzFdfHwiR2VuZXJhbCIpfSkpfSksKE10PVplLm1hdGNoKC88YzpzbW9vdGgoW15cLz5dKilcLz4vbSkpJiYoRHQuc21vb3RoPW51bGw9PWVuKE10WzBdKS52YWx8fERpKGVuKE10WzBdKS52YWwpKSxEdC5jb2xzPUNuLER0LnJhbmdlcz16dCxZZS5zZXIu''@;'; put 'put ''cHVzaChEdCl9KSwiZG91Z2hudXQiPT1qZSYmKE10PVplLm1hdGNoKC88Yzpob2xlU2l6ZShbXlwvPl0qKVwvPi9tKSkmJihZZS5ob2xlPShlbihNdFswXSkudmFsfHwxMCkvMTAwKSxpZVsiIXBsb3QiXS5wdXNoKFllKX0pLFg+MCYmKGllWyIhcmVmIl09ZmEoRmUpKX19KChSdFsxXS5tYXRj''@;'; put 'put ''aChmUCl8fFtdKVsxXSxZZSksbnVsbCE9KFV0PVJ0WzFdLm1hdGNoKFJ4KSkmJmZ1bmN0aW9uIFUxKEgsaWUpe3ZhciBYO2llWyIhbGVnZW5kIl09e3BvczoiciJ9LChYPUgubWF0Y2goLzxjOmxlZ2VuZFBvcyhbXlwvPl0qKVwvPi9tKSkmJihpZVsiIWxlZ2VuZCJdLnBvcz1lbihYWzBdKS52''@;'; put 'put ''YWx8fCJyIil9KFV0WzBdLFllKSksWWV9dmFyIFB4PS88YzooKD86YXJlYXxsaW5lfHN0b2NrfHJhZGFyfHNjYXR0ZXJ8cGllfGRvdWdobnV0fGJhcnxvZlBpZXxzdXJmYWNlfGJ1YmJsZSkoPzozRCk/KUNoYXJ0W14+XSo+KFtcc1xTXSo/KTxcL2M6KD86YXJlYXxsaW5lfHN0b2NrfHJhZGFy''@;'; put 'put ''fHNjYXR0ZXJ8cGllfGRvdWdobnV0fGJhcnxvZlBpZXxzdXJmYWNlfGJ1YmJsZSkoPzozRCk/Q2hhcnQ+L2dtLGI1PS88YzpzZXI+KFtcc1xTXSo/KTxcL2M6c2VyPi9nbTtkdC5DUz0iaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRp''@;'; put 'put ''b25zaGlwcy9jaGFydHNoZWV0Ijt2YXIgcFA9X2koImNoYXJ0c2hlZXQiLG51bGwse3htbG5zOlgwLm1haW5bMF0sInhtbG5zOnIiOlgwLnJ9KTtmdW5jdGlvbiBnUChILGllLFgsd2Upe3ZhciB4ZT1bY24scFBdO3JldHVybiB4ZS5wdXNoKCI8c2hlZXRQci8+IikseGUucHVzaCgnPHNoZWV0''@;'; put 'put ''Vmlld3M+PHNoZWV0VmlldyB6b29tU2NhbGU9IjEwMCIgd29ya2Jvb2tWaWV3SWQ9IjAiIHpvb21Ub0ZpdD0iMSIvPjwvc2hlZXRWaWV3cz4nKSx4ZVt4ZS5sZW5ndGhdPV9pKCJkcmF3aW5nIixudWxsLHsicjppZCI6InJJZDEifSksWHQod2UsLTEsIi4uL2RyYXdpbmdzL2RyYXdpbmciKyhI''@;'; put 'put ''KzEpKyIueG1sIixkdC5EUkFXKSx4ZS5sZW5ndGg+MiYmKHhlW3hlLmxlbmd0aF09IjwvY2hhcnRzaGVldD4iLHhlWzFdPXhlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSx4ZS5qb2luKCIiKX1mdW5jdGlvbiBOZCgpe3ZhciBIPUoyKCk7cmV0dXJuIEMwKEgsIkJydEJlZ2luU2hlZXQiKSxDMChI''@;'; put 'put ''LCJCcnRFbmRTaGVldCIpLEguZW5kKCl9dmFyIEZpPVtbImFsbG93UmVmcmVzaFF1ZXJ5IiwhMSwiYm9vbCJdLFsiYXV0b0NvbXByZXNzUGljdHVyZXMiLCEwLCJib29sIl0sWyJiYWNrdXBGaWxlIiwhMSwiYm9vbCJdLFsiY2hlY2tDb21wYXRpYmlsaXR5IiwhMSwiYm9vbCJdLFsiQ29kZU5h''@;'; put 'put ''bWUiLCIiXSxbImRhdGUxOTA0IiwhMSwiYm9vbCJdLFsiZGVmYXVsdFRoZW1lVmVyc2lvbiIsMCwiaW50Il0sWyJmaWx0ZXJQcml2YWN5IiwhMSwiYm9vbCJdLFsiaGlkZVBpdm90RmllbGRMaXN0IiwhMSwiYm9vbCJdLFsicHJvbXB0ZWRTb2x1dGlvbnMiLCExLCJib29sIl0sWyJwdWJsaXNo''@;'; put 'put ''SXRlbXMiLCExLCJib29sIl0sWyJyZWZyZXNoQWxsQ29ubmVjdGlvbnMiLCExLCJib29sIl0sWyJzYXZlRXh0ZXJuYWxMaW5rVmFsdWVzIiwhMCwiYm9vbCJdLFsic2hvd0JvcmRlclVuc2VsZWN0ZWRUYWJsZXMiLCEwLCJib29sIl0sWyJzaG93SW5rQW5ub3RhdGlvbiIsITAsImJvb2wiXSxb''@;'; put 'put ''InNob3dPYmplY3RzIiwiYWxsIl0sWyJzaG93UGl2b3RDaGFydEZpbHRlciIsITEsImJvb2wiXSxbInVwZGF0ZUxpbmtzIiwidXNlclNldCJdXSxSMz1bWyJhY3RpdmVUYWIiLDAsImludCJdLFsiYXV0b0ZpbHRlckRhdGVHcm91cGluZyIsITAsImJvb2wiXSxbImZpcnN0U2hlZXQiLDAsImlu''@;'; put 'put ''dCJdLFsibWluaW1pemVkIiwhMSwiYm9vbCJdLFsic2hvd0hvcml6b250YWxTY3JvbGwiLCEwLCJib29sIl0sWyJzaG93U2hlZXRUYWJzIiwhMCwiYm9vbCJdLFsic2hvd1ZlcnRpY2FsU2Nyb2xsIiwhMCwiYm9vbCJdLFsidGFiUmF0aW8iLDYwMCwiaW50Il0sWyJ2aXNpYmlsaXR5Iiwidmlz''@;'; put 'put ''aWJsZSJdXSx2UD1bXSxOeD1bWyJjYWxjQ29tcGxldGVkIiwidHJ1ZSJdLFsiY2FsY01vZGUiLCJhdXRvIl0sWyJjYWxjT25TYXZlIiwidHJ1ZSJdLFsiY29uY3VycmVudENhbGMiLCJ0cnVlIl0sWyJmdWxsQ2FsY09uTG9hZCIsImZhbHNlIl0sWyJmdWxsUHJlY2lzaW9uIiwidHJ1ZSJdLFsi''@;'; put 'put ''aXRlcmF0ZSIsImZhbHNlIl0sWyJpdGVyYXRlQ291bnQiLCIxMDAiXSxbIml0ZXJhdGVEZWx0YSIsIjAuMDAxIl0sWyJyZWZNb2RlIiwiQTEiXV07ZnVuY3Rpb24gUGgoSCxpZSl7Zm9yKHZhciBYPTA7WCE9SC5sZW5ndGg7KytYKWZvcih2YXIgd2U9SFtYXSx4ZT0wO3hlIT1pZS5sZW5ndGg7''@;'; put 'put ''Kyt4ZSl7dmFyIEZlPWllW3hlXTtpZihudWxsPT13ZVtGZVswXV0pd2VbRmVbMF1dPUZlWzFdO2Vsc2Ugc3dpdGNoKEZlWzJdKXtjYXNlImJvb2wiOiJzdHJpbmciPT10eXBlb2Ygd2VbRmVbMF1dJiYod2VbRmVbMF1dPURpKHdlW0ZlWzBdXSkpO2JyZWFrO2Nhc2UiaW50Ijoic3RyaW5nIj09''@;'; put 'put ''dHlwZW9mIHdlW0ZlWzBdXSYmKHdlW0ZlWzBdXT1wYXJzZUludCh3ZVtGZVswXV0sMTApKX19fWZ1bmN0aW9uICRmKEgsaWUpe2Zvcih2YXIgWD0wO1ghPWllLmxlbmd0aDsrK1gpe3ZhciB3ZT1pZVtYXTtpZihudWxsPT1IW3dlWzBdXSlIW3dlWzBdXT13ZVsxXTtlbHNlIHN3aXRjaCh3ZVsy''@;'; put 'put ''XSl7Y2FzZSJib29sIjoic3RyaW5nIj09dHlwZW9mIEhbd2VbMF1dJiYoSFt3ZVswXV09RGkoSFt3ZVswXV0pKTticmVhaztjYXNlImludCI6InN0cmluZyI9PXR5cGVvZiBIW3dlWzBdXSYmKEhbd2VbMF1dPXBhcnNlSW50KEhbd2VbMF1dLDEwKSl9fX1mdW5jdGlvbiBxZihIKXskZihILldC''@;'; put 'put ''UHJvcHMsRmkpLCRmKEguQ2FsY1ByLE54KSxQaChILldCVmlldyxSMyksUGgoSC5TaGVldHMsdlApLFVjLmRhdGUxOTA0PURpKEguV0JQcm9wcy5kYXRlMTkwNCl9dmFyIGp4PSJdWyo/L1xcIi5zcGxpdCgiIik7ZnVuY3Rpb24gWngoSCxpZSl7aWYoSC5sZW5ndGg+MzEpe2lmKGllKXJldHVy''@;'; put 'put ''biExO3Rocm93IG5ldyBFcnJvcigiU2hlZXQgbmFtZXMgY2Fubm90IGV4Y2VlZCAzMSBjaGFycyIpfXZhciBYPSEwO3JldHVybiBqeC5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtpZigtMSE9SC5pbmRleE9mKHdlKSl7aWYoIWllKXRocm93IG5ldyBFcnJvcigiU2hlZXQgbmFtZSBjYW5ub3QgY29u''@;'; put 'put ''dGFpbiA6IFxcIC8gPyAqIFsgXSIpO1g9ITF9fSksWH12YXIgeng9Lzxcdys6d29ya2Jvb2svLFd4PV9pKCJ3b3JrYm9vayIsbnVsbCx7eG1sbnM6WDAubWFpblswXSwieG1sbnM6ciI6WDAucn0pO2Z1bmN0aW9uIHdQKEgsaWUpe3ZhciBYPWllfHx7fSx3ZT1bY25dO3dlW3dlLmxlbmd0aF09''@;'; put 'put ''V3g7dmFyIHhlPUguV29ya2Jvb2smJihILldvcmtib29rLk5hbWVzfHxbXSkubGVuZ3RoPjA7SC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5Nb2RpZnkmJih3ZVt3ZS5sZW5ndGhdPWZ1bmN0aW9uIF81KEgpe3ZhciBpZT17fTtyZXR1cm4gSC53YXJuJiYoaWUucmVhZE9ubHlSZWNvbW1lbmRlZD0x''@;'; put 'put ''KSxpZS51c2VyTmFtZT1ILnVzZXJ8fCJTaGVldCBKUyIsSC5lbmNyeXB0aW9uJiYoSC5lbmNyeXB0aW9uLmFsZ28mJihpZS5hbGdvcml0aG1OYW1lPUguZW5jcnlwdGlvbi5hbGdvKSxILmVuY3J5cHRpb24uaGFzaCYmKGllLmhhc2hWYWx1ZT1ILmVuY3J5cHRpb24uaGFzaCksSC5lbmNyeXB0''@;'; put 'put ''aW9uLnNhbHQmJihpZS5zYWx0VmFsdWU9SC5lbmNyeXB0aW9uLnNhbHQpLEguZW5jcnlwdGlvbi5zcGluJiYoaWUuc3BpbkNvdW50PUguZW5jcnlwdGlvbi5zcGluKSksX2koImZpbGVTaGFyaW5nIixudWxsLGllKX0oSC5Xb3JrYm9vay5Nb2RpZnkpKTt2YXIgRmU9e2NvZGVOYW1lOiJUaGlz''@;'; put 'put ''V29ya2Jvb2sifTtILldvcmtib29rJiZILldvcmtib29rLldCUHJvcHMmJihGaS5mb3JFYWNoKGZ1bmN0aW9uKE10KXtudWxsIT1ILldvcmtib29rLldCUHJvcHNbTXRbMF1dJiZILldvcmtib29rLldCUHJvcHNbTXRbMF1dIT1NdFsxXSYmKEZlW010WzBdXT1ILldvcmtib29rLldCUHJvcHNb''@;'; put 'put ''TXRbMF1dKX0pLEguV29ya2Jvb2suV0JQcm9wcy5Db2RlTmFtZSYmKEZlLmNvZGVOYW1lPUguV29ya2Jvb2suV0JQcm9wcy5Db2RlTmFtZSxkZWxldGUgRmUuQ29kZU5hbWUpKSx3ZVt3ZS5sZW5ndGhdPV9pKCJ3b3JrYm9va1ByIixudWxsLEZlKSxILldvcmtib29rJiZILldvcmtib29rLlBy''@;'; put 'put ''b3RlY3Rpb24mJih3ZVt3ZS5sZW5ndGhdPWZ1bmN0aW9uIEd4KEgpe3ZhciBpZT17fTtyZXR1cm4gSC5sb2NrU3RydWN0dXJlJiYoaWUubG9ja1N0cnVjdHVyZT0xKSxILmxvY2tXaW5kb3dzJiYoaWUubG9ja1dpbmRvd3M9MSksSC5lbmNyeXB0aW9uJiYoSC5lbmNyeXB0aW9uLmFsZ28mJihp''@;'; put 'put ''ZS53b3JrYm9va0FsZ29yaXRobU5hbWU9SC5lbmNyeXB0aW9uLmFsZ28pLEguZW5jcnlwdGlvbi5oYXNoJiYoaWUud29ya2Jvb2tIYXNoVmFsdWU9SC5lbmNyeXB0aW9uLmhhc2gpLEguZW5jcnlwdGlvbi5zYWx0JiYoaWUud29ya2Jvb2tTYWx0VmFsdWU9SC5lbmNyeXB0aW9uLnNhbHQpLEgu''@;'; put 'put ''ZW5jcnlwdGlvbi5zcGluJiYoaWUud29ya2Jvb2tTcGluQ291bnQ9SC5lbmNyeXB0aW9uLnNwaW4pKSxfaSgid29ya2Jvb2tQcm90ZWN0aW9uIixudWxsLGllKX0oSC5Xb3JrYm9vay5Qcm90ZWN0aW9uKSk7dmFyIFplPUguV29ya2Jvb2smJkguV29ya2Jvb2suU2hlZXRzfHxbXSxqZT0wO2lm''@;'; put 'put ''KFplJiZaZVswXSYmWmVbMF0uSGlkZGVuKXtmb3Iod2Vbd2UubGVuZ3RoXT0iPGJvb2tWaWV3cz4iLGplPTA7amUhPUguU2hlZXROYW1lcy5sZW5ndGgmJlplW2plXSYmWmVbamVdLkhpZGRlbjsrK2plKTtqZT09SC5TaGVldE5hbWVzLmxlbmd0aCYmKGplPTApLHdlW3dlLmxlbmd0aF09Jzx3''@;'; put 'put ''b3JrYm9va1ZpZXcgZmlyc3RTaGVldD0iJytqZSsnIiBhY3RpdmVUYWI9IicramUrJyIvPicsd2Vbd2UubGVuZ3RoXT0iPC9ib29rVmlld3M+In1mb3Iod2Vbd2UubGVuZ3RoXT0iPHNoZWV0cz4iLGplPTA7amUhPUguU2hlZXROYW1lcy5sZW5ndGg7KytqZSl7dmFyIFllPXtuYW1lOlJyKEgu''@;'; put 'put ''U2hlZXROYW1lc1tqZV0uc2xpY2UoMCwzMSkpfTtpZihZZS5zaGVldElkPSIiKyhqZSsxKSxZZVsicjppZCJdPSJySWQiKyhqZSsxKSxaZVtqZV0pc3dpdGNoKFplW2plXS5IaWRkZW4pe2Nhc2UgMTpZZS5zdGF0ZT0iaGlkZGVuIjticmVhaztjYXNlIDI6WWUuc3RhdGU9InZlcnlIaWRkZW4i''@;'; put 'put ''fXdlW3dlLmxlbmd0aF09X2koInNoZWV0IixudWxsLFllKX1yZXR1cm4gd2Vbd2UubGVuZ3RoXT0iPC9zaGVldHM+IixILkV4dGVybmFsV0ImJkguRXh0ZXJuYWxXQi5sZW5ndGgmJih3ZVt3ZS5sZW5ndGhdPSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiIsKEguRXh0ZXJuYWxXQnx8W10pLmZvckVh''@;'; put 'put ''Y2goZnVuY3Rpb24oTXQseHQpe3ZhciBSdD1YdChYLndicmVscywtMSwiZXh0ZXJuYWxMaW5rcy9leHRlcm5hbExpbmsiKyh4dCsxKSsiLnhtbCIsZHQuWExJTkspO3dlW3dlLmxlbmd0aF09JzxleHRlcm5hbFJlZmVyZW5jZSByOmlkPSJySWQnK1J0KyciLz4nfSksd2Vbd2UubGVuZ3RoXT0i''@;'; put 'put ''PC9leHRlcm5hbFJlZmVyZW5jZXM+IikseGUmJih3ZVt3ZS5sZW5ndGhdPSI8ZGVmaW5lZE5hbWVzPiIsSC5Xb3JrYm9vayYmSC5Xb3JrYm9vay5OYW1lcyYmSC5Xb3JrYm9vay5OYW1lcy5mb3JFYWNoKGZ1bmN0aW9uKE10KXt2YXIgeHQ9e25hbWU6TXQuTmFtZX07TXQuQ29tbWVudCYmKHh0''@;'; put 'put ''LmNvbW1lbnQ9TXQuQ29tbWVudCksbnVsbCE9TXQuU2hlZXQmJih4dC5sb2NhbFNoZWV0SWQ9IiIrTXQuU2hlZXQpLE10LkhpZGRlbiYmKHh0LmhpZGRlbj0iMSIpLE10LlJlZiYmKHdlW3dlLmxlbmd0aF09X2koImRlZmluZWROYW1lIixScihNdC5SZWYpLHh0KSl9KSx3ZVt3ZS5sZW5ndGhd''@;'; put 'put ''PSI8L2RlZmluZWROYW1lcz4iKSxYJiZYLnBpdm90cyYmWC5waXZvdHMubGVuZ3RoPjAmJih3ZS5wdXNoKCI8cGl2b3RDYWNoZXM+IiksWC5waXZvdHMuZm9yRWFjaChmdW5jdGlvbihNdCx4dCl7d2UucHVzaCgnPHBpdm90Q2FjaGUgY2FjaGVJZD0iJysoeHQrMSkrJyIgcjppZD0icklkJytN''@;'; put 'put ''dFsyXSsnIi8+Jyl9KSx3ZS5wdXNoKCI8L3Bpdm90Q2FjaGVzPiIpKSx3ZS5sZW5ndGg+MiYmKHdlW3dlLmxlbmd0aF09Ijwvd29ya2Jvb2s+Iix3ZVsxXT13ZVsxXS5yZXBsYWNlKCIvPiIsIj4iKSksd2Uuam9pbigiIil9ZnVuY3Rpb24gV18oSCxpZSl7cmV0dXJuIGllfHwoaWU9UmkoMTI3''@;'; put 'put ''KSksaWUud3JpdGVfc2hpZnQoNCxILkhpZGRlbiksaWUud3JpdGVfc2hpZnQoNCxILmlUYWJJRCksenAoSC5zdHJSZWxJRCxpZSksbHUoSC5uYW1lLnNsaWNlKDAsMzEpLGllKSxpZS5sZW5ndGg+aWUubD9pZS5zbGljZSgwLGllLmwpOmllfWZ1bmN0aW9uIEdtKEgsaWUpe3ZhciBYPXt9O3Jl''@;'; put 'put ''dHVybiBILnJlYWRfc2hpZnQoNCksWC5BcmNoSUQ9SC5yZWFkX3NoaWZ0KDQpLEgubCs9aWUtOCxYfWZ1bmN0aW9uIFlfKEgsaWUpe3ZhciBYPUoyKCk7cmV0dXJuIEMwKFgsIkJydEJlZ2luQm9vayIpLEMwKFgsIkJydEZpbGVWZXJzaW9uIixmdW5jdGlvbiBGaChILGllKXtpZXx8KGllPVJp''@;'; put 'put ''KDEyNykpO2Zvcih2YXIgWD0wOzQhPVg7KytYKWllLndyaXRlX3NoaWZ0KDQsMCk7cmV0dXJuIGx1KCJTaGVldEpTIixpZSksbHUoVS52ZXJzaW9uLGllKSxsdShVLnZlcnNpb24saWUpLGx1KCI3MjYyIixpZSksaWUubGVuZ3RoPmllLmw/aWUuc2xpY2UoMCxpZS5sKTppZX0oKSksQzAoWCwi''@;'; put 'put ''QnJ0V2JQcm9wIixmdW5jdGlvbiBMdShILGllKXtpZXx8KGllPVJpKDcyKSk7dmFyIFg9MDtyZXR1cm4gSCYmSC5maWx0ZXJQcml2YWN5JiYoWHw9OCksaWUud3JpdGVfc2hpZnQoNCxYKSxpZS53cml0ZV9zaGlmdCg0LDApLFRNKEgmJkguQ29kZU5hbWV8fCJUaGlzV29ya2Jvb2siLGllKSxp''@;'; put 'put ''ZS5zbGljZSgwLGllLmwpfShILldvcmtib29rJiZILldvcmtib29rLldCUHJvcHN8fG51bGwpKSxmdW5jdGlvbiBTQShILGllKXtpZihpZS5Xb3JrYm9vayYmaWUuV29ya2Jvb2suU2hlZXRzKXtmb3IodmFyIFg9aWUuV29ya2Jvb2suU2hlZXRzLHdlPTAseGU9LTEsRmU9LTE7d2U8WC5sZW5n''@;'; put 'put ''dGg7Kyt3ZSkhWFt3ZV18fCFYW3dlXS5IaWRkZW4mJi0xPT14ZT94ZT13ZToxPT1YW3dlXS5IaWRkZW4mJi0xPT1GZSYmKEZlPXdlKTtGZT54ZXx8KEMwKEgsIkJydEJlZ2luQm9va1ZpZXdzIiksQzAoSCwiQnJ0Qm9va1ZpZXciLGZ1bmN0aW9uIGtmKEgsaWUpe3JldHVybiBpZXx8KGllPVJp''@;'; put 'put ''KDI5KSksaWUud3JpdGVfc2hpZnQoLTQsMCksaWUud3JpdGVfc2hpZnQoLTQsNDYwKSxpZS53cml0ZV9zaGlmdCg0LDI4ODAwKSxpZS53cml0ZV9zaGlmdCg0LDE3NjAwKSxpZS53cml0ZV9zaGlmdCg0LDUwMCksaWUud3JpdGVfc2hpZnQoNCxIKSxpZS53cml0ZV9zaGlmdCg0LEgpLGllLndy''@;'; put 'put ''aXRlX3NoaWZ0KDEsMTIwKSxpZS5sZW5ndGg+aWUubD9pZS5zbGljZSgwLGllLmwpOmllfSh4ZSkpLEMwKEgsIkJydEVuZEJvb2tWaWV3cyIpKX19KFgsSCksZnVuY3Rpb24gSmkoSCxpZSl7QzAoSCwiQnJ0QmVnaW5CdW5kbGVTaHMiKTtmb3IodmFyIFg9MDtYIT1pZS5TaGVldE5hbWVzLmxl''@;'; put 'put ''bmd0aDsrK1gpQzAoSCwiQnJ0QnVuZGxlU2giLFdfKHtIaWRkZW46aWUuV29ya2Jvb2smJmllLldvcmtib29rLlNoZWV0cyYmaWUuV29ya2Jvb2suU2hlZXRzW1hdJiZpZS5Xb3JrYm9vay5TaGVldHNbWF0uSGlkZGVufHwwLGlUYWJJRDpYKzEsc3RyUmVsSUQ6InJJZCIrKFgrMSksbmFtZTpp''@;'; put 'put ''ZS5TaGVldE5hbWVzW1hdfSkpO0MwKEgsIkJydEVuZEJ1bmRsZVNocyIpfShYLEgpLEMwKFgsIkJydEVuZEJvb2siKSxYLmVuZCgpfWZ1bmN0aW9uIFh4KEgsaWUsWCx3ZSx4ZSl7cmV0dXJuKCIuYmluIj09PWllLnNsaWNlKC00KT9EeDokQikoSCxYLHdlLHhlKX1mdW5jdGlvbiBNUChILGll''@;'; put 'put ''LFgsd2UseGUpe3JldHVybigiLmJpbiI9PT1pZS5zbGljZSgtNCk/TmQ6Z1ApKEgsWCx3ZSx4ZSl9ZnVuY3Rpb24gRVAoSCxpZSxYKXtyZXR1cm4oIi5iaW4iPT09aWUuc2xpY2UoLTQpP09SOnRFKShILFgpfWZ1bmN0aW9uIHhQKEgsaWUsWCl7cmV0dXJuKCIuYmluIj09PWllLnNsaWNlKC00''@;'; put 'put ''KT9VYjpXYikoSCxYKX12YXIgWF89LyhbXHc6XSspPSgoPzoiKShbXiJdKikoPzoiKXwoPzonKShbXiddKikoPzonKSkvZywkeD0vKFtcdzpdKyk9KCg/OiIpKD86W14iXSopKD86Iil8KD86JykoPzpbXiddKikoPzonKSkvO2Z1bmN0aW9uIG5jKEgsaWUpe3ZhciBYPUguc3BsaXQoL1xzKy8p''@;'; put 'put ''LHdlPVtdO2lmKGllfHwod2VbMF09WFswXSksMT09PVgubGVuZ3RoKXJldHVybiB3ZTt2YXIgRmUsWmUsWWUseGU9SC5tYXRjaChYXyk7aWYoeGUpZm9yKFllPTA7WWUhPXhlLmxlbmd0aDsrK1llKS0xPT09KFplPShGZT14ZVtZZV0ubWF0Y2goJHgpKVsxXS5pbmRleE9mKCI6IikpP3dlW0Zl''@;'; put 'put ''WzFdXT1GZVsyXS5zbGljZSgxLEZlWzJdLmxlbmd0aC0xKTp3ZVsieG1sbnM6Ij09PUZlWzFdLnNsaWNlKDAsNik/InhtbG5zIitGZVsxXS5zbGljZSg2KTpGZVsxXS5zbGljZShaZSsxKV09RmVbMl0uc2xpY2UoMSxGZVsyXS5sZW5ndGgtMSk7cmV0dXJuIHdlfWZ1bmN0aW9uIHF4KEgpe3Zh''@;'; put 'put ''ciBYPXt9O2lmKDE9PT1ILnNwbGl0KC9ccysvKS5sZW5ndGgpcmV0dXJuIFg7dmFyIHhlLEZlLGplLHdlPUgubWF0Y2goWF8pO2lmKHdlKWZvcihqZT0wO2plIT13ZS5sZW5ndGg7KytqZSktMT09PShGZT0oeGU9d2VbamVdLm1hdGNoKCR4KSlbMV0uaW5kZXhPZigiOiIpKT9YW3hlWzFdXT14''@;'; put 'put ''ZVsyXS5zbGljZSgxLHhlWzJdLmxlbmd0aC0xKTpYWyJ4bWxuczoiPT09eGVbMV0uc2xpY2UoMCw2KT8ieG1sbnMiK3hlWzFdLnNsaWNlKDYpOnhlWzFdLnNsaWNlKEZlKzEpXT14ZVsyXS5zbGljZSgxLHhlWzJdLmxlbmd0aC0xKTtyZXR1cm4gWH1mdW5jdGlvbiBXbShIKXt2YXIgaWU9e307''@;'; put 'put ''aWYoSC5EZWZhdWx0Um93SGVpZ2h0KXt2YXIgWD17aHB4OjQqcGFyc2VJbnQoSC5EZWZhdWx0Um93SGVpZ2h0KS8zfTtKOChYKSxpZS5yb3c9WH1pZihILkRlZmF1bHRDb2xXaWR0aCl7dmFyIHdlPXt3cHg6NCpwYXJzZUludChILkRlZmF1bHRDb2xXaWR0aCkvM307eWMod2UpLGllLmNvbD13''@;'; put 'put ''ZX1yZXR1cm4gaWV9ZnVuY3Rpb24gSGgoSCxpZSxYLHdlKXt2YXIgeGU9d2U7c3dpdGNoKChYWzBdLm1hdGNoKC9kdDpkdD0iKFtcdy5dKykiLyl8fFsiIiwiIl0pWzFdKXtjYXNlImJvb2xlYW4iOnhlPURpKHdlKTticmVhaztjYXNlImkyIjpjYXNlImludCI6eGU9cGFyc2VJbnQod2UsMTAp''@;'; put 'put ''O2JyZWFrO2Nhc2UicjQiOmNhc2UiZmxvYXQiOnhlPXBhcnNlRmxvYXQod2UpO2JyZWFrO2Nhc2UiZGF0ZSI6Y2FzZSJkYXRlVGltZS50eiI6eGU9ZG4od2UpO2JyZWFrO2Nhc2UiaTgiOmNhc2Uic3RyaW5nIjpjYXNlImZpeGVkIjpjYXNlInV1aWQiOmNhc2UiYmluLmJhc2U2NCI6YnJlYWs7''@;'; put 'put ''ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoImJhZCBjdXN0cHJvcDoiK1hbMF0pfUhbZ3IoaWUpXT14ZX12YXIgS189ezA6Ik5vbmUiLDE6IlNpbmdsZSIsMjoiRG91YmxlIiwzMzoiU2luZ2xlQWNjb3VudGluZyIsMzQ6IkRvdWJsZUFjY291bnRpbmcifSx0VD1ldChLXyk7ZnVuY3Rpb24gblQo''@;'; put 'put ''SCxpZSxYLHdlKXtpZih3ZS5jZWxsU3R5bGVzKXtpZihYPVgucmVwbGFjZSgvXHMrL2csIiAiKSxpZS5JbnRlcmlvcil7dmFyIHhlPWllLkludGVyaW9yO3hlLlBhdHRlcm4mJih4ZS5wYXR0ZXJuVHlwZT1qUlt4ZS5QYXR0ZXJuXXx8eGUuUGF0dGVybikseGUuQ29sb3ImJnhlLkNvbG9yLm1h''@;'; put 'put ''dGNoKC8jWzAtOUEtRmEtZl0qLykmJih4ZS5mZ0NvbG9yPXtyZ2I6eGUuQ29sb3Iuc2xpY2UoMSl9KX0hZnVuY3Rpb24gRDYoSCl7IUguQm9yZGVyc3x8KEguQm9yZGVycy5mb3JFYWNoKGZ1bmN0aW9uKGllKXt2YXIgWD1pZS5Qb3NpdGlvbi50b0xvd2VyQ2FzZSgpO0hbWF09e3N0eWxlOnJU''@;'; put 'put ''KGllLkxpbmVTdHlsZSwraWUuV2VpZ2h0KSxjb2xvcjp7cmdiOihpZS5Db2xvcnx8IiMwMDAwMDAiKS5zbGljZSgxKX19fSksZGVsZXRlIEguQm9yZGVycyl9KGllKTt2YXIgWmUsRmU9WC5tYXRjaCgvPCg/Olx3KzopP0ZvbnRcc1tePl0qPi8pO0ZlJiYoRGkoKFplPWVuKEZlWzBdKSkuQm9s''@;'; put 'put ''ZCkmJihpZS5Cb2xkPSEwKSxEaShaZS5JdGFsaWMpJiYoaWUuSXRhbGljPSEwKSxEaShaZS5TdHJpa2VUaHJvdWdoKSYmKGllLlN0cmlrZT0hMCksWmUuU2l6ZSYmKGllLlNpemU9K1plLlNpemUpLGllLkZvbnROYW1lPVplLkZvbnROYW1lP1plLkZvbnROYW1lOiJBcmlhbCIsWmUuVW5kZXJs''@;'; put 'put ''aW5lJiYoaWUuVW5kZXJsaW5lPXRUW1plLlVuZGVybGluZV0pLFplLkNvbG9yJiYoaWUuUkdCPVplLkNvbG9yLnNsaWNlKC02KSkpLGllLkFsaWdubWVudCYmKGllLmFsaWdubWVudD17fSxpZS5BbGlnbm1lbnQuVmVydGljYWwmJihpZS5hbGlnbm1lbnQudmVydGljYWw9aWUuQWxpZ25tZW50''@;'; put 'put ''LlZlcnRpY2FsLnRvTG93ZXJDYXNlKCkpLGllLkFsaWdubWVudC5Ib3Jpem9udGFsJiYoaWUuYWxpZ25tZW50Lmhvcml6b250YWw9aWUuQWxpZ25tZW50Lkhvcml6b250YWwudG9Mb3dlckNhc2UoKSksRGkoaWUuQWxpZ25tZW50LldyYXBUZXh0fHwiMCIpP2llLmFsaWdubWVudC53cmFwVGV4''@;'; put 'put ''dD0hMDpudWxsPT1pZS5BbGlnbm1lbnQuV3JhcFRleHQmJmRlbGV0ZSBpZS5hbGlnbm1lbnQud3JhcFRleHQsRGkoaWUuQWxpZ25tZW50LlNocmlua1RvRml0fHwiMCIpJiYoaWUuYWxpZ25tZW50LnNocmlua1RvRml0PSEwKSwraWUuQWxpZ25tZW50LkluZGVudCYmKGllLmFsaWdubWVudC5p''@;'; put 'put ''bmRlbnQ9K2llLkFsaWdubWVudC5JbmRlbnR8fDApLCtpZS5BbGlnbm1lbnQuUm90YXRlJiYoaWUuYWxpZ25tZW50LnRleHRSb3RhdGlvbj0raWUuQWxpZ25tZW50LlJvdGF0ZXx8MCkpfUhbaWUuSURdPWllLCgiRGVmYXVsdCI9PWllLklEfHwiTm9ybWFsIj09aWUuTmFtZSkmJlMzKGllKX1m''@;'; put 'put ''dW5jdGlvbiByVChILGllKXtzd2l0Y2goSCl7Y2FzZSJOb25lIjpyZXR1cm4ibm9uZSI7Y2FzZSJEYXNoIjpyZXR1cm4iZGFzaGVkIjtjYXNlIkRvdCI6cmV0dXJuImRvdHRlZCI7Y2FzZSJEYXNoRG90IjpyZXR1cm4iZGFzaERvdCI7Y2FzZSJEYXNoRG90RG90IjpyZXR1cm4iZGFzaERvdERv''@;'; put 'put ''dCI7Y2FzZSJTbGFudERhc2hEb3QiOnJldHVybiJzbGFudERhc2hEb3QiO2Nhc2UiRG91YmxlIjpyZXR1cm4iZG91YmxlIjtjYXNlIkNvbnRpbnVvdXMiOnN3aXRjaCgraWV8fDApe2Nhc2UgMDpyZXR1cm4iaGFpciI7Y2FzZSAxOnJldHVybiJ0aGluIjtjYXNlIDI6cmV0dXJuIm1lZGl1bSI7''@;'; put 'put ''Y2FzZSAzOnJldHVybiJ0aGljayJ9cmV0dXJuInRoaW4ifXJldHVybiBIfWZ1bmN0aW9uICRfKEgsaWUsWCx3ZSx4ZSxGZSxaZSxqZSxZZSxNdCl7dmFyIHh0PSJHZW5lcmFsIixSdD13ZS5TdHlsZUlELFV0PXt9O010PU10fHx7fTt2YXIgbm49W10sQ249MDtmb3Iodm9pZCAwPT09UnQmJmpl''@;'; put 'put ''JiYoUnQ9amUuU3R5bGVJRCksdm9pZCAwPT09UnQmJlplJiYoUnQ9WmUuU3R5bGVJRCk7dm9pZCAwIT09RmVbUnRdOyl7dmFyIER0PUZlW1J0XTtpZigiR2VuZXJhbCI9PXh0JiZEdC5uZiYmKHh0PUZlW1J0XS5uZiksRHQuSW50ZXJpb3ImJm5uLnB1c2goRmVbUnRdLkludGVyaW9yKSxEdC5h''@;'; put 'put ''bGlnbm1lbnQmJihVdC5hbGlnbm1lbnR8fChVdC5hbGlnbm1lbnQ9bG4oRHQuYWxpZ25tZW50KSkpLG51bGw9PVV0LmJvbGQmJkR0LkJvbGQmJihVdC5ib2xkPSEwKSxudWxsPT1VdC5pdGFsaWMmJkR0Lkl0YWxpYyYmKFV0Lml0YWxpYz0hMCksbnVsbD09VXQuc3RyaWtlJiZEdC5TdHJpa2Um''@;'; put 'put ''JihVdC5zdHJpa2U9ITApLG51bGw9PVV0LnN6JiZEdC5TaXplJiYoVXQuc3o9RHQuU2l6ZSksbnVsbD09VXQubmFtZSYmRHQuRm9udE5hbWUmJihVdC5uYW1lPUR0LkZvbnROYW1lKSxudWxsPT1VdC51bmRlcmxpbmUmJkR0LlVuZGVybGluZSYmKFV0LnVuZGVybGluZT1EdC5VbmRlcmxpbmUp''@;'; put 'put ''LG51bGw9PVV0LmNvbG9yJiZEdC5SR0ImJihVdC5jb2xvcj17cmdiOkR0LlJHQn0pLFsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Il0uZm9yRWFjaChmdW5jdGlvbihPbil7bnVsbD09VXRbT25dJiZEdFtPbl0mJihVdFtPbl09bG4oRHRbT25dKSl9KSwiRGVmYXVsdCI9PVJ0KWJyZWFr''@;'; put 'put ''O1J0PUR0LlBhcmVudHx8IkRlZmF1bHQifVV0Lm5hbWV8fChVdC5uYW1lPUZlLkRlZmF1bHQmJkZlLkRlZmF1bHQuRm9udE5hbWV8fCJBcmlhbCIpLFV0LnN6fHwoVXQuc3o9RmUuRGVmYXVsdCYmRmUuRGVmYXVsdC5TaXplfHwxMik7dmFyIHp0PSIiO2lmKEh8fHdlLkZvcm11bGF8fCJTdHJp''@;'; put 'put ''bmciPT1YLlR5cGV8fCJOdW1iZXIiPT1YLlR5cGUpc3dpdGNoKFguVHlwZSl7Y2FzZSJCb29sZWFuIjp3ZS50PSJiIix3ZS52PURpKEgpO2JyZWFrO2Nhc2UiU3RyaW5nIjp3ZS50PSJzIix6dD1tMChncihIKSksd2Uudj1ILmluZGV4T2YoIjwiKT4tMT9ncihpZXx8SCkucmVwbGFjZSgvPFte''@;'; put 'put ''XSo/Pi9nLCIiKTp6dCxILmluZGV4T2YoIjwiKT4tMSYmKHdlLlI9dXMuaHRtbF90b19ycyhncihIKSkpO2JyZWFrO2Nhc2UiRGF0ZVRpbWUiOiJaIiE9SC5zbGljZSgtMSkmJihIKz0iWiIpLHdlLnY9KGRuKEgpLW5ldyBEYXRlKERhdGUuVVRDKDE4OTksMTEsMzApKSkvODY0ZTUsd2UudiE9''@;'; put 'put ''d2Uudj93ZS52PWdyKEgpOndlLnY8NjAmJih3ZS52PXdlLnYtMSksKCF4dHx8IkdlbmVyYWwiPT14dCkmJih4dD0ieXl5eS1tbS1kZCIpO2Nhc2UiTnVtYmVyIjp2b2lkIDA9PT13ZS52JiYod2Uudj0rSCksd2UudHx8KHdlLnQ9Im4iKTticmVhaztjYXNlIkVycm9yIjp3ZS50PSJlIix3ZS52''@;'; put 'put ''PV9oW0hdLCExIT09TXQuY2VsbFRleHQmJih3ZS53PUgpO2JyZWFrO2RlZmF1bHQ6IiI9PUgmJiIiPT1pZT93ZS50PSJ6Ijood2UudD0icyIsenQ9bTAoZ3IoSCkpLHdlLnY9SC5pbmRleE9mKCI8Iik+LTE/Z3IoaWV8fEgpLnJlcGxhY2UoLzxbXl0qPz4vZywiIik6enQsSC5pbmRleE9mKCI8''@;'; put 'put ''Iik+LTEmJih3ZS5SPXVzLmh0bWxfdG9fcnMoZ3IoSCkpKSl9ZWxzZSB3ZS50PSJ6IixkZWxldGUgd2UudjtpZihmdW5jdGlvbiBlVChILGllLFgpe2lmKCJ6IiE9PUgudCl7aWYoIVh8fCExIT09WC5jZWxsVGV4dCl0cnl7SC53PSJlIj09PUgudD9ILnd8fE4xW0gudl06IkdlbmVyYWwiPT09''@;'; put 'put ''aWU/Im4iPT09SC50PygwfEgudik9PT1ILnY/Ri5fZ2VuZXJhbF9pbnQoSC52KTpGLl9nZW5lcmFsX251bShILnYpOkYuX2dlbmVyYWwoSC52KTpmdW5jdGlvbiBZbShILGllKXt2YXIgWD1DZVtIXXx8Z3IoSCk7cmV0dXJuIkdlbmVyYWwiPT09WD9GLl9nZW5lcmFsKGllKTpGLmZvcm1hdChY''@;'; put 'put ''LGllKX0oaWV8fCJHZW5lcmFsIixILnYpfWNhdGNoKEZlKXtpZihYLldURil0aHJvdyBGZX10cnl7dmFyIHdlPUNlW2llXXx8aWV8fCJHZW5lcmFsIjtpZihYLmNlbGxORiYmKEguej13ZSksWC5jZWxsRGF0ZXMmJiJuIj09SC50JiZGLmlzX2RhdGUod2UpKXt2YXIgeGU9Ri5wYXJzZV9kYXRl''@;'; put 'put ''X2NvZGUoSC52KTt4ZSYmKEgudD0iZCIsSC52PW5ldyBEYXRlKHhlLnkseGUubS0xLHhlLmQseGUuSCx4ZS5NLHhlLlMseGUudSkpfX1jYXRjaChGZSl7aWYoWC5XVEYpdGhyb3cgRmV9fX0od2UseHQsTXQpLCExIT09TXQuY2VsbEZvcm11bGEpaWYod2UuRm9ybXVsYSl7dmFyIFBuPWdyKHdl''@;'; put 'put ''LkZvcm11bGEpOzYxPT1Qbi5jaGFyQ29kZUF0KDApJiYoUG49UG4uc2xpY2UoMSkpLHdlLmY9RDMoUG4seGUpLGRlbGV0ZSB3ZS5Gb3JtdWxhLCJSQyI9PXdlLkFycmF5UmFuZ2U/d2UuRj1EMygiUkM6UkMiLHhlKTp3ZS5BcnJheVJhbmdlJiYod2UuRj1EMyh3ZS5BcnJheVJhbmdlLHhlKSxZ''@;'; put 'put ''ZS5wdXNoKFtGbyh3ZS5GKSx3ZS5GXSkpfWVsc2UgZm9yKENuPTA7Q248WWUubGVuZ3RoOysrQ24peGUucj49WWVbQ25dWzBdLnMuciYmeGUucjw9WWVbQ25dWzBdLmUuciYmeGUuYz49WWVbQ25dWzBdLnMuYyYmeGUuYzw9WWVbQ25dWzBdLmUuYyYmKHdlLkY9WWVbQ25dWzFdKTtpZihNdC5j''@;'; put 'put ''ZWxsU3R5bGVzJiYobm4uZm9yRWFjaChmdW5jdGlvbihPbil7IVV0LnBhdHRlcm5UeXBlJiZPbi5wYXR0ZXJuVHlwZSYmKFV0LnBhdHRlcm5UeXBlPU9uLnBhdHRlcm5UeXBlKSwhVXQuZmdDb2xvciYmT24uZmdDb2xvciYmKFV0LmZnQ29sb3I9T24uZmdDb2xvcil9KSx3ZS5zPVV0KSx2b2lk''@;'; put 'put ''IDAhPT13ZS5TdHlsZUlEJiYod2UuaXhmZT13ZS5TdHlsZUlEKSx3ZS5SJiZ3ZS5zKXt2YXIgVG49bG4od2Uucyk7ZGVsZXRlIFRuLmJvbGQsZGVsZXRlIFRuLml0YWxpYyxkZWxldGUgVG4udW5kZXJsaW5lLGRlbGV0ZSBUbi5zdHJpa2Usd2UuUi5mb3JFYWNoKGZ1bmN0aW9uKE9uKXtPbi5z''@;'; put 'put ''PWJuKGxuKFRuKSxPbi5zKX0pfX1mdW5jdGlvbiBCMyhIKXtILnQ9SC52fHwiIixILnQ9SC50LnJlcGxhY2UoL1xyXG4vZywiXG4iKS5yZXBsYWNlKC9cci9nLCJcbiIpLEgudj1ILnc9SC5peGZlPXZvaWQgMH1mdW5jdGlvbiBDNShIKXtpZihJZSYmQnVmZmVyLmlzQnVmZmVyKEgpKXJldHVy''@;'; put 'put ''biBILnRvU3RyaW5nKCJ1dGY4Iik7aWYoInN0cmluZyI9PXR5cGVvZiBIKXJldHVybiBIO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheSYmSCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIFcwKG5lKFAoSCkpKTt0aHJvdyBuZXcgRXJyb3IoIkJhZCBpbnB1dCBmb3JtYXQ6''@;'; put 'put ''IGV4cGVjdGVkIEJ1ZmZlciBvciBzdHJpbmciKX12YXIgTmg9LzwoXC8/KShbXlxzPz48IVwvOl0qOnwpKFteXHM/PD46XC9cW10rKSg/Oltccz86PFwvXVtePl0qKT8+L2dtO2Z1bmN0aW9uIHFfKEgsaWUpe3ZhciBYPWllfHx7fSx3ZT1jZShDNShIKSk7KCJiaW5hcnkiPT1YLnR5cGV8fCJh''@;'; put 'put ''cnJheSI9PVgudHlwZXx8ImJhc2U2NCI9PVgudHlwZSkmJih3ZT0idW5kZWZpbmVkIiE9dHlwZW9mIGNwdGFibGU/Y3B0YWJsZS51dGlscy5kZWNvZGUoNjUwMDEsSih3ZSkpOlcwKHdlKSk7dmFyIHhlPXdlLnNsaWNlKDAsMTAyNCkudG9Mb3dlckNhc2UoKSxGZT0hMTtpZigoMTAyMyZ4ZS5p''@;'; put 'put ''bmRleE9mKCI+IikpPk1hdGgubWluKDEwMjMmeGUuaW5kZXhPZigiLCIpLDEwMjMmeGUuaW5kZXhPZigiOyIpKSl7dmFyIFplPWxuKFgpO3JldHVybiBaZS50eXBlPSJzdHJpbmciLEEzLnRvX3dvcmtib29rKHdlLFplKX1pZigtMT09eGUuaW5kZXhPZigiPD94bWwiKSYmWyJodG1sIiwidGFi''@;'; put 'put ''bGUiLCJoZWFkIiwibWV0YSIsInNjcmlwdCIsInN0eWxlIiwiZGl2Il0uZm9yRWFjaChmdW5jdGlvbihNYyl7eGUuaW5kZXhPZigiPCIrTWMpPj0wJiYoRmU9ITApfSksRmUpcmV0dXJuIHVzLnRvX3dvcmtib29rKHdlLFgpO3ZhciBqZSxNdCxiaSxZZT1bXSx4dD17fSxSdD1bXSxVdD1YLmRl''@;'; put 'put ''bnNlP1tdOnt9LG5uPSIiLENuPXt9LER0PXt9LHp0PXt9LFBuPW5jKCc8RGF0YSBzczpUeXBlPSJTdHJpbmciPicpLFRuPTAsT249MCxZbj0wLE1yPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LGFpPXt9LHlyPXt9LGFyPSIiLEdyPTAsenI9W10scXI9e30sb2k9e30sY3I9MCxkaT1b''@;'; put 'put ''XSx2MD17fSxVaT1bXSx0bz17fSxBMD1bXSxZcj0hMSxFaT1bXSxoaT1bXSxOcj17fSxraT0wLE4wPTAsdDA9e1NoZWV0czpbXSxXQlByb3BzOntkYXRlMTkwNDohMX19LGlvPXt9O05oLmxhc3RJbmRleD0wLHdlPXdlLnJlcGxhY2UoLzwhLS0oW1xzXFNdKj8pLS0+L2dtLCIiKTtmb3IodmFy''@;'; put 'put ''IG9hPSIiO2plPU5oLmV4ZWMod2UpOylzd2l0Y2goamVbM109KG9hPWplWzNdKS50b0xvd2VyQ2FzZSgpKXtjYXNlImRhdGEiOmlmKCJkYXRhIj09b2Epe2lmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQu''@;'; put 'put ''am9pbigifCIpKX1lbHNlIi8iIT09amVbMF0uY2hhckF0KGplWzBdLmxlbmd0aC0yKSYmWWUucHVzaChbamVbM10sITBdKTticmVha31pZihZZVtZZS5sZW5ndGgtMV1bMV0pYnJlYWs7Ii8iPT09amVbMV0/JF8od2Uuc2xpY2UoVG4samUuaW5kZXgpLGFyLFBuLCJjb21tZW50Ij09WWVbWWUu''@;'; put 'put ''bGVuZ3RoLTFdWzBdP3RvOkR0LHtjOk9uLHI6WW59LGFpLEEwW09uXSx6dCxFaSxYKTooYXI9IiIsUG49bmMoamVbMF0pLFRuPWplLmluZGV4K2plWzBdLmxlbmd0aCk7YnJlYWs7Y2FzZSJjZWxsIjppZigiLyI9PT1qZVsxXXx8Ii8+Ij09PWplWzBdLnNsaWNlKC0yKSl7aWYoIi8+Ij09PWpl''@;'; put 'put ''WzBdLnNsaWNlKC0yKSl7aWYoKER0PXF4KGplWzBdKSkuSW5kZXgmJihPbj0rRHQuSW5kZXgtMSksT248TXIucy5jJiYoTXIucy5jPU9uKSxPbj5Nci5lLmMmJihNci5lLmM9T24pLFVpPVtdLCFYLnNoZWV0U3R1YnMpeysrT247YnJlYWt9JF8oIiIsIiIse30sImNvbW1lbnQiPT1ZZVtZZS5s''@;'; put 'put ''ZW5ndGgtMV1bMF0/dG86RHQse2M6T24scjpZbn0sYWksQTBbT25dLHp0LEVpLFgpfWlmKFVpLmxlbmd0aD4wJiYoRHQuYz1VaSksKCFYLnNoZWV0Um93c3x8WC5zaGVldFJvd3M+WW4pJiYodm9pZCAwIT09RHQudnx8WC5zaGVldFN0dWJzKSYmKFguZGVuc2U/KFV0W1luXXx8KFV0W1luXT1b''@;'; put 'put ''XSksVXRbWW5dW09uXT1EdCk6VXRbX2EoT24pK1hhKFluKV09RHQpLER0LkhSZWYmJihEdC5sPXtUYXJnZXQ6Z3IoRHQuSFJlZil9LER0LkhSZWZTY3JlZW5UaXAmJihEdC5sLlRvb2x0aXA9RHQuSFJlZlNjcmVlblRpcCksZGVsZXRlIER0LkhSZWYsZGVsZXRlIER0LkhSZWZTY3JlZW5UaXAp''@;'; put 'put ''LChEdC5NZXJnZUFjcm9zc3x8RHQuTWVyZ2VEb3duKSYmKGtpPU9uKygwfHBhcnNlSW50KER0Lk1lcmdlQWNyb3NzLDEwKSksTjA9WW4rKDB8cGFyc2VJbnQoRHQuTWVyZ2VEb3duLDEwKSksKGtpPk9ufHxOMD5ZbikmJnpyLnB1c2goe3M6e2M6T24scjpZbn0sZTp7YzpraSxyOk4wfX0pKSxY''@;'; put 'put ''LnNoZWV0U3R1YnMpaWYoRHQuTWVyZ2VBY3Jvc3N8fER0Lk1lcmdlRG93bil7Zm9yKHZhciAkMD1PbjskMDw9a2k7KyskMClmb3IodmFyIFZhPVluO1ZhPD1OMDsrK1ZhKSgkMD5Pbnx8VmE+WW4pJiYoWC5kZW5zZT8oVXRbVmFdfHwoVXRbVmFdPVtdKSxVdFtWYV1bJDBdPXt0OiJ6In0pOlV0''@;'; put 'put ''W19hKCQwKStYYShWYSldPXt0OiJ6In0pO09uPWtpKzF9ZWxzZSsrT247ZWxzZSBEdC5NZXJnZUFjcm9zcz9Pbj1raSsxOisrT259ZWxzZShEdD1xeChqZVswXSkpLkluZGV4JiYoT249K0R0LkluZGV4LTEpLE9uPE1yLnMuYyYmKE1yLnMuYz1PbiksT24+TXIuZS5jJiYoTXIuZS5jPU9uKSwi''@;'; put 'put ''Lz4iPT09amVbMF0uc2xpY2UoLTIpJiYrK09uLFVpPVtdO2JyZWFrO2Nhc2Uicm93IjoiLyI9PT1qZVsxXXx8Ii8+Ij09PWplWzBdLnNsaWNlKC0yKT8oWW48TXIucy5yJiYoTXIucy5yPVluKSxZbj5Nci5lLnImJihNci5lLnI9WW4pLCIvPiI9PT1qZVswXS5zbGljZSgtMikmJih6dD1uYyhq''@;'; put 'put ''ZVswXSkpLkluZGV4JiYoWW49K3p0LkluZGV4LTEpLE9uPTAsKytZbik6KCh6dD1uYyhqZVswXSkpLkluZGV4JiYoWW49K3p0LkluZGV4LTEpLE5yPXt9LCgiMCI9PXp0LkF1dG9GaXRIZWlnaHR8fHp0LkhlaWdodCkmJihOci5ocHQ9cGFyc2VGbG9hdCh6dC5IZWlnaHQpLE5yLmhweD1BZihO''@;'; put 'put ''ci5ocHQpLGhpW1luXT1OciksIjEiPT16dC5IaWRkZW4mJihOci5oaWRkZW49ITAsaGlbWW5dPU5yKSk7YnJlYWs7Y2FzZSJ3b3Jrc2hlZXQiOmlmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigi''@;'; put 'put ''fCIpKTtSdC5wdXNoKG5uKSxNci5zLnI8PU1yLmUuciYmTXIucy5jPD1Nci5lLmMmJihVdFsiIXJlZiJdPWZhKE1yKSxYLnNoZWV0Um93cyYmWC5zaGVldFJvd3M8PU1yLmUuciYmKFV0WyIhZnVsbHJlZiJdPVV0WyIhcmVmIl0sTXIuZS5yPVguc2hlZXRSb3dzLTEsVXRbIiFyZWYiXT1mYShN''@;'; put 'put ''cikpKSx6ci5sZW5ndGgmJihVdFsiIW1lcmdlcyJdPXpyKSxBMC5sZW5ndGg+MCYmKFV0WyIhY29scyJdPUEwKSxoaS5sZW5ndGg+MCYmKFV0WyIhcm93cyJdPWhpKSxDbiYmKFV0WyIhc2hlZXRGb3JtYXQiXT1XbShDbikpLHh0W25uXT1VdH1lbHNlIE1yPXtzOntyOjJlNixjOjJlNn0sZTp7''@;'; put 'put ''cjowLGM6MH19LFluPU9uPTAsWWUucHVzaChbamVbM10sITFdKSxNdD1uYyhqZVswXSksbm49Z3IoTXQuTmFtZSksVXQ9WC5kZW5zZT9bXTp7fSx6cj1bXSxFaT1bXSxoaT1bXSx0MC5TaGVldHMucHVzaChpbz17bmFtZTpubixIaWRkZW46MH0pO2JyZWFrO2Nhc2UidGFibGUiOmlmKCIvIj09''@;'; put 'put ''PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKX1lbHNle2lmKCIvPiI9PWplWzBdLnNsaWNlKC0yKSlicmVhaztDbj1uYyhqZVswXSksWWUucHVzaChbamVbM10sITFdKSxBMD1bXSxZcj0hMX1icmVh''@;'; put 'put ''aztjYXNlInN0eWxlIjoiLyI9PT1qZVsxXT9uVChhaSx5cixhcixYKTooeXI9bmMoamVbMF0pLGFyPSIiKTticmVhaztjYXNlIm51bWJlcmZvcm1hdCI6eXIubmY9Z3IobmMoamVbMF0pLkZvcm1hdHx8IkdlbmVyYWwiKSxDZVt5ci5uZl0mJih5ci5uZj1DZVt5ci5uZl0pO2Zvcih2YXIgam89''@;'; put 'put ''MDszOTIhPWpvJiZGLl90YWJsZVtqb10hPXlyLm5mOysram8pO2lmKDM5Mj09am8pZm9yKGpvPTU3OzM5MiE9am87KytqbylpZihudWxsPT1GLl90YWJsZVtqb10pe0YubG9hZCh5ci5uZixqbyk7YnJlYWt9YnJlYWs7Y2FzZSJjb2x1bW4iOmlmKCJ0YWJsZSIhPT1ZZVtZZS5sZW5ndGgtMV1b''@;'; put 'put ''MF18fCIvIj09PWplWzFdKWJyZWFrO2lmKChiaT1uYyhqZVswXSkpLkhpZGRlbiYmKGJpLmhpZGRlbj0hMCxkZWxldGUgYmkuSGlkZGVuKSxiaS5XaWR0aD9iaS53cHg9NCpwYXJzZUludChiaS5XaWR0aCwxMCkvMzorYmkuQXV0b0ZpdFdpZHRoJiYoYmkuYXV0bz0xKSwhWXImJmJpLndweD4x''@;'; put 'put ''MCl7WXI9ITAsSzI9Njtmb3IodmFyIHdhPTA7d2E8QTAubGVuZ3RoOysrd2EpQTBbd2FdJiZ5YyhBMFt3YV0pfVlyJiZ5YyhiaSksQTBbYmkuSW5kZXgtMXx8QTAubGVuZ3RoXT1iaTtmb3IodmFyIGFvPTA7YW88K2JpLlNwYW47KythbylBMFtBMC5sZW5ndGhdPWxuKGJpKTticmVhaztjYXNl''@;'; put 'put ''Im5hbWVkcmFuZ2UiOmlmKCIvIj09PWplWzFdKWJyZWFrO3QwLk5hbWVzfHwodDAuTmFtZXM9W10pO3ZhciB4MD1lbihqZVswXSksaDA9e05hbWU6eDAuTmFtZSxSZWY6RDMoeDAuUmVmZXJzVG8uc2xpY2UoMSkse3I6MCxjOjB9KX07dDAuU2hlZXRzLmxlbmd0aD4wJiYoaDAuU2hlZXQ9dDAu''@;'; put 'put ''U2hlZXRzLmxlbmd0aC0xKSx0MC5OYW1lcy5wdXNoKGgwKTticmVhaztjYXNlIm5hbWVkY2VsbCI6Y2FzZSJiIjpjYXNlImkiOmNhc2UidSI6Y2FzZSJzIjpjYXNlImVtIjpjYXNlImgyIjpjYXNlImgzIjpjYXNlInN1YiI6Y2FzZSJzdXAiOmNhc2Uic3BhbiI6Y2FzZSJwcm90ZWN0aW9uIjpj''@;'; put 'put ''YXNlInBhcmFncmFwaHMiOmNhc2UibmFtZSI6YnJlYWs7Y2FzZSJhbGlnbm1lbnQiOmlmKCFYLmNlbGxTdHlsZXN8fCIvIj09PWplWzFdKWJyZWFrO3lyLkFsaWdubWVudD1uYyhqZVswXSk7YnJlYWs7Y2FzZSJib3JkZXJzIjoiLyIhPT1qZVsxXSYmKHlyLkJvcmRlcnM9W10pO2JyZWFrO2Nh''@;'; put 'put ''c2UiYm9yZGVyIjppZigiLyI9PT1qZVsxXSlicmVhazt5ci5Cb3JkZXJzfHwoeXIuQm9yZGVycz1bXSkseXIuQm9yZGVycy5wdXNoKG5jKGplWzBdKSk7YnJlYWs7Y2FzZSJmb250IjppZigiLz4iPT09amVbMF0uc2xpY2UoLTIpKXthcis9amVbMF07YnJlYWt9Ii8iPT09amVbMV0/YXIrPXdl''@;'; put 'put ''LnNsaWNlKEdyLGplLmluZGV4K2plWzBdLmxlbmd0aCk6R3I9amUuaW5kZXg7YnJlYWs7Y2FzZSJpbnRlcmlvciI6aWYoIVguY2VsbFN0eWxlc3x8Ii8iPT09amVbMV0pYnJlYWs7eXIuSW50ZXJpb3I9bmMoamVbMF0pO2JyZWFrO2Nhc2UiYXV0aG9yIjpjYXNlInRpdGxlIjpjYXNlImRlc2Ny''@;'; put 'put ''aXB0aW9uIjpjYXNlImNyZWF0ZWQiOmNhc2Uia2V5d29yZHMiOmNhc2Uic3ViamVjdCI6Y2FzZSJjYXRlZ29yeSI6Y2FzZSJjb21wYW55IjpjYXNlImxhc3RhdXRob3IiOmNhc2UibGFzdHNhdmVkIjpjYXNlImxhc3RwcmludGVkIjpjYXNlInZlcnNpb24iOmNhc2UicmV2aXNpb24iOmNhc2Ui''@;'; put 'put ''dG90YWx0aW1lIjpjYXNlImh5cGVybGlua2Jhc2UiOmNhc2UibWFuYWdlciI6Y2FzZSJjb250ZW50c3RhdHVzIjpjYXNlImlkZW50aWZpZXIiOmNhc2UibGFuZ3VhZ2UiOmNhc2UiYXBwbmFtZSI6aWYoIi8+Ij09PWplWzBdLnNsaWNlKC0yKSlicmVhazsiLyI9PT1qZVsxXT9xbChxcixvYSx3''@;'; put 'put ''ZS5zbGljZShjcixqZS5pbmRleCkpOmNyPWplLmluZGV4K2plWzBdLmxlbmd0aDticmVhaztjYXNlInN0eWxlcyI6Y2FzZSJ3b3JrYm9vayI6aWYoIi8iPT09amVbMV0pe2lmKChNdD1ZZS5wb3AoKSlbMF0hPT1qZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitNdC5qb2luKCJ8''@;'; put 'put ''IikpfWVsc2UgWWUucHVzaChbamVbM10sITFdKTticmVhaztjYXNlImNvbW1lbnQiOmlmKCIvIj09PWplWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09amVbM10pdGhyb3cgbmV3IEVycm9yKCJCYWQgc3RhdGU6ICIrTXQuam9pbigifCIpKTtCMyh0byksVWkucHVzaCh0byl9ZWxzZSBZZS5w''@;'; put 'put ''dXNoKFtqZVszXSwhMV0pLHRvPXthOihNdD1uYyhqZVswXSkpLkF1dGhvcn07YnJlYWs7Y2FzZSJhdXRvZmlsdGVyIjppZigiLyI9PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSl9ZWxzZSBpZigi''@;'; put 'put ''LyIhPT1qZVswXS5jaGFyQXQoamVbMF0ubGVuZ3RoLTIpKXt2YXIganI9bmMoamVbMF0pO1V0WyIhYXV0b2ZpbHRlciJdPXtyZWY6RDMoanIuUmFuZ2UpLnJlcGxhY2UoL1wkL2csIiIpfSxZZS5wdXNoKFtqZVszXSwhMF0pfWJyZWFrO2Nhc2UiZGF0YXZhbGlkYXRpb24iOmlmKFV0WyIhdmFs''@;'; put 'put ''aWRhdGlvbnMiXXx8KFV0WyIhdmFsaWRhdGlvbnMiXT1bXSksIi8iPT09amVbMV0pe2lmKChNdD1ZZS5wb3AoKSlbMF0hPT1qZVszXSl0aHJvdyBuZXcgRXJyb3IoIkJhZCBzdGF0ZTogIitNdC5qb2luKCJ8IikpfWVsc2UiLyIhPT1qZVswXS5jaGFyQXQoamVbMF0ubGVuZ3RoLTIpJiZZZS5w''@;'; put 'put ''dXNoKFtqZVszXSwhMF0pLHYwPXt9O2JyZWFrO2Nhc2UicGl4ZWxzcGVyaW5jaCI6aWYoIi8iPT09amVbMV0pe3ZhciBIaT0rd2Uuc2xpY2UoVG4samUuaW5kZXgpOyg3Mj09SGl8fDk2PT1IaSkmJkMzKEhpKX1lbHNlIFRuPWplLmluZGV4K2plWzBdLmxlbmd0aDticmVhaztjYXNlImNvbXBv''@;'; put 'put ''bmVudG9wdGlvbnMiOmNhc2UiZG9jdW1lbnRwcm9wZXJ0aWVzIjpjYXNlImN1c3RvbWRvY3VtZW50cHJvcGVydGllcyI6Y2FzZSJvZmZpY2Vkb2N1bWVudHNldHRpbmdzIjpjYXNlInBpdm90dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6Y2FzZSJuYW1lcyI6Y2FzZSJtYXBpbmZvIjpjYXNlInBh''@;'; put 'put ''Z2VicmVha3MiOmNhc2UicXVlcnl0YWJsZSI6Y2FzZSJzb3J0aW5nIjpjYXNlInNjaGVtYSI6Y2FzZSJjb25kaXRpb25hbGZvcm1hdHRpbmciOmNhc2Uic21hcnR0YWd0eXBlIjpjYXNlInNtYXJ0dGFncyI6Y2FzZSJleGNlbHdvcmtib29rIjpjYXNlIndvcmtib29rb3B0aW9ucyI6Y2FzZSJ3''@;'; put 'put ''b3Jrc2hlZXRvcHRpb25zIjppZigiLyI9PT1qZVsxXSl7aWYoKE10PVllLnBvcCgpKVswXSE9PWplWzNdKXRocm93IG5ldyBFcnJvcigiQmFkIHN0YXRlOiAiK010LmpvaW4oInwiKSl9ZWxzZSIvIiE9PWplWzBdLmNoYXJBdChqZVswXS5sZW5ndGgtMikmJlllLnB1c2goW2plWzNdLCEwXSk7''@;'; put 'put ''YnJlYWs7ZGVmYXVsdDppZigwPT1ZZS5sZW5ndGgmJiJkb2N1bWVudCI9PWplWzNdfHwwPT1ZZS5sZW5ndGgmJiJ1b2YiPT1qZVszXSlyZXR1cm4gaWMod2UsWCk7dmFyIHZvPSEwO3N3aXRjaChZZVtZZS5sZW5ndGgtMV1bMF0pe2Nhc2Uib2ZmaWNlZG9jdW1lbnRzZXR0aW5ncyI6c3dpdGNo''@;'; put 'put ''KGplWzNdKXtjYXNlImFsbG93cG5nIjpjYXNlInJlbW92ZXBlcnNvbmFsaW5mb3JtYXRpb24iOmNhc2UiZG93bmxvYWRjb21wb25lbnRzIjpjYXNlImxvY2F0aW9ub2Zjb21wb25lbnRzIjpjYXNlImNvbG9ycyI6Y2FzZSJjb2xvciI6Y2FzZSJpbmRleCI6Y2FzZSJyZ2IiOmNhc2UidGFyZ2V0''@;'; put 'put ''c2NyZWVuc2l6ZSI6Y2FzZSJyZWFkb25seXJlY29tbWVuZGVkIjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2UiY29tcG9uZW50b3B0aW9ucyI6c3dpdGNoKGplWzNdKXtjYXNlInRvb2xiYXIiOmNhc2UiaGlkZW9mZmljZWxvZ28iOmNhc2Uic3ByZWFkc2hlZXRhdXRvZml0IjpjYXNl''@;'; put 'put ''ImxhYmVsIjpjYXNlImNhcHRpb24iOmNhc2UibWF4aGVpZ2h0IjpjYXNlIm1heHdpZHRoIjpjYXNlIm5leHRzaGVldG51bWJlciI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlImV4Y2Vsd29ya2Jvb2siOnN3aXRjaChqZVszXSl7Y2FzZSJkYXRlMTkwNCI6dDAuV0JQcm9wcy5kYXRl''@;'; put 'put ''MTkwND0hMDticmVhaztjYXNlIndpbmRvd2hlaWdodCI6Y2FzZSJ3aW5kb3d3aWR0aCI6Y2FzZSJ3aW5kb3d0b3B4IjpjYXNlIndpbmRvd3RvcHkiOmNhc2UidGFicmF0aW8iOmNhc2UicHJvdGVjdHN0cnVjdHVyZSI6Y2FzZSJwcm90ZWN0d2luZG93IjpjYXNlInByb3RlY3R3aW5kb3dzIjpj''@;'; put 'put ''YXNlImFjdGl2ZXNoZWV0IjpjYXNlImRpc3BsYXlpbmtub3RlcyI6Y2FzZSJmaXJzdHZpc2libGVzaGVldCI6Y2FzZSJzdXBib29rIjpjYXNlInNoZWV0bmFtZSI6Y2FzZSJzaGVldGluZGV4IjpjYXNlInNoZWV0aW5kZXhmaXJzdCI6Y2FzZSJzaGVldGluZGV4bGFzdCI6Y2FzZSJkbGwiOmNh''@;'; put 'put ''c2UiYWNjZXB0bGFiZWxzaW5mb3JtdWxhcyI6Y2FzZSJkb25vdHNhdmVsaW5rdmFsdWVzIjpjYXNlIml0ZXJhdGlvbiI6Y2FzZSJtYXhpdGVyYXRpb25zIjpjYXNlIm1heGNoYW5nZSI6Y2FzZSJwYXRoIjpjYXNlInhjdCI6Y2FzZSJjb3VudCI6Y2FzZSJzZWxlY3RlZHNoZWV0cyI6Y2FzZSJj''@;'; put 'put ''YWxjdWxhdGlvbiI6Y2FzZSJ1bmNhbGNlZCI6Y2FzZSJzdGFydHVwcHJvbXB0IjpjYXNlImNybiI6Y2FzZSJleHRlcm5uYW1lIjpjYXNlImZvcm11bGEiOmNhc2UiY29sZmlyc3QiOmNhc2UiY29sbGFzdCI6Y2FzZSJ3YW50YWR2aXNlIjpjYXNlImJvb2xlYW4iOmNhc2UiZXJyb3IiOmNhc2Ui''@;'; put 'put ''dGV4dCI6Y2FzZSJvbGUiOmNhc2Uibm9hdXRvcmVjb3ZlciI6Y2FzZSJwdWJsaXNob2JqZWN0cyI6Y2FzZSJkb25vdGNhbGN1bGF0ZWJlZm9yZXNhdmUiOmNhc2UibnVtYmVyIjpjYXNlInJlZm1vZGVyMWMxIjpjYXNlImVtYmVkc2F2ZXNtYXJ0dGFncyI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1i''@;'; put 'put ''cmVhaztjYXNlIndvcmtib29rb3B0aW9ucyI6c3dpdGNoKGplWzNdKXtjYXNlIm93Y3ZlcnNpb24iOmNhc2UiaGVpZ2h0IjpjYXNlIndpZHRoIjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2Uid29ya3NoZWV0b3B0aW9ucyI6c3dpdGNoKGplWzNdKXtjYXNlInZpc2libGUiOmlmKCIv''@;'; put 'put ''PiIhPT1qZVswXS5zbGljZSgtMikpaWYoIi8iPT09amVbMV0pc3dpdGNoKHdlLnNsaWNlKGNyLGplLmluZGV4KSl7Y2FzZSJTaGVldEhpZGRlbiI6aW8uSGlkZGVuPTE7YnJlYWs7Y2FzZSJTaGVldFZlcnlIaWRkZW4iOmlvLkhpZGRlbj0yfWVsc2UgY3I9amUuaW5kZXgramVbMF0ubGVuZ3Ro''@;'; put 'put ''O2JyZWFrO2Nhc2UiaGVhZGVyIjpVdFsiIW1hcmdpbnMiXXx8UmQoVXRbIiFtYXJnaW5zIl09e30sInhsbWwiKSxVdFsiIW1hcmdpbnMiXS5oZWFkZXI9ZW4oamVbMF0pLk1hcmdpbjticmVhaztjYXNlImZvb3RlciI6VXRbIiFtYXJnaW5zIl18fFJkKFV0WyIhbWFyZ2lucyJdPXt9LCJ4bG1s''@;'; put 'put ''IiksVXRbIiFtYXJnaW5zIl0uZm9vdGVyPWVuKGplWzBdKS5NYXJnaW47YnJlYWs7Y2FzZSJwYWdlbWFyZ2lucyI6dmFyIHhvPWVuKGplWzBdKTtVdFsiIW1hcmdpbnMiXXx8UmQoVXRbIiFtYXJnaW5zIl09e30sInhsbWwiKSx4by5Ub3AmJihVdFsiIW1hcmdpbnMiXS50b3A9eG8uVG9wKSx4''@;'; put 'put ''by5MZWZ0JiYoVXRbIiFtYXJnaW5zIl0ubGVmdD14by5MZWZ0KSx4by5SaWdodCYmKFV0WyIhbWFyZ2lucyJdLnJpZ2h0PXhvLlJpZ2h0KSx4by5Cb3R0b20mJihVdFsiIW1hcmdpbnMiXS5ib3R0b209eG8uQm90dG9tKTticmVhaztjYXNlImRpc3BsYXlyaWdodHRvbGVmdCI6dDAuVmlld3N8''@;'; put 'put ''fCh0MC5WaWV3cz1bXSksdDAuVmlld3NbMF18fCh0MC5WaWV3c1swXT17fSksdDAuVmlld3NbMF0uUlRMPSEwO2JyZWFrO2Nhc2UiZnJlZXplcGFuZXMiOmNhc2UiZnJvemVubm9zcGxpdCI6Y2FzZSJhY3RpdmVyb3ciOmNhc2UiYWN0aXZlY29sIjpjYXNlInRvcHJvd2JvdHRvbXBhbmUiOmNh''@;'; put 'put ''c2UibGVmdGNvbHVtbnJpZ2h0cGFuZSI6Y2FzZSJ1bnN5bmNlZCI6Y2FzZSJwcmludCI6Y2FzZSJwcmludGVycm9ycyI6Y2FzZSJwYW5lcyI6Y2FzZSJzY2FsZSI6Y2FzZSJwYW5lIjpjYXNlIm51bWJlciI6Y2FzZSJsYXlvdXQiOmNhc2UicGFnZXNldHVwIjpjYXNlInNlbGVjdGVkIjpjYXNl''@;'; put 'put ''InByb3RlY3RvYmplY3RzIjpjYXNlImVuYWJsZXNlbGVjdGlvbiI6Y2FzZSJwcm90ZWN0c2NlbmFyaW9zIjpjYXNlInZhbGlkcHJpbnRlcmluZm8iOmNhc2UiaG9yaXpvbnRhbHJlc29sdXRpb24iOmNhc2UidmVydGljYWxyZXNvbHV0aW9uIjpjYXNlIm51bWJlcm9mY29waWVzIjpjYXNlImFj''@;'; put 'put ''dGl2ZXBhbmUiOmNhc2UidG9wcm93dmlzaWJsZSI6Y2FzZSJsZWZ0Y29sdW1udmlzaWJsZSI6Y2FzZSJmaXR0b3BhZ2UiOmNhc2UicmFuZ2VzZWxlY3Rpb24iOmNhc2UicGFwZXJzaXplaW5kZXgiOmNhc2UicGFnZWxheW91dHpvb20iOmNhc2UicGFnZWJyZWFrem9vbSI6Y2FzZSJmaWx0ZXJv''@;'; put 'put ''biI6Y2FzZSJmaXR3aWR0aCI6Y2FzZSJmaXRoZWlnaHQiOmNhc2UiY29tbWVudHNsYXlvdXQiOmNhc2Uiem9vbSI6Y2FzZSJsZWZ0dG9yaWdodCI6Y2FzZSJncmlkbGluZXMiOmNhc2UiYWxsb3dzb3J0IjpjYXNlImFsbG93ZmlsdGVyIjpjYXNlImFsbG93aW5zZXJ0cm93cyI6Y2FzZSJhbGxv''@;'; put 'put ''d2RlbGV0ZXJvd3MiOmNhc2UiYWxsb3dpbnNlcnRjb2xzIjpjYXNlImFsbG93ZGVsZXRlY29scyI6Y2FzZSJhbGxvd2luc2VydGh5cGVybGlua3MiOmNhc2UiYWxsb3dmb3JtYXRjZWxscyI6Y2FzZSJhbGxvd3NpemVjb2xzIjpjYXNlImFsbG93c2l6ZXJvd3MiOmNhc2UidGFiY29sb3JpbmRl''@;'; put 'put ''eCI6Y2FzZSJkb25vdGRpc3BsYXloZWFkaW5ncyI6Y2FzZSJzaG93cGFnZWxheW91dHpvb20iOmNhc2UiYmxhY2thbmR3aGl0ZSI6Y2FzZSJkb25vdGRpc3BsYXl6ZXJvcyI6Y2FzZSJkaXNwbGF5cGFnZWJyZWFrIjpjYXNlInJvd2NvbGhlYWRpbmdzIjpjYXNlImRvbm90ZGlzcGxheW91dGxp''@;'; put 'put ''bmUiOmNhc2Uibm9vcmllbnRhdGlvbiI6Y2FzZSJhbGxvd3VzZXBpdm90dGFibGVzIjpjYXNlInplcm9oZWlnaHQiOmNhc2Uidmlld2FibGVyYW5nZSI6Y2FzZSJzZWxlY3Rpb24iOmNhc2UicHJvdGVjdGNvbnRlbnRzIjpicmVhaztjYXNlInNwbGl0aG9yaXpvbnRhbCI6Y2FzZSJzcGxpdHZl''@;'; put 'put ''cnRpY2FsIjppZigiLz4iIT09amVbMF0uc2xpY2UoLTIpKWlmKCIvIj09amVbMV0pe1V0WyIhZnJlZXplIl18fChVdFsiIWZyZWV6ZSJdPSJBMSIpO3ZhciAkaT11bChVdFsiIWZyZWV6ZSJdKTsic3BsaXRob3Jpem9udGFsIj09amVbM10/JGkucj0rd2Uuc2xpY2UoY3IsamUuaW5kZXgpOiRp''@;'; put 'put ''LmM9K3dlLnNsaWNlKGNyLGplLmluZGV4KSxVdFsiIWZyZWV6ZSJdPVkwKCRpKX1lbHNlIGNyPWplLmluZGV4K2plWzBdLmxlbmd0aDticmVhaztjYXNlImRvbm90ZGlzcGxheWdyaWRsaW5lcyI6VXRbIiFncmlkbGluZXMiXT0hMTticmVhaztjYXNlIm5vc3VtbWFyeXJvd3NiZWxvd2RldGFp''@;'; put 'put ''bCI6VXRbIiFvdXRsaW5lIl18fChVdFsiIW91dGxpbmUiXT17fSksVXRbIiFvdXRsaW5lIl0uYWJvdmU9ITA7YnJlYWs7Y2FzZSJub3N1bW1hcnljb2x1bW5zcmlnaHRkZXRhaWwiOlV0WyIhb3V0bGluZSJdfHwoVXRbIiFvdXRsaW5lIl09e30pLFV0WyIhb3V0bGluZSJdLmxlZnQ9ITA7YnJl''@;'; put 'put ''YWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlInBpdm90dGFibGUiOmNhc2UicGl2b3RjYWNoZSI6c3dpdGNoKGplWzNdKXtjYXNlImltbWVkaWF0ZWl0ZW1zb25kcm9wIjpjYXNlInNob3dwYWdlbXVsdGlwbGVpdGVtbGFiZWwiOmNhc2UiY29tcGFjdHJvd2luZGVudCI6Y2FzZSJsb2NhdGlv''@;'; put 'put ''biI6Y2FzZSJwaXZvdGZpZWxkIjpjYXNlIm9yaWVudGF0aW9uIjpjYXNlImxheW91dGZvcm0iOmNhc2UibGF5b3V0c3VidG90YWxsb2NhdGlvbiI6Y2FzZSJsYXlvdXRjb21wYWN0cm93IjpjYXNlInBvc2l0aW9uIjpjYXNlInBpdm90aXRlbSI6Y2FzZSJkYXRhdHlwZSI6Y2FzZSJkYXRhZmll''@;'; put 'put ''bGQiOmNhc2Uic291cmNlbmFtZSI6Y2FzZSJwYXJlbnRmaWVsZCI6Y2FzZSJwdGxpbmVpdGVtcyI6Y2FzZSJwdGxpbmVpdGVtIjpjYXNlImNvdW50b2ZzYW1laXRlbXMiOmNhc2UiaXRlbSI6Y2FzZSJpdGVtdHlwZSI6Y2FzZSJwdHNvdXJjZSI6Y2FzZSJjYWNoZWluZGV4IjpjYXNlImNvbnNv''@;'; put 'put ''bGlkYXRpb25yZWZlcmVuY2UiOmNhc2UiZmlsZW5hbWUiOmNhc2UicmVmZXJlbmNlIjpjYXNlIm5vY29sdW1uZ3JhbmQiOmNhc2Uibm9yb3dncmFuZCI6Y2FzZSJibGFua2xpbmVhZnRlcml0ZW1zIjpjYXNlImhpZGRlbiI6Y2FzZSJzdWJ0b3RhbCI6Y2FzZSJiYXNlZmllbGQiOmNhc2UibWFw''@;'; put 'put ''Y2hpbGRpdGVtcyI6Y2FzZSJmdW5jdGlvbiI6Y2FzZSJyZWZyZXNob25maWxlb3BlbiI6Y2FzZSJwcmludHNldHRpdGxlcyI6Y2FzZSJtZXJnZWxhYmVscyI6Y2FzZSJkZWZhdWx0dmVyc2lvbiI6Y2FzZSJyZWZyZXNobmFtZSI6Y2FzZSJyZWZyZXNoZGF0ZSI6Y2FzZSJyZWZyZXNoZGF0ZWNv''@;'; put 'put ''cHkiOmNhc2UidmVyc2lvbmxhc3RyZWZyZXNoIjpjYXNlInZlcnNpb25sYXN0dXBkYXRlIjpjYXNlInZlcnNpb251cGRhdGVhYmxlbWluIjpjYXNlInZlcnNpb25yZWZyZXNoYWJsZW1pbiI6Y2FzZSJjYWxjdWxhdGlvbiI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlInBhZ2VicmVh''@;'; put 'put ''a3MiOnN3aXRjaChqZVszXSl7Y2FzZSJjb2xicmVha3MiOmNhc2UiY29sYnJlYWsiOmNhc2Uicm93YnJlYWtzIjpjYXNlInJvd2JyZWFrIjpjYXNlImNvbHN0YXJ0IjpjYXNlImNvbGVuZCI6Y2FzZSJyb3dlbmQiOmJyZWFrO2RlZmF1bHQ6dm89ITF9YnJlYWs7Y2FzZSJhdXRvZmlsdGVyIjpz''@;'; put 'put ''d2l0Y2goamVbM10pe2Nhc2UiYXV0b2ZpbHRlcmNvbHVtbiI6Y2FzZSJhdXRvZmlsdGVyY29uZGl0aW9uIjpjYXNlImF1dG9maWx0ZXJhbmQiOmNhc2UiYXV0b2ZpbHRlcm9yIjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2UicXVlcnl0YWJsZSI6c3dpdGNoKGplWzNdKXtjYXNlImlk''@;'; put 'put ''IjpjYXNlImF1dG9mb3JtYXRmb250IjpjYXNlImF1dG9mb3JtYXRwYXR0ZXJuIjpjYXNlInF1ZXJ5c291cmNlIjpjYXNlInF1ZXJ5dHlwZSI6Y2FzZSJlbmFibGVyZWRpcmVjdGlvbnMiOmNhc2UicmVmcmVzaGVkaW54bDkiOmNhc2UidXJsc3RyaW5nIjpjYXNlImh0bWx0YWJsZXMiOmNhc2Ui''@;'; put 'put ''Y29ubmVjdGlvbiI6Y2FzZSJjb21tYW5kdGV4dCI6Y2FzZSJyZWZyZXNoaW5mbyI6Y2FzZSJub3RpdGxlcyI6Y2FzZSJuZXh0aWQiOmNhc2UiY29sdW1uaW5mbyI6Y2FzZSJvdmVyd3JpdGVjZWxscyI6Y2FzZSJkb25vdHByb21wdGZvcmZpbGUiOmNhc2UidGV4dHdpemFyZHNldHRpbmdzIjpj''@;'; put 'put ''YXNlInNvdXJjZSI6Y2FzZSJudW1iZXIiOmNhc2UiZGVjaW1hbCI6Y2FzZSJ0aG91c2FuZHNlcGFyYXRvciI6Y2FzZSJ0cmFpbGluZ21pbnVzbnVtYmVycyI6Y2FzZSJmb3JtYXRzZXR0aW5ncyI6Y2FzZSJmaWVsZHR5cGUiOmNhc2UiZGVsaW1pdGVycyI6Y2FzZSJ0YWIiOmNhc2UiY29tbWEi''@;'; put 'put ''OmNhc2UiYXV0b2Zvcm1hdG5hbWUiOmNhc2UidmVyc2lvbmxhc3RlZGl0IjpjYXNlInZlcnNpb25sYXN0cmVmcmVzaCI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlImRhdGF2YWxpZGF0aW9uIjpzd2l0Y2goamVbM10pe2Nhc2UicmFuZ2UiOnYwLnJlZj1qZTticmVhaztjYXNlInR5''@;'; put 'put ''cGUiOmNhc2UibWluIjpjYXNlIm1heCI6Y2FzZSJzb3J0IjpjYXNlImRlc2NlbmRpbmciOmNhc2Uib3JkZXIiOmNhc2UiY2FzZXNlbnNpdGl2ZSI6Y2FzZSJ2YWx1ZSI6Y2FzZSJlcnJvcnN0eWxlIjpjYXNlImVycm9ybWVzc2FnZSI6Y2FzZSJlcnJvcnRpdGxlIjpjYXNlImlucHV0bWVzc2Fn''@;'; put 'put ''ZSI6Y2FzZSJpbnB1dHRpdGxlIjpjYXNlImNvbWJvaGlkZSI6Y2FzZSJpbnB1dGhpZGUiOmNhc2UiY29uZGl0aW9uIjpjYXNlInF1YWxpZmllciI6Y2FzZSJ1c2VibGFuayI6Y2FzZSJ2YWx1ZTEiOmNhc2UidmFsdWUyIjpjYXNlImZvcm1hdCI6Y2FzZSJjZWxscmFuZ2VsaXN0IjpicmVhaztk''@;'; put 'put ''ZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2Uic29ydGluZyI6Y2FzZSJjb25kaXRpb25hbGZvcm1hdHRpbmciOnN3aXRjaChqZVszXSl7Y2FzZSJyYW5nZSI6Y2FzZSJ0eXBlIjpjYXNlIm1pbiI6Y2FzZSJtYXgiOmNhc2Uic29ydCI6Y2FzZSJkZXNjZW5kaW5nIjpjYXNlIm9yZGVyIjpjYXNlImNh''@;'; put 'put ''c2VzZW5zaXRpdmUiOmNhc2UidmFsdWUiOmNhc2UiZXJyb3JzdHlsZSI6Y2FzZSJlcnJvcm1lc3NhZ2UiOmNhc2UiZXJyb3J0aXRsZSI6Y2FzZSJjZWxscmFuZ2VsaXN0IjpjYXNlImlucHV0bWVzc2FnZSI6Y2FzZSJpbnB1dHRpdGxlIjpjYXNlImNvbWJvaGlkZSI6Y2FzZSJpbnB1dGhpZGUi''@;'; put 'put ''OmNhc2UiY29uZGl0aW9uIjpjYXNlInF1YWxpZmllciI6Y2FzZSJ1c2VibGFuayI6Y2FzZSJ2YWx1ZTEiOmNhc2UidmFsdWUyIjpjYXNlImZvcm1hdCI6YnJlYWs7ZGVmYXVsdDp2bz0hMX1icmVhaztjYXNlIm1hcGluZm8iOmNhc2Uic2NoZW1hIjpjYXNlImRhdGEiOnN3aXRjaChqZVszXSl7''@;'; put 'put ''Y2FzZSJtYXAiOmNhc2UiZW50cnkiOmNhc2UicmFuZ2UiOmNhc2UieHBhdGgiOmNhc2UiZmllbGQiOmNhc2UieHNkdHlwZSI6Y2FzZSJmaWx0ZXJvbiI6Y2FzZSJhZ2dyZWdhdGUiOmNhc2UiZWxlbWVudHR5cGUiOmNhc2UiYXR0cmlidXRldHlwZSI6Y2FzZSJzY2hlbWEiOmNhc2UiZWxlbWVu''@;'; put 'put ''dCI6Y2FzZSJjb21wbGV4dHlwZSI6Y2FzZSJkYXRhdHlwZSI6Y2FzZSJhbGwiOmNhc2UiYXR0cmlidXRlIjpjYXNlImV4dGVuZHMiOmNhc2Uicm93IjpicmVhaztkZWZhdWx0OnZvPSExfWJyZWFrO2Nhc2Uic21hcnR0YWdzIjpicmVhaztkZWZhdWx0OnZvPSExfWlmKHZvfHxqZVszXS5tYXRj''@;'; put 'put ''aCgvIVxbQ0RBVEEvKSlicmVhaztpZighWWVbWWUubGVuZ3RoLTFdWzFdKXRocm93IlVucmVjb2duaXplZCB0YWc6ICIramVbM10rInwiK1llLmpvaW4oInwiKTtpZigiY3VzdG9tZG9jdW1lbnRwcm9wZXJ0aWVzIj09PVllW1llLmxlbmd0aC0xXVswXSl7aWYoIi8+Ij09PWplWzBdLnNsaWNl''@;'; put 'put ''KC0yKSlicmVhazsiLyI9PT1qZVsxXT9IaChvaSxvYSxkaSx3ZS5zbGljZShjcixqZS5pbmRleCkpOihkaT1qZSxjcj1qZS5pbmRleCtqZVswXS5sZW5ndGgpO2JyZWFrfWlmKFguV1RGKXRocm93IlVucmVjb2duaXplZCB0YWc6ICIramVbM10rInwiK1llLmpvaW4oInwiKX12YXIgbDI9e307''@;'; put 'put ''cmV0dXJuIVguYm9va1NoZWV0cyYmIVguYm9va1Byb3BzJiYobDIuU2hlZXRzPXh0KSxsMi5TaGVldE5hbWVzPVJ0LGwyLldvcmtib29rPXQwLGwyLlNTRj1GLmdldF90YWJsZSgpLGwyLlByb3BzPXFyLGwyLkN1c3Rwcm9wcz1vaSxsMi5TaGVldHMmJmwyLlNoZWV0TmFtZXMuZm9yRWFjaChm''@;'; put 'put ''dW5jdGlvbihNYyl7dmFyIHAyPWwyLlNoZWV0c1tNY107cDJbIiFtZXJnZXMiXSYmcDJbIiFtZXJnZXMiXS5mb3JFYWNoKGZ1bmN0aW9uKHJyKXsic3RyaW5nIj09dHlwZW9mIHJyJiYocnI9VS51dGlscy5kZWNvZGVfcmFuZ2UocnIpKTt2YXIgSXI9VS51dGlscy5lbmNvZGVfY2VsbChyci5z''@;'; put 'put ''KSxacj1BcnJheS5pc0FycmF5KHAyKT8ocDJbcnIucy5yXXx8W10pW3JyLnMuY106cDJbSXJdO1pyJiZaci5zJiYobnVsbCE9WnIucy50b3AmJmFjLnNoZWV0X3NldF9yYW5nZV9zdHlsZShwMixycix7dG9wOlpyLnMudG9wfSksbnVsbCE9WnIucy5ib3R0b20mJmFjLnNoZWV0X3NldF9yYW5n''@;'; put 'put ''ZV9zdHlsZShwMixycix7Ym90dG9tOlpyLnMuYm90dG9tfSksbnVsbCE9WnIucy5sZWZ0JiZhYy5zaGVldF9zZXRfcmFuZ2Vfc3R5bGUocDIscnIse2xlZnQ6WnIucy5sZWZ0fSksbnVsbCE9WnIucy5yaWdodCYmYWMuc2hlZXRfc2V0X3JhbmdlX3N0eWxlKHAyLHJyLHtyaWdodDpaci5zLnJp''@;'; put 'put ''Z2h0fSkpfSl9KSxsMn1mdW5jdGlvbiBlQyhILGllKXtzd2l0Y2goTWYoaWU9aWV8fHt9KSxpZS50eXBlfHwiYmFzZTY0Iil7Y2FzZSJiYXNlNjQiOnJldHVybiBxXyhTZS5kZWNvZGUoSCksaWUpO2Nhc2UiYmluYXJ5IjpjYXNlImJ1ZmZlciI6Y2FzZSJmaWxlIjpyZXR1cm4gcV8oSCxpZSk7''@;'; put 'put ''Y2FzZSJhcnJheSI6cmV0dXJuIHFfKG5lKEgpLGllKX19ZnVuY3Rpb24gSVAoSCl7cmV0dXJuIF9pKCJOYW1lZFJhbmdlIixudWxsLHsic3M6TmFtZSI6SC5OYW1lLCJzczpSZWZlcnNUbyI6Ij0iK1ZFKEguUmVmLHtyOjAsYzowfSl9KX1mdW5jdGlvbiBEUChILGllLFgsd2UseGUsRmUsWmUp''@;'; put 'put ''e2lmKCFIfHxudWxsPT1ILnYmJm51bGw9PUguZiYmIXdlLnNoZWV0U3R1YnMpcmV0dXJuIiI7dmFyIGplPXt9O2lmKEguZiYmKGplWyJzczpGb3JtdWxhIl09Ij0iK1JyKFZFKEguZixaZSkpKSxILkYmJkguRi5zbGljZSgwLGllLmxlbmd0aCk9PWllKXt2YXIgWWU9dWwoSC5GLnNsaWNlKGll''@;'; put 'put ''Lmxlbmd0aCsxKSk7amVbInNzOkFycmF5UmFuZ2UiXT0iUkM6UiIrKFllLnI9PVplLnI/IiI6IlsiKyhZZS5yLVplLnIpKyJdIikrIkMiKyhZZS5jPT1aZS5jPyIiOiJbIisoWWUuYy1aZS5jKSsiXSIpfWlmKEgubCYmSC5sLlRhcmdldCYmKGplWyJzczpIUmVmIl09UnIoSC5sLlRhcmdldCks''@;'; put 'put ''SC5sLlRvb2x0aXAmJihqZVsieDpIUmVmU2NyZWVuVGlwIl09UnIoSC5sLlRvb2x0aXApKSksWFsiIW1lcmdlcyJdKWZvcih2YXIgTXQ9WFsiIW1lcmdlcyJdLHh0PTA7eHQhPU10Lmxlbmd0aDsrK3h0KU10W3h0XS5zLmMhPVplLmN8fE10W3h0XS5zLnIhPVplLnJ8fChNdFt4dF0uZS5jPk10''@;'; put 'put ''W3h0XS5zLmMmJihqZVsic3M6TWVyZ2VBY3Jvc3MiXT1NdFt4dF0uZS5jLU10W3h0XS5zLmMpLE10W3h0XS5lLnI+TXRbeHRdLnMuciYmKGplWyJzczpNZXJnZURvd24iXT1NdFt4dF0uZS5yLU10W3h0XS5zLnIpKTt2YXIgUnQ9IiIsVXQ9IiI7c3dpdGNoKEgudCl7Y2FzZSJ6IjppZighd2Uu''@;'; put 'put ''c2hlZXRTdHVicylyZXR1cm4iIjticmVhaztjYXNlIm4iOlJ0PSJOdW1iZXIiLFV0PVN0cmluZyhILnYpO2JyZWFrO2Nhc2UiYiI6UnQ9IkJvb2xlYW4iLFV0PUgudj8iMSI6IjAiO2JyZWFrO2Nhc2UiZSI6UnQ9IkVycm9yIixVdD1OMVtILnZdO2JyZWFrO2Nhc2UiZCI6UnQ9IkRhdGVUaW1l''@;'; put 'put ''IixVdD1uZXcgRGF0ZShILnYpLnRvSVNPU3RyaW5nKCksbnVsbD09SC56JiYoSC56PUguenx8Ri5fdGFibGVbMTRdKTticmVhaztjYXNlInMiOlJ0PSJTdHJpbmciLFV0PWQwKEgudnx8IiIpfXZhciBubj1ZMSh3ZS5jZWxsWGZzLG51bGwsSCx3ZSk7amVbInNzOlN0eWxlSUQiXT0icyIrKDIx''@;'; put 'put ''K25uKSxqZVsic3M6SW5kZXgiXT1aZS5jKzE7dmFyIENuPW51bGwhPUgudj9VdDoiIixEdD0ieiI9PUgudD8iIjpILlI/ZnVuY3Rpb24gb1QoSCl7cmV0dXJuJzxzczpEYXRhIHNzOlR5cGU9IlN0cmluZyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPicrSC5tYXAo''@;'; put 'put ''ZnVuY3Rpb24oWCl7dmFyIHdlPWQwKFgudik7cmV0dXJuIFgucyYmKFgucy5ib2xkJiYod2U9IjxCPiIrd2UrIjwvQj4iKSxYLnMuaXRhbGljJiYod2U9IjxJPiIrd2UrIjwvST4iKSxYLnMuc3RyaWtlJiYod2U9IjxTPiIrd2UrIjwvUz4iKSxYLnMudW5kZXJsaW5lJiYod2U9IjxVPiIrd2Ur''@;'; put 'put ''IjwvVT4iKSwic3VwZXIiPT1YLnMudmFsaWduJiYod2U9IjxTdXA+Iit3ZSsiPC9TdXA+IiksInN1YiI9PVgucy52YWxpZ24mJih3ZT0iPFN1Yj4iK3dlKyI8L1N1Yj4iKSwoWC5zLm5hbWV8fFgucy5zenx8WC5zLmNvbG9yJiZudWxsIT1YLnMuY29sb3IucmdiKSYmKHdlPVsiPEZvbnQiLFgu''@;'; put 'put ''cy5uYW1lPycgaHRtbDpGYWNlPSInK1gucy5uYW1lKyciJzoiIixYLnMuc3o/JyBodG1sOlNpemU9IicrWC5zLnN6KyciJzoiIixYLnMuY29sb3I/JyBodG1sOkNvbG9yPSIjJysoIjAwMDAwMCIrKCJudW1iZXIiPT10eXBlb2YgWC5zLmNvbG9yLnJnYj9YLnMuY29sb3IucmdiLnRvU3RyaW5n''@;'; put 'put ''KDE2KTpYLnMuY29sb3IucmdiKSkuc2xpY2UoLTYpKyciJzoiIiwiPiIsd2UsIjwvRm9udD4iXS5qb2luKCIiKSkpLHdlfSkuam9pbigiIikrIjwvRGF0YT4ifShILlIpOic8RGF0YSBzczpUeXBlPSInK1J0KyciPicrQ24rIjwvRGF0YT4iO3JldHVybihILmN8fFtdKS5sZW5ndGg+MCYmKER0''@;'; put 'put ''Kz1mdW5jdGlvbiBNbyhIKXtyZXR1cm4gSC5tYXAoZnVuY3Rpb24oaWUpe3ZhciB3ZT1faSgic3M6RGF0YSIsZnVuY3Rpb24oaWUpe3JldHVybiBpZS5yZXBsYWNlKC8oXHJcbnxbXHJcbl0pL2csIiYjMTA7Iil9KGllLnR8fCIiKSx7eG1sbnM6Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1o''@;'; put 'put ''dG1sNDAifSk7cmV0dXJuIF9pKCJDb21tZW50Iix3ZSx7InNzOkF1dGhvciI6aWUuYX0pfSkuam9pbigiIil9KEguYykpLF9pKCJDZWxsIixEdCxqZSl9ZnVuY3Rpb24gTFAoSCxpZSl7dmFyIFg9JzxSb3cgc3M6SW5kZXg9IicrKEgrMSkrJyInO3JldHVybiBpZSYmKGllLmhweCYmIWllLmhw''@;'; put 'put ''dCYmKGllLmhwdD1UaChpZS5ocHgpKSxpZS5ocHQmJihYKz0nIHNzOkF1dG9GaXRIZWlnaHQ9IjAiIHNzOkhlaWdodD0iJytpZS5ocHQrJyInKSxpZS5oaWRkZW4mJihYKz0nIHNzOkhpZGRlbj0iMSInKSksWCsiPiJ9ZnVuY3Rpb24gT1AoSCxpZSxYKXt2YXIgd2U9W10sRmU9WC5TaGVldHNb''@;'; put 'put ''WC5TaGVldE5hbWVzW0hdXSxaZT1GZT9mdW5jdGlvbiBpVChILGllLFgsd2Upe2lmKCFIfHwhKCh3ZXx8e30pLldvcmtib29rfHx7fSkuTmFtZXMpcmV0dXJuIiI7Zm9yKHZhciB4ZT13ZS5Xb3JrYm9vay5OYW1lcyxGZT1bXSxaZT0wO1plPHhlLmxlbmd0aDsrK1plKXt2YXIgamU9eGVbWmVd''@;'; put 'put ''O2plLlNoZWV0PT1YJiYoamUuTmFtZS5tYXRjaCgvXl94bGZuXC4vKXx8RmUucHVzaChJUChqZSkpKX1yZXR1cm4gRmUuam9pbigiIil9KEZlLDAsSCxYKToiIjtyZXR1cm4gWmUubGVuZ3RoPjAmJndlLnB1c2goIjxOYW1lcz4iK1plKyI8L05hbWVzPiIpLFplPUZlP2Z1bmN0aW9uIFM1KEgs''@;'; put 'put ''aWUsWCx3ZSl7aWYoIUhbIiFyZWYiXSlyZXR1cm4iIjt2YXIgeGU9Rm8oSFsiIXJlZiJdKSxGZT1IWyIhbWVyZ2VzIl18fFtdLFplPTAsamU9W107SFsiIWNvbHMiXSYmSFsiIWNvbHMiXS5mb3JFYWNoKGZ1bmN0aW9uKHp0LFBuKXt5Yyh6dCk7dmFyIFRuPSEhenQud2lkdGgsT249azYoUG4s''@;'; put 'put ''enQpLFluPXsic3M6SW5kZXgiOlBuKzF9O1RuJiYoWW5bInNzOldpZHRoIl09bW0oT24ud2lkdGgpKSx6dC5oaWRkZW4mJihZblsic3M6SGlkZGVuIl09IjEiKSxqZS5wdXNoKF9pKCJDb2x1bW4iLG51bGwsWW4pKX0pO2Zvcih2YXIgWWU9QXJyYXkuaXNBcnJheShIKSxNdD14ZS5zLnI7TXQ8''@;'; put 'put ''PXhlLmUucjsrK010KXtmb3IodmFyIHh0PVtMUChNdCwoSFsiIXJvd3MiXXx8W10pW010XSldLFJ0PXhlLnMuYztSdDw9eGUuZS5jOysrUnQpe3ZhciBVdD0hMTtmb3IoWmU9MDtaZSE9RmUubGVuZ3RoOysrWmUpaWYoIShGZVtaZV0ucy5jPlJ0fHxGZVtaZV0ucy5yPk10fHxGZVtaZV0uZS5j''@;'; put 'put ''PFJ0fHxGZVtaZV0uZS5yPE10KSl7KEZlW1plXS5zLmMhPVJ0fHxGZVtaZV0ucy5yIT1NdCkmJihVdD0hMCk7YnJlYWt9aWYoIVV0KXt2YXIgbm49e3I6TXQsYzpSdH0sQ249WTAobm4pO3h0LnB1c2goRFAoWWU/KEhbTXRdfHxbXSlbUnRdOkhbQ25dLENuLEgsaWUsMCwwLG5uKSl9fXh0LnB1''@;'; put 'put ''c2goIjwvUm93PiIpLHh0Lmxlbmd0aD4yJiZqZS5wdXNoKHh0LmpvaW4oIiIpKX1yZXR1cm4gamUuam9pbigiIil9KEZlLGllKToiIixaZS5sZW5ndGg+MCYmd2UucHVzaCgiPFRhYmxlPiIrWmUrIjwvVGFibGU+Iiksd2UucHVzaChmdW5jdGlvbiBfRyhILGllLFgsd2Upe2lmKCFIKXJldHVy''@;'; put 'put ''biIiO3ZhciB4ZT1bXTtpZihIWyIhbWFyZ2lucyJdJiYoeGUucHVzaCgiPFBhZ2VTZXR1cD4iKSxIWyIhbWFyZ2lucyJdLmhlYWRlciYmeGUucHVzaChfaSgiSGVhZGVyIixudWxsLHsieDpNYXJnaW4iOkhbIiFtYXJnaW5zIl0uaGVhZGVyfSkpLEhbIiFtYXJnaW5zIl0uZm9vdGVyJiZ4ZS5w''@;'; put 'put ''dXNoKF9pKCJGb290ZXIiLG51bGwseyJ4Ok1hcmdpbiI6SFsiIW1hcmdpbnMiXS5mb290ZXJ9KSkseGUucHVzaChfaSgiUGFnZU1hcmdpbnMiLG51bGwseyJ4OkJvdHRvbSI6SFsiIW1hcmdpbnMiXS5ib3R0b218fCIwLjc1IiwieDpMZWZ0IjpIWyIhbWFyZ2lucyJdLmxlZnR8fCIwLjciLCJ4''@;'; put 'put ''OlJpZ2h0IjpIWyIhbWFyZ2lucyJdLnJpZ2h0fHwiMC43IiwieDpUb3AiOkhbIiFtYXJnaW5zIl0udG9wfHwiMC43NSJ9KSkseGUucHVzaCgiPC9QYWdlU2V0dXA+IikpLHdlJiZ3ZS5Xb3JrYm9vayYmd2UuV29ya2Jvb2suU2hlZXRzJiZ3ZS5Xb3JrYm9vay5TaGVldHNbWF0paWYod2UuV29y''@;'; put 'put ''a2Jvb2suU2hlZXRzW1hdLkhpZGRlbil4ZS5wdXNoKF9pKCJWaXNpYmxlIiwxPT13ZS5Xb3JrYm9vay5TaGVldHNbWF0uSGlkZGVuPyJTaGVldEhpZGRlbiI6IlNoZWV0VmVyeUhpZGRlbiIse30pKTtlbHNle2Zvcih2YXIgRmU9MDtGZTxYJiYoIXdlLldvcmtib29rLlNoZWV0c1tGZV18fHdl''@;'; put 'put ''Lldvcmtib29rLlNoZWV0c1tGZV0uSGlkZGVuKTsrK0ZlKTtGZT09WCYmeGUucHVzaCgiPFNlbGVjdGVkLz4iKX1pZigoKCgod2V8fHt9KS5Xb3JrYm9va3x8e30pLlZpZXdzfHxbXSlbMF18fHt9KS5SVEwmJnhlLnB1c2goIjxEaXNwbGF5UmlnaHRUb0xlZnQvPiIpLG5yKEhbIiFncmlkbGlu''@;'; put 'put ''ZXMiXSkmJnhlLnB1c2goIjxEb05vdERpc3BsYXlHcmlkbGluZXMvPiIpLEhbIiFmcmVlemUiXSl7eGUucHVzaCgiPEZyZWV6ZVBhbmVzLz4iKSx4ZS5wdXNoKCI8RnJvemVuTm9TcGxpdC8+Iik7dmFyIFplPXVsKEhbIiFmcmVlemUiXSk7WmUucj4wJiYoeGUucHVzaChzYSgiU3BsaXRIb3Jp''@;'; put 'put ''em9udGFsIiwiIitaZS5yKSkseGUucHVzaChzYSgiVG9wUm93Qm90dG9tUGFuZSIsIiIrWmUucikpKSxaZS5jPjAmJih4ZS5wdXNoKHNhKCJTcGxpdFZlcnRpY2FsIiwiIitaZS5jKSkseGUucHVzaChzYSgiTGVmdENvbHVtblJpZ2h0UGFuZSIsIiIrWmUuYykpKX1yZXR1cm4gSFsiIXByb3Rl''@;'; put 'put ''Y3QiXSYmKHhlLnB1c2goc2EoIlByb3RlY3RDb250ZW50cyIsIlRydWUiKSksSFsiIXByb3RlY3QiXS5vYmplY3RzJiZ4ZS5wdXNoKHNhKCJQcm90ZWN0T2JqZWN0cyIsIlRydWUiKSksSFsiIXByb3RlY3QiXS5zY2VuYXJpb3MmJnhlLnB1c2goc2EoIlByb3RlY3RTY2VuYXJpb3MiLCJUcnVl''@;'; put 'put ''IikpLG51bGw9PUhbIiFwcm90ZWN0Il0uc2VsZWN0TG9ja2VkQ2VsbHN8fEhbIiFwcm90ZWN0Il0uc2VsZWN0TG9ja2VkQ2VsbHM/bnVsbCE9SFsiIXByb3RlY3QiXS5zZWxlY3RVbmxvY2tlZENlbGxzJiYhSFsiIXByb3RlY3QiXS5zZWxlY3RVbmxvY2tlZENlbGxzJiZ4ZS5wdXNoKHNhKCJF''@;'; put 'put ''bmFibGVTZWxlY3Rpb24iLCJVbmxvY2tlZENlbGxzIikpOnhlLnB1c2goc2EoIkVuYWJsZVNlbGVjdGlvbiIsIk5vU2VsZWN0aW9uIikpLFtbImZvcm1hdENlbGxzIiwiQWxsb3dGb3JtYXRDZWxscyJdLFsiZm9ybWF0Q29sdW1ucyIsIkFsbG93U2l6ZUNvbHMiXSxbImZvcm1hdFJvd3MiLCJB''@;'; put 'put ''bGxvd1NpemVSb3dzIl0sWyJpbnNlcnRDb2x1bW5zIiwiQWxsb3dJbnNlcnRDb2xzIl0sWyJpbnNlcnRSb3dzIiwiQWxsb3dJbnNlcnRSb3dzIl0sWyJpbnNlcnRIeXBlcmxpbmtzIiwiQWxsb3dJbnNlcnRIeXBlcmxpbmtzIl0sWyJkZWxldGVDb2x1bW5zIiwiQWxsb3dEZWxldGVDb2xzIl0s''@;'; put 'put ''WyJkZWxldGVSb3dzIiwiQWxsb3dEZWxldGVSb3dzIl0sWyJzb3J0IiwiQWxsb3dTb3J0Il0sWyJhdXRvRmlsdGVyIiwiQWxsb3dGaWx0ZXIiXSxbInBpdm90VGFibGVzIiwiQWxsb3dVc2VQaXZvdFRhYmxlcyJdXS5mb3JFYWNoKGZ1bmN0aW9uKGplKXtIWyIhcHJvdGVjdCJdW2plWzBdXSYm''@;'; put 'put ''eGUucHVzaCgiPCIramVbMV0rIi8+Iil9KSksMD09eGUubGVuZ3RoPyIiOl9pKCJXb3Jrc2hlZXRPcHRpb25zIix4ZS5qb2luKCIiKSx7eG1sbnM6dWFfeH0pfShGZSwwLEgsWCkpLHdlLmpvaW4oIiIpfWZ1bmN0aW9uIE1BKEgsaWUpe2llfHwoaWU9e30pLEguU1NGfHwoSC5TU0Y9Ri5nZXRf''@;'; put 'put ''dGFibGUoKSksSC5TU0YmJih5ZShGKSxGLmxvYWRfdGFibGUoSC5TU0YpLGllLnJldnNzZj1ldChILlNTRiksaWUucmV2c3NmW0guU1NGWzY1NTM1XV09MCxpZS5zc2Y9SC5TU0YsSC5TdHlsZXM9e0ZvbnRzOmllLkZvbnRzPVt7c3o6MTIsY29sb3I6e3RoZW1lOjEscmdiOiIwMDAwMDAifSxu''@;'; put 'put ''YW1lOiJDYWxpYnJpIixmYW1pbHk6MixzY2hlbWU6Im1pbm9yIn1dLEZpbGxzOmllLkZpbGxzPVt7cGF0dGVyblR5cGU6Im5vbmUifSx7cGF0dGVyblR5cGU6ImdyYXkxMjUifV0sQm9yZGVyczppZS5Cb3JkZXJzPVt7fV19LGllLmNlbGxYZnM9W10saWUuY2VsbFN0eWxlWGZzPVt7bmFtZToi''@;'; put 'put ''Tm9ybWFsIn1dLFkxKGllLmNlbGxYZnMsbnVsbCx7fSx7cmV2c3NmOntHZW5lcmFsOjB9fSkpO3ZhciBYPVtdO1gucHVzaChmdW5jdGlvbiBrNShILGllKXt2YXIgWD1bXTtyZXR1cm4gSC5Qcm9wcyYmWC5wdXNoKGZ1bmN0aW9uIGhhKEgsaWUpe3ZhciBYPVtdO3JldHVybiBvbihlbykubWFw''@;'; put 'put ''KGZ1bmN0aW9uKHdlKXtmb3IodmFyIHhlPTA7eGU8bGUubGVuZ3RoOysreGUpaWYobGVbeGVdWzFdPT13ZSlyZXR1cm4gbGVbeGVdO2Zvcih4ZT0wO3hlPG8yLmxlbmd0aDsrK3hlKWlmKG8yW3hlXVsxXT09d2UpcmV0dXJuIG8yW3hlXTt0aHJvdyB3ZX0pLmZvckVhY2goZnVuY3Rpb24od2Up''@;'; put 'put ''e2lmKG51bGwhPUhbd2VbMV1dKXt2YXIgeGU9aWUmJmllLlByb3BzJiZudWxsIT1pZS5Qcm9wc1t3ZVsxXV0/aWUuUHJvcHNbd2VbMV1dOkhbd2VbMV1dOyJkYXRlIj09PXdlWzJdJiYoeGU9bmV3IERhdGUoeGUpLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgvXC5cZCpaLywiWiIpKSwibnVtYmVy''@;'; put 'put ''Ij09dHlwZW9mIHhlP3hlPVN0cmluZyh4ZSk6ITA9PT14ZXx8ITE9PT14ZT94ZT14ZT8iMSI6IjAiOnhlIGluc3RhbmNlb2YgRGF0ZSYmKHhlPW5ldyBEYXRlKHhlKS50b0lTT1N0cmluZygpLnJlcGxhY2UoL1wuXGQqWi8sIiIpKSxYLnB1c2goc2EoZW9bd2VbMV1dfHx3ZVsxXSx4ZSkpfX0p''@;'; put 'put ''LF9pKCJEb2N1bWVudFByb3BlcnRpZXMiLFguam9pbigiIikse3htbG5zOnVhX299KX0oSC5Qcm9wcyxpZSkpLEguQ3VzdHByb3BzJiZYLnB1c2goZnVuY3Rpb24gRGEoSCxpZSl7dmFyIFg9WyJXb3Jrc2hlZXRzIiwiU2hlZXROYW1lcyJdLHdlPSJDdXN0b21Eb2N1bWVudFByb3BlcnRpZXMi''@;'; put 'put ''LHhlPVtdO3JldHVybiBIJiZvbihIKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSCxGZSkpe2Zvcih2YXIgWmU9MDtaZTxsZS5sZW5ndGg7KytaZSlpZihGZT09bGVbWmVdWzFdKXJldHVybjtmb3IoWmU9MDtaZTxvMi5sZW5n''@;'; put 'put ''dGg7KytaZSlpZihGZT09bzJbWmVdWzFdKXJldHVybjtmb3IoWmU9MDtaZTxYLmxlbmd0aDsrK1plKWlmKEZlPT1YW1plXSlyZXR1cm47dmFyIGplPUhbRmVdLFllPSJzdHJpbmciOyJudW1iZXIiPT10eXBlb2YgamU/KFllPSJmbG9hdCIsamU9U3RyaW5nKGplKSk6ITA9PT1qZXx8ITE9PT1q''@;'; put 'put ''ZT8oWWU9ImJvb2xlYW4iLGplPWplPyIxIjoiMCIpOmplPVN0cmluZyhqZSkseGUucHVzaChfaShNaShGZSksamUseyJkdDpkdCI6WWV9KSl9fSksaWUmJm9uKGllKS5mb3JFYWNoKGZ1bmN0aW9uKEZlKXtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaWUsRmUpJiYo''@;'; put 'put ''IUh8fCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSCxGZSkpKXt2YXIgWmU9aWVbRmVdLGplPSJzdHJpbmciOyJudW1iZXIiPT10eXBlb2YgWmU/KGplPSJmbG9hdCIsWmU9U3RyaW5nKFplKSk6ITA9PT1aZXx8ITE9PT1aZT8oamU9ImJvb2xlYW4iLFplPVplPyIxIjoi''@;'; put 'put ''MCIpOlplIGluc3RhbmNlb2YgRGF0ZT8oamU9ImRhdGVUaW1lLnR6IixaZT1aZS50b0lTT1N0cmluZygpKTpaZT1TdHJpbmcoWmUpLHhlLnB1c2goX2koTWkoRmUpLFplLHsiZHQ6ZHQiOmplfSkpfX0pLCI8Iit3ZSsnIHhtbG5zPSInK3VhX28rJyI+Jyt4ZS5qb2luKCIiKSsiPC8iK3dlKyI+''@;'; put 'put ''In0oSC5Qcm9wcyxILkN1c3Rwcm9wcykpLFguam9pbigiIil9KEgsaWUpKSxYLnB1c2goIiIpLFgucHVzaCgiIiksWC5wdXNoKCIiKTtmb3IodmFyIHdlPTA7d2U8SC5TaGVldE5hbWVzLmxlbmd0aDsrK3dlKVgucHVzaChfaSgiV29ya3NoZWV0IixPUCh3ZSxpZSxIKSx7InNzOk5hbWUiOlJy''@;'; put 'put ''KEguU2hlZXROYW1lc1t3ZV0pfSkpO3JldHVybiBYWzJdPWZ1bmN0aW9uIHJjKEgsaWUpe3ZhciB3ZT1bWyc8U3R5bGUgc3M6SUQ9IkRlZmF1bHQiIHNzOk5hbWU9Ik5vcm1hbCI+JywnPEFsaWdubWVudCBzczpWZXJ0aWNhbD0iQm90dG9tIi8+JywiPEJvcmRlcnMvPiIsJzxGb250IHNzOkZv''@;'; put 'put ''bnROYW1lPSJDYWxpYnJpIiB4OkZhbWlseT0iU3dpc3MiIHNzOlNpemU9IjEyIiBzczpDb2xvcj0iIzAwMDAwMCIvPicsIjxJbnRlcmlvci8+IiwiPE51bWJlckZvcm1hdC8+IiwiPFByb3RlY3Rpb24vPiIsIjwvU3R5bGU+Il0uam9pbigiIildO3JldHVybiBpZS5jZWxsWGZzLmZvckVhY2go''@;'; put 'put ''ZnVuY3Rpb24oeGUsRmUpe3ZhciBaZT1bXTtpZih4ZS5hbGlnbm1lbnQpe3ZhciBqZT17fTt4ZS5hbGlnbm1lbnQuc2hyaW5rVG9GaXQmJihqZVsic3M6U2hyaW5rVG9GaXQiXT0iMSIpLHhlLmFsaWdubWVudC53cmFwVGV4dCYmKGplWyJzczpXcmFwVGV4dCJdPSIxIikseGUuYWxpZ25tZW50''@;'; put 'put ''LnZlcnRpY2FsJiYoamVbInNzOlZlcnRpY2FsIl09QW4oeGUuYWxpZ25tZW50LnZlcnRpY2FsKSkseGUuYWxpZ25tZW50Lmhvcml6b250YWwmJihqZVsic3M6SG9yaXpvbnRhbCJdPUFuKHhlLmFsaWdubWVudC5ob3Jpem9udGFsKSkseGUuYWxpZ25tZW50LmluZGVudCYmKGplWyJzczpJbmRl''@;'; put 'put ''bnQiXT14ZS5hbGlnbm1lbnQuaW5kZW50KSx4ZS5hbGlnbm1lbnQudGV4dFJvdGF0aW9uJiYoamVbInNzOlJvdGF0ZSJdPXhlLmFsaWdubWVudC50ZXh0Um90YXRpb24pLFplLnB1c2goX2koIkFsaWdubWVudCIsbnVsbCxqZSkpfWU6aWYobnVsbCE9eGUuZm9udElkKXt2YXIgWWU9aWUuRm9u''@;'; put 'put ''dHNbeGUuZm9udElkXTtpZighWWUpYnJlYWsgZTt2YXIgTXQ9eyJzczpGb250TmFtZSI6IkNhbGlicmkiLCJzczpTaXplIjoiMTIifSx4dD0hMTtZZS5ib2xkJiYoeHQ9ITAsTXRbInNzOkJvbGQiXT0iMSIpLFllLml0YWxpYyYmKHh0PSEwLE10WyJzczpJdGFsaWMiXT0iMSIpLFllLnN0cmlr''@;'; put 'put ''ZSYmKHh0PSEwLE10WyJzczpTdHJpa2VUaHJvdWdoIl09IjEiKSxudWxsIT1ZZS51bmRlcmxpbmUmJih4dD0hMCxNdFsic3M6VW5kZXJsaW5lIl09S19bWWUudW5kZXJsaW5lXXx8KFllLnVuZGVybGluZT8iU2luZ2xlIjoiTm9uZSIpKSxudWxsIT1ZZS5zeiYmKHh0PSEwLE10WyJzczpTaXpl''@;'; put 'put ''Il09WWUuc3opLG51bGwhPVllLm5hbWUmJih4dD0hMCxNdFsic3M6Rm9udE5hbWUiXT1ZZS5uYW1lKSxZZS5jb2xvciYmbnVsbCE9WWUuY29sb3IucmdiJiYoeHQ9ITAsTXRbInNzOkNvbG9yIl09IiMiKygibnVtYmVyIj09dHlwZW9mIFllLmNvbG9yLnJnYj8iMDAwMDAwIitZZS5jb2xvci5y''@;'; put 'put ''Z2IudG9TdHJpbmcoMTYpOlllLmNvbG9yLnJnYikuc2xpY2UoLTYpKSxbInN1YiIsInN1cGVyIl0uaW5kZXhPZihZZS52YWxpZ24pPi0xJiYoTXRbInNzOlZlcnRpY2FsQWxpZ24iXT1BbihZZS52YWxpZ24pKyJzY3JpcHQiKSx4dCYmWmUucHVzaChfaSgiRm9udCIsbnVsbCxNdCkpfWU6aWYo''@;'; put 'put ''eGUuZmlsbElkPjApe3ZhciBSdD1pZS5GaWxsc1t4ZS5maWxsSWRdO2lmKCFSdHx8IVJ0LmZnQ29sb3J8fG51bGw9PVJ0LmZnQ29sb3IucmdiKWJyZWFrIGU7WmUucHVzaChfaSgiSW50ZXJpb3IiLG51bGwseyJzczpQYXR0ZXJuIjpoRVtSdC5wYXR0ZXJuVHlwZV18fCJTb2xpZCIsInNzOkNv''@;'; put 'put ''bG9yIjoiIyIrKCJudW1iZXIiPT10eXBlb2YgUnQuZmdDb2xvci5yZ2I/IjAwIitSdC5mZ0NvbG9yLnJnYi50b1N0cmluZygxNik6UnQuZmdDb2xvci5yZ2IpLnNsaWNlKC02KX0pKX1aZS5wdXNoKF9pKCJOdW1iZXJGb3JtYXQiLG51bGwseyJzczpGb3JtYXQiOlJyKEYuX3RhYmxlW3hlLm51''@;'; put 'put ''bUZtdElkXSl9KSk7dmFyIFV0PXsic3M6SUQiOiJzIisoMjErRmUpfTt4ZS5zdHlsZSYmKFV0WyJzczpOYW1lIl09eGUuc3R5bGUpLHdlLnB1c2goX2koIlN0eWxlIixaZS5qb2luKCIiKSxVdCkpfSksX2koIlN0eWxlcyIsd2Uuam9pbigiIikpfSgwLGllKSxYWzNdPWZ1bmN0aW9uIHRDKEgp''@;'; put 'put ''e2lmKCEoKEh8fHt9KS5Xb3JrYm9va3x8e30pLk5hbWVzKXJldHVybiIiO2Zvcih2YXIgaWU9SC5Xb3JrYm9vay5OYW1lcyxYPVtdLHdlPTA7d2U8aWUubGVuZ3RoOysrd2Upe3ZhciB4ZT1pZVt3ZV07bnVsbD09eGUuU2hlZXQmJih4ZS5OYW1lLm1hdGNoKC9eX3hsZm5cLi8pfHxYLnB1c2go''@;'; put 'put ''SVAoeGUpKSl9cmV0dXJuIF9pKCJOYW1lcyIsWC5qb2luKCIiKSl9KEgpLGNuK19pKCJXb3JrYm9vayIsWC5qb2luKCIiKSx7eG1sbnM6dWFfc3MsInhtbG5zOm8iOnVhX28sInhtbG5zOngiOnVhX3gsInhtbG5zOnNzIjp1YV9zcywieG1sbnM6ZHQiOiJ1dWlkOkMyRjQxMDEwLTY1QjMtMTFk''@;'; put 'put ''MS1BMjlGLTAwQUEwMEMxNDg4MiIsInhtbG5zOmh0bWwiOiJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIn0pfWZ1bmN0aW9uICQyKEgsaWUsWCx3ZSl7dmFyIHhlPVgsRmU9W10sWmU9aWUuc2xpY2UoaWUubCxpZS5sK3hlKTtpZih3ZSYmd2UuZW5jJiZ3ZS5lbmMuaW5zaXR1JiZa''@;'; put 'put ''ZS5sZW5ndGg+MClzd2l0Y2goSC5uKXtjYXNlIkJPRiI6Y2FzZSJGaWxlUGFzcyI6Y2FzZSJGaWxlTG9jayI6Y2FzZSJJbnRlcmZhY2VIZHIiOmNhc2UiUlJESW5mbyI6Y2FzZSJSUkRIZWFkIjpjYXNlIlVzckV4Y2wiOmNhc2UiRU9GIjp3ZS5lbmMuaW5zaXR1KFRlKHtsZW5ndGg6WmUubGVu''@;'; put 'put ''Z3RofSksInNraXAiKTticmVhaztjYXNlIkJvdW5kU2hlZXQ4Ijp3ZS5lbmMuaW5zaXR1KFRlKHtsZW5ndGg6NH0pLCJza2lwIiksWmU9QnVmZmVyLmNvbmNhdChbQnVmZmVyLmZyb20oWmUuc2xpY2UoMCw0KSksQnVmZmVyLmZyb20od2UuZW5jLmluc2l0dShaZS5zbGljZSg0KSkpXSk7YnJl''@;'; put 'put ''YWs7ZGVmYXVsdDpaZT13ZS5lbmMuaW5zaXR1KFplKX1BcnJheS5pc0FycmF5KGllKSYmIUFycmF5LmlzQXJyYXkoWmUpJiYoWmU9QXJyYXkuZnJvbShaZSkpLEZlLnB1c2goWmUpLGllLmwrPXhlO2Zvcih2YXIgamU9TmxbUHMoaWUsaWUubCldLFllPTA7bnVsbCE9amUmJiJDb250aW51ZSI9''@;'; put 'put ''PT1qZS5uLnNsaWNlKDAsOCk7KXhlPVBzKGllLGllLmwrMiksWWU9aWUubCs0LHdlJiZ3ZS5lbmMmJndlLmVuYy5pbnNpdHUmJndlLmVuYy5pbnNpdHUoVGUoe2xlbmd0aDo0fSksInNraXAiKSwiQ29udGludWVGcnQiPT1qZS5uP1llKz00OiJDb250aW51ZUZydCI9PWplLm4uc2xpY2UoMCwx''@;'; put 'put ''MSkmJihZZSs9MTIsd2UmJndlLmVuYyYmd2UuZW5jLmluc2l0dSYmd2UuZW5jLmluc2l0dShUZSh7bGVuZ3RoOjh9KSwic2tpcCIpKSxaZT1pZS5zbGljZShZZSxpZS5sKzQreGUpLHdlJiZ3ZS5lbmMmJndlLmVuYy5pbnNpdHUmJlplLmxlbmd0aD4wJiYoWmU9d2UuZW5jLmluc2l0dShaZSkp''@;'; put 'put ''LEZlLnB1c2goWmUpLGllLmwrPTQreGUsamU9TmxbUHMoaWUsaWUubCldO3ZhciBNdD1WKEZlKTtLbChNdCwwKTt2YXIgeHQ9MDtNdC5sZW5zPVtdO2Zvcih2YXIgUnQ9MDtSdDxGZS5sZW5ndGg7KytSdClNdC5sZW5zLnB1c2goeHQpLHh0Kz1GZVtSdF0ubGVuZ3RoO2lmKE10Lmxlbmd0aDxY''@;'; put 'put ''KXRocm93IlhMUyBSZWNvcmQgIisoSCYmSC5ufHwiPz8iKSsiIFRydW5jYXRlZDogIitNdC5sZW5ndGgrIiA8ICIrWDtyZXR1cm4gSC5mKE10LE10Lmxlbmd0aCx3ZSl9ZnVuY3Rpb24gVmQoSCxpZSxYKXtpZigieiIhPT1ILnQmJkguWEYpe3ZhciB3ZT0wO3RyeXt3ZT1ILnp8fEguWEYubnVt''@;'; put 'put ''Rm10SWR8fDAsaWUuY2VsbE5GJiYoSC56PUYuX3RhYmxlW3dlXSl9Y2F0Y2goRmUpe2lmKGllLldURil0aHJvdyBGZX1pZighaWV8fCExIT09aWUuY2VsbFRleHQpdHJ5e0gudz0iZSI9PT1ILnQ/SC53fHxOMVtILnZdOjA9PT13ZXx8IkdlbmVyYWwiPT13ZT8ibiI9PT1ILnQ/KDB8SC52KT09''@;'; put 'put ''PUgudj9GLl9nZW5lcmFsX2ludChILnYpOkYuX2dlbmVyYWxfbnVtKEgudik6Ri5fZ2VuZXJhbChILnYpOkYuZm9ybWF0KHdlLEgudix7ZGF0ZTE5MDQ6ISFYLGRhdGVORjppZSYmaWUuZGF0ZU5GfSl9Y2F0Y2goRmUpe2lmKGllLldURil0aHJvdyBGZX1pZihpZS5jZWxsRGF0ZXMmJndlJiYi''@;'; put 'put ''biI9PUgudCYmRi5pc19kYXRlKEYuX3RhYmxlW3dlXXx8U3RyaW5nKHdlKSkpe3ZhciB4ZT1GLnBhcnNlX2RhdGVfY29kZShILnYpO3hlJiYoSC50PSJkIixILnY9bmV3IERhdGUoeGUueSx4ZS5tLTEseGUuZCx4ZS5ILHhlLk0seGUuUyx4ZS51KSl9fX1mdW5jdGlvbiBNNShILGllLFgpe3Jl''@;'; put 'put ''dHVybnt2OkgsaXhmZTppZSx0Olh9fXZhciBhVD1mdW5jdGlvbihILGllLFgpe2llWyIhb2JqZWN0cyJdPUh9LEU1X1NJPSJlMDg1OWZmMmY5NGY2ODEwYWI5MTA4MDAyYjI3YjNkOSIsRTVfRFNJPSIwMmQ1Y2RkNTljMmUxYjEwOTM5NzA4MDAyYjJjZjlhZSI7ZnVuY3Rpb24gVW0oSCxpZSl7''@;'; put 'put ''dmFyIFgsd2UseGUsRmU7aWYoaWV8fChpZT17fSksTWYoaWUpLEsoKSxpZS5jb2RlcGFnZSYmVyhpZS5jb2RlcGFnZSksSC5GdWxsUGF0aHMpe2lmKG10LmZpbmQoSCwiL2VuY3J5cHRpb24iKSl0aHJvdyBuZXcgRXJyb3IoIkZpbGUgaXMgcGFzc3dvcmQtcHJvdGVjdGVkIik7WD1tdC5maW5k''@;'; put 'put ''KEgsIiFDb21wT2JqIiksd2U9bXQuZmluZChILCIvV29ya2Jvb2siKXx8bXQuZmluZChILCIvQm9vayIpfWVsc2V7c3dpdGNoKGllLnR5cGUpe2Nhc2UiYmFzZTY0IjpIPXooU2UuZGVjb2RlKEgpKTticmVhaztjYXNlImJpbmFyeSI6SD16KEgpO2JyZWFrO2Nhc2UiYnVmZmVyIjpicmVhaztj''@;'; put 'put ''YXNlImFycmF5IjpBcnJheS5pc0FycmF5KEgpfHwoSD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChIKSl9S2woSCwwKSx3ZT17Y29udGVudDpIfX1pZihYJiZmdW5jdGlvbiBFQShIKXt2YXIgaWU9e30sWD1ILmNvbnRlbnQ7aWYoWC5sPTI4LGllLkFuc2lVc2VyVHlwZT1YLnJlYWRfc2hp''@;'; put 'put ''ZnQoMCwibHBzdHItYW5zaSIpLGllLkFuc2lDbGlwYm9hcmRGb3JtYXQ9ZnVuY3Rpb24gbmIoSCl7cmV0dXJuIGY5KEgsMSl9KFgpLFgubGVuZ3RoLVgubDw9NClyZXR1cm4gaWU7dmFyIHdlPVgucmVhZF9zaGlmdCg0KTtpZigwPT13ZXx8d2U+NDB8fChYLmwtPTQsaWUuUmVzZXJ2ZWQxPVgu''@;'; put 'put ''cmVhZF9zaGlmdCgwLCJscHN0ci1hbnNpIiksWC5sZW5ndGgtWC5sPD00KXx8MTkwNzUwNTY1MiE9PSh3ZT1YLnJlYWRfc2hpZnQoNCkpfHwoaWUuVW5pY29kZUNsaXBib2FyZEZvcm1hdD1mdW5jdGlvbiBRZyhIKXtyZXR1cm4gZjkoSCwyKX0oWCksMD09KHdlPVgucmVhZF9zaGlmdCg0KSl8''@;'; put 'put ''fHdlPjQwKSlyZXR1cm4gaWU7WC5sLT00LGllLlJlc2VydmVkMj1YLnJlYWRfc2hpZnQoMCwibHB3c3RyIil9KFgpLGllLmJvb2tQcm9wcyYmIWllLmJvb2tTaGVldHMpeGU9e307ZWxzZXt2YXIgWmU9SWU/ImJ1ZmZlciI6ImFycmF5IjtpZih3ZSYmd2UuY29udGVudCl4ZT1mdW5jdGlvbiBS''@;'; put 'put ''UChILGllKXt2YXIgUnQsbm4sRHQsenQsT24sWW4sWD17b3B0czp7fX0sd2U9e30seGU9aWUuZGVuc2U/W106e30sRmU9e30sWmU9e30samU9bnVsbCxZZT1bXSxNdD0iIix4dD17fSxVdD0iIixQbj17fSxUbj1bXSxNcj1bXSxhaT1bXSx5cj17U2hlZXRzOltdLFdCUHJvcHM6e2RhdGUxOTA0''@;'; put 'put ''OiExfSxWaWV3czpbe31dfSxhcj17fSxHcj17Rm9udHM6W119LHpyPWZ1bmN0aW9uKHAwKXtyZXR1cm4gcDA8OD91dVtwMF06cDA8NjQmJmFpW3AwLThdfHx1dVtwMF19LHFyPWZ1bmN0aW9uKHAwLFFsKXt2YXIgcTIsQWw9cDAuWEYuZGF0YTtBbCYmKEFsLnBhdHRlcm5UeXBlfHxudWxsIT1B''@;'; put 'put ''bC5pY3ZGb3JlKSYmUWwmJlFsLmNlbGxTdHlsZXMmJihwMC5zPXt9LHAwLnMucGF0dGVyblR5cGU9QWwucGF0dGVyblR5cGUscDAuWEYuZm9udCYmYm4ocDAucyxwMC5YRi5mb250KSxBbC5mV3JhcCYmKChwMC5zLmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkud3JhcFRleHQ9ITAp''@;'; put 'put ''LEFsLmZTaHJpbmtUb0ZpdCYmKChwMC5zLmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkuc2hyaW5rVG9GaXQ9ITApLEFsLmhhbGlnbiYmKChwMC5zLmFsaWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkuaG9yaXpvbnRhbD1BbC5oYWxpZ24pLEFsLnZhbGlnbiYmKChwMC5zLmFs''@;'; put 'put ''aWdubWVudHx8KHAwLnMuYWxpZ25tZW50PXt9KSkudmVydGljYWw9QWwudmFsaWduKSxBbC5jSW5kZW50JiYoKHAwLnMuYWxpZ25tZW50fHwocDAucy5hbGlnbm1lbnQ9e30pKS5pbmRlbnQ9QWwuY0luZGVudCksNjQhPUFsLmljdkZvcmUmJjY1IT1BbC5pY3ZCYWNrJiYoKHEyPWIzKHpyKEFs''@;'; put 'put ''LmljdkZvcmUpKSkmJihwMC5zLmZnQ29sb3I9e3JnYjpxMn0pLChxMj1iMyh6cihBbC5pY3ZCYWNrKSkpJiYocDAucy5iZ0NvbG9yPXtyZ2I6cTJ9KSksWyJMZWZ0IiwiUmlnaHQiLCJUb3AiLCJCb3R0b20iXS5mb3JFYWNoKGZ1bmN0aW9uKGUxKXtBbFsiZGciK2UxXSYmKHAwLnNbZTEudG9M''@;'; put 'put ''b3dlckNhc2UoKV09e3N0eWxlOlQzW0FsWyJkZyIrZTFdXSxjb2xvcjp7cmdiOmIzKHpyKEFsWyJpY3YiK2UxXSkpfX0pfSkpfSxvaT1mdW5jdGlvbihwMCxRbCxBbCl7aWYoIShOMD4xfHxBbC5zaGVldFJvd3MmJnAwLnI+PUFsLnNoZWV0Um93cykpe2lmKEFsLmNlbGxTdHlsZXMmJlFsLlhG''@;'; put 'put ''JiZRbC5YRi5kYXRhJiZxcihRbCxBbCksZGVsZXRlIFFsLml4ZmUsZGVsZXRlIFFsLlhGLFJ0PXAwLFV0PVkwKHAwKSwoIVplfHwhWmUuc3x8IVplLmUpJiYoWmU9e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSkscDAucjxaZS5zLnImJihaZS5zLnI9cDAucikscDAuYzxaZS5zLmMmJihaZS5z''@;'; put 'put ''LmM9cDAuYykscDAucisxPlplLmUuciYmKFplLmUucj1wMC5yKzEpLHAwLmMrMT5aZS5lLmMmJihaZS5lLmM9cDAuYysxKSxBbC5jZWxsRm9ybXVsYSYmUWwuZilmb3IodmFyIHEyPTA7cTI8VG4ubGVuZ3RoOysrcTIpaWYoIShUbltxMl1bMF0ucy5jPnAwLmN8fFRuW3EyXVswXS5zLnI+cDAu''@;'; put 'put ''cnx8VG5bcTJdWzBdLmUuYzxwMC5jfHxUbltxMl1bMF0uZS5yPHAwLnIpKXtRbC5GPWZhKFRuW3EyXVswXSksKFRuW3EyXVswXS5zLmMhPXAwLmN8fFRuW3EyXVswXS5zLnIhPXAwLnIpJiZkZWxldGUgUWwuZixRbC5mJiYoUWwuZj0iIitXMShUbltxMl1bMV0sWmUscDAsTnIsY3IpKTticmVh''@;'; put 'put ''a31BbC5kZW5zZT8oeGVbcDAucl18fCh4ZVtwMC5yXT1bXSkseGVbcDAucl1bcDAuY109UWwpOnhlW1V0XT1RbH19LGNyPXtlbmM6ITEsc2JjY2g6MCxzbmFtZXM6W10sc2hhcmVkZjpQbixhcnJheWY6VG4scnJ0YWJpZDpbXSxsYXN0dXNlcjoiIixiaWZmOjgsY29kZXBhZ2U6MCx3aW5sb2Nr''@;'; put 'put ''ZWQ6MCxjZWxsU3R5bGVzOiEhaWUmJiEhaWUuY2VsbFN0eWxlcyxXVEY6ISFpZSYmISFpZS53dGZ9O2NyLnBhc3N3b3JkPWllLnBhc3N3b3JkP2llLnBhc3N3b3JkOiJWZWx2ZXRTd2VhdHNob3AiO3ZhciB2MCxkaT1udWxsLFVpPVtdLHRvPVtdLEEwPVtdLGJpPVtdLGhpPSExLE5yPVtdO05y''@;'; put 'put ''LlNoZWV0TmFtZXM9Y3Iuc25hbWVzLE5yLnNoYXJlZGY9Y3Iuc2hhcmVkZixOci5hcnJheWY9Y3IuYXJyYXlmLE5yLm5hbWVzPVtdLE5yLlhUST1bXTt2YXIgJDAsa2k9IiIsTjA9MCx0MD0wLGlvPVtdLG9hPVtdO2NyLmNvZGVwYWdlPTEyMDAsdGUoMTIwMCk7Zm9yKHZhciBWYT0hMTtILmw8''@;'; put 'put ''SC5sZW5ndGgtMTspe3ZhciBqbz1ILmwsd2E9SC5yZWFkX3NoaWZ0KDIpO2lmKGNyJiZjci5lbmMmJmNyLmVuYy5pbnNpdHUmJmNyLmVuYy5pbnNpdHUoVGUoWzAsMF0pLCJoZWFkZXItMCIpLDA9PT13YSYmIkVPRiI9PT1raSlicmVhazt2YXIgYW89SC5sPT09SC5sZW5ndGg/MDpILnJlYWRf''@;'; put 'put ''c2hpZnQoMik7Y3ImJmNyLmVuYyYmY3IuZW5jLmluc2l0dSYmY3IuZW5jLmluc2l0dShUZShbMCwwXSksImxlbmd0aC0wIik7dmFyIHgwPU5sW3dhXTtpZih4MCYmeDAuZil7aWYoaWUuYm9va1NoZWV0cyYmIkJvdW5kU2hlZXQ4Ij09PWtpJiYiQm91bmRTaGVldDgiIT09eDAubilicmVhaztp''@;'; put 'put ''ZihraT14MC5uLDI9PT14MC5yfHwxMj09eDAucil7dmFyIGgwPUgucmVhZF9zaGlmdCgyKTtpZihhby09MixjciYmY3IuZW5jJiZjci5lbmMuaW5zaXR1JiZjci5lbmMuaW5zaXR1KFRlKFswLDBdKSksIWNyLmVuYyYmaDAhPT13YSYmKCgyNTUmaDApPDw4fGgwPj44KSE9PXdhKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigicnQgbWlzbWF0Y2g6ICIraDArIiE9Iit3YSk7MTI9PXgwLnImJihILmwrPTEwLGFvLT0xMCxjciYmY3IuZW5jJiZjci5lbmMuaW5zaXR1JiZjci5lbmMuaW5zaXR1KFRlKFswLDAsMCwwLDAsMCwwLDAsMCwwXSkpKX12YXIganI9JDIoeDAsSCxhbyxjciksSGk9eDAubjtpZigw''@;'; put 'put ''PT1OMCYmIkJPRiIhPUhpKWNvbnRpbnVlO3N3aXRjaChIaSl7Y2FzZSJEYXRlMTkwNCI6WC5vcHRzLkRhdGUxOTA0PXlyLldCUHJvcHMuZGF0ZTE5MDQ9anI7YnJlYWs7Y2FzZSJXcml0ZVByb3RlY3QiOlgub3B0cy5Xcml0ZVByb3RlY3Q9ITA7YnJlYWs7Y2FzZSJGaWxlUGFzcyI6aWYoY3Iu''@;'; put 'put ''ZW5jfHwoSC5sPTAsTjA9MCksY3IuZW5jPWpyLCFpZS5wYXNzd29yZCYmbnVsbD09anIudmFsaWQpdGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpO2lmKG51bGw9PWpyLnZhbGlkKXRocm93IG5ldyBFcnJvcigiRW5jcnlwdGlvbiBzY2hlbWUgdW5zdXBwb3J0''@;'; put 'put ''ZWQiKTtpZighanIudmFsaWQpdGhyb3cgbmV3IEVycm9yKCJQYXNzd29yZCBpcyBpbmNvcnJlY3QiKTticmVhaztjYXNlIldyaXRlQWNjZXNzIjpjci5sYXN0dXNlcj1qcjticmVhaztjYXNlIkZpbGVTaGFyaW5nIjpjYXNlIlRlbXBsYXRlIjpjYXNlIkJvb2tCb29sIjpjYXNlIlVzZXNFTEZz''@;'; put 'put ''IjpjYXNlIk1UUlNldHRpbmdzIjpjYXNlIlVuY2FsY2VkIjpjYXNlIkV4dFNTVCI6Y2FzZSJCb29rRXh0IjpjYXNlIlJpY2hUZXh0U3RyZWFtIjpjYXNlIkJrSGltIjpjYXNlIkluZGV4IjpjYXNlIlByb3Q0UmV2IjpjYXNlIlByb3Q0UmV2UGFzcyI6YnJlYWs7Y2FzZSJDb2RlUGFnZSI6dmFy''@;'; put 'put ''IHZvPU51bWJlcihqcik7c3dpdGNoKHZvKXtjYXNlIDIxMDEwOnZvPTEyMDA7YnJlYWs7Y2FzZSAzMjc2ODp2bz0xZTQ7YnJlYWs7Y2FzZSAzMjc2OTp2bz0xMjUyfXRlKGNyLmNvZGVwYWdlPXZvKSxWYT0hMDticmVhaztjYXNlIlJSVGFiSWQiOmNyLnJydGFiaWQ9anI7YnJlYWs7Y2FzZSJX''@;'; put 'put ''aW5Qcm90ZWN0Ijpjci53aW5sb2NrZWQ9anI7YnJlYWs7Y2FzZSJSZWZyZXNoQWxsIjpjYXNlIkNhbGNDb3VudCI6Y2FzZSJDYWxjRGVsdGEiOmNhc2UiQ2FsY0l0ZXIiOmNhc2UiQ2FsY01vZGUiOmNhc2UiQ2FsY1ByZWNpc2lvbiI6Y2FzZSJDYWxjU2F2ZVJlY2FsYyI6WC5vcHRzW0hpXT1q''@;'; put 'put ''cjticmVhaztjYXNlIkNhbGNSZWZNb2RlIjpjci5DYWxjUmVmTW9kZT1qcjticmVhaztjYXNlIkZvcmNlRnVsbENhbGN1bGF0aW9uIjpYLm9wdHMuRnVsbENhbGM9anI7YnJlYWs7Y2FzZSJXc0Jvb2wiOmpyLmZEaWFsb2cmJih4ZVsiIXR5cGUiXT0iZGlhbG9nIiksanIuZkJlbG93fHwoKHhl''@;'; put 'put ''WyIhb3V0bGluZSJdfHwoeGVbIiFvdXRsaW5lIl09e30pKS5hYm92ZT0hMCksanIuZlJpZ2h0fHwoKHhlWyIhb3V0bGluZSJdfHwoeGVbIiFvdXRsaW5lIl09e30pKS5sZWZ0PSEwKTticmVhaztjYXNlIlhGIjpqci5mb250PUdyLkZvbnRzW2pyLmlmbnQ8ND9qci5pZm50OmpyLmlmbnQtMV0s''@;'; put 'put ''TXIucHVzaChqcik7YnJlYWs7Y2FzZSJTdXBCb29rIjpOci5wdXNoKFtqcl0pLE5yW05yLmxlbmd0aC0xXS5YVEk9W107YnJlYWs7Y2FzZSJFeHRlcm5OYW1lIjpOcltOci5sZW5ndGgtMV0ucHVzaChqcik7YnJlYWs7Y2FzZSJMYmwiOiQwPXtOYW1lOmpyLk5hbWUsUmVmOlcxKGpyLnJnY2Us''@;'; put 'put ''WmUsbnVsbCxOcixjcil9LGpyLml0YWI+MCYmKCQwLlNoZWV0PWpyLml0YWItMSksTnIubmFtZXMucHVzaCgkMCksTnJbMF18fChOclswXT1bXSxOclswXS5YVEk9W10pLE5yW05yLmxlbmd0aC0xXS5wdXNoKGpyKSwiX3hsbm0uX0ZpbHRlckRhdGFiYXNlIj09anIuTmFtZSYmanIuaXRhYj4w''@;'; put 'put ''JiZqci5yZ2NlJiZqci5yZ2NlWzBdJiZqci5yZ2NlWzBdWzBdJiYiUHRnQXJlYTNkIj09anIucmdjZVswXVswXVswXSYmKG9hW2pyLml0YWItMV09e3JlZjpmYShqci5yZ2NlWzBdWzBdWzFdWzJdKX0pO2JyZWFrO2Nhc2UiRXh0ZXJuQ291bnQiOmNyLkV4dGVybkNvdW50PWpyO2JyZWFrO2Nh''@;'; put 'put ''c2UiRXh0ZXJuU2hlZXQiOjA9PU5yLmxlbmd0aCYmKE5yWzBdPVtdLE5yWzBdLlhUST1bXSksTnJbTnIubGVuZ3RoLTFdLlhUST1OcltOci5sZW5ndGgtMV0uWFRJLmNvbmNhdChqciksTnIuWFRJPU5yLlhUSS5jb25jYXQoanIpO2JyZWFrO2Nhc2UiTmFtZUNtdCI6aWYoY3IuYmlmZjw4KWJy''@;'; put 'put ''ZWFrO251bGwhPSQwJiYoJDAuQ29tbWVudD1qclsxXSk7YnJlYWs7Y2FzZSJQcm90ZWN0Ijp4ZVsiIXByb3RlY3QiXT1qcjticmVhaztjYXNlIlBhc3N3b3JkIjowIT09anImJmNyLldURiYmY29uc29sZS5lcnJvcigiUGFzc3dvcmQgdmVyaWZpZXI6ICIranIpO2JyZWFrO2Nhc2UiQm91bmRT''@;'; put 'put ''aGVldDgiOkZlW2pyLnBvc109anIsY3Iuc25hbWVzLnB1c2goanIubmFtZSk7YnJlYWs7Y2FzZSJFT0YiOmlmKHhlWyIhZ3JpZGxpbmVzIl09IWRpfHxkaS5ncmlkLGRpPW51bGwsLS1OMClicmVhaztpZihaZS5lKXtpZihaZS5lLnI+MCYmWmUuZS5jPjApe2lmKFplLmUuci0tLFplLmUuYy0t''@;'; put 'put ''LHhlWyIhcmVmIl09ZmEoWmUpLGllLnNoZWV0Um93cyYmaWUuc2hlZXRSb3dzPD1aZS5lLnIpe3ZhciB4bz1aZS5lLnI7WmUuZS5yPWllLnNoZWV0Um93cy0xLHhlWyIhZnVsbHJlZiJdPXhlWyIhcmVmIl0seGVbIiFyZWYiXT1mYShaZSksWmUuZS5yPXhvfVplLmUucisrLFplLmUuYysrfVVp''@;'; put 'put ''Lmxlbmd0aD4wJiYoeGVbIiFtZXJnZXMiXT1VaSksdG8ubGVuZ3RoPjAmJmFUKHRvLHhlKSxBMC5sZW5ndGg+MCYmKHhlWyIhY29scyJdPUEwKSxiaS5sZW5ndGg+MCYmKHhlWyIhcm93cyJdPWJpKSx5ci5TaGVldHMucHVzaChhcil9IiI9PT1NdD94dD14ZTp3ZVtNdF09eGUseGU9aWUuZGVu''@;'; put 'put ''c2U/W106e307YnJlYWs7Y2FzZSJCT0YiOmlmKDg9PT1jci5iaWZmJiYoY3IuYmlmZj17OToyLDUyMTozLDEwMzM6NH1bd2FdfHx7NTEyOjIsNzY4OjMsMTAyNDo0LDEyODA6NSwxNTM2OjgsMjoyLDc6Mn1banIuQklGRlZlcl18fDgpLGNyLmJpZmZndWVzcz0wPT1qci5CSUZGVmVyLDA9PWpy''@;'; put 'put ''LkJJRkZWZXImJjQwOTY9PWpyLmR0JiYoY3IuYmlmZj01LFZhPSEwLHRlKGNyLmNvZGVwYWdlPTI4NTkxKSksOD09Y3IuYmlmZiYmMD09anIuQklGRlZlciYmMTY9PWpyLmR0JiYoY3IuYmlmZj0yKSxOMCsrKWJyZWFrO2lmKHhlPWllLmRlbnNlP1tdOnt9LGNyLmJpZmY8OCYmIVZhJiYoVmE9''@;'; put 'put ''ITAsdGUoY3IuY29kZXBhZ2U9aWUuY29kZXBhZ2V8fDEyNTIpKSxjci5iaWZmPDV8fDA9PWpyLkJJRkZWZXImJjQwOTY9PWpyLmR0KXsiIj09PU10JiYoTXQ9IlNoZWV0MSIpLFplPXtzOntyOjAsYzowfSxlOntyOjAsYzowfX07dmFyICRpPXtwb3M6SC5sLWFvLG5hbWU6TXR9O0ZlWyRpLnBv''@;'; put 'put ''c109JGksY3Iuc25hbWVzLnB1c2goTXQpfWVsc2UgTXQ9KEZlW2pvXXx8e25hbWU6IiJ9KS5uYW1lOzMyPT1qci5kdCYmKHhlWyIhdHlwZSJdPSJjaGFydCIpLDY0PT1qci5kdCYmKHhlWyIhdHlwZSJdPSJtYWNybyIpLFVpPVtdLHRvPVtdLGNyLmFycmF5Zj1Ubj1bXSxBMD1bXSxiaT1bXSxo''@;'; put 'put ''aT0hMSxhcj17SGlkZGVuOihGZVtqb118fHtoczowfSkuaHMsbmFtZTpNdH07YnJlYWs7Y2FzZSJOdW1iZXIiOmNhc2UiQklGRjJOVU0iOmNhc2UiQklGRjJJTlQiOiJjaGFydCI9PXhlWyIhdHlwZSJdJiYoaWUuZGVuc2U/KHhlW2pyLnJdfHxbXSlbanIuY106eGVbWTAoe2M6anIuYyxyOmpy''@;'; put 'put ''LnJ9KV0pJiYrK2pyLmMsT249e2l4ZmU6anIuaXhmZSxYRjpNcltqci5peGZlXXx8e30sdjpqci52YWwsdDoibiJ9LHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxWZChPbixpZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixpZSk7YnJlYWs7Y2FzZSJCb29s''@;'; put 'put ''RXJyIjpPbj17aXhmZTpqci5peGZlLFhGOk1yW2pyLml4ZmVdLHY6anIudmFsLHQ6anIudH0sdDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10pLFZkKE9uLGllLFgub3B0cy5EYXRlMTkwNCksb2koe2M6anIuYyxyOmpyLnJ9LE9uLGllKTticmVhaztjYXNlIlJLIjpPbj17aXhmZTpqci5p''@;'; put 'put ''eGZlLFhGOk1yW2pyLml4ZmVdLHY6anIucmtudW0sdDoibiJ9LHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxWZChPbixpZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixpZSk7YnJlYWs7Y2FzZSJNdWxSayI6Zm9yKHZhciBsMj1qci5jO2wyPD1qci5DOysr''@;'; put 'put ''bDIpe3ZhciBNYz1qci5ya3JlY1tsMi1qci5jXVswXTtPbj17aXhmZTpNYyxYRjpNcltNY10sdjpqci5ya3JlY1tsMi1qci5jXVsxXSx0OiJuIn0sdDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10pLFZkKE9uLGllLFgub3B0cy5EYXRlMTkwNCksb2koe2M6bDIscjpqci5yfSxPbixpZSl9''@;'; put 'put ''YnJlYWs7Y2FzZSJGb3JtdWxhIjppZigiU3RyaW5nIj09anIudmFsKXtqZT1qcjticmVha31pZigoT249TTUoanIudmFsLGpyLmNlbGwuaXhmZSxqci50dCkpLlhGPU1yW09uLml4ZmVdLGllLmNlbGxGb3JtdWxhKXt2YXIgcDI9anIuZm9ybXVsYTtpZihwMiYmcDJbMF0mJnAyWzBdWzBdJiYi''@;'; put 'put ''UHRnRXhwIj09cDJbMF1bMF1bMF0pe3ZhciBycj1wMlswXVswXVsxXVswXSxJcj1wMlswXVswXVsxXVsxXSxacj1ZMCh7cjpycixjOklyfSk7UG5bWnJdP09uLmY9IiIrVzEoanIuZm9ybXVsYSxaZSxqci5jZWxsLE5yLGNyKTpPbi5GPSgoaWUuZGVuc2U/KHhlW3JyXXx8W10pW0lyXTp4ZVta''@;'; put 'put ''cl0pfHx7fSkuRn1lbHNlIE9uLmY9IiIrVzEoanIuZm9ybXVsYSxaZSxqci5jZWxsLE5yLGNyKX10MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksVmQoT24saWUsWC5vcHRzLkRhdGUxOTA0KSxvaShqci5jZWxsLE9uLGllKSxqZT1qcjticmVhaztjYXNlIlN0cmluZyI6aWYoIWplKXRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigiU3RyaW5nIHJlY29yZCBleHBlY3RzIEZvcm11bGEiKTtqZS52YWw9anIsKE9uPU01KGpyLGplLmNlbGwuaXhmZSwicyIpKS5YRj1NcltPbi5peGZlXSxpZS5jZWxsRm9ybXVsYSYmKE9uLmY9IiIrVzEoamUuZm9ybXVsYSxaZSxqZS5jZWxsLE5yLGNyKSksdDA+MCYm''@;'; put 'put ''KE9uLno9aW9bT24uaXhmZT4+OCY2M10pLFZkKE9uLGllLFgub3B0cy5EYXRlMTkwNCksb2koamUuY2VsbCxPbixpZSksamU9bnVsbDticmVhaztjYXNlIkFycmF5IjpUbi5wdXNoKGpyKTt2YXIgcWk9WTAoanJbMF0ucyk7aWYobm49aWUuZGVuc2U/KHhlW2pyWzBdLnMucl18fFtdKVtqclsw''@;'; put 'put ''XS5zLmNdOnhlW3FpXSxpZS5jZWxsRm9ybXVsYSYmbm4pe2lmKCFqZXx8IXFpfHwhbm4pYnJlYWs7bm4uZj0iIitXMShqclsxXSxaZSxqclswXSxOcixjciksbm4uRj1mYShqclswXSl9YnJlYWs7Y2FzZSJTaHJGbWxhIjppZighaWUuY2VsbEZvcm11bGEpYnJlYWs7aWYoVXQpe2lmKCFqZSli''@;'; put 'put ''cmVhaztQbltZMChqZS5jZWxsKV09anJbMF0sKChubj1pZS5kZW5zZT8oeGVbamUuY2VsbC5yXXx8W10pW2plLmNlbGwuY106eGVbWTAoamUuY2VsbCldKXx8e30pLmY9IiIrVzEoanJbMF0sWmUsUnQsTnIsY3IpfWJyZWFrO2Nhc2UiTGFiZWxTc3QiOk9uPU01KFllW2pyLmlzc3RdLnQsanIu''@;'; put 'put ''aXhmZSwicyIpLFllW2pyLmlzc3RdLmgmJihPbi5oPVllW2pyLmlzc3RdLmgpLE9uLlhGPU1yW09uLml4ZmVdLHQwPjAmJihPbi56PWlvW09uLml4ZmU+PjgmNjNdKSxWZChPbixpZSxYLm9wdHMuRGF0ZTE5MDQpLG9pKHtjOmpyLmMscjpqci5yfSxPbixpZSksWWVbanIuaXNzdF0uUiYmKE9u''@;'; put 'put ''LlI9WWVbanIuaXNzdF0uUi5tYXAoZnVuY3Rpb24ocG8pe3ZhciBwMD1sbihwbyk7cmV0dXJuIHBvLnM9PUdyLkZvbnRzWzBdJiYocDAucz1Pbi5zKSxwMH0pKTticmVhaztjYXNlIkJsYW5rIjppZS5zaGVldFN0dWJzJiYoT249e2l4ZmU6anIuaXhmZSxYRjpNcltqci5peGZlXSx0OiJ6In0s''@;'; put 'put ''dDA+MCYmKE9uLno9aW9bT24uaXhmZT4+OCY2M10pLFZkKE9uLGllLFgub3B0cy5EYXRlMTkwNCksb2koe2M6anIuYyxyOmpyLnJ9LE9uLGllKSk7YnJlYWs7Y2FzZSJNdWxCbGFuayI6aWYoaWUuc2hlZXRTdHVicylmb3IodmFyIHJpPWpyLmM7cmk8PWpyLkM7KytyaSl7dmFyIHIwPWpyLml4''@;'; put 'put ''ZmVbcmktanIuY107T249e2l4ZmU6cjAsWEY6TXJbcjBdLHQ6InoifSx0MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksVmQoT24saWUsWC5vcHRzLkRhdGUxOTA0KSxvaSh7YzpyaSxyOmpyLnJ9LE9uLGllKX1icmVhaztjYXNlIlJTdHJpbmciOmNhc2UiTGFiZWwiOmNhc2UiQklGRjJT''@;'; put 'put ''VFIiOihPbj1NNShqci52YWwsanIuaXhmZSwicyIpKS5YRj1NcltPbi5peGZlXSx0MD4wJiYoT24uej1pb1tPbi5peGZlPj44JjYzXSksVmQoT24saWUsWC5vcHRzLkRhdGUxOTA0KSxvaSh7Yzpqci5jLHI6anIucn0sT24saWUpO2JyZWFrO2Nhc2UiRGltZW5zaW9ucyI6MT09PU4wJiYoWmU9''@;'; put 'put ''anIpO2JyZWFrO2Nhc2UiU1NUIjooWWU9anIpLmZvckVhY2goZnVuY3Rpb24ocG8pe3BvLl9SPyhwby5fUlswXSYmcG8uX1JbMF0uaWR4PjAmJnBvLl9SLnVuc2hpZnQoe2lkeDowLGlmbnQ6MH0pLHBvLlI9cG8uX1IubWFwKGZ1bmN0aW9uKHAwLFFsKXtyZXR1cm57dDoicyIsdjpwby50LnNs''@;'; put 'put ''aWNlKHAwLmlkeCwocG8uX1JbUWwrMV18fHt9KS5pZHgpLHM6R3IuRm9udHNbcDAuaWZudDw0P3AwLmlmbnQ6cDAuaWZudC0xXX19KSxpZS5jZWxsSFRNTCYmKHBvLmg9aG0ocG8uUikpKTppZS5jZWxsSFRNTCYmKHBvLmg9bjAocG8udCkpLGRlbGV0ZSBwby5fUn0pO2JyZWFrO2Nhc2UiRm9y''@;'; put 'put ''bWF0IjppZig0PT1jci5iaWZmKXtpb1t0MCsrXT1qclsxXTtmb3IodmFyIHBpPTA7cGk8dDArMTYzJiZGLl90YWJsZVtwaV0hPWpyWzFdOysrcGkpO3BpPj0xNjMmJkYubG9hZChqclsxXSx0MCsxNjMpfWVsc2UgRi5sb2FkKGpyWzFdLGpyWzBdKTticmVhaztjYXNlIkJJRkYyRk9STUFUIjpp''@;'; put 'put ''b1t0MCsrXT1qcjtmb3IodmFyIGUwPTA7ZTA8dDArMTYzJiZGLl90YWJsZVtlMF0hPWpyOysrZTApO2UwPj0xNjMmJkYubG9hZChqcix0MCsxNjMpO2JyZWFrO2Nhc2UiTWVyZ2VDZWxscyI6VWk9VWkuY29uY2F0KGpyKTticmVhaztjYXNlIk9iaiI6dG9banIuY21vWzBdXT1jci5sYXN0b2Jq''@;'; put 'put ''PWpyO2JyZWFrO2Nhc2UiVHhPIjpjci5sYXN0b2JqLlR4Tz1qcjticmVhaztjYXNlIkltRGF0YSI6Y3IubGFzdG9iai5JbURhdGE9anI7YnJlYWs7Y2FzZSJITGluayI6Zm9yKHp0PWpyWzBdLnMucjt6dDw9anJbMF0uZS5yOysrenQpZm9yKER0PWpyWzBdLnMuYztEdDw9anJbMF0uZS5jOysr''@;'; put 'put ''RHQpKG5uPWllLmRlbnNlPyh4ZVt6dF18fFtdKVtEdF06eGVbWTAoe2M6RHQscjp6dH0pXSkmJihubi5sPWpyWzFdKTticmVhaztjYXNlIkhMaW5rVG9vbHRpcCI6Zm9yKHp0PWpyWzBdLnMucjt6dDw9anJbMF0uZS5yOysrenQpZm9yKER0PWpyWzBdLnMuYztEdDw9anJbMF0uZS5jOysrRHQp''@;'; put 'put ''KG5uPWllLmRlbnNlPyh4ZVt6dF18fFtdKVtEdF06eGVbWTAoe2M6RHQscjp6dH0pXSkmJm5uLmwmJihubi5sLlRvb2x0aXA9anJbMV0pO2JyZWFrO2Nhc2UiTm90ZSI6aWYoY3IuYmlmZjw9NSYmY3IuYmlmZj49MilicmVhaztubj1pZS5kZW5zZT8oeGVbanJbMF0ucl18fFtdKVtqclswXS5j''@;'; put 'put ''XTp4ZVtZMChqclswXSldO3ZhciBPbz10b1tqclsyXV07bm58fChpZS5kZW5zZT8oeGVbanJbMF0ucl18fCh4ZVtqclswXS5yXT1bXSksbm49eGVbanJbMF0ucl1banJbMF0uY109e3Q6InoifSk6bm49eGVbWTAoanJbMF0pXT17dDoieiJ9LFplLmUucj1NYXRoLm1heChaZS5lLnIsanJbMF0u''@;'; put 'put ''ciksWmUucy5yPU1hdGgubWluKFplLnMucixqclswXS5yKSxaZS5lLmM9TWF0aC5tYXgoWmUuZS5jLGpyWzBdLmMpLFplLnMuYz1NYXRoLm1pbihaZS5zLmMsanJbMF0uYykpLG5uLmN8fChubi5jPVtdKSxubi5jLnB1c2goe2E6anJbMV0sdDpPby5UeE8udH0pO2JyZWFrO2RlZmF1bHQ6c3dp''@;'; put 'put ''dGNoKHgwLm4pe2Nhc2UiQ2xydENsaWVudCI6Y2FzZSJIZWFkZXIiOmNhc2UiRm9vdGVyIjpjYXNlIkhDZW50ZXIiOmNhc2UiVkNlbnRlciI6Y2FzZSJQbHMiOmNhc2UiR0NXIjpjYXNlIkxIUmVjb3JkIjpjYXNlIkRCQ2VsbCI6Y2FzZSJFbnRFeFUyIjpjYXNlIlN4VmlldyI6Y2FzZSJTeHZk''@;'; put 'put ''IjpjYXNlIlNYVkkiOmNhc2UiU1hWREV4IjpjYXNlIlN4SXZkIjpjYXNlIlNYU3RyaW5nIjpjYXNlIlN5bmMiOmNhc2UiQWRkaW4iOmNhc2UiU1hESSI6Y2FzZSJTWExJIjpjYXNlIlNYRXgiOmNhc2UiUXNpU1hUYWciOmNhc2UiRmVhdCI6Y2FzZSJGZWF0SGRyIjpjYXNlIkZlYXRIZHIxMSI6''@;'; put 'put ''Y2FzZSJGZWF0dXJlMTEiOmNhc2UiRmVhdHVyZTEyIjpjYXNlIkxpc3QxMiI6Y2FzZSJSZWNhbGNJZCI6Y2FzZSJEeEdDb2wiOmNhc2UiRmJpIjpjYXNlIkZiaTIiOmNhc2UiR2VsRnJhbWUiOmNhc2UiWEZDUkMiOmNhc2UiU3R5bGUiOmNhc2UiU3R5bGVFeHQiOmNhc2UiU2NlbmFyaW9Qcm90''@;'; put 'put ''ZWN0IjpjYXNlIk9ialByb3RlY3QiOmNhc2UiQ29uZEZtdDEyIjpjYXNlIlRhYmxlIjpjYXNlIlRhYmxlU3R5bGVzIjpjYXNlIlRhYmxlU3R5bGUiOmNhc2UiVGFibGVTdHlsZUVsZW1lbnQiOmNhc2UiU1hTdHJlYW1JRCI6Y2FzZSJTWFZTIjpjYXNlIkRDb25SZWYiOmNhc2UiU1hBZGRsIjpj''@;'; put 'put ''YXNlIkRDb25CaW4iOmNhc2UiRENvbk5hbWUiOmNhc2UiU1hQSSI6Y2FzZSJTeEZvcm1hdCI6Y2FzZSJTeFNlbGVjdCI6Y2FzZSJTeFJ1bGUiOmNhc2UiU3hGaWx0IjpjYXNlIlN4SXRtIjpjYXNlIlN4RFhGIjpjYXNlIlNjZW5NYW4iOmNhc2UiRENvbiI6Y2FzZSJDZWxsV2F0Y2giOmNhc2Ui''@;'; put 'put ''UHJpbnRSb3dDb2wiOmNhc2UiUHJpbnRHcmlkIjpjYXNlIlByaW50U2l6ZSI6Y2FzZSJYQ1QiOmNhc2UiQ1JOIjpjYXNlIlNjbCI6Y2FzZSJTaGVldEV4dCI6Y2FzZSJTaGVldEV4dE9wdGlvbmFsIjpjYXNlIk9iTm9NYWNyb3MiOmNhc2UiT2JQcm9qIjpjYXNlIkdVSURUeXBlTGliIjpjYXNl''@;'; put 'put ''IldPcHQiOmNhc2UiUGhvbmV0aWNJbmZvIjpjYXNlIk9sZU9iamVjdFNpemUiOmNhc2UiRFhGIjpjYXNlIkRYRk4iOmNhc2UiRFhGTjEyIjpjYXNlIkRYRk4xMkxpc3QiOmNhc2UiRFhGTjEyTm9DQiI6Y2FzZSJEdiI6Y2FzZSJEVmFsIjpjYXNlIkJSQUkiOmNhc2UiU2VyaWVzIjpjYXNlIlNl''@;'; put 'put ''cmllc1RleHQiOmNhc2UiRENvbm4iOmNhc2UiRGJPclBhcmFtUXJ5IjpjYXNlIkRCUXVlcnlFeHQiOmNhc2UiT2xlRGJDb25uIjpjYXNlIkV4dFN0cmluZyI6Y2FzZSJJRm10UmVjb3JkIjpjYXNlIkNvbmRGbXQiOmNhc2UiQ0YiOmNhc2UiQ0YxMiI6Y2FzZSJDRkV4IjpjYXNlIkV4Y2VsOUZp''@;'; put 'put ''bGUiOmNhc2UiVW5pdHMiOmNhc2UiSW50ZXJmYWNlSGRyIjpjYXNlIk1tcyI6Y2FzZSJJbnRlcmZhY2VFbmQiOmNhc2UiRFNGIjpjYXNlIkJ1aWx0SW5Gbkdyb3VwQ291bnQiOmNhc2UiV2luZG93MSI6Y2FzZSJIaWRlT2JqIjpjYXNlIkdyaWRTZXQiOmNhc2UiR3V0cyI6Y2FzZSJVc2VyQlZp''@;'; put 'put ''ZXciOmNhc2UiVXNlclNWaWV3QmVnaW4iOmNhc2UiVXNlclNWaWV3RW5kIjpjYXNlIkRlZkNvbFdpZHRoIjpjYXNlIkRlZmF1bHRSb3dIZWlnaHQiOmJyZWFrO2Nhc2UiWEZFeHQiOkxiKE1yW2pyLml4ZmVdLGpyLmV4dCk7YnJlYWs7Y2FzZSJDb2xJbmZvIjppZighY3IuY2VsbFN0eWxlcyli''@;'; put 'put ''cmVhaztmb3IoO2pyLmU+PWpyLnM7KUEwW2pyLmUtLV09e3dpZHRoOmpyLncvMjU2LGxldmVsOmpyLmxldmVsfHwwLGhpZGRlbjohISgxJmpyLmZsYWdzKX0saGl8fChoaT0hMCkseWMoQTBbanIuZSsxXSk7YnJlYWs7Y2FzZSJSb3ciOnZhciBrMD17fTtudWxsIT1qci5sZXZlbCYmKGJpW2py''@;'; put 'put ''LnJdPWswLGswLmxldmVsPWpyLmxldmVsKSxqci5oaWRkZW4mJihiaVtqci5yXT1rMCxrMC5oaWRkZW49ITApLGpyLmhwdCYmKGJpW2pyLnJdPWswLGswLmhwdD1qci5ocHQsazAuaHB4PUFmKGpyLmhwdCkpLGpyLml4ZmUmJihiaVtqci5yXT1rMCxxcihPbj17aXhmZTpqci5peGZlLFhGOk1y''@;'; put 'put ''W2pyLml4ZmVdfHx7fSx2OjAsdDoibiJ9LGllKSxrMC5zPU9uLnMpO2JyZWFrO2Nhc2UiTGVmdE1hcmdpbiI6Y2FzZSJSaWdodE1hcmdpbiI6Y2FzZSJUb3BNYXJnaW4iOmNhc2UiQm90dG9tTWFyZ2luIjp4ZVsiIW1hcmdpbnMiXXx8UmQoeGVbIiFtYXJnaW5zIl09e30pLHhlWyIhbWFyZ2lu''@;'; put 'put ''cyJdW0hpLnNsaWNlKDAsLTYpLnRvTG93ZXJDYXNlKCldPWpyO2JyZWFrO2Nhc2UiU2VsZWN0aW9uIjp4ZVsiIXNlbCJdPWpyO2JyZWFrO2Nhc2UiU2V0dXAiOnhlWyIhbWFyZ2lucyJdfHxSZCh4ZVsiIW1hcmdpbnMiXT17fSkseGVbIiFtYXJnaW5zIl0uaGVhZGVyPWpyLmhlYWRlcix4ZVsi''@;'; put 'put ''IW1hcmdpbnMiXS5mb290ZXI9anIuZm9vdGVyO2JyZWFrO2Nhc2UiV2luZG93MiI6anIuUlRMJiYoeXIuVmlld3NbMF0uUlRMPSEwKSxkaT1qcjticmVhaztjYXNlIkNvdW50cnkiOlluPWpyO2JyZWFrO2Nhc2UiRm9udCI6anIuaWN2JiZ6cihqci5pY3YpJiYoanIuY29sb3I9e3JnYjpiMyh6''@;'; put 'put ''cihqci5pY3YpKX0pLGRlbGV0ZSBqci5pY3YsMD09R3IuRm9udHMubGVuZ3RoJiZTMyhqciksR3IuRm9udHMucHVzaChqcik7YnJlYWs7Y2FzZSJQYWxldHRlIjphaT1qcjticmVhaztjYXNlIlRoZW1lIjp2MD1qcjticmVhaztjYXNlIkNvZGVOYW1lIjpNdD9hci5Db2RlTmFtZT1qcnx8YXIu''@;'; put 'put ''bmFtZTp5ci5XQlByb3BzLkNvZGVOYW1lPWpyfHwiVGhpc1dvcmtib29rIjticmVhaztjYXNlIlBhbmUiOihkaXx8e30pLmZyb3plbiYmKHhlWyIhZnJlZXplIl09WTAoe3I6anIueXx8MCxjOmpyLnh8fDB9KSk7YnJlYWs7ZGVmYXVsdDpzd2l0Y2goeDAubil7Y2FzZSJEYXQiOmNhc2UiQmVn''@;'; put 'put ''aW4iOmNhc2UiRW5kIjpjYXNlIlN0YXJ0QmxvY2siOmNhc2UiRW5kQmxvY2siOmNhc2UiRnJhbWUiOmNhc2UiQXJlYSI6Y2FzZSJBeGlzIjpjYXNlIkF4aXNMaW5lIjpjYXNlIlRpY2siOmNhc2UiQXhlc1VzZWQiOmNhc2UiQ3J0TGF5b3V0MTIiOmNhc2UiQ3J0TGF5b3V0MTJBIjpjYXNlIkNy''@;'; put 'put ''dExpbmsiOmNhc2UiQ3J0TGluZSI6Y2FzZSJDcnRNbEZydCI6Y2FzZSJDcnRNbEZydENvbnRpbnVlIjpjYXNlIkxpbmVGb3JtYXQiOmNhc2UiQXJlYUZvcm1hdCI6Y2FzZSJDaGFydCI6Y2FzZSJDaGFydDNkIjpjYXNlIkNoYXJ0M0RCYXJTaGFwZSI6Y2FzZSJDaGFydEZvcm1hdCI6Y2FzZSJD''@;'; put 'put ''aGFydEZydEluZm8iOmNhc2UiUGxvdEFyZWEiOmNhc2UiUGxvdEdyb3d0aCI6Y2FzZSJTZXJpZXNMaXN0IjpjYXNlIlNlclBhcmVudCI6Y2FzZSJTZXJBdXhUcmVuZCI6Y2FzZSJEYXRhRm9ybWF0IjpjYXNlIlNlclRvQ3J0IjpjYXNlIkZvbnRYIjpjYXNlIkNhdFNlclJhbmdlIjpjYXNlIkF4''@;'; put 'put ''Y0V4dCI6Y2FzZSJTZXJGbXQiOmNhc2UiU2h0UHJvcHMiOmNhc2UiRGVmYXVsdFRleHQiOmNhc2UiVGV4dCI6Y2FzZSJDYXRMYWIiOmNhc2UiRGF0YUxhYkV4dENvbnRlbnRzIjpjYXNlIkxlZ2VuZCI6Y2FzZSJMZWdlbmRFeGNlcHRpb24iOmNhc2UiUGllIjpjYXNlIlNjYXR0ZXIiOmNhc2Ui''@;'; put 'put ''UGllRm9ybWF0IjpjYXNlIk1hcmtlckZvcm1hdCI6Y2FzZSJTdGFydE9iamVjdCI6Y2FzZSJFbmRPYmplY3QiOmNhc2UiQWxSdW5zIjpjYXNlIk9iamVjdExpbmsiOmNhc2UiU0lJbmRleCI6Y2FzZSJBdHRhY2hlZExhYmVsIjpjYXNlIllNdWx0IjpjYXNlIkxpbmUiOmNhc2UiQmFyIjpjYXNl''@;'; put 'put ''IlN1cmYiOmNhc2UiQXhpc1BhcmVudCI6Y2FzZSJQb3MiOmNhc2UiVmFsdWVSYW5nZSI6Y2FzZSJTWFZpZXdFeDkiOmNhc2UiU1hWaWV3TGluayI6Y2FzZSJQaXZvdENoYXJ0Qml0cyI6Y2FzZSJTQmFzZVJlZiI6Y2FzZSJUZXh0UHJvcHNTdHJlYW0iOmNhc2UiTG5FeHQiOmNhc2UiTWtyRXh0''@;'; put 'put ''IjpjYXNlIkNydENvb3B0IjpjYXNlIlFzaSI6Y2FzZSJRc2lmIjpjYXNlIlFzaXIiOmNhc2UiUXNpU1hUYWciOmNhc2UiVHh0UXJ5IjpjYXNlIkZpbHRlck1vZGUiOmNhc2UiQXV0b0ZpbHRlciI6Y2FzZSJBdXRvRmlsdGVySW5mbyI6Y2FzZSJBdXRvRmlsdGVyMTIiOmNhc2UiRHJvcERvd25P''@;'; put 'put ''YmpJZHMiOmNhc2UiU29ydCI6Y2FzZSJTb3J0RGF0YSI6Y2FzZSJTaGFwZVByb3BzU3RyZWFtIjpjYXNlIk1zb0RyYXdpbmciOmNhc2UiTXNvRHJhd2luZ0dyb3VwIjpjYXNlIk1zb0RyYXdpbmdTZWxlY3Rpb24iOmNhc2UiV2ViUHViIjpjYXNlIkF1dG9XZWJQdWIiOmNhc2UiSGVhZGVyRm9v''@;'; put 'put ''dGVyIjpjYXNlIkhGUGljdHVyZSI6Y2FzZSJQTFYiOmNhc2UiSG9yaXpvbnRhbFBhZ2VCcmVha3MiOmNhc2UiVmVydGljYWxQYWdlQnJlYWtzIjpjYXNlIkJhY2t1cCI6Y2FzZSJDb21wcmVzc1BpY3R1cmVzIjpjYXNlIkNvbXBhdDEyIjpjYXNlIkNvbnRpbnVlIjpjYXNlIkNvbnRpbnVlRnJ0''@;'; put 'put ''MTIiOmNhc2UiRnJ0Rm9udExpc3QiOmNhc2UiRnJ0V3JhcHBlciI6YnJlYWs7ZGVmYXVsdDpzd2l0Y2goeDAubil7Y2FzZSJUYWJJZENvbmYiOmNhc2UiUmFkYXIiOmNhc2UiUmFkYXJBcmVhIjpjYXNlIkRyb3BCYXIiOmNhc2UiSW50bCI6Y2FzZSJDb29yZExpc3QiOmNhc2UiU2VyQXV4RXJy''@;'; put 'put ''QmFyIjpjYXNlIkJJRkYyRk9OVENMUiI6Y2FzZSJCSUZGMkZNVENOVCI6Y2FzZSJCSUZGMkZPTlRYVFJBIjpjYXNlIkJJRkYyWEYiOmNhc2UiQklGRjNYRiI6Y2FzZSJCSUZGNFhGIjpjYXNlIkJJRkYyWEZJTkRFWCI6Y2FzZSJCSUZGNEZNVENOVCI6Y2FzZSJCSUZGMlJPVyI6Y2FzZSJCSUZG''@;'; put 'put ''MldJTkRPVzIiOmNhc2UiU0NFTkFSSU8iOmNhc2UiRENvbkJpbiI6Y2FzZSJQaWNGIjpjYXNlIkRhdGFMYWJFeHQiOmNhc2UiTGVsIjpjYXNlIkJvcFBvcCI6Y2FzZSJCb3BQb3BDdXN0b20iOmNhc2UiUmVhbFRpbWVEYXRhIjpjYXNlIk5hbWUiOmNhc2UiTEhOR3JhcGgiOmNhc2UiRm5Hcm91''@;'; put 'put ''cE5hbWUiOmNhc2UiQWRkTWVudSI6Y2FzZSJMUHIiOmNhc2UiTGlzdE9iaiI6Y2FzZSJMaXN0RmllbGQiOmNhc2UiUlJTb3J0IjpjYXNlIkJpZ05hbWUiOmNhc2UiVG9vbGJhckhkciI6Y2FzZSJUb29sYmFyRW5kIjpjYXNlIkRERU9iak5hbWUiOmNhc2UiRlJUQXJjaElkJCI6YnJlYWs7ZGVm''@;'; put 'put ''YXVsdDppZihpZS5XVEYpdGhyb3ciVW5yZWNvZ25pemVkIFJlY29yZCAiK3gwLm59fX19fWVsc2UgSC5sKz1hbyxjciYmY3IuZW5jJiZjci5lbmMuaW5zaXR1JiZjci5lbmMuaW5zaXR1KFRlKHtsZW5ndGg6YW99KSl9cmV0dXJuIFguU2hlZXROYW1lcz1vbihGZSkuc29ydChmdW5jdGlvbihw''@;'; put 'put ''byxwMCl7cmV0dXJuIE51bWJlcihwbyktTnVtYmVyKHAwKX0pLm1hcChmdW5jdGlvbihwbyl7cmV0dXJuIEZlW3BvXS5uYW1lfSksaWUuYm9va1NoZWV0c3x8KFguU2hlZXRzPXdlKSwhWC5TaGVldE5hbWVzLmxlbmd0aCYmeHRbIiFyZWYiXT8oWC5TaGVldE5hbWVzLnB1c2goIlNoZWV0MSIp''@;'; put 'put ''LFguU2hlZXRzJiYoWC5TaGVldHMuU2hlZXQxPXh0KSk6WC5QcmVhbWJsZT14dCxYLlNoZWV0cyYmb2EuZm9yRWFjaChmdW5jdGlvbihwbyxwMCl7WC5TaGVldHNbWC5TaGVldE5hbWVzW3AwXV1bIiFhdXRvZmlsdGVyIl09cG99KSxYLlN0cmluZ3M9WWUsWC5TU0Y9Ri5nZXRfdGFibGUoKSxj''@;'; put 'put ''ci5lbmMmJihYLkVuY3J5cHRpb249Y3IuZW5jKSx2MCYmKFguVGhlbWVzPXYwKSxYLk1ldGFkYXRhPXt9LHZvaWQgMCE9PVluJiYoWC5NZXRhZGF0YS5Db3VudHJ5PVluKSxOci5uYW1lcy5sZW5ndGg+MCYmKHlyLk5hbWVzPU5yLm5hbWVzKSxYLldvcmtib29rPXlyLFh9KHdlLmNvbnRlbnQs''@;'; put 'put ''aWUpO2Vsc2UgaWYoKEZlPW10LmZpbmQoSCwiUGVyZmVjdE9mZmljZV9NQUlOIikpJiZGZS5jb250ZW50KXhlPUcxLnRvX3dvcmtib29rKEZlLmNvbnRlbnQsKGllLnR5cGU9WmUsaWUpKTtlbHNle2lmKCEoRmU9bXQuZmluZChILCJOYXRpdmVDb250ZW50X01BSU4iKSl8fCFGZS5jb250ZW50''@;'; put 'put ''KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgV29ya2Jvb2sgc3RyZWFtIik7eGU9RzEudG9fd29ya2Jvb2soRmUuY29udGVudCwoaWUudHlwZT1aZSxpZSkpfWllLmJvb2tWQkEmJkguRnVsbFBhdGhzJiZtdC5maW5kKEgsIi9fVkJBX1BST0pFQ1RfQ1VSL1ZCQS9kaXIiKSYmKHhlLnZi''@;'; put 'put ''YXJhdz1mdW5jdGlvbiBRYihIKXt2YXIgaWU9bXQudXRpbHMuY2ZiX25ldyh7cm9vdDoiUiJ9KTtyZXR1cm4gSC5GdWxsUGF0aHMuZm9yRWFjaChmdW5jdGlvbihYLHdlKXtpZigiLyIhPT1YLnNsaWNlKC0xKSYmWC5tYXRjaCgvX1ZCQV9QUk9KRUNUX0NVUi8pKXt2YXIgeGU9WC5yZXBsYWNl''@;'; put 'put ''KC9eW15cL10qLywiUiIpLnJlcGxhY2UoL1wvX1ZCQV9QUk9KRUNUX0NVUlx1MDAwMCovLCIiKTttdC51dGlscy5jZmJfYWRkKGllLHhlLEguRmlsZUluZGV4W3dlXS5jb250ZW50KX19KSxtdC53cml0ZShpZSl9KEgpKX12YXIgamU9e307cmV0dXJuIEguRnVsbFBhdGhzJiZmdW5jdGlvbiBs''@;'; put 'put ''VChILGllLFgpe3ZhciB3ZT1tdC5maW5kKEgsIiFEb2N1bWVudFN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKHdlJiZ3ZS5zaXplPjApdHJ5e3ZhciB4ZT13ZCh3ZSxyYixFNV9EU0kpO2Zvcih2YXIgRmUgaW4geGUpaWVbRmVdPXhlW0ZlXX1jYXRjaChNdCl7aWYoWC5XVEYpdGhyb3cgTXR9dmFy''@;'; put 'put ''IFplPW10LmZpbmQoSCwiIVN1bW1hcnlJbmZvcm1hdGlvbiIpO2lmKFplJiZaZS5zaXplPjApdHJ5e3ZhciBqZT13ZChaZSxVcCxFNV9TSSk7Zm9yKHZhciBZZSBpbiBqZSludWxsPT1pZVtZZV0mJihpZVtZZV09amVbWWVdKX1jYXRjaChNdCl7aWYoWC5XVEYpdGhyb3cgTXR9aWUuSGVhZGlu''@;'; put 'put ''Z1BhaXJzJiZpZS5UaXRsZXNPZlBhcnRzJiYoeXMoaWUuSGVhZGluZ1BhaXJzLGllLlRpdGxlc09mUGFydHMsaWUsWCksZGVsZXRlIGllLkhlYWRpbmdQYWlycyxkZWxldGUgaWUuVGl0bGVzT2ZQYXJ0cyl9KEgsamUsaWUpLHhlLlByb3BzPXhlLkN1c3Rwcm9wcz1qZSxpZS5ib29rRmlsZXMm''@;'; put 'put ''Jih4ZS5jZmI9SCkseGV9dmFyIHg1PXswOntuOiJCcnRSb3dIZHIiLGY6ZnVuY3Rpb24gcUIoSCxpZSl7dmFyIFg9e30sd2U9SC5sK2llO1gucj1ILnJlYWRfc2hpZnQoNCksSC5sKz00O3ZhciB4ZT1ILnJlYWRfc2hpZnQoMik7SC5sKz0xO3ZhciBGZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJu''@;'; put 'put ''IEgubD13ZSw3JkZlJiYoWC5sZXZlbD03JkZlKSwxNiZGZSYmKFguaGlkZGVuPSEwKSwzMiZGZSYmKFguaHB0PXhlLzIwKSxYfX0sMTp7bjoiQnJ0Q2VsbEJsYW5rIixmOmZ1bmN0aW9uIGlQKEgpe3JldHVyblt2aChIKV19fSwyOntuOiJCcnRDZWxsUmsiLGY6ZnVuY3Rpb24gd3goSCl7cmV0''@;'; put 'put ''dXJuW3ZoKEgpLFdnKEgpLCJuIl19fSwzOntuOiJCcnRDZWxsRXJyb3IiLGY6ZnVuY3Rpb24gWGYoSCl7cmV0dXJuW3ZoKEgpLEgucmVhZF9zaGlmdCgxKSwiZSJdfX0sNDp7bjoiQnJ0Q2VsbEJvb2wiLGY6ZnVuY3Rpb24gTm0oSCl7cmV0dXJuW3ZoKEgpLEgucmVhZF9zaGlmdCgxKSwiYiJd''@;'; put 'put ''fX0sNTp7bjoiQnJ0Q2VsbFJlYWwiLGY6ZnVuY3Rpb24gTzMoSCl7cmV0dXJuW3ZoKEgpLEkyKEgpLCJuIl19fSw2OntuOiJCcnRDZWxsU3QiLGY6ZnVuY3Rpb24gX3goSCl7cmV0dXJuW3ZoKEgpLHh1KEgpLCJzdHIiXX19LDc6e246IkJydENlbGxJc3N0IixmOmZ1bmN0aW9uIEtmKEgpe3Jl''@;'; put 'put ''dHVyblt2aChIKSxILnJlYWRfc2hpZnQoNCksInMiXX19LDg6e246IkJydEZtbGFTdHJpbmciLGY6ZnVuY3Rpb24gcm4oSCxpZSxYKXt2YXIgd2U9SC5sK2llLHhlPXZoKEgpO3hlLnI9WFsiIXJvdyJdO3ZhciBaZT1beGUseHUoSCksInN0ciJdO2lmKFguY2VsbEZvcm11bGEpe0gubCs9Mjt2''@;'; put 'put ''YXIgamU9c18oSCx3ZS1ILmwsWCk7WmVbM109VzEoamUsbnVsbCx4ZSxYLnN1cGJvb2tzLFgpfWVsc2UgSC5sPXdlO3JldHVybiBaZX19LDk6e246IkJydEZtbGFOdW0iLGY6ZnVuY3Rpb24gX0EoSCxpZSxYKXt2YXIgd2U9SC5sK2llLHhlPXZoKEgpO3hlLnI9WFsiIXJvdyJdO3ZhciBaZT1b''@;'; put 'put ''eGUsSTIoSCksIm4iXTtpZihYLmNlbGxGb3JtdWxhKXtILmwrPTI7dmFyIGplPXNfKEgsd2UtSC5sLFgpO1plWzNdPVcxKGplLG51bGwseGUsWC5zdXBib29rcyxYKX1lbHNlIEgubD13ZTtyZXR1cm4gWmV9fSwxMDp7bjoiQnJ0Rm1sYUJvb2wiLGY6ZnVuY3Rpb24gZHUoSCxpZSxYKXt2YXIg''@;'; put 'put ''d2U9SC5sK2llLHhlPXZoKEgpO3hlLnI9WFsiIXJvdyJdO3ZhciBaZT1beGUsSC5yZWFkX3NoaWZ0KDEpLCJiIl07aWYoWC5jZWxsRm9ybXVsYSl7SC5sKz0yO3ZhciBqZT1zXyhILHdlLUgubCxYKTtaZVszXT1XMShqZSxudWxsLHhlLFguc3VwYm9va3MsWCl9ZWxzZSBILmw9d2U7cmV0dXJu''@;'; put 'put ''IFplfX0sMTE6e246IkJydEZtbGFFcnJvciIsZjpmdW5jdGlvbiBfYyhILGllLFgpe3ZhciB3ZT1ILmwraWUseGU9dmgoSCk7eGUucj1YWyIhcm93Il07dmFyIFplPVt4ZSxILnJlYWRfc2hpZnQoMSksImUiXTtpZihYLmNlbGxGb3JtdWxhKXtILmwrPTI7dmFyIGplPXNfKEgsd2UtSC5sLFgp''@;'; put 'put ''O1plWzNdPVcxKGplLG51bGwseGUsWC5zdXBib29rcyxYKX1lbHNlIEgubD13ZTtyZXR1cm4gWmV9fSwxMjp7bjoiQnJ0U2hvcnRCbGFuayIsZjpmdW5jdGlvbiBvUChIKXtyZXR1cm5bTTQoSCldfX0sMTM6e246IkJydFNob3J0UmsiLGY6ZnVuY3Rpb24gYngoSCl7cmV0dXJuW000KEgpLFdn''@;'; put 'put ''KEgpLCJuIl19fSwxNDp7bjoiQnJ0U2hvcnRFcnJvciIsZjpmdW5jdGlvbiBnNShIKXtyZXR1cm5bTTQoSCksSC5yZWFkX3NoaWZ0KDEpLCJlIl19fSwxNTp7bjoiQnJ0U2hvcnRCb29sIixmOmZ1bmN0aW9uIHg2KEgpe3JldHVybltNNChIKSxILnJlYWRfc2hpZnQoMSksImIiXX19LDE2Ontu''@;'; put 'put ''OiJCcnRTaG9ydFJlYWwiLGY6VTR9LDE3OntuOiJCcnRTaG9ydFN0IixmOmZ1bmN0aW9uIEN4KEgpe3JldHVybltNNChIKSx4dShIKSwic3RyIl19fSwxODp7bjoiQnJ0U2hvcnRJc3N0IixmOmZ1bmN0aW9uIFQ2KEgpe3JldHVybltNNChIKSxILnJlYWRfc2hpZnQoNCksInMiXX19LDE5Ontu''@;'; put 'put ''OiJCcnRTU1RJdGVtIixmOmtzfSwyMDp7bjoiQnJ0UENESU1pc3NpbmcifSwyMTp7bjoiQnJ0UENESU51bWJlciJ9LDIyOntuOiJCcnRQQ0RJQm9vbGVhbiJ9LDIzOntuOiJCcnRQQ0RJRXJyb3IifSwyNDp7bjoiQnJ0UENESVN0cmluZyJ9LDI1OntuOiJCcnRQQ0RJRGF0ZXRpbWUifSwyNjp7''@;'; put 'put ''bjoiQnJ0UENESUluZGV4In0sMjc6e246IkJydFBDRElBTWlzc2luZyJ9LDI4OntuOiJCcnRQQ0RJQU51bWJlciJ9LDI5OntuOiJCcnRQQ0RJQUJvb2xlYW4ifSwzMDp7bjoiQnJ0UENESUFFcnJvciJ9LDMxOntuOiJCcnRQQ0RJQVN0cmluZyJ9LDMyOntuOiJCcnRQQ0RJQURhdGV0aW1lIn0s''@;'; put 'put ''MzM6e246IkJydFBDUlJlY29yZCJ9LDM0OntuOiJCcnRQQ1JSZWNvcmREdCJ9LDM1OntuOiJCcnRGUlRCZWdpbiJ9LDM2OntuOiJCcnRGUlRFbmQifSwzNzp7bjoiQnJ0QUNCZWdpbiJ9LDM4OntuOiJCcnRBQ0VuZCJ9LDM5OntuOiJCcnROYW1lIixmOmZ1bmN0aW9uIFl0KEgsaWUsWCl7dmFy''@;'; put 'put ''IHdlPUgubCtpZTtILmwrPTQsSC5sKz0xO3ZhciB4ZT1ILnJlYWRfc2hpZnQoNCksRmU9bDkoSCksWmU9Z0coSCwwLFgpLGplPXloKEgpO0gubD13ZTt2YXIgWWU9e05hbWU6RmUsUHRnOlplfTtyZXR1cm4geGU8MjY4NDM1NDU1JiYoWWUuU2hlZXQ9eGUpLGplJiYoWWUuQ29tbWVudD1qZSks''@;'; put 'put ''WWV9fSw0MDp7bjoiQnJ0SW5kZXhSb3dCbG9jayJ9LDQyOntuOiJCcnRJbmRleEJsb2NrIn0sNDM6e246IkJydEZvbnQiLGY6ZnVuY3Rpb24gdEcoSCxpZSxYKXt2YXIgd2U9e307d2Uuc3o9SC5yZWFkX3NoaWZ0KDIpLzIwO3ZhciB4ZT10YihIKTtzd2l0Y2goeGUuZkJvbGQmJih3ZS5ib2xk''@;'; put 'put ''PTEpLHhlLmZJdGFsaWMmJih3ZS5pdGFsaWM9MSkseGUuZlVuZGVybGluZSYmKHdlLnVuZGVybGluZT0xKSx4ZS5mQ29uZGVuc2UmJih3ZS5jb25kZW5zZT0xKSx4ZS5mRXh0ZW5kJiYod2UuZXh0ZW5kPTEpLHhlLmZTaGFkb3cmJih3ZS5zaGFkb3c9MSkseGUuZk91dGxpbmUmJih3ZS5vdXRs''@;'; put 'put ''aW5lPTEpLHhlLmZTdHJpa2VvdXQmJih3ZS5zdHJpa2U9MSksNzAwPT09SC5yZWFkX3NoaWZ0KDIpJiYod2UuYm9sZD0xKSxILnJlYWRfc2hpZnQoMikpe2Nhc2UgMTp3ZS52YWxpZ249InN1cGVyIjticmVhaztjYXNlIDI6d2UudmFsaWduPSJzdWIifXZhciBaZT1ILnJlYWRfc2hpZnQoMSk7''@;'; put 'put ''MCE9WmUmJih3ZS51bmRlcmxpbmU9WmUpO3ZhciBqZT1ILnJlYWRfc2hpZnQoMSk7amU+MCYmKHdlLmZhbWlseT1qZSk7dmFyIFllPUgucmVhZF9zaGlmdCgxKTtzd2l0Y2goWWU+MCYmKHdlLmNoYXJzZXQ9WWUpLEgubCsrLHdlLmNvbG9yPVVnKEgpLEgucmVhZF9zaGlmdCgxKSl7Y2FzZSAx''@;'; put 'put ''OndlLnNjaGVtZT0ibWFqb3IiO2JyZWFrO2Nhc2UgMjp3ZS5zY2hlbWU9Im1pbm9yIn1yZXR1cm4gd2UubmFtZT14dShIKSx3ZX19LDQ0OntuOiJCcnRGbXQiLGY6ZnVuY3Rpb24gSzgoSCxpZSl7cmV0dXJuW0gucmVhZF9zaGlmdCgyKSx4dShIKV19fSw0NTp7bjoiQnJ0RmlsbCIsZjpmdW5j''@;'; put 'put ''dGlvbiBLUihILGllKXt2YXIgWD1ILmwraWUsd2U9e30seGU9SC5yZWFkX3NoaWZ0KDQpO2lmKDQwIT14ZSl7d2UucGF0dGVyblR5cGU9WFJbeGVdO3ZhciBGZT1VZyhIKTs2NCE9RmUuaW5kZXgmJih3ZS5mZ0NvbG9yPUZlKTt2YXIgWmU9VWcoSCk7NjUhPVplLmluZGV4JiYod2UuYmdDb2xv''@;'; put 'put ''cj1aZSl9ZWxzZXtILmwrPTE2LEgucmVhZF9zaGlmdCg0KSxJMihIKSxJMihIKSxJMihIKSxJMihIKSxJMihIKTtmb3IodmFyIGplPUgucmVhZF9zaGlmdCg0KSxZZT1bXSxNdD0wO010PGplOysrTXQpWWUucHVzaChuRyhIKSl9cmV0dXJuIEgubD1YLHdlfX0sNDY6e246IkJydEJvcmRlciIs''@;'; put 'put ''ZjpmdW5jdGlvbiAkUihIKXt2YXIgaWU9e307SC5yZWFkX3NoaWZ0KDEpO3ZhciBYPWc2KEgpOyJub25lIiE9WC5zdHlsZSYmKGllLnRvcD1YKTt2YXIgd2U9ZzYoSCk7Im5vbmUiIT13ZS5zdHlsZSYmKGllLmJvdHRvbT13ZSk7dmFyIHhlPWc2KEgpOyJub25lIiE9eGUuc3R5bGUmJihpZS5s''@;'; put 'put ''ZWZ0PXhlKTt2YXIgRmU9ZzYoSCk7Im5vbmUiIT1GZS5zdHlsZSYmKGllLnJpZ2h0PUZlKTt2YXIgWmU9ZzYoSCk7cmV0dXJuIm5vbmUiIT1aZS5zdHlsZSYmKGllLmRpYWc9WmUpLGllfX0sNDc6e246IkJydFhGIixmOmZ1bmN0aW9uIEY0KEgsaWUpe3ZhciBYPUgubCtpZSx3ZT17fSx4ZT1I''@;'; put 'put ''LnJlYWRfc2hpZnQoMiksRmU9SC5yZWFkX3NoaWZ0KDIpLFplPUgucmVhZF9zaGlmdCgyKSxqZT1ILnJlYWRfc2hpZnQoMiksWWU9SC5yZWFkX3NoaWZ0KDIpLE10PUgucmVhZF9zaGlmdCgxKTtILnJlYWRfc2hpZnQoMSk7dmFyIHh0PUgucmVhZF9zaGlmdCgyKSxSdD1ILnJlYWRfc2hpZnQo''@;'; put 'put ''MSk7SC5sPVgsd2UueGZJZD14ZSx3ZS5udW1GbXRJZD1GZSx3ZS5mb250SWQ9WmUsd2UuZmlsbElkPWplLHdlLmJvcmRlcklkPVllLDEmUnQmJjAhPXdlLm51bUZtdElkJiYod2UuYXBwbHlOdW1iZXJGb3JtYXQ9ITApLHdlLmFsaWdubWVudD17fSxNdD4wJiYod2UuYWxpZ25tZW50LnRleHRS''@;'; put 'put ''b3RhdGlvbj1NdCk7dmFyIFV0PSExO3JldHVybiA3Jnh0JiYoVXQ9ITAsd2UuYWxpZ25tZW50Lmhvcml6b250YWw9UDlbNyZ4dF0pLHdlLmFsaWdubWVudC52ZXJ0aWNhbD15bVt4dD4+PjMmN10sd2UuYWxpZ25tZW50LnZlcnRpY2FsJiYoVXQ9ITApLHh0Pj4+NiYxJiYod2UuYWxpZ25tZW50''@;'; put 'put ''LndyYXBUZXh0PSEwKSx4dD4+PjgmMSYmKHdlLmFsaWdubWVudC5zaHJpbmtUb0ZpdD0hMCksVXR8fGRlbGV0ZSB3ZS5hbGlnbm1lbnQsNCZSdCYmVXQmJih3ZS5hcHBseUFsaWdubWVudD0hMCksd2V9fSw0ODp7bjoiQnJ0U3R5bGUifSw0OTp7bjoiQnJ0Q2VsbE1ldGEifSw1MDp7bjoiQnJ0''@;'; put 'put ''VmFsdWVNZXRhIn0sNTE6e246IkJydE1kYiJ9LDUyOntuOiJCcnRCZWdpbkZtZCJ9LDUzOntuOiJCcnRFbmRGbWQifSw1NDp7bjoiQnJ0QmVnaW5NZHgifSw1NTp7bjoiQnJ0RW5kTWR4In0sNTY6e246IkJydEJlZ2luTWR4VHVwbGUifSw1Nzp7bjoiQnJ0RW5kTWR4VHVwbGUifSw1ODp7bjoi''@;'; put 'put ''QnJ0TWR4TWJySXN0ciJ9LDU5OntuOiJCcnRTdHIifSw2MDp7bjoiQnJ0Q29sSW5mbyIsZjp2M30sNjI6e246IkJydENlbGxSU3RyaW5nIn0sNjM6e246IkJydENhbGNDaGFpbkl0ZW0kIixmOmZ1bmN0aW9uIEE2KEgpe3ZhciBpZT17fTtpZS5pPUgucmVhZF9zaGlmdCg0KTt2YXIgWD17fTtY''@;'; put 'put ''LnI9SC5yZWFkX3NoaWZ0KDQpLFguYz1ILnJlYWRfc2hpZnQoNCksaWUucj1ZMChYKTt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiAyJndlJiYoaWUubD0iMSIpLDgmd2UmJihpZS5hPSIxIiksaWV9fSw2NDp7bjoiQnJ0RFZhbCIsZjpmdW5jdGlvbiBRdChILGllLFgpe3ZhciB3ZT1I''@;'; put 'put ''LmwraWUseGU9SC5yZWFkX3NoaWZ0KDQpLEZlPXU5KEgpLFplPXloKEgpLGplPXloKEgpLFllPXloKEgpLE10PXloKEgpLHh0PVpCKEgsaWUsWCksUnQ9SC5sPHdlP1pCKEgsaWUsWCk6bnVsbCxVdD0xNSZ4ZSxubj17dDpqbVtVdF0sc3FyZng6RmUsczpbWmUsamUsWWUsTXRdfTtyZXR1cm4g''@;'; put 'put ''eHQmJihubi5mMT14dCksUnQmJihubi5mMj1SdCksMD09VXR8fDM9PVV0fHw3PT1VdHx8KG5uLm9wPUNBW3hlPj4yMCYxNV0pLG5ufX0sNjU6e246IkJydFN4dmNlbGxOdW0ifSw2Njp7bjoiQnJ0U3h2Y2VsbFN0ciJ9LDY3OntuOiJCcnRTeHZjZWxsQm9vbCJ9LDY4OntuOiJCcnRTeHZjZWxs''@;'; put 'put ''RXJyIn0sNjk6e246IkJydFN4dmNlbGxEYXRlIn0sNzA6e246IkJydFN4dmNlbGxOaWwifSwxMjg6e246IkJydEZpbGVWZXJzaW9uIn0sMTI5OntuOiJCcnRCZWdpblNoZWV0In0sMTMwOntuOiJCcnRFbmRTaGVldCJ9LDEzMTp7bjoiQnJ0QmVnaW5Cb29rIixmOkNzLHA6MH0sMTMyOntuOiJC''@;'; put 'put ''cnRFbmRCb29rIn0sMTMzOntuOiJCcnRCZWdpbldzVmlld3MifSwxMzQ6e246IkJydEVuZFdzVmlld3MifSwxMzU6e246IkJydEJlZ2luQm9va1ZpZXdzIn0sMTM2OntuOiJCcnRFbmRCb29rVmlld3MifSwxMzc6e246IkJydEJlZ2luV3NWaWV3IixmOmZ1bmN0aW9uIEhfKEgpe3ZhciBpZT1I''@;'; put 'put ''LnJlYWRfc2hpZnQoMik7cmV0dXJuIEgubCs9Mjgse1JUTDozMiZpZSxncmlkOiEhKDQmaWUpfX19LDEzODp7bjoiQnJ0RW5kV3NWaWV3In0sMTM5OntuOiJCcnRCZWdpbkNzVmlld3MifSwxNDA6e246IkJydEVuZENzVmlld3MifSwxNDE6e246IkJydEJlZ2luQ3NWaWV3In0sMTQyOntuOiJC''@;'; put 'put ''cnRFbmRDc1ZpZXcifSwxNDM6e246IkJydEJlZ2luQnVuZGxlU2hzIn0sMTQ0OntuOiJCcnRFbmRCdW5kbGVTaHMifSwxNDU6e246IkJydEJlZ2luU2hlZXREYXRhIn0sMTQ2OntuOiJCcnRFbmRTaGVldERhdGEifSwxNDc6e246IkJydFdzUHJvcCIsZjpmdW5jdGlvbiBQZChILGllKXt2YXIg''@;'; put 'put ''WD17fSx3ZT1IW0gubF07cmV0dXJuKytILmwsWC5hYm92ZT0hKDY0JndlKSxYLmxlZnQ9ISgxMjgmd2UpLEgubCs9MTgsWC5uYW1lPWViKEgsaWUtMTkpLFh9fSwxNDg6e246IkJydFdzRGltIixmOlc0LHA6MTZ9LDE1MTp7bjoiQnJ0UGFuZSIsZjpmdW5jdGlvbiBudChILGllKXt2YXIgWD1I''@;'; put 'put ''LmwraWU7STIoSCksSTIoSCk7dmFyIHdlPUgucmVhZF9zaGlmdCg0LCJpIikseGU9SC5yZWFkX3NoaWZ0KDQsImkiKTtpZihILnJlYWRfc2hpZnQoNCksSC5yZWFkX3NoaWZ0KDEpLFghPUgubCl0aHJvdyBuZXcgRXJyb3IoIkJhZCBCcnRQYW5lOiAiK1grIiAhPSAiK0gubCk7cmV0dXJuW1kw''@;'; put 'put ''KHtyOndlLGM6eGV9KV19fSwxNTI6e246IkJydFNlbCIsZjpmdW5jdGlvbiBDcihILGllKXtyZXR1cm4gSC5yZWFkX3NoaWZ0KDQpLHtjZWxsOlkwKHtyOkgucmVhZF9zaGlmdCg0KSxjOkgucmVhZF9zaGlmdCg0KX0pfX19LDE1Mzp7bjoiQnJ0V2JQcm9wIixmOmZ1bmN0aW9uIGtBKEgsaWUp''@;'; put 'put ''e3ZhciBYPXt9LHdlPUgucmVhZF9zaGlmdCg0KTtYLmRlZmF1bHRUaGVtZVZlcnNpb249SC5yZWFkX3NoaWZ0KDQpO3ZhciB4ZT1pZT44P3h1KEgpOiIiO3JldHVybiB4ZS5sZW5ndGg+MCYmKFguQ29kZU5hbWU9eGUpLFguYXV0b0NvbXByZXNzUGljdHVyZXM9ISEoNjU1MzYmd2UpLFguYmFj''@;'; put 'put ''a3VwRmlsZT0hISg2NCZ3ZSksWC5jaGVja0NvbXBhdGliaWxpdHk9ISEoNDA5NiZ3ZSksWC5kYXRlMTkwND0hISgxJndlKSxYLmZpbHRlclByaXZhY3k9ISEoOCZ3ZSksWC5oaWRlUGl2b3RGaWVsZExpc3Q9ISEoMTAyNCZ3ZSksWC5wcm9tcHRlZFNvbHV0aW9ucz0hISgxNiZ3ZSksWC5wdWJs''@;'; put 'put ''aXNoSXRlbXM9ISEoMjA0OCZ3ZSksWC5yZWZyZXNoQWxsQ29ubmVjdGlvbnM9ISEoMjYyMTQ0JndlKSxYLnNhdmVFeHRlcm5hbExpbmtWYWx1ZXM9ISEoMTI4JndlKSxYLnNob3dCb3JkZXJVbnNlbGVjdGVkVGFibGVzPSEhKDQmd2UpLFguc2hvd0lua0Fubm90YXRpb249ISEoMzImd2UpLFgu''@;'; put 'put ''c2hvd09iamVjdHM9WyJhbGwiLCJwbGFjZWhvbGRlcnMiLCJub25lIl1bd2U+PjEzJjNdLFguc2hvd1Bpdm90Q2hhcnRGaWx0ZXI9ISEoMzI3Njgmd2UpLFgudXBkYXRlTGlua3M9WyJ1c2VyU2V0IiwibmV2ZXIiLCJhbHdheXMiXVt3ZT4+OCYzXSxYfX0sMTU0OntuOiJCcnRXYkZhY3RvaWQi''@;'; put 'put ''fSwxNTU6e246IkJydEZpbGVSZWNvdmVyIn0sMTU2OntuOiJCcnRCdW5kbGVTaCIsZjpmdW5jdGlvbiBHXyhILGllKXt2YXIgWD17fTtyZXR1cm4gWC5IaWRkZW49SC5yZWFkX3NoaWZ0KDQpLFguaVRhYklEPUgucmVhZF9zaGlmdCg0KSxYLnN0clJlbElEPUdnKEgsaWUtOCksWC5uYW1lPXh1''@;'; put 'put ''KEgpLFh9fSwxNTc6e246IkJydENhbGNQcm9wIn0sMTU4OntuOiJCcnRCb29rVmlldyJ9LDE1OTp7bjoiQnJ0QmVnaW5Tc3QiLGY6ZnVuY3Rpb24gbkUoSCl7cmV0dXJuW0gucmVhZF9zaGlmdCg0KSxILnJlYWRfc2hpZnQoNCldfX0sMTYwOntuOiJCcnRFbmRTc3QifSwxNjE6e246IkJydEJl''@;'; put 'put ''Z2luQUZpbHRlciIsZjp3aH0sMTYyOntuOiJCcnRFbmRBRmlsdGVyIn0sMTYzOntuOiJCcnRCZWdpbkZpbHRlckNvbHVtbiJ9LDE2NDp7bjoiQnJ0RW5kRmlsdGVyQ29sdW1uIn0sMTY1OntuOiJCcnRCZWdpbkZpbHRlcnMifSwxNjY6e246IkJydEVuZEZpbHRlcnMifSwxNjc6e246IkJydEZp''@;'; put 'put ''bHRlciJ9LDE2ODp7bjoiQnJ0Q29sb3JGaWx0ZXIifSwxNjk6e246IkJydEljb25GaWx0ZXIifSwxNzA6e246IkJydFRvcDEwRmlsdGVyIn0sMTcxOntuOiJCcnREeW5hbWljRmlsdGVyIn0sMTcyOntuOiJCcnRCZWdpbkN1c3RvbUZpbHRlcnMifSwxNzM6e246IkJydEVuZEN1c3RvbUZpbHRl''@;'; put 'put ''cnMifSwxNzQ6e246IkJydEN1c3RvbUZpbHRlciJ9LDE3NTp7bjoiQnJ0QUZpbHRlckRhdGVHcm91cEl0ZW0ifSwxNzY6e246IkJydE1lcmdlQ2VsbCIsZjpreH0sMTc3OntuOiJCcnRCZWdpbk1lcmdlQ2VsbHMifSwxNzg6e246IkJydEVuZE1lcmdlQ2VsbHMifSwxNzk6e246IkJydEJlZ2lu''@;'; put 'put ''UGl2b3RDYWNoZURlZiJ9LDE4MDp7bjoiQnJ0RW5kUGl2b3RDYWNoZURlZiJ9LDE4MTp7bjoiQnJ0QmVnaW5QQ0RGaWVsZHMifSwxODI6e246IkJydEVuZFBDREZpZWxkcyJ9LDE4Mzp7bjoiQnJ0QmVnaW5QQ0RGaWVsZCJ9LDE4NDp7bjoiQnJ0RW5kUENERmllbGQifSwxODU6e246IkJydEJl''@;'; put 'put ''Z2luUENEU291cmNlIn0sMTg2OntuOiJCcnRFbmRQQ0RTb3VyY2UifSwxODc6e246IkJydEJlZ2luUENEU1JhbmdlIn0sMTg4OntuOiJCcnRFbmRQQ0RTUmFuZ2UifSwxODk6e246IkJydEJlZ2luUENERkF0YmwifSwxOTA6e246IkJydEVuZFBDREZBdGJsIn0sMTkxOntuOiJCcnRCZWdpblBD''@;'; put 'put ''RElSdW4ifSwxOTI6e246IkJydEVuZFBDRElSdW4ifSwxOTM6e246IkJydEJlZ2luUGl2b3RDYWNoZVJlY29yZHMifSwxOTQ6e246IkJydEVuZFBpdm90Q2FjaGVSZWNvcmRzIn0sMTk1OntuOiJCcnRCZWdpblBDREhpZXJhcmNoaWVzIn0sMTk2OntuOiJCcnRFbmRQQ0RIaWVyYXJjaGllcyJ9''@;'; put 'put ''LDE5Nzp7bjoiQnJ0QmVnaW5QQ0RIaWVyYXJjaHkifSwxOTg6e246IkJydEVuZFBDREhpZXJhcmNoeSJ9LDE5OTp7bjoiQnJ0QmVnaW5QQ0RIRmllbGRzVXNhZ2UifSwyMDA6e246IkJydEVuZFBDREhGaWVsZHNVc2FnZSJ9LDIwMTp7bjoiQnJ0QmVnaW5FeHRDb25uZWN0aW9uIn0sMjAyOntu''@;'; put 'put ''OiJCcnRFbmRFeHRDb25uZWN0aW9uIn0sMjAzOntuOiJCcnRCZWdpbkVDRGJQcm9wcyJ9LDIwNDp7bjoiQnJ0RW5kRUNEYlByb3BzIn0sMjA1OntuOiJCcnRCZWdpbkVDT2xhcFByb3BzIn0sMjA2OntuOiJCcnRFbmRFQ09sYXBQcm9wcyJ9LDIwNzp7bjoiQnJ0QmVnaW5QQ0RTQ29uc29sIn0s''@;'; put 'put ''MjA4OntuOiJCcnRFbmRQQ0RTQ29uc29sIn0sMjA5OntuOiJCcnRCZWdpblBDRFNDUGFnZXMifSwyMTA6e246IkJydEVuZFBDRFNDUGFnZXMifSwyMTE6e246IkJydEJlZ2luUENEU0NQYWdlIn0sMjEyOntuOiJCcnRFbmRQQ0RTQ1BhZ2UifSwyMTM6e246IkJydEJlZ2luUENEU0NQSXRlbSJ9''@;'; put 'put ''LDIxNDp7bjoiQnJ0RW5kUENEU0NQSXRlbSJ9LDIxNTp7bjoiQnJ0QmVnaW5QQ0RTQ1NldHMifSwyMTY6e246IkJydEVuZFBDRFNDU2V0cyJ9LDIxNzp7bjoiQnJ0QmVnaW5QQ0RTQ1NldCJ9LDIxODp7bjoiQnJ0RW5kUENEU0NTZXQifSwyMTk6e246IkJydEJlZ2luUENERkdyb3VwIn0sMjIw''@;'; put 'put ''OntuOiJCcnRFbmRQQ0RGR3JvdXAifSwyMjE6e246IkJydEJlZ2luUENERkdJdGVtcyJ9LDIyMjp7bjoiQnJ0RW5kUENERkdJdGVtcyJ9LDIyMzp7bjoiQnJ0QmVnaW5QQ0RGR1JhbmdlIn0sMjI0OntuOiJCcnRFbmRQQ0RGR1JhbmdlIn0sMjI1OntuOiJCcnRCZWdpblBDREZHRGlzY3JldGUi''@;'; put 'put ''fSwyMjY6e246IkJydEVuZFBDREZHRGlzY3JldGUifSwyMjc6e246IkJydEJlZ2luUENEU0RUdXBsZUNhY2hlIn0sMjI4OntuOiJCcnRFbmRQQ0RTRFR1cGxlQ2FjaGUifSwyMjk6e246IkJydEJlZ2luUENEU0RUQ0VudHJpZXMifSwyMzA6e246IkJydEVuZFBDRFNEVENFbnRyaWVzIn0sMjMx''@;'; put 'put ''OntuOiJCcnRCZWdpblBDRFNEVENFTWVtYmVycyJ9LDIzMjp7bjoiQnJ0RW5kUENEU0RUQ0VNZW1iZXJzIn0sMjMzOntuOiJCcnRCZWdpblBDRFNEVENFTWVtYmVyIn0sMjM0OntuOiJCcnRFbmRQQ0RTRFRDRU1lbWJlciJ9LDIzNTp7bjoiQnJ0QmVnaW5QQ0RTRFRDUXVlcmllcyJ9LDIzNjp7''@;'; put 'put ''bjoiQnJ0RW5kUENEU0RUQ1F1ZXJpZXMifSwyMzc6e246IkJydEJlZ2luUENEU0RUQ1F1ZXJ5In0sMjM4OntuOiJCcnRFbmRQQ0RTRFRDUXVlcnkifSwyMzk6e246IkJydEJlZ2luUENEU0RUQ1NldHMifSwyNDA6e246IkJydEVuZFBDRFNEVENTZXRzIn0sMjQxOntuOiJCcnRCZWdpblBDRFNE''@;'; put 'put ''VENTZXQifSwyNDI6e246IkJydEVuZFBDRFNEVENTZXQifSwyNDM6e246IkJydEJlZ2luUENEQ2FsY0l0ZW1zIn0sMjQ0OntuOiJCcnRFbmRQQ0RDYWxjSXRlbXMifSwyNDU6e246IkJydEJlZ2luUENEQ2FsY0l0ZW0ifSwyNDY6e246IkJydEVuZFBDRENhbGNJdGVtIn0sMjQ3OntuOiJCcnRC''@;'; put 'put ''ZWdpblBSdWxlIn0sMjQ4OntuOiJCcnRFbmRQUnVsZSJ9LDI0OTp7bjoiQnJ0QmVnaW5QUkZpbHRlcnMifSwyNTA6e246IkJydEVuZFBSRmlsdGVycyJ9LDI1MTp7bjoiQnJ0QmVnaW5QUkZpbHRlciJ9LDI1Mjp7bjoiQnJ0RW5kUFJGaWx0ZXIifSwyNTM6e246IkJydEJlZ2luUE5hbWVzIn0s''@;'; put 'put ''MjU0OntuOiJCcnRFbmRQTmFtZXMifSwyNTU6e246IkJydEJlZ2luUE5hbWUifSwyNTY6e246IkJydEVuZFBOYW1lIn0sMjU3OntuOiJCcnRCZWdpblBOUGFpcnMifSwyNTg6e246IkJydEVuZFBOUGFpcnMifSwyNTk6e246IkJydEJlZ2luUE5QYWlyIn0sMjYwOntuOiJCcnRFbmRQTlBhaXIi''@;'; put 'put ''fSwyNjE6e246IkJydEJlZ2luRUNXZWJQcm9wcyJ9LDI2Mjp7bjoiQnJ0RW5kRUNXZWJQcm9wcyJ9LDI2Mzp7bjoiQnJ0QmVnaW5FY1dwVGFibGVzIn0sMjY0OntuOiJCcnRFbmRFQ1dQVGFibGVzIn0sMjY1OntuOiJCcnRCZWdpbkVDUGFyYW1zIn0sMjY2OntuOiJCcnRFbmRFQ1BhcmFtcyJ9''@;'; put 'put ''LDI2Nzp7bjoiQnJ0QmVnaW5FQ1BhcmFtIn0sMjY4OntuOiJCcnRFbmRFQ1BhcmFtIn0sMjY5OntuOiJCcnRCZWdpblBDREtQSXMifSwyNzA6e246IkJydEVuZFBDREtQSXMifSwyNzE6e246IkJydEJlZ2luUENES1BJIn0sMjcyOntuOiJCcnRFbmRQQ0RLUEkifSwyNzM6e246IkJydEJlZ2lu''@;'; put 'put ''RGltcyJ9LDI3NDp7bjoiQnJ0RW5kRGltcyJ9LDI3NTp7bjoiQnJ0QmVnaW5EaW0ifSwyNzY6e246IkJydEVuZERpbSJ9LDI3Nzp7bjoiQnJ0SW5kZXhQYXJ0RW5kIn0sMjc4OntuOiJCcnRCZWdpblN0eWxlU2hlZXQifSwyNzk6e246IkJydEVuZFN0eWxlU2hlZXQifSwyODA6e246IkJydEJl''@;'; put 'put ''Z2luU1hWaWV3In0sMjgxOntuOiJCcnRFbmRTWFZJIn0sMjgyOntuOiJCcnRCZWdpblNYVkkifSwyODM6e246IkJydEJlZ2luU1hWSXMifSwyODQ6e246IkJydEVuZFNYVklzIn0sMjg1OntuOiJCcnRCZWdpblNYVkQifSwyODY6e246IkJydEVuZFNYVkQifSwyODc6e246IkJydEJlZ2luU1hW''@;'; put 'put ''RHMifSwyODg6e246IkJydEVuZFNYVkRzIn0sMjg5OntuOiJCcnRCZWdpblNYUEkifSwyOTA6e246IkJydEVuZFNYUEkifSwyOTE6e246IkJydEJlZ2luU1hQSXMifSwyOTI6e246IkJydEVuZFNYUElzIn0sMjkzOntuOiJCcnRCZWdpblNYREkifSwyOTQ6e246IkJydEVuZFNYREkifSwyOTU6''@;'; put 'put ''e246IkJydEJlZ2luU1hESXMifSwyOTY6e246IkJydEVuZFNYRElzIn0sMjk3OntuOiJCcnRCZWdpblNYTEkifSwyOTg6e246IkJydEVuZFNYTEkifSwyOTk6e246IkJydEJlZ2luU1hMSVJ3cyJ9LDMwMDp7bjoiQnJ0RW5kU1hMSVJ3cyJ9LDMwMTp7bjoiQnJ0QmVnaW5TWExJQ29scyJ9LDMw''@;'; put 'put ''Mjp7bjoiQnJ0RW5kU1hMSUNvbHMifSwzMDM6e246IkJydEJlZ2luU1hGb3JtYXQifSwzMDQ6e246IkJydEVuZFNYRm9ybWF0In0sMzA1OntuOiJCcnRCZWdpblNYRm9ybWF0cyJ9LDMwNjp7bjoiQnJ0RW5kU3hGb3JtYXRzIn0sMzA3OntuOiJCcnRCZWdpblN4U2VsZWN0In0sMzA4OntuOiJC''@;'; put 'put ''cnRFbmRTeFNlbGVjdCJ9LDMwOTp7bjoiQnJ0QmVnaW5JU1hWRFJ3cyJ9LDMxMDp7bjoiQnJ0RW5kSVNYVkRSd3MifSwzMTE6e246IkJydEJlZ2luSVNYVkRDb2xzIn0sMzEyOntuOiJCcnRFbmRJU1hWRENvbHMifSwzMTM6e246IkJydEVuZFNYTG9jYXRpb24ifSwzMTQ6e246IkJydEJlZ2lu''@;'; put 'put ''U1hMb2NhdGlvbiJ9LDMxNTp7bjoiQnJ0RW5kU1hWaWV3In0sMzE2OntuOiJCcnRCZWdpblNYVEhzIn0sMzE3OntuOiJCcnRFbmRTWFRIcyJ9LDMxODp7bjoiQnJ0QmVnaW5TWFRIIn0sMzE5OntuOiJCcnRFbmRTWFRIIn0sMzIwOntuOiJCcnRCZWdpbklTWFRIUndzIn0sMzIxOntuOiJCcnRF''@;'; put 'put ''bmRJU1hUSFJ3cyJ9LDMyMjp7bjoiQnJ0QmVnaW5JU1hUSENvbHMifSwzMjM6e246IkJydEVuZElTWFRIQ29scyJ9LDMyNDp7bjoiQnJ0QmVnaW5TWFRETVBTIn0sMzI1OntuOiJCcnRFbmRTWFRETVBzIn0sMzI2OntuOiJCcnRCZWdpblNYVERNUCJ9LDMyNzp7bjoiQnJ0RW5kU1hURE1QIn0s''@;'; put 'put ''MzI4OntuOiJCcnRCZWdpblNYVEhJdGVtcyJ9LDMyOTp7bjoiQnJ0RW5kU1hUSEl0ZW1zIn0sMzMwOntuOiJCcnRCZWdpblNYVEhJdGVtIn0sMzMxOntuOiJCcnRFbmRTWFRISXRlbSJ9LDMzMjp7bjoiQnJ0QmVnaW5NZXRhZGF0YSJ9LDMzMzp7bjoiQnJ0RW5kTWV0YWRhdGEifSwzMzQ6e246''@;'; put 'put ''IkJydEJlZ2luRXNtZHRpbmZvIn0sMzM1OntuOiJCcnRNZHRpbmZvIn0sMzM2OntuOiJCcnRFbmRFc21kdGluZm8ifSwzMzc6e246IkJydEJlZ2luRXNtZGIifSwzMzg6e246IkJydEVuZEVzbWRiIn0sMzM5OntuOiJCcnRCZWdpbkVzZm1kIn0sMzQwOntuOiJCcnRFbmRFc2ZtZCJ9LDM0MTp7''@;'; put 'put ''bjoiQnJ0QmVnaW5TaW5nbGVDZWxscyJ9LDM0Mjp7bjoiQnJ0RW5kU2luZ2xlQ2VsbHMifSwzNDM6e246IkJydEJlZ2luTGlzdCJ9LDM0NDp7bjoiQnJ0RW5kTGlzdCJ9LDM0NTp7bjoiQnJ0QmVnaW5MaXN0Q29scyJ9LDM0Njp7bjoiQnJ0RW5kTGlzdENvbHMifSwzNDc6e246IkJydEJlZ2lu''@;'; put 'put ''TGlzdENvbCJ9LDM0ODp7bjoiQnJ0RW5kTGlzdENvbCJ9LDM0OTp7bjoiQnJ0QmVnaW5MaXN0WG1sQ1ByIn0sMzUwOntuOiJCcnRFbmRMaXN0WG1sQ1ByIn0sMzUxOntuOiJCcnRMaXN0Q0NGbWxhIn0sMzUyOntuOiJCcnRMaXN0VHJGbWxhIn0sMzUzOntuOiJCcnRCZWdpbkV4dGVybmFscyJ9''@;'; put 'put ''LDM1NDp7bjoiQnJ0RW5kRXh0ZXJuYWxzIn0sMzU1OntuOiJCcnRTdXBCb29rU3JjIixmOkdnfSwzNTc6e246IkJydFN1cFNlbGYifSwzNTg6e246IkJydFN1cFNhbWUifSwzNTk6e246IkJydFN1cFRhYnMifSwzNjA6e246IkJydEJlZ2luU3VwQm9vayJ9LDM2MTp7bjoiQnJ0UGxhY2Vob2xk''@;'; put 'put ''ZXJOYW1lIn0sMzYyOntuOiJCcnRFeHRlcm5TaGVldCIsZjpWOH0sMzYzOntuOiJCcnRFeHRlcm5UYWJsZVN0YXJ0In0sMzY0OntuOiJCcnRFeHRlcm5UYWJsZUVuZCJ9LDM2Njp7bjoiQnJ0RXh0ZXJuUm93SGRyIn0sMzY3OntuOiJCcnRFeHRlcm5DZWxsQmxhbmsifSwzNjg6e246IkJydEV4''@;'; put 'put ''dGVybkNlbGxSZWFsIn0sMzY5OntuOiJCcnRFeHRlcm5DZWxsQm9vbCJ9LDM3MDp7bjoiQnJ0RXh0ZXJuQ2VsbEVycm9yIn0sMzcxOntuOiJCcnRFeHRlcm5DZWxsU3RyaW5nIn0sMzcyOntuOiJCcnRCZWdpbkVzbWR4In0sMzczOntuOiJCcnRFbmRFc21keCJ9LDM3NDp7bjoiQnJ0QmVnaW5N''@;'; put 'put ''ZHhTZXQifSwzNzU6e246IkJydEVuZE1keFNldCJ9LDM3Njp7bjoiQnJ0QmVnaW5NZHhNYnJQcm9wIn0sMzc3OntuOiJCcnRFbmRNZHhNYnJQcm9wIn0sMzc4OntuOiJCcnRCZWdpbk1keEtQSSJ9LDM3OTp7bjoiQnJ0RW5kTWR4S1BJIn0sMzgwOntuOiJCcnRCZWdpbkVzc3RyIn0sMzgxOntu''@;'; put 'put ''OiJCcnRFbmRFc3N0ciJ9LDM4Mjp7bjoiQnJ0QmVnaW5QUkZJdGVtIn0sMzgzOntuOiJCcnRFbmRQUkZJdGVtIn0sMzg0OntuOiJCcnRCZWdpblBpdm90Q2FjaGVJRHMifSwzODU6e246IkJydEVuZFBpdm90Q2FjaGVJRHMifSwzODY6e246IkJydEJlZ2luUGl2b3RDYWNoZUlEIn0sMzg3Ontu''@;'; put 'put ''OiJCcnRFbmRQaXZvdENhY2hlSUQifSwzODg6e246IkJydEJlZ2luSVNYVklzIn0sMzg5OntuOiJCcnRFbmRJU1hWSXMifSwzOTA6e246IkJydEJlZ2luQ29sSW5mb3MifSwzOTE6e246IkJydEVuZENvbEluZm9zIn0sMzkyOntuOiJCcnRCZWdpblJ3QnJrIn0sMzkzOntuOiJCcnRFbmRSd0Jy''@;'; put 'put ''ayJ9LDM5NDp7bjoiQnJ0QmVnaW5Db2xCcmsifSwzOTU6e246IkJydEVuZENvbEJyayJ9LDM5Njp7bjoiQnJ0QnJrIn0sMzk3OntuOiJCcnRVc2VyQm9va1ZpZXcifSwzOTg6e246IkJydEluZm8ifSwzOTk6e246IkJydENVc3IifSw0MDA6e246IkJydFVzciJ9LDQwMTp7bjoiQnJ0QmVnaW5V''@;'; put 'put ''c2VycyJ9LDQwMzp7bjoiQnJ0RU9GIn0sNDA0OntuOiJCcnRVQ1IifSw0MDU6e246IkJydFJSSW5zRGVsIn0sNDA2OntuOiJCcnRSUkVuZEluc0RlbCJ9LDQwNzp7bjoiQnJ0UlJNb3ZlIn0sNDA4OntuOiJCcnRSUkVuZE1vdmUifSw0MDk6e246IkJydFJSQ2hnQ2VsbCJ9LDQxMDp7bjoiQnJ0''@;'; put 'put ''UlJFbmRDaGdDZWxsIn0sNDExOntuOiJCcnRSUkhlYWRlciJ9LDQxMjp7bjoiQnJ0UlJVc2VyVmlldyJ9LDQxMzp7bjoiQnJ0UlJSZW5TaGVldCJ9LDQxNDp7bjoiQnJ0UlJJbnNlcnRTaCJ9LDQxNTp7bjoiQnJ0UlJEZWZOYW1lIn0sNDE2OntuOiJCcnRSUk5vdGUifSw0MTc6e246IkJydFJS''@;'; put 'put ''Q29uZmxpY3QifSw0MTg6e246IkJydFJSVFFTSUYifSw0MTk6e246IkJydFJSRm9ybWF0In0sNDIwOntuOiJCcnRSUkVuZEZvcm1hdCJ9LDQyMTp7bjoiQnJ0UlJBdXRvRm10In0sNDIyOntuOiJCcnRCZWdpblVzZXJTaFZpZXdzIn0sNDIzOntuOiJCcnRCZWdpblVzZXJTaFZpZXcifSw0MjQ6''@;'; put 'put ''e246IkJydEVuZFVzZXJTaFZpZXcifSw0MjU6e246IkJydEVuZFVzZXJTaFZpZXdzIn0sNDI2OntuOiJCcnRBcnJGbWxhIixmOmZ1bmN0aW9uIEIwKEgsaWUsWCl7dmFyIHdlPUgubCtpZSx4ZT1zOShIKSxGZT1ILnJlYWRfc2hpZnQoMSksWmU9W3hlXTtpZihaZVsyXT1GZSxYLmNlbGxGb3Jt''@;'; put 'put ''dWxhKXt2YXIgamU9cEcoSCx3ZS1ILmwsWCk7WmVbMV09amV9ZWxzZSBILmw9d2U7cmV0dXJuIFplfX0sNDI3OntuOiJCcnRTaHJGbWxhIixmOmZ1bmN0aW9uIFAwKEgsaWUsWCl7dmFyIHdlPUgubCtpZSxGZT1bd2goSCwxNildO2lmKFguY2VsbEZvcm11bGEpe3ZhciBaZT1tRyhILHdlLUgu''@;'; put 'put ''bCxYKTtGZVsxXT1aZSxILmw9d2V9ZWxzZSBILmw9d2U7cmV0dXJuIEZlfX0sNDI4OntuOiJCcnRUYWJsZSJ9LDQyOTp7bjoiQnJ0QmVnaW5FeHRDb25uZWN0aW9ucyJ9LDQzMDp7bjoiQnJ0RW5kRXh0Q29ubmVjdGlvbnMifSw0MzE6e246IkJydEJlZ2luUENEQ2FsY01lbXMifSw0MzI6e246''@;'; put 'put ''IkJydEVuZFBDRENhbGNNZW1zIn0sNDMzOntuOiJCcnRCZWdpblBDRENhbGNNZW0ifSw0MzQ6e246IkJydEVuZFBDRENhbGNNZW0ifSw0MzU6e246IkJydEJlZ2luUENESEdMZXZlbHMifSw0MzY6e246IkJydEVuZFBDREhHTGV2ZWxzIn0sNDM3OntuOiJCcnRCZWdpblBDREhHTGV2ZWwifSw0''@;'; put 'put ''Mzg6e246IkJydEVuZFBDREhHTGV2ZWwifSw0Mzk6e246IkJydEJlZ2luUENESEdMR3JvdXBzIn0sNDQwOntuOiJCcnRFbmRQQ0RIR0xHcm91cHMifSw0NDE6e246IkJydEJlZ2luUENESEdMR3JvdXAifSw0NDI6e246IkJydEVuZFBDREhHTEdyb3VwIn0sNDQzOntuOiJCcnRCZWdpblBDREhH''@;'; put 'put ''TEdNZW1iZXJzIn0sNDQ0OntuOiJCcnRFbmRQQ0RIR0xHTWVtYmVycyJ9LDQ0NTp7bjoiQnJ0QmVnaW5QQ0RIR0xHTWVtYmVyIn0sNDQ2OntuOiJCcnRFbmRQQ0RIR0xHTWVtYmVyIn0sNDQ3OntuOiJCcnRCZWdpblFTSSJ9LDQ0ODp7bjoiQnJ0RW5kUVNJIn0sNDQ5OntuOiJCcnRCZWdpblFT''@;'; put 'put ''SVIifSw0NTA6e246IkJydEVuZFFTSVIifSw0NTE6e246IkJydEJlZ2luRGVsZXRlZE5hbWVzIn0sNDUyOntuOiJCcnRFbmREZWxldGVkTmFtZXMifSw0NTM6e246IkJydEJlZ2luRGVsZXRlZE5hbWUifSw0NTQ6e246IkJydEVuZERlbGV0ZWROYW1lIn0sNDU1OntuOiJCcnRCZWdpblFTSUZz''@;'; put 'put ''In0sNDU2OntuOiJCcnRFbmRRU0lGcyJ9LDQ1Nzp7bjoiQnJ0QmVnaW5RU0lGIn0sNDU4OntuOiJCcnRFbmRRU0lGIn0sNDU5OntuOiJCcnRCZWdpbkF1dG9Tb3J0U2NvcGUifSw0NjA6e246IkJydEVuZEF1dG9Tb3J0U2NvcGUifSw0NjE6e246IkJydEJlZ2luQ29uZGl0aW9uYWxGb3JtYXR0''@;'; put 'put ''aW5nIn0sNDYyOntuOiJCcnRFbmRDb25kaXRpb25hbEZvcm1hdHRpbmcifSw0NjM6e246IkJydEJlZ2luQ0ZSdWxlIn0sNDY0OntuOiJCcnRFbmRDRlJ1bGUifSw0NjU6e246IkJydEJlZ2luSWNvblNldCJ9LDQ2Njp7bjoiQnJ0RW5kSWNvblNldCJ9LDQ2Nzp7bjoiQnJ0QmVnaW5EYXRhYmFy''@;'; put 'put ''In0sNDY4OntuOiJCcnRFbmREYXRhYmFyIn0sNDY5OntuOiJCcnRCZWdpbkNvbG9yU2NhbGUifSw0NzA6e246IkJydEVuZENvbG9yU2NhbGUifSw0NzE6e246IkJydENGVk8ifSw0NzI6e246IkJydEV4dGVyblZhbHVlTWV0YSJ9LDQ3Mzp7bjoiQnJ0QmVnaW5Db2xvclBhbGV0dGUifSw0NzQ6''@;'; put 'put ''e246IkJydEVuZENvbG9yUGFsZXR0ZSJ9LDQ3NTp7bjoiQnJ0SW5kZXhlZENvbG9yIn0sNDc2OntuOiJCcnRNYXJnaW5zIixmOmZ1bmN0aW9uIFZtKEgpe3ZhciBpZT17fTtyZXR1cm4gd2kuZm9yRWFjaChmdW5jdGlvbihYKXtpZVtYXT1JMihIKX0pLGllfX0sNDc3OntuOiJCcnRQcmludE9w''@;'; put 'put ''dGlvbnMifSw0Nzg6e246IkJydFBhZ2VTZXR1cCJ9LDQ3OTp7bjoiQnJ0QmVnaW5IZWFkZXJGb290ZXIifSw0ODA6e246IkJydEVuZEhlYWRlckZvb3RlciJ9LDQ4MTp7bjoiQnJ0QmVnaW5TWENydEZvcm1hdCJ9LDQ4Mjp7bjoiQnJ0RW5kU1hDcnRGb3JtYXQifSw0ODM6e246IkJydEJlZ2lu''@;'; put 'put ''U1hDcnRGb3JtYXRzIn0sNDg0OntuOiJCcnRFbmRTWENydEZvcm1hdHMifSw0ODU6e246IkJydFdzRm10SW5mbyIsZjpmdW5jdGlvbiBuUChIKXt2YXIgaWU9e30sWD17fSx3ZT17fSx4ZT1ILnJlYWRfc2hpZnQoNCksRmU9SC5yZWFkX3NoaWZ0KDIpO3dlLndjaD14ZTw9NjU1MzY/eGUvMjU2''@;'; put 'put ''OkZlO3ZhciBaZT1ILnJlYWRfc2hpZnQoMik7WC5ocHQ9WmUvMjA7dmFyIGplPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gMiZqZSYmKFguaGlkZGVuPSEwKSw0JmplJiYoaWUudG9wdGhpY2s9ITApLDgmamUmJihpZS5ib3R0aGljaz0hMCksaWUucm93b3V0bGluZT1ILnJlYWRfc2hpZnQoMSks''@;'; put 'put ''aWUuY29sb3V0bGluZT1ILnJlYWRfc2hpZnQoMSksSjgoWCksaWUucm93PVgseWMod2UpLGllLmNvbD13ZSxpZX19LDQ4Njp7bjoiQnJ0QmVnaW5NZ3MifSw0ODc6e246IkJydEVuZE1HcyJ9LDQ4ODp7bjoiQnJ0QmVnaW5NR01hcHMifSw0ODk6e246IkJydEVuZE1HTWFwcyJ9LDQ5MDp7bjoi''@;'; put 'put ''QnJ0QmVnaW5NRyJ9LDQ5MTp7bjoiQnJ0RW5kTUcifSw0OTI6e246IkJydEJlZ2luTWFwIn0sNDkzOntuOiJCcnRFbmRNYXAifSw0OTQ6e246IkJydEhMaW5rIixmOmZ1bmN0aW9uIEZfKEgsaWUpe3ZhciBYPUgubCtpZSx3ZT13aChILDE2KSx4ZT15aChIKSxGZT14dShIKSxaZT14dShIKSxq''@;'; put 'put ''ZT14dShIKTtILmw9WDt2YXIgWWU9e3JmeDp3ZSxyZWxJZDp4ZSxsb2M6RmUsZGlzcGxheTpqZX07cmV0dXJuIFplJiYoWWUuVG9vbHRpcD1aZSksWWV9fSw0OTU6e246IkJydEJlZ2luRENvbiJ9LDQ5Njp7bjoiQnJ0RW5kRENvbiJ9LDQ5Nzp7bjoiQnJ0QmVnaW5EUmVmcyJ9LDQ5ODp7bjoi''@;'; put 'put ''QnJ0RW5kRFJlZnMifSw0OTk6e246IkJydERSZWYifSw1MDA6e246IkJydEJlZ2luU2Nlbk1hbiJ9LDUwMTp7bjoiQnJ0RW5kU2Nlbk1hbiJ9LDUwMjp7bjoiQnJ0QmVnaW5TY3QifSw1MDM6e246IkJydEVuZFNjdCJ9LDUwNDp7bjoiQnJ0U2xjIn0sNTA1OntuOiJCcnRCZWdpbkRYRnMifSw1''@;'; put 'put ''MDY6e246IkJydEVuZERYRnMifSw1MDc6e246IkJydERYRiJ9LDUwODp7bjoiQnJ0QmVnaW5UYWJsZVN0eWxlcyJ9LDUwOTp7bjoiQnJ0RW5kVGFibGVTdHlsZXMifSw1MTA6e246IkJydEJlZ2luVGFibGVTdHlsZSJ9LDUxMTp7bjoiQnJ0RW5kVGFibGVTdHlsZSJ9LDUxMjp7bjoiQnJ0VGFi''@;'; put 'put ''bGVTdHlsZUVsZW1lbnQifSw1MTM6e246IkJydFRhYmxlU3R5bGVDbGllbnQifSw1MTQ6e246IkJydEJlZ2luVm9sRGVwcyJ9LDUxNTp7bjoiQnJ0RW5kVm9sRGVwcyJ9LDUxNjp7bjoiQnJ0QmVnaW5Wb2xUeXBlIn0sNTE3OntuOiJCcnRFbmRWb2xUeXBlIn0sNTE4OntuOiJCcnRCZWdpblZv''@;'; put 'put ''bE1haW4ifSw1MTk6e246IkJydEVuZFZvbE1haW4ifSw1MjA6e246IkJydEJlZ2luVm9sVG9waWMifSw1MjE6e246IkJydEVuZFZvbFRvcGljIn0sNTIyOntuOiJCcnRWb2xTdWJ0b3BpYyJ9LDUyMzp7bjoiQnJ0Vm9sUmVmIn0sNTI0OntuOiJCcnRWb2xOdW0ifSw1MjU6e246IkJydFZvbEVy''@;'; put 'put ''ciJ9LDUyNjp7bjoiQnJ0Vm9sU3RyIn0sNTI3OntuOiJCcnRWb2xCb29sIn0sNTI4OntuOiJCcnRCZWdpbkNhbGNDaGFpbiQifSw1Mjk6e246IkJydEVuZENhbGNDaGFpbiQifSw1MzA6e246IkJydEJlZ2luU29ydFN0YXRlIn0sNTMxOntuOiJCcnRFbmRTb3J0U3RhdGUifSw1MzI6e246IkJy''@;'; put 'put ''dEJlZ2luU29ydENvbmQifSw1MzM6e246IkJydEVuZFNvcnRDb25kIn0sNTM0OntuOiJCcnRCb29rUHJvdGVjdGlvbiJ9LDUzNTp7bjoiQnJ0U2hlZXRQcm90ZWN0aW9uIn0sNTM2OntuOiJCcnRSYW5nZVByb3RlY3Rpb24ifSw1Mzc6e246IkJydFBob25ldGljSW5mbyJ9LDUzODp7bjoiQnJ0''@;'; put 'put ''QmVnaW5FQ1R4dFdpeiJ9LDUzOTp7bjoiQnJ0RW5kRUNUeHRXaXoifSw1NDA6e246IkJydEJlZ2luRUNUV0ZsZEluZm9Mc3QifSw1NDE6e246IkJydEVuZEVDVFdGbGRJbmZvTHN0In0sNTQyOntuOiJCcnRCZWdpbkVDVHdGbGRJbmZvIn0sNTQ4OntuOiJCcnRGaWxlU2hhcmluZyJ9LDU0OTp7''@;'; put 'put ''bjoiQnJ0T2xlU2l6ZSJ9LDU1MDp7bjoiQnJ0RHJhd2luZyIsZjpHZ30sNTUxOntuOiJCcnRMZWdhY3lEcmF3aW5nIn0sNTUyOntuOiJCcnRMZWdhY3lEcmF3aW5nSEYifSw1NTM6e246IkJydFdlYk9wdCJ9LDU1NDp7bjoiQnJ0QmVnaW5XZWJQdWJJdGVtcyJ9LDU1NTp7bjoiQnJ0RW5kV2Vi''@;'; put 'put ''UHViSXRlbXMifSw1NTY6e246IkJydEJlZ2luV2ViUHViSXRlbSJ9LDU1Nzp7bjoiQnJ0RW5kV2ViUHViSXRlbSJ9LDU1ODp7bjoiQnJ0QmVnaW5TWENvbmRGbXQifSw1NTk6e246IkJydEVuZFNYQ29uZEZtdCJ9LDU2MDp7bjoiQnJ0QmVnaW5TWENvbmRGbXRzIn0sNTYxOntuOiJCcnRFbmRT''@;'; put 'put ''WENvbmRGbXRzIn0sNTYyOntuOiJCcnRCa0hpbSJ9LDU2NDp7bjoiQnJ0Q29sb3IifSw1NjU6e246IkJydEJlZ2luSW5kZXhlZENvbG9ycyJ9LDU2Njp7bjoiQnJ0RW5kSW5kZXhlZENvbG9ycyJ9LDU2OTp7bjoiQnJ0QmVnaW5NUlVDb2xvcnMifSw1NzA6e246IkJydEVuZE1SVUNvbG9ycyJ9''@;'; put 'put ''LDU3Mjp7bjoiQnJ0TVJVQ29sb3IifSw1NzM6e246IkJydEJlZ2luRFZhbHMifSw1NzQ6e246IkJydEVuZERWYWxzIn0sNTc3OntuOiJCcnRTdXBOYW1lU3RhcnQifSw1Nzg6e246IkJydFN1cE5hbWVWYWx1ZVN0YXJ0In0sNTc5OntuOiJCcnRTdXBOYW1lVmFsdWVFbmQifSw1ODA6e246IkJy''@;'; put 'put ''dFN1cE5hbWVOdW0ifSw1ODE6e246IkJydFN1cE5hbWVFcnIifSw1ODI6e246IkJydFN1cE5hbWVTdCJ9LDU4Mzp7bjoiQnJ0U3VwTmFtZU5pbCJ9LDU4NDp7bjoiQnJ0U3VwTmFtZUJvb2wifSw1ODU6e246IkJydFN1cE5hbWVGbWxhIn0sNTg2OntuOiJCcnRTdXBOYW1lQml0cyJ9LDU4Nzp7''@;'; put 'put ''bjoiQnJ0U3VwTmFtZUVuZCJ9LDU4ODp7bjoiQnJ0RW5kU3VwQm9vayJ9LDU4OTp7bjoiQnJ0Q2VsbFNtYXJ0VGFnUHJvcGVydHkifSw1OTA6e246IkJydEJlZ2luQ2VsbFNtYXJ0VGFnIn0sNTkxOntuOiJCcnRFbmRDZWxsU21hcnRUYWcifSw1OTI6e246IkJydEJlZ2luQ2VsbFNtYXJ0VGFn''@;'; put 'put ''cyJ9LDU5Mzp7bjoiQnJ0RW5kQ2VsbFNtYXJ0VGFncyJ9LDU5NDp7bjoiQnJ0QmVnaW5TbWFydFRhZ3MifSw1OTU6e246IkJydEVuZFNtYXJ0VGFncyJ9LDU5Njp7bjoiQnJ0U21hcnRUYWdUeXBlIn0sNTk3OntuOiJCcnRCZWdpblNtYXJ0VGFnVHlwZXMifSw1OTg6e246IkJydEVuZFNtYXJ0''@;'; put 'put ''VGFnVHlwZXMifSw1OTk6e246IkJydEJlZ2luU1hGaWx0ZXJzIn0sNjAwOntuOiJCcnRFbmRTWEZpbHRlcnMifSw2MDE6e246IkJydEJlZ2luU1hGSUxURVIifSw2MDI6e246IkJydEVuZFNYRmlsdGVyIn0sNjAzOntuOiJCcnRCZWdpbkZpbGxzIn0sNjA0OntuOiJCcnRFbmRGaWxscyJ9LDYw''@;'; put 'put ''NTp7bjoiQnJ0QmVnaW5DZWxsV2F0Y2hlcyJ9LDYwNjp7bjoiQnJ0RW5kQ2VsbFdhdGNoZXMifSw2MDc6e246IkJydENlbGxXYXRjaCJ9LDYwODp7bjoiQnJ0QmVnaW5DUkVycnMifSw2MDk6e246IkJydEVuZENSRXJycyJ9LDYxMDp7bjoiQnJ0Q3Jhc2hSZWNFcnIifSw2MTE6e246IkJydEJl''@;'; put 'put ''Z2luRm9udHMifSw2MTI6e246IkJydEVuZEZvbnRzIn0sNjEzOntuOiJCcnRCZWdpbkJvcmRlcnMifSw2MTQ6e246IkJydEVuZEJvcmRlcnMifSw2MTU6e246IkJydEJlZ2luRm10cyJ9LDYxNjp7bjoiQnJ0RW5kRm10cyJ9LDYxNzp7bjoiQnJ0QmVnaW5DZWxsWEZzIn0sNjE4OntuOiJCcnRF''@;'; put 'put ''bmRDZWxsWEZzIn0sNjE5OntuOiJCcnRCZWdpblN0eWxlcyJ9LDYyMDp7bjoiQnJ0RW5kU3R5bGVzIn0sNjI1OntuOiJCcnRCaWdOYW1lIn0sNjI2OntuOiJCcnRCZWdpbkNlbGxTdHlsZVhGcyJ9LDYyNzp7bjoiQnJ0RW5kQ2VsbFN0eWxlWEZzIn0sNjI4OntuOiJCcnRCZWdpbkNvbW1lbnRz''@;'; put 'put ''In0sNjI5OntuOiJCcnRFbmRDb21tZW50cyJ9LDYzMDp7bjoiQnJ0QmVnaW5Db21tZW50QXV0aG9ycyJ9LDYzMTp7bjoiQnJ0RW5kQ29tbWVudEF1dGhvcnMifSw2MzI6e246IkJydENvbW1lbnRBdXRob3IiLGY6YmZ9LDYzMzp7bjoiQnJ0QmVnaW5Db21tZW50TGlzdCJ9LDYzNDp7bjoiQnJ0''@;'; put 'put ''RW5kQ29tbWVudExpc3QifSw2MzU6e246IkJydEJlZ2luQ29tbWVudCIsZjpmdW5jdGlvbiBZOShIKXt2YXIgaWU9e307aWUuaWF1dGhvcj1ILnJlYWRfc2hpZnQoNCk7dmFyIFg9d2goSCwxNik7cmV0dXJuIGllLnJmeD1YLnMsaWUucmVmPVkwKFgucyksSC5sKz0xNixpZX19LDYzNjp7bjoi''@;'; put 'put ''QnJ0RW5kQ29tbWVudCJ9LDYzNzp7bjoiQnJ0Q29tbWVudFRleHQiLGY6VmZ9LDYzODp7bjoiQnJ0QmVnaW5PbGVPYmplY3RzIn0sNjM5OntuOiJCcnRPbGVPYmplY3QifSw2NDA6e246IkJydEVuZE9sZU9iamVjdHMifSw2NDE6e246IkJydEJlZ2luU3hydWxlcyJ9LDY0Mjp7bjoiQnJ0RW5k''@;'; put 'put ''U3hSdWxlcyJ9LDY0Mzp7bjoiQnJ0QmVnaW5BY3RpdmVYQ29udHJvbHMifSw2NDQ6e246IkJydEFjdGl2ZVgifSw2NDU6e246IkJydEVuZEFjdGl2ZVhDb250cm9scyJ9LDY0Njp7bjoiQnJ0QmVnaW5QQ0RTRFRDRU1lbWJlcnNTb3J0QnkifSw2NDg6e246IkJydEJlZ2luQ2VsbElnbm9yZUVD''@;'; put 'put ''cyJ9LDY0OTp7bjoiQnJ0Q2VsbElnbm9yZUVDIn0sNjUwOntuOiJCcnRFbmRDZWxsSWdub3JlRUNzIn0sNjUxOntuOiJCcnRDc1Byb3AiLGY6ZnVuY3Rpb24gSHgoSCxpZSl7cmV0dXJuIEgubCs9MTAse25hbWU6eHUoSCl9fX0sNjUyOntuOiJCcnRDc1BhZ2VTZXR1cCJ9LDY1Mzp7bjoiQnJ0''@;'; put 'put ''QmVnaW5Vc2VyQ3NWaWV3cyJ9LDY1NDp7bjoiQnJ0RW5kVXNlckNzVmlld3MifSw2NTU6e246IkJydEJlZ2luVXNlckNzVmlldyJ9LDY1Njp7bjoiQnJ0RW5kVXNlckNzVmlldyJ9LDY1Nzp7bjoiQnJ0QmVnaW5QY2RTRkNJRW50cmllcyJ9LDY1ODp7bjoiQnJ0RW5kUENEU0ZDSUVudHJpZXMi''@;'; put 'put ''fSw2NTk6e246IkJydFBDRFNGQ0lFbnRyeSJ9LDY2MDp7bjoiQnJ0QmVnaW5MaXN0UGFydHMifSw2NjE6e246IkJydExpc3RQYXJ0In0sNjYyOntuOiJCcnRFbmRMaXN0UGFydHMifSw2NjM6e246IkJydFNoZWV0Q2FsY1Byb3AifSw2NjQ6e246IkJydEJlZ2luRm5Hcm91cCJ9LDY2NTp7bjoi''@;'; put 'put ''QnJ0Rm5Hcm91cCJ9LDY2Njp7bjoiQnJ0RW5kRm5Hcm91cCJ9LDY2Nzp7bjoiQnJ0U3VwQWRkaW4ifSw2Njg6e246IkJydFNYVERNUE9yZGVyIn0sNjY5OntuOiJCcnRDc1Byb3RlY3Rpb24ifSw2NzE6e246IkJydEJlZ2luV3NTb3J0TWFwIn0sNjcyOntuOiJCcnRFbmRXc1NvcnRNYXAifSw2''@;'; put 'put ''NzM6e246IkJydEJlZ2luUlJTb3J0In0sNjc0OntuOiJCcnRFbmRSUlNvcnQifSw2NzU6e246IkJydFJSU29ydEl0ZW0ifSw2NzY6e246IkJydEZpbGVTaGFyaW5nSXNvIn0sNjc3OntuOiJCcnRCb29rUHJvdGVjdGlvbklzbyJ9LDY3ODp7bjoiQnJ0U2hlZXRQcm90ZWN0aW9uSXNvIn0sNjc5''@;'; put 'put ''OntuOiJCcnRDc1Byb3RlY3Rpb25Jc28ifSw2ODA6e246IkJydFJhbmdlUHJvdGVjdGlvbklzbyJ9LDY4MTp7bjoiQnJ0RFZhbExpc3QifSwxMDI0OntuOiJCcnRSd0Rlc2NlbnQifSwxMDI1OntuOiJCcnRLbm93bkZvbnRzIn0sMTAyNjp7bjoiQnJ0QmVnaW5TWFR1cGxlU2V0In0sMTAyNzp7''@;'; put 'put ''bjoiQnJ0RW5kU1hUdXBsZVNldCJ9LDEwMjg6e246IkJydEJlZ2luU1hUdXBsZVNldEhlYWRlciJ9LDEwMjk6e246IkJydEVuZFNYVHVwbGVTZXRIZWFkZXIifSwxMDMwOntuOiJCcnRTWFR1cGxlU2V0SGVhZGVySXRlbSJ9LDEwMzE6e246IkJydEJlZ2luU1hUdXBsZVNldERhdGEifSwxMDMy''@;'; put 'put ''OntuOiJCcnRFbmRTWFR1cGxlU2V0RGF0YSJ9LDEwMzM6e246IkJydEJlZ2luU1hUdXBsZVNldFJvdyJ9LDEwMzQ6e246IkJydEVuZFNYVHVwbGVTZXRSb3cifSwxMDM1OntuOiJCcnRTWFR1cGxlU2V0Um93SXRlbSJ9LDEwMzY6e246IkJydE5hbWVFeHQifSwxMDM3OntuOiJCcnRQQ0RIMTQi''@;'; put 'put ''fSwxMDM4OntuOiJCcnRCZWdpblBDRENhbGNNZW0xNCJ9LDEwMzk6e246IkJydEVuZFBDRENhbGNNZW0xNCJ9LDEwNDA6e246IkJydFNYVEgxNCJ9LDEwNDE6e246IkJydEJlZ2luU3BhcmtsaW5lR3JvdXAifSwxMDQyOntuOiJCcnRFbmRTcGFya2xpbmVHcm91cCJ9LDEwNDM6e246IkJydFNw''@;'; put 'put ''YXJrbGluZSJ9LDEwNDQ6e246IkJydFNYREkxNCJ9LDEwNDU6e246IkJydFdzRm10SW5mb0V4MTQifSwxMDQ2OntuOiJCcnRCZWdpbkNvbmRpdGlvbmFsRm9ybWF0dGluZzE0In0sMTA0Nzp7bjoiQnJ0RW5kQ29uZGl0aW9uYWxGb3JtYXR0aW5nMTQifSwxMDQ4OntuOiJCcnRCZWdpbkNGUnVs''@;'; put 'put ''ZTE0In0sMTA0OTp7bjoiQnJ0RW5kQ0ZSdWxlMTQifSwxMDUwOntuOiJCcnRDRlZPMTQifSwxMDUxOntuOiJCcnRCZWdpbkRhdGFiYXIxNCJ9LDEwNTI6e246IkJydEJlZ2luSWNvblNldDE0In0sMTA1Mzp7bjoiQnJ0RFZhbDE0IixmOmZ1bmN0aW9uIHNQKEgsaWUsWCl7dmFyIHdlPWZ1bmN0''@;'; put 'put ''aW9uIHRyKEgsaWUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCg0KSx4ZT17fTtyZXR1cm4gMSZ3ZSYmKHhlLnJlZnM9ZnVuY3Rpb24gZWkoSCl7Zm9yKHZhciBpZT1ILnJlYWRfc2hpZnQoNCksWD1bXTtpZS0tID4wOylYLnB1c2goWWkoSCkpO3JldHVybiBYfShIKSksMiZ3ZSYmKHhlLnNxcmVm''@;'; put 'put ''cz1mdW5jdGlvbiBkYShIKXtmb3IodmFyIGllPUgucmVhZF9zaGlmdCg0KSxYPVtdO2llLS0gPjA7KVgucHVzaCh6YShIKSk7cmV0dXJuIFh9KEgpKSw0JndlJiYoeGUuZm9ybXVsYXM9ZnVuY3Rpb24gRnMoSCxpZSxYKXtmb3IodmFyIHdlPUgucmVhZF9zaGlmdCg0KSx4ZT1bXTt3ZS0tID4w''@;'; put 'put ''Oyl4ZS5wdXNoKEt1KEgsMCxYKSk7cmV0dXJuIHhlfShILDAsWCkpLDgmd2UmJih4ZS5yZWxJRD1mdW5jdGlvbiBUdShIKXt2YXIgaWU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiAwPT09aWU/IiI6SC5yZWFkX3NoaWZ0KGllLCJ1dGYxNmxlIil9KEgpKSx4ZX0oSCwwLFgpLHhlPUgucmVhZF9z''@;'; put 'put ''aGlmdCg0KSxGZT15aChIKSxaZT15aChIKSxqZT15aChIKSxZZT15aChIKSxNdD0od2UuZm9ybXVsYXN8fFtdKVswXSx4dD0od2UuZm9ybXVsYXN8fFtdKVsxXSxSdD0xNSZ4ZSxVdD17dDpqbVtSdF0sc3FyZng6d2Uuc3FyZWZzWzBdLHM6W0ZlLFplLGplLFllXX07cmV0dXJuIE10JiYoVXQu''@;'; put 'put ''ZjE9TXQpLHh0JiYoVXQuZjI9eHQpLDA9PVJ0fHwzPT1SdHx8Nz09UnR8fChVdC5vcD1DQVt4ZT4+MjAmMTVdKSxVdH19LDEwNTQ6e246IkJydEJlZ2luRFZhbHMxNCJ9LDEwNTU6e246IkJydENvbG9yMTQifSwxMDU2OntuOiJCcnRCZWdpblNwYXJrbGluZXMifSwxMDU3OntuOiJCcnRFbmRT''@;'; put 'put ''cGFya2xpbmVzIn0sMTA1ODp7bjoiQnJ0QmVnaW5TcGFya2xpbmVHcm91cHMifSwxMDU5OntuOiJCcnRFbmRTcGFya2xpbmVHcm91cHMifSwxMDYxOntuOiJCcnRTWFZEMTQifSwxMDYyOntuOiJCcnRCZWdpblNYVmlldzE0In0sMTA2Mzp7bjoiQnJ0RW5kU1hWaWV3MTQifSwxMDY0OntuOiJC''@;'; put 'put ''cnRCZWdpblNYVmlldzE2In0sMTA2NTp7bjoiQnJ0RW5kU1hWaWV3MTYifSwxMDY2OntuOiJCcnRCZWdpblBDRDE0In0sMTA2Nzp7bjoiQnJ0RW5kUENEMTQifSwxMDY4OntuOiJCcnRCZWdpbkV4dENvbm4xNCJ9LDEwNjk6e246IkJydEVuZEV4dENvbm4xNCJ9LDEwNzA6e246IkJydEJlZ2lu''@;'; put 'put ''U2xpY2VyQ2FjaGVJRHMifSwxMDcxOntuOiJCcnRFbmRTbGljZXJDYWNoZUlEcyJ9LDEwNzI6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVJRCJ9LDEwNzM6e246IkJydEVuZFNsaWNlckNhY2hlSUQifSwxMDc1OntuOiJCcnRCZWdpblNsaWNlckNhY2hlIn0sMTA3Njp7bjoiQnJ0RW5kU2xpY2Vy''@;'; put 'put ''Q2FjaGUifSwxMDc3OntuOiJCcnRCZWdpblNsaWNlckNhY2hlRGVmIn0sMTA3ODp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVEZWYifSwxMDc5OntuOiJCcnRCZWdpblNsaWNlcnNFeCJ9LDEwODA6e246IkJydEVuZFNsaWNlcnNFeCJ9LDEwODE6e246IkJydEJlZ2luU2xpY2VyRXgifSwxMDgyOntu''@;'; put 'put ''OiJCcnRFbmRTbGljZXJFeCJ9LDEwODM6e246IkJydEJlZ2luU2xpY2VyIn0sMTA4NDp7bjoiQnJ0RW5kU2xpY2VyIn0sMTA4NTp7bjoiQnJ0U2xpY2VyQ2FjaGVQaXZvdFRhYmxlcyJ9LDEwODY6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVPbGFwSW1wbCJ9LDEwODc6e246IkJydEVuZFNsaWNl''@;'; put 'put ''ckNhY2hlT2xhcEltcGwifSwxMDg4OntuOiJCcnRCZWdpblNsaWNlckNhY2hlTGV2ZWxzRGF0YSJ9LDEwODk6e246IkJydEVuZFNsaWNlckNhY2hlTGV2ZWxzRGF0YSJ9LDEwOTA6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVMZXZlbERhdGEifSwxMDkxOntuOiJCcnRFbmRTbGljZXJDYWNoZUxl''@;'; put 'put ''dmVsRGF0YSJ9LDEwOTI6e246IkJydEJlZ2luU2xpY2VyQ2FjaGVTaVJhbmdlcyJ9LDEwOTM6e246IkJydEVuZFNsaWNlckNhY2hlU2lSYW5nZXMifSwxMDk0OntuOiJCcnRCZWdpblNsaWNlckNhY2hlU2lSYW5nZSJ9LDEwOTU6e246IkJydEVuZFNsaWNlckNhY2hlU2lSYW5nZSJ9LDEwOTY6''@;'; put 'put ''e246IkJydFNsaWNlckNhY2hlT2xhcEl0ZW0ifSwxMDk3OntuOiJCcnRCZWdpblNsaWNlckNhY2hlU2VsZWN0aW9ucyJ9LDEwOTg6e246IkJydFNsaWNlckNhY2hlU2VsZWN0aW9uIn0sMTA5OTp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVTZWxlY3Rpb25zIn0sMTEwMDp7bjoiQnJ0QmVnaW5TbGlj''@;'; put 'put ''ZXJDYWNoZU5hdGl2ZSJ9LDExMDE6e246IkJydEVuZFNsaWNlckNhY2hlTmF0aXZlIn0sMTEwMjp7bjoiQnJ0U2xpY2VyQ2FjaGVOYXRpdmVJdGVtIn0sMTEwMzp7bjoiQnJ0UmFuZ2VQcm90ZWN0aW9uMTQifSwxMTA0OntuOiJCcnRSYW5nZVByb3RlY3Rpb25Jc28xNCJ9LDExMDU6e246IkJy''@;'; put 'put ''dENlbGxJZ25vcmVFQzE0In0sMTExMTp7bjoiQnJ0TGlzdDE0In0sMTExMjp7bjoiQnJ0Q0ZJY29uIn0sMTExMzp7bjoiQnJ0QmVnaW5TbGljZXJDYWNoZXNQaXZvdENhY2hlSURzIn0sMTExNDp7bjoiQnJ0RW5kU2xpY2VyQ2FjaGVzUGl2b3RDYWNoZUlEcyJ9LDExMTU6e246IkJydEJlZ2lu''@;'; put 'put ''U2xpY2VycyJ9LDExMTY6e246IkJydEVuZFNsaWNlcnMifSwxMTE3OntuOiJCcnRXYlByb3AxNCJ9LDExMTg6e246IkJydEJlZ2luU1hFZGl0In0sMTExOTp7bjoiQnJ0RW5kU1hFZGl0In0sMTEyMDp7bjoiQnJ0QmVnaW5TWEVkaXRzIn0sMTEyMTp7bjoiQnJ0RW5kU1hFZGl0cyJ9LDExMjI6''@;'; put 'put ''e246IkJydEJlZ2luU1hDaGFuZ2UifSwxMTIzOntuOiJCcnRFbmRTWENoYW5nZSJ9LDExMjQ6e246IkJydEJlZ2luU1hDaGFuZ2VzIn0sMTEyNTp7bjoiQnJ0RW5kU1hDaGFuZ2VzIn0sMTEyNjp7bjoiQnJ0U1hUdXBsZUl0ZW1zIn0sMTEyODp7bjoiQnJ0QmVnaW5TbGljZXJTdHlsZSJ9LDEx''@;'; put 'put ''Mjk6e246IkJydEVuZFNsaWNlclN0eWxlIn0sMTEzMDp7bjoiQnJ0U2xpY2VyU3R5bGVFbGVtZW50In0sMTEzMTp7bjoiQnJ0QmVnaW5TdHlsZVNoZWV0RXh0MTQifSwxMTMyOntuOiJCcnRFbmRTdHlsZVNoZWV0RXh0MTQifSwxMTMzOntuOiJCcnRCZWdpblNsaWNlckNhY2hlc1Bpdm90Q2Fj''@;'; put 'put ''aGVJRCJ9LDExMzQ6e246IkJydEVuZFNsaWNlckNhY2hlc1Bpdm90Q2FjaGVJRCJ9LDExMzU6e246IkJydEJlZ2luQ29uZGl0aW9uYWxGb3JtYXR0aW5ncyJ9LDExMzY6e246IkJydEVuZENvbmRpdGlvbmFsRm9ybWF0dGluZ3MifSwxMTM3OntuOiJCcnRCZWdpblBDRENhbGNNZW1FeHQifSwx''@;'; put 'put ''MTM4OntuOiJCcnRFbmRQQ0RDYWxjTWVtRXh0In0sMTEzOTp7bjoiQnJ0QmVnaW5QQ0RDYWxjTWVtc0V4dCJ9LDExNDA6e246IkJydEVuZFBDRENhbGNNZW1zRXh0In0sMTE0MTp7bjoiQnJ0UENERmllbGQxNCJ9LDExNDI6e246IkJydEJlZ2luU2xpY2VyU3R5bGVzIn0sMTE0Mzp7bjoiQnJ0''@;'; put 'put ''RW5kU2xpY2VyU3R5bGVzIn0sMTE0NDp7bjoiQnJ0QmVnaW5TbGljZXJTdHlsZUVsZW1lbnRzIn0sMTE0NTp7bjoiQnJ0RW5kU2xpY2VyU3R5bGVFbGVtZW50cyJ9LDExNDY6e246IkJydENGUnVsZUV4dCJ9LDExNDc6e246IkJydEJlZ2luU1hDb25kRm10MTQifSwxMTQ4OntuOiJCcnRFbmRT''@;'; put 'put ''WENvbmRGbXQxNCJ9LDExNDk6e246IkJydEJlZ2luU1hDb25kRm10czE0In0sMTE1MDp7bjoiQnJ0RW5kU1hDb25kRm10czE0In0sMTE1Mjp7bjoiQnJ0QmVnaW5Tb3J0Q29uZDE0In0sMTE1Mzp7bjoiQnJ0RW5kU29ydENvbmQxNCJ9LDExNTQ6e246IkJydEVuZERWYWxzMTQifSwxMTU1Ontu''@;'; put 'put ''OiJCcnRFbmRJY29uU2V0MTQifSwxMTU2OntuOiJCcnRFbmREYXRhYmFyMTQifSwxMTU3OntuOiJCcnRCZWdpbkNvbG9yU2NhbGUxNCJ9LDExNTg6e246IkJydEVuZENvbG9yU2NhbGUxNCJ9LDExNTk6e246IkJydEJlZ2luU3hydWxlczE0In0sMTE2MDp7bjoiQnJ0RW5kU3hydWxlczE0In0s''@;'; put 'put ''MTE2MTp7bjoiQnJ0QmVnaW5QUnVsZTE0In0sMTE2Mjp7bjoiQnJ0RW5kUFJ1bGUxNCJ9LDExNjM6e246IkJydEJlZ2luUFJGaWx0ZXJzMTQifSwxMTY0OntuOiJCcnRFbmRQUkZpbHRlcnMxNCJ9LDExNjU6e246IkJydEJlZ2luUFJGaWx0ZXIxNCJ9LDExNjY6e246IkJydEVuZFBSRmlsdGVy''@;'; put 'put ''MTQifSwxMTY3OntuOiJCcnRCZWdpblBSRkl0ZW0xNCJ9LDExNjg6e246IkJydEVuZFBSRkl0ZW0xNCJ9LDExNjk6e246IkJydEJlZ2luQ2VsbElnbm9yZUVDczE0In0sMTE3MDp7bjoiQnJ0RW5kQ2VsbElnbm9yZUVDczE0In0sMTE3MTp7bjoiQnJ0RHhmMTQifSwxMTcyOntuOiJCcnRCZWdp''@;'; put 'put ''bkR4RjE0cyJ9LDExNzM6e246IkJydEVuZER4ZjE0cyJ9LDExNzc6e246IkJydEZpbHRlcjE0In0sMTE3ODp7bjoiQnJ0QmVnaW5DdXN0b21GaWx0ZXJzMTQifSwxMTgwOntuOiJCcnRDdXN0b21GaWx0ZXIxNCJ9LDExODE6e246IkJydEljb25GaWx0ZXIxNCJ9LDExODI6e246IkJydFBpdm90''@;'; put 'put ''Q2FjaGVDb25uZWN0aW9uTmFtZSJ9LDIwNDg6e246IkJydEJlZ2luRGVjb3VwbGVkUGl2b3RDYWNoZUlEcyJ9LDIwNDk6e246IkJydEVuZERlY291cGxlZFBpdm90Q2FjaGVJRHMifSwyMDUwOntuOiJCcnREZWNvdXBsZWRQaXZvdENhY2hlSUQifSwyMDUxOntuOiJCcnRCZWdpblBpdm90VGFi''@;'; put 'put ''bGVSZWZzIn0sMjA1Mjp7bjoiQnJ0RW5kUGl2b3RUYWJsZVJlZnMifSwyMDUzOntuOiJCcnRQaXZvdFRhYmxlUmVmIn0sMjA1NDp7bjoiQnJ0U2xpY2VyQ2FjaGVCb29rUGl2b3RUYWJsZXMifSwyMDU1OntuOiJCcnRCZWdpblN4dmNlbGxzIn0sMjA1Njp7bjoiQnJ0RW5kU3h2Y2VsbHMifSwy''@;'; put 'put ''MDU3OntuOiJCcnRCZWdpblN4Um93In0sMjA1ODp7bjoiQnJ0RW5kU3hSb3cifSwyMDYwOntuOiJCcnRQY2RDYWxjTWVtMTUifSwyMDY3OntuOiJCcnRRc2kxNSJ9LDIwNjg6e246IkJydEJlZ2luV2ViRXh0ZW5zaW9ucyJ9LDIwNjk6e246IkJydEVuZFdlYkV4dGVuc2lvbnMifSwyMDcwOntu''@;'; put 'put ''OiJCcnRXZWJFeHRlbnNpb24ifSwyMDcxOntuOiJCcnRBYnNQYXRoMTUifSwyMDcyOntuOiJCcnRCZWdpblBpdm90VGFibGVVSVNldHRpbmdzIn0sMjA3Mzp7bjoiQnJ0RW5kUGl2b3RUYWJsZVVJU2V0dGluZ3MifSwyMDc1OntuOiJCcnRUYWJsZVNsaWNlckNhY2hlSURzIn0sMjA3Njp7bjoi''@;'; put 'put ''QnJ0VGFibGVTbGljZXJDYWNoZUlEIn0sMjA3Nzp7bjoiQnJ0QmVnaW5UYWJsZVNsaWNlckNhY2hlIn0sMjA3ODp7bjoiQnJ0RW5kVGFibGVTbGljZXJDYWNoZSJ9LDIwNzk6e246IkJydFN4RmlsdGVyMTUifSwyMDgwOntuOiJCcnRCZWdpblRpbWVsaW5lQ2FjaGVQaXZvdENhY2hlSURzIn0s''@;'; put 'put ''MjA4MTp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZVBpdm90Q2FjaGVJRHMifSwyMDgyOntuOiJCcnRUaW1lbGluZUNhY2hlUGl2b3RDYWNoZUlEIn0sMjA4Mzp7bjoiQnJ0QmVnaW5UaW1lbGluZUNhY2hlSURzIn0sMjA4NDp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZUlEcyJ9LDIwODU6e246IkJy''@;'; put 'put ''dEJlZ2luVGltZWxpbmVDYWNoZUlEIn0sMjA4Njp7bjoiQnJ0RW5kVGltZWxpbmVDYWNoZUlEIn0sMjA4Nzp7bjoiQnJ0QmVnaW5UaW1lbGluZXNFeCJ9LDIwODg6e246IkJydEVuZFRpbWVsaW5lc0V4In0sMjA4OTp7bjoiQnJ0QmVnaW5UaW1lbGluZUV4In0sMjA5MDp7bjoiQnJ0RW5kVGlt''@;'; put 'put ''ZWxpbmVFeCJ9LDIwOTE6e246IkJydFdvcmtCb29rUHIxNSJ9LDIwOTI6e246IkJydFBDREgxNSJ9LDIwOTM6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZSJ9LDIwOTQ6e246IkJydEVuZFRpbWVsaW5lU3R5bGUifSwyMDk1OntuOiJCcnRUaW1lbGluZVN0eWxlRWxlbWVudCJ9LDIwOTY6e246''@;'; put 'put ''IkJydEJlZ2luVGltZWxpbmVTdHlsZXNoZWV0RXh0MTUifSwyMDk3OntuOiJCcnRFbmRUaW1lbGluZVN0eWxlc2hlZXRFeHQxNSJ9LDIwOTg6e246IkJydEJlZ2luVGltZWxpbmVTdHlsZXMifSwyMDk5OntuOiJCcnRFbmRUaW1lbGluZVN0eWxlcyJ9LDIxMDA6e246IkJydEJlZ2luVGltZWxp''@;'; put 'put ''bmVTdHlsZUVsZW1lbnRzIn0sMjEwMTp7bjoiQnJ0RW5kVGltZWxpbmVTdHlsZUVsZW1lbnRzIn0sMjEwMjp7bjoiQnJ0RHhmMTUifSwyMTAzOntuOiJCcnRCZWdpbkR4ZnMxNSJ9LDIxMDQ6e246ImJydEVuZER4ZnMxNSJ9LDIxMDU6e246IkJydFNsaWNlckNhY2hlSGlkZUl0ZW1zV2l0aE5v''@;'; put 'put ''RGF0YSJ9LDIxMDY6e246IkJydEJlZ2luSXRlbVVuaXF1ZU5hbWVzIn0sMjEwNzp7bjoiQnJ0RW5kSXRlbVVuaXF1ZU5hbWVzIn0sMjEwODp7bjoiQnJ0SXRlbVVuaXF1ZU5hbWUifSwyMTA5OntuOiJCcnRCZWdpbkV4dENvbm4xNSJ9LDIxMTA6e246IkJydEVuZEV4dENvbm4xNSJ9LDIxMTE6''@;'; put 'put ''e246IkJydEJlZ2luT2xlZGJQcjE1In0sMjExMjp7bjoiQnJ0RW5kT2xlZGJQcjE1In0sMjExMzp7bjoiQnJ0QmVnaW5EYXRhRmVlZFByMTUifSwyMTE0OntuOiJCcnRFbmREYXRhRmVlZFByMTUifSwyMTE1OntuOiJCcnRUZXh0UHIxNSJ9LDIxMTY6e246IkJydFJhbmdlUHIxNSJ9LDIxMTc6''@;'; put 'put ''e246IkJydERiQ29tbWFuZDE1In0sMjExODp7bjoiQnJ0QmVnaW5EYlRhYmxlczE1In0sMjExOTp7bjoiQnJ0RW5kRGJUYWJsZXMxNSJ9LDIxMjA6e246IkJydERiVGFibGUxNSJ9LDIxMjE6e246IkJydEJlZ2luRGF0YU1vZGVsIn0sMjEyMjp7bjoiQnJ0RW5kRGF0YU1vZGVsIn0sMjEyMzp7''@;'; put 'put ''bjoiQnJ0QmVnaW5Nb2RlbFRhYmxlcyJ9LDIxMjQ6e246IkJydEVuZE1vZGVsVGFibGVzIn0sMjEyNTp7bjoiQnJ0TW9kZWxUYWJsZSJ9LDIxMjY6e246IkJydEJlZ2luTW9kZWxSZWxhdGlvbnNoaXBzIn0sMjEyNzp7bjoiQnJ0RW5kTW9kZWxSZWxhdGlvbnNoaXBzIn0sMjEyODp7bjoiQnJ0''@;'; put 'put ''TW9kZWxSZWxhdGlvbnNoaXAifSwyMTI5OntuOiJCcnRCZWdpbkVDVHh0V2l6MTUifSwyMTMwOntuOiJCcnRFbmRFQ1R4dFdpejE1In0sMjEzMTp7bjoiQnJ0QmVnaW5FQ1RXRmxkSW5mb0xzdDE1In0sMjEzMjp7bjoiQnJ0RW5kRUNUV0ZsZEluZm9Mc3QxNSJ9LDIxMzM6e246IkJydEJlZ2lu''@;'; put 'put ''RUNUV0ZsZEluZm8xNSJ9LDIxMzQ6e246IkJydEZpZWxkTGlzdEFjdGl2ZUl0ZW0ifSwyMTM1OntuOiJCcnRQaXZvdENhY2hlSWRWZXJzaW9uIn0sMjEzNjp7bjoiQnJ0U1hESTE1In0sMjEzNzp7bjoiQnJ0QmVnaW5Nb2RlbFRpbWVHcm91cGluZ3MifSwyMTM4OntuOiJCcnRFbmRNb2RlbFRp''@;'; put 'put ''bWVHcm91cGluZ3MifSwyMTM5OntuOiJCcnRCZWdpbk1vZGVsVGltZUdyb3VwaW5nIn0sMjE0MDp7bjoiQnJ0RW5kTW9kZWxUaW1lR3JvdXBpbmcifSwyMTQxOntuOiJCcnRNb2RlbFRpbWVHcm91cGluZ0NhbGNDb2wifSwzMDcyOntuOiJCcnRVaWQifSwzMDczOntuOiJCcnRSZXZpc2lvblB0''@;'; put 'put ''ciJ9LDUwOTU6e246IkJydEJlZ2luQ2FsY0ZlYXR1cmVzIn0sNTA5Njp7bjoiQnJ0RW5kQ2FsY0ZlYXR1cmVzIn0sNTA5Nzp7bjoiQnJ0Q2FsY0ZlYXR1cmUifSw2NTUzNTp7bjoiIn19LHVUPV90KHg1LCJuIik7dVQuQnJ0RlJUQXJjaElEJD0xNjt2YXIgTmw9ezY6e246IkZvcm11bGEiLGY6''@;'; put 'put ''dTV9LDEwOntuOiJFT0YiLGY6Rmx9LDEyOntuOiJDYWxjQ291bnQiLGY6YzF9LDEzOntuOiJDYWxjTW9kZSIsZjpjMX0sMTQ6e246IkNhbGNQcmVjaXNpb24iLGY6dGF9LDE1OntuOiJDYWxjUmVmTW9kZSIsZjp0YX0sMTY6e246IkNhbGNEZWx0YSIsZjpJMn0sMTc6e246IkNhbGNJdGVyIixm''@;'; put 'put ''OnRhfSwxODp7bjoiUHJvdGVjdCIsZjp0YX0sMTk6e246IlBhc3N3b3JkIixmOmMxfSwyMDp7bjoiSGVhZGVyIixmOkQ0fSwyMTp7bjoiRm9vdGVyIixmOkQ0fSwyMzp7bjoiRXh0ZXJuU2hlZXQiLGY6Vjh9LDI0OntuOiJMYmwiLGY6cGJ9LDI1OntuOiJXaW5Qcm90ZWN0IixmOnRhfSwyNjp7''@;'; put 'put ''bjoiVmVydGljYWxQYWdlQnJlYWtzIn0sMjc6e246Ikhvcml6b250YWxQYWdlQnJlYWtzIn0sMjg6e246Ik5vdGUiLGY6ZnVuY3Rpb24gbG0oSCxpZSxYKXtyZXR1cm4gZnVuY3Rpb24gYjkoSCxpZSxYKXtpZighKFguYmlmZjw4KSl7dmFyIHdlPUgucmVhZF9zaGlmdCgyKSx4ZT1ILnJlYWRf''@;'; put 'put ''c2hpZnQoMiksRmU9SC5yZWFkX3NoaWZ0KDIpLFplPUgucmVhZF9zaGlmdCgyKSxqZT1kZihILDAsWCk7cmV0dXJuIFguYmlmZjw4JiZILnJlYWRfc2hpZnQoMSksW3tyOndlLGM6eGV9LGplLFplLEZlXX19KEgsMCxYKX19LDI5OntuOiJTZWxlY3Rpb24iLGY6ZnVuY3Rpb24gTWgoSCxpZSxY''@;'; put 'put ''KXtyZXR1cm4gWCYmWC5iaWZmPDU/KEgubCs9aWUse2NlbGw6e3I6MCxjOjB9fSk6KEgucmVhZF9zaGlmdCgxKSx7Y2VsbDpZMCh7cjpILnJlYWRfc2hpZnQoMiksYzpILnJlYWRfc2hpZnQoMil9KX0pfX0sMzQ6e246IkRhdGUxOTA0IixmOnRhfSwzNTp7bjoiRXh0ZXJuTmFtZSIsZjpHTX0s''@;'; put 'put ''Mzg6e246IkxlZnRNYXJnaW4iLGY6STJ9LDM5OntuOiJSaWdodE1hcmdpbiIsZjpJMn0sNDA6e246IlRvcE1hcmdpbiIsZjpJMn0sNDE6e246IkJvdHRvbU1hcmdpbiIsZjpJMn0sNDI6e246IlByaW50Um93Q29sIixmOnRhfSw0Mzp7bjoiUHJpbnRHcmlkIixmOnRhfSw0Nzp7bjoiRmlsZVBh''@;'; put 'put ''c3MiLGY6ZnVuY3Rpb24gZ20oSCxpZSxYKXtpZihYLmVuYylyZXR1cm4gWC5lbmM7dmFyIHdlPXtUeXBlOlguYmlmZj49OD9ILnJlYWRfc2hpZnQoMik6MH07cmV0dXJuIHdlLlR5cGU/ZnVuY3Rpb24gdUUoSCxpZSxYLHdlKXt2YXIgeGU9d2V8fHt9O2lmKHhlLkluZm89SC5yZWFkX3NoaWZ0''@;'; put 'put ''KDIpLEgubC09MiwxPT09eGUuSW5mbyl7aWYoeGUuRGF0YT1mdW5jdGlvbiBxeihIKXt2YXIgaWU9e30sWD1pZS5FbmNyeXB0aW9uVmVyc2lvbkluZm89dmYoSCw0KTtpZigxIT1YLk1ham9yfHwxIT1YLk1pbm9yKXRocm93InVucmVjb2duaXplZCB2ZXJzaW9uIGNvZGUgIitYLk1ham9yKyIg''@;'; put 'put ''OiAiK1guTWlub3I7cmV0dXJuIGllLlNhbHQ9SC5yZWFkX3NoaWZ0KDE2KSxpZS5FbmNyeXB0ZWRWZXJpZmllcj1ILnJlYWRfc2hpZnQoMTYpLGllLkVuY3J5cHRlZFZlcmlmaWVySGFzaD1ILnJlYWRfc2hpZnQoMTYpLGllfShIKSxYLnBhc3N3b3JkJiZ2b2lkIDAhPT1SNil7dmFyIEZlPVI2''@;'; put 'put ''KFgucGFzc3dvcmQseGUuRGF0YS5TYWx0LCIwMDAwMDAwMCIpLFplPVRlKHhlLkRhdGEuRW5jcnlwdGVkVmVyaWZpZXIreGUuRGF0YS5FbmNyeXB0ZWRWZXJpZmllckhhc2gsImhleCIpLGplPXNvLnJjNChUZShGZSwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpLFplKTt3ZS52YWxpZD1zby5t''@;'; put 'put ''ZDUoamUuc2xpY2UoMCwxNikpPT1CdWZmZXIuZnJvbShqZS5zbGljZSgxNikpLnRvU3RyaW5nKCJoZXgiKSx4ZS5EYXRhLktleT1GZSx3ZS5pbnNpdHU9ZnVuY3Rpb24gR1AoSCxpZSl7dmFyIFg9bmV3IEFycmF5KDI1Niksd2U9MCx4ZT0wLEZlPTAsWmU9MDtmdW5jdGlvbiBqZShVdCl7Zm9y''@;'; put 'put ''KHdlPTAseGU9MCxGZT0wLFplPTAseGU9MDsyNTYhPXhlOysreGUpWFt4ZV09eGU7Zm9yKEZlPTAseGU9MDsyNTYhPXhlOysreGUpe3RyeXtGZT1GZStYW3hlXStVdFt4ZSVVdC5sZW5ndGhdLmNoYXJDb2RlQXQoMCkmMjU1fWNhdGNoKG5uKXt0aHJvdyBjb25zb2xlLmxvZyh4ZSxVdFt4ZSVV''@;'; put 'put ''dC5sZW5ndGhdKSxubn1aZT1YW3hlXSxYW3hlXT1YW0ZlXSxYW0ZlXT1aZX14ZT1GZT0wfWZ1bmN0aW9uIFllKFV0KXt2YXIgbm49aGUoVXQubGVuZ3RoKTtmb3Iod2U9MDt3ZSE9VXQubGVuZ3RoOysrd2UpWmU9WFt4ZT14ZSsxJjI1NV0sWFt4ZV09WFtGZT0oRmUrWFt4ZV0pJTI1Nl0sWFtG''@;'; put 'put ''ZV09WmUsbm5bd2VdPVV0W3dlXV5YW1hbeGVdK1hbRmVdJjI1NV07cmV0dXJuIEJ1ZmZlci5mcm9tKG5uKX12YXIgTXQ9SC5LZXkseHQ9MDtqZShUZShNdCwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpKTt2YXIgUnQ9MDtyZXR1cm4gZnVuY3Rpb24oVXQpe2lmKFJ0K1V0Lmxlbmd0aDwxMDI0''@;'; put 'put ''KXJldHVybiBSdCs9VXQubGVuZ3RoLFllKFV0KTt2YXIgRHQ9MCx6dD1UZShVdC5zbGljZShEdCxEdCsoQ249MTAyNC1SdCkpKTtEdCs9Q24sUnQ9MDt2YXIgUG49WWUoenQpO2ZvcihEdD09VXQubGVuZ3RoJiYoKyt4dCxNdD1SNihpZSxILlNhbHQsSTUoeHQpKSxqZShUZShNdCwiaGV4Iiku''@;'; put 'put ''dG9TdHJpbmcoImJpbmFyeSIpKSk7RHQ8VXQubGVuZ3RoOyl7Kyt4dCxNdD1SNihpZSxILlNhbHQsSTUoeHQpKSxqZShCdWZmZXIuZnJvbShNdCwiaGV4IikudG9TdHJpbmcoImJpbmFyeSIpKTt2YXIgQ249TWF0aC5taW4oMTAyNCxVdC5sZW5ndGgtRHQpO3p0PVRlKFV0LnNsaWNlKER0LER0''@;'; put 'put ''K0NuKSksRHQrPUNuLFJ0PUNuLFBuPUJ1ZmZlci5jb25jYXQoW1BuLFllKHp0KV0pfXJldHVybiBQbn19KHhlLkRhdGEsWC5wYXNzd29yZCl9fWVsc2UgaWYoeGUuRGF0YT1mdW5jdGlvbiAkeihILGllKXt2YXIgWD17fSx3ZT1YLkVuY3J5cHRpb25WZXJzaW9uSW5mbz12ZihILDQpO2lmKGll''@;'; put 'put ''LT00LDIhPXdlLk1pbm9yKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkIG1pbm9yIHZlcnNpb24gY29kZTogIit3ZS5NaW5vcik7aWYod2UuTWFqb3I+NHx8d2UuTWFqb3I8Mil0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCBtYWpvciB2ZXJzaW9uIGNvZGU6ICIrd2UuTWFqb3Ip''@;'; put 'put ''O1guRmxhZ3M9SC5yZWFkX3NoaWZ0KDQpLGllLT00O3ZhciB4ZT1ILnJlYWRfc2hpZnQoNCk7cmV0dXJuIGllLT00LFguRW5jcnlwdGlvbkhlYWRlcj1SUihILHhlKSxYLkVuY3J5cHRpb25WZXJpZmllcj1CUihILGllLT14ZSksWH0oSCxpZSkseGUuRGF0YSYmeGUuRGF0YS5FbmNyeXB0aW9u''@;'; put 'put ''SGVhZGVyJiYyNjYyNT09PXhlLkRhdGEuRW5jcnlwdGlvbkhlYWRlci5BbGdJRCYmWC5wYXNzd29yZCYmdm9pZCAwIT09REEpe3ZhciBZZT1EQShYLnBhc3N3b3JkLHhlLkRhdGEuRW5jcnlwdGlvblZlcmlmaWVyLlNhbHQudG9TdHJpbmcoImhleCIpLCIwMDAwMDAwMCIpLE10PXhlLkRhdGEu''@;'; put 'put ''RW5jcnlwdGlvbkhlYWRlci5LZXlTaXplPj4+Mzs1PT1NdHx8TXQ8WWUubGVuZ3RoJiYoWWU9WWUuc2xpY2UoMCxNdCkpO3ZhciB4dD1UZSh4ZS5EYXRhLkVuY3J5cHRpb25WZXJpZmllci5WZXJpZmllci50b1N0cmluZygiaGV4IikreGUuRGF0YS5FbmNyeXB0aW9uVmVyaWZpZXIuVmVyaWZp''@;'; put 'put ''ZXJIYXNoLnRvU3RyaW5nKCJoZXgiKSwiaGV4IiksUnQ9c28ucmM0KFllLnRvU3RyaW5nKCJiaW5hcnkiKSx4dCk7d2UudmFsaWQ9azIoUnQuc2xpY2UoMCxNdCksIlNIQTEiKS50b1N0cmluZygiaGV4Iik9PVJ0LnNsaWNlKE10KS50b1N0cmluZygiaGV4IikseGUuRGF0YS5LZXk9WWUsd2Uu''@;'; put 'put ''dmFsaWQmJih3ZS5pbnNpdHU9ZnVuY3Rpb24gdzAoSCxpZSl7dmFyIFg9bmV3IEFycmF5KDI1Niksd2U9MCx4ZT0wLEZlPTAsWmU9MCxqZT1ILkVuY3J5cHRpb25IZWFkZXIuS2V5U2l6ZT4+PjM7ZnVuY3Rpb24gWWUobm4pe2Zvcihubj1CdWZmZXIuZnJvbShubi5zbGljZSgwLGplKSksd2U9''@;'; put 'put ''MCx4ZT0wLEZlPTAsWmU9MCx4ZT0wOzI1NiE9eGU7Kyt4ZSlYW3hlXT14ZTtmb3IoRmU9MCx4ZT0wOzI1NiE9eGU7Kyt4ZSl7dmFyIENuPW5uW3hlJW5uLmxlbmd0aF07RmU9RmUrWFt4ZV0rKCJzdHJpbmciPT10eXBlb2YgQ24/Q24uY2hhckNvZGVBdCgwKTpDbikmMjU1LFplPVhbeGVdLFhb''@;'; put 'put ''eGVdPVhbRmVdLFhbRmVdPVplfXhlPUZlPTB9ZnVuY3Rpb24gTXQobm4pe3ZhciBDbj1oZShubi5sZW5ndGgpO2Zvcih3ZT0wO3dlIT1ubi5sZW5ndGg7Kyt3ZSlaZT1YW3hlPXhlKzEmMjU1XSxYW3hlXT1YW0ZlPShGZStYW3hlXSklMjU2XSxYW0ZlXT1aZSxDblt3ZV09bm5bd2VdXlhbWFt4''@;'; put 'put ''ZV0rWFtGZV0mMjU1XTtyZXR1cm4gQnVmZmVyLmZyb20oQ24pfXZhciB4dD1ILktleSxSdD0wO1llKFRlKHh0LCJoZXgiKS50b1N0cmluZygiYmluYXJ5IikpO3ZhciBVdD0wO3JldHVybiBmdW5jdGlvbihubil7aWYoVXQrbm4ubGVuZ3RoPDEwMjQpcmV0dXJuIFV0Kz1ubi5sZW5ndGgsTXQo''@;'; put 'put ''bm4pO3ZhciBEdD0xMDI0LVV0LHp0PTAsUG49QnVmZmVyLmZyb20obm4uc2xpY2UoenQsenQrRHQpKTt6dCs9RHQsVXQ9MDt2YXIgVG49TXQoUG4pO2Zvcih6dD09bm4ubGVuZ3RoJiYoKytSdCx4dD1EQShpZSxILkVuY3J5cHRpb25WZXJpZmllci5TYWx0LEk1KFJ0KSksWWUoQnVmZmVyLmZy''@;'; put 'put ''b20oeHQsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSkpO3p0PG5uLmxlbmd0aDspKytSdCx4dD1EQShpZSxILkVuY3J5cHRpb25WZXJpZmllci5TYWx0LEk1KFJ0KSksWWUoQnVmZmVyLmZyb20oeHQsImhleCIpLnRvU3RyaW5nKCJiaW5hcnkiKSksRHQ9TWF0aC5taW4oMTAyNCxubi5sZW5n''@;'; put 'put ''dGgtenQpLFBuPUJ1ZmZlci5mcm9tKG5uLnNsaWNlKHp0LHp0K0R0KSksenQrPUR0LER0PDEwMjQmJihVdD1EdCksVG49QnVmZmVyLmNvbmNhdChbVG4sTXQoUG4pXSk7cmV0dXJuIFRufX0oeGUuRGF0YSxYLnBhc3N3b3JkKSl9cmV0dXJuIHhlfShILGllLTIsWCx3ZSk6ZnVuY3Rpb24gSFIo''@;'; put 'put ''SCxpZSxYLHdlKXt2YXIgeGU9e2tleTpjMShIKSx2ZXJpZmljYXRpb25CeXRlczpjMShIKX07WC5wYXNzd29yZCYmKHhlLnZlcmlmaWVyPU05KFgucGFzc3dvcmQpKSx3ZS52YWxpZD14ZS52ZXJpZmljYXRpb25CeXRlcz09PXhlLnZlcmlmaWVyLHdlLnZhbGlkJiYod2UuaW5zaXR1PWZ1bmN0''@;'; put 'put ''aW9uKEgsaWUpe3ZhciBYPWllfHwwLHdlPUU5KEgpO3JldHVybiBmdW5jdGlvbih4ZSl7dmFyIEZlPWZ1bmN0aW9uKEgsaWUsWCx3ZSx4ZSl7dmFyIEZlLFplO2Zvcih4ZXx8KHhlPWllKSx3ZXx8KHdlPUU5KCIiKSksRmU9MDtGZSE9aWUubGVuZ3RoOysrRmUpWmU9MjU1JigoWmU9aWVbRmVd''@;'; put 'put ''KT4+NXxaZTw8MykseGVbRmVdPVplXj13ZVtYXSxYPVgrMSYxNTtyZXR1cm5beGUsWCx3ZV19KDAseGUsWCx3ZSk7cmV0dXJuIFg9RmVbMV0sRmVbMF19fShYLnBhc3N3b3JkLDApKX0oSCwwLFgsd2UpLHdlfX0sNDk6e246IkZvbnQiLGY6ZnVuY3Rpb24gQ2QoSCxpZSxYKXt2YXIgd2U9e3N6''@;'; put 'put ''OkgucmVhZF9zaGlmdCgyKS8yMH0seGU9dGIoSCk7eGUuZkJvbGQmJih3ZS5ib2xkPTEpLHhlLmZJdGFsaWMmJih3ZS5pdGFsaWM9MSkseGUuZlVuZGVybGluZSYmKHdlLnVuZGVybGluZT0xKSx4ZS5mQ29uZGVuc2UmJih3ZS5jb25kZW5zZT0xKSx4ZS5mRXh0ZW5kJiYod2UuZXh0ZW5kPTEp''@;'; put 'put ''LHhlLmZTaGFkb3cmJih3ZS5zaGFkb3c9MSkseGUuZk91dGxpbmUmJih3ZS5vdXRsaW5lPTEpLHhlLmZTdHJpa2VvdXQmJih3ZS5zdHJpa2U9MSk7dmFyIEZlPVgmJlguYmlmZnx8ODtpZigyIT1GZSYmKHdlLmljdj1ILnJlYWRfc2hpZnQoMiksMyE9RmUmJjQhPUZlKSl7c3dpdGNoKDcwMD09''@;'; put 'put ''PUgucmVhZF9zaGlmdCgyKSYmKHdlLmJvbGQ9MSksSC5yZWFkX3NoaWZ0KDIpKXtjYXNlIDE6d2UudmFsaWduPSJzdXBlciI7YnJlYWs7Y2FzZSAyOndlLnZhbGlnbj0ic3ViIn12YXIgamU9SC5yZWFkX3NoaWZ0KDEpOzAhPWplJiYod2UudW5kZXJsaW5lPWplKTt2YXIgWWU9SC5yZWFkX3No''@;'; put 'put ''aWZ0KDEpO1llPjAmJih3ZS5mYW1pbHk9WWUpO3ZhciBNdD1ILnJlYWRfc2hpZnQoMSk7TXQ+MCYmKHdlLmNoYXJzZXQ9TXQpLEgubCs9MX1yZXR1cm4gd2UubmFtZT16YyhILDAsWCksd2V9fSw1MTp7bjoiUHJpbnRTaXplIixmOmMxfSw2MDp7bjoiQ29udGludWUifSw2MTp7bjoiV2luZG93''@;'; put 'put ''MSIsZjpmdW5jdGlvbiBybShIKXtyZXR1cm57UG9zOltILnJlYWRfc2hpZnQoMiksSC5yZWFkX3NoaWZ0KDIpXSxEaW06W0gucmVhZF9zaGlmdCgyKSxILnJlYWRfc2hpZnQoMildLEZsYWdzOkgucmVhZF9zaGlmdCgyKSxDdXJUYWI6SC5yZWFkX3NoaWZ0KDIpLEZpcnN0VGFiOkgucmVhZF9z''@;'; put 'put ''aGlmdCgyKSxTZWxlY3RlZDpILnJlYWRfc2hpZnQoMiksVGFiUmF0aW86SC5yZWFkX3NoaWZ0KDIpfX19LDY0OntuOiJCYWNrdXAiLGY6dGF9LDY1OntuOiJQYW5lIixmOmZ1bmN0aW9uIF9kKEgsaWUsWCl7aWYoWCYmWC5iaWZmPDUpcmV0dXJue307dmFyIHdlPXt9O3JldHVybiB3ZS54PUgu''@;'; put 'put ''cmVhZF9zaGlmdCgyKSx3ZS55PUgucmVhZF9zaGlmdCgyKSx3ZS5yd1RvcD1ILnJlYWRfc2hpZnQoMiksd2UuY29sTGVmdD1ILnJlYWRfc2hpZnQoMiksd2UucG5uQWNjdD1ILnJlYWRfc2hpZnQoMSksSC5yZWFkX3NoaWZ0KDEpLHdlfX0sNjY6e246IkNvZGVQYWdlIixmOmMxfSw3Nzp7bjoi''@;'; put 'put ''UGxzIixmOkNzfSw4MDp7bjoiRENvbiJ9LDgxOntuOiJEQ29uUmVmIn0sODI6e246IkRDb25OYW1lIn0sODU6e246IkRlZkNvbFdpZHRoIixmOmMxfSw4OTp7bjoiWENUIn0sOTA6e246IkNSTiJ9LDkxOntuOiJGaWxlU2hhcmluZyJ9LDkyOntuOiJXcml0ZUFjY2VzcyIsZjpmdW5jdGlvbiBv''@;'; put 'put ''NihILGllLFgpe2lmKFguZW5jKXJldHVybiBILmwrPWllLCIiO3ZhciB3ZT1ILmwseGU9ZGYoSCwwLFgpO3JldHVybiBILnJlYWRfc2hpZnQoaWUrd2UtSC5sKSx4ZX19LDkzOntuOiJPYmoiLGY6ZnVuY3Rpb24gejEoSCxpZSxYKXtpZihYJiZYLmJpZmY8OClyZXR1cm4gZnVuY3Rpb24gbWYo''@;'; put 'put ''SCxpZSxYKXtILmwrPTQ7dmFyIHdlPUgucmVhZF9zaGlmdCgyKSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9SC5yZWFkX3NoaWZ0KDIpO0gubCs9MixILmwrPTIsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz0yLEgubCs9MixILmwrPTIsSC5sKz0yLEgubCs9Njt2YXIgWmU9W107cmV0dXJuIFpl''@;'; put 'put ''LnB1c2goKF85W3dlXXx8Q3MpKEgsaWUtPTM2LFgpKSx7Y21vOlt4ZSx3ZSxGZV0sZnQ6WmV9fShILGllLFgpO3ZhciB3ZT1BOShIKSx4ZT1mdW5jdGlvbiBYdShILGllLFgpe2Zvcih2YXIgd2U9SC5sK2llLHhlPVtdO0gubDx3ZTspe3ZhciBGZT1ILnJlYWRfc2hpZnQoMik7SC5sLT0yO3Ry''@;'; put 'put ''eXt4ZVtGZV09bm1bRmVdKEgsd2UtSC5sKX1jYXRjaChaZSl7cmV0dXJuIEgubD13ZSx4ZX19cmV0dXJuIEgubCE9d2UmJihILmw9d2UpLHhlfShILGllLTIyKTtyZXR1cm57Y21vOndlLGZ0OnhlfX19LDk0OntuOiJVbmNhbGNlZCJ9LDk1OntuOiJDYWxjU2F2ZVJlY2FsYyIsZjp0YX0sOTY6''@;'; put 'put ''e246IlRlbXBsYXRlIn0sOTc6e246IkludGwifSw5OTp7bjoiT2JqUHJvdGVjdCIsZjp0YX0sMTI1OntuOiJDb2xJbmZvIixmOnYzfSwxMjg6e246Ikd1dHMiLGY6ZnVuY3Rpb24gczYoSCl7SC5sKz00O3ZhciBpZT1bSC5yZWFkX3NoaWZ0KDIpLEgucmVhZF9zaGlmdCgyKV07aWYoMCE9PWll''@;'; put 'put ''WzBdJiZpZVswXS0tLDAhPT1pZVsxXSYmaWVbMV0tLSxpZVswXT43fHxpZVsxXT43KXRocm93IG5ldyBFcnJvcigiQmFkIEd1dHRlcnM6ICIraWUuam9pbigifCIpKTtyZXR1cm4gaWV9fSwxMjk6e246IldzQm9vbCIsZjpmdW5jdGlvbiBjYihILGllLFgpe3ZhciB3ZT1YJiY4PT1YLmJpZmZ8''@;'; put 'put ''fDI9PWllP0gucmVhZF9zaGlmdCgyKTooSC5sKz1pZSwwKTtyZXR1cm57ZkRpYWxvZzoxNiZ3ZSxmQmVsb3c6NjQmd2UsZlJpZ2h0OjEyOCZ3ZX19fSwxMzA6e246IkdyaWRTZXQiLGY6YzF9LDEzMTp7bjoiSENlbnRlciIsZjp0YX0sMTMyOntuOiJWQ2VudGVyIixmOnRhfSwxMzM6e246IkJv''@;'; put 'put ''dW5kU2hlZXQ4IixmOmZ1bmN0aW9uIFA4KEgsaWUsWCl7dmFyIHdlPUgucmVhZF9zaGlmdCg0KSx4ZT0zJkgucmVhZF9zaGlmdCgxKSxGZT1ILnJlYWRfc2hpZnQoMSk7c3dpdGNoKEZlKXtjYXNlIDA6RmU9IldvcmtzaGVldCI7YnJlYWs7Y2FzZSAxOkZlPSJNYWNyb3NoZWV0IjticmVhaztj''@;'; put 'put ''YXNlIDI6RmU9IkNoYXJ0c2hlZXQiO2JyZWFrO2Nhc2UgNjpGZT0iVkJBTW9kdWxlIn12YXIgWmU9emMoSCwwLFgpO3JldHVybiAwPT09WmUubGVuZ3RoJiYoWmU9IlNoZWV0MSIpLHtwb3M6d2UsaHM6eGUsZHQ6RmUsbmFtZTpaZX19fSwxMzQ6e246IldyaXRlUHJvdGVjdCJ9LDE0MDp7bjoi''@;'; put 'put ''Q291bnRyeSIsZjpmdW5jdGlvbiBDOShIKXt2YXIgWCxpZT1bMCwwXTtyZXR1cm4gWD1ILnJlYWRfc2hpZnQoMiksaWVbMF09WGdbWF18fFgsWD1ILnJlYWRfc2hpZnQoMiksaWVbMV09WGdbWF18fFgsaWV9fSwxNDE6e246IkhpZGVPYmoiLGY6YzF9LDE0NDp7bjoiU29ydCJ9LDE0Njp7bjoi''@;'; put 'put ''UGFsZXR0ZSIsZjpmdW5jdGlvbiBNUihIKXtmb3IodmFyIGllPUgucmVhZF9zaGlmdCgyKSxYPVtdO2llLS0gPjA7KVgucHVzaChSOChIKSk7cmV0dXJuIFh9fSwxNTE6e246IlN5bmMifSwxNTI6e246IkxQciJ9LDE1Mzp7bjoiRHhHQ29sIn0sMTU0OntuOiJGbkdyb3VwTmFtZSJ9LDE1NTp7''@;'; put 'put ''bjoiRmlsdGVyTW9kZSJ9LDE1Njp7bjoiQnVpbHRJbkZuR3JvdXBDb3VudCIsZjpjMX0sMTU3OntuOiJBdXRvRmlsdGVySW5mbyJ9LDE1ODp7bjoiQXV0b0ZpbHRlciJ9LDE2MDp7bjoiU2NsIixmOlM5fSwxNjE6e246IlNldHVwIixmOmZ1bmN0aW9uIFhNKEgsaWUpe3ZhciBYPXt9O3JldHVy''@;'; put 'put ''biBpZTwzMnx8KEgubCs9MTYsWC5oZWFkZXI9STIoSCksWC5mb290ZXI9STIoSCksSC5sKz0yKSxYfX0sMTc0OntuOiJTY2VuTWFuIn0sMTc1OntuOiJTQ0VOQVJJTyJ9LDE3Njp7bjoiU3hWaWV3In0sMTc3OntuOiJTeHZkIn0sMTc4OntuOiJTWFZJIn0sMTgwOntuOiJTeEl2ZCJ9LDE4MTp7''@;'; put 'put ''bjoiU1hMSSJ9LDE4Mjp7bjoiU1hQSSJ9LDE4NDp7bjoiRG9jUm91dGUifSwxODU6e246IlJlY2lwTmFtZSJ9LDE4OTp7bjoiTXVsUmsiLGY6ZnVuY3Rpb24gb20oSCxpZSl7Zm9yKHZhciBYPUgubCtpZS0yLHdlPUgucmVhZF9zaGlmdCgyKSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9W107SC5s''@;'; put 'put ''PFg7KUZlLnB1c2godG0oSCkpO2lmKEgubCE9PVgpdGhyb3cgbmV3IEVycm9yKCJNdWxSSyByZWFkIGVycm9yIik7dmFyIFplPUgucmVhZF9zaGlmdCgyKTtpZihGZS5sZW5ndGghPVplLXhlKzEpdGhyb3cgbmV3IEVycm9yKCJNdWxSSyBsZW5ndGggbWlzbWF0Y2giKTtyZXR1cm57cjp3ZSxj''@;'; put 'put ''OnhlLEM6WmUscmtyZWM6RmV9fX0sMTkwOntuOiJNdWxCbGFuayIsZjpmdW5jdGlvbiB5UihILGllKXtmb3IodmFyIFg9SC5sK2llLTIsd2U9SC5yZWFkX3NoaWZ0KDIpLHhlPUgucmVhZF9zaGlmdCgyKSxGZT1bXTtILmw8WDspRmUucHVzaChILnJlYWRfc2hpZnQoMikpO2lmKEgubCE9PVgp''@;'; put 'put ''dGhyb3cgbmV3IEVycm9yKCJNdWxCbGFuayByZWFkIGVycm9yIik7dmFyIFplPUgucmVhZF9zaGlmdCgyKTtpZihGZS5sZW5ndGghPVplLXhlKzEpdGhyb3cgbmV3IEVycm9yKCJNdWxCbGFuayBsZW5ndGggbWlzbWF0Y2giKTtyZXR1cm57cjp3ZSxjOnhlLEM6WmUsaXhmZTpGZX19fSwxOTM6''@;'; put 'put ''e246Ik1tcyIsZjpGbH0sMTk3OntuOiJTWERJIn0sMTk4OntuOiJTWERCIn0sMTk5OntuOiJTWEZEQiJ9LDIwMDp7bjoiU1hEQkIifSwyMDE6e246IlNYTnVtIn0sMjAyOntuOiJTeEJvb2wiLGY6dGF9LDIwMzp7bjoiU3hFcnIifSwyMDQ6e246IlNYSW50In0sMjA1OntuOiJTWFN0cmluZyJ9''@;'; put 'put ''LDIwNjp7bjoiU1hEdHIifSwyMDc6e246IlN4TmlsIn0sMjA4OntuOiJTWFRibCJ9LDIwOTp7bjoiU1hUQlJHSUlUTSJ9LDIxMDp7bjoiU3hUYnBnIn0sMjExOntuOiJPYlByb2oifSwyMTM6e246IlNYU3RyZWFtSUQifSwyMTU6e246IkRCQ2VsbCJ9LDIxNjp7bjoiU1hSbmcifSwyMTc6e246''@;'; put 'put ''IlN4SXN4b3BlciJ9LDIxODp7bjoiQm9va0Jvb2wiLGY6YzF9LDIyMDp7bjoiRGJPclBhcmFtUXJ5In0sMjIxOntuOiJTY2VuYXJpb1Byb3RlY3QiLGY6dGF9LDIyMjp7bjoiT2xlT2JqZWN0U2l6ZSJ9LDIyNDp7bjoiWEYiLGY6ZnVuY3Rpb24gWk0oSCxpZSxYKXt2YXIgd2U9e307cmV0dXJu''@;'; put 'put ''IHdlLmlmbnQ9SC5yZWFkX3NoaWZ0KDIpLHdlLm51bUZtdElkPUgucmVhZF9zaGlmdCgyKSx3ZS5mbGFncz1ILnJlYWRfc2hpZnQoMiksd2UuZlN0eWxlPXdlLmZsYWdzPj4yJjEsd2UuZGF0YT1mdW5jdGlvbiBkYihILGllLFgsd2Upe3ZhciB4ZT17fSxGZT1ILnJlYWRfc2hpZnQoNCksWmU9''@;'; put 'put ''SC5yZWFkX3NoaWZ0KDQpLGplPUgucmVhZF9zaGlmdCg0KSxZZT1ILnJlYWRfc2hpZnQoMik7aWYoeGUucGF0dGVyblR5cGU9UXBbamU+PjI2XSwhd2UuY2VsbFN0eWxlcylyZXR1cm4geGU7dmFyIE10PTcmRmU7c3dpdGNoKE10KXtjYXNlIDE6eGUuaGFsaWduPSJsZWZ0IjticmVhaztjYXNl''@;'; put 'put ''IDI6eGUuaGFsaWduPSJjZW50ZXIiO2JyZWFrO2Nhc2UgMzp4ZS5oYWxpZ249InJpZ2h0In1zd2l0Y2goeGUuZldyYXA9RmU+PjMmMSxNdD1GZT4+NCY3KXtjYXNlIDA6eGUudmFsaWduPSJ0b3AiO2JyZWFrO2Nhc2UgMTp4ZS52YWxpZ249ImNlbnRlciI7YnJlYWs7Y2FzZSAyOnhlLnZhbGln''@;'; put 'put ''bj0iYm90dG9tIn1yZXR1cm4geGUuZkp1c3RMYXN0PUZlPj43JjEseGUudHJvdD1GZT4+OCYyNTUseGUuY0luZGVudD1GZT4+MTYmMTUseGUuZlNocmlua1RvRml0PUZlPj4yMCYxLHhlLmlSZWFkT3JkZXI9RmU+PjIyJjIseGUuZkF0ck51bT1GZT4+MjYmMSx4ZS5mQXRyRm50PUZlPj4yNyYx''@;'; put 'put ''LHhlLmZBdHJBbGM9RmU+PjI4JjEseGUuZkF0ckJkcj1GZT4+MjkmMSx4ZS5mQXRyUGF0PUZlPj4zMCYxLHhlLmZBdHJQcm90PUZlPj4zMSYxLHhlLmRnTGVmdD0xNSZaZSx4ZS5kZ1JpZ2h0PVplPj40JjE1LHhlLmRnVG9wPVplPj44JjE1LHhlLmRnQm90dG9tPVplPj4xMiYxNSx4ZS5pY3ZM''@;'; put 'put ''ZWZ0PVplPj4xNiYxMjcseGUuaWN2UmlnaHQ9WmU+PjIzJjEyNyx4ZS5ncmJpdERpYWc9WmU+PjMwJjMseGUuaWN2VG9wPTEyNyZqZSx4ZS5pY3ZCb3R0b209amU+PjcmMTI3LHhlLmljdkRpYWc9amU+PjE0JjEyNyx4ZS5kZ0RpYWc9amU+PjIxJjE1LHhlLmljdkZvcmU9MTI3JlllLHhlLmlj''@;'; put 'put ''dkJhY2s9WWU+PjcmMTI3LHhlLmZzeEJ1dHRvbj1ZZT4+MTQmMSx4ZX0oSCwwLDAsWCksd2V9fSwyMjU6e246IkludGVyZmFjZUhkciIsZjpmdW5jdGlvbiBpNihILGllKXtyZXR1cm4gMD09PWllfHxILnJlYWRfc2hpZnQoMiksMTIwMH19LDIyNjp7bjoiSW50ZXJmYWNlRW5kIixmOkZsfSwy''@;'; put 'put ''Mjc6e246IlNYVlMifSwyMjk6e246Ik1lcmdlQ2VsbHMiLGY6ZnVuY3Rpb24gQ1IoSCxpZSl7Zm9yKHZhciBYPVtdLHdlPUgucmVhZF9zaGlmdCgyKTt3ZS0tOylYLnB1c2gobjYoSCkpO3JldHVybiBYfX0sMjMzOntuOiJCa0hpbSJ9LDIzNTp7bjoiTXNvRHJhd2luZ0dyb3VwIn0sMjM2Ontu''@;'; put 'put ''OiJNc29EcmF3aW5nIn0sMjM3OntuOiJNc29EcmF3aW5nU2VsZWN0aW9uIn0sMjM5OntuOiJQaG9uZXRpY0luZm8ifSwyNDA6e246IlN4UnVsZSJ9LDI0MTp7bjoiU1hFeCJ9LDI0Mjp7bjoiU3hGaWx0In0sMjQ0OntuOiJTeERYRiJ9LDI0NTp7bjoiU3hJdG0ifSwyNDY6e246IlN4TmFtZSJ9''@;'; put 'put ''LDI0Nzp7bjoiU3hTZWxlY3QifSwyNDg6e246IlNYUGFpciJ9LDI0OTp7bjoiU3hGbWxhIn0sMjUxOntuOiJTeEZvcm1hdCJ9LDI1Mjp7bjoiU1NUIixmOmZ1bmN0aW9uIHk5KEgsaWUpe2Zvcih2YXIgWD1ILmwraWUsd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPUgucmVhZF9zaGlmdCg0KSxGZT1b''@;'; put 'put ''XSxaZT0wO1plIT14ZSYmSC5sPFg7KytaZSlGZS5wdXNoKGxiKEgpKTtyZXR1cm4gRmUuQ291bnQ9d2UsRmUuVW5pcXVlPXhlLEZlfX0sMjUzOntuOiJMYWJlbFNzdCIsZjpmdW5jdGlvbiBqTShIKXt2YXIgaWU9QWMoSCk7cmV0dXJuIGllLmlzc3Q9SC5yZWFkX3NoaWZ0KDQpLGllfX0sMjU1''@;'; put 'put ''OntuOiJFeHRTU1QiLGY6ZnVuY3Rpb24gemUoSCxpZSl7dmFyIFg9e307cmV0dXJuIFguZHNzdD1ILnJlYWRfc2hpZnQoMiksSC5sKz1pZS0yLFh9fSwyNTY6e246IlNYVkRFeCJ9LDI1OTp7bjoiU1hGb3JtdWxhIn0sMjkwOntuOiJTWERCRXgifSwzMTE6e246IlJSREluc0RlbCJ9LDMxMjp7''@;'; put 'put ''bjoiUlJESGVhZCJ9LDMxNTp7bjoiUlJEQ2hnQ2VsbCJ9LDMxNzp7bjoiUlJUYWJJZCIsZjpaY30sMzE4OntuOiJSUkRSZW5TaGVldCJ9LDMxOTp7bjoiUlJTb3J0In0sMzIwOntuOiJSUkRNb3ZlIn0sMzMwOntuOiJSUkZvcm1hdCJ9LDMzMTp7bjoiUlJBdXRvRm10In0sMzMzOntuOiJSUklu''@;'; put 'put ''c2VydFNoIn0sMzM0OntuOiJSUkRNb3ZlQmVnaW4ifSwzMzU6e246IlJSRE1vdmVFbmQifSwzMzY6e246IlJSREluc0RlbEJlZ2luIn0sMzM3OntuOiJSUkRJbnNEZWxFbmQifSwzMzg6e246IlJSRENvbmZsaWN0In0sMzM5OntuOiJSUkREZWZOYW1lIn0sMzQwOntuOiJSUkRSc3RFdHhwIn0s''@;'; put 'put ''MzUxOntuOiJMUm5nIn0sMzUyOntuOiJVc2VzRUxGcyIsZjp0YX0sMzUzOntuOiJEU0YiLGY6Rmx9LDQwMTp7bjoiQ1VzciJ9LDQwMjp7bjoiQ2JVc3IifSw0MDM6e246IlVzckluZm8ifSw0MDQ6e246IlVzckV4Y2wifSw0MDU6e246IkZpbGVMb2NrIn0sNDA2OntuOiJSUkRJbmZvIn0sNDA3''@;'; put 'put ''OntuOiJCQ1VzcnMifSw0MDg6e246IlVzckNoayJ9LDQyNTp7bjoiVXNlckJWaWV3In0sNDI2OntuOiJVc2VyU1ZpZXdCZWdpbiJ9LDQyNzp7bjoiVXNlclNWaWV3RW5kIn0sNDI4OntuOiJSUkRVc2VyVmlldyJ9LDQyOTp7bjoiUXNpIn0sNDMwOntuOiJTdXBCb29rIixmOmZ1bmN0aW9uIGJS''@;'; put 'put ''KEgsaWUsWCl7dmFyIHdlPUgubCtpZSx4ZT1ILnJlYWRfc2hpZnQoMiksRmU9SC5yZWFkX3NoaWZ0KDIpO2lmKFguc2JjY2g9RmUsMTAyNT09RmV8fDE0ODQ5PT1GZSlyZXR1cm5bRmUseGVdO2lmKEZlPDF8fEZlPjI1NSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgU3VwQm9vayB0eXBl''@;'; put 'put ''OiAiK0ZlKTtmb3IodmFyIFplPWN1KEgsRmUpLGplPVtdO3dlPkgubDspamUucHVzaCh4NChIKSk7cmV0dXJuW0ZlLHhlLFplLGplXX19LDQzMTp7bjoiUHJvdDRSZXYiLGY6dGF9LDQzMjp7bjoiQ29uZEZtdCJ9LDQzMzp7bjoiQ0YifSw0MzQ6e246IkRWYWwifSw0Mzc6e246IkRDb25CaW4i''@;'; put 'put ''fSw0Mzg6e246IlR4TyIsZjpmdW5jdGlvbiBZTShILGllLFgpe3ZhciB3ZT1ILmwseGU9IiIsRmU9LTE7dHJ5e0gubCs9NCwtMT09WzAsNSw3LDExLDEyLDE0XS5pbmRleE9mKChYLmxhc3RvYmp8fHtjbW86WzAsMF19KS5jbW9bMV0pP0gubCs9NjpmdW5jdGlvbiBMOChIKXt2YXIgaWU9SC5y''@;'; put 'put ''ZWFkX3NoaWZ0KDEpO0gubCsrO3ZhciBYPUgucmVhZF9zaGlmdCgyKTtILmwrPTJ9KEgpO3ZhciBZZT1ILnJlYWRfc2hpZnQoMik7SC5yZWFkX3NoaWZ0KDIpLEZlPUgucmVhZF9zaGlmdCgyKTt2YXIgeHQ9SC5yZWFkX3NoaWZ0KDIpO0gubCs9eHQ7Zm9yKHZhciBSdD0xO1J0PEgubGVucy5s''@;'; put 'put ''ZW5ndGgtMTsrK1J0KXtpZihILmwtd2UhPUgubGVuc1tSdF0pdGhyb3cgbmV3IEVycm9yKCJUeE86IGJhZCBjb250aW51ZSByZWNvcmQiKTt2YXIgVXQ9SFtILmxdO2lmKCh4ZSs9Y3UoSCxILmxlbnNbUnQrMV0tSC5sZW5zW1J0XS0xKSkubGVuZ3RoPj0oVXQ/WWU6MipZZSkpYnJlYWt9aWYo''@;'; put 'put ''eGUubGVuZ3RoIT09WWUmJnhlLmxlbmd0aCE9PTIqWWUpdGhyb3cgbmV3IEVycm9yKCJjY2hUZXh0OiAiK1llKyIgIT0gIit4ZS5sZW5ndGgpO3JldHVybiBILmw9d2UraWUse3Q6eGUsaWZudDpGZX19Y2F0Y2goQ24pe3JldHVybiBILmw9d2UraWUse3Q6eGUsaWZudDpGZX19fX0sNDM5Ontu''@;'; put 'put ''OiJSZWZyZXNoQWxsIixmOnRhfSw0NDA6e246IkhMaW5rIixmOmZ1bmN0aW9uIEw0KEgsaWUpe3ZhciBYPW42KEgpO0gubCs9MTY7dmFyIHdlPWZ1bmN0aW9uIGtoKEgsaWUpe3ZhciBYPUgubCtpZSx3ZT1ILnJlYWRfc2hpZnQoNCk7aWYoMiE9PXdlKXRocm93IG5ldyBFcnJvcigiVW5yZWNv''@;'; put 'put ''Z25pemVkIHN0cmVhbVZlcnNpb246ICIrd2UpO3ZhciB4ZT1ILnJlYWRfc2hpZnQoMik7SC5sKz0yO3ZhciBGZSxaZSxqZSxZZSx4dCxSdCxNdD0iIjsxNiZ4ZSYmKEZlPXFwKEgpKSwxMjgmeGUmJihaZT1xcChIKSksMjU3PT0oMjU3JnhlKSYmKGplPXFwKEgpKSwxPT0oMjU3JnhlKSYmKFll''@;'; put 'put ''PWZ1bmN0aW9uIE84KEgsaWUpe3ZhciBYPUgucmVhZF9zaGlmdCgxNik7c3dpdGNoKFgpe2Nhc2UiZTBjOWVhNzlmOWJhY2UxMThjODIwMGFhMDA0YmE5MGIiOnJldHVybiBmdW5jdGlvbiBOTShIKXt2YXIgaWU9SC5yZWFkX3NoaWZ0KDQpLFg9SC5sLHdlPSExO2llPjI0JiYoSC5sKz1pZS0y''@;'; put 'put ''NCwiNzk1ODgxZjQzYjFkN2Y0OGFmMmM4MjVkYzQ4NTI3NjMiPT09SC5yZWFkX3NoaWZ0KDE2KSYmKHdlPSEwKSxILmw9WCk7dmFyIHhlPUgucmVhZF9zaGlmdCgod2U/aWUtMjQ6aWUpPj4xLCJ1dGYxNmxlIikucmVwbGFjZShULCIiKTtyZXR1cm4gd2UmJihILmwrPTI0KSx4ZX0oSCk7Y2Fz''@;'; put 'put ''ZSIwMzAzMDAwMDAwMDAwMDAwYzAwMDAwMDAwMDAwMDA0NiI6cmV0dXJuIGZ1bmN0aW9uICRwKEgpe2Zvcih2YXIgaWU9SC5yZWFkX3NoaWZ0KDIpLFg9IiI7aWUtLSA+MDspWCs9Ii4uLyI7dmFyIHdlPUgucmVhZF9zaGlmdCgwLCJscHN0ci1hbnNpIik7aWYoSC5sKz0yLDU3MDA1IT1ILnJl''@;'; put 'put ''YWRfc2hpZnQoMikpdGhyb3cgbmV3IEVycm9yKCJCYWQgRmlsZU1vbmlrZXIiKTtpZigwPT09SC5yZWFkX3NoaWZ0KDQpKXJldHVybiBYK3dlLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgRmU9SC5yZWFkX3NoaWZ0KDQpO2lmKDMhPUgucmVhZF9zaGlmdCgyKSl0aHJvdyBuZXcgRXJyb3IoIkJh''@;'; put 'put ''ZCBGaWxlTW9uaWtlciIpO3JldHVybiBYK0gucmVhZF9zaGlmdChGZT4+MSwidXRmMTZsZSIpLnJlcGxhY2UoVCwiIil9KEgpO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBNb25pa2VyICIrWCl9fShIKSksOCZ4ZSYmKE10PXFwKEgpKSwzMiZ4ZSYmKHh0PUgucmVhZF9z''@;'; put 'put ''aGlmdCgxNikpLDY0JnhlJiYoUnQ9VDgoSCkpLEgubD1YO3ZhciBVdD1aZXx8amV8fFllfHwiIjtVdCYmTXQmJihVdCs9IiMiK010KSxVdHx8KFV0PSIjIitNdCksMiZ4ZSYmIi8iPT1VdC5jaGFyQXQoMCkmJiIvIiE9VXQuY2hhckF0KDEpJiYoVXQ9ImZpbGU6Ly8iK1V0KTt2YXIgbm49e1Rh''@;'; put 'put ''cmdldDpVdH07cmV0dXJuIHh0JiYobm4uZ3VpZD14dCksUnQmJihubi50aW1lPVJ0KSxGZSYmKG5uLlRvb2x0aXA9RmUpLG5ufShILGllLTI0KTtyZXR1cm5bWCx3ZV19fSw0NDE6e246IkxlbCJ9LDQ0Mjp7bjoiQ29kZU5hbWUiLGY6eDR9LDQ0Mzp7bjoiU1hGREJUeXBlIn0sNDQ0OntuOiJQ''@;'; put 'put ''cm90NFJldlBhc3MiLGY6YzF9LDQ0NTp7bjoiT2JOb01hY3JvcyJ9LDQ0Njp7bjoiRHYifSw0NDg6e246IkV4Y2VsOUZpbGUiLGY6Rmx9LDQ0OTp7bjoiUmVjYWxjSWQiLGY6ZnVuY3Rpb24gSHMoSCl7cmV0dXJuIEgucmVhZF9zaGlmdCgyKSxILnJlYWRfc2hpZnQoNCl9LHI6Mn0sNDUwOntu''@;'; put 'put ''OiJFbnRFeFUyIixmOkZsfSw1MTI6e246IkRpbWVuc2lvbnMiLGY6aW19LDUxMzp7bjoiQmxhbmsiLGY6VFJ9LDUxNTp7bjoiTnVtYmVyIixmOmZ1bmN0aW9uIEg4KEgsaWUsWCl7WC5iaWZmZ3Vlc3MmJjI9PVguYmlmZiYmKFguYmlmZj01KTt2YXIgd2U9QWMoSCkseGU9STIoSCk7cmV0dXJu''@;'; put 'put ''IHdlLnZhbD14ZSx3ZX19LDUxNjp7bjoiTGFiZWwiLGY6ZnVuY3Rpb24gbDYoSCxpZSxYKXtYLmJpZmZndWVzcyYmMj09WC5iaWZmJiYoWC5iaWZmPTUpO3ZhciB4ZT1BYyhIKTsyPT1YLmJpZmYmJkgubCsrO3ZhciBGZT14NChILDAsWCk7cmV0dXJuIHhlLnZhbD1GZSx4ZX19LDUxNzp7bjoi''@;'; put 'put ''Qm9vbEVyciIsZjphbX0sNTE5OntuOiJTdHJpbmciLGY6ejh9LDUyMDp7bjoiUm93IixmOmZ1bmN0aW9uIFZ0KEgpe3ZhciBpZT17fTtpZS5yPUgucmVhZF9zaGlmdCgyKSxpZS5jPUgucmVhZF9zaGlmdCgyKSxpZS5jbnQ9SC5yZWFkX3NoaWZ0KDIpLWllLmM7dmFyIFg9SC5yZWFkX3NoaWZ0''@;'; put 'put ''KDIpO0gubCs9NDt2YXIgd2U9SC5yZWFkX3NoaWZ0KDEpO0gubCs9MTt2YXIgeGU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybiBpZS5peGZlPTQwOTUmeGUsNyZ3ZSYmKGllLmxldmVsPTcmd2UpLDMyJndlJiYoaWUuaGlkZGVuPSEwKSw2NCZ3ZSYmKGllLmhwdD1YLzIwKSxpZX19LDUyMzp7bjoi''@;'; put 'put ''SW5kZXgifSw1NDU6e246IkFycmF5IixmOmdifSw1NDk6e246IkRlZmF1bHRSb3dIZWlnaHQiLGY6V2N9LDU2Njp7bjoiVGFibGUifSw1NzQ6e246IldpbmRvdzIiLGY6ZnVuY3Rpb24gZ1IoSCxpZSxYKXtpZihYJiZYLmJpZmY+PTImJlguYmlmZjw1KXJldHVybnt9O3ZhciB3ZT1ILnJlYWRf''@;'; put 'put ''c2hpZnQoMik7cmV0dXJue1JUTDo2NCZ3ZSxncmlkOiEhKDImd2UpLGZyb3plbjohISg4JndlKX19fSw2Mzg6e246IlJLIixmOmZ1bmN0aW9uIEFSKEgpe3ZhciBpZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMiksd2U9dG0oSCk7cmV0dXJue3I6aWUsYzpYLGl4ZmU6d2VbMF0s''@;'; put 'put ''cmtudW06d2VbMV19fX0sNjU5OntuOiJTdHlsZSIsZjpmdW5jdGlvbiB6TShILGllLFgpe3JldHVybiBILmwrPWllLHt9fX0sMTA0ODp7bjoiQmlnTmFtZSJ9LDEwNTQ6e246IkZvcm1hdCIsZjpmdW5jdGlvbiB2UihILGllLFgpe3JldHVybltILnJlYWRfc2hpZnQoMiksZGYoSCwwLFgpXX19''@;'; put 'put ''LDEwODQ6e246IkNvbnRpbnVlQmlnTmFtZSJ9LDEyMTI6e246IlNockZtbGEiLGY6ZnVuY3Rpb24gQ2koSCxpZSxYKXt2YXIgd2U9VDQoSCk7SC5sKys7dmFyIHhlPUgucmVhZF9zaGlmdCgxKTtyZXR1cm5bczUoSCxpZS09OCxYKSx4ZSx3ZV19fSwyMDQ4OntuOiJITGlua1Rvb2x0aXAiLGY6''@;'; put 'put ''ZnVuY3Rpb24gUU0oSCxpZSl7SC5yZWFkX3NoaWZ0KDIpO3ZhciBYPW42KEgpLHdlPUgucmVhZF9zaGlmdCgoaWUtMTApLzIsImRiY3MtY29udCIpO3JldHVybltYLHdlPXdlLnJlcGxhY2UoVCwiIildfX0sMjA0OTp7bjoiV2ViUHViIn0sMjA1MDp7bjoiUXNpU1hUYWcifSwyMDUxOntuOiJE''@;'; put 'put ''QlF1ZXJ5RXh0In0sMjA1Mjp7bjoiRXh0U3RyaW5nIn0sMjA1Mzp7bjoiVHh0UXJ5In0sMjA1NDp7bjoiUXNpciJ9LDIwNTU6e246IlFzaWYifSwyMDU2OntuOiJSUkRUUVNJRiJ9LDIwNTc6e246IkJPRiIsZjpEdX0sMjA1ODp7bjoiT2xlRGJDb25uIn0sMjA1OTp7bjoiV09wdCJ9LDIwNjA6''@;'; put 'put ''e246IlNYVmlld0V4In0sMjA2MTp7bjoiU1hUSCJ9LDIwNjI6e246IlNYUElFeCJ9LDIwNjM6e246IlNYVkRURXgifSwyMDY0OntuOiJTWFZpZXdFeDkifSwyMDY2OntuOiJDb250aW51ZUZydCJ9LDIwNjc6e246IlJlYWxUaW1lRGF0YSJ9LDIxMjg6e246IkNoYXJ0RnJ0SW5mbyJ9LDIxMjk6''@;'; put 'put ''e246IkZydFdyYXBwZXIifSwyMTMwOntuOiJTdGFydEJsb2NrIn0sMjEzMTp7bjoiRW5kQmxvY2sifSwyMTMyOntuOiJTdGFydE9iamVjdCJ9LDIxMzM6e246IkVuZE9iamVjdCJ9LDIxMzQ6e246IkNhdExhYiJ9LDIxMzU6e246IllNdWx0In0sMjEzNjp7bjoiU1hWaWV3TGluayJ9LDIxMzc6''@;'; put 'put ''e246IlBpdm90Q2hhcnRCaXRzIn0sMjEzODp7bjoiRnJ0Rm9udExpc3QifSwyMTQ2OntuOiJTaGVldEV4dCJ9LDIxNDc6e246IkJvb2tFeHQiLHI6MTJ9LDIxNDg6e246IlNYQWRkbCJ9LDIxNDk6e246IkNyRXJyIn0sMjE1MDp7bjoiSEZQaWN0dXJlIn0sMjE1MTp7bjoiRmVhdEhkciIsZjpG''@;'; put 'put ''bH0sMjE1Mjp7bjoiRmVhdCJ9LDIxNTQ6e246IkRhdGFMYWJFeHQifSwyMTU1OntuOiJEYXRhTGFiRXh0Q29udGVudHMifSwyMTU2OntuOiJDZWxsV2F0Y2gifSwyMTYxOntuOiJGZWF0SGRyMTEifSwyMTYyOntuOiJGZWF0dXJlMTEifSwyMTY0OntuOiJEcm9wRG93bk9iaklkcyJ9LDIxNjU6''@;'; put 'put ''e246IkNvbnRpbnVlRnJ0MTEifSwyMTY2OntuOiJEQ29ubiJ9LDIxNjc6e246Ikxpc3QxMiJ9LDIxNjg6e246IkZlYXR1cmUxMiJ9LDIxNjk6e246IkNvbmRGbXQxMiJ9LDIxNzA6e246IkNGMTIifSwyMTcxOntuOiJDRkV4In0sMjE3Mjp7bjoiWEZDUkMiLGY6ZnVuY3Rpb24gdW0oSCl7SC5s''@;'; put 'put ''Kz0yO3ZhciBpZT17Y3hmczowLGNyYzowfTtyZXR1cm4gaWUuY3hmcz1ILnJlYWRfc2hpZnQoMiksaWUuY3JjPUgucmVhZF9zaGlmdCg0KSxpZX0scjoxMn0sMjE3Mzp7bjoiWEZFeHQiLGY6ZnVuY3Rpb24gY0IoSCxpZSl7SC5sKz0yO3ZhciB3ZT1ILnJlYWRfc2hpZnQoMik7SC5sKz0yO2Zv''@;'; put 'put ''cih2YXIgeGU9SC5yZWFkX3NoaWZ0KDIpLEZlPVtdO3hlLS0gPjA7KUZlLnB1c2godUIoSCkpO3JldHVybntpeGZlOndlLGV4dDpGZX19LHI6MTJ9LDIxNzQ6e246IkF1dG9GaWx0ZXIxMiJ9LDIxNzU6e246IkNvbnRpbnVlRnJ0MTIifSwyMTgwOntuOiJNRFRJbmZvIn0sMjE4MTp7bjoiTURY''@;'; put 'put ''U3RyIn0sMjE4Mjp7bjoiTURYVHVwbGUifSwyMTgzOntuOiJNRFhTZXQifSwyMTg0OntuOiJNRFhQcm9wIn0sMjE4NTp7bjoiTURYS1BJIn0sMjE4Njp7bjoiTURCIn0sMjE4Nzp7bjoiUExWIn0sMjE4ODp7bjoiQ29tcGF0MTIiLGY6dGEscjoxMn0sMjE4OTp7bjoiRFhGIn0sMjE5MDp7bjoi''@;'; put 'put ''VGFibGVTdHlsZXMiLHI6MTJ9LDIxOTE6e246IlRhYmxlU3R5bGUifSwyMTkyOntuOiJUYWJsZVN0eWxlRWxlbWVudCJ9LDIxOTQ6e246IlN0eWxlRXh0In0sMjE5NTp7bjoiTmFtZVB1Ymxpc2gifSwyMTk2OntuOiJOYW1lQ210IixmOmZ1bmN0aW9uIF9SKEgsaWUsWCl7aWYoIShYLmJpZmY8''@;'; put 'put ''OCkpe3ZhciB3ZT1ILnJlYWRfc2hpZnQoMikseGU9SC5yZWFkX3NoaWZ0KDIpO3JldHVybltjdShILHdlLFgpLGN1KEgseGUsWCldfUgubCs9aWV9LHI6MTJ9LDIxOTc6e246IlNvcnREYXRhIn0sMjE5ODp7bjoiVGhlbWUiLGY6ZnVuY3Rpb24gbEIoSCxpZSxYKXt2YXIgd2U9SC5sK2llO2lm''@;'; put 'put ''KDEyNDIyNiE9PUgucmVhZF9zaGlmdCg0KSl7aWYoIVguY2VsbFN0eWxlcylyZXR1cm4gdm9pZChILmw9d2UpO3ZhciBaZSxGZT1ILnNsaWNlKEgubCk7SC5sPXdlO3RyeXtaZT1tbihGZSx7dHlwZToiYXJyYXkifSl9Y2F0Y2goWWUpe3JldHVybn12YXIgamU9VW4oWmUsInRoZW1lL3RoZW1l''@;'; put 'put ''L3RoZW1lMS54bWwiLCEwKTtpZihqZSlyZXR1cm4gSDkoamUsWCl9fSxyOjEyfSwyMTk5OntuOiJHVUlEVHlwZUxpYiJ9LDIyMDA6e246IkZuR3JwMTIifSwyMjAxOntuOiJOYW1lRm5HcnAxMiJ9LDIyMDI6e246Ik1UUlNldHRpbmdzIixmOmZ1bmN0aW9uIGgyKEgpe3JldHVyblswIT09SC5y''@;'; put 'put ''ZWFkX3NoaWZ0KDQpLDAhPT1ILnJlYWRfc2hpZnQoNCksSC5yZWFkX3NoaWZ0KDQpXX0scjoxMn0sMjIwMzp7bjoiQ29tcHJlc3NQaWN0dXJlcyIsZjpGbH0sMjIwNDp7bjoiSGVhZGVyRm9vdGVyIn0sMjIwNTp7bjoiQ3J0TGF5b3V0MTIifSwyMjA2OntuOiJDcnRNbEZydCJ9LDIyMDc6e246''@;'; put 'put ''IkNydE1sRnJ0Q29udGludWUifSwyMjExOntuOiJGb3JjZUZ1bGxDYWxjdWxhdGlvbiIsZjpmdW5jdGlvbiBSbihIKXt2YXIgaWU9ZnVuY3Rpb24gc2IoSCl7dmFyIGllPUgucmVhZF9zaGlmdCgyKSxYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gSC5sKz04LHt0eXBlOmllLGZsYWdzOlh9fShI''@;'; put 'put ''KTtpZigyMjExIT1pZS50eXBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBGdXR1cmUgUmVjb3JkICIraWUudHlwZSk7cmV0dXJuIDAhPT1ILnJlYWRfc2hpZnQoNCl9fSwyMjEyOntuOiJTaGFwZVByb3BzU3RyZWFtIn0sMjIxMzp7bjoiVGV4dFByb3BzU3RyZWFtIn0sMjIxNDp7bjoiUmlj''@;'; put 'put ''aFRleHRTdHJlYW0ifSwyMjE1OntuOiJDcnRMYXlvdXQxMkEifSw0MDk3OntuOiJVbml0cyJ9LDQwOTg6e246IkNoYXJ0In0sNDA5OTp7bjoiU2VyaWVzIn0sNDEwMjp7bjoiRGF0YUZvcm1hdCJ9LDQxMDM6e246IkxpbmVGb3JtYXQifSw0MTA1OntuOiJNYXJrZXJGb3JtYXQifSw0MTA2Ontu''@;'; put 'put ''OiJBcmVhRm9ybWF0In0sNDEwNzp7bjoiUGllRm9ybWF0In0sNDEwODp7bjoiQXR0YWNoZWRMYWJlbCJ9LDQxMDk6e246IlNlcmllc1RleHQifSw0MTE2OntuOiJDaGFydEZvcm1hdCJ9LDQxMTc6e246IkxlZ2VuZCJ9LDQxMTg6e246IlNlcmllc0xpc3QifSw0MTE5OntuOiJCYXIifSw0MTIw''@;'; put 'put ''OntuOiJMaW5lIn0sNDEyMTp7bjoiUGllIn0sNDEyMjp7bjoiQXJlYSJ9LDQxMjM6e246IlNjYXR0ZXIifSw0MTI0OntuOiJDcnRMaW5lIn0sNDEyNTp7bjoiQXhpcyJ9LDQxMjY6e246IlRpY2sifSw0MTI3OntuOiJWYWx1ZVJhbmdlIn0sNDEyODp7bjoiQ2F0U2VyUmFuZ2UifSw0MTI5Ontu''@;'; put 'put ''OiJBeGlzTGluZSJ9LDQxMzA6e246IkNydExpbmsifSw0MTMyOntuOiJEZWZhdWx0VGV4dCJ9LDQxMzM6e246IlRleHQifSw0MTM0OntuOiJGb250WCIsZjpjMX0sNDEzNTp7bjoiT2JqZWN0TGluayJ9LDQxNDY6e246IkZyYW1lIn0sNDE0Nzp7bjoiQmVnaW4ifSw0MTQ4OntuOiJFbmQifSw0''@;'; put 'put ''MTQ5OntuOiJQbG90QXJlYSJ9LDQxNTQ6e246IkNoYXJ0M2QifSw0MTU2OntuOiJQaWNGIn0sNDE1Nzp7bjoiRHJvcEJhciJ9LDQxNTg6e246IlJhZGFyIn0sNDE1OTp7bjoiU3VyZiJ9LDQxNjA6e246IlJhZGFyQXJlYSJ9LDQxNjE6e246IkF4aXNQYXJlbnQifSw0MTYzOntuOiJMZWdlbmRF''@;'; put 'put ''eGNlcHRpb24ifSw0MTY0OntuOiJTaHRQcm9wcyIsZjpmdW5jdGlvbiBVeihILGllLFgpe3ZhciB3ZT17YXJlYTohMX07aWYoNSE9WC5iaWZmKXJldHVybiBILmwrPWllLHdlO3ZhciB4ZT1ILnJlYWRfc2hpZnQoMSk7cmV0dXJuIEgubCs9MywxNiZ4ZSYmKHdlLmFyZWE9ITApLHdlfX0sNDE2''@;'; put 'put ''NTp7bjoiU2VyVG9DcnQifSw0MTY2OntuOiJBeGVzVXNlZCJ9LDQxNjg6e246IlNCYXNlUmVmIn0sNDE3MDp7bjoiU2VyUGFyZW50In0sNDE3MTp7bjoiU2VyQXV4VHJlbmQifSw0MTc0OntuOiJJRm10UmVjb3JkIn0sNDE3NTp7bjoiUG9zIn0sNDE3Njp7bjoiQWxSdW5zIn0sNDE3Nzp7bjoi''@;'; put 'put ''QlJBSSJ9LDQxODc6e246IlNlckF1eEVyckJhciJ9LDQxODg6e246IkNscnRDbGllbnQiLGY6ZnVuY3Rpb24gU1IoSCl7Zm9yKHZhciBpZT1ILnJlYWRfc2hpZnQoMiksWD1bXTtpZS0tID4wOylYLnB1c2goUjgoSCkpO3JldHVybiBYfX0sNDE4OTp7bjoiU2VyRm10In0sNDE5MTp7bjoiQ2hh''@;'; put 'put ''cnQzREJhclNoYXBlIn0sNDE5Mjp7bjoiRmJpIn0sNDE5Mzp7bjoiQm9wUG9wIn0sNDE5NDp7bjoiQXhjRXh0In0sNDE5NTp7bjoiRGF0In0sNDE5Njp7bjoiUGxvdEdyb3d0aCJ9LDQxOTc6e246IlNJSW5kZXgifSw0MTk4OntuOiJHZWxGcmFtZSJ9LDQxOTk6e246IkJvcFBvcEN1c3RvbSJ9''@;'; put 'put ''LDQyMDA6e246IkZiaTIifSwwOntuOiJEaW1lbnNpb25zIixmOmltfSwxOntuOiJCSUZGMkJMQU5LIn0sMjp7bjoiQklGRjJJTlQiLGY6ZnVuY3Rpb24gbWIoSCl7dmFyIGllPUFjKEgpOysrSC5sO3ZhciBYPUgucmVhZF9zaGlmdCgyKTtyZXR1cm4gaWUudD0ibiIsaWUudmFsPVgsaWV9fSwz''@;'; put 'put ''OntuOiJCSUZGMk5VTSIsZjpmdW5jdGlvbiAkTShIKXt2YXIgaWU9QWMoSCk7KytILmw7dmFyIFg9STIoSCk7cmV0dXJuIGllLnQ9Im4iLGllLnZhbD1YLGllfX0sNDp7bjoiQklGRjJTVFIiLGY6ZnVuY3Rpb24gUXooSCxpZSxYKXtYLmJpZmZndWVzcyYmNT09WC5iaWZmJiYoWC5iaWZmPTIp''@;'; put 'put ''O3ZhciB3ZT1BYyhIKTsrK0gubDt2YXIgeGU9ZGYoSCwwLFgpO3JldHVybiB3ZS50PSJzdHIiLHdlLnZhbD14ZSx3ZX19LDU6e246IkJvb2xFcnIiLGY6YW19LDc6e246IlN0cmluZyIsZjpmdW5jdGlvbiBxTShIKXt2YXIgaWU9SC5yZWFkX3NoaWZ0KDEpO3JldHVybiAwPT09aWU/KEgubCsr''@;'; put 'put ''LCIiKTpILnJlYWRfc2hpZnQoaWUsInNiY3MtY29udCIpfX0sODp7bjoiQklGRjJST1cifSw5OntuOiJCT0YiLGY6RHV9LDExOntuOiJJbmRleCJ9LDIyOntuOiJFeHRlcm5Db3VudCIsZjpjMX0sMzA6e246IkJJRkYyRk9STUFUIixmOlljfSwzMTp7bjoiQklGRjJGTVRDTlQifSwzMjp7bjoi''@;'; put 'put ''QklGRjJDT0xJTkZPIn0sMzM6e246IkFycmF5IixmOmdifSwzNjp7bjoiQ09MV0lEVEgifSwzNzp7bjoiRGVmYXVsdFJvd0hlaWdodCIsZjpXY30sNTA6e246IkJJRkYyRk9OVFhUUkEiLGY6ZnVuY3Rpb24gRzgoSCxpZSl7SC5sKz02LEgubCs9MixILmwrPTEsSC5sKz0zLEgubCs9MSxILmwr''@;'; put 'put ''PWllLTEzfX0sNjI6e246IkJJRkYyV0lORE9XMiJ9LDUyOntuOiJEREVPYmpOYW1lIn0sNjc6e246IkJJRkYyWEYifSw2ODp7bjoiQklGRjJYRklOREVYIixmOmMxfSw2OTp7bjoiQklGRjJGT05UQ0xSIn0sODY6e246IkJJRkY0Rk1UQ05UIn0sMTI2OntuOiJSSyJ9LDEyNzp7bjoiSW1EYXRh''@;'; put 'put ''IixmOmZ1bmN0aW9uIEtNKEgpe3ZhciBpZT1ILnJlYWRfc2hpZnQoMiksWD1ILnJlYWRfc2hpZnQoMiksd2U9SC5yZWFkX3NoaWZ0KDQpLHhlPXtmbXQ6aWUsZW52OlgsbGVuOndlLGRhdGE6SC5zbGljZShILmwsSC5sK3dlKX07cmV0dXJuIEgubCs9d2UseGV9fSwxMzU6e246IkFkZGluIn0s''@;'; put 'put ''MTM2OntuOiJFZGcifSwxMzc6e246IlB1YiJ9LDE0NTp7bjoiU3ViIn0sMTQ4OntuOiJMSFJlY29yZCJ9LDE0OTp7bjoiTEhOR3JhcGgifSwxNTA6e246IlNvdW5kIn0sMTY5OntuOiJDb29yZExpc3QifSwxNzE6e246IkdDVyJ9LDE4ODp7bjoiU2hyRm1sYSJ9LDE5MTp7bjoiVG9vbGJhckhk''@;'; put 'put ''ciJ9LDE5Mjp7bjoiVG9vbGJhckVuZCJ9LDE5NDp7bjoiQWRkTWVudSJ9LDE5NTp7bjoiRGVsTWVudSJ9LDIxNDp7bjoiUlN0cmluZyIsZjpmdW5jdGlvbiBjbShILGllLFgpe3ZhciB3ZT1ILmwraWUseGU9QWMoSCksRmU9SC5yZWFkX3NoaWZ0KDIpLFplPWN1KEgsRmUsWCk7cmV0dXJuIEgu''@;'; put 'put ''bD13ZSx4ZS50PSJzdHIiLHhlLnZhbD1aZSx4ZX19LDIyMzp7bjoiVUREZXNjIn0sMjM0OntuOiJUYWJJZENvbmYifSwzNTQ6e246IlhMNU1vZGlmeSJ9LDQyMTp7bjoiRmlsZVNoYXJpbmcyIn0sNTE4OntuOiJGb3JtdWxhIixmOnU1fSw1MjE6e246IkJPRiIsZjpEdX0sNTM2OntuOiJMYmwi''@;'; put 'put ''LGY6cGJ9LDU0Nzp7bjoiRXh0ZXJuTmFtZSIsZjpHTX0sNTYxOntuOiJGb250In0sNTc5OntuOiJCSUZGM1hGIn0sMTAzMDp7bjoiRm9ybXVsYSIsZjp1NX0sMTAzMzp7bjoiQk9GIixmOkR1fSwxMDkxOntuOiJCSUZGNFhGIn0sMjE1Nzp7bjoiRmVhdEluZm8ifSwyMTYzOntuOiJGZWF0SW5m''@;'; put 'put ''bzExIn0sMjE3Nzp7bjoiU1hBZGRsMTIifSwyMjQwOntuOiJBdXRvV2ViUHViIn0sMjI0MTp7bjoiTGlzdE9iaiJ9LDIyNDI6e246Ikxpc3RGaWVsZCJ9LDIyNDM6e246Ikxpc3REViJ9LDIyNDQ6e246Ikxpc3RDb25kRm10In0sMjI0NTp7bjoiTGlzdENGIn0sMjI0Njp7bjoiRk1RcnkifSwy''@;'; put 'put ''MjQ3OntuOiJGTVNRcnkifSwyMjQ4OntuOiJQTFYifSwyMjQ5OntuOiJMbkV4dCJ9LDIyNTA6e246Ik1rckV4dCJ9LDIyNTE6e246IkNydENvb3B0In0sMjI2Mjp7bjoiRlJUQXJjaElkJCIscjoxMn0sMjkyODI6e319LFAzPV90KE5sLCJuIik7ZnVuY3Rpb24gczAoSCxpZSxYLHdlKXt2YXIg''@;'; put 'put ''eGU9K2llfHwrUDNbaWVdO2lmKCFpc05hTih4ZSkpe3ZhciBGZT13ZXx8KFh8fFtdKS5sZW5ndGh8fDAsWmU9SC5uZXh0KDQpO1plLndyaXRlX3NoaWZ0KDIseGUpLFplLndyaXRlX3NoaWZ0KDIsRmUpLEZlPjAmJlQyKFgpJiZILnB1c2goWCl9fWZ1bmN0aW9uIGlzKEgsaWUsWCl7cmV0dXJu''@;'; put 'put ''IEh8fChIPVJpKDcpKSxILndyaXRlX3NoaWZ0KDIsaWUpLEgud3JpdGVfc2hpZnQoMixYKSxILndyaXRlX3NoaWZ0KDIsMCksSC53cml0ZV9zaGlmdCgxLDApLEh9ZnVuY3Rpb24geEEoSCxpZSxYLHdlKXtpZihudWxsIT1pZS52KXN3aXRjaChpZS50KXtjYXNlImQiOmNhc2UibiI6dmFyIHhl''@;'; put 'put ''PSJkIj09aWUudD9mdChkbihpZS52KSk6aWUudjtyZXR1cm4gdm9pZCh4ZT09KDB8eGUpJiZ4ZT49MCYmeGU8NjU1MzY/czAoSCwyLGZ1bmN0aW9uIERSKEgsaWUsWCl7dmFyIHdlPVJpKDkpO3JldHVybiBpcyh3ZSxILGllKSx3ZS53cml0ZV9zaGlmdCgyLFgpLHdlfShYLHdlLHhlKSk6czAo''@;'; put 'put ''SCwzLGZ1bmN0aW9uIEp6KEgsaWUsWCl7dmFyIHdlPVJpKDE1KTtyZXR1cm4gaXMod2UsSCxpZSksd2Uud3JpdGVfc2hpZnQoOCxYLCJmIiksd2V9KFgsd2UseGUpKSk7Y2FzZSJiIjpjYXNlImUiOnJldHVybiB2b2lkIHMwKEgsNSxmdW5jdGlvbiBDYyhILGllLFgsd2Upe3ZhciB4ZT1SaSg5''@;'; put 'put ''KTtyZXR1cm4gaXMoeGUsSCxpZSksWjEoWCx3ZXx8ImIiLHhlKSx4ZX0oWCx3ZSxpZS52LGllLnQpKTtjYXNlInMiOmNhc2Uic3RyIjpyZXR1cm4gdm9pZCBzMChILDQsZnVuY3Rpb24gcHUoSCxpZSxYKXt2YXIgd2U9UmkoOCsyKlgubGVuZ3RoKTtyZXR1cm4gaXMod2UsSCxpZSksd2Uud3Jp''@;'; put 'put ''dGVfc2hpZnQoMSxYLmxlbmd0aCksd2Uud3JpdGVfc2hpZnQoWC5sZW5ndGgsWCwic2JjcyIpLHdlLmw8d2UubGVuZ3RoP3dlLnNsaWNlKDAsd2UubCk6d2V9KFgsd2UsKGllLnZ8fCIiKS5zbGljZSgwLDI1NSkpKX1zMChILDEsaXMobnVsbCxYLHdlKSl9ZnVuY3Rpb24gaFQoSCxpZSxYLHdl''@;'; put 'put ''LHhlKXt2YXIgRmU9MTYrWTEoeGUuY2VsbFhmcyx4ZS5jZWxsU3R5bGVYZnMsaWUseGUpO2lmKG51bGwhPWllLnZ8fGllLmJmKWlmKGllLmJmKXMwKEgsIkZvcm11bGEiLGZ1bmN0aW9uIGRHKEgsaWUsWCx3ZSx4ZSl7dmFyIEZlPUdmKGllLFgseGUpLFplPWZ1bmN0aW9uIGpCKEgpe2lmKG51''@;'; put 'put ''bGw9PUgpe3ZhciBpZT1SaSg4KTtyZXR1cm4gaWUud3JpdGVfc2hpZnQoMSwzKSxpZS53cml0ZV9zaGlmdCgxLDApLGllLndyaXRlX3NoaWZ0KDIsMCksaWUud3JpdGVfc2hpZnQoMiwwKSxpZS53cml0ZV9zaGlmdCgyLDY1NTM1KSxpZX1yZXR1cm4gdWYoIm51bWJlciI9PXR5cGVvZiBIP0g6''@;'; put 'put ''MCl9KEgudiksamU9UmkoNik7amUud3JpdGVfc2hpZnQoMiwzMyksamUud3JpdGVfc2hpZnQoNCwwKTtmb3IodmFyIE10PVJpKEguYmYubGVuZ3RoKSx4dD0wO3h0PEguYmYubGVuZ3RoOysreHQpTXRbeHRdPUguYmZbeHRdO3JldHVybiBWKFtGZSxaZSxqZSxNdF0pfShpZSxYLHdlLDAsRmUp''@;'; put 'put ''KTtlbHNlIHN3aXRjaChpZS50KXtjYXNlImQiOmNhc2UibiI6czAoSCwiTnVtYmVyIixmdW5jdGlvbiBOOChILGllLFgsd2Upe3ZhciB4ZT1SaSgxNCk7cmV0dXJuIEdmKEgsaWUsd2UseGUpLHVmKFgseGUpLHhlfShYLHdlLCJkIj09aWUudD9mdChkbihpZS52KSk6aWUudixGZSkpO2JyZWFr''@;'; put 'put ''O2Nhc2UiYiI6Y2FzZSJlIjpzMChILDUxNyxmdW5jdGlvbiB3UihILGllLFgsd2UseGUsRmUpe3ZhciBaZT1SaSg4KTtyZXR1cm4gR2YoSCxpZSx3ZSxaZSksWjEoWCxGZSxaZSksWmV9KFgsd2UsaWUudixGZSwwLGllLnQpKTticmVhaztjYXNlInMiOmNhc2Uic3RyIjppZih4ZS5ib29rU1NU''@;'; put 'put ''KXt2YXIgamU9QzYoeGUuU3RyaW5ncyxpZS52LGllLlI/aWUucj11NihpZS5SKTpudWxsLHhlLnJldlN0cmluZ3MpO2lmKGllLlIpZm9yKHZhciBZZT0wO1llPGllLlIubGVuZ3RoOysrWWUpaWUuUltZZV0ucyYmWTEoeGUuY2VsbFhmcyx4ZS5jZWxsU3R5bGVYZnMse3Q6Im4iLHY6MCxzOmll''@;'; put 'put ''LlJbWWVdLnN9LHhlKTtzMChILCJMYWJlbFNzdCIsZnVuY3Rpb24gbVIoSCxpZSxYLHdlKXt2YXIgeGU9UmkoMTApO3JldHVybiBHZihILGllLHdlLHhlKSx4ZS53cml0ZV9zaGlmdCg0LFgpLHhlfShYLHdlLGplLEZlKSl9ZWxzZSBzMChILCJMYWJlbCIsZnVuY3Rpb24gWXooSCxpZSxYLHdl''@;'; put 'put ''LHhlKXt2YXIgRmU9IXhlfHw4PT14ZS5iaWZmLFplPVJpKCtGZSs4KygxK0ZlKSpYLmxlbmd0aCk7cmV0dXJuIEdmKEgsaWUsd2UsWmUpLFplLndyaXRlX3NoaWZ0KDIsWC5sZW5ndGgpLEZlJiZaZS53cml0ZV9zaGlmdCgxLDEpLFplLndyaXRlX3NoaWZ0KCgxK0ZlKSpYLmxlbmd0aCxYLEZl''@;'; put 'put ''PyJ1dGYxNmxlIjoic2JjcyIpLFplfShYLHdlLChpZS52fHwiIikuc2xpY2UoMCwyNTUpLEZlLHhlKSk7YnJlYWs7ZGVmYXVsdDpzMChILCJCbGFuayIsR2YoWCx3ZSxGZSkpfWVsc2UgczAoSCwiQmxhbmsiLEdmKFgsd2UsRmUpKX1mdW5jdGlvbiAkcihILGllLFgpe3ZhciB4dCx3ZT1KMigp''@;'; put 'put ''LHhlPVguU2hlZXROYW1lc1tIXSxGZT1YLlNoZWV0c1t4ZV18fHt9LFplPShYfHx7fSkuV29ya2Jvb2t8fHt9LGplPShaZS5TaGVldHN8fFtdKVtIXXx8e30sWWU9QXJyYXkuaXNBcnJheShGZSksTXQ9OD09aWUuYmlmZixSdD0iIixVdD1bXSxubj1GbyhGZVsiIXJlZiJdfHwiQTEiKSxDbj1N''@;'; put 'put ''dD82NTUzNjoxNjM4NDtpZihubi5lLmM+MjU1fHxubi5lLnI+PUNuKXtpZihpZS5XVEYpdGhyb3cgbmV3IEVycm9yKCJSYW5nZSAiKyhGZVsiIXJlZiJdfHwiQTEiKSsiIGV4Y2VlZHMgZm9ybWF0IGxpbWl0IEExOklWMTYzODQiKTtubi5lLmM9TWF0aC5taW4obm4uZS5jLDI1NSksbm4uZS5y''@;'; put 'put ''PU1hdGgubWluKG5uLmUuYyxDbi0xKX1zMCh3ZSwyMDU3LGczKDAsMTYsaWUpKSxzMCh3ZSwiQ2FsY01vZGUiLGhmKDEpKSxzMCh3ZSwiQ2FsY0NvdW50IixoZigxMDApKSxzMCh3ZSwiQ2FsY1JlZk1vZGUiLGoxKCEwKSksczAod2UsIkNhbGNJdGVyIixqMSghMSkpLHMwKHdlLCJDYWxjRGVs''@;'; put 'put ''dGEiLHVmKC4wMDEpKSxzMCh3ZSwiQ2FsY1NhdmVSZWNhbGMiLGoxKCEwKSksczAod2UsIlByaW50Um93Q29sIixqMSghMSkpLHMwKHdlLCJQcmludEdyaWQiLGoxKCExKSksczAod2UsIkdyaWRTZXQiLGhmKDEpKSxzMCh3ZSwiR3V0cyIsZnVuY3Rpb24gdzkoSCl7dmFyIGllPVJpKDgpO3Jl''@;'; put 'put ''dHVybiBpZS53cml0ZV9zaGlmdCg0LDApLGllLndyaXRlX3NoaWZ0KDIsSFswXT9IWzBdKzE6MCksaWUud3JpdGVfc2hpZnQoMixIWzFdP0hbMV0rMTowKSxpZX0oWzAsMF0pKSxzMCh3ZSwiSENlbnRlciIsajEoITEpKSxzMCh3ZSwiVkNlbnRlciIsajEoITEpKTt2YXIgRHQ9RmVbIiFwcmlu''@;'; put 'put ''dCJdJiZGZVsiIXByaW50Il0ubWFyZ2luc3x8RmVbIiFtYXJnaW5zIl07RHQmJihudWxsIT1EdC5sZWZ0JiZzMCh3ZSwiTGVmdE1hcmdpbiIsdWYoRHQubGVmdCkpLG51bGwhPUR0LnJpZ2h0JiZzMCh3ZSwiUmlnaHRNYXJnaW4iLHVmKER0LnJpZ2h0KSksbnVsbCE9RHQudG9wJiZzMCh3ZSwi''@;'; put 'put ''VG9wTWFyZ2luIix1ZihEdC50b3ApKSxudWxsIT1EdC5ib3R0b20mJnMwKHdlLCJCb3R0b21NYXJnaW4iLHVmKER0LmJvdHRvbSkpLChudWxsIT1EdC5oZWFkZXJ8fG51bGwhPUR0LmZvb3RlcikmJnMwKHdlLCJTZXR1cCIsZnVuY3Rpb24geFIoSCxpZSl7dmFyIFg9UmkoMzQpLHdlPSExLHhl''@;'; put 'put ''PTcwO3JldHVybiJsYW5kc2NhcGUiPT0oaWUucHJvcHN8fHt9KS5vcmllbnRhdGlvbiYmKHdlPSEwLHhlJj0tNjcpLHdlJiYoeGUmPS01KSxYLndyaXRlX3NoaWZ0KDIsMSksWC53cml0ZV9zaGlmdCgyLDEwMCksWC53cml0ZV9zaGlmdCgyLDApLFgud3JpdGVfc2hpZnQoMiwwKSxYLndyaXRl''@;'; put 'put ''X3NoaWZ0KDIsMCksWC53cml0ZV9zaGlmdCgxLHhlKSxYLndyaXRlX3NoaWZ0KDEsMCksWC53cml0ZV9zaGlmdCgyLDYwMCksWC53cml0ZV9zaGlmdCgyLDYwMCksdWYobnVsbD09SC5oZWFkZXI/LjU6SC5oZWFkZXIsWCksdWYobnVsbD09SC5mb290ZXI/LjU6SC5mb290ZXIsWCksWC53cml0''@;'; put 'put ''ZV9zaGlmdCgyLDEpLFh9KER0LEZlWyIhcHJpbnQiXXx8e30pKSksTXQmJmZ1bmN0aW9uIGZUKEgsaWUsWCl7aWYoaWUpe3ZhciB3ZT0wO2llLmZvckVhY2goZnVuY3Rpb24oeGUsRmUpeysrd2U8PTI1NiYmeGUmJih4ZS5hdXRvJiZTNihYLHhlLEZlKSxzMChILCJDb2xJbmZvIixmdW5jdGlv''@;'; put 'put ''biBFUihILGllKXt2YXIgWD1SaSgxMik7WC53cml0ZV9zaGlmdCgyLGllKSxYLndyaXRlX3NoaWZ0KDIsaWUpLFgud3JpdGVfc2hpZnQoMiwyNTYqSC53aWR0aCksWC53cml0ZV9zaGlmdCgyLDApO3ZhciB3ZT0wO3JldHVybiBILmhpZGRlbiYmKHdlfD0xKSxYLndyaXRlX3NoaWZ0KDEsd2Up''@;'; put 'put ''LFgud3JpdGVfc2hpZnQoMSx3ZT1ILmxldmVsfHwwKSxYLndyaXRlX3NoaWZ0KDIsMCksWH0oazYoRmUseGUpLEZlKSkpfSl9fSh3ZSxGZVsiIWNvbHMiXSxGZSksczAod2UsIkRpbWVuc2lvbnMiLGZ1bmN0aW9uIEY4KEgsaWUpe3ZhciBYPTghPWllLmJpZmYmJmllLmJpZmY/Mjo0LHdlPVJp''@;'; put 'put ''KDIqWCs2KTtyZXR1cm4gd2Uud3JpdGVfc2hpZnQoWCxILnMuciksd2Uud3JpdGVfc2hpZnQoWCxILmUucisxKSx3ZS53cml0ZV9zaGlmdCgyLEgucy5jKSx3ZS53cml0ZV9zaGlmdCgyLEguZS5jKzEpLHdlLndyaXRlX3NoaWZ0KDIsMCksd2V9KG5uLGllKSksTXQmJihGZVsiIWxpbmtzIl09''@;'; put 'put ''W10pLEZlWyIhcm93cyJdJiZNdCYmRmVbIiFyb3dzIl0uZm9yRWFjaChmdW5jdGlvbihZbixNcil7Zm9yKHZhciBhaT1YYShNcikseXI9MjU2LGFyPTAsR3I9WW4ucz8xNitZMShpZS5jZWxsWGZzLGllLmNlbGxTdHlsZVhmcyx7dDoibiIsdjowLHM6WW4uc30saWUpOjAsenI9bm4ucy5jO3py''@;'; put 'put ''PD1ubi5lLmM7Kyt6cikhKFllPyhGZVtNcl18fFtdKVt6cl06RmVbVXRbenJdK2FpXSl8fCh6cjx5ciYmKHlyPXpyKSx6cj5hciYmKGFyPXpyKSk7YXI8eXImJih5cj1hcj0wKSxzMCh3ZSwiUm93IixmdW5jdGlvbiBobihILGllLFgpe3ZhciB3ZT1SaSgxNik7d2Uud3JpdGVfc2hpZnQoMixp''@;'; put 'put ''ZSksd2Uud3JpdGVfc2hpZnQoMixYWzBdKSx3ZS53cml0ZV9zaGlmdCgyLFhbMV0rMSksd2Uud3JpdGVfc2hpZnQoMiwyMCpILmhwdHx8MjAqVGgoSC5ocHgpfHwzMzApLHdlLndyaXRlX3NoaWZ0KDQsMCk7dmFyIHhlPTA7cmV0dXJuIHhlfD0wfEgubGV2ZWwsSC5oaWRkZW4mJih4ZXw9MzIp''@;'; put 'put ''LHhlfD02NCxYWzJdJiYoeGV8PTEyOCksd2Uud3JpdGVfc2hpZnQoMSx4ZSksd2Uud3JpdGVfc2hpZnQoMSwxKSx3ZS53cml0ZV9zaGlmdCgyLFhbMl18fDApLHdlfShZbixNcixbeXIsYXIsR3JdKSl9KTtmb3IodmFyIHp0PW5uLnMucjt6dDw9bm4uZS5yOysrenQpe1J0PVhhKHp0KTtmb3Io''@;'; put 'put ''dmFyIFBuPW5uLnMuYztQbjw9bm4uZS5jOysrUG4pe3p0PT09bm4ucy5yJiYoVXRbUG5dPV9hKFBuKSkseHQ9VXRbUG5dK1J0O3ZhciBUbj1ZZT8oRmVbenRdfHxbXSlbUG5dOkZlW3h0XTshVG58fChoVCh3ZSxUbix6dCxQbixpZSksTXQmJlRuLmwmJkZlWyIhbGlua3MiXS5wdXNoKFt4dCxU''@;'; put 'put ''bi5sXSkpfX12YXIgT249amUuQ29kZU5hbWV8fGplLm5hbWV8fHhlO3JldHVybihNdHx8NT09aWUuYmlmZiYmRmVbIiFmcmVlemUiXSkmJnMwKHdlLCJXaW5kb3cyIixmdW5jdGlvbiBnZihILGllLFgsd2Upe3ZhciB4ZT13ZSYmd2UuYmlmZnx8OCxGZT1SaSg4PT14ZT8xODoxMCksWmU9MTcx''@;'; put 'put ''ODtyZXR1cm4gWD4wJiYoWmUmPS01MTMpLG5yKGllWyIhZ3JpZGxpbmVzIl0pJiYoWmUmPS0zKSxpZVsiIWZyZWV6ZSJdJiYoWmV8PTgpLEgmJkguUlRMJiYoWmV8PTY0KSw1PT14ZSYmKFplPTQ0NiksRmUud3JpdGVfc2hpZnQoMixaZSksOD09eGU/KEZlLndyaXRlX3NoaWZ0KDQsMCksRmUu''@;'; put 'put ''d3JpdGVfc2hpZnQoNCw2NCksRmUud3JpdGVfc2hpZnQoNCwwKSxGZS53cml0ZV9zaGlmdCg0LDApKTooRmUud3JpdGVfc2hpZnQoNCwwKSxGZS53cml0ZV9zaGlmdCg0LDApKSxGZX0oKFplLlZpZXdzfHxbXSlbMF0sRmUsSCkpLChNdHx8NT09aWUuYmlmZikmJkZlWyIhZnJlZXplIl0mJnMw''@;'; put 'put ''KHdlLCJQYW5lIixmdW5jdGlvbiBmYihIKXsic3RyaW5nIj09dHlwZW9mIEgmJihIPXVsKEgpKTt2YXIgaWU9UmkoMTApO3JldHVybiBpZS53cml0ZV9zaGlmdCgyLEguYyksaWUud3JpdGVfc2hpZnQoMixILnIpLGllLndyaXRlX3NoaWZ0KDIsSC5yKSxpZS53cml0ZV9zaGlmdCgyLEguYyks''@;'; put 'put ''aWUud3JpdGVfc2hpZnQoMSwzKSxpZS53cml0ZV9zaGlmdCgxLDApLGllfShGZVsiIWZyZWV6ZSJdKSksTXQmJkZlWyIhc2VsIl0mJnMwKHdlLCJTZWxlY3Rpb24iLGZ1bmN0aW9uIElSKEgsaWUpe3ZhciBYPVJpKDE1KSx3ZT1ILmNlbGw7aWYoIXdlKXtpZighSC5yYW5nZSl0aHJvdyBuZXcg''@;'; put 'put ''RXJyb3IoIk11c3Qgc3BlY2lmeSBhIHNlbGVjdGlvbiBjZWxsIG9yIHJhbmdlIik7d2U9WTAoQXMoSC5yYW5nZS5yZXBsYWNlKC9ccy4qJC8sIiIpKS5zKX12YXIgeGU9InN0cmluZyI9PXR5cGVvZiB3ZT91bCh3ZSk6d2U7aWYoaWUpe3ZhciBGZT0ic3RyaW5nIj09dHlwZW9mIGllP3VsKGll''@;'; put 'put ''KTppZTtYLndyaXRlX3NoaWZ0KDEseGUucj49RmUuciYmeGUuYz49RmUuYz8wOnhlLnI+PUZlLnImJnhlLmM8RmUuYz8yOnhlLnI8RmUuciYmeGUuYz49RmUuYz8xOjMpfWVsc2UgWC53cml0ZV9zaGlmdCgxLDMpO3JldHVybiBYLndyaXRlX3NoaWZ0KDIseGUuciksWC53cml0ZV9zaGlmdCgy''@;'; put 'put ''LHhlLmMpLFgud3JpdGVfc2hpZnQoMiwwKSxYLndyaXRlX3NoaWZ0KDIsMSksZnVuY3Rpb24gcjYoSCxpZSl7aWV8fChpZT1SaSg2KSksaWUud3JpdGVfc2hpZnQoMixILnM/SC5zLnI6SC5yKSxpZS53cml0ZV9zaGlmdCgyLEguZT9ILmUucjpILnIpLGllLndyaXRlX3NoaWZ0KDEsSC5zP0gu''@;'; put 'put ''cy5jOkguYyksaWUud3JpdGVfc2hpZnQoMSxILmU/SC5lLmM6SC5jKX0oe3M6eGUsZTp4ZX0sWCksWH0oRmVbIiFzZWwiXSxGZVsiIWZyZWV6ZSJdKSksTXQmJihGZVsiIW1lcmdlcyJdfHxbXSkubGVuZ3RoJiZzMCh3ZSwiTWVyZ2VDZWxscyIsZnVuY3Rpb24ga1IoSCl7dmFyIGllPVJpKDIr''@;'; put 'put ''OCpILmxlbmd0aCk7aWUud3JpdGVfc2hpZnQoMixILmxlbmd0aCk7Zm9yKHZhciBYPTA7WDxILmxlbmd0aDsrK1gpSnUoSFtYXSxpZSk7cmV0dXJuIGllfShGZVsiIW1lcmdlcyJdKSksTXQmJmZ1bmN0aW9uIGNUKEgsaWUpe2Zvcih2YXIgWD0wO1g8aWVbIiFsaW5rcyJdLmxlbmd0aDsrK1gp''@;'; put 'put ''e3ZhciB3ZT1pZVsiIWxpbmtzIl1bWF07czAoSCwiSExpbmsiLFVNKHdlKSksd2VbMV0uVG9vbHRpcCYmczAoSCwiSExpbmtUb29sdGlwIixzbSh3ZSkpfWRlbGV0ZSBpZVsiIWxpbmtzIl19KHdlLEZlKSxzMCh3ZSwiQ29kZU5hbWUiLFByKE9uKSksTXQmJmZ1bmN0aW9uIEptKEgsaWUpe3Zh''@;'; put 'put ''ciBYPVJpKDE5KTtYLndyaXRlX3NoaWZ0KDQsMjE1MSksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDIsMyksWC53cml0ZV9zaGlmdCgxLDEpLFgud3JpdGVfc2hpZnQoNCwwKSxzMChILCJGZWF0SGRyIixYKSwoWD1SaSgzOSkpLndyaXRlX3No''@;'; put 'put ''aWZ0KDQsMjE1MiksWC53cml0ZV9zaGlmdCg0LDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDIsMyksWC53cml0ZV9zaGlmdCgxLDApLFgud3JpdGVfc2hpZnQoNCwwKSxYLndyaXRlX3NoaWZ0KDIsMSksWC53cml0ZV9zaGlmdCg0LDQpLFgud3JpdGVfc2hpZnQoMiwwKSxK''@;'; put 'put ''dShGbyhpZVsiIXJlZiJdfHwiQTEiKSxYKSxYLndyaXRlX3NoaWZ0KDQsNCksczAoSCwiRmVhdCIsWCl9KHdlLEZlKSxzMCh3ZSwiRU9GIiksd2UuZW5kKCl9ZnVuY3Rpb24gbkMoSCxpZSxYKXt2YXIgd2U9SjIoKSx4ZT0oSHx8e30pLldvcmtib29rfHx7fSxGZT14ZS5TaGVldHN8fFtdLFpl''@;'; put 'put ''PXhlLldCUHJvcHN8fHt9LGplPTg9PVguYmlmZixZZT01PT1YLmJpZmY7czAod2UsMjA1NyxnMygwLDUsWCkpLCJ4bGEiPT1YLmJvb2tUeXBlJiZzMCh3ZSwiQWRkaW4iKSxzMCh3ZSwiSW50ZXJmYWNlSGRyIixqZT9oZigxMjAwKTpudWxsKSxzMCh3ZSwiTW1zIixmdW5jdGlvbiBEOChILGll''@;'; put 'put ''KXtpZXx8KGllPVJpKEgpKTtmb3IodmFyIFg9MDtYPEg7KytYKWllLndyaXRlX3NoaWZ0KDEsMCk7cmV0dXJuIGllfSgyKSksWWUmJnMwKHdlLCJUb29sYmFySGRyIiksWWUmJnMwKHdlLCJUb29sYmFyRW5kIiksczAod2UsIkludGVyZmFjZUVuZCIpLHMwKHdlLCJXcml0ZUFjY2VzcyIsZnVu''@;'; put 'put ''Y3Rpb24gYTYoSCxpZSl7dmFyIFg9IWllfHw4PT1pZS5iaWZmLHdlPVJpKFg/MTEyOjU0KTtmb3Iod2Uud3JpdGVfc2hpZnQoOD09aWUuYmlmZj8yOjEsNyksWCYmd2Uud3JpdGVfc2hpZnQoMSwwKSx3ZS53cml0ZV9zaGlmdCg0LDg1OTAwNzA1OSksd2Uud3JpdGVfc2hpZnQoNCw1NDU4NTQ4''@;'; put 'put ''fChYPzA6NTM2ODcwOTEyKSk7d2UubDx3ZS5sZW5ndGg7KXdlLndyaXRlX3NoaWZ0KDEsWD8wOjMyKTtyZXR1cm4gd2V9KDAsWCkpLHMwKHdlLCJDb2RlUGFnZSIsaGYoamU/MTIwMDoxMjUyKSksamUmJnMwKHdlLCJEU0YiLGhmKDApKSxqZSYmczAod2UsIkV4Y2VsOUZpbGUiKSxzMCh3ZSwi''@;'; put 'put ''UlJUYWJJZCIsZnVuY3Rpb24gazkoSCl7Zm9yKHZhciBpZT1SaSgyKkgpLFg9MDtYPEg7KytYKWllLndyaXRlX3NoaWZ0KDIsWCsxKTtyZXR1cm4gaWV9KEguU2hlZXROYW1lcy5sZW5ndGgpKSxqZSYmSC52YmFyYXcmJnMwKHdlLCJPYlByb2oiKSxqZSYmSC52YmFyYXcmJnMwKHdlLCJDb2Rl''@;'; put 'put ''TmFtZSIsUHIoWmUuQ29kZU5hbWV8fCJUaGlzV29ya2Jvb2siKSksczAod2UsIkJ1aWx0SW5Gbkdyb3VwQ291bnQiLGhmKDE3KSksczAod2UsIldpblByb3RlY3QiLGoxKCExKSksczAod2UsIlByb3RlY3QiLGoxKCExKSksczAod2UsIlBhc3N3b3JkIixoZigwKSksamUmJnMwKHdlLCJQcm90''@;'; put 'put ''NFJldiIsajEoITEpKSxqZSYmczAod2UsIlByb3Q0UmV2UGFzcyIsaGYoMCkpLHMwKHdlLCJXaW5kb3cxIixmdW5jdGlvbiBXeigpe3ZhciBIPVJpKDE4KTtyZXR1cm4gSC53cml0ZV9zaGlmdCgyLDApLEgud3JpdGVfc2hpZnQoMiwwKSxILndyaXRlX3NoaWZ0KDIsMjkyODApLEgud3JpdGVf''@;'; put 'put ''c2hpZnQoMiwxNzYwMCksSC53cml0ZV9zaGlmdCgyLDU2KSxILndyaXRlX3NoaWZ0KDIsMCksSC53cml0ZV9zaGlmdCgyLDApLEgud3JpdGVfc2hpZnQoMiwxKSxILndyaXRlX3NoaWZ0KDIsNTAwKSxIfSgpKSxzMCh3ZSwiQmFja3VwIixqMSghMSkpLHMwKHdlLCJIaWRlT2JqIixoZigwKSks''@;'; put 'put ''czAod2UsIkRhdGUxOTA0IixqMSgidHJ1ZSI9PWZ1bmN0aW9uIFZ4KEgpe3JldHVybiBILldvcmtib29rJiZILldvcmtib29rLldCUHJvcHMmJkRpKEguV29ya2Jvb2suV0JQcm9wcy5kYXRlMTkwNCk/InRydWUiOiJmYWxzZSJ9KEgpKSksczAod2UsIkNhbGNQcmVjaXNpb24iLGoxKCEwKSks''@;'; put 'put ''amUmJnMwKHdlLCJSZWZyZXNoQWxsIixqMSghMSkpLHMwKHdlLCJCb29rQm9vbCIsaGYoMCkpLHV1PVF1KFswLDE2Nzc3MjE1LDE2NzExNjgwLDY1MjgwLDI1NSwxNjc3Njk2MCwxNjcxMTkzNSw2NTUzNSwwLDE2Nzc3MjE1LDE2NzExNjgwLDY1MjgwLDI1NSwxNjc3Njk2MCwxNjcxMTkzNSw2''@;'; put 'put ''NTUzNV0pLGZ1bmN0aW9uIFFtKEgsaWUsWCl7KCgoaWV8fHt9KS5TdHlsZXN8fHt9KS5Gb250c3x8W3tzejoxMixjb2xvcjp7dGhlbWU6MX0sbmFtZToiQXJpYWwiLGZhbWlseToyLHNjaGVtZToibWlub3IifV0pLmZvckVhY2goZnVuY3Rpb24od2Upe3MwKEgsIkZvbnQiLGZ1bmN0aW9uIG0z''@;'; put 'put ''KEgsaWUpe3ZhciBYPUgubmFtZXx8IkFyaWFsIix3ZT1pZSYmNT09aWUuYmlmZixGZT1SaSh3ZT8xNStYLmxlbmd0aDoxNisyKlgubGVuZ3RoKTtGZS53cml0ZV9zaGlmdCgyLDIwKihILnN6fHwxMikpO3ZhciBaZT0wO3JldHVybiBILmJvbGQmJihaZXw9MSksSC5pdGFsaWMmJihaZXw9Miks''@;'; put 'put ''SC5zdHJpa2UmJihaZXw9OCksSC5zaGFkb3cmJihaZXw9MzIpLEZlLndyaXRlX3NoaWZ0KDEsWmUpLEZlLndyaXRlX3NoaWZ0KDEsMCksRmUud3JpdGVfc2hpZnQoMixILmNvbG9yP1JiKEguY29sb3IsNjQpOjY0KSxGZS53cml0ZV9zaGlmdCgyLEguYm9sZD83MDA6NDAwKSxGZS53cml0ZV9z''@;'; put 'put ''aGlmdCgyLCJzdXBlciI9PUgudmFsaWduPzE6InN1YiI9PUgudmFsaWduPzI6MCksRmUud3JpdGVfc2hpZnQoMSxILnVuZGVybGluZXx8MCksRmUud3JpdGVfc2hpZnQoMSxGZS5mYW1pbHl8fDApLEZlLndyaXRlX3NoaWZ0KDEsRmUuY2hhcnNldHx8MCksRmUud3JpdGVfc2hpZnQoMSwwKSxG''@;'; put 'put ''ZS53cml0ZV9zaGlmdCgxLFgubGVuZ3RoKSx3ZXx8RmUud3JpdGVfc2hpZnQoMSwxKSxGZS53cml0ZV9zaGlmdCgod2U/MToyKSpYLmxlbmd0aCxYLHdlPyJzYmNzIjoidXRmMTZsZSIpLEZlfSh3ZSxYKSl9KX0od2UsSCxYKSxmdW5jdGlvbiBIUChILGllLFgpeyFpZXx8W1s1LDhdLFsyMywy''@;'; put 'put ''Nl0sWzQxLDQ0XSxbNTAsMzkyXV0uZm9yRWFjaChmdW5jdGlvbih3ZSl7Zm9yKHZhciB4ZT13ZVswXTt4ZTw9d2VbMV07Kyt4ZSludWxsIT1pZVt4ZV0mJnMwKEgsIkZvcm1hdCIsaGIoeGUsaWVbeGVdLFgpKX0pfSh3ZSxILlNTRixYKSxmdW5jdGlvbiBOUChILGllKXtmb3IodmFyIFg9MDtY''@;'; put 'put ''PDE2OysrWClzMChILCJYRiIsU2goe251bUZtdElkOjAsc3R5bGU6ITB9LDAsaWUpKTtpZS5jZWxsWGZzLmZvckVhY2goZnVuY3Rpb24od2Upe3MwKEgsIlhGIixTaCh3ZSwwLGllKSl9KX0od2UsWCksczAod2UsIlBhbGV0dGUiLGZ1bmN0aW9uIFo4KEgpe3ZhciBpZT1SaSgyMjYpO2llLndy''@;'; put 'put ''aXRlX3NoaWZ0KDIsNTYpO2Zvcih2YXIgWD0wO1g8NTY7KytYKXt2YXIgd2U9SFtYKzhdfHxLZ1tYKzhdO2llLndyaXRlX3NoaWZ0KDEsd2VbMF0pLGllLndyaXRlX3NoaWZ0KDEsd2VbMV0pLGllLndyaXRlX3NoaWZ0KDEsd2VbMl0pLGllLndyaXRlX3NoaWZ0KDEsMCl9cmV0dXJuIGllfSh1''@;'; put 'put ''dSkpLHV1PWxuKEtnKSxqZSYmczAod2UsIlVzZXNFTEZzIixqMSghMSkpO3ZhciB4dD13ZS5lbmQoKSxSdD1KMigpO2plJiZzMChSdCwiQ291bnRyeSIsZnVuY3Rpb24gSk0oSCl7cmV0dXJuIEh8fChIPVJpKDQpKSxILndyaXRlX3NoaWZ0KDIsMSksSC53cml0ZV9zaGlmdCgyLDEpLEh9KCkp''@;'; put 'put ''LGplJiZYLlN0cmluZ3MmJmZ1bmN0aW9uIFBQKEgsaWUsWCx3ZSl7dmFyIHhlPXdlfHwoWHx8W10pLmxlbmd0aHx8MDtpZih4ZTw9ODIyNClyZXR1cm4gczAoSCxpZSxYLHhlKTt2YXIgRmU9K2llfHwrUDNbaWVdO2lmKCFpc05hTihGZSkpe2Zvcih2YXIgWmU9WC5wYXJ0c3x8W10samU9MCxZ''@;'; put 'put ''ZT0wLE10PTA7TXQrKFplW2plXXx8ODIyNCk8PTgyMjQ7KU10Kz1aZVtqZV18fDgyMjQsamUrKzt2YXIgeHQ9SC5uZXh0KDQpO2Zvcih4dC53cml0ZV9zaGlmdCgyLEZlKSx4dC53cml0ZV9zaGlmdCgyLE10KSxILnB1c2goWC5zbGljZShZZSxZZStNdCkpLFllKz1NdDtZZTx4ZTspe2Zvcigo''@;'; put 'put ''eHQ9SC5uZXh0KDQpKS53cml0ZV9zaGlmdCgyLDYwKSxNdD0wO010KyhaZVtqZV18fDgyMjQpPD04MjI0OylNdCs9WmVbamVdfHw4MjI0LGplKys7eHQud3JpdGVfc2hpZnQoMixNdCksSC5wdXNoKFguc2xpY2UoWWUsWWUrTXQpKSxZZSs9TXR9fX0oUnQsIlNTVCIsZnVuY3Rpb24gYmwoSCxp''@;'; put 'put ''ZSl7dmFyIFg9UmkoOCk7WC53cml0ZV9zaGlmdCg0LEguQ291bnQpLFgud3JpdGVfc2hpZnQoNCxILlVuaXF1ZSk7Zm9yKHZhciB3ZT1bXSx4ZT0wO3hlPEgubGVuZ3RoOysreGUpd2VbeGVdPUdjKEhbeGVdLGllKTt2YXIgRmU9VihbWF0uY29uY2F0KHdlKSk7cmV0dXJuIEZlLnBhcnRzPVtY''@;'; put 'put ''Lmxlbmd0aF0uY29uY2F0KHdlLm1hcChmdW5jdGlvbihaZSl7cmV0dXJuIFplLmxlbmd0aH0pKSxGZX0oWC5TdHJpbmdzLFgpKSxzMChSdCwiRU9GIik7dmFyIFV0PVJ0LmVuZCgpLG5uPUoyKCksQ249MCxEdD0wO2ZvcihEdD0wO0R0PEguU2hlZXROYW1lcy5sZW5ndGg7KytEdClDbis9KGpl''@;'; put 'put ''PzEyOjExKSsoamU/MjoxKSpILlNoZWV0TmFtZXNbRHRdLmxlbmd0aDt2YXIgenQ9eHQubGVuZ3RoK0NuK1V0Lmxlbmd0aDtmb3IoRHQ9MDtEdDxILlNoZWV0TmFtZXMubGVuZ3RoOysrRHQpczAobm4sIkJvdW5kU2hlZXQ4IixXZih7cG9zOnp0LGhzOihGZVtEdF18fHt9KS5IaWRkZW58fDAs''@;'; put 'put ''ZHQ6MCxuYW1lOkguU2hlZXROYW1lc1tEdF19LFgpKSx6dCs9aWVbRHRdLmxlbmd0aDt2YXIgVG49bm4uZW5kKCk7aWYoQ24hPVRuLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkJTOCAiK0NuKyIgIT0gIitUbi5sZW5ndGgpO3ZhciBPbj1bXTtyZXR1cm4geHQubGVuZ3RoJiZPbi5wdXNoKHh0''@;'; put 'put ''KSxUbi5sZW5ndGgmJk9uLnB1c2goVG4pLFV0Lmxlbmd0aCYmT24ucHVzaChVdCksdm4oW09uXSl9ZnVuY3Rpb24gWG0oSCxpZSl7dmFyIFg9aWV8fHt9O3N3aXRjaChYLmJpZmZ8fDIpe2Nhc2UgODpjYXNlIDU6cmV0dXJuIGZ1bmN0aW9uIFZQKEgsaWUpe3ZhciBYPWllfHx7fSx3ZT1bXTtD''@;'; put 'put ''MyhpZSYmaWUuUFBJfHw5NiksSCYmIUguU1NGJiYoSC5TU0Y9Ri5nZXRfdGFibGUoKSksSCYmSC5TU0YmJih5ZShGKSxGLmxvYWRfdGFibGUoSC5TU0YpLFgucmV2c3NmPWV0KEguU1NGKSxYLnJldnNzZltILlNTRls2NTUzNV1dPTAsWC5zc2Y9SC5TU0YpLEguU3R5bGVzPXtGb250czpYLkZv''@;'; put 'put ''bnRzPVt7c3o6MTIsY29sb3I6e3RoZW1lOjEscmdiOiIwMDAwMDAifSxuYW1lOiJDYWxpYnJpIixmYW1pbHk6MixzY2hlbWU6Im1pbm9yIn1dLEZpbGxzOlguRmlsbHM9W3twYXR0ZXJuVHlwZToibm9uZSJ9LHtwYXR0ZXJuVHlwZToiZ3JheTEyNSJ9XSxCb3JkZXJzOlguQm9yZGVycz1be31d''@;'; put 'put ''LERYRjpYLkRYRj1ILlN0eWxlcyYmSC5TdHlsZXMuRFhGfHxbXX0sUzMoWC5Gb250c1swXSksWC5TdHJpbmdzPVtdLFguU3RyaW5ncy5Db3VudD0wLFguU3RyaW5ncy5VbmlxdWU9MCxmNT9YLnJldlN0cmluZ3M9bmV3IE1hcDooWC5yZXZTdHJpbmdzPXt9LFgucmV2U3RyaW5ncy5mb289W10s''@;'; put 'put ''ZGVsZXRlIFgucmV2U3RyaW5ncy5mb28pLEYzKFgpLFguY2VsbFhmcz1bXSxYLmNlbGxTdHlsZVhmcz1be25hbWU6Ik5vcm1hbCJ9XSxZMShYLmNlbGxYZnMsWC5jZWxsU3R5bGVYZnMse30se3JldnNzZjp7R2VuZXJhbDowfX0pLEguUHJvcHN8fChILlByb3BzPXt9KTtmb3IodmFyIHhlPTA7''@;'; put 'put ''eGU8SC5TaGVldE5hbWVzLmxlbmd0aDsrK3hlKXdlW3dlLmxlbmd0aF09JHIoeGUsWCxIKTtyZXR1cm4gd2UudW5zaGlmdChuQyhILHdlLFgpKSx2bihbd2VdKX0oSCxpZSk7Y2FzZSA0OmNhc2UgMzpjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uIGVoKEgsaWUpe2Zvcih2YXIgWD1pZXx8e30sd2U9''@;'; put 'put ''SjIoKSx4ZT0wLEZlPTA7RmU8SC5TaGVldE5hbWVzLmxlbmd0aDsrK0ZlKUguU2hlZXROYW1lc1tGZV09PVguc2hlZXQmJih4ZT1GZSk7aWYoMD09eGUmJlguc2hlZXQmJkguU2hlZXROYW1lc1swXSE9WC5zaGVldCl0aHJvdyBuZXcgRXJyb3IoIlNoZWV0IG5vdCBmb3VuZDogIitYLnNoZWV0''@;'; put 'put ''KTtyZXR1cm4gczAod2UsND09WC5iaWZmPzEwMzM6Mz09WC5iaWZmPzUyMTo5LGczKDAsMTYsWCkpLGZ1bmN0aW9uIEZQKEgsaWUsWCx3ZSl7dmFyIFplLHhlPUFycmF5LmlzQXJyYXkoaWUpLEZlPUZvKGllWyIhcmVmIl18fCJBMSIpLGplPSIiLFllPVtdO2lmKEZlLmUuYz4yNTV8fEZlLmUu''@;'; put 'put ''cj4xNjM4Myl7aWYod2UuV1RGKXRocm93IG5ldyBFcnJvcigiUmFuZ2UgIisoaWVbIiFyZWYiXXx8IkExIikrIiBleGNlZWRzIGZvcm1hdCBsaW1pdCBBMTpJVjE2Mzg0Iik7RmUuZS5jPU1hdGgubWluKEZlLmUuYywyNTUpLEZlLmUucj1NYXRoLm1pbihGZS5lLmMsMTYzODMpLFplPWZhKEZl''@;'; put 'put ''KX1mb3IodmFyIE10PUZlLnMucjtNdDw9RmUuZS5yOysrTXQpe2plPVhhKE10KTtmb3IodmFyIHh0PUZlLnMuYzt4dDw9RmUuZS5jOysreHQpe010PT09RmUucy5yJiYoWWVbeHRdPV9hKHh0KSksWmU9WWVbeHRdK2plO3ZhciBSdD14ZT8oaWVbTXRdfHxbXSlbeHRdOmllW1plXTshUnR8fHhB''@;'; put 'put ''KEgsUnQsTXQseHQpfX19KHdlLEguU2hlZXRzW0guU2hlZXROYW1lc1t4ZV1dLDAsWCksczAod2UsMTApLHdlLmVuZCgpfShILGllKX10aHJvdyBuZXcgRXJyb3IoImludmFsaWQgdHlwZSAiK1guYm9va1R5cGUrIiBmb3IgQklGRiIpfXZhciB1cz1mdW5jdGlvbigpe3ZhciBIPXtjZW50ZXJD''@;'; put 'put ''b250aW51b3VzOiJjZW50ZXIiLGp1c3RpZnk6ImxlZnQifTtmdW5jdGlvbiBYKFJ0LFV0KXt2YXIgbm49VXR8fHt9LENuPW5uLmRlbnNlP1tdOnt9LER0PShSdD1SdC5yZXBsYWNlKC88IS0tLio/LS0+L2csIiIpKS5tYXRjaCgvPHRhYmxlL2kpO2lmKCFEdCl0aHJvdyBuZXcgRXJyb3IoIklu''@;'; put 'put ''dmFsaWQgSFRNTDogY291bGQgbm90IGZpbmQgPHRhYmxlPiIpO3ZhciB6dD1SdC5tYXRjaCgvPFwvdGFibGUvaSksUG49RHQuaW5kZXgsVG49enQmJnp0LmluZGV4fHxSdC5sZW5ndGgsT249ZnVuY3Rpb24gcXQoSCxpZSxYKXtpZih4cnx8InN0cmluZyI9PXR5cGVvZiBpZSlyZXR1cm4gSC5z''@;'; put 'put ''cGxpdChpZSk7Zm9yKHZhciB3ZT1ILnNwbGl0KGllKSx4ZT1bd2VbMF1dLEZlPTE7RmU8d2UubGVuZ3RoOysrRmUpeGUucHVzaChYKSx4ZS5wdXNoKHdlW0ZlXSk7cmV0dXJuIHhlfShSdC5zbGljZShQbixUbiksLyg6Pzx0cltePl0qPikvaSwiPHRyPiIpLFluPS0xLE1yPTAsYWk9MCx5cj0w''@;'; put 'put ''LGFyPXtzOntyOjFlNyxjOjFlN30sZTp7cjowLGM6MH19LEdyPVtdO2ZvcihQbj0wO1BuPE9uLmxlbmd0aDsrK1BuKXt2YXIgenI9T25bUG5dLnRyaW0oKSxxcj16ci5zbGljZSgwLDMpLnRvTG93ZXJDYXNlKCk7aWYoIjx0ciIhPXFyKXtpZigiPHRkIj09cXJ8fCI8dGgiPT1xcil7dmFyIG9p''@;'; put 'put ''PXpyLnNwbGl0KC88XC90W2RoXT4vaSk7Zm9yKFRuPTA7VG48b2kubGVuZ3RoOysrVG4pe3ZhciBjcj1vaVtUbl0udHJpbSgpO2lmKGNyLm1hdGNoKC88dFtkaF0vaSkpe2Zvcih2YXIgZGk9Y3IsdjA9MDsiPCI9PWRpLmNoYXJBdCgwKSYmKHYwPWRpLmluZGV4T2YoIj4iKSk+LTE7KWRpPWRp''@;'; put 'put ''LnNsaWNlKHYwKzEpO2Zvcih2YXIgVWk9MDtVaTxHci5sZW5ndGg7KytVaSl7dmFyIHRvPUdyW1VpXTt0by5zLmM9PU1yJiZ0by5zLnI8WW4mJlluPD10by5lLnImJihNcj10by5lLmMrMSxVaT0tMSl9dmFyIEEwPWVuKGNyLnNsaWNlKDAsY3IuaW5kZXhPZigiPiIpKSk7eXI9QTAuY29sc3Bh''@;'; put 'put ''bj8rQTAuY29sc3BhbjoxLCgoYWk9K0EwLnJvd3NwYW4pPjF8fHlyPjEpJiZHci5wdXNoKHtzOntyOlluLGM6TXJ9LGU6e3I6WW4rKGFpfHwxKS0xLGM6TXIreXItMX19KTt2YXIgYmk9QTAudHx8QTBbImRhdGEtdCJdfHwiIjtpZighZGkubGVuZ3RoKXtNcis9eXI7Y29udGludWV9aWYoZGk9''@;'; put 'put ''TWEoZGkpLGFyLnMucj5ZbiYmKGFyLnMucj1ZbiksYXIuZS5yPFluJiYoYXIuZS5yPVluKSxhci5zLmM+TXImJihhci5zLmM9TXIpLGFyLmUuYzxNciYmKGFyLmUuYz1NciksZGkubGVuZ3RoKXt2YXIgWXI9e3Q6InMiLHY6ZGl9O25uLnJhd3x8IWRpLnRyaW0oKS5sZW5ndGh8fCJzIj09Yml8''@;'; put 'put ''fChZcj1GcihkaSxubikpLG5uLmRlbnNlPyhDbltZbl18fChDbltZbl09W10pLENuW1luXVtNcl09WXIpOkNuW1kwKHtyOlluLGM6TXJ9KV09WXIsTXIrPXlyfX19fX1lbHNle2lmKCsrWW4sbm4uc2hlZXRSb3dzJiZubi5zaGVldFJvd3M8PVluKXstLVluO2JyZWFrfU1yPTB9fXJldHVybiBD''@;'; put 'put ''blsiIXJlZiJdPWZhKGFyKSxHci5sZW5ndGgmJihDblsiIW1lcmdlcyJdPUdyKSxDbn1mdW5jdGlvbiB4ZShSdCxVdCxubixDbixEdCx6dCl7dmFyIE9uLFBuPVJ0WyIhbWVyZ2VzIl18fFtdLFRuPVtdLFluPXtzdHlsZTpbXX0sTXI9ITE7ZnVuY3Rpb24gYWkoJDAsVmEsam8pe3ZhciB3YT0i''@;'; put 'put ''Iixhbz0wO2lmKE9uWyQwXSlzd2l0Y2goT25bJDBdLnN0eWxlKXtjYXNlInRoaW4iOmNhc2UiaGFpciI6d2E9InNvbGlkIixhbz0xO2JyZWFrO2Nhc2UibWVkaXVtIjp3YT0ic29saWQiLGFvPTI7YnJlYWs7Y2FzZSJ0aGljayI6d2E9InNvbGlkIixhbz0zO2JyZWFrO2Nhc2UiZG91YmxlIjp3''@;'; put 'put ''YT0iZG91YmxlIixhbz0zO2JyZWFrO2Nhc2UiZG90dGVkIjpjYXNlImRhc2hEb3REb3QiOndhPSJkb3R0ZWQiLGFvPTE7YnJlYWs7Y2FzZSJtZWRpdW1EYXNoRG90RG90Ijp3YT0iZG90dGVkIixhbz0yO2JyZWFrO2Nhc2UiZGFzaGVkIjpjYXNlImRhc2hEb3QiOmNhc2Uic2xhbnREYXNoRG90''@;'; put 'put ''Ijp3YT0iZGFzaGVkIixhbz0xO2JyZWFrO2Nhc2UibWVkaXVtRGFzaGVkIjpjYXNlIm1lZGl1bURhc2hEb3QiOndhPSJkYXNoZWQiLGFvPTJ9ZTppZigwPT1hbyl7c3dpdGNoKCQwKXtjYXNlInRvcCI6LS1WYTticmVhaztjYXNlImxlZnQiOi0tam87YnJlYWs7Y2FzZSJib3R0b20iOisrVmE7''@;'; put 'put ''YnJlYWs7Y2FzZSJyaWdodCI6Kytqb312YXIgeDA9VmE+PTAmJmpvPj0wP0NuLmRlbnNlPyhSdFtWYV18fFtdKVtqb106UnRbWTAoe3I6VmEsYzpqb30pXTpudWxsO2lmKHgwKXtpZih4MC5zJiZ4MC5zW3t0b3A6ImJvdHRvbSIsYm90dG9tOiJ0b3AiLGxlZnQ6InJpZ2h0IixyaWdodDoibGVm''@;'; put 'put ''dCJ9WyQwXV0pYnJlYWsgZTt4MC5zJiZ4MC5zLmZnQ29sb3ImJihhbz0xKX1Pbi5mZ0NvbG9yJiYoYW89MSksIXgwJiZNciYmMD09YW8mJihhbz0xKX0wIT1hbyYmYW8mJihZbi5zdHlsZS5wdXNoKCJib3JkZXItIiskMCsiLXN0eWxlOiIrKHdhfHwidHJhbnNwYXJlbnQiKSksWW4uc3R5bGUu''@;'; put 'put ''cHVzaCgiYm9yZGVyLSIrJDArIi13aWR0aDoiK2FvKyJweCIpLCIiPT13YT9Zbi5zdHlsZS5wdXNoKCJib3JkZXItIiskMCsiLWNvbG9yOiB0cmFuc3BhcmVudCIpOk9uWyQwXS5jb2xvciYmT25bJDBdLmNvbG9yLnJnYiYmWW4uc3R5bGUucHVzaCgiYm9yZGVyLSIrJDArIi1jb2xvcjojIitM''@;'; put 'put ''byhPblskMF0uY29sb3IucmdiKSkpfWZvcih2YXIgeXI9VXQucy5jO3lyPD1VdC5lLmM7Kyt5cil7Zm9yKHZhciBhcj0wLEdyPTAsenI9MDt6cjxQbi5sZW5ndGg7Kyt6cilpZighKFBuW3pyXS5zLnI+bm58fFBuW3pyXS5zLmM+eXJ8fFBuW3pyXS5lLnI8bm58fFBuW3pyXS5lLmM8eXIpKXtp''@;'; put 'put ''ZihQblt6cl0ucy5yPG5ufHxQblt6cl0ucy5jPHlyKXthcj0tMTticmVha31hcj1Qblt6cl0uZS5yLVBuW3pyXS5zLnIrMSxHcj1Qblt6cl0uZS5jLVBuW3pyXS5zLmMrMTticmVha31pZighKGFyPDApKXt2YXIgcXI9WTAoe3I6bm4sYzp5cn0pLG9pPUNuLmRlbnNlPyhSdFtubl18fFtdKVt5''@;'; put 'put ''cl06UnRbcXJdO29pP01yPSExOihNcj0hMCxvaT17dDoieiIsczp7fX0pO3ZhciBjcj0ieiI9PW9pLnQ/IiI6b2kuaHx8bjAob2kud3x8KHkxKG9pKSxvaS53KXx8IiIpO2lmKFluPXtzdHlsZTpbXX0sT249b2kucyl7dmFyIGRpPTE7aWYoKCJzdXBlciI9PU9uLnZhbGlnbnx8InN1YiI9PU9u''@;'; put 'put ''LnZhbGlnbikmJihkaT0uODMsY3I9X2koInNwYW4iLGNyLHtzdHlsZToidmVydGljYWwtYWxpZ246ICIrT24udmFsaWdufSkpLFluLnN0eWxlLnB1c2goImZvbnQtd2VpZ2h0OiIrKE9uLmJvbGQ/NzAwOjQwMCkpLE9uLml0YWxpYyYmWW4uc3R5bGUucHVzaCgiZm9udC1zdHlsZTogaXRhbGlj''@;'; put 'put ''IiksKE9uLnVuZGVybGluZXx8T24uc3RyaWtlKSYmWW4uc3R5bGUucHVzaCgidGV4dC1kZWNvcmF0aW9uOiIrKE9uLnVuZGVybGluZT8iIHVuZGVybGluZSI6IiIpKyhPbi5zdHJpa2U/IiBsaW5lLXRocm91Z2giOiIiKSksT24uY29sb3ImJk9uLmNvbG9yLnJnYiYmWW4uc3R5bGUucHVzaCgi''@;'; put 'put ''Y29sb3I6ICMiK0xvKE9uLmNvbG9yLnJnYikpLE9uLm5hbWUmJlluLnN0eWxlLnB1c2goImZvbnQtZmFtaWx5OiIrT24ubmFtZSsiLCBzYW5zLXNlcmlmIiksT24uc3omJlluLnN0eWxlLnB1c2goImZvbnQtc2l6ZToiK09uLnN6KmRpKyJwdCIpLG51bGwhPT1Pbi5wYXR0ZXJuVHlwZSYmT24u''@;'; put 'put ''ZmdDb2xvciYmT24uZmdDb2xvci5yZ2ImJlluLnN0eWxlLnB1c2goImJhY2tncm91bmQtY29sb3I6ICMiK0xvKE9uLmZnQ29sb3IucmdiKSksWyJ0b3AiLCJsZWZ0Il0uZm9yRWFjaChmdW5jdGlvbigkMCl7YWkoJDAsbm4seXIpfSksYXI+MXx8R3I+MSl7dmFyIHYwPVkwKHtyOm5uK2FyLTEs''@;'; put 'put ''Yzp5citHci0xfSksVWk9Q24uZGVuc2U/KFJ0W25uK2FyLTFdfHxbXSlbeXIrR3ItMV06UnRbdjBdLEEwPU9uO09uPVVpJiZVaS5zfHxPbixbImJvdHRvbSIsInJpZ2h0Il0uZm9yRWFjaChmdW5jdGlvbigkMCl7YWkoJDAsbm4seXIpfSksT249QTB9ZWxzZVsiYm90dG9tIiwicmlnaHQiXS5m''@;'; put 'put ''b3JFYWNoKGZ1bmN0aW9uKCQwKXthaSgkMCxubix5cil9KTtpZihPbi5hbGlnbm1lbnQpe2lmKE9uLmFsaWdubWVudC5ob3Jpem9udGFsP1luLnN0eWxlLnB1c2goInRleHQtYWxpZ246ICIrKEhbT24uYWxpZ25tZW50Lmhvcml6b250YWxdfHxPbi5hbGlnbm1lbnQuaG9yaXpvbnRhbCkpOiJu''@;'; put 'put ''Ij09b2kudCYmWW4uc3R5bGUucHVzaCgidGV4dC1hbGlnbjogcmlnaHQiKSxPbi5hbGlnbm1lbnQudmVydGljYWwpe3ZhciBiaT1Pbi5hbGlnbm1lbnQudmVydGljYWw7WW4uc3R5bGUucHVzaCgidmVydGljYWwtYWxpZ246ICIrKCJjZW50ZXIiPT1iaT8ibWlkZGxlIjpiaSkpfWlmKE9uLmFs''@;'; put 'put ''aWdubWVudC53cmFwVGV4dClZbi5zdHlsZS5wdXNoKCJ3aGl0ZS1zcGFjZTogcHJlLXdyYXAiKTtlbHNle3ZhciBZcj1Dbi5kZW5zZT8oUnRbbm5dfHxbXSlbeXIrMV06UnRbWTAoe3I6bm4sYzp5cisxfSldO1lyJiYieiIhPVlyLnQmJlluLnN0eWxlLnB1c2goIndoaXRlLXNwYWNlOiBwcmUt''@;'; put 'put ''d3JhcCIpfX1lbHNlIm4iPT1vaS50JiZZbi5zdHlsZS5wdXNoKCJ0ZXh0LWFsaWduOiByaWdodCIpO3ZhciBFaT0oKFJ0WyIhY29scyJdfHxbXSlbeXJdfHx7fSkud3B4O251bGw9PUVpJiYoRWk9KChSdFsiIXNoZWV0Rm9ybWF0Il18fHt9KS5jb2x8fHt9KS53cHgpfXZhciBoaT0wO2lmKEdy''@;'; put 'put ''PD0xJiZhcjw9MSYmKGhpPSgoUnRbIiFjb2xzIl18fFtdKVt5cl18fHt9KS53cHgpJiZZbi5zdHlsZS5wdXNoKCJ3aWR0aDogIitoaSsicHgiKSxSdFsiIWNvbmRmbXQiXSYmRmUob2ksbm4seXIsUnRbIiFjb25kZm10Il0sWW4uc3R5bGUsUnQpLDA9PVluLnN0eWxlLmxlbmd0aD9kZWxldGUg''@;'; put 'put ''WW4uc3R5bGU6WW4uc3R5bGU9WW4uc3R5bGUuam9pbigiOyIpLENuLmNzcyl7dmFyIE5yPUR0LmluZGV4T2YoWW4uc3R5bGUpOy0xPT1OciYmKER0LnB1c2goWW4uc3R5bGUpLE5yPUR0Lmxlbmd0aC0xKSxkZWxldGUgWW4uc3R5bGUsWW4uY2xhc3M9InNqcyIrKHp0fHwiIikrIi0iK05yfWFy''@;'; put 'put ''PjEmJihZbi5yb3dzcGFuPWFyKSxHcj4xJiYoWW4uY29sc3Bhbj1HciksQ24uZWRpdGFibGU/Y3I9JzxzcGFuIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+JytjcisiPC9zcGFuPiI6b2kmJihZblsiZGF0YS10Il09b2kmJm9pLnR8fCJ6IixudWxsIT1vaS52JiYoWW5bImRhdGEtdiJdPW9pLnYp''@;'; put 'put ''LG51bGwhPW9pLnomJihZblsiZGF0YS16Il09b2kueikpLFluLmlkPShDbi5pZHx8InNqcyIpKyItIitxcixUbi5wdXNoKF9pKCJ0ZCIsY3IsWW4pKX19dmFyIE4wLGtpPXtzdHlsZTpbXX07KE4wPVJ0WyIhc2hlZXRGb3JtYXQiXSkmJk4wLnJvdyYmKEo4KE4wLnJvdyksTjAucm93LmhweCYm''@;'; put 'put ''KGtpLnN0eWxlLnB1c2goWyJoZWlnaHQiLE4wLnJvdy5ocHgrInB4Il0pLGtpLmhlaWdodD1NYXRoLnJvdW5kKE4wLnJvdy5ocHgpKSk7dmFyIHQwPVJ0WyIhcm93cyJdO2lmKHQwJiZ0MFtubl0pe3ZhciBpbz10MFtubl07aW8uaHB4JiYoa2kuc3R5bGUucHVzaChbImhlaWdodCIsK2lvLmhw''@;'; put 'put ''eCsicHgiXSksa2kuaGVpZ2h0PU1hdGgucm91bmQoaW8uaHB4KSksaW8uaGlkZGVuJiZraS5zdHlsZS5wdXNoKFsiZGlzcGxheSIsIm5vbmUiXSl9dmFyIG9hPVtdO3JldHVybiBraS5zdHlsZT1raS5zdHlsZS5yZXZlcnNlKCkuZmlsdGVyKGZ1bmN0aW9uKCQwKXtyZXR1cm4hKG9hLmluZGV4''@;'; put 'put ''T2YoJDBbMF0pPi0xfHwob2EucHVzaCgkMFswXSksMCkpfSkubWFwKGZ1bmN0aW9uKCQwKXtyZXR1cm4gJDBbMF0rIjoiKyQwWzFdfSksMD09a2kuc3R5bGUubGVuZ3RoP2RlbGV0ZSBraS5zdHlsZTpraS5zdHlsZT1raS5zdHlsZS5qb2luKCI7IiksX2koInRyIixUbi5qb2luKCIiKSxraSl9''@;'; put 'put ''ZnVuY3Rpb24gRmUoUnQsVXQsbm4sQ24sRHQsenQpe0NuLmZvckVhY2goZnVuY3Rpb24oUG4pe2lmKFBuLl9yZWZ8fChQbi5fcmVmPSJzdHJpbmciPT10eXBlb2YgUG4ucmVmP0FzKFBuLnJlZik6UG4ucmVmKSwhKFBuLl9yZWYucy5jPm5ufHxQbi5fcmVmLmUuYzxubnx8UG4uX3JlZi5zLnI+''@;'; put 'put ''VXR8fFBuLl9yZWYuZS5yPFV0fHwic2NhbGUiIT09UG4udCkpe2lmKCJuIiE9UnQudClyZXR1cm47dmFyIFRuO2lmKG51bGw9PVBuLl9taW4pe1BuLl92YWx1ZXM9W107Zm9yKHZhciBPbj1Qbi5fcmVmLnMucjtPbjw9UG4uX3JlZi5lLnI7KytPbilmb3IodmFyIFluPVBuLl9yZWYucy5jO1lu''@;'; put 'put ''PD1Qbi5fcmVmLmUuYzsrK1luKXt2YXIgTXI9QXJyYXkuaXNBcnJheSh6dCk/KHp0W09uXXx8W10pW1luXTp6dFtZMCh7cjpPbixjOllufSldO01yJiYibiI9PU1yLnQmJlBuLl92YWx1ZXMucHVzaChNci52KX1pZihQbi5fdmFsdWVzLnNvcnQoZnVuY3Rpb24oYWkseXIpe3JldHVybiBhaS15''@;'; put 'put ''cn0pLFBuLl9taW49UG4uX3ZhbHVlc1swXSxQbi5fbWF4PVBuLl92YWx1ZXMuc2xpY2UoLTEpWzBdLFBuLl9iYW5kPVBuLl9tYXgtUG4uX21pbixQbi5jbWlkKXtzd2l0Y2goUG4uY21pZC50KXtjYXNlIm51bSI6UG4uX21pZD1Qbi5jbWlkLnY7YnJlYWs7Y2FzZSJwZXJjZW50IjpQbi5fbWlk''@;'; put 'put ''PVBuLmNtaWQudi8xMDAqUG4uX2JhbmQrUG4uX21pbjticmVhaztjYXNlInBlcmNlbnRpbGUiOlBuLl9taWQ9ZnVuY3Rpb24gcHIoSCxpZSl7aWYoMD09aWUpcmV0dXJuIEhbMF07aWYoMTAwPT1pZSlyZXR1cm4gSFtILmxlbmd0aC0xXTt2YXIgd2U9aWUvMTAwKihILmxlbmd0aC0xKSx4ZT13''@;'; put 'put ''ZS1NYXRoLmZsb29yKHdlKTtyZXR1cm4geGUqSFtNYXRoLmNlaWwod2UpXSsoMS14ZSkqSFtNYXRoLmZsb29yKHdlKV19KFBuLl92YWx1ZXMsUG4uY21pZC52KX1Qbi5fYmFuZGg9UG4uX21heC1Qbi5fbWlkLFBuLl9iYW5kbD1Qbi5fbWlkLVBuLl9taW59fShUbj1Qbi5jbWlkP1J0LnY+PVBu''@;'; put 'put ''Ll9taWQ/aDYoUG4uY21pZC5jb2xvcixQbi5jbWF4LmNvbG9yLChSdC52LVBuLl9taWQpL1BuLl9iYW5kaCk6aDYoUG4uY21pbi5jb2xvcixQbi5jbWlkLmNvbG9yLChSdC52LVBuLl9taW4pL1BuLl9iYW5kbCk6aDYoUG4uY21pbi5jb2xvcixQbi5jbWF4LmNvbG9yLChSdC52LVBuLl9taW4p''@;'; put 'put ''L1BuLl9iYW5kKSkmJkR0LnB1c2goImJhY2tncm91bmQtY29sb3I6ICMiK1RuKX19KX1mdW5jdGlvbiBaZShSdCxVdCl7dmFyIG5uPXtzcGFuOlV0fHwxLHN0eWxlOiIifSxDbj1bXTtyZXR1cm4gUnQmJlJ0LndweCYmKG5uLndpZHRoPU1hdGgucm91bmQoNCpSdC53cHgvMyksQ24ucHVzaCgi''@;'; put 'put ''d2lkdGg6IisoUnQud3B4fHwwKSsicHgiKSksQ24ubGVuZ3RoPjAmJihubi5zdHlsZT1Dbi5qb2luKCI7IikpLF9pKCJjb2wiLG51bGwsbm4pfWZ1bmN0aW9uIGplKFJ0LFV0LG5uKXt2YXIgQ249e2JvcmRlcjowLGNlbGxwYWRkaW5nOjAsY2VsbHNwYWNpbmc6MCxzdHlsZTpbImJvcmRlci1j''@;'; put 'put ''b2xsYXBzZTpjb2xsYXBzZSIsInRhYmxlLWxheW91dDpmaXhlZCJdLmpvaW4oIjsiKX07bm4mJm5uLmlkJiYoQ24uaWQ9bm4uaWQpO3ZhciBEdD1SdFsiIWNvbHMiXSx6dD1SdFsiIXNoZWV0Rm9ybWF0Il07aWYoUnQmJkR0KXtmb3IodmFyIFBuPTAsT249VXQucy5jO09uPD1VdC5lLmM7KytP''@;'; put 'put ''bil7dmFyIFluPUR0W09uXTtQbis9WW4mJlluLndweD9Zbi53cHg6enQmJnp0LmNvbCYmenQuY29sLndweD96dC5jb2wud3B4OjUzfUNuLnN0eWxlKz0iO3dpZHRoOiIrUG4rInB4In12YXIgYWksTXI9WyI8dGFibGUiK3JsKENuKSsiPiJdO2lmKE1yLnB1c2goIjxzdHlsZT50ZCB7IHBhZGRp''@;'; put 'put ''bmctdG9wOiAxcHg7IHBhZGRpbmctcmlnaHQ6MXB4OyBwYWRkaW5nLWxlZnQ6MXB4OyB0ZXh0LWFsaWduOmdlbmVyYWw7IHZlcnRpY2FsLWFsaWduOmJvdHRvbTsgYm9yZGVyOjFweCBzb2xpZDsgYm9yZGVyLWNvbG9yOiIrKG5uJiZubi5ncmlkY29sb3I/bm4uZ3JpZGNvbG9yOm5yKFJ0WyIh''@;'; put 'put ''Z3JpZGxpbmVzIl0pPyJ0cmFuc3BhcmVudCI6ImJsYWNrIikrIjsgd2hpdGUtc3BhY2U6bm93cmFwOyB0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfTwvc3R5bGU+IiksTXIucHVzaCgnPGNvbGdyb3VwIHNwYW49IicrKFV0LmUuYy1VdC5zLmMrMSkrJyI+JyksRHQpe2Zvcih2YXIgeXI9VXQucy5j''@;'; put 'put ''O3lyPE1hdGgubWluKER0Lmxlbmd0aCxVdC5lLmMrMSk7Kyt5cikhKGFpPUR0W3lyXSkmJnp0JiZ6dC5jb2wmJihhaT16dC5jb2wpLGFpfHwoYWk9e3dweDo1M30pLE1yLnB1c2goWmUoYWksMSkpO1V0LmUuYy1VdC5zLmMrMT5EdC5sZW5ndGgmJihhaT1udWxsLHp0JiZ6dC5jb2wmJihhaT16''@;'; put 'put ''dC5jb2wpLGFpfHwoYWk9e3dweDo1M30pLE1yLnB1c2goWmUoYWksVXQuZS5jLVV0LnMuYysxLUR0Lmxlbmd0aCkpKX1lbHNlIGFpPW51bGwsenQmJnp0LmNvbCYmKGFpPXp0LmNvbCksYWl8fChhaT17d3B4OjUzfSksTXIucHVzaChaZShhaSxVdC5lLmMtVXQucy5jKzEpKTtyZXR1cm4gTXIu''@;'; put 'put ''cHVzaCgiPC9jb2xncm91cD4iKSxNci5qb2luKCIiKX12YXIgWWU9JzxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ii8+PHRpdGxlPlNoZWV0SlMgVGFibGUgRXhwb3J0PC90aXRsZT48L2hlYWQ+PGJvZHk+JyxNdD0iPC9ib2R5PjwvaHRtbD4iO3JldHVybnt0b193b3JrYm9vazpm''@;'; put 'put ''dW5jdGlvbiB3ZShSdCxVdCl7cmV0dXJuIHcxKFgoUnQsVXQpLFV0KX0sdG9fc2hlZXQ6WCxfcm93OnhlLEJFR0lOOlllLEVORDpNdCxfcHJlYW1ibGU6amUsaHRtbF90b19yczpmdW5jdGlvbiBpZShSdCl7dmFyIFV0PVtdLG5uPXt9LENuPTA7cmV0dXJuIFJ0LnJlcGxhY2UoLzwoXC8/KShb''@;'; put 'put ''XlxzPz4hXC86XSo6fCkoW15ccz8+OlwvXSspW14+XSo+L2dtLGZ1bmN0aW9uKER0LHp0LFBuLFRuLE9uKXt2YXIgTXI9SW4oZW4oRHQpWzBdKS5yZXBsYWNlKC9bPFwvPl0vZywiIiksYWk9UnQuc2xpY2UoQ24sT24pLnJlcGxhY2UoL1xzL2csIiAiKTtzd2l0Y2goYWkubGVuZ3RoPjAmJihV''@;'; put 'put ''dC5wdXNoKHt0OiJzIix2OmFpLHM6bm59KSxubj1sbihubikpLE1yLnRvTG93ZXJDYXNlKCkpe2Nhc2UiYiI6Ii8iIT16dD9ubi5ib2xkPSEwOmRlbGV0ZSBubi5ib2xkO2JyZWFrO2Nhc2UiaSI6Ii8iIT16dD9ubi5pdGFsaWM9ITA6ZGVsZXRlIG5uLml0YWxpYzticmVhaztjYXNlInUiOiIv''@;'; put 'put ''IiE9enQ/bm4udW5kZXJsaW5lPTE6ZGVsZXRlIG5uLnVuZGVybGluZTticmVhaztjYXNlInMiOiIvIiE9enQ/bm4uc3RyaWtlPSEwOmRlbGV0ZSBubi5zdHJpa2V9cmV0dXJuIENuPU9uK0R0Lmxlbmd0aCxEdH0pLFV0fSxmcm9tX3NoZWV0OmZ1bmN0aW9uIHh0KFJ0LFV0KXt2YXIgbm49VXR8''@;'; put 'put ''fHt9LER0PW51bGwhPW5uLmZvb3Rlcj9ubi5mb290ZXI6TXQsenQ9W251bGwhPW5uLmhlYWRlcj9ubi5oZWFkZXI6WWUsIiJdLFBuPVtdLFRuPShuZXcgRGF0ZSkudmFsdWVPZigpO1J0fHwoUnQ9e30pLFJ0WyIhcmVmIl18fChSdFsiIXJlZiJdPSJBMTpBMSIpO3ZhciBPbj1BcyhSdFsiIXJl''@;'; put 'put ''ZiJdKTtpZihubi5kZW5zZT1BcnJheS5pc0FycmF5KFJ0KSxubi5za2lwZW5kKXt2YXIgWW49T24uZS5yO2U6Zm9yKDtZbj49T24ucy5yOy0tWW4pZm9yKHZhciBNcj1Pbi5lLmM7TXI+PU9uLnMuYzstLU1yKWlmKG51bGwhPSgobm4uZGVuc2U/KFJ0W1luXXx8W10pW01yXTpSdFtZMCh7cjpZ''@;'; put 'put ''bixjOk1yfSldKXx8e30pLnYpYnJlYWsgZTtPbi5lLnI9WW47dmFyIGFpPU9uLmUuYztlOmZvcig7YWk+PU9uLnMuYzstLWFpKWZvcih2YXIgeXI9T24uZS5yO3lyPj1Pbi5zLnI7LS15cilpZihudWxsIT0oKG5uLmRlbnNlPyhSdFt5cl18fFtdKVthaV06UnRbWTAoe3I6eXIsYzphaX0pXSl8''@;'; put 'put ''fHt9KS52KWJyZWFrIGU7T24uZS5jPWFpfXp0LnB1c2goamUoUnQsT24sbm4pKTtmb3IodmFyIGFyPU9uLnMucjthcjw9T24uZS5yOysrYXIpenQucHVzaCh4ZShSdCxPbixhcixubixQbixUbikpO3JldHVybiB6dC5wdXNoKCI8L3RhYmxlPiIrRHQpLG5uLmNzcyYmKHp0WzFdPSI8c3R5bGU+''@;'; put 'put ''XG4iK1BuLm1hcChmdW5jdGlvbihHcix6cil7cmV0dXJuIi5zanMiK1RuKyItIit6cisiIHsiK0dyKyJ9In0pLmpvaW4oIlxuIikrIjwvc3R5bGU+IiksenQuam9pbigiIil9fX0oKTtmdW5jdGlvbiBRMChILGllLFgpe3ZhciB3ZT17fTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGdldENvbXB1''@;'; put 'put ''dGVkU3R5bGUpcmV0dXJuIHdlO3ZhciB4ZT1nZXRDb21wdXRlZFN0eWxlKEgpO2lmKCg3MDA9PXhlWyJmb250LXdlaWdodCJdfHwiYm9sZCI9PXhlWyJmb250LXdlaWdodCJdKSYmKHdlLmJvbGQ9ITApLCh4ZVsiZm9udC1zdHlsZSJdfHwiIikubWF0Y2goL2l0YWxpYy8pJiYod2UuaXRhbGlj''@;'; put 'put ''PSEwKSwoeGVbInRleHQtZGVjb3JhdGlvbiJdfHwiIikubWF0Y2goL3VuZGVybGluZS8pJiYod2UudW5kZXJsaW5lPTEpLCh4ZVsidGV4dC1kZWNvcmF0aW9uIl18fCIiKS5tYXRjaCgvbGluZS10aHJvdWdoLykmJih3ZS5zdHJpa2U9MSkscGFyc2VJbnQoeGVbImZvbnQtc2l6ZSJdKSYmKHdl''@;'; put 'put ''LnN6PXBhcnNlRmxvYXQoeGVbImZvbnQtc2l6ZSJdKSooeGVbImZvbnQtc2l6ZSJdLm1hdGNoKC9weC8pPzMvNDoxKSkseGVbImZvbnQtZmFtaWx5Il0mJih3ZS5uYW1lPXhlWyJmb250LWZhbWlseSJdLnNwbGl0KCIsIilbMF0ucmVwbGFjZSgvXHMqIlxzKi9nLCIiKSkseGUuY29sb3Ipe3Zh''@;'; put 'put ''ciBGZT1YOCh4ZS5jb2xvci50b0xvd2VyQ2FzZSgpLCEwKTtGZT49MCYmKHdlLmNvbG9yPXtyZ2I6RmV9KX1zd2l0Y2goeGVbInRleHQtdHJhbnNmb3JtIl0mJih3ZS50ZXh0X3RyYW5zZm9ybT14ZVsidGV4dC10cmFuc2Zvcm0iXS50b0xvd2VyQ2FzZSgpKSwibm9uZSIhPSh4ZVsidGV4dC1z''@;'; put 'put ''aGFkb3ciXXx8Im5vbmUiKSYmKHdlLnNoYWRvdz0hMCkseGVbInRleHQtYWxpZ24iXSl7Y2FzZSJjZW50ZXIiOndlLmFsaWdubWVudD17aG9yaXpvbnRhbDoiY2VudGVyIn07YnJlYWs7Y2FzZSJyaWdodCI6d2UuYWxpZ25tZW50PXtob3Jpem9udGFsOiJyaWdodCJ9O2JyZWFrO2Nhc2UibGVm''@;'; put 'put ''dCI6d2UuYWxpZ25tZW50PXtob3Jpem9udGFsOiJsZWZ0In07YnJlYWs7Y2FzZSJqdXN0aWZ5Ijp3ZS5hbGlnbm1lbnQ9e2hvcml6b250YWw6Imp1c3RpZnkifX1zd2l0Y2goeGVbInZlcnRpY2FsLWFsaWduIl0pe2Nhc2UidG9wIjpjYXNlIm1pZGRsZSI6Y2FzZSJib3R0b20iOndlLmFsaWdu''@;'; put 'put ''bWVudHx8KHdlLmFsaWdubWVudD17fSksd2UuYWxpZ25tZW50LnZlcnRpY2FsPXhlWyJ2ZXJ0aWNhbC1hbGlnbiJdLCJtaWRkbGUiPT13ZS5hbGlnbm1lbnQudmVydGljYWwmJih3ZS5hbGlnbm1lbnQudmVydGljYWw9ImNlbnRlciIpO2JyZWFrO2Nhc2Uic3ViIjpjYXNlInN1cGVyIjp3ZS52''@;'; put 'put ''YWxpZ249eGVbInZlcnRpY2FsLWFsaWduIl0sd2Uuc3omJih3ZS5zei89LjgzKX12YXIgWmU9aWUmJmdldENvbXB1dGVkU3R5bGUoaWUpO3JldHVybiBaZSYmWCYmaWUmJlsibGVmdCIsInJpZ2h0IiwidG9wIiwiYm90dG9tIl0uZm9yRWFjaChmdW5jdGlvbihqZSl7dmFyIFllPWplLmNoYXJB''@;'; put 'put ''dCgwKS50b1VwcGVyQ2FzZSgpK2plLnNsaWNlKDEpLE10PVplWyJib3JkZXItIitqZSsiLXN0eWxlIl07aWYoKCJub25lIj09TXR8fCFNdCkmJihNdD1aZVsiYm9yZGVyIitZZSsiU3R5bGUiXSksIm5vbmUiIT1NdCYmTXQpe3ZhciB4dD1wYXJzZUludChaZVsiYm9yZGVyLSIramUrIi13aWR0''@;'; put 'put ''aCJdfHxaZVsiYm9yZGVyIitZZSsiV2lkdGgiXSwxMCksUnQ9InRoaW4iO2lmKHh0PjApe3N3aXRjaChNdCl7Y2FzZSJkb3VibGUiOlJ0PSJkb3VibGUiO2JyZWFrO2Nhc2UiZGFzaGVkIjpSdD14dD49Mj8ibWVkaXVtRGFzaGVkIjoiZGFzaGVkIjticmVhaztjYXNlImRvdHRlZCI6UnQ9eHQ+''@;'; put 'put ''PTI/Im1lZGl1bURhc2hEb3REb3QiOiJkb3R0ZWQiO2JyZWFrO2Nhc2Uic29saWQiOlJ0PXh0Pj0zPyJ0aGljayI6eHQ+PTI/Im1lZGl1bSI6InRoaW4ifWlmKHdlW2plXT17c3R5bGU6UnR9LFplWyJib3JkZXItIitqZSsiLWNvbG9yIl18fFplWyJib3JkZXIiK1llKyJDb2xvciJdKXt2YXIg''@;'; put 'put ''VXQ9WDgoKFplWyJib3JkZXItIitqZSsiLWNvbG9yIl18fFplWyJib3JkZXIiK1llKyJDb2xvciJdKS50b0xvd2VyQ2FzZSgpLCEwKTtVdD49MCYmKHdlW2plXS5jb2xvcj17cmdiOlV0fSl9fX19KSx3ZX1mdW5jdGlvbiBDMihILGllLFgpe3ZhciB3ZT1ILmNoaWxkTm9kZXM7aWYoMT09SC5u''@;'; put 'put ''b2RlVHlwZSlzd2l0Y2goSC50YWdOYW1lLnRvTG93ZXJDYXNlKCkpe2Nhc2UicCI6aWUubGVuZ3RoPjAmJmllLnB1c2goe3Q6InQiLHY6IlxuIixzOlh9KTticmVhaztjYXNlInNlbGVjdCI6cmV0dXJuIGZ1bmN0aW9uIHVvKEgsaWUsWCl7aWUucHVzaCh7dDoidCIsdjpILmNoaWxkcmVuW0gu''@;'; put 'put ''c2VsZWN0ZWRJbmRleF0uaW5uZXJUZXh0LHM6WH0pfShILGllLFgpfWlmKHdlLmxlbmd0aD4wKXt2YXIgeGU9UTAoSCxudWxsLCExKTtYJiYoWC51bmRlcmxpbmUmJih4ZS51bmRlcmxpbmU9WC51bmRlcmxpbmUpLFguc3RyaWtlJiYoeGUuc3RyaWtlPVguc3RyaWtlKSk7Zm9yKHZhciBGZT0w''@;'; put 'put ''O0ZlPHdlLmxlbmd0aDsrK0ZlKXt0cnl7aWYod2VbRmVdLmdldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iKSljb250aW51ZX1jYXRjaChqZSl7fUMyKHdlW0ZlXSxpZSx4ZSl9ZGVsZXRlIHhlLnRleHRfdHJhbnNmb3JtfWVsc2UgaWYoMz09SC5ub2RlVHlwZSl7dmFyIFplPXt0OiJ0Iix2Okgu''@;'; put 'put ''bm9kZVZhbHVlLnJlcGxhY2UoL15bXG4gXSsvLCIgIikucmVwbGFjZSgvW1xuIF0rJC8sIiAiKSxzOlh9O3N3aXRjaChYLnRleHRfdHJhbnNmb3JtKXtjYXNlInVwcGVyY2FzZSI6WmUudj1aZS52LnRvVXBwZXJDYXNlKCk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOlplLnY9WmUudi50b0xvd2Vy''@;'; put 'put ''Q2FzZSgpfShpZS5sZW5ndGg+MHx8WmUudiYmIiAiIT1aZS52KSYmaWUucHVzaChaZSl9ZWxzZSAxPT1ILm5vZGVUeXBlJiYiYnIiPT09SC50YWdOYW1lLnRvTG93ZXJDYXNlKCkmJmllLnB1c2goe3Q6InQiLHY6IlxuIixzOlh9KX1mdW5jdGlvbiBMNihILGllLFgsd2UseGUpe3ZhciBaZSxG''@;'; put 'put ''ZT1ILmlubmVySFRNTDtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGUpc3dpdGNoKFplPWdldENvbXB1dGVkU3R5bGUoSCksKFplWyJ3aGl0ZS1zcGFjZSJdfHwiIikubWF0Y2goL3ByZS8pJiYoRmU9RmUucmVwbGFjZSgvXG4vZywiPGJyLz4iKSksKFplWyJ0ZXh0LXRy''@;'; put 'put ''YW5zZm9ybSJdfHwiIikudG9Mb3dlckNhc2UoKSl7Y2FzZSJ1cHBlcmNhc2UiOkZlPUZlLnRvVXBwZXJDYXNlKCk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOkZlPUZlLnRvTG93ZXJDYXNlKCl9dmFyIGplPWZ1bmN0aW9uIGRUKEgsaWUsWCx3ZSl7dmFyIHhlPXt0OiJzIix2OmllfSxGZT0iIjtp''@;'; put 'put ''ZihIKXtYPUguZ2V0QXR0cmlidXRlKCJkYXRhLXQiKXx8SC5nZXRBdHRyaWJ1dGUoInQiKTt2YXIgWmU9SC5nZXRBdHRyaWJ1dGUoImRhdGEtdiIpfHxILmdldEF0dHJpYnV0ZSgidiIpO2lmKG51bGwhPShGZT1ILmdldEF0dHJpYnV0ZSgiZGF0YS16Iil8fEguZ2V0QXR0cmlidXRlKCJ6Iikp''@;'; put 'put ''JiYoeGUuej1GZSksbnVsbCE9WCYmbnVsbCE9WmUpcmV0dXJuIHhlLnQ9WCx4ZS52PVplLHhlfXJldHVybiBudWxsIT1pZSYmKDA9PWllLmxlbmd0aD94ZS50PVh8fCJ6Ijp3ZS5yYXd8fCFpZS50cmltKCkubGVuZ3RofHwicyI9PVh8fCh4ZT1GcihpZSx3ZSkpKSxGZSYmKHhlLno9RmUpLHhl''@;'; put 'put ''fShILE1hKEZlKSxYLHhlKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvbXB1dGVkU3R5bGUmJihqZS5zPVEwKEgsaWUseGUuYm9yZGVycyksZGVsZXRlIGplLnMudGV4dF90cmFuc2Zvcm0sSC5jaGlsZE5vZGVzLmxlbmd0aD4xfHwxPT1ILmNoaWxkTm9kZXMubGVuZ3RoJiYzIT1ILmNo''@;'; put 'put ''aWxkTm9kZXNbMF0ubm9kZVR5cGUpKXN3aXRjaChDMihILGplLlI9W10sbnVsbCksamUuUiYmamUuUltqZS5SLmxlbmd0aC0xXSYmIlxuIj09amUuUltqZS5SLmxlbmd0aC0xXS52JiZqZS5SLmxlbmd0aC0tLChaZVsidGV4dC10cmFuc2Zvcm0iXXx8IiIpLnRvTG93ZXJDYXNlKCkpe2Nhc2Ui''@;'; put 'put ''dXBwZXJjYXNlIjpqZS5SLmZvckVhY2goZnVuY3Rpb24oVXQpe1V0LnY9VXQudi50b1VwcGVyQ2FzZSgpfSk7YnJlYWs7Y2FzZSJsb3dlcmNhc2UiOmplLlIuZm9yRWFjaChmdW5jdGlvbihVdCl7VXQudj1VdC52LnRvTG93ZXJDYXNlKCl9KX1pZigicyI9PWplLnQpe3ZhciBZZT1qZS52Lm1h''@;'; put 'put ''dGNoKC9cbi8pOyFZZSYmamUuUiYmamUuUi5mb3JFYWNoKGZ1bmN0aW9uKFV0KXsic3RyaW5nIj09dHlwZW9mIFV0LnYmJlV0LnYubWF0Y2goL1xuLykmJihZZT0hMCl9KSwicyI9PWplLnQmJlllJiYoamUuc3x8KGplLnM9e30pLGplLnMuYWxpZ25tZW50fHwoamUucy5hbGlnbm1lbnQ9e30p''@;'; put 'put ''LGplLnMuYWxpZ25tZW50LndyYXBUZXh0PSEwKX1pZihpZSl7dmFyIE10PSIiLHh0PWllLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJBIik7aWYoeHQmJnh0Lmxlbmd0aClmb3IodmFyIFJ0PTA7UnQ8eHQubGVuZ3RoJiYoIXh0W1J0XS5oYXNBdHRyaWJ1dGUoImhyZWYiKXx8IiMiPT0oTXQ9eHRb''@;'; put 'put ''UnRdLmdldEF0dHJpYnV0ZSgiaHJlZiIpKS5jaGFyQXQoMCkpOysrUnQpO010JiYiIyIhPU10LmNoYXJBdCgwKSYmKGplLmw9e1RhcmdldDpNdH0pfXJldHVybiBqZX1mdW5jdGlvbiBWaChILGllLFgpe3ZhciB4ZSx3ZT1pZS5yb3dzO2lmKCF3ZSl7aWYoWCYmbnVsbCE9WC5vcmlnaW4pdGhy''@;'; put 'put ''b3ciVW5zdXBwb3J0ZWQgb3JpZ2luIHdoZW4gIitpZS50YWdOYW1lKyIgaXMgbm90IGEgVEFCTEUiO3JldHVybiBmdW5jdGlvbiBqUChILGllLFgpe1g9SlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShYfHx7fSkpO3ZhciBGZT17czp7cjowLGM6MH0sZTp7cjowLGM6MH19O0hbIiFtZXJnZXMi''@;'; put 'put ''XXx8KEhbIiFtZXJnZXMiXT1bXSk7Zm9yKHZhciBqZSxaZT1pZS5jaGlsZHJlbixZZT0wLE10PTA7TXQ8WmUubGVuZ3RoOysrTXQpe3ZhciBVdCx4dD1aZVtNdF0sUnQ9IiI7dHJ5eyJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZT9VdD1nZXRDb21wdXRlZFN0eWxlOnh0Lm93''@;'; put 'put ''bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcmJiJmdW5jdGlvbiI9PXR5cGVvZiB4dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJihVdD14dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpfWNhdGNoKG5uKXt9aWYoIVV0fHwibm9u''@;'; put 'put ''ZSIhPVV0KHh0KS5kaXNwbGF5KXN3aXRjaCh4dC50YWdOYW1lLnRvVXBwZXJDYXNlKCkpe2Nhc2UiVEFCTEUiOlllPS0xLEhbIiFyZWYiXSYmKFgub3JpZ2luPS0xKSxWaChILHh0LFgpO2JyZWFrO2Nhc2UiQlIiOmNhc2UiSFIiOlllPS0xLEhbIiFyZWYiXT8oKysoRmU9QXMoSFsiIXJlZiJd''@;'; put 'put ''KSkuZS5yLEhbIiFyZWYiXT1mYShGZSkpOkhbIiFyZWYiXT0iQTE6QTEiO2JyZWFrO2Nhc2UiRElWIjpjYXNlIlAiOmNhc2UiSDEiOmNhc2UiSDIiOmNhc2UiSDMiOmNhc2UiSDQiOmNhc2UiSDUiOmNhc2UiSDYiOlllPS0xLGplPUw2KHh0LG51bGwsIiIsMCxYKSxIWyIhcmVmIl0/KFgub3Jp''@;'; put 'put ''Z2luPS0xLGxmKEgsW1tqZV1dLFgpKTooSFsiIXJlZiJdPSJBMSIsQXJyYXkuaXNBcnJheShIKT8oSFswXXx8KEhbMF09W10pLEhbMF1bMF09amUpOkguQTE9amUpLEhbIiFyb3dzIl18fChIWyIhcm93cyJdPVtdKSxVdCYmKEZlPUFzKEhbIiFyZWYiXSksKFJ0PVV0KHh0KS5oZWlnaHQpJiYi''@;'; put 'put ''YXV0byIhPVJ0JiYoSFsiIXJvd3MiXVtGZS5lLnJdPXtocHQ6cGFyc2VJbnQoUnQsMTApfSkpO2JyZWFrO2Nhc2UiU1BBTiI6Y2FzZSJBIjpjYXNlIkIiOmNhc2UiRU0iOmNhc2UiSSI6Y2FzZSJGT05UIjpjYXNlIlMiOmNhc2UiU1VCIjpjYXNlIlNVUCI6Y2FzZSJVIjpqZT1MNih4dCxudWxs''@;'; put 'put ''LCIiLDAsWCksSFsiIXJlZiJdfHwoSFsiIXJlZiJdPSJBMTpBMSIpLGxmKEgsW1tqZV1dLHtvcmlnaW46WTAoe3I6KFllPDA/MTowKSsoRmU9QXMoSFsiIXJlZiJdKSkuZS5yLGM6KytZZX0pfSk7YnJlYWs7Y2FzZSJETCI6Y2FzZSJVTCI6Y2FzZSJPTCI6WWU9LTEsY29uc29sZS5lcnJvcigi''@;'; put 'put ''SFRNTCBDb252ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgbGlzdCBlbGVtZW50ICIreHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpKTticmVhaztkZWZhdWx0OlllPS0xLGNvbnNvbGUuZXJyb3IoIlNraXBwaW5nICIreHQudGFnTmFtZS50b1VwcGVyQ2FzZSgpKX19cmV0dXJuIEh9KEgsaWUsWCl9''@;'; put 'put ''dHJ5eyJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZT94ZT1nZXRDb21wdXRlZFN0eWxlOmllLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcmJiJmdW5jdGlvbiI9PXR5cGVvZiBpZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUmJih4ZT1pZS5v''@;'; put 'put ''d25lckRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUpfWNhdGNoKCQwKXt9dmFyIEZlPVh8fHt9LFplPTAsamU9MDtpZihudWxsIT1GZS5vcmlnaW4paWYoIm51bWJlciI9PXR5cGVvZiBGZS5vcmlnaW4pWmU9RmUub3JpZ2luO2Vsc2V7dmFyIFllPSJzdHJpbmciPT10eXBl''@;'; put 'put ''b2YgRmUub3JpZ2luP3VsKEZlLm9yaWdpbik6RmUub3JpZ2luO1plPVllLnIsamU9WWUuY312YXIgTXQ9TWF0aC5taW4oRmUuc2hlZXRSb3dzfHwxZTcsd2UubGVuZ3RoKSx4dD17czp7cjowLGM6MH0sZTp7cjpaZSxjOmplfX07aWYoSFsiIXJlZiJdKXt2YXIgUnQ9QXMoSFsiIXJlZiJdKTt4''@;'; put 'put ''dC5zLnI9TWF0aC5taW4oeHQucy5yLFJ0LnMucikseHQucy5jPU1hdGgubWluKHh0LnMuYyxSdC5zLmMpLHh0LmUucj1NYXRoLm1heCh4dC5lLnIsUnQuZS5yKSx4dC5lLmM9TWF0aC5tYXgoeHQuZS5jLFJ0LmUuYyksLTE9PVplJiYoeHQuZS5yPVplPVJ0LmUucisxKX12YXIgVXQ9W10sbm49''@;'; put 'put ''MCxDbj1IWyIhcm93cyJdfHwoSFsiIXJvd3MiXT1bXSksRHQ9MCx6dD0wLFBuPTAsVG49MCxPbj0wLFluPTA7Zm9yKEhbIiFjb2xzIl18fChIWyIhY29scyJdPVtdKTtEdDx3ZS5sZW5ndGgmJnp0PE10OysrRHQpe2Zvcih2YXIgTXI9d2VbRHRdLGFpPU1yLnBhcmVudEVsZW1lbnQ7IlRBQkxF''@;'; put 'put ''IiE9YWkudGFnTmFtZS50b1VwcGVyQ2FzZSgpOylhaT1haS5wYXJlbnRFbGVtZW50O2lmKGFpPT1pZSl7ZTppZih2b2lkIDAhPT14ZSl7dmFyIHlyPXhlKE1yKTtpZihudWxsPT15cilicmVhayBlO2lmKHlyLnN0eWxlfHwoeXIuc3R5bGU9e30pLEZlLmRpc3BsYXkmJiJub25lIj09KHlyLmRp''@;'; put 'put ''c3BsYXl8fHlyLnN0eWxlLmRpc3BsYXkpKWNvbnRpbnVlOyJub25lIj09KHlyLmRpc3BsYXl8fHlyLnN0eWxlLmRpc3BsYXkpJiYoKENuW3p0XXx8KENuW3p0XT17fSkpLmhpZGRlbj0hMCl9dmFyIGFyPU1yLmNlbGxzO2ZvcihQbj1Ubj0wO1BuPGFyLmxlbmd0aDsrK1BuKXt2YXIgR3I9YXJb''@;'; put 'put ''UG5dLHpyPW51bGw7aWYodm9pZCAwPT09eGV8fChudWxsPT16ciYmKHpyPXhlKEdyKSksenIuc3R5bGV8fCh6ci5zdHlsZT17fSksIUZlLmRpc3BsYXl8fG51bGw9PXpyfHwibm9uZSIhPSh6ci5kaXNwbGF5fHx6ci5zdHlsZS5kaXNwbGF5KSkpe2ZvcihZbj0rR3IuZ2V0QXR0cmlidXRlKCJj''@;'; put 'put ''b2xzcGFuIil8fDEsbm49MDtubjxVdC5sZW5ndGg7Kytubil7dmFyIHFyPVV0W25uXTtxci5zLmM9PVRuK2plJiZxci5zLnI8enQrWmUmJnp0K1plPD1xci5lLnImJihUbj1xci5lLmMrMS1qZSxubj0tMSl9KChPbj0rR3IuZ2V0QXR0cmlidXRlKCJyb3dzcGFuIil8fDEpPjF8fFluPjEpJiZV''@;'; put 'put ''dC5wdXNoKHtzOntyOnp0K1plLGM6VG4ramV9LGU6e3I6enQrWmUrKE9ufHwxKS0xLGM6VG4ramUrKFlufHwxKS0xfX0pO3ZhciBvaT1Hci5nZXRBdHRyaWJ1dGUoInQiKXx8IiIsY3I9R3IuZ2V0QXR0cmlidXRlKCJiZ2NvbG9yIik7ZTppZih2b2lkIDAhPT14ZSl7aWYobnVsbD09enImJih6''@;'; put 'put ''cj14ZShHcikpLG51bGw9PXpyKWJyZWFrIGU7aWYoenIuc3R5bGV8fCh6ci5zdHlsZT17fSksMT09WW4mJnpyLndpZHRoJiYoSFsiIWNvbHMiXVtUbitqZV09SFsiIWNvbHMiXVtUbitqZV18fHt9LHpyLndpZHRoLm1hdGNoKC9weC8pP0hbIiFjb2xzIl1bVG4ramVdLndweD1NYXRoLm1heChw''@;'; put 'put ''YXJzZUludCh6ci53aWR0aCwxMCkrNSxIWyIhY29scyJdW1RuK2plXS53cHh8fDApOnpyLndpZHRoLm1hdGNoKC9wdC8pJiYoSFsiIWNvbHMiXVtUbitqZV0ud3B4PU1hdGgubWF4KDQqcGFyc2VJbnQoenIud2lkdGgsMTApLzMrNSxIWyIhY29scyJdW1RuK2plXS53cHh8fDApKSksT248PTEp''@;'; put 'put ''e0NuW3p0K1plXXx8KENuW3p0K1plXT17fSk7dmFyIGRpPXpyLmhlaWdodDsoZGk9ZGkubWF0Y2goL3B0Lyk/QWYocGFyc2VJbnQoZGksMTApKTpwYXJzZUludChkaSwxMCkpPihDblt6dCtaZV0uaHB4fHxBZihDblt6dCtaZV0uaHB0KXx8MCkmJihkZWxldGUgQ25benQrWmVdLmhwdCxDblt6''@;'; put 'put ''dCtaZV0uaHB4PWRpKX19dmFyIHYwPUdyO2lmKEdyLmZpcnN0RWxlbWVudENoaWxkJiYxPT1Hci5jaGlsZHJlbi5sZW5ndGgmJiJzcGFuIj09R3IuZmlyc3RFbGVtZW50Q2hpbGQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7Zm9yKHZhciBVaT0wLHRvPUdyLmNoaWxkTm9kZXMsQTA9MDtBMDx0''@;'; put 'put ''by5sZW5ndGg7KytBMCkzPT10b1tBMF0ubm9kZVR5cGUmJisrVWk7MD09VWkmJihHcj1Hci5maXJzdEVsZW1lbnRDaGlsZCl9dmFyIGJpPUw2KEdyLHYwLG9pLDAsRmUpO2lmKHpyKXt2YXIgWXI9eGUoR3IpO2lmKFlyJiYhWXIuc3R5bGUmJihZci5zdHlsZT17fSksKFlyJiZZclsiYmFja2dy''@;'; put 'put ''b3VuZC1jb2xvciJdfHx6clsiYmFja2dyb3VuZC1jb2xvciJdKSYmKGJpLnN8fChiaS5zPXt9KSwhYmkucy5mZ0NvbG9yKSl0cnl7dmFyIEVpPVlyJiZZclsiYmFja2dyb3VuZC1jb2xvciJdfHx6clsiYmFja2dyb3VuZC1jb2xvciJdO0VpLm1hdGNoKC9yZ2JhWyhdXHMqMC4qWyldL2kpJiYo''@;'; put 'put ''RWk9enJbImJhY2tncm91bmQtY29sb3IiXSk7dmFyIGhpPVg4KEVpLnRvTG93ZXJDYXNlKCksITApO2hpPj0wJiYoYmkucy5mZ0NvbG9yPXtyZ2I6aGl9KX1jYXRjaCgkMCl7fXN3aXRjaCh6clsidmVydGljYWwtYWxpZ24iXSl7Y2FzZSJtaWRkbGUiOmNhc2UiYmFzZWxpbmUiOmJpLnN8fChi''@;'; put 'put ''aS5zPXt9KSxiaS5zLmFsaWdubWVudHx8KGJpLnMuYWxpZ25tZW50PXt9KSxiaS5zLmFsaWdubWVudC52ZXJ0aWNhbD0iY2VudGVyIn19aWYoY3ImJihiaS5zfHwoYmkucz17fSksIWJpLnMuZmdDb2xvcikpdHJ5e3ZhciBOcj1YOChjci50b0xvd2VyQ2FzZSgpLCEwKTtOcj49MCYmKGJpLnMu''@;'; put 'put ''ZmdDb2xvcj17cmdiOk5yfSl9Y2F0Y2goJDApe31pZihGZS5kZW5zZT8oSFt6dCtaZV18fChIW3p0K1plXT1bXSksSFt6dCtaZV1bVG4ramVdPWJpKTpIW1kwKHtjOlRuK2plLHI6enQrWmV9KV09YmksT24+MXx8WW4+MSlmb3IodmFyIGtpPXp0O2tpPHp0K09uOysra2kpZm9yKHZhciBOMD1U''@;'; put 'put ''bjtOMDxUbitZbjsrK04wKXp0PT1raSYmVG49PU4wfHwoRmUuZGVuc2U/KEhba2krWmVdfHwoSFtraStaZV09W10pLEhba2krWmVdW04wK2plXT17dDoieiIsczpsbihiaS5zfHx7fSl9KTpIW1kwKHtjOk4wK2plLHI6a2krWmV9KV09e3Q6InoiLHM6bG4oYmkuc3x8e30pfSk7eHQuZS5jPFRu''@;'; put 'put ''K2plJiYoeHQuZS5jPVRuK2plKSxUbis9WW59fSsrenR9fWlmKFV0Lmxlbmd0aCYmKEhbIiFtZXJnZXMiXT0oSFsiIW1lcmdlcyJdfHxbXSkuY29uY2F0KFV0KSkseHQuZS5yPU1hdGgubWF4KHh0LmUucix6dC0xK1plKSxIWyIhcmVmIl09ZmEoeHQpLHp0Pj1NdCYmKEhbIiFmdWxscmVmIl09''@;'; put 'put ''ZmEoKHh0LmUucj13ZS5sZW5ndGgtRHQrenQtMStaZSx4dCkpKSxGZS5ib3JkZXJzKWZvcih6dD14dC5zLnI7enQ8PXh0LmUucjsrK3p0KWZvcihUbj14dC5zLmM7VG48PXh0LmUuYzsrK1RuKWlmKCFGZS5kZW5zZSl7dmFyIHQwPUhbWTAoe3I6enQsYzpUbn0pXTtpZighdDB8fCF0MC5zKWNv''@;'; put 'put ''bnRpbnVlO2lmKHp0PjApe3ZhciBpbz1IW1kwKHtyOnp0LTEsYzpUbn0pXTtpbyYmaW8ucyYmaW8ucy5ib3R0b20mJmRlbGV0ZSB0MC5zLnRvcH1pZihUbj4wKXt2YXIgb2E9SFtZMCh7cjp6dCxjOlRuLTF9KV07b2EmJm9hLnMmJm9hLnMuYm90dG9tJiZkZWxldGUgdDAucy5sZWZ0fX1yZXR1''@;'; put 'put ''cm4gSH1mdW5jdGlvbiByQyhILGllKXtyZXR1cm4gVmgoKGllfHx7fSkuZGVuc2U/W106e30sSCxpZSl9dmFyIGlDPWZ1bmN0aW9uKCl7dmFyIEg9ZnVuY3Rpb24od2UseGUsRmUpe3ZhciBaZT13ZS5yZXBsYWNlKC9bXHRcclxuXS9nLCIgIikudHJpbSgpLnJlcGxhY2UoLyArL2csIiAiKS5y''@;'; put 'put ''ZXBsYWNlKC88dGV4dDpzXC8+L2csIiAiKS5yZXBsYWNlKC88dGV4dDpzIHRleHQ6Yz0iKFxkKykiXC8+L2csZnVuY3Rpb24oeHQsUnQpe3JldHVybiBBcnJheShwYXJzZUludChSdCwxMCkrMSkuam9pbigiICIpfSkucmVwbGFjZSgvPHRleHQ6dGFiW14+XSpcLz4vZywiXHQiKS5yZXBsYWNl''@;'; put 'put ''KC88dGV4dDpsaW5lLWJyZWFrXC8+L2csIlxuIiksamU9Z3IoWmUucmVwbGFjZSgvPFtePl0qPi9nLCIiKSksWWU9W10sTXQ9MDtyZXR1cm4gWmUucmVwbGFjZSgvKDx0ZXh0OnNwYW4uKj8+KSguKj8pPFtcL110ZXh0OnNwYW4+L2csZnVuY3Rpb24oeHQsUnQsVXQsbm4pe25uIT1NdCYmWWUu''@;'; put 'put ''cHVzaCh7dDoicyIsdjpncihaZS5zbGljZShNdCxubikpfSk7dmFyIENuPXt0OiJzIix2OmdyKFV0KX0sRHQ9ZW4oUnQpWyJzdHlsZS1uYW1lIl07cmV0dXJuIER0JiZGZVtEdF0mJihDbi5zPWxuKEZlW0R0XSkpLFllLnB1c2goQ24pLE10PW5uK3h0Lmxlbmd0aCwiIn0pLE10PFplLmxlbmd0''@;'; put 'put ''aCYmWWUucHVzaCh7dDoicyIsdjpncihaZS5zbGljZShNdCkpfSksW2plLFllXX0saWU9e2RheTpbImQiLCJkZCJdLG1vbnRoOlsibSIsIm1tIl0seWVhcjpbInkiLCJ5eSJdLGhvdXJzOlsiaCIsImhoIl0sbWludXRlczpbIm0iLCJtbSJdLHNlY29uZHM6WyJzIiwic3MiXSwiYW0tcG0iOlsi''@;'; put 'put ''QS9QIiwiQU0vUE0iXSwiZGF5LW9mLXdlZWsiOlsiZGRkIiwiZGRkZCJdLGVyYTpbImUiLCJlZSJdLHF1YXJ0ZXI6WyJcXFFtIiwnbVxcInRoIHF1YXJ0ZXIiJ119LFg9ZnVuY3Rpb24od2UseGUpe3ZhciBGZT1lbih3ZS5zbGljZSgwLHdlLmluZGV4T2YoIj4iKSkpLFplPXdlLnNsaWNlKHdl''@;'; put 'put ''LmluZGV4T2YoIj4iKSsxKSxqZT17bmFtZTpGZS5uYW1lLGZhbWlseTpGZS5mYW1pbHl9O1tbInBhcmVudCIsInBhcmVudC1zdHlsZS1uYW1lIl0sWyJkYXRhbmFtZSIsImRhdGEtc3R5bGUtbmFtZSJdLFsibXBuYW1lIiwibWFzdGVyLXBhZ2UtbmFtZSJdXS5mb3JFYWNoKGZ1bmN0aW9uKE10''@;'; put 'put ''KXtGZVtNdFsxXV0mJihqZVtNdFswXV09RmVbTXRbMV1dKX0pO3ZhciBZZT17fTtaZS5yZXBsYWNlKEd0LGZ1bmN0aW9uKE10KXt2YXIgeHQ9ZW4oTXQpO2lmKCI8c3R5bGU6dGV4dC1wcm9wZXJ0aWVzIj09PXh0WzBdKXtpZih4dFsiZm9udC13ZWlnaHQiXSYmKFllLmJvbGQ9KygiYm9sZCI9''@;'; put 'put ''PXh0WyJmb250LXdlaWdodCJdfHwiNzAwIj09eHRbImZvbnQtd2VpZ2h0Il0pKSwoIml0YWxpYyI9PXh0WyJmb250LXN0eWxlIl18fCJvYmxpcXVlIj09eHRbImZvbnQtc3R5bGUiXSkmJihZZS5pdGFsaWM9MSksIm5vbmUiIT0oeHRbInRleHQtdW5kZXJsaW5lLXN0eWxlIl18fCJub25lIik/''@;'; put 'put ''WWUudW5kZXJsaW5lPSJkb3VibGUiPT14dFsidGV4dC11bmRlcmxpbmUtdHlwZSJdPzI6MTooeHRbInRleHQtdW5kZXJsaW5lLXN0eWxlIl18fCJub25lIj09eHRbInRleHQtdW5kZXJsaW5lLXR5cGUiXSkmJihZZS51bmRlcmxpbmU9MCksKHh0WyJmb250LXNpemUiXXx8IiIpLm1hdGNoKC9w''@;'; put 'put ''dCQvKSYmKFllLnN6PSt4dFsiZm9udC1zaXplIl0ucmVwbGFjZSgicHQiLCIiKSksIm5vbmUiIT0oeHRbInRleHQtbGluZS10aHJvdWdoLXN0eWxlIl18fCJub25lIikmJihZZS5zdHJpa2U9MSkseHRbImZvbnQtbmFtZSJdJiYoWWUubmFtZT14dFsiZm9udC1uYW1lIl0pLHh0LmNvbG9yKXt2''@;'; put 'put ''YXIgUnQ9WDgoeHQuY29sb3IsITApO1J0Pj0wJiYoWWUuY29sb3I9UnQpfXN3aXRjaCh4dFsidGV4dC1wb3NpdGlvbiJdKXtjYXNlInN1cGVyIjpZZS52YWxpZ249InN1cGVyIjticmVhaztjYXNlInN1YiI6WWUudmFsaWduPSJzdWIiO2JyZWFrO2RlZmF1bHQ6KHh0WyJ0ZXh0LXBvc2l0aW9u''@;'; put 'put ''Il18fCIiKS5tYXRjaCgvJS8pJiYoWWUudmFsaWduPSItIj09eHRbInRleHQtcG9zaXRpb24iXS5jaGFyQXQoMCk/InN1YiI6InN1cGVyIil9Im5vbmUiIT0oeHRbInRleHQtc2hhZG93Il18fCJub25lIikmJihZZS5zaGFkb3c9MSl9cmV0dXJuIiJ9KSx4ZVtGZS5uYW1lXT1ZZX07cmV0dXJu''@;'; put 'put ''IGZ1bmN0aW9uKHhlLEZlKXt2YXIgTXQseHQsQ24sRHQsT24sWW4sWmU9RmV8fHt9LGplPUM1KHhlKSxZZT1bXSxSdD17bmFtZToiIn0sVXQ9IiIsbm49MCx6dD17fSxQbj1bXSxUbj1aZS5kZW5zZT9bXTp7fSxNcj17dmFsdWU6IiJ9LGFpPSIiLHlyPTAsR3I9W10senI9LTEscXI9LTEsb2k9''@;'; put 'put ''e3M6e3I6MWU2LGM6MWU3fSxlOntyOjAsYzowfX0sY3I9MCxkaT17fSx2MD1bXSxVaT17fSx0bz0wLEEwPTAsYmk9W10sWXI9MSxFaT0xLGhpPVtdLE5yPXtOYW1lczpbXX0sa2k9e30sTjA9WyIiLCIiXSx0MD1bXSxpbz17fSxvYT17fSwkMD0wLFZhPSIiLGpvPTAsd2E9ITEsYW89ITEseDA9''@;'; put 'put ''MDtmb3IoTmgubGFzdEluZGV4PTAsamU9amUucmVwbGFjZSgvPCEtLShbXHNcU10qPyktLT4vZ20sIiIpLnJlcGxhY2UoLzwhRE9DVFlQRVteXFtdKlxbW15cXV0qXF0+L2dtLCIiKTtPbj1OaC5leGVjKGplKTspc3dpdGNoKE9uWzNdPU9uWzNdLnJlcGxhY2UoL18uKiQvLCIiKSl7Y2FzZSJ0''@;'; put 'put ''YWJsZSI6Y2FzZSJcdTVkZTVcdTRmNWNcdTg4NjgiOiIvIj09PU9uWzFdPyhUblsiIXJlZiJdPW9pLmUuYz49b2kucy5jJiZvaS5lLnI+PW9pLnMucj9mYShvaSk6IkExOkExIixaZS5zaGVldFJvd3M+MCYmWmUuc2hlZXRSb3dzPD1vaS5lLnImJihUblsiIWZ1bGxyZWYiXT1UblsiIXJlZiJd''@;'; put 'put ''LG9pLmUucj1aZS5zaGVldFJvd3MtMSxUblsiIXJlZiJdPWZhKG9pKSksdjAubGVuZ3RoJiYoVG5bIiFtZXJnZXMiXT12MCksYmkubGVuZ3RoJiYoVG5bIiFyb3dzIl09YmkpLENuLm5hbWU9Q24uXHU1NDBkXHU3OWYwfHxDbi5uYW1lLCJ1bmRlZmluZWQiIT10eXBlb2YgSlNPTiYmSlNPTi5z''@;'; put 'put ''dHJpbmdpZnkoQ24pLFBuLnB1c2goQ24ubmFtZSksenRbQ24ubmFtZV09VG4sYW89ITEpOiIvIiE9PU9uWzBdLmNoYXJBdChPblswXS5sZW5ndGgtMikmJihDbj1lbihPblswXSwhMSksenI9cXI9LTEsb2kucy5yPW9pLnMuYz0xZTcsb2kuZS5yPW9pLmUuYz0wLFRuPVplLmRlbnNlP1tdOnt9''@;'; put 'put ''LHYwPVtdLGJpPVtdLGFvPSEwKTticmVhaztjYXNlInRhYmxlLXJvdy1ncm91cCI6Ii8iPT09T25bMV0/LS1jcjorK2NyO2JyZWFrO2Nhc2UidGFibGUtcm93IjpjYXNlIlx1ODg0YyI6aWYoIi8iPT09T25bMV0pe3pyKz1ZcixZcj0xO2JyZWFrfWlmKChEdD1lbihPblswXSwhMSkpLlx1ODg0''@;'; put 'put ''Y1x1NTNmNz96cj1EdC5cdTg4NGNcdTUzZjctMTotMT09enImJih6cj0wKSwoWXI9K0R0WyJudW1iZXItcm93cy1yZXBlYXRlZCJdfHwxKTwxMClmb3IoeDA9MDt4MDxZcjsrK3gwKWNyPjAmJihiaVt6cit4MF09e2xldmVsOmNyfSk7cXI9LTE7YnJlYWs7Y2FzZSJjb3ZlcmVkLXRhYmxlLWNl''@;'; put 'put ''bGwiOiIvIiE9PU9uWzFdJiYrK3FyLFplLnNoZWV0U3R1YnMmJihaZS5kZW5zZT8oVG5benJdfHwoVG5benJdPVtdKSxUblt6cl1bcXJdPXt0OiJ6In0pOlRuW1kwKHtyOnpyLGM6cXJ9KV09e3Q6InoifSksYWk9IiIsR3I9W107YnJlYWs7Y2FzZSJ0YWJsZS1jZWxsIjpjYXNlIlx1NjU3MFx1''@;'; put 'put ''NjM2ZSI6aWYoIi8iPT09T25bMF0uY2hhckF0KE9uWzBdLmxlbmd0aC0yKSkrK3FyLE1yPWVuKE9uWzBdLCExKSxFaT1wYXJzZUludChNclsibnVtYmVyLWNvbHVtbnMtcmVwZWF0ZWQiXXx8IjEiLDEwKSxZbj17dDoieiIsdjpudWxsfSxNci5mb3JtdWxhJiYwIT1aZS5jZWxsRm9ybXVsYSYm''@;'; put 'put ''KFluLmY9TGgoZ3IoTXIuZm9ybXVsYSkpKSwic3RyaW5nIj09KE1yLlx1NjU3MFx1NjM2ZVx1N2M3Ylx1NTc4Ynx8TXJbInZhbHVlLXR5cGUiXSkmJihZbi50PSJzIixZbi52PWdyKE1yWyJzdHJpbmctdmFsdWUiXXx8IiIpLFplLmRlbnNlPyhUblt6cl18fChUblt6cl09W10pLFRuW3pyXVtx''@;'; put 'put ''cl09WW4pOlRuW1kwKHtyOnpyLGM6cXJ9KV09WW4pLHFyKz1FaS0xO2Vsc2UgaWYoIi8iIT09T25bMV0pe0VpPTE7dmFyIGgwPVlyP3pyK1lyLTE6enI7aWYoKytxcj5vaS5lLmMmJihvaS5lLmM9cXIpLHFyPG9pLnMuYyYmKG9pLnMuYz1xciksenI8b2kucy5yJiYob2kucy5yPXpyKSxoMD5v''@;'; put 'put ''aS5lLnImJihvaS5lLnI9aDApLHQwPVtdLGlvPXt9LFluPXt0OihNcj1lbihPblswXSwhMSkpLlx1NjU3MFx1NjM2ZVx1N2M3Ylx1NTc4Ynx8TXJbInZhbHVlLXR5cGUiXSx2Om51bGx9LFplLmNlbGxGb3JtdWxhKWlmKE1yLmZvcm11bGEmJihNci5mb3JtdWxhPWdyKE1yLmZvcm11bGEpKSxN''@;'; put 'put ''clsibnVtYmVyLW1hdHJpeC1jb2x1bW5zLXNwYW5uZWQiXSYmTXJbIm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl0mJih0bz1wYXJzZUludChNclsibnVtYmVyLW1hdHJpeC1yb3dzLXNwYW5uZWQiXSwxMCl8fDAsQTA9cGFyc2VJbnQoTXJbIm51bWJlci1tYXRyaXgtY29sdW1ucy1zcGFu''@;'; put 'put ''bmVkIl0sMTApfHwwLFluLkY9ZmEoVWk9e3M6e3I6enIsYzpxcn0sZTp7cjp6cit0by0xLGM6cXIrQTAtMX19KSxoaS5wdXNoKFtVaSxZbi5GXSkpLE1yLmZvcm11bGEpWW4uZj1MaChNci5mb3JtdWxhKTtlbHNlIGZvcih4MD0wO3gwPGhpLmxlbmd0aDsrK3gwKXpyPj1oaVt4MF1bMF0ucy5y''@;'; put 'put ''JiZ6cjw9aGlbeDBdWzBdLmUuciYmcXI+PWhpW3gwXVswXS5zLmMmJnFyPD1oaVt4MF1bMF0uZS5jJiYoWW4uRj1oaVt4MF1bMV0pO3N3aXRjaCgoTXJbIm51bWJlci1jb2x1bW5zLXNwYW5uZWQiXXx8TXJbIm51bWJlci1yb3dzLXNwYW5uZWQiXSkmJih0bz1wYXJzZUludChNclsibnVtYmVy''@;'; put 'put ''LXJvd3Mtc3Bhbm5lZCJdLDEwKXx8MCxBMD1wYXJzZUludChNclsibnVtYmVyLWNvbHVtbnMtc3Bhbm5lZCJdLDEwKXx8MCx2MC5wdXNoKFVpPXtzOntyOnpyLGM6cXJ9LGU6e3I6enIrdG8tMSxjOnFyK0EwLTF9fSkpLE1yWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdJiYoRWk9cGFyc2VJ''@;'; put 'put ''bnQoTXJbIm51bWJlci1jb2x1bW5zLXJlcGVhdGVkIl0sMTApKSxZbi50KXtjYXNlImJvb2xlYW4iOlluLnQ9ImIiLFluLnY9RGkoTXJbImJvb2xlYW4tdmFsdWUiXSk7YnJlYWs7Y2FzZSJmbG9hdCI6Y2FzZSJwZXJjZW50YWdlIjpjYXNlImN1cnJlbmN5IjpZbi50PSJuIixZbi52PXBhcnNl''@;'; put 'put ''RmxvYXQoTXIudmFsdWUpO2JyZWFrO2Nhc2UiZGF0ZSI6WW4udD0iZCIsWW4udj1kbihNclsiZGF0ZS12YWx1ZSJdKSxaZS5jZWxsRGF0ZXN8fChZbi50PSJuIixZbi52PWZ0KFluLnYpKSxZbi56PSJtL2QveXkiO2JyZWFrO2Nhc2UidGltZSI6WW4udD0ibiIsWW4udj1qdChNclsidGltZS12''@;'; put 'put ''YWx1ZSJdKS84NjQwMCxaZS5jZWxsRGF0ZXMmJihZbi50PSJkIixZbi52PUh0KFluLnYpKSxZbi56PSJISDpNTTpTUyI7YnJlYWs7Y2FzZSJudW1iZXIiOlluLnQ9Im4iLFluLnY9cGFyc2VGbG9hdChNci5cdTY1NzBcdTYzNmVcdTY1NzBcdTUwM2MpO2JyZWFrO2RlZmF1bHQ6aWYoInN0cmlu''@;'; put 'put ''ZyIhPT1Zbi50JiYidGV4dCIhPT1Zbi50JiZZbi50KXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgdmFsdWUgdHlwZSAiK1luLnQpO1luLnQ9InMiLG51bGwhPU1yWyJzdHJpbmctdmFsdWUiXSYmKGFpPWdyKE1yWyJzdHJpbmctdmFsdWUiXSksR3I9W10pfX1lbHNle2lmKHdhPSExLCJz''@;'; put 'put ''Ij09PVluLnQmJihZbi52PWFpfHwiIixHci5sZW5ndGgmJihZbi5SPUdyKSx3YT0wPT15ciksa2kuVGFyZ2V0JiYoWW4ubD1raSksdDAubGVuZ3RoPjAmJihZbi5jPXQwLHQwPVtdKSxhaSYmITEhPT1aZS5jZWxsVGV4dCYmKFluLnc9YWkpLHdhJiYoWW4udD0ieiIsZGVsZXRlIFluLnYpLFpl''@;'; put 'put ''LmNlbGxIVE1MJiYoWW4uaD1Zbi5SP2htKFluLlIpOm4wKCIiK1luLnYpKSwoIXdhfHxaZS5zaGVldFN0dWJzKSYmIShaZS5zaGVldFJvd3MmJlplLnNoZWV0Um93czw9enIpKWZvcih2YXIganI9MDtqcjxZcjsrK2pyKXtpZihFaT1wYXJzZUludChNclsibnVtYmVyLWNvbHVtbnMtcmVwZWF0''@;'; put 'put ''ZWQiXXx8IjEiLDEwKSxaZS5kZW5zZSlmb3IoVG5benIranJdfHwoVG5benIranJdPVtdKSxUblt6citqcl1bcXJdPTA9PWpyP1luOmxuKFluKTstLUVpPjA7KVRuW3pyK2pyXVtxcitFaV09bG4oWW4pO2Vsc2UgZm9yKFRuW1kwKHtyOnpyK2pyLGM6cXJ9KV09WW47LS1FaT4wOylUbltZMCh7''@;'; put 'put ''cjp6citqcixjOnFyK0VpfSldPWxuKFluKTtvaS5lLmM8PXFyJiYob2kuZS5jPXFyKX1xcis9KEVpPXBhcnNlSW50KE1yWyJudW1iZXItY29sdW1ucy1yZXBlYXRlZCJdfHwiMSIsMTApKS0xLEVpPTAsWW49e30sYWk9IiIsR3I9W119a2k9e307YnJlYWs7Y2FzZSJkb2N1bWVudCI6Y2FzZSJk''@;'; put 'put ''b2N1bWVudC1jb250ZW50IjpjYXNlIlx1NzUzNVx1NWI1MFx1ODg2OFx1NjgzY1x1NjU4N1x1Njg2MyI6Y2FzZSJzcHJlYWRzaGVldCI6Y2FzZSJcdTRlM2JcdTRmNTMiOmNhc2Uic2NyaXB0cyI6Y2FzZSJzdHlsZXMiOmNhc2UiZm9udC1mYWNlLWRlY2xzIjpjYXNlIm1hc3Rlci1zdHlsZXMi''@;'; put 'put ''OmlmKCIvIj09PU9uWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09T25bM10pdGhyb3ciQmFkIHN0YXRlOiAiK010fWVsc2UiLyIhPT1PblswXS5jaGFyQXQoT25bMF0ubGVuZ3RoLTIpJiZZZS5wdXNoKFtPblszXSwhMF0pO2JyZWFrO2Nhc2UiYW5ub3RhdGlvbiI6aWYoIi8iPT09T25bMV0p''@;'; put 'put ''e2lmKChNdD1ZZS5wb3AoKSlbMF0hPT1PblszXSl0aHJvdyJCYWQgc3RhdGU6ICIrTXQ7aW8udD1haSxHci5sZW5ndGgmJihpby5SPUdyKSxpby5hPVZhLHQwLnB1c2goaW8pfWVsc2UiLyIhPT1PblswXS5jaGFyQXQoT25bMF0ubGVuZ3RoLTIpJiZZZS5wdXNoKFtPblszXSwhMV0pO1ZhPSIi''@;'; put 'put ''LGpvPTAsYWk9IiIseXI9MCxHcj1bXTticmVhaztjYXNlImNyZWF0b3IiOiIvIj09PU9uWzFdP1ZhPWplLnNsaWNlKGpvLE9uLmluZGV4KTpqbz1Pbi5pbmRleCtPblswXS5sZW5ndGg7YnJlYWs7Y2FzZSJtZXRhIjpjYXNlIlx1NTE0M1x1NjU3MFx1NjM2ZSI6Y2FzZSJzZXR0aW5ncyI6Y2Fz''@;'; put 'put ''ZSJjb25maWctaXRlbS1zZXQiOmNhc2UiY29uZmlnLWl0ZW0tbWFwLWluZGV4ZWQiOmNhc2UiY29uZmlnLWl0ZW0tbWFwLWVudHJ5IjpjYXNlImNvbmZpZy1pdGVtLW1hcC1uYW1lZCI6Y2FzZSJzaGFwZXMiOmNhc2UiZnJhbWUiOmNhc2UidGV4dC1ib3giOmNhc2UiaW1hZ2UiOmNhc2UiZGF0''@;'; put 'put ''YS1waWxvdC10YWJsZXMiOmNhc2UibGlzdC1zdHlsZSI6Y2FzZSJmb3JtIjpjYXNlImRkZS1saW5rcyI6Y2FzZSJldmVudC1saXN0ZW5lcnMiOmNhc2UiY2hhcnQiOmlmKCIvIj09PU9uWzFdKXtpZigoTXQ9WWUucG9wKCkpWzBdIT09T25bM10pdGhyb3ciQmFkIHN0YXRlOiAiK010fWVsc2Ui''@;'; put 'put ''LyIhPT1PblswXS5jaGFyQXQoT25bMF0ubGVuZ3RoLTIpJiZZZS5wdXNoKFtPblszXSwhMV0pO2FpPSIiLHlyPTAsR3I9W107YnJlYWs7Y2FzZSJzY2llbnRpZmljLW51bWJlciI6Y2FzZSJjdXJyZW5jeS1zeW1ib2wiOmNhc2UiY3VycmVuY3ktc3R5bGUiOmNhc2Uic2NyaXB0IjpjYXNlImxp''@;'; put 'put ''YnJhcmllcyI6Y2FzZSJhdXRvbWF0aWMtc3R5bGVzIjpjYXNlImRlZmF1bHQtc3R5bGUiOmNhc2UicGFnZS1sYXlvdXQiOmNhc2UibWFwIjpjYXNlImZvbnQtZmFjZSI6Y2FzZSJwYXJhZ3JhcGgtcHJvcGVydGllcyI6Y2FzZSJ0YWJsZS1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLWNvbHVtbi1w''@;'; put 'put ''cm9wZXJ0aWVzIjpjYXNlInRhYmxlLXJvdy1wcm9wZXJ0aWVzIjpjYXNlInRhYmxlLWNlbGwtcHJvcGVydGllcyI6Y2FzZSJmcmFjdGlvbiI6Y2FzZSJib29sZWFuLXN0eWxlIjpjYXNlImJvb2xlYW4iOmNhc2UidGV4dC1zdHlsZSI6Y2FzZSJ0ZXh0LWNvbnRlbnQiOmNhc2UidGV4dC1wcm9w''@;'; put 'put ''ZXJ0aWVzIjpjYXNlImVtYmVkZGVkLXRleHQiOmNhc2UiYm9keSI6Y2FzZSJcdTc1MzVcdTViNTBcdTg4NjhcdTY4M2MiOmNhc2UiZm9ybXMiOmNhc2UidGFibGUtY29sdW1uIjpjYXNlInRhYmxlLWhlYWRlci1yb3dzIjpjYXNlInRhYmxlLXJvd3MiOmNhc2UidGFibGUtY29sdW1uLWdyb3Vw''@;'; put 'put ''IjpjYXNlInRhYmxlLWhlYWRlci1jb2x1bW5zIjpjYXNlInRhYmxlLWNvbHVtbnMiOmNhc2UibnVsbC1kYXRlIjpjYXNlImdyYXBoaWMtcHJvcGVydGllcyI6Y2FzZSJjYWxjdWxhdGlvbi1zZXR0aW5ncyI6Y2FzZSJuYW1lZC1leHByZXNzaW9ucyI6Y2FzZSJsYWJlbC1yYW5nZSI6Y2FzZSJs''@;'; put 'put ''YWJlbC1yYW5nZXMiOmNhc2UibmFtZWQtZXhwcmVzc2lvbiI6Y2FzZSJzb3J0IjpjYXNlInNvcnQtYnkiOmNhc2Uic29ydC1ncm91cHMiOmNhc2UidGFiIjpjYXNlImxpbmUtYnJlYWsiOmNhc2Uic3BhbiI6Y2FzZSJzIjpjYXNlImRhdGUiOmNhc2Uib2JqZWN0IjpjYXNlInRpdGxlIjpjYXNl''@;'; put 'put ''Ilx1NjgwN1x1OTg5OCI6Y2FzZSJkZXNjIjpjYXNlImJpbmFyeS1kYXRhIjpjYXNlInRhYmxlLXNvdXJjZSI6Y2FzZSJzY2VuYXJpbyI6Y2FzZSJpdGVyYXRpb24iOmNhc2UiY29udGVudC12YWxpZGF0aW9ucyI6Y2FzZSJjb250ZW50LXZhbGlkYXRpb24iOmNhc2UiaGVscC1tZXNzYWdlIjpj''@;'; put 'put ''YXNlImVycm9yLW1lc3NhZ2UiOmNhc2UiZGF0YWJhc2UtcmFuZ2VzIjpjYXNlImZpbHRlciI6Y2FzZSJmaWx0ZXItYW5kIjpjYXNlImZpbHRlci1vciI6Y2FzZSJmaWx0ZXItY29uZGl0aW9uIjpjYXNlImxpc3QtbGV2ZWwtc3R5bGUtYnVsbGV0IjpjYXNlImxpc3QtbGV2ZWwtc3R5bGUtbnVt''@;'; put 'put ''YmVyIjpjYXNlImxpc3QtbGV2ZWwtcHJvcGVydGllcyI6Y2FzZSJzZW5kZXItZmlyc3RuYW1lIjpjYXNlInNlbmRlci1sYXN0bmFtZSI6Y2FzZSJzZW5kZXItaW5pdGlhbHMiOmNhc2Uic2VuZGVyLXRpdGxlIjpjYXNlInNlbmRlci1wb3NpdGlvbiI6Y2FzZSJzZW5kZXItZW1haWwiOmNhc2Ui''@;'; put 'put ''c2VuZGVyLXBob25lLXByaXZhdGUiOmNhc2Uic2VuZGVyLWZheCI6Y2FzZSJzZW5kZXItY29tcGFueSI6Y2FzZSJzZW5kZXItcGhvbmUtd29yayI6Y2FzZSJzZW5kZXItc3RyZWV0IjpjYXNlInNlbmRlci1jaXR5IjpjYXNlInNlbmRlci1wb3N0YWwtY29kZSI6Y2FzZSJzZW5kZXItY291bnRy''@;'; put 'put ''eSI6Y2FzZSJzZW5kZXItc3RhdGUtb3ItcHJvdmluY2UiOmNhc2UiYXV0aG9yLW5hbWUiOmNhc2UiYXV0aG9yLWluaXRpYWxzIjpjYXNlImNoYXB0ZXIiOmNhc2UiZmlsZS1uYW1lIjpjYXNlInRlbXBsYXRlLW5hbWUiOmNhc2Uic2hlZXQtbmFtZSI6Y2FzZSJldmVudC1saXN0ZW5lciI6Y2Fz''@;'; put 'put ''ZSJpbml0aWFsLWNyZWF0b3IiOmNhc2UiY3JlYXRpb24tZGF0ZSI6Y2FzZSJwcmludC1kYXRlIjpjYXNlImdlbmVyYXRvciI6Y2FzZSJkb2N1bWVudC1zdGF0aXN0aWMiOmNhc2UidXNlci1kZWZpbmVkIjpjYXNlImVkaXRpbmctZHVyYXRpb24iOmNhc2UiZWRpdGluZy1jeWNsZXMiOmNhc2Ui''@;'; put 'put ''Y29uZmlnLWl0ZW0iOmNhc2UicGFnZS1udW1iZXIiOmNhc2UicGFnZS1jb3VudCI6Y2FzZSJ0aW1lIjpjYXNlImNlbGwtcmFuZ2Utc291cmNlIjpjYXNlImRldGVjdGl2ZSI6Y2FzZSJvcGVyYXRpb24iOmNhc2UiaGlnaGxpZ2h0ZWQtcmFuZ2UiOmNhc2UiZGF0YS1waWxvdC10YWJsZSI6Y2Fz''@;'; put 'put ''ZSJzb3VyY2UtY2VsbC1yYW5nZSI6Y2FzZSJzb3VyY2Utc2VydmljZSI6Y2FzZSJkYXRhLXBpbG90LWZpZWxkIjpjYXNlImRhdGEtcGlsb3QtbGV2ZWwiOmNhc2UiZGF0YS1waWxvdC1zdWJ0b3RhbHMiOmNhc2UiZGF0YS1waWxvdC1zdWJ0b3RhbCI6Y2FzZSJkYXRhLXBpbG90LW1lbWJlcnMi''@;'; put 'put ''OmNhc2UiZGF0YS1waWxvdC1tZW1iZXIiOmNhc2UiZGF0YS1waWxvdC1kaXNwbGF5LWluZm8iOmNhc2UiZGF0YS1waWxvdC1zb3J0LWluZm8iOmNhc2UiZGF0YS1waWxvdC1sYXlvdXQtaW5mbyI6Y2FzZSJkYXRhLXBpbG90LWZpZWxkLXJlZmVyZW5jZSI6Y2FzZSJkYXRhLXBpbG90LWdyb3Vw''@;'; put 'put ''cyI6Y2FzZSJkYXRhLXBpbG90LWdyb3VwIjpjYXNlImRhdGEtcGlsb3QtZ3JvdXAtbWVtYmVyIjpjYXNlInJlY3QiOmNhc2UiZGRlLWNvbm5lY3Rpb24tZGVjbHMiOmNhc2UiZGRlLWNvbm5lY3Rpb24tZGVjbCI6Y2FzZSJkZGUtbGluayI6Y2FzZSJkZGUtc291cmNlIjpjYXNlInByb3BlcnRp''@;'; put 'put ''ZXMiOmNhc2UicHJvcGVydHkiOmNhc2UidGFibGUtcHJvdGVjdGlvbiI6Y2FzZSJkYXRhLXBpbG90LWdyYW5kLXRvdGFsIjpjYXNlIm9mZmljZS1kb2N1bWVudC1jb21tb24tYXR0cnMiOmJyZWFrO2Nhc2UibnVtYmVyLXN0eWxlIjpjYXNlInBlcmNlbnRhZ2Utc3R5bGUiOmNhc2UiZGF0ZS1z''@;'; put 'put ''dHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjppZigiLyI9PT1PblsxXSl7aWYoZGlbUnQubmFtZV09VXQsKE10PVllLnBvcCgpKVswXSE9PU9uWzNdKXRocm93IkJhZCBzdGF0ZTogIitNdH1lbHNlIi8iIT09T25bMF0uY2hhckF0KE9uWzBdLmxlbmd0aC0yKSYmKFV0PSIiLFJ0PWVuKE9uWzBdLCEx''@;'; put 'put ''KSxZZS5wdXNoKFtPblszXSwhMF0pKTticmVhaztjYXNlInN0eWxlIjoiLz4iPT09T25bMF0uc2xpY2UoLTIpP1goT25bMF0sb2EpOiIvIj09T25bMV0/WChqZS5zbGljZSgkMCxPbi5pbmRleCtPblswXS5sZW5ndGgpLG9hKTokMD1Pbi5pbmRleDticmVhaztjYXNlIm51bWJlciI6Y2FzZSJk''@;'; put 'put ''YXkiOmNhc2UibW9udGgiOmNhc2UieWVhciI6Y2FzZSJlcmEiOmNhc2UiZGF5LW9mLXdlZWsiOmNhc2Uid2Vlay1vZi15ZWFyIjpjYXNlInF1YXJ0ZXIiOmNhc2UiaG91cnMiOmNhc2UibWludXRlcyI6Y2FzZSJzZWNvbmRzIjpjYXNlImFtLXBtIjpzd2l0Y2goWWVbWWUubGVuZ3RoLTFdWzBd''@;'; put 'put ''KXtjYXNlInRpbWUtc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6eHQ9ZW4oT25bMF0sITEpLFV0Kz1pZVtPblszXV1bImxvbmciPT09eHQuc3R5bGU/MTowXX1icmVhaztjYXNlInRleHQiOmlmKCIvPiI9PT1PblswXS5zbGljZSgtMikpYnJlYWs7aWYoIi8iPT09T25bMV0pc3dpdGNoKFllW1ll''@;'; put 'put ''Lmxlbmd0aC0xXVswXSl7Y2FzZSJudW1iZXItc3R5bGUiOmNhc2UiZGF0ZS1zdHlsZSI6Y2FzZSJ0aW1lLXN0eWxlIjpVdCs9amUuc2xpY2Uobm4sT24uaW5kZXgpfWVsc2Ugbm49T24uaW5kZXgrT25bMF0ubGVuZ3RoO2JyZWFrO2Nhc2UibmFtZWQtcmFuZ2UiOk4wPWZfKCh4dD1lbihPblsw''@;'; put 'put ''XSwhMSkpWyJjZWxsLXJhbmdlLWFkZHJlc3MiXSk7dmFyIEhpPXtOYW1lOnh0Lm5hbWUsUmVmOk4wWzBdKyIhIitOMFsxXX07YW8mJihIaS5TaGVldD1Qbi5sZW5ndGgpLE5yLk5hbWVzLnB1c2goSGkpO2JyZWFrO2Nhc2UicCI6Y2FzZSJcdTY1ODdcdTY3MmNcdTRlMzIiOmlmKFsibWFzdGVy''@;'; put 'put ''LXN0eWxlcyJdLmluZGV4T2YoWWVbWWUubGVuZ3RoLTFdWzBdKT4tMSlicmVhaztpZigiLyIhPT1PblsxXXx8TXImJk1yWyJzdHJpbmctdmFsdWUiXSllbihPblswXSwhMSkseXI9T24uaW5kZXgrT25bMF0ubGVuZ3RoO2Vsc2V7dmFyIHZvPUgoamUuc2xpY2UoeXIsT24uaW5kZXgpLDAsb2Ep''@;'; put 'put ''O2FpPShhaS5sZW5ndGg+MD9haSsiXG4iOiIiKSt2b1swXSxHcj12b1sxXX1icmVhaztjYXNlImRhdGFiYXNlLXJhbmdlIjppZigiLyI9PT1PblsxXSlicmVhazt0cnl7enRbKE4wPWZfKGVuKE9uWzBdKVsidGFyZ2V0LXJhbmdlLWFkZHJlc3MiXSkpWzBdXVsiIWF1dG9maWx0ZXIiXT17cmVm''@;'; put 'put ''Ok4wWzFdfX1jYXRjaCgkaSl7fWJyZWFrO2Nhc2UiYSI6aWYoIi8iIT09T25bMV0pe2lmKCEoa2k9ZW4oT25bMF0sITEpKS5ocmVmKWJyZWFrO2tpLlRhcmdldD1ncihraS5ocmVmKSxkZWxldGUga2kuaHJlZiwiIyI9PWtpLlRhcmdldC5jaGFyQXQoMCkmJmtpLlRhcmdldC5pbmRleE9mKCIu''@;'; put 'put ''Iik+LTE/KE4wPWZfKGtpLlRhcmdldC5zbGljZSgxKSksa2kuVGFyZ2V0PSIjIitOMFswXSsiISIrTjBbMV0pOmtpLlRhcmdldC5tYXRjaCgvXlwuXC5bXFxcL10vKSYmKGtpLlRhcmdldD1raS5UYXJnZXQuc2xpY2UoMykpfWJyZWFrO2RlZmF1bHQ6c3dpdGNoKE9uWzJdKXtjYXNlImRjOiI6''@;'; put 'put ''Y2FzZSJjYWxjZXh0OiI6Y2FzZSJsb2V4dDoiOmNhc2Uib29vOiI6Y2FzZSJjaGFydG9vbzoiOmNhc2UiZHJhdzoiOmNhc2Uic3R5bGU6IjpjYXNlImNoYXJ0OiI6Y2FzZSJmb3JtOiI6Y2FzZSJ1b2Y6IjpjYXNlIlx1ODg2ODoiOmNhc2UiXHU1YjU3OiI6YnJlYWs7ZGVmYXVsdDppZihaZS5X''@;'; put 'put ''VEYpdGhyb3cgbmV3IEVycm9yKE9uKX19dmFyIHhvPXtTaGVldHM6enQsU2hlZXROYW1lczpQbixXb3JrYm9vazpOcn07cmV0dXJuIFplLmJvb2tTaGVldHMmJmRlbGV0ZSB4by5TaGVldHMseG99fSgpO2Z1bmN0aW9uIGljKEgsaWUpe3JldHVybiBpQyhILGllKX12YXIgYUM9ZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgSD1bIiAgPG9mZmljZTptYXN0ZXItc3R5bGVzPiIsJyAgICA8c3R5bGU6bWFzdGVyLXBhZ2Ugc3R5bGU6bmFtZT0ibXAxIiBzdHlsZTpwYWdlLWxheW91dC1uYW1lPSJtcDEiPicsIiAgICAgIDxzdHlsZTpoZWFkZXIvPiIsJyAgICAgIDxzdHlsZTpoZWFkZXItbGVmdCBzdHlsZTpk''@;'; put 'put ''aXNwbGF5PSJmYWxzZSIvPicsIiAgICAgIDxzdHlsZTpmb290ZXIvPiIsJyAgICAgIDxzdHlsZTpmb290ZXItbGVmdCBzdHlsZTpkaXNwbGF5PSJmYWxzZSIvPicsIiAgICA8L3N0eWxlOm1hc3Rlci1wYWdlPiIsIiAgPC9vZmZpY2U6bWFzdGVyLXN0eWxlcz4iXS5qb2luKCJcbiIpLGllPSI8''@;'; put 'put ''b2ZmaWNlOmRvY3VtZW50LXN0eWxlcyAiK3JsKHsieG1sbnM6b2ZmaWNlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiwieG1sbnM6dGFibGUiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnRhYmxlOjEuMCIsInhtbG5z''@;'; put 'put ''OnN0eWxlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdHlsZToxLjAiLCJ4bWxuczp0ZXh0IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0ZXh0OjEuMCIsInhtbG5zOmRyYXciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50''@;'; put 'put ''OnhtbG5zOmRyYXdpbmc6MS4wIiwieG1sbnM6Zm8iOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnhzbC1mby1jb21wYXRpYmxlOjEuMCIsInhtbG5zOnhsaW5rIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInhtbG5zOmRjIjoiaHR0cDovL3B1cmwub3Jn''@;'; put 'put ''L2RjL2VsZW1lbnRzLzEuMS8iLCJ4bWxuczpudW1iZXIiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRhdGFzdHlsZToxLjAiLCJ4bWxuczpzdmciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnN2Zy1jb21wYXRpYmxlOjEuMCIsInhtbG5z''@;'; put 'put ''Om9mIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZjoxLjIiLCJvZmZpY2U6dmVyc2lvbiI6IjEuMiJ9KSsiPlxuIitIKyJcbjwvb2ZmaWNlOmRvY3VtZW50LXN0eWxlcz4iO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBjbitpZX19KCksSjQ9ZnVuY3Rpb24oKXt2''@;'; put 'put ''YXIgSD1mdW5jdGlvbihqZSxZZSl7cmV0dXJuIFJyKGplKS5yZXBsYWNlKC8gICsvZyxmdW5jdGlvbihNdCl7cmV0dXJuJzx0ZXh0OnMgdGV4dDpjPSInK010Lmxlbmd0aCsnIi8+J30pLnJlcGxhY2UoL1x0L2csIjx0ZXh0OnRhYi8+IikucmVwbGFjZSgvXG4vZyxZZT8iPHRleHQ6bGluZS1i''@;'; put 'put ''cmVhay8+IjoiPC90ZXh0OnA+PHRleHQ6cD4iKS5yZXBsYWNlKC9eIC8sIjx0ZXh0OnMvPiIpLnJlcGxhY2UoLyAkLywiPHRleHQ6cy8+Iil9LGllPWZ1bmN0aW9uKGplKXtyZXR1cm4gamUubWFwKGZ1bmN0aW9uKFllKXt2YXIgTXQ9IiI7cmV0dXJuIG51bGwhPVllLm9kcyYmKE10Kz0nIHRl''@;'; put 'put ''eHQ6c3R5bGUtbmFtZT0iVCcrWWUub2RzKyciJyksWWUudj8iPHRleHQ6c3BhbiIrTXQrIj4iK0goWWUudiwhMCkrIjwvdGV4dDpzcGFuPiI6IiJ9KS5qb2luKCIiKX0sWD0iICAgICAgICAgIDx0YWJsZTp0YWJsZS1jZWxsIC8+XG4iLHhlPWZ1bmN0aW9uKGplLFllLE10KXt2YXIgeHQ9W107''@;'; put 'put ''eHQucHVzaCgnICAgICAgPHRhYmxlOnRhYmxlIHRhYmxlOm5hbWU9IicrUnIoWWUuU2hlZXROYW1lc1tNdF0pKyciIHRhYmxlOnN0eWxlLW5hbWU9InRhMSI+XG4nKTt2YXIgUnQ9MCxVdD0wLG5uPUFzKGplWyIhcmVmIl18fCJBMSIpLENuPWplWyIhbWVyZ2VzIl18fFtdLER0PTAsenQ9QXJy''@;'; put 'put ''YXkuaXNBcnJheShqZSk7aWYoamVbIiFjb2xzIl0pZm9yKFV0PTA7VXQ8PW5uLmUuYzsrK1V0KXh0LnB1c2goIiAgICAgICAgPHRhYmxlOnRhYmxlLWNvbHVtbiIrKGplWyIhY29scyJdW1V0XT8nIHRhYmxlOnN0eWxlLW5hbWU9ImNvJytqZVsiIWNvbHMiXVtVdF0ub2RzKyciJzoiIikrIj48''@;'; put 'put ''L3RhYmxlOnRhYmxlLWNvbHVtbj5cbiIpO3ZhciBUbj1qZVsiIXJvd3MiXXx8W107Zm9yKFJ0PTA7UnQ8bm4ucy5yOysrUnQpeHQucHVzaCgiICAgICAgICA8dGFibGU6dGFibGUtcm93IisoVG5bUnRdPycgdGFibGU6c3R5bGUtbmFtZT0icm8nK1RuW1J0XS5vZHMrJyInOiIiKSsiPjwvdGFi''@;'; put 'put ''bGU6dGFibGUtcm93PlxuIik7Zm9yKDtSdDw9bm4uZS5yOysrUnQpe2Zvcih4dC5wdXNoKCIgICAgICAgIDx0YWJsZTp0YWJsZS1yb3ciKyhUbltSdF0/JyB0YWJsZTpzdHlsZS1uYW1lPSJybycrVG5bUnRdLm9kcysnIic6IiIpKyI+XG4iKSxVdD0wO1V0PG5uLnMuYzsrK1V0KXh0LnB1c2go''@;'; put 'put ''WCk7Zm9yKDtVdDw9bm4uZS5jOysrVXQpe3ZhciBPbj0hMSxZbj17fSxNcj0iIjtmb3IoRHQ9MDtEdCE9Q24ubGVuZ3RoOysrRHQpaWYoIShDbltEdF0ucy5jPlV0fHxDbltEdF0ucy5yPlJ0fHxDbltEdF0uZS5jPFV0fHxDbltEdF0uZS5yPFJ0KSl7KENuW0R0XS5zLmMhPVV0fHxDbltEdF0u''@;'; put 'put ''cy5yIT1SdCkmJihPbj0hMCksWW5bInRhYmxlOm51bWJlci1jb2x1bW5zLXNwYW5uZWQiXT1DbltEdF0uZS5jLUNuW0R0XS5zLmMrMSxZblsidGFibGU6bnVtYmVyLXJvd3Mtc3Bhbm5lZCJdPUNuW0R0XS5lLnItQ25bRHRdLnMucisxO2JyZWFrfWlmKE9uKXh0LnB1c2goIiAgICAgICAgICA8''@;'; put 'put ''dGFibGU6Y292ZXJlZC10YWJsZS1jZWxsLz5cbiIpO2Vsc2V7dmFyIGFpPVkwKHtyOlJ0LGM6VXR9KSx5cj16dD8oamVbUnRdfHxbXSlbVXRdOmplW2FpXTtpZih5ciYmeXIuZiYmKFluWyJ0YWJsZTpmb3JtdWxhIl09UnIobHgoeXIuZikpLHlyLkYmJnlyLkYuc2xpY2UoMCxhaS5sZW5ndGgp''@;'; put 'put ''PT1haSkpe3ZhciBhcj1Bcyh5ci5GKTtZblsidGFibGU6bnVtYmVyLW1hdHJpeC1jb2x1bW5zLXNwYW5uZWQiXT1hci5lLmMtYXIucy5jKzEsWW5bInRhYmxlOm51bWJlci1tYXRyaXgtcm93cy1zcGFubmVkIl09YXIuZS5yLWFyLnMucisxfWlmKHlyKXtzd2l0Y2goeXIudCl7Y2FzZSJiIjpN''@;'; put 'put ''cj15ci52PyJUUlVFIjoiRkFMU0UiLFluWyJvZmZpY2U6dmFsdWUtdHlwZSJdPSJib29sZWFuIixZblsib2ZmaWNlOmJvb2xlYW4tdmFsdWUiXT15ci52PyJ0cnVlIjoiZmFsc2UiO2JyZWFrO2Nhc2UibiI6TXI9eXIud3x8U3RyaW5nKHlyLnZ8fDApLFluWyJvZmZpY2U6dmFsdWUtdHlwZSJd''@;'; put 'put ''PSJmbG9hdCIsWW5bIm9mZmljZTp2YWx1ZSJdPXlyLnZ8fDA7YnJlYWs7Y2FzZSJzIjpjYXNlInN0ciI6TXI9eXIudixZblsib2ZmaWNlOnZhbHVlLXR5cGUiXT0ic3RyaW5nIjticmVhaztjYXNlImQiOk1yPXlyLnd8fGRuKHlyLnYpLnRvSVNPU3RyaW5nKCksWW5bIm9mZmljZTp2YWx1ZS10''@;'; put 'put ''eXBlIl09ImRhdGUiLFluWyJvZmZpY2U6ZGF0ZS12YWx1ZSJdPWRuKHlyLnYpLnRvSVNPU3RyaW5nKCksWW5bInRhYmxlOnN0eWxlLW5hbWUiXT0iY2UxIjticmVhaztkZWZhdWx0Onh0LnB1c2goWCk7Y29udGludWV9bnVsbCE9eXIub2RzJiYhWW5bInRhYmxlOnN0eWxlLW5hbWUiXSYmKFlu''@;'; put 'put ''WyJ0YWJsZTpzdHlsZS1uYW1lIl09ImNlIit5ci5vZHMpO3ZhciBHcj0heXIuUnx8eXIubCYmeXIubC5UYXJnZXQ/SChNcik6aWUoeXIuUik7aWYoeXIubCYmeXIubC5UYXJnZXQpe3ZhciB6cj15ci5sLlRhcmdldDsiIyIhPSh6cj0iIyI9PXpyLmNoYXJBdCgwKT8iIyIraF8oenIuc2xpY2Uo''@;'; put 'put ''MSkpOnpyKS5jaGFyQXQoMCkmJiF6ci5tYXRjaCgvXlx3KzovKSYmKHpyPSIuLi8iK3pyKSxHcj1faSgidGV4dDphIixHcix7InhsaW5rOmhyZWYiOnpyLnJlcGxhY2UoLyYvZywiJmFtcDsiKX0pfXh0LnB1c2goIiAgICAgICAgICAiK19pKCJ0YWJsZTp0YWJsZS1jZWxsIixfaSgidGV4dDpw''@;'; put 'put ''IixHcix7fSksWW4pKyJcbiIpfWVsc2UgeHQucHVzaChYKX19eHQucHVzaCgiICAgICAgICA8L3RhYmxlOnRhYmxlLXJvdz5cbiIpfXJldHVybiB4dC5wdXNoKCIgICAgICA8L3RhYmxlOnRhYmxlPlxuIikseHQuam9pbigiIil9LEZlPXtjZW50ZXI6ImNlbnRlciIsbGVmdDoic3RhcnQiLHJp''@;'; put 'put ''Z2h0OiJlbmQifTtyZXR1cm4gZnVuY3Rpb24oWWUsTXQpe3ZhciB4dD1bY25dLFJ0PXJsKHsieG1sbnM6b2ZmaWNlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiwieG1sbnM6dGFibGUiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50''@;'; put 'put ''OnhtbG5zOnRhYmxlOjEuMCIsInhtbG5zOnN0eWxlIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpzdHlsZToxLjAiLCJ4bWxuczp0ZXh0IjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczp0ZXh0OjEuMCIsInhtbG5zOmRyYXciOiJ1cm46b2Fz''@;'; put 'put ''aXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRyYXdpbmc6MS4wIiwieG1sbnM6Zm8iOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOnhzbC1mby1jb21wYXRpYmxlOjEuMCIsInhtbG5zOnhsaW5rIjoiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsInht''@;'; put 'put ''bG5zOmRjIjoiaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iLCJ4bWxuczptZXRhIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczptZXRhOjEuMCIsInhtbG5zOm51bWJlciI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6ZGF0YXN0''@;'; put 'put ''eWxlOjEuMCIsInhtbG5zOnByZXNlbnRhdGlvbiI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6cHJlc2VudGF0aW9uOjEuMCIsInhtbG5zOnN2ZyI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c3ZnLWNvbXBhdGlibGU6MS4wIiwieG1sbnM6''@;'; put 'put ''Y2hhcnQiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmNoYXJ0OjEuMCIsInhtbG5zOmRyM2QiOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmRyM2Q6MS4wIiwieG1sbnM6bWF0aCI6Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRo''@;'; put 'put ''TUwiLCJ4bWxuczpmb3JtIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpmb3JtOjEuMCIsInhtbG5zOnNjcmlwdCI6InVybjpvYXNpczpuYW1lczp0YzpvcGVuZG9jdW1lbnQ6eG1sbnM6c2NyaXB0OjEuMCIsInhtbG5zOm9vbyI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9y''@;'; put 'put ''Zy8yMDA0L29mZmljZSIsInhtbG5zOm9vb3ciOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwNC93cml0ZXIiLCJ4bWxuczpvb29jIjoiaHR0cDovL29wZW5vZmZpY2Uub3JnLzIwMDQvY2FsYyIsInhtbG5zOmRvbSI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDEveG1sLWV2ZW50cyIsInhtbG5z''@;'; put 'put ''Onhmb3JtcyI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDIveGZvcm1zIiwieG1sbnM6eHNkIjoiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiLCJ4bWxuczp4c2kiOiJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIsInhtbG5zOnNoZWV0IjoidXJuOm9h''@;'; put 'put ''c2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDpzaDMzdGpzOjEuMCIsInhtbG5zOnJwdCI6Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA1L3JlcG9ydCIsInhtbG5zOm9mIjoidXJuOm9hc2lzOm5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZjoxLjIiLCJ4bWxuczp4aHRtbCI6Imh0dHA6''@;'; put 'put ''Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJ4bWxuczpncmRkbCI6Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvZy9kYXRhLXZpZXcjIiwieG1sbnM6dGFibGVvb28iOiJodHRwOi8vb3Blbm9mZmljZS5vcmcvMjAwOS90YWJsZSIsInhtbG5zOmRyYXdvb28iOiJodHRwOi8vb3Blbm9mZmljZS5v''@;'; put 'put ''cmcvMjAxMC9kcmF3IiwieG1sbnM6Y2FsY2V4dCI6InVybjpvcmc6ZG9jdW1lbnRmb3VuZGF0aW9uOm5hbWVzOmV4cGVyaW1lbnRhbDpjYWxjOnhtbG5zOmNhbGNleHQ6MS4wIiwieG1sbnM6bG9leHQiOiJ1cm46b3JnOmRvY3VtZW50Zm91bmRhdGlvbjpuYW1lczpleHBlcmltZW50YWw6b2Zm''@;'; put 'put ''aWNlOnhtbG5zOmxvZXh0OjEuMCIsInhtbG5zOmZpZWxkIjoidXJuOm9wZW5vZmZpY2U6bmFtZXM6ZXhwZXJpbWVudGFsOm9vby1tcy1pbnRlcm9wOnhtbG5zOmZpZWxkOjEuMCIsInhtbG5zOmZvcm14IjoidXJuOm9wZW5vZmZpY2U6bmFtZXM6ZXhwZXJpbWVudGFsOm9veG1sLW9kZi1pbnRl''@;'; put 'put ''cm9wOnhtbG5zOmZvcm06MS4wIiwieG1sbnM6Y3NzM3QiOiJodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXRleHQvIiwib2ZmaWNlOnZlcnNpb24iOiIxLjIifSksVXQ9cmwoeyJ4bWxuczpjb25maWciOiJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50OnhtbG5zOmNvbmZpZzoxLjAi''@;'; put 'put ''LCJvZmZpY2U6bWltZXR5cGUiOiJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0In0pOyJmb2RzIj09TXQuYm9va1R5cGU/KHh0LnB1c2goIjxvZmZpY2U6ZG9jdW1lbnQiK1J0K1V0KyI+XG4iKSx4dC5wdXNoKCRvKCkucmVwbGFjZSgvb2ZmaWNlOmRvY3Vt''@;'; put 'put ''ZW50LW1ldGEvZywib2ZmaWNlOm1ldGEiKSkpOnh0LnB1c2goIjxvZmZpY2U6ZG9jdW1lbnQtY29udGVudCIrUnQrIj5cbiIpLGZ1bmN0aW9uKGplLFllKXt2YXIgTXQ9W10seHQ9e307TXQucHVzaCgiIDxvZmZpY2U6YXV0b21hdGljLXN0eWxlcz5cbiIpLE10LnB1c2goJyAgPG51bWJlcjpk''@;'; put 'put ''YXRlLXN0eWxlIHN0eWxlOm5hbWU9Ik4zNyIgbnVtYmVyOmF1dG9tYXRpYy1vcmRlcj0idHJ1ZSI+XG4nKSxNdC5wdXNoKCcgICA8bnVtYmVyOm1vbnRoIG51bWJlcjpzdHlsZT0ibG9uZyIvPlxuJyksTXQucHVzaCgiICAgPG51bWJlcjp0ZXh0Pi88L251bWJlcjp0ZXh0PlxuIiksTXQucHVz''@;'; put 'put ''aCgnICAgPG51bWJlcjpkYXkgbnVtYmVyOnN0eWxlPSJsb25nIi8+XG4nKSxNdC5wdXNoKCIgICA8bnVtYmVyOnRleHQ+LzwvbnVtYmVyOnRleHQ+XG4iKSxNdC5wdXNoKCIgICA8bnVtYmVyOnllYXIvPlxuIiksTXQucHVzaCgiICA8L251bWJlcjpkYXRlLXN0eWxlPlxuIik7dmFyIFJ0PTA7''@;'; put 'put ''WWUuU2hlZXROYW1lcy5tYXAoZnVuY3Rpb24oRHQpe3JldHVybiBZZS5TaGVldHNbRHRdfSkuZm9yRWFjaChmdW5jdGlvbihEdCl7aWYoRHQmJkR0WyIhY29scyJdKWZvcih2YXIgenQ9MDt6dDxEdFsiIWNvbHMiXS5sZW5ndGg7Kyt6dClpZihEdFsiIWNvbHMiXVt6dF0pe3ZhciBQbj1EdFsi''@;'; put 'put ''IWNvbHMiXVt6dF07aWYobnVsbD09UG4ud2lkdGgmJm51bGw9PVBuLndweCYmbnVsbD09UG4ud2NoKWNvbnRpbnVlO3ljKFBuKSxQbi5vZHM9UnQ7dmFyIFRuPUR0WyIhY29scyJdW3p0XS53cHgrInB4IjtNdC5wdXNoKCcgIDxzdHlsZTpzdHlsZSBzdHlsZTpuYW1lPSJjbycrUnQrJyIgc3R5''@;'; put 'put ''bGU6ZmFtaWx5PSJ0YWJsZS1jb2x1bW4iPlxuJyksTXQucHVzaCgnICAgPHN0eWxlOnRhYmxlLWNvbHVtbi1wcm9wZXJ0aWVzIGZvOmJyZWFrLWJlZm9yZT0iYXV0byIgc3R5bGU6Y29sdW1uLXdpZHRoPSInK1RuKyciLz5cbicpLE10LnB1c2goIiAgPC9zdHlsZTpzdHlsZT5cbiIpLCsrUnR9''@;'; put 'put ''fSk7dmFyIFV0PTA7WWUuU2hlZXROYW1lcy5tYXAoZnVuY3Rpb24oRHQpe3JldHVybiBZZS5TaGVldHNbRHRdfSkuZm9yRWFjaChmdW5jdGlvbihEdCl7aWYoRHQmJkR0WyIhcm93cyJdKWZvcih2YXIgenQ9MDt6dDxEdFsiIXJvd3MiXS5sZW5ndGg7Kyt6dClpZihEdFsiIXJvd3MiXVt6dF0p''@;'; put 'put ''e0R0WyIhcm93cyJdW3p0XS5vZHM9VXQ7dmFyIFBuPUR0WyIhcm93cyJdW3p0XS5ocHgrInB4IjtNdC5wdXNoKCcgIDxzdHlsZTpzdHlsZSBzdHlsZTpuYW1lPSJybycrVXQrJyIgc3R5bGU6ZmFtaWx5PSJ0YWJsZS1yb3ciPlxuJyksTXQucHVzaCgnICAgPHN0eWxlOnRhYmxlLXJvdy1wcm9w''@;'; put 'put ''ZXJ0aWVzIGZvOmJyZWFrLWJlZm9yZT0iYXV0byIgc3R5bGU6cm93LWhlaWdodD0iJytQbisnIi8+XG4nKSxNdC5wdXNoKCIgIDwvc3R5bGU6c3R5bGU+XG4iKSwrK1V0fX0pLE10LnB1c2goJyAgPHN0eWxlOnN0eWxlIHN0eWxlOm5hbWU9InRhMSIgc3R5bGU6ZmFtaWx5PSJ0YWJsZSIgc3R5''@;'; put 'put ''bGU6bWFzdGVyLXBhZ2UtbmFtZT0ibXAxIj5cbicpLE10LnB1c2goJyAgIDxzdHlsZTp0YWJsZS1wcm9wZXJ0aWVzIHRhYmxlOmRpc3BsYXk9InRydWUiIHN0eWxlOndyaXRpbmctbW9kZT0ibHItdGIiLz5cbicpLE10LnB1c2goIiAgPC9zdHlsZTpzdHlsZT5cbiIpLE10LnB1c2goJyAgPHN0''@;'; put 'put ''eWxlOnN0eWxlIHN0eWxlOm5hbWU9ImNlMSIgc3R5bGU6ZmFtaWx5PSJ0YWJsZS1jZWxsIiBzdHlsZTpwYXJlbnQtc3R5bGUtbmFtZT0iRGVmYXVsdCIgc3R5bGU6ZGF0YS1zdHlsZS1uYW1lPSJOMzciLz5cbicpO3ZhciBubj0yO1V0PTAsWWUuU2hlZXROYW1lcy5tYXAoZnVuY3Rpb24oRHQp''@;'; put 'put ''e3JldHVybiBZZS5TaGVldHNbRHRdfSkuZm9yRWFjaChmdW5jdGlvbihEdCl7aWYoRHQpZm9yKHZhciB6dD0wLFBuPTAsVG49QXMoRHRbIiFyZWYiXSksT249QXJyYXkuaXNBcnJheShEdCk7enQ8PVRuLmUucjsrK3p0KWZvcihQbj0wO1BuPD1Ubi5lLmM7KytQbil7dmFyIFluPVkwKHtyOnp0''@;'; put 'put ''LGM6UG59KSxNcj1Pbj8oRHRbenRdfHxbXSlbUG5dOkR0W1luXTtpZihNciYmKE1yLnN8fE1yLlIpKXt2YXIgYWk9W107TXIucyYmYWkucHVzaChbTXIsITBdKSxNci5SJiZNci5SLmZvckVhY2goZnVuY3Rpb24oeXIpe3lyJiZ5ci5zJiZhaS5wdXNoKFt5ciwhMV0pfSksYWkuZm9yRWFjaChm''@;'; put 'put ''dW5jdGlvbih5cil7dmFyIGFyPXlyWzBdLEdyPWFyLnMsenI9IiIscXI9eyJzdHlsZTpuYW1lIjooeXJbMV0/ImNlIjoiVCIpK25uLCJzdHlsZTpmYW1pbHkiOnlyWzFdPyJ0YWJsZS1jZWxsIjoidGV4dCJ9O3lyWzFdJiYocXJbInN0eWxlOnBhcmVudC1zdHlsZS1uYW1lIl09IkRlZmF1bHQi''@;'; put 'put ''LHFyWyJzdHlsZTpkYXRhLXN0eWxlLW5hbWUiXT0iTjAiKTt2YXIgb2k9e30sY3I9ITEsZGk9e30sdjA9ITEsVWk9e30sdG89ITE7aWYoR3IuY29sb3ImJihkaVsiZm86Y29sb3IiXT0iIyIrTG8oR3IuY29sb3IucmdiKSx2MD0hMCksR3Iuc3omJihkaVsiZm86Zm9udC1zaXplIl09R3Iuc3or''@;'; put 'put ''InB0Iix2MD0hMCksR3IuYm9sZCYmKGRpWyJmbzpmb250LXdlaWdodCJdPSJib2xkIix2MD0hMCksR3IuaXRhbGljJiYoZGlbImZvOmZvbnQtc3R5bGUiXT0iaXRhbGljIix2MD0hMCksR3IubmFtZSYmKHh0W0dyLm5hbWVdfHwoeHRbR3IubmFtZV09R3IubmFtZS5tYXRjaCgvIC8pPyImYXBv''@;'; put 'put ''czsiK0dyLm5hbWUrIiZhcG9zOyI6R3IubmFtZSksZGlbInN0eWxlOmZvbnQtbmFtZSJdPUdyLm5hbWUsdjA9ITApLEdyLnN0cmlrZSYmKGRpWyJzdHlsZTp0ZXh0LWxpbmUtdGhyb3VnaC1zdHlsZSJdPSJzb2xpZCIsZGlbInN0eWxlOnRleHQtbGluZS10aHJvdWdoLXR5cGUiXT0ic2luZ2xl''@;'; put 'put ''Iix2MD0hMCksR3IudW5kZXJsaW5lJiYoZGlbInN0eWxlOnRleHQtdW5kZXJsaW5lLXN0eWxlIl09InNvbGlkIixkaVsic3R5bGU6dGV4dC11bmRlcmxpbmUtd2lkdGgiXT0iYXV0byIsZGlbInN0eWxlOnRleHQtdW5kZXJsaW5lLWNvbG9yIl09ImZvbnQtY29sb3IiLHYwPSEwKSx5clsxXSl7''@;'; put 'put ''aWYoR3IuYWxpZ25tZW50KXt2YXIgQTA9R3IuYWxpZ25tZW50O0EwLndyYXBUZXh0JiYob2lbImZvOndyYXAtb3B0aW9uIl09IndyYXAiLGNyPSEwKSxBMC52ZXJ0aWNhbCYmKG9pWyJzdHlsZTp2ZXJ0aWNhbC1hbGlnbiJdPSJjZW50ZXIiPT1BMC52ZXJ0aWNhbD8ibWlkZGxlIjpBMC52ZXJ0''@;'; put 'put ''aWNhbCxjcj0hMCksRmVbQTAuaG9yaXpvbnRhbF0mJihVaVsiZm86dGV4dC1hbGlnbiJdPUZlW0EwLmhvcml6b250YWxdLHRvPSEwKX1Hci5mZ0NvbG9yJiYob2lbImZvOmJhY2tncm91bmQtY29sb3IiXT0iIyIrTG8oR3IuZmdDb2xvci5yZ2IpLGNyPSEwKX1jciYmKHpyKz1faSgic3R5bGU6''@;'; put 'put ''dGFibGUtY2VsbC1wcm9wZXJ0aWVzIixudWxsLG9pKSksdjAmJih6cis9X2koInN0eWxlOnRleHQtcHJvcGVydGllcyIsbnVsbCxkaSkpLHRvJiYoenIrPV9pKCJzdHlsZTpwYXJhZ3JhcGgtcHJvcGVydGllcyIsbnVsbCxVaSkpLE10LnB1c2goIiAgIitfaSgic3R5bGU6c3R5bGUiLHpyLHFy''@;'; put 'put ''KSsiXG4iKSxhci5vZHM9bm4sKytubn0pfX19KSxNdC5wdXNoKCIgPC9vZmZpY2U6YXV0b21hdGljLXN0eWxlcz5cbiIpO3ZhciBDbj0iIDxvZmZpY2U6Zm9udC1mYWNlLWRlY2xzPlxuIitvbih4dCkubWFwKGZ1bmN0aW9uKER0KXtyZXR1cm4nICA8c3R5bGU6Zm9udC1mYWNlIHN0eWxlOm5h''@;'; put 'put ''bWU9IicrRHQrJyIgc3ZnOmZvbnQtZmFtaWx5PSInK3h0W0R0XSsnIi8+XG4nfSkuam9pbigiIikrIiA8L29mZmljZTpmb250LWZhY2UtZGVjbHM+XG4iO2plLnB1c2goQ24pLGplLnB1c2goTXQuam9pbigiIikpfSh4dCxZZSkseHQucHVzaCgiICA8b2ZmaWNlOmJvZHk+XG4iKSx4dC5wdXNo''@;'; put 'put ''KCIgICAgPG9mZmljZTpzcHJlYWRzaGVldD5cbiIpO2Zvcih2YXIgbm49MDtubiE9WWUuU2hlZXROYW1lcy5sZW5ndGg7Kytubil4dC5wdXNoKHhlKFllLlNoZWV0c1tZZS5TaGVldE5hbWVzW25uXV0sWWUsbm4pKTtyZXR1cm4geHQucHVzaCgiICAgIDwvb2ZmaWNlOnNwcmVhZHNoZWV0Plxu''@;'; put 'put ''IikseHQucHVzaCgiICA8L29mZmljZTpib2R5PlxuIikseHQucHVzaCgiZm9kcyI9PU10LmJvb2tUeXBlPyI8L29mZmljZTpkb2N1bWVudD4iOiI8L29mZmljZTpkb2N1bWVudC1jb250ZW50PiIpLHh0LmpvaW4oIiIpfX0oKTtmdW5jdGlvbiBUQShILGllKXtpZigiZm9kcyI9PWllLmJvb2tU''@;'; put 'put ''eXBlKXJldHVybiBKNChILGllKTt2YXIgWD1rcigpLHdlPSIiLHhlPVtdLEZlPVtdO3JldHVybiB6bihYLHdlPSJtaW1ldHlwZSIsImFwcGxpY2F0aW9uL3ZuZC5vYXNpcy5vcGVuZG9jdW1lbnQuc3ByZWFkc2hlZXQiKSx6bihYLHdlPSJjb250ZW50LnhtbCIsSjQoSCxpZSkpLHhlLnB1c2go''@;'; put 'put ''W3dlLCJ0ZXh0L3htbCJdKSxGZS5wdXNoKFt3ZSwiQ29udGVudEZpbGUiXSksem4oWCx3ZT0ic3R5bGVzLnhtbCIsYUMoSCxpZSkpLHhlLnB1c2goW3dlLCJ0ZXh0L3htbCJdKSxGZS5wdXNoKFt3ZSwiU3R5bGVzRmlsZSJdKSx6bihYLHdlPSJtZXRhLnhtbCIsY24rJG8oKSkseGUucHVzaChb''@;'; put 'put ''d2UsInRleHQveG1sIl0pLEZlLnB1c2goW3dlLCJNZXRhZGF0YUZpbGUiXSksem4oWCx3ZT0ibWFuaWZlc3QucmRmIixmdW5jdGlvbiBTaShIKXt2YXIgaWU9W2NuXTtpZS5wdXNoKCc8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1u''@;'; put 'put ''cyMiPlxuJyk7Zm9yKHZhciBYPTA7WCE9SC5sZW5ndGg7KytYKWllLnB1c2goXyhIW1hdWzBdLEhbWF1bMV0pKSxpZS5wdXNoKEFvKCIiLEhbWF1bMF0pKTtyZXR1cm4gaWUucHVzaChfKCIiLCJEb2N1bWVudCIsInBrZyIpKSxpZS5wdXNoKCI8L3JkZjpSREY+IiksaWUuam9pbigiIil9KEZl''@;'; put 'put ''KSkseGUucHVzaChbd2UsImFwcGxpY2F0aW9uL3JkZit4bWwiXSksem4oWCx3ZT0iTUVUQS1JTkYvbWFuaWZlc3QueG1sIixmdW5jdGlvbiBqbihIKXt2YXIgaWU9W2NuXTtpZS5wdXNoKCc8bWFuaWZlc3Q6bWFuaWZlc3QgeG1sbnM6bWFuaWZlc3Q9InVybjpvYXNpczpuYW1lczp0YzpvcGVu''@;'; put 'put ''ZG9jdW1lbnQ6eG1sbnM6bWFuaWZlc3Q6MS4wIiBtYW5pZmVzdDp2ZXJzaW9uPSIxLjIiPlxuJyksaWUucHVzaCgnICA8bWFuaWZlc3Q6ZmlsZS1lbnRyeSBtYW5pZmVzdDpmdWxsLXBhdGg9Ii8iIG1hbmlmZXN0OnZlcnNpb249IjEuMiIgbWFuaWZlc3Q6bWVkaWEtdHlwZT0iYXBwbGljYXRp''@;'; put 'put ''b24vdm5kLm9hc2lzLm9wZW5kb2N1bWVudC5zcHJlYWRzaGVldCIvPlxuJyk7Zm9yKHZhciBYPTA7WDxILmxlbmd0aDsrK1gpaWUucHVzaCgnICA8bWFuaWZlc3Q6ZmlsZS1lbnRyeSBtYW5pZmVzdDpmdWxsLXBhdGg9IicrSFtYXVswXSsnIiBtYW5pZmVzdDptZWRpYS10eXBlPSInK0hbWF1b''@;'; put 'put ''MV0rJyIvPlxuJyk7cmV0dXJuIGllLnB1c2goIjwvbWFuaWZlc3Q6bWFuaWZlc3Q+IiksaWUuam9pbigiIil9KHhlKSksWH1mdW5jdGlvbiBqaChIKXtyZXR1cm4gZnVuY3Rpb24oWCx3ZSl7dmFyIHhlPWZ1bmN0aW9uIFpQKEgsaWUpe2lmKCFpZSlyZXR1cm4gMDt2YXIgWD1ILlNoZWV0TmFt''@;'; put 'put ''ZXMuaW5kZXhPZihpZSk7aWYoLTE9PVgpdGhyb3cgbmV3IEVycm9yKCJTaGVldCBub3QgZm91bmQ6ICIraWUpO3JldHVybiBYfShYLHdlLnNoZWV0KTtyZXR1cm4gSC5mcm9tX3NoZWV0KFguU2hlZXRzW1guU2hlZXROYW1lc1t4ZV1dLHdlLFgpfX12YXIgamQ9amgodXMpLElBPWpoKHtmcm9t''@;'; put 'put ''X3NoZWV0Okw1fSksbEM9amgodm9pZCAwIT09Zm0/Zm06e30pLHNDPWpoKHZvaWQgMCE9PXZiP3ZiOnt9KSxzaT1qaCh2b2lkIDAhPT1BMz9BMzp7fSkselA9amgodm9pZCAwIT09eDk/eDk6e30pLHBUPWpoKHtmcm9tX3NoZWV0Om1DfSksdUM9amgodm9pZCAwIT09WWY/WWY6e30pLFZsPWpo''@;'; put 'put ''KHZvaWQgMCE9PWVFP2VFOnt9KSxOcz1MKDQxMzQ4KXx8InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5jcnlwdG9Ccm93c2VyaWZ5O2lmKCFOcyl0aHJvdyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIGNyeXB0byBleHRlbnNpb25zISIpO3ZhciBjQz17U0hBNTEyOiJzaGE1MTIi''@;'; put 'put ''LFNIQTI1Njoic2hhMjU2IixTSEEzODQ6InNoYTM4NCIsU0hBMToic2hhMSIsTUQ1OiJtZDUiLE1ENDoibWQ0IixNRDI6Im1kMiJ9O2Z1bmN0aW9uIGsyKEgsaWUpe3N3aXRjaChpZT0oaWV8fCIiKS5yZXBsYWNlKC8tL2csIiIpKXtjYXNlIlNIQS01MTIiOmNhc2UiU0hBNTEyIjpyZXR1cm4g''@;'; put 'put ''bmV3IE5zLmNyZWF0ZUhhc2goInNoYTUxMiIpLnVwZGF0ZShIKS5kaWdlc3QoKTtjYXNlIlNIQS0xIjpjYXNlIlNIQTEiOnJldHVybiBuZXcgTnMuY3JlYXRlSGFzaCgic2hhMSIpLnVwZGF0ZShIKS5kaWdlc3QoKTtjYXNlIk1EMiI6cmV0dXJuIG5ldyBOcy5jcmVhdGVIYXNoKCJtZDIiKS51''@;'; put 'put ''cGRhdGUoSCkuZGlnZXN0KCk7ZGVmYXVsdDppZihjQ1tpZV0pcmV0dXJuIG5ldyBOcy5jcmVhdGVIYXNoKGNDW2llXSkudXBkYXRlKEgpLmRpZ2VzdCgpO3Rocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgaGFzaCBhbGdvcml0aG0gIitpZSl9fWZ1bmN0aW9uIE82KEgsaWUsWCl7aWYoInJj''@;'; put 'put ''MiI9PVgpdGhyb3ciVW5zdXBwb3J0ZWQgUkMyIjt2YXIgd2U9TnMuY3JlYXRlRGVjaXBoZXJpdihYfHwiYWVzLTI1Ni1jYmMiLEgsaWUpO3JldHVybiB3ZS5zZXRBdXRvUGFkZGluZyghMSksd2V9ZnVuY3Rpb24gZ1QoSCxpZSl7dmFyIFg9QnVmZmVyLmZyb20oSC5zYWx0LCJiYXNlNjQiKSx3''@;'; put 'put ''ZT1ILmFsZ28seGU9azIoQnVmZmVyLmNvbmNhdChbWCxCdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLGllKSldKSx3ZSksRmU9QnVmZmVyLmFsbG9jKDQpO0tsKEZlLDApO2Zvcih2YXIgWmU9MDtaZTxILnNwaW47KytaZSlGZS5sPTAsRmUud3JpdGVfc2hpZnQoNCxaZSks''@;'; put 'put ''eGU9azIoQnVmZmVyLmNvbmNhdChbeGUsRmVdKSx3ZSk7dmFyIGplPUJ1ZmZlci5mcm9tKEguaGFzaCwiYmFzZTY0Iik7cmV0dXJuIDA9PXhlLmNvbXBhcmUoamUpfWZ1bmN0aW9uIExpKEgpe3ZhciBpZT17YWxnbzoiU0hBLTUxMiIsc2FsdDoiVTJobFpYUktVeTVqYjIwdmVHeHplQT09Iixz''@;'; put 'put ''cGluOjFlM30sWD1CdWZmZXIuZnJvbShpZS5zYWx0LCJiYXNlNjQiKSx3ZT1pZS5hbGdvLHhlPWsyKEJ1ZmZlci5jb25jYXQoW1gsQnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxIKSldKSx3ZSksRmU9QnVmZmVyLmFsbG9jKDQpO0tsKEZlLDApO2Zvcih2YXIgWmU9MDta''@;'; put 'put ''ZTxpZS5zcGluOysrWmUpRmUubD0wLEZlLndyaXRlX3NoaWZ0KDQsWmUpLHhlPWsyKEJ1ZmZlci5jb25jYXQoW3hlLEZlXSksd2UpO3JldHVybiBpZS5oYXNoPXhlLnRvU3RyaW5nKCJiYXNlNjQiKSxpZX1mdW5jdGlvbiBIbyhILGllLFgsd2Upe3ZhciB4ZT1tdC51dGlscy5wcmVwX2Jsb2I7''@;'; put 'put ''aWYoImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIiE9SC51cmkpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBFQ01BLTM3NiBBZ2lsZSBVUkkgIitILnVyaSk7dmFyIEZlPUguZW5jc1swXSxaZT1GZS5oYXNoQWxnb3Jp''@;'; put 'put ''dGhtLGplPSJhZXMtMjU2LWNiYyIsWWU9QnVmZmVyLmZyb20oRmUuc2FsdFZhbHVlLCJiYXNlNjQiKSxNdD1CdWZmZXIuZnJvbShILnNhbHRWYWx1ZSwiYmFzZTY0IikseHQ9K0ZlLmJsb2NrU2l6ZSxSdD0rRmUua2V5Qml0cz4+MyxVdD1rMihCdWZmZXIuY29uY2F0KFtZZSxCdWZmZXIuZnJv''@;'; put 'put ''bShjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLFgpKV0pLFplKSxubj1CdWZmZXIuYWxsb2MoNCk7eGUobm4sMCk7Zm9yKHZhciBDbj0wO0NuPEZlLnNwaW5Db3VudDsrK0NuKW5uLmw9MCxubi53cml0ZV9zaGlmdCg0LENuKSxVdD1rMihCdWZmZXIuY29uY2F0KFtubixVdF0pLFplKTt2YXIg''@;'; put 'put ''RHQ9ZnVuY3Rpb24ob2ksY3IsZGksdjApe3ZhciBVaT1rMihCdWZmZXIuY29uY2F0KFtvaSxCdWZmZXIuZnJvbShbMjAsMTEwLDExLDIzMSwxNzEsMTcyLDIwOCwyMTRdKV0pLHYwKSx0bz1VaS5sZW5ndGg+PWRpP1VpLnNsaWNlKDAsZGkpOkJ1ZmZlci5hbGxvYyhkaSk7aWYoVWkubGVuZ3Ro''@;'; put 'put ''PGRpKXtmb3IodmFyIEEwPTA7QTA8VWkubGVuZ3RoOysrQTApdG9bQTBdPVVpW0EwXTtmb3IoO0EwPGRpOysrQTApdG9bQTBdPTU0fXJldHVybiB0b30oVXQsMCxSdCxaZSk7c3dpdGNoKEZlLmNpcGhlckFsZ29yaXRobSl7Y2FzZSJBRVMiOmlmKCJDaGFpbmluZ01vZGVDQkMiIT1GZS5jaXBo''@;'; put 'put ''ZXJDaGFpbmluZyl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGNpcGhlciBjaGFpbmluZyAiK0ZlLmNpcGhlckNoYWluaW5nKTtqZT0iYWVzLSIrRmUua2V5Qml0cysiLWNiYyI7YnJlYWs7Y2FzZSJSQzIiOmplPSJyYzIiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnN1''@;'; put 'put ''cHBvcnRlZCBjaXBoZXIgYWxnbyAiK0ZlLmNpcGhlckFsZ29yaXRobSl9WWU9ZnVuY3Rpb24ocXIpe2Zvcih2YXIgb2k9QnVmZmVyLmFsbG9jKHh0KSxjcj0wO2NyPHh0OysrY3Ipb2lbY3JdPWNyPHFyLmxlbmd0aD9xcltjcl06NTQ7cmV0dXJuIG9pfShZZSk7dmFyIHp0PUJ1ZmZlci5mcm9t''@;'; put 'put ''KEZlLmVuY3J5cHRlZEtleVZhbHVlLCJiYXNlNjQiKSxQbj1PNihEdCxZZSxqZSkudXBkYXRlKHp0KSxUbj1PNihrMihCdWZmZXIuY29uY2F0KFtVdCxCdWZmZXIuZnJvbShbMjE1LDE3MCwxNSwxMDksNDgsOTcsNTIsNzhdKV0pLFplKS5zbGljZSgwLFJ0KSxZZSxqZSkudXBkYXRlKEJ1ZmZl''@;'; put 'put ''ci5mcm9tKEZlLmVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlLCJiYXNlNjQiKSksT249azIoTzYoazIoQnVmZmVyLmNvbmNhdChbVXQsQnVmZmVyLmZyb20oWzI1NCwxNjcsMjEwLDExOCw1OSw3NSwxNTgsMTIxXSldKSxaZSkuc2xpY2UoMCxSdCksWWUsamUpLnVwZGF0ZShCdWZmZXIuZnJv''@;'; put 'put ''bShGZS5lbmNyeXB0ZWRWZXJpZmllckhhc2hJbnB1dCwiYmFzZTY0IikpLFplKSxZbj0rRmUuaGFzaFNpemV8fE1hdGgubWluKFRuLmxlbmd0aCxPbi5sZW5ndGgpO2lmKDAhPVRuLnNsaWNlKDAsWW4pLmNvbXBhcmUoT24uc2xpY2UoMCxZbikpKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0''@;'; put 'put ''IFBhc3N3b3JkIik7eGUoaWUsMCk7dmFyIE1yPWllLnJlYWRfc2hpZnQoNCk7aWUubCs9NDt2YXIgYWk9W10seXI9QnVmZmVyLmNvbmNhdChbTXQsQnVmZmVyLmFsbG9jKDQpXSk7Zm9yKHhlKHlyKSxDbj0wO2llLmw8aWUubGVuZ3RoOyl5ci5sPVllLmxlbmd0aCx5ci53cml0ZV9zaGlmdCg0''@;'; put 'put ''LENuKSxhaS5wdXNoKE82KFBuLGsyKEJ1ZmZlci5mcm9tKHlyKSxaZSkuc2xpY2UoMCwxNiksamUpLnVwZGF0ZShCdWZmZXIuZnJvbShpZS5zbGljZShpZS5sLGllLmwrNDA5NikpKSksaWUubCs9NDA5NiwrK0NuO3ZhciBHcj1CdWZmZXIuY29uY2F0KGFpKS5zbGljZSgwLE1yKSx6cj1sbih3''@;'; put 'put ''ZSk7cmV0dXJuIHpyLnR5cGU9ImJ1ZmZlciIsemQoR3IsenIpfWZ1bmN0aW9uIGtjKEgsaWUsWCx3ZSl7dmFyIHhlPW10LnV0aWxzLnByZXBfYmxvYjtpZigiU3RkIiE9PUgudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEJhZCBTdGFuZGFyZCBFbmNyeXB0aW9uIik7dmFyIEZlPUgudi5T''@;'; put 'put ''YWx0LFplPUgudi5WZXJpZmllcixqZT1ILnYuVmVyaWZpZXJIYXNoO2lmKDM2IT1ILmguRmxhZ3MpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBTdGFuZGFyZCBFbmNyeXB0aW9uIGJhZCBGbGFncyIpO3ZhciBZZT0wLE10PSIiO3N3aXRjaChILmguQWxnSUQpe2Nhc2UgMjYxMjY6WWU9MTI4''@;'; put 'put ''LE10PSJhZXMtMTI4LWVjYiI7YnJlYWs7Y2FzZSAyNjEyNzpZZT0xOTYsTXQ9ImFlcy0xOTItZWNiIjticmVhaztjYXNlIDI2MTI4OlllPTI1NixNdD0iYWVzLTI1Ni1lY2IiO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBCYWQgU3RhbmRhcmQgRW5jcnlwdGlvbiIp''@;'; put 'put ''fWlmKDMyNzcyIT1ILmguQWxnSURIYXNoKXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgQmFkIFN0YW5kYXJkIEVuY3J5cHRpb24iKTtpZihILmguS2V5U2l6ZSE9WWUpdGhyb3cgbmV3IEVycm9yKCJBbGdJRC9LZXlTaXplIG1pc21hdGNoIik7aWYoMjQhPUguaC5Qcm92aWRlclR5cGUpdGhy''@;'; put 'put ''b3cgbmV3IEVycm9yKCJFQ01BLTM3NiB1bnN1cHBvcnRlZCBQcm92aWRlclR5cGUgIitILmguUHJvdmlkZXJUeXBlKTt2YXIgeHQ9Ik1pY3Jvc29mdCBFbmhhbmNlZCBSU0EgYW5kIEFFUyBDcnlwdG9ncmFwaGljIFByb3ZpZGVyIjtpZihILmguQ1NQTmFtZS5zbGljZSgwLHh0Lmxlbmd0aCkh''@;'; put 'put ''PT14dCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIENyeXB0byBQcm92aWRlciAiK0guaC5DU1BOYW1lKTt2YXIgUnQ9IlNIQS0xIixVdD1ZZT4+Myxubj1rMihCdWZmZXIuY29uY2F0KFtGZSxjcHRhYmxlLnV0aWxzLmVuY29kZSgxMjAwLFgpXSksUnQpLENuPUJ1ZmZlci5hbGxvYyg0''@;'; put 'put ''KTt4ZShDbiwwKTtmb3IodmFyIER0PTA7RHQ8NWU0OysrRHQpQ24ubD0wLENuLndyaXRlX3NoaWZ0KDQsRHQpLG5uPWsyKEJ1ZmZlci5jb25jYXQoW0NuLG5uXSksUnQpO0NuLmw9MCxDbi53cml0ZV9zaGlmdCg0LDApO3ZhciBhaSxhcixHcix6cixQbj0oR3I9KGFyPWZ1bmN0aW9uKG9pLGNy''@;'; put 'put ''LGRpKXtmb3IodmFyIHYwPUJ1ZmZlci5hbGxvYyg2NCksVWk9MDtVaTx2MC5sZW5ndGg7KytVaSl2MFtVaV09b2k7Zm9yKFVpPTA7VWk8Y3IubGVuZ3RoOysrVWkpdjBbVWldXj1jcltVaV07cmV0dXJuIGsyKHYwLGRpKX0pKDU0LGFpPWsyKEJ1ZmZlci5jb25jYXQoW25uLENuXSksUnQpLCJT''@;'; put 'put ''SEEtMSIpLHpyPWFyKDkyLGFpLCJTSEEtMSIpLEJ1ZmZlci5jb25jYXQoW0dyLHpyXSkuc2xpY2UoMCxVdCkpO2lmKE82KFBuLEJ1ZmZlci5hbGxvYygwKSxNdCkudXBkYXRlKGplKS5zbGljZSgwLDIwKS5jb21wYXJlKGsyKE82KFBuLEJ1ZmZlci5hbGxvYygwKSxNdCkudXBkYXRlKFplKSxS''@;'; put 'put ''dCkpKXRocm93IG5ldyBFcnJvcigiSW5jb3JyZWN0IFBhc3N3b3JkIik7eGUoaWUsMCk7dmFyIFRuPWllLnJlYWRfc2hpZnQoNCk7aWUubCs9NDt2YXIgT249W107Zm9yKER0PTA7aWUubDxpZS5sZW5ndGg7KU9uLnB1c2goTzYoUG4sQnVmZmVyLmFsbG9jKDApLE10KS51cGRhdGUoaWUuc2xp''@;'; put 'put ''Y2UoaWUubCxpZS5sKzQwOTYpKSksaWUubCs9NDA5NiwrK0R0O3JldHVybiB6ZChCdWZmZXIuY29uY2F0KE9uKS5zbGljZSgwLFRuKSx3ZSl9ZnVuY3Rpb24gSTUoSCl7cmV0dXJuWygiMDAiKygyNTUmSCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMiksKCIwMCIrKEg+Pj44JjI1NSkudG9TdHJp''@;'; put 'put ''bmcoMTYpKS5zbGljZSgtMiksKCIwMCIrKEg+Pj4xNiYyNTUpLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpLCgiMDAiKyhIPj4+MjQmMjU1KS50b1N0cmluZygxNikpLnNsaWNlKC0yKV0uam9pbigiIil9dmFyIFI2PWZ1bmN0aW9uKEgsaWUsWCl7Zm9yKHZhciB3ZT0ic3RyaW5nIj09dHlwZW9m''@;'; put 'put ''IGllP0J1ZmZlci5mcm9tKGllLCJoZXgiKTppZSx4ZT0ic3RyaW5nIj09dHlwZW9mIEg/QnVmZmVyLmZyb20oY3B0YWJsZS51dGlscy5lbmNvZGUoMTIwMCxIKSk6SCxGZT0ic3RyaW5nIj09dHlwZW9mIFg/QnVmZmVyLmZyb20oWCwiaGV4Iik6WCxaZT1rMih4ZSwiTUQ1IiksamU9QnVmZmVy''@;'; put 'put ''LmNvbmNhdChbWmUuc2xpY2UoMCw1KSx3ZV0pLFllPTA7WWU8NDsrK1llKWplPUJ1ZmZlci5jb25jYXQoW2plLGplXSk7dmFyIE10PWsyKGplLCJNRDUiKTtyZXR1cm4oazIoQnVmZmVyLmNvbmNhdChbTXQuc2xpY2UoMCw1KSxGZV0pLCJNRDUiKS50b1N0cmluZygiaGV4IikrIjAwMDAwMDAw''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIikuc2xpY2UoMCwzMil9LERBPWZ1bmN0aW9uKEgsaWUsWCl7dmFyIHdlPSJzdHJpbmciPT10eXBlb2YgaWU/QnVmZmVyLmZyb20oaWUsImhleCIpOmllLHhlPSJzdHJpbmciPT10eXBlb2YgSD9CdWZmZXIuZnJvbShjcHRhYmxlLnV0aWxzLmVuY29k''@;'; put 'put ''ZSgxMjAwLEgpKTpILEZlPSJzdHJpbmciPT10eXBlb2YgWD9CdWZmZXIuZnJvbShYLCJoZXgiKTpYLFplPWsyKEJ1ZmZlci5jb25jYXQoW3dlLHhlXSksIlNIQTEiKTtyZXR1cm4gazIoQnVmZmVyLmNvbmNhdChbWmUsRmVdKSwiU0hBMSIpfSxTZj1mdW5jdGlvbigpe2Z1bmN0aW9uIGllKCl7''@;'; put 'put ''fWllLnByb3RvdHlwZS5idWlsZD1mdW5jdGlvbihEdCl7dGhpcy5faT0wO3ZhciB6dD10aGlzLl9idWlsZChEdCwiIik7cmV0dXJuIiI9PT16dD8iIjonPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PicrenR9LGllLnByb3RvdHlwZS5fYnVp''@;'; put 'put ''bGQ9ZnVuY3Rpb24oRHQsenQpe2lmKHRoaXMuX2krKyUxZTY9PTAmJih0aGlzLl9jPXp0WzBdKSxudWxsPT1EdHx8Im9iamVjdCIhPXR5cGVvZiBEdCYmImZ1bmN0aW9uIiE9dHlwZW9mIER0KW51bGwhPUR0JiYoenQrPWZ1bmN0aW9uIEgoRHQsenQpe3JldHVybiBudWxsPT1EdHx8KER0PUR0''@;'; put 'put ''LnRvU3RyaW5nKCkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLHp0JiYoRHQ9RHQucmVwbGFjZSgvIi9nLCImcXVvdDsiKSkpLER0fShEdCkpO2Vsc2V7aWYoIUR0Lm5hbWUpdGhyb3cgbmV3IEVycm9yKCJYTUwgbm9kZSBk''@;'; put 'put ''b2VzIG5vdCBoYXZlIG5hbWU6ICIrSlNPTi5zdHJpbmdpZnkoRHQpKTt6dCs9IjwiK0R0Lm5hbWU7dmFyIFBuPXRoaXM7enQrPUR0LmF0dHJpYnV0ZXMmJnJsKER0LmF0dHJpYnV0ZXMpfHwiIixBcnJheS5pc0FycmF5KER0LmNoaWxkcmVuKSYmMCE9RHQuY2hpbGRyZW4ubGVuZ3RoPyh6dCs9''@;'; put 'put ''Ij4iLER0LmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oVG4pe3p0PVBuLl9idWlsZChUbix6dCl9KSx6dCs9IjwvIitEdC5uYW1lKyI+Iik6enQrPSIvPiJ9cmV0dXJuIHp0fTt2YXIgWD1CdWZmZXIuZnJvbShbNCwwLDQsMCw2NCwwLDAsMF0pLEZlPXtkYXRhSW50ZWdyaXR5OntobWFjS2V5''@;'; put 'put ''OkJ1ZmZlci5mcm9tKFs5NSwxNzgsMTczLDEsMTIsMTg1LDIyNSwyNDZdKSxobWFjVmFsdWU6QnVmZmVyLmZyb20oWzE2MCwxMDMsMTI3LDIsMTc4LDQ0LDEzMiw1MV0pfSxrZXk6QnVmZmVyLmZyb20oWzIwLDExMCwxMSwyMzEsMTcxLDE3MiwyMDgsMjE0XSksdmVyaWZpZXJIYXNoOntpbnB1''@;'; put 'put ''dDpCdWZmZXIuZnJvbShbMjU0LDE2NywyMTAsMTE4LDU5LDc1LDE1OCwxMjFdKSx2YWx1ZTpCdWZmZXIuZnJvbShbMjE1LDE3MCwxNSwxMDksNDgsOTcsNTIsNzhdKX19O2Z1bmN0aW9uIFplKER0LHp0LFBuLFRuLE9uLFluKXt2YXIgTXI9enQudG9Mb3dlckNhc2UoKSsiLSIrOCpUbi5sZW5n''@;'; put 'put ''dGg7aWYoIkNoYWluaW5nTW9kZUNCQyIhPT1Qbil0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gY2lwaGVyIGNoYWluaW5nOiAiK1BuKTt2YXIgYWk9TnNbRHQ/ImNyZWF0ZUNpcGhlcml2IjoiY3JlYXRlRGVjaXBoZXJpdiJdKE1yKz0iLWNiYyIsVG4sT24pO2FpLnNldEF1dG9QYWRkaW5nKCEx''@;'; put 'put ''KTt2YXIgeXI9YWkudXBkYXRlKFluKSxhcj1beXJdO3RyeXt2YXIgR3I9YWkuZmluYWwoKTthci5wdXNoKEdyKX1jYXRjaCh6cil7fXJldHVybiBCdWZmZXIuY29uY2F0KGFyKX1mdW5jdGlvbiBqZShEdCl7RHQ9RHQudG9Mb3dlckNhc2UoKTt2YXIgenQ9W10uc2xpY2UuY2FsbChhcmd1bWVu''@;'; put 'put ''dHMsMSksUG49TnMuZ2V0SGFzaGVzKCk7aWYoUG4uaW5kZXhPZihEdCk8MCl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGhhc2ggYWxnb3JpdGhtICIrRHQpO3ZhciBUbj1Ocy5jcmVhdGVIYXNoKER0KTtyZXR1cm4gVG4udXBkYXRlKEJ1ZmZlci5jb25jYXQoenQpKSxUbi5kaWdlc3Qo''@;'; put 'put ''KX1mdW5jdGlvbiBZZShEdCx6dCxQbixUbil7Im51bWJlciI9PXR5cGVvZiBUbiYmKFRuPU10KFRuKSk7dmFyIE9uPWplKER0LHp0LFRuKTtpZihPbi5sZW5ndGg8UG4pe3ZhciBZbj1CdWZmZXIuYWxsb2MoUG4sNTQpO09uLmNvcHkoWW4pLE9uPVlufWVsc2UgT24ubGVuZ3RoPlBuJiYoT249''@;'; put 'put ''T24uc2xpY2UoMCxQbikpO3JldHVybiBPbn1mdW5jdGlvbiBNdChEdCx6dCl7dmFyIFBuPUJ1ZmZlci5hbGxvYyh6dHx8NCk7cmV0dXJuIFBuLndyaXRlVUludDMyTEUoRHQsMCksUG59ZnVuY3Rpb24geHQoRHQsenQsUG4sVG4sT24sWW4pe2Zvcih2YXIgYWk9amUoenQsUG4sQnVmZmVyLmZy''@;'; put 'put ''b20oRHQsInV0ZjE2bGUiKSkseXI9MDt5cjxUbjt5cisrKWFpPWplKHp0LE10KHlyKSxhaSk7dmFyIEdyPU9uLzg7aWYoKGFpPWplKHp0LGFpLFluKSkubGVuZ3RoPEdyKXt2YXIgenI9QnVmZmVyLmFsbG9jKEdyLDU0KTthaS5jb3B5KHpyKSxhaT16cn1lbHNlIGFpLmxlbmd0aD5HciYmKGFp''@;'; put 'put ''PWFpLnNsaWNlKDAsR3IpKTtyZXR1cm4gYWl9cmV0dXJuIE5zLnJhbmRvbUJ5dGVzfHwoTnMucmFuZG9tQnl0ZXM9ZnVuY3Rpb24oRHQpe2Zvcih2YXIgenQ9QnVmZmVyLmFsbG9jKER0KSxQbj0wO1BuPER0OysrUG4penRbUG5dPU1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpO3JldHVy''@;'; put 'put ''biB6dH0pLGZ1bmN0aW9uIENuKER0LHp0KXtpZigic3RyaW5nIj09dHlwZW9mIER0KXJldHVybiBDbihCdWZmZXIuZnJvbShEdCwiYmluYXJ5IiksenQpO3ZhciBQbj1Ocy5yYW5kb21CeXRlcygzMiksVG49e3BhY2thZ2U6e2NpcGhlckFsZ29yaXRobToiQUVTIixjaXBoZXJDaGFpbmluZzoi''@;'; put 'put ''Q2hhaW5pbmdNb2RlQ0JDIixzYWx0VmFsdWU6TnMucmFuZG9tQnl0ZXMoMTYpLGhhc2hBbGdvcml0aG06IlNIQTUxMiIsaGFzaFNpemU6NjQsYmxvY2tTaXplOjE2LGtleUJpdHM6OCpQbi5sZW5ndGh9LGtleTp7Y2lwaGVyQWxnb3JpdGhtOiJBRVMiLGNpcGhlckNoYWluaW5nOiJDaGFpbmlu''@;'; put 'put ''Z01vZGVDQkMiLHNhbHRWYWx1ZTpOcy5yYW5kb21CeXRlcygxNiksaGFzaEFsZ29yaXRobToiU0hBNTEyIixoYXNoU2l6ZTo2NCxibG9ja1NpemU6MTYsc3BpbkNvdW50OjEsa2V5Qml0czoyNTZ9fSxPbj1mdW5jdGlvbiBSdChEdCx6dCxQbixUbixPbixZbixNcixhaSl7Zm9yKHZhciB5cj1b''@;'; put 'put ''XSxhcj1EdD8wOjgsR3I9MCx6cj0wLHFyPTA7cXI8YWkubGVuZ3RoOyl7KHFyPSh6cj1xcikrNDA5Nik+YWkubGVuZ3RoJiYocXI9YWkubGVuZ3RoKTt2YXIgb2k9YWkuc2xpY2UoenIrYXIscXIrYXIpLGNyPW9pLmxlbmd0aCVPbjtjciYmKG9pPUJ1ZmZlci5jb25jYXQoW29pLEJ1ZmZlci5h''@;'; put 'put ''bGxvYyhPbi1jcildKSk7dmFyIHYwPVplKER0LHp0LFBuLE1yLFllKFRuLFluLE9uLEdyKSxvaSk7eXIucHVzaCh2MCksR3IrK312YXIgVWk9QnVmZmVyLmNvbmNhdCh5cik7aWYoRHQpVWk9QnVmZmVyLmNvbmNhdChbTXQoYWkubGVuZ3RoLDgpLFVpXSk7ZWxzZXt2YXIgdG89YWkucmVhZFVJ''@;'; put 'put ''bnQzMkxFKDApO1VpPVVpLnNsaWNlKDAsdG8pfXJldHVybiBVaX0oITAsVG4ucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sVG4ucGFja2FnZS5jaXBoZXJDaGFpbmluZyxUbi5wYWNrYWdlLmhhc2hBbGdvcml0aG0sVG4ucGFja2FnZS5ibG9ja1NpemUsVG4ucGFja2FnZS5zYWx0VmFsdWUsUG4s''@;'; put 'put ''RHQpLFluPU5zLnJhbmRvbUJ5dGVzKDY0KSxNcj1ZZShUbi5wYWNrYWdlLmhhc2hBbGdvcml0aG0sVG4ucGFja2FnZS5zYWx0VmFsdWUsVG4ucGFja2FnZS5ibG9ja1NpemUsRmUuZGF0YUludGVncml0eS5obWFjS2V5KSxhaT1aZSghMCxUbi5wYWNrYWdlLmNpcGhlckFsZ29yaXRobSxUbi5w''@;'; put 'put ''YWNrYWdlLmNpcGhlckNoYWluaW5nLFBuLE1yLFluKSx5cj1mdW5jdGlvbiBVdChEdCx6dCl7RHQ9RHQudG9Mb3dlckNhc2UoKTt2YXIgUG49W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMik7aWYoTnMuZ2V0SGFzaGVzKCkuaW5kZXhPZihEdCk8MCl0aHJvdyBuZXcgRXJyb3IoIkhNQUMgYWxn''@;'; put 'put ''b3JpdGhtICciK0R0KyInIG5vdCBzdXBwb3J0ZWQhIik7dmFyIE9uPU5zLmNyZWF0ZUhtYWMoRHQsenQpO3JldHVybiBPbi51cGRhdGUoQnVmZmVyLmNvbmNhdChQbikpLE9uLmRpZ2VzdCgpfShUbi5wYWNrYWdlLmhhc2hBbGdvcml0aG0sWW4sT24pLGFyPVllKFRuLnBhY2thZ2UuaGFzaEFs''@;'; put 'put ''Z29yaXRobSxUbi5wYWNrYWdlLnNhbHRWYWx1ZSxUbi5wYWNrYWdlLmJsb2NrU2l6ZSxGZS5kYXRhSW50ZWdyaXR5LmhtYWNWYWx1ZSksR3I9WmUoITAsVG4ucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sVG4ucGFja2FnZS5jaXBoZXJDaGFpbmluZyxQbixhcix5cik7VG4uZGF0YUludGVncml0''@;'; put 'put ''eT17ZW5jcnlwdGVkSG1hY0tleTphaSxlbmNyeXB0ZWRIbWFjVmFsdWU6R3J9O3ZhciB6cj14dCh6dCxUbi5rZXkuaGFzaEFsZ29yaXRobSxUbi5rZXkuc2FsdFZhbHVlLFRuLmtleS5zcGluQ291bnQsVG4ua2V5LmtleUJpdHMsRmUua2V5KTtUbi5rZXkuZW5jcnlwdGVkS2V5VmFsdWU9WmUo''@;'; put 'put ''ITAsVG4ua2V5LmNpcGhlckFsZ29yaXRobSxUbi5rZXkuY2lwaGVyQ2hhaW5pbmcsenIsVG4ua2V5LnNhbHRWYWx1ZSxQbik7dmFyIHFyPU5zLnJhbmRvbUJ5dGVzKDE2KSxvaT14dCh6dCxUbi5rZXkuaGFzaEFsZ29yaXRobSxUbi5rZXkuc2FsdFZhbHVlLFRuLmtleS5zcGluQ291bnQsVG4u''@;'; put 'put ''a2V5LmtleUJpdHMsRmUudmVyaWZpZXJIYXNoLmlucHV0KTtUbi5rZXkuZW5jcnlwdGVkVmVyaWZpZXJIYXNoSW5wdXQ9WmUoITAsVG4ua2V5LmNpcGhlckFsZ29yaXRobSxUbi5rZXkuY2lwaGVyQ2hhaW5pbmcsb2ksVG4ua2V5LnNhbHRWYWx1ZSxxcik7dmFyIGNyPWplKFRuLmtleS5oYXNo''@;'; put 'put ''QWxnb3JpdGhtLHFyKSxkaT14dCh6dCxUbi5rZXkuaGFzaEFsZ29yaXRobSxUbi5rZXkuc2FsdFZhbHVlLFRuLmtleS5zcGluQ291bnQsVG4ua2V5LmtleUJpdHMsRmUudmVyaWZpZXJIYXNoLnZhbHVlKTtUbi5rZXkuZW5jcnlwdGVkVmVyaWZpZXJIYXNoVmFsdWU9WmUoITAsVG4ua2V5LmNp''@;'; put 'put ''cGhlckFsZ29yaXRobSxUbi5rZXkuY2lwaGVyQ2hhaW5pbmcsZGksVG4ua2V5LnNhbHRWYWx1ZSxjcik7dmFyIHYwPWZ1bmN0aW9uIG5uKER0KXt2YXIgenQ9e25hbWU6ImVuY3J5cHRpb24iLGF0dHJpYnV0ZXM6e3htbG5zOiJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8y''@;'; put 'put ''MDA2L2VuY3J5cHRpb24iLCJ4bWxuczpwIjoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9rZXlFbmNyeXB0b3IvcGFzc3dvcmQiLCJ4bWxuczpjIjoiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2UvMjAwNi9rZXlFbmNyeXB0b3IvY2VydGlmaWNh''@;'; put 'put ''dGUifSxjaGlsZHJlbjpbe25hbWU6ImtleURhdGEiLGF0dHJpYnV0ZXM6e3NhbHRTaXplOkR0LnBhY2thZ2Uuc2FsdFZhbHVlLmxlbmd0aCxibG9ja1NpemU6RHQucGFja2FnZS5ibG9ja1NpemUsa2V5Qml0czpEdC5wYWNrYWdlLmtleUJpdHMsaGFzaFNpemU6RHQucGFja2FnZS5oYXNoU2l6''@;'; put 'put ''ZSxjaXBoZXJBbGdvcml0aG06RHQucGFja2FnZS5jaXBoZXJBbGdvcml0aG0sY2lwaGVyQ2hhaW5pbmc6RHQucGFja2FnZS5jaXBoZXJDaGFpbmluZyxoYXNoQWxnb3JpdGhtOkR0LnBhY2thZ2UuaGFzaEFsZ29yaXRobSxzYWx0VmFsdWU6RHQucGFja2FnZS5zYWx0VmFsdWUudG9TdHJpbmco''@;'; put 'put ''ImJhc2U2NCIpfX0se25hbWU6ImRhdGFJbnRlZ3JpdHkiLGF0dHJpYnV0ZXM6e2VuY3J5cHRlZEhtYWNLZXk6RHQuZGF0YUludGVncml0eS5lbmNyeXB0ZWRIbWFjS2V5LnRvU3RyaW5nKCJiYXNlNjQiKSxlbmNyeXB0ZWRIbWFjVmFsdWU6RHQuZGF0YUludGVncml0eS5lbmNyeXB0ZWRIbWFj''@;'; put 'put ''VmFsdWUudG9TdHJpbmcoImJhc2U2NCIpfX0se25hbWU6ImtleUVuY3J5cHRvcnMiLGNoaWxkcmVuOlt7bmFtZToia2V5RW5jcnlwdG9yIixhdHRyaWJ1dGVzOnt1cmk6Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDYva2V5RW5jcnlwdG9yL3Bhc3N3b3JkIn0sY2hp''@;'; put 'put ''bGRyZW46W3tuYW1lOiJwOmVuY3J5cHRlZEtleSIsYXR0cmlidXRlczp7c3BpbkNvdW50OkR0LmtleS5zcGluQ291bnQsc2FsdFNpemU6RHQua2V5LnNhbHRWYWx1ZS5sZW5ndGgsYmxvY2tTaXplOkR0LmtleS5ibG9ja1NpemUsa2V5Qml0czpEdC5rZXkua2V5Qml0cyxoYXNoU2l6ZTpEdC5r''@;'; put 'put ''ZXkuaGFzaFNpemUsY2lwaGVyQWxnb3JpdGhtOkR0LmtleS5jaXBoZXJBbGdvcml0aG0sY2lwaGVyQ2hhaW5pbmc6RHQua2V5LmNpcGhlckNoYWluaW5nLGhhc2hBbGdvcml0aG06RHQua2V5Lmhhc2hBbGdvcml0aG0sc2FsdFZhbHVlOkR0LmtleS5zYWx0VmFsdWUudG9TdHJpbmcoImJhc2U2''@;'; put 'put ''NCIpLGVuY3J5cHRlZFZlcmlmaWVySGFzaElucHV0OkR0LmtleS5lbmNyeXB0ZWRWZXJpZmllckhhc2hJbnB1dC50b1N0cmluZygiYmFzZTY0IiksZW5jcnlwdGVkVmVyaWZpZXJIYXNoVmFsdWU6RHQua2V5LmVuY3J5cHRlZFZlcmlmaWVySGFzaFZhbHVlLnRvU3RyaW5nKCJiYXNlNjQiKSxl''@;'; put 'put ''bmNyeXB0ZWRLZXlWYWx1ZTpEdC5rZXkuZW5jcnlwdGVkS2V5VmFsdWUudG9TdHJpbmcoImJhc2U2NCIpfX1dfV19XX0sVG49KG5ldyBpZSkuYnVpbGQoenQpO3JldHVybiBCdWZmZXIuY29uY2F0KFtYLEJ1ZmZlci5mcm9tKFRuLCJ1dGY4IildKX0oVG4pLFVpPW10LnV0aWxzLmNmYl9uZXco''@;'; put 'put ''KTtyZXR1cm4gbXQudXRpbHMuY2ZiX2FkZChVaSwiRW5jcnlwdGlvbkluZm8iLHYwKSxtdC51dGlscy5jZmJfYWRkKFVpLCJFbmNyeXB0ZWRQYWNrYWdlIixPbiksVWl9fSgpO2Z1bmN0aW9uIFMwKEgpe3JldHVybiBmdW5jdGlvbihYKXtmb3IodmFyIHdlPTA7d2UhPUgubGVuZ3RoOysrd2Up''@;'; put 'put ''e3ZhciB4ZT1IW3dlXTt2b2lkIDA9PT1YW3hlWzBdXSYmKFhbeGVbMF1dPXhlWzFdKSwibiI9PT14ZVsyXSYmKFhbeGVbMF1dPU51bWJlcihYW3hlWzBdXSkpfX19dmFyIE1mPWZ1bmN0aW9uKEgpe1MwKFtbImNlbGxORiIsITFdLFsiY2VsbEhUTUwiLCEwXSxbImNlbGxGb3JtdWxhIiwhMF0s''@;'; put 'put ''WyJjZWxsU3R5bGVzIiwhMV0sWyJjZWxsVGV4dCIsITBdLFsiY2VsbERhdGVzIiwhMV0sWyJzaGVldFN0dWJzIiwhMV0sWyJzaGVldFJvd3MiLDAsIm4iXSxbImJvb2tEZXBzIiwhMV0sWyJib29rU2hlZXRzIiwhMV0sWyJib29rUHJvcHMiLCExXSxbImJvb2tGaWxlcyIsITFdLFsiYm9va1ZC''@;'; put 'put ''QSIsITFdLFsicGFzc3dvcmQiLCIiXSxbIldURiIsITFdXSkoSCksSC5ib29rSW1hZ2VzJiYoSC5jZWxsU3R5bGVzPSEwKX0sRjM9UzAoW1siY2VsbERhdGVzIiwhMV0sWyJib29rU1NUIiwhMV0sWyJib29rVHlwZSIsInhsc3giXSxbImNvbXByZXNzaW9uIiwhMV0sWyJXVEYiLCExXV0pO2Z1''@;'; put 'put ''bmN0aW9uIE1zKEgpe3JldHVybiBkdC5XUy5pbmRleE9mKEgpPi0xPyJzaGVldCI6ZHQuQ1MmJkg9PWR0LkNTPyJjaGFydCI6ZHQuRFMmJkg9PWR0LkRTPyJkaWFsb2ciOmR0Lk1TJiZIPT1kdC5NUz8ibWFjcm8iOkgmJkgubGVuZ3RoP0g6InNoZWV0In12YXIgRDU9W107ZnVuY3Rpb24gWDQo''@;'; put 'put ''SCxpZSxYLHdlLHhlLEZlLFplLGplLFllLE10LHh0LFJ0KXt0cnl7RmVbd2VdPVB0KFVuKEgsWCwhMCksaWUpO3ZhciBubixVdD1zbihILGllKTtzd2l0Y2goamUpe2Nhc2Uic2hlZXQiOm5uPWZ1bmN0aW9uIFV4KEgsaWUsWCx3ZSx4ZSxGZSxaZSxqZSl7cmV0dXJuIi5iaW4iPT09aWUuc2xp''@;'; put 'put ''Y2UoLTQpP2Z1bmN0aW9uIEk2KEgsaWUsWCx3ZSx4ZSxGZSxaZSl7aWYoIUgpcmV0dXJuIEg7dmFyIGplPWllfHx7fTt3ZXx8KHdlPXsiIWlkIjp7fX0pO3ZhciBNdCxDbixEdCx6dCxQbixUbixPbixZbixNcixhaSxZZT1qZS5kZW5zZT9bXTp7fSx4dD17czp7cjoyZTYsYzoyZTZ9LGU6e3I6''@;'; put 'put ''MCxjOjB9fSxSdD1bXSxVdD0hMSxubj0hMSx5cj1bXTtqZS5iaWZmPTEyLGplWyIhcm93Il09MDt2YXIgYXI9MCxHcj0hMSx6cj1bXSxxcj17fSxvaT1qZS5zdXBib29rc3x8eGUuc3VwYm9va3N8fFtbXV07aWYob2kuc2hhcmVkZj1xcixvaS5hcnJheWY9enIsb2kuU2hlZXROYW1lcz14ZS5T''@;'; put 'put ''aGVldE5hbWVzfHx4ZS5TaGVldHMubWFwKGZ1bmN0aW9uKEEwKXtyZXR1cm4gQTAubmFtZX0pLCFqZS5zdXBib29rcyYmKGplLnN1cGJvb2tzPW9pLHhlLk5hbWVzKSlmb3IodmFyIGNyPTA7Y3I8eGUuTmFtZXMubGVuZ3RoOysrY3Ipb2lbMF1bY3IrMV09eGUuTmFtZXNbY3JdO3ZhciBkaT1b''@;'; put 'put ''XSx2MD1bXSxVaT0hMTtpZih4NVsxNl09e246IkJydFNob3J0UmVhbCIsZjpVNH0sSDEoSCxmdW5jdGlvbihiaSxZcixFaSl7aWYoIW5uKXN3aXRjaChFaSl7Y2FzZSAxNDg6TXQ9Ymk7YnJlYWs7Y2FzZSAwOkNuPWJpLGplLnNoZWV0Um93cyYmamUuc2hlZXRSb3dzPD1Dbi5yJiYobm49ITAp''@;'; put 'put ''LE1yPVhhKFBuPUNuLnIpLGplWyIhcm93Il09Q24uciwoYmkuaGlkZGVufHxiaS5ocHR8fG51bGwhPWJpLmxldmVsKSYmKGJpLmhwdCYmKGJpLmhweD1BZihiaS5ocHQpKSx2MFtiaS5yXT1iaSk7YnJlYWs7Y2FzZSAyOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmNhc2UgNjpjYXNlIDc6Y2FzZSA4''@;'; put 'put ''OmNhc2UgOTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMzpjYXNlIDE0OmNhc2UgMTU6Y2FzZSAxNjpjYXNlIDE3OmNhc2UgMTg6c3dpdGNoKER0PXt0OmJpWzJdfSxiaVsyXSl7Y2FzZSJuIjpEdC52PWJpWzFdO2JyZWFrO2Nhc2UicyI6RHQudj0oWW49T2RbYmlbMV1dKS50LGplLmNlbGxTdHls''@;'; put 'put ''ZXMmJihEdC5SPWZ1bmN0aW9uIFh6KEgsaWUpe2lmKEguUilyZXR1cm4gSC5SO2lmKGllJiZpZS5Gb250cyYmKDEhPUguci5sZW5ndGh8fDAhPUguclswXS5pY2gpKXtILlI9W107dmFyIFg9MCx3ZT1ILnJbWF0seGU9SC5yW1grMV07Zm9yKHdlLmljaD4wJiZILlIucHVzaCh7dDoicyIsdjpI''@;'; put 'put ''LnQuc2xpY2UoMCx3ZS5pY2gpfSk7WDxILnIubGVuZ3RoLTE7KytYKUguUi5wdXNoKHt0OiJzIix2OkgudC5zbGljZSgod2U9SC5yW1hdKS5pY2gsKHhlPUgucltYKzFdKS5pY2gpLHM6aWUuRm9udHNbd2UuaWZudF19KTtyZXR1cm4gSC5SLnB1c2goe3Q6InMiLHY6SC50LnNsaWNlKCh4ZXx8''@;'; put 'put ''d2UpLmljaCksczppZS5Gb250c1soeGV8fHdlKS5pZm50XX0pLEguUn19KFluLFplKSk7YnJlYWs7Y2FzZSJiIjpEdC52PSEhYmlbMV07YnJlYWs7Y2FzZSJlIjpEdC52PWJpWzFdLCExIT09amUuY2VsbFRleHQmJihEdC53PU4xW0R0LnZdKTticmVhaztjYXNlInN0ciI6RHQudD0icyIsRHQu''@;'; put 'put ''dj1iaVsxXX1pZigoenQ9WmUuQ2VsbFhmW2JpWzBdLmlTdHlsZVJlZl0pJiZkNShEdCx6dC5udW1GbXRJZCx6dC5maWxsSWQsenQuZm9udElkLHp0LmJvcmRlcklkLGplLDAsWmUpLGplLmNlbGxTdHlsZXMmJkR0LnMmJnp0LmFsaWdubWVudCYmKER0LnMuYWxpZ25tZW50PWxuKHp0LmFsaWdu''@;'; put 'put ''bWVudCkpLFRuPS0xPT1iaVswXS5jP1RuKzE6YmlbMF0uYyxqZS5kZW5zZT8oWWVbUG5dfHwoWWVbUG5dPVtdKSxZZVtQbl1bVG5dPUR0KTpZZVtfYShUbikrTXJdPUR0LGplLmNlbGxGb3JtdWxhKXtmb3IoR3I9ITEsYXI9MDthcjx6ci5sZW5ndGg7Kythcil7dmFyIGhpPXpyW2FyXTtDbi5y''@;'; put 'put ''Pj1oaVswXS5zLnImJkNuLnI8PWhpWzBdLmUuciYmVG4+PWhpWzBdLnMuYyYmVG48PWhpWzBdLmUuYyYmKER0LkY9ZmEoaGlbMF0pLEdyPSEwKX0hR3ImJmJpLmxlbmd0aD4zJiYoRHQuZj1iaVszXSl9aWYoeHQucy5yPkNuLnImJih4dC5zLnI9Q24ucikseHQucy5jPlRuJiYoeHQucy5jPVRu''@;'; put 'put ''KSx4dC5lLnI8Q24uciYmKHh0LmUucj1Dbi5yKSx4dC5lLmM8VG4mJih4dC5lLmM9VG4pLGplLmNlbGxEYXRlcyYmenQmJiJuIj09RHQudCYmRi5pc19kYXRlKEYuX3RhYmxlW3p0Lm51bUZtdElkXSkpe3ZhciBOcj1GLnBhcnNlX2RhdGVfY29kZShEdC52KTtOciYmKER0LnQ9ImQiLER0LnY9''@;'; put 'put ''bmV3IERhdGUoTnIueSxOci5tLTEsTnIuZCxOci5ILE5yLk0sTnIuUyxOci51KSl9YnJlYWs7Y2FzZSAxOmNhc2UgMTI6aWYoIWplLnNoZWV0U3R1YnN8fFV0KWJyZWFrO0R0PXt0OiJ6Iix2OnZvaWQgMH0sVG49LTE9PWJpWzBdLmM/VG4rMTpiaVswXS5jLCh6dD1aZS5DZWxsWGZbYmlbMF0u''@;'; put 'put ''aVN0eWxlUmVmXSkmJmQ1KER0LHp0Lm51bUZtdElkLHp0LmZpbGxJZCx6dC5mb250SWQsenQuYm9yZGVySWQsamUsMCxaZSksamUuY2VsbFN0eWxlcyYmRHQucyYmenQuYWxpZ25tZW50JiYoRHQucy5hbGlnbm1lbnQ9bG4oenQuYWxpZ25tZW50KSksamUuZGVuc2U/KFllW1BuXXx8KFllW1Bu''@;'; put 'put ''XT1bXSksWWVbUG5dW1RuXT1EdCk6WWVbX2EoVG4pK01yXT1EdCx4dC5zLnI+Q24uciYmKHh0LnMucj1Dbi5yKSx4dC5zLmM+VG4mJih4dC5zLmM9VG4pLHh0LmUucjxDbi5yJiYoeHQuZS5yPUNuLnIpLHh0LmUuYzxUbiYmKHh0LmUuYz1Ubik7YnJlYWs7Y2FzZSAxNzY6eXIucHVzaChiaSk7''@;'; put 'put ''YnJlYWs7Y2FzZSA0OTQ6dmFyIGtpPXdlWyIhaWQiXVtiaS5yZWxJZF07Zm9yKGtpPyhiaS5UYXJnZXQ9a2kuVGFyZ2V0LGJpLmxvYyYmKGJpLlRhcmdldCs9IiMiK2JpLmxvYyksYmkuUmVsPWtpKToiIj09YmkucmVsSWQmJihiaS5UYXJnZXQ9IiMiK2JpLmxvYyksUG49YmkucmZ4LnMucjtQ''@;'; put 'put ''bjw9YmkucmZ4LmUucjsrK1BuKWZvcihUbj1iaS5yZngucy5jO1RuPD1iaS5yZnguZS5jOysrVG4pamUuZGVuc2U/KFllW1BuXXx8KFllW1BuXT1bXSksWWVbUG5dW1RuXXx8KFllW1BuXVtUbl09e3Q6InoiLHY6dm9pZCAwfSksWWVbUG5dW1RuXS5sPWJpKTooT249WTAoe2M6VG4scjpQbn0p''@;'; put 'put ''LFllW09uXXx8KFllW09uXT17dDoieiIsdjp2b2lkIDB9KSxZZVtPbl0ubD1iaSk7YnJlYWs7Y2FzZSA0MjY6aWYoIWplLmNlbGxGb3JtdWxhKWJyZWFrO3pyLnB1c2goYmkpLChhaT1qZS5kZW5zZT9ZZVtQbl1bVG5dOlllW19hKFRuKStNcl0pLmY9VzEoYmlbMV0seHQse3I6Q24ucixjOlRu''@;'; put 'put ''fSxvaSxqZSksYWkuRj1mYShiaVswXSk7YnJlYWs7Y2FzZSA0Mjc6aWYoIWplLmNlbGxGb3JtdWxhKWJyZWFrO3FyW1kwKGJpWzBdLnMpXT1iaVsxXSwoYWk9amUuZGVuc2U/WWVbUG5dW1RuXTpZZVtfYShUbikrTXJdKS5mPVcxKGJpWzFdLHh0LHtyOkNuLnIsYzpUbn0sb2ksamUpO2JyZWFr''@;'; put 'put ''O2Nhc2UgNjA6aWYoIWplLmNlbGxTdHlsZXMpYnJlYWs7Zm9yKDtiaS5lPj1iaS5zOylkaVtiaS5lLS1dPXt3aWR0aDpiaS53LzI1NixoaWRkZW46ISEoMSZiaS5mbGFncyksbGV2ZWw6YmkubGV2ZWx9LFVpfHwoVWk9ITApLHljKGRpW2JpLmUrMV0pO2JyZWFrO2Nhc2UgMTYxOlllWyIhYXV0''@;'; put 'put ''b2ZpbHRlciJdPXtyZWY6ZmEoYmkpfTticmVhaztjYXNlIDQ3NjpZZVsiIW1hcmdpbnMiXT1iaTticmVhaztjYXNlIDE0Nzp4ZS5TaGVldHNbWF18fCh4ZS5TaGVldHNbWF09e30pLGJpLm5hbWUmJih4ZS5TaGVldHNbWF0uQ29kZU5hbWU9YmkubmFtZSksKGJpLmFib3ZlfHxiaS5sZWZ0KSYm''@;'; put 'put ''KFllWyIhb3V0bGluZSJdPXthYm92ZTpiaS5hYm92ZSxsZWZ0OmJpLmxlZnR9KTticmVhaztjYXNlIDEzNzp4ZS5WaWV3c3x8KHhlLlZpZXdzPVt7fV0pLHhlLlZpZXdzWzBdfHwoeGUuVmlld3NbMF09e30pLGJpLlJUTCYmKHhlLlZpZXdzWzBdLlJUTD0hMCksYmkuZ3JpZHx8KHhlLlZpZXdz''@;'; put 'put ''WzBdLmdyaWQ9ITEsWWVbIiFncmlkbGluZXMiXT0hMSk7YnJlYWs7Y2FzZSA0ODU6WWVbIiFzaGVldEZvcm1hdCJdPWJpO2JyZWFrO2Nhc2UgNjQ6Y2FzZSAxMDUzOiFmdW5jdGlvbiBLMChILGllLFgsd2Upe2lmKGllKXt2YXIgeGU9e3JlZjppZS5zcXJmeCx0OmllLnR9O2llLm9wJiYoeGUu''@;'; put 'put ''b3A9aWUub3ApO3ZhciBGZT0iIixaZT0iIixqZT1pZS5zcXJmeD8ic3RyaW5nIj09dHlwZW9mIGllLnNxcmZ4P0ZvKGllLnNxcmZ4LnNwbGl0KCIsIilbMF0pOmllLnNxcmZ4Om51bGw7aWYoaWUuZjEmJihGZT1XMShpZS5mMSxqZSxudWxsLFgsd2UsITApKSxpZS5mMiYmKFplPVcxKGllLmYy''@;'; put 'put ''LGplLG51bGwsWCx3ZSwhMCkpLGllLm9wJiZbIklOIiwiT1QiXS5pbmRleE9mKGllLm9wKT49LTEpeGUubWluPUZlLHhlLm1heD1aZTtlbHNlIGlmKGllLm9wKXhlLnY9RmU7ZWxzZSB0cnl7c3dpdGNoKGllLnQpe2Nhc2UiTGlzdCI6aWYoIlB0Z1N0ciI9PT1pZS5mMVswXVswXVswXSYmMT09''@;'; put 'put ''aWUuZjFbMF0ubGVuZ3RoKXt4ZS5sPWllLmYxWzBdWzBdWzFdLnNwbGl0KCIsIik7YnJlYWt9Y2FzZSJDdXN0b20iOnhlLmY9RmV9fWNhdGNoKFllKXt9SFsiIXZhbGlkYXRpb25zIl18fChIWyIhdmFsaWRhdGlvbnMiXT1bXSksSFsiIXZhbGlkYXRpb25zIl0ucHVzaCh4ZSl9fShZZSxiaSxv''@;'; put 'put ''aSxqZSk7YnJlYWs7Y2FzZSAxNTE6WWVbIiFmcmVlemUiXT1iaVswXTticmVhaztjYXNlIDE1MjpZZVsiIXNlbCJdPWJpO2JyZWFrO2Nhc2UgMTc1OmNhc2UgNjQ0OmNhc2UgNjI1OmNhc2UgNTYyOmNhc2UgMzk2OmNhc2UgMTExMjpjYXNlIDExNDY6Y2FzZSA0NzE6Y2FzZSAxMDUwOmNhc2Ug''@;'; put 'put ''NjQ5OmNhc2UgMTEwNTpjYXNlIDQ5OmNhc2UgNTg5OmNhc2UgNjA3OmNhc2UgNTY0OmNhc2UgMTA1NTpjYXNlIDE2ODpjYXNlIDE3NDpjYXNlIDExODA6Y2FzZSA0OTk6Y2FzZSA1MDc6Y2FzZSA1NTA6Y2FzZSAxNzE6Y2FzZSAxNjc6Y2FzZSAxMTc3OmNhc2UgMTY5OmNhc2UgMTE4MTpjYXNl''@;'; put 'put ''IDU1MTpjYXNlIDU1MjpjYXNlIDY2MTpjYXNlIDYzOTpjYXNlIDQ3ODpjYXNlIDUzNzpjYXNlIDQ3NzpjYXNlIDUzNjpjYXNlIDExMDM6Y2FzZSA2ODA6Y2FzZSAxMTA0OmNhc2UgMTAyNDpjYXNlIDY2MzpjYXNlIDUzNTpjYXNlIDY3ODpjYXNlIDUwNDpjYXNlIDEwNDM6Y2FzZSA0Mjg6Y2Fz''@;'; put 'put ''ZSAxNzA6Y2FzZSAzMDcyOmNhc2UgNTA6Y2FzZSAyMDcwOmNhc2UgMTA0NTpicmVhaztjYXNlIDM1OlV0PSEwO2JyZWFrO2Nhc2UgMzY6VXQ9ITE7YnJlYWs7Y2FzZSAzNzpSdC5wdXNoKFlyKSxVdD0hMDticmVhaztjYXNlIDM4OlJ0LnBvcCgpLFV0PSExO2JyZWFrO2RlZmF1bHQ6aWYoISgo''@;'; put 'put ''WXJ8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApJiYhKChZcnx8IiIpLmluZGV4T2YoIkVuZCIpPjApJiYoIVV0fHxqZS5XVEYmJiJCcnRBQ0JlZ2luIiE9UnRbUnQubGVuZ3RoLTFdKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrRWkrIiAiK1lyKX19LGplKSxkZWxldGUg''@;'; put 'put ''amUuc3VwYm9va3MsZGVsZXRlIGplWyIhcm93Il0sIVllWyIhcmVmIl0mJih4dC5zLnI8MmU2fHxNdCYmKE10LmUucj4wfHxNdC5lLmM+MHx8TXQucy5yPjB8fE10LnMuYz4wKSkmJihZZVsiIXJlZiJdPWZhKE10fHx4dCkpLGplLnNoZWV0Um93cyYmWWVbIiFyZWYiXSl7dmFyIHRvPUZvKFll''@;'; put 'put ''WyIhcmVmIl0pO2plLnNoZWV0Um93czw9K3RvLmUuciYmKHRvLmUucj1qZS5zaGVldFJvd3MtMSx0by5lLnI+eHQuZS5yJiYodG8uZS5yPXh0LmUuciksdG8uZS5yPHRvLnMuciYmKHRvLnMucj10by5lLnIpLHRvLmUuYz54dC5lLmMmJih0by5lLmM9eHQuZS5jKSx0by5lLmM8dG8ucy5jJiYo''@;'; put 'put ''dG8ucy5jPXRvLmUuYyksWWVbIiFmdWxscmVmIl09WWVbIiFyZWYiXSxZZVsiIXJlZiJdPWZhKHRvKSl9cmV0dXJuIHlyLmxlbmd0aD4wJiYoWWVbIiFtZXJnZXMiXT15ciksZGkubGVuZ3RoPjAmJihZZVsiIWNvbHMiXT1kaSksdjAubGVuZ3RoPjAmJihZZVsiIXJvd3MiXT12MCksWWV9KEgs''@;'; put 'put ''d2UsWCx4ZSxGZSwwLGplKTpmdW5jdGlvbiBiMihILGllLFgsd2UseGUsRmUsWmUpe2lmKCFIKXJldHVybiBIO3dlfHwod2U9eyIhaWQiOnt9fSk7dmFyIGplPWllLmRlbnNlP1tdOnt9LFllPXtzOntyOjJlNixjOjJlNn0sZTp7cjowLGM6MH19LE10PSIiLHh0PSIiLFJ0PUgubWF0Y2goZ18p''@;'; put 'put ''O1J0PyhNdD1ILnNsaWNlKDAsUnQuaW5kZXgpLHh0PUguc2xpY2UoUnQuaW5kZXgrUnRbMF0ubGVuZ3RoKSk6TXQ9eHQ9SDt2YXIgVXQ9eHQubGFzdEluZGV4T2YoImV4dExzdCIpLENuPSgtMT09VXR8fHh0LnNsaWNlKFV0KSxNdC5tYXRjaChBXykpO0NuP09tKENuWzBdLDAseGUsWCk6KENu''@;'; put 'put ''PU10Lm1hdGNoKEltKSkmJmZ1bmN0aW9uIE9oKEgsaWUsWCx3ZSx4ZSxGZSxaZSl7T20oSC5zbGljZSgwLEguaW5kZXhPZigiPiIpKSwwLHdlLHhlKTt2YXIgamU9aWUubWF0Y2goYl8pO2lmKGplKXt2YXIgTXQ9RTMoZW4oamVbMF0pLEZlLFplKTtYWyIhdGFiY29sb3IiXT1NdH1pZigoamU9''@;'; put 'put ''aWUubWF0Y2goY3gpKSYmZW4oamVbMF0pLmZpdFRvUGFnZSYmKFhbIiFwcmludCJdfHwoWFsiIXByaW50Il09e30pLFhbIiFwcmludCJdLnByb3BzfHwoWFsiIXByaW50Il0ucHJvcHM9e30pLFhbIiFwcmludCJdLnByb3BzLmZpdHx8KFhbIiFwcmludCJdLnByb3BzLmZpdD17fSksbnVsbD09''@;'; put 'put ''WFsiIXByaW50Il0ucHJvcHMuZml0LmhlaWdodCYmKFhbIiFwcmludCJdLnByb3BzLmZpdC5oZWlnaHQ9MSksbnVsbD09WFsiIXByaW50Il0ucHJvcHMuZml0LndpZHRoJiYoWFsiIXByaW50Il0ucHJvcHMuZml0LndpZHRoPTEpKSxqZT1pZS5tYXRjaChmQSkpe1hbIiFvdXRsaW5lIl09e307''@;'; put 'put ''dmFyIFJ0PWVuKGplWzBdKTtSdC5zdW1tYXJ5QmVsb3cmJihYWyIhb3V0bGluZSJdLmFib3ZlPSFEaShSdC5zdW1tYXJ5QmVsb3cpKSxSdC5zdW1tYXJ5UmlnaHQmJihYWyIhb3V0bGluZSJdLmxlZnQ9IURpKFJ0LnN1bW1hcnlSaWdodCkpfX0oQ25bMF0sQ25bMV18fCIiLGplLHhlLFgsWmUs''@;'; put 'put ''RmUpO3ZhciBEdD0oTXQubWF0Y2goLzwoPzpcdyo6KT9kaW1lbnNpb24vKXx8e2luZGV4Oi0xfSkuaW5kZXg7aWYoRHQ+MCl7dmFyIHp0PU10LnNsaWNlKER0LER0KzUwKS5tYXRjaChtXyk7enQmJighaWV8fCFpZS5ub2RpbSkmJmZ1bmN0aW9uIGRfKEgsaWUpe3ZhciBYPUZvKGllKTtYLnMu''@;'; put 'put ''cjw9WC5lLnImJlgucy5jPD1YLmUuYyYmWC5zLnI+PTAmJlgucy5jPj0wJiYoSFsiIXJlZiJdPWZhKFgpKX0oamUsenRbMV0pfXZhciBQbj1NdC5tYXRjaChXQik7UG4mJlBuWzFdJiZmdW5jdGlvbiBiRyhILGllLFgsd2Upe1guVmlld3N8fChYLlZpZXdzPVt7fV0pO3ZhciB4ZT0wO0gucmVw''@;'; put 'put ''bGFjZSh2eCxmdW5jdGlvbihGZSxaZSl7dmFyIGplPWVuKEZlKTtpZihYLlZpZXdzW3dlXXx8KFguVmlld3Nbd2VdPXt9KSxEaShqZS5yaWdodFRvTGVmdCkmJihYLlZpZXdzW3dlXS5SVEw9ITApLGplLnNob3dHcmlkTGluZXMmJihYLlZpZXdzW3dlXS5ncmlkPURpKGplLnNob3dHcmlkTGlu''@;'; put 'put ''ZXMpLG51bGw9PWllWyIhZ3JpZGxpbmVzIl0mJihpZVsiIWdyaWRsaW5lcyJdPURpKGplLnNob3dHcmlkTGluZXMpKSksK2plLnpvb21TY2FsZSYmKFguVmlld3Nbd2VdLnpvb209K2plLnpvb21TY2FsZSksamUudmlldyYmKFguVmlld3Nbd2VdLnZpZXc9amUudmlldyksMT09Kyt4ZSYmIi8+''@;'; put 'put ''IiE9RmUuc2xpY2UoLTIpKXt2YXIgWWU9SC5zbGljZShaZStGZS5sZW5ndGgpLE10PVllLm1hdGNoKC88XC8oPzpcdzopP3NoZWV0Vmlldyg/OltePmEtel1bXj5dKik/XC8/Pi8pO2lmKCFNdClyZXR1cm4iIjt2YXIgeHQ9KFllPVllLnNsaWNlKDAsTXQuaW5kZXgpKS5tYXRjaCgvPCg/Olx3''@;'; put 'put ''Oik/cGFuZSg/OltePmEtel1bXj5dKik/XC8/Pi8pO2lmKHh0KXt2YXIgUnQ9ZW4oeHRbMF0pOyJmcm96ZW4iPT1SdC5zdGF0ZT9pZVsiIWZyZWV6ZSJdPV9hKCtSdC54U3BsaXR8fDApK1hhKCtSdC55U3BsaXR8fDApOlJ0LnRvcExlZnRDZWxsJiYoaWVbIiFmcmVlemUiXT1SdC50b3BMZWZ0''@;'; put 'put ''Q2VsbCl9dmFyIFV0PVllLm1hdGNoKC88KD86XHc6KT9zZWxlY3Rpb24oPzpbXj5hLXpdW14+XSopP1wvPz4vKTtpZihVdCl7dmFyIG5uPWVuKFV0WzBdKTtpZihubi5hY3RpdmVDZWxsJiYoaWVbIiFzZWwiXT17Y2VsbDpubi5hY3RpdmVDZWxsfSksbm4uc3FyZWYpe3ZhciBDbj1ubi5zcXJl''@;'; put 'put ''Zi5yZXBsYWNlKC9ccy4qJC8sIiIpO2llWyIhc2VsIl18fChpZVsiIXNlbCJdPXtjZWxsOlkwKEFzKENuKS5zKX0pLGllWyIhc2VsIl0ucmFuZ2U9bm4uc3FyZWZ9fX1yZXR1cm4iIn0pfShQblsxXSxqZSx4ZSxYKTt2YXIgVG49TXQubWF0Y2goTG0pLE9uPVtdO2lmKGllLmNlbGxTdHlsZXMp''@;'; put 'put ''e3ZhciBZbj1NdC5tYXRjaChHQik7WW4mJmZ1bmN0aW9uIHB4KEgsaWUsWCl7Zm9yKHZhciB3ZT0hMSx4ZT0wO3hlIT1pZS5sZW5ndGg7Kyt4ZSl7dmFyIEZlPWVuKGllW3hlXSwhMCk7RmUuaGlkZGVuJiYoRmUuaGlkZGVuPURpKEZlLmhpZGRlbikpO3ZhciBaZT1wYXJzZUludChGZS5taW4s''@;'; put 'put ''MTApLTEsamU9cGFyc2VJbnQoRmUubWF4LDEwKS0xO2ZvcihGZS5vdXRsaW5lTGV2ZWwmJihGZS5sZXZlbD0rRmUub3V0bGluZUxldmVsfHwwKSxkZWxldGUgRmUubWluLGRlbGV0ZSBGZS5tYXgsRmUud2lkdGg9K0ZlLndpZHRoLCF3ZSYmRmUud2lkdGgmJih3ZT0hMCkseWMoRmUpLEZlLnN0''@;'; put 'put ''eWxlJiYoRmUucz1EbyhGZS5zdHlsZSxYKSk7WmU8PWplOylIW1plKytdPWxuKEZlKX19KE9uLFluLFplKX1pZihSdCYmUl8oUnRbMV0sWCxqZSxpZSxZZSxGZSxaZSksaWUuY2FsbGJhY2spcmV0dXJuIGplO3ZhciBNcj14dC5tYXRjaChsQSk7TXImJihqZVsiIXByb3RlY3QiXT1mdW5jdGlv''@;'; put 'put ''biBRQihIKXt2YXIgaWU9ZW4oSCwhMCwhMCksWD17fTtpZihEaShpZS5zaGVldCkpcmV0dXJuIE1fLmZvckVhY2goZnVuY3Rpb24od2Upe1hbd2VdPW51bGwhPWllW3dlXSYmRGkoaWVbd2VdKX0pLGdBLmZvckVhY2goZnVuY3Rpb24od2Upe1hbd2VdPW51bGw9PWllW3dlXXx8RGkoaWVbd2Vd''@;'; put 'put ''KX0pLGllLmFsZ29yaXRobU5hbWUmJihYLmVuY3J5cHRpb249e2FsZ286aWUuYWxnb3JpdGhtTmFtZSxoYXNoOmllLmhhc2hWYWx1ZSxzYWx0OmllLnNhbHRWYWx1ZSxzcGluOitpZS5zcGluQ291bnR8fDFlNX0pLFh9KE1yWzBdKSk7dmFyIGFpPXh0Lm1hdGNoKGFBKTthaSYmKGplWyIhYXV0''@;'; put 'put ''b2ZpbHRlciJdPWZ1bmN0aW9uIFRfKEgpe3JldHVybntyZWY6KEgubWF0Y2goL3JlZj0iKFteIl0qKSIvKXx8W10pWzFdfX0oYWlbMF0pKTt2YXIgeXI9W10sYXI9eHQubWF0Y2gocF8pO2lmKGFyKWZvcihEdD0wO0R0IT1hci5sZW5ndGg7KytEdCl5cltEdF09Rm8oYXJbRHRdLnNsaWNlKGFy''@;'; put 'put ''W0R0XS5pbmRleE9mKCciJykrMSkpO3ZhciBHcj0oLTE9PVV0P3h0Onh0LnNsaWNlKDAsVXQpKS5tYXRjaChEbSk7R3ImJihqZVsiIWNvbmRmbXQiXT1bXS5jb25jYXQuYXBwbHkoW10sR3IubWFwKGZ1bmN0aW9uKFlyKXtyZXR1cm4gZ3goWXIsaWUsRmUsWmUpfSkpKSxVdD4tMSYmKEdyPXh0''@;'; put 'put ''LnNsaWNlKFV0KS5tYXRjaChEbSkpJiYoamVbIiFjb25kZm10Il18fChqZVsiIWNvbmRmbXQiXT1bXSksamVbIiFjb25kZm10Il09amVbIiFjb25kZm10Il0uY29uY2F0LmFwcGx5KGplWyIhY29uZGZtdCJdLEdyLm1hcChmdW5jdGlvbihZcil7cmV0dXJuIGd4KFlyLGllLEZlLFplLCEwKX0p''@;'; put 'put ''KSk7dmFyIHpyPSgtMT09VXQ/eHQ6eHQuc2xpY2UoMCxVdCkpLm1hdGNoKGVjKTt6ciYmKGplWyIhdmFsaWRhdGlvbnMiXT1BQSh6clswXSxpZSkpLFV0Pi0xJiYoenI9eHQuc2xpY2UoVXQpLm1hdGNoKGVjKSkmJihqZVsiIXZhbGlkYXRpb25zIl18fChqZVsiIXZhbGlkYXRpb25zIl09W10p''@;'; put 'put ''LGplWyIhdmFsaWRhdGlvbnMiXT1qZVsiIXZhbGlkYXRpb25zIl0uY29uY2F0KEFBKHpyWzBdLGllLCEwKSkpO3ZhciBxcj14dC5tYXRjaChzeCk7cXImJmZ1bmN0aW9uIGR4KEgsaWUsWCl7Zm9yKHZhciB3ZT1BcnJheS5pc0FycmF5KEgpLHhlPTA7eGUhPWllLmxlbmd0aDsrK3hlKXt2YXIg''@;'; put 'put ''RmU9ZW4oVzAoaWVbeGVdKSwhMCk7aWYoIUZlLnJlZilyZXR1cm47dmFyIFplPSgoWHx8e30pWyIhaWQiXXx8W10pW0ZlLmlkXTtaZT8oRmUuVGFyZ2V0PVplLlRhcmdldCxGZS5sb2NhdGlvbiYmKEZlLlRhcmdldCs9IiMiK2dyKEZlLmxvY2F0aW9uKSkpOihGZS5UYXJnZXQ9IiMiK2dyKEZl''@;'; put 'put ''LmxvY2F0aW9uKSxaZT17VGFyZ2V0OkZlLlRhcmdldCxUYXJnZXRNb2RlOiJJbnRlcm5hbCJ9KSxGZS5SZWw9WmUsRmUudG9vbHRpcCYmKEZlLlRvb2x0aXA9RmUudG9vbHRpcCxkZWxldGUgRmUudG9vbHRpcCk7Zm9yKHZhciBqZT1GbyhGZS5yZWYpLFllPWplLnMucjtZZTw9amUuZS5yOysr''@;'; put 'put ''WWUpZm9yKHZhciBNdD1qZS5zLmM7TXQ8PWplLmUuYzsrK010KXt2YXIgeHQ9WTAoe2M6TXQscjpZZX0pO3dlPyhIW1llXXx8KEhbWWVdPVtdKSxIW1llXVtNdF18fChIW1llXVtNdF09e3Q6InoiLHY6dm9pZCAwfSksSFtZZV1bTXRdLmw9RmUpOihIW3h0XXx8KEhbeHRdPXt0OiJ6Iix2OnZv''@;'; put 'put ''aWQgMH0pLEhbeHRdLmw9RmUpfX19KGplLHFyLHdlKTt2YXIgb2k9eHQubWF0Y2godXgpO29pJiZmdW5jdGlvbiBoeChILGllKXt2YXIgWD1lbihILCExLCEwKTtpZVsiIXByaW50Il18fChpZVsiIXByaW50Il09e30pLGllWyIhcHJpbnQiXS5wcm9wc3x8KGllWyIhcHJpbnQiXS5wcm9wcz17''@;'; put 'put ''fSk7dmFyIHdlPWllWyIhcHJpbnQiXS5wcm9wcztYLmdyaWRMaW5lcyYmKHdlLmdyaWRsaW5lcz1EaShYLmdyaWRMaW5lcykpLG51bGwhPVguaG9yaXpvbnRhbENlbnRlcmVkJiYod2UuY2VudGVyWD1EaShYLmhvcml6b250YWxDZW50ZXJlZCkpLG51bGwhPVgudmVydGljYWxDZW50ZXJlZCYm''@;'; put 'put ''KHdlLmNlbnRlclk9RGkoWC52ZXJ0aWNhbENlbnRlcmVkKSl9KG9pWzBdLGplKTt2YXIgY3I9eHQubWF0Y2godl8pO2NyJiYoKGplWyIhcHJpbnQiXXx8KGplWyIhcHJpbnQiXT17fSkpLm1hcmdpbnM9amVbIiFtYXJnaW5zIl09UG0oZW4oY3JbMF0pKSk7dmFyIGRpPXh0Lm1hdGNoKFlCKTtk''@;'; put 'put ''aSYmZnVuY3Rpb24gVUIoSCxpZSl7dmFyIFg9ZW4oSCwhMSwhMCk7ZGVsZXRlIFguaWQsZGVsZXRlIFhbMF0saWVbIiFwcmludCJdfHwoaWVbIiFwcmludCJdPXt9KSxpZVsiIXByaW50Il0ucHJvcHN8fChpZVsiIXByaW50Il0ucHJvcHM9e30pO3ZhciB3ZT1pZVsiIXByaW50Il0ucHJvcHM7''@;'; put 'put ''WC5vcmllbnRhdGlvbiYmKHdlLm9yaWVudGF0aW9uPVgub3JpZW50YXRpb24pLFguc2NhbGUmJih3ZS5zY2FsZT0rWC5zY2FsZSksK1guZml0VG9IZWlnaHQ+PTAmJigod2UuZml0fHwod2UuZml0PXt9KSkuaGVpZ2h0PStYLmZpdFRvSGVpZ2h0KSwrWC5maXRUb1dpZHRoPj0wJiYoKHdlLmZp''@;'; put 'put ''dHx8KHdlLmZpdD17fSkpLndpZHRoPStYLmZpdFRvV2lkdGgpLFgucGFwZXJIZWlnaHQmJlgucGFwZXJXaWR0aD93ZS5wYXBlcj17d2lkdGg6WC5wYXBlcldpZHRoLGhlaWdodDpYLnBhcGVySGVpZ2h0fTpYLnBhcGVyU2l6ZSYmKHdlLnBhcGVyPVo5W3dlLnBhcGVyPStYLnBhcGVyU2l6ZV18''@;'; put 'put ''fHdlLnBhcGVyKSxYLmhvcml6b250YWxEcGk/d2UuZHBpPStYLmhvcml6b250YWxEcGk6WC52ZXJ0aWNhbERwaSYmKHdlLmRwaT0rWC52ZXJ0aWNhbERwaSksImF1dG9tYXRpYyIhPShYLmZpcnN0UGFnZU51bWJlcnx8ImF1dG9tYXRpYyIpJiYod2UuZmlyc3Q9K1guZmlyc3RQYWdlTnVtYmVy''@;'; put 'put ''KSxEaShYLmJsYWNrQW5kV2hpdGUpJiYod2UuYnc9ITApLERpKFguZHJhZnQpJiYod2UuZHJhZnQ9ITApLCJvdmVyVGhlbkRvd24iPT1YLnBhZ2VPcmRlciYmKHdlLm9yZGVyPSJvdmVyIiksQ19bWC5jZWxsQ29tbWVudHNdJiYod2UuY29tbWVudHM9Q19bWC5jZWxsQ29tbWVudHNdKSxoQVtY''@;'; put 'put ''LmVycm9yc10mJih3ZS5lcnJvcnM9aEFbWC5lcnJvcnNdKX0oZGlbMF0samUpO3ZhciB2MD14dC5tYXRjaCh1QSk7djAmJmZ1bmN0aW9uIG1BKEgsaWUpe2lmKGllWyIhcHJpbnQiXXx8KGllWyIhcHJpbnQiXT17fSksSFsxXSl7dmFyIFg9IiIsd2U9MDtIWzFdLnJlcGxhY2UoR3QsZnVuY3Rp''@;'; put 'put ''b24oeGUsRmUpe2lmKCIvIiE9eGUuY2hhckF0KDEpKVg9eGUuc2xpY2UoMSwtMSksd2U9RmUreGUubGVuZ3RoO2Vsc2UgaWYoWCl7dmFyIFplPVgubWF0Y2goL0hlYWRlci8pPyJoZWFkZXIiOiJmb290ZXIiLGplPVgucmVwbGFjZSgvSGVhZGVyfEZvb3Rlci8sIiIpO1g9IiIsaWVbIiFwcmlu''@;'; put 'put ''dCJdW1plXXx8KGllWyIhcHJpbnQiXVtaZV09e30pLGllWyIhcHJpbnQiXVtaZV1bamVdPWdyKFcwKEhbMV0uc2xpY2Uod2UsRmUpKSl9fSl9fSh2MCxqZSk7dmFyIFVpPXh0Lm1hdGNoKHlfKTtVaSYmKChqZVsiIXByaW50Il18fChqZVsiIXByaW50Il09e30pKS5yb3dCcmVha3M9amVbIiFy''@;'; put 'put ''b3dCcmVha3MiXT1mdW5jdGlvbiBTXyhIKXt2YXIgaWU9W107cmV0dXJuKEgubWF0Y2goZEEpfHxbXSkuZm9yRWFjaChmdW5jdGlvbihYKXt2YXIgd2U9ZW4oWCk7aWUucHVzaCh7Ujord2UuaWR9KX0pLGllfShVaVswXSkpO3ZhciB0bz14dC5tYXRjaChzQSk7dG8mJigoamVbIiFwcmludCJd''@;'; put 'put ''fHwoamVbIiFwcmludCJdPXt9KSkuY29sQnJlYWtzPWplWyIhY29sQnJlYWtzIl09ZnVuY3Rpb24gcEEoSCl7dmFyIGllPVtdO3JldHVybihILm1hdGNoKGRBKXx8W10pLmZvckVhY2goZnVuY3Rpb24oWCl7dmFyIHdlPWVuKFgpO2llLnB1c2goe0M6K3dlLmlkfSl9KSxpZX0odG9bMF0pKTt2''@;'; put 'put ''YXIgQTA9W107aWYoKEEwPXh0Lm1hdGNoKC9kcmF3aW5nIHI6aWQ9IiguKj8pIi8pKSYmKGplWyIhcmVsIl09QTBbMV0pLChBMD14dC5tYXRjaCgvbGVnYWN5RHJhd2luZyByOmlkPSIoLio/KSIvKSkmJihqZVsiIWxlZ3JlbCJdPUEwWzFdKSwoQTA9eHQubWF0Y2godkcpKSYmKGplWyIhY3Ry''@;'; put 'put ''bGlkIl09QTAubWFwKGZ1bmN0aW9uKFlyKXtyZXR1cm4gZW4oWXIpfSkpLChBMD14dC5tYXRjaChBRykpJiZmdW5jdGlvbiBjQShILGllKXtIWyIhdGFibGVyZWZzIl18fChIWyIhdGFibGVyZWZzIl09W10pLChpZS5tYXRjaChfMSl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFgpe0hbIiF0YWJs''@;'; put 'put ''ZXJlZnMiXS5wdXNoKGVuKFgpLmlkKX0pfShqZSxBMFsxXSksaWUmJmllLm5vZGltJiYoWWUucy5jPVllLnMucj0wKSwhamVbIiFyZWYiXSYmWWUuZS5jPj1ZZS5zLmMmJlllLmUucj49WWUucy5yJiYoamVbIiFyZWYiXT1mYShZZSkpLGllLnNoZWV0Um93cz4wJiZqZVsiIXJlZiJdKXt2YXIg''@;'; put 'put ''Ymk9Rm8oamVbIiFyZWYiXSk7aWUuc2hlZXRSb3dzPD0rYmkuZS5yJiYoYmkuZS5yPWllLnNoZWV0Um93cy0xLGJpLmUucj5ZZS5lLnImJihiaS5lLnI9WWUuZS5yKSxiaS5lLnI8Ymkucy5yJiYoYmkucy5yPWJpLmUuciksYmkuZS5jPlllLmUuYyYmKGJpLmUuYz1ZZS5lLmMpLGJpLmUuYzxi''@;'; put 'put ''aS5zLmMmJihiaS5zLmM9YmkuZS5jKSxqZVsiIWZ1bGxyZWYiXT1qZVsiIXJlZiJdLGplWyIhcmVmIl09ZmEoYmkpKX1yZXR1cm4gVG4mJihqZVsiIXNoZWV0Rm9ybWF0Il09ZnVuY3Rpb24gQ2YoSCl7dmFyIGllPXt9LFg9e30sd2U9ITEseGU9e30sRmU9ITE7cmV0dXJuIEguZGVmYXVsdFJv''@;'; put 'put ''d0hlaWdodCYmKHdlPSEwLFguaHB0PXBhcnNlRmxvYXQoSC5kZWZhdWx0Um93SGVpZ2h0KSksSC56ZXJvSGVpZ2h0JiYod2U9ITAsWC5oaWRkZW49RGkoSC56ZXJvSGVpZ2h0KSksSC5iYXNlQ29sV2lkdGg/KEZlPSEwLHhlLndjaD1wYXJzZUZsb2F0KEguYmFzZUNvbFdpZHRoKSk6SC5kZWZh''@;'; put 'put ''dWx0Q29sV2lkdGgmJihGZT0hMCx4ZS53Y2g9cGFyc2VGbG9hdChILmRlZmF1bHRDb2xXaWR0aCktNS9LMiksSC5vdXRsaW5lTGV2ZWxDb2wmJihpZS5jb2xvdXRsaW5lPXBhcnNlSW50KEgub3V0bGluZUxldmVsQ29sKSksSC5vdXRsaW5lTGV2ZWxSb3cmJihpZS5yb3dvdXRsaW5lPXBhcnNl''@;'; put 'put ''SW50KEgub3V0bGluZUxldmVsUm93KSksSC50aGlja0JvdHRvbSYmKGllLmJvdHRoaWNrPURpKEgudGhpY2tCb3R0b20pKSxILnRoaWNrVG9wJiYoaWUudG9wdGhpY2s9RGkoSC50aGlja1RvcCkpLEguZHlEZXNjZW50JiYoaWUuZHlEZXNjZW50PXBhcnNlRmxvYXQoSC5keURlc2NlbnQpKSx3''@;'; put 'put ''ZSYmKEo4KFgpLGllLnJvdz1YKSxGZSYmKHljKHhlKSxpZS5jb2w9eGUpLGllfShlbihUblswXSkpKSxPbi5sZW5ndGg+MCYmKGplWyIhY29scyJdPU9uKSx5ci5sZW5ndGg+MCYmKGplWyIhbWVyZ2VzIl09eXIpLHdlWyIhaWQiXVtqZVsiIXJlbCJdXSYmKGplWyIhZHJhd2VsIl09d2VbIiFp''@;'; put 'put ''ZCJdW2plWyIhcmVsIl1dKSx3ZVsiIWlkIl1bamVbIiFsZWdyZWwiXV0mJihqZVsiIWxlZ2RyYXdlbCJdPXdlWyIhaWQiXVtqZVsiIWxlZ3JlbCJdXSksKGplWyIhY3RybGlkIl18fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKFlyKXtZci5yZWw9d2VbIiFpZCJdW1lyLmlkXX0pLG51bGw9PWplWyIh''@;'; put 'put ''Z3JpZGxpbmVzIl0mJihqZVsiIWdyaWRsaW5lcyJdPSEwKSxqZX0oSCx3ZSxYLHhlLEZlLFplLGplKX0oVXQsaWUseGUsWWUsRmVbd2VdLE10LHh0LFJ0KTticmVhaztjYXNlImNoYXJ0Ijpubj1mdW5jdGlvbiBVXyhILGllLFgsd2UseGUsRmUsWmUsamUpe3JldHVybiIuYmluIj09PWllLnNs''@;'; put 'put ''aWNlKC00KT9mdW5jdGlvbiBtUChILGllLFgsd2UseGUpe2lmKCFIKXJldHVybiBIO3dlfHwod2U9eyIhaWQiOnt9fSk7dmFyIEZlPXsiIXR5cGUiOiJjaGFydCIsIiFkcmF3ZWwiOm51bGwsIiFyZWwiOiIifSxaZT1bXSxqZT0hMTtyZXR1cm4gSDEoSCxmdW5jdGlvbihNdCx4dCxSdCl7c3dp''@;'; put 'put ''dGNoKFJ0KXtjYXNlIDU1MDpGZVsiIXJlbCJdPU10O2JyZWFrO2Nhc2UgNjUxOnhlLlNoZWV0c1tYXXx8KHhlLlNoZWV0c1tYXT17fSksTXQubmFtZSYmKHhlLlNoZWV0c1tYXS5Db2RlTmFtZT1NdC5uYW1lKTticmVhaztjYXNlIDU2MjpjYXNlIDY1MjpjYXNlIDY2OTpjYXNlIDY3OTpjYXNl''@;'; put 'put ''IDU1MTpjYXNlIDU1MjpjYXNlIDQ3NjpjYXNlIDMwNzI6YnJlYWs7Y2FzZSAzNTpqZT0hMDticmVhaztjYXNlIDM2OmplPSExO2JyZWFrO2Nhc2UgMzc6WmUucHVzaCh4dCk7YnJlYWs7Y2FzZSAzODpaZS5wb3AoKTticmVhaztkZWZhdWx0OmlmKCh4dHx8IiIpLmluZGV4T2YoIkJlZ2luIik+''@;'; put 'put ''MClaZS5wdXNoKHh0KTtlbHNlIGlmKCh4dHx8IiIpLmluZGV4T2YoIkVuZCIpPjApWmUucG9wKCk7ZWxzZSBpZighamV8fGllLldURil0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrUnQrIiAiK3h0KX19LGllKSx3ZVsiIWlkIl1bRmVbIiFyZWwiXV0mJihGZVsiIWRyYXdl''@;'; put 'put ''bCJdPXdlWyIhaWQiXVtGZVsiIXJlbCJdXSksRmV9KEgsd2UsWCx4ZSxGZSk6ZnVuY3Rpb24gRngoSCxpZSxYLHdlLHhlKXtpZighSClyZXR1cm4gSDt3ZXx8KHdlPXsiIWlkIjp7fX0pO3ZhciBaZSxGZT17IiF0eXBlIjoiY2hhcnQiLCIhZHJhd2VsIjpudWxsLCIhcmVsIjoiIn0samU9SC5t''@;'; put 'put ''YXRjaChBXyk7amUmJk9tKGplWzBdLDAseGUsWCk7dmFyIFllPUgubWF0Y2godl8pO3JldHVybiBZZSYmKEZlWyIhbWFyZ2lucyJdPVBtKGVuKFllWzBdKSkpLChaZT1ILm1hdGNoKC9kcmF3aW5nIHI6aWQ9IiguKj8pIi8pKSYmKEZlWyIhcmVsIl09WmVbMV0pLHdlWyIhaWQiXVtGZVsiIXJl''@;'; put 'put ''bCJdXSYmKEZlWyIhZHJhd2VsIl09d2VbIiFpZCJdW0ZlWyIhcmVsIl1dKSxGZX0oSCwwLFgseGUsRmUpfShVdCxpZSx4ZSxZZSxGZVt3ZV0sTXQpO2JyZWFrO2Nhc2UibWFjcm8iOm5uPWZ1bmN0aW9uIFFfKEgsaWUsWCx3ZSx4ZSxGZSxaZSxqZSl7cmV0dXJuIGllLnNsaWNlKC00KSx7IiF0''@;'; put 'put ''eXBlIjoibWFjcm8ifX0oMCxpZSk7YnJlYWs7Y2FzZSJkaWFsb2ciOm5uPWZ1bmN0aW9uIGJQKEgsaWUsWCx3ZSx4ZSxGZSxaZSxqZSl7cmV0dXJuIGllLnNsaWNlKC00KSx7IiF0eXBlIjoiZGlhbG9nIn19KDAsaWUpO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6''@;'; put 'put ''ZWQgc2hlZXQgdHlwZSAiK2plKX1pZihZZS5jYWxsYmFjaylyZXR1cm47WmVbd2VdPW5uLGZ1bmN0aW9uIFdQKEgsaWUsWCx3ZSx4ZSxGZSxaZSxqZSl7aWYoSCYmSFsiIWRyYXdlbCJdKXt2YXIgWWU9dW4oSFsiIWRyYXdlbCJdLlRhcmdldCx3ZSksTXQ9SXQoWWUpLHh0PWZ1bmN0aW9uIFJF''@;'; put 'put ''KEgsaWUsWCx3ZSx4ZSl7dmFyIEZlPXtjaGFydHM6W10saW1hZ2VzOltdLHNoYXBlczpbXX07aWYoIUgpcmV0dXJuIEZlO3ZhciBaZT14ZXx8e307cmV0dXJuKEgubWF0Y2goLzxbXjxdKj8oYWJzb2x1dGVBbmNob3J8b25lQ2VsbEFuY2hvcnx0d29DZWxsQW5jaG9yKS4qPyhhYnNvbHV0ZUFu''@;'; put 'put ''Y2hvcnxvbmVDZWxsQW5jaG9yfHR3b0NlbGxBbmNob3IpLio/Pi9nKXx8W10pLmZvckVhY2goZnVuY3Rpb24oamUpe3ZhciBZZT0iIixNdD17dHlwZToiIn0seHQ9e30sUnQ9ITAsVXQ9ITEsbm49ITEsQ249ITEsRHQ9e3M6e319LHp0PS0xLFBuPVtdLFRuPVtdLE9uPXtzOnthbGlnbm1lbnQ6''@;'; put 'put ''e2hvcml6b250YWw6ImNlbnRlciIsdmVydGljYWw6ImNlbnRlciJ9fX0sWW49IiIsTXI9LTEseXI9e307amUucmVwbGFjZShHdCxmdW5jdGlvbihhcixHcil7UG49bnVsbDt2YXIgenI9ZW4oYXIpLHFyPUluKHpyWzBdKS5yZXBsYWNlKC9bXC9dPz4kLywiIik7c3dpdGNoKHFyKXtjYXNlIjxj''@;'; put 'put ''bGllbnREYXRhIjpicmVhaztjYXNlIjxhYnNvbHV0ZUFuY2hvciI6Y2FzZSI8b25lQ2VsbEFuY2hvciI6Y2FzZSI8dHdvQ2VsbEFuY2hvciI6TXQudHlwZT1Jbih6clswXSkucmVwbGFjZSgvWzw+XS9nLCIiKTticmVhaztjYXNlIjwvYWJzb2x1dGVBbmNob3IiOmNhc2UiPC9vbmVDZWxsQW5j''@;'; put 'put ''aG9yIjpjYXNlIjwvdHdvQ2VsbEFuY2hvciI6YnJlYWs7Y2FzZSI8cG9zIjpNdC5wb3M9e3g6K3pyLngseTorenIueX07YnJlYWs7Y2FzZSI8ZXh0IjpSdCYmKE10LmV4dD17eDorenIuY3gseTorenIuY3l9KTticmVhaztjYXNlIjxmcm9tIjpjYXNlIjx0byI6eHQ9e307YnJlYWs7Y2FzZSI8''@;'; put 'put ''L2Zyb20iOlJ0JiYoTXQuZnJvbT14dCk7YnJlYWs7Y2FzZSI8L3RvIjpSdCYmKE10LnRvPXh0KTticmVhaztjYXNlIjxjb2wiOmNhc2UiPGNvbE9mZiI6Y2FzZSI8cm93IjpjYXNlIjxyb3dPZmYiOnp0PUdyK2FyLmxlbmd0aDticmVhaztjYXNlIjwvY29sIjp4dC5jPStqZS5zbGljZSh6dCxH''@;'; put 'put ''cik7YnJlYWs7Y2FzZSI8L2NvbE9mZiI6eHQuY09mZj0ramUuc2xpY2UoenQsR3IpO2JyZWFrO2Nhc2UiPC9yb3ciOnh0LnI9K2plLnNsaWNlKHp0LEdyKTticmVhaztjYXNlIjwvcm93T2ZmIjp4dC5yT2ZmPStqZS5zbGljZSh6dCxHcik7YnJlYWs7Y2FzZSI8c3AiOlllPSJzaGFwZSIsT24u''@;'; put 'put ''QW5jaG9yPU10LEZlLnNoYXBlcy5wdXNoKE9uKSxSdD0hMTticmVhaztjYXNlIjwvc3AiOlJ0PSEwO2JyZWFrO2Nhc2UiPGdyYXBoaWNGcmFtZSI6WWU9ImdyYXBoaWMiLFJ0PSExO2JyZWFrO2Nhc2UiPC9ncmFwaGljRnJhbWUiOlJ0PSEwO2JyZWFrO2Nhc2UiPHBpYyI6WWU9InBpY3R1cmUi''@;'; put 'put ''LFJ0PSExO2JyZWFrO2Nhc2UiPC9waWMiOlJ0PSEwO2JyZWFrO2Nhc2UiPGdycFNwIjpZZT0iZ3JvdXBzaGFwZSIsUnQ9ITE7YnJlYWs7Y2FzZSI8L2dycFNwIjpSdD0hMDticmVhaztjYXNlIjxncmFwaGljIjpjYXNlIjwvZ3JhcGhpYyI6Y2FzZSI8eGZybSI6Y2FzZSI8L3hmcm0iOmNhc2Ui''@;'; put 'put ''PG9mZiI6YnJlYWs7Y2FzZSI8Z3JhcGhpY0RhdGEiOlV0PSEwO2JyZWFrO2Nhc2UiPC9ncmFwaGljRGF0YSI6VXQ9ITE7YnJlYWs7Y2FzZSI8YmxpcEZpbGwiOlV0PSEwO2JyZWFrO2Nhc2UiPC9ibGlwRmlsbCI6VXQ9ITE7YnJlYWs7Y2FzZSI8L2JsaXAiOmJyZWFrO2Nhc2UiPHNyY1JlY3Qi''@;'; put 'put ''OlV0PSEwO2JyZWFrO2Nhc2UiPC9zcmNSZWN0IjpVdD0hMTticmVhaztjYXNlIjxub0ZpbGwiOmlmKG5uKWJyZWFrOyI8c3BQciI9PVRuLnNsaWNlKC0xKVswXSYmKE9uLnMuZmdDb2xvcj1udWxsKTticmVhaztjYXNlIjwvc29saWRGaWxsIjppZihubnx8Q24pYnJlYWs7IjxzcFByIj09VG4u''@;'; put 'put ''c2xpY2UoLTIpWzBdP09uLnMuZmdDb2xvcj15cjoiPHJQciI9PVRuLnNsaWNlKC0yKVswXSYmVG4uaW5kZXhPZigiPHR4Qm9keSIpPi0xJiYoRHQucy5jb2xvcj15cikseXI9e30sQ249ITE7YnJlYWs7Y2FzZSI8cHJzdEdlb20iOiJzaGFwZSI9PVllJiYoT25bIiFzaGFwZSJdPXpyLnByc3Qp''@;'; put 'put ''O2JyZWFrO2Nhc2UiPC9wcnN0R2VvbSI6Y2FzZSI8YXZMc3QiOmJyZWFrO2Nhc2UiPHR4Qm9keSI6VXQ9ITAsT24uUj1bXTticmVhaztjYXNlIjwvdHhCb2R5IjpVdD0hMTticmVhaztjYXNlIjxib2R5UHIiOk9uLnMuYWxpZ25tZW50LnZlcnRpY2FsPU9FW3pyLmFuY2hvcnx8InQiXXx8InRv''@;'; put 'put ''cCI7YnJlYWs7Y2FzZSI8bHN0U3R5bGUiOmJyZWFrO2Nhc2UiPHQiOk1yPUdyK2FyLmxlbmd0aDticmVhaztjYXNlIjxiciI6Y2FzZSI8YnIvPiI6WW4rPSJcbiI7YnJlYWs7Y2FzZSI8L3QiOlluKz1qZS5zbGljZShNcixHcik7YnJlYWs7Y2FzZSI8cFByIjpPbi5zLmFsaWdubWVudC5ob3Jp''@;'; put 'put ''em9udGFsfHwoT24ucy5hbGlnbm1lbnQuaG9yaXpvbnRhbD1IYlt6ci5hbGdufHwibCJdfHwibGVmdCIpLFRuLmluZGV4T2YoIjx0eEJvZHkiKT4tMSYmKER0LnMuYWxpZ25tZW50Lmhvcml6b250YWw9SGJbenIuYWxnbnx8ImwiXXx8ImxlZnQiKTticmVhaztjYXNlIjxyUHIiOnpyLnN6JiZU''@;'; put 'put ''bi5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihPbi5zLnN6PUR0LnMuc3o9K3pyLnN6LzEwMCk7YnJlYWs7Y2FzZSI8cCI6WW49IiIsRHQ9e3Q6InMiLHY6IiIsczp7YWxpZ25tZW50Ont9fX07YnJlYWs7Y2FzZSI8L3AiOiJzaGFwZSI9PVllJiZUbi5pbmRleE9mKCI8dHhCb2R5Iik+LTEmJihP''@;'; put 'put ''bi52PShPbi52fHwiIikrWW4sRHQudj1ZbixPbi5SLnB1c2goRHQpKTticmVhaztjYXNlIjxsYXRpbiI6enIudHlwZWZhY2UmJlRuLmluZGV4T2YoIjx0eEJvZHkiKT4tMSYmKER0LnMubmFtZT16ci50eXBlZmFjZSk7YnJlYWs7Y2FzZSI8c3R5bGUiOlV0PSEwLG5uPSEwO2JyZWFrO2Nhc2Ui''@;'; put 'put ''PC9zdHlsZSI6VXQ9ITEsbm49ITE7YnJlYWs7Y2FzZSI8bG5SZWYiOmNhc2UiPGZpbGxSZWYiOmNhc2UiPGVmZmVjdFJlZiI6Y2FzZSI8Zm9udFJlZiI6YnJlYWs7Y2FzZSI8L2ZpbGxSZWYiOiFubiYmInNoYXBlIj09WWUmJihPbi5zLmZnQ29sb3I9eXIpLHlyPXt9O2JyZWFrO2Nhc2UiPC9m''@;'; put 'put ''b250UmVmIjohbm4mJiJzaGFwZSI9PVllJiYoT24ucy5jb2xvcj15cikseXI9e307YnJlYWs7Y2FzZSI8c2NoZW1lQ2xyIjp2YXIgb2k9e2JnMToibHQxIixiZzI6Imx0MiIsdHgxOiJkazEiLHR4MjoiZGsyIn1benIudmFsXXx8enIudmFsLGNyPSgod2UudGhlbWVFbGVtZW50c3x8e30pLmNs''@;'; put 'put ''clNjaGVtZXx8W10pLmZpbmQoZnVuY3Rpb24odjApe3JldHVybiB2MC5uYW1lPT1vaX0pO2NyP3lyLnJnYj1jci5yZ2I6Q249ITA7YnJlYWs7Y2FzZSI8c2NyZ2JDbHIiOkNuPSEwO2JyZWFrO2Nhc2UiPHNyZ2JDbHIiOnlyLnJnYj16ci52YWwuc2xpY2UoLTYpO2JyZWFrO2Nhc2UiPGhzbENs''@;'; put 'put ''ciI6Y2FzZSI8c3lzQ2xyIjpjYXNlIjxwcnN0Q2xyIjpDbj0hMDticmVhaztjYXNlIjxjaGFydCI6UG49RmUuY2hhcnRzO3ZhciBkaT16ci5pZDtjYXNlIjxibGlwIjpQbnx8KFBuPUZlLmltYWdlcyxkaT16ci5lbWJlZCksUG4ucHVzaCh7QW5jaG9yOk10LFRhcmdldDooaWVbIiFpZCJdW2Rp''@;'; put 'put ''XXx8e30pLlRhcmdldH0pLHpyLmxpbmsmJihQbltQbi5sZW5ndGgtMV0uTGluaz0oaWVbIiFpZCJdW3pyLmxpbmtdfHx7fSkuVGFyZ2V0KTticmVhaztjYXNlIjxncnBTcFByIjpVdD0hMDticmVhaztjYXNlIjwvZ3JwU3BQciI6VXQ9ITE7YnJlYWs7Y2FzZSI8bnZHcnBTcFByIjpVdD0hMDti''@;'; put 'put ''cmVhaztjYXNlIjwvbnZHcnBTcFByIjpVdD0hMTticmVhaztjYXNlIjxzcFByIjpVdD0hMDticmVhaztjYXNlIjwvc3BQciI6VXQ9ITE7YnJlYWs7Y2FzZSI8c3RyZXRjaCI6Y2FzZSI8L3N0cmV0Y2giOmNhc2UiPGZpbGxSZWN0IjpjYXNlIjxudkdyYXBoaWNGcmFtZVByIjpjYXNlIjwvbnZH''@;'; put 'put ''cmFwaGljRnJhbWVQciI6Y2FzZSI8Y052R3JhcGhpY0ZyYW1lUHIiOmNhc2UiPC9jTnZHcmFwaGljRnJhbWVQciI6Y2FzZSI8Z3JhcGhpY0ZyYW1lTG9ja3MiOmNhc2UiPG52UGljUHIiOmNhc2UiPC9udlBpY1ByIjpjYXNlIjxjTnZQaWNQciI6Y2FzZSI8L2NOdlBpY1ByIjpjYXNlIjxwaWNM''@;'; put 'put ''b2NrcyI6Y2FzZSI8Y052R3JwU3BQciI6Y2FzZSI8L2NOdkdycFNwUHIiOmNhc2UiPGdycFNwTG9ja3MiOmNhc2UiPG52U3BQciI6Y2FzZSI8L252U3BQciI6Y2FzZSI8Y052U3BQciI6Y2FzZSI8L2NOdlNwUHIiOmNhc2UiPHNwTG9ja3MiOmJyZWFrO2Nhc2UiPGNOdlByIjpVdD0hMDticmVh''@;'; put 'put ''aztjYXNlIjwvY052UHIiOlV0PSExO2JyZWFrO2Nhc2UiPGN4blNwIjpVdD0hMDticmVhaztjYXNlIjwvY3huU3AiOlV0PSExO2JyZWFrO2Nhc2UiPGNOdkN4blNwUHIiOlV0PSEwO2JyZWFrO2Nhc2UiPC9jTnZDeG5TcFByIjpVdD0hMTticmVhaztjYXNlIjxudkN4blNwUHIiOmNhc2UiPC9u''@;'; put 'put ''dkN4blNwUHIiOmJyZWFrO2Nhc2UiPGV4dExzdCI6VXQ9ITAsbm49ITA7YnJlYWs7Y2FzZSI8L2V4dExzdCI6VXQ9ITEsbm49ITE7YnJlYWs7Y2FzZSI8L2V4dCI6YnJlYWs7ZGVmYXVsdDppZihaZSYmWmUuV1RGJiYhVXQpdGhyb3cgbmV3IEVycm9yKCJ1bnJlY29nbml6ZWQgIit6clswXSsi''@;'; put 'put ''IGluIGRyYXdpbmciKX1yZXR1cm4iPC8iPT1xci5zbGljZSgwLDIpP1RuLnBvcCgpOiIvPiIhPWFyLnNsaWNlKGFyLmxlbmd0aC0yKSYmVG4ucHVzaChxciksIiJ9KX0pLEZlfShVbihYLFllLCEwKSxQdChVbihYLE10LCEwKSxZZSksMCxqZSx4ZSk7aWYoeHQpe2lmKHh0LmNoYXJ0cylmb3Io''@;'; put 'put ''dmFyIFJ0PTA7UnQ8eHQuY2hhcnRzLmxlbmd0aDsrK1J0KXt2YXIgVXQ9eHQuY2hhcnRzW1J0XSxubj11bihVdC5UYXJnZXQsWWUpLENuPUl0KG5uKSxEdD0iY2hhcnQiPT1pZSYmMD09UnQsenQ9QngoVW4oWCxubiwhMCksMCwwLFB0KFVuKFgsQ24sITApLG5uKSwwLER0P0g6bnVsbCxVdCxE''@;'; put 'put ''dD9udWxsOkgpO0R0fHwoSFsiIWNoYXJ0cyJdfHwoSFsiIWNoYXJ0cyJdPVtdKSxIWyIhY2hhcnRzIl0ucHVzaCh6dCkpfWlmKHhlLmJvb2tJbWFnZXMmJnh0LmltYWdlcylmb3IodmFyIFBuPTA7UG48eHQuaW1hZ2VzLmxlbmd0aDsrK1BuKXt2YXIgVG49eHQuaW1hZ2VzW1BuXSxPbj17IiF0''@;'; put 'put ''eXBlIjoiaW1hZ2UiLCIhcG9zIjokOChUbi5BbmNob3IpLCIhcG9zVHlwZSI6VG4uQW5jaG9yLnR5cGUucmVwbGFjZSgvQW5jaG9yLywiIiksIiFhYnNwb3MiOnlmKFRuLkFuY2hvcixIKSwiIXJlbHBvcyI6T2IoVG4uQW5jaG9yLEgpfTtpZihUbi5UYXJnZXQmJihPblsiIXBhdGgiXT11bihU''@;'; put 'put ''bi5UYXJnZXQsWWUpLE9uWyIhZGF0YSJdPXNuKFgsT25bIiFwYXRoIl0pLE9uWyIhZGF0YXR5cGUiXT0ic3RyaW5nIj09dHlwZW9mIE9uWyIhZGF0YSJdPyJiaW5hcnkiOiJidWZmZXIiKSxUbi5MaW5rJiYoT25bIiFkYXRhdHlwZSJdfHwoT25bIiFkYXRhdHlwZSJdPSJyZW1vdGUiKSxPblsi''@;'; put 'put ''IWxpbmsiXT1Ubi5MaW5rKSwhT25bIiFkYXRhdHlwZSJdKXRocm93IkltYWdlIGRhdGEgY2Fubm90IGJlIGZvdW5kIjtIWyIhaW1hZ2VzIl18fChIWyIhaW1hZ2VzIl09W10pLEhbIiFpbWFnZXMiXS5wdXNoKE9uKX12YXIgWW4sTXI7aWYoeHQuc2hhcGVzKWZvcih2YXIgeXI9MDt5cjx4dC5z''@;'; put 'put ''aGFwZXMubGVuZ3RoOysreXIpTXI9eyIhdHlwZSI6InNoYXBlIiwiIXBvcyI6eWYoKFluPXh0LnNoYXBlc1t5cl0pLkFuY2hvcixIKSwiIXBvc1R5cGUiOlluLkFuY2hvci50eXBlLnJlcGxhY2UoL0FuY2hvci8sIiIpLCIhYWJzcG9zIjp5ZihZbi5BbmNob3IsSCksIiFyZWxwb3MiOk9iKFlu''@;'; put 'put ''LkFuY2hvcixIKX0sWyJ2IiwiIXNoYXBlIiwicyIsIlIiXS5mb3JFYWNoKGFpKSxIWyIhc2hhcGVzIl18fChIWyIhc2hhcGVzIl09W10pLEhbIiFzaGFwZXMiXS5wdXNoKE1yKX19ZnVuY3Rpb24gYWkoYXIpe1luW2FyXSYmKE1yW2FyXT1Zblthcl0pfX0obm4samUsSCxpZSxZZSwwLDAseHQp''@;'; put 'put ''O3ZhciBDbj1bXTtyZXR1cm4gRmUmJkZlW3dlXSYmb24oRmVbd2VdKS5mb3JFYWNoKGZ1bmN0aW9uKER0KXtpZihGZVt3ZV1bRHRdLlR5cGU9PWR0LkNNTlQpe3ZhciB6dD11bihGZVt3ZV1bRHRdLlRhcmdldCxpZSk7aWYoIShDbj1mdW5jdGlvbiBrUChILGllLFgpe3JldHVybiIuYmluIj09''@;'; put 'put ''PWllLnNsaWNlKC00KT9mdW5jdGlvbiBZYihILGllKXt2YXIgWD1bXSx3ZT1bXSx4ZT17fSxGZT0hMTtyZXR1cm4gSDEoSCxmdW5jdGlvbihqZSxZZSxNdCl7c3dpdGNoKE10KXtjYXNlIDYzMjp3ZS5wdXNoKGplKTticmVhaztjYXNlIDYzNTp4ZT1qZTticmVhaztjYXNlIDYzNzp4ZS50PWpl''@;'; put 'put ''LnQseGUuaD1qZS5oLHhlLnI9amUucjticmVhaztjYXNlIDYzNjppZih4ZS5hdXRob3I9d2VbeGUuaWF1dGhvcl0sZGVsZXRlIHhlLmlhdXRob3IsaWUuc2hlZXRSb3dzJiZ4ZS5yZngmJmllLnNoZWV0Um93czw9eGUucmZ4LnIpYnJlYWs7eGUudHx8KHhlLnQ9IiIpLGRlbGV0ZSB4ZS5yZngs''@;'; put 'put ''WC5wdXNoKHhlKTticmVhaztjYXNlIDMwNzI6Y2FzZSAzNzpjYXNlIDM4OmJyZWFrO2Nhc2UgMzU6RmU9ITA7YnJlYWs7Y2FzZSAzNjpGZT0hMTticmVhaztkZWZhdWx0OmlmKCEoKFllfHwiIikuaW5kZXhPZigiQmVnaW4iKT4wKSYmISgoWWV8fCIiKS5pbmRleE9mKCJFbmQiKT4wKSYmKCFG''@;'; put 'put ''ZXx8aWUuV1RGKSl0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgcmVjb3JkICIrTXQrIiAiK1llKX19KSxYfShILFgpOmZ1bmN0aW9uIFBFKEgsaWUpe2lmKEgubWF0Y2goLzwoPzpcdys6KT9jb21tZW50cyAqXC8+LykpcmV0dXJuW107dmFyIFg9W10sd2U9W10seGU9SC5tYXRjaCgvPCg/''@;'; put 'put ''Olx3KzopP2F1dGhvcnM+KFtcc1xTXSopPFwvKD86XHcrOik/YXV0aG9ycz4vKTt4ZSYmeGVbMV0mJnhlWzFdLnNwbGl0KC88XC9cdyo6P2F1dGhvcj4vKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXtpZigiIiE9PVplJiYiIiE9PVplLnRyaW0oKSl7dmFyIGplPVplLm1hdGNoKC88KD86XHcrOik/''@;'; put 'put ''YXV0aG9yW14+XSo+KC4qKS8pO2plJiZYLnB1c2goamVbMV0pfX0pO3ZhciBGZT1ILm1hdGNoKC88KD86XHcrOik/Y29tbWVudExpc3Q+KFtcc1xTXSopPFwvKD86XHcrOik/Y29tbWVudExpc3Q+Lyk7cmV0dXJuIEZlJiZGZVsxXSYmRmVbMV0uc3BsaXQoLzxcL1x3Kjo/Y29tbWVudD4vKS5m''@;'; put 'put ''b3JFYWNoKGZ1bmN0aW9uKFplKXtpZigiIiE9PVplJiYiIiE9PVplLnRyaW0oKSl7dmFyIGplPVplLm1hdGNoKC88KD86XHcrOik/Y29tbWVudFtePl0qPi8pO2lmKGplKXt2YXIgWWU9ZW4oamVbMF0pLE10PXthdXRob3I6WWUuYXV0aG9ySWQmJlhbWWUuYXV0aG9ySWRdfHwic2hlZXRqc2do''@;'; put 'put ''b3N0IixyZWY6WWUucmVmLGd1aWQ6WWUuZ3VpZH0seHQ9dWwoWWUucmVmKTtpZighKGllLnNoZWV0Um93cyYmaWUuc2hlZXRSb3dzPD14dC5yKSl7dmFyIFJ0PVplLm1hdGNoKC88KD86XHcrOik/dGV4dD4oW1xzXFNdKik8XC8oPzpcdys6KT90ZXh0Pi8pLFV0PSEhUnQmJiEhUnRbMV0mJiR1''@;'; put 'put ''KFJ0WzFdKXx8e3I6IiIsdDoiIixoOiIifTtNdC5yPVV0LnIsIjx0PjwvdD4iPT1VdC5yJiYoVXQudD1VdC5oPSIiKSxNdC50PShVdC50fHwiIikucmVwbGFjZSgvXHJcbi9nLCJcbiIpLnJlcGxhY2UoL1xyL2csIlxuIiksaWUuY2VsbEhUTUwmJihNdC5oPVV0LmgpLHdlLnB1c2goTXQpfX19''@;'; put 'put ''fSksd2V9KEgsWCl9KHNuKEgsenQsITApLHp0LFllKSl8fCFDbi5sZW5ndGgpcmV0dXJuOyFmdW5jdGlvbiBXOShILGllKXt2YXIgd2UsWD1BcnJheS5pc0FycmF5KEgpO2llLmZvckVhY2goZnVuY3Rpb24oeGUpe3ZhciBGZT11bCh4ZS5yZWYpO2lmKFg/KEhbRmUucl18fChIW0ZlLnJdPVtd''@;'; put 'put ''KSx3ZT1IW0ZlLnJdW0ZlLmNdKTp3ZT1IW3hlLnJlZl0sIXdlKXt3ZT17dDoieiJ9LFg/SFtGZS5yXVtGZS5jXT13ZTpIW3hlLnJlZl09d2U7dmFyIFplPUZvKEhbIiFyZWYiXXx8IkJEV0dPMTAwMDAwMTpBMSIpO1plLnMucj5GZS5yJiYoWmUucy5yPUZlLnIpLFplLmUucjxGZS5yJiYoWmUu''@;'; put 'put ''ZS5yPUZlLnIpLFplLnMuYz5GZS5jJiYoWmUucy5jPUZlLmMpLFplLmUuYzxGZS5jJiYoWmUuZS5jPUZlLmMpO3ZhciBqZT1mYShaZSk7amUhPT1IWyIhcmVmIl0mJihIWyIhcmVmIl09amUpfXdlLmN8fCh3ZS5jPVtdKTt2YXIgWWU9e2E6eGUuYXV0aG9yLHQ6eGUudCxyOnhlLnJ9O1llLnIm''@;'; put 'put ''JiJzdHJpbmciPT10eXBlb2YgWWUuciYmKFllLlI9VzgoWWUucikpLHhlLmgmJihZZS5oPXhlLmgpLHdlLmMucHVzaChZZSl9KX0obm4sQ24pfX0pLGZ1bmN0aW9uIG1UKEgsaWUsWCx3ZSx4ZSxGZSxaZSl7IUh8fCFIWyIhdGFibGVyZWZzIl18fCFYfHwhWFsiIWlkIl18fChIWyIhdGFibGVz''@;'; put 'put ''Il09W10sSFsiIXRhYmxlcmVmcyJdLmZvckVhY2goZnVuY3Rpb24oamUpe3ZhciBZZT1YWyIhaWQiXVtqZV07aWYoWWUmJlllLlRhcmdldCl7dmFyIE10PXVuKFllLlRhcmdldCx3ZSk7dm9pZCAwIT09ejkmJno5KHNuKGllLE10LCEwKSxILHhlLDAsWmUpfX0pLGRlbGV0ZSBIWyIhdGFibGVy''@;'; put 'put ''ZWZzIl0pfShubixILEZlW3dlXSxpZSxSdCwwLFllKSwidW5kZWZpbmVkIiE9dHlwZW9mIHBhcnNlX3NoZWV0X3Bpdm90JiZENS5wdXNoKFtubixILEZlW3dlXSxpZSx7U2hlZXRzOlplfSxSdCxZZV0pLGZ1bmN0aW9uIFlQKEgsaWUsWCx3ZSx4ZSxGZSxaZSxqZSl7aWYoSCYmSFsiIWxlZ2Ry''@;'; put 'put ''YXdlbCJdKXt2YXIgWWU9dW4oSFsiIWxlZ2RyYXdlbCJdLlRhcmdldCx3ZSksTXQ9VW4oWCxZZSwhMCk7TXQmJmZ1bmN0aW9uIGpiKEgsaWUsWCl7dmFyIHdlPTA7KEgubWF0Y2gocEIpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih4ZSl7dmFyIFBuLFRuLE9uLFluLE1yLGFpLHlyLGFyLEZlPSIi''@;'; put 'put ''LFplPSEwLGplPSIiLFllPS0xLE10PXt9LHh0PXt9LFJ0PXt9LFV0PS0xLG5uPS0xLENuPSIiLER0PSIiLHp0PSIiLEdyPSExLHpyPSExO3N3aXRjaCh4ZS5yZXBsYWNlKEd0LGZ1bmN0aW9uKGNyLGRpKXt2YXIgdjA9ZW4oY3IpO3N3aXRjaChJbih2MFswXSkpe2Nhc2UiPHNoYXBlIjp2MC5m''@;'; put 'put ''aWxsY29sb3ImJihNdC5jb2xvcjE9djAuZmlsbGNvbG9yKSx2MC5zdHJva2Vjb2xvciYmKFJ0LmNvbG9yPXYwLnN0cm9rZWNvbG9yKTticmVhaztjYXNlIjxmaWxsIjpjYXNlIjxmaWxsPiI6Ijx2OmZpbGwiPT12MFswXSYmKHYwLmNvbG9yMiYmKE10LmNvbG9yMj12MC5jb2xvcjIpLHYwLnR5''@;'; put 'put ''cGUmJihNdC50eXBlPXYwLnR5cGUpKTticmVhaztjYXNlIjwvZmlsbD4iOmNhc2UiPGxvY2siOmNhc2UiPGxvY2svPiI6YnJlYWs7Y2FzZSI8c2hhZG93Ijp2MC5jb2xvciYmKHh0LmNvbG9yPXYwLmNvbG9yKSx2MC5vbiYmKHh0Lm9uPXYwLm9uKTticmVhaztjYXNlIjxDbGllbnREYXRhIjp2''@;'; put 'put ''MC5PYmplY3RUeXBlJiYoRmU9djAuT2JqZWN0VHlwZSk7YnJlYWs7Y2FzZSI8VmlzaWJsZSI6Y2FzZSI8VmlzaWJsZS8+IjpaZT0hMTticmVhaztjYXNlIjxBbmNob3IiOmNhc2UiPEFuY2hvcj4iOmNhc2UiPFJvdyI6Y2FzZSI8Um93PiI6Y2FzZSI8Q29sdW1uIjpjYXNlIjxDb2x1bW4+Ijpj''@;'; put 'put ''YXNlIjxGbWxhTWFjcm8iOmNhc2UiPEZtbGFNYWNybz4iOmNhc2UiPEZtbGFMaW5rIjpjYXNlIjxGbWxhTGluaz4iOmNhc2UiPEZtbGFSYW5nZSI6Y2FzZSI8Rm1sYVJhbmdlPiI6Y2FzZSI8U2VsVHlwZSI6Y2FzZSI8U2VsVHlwZT4iOmNhc2UiPFZhbCI6Y2FzZSI8VmFsPiI6Y2FzZSI8TWlu''@;'; put 'put ''IjpjYXNlIjxNaW4+IjpjYXNlIjxNYXgiOmNhc2UiPE1heD4iOmNhc2UiPEluYyI6Y2FzZSI8SW5jPiI6Y2FzZSI8UGFnZSI6Y2FzZSI8UGFnZT4iOmNhc2UiPENoZWNrZWQiOmNhc2UiPENoZWNrZWQ+IjpjYXNlIjx0ZXh0Ym94IjpjYXNlIjx0ZXh0Ym94PiI6WWU9ZGkrY3IubGVuZ3RoO2Jy''@;'; put 'put ''ZWFrO2Nhc2UiPC9BbmNob3I+IjpqZT14ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9Sb3c+IjpVdD0reGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvQ29sdW1uPiI6bm49K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0ZtbGFNYWNybz4i''@;'; put 'put ''OkNuPXhlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0ZtbGFMaW5rPiI6RHQ9eGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvRm1sYVJhbmdlPiI6eXI9eGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvU2VsVHlwZT4iOmFyPXhlLnNsaWNlKFll''@;'; put 'put ''LGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L1ZhbD4iOlBuPSt4ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9NaW4+IjpUbj0reGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvTWF4PiI6T249K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0lu''@;'; put 'put ''Yz4iOlluPSt4ZS5zbGljZShZZSxkaSkudHJpbSgpO2JyZWFrO2Nhc2UiPC9QYWdlPiI6TXI9K3hlLnNsaWNlKFllLGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8L0NoZWNrZWQ+IjphaT0reGUuc2xpY2UoWWUsZGkpLnRyaW0oKTticmVhaztjYXNlIjwvdGV4dGJveD4iOnp0PXhlLnNsaWNlKFll''@;'; put 'put ''LGRpKS50cmltKCk7YnJlYWs7Y2FzZSI8TW92ZVdpdGhDZWxscy8+IjpjYXNlIjxNb3ZlV2l0aENlbGxzPiI6R3I9ITA7YnJlYWs7Y2FzZSI8U2l6ZVdpdGhDZWxscy8+IjpjYXNlIjxTaXplV2l0aENlbGxzPiI6enI9ITB9cmV0dXJuIiJ9KSxGZSl7Y2FzZSJOb3RlIjp2YXIgcXI9YWMuc2hl''@;'; put 'put ''ZXRfZ2V0X2NlbGwoaWUsVXQ+PTAmJm5uPj0wP1kwKHtyOlV0LGM6bm59KTpYW3dlXS5yZWYpO3FyLmMmJihxci5jLmhpZGRlbj1aZSxqZSYmKHFyLmMucmF3YW5jaG9yPWplLERFKGplLHFyLmMpLGhCKHFyLmNbIiFwb3MiXSwyKiEhR3IrISF6cixpZSkpLE10LmNvbG9yMSYmKHFyLmMuZmls''@;'; put 'put ''bD1NdCkseHQuY29sb3ImJihxci5jLnNoYWRvdz14dCksUnQuY29sb3ImJihxci5jLnN0cm9rZT1SdCkpLCsrd2U7YnJlYWs7Y2FzZSJCdXR0b24iOmNhc2UiR0JveCI6Y2FzZSJEcm9wIjpjYXNlIkxhYmVsIjpjYXNlIkNoZWNrYm94IjpjYXNlIlNjcm9sbCI6Y2FzZSJMaXN0IjpjYXNlIlJh''@;'; put 'put ''ZGlvIjpjYXNlIlNwaW4iOmNhc2UiRWRpdCI6aWVbIiFjb250cm9scyJdfHwoaWVbIiFjb250cm9scyJdPVtdKTt2YXIgb2k9eyIhdHlwZSI6RmV9O2plJiZERShqZSxvaSksQ24mJihvaS5tYWNybz1Dbi5yZXBsYWNlKCJbMF0hIiwiIikpLER0JiYob2kubGluaz1EdCksIlNjcm9sbCI9PUZl''@;'; put 'put ''fHwiU3BpbiI9PUZlPyhudWxsPT1QbiYmKFBuPTApLG51bGw9PVRuJiYoVG49MCksbnVsbD09T24mJihPbj0zZTQpLG51bGw9PVluJiYoWW49MSksIlNjcm9sbCI9PUZlJiZudWxsPT1NciYmKE1yPTEwKSk6IlJhZGlvIj09RmV8fCJDaGVja2JveCI9PUZlPyhudWxsPT1haSYmKGFpPTApLFBu''@;'; put 'put ''PWFpKTooIkxpc3QiPT1GZXx8IkRyb3AiPT1GZSkmJihudWxsIT15ciYmKG9pLnJlZj15ciksbnVsbD09YXImJihhcj0iU2luZ2xlIiksIkxpc3QiPT1GZSYmKG9pLnNlbD1hcikpLG51bGwhPVBuJiYob2kudmFsPVBuKSxudWxsIT1UbiYmKG9pLm1pbj1UbiksbnVsbCE9T24mJihvaS5tYXg9''@;'; put 'put ''T24pLG51bGwhPVluJiYob2kuc3RlcD1ZbiksbnVsbCE9TXImJihvaS5wYWdlPU1yKSx6dCYmKG9pLnQ9enQucmVwbGFjZSgvXHMqPFtcc1xTXSo/PlxzKi9nLCIiKSksaWVbIiFjb250cm9scyJdLnB1c2gob2kpfX0pfShXMChNdCksSCxqZXx8W10pLEhbIiFMRFAiXT1ZZSxIWyIhY3RybGlk''@;'; put 'put ''Il0mJkhbIiFjdHJsaWQiXS5mb3JFYWNoKGZ1bmN0aW9uKHh0KXtpZih4dC5yZWwmJnh0LnJlbC5UYXJnZXQpe3ZhciBSdD11bih4dC5yZWwuVGFyZ2V0LHdlKTt4dC5wYXRoPVJ0LGRlbGV0ZSB4dC5yZWx9fSl9fShubiwwLEgsaWUsMCwwLDAsQ24pLG5ufWNhdGNoKER0KXtpZihZZS5XVEYp''@;'; put 'put ''dGhyb3cgRHR9fWZ1bmN0aW9uIGgxKEgpe3JldHVybiIvIj09SC5jaGFyQXQoMCk/SC5zbGljZSgxKTpIfWZ1bmN0aW9uIEttKEgsaWUpe2lmKEQ1PVtdLE1mKGllPWllfHx7fSksS24oSCwiTUVUQS1JTkYvbWFuaWZlc3QueG1sIil8fEtuKEgsIm9iamVjdGRhdGEueG1sIikpcmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uIG9DKEgsaWUpe2llPWllfHx7fSxLbihILCJNRVRBLUlORi9tYW5pZmVzdC54bWwiKSYmZnVuY3Rpb24gUGkoSCxpZSl7Zm9yKHZhciB3ZSx4ZSxYPUM1KEgpO3dlPU5oLmV4ZWMoWCk7KXN3aXRjaCh3ZVszXSl7Y2FzZSJtYW5pZmVzdCI6YnJlYWs7Y2FzZSJmaWxlLWVudHJ5Ijpp''@;'; put 'put ''ZigiLyI9PSh4ZT1lbih3ZVswXSwhMSkpLnBhdGgmJiJhcHBsaWNhdGlvbi92bmQub2FzaXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0IiE9PXhlLnR5cGUpdGhyb3cgbmV3IEVycm9yKCJUaGlzIE9wZW5Eb2N1bWVudCBpcyBub3QgYSBzcHJlYWRzaGVldCIpO2JyZWFrO2Nhc2UiZW5jcnlw''@;'; put 'put ''dGlvbi1kYXRhIjpjYXNlImFsZ29yaXRobSI6Y2FzZSJzdGFydC1rZXktZ2VuZXJhdGlvbiI6Y2FzZSJrZXktZGVyaXZhdGlvbiI6dGhyb3cgbmV3IEVycm9yKCJVbnN1cHBvcnRlZCBPRFMgRW5jcnlwdGlvbiIpO2RlZmF1bHQ6aWYoaWUmJmllLldURil0aHJvdyB3ZX19KHNuKEgsIk1FVEEt''@;'; put 'put ''SU5GL21hbmlmZXN0LnhtbCIpLGllKTt2YXIgWD1VbihILCJjb250ZW50LnhtbCIpO2lmKCFYKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyBjb250ZW50LnhtbCBpbiBPRFMgLyBVT0YgZmlsZSIpO3ZhciB3ZT1pQyhXMChYKSxpZSk7cmV0dXJuIEtuKEgsIm1ldGEueG1sIikmJih3ZS5Qcm9w''@;'; put 'put ''cz1scyhzbihILCJtZXRhLnhtbCIpKSksd2V9KEgsaWUpO2lmKEtuKEgsIkluZGV4L0RvY3VtZW50Lml3YSIpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgTlVNQkVSUyBmaWxlIik7dmFyIEZlLFplLFg9ZnVuY3Rpb24gdG4oSCl7Zm9yKHZhciBpZT1ILkZ1bGxQYXRoc3x8b24oSC5m''@;'; put 'put ''aWxlcyksWD1bXSx3ZT0wO3dlPGllLmxlbmd0aDsrK3dlKSIvIiE9aWVbd2VdLnNsaWNlKC0xKSYmWC5wdXNoKGllW3dlXSk7cmV0dXJuIFguc29ydCgpfShIKSx3ZT1mdW5jdGlvbiBpYihIKXt2YXIgaWU9e3dvcmtib29rczpbXSxzaGVldHM6W10sY2hhcnRzOltdLGRpYWxvZ3M6W10sbWFj''@;'; put 'put ''cm9zOltdLHJlbHM6W10sc3RyczpbXSxjb21tZW50czpbXSxsaW5rczpbXSxjb3JlcHJvcHM6W10sZXh0cHJvcHM6W10sY3VzdHByb3BzOltdLHRoZW1lczpbXSxzdHlsZXM6W10sY2FsY2NoYWluczpbXSx2YmE6W10sZHJhd2luZ3M6W10scGl2b3RzOltdLHBpdm90Y2FjaGVzOltdLHBpdm90''@;'; put 'put ''cmVjb3JkczpbXSxkYXRhbW9kZWxzOltdLGNoYXJ0b2JqczpbXSxjaGFydHN0eWxlczpbXSxjaGFydGNvbG9yczpbXSxjaGFydGV4czpbXSx0YWJsZXM6W10sY29ubnM6W10sY3RybHByb3BzOltdLGN1c3RvbXhtbHByb3BzOltdLFRPRE86W10seG1sbnM6IiJ9O2lmKCFIfHwhSC5tYXRjaCly''@;'; put 'put ''ZXR1cm4gaWU7dmFyIFg9e307aWYoKEgubWF0Y2goR3QpfHxbXSkuZm9yRWFjaChmdW5jdGlvbih3ZSl7dmFyIHhlPWVuKHdlKTtzd2l0Y2goeGVbMF0ucmVwbGFjZShrbiwiPCIpKXtjYXNlIjw/eG1sIjpicmVhaztjYXNlIjxUeXBlcyI6aWUueG1sbnM9eGVbInhtbG5zIisoeGVbMF0ubWF0''@;'; put 'put ''Y2goLzwoXHcrKTovKXx8WyIiLCIiXSlbMV1dO2JyZWFrO2Nhc2UiPERlZmF1bHQiOlhbeGUuRXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCldPXhlLkNvbnRlbnRUeXBlO2JyZWFrO2Nhc2UiPE92ZXJyaWRlIjp2b2lkIDAhPT1pZVt2ZFt4ZS5Db250ZW50VHlwZV1dJiZpZVt2ZFt4ZS5Db250ZW50''@;'; put 'put ''VHlwZV1dLnB1c2goeGUuUGFydE5hbWUpfX0pLGllLnhtbG5zIT09WDAuQ1QpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIE5hbWVzcGFjZTogIitpZS54bWxucyk7cmV0dXJuIGllLmNhbGNjaGFpbj1pZS5jYWxjY2hhaW5zLmxlbmd0aD4wP2llLmNhbGNjaGFpbnNbMF06IiIsaWUuc3N0PWll''@;'; put 'put ''LnN0cnMubGVuZ3RoPjA/aWUuc3Ryc1swXToiIixpZS5zdHlsZT1pZS5zdHlsZXMubGVuZ3RoPjA/aWUuc3R5bGVzWzBdOiIiLGllLmNvbm49aWUuY29ubnMubGVuZ3RoPjA/aWUuY29ubnNbMF06IiIsaWUuZGVmYXVsdHM9WCxkZWxldGUgaWUuY2FsY2NoYWlucyxpZX0oVW4oSCwiW0NvbnRl''@;'; put 'put ''bnRfVHlwZXNdLnhtbCIpKSx4ZT0hMTtpZigwPT09d2Uud29ya2Jvb2tzLmxlbmd0aCYmc24oSCxaZT0ieGwvd29ya2Jvb2sueG1sIiwhMCkmJndlLndvcmtib29rcy5wdXNoKFplKSwwPT09d2Uud29ya2Jvb2tzLmxlbmd0aCl7aWYoIXNuKEgsWmU9InhsL3dvcmtib29rLmJpbiIsITApKXRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgd29ya2Jvb2siKTt3ZS53b3JrYm9va3MucHVzaChaZSkseGU9ITB9ImJpbiI9PXdlLndvcmtib29rc1swXS5zbGljZSgtMykmJih4ZT0hMCk7dmFyIGplPXt9LFllPXt9O2lmKCFpZS5ib29rU2hlZXRzJiYhaWUuYm9va1Byb3BzKXtpZihP''@;'; put 'put ''ZD1bXSx3ZS5zc3QpdHJ5e09kPWZ1bmN0aW9uIENQKEgsaWUsWCl7cmV0dXJuIi5iaW4iPT09aWUuc2xpY2UoLTQpP2Z1bmN0aW9uIHhoKEgsaWUpe3ZhciBYPVtdLHdlPSExO3JldHVybiBIMShILGZ1bmN0aW9uKEZlLFplLGplKXtzd2l0Y2goamUpe2Nhc2UgMTU5OlguQ291bnQ9RmVbMF0s''@;'; put 'put ''WC5VbmlxdWU9RmVbMV07YnJlYWs7Y2FzZSAxOTpYLnB1c2goRmUpO2JyZWFrO2Nhc2UgMTYwOnJldHVybiEwO2Nhc2UgMzU6d2U9ITA7YnJlYWs7Y2FzZSAzNjp3ZT0hMTticmVhaztkZWZhdWx0OmlmKFplLmluZGV4T2YoIkJlZ2luIik+MHx8WmUuaW5kZXhPZigiRW5kIiksIXdlfHxpZS5X''@;'; put 'put ''VEYpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK2plKyIgIitaZSl9fSksWH0oSCxYKTpmdW5jdGlvbiBXbyhILGllKXt2YXIgWD1bXSx3ZT0iIjtpZighSClyZXR1cm4gWDt2YXIgeGU9SC5tYXRjaChrYSk7aWYoeGUpe3dlPXhlWzJdLnJlcGxhY2UoeTMsIiIpLnNwbGl0''@;'; put 'put ''KFFmKTtmb3IodmFyIEZlPTA7RmUhPXdlLmxlbmd0aDsrK0ZlKXt2YXIgWmU9JHUod2VbRmVdLnRyaW0oKSxpZSk7bnVsbCE9WmUmJihYW1gubGVuZ3RoXT1aZSl9eGU9ZW4oeGVbMV0pLFguQ291bnQ9eGUuY291bnQsWC5VbmlxdWU9eGUudW5pcXVlQ291bnR9cmV0dXJuIFh9KEgsWCl9KHNu''@;'; put 'put ''KEgsaDEod2Uuc3N0KSksd2Uuc3N0LGllKX1jYXRjaChoaSl7aWYoaWUuV1RGKXRocm93IGhpfWllLmNlbGxTdHlsZXMmJndlLnRoZW1lcy5sZW5ndGgmJihqZT1mdW5jdGlvbiBReChILGllLFgpe3JldHVybiBIOShILFgpfShVbihILHdlLnRoZW1lc1swXS5yZXBsYWNlKC9eXC8vLCIiKSwh''@;'; put 'put ''MCl8fCIiLDAsaWUpKSx3ZS5zdHlsZSYmKFllPWZ1bmN0aW9uIF9QKEgsaWUsWCx3ZSl7cmV0dXJuIi5iaW4iPT09aWUuc2xpY2UoLTQpP2Z1bmN0aW9uIENFKEgsaWUsWCl7dmFyIHdlPXtOdW1iZXJGbXQ6W119O2Zvcih2YXIgeGUgaW4gRi5fdGFibGUpd2UuTnVtYmVyRm10W3hlXT1GLl90''@;'; put 'put ''YWJsZVt4ZV07d2UuQ2VsbFhmPVtdLHdlLkZvbnRzPVtdLHdlLkZpbGxzPVtdLHdlLkJvcmRlcnM9W107dmFyIEZlPVtdLFplPSExO3JldHVybiBIMShILGZ1bmN0aW9uKFllLE10LHh0KXtzd2l0Y2goeHQpe2Nhc2UgNDQ6d2UuTnVtYmVyRm10W1llWzBdXT1ZZVsxXSxGLmxvYWQoWWVbMV0s''@;'; put 'put ''WWVbMF0pO2JyZWFrO2Nhc2UgNDM6d20oWWUuY29sb3IsaWUpLHdlLkZvbnRzLnB1c2goWWUpO2JyZWFrO2Nhc2UgMTAyNTpjYXNlIDQ4OmNhc2UgNTA3OmNhc2UgNTcyOmNhc2UgNDc1OmNhc2UgMTE3MTpjYXNlIDIxMDI6Y2FzZSAxMTMwOmNhc2UgNTEyOmNhc2UgMjA5NTpjYXNlIDMwNzI6''@;'; put 'put ''YnJlYWs7Y2FzZSA0NTpZZS5mZ0NvbG9yJiZ3bShZZS5mZ0NvbG9yLGllKSxZZS5iZ0NvbG9yJiZ3bShZZS5iZ0NvbG9yLGllKSx3ZS5GaWxscy5wdXNoKFllKTticmVhaztjYXNlIDQ2OlsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0IiwiZGlhZyJdLmZvckVhY2goZnVuY3Rpb24oUnQp''@;'; put 'put ''e1llW1J0XSYmWWVbUnRdLmNvbG9yJiZ3bShZZVtSdF0uY29sb3IsaWUpfSksd2UuQm9yZGVycy5wdXNoKFllKTticmVhaztjYXNlIDQ3OiJCcnRCZWdpbkNlbGxYRnMiPT1GZVtGZS5sZW5ndGgtMV0mJndlLkNlbGxYZi5wdXNoKFllKTticmVhaztjYXNlIDM1OlplPSEwO2JyZWFrO2Nhc2Ug''@;'; put 'put ''MzY6WmU9ITE7YnJlYWs7Y2FzZSAzNzpGZS5wdXNoKE10KSxaZT0hMDticmVhaztjYXNlIDM4OkZlLnBvcCgpLFplPSExO2JyZWFrO2RlZmF1bHQ6aWYoKE10fHwiIikuaW5kZXhPZigiQmVnaW4iKT4wKUZlLnB1c2goTXQpO2Vsc2UgaWYoKE10fHwiIikuaW5kZXhPZigiRW5kIik+MClGZS5w''@;'; put 'put ''b3AoKTtlbHNlIGlmKCFaZXx8WC5XVEYmJiJCcnRBQ0JlZ2luIiE9RmVbRmUubGVuZ3RoLTFdKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIit4dCsiICIrTXQpfX0pLCh3ZS5Gb250c3x8W10pWzBdJiZTMyh3ZS5Gb250c1swXSksd2V9KEgsWCx3ZSk6QjkoSCxYLHdlKX0o''@;'; put 'put ''c24oSCxoMSh3ZS5zdHlsZSkpLHdlLnN0eWxlLGplLGllKSl9dmFyIE10PXdlLmxpbmtzLm1hcChmdW5jdGlvbihoaSl7dHJ5e3ZhciBOcj1QdChVbihILEl0KGgxKGhpKSkpLGhpKTtyZXR1cm4gZnVuY3Rpb24gSl8oSCxpZSxYLHdlKXtyZXR1cm4iLmJpbiI9PT1YLnNsaWNlKC00KT9mdW5j''@;'; put 'put ''dGlvbiB3ZihILGllLFgsd2Upe2lmKCFIKXJldHVybiBIO3ZhciB4ZT13ZXx8e30sRmU9ITE7SDEoSCxmdW5jdGlvbihZZSxNdCx4dCl7c3dpdGNoKHh0KXtjYXNlIDM1OTpjYXNlIDM2MzpjYXNlIDM2NDpjYXNlIDM2NjpjYXNlIDM2NzpjYXNlIDM2ODpjYXNlIDM2OTpjYXNlIDM3MDpjYXNl''@;'; put 'put ''IDM3MTpjYXNlIDQ3MjpjYXNlIDU3NzpjYXNlIDU3ODpjYXNlIDU3OTpjYXNlIDU4MDpjYXNlIDU4MTpjYXNlIDU4MjpjYXNlIDU4MzpjYXNlIDU4NDpjYXNlIDU4NTpjYXNlIDU4NjpjYXNlIDU4NzpicmVhaztjYXNlIDM1OkZlPSEwO2JyZWFrO2Nhc2UgMzY6RmU9ITE7YnJlYWs7ZGVmYXVs''@;'; put 'put ''dDppZighKChNdHx8IiIpLmluZGV4T2YoIkJlZ2luIik+MCkmJiEoKE10fHwiIikuaW5kZXhPZigiRW5kIik+MCkmJighRmV8fHhlLldURikpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIHJlY29yZCAiK3h0LnRvU3RyaW5nKDE2KSsiICIrTXQpfX0seGUpfShILDAsMCx3ZSk6ZnVuY3Rp''@;'; put 'put ''b24gSDQoSCxpZSxYLHdlKXt2YXIgeGU9d2V8fHt9LEZlPXtTaGVldE5hbWVzOltdLFNoZWV0czp7fX0samU9ITEsWWU9e30sTXQ9LTEseHQ9LTEsUnQ9e3M6e3I6MCxjOjB9LGU6e3I6LTEsYzotMX19LFV0PXt9LG5uPTA7cmV0dXJuKEh8fCIiKS5yZXBsYWNlKEd0LGZ1bmN0aW9uKENuLER0''@;'; put 'put ''KXt2YXIgenQ9ZW4oQ24pO3N3aXRjaChJbih6dFswXSkpe2Nhc2UiPD94bWwiOmNhc2UiPGV4dGVybmFsTGluayI6Y2FzZSI8L2V4dGVybmFsTGluaz4iOmNhc2UiPC9leHRlcm5hbEJvb2s+IjpjYXNlIjxzaGVldE5hbWVzIjpjYXNlIjxzaGVldE5hbWVzPiI6Y2FzZSI8L3NoZWV0TmFtZXM+''@;'; put 'put ''IjpjYXNlIjxzaGVldERhdGFTZXQ+IjpjYXNlIjxzaGVldERhdGFTZXQvPiI6Y2FzZSI8L3NoZWV0RGF0YVNldD4iOmNhc2UiPC9yb3c+IjpicmVhaztjYXNlIjxleHRlcm5hbEJvb2siOmNhc2UiPGV4dGVybmFsQm9vaz4iOkZlLlRhcmdldD1pZVsiIWlkIl1benQuaWRdLlRhcmdldCxGZS5N''@;'; put 'put ''aXNzaW5nPWllWyIhaWQiXVt6dC5pZF0uVHlwZT09ZHQuWE1JU1M7YnJlYWs7Y2FzZSI8c2hlZXROYW1lIjpGZS5TaGVldE5hbWVzLnB1c2goZ3IoVzAoenQudmFsKSkpO2JyZWFrO2Nhc2UiPHNoZWV0RGF0YSI6WWU9e30sRmUuU2hlZXRzW0ZlLlNoZWV0TmFtZXNbenQuc2hlZXRJZF1dPURp''@;'; put 'put ''KHp0LnJlZnJlc2hFcnJvcnx8IjAiKT9udWxsOlllO2JyZWFrO2Nhc2UiPC9zaGVldERhdGE+IjpSdC5lLmM+PTAmJihZZVsiIXJlZiJdPWZhKFJ0KSk7YnJlYWs7Y2FzZSI8cm93IjpjYXNlIjxyb3c+Ijp6dC5yP010PXBhcnNlSW50KHp0LnIsMTApLTE6TXQrKyx4dD0tMTticmVhaztjYXNl''@;'; put 'put ''IjxjZWxsIjpjYXNlIjxjZWxsPiI6enQucj94dD11bCh6dC5yKS5jOisreHQsVXQudD16dC50fHwibiIsInN0ciI9PVV0LnQmJihVdC50PSJzIik7YnJlYWs7Y2FzZSI8L2NlbGw+IjpSdC5lLnI8TXQmJihSdC5lLnI9TXQpLFJ0LmUuYzx4dCYmKFJ0LmUuYz14dCksWWVbWTAoe3I6TXQsYzp4''@;'; put 'put ''dH0pXT1VdCxVdD17fTticmVhaztjYXNlIjx2IjpjYXNlIjx2PiI6bm49Q24ubGVuZ3RoK0R0O2JyZWFrO2Nhc2UiPC92PiI6dmFyIFBuPWdyKEguc2xpY2Uobm4sRHQpKTtVdC52PSJuIj09VXQudD9wYXJzZUZsb2F0KFBuKTpQbjticmVhaztjYXNlIjx2Lz4iOlV0LnY9IiI7YnJlYWs7Y2Fz''@;'; put 'put ''ZSI8ZGVmaW5lZE5hbWVzPiI6amU9ITA7YnJlYWs7Y2FzZSI8L2RlZmluZWROYW1lcz4iOmplPSExO2JyZWFrO2RlZmF1bHQ6aWYoIWplJiZ4ZS5XVEYpdGhyb3cidW5yZWNvZ25pemVkICIrenRbMF0rIiBpbiBleHRlcm5hbCBsaW5rIn19KSxGZX0oSCxpZSwwLHdlKX0oc24oSCxoMShoaSkp''@;'; put 'put ''LE5yLGhpLGllKX1jYXRjaChraSl7fX0pLHh0PWZ1bmN0aW9uIFl4KEgsaWUsWCl7cmV0dXJuIi5iaW4iPT09aWUuc2xpY2UoLTQpP2Z1bmN0aW9uIGppKEgsaWUpe3ZhciBYPXtBcHBWZXJzaW9uOnt9LFdCUHJvcHM6e30sV0JWaWV3OltdLFNoZWV0czpbXSxDYWxjUHI6e30seG1sbnM6IiJ9''@;'; put 'put ''LHdlPVtdLHhlPSExO2llfHwoaWU9e30pLGllLmJpZmY9MTI7dmFyIEZlPVtdLFplPVtbXV07cmV0dXJuIFplLlNoZWV0TmFtZXM9W10sWmUuWFRJPVtdLHg1WzE2XT17bjoiQnJ0RlJUQXJjaElEJCIsZjpHbX0sSDEoSCxmdW5jdGlvbihZZSxNdCx4dCl7c3dpdGNoKHh0KXtjYXNlIDE1Njpa''@;'; put 'put ''ZS5TaGVldE5hbWVzLnB1c2goWWUubmFtZSksWC5TaGVldHMucHVzaChZZSk7YnJlYWs7Y2FzZSAxNTM6WC5XQlByb3BzPVllO2JyZWFrO2Nhc2UgMzk6bnVsbCE9WWUuU2hlZXQmJihpZS5TSUQ9WWUuU2hlZXQpLFllLlJlZj1XMShZZS5QdGcsbnVsbCxudWxsLFplLGllKSxkZWxldGUgaWUu''@;'; put 'put ''U0lELGRlbGV0ZSBZZS5QdGcsRmUucHVzaChZZSk7YnJlYWs7Y2FzZSAxMDM2OmNhc2UgMzYxOmNhc2UgMjA3MTpjYXNlIDE1ODpjYXNlIDE0MzpjYXNlIDY2NDpjYXNlIDM1MzpjYXNlIDMwNzI6Y2FzZSAzMDczOmNhc2UgNTM0OmNhc2UgNjc3OmNhc2UgMTU3OmNhc2UgNjEwOmNhc2UgMjA1''@;'; put 'put ''MDpjYXNlIDE1NTpjYXNlIDU0ODpjYXNlIDY3NjpjYXNlIDEyODpjYXNlIDY2NTpjYXNlIDIxMjg6Y2FzZSAyMTI1OmNhc2UgNTQ5OmNhc2UgMjA1MzpjYXNlIDU5NjpjYXNlIDIwNzY6Y2FzZSAyMDc1OmNhc2UgMjA4MjpjYXNlIDM5NzpjYXNlIDE1NDpjYXNlIDExMTc6Y2FzZSA1NTM6Y2Fz''@;'; put 'put ''ZSAyMDkxOmNhc2UgMTY6YnJlYWs7Y2FzZSAzNTc6Y2FzZSAzNTg6Y2FzZSAzNTU6Y2FzZSA2Njc6WmVbMF0ubGVuZ3RoP1plLnB1c2goW3h0LFllXSk6WmVbMF09W3h0LFllXSxaZVtaZS5sZW5ndGgtMV0uWFRJPVtdO2JyZWFrO2Nhc2UgMzYyOjA9PT1aZS5sZW5ndGgmJihaZVswXT1bXSxa''@;'; put 'put ''ZVswXS5YVEk9W10pLFplW1plLmxlbmd0aC0xXS5YVEk9WmVbWmUubGVuZ3RoLTFdLlhUSS5jb25jYXQoWWUpLFplLlhUST1aZS5YVEkuY29uY2F0KFllKTticmVhaztjYXNlIDM1OmNhc2UgMzc6d2UucHVzaChNdCkseGU9ITA7YnJlYWs7Y2FzZSAzNjpjYXNlIDM4OndlLnBvcCgpLHhlPSEx''@;'; put 'put ''O2JyZWFrO2RlZmF1bHQ6aWYoISgoTXR8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjApJiYhKChNdHx8IiIpLmluZGV4T2YoIkVuZCIpPjApJiYoIXhlfHxpZS5XVEYmJiJCcnRBQ0JlZ2luIiE9d2Vbd2UubGVuZ3RoLTFdJiYiQnJ0RlJUQmVnaW4iIT13ZVt3ZS5sZW5ndGgtMV0pKXRocm93IG5l''@;'; put 'put ''dyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIit4dCsiICIrTXQpfX0saWUpLHFmKFgpLFguTmFtZXM9RmUsWC5zdXBib29rcz1aZSxYfShILFgpOmZ1bmN0aW9uIHpfKEgsaWUpe2lmKCFIKXRocm93IG5ldyBFcnJvcigiQ291bGQgbm90IGZpbmQgZmlsZSIpO3ZhciBYPXtBcHBWZXJzaW9u''@;'; put 'put ''Ont9LFdCUHJvcHM6e30sV0JWaWV3OltdLFNoZWV0czpbXSxDYWxjUHI6e30sTmFtZXM6W10sRXh0ZXJuOltdLHhtbG5zOiIifSx3ZT0hMSx4ZT0ieG1sbnMiLEZlPXt9LFplPTA7aWYoSC5yZXBsYWNlKEd0LGZ1bmN0aW9uKFllLE10KXt2YXIgeHQ9ZW4oWWUpO3N3aXRjaChJbih4dFswXSkp''@;'; put 'put ''e2Nhc2UiPD94bWwiOmNhc2UiPC93b3JrYm9vaz4iOmNhc2UiPGZpbGVWZXJzaW9uLz4iOmNhc2UiPC9maWxlVmVyc2lvbj4iOmNhc2UiPGZpbGVTaGFyaW5nLz4iOmNhc2UiPC93b3JrYm9va1ByPiI6Y2FzZSI8d29ya2Jvb2tQcm90ZWN0aW9uLz4iOmNhc2UiPGJvb2tWaWV3cyI6Y2FzZSI8''@;'; put 'put ''Ym9va1ZpZXdzPiI6Y2FzZSI8L2Jvb2tWaWV3cz4iOmNhc2UiPC93b3JrYm9va1ZpZXc+IjpjYXNlIjxzaGVldHMiOmNhc2UiPHNoZWV0cz4iOmNhc2UiPC9zaGVldHM+IjpjYXNlIjwvc2hlZXQ+IjpjYXNlIjxmdW5jdGlvbkdyb3VwcyI6Y2FzZSI8ZnVuY3Rpb25Hcm91cHMvPiI6Y2FzZSI8''@;'; put 'put ''ZnVuY3Rpb25Hcm91cCI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzIjpjYXNlIjwvZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZXh0ZXJuYWxSZWZlcmVuY2VzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzLz4iOmNhc2UiPGRlZmluZWROYW1lLz4iOmNhc2UiPC9jYWxjUHI+IjpjYXNlIjxvbGVT''@;'; put 'put ''aXplIjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXdzPiI6Y2FzZSI8L2N1c3RvbVdvcmtib29rVmlld3M+IjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXdzIjpjYXNlIjxjdXN0b21Xb3JrYm9va1ZpZXciOmNhc2UiPC9jdXN0b21Xb3JrYm9va1ZpZXc+IjpjYXNlIjxwaXZvdENhY2hlcz4iOmNh''@;'; put 'put ''c2UiPC9waXZvdENhY2hlcz4iOmNhc2UiPHBpdm90Q2FjaGVzIjpjYXNlIjxwaXZvdENhY2hlIjpjYXNlIjxzbWFydFRhZ1ByIjpjYXNlIjxzbWFydFRhZ1ByLz4iOmNhc2UiPHNtYXJ0VGFnVHlwZXMiOmNhc2UiPHNtYXJ0VGFnVHlwZXM+IjpjYXNlIjwvc21hcnRUYWdUeXBlcz4iOmNhc2Ui''@;'; put 'put ''PHNtYXJ0VGFnVHlwZSI6Y2FzZSI8d2ViUHVibGlzaGluZyI6Y2FzZSI8d2ViUHVibGlzaGluZy8+IjpjYXNlIjxmaWxlUmVjb3ZlcnlQciI6Y2FzZSI8ZmlsZVJlY292ZXJ5UHIvPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdHM+IjpjYXNlIjx3ZWJQdWJsaXNoT2JqZWN0cyI6Y2FzZSI8L3dl''@;'; put 'put ''YlB1Ymxpc2hPYmplY3RzPiI6Y2FzZSI8d2ViUHVibGlzaE9iamVjdCI6Y2FzZSI8ZXh0THN0IjpjYXNlIjxleHRMc3Q+IjpjYXNlIjwvZXh0THN0PiI6Y2FzZSI8ZXh0THN0Lz4iOmNhc2UiPEFyY2hJRCI6Y2FzZSI8cmV2aXNpb25QdHIiOmJyZWFrO2Nhc2UiPHdvcmtib29rIjpZZS5tYXRj''@;'; put 'put ''aCh6eCkmJih4ZT0ieG1sbnMiK1llLm1hdGNoKC88KFx3Kyk6LylbMV0pLFgueG1sbnM9eHRbeGVdO2JyZWFrO2Nhc2UiPGZpbGVWZXJzaW9uIjpkZWxldGUgeHRbMF0sWC5BcHBWZXJzaW9uPXh0O2JyZWFrO2Nhc2UiPGZpbGVTaGFyaW5nIjpYLk1vZGlmeT17dXNlcjp4dC51c2VyTmFtZSx3''@;'; put 'put ''YXJuOkRpKHh0LnJlYWRPbmx5UmVjb21tZW5kZWR8fCJmYWxzZSIpfSwoeHQuYWxnb3JpdGhtTmFtZXx8eHQuaGFzaFZhbHVlfHx4dC5zYWx0VmFsdWV8fHh0LnNwaW5Db3VudCkmJihYLk1vZGlmeS5lbmNyeXB0aW9uPXthbGdvOnh0LmFsZ29yaXRobU5hbWUsaGFzaDp4dC5oYXNoVmFsdWUs''@;'; put 'put ''c2FsdDp4dC5zYWx0VmFsdWUsc3BpbjoreHQuc3BpbkNvdW50fHwxZTV9KTticmVhaztjYXNlIjx3b3JrYm9va1ByIjpjYXNlIjx3b3JrYm9va1ByLz4iOkZpLmZvckVhY2goZnVuY3Rpb24oVXQpe2lmKG51bGwhPXh0W1V0WzBdXSlzd2l0Y2goVXRbMl0pe2Nhc2UiYm9vbCI6WC5XQlByb3Bz''@;'; put 'put ''W1V0WzBdXT1EaSh4dFtVdFswXV0pO2JyZWFrO2Nhc2UiaW50IjpYLldCUHJvcHNbVXRbMF1dPXBhcnNlSW50KHh0W1V0WzBdXSwxMCk7YnJlYWs7ZGVmYXVsdDpYLldCUHJvcHNbVXRbMF1dPXh0W1V0WzBdXX19KSx4dC5jb2RlTmFtZSYmKFguV0JQcm9wcy5Db2RlTmFtZT1XMCh4dC5jb2Rl''@;'; put 'put ''TmFtZSkpO2JyZWFrO2Nhc2UiPHdvcmtib29rUHJvdGVjdGlvbiI6dmFyIFJ0PVguUHJvdGVjdGlvbnx8e307UnQubG9ja1N0cnVjdHVyZT1EaSh4dC5sb2NrU3RydWN0dXJlfHwiZmFsc2UiKSxSdC5sb2NrV2luZG93cz1EaSh4dC5sb2NrV2luZG93c3x8ImZhbHNlIikseHQud29ya2Jvb2tB''@;'; put 'put ''bGdvcml0aG1OYW1lJiYoUnQuZW5jcnlwdGlvbj17YWxnbzp4dC53b3JrYm9va0FsZ29yaXRobU5hbWUsaGFzaDp4dC53b3JrYm9va0hhc2hWYWx1ZSxzYWx0Onh0Lndvcmtib29rU2FsdFZhbHVlLHNwaW46K3h0Lndvcmtib29rU3BpbkNvdW50fHwxZTV9KSxYLlByb3RlY3Rpb249UnQ7YnJl''@;'; put 'put ''YWs7Y2FzZSI8d29ya2Jvb2tWaWV3IjpjYXNlIjx3b3JrYm9va1ZpZXcvPiI6ZGVsZXRlIHh0WzBdLFguV0JWaWV3LnB1c2goeHQpO2JyZWFrO2Nhc2UiPHNoZWV0Ijpzd2l0Y2goeHQuc3RhdGUpe2Nhc2UiaGlkZGVuIjp4dC5IaWRkZW49MTticmVhaztjYXNlInZlcnlIaWRkZW4iOnh0Lkhp''@;'; put 'put ''ZGRlbj0yO2JyZWFrO2RlZmF1bHQ6eHQuSGlkZGVuPTB9ZGVsZXRlIHh0LnN0YXRlLHh0Lm5hbWU9Z3IoVzAoeHQubmFtZSkpLGRlbGV0ZSB4dFswXSxYLlNoZWV0cy5wdXNoKHh0KTticmVhaztjYXNlIjxleHRlcm5hbFJlZmVyZW5jZSI6WC5FeHRlcm4ucHVzaCh4dC5pZCk7YnJlYWs7Y2Fz''@;'; put 'put ''ZSI8ZGVmaW5lZE5hbWVzPiI6Y2FzZSI8ZGVmaW5lZE5hbWVzIjpjYXNlIjxleHQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQiOmNhc2UiPEFsdGVybmF0ZUNvbnRlbnQ+Ijp3ZT0hMDticmVhaztjYXNlIjwvZGVmaW5lZE5hbWVzPiI6Y2FzZSI8L2V4dD4iOmNhc2UiPC9BbHRlcm5hdGVDb250''@;'; put 'put ''ZW50PiI6d2U9ITE7YnJlYWs7Y2FzZSI8ZGVmaW5lZE5hbWUiOihGZT17fSkuTmFtZT1XMCh4dC5uYW1lKSx4dC5jb21tZW50JiYoRmUuQ29tbWVudD14dC5jb21tZW50KSx4dC5sb2NhbFNoZWV0SWQmJihGZS5TaGVldD0reHQubG9jYWxTaGVldElkKSxEaSh4dC5oaWRkZW58fCIwIikmJihG''@;'; put 'put ''ZS5IaWRkZW49ITApLFplPU10K1llLmxlbmd0aDticmVhaztjYXNlIjwvZGVmaW5lZE5hbWU+IjpGZS5SZWY9Z3IoVzAoSC5zbGljZShaZSxNdCkpKSxYLk5hbWVzLnB1c2goRmUpO2JyZWFrO2Nhc2UiPGNhbGNQciI6Y2FzZSI8Y2FsY1ByLz4iOmRlbGV0ZSB4dFswXSxYLkNhbGNQcj14dDti''@;'; put 'put ''cmVhaztkZWZhdWx0OmlmKCF3ZSYmaWUuV1RGKXRocm93IG5ldyBFcnJvcigidW5yZWNvZ25pemVkICIreHRbMF0rIiBpbiB3b3JrYm9vayIpfXJldHVybiBZZX0pLC0xPT09WDAubWFpbi5pbmRleE9mKFgueG1sbnMpKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBOYW1lc3BhY2U6ICIrWC54''@;'; put 'put ''bWxucyk7cmV0dXJuIHFmKFgpLFh9KEgsWCl9KHNuKEgsaDEod2Uud29ya2Jvb2tzWzBdKSksd2Uud29ya2Jvb2tzWzBdLGllKSxSdD17fSxVdD0iIjt3ZS5jb3JlcHJvcHMubGVuZ3RoJiYoKFV0PXNuKEgsaDEod2UuY29yZXByb3BzWzBdKSwhMCkpJiYoUnQ9bHMoVXQpKSwwIT09d2UuZXh0''@;'; put 'put ''cHJvcHMubGVuZ3RoJiYoVXQ9c24oSCxoMSh3ZS5leHRwcm9wc1swXSksITApKSYmZnVuY3Rpb24gQk0oSCxpZSxYKXt2YXIgd2U9e307aWV8fChpZT17fSksSD1XMChIKSxvMi5mb3JFYWNoKGZ1bmN0aW9uKHhlKXt2YXIgRmU9KEgubWF0Y2goUWkoeGVbMF0pKXx8W10pWzFdO3N3aXRjaCh4''@;'; put 'put ''ZVsyXSl7Y2FzZSJzdHJpbmciOkZlJiYoaWVbeGVbMV1dPWdyKEZlKSk7YnJlYWs7Y2FzZSJib29sIjppZVt4ZVsxXV09InRydWUiPT09RmU7YnJlYWs7Y2FzZSJyYXciOnZhciBaZT1ILm1hdGNoKG5ldyBSZWdFeHAoIjwiK3hlWzBdKyJbXj5dKj4oW1xcc1xcU10qPyk8LyIreGVbMF0rIj4i''@;'; put 'put ''KSk7WmUmJlplLmxlbmd0aD4wJiYod2VbeGVbMV1dPVplWzFdKX19KSx3ZS5IZWFkaW5nUGFpcnMmJndlLlRpdGxlc09mUGFydHMmJnlzKHdlLkhlYWRpbmdQYWlycyx3ZS5UaXRsZXNPZlBhcnRzLGllLFgpfShVdCxSdCxpZSkpO3ZhciBubj17fTsoIWllLmJvb2tTaGVldHN8fGllLmJvb2tQ''@;'; put 'put ''cm9wcykmJjAhPT13ZS5jdXN0cHJvcHMubGVuZ3RoJiYoVXQ9VW4oSCxoMSh3ZS5jdXN0cHJvcHNbMF0pLCEwKSkmJihubj1mdW5jdGlvbiBvYihILGllKXt2YXIgWD17fSx3ZT0iIix4ZT1ILm1hdGNoKG05KTtpZih4ZSlmb3IodmFyIEZlPTA7RmUhPXhlLmxlbmd0aDsrK0ZlKXt2YXIgWmU9''@;'; put 'put ''eGVbRmVdLGplPWVuKFplKTtzd2l0Y2goamVbMF0pe2Nhc2UiPD94bWwiOmNhc2UiPFByb3BlcnRpZXMiOmJyZWFrO2Nhc2UiPHByb3BlcnR5Ijp3ZT1ncihqZS5uYW1lKTticmVhaztjYXNlIjwvcHJvcGVydHk+Ijp3ZT1udWxsO2JyZWFrO2RlZmF1bHQ6aWYoMD09PVplLmluZGV4T2YoIjx2''@;'; put 'put ''dDoiKSl7dmFyIFllPVplLnNwbGl0KCI+IiksTXQ9WWVbMF0uc2xpY2UoNCkseHQ9WWVbMV07c3dpdGNoKE10KXtjYXNlImxwc3RyIjpjYXNlImJzdHIiOmNhc2UibHB3c3RyIjpjYXNlImN5IjpjYXNlImVycm9yIjpYW3dlXT1ncih4dCk7YnJlYWs7Y2FzZSJib29sIjpYW3dlXT1EaSh4dCk7''@;'; put 'put ''YnJlYWs7Y2FzZSJpMSI6Y2FzZSJpMiI6Y2FzZSJpNCI6Y2FzZSJpOCI6Y2FzZSJpbnQiOmNhc2UidWludCI6WFt3ZV09cGFyc2VJbnQoeHQsMTApO2JyZWFrO2Nhc2UicjQiOmNhc2UicjgiOmNhc2UiZGVjaW1hbCI6WFt3ZV09cGFyc2VGbG9hdCh4dCk7YnJlYWs7Y2FzZSJmaWxldGltZSI6''@;'; put 'put ''Y2FzZSJkYXRlIjpYW3dlXT1kbih4dCk7YnJlYWs7ZGVmYXVsdDppZigiLyI9PU10LnNsaWNlKC0xKSlicmVhaztpZS5XVEYmJiJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKCJVbmV4cGVjdGVkIixaZSxNdCxZZSl9fWVsc2UgaWYoIjwvIiE9PVplLnNsaWNlKDAs''@;'; put 'put ''MikmJmllLldURil0aHJvdyBuZXcgRXJyb3IoWmUpfX1yZXR1cm4gWH0oVXQsaWUpKTt2YXIgQ249e307aWYoKGllLmJvb2tTaGVldHN8fGllLmJvb2tQcm9wcykmJih4dC5TaGVldHM/RmU9eHQuU2hlZXRzLm1hcChmdW5jdGlvbihOcil7cmV0dXJuIE5yLm5hbWV9KTpSdC5Xb3Jrc2hlZXRz''@;'; put 'put ''JiZSdC5TaGVldE5hbWVzLmxlbmd0aD4wJiYoRmU9UnQuU2hlZXROYW1lcyksaWUuYm9va1Byb3BzJiYoQ24uUHJvcHM9UnQsQ24uQ3VzdHByb3BzPW5uKSxpZS5ib29rU2hlZXRzJiZ2b2lkIDAhPT1GZSYmKENuLlNoZWV0TmFtZXM9RmUpLGllLmJvb2tTaGVldHM/Q24uU2hlZXROYW1lczpp''@;'; put 'put ''ZS5ib29rUHJvcHMpKXJldHVybiBDbjtGZT17fTt2YXIgRHQ9e307aWUuYm9va0RlcHMmJndlLmNhbGNjaGFpbiYmKER0PWZ1bmN0aW9uIEp4KEgsaWUsWCl7cmV0dXJuIi5iaW4iPT09aWUuc2xpY2UoLTQpP2Z1bmN0aW9uIEZiKEgsaWUsWCl7dmFyIHdlPVtdO3JldHVybiBIMShILGZ1bmN0''@;'; put 'put ''aW9uKFplLGplLFllKXtpZig2Mz09PVllKXdlLnB1c2goWmUpO2Vsc2UgaWYoISgoamV8fCIiKS5pbmRleE9mKCJCZWdpbiIpPjB8fChqZXx8IiIpLmluZGV4T2YoIkVuZCIpPjApKXRocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCByZWNvcmQgIitZZSsiICIramUpfSksd2V9KEgpOmZ1bmN0''@;'; put 'put ''aW9uIExFKEgpe3ZhciBpZT1bXTtpZighSClyZXR1cm4gaWU7dmFyIFg9MTtyZXR1cm4oSC5tYXRjaChHdCl8fFtdKS5mb3JFYWNoKGZ1bmN0aW9uKHdlKXt2YXIgeGU9ZW4od2UpO3N3aXRjaCh4ZVswXSl7Y2FzZSI8P3htbCI6Y2FzZSI8Y2FsY0NoYWluIjpjYXNlIjxjYWxjQ2hhaW4+Ijpj''@;'; put 'put ''YXNlIjwvY2FsY0NoYWluPiI6YnJlYWs7Y2FzZSI8YyI6ZGVsZXRlIHhlWzBdLHhlLmk/WD14ZS5pOnhlLmk9WCxpZS5wdXNoKHhlKX19KSxpZX0oSCl9KHNuKEgsaDEod2UuY2FsY2NoYWluKSksd2UuY2FsY2NoYWluKSk7dmFyIFRuLE9uLHp0PTAsUG49e30sWW49eHQuU2hlZXRzO1J0Lldv''@;'; put 'put ''cmtzaGVldHM9WW4ubGVuZ3RoLFJ0LlNoZWV0TmFtZXM9W107Zm9yKHZhciBNcj0wO01yIT1Zbi5sZW5ndGg7KytNcilSdC5TaGVldE5hbWVzW01yXT1ZbltNcl0ubmFtZTt2YXIgYWk9eGU/ImJpbiI6InhtbCIseXI9d2Uud29ya2Jvb2tzWzBdLmxhc3RJbmRleE9mKCIvIiksYXI9KHdlLndv''@;'; put 'put ''cmtib29rc1swXS5zbGljZSgwLHlyKzEpKyJfcmVscy8iK3dlLndvcmtib29rc1swXS5zbGljZSh5cisxKSsiLnJlbHMiKS5yZXBsYWNlKC9eXC8vLCIiKTtLbihILGFyKXx8KGFyPSJ4bC9fcmVscy93b3JrYm9vay4iK2FpKyIucmVscyIpO3ZhciBHcj1QdChVbihILGFyLCEwKSxhciksenI9''@;'; put 'put ''R3IscXI9W107R3ImJih4dCYmeHQuRXh0ZXJuJiZ4dC5FeHRlcm4ubGVuZ3RoJiZ4dC5FeHRlcm4uZm9yRWFjaChmdW5jdGlvbihoaSxOcil7dmFyIE4wPSgiL3hsLyIrR3JbIiFpZCJdW2hpXS5UYXJnZXQpLnJlcGxhY2UoL1tcL11bXC9dL2csIi8iKSx0MD13ZS5saW5rcy5pbmRleE9mKE4w''@;'; put 'put ''KTt0MD4tMSYmKHFyW05yXT1NdFt0MF0pfSkseHQmJmRlbGV0ZSB4dC5FeHRlcm4pLEdyJiYoR3I9ZnVuY3Rpb24gVnMoSCxpZSl7aWYoIUgpcmV0dXJuIDA7dHJ5e0g9aWUubWFwKGZ1bmN0aW9uKHdlKXtyZXR1cm4gd2UuaWR8fCh3ZS5pZD13ZS5zdHJSZWxJRCksW3dlLm5hbWUsSFsiIWlk''@;'; put 'put ''Il1bd2UuaWRdLlRhcmdldCxNcyhIWyIhaWQiXVt3ZS5pZF0uVHlwZSldfSl9Y2F0Y2goWCl7cmV0dXJuIG51bGx9cmV0dXJuIEgmJjAhPT1ILmxlbmd0aD9IOm51bGx9KEdyLHh0LlNoZWV0cykpO3ZhciBvaT1LbihILCJ4bC93b3Jrc2hlZXRzL3NoZWV0LnhtbCIpPzE6MCxjcj1bXSxkaT1b''@;'; put 'put ''XTtlOmZvcih6dD0wO3p0IT1SdC5Xb3Jrc2hlZXRzOysrenQpe3ZhciB2MD0ic2hlZXQiO2lmKEdyJiZHclt6dF0/KFRuPSJ4bC8iK0dyW3p0XVsxXS5yZXBsYWNlKC9bXC9dP3hsXC8vLCIiKSxLbihILFRuKXx8KFRuPUdyW3p0XVsxXSksS24oSCxUbil8fChUbj1hci5yZXBsYWNlKC9fcmVs''@;'; put 'put ''c1wvLiokLywiIikrR3JbenRdWzFdKSx2MD1Hclt6dF1bMl0pOlRuPShUbj0ieGwvd29ya3NoZWV0cy9zaGVldCIrKHp0KzEtb2kpKyIuIithaSkucmVwbGFjZSgvc2hlZXQwXC4vLCJzaGVldC4iKSxPbj1Ubi5yZXBsYWNlKC9eKC4qKShcLykoW15cL10qKSQvLCIkMS9fcmVscy8kMy5yZWxz''@;'; put 'put ''IiksY3IucHVzaChUbiksaWUmJm51bGwhPWllLnNoZWV0cylzd2l0Y2godHlwZW9mIGllLnNoZWV0cyl7Y2FzZSJudW1iZXIiOmlmKHp0IT1pZS5zaGVldHMpY29udGludWUgZTticmVhaztjYXNlInN0cmluZyI6aWYoUnQuU2hlZXROYW1lc1t6dF0udG9Mb3dlckNhc2UoKSE9aWUuc2hlZXRz''@;'; put 'put ''LnRvTG93ZXJDYXNlKCkpY29udGludWUgZTticmVhaztkZWZhdWx0OmlmKEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkoaWUuc2hlZXRzKSl7Zm9yKHZhciBVaT0wLHRvPTA7dG8hPWllLnNoZWV0cy5sZW5ndGg7Kyt0bykibnVtYmVyIj09dHlwZW9mIGllLnNoZWV0c1t0b10mJmllLnNo''@;'; put 'put ''ZWV0c1t0b109PXp0JiYoVWk9MSksInN0cmluZyI9PXR5cGVvZiBpZS5zaGVldHNbdG9dJiZpZS5zaGVldHNbdG9dLnRvTG93ZXJDYXNlKCk9PVJ0LlNoZWV0TmFtZXNbenRdLnRvTG93ZXJDYXNlKCkmJihVaT0xKTtpZighVWkpY29udGludWUgZX19aWYoIWllLnNraXBQYXJzZSl7dmFyIEEw''@;'; put 'put ''PVg0KEgsVG4sT24sUnQuU2hlZXROYW1lc1t6dF0senQsUG4sRmUsdjAsaWUseHQsamUsWWUpO0EwJiZBMFsiIUxEUCJdJiYoZGlbenRdPUEwWyIhTERQIl0sZGVsZXRlIEEwWyIhTERQIl0pfX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIHBhcnNlX3NoZWV0X3Bpdm90KWZvcih6dD0wO3p0PEQ1''@;'; put 'put ''Lmxlbmd0aDsrK3p0KXBhcnNlX3NoZWV0X3Bpdm90LmFwcGx5KG51bGwsRDVbenRdKTtpZihDbj17RGlyZWN0b3J5OndlLFdvcmtib29rOnh0LFByb3BzOlJ0LEN1c3Rwcm9wczpubixEZXBzOkR0LFNoZWV0czpGZSxTaGVldE5hbWVzOlJ0LlNoZWV0TmFtZXMsU3RyaW5nczpPZCxTdHlsZXM6''@;'; put 'put ''WWUsVGhlbWVzOmplLFNTRjpGLmdldF90YWJsZSgpfSwhaWUuc2tpcFBhcnNlKXtpZihmdW5jdGlvbiBCYihIKXshSHx8IUguV29ya2Jvb2t8fCFILldvcmtib29rLk5hbWVzfHxILldvcmtib29rLk5hbWVzLmZvckVhY2goZnVuY3Rpb24oaWUpe2lmKGllLk5hbWUmJiJfeGxubS4iPT1pZS5O''@;'; put 'put ''YW1lLnNsaWNlKDAsNikmJigiX3hsbm0uUHJpbnRfQXJlYSI9PWllLk5hbWV8fCJfeGxubS5QcmludF9UaXRsZXMiPT1pZS5OYW1lKSl7dmFyIFg9SC5TaGVldHNbSC5TaGVldE5hbWVzW2llLlNoZWV0XV07aWYoWCl7WFsiIXByaW50Il18fChYWyIhcHJpbnQiXT17fSksWFsiIXByaW50Il0u''@;'; put 'put ''cHJvcHN8fChYWyIhcHJpbnQiXS5wcm9wcz17fSk7dmFyIHdlPVhbIiFwcmludCJdLHhlPWllLlJlZjtpZigiX3hsbm0uUHJpbnRfQXJlYSI9PWllLk5hbWUpe3hlLmluZGV4T2YoIiEiKT4tMSYmKHhlPXhlLnNsaWNlKHhlLmluZGV4T2YoIiEiKSsxKSk7dmFyIEZlPUZvKHhlPXhlLnJlcGxh''@;'; put 'put ''Y2UoL1skXS9nLCIiKSk7d2UuYXJlYT1GZX1lbHNlIl94bG5tLlByaW50X1RpdGxlcyI9PWllLk5hbWUmJih3ZS50aXRsZXM9e3M6e3I6LTEsYzotMX0sZTp7cjotMSxjOi0xfX0seGUuc3BsaXQoIiwiKS5mb3JFYWNoKGZ1bmN0aW9uKFplKXt2YXIgWWU9QXMoWmUuc2xpY2UoWmUuaW5kZXhP''@;'; put 'put ''ZigiISIpKzEpLnJlcGxhY2UoL1skXS9nLCIiKSk7WWUucy5jPi0xJiYod2UudGl0bGVzLnMuYz1ZZS5zLmMpLFllLmUuYz4tMSYmKHdlLnRpdGxlcy5lLmM9WWUuZS5jKSxZZS5zLnI+LTEmJih3ZS50aXRsZXMucy5yPVllLnMuciksWWUuZS5yPi0xJiYod2UudGl0bGVzLmUucj1ZZS5lLnIp''@;'; put 'put ''fSkpfX19KX0oQ24pLGllJiZpZS5ib29rRmlsZXMmJihDbi5rZXlzPVgsQ24uZmlsZXM9SC5maWxlcyksaWUmJmllLmJvb2tWQkEmJih3ZS52YmEubGVuZ3RoPjA/Q24udmJhcmF3PXNuKEgsaDEod2UudmJhWzBdKSwhMCk6d2UuZGVmYXVsdHMmJiJhcHBsaWNhdGlvbi92bmQubXMtb2ZmaWNl''@;'; put 'put ''LnZiYVByb2plY3QiPT09d2UuZGVmYXVsdHMuYmluJiYoQ24udmJhcmF3PXNuKEgsInhsL3ZiYVByb2plY3QuYmluIiwhMCkpKSx6ciYmenJbIiFpZCJdKXtmb3IodmFyIGJpPVtdLFlyPTE7WXI8PTEwMjQ7KytZcikhenJbIiFpZCJdWyJySWQiK1lyXXx8IXpyWyIhaWQiXVsicklkIitZcl0u''@;'; put 'put ''VHlwZXx8L2N1c3RvbVhtbCQvLnRlc3QoenJbIiFpZCJdWyJySWQiK1lyXS5UeXBlKSYmYmkucHVzaCh1bih6clsiIWlkIl1bInJJZCIrWXJdLlRhcmdldCx3ZS53b3JrYm9va3NbMF0pKTtiaS5sZW5ndGg+MCYmKENuLkN1c3RvbVhNTD1bXSxiaS5mb3JFYWNoKGZ1bmN0aW9uKGhpKXt2YXIg''@;'; put 'put ''TnI9e2RhdGE6VW4oSCxoMShoaSkpfSxraT1JdChoaSk7dHJ5e3ZhciBOMD1QdChVbihILGgxKGtpKSwhMCksa2kpO2lmKE4wKWZvcih2YXIgdDA9MTt0MDw9MTAyNDsrK3QwKSFOMFsiIWlkIl1bInJJZCIrdDBdfHwhTjBbIiFpZCJdWyJySWQiK3QwXS5UeXBlfHwvY3VzdG9tWG1sUHJvcHMk''@;'; put 'put ''Ly50ZXN0KE4wWyIhaWQiXVsicklkIit0MF0uVHlwZSkmJihOci5wcm9wcz1VbihILGgxKHVuKE4wWyIhaWQiXVsicklkIit0MF0uVGFyZ2V0LGhpKSkpKX1jYXRjaChpbyl7fUNuLkN1c3RvbVhNTC5wdXNoKE5yKX0pKX12YXIgRWk9d24oSCwieGwvbW9kZWwvaXRlbS5kYXRhIiwhMCk7RWkm''@;'; put 'put ''JihDbi5tb2RlbD1FaSksd2UuY29ubiYmKENuLmNvbm49c24oSCxoMSh3ZS5jb25uKSwhMCkpLHFyLmxlbmd0aCYmKENuLkV4dGVybmFsV0I9cXIpLHh0JiYoeHQuUFBJPVI0KX1yZXR1cm4gaWUudGVtcGxhdGUmJihDbi5fd3NwYXRocz1jcixDbi5fc3R5cGF0aD1oMSh3ZS5zdHlsZXx8IiIp''@;'; put 'put ''LENuLl93YnBhdGg9aDEod2Uud29ya2Jvb2tzWzBdfHwieGwvd29ya2Jvb2sueG1sIiksQ24uX3ZtbHBhdGhzPWRpLENuLl93YnJlbHNwYXRoPWFyLENuLl9jdD1VbihILCJbQ29udGVudF9UeXBlc10ueG1sIiksQ24uZmlsZXM9SC5maWxlcyksQ259ZnVuY3Rpb24gJG0oSCxpZSl7dmFyIFg9''@;'; put 'put ''aWV8fHt9O1gucGFzc3dvcmR8fChYLnBhc3N3b3JkPSJWZWx2ZXRTd2VhdHNob3AiKTt2YXIgd2U9Ildvcmtib29rIix4ZT1tdC5maW5kKEgsd2UpO3RyeXtpZighKHhlPW10LmZpbmQoSCx3ZT0iLyFEYXRhU3BhY2VzL1ZlcnNpb24iKSl8fCF4ZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigi''@;'; put 'put ''RUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK3dlKTtpZihmdW5jdGlvbiBvRShIKXt2YXIgaWU9e307aWUuaWQ9SC5yZWFkX3NoaWZ0KDAsImxwcDQiKSxpZS5SPXZmKEgsNCksaWUuVT12ZihILDQpLGllLlc9dmYoSCw0KX0oeGUuY29udGVudCksISh4ZT1tdC5maW5kKEgsd2U9''@;'; put 'put ''Ii8hRGF0YVNwYWNlcy9EYXRhU3BhY2VNYXAiKSl8fCF4ZS5jb250ZW50KXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgbWlzc2luZyAiK3dlKTt2YXIgRmU9ZnVuY3Rpb24gcG0oSCl7dmFyIGllPVtdO0gubCs9NDtmb3IodmFyIFg9SC5yZWFkX3NoaWZ0KDQpO1gt''@;'; put 'put ''LSA+MDspaWUucHVzaCh3MyhIKSk7cmV0dXJuIGllfSh4ZS5jb250ZW50KTtpZigxIT09RmUubGVuZ3RofHwxIT09RmVbMF0uY29tcHMubGVuZ3RofHwwIT09RmVbMF0uY29tcHNbMF0udHx8IlN0cm9uZ0VuY3J5cHRpb25EYXRhU3BhY2UiIT09RmVbMF0ubmFtZXx8IkVuY3J5cHRlZFBhY2th''@;'; put 'put ''Z2UiIT09RmVbMF0uY29tcHNbMF0udil0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIGJhZCAiK3dlKTtpZighKHhlPW10LmZpbmQoSCx3ZT0iLyFEYXRhU3BhY2VzL0RhdGFTcGFjZUluZm8vU3Ryb25nRW5jcnlwdGlvbkRhdGFTcGFjZSIpKXx8IXhlLmNvbnRlbnQp''@;'; put 'put ''dGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrd2UpO3ZhciBaZT1mdW5jdGlvbiBhRShIKXt2YXIgaWU9W107SC5sKz00O2Zvcih2YXIgWD1ILnJlYWRfc2hpZnQoNCk7WC0tID4wOylpZS5wdXNoKEgucmVhZF9zaGlmdCgwLCJscHA0IikpO3JldHVy''@;'; put 'put ''biBpZX0oeGUuY29udGVudCk7aWYoMSE9WmUubGVuZ3RofHwiU3Ryb25nRW5jcnlwdGlvblRyYW5zZm9ybSIhPVplWzBdKXRocm93IG5ldyBFcnJvcigiRUNNQS0zNzYgRW5jcnlwdGVkIGZpbGUgYmFkICIrd2UpO2lmKCEoeGU9bXQuZmluZChILHdlPSIvIURhdGFTcGFjZXMvVHJhbnNmb3Jt''@;'; put 'put ''SW5mby9TdHJvbmdFbmNyeXB0aW9uVHJhbnNmb3JtLyFQcmltYXJ5IikpfHwheGUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIit3ZSk7IWZ1bmN0aW9uIHNFKEgpe3ZhciBpZT1mdW5jdGlvbiBsRShIKXt2YXIgaWU9e307cmV0dXJu''@;'; put 'put ''IEgucmVhZF9zaGlmdCg0KSxILmwrPTQsaWUuaWQ9SC5yZWFkX3NoaWZ0KDAsImxwcDQiKSxpZS5uYW1lPUgucmVhZF9zaGlmdCgwLCJscHA0IiksaWUuUj12ZihILDQpLGllLlU9dmYoSCw0KSxpZS5XPXZmKEgsNCksaWV9KEgpO2lmKGllLmVuYW1lPUgucmVhZF9zaGlmdCgwLCI4bHBwNCIp''@;'; put 'put ''LGllLmJsa3N6PUgucmVhZF9zaGlmdCg0KSxpZS5jbW9kZT1ILnJlYWRfc2hpZnQoNCksNCE9SC5yZWFkX3NoaWZ0KDQpKXRocm93IG5ldyBFcnJvcigiQmFkICFQcmltYXJ5IHJlY29yZCIpO3JldHVybiBpZX0oeGUuY29udGVudCl9Y2F0Y2goWWUpe31pZighKHhlPW10LmZpbmQoSCx3ZT0i''@;'; put 'put ''L0VuY3J5cHRpb25JbmZvIikpfHwheGUuY29udGVudCl0aHJvdyBuZXcgRXJyb3IoIkVDTUEtMzc2IEVuY3J5cHRlZCBmaWxlIG1pc3NpbmcgIit3ZSk7dmFyIGplPWZ1bmN0aW9uIEt6KEgpe3ZhciBpZT12ZihIKTtzd2l0Y2goaWUuTWlub3Ipe2Nhc2UgMjpyZXR1cm5baWUuTWlub3IseWIo''@;'; put 'put ''SCldO2Nhc2UgMzpyZXR1cm5baWUuTWlub3Isd2IoKV07Y2FzZSA0OnJldHVybltpZS5NaW5vcixiYihIKV19dGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSB1bnJlY29nbml6ZWQgVmVyc2lvbjogIitpZS5NaW5vcil9KHhlLmNvbnRlbnQpO2lmKCEoeGU9bXQuZmlu''@;'; put 'put ''ZChILHdlPSIvRW5jcnlwdGVkUGFja2FnZSIpKXx8IXhlLmNvbnRlbnQpdGhyb3cgbmV3IEVycm9yKCJFQ01BLTM3NiBFbmNyeXB0ZWQgZmlsZSBtaXNzaW5nICIrd2UpO2lmKDQ9PWplWzBdJiZ2b2lkIDAhPT1IbylyZXR1cm4gSG8oamVbMV0seGUuY29udGVudCxYLnBhc3N3b3JkfHwiIixY''@;'; put 'put ''KTtpZigyPT1qZVswXSYmdm9pZCAwIT09a2MpcmV0dXJuIGtjKGplWzFdLHhlLmNvbnRlbnQsWC5wYXNzd29yZHx8IiIsWCk7dGhyb3cgbmV3IEVycm9yKCJGaWxlIGlzIHBhc3N3b3JkLXByb3RlY3RlZCIpfWZ1bmN0aW9uIFpkKEgsaWUpe2lmKCFpZS50ZW1wbGF0ZSl7aWYoIm9kcyI9PWll''@;'; put 'put ''LmJvb2tUeXBlKXJldHVybiBUQShILGllKTtDMyhpZSYmaWUuUFBJfHw5NiksSCYmIUguU1NGJiYoSC5TU0Y9Ri5nZXRfdGFibGUoKSksSCYmSC5TU0YmJih5ZShGKSxGLmxvYWRfdGFibGUoSC5TU0YpLGllLnJldnNzZj1ldChILlNTRiksaWUucmV2c3NmW0guU1NGWzY1NTM1XV09MCxpZS5z''@;'; put 'put ''c2Y9SC5TU0YpLEguU3R5bGVzPXtGb250czppZS5Gb250cz1be3N6OjEyLGNvbG9yOnt0aGVtZToxLHJnYjoiMDAwMDAwIn0sbmFtZToiQ2FsaWJyaSIsZmFtaWx5OjIsc2NoZW1lOiJtaW5vciJ9XSxGaWxsczppZS5GaWxscz1be3BhdHRlcm5UeXBlOiJub25lIn0se3BhdHRlcm5UeXBlOiJn''@;'; put 'put ''cmF5MTI1In1dLEJvcmRlcnM6aWUuQm9yZGVycz1be31dLERYRjppZS5EWEY9SC5TdHlsZXMmJkguU3R5bGVzLkRYRnx8W10sVGFibGU6aWUuVGFibGU9SC5TdHlsZXMmJkguU3R5bGVzLlRhYmxlfHxbXX0saWUub3ZlcnJpZGVNRFc/SzI9aWUub3ZlcnJpZGVNRFc6UzMoaWUuRm9udHNbMF0p''@;'; put 'put ''LGllLnJlbHM9e30saWUud2JyZWxzPXt9LGllLlN0cmluZ3M9W10saWUuU3RyaW5ncy5Db3VudD0wLGllLlN0cmluZ3MuVW5pcXVlPTAsZjU/aWUucmV2U3RyaW5ncz1uZXcgTWFwOihpZS5yZXZTdHJpbmdzPXt9LGllLnJldlN0cmluZ3MuZm9vPVtdLGRlbGV0ZSBpZS5yZXZTdHJpbmdzLmZv''@;'; put 'put ''byk7dmFyIFg9Inhsc2IiPT1pZS5ib29rVHlwZT8iYmluIjoieG1sIix3ZT1tQi5pbmRleE9mKGllLmJvb2tUeXBlKT4tMSx4ZT17d29ya2Jvb2tzOltdLHNoZWV0czpbXSxjaGFydHM6W10sZGlhbG9nczpbXSxtYWNyb3M6W10scmVsczpbXSxzdHJzOltdLGNvbW1lbnRzOltdLGxpbmtzOltd''@;'; put 'put ''LGNvcmVwcm9wczpbXSxleHRwcm9wczpbXSxjdXN0cHJvcHM6W10sdGhlbWVzOltdLHN0eWxlczpbXSxjYWxjY2hhaW5zOltdLHZiYTpbXSxkcmF3aW5nczpbXSxwaXZvdHM6W10scGl2b3RjYWNoZXM6W10scGl2b3RyZWNvcmRzOltdLGRhdGFtb2RlbHM6W10sY2hhcnRvYmpzOltdLGNoYXJ0''@;'; put 'put ''c3R5bGVzOltdLGNoYXJ0Y29sb3JzOltdLGNoYXJ0ZXhzOltdLHRhYmxlczpbXSxjb25uczpbXSxjdHJscHJvcHM6W10sY3VzdG9teG1scHJvcHM6W10sVE9ETzpbXSx4bWxuczoiIn07RjMoaWU9aWV8fHt9KTt2YXIgRmU9a3IoKSxaZT0iIixqZT0wO2lmKGllLmNlbGxYZnM9W10saWUuY2Vs''@;'; put 'put ''bFN0eWxlWGZzPVt7bmFtZToiTm9ybWFsIn1dLFkxKGllLmNlbGxYZnMsaWUuY2VsbFN0eWxlWGZzLHt9LHtyZXZzc2Y6e0dlbmVyYWw6MH19KSxILlByb3BzfHwoSC5Qcm9wcz17fSksem4oRmUsWmU9ImRvY1Byb3BzL2NvcmUueG1sIixmdW5jdGlvbiBpMihILGllKXt2YXIgWD1pZXx8e30s''@;'; put 'put ''d2U9W2NuLE1uXSx4ZT17fTtpZighSCYmIVguUHJvcHMpcmV0dXJuIHdlLmpvaW4oIiIpO0gmJihudWxsIT1ILkNyZWF0ZWREYXRlJiZ4bigiZGN0ZXJtczpjcmVhdGVkIiwic3RyaW5nIj09dHlwZW9mIEguQ3JlYXRlZERhdGU/SC5DcmVhdGVkRGF0ZTpVMChILkNyZWF0ZWREYXRlLFguV1RG''@;'; put 'put ''KSx7InhzaTp0eXBlIjoiZGN0ZXJtczpXM0NEVEYifSx3ZSx4ZSksbnVsbCE9SC5Nb2RpZmllZERhdGUmJnhuKCJkY3Rlcm1zOm1vZGlmaWVkIiwic3RyaW5nIj09dHlwZW9mIEguTW9kaWZpZWREYXRlP0guTW9kaWZpZWREYXRlOlUwKEguTW9kaWZpZWREYXRlLFguV1RGKSx7InhzaTp0eXBl''@;'; put 'put ''IjoiZGN0ZXJtczpXM0NEVEYifSx3ZSx4ZSkpO2Zvcih2YXIgRmU9MDtGZSE9bGUubGVuZ3RoOysrRmUpe3ZhciBaZT1sZVtGZV0samU9WC5Qcm9wcyYmbnVsbCE9WC5Qcm9wc1taZVsxXV0/WC5Qcm9wc1taZVsxXV06SD9IW1plWzFdXTpudWxsOyEwPT09amU/amU9IjEiOiExPT09amU/amU9''@;'; put 'put ''IjAiOiJudW1iZXIiPT10eXBlb2YgamUmJihqZT1TdHJpbmcoamUpKSxudWxsIT1qZSYmeG4oWmVbMF0samUsbnVsbCx3ZSx4ZSl9cmV0dXJuIHdlLmxlbmd0aD4yJiYod2Vbd2UubGVuZ3RoXT0iPC9jcDpjb3JlUHJvcGVydGllcz4iLHdlWzFdPXdlWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSx3''@;'; put 'put ''ZS5qb2luKCIiKX0oSC5Qcm9wcyxpZSkpLHhlLmNvcmVwcm9wcy5wdXNoKFplKSxYdChpZS5yZWxzLDIsWmUsZHQuQ09SRV9QUk9QUyksWmU9ImRvY1Byb3BzL2FwcC54bWwiLCFILlByb3BzfHwhSC5Qcm9wcy5TaGVldE5hbWVzKWlmKEguV29ya2Jvb2smJkguV29ya2Jvb2suU2hlZXRzKXtm''@;'; put 'put ''b3IodmFyIFllPVtdLE10PTA7TXQ8SC5TaGVldE5hbWVzLmxlbmd0aDsrK010KTIhPShILldvcmtib29rLlNoZWV0c1tNdF18fHt9KS5IaWRkZW4mJlllLnB1c2goSC5TaGVldE5hbWVzW010XSk7SC5Qcm9wcy5TaGVldE5hbWVzPVllfWVsc2UgSC5Qcm9wcy5TaGVldE5hbWVzPUguU2hlZXRO''@;'; put 'put ''YW1lcztILlByb3BzLldvcmtzaGVldHM9SC5Qcm9wcy5TaGVldE5hbWVzLmxlbmd0aCx6bihGZSxaZSxmdW5jdGlvbiBnOShIKXt2YXIgaWU9W10sWD1faTtyZXR1cm4gSHx8KEg9e30pLEguQXBwbGljYXRpb249IlNoZWV0SlMiLGllW2llLmxlbmd0aF09Y24saWVbaWUubGVuZ3RoXT1QTSxv''@;'; put 'put ''Mi5mb3JFYWNoKGZ1bmN0aW9uKHdlKXtpZih2b2lkIDAhPT1IW3dlWzFdXSl7dmFyIHhlO3N3aXRjaCh3ZVsyXSl7Y2FzZSJzdHJpbmciOnhlPVJyKFN0cmluZyhIW3dlWzFdXSkpO2JyZWFrO2Nhc2UiYm9vbCI6eGU9SFt3ZVsxXV0/InRydWUiOiJmYWxzZSJ9dm9pZCAwIT09eGUmJihpZVtp''@;'; put 'put ''ZS5sZW5ndGhdPVgod2VbMF0seGUpKX19KSxpZVtpZS5sZW5ndGhdPVgoIkhlYWRpbmdQYWlycyIsWCgidnQ6dmVjdG9yIixYKCJ2dDp2YXJpYW50IiwiPHZ0Omxwc3RyPldvcmtzaGVldHM8L3Z0Omxwc3RyPiIpK1goInZ0OnZhcmlhbnQiLFgoInZ0Omk0IixTdHJpbmcoSC5Xb3Jrc2hlZXRz''@;'; put 'put ''KSkpLHtzaXplOjIsYmFzZVR5cGU6InZhcmlhbnQifSkpLGllW2llLmxlbmd0aF09WCgiVGl0bGVzT2ZQYXJ0cyIsWCgidnQ6dmVjdG9yIixILlNoZWV0TmFtZXMubWFwKGZ1bmN0aW9uKHdlKXtyZXR1cm4iPHZ0Omxwc3RyPiIrUnIod2UpKyI8L3Z0Omxwc3RyPiJ9KS5qb2luKCIiKSx7c2l6''@;'; put 'put ''ZTpILldvcmtzaGVldHMsYmFzZVR5cGU6Imxwc3RyIn0pKSxpZS5sZW5ndGg+MiYmKGllW2llLmxlbmd0aF09IjwvUHJvcGVydGllcz4iLGllWzFdPWllWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxpZS5qb2luKCIiKX0oSC5Qcm9wcykpLHhlLmV4dHByb3BzLnB1c2goWmUpLFh0KGllLnJlbHMs''@;'; put 'put ''MyxaZSxkdC5FWFRfUFJPUFMpLEguQ3VzdHByb3BzIT09SC5Qcm9wcyYmb24oSC5DdXN0cHJvcHN8fHt9KS5sZW5ndGg+MCYmKHpuKEZlLFplPSJkb2NQcm9wcy9jdXN0b20ueG1sIixmdW5jdGlvbiBjZihIKXt2YXIgaWU9W2NuLERuXTtpZighSClyZXR1cm4gaWUuam9pbigiIik7dmFyIFg9''@;'; put 'put ''MTtyZXR1cm4gb24oSCkuZm9yRWFjaChmdW5jdGlvbih4ZSl7KytYLGllW2llLmxlbmd0aF09X2koInByb3BlcnR5IixmdW5jdGlvbiBCcyhILGllKXtzd2l0Y2godHlwZW9mIEgpe2Nhc2Uic3RyaW5nIjp2YXIgWD1faSgidnQ6bHB3c3RyIixScihIKSk7cmV0dXJuIGllJiYoWD1YLnJlcGxh''@;'; put 'put ''Y2UoLyZxdW90Oy9nLCJfeDAwMjJfIikpLFg7Y2FzZSJudW1iZXIiOnJldHVybiBfaSgoMHxIKT09SD8idnQ6aTQiOiJ2dDpyOCIsUnIoU3RyaW5nKEgpKSk7Y2FzZSJib29sZWFuIjpyZXR1cm4gX2koInZ0OmJvb2wiLEg/InRydWUiOiJmYWxzZSIpfWlmKEggaW5zdGFuY2VvZiBEYXRlKXJl''@;'; put 'put ''dHVybiBfaSgidnQ6ZmlsZXRpbWUiLFUwKEgpKTt0aHJvdyBuZXcgRXJyb3IoIlVuYWJsZSB0byBzZXJpYWxpemUgIitIKX0oSFt4ZV0sITApLHtmbXRpZDoie0Q1Q0RENTA1LTJFOUMtMTAxQi05Mzk3LTA4MDAyQjJDRjlBRX0iLHBpZDpYLG5hbWU6UnIoeGUpfSl9KSxpZS5sZW5ndGg+MiYm''@;'; put 'put ''KGllW2llLmxlbmd0aF09IjwvUHJvcGVydGllcz4iLGllWzFdPWllWzFdLnJlcGxhY2UoIi8+IiwiPiIpKSxpZS5qb2luKCIiKX0oSC5DdXN0cHJvcHMpKSx4ZS5jdXN0cHJvcHMucHVzaChaZSksWHQoaWUucmVscyw0LFplLGR0LkNVU1RfUFJPUFMpKTt2YXIgeHQ9W10sUnQ9W107Zm9yKGpl''@;'; put 'put ''PTE7amU8PUguU2hlZXROYW1lcy5sZW5ndGg7KytqZSl7dmFyIENuPXsiIWlkIjp7fX0sRHQ9SC5TaGVldHNbSC5TaGVldE5hbWVzW2plLTFdXSx6dD0oRHR8fHt9KVsiIXR5cGUiXXx8InNoZWV0Ijtzd2l0Y2goenQpe2Nhc2UiY2hhcnQiOmlmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd3JpdGVf''@;'; put 'put ''ZHJhd2luZ18pe3puKEZlLFplPSJ4bC9jaGFydHNoZWV0cy9zaGVldCIramUrIi4iK1gsTVAoamUtMSxaZSxpZSxILENuKSkseGUuY2hhcnRzLnB1c2goWmUpLFh0KGllLndicmVscywtMSwiY2hhcnRzaGVldHMvc2hlZXQiK2plKyIuIitYLGR0LkNTKTticmVha31kZWZhdWx0OnpuKEZlLFpl''@;'; put 'put ''PSJ4bC93b3Jrc2hlZXRzL3NoZWV0IitqZSsiLiIrWCxYeChqZS0xLFplLGllLEgsQ24pKSx4ZS5zaGVldHMucHVzaChaZSksWHQoaWUud2JyZWxzLC0xLCJ3b3Jrc2hlZXRzL3NoZWV0IitqZSsiLiIrWCxkdC5XU1swXSl9aWYoRHQpeyJjaGFydCI9PXp0JiYhRHRbIiFwb3MiXSYmKER0WyIh''@;'; put 'put ''cG9zIl09e3g6MCx5OjAsdzo5MDAsaDo2MDB9KTt2YXIgUG49RHRbIiFjb21tZW50cyJdLFRuPSExO2lmKFBuJiZQbi5sZW5ndGg+MCl7dmFyIE9uPSJ4bC9jb21tZW50cyIramUrIi4iK1g7em4oRmUsT24seFAoUG4sT24saWUpKSx4ZS5jb21tZW50cy5wdXNoKE9uKSxYdChDbiwtMSwiLi4v''@;'; put 'put ''Y29tbWVudHMiK2plKyIuIitYLGR0LkNNTlQpLFRuPSEwfShEdFsiIWNvbnRyb2xzIl18fFtdKS5sZW5ndGg+MCYmKFRuPSEwKSxEdFsiIWxlZ2FjeSJdJiZUbiYmem4oRmUsInhsL2RyYXdpbmdzL3ZtbERyYXdpbmciK2plKyIudm1sIixaYihqZSxEdFsiIWNvbW1lbnRzIl0sRHRbIiFjb250''@;'; put 'put ''cm9scyJdLER0KSksRHRbIiFsZWdhY3lIRiJdJiZDbShGZSwwLGplLER0WyIhcHJpbnQiXS5pbWFnZXMpO3ZhciBZbj0oImNoYXJ0Ij09RHRbIiF0eXBlIl0/W0R0XTpEdFsiIWNoYXJ0cyJdfHxbXSkuY29uY2F0KChEdFsiIWltYWdlcyJdfHxbXSkubWFwKGZ1bmN0aW9uKE1yKXtyZXR1cm4g''@;'; put 'put ''TXJbIiF0eXBlIl18fChNclsiIXR5cGUiXT0iaW1hZ2UiKSxNcn0pKS5jb25jYXQoKER0WyIhc2hhcGVzIl18fFtdKS5tYXAoZnVuY3Rpb24oTXIpe3JldHVybiBNclsiIXR5cGUiXXx8KE1yWyIhdHlwZSJdPSJzaGFwZSIpLE1yfSkpO1luJiZZbi5sZW5ndGgmJigidW5kZWZpbmVkIiE9dHlw''@;'; put 'put ''ZW9mIHdyaXRlX2RyYXdpbmdfP3dyaXRlX2RyYXdpbmdfKEZlLHhlLGplLER0LFluKTooem4oRmUsInhsL2RyYXdpbmdzL2RyYXdpbmciK2plKyIueG1sIixOYigpKSx4ZS5kcmF3aW5ncy5wdXNoKCJ4bC9kcmF3aW5ncy9kcmF3aW5nIitqZSsiLnhtbCIpKSksZGVsZXRlIER0WyIhY29tbWVu''@;'; put 'put ''dHMiXSxkZWxldGUgRHRbIiFsZWdhY3kiXSxkZWxldGUgRHRbIiFsZWdhY3lIRiJdfUR0JiZEdFsiIXBpdm90cyJdJiYieG1sIj09WCYmInVuZGVmaW5lZCIhPXR5cGVvZiB3cml0ZV9waXZvdF94bWwmJkR0WyIhcGl2b3RzIl0uZm9yRWFjaChubiksQ25bIiFpZCJdLnJJZDEmJnpuKEZlLEl0''@;'; put 'put ''KFplKSxpdChDbikpLER0JiZEdFsiIXRhYmxlcyJdJiYieG1sIj09WCYmdm9pZCAwIT09VmImJkR0WyIhdGFibGVzIl0uZm9yRWFjaChVdCl9cmV0dXJuIG51bGwhPWllLlN0cmluZ3MmJmllLlN0cmluZ3MubGVuZ3RoPjAmJih6bihGZSxaZT0ieGwvc2hhcmVkU3RyaW5ncy4iK1gsRVAoaWUu''@;'; put 'put ''U3RyaW5ncyxaZSxpZSkpLHhlLnN0cnMucHVzaChaZSksWHQoaWUud2JyZWxzLC0xLCJzaGFyZWRTdHJpbmdzLiIrWCxkdC5TU1QpKSwieG1sIj09WCYmInVuZGVmaW5lZCIhPXR5cGVvZiB3cml0ZV9waXZvdF94bWwmJndyaXRlX3Bpdm90X3htbCh4dCxILEZlLHhlLGllKSwieG1sIj09WCYm''@;'; put 'put ''dm9pZCAwIT09VmImJlZiKFJ0LEgsRmUseGUpLCJ4bWwiPT1YJiYoSC5FeHRlcm5hbFdCfHxbXSkubGVuZ3RoJiZmdW5jdGlvbiB3NihILGllLFgpe1gubGlua3N8fChYLmxpbmtzPVtdKSxILkV4dGVybmFsV0ImJkguRXh0ZXJuYWxXQi5mb3JFYWNoKGZ1bmN0aW9uKHdlLHhlKXt2YXIgRmU9''@;'; put 'put ''Ii94bC9leHRlcm5hbExpbmtzL19yZWxzL2V4dGVybmFsTGluayIrKHhlKzEpKyIueG1sLnJlbHMiLFplPXt9O1h0KFplLC0xLHdlLlRhcmdldCx3ZS5NaXNzaW5nP2R0LlhNSVNTOmR0LlhQQVRIKSx6bihpZSxoMShGZSksaXQoWmUpKTt2YXIgamU9Ii94bC9leHRlcm5hbExpbmtzL2V4dGVy''@;'; put 'put ''bmFsTGluayIrKHhlKzEpKyIueG1sIjtYLmxpbmtzLnB1c2goamUpLHpuKGllLGgxKGplKSxmdW5jdGlvbiB0NShIKXt2YXIgaWU9W2NuLHk2XTtyZXR1cm4oSC5TaGVldE5hbWVzfHxbXSkubGVuZ3RoJiYoaWUucHVzaCgnPGV4dGVybmFsQm9vayB4bWxuczpyPSJodHRwOi8vc2NoZW1hcy5v''@;'; put 'put ''cGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzIiByOmlkPSJySWQxIj4nKSxpZS5wdXNoKCI8c2hlZXROYW1lcz4iKSxILlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihYKXtpZS5wdXNoKCc8c2hlZXROYW1lIHZhbD0iJytScihYKSsnIi8+Jyl9''@;'; put 'put ''KSxpZS5wdXNoKCI8L3NoZWV0TmFtZXM+IiksaWUucHVzaCgiPHNoZWV0RGF0YVNldD4iKSxILlNoZWV0TmFtZXMuZm9yRWFjaChmdW5jdGlvbihYLHdlKXt2YXIgeGU9SC5TaGVldHNbWF0sRmU9e3NoZWV0SWQ6d2V9LFplPW51bGw7aWYobnVsbD09eGUpRmUucmVmcmVzaEVycm9yPTE7ZWxz''@;'; put 'put ''ZSBpZih4ZVsiIXJlZiJdKXt2YXIgamU9QXMoeGVbIiFyZWYiXSk7WmU9IiI7Zm9yKHZhciBZZT1qZS5zLnI7WWU8PWplLmUucjsrK1llKXtmb3IodmFyIE10PSIiLHh0PWplLnMuYzt4dDw9amUuZS5jOysreHQpe3ZhciBSdD1ZMCh7cjpZZSxjOnh0fSk7IXhlW1J0XXx8KE10fHwoTXQ9Jzxy''@;'; put 'put ''b3cgcj0iJysoWWUrMSkrJyI+JyksTXQrPSc8Y2VsbCByPSInK1J0KyciJysoeGVbUnRdLnQ/JyB0PSInK3hlW1J0XS50KyciJzoiIikrIj48dj4iK1JyKHhlW1J0XS52KSsiPC92PjwvY2VsbD4iKX1NdCYmKFplKz1NdCsiPC9yb3c+Iil9fWllLnB1c2goX2koInNoZWV0RGF0YSIsWmUsRmUp''@;'; put 'put ''KX0pLGllLnB1c2goIjwvc2hlZXREYXRhU2V0PiIpLGllLnB1c2goIjwvZXh0ZXJuYWxCb29rPiIpKSxpZS5sZW5ndGg+MiYmKGllW2llLmxlbmd0aF09IjwvZXh0ZXJuYWxMaW5rPiIsaWVbMV09aWVbMV0ucmVwbGFjZSgiLz4iLCI+IikpLGllLmpvaW4oIiIpfSh3ZSkpfSl9KEgsRmUseGUp''@;'; put 'put ''LCJ4bWwiPT1YJiZmdW5jdGlvbiBqOShIKXt2YXIgaWUsWDtILldvcmtib29rfHwoSC5Xb3JrYm9vaz17TmFtZXM6W119KSxILldvcmtib29rLk5hbWVzfHwoSC5Xb3JrYm9vay5OYW1lcz1bXSk7Zm9yKHZhciB3ZT1ILldvcmtib29rLk5hbWVzLHhlPTA7eGU8SC5TaGVldE5hbWVzLmxlbmd0''@;'; put 'put ''aDsrK3hlKXt2YXIgRmU9SC5TaGVldE5hbWVzW3hlXSxaZT1ILlNoZWV0c1tGZV07aWYoWmUmJlplWyIhcHJpbnQiXSl7dmFyIGplPSInIitGZSsiJyEiLFllPVplWyIhcHJpbnQiXTtpZihZZSl7dmFyIE10PSEoaWU9WWUuYXJlYSkseHQ9IShYPVllLnRpdGxlcyksUnQ9aWU/InN0cmluZyI9''@;'; put 'put ''PXR5cGVvZiBpZT9pZTpmYShpZSk6IiI7aWYoaWUmJih3ZS5mb3JFYWNoKGZ1bmN0aW9uKG5uKXtubi5TaGVldD09eGUmJiFNdCYmIl94bG5tLlByaW50X0FyZWEiPT1ubi5OYW1lJiYoTXQ9ITAsbm4uUmVmPWplK1J0KX0pLE10fHx3ZS5wdXNoKHtOYW1lOiJfeGxubS5QcmludF9BcmVhIixS''@;'; put 'put ''ZWY6amUrUnQsU2hlZXQ6eGV9KSksWCl7dmFyIFV0PSIiO1gucy5jPi0xJiZYLmUuYz4tMSYmKFV0Kz1qZStfYShYLnMuYykrIjoiK19hKFguZS5jKSsiLCIpLFgucy5yPi0xJiZYLmUucj4tMSYmKFV0Kz1qZStYYShYLnMucikrIjoiK1hhKFguZS5yKSsiLCIpLFV0PVV0LnNsaWNlKDAsLTEp''@;'; put 'put ''LHdlLmZvckVhY2goZnVuY3Rpb24obm4pe25uLlNoZWV0PT14ZSYmIXh0JiYiX3hsbm0uUHJpbnRfVGl0bGVzIj09bm4uTmFtZSYmKE10PSEwLG5uLlJlZj1VdCl9KSx4dHx8d2UucHVzaCh7TmFtZToiX3hsbm0uUHJpbnRfVGl0bGVzIixSZWY6VXQsU2hlZXQ6eGV9KX19fX19KEgpLHpuKEZl''@;'; put 'put ''LFplPSJ4bC93b3JrYm9vay4iK1gsZnVuY3Rpb24gU1AoSCxpZSxYKXtyZXR1cm4oIi5iaW4iPT09aWUuc2xpY2UoLTQpP1lfOndQKShILFgpfShILFplLGllKSkseGUud29ya2Jvb2tzLnB1c2goWmUpLFh0KGllLnJlbHMsMSxaZSxkdC5XQiksem4oRmUsWmU9InhsL3RoZW1lL3RoZW1lMS54''@;'; put 'put ''bWwiLE45KEguVGhlbWVzLGllKSkseGUudGhlbWVzLnB1c2goWmUpLFh0KGllLndicmVscywtMSwidGhlbWUvdGhlbWUxLnhtbCIsZHQuVEhFTUUpLHpuKEZlLFplPSJ4bC9zdHlsZXMuIitYLGZ1bmN0aW9uIEt4KEgsaWUsWCl7cmV0dXJuKCIuYmluIj09PWllLnNsaWNlKC00KT9NRTpRUiko''@;'; put 'put ''SCxYKX0oSCxaZSxpZSkpLHhlLnN0eWxlcy5wdXNoKFplKSxYdChpZS53YnJlbHMsLTEsInN0eWxlcy4iK1gsZHQuU1RZKSxILnZiYXJhdyYmd2UmJih6bihGZSxaZT0ieGwvdmJhUHJvamVjdC5iaW4iLEgudmJhcmF3KSx4ZS52YmEucHVzaChaZSksWHQoaWUud2JyZWxzLC0xLCJ2YmFQcm9q''@;'; put 'put ''ZWN0LmJpbiIsZHQuVkJBKSksSC5tb2RlbCYmSC5tb2RlbC5sZW5ndGgmJih6bihGZSwieGwvbW9kZWwvaXRlbS5kYXRhIixILm1vZGVsKSxYdChpZS53YnJlbHMsLTEsIm1vZGVsL2l0ZW0uZGF0YSIsZHQuUFdSUEQpKSxILmNvbm4mJih6bihGZSwieGwvY29ubmVjdGlvbnMueG1sIixILmNv''@;'; put 'put ''bm4pLHhlLmNvbm5zLnB1c2goIi94bC9jb25uZWN0aW9ucy54bWwiKSxYdChpZS53YnJlbHMsLTEsImNvbm5lY3Rpb25zLnhtbCIsZHQuQ09OTikpLEguQ3VzdG9tWE1MJiZILkN1c3RvbVhNTC5mb3JFYWNoKGZ1bmN0aW9uKE1yLGFpKXtpZih6bihGZSwiY3VzdG9tWG1sL2l0ZW0iKyhhaSsx''@;'; put 'put ''KSsiLnhtbCIsTXIuZGF0YSksWHQoaWUud2JyZWxzLC0xLCIuLi9jdXN0b21YbWwvaXRlbSIrKGFpKzEpKyIueG1sIixkdC5DWE1MKSxNci5wcm9wcyl7em4oRmUsImN1c3RvbVhtbC9pdGVtUHJvcHMiKyhhaSsxKSsiLnhtbCIsTXIucHJvcHMpLHhlLmN1c3RvbXhtbHByb3BzLnB1c2goIi9j''@;'; put 'put ''dXN0b21YbWwvaXRlbVByb3BzIisoYWkrMSkrIi54bWwiKTt2YXIgeXI9e307WHQoeXIsLTEsIml0ZW1Qcm9wcyIrKGFpKzEpKyIueG1sIixkdC5DWE1MUCksem4oRmUsImN1c3RvbVhtbC9fcmVscy9pdGVtIisoYWkrMSkrIi54bWwucmVscyIsaXQoeXIpKX19KSx6bihGZSwiW0NvbnRlbnRf''@;'; put 'put ''VHlwZXNdLnhtbCIsZnVuY3Rpb24gUk0oSCxpZSxYKXt2YXIgeGUsd2U9W107WHx8KHdlW3dlLmxlbmd0aF09Y24sd2Vbd2UubGVuZ3RoXT1mMix3ZT13ZS5jb25jYXQocFIpKTt2YXIgRmU9ZnVuY3Rpb24oWWUpe0hbWWVdJiZIW1llXS5sZW5ndGg+MCYmKHdlW3dlLmxlbmd0aF09X2koIk92''@;'; put 'put ''ZXJyaWRlIixudWxsLHtQYXJ0TmFtZTooIi8iPT0oeGU9SFtZZV1bMF0pWzBdPyIiOiIvIikreGUsQ29udGVudFR5cGU6Q2FbWWVdW2llLmJvb2tUeXBlfHwieGxzeCJdfSkpfSxaZT1mdW5jdGlvbihZZSl7KEhbWWVdfHxbXSkuZm9yRWFjaChmdW5jdGlvbihNdCl7d2Vbd2UubGVuZ3RoXT1f''@;'; put 'put ''aSgiT3ZlcnJpZGUiLG51bGwse1BhcnROYW1lOigiLyI9PU10WzBdPyIiOiIvIikrTXQsQ29udGVudFR5cGU6Q2FbWWVdW2llLmJvb2tUeXBlfHwieGxzeCJdfSl9KX0samU9ZnVuY3Rpb24oWWUpeyhIW1llXXx8W10pLmZvckVhY2goZnVuY3Rpb24oTXQpe3dlW3dlLmxlbmd0aF09X2koIk92''@;'; put 'put ''ZXJyaWRlIixudWxsLHtQYXJ0TmFtZTooIi8iPT1NdFswXT8iIjoiLyIpK010LENvbnRlbnRUeXBlOiRnW1llXVswXX0pfSl9O3JldHVybiBGZSgid29ya2Jvb2tzIiksWmUoInNoZWV0cyIpLFplKCJjaGFydHMiKSxqZSgidGhlbWVzIiksWyJzdHJzIiwic3R5bGVzIiwiY29ubnMiXS5mb3JF''@;'; put 'put ''YWNoKEZlKSxbImNvcmVwcm9wcyIsImV4dHByb3BzIiwiY3VzdHByb3BzIl0uZm9yRWFjaChqZSksamUoInZiYSIpLGplKCJjb21tZW50cyIpLGplKCJkcmF3aW5ncyIpLFplKCJ0YWJsZXMiKSxaZSgicGl2b3RzIiksWmUoInBpdm90Y2FjaGVzIiksWmUoInBpdm90cmVjb3JkcyIpLGplKCJk''@;'; put 'put ''YXRhbW9kZWxzIiksamUoImN0cmxwcm9wcyIpLGplKCJjaGFydG9ianMiKSxqZSgiY2hhcnRzdHlsZXMiKSxqZSgiY2hhcnRjb2xvcnMiKSxqZSgiY2hhcnRleHMiKSxaZSgibGlua3MiKSxqZSgiY3VzdG9teG1scHJvcHMiKSwhWCYmd2UubGVuZ3RoPjImJih3ZVt3ZS5sZW5ndGhdPSI8L1R5''@;'; put 'put ''cGVzPiIsd2VbMV09d2VbMV0ucmVwbGFjZSgiLz4iLCI+IikpLHdlLmpvaW4oIiIpfSh4ZSxpZSkpLHpuKEZlLCJfcmVscy8ucmVscyIsaXQoaWUucmVscykpLHpuKEZlLCJ4bC9fcmVscy93b3JrYm9vay4iK1grIi5yZWxzIixpdChpZS53YnJlbHMpKSxkZWxldGUgaWUuRm9udHMsZGVsZXRl''@;'; put 'put ''IGllLkZpbGxzLGRlbGV0ZSBpZS5Cb3JkZXJzLGRlbGV0ZSBpZS5yZXZzc2YsZGVsZXRlIGllLnNzZixGZX1mdW5jdGlvbiBVdChNcixhaSl7UnQucHVzaChbamUtMSxhaSxNcl0pfWZ1bmN0aW9uIG5uKE1yKXt4dC5wdXNoKFtqZS0xLE1yXSksWHQoQ24sLTEsIi4uL3Bpdm90VGFibGVzL3Bp''@;'; put 'put ''dm90VGFibGUiK3h0Lmxlbmd0aCsiLiIrWCxkdC5QSVZPVCl9fWZ1bmN0aW9uIGZDKEgsaWUpe3ZhciBYPSIiO3N3aXRjaCgoaWV8fHt9KS50eXBlfHwiYmFzZTY0Iil7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOnJldHVybltIWzBdLEhbMV0sSFsyXSxIWzNdLEhbNF0sSFs1XSxIWzZdLEhb''@;'; put 'put ''N11dO2Nhc2UiYmFzZTY0IjpYPVNlLmRlY29kZShILnNsaWNlKDAsMTIpKTticmVhaztjYXNlImJpbmFyeSI6WD1IO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiKyhpZSYmaWUudHlwZXx8InVuZGVmaW5lZCIpKX1yZXR1cm5bWC5jaGFyQ29kZUF0''@;'; put 'put ''KDApLFguY2hhckNvZGVBdCgxKSxYLmNoYXJDb2RlQXQoMiksWC5jaGFyQ29kZUF0KDMpLFguY2hhckNvZGVBdCg0KSxYLmNoYXJDb2RlQXQoNSksWC5jaGFyQ29kZUF0KDYpLFguY2hhckNvZGVBdCg3KV19ZnVuY3Rpb24gaG8oSCxpZSl7dmFyIFg9MDtlOmZvcig7WDxILmxlbmd0aDspc3dp''@;'; put 'put ''dGNoKEguY2hhckNvZGVBdChYKSl7Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6KytYO2JyZWFrO2Nhc2UgNjA6cmV0dXJuIGVDKEguc2xpY2UoWCksaWUpO2RlZmF1bHQ6YnJlYWsgZX1yZXR1cm4gQTMudG9fd29ya2Jvb2soSCxpZSl9ZnVuY3Rpb24gTjMoSCxpZSxYLHdlKXtyZXR1cm4gd2U/''@;'; put 'put ''KFgudHlwZT0ic3RyaW5nIixBMy50b193b3JrYm9vayhILFgpKTpBMy50b193b3JrYm9vayhpZSxYKX1mdW5jdGlvbiB6ZChILGllKXt2YXIgWD1GLmdldGxvY2FsZSgpO3llKEYpLEYuc2V0bG9jYWxlKFgpLEsoKTt2YXIgd2U9aWV8fHt9O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlC''@;'; put 'put ''dWZmZXImJkggaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcilyZXR1cm4gemQobmV3IFVpbnQ4QXJyYXkoSCksKCh3ZT1sbih3ZSkpLnR5cGU9ImFycmF5Iix3ZSkpO3ZhciBGZSx4ZT1ILFplPSExO2lmKEMzKFI0PXdlLlBQSXx8OTYpLHdlLmNlbGxTdHlsZXMmJih3ZS5jZWxsTkY9ITAsd2Uuc2hl''@;'; put 'put ''ZXRTdHVicz0hMCksVWM9e30sd2UuZGF0ZU5GJiYoVWMuZGF0ZU5GPXdlLmRhdGVORiksd2UudHlwZXx8KHdlLnR5cGU9SWUmJkJ1ZmZlci5pc0J1ZmZlcihIKT8iYnVmZmVyIjoiYmFzZTY0IiksImZpbGUiPT13ZS50eXBlJiYod2UudHlwZT1JZT8iYnVmZmVyIjoiYmluYXJ5Iix4ZT1mdW5j''@;'; put 'put ''dGlvbiBCdChIKXtpZih2b2lkIDAhPT12dClyZXR1cm4gdnQucmVhZEZpbGVTeW5jKEgpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCYmInVuZGVmaW5lZCIhPXR5cGVvZiBGaWxlJiYidW5kZWZpbmVkIiE9dHlwZW9mIEZvbGRlcil0cnl7dmFyIGllPUZpbGUoSCk7aWUub3BlbigiciIpLGll''@;'; put 'put ''LmVuY29kaW5nPSJiaW5hcnkiO3ZhciBYPWllLnJlYWQoKTtyZXR1cm4gaWUuY2xvc2UoKSxYfWNhdGNoKHdlKXtpZighd2UubWVzc2FnZXx8IXdlLm1lc3NhZ2UubWF0Y2goL29uc3RydWN0LykpdGhyb3cgd2V9dGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgYWNjZXNzIGZpbGUgIitIKX0oSCkp''@;'; put 'put ''LCJzdHJpbmciPT13ZS50eXBlJiYoWmU9ITAsd2UudHlwZT0iYmluYXJ5Iix3ZS5jb2RlcGFnZT02NTAwMSx4ZT1mdW5jdGlvbiBHbyhIKXtyZXR1cm4gSC5tYXRjaCgvW15ceDAwLVx4N0ZdLyk/RW8oSCk6SH0oSCkpLCJhcnJheSI9PXdlLnR5cGUmJiJ1bmRlZmluZWQiIT10eXBlb2YgVWlu''@;'; put 'put ''dDhBcnJheSYmSCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkmJiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXIpe3ZhciBqZT1uZXcgQXJyYXlCdWZmZXIoMyksWWU9bmV3IFVpbnQ4QXJyYXkoamUpO2lmKFllLmZvbz0iYmFyIiwhWWUuZm9vKXJldHVybih3ZT1sbih3ZSkpLnR5cGU9ImFy''@;'; put 'put ''cmF5Iix6ZChQKHhlKSx3ZSl9c3dpdGNoKChGZT1mQyh4ZSx3ZSkpWzBdKXtjYXNlIDIwODppZigyMDc9PT1GZVsxXSYmMTc9PT1GZVsyXSYmMjI0PT09RmVbM10mJjE2MT09PUZlWzRdJiYxNzc9PT1GZVs1XSYmMjY9PT1GZVs2XSYmMjI1PT09RmVbN10pcmV0dXJuIGZ1bmN0aW9uIG9jKEgs''@;'; put 'put ''aWUpe3JldHVybiBtdC5maW5kKEgsIkVuY3J5cHRlZFBhY2thZ2UiKT8kbShILGllKTpVbShILGllKX0obXQucmVhZCh4ZSx3ZSksd2UpO2JyZWFrO2Nhc2UgOTppZihGZVsxXTw9OClyZXR1cm4gVW0oeGUsd2UpO2JyZWFrO2Nhc2UgNjA6cmV0dXJuIGVDKHhlLHdlKTtjYXNlIDczOmlmKDcz''@;'; put 'put ''PT09RmVbMV0mJjQyPT09RmVbMl0mJjA9PT1GZVszXSl0aHJvdyBuZXcgRXJyb3IoIlRJRkYgSW1hZ2UgRmlsZSBpcyBub3QgYSBzcHJlYWRzaGVldCIpO2lmKDY4PT09RmVbMV0pcmV0dXJuIGZ1bmN0aW9uIEFiKEgsaWUpe3ZhciBYPWllfHx7fSx3ZT0hIVguV1RGO1guV1RGPSEwO3RyeXt2''@;'; put 'put ''YXIgeGU9Zm0udG9fd29ya2Jvb2soSCxYKTtyZXR1cm4gWC5XVEY9d2UseGV9Y2F0Y2goRmUpe2lmKFguV1RGPXdlLCFGZS5tZXNzYWdlLm1hdGNoKC9TWUxLIGJhZCByZWNvcmQgSUQvKSYmd2UpdGhyb3cgRmU7cmV0dXJuIEEzLnRvX3dvcmtib29rKEgsaWUpfX0oeGUsd2UpO2JyZWFrO2Nh''@;'; put 'put ''c2UgODQ6aWYoNjU9PT1GZVsxXSYmNjY9PT1GZVsyXSYmNzY9PT1GZVszXSlyZXR1cm4gdmIudG9fd29ya2Jvb2soeGUsd2UpO2JyZWFrO2Nhc2UgODA6cmV0dXJuIDc1PT09RmVbMV0mJkZlWzJdPDkmJkZlWzNdPDk/ZnVuY3Rpb24gVVAoSCxpZSl7dmFyIHdlPUgseGU9aWV8fHt9O3JldHVy''@;'; put 'put ''biB4ZS50eXBlfHwoeGUudHlwZT1JZSYmQnVmZmVyLmlzQnVmZmVyKEgpPyJidWZmZXIiOiJiYXNlNjQiKSxLbShtbih3ZSx4ZSkseGUpfSh4ZSx3ZSk6TjMoSCx4ZSx3ZSxaZSk7Y2FzZSAyMzk6cmV0dXJuIDYwPT09RmVbM10/ZUMoeGUsd2UpOk4zKEgseGUsd2UsWmUpO2Nhc2UgMjU1Omlm''@;'; put 'put ''KDI1ND09PUZlWzFdKXJldHVybiBmdW5jdGlvbiBDMShILGllKXt2YXIgWD1IO3JldHVybiJiYXNlNjQiPT1pZS50eXBlJiYoWD1TZS5kZWNvZGUoWCkpLFg9Y3B0YWJsZS51dGlscy5kZWNvZGUoMTIwMCxYLnNsaWNlKDIpLCJzdHIiKSxpZS50eXBlPSJiaW5hcnkiLGhvKFgsaWUpfSh4ZSx3''@;'; put 'put ''ZSk7YnJlYWs7Y2FzZSAwOmlmKDA9PT1GZVsxXSYmRmVbMl0+PTImJjA9PT1GZVszXSlyZXR1cm4gRzEudG9fd29ya2Jvb2soeGUsd2UpO2JyZWFrO2Nhc2UgMzpjYXNlIDEzMTpjYXNlIDEzOTpjYXNlIDE0MDpyZXR1cm4gWWYudG9fd29ya2Jvb2soeGUsd2UpO2Nhc2UgMTIzOmlmKDkyPT09''@;'; put 'put ''RmVbMV0mJjExND09PUZlWzJdJiYxMTY9PT1GZVszXSlyZXR1cm4geDkudG9fd29ya2Jvb2soeGUsd2UpO2JyZWFrO2Nhc2UgMTA6Y2FzZSAxMzpjYXNlIDMyOnJldHVybiBmdW5jdGlvbiBIMyhILGllKXt2YXIgWD0iIix3ZT1mQyhILGllKTtzd2l0Y2goaWUudHlwZSl7Y2FzZSJiYXNlNjQi''@;'; put 'put ''Olg9U2UuZGVjb2RlKEgpO2JyZWFrO2Nhc2UiYmluYXJ5IjpYPUg7YnJlYWs7Y2FzZSJidWZmZXIiOlg9SC50b1N0cmluZygiYmluYXJ5Iik7YnJlYWs7Y2FzZSJhcnJheSI6WD15bihIKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitpZS50eXBl''@;'; put 'put ''KX1yZXR1cm4gMjM5PT13ZVswXSYmMTg3PT13ZVsxXSYmMTkxPT13ZVsyXSYmKFg9VzAoWCkpLGhvKFgsaWUpfSh4ZSx3ZSl9cmV0dXJuIFlmLnZlcnNpb25zLmluZGV4T2YoRmVbMF0pPi0xJiZGZVsyXTw9MTImJkZlWzNdPD0zMT9ZZi50b193b3JrYm9vayh4ZSx3ZSk6TjMoSCx4ZSx3ZSxa''@;'; put 'put ''ZSl9ZnVuY3Rpb24gZTcoSCxpZSl7dmFyIFg9aWV8fHt9O3JldHVybiBYLnR5cGU9ImZpbGUiLHpkKEgsWCl9ZnVuY3Rpb24gU2MoSCxpZSl7c3dpdGNoKGllLnR5cGUpe2Nhc2UiYmFzZTY0IjpjYXNlImJpbmFyeSI6YnJlYWs7Y2FzZSJidWZmZXIiOmNhc2UiYXJyYXkiOmllLnR5cGU9IiI7''@;'; put 'put ''YnJlYWs7Y2FzZSJmaWxlIjpyZXR1cm4gaHQoaWUuZmlsZSxtdC53cml0ZShILHt0eXBlOkllPyJidWZmZXIiOiIifSkpO2Nhc2Uic3RyaW5nIjp0aHJvdyBuZXcgRXJyb3IoIidzdHJpbmcnIG91dHB1dCB0eXBlIGludmFsaWQgZm9yICciK2llLmJvb2tUeXBlKyInIGZpbGVzIik7ZGVmYXVs''@;'; put 'put ''dDp0aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIraWUudHlwZSl9cmV0dXJuIG10LndyaXRlKEgsaWUpfWZ1bmN0aW9uIFYzKEgsaWUsWCl7WHx8KFg9IiIpO3ZhciB3ZT1YK0g7c3dpdGNoKGllLnR5cGUpe2Nhc2UiYmFzZTY0IjpyZXR1cm4gU2UuZW5jb2RlKEVvKHdlKSk7''@;'; put 'put ''Y2FzZSJiaW5hcnkiOnJldHVybiBFbyh3ZSk7Y2FzZSJzdHJpbmciOnJldHVybiBIO2Nhc2UiZmlsZSI6cmV0dXJuIGh0KGllLmZpbGUsd2UsInV0ZjgiKTtjYXNlImJ1ZmZlciI6cmV0dXJuIEllP1RlKHdlLCJ1dGY4Iik6VjMod2Use3R5cGU6ImJpbmFyeSJ9KS5zcGxpdCgiIikubWFwKGZ1''@;'; put 'put ''bmN0aW9uKHhlKXtyZXR1cm4geGUuY2hhckNvZGVBdCgwKX0pfXRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitpZS50eXBlKX1mdW5jdGlvbiBkQyhILGllKXtzd2l0Y2goaWUudHlwZSl7Y2FzZSJzdHJpbmciOmNhc2UiYmFzZTY0IjpjYXNlImJpbmFyeSI6Zm9yKHZhciBY''@;'; put 'put ''PSIiLHdlPTA7d2U8SC5sZW5ndGg7Kyt3ZSlYKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEhbd2VdKTtyZXR1cm4iYmFzZTY0Ij09aWUudHlwZT9TZS5lbmNvZGUoWCk6InN0cmluZyI9PWllLnR5cGU/VzAoWCk6WDtjYXNlImZpbGUiOnJldHVybiBodChpZS5maWxlLEgpO2Nhc2UiYnVmZmVyIjpy''@;'; put 'put ''ZXR1cm4gSDtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIHR5cGUgIitpZS50eXBlKX19ZnVuY3Rpb24gbjcoSCxpZSl7SygpLGZ1bmN0aW9uIHlQKEgpe2lmKCFIfHwhSC5TaGVldE5hbWVzfHwhSC5TaGVldHMpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIFdvcmtib29r''@;'; put 'put ''Iik7aWYoIUguU2hlZXROYW1lcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJXb3JrYm9vayBpcyBlbXB0eSIpOyFmdW5jdGlvbiBBUChILGllLFgpe0guZm9yRWFjaChmdW5jdGlvbih3ZSx4ZSl7Wngod2UpO2Zvcih2YXIgRmU9MDtGZTx4ZTsrK0ZlKWlmKHdlPT1IW0ZlXSl0aHJvdyBuZXcg''@;'; put 'put ''RXJyb3IoIkR1cGxpY2F0ZSBTaGVldCBOYW1lOiAiK3dlKTtpZihYKXt2YXIgWmU9aWUmJmllW3hlXSYmaWVbeGVdLkNvZGVOYW1lfHx3ZTtpZig5NT09WmUuY2hhckNvZGVBdCgwKSYmWmUubGVuZ3RoPjIyKXRocm93IG5ldyBFcnJvcigiQmFkIENvZGUgTmFtZTogV29ya3NoZWV0IitaZSl9''@;'; put 'put ''fSl9KEguU2hlZXROYW1lcyxILldvcmtib29rJiZILldvcmtib29rLlNoZWV0c3x8W10sISFILnZiYXJhdyk7Zm9yKHZhciBYPTA7WDxILlNoZWV0TmFtZXMubGVuZ3RoOysrWClvQShILlNoZWV0c1tILlNoZWV0TmFtZXNbWF1dLDAsWCl9KEgpO3ZhciBYPWllfHx7fTtpZihYLmNlbGxTdHls''@;'; put 'put ''ZXMmJihYLmNlbGxORj0hMCxYLnNoZWV0U3R1YnM9ITApLCJhcnJheSI9PVgudHlwZSl7WC50eXBlPSJiaW5hcnkiO3ZhciB3ZT1uNyhILFgpO3JldHVybiBYLnR5cGU9ImFycmF5IixlZSh3ZSl9c3dpdGNoKFguYm9va1R5cGV8fCJ4bHNiIil7Y2FzZSJ4bWwiOmNhc2UieGxtbCI6cmV0dXJu''@;'; put 'put ''IFYzKE1BKEgsWCksWCk7Y2FzZSJzbGsiOmNhc2Uic3lsayI6cmV0dXJuIFYzKGxDKEgsWCksWCk7Y2FzZSJodG0iOmNhc2UiaHRtbCI6cmV0dXJuIFYzKGpkKEgsWCksWCk7Y2FzZSJ0eHQiOnJldHVybiBmdW5jdGlvbiBoQyhILGllKXtzd2l0Y2goaWUudHlwZSl7Y2FzZSJiYXNlNjQiOnJl''@;'; put 'put ''dHVybiBTZS5lbmNvZGUoSCk7Y2FzZSJiaW5hcnkiOmNhc2Uic3RyaW5nIjpyZXR1cm4gSDtjYXNlImZpbGUiOnJldHVybiBodChpZS5maWxlLEgsImJpbmFyeSIpO2Nhc2UiYnVmZmVyIjpyZXR1cm4gSWU/VGUoSCwiYmluYXJ5Iik6SC5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKFgpe3JldHVy''@;'; put 'put ''biBYLmNoYXJDb2RlQXQoMCl9KX10aHJvdyBuZXcgRXJyb3IoIlVucmVjb2duaXplZCB0eXBlICIraWUudHlwZSl9KHBUKEgsWCksWCk7Y2FzZSJjc3YiOnJldHVybiBWMyhJQShILFgpLFgsIlx1ZmVmZiIpO2Nhc2UiZGlmIjpyZXR1cm4gVjMoc0MoSCxYKSxYKTtjYXNlImRiZiI6cmV0dXJu''@;'; put 'put ''IGRDKHVDKEgsWCksWCk7Y2FzZSJwcm4iOnJldHVybiBWMyhzaShILFgpLFgpO2Nhc2UicnRmIjpyZXR1cm4gVjMoelAoSCxYKSxYKTtjYXNlImV0aCI6cmV0dXJuIFYzKFZsKEgsWCksWCk7Y2FzZSJmb2RzIjpyZXR1cm4gVjMoVEEoSCxYKSxYKTtjYXNlImJpZmYyIjpYLmJpZmZ8fChYLmJp''@;'; put 'put ''ZmY9Mik7Y2FzZSJiaWZmMyI6WC5iaWZmfHwoWC5iaWZmPTMpO2Nhc2UiYmlmZjQiOnJldHVybiBYLmJpZmZ8fChYLmJpZmY9NCksZEMoWG0oSCxYKSxYKTtjYXNlImJpZmY1IjpYLmJpZmZ8fChYLmJpZmY9NSk7Y2FzZSJiaWZmOCI6Y2FzZSJ4bGEiOmNhc2UieGxzIjpyZXR1cm4gWC5iaWZm''@;'; put 'put ''fHwoWC5iaWZmPTgpLGZ1bmN0aW9uIExBKEgsaWUpe3ZhciBYPWllfHx7fTtyZXR1cm4gU2MoZnVuY3Rpb24gQlAoSCxpZSl7dmFyIFg9aWV8fHt9LHdlPW10LnV0aWxzLmNmYl9uZXcoe3Jvb3Q6IlIifSkseGU9Ii9Xb3JrYm9vayI7c3dpdGNoKFguYm9va1R5cGV8fCJ4bHMiKXtjYXNlInhs''@;'; put 'put ''cyI6WC5ib29rVHlwZT0iYmlmZjgiO2Nhc2UieGxhIjpYLmJvb2tUeXBlfHwoWC5ib29rVHlwZT0ieGxhIik7Y2FzZSJiaWZmOCI6eGU9Ii9Xb3JrYm9vayIsWC5iaWZmPTg7YnJlYWs7Y2FzZSJiaWZmNSI6eGU9Ii9Cb29rIixYLmJpZmY9NTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJv''@;'; put 'put ''cigiaW52YWxpZCB0eXBlICIrWC5ib29rVHlwZSsiIGZvciBYTFMgQ0ZCIil9cmV0dXJuIG10LnV0aWxzLmNmYl9hZGQod2UseGUsWG0oSCxYKSksOD09WC5iaWZmJiYoSC5Qcm9wc3x8SC5DdXN0cHJvcHMpJiZmdW5jdGlvbiBzVChILGllKXt2YXIgWmUsWD1bXSx3ZT1bXSx4ZT1bXSxGZT0w''@;'; put 'put ''O2lmKEguUHJvcHMpZm9yKFplPW9uKEguUHJvcHMpLEZlPTA7RmU8WmUubGVuZ3RoOysrRmUpKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh2YyxaZVtGZV0pP1g6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHA5LFplW0ZlXSk/d2U6eGUpLnB1c2go''@;'; put 'put ''W1plW0ZlXSxILlByb3BzW1plW0ZlXV1dKTtpZihILkN1c3Rwcm9wcylmb3IoWmU9b24oSC5DdXN0cHJvcHMpLEZlPTA7RmU8WmUubGVuZ3RoOysrRmUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKEguUHJvcHN8fHt9LFplW0ZlXSl8fChPYmplY3QucHJvdG90eXBlLmhh''@;'; put 'put ''c093blByb3BlcnR5LmNhbGwodmMsWmVbRmVdKT9YOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwOSxaZVtGZV0pP3dlOnhlKS5wdXNoKFtaZVtGZV0sSC5DdXN0cHJvcHNbWmVbRmVdXV0pO3ZhciBqZT1bXTtmb3IoRmU9MDtGZTx4ZS5sZW5ndGg7KytGZSlJOC5pbmRl''@;'; put 'put ''eE9mKHhlW0ZlXVswXSk+LTF8fG51bGwhPXhlW0ZlXVsxXSYmamUucHVzaCh4ZVtGZV0pO3dlLmxlbmd0aCYmbXQudXRpbHMuY2ZiX2FkZChpZSwiL1x4MDVTdW1tYXJ5SW5mb3JtYXRpb24iLGEwKHdlLEU1X1NJLHA5LFVwKSksKFgubGVuZ3RofHxqZS5sZW5ndGgpJiZtdC51dGlscy5jZmJf''@;'; put 'put ''YWRkKGllLCIvXHgwNURvY3VtZW50U3VtbWFyeUluZm9ybWF0aW9uIixhMChYLEU1X0RTSSx2YyxyYixqZS5sZW5ndGg/amU6bnVsbCwiMDVkNWNkZDU5YzJlMWIxMDkzOTcwODAwMmIyY2Y5YWUiKSl9KEgsd2UpLDg9PVguYmlmZiYmSC52YmFyYXcmJmZ1bmN0aW9uIGttKEgsaWUpe2llLkZ1''@;'; put 'put ''bGxQYXRocy5mb3JFYWNoKGZ1bmN0aW9uKFgsd2Upe2lmKDAhPXdlKXt2YXIgeGU9WC5yZXBsYWNlKC9bXlwvXSpbXC9dLywiL19WQkFfUFJPSkVDVF9DVVIvIik7Ii8iIT09eGUuc2xpY2UoLTEpJiZtdC51dGlscy5jZmJfYWRkKEgseGUsaWUuRmlsZUluZGV4W3dlXS5jb250ZW50KX19KX0o''@;'; put 'put ''d2UsbXQucmVhZChILnZiYXJhdyx7dHlwZToic3RyaW5nIj09dHlwZW9mIEgudmJhcmF3PyJiaW5hcnkiOiJidWZmZXIifSkpLHdlfShILFgpLFgpfShILFgpO2Nhc2UieGxzeCI6Y2FzZSJ4bHNtIjpjYXNlInhsYW0iOmNhc2UieGxzYiI6Y2FzZSJvZHMiOnJldHVybiBmdW5jdGlvbiB0NyhI''@;'; put 'put ''LGllKXt2YXIgWD1pZXx8e30sd2U9WmQoSCxYKSx4ZT17fTtpZihYLmNvbXByZXNzaW9uJiYoeGUuY29tcHJlc3Npb249IkRFRkxBVEUiKSxYLnBhc3N3b3JkKXhlLnR5cGU9SWU/Im5vZGVidWZmZXIiOiJzdHJpbmciO2Vsc2Ugc3dpdGNoKFgudHlwZSl7Y2FzZSJiYXNlNjQiOnhlLnR5cGU9''@;'; put 'put ''ImJhc2U2NCI7YnJlYWs7Y2FzZSJiaW5hcnkiOnhlLnR5cGU9InN0cmluZyI7YnJlYWs7Y2FzZSJzdHJpbmciOnRocm93IG5ldyBFcnJvcigiJ3N0cmluZycgb3V0cHV0IHR5cGUgaW52YWxpZCBmb3IgJyIrWC5ib29rVHlwZSsiJyBmaWxlcyIpO2Nhc2UiYnVmZmVyIjpjYXNlImZpbGUiOnhl''@;'; put 'put ''LnR5cGU9SWU/Im5vZGVidWZmZXIiOiJzdHJpbmciO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgdHlwZSAiK1gudHlwZSl9dmFyIEZlPXdlLkZ1bGxQYXRocz9tdC53cml0ZSh3ZSx7ZmlsZVR5cGU6InppcCIsdHlwZTp7bm9kZWJ1ZmZlcjoiYnVmZmVyIixz''@;'; put 'put ''dHJpbmc6ImJpbmFyeSJ9W3hlLnR5cGVdfHx4ZS50eXBlfSk6d2UuZ2VuZXJhdGUoeGUpO3JldHVybiBYLnBhc3N3b3JkJiZ2b2lkIDAhPT1TZj9TYyhTZihGZSxYLnBhc3N3b3JkKSxYKToiZmlsZSI9PT1YLnR5cGU/aHQoWC5maWxlLEZlKToic3RyaW5nIj09WC50eXBlP1cwKEZlKTpGZX0o''@;'; put 'put ''SCxYKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiVW5yZWNvZ25pemVkIGJvb2tUeXBlIHwiK1guYm9va1R5cGUrInwiKX19ZnVuY3Rpb24gcEMoSCl7aWYoIUguYm9va1R5cGUpe3ZhciBYPUguZmlsZS5zbGljZShILmZpbGUubGFzdEluZGV4T2YoIi4iKSkudG9Mb3dlckNhc2UoKTtYLm1h''@;'; put 'put ''dGNoKC9eXC5bYS16XSskLykmJihILmJvb2tUeXBlPVguc2xpY2UoMSkpLEguYm9va1R5cGU9e3hsczoiYmlmZjgiLGh0bToiaHRtbCIsc2xrOiJzeWxrIixzb2NpYWxjYWxjOiJldGgiLFNoMzN0SlM6IldURiJ9W0guYm9va1R5cGVdfHxILmJvb2tUeXBlfX1mdW5jdGlvbiBnQyhILGllLFgp''@;'; put 'put ''e3ZhciB3ZT1YfHx7fTtyZXR1cm4gd2UudHlwZT0iZmlsZSIsd2UuZmlsZT1pZSxwQyh3ZSksbjcoSCx3ZSl9ZnVuY3Rpb24gSzQoSCxpZSxYLHdlLHhlLEZlLFplLGplKXt2YXIgWWU9WGEoWCksTXQ9amUuZGVmdmFsLHh0PWplLnJhdyxSdD0hMCxVdD0xPT09eGU/W106e307aWYoMSE9PXhl''@;'; put 'put ''KWlmKE9iamVjdC5kZWZpbmVQcm9wZXJ0eSl0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KFV0LCJfX3Jvd051bV9fIix7dmFsdWU6WCxlbnVtZXJhYmxlOiExfSl9Y2F0Y2goenQpe1V0Ll9fcm93TnVtX189WH1lbHNlIFV0Ll9fcm93TnVtX189WDtpZighWmV8fEhbWF0pZm9yKHZhciBubj1p''@;'; put 'put ''ZS5zLmM7bm48PWllLmUuYzsrK25uKXt2YXIgQ249WmU/SFtYXVtubl06SFt3ZVtubl0rWWVdO2lmKHZvaWQgMCE9PUNuJiZ2b2lkIDAhPT1Dbi50KXt2YXIgRHQ9Q24udjtzd2l0Y2goQ24udCl7Y2FzZSJ6IjppZihudWxsPT1EdClicmVhaztjb250aW51ZTtjYXNlImUiOkR0PTA9PUR0P251''@;'; put 'put ''bGw6dm9pZCAwO2JyZWFrO2Nhc2UicyI6Y2FzZSJkIjpjYXNlImIiOmNhc2UibiI6YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVucmVjb2duaXplZCB0eXBlICIrQ24udCl9aWYobnVsbCE9RmVbbm5dKXtpZihudWxsPT1EdClpZigiZSI9PUNuLnQmJm51bGw9PT1EdClVdFtGZVtu''@;'; put 'put ''bl1dPW51bGw7ZWxzZSBpZih2b2lkIDAhPT1NdClVdFtGZVtubl1dPU10O2Vsc2V7aWYoIXh0fHxudWxsIT09RHQpY29udGludWU7VXRbRmVbbm5dXT1udWxsfWVsc2UgVXRbRmVbbm5dXT14dD9EdDp5MShDbixEdCxqZSk7bnVsbCE9RHQmJihSdD0hMSl9fWVsc2V7aWYodm9pZCAwPT09TXQp''@;'; put 'put ''Y29udGludWU7bnVsbCE9RmVbbm5dJiYoVXRbRmVbbm5dXT1NdCl9fXJldHVybntyb3c6VXQsaXNlbXB0eTpSdH19ZnVuY3Rpb24gT0EoSCxpZSl7aWYobnVsbD09SHx8bnVsbD09SFsiIXJlZiJdKXJldHVybltdO3ZhciBYPXt0OiJuIix2OjB9LHdlPTAseGU9MSxGZT1bXSxaZT0wLGplPSIi''@;'; put 'put ''LFllPUpTT04ucGFyc2UoJ3sicyI6eyJyIjowLCJjIjowfSwiZSI6eyJyIjowLCJjIjowfX0nKSxNdD1pZXx8e30seHQ9bnVsbCE9TXQucmFuZ2U/TXQucmFuZ2U6SFsiIXJlZiJdO3N3aXRjaCgxPT09TXQuaGVhZGVyP3dlPTE6IkEiPT09TXQuaGVhZGVyP3dlPTI6QXJyYXkuaXNBcnJheShN''@;'; put 'put ''dC5oZWFkZXIpP3dlPTM6bnVsbD09TXQuaGVhZGVyJiYod2U9MCksdHlwZW9mIHh0KXtjYXNlInN0cmluZyI6WWU9Rm8oeHQpO2JyZWFrO2Nhc2UibnVtYmVyIjooWWU9Rm8oSFsiIXJlZiJdKSkucy5yPXh0O2JyZWFrO2RlZmF1bHQ6WWU9eHR9d2U+MCYmKHhlPTApO3ZhciBSdD1YYShZZS5z''@;'; put 'put ''LnIpLFV0PVtdLG5uPVtdLENuPTAsRHQ9MCx6dD1BcnJheS5pc0FycmF5KEgpLFBuPVllLnMucixUbj0wLE9uPTA7Zm9yKHp0JiYhSFtQbl0mJihIW1BuXT1bXSksVG49WWUucy5jO1RuPD1ZZS5lLmM7KytUbilzd2l0Y2goVXRbVG5dPV9hKFRuKSxYPXp0P0hbUG5dW1RuXTpIW1V0W1RuXStS''@;'; put 'put ''dF0sd2Upe2Nhc2UgMTpGZVtUbl09VG4tWWUucy5jO2JyZWFrO2Nhc2UgMjpGZVtUbl09VXRbVG5dO2JyZWFrO2Nhc2UgMzpGZVtUbl09TXQuaGVhZGVyW1RuLVllLnMuY107YnJlYWs7ZGVmYXVsdDpmb3IobnVsbD09WCYmKFg9SlNPTi5wYXJzZSgneyJ3IjogIl9fRU1QVFkiLCAidCI6ICJz''@;'; put 'put ''In0nKSksamU9WmU9eTEoWCxudWxsLE10KSxEdD0wLE9uPTA7T248RmUubGVuZ3RoOysrT24pRmVbT25dPT1qZSYmKGplPVplKyJfIisgKytEdCk7RmVbVG5dPWplfWZvcihQbj1ZZS5zLnIreGU7UG48PVllLmUucjsrK1BuKXt2YXIgWW49SzQoSCxZZSxQbixVdCx3ZSxGZSx6dCxNdCk7KCEx''@;'; put 'put ''PT09WW4uaXNlbXB0eXx8KDE9PT13ZT8hMSE9PU10LmJsYW5rcm93czpNdC5ibGFua3Jvd3MpKSYmKG5uW0NuKytdPVluLnJvdyl9cmV0dXJuIG5uLmxlbmd0aD1Dbixubn12YXIgQjY9LyIvZztmdW5jdGlvbiB0aShILGllLFgsd2UseGUsRmUsWmUsamUpe2Zvcih2YXIgWWU9ITAsTXQ9W10s''@;'; put 'put ''eHQ9IiIsUnQ9WGEoWCksVXQ9aWUucy5jO1V0PD1pZS5lLmM7KytVdClpZih3ZVtVdF0pe3ZhciBubj1qZS5kZW5zZT8oSFtYXXx8W10pW1V0XTpIW3dlW1V0XStSdF07aWYobnVsbD09bm4peHQ9IiI7ZWxzZSBpZihudWxsIT1ubi52KXtZZT0hMSx4dD0iIit5MShubixudWxsLGplKTtmb3Io''@;'; put 'put ''dmFyIENuPTAsRHQ9MDtDbiE9PXh0Lmxlbmd0aDsrK0NuKWlmKChEdD14dC5jaGFyQ29kZUF0KENuKSk9PT14ZXx8RHQ9PT1GZXx8MzQ9PT1EdCl7eHQ9JyInK3h0LnJlcGxhY2UoQjYsJyIiJykrJyInO2JyZWFrfSJJRCI9PXh0JiYoeHQ9JyJJRCInKX1lbHNlIG51bGw9PW5uLmZ8fG5uLkY/''@;'; put 'put ''eHQ9IiI6KFllPSExLCh4dD0iPSIrbm4uZikuaW5kZXhPZigiLCIpPj0wJiYoeHQ9JyInK3h0LnJlcGxhY2UoQjYsJyIiJykrJyInKSk7TXQucHVzaCh4dCl9cmV0dXJuITE9PT1qZS5ibGFua3Jvd3MmJlllP251bGw6TXQuam9pbihaZSl9ZnVuY3Rpb24gTDUoSCxpZSl7dmFyIFg9W10sd2U9''@;'; put 'put ''bnVsbD09aWU/e306aWU7aWYobnVsbD09SHx8bnVsbD09SFsiIXJlZiJdKXJldHVybiIiO3ZhciB4ZT1GbyhIWyIhcmVmIl0pLEZlPXZvaWQgMCE9PXdlLkZTP3dlLkZTOiIsIixaZT1GZS5jaGFyQ29kZUF0KDApLGplPXZvaWQgMCE9PXdlLlJTP3dlLlJTOiJcbiIsWWU9amUuY2hhckNvZGVB''@;'; put 'put ''dCgwKSxNdD1uZXcgUmVnRXhwKCgifCI9PUZlPyJcXHwiOkZlKSsiKyQiKSx4dD0iIixSdD1bXTt3ZS5kZW5zZT1BcnJheS5pc0FycmF5KEgpO2Zvcih2YXIgVXQ9d2Uuc2tpcEhpZGRlbiYmSFsiIWNvbHMiXXx8W10sbm49d2Uuc2tpcEhpZGRlbiYmSFsiIXJvd3MiXXx8W10sQ249eGUucy5j''@;'; put 'put ''O0NuPD14ZS5lLmM7KytDbikoVXRbQ25dfHx7fSkuaGlkZGVufHwoUnRbQ25dPV9hKENuKSk7Zm9yKHZhciBEdD14ZS5zLnI7RHQ8PXhlLmUucjsrK0R0KShubltEdF18fHt9KS5oaWRkZW58fG51bGwhPSh4dD10aShILHhlLER0LFJ0LFplLFllLEZlLHdlKSkmJih3ZS5zdHJpcCYmKHh0PXh0''@;'; put 'put ''LnJlcGxhY2UoTXQsIiIpKSxYLnB1c2goeHQramUpKTtyZXR1cm4gZGVsZXRlIHdlLmRlbnNlLFguam9pbigiIil9ZnVuY3Rpb24gbUMoSCxpZSl7aWV8fChpZT17fSksaWUuRlM9Ilx0IixpZS5SUz0iXG4iO3ZhciBYPUw1KEgsaWUpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3B0YWJsZXx8''@;'; put 'put ''InN0cmluZyI9PWllLnR5cGUpcmV0dXJuIFg7dmFyIHdlPWNwdGFibGUudXRpbHMuZW5jb2RlKDEyMDAsWCwic3RyIik7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoMjU1KStTdHJpbmcuZnJvbUNoYXJDb2RlKDI1NCkrd2V9ZnVuY3Rpb24gdkMoSCl7dmFyIFgsaWU9IiIsd2U9IiI7aWYo''@;'; put 'put ''bnVsbD09SHx8bnVsbD09SFsiIXJlZiJdKXJldHVybltdO3ZhciBqZSx4ZT1GbyhIWyIhcmVmIl0pLEZlPSIiLFplPVtdLFllPVtdLE10PUFycmF5LmlzQXJyYXkoSCk7Zm9yKGplPXhlLnMuYztqZTw9eGUuZS5jOysramUpWmVbamVdPV9hKGplKTtmb3IodmFyIHh0PXhlLnMucjt4dDw9eGUu''@;'; put 'put ''ZS5yOysreHQpZm9yKEZlPVhhKHh0KSxqZT14ZS5zLmM7amU8PXhlLmUuYzsrK2plKWlmKGllPVplW2plXStGZSx3ZT0iIix2b2lkIDAhPT0oWD1NdD8oSFt4dF18fFtdKVtqZV06SFtpZV0pKXtpZihudWxsIT1YLkYpe2lmKGllPVguRiwhWC5mKWNvbnRpbnVlO3dlPVguZiwtMT09aWUuaW5k''@;'; put 'put ''ZXhPZigiOiIpJiYoaWU9aWUrIjoiK2llKX1pZihudWxsIT1YLmYpd2U9WC5mO2Vsc2V7aWYoInoiPT1YLnQpY29udGludWU7aWYoIm4iPT1YLnQmJm51bGwhPVgudil3ZT0iIitYLnY7ZWxzZSBpZigiYiI9PVgudCl3ZT1YLnY/IlRSVUUiOiJGQUxTRSI7ZWxzZSBpZih2b2lkIDAhPT1YLncp''@;'; put 'put ''d2U9IiciK1gudztlbHNle2lmKHZvaWQgMD09PVgudiljb250aW51ZTt3ZT0icyI9PVgudD8iJyIrWC52OiIiK1gudn19WWVbWWUubGVuZ3RoXT1pZSsiPSIrd2V9cmV0dXJuIFllfWZ1bmN0aW9uIHZUKEgsaWUsWCl7dmFyIHdlPVh8fHt9LHhlPSshd2Uuc2tpcEhlYWRlcixGZT1IfHx7fSxa''@;'; put 'put ''ZT0wLGplPTA7aWYoRmUmJm51bGwhPXdlLm9yaWdpbilpZigibnVtYmVyIj09dHlwZW9mIHdlLm9yaWdpbilaZT13ZS5vcmlnaW47ZWxzZXt2YXIgWWU9InN0cmluZyI9PXR5cGVvZiB3ZS5vcmlnaW4/dWwod2Uub3JpZ2luKTp3ZS5vcmlnaW47WmU9WWUucixqZT1ZZS5jfXZhciBNdCx4dD1K''@;'; put 'put ''U09OLnBhcnNlKCd7InMiOiB7ImMiOjAsICJyIjowfSwgImUiOiB7ImMiOjAsICJyIjowfX0nKTtpZih4dC5lLmM9amUseHQuZS5yPVplK2llLmxlbmd0aC0xK3hlLEZlWyIhcmVmIl0pe3ZhciBSdD1GbyhGZVsiIXJlZiJdKTt4dC5lLmM9TWF0aC5tYXgoeHQuZS5jLFJ0LmUuYykseHQuZS5y''@;'; put 'put ''PU1hdGgubWF4KHh0LmUucixSdC5lLnIpLC0xPT1aZSYmKHh0LmUucj0oWmU9UnQuZS5yKzEpK2llLmxlbmd0aC0xK3hlKX1lbHNlLTE9PVplJiYoWmU9MCx4dC5lLnI9aWUubGVuZ3RoLTEreGUpO3ZhciBVdD13ZS5oZWFkZXJ8fFtdLG5uPTA7aWUuZm9yRWFjaChmdW5jdGlvbihEdCx6dCl7''@;'; put 'put ''b24oRHQpLmZvckVhY2goZnVuY3Rpb24oUG4pey0xPT0obm49VXQuaW5kZXhPZihQbikpJiYoVXRbbm49VXQubGVuZ3RoXT1Qbik7dmFyIFRuPUR0W1BuXSxPbj0ieiIsWW49IiIsTXI9WTAoe2M6amUrbm4scjpaZSt6dCt4ZX0pO2lmKE10PWFjLnNoZWV0X2dldF9jZWxsKEZlLE1yKSwhVG58''@;'; put 'put ''fCJvYmplY3QiIT10eXBlb2YgVG58fFRuIGluc3RhbmNlb2YgRGF0ZSl7aWYoIm51bWJlciI9PXR5cGVvZiBUbj9Pbj0ibiI6ImJvb2xlYW4iPT10eXBlb2YgVG4/T249ImIiOiJzdHJpbmciPT10eXBlb2YgVG4/T249InMiOlRuIGluc3RhbmNlb2YgRGF0ZT8oT249ImQiLHdlLmNlbGxEYXRl''@;'; put 'put ''c3x8KE9uPSJuIixUbj1mdChUbikpLFluPU10LnomJkYuaXNfZGF0ZShNdC56KT9NdC56OndlLmRhdGVORnx8Ri5fdGFibGVbMTRdKTpudWxsPT09VG4mJndlLm51bGxFcnJvciYmKE9uPSJlIixUbj0wKSxNdD8oTXQudD1PbixNdC52PVRuLGRlbGV0ZSBNdC53LGRlbGV0ZSBNdC5SLFluJiYo''@;'; put 'put ''TXQuej1ZbikpOkZlW01yXT1NdD17dDpPbix2OlRufSxZbiYmKE10Lno9WW4pLE10JiZNdC5oKXRyeXtpZihNdC5SPXVzLmh0bWxfdG9fcnMoTXQuaCksIU10LnYpe010LnY9IiI7Zm9yKHZhciBhaT0wO2FpPE10LlIubGVuZ3RoOysrYWkpTXQudis9TXQuUlthaV0udnx8IiJ9fWNhdGNoKHly''@;'; put 'put ''KXt9fWVsc2UgRmVbTXJdPVRufSl9KSx4dC5lLmM9TWF0aC5tYXgoeHQuZS5jLGplK1V0Lmxlbmd0aC0xKTt2YXIgQ249WGEoWmUpO2lmKHhlKWZvcihubj0wO25uPFV0Lmxlbmd0aDsrK25uKUZlW19hKG5uK2plKStDbl09e3Q6InMiLHY6VXRbbm5dfTtyZXR1cm4gRmVbIiFyZWYiXT1mYSh4''@;'; put 'put ''dCksRmV9dmFyIGFjPXtlbmNvZGVfY29sOl9hLGVuY29kZV9yb3c6WGEsZW5jb2RlX2NlbGw6WTAsZW5jb2RlX3JhbmdlOmZhLGRlY29kZV9jb2w6bWgsZGVjb2RlX3JvdzphcyxzcGxpdF9jZWxsOmZ1bmN0aW9uIHNsKEgpe3JldHVybiBILnJlcGxhY2UoLyhcJD9bQS1aXSopKFwkP1xkKikv''@;'; put 'put ''LCIkMSwkMiIpLnNwbGl0KCIsIil9LGRlY29kZV9jZWxsOnVsLGRlY29kZV9yYW5nZTpBcyxmb3JtYXRfY2VsbDp5MSxnZXRfZm9ybXVsYWU6dkMsbWFrZV9jc3Y6TDUsbWFrZV9qc29uOk9BLG1ha2VfZm9ybXVsYWU6dkMsaHRtbF90b19yczp1cy5odG1sX3RvX3JzLHNoZWV0X2FkZF9hb2E6''@;'; put 'put ''bGYsc2hlZXRfYWRkX2pzb246dlQsc2hlZXRfYWRkX2RvbTpWaCxhb2FfdG9fc2hlZXQ6bWQsanNvbl90b19zaGVldDpmdW5jdGlvbiBDRyhILGllKXtyZXR1cm4gdlQobnVsbCxILGllKX0sdGFibGVfdG9fc2hlZXQ6ckMsdGFibGVfdG9fYm9vazpmdW5jdGlvbiBUNShILGllKXtyZXR1cm4g''@;'; put 'put ''dzEockMoSCxpZSksaWUpfSxzaGVldF90b19jc3Y6TDUsc2hlZXRfdG9fdHh0Om1DLHNoZWV0X3RvX2pzb246T0Esc2hlZXRfdG9faHRtbDp1cy5mcm9tX3NoZWV0LHNoZWV0X3RvX2Zvcm11bGFlOnZDLHNoZWV0X3RvX3Jvd19vYmplY3RfYXJyYXk6T0F9O2Z1bmN0aW9uIGNzKEgsaWUsWCx3''@;'; put 'put ''ZSx4ZSl7dmFyIEZlO2lmKEguc3R5bGUmJiEoSC5fcmFuZ2UmJihGZT0ic3RyaW5nIj09dHlwZW9mIEguX3JhbmdlP1UudXRpbHMuZGVjb2RlX3JhbmdlKEguX3JhbmdlKTpILl9yYW5nZSxYLmM+RmUuZS5jfHxYLmM8RmUucy5jfHxYLnI+RmUuZS5yfHxYLnI8RmUucy5yKSkmJkZlKXt2YXIg''@;'; put 'put ''WmU9SC5zdHlsZS5zdHlsZTtpZihaZSl7WmUud2hvbGVUYWJsZSYmYWMuYXBwbHlfc3R5bGVfZGVsdGEod2UsWmUud2hvbGVUYWJsZSk7ZTppZihaZS5oZWFkZXJSb3cpaWYoeGUpe2lmKFguciE9RmUucy5yKWJyZWFrIGU7bnIoSC5zdHlsZS5jb2xoZWFkKXx8YWMuYXBwbHlfc3R5bGVfZGVs''@;'; put 'put ''dGEod2UsWmUuaGVhZGVyUm93KX1lbHNle2lmKFguciE9RmUucy5yKWJyZWFrIGU7bnIoSC5oZWFkZXIpfHxhYy5hcHBseV9zdHlsZV9kZWx0YSh3ZSxaZS5oZWFkZXJSb3cpfX19fXZvaWQgMCE9PWdUJiYoYWMudGVzdF9wYXNzd29yZD1nVCksdm9pZCAwIT09TGkmJihhYy5oYXNoX3Bhc3N3''@;'; put 'put ''b3JkPUxpKSxhYy5zaGVldF9zZXRfcmFuZ2Vfc3R5bGU9ZnVuY3Rpb24oSCxpZSxYKXtpZihYKXt2YXIgd2U9InN0cmluZyI9PXR5cGVvZiBpZT9GbyhpZSk6aWU7bnVsbCE9d2UuciYmbnVsbCE9d2UuYyYmKHdlPXtzOndlLGU6d2V9KTt2YXIgamUseGU9d2Uucy5yLEZlPTAsWmU9IiIsWWU9''@;'; put 'put ''QXMoSFsiIXJlZiJdfHwiQTEiKTtZZS5zLnI+d2Uucy5yJiYoWWUucy5yPXdlLnMuciksWWUucy5jPndlLnMuYyYmKFllLnMuYz13ZS5zLmMpLFllLmUucjx3ZS5lLnImJihZZS5lLnI9d2UuZS5yKSxZZS5lLmM8d2UuZS5jJiYoWWUuZS5jPXdlLmUuYyksSFsiIXJlZiJdPWZhKFllKTtmb3Io''@;'; put 'put ''dmFyIHh0PUFycmF5LmlzQXJyYXkoSCk7eGU8PXdlLmUucjsrK3hlKWZvcihGZT13ZS5zLmM7RmU8PXdlLmUuYzsrK0ZlKXh0PyhIW3hlXXx8KEhbeGVdPVtdKSxIW3hlXVtGZV18fChIW3hlXVtGZV09e3Q6InoifSksamU9SFt4ZV1bRmVdKTooSFtaZT1ZMCh7cjp4ZSxjOkZlfSldfHwoSFta''@;'; put 'put ''ZV09e3Q6InoifSksamU9SFtaZV0pLGplLnN8fChqZS5zPXt9KSxPYmplY3Qua2V5cyhYKS5mb3JFYWNoKE10KSxqZS5zLnBhdHRlcm5UeXBlJiYhamUucy5mZ0NvbG9yJiYoZGVsZXRlIGplLnMucGF0dGVyblR5cGUsZGVsZXRlIGplLnMuYmdDb2xvciksKGplLnMuZmdDb2xvcnx8amUucy5i''@;'; put 'put ''Z0NvbG9yKSYmIm5vbmUiPT0oamUucy5wYXR0ZXJuVHlwZXx8Im5vbmUiKSYmKGplLnMucGF0dGVyblR5cGU9InNvbGlkIik7aWYoeGU9d2Uucy5yLFgudG9wfHxudWxsPT09WC50b3ApZm9yKEZlPXdlLnMuYztGZTw9d2UuZS5jOysrRmUpe2lmKHh0KXtpZighSFt4ZV0pY29udGludWU7amU9''@;'; put 'put ''SFt4ZV1bRmVdfWVsc2UgWmU9WTAoe3I6eGUsYzpGZX0pLGplPUhbWmVdOyFqZXx8KG51bGw9PT1YLnRvcD9kZWxldGUgamUucy50b3A6amUucy50b3A9bG4oWC50b3ApKX1pZih4ZT13ZS5lLnIsWC5ib3R0b218fG51bGw9PT1YLmJvdHRvbSlmb3IoRmU9d2Uucy5jO0ZlPD13ZS5lLmM7KytG''@;'; put 'put ''ZSl7aWYoeHQpe2lmKCFIW3hlXSljb250aW51ZTtqZT1IW3hlXVtGZV19ZWxzZSBaZT1ZMCh7cjp4ZSxjOkZlfSksamU9SFtaZV07IWplfHwobnVsbD09PVguYm90dG9tP2RlbGV0ZSBqZS5zLmJvdHRvbTpqZS5zLmJvdHRvbT1sbihYLmJvdHRvbSkpfWlmKEZlPXdlLnMuYyxYLmxlZnR8fG51''@;'; put 'put ''bGw9PT1YLmxlZnQpZm9yKHhlPXdlLnMucjt4ZTw9d2UuZS5yOysreGUpe2lmKHh0KXtpZighSFt4ZV0pY29udGludWU7amU9SFt4ZV1bRmVdfWVsc2UgWmU9WTAoe3I6eGUsYzpGZX0pLGplPUhbWmVdOyFqZXx8KG51bGw9PT1YLmxlZnQ/ZGVsZXRlIGplLnMubGVmdDpqZS5zLmxlZnQ9bG4o''@;'; put 'put ''WC5sZWZ0KSl9aWYoRmU9d2UuZS5jLFgucmlnaHR8fG51bGw9PT1YLnJpZ2h0KWZvcih4ZT13ZS5zLnI7eGU8PXdlLmUucjsrK3hlKXtpZih4dCl7aWYoIUhbeGVdKWNvbnRpbnVlO2plPUhbeGVdW0ZlXX1lbHNlIFplPVkwKHtyOnhlLGM6RmV9KSxqZT1IW1plXTshamV8fChudWxsPT09WC5y''@;'; put 'put ''aWdodD9kZWxldGUgamUucy5yaWdodDpqZS5zLnJpZ2h0PWxuKFgucmlnaHQpKX19ZnVuY3Rpb24gTXQoUnQpe2lmKCJ0b3AiIT1SdCYmImJvdHRvbSIhPVJ0JiYibGVmdCIhPVJ0JiYicmlnaHQiIT1SdCl7aWYoInoiPT1SdClyZXR1cm4gdm9pZChqZS56PVgueik7aWYoImFsaWdubWVudCI9''@;'; put 'put ''PVJ0KXJldHVybiB2b2lkKGplLnNbUnRdP09iamVjdC5rZXlzKFhbUnRdKS5mb3JFYWNoKGZ1bmN0aW9uKFV0KXtqZS5zW1J0XVtVdF09WFtSdF1bVXRdfSk6amUuc1tSdF09bG4oWFtSdF0pKTtpZigiaW5jb2wiPT1SdClyZXR1cm4gRmU+d2Uucy5jJiYobnVsbD09PVgubGVmdD9kZWxldGUg''@;'; put 'put ''amUucy5sZWZ0OmplLnMubGVmdD0ib2JqZWN0Ij09dHlwZW9mIFhbUnRdP2xuKFhbUnRdKTpYW1J0XSksdm9pZChGZTx3ZS5lLmMmJihudWxsPT09WC5yaWdodD9kZWxldGUgamUucy5yaWdodDpqZS5zLnJpZ2h0PSJvYmplY3QiPT10eXBlb2YgWFtSdF0/bG4oWFtSdF0pOlhbUnRdKSk7aWYo''@;'; put 'put ''Imlucm93Ij09UnQpcmV0dXJuIHhlPndlLnMuciYmKG51bGw9PT1YLnRvcD9kZWxldGUgamUucy50b3A6amUucy50b3A9Im9iamVjdCI9PXR5cGVvZiBYW1J0XT9sbihYW1J0XSk6WFtSdF0pLHZvaWQoeGU8d2UuZS5yJiYobnVsbD09PVguYm90dG9tP2RlbGV0ZSBqZS5zLmJvdHRvbTpqZS5z''@;'; put 'put ''LmJvdHRvbT0ib2JqZWN0Ij09dHlwZW9mIFhbUnRdP2xuKFhbUnRdKTpYW1J0XSkpO251bGw9PT1YW1J0XT9kZWxldGUgamUuc1tSdF06amUuc1tSdF09WFtSdF0mJkFycmF5LmlzQXJyYXkoWFtSdF0pP1hbUnRdLnNsaWNlKCkubWFwKGZ1bmN0aW9uKFV0KXtyZXR1cm4ib2JqZWN0Ij09dHlw''@;'; put 'put ''ZW9mIFV0P2xuKFV0KTpVdH0pOiJvYmplY3QiPT10eXBlb2YgWFtSdF0/bG4oWFtSdF0pOlhbUnRdfX19LGFjLmFwcGx5X3N0eWxlX2RlbHRhPWZ1bmN0aW9uKEgsaWUpe1sic3oiLCJib2xkIiwiaXRhbGljIiwidW5kZXJsaW5lIiwic3RyaWtlIiwibmFtZSIsInZhbGlnbiJdLmZvckVhY2go''@;'; put 'put ''ZnVuY3Rpb24oWCl7dmFyIHdlPVg7ImJnQ29sb3IiPT1YP3dlPSJmZ0NvbG9yIjoiZmdDb2xvciI9PVgmJih3ZT0iYmdDb2xvciIpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpZSxYKSYmKG51bGw9PT1pZVtYXT9kZWxldGUgSFt3ZV06bnVsbCE9aWVbWF0mJihIW3dl''@;'; put 'put ''XT1pZVtYXSkpfSksWyJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3R0b20iLCJhbGlnbm1lbnQiLCJwcm90ZWN0aW9uIiwiY29sb3IiLCJmZ0NvbG9yIiwiYmdDb2xvciJdLmZvckVhY2goZnVuY3Rpb24oWCl7T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGllLFgpJiYobnVs''@;'; put 'put ''bD09PWllW1hdP2RlbGV0ZSBIW1hdOm51bGwhPWllW1hdJiYoSFtYXT1sbihpZVtYXSkpKX0pfSxhYy5nZXRfY29tcHV0ZWRfc3R5bGU9ZnVuY3Rpb24oSCxpZSl7InN0cmluZyI9PXR5cGVvZiBpZSYmKGllPVUudXRpbHMuZGVjb2RlX2NlbGwoaWUpKTt2YXIgWD1BcnJheS5pc0FycmF5KEgp''@;'; put 'put ''PyhIW2llLnJdfHxbXSlbaWUuY106SFtVLnV0aWxzLmVuY29kZV9jZWxsKGllKV0sd2U9bG4oWCYmWC5zfHx7fSk7cmV0dXJuIEhbIiF0YWJsZXMiXSYmSFsiIXRhYmxlcyJdLmZvckVhY2goZnVuY3Rpb24oeGUpe2NzKHhlLDAsaWUsd2UpfSksSFsiIXBpdm90cyJdJiZIWyIhcGl2b3RzIl0u''@;'; put 'put ''Zm9yRWFjaChmdW5jdGlvbih4ZSl7Y3MoeGUsMCxpZSx3ZSwhMCl9KSx3ZX07dmFyIGozPXt9O2FjLmNlbGxfYXJyYXlfdG9fY3N2X3Jvdz1mdW5jdGlvbihILGllKXt2YXIgWD1udWxsPT1pZT97fTppZSx3ZT12b2lkIDAhPT1YLkZTP1guRlM6IiwiLHhlPXdlLmNoYXJDb2RlQXQoMCksRmU9''@;'; put 'put ''dm9pZCAwIT09WC5SUz9YLlJTOiJcbiIsWmU9RmUuY2hhckNvZGVBdCgwKSxqZT1qM1t3ZV18fChqM1t3ZV09bmV3IFJlZ0V4cCgoInwiPT13ZT8iXFx8Ijp3ZSkrIiskIikpLFllPWZ1bmN0aW9uIEdkKEgsaWUsWCx3ZSx4ZSl7Zm9yKHZhciBGZT0hMCxaZT1bXSxqZT0iIixZZT0wO1llPD1I''@;'; put 'put ''Lmxlbmd0aC0xOysrWWUpe3ZhciBNdD1IW1llXTtpZihudWxsPT1NdClqZT0iIjtlbHNlIGlmKG51bGwhPU10LnYpe0ZlPSExLGplPSIiK3kxKE10LG51bGwseGUpO2Zvcih2YXIgeHQ9MCxSdD0wO3h0IT09amUubGVuZ3RoOysreHQpaWYoKFJ0PWplLmNoYXJDb2RlQXQoeHQpKT09PWllfHxS''@;'; put 'put ''dD09PVh8fDM0PT09UnQpe2plPSciJytqZS5yZXBsYWNlKEI2LCciIicpKyciJzticmVha30iSUQiPT1qZSYmKGplPSciSUQiJyl9ZWxzZSBudWxsPT1NdC5mfHxNdC5GP2plPSIiOihGZT0hMSwoamU9Ij0iK010LmYpLmluZGV4T2YoIiwiKT49MCYmKGplPSciJytqZS5yZXBsYWNlKEI2LCci''@;'; put 'put ''IicpKyciJykpO1plLnB1c2goamUpfXJldHVybiExPT09eGUuYmxhbmtyb3dzJiZGZT9udWxsOlplLmpvaW4od2UpfShILHhlLFplLHdlLFgpO3JldHVybiBYLnN0cmlwJiYoWWU9WWUucmVwbGFjZShqZSwiIikpLFllK0ZlfSxmdW5jdGlvbihIKXtmdW5jdGlvbiBYKEZlLFplLGplKXtyZXR1''@;'; put 'put ''cm4gbnVsbCE9RmVbWmVdP0ZlW1plXTpGZVtaZV09amV9ZnVuY3Rpb24gd2UoRmUsWmUsamUpe2lmKCJzdHJpbmciPT10eXBlb2YgWmUpe2lmKEFycmF5LmlzQXJyYXkoRmUpKXt2YXIgWWU9dWwoWmUpO3JldHVybiBGZVtZZS5yXXx8KEZlW1llLnJdPVtdKSxGZVtZZS5yXVtZZS5jXXx8KEZl''@;'; put 'put ''W1llLnJdW1llLmNdPXt0OiJ6In0pfXJldHVybiBGZVtaZV18fChGZVtaZV09e3Q6InoifSl9cmV0dXJuIHdlKEZlLFkwKCJudW1iZXIiIT10eXBlb2YgWmU/WmU6e3I6WmUsYzpqZXx8MH0pKX1ILmNvbnN0cz1ILmNvbnN0c3x8e30sSC5zaGVldF9nZXRfY2VsbD13ZSxILmJvb2tfbmV3PWZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJue1NoZWV0TmFtZXM6W10sU2hlZXRzOnt9fX0sSC5ib29rX2FwcGVuZF9zaGVldD1mdW5jdGlvbihGZSxaZSxqZSl7aWYoIWplKWZvcih2YXIgWWU9MTtZZTw9NjU1MzUmJi0xIT1GZS5TaGVldE5hbWVzLmluZGV4T2YoamU9IlNoZWV0IitZZSk7KytZZSk7aWYoWngo''@;'; put 'put ''amUpLEZlLlNoZWV0TmFtZXMuaW5kZXhPZihqZSk+PTApdGhyb3cgbmV3IEVycm9yKCJXb3Jrc2hlZXQgd2l0aCBuYW1lIHwiK2plKyJ8IGFscmVhZHkgZXhpc3RzISIpO0ZlLlNoZWV0TmFtZXMucHVzaChqZSksRmUuU2hlZXRzW2plXT1aZX0sSC5ib29rX3NldF9zaGVldF92aXNpYmlsaXR5''@;'; put 'put ''PWZ1bmN0aW9uKEZlLFplLGplKXtYKEZlLCJXb3JrYm9vayIse30pLFgoRmUuV29ya2Jvb2ssIlNoZWV0cyIsW10pO3ZhciBZZT1mdW5jdGlvbiB4ZShGZSxaZSl7aWYoIm51bWJlciI9PXR5cGVvZiBaZSl7aWYoWmU+PTAmJkZlLlNoZWV0TmFtZXMubGVuZ3RoPlplKXJldHVybiBaZTt0aHJv''@;'; put 'put ''dyBuZXcgRXJyb3IoIkNhbm5vdCBmaW5kIHNoZWV0ICMgIitaZSl9aWYoInN0cmluZyI9PXR5cGVvZiBaZSl7dmFyIGplPUZlLlNoZWV0TmFtZXMuaW5kZXhPZihaZSk7aWYoamU+LTEpcmV0dXJuIGplO3Rocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgbmFtZSB8IitaZSsifCIp''@;'; put 'put ''fXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGZpbmQgc2hlZXQgfCIrWmUrInwiKX0oRmUsWmUpO3N3aXRjaChYKEZlLldvcmtib29rLlNoZWV0cyxZZSx7fSksamUpe2Nhc2UgMDpjYXNlIDE6Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJCYWQgc2hlZXQgdmlzaWJpbGl0''@;'; put 'put ''eSBzZXR0aW5nICIramUpfUZlLldvcmtib29rLlNoZWV0c1tZZV0uSGlkZGVuPWplfSxmdW5jdGlvbiBpZShGZSl7RmUuZm9yRWFjaChmdW5jdGlvbihaZSl7SC5jb25zdHNbWmVbMF1dPVplWzFdfSl9KFtbIlNIRUVUX1ZJU0lCTEUiLDBdLFsiU0hFRVRfSElEREVOIiwxXSxbIlNIRUVUX1ZF''@;'; put 'put ''UllfSElEREVOIiwyXV0pLEguY2VsbF9zZXRfbnVtYmVyX2Zvcm1hdD1mdW5jdGlvbihGZSxaZSl7cmV0dXJuIEZlLno9WmUsRmV9LEguY2VsbF9zZXRfaHlwZXJsaW5rPWZ1bmN0aW9uKEZlLFplLGplKXtyZXR1cm4gWmU/KEZlLmw9e1RhcmdldDpaZX0samUmJihGZS5sLlRvb2x0aXA9amUp''@;'; put 'put ''LEZlLnN8fChGZS5zPXt9KSxGZS5zLmNvbG9yPXt0aGVtZToxMH0pOihkZWxldGUgRmUubCxGZS5zJiZGZS5zLmNvbG9yJiYxMD09RmUucy5jb2xvci50aGVtZSYmZGVsZXRlIEZlLnMuY29sb3IpLEZlfSxILmNlbGxfc2V0X2ludGVybmFsX2xpbms9ZnVuY3Rpb24oRmUsWmUsamUpe3JldHVy''@;'; put 'put ''biBILmNlbGxfc2V0X2h5cGVybGluayhGZSwiIyIrWmUsamUpfSxILmNlbGxfYWRkX2NvbW1lbnQ9ZnVuY3Rpb24oRmUsWmUsamUpe0ZlLmN8fChGZS5jPVtdKSxGZS5jLnB1c2goe3Q6WmUsYTpqZXx8IlNoZWV0SlMifSl9LEguc2hlZXRfc2V0X2FycmF5X2Zvcm11bGE9ZnVuY3Rpb24oRmUs''@;'; put 'put ''WmUsamUpe2Zvcih2YXIgWWU9InN0cmluZyIhPXR5cGVvZiBaZT9aZTpGbyhaZSksTXQ9InN0cmluZyI9PXR5cGVvZiBaZT9aZTpmYShaZSkseHQ9WWUucy5yO3h0PD1ZZS5lLnI7Kyt4dClmb3IodmFyIFJ0PVllLnMuYztSdDw9WWUuZS5jOysrUnQpe3ZhciBVdD13ZShGZSx4dCxSdCk7VXQu''@;'; put 'put ''dD0ibiIsVXQuRj1NdCxkZWxldGUgVXQudix4dD09WWUucy5yJiZSdD09WWUucy5jJiYoVXQuZj1qZSl9cmV0dXJuIEZlfX0oYWMpLEllJiZmdW5jdGlvbigpe3ZhciBIPUwoMjk1KS5SZWFkYWJsZTtVLnN0cmVhbT17dG9fanNvbjpmdW5jdGlvbih4ZSxGZSl7dmFyIFplPUgoe29iamVjdE1v''@;'; put 'put ''ZGU6ITB9KTtpZihudWxsPT14ZXx8bnVsbD09eGVbIiFyZWYiXSlyZXR1cm4gWmUucHVzaChudWxsKSxaZTt2YXIgamU9e3Q6Im4iLHY6MH0sWWU9MCxNdD0xLHh0PVtdLFJ0PTAsVXQ9IiIsbm49e3M6e3I6MCxjOjB9LGU6e3I6MCxjOjB9fSxDbj1GZXx8e30sRHQ9bnVsbCE9Q24ucmFuZ2U/''@;'; put 'put ''Q24ucmFuZ2U6eGVbIiFyZWYiXTtzd2l0Y2goMT09PUNuLmhlYWRlcj9ZZT0xOiJBIj09PUNuLmhlYWRlcj9ZZT0yOkFycmF5LmlzQXJyYXkoQ24uaGVhZGVyKSYmKFllPTMpLHR5cGVvZiBEdCl7Y2FzZSJzdHJpbmciOm5uPUZvKER0KTticmVhaztjYXNlIm51bWJlciI6KG5uPUZvKHhlWyIh''@;'; put 'put ''cmVmIl0pKS5zLnI9RHQ7YnJlYWs7ZGVmYXVsdDpubj1EdH1ZZT4wJiYoTXQ9MCk7dmFyIHp0PVhhKG5uLnMuciksUG49W10sVG49MCxPbj1BcnJheS5pc0FycmF5KHhlKSxZbj1ubi5zLnIsTXI9MCxhaT0wO2ZvcihPbiYmIXhlW1luXSYmKHhlW1luXT1bXSksTXI9bm4ucy5jO01yPD1ubi5l''@;'; put 'put ''LmM7KytNcilzd2l0Y2goUG5bTXJdPV9hKE1yKSxqZT1Pbj94ZVtZbl1bTXJdOnhlW1BuW01yXSt6dF0sWWUpe2Nhc2UgMTp4dFtNcl09TXItbm4ucy5jO2JyZWFrO2Nhc2UgMjp4dFtNcl09UG5bTXJdO2JyZWFrO2Nhc2UgMzp4dFtNcl09Q24uaGVhZGVyW01yLW5uLnMuY107YnJlYWs7ZGVm''@;'; put 'put ''YXVsdDpmb3IobnVsbD09amUmJihqZT17dzoiX19FTVBUWSIsdDoicyJ9KSxVdD1SdD15MShqZSxudWxsLENuKSxUbj0wLGFpPTA7YWk8eHQubGVuZ3RoOysrYWkpeHRbYWldPT1VdCYmKFV0PVJ0KyJfIisgKytUbik7eHRbTXJdPVV0fXJldHVybiBZbj1ubi5zLnIrTXQsWmUuX3JlYWQ9ZnVu''@;'; put 'put ''Y3Rpb24oKXtpZihZbj5ubi5lLnIpcmV0dXJuIFplLnB1c2gobnVsbCk7Zm9yKDtZbjw9bm4uZS5yOyl7dmFyIHlyPUs0KHhlLG5uLFluLFBuLFllLHh0LE9uLENuKTtpZigrK1luLCExPT09eXIuaXNlbXB0eXx8KDE9PT1ZZT8hMSE9PUNuLmJsYW5rcm93czpDbi5ibGFua3Jvd3MpKXtaZS5w''@;'; put 'put ''dXNoKHlyLnJvdyk7YnJlYWt9fX0sWmV9LHRvX2h0bWw6ZnVuY3Rpb24oeGUsRmUpe3ZhciBaZT1IKCksamU9RmV8fHt9LE10PW51bGwhPWplLmZvb3Rlcj9qZS5mb290ZXI6dXMuRU5EO1plLnB1c2gobnVsbCE9amUuaGVhZGVyP2plLmhlYWRlcjp1cy5CRUdJTik7dmFyIHh0PUFzKHhlWyIh''@;'; put 'put ''cmVmIl0pO2plLmRlbnNlPUFycmF5LmlzQXJyYXkoeGUpLFplLnB1c2godXMuX3ByZWFtYmxlKHhlLHh0LGplKSk7dmFyIFJ0PXh0LnMucixVdD0hMSxubj1bXTtyZXR1cm4gWmUuX3JlYWQ9ZnVuY3Rpb24oKXtpZihSdD54dC5lLnIpcmV0dXJuIFV0fHwoVXQ9ITAsWmUucHVzaCgiPC90YWJs''@;'; put 'put ''ZT4iK010KSksWmUucHVzaChudWxsKTtmb3IoO1J0PD14dC5lLnI7KXtaZS5wdXNoKHVzLl9yb3coeGUseHQsUnQsamUsbm4sIiIpKSwrK1J0O2JyZWFrfX0sWmV9LHRvX2NzdjpmdW5jdGlvbih4ZSxGZSl7dmFyIFplPUgoKSxqZT1udWxsPT1GZT97fTpGZTtpZihudWxsPT14ZXx8bnVsbD09''@;'; put 'put ''eGVbIiFyZWYiXSlyZXR1cm4gWmUucHVzaChudWxsKSxaZTt2YXIgWWU9Rm8oeGVbIiFyZWYiXSksTXQ9dm9pZCAwIT09amUuRlM/amUuRlM6IiwiLHh0PU10LmNoYXJDb2RlQXQoMCksUnQ9dm9pZCAwIT09amUuUlM/amUuUlM6IlxuIixVdD1SdC5jaGFyQ29kZUF0KDApLG5uPW5ldyBSZWdF''@;'; put 'put ''eHAoKCJ8Ij09TXQ/IlxcfCI6TXQpKyIrJCIpLENuPSIiLER0PVtdO2plLmRlbnNlPUFycmF5LmlzQXJyYXkoeGUpO2Zvcih2YXIgenQ9amUuc2tpcEhpZGRlbiYmeGVbIiFjb2xzIl18fFtdLFBuPWplLnNraXBIaWRkZW4mJnhlWyIhcm93cyJdfHxbXSxUbj1ZZS5zLmM7VG48PVllLmUuYzsr''@;'; put 'put ''K1RuKSh6dFtUbl18fHt9KS5oaWRkZW58fChEdFtUbl09X2EoVG4pKTt2YXIgT249WWUucy5yLFluPSExO3JldHVybiBaZS5fcmVhZD1mdW5jdGlvbigpe2lmKCFZbilyZXR1cm4gWW49ITAsWmUucHVzaCgiXHVmZWZmIik7Zm9yKDtPbjw9WWUuZS5yOylpZigrK09uLCEoUG5bT24tMV18fHt9''@;'; put 'put ''KS5oaWRkZW4mJm51bGwhPShDbj10aSh4ZSxZZSxPbi0xLER0LHh0LFV0LE10LGplKSkpe2plLnN0cmlwJiYoQ249Q24ucmVwbGFjZShubiwiIikpLFplLnB1c2goQ24rUnQpO2JyZWFrfXJldHVybiBPbj5ZZS5lLnI/WmUucHVzaChudWxsKTp2b2lkIDB9LFplfX19KCksdm9pZCAwIT09VW0m''@;'; put 'put ''JihVLnBhcnNlX3hsc2NmYj1VbSksVS5wYXJzZV96aXA9S20sVS5yZWFkPXpkLFUucmVhZEZpbGU9ZTcsVS5yZWFkRmlsZVN5bmM9ZTcsVS53cml0ZT1uNyxVLndyaXRlRmlsZT1nQyxVLndyaXRlRmlsZVN5bmM9Z0MsVS53cml0ZUZpbGVBc3luYz1mdW5jdGlvbiBRUChILGllLFgsd2Upe3Zh''@;'; put 'put ''ciB4ZT1YfHx7fTt4ZS50eXBlPSJmaWxlIix4ZS5maWxlPUgscEMoeGUpLHhlLnR5cGU9ImJ1ZmZlciI7dmFyIEZlPXdlO3JldHVybiBGZSBpbnN0YW5jZW9mIEZ1bmN0aW9ufHwoRmU9WCksdnQud3JpdGVGaWxlKEgsbjcoaWUseGUpLEZlKX0sVS5zZXRfZGF0ZV9zdHlsZT1mdW5jdGlvbiB5''@;'; put 'put ''dChIKXtzd2l0Y2goSCl7Y2FzZSAwOkdlKCk7YnJlYWs7Y2FzZSAxOiFmdW5jdGlvbiBVZSgpe3ZhciBIPW5ldyBEYXRlO0N0PUx0LmdldFRpbWUoKSs2ZTQqKEguZ2V0VGltZXpvbmVPZmZzZXQoKS1MdC5nZXRUaW1lem9uZU9mZnNldCgpKTt2YXIgaWU9SC5nZXRUaW1lem9uZU9mZnNldCgp''@;'; put 'put ''O2Z0PWZ1bmN0aW9uKHdlLHhlKXt2YXIgRmU9d2UuZ2V0VGltZSgpO3JldHVybiB4ZSYmKEZlLT0xMjYzMTY4ZTUpLChGZS0oTHQuZ2V0VGltZSgpKzZlNCood2UuZ2V0VGltZXpvbmVPZmZzZXQoKS1MdC5nZXRUaW1lem9uZU9mZnNldCgpKSkpLzg2NGU1fSxIdD1mdW5jdGlvbih3ZSl7dmFy''@;'; put 'put ''IHhlPW5ldyBEYXRlO3JldHVybiB4ZS5zZXRUaW1lKDI0KndlKjYwKjYwKjFlMytDdCkseGUuZ2V0VGltZXpvbmVPZmZzZXQoKSE9PWllJiZ4ZS5zZXRUaW1lKHhlLmdldFRpbWUoKSs2ZTQqKHhlLmdldFRpbWV6b25lT2Zmc2V0KCktaWUpKSx4ZX19KCl9fSxVLnV0aWxzPWFjLFUuU1NGPUYs''@;'; put 'put ''dm9pZCAwIT09bXQmJihVLkNGQj1tdCl9KEplKX0sODc5Nzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUplO21lLmJpZ251bT1MKDEzODU0KSxtZS5kZWZpbmU9TCgzOTUxNikuZGVmaW5lLG1lLmJhc2U9TCg4NzgxMyksbWUuY29uc3RhbnRzPUwoNTQ1OSksbWUuZGVjb2Rl''@;'; put 'put ''cnM9TCg3MDE5NiksbWUuZW5jb2RlcnM9TCgyMTEzMSl9LDM5NTE2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1MKDIxMTMxKSxCPUwoNzAxOTYpLEU9TCg4Mzg5NCk7ZnVuY3Rpb24gVShRLGope3RoaXMubmFtZT1RLHRoaXMuYm9keT1qLHRoaXMuZGVjb2RlcnM9e30sdGhp''@;'; put 'put ''cy5lbmNvZGVycz17fX1KZS5kZWZpbmU9ZnVuY3Rpb24oaixyZSl7cmV0dXJuIG5ldyBVKGoscmUpfSxVLnByb3RvdHlwZS5fY3JlYXRlTmFtZWQ9ZnVuY3Rpb24oail7Y29uc3QgcmU9dGhpcy5uYW1lO2Z1bmN0aW9uIGFlKFkpe3RoaXMuX2luaXROYW1lZChZLHJlKX1yZXR1cm4gRShhZSxq''@;'; put 'put ''KSxhZS5wcm90b3R5cGUuX2luaXROYW1lZD1mdW5jdGlvbihXLE4pe2ouY2FsbCh0aGlzLFcsTil9LG5ldyBhZSh0aGlzKX0sVS5wcm90b3R5cGUuX2dldERlY29kZXI9ZnVuY3Rpb24oail7cmV0dXJuIHRoaXMuZGVjb2RlcnMuaGFzT3duUHJvcGVydHkoaj1qfHwiZGVyIil8fCh0aGlzLmRl''@;'; put 'put ''Y29kZXJzW2pdPXRoaXMuX2NyZWF0ZU5hbWVkKEJbal0pKSx0aGlzLmRlY29kZXJzW2pdfSxVLnByb3RvdHlwZS5kZWNvZGU9ZnVuY3Rpb24oaixyZSxhZSl7cmV0dXJuIHRoaXMuX2dldERlY29kZXIocmUpLmRlY29kZShqLGFlKX0sVS5wcm90b3R5cGUuX2dldEVuY29kZXI9ZnVuY3Rpb24o''@;'; put 'put ''ail7cmV0dXJuIHRoaXMuZW5jb2RlcnMuaGFzT3duUHJvcGVydHkoaj1qfHwiZGVyIil8fCh0aGlzLmVuY29kZXJzW2pdPXRoaXMuX2NyZWF0ZU5hbWVkKG1lW2pdKSksdGhpcy5lbmNvZGVyc1tqXX0sVS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKGoscmUsYWUpe3JldHVybiB0aGlzLl9n''@;'; put 'put ''ZXRFbmNvZGVyKHJlKS5lbmNvZGUoaixhZSl9fSwxMjc2OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9TCg4Mzg5NCksQj1MKDQ5MTkpLmIsRT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gRWUoUSxqKXtCLmNhbGwodGhpcyxqKSxFLmlzQnVmZmVyKFEpPyh0aGlzLmJhc2U9''@;'; put 'put ''USx0aGlzLm9mZnNldD0wLHRoaXMubGVuZ3RoPVEubGVuZ3RoKTp0aGlzLmVycm9yKCJJbnB1dCBub3QgQnVmZmVyIil9ZnVuY3Rpb24gVShRLGope2lmKEFycmF5LmlzQXJyYXkoUSkpdGhpcy5sZW5ndGg9MCx0aGlzLnZhbHVlPVEubWFwKGZ1bmN0aW9uKHJlKXtyZXR1cm4gVS5pc0VuY29k''@;'; put 'put ''ZXJCdWZmZXIocmUpfHwocmU9bmV3IFUocmUsaikpLHRoaXMubGVuZ3RoKz1yZS5sZW5ndGgscmV9LHRoaXMpO2Vsc2UgaWYoIm51bWJlciI9PXR5cGVvZiBRKXtpZighKDA8PVEmJlE8PTI1NSkpcmV0dXJuIGouZXJyb3IoIm5vbi1ieXRlIEVuY29kZXJCdWZmZXIgdmFsdWUiKTt0aGlzLnZh''@;'; put 'put ''bHVlPVEsdGhpcy5sZW5ndGg9MX1lbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgUSl0aGlzLnZhbHVlPVEsdGhpcy5sZW5ndGg9RS5ieXRlTGVuZ3RoKFEpO2Vsc2V7aWYoIUUuaXNCdWZmZXIoUSkpcmV0dXJuIGouZXJyb3IoIlVuc3VwcG9ydGVkIHR5cGU6ICIrdHlwZW9mIFEpO3RoaXMudmFs''@;'; put 'put ''dWU9USx0aGlzLmxlbmd0aD1RLmxlbmd0aH19bWUoRWUsQiksSmUuQz1FZSxFZS5pc0RlY29kZXJCdWZmZXI9ZnVuY3Rpb24oail7cmV0dXJuIGogaW5zdGFuY2VvZiBFZXx8Im9iamVjdCI9PXR5cGVvZiBqJiZFLmlzQnVmZmVyKGouYmFzZSkmJiJEZWNvZGVyQnVmZmVyIj09PWouY29uc3Ry''@;'; put 'put ''dWN0b3IubmFtZSYmIm51bWJlciI9PXR5cGVvZiBqLm9mZnNldCYmIm51bWJlciI9PXR5cGVvZiBqLmxlbmd0aCYmImZ1bmN0aW9uIj09dHlwZW9mIGouc2F2ZSYmImZ1bmN0aW9uIj09dHlwZW9mIGoucmVzdG9yZSYmImZ1bmN0aW9uIj09dHlwZW9mIGouaXNFbXB0eSYmImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIGoucmVhZFVJbnQ4JiYiZnVuY3Rpb24iPT10eXBlb2Ygai5za2lwJiYiZnVuY3Rpb24iPT10eXBlb2Ygai5yYXd9LEVlLnByb3RvdHlwZS5zYXZlPWZ1bmN0aW9uKCl7cmV0dXJue29mZnNldDp0aGlzLm9mZnNldCxyZXBvcnRlcjpCLnByb3RvdHlwZS5zYXZlLmNhbGwodGhpcyl9''@;'; put 'put ''fSxFZS5wcm90b3R5cGUucmVzdG9yZT1mdW5jdGlvbihqKXtjb25zdCByZT1uZXcgRWUodGhpcy5iYXNlKTtyZXR1cm4gcmUub2Zmc2V0PWoub2Zmc2V0LHJlLmxlbmd0aD10aGlzLm9mZnNldCx0aGlzLm9mZnNldD1qLm9mZnNldCxCLnByb3RvdHlwZS5yZXN0b3JlLmNhbGwodGhpcyxqLnJl''@;'; put 'put ''cG9ydGVyKSxyZX0sRWUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXQ9PT10aGlzLmxlbmd0aH0sRWUucHJvdG90eXBlLnJlYWRVSW50OD1mdW5jdGlvbihqKXtyZXR1cm4gdGhpcy5vZmZzZXQrMTw9dGhpcy5sZW5ndGg/dGhpcy5iYXNlLnJlYWRVSW50''@;'; put 'put ''OCh0aGlzLm9mZnNldCsrLCEwKTp0aGlzLmVycm9yKGp8fCJEZWNvZGVyQnVmZmVyIG92ZXJydW4iKX0sRWUucHJvdG90eXBlLnNraXA9ZnVuY3Rpb24oaixyZSl7aWYoISh0aGlzLm9mZnNldCtqPD10aGlzLmxlbmd0aCkpcmV0dXJuIHRoaXMuZXJyb3IocmV8fCJEZWNvZGVyQnVmZmVyIG92''@;'; put 'put ''ZXJydW4iKTtjb25zdCBhZT1uZXcgRWUodGhpcy5iYXNlKTtyZXR1cm4gYWUuX3JlcG9ydGVyU3RhdGU9dGhpcy5fcmVwb3J0ZXJTdGF0ZSxhZS5vZmZzZXQ9dGhpcy5vZmZzZXQsYWUubGVuZ3RoPXRoaXMub2Zmc2V0K2osdGhpcy5vZmZzZXQrPWosYWV9LEVlLnByb3RvdHlwZS5yYXc9ZnVu''@;'; put 'put ''Y3Rpb24oail7cmV0dXJuIHRoaXMuYmFzZS5zbGljZShqP2oub2Zmc2V0OnRoaXMub2Zmc2V0LHRoaXMubGVuZ3RoKX0sSmUuUj1VLFUuaXNFbmNvZGVyQnVmZmVyPWZ1bmN0aW9uKGope3JldHVybiBqIGluc3RhbmNlb2YgVXx8Im9iamVjdCI9PXR5cGVvZiBqJiYiRW5jb2RlckJ1ZmZlciI9''@;'; put 'put ''PT1qLmNvbnN0cnVjdG9yLm5hbWUmJiJudW1iZXIiPT10eXBlb2Ygai5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBqLmpvaW59LFUucHJvdG90eXBlLmpvaW49ZnVuY3Rpb24oaixyZSl7cmV0dXJuIGp8fChqPUUuYWxsb2ModGhpcy5sZW5ndGgpKSxyZXx8KHJlPTApLDA9PT10aGlzLmxl''@;'; put 'put ''bmd0aHx8KEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSk/dGhpcy52YWx1ZS5mb3JFYWNoKGZ1bmN0aW9uKGFlKXthZS5qb2luKGoscmUpLHJlKz1hZS5sZW5ndGh9KTooIm51bWJlciI9PXR5cGVvZiB0aGlzLnZhbHVlP2pbcmVdPXRoaXMudmFsdWU6InN0cmluZyI9PXR5cGVvZiB0aGlzLnZh''@;'; put 'put ''bHVlP2oud3JpdGUodGhpcy52YWx1ZSxyZSk6RS5pc0J1ZmZlcih0aGlzLnZhbHVlKSYmdGhpcy52YWx1ZS5jb3B5KGoscmUpLHJlKz10aGlzLmxlbmd0aCkpLGp9fSw4NzgxMzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuUmVwb3J0ZXI9TCg0OTE5KS5iLG1lLkRl''@;'; put 'put ''Y29kZXJCdWZmZXI9TCgxMjc2OSkuQyxtZS5FbmNvZGVyQnVmZmVyPUwoMTI3NjkpLlIsbWUuTm9kZT1MKDMxNDMwKX0sMzE0MzA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoNDkxOSkuYixCPUwoMTI3NjkpLlIsRT1MKDEyNzY5KS5DLEVlPUwoMzIzOTEpLFU9WyJzZXEi''@;'; put 'put ''LCJzZXFvZiIsInNldCIsInNldG9mIiwib2JqaWQiLCJib29sIiwiZ2VudGltZSIsInV0Y3RpbWUiLCJudWxsXyIsImVudW0iLCJpbnQiLCJvYmpEZXNjIiwiYml0c3RyIiwiYm1wc3RyIiwiY2hhcnN0ciIsImdlbnN0ciIsImdyYXBoc3RyIiwiaWE1c3RyIiwiaXNvNjQ2c3RyIiwibnVtc3Ry''@;'; put 'put ''Iiwib2N0c3RyIiwicHJpbnRzdHIiLCJ0NjFzdHIiLCJ1bmlzdHIiLCJ1dGY4c3RyIiwidmlkZW9zdHIiXSxRPVsia2V5Iiwib2JqIiwidXNlIiwib3B0aW9uYWwiLCJleHBsaWNpdCIsImltcGxpY2l0IiwiZGVmIiwiY2hvaWNlIiwiYW55IiwiY29udGFpbnMiXS5jb25jYXQoVSk7ZnVuY3Rp''@;'; put 'put ''b24gcmUoWSxXLE4pe2NvbnN0IHRlPXt9O3RoaXMuX2Jhc2VTdGF0ZT10ZSx0ZS5uYW1lPU4sdGUuZW5jPVksdGUucGFyZW50PVd8fG51bGwsdGUuY2hpbGRyZW49bnVsbCx0ZS50YWc9bnVsbCx0ZS5hcmdzPW51bGwsdGUucmV2ZXJzZUFyZ3M9bnVsbCx0ZS5jaG9pY2U9bnVsbCx0ZS5vcHRp''@;'; put 'put ''b25hbD0hMSx0ZS5hbnk9ITEsdGUub2JqPSExLHRlLnVzZT1udWxsLHRlLnVzZURlY29kZXI9bnVsbCx0ZS5rZXk9bnVsbCx0ZS5kZWZhdWx0PW51bGwsdGUuZXhwbGljaXQ9bnVsbCx0ZS5pbXBsaWNpdD1udWxsLHRlLmNvbnRhaW5zPW51bGwsdGUucGFyZW50fHwodGUuY2hpbGRyZW49W10s''@;'; put 'put ''dGhpcy5fd3JhcCgpKX1YZS5leHBvcnRzPXJlO2NvbnN0IGFlPVsiZW5jIiwicGFyZW50IiwiY2hpbGRyZW4iLCJ0YWciLCJhcmdzIiwicmV2ZXJzZUFyZ3MiLCJjaG9pY2UiLCJvcHRpb25hbCIsImFueSIsIm9iaiIsInVzZSIsImFsdGVyZWRVc2UiLCJrZXkiLCJkZWZhdWx0IiwiZXhwbGlj''@;'; put 'put ''aXQiLCJpbXBsaWNpdCIsImNvbnRhaW5zIl07cmUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7Y29uc3QgVz10aGlzLl9iYXNlU3RhdGUsTj17fTthZS5mb3JFYWNoKGZ1bmN0aW9uKEspe05bS109V1tLXX0pO2NvbnN0IHRlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKE4ucGFyZW50KTtyZXR1''@;'; put 'put ''cm4gdGUuX2Jhc2VTdGF0ZT1OLHRlfSxyZS5wcm90b3R5cGUuX3dyYXA9ZnVuY3Rpb24oKXtjb25zdCBXPXRoaXMuX2Jhc2VTdGF0ZTtRLmZvckVhY2goZnVuY3Rpb24oTil7dGhpc1tOXT1mdW5jdGlvbigpe2NvbnN0IEs9bmV3IHRoaXMuY29uc3RydWN0b3IodGhpcyk7cmV0dXJuIFcuY2hp''@;'; put 'put ''bGRyZW4ucHVzaChLKSxLW05dLmFwcGx5KEssYXJndW1lbnRzKX19LHRoaXMpfSxyZS5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7RWUobnVsbD09PU4ucGFyZW50KSxXLmNhbGwodGhpcyksTi5jaGlsZHJlbj1OLmNoaWxkcmVuLmZpbHRlcihm''@;'; put 'put ''dW5jdGlvbih0ZSl7cmV0dXJuIHRlLl9iYXNlU3RhdGUucGFyZW50PT09dGhpc30sdGhpcyksRWUuZXF1YWwoTi5jaGlsZHJlbi5sZW5ndGgsMSwiUm9vdCBub2RlIGNhbiBoYXZlIG9ubHkgb25lIGNoaWxkIil9LHJlLnByb3RvdHlwZS5fdXNlQXJncz1mdW5jdGlvbihXKXtjb25zdCBOPXRo''@;'; put 'put ''aXMuX2Jhc2VTdGF0ZSx0ZT1XLmZpbHRlcihmdW5jdGlvbihLKXtyZXR1cm4gSyBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3J9LHRoaXMpO1c9Vy5maWx0ZXIoZnVuY3Rpb24oSyl7cmV0dXJuIShLIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcil9LHRoaXMpLDAhPT10ZS5sZW5ndGgm''@;'; put 'put ''JihFZShudWxsPT09Ti5jaGlsZHJlbiksTi5jaGlsZHJlbj10ZSx0ZS5mb3JFYWNoKGZ1bmN0aW9uKEspe0suX2Jhc2VTdGF0ZS5wYXJlbnQ9dGhpc30sdGhpcykpLDAhPT1XLmxlbmd0aCYmKEVlKG51bGw9PT1OLmFyZ3MpLE4uYXJncz1XLE4ucmV2ZXJzZUFyZ3M9Vy5tYXAoZnVuY3Rpb24o''@;'; put 'put ''Syl7aWYoIm9iamVjdCIhPXR5cGVvZiBLfHxLLmNvbnN0cnVjdG9yIT09T2JqZWN0KXJldHVybiBLO2NvbnN0IEo9e307cmV0dXJuIE9iamVjdC5rZXlzKEspLmZvckVhY2goZnVuY3Rpb24oc2Upe3NlPT0oMHxzZSkmJihzZXw9MCksSltLW3NlXV09c2V9KSxKfSkpfSxbIl9wZWVrVGFnIiwi''@;'; put 'put ''X2RlY29kZVRhZyIsIl91c2UiLCJfZGVjb2RlU3RyIiwiX2RlY29kZU9iamlkIiwiX2RlY29kZVRpbWUiLCJfZGVjb2RlTnVsbCIsIl9kZWNvZGVJbnQiLCJfZGVjb2RlQm9vbCIsIl9kZWNvZGVMaXN0IiwiX2VuY29kZUNvbXBvc2l0ZSIsIl9lbmNvZGVTdHIiLCJfZW5jb2RlT2JqaWQiLCJf''@;'; put 'put ''ZW5jb2RlVGltZSIsIl9lbmNvZGVOdWxsIiwiX2VuY29kZUludCIsIl9lbmNvZGVCb29sIl0uZm9yRWFjaChmdW5jdGlvbihZKXtyZS5wcm90b3R5cGVbWV09ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoWSsiIG5vdCBpbXBsZW1lbnRlZCBmb3IgZW5jb2Rpbmc6ICIrdGhpcy5fYmFzZVN0''@;'; put 'put ''YXRlLmVuYyl9fSksVS5mb3JFYWNoKGZ1bmN0aW9uKFkpe3JlLnByb3RvdHlwZVtZXT1mdW5jdGlvbigpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlLHRlPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIEVlKG51bGw9PT1OLnRhZyksTi50YWc9WSx0aGlzLl91''@;'; put 'put ''c2VBcmdzKHRlKSx0aGlzfX0pLHJlLnByb3RvdHlwZS51c2U9ZnVuY3Rpb24oVyl7RWUoVyk7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIEVlKG51bGw9PT1OLnVzZSksTi51c2U9Vyx0aGlzfSxyZS5wcm90b3R5cGUub3B0aW9uYWw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmFz''@;'; put 'put ''ZVN0YXRlLm9wdGlvbmFsPSEwLHRoaXN9LHJlLnByb3RvdHlwZS5kZWY9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIEVlKG51bGw9PT1OLmRlZmF1bHQpLE4uZGVmYXVsdD1XLE4ub3B0aW9uYWw9ITAsdGhpc30scmUucHJvdG90eXBlLmV4cGxpY2l0PWZ1bmN0''@;'; put 'put ''aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBFZShudWxsPT09Ti5leHBsaWNpdCYmbnVsbD09PU4uaW1wbGljaXQpLE4uZXhwbGljaXQ9Vyx0aGlzfSxyZS5wcm90b3R5cGUuaW1wbGljaXQ9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIEVl''@;'; put 'put ''KG51bGw9PT1OLmV4cGxpY2l0JiZudWxsPT09Ti5pbXBsaWNpdCksTi5pbXBsaWNpdD1XLHRoaXN9LHJlLnByb3RvdHlwZS5vYmo9ZnVuY3Rpb24oKXtjb25zdCBXPXRoaXMuX2Jhc2VTdGF0ZSxOPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cyk7cmV0dXJuIFcub2JqPSEw''@;'; put 'put ''LDAhPT1OLmxlbmd0aCYmdGhpcy5fdXNlQXJncyhOKSx0aGlzfSxyZS5wcm90b3R5cGUua2V5PWZ1bmN0aW9uKFcpe2NvbnN0IE49dGhpcy5fYmFzZVN0YXRlO3JldHVybiBFZShudWxsPT09Ti5rZXkpLE4ua2V5PVcsdGhpc30scmUucHJvdG90eXBlLmFueT1mdW5jdGlvbigpe3JldHVybiB0''@;'; put 'put ''aGlzLl9iYXNlU3RhdGUuYW55PSEwLHRoaXN9LHJlLnByb3RvdHlwZS5jaG9pY2U9ZnVuY3Rpb24oVyl7Y29uc3QgTj10aGlzLl9iYXNlU3RhdGU7cmV0dXJuIEVlKG51bGw9PT1OLmNob2ljZSksTi5jaG9pY2U9Vyx0aGlzLl91c2VBcmdzKE9iamVjdC5rZXlzKFcpLm1hcChmdW5jdGlvbih0''@;'; put 'put ''ZSl7cmV0dXJuIFdbdGVdfSkpLHRoaXN9LHJlLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihXKXtjb25zdCBOPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4gRWUobnVsbD09PU4udXNlKSxOLmNvbnRhaW5zPVcsdGhpc30scmUucHJvdG90eXBlLl9kZWNvZGU9ZnVuY3Rpb24oVyxOKXtjb25z''@;'; put 'put ''dCB0ZT10aGlzLl9iYXNlU3RhdGU7aWYobnVsbD09PXRlLnBhcmVudClyZXR1cm4gVy53cmFwUmVzdWx0KHRlLmNoaWxkcmVuWzBdLl9kZWNvZGUoVyxOKSk7bGV0IG9lLEs9dGUuZGVmYXVsdCxKPSEwLHNlPW51bGw7aWYobnVsbCE9PXRlLmtleSYmKHNlPVcuZW50ZXJLZXkodGUua2V5KSks''@;'; put 'put ''dGUub3B0aW9uYWwpe2xldCBjZT1udWxsO2lmKG51bGwhPT10ZS5leHBsaWNpdD9jZT10ZS5leHBsaWNpdDpudWxsIT09dGUuaW1wbGljaXQ/Y2U9dGUuaW1wbGljaXQ6bnVsbCE9PXRlLnRhZyYmKGNlPXRlLnRhZyksbnVsbCE9PWNlfHx0ZS5hbnkpe2lmKEo9dGhpcy5fcGVla1RhZyhXLGNl''@;'; put 'put ''LHRlLmFueSksVy5pc0Vycm9yKEopKXJldHVybiBKfWVsc2V7Y29uc3QgZGU9Vy5zYXZlKCk7dHJ5e251bGw9PT10ZS5jaG9pY2U/dGhpcy5fZGVjb2RlR2VuZXJpYyh0ZS50YWcsVyxOKTp0aGlzLl9kZWNvZGVDaG9pY2UoVyxOKSxKPSEwfWNhdGNoKHZlKXtKPSExfVcucmVzdG9yZShkZSl9''@;'; put 'put ''fWlmKHRlLm9iaiYmSiYmKG9lPVcuZW50ZXJPYmplY3QoKSksSil7aWYobnVsbCE9PXRlLmV4cGxpY2l0KXtjb25zdCBkZT10aGlzLl9kZWNvZGVUYWcoVyx0ZS5leHBsaWNpdCk7aWYoVy5pc0Vycm9yKGRlKSlyZXR1cm4gZGU7Vz1kZX1jb25zdCBjZT1XLm9mZnNldDtpZihudWxsPT09dGUu''@;'; put 'put ''dXNlJiZudWxsPT09dGUuY2hvaWNlKXtsZXQgZGU7dGUuYW55JiYoZGU9Vy5zYXZlKCkpO2NvbnN0IHZlPXRoaXMuX2RlY29kZVRhZyhXLG51bGwhPT10ZS5pbXBsaWNpdD90ZS5pbXBsaWNpdDp0ZS50YWcsdGUuYW55KTtpZihXLmlzRXJyb3IodmUpKXJldHVybiB2ZTt0ZS5hbnk/Sz1XLnJh''@;'; put 'put ''dyhkZSk6Vz12ZX1pZihOJiZOLnRyYWNrJiZudWxsIT09dGUudGFnJiZOLnRyYWNrKFcucGF0aCgpLGNlLFcubGVuZ3RoLCJ0YWdnZWQiKSxOJiZOLnRyYWNrJiZudWxsIT09dGUudGFnJiZOLnRyYWNrKFcucGF0aCgpLFcub2Zmc2V0LFcubGVuZ3RoLCJjb250ZW50IiksdGUuYW55fHwoSz1u''@;'; put 'put ''dWxsPT09dGUuY2hvaWNlP3RoaXMuX2RlY29kZUdlbmVyaWModGUudGFnLFcsTik6dGhpcy5fZGVjb2RlQ2hvaWNlKFcsTikpLFcuaXNFcnJvcihLKSlyZXR1cm4gSztpZighdGUuYW55JiZudWxsPT09dGUuY2hvaWNlJiZudWxsIT09dGUuY2hpbGRyZW4mJnRlLmNoaWxkcmVuLmZvckVhY2go''@;'; put 'put ''ZnVuY3Rpb24odmUpe3ZlLl9kZWNvZGUoVyxOKX0pLHRlLmNvbnRhaW5zJiYoIm9jdHN0ciI9PT10ZS50YWd8fCJiaXRzdHIiPT09dGUudGFnKSl7Y29uc3QgZGU9bmV3IEUoSyk7Sz10aGlzLl9nZXRVc2UodGUuY29udGFpbnMsVy5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUoZGUsTil9''@;'; put 'put ''fXJldHVybiB0ZS5vYmomJkomJihLPVcubGVhdmVPYmplY3Qob2UpKSxudWxsPT09dGUua2V5fHxudWxsPT09SyYmITAhPT1KP251bGwhPT1zZSYmVy5leGl0S2V5KHNlKTpXLmxlYXZlS2V5KHNlLHRlLmtleSxLKSxLfSxyZS5wcm90b3R5cGUuX2RlY29kZUdlbmVyaWM9ZnVuY3Rpb24oVyxO''@;'; put 'put ''LHRlKXtjb25zdCBLPXRoaXMuX2Jhc2VTdGF0ZTtyZXR1cm4ic2VxIj09PVd8fCJzZXQiPT09Vz9udWxsOiJzZXFvZiI9PT1XfHwic2V0b2YiPT09Vz90aGlzLl9kZWNvZGVMaXN0KE4sVyxLLmFyZ3NbMF0sdGUpOi9zdHIkLy50ZXN0KFcpP3RoaXMuX2RlY29kZVN0cihOLFcsdGUpOiJvYmpp''@;'; put 'put ''ZCI9PT1XJiZLLmFyZ3M/dGhpcy5fZGVjb2RlT2JqaWQoTixLLmFyZ3NbMF0sSy5hcmdzWzFdLHRlKToib2JqaWQiPT09Vz90aGlzLl9kZWNvZGVPYmppZChOLG51bGwsbnVsbCx0ZSk6ImdlbnRpbWUiPT09V3x8InV0Y3RpbWUiPT09Vz90aGlzLl9kZWNvZGVUaW1lKE4sVyx0ZSk6Im51bGxf''@;'; put 'put ''Ij09PVc/dGhpcy5fZGVjb2RlTnVsbChOLHRlKToiYm9vbCI9PT1XP3RoaXMuX2RlY29kZUJvb2woTix0ZSk6Im9iakRlc2MiPT09Vz90aGlzLl9kZWNvZGVTdHIoTixXLHRlKToiaW50Ij09PVd8fCJlbnVtIj09PVc/dGhpcy5fZGVjb2RlSW50KE4sSy5hcmdzJiZLLmFyZ3NbMF0sdGUpOm51''@;'; put 'put ''bGwhPT1LLnVzZT90aGlzLl9nZXRVc2UoSy51c2UsTi5fcmVwb3J0ZXJTdGF0ZS5vYmopLl9kZWNvZGUoTix0ZSk6Ti5lcnJvcigidW5rbm93biB0YWc6ICIrVyl9LHJlLnByb3RvdHlwZS5fZ2V0VXNlPWZ1bmN0aW9uKFcsTil7Y29uc3QgdGU9dGhpcy5fYmFzZVN0YXRlO3JldHVybiB0ZS51''@;'; put 'put ''c2VEZWNvZGVyPXRoaXMuX3VzZShXLE4pLEVlKG51bGw9PT10ZS51c2VEZWNvZGVyLl9iYXNlU3RhdGUucGFyZW50KSx0ZS51c2VEZWNvZGVyPXRlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5jaGlsZHJlblswXSx0ZS5pbXBsaWNpdCE9PXRlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNp''@;'; put 'put ''dCYmKHRlLnVzZURlY29kZXI9dGUudXNlRGVjb2Rlci5jbG9uZSgpLHRlLnVzZURlY29kZXIuX2Jhc2VTdGF0ZS5pbXBsaWNpdD10ZS5pbXBsaWNpdCksdGUudXNlRGVjb2Rlcn0scmUucHJvdG90eXBlLl9kZWNvZGVDaG9pY2U9ZnVuY3Rpb24oVyxOKXtjb25zdCB0ZT10aGlzLl9iYXNlU3Rh''@;'; put 'put ''dGU7bGV0IEs9bnVsbCxKPSExO3JldHVybiBPYmplY3Qua2V5cyh0ZS5jaG9pY2UpLnNvbWUoZnVuY3Rpb24oc2Upe2NvbnN0IG9lPVcuc2F2ZSgpLGNlPXRlLmNob2ljZVtzZV07dHJ5e2NvbnN0IGRlPWNlLl9kZWNvZGUoVyxOKTtpZihXLmlzRXJyb3IoZGUpKXJldHVybiExO0s9e3R5cGU6''@;'; put 'put ''c2UsdmFsdWU6ZGV9LEo9ITB9Y2F0Y2goZGUpe3JldHVybiBXLnJlc3RvcmUob2UpLCExfXJldHVybiEwfSx0aGlzKSxKP0s6Vy5lcnJvcigiQ2hvaWNlIG5vdCBtYXRjaGVkIil9LHJlLnByb3RvdHlwZS5fY3JlYXRlRW5jb2RlckJ1ZmZlcj1mdW5jdGlvbihXKXtyZXR1cm4gbmV3IEIoVyx0''@;'; put 'put ''aGlzLnJlcG9ydGVyKX0scmUucHJvdG90eXBlLl9lbmNvZGU9ZnVuY3Rpb24oVyxOLHRlKXtjb25zdCBLPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsIT09Sy5kZWZhdWx0JiZLLmRlZmF1bHQ9PT1XKXJldHVybjtjb25zdCBKPXRoaXMuX2VuY29kZVZhbHVlKFcsTix0ZSk7cmV0dXJuIHZvaWQg''@;'; put 'put ''MD09PUp8fHRoaXMuX3NraXBEZWZhdWx0KEosTix0ZSk/dm9pZCAwOkp9LHJlLnByb3RvdHlwZS5fZW5jb2RlVmFsdWU9ZnVuY3Rpb24oVyxOLHRlKXtjb25zdCBLPXRoaXMuX2Jhc2VTdGF0ZTtpZihudWxsPT09Sy5wYXJlbnQpcmV0dXJuIEsuY2hpbGRyZW5bMF0uX2VuY29kZShXLE58fG5l''@;'; put 'put ''dyBtZSk7bGV0IEo9bnVsbDtpZih0aGlzLnJlcG9ydGVyPU4sSy5vcHRpb25hbCYmdm9pZCAwPT09Vyl7aWYobnVsbD09PUsuZGVmYXVsdClyZXR1cm47Vz1LLmRlZmF1bHR9bGV0IHNlPW51bGwsb2U9ITE7aWYoSy5hbnkpSj10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKFcpO2Vsc2UgaWYo''@;'; put 'put ''Sy5jaG9pY2UpSj10aGlzLl9lbmNvZGVDaG9pY2UoVyxOKTtlbHNlIGlmKEsuY29udGFpbnMpc2U9dGhpcy5fZ2V0VXNlKEsuY29udGFpbnMsdGUpLl9lbmNvZGUoVyxOKSxvZT0hMDtlbHNlIGlmKEsuY2hpbGRyZW4pc2U9Sy5jaGlsZHJlbi5tYXAoZnVuY3Rpb24oY2Upe2lmKCJudWxsXyI9''@;'; put 'put ''PT1jZS5fYmFzZVN0YXRlLnRhZylyZXR1cm4gY2UuX2VuY29kZShudWxsLE4sVyk7aWYobnVsbD09PWNlLl9iYXNlU3RhdGUua2V5KXJldHVybiBOLmVycm9yKCJDaGlsZCBzaG91bGQgaGF2ZSBhIGtleSIpO2NvbnN0IGRlPU4uZW50ZXJLZXkoY2UuX2Jhc2VTdGF0ZS5rZXkpO2lmKCJvYmpl''@;'; put 'put ''Y3QiIT10eXBlb2YgVylyZXR1cm4gTi5lcnJvcigiQ2hpbGQgZXhwZWN0ZWQsIGJ1dCBpbnB1dCBpcyBub3Qgb2JqZWN0Iik7Y29uc3QgdmU9Y2UuX2VuY29kZShXW2NlLl9iYXNlU3RhdGUua2V5XSxOLFcpO3JldHVybiBOLmxlYXZlS2V5KGRlKSx2ZX0sdGhpcykuZmlsdGVyKGZ1bmN0aW9u''@;'; put 'put ''KGNlKXtyZXR1cm4gY2V9KSxzZT10aGlzLl9jcmVhdGVFbmNvZGVyQnVmZmVyKHNlKTtlbHNlIGlmKCJzZXFvZiI9PT1LLnRhZ3x8InNldG9mIj09PUsudGFnKXtpZighSy5hcmdzfHwxIT09Sy5hcmdzLmxlbmd0aClyZXR1cm4gTi5lcnJvcigiVG9vIG1hbnkgYXJncyBmb3IgOiAiK0sudGFn''@;'; put 'put ''KTtpZighQXJyYXkuaXNBcnJheShXKSlyZXR1cm4gTi5lcnJvcigic2Vxb2Yvc2V0b2YsIGJ1dCBkYXRhIGlzIG5vdCBBcnJheSIpO2NvbnN0IGNlPXRoaXMuY2xvbmUoKTtjZS5fYmFzZVN0YXRlLmltcGxpY2l0PW51bGwsc2U9dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihXLm1hcChmdW5j''@;'; put 'put ''dGlvbihkZSl7cmV0dXJuIHRoaXMuX2dldFVzZSh0aGlzLl9iYXNlU3RhdGUuYXJnc1swXSxXKS5fZW5jb2RlKGRlLE4pfSxjZSkpfWVsc2UgbnVsbCE9PUsudXNlP0o9dGhpcy5fZ2V0VXNlKEsudXNlLHRlKS5fZW5jb2RlKFcsTik6KHNlPXRoaXMuX2VuY29kZVByaW1pdGl2ZShLLnRhZyxX''@;'; put 'put ''KSxvZT0hMCk7aWYoIUsuYW55JiZudWxsPT09Sy5jaG9pY2Upe2NvbnN0IGNlPW51bGwhPT1LLmltcGxpY2l0P0suaW1wbGljaXQ6Sy50YWcsZGU9bnVsbD09PUsuaW1wbGljaXQ/InVuaXZlcnNhbCI6ImNvbnRleHQiO251bGw9PT1jZT9udWxsPT09Sy51c2UmJk4uZXJyb3IoIlRhZyBjb3Vs''@;'; put 'put ''ZCBiZSBvbWl0dGVkIG9ubHkgZm9yIC51c2UoKSIpOm51bGw9PT1LLnVzZSYmKEo9dGhpcy5fZW5jb2RlQ29tcG9zaXRlKGNlLG9lLGRlLHNlKSl9cmV0dXJuIG51bGwhPT1LLmV4cGxpY2l0JiYoSj10aGlzLl9lbmNvZGVDb21wb3NpdGUoSy5leHBsaWNpdCwhMSwiY29udGV4dCIsSikpLEp9''@;'; put 'put ''LHJlLnByb3RvdHlwZS5fZW5jb2RlQ2hvaWNlPWZ1bmN0aW9uKFcsTil7Y29uc3QgdGU9dGhpcy5fYmFzZVN0YXRlLEs9dGUuY2hvaWNlW1cudHlwZV07cmV0dXJuIEt8fEVlKCExLFcudHlwZSsiIG5vdCBmb3VuZCBpbiAiK0pTT04uc3RyaW5naWZ5KE9iamVjdC5rZXlzKHRlLmNob2ljZSkp''@;'; put 'put ''KSxLLl9lbmNvZGUoVy52YWx1ZSxOKX0scmUucHJvdG90eXBlLl9lbmNvZGVQcmltaXRpdmU9ZnVuY3Rpb24oVyxOKXtjb25zdCB0ZT10aGlzLl9iYXNlU3RhdGU7aWYoL3N0ciQvLnRlc3QoVykpcmV0dXJuIHRoaXMuX2VuY29kZVN0cihOLFcpO2lmKCJvYmppZCI9PT1XJiZ0ZS5hcmdzKXJl''@;'; put 'put ''dHVybiB0aGlzLl9lbmNvZGVPYmppZChOLHRlLnJldmVyc2VBcmdzWzBdLHRlLmFyZ3NbMV0pO2lmKCJvYmppZCI9PT1XKXJldHVybiB0aGlzLl9lbmNvZGVPYmppZChOLG51bGwsbnVsbCk7aWYoImdlbnRpbWUiPT09V3x8InV0Y3RpbWUiPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlVGltZShO''@;'; put 'put ''LFcpO2lmKCJudWxsXyI9PT1XKXJldHVybiB0aGlzLl9lbmNvZGVOdWxsKCk7aWYoImludCI9PT1XfHwiZW51bSI9PT1XKXJldHVybiB0aGlzLl9lbmNvZGVJbnQoTix0ZS5hcmdzJiZ0ZS5yZXZlcnNlQXJnc1swXSk7aWYoImJvb2wiPT09VylyZXR1cm4gdGhpcy5fZW5jb2RlQm9vbChOKTtp''@;'; put 'put ''Zigib2JqRGVzYyI9PT1XKXJldHVybiB0aGlzLl9lbmNvZGVTdHIoTixXKTt0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIHRhZzogIitXKX0scmUucHJvdG90eXBlLl9pc051bXN0cj1mdW5jdGlvbihXKXtyZXR1cm4vXlswLTkgXSokLy50ZXN0KFcpfSxyZS5wcm90b3R5cGUuX2lzUHJp''@;'; put 'put ''bnRzdHI9ZnVuY3Rpb24oVyl7cmV0dXJuL15bQS1aYS16MC05ICcoKSssLS4vOj0/XSokLy50ZXN0KFcpfX0sNDkxOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9TCg4Mzg5NCk7ZnVuY3Rpb24gQihFZSl7dGhpcy5fcmVwb3J0ZXJTdGF0ZT17b2JqOm51bGwscGF0aDpbXSxv''@;'; put 'put ''cHRpb25zOkVlfHx7fSxlcnJvcnM6W119fWZ1bmN0aW9uIEUoRWUsVSl7dGhpcy5wYXRoPUVlLHRoaXMucmV0aHJvdyhVKX1KZS5iPUIsQi5wcm90b3R5cGUuaXNFcnJvcj1mdW5jdGlvbihVKXtyZXR1cm4gVSBpbnN0YW5jZW9mIEV9LEIucHJvdG90eXBlLnNhdmU9ZnVuY3Rpb24oKXtjb25z''@;'; put 'put ''dCBVPXRoaXMuX3JlcG9ydGVyU3RhdGU7cmV0dXJue29iajpVLm9iaixwYXRoTGVuOlUucGF0aC5sZW5ndGh9fSxCLnByb3RvdHlwZS5yZXN0b3JlPWZ1bmN0aW9uKFUpe2NvbnN0IFE9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtRLm9iaj1VLm9iaixRLnBhdGg9US5wYXRoLnNsaWNlKDAsVS5wYXRo''@;'; put 'put ''TGVuKX0sQi5wcm90b3R5cGUuZW50ZXJLZXk9ZnVuY3Rpb24oVSl7cmV0dXJuIHRoaXMuX3JlcG9ydGVyU3RhdGUucGF0aC5wdXNoKFUpfSxCLnByb3RvdHlwZS5leGl0S2V5PWZ1bmN0aW9uKFUpe2NvbnN0IFE9dGhpcy5fcmVwb3J0ZXJTdGF0ZTtRLnBhdGg9US5wYXRoLnNsaWNlKDAsVS0x''@;'; put 'put ''KX0sQi5wcm90b3R5cGUubGVhdmVLZXk9ZnVuY3Rpb24oVSxRLGope2NvbnN0IHJlPXRoaXMuX3JlcG9ydGVyU3RhdGU7dGhpcy5leGl0S2V5KFUpLG51bGwhPT1yZS5vYmomJihyZS5vYmpbUV09ail9LEIucHJvdG90eXBlLnBhdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVwb3J0ZXJT''@;'; put 'put ''dGF0ZS5wYXRoLmpvaW4oIi8iKX0sQi5wcm90b3R5cGUuZW50ZXJPYmplY3Q9ZnVuY3Rpb24oKXtjb25zdCBVPXRoaXMuX3JlcG9ydGVyU3RhdGUsUT1VLm9iajtyZXR1cm4gVS5vYmo9e30sUX0sQi5wcm90b3R5cGUubGVhdmVPYmplY3Q9ZnVuY3Rpb24oVSl7Y29uc3QgUT10aGlzLl9yZXBv''@;'; put 'put ''cnRlclN0YXRlLGo9US5vYmo7cmV0dXJuIFEub2JqPVUsan0sQi5wcm90b3R5cGUuZXJyb3I9ZnVuY3Rpb24oVSl7bGV0IFE7Y29uc3Qgaj10aGlzLl9yZXBvcnRlclN0YXRlLHJlPVUgaW5zdGFuY2VvZiBFO2lmKFE9cmU/VTpuZXcgRShqLnBhdGgubWFwKGZ1bmN0aW9uKGFlKXtyZXR1cm4i''@;'; put 'put ''WyIrSlNPTi5zdHJpbmdpZnkoYWUpKyJdIn0pLmpvaW4oIiIpLFUubWVzc2FnZXx8VSxVLnN0YWNrKSwhai5vcHRpb25zLnBhcnRpYWwpdGhyb3cgUTtyZXR1cm4gcmV8fGouZXJyb3JzLnB1c2goUSksUX0sQi5wcm90b3R5cGUud3JhcFJlc3VsdD1mdW5jdGlvbihVKXtjb25zdCBRPXRoaXMu''@;'; put 'put ''X3JlcG9ydGVyU3RhdGU7cmV0dXJuIFEub3B0aW9ucy5wYXJ0aWFsP3tyZXN1bHQ6dGhpcy5pc0Vycm9yKFUpP251bGw6VSxlcnJvcnM6US5lcnJvcnN9OlV9LG1lKEUsRXJyb3IpLEUucHJvdG90eXBlLnJldGhyb3c9ZnVuY3Rpb24oVSl7aWYodGhpcy5tZXNzYWdlPVUrIiBhdDogIisodGhp''@;'; put 'put ''cy5wYXRofHwiKHNoYWxsb3cpIiksRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UmJkVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsRSksIXRoaXMuc3RhY2spdHJ5e3Rocm93IG5ldyBFcnJvcih0aGlzLm1lc3NhZ2UpfWNhdGNoKFEpe3RoaXMuc3RhY2s9US5zdGFja31yZXR1cm4gdGhpc319''@;'; put 'put ''LDI1NDk2OihYZSxKZSk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gTChtZSl7Y29uc3QgQj17fTtyZXR1cm4gT2JqZWN0LmtleXMobWUpLmZvckVhY2goZnVuY3Rpb24oRSl7KDB8RSk9PUUmJihFfD0wKSxCW21lW0VdXT1FfSksQn1KZS50YWdDbGFzcz17MDoidW5pdmVyc2FsIiwxOiJhcHBs''@;'; put 'put ''aWNhdGlvbiIsMjoiY29udGV4dCIsMzoicHJpdmF0ZSJ9LEplLnRhZ0NsYXNzQnlOYW1lPUwoSmUudGFnQ2xhc3MpLEplLnRhZz17MDoiZW5kIiwxOiJib29sIiwyOiJpbnQiLDM6ImJpdHN0ciIsNDoib2N0c3RyIiw1OiJudWxsXyIsNjoib2JqaWQiLDc6Im9iakRlc2MiLDg6ImV4dGVybmFs''@;'; put 'put ''Iiw5OiJyZWFsIiwxMDoiZW51bSIsMTE6ImVtYmVkIiwxMjoidXRmOHN0ciIsMTM6InJlbGF0aXZlT2lkIiwxNjoic2VxIiwxNzoic2V0IiwxODoibnVtc3RyIiwxOToicHJpbnRzdHIiLDIwOiJ0NjFzdHIiLDIxOiJ2aWRlb3N0ciIsMjI6ImlhNXN0ciIsMjM6InV0Y3RpbWUiLDI0OiJnZW50''@;'; put 'put ''aW1lIiwyNToiZ3JhcGhzdHIiLDI2OiJpc282NDZzdHIiLDI3OiJnZW5zdHIiLDI4OiJ1bmlzdHIiLDI5OiJjaGFyc3RyIiwzMDoiYm1wc3RyIn0sSmUudGFnQnlOYW1lPUwoSmUudGFnKX0sNTQ1OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuX3JldmVyc2U9ZnVu''@;'; put 'put ''Y3Rpb24oRSl7Y29uc3QgRWU9e307cmV0dXJuIE9iamVjdC5rZXlzKEUpLmZvckVhY2goZnVuY3Rpb24oVSl7KDB8VSk9PVUmJihVfD0wKSxFZVtFW1VdXT1VfSksRWV9LG1lLmRlcj1MKDI1NDk2KX0sODcxMjc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoODM4OTQpLEI9''@;'; put 'put ''TCgxMzg1NCksRT1MKDEyNzY5KS5DLEVlPUwoMzE0MzApLFU9TCgyNTQ5Nik7ZnVuY3Rpb24gUShZKXt0aGlzLmVuYz0iZGVyIix0aGlzLm5hbWU9WS5uYW1lLHRoaXMuZW50aXR5PVksdGhpcy50cmVlPW5ldyBqLHRoaXMudHJlZS5faW5pdChZLmJvZHkpfWZ1bmN0aW9uIGooWSl7RWUuY2Fs''@;'; put 'put ''bCh0aGlzLCJkZXIiLFkpfWZ1bmN0aW9uIHJlKFksVyl7bGV0IE49WS5yZWFkVUludDgoVyk7aWYoWS5pc0Vycm9yKE4pKXJldHVybiBOO2NvbnN0IHRlPVUudGFnQ2xhc3NbTj4+Nl0sSz0wPT0oMzImTik7aWYoMzE9PSgzMSZOKSl7bGV0IHNlPU47Zm9yKE49MDsxMjg9PSgxMjgmc2UpOyl7''@;'; put 'put ''aWYoc2U9WS5yZWFkVUludDgoVyksWS5pc0Vycm9yKHNlKSlyZXR1cm4gc2U7Tjw8PTcsTnw9MTI3JnNlfX1lbHNlIE4mPTMxO3JldHVybntjbHM6dGUscHJpbWl0aXZlOkssdGFnOk4sdGFnU3RyOlUudGFnW05dfX1mdW5jdGlvbiBhZShZLFcsTil7bGV0IHRlPVkucmVhZFVJbnQ4KE4pO2lm''@;'; put 'put ''KFkuaXNFcnJvcih0ZSkpcmV0dXJuIHRlO2lmKCFXJiYxMjg9PT10ZSlyZXR1cm4gbnVsbDtpZigwPT0oMTI4JnRlKSlyZXR1cm4gdGU7Y29uc3QgSz0xMjcmdGU7aWYoSz40KXJldHVybiBZLmVycm9yKCJsZW5ndGggb2N0ZWN0IGlzIHRvbyBsb25nIik7dGU9MDtmb3IobGV0IEo9MDtKPEs7''@;'; put 'put ''SisrKXt0ZTw8PTg7Y29uc3Qgc2U9WS5yZWFkVUludDgoTik7aWYoWS5pc0Vycm9yKHNlKSlyZXR1cm4gc2U7dGV8PXNlfXJldHVybiB0ZX1YZS5leHBvcnRzPVEsUS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKFcsTil7cmV0dXJuIEUuaXNEZWNvZGVyQnVmZmVyKFcpfHwoVz1uZXcgRShX''@;'; put 'put ''LE4pKSx0aGlzLnRyZWUuX2RlY29kZShXLE4pfSxtZShqLEVlKSxqLnByb3RvdHlwZS5fcGVla1RhZz1mdW5jdGlvbihXLE4sdGUpe2lmKFcuaXNFbXB0eSgpKXJldHVybiExO2NvbnN0IEs9Vy5zYXZlKCksSj1yZShXLCdGYWlsZWQgdG8gcGVlayB0YWc6ICInK04rJyInKTtyZXR1cm4gVy5p''@;'; put 'put ''c0Vycm9yKEopP0o6KFcucmVzdG9yZShLKSxKLnRhZz09PU58fEoudGFnU3RyPT09Tnx8Si50YWdTdHIrIm9mIj09PU58fHRlKX0sai5wcm90b3R5cGUuX2RlY29kZVRhZz1mdW5jdGlvbihXLE4sdGUpe2NvbnN0IEs9cmUoVywnRmFpbGVkIHRvIGRlY29kZSB0YWcgb2YgIicrTisnIicpO2lm''@;'; put 'put ''KFcuaXNFcnJvcihLKSlyZXR1cm4gSztsZXQgSj1hZShXLEsucHJpbWl0aXZlLCdGYWlsZWQgdG8gZ2V0IGxlbmd0aCBvZiAiJytOKyciJyk7aWYoVy5pc0Vycm9yKEopKXJldHVybiBKO2lmKCF0ZSYmSy50YWchPT1OJiZLLnRhZ1N0ciE9PU4mJksudGFnU3RyKyJvZiIhPT1OKXJldHVybiBX''@;'; put 'put ''LmVycm9yKCdGYWlsZWQgdG8gbWF0Y2ggdGFnOiAiJytOKyciJyk7aWYoSy5wcmltaXRpdmV8fG51bGwhPT1KKXJldHVybiBXLnNraXAoSiwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK04rJyInKTtjb25zdCBzZT1XLnNhdmUoKSxvZT10aGlzLl9za2lwVW50aWxFbmQoVywnRmFpbGVk''@;'; put 'put ''IHRvIHNraXAgaW5kZWZpbml0ZSBsZW5ndGggYm9keTogIicrdGhpcy50YWcrJyInKTtyZXR1cm4gVy5pc0Vycm9yKG9lKT9vZTooSj1XLm9mZnNldC1zZS5vZmZzZXQsVy5yZXN0b3JlKHNlKSxXLnNraXAoSiwnRmFpbGVkIHRvIG1hdGNoIGJvZHkgb2Y6ICInK04rJyInKSl9LGoucHJvdG90''@;'; put 'put ''eXBlLl9za2lwVW50aWxFbmQ9ZnVuY3Rpb24oVyxOKXtmb3IoOzspe2NvbnN0IHRlPXJlKFcsTik7aWYoVy5pc0Vycm9yKHRlKSlyZXR1cm4gdGU7Y29uc3QgSz1hZShXLHRlLnByaW1pdGl2ZSxOKTtpZihXLmlzRXJyb3IoSykpcmV0dXJuIEs7bGV0IEo7aWYoSj10ZS5wcmltaXRpdmV8fG51''@;'; put 'put ''bGwhPT1LP1cuc2tpcChLKTp0aGlzLl9za2lwVW50aWxFbmQoVyxOKSxXLmlzRXJyb3IoSikpcmV0dXJuIEo7aWYoImVuZCI9PT10ZS50YWdTdHIpYnJlYWt9fSxqLnByb3RvdHlwZS5fZGVjb2RlTGlzdD1mdW5jdGlvbihXLE4sdGUsSyl7Y29uc3QgSj1bXTtmb3IoOyFXLmlzRW1wdHkoKTsp''@;'; put 'put ''e2NvbnN0IHNlPXRoaXMuX3BlZWtUYWcoVywiZW5kIik7aWYoVy5pc0Vycm9yKHNlKSlyZXR1cm4gc2U7Y29uc3Qgb2U9dGUuZGVjb2RlKFcsImRlciIsSyk7aWYoVy5pc0Vycm9yKG9lKSYmc2UpYnJlYWs7Si5wdXNoKG9lKX1yZXR1cm4gSn0sai5wcm90b3R5cGUuX2RlY29kZVN0cj1mdW5j''@;'; put 'put ''dGlvbihXLE4pe2lmKCJiaXRzdHIiPT09Til7Y29uc3QgdGU9Vy5yZWFkVUludDgoKTtyZXR1cm4gVy5pc0Vycm9yKHRlKT90ZTp7dW51c2VkOnRlLGRhdGE6Vy5yYXcoKX19aWYoImJtcHN0ciI9PT1OKXtjb25zdCB0ZT1XLnJhdygpO2lmKHRlLmxlbmd0aCUyPT0xKXJldHVybiBXLmVycm9y''@;'; put 'put ''KCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogYm1wc3RyIGxlbmd0aCBtaXNtYXRjaCIpO2xldCBLPSIiO2ZvcihsZXQgSj0wO0o8dGUubGVuZ3RoLzI7SisrKUsrPVN0cmluZy5mcm9tQ2hhckNvZGUodGUucmVhZFVJbnQxNkJFKDIqSikpO3JldHVybiBLfWlmKCJudW1zdHIiPT09Til7Y29u''@;'; put 'put ''c3QgdGU9Vy5yYXcoKS50b1N0cmluZygiYXNjaWkiKTtyZXR1cm4gdGhpcy5faXNOdW1zdHIodGUpP3RlOlcuZXJyb3IoIkRlY29kaW5nIG9mIHN0cmluZyB0eXBlOiBudW1zdHIgdW5zdXBwb3J0ZWQgY2hhcmFjdGVycyIpfWlmKCJvY3RzdHIiPT09TilyZXR1cm4gVy5yYXcoKTtpZigib2Jq''@;'; put 'put ''RGVzYyI9PT1OKXJldHVybiBXLnJhdygpO2lmKCJwcmludHN0ciI9PT1OKXtjb25zdCB0ZT1XLnJhdygpLnRvU3RyaW5nKCJhc2NpaSIpO3JldHVybiB0aGlzLl9pc1ByaW50c3RyKHRlKT90ZTpXLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgdW5zdXBwb3J0ZWQg''@;'; put 'put ''Y2hhcmFjdGVycyIpfXJldHVybi9zdHIkLy50ZXN0KE4pP1cucmF3KCkudG9TdHJpbmcoKTpXLmVycm9yKCJEZWNvZGluZyBvZiBzdHJpbmcgdHlwZTogIitOKyIgdW5zdXBwb3J0ZWQiKX0sai5wcm90b3R5cGUuX2RlY29kZU9iamlkPWZ1bmN0aW9uKFcsTix0ZSl7bGV0IEs7Y29uc3QgSj1b''@;'; put 'put ''XTtsZXQgc2U9MCxvZT0wO2Zvcig7IVcuaXNFbXB0eSgpOylvZT1XLnJlYWRVSW50OCgpLHNlPDw9NyxzZXw9MTI3Jm9lLDA9PSgxMjgmb2UpJiYoSi5wdXNoKHNlKSxzZT0wKTtpZigxMjgmb2UmJkoucHVzaChzZSksSz10ZT9KOltKWzBdLzQwfDAsSlswXSU0MF0uY29uY2F0KEouc2xpY2Uo''@;'; put 'put ''MSkpLE4pe2xldCB2ZT1OW0suam9pbigiICIpXTt2b2lkIDA9PT12ZSYmKHZlPU5bSy5qb2luKCIuIildKSx2b2lkIDAhPT12ZSYmKEs9dmUpfXJldHVybiBLfSxqLnByb3RvdHlwZS5fZGVjb2RlVGltZT1mdW5jdGlvbihXLE4pe2NvbnN0IHRlPVcucmF3KCkudG9TdHJpbmcoKTtsZXQgSyxK''@;'; put 'put ''LHNlLG9lLGNlLGRlO2lmKCJnZW50aW1lIj09PU4pSz0wfHRlLnNsaWNlKDAsNCksSj0wfHRlLnNsaWNlKDQsNiksc2U9MHx0ZS5zbGljZSg2LDgpLG9lPTB8dGUuc2xpY2UoOCwxMCksY2U9MHx0ZS5zbGljZSgxMCwxMiksZGU9MHx0ZS5zbGljZSgxMiwxNCk7ZWxzZXtpZigidXRjdGltZSIh''@;'; put 'put ''PT1OKXJldHVybiBXLmVycm9yKCJEZWNvZGluZyAiK04rIiB0aW1lIGlzIG5vdCBzdXBwb3J0ZWQgeWV0Iik7Sz0wfHRlLnNsaWNlKDAsMiksSj0wfHRlLnNsaWNlKDIsNCksc2U9MHx0ZS5zbGljZSg0LDYpLG9lPTB8dGUuc2xpY2UoNiw4KSxjZT0wfHRlLnNsaWNlKDgsMTApLGRlPTB8dGUu''@;'; put 'put ''c2xpY2UoMTAsMTIpLEs9Szw3MD8yZTMrSzoxOTAwK0t9cmV0dXJuIERhdGUuVVRDKEssSi0xLHNlLG9lLGNlLGRlLDApfSxqLnByb3RvdHlwZS5fZGVjb2RlTnVsbD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxqLnByb3RvdHlwZS5fZGVjb2RlQm9vbD1mdW5jdGlvbihXKXtjb25zdCBOPVcu''@;'; put 'put ''cmVhZFVJbnQ4KCk7cmV0dXJuIFcuaXNFcnJvcihOKT9OOjAhPT1OfSxqLnByb3RvdHlwZS5fZGVjb2RlSW50PWZ1bmN0aW9uKFcsTil7Y29uc3QgdGU9Vy5yYXcoKTtsZXQgSz1uZXcgQih0ZSk7cmV0dXJuIE4mJihLPU5bSy50b1N0cmluZygxMCldfHxLKSxLfSxqLnByb3RvdHlwZS5fdXNl''@;'; put 'put ''PWZ1bmN0aW9uKFcsTil7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIFcmJihXPVcoTikpLFcuX2dldERlY29kZXIoImRlciIpLnRyZWV9fSw3MDE5NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuZGVyPUwoODcxMjcpLG1lLnBlbT1MKDk5NjE3KX0sOTk2MTc6KFhl''@;'; put 'put ''LEplLEwpPT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoODM4OTQpLEI9TCg2MjAzOCkuQnVmZmVyLEU9TCg4NzEyNyk7ZnVuY3Rpb24gRWUoVSl7RS5jYWxsKHRoaXMsVSksdGhpcy5lbmM9InBlbSJ9bWUoRWUsRSksWGUuZXhwb3J0cz1FZSxFZS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9u''@;'; put 'put ''KFEsail7Y29uc3QgcmU9US50b1N0cmluZygpLnNwbGl0KC9bXHJcbl0rL2cpLGFlPWoubGFiZWwudG9VcHBlckNhc2UoKSxZPS9eLS0tLS0oQkVHSU58RU5EKSAoW14tXSspLS0tLS0kLztsZXQgVz0tMSxOPS0xO2ZvcihsZXQgSj0wO0o8cmUubGVuZ3RoO0orKyl7Y29uc3Qgc2U9cmVbSl0u''@;'; put 'put ''bWF0Y2goWSk7aWYobnVsbCE9PXNlJiZzZVsyXT09PWFlKXtpZigtMSE9PVcpe2lmKCJFTkQiIT09c2VbMV0pYnJlYWs7Tj1KO2JyZWFrfWlmKCJCRUdJTiIhPT1zZVsxXSlicmVhaztXPUp9fWlmKC0xPT09V3x8LTE9PT1OKXRocm93IG5ldyBFcnJvcigiUEVNIHNlY3Rpb24gbm90IGZvdW5k''@;'; put 'put ''IGZvcjogIithZSk7Y29uc3QgdGU9cmUuc2xpY2UoVysxLE4pLmpvaW4oIiIpO3RlLnJlcGxhY2UoL1teYS16MC05Ky89XSsvZ2ksIiIpO2NvbnN0IEs9Qi5mcm9tKHRlLCJiYXNlNjQiKTtyZXR1cm4gRS5wcm90b3R5cGUuZGVjb2RlLmNhbGwodGhpcyxLLGopfX0sMTYzNzQ6KFhlLEplLEwp''@;'; put 'put ''PT57InVzZSBzdHJpY3QiO2NvbnN0IG1lPUwoODM4OTQpLEI9TCg2MjAzOCkuQnVmZmVyLEU9TCgzMTQzMCksRWU9TCgyNTQ5Nik7ZnVuY3Rpb24gVShhZSl7dGhpcy5lbmM9ImRlciIsdGhpcy5uYW1lPWFlLm5hbWUsdGhpcy5lbnRpdHk9YWUsdGhpcy50cmVlPW5ldyBRLHRoaXMudHJlZS5f''@;'; put 'put ''aW5pdChhZS5ib2R5KX1mdW5jdGlvbiBRKGFlKXtFLmNhbGwodGhpcywiZGVyIixhZSl9ZnVuY3Rpb24gaihhZSl7cmV0dXJuIGFlPDEwPyIwIithZTphZX1YZS5leHBvcnRzPVUsVS5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKFksVyl7cmV0dXJuIHRoaXMudHJlZS5fZW5jb2RlKFksVyku''@;'; put 'put ''am9pbigpfSxtZShRLEUpLFEucHJvdG90eXBlLl9lbmNvZGVDb21wb3NpdGU9ZnVuY3Rpb24oWSxXLE4sdGUpe2NvbnN0IEs9ZnVuY3Rpb24gcmUoYWUsWSxXLE4pe2xldCB0ZTtpZigic2Vxb2YiPT09YWU/YWU9InNlcSI6InNldG9mIj09PWFlJiYoYWU9InNldCIpLEVlLnRhZ0J5TmFtZS5o''@;'; put 'put ''YXNPd25Qcm9wZXJ0eShhZSkpdGU9RWUudGFnQnlOYW1lW2FlXTtlbHNle2lmKCJudW1iZXIiIT10eXBlb2YgYWV8fCgwfGFlKSE9PWFlKXJldHVybiBOLmVycm9yKCJVbmtub3duIHRhZzogIithZSk7dGU9YWV9cmV0dXJuIHRlPj0zMT9OLmVycm9yKCJNdWx0aS1vY3RldCB0YWcgZW5jb2Rp''@;'; put 'put ''bmcgdW5zdXBwb3J0ZWQiKTooWXx8KHRlfD0zMiksdGV8PUVlLnRhZ0NsYXNzQnlOYW1lW1d8fCJ1bml2ZXJzYWwiXTw8Nix0ZSl9KFksVyxOLHRoaXMucmVwb3J0ZXIpO2lmKHRlLmxlbmd0aDwxMjgpe2NvbnN0IG9lPUIuYWxsb2MoMik7cmV0dXJuIG9lWzBdPUssb2VbMV09dGUubGVuZ3Ro''@;'; put 'put ''LHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoW29lLHRlXSl9bGV0IEo9MTtmb3IobGV0IG9lPXRlLmxlbmd0aDtvZT49MjU2O29lPj49OClKKys7Y29uc3Qgc2U9Qi5hbGxvYygyK0opO3NlWzBdPUssc2VbMV09MTI4fEo7Zm9yKGxldCBvZT0xK0osY2U9dGUubGVuZ3RoO2NlPjA7b2UtLSxj''@;'; put 'put ''ZT4+PTgpc2Vbb2VdPTI1NSZjZTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbc2UsdGVdKX0sUS5wcm90b3R5cGUuX2VuY29kZVN0cj1mdW5jdGlvbihZLFcpe2lmKCJiaXRzdHIiPT09VylyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihbMHxZLnVudXNlZCxZLmRh''@;'; put 'put ''dGFdKTtpZigiYm1wc3RyIj09PVcpe2NvbnN0IE49Qi5hbGxvYygyKlkubGVuZ3RoKTtmb3IobGV0IHRlPTA7dGU8WS5sZW5ndGg7dGUrKylOLndyaXRlVUludDE2QkUoWS5jaGFyQ29kZUF0KHRlKSwyKnRlKTtyZXR1cm4gdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihOKX1yZXR1cm4ibnVt''@;'; put 'put ''c3RyIj09PVc/dGhpcy5faXNOdW1zdHIoWSk/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihZKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogbnVtc3RyIHN1cHBvcnRzIG9ubHkgZGlnaXRzIGFuZCBzcGFjZSIpOiJwcmludHN0ciI9PT1XP3RoaXMuX2lz''@;'; put 'put ''UHJpbnRzdHIoWSk/dGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihZKTp0aGlzLnJlcG9ydGVyLmVycm9yKCJFbmNvZGluZyBvZiBzdHJpbmcgdHlwZTogcHJpbnRzdHIgc3VwcG9ydHMgb25seSBsYXRpbiB1cHBlciBhbmQgbG93ZXIgY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIHNwYWNlLCBhcG9z''@;'; put 'put ''dHJvcGhlLCBsZWZ0IGFuZCByaWd0aCBwYXJlbnRoZXNpcywgcGx1cyBzaWduLCBjb21tYSwgaHlwaGVuLCBkb3QsIHNsYXNoLCBjb2xvbiwgZXF1YWwgc2lnbiwgcXVlc3Rpb24gbWFyayIpOi9zdHIkLy50ZXN0KFcpfHwib2JqRGVzYyI9PT1XP3RoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIo''@;'; put 'put ''WSk6dGhpcy5yZXBvcnRlci5lcnJvcigiRW5jb2Rpbmcgb2Ygc3RyaW5nIHR5cGU6ICIrVysiIHVuc3VwcG9ydGVkIil9LFEucHJvdG90eXBlLl9lbmNvZGVPYmppZD1mdW5jdGlvbihZLFcsTil7aWYoInN0cmluZyI9PXR5cGVvZiBZKXtpZighVylyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJv''@;'; put 'put ''cigic3RyaW5nIG9iamlkIGdpdmVuLCBidXQgbm8gdmFsdWVzIG1hcCBmb3VuZCIpO2lmKCFXLmhhc093blByb3BlcnR5KFkpKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJvYmppZCBub3QgZm91bmQgaW4gdmFsdWVzIG1hcCIpO1k9V1tZXS5zcGxpdCgvW1xzLl0rL2cpO2ZvcihsZXQg''@;'; put 'put ''c2U9MDtzZTxZLmxlbmd0aDtzZSsrKVlbc2VdfD0wfWVsc2UgaWYoQXJyYXkuaXNBcnJheShZKSl7WT1ZLnNsaWNlKCk7Zm9yKGxldCBzZT0wO3NlPFkubGVuZ3RoO3NlKyspWVtzZV18PTB9aWYoIUFycmF5LmlzQXJyYXkoWSkpcmV0dXJuIHRoaXMucmVwb3J0ZXIuZXJyb3IoIm9iamlkKCkg''@;'; put 'put ''c2hvdWxkIGJlIGVpdGhlciBhcnJheSBvciBzdHJpbmcsIGdvdDogIitKU09OLnN0cmluZ2lmeShZKSk7aWYoIU4pe2lmKFlbMV0+PTQwKXJldHVybiB0aGlzLnJlcG9ydGVyLmVycm9yKCJTZWNvbmQgb2JqaWQgaWRlbnRpZmllciBPT0IiKTtZLnNwbGljZSgwLDIsNDAqWVswXStZWzFdKX1s''@;'; put 'put ''ZXQgdGU9MDtmb3IobGV0IHNlPTA7c2U8WS5sZW5ndGg7c2UrKyl7bGV0IG9lPVlbc2VdO2Zvcih0ZSsrO29lPj0xMjg7b2U+Pj03KXRlKyt9Y29uc3QgSz1CLmFsbG9jKHRlKTtsZXQgSj1LLmxlbmd0aC0xO2ZvcihsZXQgc2U9WS5sZW5ndGgtMTtzZT49MDtzZS0tKXtsZXQgb2U9WVtzZV07''@;'; put 'put ''Zm9yKEtbSi0tXT0xMjcmb2U7KG9lPj49Nyk+MDspS1tKLS1dPTEyOHwxMjcmb2V9cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoSyl9LFEucHJvdG90eXBlLl9lbmNvZGVUaW1lPWZ1bmN0aW9uKFksVyl7bGV0IE47Y29uc3QgdGU9bmV3IERhdGUoWSk7cmV0dXJuImdlbnRpbWUi''@;'; put 'put ''PT09Vz9OPVtqKHRlLmdldFVUQ0Z1bGxZZWFyKCkpLGoodGUuZ2V0VVRDTW9udGgoKSsxKSxqKHRlLmdldFVUQ0RhdGUoKSksaih0ZS5nZXRVVENIb3VycygpKSxqKHRlLmdldFVUQ01pbnV0ZXMoKSksaih0ZS5nZXRVVENTZWNvbmRzKCkpLCJaIl0uam9pbigiIik6InV0Y3RpbWUiPT09Vz9O''@;'; put 'put ''PVtqKHRlLmdldFVUQ0Z1bGxZZWFyKCklMTAwKSxqKHRlLmdldFVUQ01vbnRoKCkrMSksaih0ZS5nZXRVVENEYXRlKCkpLGoodGUuZ2V0VVRDSG91cnMoKSksaih0ZS5nZXRVVENNaW51dGVzKCkpLGoodGUuZ2V0VVRDU2Vjb25kcygpKSwiWiJdLmpvaW4oIiIpOnRoaXMucmVwb3J0ZXIuZXJy''@;'; put 'put ''b3IoIkVuY29kaW5nICIrVysiIHRpbWUgaXMgbm90IHN1cHBvcnRlZCB5ZXQiKSx0aGlzLl9lbmNvZGVTdHIoTiwib2N0c3RyIil9LFEucHJvdG90eXBlLl9lbmNvZGVOdWxsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoIiIpfSxRLnByb3RvdHlwZS5fZW5j''@;'; put 'put ''b2RlSW50PWZ1bmN0aW9uKFksVyl7aWYoInN0cmluZyI9PXR5cGVvZiBZKXtpZighVylyZXR1cm4gdGhpcy5yZXBvcnRlci5lcnJvcigiU3RyaW5nIGludCBvciBlbnVtIGdpdmVuLCBidXQgbm8gdmFsdWVzIG1hcCIpO2lmKCFXLmhhc093blByb3BlcnR5KFkpKXJldHVybiB0aGlzLnJlcG9y''@;'; put 'put ''dGVyLmVycm9yKCJWYWx1ZXMgbWFwIGRvZXNuJ3QgY29udGFpbjogIitKU09OLnN0cmluZ2lmeShZKSk7WT1XW1ldfWlmKCJudW1iZXIiIT10eXBlb2YgWSYmIUIuaXNCdWZmZXIoWSkpe2NvbnN0IEs9WS50b0FycmF5KCk7IVkuc2lnbiYmMTI4JktbMF0mJksudW5zaGlmdCgwKSxZPUIuZnJv''@;'; put 'put ''bShLKX1pZihCLmlzQnVmZmVyKFkpKXtsZXQgSz1ZLmxlbmd0aDswPT09WS5sZW5ndGgmJksrKztjb25zdCBKPUIuYWxsb2MoSyk7cmV0dXJuIFkuY29weShKKSwwPT09WS5sZW5ndGgmJihKWzBdPTApLHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoSil9aWYoWTwxMjgpcmV0dXJuIHRoaXMu''@;'; put 'put ''X2NyZWF0ZUVuY29kZXJCdWZmZXIoWSk7aWYoWTwyNTYpcmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWzAsWV0pO2xldCBOPTE7Zm9yKGxldCBLPVk7Sz49MjU2O0s+Pj04KU4rKztjb25zdCB0ZT1uZXcgQXJyYXkoTik7Zm9yKGxldCBLPXRlLmxlbmd0aC0xO0s+PTA7Sy0tKXRl''@;'; put 'put ''W0tdPTI1NSZZLFk+Pj04O3JldHVybiAxMjgmdGVbMF0mJnRlLnVuc2hpZnQoMCksdGhpcy5fY3JlYXRlRW5jb2RlckJ1ZmZlcihCLmZyb20odGUpKX0sUS5wcm90b3R5cGUuX2VuY29kZUJvb2w9ZnVuY3Rpb24oWSl7cmV0dXJuIHRoaXMuX2NyZWF0ZUVuY29kZXJCdWZmZXIoWT8yNTU6MCl9''@;'; put 'put ''LFEucHJvdG90eXBlLl91c2U9ZnVuY3Rpb24oWSxXKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgWSYmKFk9WShXKSksWS5fZ2V0RW5jb2RlcigiZGVyIikudHJlZX0sUS5wcm90b3R5cGUuX3NraXBEZWZhdWx0PWZ1bmN0aW9uKFksVyxOKXtjb25zdCB0ZT10aGlzLl9iYXNlU3RhdGU7bGV0''@;'; put 'put ''IEs7aWYobnVsbD09PXRlLmRlZmF1bHQpcmV0dXJuITE7Y29uc3QgSj1ZLmpvaW4oKTtpZih2b2lkIDA9PT10ZS5kZWZhdWx0QnVmZmVyJiYodGUuZGVmYXVsdEJ1ZmZlcj10aGlzLl9lbmNvZGVWYWx1ZSh0ZS5kZWZhdWx0LFcsTikuam9pbigpKSxKLmxlbmd0aCE9PXRlLmRlZmF1bHRCdWZm''@;'; put 'put ''ZXIubGVuZ3RoKXJldHVybiExO2ZvcihLPTA7SzxKLmxlbmd0aDtLKyspaWYoSltLXSE9PXRlLmRlZmF1bHRCdWZmZXJbS10pcmV0dXJuITE7cmV0dXJuITB9fSwyMTEzMTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9SmU7bWUuZGVyPUwoMTYzNzQpLG1lLnBlbT1MKDM1MzAp''@;'; put 'put ''fSwzNTMwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijtjb25zdCBtZT1MKDgzODk0KSxCPUwoMTYzNzQpO2Z1bmN0aW9uIEUoRWUpe0IuY2FsbCh0aGlzLEVlKSx0aGlzLmVuYz0icGVtIn1tZShFLEIpLFhlLmV4cG9ydHM9RSxFLnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24oVSxRKXtjb25z''@;'; put 'put ''dCByZT1CLnByb3RvdHlwZS5lbmNvZGUuY2FsbCh0aGlzLFUpLnRvU3RyaW5nKCJiYXNlNjQiKSxhZT1bIi0tLS0tQkVHSU4gIitRLmxhYmVsKyItLS0tLSJdO2ZvcihsZXQgWT0wO1k8cmUubGVuZ3RoO1krPTY0KWFlLnB1c2gocmUuc2xpY2UoWSxZKzY0KSk7cmV0dXJuIGFlLnB1c2goIi0t''@;'; put 'put ''LS0tRU5EICIrUS5sYWJlbCsiLS0tLS0iKSxhZS5qb2luKCJcbiIpfX0sMTM4NTQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlv''@;'; put 'put ''biBFZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdh''@;'; put 'put ''dGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRz''@;'; put 'put ''PVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg4MDk1MCkuQnVmZmVyfWNhdGNoKGhlKXt9ZnVuY3Rpb24gaihoZSxPKXt2YXIgej1oZS5jaGFyQ29kZUF0''@;'; put 'put ''KE8pO3JldHVybiB6Pj02NSYmejw9NzA/ei01NTp6Pj05NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiByZShoZSxPLHope3ZhciBlZT1qKGhlLHopO3JldHVybiB6LTE+PU8mJihlZXw9aihoZSx6LTEpPDw0KSxlZX1mdW5jdGlvbiBhZShoZSxPLHosZWUpe2Zvcih2YXIgbmU9MCx4''@;'; put 'put ''PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQPU87UDx4O1ArKyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODtuZSo9ZWUsbmUrPVY+PTQ5P1YtNDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiBuZX1VLmlzQk49ZnVuY3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBVfHxudWxsIT09TyYm''@;'; put 'put ''Im9iamVjdCI9PXR5cGVvZiBPJiZPLmNvbnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik+MD9POnp9LFUubWluPWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPDA/Tzp6''@;'; put 'put ''fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihPLHosZWUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihPLHosZWUpO2lmKCJvYmplY3QiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdEFycmF5KE8seixlZSk7ImhleCI9PT16JiYoej0xNiksRSh6''@;'; put 'put ''PT09KDB8eikmJno+PTImJno8PTM2KTt2YXIgbmU9MDsiLSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKG5lKyssdGhpcy5uZWdhdGl2ZT0xKSxuZTxPLmxlbmd0aCYmKDE2PT09ej90aGlzLl9wYXJzZUhleChPLG5lLGVlKToodGhpcy5fcGFyc2VCYXNlKE8s''@;'; put 'put ''eixuZSksImxlIj09PWVlJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixlZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oTyx6LGVlKXtPPDAmJih0aGlzLm5lZ2F0aXZlPTEsTz0tTyksTzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmT10sdGhp''@;'; put 'put ''cy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMu''@;'; put 'put ''bGVuZ3RoPTMpLCJsZSI9PT1lZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosZWUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKE8seixlZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8ubGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0s''@;'; put 'put ''dGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09MDt2YXIgeCxQLFY9MDtpZigiYmUiPT09ZWUpZm9y''@;'; put 'put ''KG5lPU8ubGVuZ3RoLTEseD0wO25lPj0wO25lLT0zKXRoaXMud29yZHNbeF18PShQPU9bbmVdfE9bbmUtMV08PDh8T1tuZS0yXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7ZWxzZSBpZigibGUiPT09''@;'; put 'put ''ZWUpZm9yKG5lPTAseD0wO25lPE8ubGVuZ3RoO25lKz0zKXRoaXMud29yZHNbeF18PShQPU9bbmVdfE9bbmUrMV08PDh8T1tuZSsyXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7cmV0dXJuIHRoaXMu''@;'; put 'put ''c3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKE8seixlZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tu''@;'; put 'put ''ZV09MDt2YXIgVix4PTAsUD0wO2lmKCJiZSI9PT1lZSlmb3IobmU9Ty5sZW5ndGgtMTtuZT49ejtuZS09MilWPXJlKE8seixuZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O2Vsc2UgZm9yKG5lPShPLmxl''@;'; put 'put ''bmd0aC16KSUyPT0wP3orMTp6O25lPE8ubGVuZ3RoO25lKz0yKVY9cmUoTyx6LG5lKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0''@;'; put 'put ''aW9uKE8seixlZSl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIG5lPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopbmUrKztuZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLWVlLFY9UCVuZSxUPU1hdGgubWluKFAsUC1WKStlZSxTPTAsRj1lZTtGPFQ7Ris9bmUpUz1h''@;'; put 'put ''ZShPLEYsRituZSx6KSx0aGlzLmltdWxuKHgpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1hZShPLEYsTy5sZW5ndGgseiksRj0wO0Y8VjtGKyspeWUqPXo7dGhpcy5pbXVsbih5ZSksdGhp''@;'; put 'put ''cy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoO3orKylPLndvcmRz''@;'; put 'put ''W3pdPXRoaXMud29yZHNbel07Ty5sZW5ndGg9dGhpcy5sZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiB0aGlzLmNvcHkoTyksT30sVS5wcm90b3R5cGUuX2V4''@;'; put 'put ''cGFuZD1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxl''@;'; put 'put ''bmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxVLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sVS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIs''@;'; put 'put ''IjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAw''@;'; put 'put ''MDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxXPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgs''@;'; put 'put ''Nyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcs''@;'; put 'put ''NzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5''@;'; put 'put ''Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gSyhoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZTt2YXIgZWU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5sZW5ndGg9ZWUsZWU9ZWUtMXwwO3ZhciBuZT0wfGhlLndvcmRzWzBdLHg9MHxPLndvcmRz''@;'; put 'put ''WzBdLFA9bmUqeCxUPVAvNjcxMDg4NjR8MDt6LndvcmRzWzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxlZTtTKyspe2Zvcih2YXIgRj1UPj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihTLE8ubGVuZ3RoLTEpLERlPU1hdGgubWF4KDAsUy1oZS5sZW5ndGgrMSk7RGU8PUNlO0Rl''@;'; put 'put ''KyspRis9KFA9KG5lPTB8aGUud29yZHNbUy1EZXwwXSkqKHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1UP3oud29yZHNbU109MHxUOnoubGVuZ3RoLS0sei5zdHJpcCgpfVUucHJvdG90eXBlLnRv''@;'; put 'put ''U3RyaW5nPWZ1bmN0aW9uKE8seil7dmFyIGVlO2lmKHo9MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe2VlPSIiO2Zvcih2YXIgbmU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlzLndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihWPDxuZXx4KSkudG9TdHJpbmco''@;'; put 'put ''MTYpO2VlPTAhPSh4PVY+Pj4yNC1uZSYxNjc3NzIxNSl8fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtlZTpUK2VlLChuZSs9Mik+PTI2JiYobmUtPTI2LFAtLSl9Zm9yKDAhPT14JiYoZWU9eC50b1N0cmluZygxNikrZWUpO2VlLmxlbmd0aCV6IT0wOyllZT0iMCIrZWU7cmV0''@;'; put 'put ''dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoZWU9Ii0iK2VlKSxlZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltPXTtlZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5ZS5uZWdhdGl2ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBDZT15ZS5tb2RuKEYpLnRvU3Ry''@;'; put 'put ''aW5nKE8pO2VlPSh5ZT15ZS5pZGl2bihGKSkuaXNaZXJvKCk/Q2UrZWU6WVtTLUNlLmxlbmd0aF0rQ2UrZWV9Zm9yKHRoaXMuaXNaZXJvKCkmJihlZT0iMCIrZWUpO2VlLmxlbmd0aCV6IT0wOyllZT0iMCIrZWU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoZWU9Ii0iK2VlKSxlZX1FKCEx''@;'; put 'put ''LCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08rPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53''@;'; put 'put ''b3Jkc1syXT9PKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LU86T30sVS5wcm90b3R5cGUudG9KU09OPWZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxVLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQgMCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMudG9BcnJh''@;'; put 'put ''eUxpa2UoQXJyYXksTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU9dGhpcy5ieXRlTGVuZ3RoKCkseD1lZXx8TWF0aC5tYXgoMSxuZSk7RShuZTw9eCwiYnl0ZSBhcnJheSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLEUoeD4wLCJSZXF1''@;'; put 'put ''ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25lKCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVltTXT1UO2Zvcig7Uzx4O1MrKylWW1Nd''@;'; put 'put ''PTB9ZWxzZXtmb3IoUz0wO1M8eC1uZTtTKyspVltTXT0wO2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90eXBlLl9jb3VudEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihPKXtyZXR1cm4gMzItTWF0''@;'; put 'put ''aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7dmFyIHo9TyxlZT0wO3JldHVybiB6Pj00MDk2JiYoZWUrPTEzLHo+Pj49MTMpLHo+PTY0JiYoZWUrPTcsej4+Pj03KSx6Pj04JiYoZWUrPTQsej4+Pj00KSx6Pj0yJiYoZWUrPTIsej4+Pj0yKSxlZSt6fSxVLnByb3RvdHlwZS5femVyb0JpdHM9ZnVu''@;'; put 'put ''Y3Rpb24oTyl7aWYoMD09PU8pcmV0dXJuIDI2O3ZhciB6PU8sZWU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihlZSs9MTMsej4+Pj0xMyksMD09KDEyNyZ6KSYmKGVlKz03LHo+Pj49NyksMD09KDE1JnopJiYoZWUrPTQsej4+Pj00KSwwPT0oMyZ6KSYmKGVlKz0yLHo+Pj49MiksMD09KDEmeikm''@;'; put 'put ''JmVlKyssZWV9LFUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3p9LFUucHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1pl''@;'; put 'put ''cm8oKSlyZXR1cm4gMDtmb3IodmFyIE89MCx6PTA7ejx0aGlzLmxlbmd0aDt6Kyspe3ZhciBlZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3pdKTtpZihPKz1lZSwyNiE9PWVlKWJyZWFrfXJldHVybiBPfSxVLnByb3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGgu''@;'; put 'put ''Y2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxVLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4g''@;'; put 'put ''dGhpcy50ZXN0bihPLTEpP3RoaXMubm90bihPKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVn''@;'; put 'put ''KCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zv''@;'; put 'put ''cih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXRoaXMud29yZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdW9yKE8p''@;'; put 'put ''fSxVLnByb3RvdHlwZS5vcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUo''@;'; put 'put ''KS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9yKHRoaXMpfSxVLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3RoPk8ubGVuZ3RoP086dGhpcztmb3IodmFyIGVlPTA7ZWU8ei5sZW5ndGg7ZWUrKyl0aGlzLndvcmRzW2VlXT10aGlzLndvcmRzW2VlXSZPLndvcmRz''@;'; put 'put ''W2VlXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oTyl7cmV0dXJu''@;'; put 'put ''IHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5jbG9uZSgpLml1YW5kKHRoaXMp''@;'; put 'put ''fSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihPKXt2YXIgeixlZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLGVlPU8pOih6PU8sZWU9dGhpcyk7Zm9yKHZhciBuZT0wO25lPGVlLmxlbmd0aDtuZSsrKXRoaXMud29yZHNbbmVdPXoud29yZHNbbmVdXmVlLndvcmRzW25lXTtpZih0''@;'; put 'put ''aGlzIT09eilmb3IoO25lPHoubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09ei53b3Jkc1tuZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZl''@;'; put 'put ''KSksdGhpcy5pdXhvcihPKX0sVS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90b3R5cGUudXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+''@;'; put 'put ''Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKE8pOk8uY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PTB8TWF0aC5jZWlsKE8vMjYpLGVlPU8lMjY7dGhpcy5fZXhwYW5kKHopLGVlPjAm''@;'; put 'put ''JnotLTtmb3IodmFyIG5lPTA7bmU8ejtuZSsrKXRoaXMud29yZHNbbmVdPTY3MTA4ODYzJn50aGlzLndvcmRzW25lXTtyZXR1cm4gZWU+MCYmKHRoaXMud29yZHNbbmVdPX50aGlzLndvcmRzW25lXSY2NzEwODg2Mz4+MjYtZWUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUubm90bj1mdW5j''@;'; put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciBlZT1PLzI2fDAsbmU9TyUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKGVlKzEpLHRoaXMud29yZHNbZWVdPXo/dGhp''@;'; put 'put ''cy53b3Jkc1tlZV18MTw8bmU6dGhpcy53b3Jkc1tlZV0mfigxPDxuZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8pe3ZhciB6LGVlLG5lO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHo9dGhpcy5p''@;'; put 'put ''c3ViKE8pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oZWU9''@;'; put 'put ''dGhpcyxuZT1PKTooZWU9TyxuZT10aGlzKTtmb3IodmFyIHg9MCxQPTA7UDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8ZWUud29yZHNbUF0pKygwfG5lLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtmb3IoOzAhPT14JiZQPGVlLmxlbmd0aDtQKyspdGhpcy53b3Jk''@;'; put 'put ''c1tQXT02NzEwODg2MyYoej0oMHxlZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9ZWUubGVuZ3RoLDAhPT14KXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgrKztlbHNlIGlmKGVlIT09dGhpcylmb3IoO1A8ZWUubGVuZ3RoO1ArKyl0aGlzLndvcmRz''@;'; put 'put ''W1BdPWVlLndvcmRzW1BdO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2ZT0wLHo9dGhpcy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6KTowPT09Ty5uZWdhdGl2ZSYm''@;'; put 'put ''MCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNsb25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPKXtpZigw''@;'; put 'put ''IT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2ZT0wO3ZhciB6PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1T''@;'; put 'put ''aWduKCk7dmFyIG5lLHgsZWU9dGhpcy5jbXAoTyk7aWYoMD09PWVlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztlZT4wPyhuZT10aGlzLHg9Tyk6KG5lPU8seD10aGlzKTtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspUD0o''@;'; put 'put ''ej0oMHxuZS53b3Jkc1tWXSktKDB8eC53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPG5lLmxlbmd0aDtWKyspUD0oej0oMHxuZS53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtpZigwPT09UCYmVjxuZS5sZW5n''@;'; put 'put ''dGgmJm5lIT09dGhpcylmb3IoO1Y8bmUubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPW5lLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxWKSxuZSE9PXRoaXMmJih0aGlzLm5lZ2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuc3ViPWZ1''@;'; put 'put ''bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgVCxTLEYsbmU9Ty53b3Jkcyx4PXoud29yZHMsUD1lZS53b3JkcyxWPTAseWU9MHxuZVswXSxDZT04MTkxJnllLERlPXllPj4+MTMsUGU9MHxuZVsxXSxRZT04MTkxJlBlLCRl''@;'; put 'put ''PVBlPj4+MTMsZ3Q9MHxuZVsyXSx3dD04MTkxJmd0LG10PWd0Pj4+MTMsdnQ9MHxuZVszXSxBdD04MTkxJnZ0LGh0PXZ0Pj4+MTMsQnQ9MHxuZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHxuZVs1XSxldD04MTkxJnR0LGx0PXR0Pj4+MTMsTHQ9MHxuZVs2XSxDdD04MTkxJkx0LGZ0''@;'; put 'put ''PUx0Pj4+MTMsSHQ9MHxuZVs3XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHxuZVs4XSxqdD04MTkxJnl0LEp0PXl0Pj4+MTMsZ249MHxuZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4WzBdLE5uPTgxOTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhbMV0sc3I9ODE5MSZlcixYbj1l''@;'; put 'put ''cj4+PjEzLEZyPTB8eFsyXSx4cj04MTkxJkZyLHF0PUZyPj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0sV3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxOdD04MTkxJktuLHNuPUtuPj4+MTMsVW49MHx4WzZdLHduPTgxOTEmVW4sdG49VW4+Pj4x''@;'; put 'put ''Myx6bj0wfHhbN10sVHI9ODE5MSZ6bixCbj16bj4+PjEzLGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgxOTEmY24sR3Q9Y24+Pj4xMztlZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsZWUubGVuZ3RoPTE5O3ZhciBrbj0oVisoVD1NYXRoLmlt''@;'; put 'put ''dWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1hdGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+PjI2KXwwLGtuJj02NzEwODg2MyxUPU1hdGguaW11bChRZSxObiksUz0oUz1NYXRoLmlt''@;'; put 'put ''dWwoUWUsYm4pKStNYXRoLmltdWwoJGUsTm4pfDAsRj1NYXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLFhuKXwwKStNYXRoLmltdWwoRGUsc3IpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmlt''@;'; put 'put ''dWwoRGUsWG4pfDApKyhTPj4+MTMpfDApKyhWbj4+PjI2KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmltdWwod3QsYm4pKStNYXRoLmltdWwobXQsTm4pfDAsRj1NYXRoLmltdWwobXQsYm4pLFQ9VCtNYXRoLmltdWwoUWUsc3IpfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bChRZSxYbil8MCkrTWF0aC5pbXVsKCRlLHNyKXwwLEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVsKENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscXQpfDApK01hdGguaW11bChEZSx4cil8MCkpPDwxMyl8MDtWPSgoRj1G''@;'; put 'put ''K01hdGguaW11bChEZSxxdCl8MCkrKFM+Pj4xMyl8MCkrKGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEF0LE5uKSxTPShTPU1hdGguaW11bChBdCxibikpK01hdGguaW11bChodCxObil8MCxGPU1hdGguaW11bChodCxibiksVD1UK01hdGguaW11bCh3dCxzcil8MCxTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKHd0LFhuKXwwKStNYXRoLmltdWwobXQsc3IpfDAsRj1GK01hdGguaW11bChtdCxYbil8MCxUPVQrTWF0aC5pbXVsKFFlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVsKCRlLHF0KXwwO3ZhciBJbj0o''@;'; put 'put ''VisoVD1UK01hdGguaW11bChDZSxucil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQW4pfDApKyhTPj4+MTMpfDApKyhJbj4+PjI2KXwwLEluJj02NzEwODg2MyxUPU1hdGgu''@;'; put 'put ''aW11bChvbixObiksUz0oUz1NYXRoLmltdWwob24sYm4pKStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRoLmltdWwoQXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChBdCxYbil8MCkrTWF0aC5pbXVsKGh0LHNyKXwwLEY9RitNYXRoLmltdWwoaHQsWG4pfDAs''@;'; put 'put ''VD1UK01hdGguaW11bCh3dCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwobXQseHIpfDAsRj1GK01hdGguaW11bChtdCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsQW4pfDApK01hdGguaW11bCgkZSxucil8MCxGPUYr''@;'; put 'put ''TWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBKbj0oVisoVD1UK01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUscG4pfDApKyhTPj4+MTMpfDApKyhKbj4+''@;'; put 'put ''PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChldCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwobHQsTm4pfDAsRj1NYXRoLmltdWwobHQsYm4pLFQ9VCtNYXRoLmltdWwob24sc3IpfDAsUz0oUz1TK01hdGguaW11bChvbixYbil8MCkrTWF0aC5pbXVsKF90LHNy''@;'; put 'put ''KXwwLEY9RitNYXRoLmltdWwoX3QsWG4pfDAsVD1UK01hdGguaW11bChBdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxxdCl8MCxUPVQrTWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQW4p''@;'; put 'put ''fDApK01hdGguaW11bChtdCxucil8MCxGPUYrTWF0aC5pbXVsKG10LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwLEY9RitNYXRoLmltdWwoJGUscG4pfDA7dmFyIG9yPShWKyhUPVQrTWF0aC5pbXVsKENl''@;'; put 'put ''LE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYpfDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEN0LE5uKSxTPShTPU1h''@;'; put 'put ''dGguaW11bChDdCxibikpK01hdGguaW11bChmdCxObil8MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwobHQsc3IpfDAsRj1GK01hdGguaW11bChsdCxYbil8MCxUPVQrTWF0aC5pbXVsKG9uLHhy''@;'; put 'put ''KXwwLFM9KFM9UytNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRoLmltdWwoQXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChBdCxBbil8MCkrTWF0aC5pbXVsKGh0LG5yKXwwLEY9RitNYXRoLmltdWwoaHQsQW4pfDAs''@;'; put 'put ''VD1UK01hdGguaW11bCh3dCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwobXQsV3QpfDAsRj1GK01hdGguaW11bChtdCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgkZSxOdCl8MCxGPUYr''@;'; put 'put ''TWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBncj0oVisoVD1UK01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsdG4pfDApKyhTPj4+MTMpfDApKyhncj4+''@;'; put 'put ''PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChHZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAsRj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwoQ3Qsc3IpfDAsUz0oUz1TK01hdGguaW11bChDdCxYbil8MCkrTWF0aC5pbXVsKGZ0LHNy''@;'; put 'put ''KXwwLEY9RitNYXRoLmltdWwoZnQsWG4pfDAsVD1UK01hdGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwobHQseHIpfDAsRj1GK01hdGguaW11bChsdCxxdCl8MCxUPVQrTWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9UytNYXRoLmltdWwob24sQW4p''@;'; put 'put ''fDApK01hdGguaW11bChfdCxucil8MCxGPUYrTWF0aC5pbXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwoQXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChBdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXwwLEY9RitNYXRoLmltdWwoaHQscG4pfDAsVD1UK01hdGguaW11bCh3dCxOdCl8MCxTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwobXQsTnQpfDAsRj1GK01hdGguaW11bChtdCxzbil8MCxUPVQrTWF0aC5pbXVsKFFlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVsKCRlLHRuKXwwO3ZhciBLcj0o''@;'; put 'put ''VisoVD1UK01hdGguaW11bChDZSxUcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQm4pfDApKyhTPj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGgu''@;'; put 'put ''aW11bChqdCxObiksUz0oUz1NYXRoLmltdWwoanQsYm4pKStNYXRoLmltdWwoSnQsTm4pfDAsRj1NYXRoLmltdWwoSnQsYm4pLFQ9VCtNYXRoLmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChHZSxYbil8MCkrTWF0aC5pbXVsKFVlLHNyKXwwLEY9RitNYXRoLmltdWwoVWUsWG4pfDAs''@;'; put 'put ''VD1UK01hdGguaW11bChDdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChsdCxucil8MCxGPUYr''@;'; put 'put ''TWF0aC5pbXVsKGx0LEFuKXwwLFQ9VCtNYXRoLmltdWwob24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1UK01hdGguaW11bChBdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHNuKXwwKStNYXRo''@;'; put 'put ''LmltdWwoaHQsTnQpfDAsRj1GK01hdGguaW11bChodCxzbil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bChtdCx3bil8MCxGPUYrTWF0aC5pbXVsKG10LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUsVHIpfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXwwLEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVsKENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdW4pfDApK01hdGguaW11bChEZSxtbil8MCkpPDwxMyl8MDtWPSgoRj1G''@;'; put 'put ''K01hdGguaW11bChEZSx1bil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShTPU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixObil8MCxGPU1hdGguaW11bCh5bixibiksVD1UK01hdGguaW11bChqdCxzcil8MCxTPShT''@;'; put 'put ''PVMrTWF0aC5pbXVsKGp0LFhuKXwwKStNYXRoLmltdWwoSnQsc3IpfDAsRj1GK01hdGguaW11bChKdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxGPUYrTWF0aC5pbXVsKFVlLHF0KXwwLFQ9VCtNYXRo''@;'; put 'put ''LmltdWwoQ3QsbnIpfDAsUz0oUz1TK01hdGguaW11bChDdCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4pfDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHBuKXwwKStNYXRoLmltdWwobHQsV3QpfDAsRj1GK01hdGguaW11''@;'; put 'put ''bChsdCxwbil8MCxUPVQrTWF0aC5pbXVsKG9uLE50KXwwLFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxGPUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmltdWwoQXQsd24pfDAsUz0oUz1TK01hdGguaW11bChBdCx0bil8MCkrTWF0aC5pbXVsKGh0''@;'; put 'put ''LHduKXwwLEY9RitNYXRoLmltdWwoaHQsdG4pfDAsVD1UK01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwobXQsVHIpfDAsRj1GK01hdGguaW11bChtdCxCbil8MCxUPVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoUWUs''@;'; put 'put ''dW4pfDApK01hdGguaW11bCgkZSxtbil8MCxGPUYrTWF0aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEd0KXwwKStNYXRoLmltdWwoRGUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmlt''@;'; put 'put ''dWwoRGUsR3QpfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmltdWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1NYXRoLmltdWwoeW4sWG4pLFQ9VCtNYXRoLmltdWwoanQseHIpfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bChqdCxxdCl8MCkrTWF0aC5pbXVsKEp0LHhyKXwwLEY9RitNYXRoLmltdWwoSnQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIpfDAsRj1GK01hdGguaW11bChVZSxBbil8MCxUPVQrTWF0aC5pbXVsKEN0''@;'; put 'put ''LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtNYXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChldCxzbil8MCkrTWF0aC5pbXVsKGx0LE50KXwwLEY9RitNYXRoLmltdWwobHQsc24p''@;'; put 'put ''fDAsVD1UK01hdGguaW11bChvbix3bil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGguaW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKEF0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxG''@;'; put 'put ''PUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9VCtNYXRoLmltdWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVsKG10LG1uKXwwLEY9RitNYXRoLmltdWwobXQsdW4pfDA7dmFyIFJyPShWKyhUPVQrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9''@;'; put 'put ''UytNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHhyKSxTPShTPU1hdGguaW11bChkbixxdCkpK01hdGguaW11''@;'; put 'put ''bCh5bix4cil8MCxGPU1hdGguaW11bCh5bixxdCksVD1UK01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoSnQsbnIpfDAsRj1GK01hdGguaW11bChKdCxBbil8MCxUPVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoR2Us''@;'; put 'put ''cG4pfDApK01hdGguaW11bChVZSxXdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01hdGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50KXwwLEY9RitNYXRoLmltdWwoZnQsc24pfDAsVD1UK01hdGguaW11bChldCx3bil8MCxT''@;'; put 'put ''PShTPVMrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmltdWwobHQsd24pfDAsRj1GK01hdGguaW11bChsdCx0bil8MCxUPVQrTWF0aC5pbXVsKG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxGPUYrTWF0aC5pbXVsKF90LEJuKXwwLFQ9VCtN''@;'; put 'put ''YXRoLmltdWwoQXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChBdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQsdW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwod3QsR3QpfDApK01hdGgu''@;'; put 'put ''aW11bChtdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChtdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1hdGguaW11bChkbixBbikpK01hdGguaW11bCh5bixucil8MCxGPU1hdGguaW11bCh5bixB''@;'; put 'put ''biksVD1UK01hdGguaW11bChqdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoSnQsV3QpfDAsRj1GK01hdGguaW11bChKdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50KXwwLFM9KFM9UytNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxG''@;'; put 'put ''PUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9VCtNYXRoLmltdWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVsKGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAsVD1UK01hdGguaW11bChldCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEJuKXwwKStN''@;'; put 'put ''YXRoLmltdWwobHQsVHIpfDAsRj1GK01hdGguaW11bChsdCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYrTWF0aC5pbXVsKF90LHVuKXwwO3ZhciBNaT0oVisoVD1UK01hdGguaW11bChBdCxfbil8''@;'; put 'put ''MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEF0LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1pJj02NzEwODg2MyxUPU1hdGguaW11bChkbixXdCksUz0oUz1NYXRoLmlt''@;'; put 'put ''dWwoZG4scG4pKStNYXRoLmltdWwoeW4sV3QpfDAsRj1NYXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01hdGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKEp0LE50KXwwLEY9RitNYXRoLmltdWwoSnQsc24pfDAsVD1UK01hdGguaW11bChHZSx3bil8MCxT''@;'; put 'put ''PShTPVMrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmltdWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVsKEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxGPUYrTWF0aC5pbXVsKGZ0LEJuKXwwLFQ9VCtN''@;'; put 'put ''YXRoLmltdWwoZXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChldCx1bil8MCkrTWF0aC5pbXVsKGx0LG1uKXwwLEY9RitNYXRoLmltdWwobHQsdW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9uLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwob24sR3QpfDApK01hdGgu''@;'; put 'put ''aW11bChfdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1hdGguaW11bChkbixzbikpK01hdGguaW11bCh5bixOdCl8MCxGPU1hdGguaW11bCh5bixz''@;'; put 'put ''biksVD1UK01hdGguaW11bChqdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoSnQsd24pfDAsRj1GK01hdGguaW11bChKdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxG''@;'; put 'put ''PUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVsKGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7dmFyIG4wPShWKyhUPVQrTWF0aC5pbXVsKGV0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9''@;'; put 'put ''UytNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChsdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChsdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHduKSxTPShTPU1hdGguaW11bChkbix0bikpK01hdGguaW11''@;'; put 'put ''bCh5bix3bil8MCxGPU1hdGguaW11bCh5bix0biksVD1UK01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoSnQsVHIpfDAsRj1GK01hdGguaW11bChKdCxCbil8MCxUPVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoR2Us''@;'; put 'put ''dW4pfDApK01hdGguaW11bChVZSxtbil8MCxGPUYrTWF0aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0LEd0KXwwKStNYXRoLmltdWwoZnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmlt''@;'; put 'put ''dWwoZnQsR3QpfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmltdWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1NYXRoLmltdWwoeW4sQm4pLFQ9VCtNYXRoLmltdWwoanQsbW4pfDAsUz0oUz1TK01hdGgu''@;'; put 'put ''aW11bChqdCx1bil8MCkrTWF0aC5pbXVsKEp0LG1uKXwwLEY9RitNYXRoLmltdWwoSnQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVsKEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1G''@;'; put 'put ''K01hdGguaW11bChVZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShTPU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixtbil8MCxGPU1hdGguaW11bCh5bix1bik7dmFyIEcwPShWKyhUPVQrTWF0aC5pbXVsKGp0''@;'; put 'put ''LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11bChKdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChKdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYpfDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0oVisoVD1NYXRoLmltdWwoZG4s''@;'; put 'put ''X24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGRuLEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1NYXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMsUFswXT1rbixQWzFdPVZuLFBbMl09ZW4sUFszXT1J''@;'; put 'put ''bixQWzRdPUpuLFBbNV09b3IsUFs2XT1ncixQWzddPUtyLFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEzXT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQWzE3XT1HMCxQWzE4XT1EaSwwIT09ViYmKFBbMTldPVYsZWUubGVuZ3RoKyspLGVlfTtm''@;'; put 'put ''dW5jdGlvbiBvZShoZSxPLHope3JldHVybihuZXcgY2UpLm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55PU99TWF0aC5pbXVsfHwoSj1LKSxVLnByb3RvdHlwZS5tdWxUbz1mdW5jdGlvbihPLHope3ZhciBlZSxuZT10aGlzLmxlbmd0aCtPLmxlbmd0aDty''@;'; put 'put ''ZXR1cm4gZWU9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1PLmxlbmd0aD9KKHRoaXMsTyx6KTpuZTw2Mz9LKHRoaXMsTyx6KTpuZTwxMDI0P2Z1bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxlbmd0aCtPLmxlbmd0aDtmb3Io''@;'; put 'put ''dmFyIGVlPTAsbmU9MCx4PTA7eDx6Lmxlbmd0aC0xO3grKyl7dmFyIFA9bmU7bmU9MDtmb3IodmFyIFY9NjcxMDg4NjMmZWUsVD1NYXRoLm1pbih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhlLmxlbmd0aCsxKTtTPD1UO1MrKyl7dmFyIERlPSgwfGhlLndvcmRzW3gtU10pKigwfE8u''@;'; put 'put ''d29yZHNbU10pLFBlPTY3MTA4ODYzJkRlO1Y9NjcxMDg4NjMmKFBlPVBlK1Z8MCksbmUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29yZHNbeF09VixlZT1QLFA9bmV9cmV0dXJuIDAhPT1lZT96LndvcmRzW3hdPWVlOnoubGVu''@;'; put 'put ''Z3RoLS0sei5zdHJpcCgpfSh0aGlzLE8seik6b2UodGhpcyxPLHopLGVlfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLGVlPVUucHJvdG90eXBlLl9jb3VudEJpdHMoTyktMSxuZT0wO25lPE87bmUrKyl6W25lXT10aGlzLnJldkJpbihu''@;'; put 'put ''ZSxlZSxPKTtyZXR1cm4gen0sY2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihPLHosZWUpe2lmKDA9PT1PfHxPPT09ZWUtMSlyZXR1cm4gTztmb3IodmFyIG5lPTAseD0wO3g8ejt4KyspbmV8PSgxJk8pPDx6LXgtMSxPPj49MTtyZXR1cm4gbmV9LGNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1''@;'; put 'put ''bmN0aW9uKE8seixlZSxuZSx4LFApe2Zvcih2YXIgVj0wO1Y8UDtWKyspbmVbVl09eltPW1ZdXSx4W1ZdPWVlW09bVl1dfSxjZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixlZSxuZSx4LFApe3RoaXMucGVybXV0ZShQLE8seixlZSxuZSx4KTtmb3IodmFyIFY9MTtWPHg7Vjw8''@;'; put 'put ''PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRoLmNvcygyKk1hdGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1UKWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsrKXt2YXIgUWU9ZWVbeWUrUGVdLCRlPW5lW3llK1BlXSxndD1lZVt5ZStQZStWXSx3dD1u''@;'; put 'put ''ZVt5ZStQZStWXSxtdD1DZSpndC1EZSp3dDt3dD1DZSp3dCtEZSpndCxlZVt5ZStQZV09UWUrKGd0PW10KSxuZVt5ZStQZV09JGUrd3QsZWVbeWUrUGUrVl09UWUtZ3QsbmVbeWUrUGUrVl09JGUtd3QsUGUhPT1UJiYobXQ9UypDZS1GKkRlLERlPVMqRGUrRipDZSxDZT1tdCl9fSxjZS5wcm90''@;'; put 'put ''b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTyx6KXt2YXIgZWU9MXxNYXRoLm1heCh6LE8pLG5lPTEmZWUseD0wO2ZvcihlZT1lZS8yfDA7ZWU7ZWU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMStuZX0sY2UucHJvdG90eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihPLHosZWUpe2lmKCEoZWU8PTEp''@;'; put 'put ''KWZvcih2YXIgbmU9MDtuZTxlZS8yO25lKyspe3ZhciB4PU9bbmVdO09bbmVdPU9bZWUtbmUtMV0sT1tlZS1uZS0xXT14LHg9eltuZV0seltuZV09LXpbZWUtbmUtMV0seltlZS1uZS0xXT0teH19LGNlLnByb3RvdHlwZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIGVlPTAs''@;'; put 'put ''bmU9MDtuZTx6LzI7bmUrKyl7dmFyIHg9ODE5MipNYXRoLnJvdW5kKE9bMipuZSsxXS96KStNYXRoLnJvdW5kKE9bMipuZV0veikrZWU7T1tuZV09NjcxMDg4NjMmeCxlZT14PDY3MTA4ODY0PzA6eC82NzEwODg2NHwwfXJldHVybiBPfSxjZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlv''@;'; put 'put ''bihPLHosZWUsbmUpe2Zvcih2YXIgeD0wLFA9MDtQPHo7UCsrKWVlWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxlZVsyKlArMV09ODE5MSYoeD4+Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDxuZTsrK1ApZWVbUF09MDtFKDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9LGNlLnByb3RvdHlwZS5zdHVi''@;'; put 'put ''PWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksZWU9MDtlZTxPO2VlKyspeltlZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU9Mip0aGlzLmd1ZXNzTGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3RoKSx4PXRoaXMubWFrZVJCVChu''@;'; put 'put ''ZSksUD10aGlzLnN0dWIobmUpLFY9bmV3IEFycmF5KG5lKSxUPW5ldyBBcnJheShuZSksUz1uZXcgQXJyYXkobmUpLEY9bmV3IEFycmF5KG5lKSx5ZT1uZXcgQXJyYXkobmUpLENlPW5ldyBBcnJheShuZSksRGU9ZWUud29yZHM7RGUubGVuZ3RoPW5lLHRoaXMuY29udmVydDEzYihPLndvcmRz''@;'; put 'put ''LE8ubGVuZ3RoLFYsbmUpLHRoaXMuY29udmVydDEzYih6LndvcmRzLHoubGVuZ3RoLEYsbmUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsbmUseCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLG5lLHgpO2Zvcih2YXIgUGU9MDtQZTxuZTtQZSsrKXt2YXIgUWU9VFtQZV0qeWVbUGVdLVNbUGVd''@;'; put 'put ''KkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQZV0rU1tQZV0qeWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsbmUpLHRoaXMudHJhbnNmb3JtKFQsUyxEZSxQLG5lLHgpLHRoaXMuY29uanVnYXRlKERlLFAsbmUpLHRoaXMubm9ybWFsaXplMTNiKERlLG5lKSxlZS5uZWdh''@;'; put 'put ''dGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsZWUubGVuZ3RoPU8ubGVuZ3RoK3oubGVuZ3RoLGVlLnN0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLHRoaXMu''@;'; put 'put ''bXVsVG8oTyx6KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMsTyx6KX0sVS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9u''@;'; put 'put ''ZSgpLm11bFRvKE8sdGhpcyl9LFUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpO2Zvcih2YXIgej0wLGVlPTA7ZWU8dGhpcy5sZW5ndGg7ZWUrKyl7dmFyIG5lPSgwfHRoaXMud29yZHNbZWVdKSpPLHg9KDY3MTA4ODYzJm5l''@;'; put 'put ''KSsoNjcxMDg4NjMmeik7ej4+PTI2LHorPW5lLzY3MTA4ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbZWVdPTY3MTA4ODYzJnh9cmV0dXJuIDAhPT16JiYodGhpcy53b3Jkc1tlZV09eix0aGlzLmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKE8pe3JldHVybiB0''@;'; put 'put ''aGlzLmNsb25lKCkuaW11bG4oTyl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE8pe3ZhciB6''@;'; put 'put ''PWZ1bmN0aW9uIHRlKGhlKXtmb3IodmFyIE89bmV3IEFycmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciBuZT16JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8bmUpPj4+bmV9cmV0dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0aClyZXR1cm4gbmV3IFUoMSk7''@;'; put 'put ''Zm9yKHZhciBlZT10aGlzLG5lPTA7bmU8ei5sZW5ndGgmJjA9PT16W25lXTtuZSsrLGVlPWVlLnNxcigpKTtpZigrK25lPHoubGVuZ3RoKWZvcih2YXIgeD1lZS5zcXIoKTtuZTx6Lmxlbmd0aDtuZSsrLHg9eC5zcXIoKSkwIT09eltuZV0mJihlZT1lZS5tdWwoeCkpO3JldHVybiBlZX0sVS5w''@;'; put 'put ''cm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsZWU9KE8teikvMjYsbmU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16KXt2YXIgUD0wO2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBWPXRoaXMud29y''@;'; put 'put ''ZHNbeF0mbmU7dGhpcy53b3Jkc1t4XT0oMHx0aGlzLndvcmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1lZSl7Zm9yKHg9dGhpcy5sZW5ndGgtMTt4Pj0wO3gtLSl0aGlzLndvcmRzW3grZWVdPXRoaXMud29yZHNbeF07''@;'; put 'put ''Zm9yKHg9MDt4PGVlO3grKyl0aGlzLndvcmRzW3hdPTA7dGhpcy5sZW5ndGgrPWVlfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlKSx0aGlzLml1c2hsbihPKX0sVS5wcm90b3R5cGUuaXVzaHJuPWZ1''@;'; put 'put ''bmN0aW9uKE8seixlZSl7dmFyIG5lO0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKSxuZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQPU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxWPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCxUPWVlO2lmKG5lLT1QLG5lPU1hdGgubWF4''@;'; put 'put ''KDAsbmUpLFQpe2Zvcih2YXIgUz0wO1M8UDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhpcy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0wO1M8dGhpcy5sZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53b3Jkc1tTK1BdO2Vs''@;'; put 'put ''c2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49bmUpO1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlzLndvcmRzW1NdPUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1yZXR1cm4gVCYmMCE9PUYmJihU''@;'; put 'put ''LndvcmRzW1QubGVuZ3RoKytdPUYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8seixlZSl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKE8seixl''@;'; put 'put ''ZSl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oTyl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMu''@;'; put 'put ''Y2xvbmUoKS5pc2hybihPKX0sVS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LGVlPShPLXopLzI2O3JldHVy''@;'; put 'put ''biEodGhpcy5sZW5ndGg8PWVlfHwhKHRoaXMud29yZHNbZWVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LGVlPShPLXopLzI2O3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29y''@;'; put 'put ''a3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9ZWU/dGhpczooMCE9PXomJmVlKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oZWUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj56PDx6KSx0''@;'; put 'put ''aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MD90aGlzLmlzdWJuKC1P''@;'; put 'put ''KTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlz''@;'; put 'put ''KTp0aGlzLl9pYWRkbihPKX0sVS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4NjQ7eisrKXRoaXMud29yZHNbel0tPTY3MTA4ODY0LHo9PT10aGlzLmxlbmd0aC0xP3Ro''@;'; put 'put ''aXMud29yZHNbeisxXT0xOnRoaXMud29yZHNbeisxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRoaXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8pe2lmKEUoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MClyZXR1cm4g''@;'; put 'put ''dGhpcy5pYWRkbigtTyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8sMT09PXRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhp''@;'; put 'put ''cy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRoaXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNbeisxXS09MTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0''@;'; put 'put ''aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oTyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sVS5wcm90b3R5cGUu''@;'; put 'put ''YWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHosZWUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtlZSk7dmFyIFAsVj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4Kyspe1A9KDB8dGhpcy53b3Jk''@;'; put 'put ''c1t4K2VlXSkrVjt2YXIgVD0oMHxPLndvcmRzW3hdKSp6O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29yZHNbeCtlZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5sZW5ndGgtZWU7eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4K2VlXSkrVik+PjI2LHRoaXMu''@;'; put 'put ''d29yZHNbeCtlZV09NjcxMDg4NjMmUDtpZigwPT09VilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hdKStWKT4+MjYsdGhpcy53b3Jkc1t4XT02NzEwODg2MyZQO3JldHVybiB0aGlzLm5lZ2F0''@;'; put 'put ''aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihPLHope3ZhciBlZSxuZT10aGlzLmNsb25lKCkseD1PLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShlZT0yNi10aGlzLl9jb3VudEJpdHMoUCkpJiYoeD14LnVzaGxuKGVlKSxuZS5pdXNobG4oZWUp''@;'; put 'put ''LFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdKTt2YXIgUyxUPW5lLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwpKS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMubGVuZ3RoKTtmb3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKylTLndvcmRzW0ZdPTB9dmFy''@;'; put 'put ''IHllPW5lLmNsb25lKCkuX2lzaGxuc3VibXVsKHgsMSxUKTswPT09eWUubmVnYXRpdmUmJihuZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9yKHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3MTA4ODY0KigwfG5lLndvcmRzW3gubGVuZ3RoK0NlXSkrKDB8bmUud29yZHNbeC5sZW5n''@;'; put 'put ''dGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1pbihEZS9QfDAsNjcxMDg4NjMpLG5lLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09bmUubmVnYXRpdmU7KURlLS0sbmUubmVnYXRpdmU9MCxuZS5faXNobG5zdWJtdWwoeCwxLENlKSxuZS5pc1plcm8oKXx8KG5lLm5lZ2F0aXZlXj0xKTtTJiYoUy53''@;'; put 'put ''b3Jkc1tDZV09RGUpfXJldHVybiBTJiZTLnN0cmlwKCksbmUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1lZSYmbmUuaXVzaHJuKGVlKSx7ZGl2OlN8fG51bGwsbW9kOm5lfX0sVS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0aW9uKE8seixlZSl7cmV0dXJuIEUoIU8uaXNaZXJvKCkpLHRoaXMuaXNa''@;'; put 'put ''ZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygpLmRpdm1vZChPLHopLCJtb2QiIT09eiYmKG5lPVAuZGl2Lm5lZygpKSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLGVlJiYwIT09eC5uZWdhdGl2''@;'; put 'put ''ZSYmeC5pYWRkKE8pKSx7ZGl2Om5lLG1vZDp4fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8ubmVnKCkseiksIm1vZCIhPT16JiYobmU9UC5kaXYubmVnKCkpLHtkaXY6bmUsbW9kOlAubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmTy5uZWdhdGl2''@;'; put 'put ''ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTy5uZWcoKSx6KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLGVlJiYwIT09eC5uZWdhdGl2ZSYmeC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/e2RpdjpuZXcgVSgwKSxtb2Q6''@;'; put 'put ''dGhpc306MT09PU8ubGVuZ3RoPyJkaXYiPT09ej97ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm5ldyBVKHRoaXMubW9k''@;'; put 'put ''bihPLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTyx6KTt2YXIgbmUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJtb2Qi''@;'; put 'put ''LCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5kaXZtb2QoTyk7aWYoei5tb2QuaXNaZXJvKCkpcmV0dXJuIHouZGl2O3ZhciBl''@;'; put 'put ''ZT0wIT09ei5kaXYubmVnYXRpdmU/ei5tb2QuaXN1YihPKTp6Lm1vZCxuZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPWVlLmNtcChuZSk7cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAhPT16LmRpdi5uZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6LmRpdi5pYWRkbigxKX0sVS5w''@;'; put 'put ''cm90b3R5cGUubW9kbj1mdW5jdGlvbihPKXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLGVlPTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKWVlPSh6KmVlKygwfHRoaXMud29yZHNbbmVdKSklTztyZXR1cm4gZWV9LFUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKE8p''@;'; put 'put ''e0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0wLGVlPXRoaXMubGVuZ3RoLTE7ZWU+PTA7ZWUtLSl7dmFyIG5lPSgwfHRoaXMud29yZHNbZWVdKSs2NzEwODg2NCp6O3RoaXMud29yZHNbZWVdPW5lL098MCx6PW5lJU99cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuZGl2bj1mdW5j''@;'; put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsZWU9Ty5jbG9uZSgpO3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnouY2xvbmUoKTtmb3Io''@;'; put 'put ''dmFyIG5lPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZXcgVSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZlZS5pc0V2ZW4oKTspei5pdXNocm4oMSksZWUuaXVzaHJuKDEpLCsrVDtmb3IodmFyIFM9ZWUuY2xvbmUoKSxGPXouY2xvbmUoKTshei5pc1plcm8oKTspe2Zvcih2YXIgeWU9''@;'; put 'put ''MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNlKSYmeWU8MjY7Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOykobmUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKG5lLmlhZGQoUykseC5pc3ViKEYpKSxuZS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKHZhciBEZT0w''@;'; put 'put ''LFBlPTE7MD09KGVlLndvcmRzWzBdJlBlKSYmRGU8MjY7KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKGVlLml1c2hybihEZSk7RGUtLSA+MDspKFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChTKSxWLmlzdWIoRikpLFAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO3ouY21wKGVlKT49MD8o''@;'; put 'put ''ei5pc3ViKGVlKSxuZS5pc3ViKFApLHguaXN1YihWKSk6KGVlLmlzdWIoeiksUC5pc3ViKG5lKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpWLGdjZDplZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7''@;'; put 'put ''dmFyIHllLHo9dGhpcyxlZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgbmU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPWVlLmNsb25lKCk7ei5jbXBuKDEpPjAmJmVlLmNtcG4oMSk+MDspe2Zvcih2YXIgVj0wLFQ9MTswPT0oei53b3Jkc1sw''@;'; put 'put ''XSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lmKFY+MClmb3Ioei5pdXNocm4oVik7Vi0tID4wOyluZS5pc09kZCgpJiZuZS5pYWRkKFApLG5lLml1c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KGVlLndvcmRzWzBdJkYpJiZTPDI2OysrUyxGPDw9MSk7aWYoUz4wKWZvcihlZS5pdXNocm4oUyk7''@;'; put 'put ''Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFkZChQKSx4Lml1c2hybigxKTt6LmNtcChlZSk+PTA/KHouaXN1YihlZSksbmUuaXN1Yih4KSk6KGVlLmlzdWIoeikseC5pc3ViKG5lKSl9cmV0dXJuKHllPTA9PT16LmNtcG4oMSk/bmU6eCkuY21wbigwKTwwJiZ5ZS5pYWRkKE8pLHllfSxVLnByb3Rv''@;'; put 'put ''dHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB6PXRoaXMuY2xvbmUoKSxlZT1PLmNsb25lKCk7ei5uZWdhdGl2ZT0wLGVlLm5lZ2F0aXZlPTA7Zm9yKHZhciBuZT0wO3ouaXNFdmVu''@;'; put 'put ''KCkmJmVlLmlzRXZlbigpO25lKyspei5pdXNocm4oMSksZWUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigxKTtmb3IoO2VlLmlzRXZlbigpOyllZS5pdXNocm4oMSk7dmFyIHg9ei5jbXAoZWUpO2lmKHg8MCl7dmFyIFA9ejt6PWVlLGVlPVB9ZWxzZSBpZigw''@;'; put 'put ''PT09eHx8MD09PWVlLmNtcG4oMSkpYnJlYWs7ei5pc3ViKGVlKX1yZXR1cm4gZWUuaXVzaGxuKG5lKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1vZChPKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRo''@;'; put 'put ''aXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMud29yZHNbMF0mT30sVS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oTyl7RSgibnVtYmVy''@;'; put 'put ''Ij09dHlwZW9mIE8pO3ZhciB6PU8lMjYsZWU9KE8teikvMjYsbmU9MTw8ejtpZih0aGlzLmxlbmd0aDw9ZWUpcmV0dXJuIHRoaXMuX2V4cGFuZChlZSsxKSx0aGlzLndvcmRzW2VlXXw9bmUsdGhpcztmb3IodmFyIHg9bmUsUD1lZTswIT09eCYmUDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPTB8''@;'; put 'put ''dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+PjI2LHRoaXMud29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQXT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLmlzWmVybz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10''@;'; put 'put ''aGlzLndvcmRzWzBdfSxVLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKE8pe3ZhciBlZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXopcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnopcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpZWU9MTtlbHNle3om''@;'; put 'put ''JihPPS1PKSxFKE88PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBuZT0wfHRoaXMud29yZHNbMF07ZWU9bmU9PT1PPzA6bmU8Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1lZTplZX0sVS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE8pe2lmKDAhPT10aGlzLm5l''@;'; put 'put ''Z2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC16Onp9LFUucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oTyl7aWYodGhp''@;'; put 'put ''cy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsZWU9dGhpcy5sZW5ndGgtMTtlZT49MDtlZS0tKXt2YXIgbmU9MHx0aGlzLndvcmRzW2VlXSx4PTB8Ty53b3Jkc1tlZV07aWYobmUhPT14KXtuZTx4P3o9LTE6bmU+''@;'; put 'put ''eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oTyl7cmV0dXJu''@;'; put 'put ''IHRoaXMuY21wbihPKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5sdD1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMu''@;'; put 'put ''Y21wKE8pfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUucHJvdG90eXBlLmVxbj1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wbihPKX0s''@;'; put 'put ''VS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBUZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlv''@;'; put 'put ''biBjb250ZXh0IiksRSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5''@;'; put 'put ''IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVkPU8sdGhpc30sVS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUo''@;'; put 'put ''IXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVk''@;'; put 'put ''LmFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBF''@;'; put 'put ''KHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5y''@;'; put 'put ''ZWQuaXN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBF''@;'; put 'put ''KHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkg''@;'; put 'put ''d2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92''@;'; put 'put ''ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9''@;'; put 'put ''LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBv''@;'; put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCYmIU8ucmVkLCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRo''@;'; put 'put ''aXMpLHRoaXMucmVkLnBvdyh0aGlzLE8pfTt2YXIgZGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5wPW5ldyBVKE8sMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBV''@;'; put 'put ''KDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVu''@;'; put 'put ''Y3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZm''@;'; put 'put ''ZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBJZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lmKCJzdHJpbmciPT10eXBlb2Yg''@;'; put 'put ''aGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0aGlzLm09Ty5wLHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIE1lKGhlKXtUZS5jYWxsKHRoaXMsaGUpLHRoaXMuc2hp''@;'; put 'put ''ZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhp''@;'; put 'put ''cy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShu''@;'; put 'put ''dWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKE8pe3ZhciBlZSx6PU87ZG97dGhpcy5zcGxpdCh6LHRoaXMudG1wKSxlZT0oej0oej10aGlzLmltdWxLKHopKS5pYWRkKHRoaXMudG1wKSku''@;'; put 'put ''Yml0TGVuZ3RoKCl9d2hpbGUoZWU+dGhpcy5uKTt2YXIgbmU9ZWU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09bmU/KHoud29yZHNbMF09MCx6Lmxlbmd0aD0xKTpuZT4wP3ouaXN1Yih0aGlzLnApOnZvaWQgMCE9PXouc3RyaXA/ei5zdHJpcCgpOnouX3N0cmlwKCksen0s''@;'; put 'put ''dmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LEVlKEFlLHZlKSxBZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIG5lPU1h''@;'; put 'put ''dGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4PG5lO3grKyl6LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9bmUsTy5sZW5ndGg8PTkpcmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3RoPTEpO3ZhciBQPU8ud29yZHNbOV07Zm9yKHoud29yZHNbei5sZW5ndGgrK109NDE5NDMw''@;'; put 'put ''MyZQLHg9MTA7eDxPLmxlbmd0aDt4Kyspe3ZhciBWPTB8Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQPVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3RoLT0wPT09UCYmTy5sZW5ndGg+MTA/MTA6OX0sQWUucHJvdG90eXBlLmltdWxLPWZ1bmN0''@;'; put 'put ''aW9uKE8pe08ud29yZHNbTy5sZW5ndGhdPTAsTy53b3Jkc1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLGVlPTA7ZWU8Ty5sZW5ndGg7ZWUrKyl7dmFyIG5lPTB8Ty53b3Jkc1tlZV07Ty53b3Jkc1tlZV09NjcxMDg4NjMmKHorPTk3NypuZSksej02NCpuZSsoei82NzEw''@;'; put 'put ''ODg2NHwwKX1yZXR1cm4gMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxlbmd0aC0tKSxPfSxFZShrZSx2ZSksRWUoU2UsdmUpLEVlKEllLHZlKSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PTAs''@;'; put 'put ''ZWU9MDtlZTxPLmxlbmd0aDtlZSsrKXt2YXIgbmU9MTkqKDB8Ty53b3Jkc1tlZV0pK3oseD02NzEwODg2MyZuZTtuZT4+Pj0yNixPLndvcmRzW2VlXT14LHo9bmV9cmV0dXJuIDAhPT16JiYoTy53b3Jkc1tPLmxlbmd0aCsrXT16KSxPfSxVLl9wcmltZT1mdW5jdGlvbihPKXtpZihkZVtPXSly''@;'; put 'put ''ZXR1cm4gZGVbT107dmFyIHo7aWYoImsyNTYiPT09Tyl6PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIhPT1PKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK08pO3o9bmV3IEllfXJl''@;'; put 'put ''dHVybiBkZVtPXT16LHp9LFRlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLl92ZXJpZnky''@;'; put 'put ''PWZ1bmN0aW9uKE8seil7RSgwPT0oTy5uZWdhdGl2ZXx6Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKE8p''@;'; put 'put ''e3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKE8pe3JldHVybiBPLmlzWmVybygpP08uY2xvbmUoKTp0aGlzLm0uc3ViKE8pLl9mb3Jj''@;'; put 'put ''ZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgZWU9Ty5hZGQoeik7cmV0dXJuIGVlLmNtcCh0aGlzLm0pPj0wJiZlZS5pc3ViKHRoaXMubSksZWUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlv''@;'; put 'put ''bihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgZWU9Ty5pYWRkKHopO3JldHVybiBlZS5jbXAodGhpcy5tKT49MCYmZWUuaXN1Yih0aGlzLm0pLGVlfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLnN1Yih6KTtyZXR1cm4gZWUu''@;'; put 'put ''Y21wbigwKTwwJiZlZS5pYWRkKHRoaXMubSksZWUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgZWU9Ty5pc3ViKHopO3JldHVybiBlZS5jbXBuKDApPDAmJmVlLmlhZGQodGhpcy5tKSxlZX0sVGUucHJvdG90''@;'; put 'put ''eXBlLnNobD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLmltdWwoeikpfSxUZS5wcm90b3R5cGUubXVs''@;'; put 'put ''PWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5jbG9uZSgpKX0sVGUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5t''@;'; put 'put ''dWwoTyxPKX0sVGUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMubS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3ZhciBlZT10aGlzLm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93''@;'; put 'put ''KE8sZWUpfWZvcih2YXIgbmU9dGhpcy5tLnN1Ym4oMSkseD0wOyFuZS5pc1plcm8oKSYmMD09PW5lLmFuZGxuKDEpOyl4KyssbmUuaXVzaHJuKDEpO0UoIW5lLmlzWmVybygpKTt2YXIgUD1uZXcgVSgxKS50b1JlZCh0aGlzKSxWPVAucmVkTmVnKCksVD10aGlzLm0uc3VibigxKS5pdXNocm4o''@;'; put 'put ''MSksUz10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKFM9bmV3IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTspUy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhTLG5lKSx5ZT10aGlzLnBvdyhPLG5lLmFkZG4oMSkuaXVzaHJuKDEpKSxDZT10aGlzLnBv''@;'; put 'put ''dyhPLG5lKSxEZT14OzAhPT1DZS5jbXAoUCk7KXtmb3IodmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigpO0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBVKDEpLml1c2hsbihEZS1RZS0xKSk7eWU9eWUucmVkTXVsKCRlKSxGPSRlLnJlZFNxcigp''@;'; put 'put ''LENlPUNlLnJlZE11bChGKSxEZT1RZX1yZXR1cm4geWV9LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5lZ2F0aXZlPTAsdGhpcy5pbW9kKHopLnJlZE5lZygpKTp0aGlzLmltb2Qoeil9LFRlLnBy''@;'; put 'put ''b3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6KXtpZih6LmlzWmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBuKDEpKXJldHVybiBPLmNsb25lKCk7dmFyIG5lPW5ldyBBcnJheSgxNik7bmVbMF09bmV3IFUoMSkudG9SZWQodGhpcyksbmVbMV09Tztmb3IodmFy''@;'; put 'put ''IHg9Mjt4PG5lLmxlbmd0aDt4KyspbmVbeF09dGhpcy5tdWwobmVbeC0xXSxPKTt2YXIgUD1uZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3RoLTE7eD49MDt4LS0pe2Zvcih2YXIgRj16LndvcmRzW3hdLHllPVMtMTt5ZT49MDt5ZS0t''@;'; put 'put ''KXt2YXIgQ2U9Rj4+eWUmMTtQIT09bmVbMF0mJihQPXRoaXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHwwPT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCxuZVtWXSksVD0wLFY9MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxUZS5wcm90b3R5cGUuY29udmVy''@;'; put 'put ''dFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8udW1vZCh0aGlzLm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUoKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5l''@;'; put 'put ''dyBNZShPKX0sRWUoTWUsVGUpLE1lLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRoaXMuc2hpZnQpKX0sTWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChPLm11bCh0aGlzLnJpbnYpKTty''@;'; put 'put ''ZXR1cm4gei5yZWQ9bnVsbCx6fSxNZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFyIGVlPU8uaW11bCh6KSxuZT1lZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52''@;'; put 'put ''KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1lZS5pc3ViKG5lKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sTWUu''@;'; put 'put ''cHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgZWU9Ty5tdWwoeiksbmU9ZWUubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0''@;'; put 'put ''aGlzLm0pLHg9ZWUuaXN1YihuZSkuaXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9yY2VSZWQodGhpcyl9LE1lLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8p''@;'; put 'put ''e3JldHVybiB0aGlzLmltb2QoTy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sNDAzOTA6KFhlLEplKT0+eyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIEw9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFla''@;'; put 'put ''YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLG1lPW5ldyBVaW50OEFycmF5KDI1NiksQj0wO0I8TC5sZW5ndGg7QisrKW1lW0wuY2hhckNvZGVBdChCKV09QjtKZS5jPWZ1bmN0aW9uKEUpe3ZhciBVLEVlPW5ldyBVaW50OEFycmF5KEUpLFE9RWUubGVuZ3RoLGo9IiI7''@;'; put 'put ''Zm9yKFU9MDtVPFE7VSs9MylqKz1MW0VlW1VdPj4yXSxqKz1MWygzJkVlW1VdKTw8NHxFZVtVKzFdPj40XSxqKz1MWygxNSZFZVtVKzFdKTw8MnxFZVtVKzJdPj42XSxqKz1MWzYzJkVlW1UrMl1dO3JldHVybiBRJTM9PTI/aj1qLnN1YnN0cmluZygwLGoubGVuZ3RoLTEpKyI9IjpRJTM9PTEm''@;'; put 'put ''JihqPWouc3Vic3RyaW5nKDAsai5sZW5ndGgtMikrIj09Iiksan0sSmUuSj1mdW5jdGlvbihFKXt2YXIgUSxyZSxhZSxZLFcsRWU9Ljc1KkUubGVuZ3RoLFU9RS5sZW5ndGgsaj0wOyI9Ij09PUVbRS5sZW5ndGgtMV0mJihFZS0tLCI9Ij09PUVbRS5sZW5ndGgtMl0mJkVlLS0pO3ZhciBOPW5l''@;'; put 'put ''dyBBcnJheUJ1ZmZlcihFZSksdGU9bmV3IFVpbnQ4QXJyYXkoTik7Zm9yKFE9MDtRPFU7USs9NClyZT1tZVtFLmNoYXJDb2RlQXQoUSldLGFlPW1lW0UuY2hhckNvZGVBdChRKzEpXSxZPW1lW0UuY2hhckNvZGVBdChRKzIpXSxXPW1lW0UuY2hhckNvZGVBdChRKzMpXSx0ZVtqKytdPXJlPDwy''@;'; put 'put ''fGFlPj40LHRlW2orK109KDE1JmFlKTw8NHxZPj4yLHRlW2orK109KDMmWSk8PDZ8NjMmVztyZXR1cm4gTn19KCl9LDUzNDM6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0IjtKZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uIGoodGUpe3ZhciBLPVEodGUpLHNlPUtbMV07cmV0dXJuIDMqKEtbMF0rc2UpLzQt''@;'; put 'put ''c2V9LEplLnRvQnl0ZUFycmF5PWZ1bmN0aW9uIGFlKHRlKXt2YXIgSyxBZSxKPVEodGUpLHNlPUpbMF0sb2U9SlsxXSxjZT1uZXcgQihmdW5jdGlvbiByZSh0ZSxLLEope3JldHVybiAzKihLK0opLzQtSn0oMCxzZSxvZSkpLGRlPTAsdmU9b2U+MD9zZS00OnNlO2ZvcihBZT0wO0FlPHZlO0Fl''@;'; put 'put ''Kz00KUs9bWVbdGUuY2hhckNvZGVBdChBZSldPDwxOHxtZVt0ZS5jaGFyQ29kZUF0KEFlKzEpXTw8MTJ8bWVbdGUuY2hhckNvZGVBdChBZSsyKV08PDZ8bWVbdGUuY2hhckNvZGVBdChBZSszKV0sY2VbZGUrK109Sz4+MTYmMjU1LGNlW2RlKytdPUs+PjgmMjU1LGNlW2RlKytdPTI1NSZLO3Jl''@;'; put 'put ''dHVybiAyPT09b2UmJihLPW1lW3RlLmNoYXJDb2RlQXQoQWUpXTw8MnxtZVt0ZS5jaGFyQ29kZUF0KEFlKzEpXT4+NCxjZVtkZSsrXT0yNTUmSyksMT09PW9lJiYoSz1tZVt0ZS5jaGFyQ29kZUF0KEFlKV08PDEwfG1lW3RlLmNoYXJDb2RlQXQoQWUrMSldPDw0fG1lW3RlLmNoYXJDb2RlQXQo''@;'; put 'put ''QWUrMildPj4yLGNlW2RlKytdPUs+PjgmMjU1LGNlW2RlKytdPTI1NSZLKSxjZX0sSmUuZnJvbUJ5dGVBcnJheT1mdW5jdGlvbiBOKHRlKXtmb3IodmFyIEssSj10ZS5sZW5ndGgsc2U9SiUzLG9lPVtdLGRlPTAsdmU9Si1zZTtkZTx2ZTtkZSs9MTYzODMpb2UucHVzaChXKHRlLGRlLGRlKzE2''@;'; put 'put ''MzgzPnZlP3ZlOmRlKzE2MzgzKSk7cmV0dXJuIDE9PT1zZT9vZS5wdXNoKExbKEs9dGVbSi0xXSk+PjJdK0xbSzw8NCY2M10rIj09Iik6Mj09PXNlJiZvZS5wdXNoKExbKEs9KHRlW0otMl08PDgpK3RlW0otMV0pPj4xMF0rTFtLPj40JjYzXStMW0s8PDImNjNdKyI9Iiksb2Uuam9pbigiIil9''@;'; put 'put ''O2Zvcih2YXIgTD1bXSxtZT1bXSxCPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhBcnJheT9VaW50OEFycmF5OkFycmF5LEU9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLEVlPTAsVT1FLmxlbmd0aDtFZTxVOysrRWUp''@;'; put 'put ''TFtFZV09RVtFZV0sbWVbRS5jaGFyQ29kZUF0KEVlKV09RWU7ZnVuY3Rpb24gUSh0ZSl7dmFyIEs9dGUubGVuZ3RoO2lmKEslND4wKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBzdHJpbmcuIExlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNCIpO3ZhciBKPXRlLmluZGV4T2YoIj0iKTty''@;'; put 'put ''ZXR1cm4tMT09PUomJihKPUspLFtKLEo9PT1LPzA6NC1KJTRdfWZ1bmN0aW9uIFkodGUpe3JldHVybiBMW3RlPj4xOCY2M10rTFt0ZT4+MTImNjNdK0xbdGU+PjYmNjNdK0xbNjMmdGVdfWZ1bmN0aW9uIFcodGUsSyxKKXtmb3IodmFyIG9lPVtdLGNlPUs7Y2U8SjtjZSs9MylvZS5wdXNoKFko''@;'; put 'put ''KHRlW2NlXTw8MTYmMTY3MTE2ODApKyh0ZVtjZSsxXTw8OCY2NTI4MCkrKDI1NSZ0ZVtjZSsyXSkpKTtyZXR1cm4gb2Uuam9pbigiIil9bWVbIi0iLmNoYXJDb2RlQXQoMCldPTYyLG1lWyJfIi5jaGFyQ29kZUF0KDApXT02M30sOTg1Mzg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1l''@;'; put 'put ''LEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGVlLG5lKXtpZighZWUpdGhyb3cgbmV3IEVycm9yKG5lfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIEVlKGVlLG5lKXtlZS5zdXBlcl89bmU7dmFyIHg9ZnVuY3Rpb24oKXt9O3gucHJvdG90eXBlPW5lLnByb3RvdHlwZSxlZS5wcm90''@;'; put 'put ''b3R5cGU9bmV3IHgsZWUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWVlfWZ1bmN0aW9uIFUoZWUsbmUseCl7aWYoVS5pc0JOKGVlKSlyZXR1cm4gZWU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWVlJiYoKCJsZSI9PT1u''@;'; put 'put ''ZXx8ImJlIj09PW5lKSYmKHg9bmUsbmU9MTApLHRoaXMuX2luaXQoZWV8fDAsbmV8fDEwLHh8fCJiZSIpKX12YXIgUTsib2JqZWN0Ij09dHlwZW9mIG1lP21lLmV4cG9ydHM9VTpCLkJOPVUsVS5CTj1VLFUud29yZFNpemU9MjY7dHJ5e1E9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZv''@;'; put 'put ''aWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpMKDQ2NjAxKS5CdWZmZXJ9Y2F0Y2goZWUpe31mdW5jdGlvbiBqKGVlLG5lKXt2YXIgeD1lZS5jaGFyQ29kZUF0KG5lKTtyZXR1cm4geD49NDgmJng8PTU3P3gtNDg6eD49NjUmJng8PTcwP3gtNTU6eD49OTcmJng8PTEwMj94LTg3''@;'; put 'put ''OnZvaWQgRSghMSwiSW52YWxpZCBjaGFyYWN0ZXIgaW4gIitlZSl9ZnVuY3Rpb24gcmUoZWUsbmUseCl7dmFyIFA9aihlZSx4KTtyZXR1cm4geC0xPj1uZSYmKFB8PWooZWUseC0xKTw8NCksUH1mdW5jdGlvbiBhZShlZSxuZSx4LFApe2Zvcih2YXIgVj0wLFQ9MCxTPU1hdGgubWluKGVlLmxl''@;'; put 'put ''bmd0aCx4KSxGPW5lO0Y8UztGKyspe3ZhciB5ZT1lZS5jaGFyQ29kZUF0KEYpLTQ4O1YqPVAsVD15ZT49NDk/eWUtNDkrMTA6eWU+PTE3P3llLTE3KzEwOnllLEUoeWU+PTAmJlQ8UCwiSW52YWxpZCBjaGFyYWN0ZXIiKSxWKz1UfXJldHVybiBWfWZ1bmN0aW9uIFkoZWUsbmUpe2VlLndvcmRz''@;'; put 'put ''PW5lLndvcmRzLGVlLmxlbmd0aD1uZS5sZW5ndGgsZWUubmVnYXRpdmU9bmUubmVnYXRpdmUsZWUucmVkPW5lLnJlZH1pZihVLmlzQk49ZnVuY3Rpb24obmUpe3JldHVybiBuZSBpbnN0YW5jZW9mIFV8fG51bGwhPT1uZSYmIm9iamVjdCI9PXR5cGVvZiBuZSYmbmUuY29uc3RydWN0b3Iud29y''@;'; put 'put ''ZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0FycmF5KG5lLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24obmUseCl7cmV0dXJuIG5lLmNtcCh4KT4wP25lOnh9LFUubWluPWZ1bmN0aW9uKG5lLHgpe3JldHVybiBuZS5jbXAoeCk8MD9uZTp4fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihu''@;'; put 'put ''ZSx4LFApe2lmKCJudW1iZXIiPT10eXBlb2YgbmUpcmV0dXJuIHRoaXMuX2luaXROdW1iZXIobmUseCxQKTtpZigib2JqZWN0Ij09dHlwZW9mIG5lKXJldHVybiB0aGlzLl9pbml0QXJyYXkobmUseCxQKTsiaGV4Ij09PXgmJih4PTE2KSxFKHg9PT0oMHx4KSYmeD49MiYmeDw9MzYpO3ZhciBW''@;'; put 'put ''PTA7Ii0iPT09KG5lPW5lLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKFYrKyx0aGlzLm5lZ2F0aXZlPTEpLFY8bmUubGVuZ3RoJiYoMTY9PT14P3RoaXMuX3BhcnNlSGV4KG5lLFYsUCk6KHRoaXMuX3BhcnNlQmFzZShuZSx4LFYpLCJsZSI9PT1QJiZ0aGlzLl9pbml0QXJy''@;'; put 'put ''YXkodGhpcy50b0FycmF5KCkseCxQKSkpfSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihuZSx4LFApe25lPDAmJih0aGlzLm5lZ2F0aXZlPTEsbmU9LW5lKSxuZTw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmbmVdLHRoaXMubGVuZ3RoPTEpOm5lPDQ1MDM1OTk2Mjcz''@;'; put 'put ''NzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJm5lLG5lLzY3MTA4ODY0JjY3MTA4ODYzXSx0aGlzLmxlbmd0aD0yKTooRShuZTw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZuZSxuZS82NzEwODg2NCY2NzEwODg2MywxXSx0aGlzLmxlbmd0aD0zKSwibGUiPT09UCYm''@;'; put 'put ''dGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHgsUCl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24obmUseCxQKXtpZihFKCJudW1iZXIiPT10eXBlb2YgbmUubGVuZ3RoKSxuZS5sZW5ndGg8PTApcmV0dXJuIHRoaXMud29yZHM9WzBdLHRoaXMubGVuZ3RoPTEsdGhpczt0''@;'; put 'put ''aGlzLmxlbmd0aD1NYXRoLmNlaWwobmUubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIFY9MDtWPHRoaXMubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPTA7dmFyIFQsUyxGPTA7aWYoImJlIj09PVApZm9yKFY9bmUubGVuZ3RoLTEsVD0wO1Y+PTA7''@;'; put 'put ''Vi09Myl0aGlzLndvcmRzW1RdfD0oUz1uZVtWXXxuZVtWLTFdPDw4fG5lW1YtMl08PDE2KTw8RiY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Uz4+PjI2LUYmNjcxMDg4NjMsKEYrPTI0KT49MjYmJihGLT0yNixUKyspO2Vsc2UgaWYoImxlIj09PVApZm9yKFY9MCxUPTA7VjxuZS5sZW5ndGg7''@;'; put 'put ''Vis9Myl0aGlzLndvcmRzW1RdfD0oUz1uZVtWXXxuZVtWKzFdPDw4fG5lW1YrMl08PDE2KTw8RiY2NzEwODg2Myx0aGlzLndvcmRzW1QrMV09Uz4+PjI2LUYmNjcxMDg4NjMsKEYrPTI0KT49MjYmJihGLT0yNixUKyspO3JldHVybiB0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VI''@;'; put 'put ''ZXg9ZnVuY3Rpb24obmUseCxQKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKG5lLmxlbmd0aC14KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBWPTA7Vjx0aGlzLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT0wO3ZhciBGLFQ9MCxTPTA7aWYoImJlIj09PVAp''@;'; put 'put ''Zm9yKFY9bmUubGVuZ3RoLTE7Vj49eDtWLT0yKUY9cmUobmUseCxWKTw8VCx0aGlzLndvcmRzW1NdfD02NzEwODg2MyZGLFQ+PTE4PyhULT0xOCx0aGlzLndvcmRzW1MrPTFdfD1GPj4+MjYpOlQrPTg7ZWxzZSBmb3IoVj0obmUubGVuZ3RoLXgpJTI9PTA/eCsxOng7VjxuZS5sZW5ndGg7Vis9''@;'; put 'put ''MilGPXJlKG5lLHgsVik8PFQsdGhpcy53b3Jkc1tTXXw9NjcxMDg4NjMmRixUPj0xOD8oVC09MTgsdGhpcy53b3Jkc1tTKz0xXXw9Rj4+PjI2KTpUKz04O3RoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24obmUseCxQKXt0aGlzLndvcmRzPVswXSx0aGlzLmxl''@;'; put 'put ''bmd0aD0xO2Zvcih2YXIgVj0wLFQ9MTtUPD02NzEwODg2MztUKj14KVYrKztWLS0sVD1UL3h8MDtmb3IodmFyIFM9bmUubGVuZ3RoLVAsRj1TJVYseWU9TWF0aC5taW4oUyxTLUYpK1AsQ2U9MCxEZT1QO0RlPHllO0RlKz1WKUNlPWFlKG5lLERlLERlK1YseCksdGhpcy5pbXVsbihUKSx0aGlz''@;'; put 'put ''LndvcmRzWzBdK0NlPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPUNlOnRoaXMuX2lhZGRuKENlKTtpZigwIT09Ril7dmFyIFBlPTE7Zm9yKENlPWFlKG5lLERlLG5lLmxlbmd0aCx4KSxEZT0wO0RlPEY7RGUrKylQZSo9eDt0aGlzLmltdWxuKFBlKSx0aGlzLndvcmRzWzBdK0NlPDY3MTA4ODY0''@;'; put 'put ''P3RoaXMud29yZHNbMF0rPUNlOnRoaXMuX2lhZGRuKENlKX10aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKG5lKXtuZS53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgeD0wO3g8dGhpcy5sZW5ndGg7eCsrKW5lLndvcmRzW3hdPXRoaXMud29yZHNb''@;'; put 'put ''eF07bmUubGVuZ3RoPXRoaXMubGVuZ3RoLG5lLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsbmUucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5fbW92ZT1mdW5jdGlvbihuZSl7WShuZSx0aGlzKX0sVS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXt2YXIgbmU9bmV3IFUobnVsbCk7cmV0dXJu''@;'; put 'put ''IHRoaXMuY29weShuZSksbmV9LFUucHJvdG90eXBlLl9leHBhbmQ9ZnVuY3Rpb24obmUpe2Zvcig7dGhpcy5sZW5ndGg8bmU7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuX3N0cmlwPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmxlbmd0aD4xJiYw''@;'; put 'put ''PT09dGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXTspdGhpcy5sZW5ndGgtLTtyZXR1cm4gdGhpcy5fbm9ybVNpZ24oKX0sVS5wcm90b3R5cGUuX25vcm1TaWduPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF0mJih0aGlzLm5lZ2F0aXZlPTApLHRo''@;'; put 'put ''aXN9LCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sLmZvcil0cnl7VS5wcm90b3R5cGVbU3ltYm9sLmZvcigibm9kZWpzLnV0aWwuaW5zcGVjdC5jdXN0b20iKV09V31jYXRjaChlZSl7VS5wcm90b3R5cGUuaW5zcGVjdD1XfWVsc2UgVS5wcm90''@;'; put 'put ''b3R5cGUuaW5zcGVjdD1XO2Z1bmN0aW9uIFcoKXtyZXR1cm4odGhpcy5yZWQ/IjxCTi1SOiAiOiI8Qk46ICIpK3RoaXMudG9TdHJpbmcoMTYpKyI+In12YXIgTj1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAw''@;'; put 'put ''MCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAw''@;'; put 'put ''MDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAi''@;'; put 'put ''XSx0ZT1bMCwwLDI1LDE2LDEyLDExLDEwLDksOCw4LDcsNyw3LDcsNiw2LDYsNiw2LDYsNiw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1XSxLPVswLDAsMzM1NTQ0MzIsNDMwNDY3MjEsMTY3NzcyMTYsNDg4MjgxMjUsNjA0NjYxNzYsNDAzNTM2MDcsMTY3NzcyMTYsNDMwNDY3MjEs''@;'; put 'put ''MWU3LDE5NDg3MTcxLDM1ODMxODA4LDYyNzQ4NTE3LDc1Mjk1MzYsMTEzOTA2MjUsMTY3NzcyMTYsMjQxMzc1NjksMzQwMTIyMjQsNDcwNDU4ODEsNjRlNiw0MDg0MTAxLDUxNTM2MzIsNjQzNjM0Myw3OTYyNjI0LDk3NjU2MjUsMTE4ODEzNzYsMTQzNDg5MDcsMTcyMTAzNjgsMjA1MTExNDks''@;'; put 'put ''MjQzZTUsMjg2MjkxNTEsMzM1NTQ0MzIsMzkxMzUzOTMsNDU0MzU0MjQsNTI1MjE4NzUsNjA0NjYxNzZdO2Z1bmN0aW9uIG9lKGVlLG5lLHgpe3gubmVnYXRpdmU9bmUubmVnYXRpdmVeZWUubmVnYXRpdmU7dmFyIFA9ZWUubGVuZ3RoK25lLmxlbmd0aHwwO3gubGVuZ3RoPVAsUD1QLTF8MDt2''@;'; put 'put ''YXIgVj0wfGVlLndvcmRzWzBdLFQ9MHxuZS53b3Jkc1swXSxTPVYqVCx5ZT1TLzY3MTA4ODY0fDA7eC53b3Jkc1swXT02NzEwODg2MyZTO2Zvcih2YXIgQ2U9MTtDZTxQO0NlKyspe2Zvcih2YXIgRGU9eWU+Pj4yNixQZT02NzEwODg2MyZ5ZSxRZT1NYXRoLm1pbihDZSxuZS5sZW5ndGgtMSks''@;'; put 'put ''JGU9TWF0aC5tYXgoMCxDZS1lZS5sZW5ndGgrMSk7JGU8PVFlOyRlKyspRGUrPShTPShWPTB8ZWUud29yZHNbQ2UtJGV8MF0pKihUPTB8bmUud29yZHNbJGVdKStQZSkvNjcxMDg4NjR8MCxQZT02NzEwODg2MyZTO3gud29yZHNbQ2VdPTB8UGUseWU9MHxEZX1yZXR1cm4gMCE9PXllP3gud29y''@;'; put 'put ''ZHNbQ2VdPTB8eWU6eC5sZW5ndGgtLSx4Ll9zdHJpcCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKG5lLHgpe3ZhciBQO2lmKHg9MHx4fHwxLDE2PT09KG5lPW5lfHwxMCl8fCJoZXgiPT09bmUpe1A9IiI7Zm9yKHZhciBWPTAsVD0wLFM9MDtTPHRoaXMubGVuZ3RoO1MrKyl7dmFy''@;'; put 'put ''IEY9dGhpcy53b3Jkc1tTXSx5ZT0oMTY3NzcyMTUmKEY8PFZ8VCkpLnRvU3RyaW5nKDE2KTtUPUY+Pj4yNC1WJjE2Nzc3MjE1LChWKz0yKT49MjYmJihWLT0yNixTLS0pLFA9MCE9PVR8fFMhPT10aGlzLmxlbmd0aC0xP05bNi15ZS5sZW5ndGhdK3llK1A6eWUrUH1mb3IoMCE9PVQmJihQPVQu''@;'; put 'put ''dG9TdHJpbmcoMTYpK1ApO1AubGVuZ3RoJXghPTA7KVA9IjAiK1A7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoUD0iLSIrUCksUH1pZihuZT09PSgwfG5lKSYmbmU+PTImJm5lPD0zNil7dmFyIENlPXRlW25lXSxEZT1LW25lXTtQPSIiO3ZhciBQZT10aGlzLmNsb25lKCk7Zm9yKFBlLm5l''@;'; put 'put ''Z2F0aXZlPTA7IVBlLmlzWmVybygpOyl7dmFyIFFlPVBlLm1vZHJuKERlKS50b1N0cmluZyhuZSk7UD0oUGU9UGUuaWRpdm4oRGUpKS5pc1plcm8oKT9RZStQOk5bQ2UtUWUubGVuZ3RoXStRZStQfWZvcih0aGlzLmlzWmVybygpJiYoUD0iMCIrUCk7UC5sZW5ndGgleCE9MDspUD0iMCIrUDty''@;'; put 'put ''ZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihQPSItIitQKSxQfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgbmU9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP25lKz02NzEwODg2''@;'; put 'put ''NCp0aGlzLndvcmRzWzFdOjM9PT10aGlzLmxlbmd0aCYmMT09PXRoaXMud29yZHNbMl0/bmUrPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09''@;'; put 'put ''dGhpcy5uZWdhdGl2ZT8tbmU6bmV9LFUucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRvU3RyaW5nKDE2LDIpfSxRJiYoVS5wcm90b3R5cGUudG9CdWZmZXI9ZnVuY3Rpb24obmUseCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoUSxuZSx4KX0pLFUucHJvdG90eXBl''@;'; put 'put ''LnRvQXJyYXk9ZnVuY3Rpb24obmUseCl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksbmUseCl9LFUucHJvdG90eXBlLnRvQXJyYXlMaWtlPWZ1bmN0aW9uKG5lLHgsUCl7dGhpcy5fc3RyaXAoKTt2YXIgVj10aGlzLmJ5dGVMZW5ndGgoKSxUPVB8fE1hdGgubWF4KDEsVik7RShWPD1U''@;'; put 'put ''LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRShUPjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpO3ZhciBTPWZ1bmN0aW9uKG5lLHgpe3JldHVybiBuZS5hbGxvY1Vuc2FmZT9uZS5hbGxvY1Vuc2FmZSh4KTpuZXcgbmUoeCl9KG5lLFQpO3JldHVybiB0''@;'; put 'put ''aGlzWyJfdG9BcnJheUxpa2UiKygibGUiPT09eD8iTEUiOiJCRSIpXShTLFYpLFN9LFUucHJvdG90eXBlLl90b0FycmF5TGlrZUxFPWZ1bmN0aW9uKG5lLHgpe2Zvcih2YXIgUD0wLFY9MCxUPTAsUz0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgRj10aGlzLndvcmRzW1RdPDxTfFY7bmVbUCsr''@;'; put 'put ''XT0yNTUmRixQPG5lLmxlbmd0aCYmKG5lW1ArK109Rj4+OCYyNTUpLFA8bmUubGVuZ3RoJiYobmVbUCsrXT1GPj4xNiYyNTUpLDY9PT1TPyhQPG5lLmxlbmd0aCYmKG5lW1ArK109Rj4+MjQmMjU1KSxWPTAsUz0wKTooVj1GPj4+MjQsUys9Mil9aWYoUDxuZS5sZW5ndGgpZm9yKG5lW1ArK109''@;'; put 'put ''VjtQPG5lLmxlbmd0aDspbmVbUCsrXT0wfSxVLnByb3RvdHlwZS5fdG9BcnJheUxpa2VCRT1mdW5jdGlvbihuZSx4KXtmb3IodmFyIFA9bmUubGVuZ3RoLTEsVj0wLFQ9MCxTPTA7VDx0aGlzLmxlbmd0aDtUKyspe3ZhciBGPXRoaXMud29yZHNbVF08PFN8VjtuZVtQLS1dPTI1NSZGLFA+PTAm''@;'; put 'put ''JihuZVtQLS1dPUY+PjgmMjU1KSxQPj0wJiYobmVbUC0tXT1GPj4xNiYyNTUpLDY9PT1TPyhQPj0wJiYobmVbUC0tXT1GPj4yNCYyNTUpLFY9MCxTPTApOihWPUY+Pj4yNCxTKz0yKX1pZihQPj0wKWZvcihuZVtQLS1dPVY7UD49MDspbmVbUC0tXT0wfSxVLnByb3RvdHlwZS5fY291bnRCaXRz''@;'; put 'put ''PU1hdGguY2x6MzI/ZnVuY3Rpb24obmUpe3JldHVybiAzMi1NYXRoLmNsejMyKG5lKX06ZnVuY3Rpb24obmUpe3ZhciB4PW5lLFA9MDtyZXR1cm4geD49NDA5NiYmKFArPTEzLHg+Pj49MTMpLHg+PTY0JiYoUCs9Nyx4Pj4+PTcpLHg+PTgmJihQKz00LHg+Pj49NCkseD49MiYmKFArPTIseD4+''@;'; put 'put ''Pj0yKSxQK3h9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihuZSl7aWYoMD09PW5lKXJldHVybiAyNjt2YXIgeD1uZSxQPTA7cmV0dXJuIDA9PSg4MTkxJngpJiYoUCs9MTMseD4+Pj0xMyksMD09KDEyNyZ4KSYmKFArPTcseD4+Pj03KSwwPT0oMTUmeCkmJihQKz00LHg+Pj49NCks''@;'; put 'put ''MD09KDMmeCkmJihQKz0yLHg+Pj49MiksMD09KDEmeCkmJlArKyxQfSxVLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgeD10aGlzLl9jb3VudEJpdHModGhpcy53b3Jkc1t0aGlzLmxlbmd0aC0xXSk7cmV0dXJuIDI2Kih0aGlzLmxlbmd0aC0xKSt4fSxVLnByb3RvdHlwZS56''@;'; put 'put ''ZXJvQml0cz1mdW5jdGlvbigpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIDA7Zm9yKHZhciBuZT0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFA9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1t4XSk7aWYobmUrPVAsMjYhPT1QKWJyZWFrfXJldHVybiBuZX0sVS5wcm90b3R5cGUuYnl0''@;'; put 'put ''ZUxlbmd0aD1mdW5jdGlvbigpe3JldHVybiBNYXRoLmNlaWwodGhpcy5iaXRMZW5ndGgoKS84KX0sVS5wcm90b3R5cGUudG9Ud29zPWZ1bmN0aW9uKG5lKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihuZSkuaWFkZG4oMSk6dGhpcy5jbG9uZSgpfSxVLnByb3Rv''@;'; put 'put ''dHlwZS5mcm9tVHdvcz1mdW5jdGlvbihuZSl7cmV0dXJuIHRoaXMudGVzdG4obmUtMSk/dGhpcy5ub3RuKG5lKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5cGUubmVn''@;'; put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24obmUpe2Zvcig7dGhpcy5sZW5ndGg8bmUu''@;'; put 'put ''bGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB4PTA7eDxuZS5sZW5ndGg7eCsrKXRoaXMud29yZHNbeF09dGhpcy53b3Jkc1t4XXxuZS53b3Jkc1t4XTtyZXR1cm4gdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSgw''@;'; put 'put ''PT0odGhpcy5uZWdhdGl2ZXxuZS5uZWdhdGl2ZSkpLHRoaXMuaXVvcihuZSl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5sZW5ndGg+bmUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pb3IobmUpOm5lLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVu''@;'; put 'put ''Y3Rpb24obmUpe3JldHVybiB0aGlzLmxlbmd0aD5uZS5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IobmUpOm5lLmNsb25lKCkuaXVvcih0aGlzKX0sVS5wcm90b3R5cGUuaXVhbmQ9ZnVuY3Rpb24obmUpe3ZhciB4O3g9dGhpcy5sZW5ndGg+bmUubGVuZ3RoP25lOnRoaXM7Zm9yKHZhciBQPTA7''@;'; put 'put ''UDx4Lmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT10aGlzLndvcmRzW1BdJm5lLndvcmRzW1BdO3JldHVybiB0aGlzLmxlbmd0aD14Lmxlbmd0aCx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxuZS5uZWdhdGl2''@;'; put 'put ''ZSkpLHRoaXMuaXVhbmQobmUpfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24obmUpe3JldHVybiB0aGlzLmxlbmd0aD5uZS5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQobmUpOm5lLmNsb25lKCkuaWFuZCh0aGlzKX0sVS5wcm90b3R5cGUudWFuZD1mdW5jdGlvbihuZSl7cmV0dXJuIHRoaXMu''@;'; put 'put ''bGVuZ3RoPm5lLmxlbmd0aD90aGlzLmNsb25lKCkuaXVhbmQobmUpOm5lLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKG5lKXt2YXIgeCxQO3RoaXMubGVuZ3RoPm5lLmxlbmd0aD8oeD10aGlzLFA9bmUpOih4PW5lLFA9dGhpcyk7Zm9yKHZhciBWPTA7''@;'; put 'put ''VjxQLmxlbmd0aDtWKyspdGhpcy53b3Jkc1tWXT14LndvcmRzW1ZdXlAud29yZHNbVl07aWYodGhpcyE9PXgpZm9yKDtWPHgubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPXgud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPXgubGVuZ3RoLHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLml4''@;'; put 'put ''b3I9ZnVuY3Rpb24obmUpe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfG5lLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihuZSl9LFUucHJvdG90eXBlLnhvcj1mdW5jdGlvbihuZSl7cmV0dXJuIHRoaXMubGVuZ3RoPm5lLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihuZSk6bmUuY2xvbmUoKS5p''@;'; put 'put ''eG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5sZW5ndGg+bmUubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdXhvcihuZSk6bmUuY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24obmUpe0UoIm51bWJlciI9PXR5cGVv''@;'; put 'put ''ZiBuZSYmbmU+PTApO3ZhciB4PTB8TWF0aC5jZWlsKG5lLzI2KSxQPW5lJTI2O3RoaXMuX2V4cGFuZCh4KSxQPjAmJngtLTtmb3IodmFyIFY9MDtWPHg7VisrKXRoaXMud29yZHNbVl09NjcxMDg4NjMmfnRoaXMud29yZHNbVl07cmV0dXJuIFA+MCYmKHRoaXMud29yZHNbVl09fnRoaXMud29y''@;'; put 'put ''ZHNbVl0mNjcxMDg4NjM+PjI2LVApLHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLm5vdG49ZnVuY3Rpb24obmUpe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4obmUpfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKG5lLHgpe0UoIm51bWJlciI9PXR5cGVvZiBuZSYmbmU+PTApO3ZhciBQ''@;'; put 'put ''PW5lLzI2fDAsVj1uZSUyNjtyZXR1cm4gdGhpcy5fZXhwYW5kKFArMSksdGhpcy53b3Jkc1tQXT14P3RoaXMud29yZHNbUF18MTw8Vjp0aGlzLndvcmRzW1BdJn4oMTw8ViksdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihuZSl7dmFyIHgsUCxWO2lmKDAhPT10aGlz''@;'; put 'put ''Lm5lZ2F0aXZlJiYwPT09bmUubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx4PXRoaXMuaXN1YihuZSksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09bmUubmVnYXRpdmUpcmV0dXJuIG5lLm5lZ2F0aXZlPTAseD10aGlz''@;'; put 'put ''LmlzdWIobmUpLG5lLm5lZ2F0aXZlPTEseC5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5uZS5sZW5ndGg/KFA9dGhpcyxWPW5lKTooUD1uZSxWPXRoaXMpO2Zvcih2YXIgVD0wLFM9MDtTPFYubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPTY3MTA4ODYzJih4PSgwfFAud29yZHNbU10pKygwfFYu''@;'; put 'put ''d29yZHNbU10pK1QpLFQ9eD4+PjI2O2Zvcig7MCE9PVQmJlM8UC5sZW5ndGg7UysrKXRoaXMud29yZHNbU109NjcxMDg4NjMmKHg9KDB8UC53b3Jkc1tTXSkrVCksVD14Pj4+MjY7aWYodGhpcy5sZW5ndGg9UC5sZW5ndGgsMCE9PVQpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09VCx0aGlzLmxl''@;'; put 'put ''bmd0aCsrO2Vsc2UgaWYoUCE9PXRoaXMpZm9yKDtTPFAubGVuZ3RoO1MrKyl0aGlzLndvcmRzW1NdPVAud29yZHNbU107cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihuZSl7dmFyIHg7cmV0dXJuIDAhPT1uZS5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KG5lLm5l''@;'; put 'put ''Z2F0aXZlPTAseD10aGlzLnN1YihuZSksbmUubmVnYXRpdmVePTEseCk6MD09PW5lLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHg9bmUuc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx4KTp0aGlzLmxlbmd0aD5uZS5sZW5ndGg/dGhpcy5jbG9uZSgpLmlh''@;'; put 'put ''ZGQobmUpOm5lLmNsb25lKCkuaWFkZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihuZSl7aWYoMCE9PW5lLm5lZ2F0aXZlKXtuZS5uZWdhdGl2ZT0wO3ZhciB4PXRoaXMuaWFkZChuZSk7cmV0dXJuIG5lLm5lZ2F0aXZlPTEseC5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdh''@;'; put 'put ''dGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChuZSksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIFYsVCxQPXRoaXMuY21wKG5lKTtpZigwPT09UClyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7''@;'; put 'put ''UD4wPyhWPXRoaXMsVD1uZSk6KFY9bmUsVD10aGlzKTtmb3IodmFyIFM9MCxGPTA7RjxULmxlbmd0aDtGKyspUz0oeD0oMHxWLndvcmRzW0ZdKS0oMHxULndvcmRzW0ZdKStTKT4+MjYsdGhpcy53b3Jkc1tGXT02NzEwODg2MyZ4O2Zvcig7MCE9PVMmJkY8Vi5sZW5ndGg7RisrKVM9KHg9KDB8''@;'; put 'put ''Vi53b3Jkc1tGXSkrUyk+PjI2LHRoaXMud29yZHNbRl09NjcxMDg4NjMmeDtpZigwPT09UyYmRjxWLmxlbmd0aCYmViE9PXRoaXMpZm9yKDtGPFYubGVuZ3RoO0YrKyl0aGlzLndvcmRzW0ZdPVYud29yZHNbRl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLEYpLFYh''@;'; put 'put ''PT10aGlzJiYodGhpcy5uZWdhdGl2ZT0xKSx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24obmUpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihuZSl9O3ZhciBjZT1mdW5jdGlvbihuZSx4LFApe3ZhciB5ZSxDZSxEZSxWPW5lLndvcmRzLFQ9eC53b3JkcyxTPVAud29y''@;'; put 'put ''ZHMsRj0wLFBlPTB8VlswXSxRZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHxWWzFdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfFZbMl0sQXQ9ODE5MSZ2dCxodD12dD4+PjEzLEJ0PTB8VlszXSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHxWWzRdLGV0PTgxOTEmdHQsbHQ9dHQ+Pj4x''@;'; put 'put ''MyxMdD0wfFZbNV0sQ3Q9ODE5MSZMdCxmdD1MdD4+PjEzLEh0PTB8Vls2XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHxWWzddLGp0PTgxOTEmeXQsSnQ9eXQ+Pj4xMyxnbj0wfFZbOF0sZG49ODE5MSZnbix5bj1nbj4+PjEzLGxuPTB8Vls5XSxObj04MTkxJmxuLGJuPWxuPj4+MTMsZXI9''@;'; put 'put ''MHxUWzBdLHNyPTgxOTEmZXIsWG49ZXI+Pj4xMyxGcj0wfFRbMV0seHI9ODE5MSZGcixxdD1Gcj4+PjEzLHByPTB8VFsyXSxucj04MTkxJnByLEFuPXByPj4+MTMscW49MHxUWzNdLFd0PTgxOTEmcW4scG49cW4+Pj4xMyxLbj0wfFRbNF0sTnQ9ODE5MSZLbixzbj1Lbj4+PjEzLFVuPTB8VFs1''@;'; put 'put ''XSx3bj04MTkxJlVuLHRuPVVuPj4+MTMsem49MHxUWzZdLFRyPTgxOTEmem4sQm49em4+Pj4xMyxrcj0wfFRbN10sbW49ODE5MSZrcix1bj1rcj4+PjEzLGNuPTB8VFs4XSxfbj04MTkxJmNuLEd0PWNuPj4+MTMsa249MHxUWzldLFZuPTgxOTEma24sZW49a24+Pj4xMztQLm5lZ2F0aXZlPW5l''@;'; put 'put ''Lm5lZ2F0aXZlXngubmVnYXRpdmUsUC5sZW5ndGg9MTk7dmFyIEluPShGKyh5ZT1NYXRoLmltdWwoUWUsc3IpKXwwKSsoKDgxOTEmKENlPShDZT1NYXRoLmltdWwoUWUsWG4pKStNYXRoLmltdWwoJGUsc3IpfDApKTw8MTMpfDA7Rj0oKERlPU1hdGguaW11bCgkZSxYbikpKyhDZT4+PjEzKXww''@;'; put 'put ''KSsoSW4+Pj4yNil8MCxJbiY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKHd0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKHd0LFhuKSkrTWF0aC5pbXVsKG10LHNyKXwwLERlPU1hdGguaW11bChtdCxYbik7dmFyIEpuPShGKyh5ZT15ZStNYXRoLmltdWwoUWUseHIpfDApfDApKygoODE5MSYoQ2U9KENl''@;'; put 'put ''PUNlK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUscXQpfDApKyhDZT4+PjEzKXwwKSsoSm4+Pj4yNil8MCxKbiY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKEF0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKEF0LFhuKSkr''@;'; put 'put ''TWF0aC5pbXVsKGh0LHNyKXwwLERlPU1hdGguaW11bChodCxYbikseWU9eWUrTWF0aC5pbXVsKHd0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxEZT1EZStNYXRoLmltdWwobXQscXQpfDA7dmFyIG9yPShGKyh5ZT15ZStNYXRoLmltdWwo''@;'; put 'put ''UWUsbnIpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsQW4pfDApKyhDZT4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKG9uLHNy''@;'; put 'put ''KSxDZT0oQ2U9TWF0aC5pbXVsKG9uLFhuKSkrTWF0aC5pbXVsKF90LHNyKXwwLERlPU1hdGguaW11bChfdCxYbikseWU9eWUrTWF0aC5pbXVsKEF0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxEZT1EZStNYXRoLmltdWwoaHQscXQpfDAs''@;'; put 'put ''eWU9eWUrTWF0aC5pbXVsKHd0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bChtdCxucil8MCxEZT1EZStNYXRoLmltdWwobXQsQW4pfDA7dmFyIGdyPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsV3QpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11''@;'; put 'put ''bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUscG4pfDApKyhDZT4+PjEzKXwwKSsoZ3I+Pj4yNil8MCxnciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGV0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKGV0LFhuKSkrTWF0aC5pbXVsKGx0''@;'; put 'put ''LHNyKXwwLERlPU1hdGguaW11bChsdCxYbikseWU9eWUrTWF0aC5pbXVsKG9uLHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxEZT1EZStNYXRoLmltdWwoX3QscXQpfDAseWU9eWUrTWF0aC5pbXVsKEF0LG5yKXwwLENlPShDZT1DZStNYXRo''@;'; put 'put ''LmltdWwoQXQsQW4pfDApK01hdGguaW11bChodCxucil8MCxEZT1EZStNYXRoLmltdWwoaHQsQW4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxEZT1EZStNYXRoLmltdWwobXQscG4pfDA7dmFyIEty''@;'; put 'put ''PShGKyh5ZT15ZStNYXRoLmltdWwoUWUsTnQpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsc24pfDApKyhDZT4+PjEzKXwwKSsoS3I+Pj4yNil8MCxLciY9NjcxMDg4''@;'; put 'put ''NjMseWU9TWF0aC5pbXVsKEN0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKEN0LFhuKSkrTWF0aC5pbXVsKGZ0LHNyKXwwLERlPU1hdGguaW11bChmdCxYbikseWU9eWUrTWF0aC5pbXVsKGV0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChsdCx4cil8MCxEZT1E''@;'; put 'put ''ZStNYXRoLmltdWwobHQscXQpfDAseWU9eWUrTWF0aC5pbXVsKG9uLG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxEZT1EZStNYXRoLmltdWwoX3QsQW4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwo''@;'; put 'put ''QXQscG4pfDApK01hdGguaW11bChodCxXdCl8MCxEZT1EZStNYXRoLmltdWwoaHQscG4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxEZT1EZStNYXRoLmltdWwobXQsc24pfDA7dmFyIFZyPShGKyh5''@;'; put 'put ''ZT15ZStNYXRoLmltdWwoUWUsd24pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsdG4pfDApKyhDZT4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMseWU9''@;'; put 'put ''TWF0aC5pbXVsKEdlLHNyKSxDZT0oQ2U9TWF0aC5pbXVsKEdlLFhuKSkrTWF0aC5pbXVsKFVlLHNyKXwwLERlPU1hdGguaW11bChVZSxYbikseWU9eWUrTWF0aC5pbXVsKEN0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxEZT1EZStNYXRo''@;'; put 'put ''LmltdWwoZnQscXQpfDAseWU9eWUrTWF0aC5pbXVsKGV0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChsdCxucil8MCxEZT1EZStNYXRoLmltdWwobHQsQW4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwob24scG4p''@;'; put 'put ''fDApK01hdGguaW11bChfdCxXdCl8MCxEZT1EZStNYXRoLmltdWwoX3QscG4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxEZT1EZStNYXRoLmltdWwoaHQsc24pfDAseWU9eWUrTWF0aC5pbXVsKHd0''@;'; put 'put ''LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bChtdCx3bil8MCxEZT1EZStNYXRoLmltdWwobXQsdG4pfDA7dmFyIGlpPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsVHIpfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKCRlLFRyKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsQm4pfDApKyhDZT4+PjEzKXwwKSsoaWk+Pj4yNil8MCxpaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGp0LHNyKSxDZT0oQ2U9TWF0aC5pbXVsKGp0LFhuKSkrTWF0aC5pbXVsKEp0LHNyKXwwLERlPU1hdGguaW11''@;'; put 'put ''bChKdCxYbikseWU9eWUrTWF0aC5pbXVsKEdlLHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11bChVZSx4cil8MCxEZT1EZStNYXRoLmltdWwoVWUscXQpfDAseWU9eWUrTWF0aC5pbXVsKEN0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsQW4pfDApK01h''@;'; put 'put ''dGguaW11bChmdCxucil8MCxEZT1EZStNYXRoLmltdWwoZnQsQW4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChsdCxXdCl8MCxEZT1EZStNYXRoLmltdWwobHQscG4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLE50KXww''@;'; put 'put ''LENlPShDZT1DZStNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxEZT1EZStNYXRoLmltdWwoX3Qsc24pfDAseWU9eWUrTWF0aC5pbXVsKEF0LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsdG4pfDApK01hdGguaW11bChodCx3bil8MCxEZT1EZStNYXRoLmltdWwo''@;'; put 'put ''aHQsdG4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxEZT1EZStNYXRoLmltdWwobXQsQm4pfDA7dmFyIFJyPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsbW4pfDApfDApKygoODE5MSYoQ2U9KENlPUNl''@;'; put 'put ''K01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsdW4pfDApKyhDZT4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKGRuLHNyKSxDZT0oQ2U9TWF0aC5pbXVsKGRuLFhuKSkrTWF0''@;'; put 'put ''aC5pbXVsKHluLHNyKXwwLERlPU1hdGguaW11bCh5bixYbikseWU9eWUrTWF0aC5pbXVsKGp0LHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQscXQpfDApK01hdGguaW11bChKdCx4cil8MCxEZT1EZStNYXRoLmltdWwoSnQscXQpfDAseWU9eWUrTWF0aC5pbXVsKEdlLG5yKXwwLENlPShD''@;'; put 'put ''ZT1DZStNYXRoLmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxEZT1EZStNYXRoLmltdWwoVWUsQW4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxEZT1EZStNYXRoLmltdWwoZnQscG4p''@;'; put 'put ''fDAseWU9eWUrTWF0aC5pbXVsKGV0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsc24pfDApK01hdGguaW11bChsdCxOdCl8MCxEZT1EZStNYXRoLmltdWwobHQsc24pfDAseWU9eWUrTWF0aC5pbXVsKG9uLHduKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11''@;'; put 'put ''bChfdCx3bil8MCxEZT1EZStNYXRoLmltdWwoX3QsdG4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxEZT1EZStNYXRoLmltdWwoaHQsQm4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LG1uKXwwLENlPShD''@;'; put 'put ''ZT1DZStNYXRoLmltdWwod3QsdW4pfDApK01hdGguaW11bChtdCxtbil8MCxEZT1EZStNYXRoLmltdWwobXQsdW4pfDA7dmFyIGxpPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXww''@;'; put 'put ''KSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsR3QpfDApKyhDZT4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLHNyKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLFhuKSkrTWF0aC5pbXVsKGJuLHNyKXwwLERlPU1hdGguaW11bChibixYbikseWU9''@;'; put 'put ''eWUrTWF0aC5pbXVsKGRuLHhyKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4scXQpfDApK01hdGguaW11bCh5bix4cil8MCxEZT1EZStNYXRoLmltdWwoeW4scXQpfDAseWU9eWUrTWF0aC5pbXVsKGp0LG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChKdCxu''@;'; put 'put ''cil8MCxEZT1EZStNYXRoLmltdWwoSnQsQW4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxEZT1EZStNYXRoLmltdWwoVWUscG4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LE50KXwwLENlPShDZT1DZStN''@;'; put 'put ''YXRoLmltdWwoQ3Qsc24pfDApK01hdGguaW11bChmdCxOdCl8MCxEZT1EZStNYXRoLmltdWwoZnQsc24pfDAseWU9eWUrTWF0aC5pbXVsKGV0LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChsdCx3bil8MCxEZT1EZStNYXRoLmltdWwobHQsdG4pfDAseWU9''@;'; put 'put ''eWUrTWF0aC5pbXVsKG9uLFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sQm4pfDApK01hdGguaW11bChfdCxUcil8MCxEZT1EZStNYXRoLmltdWwoX3QsQm4pfDAseWU9eWUrTWF0aC5pbXVsKEF0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsdW4pfDApK01hdGguaW11bChodCxt''@;'; put 'put ''bil8MCxEZT1EZStNYXRoLmltdWwoaHQsdW4pfDAseWU9eWUrTWF0aC5pbXVsKHd0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwod3QsR3QpfDApK01hdGguaW11bChtdCxfbil8MCxEZT1EZStNYXRoLmltdWwobXQsR3QpfDA7dmFyIE1pPShGKyh5ZT15ZStNYXRoLmltdWwoUWUsVm4pfDAp''@;'; put 'put ''fDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChRZSxlbil8MCkrTWF0aC5pbXVsKCRlLFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoJGUsZW4pfDApKyhDZT4+PjEzKXwwKSsoTWk+Pj4yNil8MCxNaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLHhyKSxDZT0oQ2U9''@;'; put 'put ''TWF0aC5pbXVsKE5uLHF0KSkrTWF0aC5pbXVsKGJuLHhyKXwwLERlPU1hdGguaW11bChibixxdCkseWU9eWUrTWF0aC5pbXVsKGRuLG5yKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sQW4pfDApK01hdGguaW11bCh5bixucil8MCxEZT1EZStNYXRoLmltdWwoeW4sQW4pfDAseWU9eWUrTWF0''@;'; put 'put ''aC5pbXVsKGp0LFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChKdCxXdCl8MCxEZT1EZStNYXRoLmltdWwoSnQscG4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxE''@;'; put 'put ''ZT1EZStNYXRoLmltdWwoVWUsc24pfDAseWU9eWUrTWF0aC5pbXVsKEN0LHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsdG4pfDApK01hdGguaW11bChmdCx3bil8MCxEZT1EZStNYXRoLmltdWwoZnQsdG4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LFRyKXwwLENlPShDZT1DZStNYXRoLmlt''@;'; put 'put ''dWwoZXQsQm4pfDApK01hdGguaW11bChsdCxUcil8MCxEZT1EZStNYXRoLmltdWwobHQsQm4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxEZT1EZStNYXRoLmltdWwoX3QsdW4pfDAseWU9eWUrTWF0''@;'; put 'put ''aC5pbXVsKEF0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCxEZT1EZStNYXRoLmltdWwoaHQsR3QpfDA7dmFyIG8wPShGKyh5ZT15ZStNYXRoLmltdWwod3QsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bCh3dCxlbil8''@;'; put 'put ''MCkrTWF0aC5pbXVsKG10LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwobXQsZW4pfDApKyhDZT4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLG5yKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLEFuKSkrTWF0aC5pbXVsKGJuLG5yKXwwLERl''@;'; put 'put ''PU1hdGguaW11bChibixBbikseWU9eWUrTWF0aC5pbXVsKGRuLFd0KXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4scG4pfDApK01hdGguaW11bCh5bixXdCl8MCxEZT1EZStNYXRoLmltdWwoeW4scG4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoanQs''@;'; put 'put ''c24pfDApK01hdGguaW11bChKdCxOdCl8MCxEZT1EZStNYXRoLmltdWwoSnQsc24pfDAseWU9eWUrTWF0aC5pbXVsKEdlLHduKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxEZT1EZStNYXRoLmltdWwoVWUsdG4pfDAseWU9eWUrTWF0aC5pbXVs''@;'; put 'put ''KEN0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsQm4pfDApK01hdGguaW11bChmdCxUcil8MCxEZT1EZStNYXRoLmltdWwoZnQsQm4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsdW4pfDApK01hdGguaW11bChsdCxtbil8MCxEZT1EZStN''@;'; put 'put ''YXRoLmltdWwobHQsdW4pfDAseWU9eWUrTWF0aC5pbXVsKG9uLF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCxEZT1EZStNYXRoLmltdWwoX3QsR3QpfDA7dmFyIG4wPShGKyh5ZT15ZStNYXRoLmltdWwoQXQsVm4pfDApfDApKygoODE5MSYo''@;'; put 'put ''Q2U9KENlPUNlK01hdGguaW11bChBdCxlbil8MCkrTWF0aC5pbXVsKGh0LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoaHQsZW4pfDApKyhDZT4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLFd0KSxDZT0oQ2U9TWF0aC5pbXVsKE5u''@;'; put 'put ''LHBuKSkrTWF0aC5pbXVsKGJuLFd0KXwwLERlPU1hdGguaW11bChibixwbikseWU9eWUrTWF0aC5pbXVsKGRuLE50KXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sc24pfDApK01hdGguaW11bCh5bixOdCl8MCxEZT1EZStNYXRoLmltdWwoeW4sc24pfDAseWU9eWUrTWF0aC5pbXVsKGp0LHdu''@;'; put 'put ''KXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChKdCx3bil8MCxEZT1EZStNYXRoLmltdWwoSnQsdG4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxEZT1EZStNYXRoLmlt''@;'; put 'put ''dWwoVWUsQm4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsdW4pfDApK01hdGguaW11bChmdCxtbil8MCxEZT1EZStNYXRoLmltdWwoZnQsdW4pfDAseWU9eWUrTWF0aC5pbXVsKGV0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoZXQsR3QpfDAp''@;'; put 'put ''K01hdGguaW11bChsdCxfbil8MCxEZT1EZStNYXRoLmltdWwobHQsR3QpfDA7dmFyIGQwPShGKyh5ZT15ZStNYXRoLmltdWwob24sVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChvbixlbil8MCkrTWF0aC5pbXVsKF90LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRo''@;'; put 'put ''LmltdWwoX3QsZW4pfDApKyhDZT4+PjEzKXwwKSsoZDA+Pj4yNil8MCxkMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLE50KSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHNuKSkrTWF0aC5pbXVsKGJuLE50KXwwLERlPU1hdGguaW11bChibixzbikseWU9eWUrTWF0aC5pbXVsKGRuLHduKXwwLENl''@;'; put 'put ''PShDZT1DZStNYXRoLmltdWwoZG4sdG4pfDApK01hdGguaW11bCh5bix3bil8MCxEZT1EZStNYXRoLmltdWwoeW4sdG4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LFRyKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChKdCxUcil8MCxEZT1EZStNYXRoLmltdWwoSnQs''@;'; put 'put ''Qm4pfDAseWU9eWUrTWF0aC5pbXVsKEdlLG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxEZT1EZStNYXRoLmltdWwoVWUsdW4pfDAseWU9eWUrTWF0aC5pbXVsKEN0LF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoQ3QsR3QpfDApK01hdGgu''@;'; put 'put ''aW11bChmdCxfbil8MCxEZT1EZStNYXRoLmltdWwoZnQsR3QpfDA7dmFyIG0wPShGKyh5ZT15ZStNYXRoLmltdWwoZXQsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChldCxlbil8MCkrTWF0aC5pbXVsKGx0LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwo''@;'; put 'put ''bHQsZW4pfDApKyhDZT4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLHduKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHRuKSkrTWF0aC5pbXVsKGJuLHduKXwwLERlPU1hdGguaW11bChibix0bikseWU9eWUrTWF0aC5pbXVsKGRuLFRyKXwwLENlPShDZT1D''@;'; put 'put ''ZStNYXRoLmltdWwoZG4sQm4pfDApK01hdGguaW11bCh5bixUcil8MCxEZT1EZStNYXRoLmltdWwoeW4sQm4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoanQsdW4pfDApK01hdGguaW11bChKdCxtbil8MCxEZT1EZStNYXRoLmltdWwoSnQsdW4pfDAs''@;'; put 'put ''eWU9eWUrTWF0aC5pbXVsKEdlLF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoR2UsR3QpfDApK01hdGguaW11bChVZSxfbil8MCxEZT1EZStNYXRoLmltdWwoVWUsR3QpfDA7dmFyIEcwPShGKyh5ZT15ZStNYXRoLmltdWwoQ3QsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11''@;'; put 'put ''bChDdCxlbil8MCkrTWF0aC5pbXVsKGZ0LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoZnQsZW4pfDApKyhDZT4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLFRyKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLEJuKSkrTWF0aC5pbXVsKGJu''@;'; put 'put ''LFRyKXwwLERlPU1hdGguaW11bChibixCbikseWU9eWUrTWF0aC5pbXVsKGRuLG1uKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sdW4pfDApK01hdGguaW11bCh5bixtbil8MCxEZT1EZStNYXRoLmltdWwoeW4sdW4pfDAseWU9eWUrTWF0aC5pbXVsKGp0LF9uKXwwLENlPShDZT1DZStNYXRo''@;'; put 'put ''LmltdWwoanQsR3QpfDApK01hdGguaW11bChKdCxfbil8MCxEZT1EZStNYXRoLmltdWwoSnQsR3QpfDA7dmFyIERpPShGKyh5ZT15ZStNYXRoLmltdWwoR2UsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChHZSxlbil8MCkrTWF0aC5pbXVsKFVlLFZuKXwwKSk8PDEzKXww''@;'; put 'put ''O0Y9KChEZT1EZStNYXRoLmltdWwoVWUsZW4pfDApKyhDZT4+PjEzKXwwKSsoRGk+Pj4yNil8MCxEaSY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLG1uKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLHVuKSkrTWF0aC5pbXVsKGJuLG1uKXwwLERlPU1hdGguaW11bChibix1bikseWU9eWUrTWF0aC5p''@;'; put 'put ''bXVsKGRuLF9uKXwwLENlPShDZT1DZStNYXRoLmltdWwoZG4sR3QpfDApK01hdGguaW11bCh5bixfbil8MCxEZT1EZStNYXRoLmltdWwoeW4sR3QpfDA7dmFyIFcwPShGKyh5ZT15ZStNYXRoLmltdWwoanQsVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChqdCxlbil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKEp0LFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoSnQsZW4pfDApKyhDZT4+PjEzKXwwKSsoVzA+Pj4yNil8MCxXMCY9NjcxMDg4NjMseWU9TWF0aC5pbXVsKE5uLF9uKSxDZT0oQ2U9TWF0aC5pbXVsKE5uLEd0KSkrTWF0aC5pbXVsKGJuLF9uKXwwLERlPU1h''@;'; put 'put ''dGguaW11bChibixHdCk7dmFyIEVvPShGKyh5ZT15ZStNYXRoLmltdWwoZG4sVm4pfDApfDApKygoODE5MSYoQ2U9KENlPUNlK01hdGguaW11bChkbixlbil8MCkrTWF0aC5pbXVsKHluLFZuKXwwKSk8PDEzKXwwO0Y9KChEZT1EZStNYXRoLmltdWwoeW4sZW4pfDApKyhDZT4+PjEzKXwwKSso''@;'; put 'put ''RW8+Pj4yNil8MCxFbyY9NjcxMDg4NjM7dmFyIHFvPShGKyh5ZT1NYXRoLmltdWwoTm4sVm4pKXwwKSsoKDgxOTEmKENlPShDZT1NYXRoLmltdWwoTm4sZW4pKStNYXRoLmltdWwoYm4sVm4pfDApKTw8MTMpfDA7cmV0dXJuIEY9KChEZT1NYXRoLmltdWwoYm4sZW4pKSsoQ2U+Pj4xMyl8MCkr''@;'; put 'put ''KHFvPj4+MjYpfDAscW8mPTY3MTA4ODYzLFNbMF09SW4sU1sxXT1KbixTWzJdPW9yLFNbM109Z3IsU1s0XT1LcixTWzVdPVZyLFNbNl09aWksU1s3XT1ScixTWzhdPWxpLFNbOV09TWksU1sxMF09bzAsU1sxMV09bjAsU1sxMl09ZDAsU1sxM109bTAsU1sxNF09RzAsU1sxNV09RGksU1sxNl09''@;'; put 'put ''VzAsU1sxN109RW8sU1sxOF09cW8sMCE9PUYmJihTWzE5XT1GLFAubGVuZ3RoKyspLFB9O2Z1bmN0aW9uIGRlKGVlLG5lLHgpe3gubmVnYXRpdmU9bmUubmVnYXRpdmVeZWUubmVnYXRpdmUseC5sZW5ndGg9ZWUubGVuZ3RoK25lLmxlbmd0aDtmb3IodmFyIFA9MCxWPTAsVD0wO1Q8eC5sZW5n''@;'; put 'put ''dGgtMTtUKyspe3ZhciBTPVY7Vj0wO2Zvcih2YXIgRj02NzEwODg2MyZQLHllPU1hdGgubWluKFQsbmUubGVuZ3RoLTEpLENlPU1hdGgubWF4KDAsVC1lZS5sZW5ndGgrMSk7Q2U8PXllO0NlKyspe3ZhciAkZT0oMHxlZS53b3Jkc1tULUNlXSkqKDB8bmUud29yZHNbQ2VdKSxndD02NzEwODg2''@;'; put 'put ''MyYkZTtGPTY3MTA4ODYzJihndD1ndCtGfDApLFYrPShTPShTPVMrKCRlLzY3MTA4ODY0fDApfDApKyhndD4+PjI2KXwwKT4+PjI2LFMmPTY3MTA4ODYzfXgud29yZHNbVF09RixQPVMsUz1WfXJldHVybiAwIT09UD94LndvcmRzW1RdPVA6eC5sZW5ndGgtLSx4Ll9zdHJpcCgpfWZ1bmN0aW9u''@;'; put 'put ''IHZlKGVlLG5lLHgpe3JldHVybiBkZShlZSxuZSx4KX1mdW5jdGlvbiBBZShlZSxuZSl7dGhpcy54PWVlLHRoaXMueT1uZX1NYXRoLmltdWx8fChjZT1vZSksVS5wcm90b3R5cGUubXVsVG89ZnVuY3Rpb24obmUseCl7dmFyIFY9dGhpcy5sZW5ndGgrbmUubGVuZ3RoO3JldHVybiAxMD09PXRo''@;'; put 'put ''aXMubGVuZ3RoJiYxMD09PW5lLmxlbmd0aD9jZSh0aGlzLG5lLHgpOlY8NjM/b2UodGhpcyxuZSx4KTpWPDEwMjQ/ZGUodGhpcyxuZSx4KTp2ZSh0aGlzLG5lLHgpfSxBZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihuZSl7Zm9yKHZhciB4PW5ldyBBcnJheShuZSksUD1VLnByb3RvdHlw''@;'; put 'put ''ZS5fY291bnRCaXRzKG5lKS0xLFY9MDtWPG5lO1YrKyl4W1ZdPXRoaXMucmV2QmluKFYsUCxuZSk7cmV0dXJuIHh9LEFlLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24obmUseCxQKXtpZigwPT09bmV8fG5lPT09UC0xKXJldHVybiBuZTtmb3IodmFyIFY9MCxUPTA7VDx4O1QrKylWfD0oMSZu''@;'; put 'put ''ZSk8PHgtVC0xLG5lPj49MTtyZXR1cm4gVn0sQWUucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24obmUseCxQLFYsVCxTKXtmb3IodmFyIEY9MDtGPFM7RisrKVZbRl09eFtuZVtGXV0sVFtGXT1QW25lW0ZdXX0sQWUucHJvdG90eXBlLnRyYW5zZm9ybT1mdW5jdGlvbihuZSx4LFAsVixULFMp''@;'; put 'put ''e3RoaXMucGVybXV0ZShTLG5lLHgsUCxWLFQpO2Zvcih2YXIgRj0xO0Y8VDtGPDw9MSlmb3IodmFyIHllPUY8PDEsQ2U9TWF0aC5jb3MoMipNYXRoLlBJL3llKSxEZT1NYXRoLnNpbigyKk1hdGguUEkveWUpLFBlPTA7UGU8VDtQZSs9eWUpZm9yKHZhciBRZT1DZSwkZT1EZSxndD0wO2d0PEY7''@;'; put 'put ''Z3QrKyl7dmFyIHd0PVBbUGUrZ3RdLG10PVZbUGUrZ3RdLHZ0PVBbUGUrZ3QrRl0sQXQ9VltQZStndCtGXSxodD1RZSp2dC0kZSpBdDtBdD1RZSpBdCskZSp2dCxQW1BlK2d0XT13dCsodnQ9aHQpLFZbUGUrZ3RdPW10K0F0LFBbUGUrZ3QrRl09d3QtdnQsVltQZStndCtGXT1tdC1BdCxndCE9''@;'; put 'put ''PXllJiYoaHQ9Q2UqUWUtRGUqJGUsJGU9Q2UqJGUrRGUqUWUsUWU9aHQpfX0sQWUucHJvdG90eXBlLmd1ZXNzTGVuMTNiPWZ1bmN0aW9uKG5lLHgpe3ZhciBQPTF8TWF0aC5tYXgoeCxuZSksVj0xJlAsVD0wO2ZvcihQPVAvMnwwO1A7UD4+Pj0xKVQrKztyZXR1cm4gMTw8VCsxK1Z9LEFlLnBy''@;'; put 'put ''b3RvdHlwZS5jb25qdWdhdGU9ZnVuY3Rpb24obmUseCxQKXtpZighKFA8PTEpKWZvcih2YXIgVj0wO1Y8UC8yO1YrKyl7dmFyIFQ9bmVbVl07bmVbVl09bmVbUC1WLTFdLG5lW1AtVi0xXT1ULFQ9eFtWXSx4W1ZdPS14W1AtVi0xXSx4W1AtVi0xXT0tVH19LEFlLnByb3RvdHlwZS5ub3JtYWxp''@;'; put 'put ''emUxM2I9ZnVuY3Rpb24obmUseCl7Zm9yKHZhciBQPTAsVj0wO1Y8eC8yO1YrKyl7dmFyIFQ9ODE5MipNYXRoLnJvdW5kKG5lWzIqVisxXS94KStNYXRoLnJvdW5kKG5lWzIqVl0veCkrUDtuZVtWXT02NzEwODg2MyZULFA9VDw2NzEwODg2ND8wOlQvNjcxMDg4NjR8MH1yZXR1cm4gbmV9LEFl''@;'; put 'put ''LnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKG5lLHgsUCxWKXtmb3IodmFyIFQ9MCxTPTA7Uzx4O1MrKylQWzIqU109ODE5MSYoVCs9MHxuZVtTXSksUFsyKlMrMV09ODE5MSYoVD4+Pj0xMyksVD4+Pj0xMztmb3IoUz0yKng7UzxWOysrUylQW1NdPTA7RSgwPT09VCksRSgwPT0oLTgx''@;'; put 'put ''OTImVCkpfSxBZS5wcm90b3R5cGUuc3R1Yj1mdW5jdGlvbihuZSl7Zm9yKHZhciB4PW5ldyBBcnJheShuZSksUD0wO1A8bmU7UCsrKXhbUF09MDtyZXR1cm4geH0sQWUucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24obmUseCxQKXt2YXIgVj0yKnRoaXMuZ3Vlc3NMZW4xM2IobmUubGVuZ3RoLHgu''@;'; put 'put ''bGVuZ3RoKSxUPXRoaXMubWFrZVJCVChWKSxTPXRoaXMuc3R1YihWKSxGPW5ldyBBcnJheShWKSx5ZT1uZXcgQXJyYXkoViksQ2U9bmV3IEFycmF5KFYpLERlPW5ldyBBcnJheShWKSxQZT1uZXcgQXJyYXkoViksUWU9bmV3IEFycmF5KFYpLCRlPVAud29yZHM7JGUubGVuZ3RoPVYsdGhpcy5j''@;'; put 'put ''b252ZXJ0MTNiKG5lLndvcmRzLG5lLmxlbmd0aCxGLFYpLHRoaXMuY29udmVydDEzYih4LndvcmRzLHgubGVuZ3RoLERlLFYpLHRoaXMudHJhbnNmb3JtKEYsUyx5ZSxDZSxWLFQpLHRoaXMudHJhbnNmb3JtKERlLFMsUGUsUWUsVixUKTtmb3IodmFyIGd0PTA7Z3Q8VjtndCsrKXt2YXIgd3Q9''@;'; put 'put ''eWVbZ3RdKlBlW2d0XS1DZVtndF0qUWVbZ3RdO0NlW2d0XT15ZVtndF0qUWVbZ3RdK0NlW2d0XSpQZVtndF0seWVbZ3RdPXd0fXJldHVybiB0aGlzLmNvbmp1Z2F0ZSh5ZSxDZSxWKSx0aGlzLnRyYW5zZm9ybSh5ZSxDZSwkZSxTLFYsVCksdGhpcy5jb25qdWdhdGUoJGUsUyxWKSx0aGlzLm5v''@;'; put 'put ''cm1hbGl6ZTEzYigkZSxWKSxQLm5lZ2F0aXZlPW5lLm5lZ2F0aXZlXngubmVnYXRpdmUsUC5sZW5ndGg9bmUubGVuZ3RoK3gubGVuZ3RoLFAuX3N0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihuZSl7dmFyIHg9bmV3IFUobnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KHRo''@;'; put 'put ''aXMubGVuZ3RoK25lLmxlbmd0aCksdGhpcy5tdWxUbyhuZSx4KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihuZSl7dmFyIHg9bmV3IFUobnVsbCk7cmV0dXJuIHgud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoK25lLmxlbmd0aCksdmUodGhpcyxuZSx4KX0sVS5wcm90b3R5cGUuaW11''@;'; put 'put ''bD1mdW5jdGlvbihuZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyhuZSx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24obmUpe3ZhciB4PW5lPDA7eCYmKG5lPS1uZSksRSgibnVtYmVyIj09dHlwZW9mIG5lKSxFKG5lPDY3MTA4ODY0KTtmb3IodmFyIFA9MCxWPTA7Vjx0aGlz''@;'; put 'put ''Lmxlbmd0aDtWKyspe3ZhciBUPSgwfHRoaXMud29yZHNbVl0pKm5lLFM9KDY3MTA4ODYzJlQpKyg2NzEwODg2MyZQKTtQPj49MjYsUCs9VC82NzEwODg2NHwwLFArPVM+Pj4yNix0aGlzLndvcmRzW1ZdPTY3MTA4ODYzJlN9cmV0dXJuIDAhPT1QJiYodGhpcy53b3Jkc1tWXT1QLHRoaXMubGVu''@;'; put 'put ''Z3RoKyspLHg/dGhpcy5pbmVnKCk6dGhpc30sVS5wcm90b3R5cGUubXVsbj1mdW5jdGlvbihuZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihuZSl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiB0aGlzLmltdWwodGhpcy5jbG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKG5lKXt2YXIgeD1mdW5jdGlvbiBzZShlZSl7Zm9yKHZhciBuZT1uZXcgQXJyYXkoZWUuYml0TGVuZ3RoKCkpLHg9MDt4PG5lLmxlbmd0aDt4KyspbmVbeF09ZWUud29yZHNbeC8yNnwwXT4+''@;'; put 'put ''PnglMjYmMTtyZXR1cm4gbmV9KG5lKTtpZigwPT09eC5sZW5ndGgpcmV0dXJuIG5ldyBVKDEpO2Zvcih2YXIgUD10aGlzLFY9MDtWPHgubGVuZ3RoJiYwPT09eFtWXTtWKyssUD1QLnNxcigpKTtpZigrK1Y8eC5sZW5ndGgpZm9yKHZhciBUPVAuc3FyKCk7Vjx4Lmxlbmd0aDtWKyssVD1ULnNx''@;'; put 'put ''cigpKTAhPT14W1ZdJiYoUD1QLm11bChUKSk7cmV0dXJuIFB9LFUucHJvdG90eXBlLml1c2hsbj1mdW5jdGlvbihuZSl7RSgibnVtYmVyIj09dHlwZW9mIG5lJiZuZT49MCk7dmFyIFQseD1uZSUyNixQPShuZS14KS8yNixWPTY3MTA4ODYzPj4+MjYteDw8MjYteDtpZigwIT09eCl7dmFyIFM9''@;'; put 'put ''MDtmb3IoVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKXt2YXIgRj10aGlzLndvcmRzW1RdJlY7dGhpcy53b3Jkc1tUXT0oMHx0aGlzLndvcmRzW1RdKS1GPDx4fFMsUz1GPj4+MjYteH1TJiYodGhpcy53b3Jkc1tUXT1TLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1QKXtmb3IoVD10aGlzLmxlbmd0aC0x''@;'; put 'put ''O1Q+PTA7VC0tKXRoaXMud29yZHNbVCtQXT10aGlzLndvcmRzW1RdO2ZvcihUPTA7VDxQO1QrKyl0aGlzLndvcmRzW1RdPTA7dGhpcy5sZW5ndGgrPVB9cmV0dXJuIHRoaXMuX3N0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2''@;'; put 'put ''ZSksdGhpcy5pdXNobG4obmUpfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24obmUseCxQKXt2YXIgVjtFKCJudW1iZXIiPT10eXBlb2YgbmUmJm5lPj0wKSxWPXg/KHgteCUyNikvMjY6MDt2YXIgVD1uZSUyNixTPU1hdGgubWluKChuZS1UKS8yNix0aGlzLmxlbmd0aCksRj02NzEwODg2''@;'; put 'put ''M142NzEwODg2Mz4+PlQ8PFQseWU9UDtpZihWLT1TLFY9TWF0aC5tYXgoMCxWKSx5ZSl7Zm9yKHZhciBDZT0wO0NlPFM7Q2UrKyl5ZS53b3Jkc1tDZV09dGhpcy53b3Jkc1tDZV07eWUubGVuZ3RoPVN9aWYoMCE9PVMpaWYodGhpcy5sZW5ndGg+Uylmb3IodGhpcy5sZW5ndGgtPVMsQ2U9MDtD''@;'; put 'put ''ZTx0aGlzLmxlbmd0aDtDZSsrKXRoaXMud29yZHNbQ2VdPXRoaXMud29yZHNbQ2UrU107ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRGU9MDtmb3IoQ2U9dGhpcy5sZW5ndGgtMTtDZT49MCYmKDAhPT1EZXx8Q2U+PVYpO0NlLS0pe3ZhciBQZT0wfHRoaXMud29yZHNb''@;'; put 'put ''Q2VdO3RoaXMud29yZHNbQ2VdPURlPDwyNi1UfFBlPj4+VCxEZT1QZSZGfXJldHVybiB5ZSYmMCE9PURlJiYoeWUud29yZHNbeWUubGVuZ3RoKytdPURlKSwwPT09dGhpcy5sZW5ndGgmJih0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MSksdGhpcy5fc3RyaXAoKX0sVS5wcm90b3R5cGUu''@;'; put 'put ''aXNocm49ZnVuY3Rpb24obmUseCxQKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4obmUseCxQKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihuZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihuZSl9LFUucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKG5lKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihuZSl9LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24obmUpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4obmUpfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihuZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4obmUpfSxVLnByb3RvdHlw''@;'; put 'put ''ZS50ZXN0bj1mdW5jdGlvbihuZSl7RSgibnVtYmVyIj09dHlwZW9mIG5lJiZuZT49MCk7dmFyIHg9bmUlMjYsUD0obmUteCkvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9UHx8ISh0aGlzLndvcmRzW1BdJjE8PHgpKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKG5lKXtFKCJudW1iZXIi''@;'; put 'put ''PT10eXBlb2YgbmUmJm5lPj0wKTt2YXIgeD1uZSUyNixQPShuZS14KS8yNjtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PVA/dGhpczooMCE9PXgmJlArKyx0aGlzLmxlbmd0aD1NYXRoLm1p''@;'; put 'put ''bihQLHRoaXMubGVuZ3RoKSwwIT09eCYmKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPTY3MTA4ODYzXjY3MTA4ODYzPj4+eDw8eCksdGhpcy5fc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihuZSl9LFUucHJvdG90''@;'; put 'put ''eXBlLmlhZGRuPWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIG5lKSxFKG5lPDY3MTA4ODY0KSxuZTwwP3RoaXMuaXN1Ym4oLW5lKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPD1uZT8odGhpcy53b3Jkc1swXT1uZS0o''@;'; put 'put ''MHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVnYXRpdmU9MCx0aGlzLmlzdWJuKG5lKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4obmUpfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24obmUpe3RoaXMud29yZHNbMF0rPW5lO2Zvcih2''@;'; put 'put ''YXIgeD0wO3g8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbeF0+PTY3MTA4ODY0O3grKyl0aGlzLndvcmRzW3hdLT02NzEwODg2NCx4PT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW3grMV09MTp0aGlzLndvcmRzW3grMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5n''@;'; put 'put ''dGgseCsxKSx0aGlzfSxVLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbihuZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIG5lKSxFKG5lPDY3MTA4ODY0KSxuZTwwKXJldHVybiB0aGlzLmlhZGRuKC1uZSk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlh''@;'; put 'put ''ZGRuKG5lKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT1uZSwxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgeD0wO3g8dGhpcy5sZW5ndGgmJnRoaXMu''@;'; put 'put ''d29yZHNbeF08MDt4KyspdGhpcy53b3Jkc1t4XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t4KzFdLT0xO3JldHVybiB0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKG5lKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlv''@;'; put 'put ''bihuZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihuZSl9LFUucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LFUucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxVLnByb3RvdHlwZS5faXNo''@;'; put 'put ''bG5zdWJtdWw9ZnVuY3Rpb24obmUseCxQKXt2YXIgVDt0aGlzLl9leHBhbmQobmUubGVuZ3RoK1ApO3ZhciBTLEY9MDtmb3IoVD0wO1Q8bmUubGVuZ3RoO1QrKyl7Uz0oMHx0aGlzLndvcmRzW1QrUF0pK0Y7dmFyIHllPSgwfG5lLndvcmRzW1RdKSp4O0Y9KChTLT02NzEwODg2MyZ5ZSk+PjI2''@;'; put 'put ''KS0oeWUvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tUK1BdPTY3MTA4ODYzJlN9Zm9yKDtUPHRoaXMubGVuZ3RoLVA7VCsrKUY9KFM9KDB8dGhpcy53b3Jkc1tUK1BdKStGKT4+MjYsdGhpcy53b3Jkc1tUK1BdPTY3MTA4ODYzJlM7aWYoMD09PUYpcmV0dXJuIHRoaXMuX3N0cmlwKCk7Zm9yKEUo''@;'; put 'put ''LTE9PT1GKSxGPTAsVD0wO1Q8dGhpcy5sZW5ndGg7VCsrKUY9KFM9LSgwfHRoaXMud29yZHNbVF0pK0YpPj4yNix0aGlzLndvcmRzW1RdPTY3MTA4ODYzJlM7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLl9zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihuZSx4KXt2''@;'; put 'put ''YXIgUCxWPXRoaXMuY2xvbmUoKSxUPW5lLFM9MHxULndvcmRzW1QubGVuZ3RoLTFdOzAhPShQPTI2LXRoaXMuX2NvdW50Qml0cyhTKSkmJihUPVQudXNobG4oUCksVi5pdXNobG4oUCksUz0wfFQud29yZHNbVC5sZW5ndGgtMV0pO3ZhciBDZSx5ZT1WLmxlbmd0aC1ULmxlbmd0aDtpZigibW9k''@;'; put 'put ''IiE9PXgpeyhDZT1uZXcgVShudWxsKSkubGVuZ3RoPXllKzEsQ2Uud29yZHM9bmV3IEFycmF5KENlLmxlbmd0aCk7Zm9yKHZhciBEZT0wO0RlPENlLmxlbmd0aDtEZSsrKUNlLndvcmRzW0RlXT0wfXZhciBQZT1WLmNsb25lKCkuX2lzaGxuc3VibXVsKFQsMSx5ZSk7MD09PVBlLm5lZ2F0aXZl''@;'; put 'put ''JiYoVj1QZSxDZSYmKENlLndvcmRzW3llXT0xKSk7Zm9yKHZhciBRZT15ZS0xO1FlPj0wO1FlLS0pe3ZhciAkZT02NzEwODg2NCooMHxWLndvcmRzW1QubGVuZ3RoK1FlXSkrKDB8Vi53b3Jkc1tULmxlbmd0aCtRZS0xXSk7Zm9yKCRlPU1hdGgubWluKCRlL1N8MCw2NzEwODg2MyksVi5faXNo''@;'; put 'put ''bG5zdWJtdWwoVCwkZSxRZSk7MCE9PVYubmVnYXRpdmU7KSRlLS0sVi5uZWdhdGl2ZT0wLFYuX2lzaGxuc3VibXVsKFQsMSxRZSksVi5pc1plcm8oKXx8KFYubmVnYXRpdmVePTEpO0NlJiYoQ2Uud29yZHNbUWVdPSRlKX1yZXR1cm4gQ2UmJkNlLl9zdHJpcCgpLFYuX3N0cmlwKCksImRpdiIh''@;'; put 'put ''PT14JiYwIT09UCYmVi5pdXNocm4oUCkse2RpdjpDZXx8bnVsbCxtb2Q6Vn19LFUucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbihuZSx4LFApe3JldHVybiBFKCFuZS5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUm''@;'; put 'put ''JjA9PT1uZS5uZWdhdGl2ZT8oUz10aGlzLm5lZygpLmRpdm1vZChuZSx4KSwibW9kIiE9PXgmJihWPVMuZGl2Lm5lZygpKSwiZGl2IiE9PXgmJihUPVMubW9kLm5lZygpLFAmJjAhPT1ULm5lZ2F0aXZlJiZULmlhZGQobmUpKSx7ZGl2OlYsbW9kOlR9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9''@;'; put 'put ''PW5lLm5lZ2F0aXZlPyhTPXRoaXMuZGl2bW9kKG5lLm5lZygpLHgpLCJtb2QiIT09eCYmKFY9Uy5kaXYubmVnKCkpLHtkaXY6Vixtb2Q6Uy5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZuZS5uZWdhdGl2ZSk/KFM9dGhpcy5uZWcoKS5kaXZtb2QobmUubmVnKCkseCksImRpdiIhPT14JiYoVD1T''@;'; put 'put ''Lm1vZC5uZWcoKSxQJiYwIT09VC5uZWdhdGl2ZSYmVC5pc3ViKG5lKSkse2RpdjpTLmRpdixtb2Q6VH0pOm5lLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAobmUpPDA/e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PW5lLmxlbmd0aD8iZGl2Ij09PXg/e2Rpdjp0aGlzLmRpdm4obmUu''@;'; put 'put ''d29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXg/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZHJuKG5lLndvcmRzWzBdKSl9OntkaXY6dGhpcy5kaXZuKG5lLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RybihuZS53b3Jkc1swXSkpfTp0aGlzLl93b3JkRGl2KG5lLHgpO3ZhciBW''@;'; put 'put ''LFQsU30sVS5wcm90b3R5cGUuZGl2PWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5kaXZtb2QobmUsImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUubW9kPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5kaXZtb2QobmUsIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihu''@;'; put 'put ''ZSl7cmV0dXJuIHRoaXMuZGl2bW9kKG5lLCJtb2QiLCEwKS5tb2R9LFUucHJvdG90eXBlLmRpdlJvdW5kPWZ1bmN0aW9uKG5lKXt2YXIgeD10aGlzLmRpdm1vZChuZSk7aWYoeC5tb2QuaXNaZXJvKCkpcmV0dXJuIHguZGl2O3ZhciBQPTAhPT14LmRpdi5uZWdhdGl2ZT94Lm1vZC5pc3ViKG5l''@;'; put 'put ''KTp4Lm1vZCxWPW5lLnVzaHJuKDEpLFQ9bmUuYW5kbG4oMSksUz1QLmNtcChWKTtyZXR1cm4gUzwwfHwxPT09VCYmMD09PVM/eC5kaXY6MCE9PXguZGl2Lm5lZ2F0aXZlP3guZGl2LmlzdWJuKDEpOnguZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2Rybj1mdW5jdGlvbihuZSl7dmFyIHg9''@;'; put 'put ''bmU8MDt4JiYobmU9LW5lKSxFKG5lPD02NzEwODg2Myk7Zm9yKHZhciBQPSgxPDwyNiklbmUsVj0wLFQ9dGhpcy5sZW5ndGgtMTtUPj0wO1QtLSlWPShQKlYrKDB8dGhpcy53b3Jkc1tUXSkpJW5lO3JldHVybiB4Py1WOlZ9LFUucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24obmUpe3JldHVybiB0''@;'; put 'put ''aGlzLm1vZHJuKG5lKX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24obmUpe3ZhciB4PW5lPDA7eCYmKG5lPS1uZSksRShuZTw9NjcxMDg4NjMpO2Zvcih2YXIgUD0wLFY9dGhpcy5sZW5ndGgtMTtWPj0wO1YtLSl7dmFyIFQ9KDB8dGhpcy53b3Jkc1tWXSkrNjcxMDg4NjQqUDt0aGlzLndv''@;'; put 'put ''cmRzW1ZdPVQvbmV8MCxQPVQlbmV9cmV0dXJuIHRoaXMuX3N0cmlwKCkseD90aGlzLmluZWcoKTp0aGlzfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKG5lKX0sVS5wcm90b3R5cGUuZWdjZD1mdW5jdGlvbihuZSl7RSgwPT09bmUubmVn''@;'; put 'put ''YXRpdmUpLEUoIW5lLmlzWmVybygpKTt2YXIgeD10aGlzLFA9bmUuY2xvbmUoKTt4PTAhPT14Lm5lZ2F0aXZlP3gudW1vZChuZSk6eC5jbG9uZSgpO2Zvcih2YXIgVj1uZXcgVSgxKSxUPW5ldyBVKDApLFM9bmV3IFUoMCksRj1uZXcgVSgxKSx5ZT0wO3guaXNFdmVuKCkmJlAuaXNFdmVuKCk7''@;'; put 'put ''KXguaXVzaHJuKDEpLFAuaXVzaHJuKDEpLCsreWU7Zm9yKHZhciBDZT1QLmNsb25lKCksRGU9eC5jbG9uZSgpOyF4LmlzWmVybygpOyl7Zm9yKHZhciBQZT0wLFFlPTE7MD09KHgud29yZHNbMF0mUWUpJiZQZTwyNjsrK1BlLFFlPDw9MSk7aWYoUGU+MClmb3IoeC5pdXNocm4oUGUpO1BlLS0g''@;'; put 'put ''PjA7KShWLmlzT2RkKCl8fFQuaXNPZGQoKSkmJihWLmlhZGQoQ2UpLFQuaXN1YihEZSkpLFYuaXVzaHJuKDEpLFQuaXVzaHJuKDEpO2Zvcih2YXIgJGU9MCxndD0xOzA9PShQLndvcmRzWzBdJmd0KSYmJGU8MjY7KyskZSxndDw8PTEpO2lmKCRlPjApZm9yKFAuaXVzaHJuKCRlKTskZS0tID4w''@;'; put 'put ''OykoUy5pc09kZCgpfHxGLmlzT2RkKCkpJiYoUy5pYWRkKENlKSxGLmlzdWIoRGUpKSxTLml1c2hybigxKSxGLml1c2hybigxKTt4LmNtcChQKT49MD8oeC5pc3ViKFApLFYuaXN1YihTKSxULmlzdWIoRikpOihQLmlzdWIoeCksUy5pc3ViKFYpLEYuaXN1YihUKSl9cmV0dXJue2E6UyxiOkYs''@;'; put 'put ''Z2NkOlAuaXVzaGxuKHllKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihuZSl7RSgwPT09bmUubmVnYXRpdmUpLEUoIW5lLmlzWmVybygpKTt2YXIgUGUseD10aGlzLFA9bmUuY2xvbmUoKTt4PTAhPT14Lm5lZ2F0aXZlP3gudW1vZChuZSk6eC5jbG9uZSgpO2Zvcih2YXIgVj1uZXcg''@;'; put 'put ''VSgxKSxUPW5ldyBVKDApLFM9UC5jbG9uZSgpO3guY21wbigxKT4wJiZQLmNtcG4oMSk+MDspe2Zvcih2YXIgRj0wLHllPTE7MD09KHgud29yZHNbMF0meWUpJiZGPDI2OysrRix5ZTw8PTEpO2lmKEY+MClmb3IoeC5pdXNocm4oRik7Ri0tID4wOylWLmlzT2RkKCkmJlYuaWFkZChTKSxWLml1''@;'; put 'put ''c2hybigxKTtmb3IodmFyIENlPTAsRGU9MTswPT0oUC53b3Jkc1swXSZEZSkmJkNlPDI2OysrQ2UsRGU8PD0xKTtpZihDZT4wKWZvcihQLml1c2hybihDZSk7Q2UtLSA+MDspVC5pc09kZCgpJiZULmlhZGQoUyksVC5pdXNocm4oMSk7eC5jbXAoUCk+PTA/KHguaXN1YihQKSxWLmlzdWIoVCkp''@;'; put 'put ''OihQLmlzdWIoeCksVC5pc3ViKFYpKX1yZXR1cm4oUGU9MD09PXguY21wbigxKT9WOlQpLmNtcG4oMCk8MCYmUGUuaWFkZChuZSksUGV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihuZSl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gbmUuYWJzKCk7aWYobmUuaXNaZXJvKCkpcmV0dXJuIHRo''@;'; put 'put ''aXMuYWJzKCk7dmFyIHg9dGhpcy5jbG9uZSgpLFA9bmUuY2xvbmUoKTt4Lm5lZ2F0aXZlPTAsUC5uZWdhdGl2ZT0wO2Zvcih2YXIgVj0wO3guaXNFdmVuKCkmJlAuaXNFdmVuKCk7VisrKXguaXVzaHJuKDEpLFAuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt4LmlzRXZlbigpOyl4Lml1c2hybigx''@;'; put 'put ''KTtmb3IoO1AuaXNFdmVuKCk7KVAuaXVzaHJuKDEpO3ZhciBUPXguY21wKFApO2lmKFQ8MCl7dmFyIFM9eDt4PVAsUD1TfWVsc2UgaWYoMD09PVR8fDA9PT1QLmNtcG4oMSkpYnJlYWs7eC5pc3ViKFApfXJldHVybiBQLml1c2hsbihWKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihuZSl7''@;'; put 'put ''cmV0dXJuIHRoaXMuZWdjZChuZSkuYS51bW9kKG5lKX0sVS5wcm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5k''@;'; put 'put ''bG49ZnVuY3Rpb24obmUpe3JldHVybiB0aGlzLndvcmRzWzBdJm5lfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihuZSl7RSgibnVtYmVyIj09dHlwZW9mIG5lKTt2YXIgeD1uZSUyNixQPShuZS14KS8yNixWPTE8PHg7aWYodGhpcy5sZW5ndGg8PVApcmV0dXJuIHRoaXMuX2V4cGFuZChQ''@;'; put 'put ''KzEpLHRoaXMud29yZHNbUF18PVYsdGhpcztmb3IodmFyIFQ9VixTPVA7MCE9PVQmJlM8dGhpcy5sZW5ndGg7UysrKXt2YXIgRj0wfHRoaXMud29yZHNbU107VD0oRis9VCk+Pj4yNix0aGlzLndvcmRzW1NdPUYmPTY3MTA4ODYzfXJldHVybiAwIT09VCYmKHRoaXMud29yZHNbU109VCx0aGlz''@;'; put 'put ''Lmxlbmd0aCsrKSx0aGlzfSxVLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sVS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbihuZSl7dmFyIFAseD1uZTwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheClyZXR1cm4t''@;'; put 'put ''MTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeClyZXR1cm4gMTtpZih0aGlzLl9zdHJpcCgpLHRoaXMubGVuZ3RoPjEpUD0xO2Vsc2V7eCYmKG5lPS1uZSksRShuZTw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIFY9MHx0aGlzLndvcmRzWzBdO1A9Vj09PW5lPzA6VjxuZT8tMTox''@;'; put 'put ''fXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1QOlB9LFUucHJvdG90eXBlLmNtcD1mdW5jdGlvbihuZSl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1uZS5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PW5lLm5lZ2F0aXZlKXJldHVybiAxO3ZhciB4PXRo''@;'; put 'put ''aXMudWNtcChuZSk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXg6eH0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihuZSl7aWYodGhpcy5sZW5ndGg+bmUubGVuZ3RoKXJldHVybiAxO2lmKHRoaXMubGVuZ3RoPG5lLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHg9MCxQPXRoaXMubGVu''@;'; put 'put ''Z3RoLTE7UD49MDtQLS0pe3ZhciBWPTB8dGhpcy53b3Jkc1tQXSxUPTB8bmUud29yZHNbUF07aWYoViE9PVQpe1Y8VD94PS0xOlY+VCYmKHg9MSk7YnJlYWt9fXJldHVybiB4fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24obmUpe3JldHVybiAxPT09dGhpcy5jbXBuKG5lKX0sVS5wcm90b3R5''@;'; put 'put ''cGUuZ3Q9ZnVuY3Rpb24obmUpe3JldHVybiAxPT09dGhpcy5jbXAobmUpfSxVLnByb3RvdHlwZS5ndGVuPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5jbXBuKG5lKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5jbXAobmUpPj0wfSxVLnByb3RvdHlwZS5s''@;'; put 'put ''dG49ZnVuY3Rpb24obmUpe3JldHVybi0xPT09dGhpcy5jbXBuKG5lKX0sVS5wcm90b3R5cGUubHQ9ZnVuY3Rpb24obmUpe3JldHVybi0xPT09dGhpcy5jbXAobmUpfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5jbXBuKG5lKTw9MH0sVS5wcm90b3R5cGUubHRl''@;'; put 'put ''PWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5jbXAobmUpPD0wfSxVLnByb3RvdHlwZS5lcW49ZnVuY3Rpb24obmUpe3JldHVybiAwPT09dGhpcy5jbXBuKG5lKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24obmUpe3JldHVybiAwPT09dGhpcy5jbXAobmUpfSxVLnJlZD1mdW5jdGlvbihuZSl7''@;'; put 'put ''cmV0dXJuIG5ldyBPKG5lKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24obmUpe3JldHVybiBFKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLEUoMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksbmUu''@;'; put 'put ''Y29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChuZSl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxV''@;'; put 'put ''LnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24obmUpe3JldHVybiB0aGlzLnJlZD1uZSx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihuZSl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VS''@;'; put 'put ''ZWQobmUpfSxVLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24obmUpe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsbmUpfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSh0aGlz''@;'; put 'put ''LnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsbmUpfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24obmUpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQu''@;'; put 'put ''c3ViKHRoaXMsbmUpfSxVLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsbmUpfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24obmUpe3JldHVy''@;'; put 'put ''biBFKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsbmUpfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24obmUpe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp''@;'; put 'put ''cy5yZWQuX3ZlcmlmeTIodGhpcyxuZSksdGhpcy5yZWQubXVsKHRoaXMsbmUpfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsbmUpLHRo''@;'; put 'put ''aXMucmVkLmltdWwodGhpcyxuZSl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5y''@;'; put 'put ''ZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMu''@;'; put 'put ''cmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVk''@;'; put 'put ''IG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMp''@;'; put 'put ''LHRoaXMucmVkLm5lZyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKG5lKXtyZXR1cm4gRSh0aGlzLnJlZCYmIW5lLnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyxuZSl9O3ZhciBrZT17azI1NjpudWxs''@;'; put 'put ''LHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIFNlKGVlLG5lKXt0aGlzLm5hbWU9ZWUsdGhpcy5wPW5ldyBVKG5lLDE2KSx0aGlzLm49dGhpcy5wLmJpdExlbmd0aCgpLHRoaXMuaz1uZXcgVSgxKS5pdXNobG4odGhpcy5uKS5pc3ViKHRoaXMucCksdGhpcy50bXA9''@;'; put 'put ''dGhpcy5fdG1wKCl9ZnVuY3Rpb24gSWUoKXtTZS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIFRlKCl7U2UuY2FsbCh0aGlzLCJwMjI0IiwiZmZmZmZmZmYg''@;'; put 'put ''ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgMDAwMDAwMDAgMDAwMDAwMDAgMDAwMDAwMDEiKX1mdW5jdGlvbiBNZSgpe1NlLmNhbGwodGhpcywicDE5MiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIGZmZmZmZmZmIil9ZnVuY3Rpb24gaGUoKXtTZS5j''@;'; put 'put ''YWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIE8oZWUpe2lmKCJzdHJpbmciPT10eXBlb2YgZWUpe3ZhciBuZT1VLl9wcmltZShlZSk7dGhpcy5tPW5lLnAsdGhpcy5w''@;'; put 'put ''cmltZT1uZX1lbHNlIEUoZWUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09ZWUsdGhpcy5wcmltZT1udWxsfWZ1bmN0aW9uIHooZWUpe08uY2FsbCh0aGlzLGVlKSx0aGlzLnNoaWZ0PXRoaXMubS5iaXRMZW5ndGgoKSx0aGlzLnNoaWZ0JTI2IT0wJiYo''@;'; put 'put ''dGhpcy5zaGlmdCs9MjYtdGhpcy5zaGlmdCUyNiksdGhpcy5yPW5ldyBVKDEpLml1c2hsbih0aGlzLnNoaWZ0KSx0aGlzLnIyPXRoaXMuaW1vZCh0aGlzLnIuc3FyKCkpLHRoaXMucmludj10aGlzLnIuX2ludm1wKHRoaXMubSksdGhpcy5taW52PXRoaXMucmludi5tdWwodGhpcy5yKS5pc3Vi''@;'; put 'put ''bigxKS5kaXYodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5taW52LnVtb2QodGhpcy5yKSx0aGlzLm1pbnY9dGhpcy5yLnN1Yih0aGlzLm1pbnYpfVNlLnByb3RvdHlwZS5fdG1wPWZ1bmN0aW9uKCl7dmFyIG5lPW5ldyBVKG51bGwpO3JldHVybiBuZS53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWls''@;'; put 'put ''KHRoaXMubi8xMykpLG5lfSxTZS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbihuZSl7dmFyIFAseD1uZTtkb3t0aGlzLnNwbGl0KHgsdGhpcy50bXApLFA9KHg9KHg9dGhpcy5pbXVsSyh4KSkuaWFkZCh0aGlzLnRtcCkpLmJpdExlbmd0aCgpfXdoaWxlKFA+dGhpcy5uKTt2YXIgVj1QPHRo''@;'; put 'put ''aXMubj8tMTp4LnVjbXAodGhpcy5wKTtyZXR1cm4gMD09PVY/KHgud29yZHNbMF09MCx4Lmxlbmd0aD0xKTpWPjA/eC5pc3ViKHRoaXMucCk6dm9pZCAwIT09eC5zdHJpcD94LnN0cmlwKCk6eC5fc3RyaXAoKSx4fSxTZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24obmUseCl7bmUuaXVzaHJu''@;'; put 'put ''KHRoaXMubiwwLHgpfSxTZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24obmUpe3JldHVybiBuZS5pbXVsKHRoaXMuayl9LEVlKEllLFNlKSxJZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24obmUseCl7Zm9yKHZhciBQPTQxOTQzMDMsVj1NYXRoLm1pbihuZS5sZW5ndGgsOSksVD0wO1Q8VjtU''@;'; put 'put ''KyspeC53b3Jkc1tUXT1uZS53b3Jkc1tUXTtpZih4Lmxlbmd0aD1WLG5lLmxlbmd0aDw9OSlyZXR1cm4gbmUud29yZHNbMF09MCx2b2lkKG5lLmxlbmd0aD0xKTt2YXIgUz1uZS53b3Jkc1s5XTtmb3IoeC53b3Jkc1t4Lmxlbmd0aCsrXT1TJlAsVD0xMDtUPG5lLmxlbmd0aDtUKyspe3ZhciBG''@;'; put 'put ''PTB8bmUud29yZHNbVF07bmUud29yZHNbVC0xMF09KEYmUCk8PDR8Uz4+PjIyLFM9Rn1uZS53b3Jkc1tULTEwXT1TPj4+PTIyLG5lLmxlbmd0aC09MD09PVMmJm5lLmxlbmd0aD4xMD8xMDo5fSxJZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24obmUpe25lLndvcmRzW25lLmxlbmd0aF09MCxu''@;'; put 'put ''ZS53b3Jkc1tuZS5sZW5ndGgrMV09MCxuZS5sZW5ndGgrPTI7Zm9yKHZhciB4PTAsUD0wO1A8bmUubGVuZ3RoO1ArKyl7dmFyIFY9MHxuZS53b3Jkc1tQXTtuZS53b3Jkc1tQXT02NzEwODg2MyYoeCs9OTc3KlYpLHg9NjQqVisoeC82NzEwODg2NHwwKX1yZXR1cm4gMD09PW5lLndvcmRzW25l''@;'; put 'put ''Lmxlbmd0aC0xXSYmKG5lLmxlbmd0aC0tLDA9PT1uZS53b3Jkc1tuZS5sZW5ndGgtMV0mJm5lLmxlbmd0aC0tKSxuZX0sRWUoVGUsU2UpLEVlKE1lLFNlKSxFZShoZSxTZSksaGUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKG5lKXtmb3IodmFyIHg9MCxQPTA7UDxuZS5sZW5ndGg7UCsrKXt2''@;'; put 'put ''YXIgVj0xOSooMHxuZS53b3Jkc1tQXSkreCxUPTY3MTA4ODYzJlY7Vj4+Pj0yNixuZS53b3Jkc1tQXT1ULHg9Vn1yZXR1cm4gMCE9PXgmJihuZS53b3Jkc1tuZS5sZW5ndGgrK109eCksbmV9LFUuX3ByaW1lPWZ1bmN0aW9uKG5lKXtpZihrZVtuZV0pcmV0dXJuIGtlW25lXTt2YXIgeDtpZigi''@;'; put 'put ''azI1NiI9PT1uZSl4PW5ldyBJZTtlbHNlIGlmKCJwMjI0Ij09PW5lKXg9bmV3IFRlO2Vsc2UgaWYoInAxOTIiPT09bmUpeD1uZXcgTWU7ZWxzZXtpZigicDI1NTE5IiE9PW5lKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK25lKTt4PW5ldyBoZX1yZXR1cm4ga2VbbmVdPXgseH0s''@;'; put 'put ''Ty5wcm90b3R5cGUuX3ZlcmlmeTE9ZnVuY3Rpb24obmUpe0UoMD09PW5lLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUobmUucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIil9LE8ucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKG5lLHgp''@;'; put 'put ''e0UoMD09KG5lLm5lZ2F0aXZlfHgubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUobmUucmVkJiZuZS5yZWQ9PT14LnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxPLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UobmUpLl9mb3JjZVJlZCh0aGlzKTooWShuZSxuZS51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpKSxuZSl9LE8ucHJvdG90eXBlLm5lZz1mdW5jdGlvbihuZSl7cmV0dXJuIG5lLmlzWmVybygpP25lLmNsb25lKCk6dGhpcy5tLnN1YihuZSku''@;'; put 'put ''X2ZvcmNlUmVkKHRoaXMpfSxPLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24obmUseCl7dGhpcy5fdmVyaWZ5MihuZSx4KTt2YXIgUD1uZS5hZGQoeCk7cmV0dXJuIFAuY21wKHRoaXMubSk+PTAmJlAuaXN1Yih0aGlzLm0pLFAuX2ZvcmNlUmVkKHRoaXMpfSxPLnByb3RvdHlwZS5pYWRkPWZ1bmN0''@;'; put 'put ''aW9uKG5lLHgpe3RoaXMuX3ZlcmlmeTIobmUseCk7dmFyIFA9bmUuaWFkZCh4KTtyZXR1cm4gUC5jbXAodGhpcy5tKT49MCYmUC5pc3ViKHRoaXMubSksUH0sTy5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKG5lLHgpe3RoaXMuX3ZlcmlmeTIobmUseCk7dmFyIFA9bmUuc3ViKHgpO3JldHVybiBQ''@;'; put 'put ''LmNtcG4oMCk8MCYmUC5pYWRkKHRoaXMubSksUC5fZm9yY2VSZWQodGhpcyl9LE8ucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24obmUseCl7dGhpcy5fdmVyaWZ5MihuZSx4KTt2YXIgUD1uZS5pc3ViKHgpO3JldHVybiBQLmNtcG4oMCk8MCYmUC5pYWRkKHRoaXMubSksUH0sTy5wcm90b3R5cGUu''@;'; put 'put ''c2hsPWZ1bmN0aW9uKG5lLHgpe3JldHVybiB0aGlzLl92ZXJpZnkxKG5lKSx0aGlzLmltb2QobmUudXNobG4oeCkpfSxPLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKG5lLHgpe3JldHVybiB0aGlzLl92ZXJpZnkyKG5lLHgpLHRoaXMuaW1vZChuZS5pbXVsKHgpKX0sTy5wcm90b3R5cGUubXVs''@;'; put 'put ''PWZ1bmN0aW9uKG5lLHgpe3JldHVybiB0aGlzLl92ZXJpZnkyKG5lLHgpLHRoaXMuaW1vZChuZS5tdWwoeCkpfSxPLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5pbXVsKG5lLG5lLmNsb25lKCkpfSxPLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24obmUpe3JldHVybiB0''@;'; put 'put ''aGlzLm11bChuZSxuZSl9LE8ucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24obmUpe2lmKG5lLmlzWmVybygpKXJldHVybiBuZS5jbG9uZSgpO3ZhciB4PXRoaXMubS5hbmRsbigzKTtpZihFKHglMj09MSksMz09PXgpe3ZhciBQPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4g''@;'; put 'put ''dGhpcy5wb3cobmUsUCl9Zm9yKHZhciBWPXRoaXMubS5zdWJuKDEpLFQ9MDshVi5pc1plcm8oKSYmMD09PVYuYW5kbG4oMSk7KVQrKyxWLml1c2hybigxKTtFKCFWLmlzWmVybygpKTt2YXIgUz1uZXcgVSgxKS50b1JlZCh0aGlzKSxGPVMucmVkTmVnKCkseWU9dGhpcy5tLnN1Ym4oMSkuaXVz''@;'; put 'put ''aHJuKDEpLENlPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoQ2U9bmV3IFUoMipDZSpDZSkudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KENlLHllKS5jbXAoRik7KUNlLnJlZElBZGQoRik7Zm9yKHZhciBEZT10aGlzLnBvdyhDZSxWKSxQZT10aGlzLnBvdyhuZSxWLmFkZG4oMSkuaXVzaHJuKDEp''@;'; put 'put ''KSxRZT10aGlzLnBvdyhuZSxWKSwkZT1UOzAhPT1RZS5jbXAoUyk7KXtmb3IodmFyIGd0PVFlLHd0PTA7MCE9PWd0LmNtcChTKTt3dCsrKWd0PWd0LnJlZFNxcigpO0Uod3Q8JGUpO3ZhciBtdD10aGlzLnBvdyhEZSxuZXcgVSgxKS5pdXNobG4oJGUtd3QtMSkpO1BlPVBlLnJlZE11bChtdCks''@;'; put 'put ''RGU9bXQucmVkU3FyKCksUWU9UWUucmVkTXVsKERlKSwkZT13dH1yZXR1cm4gUGV9LE8ucHJvdG90eXBlLmludm09ZnVuY3Rpb24obmUpe3ZhciB4PW5lLl9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09eC5uZWdhdGl2ZT8oeC5uZWdhdGl2ZT0wLHRoaXMuaW1vZCh4KS5yZWROZWcoKSk6dGhp''@;'; put 'put ''cy5pbW9kKHgpfSxPLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24obmUseCl7aWYoeC5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMSkudG9SZWQodGhpcyk7aWYoMD09PXguY21wbigxKSlyZXR1cm4gbmUuY2xvbmUoKTt2YXIgVj1uZXcgQXJyYXkoMTYpO1ZbMF09bmV3IFUoMSkudG9SZWQodGhpcyks''@;'; put 'put ''VlsxXT1uZTtmb3IodmFyIFQ9MjtUPFYubGVuZ3RoO1QrKylWW1RdPXRoaXMubXVsKFZbVC0xXSxuZSk7dmFyIFM9VlswXSxGPTAseWU9MCxDZT14LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09Q2UmJihDZT0yNiksVD14Lmxlbmd0aC0xO1Q+PTA7VC0tKXtmb3IodmFyIERlPXgud29yZHNbVF0s''@;'; put 'put ''UGU9Q2UtMTtQZT49MDtQZS0tKXt2YXIgUWU9RGU+PlBlJjE7UyE9PVZbMF0mJihTPXRoaXMuc3FyKFMpKSwwIT09UWV8fDAhPT1GPyhGPDw9MSxGfD1RZSwoND09Kyt5ZXx8MD09PVQmJjA9PT1QZSkmJihTPXRoaXMubXVsKFMsVltGXSkseWU9MCxGPTApKTp5ZT0wfUNlPTI2fXJldHVybiBT''@;'; put 'put ''fSxPLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24obmUpe3ZhciB4PW5lLnVtb2QodGhpcy5tKTtyZXR1cm4geD09PW5lP3guY2xvbmUoKTp4fSxPLnByb3RvdHlwZS5jb252ZXJ0RnJvbT1mdW5jdGlvbihuZSl7dmFyIHg9bmUuY2xvbmUoKTtyZXR1cm4geC5yZWQ9bnVsbCx4fSxVLm1v''@;'; put 'put ''bnQ9ZnVuY3Rpb24obmUpe3JldHVybiBuZXcgeihuZSl9LEVlKHosTyksei5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5pbW9kKG5lLnVzaGxuKHRoaXMuc2hpZnQpKX0sei5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24obmUpe3ZhciB4PXRoaXMu''@;'; put 'put ''aW1vZChuZS5tdWwodGhpcy5yaW52KSk7cmV0dXJuIHgucmVkPW51bGwseH0sei5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihuZSx4KXtpZihuZS5pc1plcm8oKXx8eC5pc1plcm8oKSlyZXR1cm4gbmUud29yZHNbMF09MCxuZS5sZW5ndGg9MSxuZTt2YXIgUD1uZS5pbXVsKHgpLFY9UC5tYXNr''@;'; put 'put ''bih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksVD1QLmlzdWIoVikuaXVzaHJuKHRoaXMuc2hpZnQpLFM9VDtyZXR1cm4gVC5jbXAodGhpcy5tKT49MD9TPVQuaXN1Yih0aGlzLm0pOlQuY21wbigwKTwwJiYoUz1ULmlhZGQodGhpcy5t''@;'; put 'put ''KSksUy5fZm9yY2VSZWQodGhpcyl9LHoucHJvdG90eXBlLm11bD1mdW5jdGlvbihuZSx4KXtpZihuZS5pc1plcm8oKXx8eC5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBQPW5lLm11bCh4KSxWPVAubWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubWludiku''@;'; put 'put ''aW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLFQ9UC5pc3ViKFYpLml1c2hybih0aGlzLnNoaWZ0KSxTPVQ7cmV0dXJuIFQuY21wKHRoaXMubSk+PTA/Uz1ULmlzdWIodGhpcy5tKTpULmNtcG4oMCk8MCYmKFM9VC5pYWRkKHRoaXMubSkpLFMuX2ZvcmNlUmVkKHRoaXMpfSx6LnByb3Rv''@;'; put 'put ''dHlwZS5pbnZtPWZ1bmN0aW9uKG5lKXtyZXR1cm4gdGhpcy5pbW9kKG5lLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSwzNzk1MDooWGUsSmUsTCk9Pnt2YXIgbWU7ZnVuY3Rpb24gQihFZSl7dGhpcy5yYW5kPUVlfWlm''@;'; put 'put ''KFhlLmV4cG9ydHM9ZnVuY3Rpb24oVSl7cmV0dXJuIG1lfHwobWU9bmV3IEIobnVsbCkpLG1lLmdlbmVyYXRlKFUpfSxYZS5leHBvcnRzLlJhbmQ9QixCLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihVKXtyZXR1cm4gdGhpcy5fcmFuZChVKX0sQi5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rp''@;'; put 'put ''b24oVSl7aWYodGhpcy5yYW5kLmdldEJ5dGVzKXJldHVybiB0aGlzLnJhbmQuZ2V0Qnl0ZXMoVSk7Zm9yKHZhciBRPW5ldyBVaW50OEFycmF5KFUpLGo9MDtqPFEubGVuZ3RoO2orKylRW2pdPXRoaXMucmFuZC5nZXRCeXRlKCk7cmV0dXJuIFF9LCJvYmplY3QiPT10eXBlb2Ygc2VsZilzZWxm''@;'; put 'put ''LmNyeXB0byYmc2VsZi5jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzP0IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFUpe3ZhciBRPW5ldyBVaW50OEFycmF5KFUpO3JldHVybiBzZWxmLmNyeXB0by5nZXRSYW5kb21WYWx1ZXMoUSksUX06c2VsZi5tc0NyeXB0byYmc2VsZi5tc0NyeXB0by5nZXRS''@;'; put 'put ''YW5kb21WYWx1ZXM/Qi5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oVSl7dmFyIFE9bmV3IFVpbnQ4QXJyYXkoVSk7cmV0dXJuIHNlbGYubXNDcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKFEpLFF9OiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYoQi5wcm90b3R5cGUuX3JhbmQ9ZnVuY3Rpb24oKXt0''@;'; put 'put ''aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCB5ZXQiKX0pO2Vsc2UgdHJ5e3ZhciBFPUwoNDEzNDgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBFLnJhbmRvbUJ5dGVzKXRocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCIpO0IucHJvdG90eXBlLl9yYW5kPWZ1bmN0aW9uKFUpe3Jl''@;'; put 'put ''dHVybiBFLnJhbmRvbUJ5dGVzKFUpfX1jYXRjaChFZSl7fX0sNDE4OTk6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBCKHJlKXttZS5pc0J1ZmZlcihyZSl8fChyZT1tZS5mcm9tKHJlKSk7Zm9yKHZhciBhZT1yZS5sZW5ndGgvNHwwLFk9bmV3IEFycmF5KGFl''@;'; put 'put ''KSxXPTA7VzxhZTtXKyspWVtXXT1yZS5yZWFkVUludDMyQkUoNCpXKTtyZXR1cm4gWX1mdW5jdGlvbiBFKHJlKXtmb3IoOzA8cmUubGVuZ3RoO3JlKyspcmVbMF09MH1mdW5jdGlvbiBFZShyZSxhZSxZLFcsTil7Zm9yKHZhciBBZSxrZSxTZSxJZSx0ZT1ZWzBdLEs9WVsxXSxKPVlbMl0sc2U9''@;'; put 'put ''WVszXSxvZT1yZVswXV5hZVswXSxjZT1yZVsxXV5hZVsxXSxkZT1yZVsyXV5hZVsyXSx2ZT1yZVszXV5hZVszXSxUZT00LE1lPTE7TWU8TjtNZSsrKUFlPXRlW29lPj4+MjRdXktbY2U+Pj4xNiYyNTVdXkpbZGU+Pj44JjI1NV1ec2VbMjU1JnZlXV5hZVtUZSsrXSxrZT10ZVtjZT4+PjI0XV5L''@;'; put 'put ''W2RlPj4+MTYmMjU1XV5KW3ZlPj4+OCYyNTVdXnNlWzI1NSZvZV1eYWVbVGUrK10sU2U9dGVbZGU+Pj4yNF1eS1t2ZT4+PjE2JjI1NV1eSltvZT4+PjgmMjU1XV5zZVsyNTUmY2VdXmFlW1RlKytdLEllPXRlW3ZlPj4+MjRdXktbb2U+Pj4xNiYyNTVdXkpbY2U+Pj44JjI1NV1ec2VbMjU1JmRl''@;'; put 'put ''XV5hZVtUZSsrXSxvZT1BZSxjZT1rZSxkZT1TZSx2ZT1JZTtyZXR1cm4gQWU9KFdbb2U+Pj4yNF08PDI0fFdbY2U+Pj4xNiYyNTVdPDwxNnxXW2RlPj4+OCYyNTVdPDw4fFdbMjU1JnZlXSleYWVbVGUrK10sa2U9KFdbY2U+Pj4yNF08PDI0fFdbZGU+Pj4xNiYyNTVdPDwxNnxXW3ZlPj4+OCYy''@;'; put 'put ''NTVdPDw4fFdbMjU1Jm9lXSleYWVbVGUrK10sU2U9KFdbZGU+Pj4yNF08PDI0fFdbdmU+Pj4xNiYyNTVdPDwxNnxXW29lPj4+OCYyNTVdPDw4fFdbMjU1JmNlXSleYWVbVGUrK10sSWU9KFdbdmU+Pj4yNF08PDI0fFdbb2U+Pj4xNiYyNTVdPDwxNnxXW2NlPj4+OCYyNTVdPDw4fFdbMjU1JmRl''@;'; put 'put ''XSleYWVbVGUrK10sW0FlPj4+PTAsa2U+Pj49MCxTZT4+Pj0wLEllPj4+PTBdfXZhciBVPVswLDEsMiw0LDgsMTYsMzIsNjQsMTI4LDI3LDU0XSxRPWZ1bmN0aW9uKCl7Zm9yKHZhciByZT1uZXcgQXJyYXkoMjU2KSxhZT0wO2FlPDI1NjthZSsrKXJlW2FlXT1hZTwxMjg/YWU8PDE6YWU8PDFe''@;'; put 'put ''MjgzO2Zvcih2YXIgWT1bXSxXPVtdLE49W1tdLFtdLFtdLFtdXSx0ZT1bW10sW10sW10sW11dLEs9MCxKPTAsc2U9MDtzZTwyNTY7KytzZSl7dmFyIG9lPUpeSjw8MV5KPDwyXko8PDNeSjw8NDtZW0tdPW9lPW9lPj4+OF4yNTUmb2VeOTksV1tvZV09Szt2YXIgY2U9cmVbS10sZGU9cmVbY2Vd''@;'; put 'put ''LHZlPXJlW2RlXSxBZT0yNTcqcmVbb2VdXjE2ODQzMDA4Km9lO05bMF1bS109QWU8PDI0fEFlPj4+OCxOWzFdW0tdPUFlPDwxNnxBZT4+PjE2LE5bMl1bS109QWU8PDh8QWU+Pj4yNCxOWzNdW0tdPUFlLHRlWzBdW29lXT0oQWU9MTY4NDMwMDkqdmVeNjU1MzcqZGVeMjU3KmNlXjE2ODQzMDA4''@;'; put 'put ''KkspPDwyNHxBZT4+PjgsdGVbMV1bb2VdPUFlPDwxNnxBZT4+PjE2LHRlWzJdW29lXT1BZTw8OHxBZT4+PjI0LHRlWzNdW29lXT1BZSwwPT09Sz9LPUo9MTooSz1jZV5yZVtyZVtyZVt2ZV5jZV1dXSxKXj1yZVtyZVtKXV0pfXJldHVybntTQk9YOlksSU5WX1NCT1g6VyxTVUJfTUlYOk4sSU5W''@;'; put 'put ''X1NVQl9NSVg6dGV9fSgpO2Z1bmN0aW9uIGoocmUpe3RoaXMuX2tleT1CKHJlKSx0aGlzLl9yZXNldCgpfWouYmxvY2tTaXplPTE2LGoua2V5U2l6ZT0zMixqLnByb3RvdHlwZS5ibG9ja1NpemU9ai5ibG9ja1NpemUsai5wcm90b3R5cGUua2V5U2l6ZT1qLmtleVNpemUsai5wcm90b3R5cGUu''@;'; put 'put ''X3Jlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciByZT10aGlzLl9rZXksYWU9cmUubGVuZ3RoLFk9YWUrNixXPTQqKFkrMSksTj1bXSx0ZT0wO3RlPGFlO3RlKyspTlt0ZV09cmVbdGVdO2Zvcih0ZT1hZTt0ZTxXO3RlKyspe3ZhciBLPU5bdGUtMV07dGUlYWU9PTA/KEs9US5TQk9YWyhLPUs8PDh8''@;'; put 'put ''Sz4+PjI0KT4+PjI0XTw8MjR8US5TQk9YW0s+Pj4xNiYyNTVdPDwxNnxRLlNCT1hbSz4+PjgmMjU1XTw8OHxRLlNCT1hbMjU1JktdLEtePVVbdGUvYWV8MF08PDI0KTphZT42JiZ0ZSVhZT09NCYmKEs9US5TQk9YW0s+Pj4yNF08PDI0fFEuU0JPWFtLPj4+MTYmMjU1XTw8MTZ8US5TQk9YW0s+''@;'; put 'put ''Pj44JjI1NV08PDh8US5TQk9YWzI1NSZLXSksTlt0ZV09Tlt0ZS1hZV1eS31mb3IodmFyIEo9W10sc2U9MDtzZTxXO3NlKyspe3ZhciBvZT1XLXNlLGNlPU5bb2UtKHNlJTQ/MDo0KV07SltzZV09c2U8NHx8b2U8PTQ/Y2U6US5JTlZfU1VCX01JWFswXVtRLlNCT1hbY2U+Pj4yNF1dXlEuSU5W''@;'; put 'put ''X1NVQl9NSVhbMV1bUS5TQk9YW2NlPj4+MTYmMjU1XV1eUS5JTlZfU1VCX01JWFsyXVtRLlNCT1hbY2U+Pj44JjI1NV1dXlEuSU5WX1NVQl9NSVhbM11bUS5TQk9YWzI1NSZjZV1dfXRoaXMuX25Sb3VuZHM9WSx0aGlzLl9rZXlTY2hlZHVsZT1OLHRoaXMuX2ludktleVNjaGVkdWxlPUp9LGou''@;'; put 'put ''cHJvdG90eXBlLmVuY3J5cHRCbG9ja1Jhdz1mdW5jdGlvbihyZSl7cmV0dXJuIEVlKHJlPUIocmUpLHRoaXMuX2tleVNjaGVkdWxlLFEuU1VCX01JWCxRLlNCT1gsdGhpcy5fblJvdW5kcyl9LGoucHJvdG90eXBlLmVuY3J5cHRCbG9jaz1mdW5jdGlvbihyZSl7dmFyIGFlPXRoaXMuZW5jcnlw''@;'; put 'put ''dEJsb2NrUmF3KHJlKSxZPW1lLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gWS53cml0ZVVJbnQzMkJFKGFlWzBdLDApLFkud3JpdGVVSW50MzJCRShhZVsxXSw0KSxZLndyaXRlVUludDMyQkUoYWVbMl0sOCksWS53cml0ZVVJbnQzMkJFKGFlWzNdLDEyKSxZfSxqLnByb3RvdHlwZS5kZWNyeXB0''@;'; put 'put ''QmxvY2s9ZnVuY3Rpb24ocmUpe3ZhciBhZT0ocmU9QihyZSkpWzFdO3JlWzFdPXJlWzNdLHJlWzNdPWFlO3ZhciBZPUVlKHJlLHRoaXMuX2ludktleVNjaGVkdWxlLFEuSU5WX1NVQl9NSVgsUS5JTlZfU0JPWCx0aGlzLl9uUm91bmRzKSxXPW1lLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gVy53''@;'; put 'put ''cml0ZVVJbnQzMkJFKFlbMF0sMCksVy53cml0ZVVJbnQzMkJFKFlbM10sNCksVy53cml0ZVVJbnQzMkJFKFlbMl0sOCksVy53cml0ZVVJbnQzMkJFKFlbMV0sMTIpLFd9LGoucHJvdG90eXBlLnNjcnViPWZ1bmN0aW9uKCl7RSh0aGlzLl9rZXlTY2hlZHVsZSksRSh0aGlzLl9pbnZLZXlTY2hl''@;'; put 'put ''ZHVsZSksRSh0aGlzLl9rZXkpfSxYZS5leHBvcnRzLkFFUz1qfSw2OTM4MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MTg5OSksQj1MKDczNTAyKS5CdWZmZXIsRT1MKDYxMDUyKSxFZT1MKDgzODk0KSxVPUwoNjg4NTcpLFE9TCg1ODc4OSksaj1MKDc5NjgpO2Z1bmN0aW9uIFkoVyxOLHRlLEsp''@;'; put 'put ''e0UuY2FsbCh0aGlzKTt2YXIgSj1CLmFsbG9jKDQsMCk7dGhpcy5fY2lwaGVyPW5ldyBtZS5BRVMoTik7dmFyIHNlPXRoaXMuX2NpcGhlci5lbmNyeXB0QmxvY2soSik7dGhpcy5fZ2hhc2g9bmV3IFUoc2UpLHRlPWZ1bmN0aW9uIGFlKFcsTix0ZSl7aWYoMTI9PT1OLmxlbmd0aClyZXR1cm4g''@;'; put 'put ''Vy5fZmluSUQ9Qi5jb25jYXQoW04sQi5mcm9tKFswLDAsMCwxXSldKSxCLmNvbmNhdChbTixCLmZyb20oWzAsMCwwLDJdKV0pO3ZhciBLPW5ldyBVKHRlKSxKPU4ubGVuZ3RoLHNlPUolMTY7Sy51cGRhdGUoTiksc2UmJksudXBkYXRlKEIuYWxsb2Moc2U9MTYtc2UsMCkpLEsudXBkYXRlKEIu''@;'; put 'put ''YWxsb2MoOCwwKSk7dmFyIG9lPTgqSixjZT1CLmFsbG9jKDgpO2NlLndyaXRlVUludEJFKG9lLDAsOCksSy51cGRhdGUoY2UpLFcuX2ZpbklEPUsuc3RhdGU7dmFyIGRlPUIuZnJvbShXLl9maW5JRCk7cmV0dXJuIGooZGUpLGRlfSh0aGlzLHRlLHNlKSx0aGlzLl9wcmV2PUIuZnJvbSh0ZSks''@;'; put 'put ''dGhpcy5fY2FjaGU9Qi5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9zZWNDYWNoZT1CLmFsbG9jVW5zYWZlKDApLHRoaXMuX2RlY3J5cHQ9Syx0aGlzLl9hbGVuPTAsdGhpcy5fbGVuPTAsdGhpcy5fbW9kZT1XLHRoaXMuX2F1dGhUYWc9bnVsbCx0aGlzLl9jYWxsZWQ9ITF9RWUoWSxFKSxZLnByb3Rv''@;'; put 'put ''dHlwZS5fdXBkYXRlPWZ1bmN0aW9uKFcpe2lmKCF0aGlzLl9jYWxsZWQmJnRoaXMuX2FsZW4pe3ZhciBOPTE2LXRoaXMuX2FsZW4lMTY7TjwxNiYmKE49Qi5hbGxvYyhOLDApLHRoaXMuX2doYXNoLnVwZGF0ZShOKSl9dGhpcy5fY2FsbGVkPSEwO3ZhciB0ZT10aGlzLl9tb2RlLmVuY3J5cHQo''@;'; put 'put ''dGhpcyxXKTtyZXR1cm4gdGhpcy5fZ2hhc2gudXBkYXRlKHRoaXMuX2RlY3J5cHQ/Vzp0ZSksdGhpcy5fbGVuKz1XLmxlbmd0aCx0ZX0sWS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdCYmIXRoaXMuX2F1dGhUYWcpdGhyb3cgbmV3IEVycm9yKCJVbnN1cHBv''@;'; put 'put ''cnRlZCBzdGF0ZSBvciB1bmFibGUgdG8gYXV0aGVudGljYXRlIGRhdGEiKTt2YXIgVz1RKHRoaXMuX2doYXNoLmZpbmFsKDgqdGhpcy5fYWxlbiw4KnRoaXMuX2xlbiksdGhpcy5fY2lwaGVyLmVuY3J5cHRCbG9jayh0aGlzLl9maW5JRCkpO2lmKHRoaXMuX2RlY3J5cHQmJmZ1bmN0aW9uIHJl''@;'; put 'put ''KFcsTil7dmFyIHRlPTA7Vy5sZW5ndGghPT1OLmxlbmd0aCYmdGUrKztmb3IodmFyIEs9TWF0aC5taW4oVy5sZW5ndGgsTi5sZW5ndGgpLEo9MDtKPEs7KytKKXRlKz1XW0pdXk5bSl07cmV0dXJuIHRlfShXLHRoaXMuX2F1dGhUYWcpKXRocm93IG5ldyBFcnJvcigiVW5zdXBwb3J0ZWQgc3Rh''@;'; put 'put ''dGUgb3IgdW5hYmxlIHRvIGF1dGhlbnRpY2F0ZSBkYXRhIik7dGhpcy5fYXV0aFRhZz1XLHRoaXMuX2NpcGhlci5zY3J1YigpfSxZLnByb3RvdHlwZS5nZXRBdXRoVGFnPWZ1bmN0aW9uKCl7aWYodGhpcy5fZGVjcnlwdHx8IUIuaXNCdWZmZXIodGhpcy5fYXV0aFRhZykpdGhyb3cgbmV3IEVy''@;'; put 'put ''cm9yKCJBdHRlbXB0aW5nIHRvIGdldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpO3JldHVybiB0aGlzLl9hdXRoVGFnfSxZLnByb3RvdHlwZS5zZXRBdXRoVGFnPWZ1bmN0aW9uKE4pe2lmKCF0aGlzLl9kZWNyeXB0KXRocm93IG5ldyBFcnJvcigiQXR0ZW1wdGluZyB0byBzZXQg''@;'; put 'put ''YXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9hdXRoVGFnPU59LFkucHJvdG90eXBlLnNldEFBRD1mdW5jdGlvbihOKXtpZih0aGlzLl9jYWxsZWQpdGhyb3cgbmV3IEVycm9yKCJBdHRlbXB0aW5nIHRvIHNldCBBQUQgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKTt0aGlzLl9n''@;'; put 'put ''aGFzaC51cGRhdGUoTiksdGhpcy5fYWxlbis9Ti5sZW5ndGh9LFhlLmV4cG9ydHM9WX0sODQzMzA6KFhlLEplLEwpPT57dmFyIG1lPUwoOTY5MDApLEI9TCgzNDQ0MiksRT1MKDQ0OTQ2KTtKZS5jcmVhdGVDaXBoZXI9SmUuQ2lwaGVyPW1lLmNyZWF0ZUNpcGhlcixKZS5jcmVhdGVDaXBoZXJp''@;'; put 'put ''dj1KZS5DaXBoZXJpdj1tZS5jcmVhdGVDaXBoZXJpdixKZS5jcmVhdGVEZWNpcGhlcj1KZS5EZWNpcGhlcj1CLmNyZWF0ZURlY2lwaGVyLEplLmNyZWF0ZURlY2lwaGVyaXY9SmUuRGVjaXBoZXJpdj1CLmNyZWF0ZURlY2lwaGVyaXYsSmUubGlzdENpcGhlcnM9SmUuZ2V0Q2lwaGVycz1mdW5j''@;'; put 'put ''dGlvbiBFZSgpe3JldHVybiBPYmplY3Qua2V5cyhFKX19LDM0NDQyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY5MzgyKSxCPUwoNzM1MDIpLkJ1ZmZlcixFPUwoMjkxNzEpLEVlPUwoMzg0NDEpLFU9TCg2MTA1MiksUT1MKDQxODk5KSxqPUwoNDAzNDcpO2Z1bmN0aW9uIGFlKEssSixzZSl7VS5j''@;'; put 'put ''YWxsKHRoaXMpLHRoaXMuX2NhY2hlPW5ldyBZLHRoaXMuX2xhc3Q9dm9pZCAwLHRoaXMuX2NpcGhlcj1uZXcgUS5BRVMoSiksdGhpcy5fcHJldj1CLmZyb20oc2UpLHRoaXMuX21vZGU9Syx0aGlzLl9hdXRvcGFkZGluZz0hMH1mdW5jdGlvbiBZKCl7dGhpcy5jYWNoZT1CLmFsbG9jVW5zYWZl''@;'; put 'put ''KDApfWZ1bmN0aW9uIE4oSyxKLHNlKXt2YXIgb2U9RVtLLnRvTG93ZXJDYXNlKCldO2lmKCFvZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTtpZigic3RyaW5nIj09dHlwZW9mIHNlJiYoc2U9Qi5mcm9tKHNlKSksIkdDTSIhPT1vZS5tb2RlJiZzZS5sZW5ndGgh''@;'; put 'put ''PT1vZS5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK3NlLmxlbmd0aCk7aWYoInN0cmluZyI9PXR5cGVvZiBKJiYoSj1CLmZyb20oSikpLEoubGVuZ3RoIT09b2Uua2V5LzgpdGhyb3cgbmV3IFR5cGVFcnJvcigiaW52YWxpZCBrZXkgbGVuZ3RoICIrSi5sZW5n''@;'; put 'put ''dGgpO3JldHVybiJzdHJlYW0iPT09b2UudHlwZT9uZXcgRWUob2UubW9kdWxlLEosc2UsITApOiJhdXRoIj09PW9lLnR5cGU/bmV3IG1lKG9lLm1vZHVsZSxKLHNlLCEwKTpuZXcgYWUob2UubW9kdWxlLEosc2UpfUwoODM4OTQpKGFlLFUpLGFlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9u''@;'; put 'put ''KEspe3RoaXMuX2NhY2hlLmFkZChLKTtmb3IodmFyIEosc2Usb2U9W107Sj10aGlzLl9jYWNoZS5nZXQodGhpcy5fYXV0b3BhZGRpbmcpOylzZT10aGlzLl9tb2RlLmRlY3J5cHQodGhpcyxKKSxvZS5wdXNoKHNlKTtyZXR1cm4gQi5jb25jYXQob2UpfSxhZS5wcm90b3R5cGUuX2ZpbmFsPWZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIEs9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1cm4gZnVuY3Rpb24gVyhLKXt2YXIgSj1LWzE1XTtpZihKPDF8fEo+MTYpdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7Zm9yKHZhciBzZT0tMTsrK3NlPEo7''@;'; put 'put ''KWlmKEtbc2UrKDE2LUopXSE9PUopdGhyb3cgbmV3IEVycm9yKCJ1bmFibGUgdG8gZGVjcnlwdCBkYXRhIik7aWYoMTYhPT1KKXJldHVybiBLLnNsaWNlKDAsMTYtSil9KHRoaXMuX21vZGUuZGVjcnlwdCh0aGlzLEspKTtpZihLKXRocm93IG5ldyBFcnJvcigiZGF0YSBub3QgbXVsdGlwbGUg''@;'; put 'put ''b2YgYmxvY2sgbGVuZ3RoIil9LGFlLnByb3RvdHlwZS5zZXRBdXRvUGFkZGluZz1mdW5jdGlvbihLKXtyZXR1cm4gdGhpcy5fYXV0b3BhZGRpbmc9ISFLLHRoaXN9LFkucHJvdG90eXBlLmFkZD1mdW5jdGlvbihLKXt0aGlzLmNhY2hlPUIuY29uY2F0KFt0aGlzLmNhY2hlLEtdKX0sWS5wcm90''@;'; put 'put ''b3R5cGUuZ2V0PWZ1bmN0aW9uKEspe3ZhciBKO2lmKEspe2lmKHRoaXMuY2FjaGUubGVuZ3RoPjE2KXJldHVybiBKPXRoaXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxKfWVsc2UgaWYodGhpcy5jYWNoZS5sZW5ndGg+PTE2KXJldHVybiBKPXRo''@;'; put 'put ''aXMuY2FjaGUuc2xpY2UoMCwxNiksdGhpcy5jYWNoZT10aGlzLmNhY2hlLnNsaWNlKDE2KSxKO3JldHVybiBudWxsfSxZLnByb3RvdHlwZS5mbHVzaD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVuZ3RoKXJldHVybiB0aGlzLmNhY2hlfSxKZS5jcmVhdGVEZWNpcGhlcj1mdW5jdGlvbiB0''@;'; put 'put ''ZShLLEope3ZhciBzZT1FW0sudG9Mb3dlckNhc2UoKV07aWYoIXNlKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3ZhciBvZT1qKEosITEsc2Uua2V5LHNlLml2KTtyZXR1cm4gTihLLG9lLmtleSxvZS5pdil9LEplLmNyZWF0ZURlY2lwaGVyaXY9Tn0sOTY5MDA6''@;'; put 'put ''KFhlLEplLEwpPT57dmFyIG1lPUwoMjkxNzEpLEI9TCg2OTM4MiksRT1MKDczNTAyKS5CdWZmZXIsRWU9TCgzODQ0MSksVT1MKDYxMDUyKSxRPUwoNDE4OTkpLGo9TCg0MDM0Nyk7ZnVuY3Rpb24gYWUoSyxKLHNlKXtVLmNhbGwodGhpcyksdGhpcy5fY2FjaGU9bmV3IFcsdGhpcy5fY2lwaGVy''@;'; put 'put ''PW5ldyBRLkFFUyhKKSx0aGlzLl9wcmV2PUUuZnJvbShzZSksdGhpcy5fbW9kZT1LLHRoaXMuX2F1dG9wYWRkaW5nPSEwfUwoODM4OTQpKGFlLFUpLGFlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKEspe3RoaXMuX2NhY2hlLmFkZChLKTtmb3IodmFyIEosc2Usb2U9W107Sj10aGlzLl9j''@;'; put 'put ''YWNoZS5nZXQoKTspc2U9dGhpcy5fbW9kZS5lbmNyeXB0KHRoaXMsSiksb2UucHVzaChzZSk7cmV0dXJuIEUuY29uY2F0KG9lKX07dmFyIFk9RS5hbGxvYygxNiwxNik7ZnVuY3Rpb24gVygpe3RoaXMuY2FjaGU9RS5hbGxvY1Vuc2FmZSgwKX1mdW5jdGlvbiBOKEssSixzZSl7dmFyIG9lPW1l''@;'; put 'put ''W0sudG9Mb3dlckNhc2UoKV07aWYoIW9lKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO2lmKCJzdHJpbmciPT10eXBlb2YgSiYmKEo9RS5mcm9tKEopKSxKLmxlbmd0aCE9PW9lLmtleS84KXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQga2V5IGxlbmd0aCAi''@;'; put 'put ''K0oubGVuZ3RoKTtpZigic3RyaW5nIj09dHlwZW9mIHNlJiYoc2U9RS5mcm9tKHNlKSksIkdDTSIhPT1vZS5tb2RlJiZzZS5sZW5ndGghPT1vZS5pdil0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIGl2IGxlbmd0aCAiK3NlLmxlbmd0aCk7cmV0dXJuInN0cmVhbSI9PT1vZS50eXBlP25l''@;'; put 'put ''dyBFZShvZS5tb2R1bGUsSixzZSk6ImF1dGgiPT09b2UudHlwZT9uZXcgQihvZS5tb2R1bGUsSixzZSk6bmV3IGFlKG9lLm1vZHVsZSxKLHNlKX1hZS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIEs9dGhpcy5fY2FjaGUuZmx1c2goKTtpZih0aGlzLl9hdXRvcGFkZGluZylyZXR1''@;'; put 'put ''cm4gSz10aGlzLl9tb2RlLmVuY3J5cHQodGhpcyxLKSx0aGlzLl9jaXBoZXIuc2NydWIoKSxLO2lmKCFLLmVxdWFscyhZKSl0aHJvdyB0aGlzLl9jaXBoZXIuc2NydWIoKSxuZXcgRXJyb3IoImRhdGEgbm90IG11bHRpcGxlIG9mIGJsb2NrIGxlbmd0aCIpfSxhZS5wcm90b3R5cGUuc2V0QXV0''@;'; put 'put ''b1BhZGRpbmc9ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXMuX2F1dG9wYWRkaW5nPSEhSyx0aGlzfSxXLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oSyl7dGhpcy5jYWNoZT1FLmNvbmNhdChbdGhpcy5jYWNoZSxLXSl9LFcucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe2lmKHRoaXMuY2FjaGUubGVu''@;'; put 'put ''Z3RoPjE1KXt2YXIgSz10aGlzLmNhY2hlLnNsaWNlKDAsMTYpO3JldHVybiB0aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLEt9cmV0dXJuIG51bGx9LFcucHJvdG90eXBlLmZsdXNoPWZ1bmN0aW9uKCl7Zm9yKHZhciBLPTE2LXRoaXMuY2FjaGUubGVuZ3RoLEo9RS5hbGxvY1Vuc2Fm''@;'; put 'put ''ZShLKSxzZT0tMTsrK3NlPEs7KUoud3JpdGVVSW50OChLLHNlKTtyZXR1cm4gRS5jb25jYXQoW3RoaXMuY2FjaGUsSl0pfSxKZS5jcmVhdGVDaXBoZXJpdj1OLEplLmNyZWF0ZUNpcGhlcj1mdW5jdGlvbiB0ZShLLEope3ZhciBzZT1tZVtLLnRvTG93ZXJDYXNlKCldO2lmKCFzZSl0aHJvdyBu''@;'; put 'put ''ZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTt2YXIgb2U9aihKLCExLHNlLmtleSxzZS5pdik7cmV0dXJuIE4oSyxvZS5rZXksb2UuaXYpfX0sNjg4NTc6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcixCPW1lLmFsbG9jKDE2LDApO2Z1bmN0aW9uIEVlKFEpe3Zh''@;'; put 'put ''ciBqPW1lLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gai53cml0ZVVJbnQzMkJFKFFbMF0+Pj4wLDApLGoud3JpdGVVSW50MzJCRShRWzFdPj4+MCw0KSxqLndyaXRlVUludDMyQkUoUVsyXT4+PjAsOCksai53cml0ZVVJbnQzMkJFKFFbM10+Pj4wLDEyKSxqfWZ1bmN0aW9uIFUoUSl7dGhpcy5o''@;'; put 'put ''PVEsdGhpcy5zdGF0ZT1tZS5hbGxvYygxNiwwKSx0aGlzLmNhY2hlPW1lLmFsbG9jVW5zYWZlKDApfVUucHJvdG90eXBlLmdoYXNoPWZ1bmN0aW9uKFEpe2Zvcih2YXIgaj0tMTsrK2o8US5sZW5ndGg7KXRoaXMuc3RhdGVbal1ePVFbal07dGhpcy5fbXVsdGlwbHkoKX0sVS5wcm90b3R5cGUu''@;'; put 'put ''X211bHRpcGx5PWZ1bmN0aW9uKCl7Zm9yKHZhciByZSxZLFE9ZnVuY3Rpb24gRShRKXtyZXR1cm5bUS5yZWFkVUludDMyQkUoMCksUS5yZWFkVUludDMyQkUoNCksUS5yZWFkVUludDMyQkUoOCksUS5yZWFkVUludDMyQkUoMTIpXX0odGhpcy5oKSxqPVswLDAsMCwwXSxXPS0xOysrVzwxMjg7''@;'; put 'put ''KXtmb3IoMCE9KHRoaXMuc3RhdGVbfn4oVy84KV0mMTw8Ny1XJTgpJiYoalswXV49UVswXSxqWzFdXj1RWzFdLGpbMl1ePVFbMl0salszXV49UVszXSksWT0wIT0oMSZRWzNdKSxyZT0zO3JlPjA7cmUtLSlRW3JlXT1RW3JlXT4+PjF8KDEmUVtyZS0xXSk8PDMxO1FbMF09UVswXT4+PjEsWSYm''@;'; put 'put ''KFFbMF09UVswXV4yMjU8PDI0KX10aGlzLnN0YXRlPUVlKGopfSxVLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oUSl7dGhpcy5jYWNoZT1tZS5jb25jYXQoW3RoaXMuY2FjaGUsUV0pO2Zvcih2YXIgajt0aGlzLmNhY2hlLmxlbmd0aD49MTY7KWo9dGhpcy5jYWNoZS5zbGljZSgwLDE2KSx0''@;'; put 'put ''aGlzLmNhY2hlPXRoaXMuY2FjaGUuc2xpY2UoMTYpLHRoaXMuZ2hhc2goail9LFUucHJvdG90eXBlLmZpbmFsPWZ1bmN0aW9uKFEsail7cmV0dXJuIHRoaXMuY2FjaGUubGVuZ3RoJiZ0aGlzLmdoYXNoKG1lLmNvbmNhdChbdGhpcy5jYWNoZSxCXSwxNikpLHRoaXMuZ2hhc2goRWUoWzAsUSww''@;'; put 'put ''LGpdKSksdGhpcy5zdGF0ZX0sWGUuZXhwb3J0cz1VfSw3OTY4OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbiBKZShMKXtmb3IodmFyIEIsbWU9TC5sZW5ndGg7bWUtLTspe2lmKDI1NSE9PShCPUwucmVhZFVJbnQ4KG1lKSkpe0IrKyxMLndyaXRlVUludDgoQixtZSk7YnJlYWt9TC53cml0ZVVJ''@;'; put 'put ''bnQ4KDAsbWUpfX19LDY0OTAzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDU4Nzg5KTtKZS5lbmNyeXB0PWZ1bmN0aW9uKEIsRSl7dmFyIEVlPW1lKEUsQi5fcHJldik7cmV0dXJuIEIuX3ByZXY9Qi5fY2lwaGVyLmVuY3J5cHRCbG9jayhFZSksQi5fcHJldn0sSmUuZGVjcnlwdD1mdW5jdGlvbihC''@;'; put 'put ''LEUpe3ZhciBFZT1CLl9wcmV2O0IuX3ByZXY9RTt2YXIgVT1CLl9jaXBoZXIuZGVjcnlwdEJsb2NrKEUpO3JldHVybiBtZShVLEVlKX19LDU5ODg1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXIsQj1MKDU4Nzg5KTtmdW5jdGlvbiBFKEVlLFUsUSl7dmFyIGo9VS5sZW5ndGgs''@;'; put 'put ''cmU9QihVLEVlLl9jYWNoZSk7cmV0dXJuIEVlLl9jYWNoZT1FZS5fY2FjaGUuc2xpY2UoaiksRWUuX3ByZXY9bWUuY29uY2F0KFtFZS5fcHJldixRP1U6cmVdKSxyZX1KZS5lbmNyeXB0PWZ1bmN0aW9uKEVlLFUsUSl7Zm9yKHZhciByZSxqPW1lLmFsbG9jVW5zYWZlKDApO1UubGVuZ3RoOyl7''@;'; put 'put ''aWYoMD09PUVlLl9jYWNoZS5sZW5ndGgmJihFZS5fY2FjaGU9RWUuX2NpcGhlci5lbmNyeXB0QmxvY2soRWUuX3ByZXYpLEVlLl9wcmV2PW1lLmFsbG9jVW5zYWZlKDApKSwhKEVlLl9jYWNoZS5sZW5ndGg8PVUubGVuZ3RoKSl7aj1tZS5jb25jYXQoW2osRShFZSxVLFEpXSk7YnJlYWt9aj1t''@;'; put 'put ''ZS5jb25jYXQoW2osRShFZSxVLnNsaWNlKDAscmU9RWUuX2NhY2hlLmxlbmd0aCksUSldKSxVPVUuc2xpY2UocmUpfXJldHVybiBqfX0sODY1MzE6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBCKEVlLFUsUSl7Zm9yKHZhciBXLE4scmU9LTEsWT0wOysrcmU8''@;'; put 'put ''ODspWSs9KDEyOCYoTj1FZS5fY2lwaGVyLmVuY3J5cHRCbG9jayhFZS5fcHJldilbMF1eKFc9VSYxPDw3LXJlPzEyODowKSkpPj5yZSU4LEVlLl9wcmV2PUUoRWUuX3ByZXYsUT9XOk4pO3JldHVybiBZfWZ1bmN0aW9uIEUoRWUsVSl7dmFyIFE9RWUubGVuZ3RoLGo9LTEscmU9bWUuYWxsb2NV''@;'; put 'put ''bnNhZmUoRWUubGVuZ3RoKTtmb3IoRWU9bWUuY29uY2F0KFtFZSxtZS5mcm9tKFtVXSldKTsrK2o8UTspcmVbal09RWVbal08PDF8RWVbaisxXT4+NztyZXR1cm4gcmV9SmUuZW5jcnlwdD1mdW5jdGlvbihFZSxVLFEpe2Zvcih2YXIgaj1VLmxlbmd0aCxyZT1tZS5hbGxvY1Vuc2FmZShqKSxh''@;'; put 'put ''ZT0tMTsrK2FlPGo7KXJlW2FlXT1CKEVlLFVbYWVdLFEpO3JldHVybiByZX19LDIxNjQxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rpb24gQihFLEVlLFUpe3ZhciBqPUUuX2NpcGhlci5lbmNyeXB0QmxvY2soRS5fcHJldilbMF1eRWU7cmV0dXJuIEUuX3ByZXY9''@;'; put 'put ''bWUuY29uY2F0KFtFLl9wcmV2LnNsaWNlKDEpLG1lLmZyb20oW1U/RWU6al0pXSksan1KZS5lbmNyeXB0PWZ1bmN0aW9uKEUsRWUsVSl7Zm9yKHZhciBRPUVlLmxlbmd0aCxqPW1lLmFsbG9jVW5zYWZlKFEpLHJlPS0xOysrcmU8UTspaltyZV09QihFLEVlW3JlXSxVKTtyZXR1cm4gan19LDEx''@;'; put 'put ''MTUwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDU4Nzg5KSxCPUwoNzM1MDIpLkJ1ZmZlcixFPUwoNzk2OCk7ZnVuY3Rpb24gRWUoUSl7dmFyIGo9US5fY2lwaGVyLmVuY3J5cHRCbG9ja1JhdyhRLl9wcmV2KTtyZXR1cm4gRShRLl9wcmV2KSxqfUplLmVuY3J5cHQ9ZnVuY3Rpb24oUSxqKXt2YXIg''@;'; put 'put ''cmU9TWF0aC5jZWlsKGoubGVuZ3RoLzE2KSxhZT1RLl9jYWNoZS5sZW5ndGg7US5fY2FjaGU9Qi5jb25jYXQoW1EuX2NhY2hlLEIuYWxsb2NVbnNhZmUoMTYqcmUpXSk7Zm9yKHZhciBZPTA7WTxyZTtZKyspe3ZhciBXPUVlKFEpLE49YWUrMTYqWTtRLl9jYWNoZS53cml0ZVVJbnQzMkJFKFdb''@;'; put 'put ''MF0sTiswKSxRLl9jYWNoZS53cml0ZVVJbnQzMkJFKFdbMV0sTis0KSxRLl9jYWNoZS53cml0ZVVJbnQzMkJFKFdbMl0sTis4KSxRLl9jYWNoZS53cml0ZVVJbnQzMkJFKFdbM10sTisxMil9dmFyIHRlPVEuX2NhY2hlLnNsaWNlKDAsai5sZW5ndGgpO3JldHVybiBRLl9jYWNoZT1RLl9jYWNo''@;'; put 'put ''ZS5zbGljZShqLmxlbmd0aCksbWUoaix0ZSl9fSwyMTcwNDooWGUsSmUpPT57SmUuZW5jcnlwdD1mdW5jdGlvbihMLG1lKXtyZXR1cm4gTC5fY2lwaGVyLmVuY3J5cHRCbG9jayhtZSl9LEplLmRlY3J5cHQ9ZnVuY3Rpb24oTCxtZSl7cmV0dXJuIEwuX2NpcGhlci5kZWNyeXB0QmxvY2sobWUp''@;'; put 'put ''fX0sMjkxNzE6KFhlLEplLEwpPT57dmFyIG1lPXtFQ0I6TCgyMTcwNCksQ0JDOkwoNjQ5MDMpLENGQjpMKDU5ODg1KSxDRkI4OkwoMjE2NDEpLENGQjE6TCg4NjUzMSksT0ZCOkwoODY4MTYpLENUUjpMKDExMTUwKSxHQ006TCgxMTE1MCl9LEI9TCg0NDk0Nik7Zm9yKHZhciBFIGluIEIpQltF''@;'; put 'put ''XS5tb2R1bGU9bWVbQltFXS5tb2RlXTtYZS5leHBvcnRzPUJ9LDg2ODE2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU4Nzg5KTtmdW5jdGlvbiBCKEUpe3JldHVybiBFLl9wcmV2PUUuX2NpcGhlci5lbmNyeXB0QmxvY2soRS5fcHJldiksRS5fcHJldn1KZS5lbmNyeXB0PWZ1bmN0aW9uKEUsRWUp''@;'; put 'put ''e2Zvcig7RS5fY2FjaGUubGVuZ3RoPEVlLmxlbmd0aDspRS5fY2FjaGU9QnVmZmVyLmNvbmNhdChbRS5fY2FjaGUsQihFKV0pO3ZhciBVPUUuX2NhY2hlLnNsaWNlKDAsRWUubGVuZ3RoKTtyZXR1cm4gRS5fY2FjaGU9RS5fY2FjaGUuc2xpY2UoRWUubGVuZ3RoKSxtZShFZSxVKX19LDM4NDQx''@;'; put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQxODk5KSxCPUwoNzM1MDIpLkJ1ZmZlcixFPUwoNjEwNTIpO2Z1bmN0aW9uIFUoUSxqLHJlLGFlKXtFLmNhbGwodGhpcyksdGhpcy5fY2lwaGVyPW5ldyBtZS5BRVMoaiksdGhpcy5fcHJldj1CLmZyb20ocmUpLHRoaXMuX2NhY2hlPUIuYWxsb2NVbnNh''@;'; put 'put ''ZmUoMCksdGhpcy5fc2VjQ2FjaGU9Qi5hbGxvY1Vuc2FmZSgwKSx0aGlzLl9kZWNyeXB0PWFlLHRoaXMuX21vZGU9UX1MKDgzODk0KShVLEUpLFUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oUSl7cmV0dXJuIHRoaXMuX21vZGUuZW5jcnlwdCh0aGlzLFEsdGhpcy5fZGVjcnlwdCl9LFUu''@;'; put 'put ''cHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3RoaXMuX2NpcGhlci5zY3J1YigpfSxYZS5leHBvcnRzPVV9LDU1MjU1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkwMDQpLEI9TCg4NDMzMCksRT1MKDI5MTcxKSxFZT1MKDUxMTE1KSxVPUwoNDAzNDcpO2Z1bmN0aW9uIHJlKFcsTix0ZSl7aWYo''@;'; put 'put ''Vz1XLnRvTG93ZXJDYXNlKCksRVtXXSlyZXR1cm4gQi5jcmVhdGVDaXBoZXJpdihXLE4sdGUpO2lmKEVlW1ddKXJldHVybiBuZXcgbWUoe2tleTpOLGl2OnRlLG1vZGU6V30pO3Rocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpfWZ1bmN0aW9uIGFlKFcsTix0ZSl7aWYo''@;'; put 'put ''Vz1XLnRvTG93ZXJDYXNlKCksRVtXXSlyZXR1cm4gQi5jcmVhdGVEZWNpcGhlcml2KFcsTix0ZSk7aWYoRWVbV10pcmV0dXJuIG5ldyBtZSh7a2V5Ok4saXY6dGUsbW9kZTpXLGRlY3J5cHQ6ITB9KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKX1KZS5jcmVhdGVD''@;'; put 'put ''aXBoZXI9SmUuQ2lwaGVyPWZ1bmN0aW9uIFEoVyxOKXt2YXIgdGUsSztpZihXPVcudG9Mb3dlckNhc2UoKSxFW1ddKXRlPUVbV10ua2V5LEs9RVtXXS5pdjtlbHNle2lmKCFFZVtXXSl0aHJvdyBuZXcgVHlwZUVycm9yKCJpbnZhbGlkIHN1aXRlIHR5cGUiKTt0ZT04KkVlW1ddLmtleSxLPUVl''@;'; put 'put ''W1ddLml2fXZhciBKPVUoTiwhMSx0ZSxLKTtyZXR1cm4gcmUoVyxKLmtleSxKLml2KX0sSmUuY3JlYXRlQ2lwaGVyaXY9SmUuQ2lwaGVyaXY9cmUsSmUuY3JlYXRlRGVjaXBoZXI9SmUuRGVjaXBoZXI9ZnVuY3Rpb24gaihXLE4pe3ZhciB0ZSxLO2lmKFc9Vy50b0xvd2VyQ2FzZSgpLEVbV10p''@;'; put 'put ''dGU9RVtXXS5rZXksSz1FW1ddLml2O2Vsc2V7aWYoIUVlW1ddKXRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgc3VpdGUgdHlwZSIpO3RlPTgqRWVbV10ua2V5LEs9RWVbV10uaXZ9dmFyIEo9VShOLCExLHRlLEspO3JldHVybiBhZShXLEoua2V5LEouaXYpfSxKZS5jcmVhdGVEZWNpcGhl''@;'; put 'put ''cml2PUplLkRlY2lwaGVyaXY9YWUsSmUubGlzdENpcGhlcnM9SmUuZ2V0Q2lwaGVycz1mdW5jdGlvbiBZKCl7cmV0dXJuIE9iamVjdC5rZXlzKEVlKS5jb25jYXQoQi5nZXRDaXBoZXJzKCkpfX0sOTAwNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2MTA1MiksQj1MKDczNjg0KSxFPUwoODM4OTQp''@;'; put 'put ''LEVlPUwoNzM1MDIpLkJ1ZmZlcixVPXsiZGVzLWVkZTMtY2JjIjpCLkNCQy5pbnN0YW50aWF0ZShCLkVERSksImRlcy1lZGUzIjpCLkVERSwiZGVzLWVkZS1jYmMiOkIuQ0JDLmluc3RhbnRpYXRlKEIuRURFKSwiZGVzLWVkZSI6Qi5FREUsImRlcy1jYmMiOkIuQ0JDLmluc3RhbnRpYXRlKEIu''@;'; put 'put ''REVTKSwiZGVzLWVjYiI6Qi5ERVN9O2Z1bmN0aW9uIFEoail7bWUuY2FsbCh0aGlzKTt2YXIgWSxyZT1qLm1vZGUudG9Mb3dlckNhc2UoKSxhZT1VW3JlXTtZPWouZGVjcnlwdD8iZGVjcnlwdCI6ImVuY3J5cHQiO3ZhciBXPWoua2V5O0VlLmlzQnVmZmVyKFcpfHwoVz1FZS5mcm9tKFcpKSwo''@;'; put 'put ''ImRlcy1lZGUiPT09cmV8fCJkZXMtZWRlLWNiYyI9PT1yZSkmJihXPUVlLmNvbmNhdChbVyxXLnNsaWNlKDAsOCldKSk7dmFyIE49ai5pdjtFZS5pc0J1ZmZlcihOKXx8KE49RWUuZnJvbShOKSksdGhpcy5fZGVzPWFlLmNyZWF0ZSh7a2V5OlcsaXY6Tix0eXBlOll9KX1VLmRlcz1VWyJkZXMt''@;'; put 'put ''Y2JjIl0sVS5kZXMzPVVbImRlcy1lZGUzLWNiYyJdLFhlLmV4cG9ydHM9USxFKFEsbWUpLFEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oail7cmV0dXJuIEVlLmZyb20odGhpcy5fZGVzLnVwZGF0ZShqKSl9LFEucHJvdG90eXBlLl9maW5hbD1mdW5jdGlvbigpe3JldHVybiBFZS5mcm9t''@;'; put 'put ''KHRoaXMuX2Rlcy5maW5hbCgpKX19LDUxMTE1OihYZSxKZSk9PntKZVsiZGVzLWVjYiJdPXtrZXk6OCxpdjowfSxKZVsiZGVzLWNiYyJdPUplLmRlcz17a2V5OjgsaXY6OH0sSmVbImRlcy1lZGUzLWNiYyJdPUplLmRlczM9e2tleToyNCxpdjo4fSxKZVsiZGVzLWVkZTMiXT17a2V5OjI0LGl2''@;'; put 'put ''OjB9LEplWyJkZXMtZWRlLWNiYyJdPXtrZXk6MTYsaXY6OH0sSmVbImRlcy1lZGUiXT17a2V5OjE2LGl2OjB9fSw4NDY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk4NTM4KSxCPUwoNTM3NTMpO2Z1bmN0aW9uIEVlKFEpe3ZhciByZSxqPVEubW9kdWx1cy5ieXRlTGVuZ3RoKCk7ZG97cmU9bmV3''@;'; put 'put ''IG1lKEIoaikpfXdoaWxlKHJlLmNtcChRLm1vZHVsdXMpPj0wfHwhcmUudW1vZChRLnByaW1lMSl8fCFyZS51bW9kKFEucHJpbWUyKSk7cmV0dXJuIHJlfWZ1bmN0aW9uIFUoUSxqKXt2YXIgcmU9ZnVuY3Rpb24gRShRKXt2YXIgaj1FZShRKTtyZXR1cm57YmxpbmRlcjpqLnRvUmVkKG1lLm1v''@;'; put 'put ''bnQoUS5tb2R1bHVzKSkucmVkUG93KG5ldyBtZShRLnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLHVuYmxpbmRlcjpqLmludm0oUS5tb2R1bHVzKX19KGopLGFlPWoubW9kdWx1cy5ieXRlTGVuZ3RoKCksWT1uZXcgbWUoUSkubXVsKHJlLmJsaW5kZXIpLnVtb2Qoai5tb2R1bHVzKSxXPVku''@;'; put 'put ''dG9SZWQobWUubW9udChqLnByaW1lMSkpLE49WS50b1JlZChtZS5tb250KGoucHJpbWUyKSksdGU9ai5jb2VmZmljaWVudCxLPWoucHJpbWUxLEo9ai5wcmltZTIsc2U9Vy5yZWRQb3coai5leHBvbmVudDEpLmZyb21SZWQoKSxvZT1OLnJlZFBvdyhqLmV4cG9uZW50MikuZnJvbVJlZCgpLGNl''@;'; put 'put ''PXNlLmlzdWIob2UpLmltdWwodGUpLnVtb2QoSykuaW11bChKKTtyZXR1cm4gb2UuaWFkZChjZSkuaW11bChyZS51bmJsaW5kZXIpLnVtb2Qoai5tb2R1bHVzKS50b0FycmF5TGlrZShCdWZmZXIsImJlIixhZSl9VS5nZXRyPUVlLFhlLmV4cG9ydHM9VX0sODc3OTM6KFhlLEplLEwpPT57WGUu''@;'; put 'put ''ZXhwb3J0cz1MKDc1MjA3KX0sMzkyMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NDQ2KS5CdWZmZXIsQj1MKDk2Mzg2KSxFPUwoNjU2ODUpLEVlPUwoODM4OTQpLFU9TCg3OTk0NyksUT1MKDM5NDYpLGo9TCg3NTIwNyk7ZnVuY3Rpb24gcmUoTil7RS5Xcml0YWJsZS5jYWxsKHRoaXMpO3ZhciB0''@;'; put 'put ''ZT1qW05dO2lmKCF0ZSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gbWVzc2FnZSBkaWdlc3QiKTt0aGlzLl9oYXNoVHlwZT10ZS5oYXNoLHRoaXMuX2hhc2g9Qih0ZS5oYXNoKSx0aGlzLl90YWc9dGUuaWQsdGhpcy5fc2lnblR5cGU9dGUuc2lnbn1mdW5jdGlvbiBhZShOKXtFLldyaXRhYmxl''@;'; put 'put ''LmNhbGwodGhpcyk7dmFyIHRlPWpbTl07aWYoIXRlKXRocm93IG5ldyBFcnJvcigiVW5rbm93biBtZXNzYWdlIGRpZ2VzdCIpO3RoaXMuX2hhc2g9Qih0ZS5oYXNoKSx0aGlzLl90YWc9dGUuaWQsdGhpcy5fc2lnblR5cGU9dGUuc2lnbn1mdW5jdGlvbiBZKE4pe3JldHVybiBuZXcgcmUoTil9''@;'; put 'put ''ZnVuY3Rpb24gVyhOKXtyZXR1cm4gbmV3IGFlKE4pfU9iamVjdC5rZXlzKGopLmZvckVhY2goZnVuY3Rpb24oTil7altOXS5pZD1tZS5mcm9tKGpbTl0uaWQsImhleCIpLGpbTi50b0xvd2VyQ2FzZSgpXT1qW05dfSksRWUocmUsRS5Xcml0YWJsZSkscmUucHJvdG90eXBlLl93cml0ZT1mdW5j''@;'; put 'put ''dGlvbih0ZSxLLEope3RoaXMuX2hhc2gudXBkYXRlKHRlKSxKKCl9LHJlLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odGUsSyl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0ZSYmKHRlPW1lLmZyb20odGUsSykpLHRoaXMuX2hhc2gudXBkYXRlKHRlKSx0aGlzfSxyZS5wcm90b3R5cGUuc2ln''@;'; put 'put ''bj1mdW5jdGlvbih0ZSxLKXt0aGlzLmVuZCgpO3ZhciBKPXRoaXMuX2hhc2guZGlnZXN0KCksc2U9VShKLHRlLHRoaXMuX2hhc2hUeXBlLHRoaXMuX3NpZ25UeXBlLHRoaXMuX3RhZyk7cmV0dXJuIEs/c2UudG9TdHJpbmcoSyk6c2V9LEVlKGFlLEUuV3JpdGFibGUpLGFlLnByb3RvdHlwZS5f''@;'; put 'put ''d3JpdGU9ZnVuY3Rpb24odGUsSyxKKXt0aGlzLl9oYXNoLnVwZGF0ZSh0ZSksSigpfSxhZS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHRlLEspe3JldHVybiJzdHJpbmciPT10eXBlb2YgdGUmJih0ZT1tZS5mcm9tKHRlLEspKSx0aGlzLl9oYXNoLnVwZGF0ZSh0ZSksdGhpc30sYWUucHJv''@;'; put 'put ''dG90eXBlLnZlcmlmeT1mdW5jdGlvbih0ZSxLLEopeyJzdHJpbmciPT10eXBlb2YgSyYmKEs9bWUuZnJvbShLLEopKSx0aGlzLmVuZCgpO3ZhciBzZT10aGlzLl9oYXNoLmRpZ2VzdCgpO3JldHVybiBRKEssc2UsdGUsdGhpcy5fc2lnblR5cGUsdGhpcy5fdGFnKX0sWGUuZXhwb3J0cz17U2ln''@;'; put 'put ''bjpZLFZlcmlmeTpXLGNyZWF0ZVNpZ246WSxjcmVhdGVWZXJpZnk6V319LDc5OTQ3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg0NDYpLkJ1ZmZlcixCPUwoNzQ1MjkpLEU9TCg4NDY2KSxFZT1MKDU3NzE1KS5lYyxVPUwoOTg1MzgpLFE9TCgyMjc3Miksaj1MKDEzMDgpO2Z1bmN0aW9uIE4ob2Us''@;'; put 'put ''Y2UsZGUsdmUpe2lmKChvZT1tZS5mcm9tKG9lLnRvQXJyYXkoKSkpLmxlbmd0aDxjZS5ieXRlTGVuZ3RoKCkpe3ZhciBBZT1tZS5hbGxvYyhjZS5ieXRlTGVuZ3RoKCktb2UubGVuZ3RoKTtvZT1tZS5jb25jYXQoW0FlLG9lXSl9dmFyIGtlPWRlLmxlbmd0aCxTZT1mdW5jdGlvbiBLKG9lLGNl''@;'; put 'put ''KXtvZT0ob2U9dGUob2UsY2UpKS5tb2QoY2UpO3ZhciBkZT1tZS5mcm9tKG9lLnRvQXJyYXkoKSk7aWYoZGUubGVuZ3RoPGNlLmJ5dGVMZW5ndGgoKSl7dmFyIHZlPW1lLmFsbG9jKGNlLmJ5dGVMZW5ndGgoKS1kZS5sZW5ndGgpO2RlPW1lLmNvbmNhdChbdmUsZGVdKX1yZXR1cm4gZGV9KGRl''@;'; put 'put ''LGNlKSxJZT1tZS5hbGxvYyhrZSk7SWUuZmlsbCgxKTt2YXIgVGU9bWUuYWxsb2Moa2UpO3JldHVybiBUZT1CKHZlLFRlKS51cGRhdGUoSWUpLnVwZGF0ZShtZS5mcm9tKFswXSkpLnVwZGF0ZShvZSkudXBkYXRlKFNlKS5kaWdlc3QoKSxJZT1CKHZlLFRlKS51cGRhdGUoSWUpLmRpZ2VzdCgp''@;'; put 'put ''LHtrOlRlPUIodmUsVGUpLnVwZGF0ZShJZSkudXBkYXRlKG1lLmZyb20oWzFdKSkudXBkYXRlKG9lKS51cGRhdGUoU2UpLmRpZ2VzdCgpLHY6SWU9Qih2ZSxUZSkudXBkYXRlKEllKS5kaWdlc3QoKX19ZnVuY3Rpb24gdGUob2UsY2Upe3ZhciBkZT1uZXcgVShvZSksdmU9KG9lLmxlbmd0aDw8''@;'; put 'put ''MyktY2UuYml0TGVuZ3RoKCk7cmV0dXJuIHZlPjAmJmRlLmlzaHJuKHZlKSxkZX1mdW5jdGlvbiBKKG9lLGNlLGRlKXt2YXIgdmUsQWU7ZG97Zm9yKHZlPW1lLmFsbG9jKDApOzgqdmUubGVuZ3RoPG9lLmJpdExlbmd0aCgpOyljZS52PUIoZGUsY2UuaykudXBkYXRlKGNlLnYpLmRpZ2VzdCgp''@;'; put 'put ''LHZlPW1lLmNvbmNhdChbdmUsY2Uudl0pO0FlPXRlKHZlLG9lKSxjZS5rPUIoZGUsY2UuaykudXBkYXRlKGNlLnYpLnVwZGF0ZShtZS5mcm9tKFswXSkpLmRpZ2VzdCgpLGNlLnY9QihkZSxjZS5rKS51cGRhdGUoY2UudikuZGlnZXN0KCl9d2hpbGUoLTEhPT1BZS5jbXAob2UpKTtyZXR1cm4g''@;'; put 'put ''QWV9ZnVuY3Rpb24gc2Uob2UsY2UsZGUsdmUpe3JldHVybiBvZS50b1JlZChVLm1vbnQoZGUpKS5yZWRQb3coY2UpLmZyb21SZWQoKS5tb2QodmUpfVhlLmV4cG9ydHM9ZnVuY3Rpb24gcmUob2UsY2UsZGUsdmUsQWUpe3ZhciBrZT1RKGNlKTtpZihrZS5jdXJ2ZSl7aWYoImVjZHNhIiE9PXZl''@;'; put 'put ''JiYiZWNkc2EvcnNhIiE9PXZlKXRocm93IG5ldyBFcnJvcigid3JvbmcgcHJpdmF0ZSBrZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbiBhZShvZSxjZSl7dmFyIGRlPWpbY2UuY3VydmUuam9pbigiLiIpXTtpZighZGUpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGN1cnZlICIrY2UuY3VydmUu''@;'; put 'put ''am9pbigiLiIpKTt2YXIga2U9bmV3IEVlKGRlKS5rZXlGcm9tUHJpdmF0ZShjZS5wcml2YXRlS2V5KS5zaWduKG9lKTtyZXR1cm4gbWUuZnJvbShrZS50b0RFUigpKX0ob2Usa2UpfWlmKCJkc2EiPT09a2UudHlwZSl7aWYoImRzYSIhPT12ZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHByaXZh''@;'; put 'put ''dGUga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gWShvZSxjZSxkZSl7Zm9yKHZhciBUZSx2ZT1jZS5wYXJhbXMucHJpdl9rZXksQWU9Y2UucGFyYW1zLnAsa2U9Y2UucGFyYW1zLnEsU2U9Y2UucGFyYW1zLmcsSWU9bmV3IFUoMCksTWU9dGUob2Usa2UpLm1vZChrZSksaGU9ITEsTz1OKHZl''@;'; put 'put ''LGtlLG9lLGRlKTshMT09PWhlOylJZT1zZShTZSxUZT1KKGtlLE8sZGUpLEFlLGtlKSwwPT09KGhlPVRlLmludm0oa2UpLmltdWwoTWUuYWRkKHZlLm11bChJZSkpKS5tb2Qoa2UpKS5jbXBuKDApJiYoaGU9ITEsSWU9bmV3IFUoMCkpO3JldHVybiBmdW5jdGlvbiBXKG9lLGNlKXtvZT1vZS50''@;'; put 'put ''b0FycmF5KCksY2U9Y2UudG9BcnJheSgpLDEyOCZvZVswXSYmKG9lPVswXS5jb25jYXQob2UpKSwxMjgmY2VbMF0mJihjZT1bMF0uY29uY2F0KGNlKSk7dmFyIHZlPVs0OCxvZS5sZW5ndGgrY2UubGVuZ3RoKzQsMixvZS5sZW5ndGhdO3JldHVybiB2ZT12ZS5jb25jYXQob2UsWzIsY2UubGVu''@;'; put 'put ''Z3RoXSxjZSksbWUuZnJvbSh2ZSl9KEllLGhlKX0ob2Usa2UsZGUpfWlmKCJyc2EiIT09dmUmJiJlY2RzYS9yc2EiIT09dmUpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwcml2YXRlIGtleSB0eXBlIik7b2U9bWUuY29uY2F0KFtBZSxvZV0pO2Zvcih2YXIgU2U9a2UubW9kdWx1cy5ieXRlTGVu''@;'; put 'put ''Z3RoKCksSWU9WzAsMV07b2UubGVuZ3RoK0llLmxlbmd0aCsxPFNlOylJZS5wdXNoKDI1NSk7SWUucHVzaCgwKTtmb3IodmFyIFRlPS0xOysrVGU8b2UubGVuZ3RoOylJZS5wdXNoKG9lW1RlXSk7cmV0dXJuIEUoSWUsa2UpfSxYZS5leHBvcnRzLmdldEtleT1OLFhlLmV4cG9ydHMubWFrZUtl''@;'; put 'put ''eT1KfSwzOTQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg0NDYpLkJ1ZmZlcixCPUwoOTg1MzgpLEU9TCg1NzcxNSkuZWMsRWU9TCgyMjc3MiksVT1MKDEzMDgpO2Z1bmN0aW9uIGFlKFksVyl7aWYoWS5jbXBuKDApPD0wKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBzaWciKTtpZihZLmNtcChX''@;'; put 'put ''KT49Vyl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgc2lnIil9WGUuZXhwb3J0cz1mdW5jdGlvbiBRKFksVyxOLHRlLEspe3ZhciBKPUVlKE4pO2lmKCJlYyI9PT1KLnR5cGUpe2lmKCJlY2RzYSIhPT10ZSYmImVjZHNhL3JzYSIhPT10ZSl0aHJvdyBuZXcgRXJyb3IoIndyb25nIHB1YmxpYyBr''@;'; put 'put ''ZXkgdHlwZSIpO3JldHVybiBmdW5jdGlvbiBqKFksVyxOKXt2YXIgdGU9VVtOLmRhdGEuYWxnb3JpdGhtLmN1cnZlLmpvaW4oIi4iKV07aWYoIXRlKXRocm93IG5ldyBFcnJvcigidW5rbm93biBjdXJ2ZSAiK04uZGF0YS5hbGdvcml0aG0uY3VydmUuam9pbigiLiIpKTtyZXR1cm4gbmV3IEUo''@;'; put 'put ''dGUpLnZlcmlmeShXLFksTi5kYXRhLnN1YmplY3RQcml2YXRlS2V5LmRhdGEpfShZLFcsSil9aWYoImRzYSI9PT1KLnR5cGUpe2lmKCJkc2EiIT09dGUpdGhyb3cgbmV3IEVycm9yKCJ3cm9uZyBwdWJsaWMga2V5IHR5cGUiKTtyZXR1cm4gZnVuY3Rpb24gcmUoWSxXLE4pe3ZhciB0ZT1OLmRh''@;'; put 'put ''dGEucCxLPU4uZGF0YS5xLEo9Ti5kYXRhLmcsc2U9Ti5kYXRhLnB1Yl9rZXksb2U9RWUuc2lnbmF0dXJlLmRlY29kZShZLCJkZXIiKSxjZT1vZS5zLGRlPW9lLnI7YWUoY2UsSyksYWUoZGUsSyk7dmFyIHZlPUIubW9udCh0ZSksQWU9Y2UuaW52bShLKTtyZXR1cm4gMD09PUoudG9SZWQodmUp''@;'; put 'put ''LnJlZFBvdyhuZXcgQihXKS5tdWwoQWUpLm1vZChLKSkuZnJvbVJlZCgpLm11bChzZS50b1JlZCh2ZSkucmVkUG93KGRlLm11bChBZSkubW9kKEspKS5mcm9tUmVkKCkpLm1vZCh0ZSkubW9kKEspLmNtcChkZSl9KFksVyxKKX1pZigicnNhIiE9PXRlJiYiZWNkc2EvcnNhIiE9PXRlKXRocm93''@;'; put 'put ''IG5ldyBFcnJvcigid3JvbmcgcHVibGljIGtleSB0eXBlIik7Vz1tZS5jb25jYXQoW0ssV10pO2Zvcih2YXIgc2U9Si5tb2R1bHVzLmJ5dGVMZW5ndGgoKSxvZT1bMV0sY2U9MDtXLmxlbmd0aCtvZS5sZW5ndGgrMjxzZTspb2UucHVzaCgyNTUpLGNlKys7b2UucHVzaCgwKTtmb3IodmFyIGRl''@;'; put 'put ''PS0xOysrZGU8Vy5sZW5ndGg7KW9lLnB1c2goV1tkZV0pO29lPW1lLmZyb20ob2UpO3ZhciB2ZT1CLm1vbnQoSi5tb2R1bHVzKTtZPShZPW5ldyBCKFkpLnRvUmVkKHZlKSkucmVkUG93KG5ldyBCKEoucHVibGljRXhwb25lbnQpKSxZPW1lLmZyb20oWS5mcm9tUmVkKCkudG9BcnJheSgpKTt2''@;'; put 'put ''YXIgQWU9Y2U8OD8xOjA7Zm9yKHNlPU1hdGgubWluKFkubGVuZ3RoLG9lLmxlbmd0aCksWS5sZW5ndGghPT1vZS5sZW5ndGgmJihBZT0xKSxkZT0tMTsrK2RlPHNlOylBZXw9WVtkZV1eb2VbZGVdO3JldHVybiAwPT09QWV9fSw4NDQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkzMTcyKSxCPW1l''@;'; put 'put ''LkJ1ZmZlcjtmdW5jdGlvbiBFKFUsUSl7Zm9yKHZhciBqIGluIFUpUVtqXT1VW2pdfWZ1bmN0aW9uIEVlKFUsUSxqKXtyZXR1cm4gQihVLFEsail9Qi5mcm9tJiZCLmFsbG9jJiZCLmFsbG9jVW5zYWZlJiZCLmFsbG9jVW5zYWZlU2xvdz9YZS5leHBvcnRzPW1lOihFKG1lLEplKSxKZS5CdWZm''@;'; put 'put ''ZXI9RWUpLEVlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEIucHJvdG90eXBlKSxFKEIsRWUpLEVlLmZyb209ZnVuY3Rpb24oVSxRLGope2lmKCJudW1iZXIiPT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBCKFUs''@;'; put 'put ''USxqKX0sRWUuYWxsb2M9ZnVuY3Rpb24oVSxRLGope2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIHJlPUIoVSk7cmV0dXJuIHZvaWQgMCE9PVE/InN0cmluZyI9PXR5cGVvZiBqP3JlLmZpbGwoUSxqKTpy''@;'; put 'put ''ZS5maWxsKFEpOnJlLmZpbGwoMCkscmV9LEVlLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSl9LEVlLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihV''@;'; put 'put ''KXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBtZS5TbG93QnVmZmVyKFUpfX0sNTg3ODk6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEwsbWUpe2Zvcih2YXIgQj1NYXRoLm1pbihMLmxlbmd0aCxt''@;'; put 'put ''ZS5sZW5ndGgpLEU9bmV3IEJ1ZmZlcihCKSxFZT0wO0VlPEI7KytFZSlFW0VlXT1MW0VlXV5tZVtFZV07cmV0dXJuIEV9fSw5MzE3MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNTM0MyksQj1MKDQ4NDYxKSxFPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBTeW1ib2wuZm9yP1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIik6bnVsbDtKZS5CdWZmZXI9aixKZS5TbG93QnVmZmVyPWZ1bmN0aW9uIGNlKF90KXtyZXR1cm4rX3QhPV90JiYoX3Q9MCksai5hbGxvYygrX3QpfSxKZS5JTlNQRUNUX01BWF9CWVRF''@;'; put 'put ''Uz01MDt2YXIgRWU9MjE0NzQ4MzY0NztmdW5jdGlvbiBRKF90KXtpZihfdD5FZSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK190KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgdHQ9bmV3IFVpbnQ4QXJyYXkoX3QpO3JldHVybiBPYmplY3Quc2V0UHJv''@;'; put 'put ''dG90eXBlT2YodHQsai5wcm90b3R5cGUpLHR0fWZ1bmN0aW9uIGooX3QsdHQsZXQpe2lmKCJudW1iZXIiPT10eXBlb2YgX3Qpe2lmKCJzdHJpbmciPT10eXBlb2YgdHQpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJzdHJpbmciIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBzdHJpbmcuIFJl''@;'; put 'put ''Y2VpdmVkIHR5cGUgbnVtYmVyJyk7cmV0dXJuIFcoX3QpfXJldHVybiByZShfdCx0dCxldCl9ZnVuY3Rpb24gcmUoX3QsdHQsZXQpe2lmKCJzdHJpbmciPT10eXBlb2YgX3QpcmV0dXJuIGZ1bmN0aW9uIE4oX3QsdHQpe2lmKCgic3RyaW5nIiE9dHlwZW9mIHR0fHwiIj09PXR0KSYmKHR0PSJ1''@;'; put 'put ''dGY4IiksIWouaXNFbmNvZGluZyh0dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIit0dCk7dmFyIGV0PTB8ZGUoX3QsdHQpLGx0PVEoZXQpLEx0PWx0LndyaXRlKF90LHR0KTtyZXR1cm4gTHQhPT1ldCYmKGx0PWx0LnNsaWNlKDAsTHQpKSxsdH0oX3QsdHQpO2lm''@;'; put 'put ''KEFycmF5QnVmZmVyLmlzVmlldyhfdCkpcmV0dXJuIGZ1bmN0aW9uIEsoX3Qpe2lmKGh0KF90LFVpbnQ4QXJyYXkpKXt2YXIgdHQ9bmV3IFVpbnQ4QXJyYXkoX3QpO3JldHVybiBKKHR0LmJ1ZmZlcix0dC5ieXRlT2Zmc2V0LHR0LmJ5dGVMZW5ndGgpfXJldHVybiB0ZShfdCl9KF90KTtpZihu''@;'; put 'put ''dWxsPT1fdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBfdCk7aWYoaHQoX3QsQXJy''@;'; put 'put ''YXlCdWZmZXIpfHxfdCYmaHQoX3QuYnVmZmVyLEFycmF5QnVmZmVyKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBTaGFyZWRBcnJheUJ1ZmZlciYmKGh0KF90LFNoYXJlZEFycmF5QnVmZmVyKXx8X3QmJmh0KF90LmJ1ZmZlcixTaGFyZWRBcnJheUJ1ZmZlcikpKXJldHVybiBKKF90LHR0LGV0KTtp''@;'; put 'put ''ZigibnVtYmVyIj09dHlwZW9mIF90KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidmFsdWUiIGFyZ3VtZW50IG11c3Qgbm90IGJlIG9mIHR5cGUgbnVtYmVyLiBSZWNlaXZlZCB0eXBlIG51bWJlcicpO3ZhciBsdD1fdC52YWx1ZU9mJiZfdC52YWx1ZU9mKCk7aWYobnVsbCE9bHQmJmx0IT09''@;'; put 'put ''X3QpcmV0dXJuIGouZnJvbShsdCx0dCxldCk7dmFyIEx0PWZ1bmN0aW9uIHNlKF90KXtpZihqLmlzQnVmZmVyKF90KSl7dmFyIHR0PTB8b2UoX3QubGVuZ3RoKSxldD1RKHR0KTtyZXR1cm4gMD09PWV0Lmxlbmd0aHx8X3QuY29weShldCwwLDAsdHQpLGV0fXJldHVybiB2b2lkIDAhPT1fdC5s''@;'; put 'put ''ZW5ndGg/Im51bWJlciIhPXR5cGVvZiBfdC5sZW5ndGh8fEJ0KF90Lmxlbmd0aCk/USgwKTp0ZShfdCk6IkJ1ZmZlciI9PT1fdC50eXBlJiZBcnJheS5pc0FycmF5KF90LmRhdGEpP3RlKF90LmRhdGEpOnZvaWQgMH0oX3QpO2lmKEx0KXJldHVybiBMdDtpZigidW5kZWZpbmVkIiE9dHlwZW9m''@;'; put 'put ''IFN5bWJvbCYmbnVsbCE9U3ltYm9sLnRvUHJpbWl0aXZlJiYiZnVuY3Rpb24iPT10eXBlb2YgX3RbU3ltYm9sLnRvUHJpbWl0aXZlXSlyZXR1cm4gai5mcm9tKF90W1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLHR0LGV0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJn''@;'; put 'put ''dW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiBfdCl9ZnVuY3Rpb24gYWUoX3Qpe2lmKCJudW1iZXIiIT10eXBlb2YgX3QpdGhyb3cgbmV3IFR5cGVF''@;'; put 'put ''cnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZihfdDwwKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgIicrX3QrJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpfWZ1bmN0aW9uIFcoX3Qpe3JldHVybiBhZShfdCksUShfdDwwPzA6''@;'; put 'put ''MHxvZShfdCkpfWZ1bmN0aW9uIHRlKF90KXtmb3IodmFyIHR0PV90Lmxlbmd0aDwwPzA6MHxvZShfdC5sZW5ndGgpLGV0PVEodHQpLGx0PTA7bHQ8dHQ7bHQrPTEpZXRbbHRdPTI1NSZfdFtsdF07cmV0dXJuIGV0fWZ1bmN0aW9uIEooX3QsdHQsZXQpe2lmKHR0PDB8fF90LmJ5dGVMZW5ndGg8''@;'; put 'put ''dHQpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJvZmZzZXQiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2lmKF90LmJ5dGVMZW5ndGg8dHQrKGV0fHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignImxlbmd0aCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7dmFyIGx0O3JldHVy''@;'; put 'put ''biBsdD12b2lkIDA9PT10dCYmdm9pZCAwPT09ZXQ/bmV3IFVpbnQ4QXJyYXkoX3QpOnZvaWQgMD09PWV0P25ldyBVaW50OEFycmF5KF90LHR0KTpuZXcgVWludDhBcnJheShfdCx0dCxldCksT2JqZWN0LnNldFByb3RvdHlwZU9mKGx0LGoucHJvdG90eXBlKSxsdH1mdW5jdGlvbiBvZShfdCl7''@;'; put 'put ''aWYoX3Q+PUVlKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IitFZS50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfF90fWZ1bmN0aW9uIGRlKF90LHR0KXtpZihqLmlzQnVmZmVyKF90KSly''@;'; put 'put ''ZXR1cm4gX3QubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyhfdCl8fGh0KF90LEFycmF5QnVmZmVyKSlyZXR1cm4gX3QuYnl0ZUxlbmd0aDtpZigic3RyaW5nIiE9dHlwZW9mIF90KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic3RyaW5nIiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0''@;'; put 'put ''eXBlIHN0cmluZywgQnVmZmVyLCBvciBBcnJheUJ1ZmZlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBfdCk7dmFyIGV0PV90Lmxlbmd0aCxsdD1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCFsdCYmMD09PWV0KXJldHVybiAwO2Zvcih2YXIgTHQ9ITE7Oylzd2l0''@;'; put 'put ''Y2godHQpe2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6cmV0dXJuIGV0O2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIGd0KF90KS5sZW5ndGg7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiAyKmV0O2Nh''@;'; put 'put ''c2UiaGV4IjpyZXR1cm4gZXQ+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gdnQoX3QpLmxlbmd0aDtkZWZhdWx0OmlmKEx0KXJldHVybiBsdD8tMTpndChfdCkubGVuZ3RoO3R0PSgiIit0dCkudG9Mb3dlckNhc2UoKSxMdD0hMH19ZnVuY3Rpb24gdmUoX3QsdHQsZXQpe3ZhciBsdD0hMTtpZigo''@;'; put 'put ''dm9pZCAwPT09dHR8fHR0PDApJiYodHQ9MCksdHQ+dGhpcy5sZW5ndGh8fCgodm9pZCAwPT09ZXR8fGV0PnRoaXMubGVuZ3RoKSYmKGV0PXRoaXMubGVuZ3RoKSxldDw9MCl8fChldD4+Pj0wKTw9KHR0Pj4+PTApKXJldHVybiIiO2ZvcihfdHx8KF90PSJ1dGY4Iik7Oylzd2l0Y2goX3Qpe2Nh''@;'; put 'put ''c2UiaGV4IjpyZXR1cm4gVCh0aGlzLHR0LGV0KTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBlZSh0aGlzLHR0LGV0KTtjYXNlImFzY2lpIjpyZXR1cm4gUCh0aGlzLHR0LGV0KTtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiBWKHRoaXMsdHQsZXQpO2Nhc2UiYmFzZTY0''@;'; put 'put ''IjpyZXR1cm4geih0aGlzLHR0LGV0KTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFModGhpcyx0dCxldCk7ZGVmYXVsdDppZihsdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK190KTtfdD0oX3QrIiIp''@;'; put 'put ''LnRvTG93ZXJDYXNlKCksbHQ9ITB9fWZ1bmN0aW9uIEFlKF90LHR0LGV0KXt2YXIgbHQ9X3RbdHRdO190W3R0XT1fdFtldF0sX3RbZXRdPWx0fWZ1bmN0aW9uIGtlKF90LHR0LGV0LGx0LEx0KXtpZigwPT09X3QubGVuZ3RoKXJldHVybi0xO2lmKCJzdHJpbmciPT10eXBlb2YgZXQ/KGx0PWV0''@;'; put 'put ''LGV0PTApOmV0PjIxNDc0ODM2NDc/ZXQ9MjE0NzQ4MzY0NzpldDwtMjE0NzQ4MzY0OCYmKGV0PS0yMTQ3NDgzNjQ4KSxCdChldD0rZXQpJiYoZXQ9THQ/MDpfdC5sZW5ndGgtMSksZXQ8MCYmKGV0PV90Lmxlbmd0aCtldCksZXQ+PV90Lmxlbmd0aCl7aWYoTHQpcmV0dXJuLTE7ZXQ9X3QubGVu''@;'; put 'put ''Z3RoLTF9ZWxzZSBpZihldDwwKXtpZighTHQpcmV0dXJuLTE7ZXQ9MH1pZigic3RyaW5nIj09dHlwZW9mIHR0JiYodHQ9ai5mcm9tKHR0LGx0KSksai5pc0J1ZmZlcih0dCkpcmV0dXJuIDA9PT10dC5sZW5ndGg/LTE6U2UoX3QsdHQsZXQsbHQsTHQpO2lmKCJudW1iZXIiPT10eXBlb2YgdHQp''@;'; put 'put ''cmV0dXJuIHR0Jj0yNTUsImZ1bmN0aW9uIj09dHlwZW9mIFVpbnQ4QXJyYXkucHJvdG90eXBlLmluZGV4T2Y/THQ/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKF90LHR0LGV0KTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKF90LHR0LGV0KTpTZShfdCxb''@;'; put 'put ''dHRdLGV0LGx0LEx0KTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBTZShfdCx0dCxldCxsdCxMdCl7dmFyIFVlLEN0PTEsZnQ9X3QubGVuZ3RoLEh0PXR0Lmxlbmd0aDtpZih2b2lkIDAhPT1sdCYmKCJ1Y3MyIj09''@;'; put 'put ''PShsdD1TdHJpbmcobHQpLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09bHR8fCJ1dGYxNmxlIj09PWx0fHwidXRmLTE2bGUiPT09bHQpKXtpZihfdC5sZW5ndGg8Mnx8dHQubGVuZ3RoPDIpcmV0dXJuLTE7Q3Q9MixmdC89MixIdC89MixldC89Mn1mdW5jdGlvbiBHZShnbixkbil7cmV0dXJu''@;'; put 'put ''IDE9PT1DdD9nbltkbl06Z24ucmVhZFVJbnQxNkJFKGRuKkN0KX1pZihMdCl7dmFyIHl0PS0xO2ZvcihVZT1ldDtVZTxmdDtVZSsrKWlmKEdlKF90LFVlKT09PUdlKHR0LC0xPT09eXQ/MDpVZS15dCkpe2lmKC0xPT09eXQmJih5dD1VZSksVWUteXQrMT09PUh0KXJldHVybiB5dCpDdH1lbHNl''@;'; put 'put ''LTEhPT15dCYmKFVlLT1VZS15dCkseXQ9LTF9ZWxzZSBmb3IoZXQrSHQ+ZnQmJihldD1mdC1IdCksVWU9ZXQ7VWU+PTA7VWUtLSl7Zm9yKHZhciBqdD0hMCxKdD0wO0p0PEh0O0p0KyspaWYoR2UoX3QsVWUrSnQpIT09R2UodHQsSnQpKXtqdD0hMTticmVha31pZihqdClyZXR1cm4gVWV9cmV0''@;'; put 'put ''dXJuLTF9ZnVuY3Rpb24gSWUoX3QsdHQsZXQsbHQpe2V0PU51bWJlcihldCl8fDA7dmFyIEx0PV90Lmxlbmd0aC1ldDtsdD8obHQ9TnVtYmVyKGx0KSk+THQmJihsdD1MdCk6bHQ9THQ7dmFyIEN0PXR0Lmxlbmd0aDtsdD5DdC8yJiYobHQ9Q3QvMik7Zm9yKHZhciBmdD0wO2Z0PGx0OysrZnQp''@;'; put 'put ''e3ZhciBIdD1wYXJzZUludCh0dC5zdWJzdHIoMipmdCwyKSwxNik7aWYoQnQoSHQpKXJldHVybiBmdDtfdFtldCtmdF09SHR9cmV0dXJuIGZ0fWZ1bmN0aW9uIFRlKF90LHR0LGV0LGx0KXtyZXR1cm4gQXQoZ3QodHQsX3QubGVuZ3RoLWV0KSxfdCxldCxsdCl9ZnVuY3Rpb24gTWUoX3QsdHQs''@;'; put 'put ''ZXQsbHQpe3JldHVybiBBdChmdW5jdGlvbiB3dChfdCl7Zm9yKHZhciB0dD1bXSxldD0wO2V0PF90Lmxlbmd0aDsrK2V0KXR0LnB1c2goMjU1Jl90LmNoYXJDb2RlQXQoZXQpKTtyZXR1cm4gdHR9KHR0KSxfdCxldCxsdCl9ZnVuY3Rpb24gaGUoX3QsdHQsZXQsbHQpe3JldHVybiBBdCh2dCh0''@;'; put 'put ''dCksX3QsZXQsbHQpfWZ1bmN0aW9uIE8oX3QsdHQsZXQsbHQpe3JldHVybiBBdChmdW5jdGlvbiBtdChfdCx0dCl7Zm9yKHZhciBldCxsdCxDdD1bXSxmdD0wO2Z0PF90Lmxlbmd0aCYmISgodHQtPTIpPDApOysrZnQpbHQ9KGV0PV90LmNoYXJDb2RlQXQoZnQpKT4+OCxDdC5wdXNoKGV0JTI1''@;'; put 'put ''NiksQ3QucHVzaChsdCk7cmV0dXJuIEN0fSh0dCxfdC5sZW5ndGgtZXQpLF90LGV0LGx0KX1mdW5jdGlvbiB6KF90LHR0LGV0KXtyZXR1cm4gbWUuZnJvbUJ5dGVBcnJheSgwPT09dHQmJmV0PT09X3QubGVuZ3RoP190Ol90LnNsaWNlKHR0LGV0KSl9ZnVuY3Rpb24gZWUoX3QsdHQsZXQpe2V0''@;'; put 'put ''PU1hdGgubWluKF90Lmxlbmd0aCxldCk7Zm9yKHZhciBsdD1bXSxMdD10dDtMdDxldDspe3ZhciBHZSxVZSx5dCxqdCxDdD1fdFtMdF0sZnQ9bnVsbCxIdD1DdD4yMzk/NDpDdD4yMjM/MzpDdD4xOTE/MjoxO2lmKEx0K0h0PD1ldClzd2l0Y2goSHQpe2Nhc2UgMTpDdDwxMjgmJihmdD1DdCk7''@;'; put 'put ''YnJlYWs7Y2FzZSAyOjEyOD09KDE5MiYoR2U9X3RbTHQrMV0pKSYmKGp0PSgzMSZDdCk8PDZ8NjMmR2UpPjEyNyYmKGZ0PWp0KTticmVhaztjYXNlIDM6VWU9X3RbTHQrMl0sMTI4PT0oMTkyJihHZT1fdFtMdCsxXSkpJiYxMjg9PSgxOTImVWUpJiYoanQ9KDE1JkN0KTw8MTJ8KDYzJkdlKTw8''@;'; put 'put ''Nnw2MyZVZSk+MjA0NyYmKGp0PDU1Mjk2fHxqdD41NzM0MykmJihmdD1qdCk7YnJlYWs7Y2FzZSA0OlVlPV90W0x0KzJdLHl0PV90W0x0KzNdLDEyOD09KDE5MiYoR2U9X3RbTHQrMV0pKSYmMTI4PT0oMTkyJlVlKSYmMTI4PT0oMTkyJnl0KSYmKGp0PSgxNSZDdCk8PDE4fCg2MyZHZSk8PDEy''@;'; put 'put ''fCg2MyZVZSk8PDZ8NjMmeXQpPjY1NTM1JiZqdDwxMTE0MTEyJiYoZnQ9anQpfW51bGw9PT1mdD8oZnQ9NjU1MzMsSHQ9MSk6ZnQ+NjU1MzUmJihsdC5wdXNoKChmdC09NjU1MzYpPj4+MTAmMTAyM3w1NTI5NiksZnQ9NTYzMjB8MTAyMyZmdCksbHQucHVzaChmdCksTHQrPUh0fXJldHVybiBm''@;'; put 'put ''dW5jdGlvbiB4KF90KXt2YXIgdHQ9X3QubGVuZ3RoO2lmKHR0PD00MDk2KXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyxfdCk7Zm9yKHZhciBldD0iIixsdD0wO2x0PHR0OylldCs9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsX3Quc2xpY2UobHQsbHQr''@;'; put 'put ''PTQwOTYpKTtyZXR1cm4gZXR9KGx0KX1mdW5jdGlvbiBQKF90LHR0LGV0KXt2YXIgbHQ9IiI7ZXQ9TWF0aC5taW4oX3QubGVuZ3RoLGV0KTtmb3IodmFyIEx0PXR0O0x0PGV0OysrTHQpbHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3Jl90W0x0XSk7cmV0dXJuIGx0fWZ1bmN0aW9uIFYoX3Qs''@;'; put 'put ''dHQsZXQpe3ZhciBsdD0iIjtldD1NYXRoLm1pbihfdC5sZW5ndGgsZXQpO2Zvcih2YXIgTHQ9dHQ7THQ8ZXQ7KytMdClsdCs9U3RyaW5nLmZyb21DaGFyQ29kZShfdFtMdF0pO3JldHVybiBsdH1mdW5jdGlvbiBUKF90LHR0LGV0KXt2YXIgbHQ9X3QubGVuZ3RoOyghdHR8fHR0PDApJiYodHQ9''@;'; put 'put ''MCksKCFldHx8ZXQ8MHx8ZXQ+bHQpJiYoZXQ9bHQpO2Zvcih2YXIgTHQ9IiIsQ3Q9dHQ7Q3Q8ZXQ7KytDdClMdCs9b25bX3RbQ3RdXTtyZXR1cm4gTHR9ZnVuY3Rpb24gUyhfdCx0dCxldCl7Zm9yKHZhciBsdD1fdC5zbGljZSh0dCxldCksTHQ9IiIsQ3Q9MDtDdDxsdC5sZW5ndGgtMTtDdCs9''@;'; put 'put ''MilMdCs9U3RyaW5nLmZyb21DaGFyQ29kZShsdFtDdF0rMjU2Kmx0W0N0KzFdKTtyZXR1cm4gTHR9ZnVuY3Rpb24gRihfdCx0dCxldCl7aWYoX3QlMSE9MHx8X3Q8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYoX3QrdHQ+ZXQpdGhyb3cgbmV3IFJhbmdl''@;'; put 'put ''RXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiB5ZShfdCx0dCxldCxsdCxMdCxDdCl7aWYoIWouaXNCdWZmZXIoX3QpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJidWZmZXIiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgaW5zdGFuY2UnKTtp''@;'; put 'put ''Zih0dD5MdHx8dHQ8Q3QpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKGV0K2x0Pl90Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gQ2UoX3QsdHQsZXQsbHQsTHQsQ3Qp''@;'; put 'put ''e2lmKGV0K2x0Pl90Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoZXQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gRGUoX3QsdHQsZXQsbHQsTHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxM''@;'; put 'put ''dHx8Q2UoX3QsMCxldCw0KSxCLndyaXRlKF90LHR0LGV0LGx0LDIzLDQpLGV0KzR9ZnVuY3Rpb24gUGUoX3QsdHQsZXQsbHQsTHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxMdHx8Q2UoX3QsMCxldCw4KSxCLndyaXRlKF90LHR0LGV0LGx0LDUyLDgpLGV0Kzh9SmUua01heExlbmd0aD1FZSwh''@;'; put 'put ''KGouVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbiBVKCl7dHJ5e3ZhciBfdD1uZXcgVWludDhBcnJheSgxKSx0dD17Zm9vOmZ1bmN0aW9uKCl7cmV0dXJuIDQyfX07cmV0dXJuIE9iamVjdC5zZXRQcm90b3R5cGVPZih0dCxVaW50OEFycmF5LnByb3RvdHlwZSksT2JqZWN0LnNldFByb3Rv''@;'; put 'put ''dHlwZU9mKF90LHR0KSw0Mj09PV90LmZvbygpfWNhdGNoKGV0KXtyZXR1cm4hMX19KCkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBjb25zb2xlLmVycm9yJiZjb25zb2xlLmVycm9yKCJUaGlzIGJyb3dzZXIgbGFja3MgdHlwZWQgYXJyYXkgKFVp''@;'; put 'put ''bnQ4QXJyYXkpIHN1cHBvcnQgd2hpY2ggaXMgcmVxdWlyZWQgYnkgYGJ1ZmZlcmAgdjUueC4gVXNlIGBidWZmZXJgIHY0LnggaWYgeW91IHJlcXVpcmUgb2xkIGJyb3dzZXIgc3VwcG9ydC4iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoai5wcm90b3R5cGUsInBhcmVudCIse2VudW1lcmFibGU6''@;'; put 'put ''ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoai5pc0J1ZmZlcih0aGlzKSlyZXR1cm4gdGhpcy5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGoucHJvdG90eXBlLCJvZmZzZXQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGouaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMu''@;'; put 'put ''Ynl0ZU9mZnNldH19KSxqLnBvb2xTaXplPTgxOTIsai5mcm9tPWZ1bmN0aW9uKF90LHR0LGV0KXtyZXR1cm4gcmUoX3QsdHQsZXQpfSxPYmplY3Quc2V0UHJvdG90eXBlT2Yoai5wcm90b3R5cGUsVWludDhBcnJheS5wcm90b3R5cGUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihqLFVpbnQ4QXJy''@;'; put 'put ''YXkpLGouYWxsb2M9ZnVuY3Rpb24oX3QsdHQsZXQpe3JldHVybiBmdW5jdGlvbiBZKF90LHR0LGV0KXtyZXR1cm4gYWUoX3QpLF90PD0wP1EoX3QpOnZvaWQgMCE9PXR0PyJzdHJpbmciPT10eXBlb2YgZXQ/UShfdCkuZmlsbCh0dCxldCk6UShfdCkuZmlsbCh0dCk6UShfdCl9KF90LHR0LGV0''@;'; put 'put ''KX0sai5hbGxvY1Vuc2FmZT1mdW5jdGlvbihfdCl7cmV0dXJuIFcoX3QpfSxqLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbihfdCl7cmV0dXJuIFcoX3QpfSxqLmlzQnVmZmVyPWZ1bmN0aW9uKHR0KXtyZXR1cm4gbnVsbCE9dHQmJiEwPT09dHQuX2lzQnVmZmVyJiZ0dCE9PWoucHJvdG90eXBl''@;'; put 'put ''fSxqLmNvbXBhcmU9ZnVuY3Rpb24odHQsZXQpe2lmKGh0KHR0LFVpbnQ4QXJyYXkpJiYodHQ9ai5mcm9tKHR0LHR0Lm9mZnNldCx0dC5ieXRlTGVuZ3RoKSksaHQoZXQsVWludDhBcnJheSkmJihldD1qLmZyb20oZXQsZXQub2Zmc2V0LGV0LmJ5dGVMZW5ndGgpKSwhai5pc0J1ZmZlcih0dCl8''@;'; put 'put ''fCFqLmlzQnVmZmVyKGV0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImJ1ZjEiLCAiYnVmMiIgYXJndW1lbnRzIG11c3QgYmUgb25lIG9mIHR5cGUgQnVmZmVyIG9yIFVpbnQ4QXJyYXknKTtpZih0dD09PWV0KXJldHVybiAwO2Zvcih2YXIgbHQ9dHQubGVuZ3RoLEx0PWV0Lmxlbmd0aCxD''@;'; put 'put ''dD0wLGZ0PU1hdGgubWluKGx0LEx0KTtDdDxmdDsrK0N0KWlmKHR0W0N0XSE9PWV0W0N0XSl7bHQ9dHRbQ3RdLEx0PWV0W0N0XTticmVha31yZXR1cm4gbHQ8THQ/LTE6THQ8bHQ/MTowfSxqLmlzRW5jb2Rpbmc9ZnVuY3Rpb24odHQpe3N3aXRjaChTdHJpbmcodHQpLnRvTG93ZXJDYXNlKCkp''@;'; put 'put ''e2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0s''@;'; put 'put ''ai5jb25jYXQ9ZnVuY3Rpb24odHQsZXQpe2lmKCFBcnJheS5pc0FycmF5KHR0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PXR0Lmxlbmd0aClyZXR1cm4gai5hbGxvYygwKTt2YXIgbHQ7aWYodm9pZCAw''@;'; put 'put ''PT09ZXQpZm9yKGV0PTAsbHQ9MDtsdDx0dC5sZW5ndGg7KytsdClldCs9dHRbbHRdLmxlbmd0aDt2YXIgTHQ9ai5hbGxvY1Vuc2FmZShldCksQ3Q9MDtmb3IobHQ9MDtsdDx0dC5sZW5ndGg7KytsdCl7dmFyIGZ0PXR0W2x0XTtpZihodChmdCxVaW50OEFycmF5KSlDdCtmdC5sZW5ndGg+THQu''@;'; put 'put ''bGVuZ3RoP2ouZnJvbShmdCkuY29weShMdCxDdCk6VWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwoTHQsZnQsQ3QpO2Vsc2V7aWYoIWouaXNCdWZmZXIoZnQpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJsaXN0IiBhcmd1bWVudCBtdXN0IGJlIGFuIEFycmF5IG9mIEJ1ZmZlcnMnKTtmdC5j''@;'; put 'put ''b3B5KEx0LEN0KX1DdCs9ZnQubGVuZ3RofXJldHVybiBMdH0sai5ieXRlTGVuZ3RoPWRlLGoucHJvdG90eXBlLl9pc0J1ZmZlcj0hMCxqLnByb3RvdHlwZS5zd2FwMTY9ZnVuY3Rpb24oKXt2YXIgdHQ9dGhpcy5sZW5ndGg7aWYodHQlMiE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVy''@;'; put 'put ''IHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2LWJpdHMiKTtmb3IodmFyIGV0PTA7ZXQ8dHQ7ZXQrPTIpQWUodGhpcyxldCxldCsxKTtyZXR1cm4gdGhpc30sai5wcm90b3R5cGUuc3dhcDMyPWZ1bmN0aW9uKCl7dmFyIHR0PXRoaXMubGVuZ3RoO2lmKHR0JTQhPTApdGhyb3cgbmV3IFJh''@;'; put 'put ''bmdlRXJyb3IoIkJ1ZmZlciBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMi1iaXRzIik7Zm9yKHZhciBldD0wO2V0PHR0O2V0Kz00KUFlKHRoaXMsZXQsZXQrMyksQWUodGhpcyxldCsxLGV0KzIpO3JldHVybiB0aGlzfSxqLnByb3RvdHlwZS5zd2FwNjQ9ZnVuY3Rpb24oKXt2YXIgdHQ9''@;'; put 'put ''dGhpcy5sZW5ndGg7aWYodHQlOCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDY0LWJpdHMiKTtmb3IodmFyIGV0PTA7ZXQ8dHQ7ZXQrPTgpQWUodGhpcyxldCxldCs3KSxBZSh0aGlzLGV0KzEsZXQrNiksQWUodGhpcyxldCsyLGV0''@;'; put 'put ''KzUpLEFlKHRoaXMsZXQrMyxldCs0KTtyZXR1cm4gdGhpc30sai5wcm90b3R5cGUudG9Mb2NhbGVTdHJpbmc9ai5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdHQ9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT10dD8iIjowPT09YXJndW1lbnRzLmxlbmd0aD9lZSh0aGlzLDAsdHQp''@;'; put 'put ''OnZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sai5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHR0KXtpZighai5pc0J1ZmZlcih0dCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09dHR8fDA9PT1qLmNvbXBhcmUodGhpcyx0''@;'; put 'put ''dCl9LGoucHJvdG90eXBlLmluc3BlY3Q9ZnVuY3Rpb24oKXt2YXIgdHQ9IiIsZXQ9SmUuSU5TUEVDVF9NQVhfQllURVM7cmV0dXJuIHR0PXRoaXMudG9TdHJpbmcoImhleCIsMCxldCkucmVwbGFjZSgvKC57Mn0pL2csIiQxICIpLnRyaW0oKSx0aGlzLmxlbmd0aD5ldCYmKHR0Kz0iIC4uLiAi''@;'; put 'put ''KSwiPEJ1ZmZlciAiK3R0KyI+In0sRSYmKGoucHJvdG90eXBlW0VdPWoucHJvdG90eXBlLmluc3BlY3QpLGoucHJvdG90eXBlLmNvbXBhcmU9ZnVuY3Rpb24odHQsZXQsbHQsTHQsQ3Qpe2lmKGh0KHR0LFVpbnQ4QXJyYXkpJiYodHQ9ai5mcm9tKHR0LHR0Lm9mZnNldCx0dC5ieXRlTGVuZ3Ro''@;'; put 'put ''KSksIWouaXNCdWZmZXIodHQpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAidGFyZ2V0IiBhcmd1bWVudCBtdXN0IGJlIG9uZSBvZiB0eXBlIEJ1ZmZlciBvciBVaW50OEFycmF5LiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIHR0KTtpZih2b2lkIDA9PT1ldCYmKGV0PTApLHZvaWQgMD09PWx0''@;'; put 'put ''JiYobHQ9dHQ/dHQubGVuZ3RoOjApLHZvaWQgMD09PUx0JiYoTHQ9MCksdm9pZCAwPT09Q3QmJihDdD10aGlzLmxlbmd0aCksZXQ8MHx8bHQ+dHQubGVuZ3RofHxMdDwwfHxDdD50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYoTHQ+PUN0''@;'; put 'put ''JiZldD49bHQpcmV0dXJuIDA7aWYoTHQ+PUN0KXJldHVybi0xO2lmKGV0Pj1sdClyZXR1cm4gMTtpZih0aGlzPT09dHQpcmV0dXJuIDA7Zm9yKHZhciBmdD0oQ3Q+Pj49MCktKEx0Pj4+PTApLEh0PShsdD4+Pj0wKS0oZXQ+Pj49MCksR2U9TWF0aC5taW4oZnQsSHQpLFVlPXRoaXMuc2xpY2Uo''@;'; put 'put ''THQsQ3QpLHl0PXR0LnNsaWNlKGV0LGx0KSxqdD0wO2p0PEdlOysranQpaWYoVWVbanRdIT09eXRbanRdKXtmdD1VZVtqdF0sSHQ9eXRbanRdO2JyZWFrfXJldHVybiBmdDxIdD8tMTpIdDxmdD8xOjB9LGoucHJvdG90eXBlLmluY2x1ZGVzPWZ1bmN0aW9uKHR0LGV0LGx0KXtyZXR1cm4tMSE9''@;'; put 'put ''PXRoaXMuaW5kZXhPZih0dCxldCxsdCl9LGoucHJvdG90eXBlLmluZGV4T2Y9ZnVuY3Rpb24odHQsZXQsbHQpe3JldHVybiBrZSh0aGlzLHR0LGV0LGx0LCEwKX0sai5wcm90b3R5cGUubGFzdEluZGV4T2Y9ZnVuY3Rpb24odHQsZXQsbHQpe3JldHVybiBrZSh0aGlzLHR0LGV0LGx0LCExKX0s''@;'; put 'put ''ai5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odHQsZXQsbHQsTHQpe2lmKHZvaWQgMD09PWV0KUx0PSJ1dGY4IixsdD10aGlzLmxlbmd0aCxldD0wO2Vsc2UgaWYodm9pZCAwPT09bHQmJiJzdHJpbmciPT10eXBlb2YgZXQpTHQ9ZXQsbHQ9dGhpcy5sZW5ndGgsZXQ9MDtlbHNle2lmKCFpc0Zp''@;'; put 'put ''bml0ZShldCkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO2V0Pj4+PTAsaXNGaW5pdGUobHQpPyhsdD4+Pj0wLHZvaWQgMD09PUx0JiYoTHQ9InV0ZjgiKSk6KEx0PWx0LGx0''@;'; put 'put ''PXZvaWQgMCl9dmFyIEN0PXRoaXMubGVuZ3RoLWV0O2lmKCh2b2lkIDA9PT1sdHx8bHQ+Q3QpJiYobHQ9Q3QpLHR0Lmxlbmd0aD4wJiYobHQ8MHx8ZXQ8MCl8fGV0PnRoaXMubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIHdyaXRlIG91dHNpZGUgYnVmZmVyIGJvdW5k''@;'; put 'put ''cyIpO0x0fHwoTHQ9InV0ZjgiKTtmb3IodmFyIGZ0PSExOzspc3dpdGNoKEx0KXtjYXNlImhleCI6cmV0dXJuIEllKHRoaXMsdHQsZXQsbHQpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIFRlKHRoaXMsdHQsZXQsbHQpO2Nhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFy''@;'; put 'put ''eSI6cmV0dXJuIE1lKHRoaXMsdHQsZXQsbHQpO2Nhc2UiYmFzZTY0IjpyZXR1cm4gaGUodGhpcyx0dCxldCxsdCk7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBPKHRoaXMsdHQsZXQsbHQpO2RlZmF1bHQ6aWYoZnQpdGhyb3cgbmV3''@;'; put 'put ''IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitMdCk7THQ9KCIiK0x0KS50b0xvd2VyQ2FzZSgpLGZ0PSEwfX0sai5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IkJ1ZmZlciIsZGF0YTpBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9hcnJ8fHRo''@;'; put 'put ''aXMsMCl9fSxqLnByb3RvdHlwZS5zbGljZT1mdW5jdGlvbih0dCxldCl7dmFyIGx0PXRoaXMubGVuZ3RoOyh0dD1+fnR0KTwwPyh0dCs9bHQpPDAmJih0dD0wKTp0dD5sdCYmKHR0PWx0KSwoZXQ9dm9pZCAwPT09ZXQ/bHQ6fn5ldCk8MD8oZXQrPWx0KTwwJiYoZXQ9MCk6ZXQ+bHQmJihldD1s''@;'; put 'put ''dCksZXQ8dHQmJihldD10dCk7dmFyIEx0PXRoaXMuc3ViYXJyYXkodHQsZXQpO3JldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YoTHQsai5wcm90b3R5cGUpLEx0fSxqLnByb3RvdHlwZS5yZWFkVWludExFPWoucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odHQsZXQsbHQpe3R0Pj4+''@;'; put 'put ''PTAsZXQ+Pj49MCxsdHx8Rih0dCxldCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBMdD10aGlzW3R0XSxDdD0xLGZ0PTA7KytmdDxldCYmKEN0Kj0yNTYpOylMdCs9dGhpc1t0dCtmdF0qQ3Q7cmV0dXJuIEx0fSxqLnByb3RvdHlwZS5yZWFkVWludEJFPWoucHJvdG90eXBlLnJlYWRVSW50QkU9ZnVu''@;'; put 'put ''Y3Rpb24odHQsZXQsbHQpe3R0Pj4+PTAsZXQ+Pj49MCxsdHx8Rih0dCxldCx0aGlzLmxlbmd0aCk7Zm9yKHZhciBMdD10aGlzW3R0Ky0tZXRdLEN0PTE7ZXQ+MCYmKEN0Kj0yNTYpOylMdCs9dGhpc1t0dCstLWV0XSpDdDtyZXR1cm4gTHR9LGoucHJvdG90eXBlLnJlYWRVaW50OD1qLnByb3Rv''@;'; put 'put ''dHlwZS5yZWFkVUludDg9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDEsdGhpcy5sZW5ndGgpLHRoaXNbdHRdfSxqLnByb3RvdHlwZS5yZWFkVWludDE2TEU9ai5wcm90b3R5cGUucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8''@;'; put 'put ''Rih0dCwyLHRoaXMubGVuZ3RoKSx0aGlzW3R0XXx0aGlzW3R0KzFdPDw4fSxqLnByb3RvdHlwZS5yZWFkVWludDE2QkU9ai5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCwyLHRoaXMubGVuZ3RoKSx0aGlzW3R0XTw8OHx0aGlz''@;'; put 'put ''W3R0KzFdfSxqLnByb3RvdHlwZS5yZWFkVWludDMyTEU9ai5wcm90b3R5cGUucmVhZFVJbnQzMkxFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw0LHRoaXMubGVuZ3RoKSwodGhpc1t0dF18dGhpc1t0dCsxXTw8OHx0aGlzW3R0KzJdPDwxNikrMTY3NzcyMTYqdGhp''@;'; put 'put ''c1t0dCszXX0sai5wcm90b3R5cGUucmVhZFVpbnQzMkJFPWoucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsNCx0aGlzLmxlbmd0aCksMTY3NzcyMTYqdGhpc1t0dF0rKHRoaXNbdHQrMV08PDE2fHRoaXNbdHQrMl08PDh8dGhp''@;'; put 'put ''c1t0dCszXSl9LGoucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbih0dCxldCxsdCl7dHQ+Pj49MCxldD4+Pj0wLGx0fHxGKHR0LGV0LHRoaXMubGVuZ3RoKTtmb3IodmFyIEx0PXRoaXNbdHRdLEN0PTEsZnQ9MDsrK2Z0PGV0JiYoQ3QqPTI1Nik7KUx0Kz10aGlzW3R0K2Z0XSpDdDtyZXR1''@;'; put 'put ''cm4gTHQ+PShDdCo9MTI4KSYmKEx0LT1NYXRoLnBvdygyLDgqZXQpKSxMdH0sai5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHR0LGV0LGx0KXt0dD4+Pj0wLGV0Pj4+PTAsbHR8fEYodHQsZXQsdGhpcy5sZW5ndGgpO2Zvcih2YXIgTHQ9ZXQsQ3Q9MSxmdD10aGlzW3R0Ky0tTHRdO0x0''@;'; put 'put ''PjAmJihDdCo9MjU2KTspZnQrPXRoaXNbdHQrLS1MdF0qQ3Q7cmV0dXJuIGZ0Pj0oQ3QqPTEyOCkmJihmdC09TWF0aC5wb3coMiw4KmV0KSksZnR9LGoucHJvdG90eXBlLnJlYWRJbnQ4PWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCwxLHRoaXMubGVuZ3RoKSwxMjgm''@;'; put 'put ''dGhpc1t0dF0/LTEqKDI1NS10aGlzW3R0XSsxKTp0aGlzW3R0XX0sai5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24odHQsZXQpe3R0Pj4+PTAsZXR8fEYodHQsMix0aGlzLmxlbmd0aCk7dmFyIGx0PXRoaXNbdHRdfHRoaXNbdHQrMV08PDg7cmV0dXJuIDMyNzY4Jmx0PzQyOTQ5MDE3''@;'; put 'put ''NjB8bHQ6bHR9LGoucHJvdG90eXBlLnJlYWRJbnQxNkJFPWZ1bmN0aW9uKHR0LGV0KXt0dD4+Pj0wLGV0fHxGKHR0LDIsdGhpcy5sZW5ndGgpO3ZhciBsdD10aGlzW3R0KzFdfHRoaXNbdHRdPDw4O3JldHVybiAzMjc2OCZsdD80Mjk0OTAxNzYwfGx0Omx0fSxqLnByb3RvdHlwZS5yZWFkSW50''@;'; put 'put ''MzJMRT1mdW5jdGlvbih0dCxldCl7cmV0dXJuIHR0Pj4+PTAsZXR8fEYodHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0dF18dGhpc1t0dCsxXTw8OHx0aGlzW3R0KzJdPDwxNnx0aGlzW3R0KzNdPDwyNH0sai5wcm90b3R5cGUucmVhZEludDMyQkU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+''@;'; put 'put ''Pj0wLGV0fHxGKHR0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdHRdPDwyNHx0aGlzW3R0KzFdPDwxNnx0aGlzW3R0KzJdPDw4fHRoaXNbdHQrM119LGoucHJvdG90eXBlLnJlYWRGbG9hdExFPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gdHQ+Pj49MCxldHx8Rih0dCw0LHRoaXMubGVuZ3RoKSxCLnJl''@;'; put 'put ''YWQodGhpcyx0dCwhMCwyMyw0KX0sai5wcm90b3R5cGUucmVhZEZsb2F0QkU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDQsdGhpcy5sZW5ndGgpLEIucmVhZCh0aGlzLHR0LCExLDIzLDQpfSxqLnByb3RvdHlwZS5yZWFkRG91YmxlTEU9ZnVuY3Rpb24odHQsZXQp''@;'; put 'put ''e3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDgsdGhpcy5sZW5ndGgpLEIucmVhZCh0aGlzLHR0LCEwLDUyLDgpfSxqLnByb3RvdHlwZS5yZWFkRG91YmxlQkU9ZnVuY3Rpb24odHQsZXQpe3JldHVybiB0dD4+Pj0wLGV0fHxGKHR0LDgsdGhpcy5sZW5ndGgpLEIucmVhZCh0aGlzLHR0LCExLDUy''@;'; put 'put ''LDgpfSxqLnByb3RvdHlwZS53cml0ZVVpbnRMRT1qLnByb3RvdHlwZS53cml0ZVVJbnRMRT1mdW5jdGlvbih0dCxldCxsdCxMdCl7dHQ9K3R0LGV0Pj4+PTAsbHQ+Pj49MCxMdHx8eWUodGhpcyx0dCxldCxsdCxNYXRoLnBvdygyLDgqbHQpLTEsMCk7dmFyIGZ0PTEsSHQ9MDtmb3IodGhpc1tl''@;'; put 'put ''dF09MjU1JnR0OysrSHQ8bHQmJihmdCo9MjU2KTspdGhpc1tldCtIdF09dHQvZnQmMjU1O3JldHVybiBldCtsdH0sai5wcm90b3R5cGUud3JpdGVVaW50QkU9ai5wcm90b3R5cGUud3JpdGVVSW50QkU9ZnVuY3Rpb24odHQsZXQsbHQsTHQpe3R0PSt0dCxldD4+Pj0wLGx0Pj4+PTAsTHR8fHll''@;'; put 'put ''KHRoaXMsdHQsZXQsbHQsTWF0aC5wb3coMiw4Kmx0KS0xLDApO3ZhciBmdD1sdC0xLEh0PTE7Zm9yKHRoaXNbZXQrZnRdPTI1NSZ0dDstLWZ0Pj0wJiYoSHQqPTI1Nik7KXRoaXNbZXQrZnRdPXR0L0h0JjI1NTtyZXR1cm4gZXQrbHR9LGoucHJvdG90eXBlLndyaXRlVWludDg9ai5wcm90b3R5''@;'; put 'put ''cGUud3JpdGVVSW50OD1mdW5jdGlvbih0dCxldCxsdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGx0fHx5ZSh0aGlzLHR0LGV0LDEsMjU1LDApLHRoaXNbZXRdPTI1NSZ0dCxldCsxfSxqLnByb3RvdHlwZS53cml0ZVVpbnQxNkxFPWoucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24o''@;'; put 'put ''dHQsZXQsbHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxsdHx8eWUodGhpcyx0dCxldCwyLDY1NTM1LDApLHRoaXNbZXRdPTI1NSZ0dCx0aGlzW2V0KzFdPXR0Pj4+OCxldCsyfSxqLnByb3RvdHlwZS53cml0ZVVpbnQxNkJFPWoucHJvdG90eXBlLndyaXRlVUludDE2QkU9ZnVuY3Rpb24odHQs''@;'; put 'put ''ZXQsbHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxsdHx8eWUodGhpcyx0dCxldCwyLDY1NTM1LDApLHRoaXNbZXRdPXR0Pj4+OCx0aGlzW2V0KzFdPTI1NSZ0dCxldCsyfSxqLnByb3RvdHlwZS53cml0ZVVpbnQzMkxFPWoucHJvdG90eXBlLndyaXRlVUludDMyTEU9ZnVuY3Rpb24odHQsZXQs''@;'; put 'put ''bHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxsdHx8eWUodGhpcyx0dCxldCw0LDQyOTQ5NjcyOTUsMCksdGhpc1tldCszXT10dD4+PjI0LHRoaXNbZXQrMl09dHQ+Pj4xNix0aGlzW2V0KzFdPXR0Pj4+OCx0aGlzW2V0XT0yNTUmdHQsZXQrNH0sai5wcm90b3R5cGUud3JpdGVVaW50MzJCRT1q''@;'; put 'put ''LnByb3RvdHlwZS53cml0ZVVJbnQzMkJFPWZ1bmN0aW9uKHR0LGV0LGx0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsbHR8fHllKHRoaXMsdHQsZXQsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZXRdPXR0Pj4+MjQsdGhpc1tldCsxXT10dD4+PjE2LHRoaXNbZXQrMl09dHQ+Pj44LHRoaXNbZXQrM109''@;'; put 'put ''MjU1JnR0LGV0KzR9LGoucHJvdG90eXBlLndyaXRlSW50TEU9ZnVuY3Rpb24odHQsZXQsbHQsTHQpe2lmKHR0PSt0dCxldD4+Pj0wLCFMdCl7dmFyIEN0PU1hdGgucG93KDIsOCpsdC0xKTt5ZSh0aGlzLHR0LGV0LGx0LEN0LTEsLUN0KX12YXIgZnQ9MCxIdD0xLEdlPTA7Zm9yKHRoaXNbZXRd''@;'; put 'put ''PTI1NSZ0dDsrK2Z0PGx0JiYoSHQqPTI1Nik7KXR0PDAmJjA9PT1HZSYmMCE9PXRoaXNbZXQrZnQtMV0mJihHZT0xKSx0aGlzW2V0K2Z0XT0odHQvSHQ+PjApLUdlJjI1NTtyZXR1cm4gZXQrbHR9LGoucHJvdG90eXBlLndyaXRlSW50QkU9ZnVuY3Rpb24odHQsZXQsbHQsTHQpe2lmKHR0PSt0''@;'; put 'put ''dCxldD4+Pj0wLCFMdCl7dmFyIEN0PU1hdGgucG93KDIsOCpsdC0xKTt5ZSh0aGlzLHR0LGV0LGx0LEN0LTEsLUN0KX12YXIgZnQ9bHQtMSxIdD0xLEdlPTA7Zm9yKHRoaXNbZXQrZnRdPTI1NSZ0dDstLWZ0Pj0wJiYoSHQqPTI1Nik7KXR0PDAmJjA9PT1HZSYmMCE9PXRoaXNbZXQrZnQrMV0m''@;'; put 'put ''JihHZT0xKSx0aGlzW2V0K2Z0XT0odHQvSHQ+PjApLUdlJjI1NTtyZXR1cm4gZXQrbHR9LGoucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbih0dCxldCxsdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGx0fHx5ZSh0aGlzLHR0LGV0LDEsMTI3LC0xMjgpLHR0PDAmJih0dD0yNTUrdHQrMSks''@;'; put 'put ''dGhpc1tldF09MjU1JnR0LGV0KzF9LGoucHJvdG90eXBlLndyaXRlSW50MTZMRT1mdW5jdGlvbih0dCxldCxsdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGx0fHx5ZSh0aGlzLHR0LGV0LDIsMzI3NjcsLTMyNzY4KSx0aGlzW2V0XT0yNTUmdHQsdGhpc1tldCsxXT10dD4+PjgsZXQrMn0sai5w''@;'; put 'put ''cm90b3R5cGUud3JpdGVJbnQxNkJFPWZ1bmN0aW9uKHR0LGV0LGx0KXtyZXR1cm4gdHQ9K3R0LGV0Pj4+PTAsbHR8fHllKHRoaXMsdHQsZXQsMiwzMjc2NywtMzI3NjgpLHRoaXNbZXRdPXR0Pj4+OCx0aGlzW2V0KzFdPTI1NSZ0dCxldCsyfSxqLnByb3RvdHlwZS53cml0ZUludDMyTEU9ZnVu''@;'; put 'put ''Y3Rpb24odHQsZXQsbHQpe3JldHVybiB0dD0rdHQsZXQ+Pj49MCxsdHx8eWUodGhpcyx0dCxldCw0LDIxNDc0ODM2NDcsLTIxNDc0ODM2NDgpLHRoaXNbZXRdPTI1NSZ0dCx0aGlzW2V0KzFdPXR0Pj4+OCx0aGlzW2V0KzJdPXR0Pj4+MTYsdGhpc1tldCszXT10dD4+PjI0LGV0KzR9LGoucHJv''@;'; put 'put ''dG90eXBlLndyaXRlSW50MzJCRT1mdW5jdGlvbih0dCxldCxsdCl7cmV0dXJuIHR0PSt0dCxldD4+Pj0wLGx0fHx5ZSh0aGlzLHR0LGV0LDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdHQ8MCYmKHR0PTQyOTQ5NjcyOTUrdHQrMSksdGhpc1tldF09dHQ+Pj4yNCx0aGlzW2V0KzFdPXR0Pj4+''@;'; put 'put ''MTYsdGhpc1tldCsyXT10dD4+PjgsdGhpc1tldCszXT0yNTUmdHQsZXQrNH0sai5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHR0LGV0LGx0KXtyZXR1cm4gRGUodGhpcyx0dCxldCwhMCxsdCl9LGoucHJvdG90eXBlLndyaXRlRmxvYXRCRT1mdW5jdGlvbih0dCxldCxsdCl7cmV0''@;'; put 'put ''dXJuIERlKHRoaXMsdHQsZXQsITEsbHQpfSxqLnByb3RvdHlwZS53cml0ZURvdWJsZUxFPWZ1bmN0aW9uKHR0LGV0LGx0KXtyZXR1cm4gUGUodGhpcyx0dCxldCwhMCxsdCl9LGoucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odHQsZXQsbHQpe3JldHVybiBQZSh0aGlzLHR0LGV0''@;'; put 'put ''LCExLGx0KX0sai5wcm90b3R5cGUuY29weT1mdW5jdGlvbih0dCxldCxsdCxMdCl7aWYoIWouaXNCdWZmZXIodHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKGx0fHwobHQ9MCksIUx0JiYwIT09THQmJihMdD10aGlzLmxlbmd0aCksZXQ+''@;'; put 'put ''PXR0Lmxlbmd0aCYmKGV0PXR0Lmxlbmd0aCksZXR8fChldD0wKSxMdD4wJiZMdDxsdCYmKEx0PWx0KSxMdD09PWx0fHwwPT09dHQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoZXQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigidGFyZ2V0U3RhcnQgb3V0IG9mIGJvdW5kcyIp''@;'; put 'put ''O2lmKGx0PDB8fGx0Pj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYoTHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigic291cmNlRW5kIG91dCBvZiBib3VuZHMiKTtMdD50aGlzLmxlbmd0aCYmKEx0PXRoaXMubGVuZ3RoKSx0dC5sZW5n''@;'; put 'put ''dGgtZXQ8THQtbHQmJihMdD10dC5sZW5ndGgtZXQrbHQpO3ZhciBDdD1MdC1sdDtyZXR1cm4gdGhpcz09PXR0JiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbj90aGlzLmNvcHlXaXRoaW4oZXQsbHQsTHQpOlVpbnQ4QXJyYXkucHJvdG90eXBlLnNl''@;'; put 'put ''dC5jYWxsKHR0LHRoaXMuc3ViYXJyYXkobHQsTHQpLGV0KSxDdH0sai5wcm90b3R5cGUuZmlsbD1mdW5jdGlvbih0dCxldCxsdCxMdCl7aWYoInN0cmluZyI9PXR5cGVvZiB0dCl7aWYoInN0cmluZyI9PXR5cGVvZiBldD8oTHQ9ZXQsZXQ9MCxsdD10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5''@;'; put 'put ''cGVvZiBsdCYmKEx0PWx0LGx0PXRoaXMubGVuZ3RoKSx2b2lkIDAhPT1MdCYmInN0cmluZyIhPXR5cGVvZiBMdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBMdCYmIWouaXNFbmNvZGluZyhMdCkpdGhyb3cgbmV3''@;'; put 'put ''IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitMdCk7aWYoMT09PXR0Lmxlbmd0aCl7dmFyIEN0PXR0LmNoYXJDb2RlQXQoMCk7KCJ1dGY4Ij09PUx0JiZDdDwxMjh8fCJsYXRpbjEiPT09THQpJiYodHQ9Q3QpfX1lbHNlIm51bWJlciI9PXR5cGVvZiB0dD90dCY9MjU1OiJib29sZWFu''@;'; put 'put ''Ij09dHlwZW9mIHR0JiYodHQ9TnVtYmVyKHR0KSk7aWYoZXQ8MHx8dGhpcy5sZW5ndGg8ZXR8fHRoaXMubGVuZ3RoPGx0KXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihsdDw9ZXQpcmV0dXJuIHRoaXM7dmFyIGZ0O2lmKGV0Pj4+PTAsbHQ9dm9pZCAwPT09''@;'; put 'put ''bHQ/dGhpcy5sZW5ndGg6bHQ+Pj4wLHR0fHwodHQ9MCksIm51bWJlciI9PXR5cGVvZiB0dClmb3IoZnQ9ZXQ7ZnQ8bHQ7KytmdCl0aGlzW2Z0XT10dDtlbHNle3ZhciBIdD1qLmlzQnVmZmVyKHR0KT90dDpqLmZyb20odHQsTHQpLEdlPUh0Lmxlbmd0aDtpZigwPT09R2UpdGhyb3cgbmV3IFR5''@;'; put 'put ''cGVFcnJvcignVGhlIHZhbHVlICInK3R0KyciIGlzIGludmFsaWQgZm9yIGFyZ3VtZW50ICJ2YWx1ZSInKTtmb3IoZnQ9MDtmdDxsdC1ldDsrK2Z0KXRoaXNbZnQrZXRdPUh0W2Z0JUdlXX1yZXR1cm4gdGhpc307dmFyIFFlPS9bXisvMC05QS1aYS16LV9dL2c7ZnVuY3Rpb24gZ3QoX3QsdHQp''@;'; put 'put ''e3R0PXR0fHwxLzA7Zm9yKHZhciBldCxsdD1fdC5sZW5ndGgsTHQ9bnVsbCxDdD1bXSxmdD0wO2Z0PGx0OysrZnQpe2lmKChldD1fdC5jaGFyQ29kZUF0KGZ0KSk+NTUyOTUmJmV0PDU3MzQ0KXtpZighTHQpe2lmKGV0PjU2MzE5KXsodHQtPTMpPi0xJiZDdC5wdXNoKDIzOSwxOTEsMTg5KTtj''@;'; put 'put ''b250aW51ZX1pZihmdCsxPT09bHQpeyh0dC09Myk+LTEmJkN0LnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfUx0PWV0O2NvbnRpbnVlfWlmKGV0PDU2MzIwKXsodHQtPTMpPi0xJiZDdC5wdXNoKDIzOSwxOTEsMTg5KSxMdD1ldDtjb250aW51ZX1ldD02NTUzNisoTHQtNTUyOTY8PDEwfGV0''@;'; put 'put ''LTU2MzIwKX1lbHNlIEx0JiYodHQtPTMpPi0xJiZDdC5wdXNoKDIzOSwxOTEsMTg5KTtpZihMdD1udWxsLGV0PDEyOCl7aWYoKHR0LT0xKTwwKWJyZWFrO0N0LnB1c2goZXQpfWVsc2UgaWYoZXQ8MjA0OCl7aWYoKHR0LT0yKTwwKWJyZWFrO0N0LnB1c2goZXQ+PjZ8MTkyLDYzJmV0fDEyOCl9''@;'; put 'put ''ZWxzZSBpZihldDw2NTUzNil7aWYoKHR0LT0zKTwwKWJyZWFrO0N0LnB1c2goZXQ+PjEyfDIyNCxldD4+NiY2M3wxMjgsNjMmZXR8MTI4KX1lbHNle2lmKCEoZXQ8MTExNDExMikpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIGNvZGUgcG9pbnQiKTtpZigodHQtPTQpPDApYnJlYWs7Q3QucHVz''@;'; put 'put ''aChldD4+MTh8MjQwLGV0Pj4xMiY2M3wxMjgsZXQ+PjYmNjN8MTI4LDYzJmV0fDEyOCl9fXJldHVybiBDdH1mdW5jdGlvbiB2dChfdCl7cmV0dXJuIG1lLnRvQnl0ZUFycmF5KGZ1bmN0aW9uICRlKF90KXtpZigoX3Q9KF90PV90LnNwbGl0KCI9IilbMF0pLnRyaW0oKS5yZXBsYWNlKFFlLCIi''@;'; put 'put ''KSkubGVuZ3RoPDIpcmV0dXJuIiI7Zm9yKDtfdC5sZW5ndGglNCE9MDspX3QrPSI9IjtyZXR1cm4gX3R9KF90KSl9ZnVuY3Rpb24gQXQoX3QsdHQsZXQsbHQpe2Zvcih2YXIgTHQ9MDtMdDxsdCYmIShMdCtldD49dHQubGVuZ3RofHxMdD49X3QubGVuZ3RoKTsrK0x0KXR0W0x0K2V0XT1fdFtM''@;'; put 'put ''dF07cmV0dXJuIEx0fWZ1bmN0aW9uIGh0KF90LHR0KXtyZXR1cm4gX3QgaW5zdGFuY2VvZiB0dHx8bnVsbCE9X3QmJm51bGwhPV90LmNvbnN0cnVjdG9yJiZudWxsIT1fdC5jb25zdHJ1Y3Rvci5uYW1lJiZfdC5jb25zdHJ1Y3Rvci5uYW1lPT09dHQubmFtZX1mdW5jdGlvbiBCdChfdCl7cmV0''@;'; put 'put ''dXJuIF90IT1fdH12YXIgb249ZnVuY3Rpb24oKXtmb3IodmFyIF90PSIwMTIzNDU2Nzg5YWJjZGVmIix0dD1uZXcgQXJyYXkoMjU2KSxldD0wO2V0PDE2OysrZXQpZm9yKHZhciBsdD0xNipldCxMdD0wO0x0PDE2OysrTHQpdHRbbHQrTHRdPV90W2V0XStfdFtMdF07cmV0dXJuIHR0fSgpfSw2''@;'; put 'put ''MTA1MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MzUwMikuQnVmZmVyLEI9TCgyOTUpLlRyYW5zZm9ybSxFPUwoNzMwNTQpLnM7ZnVuY3Rpb24gVShRKXtCLmNhbGwodGhpcyksdGhpcy5oYXNoTW9kZT0ic3RyaW5nIj09dHlwZW9mIFEsdGhpcy5oYXNoTW9kZT90aGlzW1FdPXRoaXMuX2ZpbmFs''@;'; put 'put ''T3JEaWdlc3Q6dGhpcy5maW5hbD10aGlzLl9maW5hbE9yRGlnZXN0LHRoaXMuX2ZpbmFsJiYodGhpcy5fX2ZpbmFsPXRoaXMuX2ZpbmFsLHRoaXMuX2ZpbmFsPW51bGwpLHRoaXMuX2RlY29kZXI9bnVsbCx0aGlzLl9lbmNvZGluZz1udWxsfUwoODM4OTQpKFUsQiksVS5wcm90b3R5cGUudXBk''@;'; put 'put ''YXRlPWZ1bmN0aW9uKFEsaixyZSl7InN0cmluZyI9PXR5cGVvZiBRJiYoUT1tZS5mcm9tKFEsaikpO3ZhciBhZT10aGlzLl91cGRhdGUoUSk7cmV0dXJuIHRoaXMuaGFzaE1vZGU/dGhpczoocmUmJihhZT10aGlzLl90b1N0cmluZyhhZSxyZSkpLGFlKX0sVS5wcm90b3R5cGUuc2V0QXV0b1Bh''@;'; put 'put ''ZGRpbmc9ZnVuY3Rpb24oKXt9LFUucHJvdG90eXBlLmdldEF1dGhUYWc9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBnZXQgYXV0aCB0YWcgaW4gdW5zdXBwb3J0ZWQgc3RhdGUiKX0sVS5wcm90b3R5cGUuc2V0QXV0aFRhZz1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJv''@;'; put 'put ''cigidHJ5aW5nIHRvIHNldCBhdXRoIHRhZyBpbiB1bnN1cHBvcnRlZCBzdGF0ZSIpfSxVLnByb3RvdHlwZS5zZXRBQUQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoInRyeWluZyB0byBzZXQgYWFkIGluIHVuc3VwcG9ydGVkIHN0YXRlIil9LFUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVu''@;'; put 'put ''Y3Rpb24oUSxqLHJlKXt2YXIgYWU7dHJ5e3RoaXMuaGFzaE1vZGU/dGhpcy5fdXBkYXRlKFEpOnRoaXMucHVzaCh0aGlzLl91cGRhdGUoUSkpfWNhdGNoKFkpe2FlPVl9ZmluYWxseXtyZShhZSl9fSxVLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oUSl7dmFyIGo7dHJ5e3RoaXMucHVzaCh0''@;'; put 'put ''aGlzLl9fZmluYWwoKSl9Y2F0Y2gocmUpe2o9cmV9UShqKX0sVS5wcm90b3R5cGUuX2ZpbmFsT3JEaWdlc3Q9ZnVuY3Rpb24oUSl7dmFyIGo9dGhpcy5fX2ZpbmFsKCl8fG1lLmFsbG9jKDApO3JldHVybiBRJiYoaj10aGlzLl90b1N0cmluZyhqLFEsITApKSxqfSxVLnByb3RvdHlwZS5fdG9T''@;'; put 'put ''dHJpbmc9ZnVuY3Rpb24oUSxqLHJlKXtpZih0aGlzLl9kZWNvZGVyfHwodGhpcy5fZGVjb2Rlcj1uZXcgRShqKSx0aGlzLl9lbmNvZGluZz1qKSx0aGlzLl9lbmNvZGluZyE9PWopdGhyb3cgbmV3IEVycm9yKCJjYW4ndCBzd2l0Y2ggZW5jb2RpbmdzIik7dmFyIGFlPXRoaXMuX2RlY29kZXIu''@;'; put 'put ''d3JpdGUoUSk7cmV0dXJuIHJlJiYoYWUrPXRoaXMuX2RlY29kZXIuZW5kKCkpLGFlfSxYZS5leHBvcnRzPVV9LDc0NzQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU3NzE1KSxCPUwoNDY0MjIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oail7cmV0dXJuIG5ldyBFZShqKX07dmFyIEU9e3NlY3AyNTZr''@;'; put 'put ''MTp7bmFtZToic2VjcDI1NmsxIixieXRlTGVuZ3RoOjMyfSxzZWNwMjI0cjE6e25hbWU6InAyMjQiLGJ5dGVMZW5ndGg6Mjh9LHByaW1lMjU2djE6e25hbWU6InAyNTYiLGJ5dGVMZW5ndGg6MzJ9LHByaW1lMTkydjE6e25hbWU6InAxOTIiLGJ5dGVMZW5ndGg6MjR9LGVkMjU1MTk6e25hbWU6''@;'; put 'put ''ImVkMjU1MTkiLGJ5dGVMZW5ndGg6MzJ9LHNlY3AzODRyMTp7bmFtZToicDM4NCIsYnl0ZUxlbmd0aDo0OH0sc2VjcDUyMXIxOntuYW1lOiJwNTIxIixieXRlTGVuZ3RoOjY2fX07ZnVuY3Rpb24gRWUoUSl7dGhpcy5jdXJ2ZVR5cGU9RVtRXSx0aGlzLmN1cnZlVHlwZXx8KHRoaXMuY3VydmVU''@;'; put 'put ''eXBlPXtuYW1lOlF9KSx0aGlzLmN1cnZlPW5ldyBtZS5lYyh0aGlzLmN1cnZlVHlwZS5uYW1lKSx0aGlzLmtleXM9dm9pZCAwfWZ1bmN0aW9uIFUoUSxqLHJlKXtBcnJheS5pc0FycmF5KFEpfHwoUT1RLnRvQXJyYXkoKSk7dmFyIGFlPW5ldyBCdWZmZXIoUSk7aWYocmUmJmFlLmxlbmd0aDxy''@;'; put 'put ''ZSl7dmFyIFk9bmV3IEJ1ZmZlcihyZS1hZS5sZW5ndGgpO1kuZmlsbCgwKSxhZT1CdWZmZXIuY29uY2F0KFtZLGFlXSl9cmV0dXJuIGo/YWUudG9TdHJpbmcoaik6YWV9RS5wMjI0PUUuc2VjcDIyNHIxLEUucDI1Nj1FLnNlY3AyNTZyMT1FLnByaW1lMjU2djEsRS5wMTkyPUUuc2VjcDE5MnIx''@;'; put 'put ''PUUucHJpbWUxOTJ2MSxFLnAzODQ9RS5zZWNwMzg0cjEsRS5wNTIxPUUuc2VjcDUyMXIxLEVlLnByb3RvdHlwZS5nZW5lcmF0ZUtleXM9ZnVuY3Rpb24oUSxqKXtyZXR1cm4gdGhpcy5rZXlzPXRoaXMuY3VydmUuZ2VuS2V5UGFpcigpLHRoaXMuZ2V0UHVibGljS2V5KFEsail9LEVlLnByb3Rv''@;'; put 'put ''dHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKFEsaixyZSl7cmV0dXJuIGo9anx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihRKXx8KFE9bmV3IEJ1ZmZlcihRLGopKSxVKHRoaXMuY3VydmUua2V5RnJvbVB1YmxpYyhRKS5nZXRQdWJsaWMoKS5tdWwodGhpcy5rZXlzLmdldFByaXZhdGUoKSku''@;'; put 'put ''Z2V0WCgpLHJlLHRoaXMuY3VydmVUeXBlLmJ5dGVMZW5ndGgpfSxFZS5wcm90b3R5cGUuZ2V0UHVibGljS2V5PWZ1bmN0aW9uKFEsail7dmFyIHJlPXRoaXMua2V5cy5nZXRQdWJsaWMoImNvbXByZXNzZWQiPT09aiwhMCk7cmV0dXJuImh5YnJpZCI9PT1qJiYocmVbMF09cmVbcmUubGVuZ3Ro''@;'; put 'put ''LTFdJTI/Nzo2KSxVKHJlLFEpfSxFZS5wcm90b3R5cGUuZ2V0UHJpdmF0ZUtleT1mdW5jdGlvbihRKXtyZXR1cm4gVSh0aGlzLmtleXMuZ2V0UHJpdmF0ZSgpLFEpfSxFZS5wcm90b3R5cGUuc2V0UHVibGljS2V5PWZ1bmN0aW9uKFEsail7cmV0dXJuIGo9anx8InV0ZjgiLEJ1ZmZlci5pc0J1''@;'; put 'put ''ZmZlcihRKXx8KFE9bmV3IEJ1ZmZlcihRLGopKSx0aGlzLmtleXMuX2ltcG9ydFB1YmxpYyhRKSx0aGlzfSxFZS5wcm90b3R5cGUuc2V0UHJpdmF0ZUtleT1mdW5jdGlvbihRLGope2o9anx8InV0ZjgiLEJ1ZmZlci5pc0J1ZmZlcihRKXx8KFE9bmV3IEJ1ZmZlcihRLGopKTt2YXIgcmU9bmV3''@;'; put 'put ''IEIoUSk7cmV0dXJuIHJlPXJlLnRvU3RyaW5nKDE2KSx0aGlzLmtleXM9dGhpcy5jdXJ2ZS5nZW5LZXlQYWlyKCksdGhpcy5rZXlzLl9pbXBvcnRQcml2YXRlKHJlKSx0aGlzfX0sNDY0MjI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBF''@;'; put 'put ''KGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBFZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1''@;'; put 'put ''Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5p''@;'; put 'put ''dChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg4''@;'; put 'put ''NjIzKS5CdWZmZXJ9Y2F0Y2goaGUpe31mdW5jdGlvbiBqKGhlLE8pe3ZhciB6PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJuIHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1bmN0aW9uIHJlKGhlLE8seil7dmFyIGVlPWooaGUseik7cmV0dXJuIHotMT49TyYm''@;'; put 'put ''KGVlfD1qKGhlLHotMSk8PDQpLGVlfWZ1bmN0aW9uIGFlKGhlLE8seixlZSl7Zm9yKHZhciBuZT0wLHg9TWF0aC5taW4oaGUubGVuZ3RoLHopLFA9TztQPHg7UCsrKXt2YXIgVj1oZS5jaGFyQ29kZUF0KFApLTQ4O25lKj1lZSxuZSs9Vj49NDk/Vi00OSsxMDpWPj0xNz9WLTE3KzEwOlZ9cmV0''@;'; put 'put ''dXJuIG5lfVUuaXNCTj1mdW5jdGlvbihPKXtyZXR1cm4gTyBpbnN0YW5jZW9mIFV8fG51bGwhPT1PJiYib2JqZWN0Ij09dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0FycmF5KE8ud29yZHMpfSxVLm1heD1mdW5jdGlvbihPLHope3JldHVy''@;'; put 'put ''biBPLmNtcCh6KT4wP086en0sVS5taW49ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik8MD9POnp9LFUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKE8seixlZSl7aWYoIm51bWJlciI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKE8seixlZSk7aWYoIm9iamVjdCI9PXR5''@;'; put 'put ''cGVvZiBPKXJldHVybiB0aGlzLl9pbml0QXJyYXkoTyx6LGVlKTsiaGV4Ij09PXomJih6PTE2KSxFKHo9PT0oMHx6KSYmej49MiYmejw9MzYpO3ZhciBuZT0wOyItIj09PShPPU8udG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYobmUrKyx0aGlzLm5lZ2F0aXZlPTEpLG5lPE8u''@;'; put 'put ''bGVuZ3RoJiYoMTY9PT16P3RoaXMuX3BhcnNlSGV4KE8sbmUsZWUpOih0aGlzLl9wYXJzZUJhc2UoTyx6LG5lKSwibGUiPT09ZWUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LGVlKSkpfSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihPLHosZWUpe088MCYmKHRo''@;'; put 'put ''aXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0xKTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEUoTzw5MDA3MTk5MjU0''@;'; put 'put ''NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PWVlJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixlZSl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTyx6LGVlKXtpZihFKCJu''@;'; put 'put ''dW1iZXIiPT10eXBlb2YgTy5sZW5ndGgpLE8ubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhp''@;'; put 'put ''cy5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT0wO3ZhciB4LFAsVj0wO2lmKCJiZSI9PT1lZSlmb3IobmU9Ty5sZW5ndGgtMSx4PTA7bmU+PTA7bmUtPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZS0xXTw8OHxPW25lLTJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFd''@;'; put 'put ''PVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtlbHNlIGlmKCJsZSI9PT1lZSlmb3IobmU9MCx4PTA7bmU8Ty5sZW5ndGg7bmUrPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZSsxXTw8OHxPW25lKzJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4''@;'; put 'put ''KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTyx6LGVlKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMud29yZHM9bmV3IEFycmF5''@;'; put 'put ''KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT0wO3ZhciBWLHg9MCxQPTA7aWYoImJlIj09PWVlKWZvcihuZT1PLmxlbmd0aC0xO25lPj16O25lLT0yKVY9cmUoTyx6LG5lKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+''@;'; put 'put ''PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7ZWxzZSBmb3IobmU9KE8ubGVuZ3RoLXopJTI9PTA/eisxOno7bmU8Ty5sZW5ndGg7bmUrPTIpVj1yZShPLHosbmUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9''@;'; put 'put ''MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oTyx6LGVlKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgbmU9MCx4PTE7eDw9NjcxMDg4NjM7eCo9eiluZSsrO25lLS0seD14L3p8MDtmb3IodmFyIFA9Ty5s''@;'; put 'put ''ZW5ndGgtZWUsVj1QJW5lLFQ9TWF0aC5taW4oUCxQLVYpK2VlLFM9MCxGPWVlO0Y8VDtGKz1uZSlTPWFlKE8sRixGK25lLHopLHRoaXMuaW11bG4oeCksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9PVYpe3ZhciB5ZT0xO2Zv''@;'; put 'put ''cihTPWFlKE8sRixPLmxlbmd0aCx6KSxGPTA7RjxWO0YrKyl5ZSo9ejt0aGlzLmltdWxuKHllKSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKX10aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTyl7Ty53b3Jkcz1u''@;'; put 'put ''ZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGg7eisrKU8ud29yZHNbel09dGhpcy53b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxlbmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsTy5yZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9u''@;'; put 'put ''KCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weShPKSxPfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigp''@;'; put 'put ''e2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBd''@;'; put 'put ''JiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxVLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwi''@;'; put 'put ''MDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwi''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw''@;'; put 'put ''IiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLFc9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2''@;'; put 'put ''LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2''@;'; put 'put ''LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBLKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlO3ZhciBlZT1oZS5sZW5ndGgrTy5sZW5n''@;'; put 'put ''dGh8MDt6Lmxlbmd0aD1lZSxlZT1lZS0xfDA7dmFyIG5lPTB8aGUud29yZHNbMF0seD0wfE8ud29yZHNbMF0sUD1uZSp4LFQ9UC82NzEwODg2NHwwO3oud29yZHNbMF09NjcxMDg4NjMmUDtmb3IodmFyIFM9MTtTPGVlO1MrKyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02NzEwODg2MyZULENlPU1h''@;'; put 'put ''dGgubWluKFMsTy5sZW5ndGgtMSksRGU9TWF0aC5tYXgoMCxTLWhlLmxlbmd0aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0obmU9MHxoZS53b3Jkc1tTLURlfDBdKSooeD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcxMDg4NjR8MCx5ZT02NzEwODg2MyZQO3oud29yZHNbU109MHx5ZSxUPTB8Rn1yZXR1''@;'; put 'put ''cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6ei5sZW5ndGgtLSx6LnN0cmlwKCl9VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTyx6KXt2YXIgZWU7aWYoej0wfHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJoZXgiPT09Tyl7ZWU9IiI7Zm9yKHZhciBuZT0wLHg9MCxQPTA7UDx0aGlzLmxlbmd0''@;'; put 'put ''aDtQKyspe3ZhciBWPXRoaXMud29yZHNbUF0sVD0oMTY3NzcyMTUmKFY8PG5lfHgpKS50b1N0cmluZygxNik7ZWU9MCE9KHg9Vj4+PjI0LW5lJjE2Nzc3MjE1KXx8UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQubGVuZ3RoXStUK2VlOlQrZWUsKG5lKz0yKT49MjYmJihuZS09MjYsUC0tKX1mb3Io''@;'; put 'put ''MCE9PXgmJihlZT14LnRvU3RyaW5nKDE2KStlZSk7ZWUubGVuZ3RoJXohPTA7KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0iLSIrZWUpLGVlfWlmKE89PT0oMHxPKSYmTz49MiYmTzw9MzYpe3ZhciBTPVdbT10sRj1OW09dO2VlPSIiO3ZhciB5ZT10aGlzLmNsb25l''@;'; put 'put ''KCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXllLmlzWmVybygpOyl7dmFyIENlPXllLm1vZG4oRikudG9TdHJpbmcoTyk7ZWU9KHllPXllLmlkaXZuKEYpKS5pc1plcm8oKT9DZStlZTpZW1MtQ2UubGVuZ3RoXStDZStlZX1mb3IodGhpcy5pc1plcm8oKSYmKGVlPSIwIitlZSk7ZWUubGVuZ3RoJXoh''@;'; put 'put ''PTA7KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0iLSIrZWUpLGVlfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5s''@;'; put 'put ''ZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP08rPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRv''@;'; put 'put ''IDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tTzpPfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKE8seil7cmV0dXJuIEUodm9pZCAwIT09USksdGhpcy50b0FycmF5TGlrZShR''@;'; put 'put ''LE8seil9LFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT10aGlzLmJ5dGVMZW5ndGgoKSx4PWVlfHxNYXRoLm1heCgxLG5lKTtF''@;'; put 'put ''KG5lPD14LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRSh4PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgVCxTLFA9ImxlIj09PXosVj1uZXcgTyh4KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtmb3IoUz0wOyFGLmlzWmVy''@;'; put 'put ''bygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW1NdPVQ7Zm9yKDtTPHg7UysrKVZbU109MH1lbHNle2ZvcihTPTA7Uzx4LW5lO1MrKylWW1NdPTA7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVlt4LVMtMV09VH1yZXR1cm4gVn0s''@;'; put 'put ''VS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKE8pe3JldHVybiAzMi1NYXRoLmNsejMyKE8pfTpmdW5jdGlvbihPKXt2YXIgej1PLGVlPTA7cmV0dXJuIHo+PTQwOTYmJihlZSs9MTMsej4+Pj0xMyksej49NjQmJihlZSs9Nyx6Pj4+PTcpLHo+PTgmJihlZSs9NCx6''@;'; put 'put ''Pj4+PTQpLHo+PTImJihlZSs9Mix6Pj4+PTIpLGVlK3p9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihPKXtpZigwPT09TylyZXR1cm4gMjY7dmFyIHo9TyxlZT0wO3JldHVybiAwPT0oODE5MSZ6KSYmKGVlKz0xMyx6Pj4+PTEzKSwwPT0oMTI3JnopJiYoZWUrPTcsej4+Pj03KSww''@;'; put 'put ''PT0oMTUmeikmJihlZSs9NCx6Pj4+PTQpLDA9PSgzJnopJiYoZWUrPTIsej4+Pj0yKSwwPT0oMSZ6KSYmZWUrKyxlZX0sVS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhp''@;'; put 'put ''cy5sZW5ndGgtMSkren0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgTz0wLHo9MDt6PHRoaXMubGVuZ3RoO3orKyl7dmFyIGVlPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbel0pO2lmKE8rPWVlLDI2IT09ZWUpYnJl''@;'; put 'put ''YWt9cmV0dXJuIE99LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihPKS5pYWRk''@;'; put 'put ''bigxKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnRlc3RuKE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5l''@;'; put 'put ''Z2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sVS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sVS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihP''@;'; put 'put ''KXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jkc1t6XT10aGlzLndvcmRzW3pdfE8ud29yZHNbel07cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0''@;'; put 'put ''aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1b3IoTyl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKE8pOk8uY2xvbmUoKS5pb3IodGhpcyl9LFUucHJvdG90''@;'; put 'put ''eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE8pe3ZhciB6O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/Tzp0aGlzO2Zvcih2YXIg''@;'; put 'put ''ZWU9MDtlZTx6Lmxlbmd0aDtlZSsrKXRoaXMud29yZHNbZWVdPXRoaXMud29yZHNbZWVdJk8ud29yZHNbZWVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5u''@;'; put 'put ''ZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9LFUucHJvdG90eXBlLmFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQodGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMu''@;'; put 'put ''bGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChPKTpPLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3ZhciB6LGVlO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyh6PXRoaXMsZWU9Tyk6KHo9TyxlZT10aGlzKTtmb3IodmFyIG5lPTA7bmU8''@;'; put 'put ''ZWUubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09ei53b3Jkc1tuZV1eZWUud29yZHNbbmVdO2lmKHRoaXMhPT16KWZvcig7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT16LndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3Rv''@;'; put 'put ''dHlwZS5peG9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKE8pOk8uY2xvbmUoKS5p''@;'; put 'put ''eG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5jbG9uZSgpLml1eG9yKHRoaXMpfSxVLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYm''@;'; put 'put ''Tz49MCk7dmFyIHo9MHxNYXRoLmNlaWwoTy8yNiksZWU9TyUyNjt0aGlzLl9leHBhbmQoeiksZWU+MCYmei0tO2Zvcih2YXIgbmU9MDtuZTx6O25lKyspdGhpcy53b3Jkc1tuZV09NjcxMDg4NjMmfnRoaXMud29yZHNbbmVdO3JldHVybiBlZT4wJiYodGhpcy53b3Jkc1tuZV09fnRoaXMud29y''@;'; put 'put ''ZHNbbmVdJjY3MTA4ODYzPj4yNi1lZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oTyl9LFUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oTyx6KXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIGVlPU8v''@;'; put 'put ''MjZ8MCxuZT1PJTI2O3JldHVybiB0aGlzLl9leHBhbmQoZWUrMSksdGhpcy53b3Jkc1tlZV09ej90aGlzLndvcmRzW2VlXXwxPDxuZTp0aGlzLndvcmRzW2VlXSZ+KDE8PG5lKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHosZWUsbmU7aWYoMCE9PXRo''@;'; put 'put ''aXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdhdGl2ZT0wLHo9dGhpcy5p''@;'; put 'put ''c3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyhlZT10aGlzLG5lPU8pOihlZT1PLG5lPXRoaXMpO2Zvcih2YXIgeD0wLFA9MDtQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxlZS53b3Jkc1tQXSkrKDB8bmUu''@;'; put 'put ''d29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zvcig7MCE9PXgmJlA8ZWUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfGVlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0aD1lZS5sZW5ndGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09eCx0aGlz''@;'; put 'put ''Lmxlbmd0aCsrO2Vsc2UgaWYoZWUhPT10aGlzKWZvcig7UDxlZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09ZWUud29yZHNbUF07cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXt2YXIgejtyZXR1cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhP''@;'; put 'put ''Lm5lZ2F0aXZlPTAsej10aGlzLnN1YihPKSxPLm5lZ2F0aXZlXj0xLHopOjA9PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHo9Ty5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHopOnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRk''@;'; put 'put ''KE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMpfSxVLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9dGhpcy5pYWRkKE8pO3JldHVybiBPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1''@;'; put 'put ''cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgbmUseCxlZT10aGlzLmNtcChPKTtpZigwPT09ZWUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO2VlPjA/KG5l''@;'; put 'put ''PXRoaXMseD1PKToobmU9Tyx4PXRoaXMpO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKylQPSh6PSgwfG5lLndvcmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2Zvcig7MCE9PVAmJlY8bmUubGVuZ3RoO1YrKylQPSh6PSgwfG5lLndv''@;'; put 'put ''cmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2lmKDA9PT1QJiZWPG5lLmxlbmd0aCYmbmUhPT10aGlzKWZvcig7VjxuZS5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09bmUud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFYpLG5l''@;'; put 'put ''IT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKE8pfTt2YXIgSj1mdW5jdGlvbihPLHosZWUpe3ZhciBULFMsRixuZT1PLndvcmRzLHg9ei53b3JkcyxQPWVlLndvcmRzLFY9''@;'; put 'put ''MCx5ZT0wfG5lWzBdLENlPTgxOTEmeWUsRGU9eWU+Pj4xMyxQZT0wfG5lWzFdLFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxndD0wfG5lWzJdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfG5lWzNdLEF0PTgxOTEmdnQsaHQ9dnQ+Pj4xMyxCdD0wfG5lWzRdLG9uPTgxOTEmQnQsX3Q9QnQ+Pj4x''@;'; put 'put ''Myx0dD0wfG5lWzVdLGV0PTgxOTEmdHQsbHQ9dHQ+Pj4xMyxMdD0wfG5lWzZdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfG5lWzddLEdlPTgxOTEmSHQsVWU9SHQ+Pj4xMyx5dD0wfG5lWzhdLGp0PTgxOTEmeXQsSnQ9eXQ+Pj4xMyxnbj0wfG5lWzldLGRuPTgxOTEmZ24seW49Z24+Pj4x''@;'; put 'put ''Myxsbj0wfHhbMF0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8eFsxXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZwcixBbj1wcj4+PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249''@;'; put 'put ''MHx4WzVdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfHhbNl0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMsa3I9MHx4WzhdLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxjbj0wfHhbOV0sX249ODE5MSZjbixHdD1jbj4+PjEzO2VlLm5lZ2F0''@;'; put 'put ''aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5ndGg9MTk7dmFyIGtuPShWKyhUPU1hdGguaW11bChDZSxObikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoQ2UsYm4pKStNYXRoLmltdWwoRGUsTm4pfDApKTw8MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERlLGJuKSkrKFM+Pj4xMyl8''@;'; put 'put ''MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFFlLE5uKSxTPShTPU1hdGguaW11bChRZSxibikpK01hdGguaW11bCgkZSxObil8MCxGPU1hdGguaW11bCgkZSxibik7dmFyIFZuPShWKyhUPVQrTWF0aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; put 'put ''LmltdWwoQ2UsWG4pfDApK01hdGguaW11bChEZSxzcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxYbil8MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYpfDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHd0LE5uKSxTPShTPU1hdGguaW11bCh3dCxibikpK01hdGguaW11bChtdCxO''@;'; put 'put ''bil8MCxGPU1hdGguaW11bChtdCxibiksVD1UK01hdGguaW11bChRZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhuKXwwKStNYXRoLmltdWwoJGUsc3IpfDAsRj1GK01hdGguaW11bCgkZSxYbil8MDt2YXIgZW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UseHIpfDApfDApKygoODE5MSYoUz0o''@;'; put 'put ''Uz1TK01hdGguaW11bChDZSxxdCl8MCkrTWF0aC5pbXVsKERlLHhyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHF0KXwwKSsoUz4+PjEzKXwwKSsoZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVsKEF0LGJuKSkrTWF0aC5p''@;'; put 'put ''bXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVsKGh0LGJuKSxUPVQrTWF0aC5pbXVsKHd0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsWG4pfDApK01hdGguaW11bChtdCxzcil8MCxGPUYrTWF0aC5pbXVsKG10LFhuKXwwLFQ9VCtNYXRoLmltdWwoUWUseHIpfDAsUz0oUz1TK01hdGguaW11bChR''@;'; put 'put ''ZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwLEY9RitNYXRoLmltdWwoJGUscXQpfDA7dmFyIEluPShWKyhUPVQrTWF0aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQW4pfDApK01hdGguaW11bChEZSxucil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGgu''@;'; put 'put ''aW11bChEZSxBbil8MCkrKFM+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5uKSxTPShTPU1hdGguaW11bChvbixibikpK01hdGguaW11bChfdCxObil8MCxGPU1hdGguaW11bChfdCxibiksVD1UK01hdGguaW11bChBdCxzcil8MCxTPShTPVMrTWF0''@;'; put 'put ''aC5pbXVsKEF0LFhuKXwwKStNYXRoLmltdWwoaHQsc3IpfDAsRj1GK01hdGguaW11bChodCxYbil8MCxUPVQrTWF0aC5pbXVsKHd0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxGPUYrTWF0aC5pbXVsKG10LHF0KXwwLFQ9VCtNYXRoLmltdWwo''@;'; put 'put ''UWUsbnIpfDAsUz0oUz1TK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwLEY9RitNYXRoLmltdWwoJGUsQW4pfDA7dmFyIEpuPShWKyhUPVQrTWF0aC5pbXVsKENlLFd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscG4pfDApK01hdGguaW11bChEZSxX''@;'; put 'put ''dCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxwbil8MCkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0LE5uKSxTPShTPU1hdGguaW11bChldCxibikpK01hdGguaW11bChsdCxObil8MCxGPU1hdGguaW11bChsdCxibiksVD1UK01h''@;'; put 'put ''dGguaW11bChvbixzcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLFhuKXwwKStNYXRoLmltdWwoX3Qsc3IpfDAsRj1GK01hdGguaW11bChfdCxYbil8MCxUPVQrTWF0aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxGPUYrTWF0aC5p''@;'; put 'put ''bXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmltdWwod3QsbnIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxBbil8MCkrTWF0aC5pbXVsKG10LG5yKXwwLEY9RitNYXRoLmltdWwobXQsQW4pfDAsVD1UK01hdGguaW11bChRZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBuKXwwKStNYXRoLmltdWwo''@;'; put 'put ''JGUsV3QpfDAsRj1GK01hdGguaW11bCgkZSxwbil8MDt2YXIgb3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsTnQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxzbil8MCkrTWF0aC5pbXVsKERlLE50KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHNuKXwwKSsoUz4+''@;'; put 'put ''PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQ3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXwwLEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQrTWF0aC5pbXVsKGV0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsWG4pfDApK01h''@;'; put 'put ''dGguaW11bChsdCxzcil8MCxGPUYrTWF0aC5pbXVsKGx0LFhuKXwwLFQ9VCtNYXRoLmltdWwob24seHIpfDAsUz0oUz1TK01hdGguaW11bChvbixxdCl8MCkrTWF0aC5pbXVsKF90LHhyKXwwLEY9RitNYXRoLmltdWwoX3QscXQpfDAsVD1UK01hdGguaW11bChBdCxucil8MCxTPShTPVMrTWF0''@;'; put 'put ''aC5pbXVsKEF0LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRj1GK01hdGguaW11bChodCxBbil8MCxUPVQrTWF0aC5pbXVsKHd0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxGPUYrTWF0aC5pbXVsKG10LHBuKXwwLFQ9VCtNYXRoLmltdWwo''@;'; put 'put ''UWUsTnQpfDAsUz0oUz1TK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwLEY9RitNYXRoLmltdWwoJGUsc24pfDA7dmFyIGdyPShWKyhUPVQrTWF0aC5pbXVsKENlLHduKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdG4pfDApK01hdGguaW11bChEZSx3''@;'; put 'put ''bil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx0bil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdlLE5uKSxTPShTPU1hdGguaW11bChHZSxibikpK01hdGguaW11bChVZSxObil8MCxGPU1hdGguaW11bChVZSxibiksVD1UK01h''@;'; put 'put ''dGguaW11bChDdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LFhuKXwwKStNYXRoLmltdWwoZnQsc3IpfDAsRj1GK01hdGguaW11bChmdCxYbil8MCxUPVQrTWF0aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChsdCx4cil8MCxGPUYrTWF0aC5p''@;'; put 'put ''bXVsKGx0LHF0KXwwLFQ9VCtNYXRoLmltdWwob24sbnIpfDAsUz0oUz1TK01hdGguaW11bChvbixBbil8MCkrTWF0aC5pbXVsKF90LG5yKXwwLEY9RitNYXRoLmltdWwoX3QsQW4pfDAsVD1UK01hdGguaW11bChBdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBuKXwwKStNYXRoLmltdWwo''@;'; put 'put ''aHQsV3QpfDAsRj1GK01hdGguaW11bChodCxwbil8MCxUPVQrTWF0aC5pbXVsKHd0LE50KXwwLFM9KFM9UytNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10LHNuKXwwLFQ9VCtNYXRoLmltdWwoUWUsd24pfDAsUz0oUz1TK01hdGguaW11bChR''@;'; put 'put ''ZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwLEY9RitNYXRoLmltdWwoJGUsdG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQm4pfDApK01hdGguaW11bChEZSxUcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGgu''@;'; put 'put ''aW11bChEZSxCbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5uKSxTPShTPU1hdGguaW11bChqdCxibikpK01hdGguaW11bChKdCxObil8MCxGPU1hdGguaW11bChKdCxibiksVD1UK01hdGguaW11bChHZSxzcil8MCxTPShTPVMrTWF0''@;'; put 'put ''aC5pbXVsKEdlLFhuKXwwKStNYXRoLmltdWwoVWUsc3IpfDAsRj1GK01hdGguaW11bChVZSxYbil8MCxUPVQrTWF0aC5pbXVsKEN0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXwwLFQ9VCtNYXRoLmltdWwo''@;'; put 'put ''ZXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChldCxBbil8MCkrTWF0aC5pbXVsKGx0LG5yKXwwLEY9RitNYXRoLmltdWwobHQsQW4pfDAsVD1UK01hdGguaW11bChvbixXdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRj1GK01hdGguaW11bChfdCxw''@;'; put 'put ''bil8MCxUPVQrTWF0aC5pbXVsKEF0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNuKXwwLFQ9VCtNYXRoLmltdWwod3Qsd24pfDAsUz0oUz1TK01hdGguaW11bCh3dCx0bil8MCkrTWF0aC5pbXVsKG10LHduKXww''@;'; put 'put ''LEY9RitNYXRoLmltdWwobXQsdG4pfDAsVD1UK01hdGguaW11bChRZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJuKXwwKStNYXRoLmltdWwoJGUsVHIpfDAsRj1GK01hdGguaW11bCgkZSxCbil8MDt2YXIgVnI9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDApfDApKygoODE5MSYoUz0o''@;'; put 'put ''Uz1TK01hdGguaW11bChDZSx1bil8MCkrTWF0aC5pbXVsKERlLG1uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVsKGRuLGJuKSkrTWF0aC5p''@;'; put 'put ''bXVsKHluLE5uKXwwLEY9TWF0aC5pbXVsKHluLGJuKSxUPVQrTWF0aC5pbXVsKGp0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsWG4pfDApK01hdGguaW11bChKdCxzcil8MCxGPUYrTWF0aC5pbXVsKEp0LFhuKXwwLFQ9VCtNYXRoLmltdWwoR2UseHIpfDAsUz0oUz1TK01hdGguaW11bChH''@;'; put 'put ''ZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhyKXwwLEY9RitNYXRoLmltdWwoVWUscXQpfDAsVD1UK01hdGguaW11bChDdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRj1GK01hdGguaW11bChmdCxBbil8MCxUPVQrTWF0aC5pbXVsKGV0LFd0KXww''@;'; put 'put ''LFM9KFM9UytNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChsdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGx0LHBuKXwwLFQ9VCtNYXRoLmltdWwob24sTnQpfDAsUz0oUz1TK01hdGguaW11bChvbixzbil8MCkrTWF0aC5pbXVsKF90LE50KXwwLEY9RitNYXRoLmltdWwoX3Qsc24pfDAsVD1U''@;'; put 'put ''K01hdGguaW11bChBdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRj1GK01hdGguaW11bChodCx0bil8MCxUPVQrTWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxGPUYrTWF0''@;'; put 'put ''aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRoLmltdWwoUWUsbW4pfDAsUz0oUz1TK01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRoLmltdWwoJGUsdW4pfDA7dmFyIGlpPShWKyhUPVQrTWF0aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; put 'put ''LmltdWwoQ2UsR3QpfDApK01hdGguaW11bChEZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHNyKSxTPShTPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixz''@;'; put 'put ''cil8MCxGPU1hdGguaW11bCh5bixYbiksVD1UK01hdGguaW11bChqdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoSnQseHIpfDAsRj1GK01hdGguaW11bChKdCxxdCl8MCxUPVQrTWF0aC5pbXVsKEdlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQW4pfDAp''@;'; put 'put ''K01hdGguaW11bChVZSxucil8MCxGPUYrTWF0aC5pbXVsKFVlLEFuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0oUz1TK01hdGguaW11bChDdCxwbil8MCkrTWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitNYXRoLmltdWwoZnQscG4pfDAsVD1UK01hdGguaW11bChldCxOdCl8MCxTPShTPVMr''@;'; put 'put ''TWF0aC5pbXVsKGV0LHNuKXwwKStNYXRoLmltdWwobHQsTnQpfDAsRj1GK01hdGguaW11bChsdCxzbil8MCxUPVQrTWF0aC5pbXVsKG9uLHduKXwwLFM9KFM9UytNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3bil8MCxGPUYrTWF0aC5pbXVsKF90LHRuKXwwLFQ9VCtNYXRoLmlt''@;'; put 'put ''dWwoQXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChBdCxCbil8MCkrTWF0aC5pbXVsKGh0LFRyKXwwLEY9RitNYXRoLmltdWwoaHQsQm4pfDAsVD1UK01hdGguaW11bCh3dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHVuKXwwKStNYXRoLmltdWwobXQsbW4pfDAsRj1GK01hdGguaW11bCht''@;'; put 'put ''dCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKCRlLEd0KXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9''@;'; put 'put ''NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4seHIpLFM9KFM9TWF0aC5pbXVsKGRuLHF0KSkrTWF0aC5pbXVsKHluLHhyKXwwLEY9TWF0aC5pbXVsKHluLHF0KSxUPVQrTWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChKdCxucil8MCxGPUYrTWF0''@;'; put 'put ''aC5pbXVsKEp0LEFuKXwwLFQ9VCtNYXRoLmltdWwoR2UsV3QpfDAsUz0oUz1TK01hdGguaW11bChHZSxwbil8MCkrTWF0aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRoLmltdWwoVWUscG4pfDAsVD1UK01hdGguaW11bChDdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmlt''@;'; put 'put ''dWwoZnQsTnQpfDAsRj1GK01hdGguaW11bChmdCxzbil8MCxUPVQrTWF0aC5pbXVsKGV0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChsdCx3bil8MCxGPUYrTWF0aC5pbXVsKGx0LHRuKXwwLFQ9VCtNYXRoLmltdWwob24sVHIpfDAsUz0oUz1TK01hdGguaW11''@;'; put 'put ''bChvbixCbil8MCkrTWF0aC5pbXVsKF90LFRyKXwwLEY9RitNYXRoLmltdWwoX3QsQm4pfDAsVD1UK01hdGguaW11bChBdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRj1GK01hdGguaW11bChodCx1bil8MDt2YXIgbGk9KFYrKFQ9VCtNYXRo''@;'; put 'put ''LmltdWwod3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh3dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbnIp''@;'; put 'put ''LFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkrTWF0aC5pbXVsKHluLG5yKXwwLEY9TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChKdCxXdCl8MCxGPUYrTWF0aC5pbXVsKEp0LHBuKXwwLFQ9VCtNYXRoLmlt''@;'; put 'put ''dWwoR2UsTnQpfDAsUz0oUz1TK01hdGguaW11bChHZSxzbil8MCkrTWF0aC5pbXVsKFVlLE50KXwwLEY9RitNYXRoLmltdWwoVWUsc24pfDAsVD1UK01hdGguaW11bChDdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAsRj1GK01hdGguaW11bChm''@;'; put 'put ''dCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChsdCxUcil8MCxGPUYrTWF0aC5pbXVsKGx0LEJuKXwwLFQ9VCtNYXRoLmltdWwob24sbW4pfDAsUz0oUz1TK01hdGguaW11bChvbix1bil8MCkrTWF0aC5pbXVsKF90LG1u''@;'; put 'put ''KXwwLEY9RitNYXRoLmltdWwoX3QsdW4pfDA7dmFyIE1pPShWKyhUPVQrTWF0aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChodCxHdCl8MCkrKFM+Pj4xMyl8''@;'; put 'put ''MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFd0KSxTPShTPU1hdGguaW11bChkbixwbikpK01hdGguaW11bCh5bixXdCl8MCxGPU1hdGguaW11bCh5bixwbiksVD1UK01hdGguaW11bChqdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmlt''@;'; put 'put ''dWwoSnQsTnQpfDAsRj1GK01hdGguaW11bChKdCxzbil8MCxUPVQrTWF0aC5pbXVsKEdlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxGPUYrTWF0aC5pbXVsKFVlLHRuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAsUz0oUz1TK01hdGguaW11''@;'; put 'put ''bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0LFRyKXwwLEY9RitNYXRoLmltdWwoZnQsQm4pfDAsVD1UK01hdGguaW11bChldCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwobHQsbW4pfDAsRj1GK01hdGguaW11bChsdCx1bil8MDt2YXIgbzA9KFYrKFQ9VCtNYXRo''@;'; put 'put ''LmltdWwob24sX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChvbixHdCl8MCkrTWF0aC5pbXVsKF90LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTnQp''@;'; put 'put ''LFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkrTWF0aC5pbXVsKHluLE50KXwwLEY9TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0aC5pbXVsKGp0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChKdCx3bil8MCxGPUYrTWF0aC5pbXVsKEp0LHRuKXwwLFQ9VCtNYXRoLmlt''@;'; put 'put ''dWwoR2UsVHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxCbil8MCkrTWF0aC5pbXVsKFVlLFRyKXwwLEY9RitNYXRoLmltdWwoVWUsQm4pfDAsVD1UK01hdGguaW11bChDdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRj1GK01hdGguaW11bChm''@;'; put 'put ''dCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtNYXRoLmltdWwoZXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChldCxHdCl8MCkrTWF0aC5pbXVsKGx0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGx0LEd0KXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9''@;'; put 'put ''NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sd24pLFM9KFM9TWF0aC5pbXVsKGRuLHRuKSkrTWF0aC5pbXVsKHluLHduKXwwLEY9TWF0aC5pbXVsKHluLHRuKSxUPVQrTWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChKdCxUcil8MCxGPUYrTWF0''@;'; put 'put ''aC5pbXVsKEp0LEJuKXwwLFQ9VCtNYXRoLmltdWwoR2UsbW4pfDAsUz0oUz1TK01hdGguaW11bChHZSx1bil8MCkrTWF0aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRoLmltdWwoVWUsdW4pfDA7dmFyIGQwPShWKyhUPVQrTWF0aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRo''@;'; put 'put ''LmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChmdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFRyKSxTPShTPU1hdGguaW11bChkbixCbikpK01hdGguaW11bCh5bixU''@;'; put 'put ''cil8MCxGPU1hdGguaW11bCh5bixCbiksVD1UK01hdGguaW11bChqdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoSnQsbW4pfDAsRj1GK01hdGguaW11bChKdCx1bil8MDt2YXIgbTA9KFYrKFQ9VCtNYXRoLmltdWwoR2UsX24pfDApfDApKygoODE5MSYoUz0o''@;'; put 'put ''Uz1TK01hdGguaW11bChHZSxHdCl8MCkrTWF0aC5pbXVsKFVlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFVlLEd0KXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVsKGRuLHVuKSkrTWF0aC5p''@;'; put 'put ''bXVsKHluLG1uKXwwLEY9TWF0aC5pbXVsKHluLHVuKTt2YXIgRzA9KFYrKFQ9VCtNYXRoLmltdWwoanQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChqdCxHdCl8MCkrTWF0aC5pbXVsKEp0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKEp0LEd0KXwwKSsoUz4+''@;'; put 'put ''PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjM7dmFyIERpPShWKyhUPU1hdGguaW11bChkbixfbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoZG4sR3QpKStNYXRoLmltdWwoeW4sX24pfDApKTw8MTMpfDA7cmV0dXJuIFY9KChGPU1hdGguaW11bCh5bixHdCkpKyhTPj4+MTMp''@;'; put 'put ''fDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxQWzBdPWtuLFBbMV09Vm4sUFsyXT1lbixQWzNdPUluLFBbNF09Sm4sUFs1XT1vcixQWzZdPWdyLFBbN109S3IsUFs4XT1WcixQWzldPWlpLFBbMTBdPVJyLFBbMTFdPWxpLFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRdPW4wLFBbMTVdPWQwLFBb''@;'; put 'put ''MTZdPW0wLFBbMTddPUcwLFBbMThdPURpLDAhPT1WJiYoUFsxOV09VixlZS5sZW5ndGgrKyksZWV9O2Z1bmN0aW9uIG9lKGhlLE8seil7cmV0dXJuKG5ldyBjZSkubXVscChoZSxPLHopfWZ1bmN0aW9uIGNlKGhlLE8pe3RoaXMueD1oZSx0aGlzLnk9T31NYXRoLmltdWx8fChKPUspLFUucHJv''@;'; put 'put ''dG90eXBlLm11bFRvPWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRoaXMubGVuZ3RoK08ubGVuZ3RoO3JldHVybiBlZT0xMD09PXRoaXMubGVuZ3RoJiYxMD09PU8ubGVuZ3RoP0oodGhpcyxPLHopOm5lPDYzP0sodGhpcyxPLHopOm5lPDEwMjQ/ZnVuY3Rpb24gc2UoaGUsTyx6KXt6Lm5lZ2F0''@;'; put 'put ''aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmUsei5sZW5ndGg9aGUubGVuZ3RoK08ubGVuZ3RoO2Zvcih2YXIgZWU9MCxuZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsrKXt2YXIgUD1uZTtuZT0wO2Zvcih2YXIgVj02NzEwODg2MyZlZSxUPU1hdGgubWluKHgsTy5sZW5ndGgtMSksUz1NYXRoLm1h''@;'; put 'put ''eCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7UysrKXt2YXIgRGU9KDB8aGUud29yZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSksUGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2MyYoUGU9UGUrVnwwKSxuZSs9KFA9KFA9UCsoRGUvNjcxMDg4NjR8MCl8MCkrKFBlPj4+MjYpfDApPj4+MjYsUCY9NjcxMDg4''@;'; put 'put ''NjN9ei53b3Jkc1t4XT1WLGVlPVAsUD1uZX1yZXR1cm4gMCE9PWVlP3oud29yZHNbeF09ZWU6ei5sZW5ndGgtLSx6LnN0cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlzLE8seiksZWV9LGNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksZWU9VS5w''@;'; put 'put ''cm90b3R5cGUuX2NvdW50Qml0cyhPKS0xLG5lPTA7bmU8TztuZSsrKXpbbmVdPXRoaXMucmV2QmluKG5lLGVlLE8pO3JldHVybiB6fSxjZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKE8seixlZSl7aWYoMD09PU98fE89PT1lZS0xKXJldHVybiBPO2Zvcih2YXIgbmU9MCx4PTA7eDx6O3gr''@;'; put 'put ''KyluZXw9KDEmTyk8PHoteC0xLE8+Pj0xO3JldHVybiBuZX0sY2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6LGVlLG5lLHgsUCl7Zm9yKHZhciBWPTA7VjxQO1YrKyluZVtWXT16W09bVl1dLHhbVl09ZWVbT1tWXV19LGNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oTyx6''@;'; put 'put ''LGVlLG5lLHgsUCl7dGhpcy5wZXJtdXRlKFAsTyx6LGVlLG5lLHgpO2Zvcih2YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFyIFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0aC5QSS9UKSx5ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBDZT1TLERlPUYsUGU9MDtQ''@;'; put 'put ''ZTxWO1BlKyspe3ZhciBRZT1lZVt5ZStQZV0sJGU9bmVbeWUrUGVdLGd0PWVlW3llK1BlK1ZdLHd0PW5lW3llK1BlK1ZdLG10PUNlKmd0LURlKnd0O3d0PUNlKnd0K0RlKmd0LGVlW3llK1BlXT1RZSsoZ3Q9bXQpLG5lW3llK1BlXT0kZSt3dCxlZVt5ZStQZStWXT1RZS1ndCxuZVt5ZStQZStW''@;'; put 'put ''XT0kZS13dCxQZSE9PVQmJihtdD1TKkNlLUYqRGUsRGU9UypEZStGKkNlLENlPW10KX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihPLHope3ZhciBlZT0xfE1hdGgubWF4KHosTyksbmU9MSZlZSx4PTA7Zm9yKGVlPWVlLzJ8MDtlZTtlZT4+Pj0xKXgrKztyZXR1cm4gMTw8''@;'; put 'put ''eCsxK25lfSxjZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKE8seixlZSl7aWYoIShlZTw9MSkpZm9yKHZhciBuZT0wO25lPGVlLzI7bmUrKyl7dmFyIHg9T1tuZV07T1tuZV09T1tlZS1uZS0xXSxPW2VlLW5lLTFdPXgseD16W25lXSx6W25lXT0teltlZS1uZS0xXSx6W2VlLW5lLTFd''@;'; put 'put ''PS14fX0sY2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihPLHope2Zvcih2YXIgZWU9MCxuZT0wO25lPHovMjtuZSsrKXt2YXIgeD04MTkyKk1hdGgucm91bmQoT1syKm5lKzFdL3opK01hdGgucm91bmQoT1syKm5lXS96KStlZTtPW25lXT02NzEwODg2MyZ4LGVlPXg8NjcxMDg4''@;'; put 'put ''NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJuIE99LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKE8seixlZSxuZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQKyspZWVbMipQXT04MTkxJih4Kz0wfE9bUF0pLGVlWzIqUCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+PTEzO2ZvcihQPTIqejtQ''@;'; put 'put ''PG5lOysrUCllZVtQXT0wO0UoMD09PXgpLEUoMD09KC04MTkyJngpKX0sY2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxlZT0wO2VlPE87ZWUrKyl6W2VlXT0wO3JldHVybiB6fSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihPLHosZWUpe3Zh''@;'; put 'put ''ciBuZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoTy5sZW5ndGgsei5sZW5ndGgpLHg9dGhpcy5tYWtlUkJUKG5lKSxQPXRoaXMuc3R1YihuZSksVj1uZXcgQXJyYXkobmUpLFQ9bmV3IEFycmF5KG5lKSxTPW5ldyBBcnJheShuZSksRj1uZXcgQXJyYXkobmUpLHllPW5ldyBBcnJheShuZSksQ2U9bmV3''@;'; put 'put ''IEFycmF5KG5lKSxEZT1lZS53b3JkcztEZS5sZW5ndGg9bmUsdGhpcy5jb252ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgsVixuZSksdGhpcy5jb252ZXJ0MTNiKHoud29yZHMsei5sZW5ndGgsRixuZSksdGhpcy50cmFuc2Zvcm0oVixQLFQsUyxuZSx4KSx0aGlzLnRyYW5zZm9ybShGLFAseWUs''@;'; put 'put ''Q2UsbmUseCk7Zm9yKHZhciBQZT0wO1BlPG5lO1BlKyspe3ZhciBRZT1UW1BlXSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1NbUGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRoaXMuY29uanVnYXRlKFQsUyxuZSksdGhpcy50cmFuc2Zvcm0oVCxTLERlLFAsbmUs''@;'; put 'put ''eCksdGhpcy5jb25qdWdhdGUoRGUsUCxuZSksdGhpcy5ub3JtYWxpemUxM2IoRGUsbmUpLGVlLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5ndGg9Ty5sZW5ndGgrei5sZW5ndGgsZWUuc3RyaXAoKX0sVS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBV''@;'; put 'put ''KG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksdGhpcy5tdWxUbyhPLHopfSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCks''@;'; put 'put ''b2UodGhpcyxPLHopfSxVLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oTyx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZhciB6PTAsZWU9MDtlZTx0''@;'; put 'put ''aGlzLmxlbmd0aDtlZSsrKXt2YXIgbmU9KDB8dGhpcy53b3Jkc1tlZV0pKk8seD0oNjcxMDg4NjMmbmUpKyg2NzEwODg2MyZ6KTt6Pj49MjYseis9bmUvNjcxMDg4NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jkc1tlZV09NjcxMDg4NjMmeH1yZXR1cm4gMCE9PXomJih0aGlzLndvcmRzW2VlXT16''@;'; put 'put ''LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihPKX0sVS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxVLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24gdGUoaGUpe2Zvcih2YXIgTz1uZXcgQXJyYXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6PE8ubGVuZ3RoO3orKyl7dmFyIG5lPXolMjY7T1t6XT0oaGUud29yZHNbei8yNnww''@;'; put 'put ''XSYxPDxuZSk+Pj5uZX1yZXR1cm4gT30oTyk7aWYoMD09PXoubGVuZ3RoKXJldHVybiBuZXcgVSgxKTtmb3IodmFyIGVlPXRoaXMsbmU9MDtuZTx6Lmxlbmd0aCYmMD09PXpbbmVdO25lKyssZWU9ZWUuc3FyKCkpO2lmKCsrbmU8ei5sZW5ndGgpZm9yKHZhciB4PWVlLnNxcigpO25lPHoubGVu''@;'; put 'put ''Z3RoO25lKysseD14LnNxcigpKTAhPT16W25lXSYmKGVlPWVlLm11bCh4KSk7cmV0dXJuIGVlfSxVLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB4LHo9TyUyNixlZT0oTy16KS8yNixuZT02NzEwODg2Mz4+PjI2LXo8PDI2LXo7''@;'; put 'put ''aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFY9dGhpcy53b3Jkc1t4XSZuZTt0aGlzLndvcmRzW3hdPSgwfHRoaXMud29yZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16fVAmJih0aGlzLndvcmRzW3hdPVAsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWVlKXtm''@;'; put 'put ''b3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXRoaXMud29yZHNbeCtlZV09dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8ZWU7eCsrKXRoaXMud29yZHNbeF09MDt0aGlzLmxlbmd0aCs9ZWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oTyl7cmV0dXJu''@;'; put 'put ''IEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApLG5lPXo/KHoteiUyNikvMjY6MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4oKE8teCkvMjYsdGhpcy5s''@;'; put 'put ''ZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4NjM+Pj54PDx4LFQ9ZWU7aWYobmUtPVAsbmU9TWF0aC5tYXgoMCxuZSksVCl7Zm9yKHZhciBTPTA7UzxQO1MrKylULndvcmRzW1NdPXRoaXMud29yZHNbU107VC5sZW5ndGg9UH1pZigwIT09UClpZih0aGlzLmxlbmd0aD5QKWZvcih0aGlzLmxlbmd0''@;'; put 'put ''aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1MrUF07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3RoLTE7Uz49MCYmKDAhPT1GfHxTPj1uZSk7Uy0tKXt2YXIgeWU9MHx0aGlzLndvcmRz''@;'; put 'put ''W1NdO3RoaXMud29yZHNbU109Rjw8MjYteHx5ZT4+PngsRj15ZSZWfXJldHVybiBUJiYwIT09RiYmKFQud29yZHNbVC5sZW5ndGgrK109RiksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVu''@;'; put 'put ''Y3Rpb24oTyx6LGVlKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTyx6LGVlKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKE8pfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5j''@;'; put 'put ''bG9uZSgpLml1c2hsbihPKX0sVS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKE8pfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihPKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24o''@;'; put 'put ''Tyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsZWU9KE8teikvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9ZWV8fCEodGhpcy53b3Jkc1tlZV0mMTw8eikpfSxVLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3Zh''@;'; put 'put ''ciB6PU8lMjYsZWU9KE8teikvMjY7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1lZT90aGlzOigwIT09eiYmZWUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihlZSx0aGlzLmxlbmd0aCksMCE9''@;'; put 'put ''PXomJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKE8pfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihPKXty''@;'; put 'put ''ZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwP3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8odGhpcy53b3Jkc1swXT1PLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9''@;'; put 'put ''MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE8pfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jkc1swXSs9Tztmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pd''@;'; put 'put ''Pj02NzEwODg2NDt6KyspdGhpcy53b3Jkc1t6XS09NjcxMDg4NjQsej09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHorMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVu''@;'; put 'put ''Y3Rpb24oTyl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwKXJldHVybiB0aGlzLmlhZGRuKC1PKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jk''@;'; put 'put ''c1swXS09TywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel08MDt6KyspdGhpcy53b3Jkc1t6XSs9NjcxMDg4NjQsdGhp''@;'; put 'put ''cy53b3Jkc1t6KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihPKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKE8pfSxVLnByb3RvdHlw''@;'; put 'put ''ZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKE8seixlZSl7dmFyIHg7dGhpcy5fZXhwYW5kKE8u''@;'; put 'put ''bGVuZ3RoK2VlKTt2YXIgUCxWPTA7Zm9yKHg9MDt4PE8ubGVuZ3RoO3grKyl7UD0oMHx0aGlzLndvcmRzW3grZWVdKStWO3ZhciBUPSgwfE8ud29yZHNbeF0pKno7Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNiktKFQvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQfWZvcig7''@;'; put 'put ''eDx0aGlzLmxlbmd0aC1lZTt4KyspVj0oUD0oMHx0aGlzLndvcmRzW3grZWVdKStWKT4+MjYsdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQO2lmKDA9PT1WKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUoLTE9PT1WKSxWPTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKVY9KFA9LSgwfHRoaXMu''@;'; put 'put ''d29yZHNbeF0pK1YpPj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlA7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRoaXMuY2xvbmUoKSx4PU8sUD0wfHgud29yZHNbeC5sZW5ndGgtMV07''@;'; put 'put ''MCE9KGVlPTI2LXRoaXMuX2NvdW50Qml0cyhQKSkmJih4PXgudXNobG4oZWUpLG5lLml1c2hsbihlZSksUD0wfHgud29yZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9bmUubGVuZ3RoLXgubGVuZ3RoO2lmKCJtb2QiIT09eil7KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1UKzEsUy53b3Jkcz1uZXcg''@;'; put 'put ''QXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIgRj0wO0Y8Uy5sZW5ndGg7RisrKVMud29yZHNbRl09MH12YXIgeWU9bmUuY2xvbmUoKS5faXNobG5zdWJtdWwoeCwxLFQpOzA9PT15ZS5uZWdhdGl2ZSYmKG5lPXllLFMmJihTLndvcmRzW1RdPTEpKTtmb3IodmFyIENlPVQtMTtDZT49MDtDZS0tKXt2''@;'; put 'put ''YXIgRGU9NjcxMDg4NjQqKDB8bmUud29yZHNbeC5sZW5ndGgrQ2VdKSsoMHxuZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7Zm9yKERlPU1hdGgubWluKERlL1B8MCw2NzEwODg2MyksbmUuX2lzaGxuc3VibXVsKHgsRGUsQ2UpOzAhPT1uZS5uZWdhdGl2ZTspRGUtLSxuZS5uZWdhdGl2ZT0wLG5l''@;'; put 'put ''Ll9pc2hsbnN1Ym11bCh4LDEsQ2UpLG5lLmlzWmVybygpfHwobmUubmVnYXRpdmVePTEpO1MmJihTLndvcmRzW0NlXT1EZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSxuZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9PWVlJiZuZS5pdXNocm4oZWUpLHtkaXY6U3x8bnVsbCxtb2Q6bmV9fSxVLnByb3Rv''@;'; put 'put ''dHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6LGVlKXtyZXR1cm4gRSghTy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8seiksIm1vZCIhPT16JiYo''@;'; put 'put ''bmU9UC5kaXYubmVnKCkpLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQoTykpLHtkaXY6bmUsbW9kOnh9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmU/KFA9dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwibW9kIiE9PXomJihuZT1Q''@;'; put 'put ''LmRpdi5uZWcoKSkse2RpdjpuZSxtb2Q6UC5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlzLm5lZygpLmRpdm1vZChPLm5lZygpLHopLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykpLHtkaXY6UC5kaXYsbW9k''@;'; put 'put ''Onh9KTpPLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoTyk8MD97ZGl2Om5ldyBVKDApLG1vZDp0aGlzfToxPT09Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXo/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZG4o''@;'; put 'put ''Ty53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihPLHopO3ZhciBuZSx4LFB9LFUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywiZGl2IiwhMSku''@;'; put 'put ''ZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMCkubW9kfSxVLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihP''@;'; put 'put ''KXt2YXIgej10aGlzLmRpdm1vZChPKTtpZih6Lm1vZC5pc1plcm8oKSlyZXR1cm4gei5kaXY7dmFyIGVlPTAhPT16LmRpdi5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8pOnoubW9kLG5lPU8udXNocm4oMSkseD1PLmFuZGxuKDEpLFA9ZWUuY21wKG5lKTtyZXR1cm4gUDwwfHwxPT09eCYmMD09PVA/''@;'; put 'put ''ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZlP3ouZGl2LmlzdWJuKDEpOnouZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0oMTw8MjYpJU8sZWU9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pZWU9KHoqZWUrKDB8''@;'; put 'put ''dGhpcy53b3Jkc1tuZV0pKSVPO3JldHVybiBlZX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PTAsZWU9dGhpcy5sZW5ndGgtMTtlZT49MDtlZS0tKXt2YXIgbmU9KDB8dGhpcy53b3Jkc1tlZV0pKzY3MTA4ODY0Kno7dGhpcy53b3Jkc1tl''@;'; put 'put ''ZV09bmUvT3wwLHo9bmUlT31yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oTyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHo9''@;'; put 'put ''dGhpcyxlZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgbmU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBVKDApLFY9bmV3IFUoMSksVD0wO3ouaXNFdmVuKCkmJmVlLmlzRXZlbigpOyl6Lml1c2hybigxKSxlZS5pdXNocm4oMSksKytU''@;'; put 'put ''O2Zvcih2YXIgUz1lZS5jbG9uZSgpLEY9ei5jbG9uZSgpOyF6LmlzWmVybygpOyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsrK3llLENlPDw9MSk7aWYoeWU+MClmb3Ioei5pdXNocm4oeWUpO3llLS0gPjA7KShuZS5pc09kZCgpfHx4LmlzT2RkKCkpJiYo''@;'; put 'put ''bmUuaWFkZChTKSx4LmlzdWIoRikpLG5lLml1c2hybigxKSx4Lml1c2hybigxKTtmb3IodmFyIERlPTAsUGU9MTswPT0oZWUud29yZHNbMF0mUGUpJiZEZTwyNjsrK0RlLFBlPDw9MSk7aWYoRGU+MClmb3IoZWUuaXVzaHJuKERlKTtEZS0tID4wOykoUC5pc09kZCgpfHxWLmlzT2RkKCkpJiYo''@;'; put 'put ''UC5pYWRkKFMpLFYuaXN1YihGKSksUC5pdXNocm4oMSksVi5pdXNocm4oMSk7ei5jbXAoZWUpPj0wPyh6LmlzdWIoZWUpLG5lLmlzdWIoUCkseC5pc3ViKFYpKTooZWUuaXN1Yih6KSxQLmlzdWIobmUpLFYuaXN1Yih4KSl9cmV0dXJue2E6UCxiOlYsZ2NkOmVlLml1c2hsbihUKX19LFUucHJv''@;'; put 'put ''dG90eXBlLl9pbnZtcD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgeWUsej10aGlzLGVlPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciBuZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9ZWUuY2xvbmUo''@;'; put 'put ''KTt6LmNtcG4oMSk+MCYmZWUuY21wbigxKT4wOyl7Zm9yKHZhciBWPTAsVD0xOzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2OysrVixUPDw9MSk7aWYoVj4wKWZvcih6Lml1c2hybihWKTtWLS0gPjA7KW5lLmlzT2RkKCkmJm5lLmlhZGQoUCksbmUuaXVzaHJuKDEpO2Zvcih2YXIgUz0wLEY9MTsw''@;'; put 'put ''PT0oZWUud29yZHNbMF0mRikmJlM8MjY7KytTLEY8PD0xKTtpZihTPjApZm9yKGVlLml1c2hybihTKTtTLS0gPjA7KXguaXNPZGQoKSYmeC5pYWRkKFApLHguaXVzaHJuKDEpO3ouY21wKGVlKT49MD8oei5pc3ViKGVlKSxuZS5pc3ViKHgpKTooZWUuaXN1Yih6KSx4LmlzdWIobmUpKX1yZXR1''@;'; put 'put ''cm4oeWU9MD09PXouY21wbigxKT9uZTp4KS5jbXBuKDApPDAmJnllLmlhZGQoTykseWV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihPKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBPLmFicygpO2lmKE8uaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9dGhpcy5jbG9uZSgpLGVl''@;'; put 'put ''PU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAsZWUubmVnYXRpdmU9MDtmb3IodmFyIG5lPTA7ei5pc0V2ZW4oKSYmZWUuaXNFdmVuKCk7bmUrKyl6Lml1c2hybigxKSxlZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3ouaXNFdmVuKCk7KXouaXVzaHJuKDEpO2Zvcig7ZWUuaXNFdmVuKCk7KWVlLml1''@;'; put 'put ''c2hybigxKTt2YXIgeD16LmNtcChlZSk7aWYoeDwwKXt2YXIgUD16O3o9ZWUsZWU9UH1lbHNlIGlmKDA9PT14fHwwPT09ZWUuY21wbigxKSlicmVhazt6LmlzdWIoZWUpfXJldHVybiBlZS5pdXNobG4obmUpfSxVLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmVnY2Qo''@;'; put 'put ''TykuYS51bW9kKE8pfSxVLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihPKXtyZXR1''@;'; put 'put ''cm4gdGhpcy53b3Jkc1swXSZPfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyk7dmFyIHo9TyUyNixlZT0oTy16KS8yNixuZT0xPDx6O2lmKHRoaXMubGVuZ3RoPD1lZSlyZXR1cm4gdGhpcy5fZXhwYW5kKGVlKzEpLHRoaXMud29yZHNbZWVdfD1u''@;'; put 'put ''ZSx0aGlzO2Zvcih2YXIgeD1uZSxQPWVlOzAhPT14JiZQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9MHx0aGlzLndvcmRzW1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1cm4gMCE9PXgmJih0aGlzLndvcmRzW1BdPXgsdGhpcy5sZW5ndGgrKyksdGhpc30s''@;'; put 'put ''VS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oTyl7dmFyIGVlLHo9TzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdh''@;'; put 'put ''dGl2ZSYmeilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSllZT0xO2Vsc2V7eiYmKE89LU8pLEUoTzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIG5lPTB8dGhpcy53b3Jkc1swXTtlZT1uZT09PU8/MDpuZTxPPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5l''@;'; put 'put ''Z2F0aXZlPzB8LWVlOmVlfSxVLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oTyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVjbXAoTyk7cmV0dXJuIDAh''@;'; put 'put ''PT10aGlzLm5lZ2F0aXZlPzB8LXo6en0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihPKXtpZih0aGlzLmxlbmd0aD5PLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxPLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHo9MCxlZT10aGlzLmxlbmd0aC0xO2VlPj0wO2VlLS0pe3ZhciBu''@;'; put 'put ''ZT0wfHRoaXMud29yZHNbZWVdLHg9MHxPLndvcmRzW2VlXTtpZihuZSE9PXgpe25lPHg/ej0tMTpuZT54JiYoej0xKTticmVha319cmV0dXJuIHp9LFUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oTyl7''@;'; put 'put ''cmV0dXJuIDE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oTyl7cmV0dXJuLTE9''@;'; put 'put ''PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKTw9MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChP''@;'; put 'put ''KTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wKE8pfSxVLnJlZD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IFRlKE8pfSxVLnByb3RvdHlwZS50b1JlZD1m''@;'; put 'put ''dW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE8uY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5''@;'; put 'put ''cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LFUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4g''@;'; put 'put ''dGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE8pe3JldHVy''@;'; put 'put ''biBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhp''@;'; put 'put ''cy5yZWQuaWFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihPKXtyZXR1''@;'; put 'put ''cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRo''@;'; put 'put ''aXMucmVkLnNobCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLm11bCh0aGlzLE8pfSxVLnByb3RvdHlw''@;'; put 'put ''ZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5pbXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBF''@;'; put 'put ''KHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRo''@;'; put 'put ''IHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkx''@;'; put 'put ''KHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnBy''@;'; put 'put ''b3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE8pe3JldHVybiBF''@;'; put 'put ''KHRoaXMucmVkJiYhTy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTyl9O3ZhciBkZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhlLE8pe3RoaXMubmFtZT1o''@;'; put 'put ''ZSx0aGlzLnA9bmV3IFUoTywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEFlKCl7dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYg''@;'; put 'put ''ZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgpe3ZlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24g''@;'; put 'put ''U2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEllKCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZm''@;'; put 'put ''ZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUZShoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAsdGhpcy5wcmltZT1PfWVsc2UgRShoZS5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1o''@;'; put 'put ''ZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTWUoaGUpe1RlLmNhbGwodGhpcyxoZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5pdXNobG4odGhpcy5zaGlmdCks''@;'; put 'put ''dGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMu''@;'; put 'put ''ci5zdWIodGhpcy5taW52KX12ZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiBPLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksT30sdmUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFyIGVlLHo9Tztkb3t0aGlz''@;'; put 'put ''LnNwbGl0KHosdGhpcy50bXApLGVlPSh6PSh6PXRoaXMuaW11bEsoeikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShlZT50aGlzLm4pO3ZhciBuZT1lZTx0aGlzLm4/LTE6ei51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uZT8oei53b3Jkc1swXT0wLHoubGVuZ3RoPTEpOm5l''@;'; put 'put ''PjA/ei5pc3ViKHRoaXMucCk6dm9pZCAwIT09ei5zdHJpcD96LnN0cmlwKCk6ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtPLml1c2hybih0aGlzLm4sMCx6KX0sdmUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe3JldHVybiBPLmltdWwodGhpcy5r''@;'; put 'put ''KX0sRWUoQWUsdmUpLEFlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope2Zvcih2YXIgbmU9TWF0aC5taW4oTy5sZW5ndGgsOSkseD0wO3g8bmU7eCsrKXoud29yZHNbeF09Ty53b3Jkc1t4XTtpZih6Lmxlbmd0aD1uZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53b3Jkc1swXT0wLHZvaWQo''@;'; put 'put ''Ty5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jkc1s5XTtmb3Ioei53b3Jkc1t6Lmxlbmd0aCsrXT00MTk0MzAzJlAseD0xMDt4PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxPLndvcmRzW3hdO08ud29yZHNbeC0xMF09KDQxOTQzMDMmVik8PDR8UD4+PjIyLFA9Vn1PLndvcmRzW3gtMTBdPVA+Pj49MjIs''@;'; put 'put ''Ty5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0aD4xMD8xMDo5fSxBZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRzW08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgrPTI7Zm9yKHZhciB6PTAsZWU9MDtlZTxPLmxlbmd0aDtlZSsrKXt2YXIgbmU9MHxP''@;'; put 'put ''LndvcmRzW2VlXTtPLndvcmRzW2VlXT02NzEwODg2MyYoeis9OTc3Km5lKSx6PTY0Km5lKyh6LzY3MTA4ODY0fDApfXJldHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99LEVlKGtlLHZlKSxFZShT''@;'; put 'put ''ZSx2ZSksRWUoSWUsdmUpLEllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtmb3IodmFyIHo9MCxlZT0wO2VlPE8ubGVuZ3RoO2VlKyspe3ZhciBuZT0xOSooMHxPLndvcmRzW2VlXSkreix4PTY3MTA4ODYzJm5lO25lPj4+PTI2LE8ud29yZHNbZWVdPXgsej1uZX1yZXR1cm4gMCE9PXom''@;'; put 'put ''JihPLndvcmRzW08ubGVuZ3RoKytdPXopLE99LFUuX3ByaW1lPWZ1bmN0aW9uKE8pe2lmKGRlW09dKXJldHVybiBkZVtPXTt2YXIgejtpZigiazI1NiI9PT1PKXo9bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09Tyl6PW5ldyBrZTtlbHNlIGlmKCJwMTkyIj09PU8pej1uZXcgU2U7ZWxzZXtpZigi''@;'; put 'put ''cDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrTyk7ej1uZXcgSWV9cmV0dXJuIGRlW09dPXosen0sVGUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJl''@;'; put 'put ''ZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oTyx6KXtFKDA9PShPLm5lZ2F0aXZlfHoubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVkPT09ei5yZWQsInJlZCB3''@;'; put 'put ''b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpPLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5uZWc9''@;'; put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNaZXJvKCk/Ty5jbG9uZSgpOnRoaXMubS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmFkZCh6KTtyZXR1cm4gZWUuY21wKHRoaXMubSk+PTAmJmVl''@;'; put 'put ''LmlzdWIodGhpcy5tKSxlZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmlhZGQoeik7cmV0dXJuIGVlLmNtcCh0aGlzLm0pPj0wJiZlZS5pc3ViKHRoaXMubSksZWV9LFRlLnByb3RvdHlwZS5zdWI9''@;'; put 'put ''ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIGVlPU8uc3ViKHopO3JldHVybiBlZS5jbXBuKDApPDAmJmVlLmlhZGQodGhpcy5tKSxlZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1P''@;'; put 'put ''LmlzdWIoeik7cmV0dXJuIGVlLmNtcG4oMCk8MCYmZWUuaWFkZCh0aGlzLm0pLGVlfSxUZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8udXNobG4oeikpfSxUZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope3JldHVy''@;'; put 'put ''biB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8uaW11bCh6KSl9LFRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLm11bCh6KSl9LFRlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmlt''@;'; put 'put ''dWwoTyxPLmNsb25lKCkpfSxUZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLm11bChPLE8pfSxUZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihPKXtpZihPLmlzWmVybygpKXJldHVybiBPLmNsb25lKCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMpO2lmKEUoeiUyPT0xKSwz''@;'; put 'put ''PT09eil7dmFyIGVlPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coTyxlZSl9Zm9yKHZhciBuZT10aGlzLm0uc3VibigxKSx4PTA7IW5lLmlzWmVybygpJiYwPT09bmUuYW5kbG4oMSk7KXgrKyxuZS5pdXNocm4oMSk7RSghbmUuaXNaZXJvKCkpO3ZhciBQ''@;'; put 'put ''PW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9UC5yZWROZWcoKSxUPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxTPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcgVSgyKlMqUykudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KFMsVCkuY21wKFYpOylTLnJlZElBZGQoVik7Zm9yKHZhciBGPXRo''@;'; put 'put ''aXMucG93KFMsbmUpLHllPXRoaXMucG93KE8sbmUuYWRkbigxKS5pdXNocm4oMSkpLENlPXRoaXMucG93KE8sbmUpLERlPXg7MCE9PUNlLmNtcChQKTspe2Zvcih2YXIgUGU9Q2UsUWU9MDswIT09UGUuY21wKFApO1FlKyspUGU9UGUucmVkU3FyKCk7RShRZTxEZSk7dmFyICRlPXRoaXMucG93''@;'; put 'put ''KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFlLTEpKTt5ZT15ZS5yZWRNdWwoJGUpLEY9JGUucmVkU3FyKCksQ2U9Q2UucmVkTXVsKEYpLERlPVFlfXJldHVybiB5ZX0sVGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7dmFyIHo9Ty5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXoubmVnYXRp''@;'; put 'put ''dmU/KHoubmVnYXRpdmU9MCx0aGlzLmltb2QoeikucmVkTmVnKCkpOnRoaXMuaW1vZCh6KX0sVGUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPLHope2lmKHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT16LmNtcG4oMSkpcmV0dXJuIE8uY2xvbmUoKTt2YXIg''@;'; put 'put ''bmU9bmV3IEFycmF5KDE2KTtuZVswXT1uZXcgVSgxKS50b1JlZCh0aGlzKSxuZVsxXT1PO2Zvcih2YXIgeD0yO3g8bmUubGVuZ3RoO3grKyluZVt4XT10aGlzLm11bChuZVt4LTFdLE8pO3ZhciBQPW5lWzBdLFY9MCxUPTAsUz16LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UyYmKFM9MjYpLHg9''@;'; put 'put ''ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9yKHZhciBGPXoud29yZHNbeF0seWU9Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1GPj55ZSYxO1AhPT1uZVswXSYmKFA9dGhpcy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/KFY8PD0xLFZ8PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09eWUpJiYoUD10aGlzLm11''@;'; put 'put ''bChQLG5lW1ZdKSxUPTAsVj0wKSk6VD0wfVM9MjZ9cmV0dXJuIFB9LFRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7dmFyIHo9Ty51bW9kKHRoaXMubSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUoKTp6fSxUZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9''@;'; put 'put ''Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1udWxsLHp9LFUubW9udD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IE1lKE8pfSxFZShNZSxUZSksTWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbW9kKE8udXNobG4odGhpcy5zaGlmdCkpfSxNZS5wcm90b3R5cGUu''@;'; put 'put ''Y29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5pbW9kKE8ubXVsKHRoaXMucmludikpO3JldHVybiB6LnJlZD1udWxsLHp9LE1lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jkc1swXT0wLE8ubGVuZ3Ro''@;'; put 'put ''PTEsTzt2YXIgZWU9Ty5pbXVsKHopLG5lPWVlLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PWVlLmlzdWIobmUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhp''@;'; put 'put ''cy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxNZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBlZT1PLm11bCh6KSxuZT1l''@;'; put 'put ''ZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1lZS5pc3ViKG5lKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFk''@;'; put 'put ''ZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sTWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSw5NjM4NjooWGUsSmUsTCk9Pnsi''@;'; put 'put ''dXNlIHN0cmljdCI7dmFyIG1lPUwoODM4OTQpLEI9TCg4MDk1KSxFPUwoNzU2MzQpLEVlPUwoOTUyNDQpLFU9TCg2MTA1Mik7ZnVuY3Rpb24gUShqKXtVLmNhbGwodGhpcywiZGlnZXN0IiksdGhpcy5faGFzaD1qfW1lKFEsVSksUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihqKXt0aGlz''@;'; put 'put ''Ll9oYXNoLnVwZGF0ZShqKX0sUS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2hhc2guZGlnZXN0KCl9LFhlLmV4cG9ydHM9ZnVuY3Rpb24ocmUpe3JldHVybiJtZDUiPT09KHJlPXJlLnRvTG93ZXJDYXNlKCkpP25ldyBCOiJybWQxNjAiPT09cmV8fCJyaXBlbWQx''@;'; put 'put ''NjAiPT09cmU/bmV3IEU6bmV3IFEoRWUocmUpKX19LDU1NjQwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDgwOTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuKG5ldyBtZSkudXBkYXRlKEIpLmRpZ2VzdCgpfX0sNzQ1Mjk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDgz''@;'; put 'put ''ODk0KSxCPUwoNzMwOSksRT1MKDYxMDUyKSxFZT1MKDczNTAyKS5CdWZmZXIsVT1MKDU1NjQwKSxRPUwoNzU2MzQpLGo9TCg5NTI0NCkscmU9RWUuYWxsb2MoMTI4KTtmdW5jdGlvbiBhZShZLFcpe0UuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9mIFcmJihXPUVlLmZyb20o''@;'; put 'put ''VykpO3ZhciBOPSJzaGE1MTIiPT09WXx8InNoYTM4NCI9PT1ZPzEyODo2NDt0aGlzLl9hbGc9WSx0aGlzLl9rZXk9VyxXLmxlbmd0aD5OP1c9KCJybWQxNjAiPT09WT9uZXcgUTpqKFkpKS51cGRhdGUoVykuZGlnZXN0KCk6Vy5sZW5ndGg8TiYmKFc9RWUuY29uY2F0KFtXLHJlXSxOKSk7Zm9y''@;'; put 'put ''KHZhciBLPXRoaXMuX2lwYWQ9RWUuYWxsb2NVbnNhZmUoTiksSj10aGlzLl9vcGFkPUVlLmFsbG9jVW5zYWZlKE4pLHNlPTA7c2U8TjtzZSsrKUtbc2VdPTU0Xldbc2VdLEpbc2VdPTkyXldbc2VdO3RoaXMuX2hhc2g9InJtZDE2MCI9PT1ZP25ldyBROmooWSksdGhpcy5faGFzaC51cGRhdGUo''@;'; put 'put ''Syl9bWUoYWUsRSksYWUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oWSl7dGhpcy5faGFzaC51cGRhdGUoWSl9LGFlLnByb3RvdHlwZS5fZmluYWw9ZnVuY3Rpb24oKXt2YXIgWT10aGlzLl9oYXNoLmRpZ2VzdCgpO3JldHVybigicm1kMTYwIj09PXRoaXMuX2FsZz9uZXcgUTpqKHRoaXMu''@;'; put 'put ''X2FsZykpLnVwZGF0ZSh0aGlzLl9vcGFkKS51cGRhdGUoWSkuZGlnZXN0KCl9LFhlLmV4cG9ydHM9ZnVuY3Rpb24oVyxOKXtyZXR1cm4icm1kMTYwIj09PShXPVcudG9Mb3dlckNhc2UoKSl8fCJyaXBlbWQxNjAiPT09Vz9uZXcgYWUoInJtZDE2MCIsTik6Im1kNSI9PT1XP25ldyBCKFUsTik6''@;'; put 'put ''bmV3IGFlKFcsTil9fSw3MzA5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4Mzg5NCksQj1MKDczNTAyKS5CdWZmZXIsRT1MKDYxMDUyKSxFZT1CLmFsbG9jKDEyOCksVT02NDtmdW5jdGlvbiBRKGoscmUpe0UuY2FsbCh0aGlzLCJkaWdlc3QiKSwic3RyaW5nIj09dHlwZW9m''@;'; put 'put ''IHJlJiYocmU9Qi5mcm9tKHJlKSksdGhpcy5fYWxnPWosdGhpcy5fa2V5PXJlLHJlLmxlbmd0aD5VP3JlPWoocmUpOnJlLmxlbmd0aDxVJiYocmU9Qi5jb25jYXQoW3JlLEVlXSxVKSk7Zm9yKHZhciBhZT10aGlzLl9pcGFkPUIuYWxsb2NVbnNhZmUoVSksWT10aGlzLl9vcGFkPUIuYWxsb2NV''@;'; put 'put ''bnNhZmUoVSksVz0wO1c8VTtXKyspYWVbV109NTRecmVbV10sWVtXXT05Ml5yZVtXXTt0aGlzLl9oYXNoPVthZV19bWUoUSxFKSxRLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGope3RoaXMuX2hhc2gucHVzaChqKX0sUS5wcm90b3R5cGUuX2ZpbmFsPWZ1bmN0aW9uKCl7dmFyIGo9dGhp''@;'; put 'put ''cy5fYWxnKEIuY29uY2F0KHRoaXMuX2hhc2gpKTtyZXR1cm4gdGhpcy5fYWxnKEIuY29uY2F0KFt0aGlzLl9vcGFkLGpdKSl9LFhlLmV4cG9ydHM9UX0sNDEzNDg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0plLnJhbmRvbUJ5dGVzPUplLnJuZz1KZS5wc2V1ZG9SYW5kb21CeXRlcz1KZS5w''@;'; put 'put ''cm5nPUwoNTM3NTMpLEplLmNyZWF0ZUhhc2g9SmUuSGFzaD1MKDk2Mzg2KSxKZS5jcmVhdGVIbWFjPUplLkhtYWM9TCg3NDUyOSk7dmFyIG1lPUwoODc3OTMpLEI9T2JqZWN0LmtleXMobWUpLEU9WyJzaGExIiwic2hhMjI0Iiwic2hhMjU2Iiwic2hhMzg0Iiwic2hhNTEyIiwibWQ1Iiwicm1k''@;'; put 'put ''MTYwIl0uY29uY2F0KEIpO0plLmdldEhhc2hlcz1mdW5jdGlvbigpe3JldHVybiBFfTt2YXIgRWU9TCg5OTM1Nyk7SmUucGJrZGYyPUVlLnBia2RmMixKZS5wYmtkZjJTeW5jPUVlLnBia2RmMlN5bmM7dmFyIFU9TCg1NTI1NSk7SmUuQ2lwaGVyPVUuQ2lwaGVyLEplLmNyZWF0ZUNpcGhlcj1V''@;'; put 'put ''LmNyZWF0ZUNpcGhlcixKZS5DaXBoZXJpdj1VLkNpcGhlcml2LEplLmNyZWF0ZUNpcGhlcml2PVUuY3JlYXRlQ2lwaGVyaXYsSmUuRGVjaXBoZXI9VS5EZWNpcGhlcixKZS5jcmVhdGVEZWNpcGhlcj1VLmNyZWF0ZURlY2lwaGVyLEplLkRlY2lwaGVyaXY9VS5EZWNpcGhlcml2LEplLmNyZWF0''@;'; put 'put ''ZURlY2lwaGVyaXY9VS5jcmVhdGVEZWNpcGhlcml2LEplLmdldENpcGhlcnM9VS5nZXRDaXBoZXJzLEplLmxpc3RDaXBoZXJzPVUubGlzdENpcGhlcnM7dmFyIFE9TCg5ODgyOSk7SmUuRGlmZmllSGVsbG1hbkdyb3VwPVEuRGlmZmllSGVsbG1hbkdyb3VwLEplLmNyZWF0ZURpZmZpZUhlbGxt''@;'; put 'put ''YW5Hcm91cD1RLmNyZWF0ZURpZmZpZUhlbGxtYW5Hcm91cCxKZS5nZXREaWZmaWVIZWxsbWFuPVEuZ2V0RGlmZmllSGVsbG1hbixKZS5jcmVhdGVEaWZmaWVIZWxsbWFuPVEuY3JlYXRlRGlmZmllSGVsbG1hbixKZS5EaWZmaWVIZWxsbWFuPVEuRGlmZmllSGVsbG1hbjt2YXIgaj1MKDM5MjMp''@;'; put 'put ''O0plLmNyZWF0ZVNpZ249ai5jcmVhdGVTaWduLEplLlNpZ249ai5TaWduLEplLmNyZWF0ZVZlcmlmeT1qLmNyZWF0ZVZlcmlmeSxKZS5WZXJpZnk9ai5WZXJpZnksSmUuY3JlYXRlRUNESD1MKDc0NzQ2KTt2YXIgcmU9TCg2MzcwMSk7SmUucHVibGljRW5jcnlwdD1yZS5wdWJsaWNFbmNyeXB0''@;'; put 'put ''LEplLnByaXZhdGVFbmNyeXB0PXJlLnByaXZhdGVFbmNyeXB0LEplLnB1YmxpY0RlY3J5cHQ9cmUucHVibGljRGVjcnlwdCxKZS5wcml2YXRlRGVjcnlwdD1yZS5wcml2YXRlRGVjcnlwdDt2YXIgYWU9TCgxNDI3NSk7SmUucmFuZG9tRmlsbD1hZS5yYW5kb21GaWxsLEplLnJhbmRvbUZpbGxT''@;'; put 'put ''eW5jPWFlLnJhbmRvbUZpbGxTeW5jLEplLmNyZWF0ZUNyZWRlbnRpYWxzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKFsic29ycnksIGNyZWF0ZUNyZWRlbnRpYWxzIGlzIG5vdCBpbXBsZW1lbnRlZCB5ZXQiLCJ3ZSBhY2NlcHQgcHVsbCByZXF1ZXN0cyIsImh0dHBzOi8vZ2l0aHViLmNv''@;'; put 'put ''bS9jcnlwdG8tYnJvd3NlcmlmeS9jcnlwdG8tYnJvd3NlcmlmeSJdLmpvaW4oIlxuIikpfSxKZS5jb25zdGFudHM9e0RIX0NIRUNLX1BfTk9UX1NBRkVfUFJJTUU6MixESF9DSEVDS19QX05PVF9QUklNRToxLERIX1VOQUJMRV9UT19DSEVDS19HRU5FUkFUT1I6NCxESF9OT1RfU1VJVEFCTEVf''@;'; put 'put ''R0VORVJBVE9SOjgsTlBOX0VOQUJMRUQ6MSxBTFBOX0VOQUJMRUQ6MSxSU0FfUEtDUzFfUEFERElORzoxLFJTQV9TU0xWMjNfUEFERElORzoyLFJTQV9OT19QQURESU5HOjMsUlNBX1BLQ1MxX09BRVBfUEFERElORzo0LFJTQV9YOTMxX1BBRERJTkc6NSxSU0FfUEtDUzFfUFNTX1BBRERJTkc6''@;'; put 'put ''NixQT0lOVF9DT05WRVJTSU9OX0NPTVBSRVNTRUQ6MixQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRDo0LFBPSU5UX0NPTlZFUlNJT05fSFlCUklEOjZ9fSw2NzU4NTpmdW5jdGlvbihYZSxKZSl7dmFyIG1lLEUsRWUsVSxRLGoscmUsYWUsWSxXLE4sSyxMO1hlLmV4cG9ydHM9KEw9THx8''@;'; put 'put ''KG1lPU1hdGgsRT1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbigpe2Z1bmN0aW9uIEooKXt9cmV0dXJuIGZ1bmN0aW9uKHNlKXt2YXIgb2U7cmV0dXJuIEoucHJvdG90eXBlPXNlLG9lPW5ldyBKLEoucHJvdG90eXBlPW51bGwsb2V9fSgpLFU9KEVlPXt9KS5saWI9e30sUT1VLkJhc2U9e2V4dGVu''@;'; put 'put ''ZDpmdW5jdGlvbihKKXt2YXIgc2U9RSh0aGlzKTtyZXR1cm4gSiYmc2UubWl4SW4oSiksKCFzZS5oYXNPd25Qcm9wZXJ0eSgiaW5pdCIpfHx0aGlzLmluaXQ9PT1zZS5pbml0KSYmKHNlLmluaXQ9ZnVuY3Rpb24oKXtzZS4kc3VwZXIuaW5pdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KSxzZS5p''@;'; put 'put ''bml0LnByb3RvdHlwZT1zZSxzZS4kc3VwZXI9dGhpcyxzZX0sY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIEo9dGhpcy5leHRlbmQoKTtyZXR1cm4gSi5pbml0LmFwcGx5KEosYXJndW1lbnRzKSxKfSxpbml0OmZ1bmN0aW9uKCl7fSxtaXhJbjpmdW5jdGlvbihKKXtmb3IodmFyIHNlIGluIEopSi5o''@;'; put 'put ''YXNPd25Qcm9wZXJ0eShzZSkmJih0aGlzW3NlXT1KW3NlXSk7Si5oYXNPd25Qcm9wZXJ0eSgidG9TdHJpbmciKSYmKHRoaXMudG9TdHJpbmc9Si50b1N0cmluZyl9LGNsb25lOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5pdC5wcm90b3R5cGUuZXh0ZW5kKHRoaXMpfX0saj1VLldvcmRBcnJh''@;'; put 'put ''eT1RLmV4dGVuZCh7aW5pdDpmdW5jdGlvbihKLHNlKXtKPXRoaXMud29yZHM9Snx8W10sdGhpcy5zaWdCeXRlcz1udWxsIT1zZT9zZTo0KkoubGVuZ3RofSx0b1N0cmluZzpmdW5jdGlvbihKKXtyZXR1cm4oSnx8YWUpLnN0cmluZ2lmeSh0aGlzKX0sY29uY2F0OmZ1bmN0aW9uKEope3ZhciBz''@;'; put 'put ''ZT10aGlzLndvcmRzLG9lPUoud29yZHMsY2U9dGhpcy5zaWdCeXRlcyxkZT1KLnNpZ0J5dGVzO2lmKHRoaXMuY2xhbXAoKSxjZSU0KWZvcih2YXIgdmU9MDt2ZTxkZTt2ZSsrKXNlW2NlK3ZlPj4+Ml18PShvZVt2ZT4+PjJdPj4+MjQtdmUlNCo4JjI1NSk8PDI0LShjZSt2ZSklNCo4O2Vsc2Ug''@;'; put 'put ''Zm9yKHZlPTA7dmU8ZGU7dmUrPTQpc2VbY2UrdmU+Pj4yXT1vZVt2ZT4+PjJdO3JldHVybiB0aGlzLnNpZ0J5dGVzKz1kZSx0aGlzfSxjbGFtcDpmdW5jdGlvbigpe3ZhciBKPXRoaXMud29yZHMsc2U9dGhpcy5zaWdCeXRlcztKW3NlPj4+Ml0mPTQyOTQ5NjcyOTU8PDMyLXNlJTQqOCxKLmxl''@;'; put 'put ''bmd0aD1tZS5jZWlsKHNlLzQpfSxjbG9uZTpmdW5jdGlvbigpe3ZhciBKPVEuY2xvbmUuY2FsbCh0aGlzKTtyZXR1cm4gSi53b3Jkcz10aGlzLndvcmRzLnNsaWNlKDApLEp9LHJhbmRvbTpmdW5jdGlvbihKKXtmb3IodmFyIGRlLHNlPVtdLG9lPWZ1bmN0aW9uKGtlKXt2YXIgU2U9OTg3NjU0''@;'; put 'put ''MzIxLEllPTQyOTQ5NjcyOTU7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFRlPSgoU2U9MzY5NjkqKDY1NTM1JlNlKSsoU2U+PjE2KSZJZSk8PDE2KSsoa2U9MThlMyooNjU1MzUma2UpKyhrZT4+MTYpJkllKSZJZTtyZXR1cm4gVGUvPTQyOTQ5NjcyOTYsKFRlKz0uNSkqKG1lLnJhbmRvbSgpPi41''@;'; put 'put ''PzE6LTEpfX0sY2U9MDtjZTxKO2NlKz00KXt2YXIgdmU9b2UoNDI5NDk2NzI5NiooZGV8fG1lLnJhbmRvbSgpKSk7ZGU9OTg3NjU0MDcxKnZlKCksc2UucHVzaCg0Mjk0OTY3Mjk2KnZlKCl8MCl9cmV0dXJuIG5ldyBqLmluaXQoc2UsSil9fSkscmU9RWUuZW5jPXt9LGFlPXJlLkhleD17c3Ry''@;'; put 'put ''aW5naWZ5OmZ1bmN0aW9uKEope2Zvcih2YXIgc2U9Si53b3JkcyxvZT1KLnNpZ0J5dGVzLGNlPVtdLGRlPTA7ZGU8b2U7ZGUrKyl7dmFyIHZlPXNlW2RlPj4+Ml0+Pj4yNC1kZSU0KjgmMjU1O2NlLnB1c2goKHZlPj4+NCkudG9TdHJpbmcoMTYpKSxjZS5wdXNoKCgxNSZ2ZSkudG9TdHJpbmco''@;'; put 'put ''MTYpKX1yZXR1cm4gY2Uuam9pbigiIil9LHBhcnNlOmZ1bmN0aW9uKEope2Zvcih2YXIgc2U9Si5sZW5ndGgsb2U9W10sY2U9MDtjZTxzZTtjZSs9MilvZVtjZT4+PjNdfD1wYXJzZUludChKLnN1YnN0cihjZSwyKSwxNik8PDI0LWNlJTgqNDtyZXR1cm4gbmV3IGouaW5pdChvZSxzZS8yKX19''@;'; put 'put ''LFk9cmUuTGF0aW4xPXtzdHJpbmdpZnk6ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT1KLndvcmRzLG9lPUouc2lnQnl0ZXMsY2U9W10sZGU9MDtkZTxvZTtkZSsrKWNlLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShzZVtkZT4+PjJdPj4+MjQtZGUlNCo4JjI1NSkpO3JldHVybiBjZS5qb2luKCIi''@;'; put 'put ''KX0scGFyc2U6ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT1KLmxlbmd0aCxvZT1bXSxjZT0wO2NlPHNlO2NlKyspb2VbY2U+Pj4yXXw9KDI1NSZKLmNoYXJDb2RlQXQoY2UpKTw8MjQtY2UlNCo4O3JldHVybiBuZXcgai5pbml0KG9lLHNlKX19LFc9cmUuVXRmOD17c3RyaW5naWZ5OmZ1bmN0aW9u''@;'; put 'put ''KEope3RyeXtyZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KGVzY2FwZShZLnN0cmluZ2lmeShKKSkpfWNhdGNoKHNlKXt0aHJvdyBuZXcgRXJyb3IoIk1hbGZvcm1lZCBVVEYtOCBkYXRhIil9fSxwYXJzZTpmdW5jdGlvbihKKXtyZXR1cm4gWS5wYXJzZSh1bmVzY2FwZShlbmNvZGVVUklDb21w''@;'; put 'put ''b25lbnQoSikpKX19LE49VS5CdWZmZXJlZEJsb2NrQWxnb3JpdGhtPVEuZXh0ZW5kKHtyZXNldDpmdW5jdGlvbigpe3RoaXMuX2RhdGE9bmV3IGouaW5pdCx0aGlzLl9uRGF0YUJ5dGVzPTB9LF9hcHBlbmQ6ZnVuY3Rpb24oSil7InN0cmluZyI9PXR5cGVvZiBKJiYoSj1XLnBhcnNlKEopKSx0''@;'; put 'put ''aGlzLl9kYXRhLmNvbmNhdChKKSx0aGlzLl9uRGF0YUJ5dGVzKz1KLnNpZ0J5dGVzfSxfcHJvY2VzczpmdW5jdGlvbihKKXt2YXIgc2U9dGhpcy5fZGF0YSxvZT1zZS53b3JkcyxjZT1zZS5zaWdCeXRlcyxkZT10aGlzLmJsb2NrU2l6ZSxBZT1jZS8oNCpkZSksa2U9KEFlPUo/bWUuY2VpbChB''@;'; put 'put ''ZSk6bWUubWF4KCgwfEFlKS10aGlzLl9taW5CdWZmZXJTaXplLDApKSpkZSxTZT1tZS5taW4oNCprZSxjZSk7aWYoa2Upe2Zvcih2YXIgSWU9MDtJZTxrZTtJZSs9ZGUpdGhpcy5fZG9Qcm9jZXNzQmxvY2sob2UsSWUpO3ZhciBUZT1vZS5zcGxpY2UoMCxrZSk7c2Uuc2lnQnl0ZXMtPVNlfXJl''@;'; put 'put ''dHVybiBuZXcgai5pbml0KFRlLFNlKX0sY2xvbmU6ZnVuY3Rpb24oKXt2YXIgSj1RLmNsb25lLmNhbGwodGhpcyk7cmV0dXJuIEouX2RhdGE9dGhpcy5fZGF0YS5jbG9uZSgpLEp9LF9taW5CdWZmZXJTaXplOjB9KSxVLkhhc2hlcj1OLmV4dGVuZCh7Y2ZnOlEuZXh0ZW5kKCksaW5pdDpmdW5j''@;'; put 'put ''dGlvbihKKXt0aGlzLmNmZz10aGlzLmNmZy5leHRlbmQoSiksdGhpcy5yZXNldCgpfSxyZXNldDpmdW5jdGlvbigpe04ucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl9kb1Jlc2V0KCl9LHVwZGF0ZTpmdW5jdGlvbihKKXtyZXR1cm4gdGhpcy5fYXBwZW5kKEopLHRoaXMuX3Byb2Nlc3MoKSx0aGlz''@;'; put 'put ''fSxmaW5hbGl6ZTpmdW5jdGlvbihKKXtyZXR1cm4gSiYmdGhpcy5fYXBwZW5kKEopLHRoaXMuX2RvRmluYWxpemUoKX0sYmxvY2tTaXplOjE2LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24oSil7cmV0dXJuIGZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gbmV3IEouaW5pdChvZSkuZmluYWxpemUoc2Up''@;'; put 'put ''fX0sX2NyZWF0ZUhtYWNIZWxwZXI6ZnVuY3Rpb24oSil7cmV0dXJuIGZ1bmN0aW9uKHNlLG9lKXtyZXR1cm4gbmV3IEsuSE1BQy5pbml0KEosb2UpLmZpbmFsaXplKHNlKX19fSksSz1FZS5hbGdvPXt9LEVlKSxMKX0sOTQ5MzpmdW5jdGlvbihYZSxKZSxMKXt2YXIgbWU7WGUuZXhwb3J0cz0o''@;'; put 'put ''bWU9TCg2NzU4NSksZnVuY3Rpb24oQil7dmFyIEU9bWUsRWU9RS5saWIsVT1FZS5Xb3JkQXJyYXksUT1FZS5IYXNoZXIsaj1FLmFsZ28scmU9W107IWZ1bmN0aW9uKCl7Zm9yKHZhciBLPTA7Szw2NDtLKyspcmVbS109NDI5NDk2NzI5NipCLmFicyhCLnNpbihLKzEpKXwwfSgpO3ZhciBhZT1q''@;'; put 'put ''Lk1ENT1RLmV4dGVuZCh7X2RvUmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNoPW5ldyBVLmluaXQoWzE3MzI1ODQxOTMsNDAyMzIzMzQxNywyNTYyMzgzMTAyLDI3MTczMzg3OF0pfSxfZG9Qcm9jZXNzQmxvY2s6ZnVuY3Rpb24oSyxKKXtmb3IodmFyIHNlPTA7c2U8MTY7c2UrKyl7dmFyIG9l''@;'; put 'put ''PUorc2UsY2U9S1tvZV07S1tvZV09MTY3MTE5MzUmKGNlPDw4fGNlPj4+MjQpfDQyNzgyNTUzNjAmKGNlPDwyNHxjZT4+PjgpfXZhciBkZT10aGlzLl9oYXNoLndvcmRzLHZlPUtbSiswXSxBZT1LW0orMV0sa2U9S1tKKzJdLFNlPUtbSiszXSxJZT1LW0orNF0sVGU9S1tKKzVdLE1lPUtbSis2''@;'; put 'put ''XSxoZT1LW0orN10sTz1LW0orOF0sej1LW0orOV0sZWU9S1tKKzEwXSxuZT1LW0orMTFdLHg9S1tKKzEyXSxQPUtbSisxM10sVj1LW0orMTRdLFQ9S1tKKzE1XSxTPWRlWzBdLEY9ZGVbMV0seWU9ZGVbMl0sQ2U9ZGVbM107Uz1ZKFMsRix5ZSxDZSx2ZSw3LHJlWzBdKSxDZT1ZKENlLFMsRix5''@;'; put 'put ''ZSxBZSwxMixyZVsxXSkseWU9WSh5ZSxDZSxTLEYsa2UsMTcscmVbMl0pLEY9WShGLHllLENlLFMsU2UsMjIscmVbM10pLFM9WShTLEYseWUsQ2UsSWUsNyxyZVs0XSksQ2U9WShDZSxTLEYseWUsVGUsMTIscmVbNV0pLHllPVkoeWUsQ2UsUyxGLE1lLDE3LHJlWzZdKSxGPVkoRix5ZSxDZSxT''@;'; put 'put ''LGhlLDIyLHJlWzddKSxTPVkoUyxGLHllLENlLE8sNyxyZVs4XSksQ2U9WShDZSxTLEYseWUseiwxMixyZVs5XSkseWU9WSh5ZSxDZSxTLEYsZWUsMTcscmVbMTBdKSxGPVkoRix5ZSxDZSxTLG5lLDIyLHJlWzExXSksUz1ZKFMsRix5ZSxDZSx4LDcscmVbMTJdKSxDZT1ZKENlLFMsRix5ZSxQ''@;'; put 'put ''LDEyLHJlWzEzXSkseWU9WSh5ZSxDZSxTLEYsViwxNyxyZVsxNF0pLFM9VyhTLEY9WShGLHllLENlLFMsVCwyMixyZVsxNV0pLHllLENlLEFlLDUscmVbMTZdKSxDZT1XKENlLFMsRix5ZSxNZSw5LHJlWzE3XSkseWU9Vyh5ZSxDZSxTLEYsbmUsMTQscmVbMThdKSxGPVcoRix5ZSxDZSxTLHZl''@;'; put 'put ''LDIwLHJlWzE5XSksUz1XKFMsRix5ZSxDZSxUZSw1LHJlWzIwXSksQ2U9VyhDZSxTLEYseWUsZWUsOSxyZVsyMV0pLHllPVcoeWUsQ2UsUyxGLFQsMTQscmVbMjJdKSxGPVcoRix5ZSxDZSxTLEllLDIwLHJlWzIzXSksUz1XKFMsRix5ZSxDZSx6LDUscmVbMjRdKSxDZT1XKENlLFMsRix5ZSxW''@;'; put 'put ''LDkscmVbMjVdKSx5ZT1XKHllLENlLFMsRixTZSwxNCxyZVsyNl0pLEY9VyhGLHllLENlLFMsTywyMCxyZVsyN10pLFM9VyhTLEYseWUsQ2UsUCw1LHJlWzI4XSksQ2U9VyhDZSxTLEYseWUsa2UsOSxyZVsyOV0pLHllPVcoeWUsQ2UsUyxGLGhlLDE0LHJlWzMwXSksUz1OKFMsRj1XKEYseWUs''@;'; put 'put ''Q2UsUyx4LDIwLHJlWzMxXSkseWUsQ2UsVGUsNCxyZVszMl0pLENlPU4oQ2UsUyxGLHllLE8sMTEscmVbMzNdKSx5ZT1OKHllLENlLFMsRixuZSwxNixyZVszNF0pLEY9TihGLHllLENlLFMsViwyMyxyZVszNV0pLFM9TihTLEYseWUsQ2UsQWUsNCxyZVszNl0pLENlPU4oQ2UsUyxGLHllLEll''@;'; put 'put ''LDExLHJlWzM3XSkseWU9Tih5ZSxDZSxTLEYsaGUsMTYscmVbMzhdKSxGPU4oRix5ZSxDZSxTLGVlLDIzLHJlWzM5XSksUz1OKFMsRix5ZSxDZSxQLDQscmVbNDBdKSxDZT1OKENlLFMsRix5ZSx2ZSwxMSxyZVs0MV0pLHllPU4oeWUsQ2UsUyxGLFNlLDE2LHJlWzQyXSksRj1OKEYseWUsQ2Us''@;'; put 'put ''UyxNZSwyMyxyZVs0M10pLFM9TihTLEYseWUsQ2Useiw0LHJlWzQ0XSksQ2U9TihDZSxTLEYseWUseCwxMSxyZVs0NV0pLHllPU4oeWUsQ2UsUyxGLFQsMTYscmVbNDZdKSxTPXRlKFMsRj1OKEYseWUsQ2UsUyxrZSwyMyxyZVs0N10pLHllLENlLHZlLDYscmVbNDhdKSxDZT10ZShDZSxTLEYs''@;'; put 'put ''eWUsaGUsMTAscmVbNDldKSx5ZT10ZSh5ZSxDZSxTLEYsViwxNSxyZVs1MF0pLEY9dGUoRix5ZSxDZSxTLFRlLDIxLHJlWzUxXSksUz10ZShTLEYseWUsQ2UseCw2LHJlWzUyXSksQ2U9dGUoQ2UsUyxGLHllLFNlLDEwLHJlWzUzXSkseWU9dGUoeWUsQ2UsUyxGLGVlLDE1LHJlWzU0XSksRj10''@;'; put 'put ''ZShGLHllLENlLFMsQWUsMjEscmVbNTVdKSxTPXRlKFMsRix5ZSxDZSxPLDYscmVbNTZdKSxDZT10ZShDZSxTLEYseWUsVCwxMCxyZVs1N10pLHllPXRlKHllLENlLFMsRixNZSwxNSxyZVs1OF0pLEY9dGUoRix5ZSxDZSxTLFAsMjEscmVbNTldKSxTPXRlKFMsRix5ZSxDZSxJZSw2LHJlWzYw''@;'; put 'put ''XSksQ2U9dGUoQ2UsUyxGLHllLG5lLDEwLHJlWzYxXSkseWU9dGUoeWUsQ2UsUyxGLGtlLDE1LHJlWzYyXSksRj10ZShGLHllLENlLFMseiwyMSxyZVs2M10pLGRlWzBdPWRlWzBdK1N8MCxkZVsxXT1kZVsxXStGfDAsZGVbMl09ZGVbMl0reWV8MCxkZVszXT1kZVszXStDZXwwfSxfZG9GaW5h''@;'; put 'put ''bGl6ZTpmdW5jdGlvbigpe3ZhciBLPXRoaXMuX2RhdGEsSj1LLndvcmRzLHNlPTgqdGhpcy5fbkRhdGFCeXRlcyxvZT04Kksuc2lnQnl0ZXM7SltvZT4+PjVdfD0xMjg8PDI0LW9lJTMyO3ZhciBjZT1CLmZsb29yKHNlLzQyOTQ5NjcyOTYpLGRlPXNlO0pbMTUrKG9lKzY0Pj4+OTw8NCldPTE2''@;'; put 'put ''NzExOTM1JihjZTw8OHxjZT4+PjI0KXw0Mjc4MjU1MzYwJihjZTw8MjR8Y2U+Pj44KSxKWzE0KyhvZSs2ND4+Pjk8PDQpXT0xNjcxMTkzNSYoZGU8PDh8ZGU+Pj4yNCl8NDI3ODI1NTM2MCYoZGU8PDI0fGRlPj4+OCksSy5zaWdCeXRlcz00KihKLmxlbmd0aCsxKSx0aGlzLl9wcm9jZXNzKCk7''@;'; put 'put ''Zm9yKHZhciB2ZT10aGlzLl9oYXNoLEFlPXZlLndvcmRzLGtlPTA7a2U8NDtrZSsrKXt2YXIgU2U9QWVba2VdO0FlW2tlXT0xNjcxMTkzNSYoU2U8PDh8U2U+Pj4yNCl8NDI3ODI1NTM2MCYoU2U8PDI0fFNlPj4+OCl9cmV0dXJuIHZlfSxjbG9uZTpmdW5jdGlvbigpe3ZhciBLPVEuY2xvbmUu''@;'; put 'put ''Y2FsbCh0aGlzKTtyZXR1cm4gSy5faGFzaD10aGlzLl9oYXNoLmNsb25lKCksS319KTtmdW5jdGlvbiBZKEssSixzZSxvZSxjZSxkZSx2ZSl7dmFyIEFlPUsrKEomc2V8fkomb2UpK2NlK3ZlO3JldHVybihBZTw8ZGV8QWU+Pj4zMi1kZSkrSn1mdW5jdGlvbiBXKEssSixzZSxvZSxjZSxkZSx2''@;'; put 'put ''ZSl7dmFyIEFlPUsrKEomb2V8c2Umfm9lKStjZSt2ZTtyZXR1cm4oQWU8PGRlfEFlPj4+MzItZGUpK0p9ZnVuY3Rpb24gTihLLEosc2Usb2UsY2UsZGUsdmUpe3ZhciBBZT1LKyhKXnNlXm9lKStjZSt2ZTtyZXR1cm4oQWU8PGRlfEFlPj4+MzItZGUpK0p9ZnVuY3Rpb24gdGUoSyxKLHNlLG9l''@;'; put 'put ''LGNlLGRlLHZlKXt2YXIgQWU9Sysoc2VeKEp8fm9lKSkrY2UrdmU7cmV0dXJuKEFlPDxkZXxBZT4+PjMyLWRlKStKfUUuTUQ1PVEuX2NyZWF0ZUhlbHBlcihhZSksRS5IbWFjTUQ1PVEuX2NyZWF0ZUhtYWNIZWxwZXIoYWUpfShNYXRoKSxtZS5NRDUpfSw1Mjc4NjooWGUsSmUsTCk9PnsidXNl''@;'; put 'put ''IHN0cmljdCI7TC5kKEplLHtCODooKT0+U2UsSWw6KCk9PkIsSjU6KCk9PkVlLFNVOigpPT5rZSxTczooKT0+SWUsWW06KCk9PmVlLFpQOigpPT5kZSx4VjooKT0+RX0pO3ZhciBtZT1MKDY4ODg0KTtmdW5jdGlvbiBCKCl7fXZhciBFPS43LEVlPTEvRSxVPSJcXHMqKFsrLV0/XFxkKylcXHMq''@;'; put 'put ''IixRPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KVxccyoiLGo9IlxccyooWystXT9cXGQqXFwuP1xcZCsoPzpbZUVdWystXT9cXGQrKT8pJVxccyoiLHJlPS9eIyhbMC05YS1mXXszLDh9KSQvLGFlPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tVLFUsVV0rIlxcKSQi''@;'; put 'put ''KSxZPW5ldyBSZWdFeHAoIl5yZ2JcXCgiK1tqLGosal0rIlxcKSQiKSxXPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbVSxVLFUsUV0rIlxcKSQiKSxOPW5ldyBSZWdFeHAoIl5yZ2JhXFwoIitbaixqLGosUV0rIlxcKSQiKSx0ZT1uZXcgUmVnRXhwKCJeaHNsXFwoIitbUSxqLGpdKyJcXCkkIiks''@;'; put 'put ''Sz1uZXcgUmVnRXhwKCJeaHNsYVxcKCIrW1EsaixqLFFdKyJcXCkkIiksSj17YWxpY2VibHVlOjE1NzkyMzgzLGFudGlxdWV3aGl0ZToxNjQ0NDM3NSxhcXVhOjY1NTM1LGFxdWFtYXJpbmU6ODM4ODU2NCxhenVyZToxNTc5NDE3NSxiZWlnZToxNjExOTI2MCxiaXNxdWU6MTY3NzAyNDQsYmxh''@;'; put 'put ''Y2s6MCxibGFuY2hlZGFsbW9uZDoxNjc3MjA0NSxibHVlOjI1NSxibHVldmlvbGV0OjkwNTUyMDIsYnJvd246MTA4MjQyMzQsYnVybHl3b29kOjE0NTk2MjMxLGNhZGV0Ymx1ZTo2MjY2NTI4LGNoYXJ0cmV1c2U6ODM4ODM1MixjaG9jb2xhdGU6MTM3ODk0NzAsY29yYWw6MTY3NDQyNzIsY29y''@;'; put 'put ''bmZsb3dlcmJsdWU6NjU5MTk4MSxjb3Juc2lsazoxNjc3NTM4OCxjcmltc29uOjE0NDIzMTAwLGN5YW46NjU1MzUsZGFya2JsdWU6MTM5LGRhcmtjeWFuOjM1NzIzLGRhcmtnb2xkZW5yb2Q6MTIwOTI5MzksZGFya2dyYXk6MTExMTkwMTcsZGFya2dyZWVuOjI1NjAwLGRhcmtncmV5OjExMTE5''@;'; put 'put ''MDE3LGRhcmtraGFraToxMjQzMzI1OSxkYXJrbWFnZW50YTo5MTA5NjQzLGRhcmtvbGl2ZWdyZWVuOjU1OTc5OTksZGFya29yYW5nZToxNjc0NzUyMCxkYXJrb3JjaGlkOjEwMDQwMDEyLGRhcmtyZWQ6OTEwOTUwNCxkYXJrc2FsbW9uOjE1MzA4NDEwLGRhcmtzZWFncmVlbjo5NDE5OTE5LGRh''@;'; put 'put ''cmtzbGF0ZWJsdWU6NDczNDM0NyxkYXJrc2xhdGVncmF5OjMxMDA0OTUsZGFya3NsYXRlZ3JleTozMTAwNDk1LGRhcmt0dXJxdW9pc2U6NTI5NDUsZGFya3Zpb2xldDo5Njk5NTM5LGRlZXBwaW5rOjE2NzE2OTQ3LGRlZXBza3libHVlOjQ5MTUxLGRpbWdyYXk6NjkwODI2NSxkaW1ncmV5OjY5''@;'; put 'put ''MDgyNjUsZG9kZ2VyYmx1ZToyMDAzMTk5LGZpcmVicmljazoxMTY3NDE0NixmbG9yYWx3aGl0ZToxNjc3NTkyMCxmb3Jlc3RncmVlbjoyMjYzODQyLGZ1Y2hzaWE6MTY3MTE5MzUsZ2FpbnNib3JvOjE0NDc0NDYwLGdob3N0d2hpdGU6MTYzMTY2NzEsZ29sZDoxNjc2NjcyMCxnb2xkZW5yb2Q6''@;'; put 'put ''MTQzMjkxMjAsZ3JheTo4NDIxNTA0LGdyZWVuOjMyNzY4LGdyZWVueWVsbG93OjExNDAzMDU1LGdyZXk6ODQyMTUwNCxob25leWRldzoxNTc5NDE2MCxob3RwaW5rOjE2NzM4NzQwLGluZGlhbnJlZDoxMzQ1ODUyNCxpbmRpZ286NDkxNTMzMCxpdm9yeToxNjc3NzIwMCxraGFraToxNTc4NzY2''@;'; put 'put ''MCxsYXZlbmRlcjoxNTEzMjQxMCxsYXZlbmRlcmJsdXNoOjE2NzczMzY1LGxhd25ncmVlbjo4MTkwOTc2LGxlbW9uY2hpZmZvbjoxNjc3NTg4NSxsaWdodGJsdWU6MTEzOTMyNTQsbGlnaHRjb3JhbDoxNTc2MTUzNixsaWdodGN5YW46MTQ3NDU1OTksbGlnaHRnb2xkZW5yb2R5ZWxsb3c6MTY0''@;'; put 'put ''NDgyMTAsbGlnaHRncmF5OjEzODgyMzIzLGxpZ2h0Z3JlZW46OTQ5ODI1NixsaWdodGdyZXk6MTM4ODIzMjMsbGlnaHRwaW5rOjE2NzU4NDY1LGxpZ2h0c2FsbW9uOjE2NzUyNzYyLGxpZ2h0c2VhZ3JlZW46MjE0Mjg5MCxsaWdodHNreWJsdWU6ODkwMDM0NixsaWdodHNsYXRlZ3JheTo3ODMz''@;'; put 'put ''NzUzLGxpZ2h0c2xhdGVncmV5Ojc4MzM3NTMsbGlnaHRzdGVlbGJsdWU6MTE1ODQ3MzQsbGlnaHR5ZWxsb3c6MTY3NzcxODQsbGltZTo2NTI4MCxsaW1lZ3JlZW46MzMyOTMzMCxsaW5lbjoxNjQ0NTY3MCxtYWdlbnRhOjE2NzExOTM1LG1hcm9vbjo4Mzg4NjA4LG1lZGl1bWFxdWFtYXJpbmU6''@;'; put 'put ''NjczNzMyMixtZWRpdW1ibHVlOjIwNSxtZWRpdW1vcmNoaWQ6MTIyMTE2NjcsbWVkaXVtcHVycGxlOjk2NjI2ODMsbWVkaXVtc2VhZ3JlZW46Mzk3ODA5NyxtZWRpdW1zbGF0ZWJsdWU6ODA4Nzc5MCxtZWRpdW1zcHJpbmdncmVlbjo2NDE1NCxtZWRpdW10dXJxdW9pc2U6NDc3MjMwMCxtZWRp''@;'; put 'put ''dW12aW9sZXRyZWQ6MTMwNDcxNzMsbWlkbmlnaHRibHVlOjE2NDQ5MTIsbWludGNyZWFtOjE2MTIxODUwLG1pc3R5cm9zZToxNjc3MDI3Myxtb2NjYXNpbjoxNjc3MDIyOSxuYXZham93aGl0ZToxNjc2ODY4NSxuYXZ5OjEyOCxvbGRsYWNlOjE2NjQzNTU4LG9saXZlOjg0MjEzNzYsb2xpdmVk''@;'; put 'put ''cmFiOjcwNDg3Mzksb3JhbmdlOjE2NzUzOTIwLG9yYW5nZXJlZDoxNjcyOTM0NCxvcmNoaWQ6MTQzMTU3MzQscGFsZWdvbGRlbnJvZDoxNTY1NzEzMCxwYWxlZ3JlZW46MTAwMjU4ODAscGFsZXR1cnF1b2lzZToxMTUyOTk2NixwYWxldmlvbGV0cmVkOjE0MzgxMjAzLHBhcGF5YXdoaXA6MTY3''@;'; put 'put ''NzMwNzcscGVhY2hwdWZmOjE2NzY3NjczLHBlcnU6MTM0Njg5OTEscGluazoxNjc2MTAzNSxwbHVtOjE0NTI0NjM3LHBvd2RlcmJsdWU6MTE1OTE5MTAscHVycGxlOjgzODg3MzYscmViZWNjYXB1cnBsZTo2Njk3ODgxLHJlZDoxNjcxMTY4MCxyb3N5YnJvd246MTIzNTc1MTkscm95YWxibHVl''@;'; put 'put ''OjQyODY5NDUsc2FkZGxlYnJvd246OTEyNzE4NyxzYWxtb246MTY0MTY4ODIsc2FuZHlicm93bjoxNjAzMjg2NCxzZWFncmVlbjozMDUwMzI3LHNlYXNoZWxsOjE2Nzc0NjM4LHNpZW5uYToxMDUwNjc5NyxzaWx2ZXI6MTI2MzIyNTYsc2t5Ymx1ZTo4OTAwMzMxLHNsYXRlYmx1ZTo2OTcwMDYx''@;'; put 'put ''LHNsYXRlZ3JheTo3MzcyOTQ0LHNsYXRlZ3JleTo3MzcyOTQ0LHNub3c6MTY3NzU5MzAsc3ByaW5nZ3JlZW46NjU0MDcsc3RlZWxibHVlOjQ2MjA5ODAsdGFuOjEzODA4NzgwLHRlYWw6MzI4OTYsdGhpc3RsZToxNDIwNDg4OCx0b21hdG86MTY3MzcwOTUsdHVycXVvaXNlOjQyNTE4NTYsdmlv''@;'; put 'put ''bGV0OjE1NjMxMDg2LHdoZWF0OjE2MTEzMzMxLHdoaXRlOjE2Nzc3MjE1LHdoaXRlc21va2U6MTYxMTkyODUseWVsbG93OjE2Nzc2OTYwLHllbGxvd2dyZWVuOjEwMTQ1MDc0fTtmdW5jdGlvbiBzZSgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIGNlKCl7cmV0dXJu''@;'; put 'put ''IHRoaXMucmdiKCkuZm9ybWF0UmdiKCl9ZnVuY3Rpb24gZGUoUCl7dmFyIFYsVDtyZXR1cm4gUD0oUCsiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksKFY9cmUuZXhlYyhQKSk/KFQ9VlsxXS5sZW5ndGgsVj1wYXJzZUludChWWzFdLDE2KSw2PT09VD92ZShWKTozPT09VD9uZXcgSWUoVj4+OCYx''@;'; put 'put ''NXxWPj40JjI0MCxWPj40JjE1fDI0MCZWLCgxNSZWKTw8NHwxNSZWLDEpOjg9PT1UP0FlKFY+PjI0JjI1NSxWPj4xNiYyNTUsVj4+OCYyNTUsKDI1NSZWKS8yNTUpOjQ9PT1UP0FlKFY+PjEyJjE1fFY+PjgmMjQwLFY+PjgmMTV8Vj4+NCYyNDAsVj4+NCYxNXwyNDAmViwoKDE1JlYpPDw0fDE1''@;'; put 'put ''JlYpLzI1NSk6bnVsbCk6KFY9YWUuZXhlYyhQKSk/bmV3IEllKFZbMV0sVlsyXSxWWzNdLDEpOihWPVkuZXhlYyhQKSk/bmV3IEllKDI1NSpWWzFdLzEwMCwyNTUqVlsyXS8xMDAsMjU1KlZbM10vMTAwLDEpOihWPVcuZXhlYyhQKSk/QWUoVlsxXSxWWzJdLFZbM10sVls0XSk6KFY9Ti5leGVj''@;'; put 'put ''KFApKT9BZSgyNTUqVlsxXS8xMDAsMjU1KlZbMl0vMTAwLDI1NSpWWzNdLzEwMCxWWzRdKTooVj10ZS5leGVjKFApKT9PKFZbMV0sVlsyXS8xMDAsVlszXS8xMDAsMSk6KFY9Sy5leGVjKFApKT9PKFZbMV0sVlsyXS8xMDAsVlszXS8xMDAsVls0XSk6Si5oYXNPd25Qcm9wZXJ0eShQKT92ZShK''@;'; put 'put ''W1BdKToidHJhbnNwYXJlbnQiPT09UD9uZXcgSWUoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiB2ZShQKXtyZXR1cm4gbmV3IEllKFA+PjE2JjI1NSxQPj44JjI1NSwyNTUmUCwxKX1mdW5jdGlvbiBBZShQLFYsVCxTKXtyZXR1cm4gUzw9MCYmKFA9Vj1UPU5hTiksbmV3IEllKFAsVixU''@;'; put 'put ''LFMpfWZ1bmN0aW9uIGtlKFApe3JldHVybiBQIGluc3RhbmNlb2YgQnx8KFA9ZGUoUCkpLFA/bmV3IEllKChQPVAucmdiKCkpLnIsUC5nLFAuYixQLm9wYWNpdHkpOm5ldyBJZX1mdW5jdGlvbiBTZShQLFYsVCxTKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/a2UoUCk6bmV3IEllKFAs''@;'; put 'put ''VixULG51bGw9PVM/MTpTKX1mdW5jdGlvbiBJZShQLFYsVCxTKXt0aGlzLnI9K1AsdGhpcy5nPStWLHRoaXMuYj0rVCx0aGlzLm9wYWNpdHk9K1N9ZnVuY3Rpb24gVGUoKXtyZXR1cm4iIyIraGUodGhpcy5yKStoZSh0aGlzLmcpK2hlKHRoaXMuYil9ZnVuY3Rpb24gTWUoKXt2YXIgUD10aGlz''@;'; put 'put ''Lm9wYWNpdHk7cmV0dXJuKDE9PT0oUD1pc05hTihQKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSxQKSkpPyJyZ2IoIjoicmdiYSgiKStNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMucil8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQo''@;'; put 'put ''dGhpcy5nKXx8MCkpKyIsICIrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLmIpfHwwKSkrKDE9PT1QPyIpIjoiLCAiK1ArIikiKX1mdW5jdGlvbiBoZShQKXtyZXR1cm4oKFA9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZChQKXx8MCkpKTwxNj8iMCI6''@;'; put 'put ''IiIpK1AudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIE8oUCxWLFQsUyl7cmV0dXJuIFM8PTA/UD1WPVQ9TmFOOlQ8PTB8fFQ+PTE/UD1WPU5hTjpWPD0wJiYoUD1OYU4pLG5ldyBuZShQLFYsVCxTKX1mdW5jdGlvbiB6KFApe2lmKFAgaW5zdGFuY2VvZiBuZSlyZXR1cm4gbmV3IG5lKFAuaCxQLnMs''@;'; put 'put ''UC5sLFAub3BhY2l0eSk7aWYoUCBpbnN0YW5jZW9mIEJ8fChQPWRlKFApKSwhUClyZXR1cm4gbmV3IG5lO2lmKFAgaW5zdGFuY2VvZiBuZSlyZXR1cm4gUDt2YXIgVj0oUD1QLnJnYigpKS5yLzI1NSxUPVAuZy8yNTUsUz1QLmIvMjU1LEY9TWF0aC5taW4oVixULFMpLHllPU1hdGgubWF4KFYs''@;'; put 'put ''VCxTKSxDZT1OYU4sRGU9eWUtRixQZT0oeWUrRikvMjtyZXR1cm4gRGU/KENlPVY9PT15ZT8oVC1TKS9EZSs2KihUPFMpOlQ9PT15ZT8oUy1WKS9EZSsyOihWLVQpL0RlKzQsRGUvPVBlPC41P3llK0Y6Mi15ZS1GLENlKj02MCk6RGU9UGU+MCYmUGU8MT8wOkNlLG5ldyBuZShDZSxEZSxQZSxQ''@;'; put 'put ''Lm9wYWNpdHkpfWZ1bmN0aW9uIGVlKFAsVixULFMpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD96KFApOm5ldyBuZShQLFYsVCxudWxsPT1TPzE6Uyl9ZnVuY3Rpb24gbmUoUCxWLFQsUyl7dGhpcy5oPStQLHRoaXMucz0rVix0aGlzLmw9K1QsdGhpcy5vcGFjaXR5PStTfWZ1bmN0aW9u''@;'; put 'put ''IHgoUCxWLFQpe3JldHVybiAyNTUqKFA8NjA/VisoVC1WKSpQLzYwOlA8MTgwP1Q6UDwyNDA/VisoVC1WKSooMjQwLVApLzYwOlYpfSgwLG1lLlopKEIsZGUse2NvcHk6ZnVuY3Rpb24oUCl7cmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IHRoaXMuY29uc3RydWN0b3IsdGhpcyxQKX0sZGlzcGxh''@;'; put 'put ''eWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZ2IoKS5kaXNwbGF5YWJsZSgpfSxoZXg6c2UsZm9ybWF0SGV4OnNlLGZvcm1hdEhzbDpmdW5jdGlvbiBvZSgpe3JldHVybiB6KHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6Y2UsdG9TdHJpbmc6Y2V9KSwoMCxtZS5aKShJZSxTZSwo''@;'; put 'put ''MCxtZS5sKShCLHticmlnaHRlcjpmdW5jdGlvbihQKXtyZXR1cm4gUD1udWxsPT1QP0VlOk1hdGgucG93KEVlLFApLG5ldyBJZSh0aGlzLnIqUCx0aGlzLmcqUCx0aGlzLmIqUCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24oUCl7cmV0dXJuIFA9bnVsbD09UD9FOk1hdGgucG93KEUs''@;'; put 'put ''UCksbmV3IEllKHRoaXMucipQLHRoaXMuZypQLHRoaXMuYipQLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiB0aGlzfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybi0uNTw9dGhpcy5yJiZ0aGlzLnI8MjU1LjUmJi0uNTw9dGhpcy5nJiZ0aGlzLmc8MjU1LjUmJi0u''@;'; put 'put ''NTw9dGhpcy5iJiZ0aGlzLmI8MjU1LjUmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxoZXg6VGUsZm9ybWF0SGV4OlRlLGZvcm1hdFJnYjpNZSx0b1N0cmluZzpNZX0pKSwoMCxtZS5aKShuZSxlZSwoMCxtZS5sKShCLHticmlnaHRlcjpmdW5jdGlvbihQKXtyZXR1cm4gUD1u''@;'; put 'put ''dWxsPT1QP0VlOk1hdGgucG93KEVlLFApLG5ldyBuZSh0aGlzLmgsdGhpcy5zLHRoaXMubCpQLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihQKXtyZXR1cm4gUD1udWxsPT1QP0U6TWF0aC5wb3coRSxQKSxuZXcgbmUodGhpcy5oLHRoaXMucyx0aGlzLmwqUCx0aGlzLm9wYWNpdHkp''@;'; put 'put ''fSxyZ2I6ZnVuY3Rpb24oKXt2YXIgUD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLFY9aXNOYU4oUCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMsVD10aGlzLmwsUz1UKyhUPC41P1Q6MS1UKSpWLEY9MipULVM7cmV0dXJuIG5ldyBJZSh4KFA+PTI0MD9QLTI0MDpQKzEyMCxGLFMpLHgoUCxG''@;'; put 'put ''LFMpLHgoUDwxMjA/UCsyNDA6UC0xMjAsRixTKSx0aGlzLm9wYWNpdHkpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybigwPD10aGlzLnMmJnRoaXMuczw9MXx8aXNOYU4odGhpcy5zKSkmJjA8PXRoaXMubCYmdGhpcy5sPD0xJiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9''@;'; put 'put ''MX0sZm9ybWF0SHNsOmZ1bmN0aW9uKCl7dmFyIFA9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KFA9aXNOYU4oUCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsUCkpKT8iaHNsKCI6ImhzbGEoIikrKHRoaXMuaHx8MCkrIiwgIisxMDAqKHRoaXMuc3x8MCkrIiUsICIrMTAwKih0aGlzLmx8fDAp''@;'; put 'put ''KyIlIisoMT09PVA/IikiOiIsICIrUCsiKSIpfX0pKX0sNjg4ODQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEUsRWUsVSl7RS5wcm90b3R5cGU9RWUucHJvdG90eXBlPVUsVS5jb25zdHJ1Y3Rvcj1FfWZ1bmN0aW9uIEIoRSxFZSl7dmFyIFU9T2JqZWN0LmNyZWF0ZShF''@;'; put 'put ''LnByb3RvdHlwZSk7Zm9yKHZhciBRIGluIEVlKVVbUV09RWVbUV07cmV0dXJuIFV9TC5kKEplLHtaOigpPT5tZSxsOigpPT5CfSl9LDI1OTIyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9Pmp9KTt2YXIgbWU9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gQigp''@;'; put 'put ''e2Zvcih2YXIgVyxyZT0wLGFlPWFyZ3VtZW50cy5sZW5ndGgsWT17fTtyZTxhZTsrK3JlKXtpZighKFc9YXJndW1lbnRzW3JlXSsiIil8fFcgaW4gWXx8L1tccy5dLy50ZXN0KFcpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK1cpO1lbV109W119cmV0dXJuIG5ldyBFKFkpfWZ1''@;'; put 'put ''bmN0aW9uIEUocmUpe3RoaXMuXz1yZX1mdW5jdGlvbiBFZShyZSxhZSl7cmV0dXJuIHJlLnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoZnVuY3Rpb24oWSl7dmFyIFc9IiIsTj1ZLmluZGV4T2YoIi4iKTtpZihOPj0wJiYoVz1ZLnNsaWNlKE4rMSksWT1ZLnNsaWNlKDAsTikpLFkmJiFhZS5o''@;'; put 'put ''YXNPd25Qcm9wZXJ0eShZKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIitZKTtyZXR1cm57dHlwZTpZLG5hbWU6V319KX1mdW5jdGlvbiBVKHJlLGFlKXtmb3IodmFyIE4sWT0wLFc9cmUubGVuZ3RoO1k8VzsrK1kpaWYoKE49cmVbWV0pLm5hbWU9PT1hZSlyZXR1cm4gTi52YWx1''@;'; put 'put ''ZX1mdW5jdGlvbiBRKHJlLGFlLFkpe2Zvcih2YXIgVz0wLE49cmUubGVuZ3RoO1c8TjsrK1cpaWYocmVbV10ubmFtZT09PWFlKXtyZVtXXT1tZSxyZT1yZS5zbGljZSgwLFcpLmNvbmNhdChyZS5zbGljZShXKzEpKTticmVha31yZXR1cm4gbnVsbCE9WSYmcmUucHVzaCh7bmFtZTphZSx2YWx1''@;'; put 'put ''ZTpZfSkscmV9RS5wcm90b3R5cGU9Qi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOkUsb246ZnVuY3Rpb24ocmUsYWUpe3ZhciBOLFk9dGhpcy5fLFc9RWUocmUrIiIsWSksdGU9LTEsSz1XLmxlbmd0aDtpZighKGFyZ3VtZW50cy5sZW5ndGg8Mikpe2lmKG51bGwhPWFlJiYiZnVuY3Rpb24iIT10''@;'; put 'put ''eXBlb2YgYWUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2FlKTtmb3IoOysrdGU8SzspaWYoTj0ocmU9V1t0ZV0pLnR5cGUpWVtOXT1RKFlbTl0scmUubmFtZSxhZSk7ZWxzZSBpZihudWxsPT1hZSlmb3IoTiBpbiBZKVlbTl09UShZW05dLHJlLm5hbWUsbnVsbCk7cmV0''@;'; put 'put ''dXJuIHRoaXN9Zm9yKDsrK3RlPEs7KWlmKChOPShyZT1XW3RlXSkudHlwZSkmJihOPVUoWVtOXSxyZS5uYW1lKSkpcmV0dXJuIE59LGNvcHk6ZnVuY3Rpb24oKXt2YXIgcmU9e30sYWU9dGhpcy5fO2Zvcih2YXIgWSBpbiBhZSlyZVtZXT1hZVtZXS5zbGljZSgpO3JldHVybiBuZXcgRShyZSl9''@;'; put 'put ''LGNhbGw6ZnVuY3Rpb24ocmUsYWUpe2lmKChOPWFyZ3VtZW50cy5sZW5ndGgtMik+MClmb3IodmFyIE4sdGUsWT1uZXcgQXJyYXkoTiksVz0wO1c8TjsrK1cpWVtXXT1hcmd1bWVudHNbVysyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHJlKSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24g''@;'; put 'put ''dHlwZTogIityZSk7Zm9yKFc9MCxOPSh0ZT10aGlzLl9bcmVdKS5sZW5ndGg7VzxOOysrVyl0ZVtXXS52YWx1ZS5hcHBseShhZSxZKX0sYXBwbHk6ZnVuY3Rpb24ocmUsYWUsWSl7aWYoIXRoaXMuXy5oYXNPd25Qcm9wZXJ0eShyZSkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIr''@;'; put 'put ''cmUpO2Zvcih2YXIgVz10aGlzLl9bcmVdLE49MCx0ZT1XLmxlbmd0aDtOPHRlOysrTilXW05dLnZhbHVlLmFwcGx5KGFlLFkpfX07Y29uc3Qgaj1CfSw4NTEwNjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5yKEplKSxMLmQoSmUse2Rpc3BhdGNoOigpPT5tZS5afSk7dmFyIG1lPUwoMjU5''@;'; put 'put ''MjIpfSw2NTk5MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihUZSxNZSl7aWYoKGhlPShUZT1NZT9UZS50b0V4cG9uZW50aWFsKE1lLTEpOlRlLnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciBoZSxPPVRlLnNsaWNlKDAsaGUpO3Jl''@;'; put 'put ''dHVybltPLmxlbmd0aD4xP09bMF0rTy5zbGljZSgyKTpPLCtUZS5zbGljZShoZSsxKV19ZnVuY3Rpb24gRShUZSl7cmV0dXJuKFRlPUIoTWF0aC5hYnMoVGUpKSk/VGVbMV06TmFOfUwucihKZSksTC5kKEplLHtGb3JtYXRTcGVjaWZpZXI6KCk9PnJlLGZvcm1hdDooKT0+ZGUsZm9ybWF0RGVm''@;'; put 'put ''YXVsdExvY2FsZTooKT0+QWUsZm9ybWF0TG9jYWxlOigpPT5vZSxmb3JtYXRQcmVmaXg6KCk9PnZlLGZvcm1hdFNwZWNpZmllcjooKT0+aixwcmVjaXNpb25GaXhlZDooKT0+a2UscHJlY2lzaW9uUHJlZml4OigpPT5TZSxwcmVjaXNpb25Sb3VuZDooKT0+SWV9KTt2YXIgWSxRPS9eKD86KC4p''@;'; put 'put ''PyhbPD49Xl0pKT8oWytcLSggXSk/KFskI10pPygwKT8oXGQrKT8oLCk/KFwuXGQrKT8ofik/KFthLXolXSk/JC9pO2Z1bmN0aW9uIGooVGUpe2lmKCEoTWU9US5leGVjKFRlKSkpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGZvcm1hdDogIitUZSk7dmFyIE1lO3JldHVybiBuZXcgcmUoe2Zp''@;'; put 'put ''bGw6TWVbMV0sYWxpZ246TWVbMl0sc2lnbjpNZVszXSxzeW1ib2w6TWVbNF0semVybzpNZVs1XSx3aWR0aDpNZVs2XSxjb21tYTpNZVs3XSxwcmVjaXNpb246TWVbOF0mJk1lWzhdLnNsaWNlKDEpLHRyaW06TWVbOV0sdHlwZTpNZVsxMF19KX1mdW5jdGlvbiByZShUZSl7dGhpcy5maWxsPXZv''@;'; put 'put ''aWQgMD09PVRlLmZpbGw/IiAiOlRlLmZpbGwrIiIsdGhpcy5hbGlnbj12b2lkIDA9PT1UZS5hbGlnbj8iPiI6VGUuYWxpZ24rIiIsdGhpcy5zaWduPXZvaWQgMD09PVRlLnNpZ24/Ii0iOlRlLnNpZ24rIiIsdGhpcy5zeW1ib2w9dm9pZCAwPT09VGUuc3ltYm9sPyIiOlRlLnN5bWJvbCsiIix0''@;'; put 'put ''aGlzLnplcm89ISFUZS56ZXJvLHRoaXMud2lkdGg9dm9pZCAwPT09VGUud2lkdGg/dm9pZCAwOitUZS53aWR0aCx0aGlzLmNvbW1hPSEhVGUuY29tbWEsdGhpcy5wcmVjaXNpb249dm9pZCAwPT09VGUucHJlY2lzaW9uP3ZvaWQgMDorVGUucHJlY2lzaW9uLHRoaXMudHJpbT0hIVRlLnRyaW0s''@;'; put 'put ''dGhpcy50eXBlPXZvaWQgMD09PVRlLnR5cGU/IiI6VGUudHlwZSsiIn1mdW5jdGlvbiBOKFRlLE1lKXt2YXIgaGU9QihUZSxNZSk7aWYoIWhlKXJldHVybiBUZSsiIjt2YXIgTz1oZVswXSx6PWhlWzFdO3JldHVybiB6PDA/IjAuIituZXcgQXJyYXkoLXopLmpvaW4oIjAiKStPOk8ubGVuZ3Ro''@;'; put 'put ''PnorMT9PLnNsaWNlKDAseisxKSsiLiIrTy5zbGljZSh6KzEpOk8rbmV3IEFycmF5KHotTy5sZW5ndGgrMikuam9pbigiMCIpfWoucHJvdG90eXBlPXJlLnByb3RvdHlwZSxyZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5z''@;'; put 'put ''aWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodm9pZCAwPT09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHZvaWQgMD09PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24p''@;'; put 'put ''KSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTtjb25zdCB0ZT17IiUiOmZ1bmN0aW9uKFRlLE1lKXtyZXR1cm4oMTAwKlRlKS50b0ZpeGVkKE1lKX0sYjpmdW5jdGlvbihUZSl7cmV0dXJuIE1hdGgucm91bmQoVGUpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKFRlKXtyZXR1cm4gVGUr''@;'; put 'put ''IiJ9LGQ6ZnVuY3Rpb24gbWUoVGUpe3JldHVybiBNYXRoLmFicyhUZT1NYXRoLnJvdW5kKFRlKSk+PTFlMjE/VGUudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTpUZS50b1N0cmluZygxMCl9LGU6ZnVuY3Rpb24oVGUsTWUpe3JldHVybiBUZS50b0V4cG9uZW50aWFsKE1l''@;'; put 'put ''KX0sZjpmdW5jdGlvbihUZSxNZSl7cmV0dXJuIFRlLnRvRml4ZWQoTWUpfSxnOmZ1bmN0aW9uKFRlLE1lKXtyZXR1cm4gVGUudG9QcmVjaXNpb24oTWUpfSxvOmZ1bmN0aW9uKFRlKXtyZXR1cm4gTWF0aC5yb3VuZChUZSkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24oVGUsTWUpe3JldHVybiBO''@;'; put 'put ''KDEwMCpUZSxNZSl9LHI6TixzOmZ1bmN0aW9uIFcoVGUsTWUpe3ZhciBoZT1CKFRlLE1lKTtpZighaGUpcmV0dXJuIFRlKyIiO3ZhciBPPWhlWzBdLHo9aGVbMV0sZWU9ei0oWT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcih6LzMpKSkpKzEsbmU9Ty5sZW5ndGg7cmV0dXJu''@;'; put 'put ''IGVlPT09bmU/TzplZT5uZT9PK25ldyBBcnJheShlZS1uZSsxKS5qb2luKCIwIik6ZWU+MD9PLnNsaWNlKDAsZWUpKyIuIitPLnNsaWNlKGVlKToiMC4iK25ldyBBcnJheSgxLWVlKS5qb2luKCIwIikrQihUZSxNYXRoLm1heCgwLE1lK2VlLTEpKVswXX0sWDpmdW5jdGlvbihUZSl7cmV0dXJu''@;'; put 'put ''IE1hdGgucm91bmQoVGUpLnRvU3RyaW5nKDE2KS50b1VwcGVyQ2FzZSgpfSx4OmZ1bmN0aW9uKFRlKXtyZXR1cm4gTWF0aC5yb3VuZChUZSkudG9TdHJpbmcoMTYpfX07ZnVuY3Rpb24gSyhUZSl7cmV0dXJuIFRlfXZhciBjZSxkZSx2ZSxKPUFycmF5LnByb3RvdHlwZS5tYXAsc2U9WyJ5Iiwi''@;'; put 'put ''eiIsImEiLCJmIiwicCIsIm4iLCJceGI1IiwibSIsIiIsImsiLCJNIiwiRyIsIlQiLCJQIiwiRSIsIloiLCJZIl07ZnVuY3Rpb24gb2UoVGUpe3ZhciBNZT12b2lkIDA9PT1UZS5ncm91cGluZ3x8dm9pZCAwPT09VGUudGhvdXNhbmRzP0s6ZnVuY3Rpb24gRWUoVGUsTWUpe3JldHVybiBmdW5j''@;'; put 'put ''dGlvbihoZSxPKXtmb3IodmFyIHo9aGUubGVuZ3RoLGVlPVtdLG5lPTAseD1UZVswXSxQPTA7ej4wJiZ4PjAmJihQK3grMT5PJiYoeD1NYXRoLm1heCgxLE8tUCkpLGVlLnB1c2goaGUuc3Vic3RyaW5nKHotPXgseit4KSksISgoUCs9eCsxKT5PKSk7KXg9VGVbbmU9KG5lKzEpJVRlLmxlbmd0''@;'; put 'put ''aF07cmV0dXJuIGVlLnJldmVyc2UoKS5qb2luKE1lKX19KEouY2FsbChUZS5ncm91cGluZyxOdW1iZXIpLFRlLnRob3VzYW5kcysiIiksaGU9dm9pZCAwPT09VGUuY3VycmVuY3k/IiI6VGUuY3VycmVuY3lbMF0rIiIsTz12b2lkIDA9PT1UZS5jdXJyZW5jeT8iIjpUZS5jdXJyZW5jeVsxXSsi''@;'; put 'put ''Iix6PXZvaWQgMD09PVRlLmRlY2ltYWw/Ii4iOlRlLmRlY2ltYWwrIiIsZWU9dm9pZCAwPT09VGUubnVtZXJhbHM/SzpmdW5jdGlvbiBVKFRlKXtyZXR1cm4gZnVuY3Rpb24oTWUpe3JldHVybiBNZS5yZXBsYWNlKC9bMC05XS9nLGZ1bmN0aW9uKGhlKXtyZXR1cm4gVGVbK2hlXX0pfX0oSi5j''@;'; put 'put ''YWxsKFRlLm51bWVyYWxzLFN0cmluZykpLG5lPXZvaWQgMD09PVRlLnBlcmNlbnQ/IiUiOlRlLnBlcmNlbnQrIiIseD12b2lkIDA9PT1UZS5taW51cz8iLSI6VGUubWludXMrIiIsUD12b2lkIDA9PT1UZS5uYW4/Ik5hTiI6VGUubmFuKyIiO2Z1bmN0aW9uIFYoUyl7dmFyIEY9KFM9aihTKSku''@;'; put 'put ''ZmlsbCx5ZT1TLmFsaWduLENlPVMuc2lnbixEZT1TLnN5bWJvbCxQZT1TLnplcm8sUWU9Uy53aWR0aCwkZT1TLmNvbW1hLGd0PVMucHJlY2lzaW9uLHd0PVMudHJpbSxtdD1TLnR5cGU7Im4iPT09bXQ/KCRlPSEwLG10PSJnIik6dGVbbXRdfHwodm9pZCAwPT09Z3QmJihndD0xMiksd3Q9ITAs''@;'; put 'put ''bXQ9ImciKSwoUGV8fCIwIj09PUYmJiI9Ij09PXllKSYmKFBlPSEwLEY9IjAiLHllPSI9Iik7dmFyIHZ0PSIkIj09PURlP2hlOiIjIj09PURlJiYvW2JveFhdLy50ZXN0KG10KT8iMCIrbXQudG9Mb3dlckNhc2UoKToiIixBdD0iJCI9PT1EZT9POi9bJXBdLy50ZXN0KG10KT9uZToiIixodD10''@;'; put 'put ''ZVttdF0sQnQ9L1tkZWZncHJzJV0vLnRlc3QobXQpO2Z1bmN0aW9uIG9uKF90KXt2YXIgbHQsTHQsQ3QsdHQ9dnQsZXQ9QXQ7aWYoImMiPT09bXQpZXQ9aHQoX3QpK2V0LF90PSIiO2Vsc2V7dmFyIGZ0PShfdD0rX3QpPDB8fDEvX3Q8MDtpZihfdD1pc05hTihfdCk/UDpodChNYXRoLmFicyhf''@;'; put 'put ''dCksZ3QpLHd0JiYoX3Q9ZnVuY3Rpb24gYWUoVGUpe2U6Zm9yKHZhciB6LE1lPVRlLmxlbmd0aCxoZT0xLE89LTE7aGU8TWU7KytoZSlzd2l0Y2goVGVbaGVdKXtjYXNlIi4iOk89ej1oZTticmVhaztjYXNlIjAiOjA9PT1PJiYoTz1oZSksej1oZTticmVhaztkZWZhdWx0OmlmKCErVGVbaGVd''@;'; put 'put ''KWJyZWFrIGU7Tz4wJiYoTz0wKX1yZXR1cm4gTz4wP1RlLnNsaWNlKDAsTykrVGUuc2xpY2UoeisxKTpUZX0oX3QpKSxmdCYmMD09K190JiYiKyIhPT1DZSYmKGZ0PSExKSx0dD0oZnQ/IigiPT09Q2U/Q2U6eDoiLSI9PT1DZXx8IigiPT09Q2U/IiI6Q2UpK3R0LGV0PSgicyI9PT1tdD9zZVs4''@;'; put 'put ''K1kvM106IiIpK2V0KyhmdCYmIigiPT09Q2U/IikiOiIiKSxCdClmb3IobHQ9LTEsTHQ9X3QubGVuZ3RoOysrbHQ8THQ7KWlmKDQ4PihDdD1fdC5jaGFyQ29kZUF0KGx0KSl8fEN0PjU3KXtldD0oNDY9PT1DdD96K190LnNsaWNlKGx0KzEpOl90LnNsaWNlKGx0KSkrZXQsX3Q9X3Quc2xpY2Uo''@;'; put 'put ''MCxsdCk7YnJlYWt9fSRlJiYhUGUmJihfdD1NZShfdCwxLzApKTt2YXIgSHQ9dHQubGVuZ3RoK190Lmxlbmd0aCtldC5sZW5ndGgsR2U9SHQ8UWU/bmV3IEFycmF5KFFlLUh0KzEpLmpvaW4oRik6IiI7c3dpdGNoKCRlJiZQZSYmKF90PU1lKEdlK190LEdlLmxlbmd0aD9RZS1ldC5sZW5ndGg6''@;'; put 'put ''MS8wKSxHZT0iIikseWUpe2Nhc2UiPCI6X3Q9dHQrX3QrZXQrR2U7YnJlYWs7Y2FzZSI9IjpfdD10dCtHZStfdCtldDticmVhaztjYXNlIl4iOl90PUdlLnNsaWNlKDAsSHQ9R2UubGVuZ3RoPj4xKSt0dCtfdCtldCtHZS5zbGljZShIdCk7YnJlYWs7ZGVmYXVsdDpfdD1HZSt0dCtfdCtldH1y''@;'; put 'put ''ZXR1cm4gZWUoX3QpfXJldHVybiBndD12b2lkIDA9PT1ndD82Oi9bZ3Byc10vLnRlc3QobXQpP01hdGgubWF4KDEsTWF0aC5taW4oMjEsZ3QpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLGd0KSksb24udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gUysiIn0sb259cmV0dXJue2Zvcm1hdDpW''@;'; put 'put ''LGZvcm1hdFByZWZpeDpmdW5jdGlvbiBUKFMsRil7dmFyIHllPVYoKChTPWooUykpLnR5cGU9ImYiLFMpKSxDZT0zKk1hdGgubWF4KC04LE1hdGgubWluKDgsTWF0aC5mbG9vcihFKEYpLzMpKSksRGU9TWF0aC5wb3coMTAsLUNlKSxQZT1zZVs4K0NlLzNdO3JldHVybiBmdW5jdGlvbihRZSl7''@;'; put 'put ''cmV0dXJuIHllKERlKlFlKStQZX19fX1mdW5jdGlvbiBBZShUZSl7cmV0dXJuIGNlPW9lKFRlKSxkZT1jZS5mb3JtYXQsdmU9Y2UuZm9ybWF0UHJlZml4LGNlfWZ1bmN0aW9uIGtlKFRlKXtyZXR1cm4gTWF0aC5tYXgoMCwtRShNYXRoLmFicyhUZSkpKX1mdW5jdGlvbiBTZShUZSxNZSl7cmV0''@;'; put 'put ''dXJuIE1hdGgubWF4KDAsMypNYXRoLm1heCgtOCxNYXRoLm1pbig4LE1hdGguZmxvb3IoRShNZSkvMykpKS1FKE1hdGguYWJzKFRlKSkpfWZ1bmN0aW9uIEllKFRlLE1lKXtyZXR1cm4gVGU9TWF0aC5hYnMoVGUpLE1lPU1hdGguYWJzKE1lKS1UZSxNYXRoLm1heCgwLEUoTWUpLUUoVGUpKSsx''@;'; put 'put ''fUFlKHtkZWNpbWFsOiIuIix0aG91c2FuZHM6IiwiLGdyb3VwaW5nOlszXSxjdXJyZW5jeTpbIiQiLCIiXSxtaW51czoiLSJ9KX0sOTkyMTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUsQixFLEVlLFUsUSxqLHJlLGFlLFkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBXKG1uKXt2YXIg''@;'; put 'put ''dW49e30sY249bW4ubm9kZSgpLm5vZGVOYW1lO3VuLnRhZz1jbiwiI3RleHQiPT1jbj91bi50ZXh0PW1uLnRleHQoKToiI2NvbW1lbnQiPT1jbiYmKHVuLmNvbW1lbnQ9bW4udGV4dCgpKSx1bi5hdHRyaWJ1dGVzPXt9O3ZhciBfbj1tbi5ub2RlKCkuYXR0cmlidXRlcztpZihfbilmb3IodmFy''@;'; put 'put ''IEd0PTA7R3Q8X24ubGVuZ3RoO0d0Kyspe3ZhciBrbj1fbltHdF07dW4uYXR0cmlidXRlc1trbi5uYW1lXT1rbi52YWx1ZX12YXIgb3IsSW49bW4ubm9kZSgpLnRyYW5zZm9ybTtpZihJbiYmMCE9SW4uYmFzZVZhbC5udW1iZXJPZkl0ZW1zKXt2YXIgSm49SW4uYmFzZVZhbC5jb25zb2xpZGF0''@;'; put 'put ''ZSgpLm1hdHJpeDt1bi50cmFuc2xhdGlvbj17eDpKbi5lLHk6Sm4uZn0sdW4uc2NhbGU9Sm4uYX1pZigiZWxsaXBzZSI9PWNuJiYodW4uY2VudGVyPXt4OnVuLmF0dHJpYnV0ZXMuY3gseTp1bi5hdHRyaWJ1dGVzLmN5fSksInBvbHlnb24iPT1jbil7dmFyIGdyPShvcj1tbi5hdHRyKCJwb2lu''@;'; put 'put ''dHMiKS5zcGxpdCgiICIpKS5tYXAoZnVuY3Rpb24objApe3JldHVybiBuMC5zcGxpdCgiLCIpWzBdfSksS3I9b3IubWFwKGZ1bmN0aW9uKG4wKXtyZXR1cm4gbjAuc3BsaXQoIiwiKVsxXX0pLFZyPU1hdGgubWluLmFwcGx5KG51bGwsZ3IpLGlpPU1hdGgubWF4LmFwcGx5KG51bGwsZ3IpLFJy''@;'; put 'put ''PU1hdGgubWluLmFwcGx5KG51bGwsS3IpLGxpPU1hdGgubWF4LmFwcGx5KG51bGwsS3IpO3VuLmJib3g9e3g6VnIseTpScix3aWR0aDppaS1WcixoZWlnaHQ6bGktUnJ9LHVuLmNlbnRlcj17eDooVnIraWkpLzIseTooUnIrbGkpLzJ9fXJldHVybiJwYXRoIj09Y24mJigob3I9bW4uYXR0cigi''@;'; put 'put ''ZCIpLnNwbGl0KC9bQS1aIF0vKSkuc2hpZnQoKSxncj1vci5tYXAoZnVuY3Rpb24oY2Epe3JldHVybitjYS5zcGxpdCgiLCIpWzBdfSksS3I9b3IubWFwKGZ1bmN0aW9uKGNhKXtyZXR1cm4rY2Euc3BsaXQoIiwiKVsxXX0pLFZyPU1hdGgubWluLmFwcGx5KG51bGwsZ3IpLGlpPU1hdGgubWF4''@;'; put 'put ''LmFwcGx5KG51bGwsZ3IpLFJyPU1hdGgubWluLmFwcGx5KG51bGwsS3IpLGxpPU1hdGgubWF4LmFwcGx5KG51bGwsS3IpLHVuLmJib3g9e3g6VnIseTpScix3aWR0aDppaS1WcixoZWlnaHQ6bGktUnJ9LHVuLmNlbnRlcj17eDooVnIraWkpLzIseTooUnIrbGkpLzJ9LHVuLnRvdGFsTGVuZ3Ro''@;'; put 'put ''PW1uLm5vZGUoKS5nZXRUb3RhbExlbmd0aCgpKSwidGV4dCI9PWNuJiYodW4uY2VudGVyPXt4Om1uLmF0dHIoIngiKSx5Om1uLmF0dHIoInkiKX0pLCIjdGV4dCI9PWNuP3VuLnRleHQ9bW4udGV4dCgpOiIjY29tbWVudCI9PWNuJiYodW4uY29tbWVudD1tbi50ZXh0KCkpLHVufWZ1bmN0aW9u''@;'; put 'put ''IE4obW4pe3ZhciB1bj1XKG1uKTtyZXR1cm4gdW4uY2hpbGRyZW49W10sQi5zZWxlY3RBbGwobW4ubm9kZSgpLmNoaWxkTm9kZXMpLmVhY2goZnVuY3Rpb24oKXt2YXIgX249TihCLnNlbGVjdCh0aGlzKSk7X24ucGFyZW50PXVuLHVuLmNoaWxkcmVuLnB1c2goX24pfSksdW59ZnVuY3Rpb24g''@;'; put 'put ''dGUobW4pe3JldHVybiIjdGV4dCI9PW1uLnRhZz9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIik6IiNjb21tZW50Ij09bW4udGFnP2RvY3VtZW50LmNyZWF0ZUNvbW1lbnQobW4uY29tbWVudCk6ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIs''@;'; put 'put ''bW4udGFnKX1mdW5jdGlvbiBLKG1uKXt2YXIgdW49dGUobW4pLGNuPUIuc2VsZWN0KHVuKSxfbj1tbi5hdHRyaWJ1dGVzLEd0PSEwLGtuPSExLFZuPXZvaWQgMDt0cnl7Zm9yKHZhciBJbixlbj1PYmplY3Qua2V5cyhfbilbU3ltYm9sLml0ZXJhdG9yXSgpOyEoR3Q9KEluPWVuLm5leHQoKSku''@;'; put 'put ''ZG9uZSk7R3Q9ITApe3ZhciBKbj1Jbi52YWx1ZTtjbi5hdHRyKEpuLF9uW0puXSl9fWNhdGNoKGdyKXtrbj0hMCxWbj1ncn1maW5hbGx5e3RyeXshR3QmJmVuLnJldHVybiYmZW4ucmV0dXJuKCl9ZmluYWxseXtpZihrbil0aHJvdyBWbn19cmV0dXJuIHVufWZ1bmN0aW9uIEoobW4sdW4pe3Zh''@;'; put 'put ''ciBjbj1CLnNlbGVjdChtbi5ub2RlKCkucGFyZW50Tm9kZSksX249Syh1biksR3Q9Y24uaW5zZXJ0KGZ1bmN0aW9uKCl7cmV0dXJuIF9ufSxmdW5jdGlvbigpe3JldHVybiBtbi5ub2RlKCl9KTtyZXR1cm4gbW4ucmVtb3ZlKCksR3R9ZnVuY3Rpb24gb2UobW4sdW4peyhmdW5jdGlvbiBzZSht''@;'; put 'put ''bix1bil7bW4uZGF0dW0odW4pLG1uLmRhdGEoW3VuXSxmdW5jdGlvbihjbil7cmV0dXJuIGNuLmtleX0pfSkobW4sdW4pLEIuc2VsZWN0QWxsKG1uLm5vZGUoKS5jaGlsZE5vZGVzKS5lYWNoKGZ1bmN0aW9uKF9uLEd0KXtvZShCLnNlbGVjdCh0aGlzKSx1bi5jaGlsZHJlbltHdF0pfSl9ZnVu''@;'; put 'put ''Y3Rpb24gY2UobW4sdW4pe3ZhciBjbj1tbi5zZWxlY3RBbGwoZnVuY3Rpb24oKXtyZXR1cm4gbW4ubm9kZSgpLmNoaWxkTm9kZXN9KSxfbj0oY249Y24uZGF0YShmdW5jdGlvbihWbil7cmV0dXJuIFZuLmNoaWxkcmVufSxmdW5jdGlvbihWbil7cmV0dXJuIFZuLnRhZysiLSIrdW59KSkuZW50''@;'; put 'put ''ZXIoKS5hcHBlbmQoZnVuY3Rpb24oVm4pe3JldHVybiB0ZShWbil9KSxHdD1jbi5leGl0KCk7R3Q9R3QucmVtb3ZlKCksY249X24ubWVyZ2UoY24pO3ZhciBrbj17fTtjbi5lYWNoKGZ1bmN0aW9uKFZuKXt2YXIgZW49Vm4udGFnO251bGw9PWtuW2VuXSYmKGtuW2VuXT0wKTt2YXIgSW49a25b''@;'; put 'put ''ZW5dKys7ZGUuY2FsbCh0aGlzLFZuLEluKX0pfWZ1bmN0aW9uIGRlKG1uKXt2YXIgdW49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOjAsY249Qi5zZWxlY3QodGhpcyksR3Q9bW4uYXR0cmlidXRlcyxrbj1jbi5ub2RlKCkuYXR0cmlidXRl''@;'; put 'put ''cztpZihrbilmb3IodmFyIFZuPTA7Vm48a24ubGVuZ3RoO1ZuKyspe3ZhciBlbj1rbltWbl0sSW49ZW4ubmFtZTtpZigieG1sbnMiIT1Jbi5zcGxpdCgiOiIpWzBdJiZlbi5uYW1lc3BhY2VVUkkpe3ZhciBKbj1lbi5uYW1lc3BhY2VVUkkuc3BsaXQoIi8iKTtJbj1KbltKbi5sZW5ndGgtMV0r''@;'; put 'put ''IjoiK0lufUluIGluIEd0fHwoR3RbSW5dPW51bGwpfXZhciBncj0hMCxLcj0hMSxWcj12b2lkIDA7dHJ5e2Zvcih2YXIgUnIsaWk9T2JqZWN0LmtleXMoR3QpW1N5bWJvbC5pdGVyYXRvcl0oKTshKGdyPShScj1paS5uZXh0KCkpLmRvbmUpO2dyPSEwKXt2YXIgbGk9UnIudmFsdWU7Y24uYXR0''@;'; put 'put ''cihsaSxHdFtsaV0pfX1jYXRjaChNaSl7S3I9ITAsVnI9TWl9ZmluYWxseXt0cnl7IWdyJiZpaS5yZXR1cm4mJmlpLnJldHVybigpfWZpbmFsbHl7aWYoS3IpdGhyb3cgVnJ9fW1uLnRleHQmJmNuLnRleHQobW4udGV4dCksY2UoY24sdW4pfWZ1bmN0aW9uIHZlKG1uKXtyZXR1cm4gT2JqZWN0''@;'; put 'put ''LmFzc2lnbih7fSxtbil9ZnVuY3Rpb24gQWUobW4pe3JldHVybiBNYXRoLnJvdW5kKDFlNCptbikvMWU0fWZ1bmN0aW9uIFNlKCl7dmFyIGNuPUIuc2VsZWN0KHRoaXMuX3NlbGVjdGlvbi5ub2RlKCkucXVlcnlTZWxlY3Rvcigic3ZnIikpO2lmKDA9PWNuLnNpemUoKSlyZXR1cm4gdGhpczt0''@;'; put 'put ''aGlzLl96b29tU2VsZWN0aW9uPWNuO3ZhciBfbj1qLnpvb20oKS5zY2FsZUV4dGVudCh0aGlzLl9vcHRpb25zLnpvb21TY2FsZUV4dGVudCkudHJhbnNsYXRlRXh0ZW50KHRoaXMuX29wdGlvbnMuem9vbVRyYW5zbGF0ZUV4dGVudCkuaW50ZXJwb2xhdGUoUS5pbnRlcnBvbGF0ZSkub24oInpv''@;'; put 'put ''b20iLGZ1bmN0aW9uIG1uKCl7Qi5zZWxlY3QoY24ubm9kZSgpLnF1ZXJ5U2VsZWN0b3IoImciKSkuYXR0cigidHJhbnNmb3JtIixCLmV2ZW50LnRyYW5zZm9ybSl9KTt0aGlzLl96b29tQmVoYXZpb3I9X247dmFyIEd0PUIuc2VsZWN0KGNuLm5vZGUoKS5xdWVyeVNlbGVjdG9yKCJnIikpO3Jl''@;'; put 'put ''dHVybiBjbi5jYWxsKF9uKSx0aGlzLl9hY3RpdmV8fFRlLmNhbGwodGhpcyxHdCksdGhpcy5fb3JpZ2luYWxUcmFuc2Zvcm09ai56b29tVHJhbnNmb3JtKGNuLm5vZGUoKSksdGhpc31mdW5jdGlvbiBJZShtbil7dmFyIHVuPXRoaXMuX3RyYW5zbGF0aW9uLGNuPXRoaXMuX3NjYWxlLF9uPW1u''@;'; put 'put ''LmRhdHVtKCkudHJhbnNsYXRpb24sR3Q9bW4uZGF0dW0oKS5zY2FsZSxrbj1qLnpvb21UcmFuc2Zvcm0odGhpcy5fem9vbVNlbGVjdGlvbi5ub2RlKCkpO3JldHVybiB1biYmKGtuPShrbj1rbi5zY2FsZSgxL2NuKSkudHJhbnNsYXRlKC11bi54LC11bi55KSksKGtuPWtuLnRyYW5zbGF0ZShf''@;'; put 'put ''bi54LF9uLnkpKS5zY2FsZShHdCl9ZnVuY3Rpb24gVGUobW4pe3RoaXMuX3pvb21CZWhhdmlvci50cmFuc2Zvcm0odGhpcy5fem9vbVNlbGVjdGlvbixJZS5jYWxsKHRoaXMsbW4pKSx0aGlzLl90cmFuc2xhdGlvbj1tbi5kYXR1bSgpLnRyYW5zbGF0aW9uLHRoaXMuX3NjYWxlPW1uLmRhdHVt''@;'; put 'put ''KCkuc2NhbGUsdGhpcy5fb3JpZ2luYWxUcmFuc2Zvcm09ai56b29tSWRlbnRpdHkudHJhbnNsYXRlKG1uLmRhdHVtKCkudHJhbnNsYXRpb24ueCxtbi5kYXR1bSgpLnRyYW5zbGF0aW9uLnkpLnNjYWxlKG1uLmRhdHVtKCkuc2NhbGUpfWZ1bmN0aW9uIG5lKG1uLHVuKXtyZXR1cm4gZnVuY3Rp''@;'; put 'put ''b24oKXt2YXIgY249bW4ubWFwKGZ1bmN0aW9uKF9uKXtyZXR1cm4gUS5pbnRlcnBvbGF0ZShbX25bMF1bMF0sX25bMF1bMV1dLFtfblsxXVswXSxfblsxXVsxXV0pfSk7cmV0dXJuIGZ1bmN0aW9uKF9uKXtyZXR1cm4gX248MT8iTSIrY24ubWFwKGZ1bmN0aW9uKEd0KXtyZXR1cm4gR3QoX24p''@;'; put 'put ''fSkuam9pbigiTCIpOnVufX19ZnVuY3Rpb24gVihtbil7cmV0dXJuImVkZ2UiPT1tbi5hdHRyaWJ1dGVzLmNsYXNzfHwiYSI9PW1uLnRhZyYmImciPT1tbi5wYXJlbnQudGFnJiYiZWRnZSI9PW1uLnBhcmVudC5wYXJlbnQuYXR0cmlidXRlcy5jbGFzc31mdW5jdGlvbiBUKG1uKXtyZXR1cm4g''@;'; put 'put ''bW4ucGFyZW50JiZWKG1uLnBhcmVudCl9ZnVuY3Rpb24gQ2UobW4pe3ZhciB1bj10aGlzLl90cmFuc2l0aW9uLGNuPXRoaXMuX29wdGlvbnMuZmFkZSYmbnVsbCE9dW4sX249dGhpcy5fb3B0aW9ucy50d2VlblBhdGhzLEd0PXRoaXMuX29wdGlvbnMudHdlZW5TaGFwZXMsa249dGhpcy5fb3B0''@;'; put 'put ''aW9ucy5jb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zLFZuPXRoaXMuX29wdGlvbnMuZ3Jvd0VudGVyaW5nRWRnZXMmJm51bGwhPXVuLGVuPXRoaXMuX2F0dHJpYnV0ZXIsSW49dGhpcztmdW5jdGlvbiBvcihScil7dmFyIGxpPUIuc2VsZWN0KHRoaXMpO2lmKCJzdmciPT1Sci50YWcpe3ZhciBN''@;'; put 'put ''aT1Jbi5fb3B0aW9ucztpZihudWxsIT1NaS53aWR0aHx8bnVsbCE9TWkuaGVpZ2h0KXt2YXIgbzA9TWkud2lkdGgsbjA9TWkuaGVpZ2h0O251bGw9PW8wP28wPTQqUnIuYXR0cmlidXRlcy53aWR0aC5yZXBsYWNlKCJwdCIsIiIpLzM6KGxpLmF0dHIoIndpZHRoIixvMCksUnIuYXR0cmlidXRl''@;'; put 'put ''cy53aWR0aD1vMCksbnVsbD09bjA/bjA9NCpSci5hdHRyaWJ1dGVzLmhlaWdodC5yZXBsYWNlKCJwdCIsIiIpLzM6KGxpLmF0dHIoImhlaWdodCIsbjApLFJyLmF0dHJpYnV0ZXMuaGVpZ2h0PW4wKSxNaS5maXR8fChsaS5hdHRyKCJ2aWV3Qm94IiwiMCAwICIrMypvMC80L01pLnNjYWxlKyIg''@;'; put 'put ''IiszKm4wLzQvTWkuc2NhbGUpLFJyLmF0dHJpYnV0ZXMudmlld0JveD0iMCAwICIrMypvMC80L01pLnNjYWxlKyIgIiszKm4wLzQvTWkuc2NhbGUpfTEhPU1pLnNjYWxlJiYoTWkuZml0fHxudWxsPT1NaS53aWR0aCYmbnVsbD09TWkuaGVpZ2h0KSYmKG8wPVJyLmF0dHJpYnV0ZXMudmlld0Jv''@;'; put 'put ''eC5zcGxpdCgiICIpWzJdLG4wPVJyLmF0dHJpYnV0ZXMudmlld0JveC5zcGxpdCgiICIpWzNdLGxpLmF0dHIoInZpZXdCb3giLCIwIDAgIitvMC9NaS5zY2FsZSsiICIrbjAvTWkuc2NhbGUpLFJyLmF0dHJpYnV0ZXMudmlld0JveD0iMCAwICIrbzAvTWkuc2NhbGUrIiAiK24wL01pLnNjYWxl''@;'; put 'put ''KX1lbiYmbGkuZWFjaChlbik7dmFyIGQwPVJyLnRhZyxtMD1Sci5hdHRyaWJ1dGVzLEcwPWxpLm5vZGUoKS5hdHRyaWJ1dGVzO2lmKEcwKWZvcih2YXIgRGk9MDtEaTxHMC5sZW5ndGg7RGkrKyl7dmFyIFcwPUcwW0RpXSxFbz1XMC5uYW1lO2lmKCJ4bWxucyIhPUVvLnNwbGl0KCI6IilbMF0m''@;'; put 'put ''JlcwLm5hbWVzcGFjZVVSSSl7dmFyIHFvPVcwLm5hbWVzcGFjZVVSSS5zcGxpdCgiLyIpO0VvPXFvW3FvLmxlbmd0aC0xXSsiOiIrRW99RW8gaW4gbTB8fChtMFtFb109bnVsbCl9dmFyIGxsPSExLFFpPSExO2lmKEd0JiZ1bil7aWYoKCJwb2x5Z29uIj09dGhpcy5ub2RlTmFtZXx8ImVsbGlw''@;'; put 'put ''c2UiPT10aGlzLm5vZGVOYW1lKSYmUnIuYWx0ZXJuYXRpdmVPbGQmJihRaT0hMCksKCJwb2x5Z29uIj09ZDB8fCJlbGxpcHNlIj09ZDApJiZSci5hbHRlcm5hdGl2ZU5ldyYmKGxsPSEwKSwicG9seWdvbiI9PXRoaXMubm9kZU5hbWUmJiJwb2x5Z29uIj09ZDApe3ZhciBNYT1XKGxpKTtpZigh''@;'; put 'put ''a24pe3ZhciBnbD1NYS5hdHRyaWJ1dGVzLnBvaW50cy5zcGxpdCgiICIpLmxlbmd0aDsoQWk9UnIuYXR0cmlidXRlcy5wb2ludHMpLnNwbGl0KCIgIikubGVuZ3RoPT1nbCYmKGxsPSExLFFpPSExKX19aWYoUWkpe3ZhciBzYT1KKGxpLFJyLmFsdGVybmF0aXZlT2xkKTtzYS5kYXRhKFtScl0s''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gUnIua2V5fSksbGk9c2F9bGwmJihkMD0icGF0aCIsbTA9UnIuYWx0ZXJuYXRpdmVOZXcuYXR0cmlidXRlcyl9dmFyIF9pPWxpO2lmKHVuJiYoX2k9X2kudHJhbnNpdGlvbih1biksY24mJl9pLmZpbHRlcihmdW5jdGlvbihRMil7cmV0dXJuIiMiPT1RMi50YWdb''@;'; put 'put ''MF0/bnVsbDp0aGlzfSkuc3R5bGUoIm9wYWNpdHkiLDEpLF9pLmZpbHRlcihmdW5jdGlvbihRMil7cmV0dXJuIiMiPT1RMi50YWdbMF0/bnVsbDp0aGlzfSkub24oImVuZCIsZnVuY3Rpb24oKXtCLnNlbGVjdCh0aGlzKS5hdHRyKCJzdHlsZSIsbnVsbCl9KSksVm4mJiJwYXRoIj09ZDAmJlJy''@;'; put 'put ''Lm9mZnNldCl7dmFyIEhjPVJyLnRvdGFsTGVuZ3RoO2xpLmF0dHIoInN0cm9rZS1kYXNoYXJyYXkiLEhjKyIgIitIYykuYXR0cigic3Ryb2tlLWRhc2hvZmZzZXQiLEhjKS5hdHRyKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoIitSci5vZmZzZXQueCsiLCIrUnIub2Zmc2V0LnkrIikiKSxtMFsi''@;'; put 'put ''c3Ryb2tlLWRhc2hvZmZzZXQiXT0wLG0wLnRyYW5zZm9ybT0idHJhbnNsYXRlKDAsMCkiLF9pLmF0dHIoInN0cm9rZS1kYXNob2Zmc2V0IixtMFsic3Ryb2tlLWRhc2hvZmZzZXQiXSkuYXR0cigidHJhbnNmb3JtIixtMC50cmFuc2Zvcm0pLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtCLnNlbGVj''@;'; put 'put ''dCh0aGlzKS5zdHlsZSgib3BhY2l0eSIsbnVsbCl9KS5vbigiZW5kIixmdW5jdGlvbigpe0Iuc2VsZWN0KHRoaXMpLmF0dHIoInN0cm9rZS1kYXNob2Zmc2V0IixudWxsKS5hdHRyKCJzdHJva2UtZGFzaGFycmF5IixudWxsKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpfSl9aWYoVm4mJiJwb2x5''@;'; put 'put ''Z29uIj09ZDAmJlQoUnIpJiZSci5vZmZzZXQpe3ZhciBCcz1CLnNlbGVjdChsaS5ub2RlKCkucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yKCJwYXRoIikpLFgwPUJzLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3RoKDApLHVhPUJzLm5vZGUoKS5nZXRQb2ludEF0TGVuZ3RoKFJyLnRvdGFsTGVuZ3Ro''@;'; put 'put ''KSxqMD1Ccy5ub2RlKCkuZ2V0UG9pbnRBdExlbmd0aChSci50b3RhbExlbmd0aC0xKSxCbD0xODAqTWF0aC5hdGFuMih1YS55LWowLnksdWEueC1qMC54KS9NYXRoLlBJLHZuPVgwLngtdWEueCtSci5vZmZzZXQueCxfMD1YMC55LXVhLnkrUnIub2Zmc2V0Lnk7bGkuYXR0cigidHJhbnNmb3Jt''@;'; put 'put ''IiwidHJhbnNsYXRlKCIrdm4rIiwiK18wKyIpIiksX2kuYXR0clR3ZWVuKCJ0cmFuc2Zvcm0iLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKFEyKXt2YXIgczE9QnMubm9kZSgpLmdldFBvaW50QXRMZW5ndGgoUnIudG90YWxMZW5ndGgqUTIpLFowPUJzLm5vZGUoKS5nZXRQb2ludEF0TGVu''@;'; put 'put ''Z3RoKFJyLnRvdGFsTGVuZ3RoKlEyKzEpLGZpPTE4MCpNYXRoLmF0YW4yKFowLnktczEueSxaMC54LXMxLngpL01hdGguUEktQmw7cmV0dXJuInRyYW5zbGF0ZSgiKyh2bj1zMS54LXVhLngrUnIub2Zmc2V0LngqKDEtUTIpKSsiLCIrKF8wPXMxLnktdWEueStSci5vZmZzZXQueSooMS1RMikp''@;'; put 'put ''KyIpIHJvdGF0ZSgiK2ZpKyIgIit1YS54KyIgIit1YS55KyIpIn19KS5vbigic3RhcnQiLGZ1bmN0aW9uKCl7Qi5zZWxlY3QodGhpcykuc3R5bGUoIm9wYWNpdHkiLG51bGwpfSkub24oImVuZCIsZnVuY3Rpb24oKXtCLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLG51bGwpfSl9dmFy''@;'; put 'put ''IGdjPV9uJiZ1biYmInBhdGgiPT1kMCYmbnVsbCE9bGkuYXR0cigiZCIpLHBkPSEwLEIxPSExLGF1PXZvaWQgMDt0cnl7Zm9yKHZhciBtYyxQMT1PYmplY3Qua2V5cyhtMClbU3ltYm9sLml0ZXJhdG9yXSgpOyEocGQ9KG1jPVAxLm5leHQoKSkuZG9uZSk7cGQ9ITApe3ZhciB4Mj1tYy52YWx1''@;'; put 'put ''ZSxQbD1tMFt4Ml07aWYoZ2MmJiJkIj09eDIpe3ZhciBBaTsoQWk9KFJyLmFsdGVybmF0aXZlT2xkfHxScikucG9pbnRzKSYmX2kuYXR0clR3ZWVuKCJkIixuZShBaSxQbCkpfWVsc2V7aWYoInRyYW5zZm9ybSI9PXgyJiZSci50cmFuc2xhdGlvbilpZih1bil7dmFyIGQzPV9pLm9uKCJlbmQi''@;'; put 'put ''KTtfaS5vbigic3RhcnQiLGZ1bmN0aW9uKCl7SW4uX3pvb21CZWhhdmlvciYmX2kudHdlZW4oImF0dHIudHJhbnNmb3JtIixmdW5jdGlvbigpe3ZhciBRMj10aGlzO3JldHVybiBmdW5jdGlvbihzMSl7UTIuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLFEuaW50ZXJwb2xhdGVUcmFuc2Zvcm1T''@;'; put 'put ''dmcoai56b29tVHJhbnNmb3JtKEluLl96b29tU2VsZWN0aW9uLm5vZGUoKSkudG9TdHJpbmcoKSxJZS5jYWxsKEluLGxpKS50b1N0cmluZygpKShzMSkpfX0pfSkub24oImVuZCIsZnVuY3Rpb24oKXtkMy5jYWxsKHRoaXMpLEluLl96b29tQmVoYXZpb3ImJlRlLmNhbGwoSW4sbGkpfSl9ZWxz''@;'; put 'put ''ZSBJbi5fem9vbUJlaGF2aW9yJiYoUGw9SWUuY2FsbChJbixsaSkudG9TdHJpbmcoKSk7X2kuYXR0cih4MixQbCl9fX1jYXRjaChRMil7QjE9ITAsYXU9UTJ9ZmluYWxseXt0cnl7IXBkJiZQMS5yZXR1cm4mJlAxLnJldHVybigpfWZpbmFsbHl7aWYoQjEpdGhyb3cgYXV9fWxsJiZfaS5vbigi''@;'; put 'put ''ZW5kIixmdW5jdGlvbihRMixzMSxaMCl7SihzYT1CLnNlbGVjdCh0aGlzKSxRMikuZGF0YShbUTJdLGZ1bmN0aW9uKCl7cmV0dXJuIFEyLmtleX0pfSksUnIudGV4dCYmX2kudGV4dChSci50ZXh0KSxmdW5jdGlvbiBKbihScil7dmFyIGxpPVJyLnNlbGVjdEFsbChmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biBSci5ub2RlKCkuY2hpbGROb2Rlc30pLE1pPShsaT1saS5kYXRhKGZ1bmN0aW9uKGQwKXtyZXR1cm4gZDAuY2hpbGRyZW59LGZ1bmN0aW9uKGQwKXtyZXR1cm4gZDAua2V5fSkpLmVudGVyKCkuYXBwZW5kKGZ1bmN0aW9uKGQwKXt2YXIgbTA9dGUoZDApO3JldHVybiIjdGV4dCI9PWQwLnRh''@;'; put 'put ''ZyYmY24mJihtMC5ub2RlVmFsdWU9ZDAudGV4dCksbTB9KTsoY258fFZuJiZWKFJyLmRhdHVtKCkpKSYmTWkuZmlsdGVyKGZ1bmN0aW9uKGQwKXtyZXR1cm4iIyI9PWQwLnRhZ1swXT9udWxsOnRoaXN9KS5lYWNoKGZ1bmN0aW9uKGQwKXt2YXIgbTA9Qi5zZWxlY3QodGhpcyksRzA9ITAsRGk9''@;'; put 'put ''ITEsVzA9dm9pZCAwO3RyeXtmb3IodmFyIHFvLEVvPU9iamVjdC5rZXlzKGQwLmF0dHJpYnV0ZXMpW1N5bWJvbC5pdGVyYXRvcl0oKTshKEcwPShxbz1Fby5uZXh0KCkpLmRvbmUpO0cwPSEwKXt2YXIgY2E9cW8udmFsdWU7bTAuYXR0cihjYSxkMC5hdHRyaWJ1dGVzW2NhXSl9fWNhdGNoKFFp''@;'; put 'put ''KXtEaT0hMCxXMD1RaX1maW5hbGx5e3RyeXshRzAmJkVvLnJldHVybiYmRW8ucmV0dXJuKCl9ZmluYWxseXtpZihEaSl0aHJvdyBXMH19fSkuZmlsdGVyKGZ1bmN0aW9uKGQwKXtyZXR1cm4ic3ZnIj09ZDAudGFnfHwiZyI9PWQwLnRhZz9udWxsOnRoaXN9KS5zdHlsZSgib3BhY2l0eSIsMCk7''@;'; put 'put ''dmFyIG4wPWxpLmV4aXQoKTtlbiYmbjAuZWFjaChlbiksdW4mJihuMD1uMC50cmFuc2l0aW9uKHVuKSxjbiYmbjAuZmlsdGVyKGZ1bmN0aW9uKGQwKXtyZXR1cm4iIyI9PWQwLnRhZ1swXT9udWxsOnRoaXN9KS5zdHlsZSgib3BhY2l0eSIsMCkpLG4wPW4wLnJlbW92ZSgpLChsaT1NaS5tZXJn''@;'; put 'put ''ZShsaSkpLmVhY2gob3IpfShsaSl9dmFyIGdyPXRoaXMuX3NlbGVjdGlvbjtpZihudWxsIT11bil7dmFyIEtyPXRoaXMuX2pvYnM7aWYoSW4uX2FjdGl2ZSlyZXR1cm4gS3IucHVzaChudWxsKSx0aGlzO2dyLnRyYW5zaXRpb24odW4pLnRyYW5zaXRpb24oKS5kdXJhdGlvbigwKS5vbigiZW5k''@;'; put 'put ''IixmdW5jdGlvbigpe0luLl9hY3RpdmU9ITEsMCE9S3IubGVuZ3RoJiYoS3Iuc2hpZnQoKSxJbi5yZW5kZXIoKSl9KSx0aGlzLl9hY3RpdmU9ITB9bnVsbCE9dW4mJmdyLnRyYW5zaXRpb24odW4pLm9uKCJzdGFydCIsZnVuY3Rpb24oKXtJbi5fZGlzcGF0Y2guY2FsbCgidHJhbnNpdGlvblN0''@;'; put 'put ''YXJ0IixJbil9KS5vbigiZW5kIixmdW5jdGlvbigpe0luLl9kaXNwYXRjaC5jYWxsKCJ0cmFuc2l0aW9uRW5kIixJbil9KS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkub24oInN0YXJ0IixmdW5jdGlvbigpe0luLl9kaXNwYXRjaC5jYWxsKCJyZXN0b3JlRW5kIixJbiksSW4uX2Rpc3BhdGNo''@;'; put 'put ''LmNhbGwoImVuZCIsSW4pLG1uJiZtbi5jYWxsKEluKX0pO3ZhciBWcj10aGlzLl9kYXRhLGlpPWdyLnNlbGVjdEFsbCgic3ZnIikuZGF0YShbVnJdLGZ1bmN0aW9uKFJyKXtyZXR1cm4gUnIua2V5fSk7cmV0dXJuIGlpPWlpLmVudGVyKCkuYXBwZW5kKCJzdmciKS5tZXJnZShpaSksb3IuY2Fs''@;'; put 'put ''bChpaS5ub2RlKCksVnIpLHRoaXMuX29wdGlvbnMuem9vbSYmIXRoaXMuX3pvb21CZWhhdmlvciYmU2UuY2FsbCh0aGlzKSxJbi5fZGlzcGF0Y2guY2FsbCgicmVuZGVyRW5kIixJbiksbnVsbD09dW4mJih0aGlzLl9kaXNwYXRjaC5jYWxsKCJlbmQiLHRoaXMpLG1uJiZtbi5jYWxsKHRoaXMp''@;'; put 'put ''KSx0aGlzfWZ1bmN0aW9uIERlKG1uLHVuKXtpZigicG9seWdvbiI9PW1uLnRhZyl7KGNuPXZlKG1uKSkudGFnPSJwYXRoIjt2YXIgR3Q9dmUoX249bW4uYXR0cmlidXRlcyksa249X24ucG9pbnRzO2lmKCJwb2x5Z29uIj09dW4udGFnKXsoVm49bW4uYmJveCkuY3g9Vm4ueCtWbi53aWR0aC8y''@;'; put 'put ''LFZuLmN5PVZuLnkrVm4uaGVpZ2h0LzI7Zm9yKHZhciBJbj1fbi5wb2ludHMuc3BsaXQoIiAiKSxKbj1Jbi5tYXAoZnVuY3Rpb24oTWEpe3ZhciBubD1NYS5zcGxpdCgiLCIpO3JldHVybltubFswXS1Wbi5jeCxubFsxXS1Wbi5jeV19KSxvcj1KbltKbi5sZW5ndGgtMV1bMF0sZ3I9Sm5bSm4u''@;'; put 'put ''bGVuZ3RoLTFdWzFdLEtyPTA7S3I8Sm4ubGVuZ3RoO0tyKyssb3I9VnIsZ3I9aWkpe3ZhciBScj0oVnI9Sm5bS3JdWzBdKS1vcjtpZigwIT0obGk9KGlpPUpuW0tyXVsxXSktZ3IpJiYwPD0oTWk9b3ItZ3IqUnIvbGkpJiZNaTwxLzAmJihvcjw9TWkmJk1pPD1Wcnx8VnI8PU1pJiZNaTw9b3Ip''@;'; put 'put ''KWJyZWFrfXZhciBvMD1bW1ZuLmN4K01pLFZuLmN5KzBdLmpvaW4oIiwiKV07a249KG8wPShvMD1vMC5jb25jYXQoSW4uc2xpY2UoS3IpKSkuY29uY2F0KEluLnNsaWNlKDAsS3IpKSkuam9pbigiICIpfUd0LmQ9Ik0iK2tuKyJ6IixkZWxldGUgR3QucG9pbnRzLGNuLmF0dHJpYnV0ZXM9R3R9''@;'; put 'put ''ZWxzZXt2YXIgY247KGNuPXZlKG1uKSkudGFnPSJwYXRoIixHdD12ZShfbj1tbi5hdHRyaWJ1dGVzKTt2YXIgX24sVnIsaWksTWksbjA9X24uY3gsZDA9X24uY3ksbTA9X24ucngsRzA9X24ucnk7aWYoInBvbHlnb24iPT11bi50YWcpe3ZhciBWbjsoVm49dW4uYmJveCkuY3g9Vm4ueCtWbi53''@;'; put 'put ''aWR0aC8yLFZuLmN5PVZuLnkrVm4uaGVpZ2h0LzI7dmFyIERpPXVuLmF0dHJpYnV0ZXMucG9pbnRzLnNwbGl0KCIgIilbMF0uc3BsaXQoIiwiKSxsaT0oUnI9RGlbMF0tVm4uY3gsRGlbMV0tVm4uY3kpLHFvPU1hdGguc3FydChNYXRoLnBvdyhSciwyKStNYXRoLnBvdyhsaSwyKSksY2E9UnIv''@;'; put 'put ''cW8sbGw9LWxpL3FvfWVsc2UgY2E9MSxsbD0wO0d0LmQ9Ik0gIituMCsiICIrZDArIiBtICIrKFZyPW0wKmNhKSsiLCIrKGlpPS1HMCpsbCkrIiBhICIrbTArIiwiK0cwKyIgMCAxLDAgIisoUnI9KE1pPW0wKi1jYSktVnIpKyIsIisobGk9LUcwKi1sbC1paSkrIiBhICIrbTArIiwiK0cwKyIg''@;'; put 'put ''MCAxLDAgIistUnIrIiwiKy1saSsieiIsZGVsZXRlIEd0LmN4LGRlbGV0ZSBHdC5jeSxkZWxldGUgR3QucngsZGVsZXRlIEd0LnJ5LGNuLmF0dHJpYnV0ZXM9R3R9cmV0dXJuIGNufWZ1bmN0aW9uICRlKCl7aWYobnVsbD09dGhpcy5fd29ya2VyKXJlKCIiKSx0aGlzLl9kaXNwYXRjaC5jYWxs''@;'; put 'put ''KCJpbml0RW5kIix0aGlzKTtlbHNle3ZhciBtbj10aGlzLl92aXpVUkwsdW49dGhpczt0aGlzLl93b3JrZXIub25tZXNzYWdlPWZ1bmN0aW9uKGNuKXt1bi5fZGlzcGF0Y2guY2FsbCgiaW5pdEVuZCIsdGhpcyl9LG1uLm1hdGNoKC9eaHR0cHM/OlwvXC98XlwvXC8vaSl8fChtbj1uZXcgd2lu''@;'; put 'put ''ZG93LlVSTChtbixkb2N1bWVudC5sb2NhdGlvbi5ocmVmKS5ocmVmKSx0aGlzLl93b3JrZXIucG9zdE1lc3NhZ2Uoe2RvdDoiIix2aXpVUkw6bW59KX19cmU9cmUmJnJlLmhhc093blByb3BlcnR5KCJkZWZhdWx0Iik/cmUuZGVmYXVsdDpyZTt2YXIgdG4sZG49ZnVuY3Rpb24obW4sdW4sY24p''@;'; put 'put ''e3JldHVybiB1biBpbiBtbj9PYmplY3QuZGVmaW5lUHJvcGVydHkobW4sdW4se3ZhbHVlOmNuLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6bW5bdW5dPWNuLG1ufSx5bj1mdW5jdGlvbihtbil7aWYoQXJyYXkuaXNBcnJheShtbikpe2Zvcih2YXIgdW49MCxj''@;'; put 'put ''bj1BcnJheShtbi5sZW5ndGgpO3VuPG1uLmxlbmd0aDt1bisrKWNuW3VuXT1tblt1bl07cmV0dXJuIGNufXJldHVybiBBcnJheS5mcm9tKG1uKX07ZnVuY3Rpb24gTm4obW4sdW4sY24sX24pe3ZhciBHdD1bbW4qY24tKHVuPS11bikqKF9uPS1fbiksbW4qX24rdW4qY25dO3JldHVyblttbj1H''@;'; put 'put ''dFswXSx1bj0tKHVuPUd0WzFdKV19ZnVuY3Rpb24gc3IobW4sdW4sY24sX24sR3Qsa24sVm4pe3ZhciBJbj1OKG5yKGtuKSk7bW4uZGF0YShbSW5dKSxkZS5jYWxsKG1uLm5vZGUoKSxJbiksWG4obW4sdW4sY24sX24sR3Qsa24sVm4pfWZ1bmN0aW9uIFhuKG1uLHVuLGNuLF9uLEd0LGtuLFZu''@;'; put 'put ''KXt2YXIgZW49Vm4uc2hvcnRlbmluZ3x8MCxncj1bWzAsLTMuNV0sWzEwLDBdLFswLDMuNV0sWzAsLTMuNV1dLEtyPV9uLXVuLFZyPUd0LWNuLGlpPU1hdGguc3FydChLcipLcitWcipWcik7aWYoMD09aWkpdmFyIFJyPTEsbGk9MDtlbHNlIFJyPUtyL2lpLGxpPVZyL2lpO2lmKF9uPXVuKyhp''@;'; put 'put ''aS1lbi0xMC0uMTc0KSpScixHdD1jbisoaWktZW4tMTAtLjE3NCkqbGksa24uVVJMfHxrbi50b29sdGlwKXZhciBNaT1tbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiYSIpLG8wPU1pLnNlbGVjdFdpdGhvdXREYXRhUHJv''@;'; put 'put ''cGFnYXRpb24oInBhdGgiKSxuMD1NaS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJwb2x5Z29uIik7ZWxzZSBvMD1tbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJwYXRoIiksbjA9bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigicG9seWdvbiIpO3ZhciBkMD1Z''@;'; put 'put ''LnBhdGgoKTtkMC5tb3ZlVG8odW4sY24pLGQwLmxpbmVUbyhfbixHdCksbzAuYXR0cigiZCIsZDApLF9uPXVuKyhpaS1lbi0xMCkqUnIsR3Q9Y24rKGlpLWVuLTEwKSpsaTtmb3IodmFyIG0wPTA7bTA8Z3IubGVuZ3RoO20wKyspZ3JbbTBdPU5uKChHMD1nclttMF0pWzBdLEcwWzFdLFJyLGxp''@;'; put 'put ''KTtmb3IobTA9MDttMDxnci5sZW5ndGg7bTArKylnclttMF09W19uKyhHMD1nclttMF0pWzBdLEd0K0cwWzFdXTt2YXIgRGk9W107Zm9yKG0wPTA7bTA8Z3IubGVuZ3RoO20wKyspe3ZhciBHMDtEaS5wdXNoKChHMD1nclttMF0pLmpvaW4oIiwiKSl9dmFyIFcwPURpLmpvaW4oIiAiKTtyZXR1''@;'; put 'put ''cm4gbjAuYXR0cigicG9pbnRzIixXMCksdGhpc31mdW5jdGlvbiB4cigpe3JldHVybiB0aGlzLl9kcmF3bkVkZ2U/KHRoaXMuX2RyYXduRWRnZS5nLnJlbW92ZSgpLHRoaXMuX2RyYXduRWRnZT1udWxsLHRoaXMpOnRoaXN9ZnVuY3Rpb24gcHIoKXtyZXR1cm4gdGhpcy5fZHJhd25FZGdlP3Ro''@;'; put 'put ''aXMuX2RyYXduRWRnZS5nOkIuc2VsZWN0KG51bGwpfWZ1bmN0aW9uIG5yKG1uKXt2YXIgdW49IiIsY249ITAsX249ITEsR3Q9dm9pZCAwO3RyeXtmb3IodmFyIFZuLGtuPU9iamVjdC5rZXlzKG1uKVtTeW1ib2wuaXRlcmF0b3JdKCk7IShjbj0oVm49a24ubmV4dCgpKS5kb25lKTtjbj0hMCl7''@;'; put 'put ''dmFyIGVuPVZuLnZhbHVlO251bGwhPW1uW2VuXSYmKHVuKz0nICInK2VuKyciPSInK21uW2VuXSsnIicpfX1jYXRjaChpaSl7X249ITAsR3Q9aWl9ZmluYWxseXt0cnl7IWNuJiZrbi5yZXR1cm4mJmtuLnJldHVybigpfWZpbmFsbHl7aWYoX24pdGhyb3cgR3R9fXZhciBKbj1yZSgiZGlncmFw''@;'; put 'put ''aCB7YSAtPiBiIFsiK3VuKyJdfSIse2Zvcm1hdDoic3ZnIn0pLGdyPShuZXcgd2luZG93LkRPTVBhcnNlcikucGFyc2VGcm9tU3RyaW5nKEpuLCJpbWFnZS9zdmcreG1sIik7cmV0dXJuIEIuc2VsZWN0KGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkuYXBwZW5kKGZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIGdyLmRvY3VtZW50RWxlbWVudH0pLnNlbGVjdCgiLmVkZ2UiKX1mdW5jdGlvbiBXdChtbix1bixjbixfbixHdCxrbil7dmFyIGVuPU4od24oX24sR3QpKTtyZXR1cm4gbW4uZGF0YShbZW5dKSxkZS5jYWxsKG1uLm5vZGUoKSxlbikscG4obW4sdW4sY24sR3QpLHRoaXN9ZnVu''@;'; put 'put ''Y3Rpb24gcG4obW4sdW4sY24sX24sR3Qpe2lmKF9uLlVSTHx8X24udG9vbHRpcCl2YXIga249bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImEiKTtlbHNlIGtuPW1uO3ZhciBWbj1rbi5zZWxlY3RBbGwoImVsbGlwc2Us''@;'; put 'put ''cG9seWdvbixwYXRoLHBvbHlsaW5lIiksZW49bW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigidGV4dCIpO2lmKDAhPVZuLnNpemUoKSl7dmFyIEluPVZuLm5vZGUoKS5nZXRCQm94KCk7SW4uY3g9SW4ueCtJbi53aWR0aC8yLEluLmN5PUluLnkrSW4uaGVpZ2h0LzJ9ZWxzZSAwIT1l''@;'; put 'put ''bi5zaXplKCkmJihJbj17eDorZW4uYXR0cigieCIpLHk6K2VuLmF0dHIoInkiKSx3aWR0aDowLGhlaWdodDowLGN4Oitlbi5hdHRyKCJ4IiksY3k6K2VuLmF0dHIoInkiKX0pO3JldHVybiBWbi5lYWNoKGZ1bmN0aW9uKEpuLG9yKXt2YXIgZ3I9Qi5zZWxlY3QodGhpcyk7aWYoZ3IuYXR0cigi''@;'; put 'put ''Y3giKSlnci5hdHRyKCJjeCIsQWUodW4pKS5hdHRyKCJjeSIsQWUoY24pKTtlbHNlIGlmKGdyLmF0dHIoInBvaW50cyIpKXt2YXIgS3I9Z3IuYXR0cigicG9pbnRzIikudHJpbSgpO2dyLmF0dHIoInBvaW50cyIsZnVuY3Rpb24gUGUoa24sdW4sY24pe3ZhciBHdCxfbj0oR3Q9a24uc3BsaXQo''@;'; put 'put ''IiAiKSkubWFwKGZ1bmN0aW9uKFZuKXtyZXR1cm4gVm4uc3BsaXQoIiwiKX0pO3JldHVybiBfbj1HdC5tYXAoZnVuY3Rpb24oVm4pe3JldHVybltBZSgrdW4rICtWbi5zcGxpdCgiLCIpWzBdKSxBZSgrY24rICtWbi5zcGxpdCgiLCIpWzFdKV19KSwoa249KEd0PV9uLm1hcChmdW5jdGlvbihW''@;'; put 'put ''bil7cmV0dXJuIFZuLmpvaW4oIiwiKX0pKS5qb2luKCIgIikpLnJlcGxhY2UoLy0wXC4vZywiLS4iKS5yZXBsYWNlKC8gMFwuL2csIiAuIil9KEtyLHVuLUluLmN4LGNuLUluLmN5KSl9ZWxzZXt2YXIgVnI9Z3IuYXR0cigiZCIpO2dyLmF0dHIoImQiLGZ1bmN0aW9uIFFlKG1uLHVuLGNuKXso''@;'; put 'put ''a249bW4uc3BsaXQoL1tBLVogXS8pKS5zaGlmdCgpO3ZhciBfbj1tbi5zcGxpdCgvW15bQS1aIF0rLyksa249KGtuLm1hcChmdW5jdGlvbihWbil7cmV0dXJuIFZuLnNwbGl0KCIsIil9KSxrbi5tYXAoZnVuY3Rpb24oVm4pe3JldHVybltBZSgrdW4rICtWbi5zcGxpdCgiLCIpWzBdKSxBZSgr''@;'; put 'put ''Y24rICtWbi5zcGxpdCgiLCIpWzFdKV19KS5tYXAoZnVuY3Rpb24oVm4pe3JldHVybiBWbi5qb2luKCIsIil9KSk7cmV0dXJuKG1uPV9uLnJlZHVjZShmdW5jdGlvbihWbixlbixJbil7cmV0dXJuIFZuLmNvbmNhdChlbixrbltJbl0pfSxbXSkuam9pbigiIikpLnJlcGxhY2UoLy0wXC4vZywi''@;'; put 'put ''LS4iKS5yZXBsYWNlKC8gMFwuL2csIiAuIil9KFZyLHVuLUluLmN4LGNuLUluLmN5KSl9fSksMCE9ZW4uc2l6ZSgpJiZlbi5hdHRyKCJ4IixBZSgrZW4uYXR0cigieCIpK3VuLUluLmN4KSkuYXR0cigieSIsQWUoK2VuLmF0dHIoInkiKStjbi1Jbi5jeSkpLHRoaXN9ZnVuY3Rpb24gTnQoKXtp''@;'; put 'put ''ZighdGhpcy5fZHJhd25Ob2RlKXJldHVybiB0aGlzO3ZhciBtbj10aGlzLl9kcmF3bk5vZGUuZztyZXR1cm4gbW4uZW1wdHkoKXx8bW4ucmVtb3ZlKCksdGhpcy5fZHJhd25Ob2RlPW51bGwsdGhpc31mdW5jdGlvbiBVbigpe3JldHVybiB0aGlzLl9kcmF3bk5vZGU/dGhpcy5fZHJhd25Ob2Rl''@;'; put 'put ''Lmc6Qi5zZWxlY3QobnVsbCl9ZnVuY3Rpb24gd24obW4sdW4pe3ZhciBjbj0iIixfbj0hMCxHdD0hMSxrbj12b2lkIDA7dHJ5e2Zvcih2YXIgZW4sVm49T2JqZWN0LmtleXModW4pW1N5bWJvbC5pdGVyYXRvcl0oKTshKF9uPShlbj1Wbi5uZXh0KCkpLmRvbmUpO19uPSEwKXt2YXIgSW49ZW4u''@;'; put 'put ''dmFsdWU7bnVsbCE9dW5bSW5dJiYoY24rPScgIicrSW4rJyI9IicrdW5bSW5dKyciJyl9fWNhdGNoKFJyKXtHdD0hMCxrbj1Scn1maW5hbGx5e3RyeXshX24mJlZuLnJldHVybiYmVm4ucmV0dXJuKCl9ZmluYWxseXtpZihHdCl0aHJvdyBrbn19dmFyIG9yPXJlKCdncmFwaCB7IicrbW4rJyIg''@;'; put 'put ''WycrY24rIl19Iix7Zm9ybWF0OiJzdmcifSksS3I9KG5ldyB3aW5kb3cuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcob3IsImltYWdlL3N2Zyt4bWwiKTtyZXR1cm4gQi5zZWxlY3QoZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpKS5hcHBlbmQoZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''S3IuZG9jdW1lbnRFbGVtZW50fSkuc2VsZWN0KCIubm9kZSIpfWZ1bmN0aW9uIHpuKG1uLHVuKXtpZih0aGlzLl9vcHRpb25zPXt1c2VXb3JrZXI6ITAsZW5naW5lOiJkb3QiLHRvdGFsTWVtb3J5OnZvaWQgMCxrZXlNb2RlOiJ0aXRsZSIsZmFkZTohMCx0d2VlblBhdGhzOiEwLHR3ZWVuU2hh''@;'; put 'put ''cGVzOiEwLGNvbnZlcnRFcXVhbFNpZGVkUG9seWdvbnM6ITAsdHdlZW5QcmVjaXNpb246MSxncm93RW50ZXJpbmdFZGdlczohMCx6b29tOiEwLHpvb21TY2FsZUV4dGVudDpbLjEsMTBdLHpvb21UcmFuc2xhdGVFeHRlbnQ6W1stMS8wLC0xLzBdLFsxLzAsMS8wXV0sd2lkdGg6bnVsbCxoZWln''@;'; put 'put ''aHQ6bnVsbCxzY2FsZToxLGZpdDohMX0sdW4gaW5zdGFuY2VvZiBPYmplY3Qpe3ZhciBjbj0hMCxfbj0hMSxHdD12b2lkIDA7dHJ5e2Zvcih2YXIgVm4sa249T2JqZWN0LmtleXModW4pW1N5bWJvbC5pdGVyYXRvcl0oKTshKGNuPShWbj1rbi5uZXh0KCkpLmRvbmUpO2NuPSEwKXt2YXIgZW49''@;'; put 'put ''Vm4udmFsdWU7dGhpcy5fb3B0aW9uc1tlbl09dW5bZW5dfX1jYXRjaChpaSl7X249ITAsR3Q9aWl9ZmluYWxseXt0cnl7IWNuJiZrbi5yZXR1cm4mJmtuLnJldHVybigpfWZpbmFsbHl7aWYoX24pdGhyb3cgR3R9fX1lbHNlImJvb2xlYW4iPT10eXBlb2YgdW4mJih0aGlzLl9vcHRpb25zLnVz''@;'; put 'put ''ZVdvcmtlcj11bik7dmFyIEluPXRoaXMuX29wdGlvbnMudXNlV29ya2VyO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgV29ya2VyJiYoSW49ITEpLEluKXt2YXIgb3I9Qi5zZWxlY3RBbGwoInNjcmlwdCIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiJqYXZhc2NyaXB0L3dvcmtlciI9PUIuc2Vs''@;'; put 'put ''ZWN0KHRoaXMpLmF0dHIoInR5cGUiKXx8Qi5zZWxlY3QodGhpcykuYXR0cigic3JjIikmJkIuc2VsZWN0KHRoaXMpLmF0dHIoInNyYyIpLm1hdGNoKC8uKlwvdml6LmpzJC8pfSk7MD09b3Iuc2l6ZSgpPyhjb25zb2xlLndhcm4oJ05vIHNjcmlwdCB0YWcgb2YgdHlwZSAiamF2YXNjcmlwdC93''@;'; put 'put ''b3JrZXIiIHdhcyBmb3VuZCBhbmQgInVzZVdvcmtlciIgaXMgdHJ1ZS4gTm90IHVzaW5nIHdlYiB3b3JrZXIuJyksSW49ITEpOih0aGlzLl92aXpVUkw9b3IuYXR0cigic3JjIiksdGhpcy5fdml6VVJMfHwoY29uc29sZS53YXJuKCdObyAic3JjIiBhdHRyaWJ1dGUgb2Ygd2FzIGZvdW5kIG9u''@;'; put 'put ''IHRoZSAiamF2YXNjcmlwdC93b3JrZXIiIHNjcmlwdCB0YWcgYW5kICJ1c2VXb3JrZXIiIGlzIHRydWUuIE5vdCB1c2luZyB3ZWIgd29ya2VyLicpLEluPSExKSl9aWYoSW4pe3ZhciBLcj1uZXcgQmxvYihbJ1xuICAgICAgICAgICAgb25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAg''@;'; put 'put ''ICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS52aXpVUkwpIHtcbiAgICAgICAgICAgICAgICAgICAgaW1wb3J0U2NyaXB0cyhldmVudC5kYXRhLnZpelVSTCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdmcg''@;'; put 'put ''PSBWaXooZXZlbnQuZGF0YS5kb3QsIGV2ZW50LmRhdGEub3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhdGNoKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICJlcnJv''@;'; put 'put ''ciIsXG4gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHN2Zykge1xuICAgICAgICAgICAg''@;'; put 'put ''ICAgICAgICBwb3N0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAiZG9uZSIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdmc6IHN2ZyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAg''@;'; put 'put ''ICAgcG9zdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogInNraXAiLFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICddKSxWcj13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChLcik7dGhp''@;'; put 'put ''cy5fd29ya2VyPW5ldyBXb3JrZXIoVnIpfXRoaXMuX3NlbGVjdGlvbj1tbix0aGlzLl9hY3RpdmU9ITEsdGhpcy5fYnVzeT0hMSx0aGlzLl9qb2JzPVtdLHRoaXMuX3F1ZXVlPVtdLHRoaXMuX2tleU1vZGVzPW5ldyBTZXQoWyJ0aXRsZSIsImlkIiwidGFnLWluZGV4IiwiaW5kZXgiXSksdGhp''@;'; put 'put ''cy5faW1hZ2VzPVtdLHRoaXMuX3RyYW5zbGF0aW9uPXZvaWQgMCx0aGlzLl9zY2FsZT12b2lkIDAsdGhpcy5fZXZlbnRUeXBlcz1bImluaXRFbmQiLCJzdGFydCIsImxheW91dFN0YXJ0IiwibGF5b3V0RW5kIiwiZGF0YUV4dHJhY3RFbmQiLCJkYXRhUHJvY2Vzc1Bhc3MxRW5kIiwiZGF0YVBy''@;'; put 'put ''b2Nlc3NQYXNzMkVuZCIsImRhdGFQcm9jZXNzRW5kIiwicmVuZGVyU3RhcnQiLCJyZW5kZXJFbmQiLCJ0cmFuc2l0aW9uU3RhcnQiLCJ0cmFuc2l0aW9uRW5kIiwicmVzdG9yZUVuZCIsImVuZCJdLHRoaXMuX2Rpc3BhdGNoPUUuZGlzcGF0Y2guYXBwbHkodm9pZCAwLHluKHRoaXMuX2V2ZW50''@;'; put 'put ''VHlwZXMpKSwkZS5jYWxsKHRoaXMpLG1uLm5vZGUoKS5fX2dyYXBodml6X189dGhpc31mdW5jdGlvbiBUcihtbix1bil7cmV0dXJuIEIuc2VsZWN0KG1uKS5ncmFwaHZpeih1bil9em4ucHJvdG90eXBlPVRyLnByb3RvdHlwZT0oZG4odG49e2NvbnN0cnVjdG9yOnpuLGVuZ2luZTpmdW5jdGlv''@;'; put 'put ''bihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuZW5naW5lPW1uLHRoaXN9LGFkZEltYWdlOmZ1bmN0aW9uKG1uLHVuLGNuKXtyZXR1cm4gdGhpcy5faW1hZ2VzLnB1c2goe3BhdGg6bW4sd2lkdGg6dW4saGVpZ2h0OmNufSksdGhpc30sdG90YWxNZW1vcnk6ZnVuY3Rpb24obW4pe3JldHVybiB0''@;'; put 'put ''aGlzLl9vcHRpb25zLnRvdGFsTWVtb3J5PW1uLHRoaXN9LGtleU1vZGU6ZnVuY3Rpb24obW4pe2lmKCF0aGlzLl9rZXlNb2Rlcy5oYXMobW4pKXRocm93IEVycm9yKCJJbGxlZ2FsIGtleU1vZGU6ICIrbW4pO2lmKG1uIT10aGlzLl9vcHRpb25zLmtleU1vZGUmJm51bGwhPXRoaXMuX2RhdGEp''@;'; put 'put ''dGhyb3cgRXJyb3IoIlRvbyBsYXRlIHRvIGNoYW5nZSBrZXlNb2RlIik7cmV0dXJuIHRoaXMuX29wdGlvbnMua2V5TW9kZT1tbix0aGlzfSxmYWRlOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5mYWRlPW1uLHRoaXN9LHR3ZWVuUGF0aHM6ZnVuY3Rpb24obW4pe3JldHVybiB0''@;'; put 'put ''aGlzLl9vcHRpb25zLnR3ZWVuUGF0aHM9bW4sdGhpc30sdHdlZW5TaGFwZXM6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLnR3ZWVuU2hhcGVzPW1uLG1uJiYodGhpcy5fb3B0aW9ucy50d2VlblBhdGhzPSEwKSx0aGlzfSxjb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zOmZ1bmN0''@;'; put 'put ''aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5jb252ZXJ0RXF1YWxTaWRlZFBvbHlnb25zPW1uLHRoaXN9LHR3ZWVuUHJlY2lzaW9uOmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy50d2VlblByZWNpc2lvbj1tbix0aGlzfSxncm93RW50ZXJpbmdFZGdlczpmdW5jdGlvbiht''@;'; put 'put ''bil7cmV0dXJuIHRoaXMuX29wdGlvbnMuZ3Jvd0VudGVyaW5nRWRnZXM9bW4sdGhpc30sem9vbTpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuem9vbT1tbix0aGlzLl9vcHRpb25zLnpvb20mJiF0aGlzLl96b29tQmVoYXZpb3ImJlNlLmNhbGwodGhpcyksdGhpc30scmVzZXRa''@;'; put 'put ''b29tOmZ1bmN0aW9uIE1lKG1uKXt2YXIgdW49dGhpcy5fem9vbVNlbGVjdGlvbjtyZXR1cm4gbW4mJih1bj11bi50cmFuc2l0aW9uKG1uKSksdW4uY2FsbCh0aGlzLl96b29tQmVoYXZpb3IudHJhbnNmb3JtLHRoaXMuX29yaWdpbmFsVHJhbnNmb3JtKSx0aGlzfSx6b29tQmVoYXZpb3I6ZnVu''@;'; put 'put ''Y3Rpb24geigpe3JldHVybiB0aGlzLl96b29tQmVoYXZpb3J8fG51bGx9LHpvb21TZWxlY3Rpb246ZnVuY3Rpb24gZWUoKXtyZXR1cm4gdGhpcy5fem9vbVNlbGVjdGlvbnx8bnVsbH0sem9vbVNjYWxlRXh0ZW50OmZ1bmN0aW9uIGhlKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy56b29tU2Nh''@;'; put 'put ''bGVFeHRlbnQ9bW4sdGhpc30sem9vbVRyYW5zbGF0ZUV4dGVudDpmdW5jdGlvbiBPKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy56b29tVHJhbnNsYXRlRXh0ZW50PW1uLHRoaXN9LHJlbmRlcjpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX2J1c3k/KHRoaXMuX3F1ZXVlLnB1c2godGhpcy5y''@;'; put 'put ''ZW5kZXIuYmluZCh0aGlzLG1uKSksdGhpcyk6KHRoaXMuX2Rpc3BhdGNoLmNhbGwoInJlbmRlclN0YXJ0Iix0aGlzKSx0aGlzLl90cmFuc2l0aW9uRmFjdG9yeT9VLnRpbWVvdXQoZnVuY3Rpb24oKXt0aGlzLl90cmFuc2l0aW9uPUVlLnRyYW5zaXRpb24odGhpcy5fdHJhbnNpdGlvbkZhY3Rv''@;'; put 'put ''cnkoKSksQ2UuY2FsbCh0aGlzLG1uKX0uYmluZCh0aGlzKSwwKTpDZS5jYWxsKHRoaXMsbW4pLHRoaXMpfSxkb3Q6ZnVuY3Rpb24obW4sdW4pe3ZhciBjbj10aGlzLF9uPXRoaXMuX3dvcmtlcixHdD10aGlzLl9vcHRpb25zLmVuZ2luZSxrbj10aGlzLl9pbWFnZXMsVm49dGhpcy5fb3B0aW9u''@;'; put 'put ''cy50b3RhbE1lbW9yeSxlbj10aGlzLl9vcHRpb25zLmtleU1vZGUsSW49dGhpcy5fb3B0aW9ucy50d2VlblBhdGhzLEpuPXRoaXMuX29wdGlvbnMudHdlZW5TaGFwZXM7aWYoInN0cmluZyI9PXR5cGVvZiB0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uJiZ0aGlzLl9vcHRpb25zLnR3ZWVu''@;'; put 'put ''UHJlY2lzaW9uLmluY2x1ZGVzKCIlIikpdmFyIG9yPSt0aGlzLl9vcHRpb25zLnR3ZWVuUHJlY2lzaW9uLnNwbGl0KCIlIilbMF0vMTAwLGdyPXRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24uaW5jbHVkZXMoIiUiKTtlbHNlIG9yPXRoaXMuX29wdGlvbnMudHdlZW5QcmVjaXNpb24sZ3I9''@;'; put 'put ''ITE7dmFyIEtyPXRoaXMuX29wdGlvbnMuZ3Jvd0VudGVyaW5nRWRnZXMsVnI9e30saWk9dGhpcy5fZGljdGlvbmFyeXx8e30sUnI9e30sbGk9dGhpcy5fbm9kZURpY3Rpb25hcnl8fHt9O2Z1bmN0aW9uIE1pKFFpLE1hKXt2YXIgbmw9UWkudGFnO2lmKCJpbmRleCI9PWVuKVFpLmtleT1NYTtl''@;'; put 'put ''bHNlIGlmKCIjIiE9bmxbMF0paWYoImlkIj09ZW4pUWkua2V5PVFpLmF0dHJpYnV0ZXMuaWQ7ZWxzZSBpZigidGl0bGUiPT1lbil7dmFyIGdsPVFpLmNoaWxkcmVuLmZpbmQoZnVuY3Rpb24oQWkpe3JldHVybiJ0aXRsZSI9PUFpLnRhZ30pO2dsJiYoUWkua2V5PWdsLmNoaWxkcmVuLmxlbmd0''@;'; put 'put ''aD4wP2dsLmNoaWxkcmVuWzBdLnRleHQ6IiIpfW51bGw9PVFpLmtleSYmKEpuJiYoImVsbGlwc2UiPT1ubHx8InBvbHlnb24iPT1ubCkmJihubD0icGF0aCIpLFFpLmtleT1ubCsiLSIrTWEpfWZ1bmN0aW9uIG8wKFFpLE1hKXtRaS5pZD0oTWE/TWEuaWQrIi4iOiIiKStRaS5rZXl9ZnVuY3Rp''@;'; put 'put ''b24gbjAoUWkpe1ZyW1FpLmlkXT1RaX1mdW5jdGlvbiBkMChRaSxNYSl7Sm4mJlFpLmlkIGluIGlpJiYoInBvbHlnb24iPT1NYS50YWd8fCJlbGxpcHNlIj09TWEudGFnfHwicGF0aCI9PU1hLnRhZykmJihNYS50YWchPVFpLnRhZ3x8InBvbHlnb24iPT1RaS50YWcpJiYoInBhdGgiIT1NYS50''@;'; put 'put ''YWcmJihRaS5hbHRlcm5hdGl2ZU9sZD1EZShNYSxRaSkpLCJwYXRoIiE9UWkudGFnJiYoUWkuYWx0ZXJuYXRpdmVOZXc9RGUoUWksTWEpKSl9ZnVuY3Rpb24gbTAoUWksTWEpe2lmKEluJiZNYSYmKCJwYXRoIj09TWEudGFnfHxRaS5hbHRlcm5hdGl2ZU9sZCYmInBhdGgiPT1RaS5hbHRlcm5h''@;'; put 'put ''dGl2ZU9sZC50YWcpKXt2YXIgbmw9KFFpLmFsdGVybmF0aXZlTmV3fHxRaSkuYXR0cmlidXRlcy5kO2lmKFFpLmFsdGVybmF0aXZlT2xkKXZhciBnbD1LKFFpLmFsdGVybmF0aXZlT2xkKTtlbHNlIGdsPUsoTWEpOyhRaS5hbHRlcm5hdGl2ZU9sZHx8KFFpLmFsdGVybmF0aXZlT2xkPXt9KSku''@;'; put 'put ''cG9pbnRzPWZ1bmN0aW9uIHgobW4sdW4sY24sX24pe2Zvcih2YXIgR3Q9bW4sa249R3QuY2xvbmVOb2RlKCksVm49R3QuZ2V0VG90YWxMZW5ndGgoKSxlbj0oa24uc2V0QXR0cmlidXRlKCJkIix1biksa24pLmdldFRvdGFsTGVuZ3RoKCksSW49WzBdLEpuPTAsb3I9X24/Y246Y24vTWF0aC5t''@;'; put 'put ''YXgoVm4sZW4pOyhKbis9b3IpPDE7KUluLnB1c2goSm4pO3JldHVybiBJbi5wdXNoKDEpLEluLm1hcChmdW5jdGlvbihLcil7dmFyIFZyPUd0LmdldFBvaW50QXRMZW5ndGgoS3IqVm4pLGlpPWtuLmdldFBvaW50QXRMZW5ndGgoS3IqZW4pO3JldHVybltbVnIueCxWci55XSxbaWkueCxpaS55''@;'; put 'put ''XV19KX0oZ2wsbmwsb3IsZ3IpfX1mdW5jdGlvbiBHMChRaSl7dmFyIG5sPWFyZ3VtZW50c1syXTtNaShRaSxhcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06MCksbzAoUWksbmwpO3ZhciBBaT1paVtRaS5pZF07bjAoUWkpLGQwKFFpLEFpKSxt''@;'; put 'put ''MChRaSxBaSk7dmFyIHZpPXt9O1FpLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24oYjApe3ZhciBzYT1iMC50YWc7KCJlbGxpcHNlIj09c2F8fCJwb2x5Z29uIj09c2EpJiYoc2E9InBhdGgiKSxudWxsPT12aVtzYV0mJih2aVtzYV09MCksRzAoYjAsdmlbc2FdKyssUWkpfSl9ZnVuY3Rpb24g''@;'; put 'put ''RW8oUWkpeyhmdW5jdGlvbiBEaShRaSl7aWYoS3ImJlFpLnBhcmVudCYmIm5vZGUiPT1RaS5wYXJlbnQuYXR0cmlidXRlcy5jbGFzcyYmInRpdGxlIj09UWkudGFnKXtpZihRaS5jaGlsZHJlbi5sZW5ndGg+MCl2YXIgZ2w9UWkuY2hpbGRyZW5bMF0udGV4dDtlbHNlIGdsPSIiO1JyW2dsXT1R''@;'; put 'put ''aS5wYXJlbnR9fSkoUWkpLGZ1bmN0aW9uIFcwKFFpKXt2YXIgbmw9UWkudGFnO2lmKEtyJiYhaWlbUWkuaWRdJiZRaS5wYXJlbnQmJlQoUWkpJiYoInBhdGgiPT1ubHx8InBvbHlnb24iPT1ubCkpe2lmKCJwb2x5Z29uIj09bmwpe3ZhciBBaT1RaS5wYXJlbnQuY2hpbGRyZW4uZmluZChmdW5j''@;'; put 'put ''dGlvbihCbCl7cmV0dXJuInBhdGgiPT1CbC50YWd9KTtRaS50b3RhbExlbmd0aD1BaS50b3RhbExlbmd0aH12YXIgYjA9ZnVuY3Rpb24gRihtbil7cmV0dXJuIGZ1bmN0aW9uIFMobW4pe3JldHVybiJlZGdlIj09bW4ucGFyZW50LmF0dHJpYnV0ZXMuY2xhc3M/bW4ucGFyZW50Om1uLnBhcmVu''@;'; put 'put ''dC5wYXJlbnQucGFyZW50fShtbikuY2hpbGRyZW4uZmluZChmdW5jdGlvbih1bil7cmV0dXJuInRpdGxlIj09dW4udGFnfSl9KFFpKS5jaGlsZHJlblswXSxzYT1iMC50ZXh0LnNwbGl0KCItPiIpOzIhPXNhLmxlbmd0aCYmKHNhPWIwLnRleHQuc3BsaXQoIi0tIikpO3ZhciBybD1zYVswXSxf''@;'; put 'put ''aT1ScltybF0sb3U9bGlbcmxdO2lmKG91KXtpZigoVTA9X2kuY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKEJsLHZuKXtyZXR1cm4iZyI9PUJsLnRhZ30pKT49MCl7dmFyIEhjPV9pLmNoaWxkcmVuW1UwXS5jaGlsZHJlbi5maW5kSW5kZXgoZnVuY3Rpb24oQmwsdm4pe3JldHVybiJhIj09''@;'; put 'put ''QmwudGFnfSk7X2k9X2kuY2hpbGRyZW5bVTBdLmNoaWxkcmVuW0hjXX0oVTA9b3UuY2hpbGRyZW4uZmluZEluZGV4KGZ1bmN0aW9uKEJsLHZuKXtyZXR1cm4iZyI9PUJsLnRhZ30pKT49MCYmKEhjPW91LmNoaWxkcmVuW1UwXS5jaGlsZHJlbi5maW5kSW5kZXgoZnVuY3Rpb24odm4sXzApe3Jl''@;'; put 'put ''dHVybiJhIj09dm4udGFnfSksb3U9b3UuY2hpbGRyZW5bVTBdLmNoaWxkcmVuW0hjXSk7Zm9yKHZhciBCcz1faS5jaGlsZHJlbixVMD0wO1UwPEJzLmxlbmd0aDtVMCsrKWlmKCJwb2x5Z29uIj09QnNbVTBdLnRhZ3x8ImVsbGlwc2UiPT1Cc1tVMF0udGFnfHwicGF0aCI9PUJzW1UwXS50YWd8''@;'; put 'put ''fCJ0ZXh0Ij09QnNbVTBdLnRhZyl7dmFyIFgwPUJzW1UwXTticmVha312YXIgdWE9b3UuY2hpbGRyZW47Zm9yKFUwPTA7VTA8dWEubGVuZ3RoO1UwKyspaWYoInBvbHlnb24iPT11YVtVMF0udGFnfHwiZWxsaXBzZSI9PXVhW1UwXS50YWd8fCJwYXRoIj09dWFbVTBdLnRhZ3x8InRleHQiPT11''@;'; put 'put ''YVtVMF0udGFnKXt2YXIgajA9dWFbVTBdO2JyZWFrfVFpLm9mZnNldD1qMCYmWDA/e3g6ajAuY2VudGVyLngtWDAuY2VudGVyLngseTpqMC5jZW50ZXIueS1YMC5jZW50ZXIueX06e3g6MCx5OjB9fX19KFFpKSxRaS5jaGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKE1hKXtFbyhNYSl9KX10aGlz''@;'; put 'put ''Ll9kaXNwYXRjaC5jYWxsKCJzdGFydCIsdGhpcyksdGhpcy5fYnVzeT0hMCx0aGlzLl9kaXNwYXRjaC5jYWxsKCJsYXlvdXRTdGFydCIsdGhpcyk7dmFyIHFvPXtmb3JtYXQ6InN2ZyIsZW5naW5lOkd0LGltYWdlczprbix0b3RhbE1lbW9yeTpWbn07aWYodGhpcy5fd29ya2VyKV9uLnBvc3RN''@;'; put 'put ''ZXNzYWdlKHtkb3Q6bW4sb3B0aW9uczpxb30pLF9uLm9ubWVzc2FnZT1mdW5jdGlvbihRaSl7c3dpdGNoKFFpLmRhdGEudHlwZSl7Y2FzZSJkb25lIjpyZXR1cm4gbGwuY2FsbChjbixRaS5kYXRhLnN2Zyk7Y2FzZSJlcnJvciI6aWYoIWNuLl9vbmVycm9yKXRocm93IFFpLmRhdGEuZXJyb3I7''@;'; put 'put ''Y24uX29uZXJyb3IoUWkuZGF0YS5lcnJvcil9fTtlbHNle3RyeXt2YXIgY2E9cmUobW4scW8pfWNhdGNoKFFpKXtpZihjbi5fb25lcnJvcilyZXR1cm4gY24uX29uZXJyb3IoUWkubWVzc2FnZSksdGhpczt0aHJvdyBRaS5tZXNzYWdlfWxsLmNhbGwodGhpcyxjYSl9ZnVuY3Rpb24gbGwoUWkp''@;'; put 'put ''e3RoaXMuX2Rpc3BhdGNoLmNhbGwoImxheW91dEVuZCIsdGhpcyk7dmFyIE1hPUIuc2VsZWN0KGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSkuYXBwZW5kKCJkaXYiKSxnbD0obmV3IHdpbmRvdy5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhRaSwiaW1hZ2Uvc3ZnK3htbCIp''@;'; put 'put ''O01hLmFwcGVuZChmdW5jdGlvbigpe3JldHVybiBnbC5kb2N1bWVudEVsZW1lbnR9KTt2YXIgdmk9TihNYS5zZWxlY3QoInN2ZyIpKTt0aGlzLl9kaXNwYXRjaC5jYWxsKCJkYXRhRXh0cmFjdEVuZCIsdGhpcyksRzAodmkpLHRoaXMuX2Rpc3BhdGNoLmNhbGwoImRhdGFQcm9jZXNzUGFzczFF''@;'; put 'put ''bmQiLHRoaXMpLEVvKHZpKSx0aGlzLl9kaXNwYXRjaC5jYWxsKCJkYXRhUHJvY2Vzc1Bhc3MyRW5kIix0aGlzKSx0aGlzLl9kYXRhPXZpLHRoaXMuX2RpY3Rpb25hcnk9VnIsdGhpcy5fbm9kZURpY3Rpb25hcnk9UnIsdGhpcy5fZXh0cmFjdERhdGE9ZnVuY3Rpb24oc2EscmwsX2kpe3ZhciBv''@;'; put 'put ''dT1OKHNhKTtyZXR1cm4gRzAob3UscmwsX2kpLEVvKG91KSxvdX0sdGhpcy5fYnVzeT0hMSx0aGlzLl9kaXNwYXRjaC5jYWxsKCJkYXRhUHJvY2Vzc0VuZCIsdGhpcyksdW4mJnVuLmNhbGwodGhpcyksdGhpcy5fcXVldWUubGVuZ3RoPjAmJnRoaXMuX3F1ZXVlLnNoaWZ0KCkuY2FsbCh0aGlz''@;'; put 'put ''KX1yZXR1cm4gdGhpc30sZGF0YTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kYXRhfHxudWxsfSxyZW5kZXJEb3Q6ZnVuY3Rpb24obW4sdW4pe3ZhciBjbj10aGlzO3JldHVybiB0aGlzLmRvdChtbixmdW5jdGlvbiBfbigpe2NuLnJlbmRlcih1bil9KSx0aGlzfSx0cmFuc2l0aW9uOmZ1bmN0''@;'; put 'put ''aW9uKG1uKXtyZXR1cm4gbW4gaW5zdGFuY2VvZiBGdW5jdGlvbj90aGlzLl90cmFuc2l0aW9uRmFjdG9yeT1tbjp0aGlzLl90cmFuc2l0aW9uPUVlLnRyYW5zaXRpb24obW4pLHRoaXN9LGFjdGl2ZTpmdW5jdGlvbiB2dChtbil7dmFyIGNuPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0''@;'; put 'put ''RGF0YVByb3BhZ2F0aW9uKCJzdmciKTtyZXR1cm4gMCE9Y24uc2l6ZSgpP0VlLmFjdGl2ZShjbi5ub2RlKCksbW4pOm51bGx9LG9wdGlvbnM6ZnVuY3Rpb24obW4pe2lmKHZvaWQgMD09PW1uKXJldHVybiBPYmplY3QuYXNzaWduKHt9LHRoaXMuX29wdGlvbnMpO3ZhciB1bj0hMCxjbj0hMSxf''@;'; put 'put ''bj12b2lkIDA7dHJ5e2Zvcih2YXIga24sR3Q9T2JqZWN0LmtleXMobW4pW1N5bWJvbC5pdGVyYXRvcl0oKTshKHVuPShrbj1HdC5uZXh0KCkpLmRvbmUpO3VuPSEwKXt2YXIgVm49a24udmFsdWU7dGhpcy5fb3B0aW9uc1tWbl09bW5bVm5dfX1jYXRjaChlbil7Y249ITAsX249ZW59ZmluYWxs''@;'; put 'put ''eXt0cnl7IXVuJiZHdC5yZXR1cm4mJkd0LnJldHVybigpfWZpbmFsbHl7aWYoY24pdGhyb3cgX259fXJldHVybiB0aGlzfSx3aWR0aDpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMud2lkdGg9bW4sdGhpc30saGVpZ2h0OmZ1bmN0aW9uKG1uKXtyZXR1cm4gdGhpcy5fb3B0aW9u''@;'; put 'put ''cy5oZWlnaHQ9bW4sdGhpc30sc2NhbGU6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vcHRpb25zLnNjYWxlPW1uLHRoaXN9LGZpdDpmdW5jdGlvbihtbil7cmV0dXJuIHRoaXMuX29wdGlvbnMuZml0PW1uLHRoaXN9LGF0dHJpYnV0ZXI6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9hdHRy''@;'; put 'put ''aWJ1dGVyPW1uLHRoaXN9LG9uOmZ1bmN0aW9uKG1uLHVuKXtyZXR1cm4gdGhpcy5fZGlzcGF0Y2gub24obW4sdW4pLHRoaXN9LG9uZXJyb3I6ZnVuY3Rpb24obW4pe3JldHVybiB0aGlzLl9vbmVycm9yPW1uLHRoaXN9LGxvZ0V2ZW50czpmdW5jdGlvbihtbil7dmFyIHVuPXRoaXMsY249RGF0''@;'; put 'put ''ZS5ub3coKSxfbj17fSxHdD10aGlzLl9ldmVudFR5cGVzLGtuPU1hdGgubWF4LmFwcGx5KE1hdGgseW4oR3QubWFwKGZ1bmN0aW9uKGdyKXtyZXR1cm4gZ3IubGVuZ3RofSkpKSxWbj1mdW5jdGlvbihLcil7dmFyIFZyPUd0W0tyXTtfbltWcl09W10sSW49dW4sdW4ub24oVnIrIi5sb2ciLG1u''@;'; put 'put ''P2Z1bmN0aW9uKCl7dmFyIGlpPURhdGUubm93KCksUnI9X25bVnJdLmxlbmd0aDtfbltWcl0ucHVzaChpaSk7dmFyIGxpPSIiO2lmKGxpKz0iRXZlbnQgIixsaSs9YWUuZm9ybWF0KCIgPjIiKShLcikrIiAiLGxpKz1WcisiICIucmVwZWF0KGtuLVZyLmxlbmd0aCksbGkrPWFlLmZvcm1hdCgi''@;'; put 'put ''ID41IikoaWktY24pKyIgIiwiaW5pdEVuZCIhPVZyJiYobGkrPWFlLmZvcm1hdCgiID41IikoaWktX24uc3RhcnRbUnJdKSksImRhdGFQcm9jZXNzRW5kIj09VnImJihsaSs9IiBwcmVwYXJlICAgICAgICAgICAgICAgICAiK2FlLmZvcm1hdCgiID41IikoaWktX24ubGF5b3V0RW5kW1JyXSkp''@;'; put 'put ''LCJyZW5kZXJFbmQiPT1WciYmSW4uX3RyYW5zaXRpb24mJihsaSs9IiB0cmFuc2l0aW9uIHN0YXJ0IG1hcmdpbiAiK2FlLmZvcm1hdCgiID41IikoSW4uX3RyYW5zaXRpb24uZGVsYXkoKS0oaWktX24ucmVuZGVyU3RhcnRbUnJdKSksSm49SW4uX3RyYW5zaXRpb24uZGVsYXkoKSxvcj1Jbi5f''@;'; put 'put ''dHJhbnNpdGlvbi5kdXJhdGlvbigpKSwidHJhbnNpdGlvblN0YXJ0Ij09VnIpe3ZhciBNaT1paS1fbi5yZW5kZXJTdGFydFtScl07bGkrPSIgdHJhbnNpdGlvbiBkZWxheSAgICAgICAgIithZS5mb3JtYXQoIiA+NSIpKGlpLV9uLnJlbmRlclN0YXJ0W1JyXSksbGkrPSIgZXhwZWN0ZWQgIith''@;'; put 'put ''ZS5mb3JtYXQoIiA+NSIpKEpuKSxsaSs9IiBkaWZmICIrYWUuZm9ybWF0KCIgPjUiKShNaS1Kbil9aWYoInRyYW5zaXRpb25FbmQiPT1Wcil7dmFyIG8wPWlpLV9uLnRyYW5zaXRpb25TdGFydFtScl07bGkrPSIgdHJhbnNpdGlvbiBkdXJhdGlvbiAgICAgIithZS5mb3JtYXQoIiA+NSIpKG8w''@;'; put 'put ''KSxsaSs9IiBleHBlY3RlZCAiK2FlLmZvcm1hdCgiID41Iikob3IpLGxpKz0iIGRpZmYgIithZS5mb3JtYXQoIiA+NSIpKG8wLW9yKX1jb25zb2xlLmxvZyhsaSksY249aWl9Om51bGwpfTtmb3IodmFyIGVuIGluIEd0KXt2YXIgSW4sSm4sb3I7Vm4oZW4pfXJldHVybiB0aGlzfSxkcmF3RWRn''@;'; put 'put ''ZTpmdW5jdGlvbiBibihtbix1bixjbixfbixHdCl7dmFyIGtuPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTp7fTtpZigoR3Q9T2JqZWN0LmFzc2lnbih7fSxHdCkpLnN0eWxlJiZHdC5zdHlsZS5pbmNsdWRlcygiaW52aXMiKSl2YXIgVm49''@;'; put 'put ''Qi5zZWxlY3QobnVsbCk7ZWxzZXt2YXIgSm49dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSxncj1OKG5yKEd0KSk7Vm49Sm4uYXBwZW5kKCJnIikuZGF0YShbZ3JdKSxkZS5jYWxsKFZu''@;'; put 'put ''Lm5vZGUoKSxnciksc3IoVm4sbW4sdW4sY24sX24sR3Qsa24pfXJldHVybiB0aGlzLl9kcmF3bkVkZ2U9e2c6Vm4seDE6bW4seTE6dW4seDI6Y24seTI6X24sYXR0cmlidXRlczpHdH0sdGhpc30sdXBkYXRlRHJhd25FZGdlOmZ1bmN0aW9uIGVyKG1uLHVuLGNuLF9uKXt2YXIgR3Q9YXJndW1l''@;'; put 'put ''bnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnt9LGtuPWFyZ3VtZW50cy5sZW5ndGg+NSYmdm9pZCAwIT09YXJndW1lbnRzWzVdP2FyZ3VtZW50c1s1XTp7fTtpZighdGhpcy5fZHJhd25FZGdlKXRocm93IEVycm9yKCJObyBlZGdlIGhhcyBiZWVuIGRy''@;'; put 'put ''YXduIik7dmFyIFZuPXRoaXMuX2RyYXduRWRnZS5nO3JldHVybiBHdD1PYmplY3QuYXNzaWduKHRoaXMuX2RyYXduRWRnZS5hdHRyaWJ1dGVzLEd0KSx0aGlzLl9kcmF3bkVkZ2UueDE9bW4sdGhpcy5fZHJhd25FZGdlLnkxPXVuLHRoaXMuX2RyYXduRWRnZS54Mj1jbix0aGlzLl9kcmF3bkVk''@;'; put 'put ''Z2UueTI9X24sIVZuLmVtcHR5KCl8fEd0LnN0eWxlJiZHdC5zdHlsZS5pbmNsdWRlcygiaW52aXMiKXx8KFZuPXRoaXMuX3NlbGVjdGlvbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJzdmciKS5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJnIikuYXBwZW5kKCJnIiksdGhp''@;'; put 'put ''cy5fZHJhd25FZGdlLmc9Vm4pLFZuLmVtcHR5KCl8fHNyKFZuLG1uLHVuLGNuLF9uLEd0LGtuKSx0aGlzfSxtb3ZlRHJhd25FZGdlRW5kUG9pbnQ6ZnVuY3Rpb24gRnIobW4sdW4pe3ZhciBjbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06''@;'; put 'put ''e307aWYoIXRoaXMuX2RyYXduRWRnZSl0aHJvdyBFcnJvcigiTm8gZWRnZSBoYXMgYmVlbiBkcmF3biIpO3ZhciBfbj10aGlzLl9kcmF3bkVkZ2UuZyxHdD10aGlzLl9kcmF3bkVkZ2UueDEsa249dGhpcy5fZHJhd25FZGdlLnkxLFZuPXRoaXMuX2RyYXduRWRnZS5hdHRyaWJ1dGVzO3JldHVy''@;'; put 'put ''biB0aGlzLl9kcmF3bkVkZ2UueDI9bW4sdGhpcy5fZHJhd25FZGdlLnkyPXVuLFhuKF9uLEd0LGtuLG1uLHVuLFZuLGNuKSx0aGlzfSxpbnNlcnREcmF3bkVkZ2U6ZnVuY3Rpb24gcXQobW4pe2lmKCF0aGlzLl9kcmF3bkVkZ2UpdGhyb3cgRXJyb3IoIk5vIGVkZ2UgaGFzIGJlZW4gZHJhd24i''@;'; put 'put ''KTt2YXIgdW49dGhpcy5fZHJhd25FZGdlLmc7aWYodW4uZW1wdHkoKSlyZXR1cm4gdGhpczt1bi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0aXRsZSIpLnRleHQobW4pO3ZhciBWbj10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigic3ZnIikuc2Vs''@;'; put 'put ''ZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLGVuPVZuLmRhdHVtKCksSW49dGhpcy5fZXh0cmFjdERhdGEodW4sZW4uY2hpbGRyZW4ubGVuZ3RoLFZuLmRhdHVtKCkpO3JldHVybiBlbi5jaGlsZHJlbi5wdXNoKEluKSxvZSh1bixJbiksdGhpcy5fZHJhd25FZGdlPW51bGwsdGhpc30s''@;'; put 'put ''cmVtb3ZlRHJhd25FZGdlOnhyfSwicmVtb3ZlRHJhd25FZGdlIix4ciksZG4odG4sImRyYXduRWRnZVNlbGVjdGlvbiIscHIpLGRuKHRuLCJkcmF3bkVkZ2VTZWxlY3Rpb24iLHByKSxkbih0biwiZHJhd05vZGUiLGZ1bmN0aW9uIEFuKG1uLHVuLGNuKXt2YXIgX249YXJndW1lbnRzLmxlbmd0''@;'; put 'put ''aD4zJiZ2b2lkIDAhPT1hcmd1bWVudHNbM10/YXJndW1lbnRzWzNdOnt9LEd0PWFyZ3VtZW50cy5sZW5ndGg+NCYmdm9pZCAwIT09YXJndW1lbnRzWzRdP2FyZ3VtZW50c1s0XTp7fTtpZigoX249T2JqZWN0LmFzc2lnbih7fSxfbikpLnN0eWxlJiZfbi5zdHlsZS5pbmNsdWRlcygiaW52aXMi''@;'; put 'put ''KSl2YXIga249Qi5zZWxlY3QobnVsbCk7ZWxzZXt2YXIgSW49dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImciKSxvcj1OKHduKGNuLF9uKSk7a249SW4uYXBwZW5kKCJnIikuZGF0YShbb3Jd''@;'; put 'put ''KSxkZS5jYWxsKGtuLm5vZGUoKSxvciksV3Qoa24sbW4sdW4sY24sX24sR3QpfXJldHVybiB0aGlzLl9kcmF3bk5vZGU9e2c6a24sbm9kZUlkOmNuLHg6bW4seTp1bixhdHRyaWJ1dGVzOl9ufSx0aGlzfSksZG4odG4sInVwZGF0ZURyYXduTm9kZSIsZnVuY3Rpb24gcW4obW4sdW4sY24pe3Zh''@;'; put 'put ''ciBfbj1hcmd1bWVudHMubGVuZ3RoPjMmJnZvaWQgMCE9PWFyZ3VtZW50c1szXT9hcmd1bWVudHNbM106e30sR3Q9YXJndW1lbnRzLmxlbmd0aD40JiZ2b2lkIDAhPT1hcmd1bWVudHNbNF0/YXJndW1lbnRzWzRdOnt9O2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3IoIk5vIG5vZGUg''@;'; put 'put ''aGFzIGJlZW4gZHJhd24iKTt2YXIga249dGhpcy5fZHJhd25Ob2RlLmc7cmV0dXJuIG51bGw9PWNuJiYoY249dGhpcy5fZHJhd25Ob2RlLm5vZGVJZCksX249T2JqZWN0LmFzc2lnbih0aGlzLl9kcmF3bk5vZGUuYXR0cmlidXRlcyxfbiksdGhpcy5fZHJhd25Ob2RlLm5vZGVJZD1jbix0aGlz''@;'; put 'put ''Ll9kcmF3bk5vZGUueD1tbix0aGlzLl9kcmF3bk5vZGUueT11biwha24uZW1wdHkoKXx8X24uc3R5bGUmJl9uLnN0eWxlLmluY2x1ZGVzKCJpbnZpcyIpfHwoa249dGhpcy5fc2VsZWN0aW9uLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oInN2ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJv''@;'; put 'put ''cGFnYXRpb24oImciKS5hcHBlbmQoImciKSx0aGlzLl9kcmF3bk5vZGUuZz1rbiksa24uZW1wdHkoKXx8V3Qoa24sbW4sdW4sY24sX24sR3QpLHRoaXN9KSxkbih0biwibW92ZURyYXduTm9kZSIsZnVuY3Rpb24gS24obW4sdW4pe2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3IoIk5v''@;'; put 'put ''IG5vZGUgaGFzIGJlZW4gZHJhd24iKTt2YXIgX249dGhpcy5fZHJhd25Ob2RlLmcsR3Q9dGhpcy5fZHJhd25Ob2RlLmF0dHJpYnV0ZXM7cmV0dXJuIHRoaXMuX2RyYXduTm9kZS54PW1uLHRoaXMuX2RyYXduTm9kZS55PXVuLF9uLmVtcHR5KCl8fHBuKF9uLG1uLHVuLEd0KSx0aGlzfSksZG4o''@;'; put 'put ''dG4sImluc2VydERyYXduTm9kZSIsZnVuY3Rpb24gc24obW4pe2lmKCF0aGlzLl9kcmF3bk5vZGUpdGhyb3cgRXJyb3IoIk5vIG5vZGUgaGFzIGJlZW4gZHJhd24iKTtudWxsPT1tbiYmKG1uPXRoaXMuX2RyYXduTm9kZS5ub2RlSWQpO3ZhciB1bj10aGlzLl9kcmF3bk5vZGUuZztpZih1bi5l''@;'; put 'put ''bXB0eSgpKXJldHVybiB0aGlzO3ZhciBjbj10aGlzLl9kcmF3bk5vZGUuYXR0cmlidXRlcztpZih1bi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0aXRsZSIpLnRleHQobW4pLGNuLlVSTHx8Y24udG9vbHRpcCl2YXIga249dW4uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigi''@;'; put 'put ''ZyIpLnNlbGVjdFdpdGhvdXREYXRhUHJvcGFnYXRpb24oImEiKSxlbj0oa24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZWxsaXBzZSxwb2x5Z29uLHBhdGgscG9seWxpbmUiKSxrbi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0ZXh0IikpO2Vsc2UgdW4uc2VsZWN0V2l0''@;'; put 'put ''aG91dERhdGFQcm9wYWdhdGlvbigiZWxsaXBzZSxwb2x5Z29uLHBhdGgscG9seWxpbmUiKSxlbj11bi5zZWxlY3RXaXRob3V0RGF0YVByb3BhZ2F0aW9uKCJ0ZXh0Iik7ZW4udGV4dChjbi5sYWJlbHx8bW4pO3ZhciBvcj10aGlzLl9zZWxlY3Rpb24uc2VsZWN0V2l0aG91dERhdGFQcm9wYWdh''@;'; put 'put ''dGlvbigic3ZnIikuc2VsZWN0V2l0aG91dERhdGFQcm9wYWdhdGlvbigiZyIpLGdyPW9yLmRhdHVtKCksS3I9dGhpcy5fZXh0cmFjdERhdGEodW4sZ3IuY2hpbGRyZW4ubGVuZ3RoLG9yLmRhdHVtKCkpO3JldHVybiBnci5jaGlsZHJlbi5wdXNoKEtyKSxvZSh1bixLciksdGhpcy5fZHJhd25O''@;'; put 'put ''b2RlPW51bGwsdGhpc30pLGRuKHRuLCJyZW1vdmVEcmF3bk5vZGUiLE50KSxkbih0biwicmVtb3ZlRHJhd25Ob2RlIixOdCksZG4odG4sImRyYXduTm9kZVNlbGVjdGlvbiIsVW4pLGRuKHRuLCJkcmF3bk5vZGVTZWxlY3Rpb24iLFVuKSx0bik7Qi5zZWxlY3Rpb24ucHJvdG90eXBlLmdyYXBo''@;'; put 'put ''dml6PWZ1bmN0aW9uKG1uKXt2YXIgdW49dGhpcy5ub2RlKCkuX19ncmFwaHZpel9fO3JldHVybiB1bj8odW4ub3B0aW9ucyhtbiksdW4uX2Rpc3BhdGNoLmNhbGwoImluaXRFbmQiLHRoaXMpKTp1bj1uZXcgem4odGhpcyxtbiksdW59LEIuc2VsZWN0aW9uLnByb3RvdHlwZS5zZWxlY3RXaXRo''@;'; put 'put ''b3V0RGF0YVByb3BhZ2F0aW9uPWZ1bmN0aW9uKG1uKXtyZXR1cm4gQi5zZWxlY3QodGhpcy5zaXplKCk+MD90aGlzLm5vZGUoKS5xdWVyeVNlbGVjdG9yKG1uKTpudWxsKX0sbWUuZ3JhcGh2aXo9VHIsT2JqZWN0LmRlZmluZVByb3BlcnR5KG1lLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0o''@;'; put 'put ''SmUsTCg2OTQxNSksTCg4NTEwNiksTCg0MDgyMiksTCg1Njg0MiksTCgyMTc1OSksTCg3NTgyNyksTCgyOTAzNSksTCg2NTk5MCksTCgzODE4NCkpfSwxNjcxMjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbWUoRSxFZSxVLFEsail7dmFyIHJlPUUqRSxhZT1yZSpFO3JldHVy''@;'; put 'put ''bigoMS0zKkUrMypyZS1hZSkqRWUrKDQtNipyZSszKmFlKSpVKygxKzMqRSszKnJlLTMqYWUpKlErYWUqaikvNn1mdW5jdGlvbiBCKEUpe3ZhciBFZT1FLmxlbmd0aC0xO3JldHVybiBmdW5jdGlvbihVKXt2YXIgUT1VPD0wP1U9MDpVPj0xPyhVPTEsRWUtMSk6TWF0aC5mbG9vcihVKkVlKSxq''@;'; put 'put ''PUVbUV0scmU9RVtRKzFdO3JldHVybiBtZSgoVS1RL0VlKSpFZSxRPjA/RVtRLTFdOjIqai1yZSxqLHJlLFE8RWUtMT9FW1ErMl06MipyZS1qKX19TC5kKEplLHtaOigpPT5CLHQ6KCk9Pm1lfSl9LDY4NTIzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9PkJ9KTt2YXIg''@;'; put 'put ''bWU9TCgxNjcxMik7ZnVuY3Rpb24gQihFKXt2YXIgRWU9RS5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKFUpe3ZhciBRPU1hdGguZmxvb3IoKChVJT0xKTwwPysrVTpVKSpFZSk7cmV0dXJuKDAsbWUudCkoKFUtUS9FZSkqRWUsRVsoUStFZS0xKSVFZV0sRVtRJUVlXSxFWyhRKzEpJUVlXSxFWyhR''@;'; put 'put ''KzIpJUVlXSl9fX0sMzUxNDc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WlA6KCk9PlEsd3g6KCk9PkVlLHlpOigpPT5VfSk7dmFyIG1lPUwoNDc5MjcpO2Z1bmN0aW9uIEIoaixyZSl7cmV0dXJuIGZ1bmN0aW9uKGFlKXtyZXR1cm4gaithZSpyZX19ZnVuY3Rpb24gRWUoaixy''@;'; put 'put ''ZSl7dmFyIGFlPXJlLWo7cmV0dXJuIGFlP0IoaixhZT4xODB8fGFlPC0xODA/YWUtMzYwKk1hdGgucm91bmQoYWUvMzYwKTphZSk6KDAsbWUuWikoaXNOYU4oaik/cmU6ail9ZnVuY3Rpb24gVShqKXtyZXR1cm4gMT09KGo9K2opP1E6ZnVuY3Rpb24ocmUsYWUpe3JldHVybiBhZS1yZT9mdW5j''@;'; put 'put ''dGlvbiBFKGoscmUsYWUpe3JldHVybiBqPU1hdGgucG93KGosYWUpLHJlPU1hdGgucG93KHJlLGFlKS1qLGFlPTEvYWUsZnVuY3Rpb24oWSl7cmV0dXJuIE1hdGgucG93KGorWSpyZSxhZSl9fShyZSxhZSxqKTooMCxtZS5aKShpc05hTihyZSk/YWU6cmUpfX1mdW5jdGlvbiBRKGoscmUpe3Zh''@;'; put 'put ''ciBhZT1yZS1qO3JldHVybiBhZT9CKGosYWUpOigwLG1lLlopKGlzTmFOKGopP3JlOmopfX0sNDc5Mjc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBCfX1MLmQoSmUse1o6KCk9Pm1lfSl9LDIxNzU5OihYZSxKZSxMKT0+''@;'; put 'put ''eyJ1c2Ugc3RyaWN0IjtMLnIoSmUpLEwuZChKZSx7aW50ZXJwb2xhdGU6KCk9Pk4saW50ZXJwb2xhdGVBcnJheTooKT0+VSxpbnRlcnBvbGF0ZUJhc2lzOigpPT50ZS5aLGludGVycG9sYXRlQmFzaXNDbG9zZWQ6KCk9PksuWixpbnRlcnBvbGF0ZUN1YmVoZWxpeDooKT0+SnQsaW50ZXJwb2xh''@;'; put 'put ''dGVDdWJlaGVsaXhMb25nOigpPT5nbixpbnRlcnBvbGF0ZURhdGU6KCk9PmosaW50ZXJwb2xhdGVEaXNjcmV0ZTooKT0+SixpbnRlcnBvbGF0ZUhjbDooKT0+QnQsaW50ZXJwb2xhdGVIY2xMb25nOigpPT5vbixpbnRlcnBvbGF0ZUhzbDooKT0+a2UsaW50ZXJwb2xhdGVIc2xMb25nOigpPT5T''@;'; put 'put ''ZSxpbnRlcnBvbGF0ZUh1ZTooKT0+b2UsaW50ZXJwb2xhdGVMYWI6KCk9PkF0LGludGVycG9sYXRlTnVtYmVyOigpPT5yZS5aLGludGVycG9sYXRlTnVtYmVyQXJyYXk6KCk9PkUsaW50ZXJwb2xhdGVPYmplY3Q6KCk9PmFlLGludGVycG9sYXRlUmdiOigpPT5CLlpQLGludGVycG9sYXRlUmdi''@;'; put 'put ''QmFzaXM6KCk9PkIuaEQsaW50ZXJwb2xhdGVSZ2JCYXNpc0Nsb3NlZDooKT0+Qi5ZRCxpbnRlcnBvbGF0ZVJvdW5kOigpPT5jZSxpbnRlcnBvbGF0ZVN0cmluZzooKT0+WS5aLGludGVycG9sYXRlVHJhbnNmb3JtQ3NzOigpPT5kZS5ZLGludGVycG9sYXRlVHJhbnNmb3JtU3ZnOigpPT5kZS53''@;'; put 'put ''LGludGVycG9sYXRlWm9vbTooKT0+dmUuWixwaWVjZXdpc2U6KCk9PmRuLHF1YW50aXplOigpPT55bn0pO3ZhciBtZT1MKDUyNzg2KSxCPUwoODY4MTEpO2Z1bmN0aW9uIEUobG4sTm4pe05ufHwoTm49W10pO3ZhciBzcixibj1sbj9NYXRoLm1pbihObi5sZW5ndGgsbG4ubGVuZ3RoKTowLGVy''@;'; put 'put ''PU5uLnNsaWNlKCk7cmV0dXJuIGZ1bmN0aW9uKFhuKXtmb3Ioc3I9MDtzcjxibjsrK3NyKWVyW3NyXT1sbltzcl0qKDEtWG4pK05uW3NyXSpYbjtyZXR1cm4gZXJ9fWZ1bmN0aW9uIEVlKGxuKXtyZXR1cm4gQXJyYXlCdWZmZXIuaXNWaWV3KGxuKSYmIShsbiBpbnN0YW5jZW9mIERhdGFWaWV3''@;'; put 'put ''KX1mdW5jdGlvbiBVKGxuLE5uKXtyZXR1cm4oRWUoTm4pP0U6USkobG4sTm4pfWZ1bmN0aW9uIFEobG4sTm4pe3ZhciBGcixibj1Obj9Obi5sZW5ndGg6MCxlcj1sbj9NYXRoLm1pbihibixsbi5sZW5ndGgpOjAsc3I9bmV3IEFycmF5KGVyKSxYbj1uZXcgQXJyYXkoYm4pO2ZvcihGcj0wO0Zy''@;'; put 'put ''PGVyOysrRnIpc3JbRnJdPU4obG5bRnJdLE5uW0ZyXSk7Zm9yKDtGcjxibjsrK0ZyKVhuW0ZyXT1ObltGcl07cmV0dXJuIGZ1bmN0aW9uKHhyKXtmb3IoRnI9MDtGcjxlcjsrK0ZyKVhuW0ZyXT1zcltGcl0oeHIpO3JldHVybiBYbn19ZnVuY3Rpb24gaihsbixObil7dmFyIGJuPW5ldyBEYXRl''@;'; put 'put ''O3JldHVybiBsbj0rbG4sTm49K05uLGZ1bmN0aW9uKGVyKXtyZXR1cm4gYm4uc2V0VGltZShsbiooMS1lcikrTm4qZXIpLGJufX12YXIgcmU9TCg2NzM4KTtmdW5jdGlvbiBhZShsbixObil7dmFyIHNyLGJuPXt9LGVyPXt9O2ZvcihzciBpbihudWxsPT09bG58fCJvYmplY3QiIT10eXBlb2Yg''@;'; put 'put ''bG4pJiYobG49e30pLChudWxsPT09Tm58fCJvYmplY3QiIT10eXBlb2YgTm4pJiYoTm49e30pLE5uKXNyIGluIGxuP2JuW3NyXT1OKGxuW3NyXSxObltzcl0pOmVyW3NyXT1Obltzcl07cmV0dXJuIGZ1bmN0aW9uKFhuKXtmb3Ioc3IgaW4gYm4pZXJbc3JdPWJuW3NyXShYbik7cmV0dXJuIGVy''@;'; put 'put ''fX12YXIgWT1MKDIzMDk2KSxXPUwoNDc5MjcpO2Z1bmN0aW9uIE4obG4sTm4pe3ZhciBlcixibj10eXBlb2YgTm47cmV0dXJuIG51bGw9PU5ufHwiYm9vbGVhbiI9PT1ibj8oMCxXLlopKE5uKTooIm51bWJlciI9PT1ibj9yZS5aOiJzdHJpbmciPT09Ym4/KGVyPSgwLG1lLlpQKShObikpPyhO''@;'; put 'put ''bj1lcixCLlpQKTpZLlo6Tm4gaW5zdGFuY2VvZiBtZS5aUD9CLlpQOk5uIGluc3RhbmNlb2YgRGF0ZT9qOkVlKE5uKT9FOkFycmF5LmlzQXJyYXkoTm4pP1E6ImZ1bmN0aW9uIiE9dHlwZW9mIE5uLnZhbHVlT2YmJiJmdW5jdGlvbiIhPXR5cGVvZiBObi50b1N0cmluZ3x8aXNOYU4oTm4pP2Fl''@;'; put 'put ''OnJlLlopKGxuLE5uKX12YXIgdGU9TCgxNjcxMiksSz1MKDY4NTIzKTtmdW5jdGlvbiBKKGxuKXt2YXIgTm49bG4ubGVuZ3RoO3JldHVybiBmdW5jdGlvbihibil7cmV0dXJuIGxuW01hdGgubWF4KDAsTWF0aC5taW4oTm4tMSxNYXRoLmZsb29yKGJuKk5uKSkpXX19dmFyIHNlPUwoMzUxNDcp''@;'; put 'put ''O2Z1bmN0aW9uIG9lKGxuLE5uKXt2YXIgYm49KDAsc2Uud3gpKCtsbiwrTm4pO3JldHVybiBmdW5jdGlvbihlcil7dmFyIHNyPWJuKGVyKTtyZXR1cm4gc3ItMzYwKk1hdGguZmxvb3Ioc3IvMzYwKX19ZnVuY3Rpb24gY2UobG4sTm4pe3JldHVybiBsbj0rbG4sTm49K05uLGZ1bmN0aW9uKGJu''@;'; put 'put ''KXtyZXR1cm4gTWF0aC5yb3VuZChsbiooMS1ibikrTm4qYm4pfX12YXIgZGU9TCg3NTM0OSksdmU9TCg3NjI1Nyk7ZnVuY3Rpb24gQWUobG4pe3JldHVybiBmdW5jdGlvbihObixibil7dmFyIGVyPWxuKChObj0oMCxtZS5ZbSkoTm4pKS5oLChibj0oMCxtZS5ZbSkoYm4pKS5oKSxzcj0oMCxz''@;'; put 'put ''ZS5aUCkoTm4ucyxibi5zKSxYbj0oMCxzZS5aUCkoTm4ubCxibi5sKSxGcj0oMCxzZS5aUCkoTm4ub3BhY2l0eSxibi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oeHIpe3JldHVybiBObi5oPWVyKHhyKSxObi5zPXNyKHhyKSxObi5sPVhuKHhyKSxObi5vcGFjaXR5PUZyKHhyKSxObisiIn19''@;'; put 'put ''fWNvbnN0IGtlPUFlKHNlLnd4KTt2YXIgU2U9QWUoc2UuWlApLEllPUwoNjg4ODQpLFRlPU1hdGguUEkvMTgwLE1lPTE4MC9NYXRoLlBJLE89Ljk2NDIyLG5lPTQvMjkseD02LzI5LFA9Myp4Kng7ZnVuY3Rpb24gVChsbil7aWYobG4gaW5zdGFuY2VvZiB5ZSlyZXR1cm4gbmV3IHllKGxuLmws''@;'; put 'put ''bG4uYSxsbi5iLGxuLm9wYWNpdHkpO2lmKGxuIGluc3RhbmNlb2YgbXQpcmV0dXJuIHZ0KGxuKTtsbiBpbnN0YW5jZW9mIG1lLlNzfHwobG49KDAsbWUuU1UpKGxuKSk7dmFyIFhuLEZyLE5uPVFlKGxuLnIpLGJuPVFlKGxuLmcpLGVyPVFlKGxuLmIpLHNyPUNlKCguMjIyNTA0NSpObisuNzE2''@;'; put 'put ''ODc4NipibisuMDYwNjE2OSplcikvMSk7cmV0dXJuIE5uPT09Ym4mJmJuPT09ZXI/WG49RnI9c3I6KFhuPUNlKCguNDM2MDc0NypObisuMzg1MDY0OSpibisuMTQzMDgwNCplcikvTyksRnI9Q2UoKC4wMTM5MzIyKk5uKy4wOTcxMDQ1KmJuKy43MTQxNzMzKmVyKS8uODI1MjEpKSxuZXcgeWUo''@;'; put 'put ''MTE2KnNyLTE2LDUwMCooWG4tc3IpLDIwMCooc3ItRnIpLGxuLm9wYWNpdHkpfWZ1bmN0aW9uIEYobG4sTm4sYm4sZXIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9UKGxuKTpuZXcgeWUobG4sTm4sYm4sbnVsbD09ZXI/MTplcil9ZnVuY3Rpb24geWUobG4sTm4sYm4sZXIpe3RoaXMu''@;'; put 'put ''bD0rbG4sdGhpcy5hPStObix0aGlzLmI9K2JuLHRoaXMub3BhY2l0eT0rZXJ9ZnVuY3Rpb24gQ2UobG4pe3JldHVybiBsbj4uMDA4ODU2NDUxNjc5MDM1NjMxP01hdGgucG93KGxuLDEvMyk6bG4vUCtuZX1mdW5jdGlvbiBEZShsbil7cmV0dXJuIGxuPng/bG4qbG4qbG46UCoobG4tbmUpfWZ1''@;'; put 'put ''bmN0aW9uIFBlKGxuKXtyZXR1cm4gMjU1Kihsbjw9LjAwMzEzMDg/MTIuOTIqbG46MS4wNTUqTWF0aC5wb3cobG4sMS8yLjQpLS4wNTUpfWZ1bmN0aW9uIFFlKGxuKXtyZXR1cm4obG4vPTI1NSk8PS4wNDA0NT9sbi8xMi45MjpNYXRoLnBvdygobG4rLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlv''@;'; put 'put ''biAkZShsbil7aWYobG4gaW5zdGFuY2VvZiBtdClyZXR1cm4gbmV3IG10KGxuLmgsbG4uYyxsbi5sLGxuLm9wYWNpdHkpO2lmKGxuIGluc3RhbmNlb2YgeWV8fChsbj1UKGxuKSksMD09PWxuLmEmJjA9PT1sbi5iKXJldHVybiBuZXcgbXQoTmFOLDA8bG4ubCYmbG4ubDwxMDA/MDpOYU4sbG4u''@;'; put 'put ''bCxsbi5vcGFjaXR5KTt2YXIgTm49TWF0aC5hdGFuMihsbi5iLGxuLmEpKk1lO3JldHVybiBuZXcgbXQoTm48MD9ObiszNjA6Tm4sTWF0aC5zcXJ0KGxuLmEqbG4uYStsbi5iKmxuLmIpLGxuLmwsbG4ub3BhY2l0eSl9ZnVuY3Rpb24gd3QobG4sTm4sYm4sZXIpe3JldHVybiAxPT09YXJndW1l''@;'; put 'put ''bnRzLmxlbmd0aD8kZShsbik6bmV3IG10KGxuLE5uLGJuLG51bGw9PWVyPzE6ZXIpfWZ1bmN0aW9uIG10KGxuLE5uLGJuLGVyKXt0aGlzLmg9K2xuLHRoaXMuYz0rTm4sdGhpcy5sPStibix0aGlzLm9wYWNpdHk9K2VyfWZ1bmN0aW9uIHZ0KGxuKXtpZihpc05hTihsbi5oKSlyZXR1cm4gbmV3''@;'; put 'put ''IHllKGxuLmwsMCwwLGxuLm9wYWNpdHkpO3ZhciBObj1sbi5oKlRlO3JldHVybiBuZXcgeWUobG4ubCxNYXRoLmNvcyhObikqbG4uYyxNYXRoLnNpbihObikqbG4uYyxsbi5vcGFjaXR5KX1mdW5jdGlvbiBBdChsbixObil7dmFyIGJuPSgwLHNlLlpQKSgobG49RihsbikpLmwsKE5uPUYoTm4p''@;'; put 'put ''KS5sKSxlcj0oMCxzZS5aUCkobG4uYSxObi5hKSxzcj0oMCxzZS5aUCkobG4uYixObi5iKSxYbj0oMCxzZS5aUCkobG4ub3BhY2l0eSxObi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oRnIpe3JldHVybiBsbi5sPWJuKEZyKSxsbi5hPWVyKEZyKSxsbi5iPXNyKEZyKSxsbi5vcGFjaXR5PVhu''@;'; put 'put ''KEZyKSxsbisiIn19ZnVuY3Rpb24gaHQobG4pe3JldHVybiBmdW5jdGlvbihObixibil7dmFyIGVyPWxuKChObj13dChObikpLmgsKGJuPXd0KGJuKSkuaCksc3I9KDAsc2UuWlApKE5uLmMsYm4uYyksWG49KDAsc2UuWlApKE5uLmwsYm4ubCksRnI9KDAsc2UuWlApKE5uLm9wYWNpdHksYm4u''@;'; put 'put ''b3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHhyKXtyZXR1cm4gTm4uaD1lcih4ciksTm4uYz1zcih4ciksTm4ubD1Ybih4ciksTm4ub3BhY2l0eT1Gcih4ciksTm4rIiJ9fX0oMCxJZS5aKSh5ZSxGLCgwLEllLmwpKG1lLklsLHticmlnaHRlcjpmdW5jdGlvbihsbil7cmV0dXJuIG5ldyB5ZSh0''@;'; put 'put ''aGlzLmwrMTgqKG51bGw9PWxuPzE6bG4pLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGxuKXtyZXR1cm4gbmV3IHllKHRoaXMubC0xOCoobnVsbD09bG4/MTpsbiksdGhpcy5hLHRoaXMuYix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgbG49''@;'; put 'put ''KHRoaXMubCsxNikvMTE2LE5uPWlzTmFOKHRoaXMuYSk/bG46bG4rdGhpcy5hLzUwMCxibj1pc05hTih0aGlzLmIpP2xuOmxuLXRoaXMuYi8yMDA7cmV0dXJuIE5uPU8qRGUoTm4pLGxuPTEqRGUobG4pLGJuPS44MjUyMSpEZShibiksbmV3IG1lLlNzKFBlKDMuMTMzODU2MSpObi0xLjYxNjg2''@;'; put 'put ''NjcqbG4tLjQ5MDYxNDYqYm4pLFBlKC0uOTc4NzY4NCpObisxLjkxNjE0MTUqbG4rLjAzMzQ1NCpibiksUGUoLjA3MTk0NTMqTm4tLjIyODk5MTQqbG4rMS40MDUyNDI3KmJuKSx0aGlzLm9wYWNpdHkpfX0pKSwoMCxJZS5aKShtdCx3dCwoMCxJZS5sKShtZS5JbCx7YnJpZ2h0ZXI6ZnVuY3Rp''@;'; put 'put ''b24obG4pe3JldHVybiBuZXcgbXQodGhpcy5oLHRoaXMuYyx0aGlzLmwrMTgqKG51bGw9PWxuPzE6bG4pLHRoaXMub3BhY2l0eSl9LGRhcmtlcjpmdW5jdGlvbihsbil7cmV0dXJuIG5ldyBtdCh0aGlzLmgsdGhpcy5jLHRoaXMubC0xOCoobnVsbD09bG4/MTpsbiksdGhpcy5vcGFjaXR5KX0s''@;'; put 'put ''cmdiOmZ1bmN0aW9uKCl7cmV0dXJuIHZ0KHRoaXMpLnJnYigpfX0pKTtjb25zdCBCdD1odChzZS53eCk7dmFyIG9uPWh0KHNlLlpQKSx0dD0xLjc4Mjc3LGV0PS0uMjkyMjcsbHQ9LS45MDY0OSxMdD0xLjk3Mjk0LEN0PUx0Kmx0LGZ0PUx0KnR0LEh0PXR0KmV0LSAtLjE0ODYxKmx0O2Z1bmN0''@;'; put 'put ''aW9uIEdlKGxuKXtpZihsbiBpbnN0YW5jZW9mIHl0KXJldHVybiBuZXcgeXQobG4uaCxsbi5zLGxuLmwsbG4ub3BhY2l0eSk7bG4gaW5zdGFuY2VvZiBtZS5Tc3x8KGxuPSgwLG1lLlNVKShsbikpO3ZhciBibj1sbi5nLzI1NSxlcj1sbi5iLzI1NSxzcj0oSHQqZXIrQ3QqKGxuLnIvMjU1KS1m''@;'; put 'put ''dCpibikvKEh0K0N0LWZ0KSxYbj1lci1zcixGcj0oTHQqKGJuLXNyKS1ldCpYbikvbHQseHI9TWF0aC5zcXJ0KEZyKkZyK1huKlhuKS8oTHQqc3IqKDEtc3IpKSxxdD14cj9NYXRoLmF0YW4yKEZyLFhuKSpNZS0xMjA6TmFOO3JldHVybiBuZXcgeXQocXQ8MD9xdCszNjA6cXQseHIsc3IsbG4u''@;'; put 'put ''b3BhY2l0eSl9ZnVuY3Rpb24gVWUobG4sTm4sYm4sZXIpe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9HZShsbik6bmV3IHl0KGxuLE5uLGJuLG51bGw9PWVyPzE6ZXIpfWZ1bmN0aW9uIHl0KGxuLE5uLGJuLGVyKXt0aGlzLmg9K2xuLHRoaXMucz0rTm4sdGhpcy5sPStibix0aGlzLm9w''@;'; put 'put ''YWNpdHk9K2VyfWZ1bmN0aW9uIGp0KGxuKXtyZXR1cm4gZnVuY3Rpb24gTm4oYm4pe2Z1bmN0aW9uIGVyKHNyLFhuKXt2YXIgRnI9bG4oKHNyPVVlKHNyKSkuaCwoWG49VWUoWG4pKS5oKSx4cj0oMCxzZS5aUCkoc3IucyxYbi5zKSxxdD0oMCxzZS5aUCkoc3IubCxYbi5sKSxwcj0oMCxzZS5a''@;'; put 'put ''UCkoc3Iub3BhY2l0eSxYbi5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24obnIpe3JldHVybiBzci5oPUZyKG5yKSxzci5zPXhyKG5yKSxzci5sPXF0KE1hdGgucG93KG5yLGJuKSksc3Iub3BhY2l0eT1wcihuciksc3IrIiJ9fXJldHVybiBibj0rYm4sZXIuZ2FtbWE9Tm4sZXJ9KDEpfSgwLEll''@;'; put 'put ''LlopKHl0LFVlLCgwLEllLmwpKG1lLklsLHticmlnaHRlcjpmdW5jdGlvbihsbil7cmV0dXJuIGxuPW51bGw9PWxuP21lLko1Ok1hdGgucG93KG1lLko1LGxuKSxuZXcgeXQodGhpcy5oLHRoaXMucyx0aGlzLmwqbG4sdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKGxuKXtyZXR1cm4g''@;'; put 'put ''bG49bnVsbD09bG4/bWUueFY6TWF0aC5wb3cobWUueFYsbG4pLG5ldyB5dCh0aGlzLmgsdGhpcy5zLHRoaXMubCpsbix0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgbG49aXNOYU4odGhpcy5oKT8wOih0aGlzLmgrMTIwKSpUZSxObj0rdGhpcy5sLGJuPWlzTmFOKHRoaXMucyk/''@;'; put 'put ''MDp0aGlzLnMqTm4qKDEtTm4pLGVyPU1hdGguY29zKGxuKSxzcj1NYXRoLnNpbihsbik7cmV0dXJuIG5ldyBtZS5TcygyNTUqKE5uK2JuKigtLjE0ODYxKmVyK3R0KnNyKSksMjU1KihObitibiooZXQqZXIrbHQqc3IpKSwyNTUqKE5uK2JuKihMdCplcikpLHRoaXMub3BhY2l0eSl9fSkpO2Nv''@;'; put 'put ''bnN0IEp0PWp0KHNlLnd4KTt2YXIgZ249anQoc2UuWlApO2Z1bmN0aW9uIGRuKGxuLE5uKXtmb3IodmFyIGJuPTAsZXI9Tm4ubGVuZ3RoLTEsc3I9Tm5bMF0sWG49bmV3IEFycmF5KGVyPDA/MDplcik7Ym48ZXI7KVhuW2JuXT1sbihzcixzcj1OblsrK2JuXSk7cmV0dXJuIGZ1bmN0aW9uKEZy''@;'; put 'put ''KXt2YXIgeHI9TWF0aC5tYXgoMCxNYXRoLm1pbihlci0xLE1hdGguZmxvb3IoRnIqPWVyKSkpO3JldHVybiBYblt4cl0oRnIteHIpfX1mdW5jdGlvbiB5bihsbixObil7Zm9yKHZhciBibj1uZXcgQXJyYXkoTm4pLGVyPTA7ZXI8Tm47Kytlcilibltlcl09bG4oZXIvKE5uLTEpKTtyZXR1cm4g''@;'; put 'put ''Ym59fSw2NzM4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShCLEUpe3JldHVybiBCPStCLEU9K0UsZnVuY3Rpb24oRWUpe3JldHVybiBCKigxLUVlKStFKkVlfX1MLmQoSmUse1o6KCk9Pm1lfSl9LDg2ODExOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1lE''@;'; put 'put ''OigpPT5yZSxaUDooKT0+VSxoRDooKT0+an0pO3ZhciBtZT1MKDUyNzg2KSxCPUwoMTY3MTIpLEU9TCg2ODUyMyksRWU9TCgzNTE0Nyk7Y29uc3QgVT1mdW5jdGlvbiBhZShZKXt2YXIgVz0oMCxFZS55aSkoWSk7ZnVuY3Rpb24gTih0ZSxLKXt2YXIgSj1XKCh0ZT0oMCxtZS5COCkodGUpKS5y''@;'; put 'put ''LChLPSgwLG1lLkI4KShLKSkuciksc2U9Vyh0ZS5nLEsuZyksb2U9Vyh0ZS5iLEsuYiksY2U9KDAsRWUuWlApKHRlLm9wYWNpdHksSy5vcGFjaXR5KTtyZXR1cm4gZnVuY3Rpb24oZGUpe3JldHVybiB0ZS5yPUooZGUpLHRlLmc9c2UoZGUpLHRlLmI9b2UoZGUpLHRlLm9wYWNpdHk9Y2UoZGUp''@;'; put 'put ''LHRlKyIifX1yZXR1cm4gTi5nYW1tYT1hZSxOfSgxKTtmdW5jdGlvbiBRKGFlKXtyZXR1cm4gZnVuY3Rpb24oWSl7dmFyIEosc2UsVz1ZLmxlbmd0aCxOPW5ldyBBcnJheShXKSx0ZT1uZXcgQXJyYXkoVyksSz1uZXcgQXJyYXkoVyk7Zm9yKEo9MDtKPFc7KytKKXNlPSgwLG1lLkI4KShZW0pd''@;'; put 'put ''KSxOW0pdPXNlLnJ8fDAsdGVbSl09c2UuZ3x8MCxLW0pdPXNlLmJ8fDA7cmV0dXJuIE49YWUoTiksdGU9YWUodGUpLEs9YWUoSyksc2Uub3BhY2l0eT0xLGZ1bmN0aW9uKG9lKXtyZXR1cm4gc2Uucj1OKG9lKSxzZS5nPXRlKG9lKSxzZS5iPUsob2UpLHNlKyIifX19dmFyIGo9UShCLlopLHJl''@;'; put 'put ''PVEoRS5aKX0sMjMwOTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+UX0pO3ZhciBtZT1MKDY3MzgpLEI9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLEU9bmV3IFJlZ0V4cChCLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIFEoaixyZSl7''@;'; put 'put ''dmFyIFksVyxOLGFlPUIubGFzdEluZGV4PUUubGFzdEluZGV4PTAsdGU9LTEsSz1bXSxKPVtdO2ZvcihqKz0iIixyZSs9IiI7KFk9Qi5leGVjKGopKSYmKFc9RS5leGVjKHJlKSk7KShOPVcuaW5kZXgpPmFlJiYoTj1yZS5zbGljZShhZSxOKSxLW3RlXT9LW3RlXSs9TjpLWysrdGVdPU4pLChZ''@;'; put 'put ''PVlbMF0pPT09KFc9V1swXSk/S1t0ZV0/S1t0ZV0rPVc6S1srK3RlXT1XOihLWysrdGVdPW51bGwsSi5wdXNoKHtpOnRlLHg6KDAsbWUuWikoWSxXKX0pKSxhZT1FLmxhc3RJbmRleDtyZXR1cm4gYWU8cmUubGVuZ3RoJiYoTj1yZS5zbGljZShhZSksS1t0ZV0/S1t0ZV0rPU46S1srK3RlXT1O''@;'; put 'put ''KSxLLmxlbmd0aDwyP0pbMF0/ZnVuY3Rpb24gVShqKXtyZXR1cm4gZnVuY3Rpb24ocmUpe3JldHVybiBqKHJlKSsiIn19KEpbMF0ueCk6ZnVuY3Rpb24gRWUoail7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGp9fShyZSk6KHJlPUoubGVuZ3RoLGZ1bmN0aW9uKHNlKXtmb3IodmFyIGNlLG9l''@;'; put 'put ''PTA7b2U8cmU7KytvZSlLWyhjZT1KW29lXSkuaV09Y2UueChzZSk7cmV0dXJuIEsuam9pbigiIil9KX19LDc1MzQ5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1k6KCk9Pk4sdzooKT0+dGV9KTt2YXIgVSxRLGoscmUsbWU9TCg2NzM4KSxCPTE4MC9NYXRoLlBJLEU9e3RyYW5z''@;'; put 'put ''bGF0ZVg6MCx0cmFuc2xhdGVZOjAscm90YXRlOjAsc2tld1g6MCxzY2FsZVg6MSxzY2FsZVk6MX07ZnVuY3Rpb24gRWUoSyxKLHNlLG9lLGNlLGRlKXt2YXIgdmUsQWUsa2U7cmV0dXJuKHZlPU1hdGguc3FydChLKksrSipKKSkmJihLLz12ZSxKLz12ZSksKGtlPUsqc2UrSipvZSkmJihzZS09''@;'; put 'put ''SyprZSxvZS09SiprZSksKEFlPU1hdGguc3FydChzZSpzZStvZSpvZSkpJiYoc2UvPUFlLG9lLz1BZSxrZS89QWUpLEsqb2U8SipzZSYmKEs9LUssSj0tSixrZT0ta2UsdmU9LXZlKSx7dHJhbnNsYXRlWDpjZSx0cmFuc2xhdGVZOmRlLHJvdGF0ZTpNYXRoLmF0YW4yKEosSykqQixza2V3WDpN''@;'; put 'put ''YXRoLmF0YW4oa2UpKkIsc2NhbGVYOnZlLHNjYWxlWTpBZX19ZnVuY3Rpb24gVyhLLEosc2Usb2Upe2Z1bmN0aW9uIGNlKFNlKXtyZXR1cm4gU2UubGVuZ3RoP1NlLnBvcCgpKyIgIjoiIn1yZXR1cm4gZnVuY3Rpb24oU2UsSWUpe3ZhciBUZT1bXSxNZT1bXTtyZXR1cm4gU2U9SyhTZSksSWU9''@;'; put 'put ''SyhJZSksZnVuY3Rpb24gZGUoU2UsSWUsVGUsTWUsaGUsTyl7aWYoU2UhPT1UZXx8SWUhPT1NZSl7dmFyIHo9aGUucHVzaCgidHJhbnNsYXRlKCIsbnVsbCxKLG51bGwsc2UpO08ucHVzaCh7aTp6LTQseDooMCxtZS5aKShTZSxUZSl9LHtpOnotMix4OigwLG1lLlopKEllLE1lKX0pfWVsc2Uo''@;'; put 'put ''VGV8fE1lKSYmaGUucHVzaCgidHJhbnNsYXRlKCIrVGUrSitNZStzZSl9KFNlLnRyYW5zbGF0ZVgsU2UudHJhbnNsYXRlWSxJZS50cmFuc2xhdGVYLEllLnRyYW5zbGF0ZVksVGUsTWUpLGZ1bmN0aW9uIHZlKFNlLEllLFRlLE1lKXtTZSE9PUllPyhTZS1JZT4xODA/SWUrPTM2MDpJZS1TZT4x''@;'; put 'put ''ODAmJihTZSs9MzYwKSxNZS5wdXNoKHtpOlRlLnB1c2goY2UoVGUpKyJyb3RhdGUoIixudWxsLG9lKS0yLHg6KDAsbWUuWikoU2UsSWUpfSkpOkllJiZUZS5wdXNoKGNlKFRlKSsicm90YXRlKCIrSWUrb2UpfShTZS5yb3RhdGUsSWUucm90YXRlLFRlLE1lKSxmdW5jdGlvbiBBZShTZSxJZSxU''@;'; put 'put ''ZSxNZSl7U2UhPT1JZT9NZS5wdXNoKHtpOlRlLnB1c2goY2UoVGUpKyJza2V3WCgiLG51bGwsb2UpLTIseDooMCxtZS5aKShTZSxJZSl9KTpJZSYmVGUucHVzaChjZShUZSkrInNrZXdYKCIrSWUrb2UpfShTZS5za2V3WCxJZS5za2V3WCxUZSxNZSksZnVuY3Rpb24ga2UoU2UsSWUsVGUsTWUs''@;'; put 'put ''aGUsTyl7aWYoU2UhPT1UZXx8SWUhPT1NZSl7dmFyIHo9aGUucHVzaChjZShoZSkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO08ucHVzaCh7aTp6LTQseDooMCxtZS5aKShTZSxUZSl9LHtpOnotMix4OigwLG1lLlopKEllLE1lKX0pfWVsc2UoMSE9PVRlfHwxIT09TWUpJiZoZS5wdXNo''@;'; put 'put ''KGNlKGhlKSsic2NhbGUoIitUZSsiLCIrTWUrIikiKX0oU2Uuc2NhbGVYLFNlLnNjYWxlWSxJZS5zY2FsZVgsSWUuc2NhbGVZLFRlLE1lKSxTZT1JZT1udWxsLGZ1bmN0aW9uKGhlKXtmb3IodmFyIGVlLE89LTEsej1NZS5sZW5ndGg7KytPPHo7KVRlWyhlZT1NZVtPXSkuaV09ZWUueChoZSk7''@;'; put 'put ''cmV0dXJuIFRlLmpvaW4oIiIpfX19dmFyIE49VyhmdW5jdGlvbiBhZShLKXtyZXR1cm4ibm9uZSI9PT1LP0U6KFV8fChVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLFE9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LGo9ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLFUuc3R5bGUudHJhbnNm''@;'; put 'put ''b3JtPUssSz1qLmdldENvbXB1dGVkU3R5bGUoUS5hcHBlbmRDaGlsZChVKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxRLnJlbW92ZUNoaWxkKFUpLEVlKCsoSz1LLnNsaWNlKDcsLTEpLnNwbGl0KCIsIikpWzBdLCtLWzFdLCtLWzJdLCtLWzNdLCtLWzRdLCtLWzVdKSl9''@;'; put 'put ''LCJweCwgIiwicHgpIiwiZGVnKSIpLHRlPVcoZnVuY3Rpb24gWShLKXtyZXR1cm4gbnVsbCE9SyYmKHJlfHwocmU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSkscmUuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLEspLEs9cmUudHJh''@;'; put 'put ''bnNmb3JtLmJhc2VWYWwuY29uc29saWRhdGUoKSk/RWUoKEs9Sy5tYXRyaXgpLmEsSy5iLEsuYyxLLmQsSy5lLEsuZik6RX0sIiwgIiwiKSIsIikiKX0sNzYyNTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+cmV9KTt2YXIgbWU9TWF0aC5TUVJUMjtmdW5jdGlvbiBV''@;'; put 'put ''KGFlKXtyZXR1cm4oKGFlPU1hdGguZXhwKGFlKSkrMS9hZSkvMn1mdW5jdGlvbiByZShhZSxZKXt2YXIgdmUsQWUsVz1hZVswXSxOPWFlWzFdLHRlPWFlWzJdLHNlPVlbMl0sb2U9WVswXS1XLGNlPVlbMV0tTixkZT1vZSpvZStjZSpjZTtpZihkZTwxZS0xMilBZT1NYXRoLmxvZyhzZS90ZSkv''@;'; put 'put ''bWUsdmU9ZnVuY3Rpb24oaGUpe3JldHVybltXK2hlKm9lLE4raGUqY2UsdGUqTWF0aC5leHAobWUqaGUqQWUpXX07ZWxzZXt2YXIga2U9TWF0aC5zcXJ0KGRlKSxTZT0oc2Uqc2UtdGUqdGUrNCpkZSkvKDIqdGUqMiprZSksSWU9KHNlKnNlLXRlKnRlLTQqZGUpLygyKnNlKjIqa2UpLFRlPU1h''@;'; put 'put ''dGgubG9nKE1hdGguc3FydChTZSpTZSsxKS1TZSksTWU9TWF0aC5sb2coTWF0aC5zcXJ0KEllKkllKzEpLUllKTtBZT0oTWUtVGUpL21lLHZlPWZ1bmN0aW9uKGhlKXt2YXIgTz1oZSpBZSx6PVUoVGUpLGVlPXRlLygyKmtlKSooeipmdW5jdGlvbiBqKGFlKXtyZXR1cm4oKGFlPU1hdGguZXhw''@;'; put 'put ''KDIqYWUpKS0xKS8oYWUrMSl9KG1lKk8rVGUpLWZ1bmN0aW9uIFEoYWUpe3JldHVybigoYWU9TWF0aC5leHAoYWUpKS0xL2FlKS8yfShUZSkpO3JldHVybltXK2VlKm9lLE4rZWUqY2UsdGUqei9VKG1lKk8rVGUpXX19cmV0dXJuIHZlLmR1cmF0aW9uPTFlMypBZSx2ZX19LDM4MTg0OihYZSxK''@;'; put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLnIoSmUpLEwuZChKZSx7cGF0aDooKT0+an0pO3ZhciBtZT1NYXRoLlBJLEI9MiptZSxFPTFlLTYsRWU9Qi1FO2Z1bmN0aW9uIFUoKXt0aGlzLl94MD10aGlzLl95MD10aGlzLl94MT10aGlzLl95MT1udWxsLHRoaXMuXz0iIn1mdW5jdGlvbiBRKCl7cmV0''@;'; put 'put ''dXJuIG5ldyBVfVUucHJvdG90eXBlPVEucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpVLG1vdmVUbzpmdW5jdGlvbihyZSxhZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPStyZSkrIiwiKyh0aGlzLl95MD10aGlzLl95MT0rYWUpfSxjbG9zZVBhdGg6ZnVuY3Rpb24oKXtudWxsIT09''@;'; put 'put ''dGhpcy5feDEmJih0aGlzLl94MT10aGlzLl94MCx0aGlzLl95MT10aGlzLl95MCx0aGlzLl8rPSJaIil9LGxpbmVUbzpmdW5jdGlvbihyZSxhZSl7dGhpcy5fKz0iTCIrKHRoaXMuX3gxPStyZSkrIiwiKyh0aGlzLl95MT0rYWUpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHJlLGFlLFks''@;'; put 'put ''Vyl7dGhpcy5fKz0iUSIrICtyZSsiLCIrICthZSsiLCIrKHRoaXMuX3gxPStZKSsiLCIrKHRoaXMuX3kxPStXKX0sYmV6aWVyQ3VydmVUbzpmdW5jdGlvbihyZSxhZSxZLFcsTix0ZSl7dGhpcy5fKz0iQyIrICtyZSsiLCIrICthZSsiLCIrICtZKyIsIisgK1crIiwiKyh0aGlzLl94MT0rTikr''@;'; put 'put ''IiwiKyh0aGlzLl95MT0rdGUpfSxhcmNUbzpmdW5jdGlvbihyZSxhZSxZLFcsTil7dmFyIHRlPXRoaXMuX3gxLEs9dGhpcy5feTEsSj0oWT0rWSktKHJlPStyZSksc2U9KFc9K1cpLShhZT0rYWUpLG9lPXRlLXJlLGNlPUstYWUsZGU9b2Uqb2UrY2UqY2U7aWYoKE49K04pPDApdGhyb3cgbmV3''@;'; put 'put ''IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrTik7aWYobnVsbD09PXRoaXMuX3gxKXRoaXMuXys9Ik0iKyh0aGlzLl94MT1yZSkrIiwiKyh0aGlzLl95MT1hZSk7ZWxzZSBpZihkZT5FKWlmKE1hdGguYWJzKGNlKkotc2Uqb2UpPkUmJk4pe3ZhciB2ZT1ZLXRlLEFlPVctSyxrZT1KKkorc2Uq''@;'; put 'put ''c2UsU2U9dmUqdmUrQWUqQWUsSWU9TWF0aC5zcXJ0KGtlKSxUZT1NYXRoLnNxcnQoZGUpLE1lPU4qTWF0aC50YW4oKG1lLU1hdGguYWNvcygoa2UrZGUtU2UpLygyKkllKlRlKSkpLzIpLGhlPU1lL1RlLE89TWUvSWU7TWF0aC5hYnMoaGUtMSk+RSYmKHRoaXMuXys9IkwiKyhyZStoZSpvZSkr''@;'; put 'put ''IiwiKyhhZStoZSpjZSkpLHRoaXMuXys9IkEiK04rIiwiK04rIiwwLDAsIisgKyhjZSp2ZT5vZSpBZSkrIiwiKyh0aGlzLl94MT1yZStPKkopKyIsIisodGhpcy5feTE9YWUrTypzZSl9ZWxzZSB0aGlzLl8rPSJMIisodGhpcy5feDE9cmUpKyIsIisodGhpcy5feTE9YWUpfSxhcmM6ZnVuY3Rp''@;'; put 'put ''b24ocmUsYWUsWSxXLE4sdGUpe3JlPStyZSxhZT0rYWUsdGU9ISF0ZTt2YXIgSz0oWT0rWSkqTWF0aC5jb3MoVyksSj1ZKk1hdGguc2luKFcpLHNlPXJlK0ssb2U9YWUrSixjZT0xXnRlLGRlPXRlP1ctTjpOLVc7aWYoWTwwKXRocm93IG5ldyBFcnJvcigibmVnYXRpdmUgcmFkaXVzOiAiK1kp''@;'; put 'put ''O251bGw9PT10aGlzLl94MT90aGlzLl8rPSJNIitzZSsiLCIrb2U6KE1hdGguYWJzKHRoaXMuX3gxLXNlKT5FfHxNYXRoLmFicyh0aGlzLl95MS1vZSk+RSkmJih0aGlzLl8rPSJMIitzZSsiLCIrb2UpLFkmJihkZTwwJiYoZGU9ZGUlQitCKSxkZT5FZT90aGlzLl8rPSJBIitZKyIsIitZKyIs''@;'; put 'put ''MCwxLCIrY2UrIiwiKyhyZS1LKSsiLCIrKGFlLUopKyJBIitZKyIsIitZKyIsMCwxLCIrY2UrIiwiKyh0aGlzLl94MT1zZSkrIiwiKyh0aGlzLl95MT1vZSk6ZGU+RSYmKHRoaXMuXys9IkEiK1krIiwiK1krIiwwLCIrICsoZGU+PW1lKSsiLCIrY2UrIiwiKyh0aGlzLl94MT1yZStZKk1hdGgu''@;'; put 'put ''Y29zKE4pKSsiLCIrKHRoaXMuX3kxPWFlK1kqTWF0aC5zaW4oTikpKSl9LHJlY3Q6ZnVuY3Rpb24ocmUsYWUsWSxXKXt0aGlzLl8rPSJNIisodGhpcy5feDA9dGhpcy5feDE9K3JlKSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPSthZSkrImgiKyArWSsidiIrICtXKyJoIistWSsiWiJ9LHRvU3Ry''@;'; put 'put ''aW5nOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX319O2NvbnN0IGo9UX0sNzUwMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5VfSk7dmFyIG1lPUwoMzYxNzUpLEI9TCg1MzUxNyk7ZnVuY3Rpb24gRShRKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgaj10aGlzLm93bmVy''@;'; put 'put ''RG9jdW1lbnQscmU9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIHJlPT09Qi5QJiZqLmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1CLlA/ai5jcmVhdGVFbGVtZW50KFEpOmouY3JlYXRlRWxlbWVudE5TKHJlLFEpfX1mdW5jdGlvbiBFZShRKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhRLnNwYWNlLFEubG9jYWwpfX1mdW5jdGlvbiBVKFEpe3ZhciBqPSgwLG1lLlopKFEpO3JldHVybihqLmxvY2FsP0VlOkUpKGopfX0sNjk0MTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wucihKZSksTC5kKEplLHtjbGll''@;'; put 'put ''bnRQb2ludDooKT0+Vy5aLGNyZWF0ZTooKT0+RSxjcmVhdG9yOigpPT5tZS5aLGN1c3RvbUV2ZW50OigpPT5BZS5fSCxldmVudDooKT0+QWUuQixsb2NhbDooKT0+VSxtYXRjaGVyOigpPT5qLlosbW91c2U6KCk9PnJlLlosbmFtZXNwYWNlOigpPT5hZS5aLG5hbWVzcGFjZXM6KCk9PlkuWixz''@;'; put 'put ''ZWxlY3Q6KCk9PkIuWixzZWxlY3RBbGw6KCk9PnRlLHNlbGVjdGlvbjooKT0+Ti5aUCxzZWxlY3RvcjooKT0+Sy5aLHNlbGVjdG9yQWxsOigpPT5KLlosc3R5bGU6KCk9PnNlLlMsdG91Y2g6KCk9Pm9lLlosdG91Y2hlczooKT0+ZGUsd2luZG93OigpPT52ZS5afSk7dmFyIG1lPUwoNzUwMCks''@;'; put 'put ''Qj1MKDUyMDE2KTtmdW5jdGlvbiBFKGtlKXtyZXR1cm4oMCxCLlopKCgwLG1lLlopKGtlKS5jYWxsKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkpfXZhciBFZT0wO2Z1bmN0aW9uIFUoKXtyZXR1cm4gbmV3IFF9ZnVuY3Rpb24gUSgpe3RoaXMuXz0iQCIrKCsrRWUpLnRvU3RyaW5nKDM2KX1R''@;'; put 'put ''LnByb3RvdHlwZT1VLnByb3RvdHlwZT17Y29uc3RydWN0b3I6USxnZXQ6ZnVuY3Rpb24oa2Upe2Zvcih2YXIgU2U9dGhpcy5fOyEoU2UgaW4ga2UpOylpZighKGtlPWtlLnBhcmVudE5vZGUpKXJldHVybjtyZXR1cm4ga2VbU2VdfSxzZXQ6ZnVuY3Rpb24oa2UsU2Upe3JldHVybiBrZVt0aGlz''@;'; put 'put ''Ll9dPVNlfSxyZW1vdmU6ZnVuY3Rpb24oa2Upe3JldHVybiB0aGlzLl8gaW4ga2UmJmRlbGV0ZSBrZVt0aGlzLl9dfSx0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLl99fTt2YXIgaj1MKDk3OTA1KSxyZT1MKDY2MDczKSxhZT1MKDM2MTc1KSxZPUwoNTM1MTcpLFc9TCgyNTk0MSks''@;'; put 'put ''Tj1MKDgyNzAwKTtmdW5jdGlvbiB0ZShrZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBrZT9uZXcgTi5ZMShbZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChrZSldLFtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRdKTpuZXcgTi5ZMShbbnVsbD09a2U/W106a2VdLE4uSnopfXZhciBLPUwoMjk3''@;'; put 'put ''NDIpLEo9TCgzMjAzNyksc2U9TCgyNDQ3Niksb2U9TCgzMDI1NiksY2U9TCg3NTgxOSk7ZnVuY3Rpb24gZGUoa2UsU2Upe251bGw9PVNlJiYoU2U9KDAsY2UuWikoKS50b3VjaGVzKTtmb3IodmFyIEllPTAsVGU9U2U/U2UubGVuZ3RoOjAsTWU9bmV3IEFycmF5KFRlKTtJZTxUZTsrK0llKU1l''@;'; put 'put ''W0llXT0oMCxXLlopKGtlLFNlW0llXSk7cmV0dXJuIE1lfXZhciB2ZT1MKDI0NDIpLEFlPUwoNjE3NDYpfSw5NzkwNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbWUoQil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWF0Y2hlcyhCKX19TC5kKEplLHtaOigpPT5t''@;'; put 'put ''ZX0pfSw2NjA3MzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5FfSk7dmFyIG1lPUwoNzU4MTkpLEI9TCgyNTk0MSk7ZnVuY3Rpb24gRShFZSl7dmFyIFU9KDAsbWUuWikoKTtyZXR1cm4gVS5jaGFuZ2VkVG91Y2hlcyYmKFU9VS5jaGFuZ2VkVG91Y2hlc1swXSksKDAs''@;'; put 'put ''Qi5aKShFZSxVKX19LDM2MTc1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1o6KCk9PkJ9KTt2YXIgbWU9TCg1MzUxNyk7ZnVuY3Rpb24gQihFKXt2YXIgRWU9RSs9IiIsVT1FZS5pbmRleE9mKCI6Iik7cmV0dXJuIFU+PTAmJiJ4bWxucyIhPT0oRWU9RS5zbGljZSgwLFUpKSYm''@;'; put 'put ''KEU9RS5zbGljZShVKzEpKSxtZS5aLmhhc093blByb3BlcnR5KEVlKT97c3BhY2U6bWUuWltFZV0sbG9jYWw6RX06RX19LDUzNTE3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1A6KCk9Pm1lLFo6KCk9PkJ9KTt2YXIgbWU9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi''@;'; put 'put ''O2NvbnN0IEI9e3N2ZzoiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLHhodG1sOm1lLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1s''@;'; put 'put ''bnMvIn19LDI1OTQxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBtZShCLEUpe3ZhciBFZT1CLm93bmVyU1ZHRWxlbWVudHx8QjtpZihFZS5jcmVhdGVTVkdQb2ludCl7dmFyIFU9RWUuY3JlYXRlU1ZHUG9pbnQoKTtyZXR1cm4gVS54PUUuY2xpZW50WCxVLnk9RS5jbGllbnRZ''@;'; put 'put ''LFsoVT1VLm1hdHJpeFRyYW5zZm9ybShCLmdldFNjcmVlbkNUTSgpLmludmVyc2UoKSkpLngsVS55XX12YXIgUT1CLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybltFLmNsaWVudFgtUS5sZWZ0LUIuY2xpZW50TGVmdCxFLmNsaWVudFktUS50b3AtQi5jbGllbnRUb3BdfUwuZChKZSx7''@;'; put 'put ''WjooKT0+bWV9KX0sNTIwMTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+Qn0pO3ZhciBtZT1MKDgyNzAwKTtmdW5jdGlvbiBCKEUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgRT9uZXcgbWUuWTEoW1tkb2N1bWVudC5xdWVyeVNlbGVjdG9yKEUpXV0sW2RvY3VtZW50''@;'; put 'put ''LmRvY3VtZW50RWxlbWVudF0pOm5ldyBtZS5ZMShbW0VdXSxtZS5Keil9fSw4MjcwMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtZMTooKT0+bnIsWlA6KCk9PnFuLEp6OigpPT5wcn0pO3ZhciBtZT1MKDI5NzQyKSxFPUwoMzIwMzcpLFU9TCg5NzkwNSk7ZnVuY3Rpb24gaihX''@;'; put 'put ''dCl7cmV0dXJuIG5ldyBBcnJheShXdC5sZW5ndGgpfWZ1bmN0aW9uIGFlKFd0LHBuKXt0aGlzLm93bmVyRG9jdW1lbnQ9V3Qub3duZXJEb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSST1XdC5uYW1lc3BhY2VVUkksdGhpcy5fbmV4dD1udWxsLHRoaXMuX3BhcmVudD1XdCx0aGlzLl9fZGF0YV9f''@;'; put 'put ''PXBufWZ1bmN0aW9uIE4oV3QscG4sS24sTnQsc24sVW4pe2Zvcih2YXIgdG4sd249MCx6bj1wbi5sZW5ndGgsVHI9VW4ubGVuZ3RoO3duPFRyOysrd24pKHRuPXBuW3duXSk/KHRuLl9fZGF0YV9fPVVuW3duXSxOdFt3bl09dG4pOktuW3duXT1uZXcgYWUoV3QsVW5bd25dKTtmb3IoO3duPHpu''@;'; put 'put ''Oysrd24pKHRuPXBuW3duXSkmJihzblt3bl09dG4pfWZ1bmN0aW9uIHRlKFd0LHBuLEtuLE50LHNuLFVuLHduKXt2YXIgdG4sem4sdW4sVHI9e30sQm49cG4ubGVuZ3RoLGtyPVVuLmxlbmd0aCxtbj1uZXcgQXJyYXkoQm4pO2Zvcih0bj0wO3RuPEJuOysrdG4pKHpuPXBuW3RuXSkmJihtblt0''@;'; put 'put ''bl09dW49IiQiK3duLmNhbGwoem4sem4uX19kYXRhX18sdG4scG4pLHVuIGluIFRyP3NuW3RuXT16bjpUclt1bl09em4pO2Zvcih0bj0wO3RuPGtyOysrdG4pKHpuPVRyW3VuPSIkIit3bi5jYWxsKFd0LFVuW3RuXSx0bixVbildKT8oTnRbdG5dPXpuLHpuLl9fZGF0YV9fPVVuW3RuXSxUclt1''@;'; put 'put ''bl09bnVsbCk6S25bdG5dPW5ldyBhZShXdCxVblt0bl0pO2Zvcih0bj0wO3RuPEJuOysrdG4pKHpuPXBuW3RuXSkmJlRyW21uW3RuXV09PT16biYmKHNuW3RuXT16bil9ZnVuY3Rpb24gdmUoV3QscG4pe3JldHVybiBXdDxwbj8tMTpXdD5wbj8xOld0Pj1wbj8wOk5hTn1hZS5wcm90b3R5cGU9''@;'; put 'put ''e2NvbnN0cnVjdG9yOmFlLGFwcGVuZENoaWxkOmZ1bmN0aW9uKFd0KXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShXdCx0aGlzLl9uZXh0KX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKFd0LHBuKXtyZXR1cm4gdGhpcy5fcGFyZW50Lmluc2VydEJlZm9yZShXdCxwbil9LHF1ZXJ5''@;'; put 'put ''U2VsZWN0b3I6ZnVuY3Rpb24oV3Qpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvcihXdCl9LHF1ZXJ5U2VsZWN0b3JBbGw6ZnVuY3Rpb24oV3Qpe3JldHVybiB0aGlzLl9wYXJlbnQucXVlcnlTZWxlY3RvckFsbChXdCl9fTt2YXIgaGU9TCgzNjE3NSk7ZnVuY3Rpb24gTyhXdCl7''@;'; put 'put ''cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoV3QpfX1mdW5jdGlvbiB6KFd0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKFd0LnNwYWNlLFd0LmxvY2FsKX19ZnVuY3Rpb24gZWUoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0''@;'; put 'put ''QXR0cmlidXRlKFd0LHBuKX19ZnVuY3Rpb24gbmUoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3RoaXMuc2V0QXR0cmlidXRlTlMoV3Quc3BhY2UsV3QubG9jYWwscG4pfX1mdW5jdGlvbiB4KFd0LHBuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgS249cG4uYXBwbHkodGhpcyxhcmd1bWVudHMp''@;'; put 'put ''O251bGw9PUtuP3RoaXMucmVtb3ZlQXR0cmlidXRlKFd0KTp0aGlzLnNldEF0dHJpYnV0ZShXdCxLbil9fWZ1bmN0aW9uIFAoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3ZhciBLbj1wbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09S24/dGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhXdC5z''@;'; put 'put ''cGFjZSxXdC5sb2NhbCk6dGhpcy5zZXRBdHRyaWJ1dGVOUyhXdC5zcGFjZSxXdC5sb2NhbCxLbil9fXZhciBUPUwoMjQ0NzYpO2Z1bmN0aW9uIFMoV3Qpe3JldHVybiBmdW5jdGlvbigpe2RlbGV0ZSB0aGlzW1d0XX19ZnVuY3Rpb24gRihXdCxwbil7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpc1tX''@;'; put 'put ''dF09cG59fWZ1bmN0aW9uIHllKFd0LHBuKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgS249cG4uYXBwbHkodGhpcyxhcmd1bWVudHMpO251bGw9PUtuP2RlbGV0ZSB0aGlzW1d0XTp0aGlzW1d0XT1Lbn19ZnVuY3Rpb24gRGUoV3Qpe3JldHVybiBXdC50cmltKCkuc3BsaXQoL158XHMrLyl9ZnVu''@;'; put 'put ''Y3Rpb24gUGUoV3Qpe3JldHVybiBXdC5jbGFzc0xpc3R8fG5ldyBRZShXdCl9ZnVuY3Rpb24gUWUoV3Qpe3RoaXMuX25vZGU9V3QsdGhpcy5fbmFtZXM9RGUoV3QuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9ZnVuY3Rpb24gJGUoV3QscG4pe2Zvcih2YXIgS249UGUoV3QpLE50PS0xLHNu''@;'; put 'put ''PXBuLmxlbmd0aDsrK050PHNuOylLbi5hZGQocG5bTnRdKX1mdW5jdGlvbiBndChXdCxwbil7Zm9yKHZhciBLbj1QZShXdCksTnQ9LTEsc249cG4ubGVuZ3RoOysrTnQ8c247KUtuLnJlbW92ZShwbltOdF0pfWZ1bmN0aW9uIHd0KFd0KXtyZXR1cm4gZnVuY3Rpb24oKXskZSh0aGlzLFd0KX19''@;'; put 'put ''ZnVuY3Rpb24gbXQoV3Qpe3JldHVybiBmdW5jdGlvbigpe2d0KHRoaXMsV3QpfX1mdW5jdGlvbiB2dChXdCxwbil7cmV0dXJuIGZ1bmN0aW9uKCl7KHBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKT8kZTpndCkodGhpcyxXdCl9fWZ1bmN0aW9uIGh0KCl7dGhpcy50ZXh0Q29udGVudD0iIn1mdW5j''@;'; put 'put ''dGlvbiBCdChXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD1XdH19ZnVuY3Rpb24gb24oV3Qpe3JldHVybiBmdW5jdGlvbigpe3ZhciBwbj1XdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1wbj8iIjpwbn19ZnVuY3Rpb24gdHQoKXt0''@;'; put 'put ''aGlzLmlubmVySFRNTD0iIn1mdW5jdGlvbiBldChXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5pbm5lckhUTUw9V3R9fWZ1bmN0aW9uIGx0KFd0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcG49V3QuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PXBuPyIiOnBu''@;'; put 'put ''fX1mdW5jdGlvbiBDdCgpe3RoaXMubmV4dFNpYmxpbmcmJnRoaXMucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0aGlzKX1mdW5jdGlvbiBIdCgpe3RoaXMucHJldmlvdXNTaWJsaW5nJiZ0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRoaXMsdGhpcy5wYXJlbnROb2RlLmZpcnN0Q2hpbGQp''@;'; put 'put ''fVFlLnByb3RvdHlwZT17YWRkOmZ1bmN0aW9uKFd0KXt0aGlzLl9uYW1lcy5pbmRleE9mKFd0KTwwJiYodGhpcy5fbmFtZXMucHVzaChXdCksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0scmVtb3ZlOmZ1bmN0aW9uKFd0KXt2YXIgcG49''@;'; put 'put ''dGhpcy5fbmFtZXMuaW5kZXhPZihXdCk7cG4+PTAmJih0aGlzLl9uYW1lcy5zcGxpY2UocG4sMSksdGhpcy5fbm9kZS5zZXRBdHRyaWJ1dGUoImNsYXNzIix0aGlzLl9uYW1lcy5qb2luKCIgIikpKX0sY29udGFpbnM6ZnVuY3Rpb24oV3Qpe3JldHVybiB0aGlzLl9uYW1lcy5pbmRleE9mKFd0''@;'; put 'put ''KT49MH19O3ZhciBVZT1MKDc1MDApO2Z1bmN0aW9uIGp0KCl7cmV0dXJuIG51bGx9ZnVuY3Rpb24gZ24oKXt2YXIgV3Q9dGhpcy5wYXJlbnROb2RlO1d0JiZXdC5yZW1vdmVDaGlsZCh0aGlzKX1mdW5jdGlvbiB5bigpe3ZhciBXdD10aGlzLmNsb25lTm9kZSghMSkscG49dGhpcy5wYXJlbnRO''@;'; put 'put ''b2RlO3JldHVybiBwbj9wbi5pbnNlcnRCZWZvcmUoV3QsdGhpcy5uZXh0U2libGluZyk6V3R9ZnVuY3Rpb24gbG4oKXt2YXIgV3Q9dGhpcy5jbG9uZU5vZGUoITApLHBuPXRoaXMucGFyZW50Tm9kZTtyZXR1cm4gcG4/cG4uaW5zZXJ0QmVmb3JlKFd0LHRoaXMubmV4dFNpYmxpbmcpOld0fXZh''@;'; put 'put ''ciBlcj1MKDYxNzQ2KSxzcj1MKDI0NDIpO2Z1bmN0aW9uIFhuKFd0LHBuLEtuKXt2YXIgTnQ9KDAsc3IuWikoV3QpLHNuPU50LkN1c3RvbUV2ZW50OyJmdW5jdGlvbiI9PXR5cGVvZiBzbj9zbj1uZXcgc24ocG4sS24pOihzbj1OdC5kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKSxLbj8o''@;'; put 'put ''c24uaW5pdEV2ZW50KHBuLEtuLmJ1YmJsZXMsS24uY2FuY2VsYWJsZSksc24uZGV0YWlsPUtuLmRldGFpbCk6c24uaW5pdEV2ZW50KHBuLCExLCExKSksV3QuZGlzcGF0Y2hFdmVudChzbil9ZnVuY3Rpb24gRnIoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBYbih0aGlzLFd0LHBu''@;'; put 'put ''KX19ZnVuY3Rpb24geHIoV3QscG4pe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBYbih0aGlzLFd0LHBuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9fXZhciBwcj1bbnVsbF07ZnVuY3Rpb24gbnIoV3QscG4pe3RoaXMuX2dyb3Vwcz1XdCx0aGlzLl9wYXJlbnRzPXBufWZ1bmN0aW9uIEFuKCl7''@;'; put 'put ''cmV0dXJuIG5ldyBucihbW2RvY3VtZW50LmRvY3VtZW50RWxlbWVudF1dLHByKX1uci5wcm90b3R5cGU9QW4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpucixzZWxlY3Q6ZnVuY3Rpb24gQihXdCl7ImZ1bmN0aW9uIiE9dHlwZW9mIFd0JiYoV3Q9KDAsbWUuWikoV3QpKTtmb3IodmFyIHBuPXRo''@;'; put 'put ''aXMuX2dyb3VwcyxLbj1wbi5sZW5ndGgsTnQ9bmV3IEFycmF5KEtuKSxzbj0wO3NuPEtuOysrc24pZm9yKHZhciB6bixUcixVbj1wbltzbl0sd249VW4ubGVuZ3RoLHRuPU50W3NuXT1uZXcgQXJyYXkod24pLEJuPTA7Qm48d247KytCbikoem49VW5bQm5dKSYmKFRyPVd0LmNhbGwoem4sem4u''@;'; put 'put ''X19kYXRhX18sQm4sVW4pKSYmKCJfX2RhdGFfXyJpbiB6biYmKFRyLl9fZGF0YV9fPXpuLl9fZGF0YV9fKSx0bltCbl09VHIpO3JldHVybiBuZXcgbnIoTnQsdGhpcy5fcGFyZW50cyl9LHNlbGVjdEFsbDpmdW5jdGlvbiBFZShXdCl7ImZ1bmN0aW9uIiE9dHlwZW9mIFd0JiYoV3Q9KDAsRS5a''@;'; put 'put ''KShXdCkpO2Zvcih2YXIgcG49dGhpcy5fZ3JvdXBzLEtuPXBuLmxlbmd0aCxOdD1bXSxzbj1bXSxVbj0wO1VuPEtuOysrVW4pZm9yKHZhciB6bix3bj1wbltVbl0sdG49d24ubGVuZ3RoLFRyPTA7VHI8dG47KytUcikoem49d25bVHJdKSYmKE50LnB1c2goV3QuY2FsbCh6bix6bi5fX2RhdGFf''@;'; put 'put ''XyxUcix3bikpLHNuLnB1c2goem4pKTtyZXR1cm4gbmV3IG5yKE50LHNuKX0sZmlsdGVyOmZ1bmN0aW9uIFEoV3QpeyJmdW5jdGlvbiIhPXR5cGVvZiBXdCYmKFd0PSgwLFUuWikoV3QpKTtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj1wbi5sZW5ndGgsTnQ9bmV3IEFycmF5KEtuKSxzbj0w''@;'; put 'put ''O3NuPEtuOysrc24pZm9yKHZhciB6bixVbj1wbltzbl0sd249VW4ubGVuZ3RoLHRuPU50W3NuXT1bXSxUcj0wO1RyPHduOysrVHIpKHpuPVVuW1RyXSkmJld0LmNhbGwoem4sem4uX19kYXRhX18sVHIsVW4pJiZ0bi5wdXNoKHpuKTtyZXR1cm4gbmV3IG5yKE50LHRoaXMuX3BhcmVudHMpfSxk''@;'; put 'put ''YXRhOmZ1bmN0aW9uIEsoV3QscG4pe2lmKCFXdClyZXR1cm4gdW49bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxUcj0tMSx0aGlzLmVhY2goZnVuY3Rpb24ob3Ipe3VuWysrVHJdPW9yfSksdW47dmFyIEtuPXBuP3RlOk4sTnQ9dGhpcy5fcGFyZW50cyxzbj10aGlzLl9ncm91cHM7ImZ1bmN0aW9u''@;'; put 'put ''IiE9dHlwZW9mIFd0JiYoV3Q9ZnVuY3Rpb24gWShXdCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIFd0fX0oV3QpKTtmb3IodmFyIFVuPXNuLmxlbmd0aCx3bj1uZXcgQXJyYXkoVW4pLHRuPW5ldyBBcnJheShVbiksem49bmV3IEFycmF5KFVuKSxUcj0wO1RyPFVuOysrVHIpe3ZhciBCbj1O''@;'; put 'put ''dFtUcl0sa3I9c25bVHJdLG1uPWtyLmxlbmd0aCx1bj1XdC5jYWxsKEJuLEJuJiZCbi5fX2RhdGFfXyxUcixOdCksY249dW4ubGVuZ3RoLF9uPXRuW1RyXT1uZXcgQXJyYXkoY24pLEd0PXduW1RyXT1uZXcgQXJyYXkoY24pO0tuKEJuLGtyLF9uLEd0LHpuW1RyXT1uZXcgQXJyYXkobW4pLHVu''@;'; put 'put ''LHBuKTtmb3IodmFyIEluLEpuLFZuPTAsZW49MDtWbjxjbjsrK1ZuKWlmKEluPV9uW1ZuXSl7Zm9yKFZuPj1lbiYmKGVuPVZuKzEpOyEoSm49R3RbZW5dKSYmKytlbjxjbjspO0luLl9uZXh0PUpufHxudWxsfX1yZXR1cm4od249bmV3IG5yKHduLE50KSkuX2VudGVyPXRuLHduLl9leGl0PXpu''@;'; put 'put ''LHdufSxlbnRlcjpmdW5jdGlvbiByZSgpe3JldHVybiBuZXcgbnIodGhpcy5fZW50ZXJ8fHRoaXMuX2dyb3Vwcy5tYXAoaiksdGhpcy5fcGFyZW50cyl9LGV4aXQ6ZnVuY3Rpb24gSigpe3JldHVybiBuZXcgbnIodGhpcy5fZXhpdHx8dGhpcy5fZ3JvdXBzLm1hcChqKSx0aGlzLl9wYXJlbnRz''@;'; put 'put ''KX0sam9pbjpmdW5jdGlvbiBzZShXdCxwbixLbil7dmFyIE50PXRoaXMuZW50ZXIoKSxzbj10aGlzLFVuPXRoaXMuZXhpdCgpO3JldHVybiBOdD0iZnVuY3Rpb24iPT10eXBlb2YgV3Q/V3QoTnQpOk50LmFwcGVuZChXdCsiIiksbnVsbCE9cG4mJihzbj1wbihzbikpLG51bGw9PUtuP1VuLnJl''@;'; put 'put ''bW92ZSgpOktuKFVuKSxOdCYmc24/TnQubWVyZ2Uoc24pLm9yZGVyKCk6c259LG1lcmdlOmZ1bmN0aW9uIG9lKFd0KXtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj1XdC5fZ3JvdXBzLE50PXBuLmxlbmd0aCxVbj1NYXRoLm1pbihOdCxLbi5sZW5ndGgpLHduPW5ldyBBcnJheShOdCksdG49''@;'; put 'put ''MDt0bjxVbjsrK3RuKWZvcih2YXIgbW4sem49cG5bdG5dLFRyPUtuW3RuXSxCbj16bi5sZW5ndGgsa3I9d25bdG5dPW5ldyBBcnJheShCbiksdW49MDt1bjxCbjsrK3VuKShtbj16blt1bl18fFRyW3VuXSkmJihrclt1bl09bW4pO2Zvcig7dG48TnQ7Kyt0bil3blt0bl09cG5bdG5dO3JldHVy''@;'; put 'put ''biBuZXcgbnIod24sdGhpcy5fcGFyZW50cyl9LG9yZGVyOmZ1bmN0aW9uIGNlKCl7Zm9yKHZhciBXdD10aGlzLl9ncm91cHMscG49LTEsS249V3QubGVuZ3RoOysrcG48S247KWZvcih2YXIgd24sTnQ9V3RbcG5dLHNuPU50Lmxlbmd0aC0xLFVuPU50W3NuXTstLXNuPj0wOykod249TnRbc25d''@;'; put 'put ''KSYmKFVuJiY0XnduLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKFVuKSYmVW4ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod24sVW4pLFVuPXduKTtyZXR1cm4gdGhpc30sc29ydDpmdW5jdGlvbiBkZShXdCl7ZnVuY3Rpb24gcG4oa3IsbW4pe3JldHVybiBrciYmbW4/V3Qoa3IuX19kYXRhX18s''@;'; put 'put ''bW4uX19kYXRhX18pOiFrci0hbW59V3R8fChXdD12ZSk7Zm9yKHZhciBLbj10aGlzLl9ncm91cHMsTnQ9S24ubGVuZ3RoLHNuPW5ldyBBcnJheShOdCksVW49MDtVbjxOdDsrK1VuKXtmb3IodmFyIFRyLHduPUtuW1VuXSx0bj13bi5sZW5ndGgsem49c25bVW5dPW5ldyBBcnJheSh0biksQm49''@;'; put 'put ''MDtCbjx0bjsrK0JuKShUcj13bltCbl0pJiYoem5bQm5dPVRyKTt6bi5zb3J0KHBuKX1yZXR1cm4gbmV3IG5yKHNuLHRoaXMuX3BhcmVudHMpLm9yZGVyKCl9LGNhbGw6ZnVuY3Rpb24gQWUoKXt2YXIgV3Q9YXJndW1lbnRzWzBdO3JldHVybiBhcmd1bWVudHNbMF09dGhpcyxXdC5hcHBseShu''@;'; put 'put ''dWxsLGFyZ3VtZW50cyksdGhpc30sbm9kZXM6ZnVuY3Rpb24ga2UoKXt2YXIgV3Q9bmV3IEFycmF5KHRoaXMuc2l6ZSgpKSxwbj0tMTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7V3RbKytwbl09dGhpc30pLFd0fSxub2RlOmZ1bmN0aW9uIFNlKCl7Zm9yKHZhciBXdD10aGlzLl9ncm91''@;'; put 'put ''cHMscG49MCxLbj1XdC5sZW5ndGg7cG48S247Kytwbilmb3IodmFyIE50PVd0W3BuXSxzbj0wLFVuPU50Lmxlbmd0aDtzbjxVbjsrK3NuKXt2YXIgd249TnRbc25dO2lmKHduKXJldHVybiB3bn1yZXR1cm4gbnVsbH0sc2l6ZTpmdW5jdGlvbiBJZSgpe3ZhciBXdD0wO3JldHVybiB0aGlzLmVh''@;'; put 'put ''Y2goZnVuY3Rpb24oKXsrK1d0fSksV3R9LGVtcHR5OmZ1bmN0aW9uIFRlKCl7cmV0dXJuIXRoaXMubm9kZSgpfSxlYWNoOmZ1bmN0aW9uIE1lKFd0KXtmb3IodmFyIHBuPXRoaXMuX2dyb3VwcyxLbj0wLE50PXBuLmxlbmd0aDtLbjxOdDsrK0tuKWZvcih2YXIgdG4sc249cG5bS25dLFVuPTAs''@;'; put 'put ''d249c24ubGVuZ3RoO1VuPHduOysrVW4pKHRuPXNuW1VuXSkmJld0LmNhbGwodG4sdG4uX19kYXRhX18sVW4sc24pO3JldHVybiB0aGlzfSxhdHRyOmZ1bmN0aW9uIFYoV3QscG4pe3ZhciBLbj0oMCxoZS5aKShXdCk7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXt2YXIgTnQ9dGhpcy5ub2RlKCk7''@;'; put 'put ''cmV0dXJuIEtuLmxvY2FsP050LmdldEF0dHJpYnV0ZU5TKEtuLnNwYWNlLEtuLmxvY2FsKTpOdC5nZXRBdHRyaWJ1dGUoS24pfXJldHVybiB0aGlzLmVhY2goKG51bGw9PXBuP0tuLmxvY2FsP3o6TzoiZnVuY3Rpb24iPT10eXBlb2YgcG4/S24ubG9jYWw/UDp4OktuLmxvY2FsP25lOmVlKShL''@;'; put 'put ''bixwbikpfSxzdHlsZTpULloscHJvcGVydHk6ZnVuY3Rpb24gQ2UoV3QscG4pe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPjE/dGhpcy5lYWNoKChudWxsPT1wbj9TOiJmdW5jdGlvbiI9PXR5cGVvZiBwbj95ZTpGKShXdCxwbikpOnRoaXMubm9kZSgpW1d0XX0sY2xhc3NlZDpmdW5jdGlvbiBB''@;'; put 'put ''dChXdCxwbil7dmFyIEtuPURlKFd0KyIiKTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2Zvcih2YXIgTnQ9UGUodGhpcy5ub2RlKCkpLHNuPS0xLFVuPUtuLmxlbmd0aDsrK3NuPFVuOylpZighTnQuY29udGFpbnMoS25bc25dKSlyZXR1cm4hMTtyZXR1cm4hMH1yZXR1cm4gdGhpcy5lYWNoKCgi''@;'; put 'put ''ZnVuY3Rpb24iPT10eXBlb2YgcG4/dnQ6cG4/d3Q6bXQpKEtuLHBuKSl9LHRleHQ6ZnVuY3Rpb24gX3QoV3Qpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaChudWxsPT1XdD9odDooImZ1bmN0aW9uIj09dHlwZW9mIFd0P29uOkJ0KShXdCkpOnRoaXMubm9kZSgpLnRleHRDb250''@;'; put 'put ''ZW50fSxodG1sOmZ1bmN0aW9uIEx0KFd0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2gobnVsbD09V3Q/dHQ6KCJmdW5jdGlvbiI9PXR5cGVvZiBXdD9sdDpldCkoV3QpKTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LHJhaXNlOmZ1bmN0aW9uIGZ0KCl7cmV0dXJuIHRoaXMuZWFj''@;'; put 'put ''aChDdCl9LGxvd2VyOmZ1bmN0aW9uIEdlKCl7cmV0dXJuIHRoaXMuZWFjaChIdCl9LGFwcGVuZDpmdW5jdGlvbiB5dChXdCl7dmFyIHBuPSJmdW5jdGlvbiI9PXR5cGVvZiBXdD9XdDooMCxVZS5aKShXdCk7cmV0dXJuIHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXBwZW5k''@;'; put 'put ''Q2hpbGQocG4uYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pfSxpbnNlcnQ6ZnVuY3Rpb24gSnQoV3QscG4pe3ZhciBLbj0iZnVuY3Rpb24iPT10eXBlb2YgV3Q/V3Q6KDAsVWUuWikoV3QpLE50PW51bGw9PXBuP2p0OiJmdW5jdGlvbiI9PXR5cGVvZiBwbj9wbjooMCxtZS5aKShwbik7cmV0dXJu''@;'; put 'put ''IHRoaXMuc2VsZWN0KGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKEtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxOdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fG51bGwpfSl9LHJlbW92ZTpmdW5jdGlvbiBkbigpe3JldHVybiB0aGlzLmVhY2goZ24pfSxjbG9uZTpmdW5jdGlv''@;'; put 'put ''biBObihXdCl7cmV0dXJuIHRoaXMuc2VsZWN0KFd0P2xuOnluKX0sZGF0dW06ZnVuY3Rpb24gYm4oV3Qpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMucHJvcGVydHkoIl9fZGF0YV9fIixXdCk6dGhpcy5ub2RlKCkuX19kYXRhX199LG9uOmVyLlpQLGRpc3BhdGNoOmZ1bmN0aW9uIHF0''@;'; put 'put ''KFd0LHBuKXtyZXR1cm4gdGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgcG4/eHI6RnIpKFd0LHBuKSl9fTtjb25zdCBxbj1Bbn0sNjE3NDY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7QjooKT0+QixaUDooKT0+YWUsX0g6KCk9Pll9KTt2YXIgbWU9e30sQj1udWxsO2Z1''@;'; put 'put ''bmN0aW9uIEVlKFcsTix0ZSl7cmV0dXJuIFc9VShXLE4sdGUpLGZ1bmN0aW9uKEspe3ZhciBKPUsucmVsYXRlZFRhcmdldDsoIUp8fEohPT10aGlzJiYhKDgmSi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSkpJiZXLmNhbGwodGhpcyxLKX19ZnVuY3Rpb24gVShXLE4sdGUpe3JldHVy''@;'; put 'put ''biBmdW5jdGlvbihLKXt2YXIgSj1CO0I9Szt0cnl7Vy5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxOLHRlKX1maW5hbGx5e0I9Sn19fWZ1bmN0aW9uIFEoVyl7cmV0dXJuIFcudHJpbSgpLnNwbGl0KC9efFxzKy8pLm1hcChmdW5jdGlvbihOKXt2YXIgdGU9IiIsSz1OLmluZGV4T2YoIi4iKTty''@;'; put 'put ''ZXR1cm4gSz49MCYmKHRlPU4uc2xpY2UoSysxKSxOPU4uc2xpY2UoMCxLKSkse3R5cGU6TixuYW1lOnRlfX0pfWZ1bmN0aW9uIGooVyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIE49dGhpcy5fX29uO2lmKE4pe2Zvcih2YXIgc2UsdGU9MCxLPS0xLEo9Ti5sZW5ndGg7dGU8SjsrK3RlKXNlPU5b''@;'; put 'put ''dGVdLFcudHlwZSYmc2UudHlwZSE9PVcudHlwZXx8c2UubmFtZSE9PVcubmFtZT9OWysrS109c2U6dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHNlLnR5cGUsc2UubGlzdGVuZXIsc2UuY2FwdHVyZSk7KytLP04ubGVuZ3RoPUs6ZGVsZXRlIHRoaXMuX19vbn19fWZ1bmN0aW9uIHJlKFcsTix0''@;'; put 'put ''ZSl7dmFyIEs9bWUuaGFzT3duUHJvcGVydHkoVy50eXBlKT9FZTpVO3JldHVybiBmdW5jdGlvbihKLHNlLG9lKXt2YXIgZGUsY2U9dGhpcy5fX29uLHZlPUsoTixzZSxvZSk7aWYoY2UpZm9yKHZhciBBZT0wLGtlPWNlLmxlbmd0aDtBZTxrZTsrK0FlKWlmKChkZT1jZVtBZV0pLnR5cGU9PT1X''@;'; put 'put ''LnR5cGUmJmRlLm5hbWU9PT1XLm5hbWUpcmV0dXJuIHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihkZS50eXBlLGRlLmxpc3RlbmVyLGRlLmNhcHR1cmUpLHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihkZS50eXBlLGRlLmxpc3RlbmVyPXZlLGRlLmNhcHR1cmU9dGUpLHZvaWQoZGUudmFsdWU9Tik7''@;'; put 'put ''dGhpcy5hZGRFdmVudExpc3RlbmVyKFcudHlwZSx2ZSx0ZSksZGU9e3R5cGU6Vy50eXBlLG5hbWU6Vy5uYW1lLHZhbHVlOk4sbGlzdGVuZXI6dmUsY2FwdHVyZTp0ZX0sY2U/Y2UucHVzaChkZSk6dGhpcy5fX29uPVtkZV19fWZ1bmN0aW9uIGFlKFcsTix0ZSl7dmFyIEosb2UsSz1RKFcrIiIp''@;'; put 'put ''LHNlPUsubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7Zm9yKGNlPU4/cmU6aixudWxsPT10ZSYmKHRlPSExKSxKPTA7SjxzZTsrK0opdGhpcy5lYWNoKGNlKEtbSl0sTix0ZSkpO3JldHVybiB0aGlzfXZhciBjZT10aGlzLm5vZGUoKS5fX29uO2lmKGNlKWZvcih2YXIgQWUsZGU9''@;'; put 'put ''MCx2ZT1jZS5sZW5ndGg7ZGU8dmU7KytkZSlmb3IoSj0wLEFlPWNlW2RlXTtKPHNlOysrSilpZigob2U9S1tKXSkudHlwZT09PUFlLnR5cGUmJm9lLm5hbWU9PT1BZS5uYW1lKXJldHVybiBBZS52YWx1ZX1mdW5jdGlvbiBZKFcsTix0ZSxLKXt2YXIgSj1CO1cuc291cmNlRXZlbnQ9QixCPVc7''@;'; put 'put ''dHJ5e3JldHVybiBOLmFwcGx5KHRlLEspfWZpbmFsbHl7Qj1KfX0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiYoIm9ubW91c2VlbnRlciJpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnR8fChtZT17bW91c2VlbnRlcjoibW91c2VvdmVyIixtb3VzZWxlYXZlOiJtb3VzZW91dCJ9KSl9''@;'; put 'put ''LDI0NDc2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse1M6KCk9PlEsWjooKT0+VX0pO3ZhciBtZT1MKDI0NDIpO2Z1bmN0aW9uIEIoail7cmV0dXJuIGZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eShqKX19ZnVuY3Rpb24gRShqLHJlLGFlKXtyZXR1cm4gZnVu''@;'; put 'put ''Y3Rpb24oKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KGoscmUsYWUpfX1mdW5jdGlvbiBFZShqLHJlLGFlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgWT1yZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bnVsbD09WT90aGlzLnN0eWxlLnJlbW92ZVByb3BlcnR5KGopOnRoaXMuc3R5bGUuc2V0UHJv''@;'; put 'put ''cGVydHkoaixZLGFlKX19ZnVuY3Rpb24gVShqLHJlLGFlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP3RoaXMuZWFjaCgobnVsbD09cmU/QjoiZnVuY3Rpb24iPT10eXBlb2YgcmU/RWU6RSkoaixyZSxudWxsPT1hZT8iIjphZSkpOlEodGhpcy5ub2RlKCksail9ZnVuY3Rpb24gUShqLHJl''@;'; put 'put ''KXtyZXR1cm4gai5zdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHJlKXx8KDAsbWUuWikoaikuZ2V0Q29tcHV0ZWRTdHlsZShqLG51bGwpLmdldFByb3BlcnR5VmFsdWUocmUpfX0sMjk3NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKCl7fWZ1bmN0aW9uIEIoRSl7cmV0dXJu''@;'; put 'put ''IG51bGw9PUU/bWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yKEUpfX1MLmQoSmUse1o6KCk9PkJ9KX0sMzIwMzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKCl7cmV0dXJuW119ZnVuY3Rpb24gQihFKXtyZXR1cm4gbnVsbD09RT9tZTpmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoRSl9fUwuZChKZSx7WjooKT0+Qn0pfSw3NTgxOTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5kKEplLHtaOigpPT5CfSk7dmFyIG1lPUwoNjE3NDYpO2Z1bmN0aW9uIEIoKXtmb3IodmFyIEVlLEU9bWUuQjtFZT1FLnNvdXJjZUV2''@;'; put 'put ''ZW50OylFPUVlO3JldHVybiBFfX0sMzAyNTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+RX0pO3ZhciBtZT1MKDc1ODE5KSxCPUwoMjU5NDEpO2Z1bmN0aW9uIEUoRWUsVSxRKXthcmd1bWVudHMubGVuZ3RoPDMmJihRPVUsVT0oMCxtZS5aKSgpLmNoYW5nZWRUb3Vj''@;'; put 'put ''aGVzKTtmb3IodmFyIGFlLGo9MCxyZT1VP1UubGVuZ3RoOjA7ajxyZTsrK2opaWYoKGFlPVVbal0pLmlkZW50aWZpZXI9PT1RKXJldHVybigwLEIuWikoRWUsYWUpO3JldHVybiBudWxsfX0sMjQ0MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbWUoQil7cmV0dXJuIEIub3du''@;'; put 'put ''ZXJEb2N1bWVudCYmQi5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3fHxCLmRvY3VtZW50JiZCfHxCLmRlZmF1bHRWaWV3fUwuZChKZSx7WjooKT0+bWV9KX0sNTY4NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wucihKZSksTC5kKEplLHtpbnRlcnZhbDooKT0+RSxub3c6KCk9Pm1lLnpP''@;'; put 'put ''LHRpbWVvdXQ6KCk9PkIuWix0aW1lcjooKT0+bWUuSFQsdGltZXJGbHVzaDooKT0+bWUuUjh9KTt2YXIgbWU9TCg0OTE5NCksQj1MKDczMzM5KTtmdW5jdGlvbiBFKEVlLFUsUSl7dmFyIGo9bmV3IG1lLkI3LHJlPVU7cmV0dXJuIG51bGw9PVU/KGoucmVzdGFydChFZSxVLFEpLGopOihVPStV''@;'; put 'put ''LFE9bnVsbD09UT8oMCxtZS56TykoKTorUSxqLnJlc3RhcnQoZnVuY3Rpb24gYWUoWSl7WSs9cmUsai5yZXN0YXJ0KGFlLHJlKz1VLFEpLEVlKFkpfSxVLFEpLGopfX0sNzMzMzk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0wuZChKZSx7WjooKT0+Qn0pO3ZhciBtZT1MKDQ5MTk0KTtmdW5j''@;'; put 'put ''dGlvbiBCKEUsRWUsVSl7dmFyIFE9bmV3IG1lLkI3O3JldHVybiBRLnJlc3RhcnQoZnVuY3Rpb24oail7US5zdG9wKCksRShqK0VlKX0sRWU9bnVsbD09RWU/MDorRWUsVSksUX19LDQ5MTk0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLmQoSmUse0I3OigpPT5LLEhUOigpPT5KLFI4Oigp''@;'; put 'put ''PT5zZSx6TzooKT0+Tn0pO3ZhciBVLFEsbWU9MCxCPTAsRT0wLGo9MCxyZT0wLGFlPTAsWT0ib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2U6RGF0ZSxXPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlv''@;'; put 'put ''bkZyYW1lP3dpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUuYmluZCh3aW5kb3cpOmZ1bmN0aW9uKEFlKXtzZXRUaW1lb3V0KEFlLDE3KX07ZnVuY3Rpb24gTigpe3JldHVybiByZXx8KFcodGUpLHJlPVkubm93KCkrYWUpfWZ1bmN0aW9uIHRlKCl7cmU9MH1mdW5jdGlvbiBLKCl7dGhpcy5f''@;'; put 'put ''Y2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBKKEFlLGtlLFNlKXt2YXIgSWU9bmV3IEs7cmV0dXJuIEllLnJlc3RhcnQoQWUsa2UsU2UpLEllfWZ1bmN0aW9uIHNlKCl7TigpLCsrbWU7Zm9yKHZhciBrZSxBZT1VO0FlOykoa2U9cmUtQWUuX3RpbWUpPj0wJiZBZS5f''@;'; put 'put ''Y2FsbC5jYWxsKG51bGwsa2UpLEFlPUFlLl9uZXh0Oy0tbWV9ZnVuY3Rpb24gb2UoKXtyZT0oaj1ZLm5vdygpKSthZSxtZT1CPTA7dHJ5e3NlKCl9ZmluYWxseXttZT0wLGZ1bmN0aW9uIGRlKCl7Zm9yKHZhciBBZSxTZSxrZT1VLEllPTEvMDtrZTspa2UuX2NhbGw/KEllPmtlLl90aW1lJiYo''@;'; put 'put ''SWU9a2UuX3RpbWUpLEFlPWtlLGtlPWtlLl9uZXh0KTooU2U9a2UuX25leHQsa2UuX25leHQ9bnVsbCxrZT1BZT9BZS5fbmV4dD1TZTpVPVNlKTtRPUFlLHZlKEllKX0oKSxyZT0wfX1mdW5jdGlvbiBjZSgpe3ZhciBBZT1ZLm5vdygpLGtlPUFlLWo7a2U+MWUzJiYoYWUtPWtlLGo9QWUpfWZ1''@;'; put 'put ''bmN0aW9uIHZlKEFlKXttZXx8KEImJihCPWNsZWFyVGltZW91dChCKSksQWUtcmU+MjQ/KEFlPDEvMCYmKEI9c2V0VGltZW91dChvZSxBZS1ZLm5vdygpLWFlKSksRSYmKEU9Y2xlYXJJbnRlcnZhbChFKSkpOihFfHwoaj1ZLm5vdygpLEU9c2V0SW50ZXJ2YWwoY2UsMWUzKSksbWU9MSxXKG9l''@;'; put 'put ''KSkpfUsucHJvdG90eXBlPUoucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpLLHJlc3RhcnQ6ZnVuY3Rpb24oQWUsa2UsU2Upe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBBZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJjYWxsYmFjayBpcyBub3QgYSBmdW5jdGlvbiIpO1NlPShudWxsPT1TZT9OKCk6K1Nl''@;'; put 'put ''KSsobnVsbD09a2U/MDora2UpLCF0aGlzLl9uZXh0JiZRIT09dGhpcyYmKFE/US5fbmV4dD10aGlzOlU9dGhpcyxRPXRoaXMpLHRoaXMuX2NhbGw9QWUsdGhpcy5fdGltZT1TZSx2ZSgpfSxzdG9wOmZ1bmN0aW9uKCl7dGhpcy5fY2FsbCYmKHRoaXMuX2NhbGw9bnVsbCx0aGlzLl90aW1lPTEv''@;'; put 'put ''MCx2ZSgpKX19fSw0MDgyMjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TC5yKEplKSxMLmQoSmUse2FjdGl2ZTooKT0+X24saW50ZXJydXB0OigpPT5kZSx0cmFuc2l0aW9uOigpPT5Vbn0pO3ZhciBtZT1MKDgyNzAwKSxCPUwoMjU5MjIpLEU9TCg0OTE5NCksRWU9TCg3MzMzOSksVT0oMCxC''@;'; put 'put ''LlopKCJzdGFydCIsImVuZCIsImNhbmNlbCIsImludGVycnVwdCIpLFE9W107ZnVuY3Rpb24gSyhHdCxrbixWbixlbixJbixKbil7dmFyIG9yPUd0Ll9fdHJhbnNpdGlvbjtpZihvcil7aWYoVm4gaW4gb3IpcmV0dXJufWVsc2UgR3QuX190cmFuc2l0aW9uPXt9OyFmdW5jdGlvbiBjZShHdCxr''@;'; put 'put ''bixWbil7dmFyIEluLGVuPUd0Ll9fdHJhbnNpdGlvbjtmdW5jdGlvbiBvcihWcil7dmFyIGlpLFJyLGxpLE1pO2lmKDEhPT1Wbi5zdGF0ZSlyZXR1cm4gS3IoKTtmb3IoaWkgaW4gZW4paWYoKE1pPWVuW2lpXSkubmFtZT09PVZuLm5hbWUpe2lmKDM9PT1NaS5zdGF0ZSlyZXR1cm4oMCxFZS5a''@;'; put 'put ''KShvcik7ND09PU1pLnN0YXRlPyhNaS5zdGF0ZT02LE1pLnRpbWVyLnN0b3AoKSxNaS5vbi5jYWxsKCJpbnRlcnJ1cHQiLEd0LEd0Ll9fZGF0YV9fLE1pLmluZGV4LE1pLmdyb3VwKSxkZWxldGUgZW5baWldKToraWk8a24mJihNaS5zdGF0ZT02LE1pLnRpbWVyLnN0b3AoKSxNaS5vbi5jYWxs''@;'; put 'put ''KCJjYW5jZWwiLEd0LEd0Ll9fZGF0YV9fLE1pLmluZGV4LE1pLmdyb3VwKSxkZWxldGUgZW5baWldKX1pZigoMCxFZS5aKShmdW5jdGlvbigpezM9PT1Wbi5zdGF0ZSYmKFZuLnN0YXRlPTQsVm4udGltZXIucmVzdGFydChncixWbi5kZWxheSxWbi50aW1lKSxncihWcikpfSksVm4uc3RhdGU9''@;'; put 'put ''MixWbi5vbi5jYWxsKCJzdGFydCIsR3QsR3QuX19kYXRhX18sVm4uaW5kZXgsVm4uZ3JvdXApLDI9PT1Wbi5zdGF0ZSl7Zm9yKFZuLnN0YXRlPTMsSW49bmV3IEFycmF5KGxpPVZuLnR3ZWVuLmxlbmd0aCksaWk9MCxScj0tMTtpaTxsaTsrK2lpKShNaT1Wbi50d2VlbltpaV0udmFsdWUuY2Fs''@;'; put 'put ''bChHdCxHdC5fX2RhdGFfXyxWbi5pbmRleCxWbi5ncm91cCkpJiYoSW5bKytScl09TWkpO0luLmxlbmd0aD1ScisxfX1mdW5jdGlvbiBncihWcil7Zm9yKHZhciBpaT1WcjxWbi5kdXJhdGlvbj9Wbi5lYXNlLmNhbGwobnVsbCxWci9Wbi5kdXJhdGlvbik6KFZuLnRpbWVyLnJlc3RhcnQoS3Ip''@;'; put 'put ''LFZuLnN0YXRlPTUsMSksUnI9LTEsbGk9SW4ubGVuZ3RoOysrUnI8bGk7KUluW1JyXS5jYWxsKEd0LGlpKTs1PT09Vm4uc3RhdGUmJihWbi5vbi5jYWxsKCJlbmQiLEd0LEd0Ll9fZGF0YV9fLFZuLmluZGV4LFZuLmdyb3VwKSxLcigpKX1mdW5jdGlvbiBLcigpe2Zvcih2YXIgVnIgaW4gVm4u''@;'; put 'put ''c3RhdGU9NixWbi50aW1lci5zdG9wKCksZGVsZXRlIGVuW2tuXSxlbilyZXR1cm47ZGVsZXRlIEd0Ll9fdHJhbnNpdGlvbn1lbltrbl09Vm4sVm4udGltZXI9KDAsRS5IVCkoZnVuY3Rpb24gSm4oVnIpe1ZuLnN0YXRlPTEsVm4udGltZXIucmVzdGFydChvcixWbi5kZWxheSxWbi50aW1lKSxW''@;'; put 'put ''bi5kZWxheTw9VnImJm9yKFZyLVZuLmRlbGF5KX0sMCxWbi50aW1lKX0oR3QsVm4se25hbWU6a24saW5kZXg6ZW4sZ3JvdXA6SW4sb246VSx0d2VlbjpRLHRpbWU6Sm4udGltZSxkZWxheTpKbi5kZWxheSxkdXJhdGlvbjpKbi5kdXJhdGlvbixlYXNlOkpuLmVhc2UsdGltZXI6bnVsbCxzdGF0''@;'; put 'put ''ZTowfSl9ZnVuY3Rpb24gSihHdCxrbil7dmFyIFZuPW9lKEd0LGtuKTtpZihWbi5zdGF0ZT4wKXRocm93IG5ldyBFcnJvcigidG9vIGxhdGU7IGFscmVhZHkgc2NoZWR1bGVkIik7cmV0dXJuIFZufWZ1bmN0aW9uIHNlKEd0LGtuKXt2YXIgVm49b2UoR3Qsa24pO2lmKFZuLnN0YXRlPjMpdGhy''@;'; put 'put ''b3cgbmV3IEVycm9yKCJ0b28gbGF0ZTsgYWxyZWFkeSBydW5uaW5nIik7cmV0dXJuIFZufWZ1bmN0aW9uIG9lKEd0LGtuKXt2YXIgVm49R3QuX190cmFuc2l0aW9uO2lmKCFWbnx8IShWbj1Wbltrbl0pKXRocm93IG5ldyBFcnJvcigidHJhbnNpdGlvbiBub3QgZm91bmQiKTtyZXR1cm4gVm59''@;'; put 'put ''ZnVuY3Rpb24gZGUoR3Qsa24pe3ZhciBlbixJbixvcixWbj1HdC5fX3RyYW5zaXRpb24sSm49ITA7aWYoVm4pe2ZvcihvciBpbiBrbj1udWxsPT1rbj9udWxsOmtuKyIiLFZuKShlbj1Wbltvcl0pLm5hbWU9PT1rbj8oSW49ZW4uc3RhdGU+MiYmZW4uc3RhdGU8NSxlbi5zdGF0ZT02LGVuLnRp''@;'; put 'put ''bWVyLnN0b3AoKSxlbi5vbi5jYWxsKEluPyJpbnRlcnJ1cHQiOiJjYW5jZWwiLEd0LEd0Ll9fZGF0YV9fLGVuLmluZGV4LGVuLmdyb3VwKSxkZWxldGUgVm5bb3JdKTpKbj0hMTtKbiYmZGVsZXRlIEd0Ll9fdHJhbnNpdGlvbn19dmFyIEFlPUwoNzUzNDkpLGtlPUwoMzYxNzUpO2Z1bmN0aW9u''@;'; put 'put ''IFNlKEd0LGtuKXt2YXIgVm4sZW47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIEluPXNlKHRoaXMsR3QpLEpuPUluLnR3ZWVuO2lmKEpuIT09Vm4pZm9yKHZhciBvcj0wLGdyPShlbj1Wbj1KbikubGVuZ3RoO29yPGdyOysrb3IpaWYoZW5bb3JdLm5hbWU9PT1rbil7KGVuPWVuLnNsaWNlKCkpLnNw''@;'; put 'put ''bGljZShvciwxKTticmVha31Jbi50d2Vlbj1lbn19ZnVuY3Rpb24gSWUoR3Qsa24sVm4pe3ZhciBlbixJbjtpZigiZnVuY3Rpb24iIT10eXBlb2YgVm4pdGhyb3cgbmV3IEVycm9yO3JldHVybiBmdW5jdGlvbigpe3ZhciBKbj1zZSh0aGlzLEd0KSxvcj1Kbi50d2VlbjtpZihvciE9PWVuKXtJ''@;'; put 'put ''bj0oZW49b3IpLnNsaWNlKCk7Zm9yKHZhciBncj17bmFtZTprbix2YWx1ZTpWbn0sS3I9MCxWcj1Jbi5sZW5ndGg7S3I8VnI7KytLcilpZihJbltLcl0ubmFtZT09PWtuKXtJbltLcl09Z3I7YnJlYWt9S3I9PT1WciYmSW4ucHVzaChncil9Sm4udHdlZW49SW59fWZ1bmN0aW9uIE1lKEd0LGtu''@;'; put 'put ''LFZuKXt2YXIgZW49R3QuX2lkO3JldHVybiBHdC5lYWNoKGZ1bmN0aW9uKCl7dmFyIEluPXNlKHRoaXMsZW4pOyhJbi52YWx1ZXx8KEluLnZhbHVlPXt9KSlba25dPVZuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pLGZ1bmN0aW9uKEluKXtyZXR1cm4gb2UoSW4sZW4pLnZhbHVlW2tuXX19dmFy''@;'; put 'put ''IGhlPUwoNTI3ODYpLE89TCg2NzM4KSx6PUwoODY4MTEpLGVlPUwoMjMwOTYpO2Z1bmN0aW9uIG5lKEd0LGtuKXt2YXIgVm47cmV0dXJuKCJudW1iZXIiPT10eXBlb2Yga24/Ty5aOmtuIGluc3RhbmNlb2YgaGUuWlA/ei5aUDooVm49KDAsaGUuWlApKGtuKSk/KGtuPVZuLHouWlApOmVlLlop''@;'; put 'put ''KEd0LGtuKX1mdW5jdGlvbiB4KEd0KXtyZXR1cm4gZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZShHdCl9fWZ1bmN0aW9uIFAoR3Qpe3JldHVybiBmdW5jdGlvbigpe3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoR3Quc3BhY2UsR3QubG9jYWwpfX1mdW5jdGlvbiBWKEd0LGtuLFZuKXt2''@;'; put 'put ''YXIgZW4sSm4sSW49Vm4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yPXRoaXMuZ2V0QXR0cmlidXRlKEd0KTtyZXR1cm4gb3I9PT1Jbj9udWxsOm9yPT09ZW4/Sm46Sm49a24oZW49b3IsVm4pfX1mdW5jdGlvbiBUKEd0LGtuLFZuKXt2YXIgZW4sSm4sSW49Vm4rIiI7cmV0dXJuIGZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIG9yPXRoaXMuZ2V0QXR0cmlidXRlTlMoR3Quc3BhY2UsR3QubG9jYWwpO3JldHVybiBvcj09PUluP251bGw6b3I9PT1lbj9KbjpKbj1rbihlbj1vcixWbil9fWZ1bmN0aW9uIFMoR3Qsa24sVm4pe3ZhciBlbixJbixKbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb3IsS3IsZ3I9''@;'; put 'put ''Vm4odGhpcyk7cmV0dXJuIG51bGw9PWdyP3ZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGUoR3QpOihvcj10aGlzLmdldEF0dHJpYnV0ZShHdCkpPT09KEtyPWdyKyIiKT9udWxsOm9yPT09ZW4mJktyPT09SW4/Sm46KEluPUtyLEpuPWtuKGVuPW9yLGdyKSl9fWZ1bmN0aW9uIEYoR3Qsa24sVm4p''@;'; put 'put ''e3ZhciBlbixJbixKbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb3IsS3IsZ3I9Vm4odGhpcyk7cmV0dXJuIG51bGw9PWdyP3ZvaWQgdGhpcy5yZW1vdmVBdHRyaWJ1dGVOUyhHdC5zcGFjZSxHdC5sb2NhbCk6KG9yPXRoaXMuZ2V0QXR0cmlidXRlTlMoR3Quc3BhY2UsR3QubG9jYWwpKT09PShL''@;'; put 'put ''cj1ncisiIik/bnVsbDpvcj09PWVuJiZLcj09PUluP0puOihJbj1LcixKbj1rbihlbj1vcixncikpfX1mdW5jdGlvbiBDZShHdCxrbil7cmV0dXJuIGZ1bmN0aW9uKFZuKXt0aGlzLnNldEF0dHJpYnV0ZShHdCxrbi5jYWxsKHRoaXMsVm4pKX19ZnVuY3Rpb24gRGUoR3Qsa24pe3JldHVybiBm''@;'; put 'put ''dW5jdGlvbihWbil7dGhpcy5zZXRBdHRyaWJ1dGVOUyhHdC5zcGFjZSxHdC5sb2NhbCxrbi5jYWxsKHRoaXMsVm4pKX19ZnVuY3Rpb24gUGUoR3Qsa24pe3ZhciBWbixlbjtmdW5jdGlvbiBJbigpe3ZhciBKbj1rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEpuIT09ZW4mJihWbj0o''@;'; put 'put ''ZW49Sm4pJiZEZShHdCxKbikpLFZufXJldHVybiBJbi5fdmFsdWU9a24sSW59ZnVuY3Rpb24gUWUoR3Qsa24pe3ZhciBWbixlbjtmdW5jdGlvbiBJbigpe3ZhciBKbj1rbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIEpuIT09ZW4mJihWbj0oZW49Sm4pJiZDZShHdCxKbikpLFZufXJl''@;'; put 'put ''dHVybiBJbi5fdmFsdWU9a24sSW59ZnVuY3Rpb24gZ3QoR3Qsa24pe3JldHVybiBmdW5jdGlvbigpe0oodGhpcyxHdCkuZGVsYXk9K2tuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gd3QoR3Qsa24pe3JldHVybiBrbj0ra24sZnVuY3Rpb24oKXtKKHRoaXMsR3QpLmRlbGF5PWtu''@;'; put 'put ''fX1mdW5jdGlvbiB2dChHdCxrbil7cmV0dXJuIGZ1bmN0aW9uKCl7c2UodGhpcyxHdCkuZHVyYXRpb249K2tuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gQXQoR3Qsa24pe3JldHVybiBrbj0ra24sZnVuY3Rpb24oKXtzZSh0aGlzLEd0KS5kdXJhdGlvbj1rbn19ZnVuY3Rpb24g''@;'; put 'put ''QnQoR3Qsa24pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBrbil0aHJvdyBuZXcgRXJyb3I7cmV0dXJuIGZ1bmN0aW9uKCl7c2UodGhpcyxHdCkuZWFzZT1rbn19dmFyIF90PUwoOTc5MDUpO2Z1bmN0aW9uIEx0KEd0LGtuLFZuKXt2YXIgZW4sSW4sSm49ZnVuY3Rpb24gbHQoR3Qpe3JldHVybihH''@;'; put 'put ''dCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pLmV2ZXJ5KGZ1bmN0aW9uKGtuKXt2YXIgVm49a24uaW5kZXhPZigiLiIpO3JldHVybiBWbj49MCYmKGtuPWtuLnNsaWNlKDAsVm4pKSwha258fCJzdGFydCI9PT1rbn0pfShrbik/SjpzZTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb3I9Sm4odGhp''@;'; put 'put ''cyxHdCksZ3I9b3Iub247Z3IhPT1lbiYmKEluPShlbj1ncikuY29weSgpKS5vbihrbixWbiksb3Iub249SW59fXZhciBHZT1MKDI5NzQyKSx5dD1MKDMyMDM3KSxKdD1tZS5aUC5wcm90b3R5cGUuY29uc3RydWN0b3IsZG49TCgyNDQ3Nik7ZnVuY3Rpb24gbG4oR3Qpe3JldHVybiBmdW5jdGlv''@;'; put 'put ''bigpe3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoR3QpfX1mdW5jdGlvbiBYbihHdCxrbixWbil7cmV0dXJuIGZ1bmN0aW9uKGVuKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KEd0LGtuLmNhbGwodGhpcyxlbiksVm4pfX1mdW5jdGlvbiBGcihHdCxrbixWbil7dmFyIGVuLEluO2Z1bmN0aW9u''@;'; put 'put ''IEpuKCl7dmFyIG9yPWtuLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gb3IhPT1JbiYmKGVuPShJbj1vcikmJlhuKEd0LG9yLFZuKSksZW59cmV0dXJuIEpuLl92YWx1ZT1rbixKbn1mdW5jdGlvbiBBbihHdCl7cmV0dXJuIGZ1bmN0aW9uKGtuKXt0aGlzLnRleHRDb250ZW50PUd0LmNh''@;'; put 'put ''bGwodGhpcyxrbil9fWZ1bmN0aW9uIHFuKEd0KXt2YXIga24sVm47ZnVuY3Rpb24gZW4oKXt2YXIgSW49R3QuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBJbiE9PVZuJiYoa249KFZuPUluKSYmQW4oSW4pKSxrbn1yZXR1cm4gZW4uX3ZhbHVlPUd0LGVufXZhciBOdD0wO2Z1bmN0aW9u''@;'; put 'put ''IHNuKEd0LGtuLFZuLGVuKXt0aGlzLl9ncm91cHM9R3QsdGhpcy5fcGFyZW50cz1rbix0aGlzLl9uYW1lPVZuLHRoaXMuX2lkPWVufWZ1bmN0aW9uIFVuKEd0KXtyZXR1cm4oMCxtZS5aUCkoKS50cmFuc2l0aW9uKEd0KX1mdW5jdGlvbiB3bigpe3JldHVybisrTnR9dmFyIHRuPW1lLlpQLnBy''@;'; put 'put ''b3RvdHlwZTtzbi5wcm90b3R5cGU9VW4ucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpzbixzZWxlY3Q6ZnVuY3Rpb24gVWUoR3Qpe3ZhciBrbj10aGlzLl9uYW1lLFZuPXRoaXMuX2lkOyJmdW5jdGlvbiIhPXR5cGVvZiBHdCYmKEd0PSgwLEdlLlopKEd0KSk7Zm9yKHZhciBlbj10aGlzLl9ncm91''@;'; put 'put ''cHMsSW49ZW4ubGVuZ3RoLEpuPW5ldyBBcnJheShJbiksb3I9MDtvcjxJbjsrK29yKWZvcih2YXIgaWksUnIsZ3I9ZW5bb3JdLEtyPWdyLmxlbmd0aCxWcj1Kbltvcl09bmV3IEFycmF5KEtyKSxsaT0wO2xpPEtyOysrbGkpKGlpPWdyW2xpXSkmJihScj1HdC5jYWxsKGlpLGlpLl9fZGF0YV9f''@;'; put 'put ''LGxpLGdyKSkmJigiX19kYXRhX18iaW4gaWkmJihSci5fX2RhdGFfXz1paS5fX2RhdGFfXyksVnJbbGldPVJyLEsoVnJbbGldLGtuLFZuLGxpLFZyLG9lKGlpLFZuKSkpO3JldHVybiBuZXcgc24oSm4sdGhpcy5fcGFyZW50cyxrbixWbil9LHNlbGVjdEFsbDpmdW5jdGlvbiBqdChHdCl7dmFy''@;'; put 'put ''IGtuPXRoaXMuX25hbWUsVm49dGhpcy5faWQ7ImZ1bmN0aW9uIiE9dHlwZW9mIEd0JiYoR3Q9KDAseXQuWikoR3QpKTtmb3IodmFyIGVuPXRoaXMuX2dyb3VwcyxJbj1lbi5sZW5ndGgsSm49W10sb3I9W10sZ3I9MDtncjxJbjsrK2dyKWZvcih2YXIgaWksS3I9ZW5bZ3JdLFZyPUtyLmxlbmd0''@;'; put 'put ''aCxScj0wO1JyPFZyOysrUnIpaWYoaWk9S3JbUnJdKXtmb3IodmFyIE1pLGxpPUd0LmNhbGwoaWksaWkuX19kYXRhX18sUnIsS3IpLG8wPW9lKGlpLFZuKSxuMD0wLGQwPWxpLmxlbmd0aDtuMDxkMDsrK24wKShNaT1saVtuMF0pJiZLKE1pLGtuLFZuLG4wLGxpLG8wKTtKbi5wdXNoKGxpKSxv''@;'; put 'put ''ci5wdXNoKGlpKX1yZXR1cm4gbmV3IHNuKEpuLG9yLGtuLFZuKX0sZmlsdGVyOmZ1bmN0aW9uIHR0KEd0KXsiZnVuY3Rpb24iIT10eXBlb2YgR3QmJihHdD0oMCxfdC5aKShHdCkpO2Zvcih2YXIga249dGhpcy5fZ3JvdXBzLFZuPWtuLmxlbmd0aCxlbj1uZXcgQXJyYXkoVm4pLEluPTA7SW48''@;'; put 'put ''Vm47KytJbilmb3IodmFyIEtyLEpuPWtuW0luXSxvcj1Kbi5sZW5ndGgsZ3I9ZW5bSW5dPVtdLFZyPTA7VnI8b3I7KytWcikoS3I9Sm5bVnJdKSYmR3QuY2FsbChLcixLci5fX2RhdGFfXyxWcixKbikmJmdyLnB1c2goS3IpO3JldHVybiBuZXcgc24oZW4sdGhpcy5fcGFyZW50cyx0aGlzLl9u''@;'; put 'put ''YW1lLHRoaXMuX2lkKX0sbWVyZ2U6ZnVuY3Rpb24gZXQoR3Qpe2lmKEd0Ll9pZCE9PXRoaXMuX2lkKXRocm93IG5ldyBFcnJvcjtmb3IodmFyIGtuPXRoaXMuX2dyb3VwcyxWbj1HdC5fZ3JvdXBzLGVuPWtuLmxlbmd0aCxKbj1NYXRoLm1pbihlbixWbi5sZW5ndGgpLG9yPW5ldyBBcnJheShl''@;'; put 'put ''biksZ3I9MDtncjxKbjsrK2dyKWZvcih2YXIgbGksS3I9a25bZ3JdLFZyPVZuW2dyXSxpaT1Lci5sZW5ndGgsUnI9b3JbZ3JdPW5ldyBBcnJheShpaSksTWk9MDtNaTxpaTsrK01pKShsaT1LcltNaV18fFZyW01pXSkmJihScltNaV09bGkpO2Zvcig7Z3I8ZW47Kytncilvcltncl09a25bZ3Jd''@;'; put 'put ''O3JldHVybiBuZXcgc24ob3IsdGhpcy5fcGFyZW50cyx0aGlzLl9uYW1lLHRoaXMuX2lkKX0sc2VsZWN0aW9uOmZ1bmN0aW9uIGduKCl7cmV0dXJuIG5ldyBKdCh0aGlzLl9ncm91cHMsdGhpcy5fcGFyZW50cyl9LHRyYW5zaXRpb246ZnVuY3Rpb24gcG4oKXtmb3IodmFyIEd0PXRoaXMuX25h''@;'; put 'put ''bWUsa249dGhpcy5faWQsVm49d24oKSxlbj10aGlzLl9ncm91cHMsSW49ZW4ubGVuZ3RoLEpuPTA7Sm48SW47KytKbilmb3IodmFyIEtyLG9yPWVuW0puXSxncj1vci5sZW5ndGgsVnI9MDtWcjxncjsrK1ZyKWlmKEtyPW9yW1ZyXSl7dmFyIGlpPW9lKEtyLGtuKTtLKEtyLEd0LFZuLFZyLG9y''@;'; put 'put ''LHt0aW1lOmlpLnRpbWUraWkuZGVsYXkraWkuZHVyYXRpb24sZGVsYXk6MCxkdXJhdGlvbjppaS5kdXJhdGlvbixlYXNlOmlpLmVhc2V9KX1yZXR1cm4gbmV3IHNuKGVuLHRoaXMuX3BhcmVudHMsR3QsVm4pfSxjYWxsOnRuLmNhbGwsbm9kZXM6dG4ubm9kZXMsbm9kZTp0bi5ub2RlLHNpemU6''@;'; put 'put ''dG4uc2l6ZSxlbXB0eTp0bi5lbXB0eSxlYWNoOnRuLmVhY2gsb246ZnVuY3Rpb24gQ3QoR3Qsa24pe3ZhciBWbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP29lKHRoaXMubm9kZSgpLFZuKS5vbi5vbihHdCk6dGhpcy5lYWNoKEx0KFZuLEd0LGtuKSl9LGF0dHI6ZnVuY3Rp''@;'; put 'put ''b24geWUoR3Qsa24pe3ZhciBWbj0oMCxrZS5aKShHdCksZW49InRyYW5zZm9ybSI9PT1Wbj9BZS53Om5lO3JldHVybiB0aGlzLmF0dHJUd2VlbihHdCwiZnVuY3Rpb24iPT10eXBlb2Yga24/KFZuLmxvY2FsP0Y6UykoVm4sZW4sTWUodGhpcywiYXR0ci4iK0d0LGtuKSk6bnVsbD09a24/KFZu''@;'; put 'put ''LmxvY2FsP1A6eCkoVm4pOihWbi5sb2NhbD9UOlYpKFZuLGVuLGtuKSl9LGF0dHJUd2VlbjpmdW5jdGlvbiAkZShHdCxrbil7dmFyIFZuPSJhdHRyLiIrR3Q7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXJldHVybihWbj10aGlzLnR3ZWVuKFZuKSkmJlZuLl92YWx1ZTtpZihudWxsPT1rbilyZXR1''@;'; put 'put ''cm4gdGhpcy50d2VlbihWbixudWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2Yga24pdGhyb3cgbmV3IEVycm9yO3ZhciBlbj0oMCxrZS5aKShHdCk7cmV0dXJuIHRoaXMudHdlZW4oVm4sKGVuLmxvY2FsP1BlOlFlKShlbixrbikpfSxzdHlsZTpmdW5jdGlvbiBzcihHdCxrbixWbil7dmFyIGVu''@;'; put 'put ''PSJ0cmFuc2Zvcm0iPT0oR3QrPSIiKT9BZS5ZOm5lO3JldHVybiBudWxsPT1rbj90aGlzLnN0eWxlVHdlZW4oR3QsZnVuY3Rpb24geW4oR3Qsa24pe3ZhciBWbixlbixJbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgSm49KDAsZG4uUykodGhpcyxHdCksb3I9KHRoaXMuc3R5bGUucmVtb3ZlUHJv''@;'; put 'put ''cGVydHkoR3QpLCgwLGRuLlMpKHRoaXMsR3QpKTtyZXR1cm4gSm49PT1vcj9udWxsOkpuPT09Vm4mJm9yPT09ZW4/SW46SW49a24oVm49Sm4sZW49b3IpfX0oR3QsZW4pKS5vbigiZW5kLnN0eWxlLiIrR3QsbG4oR3QpKToiZnVuY3Rpb24iPT10eXBlb2Yga24/dGhpcy5zdHlsZVR3ZWVuKEd0''@;'; put 'put ''LGZ1bmN0aW9uIGJuKEd0LGtuLFZuKXt2YXIgZW4sSW4sSm47cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yPSgwLGRuLlMpKHRoaXMsR3QpLGdyPVZuKHRoaXMpLEtyPWdyKyIiO3JldHVybiBudWxsPT1nciYmKHRoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkoR3QpLEtyPWdyPSgwLGRuLlMpKHRo''@;'; put 'put ''aXMsR3QpKSxvcj09PUtyP251bGw6b3I9PT1lbiYmS3I9PT1Jbj9KbjooSW49S3IsSm49a24oZW49b3IsZ3IpKX19KEd0LGVuLE1lKHRoaXMsInN0eWxlLiIrR3Qsa24pKSkuZWFjaChmdW5jdGlvbiBlcihHdCxrbil7dmFyIFZuLGVuLEluLGdyLEpuPSJzdHlsZS4iK2tuLG9yPSJlbmQuIitK''@;'; put 'put ''bjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgS3I9c2UodGhpcyxHdCksVnI9S3Iub24saWk9bnVsbD09S3IudmFsdWVbSm5dP2dyfHwoZ3I9bG4oa24pKTp2b2lkIDA7KFZyIT09Vm58fEluIT09aWkpJiYoZW49KFZuPVZyKS5jb3B5KCkpLm9uKG9yLEluPWlpKSxLci5vbj1lbn19KHRoaXMuX2lk''@;'; put 'put ''LEd0KSk6dGhpcy5zdHlsZVR3ZWVuKEd0LGZ1bmN0aW9uIE5uKEd0LGtuLFZuKXt2YXIgZW4sSm4sSW49Vm4rIiI7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG9yPSgwLGRuLlMpKHRoaXMsR3QpO3JldHVybiBvcj09PUluP251bGw6b3I9PT1lbj9KbjpKbj1rbihlbj1vcixWbil9fShHdCxlbixr''@;'; put 'put ''biksVm4pLm9uKCJlbmQuc3R5bGUuIitHdCxudWxsKX0sc3R5bGVUd2VlbjpmdW5jdGlvbiB4cihHdCxrbixWbil7dmFyIGVuPSJzdHlsZS4iKyhHdCs9IiIpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MilyZXR1cm4oZW49dGhpcy50d2VlbihlbikpJiZlbi5fdmFsdWU7aWYobnVsbD09a24pcmV0''@;'; put 'put ''dXJuIHRoaXMudHdlZW4oZW4sbnVsbCk7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGtuKXRocm93IG5ldyBFcnJvcjtyZXR1cm4gdGhpcy50d2VlbihlbixGcihHdCxrbixudWxsPT1Wbj8iIjpWbikpfSx0ZXh0OmZ1bmN0aW9uIG5yKEd0KXtyZXR1cm4gdGhpcy50d2VlbigidGV4dCIsImZ1bmN0''@;'; put 'put ''aW9uIj09dHlwZW9mIEd0P2Z1bmN0aW9uIHByKEd0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIga249R3QodGhpcyk7dGhpcy50ZXh0Q29udGVudD1udWxsPT1rbj8iIjprbn19KE1lKHRoaXMsInRleHQiLEd0KSk6ZnVuY3Rpb24gcXQoR3Qpe3JldHVybiBmdW5jdGlvbigpe3RoaXMudGV4dENv''@;'; put 'put ''bnRlbnQ9R3R9fShudWxsPT1HdD8iIjpHdCsiIikpfSx0ZXh0VHdlZW46ZnVuY3Rpb24gV3QoR3Qpe3ZhciBrbj0idGV4dCI7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXJldHVybihrbj10aGlzLnR3ZWVuKGtuKSkmJmtuLl92YWx1ZTtpZihudWxsPT1HdClyZXR1cm4gdGhpcy50d2Vlbihrbixu''@;'; put 'put ''dWxsKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgR3QpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0aGlzLnR3ZWVuKGtuLHFuKEd0KSl9LHJlbW92ZTpmdW5jdGlvbiBIdCgpe3JldHVybiB0aGlzLm9uKCJlbmQucmVtb3ZlIixmdW5jdGlvbiBmdChHdCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGtu''@;'; put 'put ''PXRoaXMucGFyZW50Tm9kZTtmb3IodmFyIFZuIGluIHRoaXMuX190cmFuc2l0aW9uKWlmKCtWbiE9PUd0KXJldHVybjtrbiYma24ucmVtb3ZlQ2hpbGQodGhpcyl9fSh0aGlzLl9pZCkpfSx0d2VlbjpmdW5jdGlvbiBUZShHdCxrbil7dmFyIFZuPXRoaXMuX2lkO2lmKEd0Kz0iIixhcmd1bWVu''@;'; put 'put ''dHMubGVuZ3RoPDIpe2Zvcih2YXIgb3IsZW49b2UodGhpcy5ub2RlKCksVm4pLnR3ZWVuLEluPTAsSm49ZW4ubGVuZ3RoO0luPEpuOysrSW4paWYoKG9yPWVuW0luXSkubmFtZT09PUd0KXJldHVybiBvci52YWx1ZTtyZXR1cm4gbnVsbH1yZXR1cm4gdGhpcy5lYWNoKChudWxsPT1rbj9TZTpJ''@;'; put 'put ''ZSkoVm4sR3Qsa24pKX0sZGVsYXk6ZnVuY3Rpb24gbXQoR3Qpe3ZhciBrbj10aGlzLl9pZDtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLmVhY2goKCJmdW5jdGlvbiI9PXR5cGVvZiBHdD9ndDp3dCkoa24sR3QpKTpvZSh0aGlzLm5vZGUoKSxrbikuZGVsYXl9LGR1cmF0aW9uOmZ1bmN0''@;'; put 'put ''aW9uIGh0KEd0KXt2YXIga249dGhpcy5faWQ7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKCgiZnVuY3Rpb24iPT10eXBlb2YgR3Q/dnQ6QXQpKGtuLEd0KSk6b2UodGhpcy5ub2RlKCksa24pLmR1cmF0aW9ufSxlYXNlOmZ1bmN0aW9uIG9uKEd0KXt2YXIga249dGhpcy5faWQ7''@;'; put 'put ''cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5lYWNoKEJ0KGtuLEd0KSk6b2UodGhpcy5ub2RlKCksa24pLmVhc2V9LGVuZDpmdW5jdGlvbiBLbigpe3ZhciBHdCxrbixWbj10aGlzLGVuPVZuLl9pZCxJbj1Wbi5zaXplKCk7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEpuLG9yKXt2''@;'; put 'put ''YXIgZ3I9e3ZhbHVlOm9yfSxLcj17dmFsdWU6ZnVuY3Rpb24oKXswPT0tLUluJiZKbigpfX07Vm4uZWFjaChmdW5jdGlvbigpe3ZhciBWcj1zZSh0aGlzLGVuKSxpaT1Wci5vbjtpaSE9PUd0JiYoKGtuPShHdD1paSkuY29weSgpKS5fLmNhbmNlbC5wdXNoKGdyKSxrbi5fLmludGVycnVwdC5w''@;'; put 'put ''dXNoKGdyKSxrbi5fLmVuZC5wdXNoKEtyKSksVnIub249a259KX0pfX07dmFyIGtyPXt0aW1lOm51bGwsZGVsYXk6MCxkdXJhdGlvbjoyNTAsZWFzZTpmdW5jdGlvbiBCbihHdCl7cmV0dXJuKChHdCo9Mik8PTE/R3QqR3QqR3Q6KEd0LT0yKSpHdCpHdCsyKS8yfX07ZnVuY3Rpb24gbW4oR3Qs''@;'; put 'put ''a24pe2Zvcih2YXIgVm47IShWbj1HdC5fX3RyYW5zaXRpb24pfHwhKFZuPVZuW2tuXSk7KWlmKCEoR3Q9R3QucGFyZW50Tm9kZSkpcmV0dXJuIGtyLnRpbWU9KDAsRS56TykoKSxrcjtyZXR1cm4gVm59bWUuWlAucHJvdG90eXBlLmludGVycnVwdD1mdW5jdGlvbiB2ZShHdCl7cmV0dXJuIHRo''@;'; put 'put ''aXMuZWFjaChmdW5jdGlvbigpe2RlKHRoaXMsR3QpfSl9LG1lLlpQLnByb3RvdHlwZS50cmFuc2l0aW9uPWZ1bmN0aW9uIHVuKEd0KXt2YXIga24sVm47R3QgaW5zdGFuY2VvZiBzbj8oa249R3QuX2lkLEd0PUd0Ll9uYW1lKTooa249d24oKSwoVm49a3IpLnRpbWU9KDAsRS56TykoKSxHdD1u''@;'; put 'put ''dWxsPT1HdD9udWxsOkd0KyIiKTtmb3IodmFyIGVuPXRoaXMuX2dyb3VwcyxJbj1lbi5sZW5ndGgsSm49MDtKbjxJbjsrK0puKWZvcih2YXIgS3Isb3I9ZW5bSm5dLGdyPW9yLmxlbmd0aCxWcj0wO1ZyPGdyOysrVnIpKEtyPW9yW1ZyXSkmJksoS3IsR3Qsa24sVnIsb3IsVm58fG1uKEtyLGtu''@;'; put 'put ''KSk7cmV0dXJuIG5ldyBzbihlbix0aGlzLl9wYXJlbnRzLEd0LGtuKX07dmFyIGNuPVtudWxsXTtmdW5jdGlvbiBfbihHdCxrbil7dmFyIGVuLEluLFZuPUd0Ll9fdHJhbnNpdGlvbjtpZihWbilmb3IoSW4gaW4ga249bnVsbD09a24/bnVsbDprbisiIixWbilpZigoZW49Vm5bSW5dKS5zdGF0''@;'; put 'put ''ZT4xJiZlbi5uYW1lPT09a24pcmV0dXJuIG5ldyBzbihbW0d0XV0sY24sa24sK0luKTtyZXR1cm4gbnVsbH19LDc1ODI3OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMLnIoSmUpLEwuZChKZSx7em9vbTooKT0+VGUsem9vbUlkZW50aXR5OigpPT5KLHpvb21UcmFuc2Zvcm06KCk9PnNlfSk7''@;'; put 'put ''dmFyIG1lPUwoMjU5MjIpLEI9TCg1MjAxNiksRT1MKDYxNzQ2KTtmdW5jdGlvbiBVKCl7RS5CLnByZXZlbnREZWZhdWx0KCksRS5CLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpfWZ1bmN0aW9uIFEoTWUpe3ZhciBoZT1NZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsTz0oMCxCLlopKE1l''@;'; put 'put ''KS5vbigiZHJhZ3N0YXJ0LmRyYWciLFUsITApOyJvbnNlbGVjdHN0YXJ0ImluIGhlP08ub24oInNlbGVjdHN0YXJ0LmRyYWciLFUsITApOihoZS5fX25vc2VsZWN0PWhlLnN0eWxlLk1velVzZXJTZWxlY3QsaGUuc3R5bGUuTW96VXNlclNlbGVjdD0ibm9uZSIpfWZ1bmN0aW9uIGooTWUsaGUp''@;'; put 'put ''e3ZhciBPPU1lLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx6PSgwLEIuWikoTWUpLm9uKCJkcmFnc3RhcnQuZHJhZyIsbnVsbCk7aGUmJih6Lm9uKCJjbGljay5kcmFnIixVLCEwKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ei5vbigiY2xpY2suZHJhZyIsbnVsbCl9LDApKSwib25zZWxlY3Rz''@;'; put 'put ''dGFydCJpbiBPP3oub24oInNlbGVjdHN0YXJ0LmRyYWciLG51bGwpOihPLnN0eWxlLk1velVzZXJTZWxlY3Q9Ty5fX25vc2VsZWN0LGRlbGV0ZSBPLl9fbm9zZWxlY3QpfXZhciByZT1MKDc2MjU3KSxhZT1MKDY2MDczKSxZPUwoMzAyNTYpLFc9TCg0MDgyMik7ZnVuY3Rpb24gTihNZSl7cmV0''@;'; put 'put ''dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1lfX1mdW5jdGlvbiB0ZShNZSxoZSxPKXt0aGlzLnRhcmdldD1NZSx0aGlzLnR5cGU9aGUsdGhpcy50cmFuc2Zvcm09T31mdW5jdGlvbiBLKE1lLGhlLE8pe3RoaXMuaz1NZSx0aGlzLng9aGUsdGhpcy55PU99Sy5wcm90b3R5cGU9e2NvbnN0cnVjdG9y''@;'; put 'put ''Okssc2NhbGU6ZnVuY3Rpb24oTWUpe3JldHVybiAxPT09TWU/dGhpczpuZXcgSyh0aGlzLmsqTWUsdGhpcy54LHRoaXMueSl9LHRyYW5zbGF0ZTpmdW5jdGlvbihNZSxoZSl7cmV0dXJuIDA9PT1NZSYwPT09aGU/dGhpczpuZXcgSyh0aGlzLmssdGhpcy54K3RoaXMuaypNZSx0aGlzLnkrdGhp''@;'; put 'put ''cy5rKmhlKX0sYXBwbHk6ZnVuY3Rpb24oTWUpe3JldHVybltNZVswXSp0aGlzLmsrdGhpcy54LE1lWzFdKnRoaXMuayt0aGlzLnldfSxhcHBseVg6ZnVuY3Rpb24oTWUpe3JldHVybiBNZSp0aGlzLmsrdGhpcy54fSxhcHBseVk6ZnVuY3Rpb24oTWUpe3JldHVybiBNZSp0aGlzLmsrdGhpcy55''@;'; put 'put ''fSxpbnZlcnQ6ZnVuY3Rpb24oTWUpe3JldHVyblsoTWVbMF0tdGhpcy54KS90aGlzLmssKE1lWzFdLXRoaXMueSkvdGhpcy5rXX0saW52ZXJ0WDpmdW5jdGlvbihNZSl7cmV0dXJuKE1lLXRoaXMueCkvdGhpcy5rfSxpbnZlcnRZOmZ1bmN0aW9uKE1lKXtyZXR1cm4oTWUtdGhpcy55KS90aGlz''@;'; put 'put ''Lmt9LHJlc2NhbGVYOmZ1bmN0aW9uKE1lKXtyZXR1cm4gTWUuY29weSgpLmRvbWFpbihNZS5yYW5nZSgpLm1hcCh0aGlzLmludmVydFgsdGhpcykubWFwKE1lLmludmVydCxNZSkpfSxyZXNjYWxlWTpmdW5jdGlvbihNZSl7cmV0dXJuIE1lLmNvcHkoKS5kb21haW4oTWUucmFuZ2UoKS5tYXAo''@;'; put 'put ''dGhpcy5pbnZlcnRZLHRoaXMpLm1hcChNZS5pbnZlcnQsTWUpKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy54KyIsIit0aGlzLnkrIikgc2NhbGUoIit0aGlzLmsrIikifX07dmFyIEo9bmV3IEsoMSwwLDApO2Z1bmN0aW9uIHNlKE1lKXtmb3IoOyFNZS5f''@;'; put 'put ''X3pvb207KWlmKCEoTWU9TWUucGFyZW50Tm9kZSkpcmV0dXJuIEo7cmV0dXJuIE1lLl9fem9vbX1mdW5jdGlvbiBvZSgpe0UuQi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKX1mdW5jdGlvbiBjZSgpe0UuQi5wcmV2ZW50RGVmYXVsdCgpLEUuQi5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24o''@;'; put 'put ''KX1mdW5jdGlvbiBkZSgpe3JldHVybiFFLkIuY3RybEtleSYmIUUuQi5idXR0b259ZnVuY3Rpb24gdmUoKXt2YXIgTWU9dGhpcztyZXR1cm4gTWUgaW5zdGFuY2VvZiBTVkdFbGVtZW50PyhNZT1NZS5vd25lclNWR0VsZW1lbnR8fE1lKS5oYXNBdHRyaWJ1dGUoInZpZXdCb3giKT9bWyhNZT1N''@;'; put 'put ''ZS52aWV3Qm94LmJhc2VWYWwpLngsTWUueV0sW01lLngrTWUud2lkdGgsTWUueStNZS5oZWlnaHRdXTpbWzAsMF0sW01lLndpZHRoLmJhc2VWYWwudmFsdWUsTWUuaGVpZ2h0LmJhc2VWYWwudmFsdWVdXTpbWzAsMF0sW01lLmNsaWVudFdpZHRoLE1lLmNsaWVudEhlaWdodF1dfWZ1bmN0aW9u''@;'; put 'put ''IEFlKCl7cmV0dXJuIHRoaXMuX196b29tfHxKfWZ1bmN0aW9uIGtlKCl7cmV0dXJuLUUuQi5kZWx0YVkqKDE9PT1FLkIuZGVsdGFNb2RlPy4wNTpFLkIuZGVsdGFNb2RlPzE6LjAwMil9ZnVuY3Rpb24gU2UoKXtyZXR1cm4gbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzfHwib250b3VjaHN0YXJ0''@;'; put 'put ''ImluIHRoaXN9ZnVuY3Rpb24gSWUoTWUsaGUsTyl7dmFyIHo9TWUuaW52ZXJ0WChoZVswXVswXSktT1swXVswXSxlZT1NZS5pbnZlcnRYKGhlWzFdWzBdKS1PWzFdWzBdLG5lPU1lLmludmVydFkoaGVbMF1bMV0pLU9bMF1bMV0seD1NZS5pbnZlcnRZKGhlWzFdWzFdKS1PWzFdWzFdO3JldHVy''@;'; put 'put ''biBNZS50cmFuc2xhdGUoZWU+ej8oeitlZSkvMjpNYXRoLm1pbigwLHopfHxNYXRoLm1heCgwLGVlKSx4Pm5lPyhuZSt4KS8yOk1hdGgubWluKDAsbmUpfHxNYXRoLm1heCgwLHgpKX1mdW5jdGlvbiBUZSgpe3ZhciBTLEYsTWU9ZGUsaGU9dmUsTz1JZSx6PWtlLGVlPVNlLG5lPVswLDEvMF0s''@;'; put 'put ''eD1bWy0xLzAsLTEvMF0sWzEvMCwxLzBdXSxQPTI1MCxWPXJlLlosVD0oMCxtZS5aKSgic3RhcnQiLCJ6b29tIiwiZW5kIiksRGU9MDtmdW5jdGlvbiBQZShldCl7ZXQucHJvcGVydHkoIl9fem9vbSIsQWUpLm9uKCJ3aGVlbC56b29tIixBdCkub24oIm1vdXNlZG93bi56b29tIixodCkub24o''@;'; put 'put ''ImRibGNsaWNrLnpvb20iLEJ0KS5maWx0ZXIoZWUpLm9uKCJ0b3VjaHN0YXJ0Lnpvb20iLG9uKS5vbigidG91Y2htb3ZlLnpvb20iLF90KS5vbigidG91Y2hlbmQuem9vbSB0b3VjaGNhbmNlbC56b29tIix0dCkuc3R5bGUoInRvdWNoLWFjdGlvbiIsIm5vbmUiKS5zdHlsZSgiLXdlYmtpdC10''@;'; put 'put ''YXAtaGlnaGxpZ2h0LWNvbG9yIiwicmdiYSgwLDAsMCwwKSIpfWZ1bmN0aW9uIFFlKGV0LGx0KXtyZXR1cm4obHQ9TWF0aC5tYXgobmVbMF0sTWF0aC5taW4obmVbMV0sbHQpKSk9PT1ldC5rP2V0Om5ldyBLKGx0LGV0LngsZXQueSl9ZnVuY3Rpb24gJGUoZXQsbHQsTHQpe3ZhciBDdD1sdFsw''@;'; put 'put ''XS1MdFswXSpldC5rLGZ0PWx0WzFdLUx0WzFdKmV0Lms7cmV0dXJuIEN0PT09ZXQueCYmZnQ9PT1ldC55P2V0Om5ldyBLKGV0LmssQ3QsZnQpfWZ1bmN0aW9uIGd0KGV0KXtyZXR1cm5bKCtldFswXVswXSsgK2V0WzFdWzBdKS8yLCgrZXRbMF1bMV0rICtldFsxXVsxXSkvMl19ZnVuY3Rpb24g''@;'; put 'put ''d3QoZXQsbHQsTHQpe2V0Lm9uKCJzdGFydC56b29tIixmdW5jdGlvbigpe210KHRoaXMsYXJndW1lbnRzKS5zdGFydCgpfSkub24oImludGVycnVwdC56b29tIGVuZC56b29tIixmdW5jdGlvbigpe210KHRoaXMsYXJndW1lbnRzKS5lbmQoKX0pLnR3ZWVuKCJ6b29tIixmdW5jdGlvbigpe3Zh''@;'; put 'put ''ciBDdD10aGlzLGZ0PWFyZ3VtZW50cyxIdD1tdChDdCxmdCksR2U9aGUuYXBwbHkoQ3QsZnQpLFVlPW51bGw9PUx0P2d0KEdlKToiZnVuY3Rpb24iPT10eXBlb2YgTHQ/THQuYXBwbHkoQ3QsZnQpOkx0LHl0PU1hdGgubWF4KEdlWzFdWzBdLUdlWzBdWzBdLEdlWzFdWzFdLUdlWzBdWzFdKSxq''@;'; put 'put ''dD1DdC5fX3pvb20sSnQ9ImZ1bmN0aW9uIj09dHlwZW9mIGx0P2x0LmFwcGx5KEN0LGZ0KTpsdCxnbj1WKGp0LmludmVydChVZSkuY29uY2F0KHl0L2p0LmspLEp0LmludmVydChVZSkuY29uY2F0KHl0L0p0LmspKTtyZXR1cm4gZnVuY3Rpb24oZG4pe2lmKDE9PT1kbilkbj1KdDtlbHNle3Zh''@;'; put 'put ''ciB5bj1nbihkbiksbG49eXQveW5bMl07ZG49bmV3IEsobG4sVWVbMF0teW5bMF0qbG4sVWVbMV0teW5bMV0qbG4pfUh0Lnpvb20obnVsbCxkbil9fSl9ZnVuY3Rpb24gbXQoZXQsbHQsTHQpe3JldHVybiFMdCYmZXQuX196b29taW5nfHxuZXcgdnQoZXQsbHQpfWZ1bmN0aW9uIHZ0KGV0LGx0''@;'; put 'put ''KXt0aGlzLnRoYXQ9ZXQsdGhpcy5hcmdzPWx0LHRoaXMuYWN0aXZlPTAsdGhpcy5leHRlbnQ9aGUuYXBwbHkoZXQsbHQpLHRoaXMudGFwcz0wfWZ1bmN0aW9uIEF0KCl7aWYoTWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2YXIgZXQ9bXQodGhpcyxhcmd1bWVudHMpLGx0PXRoaXMuX196b29t''@;'; put 'put ''LEx0PU1hdGgubWF4KG5lWzBdLE1hdGgubWluKG5lWzFdLGx0LmsqTWF0aC5wb3coMix6LmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpKSxDdD0oMCxhZS5aKSh0aGlzKTtpZihldC53aGVlbCkoZXQubW91c2VbMF1bMF0hPT1DdFswXXx8ZXQubW91c2VbMF1bMV0hPT1DdFsxXSkmJihldC5tb3Vz''@;'; put 'put ''ZVsxXT1sdC5pbnZlcnQoZXQubW91c2VbMF09Q3QpKSxjbGVhclRpbWVvdXQoZXQud2hlZWwpO2Vsc2V7aWYobHQuaz09PUx0KXJldHVybjtldC5tb3VzZT1bQ3QsbHQuaW52ZXJ0KEN0KV0sKDAsVy5pbnRlcnJ1cHQpKHRoaXMpLGV0LnN0YXJ0KCl9Y2UoKSxldC53aGVlbD1zZXRUaW1lb3V0''@;'; put 'put ''KGZ0LDE1MCksZXQuem9vbSgibW91c2UiLE8oJGUoUWUobHQsTHQpLGV0Lm1vdXNlWzBdLGV0Lm1vdXNlWzFdKSxldC5leHRlbnQseCkpfWZ1bmN0aW9uIGZ0KCl7ZXQud2hlZWw9bnVsbCxldC5lbmQoKX19ZnVuY3Rpb24gaHQoKXtpZighRiYmTWUuYXBwbHkodGhpcyxhcmd1bWVudHMpKXt2''@;'; put 'put ''YXIgZXQ9bXQodGhpcyxhcmd1bWVudHMsITApLGx0PSgwLEIuWikoRS5CLnZpZXcpLm9uKCJtb3VzZW1vdmUuem9vbSIsSHQsITApLm9uKCJtb3VzZXVwLnpvb20iLEdlLCEwKSxMdD0oMCxhZS5aKSh0aGlzKSxDdD1FLkIuY2xpZW50WCxmdD1FLkIuY2xpZW50WTtRKEUuQi52aWV3KSxvZSgp''@;'; put 'put ''LGV0Lm1vdXNlPVtMdCx0aGlzLl9fem9vbS5pbnZlcnQoTHQpXSwoMCxXLmludGVycnVwdCkodGhpcyksZXQuc3RhcnQoKX1mdW5jdGlvbiBIdCgpe2lmKGNlKCksIWV0Lm1vdmVkKXt2YXIgVWU9RS5CLmNsaWVudFgtQ3QseXQ9RS5CLmNsaWVudFktZnQ7ZXQubW92ZWQ9VWUqVWUreXQqeXQ+''@;'; put 'put ''RGV9ZXQuem9vbSgibW91c2UiLE8oJGUoZXQudGhhdC5fX3pvb20sZXQubW91c2VbMF09KDAsYWUuWikoZXQudGhhdCksZXQubW91c2VbMV0pLGV0LmV4dGVudCx4KSl9ZnVuY3Rpb24gR2UoKXtsdC5vbigibW91c2Vtb3ZlLnpvb20gbW91c2V1cC56b29tIixudWxsKSxqKEUuQi52aWV3LGV0''@;'; put 'put ''Lm1vdmVkKSxjZSgpLGV0LmVuZCgpfX1mdW5jdGlvbiBCdCgpe2lmKE1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl7dmFyIGV0PXRoaXMuX196b29tLGx0PSgwLGFlLlopKHRoaXMpLEx0PWV0LmludmVydChsdCksQ3Q9ZXQuayooRS5CLnNoaWZ0S2V5Py41OjIpLGZ0PU8oJGUoUWUoZXQsQ3Qp''@;'; put 'put ''LGx0LEx0KSxoZS5hcHBseSh0aGlzLGFyZ3VtZW50cykseCk7Y2UoKSxQPjA/KDAsQi5aKSh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oUCkuY2FsbCh3dCxmdCxsdCk6KDAsQi5aKSh0aGlzKS5jYWxsKFBlLnRyYW5zZm9ybSxmdCl9fWZ1bmN0aW9uIG9uKCl7aWYoTWUuYXBwbHkodGhp''@;'; put 'put ''cyxhcmd1bWVudHMpKXt2YXIgQ3QsZnQsSHQsR2UsZXQ9RS5CLnRvdWNoZXMsbHQ9ZXQubGVuZ3RoLEx0PW10KHRoaXMsYXJndW1lbnRzLEUuQi5jaGFuZ2VkVG91Y2hlcy5sZW5ndGg9PT1sdCk7Zm9yKG9lKCksZnQ9MDtmdDxsdDsrK2Z0KUdlPVtHZT0oMCxZLlopKHRoaXMsZXQsKEh0PWV0''@;'; put 'put ''W2Z0XSkuaWRlbnRpZmllciksdGhpcy5fX3pvb20uaW52ZXJ0KEdlKSxIdC5pZGVudGlmaWVyXSxMdC50b3VjaDA/IUx0LnRvdWNoMSYmTHQudG91Y2gwWzJdIT09R2VbMl0mJihMdC50b3VjaDE9R2UsTHQudGFwcz0wKTooTHQudG91Y2gwPUdlLEN0PSEwLEx0LnRhcHM9MSshIVMpO1MmJihT''@;'; put 'put ''PWNsZWFyVGltZW91dChTKSksQ3QmJihMdC50YXBzPDImJihTPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtTPW51bGx9LDUwMCkpLCgwLFcuaW50ZXJydXB0KSh0aGlzKSxMdC5zdGFydCgpKX19ZnVuY3Rpb24gX3QoKXtpZih0aGlzLl9fem9vbWluZyl7dmFyIEN0LGZ0LEh0LEdlLGV0PW10KHRo''@;'; put 'put ''aXMsYXJndW1lbnRzKSxsdD1FLkIuY2hhbmdlZFRvdWNoZXMsTHQ9bHQubGVuZ3RoO2ZvcihjZSgpLFMmJihTPWNsZWFyVGltZW91dChTKSksZXQudGFwcz0wLEN0PTA7Q3Q8THQ7KytDdClIdD0oMCxZLlopKHRoaXMsbHQsKGZ0PWx0W0N0XSkuaWRlbnRpZmllciksZXQudG91Y2gwJiZldC50''@;'; put 'put ''b3VjaDBbMl09PT1mdC5pZGVudGlmaWVyP2V0LnRvdWNoMFswXT1IdDpldC50b3VjaDEmJmV0LnRvdWNoMVsyXT09PWZ0LmlkZW50aWZpZXImJihldC50b3VjaDFbMF09SHQpO2lmKGZ0PWV0LnRoYXQuX196b29tLGV0LnRvdWNoMSl7dmFyIFVlPWV0LnRvdWNoMFswXSx5dD1ldC50b3VjaDBb''@;'; put 'put ''MV0sanQ9ZXQudG91Y2gxWzBdLEp0PWV0LnRvdWNoMVsxXSxnbj0oZ249anRbMF0tVWVbMF0pKmduKyhnbj1qdFsxXS1VZVsxXSkqZ24sZG49KGRuPUp0WzBdLXl0WzBdKSpkbisoZG49SnRbMV0teXRbMV0pKmRuO2Z0PVFlKGZ0LE1hdGguc3FydChnbi9kbikpLEh0PVsoVWVbMF0ranRbMF0p''@;'; put 'put ''LzIsKFVlWzFdK2p0WzFdKS8yXSxHZT1bKHl0WzBdK0p0WzBdKS8yLCh5dFsxXStKdFsxXSkvMl19ZWxzZXtpZighZXQudG91Y2gwKXJldHVybjtIdD1ldC50b3VjaDBbMF0sR2U9ZXQudG91Y2gwWzFdfWV0Lnpvb20oInRvdWNoIixPKCRlKGZ0LEh0LEdlKSxldC5leHRlbnQseCkpfX1mdW5j''@;'; put 'put ''dGlvbiB0dCgpe2lmKHRoaXMuX196b29taW5nKXt2YXIgQ3QsZnQsZXQ9bXQodGhpcyxhcmd1bWVudHMpLGx0PUUuQi5jaGFuZ2VkVG91Y2hlcyxMdD1sdC5sZW5ndGg7Zm9yKG9lKCksRiYmY2xlYXJUaW1lb3V0KEYpLEY9c2V0VGltZW91dChmdW5jdGlvbigpe0Y9bnVsbH0sNTAwKSxDdD0w''@;'; put 'put ''O0N0PEx0OysrQ3QpZnQ9bHRbQ3RdLGV0LnRvdWNoMCYmZXQudG91Y2gwWzJdPT09ZnQuaWRlbnRpZmllcj9kZWxldGUgZXQudG91Y2gwOmV0LnRvdWNoMSYmZXQudG91Y2gxWzJdPT09ZnQuaWRlbnRpZmllciYmZGVsZXRlIGV0LnRvdWNoMTtpZihldC50b3VjaDEmJiFldC50b3VjaDAmJihl''@;'; put 'put ''dC50b3VjaDA9ZXQudG91Y2gxLGRlbGV0ZSBldC50b3VjaDEpLGV0LnRvdWNoMClldC50b3VjaDBbMV09dGhpcy5fX3pvb20uaW52ZXJ0KGV0LnRvdWNoMFswXSk7ZWxzZSBpZihldC5lbmQoKSwyPT09ZXQudGFwcyl7dmFyIEh0PSgwLEIuWikodGhpcykub24oImRibGNsaWNrLnpvb20iKTtI''@;'; put 'put ''dCYmSHQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19cmV0dXJuIFBlLnRyYW5zZm9ybT1mdW5jdGlvbihldCxsdCxMdCl7dmFyIEN0PWV0LnNlbGVjdGlvbj9ldC5zZWxlY3Rpb24oKTpldDtDdC5wcm9wZXJ0eSgiX196b29tIixBZSksZXQhPT1DdD93dChldCxsdCxMdCk6Q3QuaW50ZXJydXB0''@;'; put 'put ''KCkuZWFjaChmdW5jdGlvbigpe210KHRoaXMsYXJndW1lbnRzKS5zdGFydCgpLnpvb20obnVsbCwiZnVuY3Rpb24iPT10eXBlb2YgbHQ/bHQuYXBwbHkodGhpcyxhcmd1bWVudHMpOmx0KS5lbmQoKX0pfSxQZS5zY2FsZUJ5PWZ1bmN0aW9uKGV0LGx0LEx0KXtQZS5zY2FsZVRvKGV0LGZ1bmN0''@;'; put 'put ''aW9uKCl7dmFyIEN0PXRoaXMuX196b29tLmssZnQ9ImZ1bmN0aW9uIj09dHlwZW9mIGx0P2x0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTpsdDtyZXR1cm4gQ3QqZnR9LEx0KX0sUGUuc2NhbGVUbz1mdW5jdGlvbihldCxsdCxMdCl7UGUudHJhbnNmb3JtKGV0LGZ1bmN0aW9uKCl7dmFyIEN0PWhl''@;'; put 'put ''LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxmdD10aGlzLl9fem9vbSxIdD1udWxsPT1MdD9ndChDdCk6ImZ1bmN0aW9uIj09dHlwZW9mIEx0P0x0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTpMdCxHZT1mdC5pbnZlcnQoSHQpLFVlPSJmdW5jdGlvbiI9PXR5cGVvZiBsdD9sdC5hcHBseSh0aGlzLGFy''@;'; put 'put ''Z3VtZW50cyk6bHQ7cmV0dXJuIE8oJGUoUWUoZnQsVWUpLEh0LEdlKSxDdCx4KX0sTHQpfSxQZS50cmFuc2xhdGVCeT1mdW5jdGlvbihldCxsdCxMdCl7UGUudHJhbnNmb3JtKGV0LGZ1bmN0aW9uKCl7cmV0dXJuIE8odGhpcy5fX3pvb20udHJhbnNsYXRlKCJmdW5jdGlvbiI9PXR5cGVvZiBs''@;'; put 'put ''dD9sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6bHQsImZ1bmN0aW9uIj09dHlwZW9mIEx0P0x0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTpMdCksaGUuYXBwbHkodGhpcyxhcmd1bWVudHMpLHgpfSl9LFBlLnRyYW5zbGF0ZVRvPWZ1bmN0aW9uKGV0LGx0LEx0LEN0KXtQZS50cmFuc2Zvcm0oZXQs''@;'; put 'put ''ZnVuY3Rpb24oKXt2YXIgZnQ9aGUuYXBwbHkodGhpcyxhcmd1bWVudHMpLEh0PXRoaXMuX196b29tLEdlPW51bGw9PUN0P2d0KGZ0KToiZnVuY3Rpb24iPT10eXBlb2YgQ3Q/Q3QuYXBwbHkodGhpcyxhcmd1bWVudHMpOkN0O3JldHVybiBPKEoudHJhbnNsYXRlKEdlWzBdLEdlWzFdKS5zY2Fs''@;'; put 'put ''ZShIdC5rKS50cmFuc2xhdGUoImZ1bmN0aW9uIj09dHlwZW9mIGx0Py1sdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk6LWx0LCJmdW5jdGlvbiI9PXR5cGVvZiBMdD8tTHQuYXBwbHkodGhpcyxhcmd1bWVudHMpOi1MdCksZnQseCl9LEN0KX0sdnQucHJvdG90eXBlPXtzdGFydDpmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiAxPT0rK3RoaXMuYWN0aXZlJiYodGhpcy50aGF0Ll9fem9vbWluZz10aGlzLHRoaXMuZW1pdCgic3RhcnQiKSksdGhpc30sem9vbTpmdW5jdGlvbihldCxsdCl7cmV0dXJuIHRoaXMubW91c2UmJiJtb3VzZSIhPT1ldCYmKHRoaXMubW91c2VbMV09bHQuaW52ZXJ0KHRoaXMubW91''@;'; put 'put ''c2VbMF0pKSx0aGlzLnRvdWNoMCYmInRvdWNoIiE9PWV0JiYodGhpcy50b3VjaDBbMV09bHQuaW52ZXJ0KHRoaXMudG91Y2gwWzBdKSksdGhpcy50b3VjaDEmJiJ0b3VjaCIhPT1ldCYmKHRoaXMudG91Y2gxWzFdPWx0LmludmVydCh0aGlzLnRvdWNoMVswXSkpLHRoaXMudGhhdC5fX3pvb209''@;'; put 'put ''bHQsdGhpcy5lbWl0KCJ6b29tIiksdGhpc30sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PS0tdGhpcy5hY3RpdmUmJihkZWxldGUgdGhpcy50aGF0Ll9fem9vbWluZyx0aGlzLmVtaXQoImVuZCIpKSx0aGlzfSxlbWl0OmZ1bmN0aW9uKGV0KXsoMCxFLl9IKShuZXcgdGUoUGUsZXQsdGhpcy50''@;'; put 'put ''aGF0Ll9fem9vbSksVC5hcHBseSxULFtldCx0aGlzLnRoYXQsdGhpcy5hcmdzXSl9fSxQZS53aGVlbERlbHRhPWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oej0iZnVuY3Rpb24iPT10eXBlb2YgZXQ/ZXQ6TigrZXQpLFBlKTp6fSxQZS5maWx0ZXI9ZnVuY3Rpb24oZXQp''@;'; put 'put ''e3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNZT0iZnVuY3Rpb24iPT10eXBlb2YgZXQ/ZXQ6TighIWV0KSxQZSk6TWV9LFBlLnRvdWNoYWJsZT1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGVlPSJmdW5jdGlvbiI9PXR5cGVvZiBldD9ldDpOKCEhZXQpLFBlKTplZX0s''@;'; put 'put ''UGUuZXh0ZW50PWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaGU9ImZ1bmN0aW9uIj09dHlwZW9mIGV0P2V0Ok4oW1srZXRbMF1bMF0sK2V0WzBdWzFdXSxbK2V0WzFdWzBdLCtldFsxXVsxXV1dKSxQZSk6aGV9LFBlLnNjYWxlRXh0ZW50PWZ1bmN0aW9uKGV0KXtyZXR1''@;'; put 'put ''cm4gYXJndW1lbnRzLmxlbmd0aD8obmVbMF09K2V0WzBdLG5lWzFdPStldFsxXSxQZSk6W25lWzBdLG5lWzFdXX0sUGUudHJhbnNsYXRlRXh0ZW50PWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeFswXVswXT0rZXRbMF1bMF0seFsxXVswXT0rZXRbMV1bMF0seFswXVsx''@;'; put 'put ''XT0rZXRbMF1bMV0seFsxXVsxXT0rZXRbMV1bMV0sUGUpOltbeFswXVswXSx4WzBdWzFdXSxbeFsxXVswXSx4WzFdWzFdXV19LFBlLmNvbnN0cmFpbj1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE89ZXQsUGUpOk99LFBlLmR1cmF0aW9uPWZ1bmN0aW9uKGV0KXtyZXR1''@;'; put 'put ''cm4gYXJndW1lbnRzLmxlbmd0aD8oUD0rZXQsUGUpOlB9LFBlLmludGVycG9sYXRlPWZ1bmN0aW9uKGV0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oVj1ldCxQZSk6Vn0sUGUub249ZnVuY3Rpb24oKXt2YXIgZXQ9VC5vbi5hcHBseShULGFyZ3VtZW50cyk7cmV0dXJuIGV0PT09VD9QZTpl''@;'; put 'put ''dH0sUGUuY2xpY2tEaXN0YW5jZT1mdW5jdGlvbihldCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KERlPShldD0rZXQpKmV0LFBlKTpNYXRoLnNxcnQoRGUpfSxQZX1zZS5wcm90b3R5cGU9Sy5wcm90b3R5cGV9LDczNjg0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtKZS51dGlscz1MKDc3''@;'; put 'put ''NDUxKSxKZS5DaXBoZXI9TCgzODE3MCksSmUuREVTPUwoNDYzMSksSmUuQ0JDPUwoNzk0NTQpLEplLkVERT1MKDIxODYyKX0sNzk0NTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMyMzkxKSxCPUwoODM4OTQpLEU9e307ZnVuY3Rpb24gRWUoUSl7bWUuZXF1YWwoUS5sZW5n''@;'; put 'put ''dGgsOCwiSW52YWxpZCBJViBsZW5ndGgiKSx0aGlzLml2PW5ldyBBcnJheSg4KTtmb3IodmFyIGo9MDtqPHRoaXMuaXYubGVuZ3RoO2orKyl0aGlzLml2W2pdPVFbal19SmUuaW5zdGFudGlhdGU9ZnVuY3Rpb24gVShRKXtmdW5jdGlvbiBqKFcpe1EuY2FsbCh0aGlzLFcpLHRoaXMuX2NiY0lu''@;'; put 'put ''aXQoKX1CKGosUSk7Zm9yKHZhciByZT1PYmplY3Qua2V5cyhFKSxhZT0wO2FlPHJlLmxlbmd0aDthZSsrKXt2YXIgWT1yZVthZV07ai5wcm90b3R5cGVbWV09RVtZXX1yZXR1cm4gai5jcmVhdGU9ZnVuY3Rpb24oTil7cmV0dXJuIG5ldyBqKE4pfSxqfSxFLl9jYmNJbml0PWZ1bmN0aW9uKCl7''@;'; put 'put ''dmFyIGo9bmV3IEVlKHRoaXMub3B0aW9ucy5pdik7dGhpcy5fY2JjU3RhdGU9an0sRS5fdXBkYXRlPWZ1bmN0aW9uKGoscmUsYWUsWSl7dmFyIE49dGhpcy5jb25zdHJ1Y3Rvci5zdXBlcl8ucHJvdG90eXBlLHRlPXRoaXMuX2NiY1N0YXRlLml2O2lmKCJlbmNyeXB0Ij09PXRoaXMudHlwZSl7''@;'; put 'put ''Zm9yKHZhciBLPTA7Szx0aGlzLmJsb2NrU2l6ZTtLKyspdGVbS11ePWpbcmUrS107Zm9yKE4uX3VwZGF0ZS5jYWxsKHRoaXMsdGUsMCxhZSxZKSxLPTA7Szx0aGlzLmJsb2NrU2l6ZTtLKyspdGVbS109YWVbWStLXX1lbHNle2ZvcihOLl91cGRhdGUuY2FsbCh0aGlzLGoscmUsYWUsWSksSz0w''@;'; put 'put ''O0s8dGhpcy5ibG9ja1NpemU7SysrKWFlW1krS11ePXRlW0tdO2ZvcihLPTA7Szx0aGlzLmJsb2NrU2l6ZTtLKyspdGVbS109altyZStLXX19fSwzODE3MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzIzOTEpO2Z1bmN0aW9uIEIoRSl7dGhpcy5vcHRpb25zPUUsdGhpcy50''@;'; put 'put ''eXBlPXRoaXMub3B0aW9ucy50eXBlLHRoaXMuYmxvY2tTaXplPTgsdGhpcy5faW5pdCgpLHRoaXMuYnVmZmVyPW5ldyBBcnJheSh0aGlzLmJsb2NrU2l6ZSksdGhpcy5idWZmZXJPZmY9MH1YZS5leHBvcnRzPUIsQi5wcm90b3R5cGUuX2luaXQ9ZnVuY3Rpb24oKXt9LEIucHJvdG90eXBlLnVw''@;'; put 'put ''ZGF0ZT1mdW5jdGlvbihFZSl7cmV0dXJuIDA9PT1FZS5sZW5ndGg/W106ImRlY3J5cHQiPT09dGhpcy50eXBlP3RoaXMuX3VwZGF0ZURlY3J5cHQoRWUpOnRoaXMuX3VwZGF0ZUVuY3J5cHQoRWUpfSxCLnByb3RvdHlwZS5fYnVmZmVyPWZ1bmN0aW9uKEVlLFUpe2Zvcih2YXIgUT1NYXRoLm1p''@;'; put 'put ''bih0aGlzLmJ1ZmZlci5sZW5ndGgtdGhpcy5idWZmZXJPZmYsRWUubGVuZ3RoLVUpLGo9MDtqPFE7aisrKXRoaXMuYnVmZmVyW3RoaXMuYnVmZmVyT2ZmK2pdPUVlW1Ural07cmV0dXJuIHRoaXMuYnVmZmVyT2ZmKz1RLFF9LEIucHJvdG90eXBlLl9mbHVzaEJ1ZmZlcj1mdW5jdGlvbihFZSxV''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsRWUsVSksdGhpcy5idWZmZXJPZmY9MCx0aGlzLmJsb2NrU2l6ZX0sQi5wcm90b3R5cGUuX3VwZGF0ZUVuY3J5cHQ9ZnVuY3Rpb24oRWUpe3ZhciBVPTAsUT0wLHJlPW5ldyBBcnJheSgoKHRoaXMuYnVmZmVyT2ZmK0VlLmxlbmd0''@;'; put 'put ''aCkvdGhpcy5ibG9ja1NpemV8MCkqdGhpcy5ibG9ja1NpemUpOzAhPT10aGlzLmJ1ZmZlck9mZiYmKFUrPXRoaXMuX2J1ZmZlcihFZSxVKSx0aGlzLmJ1ZmZlck9mZj09PXRoaXMuYnVmZmVyLmxlbmd0aCYmKFErPXRoaXMuX2ZsdXNoQnVmZmVyKHJlLFEpKSk7Zm9yKHZhciBhZT1FZS5sZW5n''@;'; put 'put ''dGgtKEVlLmxlbmd0aC1VKSV0aGlzLmJsb2NrU2l6ZTtVPGFlO1UrPXRoaXMuYmxvY2tTaXplKXRoaXMuX3VwZGF0ZShFZSxVLHJlLFEpLFErPXRoaXMuYmxvY2tTaXplO2Zvcig7VTxFZS5sZW5ndGg7VSsrLHRoaXMuYnVmZmVyT2ZmKyspdGhpcy5idWZmZXJbdGhpcy5idWZmZXJPZmZdPUVl''@;'; put 'put ''W1VdO3JldHVybiByZX0sQi5wcm90b3R5cGUuX3VwZGF0ZURlY3J5cHQ9ZnVuY3Rpb24oRWUpe2Zvcih2YXIgVT0wLFE9MCxqPU1hdGguY2VpbCgodGhpcy5idWZmZXJPZmYrRWUubGVuZ3RoKS90aGlzLmJsb2NrU2l6ZSktMSxyZT1uZXcgQXJyYXkoaip0aGlzLmJsb2NrU2l6ZSk7aj4wO2ot''@;'; put 'put ''LSlVKz10aGlzLl9idWZmZXIoRWUsVSksUSs9dGhpcy5fZmx1c2hCdWZmZXIocmUsUSk7cmV0dXJuIFUrPXRoaXMuX2J1ZmZlcihFZSxVKSxyZX0sQi5wcm90b3R5cGUuZmluYWw9ZnVuY3Rpb24oRWUpe3ZhciBVLFE7cmV0dXJuIEVlJiYoVT10aGlzLnVwZGF0ZShFZSkpLFE9ImVuY3J5cHQi''@;'; put 'put ''PT09dGhpcy50eXBlP3RoaXMuX2ZpbmFsRW5jcnlwdCgpOnRoaXMuX2ZpbmFsRGVjcnlwdCgpLFU/VS5jb25jYXQoUSk6UX0sQi5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbihFZSxVKXtpZigwPT09VSlyZXR1cm4hMTtmb3IoO1U8RWUubGVuZ3RoOylFZVtVKytdPTA7cmV0dXJuITB9LEIucHJv''@;'; put 'put ''dG90eXBlLl9maW5hbEVuY3J5cHQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fcGFkKHRoaXMuYnVmZmVyLHRoaXMuYnVmZmVyT2ZmKSlyZXR1cm5bXTt2YXIgRWU9bmV3IEFycmF5KHRoaXMuYmxvY2tTaXplKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHRoaXMuYnVmZmVyLDAsRWUsMCksRWV9LEIucHJv''@;'; put 'put ''dG90eXBlLl91bnBhZD1mdW5jdGlvbihFZSl7cmV0dXJuIEVlfSxCLnByb3RvdHlwZS5fZmluYWxEZWNyeXB0PWZ1bmN0aW9uKCl7bWUuZXF1YWwodGhpcy5idWZmZXJPZmYsdGhpcy5ibG9ja1NpemUsIk5vdCBlbm91Z2ggZGF0YSB0byBkZWNyeXB0Iik7dmFyIEVlPW5ldyBBcnJheSh0aGlz''@;'; put 'put ''LmJsb2NrU2l6ZSk7cmV0dXJuIHRoaXMuX2ZsdXNoQnVmZmVyKEVlLDApLHRoaXMuX3VucGFkKEVlKX19LDQ2MzE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMyMzkxKSxCPUwoODM4OTQpLEU9TCg3NzQ1MSksRWU9TCgzODE3MCk7ZnVuY3Rpb24gVSgpe3RoaXMudG1wPW5l''@;'; put 'put ''dyBBcnJheSgyKSx0aGlzLmtleXM9bnVsbH1mdW5jdGlvbiBRKHJlKXtFZS5jYWxsKHRoaXMscmUpO3ZhciBhZT1uZXcgVTt0aGlzLl9kZXNTdGF0ZT1hZSx0aGlzLmRlcml2ZUtleXMoYWUscmUua2V5KX1CKFEsRWUpLFhlLmV4cG9ydHM9USxRLmNyZWF0ZT1mdW5jdGlvbihhZSl7cmV0dXJu''@;'; put 'put ''IG5ldyBRKGFlKX07dmFyIGo9WzEsMSwyLDIsMiwyLDIsMiwxLDIsMiwyLDIsMiwyLDFdO1EucHJvdG90eXBlLmRlcml2ZUtleXM9ZnVuY3Rpb24oYWUsWSl7YWUua2V5cz1uZXcgQXJyYXkoMzIpLG1lLmVxdWFsKFkubGVuZ3RoLHRoaXMuYmxvY2tTaXplLCJJbnZhbGlkIGtleSBsZW5ndGgi''@;'; put 'put ''KTt2YXIgVz1FLnJlYWRVSW50MzJCRShZLDApLE49RS5yZWFkVUludDMyQkUoWSw0KTtFLnBjMShXLE4sYWUudG1wLDApLFc9YWUudG1wWzBdLE49YWUudG1wWzFdO2Zvcih2YXIgdGU9MDt0ZTxhZS5rZXlzLmxlbmd0aDt0ZSs9Mil7dmFyIEs9alt0ZT4+PjFdO1c9RS5yMjhzaGwoVyxLKSxO''@;'; put 'put ''PUUucjI4c2hsKE4sSyksRS5wYzIoVyxOLGFlLmtleXMsdGUpfX0sUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihhZSxZLFcsTil7dmFyIHRlPXRoaXMuX2Rlc1N0YXRlLEs9RS5yZWFkVUludDMyQkUoYWUsWSksSj1FLnJlYWRVSW50MzJCRShhZSxZKzQpO0UuaXAoSyxKLHRlLnRtcCww''@;'; put 'put ''KSxLPXRlLnRtcFswXSxKPXRlLnRtcFsxXSwiZW5jcnlwdCI9PT10aGlzLnR5cGU/dGhpcy5fZW5jcnlwdCh0ZSxLLEosdGUudG1wLDApOnRoaXMuX2RlY3J5cHQodGUsSyxKLHRlLnRtcCwwKSxKPXRlLnRtcFsxXSxFLndyaXRlVUludDMyQkUoVyxLPXRlLnRtcFswXSxOKSxFLndyaXRlVUlu''@;'; put 'put ''dDMyQkUoVyxKLE4rNCl9LFEucHJvdG90eXBlLl9wYWQ9ZnVuY3Rpb24oYWUsWSl7Zm9yKHZhciBXPWFlLmxlbmd0aC1ZLE49WTtOPGFlLmxlbmd0aDtOKyspYWVbTl09VztyZXR1cm4hMH0sUS5wcm90b3R5cGUuX3VucGFkPWZ1bmN0aW9uKGFlKXtmb3IodmFyIFk9YWVbYWUubGVuZ3RoLTFd''@;'; put 'put ''LFc9YWUubGVuZ3RoLVk7VzxhZS5sZW5ndGg7VysrKW1lLmVxdWFsKGFlW1ddLFkpO3JldHVybiBhZS5zbGljZSgwLGFlLmxlbmd0aC1ZKX0sUS5wcm90b3R5cGUuX2VuY3J5cHQ9ZnVuY3Rpb24oYWUsWSxXLE4sdGUpe2Zvcih2YXIgSz1ZLEo9VyxzZT0wO3NlPGFlLmtleXMubGVuZ3RoO3Nl''@;'; put 'put ''Kz0yKXt2YXIgb2U9YWUua2V5c1tzZV0sY2U9YWUua2V5c1tzZSsxXTtFLmV4cGFuZChKLGFlLnRtcCwwKTt2YXIgZGU9RS5zdWJzdGl0dXRlKG9lXj1hZS50bXBbMF0sY2VePWFlLnRtcFsxXSksQWU9SjtKPShLXkUucGVybXV0ZShkZSkpPj4+MCxLPUFlfUUucmlwKEosSyxOLHRlKX0sUS5w''@;'; put 'put ''cm90b3R5cGUuX2RlY3J5cHQ9ZnVuY3Rpb24oYWUsWSxXLE4sdGUpe2Zvcih2YXIgSz1XLEo9WSxzZT1hZS5rZXlzLmxlbmd0aC0yO3NlPj0wO3NlLT0yKXt2YXIgb2U9YWUua2V5c1tzZV0sY2U9YWUua2V5c1tzZSsxXTtFLmV4cGFuZChLLGFlLnRtcCwwKTt2YXIgZGU9RS5zdWJzdGl0dXRl''@;'; put 'put ''KG9lXj1hZS50bXBbMF0sY2VePWFlLnRtcFsxXSksQWU9SztLPShKXkUucGVybXV0ZShkZSkpPj4+MCxKPUFlfUUucmlwKEssSixOLHRlKX19LDIxODYyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzMjM5MSksQj1MKDgzODk0KSxFPUwoMzgxNzApLEVlPUwoNDYzMSk7ZnVu''@;'; put 'put ''Y3Rpb24gVShqLHJlKXttZS5lcXVhbChyZS5sZW5ndGgsMjQsIkludmFsaWQga2V5IGxlbmd0aCIpO3ZhciBhZT1yZS5zbGljZSgwLDgpLFk9cmUuc2xpY2UoOCwxNiksVz1yZS5zbGljZSgxNiwyNCk7dGhpcy5jaXBoZXJzPSJlbmNyeXB0Ij09PWo/W0VlLmNyZWF0ZSh7dHlwZToiZW5jcnlw''@;'; put 'put ''dCIsa2V5OmFlfSksRWUuY3JlYXRlKHt0eXBlOiJkZWNyeXB0IixrZXk6WX0pLEVlLmNyZWF0ZSh7dHlwZToiZW5jcnlwdCIsa2V5Old9KV06W0VlLmNyZWF0ZSh7dHlwZToiZGVjcnlwdCIsa2V5Old9KSxFZS5jcmVhdGUoe3R5cGU6ImVuY3J5cHQiLGtleTpZfSksRWUuY3JlYXRlKHt0eXBl''@;'; put 'put ''OiJkZWNyeXB0IixrZXk6YWV9KV19ZnVuY3Rpb24gUShqKXtFLmNhbGwodGhpcyxqKTt2YXIgcmU9bmV3IFUodGhpcy50eXBlLHRoaXMub3B0aW9ucy5rZXkpO3RoaXMuX2VkZVN0YXRlPXJlfUIoUSxFKSxYZS5leHBvcnRzPVEsUS5jcmVhdGU9ZnVuY3Rpb24ocmUpe3JldHVybiBuZXcgUShy''@;'; put 'put ''ZSl9LFEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ocmUsYWUsWSxXKXt2YXIgTj10aGlzLl9lZGVTdGF0ZTtOLmNpcGhlcnNbMF0uX3VwZGF0ZShyZSxhZSxZLFcpLE4uY2lwaGVyc1sxXS5fdXBkYXRlKFksVyxZLFcpLE4uY2lwaGVyc1syXS5fdXBkYXRlKFksVyxZLFcpfSxRLnByb3Rv''@;'; put 'put ''dHlwZS5fcGFkPUVlLnByb3RvdHlwZS5fcGFkLFEucHJvdG90eXBlLl91bnBhZD1FZS5wcm90b3R5cGUuX3VucGFkfSw3NzQ1MTooWGUsSmUpPT57InVzZSBzdHJpY3QiO0plLnJlYWRVSW50MzJCRT1mdW5jdGlvbihFZSxVKXtyZXR1cm4oRWVbMCtVXTw8MjR8RWVbMStVXTw8MTZ8RWVbMitV''@;'; put 'put ''XTw8OHxFZVszK1VdKT4+PjB9LEplLndyaXRlVUludDMyQkU9ZnVuY3Rpb24oRWUsVSxRKXtFZVswK1FdPVU+Pj4yNCxFZVsxK1FdPVU+Pj4xNiYyNTUsRWVbMitRXT1VPj4+OCYyNTUsRWVbMytRXT0yNTUmVX0sSmUuaXA9ZnVuY3Rpb24oRWUsVSxRLGope2Zvcih2YXIgcmU9MCxhZT0wLFk9''@;'; put 'put ''NjtZPj0wO1ktPTIpe2Zvcih2YXIgVz0wO1c8PTI0O1crPTgpcmU8PD0xLHJlfD1VPj4+VytZJjE7Zm9yKFc9MDtXPD0yNDtXKz04KXJlPDw9MSxyZXw9RWU+Pj5XK1kmMX1mb3IoWT02O1k+PTA7WS09Mil7Zm9yKFc9MTtXPD0yNTtXKz04KWFlPDw9MSxhZXw9VT4+PlcrWSYxO2ZvcihXPTE7''@;'; put 'put ''Vzw9MjU7Vys9OClhZTw8PTEsYWV8PUVlPj4+VytZJjF9UVtqKzBdPXJlPj4+MCxRW2orMV09YWU+Pj4wfSxKZS5yaXA9ZnVuY3Rpb24oRWUsVSxRLGope2Zvcih2YXIgcmU9MCxhZT0wLFk9MDtZPDQ7WSsrKWZvcih2YXIgVz0yNDtXPj0wO1ctPTgpcmU8PD0xLHJlfD1VPj4+VytZJjEscmU8''@;'; put 'put ''PD0xLHJlfD1FZT4+PlcrWSYxO2ZvcihZPTQ7WTw4O1krKylmb3IoVz0yNDtXPj0wO1ctPTgpYWU8PD0xLGFlfD1VPj4+VytZJjEsYWU8PD0xLGFlfD1FZT4+PlcrWSYxO1FbaiswXT1yZT4+PjAsUVtqKzFdPWFlPj4+MH0sSmUucGMxPWZ1bmN0aW9uKEVlLFUsUSxqKXtmb3IodmFyIHJlPTAs''@;'; put 'put ''YWU9MCxZPTc7WT49NTtZLS0pe2Zvcih2YXIgVz0wO1c8PTI0O1crPTgpcmU8PD0xLHJlfD1VPj5XK1kmMTtmb3IoVz0wO1c8PTI0O1crPTgpcmU8PD0xLHJlfD1FZT4+VytZJjF9Zm9yKFc9MDtXPD0yNDtXKz04KXJlPDw9MSxyZXw9VT4+VytZJjE7Zm9yKFk9MTtZPD0zO1krKyl7Zm9yKFc9''@;'; put 'put ''MDtXPD0yNDtXKz04KWFlPDw9MSxhZXw9VT4+VytZJjE7Zm9yKFc9MDtXPD0yNDtXKz04KWFlPDw9MSxhZXw9RWU+PlcrWSYxfWZvcihXPTA7Vzw9MjQ7Vys9OClhZTw8PTEsYWV8PUVlPj5XK1kmMTtRW2orMF09cmU+Pj4wLFFbaisxXT1hZT4+PjB9LEplLnIyOHNobD1mdW5jdGlvbihFZSxV''@;'; put 'put ''KXtyZXR1cm4gRWU8PFUmMjY4NDM1NDU1fEVlPj4+MjgtVX07dmFyIEw9WzE0LDExLDE3LDQsMjcsMjMsMjUsMCwxMywyMiw3LDE4LDUsOSwxNiwyNCwyLDIwLDEyLDIxLDEsOCwxNSwyNiwxNSw0LDI1LDE5LDksMSwyNiwxNiw1LDExLDIzLDgsMTIsNywxNywwLDIyLDMsMTAsMTQsNiwyMCwy''@;'; put 'put ''NywyNF07SmUucGMyPWZ1bmN0aW9uKEVlLFUsUSxqKXtmb3IodmFyIHJlPTAsYWU9MCxZPUwubGVuZ3RoPj4+MSxXPTA7VzxZO1crKylyZTw8PTEscmV8PUVlPj4+TFtXXSYxO2ZvcihXPVk7VzxMLmxlbmd0aDtXKyspYWU8PD0xLGFlfD1VPj4+TFtXXSYxO1FbaiswXT1yZT4+PjAsUVtqKzFd''@;'; put 'put ''PWFlPj4+MH0sSmUuZXhwYW5kPWZ1bmN0aW9uKEVlLFUsUSl7dmFyIGo9MCxyZT0wO2o9KDEmRWUpPDw1fEVlPj4+Mjc7Zm9yKHZhciBhZT0yMzthZT49MTU7YWUtPTQpajw8PTYsanw9RWU+Pj5hZSY2Mztmb3IoYWU9MTE7YWU+PTM7YWUtPTQpcmV8PUVlPj4+YWUmNjMscmU8PD02O3JlfD0o''@;'; put 'put ''MzEmRWUpPDwxfEVlPj4+MzEsVVtRKzBdPWo+Pj4wLFVbUSsxXT1yZT4+PjB9O3ZhciBtZT1bMTQsMCw0LDE1LDEzLDcsMSw0LDIsMTQsMTUsMiwxMSwxMyw4LDEsMywxMCwxMCw2LDYsMTIsMTIsMTEsNSw5LDksNSwwLDMsNyw4LDQsMTUsMSwxMiwxNCw4LDgsMiwxMyw0LDYsOSwyLDEsMTEs''@;'; put 'put ''NywxNSw1LDEyLDExLDksMyw3LDE0LDMsMTAsMTAsMCw1LDYsMCwxMywxNSwzLDEsMTMsOCw0LDE0LDcsNiwxNSwxMSwyLDMsOCw0LDE0LDksMTIsNywwLDIsMSwxMywxMCwxMiw2LDAsOSw1LDExLDEwLDUsMCwxMywxNCw4LDcsMTAsMTEsMSwxMCwzLDQsMTUsMTMsNCwxLDIsNSwxMSw4LDYs''@;'; put 'put ''MTIsNyw2LDEyLDksMCwzLDUsMiwxNCwxNSw5LDEwLDEzLDAsNyw5LDAsMTQsOSw2LDMsMyw0LDE1LDYsNSwxMCwxLDIsMTMsOCwxMiw1LDcsMTQsMTEsMTIsNCwxMSwyLDE1LDgsMSwxMywxLDYsMTAsNCwxMyw5LDAsOCw2LDE1LDksMyw4LDAsNywxMSw0LDEsMTUsMiwxNCwxMiwzLDUsMTEs''@;'; put 'put ''MTAsNSwxNCwyLDcsMTIsNywxMywxMyw4LDE0LDExLDMsNSwwLDYsNiwxNSw5LDAsMTAsMywxLDQsMiw3LDgsMiw1LDEyLDExLDEsMTIsMTAsNCwxNCwxNSw5LDEwLDMsNiwxNSw5LDAsMCw2LDEyLDEwLDExLDEsNywxMywxMyw4LDE1LDksMSw0LDMsNSwxNCwxMSw1LDEyLDIsNyw4LDIsNCwx''@;'; put 'put ''NCwyLDE0LDEyLDExLDQsMiwxLDEyLDcsNCwxMCw3LDExLDEzLDYsMSw4LDUsNSwwLDMsMTUsMTUsMTAsMTMsMywwLDksMTQsOCw5LDYsNCwxMSwyLDgsMSwxMiwxMSw3LDEwLDEsMTMsMTQsNywyLDgsMTMsMTUsNiw5LDE1LDEyLDAsNSw5LDYsMTAsMyw0LDAsNSwxNCwzLDEyLDEwLDEsMTUs''@;'; put 'put ''MTAsNCwxNSwyLDksNywyLDEyLDYsOSw4LDUsMCw2LDEzLDEsMywxMyw0LDE0LDE0LDAsNywxMSw1LDMsMTEsOCw5LDQsMTQsMywxNSwyLDUsMTIsMiw5LDgsNSwxMiwxNSwzLDEwLDcsMTEsMCwxNCw0LDEsMTAsNywxLDYsMTMsMCwxMSw4LDYsMTMsNCwxMywxMSwwLDIsMTEsMTQsNywxNSw0''@;'; put 'put ''LDAsOSw4LDEsMTMsMTAsMywxNCwxMiwzLDksNSw3LDEyLDUsMiwxMCwxNSw2LDgsMSw2LDEsNiw0LDExLDExLDEzLDEzLDgsMTIsMSwzLDQsNywxMCwxNCw3LDEwLDksMTUsNSw2LDAsOCwxNSwwLDE0LDUsMiw5LDMsMiwxMiwxMywxLDIsMTUsOCwxMyw0LDgsNiwxMCwxNSwzLDExLDcsMSw0''@;'; put 'put ''LDEwLDEyLDksNSwzLDYsMTQsMTEsNSwwLDAsMTQsMTIsOSw3LDIsNywyLDExLDEsNCwxNCwxLDcsOSw0LDEyLDEwLDE0LDgsMiwxMywwLDE1LDYsMTIsMTAsOSwxMywwLDE1LDMsMyw1LDUsNiw4LDExXTtKZS5zdWJzdGl0dXRlPWZ1bmN0aW9uKEVlLFUpe2Zvcih2YXIgUT0wLGo9MDtqPDQ7''@;'; put 'put ''aisrKVE8PD00LFF8PW1lWzY0KmorKEVlPj4+MTgtNipqJjYzKV07Zm9yKGo9MDtqPDQ7aisrKVE8PD00LFF8PW1lWzI1Nis2NCpqKyhVPj4+MTgtNipqJjYzKV07cmV0dXJuIFE+Pj4wfTt2YXIgQj1bMTYsMjUsMTIsMTEsMywyMCw0LDE1LDMxLDE3LDksNiwyNywxNCwxLDIyLDMwLDI0LDgs''@;'; put 'put ''MTgsMCw1LDI5LDIzLDEzLDE5LDIsMjYsMTAsMjEsMjgsN107SmUucGVybXV0ZT1mdW5jdGlvbihFZSl7Zm9yKHZhciBVPTAsUT0wO1E8Qi5sZW5ndGg7USsrKVU8PD0xLFV8PUVlPj4+QltRXSYxO3JldHVybiBVPj4+MH0sSmUucGFkU3BsaXQ9ZnVuY3Rpb24oRWUsVSxRKXtmb3IodmFyIGo9''@;'; put 'put ''RWUudG9TdHJpbmcoMik7ai5sZW5ndGg8VTspaj0iMCIrajtmb3IodmFyIHJlPVtdLGFlPTA7YWU8VTthZSs9USlyZS5wdXNoKGouc2xpY2UoYWUsYWUrUSkpO3JldHVybiByZS5qb2luKCIgIil9fSw5ODgyOTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTU2MyksQj1MKDI5Nzk5KSxFPUwoMjE0''@;'; put 'put ''MTkpLFU9e2JpbmFyeTohMCxoZXg6ITAsYmFzZTY0OiEwfTtKZS5EaWZmaWVIZWxsbWFuR3JvdXA9SmUuY3JlYXRlRGlmZmllSGVsbG1hbkdyb3VwPUplLmdldERpZmZpZUhlbGxtYW49ZnVuY3Rpb24gRWUoail7dmFyIHJlPW5ldyBCdWZmZXIoQltqXS5wcmltZSwiaGV4IiksYWU9bmV3IEJ1''@;'; put 'put ''ZmZlcihCW2pdLmdlbiwiaGV4Iik7cmV0dXJuIG5ldyBFKHJlLGFlKX0sSmUuY3JlYXRlRGlmZmllSGVsbG1hbj1KZS5EaWZmaWVIZWxsbWFuPWZ1bmN0aW9uIFEoaixyZSxhZSxZKXtyZXR1cm4gQnVmZmVyLmlzQnVmZmVyKHJlKXx8dm9pZCAwPT09VVtyZV0/UShqLCJiaW5hcnkiLHJlLGFl''@;'; put 'put ''KToocmU9cmV8fCJiaW5hcnkiLFk9WXx8ImJpbmFyeSIsYWU9YWV8fG5ldyBCdWZmZXIoWzJdKSxCdWZmZXIuaXNCdWZmZXIoYWUpfHwoYWU9bmV3IEJ1ZmZlcihhZSxZKSksIm51bWJlciI9PXR5cGVvZiBqP25ldyBFKG1lKGosYWUpLGFlLCEwKTooQnVmZmVyLmlzQnVmZmVyKGopfHwoaj1u''@;'; put 'put ''ZXcgQnVmZmVyKGoscmUpKSxuZXcgRShqLGFlLCEwKSkpfX0sMjE0MTk6KFhlLEplLEwpPT57dmFyIG1lPUwoODgzMTMpLEU9bmV3KEwoMTcwNzkpKSxFZT1uZXcgbWUoMjQpLFU9bmV3IG1lKDExKSxRPW5ldyBtZSgxMCksaj1uZXcgbWUoMykscmU9bmV3IG1lKDcpLGFlPUwoODU1NjMpLFk9''@;'; put 'put ''TCg1Mzc1Myk7ZnVuY3Rpb24gVyhvZSxjZSl7cmV0dXJuIGNlPWNlfHwidXRmOCIsQnVmZmVyLmlzQnVmZmVyKG9lKXx8KG9lPW5ldyBCdWZmZXIob2UsY2UpKSx0aGlzLl9wdWI9bmV3IG1lKG9lKSx0aGlzfWZ1bmN0aW9uIE4ob2UsY2Upe3JldHVybiBjZT1jZXx8InV0ZjgiLEJ1ZmZlci5p''@;'; put 'put ''c0J1ZmZlcihvZSl8fChvZT1uZXcgQnVmZmVyKG9lLGNlKSksdGhpcy5fcHJpdj1uZXcgbWUob2UpLHRoaXN9WGUuZXhwb3J0cz1KO3ZhciB0ZT17fTtmdW5jdGlvbiBKKG9lLGNlLGRlKXt0aGlzLnNldEdlbmVyYXRvcihjZSksdGhpcy5fX3ByaW1lPW5ldyBtZShvZSksdGhpcy5fcHJpbWU9''@;'; put 'put ''bWUubW9udCh0aGlzLl9fcHJpbWUpLHRoaXMuX3ByaW1lTGVuPW9lLmxlbmd0aCx0aGlzLl9wdWI9dm9pZCAwLHRoaXMuX3ByaXY9dm9pZCAwLHRoaXMuX3ByaW1lQ29kZT12b2lkIDAsZGU/KHRoaXMuc2V0UHVibGljS2V5PVcsdGhpcy5zZXRQcml2YXRlS2V5PU4pOnRoaXMuX3ByaW1lQ29k''@;'; put 'put ''ZT04fWZ1bmN0aW9uIHNlKG9lLGNlKXt2YXIgZGU9bmV3IEJ1ZmZlcihvZS50b0FycmF5KCkpO3JldHVybiBjZT9kZS50b1N0cmluZyhjZSk6ZGV9T2JqZWN0LmRlZmluZVByb3BlcnR5KEoucHJvdG90eXBlLCJ2ZXJpZnlFcnJvciIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIm51bWJlciIhPXR5cGVvZiB0aGlzLl9wcmltZUNvZGUmJih0aGlzLl9wcmltZUNvZGU9ZnVuY3Rpb24gSyhvZSxjZSl7dmFyIGRlPWNlLnRvU3RyaW5nKCJoZXgiKSx2ZT1bZGUsb2UudG9TdHJpbmcoMTYpXS5qb2luKCJfIik7aWYodmUgaW4gdGUpcmV0dXJuIHRlW3ZlXTt2YXIga2Us''@;'; put 'put ''QWU9MDtpZihvZS5pc0V2ZW4oKXx8IWFlLnNpbXBsZVNpZXZlfHwhYWUuZmVybWF0VGVzdChvZSl8fCFFLnRlc3Qob2UpKXJldHVybiBBZSs9MSx0ZVt2ZV09QWUrPSIwMiI9PT1kZXx8IjA1Ij09PWRlPzg6NCxBZTtzd2l0Y2goRS50ZXN0KG9lLnNocm4oMSkpfHwoQWUrPTIpLGRlKXtjYXNl''@;'; put 'put ''IjAyIjpvZS5tb2QoRWUpLmNtcChVKSYmKEFlKz04KTticmVhaztjYXNlIjA1Ijooa2U9b2UubW9kKFEpKS5jbXAoaikmJmtlLmNtcChyZSkmJihBZSs9OCk7YnJlYWs7ZGVmYXVsdDpBZSs9NH1yZXR1cm4gdGVbdmVdPUFlLEFlfSh0aGlzLl9fcHJpbWUsdGhpcy5fX2dlbikpLHRoaXMuX3By''@;'; put 'put ''aW1lQ29kZX19KSxKLnByb3RvdHlwZS5nZW5lcmF0ZUtleXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcHJpdnx8KHRoaXMuX3ByaXY9bmV3IG1lKFkodGhpcy5fcHJpbWVMZW4pKSksdGhpcy5fcHViPXRoaXMuX2dlbi50b1JlZCh0aGlzLl9wcmltZSkucmVkUG93KHRoaXMuX3ByaXYpLmZy''@;'; put 'put ''b21SZWQoKSx0aGlzLmdldFB1YmxpY0tleSgpfSxKLnByb3RvdHlwZS5jb21wdXRlU2VjcmV0PWZ1bmN0aW9uKG9lKXt2YXIgY2U9KG9lPShvZT1uZXcgbWUob2UpKS50b1JlZCh0aGlzLl9wcmltZSkpLnJlZFBvdyh0aGlzLl9wcml2KS5mcm9tUmVkKCksZGU9bmV3IEJ1ZmZlcihjZS50b0Fy''@;'; put 'put ''cmF5KCkpLHZlPXRoaXMuZ2V0UHJpbWUoKTtpZihkZS5sZW5ndGg8dmUubGVuZ3RoKXt2YXIgQWU9bmV3IEJ1ZmZlcih2ZS5sZW5ndGgtZGUubGVuZ3RoKTtBZS5maWxsKDApLGRlPUJ1ZmZlci5jb25jYXQoW0FlLGRlXSl9cmV0dXJuIGRlfSxKLnByb3RvdHlwZS5nZXRQdWJsaWNLZXk9ZnVu''@;'; put 'put ''Y3Rpb24oY2Upe3JldHVybiBzZSh0aGlzLl9wdWIsY2UpfSxKLnByb3RvdHlwZS5nZXRQcml2YXRlS2V5PWZ1bmN0aW9uKGNlKXtyZXR1cm4gc2UodGhpcy5fcHJpdixjZSl9LEoucHJvdG90eXBlLmdldFByaW1lPWZ1bmN0aW9uKG9lKXtyZXR1cm4gc2UodGhpcy5fX3ByaW1lLG9lKX0sSi5w''@;'; put 'put ''cm90b3R5cGUuZ2V0R2VuZXJhdG9yPWZ1bmN0aW9uKG9lKXtyZXR1cm4gc2UodGhpcy5fZ2VuLG9lKX0sSi5wcm90b3R5cGUuc2V0R2VuZXJhdG9yPWZ1bmN0aW9uKG9lLGNlKXtyZXR1cm4gY2U9Y2V8fCJ1dGY4IixCdWZmZXIuaXNCdWZmZXIob2UpfHwob2U9bmV3IEJ1ZmZlcihvZSxjZSkp''@;'; put 'put ''LHRoaXMuX19nZW49b2UsdGhpcy5fZ2VuPW5ldyBtZShvZSksdGhpc319LDg1NTYzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDUzNzUzKTtYZS5leHBvcnRzPUFlLEFlLnNpbXBsZVNpZXZlPWRlLEFlLmZlcm1hdFRlc3Q9dmU7dmFyIEI9TCg4ODMxMyksRT1uZXcgQigyNCksVT1uZXcoTCgxNzA3''@;'; put 'put ''OSkpLFE9bmV3IEIoMSksaj1uZXcgQigyKSxyZT1uZXcgQig1KSxXPShuZXcgQigxNiksbmV3IEIoOCksbmV3IEIoMTApKSxOPW5ldyBCKDMpLEs9KG5ldyBCKDcpLG5ldyBCKDExKSksSj1uZXcgQig0KSxvZT0obmV3IEIoMTIpLG51bGwpO2Z1bmN0aW9uIGRlKGtlKXtmb3IodmFyIFNlPWZ1''@;'; put 'put ''bmN0aW9uIGNlKCl7aWYobnVsbCE9PW9lKXJldHVybiBvZTt2YXIgU2U9W107U2VbMF09Mjtmb3IodmFyIEllPTEsVGU9MztUZTwxMDQ4NTc2O1RlKz0yKXtmb3IodmFyIE1lPU1hdGguY2VpbChNYXRoLnNxcnQoVGUpKSxoZT0wO2hlPEllJiZTZVtoZV08PU1lJiZUZSVTZVtoZV0hPTA7aGUr''@;'; put 'put ''Kyk7SWUhPT1oZSYmU2VbaGVdPD1NZXx8KFNlW0llKytdPVRlKX1yZXR1cm4gb2U9U2UsU2V9KCksSWU9MDtJZTxTZS5sZW5ndGg7SWUrKylpZigwPT09a2UubW9kbihTZVtJZV0pKXJldHVybiAwPT09a2UuY21wbihTZVtJZV0pO3JldHVybiEwfWZ1bmN0aW9uIHZlKGtlKXt2YXIgU2U9Qi5t''@;'; put 'put ''b250KGtlKTtyZXR1cm4gMD09PWoudG9SZWQoU2UpLnJlZFBvdyhrZS5zdWJuKDEpKS5mcm9tUmVkKCkuY21wbigxKX1mdW5jdGlvbiBBZShrZSxTZSl7aWYoa2U8MTYpcmV0dXJuIG5ldyBCKDI9PT1TZXx8NT09PVNlP1sxNDAsMTIzXTpbMTQwLDM5XSk7U2U9bmV3IEIoU2UpO2Zvcih2YXIg''@;'; put 'put ''SWUsVGU7Oyl7Zm9yKEllPW5ldyBCKG1lKE1hdGguY2VpbChrZS84KSkpO0llLmJpdExlbmd0aCgpPmtlOylJZS5pc2hybigxKTtpZihJZS5pc0V2ZW4oKSYmSWUuaWFkZChRKSxJZS50ZXN0bigxKXx8SWUuaWFkZChqKSxTZS5jbXAoaikpe2lmKCFTZS5jbXAocmUpKWZvcig7SWUubW9kKFcp''@;'; put 'put ''LmNtcChOKTspSWUuaWFkZChKKX1lbHNlIGZvcig7SWUubW9kKEUpLmNtcChLKTspSWUuaWFkZChKKTtpZihkZShUZT1JZS5zaHJuKDEpKSYmZGUoSWUpJiZ2ZShUZSkmJnZlKEllKSYmVS50ZXN0KFRlKSYmVS50ZXN0KEllKSlyZXR1cm4gSWV9fX0sODgzMTM6ZnVuY3Rpb24oWGUsSmUsTCl7''@;'; put 'put ''IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJvdyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBFZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUs''@;'; put 'put ''aGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBVKGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJs''@;'; put 'put ''ZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwiYmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2''@;'; put 'put ''b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg3NzQ4KS5CdWZmZXJ9Y2F0Y2goaGUpe31mdW5jdGlvbiBqKGhlLE8pe3ZhciB6PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJuIHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1bmN0aW9uIHJl''@;'; put 'put ''KGhlLE8seil7dmFyIGVlPWooaGUseik7cmV0dXJuIHotMT49TyYmKGVlfD1qKGhlLHotMSk8PDQpLGVlfWZ1bmN0aW9uIGFlKGhlLE8seixlZSl7Zm9yKHZhciBuZT0wLHg9TWF0aC5taW4oaGUubGVuZ3RoLHopLFA9TztQPHg7UCsrKXt2YXIgVj1oZS5jaGFyQ29kZUF0KFApLTQ4O25lKj1l''@;'; put 'put ''ZSxuZSs9Vj49NDk/Vi00OSsxMDpWPj0xNz9WLTE3KzEwOlZ9cmV0dXJuIG5lfVUuaXNCTj1mdW5jdGlvbihPKXtyZXR1cm4gTyBpbnN0YW5jZW9mIFV8fG51bGwhPT1PJiYib2JqZWN0Ij09dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0Fy''@;'; put 'put ''cmF5KE8ud29yZHMpfSxVLm1heD1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KT4wP086en0sVS5taW49ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik8MD9POnp9LFUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKE8seixlZSl7aWYoIm51bWJlciI9PXR5cGVvZiBPKXJldHVybiB0''@;'; put 'put ''aGlzLl9pbml0TnVtYmVyKE8seixlZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0QXJyYXkoTyx6LGVlKTsiaGV4Ij09PXomJih6PTE2KSxFKHo9PT0oMHx6KSYmej49MiYmejw9MzYpO3ZhciBuZT0wOyItIj09PShPPU8udG9TdHJpbmcoKS5yZXBsYWNlKC9ccysv''@;'; put 'put ''ZywiIikpWzBdJiYobmUrKyx0aGlzLm5lZ2F0aXZlPTEpLG5lPE8ubGVuZ3RoJiYoMTY9PT16P3RoaXMuX3BhcnNlSGV4KE8sbmUsZWUpOih0aGlzLl9wYXJzZUJhc2UoTyx6LG5lKSwibGUiPT09ZWUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LGVlKSkpfSxVLnByb3RvdHlw''@;'; put 'put ''ZS5faW5pdE51bWJlcj1mdW5jdGlvbihPLHosZWUpe088MCYmKHRoaXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0xKTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2''@;'; put 'put ''NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEUoTzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PWVlJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixlZSl9LFUucHJvdG90''@;'; put 'put ''eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTyx6LGVlKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTy5sZW5ndGgpLE8ubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3''@;'; put 'put ''IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT0wO3ZhciB4LFAsVj0wO2lmKCJiZSI9PT1lZSlmb3IobmU9Ty5sZW5ndGgtMSx4PTA7bmU+PTA7bmUtPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZS0xXTw8OHxP''@;'; put 'put ''W25lLTJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtlbHNlIGlmKCJsZSI9PT1lZSlmb3IobmU9MCx4PTA7bmU8Ty5sZW5ndGg7bmUrPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZSsxXTw8''@;'; put 'put ''OHxPW25lKzJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTyx6LGVlKXt0aGlzLmxlbmd0aD1NYXRoLmNl''@;'; put 'put ''aWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT0wO3ZhciBWLHg9MCxQPTA7aWYoImJlIj09PWVlKWZvcihuZT1PLmxlbmd0aC0xO25lPj16O25lLT0yKVY9cmUo''@;'; put 'put ''Tyx6LG5lKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7ZWxzZSBmb3IobmU9KE8ubGVuZ3RoLXopJTI9PTA/eisxOno7bmU8Ty5sZW5ndGg7bmUrPTIpVj1yZShPLHosbmUpPDx4LHRoaXMud29yZHNbUF18''@;'; put 'put ''PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oTyx6LGVlKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgbmU9MCx4PTE7eDw9NjcxMDg4''@;'; put 'put ''NjM7eCo9eiluZSsrO25lLS0seD14L3p8MDtmb3IodmFyIFA9Ty5sZW5ndGgtZWUsVj1QJW5lLFQ9TWF0aC5taW4oUCxQLVYpK2VlLFM9MCxGPWVlO0Y8VDtGKz1uZSlTPWFlKE8sRixGK25lLHopLHRoaXMuaW11bG4oeCksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0r''@;'; put 'put ''PVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9PVYpe3ZhciB5ZT0xO2ZvcihTPWFlKE8sRixPLmxlbmd0aCx6KSxGPTA7RjxWO0YrKyl5ZSo9ejt0aGlzLmltdWxuKHllKSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKX10aGlzLnN0cmlwKCl9''@;'; put 'put ''LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTyl7Ty53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGg7eisrKU8ud29yZHNbel09dGhpcy53b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxlbmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsTy5y''@;'; put 'put ''ZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weShPKSxPfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3Jl''@;'; put 'put ''dHVybiB0aGlzfSxVLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxVLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBZPVsiIiwi''@;'; put 'put ''MCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwi''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAw''@;'; put 'put ''MDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLFc9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1bMCwwLDMzNTU0''@;'; put 'put ''NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1''@;'; put 'put ''MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBLKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0''@;'; put 'put ''aXZlXmhlLm5lZ2F0aXZlO3ZhciBlZT1oZS5sZW5ndGgrTy5sZW5ndGh8MDt6Lmxlbmd0aD1lZSxlZT1lZS0xfDA7dmFyIG5lPTB8aGUud29yZHNbMF0seD0wfE8ud29yZHNbMF0sUD1uZSp4LFQ9UC82NzEwODg2NHwwO3oud29yZHNbMF09NjcxMDg4NjMmUDtmb3IodmFyIFM9MTtTPGVlO1Mr''@;'; put 'put ''Kyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02NzEwODg2MyZULENlPU1hdGgubWluKFMsTy5sZW5ndGgtMSksRGU9TWF0aC5tYXgoMCxTLWhlLmxlbmd0aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0obmU9MHxoZS53b3Jkc1tTLURlfDBdKSooeD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcxMDg4NjR8MCx5''@;'; put 'put ''ZT02NzEwODg2MyZQO3oud29yZHNbU109MHx5ZSxUPTB8Rn1yZXR1cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6ei5sZW5ndGgtLSx6LnN0cmlwKCl9VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTyx6KXt2YXIgZWU7aWYoej0wfHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJoZXgiPT09Tyl7''@;'; put 'put ''ZWU9IiI7Zm9yKHZhciBuZT0wLHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMud29yZHNbUF0sVD0oMTY3NzcyMTUmKFY8PG5lfHgpKS50b1N0cmluZygxNik7ZWU9MCE9KHg9Vj4+PjI0LW5lJjE2Nzc3MjE1KXx8UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQubGVuZ3RoXStU''@;'; put 'put ''K2VlOlQrZWUsKG5lKz0yKT49MjYmJihuZS09MjYsUC0tKX1mb3IoMCE9PXgmJihlZT14LnRvU3RyaW5nKDE2KStlZSk7ZWUubGVuZ3RoJXohPTA7KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0iLSIrZWUpLGVlfWlmKE89PT0oMHxPKSYmTz49MiYmTzw9MzYpe3Zh''@;'; put 'put ''ciBTPVdbT10sRj1OW09dO2VlPSIiO3ZhciB5ZT10aGlzLmNsb25lKCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXllLmlzWmVybygpOyl7dmFyIENlPXllLm1vZG4oRikudG9TdHJpbmcoTyk7ZWU9KHllPXllLmlkaXZuKEYpKS5pc1plcm8oKT9DZStlZTpZW1MtQ2UubGVuZ3RoXStDZStlZX1mb3Io''@;'; put 'put ''dGhpcy5pc1plcm8oKSYmKGVlPSIwIitlZSk7ZWUubGVuZ3RoJXohPTA7KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0iLSIrZWUpLGVlfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24o''@;'; put 'put ''KXt2YXIgTz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP08rPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZF''@;'; put 'put ''KCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tTzpPfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKE8seil7''@;'; put 'put ''cmV0dXJuIEUodm9pZCAwIT09USksdGhpcy50b0FycmF5TGlrZShRLE8seil9LFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT10''@;'; put 'put ''aGlzLmJ5dGVMZW5ndGgoKSx4PWVlfHxNYXRoLm1heCgxLG5lKTtFKG5lPD14LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRSh4PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgVCxTLFA9ImxlIj09PXosVj1uZXcgTyh4''@;'; put 'put ''KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtmb3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW1NdPVQ7Zm9yKDtTPHg7UysrKVZbU109MH1lbHNle2ZvcihTPTA7Uzx4LW5lO1MrKylWW1NdPTA7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxu''@;'; put 'put ''KDI1NSksRi5pdXNocm4oOCksVlt4LVMtMV09VH1yZXR1cm4gVn0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKE8pe3JldHVybiAzMi1NYXRoLmNsejMyKE8pfTpmdW5jdGlvbihPKXt2YXIgej1PLGVlPTA7cmV0dXJuIHo+PTQwOTYmJihlZSs9MTMsej4+Pj0x''@;'; put 'put ''Myksej49NjQmJihlZSs9Nyx6Pj4+PTcpLHo+PTgmJihlZSs9NCx6Pj4+PTQpLHo+PTImJihlZSs9Mix6Pj4+PTIpLGVlK3p9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihPKXtpZigwPT09TylyZXR1cm4gMjY7dmFyIHo9TyxlZT0wO3JldHVybiAwPT0oODE5MSZ6KSYmKGVlKz0x''@;'; put 'put ''Myx6Pj4+PTEzKSwwPT0oMTI3JnopJiYoZWUrPTcsej4+Pj03KSwwPT0oMTUmeikmJihlZSs9NCx6Pj4+PTQpLDA9PSgzJnopJiYoZWUrPTIsej4+Pj0yKSwwPT0oMSZ6KSYmZWUrKyxlZX0sVS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291bnRCaXRzKHRo''@;'; put 'put ''aXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkren0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgTz0wLHo9MDt6PHRoaXMubGVuZ3RoO3orKyl7dmFyIGVlPXRoaXMuX3plcm9C''@;'; put 'put ''aXRzKHRoaXMud29yZHNbel0pO2lmKE8rPWVlLDI2IT09ZWUpYnJlYWt9cmV0dXJuIE99LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gMCE9''@;'; put 'put ''PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihPKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnRlc3RuKE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LFUucHJvdG90''@;'; put 'put ''eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sVS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2''@;'; put 'put ''ZV49MSksdGhpc30sVS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jkc1t6XT10aGlzLndvcmRzW3pdfE8ud29yZHNbel07cmV0''@;'; put 'put ''dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1b3IoTyl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25l''@;'; put 'put ''KCkuaW9yKE8pOk8uY2xvbmUoKS5pb3IodGhpcyl9LFUucHJvdG90eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE8pe3ZhciB6''@;'; put 'put ''O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/Tzp0aGlzO2Zvcih2YXIgZWU9MDtlZTx6Lmxlbmd0aDtlZSsrKXRoaXMud29yZHNbZWVdPXRoaXMud29yZHNbZWVdJk8ud29yZHNbZWVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhbmQ9ZnVu''@;'; put 'put ''Y3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9LFUucHJvdG90eXBlLmFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQodGhpcyl9LFUu''@;'; put 'put ''cHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChPKTpPLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3ZhciB6LGVlO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyh6PXRo''@;'; put 'put ''aXMsZWU9Tyk6KHo9TyxlZT10aGlzKTtmb3IodmFyIG5lPTA7bmU8ZWUubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09ei53b3Jkc1tuZV1eZWUud29yZHNbbmVdO2lmKHRoaXMhPT16KWZvcig7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT16LndvcmRzW25lXTtyZXR1cm4gdGhp''@;'; put 'put ''cy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8u''@;'; put 'put ''bGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKE8pOk8uY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5jbG9uZSgpLml1eG9yKHRoaXMpfSxVLnByb3RvdHlwZS5p''@;'; put 'put ''bm90bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9MHxNYXRoLmNlaWwoTy8yNiksZWU9TyUyNjt0aGlzLl9leHBhbmQoeiksZWU+MCYmei0tO2Zvcih2YXIgbmU9MDtuZTx6O25lKyspdGhpcy53b3Jkc1tuZV09NjcxMDg4NjMmfnRoaXMud29yZHNbbmVd''@;'; put 'put ''O3JldHVybiBlZT4wJiYodGhpcy53b3Jkc1tuZV09fnRoaXMud29yZHNbbmVdJjY3MTA4ODYzPj4yNi1lZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oTyl9LFUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oTyx6''@;'; put 'put ''KXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIGVlPU8vMjZ8MCxuZT1PJTI2O3JldHVybiB0aGlzLl9leHBhbmQoZWUrMSksdGhpcy53b3Jkc1tlZV09ej90aGlzLndvcmRzW2VlXXwxPDxuZTp0aGlzLndvcmRzW2VlXSZ+KDE8PG5lKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBl''@;'; put 'put ''LmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHosZWUsbmU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09''@;'; put 'put ''Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyhlZT10aGlzLG5lPU8pOihlZT1PLG5lPXRoaXMpO2Zvcih2YXIgeD0wLFA9MDtQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jk''@;'; put 'put ''c1tQXT02NzEwODg2MyYoej0oMHxlZS53b3Jkc1tQXSkrKDB8bmUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zvcig7MCE9PXgmJlA8ZWUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfGVlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0aD1lZS5sZW5n''@;'; put 'put ''dGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09eCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoZWUhPT10aGlzKWZvcig7UDxlZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09ZWUud29yZHNbUF07cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXt2YXIgejtyZXR1''@;'; put 'put ''cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhPLm5lZ2F0aXZlPTAsej10aGlzLnN1YihPKSxPLm5lZ2F0aXZlXj0xLHopOjA9PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHo9Ty5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHop''@;'; put 'put ''OnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMpfSxVLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9dGhpcy5pYWRkKE8pO3JldHVybiBPLm5lZ2F0aXZlPTEs''@;'; put 'put ''ei5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgbmUseCxlZT10aGlzLmNtcChPKTtpZigwPT09ZWUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlz''@;'; put 'put ''Lmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO2VlPjA/KG5lPXRoaXMseD1PKToobmU9Tyx4PXRoaXMpO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKylQPSh6PSgwfG5lLndvcmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2Zv''@;'; put 'put ''cig7MCE9PVAmJlY8bmUubGVuZ3RoO1YrKylQPSh6PSgwfG5lLndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2lmKDA9PT1QJiZWPG5lLmxlbmd0aCYmbmUhPT10aGlzKWZvcig7VjxuZS5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09bmUud29yZHNbVl07cmV0dXJu''@;'; put 'put ''IHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFYpLG5lIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKE8pfTt2YXIgSj1mdW5jdGlvbihPLHosZWUpe3ZhciBU''@;'; put 'put ''LFMsRixuZT1PLndvcmRzLHg9ei53b3JkcyxQPWVlLndvcmRzLFY9MCx5ZT0wfG5lWzBdLENlPTgxOTEmeWUsRGU9eWU+Pj4xMyxQZT0wfG5lWzFdLFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxndD0wfG5lWzJdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfG5lWzNdLEF0PTgxOTEmdnQsaHQ9''@;'; put 'put ''dnQ+Pj4xMyxCdD0wfG5lWzRdLG9uPTgxOTEmQnQsX3Q9QnQ+Pj4xMyx0dD0wfG5lWzVdLGV0PTgxOTEmdHQsbHQ9dHQ+Pj4xMyxMdD0wfG5lWzZdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfG5lWzddLEdlPTgxOTEmSHQsVWU9SHQ+Pj4xMyx5dD0wfG5lWzhdLGp0PTgxOTEmeXQsSnQ9''@;'; put 'put ''eXQ+Pj4xMyxnbj0wfG5lWzldLGRuPTgxOTEmZ24seW49Z24+Pj4xMyxsbj0wfHhbMF0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8eFsxXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZwcixBbj1wcj4+''@;'; put 'put ''PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249MHx4WzVdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfHhbNl0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMsa3I9MHx4WzhdLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxj''@;'; put 'put ''bj0wfHhbOV0sX249ODE5MSZjbixHdD1jbj4+PjEzO2VlLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5ndGg9MTk7dmFyIGtuPShWKyhUPU1hdGguaW11bChDZSxObikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoQ2UsYm4pKStNYXRoLmltdWwoRGUsTm4pfDApKTw8''@;'; put 'put ''MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERlLGJuKSkrKFM+Pj4xMyl8MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFFlLE5uKSxTPShTPU1hdGguaW11bChRZSxibikpK01hdGguaW11bCgkZSxObil8MCxGPU1hdGguaW11bCgkZSxibik7dmFyIFZuPShWKyhUPVQrTWF0''@;'; put 'put ''aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsWG4pfDApK01hdGguaW11bChEZSxzcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxYbil8MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYpfDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHd0LE5u''@;'; put 'put ''KSxTPShTPU1hdGguaW11bCh3dCxibikpK01hdGguaW11bChtdCxObil8MCxGPU1hdGguaW11bChtdCxibiksVD1UK01hdGguaW11bChRZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhuKXwwKStNYXRoLmltdWwoJGUsc3IpfDAsRj1GK01hdGguaW11bCgkZSxYbil8MDt2YXIgZW49KFYr''@;'; put 'put ''KFQ9VCtNYXRoLmltdWwoQ2UseHIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxxdCl8MCkrTWF0aC5pbXVsKERlLHhyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHF0KXwwKSsoUz4+PjEzKXwwKSsoZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMsVD1NYXRoLmlt''@;'; put 'put ''dWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVsKEF0LGJuKSkrTWF0aC5pbXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVsKGh0LGJuKSxUPVQrTWF0aC5pbXVsKHd0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsWG4pfDApK01hdGguaW11bChtdCxzcil8MCxGPUYrTWF0aC5pbXVsKG10LFhuKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoUWUseHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwLEY9RitNYXRoLmltdWwoJGUscXQpfDA7dmFyIEluPShWKyhUPVQrTWF0aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQW4pfDApK01h''@;'; put 'put ''dGguaW11bChEZSxucil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxBbil8MCkrKFM+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5uKSxTPShTPU1hdGguaW11bChvbixibikpK01hdGguaW11bChfdCxObil8MCxGPU1hdGguaW11bChf''@;'; put 'put ''dCxibiksVD1UK01hdGguaW11bChBdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LFhuKXwwKStNYXRoLmltdWwoaHQsc3IpfDAsRj1GK01hdGguaW11bChodCxYbil8MCxUPVQrTWF0aC5pbXVsKHd0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8''@;'; put 'put ''MCxGPUYrTWF0aC5pbXVsKG10LHF0KXwwLFQ9VCtNYXRoLmltdWwoUWUsbnIpfDAsUz0oUz1TK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwLEY9RitNYXRoLmltdWwoJGUsQW4pfDA7dmFyIEpuPShWKyhUPVQrTWF0aC5pbXVsKENlLFd0KXwwKXwwKSsoKDgxOTEmKFM9''@;'; put 'put ''KFM9UytNYXRoLmltdWwoQ2UscG4pfDApK01hdGguaW11bChEZSxXdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxwbil8MCkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0LE5uKSxTPShTPU1hdGguaW11bChldCxibikpK01hdGgu''@;'; put 'put ''aW11bChsdCxObil8MCxGPU1hdGguaW11bChsdCxibiksVD1UK01hdGguaW11bChvbixzcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLFhuKXwwKStNYXRoLmltdWwoX3Qsc3IpfDAsRj1GK01hdGguaW11bChfdCxYbil8MCxUPVQrTWF0aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; put 'put ''QXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxGPUYrTWF0aC5pbXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmltdWwod3QsbnIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxBbil8MCkrTWF0aC5pbXVsKG10LG5yKXwwLEY9RitNYXRoLmltdWwobXQsQW4pfDAsVD1UK01hdGguaW11bChRZSxXdCl8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBuKXwwKStNYXRoLmltdWwoJGUsV3QpfDAsRj1GK01hdGguaW11bCgkZSxwbil8MDt2YXIgb3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsTnQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxzbil8MCkrTWF0aC5pbXVsKERlLE50KXwwKSk8''@;'; put 'put ''PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHNuKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQ3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXwwLEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQrTWF0aC5pbXVs''@;'; put 'put ''KGV0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsWG4pfDApK01hdGguaW11bChsdCxzcil8MCxGPUYrTWF0aC5pbXVsKGx0LFhuKXwwLFQ9VCtNYXRoLmltdWwob24seHIpfDAsUz0oUz1TK01hdGguaW11bChvbixxdCl8MCkrTWF0aC5pbXVsKF90LHhyKXwwLEY9RitNYXRoLmltdWwoX3Qs''@;'; put 'put ''cXQpfDAsVD1UK01hdGguaW11bChBdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRj1GK01hdGguaW11bChodCxBbil8MCxUPVQrTWF0aC5pbXVsKHd0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8''@;'; put 'put ''MCxGPUYrTWF0aC5pbXVsKG10LHBuKXwwLFQ9VCtNYXRoLmltdWwoUWUsTnQpfDAsUz0oUz1TK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwLEY9RitNYXRoLmltdWwoJGUsc24pfDA7dmFyIGdyPShWKyhUPVQrTWF0aC5pbXVsKENlLHduKXwwKXwwKSsoKDgxOTEmKFM9''@;'; put 'put ''KFM9UytNYXRoLmltdWwoQ2UsdG4pfDApK01hdGguaW11bChEZSx3bil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx0bil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdlLE5uKSxTPShTPU1hdGguaW11bChHZSxibikpK01hdGgu''@;'; put 'put ''aW11bChVZSxObil8MCxGPU1hdGguaW11bChVZSxibiksVD1UK01hdGguaW11bChDdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LFhuKXwwKStNYXRoLmltdWwoZnQsc3IpfDAsRj1GK01hdGguaW11bChmdCxYbil8MCxUPVQrTWF0aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; put 'put ''ZXQscXQpfDApK01hdGguaW11bChsdCx4cil8MCxGPUYrTWF0aC5pbXVsKGx0LHF0KXwwLFQ9VCtNYXRoLmltdWwob24sbnIpfDAsUz0oUz1TK01hdGguaW11bChvbixBbil8MCkrTWF0aC5pbXVsKF90LG5yKXwwLEY9RitNYXRoLmltdWwoX3QsQW4pfDAsVD1UK01hdGguaW11bChBdCxXdCl8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBuKXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRj1GK01hdGguaW11bChodCxwbil8MCxUPVQrTWF0aC5pbXVsKHd0LE50KXwwLFM9KFM9UytNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10LHNuKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoUWUsd24pfDAsUz0oUz1TK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwLEY9RitNYXRoLmltdWwoJGUsdG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQm4pfDApK01h''@;'; put 'put ''dGguaW11bChEZSxUcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxCbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5uKSxTPShTPU1hdGguaW11bChqdCxibikpK01hdGguaW11bChKdCxObil8MCxGPU1hdGguaW11bChK''@;'; put 'put ''dCxibiksVD1UK01hdGguaW11bChHZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLFhuKXwwKStNYXRoLmltdWwoVWUsc3IpfDAsRj1GK01hdGguaW11bChVZSxYbil8MCxUPVQrTWF0aC5pbXVsKEN0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8''@;'; put 'put ''MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXwwLFQ9VCtNYXRoLmltdWwoZXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChldCxBbil8MCkrTWF0aC5pbXVsKGx0LG5yKXwwLEY9RitNYXRoLmltdWwobHQsQW4pfDAsVD1UK01hdGguaW11bChvbixXdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHBuKXww''@;'; put 'put ''KStNYXRoLmltdWwoX3QsV3QpfDAsRj1GK01hdGguaW11bChfdCxwbil8MCxUPVQrTWF0aC5pbXVsKEF0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNuKXwwLFQ9VCtNYXRoLmltdWwod3Qsd24pfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bCh3dCx0bil8MCkrTWF0aC5pbXVsKG10LHduKXwwLEY9RitNYXRoLmltdWwobXQsdG4pfDAsVD1UK01hdGguaW11bChRZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJuKXwwKStNYXRoLmltdWwoJGUsVHIpfDAsRj1GK01hdGguaW11bCgkZSxCbil8MDt2YXIgVnI9KFYr''@;'; put 'put ''KFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx1bil8MCkrTWF0aC5pbXVsKERlLG1uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmlt''@;'; put 'put ''dWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVsKGRuLGJuKSkrTWF0aC5pbXVsKHluLE5uKXwwLEY9TWF0aC5pbXVsKHluLGJuKSxUPVQrTWF0aC5pbXVsKGp0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsWG4pfDApK01hdGguaW11bChKdCxzcil8MCxGPUYrTWF0aC5pbXVsKEp0LFhuKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoR2UseHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhyKXwwLEY9RitNYXRoLmltdWwoVWUscXQpfDAsVD1UK01hdGguaW11bChDdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRj1GK01h''@;'; put 'put ''dGguaW11bChmdCxBbil8MCxUPVQrTWF0aC5pbXVsKGV0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChsdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGx0LHBuKXwwLFQ9VCtNYXRoLmltdWwob24sTnQpfDAsUz0oUz1TK01hdGguaW11bChvbixzbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKF90LE50KXwwLEY9RitNYXRoLmltdWwoX3Qsc24pfDAsVD1UK01hdGguaW11bChBdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRj1GK01hdGguaW11bChodCx0bil8MCxUPVQrTWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxGPUYrTWF0aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRoLmltdWwoUWUsbW4pfDAsUz0oUz1TK01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRoLmltdWwoJGUsdW4pfDA7dmFyIGlpPShWKyhUPVQrTWF0''@;'; put 'put ''aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsR3QpfDApK01hdGguaW11bChEZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHNy''@;'; put 'put ''KSxTPShTPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixzcil8MCxGPU1hdGguaW11bCh5bixYbiksVD1UK01hdGguaW11bChqdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoSnQseHIpfDAsRj1GK01hdGguaW11bChKdCxxdCl8MCxUPVQrTWF0aC5p''@;'; put 'put ''bXVsKEdlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxGPUYrTWF0aC5pbXVsKFVlLEFuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0oUz1TK01hdGguaW11bChDdCxwbil8MCkrTWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitNYXRoLmltdWwo''@;'; put 'put ''ZnQscG4pfDAsVD1UK01hdGguaW11bChldCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHNuKXwwKStNYXRoLmltdWwobHQsTnQpfDAsRj1GK01hdGguaW11bChsdCxzbil8MCxUPVQrTWF0aC5pbXVsKG9uLHduKXwwLFM9KFM9UytNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3''@;'; put 'put ''bil8MCxGPUYrTWF0aC5pbXVsKF90LHRuKXwwLFQ9VCtNYXRoLmltdWwoQXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChBdCxCbil8MCkrTWF0aC5pbXVsKGh0LFRyKXwwLEY9RitNYXRoLmltdWwoaHQsQm4pfDAsVD1UK01hdGguaW11bCh3dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHVu''@;'; put 'put ''KXwwKStNYXRoLmltdWwobXQsbW4pfDAsRj1GK01hdGguaW11bChtdCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVs''@;'; put 'put ''KCRlLEd0KXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4seHIpLFM9KFM9TWF0aC5pbXVsKGRuLHF0KSkrTWF0aC5pbXVsKHluLHhyKXwwLEY9TWF0aC5pbXVsKHluLHF0KSxUPVQrTWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwoanQsQW4pfDApK01hdGguaW11bChKdCxucil8MCxGPUYrTWF0aC5pbXVsKEp0LEFuKXwwLFQ9VCtNYXRoLmltdWwoR2UsV3QpfDAsUz0oUz1TK01hdGguaW11bChHZSxwbil8MCkrTWF0aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRoLmltdWwoVWUscG4pfDAsVD1UK01hdGguaW11bChDdCxO''@;'; put 'put ''dCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRj1GK01hdGguaW11bChmdCxzbil8MCxUPVQrTWF0aC5pbXVsKGV0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChsdCx3bil8MCxGPUYrTWF0aC5pbXVsKGx0LHRuKXww''@;'; put 'put ''LFQ9VCtNYXRoLmltdWwob24sVHIpfDAsUz0oUz1TK01hdGguaW11bChvbixCbil8MCkrTWF0aC5pbXVsKF90LFRyKXwwLEY9RitNYXRoLmltdWwoX3QsQm4pfDAsVD1UK01hdGguaW11bChBdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRj1G''@;'; put 'put ''K01hdGguaW11bChodCx1bil8MDt2YXIgbGk9KFYrKFQ9VCtNYXRoLmltdWwod3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh3dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEzKXwwKSsobGk+''@;'; put 'put ''Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbnIpLFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkrTWF0aC5pbXVsKHluLG5yKXwwLEY9TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChKdCxX''@;'; put 'put ''dCl8MCxGPUYrTWF0aC5pbXVsKEp0LHBuKXwwLFQ9VCtNYXRoLmltdWwoR2UsTnQpfDAsUz0oUz1TK01hdGguaW11bChHZSxzbil8MCkrTWF0aC5pbXVsKFVlLE50KXwwLEY9RitNYXRoLmltdWwoVWUsc24pfDAsVD1UK01hdGguaW11bChDdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHRu''@;'; put 'put ''KXwwKStNYXRoLmltdWwoZnQsd24pfDAsRj1GK01hdGguaW11bChmdCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChsdCxUcil8MCxGPUYrTWF0aC5pbXVsKGx0LEJuKXwwLFQ9VCtNYXRoLmltdWwob24sbW4pfDAsUz0o''@;'; put 'put ''Uz1TK01hdGguaW11bChvbix1bil8MCkrTWF0aC5pbXVsKF90LG1uKXwwLEY9RitNYXRoLmltdWwoX3QsdW4pfDA7dmFyIE1pPShWKyhUPVQrTWF0aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCkpPDwxMyl8''@;'; put 'put ''MDtWPSgoRj1GK01hdGguaW11bChodCxHdCl8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFd0KSxTPShTPU1hdGguaW11bChkbixwbikpK01hdGguaW11bCh5bixXdCl8MCxGPU1hdGguaW11bCh5bixwbiksVD1UK01hdGguaW11bChqdCxO''@;'; put 'put ''dCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmltdWwoSnQsTnQpfDAsRj1GK01hdGguaW11bChKdCxzbil8MCxUPVQrTWF0aC5pbXVsKEdlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxGPUYrTWF0aC5pbXVsKFVlLHRuKXww''@;'; put 'put ''LFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0LFRyKXwwLEY9RitNYXRoLmltdWwoZnQsQm4pfDAsVD1UK01hdGguaW11bChldCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwobHQsbW4pfDAsRj1G''@;'; put 'put ''K01hdGguaW11bChsdCx1bil8MDt2YXIgbzA9KFYrKFQ9VCtNYXRoLmltdWwob24sX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChvbixHdCl8MCkrTWF0aC5pbXVsKF90LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEzKXwwKSsobzA+''@;'; put 'put ''Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTnQpLFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkrTWF0aC5pbXVsKHluLE50KXwwLEY9TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0aC5pbXVsKGp0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChKdCx3''@;'; put 'put ''bil8MCxGPUYrTWF0aC5pbXVsKEp0LHRuKXwwLFQ9VCtNYXRoLmltdWwoR2UsVHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxCbil8MCkrTWF0aC5pbXVsKFVlLFRyKXwwLEY9RitNYXRoLmltdWwoVWUsQm4pfDAsVD1UK01hdGguaW11bChDdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHVu''@;'; put 'put ''KXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRj1GK01hdGguaW11bChmdCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtNYXRoLmltdWwoZXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChldCxHdCl8MCkrTWF0aC5pbXVsKGx0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVs''@;'; put 'put ''KGx0LEd0KXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sd24pLFM9KFM9TWF0aC5pbXVsKGRuLHRuKSkrTWF0aC5pbXVsKHluLHduKXwwLEY9TWF0aC5pbXVsKHluLHRuKSxUPVQrTWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwoanQsQm4pfDApK01hdGguaW11bChKdCxUcil8MCxGPUYrTWF0aC5pbXVsKEp0LEJuKXwwLFQ9VCtNYXRoLmltdWwoR2UsbW4pfDAsUz0oUz1TK01hdGguaW11bChHZSx1bil8MCkrTWF0aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRoLmltdWwoVWUsdW4pfDA7dmFyIGQwPShWKyhUPVQrTWF0''@;'; put 'put ''aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChmdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFRy''@;'; put 'put ''KSxTPShTPU1hdGguaW11bChkbixCbikpK01hdGguaW11bCh5bixUcil8MCxGPU1hdGguaW11bCh5bixCbiksVD1UK01hdGguaW11bChqdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoSnQsbW4pfDAsRj1GK01hdGguaW11bChKdCx1bil8MDt2YXIgbTA9KFYr''@;'; put 'put ''KFQ9VCtNYXRoLmltdWwoR2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChHZSxHdCl8MCkrTWF0aC5pbXVsKFVlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFVlLEd0KXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmlt''@;'; put 'put ''dWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVsKGRuLHVuKSkrTWF0aC5pbXVsKHluLG1uKXwwLEY9TWF0aC5pbXVsKHluLHVuKTt2YXIgRzA9KFYrKFQ9VCtNYXRoLmltdWwoanQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChqdCxHdCl8MCkrTWF0aC5pbXVsKEp0LF9uKXwwKSk8''@;'; put 'put ''PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKEp0LEd0KXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjM7dmFyIERpPShWKyhUPU1hdGguaW11bChkbixfbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoZG4sR3QpKStNYXRoLmltdWwoeW4sX24pfDApKTw8MTMpfDA7''@;'; put 'put ''cmV0dXJuIFY9KChGPU1hdGguaW11bCh5bixHdCkpKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxQWzBdPWtuLFBbMV09Vm4sUFsyXT1lbixQWzNdPUluLFBbNF09Sm4sUFs1XT1vcixQWzZdPWdyLFBbN109S3IsUFs4XT1WcixQWzldPWlpLFBbMTBdPVJyLFBbMTFdPWxp''@;'; put 'put ''LFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRdPW4wLFBbMTVdPWQwLFBbMTZdPW0wLFBbMTddPUcwLFBbMThdPURpLDAhPT1WJiYoUFsxOV09VixlZS5sZW5ndGgrKyksZWV9O2Z1bmN0aW9uIG9lKGhlLE8seil7cmV0dXJuKG5ldyBjZSkubXVscChoZSxPLHopfWZ1bmN0aW9uIGNlKGhlLE8pe3Ro''@;'; put 'put ''aXMueD1oZSx0aGlzLnk9T31NYXRoLmltdWx8fChKPUspLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRoaXMubGVuZ3RoK08ubGVuZ3RoO3JldHVybiBlZT0xMD09PXRoaXMubGVuZ3RoJiYxMD09PU8ubGVuZ3RoP0oodGhpcyxPLHopOm5lPDYzP0sodGhpcyxP''@;'; put 'put ''LHopOm5lPDEwMjQ/ZnVuY3Rpb24gc2UoaGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmUsei5sZW5ndGg9aGUubGVuZ3RoK08ubGVuZ3RoO2Zvcih2YXIgZWU9MCxuZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsrKXt2YXIgUD1uZTtuZT0wO2Zvcih2YXIgVj02NzEwODg2''@;'; put 'put ''MyZlZSxUPU1hdGgubWluKHgsTy5sZW5ndGgtMSksUz1NYXRoLm1heCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7UysrKXt2YXIgRGU9KDB8aGUud29yZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSksUGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2MyYoUGU9UGUrVnwwKSxuZSs9KFA9KFA9UCsoRGUvNjcx''@;'; put 'put ''MDg4NjR8MCl8MCkrKFBlPj4+MjYpfDApPj4+MjYsUCY9NjcxMDg4NjN9ei53b3Jkc1t4XT1WLGVlPVAsUD1uZX1yZXR1cm4gMCE9PWVlP3oud29yZHNbeF09ZWU6ei5sZW5ndGgtLSx6LnN0cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlzLE8seiksZWV9LGNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1''@;'; put 'put ''bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksZWU9VS5wcm90b3R5cGUuX2NvdW50Qml0cyhPKS0xLG5lPTA7bmU8TztuZSsrKXpbbmVdPXRoaXMucmV2QmluKG5lLGVlLE8pO3JldHVybiB6fSxjZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKE8seixlZSl7aWYoMD09PU98fE89''@;'; put 'put ''PT1lZS0xKXJldHVybiBPO2Zvcih2YXIgbmU9MCx4PTA7eDx6O3grKyluZXw9KDEmTyk8PHoteC0xLE8+Pj0xO3JldHVybiBuZX0sY2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6LGVlLG5lLHgsUCl7Zm9yKHZhciBWPTA7VjxQO1YrKyluZVtWXT16W09bVl1dLHhbVl09ZWVbT1tW''@;'; put 'put ''XV19LGNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oTyx6LGVlLG5lLHgsUCl7dGhpcy5wZXJtdXRlKFAsTyx6LGVlLG5lLHgpO2Zvcih2YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFyIFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0aC5QSS9UKSx5''@;'; put 'put ''ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBDZT1TLERlPUYsUGU9MDtQZTxWO1BlKyspe3ZhciBRZT1lZVt5ZStQZV0sJGU9bmVbeWUrUGVdLGd0PWVlW3llK1BlK1ZdLHd0PW5lW3llK1BlK1ZdLG10PUNlKmd0LURlKnd0O3d0PUNlKnd0K0RlKmd0LGVlW3llK1BlXT1RZSsoZ3Q9bXQpLG5lW3ll''@;'; put 'put ''K1BlXT0kZSt3dCxlZVt5ZStQZStWXT1RZS1ndCxuZVt5ZStQZStWXT0kZS13dCxQZSE9PVQmJihtdD1TKkNlLUYqRGUsRGU9UypEZStGKkNlLENlPW10KX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihPLHope3ZhciBlZT0xfE1hdGgubWF4KHosTyksbmU9MSZlZSx4PTA7''@;'; put 'put ''Zm9yKGVlPWVlLzJ8MDtlZTtlZT4+Pj0xKXgrKztyZXR1cm4gMTw8eCsxK25lfSxjZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKE8seixlZSl7aWYoIShlZTw9MSkpZm9yKHZhciBuZT0wO25lPGVlLzI7bmUrKyl7dmFyIHg9T1tuZV07T1tuZV09T1tlZS1uZS0xXSxPW2VlLW5lLTFd''@;'; put 'put ''PXgseD16W25lXSx6W25lXT0teltlZS1uZS0xXSx6W2VlLW5lLTFdPS14fX0sY2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihPLHope2Zvcih2YXIgZWU9MCxuZT0wO25lPHovMjtuZSsrKXt2YXIgeD04MTkyKk1hdGgucm91bmQoT1syKm5lKzFdL3opK01hdGgucm91bmQoT1sy''@;'; put 'put ''Km5lXS96KStlZTtPW25lXT02NzEwODg2MyZ4LGVlPXg8NjcxMDg4NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJuIE99LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKE8seixlZSxuZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQKyspZWVbMipQXT04MTkxJih4Kz0wfE9bUF0pLGVlWzIq''@;'; put 'put ''UCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+PTEzO2ZvcihQPTIqejtQPG5lOysrUCllZVtQXT0wO0UoMD09PXgpLEUoMD09KC04MTkyJngpKX0sY2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxlZT0wO2VlPE87ZWUrKyl6W2VlXT0wO3JldHVybiB6''@;'; put 'put ''fSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoTy5sZW5ndGgsei5sZW5ndGgpLHg9dGhpcy5tYWtlUkJUKG5lKSxQPXRoaXMuc3R1YihuZSksVj1uZXcgQXJyYXkobmUpLFQ9bmV3IEFycmF5KG5lKSxTPW5ldyBBcnJheShuZSks''@;'; put 'put ''Rj1uZXcgQXJyYXkobmUpLHllPW5ldyBBcnJheShuZSksQ2U9bmV3IEFycmF5KG5lKSxEZT1lZS53b3JkcztEZS5sZW5ndGg9bmUsdGhpcy5jb252ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgsVixuZSksdGhpcy5jb252ZXJ0MTNiKHoud29yZHMsei5sZW5ndGgsRixuZSksdGhpcy50cmFuc2Zv''@;'; put 'put ''cm0oVixQLFQsUyxuZSx4KSx0aGlzLnRyYW5zZm9ybShGLFAseWUsQ2UsbmUseCk7Zm9yKHZhciBQZT0wO1BlPG5lO1BlKyspe3ZhciBRZT1UW1BlXSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1NbUGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRoaXMuY29uanVn''@;'; put 'put ''YXRlKFQsUyxuZSksdGhpcy50cmFuc2Zvcm0oVCxTLERlLFAsbmUseCksdGhpcy5jb25qdWdhdGUoRGUsUCxuZSksdGhpcy5ub3JtYWxpemUxM2IoRGUsbmUpLGVlLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5ndGg9Ty5sZW5ndGgrei5sZW5ndGgsZWUuc3RyaXAoKX0s''@;'; put 'put ''VS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksdGhpcy5tdWxUbyhPLHopfSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6''@;'; put 'put ''LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksb2UodGhpcyxPLHopfSxVLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oTyx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9m''@;'; put 'put ''IE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZhciB6PTAsZWU9MDtlZTx0aGlzLmxlbmd0aDtlZSsrKXt2YXIgbmU9KDB8dGhpcy53b3Jkc1tlZV0pKk8seD0oNjcxMDg4NjMmbmUpKyg2NzEwODg2MyZ6KTt6Pj49MjYseis9bmUvNjcxMDg4NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jkc1tlZV09Njcx''@;'; put 'put ''MDg4NjMmeH1yZXR1cm4gMCE9PXomJih0aGlzLndvcmRzW2VlXT16LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihPKX0sVS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRo''@;'; put 'put ''aXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxVLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24gdGUoaGUpe2Zvcih2YXIgTz1uZXcgQXJyYXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6PE8ubGVuZ3Ro''@;'; put 'put ''O3orKyl7dmFyIG5lPXolMjY7T1t6XT0oaGUud29yZHNbei8yNnwwXSYxPDxuZSk+Pj5uZX1yZXR1cm4gT30oTyk7aWYoMD09PXoubGVuZ3RoKXJldHVybiBuZXcgVSgxKTtmb3IodmFyIGVlPXRoaXMsbmU9MDtuZTx6Lmxlbmd0aCYmMD09PXpbbmVdO25lKyssZWU9ZWUuc3FyKCkpO2lmKCsr''@;'; put 'put ''bmU8ei5sZW5ndGgpZm9yKHZhciB4PWVlLnNxcigpO25lPHoubGVuZ3RoO25lKysseD14LnNxcigpKTAhPT16W25lXSYmKGVlPWVlLm11bCh4KSk7cmV0dXJuIGVlfSxVLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB4LHo9TyUy''@;'; put 'put ''NixlZT0oTy16KS8yNixuZT02NzEwODg2Mz4+PjI2LXo8PDI2LXo7aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFY9dGhpcy53b3Jkc1t4XSZuZTt0aGlzLndvcmRzW3hdPSgwfHRoaXMud29yZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16fVAmJih0aGlz''@;'; put 'put ''LndvcmRzW3hdPVAsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWVlKXtmb3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXRoaXMud29yZHNbeCtlZV09dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8ZWU7eCsrKXRoaXMud29yZHNbeF09MDt0aGlzLmxlbmd0aCs9ZWV9cmV0dXJuIHRoaXMuc3RyaXAo''@;'; put 'put ''KX0sVS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApLG5lPXo/KHoteiUyNikvMjY6''@;'; put 'put ''MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4oKE8teCkvMjYsdGhpcy5sZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4NjM+Pj54PDx4LFQ9ZWU7aWYobmUtPVAsbmU9TWF0aC5tYXgoMCxuZSksVCl7Zm9yKHZhciBTPTA7UzxQO1MrKylULndvcmRzW1NdPXRoaXMud29yZHNbU107VC5sZW5ndGg9UH1p''@;'; put 'put ''ZigwIT09UClpZih0aGlzLmxlbmd0aD5QKWZvcih0aGlzLmxlbmd0aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1MrUF07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3RoLTE7Uz49MCYm''@;'; put 'put ''KDAhPT1GfHxTPj1uZSk7Uy0tKXt2YXIgeWU9MHx0aGlzLndvcmRzW1NdO3RoaXMud29yZHNbU109Rjw8MjYteHx5ZT4+PngsRj15ZSZWfXJldHVybiBUJiYwIT09RiYmKFQud29yZHNbVC5sZW5ndGgrK109RiksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3Ro''@;'; put 'put ''PTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oTyx6LGVlKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTyx6LGVlKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKE8pfSxVLnBy''@;'; put 'put ''b3RvdHlwZS51c2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihPKX0sVS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKE8pfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgp''@;'; put 'put ''Lml1c2hybihPKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsZWU9KE8teikvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9ZWV8fCEodGhpcy53b3Jkc1tlZV0mMTw8eikpfSxVLnByb3RvdHlwZS5pbWFza249ZnVu''@;'; put 'put ''Y3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsZWU9KE8teikvMjY7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1lZT90aGlzOigwIT09eiYmZWUrKyx0''@;'; put 'put ''aGlzLmxlbmd0aD1NYXRoLm1pbihlZSx0aGlzLmxlbmd0aCksMCE9PXomJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW1h''@;'; put 'put ''c2tuKE8pfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwP3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8odGhpcy53b3Jk''@;'; put 'put ''c1swXT1PLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE8pfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jkc1swXSs9Tztm''@;'; put 'put ''b3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPj02NzEwODg2NDt6KyspdGhpcy53b3Jkc1t6XS09NjcxMDg4NjQsej09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMu''@;'; put 'put ''bGVuZ3RoLHorMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTyl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwKXJldHVybiB0aGlzLmlhZGRuKC1PKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFk''@;'; put 'put ''ZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09TywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29y''@;'; put 'put ''ZHNbel08MDt6KyspdGhpcy53b3Jkc1t6XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t6KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihPKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihPKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKE8pfSxVLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVs''@;'; put 'put ''PWZ1bmN0aW9uKE8seixlZSl7dmFyIHg7dGhpcy5fZXhwYW5kKE8ubGVuZ3RoK2VlKTt2YXIgUCxWPTA7Zm9yKHg9MDt4PE8ubGVuZ3RoO3grKyl7UD0oMHx0aGlzLndvcmRzW3grZWVdKStWO3ZhciBUPSgwfE8ud29yZHNbeF0pKno7Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNiktKFQvNjcxMDg4''@;'; put 'put ''NjR8MCksdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQfWZvcig7eDx0aGlzLmxlbmd0aC1lZTt4KyspVj0oUD0oMHx0aGlzLndvcmRzW3grZWVdKStWKT4+MjYsdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQO2lmKDA9PT1WKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUoLTE9PT1WKSxW''@;'; put 'put ''PTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKVY9KFA9LSgwfHRoaXMud29yZHNbeF0pK1YpPj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlA7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRo''@;'; put 'put ''aXMuY2xvbmUoKSx4PU8sUD0wfHgud29yZHNbeC5sZW5ndGgtMV07MCE9KGVlPTI2LXRoaXMuX2NvdW50Qml0cyhQKSkmJih4PXgudXNobG4oZWUpLG5lLml1c2hsbihlZSksUD0wfHgud29yZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9bmUubGVuZ3RoLXgubGVuZ3RoO2lmKCJtb2QiIT09eil7''@;'; put 'put ''KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1UKzEsUy53b3Jkcz1uZXcgQXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIgRj0wO0Y8Uy5sZW5ndGg7RisrKVMud29yZHNbRl09MH12YXIgeWU9bmUuY2xvbmUoKS5faXNobG5zdWJtdWwoeCwxLFQpOzA9PT15ZS5uZWdhdGl2ZSYmKG5lPXllLFMmJihTLndv''@;'; put 'put ''cmRzW1RdPTEpKTtmb3IodmFyIENlPVQtMTtDZT49MDtDZS0tKXt2YXIgRGU9NjcxMDg4NjQqKDB8bmUud29yZHNbeC5sZW5ndGgrQ2VdKSsoMHxuZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7Zm9yKERlPU1hdGgubWluKERlL1B8MCw2NzEwODg2MyksbmUuX2lzaGxuc3VibXVsKHgsRGUsQ2Up''@;'; put 'put ''OzAhPT1uZS5uZWdhdGl2ZTspRGUtLSxuZS5uZWdhdGl2ZT0wLG5lLl9pc2hsbnN1Ym11bCh4LDEsQ2UpLG5lLmlzWmVybygpfHwobmUubmVnYXRpdmVePTEpO1MmJihTLndvcmRzW0NlXT1EZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSxuZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9PWVlJiZuZS5p''@;'; put 'put ''dXNocm4oZWUpLHtkaXY6U3x8bnVsbCxtb2Q6bmV9fSxVLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6LGVlKXtyZXR1cm4gRSghTy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZl''@;'; put 'put ''PyhQPXRoaXMubmVnKCkuZGl2bW9kKE8seiksIm1vZCIhPT16JiYobmU9UC5kaXYubmVnKCkpLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQoTykpLHtkaXY6bmUsbW9kOnh9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmU/KFA9''@;'; put 'put ''dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwibW9kIiE9PXomJihuZT1QLmRpdi5uZWcoKSkse2RpdjpuZSxtb2Q6UC5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlzLm5lZygpLmRpdm1vZChPLm5lZygpLHopLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUmJjAh''@;'; put 'put ''PT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykpLHtkaXY6UC5kaXYsbW9kOnh9KTpPLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoTyk8MD97ZGl2Om5ldyBVKDApLG1vZDp0aGlzfToxPT09Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpudWxsfToi''@;'; put 'put ''bW9kIj09PXo/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihPLHopO3ZhciBuZSx4LFB9LFUucHJvdG90eXBlLmRpdj1mdW5j''@;'; put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywiZGl2IiwhMSkuZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwh''@;'; put 'put ''MCkubW9kfSxVLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihPKXt2YXIgej10aGlzLmRpdm1vZChPKTtpZih6Lm1vZC5pc1plcm8oKSlyZXR1cm4gei5kaXY7dmFyIGVlPTAhPT16LmRpdi5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8pOnoubW9kLG5lPU8udXNocm4oMSkseD1PLmFuZGxuKDEp''@;'; put 'put ''LFA9ZWUuY21wKG5lKTtyZXR1cm4gUDwwfHwxPT09eCYmMD09PVA/ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZlP3ouZGl2LmlzdWJuKDEpOnouZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0oMTw8MjYpJU8sZWU9MCxu''@;'; put 'put ''ZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pZWU9KHoqZWUrKDB8dGhpcy53b3Jkc1tuZV0pKSVPO3JldHVybiBlZX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PTAsZWU9dGhpcy5sZW5ndGgtMTtlZT49MDtlZS0tKXt2YXIgbmU9KDB8''@;'; put 'put ''dGhpcy53b3Jkc1tlZV0pKzY3MTA4ODY0Kno7dGhpcy53b3Jkc1tlZV09bmUvT3wwLHo9bmUlT31yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oTyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oTyl7''@;'; put 'put ''RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHo9dGhpcyxlZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgbmU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBVKDApLFY9bmV3IFUoMSksVD0wO3ouaXNFdmVuKCkmJmVl''@;'; put 'put ''LmlzRXZlbigpOyl6Lml1c2hybigxKSxlZS5pdXNocm4oMSksKytUO2Zvcih2YXIgUz1lZS5jbG9uZSgpLEY9ei5jbG9uZSgpOyF6LmlzWmVybygpOyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsrK3llLENlPDw9MSk7aWYoeWU+MClmb3Ioei5pdXNocm4o''@;'; put 'put ''eWUpO3llLS0gPjA7KShuZS5pc09kZCgpfHx4LmlzT2RkKCkpJiYobmUuaWFkZChTKSx4LmlzdWIoRikpLG5lLml1c2hybigxKSx4Lml1c2hybigxKTtmb3IodmFyIERlPTAsUGU9MTswPT0oZWUud29yZHNbMF0mUGUpJiZEZTwyNjsrK0RlLFBlPDw9MSk7aWYoRGU+MClmb3IoZWUuaXVzaHJu''@;'; put 'put ''KERlKTtEZS0tID4wOykoUC5pc09kZCgpfHxWLmlzT2RkKCkpJiYoUC5pYWRkKFMpLFYuaXN1YihGKSksUC5pdXNocm4oMSksVi5pdXNocm4oMSk7ei5jbXAoZWUpPj0wPyh6LmlzdWIoZWUpLG5lLmlzdWIoUCkseC5pc3ViKFYpKTooZWUuaXN1Yih6KSxQLmlzdWIobmUpLFYuaXN1Yih4KSl9''@;'; put 'put ''cmV0dXJue2E6UCxiOlYsZ2NkOmVlLml1c2hsbihUKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgeWUsej10aGlzLGVlPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9y''@;'; put 'put ''KHZhciBuZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9ZWUuY2xvbmUoKTt6LmNtcG4oMSk+MCYmZWUuY21wbigxKT4wOyl7Zm9yKHZhciBWPTAsVD0xOzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2OysrVixUPDw9MSk7aWYoVj4wKWZvcih6Lml1c2hybihWKTtWLS0gPjA7KW5lLmlzT2RkKCkmJm5l''@;'; put 'put ''LmlhZGQoUCksbmUuaXVzaHJuKDEpO2Zvcih2YXIgUz0wLEY9MTswPT0oZWUud29yZHNbMF0mRikmJlM8MjY7KytTLEY8PD0xKTtpZihTPjApZm9yKGVlLml1c2hybihTKTtTLS0gPjA7KXguaXNPZGQoKSYmeC5pYWRkKFApLHguaXVzaHJuKDEpO3ouY21wKGVlKT49MD8oei5pc3ViKGVlKSxu''@;'; put 'put ''ZS5pc3ViKHgpKTooZWUuaXN1Yih6KSx4LmlzdWIobmUpKX1yZXR1cm4oeWU9MD09PXouY21wbigxKT9uZTp4KS5jbXBuKDApPDAmJnllLmlhZGQoTykseWV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihPKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBPLmFicygpO2lmKE8uaXNaZXJvKCkp''@;'; put 'put ''cmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9dGhpcy5jbG9uZSgpLGVlPU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAsZWUubmVnYXRpdmU9MDtmb3IodmFyIG5lPTA7ei5pc0V2ZW4oKSYmZWUuaXNFdmVuKCk7bmUrKyl6Lml1c2hybigxKSxlZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3ouaXNFdmVu''@;'; put 'put ''KCk7KXouaXVzaHJuKDEpO2Zvcig7ZWUuaXNFdmVuKCk7KWVlLml1c2hybigxKTt2YXIgeD16LmNtcChlZSk7aWYoeDwwKXt2YXIgUD16O3o9ZWUsZWU9UH1lbHNlIGlmKDA9PT14fHwwPT09ZWUuY21wbigxKSlicmVhazt6LmlzdWIoZWUpfXJldHVybiBlZS5pdXNobG4obmUpfSxVLnByb3Rv''@;'; put 'put ''dHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmVnY2QoTykuYS51bW9kKE8pfSxVLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNb''@;'; put 'put ''MF0pfSxVLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZPfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyk7dmFyIHo9TyUyNixlZT0oTy16KS8yNixuZT0xPDx6O2lmKHRoaXMubGVuZ3RoPD1lZSlyZXR1''@;'; put 'put ''cm4gdGhpcy5fZXhwYW5kKGVlKzEpLHRoaXMud29yZHNbZWVdfD1uZSx0aGlzO2Zvcih2YXIgeD1uZSxQPWVlOzAhPT14JiZQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9MHx0aGlzLndvcmRzW1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1cm4gMCE9PXgm''@;'; put 'put ''Jih0aGlzLndvcmRzW1BdPXgsdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oTyl7dmFyIGVlLHo9TzwwO2lmKDAhPT10aGlz''@;'; put 'put ''Lm5lZ2F0aXZlJiYheilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSllZT0xO2Vsc2V7eiYmKE89LU8pLEUoTzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIG5lPTB8dGhpcy53b3Jkc1swXTtl''@;'; put 'put ''ZT1uZT09PU8/MDpuZTxPPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWVlOmVlfSxVLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oTyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2''@;'; put 'put ''ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVjbXAoTyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXo6en0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihPKXtpZih0aGlzLmxlbmd0aD5PLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxPLmxlbmd0aClyZXR1cm4tMTtmb3IodmFy''@;'; put 'put ''IHo9MCxlZT10aGlzLmxlbmd0aC0xO2VlPj0wO2VlLS0pe3ZhciBuZT0wfHRoaXMud29yZHNbZWVdLHg9MHxPLndvcmRzW2VlXTtpZihuZSE9PXgpe25lPHg/ej0tMTpuZT54JiYoej0xKTticmVha319cmV0dXJuIHp9LFUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRo''@;'; put 'put ''aXMuY21wbihPKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPj0w''@;'; put 'put ''fSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKTw9MH0sVS5wcm90''@;'; put 'put ''b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wKE8pfSxVLnJlZD1mdW5jdGlvbihP''@;'; put 'put ''KXtyZXR1cm4gbmV3IFRlKE8pfSxVLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE8u''@;'; put 'put ''Y29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LFUu''@;'; put 'put ''cHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChP''@;'; put 'put ''KX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJl''@;'; put 'put ''ZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxP''@;'; put 'put ''KX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwi''@;'; put 'put ''cmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0''@;'; put 'put ''aGlzLE8pLHRoaXMucmVkLm11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5pbXVsKHRoaXMsTyl9''@;'; put 'put ''LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9u''@;'; put 'put ''bHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5f''@;'; put 'put ''dmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0s''@;'; put 'put ''VS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkJiYhTy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTyl9O3ZhciBkZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1''@;'; put 'put ''NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhlLE8pe3RoaXMubmFtZT1oZSx0aGlzLnA9bmV3IFUoTywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEFlKCl7''@;'; put 'put ''dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgpe3ZlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm''@;'; put 'put ''IDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gU2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEllKCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZm''@;'; put 'put ''ZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUZShoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAsdGhpcy5wcmltZT1PfWVsc2UgRShoZS5ndG4oMSksIm1v''@;'; put 'put ''ZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1oZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTWUoaGUpe1RlLmNhbGwodGhpcyxoZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQl''@;'; put 'put ''MjYpLHRoaXMucj1uZXcgVSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52''@;'; put 'put ''PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX12ZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiBPLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksT30sdmUucHJvdG90eXBl''@;'; put 'put ''LmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFyIGVlLHo9Tztkb3t0aGlzLnNwbGl0KHosdGhpcy50bXApLGVlPSh6PSh6PXRoaXMuaW11bEsoeikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShlZT50aGlzLm4pO3ZhciBuZT1lZTx0aGlzLm4/LTE6ei51Y21wKHRoaXMucCk7cmV0''@;'; put 'put ''dXJuIDA9PT1uZT8oei53b3Jkc1swXT0wLHoubGVuZ3RoPTEpOm5lPjA/ei5pc3ViKHRoaXMucCk6dm9pZCAwIT09ei5zdHJpcD96LnN0cmlwKCk6ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtPLml1c2hybih0aGlzLm4sMCx6KX0sdmUucHJvdG90eXBl''@;'; put 'put ''LmltdWxLPWZ1bmN0aW9uKE8pe3JldHVybiBPLmltdWwodGhpcy5rKX0sRWUoQWUsdmUpLEFlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope2Zvcih2YXIgbmU9TWF0aC5taW4oTy5sZW5ndGgsOSkseD0wO3g8bmU7eCsrKXoud29yZHNbeF09Ty53b3Jkc1t4XTtpZih6Lmxlbmd0aD1u''@;'; put 'put ''ZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53b3Jkc1swXT0wLHZvaWQoTy5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jkc1s5XTtmb3Ioei53b3Jkc1t6Lmxlbmd0aCsrXT00MTk0MzAzJlAseD0xMDt4PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxPLndvcmRzW3hdO08ud29yZHNbeC0xMF09KDQxOTQzMDMm''@;'; put 'put ''Vik8PDR8UD4+PjIyLFA9Vn1PLndvcmRzW3gtMTBdPVA+Pj49MjIsTy5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0aD4xMD8xMDo5fSxBZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRzW08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgrPTI7Zm9yKHZh''@;'; put 'put ''ciB6PTAsZWU9MDtlZTxPLmxlbmd0aDtlZSsrKXt2YXIgbmU9MHxPLndvcmRzW2VlXTtPLndvcmRzW2VlXT02NzEwODg2MyYoeis9OTc3Km5lKSx6PTY0Km5lKyh6LzY3MTA4ODY0fDApfXJldHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8ud29yZHNbTy5s''@;'; put 'put ''ZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99LEVlKGtlLHZlKSxFZShTZSx2ZSksRWUoSWUsdmUpLEllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtmb3IodmFyIHo9MCxlZT0wO2VlPE8ubGVuZ3RoO2VlKyspe3ZhciBuZT0xOSooMHxPLndvcmRzW2VlXSkreix4PTY3MTA4ODYzJm5lO25l''@;'; put 'put ''Pj4+PTI2LE8ud29yZHNbZWVdPXgsej1uZX1yZXR1cm4gMCE9PXomJihPLndvcmRzW08ubGVuZ3RoKytdPXopLE99LFUuX3ByaW1lPWZ1bmN0aW9uKE8pe2lmKGRlW09dKXJldHVybiBkZVtPXTt2YXIgejtpZigiazI1NiI9PT1PKXo9bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09Tyl6PW5ldyBr''@;'; put 'put ''ZTtlbHNlIGlmKCJwMTkyIj09PU8pej1uZXcgU2U7ZWxzZXtpZigicDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrTyk7ej1uZXcgSWV9cmV0dXJuIGRlW09dPXosen0sVGUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUs''@;'; put 'put ''InJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oTyx6KXtFKDA9PShPLm5lZ2F0aXZlfHoubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBv''@;'; put 'put ''c2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVkPT09ei5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpPLnVtb2QodGhp''@;'; put 'put ''cy5tKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNaZXJvKCk/Ty5jbG9uZSgpOnRoaXMubS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBl''@;'; put 'put ''ZT1PLmFkZCh6KTtyZXR1cm4gZWUuY21wKHRoaXMubSk+PTAmJmVlLmlzdWIodGhpcy5tKSxlZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmlhZGQoeik7cmV0dXJuIGVlLmNtcCh0aGlzLm0pPj0w''@;'; put 'put ''JiZlZS5pc3ViKHRoaXMubSksZWV9LFRlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIGVlPU8uc3ViKHopO3JldHVybiBlZS5jbXBuKDApPDAmJmVlLmlhZGQodGhpcy5tKSxlZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pc3ViPWZ1''@;'; put 'put ''bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmlzdWIoeik7cmV0dXJuIGVlLmNtcG4oMCk8MCYmZWUuaWFkZCh0aGlzLm0pLGVlfSxUZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8udXNobG4oeikp''@;'; put 'put ''fSxUZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8uaW11bCh6KSl9LFRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLm11bCh6KSl9LFRlLnBy''@;'; put 'put ''b3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltdWwoTyxPLmNsb25lKCkpfSxUZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLm11bChPLE8pfSxUZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihPKXtpZihPLmlzWmVybygpKXJldHVybiBPLmNsb25l''@;'; put 'put ''KCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMpO2lmKEUoeiUyPT0xKSwzPT09eil7dmFyIGVlPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coTyxlZSl9Zm9yKHZhciBuZT10aGlzLm0uc3VibigxKSx4PTA7IW5lLmlzWmVybygpJiYwPT09bmUuYW5kbG4oMSk7''@;'; put 'put ''KXgrKyxuZS5pdXNocm4oMSk7RSghbmUuaXNaZXJvKCkpO3ZhciBQPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9UC5yZWROZWcoKSxUPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxTPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcgVSgyKlMqUykudG9SZWQodGhpcyk7MCE9PXRoaXMucG93''@;'; put 'put ''KFMsVCkuY21wKFYpOylTLnJlZElBZGQoVik7Zm9yKHZhciBGPXRoaXMucG93KFMsbmUpLHllPXRoaXMucG93KE8sbmUuYWRkbigxKS5pdXNocm4oMSkpLENlPXRoaXMucG93KE8sbmUpLERlPXg7MCE9PUNlLmNtcChQKTspe2Zvcih2YXIgUGU9Q2UsUWU9MDswIT09UGUuY21wKFApO1FlKysp''@;'; put 'put ''UGU9UGUucmVkU3FyKCk7RShRZTxEZSk7dmFyICRlPXRoaXMucG93KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFlLTEpKTt5ZT15ZS5yZWRNdWwoJGUpLEY9JGUucmVkU3FyKCksQ2U9Q2UucmVkTXVsKEYpLERlPVFlfXJldHVybiB5ZX0sVGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7dmFy''@;'; put 'put ''IHo9Ty5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXoubmVnYXRpdmU/KHoubmVnYXRpdmU9MCx0aGlzLmltb2QoeikucmVkTmVnKCkpOnRoaXMuaW1vZCh6KX0sVGUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPLHope2lmKHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMp''@;'; put 'put ''O2lmKDA9PT16LmNtcG4oMSkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgbmU9bmV3IEFycmF5KDE2KTtuZVswXT1uZXcgVSgxKS50b1JlZCh0aGlzKSxuZVsxXT1PO2Zvcih2YXIgeD0yO3g8bmUubGVuZ3RoO3grKyluZVt4XT10aGlzLm11bChuZVt4LTFdLE8pO3ZhciBQPW5lWzBdLFY9MCxUPTAs''@;'; put 'put ''Uz16LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UyYmKFM9MjYpLHg9ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9yKHZhciBGPXoud29yZHNbeF0seWU9Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1GPj55ZSYxO1AhPT1uZVswXSYmKFA9dGhpcy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/KFY8PD0xLFZ8''@;'; put 'put ''PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09eWUpJiYoUD10aGlzLm11bChQLG5lW1ZdKSxUPTAsVj0wKSk6VD0wfVM9MjZ9cmV0dXJuIFB9LFRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7dmFyIHo9Ty51bW9kKHRoaXMubSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUoKTp6fSxUZS5w''@;'; put 'put ''cm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1udWxsLHp9LFUubW9udD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IE1lKE8pfSxFZShNZSxUZSksTWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5p''@;'; put 'put ''bW9kKE8udXNobG4odGhpcy5zaGlmdCkpfSxNZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5pbW9kKE8ubXVsKHRoaXMucmludikpO3JldHVybiB6LnJlZD1udWxsLHp9LE1lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8''@;'; put 'put ''ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jkc1swXT0wLE8ubGVuZ3RoPTEsTzt2YXIgZWU9Ty5pbXVsKHopLG5lPWVlLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PWVlLmlzdWIobmUpLml1c2hybih0aGlzLnNoaWZ0KSxQ''@;'; put 'put ''PXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxNZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gbmV3IFUo''@;'; put 'put ''MCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBlZT1PLm11bCh6KSxuZT1lZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1lZS5pc3ViKG5lKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0w''@;'; put 'put ''P1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sTWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0o''@;'; put 'put ''WGU9TC5ubWQoWGUpLHRoaXMpfSw5MjczNTpmdW5jdGlvbihYZSl7WGUuZXhwb3J0cz1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBKZShmdCl7cmV0dXJuKEplPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0''@;'; put 'put ''aW9uKEh0KXtyZXR1cm4gdHlwZW9mIEh0fTpmdW5jdGlvbihIdCl7cmV0dXJuIEh0JiYiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZIdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmSHQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBIdH0pKGZ0KX1mdW5jdGlvbiBMKGZ0LEh0''@;'; put 'put ''KXtyZXR1cm4oTD1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKFVlLHl0KXtyZXR1cm4gVWUuX19wcm90b19fPXl0LFVlfSkoZnQsSHQpfWZ1bmN0aW9uIG1lKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3R8fFJlZmxlY3QuY29uc3Ry''@;'; put 'put ''dWN0LnNoYW0pcmV0dXJuITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFByb3h5KXJldHVybiEwO3RyeXtyZXR1cm4gQm9vbGVhbi5wcm90b3R5cGUudmFsdWVPZi5jYWxsKFJlZmxlY3QuY29uc3RydWN0KEJvb2xlYW4sW10sZnVuY3Rpb24oKXt9KSksITB9Y2F0Y2goZnQpe3JldHVybiExfX1m''@;'; put 'put ''dW5jdGlvbiBCKGZ0LEh0LEdlKXtyZXR1cm4oQj1tZSgpP1JlZmxlY3QuY29uc3RydWN0OmZ1bmN0aW9uKHl0LGp0LEp0KXt2YXIgZ249W251bGxdO2duLnB1c2guYXBwbHkoZ24sanQpO3ZhciB5bj1uZXcoRnVuY3Rpb24uYmluZC5hcHBseSh5dCxnbikpO3JldHVybiBKdCYmTCh5bixKdC5w''@;'; put 'put ''cm90b3R5cGUpLHlufSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfWZ1bmN0aW9uIEUoZnQpe3JldHVybiBmdW5jdGlvbiBFZShmdCl7aWYoQXJyYXkuaXNBcnJheShmdCkpcmV0dXJuIGooZnQpfShmdCl8fGZ1bmN0aW9uIFUoZnQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxs''@;'; put 'put ''IT1mdFtTeW1ib2wuaXRlcmF0b3JdfHxudWxsIT1mdFsiQEBpdGVyYXRvciJdKXJldHVybiBBcnJheS5mcm9tKGZ0KX0oZnQpfHxmdW5jdGlvbiBRKGZ0LEh0KXtpZihmdCl7aWYoInN0cmluZyI9PXR5cGVvZiBmdClyZXR1cm4gaihmdCxIdCk7dmFyIEdlPU9iamVjdC5wcm90b3R5cGUudG9T''@;'; put 'put ''dHJpbmcuY2FsbChmdCkuc2xpY2UoOCwtMSk7aWYoIk9iamVjdCI9PT1HZSYmZnQuY29uc3RydWN0b3ImJihHZT1mdC5jb25zdHJ1Y3Rvci5uYW1lKSwiTWFwIj09PUdlfHwiU2V0Ij09PUdlKXJldHVybiBBcnJheS5mcm9tKGZ0KTtpZigiQXJndW1lbnRzIj09PUdlfHwvXig/OlVpfEkpbnQo''@;'; put 'put ''Pzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChHZSkpcmV0dXJuIGooZnQsSHQpfX0oZnQpfHxmdW5jdGlvbiByZSgpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBzcHJlYWQgbm9uLWl0ZXJhYmxlIGluc3RhbmNlLlxuSW4gb3JkZXIgdG8gYmUgaXRl''@;'; put 'put ''cmFibGUsIG5vbi1hcnJheSBvYmplY3RzIG11c3QgaGF2ZSBhIFtTeW1ib2wuaXRlcmF0b3JdKCkgbWV0aG9kLiIpfSgpfWZ1bmN0aW9uIGooZnQsSHQpeyhudWxsPT1IdHx8SHQ+ZnQubGVuZ3RoKSYmKEh0PWZ0Lmxlbmd0aCk7Zm9yKHZhciBHZT0wLFVlPW5ldyBBcnJheShIdCk7R2U8SHQ7''@;'; put 'put ''R2UrKylVZVtHZV09ZnRbR2VdO3JldHVybiBVZX12YXIgYWU9T2JqZWN0Lmhhc093blByb3BlcnR5LFk9T2JqZWN0LnNldFByb3RvdHlwZU9mLFc9T2JqZWN0LmlzRnJvemVuLE49T2JqZWN0LmdldFByb3RvdHlwZU9mLHRlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsSz1PYmpl''@;'; put 'put ''Y3QuZnJlZXplLEo9T2JqZWN0LnNlYWwsc2U9T2JqZWN0LmNyZWF0ZSxvZT0idW5kZWZpbmVkIiE9dHlwZW9mIFJlZmxlY3QmJlJlZmxlY3QsY2U9b2UuYXBwbHksZGU9b2UuY29uc3RydWN0O2NlfHwoY2U9ZnVuY3Rpb24oSHQsR2UsVWUpe3JldHVybiBIdC5hcHBseShHZSxVZSl9KSxLfHwo''@;'; put 'put ''Sz1mdW5jdGlvbihIdCl7cmV0dXJuIEh0fSksSnx8KEo9ZnVuY3Rpb24oSHQpe3JldHVybiBIdH0pLGRlfHwoZGU9ZnVuY3Rpb24oSHQsR2Upe3JldHVybiBCKEh0LEUoR2UpKX0pO3ZhciB2ZT1lZShBcnJheS5wcm90b3R5cGUuZm9yRWFjaCksQWU9ZWUoQXJyYXkucHJvdG90eXBlLnBvcCks''@;'; put 'put ''a2U9ZWUoQXJyYXkucHJvdG90eXBlLnB1c2gpLFNlPWVlKFN0cmluZy5wcm90b3R5cGUudG9Mb3dlckNhc2UpLEllPWVlKFN0cmluZy5wcm90b3R5cGUubWF0Y2gpLFRlPWVlKFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksTWU9ZWUoU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mKSxoZT1lZShT''@;'; put 'put ''dHJpbmcucHJvdG90eXBlLnRyaW0pLE89ZWUoUmVnRXhwLnByb3RvdHlwZS50ZXN0KSx6PWZ1bmN0aW9uIG5lKGZ0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIEh0PWFyZ3VtZW50cy5sZW5ndGgsR2U9bmV3IEFycmF5KEh0KSxVZT0wO1VlPEh0O1VlKyspR2VbVWVdPWFyZ3VtZW50c1tV''@;'; put 'put ''ZV07cmV0dXJuIGRlKGZ0LEdlKX19KFR5cGVFcnJvcik7ZnVuY3Rpb24gZWUoZnQpe3JldHVybiBmdW5jdGlvbihIdCl7Zm9yKHZhciBHZT1hcmd1bWVudHMubGVuZ3RoLFVlPW5ldyBBcnJheShHZT4xP0dlLTE6MCkseXQ9MTt5dDxHZTt5dCsrKVVlW3l0LTFdPWFyZ3VtZW50c1t5dF07cmV0''@;'; put 'put ''dXJuIGNlKGZ0LEh0LFVlKX19ZnVuY3Rpb24geChmdCxIdCxHZSl7R2U9R2V8fFNlLFkmJlkoZnQsbnVsbCk7Zm9yKHZhciBVZT1IdC5sZW5ndGg7VWUtLTspe3ZhciB5dD1IdFtVZV07aWYoInN0cmluZyI9PXR5cGVvZiB5dCl7dmFyIGp0PUdlKHl0KTtqdCE9PXl0JiYoVyhIdCl8fChIdFtV''@;'; put 'put ''ZV09anQpLHl0PWp0KX1mdFt5dF09ITB9cmV0dXJuIGZ0fWZ1bmN0aW9uIFAoZnQpe3ZhciBHZSxIdD1zZShudWxsKTtmb3IoR2UgaW4gZnQpY2UoYWUsZnQsW0dlXSkmJihIdFtHZV09ZnRbR2VdKTtyZXR1cm4gSHR9ZnVuY3Rpb24gVihmdCxIdCl7Zm9yKDtudWxsIT09ZnQ7KXt2YXIgR2U9''@;'; put 'put ''dGUoZnQsSHQpO2lmKEdlKXtpZihHZS5nZXQpcmV0dXJuIGVlKEdlLmdldCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIEdlLnZhbHVlKXJldHVybiBlZShHZS52YWx1ZSl9ZnQ9TihmdCl9cmV0dXJuIGZ1bmN0aW9uIFVlKHl0KXtyZXR1cm4gY29uc29sZS53YXJuKCJmYWxsYmFjayB2YWx1ZSBm''@;'; put 'put ''b3IiLHl0KSxudWxsfX12YXIgVD1LKFsiYSIsImFiYnIiLCJhY3JvbnltIiwiYWRkcmVzcyIsImFyZWEiLCJhcnRpY2xlIiwiYXNpZGUiLCJhdWRpbyIsImIiLCJiZGkiLCJiZG8iLCJiaWciLCJibGluayIsImJsb2NrcXVvdGUiLCJib2R5IiwiYnIiLCJidXR0b24iLCJjYW52YXMiLCJjYXB0''@;'; put 'put ''aW9uIiwiY2VudGVyIiwiY2l0ZSIsImNvZGUiLCJjb2wiLCJjb2xncm91cCIsImNvbnRlbnQiLCJkYXRhIiwiZGF0YWxpc3QiLCJkZCIsImRlY29yYXRvciIsImRlbCIsImRldGFpbHMiLCJkZm4iLCJkaWFsb2ciLCJkaXIiLCJkaXYiLCJkbCIsImR0IiwiZWxlbWVudCIsImVtIiwiZmllbGRz''@;'; put 'put ''ZXQiLCJmaWdjYXB0aW9uIiwiZmlndXJlIiwiZm9udCIsImZvb3RlciIsImZvcm0iLCJoMSIsImgyIiwiaDMiLCJoNCIsImg1IiwiaDYiLCJoZWFkIiwiaGVhZGVyIiwiaGdyb3VwIiwiaHIiLCJodG1sIiwiaSIsImltZyIsImlucHV0IiwiaW5zIiwia2JkIiwibGFiZWwiLCJsZWdlbmQiLCJs''@;'; put 'put ''aSIsIm1haW4iLCJtYXAiLCJtYXJrIiwibWFycXVlZSIsIm1lbnUiLCJtZW51aXRlbSIsIm1ldGVyIiwibmF2Iiwibm9iciIsIm9sIiwib3B0Z3JvdXAiLCJvcHRpb24iLCJvdXRwdXQiLCJwIiwicGljdHVyZSIsInByZSIsInByb2dyZXNzIiwicSIsInJwIiwicnQiLCJydWJ5IiwicyIsInNh''@;'; put 'put ''bXAiLCJzZWN0aW9uIiwic2VsZWN0Iiwic2hhZG93Iiwic21hbGwiLCJzb3VyY2UiLCJzcGFjZXIiLCJzcGFuIiwic3RyaWtlIiwic3Ryb25nIiwic3R5bGUiLCJzdWIiLCJzdW1tYXJ5Iiwic3VwIiwidGFibGUiLCJ0Ym9keSIsInRkIiwidGVtcGxhdGUiLCJ0ZXh0YXJlYSIsInRmb290Iiwi''@;'; put 'put ''dGgiLCJ0aGVhZCIsInRpbWUiLCJ0ciIsInRyYWNrIiwidHQiLCJ1IiwidWwiLCJ2YXIiLCJ2aWRlbyIsIndiciJdKSxTPUsoWyJzdmciLCJhIiwiYWx0Z2x5cGgiLCJhbHRnbHlwaGRlZiIsImFsdGdseXBoaXRlbSIsImFuaW1hdGVjb2xvciIsImFuaW1hdGVtb3Rpb24iLCJhbmltYXRldHJh''@;'; put 'put ''bnNmb3JtIiwiY2lyY2xlIiwiY2xpcHBhdGgiLCJkZWZzIiwiZGVzYyIsImVsbGlwc2UiLCJmaWx0ZXIiLCJmb250IiwiZyIsImdseXBoIiwiZ2x5cGhyZWYiLCJoa2VybiIsImltYWdlIiwibGluZSIsImxpbmVhcmdyYWRpZW50IiwibWFya2VyIiwibWFzayIsIm1ldGFkYXRhIiwibXBhdGgi''@;'; put 'put ''LCJwYXRoIiwicGF0dGVybiIsInBvbHlnb24iLCJwb2x5bGluZSIsInJhZGlhbGdyYWRpZW50IiwicmVjdCIsInN0b3AiLCJzdHlsZSIsInN3aXRjaCIsInN5bWJvbCIsInRleHQiLCJ0ZXh0cGF0aCIsInRpdGxlIiwidHJlZiIsInRzcGFuIiwidmlldyIsInZrZXJuIl0pLEY9SyhbImZlQmxl''@;'; put 'put ''bmQiLCJmZUNvbG9yTWF0cml4IiwiZmVDb21wb25lbnRUcmFuc2ZlciIsImZlQ29tcG9zaXRlIiwiZmVDb252b2x2ZU1hdHJpeCIsImZlRGlmZnVzZUxpZ2h0aW5nIiwiZmVEaXNwbGFjZW1lbnRNYXAiLCJmZURpc3RhbnRMaWdodCIsImZlRmxvb2QiLCJmZUZ1bmNBIiwiZmVGdW5jQiIsImZl''@;'; put 'put ''RnVuY0ciLCJmZUZ1bmNSIiwiZmVHYXVzc2lhbkJsdXIiLCJmZUltYWdlIiwiZmVNZXJnZSIsImZlTWVyZ2VOb2RlIiwiZmVNb3JwaG9sb2d5IiwiZmVPZmZzZXQiLCJmZVBvaW50TGlnaHQiLCJmZVNwZWN1bGFyTGlnaHRpbmciLCJmZVNwb3RMaWdodCIsImZlVGlsZSIsImZlVHVyYnVsZW5j''@;'; put 'put ''ZSJdKSx5ZT1LKFsiYW5pbWF0ZSIsImNvbG9yLXByb2ZpbGUiLCJjdXJzb3IiLCJkaXNjYXJkIiwiZmVkcm9wc2hhZG93IiwiZm9udC1mYWNlIiwiZm9udC1mYWNlLWZvcm1hdCIsImZvbnQtZmFjZS1uYW1lIiwiZm9udC1mYWNlLXNyYyIsImZvbnQtZmFjZS11cmkiLCJmb3JlaWdub2JqZWN0''@;'; put 'put ''IiwiaGF0Y2giLCJoYXRjaHBhdGgiLCJtZXNoIiwibWVzaGdyYWRpZW50IiwibWVzaHBhdGNoIiwibWVzaHJvdyIsIm1pc3NpbmctZ2x5cGgiLCJzY3JpcHQiLCJzZXQiLCJzb2xpZGNvbG9yIiwidW5rbm93biIsInVzZSJdKSxDZT1LKFsibWF0aCIsIm1lbmNsb3NlIiwibWVycm9yIiwibWZl''@;'; put 'put ''bmNlZCIsIm1mcmFjIiwibWdseXBoIiwibWkiLCJtbGFiZWxlZHRyIiwibW11bHRpc2NyaXB0cyIsIm1uIiwibW8iLCJtb3ZlciIsIm1wYWRkZWQiLCJtcGhhbnRvbSIsIm1yb290IiwibXJvdyIsIm1zIiwibXNwYWNlIiwibXNxcnQiLCJtc3R5bGUiLCJtc3ViIiwibXN1cCIsIm1zdWJzdXAi''@;'; put 'put ''LCJtdGFibGUiLCJtdGQiLCJtdGV4dCIsIm10ciIsIm11bmRlciIsIm11bmRlcm92ZXIiXSksRGU9SyhbIm1hY3Rpb24iLCJtYWxpZ25ncm91cCIsIm1hbGlnbm1hcmsiLCJtbG9uZ2RpdiIsIm1zY2FycmllcyIsIm1zY2FycnkiLCJtc2dyb3VwIiwibXN0YWNrIiwibXNsaW5lIiwibXNyb3ci''@;'; put 'put ''LCJzZW1hbnRpY3MiLCJhbm5vdGF0aW9uIiwiYW5ub3RhdGlvbi14bWwiLCJtcHJlc2NyaXB0cyIsIm5vbmUiXSksUGU9SyhbIiN0ZXh0Il0pLFFlPUsoWyJhY2NlcHQiLCJhY3Rpb24iLCJhbGlnbiIsImFsdCIsImF1dG9jYXBpdGFsaXplIiwiYXV0b2NvbXBsZXRlIiwiYXV0b3BpY3R1cmVp''@;'; put 'put ''bnBpY3R1cmUiLCJhdXRvcGxheSIsImJhY2tncm91bmQiLCJiZ2NvbG9yIiwiYm9yZGVyIiwiY2FwdHVyZSIsImNlbGxwYWRkaW5nIiwiY2VsbHNwYWNpbmciLCJjaGVja2VkIiwiY2l0ZSIsImNsYXNzIiwiY2xlYXIiLCJjb2xvciIsImNvbHMiLCJjb2xzcGFuIiwiY29udHJvbHMiLCJjb250''@;'; put 'put ''cm9sc2xpc3QiLCJjb29yZHMiLCJjcm9zc29yaWdpbiIsImRhdGV0aW1lIiwiZGVjb2RpbmciLCJkZWZhdWx0IiwiZGlyIiwiZGlzYWJsZWQiLCJkaXNhYmxlcGljdHVyZWlucGljdHVyZSIsImRpc2FibGVyZW1vdGVwbGF5YmFjayIsImRvd25sb2FkIiwiZHJhZ2dhYmxlIiwiZW5jdHlwZSIs''@;'; put 'put ''ImVudGVya2V5aGludCIsImZhY2UiLCJmb3IiLCJoZWFkZXJzIiwiaGVpZ2h0IiwiaGlkZGVuIiwiaGlnaCIsImhyZWYiLCJocmVmbGFuZyIsImlkIiwiaW5wdXRtb2RlIiwiaW50ZWdyaXR5IiwiaXNtYXAiLCJraW5kIiwibGFiZWwiLCJsYW5nIiwibGlzdCIsImxvYWRpbmciLCJsb29wIiwi''@;'; put 'put ''bG93IiwibWF4IiwibWF4bGVuZ3RoIiwibWVkaWEiLCJtZXRob2QiLCJtaW4iLCJtaW5sZW5ndGgiLCJtdWx0aXBsZSIsIm11dGVkIiwibmFtZSIsIm5vbmNlIiwibm9zaGFkZSIsIm5vdmFsaWRhdGUiLCJub3dyYXAiLCJvcGVuIiwib3B0aW11bSIsInBhdHRlcm4iLCJwbGFjZWhvbGRlciIs''@;'; put 'put ''InBsYXlzaW5saW5lIiwicG9zdGVyIiwicHJlbG9hZCIsInB1YmRhdGUiLCJyYWRpb2dyb3VwIiwicmVhZG9ubHkiLCJyZWwiLCJyZXF1aXJlZCIsInJldiIsInJldmVyc2VkIiwicm9sZSIsInJvd3MiLCJyb3dzcGFuIiwic3BlbGxjaGVjayIsInNjb3BlIiwic2VsZWN0ZWQiLCJzaGFwZSIs''@;'; put 'put ''InNpemUiLCJzaXplcyIsInNwYW4iLCJzcmNsYW5nIiwic3RhcnQiLCJzcmMiLCJzcmNzZXQiLCJzdGVwIiwic3R5bGUiLCJzdW1tYXJ5IiwidGFiaW5kZXgiLCJ0aXRsZSIsInRyYW5zbGF0ZSIsInR5cGUiLCJ1c2VtYXAiLCJ2YWxpZ24iLCJ2YWx1ZSIsIndpZHRoIiwieG1sbnMiLCJzbG90''@;'; put 'put ''Il0pLCRlPUsoWyJhY2NlbnQtaGVpZ2h0IiwiYWNjdW11bGF0ZSIsImFkZGl0aXZlIiwiYWxpZ25tZW50LWJhc2VsaW5lIiwiYXNjZW50IiwiYXR0cmlidXRlbmFtZSIsImF0dHJpYnV0ZXR5cGUiLCJhemltdXRoIiwiYmFzZWZyZXF1ZW5jeSIsImJhc2VsaW5lLXNoaWZ0IiwiYmVnaW4iLCJi''@;'; put 'put ''aWFzIiwiYnkiLCJjbGFzcyIsImNsaXAiLCJjbGlwcGF0aHVuaXRzIiwiY2xpcC1wYXRoIiwiY2xpcC1ydWxlIiwiY29sb3IiLCJjb2xvci1pbnRlcnBvbGF0aW9uIiwiY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzIiwiY29sb3ItcHJvZmlsZSIsImNvbG9yLXJlbmRlcmluZyIsImN4Iiwi''@;'; put 'put ''Y3kiLCJkIiwiZHgiLCJkeSIsImRpZmZ1c2Vjb25zdGFudCIsImRpcmVjdGlvbiIsImRpc3BsYXkiLCJkaXZpc29yIiwiZHVyIiwiZWRnZW1vZGUiLCJlbGV2YXRpb24iLCJlbmQiLCJmaWxsIiwiZmlsbC1vcGFjaXR5IiwiZmlsbC1ydWxlIiwiZmlsdGVyIiwiZmlsdGVydW5pdHMiLCJmbG9v''@;'; put 'put ''ZC1jb2xvciIsImZsb29kLW9wYWNpdHkiLCJmb250LWZhbWlseSIsImZvbnQtc2l6ZSIsImZvbnQtc2l6ZS1hZGp1c3QiLCJmb250LXN0cmV0Y2giLCJmb250LXN0eWxlIiwiZm9udC12YXJpYW50IiwiZm9udC13ZWlnaHQiLCJmeCIsImZ5IiwiZzEiLCJnMiIsImdseXBoLW5hbWUiLCJnbHlw''@;'; put 'put ''aHJlZiIsImdyYWRpZW50dW5pdHMiLCJncmFkaWVudHRyYW5zZm9ybSIsImhlaWdodCIsImhyZWYiLCJpZCIsImltYWdlLXJlbmRlcmluZyIsImluIiwiaW4yIiwiayIsImsxIiwiazIiLCJrMyIsIms0Iiwia2VybmluZyIsImtleXBvaW50cyIsImtleXNwbGluZXMiLCJrZXl0aW1lcyIsImxh''@;'; put 'put ''bmciLCJsZW5ndGhhZGp1c3QiLCJsZXR0ZXItc3BhY2luZyIsImtlcm5lbG1hdHJpeCIsImtlcm5lbHVuaXRsZW5ndGgiLCJsaWdodGluZy1jb2xvciIsImxvY2FsIiwibWFya2VyLWVuZCIsIm1hcmtlci1taWQiLCJtYXJrZXItc3RhcnQiLCJtYXJrZXJoZWlnaHQiLCJtYXJrZXJ1bml0cyIs''@;'; put 'put ''Im1hcmtlcndpZHRoIiwibWFza2NvbnRlbnR1bml0cyIsIm1hc2t1bml0cyIsIm1heCIsIm1hc2siLCJtZWRpYSIsIm1ldGhvZCIsIm1vZGUiLCJtaW4iLCJuYW1lIiwibnVtb2N0YXZlcyIsIm9mZnNldCIsIm9wZXJhdG9yIiwib3BhY2l0eSIsIm9yZGVyIiwib3JpZW50Iiwib3JpZW50YXRp''@;'; put 'put ''b24iLCJvcmlnaW4iLCJvdmVyZmxvdyIsInBhaW50LW9yZGVyIiwicGF0aCIsInBhdGhsZW5ndGgiLCJwYXR0ZXJuY29udGVudHVuaXRzIiwicGF0dGVybnRyYW5zZm9ybSIsInBhdHRlcm51bml0cyIsInBvaW50cyIsInByZXNlcnZlYWxwaGEiLCJwcmVzZXJ2ZWFzcGVjdHJhdGlvIiwicHJp''@;'; put 'put ''bWl0aXZldW5pdHMiLCJyIiwicngiLCJyeSIsInJhZGl1cyIsInJlZngiLCJyZWZ5IiwicmVwZWF0Y291bnQiLCJyZXBlYXRkdXIiLCJyZXN0YXJ0IiwicmVzdWx0Iiwicm90YXRlIiwic2NhbGUiLCJzZWVkIiwic2hhcGUtcmVuZGVyaW5nIiwic3BlY3VsYXJjb25zdGFudCIsInNwZWN1bGFy''@;'; put 'put ''ZXhwb25lbnQiLCJzcHJlYWRtZXRob2QiLCJzdGFydG9mZnNldCIsInN0ZGRldmlhdGlvbiIsInN0aXRjaHRpbGVzIiwic3RvcC1jb2xvciIsInN0b3Atb3BhY2l0eSIsInN0cm9rZS1kYXNoYXJyYXkiLCJzdHJva2UtZGFzaG9mZnNldCIsInN0cm9rZS1saW5lY2FwIiwic3Ryb2tlLWxpbmVq''@;'; put 'put ''b2luIiwic3Ryb2tlLW1pdGVybGltaXQiLCJzdHJva2Utb3BhY2l0eSIsInN0cm9rZSIsInN0cm9rZS13aWR0aCIsInN0eWxlIiwic3VyZmFjZXNjYWxlIiwic3lzdGVtbGFuZ3VhZ2UiLCJ0YWJpbmRleCIsInRhcmdldHgiLCJ0YXJnZXR5IiwidHJhbnNmb3JtIiwidHJhbnNmb3JtLW9yaWdp''@;'; put 'put ''biIsInRleHQtYW5jaG9yIiwidGV4dC1kZWNvcmF0aW9uIiwidGV4dC1yZW5kZXJpbmciLCJ0ZXh0bGVuZ3RoIiwidHlwZSIsInUxIiwidTIiLCJ1bmljb2RlIiwidmFsdWVzIiwidmlld2JveCIsInZpc2liaWxpdHkiLCJ2ZXJzaW9uIiwidmVydC1hZHYteSIsInZlcnQtb3JpZ2luLXgiLCJ2''@;'; put 'put ''ZXJ0LW9yaWdpbi15Iiwid2lkdGgiLCJ3b3JkLXNwYWNpbmciLCJ3cmFwIiwid3JpdGluZy1tb2RlIiwieGNoYW5uZWxzZWxlY3RvciIsInljaGFubmVsc2VsZWN0b3IiLCJ4IiwieDEiLCJ4MiIsInhtbG5zIiwieSIsInkxIiwieTIiLCJ6Iiwiem9vbWFuZHBhbiJdKSxndD1LKFsiYWNjZW50''@;'; put 'put ''IiwiYWNjZW50dW5kZXIiLCJhbGlnbiIsImJldmVsbGVkIiwiY2xvc2UiLCJjb2x1bW5zYWxpZ24iLCJjb2x1bW5saW5lcyIsImNvbHVtbnNwYW4iLCJkZW5vbWFsaWduIiwiZGVwdGgiLCJkaXIiLCJkaXNwbGF5IiwiZGlzcGxheXN0eWxlIiwiZW5jb2RpbmciLCJmZW5jZSIsImZyYW1lIiwi''@;'; put 'put ''aGVpZ2h0IiwiaHJlZiIsImlkIiwibGFyZ2VvcCIsImxlbmd0aCIsImxpbmV0aGlja25lc3MiLCJsc3BhY2UiLCJscXVvdGUiLCJtYXRoYmFja2dyb3VuZCIsIm1hdGhjb2xvciIsIm1hdGhzaXplIiwibWF0aHZhcmlhbnQiLCJtYXhzaXplIiwibWluc2l6ZSIsIm1vdmFibGVsaW1pdHMiLCJu''@;'; put 'put ''b3RhdGlvbiIsIm51bWFsaWduIiwib3BlbiIsInJvd2FsaWduIiwicm93bGluZXMiLCJyb3dzcGFjaW5nIiwicm93c3BhbiIsInJzcGFjZSIsInJxdW90ZSIsInNjcmlwdGxldmVsIiwic2NyaXB0bWluc2l6ZSIsInNjcmlwdHNpemVtdWx0aXBsaWVyIiwic2VsZWN0aW9uIiwic2VwYXJhdG9y''@;'; put 'put ''Iiwic2VwYXJhdG9ycyIsInN0cmV0Y2h5Iiwic3Vic2NyaXB0c2hpZnQiLCJzdXBzY3JpcHRzaGlmdCIsInN5bW1ldHJpYyIsInZvZmZzZXQiLCJ3aWR0aCIsInhtbG5zIl0pLHd0PUsoWyJ4bGluazpocmVmIiwieG1sOmlkIiwieGxpbms6dGl0bGUiLCJ4bWw6c3BhY2UiLCJ4bWxuczp4bGlu''@;'; put 'put ''ayJdKSxtdD1KKC9ce1x7W1x3XFddKnxbXHdcV10qXH1cfS9nbSksdnQ9SigvPCVbXHdcV10qfFtcd1xXXSolPi9nbSksQXQ9SigvXmRhdGEtW1wtXHcuXHUwMEI3LVx1RkZGRl0vKSxodD1KKC9eYXJpYS1bXC1cd10rJC8pLEJ0PUooL14oPzooPzooPzpmfGh0KXRwcz98bWFpbHRvfHRlbHxj''@;'; put 'put ''YWxsdG98Y2lkfHhtcHApOnxbXmEtel18W2EteisuXC1dKyg/OlteYS16Ky5cLTpdfCQpKS9pKSxvbj1KKC9eKD86XHcrc2NyaXB0fGRhdGEpOi9pKSxfdD1KKC9bXHUwMDAwLVx1MDAyMFx1MDBBMFx1MTY4MFx1MTgwRVx1MjAwMC1cdTIwMjlcdTIwNUZcdTMwMDBdL2cpLHR0PUooL15odG1s''@;'; put 'put ''JC9pKSxldD1mdW5jdGlvbigpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93P251bGw6d2luZG93fSxsdD1mdW5jdGlvbihIdCxHZSl7aWYoIm9iamVjdCIhPT1KZShIdCl8fCJmdW5jdGlvbiIhPXR5cGVvZiBIdC5jcmVhdGVQb2xpY3kpcmV0dXJuIG51bGw7dmFyIFVlPW51bGws''@;'; put 'put ''eXQ9ImRhdGEtdHQtcG9saWN5LXN1ZmZpeCI7R2UuY3VycmVudFNjcmlwdCYmR2UuY3VycmVudFNjcmlwdC5oYXNBdHRyaWJ1dGUoeXQpJiYoVWU9R2UuY3VycmVudFNjcmlwdC5nZXRBdHRyaWJ1dGUoeXQpKTt2YXIganQ9ImRvbXB1cmlmeSIrKFVlPyIjIitVZToiIik7dHJ5e3JldHVybiBI''@;'; put 'put ''dC5jcmVhdGVQb2xpY3koanQse2NyZWF0ZUhUTUw6ZnVuY3Rpb24oZ24pe3JldHVybiBnbn0sY3JlYXRlU2NyaXB0VVJMOmZ1bmN0aW9uKGduKXtyZXR1cm4gZ259fSl9Y2F0Y2goSnQpe3JldHVybiBjb25zb2xlLndhcm4oIlRydXN0ZWRUeXBlcyBwb2xpY3kgIitqdCsiIGNvdWxkIG5vdCBi''@;'; put 'put ''ZSBjcmVhdGVkLiIpLG51bGx9fTtyZXR1cm4gZnVuY3Rpb24gTHQoKXt2YXIgZnQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0/YXJndW1lbnRzWzBdOmV0KCksSHQ9ZnVuY3Rpb24oZmkpe3JldHVybiBMdChmaSl9O2lmKEh0LnZlcnNpb249IjIuMy4xMCIsSHQu''@;'; put 'put ''cmVtb3ZlZD1bXSwhZnR8fCFmdC5kb2N1bWVudHx8OSE9PWZ0LmRvY3VtZW50Lm5vZGVUeXBlKXJldHVybiBIdC5pc1N1cHBvcnRlZD0hMSxIdDt2YXIgR2U9ZnQuZG9jdW1lbnQsVWU9ZnQuZG9jdW1lbnQseXQ9ZnQuRG9jdW1lbnRGcmFnbWVudCxqdD1mdC5IVE1MVGVtcGxhdGVFbGVtZW50''@;'; put 'put ''LEp0PWZ0Lk5vZGUsZ249ZnQuRWxlbWVudCxkbj1mdC5Ob2RlRmlsdGVyLHluPWZ0Lk5hbWVkTm9kZU1hcCxsbj12b2lkIDA9PT15bj9mdC5OYW1lZE5vZGVNYXB8fGZ0Lk1vek5hbWVkQXR0ck1hcDp5bixObj1mdC5IVE1MRm9ybUVsZW1lbnQsYm49ZnQuRE9NUGFyc2VyLGVyPWZ0LnRydXN0''@;'; put 'put ''ZWRUeXBlcyxzcj1nbi5wcm90b3R5cGUsWG49VihzciwiY2xvbmVOb2RlIiksRnI9VihzciwibmV4dFNpYmxpbmciKSx4cj1WKHNyLCJjaGlsZE5vZGVzIikscXQ9VihzciwicGFyZW50Tm9kZSIpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBqdCl7dmFyIHByPVVlLmNyZWF0ZUVsZW1lbnQoInRl''@;'; put 'put ''bXBsYXRlIik7cHIuY29udGVudCYmcHIuY29udGVudC5vd25lckRvY3VtZW50JiYoVWU9cHIuY29udGVudC5vd25lckRvY3VtZW50KX12YXIgbnI9bHQoZXIsR2UpLEFuPW5yP25yLmNyZWF0ZUhUTUwoIiIpOiIiLFd0PVVlLmltcGxlbWVudGF0aW9uLHBuPVVlLmNyZWF0ZU5vZGVJdGVyYXRv''@;'; put 'put ''cixLbj1VZS5jcmVhdGVEb2N1bWVudEZyYWdtZW50LE50PVVlLmdldEVsZW1lbnRzQnlUYWdOYW1lLHNuPUdlLmltcG9ydE5vZGUsVW49e307dHJ5e1VuPVAoVWUpLmRvY3VtZW50TW9kZT9VZS5kb2N1bWVudE1vZGU6e319Y2F0Y2goWjApe312YXIgd249e307SHQuaXNTdXBwb3J0ZWQ9ImZ1''@;'; put 'put ''bmN0aW9uIj09dHlwZW9mIHF0JiZXdCYmdm9pZCAwIT09V3QuY3JlYXRlSFRNTERvY3VtZW50JiY5IT09VW47dmFyIHZpLHJsLHRuPW10LHpuPXZ0LFRyPUF0LEJuPWh0LGtyPW9uLG1uPV90LHVuPUJ0LGNuPW51bGwsX249eCh7fSxbXS5jb25jYXQoRShUKSxFKFMpLEUoRiksRShDZSksRShQ''@;'; put 'put ''ZSkpKSxHdD1udWxsLGtuPXgoe30sW10uY29uY2F0KEUoUWUpLEUoJGUpLEUoZ3QpLEUod3QpKSksVm49T2JqZWN0LnNlYWwoT2JqZWN0LmNyZWF0ZShudWxsLHt0YWdOYW1lQ2hlY2s6e3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLHZhbHVlOm51bGx9LGF0dHJp''@;'; put 'put ''YnV0ZU5hbWVDaGVjazp7d3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITAsdmFsdWU6bnVsbH0sYWxsb3dDdXN0b21pemVkQnVpbHRJbkVsZW1lbnRzOnt3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMCx2YWx1ZTohMX19KSksZW49bnVsbCxJ''@;'; put 'put ''bj1udWxsLEpuPSEwLG9yPSEwLGdyPSExLEtyPSExLFZyPSExLGlpPSExLFJyPSExLGxpPSExLE1pPSExLG8wPSExLG4wPSEwLGQwPSEwLG0wPSExLEcwPXt9LERpPW51bGwsVzA9eCh7fSxbImFubm90YXRpb24teG1sIiwiYXVkaW8iLCJjb2xncm91cCIsImRlc2MiLCJmb3JlaWdub2JqZWN0''@;'; put 'put ''IiwiaGVhZCIsImlmcmFtZSIsIm1hdGgiLCJtaSIsIm1uIiwibW8iLCJtcyIsIm10ZXh0Iiwibm9lbWJlZCIsIm5vZnJhbWVzIiwibm9zY3JpcHQiLCJwbGFpbnRleHQiLCJzY3JpcHQiLCJzdHlsZSIsInN2ZyIsInRlbXBsYXRlIiwidGhlYWQiLCJ0aXRsZSIsInZpZGVvIiwieG1wIl0pLEVv''@;'; put 'put ''PW51bGwscW89eCh7fSxbImF1ZGlvIiwidmlkZW8iLCJpbWciLCJzb3VyY2UiLCJpbWFnZSIsInRyYWNrIl0pLGNhPW51bGwsbGw9eCh7fSxbImFsdCIsImNsYXNzIiwiZm9yIiwiaWQiLCJsYWJlbCIsIm5hbWUiLCJwYXR0ZXJuIiwicGxhY2Vob2xkZXIiLCJyb2xlIiwic3VtbWFyeSIsInRp''@;'; put 'put ''dGxlIiwidmFsdWUiLCJzdHlsZSIsInhtbG5zIl0pLFFpPSJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIixNYT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLG5sPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixnbD1ubCxBaT0hMSxiMD1bImFwcGxpY2F0aW9u''@;'; put 'put ''L3hodG1sK3htbCIsInRleHQvaHRtbCJdLHNhPSJ0ZXh0L2h0bWwiLF9pPW51bGwsb3U9VWUuY3JlYXRlRWxlbWVudCgiZm9ybSIpLEhjPWZ1bmN0aW9uKGZpKXtyZXR1cm4gZmkgaW5zdGFuY2VvZiBSZWdFeHB8fGZpIGluc3RhbmNlb2YgRnVuY3Rpb259LFUwPWZ1bmN0aW9uKGZpKXtfaSYm''@;'; put 'put ''X2k9PT1maXx8KCghZml8fCJvYmplY3QiIT09SmUoZmkpKSYmKGZpPXt9KSxmaT1QKGZpKSx2aT12aT0tMT09PWIwLmluZGV4T2YoZmkuUEFSU0VSX01FRElBX1RZUEUpP3NhOmZpLlBBUlNFUl9NRURJQV9UWVBFLHJsPSJhcHBsaWNhdGlvbi94aHRtbCt4bWwiPT09dmk/ZnVuY3Rpb24oUjAp''@;'; put 'put ''e3JldHVybiBSMH06U2UsY249IkFMTE9XRURfVEFHUyJpbiBmaT94KHt9LGZpLkFMTE9XRURfVEFHUyxybCk6X24sR3Q9IkFMTE9XRURfQVRUUiJpbiBmaT94KHt9LGZpLkFMTE9XRURfQVRUUixybCk6a24sY2E9IkFERF9VUklfU0FGRV9BVFRSImluIGZpP3goUChsbCksZmkuQUREX1VSSV9T''@;'; put 'put ''QUZFX0FUVFIscmwpOmxsLEVvPSJBRERfREFUQV9VUklfVEFHUyJpbiBmaT94KFAocW8pLGZpLkFERF9EQVRBX1VSSV9UQUdTLHJsKTpxbyxEaT0iRk9SQklEX0NPTlRFTlRTImluIGZpP3goe30sZmkuRk9SQklEX0NPTlRFTlRTLHJsKTpXMCxlbj0iRk9SQklEX1RBR1MiaW4gZmk/eCh7fSxm''@;'; put 'put ''aS5GT1JCSURfVEFHUyxybCk6e30sSW49IkZPUkJJRF9BVFRSImluIGZpP3goe30sZmkuRk9SQklEX0FUVFIscmwpOnt9LEcwPSJVU0VfUFJPRklMRVMiaW4gZmkmJmZpLlVTRV9QUk9GSUxFUyxKbj0hMSE9PWZpLkFMTE9XX0FSSUFfQVRUUixvcj0hMSE9PWZpLkFMTE9XX0RBVEFfQVRUUixn''@;'; put 'put ''cj1maS5BTExPV19VTktOT1dOX1BST1RPQ09MU3x8ITEsS3I9ZmkuU0FGRV9GT1JfVEVNUExBVEVTfHwhMSxWcj1maS5XSE9MRV9ET0NVTUVOVHx8ITEsbGk9ZmkuUkVUVVJOX0RPTXx8ITEsTWk9ZmkuUkVUVVJOX0RPTV9GUkFHTUVOVHx8ITEsbzA9ZmkuUkVUVVJOX1RSVVNURURfVFlQRXx8''@;'; put 'put ''ITEsUnI9ZmkuRk9SQ0VfQk9EWXx8ITEsbjA9ITEhPT1maS5TQU5JVElaRV9ET00sZDA9ITEhPT1maS5LRUVQX0NPTlRFTlQsbTA9ZmkuSU5fUExBQ0V8fCExLHVuPWZpLkFMTE9XRURfVVJJX1JFR0VYUHx8dW4sZ2w9ZmkuTkFNRVNQQUNFfHxubCxmaS5DVVNUT01fRUxFTUVOVF9IQU5ETElO''@;'; put 'put ''RyYmSGMoZmkuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcudGFnTmFtZUNoZWNrKSYmKFZuLnRhZ05hbWVDaGVjaz1maS5DVVNUT01fRUxFTUVOVF9IQU5ETElORy50YWdOYW1lQ2hlY2spLGZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HJiZIYyhmaS5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5h''@;'; put 'put ''dHRyaWJ1dGVOYW1lQ2hlY2spJiYoVm4uYXR0cmlidXRlTmFtZUNoZWNrPWZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmF0dHJpYnV0ZU5hbWVDaGVjayksZmkuQ1VTVE9NX0VMRU1FTlRfSEFORExJTkcmJiJib29sZWFuIj09dHlwZW9mIGZpLkNVU1RPTV9FTEVNRU5UX0hBTkRMSU5HLmFs''@;'; put 'put ''bG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cyYmKFZuLmFsbG93Q3VzdG9taXplZEJ1aWx0SW5FbGVtZW50cz1maS5DVVNUT01fRUxFTUVOVF9IQU5ETElORy5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMpLEtyJiYob3I9ITEpLE1pJiYobGk9ITApLEcwJiYoY249eCh7fSxFKFBl''@;'; put 'put ''KSksR3Q9W10sITA9PT1HMC5odG1sJiYoeChjbixUKSx4KEd0LFFlKSksITA9PT1HMC5zdmcmJih4KGNuLFMpLHgoR3QsJGUpLHgoR3Qsd3QpKSwhMD09PUcwLnN2Z0ZpbHRlcnMmJih4KGNuLEYpLHgoR3QsJGUpLHgoR3Qsd3QpKSwhMD09PUcwLm1hdGhNbCYmKHgoY24sQ2UpLHgoR3QsZ3Qp''@;'; put 'put ''LHgoR3Qsd3QpKSksZmkuQUREX1RBR1MmJihjbj09PV9uJiYoY249UChjbikpLHgoY24sZmkuQUREX1RBR1MscmwpKSxmaS5BRERfQVRUUiYmKEd0PT09a24mJihHdD1QKEd0KSkseChHdCxmaS5BRERfQVRUUixybCkpLGZpLkFERF9VUklfU0FGRV9BVFRSJiZ4KGNhLGZpLkFERF9VUklfU0FG''@;'; put 'put ''RV9BVFRSLHJsKSxmaS5GT1JCSURfQ09OVEVOVFMmJihEaT09PVcwJiYoRGk9UChEaSkpLHgoRGksZmkuRk9SQklEX0NPTlRFTlRTLHJsKSksZDAmJihjblsiI3RleHQiXT0hMCksVnImJngoY24sWyJodG1sIiwiaGVhZCIsImJvZHkiXSksY24udGFibGUmJih4KGNuLFsidGJvZHkiXSksZGVs''@;'; put 'put ''ZXRlIGVuLnRib2R5KSxLJiZLKGZpKSxfaT1maSl9LEJzPXgoe30sWyJtaSIsIm1vIiwibW4iLCJtcyIsIm10ZXh0Il0pLFgwPXgoe30sWyJmb3JlaWdub2JqZWN0IiwiZGVzYyIsInRpdGxlIiwiYW5ub3RhdGlvbi14bWwiXSksdWE9eCh7fSxbInRpdGxlIiwic3R5bGUiLCJmb250IiwiYSIs''@;'; put 'put ''InNjcmlwdCJdKSxqMD14KHt9LFMpO3goajAsRikseChqMCx5ZSk7dmFyIEJsPXgoe30sQ2UpO3goQmwsRGUpO3ZhciB2bj1mdW5jdGlvbihmaSl7dmFyIFIwPXF0KGZpKTsoIVIwfHwhUjAudGFnTmFtZSkmJihSMD17bmFtZXNwYWNlVVJJOm5sLHRhZ05hbWU6InRlbXBsYXRlIn0pO3ZhciBt''@;'; put 'put ''bz1TZShmaS50YWdOYW1lKSxycz1TZShSMC50YWdOYW1lKTtyZXR1cm4gZmkubmFtZXNwYWNlVVJJPT09TWE/UjAubmFtZXNwYWNlVVJJPT09bmw/InN2ZyI9PT1tbzpSMC5uYW1lc3BhY2VVUkk9PT1RaT8ic3ZnIj09PW1vJiYoImFubm90YXRpb24teG1sIj09PXJzfHxCc1tyc10pOkJvb2xl''@;'; put 'put ''YW4oajBbbW9dKTpmaS5uYW1lc3BhY2VVUkk9PT1RaT9SMC5uYW1lc3BhY2VVUkk9PT1ubD8ibWF0aCI9PT1tbzpSMC5uYW1lc3BhY2VVUkk9PT1NYT8ibWF0aCI9PT1tbyYmWDBbcnNdOkJvb2xlYW4oQmxbbW9dKTpmaS5uYW1lc3BhY2VVUkk9PT1ubCYmIShSMC5uYW1lc3BhY2VVUkk9PT1N''@;'; put 'put ''YSYmIVgwW3JzXXx8UjAubmFtZXNwYWNlVVJJPT09UWkmJiFCc1tyc10pJiYhQmxbbW9dJiYodWFbbW9dfHwhajBbbW9dKX0sXzA9ZnVuY3Rpb24oZmkpe2tlKEh0LnJlbW92ZWQse2VsZW1lbnQ6Zml9KTt0cnl7ZmkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmaSl9Y2F0Y2goUjApe3RyeXtm''@;'; put 'put ''aS5vdXRlckhUTUw9QW59Y2F0Y2gobW8pe2ZpLnJlbW92ZSgpfX19LGdjPWZ1bmN0aW9uKGZpLFIwKXt0cnl7a2UoSHQucmVtb3ZlZCx7YXR0cmlidXRlOlIwLmdldEF0dHJpYnV0ZU5vZGUoZmkpLGZyb206UjB9KX1jYXRjaChtbyl7a2UoSHQucmVtb3ZlZCx7YXR0cmlidXRlOm51bGwsZnJv''@;'; put 'put ''bTpSMH0pfWlmKFIwLnJlbW92ZUF0dHJpYnV0ZShmaSksImlzIj09PWZpJiYhR3RbZmldKWlmKGxpfHxNaSl0cnl7XzAoUjApfWNhdGNoKG1vKXt9ZWxzZSB0cnl7UjAuc2V0QXR0cmlidXRlKGZpLCIiKX1jYXRjaChtbyl7fX0scGQ9ZnVuY3Rpb24oZmkpe3ZhciBSMCxtbztpZihScilmaT0i''@;'; put 'put ''PHJlbW92ZT48L3JlbW92ZT4iK2ZpO2Vsc2V7dmFyIHJzPUllKGZpLC9eW1xyXG5cdCBdKy8pO21vPXJzJiZyc1swXX0iYXBwbGljYXRpb24veGh0bWwreG1sIj09PXZpJiYoZmk9JzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48L2hlYWQ+PGJvZHk+''@;'; put 'put ''JytmaSsiPC9ib2R5PjwvaHRtbD4iKTt2YXIgZHM9bnI/bnIuY3JlYXRlSFRNTChmaSk6Zmk7aWYoZ2w9PT1ubCl0cnl7UjA9KG5ldyBibikucGFyc2VGcm9tU3RyaW5nKGRzLHZpKX1jYXRjaChUMil7fWlmKCFSMHx8IVIwLmRvY3VtZW50RWxlbWVudCl7UjA9V3QuY3JlYXRlRG9jdW1lbnQo''@;'; put 'put ''Z2wsInRlbXBsYXRlIixudWxsKTt0cnl7UjAuZG9jdW1lbnRFbGVtZW50LmlubmVySFRNTD1BaT8iIjpkc31jYXRjaChUMil7fX12YXIgbjI9UjAuYm9keXx8UjAuZG9jdW1lbnRFbGVtZW50O3JldHVybiBmaSYmbW8mJm4yLmluc2VydEJlZm9yZShVZS5jcmVhdGVUZXh0Tm9kZShtbyksbjIu''@;'; put 'put ''Y2hpbGROb2Rlc1swXXx8bnVsbCksZ2w9PT1ubD9OdC5jYWxsKFIwLFZyPyJodG1sIjoiYm9keSIpWzBdOlZyP1IwLmRvY3VtZW50RWxlbWVudDpuMn0sQjE9ZnVuY3Rpb24oZmkpe3JldHVybiBwbi5jYWxsKGZpLm93bmVyRG9jdW1lbnR8fGZpLGZpLGRuLlNIT1dfRUxFTUVOVHxkbi5TSE9X''@;'; put 'put ''X0NPTU1FTlR8ZG4uU0hPV19URVhULG51bGwsITEpfSxhdT1mdW5jdGlvbihmaSl7cmV0dXJuIGZpIGluc3RhbmNlb2YgTm4mJigic3RyaW5nIiE9dHlwZW9mIGZpLm5vZGVOYW1lfHwic3RyaW5nIiE9dHlwZW9mIGZpLnRleHRDb250ZW50fHwiZnVuY3Rpb24iIT10eXBlb2YgZmkucmVtb3Zl''@;'; put 'put ''Q2hpbGR8fCEoZmkuYXR0cmlidXRlcyBpbnN0YW5jZW9mIGxuKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZpLnJlbW92ZUF0dHJpYnV0ZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIGZpLnNldEF0dHJpYnV0ZXx8InN0cmluZyIhPXR5cGVvZiBmaS5uYW1lc3BhY2VVUkl8fCJmdW5jdGlvbiIhPXR5cGVv''@;'; put 'put ''ZiBmaS5pbnNlcnRCZWZvcmUpfSxQMT1mdW5jdGlvbihmaSl7cmV0dXJuIm9iamVjdCI9PT1KZShKdCk/ZmkgaW5zdGFuY2VvZiBKdDpmaSYmIm9iamVjdCI9PT1KZShmaSkmJiJudW1iZXIiPT10eXBlb2YgZmkubm9kZVR5cGUmJiJzdHJpbmciPT10eXBlb2YgZmkubm9kZU5hbWV9LG1jPWZ1''@;'; put 'put ''bmN0aW9uKGZpLFIwLG1vKXshd25bZmldfHx2ZSh3bltmaV0sZnVuY3Rpb24ocnMpe3JzLmNhbGwoSHQsUjAsbW8sX2kpfSl9LHgyPWZ1bmN0aW9uKGZpKXt2YXIgUjA7aWYobWMoImJlZm9yZVNhbml0aXplRWxlbWVudHMiLGZpLG51bGwpLGF1KGZpKXx8TygvW1x1MDA4MC1cdUZGRkZdLyxm''@;'; put 'put ''aS5ub2RlTmFtZSkpcmV0dXJuIF8wKGZpKSwhMDt2YXIgbW89cmwoZmkubm9kZU5hbWUpO2lmKG1jKCJ1cG9uU2FuaXRpemVFbGVtZW50IixmaSx7dGFnTmFtZTptbyxhbGxvd2VkVGFnczpjbn0pLGZpLmhhc0NoaWxkTm9kZXMoKSYmIVAxKGZpLmZpcnN0RWxlbWVudENoaWxkKSYmKCFQMShm''@;'; put 'put ''aS5jb250ZW50KXx8IVAxKGZpLmNvbnRlbnQuZmlyc3RFbGVtZW50Q2hpbGQpKSYmTygvPFsvXHddL2csZmkuaW5uZXJIVE1MKSYmTygvPFsvXHddL2csZmkudGV4dENvbnRlbnQpfHwic2VsZWN0Ij09PW1vJiZPKC88dGVtcGxhdGUvaSxmaS5pbm5lckhUTUwpKXJldHVybiBfMChmaSksITA7''@;'; put 'put ''aWYoIWNuW21vXXx8ZW5bbW9dKXtpZighZW5bbW9dJiZkMyhtbykmJihWbi50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJk8oVm4udGFnTmFtZUNoZWNrLG1vKXx8Vm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlZuLnRhZ05hbWVDaGVjayhtbykpKXJldHVybiEx''@;'; put 'put ''O2lmKGQwJiYhRGlbbW9dKXt2YXIgcnM9cXQoZmkpfHxmaS5wYXJlbnROb2RlLGRzPXhyKGZpKXx8ZmkuY2hpbGROb2RlcztpZihkcyYmcnMpZm9yKHZhciBUMj1kcy5sZW5ndGgtMTtUMj49MDstLVQyKXJzLmluc2VydEJlZm9yZShYbihkc1tUMl0sITApLEZyKGZpKSl9cmV0dXJuIF8wKGZp''@;'; put 'put ''KSwhMH1yZXR1cm4gZmkgaW5zdGFuY2VvZiBnbiYmIXZuKGZpKXx8KCJub3NjcmlwdCI9PT1tb3x8Im5vZW1iZWQiPT09bW8pJiZPKC88XC9ubyhzY3JpcHR8ZW1iZWQpL2ksZmkuaW5uZXJIVE1MKT8oXzAoZmkpLCEwKTooS3ImJjM9PT1maS5ub2RlVHlwZSYmKFIwPVRlKFIwPWZpLnRleHRD''@;'; put 'put ''b250ZW50LHRuLCIgIiksUjA9VGUoUjAsem4sIiAiKSxmaS50ZXh0Q29udGVudCE9PVIwJiYoa2UoSHQucmVtb3ZlZCx7ZWxlbWVudDpmaS5jbG9uZU5vZGUoKX0pLGZpLnRleHRDb250ZW50PVIwKSksbWMoImFmdGVyU2FuaXRpemVFbGVtZW50cyIsZmksbnVsbCksITEpfSxQbD1mdW5jdGlv''@;'; put 'put ''bihmaSxSMCxtbyl7aWYobjAmJigiaWQiPT09UjB8fCJuYW1lIj09PVIwKSYmKG1vIGluIFVlfHxtbyBpbiBvdSkpcmV0dXJuITE7aWYoKCFvcnx8SW5bUjBdfHwhTyhUcixSMCkpJiYoIUpufHwhTyhCbixSMCkpKWlmKCFHdFtSMF18fEluW1IwXSl7aWYoIShkMyhmaSkmJihWbi50YWdOYW1l''@;'; put 'put ''Q2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAmJk8oVm4udGFnTmFtZUNoZWNrLGZpKXx8Vm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlZuLnRhZ05hbWVDaGVjayhmaSkpJiYoVm4uYXR0cmlidXRlTmFtZUNoZWNrIGluc3RhbmNlb2YgUmVnRXhwJiZPKFZuLmF0dHJpYnV0ZU5h''@;'; put 'put ''bWVDaGVjayxSMCl8fFZuLmF0dHJpYnV0ZU5hbWVDaGVjayBpbnN0YW5jZW9mIEZ1bmN0aW9uJiZWbi5hdHRyaWJ1dGVOYW1lQ2hlY2soUjApKXx8ImlzIj09PVIwJiZWbi5hbGxvd0N1c3RvbWl6ZWRCdWlsdEluRWxlbWVudHMmJihWbi50YWdOYW1lQ2hlY2sgaW5zdGFuY2VvZiBSZWdFeHAm''@;'; put 'put ''Jk8oVm4udGFnTmFtZUNoZWNrLG1vKXx8Vm4udGFnTmFtZUNoZWNrIGluc3RhbmNlb2YgRnVuY3Rpb24mJlZuLnRhZ05hbWVDaGVjayhtbykpKSlyZXR1cm4hMX1lbHNlIGlmKCFjYVtSMF0mJiFPKHVuLFRlKG1vLG1uLCIiKSkmJigic3JjIiE9PVIwJiYieGxpbms6aHJlZiIhPT1SMCYmImhy''@;'; put 'put ''ZWYiIT09UjB8fCJzY3JpcHQiPT09Zml8fDAhPT1NZShtbywiZGF0YToiKXx8IUVvW2ZpXSkmJighZ3J8fE8oa3IsVGUobW8sbW4sIiIpKSkmJm1vKXJldHVybiExO3JldHVybiEwfSxkMz1mdW5jdGlvbihmaSl7cmV0dXJuIGZpLmluZGV4T2YoIi0iKT4wfSxRMj1mdW5jdGlvbihmaSl7dmFy''@;'; put 'put ''IFIwLG1vLHJzLGRzO21jKCJiZWZvcmVTYW5pdGl6ZUF0dHJpYnV0ZXMiLGZpLG51bGwpO3ZhciBuMj1maS5hdHRyaWJ1dGVzO2lmKG4yKXt2YXIgVDI9e2F0dHJOYW1lOiIiLGF0dHJWYWx1ZToiIixrZWVwQXR0cjohMCxhbGxvd2VkQXR0cmlidXRlczpHdH07Zm9yKGRzPW4yLmxlbmd0aDtk''@;'; put 'put ''cy0tOyl7dmFyIFBzPShSMD1uMltkc10pLm5hbWUsTmY9UjAubmFtZXNwYWNlVVJJO2lmKG1vPSJ2YWx1ZSI9PT1Qcz9SMC52YWx1ZTpoZShSMC52YWx1ZSkscnM9cmwoUHMpLFQyLmF0dHJOYW1lPXJzLFQyLmF0dHJWYWx1ZT1tbyxUMi5rZWVwQXR0cj0hMCxUMi5mb3JjZUtlZXBBdHRyPXZv''@;'; put 'put ''aWQgMCxtYygidXBvblNhbml0aXplQXR0cmlidXRlIixmaSxUMiksbW89VDIuYXR0clZhbHVlLCFUMi5mb3JjZUtlZXBBdHRyJiYoZ2MoUHMsZmkpLFQyLmtlZXBBdHRyKSl7aWYoTygvXC8+L2ksbW8pKXtnYyhQcyxmaSk7Y29udGludWV9S3ImJihtbz1UZShtbyx0biwiICIpLG1vPVRlKG1v''@;'; put 'put ''LHpuLCIgIikpO3ZhciBZbD1ybChmaS5ub2RlTmFtZSk7aWYoUGwoWWwscnMsbW8pKXtpZihuciYmIm9iamVjdCI9PT1KZShlcikmJiJmdW5jdGlvbiI9PXR5cGVvZiBlci5nZXRBdHRyaWJ1dGVUeXBlJiYhTmYpc3dpdGNoKGVyLmdldEF0dHJpYnV0ZVR5cGUoWWwscnMpKXtjYXNlIlRydXN0''@;'; put 'put ''ZWRIVE1MIjptbz1uci5jcmVhdGVIVE1MKG1vKTticmVhaztjYXNlIlRydXN0ZWRTY3JpcHRVUkwiOm1vPW5yLmNyZWF0ZVNjcmlwdFVSTChtbyl9dHJ5e05mP2ZpLnNldEF0dHJpYnV0ZU5TKE5mLFBzLG1vKTpmaS5zZXRBdHRyaWJ1dGUoUHMsbW8pLEFlKEh0LnJlbW92ZWQpfWNhdGNoKE5j''@;'; put 'put ''KXt9fX19bWMoImFmdGVyU2FuaXRpemVBdHRyaWJ1dGVzIixmaSxudWxsKX19LHMxPWZ1bmN0aW9uIFowKGZpKXt2YXIgUjAsbW89QjEoZmkpO2ZvcihtYygiYmVmb3JlU2FuaXRpemVTaGFkb3dET00iLGZpLG51bGwpO1IwPW1vLm5leHROb2RlKCk7KW1jKCJ1cG9uU2FuaXRpemVTaGFkb3dO''@;'; put 'put ''b2RlIixSMCxudWxsKSwheDIoUjApJiYoUjAuY29udGVudCBpbnN0YW5jZW9mIHl0JiZaMChSMC5jb250ZW50KSxRMihSMCkpO21jKCJhZnRlclNhbml0aXplU2hhZG93RE9NIixmaSxudWxsKX07cmV0dXJuIEh0LnNhbml0aXplPWZ1bmN0aW9uKFowLGZpKXt2YXIgUjAsbW8scnMsZHMsbjI7''@;'; put 'put ''aWYoKEFpPSFaMCkmJihaMD0iXHgzYyEtLVx4M2UiKSwic3RyaW5nIiE9dHlwZW9mIFowJiYhUDEoWjApKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgWjAudG9TdHJpbmcpdGhyb3cgeigidG9TdHJpbmcgaXMgbm90IGEgZnVuY3Rpb24iKTtpZigic3RyaW5nIiE9dHlwZW9mKFowPVowLnRvU3Ry''@;'; put 'put ''aW5nKCkpKXRocm93IHooImRpcnR5IGlzIG5vdCBhIHN0cmluZywgYWJvcnRpbmciKX1pZighSHQuaXNTdXBwb3J0ZWQpe2lmKCJvYmplY3QiPT09SmUoZnQudG9TdGF0aWNIVE1MKXx8ImZ1bmN0aW9uIj09dHlwZW9mIGZ0LnRvU3RhdGljSFRNTCl7aWYoInN0cmluZyI9PXR5cGVvZiBaMCly''@;'; put 'put ''ZXR1cm4gZnQudG9TdGF0aWNIVE1MKFowKTtpZihQMShaMCkpcmV0dXJuIGZ0LnRvU3RhdGljSFRNTChaMC5vdXRlckhUTUwpfXJldHVybiBaMH1pZihpaXx8VTAoZmkpLEh0LnJlbW92ZWQ9W10sInN0cmluZyI9PXR5cGVvZiBaMCYmKG0wPSExKSxtMCl7aWYoWjAubm9kZU5hbWUpe3ZhciBU''@;'; put 'put ''Mj1ybChaMC5ub2RlTmFtZSk7aWYoIWNuW1QyXXx8ZW5bVDJdKXRocm93IHooInJvb3Qgbm9kZSBpcyBmb3JiaWRkZW4gYW5kIGNhbm5vdCBiZSBzYW5pdGl6ZWQgaW4tcGxhY2UiKX19ZWxzZSBpZihaMCBpbnN0YW5jZW9mIEp0KTE9PT0obW89KFIwPXBkKCJceDNjIS0tLS1ceDNlIikpLm93''@;'; put 'put ''bmVyRG9jdW1lbnQuaW1wb3J0Tm9kZShaMCwhMCkpLm5vZGVUeXBlJiYiQk9EWSI9PT1tby5ub2RlTmFtZXx8IkhUTUwiPT09bW8ubm9kZU5hbWU/UjA9bW86UjAuYXBwZW5kQ2hpbGQobW8pO2Vsc2V7aWYoIWxpJiYhS3ImJiFWciYmLTE9PT1aMC5pbmRleE9mKCI8IikpcmV0dXJuIG5yJiZv''@;'; put 'put ''MD9uci5jcmVhdGVIVE1MKFowKTpaMDtpZighKFIwPXBkKFowKSkpcmV0dXJuIGxpP251bGw6bzA/QW46IiJ9UjAmJlJyJiZfMChSMC5maXJzdENoaWxkKTtmb3IodmFyIFRpPUIxKG0wP1owOlIwKTtycz1UaS5uZXh0Tm9kZSgpOykzPT09cnMubm9kZVR5cGUmJnJzPT09ZHN8fHgyKHJzKXx8''@;'; put 'put ''KHJzLmNvbnRlbnQgaW5zdGFuY2VvZiB5dCYmczEocnMuY29udGVudCksUTIocnMpLGRzPXJzKTtpZihkcz1udWxsLG0wKXJldHVybiBaMDtpZihsaSl7aWYoTWkpZm9yKG4yPUtuLmNhbGwoUjAub3duZXJEb2N1bWVudCk7UjAuZmlyc3RDaGlsZDspbjIuYXBwZW5kQ2hpbGQoUjAuZmlyc3RD''@;'; put 'put ''aGlsZCk7ZWxzZSBuMj1SMDtyZXR1cm4gR3Quc2hhZG93cm9vdCYmKG4yPXNuLmNhbGwoR2UsbjIsITApKSxuMn12YXIgUHM9VnI/UjAub3V0ZXJIVE1MOlIwLmlubmVySFRNTDtyZXR1cm4gVnImJmNuWyIhZG9jdHlwZSJdJiZSMC5vd25lckRvY3VtZW50JiZSMC5vd25lckRvY3VtZW50LmRv''@;'; put 'put ''Y3R5cGUmJlIwLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lJiZPKHR0LFIwLm93bmVyRG9jdW1lbnQuZG9jdHlwZS5uYW1lKSYmKFBzPSI8IURPQ1RZUEUgIitSMC5vd25lckRvY3VtZW50LmRvY3R5cGUubmFtZSsiPlxuIitQcyksS3ImJihQcz1UZShQcyx0biwiICIpLFBzPVRlKFBzLHpu''@;'; put 'put ''LCIgIikpLG5yJiZvMD9uci5jcmVhdGVIVE1MKFBzKTpQc30sSHQuc2V0Q29uZmlnPWZ1bmN0aW9uKFowKXtVMChaMCksaWk9ITB9LEh0LmNsZWFyQ29uZmlnPWZ1bmN0aW9uKCl7X2k9bnVsbCxpaT0hMX0sSHQuaXNWYWxpZEF0dHJpYnV0ZT1mdW5jdGlvbihaMCxmaSxSMCl7X2l8fFUwKHt9''@;'; put 'put ''KTt2YXIgbW89cmwoWjApLHJzPXJsKGZpKTtyZXR1cm4gUGwobW8scnMsUjApfSxIdC5hZGRIb29rPWZ1bmN0aW9uKFowLGZpKXsiZnVuY3Rpb24iPT10eXBlb2YgZmkmJih3bltaMF09d25bWjBdfHxbXSxrZSh3bltaMF0sZmkpKX0sSHQucmVtb3ZlSG9vaz1mdW5jdGlvbihaMCl7aWYod25b''@;'; put 'put ''WjBdKXJldHVybiBBZSh3bltaMF0pfSxIdC5yZW1vdmVIb29rcz1mdW5jdGlvbihaMCl7d25bWjBdJiYod25bWjBdPVtdKX0sSHQucmVtb3ZlQWxsSG9va3M9ZnVuY3Rpb24oKXt3bj17fX0sSHR9KCl9KCl9LDU3NzE1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9SmU7bWUudmVy''@;'; put 'put ''c2lvbj1MKDE4NTk3KS5pOCxtZS51dGlscz1MKDYxOTcwKSxtZS5yYW5kPUwoMzc5NTApLG1lLmN1cnZlPUwoNDYyNzApLG1lLmN1cnZlcz1MKDUyOTE2KSxtZS5lYz1MKDY3NjI2KSxtZS5lZGRzYT1MKDgxODg1KX0sOTc5MDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3''@;'; put 'put ''NDMzKSxCPUwoNjE5NzApLEU9Qi5nZXROQUYsRWU9Qi5nZXRKU0YsVT1CLmFzc2VydDtmdW5jdGlvbiBRKHJlLGFlKXt0aGlzLnR5cGU9cmUsdGhpcy5wPW5ldyBtZShhZS5wLDE2KSx0aGlzLnJlZD1hZS5wcmltZT9tZS5yZWQoYWUucHJpbWUpOm1lLm1vbnQodGhpcy5wKSx0aGlzLnplcm89''@;'; put 'put ''bmV3IG1lKDApLnRvUmVkKHRoaXMucmVkKSx0aGlzLm9uZT1uZXcgbWUoMSkudG9SZWQodGhpcy5yZWQpLHRoaXMudHdvPW5ldyBtZSgyKS50b1JlZCh0aGlzLnJlZCksdGhpcy5uPWFlLm4mJm5ldyBtZShhZS5uLDE2KSx0aGlzLmc9YWUuZyYmdGhpcy5wb2ludEZyb21KU09OKGFlLmcsYWUu''@;'; put 'put ''Z1JlZCksdGhpcy5fd25hZlQxPW5ldyBBcnJheSg0KSx0aGlzLl93bmFmVDI9bmV3IEFycmF5KDQpLHRoaXMuX3duYWZUMz1uZXcgQXJyYXkoNCksdGhpcy5fd25hZlQ0PW5ldyBBcnJheSg0KSx0aGlzLl9iaXRMZW5ndGg9dGhpcy5uP3RoaXMubi5iaXRMZW5ndGgoKTowO3ZhciBZPXRoaXMu''@;'; put 'put ''biYmdGhpcy5wLmRpdih0aGlzLm4pOyFZfHxZLmNtcG4oMTAwKT4wP3RoaXMucmVkTj1udWxsOih0aGlzLl9tYXh3ZWxsVHJpY2s9ITAsdGhpcy5yZWROPXRoaXMubi50b1JlZCh0aGlzLnJlZCkpfWZ1bmN0aW9uIGoocmUsYWUpe3RoaXMuY3VydmU9cmUsdGhpcy50eXBlPWFlLHRoaXMucHJl''@;'; put 'put ''Y29tcHV0ZWQ9bnVsbH1YZS5leHBvcnRzPVEsUS5wcm90b3R5cGUucG9pbnQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBpbXBsZW1lbnRlZCIpfSxRLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LFEucHJv''@;'; put 'put ''dG90eXBlLl9maXhlZE5hZk11bD1mdW5jdGlvbihhZSxZKXtVKGFlLnByZWNvbXB1dGVkKTt2YXIgVz1hZS5fZ2V0RG91YmxlcygpLE49RShZLDEsdGhpcy5fYml0TGVuZ3RoKSx0ZT0oMTw8Vy5zdGVwKzEpLShXLnN0ZXAlMj09MD8yOjEpO3RlLz0zO3ZhciBKLHNlLEs9W107Zm9yKEo9MDtK''@;'; put 'put ''PE4ubGVuZ3RoO0orPVcuc3RlcCl7c2U9MDtmb3IodmFyIG9lPUorVy5zdGVwLTE7b2U+PUo7b2UtLSlzZT0oc2U8PDEpK05bb2VdO0sucHVzaChzZSl9Zm9yKHZhciBjZT10aGlzLmpwb2ludChudWxsLG51bGwsbnVsbCksZGU9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHZlPXRlO3Zl''@;'; put 'put ''PjA7dmUtLSl7Zm9yKEo9MDtKPEsubGVuZ3RoO0orKykoc2U9S1tKXSk9PT12ZT9kZT1kZS5taXhlZEFkZChXLnBvaW50c1tKXSk6c2U9PT0tdmUmJihkZT1kZS5taXhlZEFkZChXLnBvaW50c1tKXS5uZWcoKSkpO2NlPWNlLmFkZChkZSl9cmV0dXJuIGNlLnRvUCgpfSxRLnByb3RvdHlwZS5f''@;'; put 'put ''d25hZk11bD1mdW5jdGlvbihhZSxZKXtmb3IodmFyIFc9NCxOPWFlLl9nZXROQUZQb2ludHMoVyksdGU9Ti5wb2ludHMsSz1FKFksVz1OLnduZCx0aGlzLl9iaXRMZW5ndGgpLEo9dGhpcy5qcG9pbnQobnVsbCxudWxsLG51bGwpLHNlPUsubGVuZ3RoLTE7c2U+PTA7c2UtLSl7Zm9yKHZhciBv''@;'; put 'put ''ZT0wO3NlPj0wJiYwPT09S1tzZV07c2UtLSlvZSsrO2lmKHNlPj0wJiZvZSsrLEo9Si5kYmxwKG9lKSxzZTwwKWJyZWFrO3ZhciBjZT1LW3NlXTtVKDAhPT1jZSksSj0iYWZmaW5lIj09PWFlLnR5cGU/Si5taXhlZEFkZChjZT4wP3RlW2NlLTE+PjFdOnRlWy1jZS0xPj4xXS5uZWcoKSk6Si5h''@;'; put 'put ''ZGQoY2U+MD90ZVtjZS0xPj4xXTp0ZVstY2UtMT4+MV0ubmVnKCkpfXJldHVybiJhZmZpbmUiPT09YWUudHlwZT9KLnRvUCgpOkp9LFEucHJvdG90eXBlLl93bmFmTXVsQWRkPWZ1bmN0aW9uKGFlLFksVyxOLHRlKXt2YXIgY2UsZGUsdmUsSz10aGlzLl93bmFmVDEsSj10aGlzLl93bmFmVDIs''@;'; put 'put ''c2U9dGhpcy5fd25hZlQzLG9lPTA7Zm9yKGNlPTA7Y2U8TjtjZSsrKXt2YXIgQWU9KHZlPVlbY2VdKS5fZ2V0TkFGUG9pbnRzKGFlKTtLW2NlXT1BZS53bmQsSltjZV09QWUucG9pbnRzfWZvcihjZT1OLTE7Y2U+PTE7Y2UtPTIpe3ZhciBrZT1jZS0xLFNlPWNlO2lmKDE9PT1LW2tlXSYmMT09''@;'; put 'put ''PUtbU2VdKXt2YXIgSWU9W1lba2VdLG51bGwsbnVsbCxZW1NlXV07MD09PVlba2VdLnkuY21wKFlbU2VdLnkpPyhJZVsxXT1ZW2tlXS5hZGQoWVtTZV0pLEllWzJdPVlba2VdLnRvSigpLm1peGVkQWRkKFlbU2VdLm5lZygpKSk6MD09PVlba2VdLnkuY21wKFlbU2VdLnkucmVkTmVnKCkpPyhJ''@;'; put 'put ''ZVsxXT1ZW2tlXS50b0ooKS5taXhlZEFkZChZW1NlXSksSWVbMl09WVtrZV0uYWRkKFlbU2VdLm5lZygpKSk6KEllWzFdPVlba2VdLnRvSigpLm1peGVkQWRkKFlbU2VdKSxJZVsyXT1ZW2tlXS50b0ooKS5taXhlZEFkZChZW1NlXS5uZWcoKSkpO3ZhciBUZT1bLTMsLTEsLTUsLTcsMCw3LDUs''@;'; put 'put ''MSwzXSxNZT1FZShXW2tlXSxXW1NlXSk7Zm9yKG9lPU1hdGgubWF4KE1lWzBdLmxlbmd0aCxvZSksc2Vba2VdPW5ldyBBcnJheShvZSksc2VbU2VdPW5ldyBBcnJheShvZSksZGU9MDtkZTxvZTtkZSsrKXNlW2tlXVtkZV09VGVbMyooMSsoMHxNZVswXVtkZV0pKSsoMSsoMHxNZVsxXVtkZV0p''@;'; put 'put ''KV0sc2VbU2VdW2RlXT0wLEpba2VdPUllfWVsc2Ugc2Vba2VdPUUoV1trZV0sS1trZV0sdGhpcy5fYml0TGVuZ3RoKSxzZVtTZV09RShXW1NlXSxLW1NlXSx0aGlzLl9iaXRMZW5ndGgpLG9lPU1hdGgubWF4KHNlW2tlXS5sZW5ndGgsb2UpLG9lPU1hdGgubWF4KHNlW1NlXS5sZW5ndGgsb2Up''@;'; put 'put ''fXZhciB6PXRoaXMuanBvaW50KG51bGwsbnVsbCxudWxsKSxlZT10aGlzLl93bmFmVDQ7Zm9yKGNlPW9lO2NlPj0wO2NlLS0pe2Zvcih2YXIgbmU9MDtjZT49MDspe3ZhciB4PSEwO2ZvcihkZT0wO2RlPE47ZGUrKyllZVtkZV09MHxzZVtkZV1bY2VdLDAhPT1lZVtkZV0mJih4PSExKTtpZigh''@;'; put 'put ''eClicmVhaztuZSsrLGNlLS19aWYoY2U+PTAmJm5lKyssej16LmRibHAobmUpLGNlPDApYnJlYWs7Zm9yKGRlPTA7ZGU8TjtkZSsrKXt2YXIgUD1lZVtkZV07MCE9PVAmJihQPjA/dmU9SltkZV1bUC0xPj4xXTpQPDAmJih2ZT1KW2RlXVstUC0xPj4xXS5uZWcoKSksej0iYWZmaW5lIj09PXZl''@;'; put 'put ''LnR5cGU/ei5taXhlZEFkZCh2ZSk6ei5hZGQodmUpKX19Zm9yKGNlPTA7Y2U8TjtjZSsrKUpbY2VdPW51bGw7cmV0dXJuIHRlP3o6ei50b1AoKX0sUS5CYXNlUG9pbnQ9aixqLnByb3RvdHlwZS5lcT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IGltcGxlbWVudGVkIil9LGoucHJv''@;'; put 'put ''dG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUudmFsaWRhdGUodGhpcyl9LFEucHJvdG90eXBlLmRlY29kZVBvaW50PWZ1bmN0aW9uKGFlLFkpe2FlPUIudG9BcnJheShhZSxZKTt2YXIgVz10aGlzLnAuYnl0ZUxlbmd0aCgpO2lmKCg0PT09YWVbMF18fDY9PT1h''@;'; put 'put ''ZVswXXx8Nz09PWFlWzBdKSYmYWUubGVuZ3RoLTE9PTIqVylyZXR1cm4gNj09PWFlWzBdP1UoYWVbYWUubGVuZ3RoLTFdJTI9PTApOjc9PT1hZVswXSYmVShhZVthZS5sZW5ndGgtMV0lMj09MSksdGhpcy5wb2ludChhZS5zbGljZSgxLDErVyksYWUuc2xpY2UoMStXLDErMipXKSk7aWYoKDI9''@;'; put 'put ''PT1hZVswXXx8Mz09PWFlWzBdKSYmYWUubGVuZ3RoLTE9PT1XKXJldHVybiB0aGlzLnBvaW50RnJvbVgoYWUuc2xpY2UoMSwxK1cpLDM9PT1hZVswXSk7dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHBvaW50IGZvcm1hdCIpfSxqLnByb3RvdHlwZS5lbmNvZGVDb21wcmVzc2VkPWZ1bmN0aW9u''@;'; put 'put ''KGFlKXtyZXR1cm4gdGhpcy5lbmNvZGUoYWUsITApfSxqLnByb3RvdHlwZS5fZW5jb2RlPWZ1bmN0aW9uKGFlKXt2YXIgWT10aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpLFc9dGhpcy5nZXRYKCkudG9BcnJheSgiYmUiLFkpO3JldHVybiBhZT9bdGhpcy5nZXRZKCkuaXNFdmVuKCk/MjozXS5j''@;'; put 'put ''b25jYXQoVyk6WzRdLmNvbmNhdChXLHRoaXMuZ2V0WSgpLnRvQXJyYXkoImJlIixZKSl9LGoucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbihhZSxZKXtyZXR1cm4gQi5lbmNvZGUodGhpcy5fZW5jb2RlKFkpLGFlKX0sai5wcm90b3R5cGUucHJlY29tcHV0ZT1mdW5jdGlvbihhZSl7aWYodGhp''@;'; put 'put ''cy5wcmVjb21wdXRlZClyZXR1cm4gdGhpczt2YXIgWT17ZG91YmxlczpudWxsLG5hZjpudWxsLGJldGE6bnVsbH07cmV0dXJuIFkubmFmPXRoaXMuX2dldE5BRlBvaW50cyg4KSxZLmRvdWJsZXM9dGhpcy5fZ2V0RG91Ymxlcyg0LGFlKSxZLmJldGE9dGhpcy5fZ2V0QmV0YSgpLHRoaXMucHJl''@;'; put 'put ''Y29tcHV0ZWQ9WSx0aGlzfSxqLnByb3RvdHlwZS5faGFzRG91Ymxlcz1mdW5jdGlvbihhZSl7aWYoIXRoaXMucHJlY29tcHV0ZWQpcmV0dXJuITE7dmFyIFk9dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO3JldHVybiEhWSYmWS5wb2ludHMubGVuZ3RoPj1NYXRoLmNlaWwoKGFlLmJpdExlbmd0''@;'; put 'put ''aCgpKzEpL1kuc3RlcCl9LGoucHJvdG90eXBlLl9nZXREb3VibGVzPWZ1bmN0aW9uKGFlLFkpe2lmKHRoaXMucHJlY29tcHV0ZWQmJnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcylyZXR1cm4gdGhpcy5wcmVjb21wdXRlZC5kb3VibGVzO2Zvcih2YXIgVz1bdGhpc10sTj10aGlzLHRlPTA7dGU8''@;'; put 'put ''WTt0ZSs9YWUpe2Zvcih2YXIgSz0wO0s8YWU7SysrKU49Ti5kYmwoKTtXLnB1c2goTil9cmV0dXJue3N0ZXA6YWUscG9pbnRzOld9fSxqLnByb3RvdHlwZS5fZ2V0TkFGUG9pbnRzPWZ1bmN0aW9uKGFlKXtpZih0aGlzLnByZWNvbXB1dGVkJiZ0aGlzLnByZWNvbXB1dGVkLm5hZilyZXR1cm4g''@;'; put 'put ''dGhpcy5wcmVjb21wdXRlZC5uYWY7Zm9yKHZhciBZPVt0aGlzXSxXPSgxPDxhZSktMSxOPTE9PT1XP251bGw6dGhpcy5kYmwoKSx0ZT0xO3RlPFc7dGUrKylZW3RlXT1ZW3RlLTFdLmFkZChOKTtyZXR1cm57d25kOmFlLHBvaW50czpZfX0sai5wcm90b3R5cGUuX2dldEJldGE9ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gbnVsbH0sai5wcm90b3R5cGUuZGJscD1mdW5jdGlvbihhZSl7Zm9yKHZhciBZPXRoaXMsVz0wO1c8YWU7VysrKVk9WS5kYmwoKTtyZXR1cm4gWX19LDEzODM1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MTk3MCksQj1MKDE3NDMzKSxFPUwoODM4OTQpLEVl''@;'; put 'put ''PUwoOTc5MDIpLFU9bWUuYXNzZXJ0O2Z1bmN0aW9uIFEocmUpe3RoaXMudHdpc3RlZD0xIT0oMHxyZS5hKSx0aGlzLm1PbmVBPXRoaXMudHdpc3RlZCYmLTE9PSgwfHJlLmEpLHRoaXMuZXh0ZW5kZWQ9dGhpcy5tT25lQSxFZS5jYWxsKHRoaXMsImVkd2FyZHMiLHJlKSx0aGlzLmE9bmV3IEIo''@;'; put 'put ''cmUuYSwxNikudW1vZCh0aGlzLnJlZC5tKSx0aGlzLmE9dGhpcy5hLnRvUmVkKHRoaXMucmVkKSx0aGlzLmM9bmV3IEIocmUuYywxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuYzI9dGhpcy5jLnJlZFNxcigpLHRoaXMuZD1uZXcgQihyZS5kLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5kZD10''@;'; put 'put ''aGlzLmQucmVkQWRkKHRoaXMuZCksVSghdGhpcy50d2lzdGVkfHwwPT09dGhpcy5jLmZyb21SZWQoKS5jbXBuKDEpKSx0aGlzLm9uZUM9MT09KDB8cmUuYyl9ZnVuY3Rpb24gaihyZSxhZSxZLFcsTil7RWUuQmFzZVBvaW50LmNhbGwodGhpcyxyZSwicHJvamVjdGl2ZSIpLG51bGw9PT1hZSYm''@;'; put 'put ''bnVsbD09PVkmJm51bGw9PT1XPyh0aGlzLng9dGhpcy5jdXJ2ZS56ZXJvLHRoaXMueT10aGlzLmN1cnZlLm9uZSx0aGlzLno9dGhpcy5jdXJ2ZS5vbmUsdGhpcy50PXRoaXMuY3VydmUuemVybyx0aGlzLnpPbmU9ITApOih0aGlzLng9bmV3IEIoYWUsMTYpLHRoaXMueT1uZXcgQihZLDE2KSx0''@;'; put 'put ''aGlzLno9Vz9uZXcgQihXLDE2KTp0aGlzLmN1cnZlLm9uZSx0aGlzLnQ9TiYmbmV3IEIoTiwxNiksdGhpcy54LnJlZHx8KHRoaXMueD10aGlzLngudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnkucmVkfHwodGhpcy55PXRoaXMueS50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuei5y''@;'; put 'put ''ZWR8fCh0aGlzLno9dGhpcy56LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy50JiYhdGhpcy50LnJlZCYmKHRoaXMudD10aGlzLnQudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnpPbmU9dGhpcy56PT09dGhpcy5jdXJ2ZS5vbmUsdGhpcy5jdXJ2ZS5leHRlbmRlZCYmIXRoaXMudCYm''@;'; put 'put ''KHRoaXMudD10aGlzLngucmVkTXVsKHRoaXMueSksdGhpcy56T25lfHwodGhpcy50PXRoaXMudC5yZWRNdWwodGhpcy56LnJlZEludm0oKSkpKSl9RShRLEVlKSxYZS5leHBvcnRzPVEsUS5wcm90b3R5cGUuX211bEE9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLm1PbmVBP2FlLnJlZE5lZygp''@;'; put 'put ''OnRoaXMuYS5yZWRNdWwoYWUpfSxRLnByb3RvdHlwZS5fbXVsQz1mdW5jdGlvbihhZSl7cmV0dXJuIHRoaXMub25lQz9hZTp0aGlzLmMucmVkTXVsKGFlKX0sUS5wcm90b3R5cGUuanBvaW50PWZ1bmN0aW9uKGFlLFksVyxOKXtyZXR1cm4gdGhpcy5wb2ludChhZSxZLFcsTil9LFEucHJvdG90''@;'; put 'put ''eXBlLnBvaW50RnJvbVg9ZnVuY3Rpb24oYWUsWSl7KGFlPW5ldyBCKGFlLDE2KSkucmVkfHwoYWU9YWUudG9SZWQodGhpcy5yZWQpKTt2YXIgVz1hZS5yZWRTcXIoKSxOPXRoaXMuYzIucmVkU3ViKHRoaXMuYS5yZWRNdWwoVykpLHRlPXRoaXMub25lLnJlZFN1Yih0aGlzLmMyLnJlZE11bCh0''@;'; put 'put ''aGlzLmQpLnJlZE11bChXKSksSz1OLnJlZE11bCh0ZS5yZWRJbnZtKCkpLEo9Sy5yZWRTcXJ0KCk7aWYoMCE9PUoucmVkU3FyKCkucmVkU3ViKEspLmNtcCh0aGlzLnplcm8pKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBwb2ludCIpO3ZhciBzZT1KLmZyb21SZWQoKS5pc09kZCgpO3JldHVy''@;'; put 'put ''bihZJiYhc2V8fCFZJiZzZSkmJihKPUoucmVkTmVnKCkpLHRoaXMucG9pbnQoYWUsSil9LFEucHJvdG90eXBlLnBvaW50RnJvbVk9ZnVuY3Rpb24oYWUsWSl7KGFlPW5ldyBCKGFlLDE2KSkucmVkfHwoYWU9YWUudG9SZWQodGhpcy5yZWQpKTt2YXIgVz1hZS5yZWRTcXIoKSxOPVcucmVkU3Vi''@;'; put 'put ''KHRoaXMuYzIpLHRlPVcucmVkTXVsKHRoaXMuZCkucmVkTXVsKHRoaXMuYzIpLnJlZFN1Yih0aGlzLmEpLEs9Ti5yZWRNdWwodGUucmVkSW52bSgpKTtpZigwPT09Sy5jbXAodGhpcy56ZXJvKSl7aWYoWSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gdGhpcy5wb2lu''@;'; put 'put ''dCh0aGlzLnplcm8sYWUpfXZhciBKPUsucmVkU3FydCgpO2lmKDAhPT1KLnJlZFNxcigpLnJlZFN1YihLKS5jbXAodGhpcy56ZXJvKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcG9pbnQiKTtyZXR1cm4gSi5mcm9tUmVkKCkuaXNPZGQoKSE9PVkmJihKPUoucmVkTmVnKCkpLHRoaXMucG9p''@;'; put 'put ''bnQoSixhZSl9LFEucHJvdG90eXBlLnZhbGlkYXRlPWZ1bmN0aW9uKGFlKXtpZihhZS5pc0luZmluaXR5KCkpcmV0dXJuITA7YWUubm9ybWFsaXplKCk7dmFyIFk9YWUueC5yZWRTcXIoKSxXPWFlLnkucmVkU3FyKCksTj1ZLnJlZE11bCh0aGlzLmEpLnJlZEFkZChXKSx0ZT10aGlzLmMyLnJl''@;'; put 'put ''ZE11bCh0aGlzLm9uZS5yZWRBZGQodGhpcy5kLnJlZE11bChZKS5yZWRNdWwoVykpKTtyZXR1cm4gMD09PU4uY21wKHRlKX0sRShqLEVlLkJhc2VQb2ludCksUS5wcm90b3R5cGUucG9pbnRGcm9tSlNPTj1mdW5jdGlvbihhZSl7cmV0dXJuIGouZnJvbUpTT04odGhpcyxhZSl9LFEucHJvdG90''@;'; put 'put ''eXBlLnBvaW50PWZ1bmN0aW9uKGFlLFksVyxOKXtyZXR1cm4gbmV3IGoodGhpcyxhZSxZLFcsTil9LGouZnJvbUpTT049ZnVuY3Rpb24oYWUsWSl7cmV0dXJuIG5ldyBqKGFlLFlbMF0sWVsxXSxZWzJdKX0sai5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzSW5m''@;'; put 'put ''aW5pdHkoKT8iPEVDIFBvaW50IEluZmluaXR5PiI6IjxFQyBQb2ludCB4OiAiK3RoaXMueC5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIiB6OiAiK3RoaXMuei5mcm9tUmVkKCkudG9TdHJpbmcoMTYsMikrIj4ifSxqLnBy''@;'; put 'put ''b3RvdHlwZS5pc0luZmluaXR5PWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLnguY21wbigwKSYmKDA9PT10aGlzLnkuY21wKHRoaXMueil8fHRoaXMuek9uZSYmMD09PXRoaXMueS5jbXAodGhpcy5jdXJ2ZS5jKSl9LGoucHJvdG90eXBlLl9leHREYmw9ZnVuY3Rpb24oKXt2YXIgYWU9dGhp''@;'; put 'put ''cy54LnJlZFNxcigpLFk9dGhpcy55LnJlZFNxcigpLFc9dGhpcy56LnJlZFNxcigpO1c9Vy5yZWRJQWRkKFcpO3ZhciBOPXRoaXMuY3VydmUuX211bEEoYWUpLHRlPXRoaXMueC5yZWRBZGQodGhpcy55KS5yZWRTcXIoKS5yZWRJU3ViKGFlKS5yZWRJU3ViKFkpLEs9Ti5yZWRBZGQoWSksSj1L''@;'; put 'put ''LnJlZFN1YihXKSxzZT1OLnJlZFN1YihZKSxvZT10ZS5yZWRNdWwoSiksY2U9Sy5yZWRNdWwoc2UpLGRlPXRlLnJlZE11bChzZSksdmU9Si5yZWRNdWwoSyk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQob2UsY2UsdmUsZGUpfSxqLnByb3RvdHlwZS5fcHJvakRibD1mdW5jdGlvbigpe3ZhciBO''@;'; put 'put ''LHRlLEssSixzZSxvZSxhZT10aGlzLngucmVkQWRkKHRoaXMueSkucmVkU3FyKCksWT10aGlzLngucmVkU3FyKCksVz10aGlzLnkucmVkU3FyKCk7aWYodGhpcy5jdXJ2ZS50d2lzdGVkKXt2YXIgY2U9KEo9dGhpcy5jdXJ2ZS5fbXVsQShZKSkucmVkQWRkKFcpO3RoaXMuek9uZT8oTj1hZS5y''@;'; put 'put ''ZWRTdWIoWSkucmVkU3ViKFcpLnJlZE11bChjZS5yZWRTdWIodGhpcy5jdXJ2ZS50d28pKSx0ZT1jZS5yZWRNdWwoSi5yZWRTdWIoVykpLEs9Y2UucmVkU3FyKCkucmVkU3ViKGNlKS5yZWRTdWIoY2UpKTooc2U9dGhpcy56LnJlZFNxcigpLG9lPWNlLnJlZFN1YihzZSkucmVkSVN1YihzZSks''@;'; put 'put ''Tj1hZS5yZWRTdWIoWSkucmVkSVN1YihXKS5yZWRNdWwob2UpLHRlPWNlLnJlZE11bChKLnJlZFN1YihXKSksSz1jZS5yZWRNdWwob2UpKX1lbHNlIEo9WS5yZWRBZGQoVyksc2U9dGhpcy5jdXJ2ZS5fbXVsQyh0aGlzLnopLnJlZFNxcigpLG9lPUoucmVkU3ViKHNlKS5yZWRTdWIoc2UpLE49''@;'; put 'put ''dGhpcy5jdXJ2ZS5fbXVsQyhhZS5yZWRJU3ViKEopKS5yZWRNdWwob2UpLHRlPXRoaXMuY3VydmUuX211bEMoSikucmVkTXVsKFkucmVkSVN1YihXKSksSz1KLnJlZE11bChvZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoTix0ZSxLKX0sai5wcm90b3R5cGUuZGJsPWZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIHRoaXMuaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5jdXJ2ZS5leHRlbmRlZD90aGlzLl9leHREYmwoKTp0aGlzLl9wcm9qRGJsKCl9LGoucHJvdG90eXBlLl9leHRBZGQ9ZnVuY3Rpb24oYWUpe3ZhciBZPXRoaXMueS5yZWRTdWIodGhpcy54KS5yZWRNdWwoYWUueS5yZWRTdWIoYWUueCkp''@;'; put 'put ''LFc9dGhpcy55LnJlZEFkZCh0aGlzLngpLnJlZE11bChhZS55LnJlZEFkZChhZS54KSksTj10aGlzLnQucmVkTXVsKHRoaXMuY3VydmUuZGQpLnJlZE11bChhZS50KSx0ZT10aGlzLnoucmVkTXVsKGFlLnoucmVkQWRkKGFlLnopKSxLPVcucmVkU3ViKFkpLEo9dGUucmVkU3ViKE4pLHNlPXRl''@;'; put 'put ''LnJlZEFkZChOKSxvZT1XLnJlZEFkZChZKSxjZT1LLnJlZE11bChKKSxkZT1zZS5yZWRNdWwob2UpLHZlPUsucmVkTXVsKG9lKSxBZT1KLnJlZE11bChzZSk7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQoY2UsZGUsQWUsdmUpfSxqLnByb3RvdHlwZS5fcHJvakFkZD1mdW5jdGlvbihhZSl7dmFy''@;'; put 'put ''IGRlLHZlLFk9dGhpcy56LnJlZE11bChhZS56KSxXPVkucmVkU3FyKCksTj10aGlzLngucmVkTXVsKGFlLngpLHRlPXRoaXMueS5yZWRNdWwoYWUueSksSz10aGlzLmN1cnZlLmQucmVkTXVsKE4pLnJlZE11bCh0ZSksSj1XLnJlZFN1YihLKSxzZT1XLnJlZEFkZChLKSxvZT10aGlzLngucmVk''@;'; put 'put ''QWRkKHRoaXMueSkucmVkTXVsKGFlLngucmVkQWRkKGFlLnkpKS5yZWRJU3ViKE4pLnJlZElTdWIodGUpLGNlPVkucmVkTXVsKEopLnJlZE11bChvZSk7cmV0dXJuIHRoaXMuY3VydmUudHdpc3RlZD8oZGU9WS5yZWRNdWwoc2UpLnJlZE11bCh0ZS5yZWRTdWIodGhpcy5jdXJ2ZS5fbXVsQShO''@;'; put 'put ''KSkpLHZlPUoucmVkTXVsKHNlKSk6KGRlPVkucmVkTXVsKHNlKS5yZWRNdWwodGUucmVkU3ViKE4pKSx2ZT10aGlzLmN1cnZlLl9tdWxDKEopLnJlZE11bChzZSkpLHRoaXMuY3VydmUucG9pbnQoY2UsZGUsdmUpfSxqLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLmlz''@;'; put 'put ''SW5maW5pdHkoKT9hZTphZS5pc0luZmluaXR5KCk/dGhpczp0aGlzLmN1cnZlLmV4dGVuZGVkP3RoaXMuX2V4dEFkZChhZSk6dGhpcy5fcHJvakFkZChhZSl9LGoucHJvdG90eXBlLm11bD1mdW5jdGlvbihhZSl7cmV0dXJuIHRoaXMuX2hhc0RvdWJsZXMoYWUpP3RoaXMuY3VydmUuX2ZpeGVk''@;'; put 'put ''TmFmTXVsKHRoaXMsYWUpOnRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxhZSl9LGoucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihhZSxZLFcpe3JldHVybiB0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsW3RoaXMsWV0sW2FlLFddLDIsITEpfSxqLnByb3RvdHlwZS5qbXVsQWRkPWZ1bmN0aW9u''@;'; put 'put ''KGFlLFksVyl7cmV0dXJuIHRoaXMuY3VydmUuX3duYWZNdWxBZGQoMSxbdGhpcyxZXSxbYWUsV10sMiwhMCl9LGoucHJvdG90eXBlLm5vcm1hbGl6ZT1mdW5jdGlvbigpe2lmKHRoaXMuek9uZSlyZXR1cm4gdGhpczt2YXIgYWU9dGhpcy56LnJlZEludm0oKTtyZXR1cm4gdGhpcy54PXRoaXMu''@;'; put 'put ''eC5yZWRNdWwoYWUpLHRoaXMueT10aGlzLnkucmVkTXVsKGFlKSx0aGlzLnQmJih0aGlzLnQ9dGhpcy50LnJlZE11bChhZSkpLHRoaXMuej10aGlzLmN1cnZlLm9uZSx0aGlzLnpPbmU9ITAsdGhpc30sai5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUucG9pbnQo''@;'; put 'put ''dGhpcy54LnJlZE5lZygpLHRoaXMueSx0aGlzLnosdGhpcy50JiZ0aGlzLnQucmVkTmVnKCkpfSxqLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9ybWFsaXplKCksdGhpcy54LmZyb21SZWQoKX0sai5wcm90b3R5cGUuZ2V0WT1mdW5jdGlvbigpe3JldHVybiB0aGlz''@;'; put 'put ''Lm5vcm1hbGl6ZSgpLHRoaXMueS5mcm9tUmVkKCl9LGoucHJvdG90eXBlLmVxPWZ1bmN0aW9uKGFlKXtyZXR1cm4gdGhpcz09PWFlfHwwPT09dGhpcy5nZXRYKCkuY21wKGFlLmdldFgoKSkmJjA9PT10aGlzLmdldFkoKS5jbXAoYWUuZ2V0WSgpKX0sai5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0''@;'; put 'put ''aW9uKGFlKXt2YXIgWT1hZS50b1JlZCh0aGlzLmN1cnZlLnJlZCkucmVkTXVsKHRoaXMueik7aWYoMD09PXRoaXMueC5jbXAoWSkpcmV0dXJuITA7Zm9yKHZhciBXPWFlLmNsb25lKCksTj10aGlzLmN1cnZlLnJlZE4ucmVkTXVsKHRoaXMueik7Oyl7aWYoVy5pYWRkKHRoaXMuY3VydmUubiks''@;'; put 'put ''Vy5jbXAodGhpcy5jdXJ2ZS5wKT49MClyZXR1cm4hMTtpZihZLnJlZElBZGQoTiksMD09PXRoaXMueC5jbXAoWSkpcmV0dXJuITB9fSxqLnByb3RvdHlwZS50b1A9ai5wcm90b3R5cGUubm9ybWFsaXplLGoucHJvdG90eXBlLm1peGVkQWRkPWoucHJvdG90eXBlLmFkZH0sNDYyNzA6KFhlLEpl''@;'; put 'put ''LEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1KZTttZS5iYXNlPUwoOTc5MDIpLG1lLnNob3J0PUwoNDE3ODEpLG1lLm1vbnQ9TCg5NzA2NCksbWUuZWR3YXJkcz1MKDEzODM1KX0sOTcwNjQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwoODM4OTQpLEU9TCg5''@;'; put 'put ''NzkwMiksRWU9TCg2MTk3MCk7ZnVuY3Rpb24gVShqKXtFLmNhbGwodGhpcywibW9udCIsaiksdGhpcy5hPW5ldyBtZShqLmEsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmI9bmV3IG1lKGouYiwxNikudG9SZWQodGhpcy5yZWQpLHRoaXMuaTQ9bmV3IG1lKDQpLnRvUmVkKHRoaXMucmVkKS5y''@;'; put 'put ''ZWRJbnZtKCksdGhpcy50d289bmV3IG1lKDIpLnRvUmVkKHRoaXMucmVkKSx0aGlzLmEyND10aGlzLmk0LnJlZE11bCh0aGlzLmEucmVkQWRkKHRoaXMudHdvKSl9ZnVuY3Rpb24gUShqLHJlLGFlKXtFLkJhc2VQb2ludC5jYWxsKHRoaXMsaiwicHJvamVjdGl2ZSIpLG51bGw9PT1yZSYmbnVs''@;'; put 'put ''bD09PWFlPyh0aGlzLng9dGhpcy5jdXJ2ZS5vbmUsdGhpcy56PXRoaXMuY3VydmUuemVybyk6KHRoaXMueD1uZXcgbWUocmUsMTYpLHRoaXMuej1uZXcgbWUoYWUsMTYpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy56LnJlZHx8KHRoaXMu''@;'; put 'put ''ej10aGlzLnoudG9SZWQodGhpcy5jdXJ2ZS5yZWQpKSl9QihVLEUpLFhlLmV4cG9ydHM9VSxVLnByb3RvdHlwZS52YWxpZGF0ZT1mdW5jdGlvbihyZSl7dmFyIGFlPXJlLm5vcm1hbGl6ZSgpLngsWT1hZS5yZWRTcXIoKSxXPVkucmVkTXVsKGFlKS5yZWRBZGQoWS5yZWRNdWwodGhpcy5hKSku''@;'; put 'put ''cmVkQWRkKGFlKTtyZXR1cm4gMD09PVcucmVkU3FydCgpLnJlZFNxcigpLmNtcChXKX0sQihRLEUuQmFzZVBvaW50KSxVLnByb3RvdHlwZS5kZWNvZGVQb2ludD1mdW5jdGlvbihyZSxhZSl7cmV0dXJuIHRoaXMucG9pbnQoRWUudG9BcnJheShyZSxhZSksMSl9LFUucHJvdG90eXBlLnBvaW50''@;'; put 'put ''PWZ1bmN0aW9uKHJlLGFlKXtyZXR1cm4gbmV3IFEodGhpcyxyZSxhZSl9LFUucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24ocmUpe3JldHVybiBRLmZyb21KU09OKHRoaXMscmUpfSxRLnByb3RvdHlwZS5wcmVjb21wdXRlPWZ1bmN0aW9uKCl7fSxRLnByb3RvdHlwZS5fZW5jb2Rl''@;'; put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0WCgpLnRvQXJyYXkoImJlIix0aGlzLmN1cnZlLnAuYnl0ZUxlbmd0aCgpKX0sUS5mcm9tSlNPTj1mdW5jdGlvbihyZSxhZSl7cmV0dXJuIG5ldyBRKHJlLGFlWzBdLGFlWzFdfHxyZS5vbmUpfSxRLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LFEucHJvdG90eXBlLmlzSW5maW5pdHk9''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuei5jbXBuKDApfSxRLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXt2YXIgYWU9dGhpcy54LnJlZEFkZCh0aGlzLnopLnJlZFNxcigpLFc9dGhpcy54LnJlZFN1Yih0aGlzLnopLnJlZFNxcigpLE49YWUucmVkU3ViKFcpLHRlPWFlLnJlZE11bChX''@;'; put 'put ''KSxLPU4ucmVkTXVsKFcucmVkQWRkKHRoaXMuY3VydmUuYTI0LnJlZE11bChOKSkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHRlLEspfSxRLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIk5vdCBzdXBwb3J0ZWQgb24gTW9udGdvbWVyeSBjdXJ2ZSIpfSxRLnBy''@;'; put 'put ''b3RvdHlwZS5kaWZmQWRkPWZ1bmN0aW9uKHJlLGFlKXt2YXIgWT10aGlzLngucmVkQWRkKHRoaXMueiksVz10aGlzLngucmVkU3ViKHRoaXMueiksTj1yZS54LnJlZEFkZChyZS56KSxLPXJlLngucmVkU3ViKHJlLnopLnJlZE11bChZKSxKPU4ucmVkTXVsKFcpLHNlPWFlLnoucmVkTXVsKEsu''@;'; put 'put ''cmVkQWRkKEopLnJlZFNxcigpKSxvZT1hZS54LnJlZE11bChLLnJlZElTdWIoSikucmVkU3FyKCkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KHNlLG9lKX0sUS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHJlKXtmb3IodmFyIGFlPXJlLmNsb25lKCksWT10aGlzLFc9dGhpcy5jdXJ2ZS5wb2lu''@;'; put 'put ''dChudWxsLG51bGwpLHRlPVtdOzAhPT1hZS5jbXBuKDApO2FlLml1c2hybigxKSl0ZS5wdXNoKGFlLmFuZGxuKDEpKTtmb3IodmFyIEs9dGUubGVuZ3RoLTE7Sz49MDtLLS0pMD09PXRlW0tdPyhZPVkuZGlmZkFkZChXLHRoaXMpLFc9Vy5kYmwoKSk6KFc9WS5kaWZmQWRkKFcsdGhpcyksWT1Z''@;'; put 'put ''LmRibCgpKTtyZXR1cm4gV30sUS5wcm90b3R5cGUubXVsQWRkPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJOb3Qgc3VwcG9ydGVkIG9uIE1vbnRnb21lcnkgY3VydmUiKX0sUS5wcm90b3R5cGUuanVtbEFkZD1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiTm90IHN1cHBvcnRlZCBv''@;'; put 'put ''biBNb250Z29tZXJ5IGN1cnZlIil9LFEucHJvdG90eXBlLmVxPWZ1bmN0aW9uKHJlKXtyZXR1cm4gMD09PXRoaXMuZ2V0WCgpLmNtcChyZS5nZXRYKCkpfSxRLnByb3RvdHlwZS5ub3JtYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54PXRoaXMueC5yZWRNdWwodGhpcy56LnJlZEludm0o''@;'; put 'put ''KSksdGhpcy56PXRoaXMuY3VydmUub25lLHRoaXN9LFEucHJvdG90eXBlLmdldFg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub3JtYWxpemUoKSx0aGlzLnguZnJvbVJlZCgpfX0sNDE3ODE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYxOTcwKSxCPUwoMTc0MzMpLEU9TCg4''@;'; put 'put ''Mzg5NCksRWU9TCg5NzkwMiksVT1tZS5hc3NlcnQ7ZnVuY3Rpb24gUShhZSl7RWUuY2FsbCh0aGlzLCJzaG9ydCIsYWUpLHRoaXMuYT1uZXcgQihhZS5hLDE2KS50b1JlZCh0aGlzLnJlZCksdGhpcy5iPW5ldyBCKGFlLmIsMTYpLnRvUmVkKHRoaXMucmVkKSx0aGlzLnRpbnY9dGhpcy50d28u''@;'; put 'put ''cmVkSW52bSgpLHRoaXMuemVyb0E9MD09PXRoaXMuYS5mcm9tUmVkKCkuY21wbigwKSx0aGlzLnRocmVlQT0wPT09dGhpcy5hLmZyb21SZWQoKS5zdWIodGhpcy5wKS5jbXBuKC0zKSx0aGlzLmVuZG89dGhpcy5fZ2V0RW5kb21vcnBoaXNtKGFlKSx0aGlzLl9lbmRvV25hZlQxPW5ldyBBcnJh''@;'; put 'put ''eSg0KSx0aGlzLl9lbmRvV25hZlQyPW5ldyBBcnJheSg0KX1mdW5jdGlvbiBqKGFlLFksVyxOKXtFZS5CYXNlUG9pbnQuY2FsbCh0aGlzLGFlLCJhZmZpbmUiKSxudWxsPT09WSYmbnVsbD09PVc/KHRoaXMueD1udWxsLHRoaXMueT1udWxsLHRoaXMuaW5mPSEwKToodGhpcy54PW5ldyBCKFks''@;'; put 'put ''MTYpLHRoaXMueT1uZXcgQihXLDE2KSxOJiYodGhpcy54LmZvcmNlUmVkKHRoaXMuY3VydmUucmVkKSx0aGlzLnkuZm9yY2VSZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLngucmVkfHwodGhpcy54PXRoaXMueC50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMueS5yZWR8fCh0aGlzLnk9dGhp''@;'; put 'put ''cy55LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy5pbmY9ITEpfWZ1bmN0aW9uIHJlKGFlLFksVyxOKXtFZS5CYXNlUG9pbnQuY2FsbCh0aGlzLGFlLCJqYWNvYmlhbiIpLG51bGw9PT1ZJiZudWxsPT09VyYmbnVsbD09PU4/KHRoaXMueD10aGlzLmN1cnZlLm9uZSx0aGlzLnk9dGhpcy5j''@;'; put 'put ''dXJ2ZS5vbmUsdGhpcy56PW5ldyBCKDApKToodGhpcy54PW5ldyBCKFksMTYpLHRoaXMueT1uZXcgQihXLDE2KSx0aGlzLno9bmV3IEIoTiwxNikpLHRoaXMueC5yZWR8fCh0aGlzLng9dGhpcy54LnRvUmVkKHRoaXMuY3VydmUucmVkKSksdGhpcy55LnJlZHx8KHRoaXMueT10aGlzLnkudG9S''@;'; put 'put ''ZWQodGhpcy5jdXJ2ZS5yZWQpKSx0aGlzLnoucmVkfHwodGhpcy56PXRoaXMuei50b1JlZCh0aGlzLmN1cnZlLnJlZCkpLHRoaXMuek9uZT10aGlzLno9PT10aGlzLmN1cnZlLm9uZX1FKFEsRWUpLFhlLmV4cG9ydHM9USxRLnByb3RvdHlwZS5fZ2V0RW5kb21vcnBoaXNtPWZ1bmN0aW9uKFkp''@;'; put 'put ''e2lmKHRoaXMuemVyb0EmJnRoaXMuZyYmdGhpcy5uJiYxPT09dGhpcy5wLm1vZG4oMykpe3ZhciBXLE47aWYoWS5iZXRhKVc9bmV3IEIoWS5iZXRhLDE2KS50b1JlZCh0aGlzLnJlZCk7ZWxzZXt2YXIgdGU9dGhpcy5fZ2V0RW5kb1Jvb3RzKHRoaXMucCk7Vz0oVz10ZVswXS5jbXAodGVbMV0p''@;'; put 'put ''PDA/dGVbMF06dGVbMV0pLnRvUmVkKHRoaXMucmVkKX1pZihZLmxhbWJkYSlOPW5ldyBCKFkubGFtYmRhLDE2KTtlbHNle3ZhciBLPXRoaXMuX2dldEVuZG9Sb290cyh0aGlzLm4pOzA9PT10aGlzLmcubXVsKEtbMF0pLnguY21wKHRoaXMuZy54LnJlZE11bChXKSk/Tj1LWzBdOlUoMD09PXRo''@;'; put 'put ''aXMuZy5tdWwoTj1LWzFdKS54LmNtcCh0aGlzLmcueC5yZWRNdWwoVykpKX1yZXR1cm57YmV0YTpXLGxhbWJkYTpOLGJhc2lzOlkuYmFzaXM/WS5iYXNpcy5tYXAoZnVuY3Rpb24oc2Upe3JldHVybnthOm5ldyBCKHNlLmEsMTYpLGI6bmV3IEIoc2UuYiwxNil9fSk6dGhpcy5fZ2V0RW5kb0Jh''@;'; put 'put ''c2lzKE4pfX19LFEucHJvdG90eXBlLl9nZXRFbmRvUm9vdHM9ZnVuY3Rpb24oWSl7dmFyIFc9WT09PXRoaXMucD90aGlzLnJlZDpCLm1vbnQoWSksTj1uZXcgQigyKS50b1JlZChXKS5yZWRJbnZtKCksdGU9Ti5yZWROZWcoKSxLPW5ldyBCKDMpLnRvUmVkKFcpLnJlZE5lZygpLnJlZFNxcnQo''@;'; put 'put ''KS5yZWRNdWwoTik7cmV0dXJuW3RlLnJlZEFkZChLKS5mcm9tUmVkKCksdGUucmVkU3ViKEspLmZyb21SZWQoKV19LFEucHJvdG90eXBlLl9nZXRFbmRvQmFzaXM9ZnVuY3Rpb24oWSl7Zm9yKHZhciBjZSxkZSx2ZSxBZSxrZSxTZSxJZSxNZSxoZSxXPXRoaXMubi51c2hybihNYXRoLmZsb29y''@;'; put 'put ''KHRoaXMubi5iaXRMZW5ndGgoKS8yKSksTj1ZLHRlPXRoaXMubi5jbG9uZSgpLEs9bmV3IEIoMSksSj1uZXcgQigwKSxzZT1uZXcgQigwKSxvZT1uZXcgQigxKSxUZT0wOzAhPT1OLmNtcG4oMCk7KXt2YXIgTz10ZS5kaXYoTik7TWU9dGUuc3ViKE8ubXVsKE4pKSxoZT1zZS5zdWIoTy5tdWwo''@;'; put 'put ''SykpO3ZhciB6PW9lLnN1YihPLm11bChKKSk7aWYoIXZlJiZNZS5jbXAoVyk8MCljZT1JZS5uZWcoKSxkZT1LLHZlPU1lLm5lZygpLEFlPWhlO2Vsc2UgaWYodmUmJjI9PSsrVGUpYnJlYWs7SWU9TWUsdGU9TixOPU1lLHNlPUssSz1oZSxvZT1KLEo9en1rZT1NZS5uZWcoKSxTZT1oZTt2YXIg''@;'; put 'put ''ZWU9dmUuc3FyKCkuYWRkKEFlLnNxcigpKTtyZXR1cm4ga2Uuc3FyKCkuYWRkKFNlLnNxcigpKS5jbXAoZWUpPj0wJiYoa2U9Y2UsU2U9ZGUpLHZlLm5lZ2F0aXZlJiYodmU9dmUubmVnKCksQWU9QWUubmVnKCkpLGtlLm5lZ2F0aXZlJiYoa2U9a2UubmVnKCksU2U9U2UubmVnKCkpLFt7YTp2''@;'; put 'put ''ZSxiOkFlfSx7YTprZSxiOlNlfV19LFEucHJvdG90eXBlLl9lbmRvU3BsaXQ9ZnVuY3Rpb24oWSl7dmFyIFc9dGhpcy5lbmRvLmJhc2lzLE49V1swXSx0ZT1XWzFdLEs9dGUuYi5tdWwoWSkuZGl2Um91bmQodGhpcy5uKSxKPU4uYi5uZWcoKS5tdWwoWSkuZGl2Um91bmQodGhpcy5uKSxzZT1L''@;'; put 'put ''Lm11bChOLmEpLG9lPUoubXVsKHRlLmEpLGNlPUsubXVsKE4uYiksZGU9Si5tdWwodGUuYik7cmV0dXJue2sxOlkuc3ViKHNlKS5zdWIob2UpLGsyOmNlLmFkZChkZSkubmVnKCl9fSxRLnByb3RvdHlwZS5wb2ludEZyb21YPWZ1bmN0aW9uKFksVyl7KFk9bmV3IEIoWSwxNikpLnJlZHx8KFk9''@;'; put 'put ''WS50b1JlZCh0aGlzLnJlZCkpO3ZhciBOPVkucmVkU3FyKCkucmVkTXVsKFkpLnJlZElBZGQoWS5yZWRNdWwodGhpcy5hKSkucmVkSUFkZCh0aGlzLmIpLHRlPU4ucmVkU3FydCgpO2lmKDAhPT10ZS5yZWRTcXIoKS5yZWRTdWIoTikuY21wKHRoaXMuemVybykpdGhyb3cgbmV3IEVycm9yKCJp''@;'; put 'put ''bnZhbGlkIHBvaW50Iik7dmFyIEs9dGUuZnJvbVJlZCgpLmlzT2RkKCk7cmV0dXJuKFcmJiFLfHwhVyYmSykmJih0ZT10ZS5yZWROZWcoKSksdGhpcy5wb2ludChZLHRlKX0sUS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oWSl7aWYoWS5pbmYpcmV0dXJuITA7dmFyIFc9WS54LE49WS55''@;'; put 'put ''LHRlPXRoaXMuYS5yZWRNdWwoVyksSz1XLnJlZFNxcigpLnJlZE11bChXKS5yZWRJQWRkKHRlKS5yZWRJQWRkKHRoaXMuYik7cmV0dXJuIDA9PT1OLnJlZFNxcigpLnJlZElTdWIoSykuY21wbigwKX0sUS5wcm90b3R5cGUuX2VuZG9XbmFmTXVsQWRkPWZ1bmN0aW9uKFksVyxOKXtmb3IodmFy''@;'; put 'put ''IHRlPXRoaXMuX2VuZG9XbmFmVDEsSz10aGlzLl9lbmRvV25hZlQyLEo9MDtKPFkubGVuZ3RoO0orKyl7dmFyIHNlPXRoaXMuX2VuZG9TcGxpdChXW0pdKSxvZT1ZW0pdLGNlPW9lLl9nZXRCZXRhKCk7c2UuazEubmVnYXRpdmUmJihzZS5rMS5pbmVnKCksb2U9b2UubmVnKCEwKSksc2UuazIu''@;'; put 'put ''bmVnYXRpdmUmJihzZS5rMi5pbmVnKCksY2U9Y2UubmVnKCEwKSksdGVbMipKXT1vZSx0ZVsyKkorMV09Y2UsS1syKkpdPXNlLmsxLEtbMipKKzFdPXNlLmsyfWZvcih2YXIgZGU9dGhpcy5fd25hZk11bEFkZCgxLHRlLEssMipKLE4pLHZlPTA7dmU8MipKO3ZlKyspdGVbdmVdPW51bGwsS1t2''@;'; put 'put ''ZV09bnVsbDtyZXR1cm4gZGV9LEUoaixFZS5CYXNlUG9pbnQpLFEucHJvdG90eXBlLnBvaW50PWZ1bmN0aW9uKFksVyxOKXtyZXR1cm4gbmV3IGoodGhpcyxZLFcsTil9LFEucHJvdG90eXBlLnBvaW50RnJvbUpTT049ZnVuY3Rpb24oWSxXKXtyZXR1cm4gai5mcm9tSlNPTih0aGlzLFksVyl9''@;'; put 'put ''LGoucHJvdG90eXBlLl9nZXRCZXRhPWZ1bmN0aW9uKCl7aWYodGhpcy5jdXJ2ZS5lbmRvKXt2YXIgWT10aGlzLnByZWNvbXB1dGVkO2lmKFkmJlkuYmV0YSlyZXR1cm4gWS5iZXRhO3ZhciBXPXRoaXMuY3VydmUucG9pbnQodGhpcy54LnJlZE11bCh0aGlzLmN1cnZlLmVuZG8uYmV0YSksdGhp''@;'; put 'put ''cy55KTtpZihZKXt2YXIgTj10aGlzLmN1cnZlLHRlPWZ1bmN0aW9uKEspe3JldHVybiBOLnBvaW50KEsueC5yZWRNdWwoTi5lbmRvLmJldGEpLEsueSl9O1kuYmV0YT1XLFcucHJlY29tcHV0ZWQ9e2JldGE6bnVsbCxuYWY6WS5uYWYmJnt3bmQ6WS5uYWYud25kLHBvaW50czpZLm5hZi5wb2lu''@;'; put 'put ''dHMubWFwKHRlKX0sZG91YmxlczpZLmRvdWJsZXMmJntzdGVwOlkuZG91Ymxlcy5zdGVwLHBvaW50czpZLmRvdWJsZXMucG9pbnRzLm1hcCh0ZSl9fX1yZXR1cm4gV319LGoucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiB0aGlzLnByZWNvbXB1dGVkP1t0aGlzLngsdGhpcy55''@;'; put 'put ''LHRoaXMucHJlY29tcHV0ZWQmJntkb3VibGVzOnRoaXMucHJlY29tcHV0ZWQuZG91YmxlcyYme3N0ZXA6dGhpcy5wcmVjb21wdXRlZC5kb3VibGVzLnN0ZXAscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQuZG91Ymxlcy5wb2ludHMuc2xpY2UoMSl9LG5hZjp0aGlzLnByZWNvbXB1dGVkLm5hZiYm''@;'; put 'put ''e3duZDp0aGlzLnByZWNvbXB1dGVkLm5hZi53bmQscG9pbnRzOnRoaXMucHJlY29tcHV0ZWQubmFmLnBvaW50cy5zbGljZSgxKX19XTpbdGhpcy54LHRoaXMueV19LGouZnJvbUpTT049ZnVuY3Rpb24oWSxXLE4peyJzdHJpbmciPT10eXBlb2YgVyYmKFc9SlNPTi5wYXJzZShXKSk7dmFyIHRl''@;'; put 'put ''PVkucG9pbnQoV1swXSxXWzFdLE4pO2lmKCFXWzJdKXJldHVybiB0ZTtmdW5jdGlvbiBLKHNlKXtyZXR1cm4gWS5wb2ludChzZVswXSxzZVsxXSxOKX12YXIgSj1XWzJdO3JldHVybiB0ZS5wcmVjb21wdXRlZD17YmV0YTpudWxsLGRvdWJsZXM6Si5kb3VibGVzJiZ7c3RlcDpKLmRvdWJsZXMu''@;'; put 'put ''c3RlcCxwb2ludHM6W3RlXS5jb25jYXQoSi5kb3VibGVzLnBvaW50cy5tYXAoSykpfSxuYWY6Si5uYWYmJnt3bmQ6Si5uYWYud25kLHBvaW50czpbdGVdLmNvbmNhdChKLm5hZi5wb2ludHMubWFwKEspKX19LHRlfSxqLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''aXNJbmZpbml0eSgpPyI8RUMgUG9pbnQgSW5maW5pdHk+IjoiPEVDIFBvaW50IHg6ICIrdGhpcy54LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiIHk6ICIrdGhpcy55LmZyb21SZWQoKS50b1N0cmluZygxNiwyKSsiPiJ9LGoucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5pbmZ9LGoucHJvdG90eXBlLmFkZD1mdW5jdGlvbihZKXtpZih0aGlzLmluZilyZXR1cm4gWTtpZihZLmluZilyZXR1cm4gdGhpcztpZih0aGlzLmVxKFkpKXJldHVybiB0aGlzLmRibCgpO2lmKHRoaXMubmVnKCkuZXEoWSkpcmV0dXJuIHRoaXMuY3VydmUucG9pbnQobnVsbCxu''@;'; put 'put ''dWxsKTtpZigwPT09dGhpcy54LmNtcChZLngpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFyIFc9dGhpcy55LnJlZFN1YihZLnkpOzAhPT1XLmNtcG4oMCkmJihXPVcucmVkTXVsKHRoaXMueC5yZWRTdWIoWS54KS5yZWRJbnZtKCkpKTt2YXIgTj1XLnJlZFNxcigpLnJl''@;'; put 'put ''ZElTdWIodGhpcy54KS5yZWRJU3ViKFkueCksdGU9Vy5yZWRNdWwodGhpcy54LnJlZFN1YihOKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KE4sdGUpfSxqLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtpZih0aGlzLmluZilyZXR1cm4gdGhpczt2YXIgWT10aGlz''@;'; put 'put ''LnkucmVkQWRkKHRoaXMueSk7aWYoMD09PVkuY21wbigwKSlyZXR1cm4gdGhpcy5jdXJ2ZS5wb2ludChudWxsLG51bGwpO3ZhciBXPXRoaXMuY3VydmUuYSxOPXRoaXMueC5yZWRTcXIoKSx0ZT1ZLnJlZEludm0oKSxLPU4ucmVkQWRkKE4pLnJlZElBZGQoTikucmVkSUFkZChXKS5yZWRNdWwo''@;'; put 'put ''dGUpLEo9Sy5yZWRTcXIoKS5yZWRJU3ViKHRoaXMueC5yZWRBZGQodGhpcy54KSksc2U9Sy5yZWRNdWwodGhpcy54LnJlZFN1YihKKSkucmVkSVN1Yih0aGlzLnkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KEosc2UpfSxqLnByb3RvdHlwZS5nZXRYPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''eC5mcm9tUmVkKCl9LGoucHJvdG90eXBlLmdldFk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy55LmZyb21SZWQoKX0sai5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKFkpe3JldHVybiBZPW5ldyBCKFksMTYpLHRoaXMuaXNJbmZpbml0eSgpP3RoaXM6dGhpcy5faGFzRG91YmxlcyhZKT90aGlzLmN1''@;'; put 'put ''cnZlLl9maXhlZE5hZk11bCh0aGlzLFkpOnRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZChbdGhpc10sW1ldKTp0aGlzLmN1cnZlLl93bmFmTXVsKHRoaXMsWSl9LGoucHJvdG90eXBlLm11bEFkZD1mdW5jdGlvbihZLFcsTil7dmFyIHRlPVt0aGlzLFddLEs9W1ks''@;'; put 'put ''Tl07cmV0dXJuIHRoaXMuY3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZCh0ZSxLKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsdGUsSywyKX0sai5wcm90b3R5cGUuam11bEFkZD1mdW5jdGlvbihZLFcsTil7dmFyIHRlPVt0aGlzLFddLEs9W1ksTl07cmV0dXJuIHRoaXMu''@;'; put 'put ''Y3VydmUuZW5kbz90aGlzLmN1cnZlLl9lbmRvV25hZk11bEFkZCh0ZSxLLCEwKTp0aGlzLmN1cnZlLl93bmFmTXVsQWRkKDEsdGUsSywyLCEwKX0sai5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oWSl7cmV0dXJuIHRoaXM9PT1ZfHx0aGlzLmluZj09PVkuaW5mJiYodGhpcy5pbmZ8fDA9PT10aGlz''@;'; put 'put ''LnguY21wKFkueCkmJjA9PT10aGlzLnkuY21wKFkueSkpfSxqLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oWSl7aWYodGhpcy5pbmYpcmV0dXJuIHRoaXM7dmFyIFc9dGhpcy5jdXJ2ZS5wb2ludCh0aGlzLngsdGhpcy55LnJlZE5lZygpKTtpZihZJiZ0aGlzLnByZWNvbXB1dGVkKXt2YXIgTj10''@;'; put 'put ''aGlzLnByZWNvbXB1dGVkLHRlPWZ1bmN0aW9uKEspe3JldHVybiBLLm5lZygpfTtXLnByZWNvbXB1dGVkPXtuYWY6Ti5uYWYmJnt3bmQ6Ti5uYWYud25kLHBvaW50czpOLm5hZi5wb2ludHMubWFwKHRlKX0sZG91YmxlczpOLmRvdWJsZXMmJntzdGVwOk4uZG91Ymxlcy5zdGVwLHBvaW50czpO''@;'; put 'put ''LmRvdWJsZXMucG9pbnRzLm1hcCh0ZSl9fX1yZXR1cm4gV30sai5wcm90b3R5cGUudG9KPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5mP3RoaXMuY3VydmUuanBvaW50KG51bGwsbnVsbCxudWxsKTp0aGlzLmN1cnZlLmpwb2ludCh0aGlzLngsdGhpcy55LHRoaXMuY3VydmUub25lKX0sRShy''@;'; put 'put ''ZSxFZS5CYXNlUG9pbnQpLFEucHJvdG90eXBlLmpwb2ludD1mdW5jdGlvbihZLFcsTil7cmV0dXJuIG5ldyByZSh0aGlzLFksVyxOKX0scmUucHJvdG90eXBlLnRvUD1mdW5jdGlvbigpe2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzLmN1cnZlLnBvaW50KG51bGwsbnVsbCk7dmFy''@;'; put 'put ''IFk9dGhpcy56LnJlZEludm0oKSxXPVkucmVkU3FyKCksTj10aGlzLngucmVkTXVsKFcpLHRlPXRoaXMueS5yZWRNdWwoVykucmVkTXVsKFkpO3JldHVybiB0aGlzLmN1cnZlLnBvaW50KE4sdGUpfSxyZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50''@;'; put 'put ''KHRoaXMueCx0aGlzLnkucmVkTmVnKCksdGhpcy56KX0scmUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihZKXtpZih0aGlzLmlzSW5maW5pdHkoKSlyZXR1cm4gWTtpZihZLmlzSW5maW5pdHkoKSlyZXR1cm4gdGhpczt2YXIgVz1ZLnoucmVkU3FyKCksTj10aGlzLnoucmVkU3FyKCksdGU9dGhp''@;'; put 'put ''cy54LnJlZE11bChXKSxLPVkueC5yZWRNdWwoTiksSj10aGlzLnkucmVkTXVsKFcucmVkTXVsKFkueikpLHNlPVkueS5yZWRNdWwoTi5yZWRNdWwodGhpcy56KSksb2U9dGUucmVkU3ViKEspLGNlPUoucmVkU3ViKHNlKTtpZigwPT09b2UuY21wbigwKSlyZXR1cm4gMCE9PWNlLmNtcG4oMCk/''@;'; put 'put ''dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIGRlPW9lLnJlZFNxcigpLHZlPWRlLnJlZE11bChvZSksQWU9dGUucmVkTXVsKGRlKSxrZT1jZS5yZWRTcXIoKS5yZWRJQWRkKHZlKS5yZWRJU3ViKEFlKS5yZWRJU3ViKEFlKSxTZT1jZS5yZWRNdWwoQWUu''@;'; put 'put ''cmVkSVN1YihrZSkpLnJlZElTdWIoSi5yZWRNdWwodmUpKSxJZT10aGlzLnoucmVkTXVsKFkueikucmVkTXVsKG9lKTtyZXR1cm4gdGhpcy5jdXJ2ZS5qcG9pbnQoa2UsU2UsSWUpfSxyZS5wcm90b3R5cGUubWl4ZWRBZGQ9ZnVuY3Rpb24oWSl7aWYodGhpcy5pc0luZmluaXR5KCkpcmV0dXJu''@;'; put 'put ''IFkudG9KKCk7aWYoWS5pc0luZmluaXR5KCkpcmV0dXJuIHRoaXM7dmFyIFc9dGhpcy56LnJlZFNxcigpLE49dGhpcy54LHRlPVkueC5yZWRNdWwoVyksSz10aGlzLnksSj1ZLnkucmVkTXVsKFcpLnJlZE11bCh0aGlzLnopLHNlPU4ucmVkU3ViKHRlKSxvZT1LLnJlZFN1YihKKTtpZigwPT09''@;'; put 'put ''c2UuY21wbigwKSlyZXR1cm4gMCE9PW9lLmNtcG4oMCk/dGhpcy5jdXJ2ZS5qcG9pbnQobnVsbCxudWxsLG51bGwpOnRoaXMuZGJsKCk7dmFyIGNlPXNlLnJlZFNxcigpLGRlPWNlLnJlZE11bChzZSksdmU9Ti5yZWRNdWwoY2UpLEFlPW9lLnJlZFNxcigpLnJlZElBZGQoZGUpLnJlZElTdWIo''@;'; put 'put ''dmUpLnJlZElTdWIodmUpLGtlPW9lLnJlZE11bCh2ZS5yZWRJU3ViKEFlKSkucmVkSVN1YihLLnJlZE11bChkZSkpLFNlPXRoaXMuei5yZWRNdWwoc2UpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChBZSxrZSxTZSl9LHJlLnByb3RvdHlwZS5kYmxwPWZ1bmN0aW9uKFkpe2lmKDA9PT1ZKXJl''@;'; put 'put ''dHVybiB0aGlzO2lmKHRoaXMuaXNJbmZpbml0eSgpKXJldHVybiB0aGlzO2lmKCFZKXJldHVybiB0aGlzLmRibCgpO3ZhciBXO2lmKHRoaXMuY3VydmUuemVyb0F8fHRoaXMuY3VydmUudGhyZWVBKXt2YXIgTj10aGlzO2ZvcihXPTA7VzxZO1crKylOPU4uZGJsKCk7cmV0dXJuIE59dmFyIHRl''@;'; put 'put ''PXRoaXMuY3VydmUuYSxLPXRoaXMuY3VydmUudGludixKPXRoaXMueCxzZT10aGlzLnksb2U9dGhpcy56LGNlPW9lLnJlZFNxcigpLnJlZFNxcigpLGRlPXNlLnJlZEFkZChzZSk7Zm9yKFc9MDtXPFk7VysrKXt2YXIgdmU9Si5yZWRTcXIoKSxBZT1kZS5yZWRTcXIoKSxrZT1BZS5yZWRTcXIo''@;'; put 'put ''KSxTZT12ZS5yZWRBZGQodmUpLnJlZElBZGQodmUpLnJlZElBZGQodGUucmVkTXVsKGNlKSksSWU9Si5yZWRNdWwoQWUpLFRlPVNlLnJlZFNxcigpLnJlZElTdWIoSWUucmVkQWRkKEllKSksTWU9SWUucmVkSVN1YihUZSksaGU9U2UucmVkTXVsKE1lKTtoZT1oZS5yZWRJQWRkKGhlKS5yZWRJ''@;'; put 'put ''U3ViKGtlKTt2YXIgTz1kZS5yZWRNdWwob2UpO1crMTxZJiYoY2U9Y2UucmVkTXVsKGtlKSksSj1UZSxvZT1PLGRlPWhlfXJldHVybiB0aGlzLmN1cnZlLmpwb2ludChKLGRlLnJlZE11bChLKSxvZSl9LHJlLnByb3RvdHlwZS5kYmw9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZmluaXR5''@;'; put 'put ''KCk/dGhpczp0aGlzLmN1cnZlLnplcm9BP3RoaXMuX3plcm9EYmwoKTp0aGlzLmN1cnZlLnRocmVlQT90aGlzLl90aHJlZURibCgpOnRoaXMuX2RibCgpfSxyZS5wcm90b3R5cGUuX3plcm9EYmw9ZnVuY3Rpb24oKXt2YXIgWSxXLE47aWYodGhpcy56T25lKXt2YXIgdGU9dGhpcy54LnJlZFNx''@;'; put 'put ''cigpLEs9dGhpcy55LnJlZFNxcigpLEo9Sy5yZWRTcXIoKSxzZT10aGlzLngucmVkQWRkKEspLnJlZFNxcigpLnJlZElTdWIodGUpLnJlZElTdWIoSik7c2U9c2UucmVkSUFkZChzZSk7dmFyIG9lPXRlLnJlZEFkZCh0ZSkucmVkSUFkZCh0ZSksY2U9b2UucmVkU3FyKCkucmVkSVN1YihzZSku''@;'; put 'put ''cmVkSVN1YihzZSksZGU9Si5yZWRJQWRkKEopO2RlPShkZT1kZS5yZWRJQWRkKGRlKSkucmVkSUFkZChkZSksWT1jZSxXPW9lLnJlZE11bChzZS5yZWRJU3ViKGNlKSkucmVkSVN1YihkZSksTj10aGlzLnkucmVkQWRkKHRoaXMueSl9ZWxzZXt2YXIgdmU9dGhpcy54LnJlZFNxcigpLEFlPXRo''@;'; put 'put ''aXMueS5yZWRTcXIoKSxrZT1BZS5yZWRTcXIoKSxTZT10aGlzLngucmVkQWRkKEFlKS5yZWRTcXIoKS5yZWRJU3ViKHZlKS5yZWRJU3ViKGtlKTtTZT1TZS5yZWRJQWRkKFNlKTt2YXIgSWU9dmUucmVkQWRkKHZlKS5yZWRJQWRkKHZlKSxUZT1JZS5yZWRTcXIoKSxNZT1rZS5yZWRJQWRkKGtl''@;'; put 'put ''KTtNZT0oTWU9TWUucmVkSUFkZChNZSkpLnJlZElBZGQoTWUpLFk9VGUucmVkSVN1YihTZSkucmVkSVN1YihTZSksVz1JZS5yZWRNdWwoU2UucmVkSVN1YihZKSkucmVkSVN1YihNZSksTj0oTj10aGlzLnkucmVkTXVsKHRoaXMueikpLnJlZElBZGQoTil9cmV0dXJuIHRoaXMuY3VydmUuanBv''@;'; put 'put ''aW50KFksVyxOKX0scmUucHJvdG90eXBlLl90aHJlZURibD1mdW5jdGlvbigpe3ZhciBZLFcsTjtpZih0aGlzLnpPbmUpe3ZhciB0ZT10aGlzLngucmVkU3FyKCksSz10aGlzLnkucmVkU3FyKCksSj1LLnJlZFNxcigpLHNlPXRoaXMueC5yZWRBZGQoSykucmVkU3FyKCkucmVkSVN1Yih0ZSku''@;'; put 'put ''cmVkSVN1YihKKTtzZT1zZS5yZWRJQWRkKHNlKTt2YXIgb2U9dGUucmVkQWRkKHRlKS5yZWRJQWRkKHRlKS5yZWRJQWRkKHRoaXMuY3VydmUuYSksY2U9b2UucmVkU3FyKCkucmVkSVN1YihzZSkucmVkSVN1YihzZSk7WT1jZTt2YXIgZGU9Si5yZWRJQWRkKEopO2RlPShkZT1kZS5yZWRJQWRk''@;'; put 'put ''KGRlKSkucmVkSUFkZChkZSksVz1vZS5yZWRNdWwoc2UucmVkSVN1YihjZSkpLnJlZElTdWIoZGUpLE49dGhpcy55LnJlZEFkZCh0aGlzLnkpfWVsc2V7dmFyIHZlPXRoaXMuei5yZWRTcXIoKSxBZT10aGlzLnkucmVkU3FyKCksa2U9dGhpcy54LnJlZE11bChBZSksU2U9dGhpcy54LnJlZFN1''@;'; put 'put ''Yih2ZSkucmVkTXVsKHRoaXMueC5yZWRBZGQodmUpKTtTZT1TZS5yZWRBZGQoU2UpLnJlZElBZGQoU2UpO3ZhciBJZT1rZS5yZWRJQWRkKGtlKSxUZT0oSWU9SWUucmVkSUFkZChJZSkpLnJlZEFkZChJZSk7WT1TZS5yZWRTcXIoKS5yZWRJU3ViKFRlKSxOPXRoaXMueS5yZWRBZGQodGhpcy56''@;'; put 'put ''KS5yZWRTcXIoKS5yZWRJU3ViKEFlKS5yZWRJU3ViKHZlKTt2YXIgTWU9QWUucmVkU3FyKCk7TWU9KE1lPShNZT1NZS5yZWRJQWRkKE1lKSkucmVkSUFkZChNZSkpLnJlZElBZGQoTWUpLFc9U2UucmVkTXVsKEllLnJlZElTdWIoWSkpLnJlZElTdWIoTWUpfXJldHVybiB0aGlzLmN1cnZlLmpw''@;'; put 'put ''b2ludChZLFcsTil9LHJlLnByb3RvdHlwZS5fZGJsPWZ1bmN0aW9uKCl7dmFyIFk9dGhpcy5jdXJ2ZS5hLFc9dGhpcy54LE49dGhpcy55LHRlPXRoaXMueixLPXRlLnJlZFNxcigpLnJlZFNxcigpLEo9Vy5yZWRTcXIoKSxzZT1OLnJlZFNxcigpLG9lPUoucmVkQWRkKEopLnJlZElBZGQoSiku''@;'; put 'put ''cmVkSUFkZChZLnJlZE11bChLKSksY2U9Vy5yZWRBZGQoVyksZGU9KGNlPWNlLnJlZElBZGQoY2UpKS5yZWRNdWwoc2UpLHZlPW9lLnJlZFNxcigpLnJlZElTdWIoZGUucmVkQWRkKGRlKSksQWU9ZGUucmVkSVN1Yih2ZSksa2U9c2UucmVkU3FyKCk7a2U9KGtlPShrZT1rZS5yZWRJQWRkKGtl''@;'; put 'put ''KSkucmVkSUFkZChrZSkpLnJlZElBZGQoa2UpO3ZhciBTZT1vZS5yZWRNdWwoQWUpLnJlZElTdWIoa2UpLEllPU4ucmVkQWRkKE4pLnJlZE11bCh0ZSk7cmV0dXJuIHRoaXMuY3VydmUuanBvaW50KHZlLFNlLEllKX0scmUucHJvdG90eXBlLnRycGw9ZnVuY3Rpb24oKXtpZighdGhpcy5jdXJ2''@;'; put 'put ''ZS56ZXJvQSlyZXR1cm4gdGhpcy5kYmwoKS5hZGQodGhpcyk7dmFyIFk9dGhpcy54LnJlZFNxcigpLFc9dGhpcy55LnJlZFNxcigpLE49dGhpcy56LnJlZFNxcigpLHRlPVcucmVkU3FyKCksSz1ZLnJlZEFkZChZKS5yZWRJQWRkKFkpLEo9Sy5yZWRTcXIoKSxzZT10aGlzLngucmVkQWRkKFcp''@;'; put 'put ''LnJlZFNxcigpLnJlZElTdWIoWSkucmVkSVN1Yih0ZSksb2U9KHNlPShzZT0oc2U9c2UucmVkSUFkZChzZSkpLnJlZEFkZChzZSkucmVkSUFkZChzZSkpLnJlZElTdWIoSikpLnJlZFNxcigpLGNlPXRlLnJlZElBZGQodGUpO2NlPShjZT0oY2U9Y2UucmVkSUFkZChjZSkpLnJlZElBZGQoY2Up''@;'; put 'put ''KS5yZWRJQWRkKGNlKTt2YXIgZGU9Sy5yZWRJQWRkKHNlKS5yZWRTcXIoKS5yZWRJU3ViKEopLnJlZElTdWIob2UpLnJlZElTdWIoY2UpLHZlPVcucmVkTXVsKGRlKTt2ZT0odmU9dmUucmVkSUFkZCh2ZSkpLnJlZElBZGQodmUpO3ZhciBBZT10aGlzLngucmVkTXVsKG9lKS5yZWRJU3ViKHZl''@;'; put 'put ''KTtBZT0oQWU9QWUucmVkSUFkZChBZSkpLnJlZElBZGQoQWUpO3ZhciBrZT10aGlzLnkucmVkTXVsKGRlLnJlZE11bChjZS5yZWRJU3ViKGRlKSkucmVkSVN1YihzZS5yZWRNdWwob2UpKSk7a2U9KGtlPShrZT1rZS5yZWRJQWRkKGtlKSkucmVkSUFkZChrZSkpLnJlZElBZGQoa2UpO3ZhciBT''@;'; put 'put ''ZT10aGlzLnoucmVkQWRkKHNlKS5yZWRTcXIoKS5yZWRJU3ViKE4pLnJlZElTdWIob2UpO3JldHVybiB0aGlzLmN1cnZlLmpwb2ludChBZSxrZSxTZSl9LHJlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oWSxXKXtyZXR1cm4gWT1uZXcgQihZLFcpLHRoaXMuY3VydmUuX3duYWZNdWwodGhpcyxZ''@;'; put 'put ''KX0scmUucHJvdG90eXBlLmVxPWZ1bmN0aW9uKFkpe2lmKCJhZmZpbmUiPT09WS50eXBlKXJldHVybiB0aGlzLmVxKFkudG9KKCkpO2lmKHRoaXM9PT1ZKXJldHVybiEwO3ZhciBXPXRoaXMuei5yZWRTcXIoKSxOPVkuei5yZWRTcXIoKTtpZigwIT09dGhpcy54LnJlZE11bChOKS5yZWRJU3Vi''@;'; put 'put ''KFkueC5yZWRNdWwoVykpLmNtcG4oMCkpcmV0dXJuITE7dmFyIHRlPVcucmVkTXVsKHRoaXMueiksSz1OLnJlZE11bChZLnopO3JldHVybiAwPT09dGhpcy55LnJlZE11bChLKS5yZWRJU3ViKFkueS5yZWRNdWwodGUpKS5jbXBuKDApfSxyZS5wcm90b3R5cGUuZXFYVG9QPWZ1bmN0aW9uKFkp''@;'; put 'put ''e3ZhciBXPXRoaXMuei5yZWRTcXIoKSxOPVkudG9SZWQodGhpcy5jdXJ2ZS5yZWQpLnJlZE11bChXKTtpZigwPT09dGhpcy54LmNtcChOKSlyZXR1cm4hMDtmb3IodmFyIHRlPVkuY2xvbmUoKSxLPXRoaXMuY3VydmUucmVkTi5yZWRNdWwoVyk7Oyl7aWYodGUuaWFkZCh0aGlzLmN1cnZlLm4p''@;'; put 'put ''LHRlLmNtcCh0aGlzLmN1cnZlLnApPj0wKXJldHVybiExO2lmKE4ucmVkSUFkZChLKSwwPT09dGhpcy54LmNtcChOKSlyZXR1cm4hMH19LHJlLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNJbmZpbml0eSgpPyI8RUMgSlBvaW50IEluZmluaXR5PiI6IjxFQyBK''@;'; put 'put ''UG9pbnQgeDogIit0aGlzLngudG9TdHJpbmcoMTYsMikrIiB5OiAiK3RoaXMueS50b1N0cmluZygxNiwyKSsiIHo6ICIrdGhpcy56LnRvU3RyaW5nKDE2LDIpKyI+In0scmUucHJvdG90eXBlLmlzSW5maW5pdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuei5jbXBuKDApfX0sNTI5MTY6''@;'; put 'put ''KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciByZSxtZT1KZSxCPUwoMzcwODQpLEU9TCg0NjI3MCksVT1MKDYxOTcwKS5hc3NlcnQ7ZnVuY3Rpb24gUShhZSl7dGhpcy5jdXJ2ZT0ic2hvcnQiPT09YWUudHlwZT9uZXcgRS5zaG9ydChhZSk6ImVkd2FyZHMiPT09YWUudHlwZT9uZXcgRS5l''@;'; put 'put ''ZHdhcmRzKGFlKTpuZXcgRS5tb250KGFlKSx0aGlzLmc9dGhpcy5jdXJ2ZS5nLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5oYXNoPWFlLmhhc2gsVSh0aGlzLmcudmFsaWRhdGUoKSwiSW52YWxpZCBjdXJ2ZSIpLFUodGhpcy5nLm11bCh0aGlzLm4pLmlzSW5maW5pdHkoKSwiSW52YWxpZCBj''@;'; put 'put ''dXJ2ZSwgRypOICE9IE8iKX1mdW5jdGlvbiBqKGFlLFkpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShtZSxhZSx7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dmFyIFc9bmV3IFEoWSk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShtZSxhZSx7Y29uZmln''@;'; put 'put ''dXJhYmxlOiEwLGVudW1lcmFibGU6ITAsdmFsdWU6V30pLFd9fSl9bWUuUHJlc2V0Q3VydmU9USxqKCJwMTkyIix7dHlwZToic2hvcnQiLHByaW1lOiJwMTkyIixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIsYToiZmZmZmZmZmYgZmZm''@;'; put 'put ''ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjY0MjEwNTE5IGU1OWM4MGU3IDBmYTdlOWFiIDcyMjQzMDQ5IGZlYjhkZWVjIGMxNDZiOWIxIixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiA5OWRlZjgzNiAxNDZiYzliMSBiNGQyMjgzMSIsaGFzaDpC''@;'; put 'put ''LnNoYTI1NixnUmVkOiExLGc6WyIxODhkYTgwZSBiMDMwOTBmNiA3Y2JmMjBlYiA0M2ExODgwMCBmNGZmMGFmZCA4MmZmMTAxMiIsIjA3MTkyYjk1IGZmYzhkYTc4IDYzMTAxMWVkIDZiMjRjZGQ1IDczZjk3N2ExIDFlNzk0ODExIl19KSxqKCJwMjI0Iix7dHlwZToic2hvcnQiLHByaW1lOiJw''@;'; put 'put ''MjI0IixwOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIsYToiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUiLGI6ImI0MDUwYTg1IDBjMDRiM2FiIGY1NDEz''@;'; put 'put ''MjU2IDUwNDRiMGI3IGQ3YmZkOGJhIDI3MGIzOTQzIDIzNTVmZmI0IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmMTZhMiBlMGI4ZjAzZSAxM2RkMjk0NSA1YzVjMmEzZCIsaGFzaDpCLnNoYTI1NixnUmVkOiExLGc6WyJiNzBlMGNiZCA2YmI0YmY3ZiAzMjEzOTBiOSA0YTAz''@;'; put 'put ''YzFkMyA1NmMyMTEyMiAzNDMyODBkNiAxMTVjMWQyMSIsImJkMzc2Mzg4IGI1ZjcyM2ZiIDRjMjJkZmU2IGNkNDM3NWEwIDVhMDc0NzY0IDQ0ZDU4MTk5IDg1MDA3ZTM0Il19KSxqKCJwMjU2Iix7dHlwZToic2hvcnQiLHByaW1lOm51bGwscDoiZmZmZmZmZmYgMDAwMDAwMDEgMDAwMDAwMDAg''@;'; put 'put ''MDAwMDAwMDAgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYiLGE6ImZmZmZmZmZmIDAwMDAwMDAxIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZjIixiOiI1YWM2MzVkOCBhYTNhOTNlNyBiM2ViYmQ1NSA3Njk4ODZiYyA2NTFk''@;'; put 'put ''MDZiMCBjYzUzYjBmNiAzYmNlM2MzZSAyN2QyNjA0YiIsbjoiZmZmZmZmZmYgMDAwMDAwMDAgZmZmZmZmZmYgZmZmZmZmZmYgYmNlNmZhYWQgYTcxNzllODQgZjNiOWNhYzIgZmM2MzI1NTEiLGhhc2g6Qi5zaGEyNTYsZ1JlZDohMSxnOlsiNmIxN2QxZjIgZTEyYzQyNDcgZjhiY2U2ZTUgNjNh''@;'; put 'put ''NDQwZjIgNzcwMzdkODEgMmRlYjMzYTAgZjRhMTM5NDUgZDg5OGMyOTYiLCI0ZmUzNDJlMiBmZTFhN2Y5YiA4ZWU3ZWI0YSA3YzBmOWUxNiAyYmNlMzM1NyA2YjMxNWVjZSBjYmI2NDA2OCAzN2JmNTFmNSJdfSksaigicDM4NCIse3R5cGU6InNob3J0IixwcmltZTpudWxsLHA6ImZmZmZmZmZm''@;'; put 'put ''IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIGZmZmZmZmZmIixhOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZm''@;'; put 'put ''ZiBmZmZmZmZmZSBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCBmZmZmZmZmYyIsYjoiYjMzMTJmYTcgZTIzZWU3ZTQgOTg4ZTA1NmIgZTNmODJkMTkgMTgxZDljNmUgZmU4MTQxMTIgMDMxNDA4OGYgNTAxMzg3NWEgYzY1NjM5OGQgOGEyZWQxOWQgMmE4NWM4ZWQgZDNlYzJhZWYiLG46ImZm''@;'; put 'put ''ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGM3NjM0ZDgxIGY0MzcyZGRmIDU4MWEwZGIyIDQ4YjBhNzdhIGVjZWMxOTZhIGNjYzUyOTczIixoYXNoOkIuc2hhMzg0LGdSZWQ6ITEsZzpbImFhODdjYTIyIGJlOGIwNTM3IDhlYjFjNzFlIGYzMjBh''@;'; put 'put ''ZDc0IDZlMWQzYjYyIDhiYTc5Yjk4IDU5Zjc0MWUwIDgyNTQyYTM4IDU1MDJmMjVkIGJmNTUyOTZjIDNhNTQ1ZTM4IDcyNzYwYWI3IiwiMzYxN2RlNGEgOTYyNjJjNmYgNWQ5ZTk4YmYgOTI5MmRjMjkgZjhmNDFkYmQgMjg5YTE0N2MgZTlkYTMxMTMgYjVmMGI4YzAgMGE2MGIxY2UgMWQ3ZTgx''@;'; put 'put ''OWQgN2E0MzFkN2MgOTBlYTBlNWYiXX0pLGooInA1MjEiLHt0eXBlOiJzaG9ydCIscHJpbWU6bnVsbCxwOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZm''@;'; put 'put ''ZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiIsYToiMDAwMDAxZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZm''@;'; put 'put ''ZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmMiLGI6IjAwMDAwMDUxIDk1M2ViOTYxIDhlMWM5YTFmIDkyOWEyMWEwIGI2ODU0MGVlIGEyZGE3MjViIDk5YjMxNWYzIGI4YjQ4OTkxIDhlZjEwOWUxIDU2MTkzOTUxIGVjN2U5MzdiIDE2NTJjMGJkIDNiYjFiZjA3IDM1''@;'; put 'put ''NzNkZjg4IDNkMmMzNGYxIGVmNDUxZmQ0IDZiNTAzZjAwIixuOiIwMDAwMDFmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmYSA1MTg2ODc4MyBiZjJmOTY2YiA3ZmNjMDE0OCBmNzA5YTVkMCAzYmI1YzliOCA4''@;'; put 'put ''OTljNDdhZSBiYjZmYjcxZSA5MTM4NjQwOSIsaGFzaDpCLnNoYTUxMixnUmVkOiExLGc6WyIwMDAwMDBjNiA4NThlMDZiNyAwNDA0ZTljZCA5ZTNlY2I2NiAyMzk1YjQ0MiA5YzY0ODEzOSAwNTNmYjUyMSBmODI4YWY2MCA2YjRkM2RiYSBhMTRiNWU3NyBlZmU3NTkyOCBmZTFkYzEyNyBhMmZm''@;'; put 'put ''YThkZSAzMzQ4YjNjMSA4NTZhNDI5YiBmOTdlN2UzMSBjMmU1YmQ2NiIsIjAwMDAwMTE4IDM5Mjk2YTc4IDlhM2JjMDA0IDVjOGE1ZmI0IDJjN2QxYmQ5IDk4ZjU0NDQ5IDU3OWI0NDY4IDE3YWZiZDE3IDI3M2U2NjJjIDk3ZWU3Mjk5IDVlZjQyNjQwIGM1NTBiOTAxIDNmYWQwNzYxIDM1M2M3''@;'; put 'put ''MDg2IGEyNzJjMjQwIDg4YmU5NDc2IDlmZDE2NjUwIl19KSxqKCJjdXJ2ZTI1NTE5Iix7dHlwZToibW9udCIscHJpbWU6InAyNTUxOSIscDoiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIsYToiNzZkMDYiLGI6IjEi''@;'; put 'put ''LG46IjEwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMCAxNGRlZjlkZWEyZjc5Y2Q2IDU4MTI2MzFhNWNmNWQzZWQiLGhhc2g6Qi5zaGEyNTYsZ1JlZDohMSxnOlsiOSJdfSksaigiZWQyNTUxOSIse3R5cGU6ImVkd2FyZHMiLHByaW1lOiJwMjU1MTkiLHA6IjdmZmZmZmZmZmZmZmZm''@;'; put 'put ''ZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiLGE6Ii0xIixjOiIxIixkOiI1MjAzNmNlZTJiNmZmZTczIDhjYzc0MDc5Nzc3OWU4OTggMDA3MDBhNGQ0MTQxZDhhYiA3NWViNGRjYTEzNTk3OGEzIixuOiIxMDAwMDAwMDAwMDAwMDAwIDAwMDAw''@;'; put 'put ''MDAwMDAwMDAwMDAgMTRkZWY5ZGVhMmY3OWNkNiA1ODEyNjMxYTVjZjVkM2VkIixoYXNoOkIuc2hhMjU2LGdSZWQ6ITEsZzpbIjIxNjkzNmQzY2Q2ZTUzZmVjMGE0ZTIzMWZkZDZkYzVjNjkyY2M3NjA5NTI1YTdiMmM5NTYyZDYwOGYyNWQ1MWEiLCI2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2''@;'; put 'put ''NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjU4Il19KTt0cnl7cmU9TCgyNTE1MCl9Y2F0Y2goYWUpe3JlPXZvaWQgMH1qKCJzZWNwMjU2azEiLHt0eXBlOiJzaG9ydCIscHJpbWU6ImsyNTYiLHA6ImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZm''@;'; put 'put ''ZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIixhOiIwIixiOiI3IixuOiJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBiYWFlZGNlNiBhZjQ4YTAzYiBiZmQyNWU4YyBkMDM2NDE0MSIsaDoiMSIsaGFzaDpCLnNoYTI1NixiZXRhOiI3YWU5NmEyYjY1N2MwNzEwNmU2''@;'; put 'put ''NDQ3OWVhYzM0MzRlOTljZjA0OTc1MTJmNTg5OTVjMTM5NmMyODcxOTUwMWVlIixsYW1iZGE6IjUzNjNhZDRjYzA1YzMwZTBhNTI2MWMwMjg4MTI2NDVhMTIyZTIyZWEyMDgxNjY3OGRmMDI5NjdjMWIyM2JkNzIiLGJhc2lzOlt7YToiMzA4NmQyMjFhN2Q0NmJjZGU4NmM5MGU0OTI4NGViMTUi''@;'; put 'put ''LGI6Ii1lNDQzN2VkNjAxMGU4ODI4NmY1NDdmYTkwYWJmZTRjMyJ9LHthOiIxMTRjYTUwZjdhOGUyZjNmNjU3YzExMDhkOWQ0NGNmZDgiLGI6IjMwODZkMjIxYTdkNDZiY2RlODZjOTBlNDkyODRlYjE1In1dLGdSZWQ6ITEsZzpbIjc5YmU2NjdlZjlkY2JiYWM1NWEwNjI5NWNlODcwYjA3MDI5''@;'; put 'put ''YmZjZGIyZGNlMjhkOTU5ZjI4MTViMTZmODE3OTgiLCI0ODNhZGE3NzI2YTNjNDY1NWRhNGZiZmMwZTExMDhhOGZkMTdiNDQ4YTY4NTU0MTk5YzQ3ZDA4ZmZiMTBkNGI4IixyZV19KX0sNjc2MjY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwoNTI0MzgpLEU9''@;'; put 'put ''TCg2MTk3MCksRWU9TCg1MjkxNiksVT1MKDM3OTUwKSxRPUUuYXNzZXJ0LGo9TCg5MTI1OSkscmU9TCg2NTk1Nyk7ZnVuY3Rpb24gYWUoWSl7aWYoISh0aGlzIGluc3RhbmNlb2YgYWUpKXJldHVybiBuZXcgYWUoWSk7InN0cmluZyI9PXR5cGVvZiBZJiYoUShPYmplY3QucHJvdG90eXBlLmhh''@;'; put 'put ''c093blByb3BlcnR5LmNhbGwoRWUsWSksIlVua25vd24gY3VydmUgIitZKSxZPUVlW1ldKSxZIGluc3RhbmNlb2YgRWUuUHJlc2V0Q3VydmUmJihZPXtjdXJ2ZTpZfSksdGhpcy5jdXJ2ZT1ZLmN1cnZlLmN1cnZlLHRoaXMubj10aGlzLmN1cnZlLm4sdGhpcy5uaD10aGlzLm4udXNocm4oMSks''@;'; put 'put ''dGhpcy5nPXRoaXMuY3VydmUuZyx0aGlzLmc9WS5jdXJ2ZS5nLHRoaXMuZy5wcmVjb21wdXRlKFkuY3VydmUubi5iaXRMZW5ndGgoKSsxKSx0aGlzLmhhc2g9WS5oYXNofHxZLmN1cnZlLmhhc2h9WGUuZXhwb3J0cz1hZSxhZS5wcm90b3R5cGUua2V5UGFpcj1mdW5jdGlvbihXKXtyZXR1cm4g''@;'; put 'put ''bmV3IGoodGhpcyxXKX0sYWUucHJvdG90eXBlLmtleUZyb21Qcml2YXRlPWZ1bmN0aW9uKFcsTil7cmV0dXJuIGouZnJvbVByaXZhdGUodGhpcyxXLE4pfSxhZS5wcm90b3R5cGUua2V5RnJvbVB1YmxpYz1mdW5jdGlvbihXLE4pe3JldHVybiBqLmZyb21QdWJsaWModGhpcyxXLE4pfSxhZS5w''@;'; put 'put ''cm90b3R5cGUuZ2VuS2V5UGFpcj1mdW5jdGlvbihXKXtXfHwoVz17fSk7Zm9yKHZhciBOPW5ldyBCKHtoYXNoOnRoaXMuaGFzaCxwZXJzOlcucGVycyxwZXJzRW5jOlcucGVyc0VuY3x8InV0ZjgiLGVudHJvcHk6Vy5lbnRyb3B5fHxVKHRoaXMuaGFzaC5obWFjU3RyZW5ndGgpLGVudHJvcHlF''@;'; put 'put ''bmM6Vy5lbnRyb3B5JiZXLmVudHJvcHlFbmN8fCJ1dGY4Iixub25jZTp0aGlzLm4udG9BcnJheSgpfSksdGU9dGhpcy5uLmJ5dGVMZW5ndGgoKSxLPXRoaXMubi5zdWIobmV3IG1lKDIpKTs7KXt2YXIgSj1uZXcgbWUoTi5nZW5lcmF0ZSh0ZSkpO2lmKCEoSi5jbXAoSyk+MCkpcmV0dXJuIEou''@;'; put 'put ''aWFkZG4oMSksdGhpcy5rZXlGcm9tUHJpdmF0ZShKKX19LGFlLnByb3RvdHlwZS5fdHJ1bmNhdGVUb049ZnVuY3Rpb24oVyxOKXt2YXIgdGU9OCpXLmJ5dGVMZW5ndGgoKS10aGlzLm4uYml0TGVuZ3RoKCk7cmV0dXJuIHRlPjAmJihXPVcudXNocm4odGUpKSwhTiYmVy5jbXAodGhpcy5uKT49''@;'; put 'put ''MD9XLnN1Yih0aGlzLm4pOld9LGFlLnByb3RvdHlwZS5zaWduPWZ1bmN0aW9uKFcsTix0ZSxLKXsib2JqZWN0Ij09dHlwZW9mIHRlJiYoSz10ZSx0ZT1udWxsKSxLfHwoSz17fSksTj10aGlzLmtleUZyb21Qcml2YXRlKE4sdGUpLFc9dGhpcy5fdHJ1bmNhdGVUb04obmV3IG1lKFcsMTYpKTtm''@;'; put 'put ''b3IodmFyIEo9dGhpcy5uLmJ5dGVMZW5ndGgoKSxzZT1OLmdldFByaXZhdGUoKS50b0FycmF5KCJiZSIsSiksb2U9Vy50b0FycmF5KCJiZSIsSiksY2U9bmV3IEIoe2hhc2g6dGhpcy5oYXNoLGVudHJvcHk6c2Usbm9uY2U6b2UscGVyczpLLnBlcnMscGVyc0VuYzpLLnBlcnNFbmN8fCJ1dGY4''@;'; put 'put ''In0pLGRlPXRoaXMubi5zdWIobmV3IG1lKDEpKSx2ZT0wOzt2ZSsrKXt2YXIgQWU9Sy5rP0suayh2ZSk6bmV3IG1lKGNlLmdlbmVyYXRlKHRoaXMubi5ieXRlTGVuZ3RoKCkpKTtpZighKChBZT10aGlzLl90cnVuY2F0ZVRvTihBZSwhMCkpLmNtcG4oMSk8PTB8fEFlLmNtcChkZSk+PTApKXt2''@;'; put 'put ''YXIga2U9dGhpcy5nLm11bChBZSk7aWYoIWtlLmlzSW5maW5pdHkoKSl7dmFyIFNlPWtlLmdldFgoKSxJZT1TZS51bW9kKHRoaXMubik7aWYoMCE9PUllLmNtcG4oMCkpe3ZhciBUZT1BZS5pbnZtKHRoaXMubikubXVsKEllLm11bChOLmdldFByaXZhdGUoKSkuaWFkZChXKSk7aWYoMCE9PShU''@;'; put 'put ''ZT1UZS51bW9kKHRoaXMubikpLmNtcG4oMCkpe3ZhciBNZT0oa2UuZ2V0WSgpLmlzT2RkKCk/MTowKXwoMCE9PVNlLmNtcChJZSk/MjowKTtyZXR1cm4gSy5jYW5vbmljYWwmJlRlLmNtcCh0aGlzLm5oKT4wJiYoVGU9dGhpcy5uLnN1YihUZSksTWVePTEpLG5ldyByZSh7cjpJZSxzOlRlLHJl''@;'; put 'put ''Y292ZXJ5UGFyYW06TWV9KX19fX19fSxhZS5wcm90b3R5cGUudmVyaWZ5PWZ1bmN0aW9uKFcsTix0ZSxLKXtXPXRoaXMuX3RydW5jYXRlVG9OKG5ldyBtZShXLDE2KSksdGU9dGhpcy5rZXlGcm9tUHVibGljKHRlLEspO3ZhciBKPShOPW5ldyByZShOLCJoZXgiKSkucixzZT1OLnM7aWYoSi5j''@;'; put 'put ''bXBuKDEpPDB8fEouY21wKHRoaXMubik+PTB8fHNlLmNtcG4oMSk8MHx8c2UuY21wKHRoaXMubik+PTApcmV0dXJuITE7dmFyIHZlLG9lPXNlLmludm0odGhpcy5uKSxjZT1vZS5tdWwoVykudW1vZCh0aGlzLm4pLGRlPW9lLm11bChKKS51bW9kKHRoaXMubik7cmV0dXJuIHRoaXMuY3VydmUu''@;'; put 'put ''X21heHdlbGxUcmljaz8hKHZlPXRoaXMuZy5qbXVsQWRkKGNlLHRlLmdldFB1YmxpYygpLGRlKSkuaXNJbmZpbml0eSgpJiZ2ZS5lcVhUb1AoSik6ISh2ZT10aGlzLmcubXVsQWRkKGNlLHRlLmdldFB1YmxpYygpLGRlKSkuaXNJbmZpbml0eSgpJiYwPT09dmUuZ2V0WCgpLnVtb2QodGhpcy5u''@;'; put 'put ''KS5jbXAoSil9LGFlLnByb3RvdHlwZS5yZWNvdmVyUHViS2V5PWZ1bmN0aW9uKFksVyxOLHRlKXtRKCgzJk4pPT09TiwiVGhlIHJlY292ZXJ5IHBhcmFtIGlzIG1vcmUgdGhhbiB0d28gYml0cyIpLFc9bmV3IHJlKFcsdGUpO3ZhciBLPXRoaXMubixKPW5ldyBtZShZKSxzZT1XLnIsb2U9Vy5z''@;'; put 'put ''LGNlPTEmTixkZT1OPj4xO2lmKHNlLmNtcCh0aGlzLmN1cnZlLnAudW1vZCh0aGlzLmN1cnZlLm4pKT49MCYmZGUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gZmluZCBzZW5jb25kIGtleSBjYW5kaW5hdGUiKTtzZT10aGlzLmN1cnZlLnBvaW50RnJvbVgoZGU/c2UuYWRkKHRoaXMuY3Vy''@;'; put 'put ''dmUubik6c2UsY2UpO3ZhciB2ZT1XLnIuaW52bShLKSxBZT1LLnN1YihKKS5tdWwodmUpLnVtb2QoSyksa2U9b2UubXVsKHZlKS51bW9kKEspO3JldHVybiB0aGlzLmcubXVsQWRkKEFlLHNlLGtlKX0sYWUucHJvdG90eXBlLmdldEtleVJlY292ZXJ5UGFyYW09ZnVuY3Rpb24oWSxXLE4sdGUp''@;'; put 'put ''e2lmKG51bGwhPT0oVz1uZXcgcmUoVyx0ZSkpLnJlY292ZXJ5UGFyYW0pcmV0dXJuIFcucmVjb3ZlcnlQYXJhbTtmb3IodmFyIEs9MDtLPDQ7SysrKXt2YXIgSjt0cnl7Sj10aGlzLnJlY292ZXJQdWJLZXkoWSxXLEspfWNhdGNoKHNlKXtjb250aW51ZX1pZihKLmVxKE4pKXJldHVybiBLfXRo''@;'; put 'put ''cm93IG5ldyBFcnJvcigiVW5hYmxlIHRvIGZpbmQgdmFsaWQgcmVjb3ZlcnkgZmFjdG9yIil9fSw5MTI1OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTc0MzMpLEU9TCg2MTk3MCkuYXNzZXJ0O2Z1bmN0aW9uIEVlKFUsUSl7dGhpcy5lYz1VLHRoaXMucHJpdj1udWxsLHRo''@;'; put 'put ''aXMucHViPW51bGwsUS5wcml2JiZ0aGlzLl9pbXBvcnRQcml2YXRlKFEucHJpdixRLnByaXZFbmMpLFEucHViJiZ0aGlzLl9pbXBvcnRQdWJsaWMoUS5wdWIsUS5wdWJFbmMpfVhlLmV4cG9ydHM9RWUsRWUuZnJvbVB1YmxpYz1mdW5jdGlvbihRLGoscmUpe3JldHVybiBqIGluc3RhbmNlb2Yg''@;'; put 'put ''RWU/ajpuZXcgRWUoUSx7cHViOmoscHViRW5jOnJlfSl9LEVlLmZyb21Qcml2YXRlPWZ1bmN0aW9uKFEsaixyZSl7cmV0dXJuIGogaW5zdGFuY2VvZiBFZT9qOm5ldyBFZShRLHtwcml2OmoscHJpdkVuYzpyZX0pfSxFZS5wcm90b3R5cGUudmFsaWRhdGU9ZnVuY3Rpb24oKXt2YXIgUT10aGlz''@;'; put 'put ''LmdldFB1YmxpYygpO3JldHVybiBRLmlzSW5maW5pdHkoKT97cmVzdWx0OiExLHJlYXNvbjoiSW52YWxpZCBwdWJsaWMga2V5In06US52YWxpZGF0ZSgpP1EubXVsKHRoaXMuZWMuY3VydmUubikuaXNJbmZpbml0eSgpP3tyZXN1bHQ6ITAscmVhc29uOm51bGx9OntyZXN1bHQ6ITEscmVhc29u''@;'; put 'put ''OiJQdWJsaWMga2V5ICogTiAhPSBPIn06e3Jlc3VsdDohMSxyZWFzb246IlB1YmxpYyBrZXkgaXMgbm90IGEgcG9pbnQifX0sRWUucHJvdG90eXBlLmdldFB1YmxpYz1mdW5jdGlvbihRLGope3JldHVybiJzdHJpbmciPT10eXBlb2YgUSYmKGo9USxRPW51bGwpLHRoaXMucHVifHwodGhpcy5w''@;'; put 'put ''dWI9dGhpcy5lYy5nLm11bCh0aGlzLnByaXYpKSxqP3RoaXMucHViLmVuY29kZShqLFEpOnRoaXMucHVifSxFZS5wcm90b3R5cGUuZ2V0UHJpdmF0ZT1mdW5jdGlvbihRKXtyZXR1cm4iaGV4Ij09PVE/dGhpcy5wcml2LnRvU3RyaW5nKDE2LDIpOnRoaXMucHJpdn0sRWUucHJvdG90eXBlLl9p''@;'; put 'put ''bXBvcnRQcml2YXRlPWZ1bmN0aW9uKFEsail7dGhpcy5wcml2PW5ldyBtZShRLGp8fDE2KSx0aGlzLnByaXY9dGhpcy5wcml2LnVtb2QodGhpcy5lYy5jdXJ2ZS5uKX0sRWUucHJvdG90eXBlLl9pbXBvcnRQdWJsaWM9ZnVuY3Rpb24oUSxqKXtpZihRLnh8fFEueSlyZXR1cm4ibW9udCI9PT10''@;'; put 'put ''aGlzLmVjLmN1cnZlLnR5cGU/RShRLngsIk5lZWQgeCBjb29yZGluYXRlIik6KCJzaG9ydCI9PT10aGlzLmVjLmN1cnZlLnR5cGV8fCJlZHdhcmRzIj09PXRoaXMuZWMuY3VydmUudHlwZSkmJkUoUS54JiZRLnksIk5lZWQgYm90aCB4IGFuZCB5IGNvb3JkaW5hdGUiKSx2b2lkKHRoaXMucHVi''@;'; put 'put ''PXRoaXMuZWMuY3VydmUucG9pbnQoUS54LFEueSkpO3RoaXMucHViPXRoaXMuZWMuY3VydmUuZGVjb2RlUG9pbnQoUSxqKX0sRWUucHJvdG90eXBlLmRlcml2ZT1mdW5jdGlvbihRKXtyZXR1cm4gUS52YWxpZGF0ZSgpfHxFKFEudmFsaWRhdGUoKSwicHVibGljIHBvaW50IG5vdCB2YWxpZGF0''@;'; put 'put ''ZWQiKSxRLm11bCh0aGlzLnByaXYpLmdldFgoKX0sRWUucHJvdG90eXBlLnNpZ249ZnVuY3Rpb24oUSxqLHJlKXtyZXR1cm4gdGhpcy5lYy5zaWduKFEsdGhpcyxqLHJlKX0sRWUucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihRLGope3JldHVybiB0aGlzLmVjLnZlcmlmeShRLGosdGhpcyl9''@;'; put 'put ''LEVlLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIjxLZXkgcHJpdjogIisodGhpcy5wcml2JiZ0aGlzLnByaXYudG9TdHJpbmcoMTYsMikpKyIgcHViOiAiKyh0aGlzLnB1YiYmdGhpcy5wdWIuaW5zcGVjdCgpKSsiID4ifX0sNjU5NTc6KFhlLEplLEwpPT57InVzZSBzdHJp''@;'; put 'put ''Y3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwoNjE5NzApLEU9Qi5hc3NlcnQ7ZnVuY3Rpb24gRWUoYWUsWSl7aWYoYWUgaW5zdGFuY2VvZiBFZSlyZXR1cm4gYWU7dGhpcy5faW1wb3J0REVSKGFlLFkpfHwoRShhZS5yJiZhZS5zLCJTaWduYXR1cmUgd2l0aG91dCByIG9yIHMiKSx0aGlzLnI9bmV3''@;'; put 'put ''IG1lKGFlLnIsMTYpLHRoaXMucz1uZXcgbWUoYWUucywxNiksdGhpcy5yZWNvdmVyeVBhcmFtPXZvaWQgMD09PWFlLnJlY292ZXJ5UGFyYW0/bnVsbDphZS5yZWNvdmVyeVBhcmFtKX1mdW5jdGlvbiBVKCl7dGhpcy5wbGFjZT0wfWZ1bmN0aW9uIFEoYWUsWSl7dmFyIFc9YWVbWS5wbGFjZSsr''@;'; put 'put ''XTtpZighKDEyOCZXKSlyZXR1cm4gVzt2YXIgTj0xNSZXO2lmKDA9PT1OfHxOPjQpcmV0dXJuITE7Zm9yKHZhciB0ZT0wLEs9MCxKPVkucGxhY2U7SzxOO0srKyxKKyspdGU8PD04LHRlfD1hZVtKXSx0ZT4+Pj0wO3JldHVybiEodGU8PTEyNykmJihZLnBsYWNlPUosdGUpfWZ1bmN0aW9uIGoo''@;'; put 'put ''YWUpe2Zvcih2YXIgWT0wLFc9YWUubGVuZ3RoLTE7IWFlW1ldJiYhKDEyOCZhZVtZKzFdKSYmWTxXOylZKys7cmV0dXJuIDA9PT1ZP2FlOmFlLnNsaWNlKFkpfWZ1bmN0aW9uIHJlKGFlLFkpe2lmKFk8MTI4KWFlLnB1c2goWSk7ZWxzZXt2YXIgVz0xKyhNYXRoLmxvZyhZKS9NYXRoLkxOMj4+''@;'; put 'put ''PjMpO2ZvcihhZS5wdXNoKDEyOHxXKTstLVc7KWFlLnB1c2goWT4+PihXPDwzKSYyNTUpO2FlLnB1c2goWSl9fVhlLmV4cG9ydHM9RWUsRWUucHJvdG90eXBlLl9pbXBvcnRERVI9ZnVuY3Rpb24oWSxXKXtZPUIudG9BcnJheShZLFcpO3ZhciBOPW5ldyBVO2lmKDQ4IT09WVtOLnBsYWNlKytd''@;'; put 'put ''KXJldHVybiExO3ZhciB0ZT1RKFksTik7aWYoITE9PT10ZXx8dGUrTi5wbGFjZSE9PVkubGVuZ3RofHwyIT09WVtOLnBsYWNlKytdKXJldHVybiExO3ZhciBLPVEoWSxOKTtpZighMT09PUspcmV0dXJuITE7dmFyIEo9WS5zbGljZShOLnBsYWNlLEsrTi5wbGFjZSk7aWYoTi5wbGFjZSs9Sywy''@;'; put 'put ''IT09WVtOLnBsYWNlKytdKXJldHVybiExO3ZhciBzZT1RKFksTik7aWYoITE9PT1zZXx8WS5sZW5ndGghPT1zZStOLnBsYWNlKXJldHVybiExO3ZhciBvZT1ZLnNsaWNlKE4ucGxhY2Usc2UrTi5wbGFjZSk7aWYoMD09PUpbMF0pe2lmKCEoMTI4JkpbMV0pKXJldHVybiExO0o9Si5zbGljZSgx''@;'; put 'put ''KX1pZigwPT09b2VbMF0pe2lmKCEoMTI4Jm9lWzFdKSlyZXR1cm4hMTtvZT1vZS5zbGljZSgxKX1yZXR1cm4gdGhpcy5yPW5ldyBtZShKKSx0aGlzLnM9bmV3IG1lKG9lKSx0aGlzLnJlY292ZXJ5UGFyYW09bnVsbCwhMH0sRWUucHJvdG90eXBlLnRvREVSPWZ1bmN0aW9uKFkpe3ZhciBXPXRo''@;'; put 'put ''aXMuci50b0FycmF5KCksTj10aGlzLnMudG9BcnJheSgpO2ZvcigxMjgmV1swXSYmKFc9WzBdLmNvbmNhdChXKSksMTI4Jk5bMF0mJihOPVswXS5jb25jYXQoTikpLFc9aihXKSxOPWooTik7IShOWzBdfHwxMjgmTlsxXSk7KU49Ti5zbGljZSgxKTt2YXIgdGU9WzJdO3JlKHRlLFcubGVuZ3Ro''@;'; put 'put ''KSwodGU9dGUuY29uY2F0KFcpKS5wdXNoKDIpLHJlKHRlLE4ubGVuZ3RoKTt2YXIgSz10ZS5jb25jYXQoTiksSj1bNDhdO3JldHVybiByZShKLEsubGVuZ3RoKSxKPUouY29uY2F0KEspLEIuZW5jb2RlKEosWSl9fSw4MTg4NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzcw''@;'; put 'put ''ODQpLEI9TCg1MjkxNiksRT1MKDYxOTcwKSxFZT1FLmFzc2VydCxVPUUucGFyc2VCeXRlcyxRPUwoOTc1MzUpLGo9TCg4ODI0MSk7ZnVuY3Rpb24gcmUoYWUpe2lmKEVlKCJlZDI1NTE5Ij09PWFlLCJvbmx5IHRlc3RlZCB3aXRoIGVkMjU1MTkgc28gZmFyIiksISh0aGlzIGluc3RhbmNlb2Yg''@;'; put 'put ''cmUpKXJldHVybiBuZXcgcmUoYWUpO3RoaXMuY3VydmU9YWU9QlthZV0uY3VydmUsdGhpcy5nPWFlLmcsdGhpcy5nLnByZWNvbXB1dGUoYWUubi5iaXRMZW5ndGgoKSsxKSx0aGlzLnBvaW50Q2xhc3M9YWUucG9pbnQoKS5jb25zdHJ1Y3Rvcix0aGlzLmVuY29kaW5nTGVuZ3RoPU1hdGguY2Vp''@;'; put 'put ''bChhZS5uLmJpdExlbmd0aCgpLzgpLHRoaXMuaGFzaD1tZS5zaGE1MTJ9WGUuZXhwb3J0cz1yZSxyZS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihZLFcpe1k9VShZKTt2YXIgTj10aGlzLmtleUZyb21TZWNyZXQoVyksdGU9dGhpcy5oYXNoSW50KE4ubWVzc2FnZVByZWZpeCgpLFkpLEs9dGhp''@;'; put 'put ''cy5nLm11bCh0ZSksSj10aGlzLmVuY29kZVBvaW50KEspLHNlPXRoaXMuaGFzaEludChKLE4ucHViQnl0ZXMoKSxZKS5tdWwoTi5wcml2KCkpLG9lPXRlLmFkZChzZSkudW1vZCh0aGlzLmN1cnZlLm4pO3JldHVybiB0aGlzLm1ha2VTaWduYXR1cmUoe1I6SyxTOm9lLFJlbmNvZGVkOkp9KX0s''@;'; put 'put ''cmUucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihZLFcsTil7WT1VKFkpLFc9dGhpcy5tYWtlU2lnbmF0dXJlKFcpO3ZhciB0ZT10aGlzLmtleUZyb21QdWJsaWMoTiksSz10aGlzLmhhc2hJbnQoVy5SZW5jb2RlZCgpLHRlLnB1YkJ5dGVzKCksWSksSj10aGlzLmcubXVsKFcuUygpKTtyZXR1''@;'; put 'put ''cm4gVy5SKCkuYWRkKHRlLnB1YigpLm11bChLKSkuZXEoSil9LHJlLnByb3RvdHlwZS5oYXNoSW50PWZ1bmN0aW9uKCl7Zm9yKHZhciBZPXRoaXMuaGFzaCgpLFc9MDtXPGFyZ3VtZW50cy5sZW5ndGg7VysrKVkudXBkYXRlKGFyZ3VtZW50c1tXXSk7cmV0dXJuIEUuaW50RnJvbUxFKFkuZGln''@;'; put 'put ''ZXN0KCkpLnVtb2QodGhpcy5jdXJ2ZS5uKX0scmUucHJvdG90eXBlLmtleUZyb21QdWJsaWM9ZnVuY3Rpb24oWSl7cmV0dXJuIFEuZnJvbVB1YmxpYyh0aGlzLFkpfSxyZS5wcm90b3R5cGUua2V5RnJvbVNlY3JldD1mdW5jdGlvbihZKXtyZXR1cm4gUS5mcm9tU2VjcmV0KHRoaXMsWSl9LHJl''@;'; put 'put ''LnByb3RvdHlwZS5tYWtlU2lnbmF0dXJlPWZ1bmN0aW9uKFkpe3JldHVybiBZIGluc3RhbmNlb2Ygaj9ZOm5ldyBqKHRoaXMsWSl9LHJlLnByb3RvdHlwZS5lbmNvZGVQb2ludD1mdW5jdGlvbihZKXt2YXIgVz1ZLmdldFkoKS50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0aCk7cmV0''@;'; put 'put ''dXJuIFdbdGhpcy5lbmNvZGluZ0xlbmd0aC0xXXw9WS5nZXRYKCkuaXNPZGQoKT8xMjg6MCxXfSxyZS5wcm90b3R5cGUuZGVjb2RlUG9pbnQ9ZnVuY3Rpb24oWSl7dmFyIFc9KFk9RS5wYXJzZUJ5dGVzKFkpKS5sZW5ndGgtMSxOPVkuc2xpY2UoMCxXKS5jb25jYXQoLTEyOSZZW1ddKSx0ZT0w''@;'; put 'put ''IT0oMTI4JllbV10pLEs9RS5pbnRGcm9tTEUoTik7cmV0dXJuIHRoaXMuY3VydmUucG9pbnRGcm9tWShLLHRlKX0scmUucHJvdG90eXBlLmVuY29kZUludD1mdW5jdGlvbihZKXtyZXR1cm4gWS50b0FycmF5KCJsZSIsdGhpcy5lbmNvZGluZ0xlbmd0aCl9LHJlLnByb3RvdHlwZS5kZWNvZGVJ''@;'; put 'put ''bnQ9ZnVuY3Rpb24oWSl7cmV0dXJuIEUuaW50RnJvbUxFKFkpfSxyZS5wcm90b3R5cGUuaXNQb2ludD1mdW5jdGlvbihZKXtyZXR1cm4gWSBpbnN0YW5jZW9mIHRoaXMucG9pbnRDbGFzc319LDk3NTM1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MTk3MCksQj1tZS5hc3Nl''@;'; put 'put ''cnQsRT1tZS5wYXJzZUJ5dGVzLEVlPW1lLmNhY2hlZFByb3BlcnR5O2Z1bmN0aW9uIFUoUSxqKXt0aGlzLmVkZHNhPVEsdGhpcy5fc2VjcmV0PUUoai5zZWNyZXQpLFEuaXNQb2ludChqLnB1Yik/dGhpcy5fcHViPWoucHViOnRoaXMuX3B1YkJ5dGVzPUUoai5wdWIpfVUuZnJvbVB1YmxpYz1m''@;'; put 'put ''dW5jdGlvbihqLHJlKXtyZXR1cm4gcmUgaW5zdGFuY2VvZiBVP3JlOm5ldyBVKGose3B1YjpyZX0pfSxVLmZyb21TZWNyZXQ9ZnVuY3Rpb24oaixyZSl7cmV0dXJuIHJlIGluc3RhbmNlb2YgVT9yZTpuZXcgVShqLHtzZWNyZXQ6cmV9KX0sVS5wcm90b3R5cGUuc2VjcmV0PWZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIHRoaXMuX3NlY3JldH0sRWUoVSwicHViQnl0ZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5wdWIoKSl9KSxFZShVLCJwdWIiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3B1YkJ5dGVzP3RoaXMuZWRkc2EuZGVjb2RlUG9pbnQodGhpcy5f''@;'; put 'put ''cHViQnl0ZXMpOnRoaXMuZWRkc2EuZy5tdWwodGhpcy5wcml2KCkpfSksRWUoVSwicHJpdkJ5dGVzIixmdW5jdGlvbigpe3ZhciBqPXRoaXMuZWRkc2EscmU9dGhpcy5oYXNoKCksYWU9ai5lbmNvZGluZ0xlbmd0aC0xLFk9cmUuc2xpY2UoMCxqLmVuY29kaW5nTGVuZ3RoKTtyZXR1cm4gWVsw''@;'; put 'put ''XSY9MjQ4LFlbYWVdJj0xMjcsWVthZV18PTY0LFl9KSxFZShVLCJwcml2IixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlzLnByaXZCeXRlcygpKX0pLEVlKFUsImhhc2giLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuaGFzaCgpLnVwZGF0ZSh0aGlzLnNl''@;'; put 'put ''Y3JldCgpKS5kaWdlc3QoKX0pLEVlKFUsIm1lc3NhZ2VQcmVmaXgiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzaCgpLnNsaWNlKHRoaXMuZWRkc2EuZW5jb2RpbmdMZW5ndGgpfSksVS5wcm90b3R5cGUuc2lnbj1mdW5jdGlvbihqKXtyZXR1cm4gQih0aGlzLl9zZWNyZXQsIktleVBhaXIg''@;'; put 'put ''Y2FuIG9ubHkgdmVyaWZ5IiksdGhpcy5lZGRzYS5zaWduKGosdGhpcyl9LFUucHJvdG90eXBlLnZlcmlmeT1mdW5jdGlvbihqLHJlKXtyZXR1cm4gdGhpcy5lZGRzYS52ZXJpZnkoaixyZSx0aGlzKX0sVS5wcm90b3R5cGUuZ2V0U2VjcmV0PWZ1bmN0aW9uKGope3JldHVybiBCKHRoaXMuX3Nl''@;'; put 'put ''Y3JldCwiS2V5UGFpciBpcyBwdWJsaWMgb25seSIpLG1lLmVuY29kZSh0aGlzLnNlY3JldCgpLGopfSxVLnByb3RvdHlwZS5nZXRQdWJsaWM9ZnVuY3Rpb24oail7cmV0dXJuIG1lLmVuY29kZSh0aGlzLnB1YkJ5dGVzKCksail9LFhlLmV4cG9ydHM9VX0sODgyNDE6KFhlLEplLEwpPT57InVz''@;'; put 'put ''ZSBzdHJpY3QiO3ZhciBtZT1MKDE3NDMzKSxCPUwoNjE5NzApLEU9Qi5hc3NlcnQsRWU9Qi5jYWNoZWRQcm9wZXJ0eSxVPUIucGFyc2VCeXRlcztmdW5jdGlvbiBRKGoscmUpe3RoaXMuZWRkc2E9aiwib2JqZWN0IiE9dHlwZW9mIHJlJiYocmU9VShyZSkpLEFycmF5LmlzQXJyYXkocmUpJiYo''@;'; put 'put ''cmU9e1I6cmUuc2xpY2UoMCxqLmVuY29kaW5nTGVuZ3RoKSxTOnJlLnNsaWNlKGouZW5jb2RpbmdMZW5ndGgpfSksRShyZS5SJiZyZS5TLCJTaWduYXR1cmUgd2l0aG91dCBSIG9yIFMiKSxqLmlzUG9pbnQocmUuUikmJih0aGlzLl9SPXJlLlIpLHJlLlMgaW5zdGFuY2VvZiBtZSYmKHRoaXMu''@;'; put 'put ''X1M9cmUuUyksdGhpcy5fUmVuY29kZWQ9QXJyYXkuaXNBcnJheShyZS5SKT9yZS5SOnJlLlJlbmNvZGVkLHRoaXMuX1NlbmNvZGVkPUFycmF5LmlzQXJyYXkocmUuUyk/cmUuUzpyZS5TZW5jb2RlZH1FZShRLCJTIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmVkZHNhLmRlY29kZUludCh0aGlz''@;'; put 'put ''LlNlbmNvZGVkKCkpfSksRWUoUSwiUiIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGRzYS5kZWNvZGVQb2ludCh0aGlzLlJlbmNvZGVkKCkpfSksRWUoUSwiUmVuY29kZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlUG9pbnQodGhpcy5SKCkpfSksRWUoUSwiU2VuY29k''@;'; put 'put ''ZWQiLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRkc2EuZW5jb2RlSW50KHRoaXMuUygpKX0pLFEucHJvdG90eXBlLnRvQnl0ZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5SZW5jb2RlZCgpLmNvbmNhdCh0aGlzLlNlbmNvZGVkKCkpfSxRLnByb3RvdHlwZS50b0hleD1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBCLmVuY29kZSh0aGlzLnRvQnl0ZXMoKSwiaGV4IikudG9VcHBlckNhc2UoKX0sWGUuZXhwb3J0cz1RfSwyNTE1MDpYZT0+e1hlLmV4cG9ydHM9e2RvdWJsZXM6e3N0ZXA6NCxwb2ludHM6W1siZTYwZmNlOTNiNTllOWVjNTMwMTFhYWJjMjFjMjNlOTdiMmEzMTM2OWI4N2E1YWU5YzQ0''@;'; put 'put ''ZWU4OWUyYTZkZWMwYSIsImY3ZTM1MDczOTllNTk1OTI5ZGI5OWYzNGY1NzkzNzEwMTI5Njg5MWU0NGQyM2YwYmUxZjMyY2NlNjk2MTY4MjEiXSxbIjgyODIyNjMyMTJjNjA5ZDllYTJhNmUzZTE3MmRlMjM4ZDhjMzljYWJkNWFjMWNhMTA2NDZlMjNmZDVmNTE1MDgiLCIxMWY4YTgwOTg1NTdk''@;'; put 'put ''ZmU0NWU4MjU2ZTgzMGI2MGFjZTYyZDYxM2FjMmY3YjE3YmVkMzFiNmVhZmY2ZTI2Y2FmIl0sWyIxNzVlMTU5ZjcyOGI4NjVhNzJmOTljYzZjNmZjODQ2ZGUwYjkzODMzZmQyMjIyZWQ3M2ZjZTViNTUxZTViNzM5IiwiZDM1MDZlMGQ5ZTNjNzllYmE0ZWY5N2E1MWZmNzFmNWVhY2I1OTU1YWRk''@;'; put 'put ''MjQzNDVjNmVmYTZmZmVlOWZlZDY5NSJdLFsiMzYzZDkwZDQ0N2IwMGM5Yzk5Y2VhYzA1YjYyNjJlZTA1MzQ0MWM3ZTU1NTUyZmZlNTI2YmFkOGY4M2ZmNDY0MCIsIjRlMjczYWRmYzczMjIyMTk1M2I0NDUzOTdmMzM2MzE0NWI5YTg5MDA4MTk5ZWNiNjIwMDNjN2YzYmVlOWRlOSJdLFsiOGI0''@;'; put 'put ''YjVmMTY1ZGYzYzJiZThjNjI0NGI1Yjc0NTYzODg0M2U0YTc4MWExNWJjZDFiNjlmNzlhNTVkZmZkZjgwYyIsIjRhYWQwYTZmNjhkMzA4YjRiM2ZiZDc4MTNhYjBkYTA0ZjllMzM2NTQ2MTYyZWU1NmIzZWZmMGM2NWZkNGZkMzYiXSxbIjcyM2NiYWE2ZTVkYjk5NmQ2YmY3NzFjMDBiZDU0OGM3''@;'; put 'put ''YjcwMGRiZmZhNmMwZTc3YmNiNjExNTkyNTIzMmZjZGEiLCI5NmU4NjdiNTU5NWNjNDk4YTkyMTEzNzQ4ODgyNGQ2ZTI2NjBhMDY1Mzc3OTQ5NDgwMWRjMDY5ZDllYjM5ZjVmIl0sWyJlZWJmYTRkNDkzYmViZjk4YmE1ZmVlYzgxMmMyZDNiNTA5NDc5NjEyMzdhOTE5ODM5YTUzM2VjYTBlN2Rk''@;'; put 'put ''N2ZhIiwiNWQ5YThjYTM5NzBlZjBmMjY5ZWU3ZWRhZjE3ODA4OWQ5YWU0Y2RjM2E3MTFmNzEyZGRmZDRmZGFlMWRlODk5OSJdLFsiMTAwZjQ0ZGE2OTZlNzE2NzI3OTFkMGEwOWI3YmRlNDU5ZjEyMTVhMjliM2MwM2JmZWZkNzgzNWIzOWE0OGRiMCIsImNkZDllMTMxOTJhMDBiNzcyZWM4ZjMz''@;'; put 'put ''MDBjMDkwNjY2YjdmZjRhMThmZjUxOTVhYzBmYmQ1Y2Q2MmJjNjVhMDkiXSxbImUxMDMxYmUyNjJjN2VkMWIxZGM5MjI3YTRhMDRjMDE3YTc3ZjhkNDQ2NGYzYjM4NTJjOGFjZGU2ZTUzNGZkMmQiLCI5ZDcwNjE5Mjg5NDA0MDVlNmJiNmE0MTc2NTk3NTM1YWYyOTJkZDQxOWUxY2VkNzlhNDRm''@;'; put 'put ''MThmMjk0NTZhMDBkIl0sWyJmZWVhNmNhZTQ2ZDU1YjUzMGFjMjgzOWYxNDNiZDdlYzVjZjhiMjY2YTQxZDZhZjUyZDVlNjg4ZDkwOTQ2OTZkIiwiZTU3YzZiNmM5N2RjZTFiYWIwNmU0ZTEyYmYzZWNkNWM5ODFjODk1N2NjNDE0NDJkMzE1NWRlYmYxODA5MDA4OCJdLFsiZGE2N2E5MWQ5MTA0''@;'; put 'put ''OWNkY2IzNjdiZTRiZTZmZmNhM2NmZWVkNjU3ZDgwODU4M2RlMzNmYTk3OGJjMWVjNmNiMSIsIjliYWNhYTM1NDgxNjQyYmM0MWY0NjNmN2VjOTc4MGU1ZGVjN2FkYzUwOGY3NDBhMTdlOWVhOGUyN2E2OGJlMWQiXSxbIjUzOTA0ZmFhMGIzMzRjZGRhNmUwMDA5MzVlZjIyMTUxZWMwOGQwZjdi''@;'; put 'put ''YjExMDY5ZjU3NTQ1Y2NjMWEzN2I3YzAiLCI1YmMwODdkMGJjODAxMDZkODhjOWVjY2FjMjBkM2MxYzEzOTk5OTgxZTE0NDM0Njk5ZGNiMDk2YjAyMjc3MWM4Il0sWyI4ZTdiY2QwYmQzNTk4M2E3NzE5Y2NhNzc2NGNhOTA2Nzc5YjUzYTA0M2E5YjhiY2FlZmY5NTlmNDNhZDg2MDQ3IiwiMTBi''@;'; put 'put ''Nzc3MGIyYTNkYTRiMzk0MDMxMDQyMGNhOTUxNDU3OWU4OGUyZTQ3ZmQ2OGIzZWExMDA0N2U4NDYwMzcyYSJdLFsiMzg1ZWVkMzRjMWNkZmYyMWU2ZDA4MTg2ODliODFiZGU3MWE3ZjRmMTgzOTdlNjY5MGE4NDFlMTU5OWM0Mzg2MiIsIjI4M2JlYmMzZThlYTIzZjU2NzAxZGUxOWU5ZWJmNDU3''@;'; put 'put ''NmIzMDRlZWMyMDg2ZGM4Y2MwNDU4ZmU1NTQyZTU0NTMiXSxbIjZmOWQ5YjgwM2VjZjE5MTYzN2M3M2E0NDEzZGZhMTgwZmRkZjg0YTU5NDdmYmM5YzYwNmVkODZjM2ZhYzNhNyIsIjdjODBjNjhlNjAzMDU5YmE2OWI4ZTJhMzBlNDVjNGQ0N2VhNGRkMmY1YzI4MTAwMmQ4Njg5MDYwM2E4NDIx''@;'; put 'put ''NjAiXSxbIjMzMjJkNDAxMjQzYzRlMjU4MmEyMTQ3YzEwNGQ2ZWNiZjc3NGQxNjNkYjBmNWU1MzEzYjdlMGU3NDJkMGU2YmQiLCI1NmU3MDc5N2U5NjY0ZWY1YmZiMDE5YmM0ZGRhZjliNzI4MDVmNjNlYTI4NzNhZjYyNGYzYTJlOTZjMjhiMmEwIl0sWyI4NTY3MmM3ZDJkZTBiN2RhMmJkMTc3''@;'; put 'put ''MGQ4OTY2NTg2ODc0MWIzZjlhZjc2NDMzOTc3MjFkNzRkMjgxMzRhYjgzIiwiN2M0ODFiOWI1YjQzYjJlYjYzNzQwNDliZmE2MmMyZTVlNzdmMTdmY2M1Mjk4ZjQ0YzhlMzA5NGY3OTAzMTNhNiJdLFsiOTQ4YmY4MDliMTk4OGE0NmIwNmM5ZjE5MTk0MTNiMTBmOTIyNmM2MGY2Njg4MzJmZmQ5''@;'; put 'put ''NTlhZjYwYzgyYTBhIiwiNTNhNTYyODU2ZGNiNjY0NmRjNmI3NGM1ZDFjMzQxOGM2ZDRkZmYwOGM5N2NkMmJlZDRjYjdmODhkOGM4ZTU4OSJdLFsiNjI2MGNlN2Y0NjE4MDFjMzRmMDY3Y2UwZjAyODczYThmMWIwZTQ0ZGZjNjk3NTJhY2NlY2Q4MTlmMzhmZDhlOCIsImJjMmRhODJiNmZhNWI1''@;'; put 'put ''NzFhN2YwOTA0OTc3NmExZWY3ZWNkMjkyMjM4MDUxYzE5OGMxYTg0ZTk1YjJiNGFlMTciXSxbImU1MDM3ZGUwYWZjMWQ4ZDQzZDgzNDg0MTRiYmY0MTAzMDQzZWM4ZjU3NWJmZGM0MzI5NTNjYzhkMjAzN2ZhMmQiLCI0NTcxNTM0YmFhOTRkM2I1ZjlmOThkMDlmYjk5MGJkZGJkNWY1YjAzZWM0''@;'; put 'put ''ODFmMTBlMGU1ZGM4NDFkNzU1YmRhIl0sWyJlMDYzNzJiMGY0YTIwN2FkZjVlYTkwNWU4ZjE3NzFiNGU3ZThkYmQxYzZhNmM1YjcyNTg2NmEwYWU0ZmNlNzI1IiwiN2E5MDg5NzRiY2UxOGNmZTEyYTI3YmIyYWQ1YTQ4OGNkNzQ4NGE3Nzg3MTA0ODcwYjI3MDM0Zjk0ZWVlMzFkZCJdLFsiMjEz''@;'; put 'put ''YzdhNzE1Y2Q1ZDQ1MzU4ZDBiYmY5ZGMwY2UwMjIwNGIxMGJkZGUyYTNmNTg1NDBhZDY5MDhkMDU1OTc1NCIsIjRiNmRhZDBiNWFlNDYyNTA3MDEzYWQwNjI0NWJhMTkwYmI0ODUwZjVmMzZhN2VlZGRmZjJjMjc1MzRiNDU4ZjIiXSxbIjRlN2MyNzJhN2FmNGIzNGU4ZGJiOTM1MmE1NDE5YTg3''@;'; put 'put ''ZTI4MzhjNzBhZGM2MmNkZGYwY2MzYTNiMDhmYmQ1M2MiLCIxNzc0OWM3NjZjOWQwYjE4ZTE2ZmQwOWY2ZGVmNjgxYjUzMGI5NjE0YmZmN2RkMzNlMGIzOTQxODE3ZGNhYWU2Il0sWyJmZWE3NGUzZGJlNzc4YjFiMTBmMjM4YWQ2MTY4NmFhNWM3NmUzZGIyYmU0MzA1NzYzMjQyN2UyODQwZmIy''@;'; put 'put ''N2I2IiwiNmUwNTY4ZGI5YjBiMTMyOTdjZjY3NGRlY2NiNmFmOTMxMjZiNTk2Yjk3M2Y3Yjc3NzAxZDNkYjdmMjNjYjk2ZiJdLFsiNzZlNjQxMTNmNjc3Y2YwZTEwYTI1NzBkNTk5OTY4ZDMxNTQ0ZTE3OWI3NjA0MzI5NTJjMDJhNDQxN2JkZGUzOSIsImM5MGRkZjhkZWU0ZTk1Y2Y1NzcwNjZk''@;'; put 'put ''NzA2ODFmMGQzNWUyYTMzZDJiNTZkMjAzMmI0YjE3NTJkMTkwMWFjMDEiXSxbImM3MzhjNTZiMDNiMmFiZTFlODI4MWJhYTc0M2Y4ZjlhOGY3Y2M2NDNkZjI2Y2JlZTNhYjE1MDI0MmJjYmI4OTEiLCI4OTNmYjU3ODk1MWFkMjUzN2Y3MThmMmVhY2JmYmJiYjgyMzE0ZWVmNzg4MGNmZTkxN2U3''@;'; put 'put ''MzVkOTY5OWE4NGMzIl0sWyJkODk1NjI2NTQ4YjY1YjgxZTI2NGM3NjM3Yzk3Mjg3N2QxZDcyZTVmM2E5MjUwMTQzNzJlOWY2NTg4ZjZjMTRiIiwiZmViZmFhMzhmMmJjN2VhZTcyOGVjNjA4MThjMzQwZWIwMzQyOGQ2MzJiYjA2N2UxNzkzNjNlZDc1ZDdkOTkxZiJdLFsiYjhkYTk0MDMyYTk1''@;'; put 'put ''NzUxOGViMGY2NDMzNTcxZTg3NjFjZWZmYzczNjkzZTg0ZWRkNDkxNTBhNTY0ZjY3NmUwMyIsIjI4MDRkZmE0NDgwNWExZTRkN2M5OWNjOTc2MjgwOGIwOTJjYzU4NGQ5NWZmM2I1MTE0ODhlNGU3NGVmZGY2ZTciXSxbImU4MGZlYTE0NDQxZmIzM2E3ZDhhZGFiOTQ3NWQ3ZmFiMjAxOWVmZmI1''@;'; put 'put ''MTU2YTc5MmYxYTExNzc4ZTNjMGRmNWQiLCJlZWQxZGU3ZjYzOGUwMDc3MWU4OTc2OGNhM2NhOTQ0NzJkMTU1ZTgwYWYzMjJlYTlmY2I0MjkxYjZhYzllYzc4Il0sWyJhMzAxNjk3YmRmY2Q3MDQzMTNiYTQ4ZTUxZDU2NzU0M2YyYTE4MjAzMWVmZDY5MTVkZGMwN2JiY2M0ZTE2MDcwIiwiNzM3''@;'; put 'put ''MGY5MWNmYjY3ZTRmNTA4MTgwOWZhMjVkNDBmOWIxNzM1ZGJmN2MwYTExYTEzMGMwZDFhMDQxZTE3N2VhMSJdLFsiOTBhZDg1YjM4OWQ2YjkzNjQ2M2Y5ZDA1MTI2NzhkZTIwOGNjMzMwYjExMzA3ZmZmYWI3YWM2M2UzZmIwNGVkNCIsImU1MDdhMzYyMGEzODI2MWFmZmRjYmQ5NDI3MjIyYjgz''@;'; put 'put ''OWFlZmFiZTE1ODI4OTRkOTkxZDRkNDhjYjZlZjE1MCJdLFsiOGY2OGI5ZDJmNjNiNWYzMzkyMzljMWFkOTgxZjE2MmVlODhjNTY3ODcyM2VhMzM1MWI3YjQ0NGM5ZWM0YzBkYSIsIjY2MmE5ZjJkYmEwNjM5ODZkZTFkOTBjMmI2YmUyMTVkYmJlYTJjZmU5NTUxMGJmZGYyM2NiZjc5NTAxZmZm''@;'; put 'put ''ODIiXSxbImU0ZjNmYjAxNzZhZjg1ZDY1ZmY5OWZmOTE5OGMzNjA5MWY0OGU4NjUwMzY4MWUzZTY2ODZmZDUwNTMyMzFlMTEiLCIxZTYzNjMzYWQwZWY0ZjFjMTY2MWE2ZDBlYTAyYjcyODZjYzdlNzRlYzk1MWQxYzk4MjJjMzg1NzZmZWI3M2JjIl0sWyI4YzAwZmE5YjE4ZWJmMzMxZWI5NjE1''@;'; put 'put ''MzdhNDVhNDI2NmM3MDM0ZjJmMGQ0ZTFkMDcxNmZiNmVhZTIwZWFlMjllIiwiZWZhNDcyNjdmZWE1MjFhMWE5ZGMzNDNhMzczNmM5NzRjMmZhZGFmYTgxZTM2YzU0ZTdkMmE0YzY2NzAyNDE0YiJdLFsiZTdhMjZjZTY5ZGQ0ODI5ZjNlMTBjZWMwYTllOThlZDMxNDNkMDg0ZjMwOGI5MmMwOTk3''@;'; put 'put ''ZmRkZmM2MGNiM2U0MSIsIjJhNzU4ZTMwMGZhNzk4NGI0NzFiMDA2YTFhYWZiYjE4ZDBhNmIyYzA0MjBlODNlMjBlOGE5NDIxY2YyY2ZkNTEiXSxbImI2NDU5ZTBlZTM2NjJlYzhkMjM1NDBjMjIzYmNiZGM1NzFjYmNiOTY3ZDc5NDI0ZjNjZjI5ZWIzZGU2YjgwZWYiLCI2N2M4NzZkMDZmM2Uw''@;'; put 'put ''NmRlMWRhZGYxNmU1NjYxZGIzYzRiM2FlNmQ0OGUzNWIyZmYzMGJmMGI2MWE3MWJhNDUiXSxbImQ2OGE4MGM4MjgwYmI4NDA3OTMyMzRhYTExOGYwNjIzMWQ2ZjFmYzY3ZTczYzVhNWRlZGEwZjViNDk2OTQzZTgiLCJkYjhiYTlmZmY0YjU4NmQwMGM0YjFmOTE3N2IwZTI4YjViMGU3YjhmNzg0''@;'; put 'put ''NTI5NWEyOTRjODQyNjZiMTMzMTIwIl0sWyIzMjRhZWQ3ZGY2NWM4MDQyNTJkYzAyNzA5MDdhMzBiMDk2MTJhZWI5NzM0NDljZWE0MDk1OTgwZmMyOGQzZDVkIiwiNjQ4YTM2NTc3NGI2MWYyZmYxMzBjMGMzNWFlYzFmNGYxOTIxM2IwYzdlMzMyODQzOTY3MjI0YWY5NmFiN2M4NCJdLFsiNGRm''@;'; put 'put ''OWMxNDkxOWNkZTYxZjZkNTFkZmRiZTVmZWU1ZGNlZWM0MTQzYmE4ZDFjYTg4OGU4YmQzNzNmZDA1NGM5NiIsIjM1ZWM1MTA5MmQ4NzI4MDUwOTc0YzIzYTFkODVkNGI1ZDUwNmNkYzI4ODQ5MDE5MmViYWMwNmNhZDEwZDVkIl0sWyI5YzM5MTlhODRhNDc0ODcwZmFlZDhhOWMxY2M2NjAyMTUy''@;'; put 'put ''MzQ4OTA1NGQ3ZjAzMDhjYmZjOTljOGFjMWY5OGNkIiwiZGRiODRmMGY0YTRkZGQ1NzU4NGYwNDRiZjI2MGU2NDE5MDUzMjZmNzZjNjRjOGU2YmU3ZTVlMDNkNGZjNTk5ZCJdLFsiNjA1NzE3MGIxZGQxMmZkZjhkZTA1ZjI4MWQ4ZTA2YmI5MWUxNDkzYThiOTFkNGNjNWEyMTM4MjEyMGE5NTll''@;'; put 'put ''NSIsIjlhMWFmMGIyNmE2YTQ4MDdhZGQ5YTJkYWY3MWRmMjYyNDY1MTUyYmMzZWUyNGM2NWU4OTliZTkzMjM4NWEyYTgiXSxbImE1NzZkZjhlMjNhMDg0MTE0MjE0MzlhNDUxOGRhMzE4ODBjZWYwZmJhN2Q0ZGYxMmIxYTY5NzNlZWNiOTQyNjYiLCI0MGE2YmYyMGU3NjY0MGIyYzkyYjk3YWZl''@;'; put 'put ''NThjZDgyYzQzMmUxMGE3ZjUxNGQ5ZjNlZThiZTExYWUxYjI4ZWM4Il0sWyI3Nzc4YTc4YzI4ZGVjM2UzMGEwNWZlOTYyOWRlOGMzOGJiMzBkMWY1Y2Y5YTNhMjA4Zjc2Mzg4OWJlNThhZDcxIiwiMzQ2MjZkOWFiNWE1YjIyZmY3MDk4ZTEyZjJmZjU4MDA4N2IzODQxMWZmMjRhYzU2M2I1MTNm''@;'; put 'put ''YzFmZDlmNDNhYyJdLFsiOTI4OTU1ZWU2MzdhODQ0NjM3MjlmZDMwZTdhZmQyZWQ1Zjk2Mjc0ZTVhZDdlNWNiMDllZGE5YzA2ZDkwM2FjIiwiYzI1NjIxMDAzZDNmNDJhODI3Yjc4YTEzMDkzYTk1ZWVhYzNkMjZlZmE4YThkODNmYzUxODBlOTM1YmNkMDkxZiJdLFsiODVkMGZlZjNlYzZkYjEw''@;'; put 'put ''OTM5OTA2NGYzYTBlM2IyODU1NjQ1YjRhOTA3YWQzNTQ1MjdhYWU3NTE2M2Q4Mjc1MSIsIjFmMDM2NDg0MTNhMzhjMGJlMjlkNDk2ZTU4MmNmNTY2M2U4NzUxZTk2ODc3MzMxNTgyYzIzN2EyNGViMWY5NjIiXSxbImZmMmIwZGNlOTdlZWNlOTdjMWM5YjYwNDE3OThiODVkZmRmYjZkODg4MmRh''@;'; put 'put ''MjAzMDhmNTQwNDgyNDUyNjA4N2UiLCI0OTNkMTNmZWY1MjRiYTE4OGFmNGM0ZGM1NGQwNzkzNmM3YjdlZDZmYjkwZTJjZWIyYzk1MWUwMWYwYzI5OTA3Il0sWyI4MjdmYmJlNGIxZTg4MGVhOWVkMmIyZTYzMDFiMjEyYjU3ZjFlZTE0OGNkNmRkMjg3ODBlNWUyY2Y4NTZlMjQxIiwiYzYwZjlj''@;'; put 'put ''OTIzYzcyN2IwYjcxYmVmMmM2N2QxZDEyNjg3ZmY3YTYzMTg2OTAzMTY2ZDYwNWI2OGJhZWMyOTNlYyJdLFsiZWFhNjQ5ZjIxZjUxYmRiYWU3YmU0YWUzNGNlNmU1MjE3YTU4ZmRjZTdmNDdmOWFhN2YzYjU4ZmEyMTIwZTJiMyIsImJlMzI3OWVkNWJiYmIwM2FjNjlhODBmODk4NzlhYTVhMDFh''@;'; put 'put ''NmI5NjVmMTNmN2U1OWQ0N2E1MzA1YmE1YWQ5M2QiXSxbImU0YTQyZDQzYzVjZjE2OWQ5MzkxZGY2ZGVjZjQyZWU1NDFiNmQ4ZjBjOWExMzc0MDFlMjM2MzJkZGEzNGQyNGYiLCI0ZDlmOTJlNzE2ZDFjNzM1MjZmYzk5Y2NmYjhhZDM0Y2U4ODZlZWRmYThkOGU0ZjEzYTdmNzEzMWRlYmE5NDE0''@;'; put 'put ''Il0sWyIxZWM4MGZlZjM2MGNiZGQ5NTQxNjBmYWRhYjM1MmI2YjkyYjUzNTc2YTg4ZmVhNDk0NzE3M2I5ZDQzMDBiZjE5IiwiYWVlZmU5Mzc1NmI1MzQwZDJmM2E0OTU4YTdhYmJmNWUwMTQ2ZTc3ZjYyOTVhMDdiNjcxY2RjMWNjMTA3Y2VmZCJdLFsiMTQ2YTc3OGMwNDY3MGMyZjkxYjAwYWY0''@;'; put 'put ''NjgwZGZhOGJjZTM0OTA3MTdkNThiYTg4OWRkYjU5MjgzNjY2NDJiZSIsImIzMThlMGVjMzM1NDAyOGFkZDY2OTgyN2Y5ZDRiMjg3MGFhYTk3MWQyZjdlNWVkMWQwYjI5NzQ4M2Q4M2VmZDAiXSxbImZhNTBjMGY2MWQyMmU1ZjA3ZTNhY2ViYjFhYTA3YjEyOGQwMDEyMjA5YTI4Yjk3NzZkNzZh''@;'; put 'put ''ODc5MzE4MGVlZjkiLCI2Yjg0YzY5MjIzOTdlYmE5YjcyY2QyODcyMjgxYTY4YTVlNjgzMjkzYTU3YTIxM2IzOGNkOGQ3ZDNmNGYyODExIl0sWyJkYTFkNjFkMGNhNzIxYTExYjFhNWJmNmI3ZDg4ZTg0MjFhMjg4YWI1ZDViYmE1MjIwZTUzZDMyYjVmMDY3ZWMyIiwiODE1N2Y1NWE3Yzk5MzA2''@;'; put 'put ''Yzc5YzA3NjYxNjFjOTFlMjk2NmE3Mzg5OWQyNzliNDhhNjU1ZmJhMGYxYWQ4MzZmMSJdLFsiYThlMjgyZmYwYzk3MDY5MDcyMTVmZjk4ZThmZDQxNjYxNTMxMWRlMDQ0NmYxZTA2MmE3M2IwNjEwZDA2NGUxMyIsIjdmOTczNTViOGRiODFjMDlhYmZiN2YzYzViMjUxNTg4OGI2NzlhM2U1MGRk''@;'; put 'put ''NmJkNmNlZjdjNzMxMTFmNGNjMGMiXSxbIjE3NGE1M2I5YzlhMjg1ODcyZDM5ZTU2ZTY5MTNjYWIxNWQ1OWIxZmE1MTI1MDhjMDIyZjM4MmRlODMxOTQ5N2MiLCJjY2M5ZGMzN2FiZmM5YzE2NTdiNDE1NWYyYzQ3ZjllNjY0NmIzYTFkOGNiOTg1NDM4M2RhMTNhYzA3OWFmYTczIl0sWyI5NTkz''@;'; put 'put ''OTY5ODE5NDM3ODVjM2QzZTU3ZWRmNTAxOGNkYmUwMzllNzMwZTQ5MThiM2Q4ODRmZGZmMDk0NzViN2JhIiwiMmU3ZTU1Mjg4OGMzMzFkZDhiYTAzODZhNGI5Y2Q2ODQ5YzY1M2Y2NGM4NzA5Mzg1ZTliOGFiZjg3NTI0ZjJmZCJdLFsiZDJhNjNhNTBhZTQwMWU1NmQ2NDVhMTE1M2IxMDlhOGZj''@;'; put 'put ''Y2EwYTQzZDU2MWZiYTJkYmI1MTM0MGM5ZDgyYjE1MSIsImU4MmQ4NmZiNjQ0M2ZjYjc1NjVhZWU1OGIyOTQ4MjIwYTcwZjc1MGFmNDg0Y2E1MmQ0MTQyMTc0ZGNmODk0MDUiXSxbIjY0NTg3ZTIzMzU0NzFlYjg5MGVlNzg5NmQ3Y2ZkYzg2NmJhY2JkYmQzODM5MzE3YjM0MzZmOWI0NTYxN2Uw''@;'; put 'put ''NzMiLCJkOTlmY2RkNWJmNjkwMmUyYWU5NmRkNjQ0N2MyOTlhMTg1YjkwYTM5MTMzYWVhYjM1ODI5OWU1ZTlmYWY2NTg5Il0sWyI4NDgxYmRlMGU0ZTRkODg1YjNhNTQ2ZDNlNTQ5ZGUwNDJmMGFhNmNlYTI1MGU3ZmQzNThkNmM4NmRkNDVlNDU4IiwiMzhlZTdiOGNiYTU0MDRkZDg0YTI1YmYz''@;'; put 'put ''OWNlY2IyY2E5MDBhNzljNDJiMjYyZTU1NmQ2NGIxYjU5Nzc5MDU3ZSJdLFsiMTM0NjRhNTdhNzgxMDJhYTYyYjY5NzlhZTgxN2Y0NjM3ZmZjZmVkM2M0YjFjZTMwYmNkNjMwM2Y2Y2FmNjY2YiIsIjY5YmUxNTkwMDQ2MTQ1ODBlZjdlNDMzNDUzY2NiMGNhNDhmMzAwYTgxZDA5NDJlMTNmNDk1''@;'; put 'put ''YTkwN2Y2ZWNjMjciXSxbImJjNGE5ZGY1YjcxM2ZlMmU5YWVmNDMwYmNjMWRjOTdhMGNkOWNjZWRlMmYyODU4OGNhZGEzYTBkMmQ4M2YzNjYiLCJkM2E4MWNhNmU3ODVjMDYzODM5MzdhZGY0Yjc5OGNhYTZlOGE5ZmJmYTU0N2IxNmQ3NThkNjY2NTgxZjMzYzEiXSxbIjhjMjhhOTdiZjgyOThi''@;'; put 'put ''YzBkMjNkOGM3NDk0NTJhMzJlNjk0YjY1ZTMwYTk0NzJhMzk1NGFiMzBmZTUzMjRjYWEiLCI0MGEzMDQ2M2EzMzA1MTkzMzc4ZmVkZjMxZjdjYzBlYjdhZTc4NGYwNDUxY2I5NDU5ZTcxZGM3M2NiZWY5NDgyIl0sWyI4ZWE5NjY2MTM5NTI3YThjMWRkOTRjZTRmMDcxZmQyM2M4YjM1MGM1YTRi''@;'; put 'put ''YjMzNzQ4YzRiYTExMWZhY2NhZTAiLCI2MjBlZmFiYmM4ZWUyNzgyZTI0ZTdjMGNmYjk1YzVkNzM1Yjc4M2JlOWNmMGY4ZTk1NWFmMzRhMzBlNjJiOTQ1Il0sWyJkZDM2MjVmYWVmNWJhMDYwNzQ2Njk3MTZiYmQzNzg4ZDg5YmRkZTgxNTk1OTk2ODA5MmY3NmNjNGViOWE5Nzg3IiwiN2ExODhm''@;'; put 'put ''YTM1MjBlMzBkNDYxZGEyNTAxMDQ1NzMxY2E5NDE0NjE5ODI4ODMzOTU5MzdmNjhkMDBjNjQ0YTU3MyJdLFsiZjcxMGQ3OWQ5ZWI5NjIyOTdlNGY2MjMyYjQwZThmN2ZlYjJiYzYzODE0NjE0ZDY5MmMxMmRlNzUyNDA4MjIxZSIsImVhOThlNjcyMzJkM2IzMjk1ZDNiNTM1NTMyMTE1Y2NhYzg2''@;'; put 'put ''MTJjNzIxODUxNjE3NTI2YWU0N2E5Yzc3YmZjODIiXV19LG5hZjp7d25kOjcscG9pbnRzOltbImY5MzA4YTAxOTI1OGMzMTA0OTM0NGY4NWY4OWQ1MjI5YjUzMWM4NDU4MzZmOTliMDg2MDFmMTEzYmNlMDM2ZjkiLCIzODhmN2IwZjYzMmRlODE0MGZlMzM3ZTYyYTM3ZjM1NjY1MDBhOTk5MzRj''@;'; put 'put ''MjIzMWI2Y2I5ZmQ3NTg0YjhlNjcyIl0sWyIyZjhiZGU0ZDFhMDcyMDkzNTViNGE3MjUwYTVjNTEyOGU4OGI4NGJkZGM2MTlhYjdjYmE4ZDU2OWIyNDBlZmU0IiwiZDhhYzIyMjYzNmU1ZTNkNmQ0ZGJhOWRkYTZjOWM0MjZmNzg4MjcxYmFiMGQ2ODQwZGNhODdkM2FhNmFjNjJkNiJdLFsiNWNi''@;'; put 'put ''ZGYwNjQ2ZTVkYjRlYWEzOThmMzY1ZjJlYTdhMGUzZDQxOWI3ZTAzMzBlMzljZTkyYmRkZWRjYWM0ZjliYyIsIjZhZWJjYTQwYmEyNTU5NjBhMzE3OGQ2ZDg2MWE1NGRiYTgxM2QwYjgxM2ZkZTdiNWE1MDgyNjI4MDg3MjY0ZGEiXSxbImFjZDQ4NGUyZjBjN2Y2NTMwOWFkMTc4YTlmNTU5YWJk''@;'; put 'put ''ZTA5Nzk2OTc0YzU3ZTcxNGMzNWYxMTBkZmMyN2NjYmUiLCJjYzMzODkyMWIwYTdkOWZkNjQzODA5NzE3NjNiNjFlOWFkZDg4OGE0Mzc1ZjhlMGYwNWNjMjYyYWM2NGY5YzM3Il0sWyI3NzRhZTdmODU4YTk0MTFlNWVmNDI0NmI3MGM2NWFhYzU2NDk5ODBiZTVjMTc4OTFiYmVjMTc4OTVkYTAw''@;'; put 'put ''OGNiIiwiZDk4NGEwMzJlYjZiNWUxOTAyNDNkZDU2ZDdiN2IzNjUzNzJkYjFlMmRmZjlkNmE4MzAxZDc0YzljOTUzYzYxYiJdLFsiZjI4NzczYzJkOTc1Mjg4YmM3ZDFkMjA1YzM3NDg2NTFiMDc1ZmJjNjYxMGU1OGNkZGVlZGRmOGYxOTQwNWFhOCIsImFiMDkwMmU4ZDg4MGE4OTc1ODIxMmVi''@;'; put 'put ''NjVjZGFmNDczYTFhMDZkYTUyMWZhOTFmMjliNWNiNTJkYjAzZWQ4MSJdLFsiZDc5MjRkNGY3ZDQzZWE5NjVhNDY1YWUzMDk1ZmY0MTEzMWU1OTQ2ZjNjODVmNzllNDRhZGJjZjhlMjdlMDgwZSIsIjU4MWUyODcyYTg2YzcyYTY4Mzg0MmVjMjI4Y2M2ZGVmZWE0MGFmMmJkODk2ZDNhNWM1MDRk''@;'; put 'put ''YzlmZjZhMjZiNTgiXSxbImRlZmRlYTRjZGI2Nzc3NTBhNDIwZmVlODA3ZWFjZjIxZWI5ODk4YWU3OWI5NzY4NzY2ZTRmYWEwNGEyZDRhMzQiLCI0MjExYWIwNjk0NjM1MTY4ZTk5N2IwZWFkMmE5M2RhZWNlZDFmNGEwNGE5NWMwZjZjZmIxOTlmNjllNTZlYjc3Il0sWyIyYjRlYTBhNzk3YTQ0''@;'; put 'put ''M2QyOTNlZjVjZmY0NDRmNDk3OWYwNmFjZmViZDdlODZkMjc3NDc1NjU2MTM4Mzg1YjZjIiwiODVlODliYzAzNzk0NWQ5M2IzNDMwODNiNWExYzg2MTMxYTAxZjYwYzUwMjY5NzYzYjU3MGM4NTRlNWMwOWI3YSJdLFsiMzUyYmJmNGE0Y2RkMTI1NjRmOTNmYTMzMmNlMzMzMzAxZDlhZDQwMjcx''@;'; put 'put ''ZjgxMDcxODEzNDBhZWYyNWJlNTlkNSIsIjMyMWViNDA3NTM0OGY1MzRkNTljMTgyNTlkZGEzZTFmNGExYjNiMmU3MWIxMDM5YzY3YmQzZDhiY2Y4MTk5OGMiXSxbIjJmYTIxMDRkNmIzOGQxMWIwMjMwMDEwNTU5ODc5MTI0ZTQyYWI4ZGZlZmY1ZmYyOWRjOWNkYWRkNGVjYWNjM2YiLCIyZGUx''@;'; put 'put ''MDY4Mjk1ZGQ4NjViNjQ1NjkzMzViZDVkZDgwMTgxZDcwZWNmYzg4MjY0ODQyM2JhNzZiNTMyYjdkNjciXSxbIjkyNDgyNzliMDliNGQ2OGRhYjIxYTliMDY2ZWRkYTgzMjYzYzNkODRlMDk1NzJlMjY5Y2EwY2Q3ZjU0NTM3MTQiLCI3MzAxNmY3YmYyMzRhYWRlNWQxYWE3MWJkZWEyYjFmZjNm''@;'; put 'put ''YzBkZTJhODg3OTEyZmZlNTRhMzJjZTk3Y2IzNDAyIl0sWyJkYWVkNGYyYmUzYThiZjI3OGU3MDEzMmZiMGJlYjc1MjJmNTcwZTE0NGJmNjE1YzA3ZTk5NmQ0NDNkZWU4NzI5IiwiYTY5ZGNlNGE3ZDZjOThlOGQ0YTFhY2E4N2VmOGQ3MDAzZjgzYzIzMGYzYWZhNzI2YWI0MGU1MjI5MGJlMWM1''@;'; put 'put ''NSJdLFsiYzQ0ZDEyYzcwNjVkODEyZThhY2YyOGQ3Y2JiMTlmOTAxMWVjZDllOWZkZjI4MWIwZTZhM2I1ZTg3ZDIyZTdkYiIsIjIxMTlhNDYwY2UzMjZjZGM3NmM0NTkyNmM5ODJmZGFjMGUxMDZlODYxZWRmNjFjNWEwMzkwNjNmMGUwZTY0ODIiXSxbIjZhMjQ1YmY2ZGM2OTg1MDRjODlhMjBj''@;'; put 'put ''ZmRlZDYwODUzMTUyYjY5NTMzNmMyODA2M2I2MWM2NWNiZDI2OWU2YjQiLCJlMDIyY2Y0MmMyYmQ0YTcwOGIzZjUxMjZmMTZhMjRhZDhiMzNiYTQ4ZDA0MjNiNmVmZDVlNjM0ODEwMGQ4YTgyIl0sWyIxNjk3ZmZhNmZkOWRlNjI3YzA3N2UzZDJmZTU0MTA4NGNlMTMzMDBiMGJlYzExNDZmOTVh''@;'; put 'put ''ZTU3ZjBkMGJkNmE1IiwiYjljMzk4ZjE4NjgwNmY1ZDI3NTYxNTA2ZTQ1NTc0MzNhMmNmMTUwMDllNDk4YWU3YWRlZTlkNjNkMDFiMjM5NiJdLFsiNjA1YmRiMDE5OTgxNzE4Yjk4NmQwZjA3ZTgzNGNiMGQ5ZGViODM2MGZmYjdmNjFkZjk4MjM0NWVmMjdhNzQ3OSIsIjI5NzJkMmRlNGY4ZDIw''@;'; put 'put ''NjgxYTc4ZDkzZWM5NmZlMjNjMjZiZmFlODRmYjE0ZGI0M2IwMWUxZTkwNTZiOGM0OSJdLFsiNjJkMTRkYWI0MTUwYmY0OTc0MDJmZGM0NWEyMTVlMTBkY2IwMWMzNTQ5NTliMTBjZmUzMWM3ZTlkODdmZjMzZCIsIjgwZmMwNmJkOGNjNWIwMTA5ODA4OGExOTUwZWVkMGRiMDFhYTEzMjk2N2Fi''@;'; put 'put ''NDcyMjM1ZjU2NDI0ODNiMjVlYWYiXSxbIjgwYzYwYWQwMDQwZjI3ZGFkZTViNGIwNmM0MDhlNTZiMmM1MGU5ZjU2YjliOGI0MjVlNTU1YzJmODYzMDhiNmYiLCIxYzM4MzAzZjFjYzVjMzBmMjZlNjZiYWQ3ZmU3MmY3MGE2NWVlZDRjYmU3MDI0ZWIxYWEwMWY1NjQzMGJkNTdhIl0sWyI3YTkz''@;'; put 'put ''NzVhZDYxNjdhZDU0YWE3NGM2MzQ4Y2M1NGQzNDRjYzVkYzk0ODdkODQ3MDQ5ZDVlYWJiMGZhMDNjOGZiIiwiZDBlM2ZhOWVjYTg3MjY5MDk1NTllMGQ3OTI2OTA0NmJkYzU5ZWExMGM3MGNlMmIwMmQ0OTllYzIyNGRjN2Y3Il0sWyJkNTI4ZWNkOWI2OTZiNTRjOTA3YTllZDA0NTQ0N2E3OWJi''@;'; put 'put ''NDA4ZWMzOWI2OGRmNTA0YmI1MWY0NTliYzNmZmM5IiwiZWVjZjQxMjUzMTM2ZTVmOTk5NjZmMjE4ODFmZDY1NmViYzQzNDU0MDVjNTIwZGJjMDYzNDY1YjUyMTQwOTkzMyJdLFsiNDkzNzBhNGI1ZjQzNDEyZWEyNWY1MTRlOGVjZGFkMDUyNjYxMTVlNGE3ZWNiMTM4NzIzMTgwOGY4YjQ1OTYz''@;'; put 'put ''IiwiNzU4ZjNmNDFhZmQ2ZWQ0MjhiMzA4MWIwNTEyZmQ2MmE1NGMzZjNhZmJiNWI2NzY0YjY1MzA1MmExMjk0OWM5YSJdLFsiNzdmMjMwOTM2ZWU4OGNiYmQ3M2RmOTMwZDY0NzAyZWY4ODFkODExZTBlMTQ5OGUyZjFjMTNlYjFmYzM0NWQ3NCIsIjk1OGVmNDJhNzg4NmI2NDAwYTA4MjY2ZTli''@;'; put 'put ''YTFiMzc4OTZjOTUzMzBkOTcwNzdjYmJlOGViM2M3NjcxYzYwZDYiXSxbImYyZGFjOTkxY2M0Y2U0YjllYTQ0ODg3ZTVjN2MwYmNlNThjODAwNzRhYjlkNGRiYWViMjg1MzFiNzczOWY1MzAiLCJlMGRlZGM5YjNiMmY4ZGFkNGRhMWYzMmRlYzI1MzFkZjllYjVmYmViMDU5OGU0ZmQxYTExN2Ri''@;'; put 'put ''YTcwM2EzYzM3Il0sWyI0NjNiM2Q5ZjY2MjYyMWZiMWI0YmU4ZmJiZTI1MjAxMjVhMjE2Y2RmYzlkYWUzZGViY2JhNDg1MGM2OTBkNDViIiwiNWVkNDMwZDc4YzI5NmMzNTQzMTE0MzA2ZGQ4NjIyZDdjNjIyZTI3Yzk3MGExZGUzMWNiMzc3YjAxYWY3MzA3ZSJdLFsiZjE2ZjgwNDI0NGU0NmUy''@;'; put 'put ''YTA5MjMyZDRhZmYzYjU5OTc2Yjk4ZmFjMTQzMjhhMmQxYTMyNDk2YjQ5OTk4ZjI0NyIsImNlZGFiZDliODIyMDNmN2UxM2QyMDZmY2RmNGUzM2Q5MmE2YzUzYzI2ZTVjY2UyNmQ2NTc5OTYyYzRlMzFkZjYiXSxbImNhZjc1NDI3MmRjODQ1NjNiMDM1MmI3YTE0MzExYWY1NWQyNDUzMTVhY2Uy''@;'; put 'put ''N2M2NTM2OWUxNWY3MTUxZDQxZDEiLCJjYjQ3NDY2MGVmMzVmNWYyYTQxYjY0M2ZhNWU0NjA1NzVmNGZhOWI3OTYyMjMyYTVjMzJmOTA4MzE4YTA0NDc2Il0sWyIyNjAwY2E0YjI4MmNiOTg2Zjg1ZDBmMTcwOTk3OWQ4YjQ0YTA5YzA3Y2I4NmQ3YzEyNDQ5N2JjODZmMDgyMTIwIiwiNDExOWI4''@;'; put 'put ''ODc1M2MxNWJkNmE2OTNiMDNmY2RkYmI0NWQ1YWM2YmU3NGFiNWYwZWY0NGIwYmU5NDc1YTdlNGI0MCJdLFsiNzYzNWNhNzJkN2U4NDMyYzMzOGVjNTNjZDEyMjIwYmMwMWM0ODY4NWUyNGY3ZGM4YzYwMmE3NzQ2OTk4ZTQzNSIsIjkxYjY0OTYwOTQ4OWQ2MTNkMWQ1ZTU5MGY3OGU2ZDc0ZWNm''@;'; put 'put ''YzA2MWQ1NzA0OGJhZDllNzZmMzAyYzViOWM2MSJdLFsiNzU0ZTMyMzlmMzI1NTcwY2RiYmY0YTg3ZGVlZThhNjZiN2YyYjMzNDc5ZDQ2OGZiYzFhNTA3NDNiZjU2Y2MxOCIsIjY3M2ZiODZlNWJkYTMwZmIzY2QwZWQzMDRlYTQ5YTAyM2VlMzNkMDE5N2E2OTVkMGM1ZDk4MDkzYzUzNjY4MyJd''@;'; put 'put ''LFsiZTNlNmJkMTA3MWExZTk2YWZmNTc4NTljODJkNTcwZjAzMzA4MDA2NjFkMWM5NTJmOWZlMjY5NDY5MWQ5YjllOCIsIjU5YzllMGJiYTM5NGU3NmY0MGMwYWE1ODM3OWEzY2I2YTVhMjI4Mzk5M2U5MGM0MTY3MDAyYWY0OTIwZTM3ZjUiXSxbIjE4NmI0ODNkMDU2YTAzMzgyNmFlNzNkODhm''@;'; put 'put ''NzMyOTg1YzRjY2IxZjMyYmEzNWY0YjRjYzQ3ZmRjZjA0YWE2ZWIiLCIzYjk1MmQzMmM2N2NmNzdlMmUxNzQ0NmUyMDQxODBhYjIxZmI4MDkwODk1MTM4YjRhNGE3OTdmODZlODA4ODhiIl0sWyJkZjlkNzBhNmI5ODc2Y2U1NDRjOTg1NjFmNGJlNGY3MjU0NDJlNmQyYjczN2Q5YzkxYTgzMjE3''@;'; put 'put ''MjRjZTA5NjNmIiwiNTVlYjJkYWZkODRkNmNjZDVmODYyYjc4NWRjMzlkNGFiMTU3MjIyNzIwZWY5ZGEyMTdiOGM0NWNmMmJhMjQxNyJdLFsiNWVkZDVjYzIzYzUxZTg3YTQ5N2NhODE1ZDVkY2UwZjhhYjUyNTU0Zjg0OWVkODk5NWRlNjRjNWYzNGNlNzE0MyIsImVmYWU5YzhkYmMxNDEzMDY2''@;'; put 'put ''MWU4Y2VjMDMwYzg5YWQwYzEzYzY2YzBkMTdhMjkwNWNkYzcwNmFiNzM5OWE4NjgiXSxbIjI5MDc5OGMyYjY0NzY4MzBkYTEyZmUwMjI4N2U5ZTc3N2FhM2ZiYTFjMzU1YjE3YTcyMmQzNjJmODQ2MTRmYmEiLCJlMzhkYTc2ZGNkNDQwNjIxOTg4ZDAwYmNmNzlhZjI1ZDViMjljMDk0ZGIyYTIz''@;'; put 'put ''MTQ2ZDAwM2FmZDQxOTQzZTdhIl0sWyJhZjNjNDIzYTk1ZDlmNWIzMDU0NzU0ZWZhMTUwYWMzOWNkMjk1NTJmZTM2MDI1NzM2MmRmZGVjZWY0MDUzYjQ1IiwiZjk4YTNmZDgzMWViMmI3NDlhOTNiMGU2ZjM1Y2ZiNDBjOGNkNWFhNjY3YTE1NTgxYmMyZmVkZWQ0OThmZDljNiJdLFsiNzY2ZGJi''@;'; put 'put ''MjRkMTM0ZTc0NWNjY2FhMjhjOTliZjI3NDkwNmJiNjZiMjZkY2Y5OGRmOGQyZmVkNTBkODg0MjQ5YSIsIjc0NGIxMTUyZWFjYmU1ZTM4ZGNjODg3OTgwZGEzOGI4OTc1ODRhNjVmYTA2Y2VkZDJjOTI0Zjk3Y2JhYzU5OTYiXSxbIjU5ZGJmNDZmOGM5NDc1OWJhMjEyNzdjMzM3ODRmNDE2NDVm''@;'; put 'put ''N2I0NGY2YzU5NmE1OGNlOTJlNjY2MTkxYWJlM2UiLCJjNTM0YWQ0NDE3NWZiYzMwMGY0ZWE2Y2U2NDgzMDlhMDQyY2U3MzlhNzkxOTc5OGNkODVlMjE2YzRhMzA3ZjZlIl0sWyJmMTNhZGE5NTEwM2M0NTM3MzA1ZTY5MWU3NGU5YTRhOGRkNjQ3ZTcxMWE5NWU3M2NiNjJkYzYwMThjZmQ4N2I4''@;'; put 'put ''IiwiZTEzODE3YjQ0ZWUxNGRlNjYzYmY0YmM4MDgzNDFmMzI2OTQ5ZTIxYTZhNzVjMjU3MDc3ODQxOWJkYWY1NzMzZCJdLFsiNzc1NGI0ZmEwZThhY2VkMDZkNDE2N2EyYzU5Y2NhNGNkYTE4NjljMDZlYmFkZmI2NDg4NTUwMDE1YTg4NTIyYyIsIjMwZTkzZTg2NGU2NjlkODIyMjRiOTY3YzMw''@;'; put 'put ''MjBiOGZhOGQxZTRlMzUwYjZjYmNjNTM3YTQ4YjU3ODQxMTYzYTIiXSxbIjk0OGRjYWRmNTk5MGUwNDhhYTM4NzRkNDZhYmVmOWQ3MDE4NThmOTVkZTgwNDFkMmE2ODI4Yzk5ZTIyNjI1MTkiLCJlNDkxYTQyNTM3ZjZlNTk3ZDVkMjhhMzIyNGIxYmMyNWRmOTE1NGVmYmQyZWYxZDJjYmJhMmNh''@;'; put 'put ''ZTUzNDdkNTdlIl0sWyI3OTYyNDE0NDUwYzc2YzE2ODljN2I0OGY4MjAyZWMzN2ZiMjI0Y2Y1YWMwYmZhMTU3MDMyOGE4YTNkN2M3N2FiIiwiMTAwYjYxMGVjNGZmYjQ3NjBkNWMxZmMxMzNlZjZmNmIxMjUwN2EwNTFmMDRhYzU3NjBhZmE1YjI5ZGI4MzQzNyJdLFsiMzUxNDA4NzgzNDk2NGI1''@;'; put 'put ''NGIxNWIxNjA2NDRkOTE1NDg1YTE2OTc3MjI1Yjg4NDdiYjBkZDA4NTEzN2VjNDdjYSIsImVmMGFmYmIyMDU2MjA1NDQ4ZTE2NTJjNDhlODEyN2ZjNjAzOWU3N2MxNWMyMzc4YjdlN2QxNWEwZGUyOTMzMTEiXSxbImQzY2MzMGFkNmI0ODNlNGJjNzljZTJjOWRkOGJjNTQ5OTNlOTQ3ZWI4ZGY3''@;'; put 'put ''ODdiNDQyOTQzZDNmN2I1MjdlYWYiLCI4YjM3OGEyMmQ4MjcyNzhkODljNWU5YmU4Zjk1MDhhZTNjMmFkNDYyOTAzNTg2MzBhZmIzNGRiMDRlZWRlMGE0Il0sWyIxNjI0ZDg0NzgwNzMyODYwY2UxYzc4ZmNiZmVmZTA4YjJiMjk4MjNkYjkxM2Y2NDkzOTc1YmEwZmY0ODQ3NjEwIiwiNjg2NTFj''@;'; put 'put ''ZjliNmRhOTAzZTA5MTQ0NDhjNmNkOWQ0Y2E4OTY4NzhmNTI4MmJlNGM4Y2MwNmUyYTQwNDA3ODU3NSJdLFsiNzMzY2U4MGRhOTU1YThhMjY5MDJjOTU2MzNlNjJhOTg1MTkyNDc0YjVhZjIwN2RhNmRmN2I0ZmQ1ZmM2MWNkNCIsImY1NDM1YTJiZDJiYWRmN2Q0ODVhNGQ4YjhkYjlmY2NlM2Ux''@;'; put 'put ''ZWY4ZTAyMDFlNDU3OGM1NDY3M2JjMWRjNWVhMWQiXSxbIjE1ZDk0NDEyNTQ5NDUwNjRjZjFhMWMzM2JiZDNiNDlmODk2NmM1MDkyMTcxZTY5OWVmMjU4ZGZhYjgxYzA0NWMiLCJkNTZlYjMwYjY5NDYzZTcyMzRmNTEzN2I3M2I4NDE3NzQzNDgwMGJhY2ViZmM2ODVmYzM3YmJlOWVmZTQwNzBk''@;'; put 'put ''Il0sWyJhMWQwZmNmMmVjOWRlNjc1YjYxMjEzNmU1Y2U3MGQyNzFjMjE0MTdjOWQyYjhhYWFhYzEzODU5OWQwNzE3OTQwIiwiZWRkNzdmNTBiY2I1YTNjYWIyZTkwNzM3MzA5NjY3ZjI2NDE0NjJhNTQwNzBmM2Q1MTkyMTJkMzljMTk3YTYyOSJdLFsiZTIyZmJlMTVjMGFmOGNjYzU3ODBjMDcz''@;'; put 'put ''NWY4NGRiZTlhNzkwYmFkZWU4MjQ1YzA2YzdjYTM3MzMxY2IzNjk4MCIsImE4NTViYWJhZDVjZDYwYzg4YjQzMGE2OWY1M2ExYTdhMzgyODkxNTQ5NjQ3OTliZTQzZDA2ZDc3ZDMxZGEwNiJdLFsiMzExMDkxZGQ5ODYwZThlMjBlZTEzNDczYzExNTVmNWY2OTYzNWUzOTQ3MDRlYWE3NDAwOTQ1''@;'; put 'put ''MjI0NmNmYTliMyIsIjY2ZGI2NTZmODdkMWYwNGZmZmQxZjA0Nzg4YzA2ODMwODcxZWM1YTY0ZmVlZTY4NWJkODBmMGIxMjg2ZDgzNzQiXSxbIjM0YzFmZDA0ZDMwMWJlODliMzFjMDQ0MmQzZTZhYzI0ODgzOTI4YjQ1YTkzNDA3ODE4NjdkNDIzMmVjMmRiZGYiLCI5NDE0Njg1ZTk3YjFiNTk1''@;'; put 'put ''NGJkNDZmNzMwMTc0MTM2ZDU3ZjFjZWViNDg3NDQzZGM1MzIxODU3YmE3M2FiZWUiXSxbImYyMTllYTVkNmI1NDcwMWMxYzE0ZGU1YjU1N2ViNDJhOGQxM2YzYWJiY2QwOGFmZmNjMmE1ZTZiMDQ5YjhkNjMiLCI0Y2I5NTk1N2U4M2Q0MGIwZjczYWY0NTQ0Y2NjZjZiMWY0YjA4ZDNjMDdiMjdm''@;'; put 'put ''YjhkOGMyOTYyYTQwMDc2NmQxIl0sWyJkN2I4NzQwZjc0YThmYmFhYjFmNjgzZGI4ZjQ1ZGUyNjU0M2E1NDkwYmNhNjI3MDg3MjM2OTEyNDY5YTBiNDQ4IiwiZmE3Nzk2ODEyOGQ5YzkyZWUxMDEwZjMzN2FkNDcxN2VmZjE1ZGI1ZWQzYzA0OWIzNDExZTAzMTVlYWE0NTkzYiJdLFsiMzJkMzFj''@;'; put 'put ''MjIyZjhmNmYwZWY4NmY3Yzk4ZDNhMzMzNWVhZDViY2QzMmFiZGQ5NDI4OWZlNGQzMDkxYWE4MjRiZiIsIjVmMzAzMmY1ODkyMTU2ZTM5Y2NkM2Q3OTE1YjllMWRhMmU2ZGFjOWU2ZjI2ZTk2MTExOGQxNGI4NDYyZTE2NjEiXSxbIjc0NjFmMzcxOTE0YWIzMjY3MTA0NWExNTVkOTgzMWVhODc5''@;'; put 'put ''M2Q3N2NkNTk1OTJjNDM0MGY4NmNiYzE4MzQ3YjUiLCI4ZWMwYmEyMzhiOTZiZWMwY2JkZGRjYWUwYWE0NDI1NDJlZWUxZmY1MGM5ODZlYTZiMzk4NDdiM2NjMDkyZmY2Il0sWyJlZTA3OWFkYjFkZjE4NjAwNzQzNTZhMjVhYTM4MjA2YTZkNzE2YjJjM2U2NzQ1M2QyODc2OThiYWQ3YjJiMmQ2''@;'; put 'put ''IiwiOGRjMjQxMmFhZmUzYmU1YzRjNWYzN2UwZWNjNWY5ZjZhNDQ2OTg5YWYwNGM0ZTI1ZWJhYWM0NzllYzFjOGMxZSJdLFsiMTZlYzkzZTQ0N2VjODNmMDQ2N2IxODMwMmVlNjIwZjdlNjVkZTMzMTg3NGM5ZGM3MmJmZDg2MTZiYTlkYTZiNSIsIjVlNDYzMTE1MGU2MmZiNDBkMGU4YzJhN2Nh''@;'; put 'put ''NTgwNGEzOWQ1ODE4NmE1MGU0OTcxMzk2MjY3NzhlMjViMDY3NGQiXSxbImVhYTVmOTgwYzI0NWY2ZjAzODk3ODI5MGFmYTcwYjZiZDg4NTU4OTdmOThiNmFhNDg1Yjk2MDY1ZDUzN2JkOTkiLCJmNjVmNWQzZTI5MmMyZTA4MTlhNTI4MzkxYzk5NDYyNGQ3ODQ4NjlkN2U2ZWE2N2ZiMTgwNDEw''@;'; put 'put ''MjRlZGMwN2RjIl0sWyI3OGM5NDA3NTQ0YWMxMzI2OTJlZTE5MTBhMDI0Mzk5NThhZTA0ODc3MTUxMzQyZWE5NmM0YjZiMzVhNDlmNTEiLCJmM2UwMzE5MTY5ZWI5Yjg1ZDU0MDQ3OTU1MzlhNWU2OGZhMWZiZDU4M2MwNjRkMjQ2MmI2NzVmMTk0YTNkZGI0Il0sWyI0OTRmNGJlMjE5YTFhNzcw''@;'; put 'put ''MTZkY2Q4Mzg0MzFhZWEwMDAxY2RjOGFlN2E2ZmM2ODg3MjY1NzhkOTcwMjg1N2E1IiwiNDIyNDJhOTY5MjgzYTVmMzM5YmE3ZjA3NWUzNmJhMmFmOTI1Y2UzMGQ3NjdlZDZlNTVmNGIwMzE4ODBkNTYyYyJdLFsiYTU5OGE4MDMwZGE2ZDg2YzZiYzdmMmY1MTQ0ZWE1NDlkMjgyMTFlYTU4ZmFh''@;'; put 'put ''NzBlYmY0YzFlNjY1YzFmZTliNSIsIjIwNGI1ZDZmODQ4MjJjMzA3ZTRiNGE3MTQwNzM3YWVjMjNmYzYzYjY1YjM1Zjg2YTEwMDI2ZGJkMmQ4NjRlNmIiXSxbImM0MTkxNjM2NWFiYjJiNWQwOTE5MmY1ZjJkYmVhZmVjMjA4ZjAyMGYxMjU3MGExODRkYmFkYzNlNTg1OTU5OTciLCI0ZjE0MzUx''@;'; put 'put ''ZDAwODdlZmE0OWQyNDViMzI4OTg0OTg5ZDVjYWY5NDUwZjM0YmZjMGVkMTZlOTZiNThmYTk5MTMiXSxbIjg0MWQ2MDYzYTU4NmZhNDc1YTcyNDYwNGRhMDNiYzViOTJhMmUwZDJlMGEzNmFjZmU0YzczYTU1MTQ3NDI4ODEiLCI3Mzg2N2Y1OWMwNjU5ZTgxOTA0ZjlhMWM3NTQzNjk4ZTYyNTYy''@;'; put 'put ''ZDY3NDRjMTY5Y2U3YTM2ZGUwMWE4ZDYxNTQiXSxbIjVlOTViYjM5OWE2OTcxZDM3NjAyNjk0N2Y4OWJkZTJmMjgyYjMzODEwOTI4YmU0ZGVkMTEyYWM0ZDcwZTIwZDUiLCIzOWYyM2YzNjY4MDkwODViZWViZmM3MTE4MTMxMzc3NWE5OWM5YWVkN2Q4YmEzOGIxNjEzODRjNzQ2MDEyODY1Il0s''@;'; put 'put ''WyIzNmU0NjQxYTUzOTQ4ZmQ0NzZjMzlmOGE5OWZkOTc0ZTVlYzA3NTY0YjUzMTVkOGJmOTk0NzFiY2EwZWYyZjY2IiwiZDI0MjRiMWIxYWJlNGViODE2NDIyN2IwODVjOWFhOTQ1NmVhMTM0OTNmZDU2M2UwNmZkNTFjZjU2OTRjNzhmYyJdLFsiMzM2NTgxZWE3YmZiYmIyOTBjMTkxYTJmNTA3''@;'; put 'put ''YTQxY2Y1NjQzODQyMTcwZTkxNGZhZWFiMjdjMmM1NzlmNzI2IiwiZWFkMTIxNjg1OTVmZTFiZTk5MjUyMTI5YjZlNTZiMzM5MWY3YWIxNDEwY2QxZTBlZjNkY2RjYWJkMmZkYTIyNCJdLFsiOGFiODk4MTZkYWRmZDZiNmExZjI2MzRmY2YwMGVjODQwMzc4MTAyNWVkNjg5MGM0ODQ5NzQyNzA2''@;'; put 'put ''YmQ0M2VkZSIsIjZmZGNlZjA5ZjJmNmQwYTA0NGU2NTRhZWY2MjQxMzZmNTAzZDQ1OWMzZTg5ODQ1ODU4YTQ3YTkxMjljZGQyNGUiXSxbIjFlMzNmMWE3NDZjOWM1Nzc4MTMzMzQ0ZDkyOTlmY2FhMjBiMDkzOGU4YWNmZjI1NDRiYjQwMjg0YjhjNWZiOTQiLCI2MDY2MDI1N2RkMTFiM2FhOWM4''@;'; put 'put ''ZWQ2MThkMjRlZGZmMjMwNmQzMjBmMWQwMzAxMGUzM2E3ZDIwNTdmM2IzYjYiXSxbIjg1YjdjMWRjYjNjZWMxYjdlZTdmMzBkZWQ3OWRkMjBhMGVkMWY0Y2MxOGNiY2ZjZmE0MTAzNjFmZDhmMDhmMzEiLCIzZDk4YTljZGQwMjZkZDQzZjM5MDQ4ZjI1YTg4NDdmNGZjYWZhZDE4OTVkN2E2MzNj''@;'; put 'put ''NmZlZDNjMzVlOTk5NTExIl0sWyIyOWRmOWZiZDhkOWU0NjUwOTI3NWY0YjEyNWQ2ZDQ1ZDdmYmU5YTNiODc4YTdhZjg3MmEyODAwNjYxYWM1ZjUxIiwiYjRjNGZlOTljNzc1YTYwNmUyZDg4NjIxNzkxMzlmZmRhNjFkYzg2MWMwMTllNTVjZDI4NzZlYjJhMjdkODRiIl0sWyJhMGIxY2FlMDZi''@;'; put 'put ''MGE4NDdhM2ZlYTZlNjcxYWFmOGFkZmRmZTU4Y2EyZjc2ODEwNWM4MDgyYjJlNDQ5ZmNlMjUyIiwiYWU0MzQxMDJlZGRlMDk1OGVjNGIxOWQ5MTdhNmEyOGU2YjcyZGExODM0YWZmMGU2NTBmMDQ5NTAzYTI5NmNmMiJdLFsiNGU4Y2VhZmI5YjNlOWExMzZkYzdmZjY3ZTg0MDI5NWI0OTlkZmIz''@;'; put 'put ''YjIxMzNlNGJhMTEzZjJlNGMwZTEyMWU1IiwiY2YyMTc0MTE4YzhiNmQ3YTRiNDhmNmQ1MzRjZTVjNzk0MjJjMDg2YTYzNDYwNTAyYjgyN2NlNjJhMzI2NjgzYyJdLFsiZDI0YTQ0ZTA0N2UxOWI2ZjVhZmI4MWM3Y2EyZjY5MDgwYTUwNzY2ODlhMDEwOTE5ZjQyNzI1YzJiNzg5YTMzYiIsIjZm''@;'; put 'put ''YjhkNTU5MWI0NjZmOGZjNjNkYjUwZjFjMGYxYzY5MDEzZjk5Njg4N2I4MjQ0ZDJjZGVjNDE3YWZlYThmYTMiXSxbImVhMDE2MDZhN2E2YzljZGQyNDlmZGZjZmFjYjk5NTg0MDAxZWRkMjhhYmJhYjc3YjUxMDRlOThlOGUzYjM1ZDQiLCIzMjJhZjQ5MDhjNzMxMmIwY2ZiZmUzNjlmN2E3YjNj''@;'; put 'put ''ZGI3ZDQ0OTRiYzI4MjM3MDBjZmQ2NTIxODhhM2VhOThkIl0sWyJhZjhhZGRiZjJiNjYxYzhhNmM2MzI4NjU1ZWI5NjY1MTI1MjAwN2Q4YzVlYTMxYmU0YWQxOTZkZThjZTIxMzFmIiwiNjc0OWU2N2MwMjliODVmNTJhMDM0ZWFmZDA5NjgzNmIyNTIwODE4NjgwZTI2YWM4ZjNkZmJjZGI3MTc0''@;'; put 'put ''OTcwMCJdLFsiZTNhZTE5NzQ1NjZjYTA2Y2M1MTZkNDdlMGZiMTY1YTY3NGEzZGFiY2ZjYTE1ZTcyMmYwZTM0NTBmNDU4ODkiLCIyYWVhYmU3ZTQ1MzE1MTAxMTYyMTdmMDdiZjRkMDczMDBkZTk3ZTQ4NzRmODFmNTMzNDIwYTcyZWViMGJkNmE0Il0sWyI1OTFlZTM1NTMxM2Q5OTcyMWNmNjk5''@;'; put 'put ''M2ZmZWQxZTNlMzAxOTkzZmYzZWQyNTg4MDIwNzVlYThjZWQzOTdlMjQ2IiwiYjBlYTU1OGExMTNjMzBiZWE2MGZjNDc3NTQ2MGM3OTAxZmYwYjA1M2QyNWNhMmJkZWVlOThmMWE0YmU1ZDE5NiJdLFsiMTEzOTZkNTVmZGE1NGM0OWYxOWFhOTczMThkOGRhNjFmYTg1ODRlNDdiMDg0OTQ1MDc3''@;'; put 'put ''Y2YwMzI1NWI1Mjk4NCIsIjk5OGM3NGE4Y2Q0NWFjMDEyODlkNTgzM2E3YmViNDc0NGZmNTM2YjAxYjI1N2JlNGM1NzY3YmVhOTNlYTU3YTQiXSxbIjNjNWQyYTFiYTM5YzVhMTc5MDAwMDczOGM5ZTBjNDBiOGRjZGZkNTQ2ODc1NGI2NDA1NTQwMTU3ZTAxN2FhN2EiLCJiMjI4NDI3OTk5NWEz''@;'; put 'put ''NGUyZjlkNGRlNzM5NmZjMThiODBmOWI4YjlmZGQyNzBmNjY2MWY3OWNhNGM4MWJkMjU3Il0sWyJjYzg3MDRiOGE2MGEwZGVmYTNhOTlhNzI5OWYyZTljM2ZiYzM5NWFmYjA0YWMwNzg0MjVlZjhhMTc5M2NjMDMwIiwiYmRkNDYwMzlmZWVkMTc4ODFkMWUwODYyZGIzNDdmOGNmMzk1Yjc0ZmM0''@;'; put 'put ''YmNkYzRlOTQwYjc0ZTNhYzFmMWIxMyJdLFsiYzUzM2U0ZjdlYTg1NTVhYWNkOTc3N2FjNWNhZDI5Yjk3ZGQ0ZGVmY2NjNTNlZTdlYTIwNDExOWIyODg5YjE5NyIsIjZmMGEyNTZiYzVlZmRmNDI5YTJmYjYyNDJmMWE0M2EyZDliOTI1YmI0YTRiM2EyNmJiOGUwZjQ1ZWI1OTYwOTYiXSxbImMx''@;'; put 'put ''NGY4ZjJjY2IyN2Q2ZjEwOWY2ZDA4ZDAzY2M5NmE2OWJhOGMzNGVlYzA3YmJjZjU2NmQ0OGUzM2RhNjU5MyIsImMzNTlkNjkyM2JiMzk4ZjdmZDQ0NzNlMTZmZTFjMjg0NzViNzQwZGQwOTgwNzVlNmMwZTg2NDkxMTNkYzNhMzgiXSxbImE2Y2JjMzA0NmJjNmE0NTBiYWMyNDc4OWZhMTcxMTVh''@;'; put 'put ''NGM5NzM5ZWQ3NWY4ZjIxY2U0NDFmNzJlMGI5MGU2ZWYiLCIyMWFlN2Y0NjgwZTg4OWJiMTMwNjE5ZTJjMGY5NWEzNjBjZWI1NzNjNzA2MDMxMzk4NjJhZmQ2MTdmYTliOWYiXSxbIjM0N2Q2ZDlhMDJjNDg5MjdlYmZiODZjMTM1OWIxY2FmMTMwYTNjMDI2N2QxMWNlNjM0NGIzOWY5OWQ0M2Nj''@;'; put 'put ''MzgiLCI2MGVhN2Y2MWEzNTM1MjRkMWM5ODdmNmVjZWM5MmYwODZkNTY1YWI2ODc4NzBjYjEyNjg5ZmYxZTMxYzc0NDQ4Il0sWyJkYTY1NDVkMjE4MWRiOGQ5ODNmN2RjYjM3NWVmNTg2NmQ0N2M2N2IxYmYzMWM4Y2Y4NTVlZjc0MzdiNzI2NTZhIiwiNDliOTY3MTVhYjY4NzhhNzllNzhmMDdj''@;'; put 'put ''ZTU2ODBjNWQ2NjczMDUxYjQ5MzViZDg5N2ZlYTgyNGI3N2RjMjA4YSJdLFsiYzQwNzQ3Y2M5ZDAxMmNiMWExM2I4MTQ4MzA5YzZkZTdlYzI1ZDY5NDVkNjU3MTQ2YjlkNTk5NGI4ZmViMTExMSIsIjVjYTU2MDc1M2JlMmExMmZjNmRlNmNhZjJjYjQ4OTU2NWRiOTM2MTU2Yjk1MTRlMWJiNWU4''@;'; put 'put ''MzAzN2UwZmEyZDQiXSxbIjRlNDJjOGVjODJjOTk3OThjY2YzYTYxMGJlODcwZTc4MzM4YzdmNzEzMzQ4YmQzNGM4MjAzZWY0MDM3ZjM1MDIiLCI3NTcxZDc0ZWU1ZTBmYjkyYTdhOGIzM2EwNzc4MzM0MWE1NDkyMTQ0Y2M1NGJjYzQwYTk0NDczNjkzNjA2NDM3Il0sWyIzNzc1YWI3MDg5YmM2''@;'; put 'put ''YWY4MjNhYmEyZTFhZjcwYjIzNmQyNTFjYWRiMGM4Njc0MzI4NzUyMmExYjNiMGRlZGVhIiwiYmU1MmQxMDdiY2ZhMDlkOGJjYjk3MzZhODI4Y2ZhN2ZhYzhkYjE3YmY3YTc2YTJjNDJhZDk2MTQwOTAxOGNmNyJdLFsiY2VlMzFjYmY3ZTM0ZWMzNzlkOTRmYjgxNGQzZDc3NWFkOTU0NTk1ZDEz''@;'; put 'put ''MTRiYTg4NDY5NTllM2U4MmY3NGUyNiIsIjhmZDY0YTE0YzA2YjU4OWMyNmI5NDdhZTJiY2Y2YmZhMDE0OWVmMGJlMTRlZDRkODBmNDQ4YTAxYzQzYjFjNmQiXSxbImI0ZjllYWVhMDliNjkxNzYxOWY2ZWE2YTRlYjU0NjRlZmRkYjU4ZmQ0NWIxZWJlZmNkYzFhMDFkMDhiNDc5ODYiLCIzOWU1''@;'; put 'put ''Yzk5MjViNWE1NGIwNzQzM2E0ZjE4YzYxNzI2ZjhiYjEzMWMwMTJjYTU0MmViMjRhOGFjMDcyMDA2ODJhIl0sWyJkNDI2M2RmYzNkMmRmOTIzYTAxNzlhNDg5NjZkMzBjZTg0ZTI1MTVhZmMzZGNjYzFiNzc5MDc3OTJlYmNjNjBlIiwiNjJkZmFmMDdhMGY3OGZlYjMwZTMwZDYyOTU4NTNjZTE4''@;'; put 'put ''OWUxMjc3NjBhZDZjZjdmYWUxNjRlMTIyYTIwOGQ1NCJdLFsiNDg0NTc1MjQ4MjBmYTY1YTRmOGQzNWViNjkzMDg1N2MwMDMyYWNjMGE0YTJkZTQyMjIzM2VlZGE4OTc2MTJjNCIsIjI1YTc0OGFiMzY3OTc5ZDk4NzMzYzM4YTFmYTFjMmU3ZGM2Y2MwN2RiMmQ2MGE5YWU3YTc2YWFhNDliZDBm''@;'; put 'put ''NzciXSxbImRmZWVlZjE4ODExMDFmMmNiMTE2NDRmM2EyYWZkZmMyMDQ1ZTE5OTE5MTUyOTIzZjM2N2ExNzY3YzExY2NlZGEiLCJlY2ZiNzA1NmNmMWRlMDQyZjk0MjBiYWIzOTY3OTNjMGMzOTBiZGU3NGI0YmJkZmYxNmE4M2FlMDlhOWE3NTE3Il0sWyI2ZDdlZjZiMTc1NDNmODM3M2M1NzNm''@;'; put 'put ''NDRlMWYzODk4MzVkODliY2JjNjA2MmNlZDM2YzgyZGY4M2I4ZmFlODU5IiwiY2Q0NTBlYzMzNTQzODk4NmRmZWZhMTBjNTdmZWE5YmNjNTIxYTA5NTliMmQ4MGJiZjc0YjE5MGRjYTcxMmQxMCJdLFsiZTc1NjA1ZDU5MTAyYTVhMjY4NDUwMGQzYjk5MWYyZTNmM2M4OGI5MzIyNTU0NzAzNWFm''@;'; put 'put ''MjVhZjY2ZTA0NTQxZiIsImY1YzU0NzU0YThmNzFlZTU0MGI5YjQ4NzI4NDczZTMxNGY3MjlhYzUzMDhiMDY5MzgzNjA5OTBlMmJmYWQxMjUiXSxbImViOTg2NjBmNGM0ZGZhYTA2YTJiZTQ1M2Q1MDIwYmM5OWEwYzJlNjBhYmUzODg0NTdkZDQzZmVmYjFlZDYyMGMiLCI2Y2I5YTg4NzZkOWNi''@;'; put 'put ''ODUyMDYwOWFmM2FkZDI2Y2QyMGEwYTdjZDhhOTQxMTEzMWNlODVmNDQxMDAwOTkyMjNlIl0sWyIxM2U4N2IwMjdkODUxNGQzNTkzOWYyZTY4OTJiMTk5MjIxNTQ1OTY5NDE4ODgzMzZkYzM1NjNlM2I4ZGJhOTQyIiwiZmVmNWEzYzY4MDU5YTZkZWM1ZDYyNDExNGJmMWU5MWFhYzJiOWRhNTY4''@;'; put 'put ''ZDZhYmViMjU3MGQ1NTY0NmI4YWRmMSJdLFsiZWUxNjMwMjZlOWZkNmZlMDE3YzM4ZjA2YTViZTZmYzEyNTQyNGIzNzFjZTI3MDhlN2JmNDQ5MTY5MWU1NzY0YSIsIjFhY2IyNTBmMjU1ZGQ2MWM0M2Q5NGNjYzY3MGQwZjU4ZjQ5YWUzZmExNWI5NjYyM2U1NDMwZGEwYWQ2YzYyYjIiXSxbImIy''@;'; put 'put ''NjhmNWVmOWFkNTFlNGQ3OGRlM2E3NTBjMmRjODliMWU2MjZkNDM1MDU4Njc5OTk5MzJlNWRiMzNhZjNkODAiLCI1ZjMxMGQ0YjNjOTliOWViYjE5Zjc3ZDQxYzFkZWUwMThjZjBkMzRmZDQxOTE2MTQwMDNlOTQ1YTEyMTZlNDIzIl0sWyJmZjA3ZjMxMThhOWRmMDM1ZTlmYWQ4NWViNmM3YmZl''@;'; put 'put ''NDJiMDJmMDFjYTk5Y2VlYTNiZjdmZmRiYTkzYzQ3NTBkIiwiNDM4MTM2ZDYwM2U4NThhM2E1YzQ0MGMzOGVjY2JhZGRjMWQyOTQyMTE0ZTJlZGRkNDc0MGQwOThjZWQxZjBkOCJdLFsiOGQ4Yjk4NTVjN2MwNTJhMzQxNDZmZDIwZmZiNjU4YmVhNGI5ZjY5ZTBkODI1ZWJlYzE2ZThjM2NlMmI1''@;'; put 'put ''MjZhMSIsImNkYjU1OWVlZGMyZDc5ZjkyNmJhZjQ0ZmI4NGVhNGQ0NGJjZjUwZmVlNTFkN2NlYjMwZTJlN2Y0NjMwMzY3NTgiXSxbIjUyZGIwYjUzODRkZmJmMDViZmE5ZDQ3MmQ3YWUyNmRmZTRiODUxY2VjYTkxYjFlYmE1NDI2MzE4MGRhMzJiNjMiLCJjM2I5OTdkMDUwZWU1ZDQyM2ViYWY2''@;'; put 'put ''NmE2ZGI5ZjU3YjMxODBjOTAyODc1Njc5ZGU5MjRiNjlkODRhN2IzNzUiXSxbImU2MmY5NDkwZDNkNTFkYTYzOTVlZmQyNGU4MDkxOWNjN2QwZjI5YzNmM2ZhNDhjNmZmZjU0M2JlY2JkNDMzNTIiLCI2ZDg5YWQ3YmE0ODc2YjBiMjJjMmNhMjgwYzY4Mjg2MmYzNDJjODU5MWYxZGFmNTE3MGUw''@;'; put 'put ''N2JmZDljY2FmYTdkIl0sWyI3ZjMwZWEyNDc2YjM5OWI0OTU3NTA5Yzg4Zjc3ZDAxOTFhZmEyZmY1Y2I3YjE0ZmQ2ZDhlN2Q2NWFhYWIxMTkzIiwiY2E1ZWY3ZDRiMjMxYzk0YzNiMTUzODlhNWY2MzExZTlkYWZmN2JiNjdiMTAzZTk4ODBlZjRiZmY2MzdhY2FlYyJdLFsiNTA5OGZmMWUxZDlm''@;'; put 'put ''MTRmYjQ2YTIxMGZhZGE2YzkwM2ZlZjBmYjdiNGExZGQxZDlhYzYwYTAzNjE4MDBiN2EwMCIsIjk3MzExNDFkODFmYzhmODA4NGQzN2M2ZTc1NDIwMDZiM2VlMWI0MGQ2MGRmZTUzNjJhNWIxMzJmZDE3ZGRjMCJdLFsiMzJiNzhjN2RlOWVlNTEyYTcyODk1YmU2YjljYmVmYTZlMmYzYzRjY2Nl''@;'; put 'put ''NDQ1Yzk2YjlmMmM4MWUyNzc4YWQ1OCIsImVlMTg0OWY1MTNkZjcxZTMyZWZjMzg5NmVlMjgyNjBjNzNiYjgwNTQ3YWUyMjc1YmE0OTcyMzc3OTRjODc1M2MiXSxbImUyY2I3NGZkZGM4ZTlmYmNkMDc2ZWVmMmE3YzcyYjBjZTM3ZDUwZjA4MjY5ZGZjMDc0YjU4MTU1MDU0N2E0ZjciLCJkM2Fh''@;'; put 'put ''MmVkNzFjOWRkMjI0N2E2MmRmMDYyNzM2ZWIwYmFkZGVhOWUzNjEyMmQyYmU4NjQxYWJjYjAwNWNjNGE0Il0sWyI4NDM4NDQ3NTY2ZDRkN2JlZGFkYzI5OTQ5NmFiMzU3NDI2MDA5YTM1ZjIzNWNiMTQxYmUwZDk5Y2QxMGFlM2E4IiwiYzRlMTAyMDkxNjk4MGE0ZGE1ZDAxYWM1ZTZhZDMzMDcz''@;'; put 'put ''NGVmMGQ3OTA2NjMxYzRmMjM5MDQyNmIyZWRkNzkxZiJdLFsiNDE2MmQ0ODhiODk0MDIwMzliNTg0YzZmYzZjMzA4ODcwNTg3ZDljNDZmNjYwYjg3OGFiNjVjODJjNzExZDY3ZSIsIjY3MTYzZTkwMzIzNjI4OWY3NzZmMjJjMjVmYjhhM2FmYzE3MzJmMmI4NGI0ZTk1ZGJkYTQ3YWU1YTA4NTI2''@;'; put 'put ''NDkiXSxbIjNmYWQzZmE4NGNhZjBmMzRmMGY4OWJmZDJkY2Y1NGZjMTc1ZDc2N2FlYzNlNTA2ODRmM2JhNGE0YmY1ZjY4M2QiLCJjZDFiYzdjYjZjYzQwN2JiMmYwY2E2NDdjNzE4YTczMGNmNzE4NzJlN2QwZDJhNTNmYTIwZWZjZGZlNjE4MjYiXSxbIjY3NGYyNjAwYTMwMDdhMDA1NjhjMWE3''@;'; put 'put ''Y2UwNWQwODE2YzFmYjg0YmYxMzcwNzk4ZjFjNjk1MzJmYWViMWE4NmIiLCIyOTlkMjFmOTQxM2YzM2IzZWRmNDNiMjU3MDA0NTgwYjcwZGI1N2RhMGIxODIyNTllMDllZWNjNjllMGQzOGE1Il0sWyJkMzJmNGRhNTRhZGU3NGFiYjgxYjgxNWFkMWZiM2IyNjNkODJkNmM2OTI3MTRiY2ZmODdk''@;'; put 'put ''MjliZDVlZTlmMDhmIiwiZjk0MjllNzM4YjhlNTNiOTY4ZTk5MDE2YzA1OTcwNzc4MmUxNGY0NTM1MzU5ZDU4MmZjNDE2OTEwYjNlZWE4NyJdLFsiMzBlNGU2NzA0MzUzODU1NTZlNTkzNjU3MTM1ODQ1ZDM2ZmJiNjkzMWY3MmIwOGNiMWVkOTU0ZjFlM2NlM2ZmNiIsIjQ2MmY5YmNlNjE5ODk4''@;'; put 'put ''NjM4NDk5MzUwMTEzYmJjOWIxMGE4NzhkMzVkYTcwNzQwZGM2OTVhNTU5ZWI4OGRiN2IiXSxbImJlMjA2MjAwM2M1MWNjMzAwNDY4MjkwNDMzMGU0ZGVlN2YzZGNkMTBiMDFlNTgwYmYxOTcxYjA0ZDRjYWQyOTciLCI2MjE4OGJjNDlkNjFlNTQyODU3M2Q0OGE3NGUxYzY1NWIxYzYxMDkwOTA1''@;'; put 'put ''NjgyYTBkNTU1OGVkNzJkY2NiOWJjIl0sWyI5MzE0NDQyM2FjZTM0NTFlZDI5ZTBmYjlhYzJhZjIxMWNiNmU4NGE2MDFkZjU5OTNjNDE5ODU5ZmZmNWRmMDRhIiwiN2MxMGRmYjE2NGMzNDI1ZjVjNzFhM2Y5ZDc5OTIwMzhmMTA2NTIyNGY3MmJiOWQxZDkwMmE2ZDEzMDM3YjQ3YyJdLFsiYjAx''@;'; put 'put ''NWY4MDQ0ZjVmY2JkY2YyMWNhMjZkNmMzNGZiODE5NzgyOTIwNWM3YjdkMmE3Y2I2NjQxOGMxNTdiMTEyYyIsImFiOGMxZTA4NmQwNGU4MTM3NDRhNjU1YjJkZjhkNWY4M2IzY2RjNmZhYTMwODhjMWQzYWVhMTQ1NGUzYTFkNWYiXSxbImQ1ZTllMWRhNjQ5ZDk3ZDg5ZTQ4NjgxMTdhNDY1YTNh''@;'; put 'put ''NGY4YTE4ZGU1N2ExNDBkMzZiM2YyYWYzNDFhMjFiNTIiLCI0Y2IwNDQzN2YzOTFlZDczMTExYTEzY2MxZDRkZDBkYjE2OTM0NjVjMjI0MDQ4MGQ4OTU1ZTg1OTJmMjc0NDdhIl0sWyJkM2FlNDEwNDdkZDdjYTA2NWRiZjhlZDc3Yjk5MjQzOTk4MzAwNWNkNzJlMTZkNmY5OTZhNTMxNmQzNjk2''@;'; put 'put ''NmJiIiwiYmQxYWViMjFhZDIyZWJiMjJhMTBmMDMwMzQxN2M2ZDk2NGY4Y2RkN2RmMGFjYTYxNGIxMGRjMTRkMTI1YWM0NiJdLFsiNDYzZTI3NjNkODg1Zjk1OGZjNjZjZGQyMjgwMGYwYTQ4NzE5N2QwYTgyZTM3N2I0OWY4MGFmODdjODk3YjA2NSIsImJmZWZhY2RiMGU1ZDBmZDdkZjNhMzEx''@;'; put 'put ''YTk0ZGUwNjJiMjZiODBjNjFmYmM5NzUwOGI3OTk5MjY3MWVmN2NhN2YiXSxbIjc5ODVmZGZkMTI3YzA1NjdjNmY1M2VjMWJiNjNlYzMxNThlNTk3YzQwYmZlNzQ3YzgzY2RkZmM5MTA2NDE5MTciLCI2MDNjMTJkYWYzZDk4NjJlZjJiMjVmZTFkZTI4OWFlZDI0ZWQyOTFlMGVjNjcwODcwM2E1''@;'; put 'put ''YmQ1NjdmMzJlZDAzIl0sWyI3NGExYWQ2YjVmNzZlMzlkYjJkZDI0OTQxMGVhYzdmOTllNzRjNTljYjgzZDJkMGVkNWZmMTU0M2RhNzcwM2U5IiwiY2M2MTU3ZWYxOGM5YzYzY2Q2MTkzZDgzNjMxYmJlYTAwOTNlMDk2ODk0MmU4YzMzZDU3MzdmZDc5MGUwZGIwOCJdLFsiMzA2ODJhNTA3MDMz''@;'; put 'put ''NzVmNjAyZDQxNjY2NGJhMTliN2ZjOWJhYjQyYzcyNzQ3NDYzYTcxZDA4OTZiMjJmNmRhMyIsIjU1M2UwNGY2YjAxOGI0ZmE2YzhmMzllN2YzMTFkMzE3NjI5MGQwZTBmMTljYTczZjE3NzE0ZDk5NzdhMjJmZjgiXSxbIjllMjE1OGYwZDdjMGQ1ZjI2YzM3OTFlZmVmYTc5NTk3NjU0ZTdhMmIy''@;'; put 'put ''NDY0ZjUyYjFlZTZjMTM0Nzc2OWVmNTciLCI3MTJmY2RkMWI5MDUzZjA5MDAzYTM0ODFmYTc3NjJlOWZmZDdjOGVmMzVhMzg1MDllMmZiZjI2MjkwMDgzNzMiXSxbIjE3NmUyNjk4OWE0M2M5Y2ZlYmE0MDI5YzIwMjUzOGMyODE3MmU1NjZlM2M0ZmNlNzMyMjg1N2YzYmUzMjdkNjYiLCJlZDhj''@;'; put 'put ''YzlkMDRiMjllYjg3N2QyNzBiNDg3OGRjNDNjMTlhZWZkMzFmNGVlZTA5ZWU3YjQ3ODM0YzFmYTRiMWMzIl0sWyI3NWQ0NmVmZWEzNzcxZTZlNjhhYmI4OWExM2FkNzQ3ZWNmMTg5MjM5M2RmYzRmMWI3MDA0Nzg4YzUwMzc0ZGE4IiwiOTg1MjM5MGE5OTUwNzY3OWZkMGI4NmZkMmIzOWE4Njhk''@;'; put 'put ''N2VmYzIyMTUxMzQ2ZTFhM2NhNDcyNjU4NmE2YmVkOCJdLFsiODA5YTIwYzY3ZDY0OTAwZmZiNjk4YzRjODI1ZjZkNWYyMzEwZmIwNDUxYzg2OTM0NWI3MzE5ZjY0NTYwNTcyMSIsIjllOTk0OTgwZDk5MTdlMjJiNzZiMDYxOTI3ZmEwNDE0M2QwOTZjY2M1NDk2M2U2YTVlYmZhNWYzZjhlMjg2''@;'; put 'put ''YzEiXSxbIjFiMzg5MDNhNDNmN2YxMTRlZDQ1MDBiNGVhYzcwODNmZGVmZWNlMWNmMjljNjM1MjhkNTYzNDQ2Zjk3MmMxODAiLCI0MDM2ZWRjOTMxYTYwYWU4ODkzNTNmNzdmZDUzZGU0YTI3MDhiMjZiNmY1ZGE3MmFkMzM5NDExOWRhZjQwOGY5Il1dfX19LDYxOTcwOihYZSxKZSxMKT0+eyJ1''@;'; put 'put ''c2Ugc3RyaWN0Ijt2YXIgbWU9SmUsQj1MKDE3NDMzKSxFPUwoMzIzOTEpLEVlPUwoNTgxOTUpO21lLmFzc2VydD1FLG1lLnRvQXJyYXk9RWUudG9BcnJheSxtZS56ZXJvMj1FZS56ZXJvMixtZS50b0hleD1FZS50b0hleCxtZS5lbmNvZGU9RWUuZW5jb2RlLG1lLmdldE5BRj1mdW5jdGlvbiBV''@;'; put 'put ''KFksVyxOKXt2YXIgdGU9bmV3IEFycmF5KE1hdGgubWF4KFkuYml0TGVuZ3RoKCksTikrMSk7dGUuZmlsbCgwKTtmb3IodmFyIEs9MTw8VysxLEo9WS5jbG9uZSgpLHNlPTA7c2U8dGUubGVuZ3RoO3NlKyspe3ZhciBvZSxjZT1KLmFuZGxuKEstMSk7Si5pc09kZCgpP0ouaXN1Ym4ob2U9Y2U+''@;'; put 'put ''KEs+PjEpLTE/KEs+PjEpLWNlOmNlKTpvZT0wLHRlW3NlXT1vZSxKLml1c2hybigxKX1yZXR1cm4gdGV9LG1lLmdldEpTRj1mdW5jdGlvbiBRKFksVyl7dmFyIE49W1tdLFtdXTtZPVkuY2xvbmUoKSxXPVcuY2xvbmUoKTtmb3IodmFyIEosdGU9MCxLPTA7WS5jbXBuKC10ZSk+MHx8Vy5jbXBu''@;'; put 'put ''KC1LKT4wOyl7dmFyIGNlLGRlLHNlPVkuYW5kbG4oMykrdGUmMyxvZT1XLmFuZGxuKDMpK0smMzszPT09c2UmJihzZT0tMSksMz09PW9lJiYob2U9LTEpLGNlPTA9PSgxJnNlKT8wOjMhPShKPVkuYW5kbG4oNykrdGUmNykmJjUhPT1KfHwyIT09b2U/c2U6LXNlLE5bMF0ucHVzaChjZSksZGU9''@;'; put 'put ''MD09KDEmb2UpPzA6MyE9KEo9Vy5hbmRsbig3KStLJjcpJiY1IT09Snx8MiE9PXNlP29lOi1vZSxOWzFdLnB1c2goZGUpLDIqdGU9PT1jZSsxJiYodGU9MS10ZSksMipLPT09ZGUrMSYmKEs9MS1LKSxZLml1c2hybigxKSxXLml1c2hybigxKX1yZXR1cm4gTn0sbWUuY2FjaGVkUHJvcGVydHk9''@;'; put 'put ''ZnVuY3Rpb24gaihZLFcsTil7dmFyIHRlPSJfIitXO1kucHJvdG90eXBlW1ddPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXNbdGVdP3RoaXNbdGVdOnRoaXNbdGVdPU4uY2FsbCh0aGlzKX19LG1lLnBhcnNlQnl0ZXM9ZnVuY3Rpb24gcmUoWSl7cmV0dXJuInN0cmluZyI9PXR5cGVv''@;'; put 'put ''ZiBZP21lLnRvQXJyYXkoWSwiaGV4Iik6WX0sbWUuaW50RnJvbUxFPWZ1bmN0aW9uIGFlKFkpe3JldHVybiBuZXcgQihZLCJoZXgiLCJsZSIpfX0sMTc0MzM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGhlLE8pe2lmKCFoZSl0aHJv''@;'; put 'put ''dyBuZXcgRXJyb3IoT3x8IkFzc2VydGlvbiBmYWlsZWQiKX1mdW5jdGlvbiBFZShoZSxPKXtoZS5zdXBlcl89Tzt2YXIgej1mdW5jdGlvbigpe307ei5wcm90b3R5cGU9Ty5wcm90b3R5cGUsaGUucHJvdG90eXBlPW5ldyB6LGhlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1oZX1mdW5jdGlvbiBV''@;'; put 'put ''KGhlLE8seil7aWYoVS5pc0JOKGhlKSlyZXR1cm4gaGU7dGhpcy5uZWdhdGl2ZT0wLHRoaXMud29yZHM9bnVsbCx0aGlzLmxlbmd0aD0wLHRoaXMucmVkPW51bGwsbnVsbCE9PWhlJiYoKCJsZSI9PT1PfHwiYmUiPT09TykmJih6PU8sTz0xMCksdGhpcy5faW5pdChoZXx8MCxPfHwxMCx6fHwi''@;'; put 'put ''YmUiKSl9dmFyIFE7Im9iamVjdCI9PXR5cGVvZiBtZT9tZS5leHBvcnRzPVU6Qi5CTj1VLFUuQk49VSxVLndvcmRTaXplPTI2O3RyeXtRPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ2b2lkIDAhPT13aW5kb3cuQnVmZmVyP3dpbmRvdy5CdWZmZXI6TCg4NTU2OCkuQnVmZmVyfWNhdGNo''@;'; put 'put ''KGhlKXt9ZnVuY3Rpb24gaihoZSxPKXt2YXIgej1oZS5jaGFyQ29kZUF0KE8pO3JldHVybiB6Pj02NSYmejw9NzA/ei01NTp6Pj05NyYmejw9MTAyP3otODc6ei00OCYxNX1mdW5jdGlvbiByZShoZSxPLHope3ZhciBlZT1qKGhlLHopO3JldHVybiB6LTE+PU8mJihlZXw9aihoZSx6LTEpPDw0''@;'; put 'put ''KSxlZX1mdW5jdGlvbiBhZShoZSxPLHosZWUpe2Zvcih2YXIgbmU9MCx4PU1hdGgubWluKGhlLmxlbmd0aCx6KSxQPU87UDx4O1ArKyl7dmFyIFY9aGUuY2hhckNvZGVBdChQKS00ODtuZSo9ZWUsbmUrPVY+PTQ5P1YtNDkrMTA6Vj49MTc/Vi0xNysxMDpWfXJldHVybiBuZX1VLmlzQk49ZnVu''@;'; put 'put ''Y3Rpb24oTyl7cmV0dXJuIE8gaW5zdGFuY2VvZiBVfHxudWxsIT09TyYmIm9iamVjdCI9PXR5cGVvZiBPJiZPLmNvbnN0cnVjdG9yLndvcmRTaXplPT09VS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheShPLndvcmRzKX0sVS5tYXg9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik+MD9POnp9''@;'; put 'put ''LFUubWluPWZ1bmN0aW9uKE8seil7cmV0dXJuIE8uY21wKHopPDA/Tzp6fSxVLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbihPLHosZWUpe2lmKCJudW1iZXIiPT10eXBlb2YgTylyZXR1cm4gdGhpcy5faW5pdE51bWJlcihPLHosZWUpO2lmKCJvYmplY3QiPT10eXBlb2YgTylyZXR1cm4gdGhp''@;'; put 'put ''cy5faW5pdEFycmF5KE8seixlZSk7ImhleCI9PT16JiYoej0xNiksRSh6PT09KDB8eikmJno+PTImJno8PTM2KTt2YXIgbmU9MDsiLSI9PT0oTz1PLnRvU3RyaW5nKCkucmVwbGFjZSgvXHMrL2csIiIpKVswXSYmKG5lKyssdGhpcy5uZWdhdGl2ZT0xKSxuZTxPLmxlbmd0aCYmKDE2PT09ej90''@;'; put 'put ''aGlzLl9wYXJzZUhleChPLG5lLGVlKToodGhpcy5fcGFyc2VCYXNlKE8seixuZSksImxlIj09PWVlJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixlZSkpKX0sVS5wcm90b3R5cGUuX2luaXROdW1iZXI9ZnVuY3Rpb24oTyx6LGVlKXtPPDAmJih0aGlzLm5lZ2F0aXZlPTEsTz0t''@;'; put 'put ''TyksTzw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmT10sdGhpcy5sZW5ndGg9MSk6Tzw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihFKE88OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jk''@;'; put 'put ''cz1bNjcxMDg4NjMmTyxPLzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1lZSYmdGhpcy5faW5pdEFycmF5KHRoaXMudG9BcnJheSgpLHosZWUpfSxVLnByb3RvdHlwZS5faW5pdEFycmF5PWZ1bmN0aW9uKE8seixlZSl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8u''@;'; put 'put ''bGVuZ3RoKSxPLmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbChPLmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspdGhp''@;'; put 'put ''cy53b3Jkc1tuZV09MDt2YXIgeCxQLFY9MDtpZigiYmUiPT09ZWUpZm9yKG5lPU8ubGVuZ3RoLTEseD0wO25lPj0wO25lLT0zKXRoaXMud29yZHNbeF18PShQPU9bbmVdfE9bbmUtMV08PDh8T1tuZS0yXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEwODg2''@;'; put 'put ''MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7ZWxzZSBpZigibGUiPT09ZWUpZm9yKG5lPTAseD0wO25lPE8ubGVuZ3RoO25lKz0zKXRoaXMud29yZHNbeF18PShQPU9bbmVdfE9bbmUrMV08PDh8T1tuZSsyXTw8MTYpPDxWJjY3MTA4ODYzLHRoaXMud29yZHNbeCsxXT1QPj4+MjYtViY2NzEw''@;'; put 'put ''ODg2MywoVis9MjQpPj0yNiYmKFYtPTI2LHgrKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKE8seixlZSl7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKChPLmxlbmd0aC16KS82KSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9y''@;'; put 'put ''KHZhciBuZT0wO25lPHRoaXMubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09MDt2YXIgVix4PTAsUD0wO2lmKCJiZSI9PT1lZSlmb3IobmU9Ty5sZW5ndGgtMTtuZT49ejtuZS09MilWPXJlKE8seixuZSk8PHgsdGhpcy53b3Jkc1tQXXw9NjcxMDg4NjMmVix4Pj0xOD8oeC09MTgsdGhpcy53''@;'; put 'put ''b3Jkc1tQKz0xXXw9Vj4+PjI2KTp4Kz04O2Vsc2UgZm9yKG5lPShPLmxlbmd0aC16KSUyPT0wP3orMTp6O25lPE8ubGVuZ3RoO25lKz0yKVY9cmUoTyx6LG5lKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7''@;'; put 'put ''dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKE8seixlZSl7dGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MTtmb3IodmFyIG5lPTAseD0xO3g8PTY3MTA4ODYzO3gqPXopbmUrKztuZS0tLHg9eC96fDA7Zm9yKHZhciBQPU8ubGVuZ3RoLWVlLFY9UCVuZSxU''@;'; put 'put ''PU1hdGgubWluKFAsUC1WKStlZSxTPTAsRj1lZTtGPFQ7Ris9bmUpUz1hZShPLEYsRituZSx6KSx0aGlzLmltdWxuKHgpLHRoaXMud29yZHNbMF0rUzw2NzEwODg2ND90aGlzLndvcmRzWzBdKz1TOnRoaXMuX2lhZGRuKFMpO2lmKDAhPT1WKXt2YXIgeWU9MTtmb3IoUz1hZShPLEYsTy5sZW5n''@;'; put 'put ''dGgseiksRj0wO0Y8VjtGKyspeWUqPXo7dGhpcy5pbXVsbih5ZSksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyl9dGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKE8pe08ud29yZHM9bmV3IEFycmF5KHRoaXMubGVu''@;'; put 'put ''Z3RoKTtmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoO3orKylPLndvcmRzW3pdPXRoaXMud29yZHNbel07Ty5sZW5ndGg9dGhpcy5sZW5ndGgsTy5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLE8ucmVkPXRoaXMucmVkfSxVLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51''@;'; put 'put ''bGwpO3JldHVybiB0aGlzLmNvcHkoTyksT30sVS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE87KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sVS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3Ro''@;'; put 'put ''PjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxVLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9''@;'; put 'put ''MCksdGhpc30sVS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgWT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAw''@;'; put 'put ''MCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAw''@;'; put 'put ''MCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAw''@;'; put 'put ''MDAwMDAwMDAwMDAiXSxXPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLE49WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIx''@;'; put 'put ''Niw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2''@;'; put 'put ''OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gSyhoZSxPLHope3oubmVnYXRpdmU9Ty5uZWdhdGl2ZV5oZS5uZWdhdGl2ZTt2YXIgZWU9aGUubGVuZ3RoK08ubGVuZ3RofDA7ei5sZW5ndGg9ZWUs''@;'; put 'put ''ZWU9ZWUtMXwwO3ZhciBuZT0wfGhlLndvcmRzWzBdLHg9MHxPLndvcmRzWzBdLFA9bmUqeCxUPVAvNjcxMDg4NjR8MDt6LndvcmRzWzBdPTY3MTA4ODYzJlA7Zm9yKHZhciBTPTE7UzxlZTtTKyspe2Zvcih2YXIgRj1UPj4+MjYseWU9NjcxMDg4NjMmVCxDZT1NYXRoLm1pbihTLE8ubGVuZ3Ro''@;'; put 'put ''LTEpLERlPU1hdGgubWF4KDAsUy1oZS5sZW5ndGgrMSk7RGU8PUNlO0RlKyspRis9KFA9KG5lPTB8aGUud29yZHNbUy1EZXwwXSkqKHg9MHxPLndvcmRzW0RlXSkreWUpLzY3MTA4ODY0fDAseWU9NjcxMDg4NjMmUDt6LndvcmRzW1NdPTB8eWUsVD0wfEZ9cmV0dXJuIDAhPT1UP3oud29yZHNb''@;'; put 'put ''U109MHxUOnoubGVuZ3RoLS0sei5zdHJpcCgpfVUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKE8seil7dmFyIGVlO2lmKHo9MHx6fHwxLDE2PT09KE89T3x8MTApfHwiaGV4Ij09PU8pe2VlPSIiO2Zvcih2YXIgbmU9MCx4PTAsUD0wO1A8dGhpcy5sZW5ndGg7UCsrKXt2YXIgVj10aGlz''@;'; put 'put ''LndvcmRzW1BdLFQ9KDE2Nzc3MjE1JihWPDxuZXx4KSkudG9TdHJpbmcoMTYpO2VlPTAhPSh4PVY+Pj4yNC1uZSYxNjc3NzIxNSl8fFAhPT10aGlzLmxlbmd0aC0xP1lbNi1ULmxlbmd0aF0rVCtlZTpUK2VlLChuZSs9Mik+PTI2JiYobmUtPTI2LFAtLSl9Zm9yKDAhPT14JiYoZWU9eC50b1N0''@;'; put 'put ''cmluZygxNikrZWUpO2VlLmxlbmd0aCV6IT0wOyllZT0iMCIrZWU7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoZWU9Ii0iK2VlKSxlZX1pZihPPT09KDB8TykmJk8+PTImJk88PTM2KXt2YXIgUz1XW09dLEY9TltPXTtlZT0iIjt2YXIgeWU9dGhpcy5jbG9uZSgpO2Zvcih5ZS5uZWdhdGl2''@;'; put 'put ''ZT0wOyF5ZS5pc1plcm8oKTspe3ZhciBDZT15ZS5tb2RuKEYpLnRvU3RyaW5nKE8pO2VlPSh5ZT15ZS5pZGl2bihGKSkuaXNaZXJvKCk/Q2UrZWU6WVtTLUNlLmxlbmd0aF0rQ2UrZWV9Zm9yKHRoaXMuaXNaZXJvKCkmJihlZT0iMCIrZWUpO2VlLmxlbmd0aCV6IT0wOyllZT0iMCIrZWU7cmV0''@;'; put 'put ''dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYoZWU9Ii0iK2VlKSxlZX1FKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LFUucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIE89dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP08rPTY3MTA4ODY0''@;'; put 'put ''KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT9PKz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmRSghMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRo''@;'; put 'put ''aXMubmVnYXRpdmU/LU86T30sVS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxVLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbihPLHope3JldHVybiBFKHZvaWQgMCE9PVEpLHRoaXMudG9BcnJheUxpa2UoUSxPLHopfSxVLnByb3RvdHlw''@;'; put 'put ''ZS50b0FycmF5PWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksTyx6KX0sVS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU9dGhpcy5ieXRlTGVuZ3RoKCkseD1lZXx8TWF0aC5tYXgoMSxuZSk7RShuZTw9eCwiYnl0ZSBhcnJh''@;'; put 'put ''eSBsb25nZXIgdGhhbiBkZXNpcmVkIGxlbmd0aCIpLEUoeD4wLCJSZXF1ZXN0ZWQgYXJyYXkgbGVuZ3RoIDw9IDAiKSx0aGlzLnN0cmlwKCk7dmFyIFQsUyxQPSJsZSI9PT16LFY9bmV3IE8oeCksRj10aGlzLmNsb25lKCk7aWYoUCl7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxu''@;'; put 'put ''KDI1NSksRi5pdXNocm4oOCksVltTXT1UO2Zvcig7Uzx4O1MrKylWW1NdPTB9ZWxzZXtmb3IoUz0wO1M8eC1uZTtTKyspVltTXT0wO2ZvcihTPTA7IUYuaXNaZXJvKCk7UysrKVQ9Ri5hbmRsbigyNTUpLEYuaXVzaHJuKDgpLFZbeC1TLTFdPVR9cmV0dXJuIFZ9LFUucHJvdG90eXBlLl9jb3Vu''@;'; put 'put ''dEJpdHM9TWF0aC5jbHozMj9mdW5jdGlvbihPKXtyZXR1cm4gMzItTWF0aC5jbHozMihPKX06ZnVuY3Rpb24oTyl7dmFyIHo9TyxlZT0wO3JldHVybiB6Pj00MDk2JiYoZWUrPTEzLHo+Pj49MTMpLHo+PTY0JiYoZWUrPTcsej4+Pj03KSx6Pj04JiYoZWUrPTQsej4+Pj00KSx6Pj0yJiYoZWUr''@;'; put 'put ''PTIsej4+Pj0yKSxlZSt6fSxVLnByb3RvdHlwZS5femVyb0JpdHM9ZnVuY3Rpb24oTyl7aWYoMD09PU8pcmV0dXJuIDI2O3ZhciB6PU8sZWU9MDtyZXR1cm4gMD09KDgxOTEmeikmJihlZSs9MTMsej4+Pj0xMyksMD09KDEyNyZ6KSYmKGVlKz03LHo+Pj49NyksMD09KDE1JnopJiYoZWUrPTQs''@;'; put 'put ''ej4+Pj00KSwwPT0oMyZ6KSYmKGVlKz0yLHo+Pj49MiksMD09KDEmeikmJmVlKyssZWV9LFUucHJvdG90eXBlLmJpdExlbmd0aD1mdW5jdGlvbigpe3ZhciB6PXRoaXMuX2NvdW50Qml0cyh0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdKTtyZXR1cm4gMjYqKHRoaXMubGVuZ3RoLTEpK3p9LFUu''@;'; put 'put ''cHJvdG90eXBlLnplcm9CaXRzPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gMDtmb3IodmFyIE89MCx6PTA7ejx0aGlzLmxlbmd0aDt6Kyspe3ZhciBlZT10aGlzLl96ZXJvQml0cyh0aGlzLndvcmRzW3pdKTtpZihPKz1lZSwyNiE9PWVlKWJyZWFrfXJldHVybiBPfSxVLnBy''@;'; put 'put ''b3RvdHlwZS5ieXRlTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguY2VpbCh0aGlzLmJpdExlbmd0aCgpLzgpfSxVLnByb3RvdHlwZS50b1R3b3M9ZnVuY3Rpb24oTyl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlP3RoaXMuYWJzKCkuaW5vdG4oTykuaWFkZG4oMSk6dGhpcy5jbG9uZSgp''@;'; put 'put ''fSxVLnByb3RvdHlwZS5mcm9tVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy50ZXN0bihPLTEpP3RoaXMubm90bihPKS5pYWRkbigxKS5pbmVnKCk6dGhpcy5jbG9uZSgpfSxVLnByb3RvdHlwZS5pc05lZz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZX0sVS5wcm90b3R5''@;'; put 'put ''cGUubmVnPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbmVnKCl9LFUucHJvdG90eXBlLmluZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1plcm8oKXx8KHRoaXMubmVnYXRpdmVePTEpLHRoaXN9LFUucHJvdG90eXBlLml1b3I9ZnVuY3Rpb24oTyl7Zm9yKDt0aGlzLmxlbmd0''@;'; put 'put ''aDxPLmxlbmd0aDspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO2Zvcih2YXIgej0wO3o8Ty5sZW5ndGg7eisrKXRoaXMud29yZHNbel09dGhpcy53b3Jkc1t6XXxPLndvcmRzW3pdO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlvcj1mdW5jdGlvbihPKXtyZXR1cm4gRSgw''@;'; put 'put ''PT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdW9yKE8pfSxVLnByb3RvdHlwZS5vcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlvcihPKTpPLmNsb25lKCkuaW9yKHRoaXMpfSxVLnByb3RvdHlwZS51b3I9ZnVuY3Rpb24o''@;'; put 'put ''Tyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdW9yKE8pOk8uY2xvbmUoKS5pdW9yKHRoaXMpfSxVLnByb3RvdHlwZS5pdWFuZD1mdW5jdGlvbihPKXt2YXIgejt6PXRoaXMubGVuZ3RoPk8ubGVuZ3RoP086dGhpcztmb3IodmFyIGVlPTA7ZWU8ei5sZW5ndGg7''@;'; put 'put ''ZWUrKyl0aGlzLndvcmRzW2VlXT10aGlzLndvcmRzW2VlXSZPLndvcmRzW2VlXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYW5kPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1''@;'; put 'put ''YW5kKE8pfSxVLnByb3RvdHlwZS5hbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYW5kKE8pOk8uY2xvbmUoKS5pYW5kKHRoaXMpfSxVLnByb3RvdHlwZS51YW5kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90''@;'; put 'put ''aGlzLmNsb25lKCkuaXVhbmQoTyk6Ty5jbG9uZSgpLml1YW5kKHRoaXMpfSxVLnByb3RvdHlwZS5pdXhvcj1mdW5jdGlvbihPKXt2YXIgeixlZTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oej10aGlzLGVlPU8pOih6PU8sZWU9dGhpcyk7Zm9yKHZhciBuZT0wO25lPGVlLmxlbmd0aDtuZSsrKXRo''@;'; put 'put ''aXMud29yZHNbbmVdPXoud29yZHNbbmVdXmVlLndvcmRzW25lXTtpZih0aGlzIT09eilmb3IoO25lPHoubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09ei53b3Jkc1tuZV07cmV0dXJuIHRoaXMubGVuZ3RoPXoubGVuZ3RoLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXhvcj1mdW5jdGlv''@;'; put 'put ''bihPKXtyZXR1cm4gRSgwPT0odGhpcy5uZWdhdGl2ZXxPLm5lZ2F0aXZlKSksdGhpcy5pdXhvcihPKX0sVS5wcm90b3R5cGUueG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXhvcihPKTpPLmNsb25lKCkuaXhvcih0aGlzKX0sVS5wcm90''@;'; put 'put ''b3R5cGUudXhvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1eG9yKE8pOk8uY2xvbmUoKS5pdXhvcih0aGlzKX0sVS5wcm90b3R5cGUuaW5vdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PTB8TWF0''@;'; put 'put ''aC5jZWlsKE8vMjYpLGVlPU8lMjY7dGhpcy5fZXhwYW5kKHopLGVlPjAmJnotLTtmb3IodmFyIG5lPTA7bmU8ejtuZSsrKXRoaXMud29yZHNbbmVdPTY3MTA4ODYzJn50aGlzLndvcmRzW25lXTtyZXR1cm4gZWU+MCYmKHRoaXMud29yZHNbbmVdPX50aGlzLndvcmRzW25lXSY2NzEwODg2Mz4+''@;'; put 'put ''MjYtZWUpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUubm90bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKE8pfSxVLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKE8seil7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciBlZT1PLzI2fDAsbmU9TyUyNjtyZXR1''@;'; put 'put ''cm4gdGhpcy5fZXhwYW5kKGVlKzEpLHRoaXMud29yZHNbZWVdPXo/dGhpcy53b3Jkc1tlZV18MTw8bmU6dGhpcy53b3Jkc1tlZV0mfigxPDxuZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8pe3ZhciB6LGVlLG5lO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09''@;'; put 'put ''Ty5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLHRoaXMubmVnYXRpdmVePTEsdGhpcy5fbm9ybVNpZ24oKTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIE8ubmVnYXRpdmU9MCx6PXRoaXMuaXN1YihPKSxPLm5lZ2F0aXZl''@;'; put 'put ''PTEsei5fbm9ybVNpZ24oKTt0aGlzLmxlbmd0aD5PLmxlbmd0aD8oZWU9dGhpcyxuZT1PKTooZWU9TyxuZT10aGlzKTtmb3IodmFyIHg9MCxQPTA7UDxuZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09NjcxMDg4NjMmKHo9KDB8ZWUud29yZHNbUF0pKygwfG5lLndvcmRzW1BdKSt4KSx4PXo+''@;'; put 'put ''Pj4yNjtmb3IoOzAhPT14JiZQPGVlLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxlZS53b3Jkc1tQXSkreCkseD16Pj4+MjY7aWYodGhpcy5sZW5ndGg9ZWUubGVuZ3RoLDAhPT14KXRoaXMud29yZHNbdGhpcy5sZW5ndGhdPXgsdGhpcy5sZW5ndGgrKztlbHNlIGlm''@;'; put 'put ''KGVlIT09dGhpcylmb3IoO1A8ZWUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPWVlLndvcmRzW1BdO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oTyl7dmFyIHo7cmV0dXJuIDAhPT1PLm5lZ2F0aXZlJiYwPT09dGhpcy5uZWdhdGl2ZT8oTy5uZWdhdGl2ZT0wLHo9dGhp''@;'; put 'put ''cy5zdWIoTyksTy5uZWdhdGl2ZV49MSx6KTowPT09Ty5uZWdhdGl2ZSYmMCE9PXRoaXMubmVnYXRpdmU/KHRoaXMubmVnYXRpdmU9MCx6PU8uc3ViKHRoaXMpLHRoaXMubmVnYXRpdmU9MSx6KTp0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaWFkZChPKTpPLmNsb25lKCkuaWFk''@;'; put 'put ''ZCh0aGlzKX0sVS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPKXtpZigwIT09Ty5uZWdhdGl2ZSl7Ty5uZWdhdGl2ZT0wO3ZhciB6PXRoaXMuaWFkZChPKTtyZXR1cm4gTy5uZWdhdGl2ZT0xLHouX25vcm1TaWduKCl9aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9''@;'; put 'put ''MCx0aGlzLmlhZGQoTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMuX25vcm1TaWduKCk7dmFyIG5lLHgsZWU9dGhpcy5jbXAoTyk7aWYoMD09PWVlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5sZW5ndGg9MSx0aGlzLndvcmRzWzBdPTAsdGhpcztlZT4wPyhuZT10aGlzLHg9Tyk6KG5lPU8s''@;'; put 'put ''eD10aGlzKTtmb3IodmFyIFA9MCxWPTA7Vjx4Lmxlbmd0aDtWKyspUD0oej0oMHxuZS53b3Jkc1tWXSktKDB8eC53b3Jkc1tWXSkrUCk+PjI2LHRoaXMud29yZHNbVl09NjcxMDg4NjMmejtmb3IoOzAhPT1QJiZWPG5lLmxlbmd0aDtWKyspUD0oej0oMHxuZS53b3Jkc1tWXSkrUCk+PjI2LHRo''@;'; put 'put ''aXMud29yZHNbVl09NjcxMDg4NjMmejtpZigwPT09UCYmVjxuZS5sZW5ndGgmJm5lIT09dGhpcylmb3IoO1Y8bmUubGVuZ3RoO1YrKyl0aGlzLndvcmRzW1ZdPW5lLndvcmRzW1ZdO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxWKSxuZSE9PXRoaXMmJih0aGlzLm5l''@;'; put 'put ''Z2F0aXZlPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaXN1YihPKX07dmFyIEo9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgVCxTLEYsbmU9Ty53b3Jkcyx4PXoud29yZHMsUD1lZS53b3JkcyxWPTAseWU9MHxuZVswXSxDZT04''@;'; put 'put ''MTkxJnllLERlPXllPj4+MTMsUGU9MHxuZVsxXSxRZT04MTkxJlBlLCRlPVBlPj4+MTMsZ3Q9MHxuZVsyXSx3dD04MTkxJmd0LG10PWd0Pj4+MTMsdnQ9MHxuZVszXSxBdD04MTkxJnZ0LGh0PXZ0Pj4+MTMsQnQ9MHxuZVs0XSxvbj04MTkxJkJ0LF90PUJ0Pj4+MTMsdHQ9MHxuZVs1XSxldD04''@;'; put 'put ''MTkxJnR0LGx0PXR0Pj4+MTMsTHQ9MHxuZVs2XSxDdD04MTkxJkx0LGZ0PUx0Pj4+MTMsSHQ9MHxuZVs3XSxHZT04MTkxJkh0LFVlPUh0Pj4+MTMseXQ9MHxuZVs4XSxqdD04MTkxJnl0LEp0PXl0Pj4+MTMsZ249MHxuZVs5XSxkbj04MTkxJmduLHluPWduPj4+MTMsbG49MHx4WzBdLE5uPTgx''@;'; put 'put ''OTEmbG4sYm49bG4+Pj4xMyxlcj0wfHhbMV0sc3I9ODE5MSZlcixYbj1lcj4+PjEzLEZyPTB8eFsyXSx4cj04MTkxJkZyLHF0PUZyPj4+MTMscHI9MHx4WzNdLG5yPTgxOTEmcHIsQW49cHI+Pj4xMyxxbj0wfHhbNF0sV3Q9ODE5MSZxbixwbj1xbj4+PjEzLEtuPTB8eFs1XSxOdD04MTkxJktu''@;'; put 'put ''LHNuPUtuPj4+MTMsVW49MHx4WzZdLHduPTgxOTEmVW4sdG49VW4+Pj4xMyx6bj0wfHhbN10sVHI9ODE5MSZ6bixCbj16bj4+PjEzLGtyPTB8eFs4XSxtbj04MTkxJmtyLHVuPWtyPj4+MTMsY249MHx4WzldLF9uPTgxOTEmY24sR3Q9Y24+Pj4xMztlZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnou''@;'; put 'put ''bmVnYXRpdmUsZWUubGVuZ3RoPTE5O3ZhciBrbj0oVisoVD1NYXRoLmltdWwoQ2UsTm4pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKENlLGJuKSkrTWF0aC5pbXVsKERlLE5uKXwwKSk8PDEzKXwwO1Y9KChGPU1hdGguaW11bChEZSxibikpKyhTPj4+MTMpfDApKyhrbj4+PjI2KXwwLGtu''@;'; put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChRZSxObiksUz0oUz1NYXRoLmltdWwoUWUsYm4pKStNYXRoLmltdWwoJGUsTm4pfDAsRj1NYXRoLmltdWwoJGUsYm4pO3ZhciBWbj0oVisoVD1UK01hdGguaW11bChDZSxzcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLFhuKXwwKStN''@;'; put 'put ''YXRoLmltdWwoRGUsc3IpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsWG4pfDApKyhTPj4+MTMpfDApKyhWbj4+PjI2KXwwLFZuJj02NzEwODg2MyxUPU1hdGguaW11bCh3dCxObiksUz0oUz1NYXRoLmltdWwod3QsYm4pKStNYXRoLmltdWwobXQsTm4pfDAsRj1NYXRoLmltdWwo''@;'; put 'put ''bXQsYm4pLFQ9VCtNYXRoLmltdWwoUWUsc3IpfDAsUz0oUz1TK01hdGguaW11bChRZSxYbil8MCkrTWF0aC5pbXVsKCRlLHNyKXwwLEY9RitNYXRoLmltdWwoJGUsWG4pfDA7dmFyIGVuPShWKyhUPVQrTWF0aC5pbXVsKENlLHhyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Us''@;'; put 'put ''cXQpfDApK01hdGguaW11bChEZSx4cil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxxdCl8MCkrKFM+Pj4xMyl8MCkrKGVuPj4+MjYpfDAsZW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEF0LE5uKSxTPShTPU1hdGguaW11bChBdCxibikpK01hdGguaW11bChodCxObil8MCxGPU1h''@;'; put 'put ''dGguaW11bChodCxibiksVD1UK01hdGguaW11bCh3dCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LFhuKXwwKStNYXRoLmltdWwobXQsc3IpfDAsRj1GK01hdGguaW11bChtdCxYbil8MCxUPVQrTWF0aC5pbXVsKFFlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoUWUscXQpfDApK01hdGguaW11''@;'; put 'put ''bCgkZSx4cil8MCxGPUYrTWF0aC5pbXVsKCRlLHF0KXwwO3ZhciBJbj0oVisoVD1UK01hdGguaW11bChDZSxucil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEFuKXwwKStNYXRoLmltdWwoRGUsbnIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQW4pfDApKyhT''@;'; put 'put ''Pj4+MTMpfDApKyhJbj4+PjI2KXwwLEluJj02NzEwODg2MyxUPU1hdGguaW11bChvbixObiksUz0oUz1NYXRoLmltdWwob24sYm4pKStNYXRoLmltdWwoX3QsTm4pfDAsRj1NYXRoLmltdWwoX3QsYm4pLFQ9VCtNYXRoLmltdWwoQXQsc3IpfDAsUz0oUz1TK01hdGguaW11bChBdCxYbil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKGh0LHNyKXwwLEY9RitNYXRoLmltdWwoaHQsWG4pfDAsVD1UK01hdGguaW11bCh3dCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHF0KXwwKStNYXRoLmltdWwobXQseHIpfDAsRj1GK01hdGguaW11bChtdCxxdCl8MCxUPVQrTWF0aC5pbXVsKFFlLG5yKXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoUWUsQW4pfDApK01hdGguaW11bCgkZSxucil8MCxGPUYrTWF0aC5pbXVsKCRlLEFuKXwwO3ZhciBKbj0oVisoVD1UK01hdGguaW11bChDZSxXdCl8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHBuKXwwKStNYXRoLmltdWwoRGUsV3QpfDApKTw8MTMpfDA7Vj0o''@;'; put 'put ''KEY9RitNYXRoLmltdWwoRGUscG4pfDApKyhTPj4+MTMpfDApKyhKbj4+PjI2KXwwLEpuJj02NzEwODg2MyxUPU1hdGguaW11bChldCxObiksUz0oUz1NYXRoLmltdWwoZXQsYm4pKStNYXRoLmltdWwobHQsTm4pfDAsRj1NYXRoLmltdWwobHQsYm4pLFQ9VCtNYXRoLmltdWwob24sc3IpfDAs''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bChvbixYbil8MCkrTWF0aC5pbXVsKF90LHNyKXwwLEY9RitNYXRoLmltdWwoX3QsWG4pfDAsVD1UK01hdGguaW11bChBdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHF0KXwwKStNYXRoLmltdWwoaHQseHIpfDAsRj1GK01hdGguaW11bChodCxxdCl8MCxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKHd0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQW4pfDApK01hdGguaW11bChtdCxucil8MCxGPUYrTWF0aC5pbXVsKG10LEFuKXwwLFQ9VCtNYXRoLmltdWwoUWUsV3QpfDAsUz0oUz1TK01hdGguaW11bChRZSxwbil8MCkrTWF0aC5pbXVsKCRlLFd0KXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoJGUscG4pfDA7dmFyIG9yPShWKyhUPVQrTWF0aC5pbXVsKENlLE50KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Usc24pfDApK01hdGguaW11bChEZSxOdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxzbil8MCkrKFM+Pj4xMyl8MCkrKG9yPj4+MjYp''@;'; put 'put ''fDAsb3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEN0LE5uKSxTPShTPU1hdGguaW11bChDdCxibikpK01hdGguaW11bChmdCxObil8MCxGPU1hdGguaW11bChmdCxibiksVD1UK01hdGguaW11bChldCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LFhuKXwwKStNYXRoLmltdWwobHQsc3IpfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bChsdCxYbil8MCxUPVQrTWF0aC5pbXVsKG9uLHhyKXwwLFM9KFM9UytNYXRoLmltdWwob24scXQpfDApK01hdGguaW11bChfdCx4cil8MCxGPUYrTWF0aC5pbXVsKF90LHF0KXwwLFQ9VCtNYXRoLmltdWwoQXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChBdCxBbil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKGh0LG5yKXwwLEY9RitNYXRoLmltdWwoaHQsQW4pfDAsVD1UK01hdGguaW11bCh3dCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHBuKXwwKStNYXRoLmltdWwobXQsV3QpfDAsRj1GK01hdGguaW11bChtdCxwbil8MCxUPVQrTWF0aC5pbXVsKFFlLE50KXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoUWUsc24pfDApK01hdGguaW11bCgkZSxOdCl8MCxGPUYrTWF0aC5pbXVsKCRlLHNuKXwwO3ZhciBncj0oVisoVD1UK01hdGguaW11bChDZSx3bil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLHRuKXwwKStNYXRoLmltdWwoRGUsd24pfDApKTw8MTMpfDA7Vj0o''@;'; put 'put ''KEY9RitNYXRoLmltdWwoRGUsdG4pfDApKyhTPj4+MTMpfDApKyhncj4+PjI2KXwwLGdyJj02NzEwODg2MyxUPU1hdGguaW11bChHZSxObiksUz0oUz1NYXRoLmltdWwoR2UsYm4pKStNYXRoLmltdWwoVWUsTm4pfDAsRj1NYXRoLmltdWwoVWUsYm4pLFQ9VCtNYXRoLmltdWwoQ3Qsc3IpfDAs''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bChDdCxYbil8MCkrTWF0aC5pbXVsKGZ0LHNyKXwwLEY9RitNYXRoLmltdWwoZnQsWG4pfDAsVD1UK01hdGguaW11bChldCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHF0KXwwKStNYXRoLmltdWwobHQseHIpfDAsRj1GK01hdGguaW11bChsdCxxdCl8MCxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKG9uLG5yKXwwLFM9KFM9UytNYXRoLmltdWwob24sQW4pfDApK01hdGguaW11bChfdCxucil8MCxGPUYrTWF0aC5pbXVsKF90LEFuKXwwLFQ9VCtNYXRoLmltdWwoQXQsV3QpfDAsUz0oUz1TK01hdGguaW11bChBdCxwbil8MCkrTWF0aC5pbXVsKGh0LFd0KXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoaHQscG4pfDAsVD1UK01hdGguaW11bCh3dCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHNuKXwwKStNYXRoLmltdWwobXQsTnQpfDAsRj1GK01hdGguaW11bChtdCxzbil8MCxUPVQrTWF0aC5pbXVsKFFlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdG4pfDApK01hdGguaW11''@;'; put 'put ''bCgkZSx3bil8MCxGPUYrTWF0aC5pbXVsKCRlLHRuKXwwO3ZhciBLcj0oVisoVD1UK01hdGguaW11bChDZSxUcil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEJuKXwwKStNYXRoLmltdWwoRGUsVHIpfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsQm4pfDApKyhT''@;'; put 'put ''Pj4+MTMpfDApKyhLcj4+PjI2KXwwLEtyJj02NzEwODg2MyxUPU1hdGguaW11bChqdCxObiksUz0oUz1NYXRoLmltdWwoanQsYm4pKStNYXRoLmltdWwoSnQsTm4pfDAsRj1NYXRoLmltdWwoSnQsYm4pLFQ9VCtNYXRoLmltdWwoR2Usc3IpfDAsUz0oUz1TK01hdGguaW11bChHZSxYbil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKFVlLHNyKXwwLEY9RitNYXRoLmltdWwoVWUsWG4pfDAsVD1UK01hdGguaW11bChDdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHF0KXwwKStNYXRoLmltdWwoZnQseHIpfDAsRj1GK01hdGguaW11bChmdCxxdCl8MCxUPVQrTWF0aC5pbXVsKGV0LG5yKXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoZXQsQW4pfDApK01hdGguaW11bChsdCxucil8MCxGPUYrTWF0aC5pbXVsKGx0LEFuKXwwLFQ9VCtNYXRoLmltdWwob24sV3QpfDAsUz0oUz1TK01hdGguaW11bChvbixwbil8MCkrTWF0aC5pbXVsKF90LFd0KXwwLEY9RitNYXRoLmltdWwoX3QscG4pfDAsVD1UK01hdGguaW11''@;'; put 'put ''bChBdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHNuKXwwKStNYXRoLmltdWwoaHQsTnQpfDAsRj1GK01hdGguaW11bChodCxzbil8MCxUPVQrTWF0aC5pbXVsKHd0LHduKXwwLFM9KFM9UytNYXRoLmltdWwod3QsdG4pfDApK01hdGguaW11bChtdCx3bil8MCxGPUYrTWF0aC5pbXVsKG10''@;'; put 'put ''LHRuKXwwLFQ9VCtNYXRoLmltdWwoUWUsVHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxCbil8MCkrTWF0aC5pbXVsKCRlLFRyKXwwLEY9RitNYXRoLmltdWwoJGUsQm4pfDA7dmFyIFZyPShWKyhUPVQrTWF0aC5pbXVsKENlLG1uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2Us''@;'; put 'put ''dW4pfDApK01hdGguaW11bChEZSxtbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx1bil8MCkrKFM+Pj4xMyl8MCkrKFZyPj4+MjYpfDAsVnImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE5uKSxTPShTPU1hdGguaW11bChkbixibikpK01hdGguaW11bCh5bixObil8MCxGPU1h''@;'; put 'put ''dGguaW11bCh5bixibiksVD1UK01hdGguaW11bChqdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LFhuKXwwKStNYXRoLmltdWwoSnQsc3IpfDAsRj1GK01hdGguaW11bChKdCxYbil8MCxUPVQrTWF0aC5pbXVsKEdlLHhyKXwwLFM9KFM9UytNYXRoLmltdWwoR2UscXQpfDApK01hdGguaW11''@;'; put 'put ''bChVZSx4cil8MCxGPUYrTWF0aC5pbXVsKFVlLHF0KXwwLFQ9VCtNYXRoLmltdWwoQ3QsbnIpfDAsUz0oUz1TK01hdGguaW11bChDdCxBbil8MCkrTWF0aC5pbXVsKGZ0LG5yKXwwLEY9RitNYXRoLmltdWwoZnQsQW4pfDAsVD1UK01hdGguaW11bChldCxXdCl8MCxTPShTPVMrTWF0aC5pbXVs''@;'; put 'put ''KGV0LHBuKXwwKStNYXRoLmltdWwobHQsV3QpfDAsRj1GK01hdGguaW11bChsdCxwbil8MCxUPVQrTWF0aC5pbXVsKG9uLE50KXwwLFM9KFM9UytNYXRoLmltdWwob24sc24pfDApK01hdGguaW11bChfdCxOdCl8MCxGPUYrTWF0aC5pbXVsKF90LHNuKXwwLFQ9VCtNYXRoLmltdWwoQXQsd24p''@;'; put 'put ''fDAsUz0oUz1TK01hdGguaW11bChBdCx0bil8MCkrTWF0aC5pbXVsKGh0LHduKXwwLEY9RitNYXRoLmltdWwoaHQsdG4pfDAsVD1UK01hdGguaW11bCh3dCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LEJuKXwwKStNYXRoLmltdWwobXQsVHIpfDAsRj1GK01hdGguaW11bChtdCxCbil8MCxU''@;'; put 'put ''PVQrTWF0aC5pbXVsKFFlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoUWUsdW4pfDApK01hdGguaW11bCgkZSxtbil8MCxGPUYrTWF0aC5pbXVsKCRlLHVuKXwwO3ZhciBpaT0oVisoVD1UK01hdGguaW11bChDZSxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKENlLEd0KXwwKStN''@;'; put 'put ''YXRoLmltdWwoRGUsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoRGUsR3QpfDApKyhTPj4+MTMpfDApKyhpaT4+PjI2KXwwLGlpJj02NzEwODg2MyxUPU1hdGguaW11bChkbixzciksUz0oUz1NYXRoLmltdWwoZG4sWG4pKStNYXRoLmltdWwoeW4sc3IpfDAsRj1NYXRoLmltdWwo''@;'; put 'put ''eW4sWG4pLFQ9VCtNYXRoLmltdWwoanQseHIpfDAsUz0oUz1TK01hdGguaW11bChqdCxxdCl8MCkrTWF0aC5pbXVsKEp0LHhyKXwwLEY9RitNYXRoLmltdWwoSnQscXQpfDAsVD1UK01hdGguaW11bChHZSxucil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLEFuKXwwKStNYXRoLmltdWwoVWUsbnIp''@;'; put 'put ''fDAsRj1GK01hdGguaW11bChVZSxBbil8MCxUPVQrTWF0aC5pbXVsKEN0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscG4pfDApK01hdGguaW11bChmdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGZ0LHBuKXwwLFQ9VCtNYXRoLmltdWwoZXQsTnQpfDAsUz0oUz1TK01hdGguaW11bChldCxzbil8''@;'; put 'put ''MCkrTWF0aC5pbXVsKGx0LE50KXwwLEY9RitNYXRoLmltdWwobHQsc24pfDAsVD1UK01hdGguaW11bChvbix3bil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHRuKXwwKStNYXRoLmltdWwoX3Qsd24pfDAsRj1GK01hdGguaW11bChfdCx0bil8MCxUPVQrTWF0aC5pbXVsKEF0LFRyKXwwLFM9KFM9''@;'; put 'put ''UytNYXRoLmltdWwoQXQsQm4pfDApK01hdGguaW11bChodCxUcil8MCxGPUYrTWF0aC5pbXVsKGh0LEJuKXwwLFQ9VCtNYXRoLmltdWwod3QsbW4pfDAsUz0oUz1TK01hdGguaW11bCh3dCx1bil8MCkrTWF0aC5pbXVsKG10LG1uKXwwLEY9RitNYXRoLmltdWwobXQsdW4pfDA7dmFyIFJyPShW''@;'; put 'put ''KyhUPVQrTWF0aC5pbXVsKFFlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoUWUsR3QpfDApK01hdGguaW11bCgkZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bCgkZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKFJyPj4+MjYpfDAsUnImPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; put 'put ''bXVsKGRuLHhyKSxTPShTPU1hdGguaW11bChkbixxdCkpK01hdGguaW11bCh5bix4cil8MCxGPU1hdGguaW11bCh5bixxdCksVD1UK01hdGguaW11bChqdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEFuKXwwKStNYXRoLmltdWwoSnQsbnIpfDAsRj1GK01hdGguaW11bChKdCxBbil8MCxU''@;'; put 'put ''PVQrTWF0aC5pbXVsKEdlLFd0KXwwLFM9KFM9UytNYXRoLmltdWwoR2UscG4pfDApK01hdGguaW11bChVZSxXdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHBuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsTnQpfDAsUz0oUz1TK01hdGguaW11bChDdCxzbil8MCkrTWF0aC5pbXVsKGZ0LE50KXwwLEY9RitN''@;'; put 'put ''YXRoLmltdWwoZnQsc24pfDAsVD1UK01hdGguaW11bChldCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHRuKXwwKStNYXRoLmltdWwobHQsd24pfDAsRj1GK01hdGguaW11bChsdCx0bil8MCxUPVQrTWF0aC5pbXVsKG9uLFRyKXwwLFM9KFM9UytNYXRoLmltdWwob24sQm4pfDApK01hdGgu''@;'; put 'put ''aW11bChfdCxUcil8MCxGPUYrTWF0aC5pbXVsKF90LEJuKXwwLFQ9VCtNYXRoLmltdWwoQXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChBdCx1bil8MCkrTWF0aC5pbXVsKGh0LG1uKXwwLEY9RitNYXRoLmltdWwoaHQsdW4pfDA7dmFyIGxpPShWKyhUPVQrTWF0aC5pbXVsKHd0LF9uKXwwKXww''@;'; put 'put ''KSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwod3QsR3QpfDApK01hdGguaW11bChtdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChtdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGxpPj4+MjYpfDAsbGkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG5yKSxTPShTPU1hdGguaW11bChk''@;'; put 'put ''bixBbikpK01hdGguaW11bCh5bixucil8MCxGPU1hdGguaW11bCh5bixBbiksVD1UK01hdGguaW11bChqdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHBuKXwwKStNYXRoLmltdWwoSnQsV3QpfDAsRj1GK01hdGguaW11bChKdCxwbil8MCxUPVQrTWF0aC5pbXVsKEdlLE50KXwwLFM9KFM9''@;'; put 'put ''UytNYXRoLmltdWwoR2Usc24pfDApK01hdGguaW11bChVZSxOdCl8MCxGPUYrTWF0aC5pbXVsKFVlLHNuKXwwLFQ9VCtNYXRoLmltdWwoQ3Qsd24pfDAsUz0oUz1TK01hdGguaW11bChDdCx0bil8MCkrTWF0aC5pbXVsKGZ0LHduKXwwLEY9RitNYXRoLmltdWwoZnQsdG4pfDAsVD1UK01hdGgu''@;'; put 'put ''aW11bChldCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LEJuKXwwKStNYXRoLmltdWwobHQsVHIpfDAsRj1GK01hdGguaW11bChsdCxCbil8MCxUPVQrTWF0aC5pbXVsKG9uLG1uKXwwLFM9KFM9UytNYXRoLmltdWwob24sdW4pfDApK01hdGguaW11bChfdCxtbil8MCxGPUYrTWF0aC5pbXVs''@;'; put 'put ''KF90LHVuKXwwO3ZhciBNaT0oVisoVD1UK01hdGguaW11bChBdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEF0LEd0KXwwKStNYXRoLmltdWwoaHQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoaHQsR3QpfDApKyhTPj4+MTMpfDApKyhNaT4+PjI2KXwwLE1p''@;'; put 'put ''Jj02NzEwODg2MyxUPU1hdGguaW11bChkbixXdCksUz0oUz1NYXRoLmltdWwoZG4scG4pKStNYXRoLmltdWwoeW4sV3QpfDAsRj1NYXRoLmltdWwoeW4scG4pLFQ9VCtNYXRoLmltdWwoanQsTnQpfDAsUz0oUz1TK01hdGguaW11bChqdCxzbil8MCkrTWF0aC5pbXVsKEp0LE50KXwwLEY9RitN''@;'; put 'put ''YXRoLmltdWwoSnQsc24pfDAsVD1UK01hdGguaW11bChHZSx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLHRuKXwwKStNYXRoLmltdWwoVWUsd24pfDAsRj1GK01hdGguaW11bChVZSx0bil8MCxUPVQrTWF0aC5pbXVsKEN0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QsQm4pfDApK01hdGgu''@;'; put 'put ''aW11bChmdCxUcil8MCxGPUYrTWF0aC5pbXVsKGZ0LEJuKXwwLFQ9VCtNYXRoLmltdWwoZXQsbW4pfDAsUz0oUz1TK01hdGguaW11bChldCx1bil8MCkrTWF0aC5pbXVsKGx0LG1uKXwwLEY9RitNYXRoLmltdWwobHQsdW4pfDA7dmFyIG8wPShWKyhUPVQrTWF0aC5pbXVsKG9uLF9uKXwwKXww''@;'; put 'put ''KSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwob24sR3QpfDApK01hdGguaW11bChfdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChfdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG8wPj4+MjYpfDAsbzAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLE50KSxTPShTPU1hdGguaW11bChk''@;'; put 'put ''bixzbikpK01hdGguaW11bCh5bixOdCl8MCxGPU1hdGguaW11bCh5bixzbiksVD1UK01hdGguaW11bChqdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHRuKXwwKStNYXRoLmltdWwoSnQsd24pfDAsRj1GK01hdGguaW11bChKdCx0bil8MCxUPVQrTWF0aC5pbXVsKEdlLFRyKXwwLFM9KFM9''@;'; put 'put ''UytNYXRoLmltdWwoR2UsQm4pfDApK01hdGguaW11bChVZSxUcil8MCxGPUYrTWF0aC5pbXVsKFVlLEJuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsbW4pfDAsUz0oUz1TK01hdGguaW11bChDdCx1bil8MCkrTWF0aC5pbXVsKGZ0LG1uKXwwLEY9RitNYXRoLmltdWwoZnQsdW4pfDA7dmFyIG4wPShW''@;'; put 'put ''KyhUPVQrTWF0aC5pbXVsKGV0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoZXQsR3QpfDApK01hdGguaW11bChsdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChsdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKG4wPj4+MjYpfDAsbjAmPTY3MTA4ODYzLFQ9TWF0aC5p''@;'; put 'put ''bXVsKGRuLHduKSxTPShTPU1hdGguaW11bChkbix0bikpK01hdGguaW11bCh5bix3bil8MCxGPU1hdGguaW11bCh5bix0biksVD1UK01hdGguaW11bChqdCxUcil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LEJuKXwwKStNYXRoLmltdWwoSnQsVHIpfDAsRj1GK01hdGguaW11bChKdCxCbil8MCxU''@;'; put 'put ''PVQrTWF0aC5pbXVsKEdlLG1uKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdW4pfDApK01hdGguaW11bChVZSxtbil8MCxGPUYrTWF0aC5pbXVsKFVlLHVuKXwwO3ZhciBkMD0oVisoVD1UK01hdGguaW11bChDdCxfbil8MCl8MCkrKCg4MTkxJihTPShTPVMrTWF0aC5pbXVsKEN0LEd0KXwwKStN''@;'; put 'put ''YXRoLmltdWwoZnQsX24pfDApKTw8MTMpfDA7Vj0oKEY9RitNYXRoLmltdWwoZnQsR3QpfDApKyhTPj4+MTMpfDApKyhkMD4+PjI2KXwwLGQwJj02NzEwODg2MyxUPU1hdGguaW11bChkbixUciksUz0oUz1NYXRoLmltdWwoZG4sQm4pKStNYXRoLmltdWwoeW4sVHIpfDAsRj1NYXRoLmltdWwo''@;'; put 'put ''eW4sQm4pLFQ9VCtNYXRoLmltdWwoanQsbW4pfDAsUz0oUz1TK01hdGguaW11bChqdCx1bil8MCkrTWF0aC5pbXVsKEp0LG1uKXwwLEY9RitNYXRoLmltdWwoSnQsdW4pfDA7dmFyIG0wPShWKyhUPVQrTWF0aC5pbXVsKEdlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoR2Us''@;'; put 'put ''R3QpfDApK01hdGguaW11bChVZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChVZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKG0wPj4+MjYpfDAsbTAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLG1uKSxTPShTPU1hdGguaW11bChkbix1bikpK01hdGguaW11bCh5bixtbil8MCxGPU1h''@;'; put 'put ''dGguaW11bCh5bix1bik7dmFyIEcwPShWKyhUPVQrTWF0aC5pbXVsKGp0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoanQsR3QpfDApK01hdGguaW11bChKdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChKdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKEcwPj4+MjYp''@;'; put 'put ''fDAsRzAmPTY3MTA4ODYzO3ZhciBEaT0oVisoVD1NYXRoLmltdWwoZG4sX24pKXwwKSsoKDgxOTEmKFM9KFM9TWF0aC5pbXVsKGRuLEd0KSkrTWF0aC5pbXVsKHluLF9uKXwwKSk8PDEzKXwwO3JldHVybiBWPSgoRj1NYXRoLmltdWwoeW4sR3QpKSsoUz4+PjEzKXwwKSsoRGk+Pj4yNil8MCxE''@;'; put 'put ''aSY9NjcxMDg4NjMsUFswXT1rbixQWzFdPVZuLFBbMl09ZW4sUFszXT1JbixQWzRdPUpuLFBbNV09b3IsUFs2XT1ncixQWzddPUtyLFBbOF09VnIsUFs5XT1paSxQWzEwXT1ScixQWzExXT1saSxQWzEyXT1NaSxQWzEzXT1vMCxQWzE0XT1uMCxQWzE1XT1kMCxQWzE2XT1tMCxQWzE3XT1HMCxQ''@;'; put 'put ''WzE4XT1EaSwwIT09ViYmKFBbMTldPVYsZWUubGVuZ3RoKyspLGVlfTtmdW5jdGlvbiBvZShoZSxPLHope3JldHVybihuZXcgY2UpLm11bHAoaGUsTyx6KX1mdW5jdGlvbiBjZShoZSxPKXt0aGlzLng9aGUsdGhpcy55PU99TWF0aC5pbXVsfHwoSj1LKSxVLnByb3RvdHlwZS5tdWxUbz1mdW5j''@;'; put 'put ''dGlvbihPLHope3ZhciBlZSxuZT10aGlzLmxlbmd0aCtPLmxlbmd0aDtyZXR1cm4gZWU9MTA9PT10aGlzLmxlbmd0aCYmMTA9PT1PLmxlbmd0aD9KKHRoaXMsTyx6KTpuZTw2Mz9LKHRoaXMsTyx6KTpuZTwxMDI0P2Z1bmN0aW9uIHNlKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhl''@;'; put 'put ''Lm5lZ2F0aXZlLHoubGVuZ3RoPWhlLmxlbmd0aCtPLmxlbmd0aDtmb3IodmFyIGVlPTAsbmU9MCx4PTA7eDx6Lmxlbmd0aC0xO3grKyl7dmFyIFA9bmU7bmU9MDtmb3IodmFyIFY9NjcxMDg4NjMmZWUsVD1NYXRoLm1pbih4LE8ubGVuZ3RoLTEpLFM9TWF0aC5tYXgoMCx4LWhlLmxlbmd0aCsx''@;'; put 'put ''KTtTPD1UO1MrKyl7dmFyIERlPSgwfGhlLndvcmRzW3gtU10pKigwfE8ud29yZHNbU10pLFBlPTY3MTA4ODYzJkRlO1Y9NjcxMDg4NjMmKFBlPVBlK1Z8MCksbmUrPShQPShQPVArKERlLzY3MTA4ODY0fDApfDApKyhQZT4+PjI2KXwwKT4+PjI2LFAmPTY3MTA4ODYzfXoud29yZHNbeF09Vixl''@;'; put 'put ''ZT1QLFA9bmV9cmV0dXJuIDAhPT1lZT96LndvcmRzW3hdPWVlOnoubGVuZ3RoLS0sei5zdHJpcCgpfSh0aGlzLE8seik6b2UodGhpcyxPLHopLGVlfSxjZS5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbihPKXtmb3IodmFyIHo9bmV3IEFycmF5KE8pLGVlPVUucHJvdG90eXBlLl9jb3VudEJp''@;'; put 'put ''dHMoTyktMSxuZT0wO25lPE87bmUrKyl6W25lXT10aGlzLnJldkJpbihuZSxlZSxPKTtyZXR1cm4gen0sY2UucHJvdG90eXBlLnJldkJpbj1mdW5jdGlvbihPLHosZWUpe2lmKDA9PT1PfHxPPT09ZWUtMSlyZXR1cm4gTztmb3IodmFyIG5lPTAseD0wO3g8ejt4KyspbmV8PSgxJk8pPDx6LXgt''@;'; put 'put ''MSxPPj49MTtyZXR1cm4gbmV9LGNlLnByb3RvdHlwZS5wZXJtdXRlPWZ1bmN0aW9uKE8seixlZSxuZSx4LFApe2Zvcih2YXIgVj0wO1Y8UDtWKyspbmVbVl09eltPW1ZdXSx4W1ZdPWVlW09bVl1dfSxjZS5wcm90b3R5cGUudHJhbnNmb3JtPWZ1bmN0aW9uKE8seixlZSxuZSx4LFApe3RoaXMu''@;'; put 'put ''cGVybXV0ZShQLE8seixlZSxuZSx4KTtmb3IodmFyIFY9MTtWPHg7Vjw8PTEpZm9yKHZhciBUPVY8PDEsUz1NYXRoLmNvcygyKk1hdGguUEkvVCksRj1NYXRoLnNpbigyKk1hdGguUEkvVCkseWU9MDt5ZTx4O3llKz1UKWZvcih2YXIgQ2U9UyxEZT1GLFBlPTA7UGU8VjtQZSsrKXt2YXIgUWU9''@;'; put 'put ''ZWVbeWUrUGVdLCRlPW5lW3llK1BlXSxndD1lZVt5ZStQZStWXSx3dD1uZVt5ZStQZStWXSxtdD1DZSpndC1EZSp3dDt3dD1DZSp3dCtEZSpndCxlZVt5ZStQZV09UWUrKGd0PW10KSxuZVt5ZStQZV09JGUrd3QsZWVbeWUrUGUrVl09UWUtZ3QsbmVbeWUrUGUrVl09JGUtd3QsUGUhPT1UJiYo''@;'; put 'put ''bXQ9UypDZS1GKkRlLERlPVMqRGUrRipDZSxDZT1tdCl9fSxjZS5wcm90b3R5cGUuZ3Vlc3NMZW4xM2I9ZnVuY3Rpb24oTyx6KXt2YXIgZWU9MXxNYXRoLm1heCh6LE8pLG5lPTEmZWUseD0wO2ZvcihlZT1lZS8yfDA7ZWU7ZWU+Pj49MSl4Kys7cmV0dXJuIDE8PHgrMStuZX0sY2UucHJvdG90''@;'; put 'put ''eXBlLmNvbmp1Z2F0ZT1mdW5jdGlvbihPLHosZWUpe2lmKCEoZWU8PTEpKWZvcih2YXIgbmU9MDtuZTxlZS8yO25lKyspe3ZhciB4PU9bbmVdO09bbmVdPU9bZWUtbmUtMV0sT1tlZS1uZS0xXT14LHg9eltuZV0seltuZV09LXpbZWUtbmUtMV0seltlZS1uZS0xXT0teH19LGNlLnByb3RvdHlw''@;'; put 'put ''ZS5ub3JtYWxpemUxM2I9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIGVlPTAsbmU9MDtuZTx6LzI7bmUrKyl7dmFyIHg9ODE5MipNYXRoLnJvdW5kKE9bMipuZSsxXS96KStNYXRoLnJvdW5kKE9bMipuZV0veikrZWU7T1tuZV09NjcxMDg4NjMmeCxlZT14PDY3MTA4ODY0PzA6eC82NzEwODg2NHww''@;'; put 'put ''fXJldHVybiBPfSxjZS5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbihPLHosZWUsbmUpe2Zvcih2YXIgeD0wLFA9MDtQPHo7UCsrKWVlWzIqUF09ODE5MSYoeCs9MHxPW1BdKSxlZVsyKlArMV09ODE5MSYoeD4+Pj0xMykseD4+Pj0xMztmb3IoUD0yKno7UDxuZTsrK1ApZWVbUF09MDtF''@;'; put 'put ''KDA9PT14KSxFKDA9PSgtODE5MiZ4KSl9LGNlLnByb3RvdHlwZS5zdHViPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksZWU9MDtlZTxPO2VlKyspeltlZV09MDtyZXR1cm4gen0sY2UucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU9Mip0aGlzLmd1ZXNz''@;'; put 'put ''TGVuMTNiKE8ubGVuZ3RoLHoubGVuZ3RoKSx4PXRoaXMubWFrZVJCVChuZSksUD10aGlzLnN0dWIobmUpLFY9bmV3IEFycmF5KG5lKSxUPW5ldyBBcnJheShuZSksUz1uZXcgQXJyYXkobmUpLEY9bmV3IEFycmF5KG5lKSx5ZT1uZXcgQXJyYXkobmUpLENlPW5ldyBBcnJheShuZSksRGU9ZWUu''@;'; put 'put ''d29yZHM7RGUubGVuZ3RoPW5lLHRoaXMuY29udmVydDEzYihPLndvcmRzLE8ubGVuZ3RoLFYsbmUpLHRoaXMuY29udmVydDEzYih6LndvcmRzLHoubGVuZ3RoLEYsbmUpLHRoaXMudHJhbnNmb3JtKFYsUCxULFMsbmUseCksdGhpcy50cmFuc2Zvcm0oRixQLHllLENlLG5lLHgpO2Zvcih2YXIg''@;'; put 'put ''UGU9MDtQZTxuZTtQZSsrKXt2YXIgUWU9VFtQZV0qeWVbUGVdLVNbUGVdKkNlW1BlXTtTW1BlXT1UW1BlXSpDZVtQZV0rU1tQZV0qeWVbUGVdLFRbUGVdPVFlfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShULFMsbmUpLHRoaXMudHJhbnNmb3JtKFQsUyxEZSxQLG5lLHgpLHRoaXMuY29uanVnYXRl''@;'; put 'put ''KERlLFAsbmUpLHRoaXMubm9ybWFsaXplMTNiKERlLG5lKSxlZS5uZWdhdGl2ZT1PLm5lZ2F0aXZlXnoubmVnYXRpdmUsZWUubGVuZ3RoPU8ubGVuZ3RoK3oubGVuZ3RoLGVlLnN0cmlwKCl9LFUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53''@;'; put 'put ''b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLHRoaXMubXVsVG8oTyx6KX0sVS5wcm90b3R5cGUubXVsZj1mdW5jdGlvbihPKXt2YXIgej1uZXcgVShudWxsKTtyZXR1cm4gei53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgrTy5sZW5ndGgpLG9lKHRoaXMsTyx6KX0sVS5w''@;'; put 'put ''cm90b3R5cGUuaW11bD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLm11bFRvKE8sdGhpcyl9LFUucHJvdG90eXBlLmltdWxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpO2Zvcih2YXIgej0wLGVlPTA7ZWU8dGhpcy5sZW5ndGg7ZWUrKyl7''@;'; put 'put ''dmFyIG5lPSgwfHRoaXMud29yZHNbZWVdKSpPLHg9KDY3MTA4ODYzJm5lKSsoNjcxMDg4NjMmeik7ej4+PTI2LHorPW5lLzY3MTA4ODY0fDAseis9eD4+PjI2LHRoaXMud29yZHNbZWVdPTY3MTA4ODYzJnh9cmV0dXJuIDAhPT16JiYodGhpcy53b3Jkc1tlZV09eix0aGlzLmxlbmd0aCsrKSx0''@;'; put 'put ''aGlzfSxVLnByb3RvdHlwZS5tdWxuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW11bG4oTyl9LFUucHJvdG90eXBlLnNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLm11bCh0aGlzKX0sVS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltdWwodGhpcy5j''@;'; put 'put ''bG9uZSgpKX0sVS5wcm90b3R5cGUucG93PWZ1bmN0aW9uKE8pe3ZhciB6PWZ1bmN0aW9uIHRlKGhlKXtmb3IodmFyIE89bmV3IEFycmF5KGhlLmJpdExlbmd0aCgpKSx6PTA7ejxPLmxlbmd0aDt6Kyspe3ZhciBuZT16JTI2O09bel09KGhlLndvcmRzW3ovMjZ8MF0mMTw8bmUpPj4+bmV9cmV0''@;'; put 'put ''dXJuIE99KE8pO2lmKDA9PT16Lmxlbmd0aClyZXR1cm4gbmV3IFUoMSk7Zm9yKHZhciBlZT10aGlzLG5lPTA7bmU8ei5sZW5ndGgmJjA9PT16W25lXTtuZSsrLGVlPWVlLnNxcigpKTtpZigrK25lPHoubGVuZ3RoKWZvcih2YXIgeD1lZS5zcXIoKTtuZTx6Lmxlbmd0aDtuZSsrLHg9eC5zcXIo''@;'; put 'put ''KSkwIT09eltuZV0mJihlZT1lZS5tdWwoeCkpO3JldHVybiBlZX0sVS5wcm90b3R5cGUuaXVzaGxuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgeCx6PU8lMjYsZWU9KE8teikvMjYsbmU9NjcxMDg4NjM+Pj4yNi16PDwyNi16O2lmKDAhPT16KXt2YXIgUD0w''@;'; put 'put ''O2Zvcih4PTA7eDx0aGlzLmxlbmd0aDt4Kyspe3ZhciBWPXRoaXMud29yZHNbeF0mbmU7dGhpcy53b3Jkc1t4XT0oMHx0aGlzLndvcmRzW3hdKS1WPDx6fFAsUD1WPj4+MjYten1QJiYodGhpcy53b3Jkc1t4XT1QLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1lZSl7Zm9yKHg9dGhpcy5sZW5ndGgt''@;'; put 'put ''MTt4Pj0wO3gtLSl0aGlzLndvcmRzW3grZWVdPXRoaXMud29yZHNbeF07Zm9yKHg9MDt4PGVlO3grKyl0aGlzLndvcmRzW3hdPTA7dGhpcy5sZW5ndGgrPWVlfXJldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaGxuPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PT10aGlzLm5lZ2F0''@;'; put 'put ''aXZlKSx0aGlzLml1c2hsbihPKX0sVS5wcm90b3R5cGUuaXVzaHJuPWZ1bmN0aW9uKE8seixlZSl7dmFyIG5lO0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKSxuZT16Pyh6LXolMjYpLzI2OjA7dmFyIHg9TyUyNixQPU1hdGgubWluKChPLXgpLzI2LHRoaXMubGVuZ3RoKSxWPTY3MTA4ODYz''@;'; put 'put ''XjY3MTA4ODYzPj4+eDw8eCxUPWVlO2lmKG5lLT1QLG5lPU1hdGgubWF4KDAsbmUpLFQpe2Zvcih2YXIgUz0wO1M8UDtTKyspVC53b3Jkc1tTXT10aGlzLndvcmRzW1NdO1QubGVuZ3RoPVB9aWYoMCE9PVApaWYodGhpcy5sZW5ndGg+UClmb3IodGhpcy5sZW5ndGgtPVAsUz0wO1M8dGhpcy5s''@;'; put 'put ''ZW5ndGg7UysrKXRoaXMud29yZHNbU109dGhpcy53b3Jkc1tTK1BdO2Vsc2UgdGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTE7dmFyIEY9MDtmb3IoUz10aGlzLmxlbmd0aC0xO1M+PTAmJigwIT09Rnx8Uz49bmUpO1MtLSl7dmFyIHllPTB8dGhpcy53b3Jkc1tTXTt0aGlzLndvcmRzW1Nd''@;'; put 'put ''PUY8PDI2LXh8eWU+Pj54LEY9eWUmVn1yZXR1cm4gVCYmMCE9PUYmJihULndvcmRzW1QubGVuZ3RoKytdPUYpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKE8seixlZSl7cmV0''@;'; put 'put ''dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaHJuKE8seixlZSl9LFUucHJvdG90eXBlLnNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hsbihPKX0sVS5wcm90b3R5cGUudXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNobG4oTyl9''@;'; put 'put ''LFUucHJvdG90eXBlLnNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc2hybihPKX0sVS5wcm90b3R5cGUudXNocm49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pdXNocm4oTyl9LFUucHJvdG90eXBlLnRlc3RuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5''@;'; put 'put ''cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LGVlPShPLXopLzI2O3JldHVybiEodGhpcy5sZW5ndGg8PWVlfHwhKHRoaXMud29yZHNbZWVdJjE8PHopKX0sVS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKE8pe0UoIm51bWJlciI9PXR5cGVvZiBPJiZPPj0wKTt2YXIgej1PJTI2LGVlPShPLXop''@;'; put 'put ''LzI2O3JldHVybiBFKDA9PT10aGlzLm5lZ2F0aXZlLCJpbWFza24gd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlIG51bWJlcnMiKSx0aGlzLmxlbmd0aDw9ZWU/dGhpczooMCE9PXomJmVlKyssdGhpcy5sZW5ndGg9TWF0aC5taW4oZWUsdGhpcy5sZW5ndGgpLDAhPT16JiYodGhpcy53b3Jkc1t0''@;'; put 'put ''aGlzLmxlbmd0aC0xXSY9NjcxMDg4NjNeNjcxMDg4NjM+Pj56PDx6KSx0aGlzLnN0cmlwKCkpfSxVLnByb3RvdHlwZS5tYXNrbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltYXNrbihPKX0sVS5wcm90b3R5cGUuaWFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIm51bWJlciI9''@;'; put 'put ''PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MD90aGlzLmlzdWJuKC1PKTowIT09dGhpcy5uZWdhdGl2ZT8xPT09dGhpcy5sZW5ndGgmJigwfHRoaXMud29yZHNbMF0pPE8/KHRoaXMud29yZHNbMF09Ty0oMHx0aGlzLndvcmRzWzBdKSx0aGlzLm5lZ2F0aXZlPTAsdGhpcyk6KHRoaXMubmVn''@;'; put 'put ''YXRpdmU9MCx0aGlzLmlzdWJuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzKTp0aGlzLl9pYWRkbihPKX0sVS5wcm90b3R5cGUuX2lhZGRuPWZ1bmN0aW9uKE8pe3RoaXMud29yZHNbMF0rPU87Zm9yKHZhciB6PTA7ejx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1t6XT49NjcxMDg4NjQ7eisrKXRo''@;'; put 'put ''aXMud29yZHNbel0tPTY3MTA4ODY0LHo9PT10aGlzLmxlbmd0aC0xP3RoaXMud29yZHNbeisxXT0xOnRoaXMud29yZHNbeisxXSsrO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCx6KzEpLHRoaXN9LFUucHJvdG90eXBlLmlzdWJuPWZ1bmN0aW9uKE8pe2lmKEUoIm51''@;'; put 'put ''bWJlciI9PXR5cGVvZiBPKSxFKE88NjcxMDg4NjQpLE88MClyZXR1cm4gdGhpcy5pYWRkbigtTyk7aWYoMCE9PXRoaXMubmVnYXRpdmUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmlhZGRuKE8pLHRoaXMubmVnYXRpdmU9MSx0aGlzO2lmKHRoaXMud29yZHNbMF0tPU8sMT09PXRoaXMu''@;'; put 'put ''bGVuZ3RoJiZ0aGlzLndvcmRzWzBdPDApdGhpcy53b3Jkc1swXT0tdGhpcy53b3Jkc1swXSx0aGlzLm5lZ2F0aXZlPTE7ZWxzZSBmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPDA7eisrKXRoaXMud29yZHNbel0rPTY3MTA4ODY0LHRoaXMud29yZHNbeisxXS09MTty''@;'; put 'put ''ZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5hZGRuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWFkZG4oTyl9LFUucHJvdG90eXBlLnN1Ym49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3VibihPKX0sVS5wcm90b3R5cGUuaWFicz1mdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpc30sVS5wcm90b3R5cGUuYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWJzKCl9LFUucHJvdG90eXBlLl9pc2hsbnN1Ym11bD1mdW5jdGlvbihPLHosZWUpe3ZhciB4O3RoaXMuX2V4cGFuZChPLmxlbmd0aCtlZSk7dmFyIFAs''@;'; put 'put ''Vj0wO2Zvcih4PTA7eDxPLmxlbmd0aDt4Kyspe1A9KDB8dGhpcy53b3Jkc1t4K2VlXSkrVjt2YXIgVD0oMHxPLndvcmRzW3hdKSp6O1Y9KChQLT02NzEwODg2MyZUKT4+MjYpLShULzY3MTA4ODY0fDApLHRoaXMud29yZHNbeCtlZV09NjcxMDg4NjMmUH1mb3IoO3g8dGhpcy5sZW5ndGgtZWU7''@;'; put 'put ''eCsrKVY9KFA9KDB8dGhpcy53b3Jkc1t4K2VlXSkrVik+PjI2LHRoaXMud29yZHNbeCtlZV09NjcxMDg4NjMmUDtpZigwPT09VilyZXR1cm4gdGhpcy5zdHJpcCgpO2ZvcihFKC0xPT09ViksVj0wLHg9MDt4PHRoaXMubGVuZ3RoO3grKylWPShQPS0oMHx0aGlzLndvcmRzW3hdKStWKT4+MjYs''@;'; put 'put ''dGhpcy53b3Jkc1t4XT02NzEwODg2MyZQO3JldHVybiB0aGlzLm5lZ2F0aXZlPTEsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fd29yZERpdj1mdW5jdGlvbihPLHope3ZhciBlZSxuZT10aGlzLmNsb25lKCkseD1PLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdOzAhPShlZT0yNi10aGlzLl9j''@;'; put 'put ''b3VudEJpdHMoUCkpJiYoeD14LnVzaGxuKGVlKSxuZS5pdXNobG4oZWUpLFA9MHx4LndvcmRzW3gubGVuZ3RoLTFdKTt2YXIgUyxUPW5lLmxlbmd0aC14Lmxlbmd0aDtpZigibW9kIiE9PXopeyhTPW5ldyBVKG51bGwpKS5sZW5ndGg9VCsxLFMud29yZHM9bmV3IEFycmF5KFMubGVuZ3RoKTtm''@;'; put 'put ''b3IodmFyIEY9MDtGPFMubGVuZ3RoO0YrKylTLndvcmRzW0ZdPTB9dmFyIHllPW5lLmNsb25lKCkuX2lzaGxuc3VibXVsKHgsMSxUKTswPT09eWUubmVnYXRpdmUmJihuZT15ZSxTJiYoUy53b3Jkc1tUXT0xKSk7Zm9yKHZhciBDZT1ULTE7Q2U+PTA7Q2UtLSl7dmFyIERlPTY3MTA4ODY0Kigw''@;'; put 'put ''fG5lLndvcmRzW3gubGVuZ3RoK0NlXSkrKDB8bmUud29yZHNbeC5sZW5ndGgrQ2UtMV0pO2ZvcihEZT1NYXRoLm1pbihEZS9QfDAsNjcxMDg4NjMpLG5lLl9pc2hsbnN1Ym11bCh4LERlLENlKTswIT09bmUubmVnYXRpdmU7KURlLS0sbmUubmVnYXRpdmU9MCxuZS5faXNobG5zdWJtdWwoeCwx''@;'; put 'put ''LENlKSxuZS5pc1plcm8oKXx8KG5lLm5lZ2F0aXZlXj0xKTtTJiYoUy53b3Jkc1tDZV09RGUpfXJldHVybiBTJiZTLnN0cmlwKCksbmUuc3RyaXAoKSwiZGl2IiE9PXomJjAhPT1lZSYmbmUuaXVzaHJuKGVlKSx7ZGl2OlN8fG51bGwsbW9kOm5lfX0sVS5wcm90b3R5cGUuZGl2bW9kPWZ1bmN0''@;'; put 'put ''aW9uKE8seixlZSl7cmV0dXJuIEUoIU8uaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgVSgwKSxtb2Q6bmV3IFUoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZT8oUD10aGlzLm5lZygpLmRpdm1vZChPLHopLCJtb2QiIT09eiYmKG5lPVAuZGl2Lm5lZygpKSwi''@;'; put 'put ''ZGl2IiE9PXomJih4PVAubW9kLm5lZygpLGVlJiYwIT09eC5uZWdhdGl2ZSYmeC5pYWRkKE8pKSx7ZGl2Om5lLG1vZDp4fSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT1PLm5lZ2F0aXZlPyhQPXRoaXMuZGl2bW9kKE8ubmVnKCkseiksIm1vZCIhPT16JiYobmU9UC5kaXYubmVnKCkpLHtkaXY6''@;'; put 'put ''bmUsbW9kOlAubW9kfSk6MCE9KHRoaXMubmVnYXRpdmUmTy5uZWdhdGl2ZSk/KFA9dGhpcy5uZWcoKS5kaXZtb2QoTy5uZWcoKSx6KSwiZGl2IiE9PXomJih4PVAubW9kLm5lZygpLGVlJiYwIT09eC5uZWdhdGl2ZSYmeC5pc3ViKE8pKSx7ZGl2OlAuZGl2LG1vZDp4fSk6Ty5sZW5ndGg+dGhp''@;'; put 'put ''cy5sZW5ndGh8fHRoaXMuY21wKE8pPDA/e2RpdjpuZXcgVSgwKSxtb2Q6dGhpc306MT09PU8ubGVuZ3RoPyJkaXYiPT09ej97ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT16P3tkaXY6bnVsbCxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06e2Rp''@;'; put 'put ''djp0aGlzLmRpdm4oTy53b3Jkc1swXSksbW9kOm5ldyBVKHRoaXMubW9kbihPLndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYoTyx6KTt2YXIgbmUseCxQfSxVLnByb3RvdHlwZS5kaXY9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sImRpdiIsITEpLmRpdn0sVS5wcm90b3R5cGUu''@;'; put 'put ''bW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmRpdm1vZChPLCJtb2QiLCExKS5tb2R9LFUucHJvdG90eXBlLnVtb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITApLm1vZH0sVS5wcm90b3R5cGUuZGl2Um91bmQ9ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5kaXZt''@;'; put 'put ''b2QoTyk7aWYoei5tb2QuaXNaZXJvKCkpcmV0dXJuIHouZGl2O3ZhciBlZT0wIT09ei5kaXYubmVnYXRpdmU/ei5tb2QuaXN1YihPKTp6Lm1vZCxuZT1PLnVzaHJuKDEpLHg9Ty5hbmRsbigxKSxQPWVlLmNtcChuZSk7cmV0dXJuIFA8MHx8MT09PXgmJjA9PT1QP3ouZGl2OjAhPT16LmRpdi5u''@;'; put 'put ''ZWdhdGl2ZT96LmRpdi5pc3VibigxKTp6LmRpdi5pYWRkbigxKX0sVS5wcm90b3R5cGUubW9kbj1mdW5jdGlvbihPKXtFKE88PTY3MTA4ODYzKTtmb3IodmFyIHo9KDE8PDI2KSVPLGVlPTAsbmU9dGhpcy5sZW5ndGgtMTtuZT49MDtuZS0tKWVlPSh6KmVlKygwfHRoaXMud29yZHNbbmVdKSkl''@;'; put 'put ''TztyZXR1cm4gZWV9LFUucHJvdG90eXBlLmlkaXZuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0wLGVlPXRoaXMubGVuZ3RoLTE7ZWU+PTA7ZWUtLSl7dmFyIG5lPSgwfHRoaXMud29yZHNbZWVdKSs2NzEwODg2NCp6O3RoaXMud29yZHNbZWVdPW5lL098MCx6PW5lJU99''@;'; put 'put ''cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKE8pfSxVLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUpLEUoIU8uaXNaZXJvKCkpO3ZhciB6PXRoaXMsZWU9Ty5jbG9uZSgp''@;'; put 'put ''O3o9MCE9PXoubmVnYXRpdmU/ei51bW9kKE8pOnouY2xvbmUoKTtmb3IodmFyIG5lPW5ldyBVKDEpLHg9bmV3IFUoMCksUD1uZXcgVSgwKSxWPW5ldyBVKDEpLFQ9MDt6LmlzRXZlbigpJiZlZS5pc0V2ZW4oKTspei5pdXNocm4oMSksZWUuaXVzaHJuKDEpLCsrVDtmb3IodmFyIFM9ZWUuY2xv''@;'; put 'put ''bmUoKSxGPXouY2xvbmUoKTshei5pc1plcm8oKTspe2Zvcih2YXIgeWU9MCxDZT0xOzA9PSh6LndvcmRzWzBdJkNlKSYmeWU8MjY7Kyt5ZSxDZTw8PTEpO2lmKHllPjApZm9yKHouaXVzaHJuKHllKTt5ZS0tID4wOykobmUuaXNPZGQoKXx8eC5pc09kZCgpKSYmKG5lLmlhZGQoUykseC5pc3Vi''@;'; put 'put ''KEYpKSxuZS5pdXNocm4oMSkseC5pdXNocm4oMSk7Zm9yKHZhciBEZT0wLFBlPTE7MD09KGVlLndvcmRzWzBdJlBlKSYmRGU8MjY7KytEZSxQZTw8PTEpO2lmKERlPjApZm9yKGVlLml1c2hybihEZSk7RGUtLSA+MDspKFAuaXNPZGQoKXx8Vi5pc09kZCgpKSYmKFAuaWFkZChTKSxWLmlzdWIo''@;'; put 'put ''RikpLFAuaXVzaHJuKDEpLFYuaXVzaHJuKDEpO3ouY21wKGVlKT49MD8oei5pc3ViKGVlKSxuZS5pc3ViKFApLHguaXN1YihWKSk6KGVlLmlzdWIoeiksUC5pc3ViKG5lKSxWLmlzdWIoeCkpfXJldHVybnthOlAsYjpWLGdjZDplZS5pdXNobG4oVCl9fSxVLnByb3RvdHlwZS5faW52bXA9ZnVu''@;'; put 'put ''Y3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHllLHo9dGhpcyxlZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgbmU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPWVlLmNsb25lKCk7ei5jbXBuKDEpPjAmJmVl''@;'; put 'put ''LmNtcG4oMSk+MDspe2Zvcih2YXIgVj0wLFQ9MTswPT0oei53b3Jkc1swXSZUKSYmVjwyNjsrK1YsVDw8PTEpO2lmKFY+MClmb3Ioei5pdXNocm4oVik7Vi0tID4wOyluZS5pc09kZCgpJiZuZS5pYWRkKFApLG5lLml1c2hybigxKTtmb3IodmFyIFM9MCxGPTE7MD09KGVlLndvcmRzWzBdJkYp''@;'; put 'put ''JiZTPDI2OysrUyxGPDw9MSk7aWYoUz4wKWZvcihlZS5pdXNocm4oUyk7Uy0tID4wOyl4LmlzT2RkKCkmJnguaWFkZChQKSx4Lml1c2hybigxKTt6LmNtcChlZSk+PTA/KHouaXN1YihlZSksbmUuaXN1Yih4KSk6KGVlLmlzdWIoeikseC5pc3ViKG5lKSl9cmV0dXJuKHllPTA9PT16LmNtcG4o''@;'; put 'put ''MSk/bmU6eCkuY21wbigwKTwwJiZ5ZS5pYWRkKE8pLHllfSxVLnByb3RvdHlwZS5nY2Q9ZnVuY3Rpb24oTyl7aWYodGhpcy5pc1plcm8oKSlyZXR1cm4gTy5hYnMoKTtpZihPLmlzWmVybygpKXJldHVybiB0aGlzLmFicygpO3ZhciB6PXRoaXMuY2xvbmUoKSxlZT1PLmNsb25lKCk7ei5uZWdh''@;'; put 'put ''dGl2ZT0wLGVlLm5lZ2F0aXZlPTA7Zm9yKHZhciBuZT0wO3ouaXNFdmVuKCkmJmVlLmlzRXZlbigpO25lKyspei5pdXNocm4oMSksZWUuaXVzaHJuKDEpO2Zvcig7Oyl7Zm9yKDt6LmlzRXZlbigpOyl6Lml1c2hybigxKTtmb3IoO2VlLmlzRXZlbigpOyllZS5pdXNocm4oMSk7dmFyIHg9ei5j''@;'; put 'put ''bXAoZWUpO2lmKHg8MCl7dmFyIFA9ejt6PWVlLGVlPVB9ZWxzZSBpZigwPT09eHx8MD09PWVlLmNtcG4oMSkpYnJlYWs7ei5pc3ViKGVlKX1yZXR1cm4gZWUuaXVzaGxuKG5lKX0sVS5wcm90b3R5cGUuaW52bT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5lZ2NkKE8pLmEudW1vZChPKX0sVS5w''@;'; put 'put ''cm90b3R5cGUuaXNFdmVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5pc09kZD1mdW5jdGlvbigpe3JldHVybiAxPT0oMSZ0aGlzLndvcmRzWzBdKX0sVS5wcm90b3R5cGUuYW5kbG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMud29yZHNbMF0m''@;'; put 'put ''T30sVS5wcm90b3R5cGUuYmluY249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pO3ZhciB6PU8lMjYsZWU9KE8teikvMjYsbmU9MTw8ejtpZih0aGlzLmxlbmd0aDw9ZWUpcmV0dXJuIHRoaXMuX2V4cGFuZChlZSsxKSx0aGlzLndvcmRzW2VlXXw9bmUsdGhpcztmb3IodmFyIHg9''@;'; put 'put ''bmUsUD1lZTswIT09eCYmUDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPTB8dGhpcy53b3Jkc1tQXTt4PShWKz14KT4+PjI2LHRoaXMud29yZHNbUF09ViY9NjcxMDg4NjN9cmV0dXJuIDAhPT14JiYodGhpcy53b3Jkc1tQXT14LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLmlzWmVy''@;'; put 'put ''bz1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdfSxVLnByb3RvdHlwZS5jbXBuPWZ1bmN0aW9uKE8pe3ZhciBlZSx6PU88MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXopcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnopcmV0dXJuIDE7''@;'; put 'put ''aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpZWU9MTtlbHNle3omJihPPS1PKSxFKE88PTY3MTA4ODYzLCJOdW1iZXIgaXMgdG9vIGJpZyIpO3ZhciBuZT0wfHRoaXMud29yZHNbMF07ZWU9bmU9PT1PPzA6bmU8Tz8tMToxfXJldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8wfC1lZTplZX0s''@;'; put 'put ''VS5wcm90b3R5cGUuY21wPWZ1bmN0aW9uKE8pe2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYwPT09Ty5uZWdhdGl2ZSlyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmUpcmV0dXJuIDE7dmFyIHo9dGhpcy51Y21wKE8pO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZT8w''@;'; put 'put ''fC16Onp9LFUucHJvdG90eXBlLnVjbXA9ZnVuY3Rpb24oTyl7aWYodGhpcy5sZW5ndGg+Ty5sZW5ndGgpcmV0dXJuIDE7aWYodGhpcy5sZW5ndGg8Ty5sZW5ndGgpcmV0dXJuLTE7Zm9yKHZhciB6PTAsZWU9dGhpcy5sZW5ndGgtMTtlZT49MDtlZS0tKXt2YXIgbmU9MHx0aGlzLndvcmRzW2Vl''@;'; put 'put ''XSx4PTB8Ty53b3Jkc1tlZV07aWYobmUhPT14KXtuZTx4P3o9LTE6bmU+eCYmKHo9MSk7YnJlYWt9fXJldHVybiB6fSxVLnByb3RvdHlwZS5ndG49ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmd0PWZ1bmN0aW9uKE8pe3JldHVybiAxPT09dGhpcy5j''@;'; put 'put ''bXAoTyl9LFUucHJvdG90eXBlLmd0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKT49MH0sVS5wcm90b3R5cGUuZ3RlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKT49MH0sVS5wcm90b3R5cGUubHRuPWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXBuKE8pfSxV''@;'; put 'put ''LnByb3RvdHlwZS5sdD1mdW5jdGlvbihPKXtyZXR1cm4tMT09PXRoaXMuY21wKE8pfSxVLnByb3RvdHlwZS5sdGVuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcG4oTyk8PTB9LFUucHJvdG90eXBlLmx0ZT1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXAoTyk8PTB9LFUucHJvdG90eXBl''@;'; put 'put ''LmVxbj1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZXE9ZnVuY3Rpb24oTyl7cmV0dXJuIDA9PT10aGlzLmNtcChPKX0sVS5yZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBUZShPKX0sVS5wcm90b3R5cGUudG9SZWQ9ZnVuY3Rpb24oTyl7cmV0dXJu''@;'; put 'put ''IEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksRSgwPT09dGhpcy5uZWdhdGl2ZSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxPLmNvbnZlcnRUbyh0aGlzKS5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLmZyb21SZWQ9ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gRSh0aGlzLnJlZCwiZnJvbVJlZCB3b3JrcyBvbmx5IHdpdGggbnVtYmVycyBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMucmVkLmNvbnZlcnRGcm9tKHRoaXMpfSxVLnByb3RvdHlwZS5fZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucmVkPU8sdGhpc30s''@;'; put 'put ''VS5wcm90b3R5cGUuZm9yY2VSZWQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoIXRoaXMucmVkLCJBbHJlYWR5IGEgbnVtYmVyIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5fZm9yY2VSZWQoTyl9LFUucHJvdG90eXBlLnJlZEFkZD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVk''@;'; put 'put ''QWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRJQWRkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlhZGQodGhpcyxP''@;'; put 'put ''KX0sVS5wcm90b3R5cGUucmVkU3ViPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJl''@;'; put 'put ''ZElTdWIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaXN1Yih0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTaGw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFNobCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zaGwodGhpcyxP''@;'; put 'put ''KX0sVS5wcm90b3R5cGUucmVkTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5tdWwodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSU11bD1mdW5jdGlv''@;'; put 'put ''bihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsTyksdGhpcy5yZWQuaW11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3Fy''@;'; put 'put ''IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkSVNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRJU3FyIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRo''@;'; put 'put ''aXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmlzcXIodGhpcyl9LFUucHJvdG90eXBlLnJlZFNxcnQ9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU3FydCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5z''@;'; put 'put ''cXJ0KHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJbnZtPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZEludm0gd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaW52bSh0aGlzKX0sVS5wcm90b3R5cGUucmVkTmVnPWZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE5lZyB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5uZWcodGhpcyl9LFUucHJvdG90eXBlLnJlZFBvdz1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCYmIU8ucmVk''@;'; put 'put ''LCJyZWRQb3cobm9ybWFsTnVtKSIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnBvdyh0aGlzLE8pfTt2YXIgZGU9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB2ZShoZSxPKXt0aGlzLm5hbWU9aGUsdGhpcy5wPW5ldyBVKE8s''@;'; put 'put ''MTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBVKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiBBZSgpe3ZlLmNhbGwodGhpcywiazI1NiIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZm''@;'; put 'put ''IGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZlIGZmZmZmYzJmIil9ZnVuY3Rpb24ga2UoKXt2ZS5jYWxsKHRoaXMsInAyMjQiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMSIpfWZ1bmN0aW9uIFNlKCl7dmUuY2FsbCh0aGlz''@;'; put 'put ''LCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiBJZSgpe3ZlLmNhbGwodGhpcywiMjU1MTkiLCI3ZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZm''@;'; put 'put ''ZmVkIil9ZnVuY3Rpb24gVGUoaGUpe2lmKCJzdHJpbmciPT10eXBlb2YgaGUpe3ZhciBPPVUuX3ByaW1lKGhlKTt0aGlzLm09Ty5wLHRoaXMucHJpbWU9T31lbHNlIEUoaGUuZ3RuKDEpLCJtb2R1bHVzIG11c3QgYmUgZ3JlYXRlciB0aGFuIDEiKSx0aGlzLm09aGUsdGhpcy5wcmltZT1udWxs''@;'; put 'put ''fWZ1bmN0aW9uIE1lKGhlKXtUZS5jYWxsKHRoaXMsaGUpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IFUoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9k''@;'; put 'put ''KHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9''@;'; put 'put ''dmUucHJvdG90eXBlLl90bXA9ZnVuY3Rpb24oKXt2YXIgTz1uZXcgVShudWxsKTtyZXR1cm4gTy53b3Jkcz1uZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMubi8xMykpLE99LHZlLnByb3RvdHlwZS5pcmVkdWNlPWZ1bmN0aW9uKE8pe3ZhciBlZSx6PU87ZG97dGhpcy5zcGxpdCh6LHRoaXMudG1w''@;'; put 'put ''KSxlZT0oej0oej10aGlzLmltdWxLKHopKS5pYWRkKHRoaXMudG1wKSkuYml0TGVuZ3RoKCl9d2hpbGUoZWU+dGhpcy5uKTt2YXIgbmU9ZWU8dGhpcy5uPy0xOnoudWNtcCh0aGlzLnApO3JldHVybiAwPT09bmU/KHoud29yZHNbMF09MCx6Lmxlbmd0aD0xKTpuZT4wP3ouaXN1Yih0aGlzLnAp''@;'; put 'put ''OnZvaWQgMCE9PXouc3RyaXA/ei5zdHJpcCgpOnouX3N0cmlwKCksen0sdmUucHJvdG90eXBlLnNwbGl0PWZ1bmN0aW9uKE8seil7Ty5pdXNocm4odGhpcy5uLDAseil9LHZlLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtyZXR1cm4gTy5pbXVsKHRoaXMuayl9LEVlKEFlLHZlKSxBZS5w''@;'; put 'put ''cm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtmb3IodmFyIG5lPU1hdGgubWluKE8ubGVuZ3RoLDkpLHg9MDt4PG5lO3grKyl6LndvcmRzW3hdPU8ud29yZHNbeF07aWYoei5sZW5ndGg9bmUsTy5sZW5ndGg8PTkpcmV0dXJuIE8ud29yZHNbMF09MCx2b2lkKE8ubGVuZ3RoPTEpO3ZhciBQ''@;'; put 'put ''PU8ud29yZHNbOV07Zm9yKHoud29yZHNbei5sZW5ndGgrK109NDE5NDMwMyZQLHg9MTA7eDxPLmxlbmd0aDt4Kyspe3ZhciBWPTB8Ty53b3Jkc1t4XTtPLndvcmRzW3gtMTBdPSg0MTk0MzAzJlYpPDw0fFA+Pj4yMixQPVZ9Ty53b3Jkc1t4LTEwXT1QPj4+PTIyLE8ubGVuZ3RoLT0wPT09UCYm''@;'; put 'put ''Ty5sZW5ndGg+MTA/MTA6OX0sQWUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe08ud29yZHNbTy5sZW5ndGhdPTAsTy53b3Jkc1tPLmxlbmd0aCsxXT0wLE8ubGVuZ3RoKz0yO2Zvcih2YXIgej0wLGVlPTA7ZWU8Ty5sZW5ndGg7ZWUrKyl7dmFyIG5lPTB8Ty53b3Jkc1tlZV07Ty53b3Jk''@;'; put 'put ''c1tlZV09NjcxMDg4NjMmKHorPTk3NypuZSksej02NCpuZSsoei82NzEwODg2NHwwKX1yZXR1cm4gMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJihPLmxlbmd0aC0tLDA9PT1PLndvcmRzW08ubGVuZ3RoLTFdJiZPLmxlbmd0aC0tKSxPfSxFZShrZSx2ZSksRWUoU2UsdmUpLEVlKEllLHZlKSxJ''@;'; put 'put ''ZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PTAsZWU9MDtlZTxPLmxlbmd0aDtlZSsrKXt2YXIgbmU9MTkqKDB8Ty53b3Jkc1tlZV0pK3oseD02NzEwODg2MyZuZTtuZT4+Pj0yNixPLndvcmRzW2VlXT14LHo9bmV9cmV0dXJuIDAhPT16JiYoTy53b3Jkc1tPLmxlbmd0''@;'; put 'put ''aCsrXT16KSxPfSxVLl9wcmltZT1mdW5jdGlvbihPKXtpZihkZVtPXSlyZXR1cm4gZGVbT107dmFyIHo7aWYoImsyNTYiPT09Tyl6PW5ldyBBZTtlbHNlIGlmKCJwMjI0Ij09PU8pej1uZXcga2U7ZWxzZSBpZigicDE5MiI9PT1PKXo9bmV3IFNlO2Vsc2V7aWYoInAyNTUxOSIhPT1PKXRocm93''@;'; put 'put ''IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK08pO3o9bmV3IEllfXJldHVybiBkZVtPXT16LHp9LFRlLnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQsInJlZCB3b3JrcyBvbmx5''@;'; put 'put ''IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLl92ZXJpZnkyPWZ1bmN0aW9uKE8seil7RSgwPT0oTy5uZWdhdGl2ZXx6Lm5lZ2F0aXZlKSwicmVkIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZXMiKSxFKE8ucmVkJiZPLnJlZD09PXoucmVkLCJyZWQgd29ya3Mgb25seSB3aXRoIHJl''@;'; put 'put ''ZCBudW1iZXJzIil9LFRlLnByb3RvdHlwZS5pbW9kPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnByaW1lP3RoaXMucHJpbWUuaXJlZHVjZShPKS5fZm9yY2VSZWQodGhpcyk6Ty51bW9kKHRoaXMubSkuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKE8pe3JldHVy''@;'; put 'put ''biBPLmlzWmVybygpP08uY2xvbmUoKTp0aGlzLm0uc3ViKE8pLl9mb3JjZVJlZCh0aGlzKX0sVGUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgZWU9Ty5hZGQoeik7cmV0dXJuIGVlLmNtcCh0aGlzLm0pPj0wJiZlZS5pc3ViKHRoaXMubSksZWUu''@;'; put 'put ''X2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgZWU9Ty5pYWRkKHopO3JldHVybiBlZS5jbXAodGhpcy5tKT49MCYmZWUuaXN1Yih0aGlzLm0pLGVlfSxUZS5wcm90b3R5cGUuc3ViPWZ1bmN0aW9uKE8seil7dGhp''@;'; put 'put ''cy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLnN1Yih6KTtyZXR1cm4gZWUuY21wbigwKTwwJiZlZS5pYWRkKHRoaXMubSksZWUuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuaXN1Yj1mdW5jdGlvbihPLHope3RoaXMuX3ZlcmlmeTIoTyx6KTt2YXIgZWU9Ty5pc3ViKHopO3JldHVybiBl''@;'; put 'put ''ZS5jbXBuKDApPDAmJmVlLmlhZGQodGhpcy5tKSxlZX0sVGUucHJvdG90eXBlLnNobD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkxKE8pLHRoaXMuaW1vZChPLnVzaGxuKHopKX0sVGUucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihP''@;'; put 'put ''LHopLHRoaXMuaW1vZChPLmltdWwoeikpfSxUZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTIoTyx6KSx0aGlzLmltb2QoTy5tdWwoeikpfSxUZS5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbXVsKE8sTy5jbG9uZSgpKX0s''@;'; put 'put ''VGUucHJvdG90eXBlLnNxcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5tdWwoTyxPKX0sVGUucHJvdG90eXBlLnNxcnQ9ZnVuY3Rpb24oTyl7aWYoTy5pc1plcm8oKSlyZXR1cm4gTy5jbG9uZSgpO3ZhciB6PXRoaXMubS5hbmRsbigzKTtpZihFKHolMj09MSksMz09PXope3ZhciBlZT10aGlz''@;'; put 'put ''Lm0uYWRkKG5ldyBVKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KE8sZWUpfWZvcih2YXIgbmU9dGhpcy5tLnN1Ym4oMSkseD0wOyFuZS5pc1plcm8oKSYmMD09PW5lLmFuZGxuKDEpOyl4KyssbmUuaXVzaHJuKDEpO0UoIW5lLmlzWmVybygpKTt2YXIgUD1uZXcgVSgxKS50b1JlZCh0''@;'; put 'put ''aGlzKSxWPVAucmVkTmVnKCksVD10aGlzLm0uc3VibigxKS5pdXNocm4oMSksUz10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKFM9bmV3IFUoMipTKlMpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyhTLFQpLmNtcChWKTspUy5yZWRJQWRkKFYpO2Zvcih2YXIgRj10aGlzLnBvdyhTLG5lKSx5ZT10''@;'; put 'put ''aGlzLnBvdyhPLG5lLmFkZG4oMSkuaXVzaHJuKDEpKSxDZT10aGlzLnBvdyhPLG5lKSxEZT14OzAhPT1DZS5jbXAoUCk7KXtmb3IodmFyIFBlPUNlLFFlPTA7MCE9PVBlLmNtcChQKTtRZSsrKVBlPVBlLnJlZFNxcigpO0UoUWU8RGUpO3ZhciAkZT10aGlzLnBvdyhGLG5ldyBVKDEpLml1c2hs''@;'; put 'put ''bihEZS1RZS0xKSk7eWU9eWUucmVkTXVsKCRlKSxGPSRlLnJlZFNxcigpLENlPUNlLnJlZE11bChGKSxEZT1RZX1yZXR1cm4geWV9LFRlLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3ZhciB6PU8uX2ludm1wKHRoaXMubSk7cmV0dXJuIDAhPT16Lm5lZ2F0aXZlPyh6Lm5lZ2F0aXZlPTAs''@;'; put 'put ''dGhpcy5pbW9kKHopLnJlZE5lZygpKTp0aGlzLmltb2Qoeil9LFRlLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyx6KXtpZih6LmlzWmVybygpKXJldHVybiBuZXcgVSgxKS50b1JlZCh0aGlzKTtpZigwPT09ei5jbXBuKDEpKXJldHVybiBPLmNsb25lKCk7dmFyIG5lPW5ldyBBcnJheSgxNik7''@;'; put 'put ''bmVbMF09bmV3IFUoMSkudG9SZWQodGhpcyksbmVbMV09Tztmb3IodmFyIHg9Mjt4PG5lLmxlbmd0aDt4KyspbmVbeF09dGhpcy5tdWwobmVbeC0xXSxPKTt2YXIgUD1uZVswXSxWPTAsVD0wLFM9ei5iaXRMZW5ndGgoKSUyNjtmb3IoMD09PVMmJihTPTI2KSx4PXoubGVuZ3RoLTE7eD49MDt4''@;'; put 'put ''LS0pe2Zvcih2YXIgRj16LndvcmRzW3hdLHllPVMtMTt5ZT49MDt5ZS0tKXt2YXIgQ2U9Rj4+eWUmMTtQIT09bmVbMF0mJihQPXRoaXMuc3FyKFApKSwwIT09Q2V8fDAhPT1WPyhWPDw9MSxWfD1DZSwoND09KytUfHwwPT09eCYmMD09PXllKSYmKFA9dGhpcy5tdWwoUCxuZVtWXSksVD0wLFY9''@;'; put 'put ''MCkpOlQ9MH1TPTI2fXJldHVybiBQfSxUZS5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKE8pe3ZhciB6PU8udW1vZCh0aGlzLm0pO3JldHVybiB6PT09Tz96LmNsb25lKCk6en0sVGUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKE8pe3ZhciB6PU8uY2xvbmUoKTtyZXR1cm4g''@;'; put 'put ''ei5yZWQ9bnVsbCx6fSxVLm1vbnQ9ZnVuY3Rpb24oTyl7cmV0dXJuIG5ldyBNZShPKX0sRWUoTWUsVGUpLE1lLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLnVzaGxuKHRoaXMuc2hpZnQpKX0sTWUucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0''@;'; put 'put ''aW9uKE8pe3ZhciB6PXRoaXMuaW1vZChPLm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gei5yZWQ9bnVsbCx6fSxNZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIE8ud29yZHNbMF09MCxPLmxlbmd0aD0xLE87dmFyIGVlPU8uaW11''@;'; put 'put ''bCh6KSxuZT1lZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1lZS5pc3ViKG5lKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAm''@;'; put 'put ''JihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sTWUucHJvdG90eXBlLm11bD1mdW5jdGlvbihPLHope2lmKE8uaXNaZXJvKCl8fHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDApLl9mb3JjZVJlZCh0aGlzKTt2YXIgZWU9Ty5tdWwoeiksbmU9ZWUubWFza24odGhpcy5zaGlm''@;'; put 'put ''dCkubXVsKHRoaXMubWludikuaW1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm0pLHg9ZWUuaXN1YihuZSkuaXVzaHJuKHRoaXMuc2hpZnQpLFA9eDtyZXR1cm4geC5jbXAodGhpcy5tKT49MD9QPXguaXN1Yih0aGlzLm0pOnguY21wbigwKTwwJiYoUD14LmlhZGQodGhpcy5tKSksUC5fZm9y''@;'; put 'put ''Y2VSZWQodGhpcyl9LE1lLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltb2QoTy5faW52bXAodGhpcy5tKS5tdWwodGhpcy5yMikpLl9mb3JjZVJlZCh0aGlzKX19KFhlPUwubm1kKFhlKSx0aGlzKX0sNTkwNjk6WGU9PnsidXNlIHN0cmljdCI7dmFyIG1lLEplPSJv''@;'; put 'put ''YmplY3QiPT10eXBlb2YgUmVmbGVjdD9SZWZsZWN0Om51bGwsTD1KZSYmImZ1bmN0aW9uIj09dHlwZW9mIEplLmFwcGx5P0plLmFwcGx5OmZ1bmN0aW9uKHZlLEFlLGtlKXtyZXR1cm4gRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwodmUsQWUsa2UpfTttZT1KZSYmImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIEplLm93bktleXM/SmUub3duS2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKHZlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmUpLmNvbmNhdChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHZlKSl9OmZ1bmN0aW9uKHZlKXty''@;'; put 'put ''ZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModmUpfTt2YXIgRT1OdW1iZXIuaXNOYU58fGZ1bmN0aW9uKHZlKXtyZXR1cm4gdmUhPXZlfTtmdW5jdGlvbiBFZSgpe0VlLmluaXQuY2FsbCh0aGlzKX1YZS5leHBvcnRzPUVlLFhlLmV4cG9ydHMub25jZT1mdW5jdGlvbiBzZShkZSx2''@;'; put 'put ''ZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKEFlLGtlKXtmdW5jdGlvbiBTZShUZSl7ZGUucmVtb3ZlTGlzdGVuZXIodmUsSWUpLGtlKFRlKX1mdW5jdGlvbiBJZSgpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZS5yZW1vdmVMaXN0ZW5lciYmZGUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixT''@;'; put 'put ''ZSksQWUoW10uc2xpY2UuY2FsbChhcmd1bWVudHMpKX1jZShkZSx2ZSxJZSx7b25jZTohMH0pLCJlcnJvciIhPT12ZSYmZnVuY3Rpb24gb2UoZGUsdmUsQWUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZS5vbiYmY2UoZGUsImVycm9yIix2ZSxBZSl9KGRlLFNlLHtvbmNlOiEwfSl9KX0sRWUuRXZl''@;'; put 'put ''bnRFbWl0dGVyPUVlLEVlLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCxFZS5wcm90b3R5cGUuX2V2ZW50c0NvdW50PTAsRWUucHJvdG90eXBlLl9tYXhMaXN0ZW5lcnM9dm9pZCAwO3ZhciBVPTEwO2Z1bmN0aW9uIFEoZGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBkZSl0aHJvdyBuZXcgVHlw''@;'; put 'put ''ZUVycm9yKCdUaGUgImxpc3RlbmVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRnVuY3Rpb24uIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgZGUpfWZ1bmN0aW9uIGooZGUpe3JldHVybiB2b2lkIDA9PT1kZS5fbWF4TGlzdGVuZXJzP0VlLmRlZmF1bHRNYXhMaXN0ZW5lcnM6ZGUuX21heExp''@;'; put 'put ''c3RlbmVyc31mdW5jdGlvbiByZShkZSx2ZSxBZSxrZSl7dmFyIFNlLEllLFRlO2lmKFEoQWUpLHZvaWQgMD09PShJZT1kZS5fZXZlbnRzKT8oSWU9ZGUuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLGRlLl9ldmVudHNDb3VudD0wKToodm9pZCAwIT09SWUubmV3TGlzdGVuZXImJihkZS5l''@;'; put 'put ''bWl0KCJuZXdMaXN0ZW5lciIsdmUsQWUubGlzdGVuZXI/QWUubGlzdGVuZXI6QWUpLEllPWRlLl9ldmVudHMpLFRlPUllW3ZlXSksdm9pZCAwPT09VGUpVGU9SWVbdmVdPUFlLCsrZGUuX2V2ZW50c0NvdW50O2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIFRlP1RlPUllW3ZlXT1rZT9bQWUs''@;'; put 'put ''VGVdOltUZSxBZV06a2U/VGUudW5zaGlmdChBZSk6VGUucHVzaChBZSksKFNlPWooZGUpKT4wJiZUZS5sZW5ndGg+U2UmJiFUZS53YXJuZWQpe1RlLndhcm5lZD0hMDt2YXIgTWU9bmV3IEVycm9yKCJQb3NzaWJsZSBFdmVudEVtaXR0ZXIgbWVtb3J5IGxlYWsgZGV0ZWN0ZWQuICIrVGUubGVu''@;'; put 'put ''Z3RoKyIgIitTdHJpbmcodmUpKyIgbGlzdGVuZXJzIGFkZGVkLiBVc2UgZW1pdHRlci5zZXRNYXhMaXN0ZW5lcnMoKSB0byBpbmNyZWFzZSBsaW1pdCIpO01lLm5hbWU9Ik1heExpc3RlbmVyc0V4Y2VlZGVkV2FybmluZyIsTWUuZW1pdHRlcj1kZSxNZS50eXBlPXZlLE1lLmNvdW50PVRlLmxl''@;'; put 'put ''bmd0aCxmdW5jdGlvbiBCKGRlKXtjb25zb2xlJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybihkZSl9KE1lKX1yZXR1cm4gZGV9ZnVuY3Rpb24gYWUoKXtpZighdGhpcy5maXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlz''@;'; put 'put ''LmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1bWVudHMpfWZ1bmN0aW9uIFkoZGUsdmUsQWUpe3ZhciBrZT17ZmlyZWQ6ITEsd3JhcEZuOnZvaWQgMCx0YXJnZXQ6''@;'; put 'put ''ZGUsdHlwZTp2ZSxsaXN0ZW5lcjpBZX0sU2U9YWUuYmluZChrZSk7cmV0dXJuIFNlLmxpc3RlbmVyPUFlLGtlLndyYXBGbj1TZSxTZX1mdW5jdGlvbiBXKGRlLHZlLEFlKXt2YXIga2U9ZGUuX2V2ZW50cztpZih2b2lkIDA9PT1rZSlyZXR1cm5bXTt2YXIgU2U9a2VbdmVdO3JldHVybiB2b2lk''@;'; put 'put ''IDA9PT1TZT9bXToiZnVuY3Rpb24iPT10eXBlb2YgU2U/QWU/W1NlLmxpc3RlbmVyfHxTZV06W1NlXTpBZT9mdW5jdGlvbiBKKGRlKXtmb3IodmFyIHZlPW5ldyBBcnJheShkZS5sZW5ndGgpLEFlPTA7QWU8dmUubGVuZ3RoOysrQWUpdmVbQWVdPWRlW0FlXS5saXN0ZW5lcnx8ZGVbQWVdO3Jl''@;'; put 'put ''dHVybiB2ZX0oU2UpOnRlKFNlLFNlLmxlbmd0aCl9ZnVuY3Rpb24gTihkZSl7dmFyIHZlPXRoaXMuX2V2ZW50cztpZih2b2lkIDAhPT12ZSl7dmFyIEFlPXZlW2RlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgQWUpcmV0dXJuIDE7aWYodm9pZCAwIT09QWUpcmV0dXJuIEFlLmxlbmd0aH1yZXR1''@;'; put 'put ''cm4gMH1mdW5jdGlvbiB0ZShkZSx2ZSl7Zm9yKHZhciBBZT1uZXcgQXJyYXkodmUpLGtlPTA7a2U8dmU7KytrZSlBZVtrZV09ZGVba2VdO3JldHVybiBBZX1mdW5jdGlvbiBjZShkZSx2ZSxBZSxrZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlLm9uKWtlLm9uY2U/ZGUub25jZSh2ZSxBZSk6''@;'; put 'put ''ZGUub24odmUsQWUpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGRlLmFkZEV2ZW50TGlzdGVuZXIpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJlbWl0dGVyIiBhcmd1bWVudCBtdXN0IGJlIG9mIHR5cGUgRXZlbnRFbWl0dGVyLiBSZWNlaXZlZCB0eXBlICcrdHlwZW9mIGRlKTtkZS5h''@;'; put 'put ''ZGRFdmVudExpc3RlbmVyKHZlLGZ1bmN0aW9uIFNlKEllKXtrZS5vbmNlJiZkZS5yZW1vdmVFdmVudExpc3RlbmVyKHZlLFNlKSxBZShJZSl9KX19T2JqZWN0LmRlZmluZVByb3BlcnR5KEVlLCJkZWZhdWx0TWF4TGlzdGVuZXJzIix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gVX0sc2V0OmZ1bmN0aW9uKGRlKXtpZigibnVtYmVyIiE9dHlwZW9mIGRlfHxkZTwwfHxFKGRlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJkZWZhdWx0TWF4TGlzdGVuZXJzIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVy''@;'; put 'put ''LiBSZWNlaXZlZCAnK2RlKyIuIik7VT1kZX19KSxFZS5pbml0PWZ1bmN0aW9uKCl7KHZvaWQgMD09PXRoaXMuX2V2ZW50c3x8dGhpcy5fZXZlbnRzPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLl9ldmVudHMpJiYodGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5f''@;'; put 'put ''ZXZlbnRzQ291bnQ9MCksdGhpcy5fbWF4TGlzdGVuZXJzPXRoaXMuX21heExpc3RlbmVyc3x8dm9pZCAwfSxFZS5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKHZlKXtpZigibnVtYmVyIiE9dHlwZW9mIHZlfHx2ZTwwfHxFKHZlKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhl''@;'; put 'put ''IHZhbHVlIG9mICJuIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK3ZlKyIuIik7cmV0dXJuIHRoaXMuX21heExpc3RlbmVycz12ZSx0aGlzfSxFZS5wcm90b3R5cGUuZ2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IGoodGhpcyl9LEVlLnByb3RvdHlwZS5lbWl0PWZ1bmN0aW9uKHZlKXtmb3IodmFyIEFlPVtdLGtlPTE7a2U8YXJndW1lbnRzLmxlbmd0aDtrZSsrKUFlLnB1c2goYXJndW1lbnRzW2tlXSk7dmFyIFNlPSJlcnJvciI9PT12ZSxJZT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09SWUpU2U9U2Um''@;'; put 'put ''JnZvaWQgMD09PUllLmVycm9yO2Vsc2UgaWYoIVNlKXJldHVybiExO2lmKFNlKXt2YXIgVGU7aWYoQWUubGVuZ3RoPjAmJihUZT1BZVswXSksVGUgaW5zdGFuY2VvZiBFcnJvcil0aHJvdyBUZTt2YXIgTWU9bmV3IEVycm9yKCJVbmhhbmRsZWQgZXJyb3IuIisoVGU/IiAoIitUZS5tZXNzYWdl''@;'; put 'put ''KyIpIjoiIikpO3Rocm93IE1lLmNvbnRleHQ9VGUsTWV9dmFyIGhlPUllW3ZlXTtpZih2b2lkIDA9PT1oZSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgaGUpTChoZSx0aGlzLEFlKTtlbHNle3ZhciBPPWhlLmxlbmd0aCx6PXRlKGhlLE8pO2ZvcihrZT0wO2tlPE87KytrZSlMKHpb''@;'; put 'put ''a2VdLHRoaXMsQWUpfXJldHVybiEwfSxFZS5wcm90b3R5cGUub249RWUucHJvdG90eXBlLmFkZExpc3RlbmVyPWZ1bmN0aW9uKHZlLEFlKXtyZXR1cm4gcmUodGhpcyx2ZSxBZSwhMSl9LEVlLnByb3RvdHlwZS5wcmVwZW5kTGlzdGVuZXI9ZnVuY3Rpb24odmUsQWUpe3JldHVybiByZSh0aGlz''@;'; put 'put ''LHZlLEFlLCEwKX0sRWUucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24odmUsQWUpe3JldHVybiBRKEFlKSx0aGlzLm9uKHZlLFkodGhpcyx2ZSxBZSkpLHRoaXN9LEVlLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyPWZ1bmN0aW9uKHZlLEFlKXtyZXR1cm4gUShBZSksdGhpcy5wcmVwZW5k''@;'; put 'put ''TGlzdGVuZXIodmUsWSh0aGlzLHZlLEFlKSksdGhpc30sRWUucHJvdG90eXBlLm9mZj1FZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24odmUsQWUpe3ZhciBrZSxTZSxJZSxUZSxNZTtpZihRKEFlKSx2b2lkIDA9PT0oU2U9dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2''@;'; put 'put ''b2lkIDA9PT0oa2U9U2VbdmVdKSlyZXR1cm4gdGhpcztpZihrZT09PUFlfHxrZS5saXN0ZW5lcj09PUFlKTA9PS0tdGhpcy5fZXZlbnRzQ291bnQ/dGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCk6KGRlbGV0ZSBTZVt2ZV0sU2UucmVtb3ZlTGlzdGVuZXImJnRoaXMuZW1pdCgicmVt''@;'; put 'put ''b3ZlTGlzdGVuZXIiLHZlLGtlLmxpc3RlbmVyfHxBZSkpO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9mIGtlKXtmb3IoSWU9LTEsVGU9a2UubGVuZ3RoLTE7VGU+PTA7VGUtLSlpZihrZVtUZV09PT1BZXx8a2VbVGVdLmxpc3RlbmVyPT09QWUpe01lPWtlW1RlXS5saXN0ZW5lcixJZT1UZTti''@;'; put 'put ''cmVha31pZihJZTwwKXJldHVybiB0aGlzOzA9PT1JZT9rZS5zaGlmdCgpOmZ1bmN0aW9uIEsoZGUsdmUpe2Zvcig7dmUrMTxkZS5sZW5ndGg7dmUrKylkZVt2ZV09ZGVbdmUrMV07ZGUucG9wKCl9KGtlLEllKSwxPT09a2UubGVuZ3RoJiYoU2VbdmVdPWtlWzBdKSx2b2lkIDAhPT1TZS5yZW1v''@;'; put 'put ''dmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdmUsTWV8fEFlKX1yZXR1cm4gdGhpc30sRWUucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycz1mdW5jdGlvbih2ZSl7dmFyIEFlLGtlLFNlO2lmKHZvaWQgMD09PShrZT10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lm''@;'; put 'put ''KHZvaWQgMD09PWtlLnJlbW92ZUxpc3RlbmVyKXJldHVybiAwPT09YXJndW1lbnRzLmxlbmd0aD8odGhpcy5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5fZXZlbnRzQ291bnQ9MCk6dm9pZCAwIT09a2VbdmVdJiYoMD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9''@;'; put 'put ''T2JqZWN0LmNyZWF0ZShudWxsKTpkZWxldGUga2VbdmVdKSx0aGlzO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXt2YXIgVGUsSWU9T2JqZWN0LmtleXMoa2UpO2ZvcihTZT0wO1NlPEllLmxlbmd0aDsrK1NlKSJyZW1vdmVMaXN0ZW5lciIhPT0oVGU9SWVbU2VdKSYmdGhpcy5yZW1vdmVBbGxM''@;'; put 'put ''aXN0ZW5lcnMoVGUpO3JldHVybiB0aGlzLnJlbW92ZUFsbExpc3RlbmVycygicmVtb3ZlTGlzdGVuZXIiKSx0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wLHRoaXN9aWYoImZ1bmN0aW9uIj09dHlwZW9mKEFlPWtlW3ZlXSkpdGhpcy5yZW1vdmVM''@;'; put 'put ''aXN0ZW5lcih2ZSxBZSk7ZWxzZSBpZih2b2lkIDAhPT1BZSlmb3IoU2U9QWUubGVuZ3RoLTE7U2U+PTA7U2UtLSl0aGlzLnJlbW92ZUxpc3RlbmVyKHZlLEFlW1NlXSk7cmV0dXJuIHRoaXN9LEVlLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24odmUpe3JldHVybiBXKHRoaXMsdmUsITAp''@;'; put 'put ''fSxFZS5wcm90b3R5cGUucmF3TGlzdGVuZXJzPWZ1bmN0aW9uKHZlKXtyZXR1cm4gVyh0aGlzLHZlLCExKX0sRWUubGlzdGVuZXJDb3VudD1mdW5jdGlvbihkZSx2ZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGRlLmxpc3RlbmVyQ291bnQ/ZGUubGlzdGVuZXJDb3VudCh2ZSk6Ti5jYWxs''@;'; put 'put ''KGRlLHZlKX0sRWUucHJvdG90eXBlLmxpc3RlbmVyQ291bnQ9TixFZS5wcm90b3R5cGUuZXZlbnROYW1lcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP21lKHRoaXMuX2V2ZW50cyk6W119fSw0MDM0NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MzUwMikuQnVmZmVyLEI9''@;'; put 'put ''TCg4MDk1KTtYZS5leHBvcnRzPWZ1bmN0aW9uIEUoRWUsVSxRLGope2lmKG1lLmlzQnVmZmVyKEVlKXx8KEVlPW1lLmZyb20oRWUsImJpbmFyeSIpKSxVJiYobWUuaXNCdWZmZXIoVSl8fChVPW1lLmZyb20oVSwiYmluYXJ5IikpLDghPT1VLmxlbmd0aCkpdGhyb3cgbmV3IFJhbmdlRXJyb3Io''@;'; put 'put ''InNhbHQgc2hvdWxkIGJlIEJ1ZmZlciB3aXRoIDggYnl0ZSBsZW5ndGgiKTtmb3IodmFyIHJlPVEvOCxhZT1tZS5hbGxvYyhyZSksWT1tZS5hbGxvYyhqfHwwKSxXPW1lLmFsbG9jKDApO3JlPjB8fGo+MDspe3ZhciBOPW5ldyBCO04udXBkYXRlKFcpLE4udXBkYXRlKEVlKSxVJiZOLnVwZGF0''@;'; put 'put ''ZShVKSxXPU4uZGlnZXN0KCk7dmFyIHRlPTA7aWYocmU+MCl7dmFyIEs9YWUubGVuZ3RoLXJlO3RlPU1hdGgubWluKHJlLFcubGVuZ3RoKSxXLmNvcHkoYWUsSywwLHRlKSxyZS09dGV9aWYodGU8Vy5sZW5ndGgmJmo+MCl7dmFyIEo9WS5sZW5ndGgtaixzZT1NYXRoLm1pbihqLFcubGVuZ3Ro''@;'; put 'put ''LXRlKTtXLmNvcHkoWSxKLHRlLHRlK3NlKSxqLT1zZX19cmV0dXJuIFcuZmlsbCgwKSx7a2V5OmFlLGl2Oll9fX0sMjQ3MTU6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uIEplKEwsbWUsQil7ZnVuY3Rpb24gRShRLGope2lmKCFtZVtRXSl7aWYoIUxbUV0pe2lmKEVlKXJldHVybiBFZShRLCEw''@;'; put 'put ''KTt2YXIgYWU9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrUSsiJyIpO3Rocm93IGFlLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGFlfXZhciBZPW1lW1FdPXtleHBvcnRzOnt9fTtMW1FdWzBdLmNhbGwoWS5leHBvcnRzLGZ1bmN0aW9uKFcpe3JldHVybiBFKExbUV1bMV1bV118''@;'; put 'put ''fFcpfSxZLFkuZXhwb3J0cyxKZSxMLG1lLEIpfXJldHVybiBtZVtRXS5leHBvcnRzfWZvcih2YXIgRWU9dm9pZCAwLFU9MDtVPEIubGVuZ3RoO1UrKylFKEJbVV0pO3JldHVybiBFfSh7MTpbZnVuY3Rpb24oSmUsTCxtZSl7IWZ1bmN0aW9uKEIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRSxFZT0vXi0/''@;'; put 'put ''KD86XGQrKD86XC5cZCopP3xcLlxkKykoPzplWystXT9cZCspPyQvaSxVPU1hdGguY2VpbCxRPU1hdGguZmxvb3Isaj0iW0JpZ051bWJlciBFcnJvcl0gIixyZT1qKyJOdW1iZXIgcHJpbWl0aXZlIGhhcyBtb3JlIHRoYW4gMTUgc2lnbmlmaWNhbnQgZGlnaXRzOiAiLGFlPTFlMTQsWT0xNCxX''@;'; put 'put ''PTkwMDcxOTkyNTQ3NDA5OTEsTj1bMSwxMCwxMDAsMWUzLDFlNCwxZTUsMWU2LDFlNywxZTgsMWU5LDFlMTAsMWUxMSwxZTEyLDFlMTNdLHRlPTFlNyxLPTFlOTtmdW5jdGlvbiBKKGtlKXt2YXIgU2U9MHxrZTtyZXR1cm4gMDxrZXx8a2U9PT1TZT9TZTpTZS0xfWZ1bmN0aW9uIHNlKGtlKXtm''@;'; put 'put ''b3IodmFyIFNlLEllLFRlPTEsTWU9a2UubGVuZ3RoLGhlPWtlWzBdKyIiO1RlPE1lOyl7Zm9yKFNlPWtlW1RlKytdKyIiLEllPVktU2UubGVuZ3RoO0llLS07U2U9IjAiK1NlKTtoZSs9U2V9Zm9yKE1lPWhlLmxlbmd0aDs0OD09PWhlLmNoYXJDb2RlQXQoLS1NZSk7KTtyZXR1cm4gaGUuc2xp''@;'; put 'put ''Y2UoMCxNZSsxfHwxKX1mdW5jdGlvbiBvZShrZSxTZSl7dmFyIEllLFRlLE1lPWtlLmMsaGU9U2UuYyxPPWtlLnMsej1TZS5zLGVlPWtlLmUsbmU9U2UuZTtpZighT3x8IXopcmV0dXJuIG51bGw7aWYoVGU9aGUmJiFoZVswXSwoSWU9TWUmJiFNZVswXSl8fFRlKXJldHVybiBJZT9UZT8wOi16''@;'; put 'put ''Ok87aWYoTyE9eilyZXR1cm4gTztpZihJZT1PPDAsVGU9ZWU9PW5lLCFNZXx8IWhlKXJldHVybiBUZT8wOiFNZV5JZT8xOi0xO2lmKCFUZSlyZXR1cm4gbmU8ZWVeSWU/MTotMTtmb3Ioej0oZWU9TWUubGVuZ3RoKTwobmU9aGUubGVuZ3RoKT9lZTpuZSxPPTA7Tzx6O08rKylpZihNZVtPXSE9''@;'; put 'put ''aGVbT10pcmV0dXJuIE1lW09dPmhlW09dXkllPzE6LTE7cmV0dXJuIGVlPT1uZT8wOm5lPGVlXkllPzE6LTF9ZnVuY3Rpb24gY2Uoa2UsU2UsSWUsVGUpe2lmKGtlPFNlfHxJZTxrZXx8a2UhPT0oa2U8MD9VKGtlKTpRKGtlKSkpdGhyb3cgRXJyb3IoaisoVGV8fCJBcmd1bWVudCIpKygibnVt''@;'; put 'put ''YmVyIj09dHlwZW9mIGtlP2tlPFNlfHxJZTxrZT8iIG91dCBvZiByYW5nZTogIjoiIG5vdCBhbiBpbnRlZ2VyOiAiOiIgbm90IGEgcHJpbWl0aXZlIG51bWJlcjogIikrU3RyaW5nKGtlKSl9ZnVuY3Rpb24gZGUoa2Upe3ZhciBTZT1rZS5jLmxlbmd0aC0xO3JldHVybiBKKGtlLmUvWSk9PVNl''@;'; put 'put ''JiZrZS5jW1NlXSUyIT0wfWZ1bmN0aW9uIHZlKGtlLFNlKXtyZXR1cm4oMTxrZS5sZW5ndGg/a2UuY2hhckF0KDApKyIuIitrZS5zbGljZSgxKTprZSkrKFNlPDA/ImUiOiJlKyIpK1NlfWZ1bmN0aW9uIEFlKGtlLFNlLEllKXt2YXIgVGUsTWU7aWYoU2U8MCl7Zm9yKE1lPUllKyIuIjsrK1Nl''@;'; put 'put ''O01lKz1JZSk7a2U9TWUra2V9ZWxzZSBpZigrK1NlPihUZT1rZS5sZW5ndGgpKXtmb3IoTWU9SWUsU2UtPVRlOy0tU2U7TWUrPUllKTtrZSs9TWV9ZWxzZSBTZTxUZSYmKGtlPWtlLnNsaWNlKDAsU2UpKyIuIitrZS5zbGljZShTZSkpO3JldHVybiBrZX0oRT1mdW5jdGlvbiBrZShTZSl7dmFy''@;'; put 'put ''IEllLFRlLE1lLGhlLE8seixlZSxuZSx4LFAsVj12dC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnZ0LHRvU3RyaW5nOm51bGwsdmFsdWVPZjpudWxsfSxUPW5ldyB2dCgxKSxTPTIwLEY9NCx5ZT0tNyxDZT0yMSxEZT0tMWU3LFBlPTFlNyxRZT0hMSwkZT0xLGd0PTAsd3Q9e3ByZWZpeDoiIixn''@;'; put 'put ''cm91cFNpemU6MyxzZWNvbmRhcnlHcm91cFNpemU6MCxncm91cFNlcGFyYXRvcjoiLCIsZGVjaW1hbFNlcGFyYXRvcjoiLiIsZnJhY3Rpb25Hcm91cFNpemU6MCxmcmFjdGlvbkdyb3VwU2VwYXJhdG9yOiJceGEwIixzdWZmaXg6IiJ9LG10PSIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy''@;'; put 'put ''c3R1dnd4eXoiO2Z1bmN0aW9uIHZ0KHR0LGV0KXt2YXIgbHQsTHQsQ3QsZnQsSHQsR2UsVWUseXQsanQ9dGhpcztpZighKGp0IGluc3RhbmNlb2YgdnQpKXJldHVybiBuZXcgdnQodHQsZXQpO2lmKG51bGw9PWV0KXtpZih0dCBpbnN0YW5jZW9mIHZ0KXJldHVybiBqdC5zPXR0LnMsanQuZT10''@;'; put 'put ''dC5lLHZvaWQoanQuYz0odHQ9dHQuYyk/dHQuc2xpY2UoKTp0dCk7aWYoKEdlPSJudW1iZXIiPT10eXBlb2YgdHQpJiYwKnR0PT0wKXtpZihqdC5zPTEvdHQ8MD8odHQ9LXR0LC0xKToxLHR0PT09fn50dCl7Zm9yKGZ0PTAsSHQ9dHQ7MTA8PUh0O0h0Lz0xMCxmdCsrKTtyZXR1cm4ganQuZT1m''@;'; put 'put ''dCx2b2lkKGp0LmM9W3R0XSl9eXQ9U3RyaW5nKHR0KX1lbHNle2lmKHl0PVN0cmluZyh0dCksIUVlLnRlc3QoeXQpKXJldHVybiBNZShqdCx5dCxHZSk7anQucz00NT09eXQuY2hhckNvZGVBdCgwKT8oeXQ9eXQuc2xpY2UoMSksLTEpOjF9LTE8KGZ0PXl0LmluZGV4T2YoIi4iKSkmJih5dD15''@;'; put 'put ''dC5yZXBsYWNlKCIuIiwiIikpLDA8KEh0PXl0LnNlYXJjaCgvZS9pKSk/KGZ0PDAmJihmdD1IdCksZnQrPSt5dC5zbGljZShIdCsxKSx5dD15dC5zdWJzdHJpbmcoMCxIdCkpOmZ0PDAmJihmdD15dC5sZW5ndGgpfWVsc2V7aWYoY2UoZXQsMixtdC5sZW5ndGgsIkJhc2UiKSx5dD1TdHJpbmco''@;'; put 'put ''dHQpLDEwPT1ldClyZXR1cm4gb24oanQ9bmV3IHZ0KHR0IGluc3RhbmNlb2YgdnQ/dHQ6eXQpLFMranQuZSsxLEYpO2lmKEdlPSJudW1iZXIiPT10eXBlb2YgdHQpe2lmKDAqdHQhPTApcmV0dXJuIE1lKGp0LHl0LEdlLGV0KTtpZihqdC5zPTEvdHQ8MD8oeXQ9eXQuc2xpY2UoMSksLTEpOjEs''@;'; put 'put ''dnQuREVCVUcmJjE1PHl0LnJlcGxhY2UoL14wXC4wKnxcLi8sIiIpLmxlbmd0aCl0aHJvdyBFcnJvcihyZSt0dCk7R2U9ITF9ZWxzZSBqdC5zPTQ1PT09eXQuY2hhckNvZGVBdCgwKT8oeXQ9eXQuc2xpY2UoMSksLTEpOjE7Zm9yKGx0PW10LnNsaWNlKDAsZXQpLGZ0PUh0PTAsVWU9eXQubGVu''@;'; put 'put ''Z3RoO0h0PFVlO0h0KyspaWYobHQuaW5kZXhPZihMdD15dC5jaGFyQXQoSHQpKTwwKXtpZigiLiI9PUx0KXtpZihmdDxIdCl7ZnQ9VWU7Y29udGludWV9fWVsc2UgaWYoIUN0JiYoeXQ9PXl0LnRvVXBwZXJDYXNlKCkmJih5dD15dC50b0xvd2VyQ2FzZSgpKXx8eXQ9PXl0LnRvTG93ZXJDYXNl''@;'; put 'put ''KCkmJih5dD15dC50b1VwcGVyQ2FzZSgpKSkpe0N0PSEwLEh0PS0xLGZ0PTA7Y29udGludWV9cmV0dXJuIE1lKGp0LFN0cmluZyh0dCksR2UsZXQpfS0xPChmdD0oeXQ9VGUoeXQsZXQsMTAsanQucykpLmluZGV4T2YoIi4iKSk/eXQ9eXQucmVwbGFjZSgiLiIsIiIpOmZ0PXl0Lmxlbmd0aH1m''@;'; put 'put ''b3IoSHQ9MDs0OD09PXl0LmNoYXJDb2RlQXQoSHQpO0h0KyspO2ZvcihVZT15dC5sZW5ndGg7NDg9PT15dC5jaGFyQ29kZUF0KC0tVWUpOyk7aWYoeXQ9eXQuc2xpY2UoSHQsKytVZSkpe2lmKFVlLT1IdCxHZSYmdnQuREVCVUcmJjE1PFVlJiYoVzx0dHx8dHQhPT1RKHR0KSkpdGhyb3cgRXJy''@;'; put 'put ''b3IocmUranQucyp0dCk7aWYoUGU8KGZ0PWZ0LUh0LTEpKWp0LmM9anQuZT1udWxsO2Vsc2UgaWYoZnQ8RGUpanQuYz1banQuZT0wXTtlbHNle2lmKGp0LmU9ZnQsanQuYz1bXSxIdD0oZnQrMSklWSxmdDwwJiYoSHQrPVkpLEh0PFVlKXtmb3IoSHQmJmp0LmMucHVzaCgreXQuc2xpY2UoMCxI''@;'; put 'put ''dCkpLFVlLT1ZO0h0PFVlOylqdC5jLnB1c2goK3l0LnNsaWNlKEh0LEh0Kz1ZKSk7eXQ9eXQuc2xpY2UoSHQpLEh0PVkteXQubGVuZ3RofWVsc2UgSHQtPVVlO2Zvcig7SHQtLTt5dCs9IjAiKTtqdC5jLnB1c2goK3l0KX19ZWxzZSBqdC5jPVtqdC5lPTBdfWZ1bmN0aW9uIEF0KHR0LGV0LGx0''@;'; put 'put ''LEx0KXt2YXIgQ3QsZnQsSHQsR2UsVWU7aWYobnVsbD09bHQ/bHQ9RjpjZShsdCwwLDgpLCF0dC5jKXJldHVybiB0dC50b1N0cmluZygpO2lmKEN0PXR0LmNbMF0sSHQ9dHQuZSxudWxsPT1ldClVZT1zZSh0dC5jKSxVZT0xPT1MdHx8Mj09THQmJihIdDw9eWV8fENlPD1IdCk/dmUoVWUsSHQp''@;'; put 'put ''OkFlKFVlLEh0LCIwIik7ZWxzZSBpZihmdD0odHQ9b24obmV3IHZ0KHR0KSxldCxsdCkpLmUsR2U9KFVlPXNlKHR0LmMpKS5sZW5ndGgsMT09THR8fDI9PUx0JiYoZXQ8PWZ0fHxmdDw9eWUpKXtmb3IoO0dlPGV0O1VlKz0iMCIsR2UrKyk7VWU9dmUoVWUsZnQpfWVsc2UgaWYoZXQtPUh0LFVl''@;'; put 'put ''PUFlKFVlLGZ0LCIwIiksR2U8ZnQrMSl7aWYoMDwtLWV0KWZvcihVZSs9Ii4iO2V0LS07VWUrPSIwIik7fWVsc2UgaWYoMDwoZXQrPWZ0LUdlKSlmb3IoZnQrMT09R2UmJihVZSs9Ii4iKTtldC0tO1VlKz0iMCIpO3JldHVybiB0dC5zPDAmJkN0PyItIitVZTpVZX1mdW5jdGlvbiBodCh0dCxl''@;'; put 'put ''dCl7Zm9yKHZhciBsdCxMdD0xLEN0PW5ldyB2dCh0dFswXSk7THQ8dHQubGVuZ3RoO0x0Kyspe2lmKCEobHQ9bmV3IHZ0KHR0W0x0XSkpLnMpe0N0PWx0O2JyZWFrfWV0LmNhbGwoQ3QsbHQpJiYoQ3Q9bHQpfXJldHVybiBDdH1mdW5jdGlvbiBCdCh0dCxldCxsdCl7Zm9yKHZhciBMdD0xLEN0''@;'; put 'put ''PWV0Lmxlbmd0aDshZXRbLS1DdF07ZXQucG9wKCkpO2ZvcihDdD1ldFswXTsxMDw9Q3Q7Q3QvPTEwLEx0KyspO3JldHVybiB0dC5jPShsdD1MdCtsdCpZLTEpPlBlP3R0LmU9bnVsbDpsdDxEZT9bdHQuZT0wXToodHQuZT1sdCxldCksdHR9ZnVuY3Rpb24gb24odHQsZXQsbHQsTHQpe3ZhciBD''@;'; put 'put ''dCxmdCxIdCxHZSxVZSx5dCxqdCxKdD10dC5jLGduPU47aWYoSnQpe2U6e2ZvcihDdD0xLEdlPUp0WzBdOzEwPD1HZTtHZS89MTAsQ3QrKyk7aWYoKGZ0PWV0LUN0KTwwKWZ0Kz1ZLGp0PShVZT1KdFt5dD0wXSkvZ25bQ3QtKEh0PWV0KS0xXSUxMHwwO2Vsc2UgaWYoKHl0PVUoKGZ0KzEpL1kp''@;'; put 'put ''KT49SnQubGVuZ3RoKXtpZighTHQpYnJlYWsgZTtmb3IoO0p0Lmxlbmd0aDw9eXQ7SnQucHVzaCgwKSk7VWU9anQ9MCxIdD0oZnQlPVkpLVkrKEN0PTEpfWVsc2V7Zm9yKFVlPUdlPUp0W3l0XSxDdD0xOzEwPD1HZTtHZS89MTAsQ3QrKyk7anQ9KEh0PShmdCU9WSktWStDdCk8MD8wOlVlL2du''@;'; put 'put ''W0N0LUh0LTFdJTEwfDB9aWYoTHQ9THR8fGV0PDB8fG51bGwhPUp0W3l0KzFdfHwoSHQ8MD9VZTpVZSVnbltDdC1IdC0xXSksTHQ9bHQ8ND8oanR8fEx0KSYmKDA9PWx0fHxsdD09KHR0LnM8MD8zOjIpKTo1PGp0fHw1PT1qdCYmKDQ9PWx0fHxMdHx8Nj09bHQmJigwPGZ0PzA8SHQ/VWUvZ25b''@;'; put 'put ''Q3QtSHRdOjA6SnRbeXQtMV0pJTEwJjF8fGx0PT0odHQuczwwPzg6NykpLGV0PDF8fCFKdFswXSlyZXR1cm4gSnQubGVuZ3RoPTAsTHQ/KEp0WzBdPWduWyhZLShldC09dHQuZSsxKSVZKSVZXSx0dC5lPS1ldHx8MCk6SnRbMF09dHQuZT0wLHR0O2lmKDA9PWZ0PyhKdC5sZW5ndGg9eXQsR2U9''@;'; put 'put ''MSx5dC0tKTooSnQubGVuZ3RoPXl0KzEsR2U9Z25bWS1mdF0sSnRbeXRdPTA8SHQ/UShVZS9nbltDdC1IdF0lZ25bSHRdKSpHZTowKSxMdClmb3IoOzspe2lmKDA9PXl0KXtmb3IoZnQ9MSxIdD1KdFswXTsxMDw9SHQ7SHQvPTEwLGZ0KyspO2ZvcihIdD1KdFswXSs9R2UsR2U9MTsxMDw9SHQ7''@;'; put 'put ''SHQvPTEwLEdlKyspO2Z0IT1HZSYmKHR0LmUrKyxKdFswXT09YWUmJihKdFswXT0xKSk7YnJlYWt9aWYoSnRbeXRdKz1HZSxKdFt5dF0hPWFlKWJyZWFrO0p0W3l0LS1dPTAsR2U9MX1mb3IoZnQ9SnQubGVuZ3RoOzA9PT1KdFstLWZ0XTtKdC5wb3AoKSk7fXR0LmU+UGU/dHQuYz10dC5lPW51''@;'; put 'put ''bGw6dHQuZTxEZSYmKHR0LmM9W3R0LmU9MF0pfXJldHVybiB0dH1mdW5jdGlvbiBfdCh0dCl7dmFyIGV0LGx0PXR0LmU7cmV0dXJuIG51bGw9PT1sdD90dC50b1N0cmluZygpOihldD1zZSh0dC5jKSxldD1sdDw9eWV8fENlPD1sdD92ZShldCxsdCk6QWUoZXQsbHQsIjAiKSx0dC5zPDA/Ii0i''@;'; put 'put ''K2V0OmV0KX1yZXR1cm4gdnQuY2xvbmU9a2UsdnQuUk9VTkRfVVA9MCx2dC5ST1VORF9ET1dOPTEsdnQuUk9VTkRfQ0VJTD0yLHZ0LlJPVU5EX0ZMT09SPTMsdnQuUk9VTkRfSEFMRl9VUD00LHZ0LlJPVU5EX0hBTEZfRE9XTj01LHZ0LlJPVU5EX0hBTEZfRVZFTj02LHZ0LlJPVU5EX0hBTEZf''@;'; put 'put ''Q0VJTD03LHZ0LlJPVU5EX0hBTEZfRkxPT1I9OCx2dC5FVUNMSUQ9OSx2dC5jb25maWc9dnQuc2V0PWZ1bmN0aW9uKHR0KXt2YXIgZXQsbHQ7aWYobnVsbCE9dHQpe2lmKCJvYmplY3QiIT10eXBlb2YgdHQpdGhyb3cgRXJyb3IoaisiT2JqZWN0IGV4cGVjdGVkOiAiK3R0KTtpZih0dC5oYXNP''@;'; put 'put ''d25Qcm9wZXJ0eShldD0iREVDSU1BTF9QTEFDRVMiKSYmKGNlKGx0PXR0W2V0XSwwLEssZXQpLFM9bHQpLHR0Lmhhc093blByb3BlcnR5KGV0PSJST1VORElOR19NT0RFIikmJihjZShsdD10dFtldF0sMCw4LGV0KSxGPWx0KSx0dC5oYXNPd25Qcm9wZXJ0eShldD0iRVhQT05FTlRJQUxfQVQi''@;'; put 'put ''KSYmKChsdD10dFtldF0pJiZsdC5wb3A/KGNlKGx0WzBdLC1LLDAsZXQpLGNlKGx0WzFdLDAsSyxldCkseWU9bHRbMF0sQ2U9bHRbMV0pOihjZShsdCwtSyxLLGV0KSx5ZT0tKENlPWx0PDA/LWx0Omx0KSkpLHR0Lmhhc093blByb3BlcnR5KGV0PSJSQU5HRSIpKWlmKChsdD10dFtldF0pJiZs''@;'; put 'put ''dC5wb3ApY2UobHRbMF0sLUssLTEsZXQpLGNlKGx0WzFdLDEsSyxldCksRGU9bHRbMF0sUGU9bHRbMV07ZWxzZXtpZihjZShsdCwtSyxLLGV0KSwhbHQpdGhyb3cgRXJyb3IoaitldCsiIGNhbm5vdCBiZSB6ZXJvOiAiK2x0KTtEZT0tKFBlPWx0PDA/LWx0Omx0KX1pZih0dC5oYXNPd25Qcm9w''@;'; put 'put ''ZXJ0eShldD0iQ1JZUFRPIikpe2lmKChsdD10dFtldF0pIT09ISFsdCl0aHJvdyBFcnJvcihqK2V0KyIgbm90IHRydWUgb3IgZmFsc2U6ICIrbHQpO2lmKGx0KXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGNyeXB0b3x8IWNyeXB0b3x8IWNyeXB0by5nZXRSYW5kb21WYWx1ZXMmJiFjcnlwdG8u''@;'; put 'put ''cmFuZG9tQnl0ZXMpdGhyb3cgUWU9IWx0LEVycm9yKGorImNyeXB0byB1bmF2YWlsYWJsZSIpO1FlPWx0fWVsc2UgUWU9bHR9aWYodHQuaGFzT3duUHJvcGVydHkoZXQ9Ik1PRFVMT19NT0RFIikmJihjZShsdD10dFtldF0sMCw5LGV0KSwkZT1sdCksdHQuaGFzT3duUHJvcGVydHkoZXQ9IlBP''@;'; put 'put ''V19QUkVDSVNJT04iKSYmKGNlKGx0PXR0W2V0XSwwLEssZXQpLGd0PWx0KSx0dC5oYXNPd25Qcm9wZXJ0eShldD0iRk9STUFUIikpe2lmKCJvYmplY3QiIT10eXBlb2YobHQ9dHRbZXRdKSl0aHJvdyBFcnJvcihqK2V0KyIgbm90IGFuIG9iamVjdDogIitsdCk7d3Q9bHR9aWYodHQuaGFzT3du''@;'; put 'put ''UHJvcGVydHkoZXQ9IkFMUEhBQkVUIikpe2lmKCJzdHJpbmciIT10eXBlb2YobHQ9dHRbZXRdKXx8L14uJHxbKy0uXHNdfCguKS4qXDEvLnRlc3QobHQpKXRocm93IEVycm9yKGorZXQrIiBpbnZhbGlkOiAiK2x0KTttdD1sdH19cmV0dXJue0RFQ0lNQUxfUExBQ0VTOlMsUk9VTkRJTkdfTU9E''@;'; put 'put ''RTpGLEVYUE9ORU5USUFMX0FUOlt5ZSxDZV0sUkFOR0U6W0RlLFBlXSxDUllQVE86UWUsTU9EVUxPX01PREU6JGUsUE9XX1BSRUNJU0lPTjpndCxGT1JNQVQ6d3QsQUxQSEFCRVQ6bXR9fSx2dC5pc0JpZ051bWJlcj1mdW5jdGlvbih0dCl7cmV0dXJuIHR0IGluc3RhbmNlb2YgdnR8fHR0JiYh''@;'; put 'put ''MD09PXR0Ll9pc0JpZ051bWJlcnx8ITF9LHZ0Lm1heGltdW09dnQubWF4PWZ1bmN0aW9uKCl7cmV0dXJuIGh0KGFyZ3VtZW50cyxWLmx0KX0sdnQubWluaW11bT12dC5taW49ZnVuY3Rpb24oKXtyZXR1cm4gaHQoYXJndW1lbnRzLFYuZ3QpfSx2dC5yYW5kb209KGhlPTkwMDcxOTkyNTQ3NDA5''@;'; put 'put ''OTIsTz1NYXRoLnJhbmRvbSgpKmhlJjIwOTcxNTE/ZnVuY3Rpb24oKXtyZXR1cm4gUShNYXRoLnJhbmRvbSgpKmhlKX06ZnVuY3Rpb24oKXtyZXR1cm4gODM4ODYwOCooMTA3Mzc0MTgyNCpNYXRoLnJhbmRvbSgpfDApKyg4Mzg4NjA4Kk1hdGgucmFuZG9tKCl8MCl9LGZ1bmN0aW9uKHR0KXt2''@;'; put 'put ''YXIgZXQsbHQsTHQsQ3QsZnQsSHQ9MCxHZT1bXSxVZT1uZXcgdnQoVCk7aWYobnVsbD09dHQ/dHQ9UzpjZSh0dCwwLEspLEN0PVUodHQvWSksUWUpaWYoY3J5cHRvLmdldFJhbmRvbVZhbHVlcyl7Zm9yKGV0PWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KEN0Kj0yKSk7''@;'; put 'put ''SHQ8Q3Q7KTllMTU8PShmdD0xMzEwNzIqZXRbSHRdKyhldFtIdCsxXT4+PjExKSk/KGx0PWNyeXB0by5nZXRSYW5kb21WYWx1ZXMobmV3IFVpbnQzMkFycmF5KDIpKSxldFtIdF09bHRbMF0sZXRbSHQrMV09bHRbMV0pOihHZS5wdXNoKGZ0JTFlMTQpLEh0Kz0yKTtIdD1DdC8yfWVsc2V7aWYo''@;'; put 'put ''IWNyeXB0by5yYW5kb21CeXRlcyl0aHJvdyBRZT0hMSxFcnJvcihqKyJjcnlwdG8gdW5hdmFpbGFibGUiKTtmb3IoZXQ9Y3J5cHRvLnJhbmRvbUJ5dGVzKEN0Kj03KTtIdDxDdDspOWUxNTw9KGZ0PTI4MTQ3NDk3NjcxMDY1NiooMzEmZXRbSHRdKSsxMDk5NTExNjI3Nzc2KmV0W0h0KzFdKzQy''@;'; put 'put ''OTQ5NjcyOTYqZXRbSHQrMl0rMTY3NzcyMTYqZXRbSHQrM10rKGV0W0h0KzRdPDwxNikrKGV0W0h0KzVdPDw4KStldFtIdCs2XSk/Y3J5cHRvLnJhbmRvbUJ5dGVzKDcpLmNvcHkoZXQsSHQpOihHZS5wdXNoKGZ0JTFlMTQpLEh0Kz03KTtIdD1DdC83fWlmKCFRZSlmb3IoO0h0PEN0OykoZnQ9''@;'; put 'put ''TygpKTw5ZTE1JiYoR2VbSHQrK109ZnQlMWUxNCk7Zm9yKEN0PUdlWy0tSHRdLHR0JT1ZLEN0JiZ0dCYmKEdlW0h0XT1RKEN0LyhmdD1OW1ktdHRdKSkqZnQpOzA9PT1HZVtIdF07R2UucG9wKCksSHQtLSk7aWYoSHQ8MClHZT1bTHQ9MF07ZWxzZXtmb3IoTHQ9LTE7MD09PUdlWzBdO0dlLnNw''@;'; put 'put ''bGljZSgwLDEpLEx0LT1ZKTtmb3IoSHQ9MSxmdD1HZVswXTsxMDw9ZnQ7ZnQvPTEwLEh0KyspO0h0PFkmJihMdC09WS1IdCl9cmV0dXJuIFVlLmU9THQsVWUuYz1HZSxVZX0pLHZ0LnN1bT1mdW5jdGlvbigpe2Zvcih2YXIgdHQ9MSxldD1hcmd1bWVudHMsbHQ9bmV3IHZ0KGV0WzBdKTt0dDxl''@;'; put 'put ''dC5sZW5ndGg7KWx0PWx0LnBsdXMoZXRbdHQrK10pO3JldHVybiBsdH0sVGU9ZnVuY3Rpb24oKXt2YXIgdHQ9IjAxMjM0NTY3ODkiO2Z1bmN0aW9uIGV0KGx0LEx0LEN0LGZ0KXtmb3IodmFyIEh0LEdlLFVlPVswXSx5dD0wLGp0PWx0Lmxlbmd0aDt5dDxqdDspe2ZvcihHZT1VZS5sZW5ndGg7''@;'; put 'put ''R2UtLTtVZVtHZV0qPUx0KTtmb3IoVWVbMF0rPWZ0LmluZGV4T2YobHQuY2hhckF0KHl0KyspKSxIdD0wO0h0PFVlLmxlbmd0aDtIdCsrKVVlW0h0XT5DdC0xJiYobnVsbD09VWVbSHQrMV0mJihVZVtIdCsxXT0wKSxVZVtIdCsxXSs9VWVbSHRdL0N0fDAsVWVbSHRdJT1DdCl9cmV0dXJuIFVl''@;'; put 'put ''LnJldmVyc2UoKX1yZXR1cm4gZnVuY3Rpb24obHQsTHQsQ3QsZnQsSHQpe3ZhciBHZSxVZSx5dCxqdCxKdCxnbixkbix5bixsbj1sdC5pbmRleE9mKCIuIiksTm49Uyxibj1GO2ZvcigwPD1sbiYmKGp0PWd0LGd0PTAsbHQ9bHQucmVwbGFjZSgiLiIsIiIpLGduPSh5bj1uZXcgdnQoTHQpKS5w''@;'; put 'put ''b3cobHQubGVuZ3RoLWxuKSxndD1qdCx5bi5jPWV0KEFlKHNlKGduLmMpLGduLmUsIjAiKSwxMCxDdCx0dCkseW4uZT15bi5jLmxlbmd0aCkseXQ9anQ9KGRuPWV0KGx0LEx0LEN0LEh0PyhHZT1tdCx0dCk6KEdlPXR0LG10KSkpLmxlbmd0aDswPT1kblstLWp0XTtkbi5wb3AoKSk7aWYoIWRu''@;'; put 'put ''WzBdKXJldHVybiBHZS5jaGFyQXQoMCk7aWYobG48MD8tLXl0Oihnbi5jPWRuLGduLmU9eXQsZ24ucz1mdCxkbj0oZ249SWUoZ24seW4sTm4sYm4sQ3QpKS5jLEp0PWduLnIseXQ9Z24uZSksbG49ZG5bVWU9eXQrTm4rMV0sanQ9Q3QvMixKdD1KdHx8VWU8MHx8bnVsbCE9ZG5bVWUrMV0sSnQ9''@;'; put 'put ''Ym48ND8obnVsbCE9bG58fEp0KSYmKDA9PWJufHxibj09KGduLnM8MD8zOjIpKTpqdDxsbnx8bG49PWp0JiYoND09Ym58fEp0fHw2PT1ibiYmMSZkbltVZS0xXXx8Ym49PShnbi5zPDA/ODo3KSksVWU8MXx8IWRuWzBdKWx0PUp0P0FlKEdlLmNoYXJBdCgxKSwtTm4sR2UuY2hhckF0KDApKTpH''@;'; put 'put ''ZS5jaGFyQXQoMCk7ZWxzZXtpZihkbi5sZW5ndGg9VWUsSnQpZm9yKC0tQ3Q7KytkblstLVVlXT5DdDspZG5bVWVdPTAsVWV8fCgrK3l0LGRuPVsxXS5jb25jYXQoZG4pKTtmb3IoanQ9ZG4ubGVuZ3RoOyFkblstLWp0XTspO2Zvcihsbj0wLGx0PSIiO2xuPD1qdDtsdCs9R2UuY2hhckF0KGRu''@;'; put 'put ''W2xuKytdKSk7bHQ9QWUobHQseXQsR2UuY2hhckF0KDApKX1yZXR1cm4gbHR9fSgpLEllPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdHQoTHQsQ3QsZnQpe3ZhciBIdCxHZSxVZSx5dCxqdD0wLEp0PUx0Lmxlbmd0aCxnbj1DdCV0ZSxkbj1DdC90ZXwwO2ZvcihMdD1MdC5zbGljZSgpO0p0LS07KWp0''@;'; put 'put ''PSgoR2U9Z24qKFVlPUx0W0p0XSV0ZSkrKEh0PWRuKlVlKyh5dD1MdFtKdF0vdGV8MCkqZ24pJXRlKnRlK2p0KS9mdHwwKSsoSHQvdGV8MCkrZG4qeXQsTHRbSnRdPUdlJWZ0O3JldHVybiBqdCYmKEx0PVtqdF0uY29uY2F0KEx0KSksTHR9ZnVuY3Rpb24gZXQoTHQsQ3QsZnQsSHQpe3ZhciBH''@;'; put 'put ''ZSxVZTtpZihmdCE9SHQpVWU9SHQ8ZnQ/MTotMTtlbHNlIGZvcihHZT1VZT0wO0dlPGZ0O0dlKyspaWYoTHRbR2VdIT1DdFtHZV0pe1VlPUx0W0dlXT5DdFtHZV0/MTotMTticmVha31yZXR1cm4gVWV9ZnVuY3Rpb24gbHQoTHQsQ3QsZnQsSHQpe2Zvcih2YXIgR2U9MDtmdC0tOylMdFtmdF0t''@;'; put 'put ''PUdlLEx0W2Z0XT0oR2U9THRbZnRdPEN0W2Z0XT8xOjApKkh0K0x0W2Z0XS1DdFtmdF07Zm9yKDshTHRbMF0mJjE8THQubGVuZ3RoO0x0LnNwbGljZSgwLDEpKTt9cmV0dXJuIGZ1bmN0aW9uKEx0LEN0LGZ0LEh0LEdlKXt2YXIgVWUseXQsanQsSnQsZ24sZG4seW4sbG4sTm4sYm4sZXIsc3Is''@;'; put 'put ''WG4sRnIseHIscXQscHIsbnI9THQucz09Q3Qucz8xOi0xLEFuPUx0LmMscW49Q3QuYztpZighKEFuJiZBblswXSYmcW4mJnFuWzBdKSlyZXR1cm4gbmV3IHZ0KEx0LnMmJkN0LnMmJihBbj8hcW58fEFuWzBdIT1xblswXTpxbik/QW4mJjA9PUFuWzBdfHwhcW4/MCpucjpuci8wOk5hTik7Zm9y''@;'; put 'put ''KE5uPShsbj1uZXcgdnQobnIpKS5jPVtdLG5yPWZ0Kyh5dD1MdC5lLUN0LmUpKzEsR2V8fChHZT1hZSx5dD1KKEx0LmUvWSktSihDdC5lL1kpLG5yPW5yL1l8MCksanQ9MDtxbltqdF09PShBbltqdF18fDApO2p0KyspO2lmKHFuW2p0XT4oQW5banRdfHwwKSYmeXQtLSxucjwwKU5uLnB1c2go''@;'; put 'put ''MSksSnQ9ITA7ZWxzZXtmb3IoRnI9QW4ubGVuZ3RoLHF0PXFuLmxlbmd0aCxucis9MiwxPChnbj1RKEdlLyhxbltqdD0wXSsxKSkpJiYocW49dHQocW4sZ24sR2UpLEFuPXR0KEFuLGduLEdlKSxxdD1xbi5sZW5ndGgsRnI9QW4ubGVuZ3RoKSxYbj1xdCxlcj0oYm49QW4uc2xpY2UoMCxxdCkp''@;'; put 'put ''Lmxlbmd0aDtlcjxxdDtibltlcisrXT0wKTtwcj1xbi5zbGljZSgpLHByPVswXS5jb25jYXQocHIpLHhyPXFuWzBdLHFuWzFdPj1HZS8yJiZ4cisrO2Rve2lmKGduPTAsKFVlPWV0KHFuLGJuLHF0LGVyKSk8MCl7aWYoc3I9Ym5bMF0scXQhPWVyJiYoc3I9c3IqR2UrKGJuWzFdfHwwKSksMTwo''@;'; put 'put ''Z249UShzci94cikpKWZvcihHZTw9Z24mJihnbj1HZS0xKSx5bj0oZG49dHQocW4sZ24sR2UpKS5sZW5ndGgsZXI9Ym4ubGVuZ3RoOzE9PWV0KGRuLGJuLHluLGVyKTspZ24tLSxsdChkbixxdDx5bj9wcjpxbix5bixHZSkseW49ZG4ubGVuZ3RoLFVlPTE7ZWxzZSAwPT1nbiYmKFVlPWduPTEp''@;'; put 'put ''LHluPShkbj1xbi5zbGljZSgpKS5sZW5ndGg7aWYoeW48ZXImJihkbj1bMF0uY29uY2F0KGRuKSksbHQoYm4sZG4sZXIsR2UpLGVyPWJuLmxlbmd0aCwtMT09VWUpZm9yKDtldChxbixibixxdCxlcik8MTspZ24rKyxsdChibixxdDxlcj9wcjpxbixlcixHZSksZXI9Ym4ubGVuZ3RofWVsc2Ug''@;'; put 'put ''MD09PVVlJiYoZ24rKyxibj1bMF0pO05uW2p0KytdPWduLGJuWzBdP2JuW2VyKytdPUFuW1huXXx8MDooYm49W0FuW1huXV0sZXI9MSl9d2hpbGUoKFhuKys8RnJ8fG51bGwhPWJuWzBdKSYmbnItLSk7SnQ9bnVsbCE9Ym5bMF0sTm5bMF18fE5uLnNwbGljZSgwLDEpfWlmKEdlPT1hZSl7Zm9y''@;'; put 'put ''KGp0PTEsbnI9Tm5bMF07MTA8PW5yO25yLz0xMCxqdCsrKTtvbihsbixmdCsobG4uZT1qdCt5dCpZLTEpKzEsSHQsSnQpfWVsc2UgbG4uZT15dCxsbi5yPStKdDtyZXR1cm4gbG59fSgpLHo9L14oLT8pMChbeGJvXSkoPz1cd1tcdy5dKiQpL2ksZWU9L14oW14uXSspXC4kLyxuZT0vXlwuKFte''@;'; put 'put ''Ll0rKSQvLHg9L14tPyhJbmZpbml0eXxOYU4pJC8sUD0vXlxzKlwrKD89W1x3Ll0pfF5ccyt8XHMrJC9nLE1lPWZ1bmN0aW9uKHR0LGV0LGx0LEx0KXt2YXIgQ3QsZnQ9bHQ/ZXQ6ZXQucmVwbGFjZShQLCIiKTtpZih4LnRlc3QoZnQpKXR0LnM9aXNOYU4oZnQpP251bGw6ZnQ8MD8tMToxLHR0''@;'; put 'put ''LmM9dHQuZT1udWxsO2Vsc2V7aWYoIWx0JiYoZnQ9ZnQucmVwbGFjZSh6LGZ1bmN0aW9uKEh0LEdlLFVlKXtyZXR1cm4gQ3Q9IngiPT0oVWU9VWUudG9Mb3dlckNhc2UoKSk/MTY6ImIiPT1VZT8yOjgsTHQmJkx0IT1DdD9IdDpHZX0pLEx0JiYoQ3Q9THQsZnQ9ZnQucmVwbGFjZShlZSwiJDEi''@;'; put 'put ''KS5yZXBsYWNlKG5lLCIwLiQxIikpLGV0IT1mdCkpcmV0dXJuIG5ldyB2dChmdCxDdCk7aWYodnQuREVCVUcpdGhyb3cgRXJyb3IoaisiTm90IGEiKyhMdD8iIGJhc2UgIitMdDoiIikrIiBudW1iZXI6ICIrZXQpO3R0LmM9dHQuZT10dC5zPW51bGx9fSxWLmFic29sdXRlVmFsdWU9Vi5hYnM9''@;'; put 'put ''ZnVuY3Rpb24oKXt2YXIgdHQ9bmV3IHZ0KHRoaXMpO3JldHVybiB0dC5zPDAmJih0dC5zPTEpLHR0fSxWLmNvbXBhcmVkVG89ZnVuY3Rpb24odHQsZXQpe3JldHVybiBvZSh0aGlzLG5ldyB2dCh0dCxldCkpfSxWLmRlY2ltYWxQbGFjZXM9Vi5kcD1mdW5jdGlvbih0dCxldCl7dmFyIGx0LEx0''@;'; put 'put ''LEN0O2lmKG51bGwhPXR0KXJldHVybiBjZSh0dCwwLEspLG51bGw9PWV0P2V0PUY6Y2UoZXQsMCw4KSxvbihuZXcgdnQodGhpcyksdHQrdGhpcy5lKzEsZXQpO2lmKCEobHQ9dGhpcy5jKSlyZXR1cm4gbnVsbDtpZihMdD0oKEN0PWx0Lmxlbmd0aC0xKS1KKHRoaXMuZS9ZKSkqWSxDdD1sdFtD''@;'; put 'put ''dF0pZm9yKDtDdCUxMD09MDtDdC89MTAsTHQtLSk7cmV0dXJuIEx0PDAmJihMdD0wKSxMdH0sVi5kaXZpZGVkQnk9Vi5kaXY9ZnVuY3Rpb24odHQsZXQpe3JldHVybiBJZSh0aGlzLG5ldyB2dCh0dCxldCksUyxGKX0sVi5kaXZpZGVkVG9JbnRlZ2VyQnk9Vi5pZGl2PWZ1bmN0aW9uKHR0LGV0''@;'; put 'put ''KXtyZXR1cm4gSWUodGhpcyxuZXcgdnQodHQsZXQpLDAsMSl9LFYuZXhwb25lbnRpYXRlZEJ5PVYucG93PWZ1bmN0aW9uKHR0LGV0KXt2YXIgbHQsTHQsQ3QsZnQsSHQsR2UsVWUseXQsanQ9dGhpcztpZigodHQ9bmV3IHZ0KHR0KSkuYyYmIXR0LmlzSW50ZWdlcigpKXRocm93IEVycm9yKGor''@;'; put 'put ''IkV4cG9uZW50IG5vdCBhbiBpbnRlZ2VyOiAiK190KHR0KSk7aWYobnVsbCE9ZXQmJihldD1uZXcgdnQoZXQpKSxIdD0xNDx0dC5lLCFqdC5jfHwhanQuY1swXXx8MT09anQuY1swXSYmIWp0LmUmJjE9PWp0LmMubGVuZ3RofHwhdHQuY3x8IXR0LmNbMF0pcmV0dXJuIHl0PW5ldyB2dChNYXRo''@;'; put 'put ''LnBvdygrX3QoanQpLEh0PzItZGUodHQpOitfdCh0dCkpKSxldD95dC5tb2QoZXQpOnl0O2lmKEdlPXR0LnM8MCxldCl7aWYoZXQuYz8hZXQuY1swXTohZXQucylyZXR1cm4gbmV3IHZ0KE5hTik7KEx0PSFHZSYmanQuaXNJbnRlZ2VyKCkmJmV0LmlzSW50ZWdlcigpKSYmKGp0PWp0Lm1vZChl''@;'; put 'put ''dCkpfWVsc2V7aWYoOTx0dC5lJiYoMDxqdC5lfHxqdC5lPC0xfHwoMD09anQuZT8xPGp0LmNbMF18fEh0JiYyNGU3PD1qdC5jWzFdOmp0LmNbMF08OGUxM3x8SHQmJmp0LmNbMF08PTk5OTk5NzVlNykpKXJldHVybiBmdD1qdC5zPDAmJmRlKHR0KT8tMDowLC0xPGp0LmUmJihmdD0xL2Z0KSxu''@;'; put 'put ''ZXcgdnQoR2U/MS9mdDpmdCk7Z3QmJihmdD1VKGd0L1krMikpfWZvcihVZT1IdD8obHQ9bmV3IHZ0KC41KSxHZSYmKHR0LnM9MSksZGUodHQpKTooQ3Q9TWF0aC5hYnMoK190KHR0KSkpJTIseXQ9bmV3IHZ0KFQpOzspe2lmKFVlKXtpZighKHl0PXl0LnRpbWVzKGp0KSkuYylicmVhaztmdD95''@;'; put 'put ''dC5jLmxlbmd0aD5mdCYmKHl0LmMubGVuZ3RoPWZ0KTpMdCYmKHl0PXl0Lm1vZChldCkpfWlmKEN0KXtpZigwPT09KEN0PVEoQ3QvMikpKWJyZWFrO1VlPUN0JTJ9ZWxzZSBpZihvbih0dD10dC50aW1lcyhsdCksdHQuZSsxLDEpLDE0PHR0LmUpVWU9ZGUodHQpO2Vsc2V7aWYoMD09KEN0PStf''@;'; put 'put ''dCh0dCkpKWJyZWFrO1VlPUN0JTJ9anQ9anQudGltZXMoanQpLGZ0P2p0LmMmJmp0LmMubGVuZ3RoPmZ0JiYoanQuYy5sZW5ndGg9ZnQpOkx0JiYoanQ9anQubW9kKGV0KSl9cmV0dXJuIEx0P3l0OihHZSYmKHl0PVQuZGl2KHl0KSksZXQ/eXQubW9kKGV0KTpmdD9vbih5dCxndCxGLHZvaWQg''@;'; put 'put ''MCk6eXQpfSxWLmludGVnZXJWYWx1ZT1mdW5jdGlvbih0dCl7dmFyIGV0PW5ldyB2dCh0aGlzKTtyZXR1cm4gbnVsbD09dHQ/dHQ9RjpjZSh0dCwwLDgpLG9uKGV0LGV0LmUrMSx0dCl9LFYuaXNFcXVhbFRvPVYuZXE9ZnVuY3Rpb24odHQsZXQpe3JldHVybiAwPT09b2UodGhpcyxuZXcgdnQo''@;'; put 'put ''dHQsZXQpKX0sVi5pc0Zpbml0ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jfSxWLmlzR3JlYXRlclRoYW49Vi5ndD1mdW5jdGlvbih0dCxldCl7cmV0dXJuIDA8b2UodGhpcyxuZXcgdnQodHQsZXQpKX0sVi5pc0dyZWF0ZXJUaGFuT3JFcXVhbFRvPVYuZ3RlPWZ1bmN0aW9uKHR0LGV0KXty''@;'; put 'put ''ZXR1cm4gMT09PShldD1vZSh0aGlzLG5ldyB2dCh0dCxldCkpKXx8MD09PWV0fSxWLmlzSW50ZWdlcj1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5jJiZKKHRoaXMuZS9ZKT50aGlzLmMubGVuZ3RoLTJ9LFYuaXNMZXNzVGhhbj1WLmx0PWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gb2UodGhpcyxu''@;'; put 'put ''ZXcgdnQodHQsZXQpKTwwfSxWLmlzTGVzc1RoYW5PckVxdWFsVG89Vi5sdGU9ZnVuY3Rpb24odHQsZXQpe3JldHVybi0xPT09KGV0PW9lKHRoaXMsbmV3IHZ0KHR0LGV0KSkpfHwwPT09ZXR9LFYuaXNOYU49ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5zfSxWLmlzTmVnYXRpdmU9ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5zPDB9LFYuaXNQb3NpdGl2ZT1mdW5jdGlvbigpe3JldHVybiAwPHRoaXMuc30sVi5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuYyYmMD09dGhpcy5jWzBdfSxWLm1pbnVzPWZ1bmN0aW9uKHR0LGV0KXt2YXIgbHQsTHQsQ3QsZnQsSHQ9dGhpcyxHZT1IdC5z''@;'; put 'put ''O2lmKGV0PSh0dD1uZXcgdnQodHQsZXQpKS5zLCFHZXx8IWV0KXJldHVybiBuZXcgdnQoTmFOKTtpZihHZSE9ZXQpcmV0dXJuIHR0LnM9LWV0LEh0LnBsdXModHQpO3ZhciBVZT1IdC5lL1kseXQ9dHQuZS9ZLGp0PUh0LmMsSnQ9dHQuYztpZighVWV8fCF5dCl7aWYoIWp0fHwhSnQpcmV0dXJu''@;'; put 'put ''IGp0Pyh0dC5zPS1ldCx0dCk6bmV3IHZ0KEp0P0h0Ok5hTik7aWYoIWp0WzBdfHwhSnRbMF0pcmV0dXJuIEp0WzBdPyh0dC5zPS1ldCx0dCk6bmV3IHZ0KGp0WzBdP0h0OjM9PUY/LTA6MCl9aWYoVWU9SihVZSkseXQ9Sih5dCksanQ9anQuc2xpY2UoKSxHZT1VZS15dCl7Zm9yKChDdD0oZnQ9''@;'; put 'put ''R2U8MCk/KEdlPS1HZSxqdCk6KHl0PVVlLEp0KSkucmV2ZXJzZSgpLGV0PUdlO2V0LS07Q3QucHVzaCgwKSk7Q3QucmV2ZXJzZSgpfWVsc2UgZm9yKEx0PShmdD0oR2U9anQubGVuZ3RoKTwoZXQ9SnQubGVuZ3RoKSk/R2U6ZXQsR2U9ZXQ9MDtldDxMdDtldCsrKWlmKGp0W2V0XSE9SnRbZXRd''@;'; put 'put ''KXtmdD1qdFtldF08SnRbZXRdO2JyZWFrfWlmKGZ0JiYoQ3Q9anQsanQ9SnQsSnQ9Q3QsdHQucz0tdHQucyksMDwoZXQ9KEx0PUp0Lmxlbmd0aCktKGx0PWp0Lmxlbmd0aCkpKWZvcig7ZXQtLTtqdFtsdCsrXT0wKTtmb3IoZXQ9YWUtMTtHZTxMdDspe2lmKGp0Wy0tTHRdPEp0W0x0XSl7Zm9y''@;'; put 'put ''KGx0PUx0O2x0JiYhanRbLS1sdF07anRbbHRdPWV0KTstLWp0W2x0XSxqdFtMdF0rPWFlfWp0W0x0XS09SnRbTHRdfWZvcig7MD09anRbMF07anQuc3BsaWNlKDAsMSksLS15dCk7cmV0dXJuIGp0WzBdP0J0KHR0LGp0LHl0KToodHQucz0zPT1GPy0xOjEsdHQuYz1bdHQuZT0wXSx0dCl9LFYu''@;'; put 'put ''bW9kdWxvPVYubW9kPWZ1bmN0aW9uKHR0LGV0KXt2YXIgbHQsTHQsQ3Q9dGhpcztyZXR1cm4gdHQ9bmV3IHZ0KHR0LGV0KSwhQ3QuY3x8IXR0LnN8fHR0LmMmJiF0dC5jWzBdP25ldyB2dChOYU4pOiF0dC5jfHxDdC5jJiYhQ3QuY1swXT9uZXcgdnQoQ3QpOig5PT0kZT8oTHQ9dHQucyx0dC5z''@;'; put 'put ''PTEsbHQ9SWUoQ3QsdHQsMCwzKSx0dC5zPUx0LGx0LnMqPUx0KTpsdD1JZShDdCx0dCwwLCRlKSwodHQ9Q3QubWludXMobHQudGltZXModHQpKSkuY1swXXx8MSE9JGV8fCh0dC5zPUN0LnMpLHR0KX0sVi5tdWx0aXBsaWVkQnk9Vi50aW1lcz1mdW5jdGlvbih0dCxldCl7dmFyIGx0LEx0LEN0''@;'; put 'put ''LGZ0LEh0LEdlLFVlLHl0LGp0LEp0LGduLGRuLHluLGxuLE5uLGJuPXRoaXMsZXI9Ym4uYyxzcj0odHQ9bmV3IHZ0KHR0LGV0KSkuYztpZighKGVyJiZzciYmZXJbMF0mJnNyWzBdKSlyZXR1cm4hYm4uc3x8IXR0LnN8fGVyJiYhZXJbMF0mJiFzcnx8c3ImJiFzclswXSYmIWVyP3R0LmM9dHQu''@;'; put 'put ''ZT10dC5zPW51bGw6KHR0LnMqPWJuLnMsZXImJnNyPyh0dC5jPVswXSx0dC5lPTApOnR0LmM9dHQuZT1udWxsKSx0dDtmb3IoTHQ9Sihibi5lL1kpK0oodHQuZS9ZKSx0dC5zKj1ibi5zLChVZT1lci5sZW5ndGgpPChKdD1zci5sZW5ndGgpJiYoeW49ZXIsZXI9c3Isc3I9eW4sQ3Q9VWUsVWU9''@;'; put 'put ''SnQsSnQ9Q3QpLEN0PVVlK0p0LHluPVtdO0N0LS07eW4ucHVzaCgwKSk7Zm9yKGxuPWFlLE5uPXRlLEN0PUp0OzA8PS0tQ3Q7KXtmb3IobHQ9MCxnbj1zcltDdF0lTm4sZG49c3JbQ3RdL05ufDAsZnQ9Q3QrKEh0PVVlKTtDdDxmdDspbHQ9KCh5dD1nbiooeXQ9ZXJbLS1IdF0lTm4pKyhHZT1k''@;'; put 'put ''bip5dCsoanQ9ZXJbSHRdL05ufDApKmduKSVObipObit5bltmdF0rbHQpL2xufDApKyhHZS9ObnwwKStkbipqdCx5bltmdC0tXT15dCVsbjt5bltmdF09bHR9cmV0dXJuIGx0PysrTHQ6eW4uc3BsaWNlKDAsMSksQnQodHQseW4sTHQpfSxWLm5lZ2F0ZWQ9ZnVuY3Rpb24oKXt2YXIgdHQ9bmV3''@;'; put 'put ''IHZ0KHRoaXMpO3JldHVybiB0dC5zPS10dC5zfHxudWxsLHR0fSxWLnBsdXM9ZnVuY3Rpb24odHQsZXQpe3ZhciBsdCxMdD10aGlzLEN0PUx0LnM7aWYoZXQ9KHR0PW5ldyB2dCh0dCxldCkpLnMsIUN0fHwhZXQpcmV0dXJuIG5ldyB2dChOYU4pO2lmKEN0IT1ldClyZXR1cm4gdHQucz0tZXQs''@;'; put 'put ''THQubWludXModHQpO3ZhciBmdD1MdC5lL1ksSHQ9dHQuZS9ZLEdlPUx0LmMsVWU9dHQuYztpZighZnR8fCFIdCl7aWYoIUdlfHwhVWUpcmV0dXJuIG5ldyB2dChDdC8wKTtpZighR2VbMF18fCFVZVswXSlyZXR1cm4gVWVbMF0/dHQ6bmV3IHZ0KEdlWzBdP0x0OjAqQ3QpfWlmKGZ0PUooZnQp''@;'; put 'put ''LEh0PUooSHQpLEdlPUdlLnNsaWNlKCksQ3Q9ZnQtSHQpe2ZvcigobHQ9MDxDdD8oSHQ9ZnQsVWUpOihDdD0tQ3QsR2UpKS5yZXZlcnNlKCk7Q3QtLTtsdC5wdXNoKDApKTtsdC5yZXZlcnNlKCl9Zm9yKChDdD1HZS5sZW5ndGgpLShldD1VZS5sZW5ndGgpPDAmJihsdD1VZSxVZT1HZSxHZT1s''@;'; put 'put ''dCxldD1DdCksQ3Q9MDtldDspQ3Q9KEdlWy0tZXRdPUdlW2V0XStVZVtldF0rQ3QpL2FlfDAsR2VbZXRdPWFlPT09R2VbZXRdPzA6R2VbZXRdJWFlO3JldHVybiBDdCYmKEdlPVtDdF0uY29uY2F0KEdlKSwrK0h0KSxCdCh0dCxHZSxIdCl9LFYucHJlY2lzaW9uPVYuc2Q9ZnVuY3Rpb24odHQs''@;'; put 'put ''ZXQpe3ZhciBsdCxMdCxDdDtpZihudWxsIT10dCYmdHQhPT0hIXR0KXJldHVybiBjZSh0dCwxLEspLG51bGw9PWV0P2V0PUY6Y2UoZXQsMCw4KSxvbihuZXcgdnQodGhpcyksdHQsZXQpO2lmKCEobHQ9dGhpcy5jKSlyZXR1cm4gbnVsbDtpZihMdD0oQ3Q9bHQubGVuZ3RoLTEpKlkrMSxDdD1s''@;'; put 'put ''dFtDdF0pe2Zvcig7Q3QlMTA9PTA7Q3QvPTEwLEx0LS0pO2ZvcihDdD1sdFswXTsxMDw9Q3Q7Q3QvPTEwLEx0KyspO31yZXR1cm4gdHQmJnRoaXMuZSsxPkx0JiYoTHQ9dGhpcy5lKzEpLEx0fSxWLnNoaWZ0ZWRCeT1mdW5jdGlvbih0dCl7cmV0dXJuIGNlKHR0LC1XLFcpLHRoaXMudGltZXMo''@;'; put 'put ''IjFlIit0dCl9LFYuc3F1YXJlUm9vdD1WLnNxcnQ9ZnVuY3Rpb24oKXt2YXIgdHQsZXQsbHQsTHQsQ3QsZnQ9dGhpcyxIdD1mdC5jLEdlPWZ0LnMsVWU9ZnQuZSx5dD1TKzQsanQ9bmV3IHZ0KCIwLjUiKTtpZigxIT09R2V8fCFIdHx8IUh0WzBdKXJldHVybiBuZXcgdnQoIUdlfHxHZTwwJiYo''@;'; put 'put ''IUh0fHxIdFswXSk/TmFOOkh0P2Z0OjEvMCk7aWYoKGx0PTA9PShHZT1NYXRoLnNxcnQoK190KGZ0KSkpfHxHZT09MS8wPygoKGV0PXNlKEh0KSkubGVuZ3RoK1VlKSUyPT0wJiYoZXQrPSIwIiksR2U9TWF0aC5zcXJ0KCtldCksVWU9SigoVWUrMSkvMiktKFVlPDB8fFVlJTIpLG5ldyB2dChl''@;'; put 'put ''dD1HZT09MS8wPyIxZSIrVWU6KGV0PUdlLnRvRXhwb25lbnRpYWwoKSkuc2xpY2UoMCxldC5pbmRleE9mKCJlIikrMSkrVWUpKTpuZXcgdnQoR2UrIiIpKS5jWzBdKWZvcigoR2U9KFVlPWx0LmUpK3l0KTwzJiYoR2U9MCk7OylpZihsdD1qdC50aW1lcygoQ3Q9bHQpLnBsdXMoSWUoZnQsQ3Qs''@;'; put 'put ''eXQsMSkpKSxzZShDdC5jKS5zbGljZSgwLEdlKT09PShldD1zZShsdC5jKSkuc2xpY2UoMCxHZSkpe2lmKGx0LmU8VWUmJi0tR2UsIjk5OTkiIT0oZXQ9ZXQuc2xpY2UoR2UtMyxHZSsxKSkmJihMdHx8IjQ5OTkiIT1ldCkpeytldCYmKCtldC5zbGljZSgxKXx8IjUiIT1ldC5jaGFyQXQoMCkp''@;'; put 'put ''fHwob24obHQsbHQuZStTKzIsMSksdHQ9IWx0LnRpbWVzKGx0KS5lcShmdCkpO2JyZWFrfWlmKCFMdCYmKG9uKEN0LEN0LmUrUysyLDApLEN0LnRpbWVzKEN0KS5lcShmdCkpKXtsdD1DdDticmVha315dCs9NCxHZSs9NCxMdD0xfXJldHVybiBvbihsdCxsdC5lK1MrMSxGLHR0KX0sVi50b0V4''@;'; put 'put ''cG9uZW50aWFsPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4gbnVsbCE9dHQmJihjZSh0dCwwLEspLHR0KyspLEF0KHRoaXMsdHQsZXQsMSl9LFYudG9GaXhlZD1mdW5jdGlvbih0dCxldCl7cmV0dXJuIG51bGwhPXR0JiYoY2UodHQsMCxLKSx0dD10dCt0aGlzLmUrMSksQXQodGhpcyx0dCxldCl9''@;'; put 'put ''LFYudG9Gb3JtYXQ9ZnVuY3Rpb24odHQsZXQsbHQpe3ZhciBMdDtpZihudWxsPT1sdCludWxsIT10dCYmZXQmJiJvYmplY3QiPT10eXBlb2YgZXQ/KGx0PWV0LGV0PW51bGwpOnR0JiYib2JqZWN0Ij09dHlwZW9mIHR0PyhsdD10dCx0dD1ldD1udWxsKTpsdD13dDtlbHNlIGlmKCJvYmplY3Qi''@;'; put 'put ''IT10eXBlb2YgbHQpdGhyb3cgRXJyb3IoaisiQXJndW1lbnQgbm90IGFuIG9iamVjdDogIitsdCk7aWYoTHQ9dGhpcy50b0ZpeGVkKHR0LGV0KSx0aGlzLmMpe3ZhciBDdCxmdD1MdC5zcGxpdCgiLiIpLEh0PStsdC5ncm91cFNpemUsR2U9K2x0LnNlY29uZGFyeUdyb3VwU2l6ZSxVZT1sdC5n''@;'; put 'put ''cm91cFNlcGFyYXRvcnx8IiIseXQ9ZnRbMF0sanQ9ZnRbMV0sSnQ9dGhpcy5zPDAsZ249SnQ/eXQuc2xpY2UoMSk6eXQsZG49Z24ubGVuZ3RoO2lmKEdlJiYoQ3Q9SHQsSHQ9R2UsZG4tPUdlPUN0KSwwPEh0JiYwPGRuKXtmb3IoeXQ9Z24uc3Vic3RyKDAsQ3Q9ZG4lSHR8fEh0KTtDdDxkbjtD''@;'; put 'put ''dCs9SHQpeXQrPVVlK2duLnN1YnN0cihDdCxIdCk7MDxHZSYmKHl0Kz1VZStnbi5zbGljZShDdCkpLEp0JiYoeXQ9Ii0iK3l0KX1MdD1qdD95dCsobHQuZGVjaW1hbFNlcGFyYXRvcnx8IiIpKygoR2U9K2x0LmZyYWN0aW9uR3JvdXBTaXplKT9qdC5yZXBsYWNlKG5ldyBSZWdFeHAoIlxcZHsi''@;'; put 'put ''K0dlKyJ9XFxCIiwiZyIpLCIkJiIrKGx0LmZyYWN0aW9uR3JvdXBTZXBhcmF0b3J8fCIiKSk6anQpOnl0fXJldHVybihsdC5wcmVmaXh8fCIiKStMdCsobHQuc3VmZml4fHwiIil9LFYudG9GcmFjdGlvbj1mdW5jdGlvbih0dCl7dmFyIGV0LGx0LEx0LEN0LGZ0LEh0LEdlLFVlLHl0LGp0LEp0''@;'; put 'put ''LGduLGRuPXRoaXMseW49ZG4uYztpZihudWxsIT10dCYmKCEoR2U9bmV3IHZ0KHR0KSkuaXNJbnRlZ2VyKCkmJihHZS5jfHwxIT09R2Uucyl8fEdlLmx0KFQpKSl0aHJvdyBFcnJvcihqKyJBcmd1bWVudCAiKyhHZS5pc0ludGVnZXIoKT8ib3V0IG9mIHJhbmdlOiAiOiJub3QgYW4gaW50ZWdl''@;'; put 'put ''cjogIikrX3QoR2UpKTtpZigheW4pcmV0dXJuIG5ldyB2dChkbik7Zm9yKGV0PW5ldyB2dChUKSx5dD1sdD1uZXcgdnQoVCksTHQ9VWU9bmV3IHZ0KFQpLGduPXNlKHluKSxmdD1ldC5lPWduLmxlbmd0aC1kbi5lLTEsZXQuY1swXT1OWyhIdD1mdCVZKTwwP1krSHQ6SHRdLHR0PSF0dHx8MDxH''@;'; put 'put ''ZS5jb21wYXJlZFRvKGV0KT8wPGZ0P2V0Onl0OkdlLEh0PVBlLFBlPTEvMCxHZT1uZXcgdnQoZ24pLFVlLmNbMF09MDtqdD1JZShHZSxldCwwLDEpLDEhPShDdD1sdC5wbHVzKGp0LnRpbWVzKEx0KSkpLmNvbXBhcmVkVG8odHQpOylsdD1MdCxMdD1DdCx5dD1VZS5wbHVzKGp0LnRpbWVzKEN0''@;'; put 'put ''PXl0KSksVWU9Q3QsZXQ9R2UubWludXMoanQudGltZXMoQ3Q9ZXQpKSxHZT1DdDtyZXR1cm4gQ3Q9SWUodHQubWludXMobHQpLEx0LDAsMSksVWU9VWUucGx1cyhDdC50aW1lcyh5dCkpLGx0PWx0LnBsdXMoQ3QudGltZXMoTHQpKSxVZS5zPXl0LnM9ZG4ucyxKdD1JZSh5dCxMdCxmdCo9MixG''@;'; put 'put ''KS5taW51cyhkbikuYWJzKCkuY29tcGFyZWRUbyhJZShVZSxsdCxmdCxGKS5taW51cyhkbikuYWJzKCkpPDE/W3l0LEx0XTpbVWUsbHRdLFBlPUh0LEp0fSxWLnRvTnVtYmVyPWZ1bmN0aW9uKCl7cmV0dXJuK190KHRoaXMpfSxWLnRvUHJlY2lzaW9uPWZ1bmN0aW9uKHR0LGV0KXtyZXR1cm4g''@;'; put 'put ''bnVsbCE9dHQmJmNlKHR0LDEsSyksQXQodGhpcyx0dCxldCwyKX0sVi50b1N0cmluZz1mdW5jdGlvbih0dCl7dmFyIGV0LGx0PXRoaXMsTHQ9bHQucyxDdD1sdC5lO3JldHVybiBudWxsPT09Q3Q/THQ/KGV0PSJJbmZpbml0eSIsTHQ8MCYmKGV0PSItIitldCkpOmV0PSJOYU4iOihldD1udWxs''@;'; put 'put ''PT10dD9DdDw9eWV8fENlPD1DdD92ZShzZShsdC5jKSxDdCk6QWUoc2UobHQuYyksQ3QsIjAiKToxMD09PXR0P0FlKHNlKChsdD1vbihuZXcgdnQobHQpLFMrQ3QrMSxGKSkuYyksbHQuZSwiMCIpOihjZSh0dCwyLG10Lmxlbmd0aCwiQmFzZSIpLFRlKEFlKHNlKGx0LmMpLEN0LCIwIiksMTAs''@;'; put 'put ''dHQsTHQsITApKSxMdDwwJiZsdC5jWzBdJiYoZXQ9Ii0iK2V0KSksZXR9LFYudmFsdWVPZj1WLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybiBfdCh0aGlzKX0sVi5faXNCaWdOdW1iZXI9ITAsImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0''@;'; put 'put ''b3ImJihWW1N5bWJvbC50b1N0cmluZ1RhZ109IkJpZ051bWJlciIsVltTeW1ib2wuZm9yKCJub2RlanMudXRpbC5pbnNwZWN0LmN1c3RvbSIpXT1WLnZhbHVlT2YpLG51bGwhPVNlJiZ2dC5zZXQoU2UpLHZ0fSgpKS5kZWZhdWx0PUUuQmlnTnVtYmVyPUUsdm9pZCAwIT09TCYmTC5leHBvcnRz''@;'; put 'put ''P0wuZXhwb3J0cz1FOihCfHwoQj0idW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGY/c2VsZjp3aW5kb3cpLEIuQmlnTnVtYmVyPUUpfSh0aGlzKX0se31dLDI6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtMLmV4cG9ydHM9e2xhbmd1YWdlVGFnOiJlbi1VUyIsZGVsaW1pdGVy''@;'; put 'put ''czp7dGhvdXNhbmRzOiIsIixkZWNpbWFsOiIuIn0sYWJicmV2aWF0aW9uczp7dGhvdXNhbmQ6ImsiLG1pbGxpb246Im0iLGJpbGxpb246ImIiLHRyaWxsaW9uOiJ0In0sc3BhY2VTZXBhcmF0ZWQ6ITEsb3JkaW5hbDpmdW5jdGlvbihCKXt2YXIgRT1CJTEwO3JldHVybiAxPT1+fihCJTEwMC8x''@;'; put 'put ''MCk/InRoIjoxPT09RT8ic3QiOjI9PT1FPyJuZCI6Mz09PUU/InJkIjoidGgifSxjdXJyZW5jeTp7c3ltYm9sOiIkIixwb3NpdGlvbjoicHJlZml4Iixjb2RlOiJVU0QifSxjdXJyZW5jeUZvcm1hdDp7dGhvdXNhbmRTZXBhcmF0ZWQ6ITAsdG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDoh''@;'; put 'put ''MH0sZm9ybWF0czp7Zm91ckRpZ2l0czp7dG90YWxMZW5ndGg6NCxzcGFjZVNlcGFyYXRlZDohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6Mn0sZnVsbFdpdGhUd29EZWNpbWFsc05vQ3VycmVuY3k6e3Rob3Vz''@;'; put 'put ''YW5kU2VwYXJhdGVkOiEwLG1hbnRpc3NhOjJ9LGZ1bGxXaXRoTm9EZWNpbWFsczp7b3V0cHV0OiJjdXJyZW5jeSIsdGhvdXNhbmRTZXBhcmF0ZWQ6ITAsbWFudGlzc2E6MH19fX0se31dLDM6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKEosc2Upe3JldHVybiBm''@;'; put 'put ''dW5jdGlvbihvZSl7aWYoQXJyYXkuaXNBcnJheShvZSkpcmV0dXJuIG9lfShKKXx8ZnVuY3Rpb24ob2UsY2Upe3ZhciBkZT1bXSx2ZT0hMCxBZT0hMSxrZT12b2lkIDA7dHJ5e2Zvcih2YXIgU2UsSWU9b2VbU3ltYm9sLml0ZXJhdG9yXSgpOyEodmU9KFNlPUllLm5leHQoKSkuZG9uZSkmJihk''@;'; put 'put ''ZS5wdXNoKFNlLnZhbHVlKSwhY2V8fGRlLmxlbmd0aCE9PWNlKTt2ZT0hMCk7fWNhdGNoKFRlKXtBZT0hMCxrZT1UZX1maW5hbGx5e3RyeXt2ZXx8bnVsbD09SWUucmV0dXJufHxJZS5yZXR1cm4oKX1maW5hbGx5e2lmKEFlKXRocm93IGtlfX1yZXR1cm4gZGV9KEosc2UpfHxmdW5jdGlvbigp''@;'; put 'put ''e3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UiKX0oKX12YXIgRT1KZSgiLi9nbG9iYWxTdGF0ZSIpLEVlPUplKCIuL3ZhbGlkYXRpbmciKSxVPUplKCIuL3BhcnNpbmciKSxRPVsiQiIsIktCIiwiTUIiLCJH''@;'; put 'put ''QiIsIlRCIiwiUEIiLCJFQiIsIlpCIiwiWUIiXSxqPXtnZW5lcmFsOntzY2FsZToxMDI0LHN1ZmZpeGVzOlEsbWFya2VyOiJiZCJ9LGJpbmFyeTp7c2NhbGU6MTAyNCxzdWZmaXhlczpbIkIiLCJLaUIiLCJNaUIiLCJHaUIiLCJUaUIiLCJQaUIiLCJFaUIiLCJaaUIiLCJZaUIiXSxtYXJrZXI6''@;'; put 'put ''ImIifSxkZWNpbWFsOntzY2FsZToxZTMsc3VmZml4ZXM6USxtYXJrZXI6ImQifX0scmU9e3RvdGFsTGVuZ3RoOjAsY2hhcmFjdGVyaXN0aWM6MCxmb3JjZUF2ZXJhZ2U6ITEsYXZlcmFnZTohMSxtYW50aXNzYTotMSxvcHRpb25hbE1hbnRpc3NhOiEwLHRob3VzYW5kU2VwYXJhdGVkOiExLHNw''@;'; put 'put ''YWNlU2VwYXJhdGVkOiExLG5lZ2F0aXZlOiJzaWduIixmb3JjZVNpZ246ITF9O2Z1bmN0aW9uIGFlKEope3ZhciBzZT0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sb2U9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTp2b2lk''@;'; put 'put ''IDA7aWYoInN0cmluZyI9PXR5cGVvZiBzZSYmKHNlPVUucGFyc2VGb3JtYXQoc2UpKSwhRWUudmFsaWRhdGVGb3JtYXQoc2UpKXJldHVybiJFUlJPUjogaW52YWxpZCBmb3JtYXQiO3ZhciBjZT1zZS5wcmVmaXh8fCIiLGRlPXNlLnBvc3RmaXh8fCIiLHZlPWZ1bmN0aW9uKEFlLGtlLFNlKXtz''@;'; put 'put ''d2l0Y2goa2Uub3V0cHV0KXtjYXNlImN1cnJlbmN5IjpyZXR1cm4gZnVuY3Rpb24obXQsdnQsQXQpe3ZhciBodD1BdC5jdXJyZW50Q3VycmVuY3koKSxCdD1PYmplY3QuYXNzaWduKHt9LHJlLHZ0KSxvbj12b2lkIDAsX3Q9IiIsdHQ9ISFCdC50b3RhbExlbmd0aHx8ISFCdC5mb3JjZUF2ZXJh''@;'; put 'put ''Z2V8fEJ0LmF2ZXJhZ2UsZXQ9dnQuY3VycmVuY3lQb3NpdGlvbnx8aHQucG9zaXRpb24sbHQ9dnQuY3VycmVuY3lTeW1ib2x8fGh0LnN5bWJvbDtCdC5zcGFjZVNlcGFyYXRlZCYmKF90PSIgIiksImluZml4Ij09PWV0JiYob249X3QrbHQrX3QpO3ZhciBMdD10ZSh7aW5zdGFuY2U6bXQscHJv''@;'; put 'put ''dmlkZWRGb3JtYXQ6dnQsc3RhdGU6QXQsZGVjaW1hbFNlcGFyYXRvcjpvbn0pO3JldHVybiJwcmVmaXgiPT09ZXQmJihMdD1tdC5fdmFsdWU8MCYmInNpZ24iPT09QnQubmVnYXRpdmU/Ii0iLmNvbmNhdChfdCkuY29uY2F0KGx0KS5jb25jYXQoTHQuc2xpY2UoMSkpOmx0K190K0x0KSxldCYm''@;'; put 'put ''InBvc3RmaXgiIT09ZXR8fChMdD1MdCsoX3Q9dHQ/IiI6X3QpK2x0KSxMdH0oQWUsa2U9SyhrZSxFLmN1cnJlbnRDdXJyZW5jeURlZmF1bHRGb3JtYXQoKSksRSk7Y2FzZSJwZXJjZW50IjpyZXR1cm4ga2U9SyhrZSxFLmN1cnJlbnRQZXJjZW50YWdlRGVmYXVsdEZvcm1hdCgpKSxBdD1FLEJ0''@;'; put 'put ''PSh2dD1rZSkucHJlZml4U3ltYm9sLG9uPXRlKHtpbnN0YW5jZTpTZSgxMDAqQWUuX3ZhbHVlKSxwcm92aWRlZEZvcm1hdDp2dCxzdGF0ZTpBdH0pLF90PU9iamVjdC5hc3NpZ24oe30scmUsdnQpLEJ0PyIlIi5jb25jYXQoX3Quc3BhY2VTZXBhcmF0ZWQ/IiAiOiIiKS5jb25jYXQob24pOiIi''@;'; put 'put ''LmNvbmNhdChvbikuY29uY2F0KF90LnNwYWNlU2VwYXJhdGVkPyIgIjoiIiwiJSIpO2Nhc2UiYnl0ZSI6cmV0dXJuIGtlPUsoa2UsRS5jdXJyZW50Qnl0ZURlZmF1bHRGb3JtYXQoKSksRj1FLHllPVNlLENlPShTPWtlKS5iYXNlfHwiYmluYXJ5IiwkZT0oUGU9WShBZS5fdmFsdWUsKERlPWpb''@;'; put 'put ''Q2VdKS5zdWZmaXhlcyxEZS5zY2FsZSkpLnN1ZmZpeCxndD10ZSh7aW5zdGFuY2U6eWUoUGUudmFsdWUpLHByb3ZpZGVkRm9ybWF0OlMsc3RhdGU6RixkZWZhdWx0czpGLmN1cnJlbnRCeXRlRGVmYXVsdEZvcm1hdCgpfSksd3Q9Ri5jdXJyZW50QWJicmV2aWF0aW9ucygpLCIiLmNvbmNhdChn''@;'; put 'put ''dCkuY29uY2F0KHd0LnNwYWNlZD8iICI6IiIpLmNvbmNhdCgkZSk7Y2FzZSJ0aW1lIjpyZXR1cm4ga2U9SyhrZSxFLmN1cnJlbnRUaW1lRGVmYXVsdEZvcm1hdCgpKSxuZT1BZSx4PU1hdGguZmxvb3IobmUuX3ZhbHVlLzYwLzYwKSxQPU1hdGguZmxvb3IoKG5lLl92YWx1ZS02MCp4KjYwKS82''@;'; put 'put ''MCksVj1NYXRoLnJvdW5kKG5lLl92YWx1ZS02MCp4KjYwLTYwKlApLCIiLmNvbmNhdCh4LCI6IikuY29uY2F0KFA8MTA/IjAiOiIiKS5jb25jYXQoUCwiOiIpLmNvbmNhdChWPDEwPyIwIjoiIikuY29uY2F0KFYpO2Nhc2Uib3JkaW5hbCI6cmV0dXJuIEllPUFlLFRlPWtlPUsoa2UsRS5jdXJy''@;'; put 'put ''ZW50T3JkaW5hbERlZmF1bHRGb3JtYXQoKSksaGU9KE1lPUUpLmN1cnJlbnRPcmRpbmFsKCksTz1PYmplY3QuYXNzaWduKHt9LHJlLFRlKSx6PXRlKHtpbnN0YW5jZTpJZSxwcm92aWRlZEZvcm1hdDpUZSxzdGF0ZTpNZX0pLGVlPWhlKEllLl92YWx1ZSksIiIuY29uY2F0KHopLmNvbmNhdChP''@;'; put 'put ''LnNwYWNlU2VwYXJhdGVkPyIgIjoiIikuY29uY2F0KGVlKTtkZWZhdWx0OnJldHVybiB0ZSh7aW5zdGFuY2U6QWUscHJvdmlkZWRGb3JtYXQ6a2UsbnVtYnJvOlNlfSl9dmFyIHZ0LEF0LEJ0LG9uLF90LEllLFRlLE1lLGhlLE8seixlZSxuZSx4LFAsVixTLEYseWUsQ2UsRGUsUGUsJGUsZ3Qs''@;'; put 'put ''d3R9KEosc2Usb2UpO3JldHVybih2ZT1jZSt2ZSkrZGV9ZnVuY3Rpb24gWShKLHNlLG9lKXt2YXIgY2U9c2VbMF0sZGU9TWF0aC5hYnMoSik7aWYob2U8PWRlKXtmb3IodmFyIHZlPTE7dmU8c2UubGVuZ3RoOysrdmUpe3ZhciBBZT1NYXRoLnBvdyhvZSx2ZSksa2U9TWF0aC5wb3cob2UsdmUr''@;'; put 'put ''MSk7aWYoQWU8PWRlJiZkZTxrZSl7Y2U9c2VbdmVdLEovPUFlO2JyZWFrfX1jZT09PXNlWzBdJiYoSi89TWF0aC5wb3cob2Usc2UubGVuZ3RoLTEpLGNlPXNlW3NlLmxlbmd0aC0xXSl9cmV0dXJue3ZhbHVlOkosc3VmZml4OmNlfX1mdW5jdGlvbiBXKEope2Zvcih2YXIgc2U9IiIsb2U9MDtv''@;'; put 'put ''ZTxKO29lKyspc2UrPSIwIjtyZXR1cm4gc2V9ZnVuY3Rpb24gdGUoSil7dmFyIHNlPUouaW5zdGFuY2Usb2U9Si5wcm92aWRlZEZvcm1hdCxjZT1KLnN0YXRlLGRlPXZvaWQgMD09PWNlP0U6Y2UsdmU9Si5kZWNpbWFsU2VwYXJhdG9yLEFlPUouZGVmYXVsdHMsa2U9dm9pZCAwPT09QWU/ZGUu''@;'; put 'put ''Y3VycmVudERlZmF1bHRzKCk6QWUsU2U9c2UuX3ZhbHVlO2lmKDA9PT1TZSYmZGUuaGFzWmVyb0Zvcm1hdCgpKXJldHVybiBkZS5nZXRaZXJvRm9ybWF0KCk7aWYoIWlzRmluaXRlKFNlKSlyZXR1cm4gU2UudG9TdHJpbmcoKTt2YXIgSWUsVGUsTWUsaGUsTyxlZSxuZSx4PU9iamVjdC5hc3Np''@;'; put 'put ''Z24oe30scmUsa2Usb2UpLFA9eC50b3RhbExlbmd0aCxWPVA/MDp4LmNoYXJhY3RlcmlzdGljLFQ9eC5vcHRpb25hbENoYXJhY3RlcmlzdGljLFM9eC5mb3JjZUF2ZXJhZ2UsRj0hIVB8fCEhU3x8eC5hdmVyYWdlLHllPVA/LTE6RiYmdm9pZCAwPT09b2UubWFudGlzc2E/MDp4Lm1hbnRpc3Nh''@;'; put 'put ''LENlPSFQJiYodm9pZCAwPT09b2Uub3B0aW9uYWxNYW50aXNzYT8tMT09PXllOngub3B0aW9uYWxNYW50aXNzYSksRGU9eC50cmltTWFudGlzc2EsUGU9eC50aG91c2FuZFNlcGFyYXRlZCxRZT14LnNwYWNlU2VwYXJhdGVkLCRlPXgubmVnYXRpdmUsZ3Q9eC5mb3JjZVNpZ24sd3Q9eC5leHBv''@;'; put 'put ''bmVudGlhbCxtdD0iIjtpZihGKXt2YXIgdnQ9ZnVuY3Rpb24odHQpe3ZhciBldD10dC52YWx1ZSxsdD10dC5mb3JjZUF2ZXJhZ2UsTHQ9dHQuYWJicmV2aWF0aW9ucyxDdD10dC5zcGFjZVNlcGFyYXRlZCxmdD12b2lkIDAhPT1DdCYmQ3QsSHQ9dHQudG90YWxMZW5ndGgsR2U9dm9pZCAwPT09''@;'; put 'put ''SHQ/MDpIdCxVZT0iIix5dD1NYXRoLmFicyhldCksanQ9LTE7aWYoeXQ+PU1hdGgucG93KDEwLDEyKSYmIWx0fHwidHJpbGxpb24iPT09bHQ/KFVlPUx0LnRyaWxsaW9uLGV0Lz1NYXRoLnBvdygxMCwxMikpOnl0PE1hdGgucG93KDEwLDEyKSYmeXQ+PU1hdGgucG93KDEwLDkpJiYhbHR8fCJi''@;'; put 'put ''aWxsaW9uIj09PWx0PyhVZT1MdC5iaWxsaW9uLGV0Lz1NYXRoLnBvdygxMCw5KSk6eXQ8TWF0aC5wb3coMTAsOSkmJnl0Pj1NYXRoLnBvdygxMCw2KSYmIWx0fHwibWlsbGlvbiI9PT1sdD8oVWU9THQubWlsbGlvbixldC89TWF0aC5wb3coMTAsNikpOih5dDxNYXRoLnBvdygxMCw2KSYmeXQ+''@;'; put 'put ''PU1hdGgucG93KDEwLDMpJiYhbHR8fCJ0aG91c2FuZCI9PT1sdCkmJihVZT1MdC50aG91c2FuZCxldC89TWF0aC5wb3coMTAsMykpLFVlJiYoVWU9KGZ0PyIgIjoiIikrVWUpLEdlKXt2YXIgSnQ9ZXQudG9TdHJpbmcoKS5zcGxpdCgiLiIpWzBdO2p0PU1hdGgubWF4KEdlLUp0Lmxlbmd0aCww''@;'; put 'put ''KX1yZXR1cm57dmFsdWU6ZXQsYWJicmV2aWF0aW9uOlVlLG1hbnRpc3NhUHJlY2lzaW9uOmp0fX0oe3ZhbHVlOlNlLGZvcmNlQXZlcmFnZTpTLGFiYnJldmlhdGlvbnM6ZGUuY3VycmVudEFiYnJldmlhdGlvbnMoKSxzcGFjZVNlcGFyYXRlZDpRZSx0b3RhbExlbmd0aDpQfSk7U2U9dnQudmFs''@;'; put 'put ''dWUsbXQrPXZ0LmFiYnJldmlhdGlvbixQJiYoeWU9dnQubWFudGlzc2FQcmVjaXNpb24pfWlmKHd0KXt2YXIgQXQ9KFRlPShJZT17dmFsdWU6U2UsY2hhcmFjdGVyaXN0aWNQcmVjaXNpb246Vn0pLnZhbHVlLGhlPXZvaWQgMD09PShNZT1JZS5jaGFyYWN0ZXJpc3RpY1ByZWNpc2lvbik/MDpN''@;'; put 'put ''ZSxlZT0oTz1CKFRlLnRvRXhwb25lbnRpYWwoKS5zcGxpdCgiZSIpLDIpKVsxXSxuZT0rT1swXSxoZSYmMTxoZSYmKG5lKj1NYXRoLnBvdygxMCxoZS0xKSxlZT0wPD0oZWU9K2VlLShoZS0xKSk/IisiLmNvbmNhdChlZSk6ZWUpLHt2YWx1ZTpuZSxhYmJyZXZpYXRpb246ImUiLmNvbmNhdChl''@;'; put 'put ''ZSl9KTtTZT1BdC52YWx1ZSxtdD1BdC5hYmJyZXZpYXRpb24rbXR9dmFyIGh0LEJ0LG9uLF90PWZ1bmN0aW9uKHR0LGV0LGx0LEx0LEN0KXtpZigtMT09PUx0KXJldHVybiB0dDt2YXIgZnQ9ZnVuY3Rpb24gTihKLHNlKXtyZXR1cm4tMSE9PUoudG9TdHJpbmcoKS5pbmRleE9mKCJlIik/ZnVu''@;'; put 'put ''Y3Rpb24ob2UsY2Upe3ZhciBkZT1vZS50b1N0cmluZygpLHZlPUIoZGUuc3BsaXQoImUiKSwyKSxrZT12ZVsxXSxTZT1CKHZlWzBdLnNwbGl0KCIuIiksMiksSWU9U2VbMF0sVGU9U2VbMV0sTWU9dm9pZCAwPT09VGU/IiI6VGU7aWYoMDwra2UpZGU9SWUrTWUrVyhrZS1NZS5sZW5ndGgpO2Vs''@;'; put 'put ''c2V7dmFyIGhlPSIuIjtoZT0rSWU8MD8iLTAiLmNvbmNhdChoZSk6IjAiLmNvbmNhdChoZSk7dmFyIE89KFcoLWtlLTEpK01hdGguYWJzKEllKStNZSkuc3Vic3RyKDAsY2UpO08ubGVuZ3RoPGNlJiYoTys9VyhjZS1PLmxlbmd0aCkpLGRlPWhlK099cmV0dXJuIDA8K2tlJiYwPGNlJiYoZGUr''@;'; put 'put ''PSIuIi5jb25jYXQoVyhjZSkpKSxkZX0oSixzZSk6KE1hdGgucm91bmQoKyIiLmNvbmNhdChKLCJlKyIpLmNvbmNhdChzZSkpL01hdGgucG93KDEwLHNlKSkudG9GaXhlZChzZSl9KGV0LEx0KSxIdD1CKGZ0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKSwyKSxHZT1IdFswXSxVZT1IdFsxXSx5dD12''@;'; put 'put ''b2lkIDA9PT1VZT8iIjpVZTtpZih5dC5tYXRjaCgvXjArJC8pJiYobHR8fEN0KSlyZXR1cm4gR2U7dmFyIGp0PXl0Lm1hdGNoKC8wKyQvKTtyZXR1cm4gQ3QmJmp0PyIiLmNvbmNhdChHZSwiLiIpLmNvbmNhdCh5dC50b1N0cmluZygpLnNsaWNlKDAsanQuaW5kZXgpKTpmdC50b1N0cmluZygp''@;'; put 'put ''fShTZS50b1N0cmluZygpLFNlLENlLHllLERlKTtyZXR1cm4gX3Q9ZnVuY3Rpb24odHQsZXQsbHQsTHQsQ3Qpe3ZhciBmdD1MdC5jdXJyZW50RGVsaW1pdGVycygpLEh0PWZ0LnRob3VzYW5kcztDdD1DdHx8ZnQuZGVjaW1hbDt2YXIgR2U9ZnQudGhvdXNhbmRzU2l6ZXx8MyxVZT10dC50b1N0''@;'; put 'put ''cmluZygpLHl0PVVlLnNwbGl0KCIuIilbMF0sanQ9VWUuc3BsaXQoIi4iKVsxXTtyZXR1cm4gbHQmJihldDwwJiYoeXQ9eXQuc2xpY2UoMSkpLGZ1bmN0aW9uKEp0LGduKXtmb3IodmFyIGRuPVtdLHluPTAsbG49SnQ7MDxsbjtsbi0tKXluPT09Z24mJihkbi51bnNoaWZ0KGxuKSx5bj0wKSx5''@;'; put 'put ''bisrO3JldHVybiBkbn0oeXQubGVuZ3RoLEdlKS5mb3JFYWNoKGZ1bmN0aW9uKEp0LGduKXt5dD15dC5zbGljZSgwLEp0K2duKStIdCt5dC5zbGljZShKdCtnbil9KSxldDwwJiYoeXQ9Ii0iLmNvbmNhdCh5dCkpKSxqdD95dCtDdCtqdDp5dH0oX3Q9ZnVuY3Rpb24odHQsZXQsbHQsTHQpe3Zh''@;'; put 'put ''ciBDdD10dCxmdD1CKEN0LnRvU3RyaW5nKCkuc3BsaXQoIi4iKSwyKSxIdD1mdFswXSxHZT1mdFsxXTtpZihIdC5tYXRjaCgvXi0/MCQvKSYmbHQpcmV0dXJuIEdlPyIiLmNvbmNhdChIdC5yZXBsYWNlKCIwIiwiIiksIi4iKS5jb25jYXQoR2UpOkh0LnJlcGxhY2UoIjAiLCIiKTtpZihIdC5s''@;'; put 'put ''ZW5ndGg8THQpZm9yKHZhciBVZT1MdC1IdC5sZW5ndGgseXQ9MDt5dDxVZTt5dCsrKUN0PSIwIi5jb25jYXQoQ3QpO3JldHVybiBDdC50b1N0cmluZygpfShfdCwwLFQsViksU2UsUGUsZGUsdmUpLChGfHx3dCkmJihfdCs9bXQpLChndHx8U2U8MCkmJihodD1fdCxvbj0kZSxfdD0wPT09KEJ0''@;'; put 'put ''PVNlKT9odDowPT0raHQ/aHQucmVwbGFjZSgiLSIsIiIpOjA8QnQ/IisiLmNvbmNhdChodCk6InNpZ24iPT09b24/aHQ6IigiLmNvbmNhdChodC5yZXBsYWNlKCItIiwiIiksIikiKSksX3R9ZnVuY3Rpb24gSyhKLHNlKXtpZighSilyZXR1cm4gc2U7dmFyIG9lPU9iamVjdC5rZXlzKEopO3Jl''@;'; put 'put ''dHVybiAxPT09b2UubGVuZ3RoJiYib3V0cHV0Ij09PW9lWzBdP3NlOkp9TC5leHBvcnRzPWZ1bmN0aW9uKEope3JldHVybntmb3JtYXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHNlPWFyZ3VtZW50cy5sZW5ndGgsb2U9bmV3IEFycmF5KHNlKSxjZT0wO2NlPHNlO2NlKyspb2VbY2VdPWFyZ3VtZW50''@;'; put 'put ''c1tjZV07cmV0dXJuIGFlLmFwcGx5KHZvaWQgMCxvZS5jb25jYXQoW0pdKSl9LGdldEJ5dGVVbml0OmZ1bmN0aW9uKCl7Zm9yKHZhciBzZT1hcmd1bWVudHMubGVuZ3RoLG9lPW5ldyBBcnJheShzZSksY2U9MDtjZTxzZTtjZSsrKW9lW2NlXT1hcmd1bWVudHNbY2VdO3JldHVybiBmdW5jdGlv''@;'; put 'put ''bihkZSl7dmFyIHZlPWouZ2VuZXJhbDtyZXR1cm4gWShkZS5fdmFsdWUsdmUuc3VmZml4ZXMsdmUuc2NhbGUpLnN1ZmZpeH0uYXBwbHkodm9pZCAwLG9lLmNvbmNhdChbSl0pKX0sZ2V0QmluYXJ5Qnl0ZVVuaXQ6ZnVuY3Rpb24oKXtmb3IodmFyIHNlPWFyZ3VtZW50cy5sZW5ndGgsb2U9bmV3''@;'; put 'put ''IEFycmF5KHNlKSxjZT0wO2NlPHNlO2NlKyspb2VbY2VdPWFyZ3VtZW50c1tjZV07cmV0dXJuIGZ1bmN0aW9uKGRlKXt2YXIgdmU9ai5iaW5hcnk7cmV0dXJuIFkoZGUuX3ZhbHVlLHZlLnN1ZmZpeGVzLHZlLnNjYWxlKS5zdWZmaXh9LmFwcGx5KHZvaWQgMCxvZS5jb25jYXQoW0pdKSl9LGdl''@;'; put 'put ''dERlY2ltYWxCeXRlVW5pdDpmdW5jdGlvbigpe2Zvcih2YXIgc2U9YXJndW1lbnRzLmxlbmd0aCxvZT1uZXcgQXJyYXkoc2UpLGNlPTA7Y2U8c2U7Y2UrKylvZVtjZV09YXJndW1lbnRzW2NlXTtyZXR1cm4gZnVuY3Rpb24oZGUpe3ZhciB2ZT1qLmRlY2ltYWw7cmV0dXJuIFkoZGUuX3ZhbHVl''@;'; put 'put ''LHZlLnN1ZmZpeGVzLHZlLnNjYWxlKS5zdWZmaXh9LmFwcGx5KHZvaWQgMCxvZS5jb25jYXQoW0pdKSl9LGZvcm1hdE9yRGVmYXVsdDpLfX19LHsiLi9nbG9iYWxTdGF0ZSI6NCwiLi9wYXJzaW5nIjo4LCIuL3ZhbGlkYXRpbmciOjEwfV0sNDpbZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJp''@;'; put 'put ''Y3QiO3ZhciBCPUplKCIuL2VuLVVTIiksRT1KZSgiLi92YWxpZGF0aW5nIiksRWU9SmUoIi4vcGFyc2luZyIpLFU9e30sUT12b2lkIDAsaj17fSxyZT1udWxsLGFlPXt9O2Z1bmN0aW9uIFkoTil7UT1OfWZ1bmN0aW9uIFcoKXtyZXR1cm4galtRXX1VLmxhbmd1YWdlcz1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBPYmplY3QuYXNzaWduKHt9LGopfSxVLmN1cnJlbnRMYW5ndWFnZT1mdW5jdGlvbigpe3JldHVybiBRfSxVLmN1cnJlbnRDdXJyZW5jeT1mdW5jdGlvbigpe3JldHVybiBXKCkuY3VycmVuY3l9LFUuY3VycmVudEFiYnJldmlhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gVygpLmFiYnJl''@;'; put 'put ''dmlhdGlvbnN9LFUuY3VycmVudERlbGltaXRlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gVygpLmRlbGltaXRlcnN9LFUuY3VycmVudE9yZGluYWw9ZnVuY3Rpb24oKXtyZXR1cm4gVygpLm9yZGluYWx9LFUuY3VycmVudERlZmF1bHRzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30s''@;'; put 'put ''VygpLmRlZmF1bHRzLGFlKX0sVS5jdXJyZW50T3JkaW5hbERlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxVLmN1cnJlbnREZWZhdWx0cygpLFcoKS5vcmRpbmFsRm9ybWF0KX0sVS5jdXJyZW50Qnl0ZURlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gT2JqZWN0LmFzc2lnbih7fSxVLmN1cnJlbnREZWZhdWx0cygpLFcoKS5ieXRlRm9ybWF0KX0sVS5jdXJyZW50UGVyY2VudGFnZURlZmF1bHRGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxVLmN1cnJlbnREZWZhdWx0cygpLFcoKS5wZXJjZW50YWdlRm9ybWF0''@;'; put 'put ''KX0sVS5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sVS5jdXJyZW50RGVmYXVsdHMoKSxXKCkuY3VycmVuY3lGb3JtYXQpfSxVLmN1cnJlbnRUaW1lRGVmYXVsdEZvcm1hdD1mdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNz''@;'; put 'put ''aWduKHt9LFUuY3VycmVudERlZmF1bHRzKCksVygpLnRpbWVGb3JtYXQpfSxVLnNldERlZmF1bHRzPWZ1bmN0aW9uKE4pe049RWUucGFyc2VGb3JtYXQoTiksRS52YWxpZGF0ZUZvcm1hdChOKSYmKGFlPU4pfSxVLmdldFplcm9Gb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gcmV9LFUuc2V0WmVy''@;'; put 'put ''b0Zvcm1hdD1mdW5jdGlvbihOKXtyZXR1cm4gcmU9InN0cmluZyI9PXR5cGVvZiBOP046bnVsbH0sVS5oYXNaZXJvRm9ybWF0PWZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1yZX0sVS5sYW5ndWFnZURhdGE9ZnVuY3Rpb24oTil7aWYoTil7aWYoaltOXSlyZXR1cm4galtOXTt0aHJvdyBuZXcg''@;'; put 'put ''RXJyb3IoJ1Vua25vd24gdGFnICInLmNvbmNhdChOLCciJykpfXJldHVybiBXKCl9LFUucmVnaXN0ZXJMYW5ndWFnZT1mdW5jdGlvbihOKXt2YXIgdGU9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0mJmFyZ3VtZW50c1sxXTtpZighRS52YWxpZGF0ZUxhbmd1YWdl''@;'; put 'put ''KE4pKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBsYW5ndWFnZSBkYXRhIik7altOLmxhbmd1YWdlVGFnXT1OLHRlJiZZKE4ubGFuZ3VhZ2VUYWcpfSxVLnNldExhbmd1YWdlPWZ1bmN0aW9uKE4pe3ZhciB0ZT0xPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1''@;'; put 'put ''bWVudHNbMV06Qi5sYW5ndWFnZVRhZztpZighaltOXSl7dmFyIEs9Ti5zcGxpdCgiLSIpWzBdLEo9T2JqZWN0LmtleXMoaikuZmluZChmdW5jdGlvbihzZSl7cmV0dXJuIHNlLnNwbGl0KCItIilbMF09PT1LfSk7cmV0dXJuIGpbSl0/dm9pZCBZKEopOnZvaWQgWSh0ZSl9WShOKX0sVS5yZWdp''@;'; put 'put ''c3Rlckxhbmd1YWdlKEIpLFE9Qi5sYW5ndWFnZVRhZyxMLmV4cG9ydHM9VX0seyIuL2VuLVVTIjoyLCIuL3BhcnNpbmciOjgsIi4vdmFsaWRhdGluZyI6MTB9XSw1OltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7TC5leHBvcnRzPWZ1bmN0aW9uKEIpe3JldHVybntsb2FkTGFuZ3Vh''@;'; put 'put ''Z2VzSW5Ob2RlOmZ1bmN0aW9uKEUpe3JldHVybiBFZT1CLHZvaWQgRS5mb3JFYWNoKGZ1bmN0aW9uKFUpe3ZhciBRPXZvaWQgMDt0cnl7UT1KZSgiLi4vbGFuZ3VhZ2VzLyIuY29uY2F0KFUpKX1jYXRjaChqKXtjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gbG9hZCAiJy5jb25jYXQoVSwnIi4g''@;'; put 'put ''Tm8gbWF0Y2hpbmcgbGFuZ3VhZ2UgZmlsZSBmb3VuZC4nKSl9USYmRWUucmVnaXN0ZXJMYW5ndWFnZShRKX0pO3ZhciBFZX19fX0se31dLDY6W2Z1bmN0aW9uKEplLEwsbWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1KZSgiYmlnbnVtYmVyLmpzIik7ZnVuY3Rpb24gRShFZSxVLFEpe3ZhciBqPW5l''@;'; put 'put ''dyBCKEVlLl92YWx1ZSkscmU9VTtyZXR1cm4gUS5pc051bWJybyhVKSYmKHJlPVUuX3ZhbHVlKSxyZT1uZXcgQihyZSksRWUuX3ZhbHVlPWoubWludXMocmUpLnRvTnVtYmVyKCksRWV9TC5leHBvcnRzPWZ1bmN0aW9uKEVlKXtyZXR1cm57YWRkOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIHJlPVEs''@;'; put 'put ''YWU9RWUsWT1uZXcgQigoaj1VKS5fdmFsdWUpLFc9cmUsYWUuaXNOdW1icm8ocmUpJiYoVz1yZS5fdmFsdWUpLFc9bmV3IEIoVyksai5fdmFsdWU9WS5wbHVzKFcpLnRvTnVtYmVyKCksajt2YXIgaixyZSxhZSxZLFd9LHN1YnRyYWN0OmZ1bmN0aW9uKFUsUSl7cmV0dXJuIEUoVSxRLEVlKX0s''@;'; put 'put ''bXVsdGlwbHk6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gcmU9USxhZT1FZSxZPW5ldyBCKChqPVUpLl92YWx1ZSksVz1yZSxhZS5pc051bWJybyhyZSkmJihXPXJlLl92YWx1ZSksVz1uZXcgQihXKSxqLl92YWx1ZT1ZLnRpbWVzKFcpLnRvTnVtYmVyKCksajt2YXIgaixyZSxhZSxZLFd9LGRpdmlk''@;'; put 'put ''ZTpmdW5jdGlvbihVLFEpe3JldHVybiByZT1RLGFlPUVlLFk9bmV3IEIoKGo9VSkuX3ZhbHVlKSxXPXJlLGFlLmlzTnVtYnJvKHJlKSYmKFc9cmUuX3ZhbHVlKSxXPW5ldyBCKFcpLGouX3ZhbHVlPVkuZGl2aWRlZEJ5KFcpLnRvTnVtYmVyKCksajt2YXIgaixyZSxhZSxZLFd9LHNldDpmdW5j''@;'; put 'put ''dGlvbihVLFEpe3JldHVybiBqPVUsYWU9cmU9USxFZS5pc051bWJybyhyZSkmJihhZT1yZS5fdmFsdWUpLGouX3ZhbHVlPWFlLGo7dmFyIGoscmUsYWV9LGRpZmZlcmVuY2U6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gaj1RLEUoYWU9KHJlPUVlKShVLl92YWx1ZSksaixyZSksTWF0aC5hYnMoYWUu''@;'; put 'put ''X3ZhbHVlKTt2YXIgaixyZSxhZX19fX0seyJiaWdudW1iZXIuanMiOjF9XSw3OltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQih0ZSxLKXtmb3IodmFyIEo9MDtKPEsubGVuZ3RoO0orKyl7dmFyIHNlPUtbSl07c2UuZW51bWVyYWJsZT1zZS5lbnVtZXJhYmxlfHwh''@;'; put 'put ''MSxzZS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHNlJiYoc2Uud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0ZSxzZS5rZXksc2UpfX12YXIgRT1KZSgiLi9nbG9iYWxTdGF0ZSIpLEVlPUplKCIuL3ZhbGlkYXRpbmciKSxVPUplKCIuL2xvYWRpbmciKShOKSxRPUplKCIu''@;'; put 'put ''L3VuZm9ybWF0dGluZyIpLGo9SmUoIi4vZm9ybWF0dGluZyIpKE4pLHJlPUplKCIuL21hbmlwdWxhdGluZyIpKE4pLGFlPUplKCIuL3BhcnNpbmciKSxZPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdGUob2UpeyhmdW5jdGlvbihjZSxkZSl7aWYoIShjZSBpbnN0YW5jZW9mIGRlKSl0aHJvdyBuZXcg''@;'; put 'put ''VHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX0pKHRoaXMsdGUpLHRoaXMuX3ZhbHVlPW9lfXZhciBLLEo7cmV0dXJuIEs9dGUsKEo9W3trZXk6ImNsb25lIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBOKHRoaXMuX3ZhbHVlKX19LHtrZXk6ImZvcm1hdCIs''@;'; put 'put ''dmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gai5mb3JtYXQodGhpcywwPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e30pfX0se2tleToiZm9ybWF0Q3VycmVuY3kiLHZhbHVlOmZ1bmN0aW9uKG9lKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIG9l''@;'; put 'put ''JiYob2U9YWUucGFyc2VGb3JtYXQob2UpKSwob2U9ai5mb3JtYXRPckRlZmF1bHQob2UsRS5jdXJyZW50Q3VycmVuY3lEZWZhdWx0Rm9ybWF0KCkpKS5vdXRwdXQ9ImN1cnJlbmN5IixqLmZvcm1hdCh0aGlzLG9lKX19LHtrZXk6ImZvcm1hdFRpbWUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIG9l''@;'; put 'put ''PTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTp7fTtyZXR1cm4gb2Uub3V0cHV0PSJ0aW1lIixqLmZvcm1hdCh0aGlzLG9lKX19LHtrZXk6ImJpbmFyeUJ5dGVVbml0cyIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gai5nZXRCaW5hcnlCeXRl''@;'; put 'put ''VW5pdCh0aGlzKX19LHtrZXk6ImRlY2ltYWxCeXRlVW5pdHMiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIGouZ2V0RGVjaW1hbEJ5dGVVbml0KHRoaXMpfX0se2tleToiYnl0ZVVuaXRzIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBqLmdldEJ5dGVVbml0KHRoaXMpfX0se2tleToiZGlmZmVy''@;'; put 'put ''ZW5jZSIsdmFsdWU6ZnVuY3Rpb24ob2Upe3JldHVybiByZS5kaWZmZXJlbmNlKHRoaXMsb2UpfX0se2tleToiYWRkIix2YWx1ZTpmdW5jdGlvbihvZSl7cmV0dXJuIHJlLmFkZCh0aGlzLG9lKX19LHtrZXk6InN1YnRyYWN0Iix2YWx1ZTpmdW5jdGlvbihvZSl7cmV0dXJuIHJlLnN1YnRyYWN0''@;'; put 'put ''KHRoaXMsb2UpfX0se2tleToibXVsdGlwbHkiLHZhbHVlOmZ1bmN0aW9uKG9lKXtyZXR1cm4gcmUubXVsdGlwbHkodGhpcyxvZSl9fSx7a2V5OiJkaXZpZGUiLHZhbHVlOmZ1bmN0aW9uKG9lKXtyZXR1cm4gcmUuZGl2aWRlKHRoaXMsb2UpfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihv''@;'; put 'put ''ZSl7cmV0dXJuIHJlLnNldCh0aGlzLFcob2UpKX19LHtrZXk6InZhbHVlIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6InZhbHVlT2YiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX1dKSYmQihLLnByb3RvdHlwZSxKKSx0ZX0oKTtmdW5j''@;'; put 'put ''dGlvbiBXKHRlKXt2YXIgSz10ZTtyZXR1cm4gTi5pc051bWJybyh0ZSk/Sz10ZS5fdmFsdWU6InN0cmluZyI9PXR5cGVvZiB0ZT9LPU4udW5mb3JtYXQodGUpOmlzTmFOKHRlKSYmKEs9TmFOKSxLfWZ1bmN0aW9uIE4odGUpe3JldHVybiBuZXcgWShXKHRlKSl9Ti52ZXJzaW9uPSIyLjEuMiIs''@;'; put 'put ''Ti5pc051bWJybz1mdW5jdGlvbih0ZSl7cmV0dXJuIHRlIGluc3RhbmNlb2YgWX0sTi5sYW5ndWFnZT1FLmN1cnJlbnRMYW5ndWFnZSxOLnJlZ2lzdGVyTGFuZ3VhZ2U9RS5yZWdpc3Rlckxhbmd1YWdlLE4uc2V0TGFuZ3VhZ2U9RS5zZXRMYW5ndWFnZSxOLmxhbmd1YWdlcz1FLmxhbmd1YWdl''@;'; put 'put ''cyxOLmxhbmd1YWdlRGF0YT1FLmxhbmd1YWdlRGF0YSxOLnplcm9Gb3JtYXQ9RS5zZXRaZXJvRm9ybWF0LE4uZGVmYXVsdEZvcm1hdD1FLmN1cnJlbnREZWZhdWx0cyxOLnNldERlZmF1bHRzPUUuc2V0RGVmYXVsdHMsTi5kZWZhdWx0Q3VycmVuY3lGb3JtYXQ9RS5jdXJyZW50Q3VycmVuY3lE''@;'; put 'put ''ZWZhdWx0Rm9ybWF0LE4udmFsaWRhdGU9RWUudmFsaWRhdGUsTi5sb2FkTGFuZ3VhZ2VzSW5Ob2RlPVUubG9hZExhbmd1YWdlc0luTm9kZSxOLnVuZm9ybWF0PVEudW5mb3JtYXQsTC5leHBvcnRzPU59LHsiLi9mb3JtYXR0aW5nIjozLCIuL2dsb2JhbFN0YXRlIjo0LCIuL2xvYWRpbmciOjUs''@;'; put 'put ''Ii4vbWFuaXB1bGF0aW5nIjo2LCIuL3BhcnNpbmciOjgsIi4vdW5mb3JtYXR0aW5nIjo5LCIuL3ZhbGlkYXRpbmciOjEwfV0sODpbZnVuY3Rpb24oSmUsTCxtZSl7InVzZSBzdHJpY3QiO0wuZXhwb3J0cz17cGFyc2VGb3JtYXQ6ZnVuY3Rpb24oQil7dmFyIEUsRWUsVSxRLGoscmUsYWUsWSxX''@;'; put 'put ''LE4sdGUsSyxKLHNlLG9lLGNlLGRlLHZlLEFlLGtlLFNlPTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIEI/QjooRWU9U2Usaj1TZSxmdW5jdGlvbihJZSxUZSl7aWYoLTE9PT1JZS5pbmRleE9m''@;'; put 'put ''KCIkIikpe2lmKC0xPT09SWUuaW5kZXhPZigiJSIpKXJldHVybi0xIT09SWUuaW5kZXhPZigiYmQiKT8oVGUub3V0cHV0PSJieXRlIixUZS5iYXNlPSJnZW5lcmFsIik6LTEhPT1JZS5pbmRleE9mKCJiIik/KFRlLm91dHB1dD0iYnl0ZSIsVGUuYmFzZT0iYmluYXJ5Iik6LTEhPT1JZS5pbmRl''@;'; put 'put ''eE9mKCJkIik/KFRlLm91dHB1dD0iYnl0ZSIsVGUuYmFzZT0iZGVjaW1hbCIpOi0xPT09SWUuaW5kZXhPZigiOiIpPy0xIT09SWUuaW5kZXhPZigibyIpJiYoVGUub3V0cHV0PSJvcmRpbmFsIik6VGUub3V0cHV0PSJ0aW1lIjtUZS5vdXRwdXQ9InBlcmNlbnQifWVsc2UgVGUub3V0cHV0PSJj''@;'; put 'put ''dXJyZW5jeSJ9KEI9KHJlPShRPUI9KFU9KEU9QikubWF0Y2goL157KFtefV0qKX0vKSk/KEVlLnByZWZpeD1VWzFdLEUuc2xpY2UoVVswXS5sZW5ndGgpKTpFKS5tYXRjaCgveyhbXn1dKil9JC8pKT8oai5wb3N0Zml4PXJlWzFdLFEuc2xpY2UoMCwtcmVbMF0ubGVuZ3RoKSk6USxTZSksYWU9''@;'; put 'put ''U2UsKFk9Qi5tYXRjaCgvWzEtOV0rWzAtOV0qLykpJiYoYWUudG90YWxMZW5ndGg9K1lbMF0pLFc9U2UsKE49Qi5zcGxpdCgiLiIpWzBdLm1hdGNoKC8wKy8pKSYmKFcuY2hhcmFjdGVyaXN0aWM9TlswXS5sZW5ndGgpLGZ1bmN0aW9uKEllLFRlKXtpZigtMSE9PUllLmluZGV4T2YoIi4iKSl7''@;'; put 'put ''dmFyIE1lPUllLnNwbGl0KCIuIilbMF07VGUub3B0aW9uYWxDaGFyYWN0ZXJpc3RpYz0tMT09PU1lLmluZGV4T2YoIjAiKX19KEIsU2UpLHRlPVNlLC0xIT09Qi5pbmRleE9mKCJhIikmJih0ZS5hdmVyYWdlPSEwKSxKPVNlLC0xIT09KEs9QikuaW5kZXhPZigiSyIpP0ouZm9yY2VBdmVyYWdl''@;'; put 'put ''PSJ0aG91c2FuZCI6LTEhPT1LLmluZGV4T2YoIk0iKT9KLmZvcmNlQXZlcmFnZT0ibWlsbGlvbiI6LTEhPT1LLmluZGV4T2YoIkIiKT9KLmZvcmNlQXZlcmFnZT0iYmlsbGlvbiI6LTEhPT1LLmluZGV4T2YoIlQiKSYmKEouZm9yY2VBdmVyYWdlPSJ0cmlsbGlvbiIpLGZ1bmN0aW9uKEllLFRl''@;'; put 'put ''KXt2YXIgTWU9SWUuc3BsaXQoIi4iKVsxXTtpZihNZSl7dmFyIGhlPU1lLm1hdGNoKC8wKy8pO2hlJiYoVGUubWFudGlzc2E9aGVbMF0ubGVuZ3RoKX19KEIsU2UpLG9lPVNlLChzZT1CKS5tYXRjaCgvXFtcLl0vKT9vZS5vcHRpb25hbE1hbnRpc3NhPSEwOnNlLm1hdGNoKC9cLi8pJiYob2Uu''@;'; put 'put ''b3B0aW9uYWxNYW50aXNzYT0hMSksY2U9U2UsLTEhPT1CLmluZGV4T2YoIiwiKSYmKGNlLnRob3VzYW5kU2VwYXJhdGVkPSEwKSxkZT1TZSwtMSE9PUIuaW5kZXhPZigiICIpJiYoZGUuc3BhY2VTZXBhcmF0ZWQ9ITApLEFlPVNlLCh2ZT1CKS5tYXRjaCgvXlwrP1woW14pXSpcKSQvKSYmKEFl''@;'; put 'put ''Lm5lZ2F0aXZlPSJwYXJlbnRoZXNpcyIpLHZlLm1hdGNoKC9eXCs/LS8pJiYoQWUubmVnYXRpdmU9InNpZ24iKSxrZT1TZSxCLm1hdGNoKC9eXCsvKSYmKGtlLmZvcmNlU2lnbj0hMCksU2UpfX19LHt9XSw5OltmdW5jdGlvbihKZSxMLG1lKXsidXNlIHN0cmljdCI7dmFyIEI9W3trZXk6Ilpp''@;'; put 'put ''QiIsZmFjdG9yOk1hdGgucG93KDEwMjQsNyl9LHtrZXk6IlpCIixmYWN0b3I6TWF0aC5wb3coMWUzLDcpfSx7a2V5OiJZaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDgpfSx7a2V5OiJZQiIsZmFjdG9yOk1hdGgucG93KDFlMyw4KX0se2tleToiVGlCIixmYWN0b3I6TWF0aC5wb3coMTAyNCw0''@;'; put 'put ''KX0se2tleToiVEIiLGZhY3RvcjpNYXRoLnBvdygxZTMsNCl9LHtrZXk6IlBpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsNSl9LHtrZXk6IlBCIixmYWN0b3I6TWF0aC5wb3coMWUzLDUpfSx7a2V5OiJNaUIiLGZhY3RvcjpNYXRoLnBvdygxMDI0LDIpfSx7a2V5OiJNQiIsZmFjdG9yOk1hdGgu''@;'; put 'put ''cG93KDFlMywyKX0se2tleToiS2lCIixmYWN0b3I6TWF0aC5wb3coMTAyNCwxKX0se2tleToiS0IiLGZhY3RvcjpNYXRoLnBvdygxZTMsMSl9LHtrZXk6IkdpQiIsZmFjdG9yOk1hdGgucG93KDEwMjQsMyl9LHtrZXk6IkdCIixmYWN0b3I6TWF0aC5wb3coMWUzLDMpfSx7a2V5OiJFaUIiLGZh''@;'; put 'put ''Y3RvcjpNYXRoLnBvdygxMDI0LDYpfSx7a2V5OiJFQiIsZmFjdG9yOk1hdGgucG93KDFlMyw2KX0se2tleToiQiIsZmFjdG9yOjF9XTtmdW5jdGlvbiBFKFUpe3JldHVybiBVLnJlcGxhY2UoL1stL1xcXiQqKz8uKCl8W1xde31dL2csIlxcJCYiKX1MLmV4cG9ydHM9e3VuZm9ybWF0OmZ1bmN0''@;'; put 'put ''aW9uKFUsUSl7dmFyIGosWT1KZSgiLi9nbG9iYWxTdGF0ZSIpLFc9WS5jdXJyZW50RGVsaW1pdGVycygpLE49WS5jdXJyZW50Q3VycmVuY3koKS5zeW1ib2wsdGU9WS5jdXJyZW50T3JkaW5hbCgpLEs9WS5nZXRaZXJvRm9ybWF0KCksSj1ZLmN1cnJlbnRBYmJyZXZpYXRpb25zKCksc2U9dm9p''@;'; put 'put ''ZCAwO2lmKCJzdHJpbmciPT10eXBlb2YgVSlzZT1mdW5jdGlvbihvZSxjZSl7aWYoIW9lLmluZGV4T2YoIjoiKXx8IjoiPT09Y2UudGhvdXNhbmRzKXJldHVybiExO3ZhciBkZT1vZS5zcGxpdCgiOiIpO2lmKDMhPT1kZS5sZW5ndGgpcmV0dXJuITE7dmFyIEFlPStkZVsxXSxrZT0rZGVbMl07''@;'; put 'put ''cmV0dXJuIWlzTmFOKCtkZVswXSkmJiFpc05hTihBZSkmJiFpc05hTihrZSl9KFUsVyk/KyhqPVUuc3BsaXQoIjoiKSlbMl0rNjAqK2pbMV0rMzYwMCoralswXTpmdW5jdGlvbiBFZShVLFEpe3ZhciBqPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50''@;'; put 'put ''c1syXToiIixyZT0zPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzNdOnZvaWQgMCxhZT00PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzRdOnZvaWQgMCxZPTU8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbNV06dm9pZCAwLFc9Njxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1s2''@;'; put 'put ''XTp2b2lkIDA7aWYoIiIhPT1VKXJldHVybiBVPT09YWU/MDpmdW5jdGlvbiBOKHRlLEspe3ZhciBKPTI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXToiIixzZT0zPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzNdOnZvaWQgMCxvZT00PGFy''@;'; put 'put ''Z3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzRdOnZvaWQgMCxjZT01PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzVdOnZvaWQgMCxkZT02PGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzZdOnZvaWQgMDtpZighaXNOYU4oK3RlKSlyZXR1cm4rdGU7dmFyIHZlPSIiLEFlPXRlLnJlcGxh''@;'; put 'put ''Y2UoLyheW14oXSopXCgoLiopXCkoW14pXSokKS8sIiQxJDIkMyIpO2lmKEFlIT09dGUpcmV0dXJuLTEqTihBZSxLLEosc2Usb2UsY2UsZGUpO2Zvcih2YXIga2U9MDtrZTxCLmxlbmd0aDtrZSsrKXt2YXIgU2U9QltrZV07aWYoKHZlPXRlLnJlcGxhY2UoU2Uua2V5LCIiKSkhPT10ZSlyZXR1''@;'; put 'put ''cm4gTih2ZSxLLEosc2Usb2UsY2UsZGUpKlNlLmZhY3Rvcn1pZigodmU9dGUucmVwbGFjZSgiJSIsIiIpKSE9PXRlKXJldHVybiBOKHZlLEssSixzZSxvZSxjZSxkZSkvMTAwO3ZhciBJZT1wYXJzZUZsb2F0KHRlKTtpZighaXNOYU4oSWUpKXt2YXIgVGU9c2UoSWUpO2lmKFRlJiYiLiIhPT1U''@;'; put 'put ''ZSYmKHZlPXRlLnJlcGxhY2UobmV3IFJlZ0V4cCgiIi5jb25jYXQoRShUZSksIiQiKSksIiIpKSE9PXRlKXJldHVybiBOKHZlLEssSixzZSxvZSxjZSxkZSk7dmFyIE1lPXt9O09iamVjdC5rZXlzKGNlKS5mb3JFYWNoKGZ1bmN0aW9uKFApe01lW2NlW1BdXT1QfSk7Zm9yKHZhciBoZT1PYmpl''@;'; put 'put ''Y3Qua2V5cyhNZSkuc29ydCgpLnJldmVyc2UoKSxPPWhlLmxlbmd0aCx6PTA7ejxPO3orKyl7dmFyIGVlPWhlW3pdLG5lPU1lW2VlXTtpZigodmU9dGUucmVwbGFjZShlZSwiIikpIT09dGUpe3ZhciB4PXZvaWQgMDtzd2l0Y2gobmUpe2Nhc2UidGhvdXNhbmQiOng9TWF0aC5wb3coMTAsMyk7''@;'; put 'put ''YnJlYWs7Y2FzZSJtaWxsaW9uIjp4PU1hdGgucG93KDEwLDYpO2JyZWFrO2Nhc2UiYmlsbGlvbiI6eD1NYXRoLnBvdygxMCw5KTticmVhaztjYXNlInRyaWxsaW9uIjp4PU1hdGgucG93KDEwLDEyKX1yZXR1cm4gTih2ZSxLLEosc2Usb2UsY2UsZGUpKnh9fX19KGZ1bmN0aW9uKE4sdGUpe3Zh''@;'; put 'put ''ciBKPU4ucmVwbGFjZSgyPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06IiIsIiIpO3JldHVybihKPUoucmVwbGFjZShuZXcgUmVnRXhwKCIoWzAtOV0pIi5jb25jYXQoRSh0ZS50aG91c2FuZHMpLCIoWzAtOV0pIiksImciKSwiJDEkMiIpKS5y''@;'; put 'put ''ZXBsYWNlKHRlLmRlY2ltYWwsIi4iKX0oVSxRLGopLFEsaixyZSxhZSxZLFcpfShVLFcsTix0ZSxLLEosUSk7ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIFUpcmV0dXJuO3NlPVV9aWYodm9pZCAwIT09c2UpcmV0dXJuIHNlfX19LHsiLi9nbG9iYWxTdGF0ZSI6NH1dLDEwOltmdW5jdGlvbihK''@;'; put 'put ''ZSxMLG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihXKXtyZXR1cm4gZnVuY3Rpb24oTil7aWYoQXJyYXkuaXNBcnJheShOKSl7Zm9yKHZhciB0ZT0wLEs9bmV3IEFycmF5KE4ubGVuZ3RoKTt0ZTxOLmxlbmd0aDt0ZSsrKUtbdGVdPU5bdGVdO3JldHVybiBLfX0oVyl8fGZ1bmN0aW9uKE4p''@;'; put 'put ''e2lmKFN5bWJvbC5pdGVyYXRvciBpbiBPYmplY3QoTil8fCJbb2JqZWN0IEFyZ3VtZW50c10iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKE4pKXJldHVybiBBcnJheS5mcm9tKE4pfShXKXx8ZnVuY3Rpb24oKXt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQg''@;'; put 'put ''dG8gc3ByZWFkIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSgpfWZ1bmN0aW9uIEUoVyl7cmV0dXJuKEU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oTil7cmV0dXJuIHR5cGVvZiBOfTpmdW5jdGlvbihOKXtyZXR1''@;'; put 'put ''cm4gTiYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmTi5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmTiE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIE59KShXKX12YXIgRWU9SmUoIi4vdW5mb3JtYXR0aW5nIiksVT0vXlthLXpdezIsM30oLVthLXpBLVpdezR9KT8oLShbQS1a''@;'; put 'put ''XXsyfXxbMC05XXszfSkpPyQvLFE9e291dHB1dDp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbImN1cnJlbmN5IiwicGVyY2VudCIsImJ5dGUiLCJ0aW1lIiwib3JkaW5hbCIsIm51bWJlciJdfSxiYXNlOnt0eXBlOiJzdHJpbmciLHZhbGlkVmFsdWVzOlsiZGVjaW1hbCIsImJpbmFyeSIs''@;'; put 'put ''ImdlbmVyYWwiXSxyZXN0cmljdGlvbjpmdW5jdGlvbihXLE4pe3JldHVybiJieXRlIj09PU4ub3V0cHV0fSxtZXNzYWdlOiJgYmFzZWAgbXVzdCBiZSBwcm92aWRlZCBvbmx5IHdoZW4gdGhlIG91dHB1dCBpcyBgYnl0ZWAiLG1hbmRhdG9yeTpmdW5jdGlvbihXKXtyZXR1cm4iYnl0ZSI9PT1X''@;'; put 'put ''Lm91dHB1dH19LGNoYXJhY3RlcmlzdGljOnt0eXBlOiJudW1iZXIiLHJlc3RyaWN0aW9uOmZ1bmN0aW9uKFcpe3JldHVybiAwPD1XfSxtZXNzYWdlOiJ2YWx1ZSBtdXN0IGJlIHBvc2l0aXZlIn0scHJlZml4OiJzdHJpbmciLHBvc3RmaXg6InN0cmluZyIsZm9yY2VBdmVyYWdlOnt0eXBlOiJz''@;'; put 'put ''dHJpbmciLHZhbGlkVmFsdWVzOlsidHJpbGxpb24iLCJiaWxsaW9uIiwibWlsbGlvbiIsInRob3VzYW5kIl19LGF2ZXJhZ2U6ImJvb2xlYW4iLGN1cnJlbmN5UG9zaXRpb246e3R5cGU6InN0cmluZyIsdmFsaWRWYWx1ZXM6WyJwcmVmaXgiLCJpbmZpeCIsInBvc3RmaXgiXX0sY3VycmVuY3lT''@;'; put 'put ''eW1ib2w6InN0cmluZyIsdG90YWxMZW5ndGg6e3R5cGU6Im51bWJlciIscmVzdHJpY3Rpb25zOlt7cmVzdHJpY3Rpb246ZnVuY3Rpb24oVyl7cmV0dXJuIDA8PVd9LG1lc3NhZ2U6InZhbHVlIG11c3QgYmUgcG9zaXRpdmUifSx7cmVzdHJpY3Rpb246ZnVuY3Rpb24oVyxOKXtyZXR1cm4hTi5l''@;'; put 'put ''eHBvbmVudGlhbH0sbWVzc2FnZToiYHRvdGFsTGVuZ3RoYCBpcyBpbmNvbXBhdGlibGUgd2l0aCBgZXhwb25lbnRpYWxgIn1dfSxtYW50aXNzYTp7dHlwZToibnVtYmVyIixyZXN0cmljdGlvbjpmdW5jdGlvbihXKXtyZXR1cm4gMDw9V30sbWVzc2FnZToidmFsdWUgbXVzdCBiZSBwb3NpdGl2''@;'; put 'put ''ZSJ9LG9wdGlvbmFsTWFudGlzc2E6ImJvb2xlYW4iLHRyaW1NYW50aXNzYToiYm9vbGVhbiIsb3B0aW9uYWxDaGFyYWN0ZXJpc3RpYzoiYm9vbGVhbiIsdGhvdXNhbmRTZXBhcmF0ZWQ6ImJvb2xlYW4iLHNwYWNlU2VwYXJhdGVkOiJib29sZWFuIixhYmJyZXZpYXRpb25zOnt0eXBlOiJvYmpl''@;'; put 'put ''Y3QiLGNoaWxkcmVuOnt0aG91c2FuZDoic3RyaW5nIixtaWxsaW9uOiJzdHJpbmciLGJpbGxpb246InN0cmluZyIsdHJpbGxpb246InN0cmluZyJ9fSxuZWdhdGl2ZTp7dHlwZToic3RyaW5nIix2YWxpZFZhbHVlczpbInNpZ24iLCJwYXJlbnRoZXNpcyJdfSxmb3JjZVNpZ246ImJvb2xlYW4i''@;'; put 'put ''LGV4cG9uZW50aWFsOnt0eXBlOiJib29sZWFuIn0scHJlZml4U3ltYm9sOnt0eXBlOiJib29sZWFuIixyZXN0cmljdGlvbjpmdW5jdGlvbihXLE4pe3JldHVybiJwZXJjZW50Ij09PU4ub3V0cHV0fSxtZXNzYWdlOiJgcHJlZml4U3ltYm9sYCBjYW4gYmUgcHJvdmlkZWQgb25seSB3aGVuIHRo''@;'; put 'put ''ZSBvdXRwdXQgaXMgYHBlcmNlbnRgIn19LGo9e2xhbmd1YWdlVGFnOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMCxyZXN0cmljdGlvbjpmdW5jdGlvbihXKXtyZXR1cm4gVy5tYXRjaChVKX0sbWVzc2FnZToidGhlIGxhbmd1YWdlIHRhZyBtdXN0IGZvbGxvdyB0aGUgQkNQIDQ3IHNwZWNp''@;'; put 'put ''ZmljYXRpb24gKHNlZSBodHRwczovL3Rvb2xzLmllZnQub3JnL2h0bWwvYmNwNDcpIn0sZGVsaW1pdGVyczp7dHlwZToib2JqZWN0IixjaGlsZHJlbjp7dGhvdXNhbmRzOiJzdHJpbmciLGRlY2ltYWw6InN0cmluZyIsdGhvdXNhbmRzU2l6ZToibnVtYmVyIn0sbWFuZGF0b3J5OiEwfSxhYmJy''@;'; put 'put ''ZXZpYXRpb25zOnt0eXBlOiJvYmplY3QiLGNoaWxkcmVuOnt0aG91c2FuZDp7dHlwZToic3RyaW5nIixtYW5kYXRvcnk6ITB9LG1pbGxpb246e3R5cGU6InN0cmluZyIsbWFuZGF0b3J5OiEwfSxiaWxsaW9uOnt0eXBlOiJzdHJpbmciLG1hbmRhdG9yeTohMH0sdHJpbGxpb246e3R5cGU6InN0''@;'; put 'put ''cmluZyIsbWFuZGF0b3J5OiEwfX0sbWFuZGF0b3J5OiEwfSxzcGFjZVNlcGFyYXRlZDoiYm9vbGVhbiIsb3JkaW5hbDp7dHlwZToiZnVuY3Rpb24iLG1hbmRhdG9yeTohMH0sY3VycmVuY3k6e3R5cGU6Im9iamVjdCIsY2hpbGRyZW46e3N5bWJvbDoic3RyaW5nIixwb3NpdGlvbjoic3RyaW5n''@;'; put 'put ''Iixjb2RlOiJzdHJpbmcifSxtYW5kYXRvcnk6ITB9LGRlZmF1bHRzOiJmb3JtYXQiLG9yZGluYWxGb3JtYXQ6ImZvcm1hdCIsYnl0ZUZvcm1hdDoiZm9ybWF0IixwZXJjZW50YWdlRm9ybWF0OiJmb3JtYXQiLGN1cnJlbmN5Rm9ybWF0OiJmb3JtYXQiLHRpbWVEZWZhdWx0czoiZm9ybWF0Iixm''@;'; put 'put ''b3JtYXRzOnt0eXBlOiJvYmplY3QiLGNoaWxkcmVuOntmb3VyRGlnaXRzOnt0eXBlOiJmb3JtYXQiLG1hbmRhdG9yeTohMH0sZnVsbFdpdGhUd29EZWNpbWFsczp7dHlwZToiZm9ybWF0IixtYW5kYXRvcnk6ITB9LGZ1bGxXaXRoVHdvRGVjaW1hbHNOb0N1cnJlbmN5Ont0eXBlOiJmb3JtYXQi''@;'; put 'put ''LG1hbmRhdG9yeTohMH0sZnVsbFdpdGhOb0RlY2ltYWxzOnt0eXBlOiJmb3JtYXQiLG1hbmRhdG9yeTohMH19fX07ZnVuY3Rpb24gcmUoVyl7cmV0dXJuISFFZS51bmZvcm1hdChXKX1mdW5jdGlvbiBhZShXLE4sdGUpe3ZhciBLPTM8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1l''@;'; put 'put ''bnRzWzNdJiZhcmd1bWVudHNbM10sSj1PYmplY3Qua2V5cyhXKS5tYXAoZnVuY3Rpb24oc2Upe2lmKCFOW3NlXSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQodGUsIiBJbnZhbGlkIGtleTogIikuY29uY2F0KHNlKSksITE7dmFyIG9lPVdbc2VdLGNlPU5bc2VdO2lmKCJzdHJpbmci''@;'; put 'put ''PT10eXBlb2YgY2UmJihjZT17dHlwZTpjZX0pLCJmb3JtYXQiPT09Y2UudHlwZSl7aWYoIWFlKG9lLFEsIltWYWxpZGF0ZSAiLmNvbmNhdChzZSwiXSIpLCEwKSlyZXR1cm4hMX1lbHNlIGlmKEUob2UpIT09Y2UudHlwZSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQodGUsIiAiKS5j''@;'; put 'put ''b25jYXQoc2UsJyB0eXBlIG1pc21hdGNoZWQ6ICInKS5jb25jYXQoY2UudHlwZSwnIiBleHBlY3RlZCwgIicpLmNvbmNhdChFKG9lKSwnIiBwcm92aWRlZCcpKSwhMTtpZihjZS5yZXN0cmljdGlvbnMmJmNlLnJlc3RyaWN0aW9ucy5sZW5ndGgpZm9yKHZhciBkZT1jZS5yZXN0cmljdGlvbnMu''@;'; put 'put ''bGVuZ3RoLHZlPTA7dmU8ZGU7dmUrKyl7dmFyIEFlPWNlLnJlc3RyaWN0aW9uc1t2ZV0sU2U9QWUubWVzc2FnZTtpZighKDAsQWUucmVzdHJpY3Rpb24pKG9lLFcpKXJldHVybiBjb25zb2xlLmVycm9yKCIiLmNvbmNhdCh0ZSwiICIpLmNvbmNhdChzZSwiIGludmFsaWQgdmFsdWU6ICIpLmNv''@;'; put 'put ''bmNhdChTZSkpLCExfXJldHVybiBjZS5yZXN0cmljdGlvbiYmIWNlLnJlc3RyaWN0aW9uKG9lLFcpPyhjb25zb2xlLmVycm9yKCIiLmNvbmNhdCh0ZSwiICIpLmNvbmNhdChzZSwiIGludmFsaWQgdmFsdWU6ICIpLmNvbmNhdChjZS5tZXNzYWdlKSksITEpOmNlLnZhbGlkVmFsdWVzJiYtMT09''@;'; put 'put ''PWNlLnZhbGlkVmFsdWVzLmluZGV4T2Yob2UpPyhjb25zb2xlLmVycm9yKCIiLmNvbmNhdCh0ZSwiICIpLmNvbmNhdChzZSwiIGludmFsaWQgdmFsdWU6IG11c3QgYmUgYW1vbmcgIikuY29uY2F0KEpTT04uc3RyaW5naWZ5KGNlLnZhbGlkVmFsdWVzKSwnLCAiJykuY29uY2F0KG9lLCciIHBy''@;'; put 'put ''b3ZpZGVkJykpLCExKTohKGNlLmNoaWxkcmVuJiYhYWUob2UsY2UuY2hpbGRyZW4sIltWYWxpZGF0ZSAiLmNvbmNhdChzZSwiXSIpKSl9KTtyZXR1cm4gS3x8Si5wdXNoLmFwcGx5KEosQihPYmplY3Qua2V5cyhOKS5tYXAoZnVuY3Rpb24oc2Upe3ZhciBvZT1OW3NlXTtpZigic3RyaW5nIj09''@;'; put 'put ''dHlwZW9mIG9lJiYob2U9e3R5cGU6b2V9KSxvZS5tYW5kYXRvcnkpe3ZhciBjZT1vZS5tYW5kYXRvcnk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGNlJiYoY2U9Y2UoVykpLGNlJiZ2b2lkIDA9PT1XW3NlXSlyZXR1cm4gY29uc29sZS5lcnJvcigiIi5jb25jYXQodGUsJyBNaXNzaW5nIG1hbmRh''@;'; put 'put ''dG9yeSBrZXkgIicpLmNvbmNhdChzZSwnIicpKSwhMX1yZXR1cm4hMH0pKSksSi5yZWR1Y2UoZnVuY3Rpb24oc2Usb2Upe3JldHVybiBzZSYmb2V9LCEwKX1mdW5jdGlvbiBZKFcpe3JldHVybiBhZShXLFEsIltWYWxpZGF0ZSBmb3JtYXRdIil9TC5leHBvcnRzPXt2YWxpZGF0ZTpmdW5jdGlv''@;'; put 'put ''bihXLE4pe3ZhciB0ZT1yZShXKSxLPVkoTik7cmV0dXJuIHRlJiZLfSx2YWxpZGF0ZUZvcm1hdDpZLHZhbGlkYXRlSW5wdXQ6cmUsdmFsaWRhdGVMYW5ndWFnZTpmdW5jdGlvbihXKXtyZXR1cm4gYWUoVyxqLCJbVmFsaWRhdGUgbGFuZ3VhZ2VdIil9fX0seyIuL3VuZm9ybWF0dGluZyI6OX1d''@;'; put 'put ''fSx7fSxbN10pKDcpfSwzOTY1MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTg0NDQpLkJ1ZmZlcixCPUwoNjU2ODUpLlRyYW5zZm9ybTtmdW5jdGlvbiBVKFEpe0IuY2FsbCh0aGlzKSx0aGlzLl9ibG9jaz1tZS5hbGxvY1Vuc2FmZShRKSx0aGlzLl9ibG9ja1NpemU9USx0''@;'; put 'put ''aGlzLl9ibG9ja09mZnNldD0wLHRoaXMuX2xlbmd0aD1bMCwwLDAsMF0sdGhpcy5fZmluYWxpemVkPSExfUwoODM4OTQpKFUsQiksVS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihRLGoscmUpe3ZhciBhZT1udWxsO3RyeXt0aGlzLnVwZGF0ZShRLGopfWNhdGNoKFkpe2FlPVl9cmUo''@;'; put 'put ''YWUpfSxVLnByb3RvdHlwZS5fZmx1c2g9ZnVuY3Rpb24oUSl7dmFyIGo9bnVsbDt0cnl7dGhpcy5wdXNoKHRoaXMuZGlnZXN0KCkpfWNhdGNoKHJlKXtqPXJlfVEoail9LFUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihRLGope2lmKGZ1bmN0aW9uIEVlKFEsail7aWYoIW1lLmlzQnVmZmVy''@;'; put 'put ''KFEpJiYic3RyaW5nIiE9dHlwZW9mIFEpdGhyb3cgbmV3IFR5cGVFcnJvcihqKyIgbXVzdCBiZSBhIHN0cmluZyBvciBhIGJ1ZmZlciIpfShRLCJEYXRhIiksdGhpcy5fZmluYWxpemVkKXRocm93IG5ldyBFcnJvcigiRGlnZXN0IGFscmVhZHkgY2FsbGVkIik7bWUuaXNCdWZmZXIoUSl8fChR''@;'; put 'put ''PW1lLmZyb20oUSxqKSk7Zm9yKHZhciByZT10aGlzLl9ibG9jayxhZT0wO3RoaXMuX2Jsb2NrT2Zmc2V0K1EubGVuZ3RoLWFlPj10aGlzLl9ibG9ja1NpemU7KXtmb3IodmFyIFk9dGhpcy5fYmxvY2tPZmZzZXQ7WTx0aGlzLl9ibG9ja1NpemU7KXJlW1krK109UVthZSsrXTt0aGlzLl91cGRh''@;'; put 'put ''dGUoKSx0aGlzLl9ibG9ja09mZnNldD0wfWZvcig7YWU8US5sZW5ndGg7KXJlW3RoaXMuX2Jsb2NrT2Zmc2V0KytdPVFbYWUrK107Zm9yKHZhciBXPTAsTj04KlEubGVuZ3RoO04+MDsrK1cpdGhpcy5fbGVuZ3RoW1ddKz1OLChOPXRoaXMuX2xlbmd0aFtXXS80Mjk0OTY3Mjk2fDApPjAmJih0''@;'; put 'put ''aGlzLl9sZW5ndGhbV10tPTQyOTQ5NjcyOTYqTik7cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIl91cGRhdGUgaXMgbm90IGltcGxlbWVudGVkIil9LFUucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihRKXtpZih0aGlzLl9maW5h''@;'; put 'put ''bGl6ZWQpdGhyb3cgbmV3IEVycm9yKCJEaWdlc3QgYWxyZWFkeSBjYWxsZWQiKTt0aGlzLl9maW5hbGl6ZWQ9ITA7dmFyIGo9dGhpcy5fZGlnZXN0KCk7dm9pZCAwIT09USYmKGo9ai50b1N0cmluZyhRKSksdGhpcy5fYmxvY2suZmlsbCgwKSx0aGlzLl9ibG9ja09mZnNldD0wO2Zvcih2YXIg''@;'; put 'put ''cmU9MDtyZTw0OysrcmUpdGhpcy5fbGVuZ3RoW3JlXT0wO3JldHVybiBqfSxVLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfZGlnZXN0IGlzIG5vdCBpbXBsZW1lbnRlZCIpfSxYZS5leHBvcnRzPVV9LDE4NDQ0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkz''@;'; put 'put ''MTcyKSxCPW1lLkJ1ZmZlcjtmdW5jdGlvbiBFKFUsUSl7Zm9yKHZhciBqIGluIFUpUVtqXT1VW2pdfWZ1bmN0aW9uIEVlKFUsUSxqKXtyZXR1cm4gQihVLFEsail9Qi5mcm9tJiZCLmFsbG9jJiZCLmFsbG9jVW5zYWZlJiZCLmFsbG9jVW5zYWZlU2xvdz9YZS5leHBvcnRzPW1lOihFKG1lLEpl''@;'; put 'put ''KSxKZS5CdWZmZXI9RWUpLEVlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEIucHJvdG90eXBlKSxFKEIsRWUpLEVlLmZyb209ZnVuY3Rpb24oVSxRLGope2lmKCJudW1iZXIiPT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3Jl''@;'; put 'put ''dHVybiBCKFUsUSxqKX0sRWUuYWxsb2M9ZnVuY3Rpb24oVSxRLGope2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7dmFyIHJlPUIoVSk7cmV0dXJuIHZvaWQgMCE9PVE/InN0cmluZyI9PXR5cGVvZiBqP3JlLmZp''@;'; put 'put ''bGwoUSxqKTpyZS5maWxsKFEpOnJlLmZpbGwoMCkscmV9LEVlLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSl9LEVlLmFsbG9jVW5zYWZlU2xvdz1m''@;'; put 'put ''dW5jdGlvbihVKXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBtZS5TbG93QnVmZmVyKFUpfX0sMzcwODQ6KFhlLEplLEwpPT57dmFyIG1lPUplO21lLnV0aWxzPUwoMjkyOTkpLG1lLmNvbW1vbj1M''@;'; put 'put ''KDMzODAwKSxtZS5zaGE9TCg1NDk2MiksbWUucmlwZW1kPUwoOTk0NTgpLG1lLmhtYWM9TCgxMjE5NCksbWUuc2hhMT1tZS5zaGEuc2hhMSxtZS5zaGEyNTY9bWUuc2hhLnNoYTI1NixtZS5zaGEyMjQ9bWUuc2hhLnNoYTIyNCxtZS5zaGEzODQ9bWUuc2hhLnNoYTM4NCxtZS5zaGE1MTI9bWUu''@;'; put 'put ''c2hhLnNoYTUxMixtZS5yaXBlbWQxNjA9bWUucmlwZW1kLnJpcGVtZDE2MH0sMzM4MDA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI5Mjk5KSxCPUwoMzIzOTEpO2Z1bmN0aW9uIEUoKXt0aGlzLnBlbmRpbmc9bnVsbCx0aGlzLnBlbmRpbmdUb3RhbD0wLHRoaXMuYmxvY2tT''@;'; put 'put ''aXplPXRoaXMuY29uc3RydWN0b3IuYmxvY2tTaXplLHRoaXMub3V0U2l6ZT10aGlzLmNvbnN0cnVjdG9yLm91dFNpemUsdGhpcy5obWFjU3RyZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5obWFjU3RyZW5ndGgsdGhpcy5wYWRMZW5ndGg9dGhpcy5jb25zdHJ1Y3Rvci5wYWRMZW5ndGgvOCx0aGlz''@;'; put 'put ''LmVuZGlhbj0iYmlnIix0aGlzLl9kZWx0YTg9dGhpcy5ibG9ja1NpemUvOCx0aGlzLl9kZWx0YTMyPXRoaXMuYmxvY2tTaXplLzMyfUplLkJsb2NrSGFzaD1FLEUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihVLFEpe2lmKFU9bWUudG9BcnJheShVLFEpLHRoaXMucGVuZGluZz10aGlzLnBl''@;'; put 'put ''bmRpbmc/dGhpcy5wZW5kaW5nLmNvbmNhdChVKTpVLHRoaXMucGVuZGluZ1RvdGFsKz1VLmxlbmd0aCx0aGlzLnBlbmRpbmcubGVuZ3RoPj10aGlzLl9kZWx0YTgpe3ZhciBqPShVPXRoaXMucGVuZGluZykubGVuZ3RoJXRoaXMuX2RlbHRhODt0aGlzLnBlbmRpbmc9VS5zbGljZShVLmxlbmd0''@;'; put 'put ''aC1qLFUubGVuZ3RoKSwwPT09dGhpcy5wZW5kaW5nLmxlbmd0aCYmKHRoaXMucGVuZGluZz1udWxsKSxVPW1lLmpvaW4zMihVLDAsVS5sZW5ndGgtaix0aGlzLmVuZGlhbik7Zm9yKHZhciByZT0wO3JlPFUubGVuZ3RoO3JlKz10aGlzLl9kZWx0YTMyKXRoaXMuX3VwZGF0ZShVLHJlLHJlK3Ro''@;'; put 'put ''aXMuX2RlbHRhMzIpfXJldHVybiB0aGlzfSxFLnByb3RvdHlwZS5kaWdlc3Q9ZnVuY3Rpb24oVSl7cmV0dXJuIHRoaXMudXBkYXRlKHRoaXMuX3BhZCgpKSxCKG51bGw9PT10aGlzLnBlbmRpbmcpLHRoaXMuX2RpZ2VzdChVKX0sRS5wcm90b3R5cGUuX3BhZD1mdW5jdGlvbigpe3ZhciBVPXRo''@;'; put 'put ''aXMucGVuZGluZ1RvdGFsLFE9dGhpcy5fZGVsdGE4LGo9US0oVSt0aGlzLnBhZExlbmd0aCklUSxyZT1uZXcgQXJyYXkoait0aGlzLnBhZExlbmd0aCk7cmVbMF09MTI4O2Zvcih2YXIgYWU9MTthZTxqO2FlKyspcmVbYWVdPTA7aWYoVTw8PTMsImJpZyI9PT10aGlzLmVuZGlhbil7Zm9yKHZh''@;'; put 'put ''ciBZPTg7WTx0aGlzLnBhZExlbmd0aDtZKyspcmVbYWUrK109MDtyZVthZSsrXT0wLHJlW2FlKytdPTAscmVbYWUrK109MCxyZVthZSsrXT0wLHJlW2FlKytdPVU+Pj4yNCYyNTUscmVbYWUrK109VT4+PjE2JjI1NSxyZVthZSsrXT1VPj4+OCYyNTUscmVbYWUrK109MjU1JlV9ZWxzZSBmb3Io''@;'; put 'put ''cmVbYWUrK109MjU1JlUscmVbYWUrK109VT4+PjgmMjU1LHJlW2FlKytdPVU+Pj4xNiYyNTUscmVbYWUrK109VT4+PjI0JjI1NSxyZVthZSsrXT0wLHJlW2FlKytdPTAscmVbYWUrK109MCxyZVthZSsrXT0wLFk9ODtZPHRoaXMucGFkTGVuZ3RoO1krKylyZVthZSsrXT0wO3JldHVybiByZX19''@;'; put 'put ''LDEyMTk0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMyMzkxKTtmdW5jdGlvbiBFKEVlLFUsUSl7aWYoISh0aGlzIGluc3RhbmNlb2YgRSkpcmV0dXJuIG5ldyBFKEVlLFUsUSk7dGhpcy5IYXNoPUVlLHRoaXMuYmxvY2tTaXplPUVlLmJsb2NrU2l6ZS84''@;'; put 'put ''LHRoaXMub3V0U2l6ZT1FZS5vdXRTaXplLzgsdGhpcy5pbm5lcj1udWxsLHRoaXMub3V0ZXI9bnVsbCx0aGlzLl9pbml0KG1lLnRvQXJyYXkoVSxRKSl9WGUuZXhwb3J0cz1FLEUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKFUpe1UubGVuZ3RoPnRoaXMuYmxvY2tTaXplJiYoVT0obmV3IHRo''@;'; put 'put ''aXMuSGFzaCkudXBkYXRlKFUpLmRpZ2VzdCgpKSxCKFUubGVuZ3RoPD10aGlzLmJsb2NrU2l6ZSk7Zm9yKHZhciBRPVUubGVuZ3RoO1E8dGhpcy5ibG9ja1NpemU7USsrKVUucHVzaCgwKTtmb3IoUT0wO1E8VS5sZW5ndGg7USsrKVVbUV1ePTU0O2Zvcih0aGlzLmlubmVyPShuZXcgdGhpcy5I''@;'; put 'put ''YXNoKS51cGRhdGUoVSksUT0wO1E8VS5sZW5ndGg7USsrKVVbUV1ePTEwNjt0aGlzLm91dGVyPShuZXcgdGhpcy5IYXNoKS51cGRhdGUoVSl9LEUucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihVLFEpe3JldHVybiB0aGlzLmlubmVyLnVwZGF0ZShVLFEpLHRoaXN9LEUucHJvdG90eXBlLmRp''@;'; put 'put ''Z2VzdD1mdW5jdGlvbihVKXtyZXR1cm4gdGhpcy5vdXRlci51cGRhdGUodGhpcy5pbm5lci5kaWdlc3QoKSksdGhpcy5vdXRlci5kaWdlc3QoVSl9fSw5OTQ1ODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjkyOTkpLEI9TCgzMzgwMCksRT1tZS5yb3RsMzIsRWU9bWUuc3Vt''@;'; put 'put ''MzIsVT1tZS5zdW0zMl8zLFE9bWUuc3VtMzJfNCxqPUIuQmxvY2tIYXNoO2Z1bmN0aW9uIHJlKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgcmUpKXJldHVybiBuZXcgcmU7ai5jYWxsKHRoaXMpLHRoaXMuaD1bMTczMjU4NDE5Myw0MDIzMjMzNDE3LDI1NjIzODMxMDIsMjcxNzMzODc4LDMyODUz''@;'; put 'put ''Nzc1MjBdLHRoaXMuZW5kaWFuPSJsaXR0bGUifWZ1bmN0aW9uIGFlKHNlLG9lLGNlLGRlKXtyZXR1cm4gc2U8PTE1P29lXmNlXmRlOnNlPD0zMT9vZSZjZXx+b2UmZGU6c2U8PTQ3PyhvZXx+Y2UpXmRlOnNlPD02Mz9vZSZkZXxjZSZ+ZGU6b2VeKGNlfH5kZSl9ZnVuY3Rpb24gVyhzZSl7cmV0''@;'; put 'put ''dXJuIHNlPD0xNT8xMzUyODI5OTI2OnNlPD0zMT8xNTQ4NjAzNjg0OnNlPD00Nz8xODM2MDcyNjkxOnNlPD02Mz8yMDUzOTk0MjE3OjB9bWUuaW5oZXJpdHMocmUsaiksSmUucmlwZW1kMTYwPXJlLHJlLmJsb2NrU2l6ZT01MTIscmUub3V0U2l6ZT0xNjAscmUuaG1hY1N0cmVuZ3RoPTE5Mixy''@;'; put 'put ''ZS5wYWRMZW5ndGg9NjQscmUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24ob2UsY2Upe2Zvcih2YXIgZGU9dGhpcy5oWzBdLHZlPXRoaXMuaFsxXSxBZT10aGlzLmhbMl0sa2U9dGhpcy5oWzNdLFNlPXRoaXMuaFs0XSxJZT1kZSxUZT12ZSxNZT1BZSxoZT1rZSxPPVNlLHo9MDt6PDgwO3or''@;'; put 'put ''Kyl7dmFyIGVlPUVlKEUoUShkZSxhZSh6LHZlLEFlLGtlKSxvZVtOW3pdK2NlXSwoc2U9eik8PTE1PzA6c2U8PTMxPzE1MTg1MDAyNDk6c2U8PTQ3PzE4NTk3NzUzOTM6c2U8PTYzPzI0MDA5NTk3MDg6Mjg0MDg1MzgzOCksS1t6XSksU2UpO2RlPVNlLFNlPWtlLGtlPUUoQWUsMTApLEFlPXZl''@;'; put 'put ''LHZlPWVlLGVlPUVlKEUoUShJZSxhZSg3OS16LFRlLE1lLGhlKSxvZVt0ZVt6XStjZV0sVyh6KSksSlt6XSksTyksSWU9TyxPPWhlLGhlPUUoTWUsMTApLE1lPVRlLFRlPWVlfXZhciBzZTtlZT1VKHRoaXMuaFsxXSxBZSxoZSksdGhpcy5oWzFdPVUodGhpcy5oWzJdLGtlLE8pLHRoaXMuaFsy''@;'; put 'put ''XT1VKHRoaXMuaFszXSxTZSxJZSksdGhpcy5oWzNdPVUodGhpcy5oWzRdLGRlLFRlKSx0aGlzLmhbNF09VSh0aGlzLmhbMF0sdmUsTWUpLHRoaXMuaFswXT1lZX0scmUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24ob2Upe3JldHVybiJoZXgiPT09b2U/bWUudG9IZXgzMih0aGlzLmgsImxp''@;'; put 'put ''dHRsZSIpOm1lLnNwbGl0MzIodGhpcy5oLCJsaXR0bGUiKX07dmFyIE49WzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTIsMTMsMTQsMTUsNyw0LDEzLDEsMTAsNiwxNSwzLDEyLDAsOSw1LDIsMTQsMTEsOCwzLDEwLDE0LDQsOSwxNSw4LDEsMiw3LDAsNiwxMywxMSw1LDEyLDEsOSwxMSwx''@;'; put 'put ''MCwwLDgsMTIsNCwxMywzLDcsMTUsMTQsNSw2LDIsNCwwLDUsOSw3LDEyLDIsMTAsMTQsMSwzLDgsMTEsNiwxNSwxM10sdGU9WzUsMTQsNywwLDksMiwxMSw0LDEzLDYsMTUsOCwxLDEwLDMsMTIsNiwxMSwzLDcsMCwxMyw1LDEwLDE0LDE1LDgsMTIsNCw5LDEsMiwxNSw1LDEsMyw3LDE0LDYs''@;'; put 'put ''OSwxMSw4LDEyLDIsMTAsMCw0LDEzLDgsNiw0LDEsMywxMSwxNSwwLDUsMTIsMiwxMyw5LDcsMTAsMTQsMTIsMTUsMTAsNCwxLDUsOCw3LDYsMiwxMywxNCwwLDMsOSwxMV0sSz1bMTEsMTQsMTUsMTIsNSw4LDcsOSwxMSwxMywxNCwxNSw2LDcsOSw4LDcsNiw4LDEzLDExLDksNywxNSw3LDEy''@;'; put 'put ''LDE1LDksMTEsNywxMywxMiwxMSwxMyw2LDcsMTQsOSwxMywxNSwxNCw4LDEzLDYsNSwxMiw3LDUsMTEsMTIsMTQsMTUsMTQsMTUsOSw4LDksMTQsNSw2LDgsNiw1LDEyLDksMTUsNSwxMSw2LDgsMTMsMTIsNSwxMiwxMywxNCwxMSw4LDUsNl0sSj1bOCw5LDksMTEsMTMsMTUsMTUsNSw3LDcs''@;'; put 'put ''OCwxMSwxNCwxNCwxMiw2LDksMTMsMTUsNywxMiw4LDksMTEsNyw3LDEyLDcsNiwxNSwxMywxMSw5LDcsMTUsMTEsOCw2LDYsMTQsMTIsMTMsNSwxNCwxMywxMyw3LDUsMTUsNSw4LDExLDE0LDE0LDYsMTQsNiw5LDEyLDksMTIsNSwxNSw4LDgsNSwxMiw5LDEyLDUsMTQsNiw4LDEzLDYsNSwx''@;'; put 'put ''NSwxMywxMSwxMV19LDU0OTYyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtKZS5zaGExPUwoNTkwMDcpLEplLnNoYTIyND1MKDEwMDU1KSxKZS5zaGEyNTY9TCgxOTM0MiksSmUuc2hhMzg0PUwoODg2MzQpLEplLnNoYTUxMj1MKDcwMDM5KX0sNTkwMDc6KFhlLEplLEwpPT57InVzZSBzdHJp''@;'; put 'put ''Y3QiO3ZhciBtZT1MKDI5Mjk5KSxCPUwoMzM4MDApLEU9TCgzMzExMyksRWU9bWUucm90bDMyLFU9bWUuc3VtMzIsUT1tZS5zdW0zMl81LGo9RS5mdF8xLHJlPUIuQmxvY2tIYXNoLGFlPVsxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwzMzk1NDY5NzgyXTtmdW5jdGlvbiBZKCl7''@;'; put 'put ''aWYoISh0aGlzIGluc3RhbmNlb2YgWSkpcmV0dXJuIG5ldyBZO3JlLmNhbGwodGhpcyksdGhpcy5oPVsxNzMyNTg0MTkzLDQwMjMyMzM0MTcsMjU2MjM4MzEwMiwyNzE3MzM4NzgsMzI4NTM3NzUyMF0sdGhpcy5XPW5ldyBBcnJheSg4MCl9bWUuaW5oZXJpdHMoWSxyZSksWGUuZXhwb3J0cz1Z''@;'; put 'put ''LFkuYmxvY2tTaXplPTUxMixZLm91dFNpemU9MTYwLFkuaG1hY1N0cmVuZ3RoPTgwLFkucGFkTGVuZ3RoPTY0LFkucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oTix0ZSl7Zm9yKHZhciBLPXRoaXMuVyxKPTA7SjwxNjtKKyspS1tKXT1OW3RlK0pdO2Zvcig7SjxLLmxlbmd0aDtKKyspS1tK''@;'; put 'put ''XT1FZShLW0otM11eS1tKLThdXktbSi0xNF1eS1tKLTE2XSwxKTt2YXIgc2U9dGhpcy5oWzBdLG9lPXRoaXMuaFsxXSxjZT10aGlzLmhbMl0sZGU9dGhpcy5oWzNdLHZlPXRoaXMuaFs0XTtmb3IoSj0wO0o8Sy5sZW5ndGg7SisrKXt2YXIgQWU9fn4oSi8yMCksa2U9UShFZShzZSw1KSxqKEFl''@;'; put 'put ''LG9lLGNlLGRlKSx2ZSxLW0pdLGFlW0FlXSk7dmU9ZGUsZGU9Y2UsY2U9RWUob2UsMzApLG9lPXNlLHNlPWtlfXRoaXMuaFswXT1VKHRoaXMuaFswXSxzZSksdGhpcy5oWzFdPVUodGhpcy5oWzFdLG9lKSx0aGlzLmhbMl09VSh0aGlzLmhbMl0sY2UpLHRoaXMuaFszXT1VKHRoaXMuaFszXSxk''@;'; put 'put ''ZSksdGhpcy5oWzRdPVUodGhpcy5oWzRdLHZlKX0sWS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihOKXtyZXR1cm4iaGV4Ij09PU4/bWUudG9IZXgzMih0aGlzLmgsImJpZyIpOm1lLnNwbGl0MzIodGhpcy5oLCJiaWciKX19LDEwMDU1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIg''@;'; put 'put ''bWU9TCgyOTI5OSksQj1MKDE5MzQyKTtmdW5jdGlvbiBFKCl7aWYoISh0aGlzIGluc3RhbmNlb2YgRSkpcmV0dXJuIG5ldyBFO0IuY2FsbCh0aGlzKSx0aGlzLmg9WzMyMzgzNzEwMzIsOTE0MTUwNjYzLDgxMjcwMjk5OSw0MTQ0OTEyNjk3LDQyOTA3NzU4NTcsMTc1MDYwMzAyNSwxNjk0MDc2''@;'; put 'put ''ODM5LDMyMDQwNzU0MjhdfW1lLmluaGVyaXRzKEUsQiksWGUuZXhwb3J0cz1FLEUuYmxvY2tTaXplPTUxMixFLm91dFNpemU9MjI0LEUuaG1hY1N0cmVuZ3RoPTE5MixFLnBhZExlbmd0aD02NCxFLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKFUpe3JldHVybiJoZXgiPT09VT9tZS50b0hl''@;'; put 'put ''eDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKTptZS5zcGxpdDMyKHRoaXMuaC5zbGljZSgwLDcpLCJiaWciKX19LDE5MzQyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMzODAwKSxFPUwoMzMxMTMpLEVlPUwoMzIzOTEpLFU9bWUuc3VtMzIsUT1tZS5z''@;'; put 'put ''dW0zMl80LGo9bWUuc3VtMzJfNSxyZT1FLmNoMzIsYWU9RS5tYWozMixZPUUuczBfMjU2LFc9RS5zMV8yNTYsTj1FLmcwXzI1Nix0ZT1FLmcxXzI1NixLPUIuQmxvY2tIYXNoLEo9WzExMTYzNTI0MDgsMTg5OTQ0NzQ0MSwzMDQ5MzIzNDcxLDM5MjEwMDk1NzMsOTYxOTg3MTYzLDE1MDg5NzA5''@;'; put 'put ''OTMsMjQ1MzYzNTc0OCwyODcwNzYzMjIxLDM2MjQzODEwODAsMzEwNTk4NDAxLDYwNzIyNTI3OCwxNDI2ODgxOTg3LDE5MjUwNzgzODgsMjE2MjA3ODIwNiwyNjE0ODg4MTAzLDMyNDgyMjI1ODAsMzgzNTM5MDQwMSw0MDIyMjI0Nzc0LDI2NDM0NzA3OCw2MDQ4MDc2MjgsNzcwMjU1OTgzLDEy''@;'; put 'put ''NDkxNTAxMjIsMTU1NTA4MTY5MiwxOTk2MDY0OTg2LDI1NTQyMjA4ODIsMjgyMTgzNDM0OSwyOTUyOTk2ODA4LDMyMTAzMTM2NzEsMzMzNjU3MTg5MSwzNTg0NTI4NzExLDExMzkyNjk5MywzMzgyNDE4OTUsNjY2MzA3MjA1LDc3MzUyOTkxMiwxMjk0NzU3MzcyLDEzOTYxODIyOTEsMTY5NTE4''@;'; put 'put ''MzcwMCwxOTg2NjYxMDUxLDIxNzcwMjYzNTAsMjQ1Njk1NjAzNywyNzMwNDg1OTIxLDI4MjAzMDI0MTEsMzI1OTczMDgwMCwzMzQ1NzY0NzcxLDM1MTYwNjU4MTcsMzYwMDM1MjgwNCw0MDk0NTcxOTA5LDI3NTQyMzM0NCw0MzAyMjc3MzQsNTA2OTQ4NjE2LDY1OTA2MDU1Niw4ODM5OTc4Nzcs''@;'; put 'put ''OTU4MTM5NTcxLDEzMjI4MjIyMTgsMTUzNzAwMjA2MywxNzQ3ODczNzc5LDE5NTU1NjIyMjIsMjAyNDEwNDgxNSwyMjI3NzMwNDUyLDIzNjE4NTI0MjQsMjQyODQzNjQ3NCwyNzU2NzM0MTg3LDMyMDQwMzE0NzksMzMyOTMyNTI5OF07ZnVuY3Rpb24gc2UoKXtpZighKHRoaXMgaW5zdGFuY2Vv''@;'; put 'put ''ZiBzZSkpcmV0dXJuIG5ldyBzZTtLLmNhbGwodGhpcyksdGhpcy5oPVsxNzc5MDMzNzAzLDMxNDQxMzQyNzcsMTAxMzkwNDI0MiwyNzczNDgwNzYyLDEzNTk4OTMxMTksMjYwMDgyMjkyNCw1Mjg3MzQ2MzUsMTU0MTQ1OTIyNV0sdGhpcy5rPUosdGhpcy5XPW5ldyBBcnJheSg2NCl9bWUuaW5o''@;'; put 'put ''ZXJpdHMoc2UsSyksWGUuZXhwb3J0cz1zZSxzZS5ibG9ja1NpemU9NTEyLHNlLm91dFNpemU9MjU2LHNlLmhtYWNTdHJlbmd0aD0xOTIsc2UucGFkTGVuZ3RoPTY0LHNlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGNlLGRlKXtmb3IodmFyIHZlPXRoaXMuVyxBZT0wO0FlPDE2O0FlKysp''@;'; put 'put ''dmVbQWVdPWNlW2RlK0FlXTtmb3IoO0FlPHZlLmxlbmd0aDtBZSsrKXZlW0FlXT1RKHRlKHZlW0FlLTJdKSx2ZVtBZS03XSxOKHZlW0FlLTE1XSksdmVbQWUtMTZdKTt2YXIga2U9dGhpcy5oWzBdLFNlPXRoaXMuaFsxXSxJZT10aGlzLmhbMl0sVGU9dGhpcy5oWzNdLE1lPXRoaXMuaFs0XSxo''@;'; put 'put ''ZT10aGlzLmhbNV0sTz10aGlzLmhbNl0sej10aGlzLmhbN107Zm9yKEVlKHRoaXMuay5sZW5ndGg9PT12ZS5sZW5ndGgpLEFlPTA7QWU8dmUubGVuZ3RoO0FlKyspe3ZhciBlZT1qKHosVyhNZSkscmUoTWUsaGUsTyksdGhpcy5rW0FlXSx2ZVtBZV0pLG5lPVUoWShrZSksYWUoa2UsU2UsSWUp''@;'; put 'put ''KTt6PU8sTz1oZSxoZT1NZSxNZT1VKFRlLGVlKSxUZT1JZSxJZT1TZSxTZT1rZSxrZT1VKGVlLG5lKX10aGlzLmhbMF09VSh0aGlzLmhbMF0sa2UpLHRoaXMuaFsxXT1VKHRoaXMuaFsxXSxTZSksdGhpcy5oWzJdPVUodGhpcy5oWzJdLEllKSx0aGlzLmhbM109VSh0aGlzLmhbM10sVGUpLHRo''@;'; put 'put ''aXMuaFs0XT1VKHRoaXMuaFs0XSxNZSksdGhpcy5oWzVdPVUodGhpcy5oWzVdLGhlKSx0aGlzLmhbNl09VSh0aGlzLmhbNl0sTyksdGhpcy5oWzddPVUodGhpcy5oWzddLHopfSxzZS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihjZSl7cmV0dXJuImhleCI9PT1jZT9tZS50b0hleDMyKHRo''@;'; put 'put ''aXMuaCwiYmlnIik6bWUuc3BsaXQzMih0aGlzLmgsImJpZyIpfX0sODg2MzQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI5Mjk5KSxCPUwoNzAwMzkpO2Z1bmN0aW9uIEUoKXtpZighKHRoaXMgaW5zdGFuY2VvZiBFKSlyZXR1cm4gbmV3IEU7Qi5jYWxsKHRoaXMpLHRoaXMu''@;'; put 'put ''aD1bMzQxODA3MDM2NSwzMjM4MzcxMDMyLDE2NTQyNzAyNTAsOTE0MTUwNjYzLDI0Mzg1MjkzNzAsODEyNzAyOTk5LDM1NTQ2MjM2MCw0MTQ0OTEyNjk3LDE3MzE0MDU0MTUsNDI5MDc3NTg1NywyMzk0MTgwMjMxLDE3NTA2MDMwMjUsMzY3NTAwODUyNSwxNjk0MDc2ODM5LDEyMDMwNjI4MTMs''@;'; put 'put ''MzIwNDA3NTQyOF19bWUuaW5oZXJpdHMoRSxCKSxYZS5leHBvcnRzPUUsRS5ibG9ja1NpemU9MTAyNCxFLm91dFNpemU9Mzg0LEUuaG1hY1N0cmVuZ3RoPTE5MixFLnBhZExlbmd0aD0xMjgsRS5wcm90b3R5cGUuX2RpZ2VzdD1mdW5jdGlvbihVKXtyZXR1cm4iaGV4Ij09PVU/bWUudG9IZXgz''@;'; put 'put ''Mih0aGlzLmguc2xpY2UoMCwxMiksImJpZyIpOm1lLnNwbGl0MzIodGhpcy5oLnNsaWNlKDAsMTIpLCJiaWciKX19LDcwMDM5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyOTI5OSksQj1MKDMzODAwKSxFPUwoMzIzOTEpLEVlPW1lLnJvdHI2NF9oaSxVPW1lLnJvdHI2NF9s''@;'; put 'put ''byxRPW1lLnNocjY0X2hpLGo9bWUuc2hyNjRfbG8scmU9bWUuc3VtNjQsYWU9bWUuc3VtNjRfaGksWT1tZS5zdW02NF9sbyxXPW1lLnN1bTY0XzRfaGksTj1tZS5zdW02NF80X2xvLHRlPW1lLnN1bTY0XzVfaGksSz1tZS5zdW02NF81X2xvLEo9Qi5CbG9ja0hhc2gsc2U9WzExMTYzNTI0MDgs''@;'; put 'put ''MzYwOTc2NzQ1OCwxODk5NDQ3NDQxLDYwMjg5MTcyNSwzMDQ5MzIzNDcxLDM5NjQ0ODQzOTksMzkyMTAwOTU3MywyMTczMjk1NTQ4LDk2MTk4NzE2Myw0MDgxNjI4NDcyLDE1MDg5NzA5OTMsMzA1MzgzNDI2NSwyNDUzNjM1NzQ4LDI5Mzc2NzE1NzksMjg3MDc2MzIyMSwzNjY0NjA5NTYwLDM2''@;'; put 'put ''MjQzODEwODAsMjczNDg4MzM5NCwzMTA1OTg0MDEsMTE2NDk5NjU0Miw2MDcyMjUyNzgsMTMyMzYxMDc2NCwxNDI2ODgxOTg3LDM1OTAzMDQ5OTQsMTkyNTA3ODM4OCw0MDY4MTgyMzgzLDIxNjIwNzgyMDYsOTkxMzM2MTEzLDI2MTQ4ODgxMDMsNjMzODAzMzE3LDMyNDgyMjI1ODAsMzQ3OTc3''@;'; put 'put ''NDg2OCwzODM1MzkwNDAxLDI2NjY2MTM0NTgsNDAyMjIyNDc3NCw5NDQ3MTExMzksMjY0MzQ3MDc4LDIzNDEyNjI3NzMsNjA0ODA3NjI4LDIwMDc4MDA5MzMsNzcwMjU1OTgzLDE0OTU5OTA5MDEsMTI0OTE1MDEyMiwxODU2NDMxMjM1LDE1NTUwODE2OTIsMzE3NTIxODEzMiwxOTk2MDY0OTg2''@;'; put 'put ''LDIxOTg5NTA4MzcsMjU1NDIyMDg4MiwzOTk5NzE5MzM5LDI4MjE4MzQzNDksNzY2Nzg0MDE2LDI5NTI5OTY4MDgsMjU2NjU5NDg3OSwzMjEwMzEzNjcxLDMyMDMzMzc5NTYsMzMzNjU3MTg5MSwxMDM0NDU3MDI2LDM1ODQ1Mjg3MTEsMjQ2Njk0ODkwMSwxMTM5MjY5OTMsMzc1ODMyNjM4Mywz''@;'; put 'put ''MzgyNDE4OTUsMTY4NzE3OTM2LDY2NjMwNzIwNSwxMTg4MTc5OTY0LDc3MzUyOTkxMiwxNTQ2MDQ1NzM0LDEyOTQ3NTczNzIsMTUyMjgwNTQ4NSwxMzk2MTgyMjkxLDI2NDM4MzM4MjMsMTY5NTE4MzcwMCwyMzQzNTI3MzkwLDE5ODY2NjEwNTEsMTAxNDQ3NzQ4MCwyMTc3MDI2MzUwLDEyMDY3''@;'; put 'put ''NTkxNDIsMjQ1Njk1NjAzNywzNDQwNzc2MjcsMjczMDQ4NTkyMSwxMjkwODYzNDYwLDI4MjAzMDI0MTEsMzE1ODQ1NDI3MywzMjU5NzMwODAwLDM1MDU5NTI2NTcsMzM0NTc2NDc3MSwxMDYyMTcwMDgsMzUxNjA2NTgxNywzNjA2MDA4MzQ0LDM2MDAzNTI4MDQsMTQzMjcyNTc3Niw0MDk0NTcx''@;'; put 'put ''OTA5LDE0NjcwMzE1OTQsMjc1NDIzMzQ0LDg1MTE2OTcyMCw0MzAyMjc3MzQsMzEwMDgyMzc1Miw1MDY5NDg2MTYsMTM2MzI1ODE5NSw2NTkwNjA1NTYsMzc1MDY4NTU5Myw4ODM5OTc4NzcsMzc4NTA1MDI4MCw5NTgxMzk1NzEsMzMxODMwNzQyNywxMzIyODIyMjE4LDM4MTI3MjM0MDMsMTUz''@;'; put 'put ''NzAwMjA2MywyMDAzMDM0OTk1LDE3NDc4NzM3NzksMzYwMjAzNjg5OSwxOTU1NTYyMjIyLDE1NzU5OTAwMTIsMjAyNDEwNDgxNSwxMTI1NTkyOTI4LDIyMjc3MzA0NTIsMjcxNjkwNDMwNiwyMzYxODUyNDI0LDQ0Mjc3NjA0NCwyNDI4NDM2NDc0LDU5MzY5ODM0NCwyNzU2NzM0MTg3LDM3MzMx''@;'; put 'put ''MTAyNDksMzIwNDAzMTQ3OSwyOTk5MzUxNTczLDMzMjkzMjUyOTgsMzgxNTkyMDQyNywzMzkxNTY5NjE0LDM5MjgzODM5MDAsMzUxNTI2NzI3MSw1NjYyODA3MTEsMzk0MDE4NzYwNiwzNDU0MDY5NTM0LDQxMTg2MzAyNzEsNDAwMDIzOTk5MiwxMTY0MTg0NzQsMTkxNDEzODU1NCwxNzQyOTI0''@;'; put 'put ''MjEsMjczMTA1NTI3MCwyODkzODAzNTYsMzIwMzk5MzAwNiw0NjAzOTMyNjksMzIwNjIwMzE1LDY4NTQ3MTczMyw1ODc0OTY4MzYsODUyMTQyOTcxLDEwODY3OTI4NTEsMTAxNzAzNjI5OCwzNjU1NDMxMDAsMTEyNjAwMDU4MCwyNjE4Mjk3Njc2LDEyODgwMzM0NzAsMzQwOTg1NTE1OCwxNTAx''@;'; put 'put ''NTA1OTQ4LDQyMzQ1MDk4NjYsMTYwNzE2NzkxNSw5ODcxNjc0NjgsMTgxNjQwMjMxNiwxMjQ2MTg5NTkxXTtmdW5jdGlvbiBvZSgpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG9lKSlyZXR1cm4gbmV3IG9lO0ouY2FsbCh0aGlzKSx0aGlzLmg9WzE3NzkwMzM3MDMsNDA4OTIzNTcyMCwzMTQ0MTM0''@;'; put 'put ''Mjc3LDIyMjc4NzM1OTUsMTAxMzkwNDI0Miw0MjcxMTc1NzIzLDI3NzM0ODA3NjIsMTU5NTc1MDEyOSwxMzU5ODkzMTE5LDI5MTc1NjUxMzcsMjYwMDgyMjkyNCw3MjU1MTExOTksNTI4NzM0NjM1LDQyMTUzODk1NDcsMTU0MTQ1OTIyNSwzMjcwMzMyMDldLHRoaXMuaz1zZSx0aGlzLlc9bmV3''@;'; put 'put ''IEFycmF5KDE2MCl9ZnVuY3Rpb24gY2UoZWUsbmUseCxQLFYpe3ZhciBUPWVlJnhefmVlJlY7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gZGUoZWUsbmUseCxQLFYsVCl7dmFyIFM9bmUmUF5+bmUmVDtyZXR1cm4gUzwwJiYoUys9NDI5NDk2NzI5NiksU31mdW5jdGlv''@;'; put 'put ''biB2ZShlZSxuZSx4LFAsVil7dmFyIFQ9ZWUmeF5lZSZWXngmVjtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBBZShlZSxuZSx4LFAsVixUKXt2YXIgUz1uZSZQXm5lJlReUCZUO3JldHVybiBTPDAmJihTKz00Mjk0OTY3Mjk2KSxTfWZ1bmN0aW9uIGtlKGVlLG5lKXt2''@;'; put 'put ''YXIgVD1FZShlZSxuZSwyOCleRWUobmUsZWUsMileRWUobmUsZWUsNyk7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gU2UoZWUsbmUpe3ZhciBUPVUoZWUsbmUsMjgpXlUobmUsZWUsMileVShuZSxlZSw3KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5j''@;'; put 'put ''dGlvbiBJZShlZSxuZSl7dmFyIFQ9RWUoZWUsbmUsMTQpXkVlKGVlLG5lLDE4KV5FZShuZSxlZSw5KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBUZShlZSxuZSl7dmFyIFQ9VShlZSxuZSwxNCleVShlZSxuZSwxOCleVShuZSxlZSw5KTtyZXR1cm4gVDwwJiYoVCs9''@;'; put 'put ''NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBNZShlZSxuZSl7dmFyIFQ9RWUoZWUsbmUsMSleRWUoZWUsbmUsOCleUShlZSxuZSw3KTtyZXR1cm4gVDwwJiYoVCs9NDI5NDk2NzI5NiksVH1mdW5jdGlvbiBoZShlZSxuZSl7dmFyIFQ9VShlZSxuZSwxKV5VKGVlLG5lLDgpXmooZWUsbmUsNyk7cmV0''@;'; put 'put ''dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9ZnVuY3Rpb24gTyhlZSxuZSl7dmFyIFQ9RWUoZWUsbmUsMTkpXkVlKG5lLGVlLDI5KV5RKGVlLG5lLDYpO3JldHVybiBUPDAmJihUKz00Mjk0OTY3Mjk2KSxUfWZ1bmN0aW9uIHooZWUsbmUpe3ZhciBUPVUoZWUsbmUsMTkpXlUobmUsZWUsMjkp''@;'; put 'put ''XmooZWUsbmUsNik7cmV0dXJuIFQ8MCYmKFQrPTQyOTQ5NjcyOTYpLFR9bWUuaW5oZXJpdHMob2UsSiksWGUuZXhwb3J0cz1vZSxvZS5ibG9ja1NpemU9MTAyNCxvZS5vdXRTaXplPTUxMixvZS5obWFjU3RyZW5ndGg9MTkyLG9lLnBhZExlbmd0aD0xMjgsb2UucHJvdG90eXBlLl9wcmVwYXJl''@;'; put 'put ''QmxvY2s9ZnVuY3Rpb24obmUseCl7Zm9yKHZhciBQPXRoaXMuVyxWPTA7VjwzMjtWKyspUFtWXT1uZVt4K1ZdO2Zvcig7VjxQLmxlbmd0aDtWKz0yKXt2YXIgVD1PKFBbVi00XSxQW1YtM10pLFM9eihQW1YtNF0sUFtWLTNdKSxGPVBbVi0xNF0seWU9UFtWLTEzXSxDZT1NZShQW1YtMzBdLFBb''@;'; put 'put ''Vi0yOV0pLERlPWhlKFBbVi0zMF0sUFtWLTI5XSksUGU9UFtWLTMyXSxRZT1QW1YtMzFdO1BbVl09VyhULFMsRix5ZSxDZSxEZSxQZSxRZSksUFtWKzFdPU4oVCxTLEYseWUsQ2UsRGUsUGUsUWUpfX0sb2UucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24obmUseCl7dGhpcy5fcHJlcGFyZUJs''@;'; put 'put ''b2NrKG5lLHgpO3ZhciBQPXRoaXMuVyxWPXRoaXMuaFswXSxUPXRoaXMuaFsxXSxTPXRoaXMuaFsyXSxGPXRoaXMuaFszXSx5ZT10aGlzLmhbNF0sQ2U9dGhpcy5oWzVdLERlPXRoaXMuaFs2XSxQZT10aGlzLmhbN10sUWU9dGhpcy5oWzhdLCRlPXRoaXMuaFs5XSxndD10aGlzLmhbMTBdLHd0''@;'; put 'put ''PXRoaXMuaFsxMV0sbXQ9dGhpcy5oWzEyXSx2dD10aGlzLmhbMTNdLEF0PXRoaXMuaFsxNF0saHQ9dGhpcy5oWzE1XTtFKHRoaXMuay5sZW5ndGg9PT1QLmxlbmd0aCk7Zm9yKHZhciBCdD0wO0J0PFAubGVuZ3RoO0J0Kz0yKXt2YXIgb249QXQsX3Q9aHQsdHQ9SWUoUWUsJGUpLGV0PVRlKFFl''@;'; put 'put ''LCRlKSxsdD1jZShRZSwwLGd0LDAsbXQpLEx0PWRlKDAsJGUsMCx3dCwwLHZ0KSxDdD10aGlzLmtbQnRdLGZ0PXRoaXMua1tCdCsxXSxIdD1QW0J0XSxHZT1QW0J0KzFdLFVlPXRlKG9uLF90LHR0LGV0LGx0LEx0LEN0LGZ0LEh0LEdlKSx5dD1LKG9uLF90LHR0LGV0LGx0LEx0LEN0LGZ0LEh0''@;'; put 'put ''LEdlKTtvbj1rZShWLFQpLF90PVNlKFYsVCksdHQ9dmUoViwwLFMsMCx5ZSksZXQ9QWUoMCxULDAsRiwwLENlKTt2YXIganQ9YWUob24sX3QsdHQsZXQpLEp0PVkob24sX3QsdHQsZXQpO0F0PW10LGh0PXZ0LG10PWd0LHZ0PXd0LGd0PVFlLHd0PSRlLFFlPWFlKERlLFBlLFVlLHl0KSwkZT1Z''@;'; put 'put ''KFBlLFBlLFVlLHl0KSxEZT15ZSxQZT1DZSx5ZT1TLENlPUYsUz1WLEY9VCxWPWFlKFVlLHl0LGp0LEp0KSxUPVkoVWUseXQsanQsSnQpfXJlKHRoaXMuaCwwLFYsVCkscmUodGhpcy5oLDIsUyxGKSxyZSh0aGlzLmgsNCx5ZSxDZSkscmUodGhpcy5oLDYsRGUsUGUpLHJlKHRoaXMuaCw4LFFl''@;'; put 'put ''LCRlKSxyZSh0aGlzLmgsMTAsZ3Qsd3QpLHJlKHRoaXMuaCwxMixtdCx2dCkscmUodGhpcy5oLDE0LEF0LGh0KX0sb2UucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24obmUpe3JldHVybiJoZXgiPT09bmU/bWUudG9IZXgzMih0aGlzLmgsImJpZyIpOm1lLnNwbGl0MzIodGhpcy5oLCJiaWci''@;'; put 'put ''KX19LDMzMTEzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgQj1MKDI5Mjk5KS5yb3RyMzI7ZnVuY3Rpb24gRWUoVyxOLHRlKXtyZXR1cm4gVyZOXn5XJnRlfWZ1bmN0aW9uIFUoVyxOLHRlKXtyZXR1cm4gVyZOXlcmdGVeTiZ0ZX1mdW5jdGlvbiBRKFcsTix0ZSl7cmV0dXJuIFdeTl50''@;'; put 'put ''ZX1KZS5mdF8xPWZ1bmN0aW9uIEUoVyxOLHRlLEspe3JldHVybiAwPT09Vz9FZShOLHRlLEspOjE9PT1XfHwzPT09Vz9RKE4sdGUsSyk6Mj09PVc/VShOLHRlLEspOnZvaWQgMH0sSmUuY2gzMj1FZSxKZS5tYWozMj1VLEplLnAzMj1RLEplLnMwXzI1Nj1mdW5jdGlvbiBqKFcpe3JldHVybiBC''@;'; put 'put ''KFcsMileQihXLDEzKV5CKFcsMjIpfSxKZS5zMV8yNTY9ZnVuY3Rpb24gcmUoVyl7cmV0dXJuIEIoVyw2KV5CKFcsMTEpXkIoVywyNSl9LEplLmcwXzI1Nj1mdW5jdGlvbiBhZShXKXtyZXR1cm4gQihXLDcpXkIoVywxOCleVz4+PjN9LEplLmcxXzI1Nj1mdW5jdGlvbiBZKFcpe3JldHVybiBC''@;'; put 'put ''KFcsMTcpXkIoVywxOSleVz4+PjEwfX0sMjkyOTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDMyMzkxKSxCPUwoODM4OTQpO2Z1bmN0aW9uIEUoeixlZSl7cmV0dXJuISg1NTI5NiE9KDY0NTEyJnouY2hhckNvZGVBdChlZSkpfHxlZTwwfHxlZSsxPj16Lmxlbmd0aCkmJjU2''@;'; put 'put ''MzIwPT0oNjQ1MTImei5jaGFyQ29kZUF0KGVlKzEpKX1mdW5jdGlvbiBRKHope3JldHVybih6Pj4+MjR8ej4+PjgmNjUyODB8ejw8OCYxNjcxMTY4MHwoMjU1JnopPDwyNCk+Pj4wfWZ1bmN0aW9uIHJlKHope3JldHVybiAxPT09ei5sZW5ndGg/IjAiK3o6en1mdW5jdGlvbiBhZSh6KXtyZXR1''@;'; put 'put ''cm4gNz09PXoubGVuZ3RoPyIwIit6OjY9PT16Lmxlbmd0aD8iMDAiK3o6NT09PXoubGVuZ3RoPyIwMDAiK3o6ND09PXoubGVuZ3RoPyIwMDAwIit6OjM9PT16Lmxlbmd0aD8iMDAwMDAiK3o6Mj09PXoubGVuZ3RoPyIwMDAwMDAiK3o6MT09PXoubGVuZ3RoPyIwMDAwMDAwIit6Onp9SmUuaW5o''@;'; put 'put ''ZXJpdHM9QixKZS50b0FycmF5PWZ1bmN0aW9uIEVlKHosZWUpe2lmKEFycmF5LmlzQXJyYXkoeikpcmV0dXJuIHouc2xpY2UoKTtpZigheilyZXR1cm5bXTt2YXIgbmU9W107aWYoInN0cmluZyI9PXR5cGVvZiB6KWlmKGVlKXtpZigiaGV4Ij09PWVlKWZvcigoej16LnJlcGxhY2UoL1teYS16''@;'; put 'put ''MC05XSsvZ2ksIiIpKS5sZW5ndGglMiE9MCYmKHo9IjAiK3opLFA9MDtQPHoubGVuZ3RoO1ArPTIpbmUucHVzaChwYXJzZUludCh6W1BdK3pbUCsxXSwxNikpfWVsc2UgZm9yKHZhciB4PTAsUD0wO1A8ei5sZW5ndGg7UCsrKXt2YXIgVj16LmNoYXJDb2RlQXQoUCk7VjwxMjg/bmVbeCsrXT1W''@;'; put 'put ''OlY8MjA0OD8obmVbeCsrXT1WPj42fDE5MixuZVt4KytdPTYzJlZ8MTI4KTpFKHosUCk/KFY9NjU1MzYrKCgxMDIzJlYpPDwxMCkrKDEwMjMmei5jaGFyQ29kZUF0KCsrUCkpLG5lW3grK109Vj4+MTh8MjQwLG5lW3grK109Vj4+MTImNjN8MTI4LG5lW3grK109Vj4+NiY2M3wxMjgsbmVbeCsr''@;'; put 'put ''XT02MyZWfDEyOCk6KG5lW3grK109Vj4+MTJ8MjI0LG5lW3grK109Vj4+NiY2M3wxMjgsbmVbeCsrXT02MyZWfDEyOCl9ZWxzZSBmb3IoUD0wO1A8ei5sZW5ndGg7UCsrKW5lW1BdPTB8eltQXTtyZXR1cm4gbmV9LEplLnRvSGV4PWZ1bmN0aW9uIFUoeil7Zm9yKHZhciBlZT0iIixuZT0wO25l''@;'; put 'put ''PHoubGVuZ3RoO25lKyspZWUrPXJlKHpbbmVdLnRvU3RyaW5nKDE2KSk7cmV0dXJuIGVlfSxKZS5odG9ubD1RLEplLnRvSGV4MzI9ZnVuY3Rpb24gaih6LGVlKXtmb3IodmFyIG5lPSIiLHg9MDt4PHoubGVuZ3RoO3grKyl7dmFyIFA9elt4XTsibGl0dGxlIj09PWVlJiYoUD1RKFApKSxuZSs9''@;'; put 'put ''YWUoUC50b1N0cmluZygxNikpfXJldHVybiBuZX0sSmUuemVybzI9cmUsSmUuemVybzg9YWUsSmUuam9pbjMyPWZ1bmN0aW9uIFkoeixlZSxuZSx4KXt2YXIgUD1uZS1lZTttZShQJTQ9PTApO2Zvcih2YXIgVj1uZXcgQXJyYXkoUC80KSxUPTAsUz1lZTtUPFYubGVuZ3RoO1QrKyxTKz00KVZb''@;'; put 'put ''VF09KCJiaWciPT09eD96W1NdPDwyNHx6W1MrMV08PDE2fHpbUysyXTw8OHx6W1MrM106eltTKzNdPDwyNHx6W1MrMl08PDE2fHpbUysxXTw8OHx6W1NdKT4+PjA7cmV0dXJuIFZ9LEplLnNwbGl0MzI9ZnVuY3Rpb24gVyh6LGVlKXtmb3IodmFyIG5lPW5ldyBBcnJheSg0KnoubGVuZ3RoKSx4''@;'; put 'put ''PTAsUD0wO3g8ei5sZW5ndGg7eCsrLFArPTQpe3ZhciBWPXpbeF07ImJpZyI9PT1lZT8obmVbUF09Vj4+PjI0LG5lW1ArMV09Vj4+PjE2JjI1NSxuZVtQKzJdPVY+Pj44JjI1NSxuZVtQKzNdPTI1NSZWKToobmVbUCszXT1WPj4+MjQsbmVbUCsyXT1WPj4+MTYmMjU1LG5lW1ArMV09Vj4+Pjgm''@;'; put 'put ''MjU1LG5lW1BdPTI1NSZWKX1yZXR1cm4gbmV9LEplLnJvdHIzMj1mdW5jdGlvbiBOKHosZWUpe3JldHVybiB6Pj4+ZWV8ejw8MzItZWV9LEplLnJvdGwzMj1mdW5jdGlvbiB0ZSh6LGVlKXtyZXR1cm4gejw8ZWV8ej4+PjMyLWVlfSxKZS5zdW0zMj1mdW5jdGlvbiBLKHosZWUpe3JldHVybiB6''@;'; put 'put ''K2VlPj4+MH0sSmUuc3VtMzJfMz1mdW5jdGlvbiBKKHosZWUsbmUpe3JldHVybiB6K2VlK25lPj4+MH0sSmUuc3VtMzJfND1mdW5jdGlvbiBzZSh6LGVlLG5lLHgpe3JldHVybiB6K2VlK25lK3g+Pj4wfSxKZS5zdW0zMl81PWZ1bmN0aW9uIG9lKHosZWUsbmUseCxQKXtyZXR1cm4geitlZStu''@;'; put 'put ''ZSt4K1A+Pj4wfSxKZS5zdW02ND1mdW5jdGlvbiBjZSh6LGVlLG5lLHgpe3ZhciBUPXgreltlZSsxXT4+PjA7eltlZV09KFQ8eD8xOjApK25lK3pbZWVdPj4+MCx6W2VlKzFdPVR9LEplLnN1bTY0X2hpPWZ1bmN0aW9uIGRlKHosZWUsbmUseCl7cmV0dXJuKGVlK3g+Pj4wPGVlPzE6MCkreitu''@;'; put 'put ''ZT4+PjB9LEplLnN1bTY0X2xvPWZ1bmN0aW9uIHZlKHosZWUsbmUseCl7cmV0dXJuIGVlK3g+Pj4wfSxKZS5zdW02NF80X2hpPWZ1bmN0aW9uIEFlKHosZWUsbmUseCxQLFYsVCxTKXt2YXIgRj0wLHllPWVlO3JldHVybiBGKz0oeWU9eWUreD4+PjApPGVlPzE6MCxGKz0oeWU9eWUrVj4+PjAp''@;'; put 'put ''PFY/MTowLHorbmUrUCtUKyhGKz0oeWU9eWUrUz4+PjApPFM/MTowKT4+PjB9LEplLnN1bTY0XzRfbG89ZnVuY3Rpb24ga2UoeixlZSxuZSx4LFAsVixULFMpe3JldHVybiBlZSt4K1YrUz4+PjB9LEplLnN1bTY0XzVfaGk9ZnVuY3Rpb24gU2UoeixlZSxuZSx4LFAsVixULFMsRix5ZSl7dmFy''@;'; put 'put ''IENlPTAsRGU9ZWU7cmV0dXJuIENlKz0oRGU9RGUreD4+PjApPGVlPzE6MCxDZSs9KERlPURlK1Y+Pj4wKTxWPzE6MCxDZSs9KERlPURlK1M+Pj4wKTxTPzE6MCx6K25lK1ArVCtGKyhDZSs9KERlPURlK3llPj4+MCk8eWU/MTowKT4+PjB9LEplLnN1bTY0XzVfbG89ZnVuY3Rpb24gSWUoeixl''@;'; put 'put ''ZSxuZSx4LFAsVixULFMsRix5ZSl7cmV0dXJuIGVlK3grVitTK3llPj4+MH0sSmUucm90cjY0X2hpPWZ1bmN0aW9uIFRlKHosZWUsbmUpe3JldHVybihlZTw8MzItbmV8ej4+Pm5lKT4+PjB9LEplLnJvdHI2NF9sbz1mdW5jdGlvbiBNZSh6LGVlLG5lKXtyZXR1cm4oejw8MzItbmV8ZWU+Pj5u''@;'; put 'put ''ZSk+Pj4wfSxKZS5zaHI2NF9oaT1mdW5jdGlvbiBoZSh6LGVlLG5lKXtyZXR1cm4gej4+Pm5lfSxKZS5zaHI2NF9sbz1mdW5jdGlvbiBPKHosZWUsbmUpe3JldHVybih6PDwzMi1uZXxlZT4+Pm5lKT4+PjB9fSw1MjQzODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzcwODQp''@;'; put 'put ''LEI9TCg1ODE5NSksRT1MKDMyMzkxKTtmdW5jdGlvbiBFZShVKXtpZighKHRoaXMgaW5zdGFuY2VvZiBFZSkpcmV0dXJuIG5ldyBFZShVKTt0aGlzLmhhc2g9VS5oYXNoLHRoaXMucHJlZFJlc2lzdD0hIVUucHJlZFJlc2lzdCx0aGlzLm91dExlbj10aGlzLmhhc2gub3V0U2l6ZSx0aGlzLm1p''@;'; put 'put ''bkVudHJvcHk9VS5taW5FbnRyb3B5fHx0aGlzLmhhc2guaG1hY1N0cmVuZ3RoLHRoaXMuX3Jlc2VlZD1udWxsLHRoaXMucmVzZWVkSW50ZXJ2YWw9bnVsbCx0aGlzLks9bnVsbCx0aGlzLlY9bnVsbDt2YXIgUT1CLnRvQXJyYXkoVS5lbnRyb3B5LFUuZW50cm9weUVuY3x8ImhleCIpLGo9Qi50''@;'; put 'put ''b0FycmF5KFUubm9uY2UsVS5ub25jZUVuY3x8ImhleCIpLHJlPUIudG9BcnJheShVLnBlcnMsVS5wZXJzRW5jfHwiaGV4Iik7RShRLmxlbmd0aD49dGhpcy5taW5FbnRyb3B5LzgsIk5vdCBlbm91Z2ggZW50cm9weS4gTWluaW11bSBpczogIit0aGlzLm1pbkVudHJvcHkrIiBiaXRzIiksdGhp''@;'; put 'put ''cy5faW5pdChRLGoscmUpfVhlLmV4cG9ydHM9RWUsRWUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKFEsaixyZSl7dmFyIGFlPVEuY29uY2F0KGopLmNvbmNhdChyZSk7dGhpcy5LPW5ldyBBcnJheSh0aGlzLm91dExlbi84KSx0aGlzLlY9bmV3IEFycmF5KHRoaXMub3V0TGVuLzgpO2Zvcih2''@;'; put 'put ''YXIgWT0wO1k8dGhpcy5WLmxlbmd0aDtZKyspdGhpcy5LW1ldPTAsdGhpcy5WW1ldPTE7dGhpcy5fdXBkYXRlKGFlKSx0aGlzLl9yZXNlZWQ9MSx0aGlzLnJlc2VlZEludGVydmFsPTI4MTQ3NDk3NjcxMDY1Nn0sRWUucHJvdG90eXBlLl9obWFjPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBtZS5o''@;'; put 'put ''bWFjKHRoaXMuaGFzaCx0aGlzLkspfSxFZS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihRKXt2YXIgaj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFswXSk7USYmKGo9ai51cGRhdGUoUSkpLHRoaXMuSz1qLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRl''@;'; put 'put ''KHRoaXMuVikuZGlnZXN0KCksUSYmKHRoaXMuSz10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikudXBkYXRlKFsxXSkudXBkYXRlKFEpLmRpZ2VzdCgpLHRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0KCkpfSxFZS5wcm90b3R5cGUucmVzZWVkPWZ1bmN0aW9uKFEs''@;'; put 'put ''aixyZSxhZSl7InN0cmluZyIhPXR5cGVvZiBqJiYoYWU9cmUscmU9aixqPW51bGwpLFE9Qi50b0FycmF5KFEsaikscmU9Qi50b0FycmF5KHJlLGFlKSxFKFEubGVuZ3RoPj10aGlzLm1pbkVudHJvcHkvOCwiTm90IGVub3VnaCBlbnRyb3B5LiBNaW5pbXVtIGlzOiAiK3RoaXMubWluRW50cm9w''@;'; put 'put ''eSsiIGJpdHMiKSx0aGlzLl91cGRhdGUoUS5jb25jYXQocmV8fFtdKSksdGhpcy5fcmVzZWVkPTF9LEVlLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbihRLGoscmUsYWUpe2lmKHRoaXMuX3Jlc2VlZD50aGlzLnJlc2VlZEludGVydmFsKXRocm93IG5ldyBFcnJvcigiUmVzZWVkIGlzIHJl''@;'; put 'put ''cXVpcmVkIik7InN0cmluZyIhPXR5cGVvZiBqJiYoYWU9cmUscmU9aixqPW51bGwpLHJlJiYocmU9Qi50b0FycmF5KHJlLGFlfHwiaGV4IiksdGhpcy5fdXBkYXRlKHJlKSk7Zm9yKHZhciBZPVtdO1kubGVuZ3RoPFE7KXRoaXMuVj10aGlzLl9obWFjKCkudXBkYXRlKHRoaXMuVikuZGlnZXN0''@;'; put 'put ''KCksWT1ZLmNvbmNhdCh0aGlzLlYpO3ZhciBXPVkuc2xpY2UoMCxRKTtyZXR1cm4gdGhpcy5fdXBkYXRlKHJlKSx0aGlzLl9yZXNlZWQrKyxCLmVuY29kZShXLGopfX0sNDY5Nzg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7SmUuX2RiY3M9YWU7Zm9y''@;'; put 'put ''KHZhciBCPS0xLEVlPS0xMCxVPS0xZTMsUT1uZXcgQXJyYXkoMjU2KSxyZT0wO3JlPDI1NjtyZSsrKVFbcmVdPUI7ZnVuY3Rpb24gYWUodGUsSyl7aWYodGhpcy5lbmNvZGluZ05hbWU9dGUuZW5jb2RpbmdOYW1lLCF0ZSl0aHJvdyBuZXcgRXJyb3IoIkRCQ1MgY29kZWMgaXMgY2FsbGVkIHdp''@;'; put 'put ''dGhvdXQgdGhlIGRhdGEuIik7aWYoIXRlLnRhYmxlKXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgJyIrdGhpcy5lbmNvZGluZ05hbWUrIicgaGFzIG5vIGRhdGEuIik7dmFyIEo9dGUudGFibGUoKTt0aGlzLmRlY29kZVRhYmxlcz1bXSx0aGlzLmRlY29kZVRhYmxlc1swXT1RLnNsaWNlKDAp''@;'; put 'put ''LHRoaXMuZGVjb2RlVGFibGVTZXE9W107Zm9yKHZhciBzZT0wO3NlPEoubGVuZ3RoO3NlKyspdGhpcy5fYWRkRGVjb2RlQ2h1bmsoSltzZV0pO3RoaXMuZGVmYXVsdENoYXJVbmljb2RlPUsuZGVmYXVsdENoYXJVbmljb2RlLHRoaXMuZW5jb2RlVGFibGU9W10sdGhpcy5lbmNvZGVUYWJsZVNl''@;'; put 'put ''cT1bXTt2YXIgb2U9e307aWYodGUuZW5jb2RlU2tpcFZhbHMpZm9yKHNlPTA7c2U8dGUuZW5jb2RlU2tpcFZhbHMubGVuZ3RoO3NlKyspe3ZhciBjZT10ZS5lbmNvZGVTa2lwVmFsc1tzZV07aWYoIm51bWJlciI9PXR5cGVvZiBjZSlvZVtjZV09ITA7ZWxzZSBmb3IodmFyIGRlPWNlLmZyb207''@;'; put 'put ''ZGU8PWNlLnRvO2RlKyspb2VbZGVdPSEwfWlmKHRoaXMuX2ZpbGxFbmNvZGVUYWJsZSgwLDAsb2UpLHRlLmVuY29kZUFkZClmb3IodmFyIHZlIGluIHRlLmVuY29kZUFkZClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGUuZW5jb2RlQWRkLHZlKSYmdGhpcy5fc2V0RW5j''@;'; put 'put ''b2RlQ2hhcih2ZS5jaGFyQ29kZUF0KDApLHRlLmVuY29kZUFkZFt2ZV0pO2lmKHRoaXMuZGVmQ2hhclNCPXRoaXMuZW5jb2RlVGFibGVbMF1bSy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUuY2hhckNvZGVBdCgwKV0sdGhpcy5kZWZDaGFyU0I9PT1CJiYodGhpcy5kZWZDaGFyU0I9dGhpcy5lbmNv''@;'; put 'put ''ZGVUYWJsZVswXVsiPyJdKSx0aGlzLmRlZkNoYXJTQj09PUImJih0aGlzLmRlZkNoYXJTQj0iPyIuY2hhckNvZGVBdCgwKSksImZ1bmN0aW9uIj09dHlwZW9mIHRlLmdiMTgwMzApe3RoaXMuZ2IxODAzMD10ZS5nYjE4MDMwKCk7dmFyIEFlPXRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aCxrZT10''@;'; put 'put ''aGlzLmRlY29kZVRhYmxlc1tBZV09US5zbGljZSgwKSxTZT10aGlzLmRlY29kZVRhYmxlcy5sZW5ndGgsSWU9dGhpcy5kZWNvZGVUYWJsZXNbU2VdPVEuc2xpY2UoMCk7Zm9yKHNlPTEyOTtzZTw9MjU0O3NlKyspe3ZhciBNZT10aGlzLmRlY29kZVRhYmxlc1tVLXRoaXMuZGVjb2RlVGFibGVz''@;'; put 'put ''WzBdW3NlXV07Zm9yKGRlPTQ4O2RlPD01NztkZSsrKU1lW2RlXT1VLUFlfWZvcihzZT0xMjk7c2U8PTI1NDtzZSsrKWtlW3NlXT1VLVNlO2ZvcihzZT00ODtzZTw9NTc7c2UrKylJZVtzZV09LTJ9fWZ1bmN0aW9uIFkodGUsSyl7dGhpcy5sZWFkU3Vycm9nYXRlPS0xLHRoaXMuc2VxT2JqPXZv''@;'; put 'put ''aWQgMCx0aGlzLmVuY29kZVRhYmxlPUsuZW5jb2RlVGFibGUsdGhpcy5lbmNvZGVUYWJsZVNlcT1LLmVuY29kZVRhYmxlU2VxLHRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlPUsuZGVmQ2hhclNCLHRoaXMuZ2IxODAzMD1LLmdiMTgwMzB9ZnVuY3Rpb24gVyh0ZSxLKXt0aGlzLm5vZGVJZHg9''@;'; put 'put ''MCx0aGlzLnByZXZCdWY9bWUuYWxsb2MoMCksdGhpcy5kZWNvZGVUYWJsZXM9Sy5kZWNvZGVUYWJsZXMsdGhpcy5kZWNvZGVUYWJsZVNlcT1LLmRlY29kZVRhYmxlU2VxLHRoaXMuZGVmYXVsdENoYXJVbmljb2RlPUsuZGVmYXVsdENoYXJVbmljb2RlLHRoaXMuZ2IxODAzMD1LLmdiMTgwMzB9''@;'; put 'put ''ZnVuY3Rpb24gTih0ZSxLKXtpZih0ZVswXT5LKXJldHVybi0xO2Zvcih2YXIgSj0wLHNlPXRlLmxlbmd0aDtKPHNlLTE7KXt2YXIgb2U9SitNYXRoLmZsb29yKChzZS1KKzEpLzIpO3RlW29lXTw9Sz9KPW9lOnNlPW9lfXJldHVybiBKfWFlLnByb3RvdHlwZS5lbmNvZGVyPVksYWUucHJvdG90''@;'; put 'put ''eXBlLmRlY29kZXI9VyxhZS5wcm90b3R5cGUuX2dldERlY29kZVRyaWVOb2RlPWZ1bmN0aW9uKHRlKXtmb3IodmFyIEs9W107dGU+MDt0ZT4+PTgpSy5wdXNoKDI1NSZ0ZSk7MD09Sy5sZW5ndGgmJksucHVzaCgwKTtmb3IodmFyIEo9dGhpcy5kZWNvZGVUYWJsZXNbMF0sc2U9Sy5sZW5ndGgt''@;'; put 'put ''MTtzZT4wO3NlLS0pe3ZhciBvZT1KW0tbc2VdXTtpZihvZT09QilKW0tbc2VdXT1VLXRoaXMuZGVjb2RlVGFibGVzLmxlbmd0aCx0aGlzLmRlY29kZVRhYmxlcy5wdXNoKEo9US5zbGljZSgwKSk7ZWxzZXtpZighKG9lPD1VKSl0aHJvdyBuZXcgRXJyb3IoIk92ZXJ3cml0ZSBieXRlIGluICIr''@;'; put 'put ''dGhpcy5lbmNvZGluZ05hbWUrIiwgYWRkcjogIit0ZS50b1N0cmluZygxNikpO0o9dGhpcy5kZWNvZGVUYWJsZXNbVS1vZV19fXJldHVybiBKfSxhZS5wcm90b3R5cGUuX2FkZERlY29kZUNodW5rPWZ1bmN0aW9uKHRlKXt2YXIgSz1wYXJzZUludCh0ZVswXSwxNiksSj10aGlzLl9nZXREZWNv''@;'; put 'put ''ZGVUcmllTm9kZShLKTtLJj0yNTU7Zm9yKHZhciBzZT0xO3NlPHRlLmxlbmd0aDtzZSsrKXt2YXIgb2U9dGVbc2VdO2lmKCJzdHJpbmciPT10eXBlb2Ygb2UpZm9yKHZhciBjZT0wO2NlPG9lLmxlbmd0aDspe3ZhciBkZT1vZS5jaGFyQ29kZUF0KGNlKyspO2lmKDU1Mjk2PD1kZSYmZGU8NTYz''@;'; put 'put ''MjApe3ZhciB2ZT1vZS5jaGFyQ29kZUF0KGNlKyspO2lmKCEoNTYzMjA8PXZlJiZ2ZTw1NzM0NCkpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3Qgc3Vycm9nYXRlIHBhaXIgaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGNodW5rICIrdGVbMF0pO0pbSysrXT02NTUzNisxMDI0KihkZS01''@;'; put 'put ''NTI5NikrKHZlLTU2MzIwKX1lbHNlIGlmKDQwODA8ZGUmJmRlPD00MDk1KXtmb3IodmFyIEFlPTQwOTUtZGUrMixrZT1bXSxTZT0wO1NlPEFlO1NlKyspa2UucHVzaChvZS5jaGFyQ29kZUF0KGNlKyspKTtKW0srK109RWUtdGhpcy5kZWNvZGVUYWJsZVNlcS5sZW5ndGgsdGhpcy5kZWNvZGVU''@;'; put 'put ''YWJsZVNlcS5wdXNoKGtlKX1lbHNlIEpbSysrXT1kZX1lbHNle2lmKCJudW1iZXIiIT10eXBlb2Ygb2UpdGhyb3cgbmV3IEVycm9yKCJJbmNvcnJlY3QgdHlwZSAnIit0eXBlb2Ygb2UrIicgZ2l2ZW4gaW4gIit0aGlzLmVuY29kaW5nTmFtZSsiIGF0IGNodW5rICIrdGVbMF0pO3ZhciBJZT1K''@;'; put 'put ''W0stMV0rMTtmb3IoY2U9MDtjZTxvZTtjZSsrKUpbSysrXT1JZSsrfX1pZihLPjI1NSl0aHJvdyBuZXcgRXJyb3IoIkluY29ycmVjdCBjaHVuayBpbiAiK3RoaXMuZW5jb2RpbmdOYW1lKyIgYXQgYWRkciAiK3RlWzBdKyI6IHRvbyBsb25nIitLKX0sYWUucHJvdG90eXBlLl9nZXRFbmNvZGVC''@;'; put 'put ''dWNrZXQ9ZnVuY3Rpb24odGUpe3ZhciBLPXRlPj44O3JldHVybiB2b2lkIDA9PT10aGlzLmVuY29kZVRhYmxlW0tdJiYodGhpcy5lbmNvZGVUYWJsZVtLXT1RLnNsaWNlKDApKSx0aGlzLmVuY29kZVRhYmxlW0tdfSxhZS5wcm90b3R5cGUuX3NldEVuY29kZUNoYXI9ZnVuY3Rpb24odGUsSyl7''@;'; put 'put ''dmFyIEo9dGhpcy5fZ2V0RW5jb2RlQnVja2V0KHRlKSxzZT0yNTUmdGU7SltzZV08PUVlP3RoaXMuZW5jb2RlVGFibGVTZXFbRWUtSltzZV1dWy0xXT1LOkpbc2VdPT1CJiYoSltzZV09Syl9LGFlLnByb3RvdHlwZS5fc2V0RW5jb2RlU2VxdWVuY2U9ZnVuY3Rpb24odGUsSyl7dmFyIGNlLEo9''@;'; put 'put ''dGVbMF0sc2U9dGhpcy5fZ2V0RW5jb2RlQnVja2V0KEopLG9lPTI1NSZKO3NlW29lXTw9RWU/Y2U9dGhpcy5lbmNvZGVUYWJsZVNlcVtFZS1zZVtvZV1dOihjZT17fSxzZVtvZV0hPT1CJiYoY2VbLTFdPXNlW29lXSksc2Vbb2VdPUVlLXRoaXMuZW5jb2RlVGFibGVTZXEubGVuZ3RoLHRoaXMu''@;'; put 'put ''ZW5jb2RlVGFibGVTZXEucHVzaChjZSkpO2Zvcih2YXIgZGU9MTtkZTx0ZS5sZW5ndGgtMTtkZSsrKXt2YXIgdmU9Y2VbSl07Im9iamVjdCI9PXR5cGVvZiB2ZT9jZT12ZTooY2U9Y2VbSl09e30sdm9pZCAwIT09dmUmJihjZVstMV09dmUpKX1jZVtKPXRlW3RlLmxlbmd0aC0xXV09S30sYWUu''@;'; put 'put ''cHJvdG90eXBlLl9maWxsRW5jb2RlVGFibGU9ZnVuY3Rpb24odGUsSyxKKXtmb3IodmFyIHNlPXRoaXMuZGVjb2RlVGFibGVzW3RlXSxvZT0wO29lPDI1NjtvZSsrKXt2YXIgY2U9c2Vbb2VdLGRlPUsrb2U7SltkZV18fChjZT49MD90aGlzLl9zZXRFbmNvZGVDaGFyKGNlLGRlKTpjZTw9VT90''@;'; put 'put ''aGlzLl9maWxsRW5jb2RlVGFibGUoVS1jZSxkZTw8OCxKKTpjZTw9RWUmJnRoaXMuX3NldEVuY29kZVNlcXVlbmNlKHRoaXMuZGVjb2RlVGFibGVTZXFbRWUtY2VdLGRlKSl9fSxZLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0ZSl7Zm9yKHZhciBLPW1lLmFsbG9jKHRlLmxlbmd0aCoodGhp''@;'; put 'put ''cy5nYjE4MDMwPzQ6MykpLEo9dGhpcy5sZWFkU3Vycm9nYXRlLHNlPXRoaXMuc2VxT2JqLG9lPS0xLGNlPTAsZGU9MDs7KXtpZigtMT09PW9lKXtpZihjZT09dGUubGVuZ3RoKWJyZWFrO3ZhciB2ZT10ZS5jaGFyQ29kZUF0KGNlKyspfWVsc2UgdmU9b2Usb2U9LTE7aWYoNTUyOTY8PXZlJiZ2''@;'; put 'put ''ZTw1NzM0NClpZih2ZTw1NjMyMCl7aWYoLTE9PT1KKXtKPXZlO2NvbnRpbnVlfUo9dmUsdmU9Qn1lbHNlLTEhPT1KPyh2ZT02NTUzNisxMDI0KihKLTU1Mjk2KSsodmUtNTYzMjApLEo9LTEpOnZlPUI7ZWxzZS0xIT09SiYmKG9lPXZlLHZlPUIsSj0tMSk7dmFyIEFlPUI7aWYodm9pZCAwIT09''@;'; put 'put ''c2UmJnZlIT1CKXt2YXIga2U9c2VbdmVdO2lmKCJvYmplY3QiPT10eXBlb2Yga2Upe3NlPWtlO2NvbnRpbnVlfSJudW1iZXIiPT10eXBlb2Yga2U/QWU9a2U6bnVsbD09a2UmJnZvaWQgMCE9PShrZT1zZVstMV0pJiYoQWU9a2Usb2U9dmUpLHNlPXZvaWQgMH1lbHNlIGlmKHZlPj0wKXt2YXIg''@;'; put 'put ''U2U9dGhpcy5lbmNvZGVUYWJsZVt2ZT4+OF07aWYodm9pZCAwIT09U2UmJihBZT1TZVsyNTUmdmVdKSxBZTw9RWUpe3NlPXRoaXMuZW5jb2RlVGFibGVTZXFbRWUtQWVdO2NvbnRpbnVlfWlmKEFlPT1CJiZ0aGlzLmdiMTgwMzApe3ZhciBJZT1OKHRoaXMuZ2IxODAzMC51Q2hhcnMsdmUpO2lm''@;'; put 'put ''KC0xIT1JZSl7QWU9dGhpcy5nYjE4MDMwLmdiQ2hhcnNbSWVdKyh2ZS10aGlzLmdiMTgwMzAudUNoYXJzW0llXSksS1tkZSsrXT0xMjkrTWF0aC5mbG9vcihBZS8xMjYwMCksQWUlPTEyNjAwLEtbZGUrK109NDgrTWF0aC5mbG9vcihBZS8xMjYwKSxBZSU9MTI2MCxLW2RlKytdPTEyOStNYXRo''@;'; put 'put ''LmZsb29yKEFlLzEwKSxLW2RlKytdPTQ4KyhBZSU9MTApO2NvbnRpbnVlfX19QWU9PT1CJiYoQWU9dGhpcy5kZWZhdWx0Q2hhclNpbmdsZUJ5dGUpLEFlPDI1Nj9LW2RlKytdPUFlOkFlPDY1NTM2PyhLW2RlKytdPUFlPj44LEtbZGUrK109MjU1JkFlKTooS1tkZSsrXT1BZT4+MTYsS1tkZSsr''@;'; put 'put ''XT1BZT4+OCYyNTUsS1tkZSsrXT0yNTUmQWUpfXJldHVybiB0aGlzLnNlcU9iaj1zZSx0aGlzLmxlYWRTdXJyb2dhdGU9SixLLnNsaWNlKDAsZGUpfSxZLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZigtMSE9PXRoaXMubGVhZFN1cnJvZ2F0ZXx8dm9pZCAwIT09dGhpcy5zZXFPYmope3Zh''@;'; put 'put ''ciB0ZT1tZS5hbGxvYygxMCksSz0wO2lmKHRoaXMuc2VxT2JqKXt2YXIgSj10aGlzLnNlcU9ialstMV07dm9pZCAwIT09SiYmKEo8MjU2P3RlW0srK109SjoodGVbSysrXT1KPj44LHRlW0srK109MjU1JkopKSx0aGlzLnNlcU9iaj12b2lkIDB9cmV0dXJuLTEhPT10aGlzLmxlYWRTdXJyb2dh''@;'; put 'put ''dGUmJih0ZVtLKytdPXRoaXMuZGVmYXVsdENoYXJTaW5nbGVCeXRlLHRoaXMubGVhZFN1cnJvZ2F0ZT0tMSksdGUuc2xpY2UoMCxLKX19LFkucHJvdG90eXBlLmZpbmRJZHg9TixXLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0ZSl7dmFyIEs9bWUuYWxsb2MoMip0ZS5sZW5ndGgpLEo9dGhp''@;'; put 'put ''cy5ub2RlSWR4LHNlPXRoaXMucHJldkJ1ZixvZT10aGlzLnByZXZCdWYubGVuZ3RoLGNlPS10aGlzLnByZXZCdWYubGVuZ3RoO29lPjAmJihzZT1tZS5jb25jYXQoW3NlLHRlLnNsaWNlKDAsMTApXSkpO2Zvcih2YXIgdmU9MCxBZT0wO3ZlPHRlLmxlbmd0aDt2ZSsrKXt2YXIgZGUsa2U9dmU+''@;'; put 'put ''PTA/dGVbdmVdOnNlW3ZlK29lXTtpZighKChkZT10aGlzLmRlY29kZVRhYmxlc1tKXVtrZV0pPj0wKSlpZihkZT09PUIpdmU9Y2UsZGU9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUuY2hhckNvZGVBdCgwKTtlbHNlIGlmKC0yPT09ZGUpe3ZhciBTZT1jZT49MD90ZS5zbGljZShjZSx2ZSsxKTpz''@;'; put 'put ''ZS5zbGljZShjZStvZSx2ZSsxK29lKSxJZT0xMjYwMCooU2VbMF0tMTI5KSsxMjYwKihTZVsxXS00OCkrMTAqKFNlWzJdLTEyOSkrKFNlWzNdLTQ4KSxUZT1OKHRoaXMuZ2IxODAzMC5nYkNoYXJzLEllKTtkZT10aGlzLmdiMTgwMzAudUNoYXJzW1RlXStJZS10aGlzLmdiMTgwMzAuZ2JDaGFy''@;'; put 'put ''c1tUZV19ZWxzZXtpZihkZTw9VSl7Sj1VLWRlO2NvbnRpbnVlfWlmKCEoZGU8PUVlKSl0aHJvdyBuZXcgRXJyb3IoImljb252LWxpdGUgaW50ZXJuYWwgZXJyb3I6IGludmFsaWQgZGVjb2RpbmcgdGFibGUgdmFsdWUgIitkZSsiIGF0ICIrSisiLyIra2UpO2Zvcih2YXIgTWU9dGhpcy5kZWNv''@;'; put 'put ''ZGVUYWJsZVNlcVtFZS1kZV0saGU9MDtoZTxNZS5sZW5ndGgtMTtoZSsrKUtbQWUrK109MjU1JihkZT1NZVtoZV0pLEtbQWUrK109ZGU+Pjg7ZGU9TWVbTWUubGVuZ3RoLTFdfWlmKGRlPjY1NTM1KXtkZS09NjU1MzY7dmFyIE89NTUyOTYrTWF0aC5mbG9vcihkZS8xMDI0KTtLW0FlKytdPTI1''@;'; put 'put ''NSZPLEtbQWUrK109Tz4+OCxkZT01NjMyMCtkZSUxMDI0fUtbQWUrK109MjU1JmRlLEtbQWUrK109ZGU+PjgsSj0wLGNlPXZlKzF9cmV0dXJuIHRoaXMubm9kZUlkeD1KLHRoaXMucHJldkJ1Zj1jZT49MD90ZS5zbGljZShjZSk6c2Uuc2xpY2UoY2Urb2UpLEsuc2xpY2UoMCxBZSkudG9TdHJp''@;'; put 'put ''bmcoInVjczIiKX0sVy5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7Zm9yKHZhciB0ZT0iIjt0aGlzLnByZXZCdWYubGVuZ3RoPjA7KXt0ZSs9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU7dmFyIEs9dGhpcy5wcmV2QnVmLnNsaWNlKDEpO3RoaXMucHJldkJ1Zj1tZS5hbGxvYygwKSx0aGlzLm5v''@;'; put 'put ''ZGVJZHg9MCxLLmxlbmd0aD4wJiYodGUrPXRoaXMud3JpdGUoSykpfXJldHVybiB0aGlzLm5vZGVJZHg9MCx0ZX19LDQ5NTA0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPXtzaGlmdGppczp7dHlwZToiX2RiY3MiLHRhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIEwoMjcwMTQp''@;'; put 'put ''fSxlbmNvZGVBZGQ6eyJceGE1Ijo5MiwiXHUyMDNlIjoxMjZ9LGVuY29kZVNraXBWYWxzOlt7ZnJvbTo2MDczNix0bzo2MzgwOH1dfSxjc3NoaWZ0amlzOiJzaGlmdGppcyIsbXNrYW5qaToic2hpZnRqaXMiLHNqaXM6InNoaWZ0amlzIix3aW5kb3dzMzFqOiJzaGlmdGppcyIsbXMzMWo6InNo''@;'; put 'put ''aWZ0amlzIix4c2ppczoic2hpZnRqaXMiLHdpbmRvd3M5MzI6InNoaWZ0amlzIixtczkzMjoic2hpZnRqaXMiLDkzMjoic2hpZnRqaXMiLGNwOTMyOiJzaGlmdGppcyIsZXVjanA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDMxNTMyKX0sZW5jb2RlQWRkOnsiXHhh''@;'; put 'put ''NSI6OTIsIlx1MjAzZSI6MTI2fX0sZ2IyMzEyOiJjcDkzNiIsZ2IyMzEyODA6ImNwOTM2IixnYjIzMTIxOTgwOiJjcDkzNiIsY3NnYjIzMTI6ImNwOTM2Iixjc2lzbzU4Z2IyMzEyODA6ImNwOTM2IixldWNjbjoiY3A5MzYiLHdpbmRvd3M5MzY6ImNwOTM2IixtczkzNjoiY3A5MzYiLDkzNjoi''@;'; put 'put ''Y3A5MzYiLGNwOTM2Ont0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCgxMzMzNil9fSxnYms6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDEzMzM2KS5jb25jYXQoTCg0NDM0NikpfX0seGdiazoiZ2JrIixpc29pcjU4OiJnYmsiLGdiMTgwMzA6''@;'; put 'put ''e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDEzMzM2KS5jb25jYXQoTCg0NDM0NikpfSxnYjE4MDMwOmZ1bmN0aW9uKCl7cmV0dXJuIEwoMzYyNTgpfSxlbmNvZGVTa2lwVmFsczpbMTI4XSxlbmNvZGVBZGQ6eyJcdTIwYWMiOjQxNjk5fX0sY2hpbmVzZToiZ2IxODAz''@;'; put 'put ''MCIsd2luZG93czk0OToiY3A5NDkiLG1zOTQ5OiJjcDk0OSIsOTQ5OiJjcDk0OSIsY3A5NDk6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVybiBMKDc3MzQ4KX19LGNzZXVja3I6ImNwOTQ5Iixjc2tzYzU2MDExOTg3OiJjcDk0OSIsZXVja3I6ImNwOTQ5Iixpc29pcjE0OToi''@;'; put 'put ''Y3A5NDkiLGtvcmVhbjoiY3A5NDkiLGtzYzU2MDExOTg3OiJjcDk0OSIsa3NjNTYwMTE5ODk6ImNwOTQ5Iixrc2M1NjAxOiJjcDk0OSIsd2luZG93czk1MDoiY3A5NTAiLG1zOTUwOiJjcDk1MCIsOTUwOiJjcDk1MCIsY3A5NTA6e3R5cGU6Il9kYmNzIix0YWJsZTpmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biBMKDc0Mjg0KX19LGJpZzU6ImJpZzVoa3NjcyIsYmlnNWhrc2NzOnt0eXBlOiJfZGJjcyIsdGFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gTCg3NDI4NCkuY29uY2F0KEwoNjM0ODApKX0sZW5jb2RlU2tpcFZhbHM6WzQxNjc2XX0sY25iaWc1OiJiaWc1aGtzY3MiLGNzYmlnNToiYmlnNWhrc2Nz''@;'; put 'put ''Iix4eGJpZzU6ImJpZzVoa3NjcyJ9fSw3OTcxNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Zm9yKHZhciBtZT1bTCg1NjkxNyksTCg4MjYwNiksTCg5Mzc2MCksTCgyODc3OCksTCg0MTMxMyksTCg2ODYxOSksTCg3NDExNCksTCg0Njk3OCksTCg0OTUwNCldLEI9MDtCPG1lLmxlbmd0aDtC''@;'; put 'put ''Kyspe3ZhciBFPW1lW0JdO2Zvcih2YXIgRWUgaW4gRSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoRSxFZSkmJihKZVtFZV09RVtFZV0pfX0sNTY5MTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gQihhZSxZKXt0''@;'; put 'put ''aGlzLmVuYz1hZS5lbmNvZGluZ05hbWUsdGhpcy5ib21Bd2FyZT1hZS5ib21Bd2FyZSwiYmFzZTY0Ij09PXRoaXMuZW5jP3RoaXMuZW5jb2Rlcj1ROiJjZXN1OCI9PT10aGlzLmVuYyYmKHRoaXMuZW5jPSJ1dGY4Iix0aGlzLmVuY29kZXI9aiwiXHV7MWY0YTl9IiE9PW1lLmZyb20oImVkYTBi''@;'; put 'put ''ZGVkYjJhOSIsImhleCIpLnRvU3RyaW5nKCkmJih0aGlzLmRlY29kZXI9cmUsdGhpcy5kZWZhdWx0Q2hhclVuaWNvZGU9WS5kZWZhdWx0Q2hhclVuaWNvZGUpKX1YZS5leHBvcnRzPXt1dGY4Ont0eXBlOiJfaW50ZXJuYWwiLGJvbUF3YXJlOiEwfSxjZXN1ODp7dHlwZToiX2ludGVybmFsIixi''@;'; put 'put ''b21Bd2FyZTohMH0sdW5pY29kZTExdXRmODoidXRmOCIsdWNzMjp7dHlwZToiX2ludGVybmFsIixib21Bd2FyZTohMH0sdXRmMTZsZToidWNzMiIsYmluYXJ5Ont0eXBlOiJfaW50ZXJuYWwifSxiYXNlNjQ6e3R5cGU6Il9pbnRlcm5hbCJ9LGhleDp7dHlwZToiX2ludGVybmFsIn0sX2ludGVy''@;'; put 'put ''bmFsOkJ9LEIucHJvdG90eXBlLmVuY29kZXI9VSxCLnByb3RvdHlwZS5kZWNvZGVyPUVlO3ZhciBFPUwoNzMwNTQpLnM7ZnVuY3Rpb24gRWUoYWUsWSl7RS5jYWxsKHRoaXMsWS5lbmMpfWZ1bmN0aW9uIFUoYWUsWSl7dGhpcy5lbmM9WS5lbmN9ZnVuY3Rpb24gUShhZSxZKXt0aGlzLnByZXZT''@;'; put 'put ''dHI9IiJ9ZnVuY3Rpb24gaihhZSxZKXt9ZnVuY3Rpb24gcmUoYWUsWSl7dGhpcy5hY2M9MCx0aGlzLmNvbnRCeXRlcz0wLHRoaXMuYWNjQnl0ZXM9MCx0aGlzLmRlZmF1bHRDaGFyVW5pY29kZT1ZLmRlZmF1bHRDaGFyVW5pY29kZX1FLnByb3RvdHlwZS5lbmR8fChFLnByb3RvdHlwZS5lbmQ9''@;'; put 'put ''ZnVuY3Rpb24oKXt9KSxFZS5wcm90b3R5cGU9RS5wcm90b3R5cGUsVS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe3JldHVybiBtZS5mcm9tKGFlLHRoaXMuZW5jKX0sVS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSxRLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhZSl7dmFyIFk9''@;'; put 'put ''KGFlPXRoaXMucHJldlN0cithZSkubGVuZ3RoLWFlLmxlbmd0aCU0O3JldHVybiB0aGlzLnByZXZTdHI9YWUuc2xpY2UoWSksYWU9YWUuc2xpY2UoMCxZKSxtZS5mcm9tKGFlLCJiYXNlNjQiKX0sUS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7cmV0dXJuIG1lLmZyb20odGhpcy5wcmV2U3Ry''@;'; put 'put ''LCJiYXNlNjQiKX0sai5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe2Zvcih2YXIgWT1tZS5hbGxvYygzKmFlLmxlbmd0aCksVz0wLE49MDtOPGFlLmxlbmd0aDtOKyspe3ZhciB0ZT1hZS5jaGFyQ29kZUF0KE4pO3RlPDEyOD9ZW1crK109dGU6dGU8MjA0OD8oWVtXKytdPTE5MisodGU+''@;'; put 'put ''Pj42KSxZW1crK109MTI4Kyg2MyZ0ZSkpOihZW1crK109MjI0Kyh0ZT4+PjEyKSxZW1crK109MTI4Kyh0ZT4+PjYmNjMpLFlbVysrXT0xMjgrKDYzJnRlKSl9cmV0dXJuIFkuc2xpY2UoMCxXKX0sai5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7fSxyZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rp''@;'; put 'put ''b24oYWUpe2Zvcih2YXIgWT10aGlzLmFjYyxXPXRoaXMuY29udEJ5dGVzLE49dGhpcy5hY2NCeXRlcyx0ZT0iIixLPTA7SzxhZS5sZW5ndGg7SysrKXt2YXIgSj1hZVtLXTsxMjghPSgxOTImSik/KFc+MCYmKHRlKz10aGlzLmRlZmF1bHRDaGFyVW5pY29kZSxXPTApLEo8MTI4P3RlKz1TdHJp''@;'; put 'put ''bmcuZnJvbUNoYXJDb2RlKEopOko8MjI0PyhZPTMxJkosVz0xLE49MSk6SjwyNDA/KFk9MTUmSixXPTIsTj0xKTp0ZSs9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUpOlc+MD8oWT1ZPDw2fDYzJkosTisrLDA9PS0tVyYmKHRlKz0yPT09TiYmWTwxMjgmJlk+MHx8Mz09PU4mJlk8MjA0OD90aGlz''@;'; put 'put ''LmRlZmF1bHRDaGFyVW5pY29kZTpTdHJpbmcuZnJvbUNoYXJDb2RlKFkpKSk6dGUrPXRoaXMuZGVmYXVsdENoYXJVbmljb2RlfXJldHVybiB0aGlzLmFjYz1ZLHRoaXMuY29udEJ5dGVzPVcsdGhpcy5hY2NCeXRlcz1OLHRlfSxyZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKCl7dmFyIGFlPTA7''@;'; put 'put ''cmV0dXJuIHRoaXMuY29udEJ5dGVzPjAmJihhZSs9dGhpcy5kZWZhdWx0Q2hhclVuaWNvZGUpLGFlfX0sNDEzMTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gQihVLFEpe2lmKCFVKXRocm93IG5ldyBFcnJvcigiU0JDUyBjb2RlYyBp''@;'; put 'put ''cyBjYWxsZWQgd2l0aG91dCB0aGUgZGF0YS4iKTtpZighVS5jaGFyc3x8MTI4IT09VS5jaGFycy5sZW5ndGgmJjI1NiE9PVUuY2hhcnMubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiRW5jb2RpbmcgJyIrVS50eXBlKyInIGhhcyBpbmNvcnJlY3QgJ2NoYXJzJyAobXVzdCBiZSBvZiBsZW4gMTI4''@;'; put 'put ''IG9yIDI1NikiKTtpZigxMjg9PT1VLmNoYXJzLmxlbmd0aCl7Zm9yKHZhciBqPSIiLHJlPTA7cmU8MTI4O3JlKyspais9U3RyaW5nLmZyb21DaGFyQ29kZShyZSk7VS5jaGFycz1qK1UuY2hhcnN9dGhpcy5kZWNvZGVCdWY9bWUuZnJvbShVLmNoYXJzLCJ1Y3MyIik7dmFyIGFlPW1lLmFsbG9j''@;'; put 'put ''KDY1NTM2LFEuZGVmYXVsdENoYXJTaW5nbGVCeXRlLmNoYXJDb2RlQXQoMCkpO2ZvcihyZT0wO3JlPFUuY2hhcnMubGVuZ3RoO3JlKyspYWVbVS5jaGFycy5jaGFyQ29kZUF0KHJlKV09cmU7dGhpcy5lbmNvZGVCdWY9YWV9ZnVuY3Rpb24gRShVLFEpe3RoaXMuZW5jb2RlQnVmPVEuZW5jb2Rl''@;'; put 'put ''QnVmfWZ1bmN0aW9uIEVlKFUsUSl7dGhpcy5kZWNvZGVCdWY9US5kZWNvZGVCdWZ9SmUuX3NiY3M9QixCLnByb3RvdHlwZS5lbmNvZGVyPUUsQi5wcm90b3R5cGUuZGVjb2Rlcj1FZSxFLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihVKXtmb3IodmFyIFE9bWUuYWxsb2MoVS5sZW5ndGgpLGo9''@;'; put 'put ''MDtqPFUubGVuZ3RoO2orKylRW2pdPXRoaXMuZW5jb2RlQnVmW1UuY2hhckNvZGVBdChqKV07cmV0dXJuIFF9LEUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe30sRWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKFUpe2Zvcih2YXIgUT10aGlzLmRlY29kZUJ1ZixqPW1lLmFsbG9jKDIqVS5s''@;'; put 'put ''ZW5ndGgpLHJlPTAsYWU9MCxZPTA7WTxVLmxlbmd0aDtZKyspalthZT0yKlldPVFbcmU9MipVW1ldXSxqW2FlKzFdPVFbcmUrMV07cmV0dXJuIGoudG9TdHJpbmcoInVjczIiKX0sRWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe319LDc0MTE0OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9y''@;'; put 'put ''dHM9ezQzNzoiY3A0MzciLDczNzoiY3A3MzciLDc3NToiY3A3NzUiLDg1MDoiY3A4NTAiLDg1MjoiY3A4NTIiLDg1NToiY3A4NTUiLDg1NjoiY3A4NTYiLDg1NzoiY3A4NTciLDg1ODoiY3A4NTgiLDg2MDoiY3A4NjAiLDg2MToiY3A4NjEiLDg2MjoiY3A4NjIiLDg2MzoiY3A4NjMiLDg2NDoi''@;'; put 'put ''Y3A4NjQiLDg2NToiY3A4NjUiLDg2NjoiY3A4NjYiLDg2OToiY3A4NjkiLDg3NDoid2luZG93czg3NCIsOTIyOiJjcDkyMiIsMTA0NjoiY3AxMDQ2IiwxMTI0OiJjcDExMjQiLDExMjU6ImNwMTEyNSIsMTEyOToiY3AxMTI5IiwxMTMzOiJjcDExMzMiLDExNjE6ImNwMTE2MSIsMTE2MjoiY3Ax''@;'; put 'put ''MTYyIiwxMTYzOiJjcDExNjMiLDEyNTA6IndpbmRvd3MxMjUwIiwxMjUxOiJ3aW5kb3dzMTI1MSIsMTI1Mjoid2luZG93czEyNTIiLDEyNTM6IndpbmRvd3MxMjUzIiwxMjU0OiJ3aW5kb3dzMTI1NCIsMTI1NToid2luZG93czEyNTUiLDEyNTY6IndpbmRvd3MxMjU2IiwxMjU3OiJ3aW5kb3dz''@;'; put 'put ''MTI1NyIsMTI1ODoid2luZG93czEyNTgiLDI4NTkxOiJpc284ODU5MSIsMjg1OTI6Imlzbzg4NTkyIiwyODU5MzoiaXNvODg1OTMiLDI4NTk0OiJpc284ODU5NCIsMjg1OTU6Imlzbzg4NTk1IiwyODU5NjoiaXNvODg1OTYiLDI4NTk3OiJpc284ODU5NyIsMjg1OTg6Imlzbzg4NTk4IiwyODU5''@;'; put 'put ''OToiaXNvODg1OTkiLDI4NjAwOiJpc284ODU5MTAiLDI4NjAxOiJpc284ODU5MTEiLDI4NjAzOiJpc284ODU5MTMiLDI4NjA0OiJpc284ODU5MTQiLDI4NjA1OiJpc284ODU5MTUiLDI4NjA2OiJpc284ODU5MTYiLHdpbmRvd3M4NzQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHUyMDI2XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHhhMFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1''@;'; put 'put ''MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUz''@;'; put 'put ''NFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1''@;'; put 'put ''MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LHdpbjg3NDoid2luZG93czg3NCIsY3A4NzQ6IndpbmRvd3M4NzQiLHdpbmRvd3MxMjUwOnt0eXBlOiJfc2JjcyIsY2hh''@;'; put 'put ''cnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1ZmZmZFx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1ZmZmZFx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1YVx1MDE2NFx1MDE3ZFx1MDE3OVx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1MDE2''@;'; put 'put ''MVx1MjAzYVx1MDE1Ylx1MDE2NVx1MDE3ZVx1MDE3YVx4YTBcdTAyYzdcdTAyZDhcdTAxNDFceGE0XHUwMTA0XHhhNlx4YTdceGE4XHhhOVx1MDE1ZVx4YWJceGFjXHhhZFx4YWVcdTAxN2JceGIwXHhiMVx1MDJkYlx1MDE0Mlx4YjRceGI1XHhiNlx4YjdceGI4XHUwMTA1XHUwMTVmXHhiYlx1''@;'; put 'put ''MDEzZFx1MDJkZFx1MDEzZVx1MDE3Y1x1MDE1NFx4YzFceGMyXHUwMTAyXHhjNFx1MDEzOVx1MDEwNlx4YzdcdTAxMGNceGM5XHUwMTE4XHhjYlx1MDExYVx4Y2RceGNlXHUwMTBlXHUwMTEwXHUwMTQzXHUwMTQ3XHhkM1x4ZDRcdTAxNTBceGQ2XHhkN1x1MDE1OFx1MDE2ZVx4ZGFcdTAxNzBc''@;'; put 'put ''eGRjXHhkZFx1MDE2Mlx4ZGZcdTAxNTVceGUxXHhlMlx1MDEwM1x4ZTRcdTAxM2FcdTAxMDdceGU3XHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMWJceGVkXHhlZVx1MDEwZlx1MDExMVx1MDE0NFx1MDE0OFx4ZjNceGY0XHUwMTUxXHhmNlx4ZjdcdTAxNTlcdTAxNmZceGZhXHUwMTcxXHhmY1x4''@;'; put 'put ''ZmRcdTAxNjNcdTAyZDkifSx3aW4xMjUwOiJ3aW5kb3dzMTI1MCIsY3AxMjUwOiJ3aW5kb3dzMTI1MCIsd2luZG93czEyNTE6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDAyXHUwNDAzXHUyMDFhXHUwNDUzXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUyMGFjXHUyMDMwXHUwNDA5XHUyMDM5''@;'; put 'put ''XHUwNDBhXHUwNDBjXHUwNDBiXHUwNDBmXHUwNDUyXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIyXHUwNDU5XHUyMDNhXHUwNDVhXHUwNDVjXHUwNDViXHUwNDVmXHhhMFx1MDQwZVx1MDQ1ZVx1MDQwOFx4YTRcdTA0OTBceGE2XHhhN1x1MDQw''@;'; put 'put ''MVx4YTlcdTA0MDRceGFiXHhhY1x4YWRceGFlXHUwNDA3XHhiMFx4YjFcdTA0MDZcdTA0NTZcdTA0OTFceGI1XHhiNlx4YjdcdTA0NTFcdTIxMTZcdTA0NTRceGJiXHUwNDU4XHUwNDA1XHUwNDU1XHUwNDU3XHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3''@;'; put 'put ''XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUw''@;'; put 'put ''NDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRl''@;'; put 'put ''XHUwNDRmIn0sd2luMTI1MToid2luZG93czEyNTEiLGNwMTI1MToid2luZG93czEyNTEiLHdpbmRvd3MxMjUyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1MDE2MFx1MjAzOVx1MDE1Mlx1''@;'; put 'put ''ZmZmZFx1MDE3ZFx1ZmZmZFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1MDE2MVx1MjAzYVx1MDE1M1x1ZmZmZFx1MDE3ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNc''@;'; put 'put ''eGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4''@;'; put 'put ''ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhm''@;'; put 'put ''ZiJ9LHdpbjEyNTI6IndpbmRvd3MxMjUyIixjcDEyNTI6IndpbmRvd3MxMjUyIix3aW5kb3dzMTI1Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZmZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGEwXHUwMzg1XHUwMzg2XHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx1ZmZmZFx4YWJceGFj''@;'; put 'put ''XHhhZFx4YWVcdTIwMTVceGIwXHhiMVx4YjJceGIzXHUwMzg0XHhiNVx4YjZceGI3XHUwMzg4XHUwMzg5XHUwMzhhXHhiYlx1MDM4Y1x4YmRcdTAzOGVcdTAzOGZcdTAzOTBcdTAzOTFcdTAzOTJcdTAzOTNcdTAzOTRcdTAzOTVcdTAzOTZcdTAzOTdcdTAzOThcdTAzOTlcdTAzOWFcdTAzOWJc''@;'; put 'put ''dTAzOWNcdTAzOWRcdTAzOWVcdTAzOWZcdTAzYTBcdTAzYTFcdWZmZmRcdTAzYTNcdTAzYTRcdTAzYTVcdTAzYTZcdTAzYTdcdTAzYThcdTAzYTlcdTAzYWFcdTAzYWJcdTAzYWNcdTAzYWRcdTAzYWVcdTAzYWZcdTAzYjBcdTAzYjFcdTAzYjJcdTAzYjNcdTAzYjRcdTAzYjVcdTAzYjZcdTAz''@;'; put 'put ''YjdcdTAzYjhcdTAzYjlcdTAzYmFcdTAzYmJcdTAzYmNcdTAzYmRcdTAzYmVcdTAzYmZcdTAzYzBcdTAzYzFcdTAzYzJcdTAzYzNcdTAzYzRcdTAzYzVcdTAzYzZcdTAzYzdcdTAzYzhcdTAzYzlcdTAzY2FcdTAzY2JcdTAzY2NcdTAzY2RcdTAzY2VcdWZmZmQifSx3aW4xMjUzOiJ3aW5kb3dz''@;'; put 'put ''MTI1MyIsY3AxMjUzOiJ3aW5kb3dzMTI1MyIsd2luZG93czEyNTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwMTYwXHUyMDM5XHUwMTUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUy''@;'; put 'put ''MDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHVmZmZkXHVmZmZkXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4''@;'; put 'put ''YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHUwMTFlXHhkMVx4ZDJceGQzXHhkNFx4ZDVceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJc''@;'; put 'put ''eGRjXHUwMTMwXHUwMTVlXHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxMWZceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxMzFcdTAxNWZceGZmIn0sd2luMTI1NDoi''@;'; put 'put ''d2luZG93czEyNTQiLGNwMTI1NDoid2luZG93czEyNTQiLHdpbmRvd3MxMjU1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjBhY1x1ZmZmZFx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1ZmZmZFx1MjAzOVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1MDJkY1x1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTBceGExXHhhMlx4YTNcdTIwYWFceGE1XHhhNlx4YTdceGE4XHhhOVx4ZDdceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBc''@;'; put 'put ''eGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGY3XHhiYlx4YmNceGJkXHhiZVx4YmZcdTA1YjBcdTA1YjFcdTA1YjJcdTA1YjNcdTA1YjRcdTA1YjVcdTA1YjZcdTA1YjdcdTA1YjhcdTA1YjlcdTA1YmFcdTA1YmJcdTA1YmNcdTA1YmRcdTA1YmVcdTA1YmZcdTA1YzBcdTA1''@;'; put 'put ''YzFcdTA1YzJcdTA1YzNcdTA1ZjBcdTA1ZjFcdTA1ZjJcdTA1ZjNcdTA1ZjRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVcdTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNc''@;'; put 'put ''dTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1ZTFcdTA1ZTJcdTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFcdWZmZmRcdWZmZmRcdTIwMGVcdTIwMGZcdWZmZmQifSx3aW4xMjU1OiJ3aW5kb3dzMTI1NSIsY3AxMjU1OiJ3aW5kb3dzMTI1NSIsd2luZG93''@;'; put 'put ''czEyNTY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHUwNjdlXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHUwNjc5XHUyMDM5XHUwMTUyXHUwNjg2XHUwNjk4XHUwNjg4XHUwNmFmXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEz''@;'; put 'put ''XHUyMDE0XHUwNmE5XHUyMTIyXHUwNjkxXHUyMDNhXHUwMTUzXHUyMDBjXHUyMDBkXHUwNmJhXHhhMFx1MDYwY1x4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHUwNmJlXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHUw''@;'; put 'put ''NjFiXHhiYlx4YmNceGJkXHhiZVx1MDYxZlx1MDZjMVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx1MDYyNVx1MDYyNlx1MDYyN1x1MDYyOFx1MDYyOVx1MDYyYVx1MDYyYlx1MDYyY1x1MDYyZFx1MDYyZVx1MDYyZlx1MDYzMFx1MDYzMVx1MDYzMlx1MDYzM1x1MDYzNFx1MDYzNVx1MDYzNlx4''@;'; put 'put ''ZDdcdTA2MzdcdTA2MzhcdTA2MzlcdTA2M2FcdTA2NDBcdTA2NDFcdTA2NDJcdTA2NDNceGUwXHUwNjQ0XHhlMlx1MDY0NVx1MDY0Nlx1MDY0N1x1MDY0OFx4ZTdceGU4XHhlOVx4ZWFceGViXHUwNjQ5XHUwNjRhXHhlZVx4ZWZcdTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVceGY0XHUwNjRmXHUw''@;'; put 'put ''NjUwXHhmN1x1MDY1MVx4ZjlcdTA2NTJceGZiXHhmY1x1MjAwZVx1MjAwZlx1MDZkMiJ9LHdpbjEyNTY6IndpbmRvd3MxMjU2IixjcDEyNTY6IndpbmRvd3MxMjU2Iix3aW5kb3dzMTI1Nzp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTIwYWNcdWZmZmRcdTIwMWFcdWZmZmRcdTIwMWVcdTIwMjZc''@;'; put 'put ''dTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdWZmZmRcdTIwMzlcdWZmZmRceGE4XHUwMmM3XHhiOFx1ZmZmZFx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1MjAyMlx1MjAxM1x1MjAxNFx1ZmZmZFx1MjEyMlx1ZmZmZFx1MjAzYVx1ZmZmZFx4YWZcdTAyZGJcdWZmZmRceGEwXHVmZmZkXHhhMlx4''@;'; put 'put ''YTNceGE0XHVmZmZkXHhhNlx4YTdceGQ4XHhhOVx1MDE1Nlx4YWJceGFjXHhhZFx4YWVceGM2XHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGY4XHhiOVx1MDE1N1x4YmJceGJjXHhiZFx4YmVceGU2XHUwMTA0XHUwMTJlXHUwMTAwXHUwMTA2XHhjNFx4YzVcdTAxMThcdTAxMTJc''@;'; put 'put ''dTAxMGNceGM5XHUwMTc5XHUwMTE2XHUwMTIyXHUwMTM2XHUwMTJhXHUwMTNiXHUwMTYwXHUwMTQzXHUwMTQ1XHhkM1x1MDE0Y1x4ZDVceGQ2XHhkN1x1MDE3Mlx1MDE0MVx1MDE1YVx1MDE2YVx4ZGNcdTAxN2JcdTAxN2RceGRmXHUwMTA1XHUwMTJmXHUwMTAxXHUwMTA3XHhlNFx4ZTVcdTAx''@;'; put 'put ''MTlcdTAxMTNcdTAxMGRceGU5XHUwMTdhXHUwMTE3XHUwMTIzXHUwMTM3XHUwMTJiXHUwMTNjXHUwMTYxXHUwMTQ0XHUwMTQ2XHhmM1x1MDE0ZFx4ZjVceGY2XHhmN1x1MDE3M1x1MDE0Mlx1MDE1Ylx1MDE2Ylx4ZmNcdTAxN2NcdTAxN2VcdTAyZDkifSx3aW4xMjU3OiJ3aW5kb3dzMTI1NyIs''@;'; put 'put ''Y3AxMjU3OiJ3aW5kb3dzMTI1NyIsd2luZG93czEyNTg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHVmZmZkXHUyMDFhXHUwMTkyXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUwMmM2XHUyMDMwXHVmZmZkXHUyMDM5XHUwMTUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUyMDE4XHUy''@;'; put 'put ''MDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHVmZmZkXHUyMDNhXHUwMTUzXHVmZmZkXHVmZmZkXHUwMTc4XHhhMFx4YTFceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0''@;'; put 'put ''XHhiNVx4YjZceGI3XHhiOFx4YjlceGJhXHhiYlx4YmNceGJkXHhiZVx4YmZceGMwXHhjMVx4YzJcdTAxMDJceGM0XHhjNVx4YzZceGM3XHhjOFx4YzlceGNhXHhjYlx1MDMwMFx4Y2RceGNlXHhjZlx1MDExMFx4ZDFcdTAzMDlceGQzXHhkNFx1MDFhMFx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhk''@;'; put 'put ''Ylx4ZGNcdTAxYWZcdTAzMDNceGRmXHhlMFx4ZTFceGUyXHUwMTAzXHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJcdTAzMDFceGVkXHhlZVx4ZWZcdTAxMTFceGYxXHUwMzIzXHhmM1x4ZjRcdTAxYTFceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMWIwXHUyMGFiXHhmZiJ9''@;'; put 'put ''LHdpbjEyNTg6IndpbmRvd3MxMjU4IixjcDEyNTg6IndpbmRvd3MxMjU4Iixpc284ODU5MTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5''@;'; put 'put ''Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJm''@;'; put 'put ''XHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx4ZDBceGQxXHhkMlx4ZDNceGQ0XHhkNVx4ZDZceGQ3XHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHhkZVx4ZGZceGUwXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHhlN1x4ZThc''@;'; put 'put ''eGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LGNwMjg1OTE6Imlzbzg4NTkxIixpc284ODU5Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4''@;'; put 'put ''ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMDRcdTAyZDhcdTAxNDFceGE0XHUwMTNkXHUwMTVhXHhhN1x4YThcdTAxNjBcdTAxNWVc''@;'; put 'put ''dTAxNjRcdTAxNzlceGFkXHUwMTdkXHUwMTdiXHhiMFx1MDEwNVx1MDJkYlx1MDE0Mlx4YjRcdTAxM2VcdTAxNWJcdTAyYzdceGI4XHUwMTYxXHUwMTVmXHUwMTY1XHUwMTdhXHUwMmRkXHUwMTdlXHUwMTdjXHUwMTU0XHhjMVx4YzJcdTAxMDJceGM0XHUwMTM5XHUwMTA2XHhjN1x1MDEwY1x4''@;'; put 'put ''YzlcdTAxMThceGNiXHUwMTFhXHhjZFx4Y2VcdTAxMGVcdTAxMTBcdTAxNDNcdTAxNDdceGQzXHhkNFx1MDE1MFx4ZDZceGQ3XHUwMTU4XHUwMTZlXHhkYVx1MDE3MFx4ZGNceGRkXHUwMTYyXHhkZlx1MDE1NVx4ZTFceGUyXHUwMTAzXHhlNFx1MDEzYVx1MDEwN1x4ZTdcdTAxMGRceGU5XHUw''@;'; put 'put ''MTE5XHhlYlx1MDExYlx4ZWRceGVlXHUwMTBmXHUwMTExXHUwMTQ0XHUwMTQ4XHhmM1x4ZjRcdTAxNTFceGY2XHhmN1x1MDE1OVx1MDE2Zlx4ZmFcdTAxNzFceGZjXHhmZFx1MDE2M1x1MDJkOSJ9LGNwMjg1OTI6Imlzbzg4NTkyIixpc284ODU5Mzp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgw''@;'; put 'put ''XHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTAxMjZcdTAyZDhceGEzXHhhNFx1ZmZmZFx1MDEyNFx4YTdc''@;'; put 'put ''eGE4XHUwMTMwXHUwMTVlXHUwMTFlXHUwMTM0XHhhZFx1ZmZmZFx1MDE3Ylx4YjBcdTAxMjdceGIyXHhiM1x4YjRceGI1XHUwMTI1XHhiN1x4YjhcdTAxMzFcdTAxNWZcdTAxMWZcdTAxMzVceGJkXHVmZmZkXHUwMTdjXHhjMFx4YzFceGMyXHVmZmZkXHhjNFx1MDEwYVx1MDEwOFx4YzdceGM4''@;'; put 'put ''XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1ZmZmZFx4ZDFceGQyXHhkM1x4ZDRcdTAxMjBceGQ2XHhkN1x1MDExY1x4ZDlceGRhXHhkYlx4ZGNcdTAxNmNcdTAxNWNceGRmXHhlMFx4ZTFceGUyXHVmZmZkXHhlNFx1MDEwYlx1MDEwOVx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRc''@;'; put 'put ''eGVlXHhlZlx1ZmZmZFx4ZjFceGYyXHhmM1x4ZjRcdTAxMjFceGY2XHhmN1x1MDExZFx4ZjlceGZhXHhmYlx4ZmNcdTAxNmRcdTAxNWRcdTAyZDkifSxjcDI4NTkzOiJpc284ODU5MyIsaXNvODg1OTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4''@;'; put 'put ''ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMTM4XHUwMTU2XHhhNFx1MDEyOFx1MDEzYlx4YTdceGE4XHUwMTYwXHUwMTEyXHUwMTIyXHUw''@;'; put 'put ''MTY2XHhhZFx1MDE3ZFx4YWZceGIwXHUwMTA1XHUwMmRiXHUwMTU3XHhiNFx1MDEyOVx1MDEzY1x1MDJjN1x4YjhcdTAxNjFcdTAxMTNcdTAxMjNcdTAxNjdcdTAxNGFcdTAxN2VcdTAxNGJcdTAxMDBceGMxXHhjMlx4YzNceGM0XHhjNVx4YzZcdTAxMmVcdTAxMGNceGM5XHUwMTE4XHhjYlx1''@;'; put 'put ''MDExNlx4Y2RceGNlXHUwMTJhXHUwMTEwXHUwMTQ1XHUwMTRjXHUwMTM2XHhkNFx4ZDVceGQ2XHhkN1x4ZDhcdTAxNzJceGRhXHhkYlx4ZGNcdTAxNjhcdTAxNmFceGRmXHUwMTAxXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHUwMTJmXHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMTdceGVkXHhl''@;'; put 'put ''ZVx1MDEyYlx1MDExMVx1MDE0Nlx1MDE0ZFx1MDEzN1x4ZjRceGY1XHhmNlx4ZjdceGY4XHUwMTczXHhmYVx4ZmJceGZjXHUwMTY5XHUwMTZiXHUwMmQ5In0sY3AyODU5NDoiaXNvODg1OTQiLGlzbzg4NTk1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4''@;'; put 'put ''ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MDQwMVx1MDQwMlx1MDQwM1x1MDQwNFx1MDQwNVx1MDQwNlx1MDQwN1x1MDQwOFx1MDQwOVx1MDQw''@;'; put 'put ''YVx1MDQwYlx1MDQwY1x4YWRcdTA0MGVcdTA0MGZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0''@;'; put 'put ''MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRcdTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFc''@;'; put 'put ''dTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTIxMTZcdTA0NTFcdTA0NTJcdTA0NTNcdTA0NTRcdTA0NTVcdTA0NTZcdTA0NTdcdTA0NThcdTA0NTlcdTA0NWFcdTA0NWJcdTA0NWNceGE3''@;'; put 'put ''XHUwNDVlXHUwNDVmIn0sY3AyODU5NToiaXNvODg1OTUiLGlzbzg4NTk2Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThc''@;'; put 'put ''eDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1ZmZmZFx1ZmZmZFx1ZmZmZFx4YTRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA2MGNceGFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHUwNjFiXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjFmXHVmZmZkXHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUwNjJiXHUwNjJjXHUwNjJkXHUwNjJlXHUwNjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUw''@;'; put 'put ''NjMzXHUwNjM0XHUwNjM1XHUwNjM2XHUwNjM3XHUwNjM4XHUwNjM5XHUwNjNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwNjQwXHUwNjQxXHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRhXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRl''@;'; put 'put ''XHUwNjRmXHUwNjUwXHUwNjUxXHUwNjUyXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0sY3AyODU5NjoiaXNvODg1OTYiLGlzbzg4NTk3Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4''@;'; put 'put ''Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MjAxOFx1MjAxOVx4YTNcdTIwYWNcdTIwYWZceGE2XHhhN1x4YThceGE5''@;'; put 'put ''XHUwMzdhXHhhYlx4YWNceGFkXHVmZmZkXHUyMDE1XHhiMFx4YjFceGIyXHhiM1x1MDM4NFx1MDM4NVx1MDM4Nlx4YjdcdTAzODhcdTAzODlcdTAzOGFceGJiXHUwMzhjXHhiZFx1MDM4ZVx1MDM4Zlx1MDM5MFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5''@;'; put 'put ''OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1ZmZmZFx1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNhYVx1MDNhYlx1MDNhY1x1MDNhZFx1MDNhZVx1MDNhZlx1MDNiMFx1MDNiMVx1MDNiMlx1MDNiM1x1''@;'; put 'put ''MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjMlx1MDNjM1x1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1MDNjOFx1MDNjOVx1MDNjYVx1MDNjYlx1MDNjY1x1MDNjZFx1MDNjZVx1ZmZm''@;'; put 'put ''ZCJ9LGNwMjg1OTc6Imlzbzg4NTk3Iixpc284ODU5ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDli''@;'; put 'put ''XHg5Y1x4OWRceDllXHg5Zlx4YTBcdWZmZmRceGEyXHhhM1x4YTRceGE1XHhhNlx4YTdceGE4XHhhOVx4ZDdceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNceGI0XHhiNVx4YjZceGI3XHhiOFx4YjlceGY3XHhiYlx4YmNceGJkXHhiZVx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1MjAxN1x1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1MDVl''@;'; put 'put ''OVx1MDVlYVx1ZmZmZFx1ZmZmZFx1MjAwZVx1MjAwZlx1ZmZmZCJ9LGNwMjg1OTg6Imlzbzg4NTk4Iixpc284ODU5OTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDky''@;'; put 'put ''XHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJc''@;'; put 'put ''eGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDExZVx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDEzMFx1MDE1ZVx4ZGZceGUwXHhlMVx4ZTJceGUz''@;'; put 'put ''XHhlNFx4ZTVceGU2XHhlN1x4ZThceGU5XHhlYVx4ZWJceGVjXHhlZFx4ZWVceGVmXHUwMTFmXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHUwMTMxXHUwMTVmXHhmZiJ9LGNwMjg1OTk6Imlzbzg4NTk5Iixpc284ODU5MTA6e3R5cGU6Il9zYmNzIixj''@;'; put 'put ''aGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMTEyXHUwMTIyXHUwMTJhXHUw''@;'; put 'put ''MTI4XHUwMTM2XHhhN1x1MDEzYlx1MDExMFx1MDE2MFx1MDE2Nlx1MDE3ZFx4YWRcdTAxNmFcdTAxNGFceGIwXHUwMTA1XHUwMTEzXHUwMTIzXHUwMTJiXHUwMTI5XHUwMTM3XHhiN1x1MDEzY1x1MDExMVx1MDE2MVx1MDE2N1x1MDE3ZVx1MjAxNVx1MDE2Ylx1MDE0Ylx1MDEwMFx4YzFceGMy''@;'; put 'put ''XHhjM1x4YzRceGM1XHhjNlx1MDEyZVx1MDEwY1x4YzlcdTAxMThceGNiXHUwMTE2XHhjZFx4Y2VceGNmXHhkMFx1MDE0NVx1MDE0Y1x4ZDNceGQ0XHhkNVx4ZDZcdTAxNjhceGQ4XHUwMTcyXHhkYVx4ZGJceGRjXHhkZFx4ZGVceGRmXHUwMTAxXHhlMVx4ZTJceGUzXHhlNFx4ZTVceGU2XHUw''@;'; put 'put ''MTJmXHUwMTBkXHhlOVx1MDExOVx4ZWJcdTAxMTdceGVkXHhlZVx4ZWZceGYwXHUwMTQ2XHUwMTRkXHhmM1x4ZjRceGY1XHhmNlx1MDE2OVx4ZjhcdTAxNzNceGZhXHhmYlx4ZmNceGZkXHhmZVx1MDEzOCJ9LGNwMjg2MDA6Imlzbzg4NTkxMCIsaXNvODg1OTExOnt0eXBlOiJfc2JjcyIsY2hh''@;'; put 'put ''cnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUw''@;'; put 'put ''NVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1''@;'; put 'put ''MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUyOVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1''@;'; put 'put ''MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGNwMjg2MDE6Imlzbzg4NTkxMSIsaXNvODg1OTEzOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZc''@;'; put 'put ''eDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1MjAxZFx4YTJceGEzXHhhNFx1MjAxZVx4YTZceGE3XHhkOFx4YTlcdTAxNTZceGFiXHhhY1x4YWRceGFlXHhjNlx4YjBceGIxXHhiMlx4YjNcdTIwMWNceGI1XHhiNlx4''@;'; put 'put ''YjdceGY4XHhiOVx1MDE1N1x4YmJceGJjXHhiZFx4YmVceGU2XHUwMTA0XHUwMTJlXHUwMTAwXHUwMTA2XHhjNFx4YzVcdTAxMThcdTAxMTJcdTAxMGNceGM5XHUwMTc5XHUwMTE2XHUwMTIyXHUwMTM2XHUwMTJhXHUwMTNiXHUwMTYwXHUwMTQzXHUwMTQ1XHhkM1x1MDE0Y1x4ZDVceGQ2XHhk''@;'; put 'put ''N1x1MDE3Mlx1MDE0MVx1MDE1YVx1MDE2YVx4ZGNcdTAxN2JcdTAxN2RceGRmXHUwMTA1XHUwMTJmXHUwMTAxXHUwMTA3XHhlNFx4ZTVcdTAxMTlcdTAxMTNcdTAxMGRceGU5XHUwMTdhXHUwMTE3XHUwMTIzXHUwMTM3XHUwMTJiXHUwMTNjXHUwMTYxXHUwMTQ0XHUwMTQ2XHhmM1x1MDE0ZFx4''@;'; put 'put ''ZjVceGY2XHhmN1x1MDE3M1x1MDE0Mlx1MDE1Ylx1MDE2Ylx4ZmNcdTAxN2NcdTAxN2VcdTIwMTkifSxjcDI4NjAzOiJpc284ODU5MTMiLGlzbzg4NTkxNDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4''@;'; put 'put ''ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBcdTFlMDJcdTFlMDNceGEzXHUwMTBhXHUwMTBiXHUxZTBhXHhhN1x1MWU4MFx4YTlcdTFlODJcdTFlMGJcdTFlZjJceGFkXHhhZVx1MDE3OFx1MWUxZVx1''@;'; put 'put ''MWUxZlx1MDEyMFx1MDEyMVx1MWU0MFx1MWU0MVx4YjZcdTFlNTZcdTFlODFcdTFlNTdcdTFlODNcdTFlNjBcdTFlZjNcdTFlODRcdTFlODVcdTFlNjFceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHUwMTc0XHhkMVx4ZDJc''@;'; put 'put ''eGQzXHhkNFx4ZDVceGQ2XHUxZTZhXHhkOFx4ZDlceGRhXHhkYlx4ZGNceGRkXHUwMTc2XHhkZlx4ZTBceGUxXHhlMlx4ZTNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZcdTAxNzVceGYxXHhmMlx4ZjNceGY0XHhmNVx4ZjZcdTFlNmJceGY4XHhmOVx4''@;'; put 'put ''ZmFceGZiXHhmY1x4ZmRcdTAxNzdceGZmIn0sY3AyODYwNDoiaXNvODg1OTE0Iixpc284ODU5MTU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5''@;'; put 'put ''NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHUyMGFjXHhhNVx1MDE2MFx4YTdcdTAxNjFceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x1MDE3ZFx4YjVceGI2XHhiN1x1MDE3ZVx4YjlceGJhXHhiYlx1''@;'; put 'put ''MDE1Mlx1MDE1M1x1MDE3OFx4YmZceGMwXHhjMVx4YzJceGMzXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JceGNjXHhjZFx4Y2VceGNmXHhkMFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x4ZGRceGRlXHhkZlx4ZTBceGUxXHhlMlx4ZTNc''@;'; put 'put ''eGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0sY3AyODYwNToiaXNvODg1OTE1Iixpc284ODU5MTY6e3R5cGU6Il9zYmNzIixjaGFyczoi''@;'; put 'put ''XHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwMTA0XHUwMTA1XHUwMTQxXHUyMGFjXHUyMDFlXHUw''@;'; put 'put ''MTYwXHhhN1x1MDE2MVx4YTlcdTAyMThceGFiXHUwMTc5XHhhZFx1MDE3YVx1MDE3Ylx4YjBceGIxXHUwMTBjXHUwMTQyXHUwMTdkXHUyMDFkXHhiNlx4YjdcdTAxN2VcdTAxMGRcdTAyMTlceGJiXHUwMTUyXHUwMTUzXHUwMTc4XHUwMTdjXHhjMFx4YzFceGMyXHUwMTAyXHhjNFx1MDEwNlx4''@;'; put 'put ''YzZceGM3XHhjOFx4YzlceGNhXHhjYlx4Y2NceGNkXHhjZVx4Y2ZcdTAxMTBcdTAxNDNceGQyXHhkM1x4ZDRcdTAxNTBceGQ2XHUwMTVhXHUwMTcwXHhkOVx4ZGFceGRiXHhkY1x1MDExOFx1MDIxYVx4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHUwMTA3XHhlNlx4ZTdceGU4XHhlOVx4ZWFc''@;'; put 'put ''eGViXHhlY1x4ZWRceGVlXHhlZlx1MDExMVx1MDE0NFx4ZjJceGYzXHhmNFx1MDE1MVx4ZjZcdTAxNWJcdTAxNzFceGY5XHhmYVx4ZmJceGZjXHUwMTE5XHUwMjFiXHhmZiJ9LGNwMjg2MDY6Imlzbzg4NTkxNiIsY3A0Mzc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4''@;'; put 'put ''ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx4ZWNceGM0XHhjNVx4YzlceGU2XHhjNlx4ZjRceGY2XHhmMlx4ZmJceGY5XHhmZlx4ZDZceGRjXHhhMlx4YTNceGE1XHUyMGE3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHUyMzEwXHhhY1x4YmRc''@;'; put 'put ''eGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVh''@;'; put 'put ''XHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNh''@;'; put 'put ''M1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm00Mzc6ImNwNDM3''@;'; put 'put ''Iixjc2libTQzNzoiY3A0MzciLGNwNzM3Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x1MDM5OFx1MDM5OVx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MDM5ZVx1MDM5Zlx1MDNhMFx1MDNhMVx1MDNhM1x1MDNhNFx1MDNh''@;'; put 'put ''NVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNiMVx1MDNiMlx1MDNiM1x1MDNiNFx1MDNiNVx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjMlx1MDNjNFx1MDNjNVx1MDNjNlx1MDNjN1x1''@;'; put 'put ''MDNjOFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2''@;'; put 'put ''OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNjOVx1MDNhY1x1MDNhZFx1MDNhZVx1MDNjYVx1MDNhZlx1''@;'; put 'put ''MDNjY1x1MDNjZFx1MDNjYlx1MDNjZVx1MDM4Nlx1MDM4OFx1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDM4Zlx4YjFcdTIyNjVcdTIyNjRcdTAzYWFcdTAzYWJceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTczNzoiY3A3MzciLGNzaWJt''@;'; put 'put ''NzM3OiJjcDczNyIsY3A3NzU6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwMTA2XHhmY1x4ZTlcdTAxMDFceGU0XHUwMTIzXHhlNVx1MDEwN1x1MDE0Mlx1MDExM1x1MDE1Nlx1MDE1N1x1MDEyYlx1MDE3OVx4YzRceGM1XHhjOVx4ZTZceGM2XHUwMTRkXHhmNlx1MDEyMlx4YTJcdTAxNWFcdTAx''@;'; put 'put ''NWJceGQ2XHhkY1x4ZjhceGEzXHhkOFx4ZDdceGE0XHUwMTAwXHUwMTJhXHhmM1x1MDE3Ylx1MDE3Y1x1MDE3YVx1MjAxZFx4YTZceGE5XHhhZVx4YWNceGJkXHhiY1x1MDE0MVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUwMTA0XHUwMTBjXHUwMTE4XHUwMTE2XHUy''@;'; put 'put ''NTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwMTJlXHUwMTYwXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUwMTcyXHUwMTZhXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUwMTdkXHUwMTA1XHUwMTBkXHUwMTE5XHUwMTE3XHUwMTJm''@;'; put 'put ''XHUwMTYxXHUwMTczXHUwMTZiXHUwMTdlXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHhkM1x4ZGZcdTAxNGNcdTAxNDNceGY1XHhkNVx4YjVcdTAxNDRcdTAxMzZcdTAxMzdcdTAxM2JcdTAxM2NcdTAxNDZcdTAxMTJcdTAxNDVcdTIwMTlceGFkXHhiMVx1MjAx''@;'; put 'put ''Y1x4YmVceGI2XHhhN1x4ZjdcdTIwMWVceGIwXHUyMjE5XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAifSxpYm03NzU6ImNwNzc1Iixjc2libTc3NToiY3A3NzUiLGNwODUwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4''@;'; put 'put ''XHhlZlx4ZWVceGVjXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZjJceGZiXHhmOVx4ZmZceGQ2XHhkY1x4ZjhceGEzXHhkOFx4ZDdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUy''@;'; put 'put ''NTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNceGE0XHhmMFx4''@;'; put 'put ''ZDBceGNhXHhjYlx4YzhcdTAxMzFceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVceGZlXHhkZVx4ZGFceGRiXHhkOVx4ZmRceGRkXHhhZlx4YjRceGFkXHhiMVx1MjAxN1x4YmVceGI2XHhhN1x4Zjdc''@;'; put 'put ''eGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCJ9LGlibTg1MDoiY3A4NTAiLGNzaWJtODUwOiJjcDg1MCIsY3A4NTI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRcdTAxNmZcdTAxMDdceGU3XHUwMTQyXHhlYlx1MDE1MFx1MDE1MVx4ZWVcdTAx''@;'; put 'put ''NzlceGM0XHUwMTA2XHhjOVx1MDEzOVx1MDEzYVx4ZjRceGY2XHUwMTNkXHUwMTNlXHUwMTVhXHUwMTViXHhkNlx4ZGNcdTAxNjRcdTAxNjVcdTAxNDFceGQ3XHUwMTBkXHhlMVx4ZWRceGYzXHhmYVx1MDEwNFx1MDEwNVx1MDE3ZFx1MDE3ZVx1MDExOFx1MDExOVx4YWNcdTAxN2FcdTAxMGNc''@;'; put 'put ''dTAxNWZceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx4YzFceGMyXHUwMTFhXHUwMTVlXHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUwMTdiXHUwMTdjXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUwMTAyXHUwMTAzXHUyNTVhXHUyNTU0''@;'; put 'put ''XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx1MDExMVx1MDExMFx1MDEwZVx4Y2JcdTAxMGZcdTAxNDdceGNkXHhjZVx1MDExYlx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MDE2Mlx1MDE2ZVx1MjU4MFx4ZDNceGRmXHhkNFx1MDE0M1x1MDE0NFx1MDE0OFx1MDE2MFx1MDE2''@;'; put 'put ''MVx1MDE1NFx4ZGFcdTAxNTVcdTAxNzBceGZkXHhkZFx1MDE2M1x4YjRceGFkXHUwMmRkXHUwMmRiXHUwMmM3XHUwMmQ4XHhhN1x4ZjdceGI4XHhiMFx4YThcdTAyZDlcdTAxNzFcdTAxNThcdTAxNTlcdTI1YTBceGEwIn0saWJtODUyOiJjcDg1MiIsY3NpYm04NTI6ImNwODUyIixjcDg1NTp7''@;'; put 'put ''dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0NTJcdTA0MDJcdTA0NTNcdTA0MDNcdTA0NTFcdTA0MDFcdTA0NTRcdTA0MDRcdTA0NTVcdTA0MDVcdTA0NTZcdTA0MDZcdTA0NTdcdTA0MDdcdTA0NThcdTA0MDhcdTA0NTlcdTA0MDlcdTA0NWFcdTA0MGFcdTA0NWJcdTA0MGJcdTA0NWNcdTA0MGNc''@;'; put 'put ''dTA0NWVcdTA0MGVcdTA0NWZcdTA0MGZcdTA0NGVcdTA0MmVcdTA0NGFcdTA0MmFcdTA0MzBcdTA0MTBcdTA0MzFcdTA0MTFcdTA0NDZcdTA0MjZcdTA0MzRcdTA0MTRcdTA0MzVcdTA0MTVcdTA0NDRcdTA0MjRcdTA0MzNcdTA0MTNceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1''@;'; put 'put ''MjUyNFx1MDQ0NVx1MDQyNVx1MDQzOFx1MDQxOFx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MDQzOVx1MDQxOVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDQzYVx1MDQxYVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x4YTRc''@;'; put 'put ''dTA0M2JcdTA0MWJcdTA0M2NcdTA0MWNcdTA0M2RcdTA0MWRcdTA0M2VcdTA0MWVcdTA0M2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTA0MWZcdTA0NGZcdTI1ODBcdTA0MmZcdTA0NDBcdTA0MjBcdTA0NDFcdTA0MjFcdTA0NDJcdTA0MjJcdTA0NDNcdTA0MjNcdTA0MzZcdTA0MTZcdTA0''@;'; put 'put ''MzJcdTA0MTJcdTA0NGNcdTA0MmNcdTIxMTZceGFkXHUwNDRiXHUwNDJiXHUwNDM3XHUwNDE3XHUwNDQ4XHUwNDI4XHUwNDRkXHUwNDJkXHUwNDQ5XHUwNDI5XHUwNDQ3XHUwNDI3XHhhN1x1MjVhMFx4YTAifSxpYm04NTU6ImNwODU1Iixjc2libTg1NToiY3A4NTUiLGNwODU2Ont0eXBlOiJf''@;'; put 'put ''c2JjcyIsY2hhcnM6Ilx1MDVkMFx1MDVkMVx1MDVkMlx1MDVkM1x1MDVkNFx1MDVkNVx1MDVkNlx1MDVkN1x1MDVkOFx1MDVkOVx1MDVkYVx1MDVkYlx1MDVkY1x1MDVkZFx1MDVkZVx1MDVkZlx1MDVlMFx1MDVlMVx1MDVlMlx1MDVlM1x1MDVlNFx1MDVlNVx1MDVlNlx1MDVlN1x1MDVlOFx1''@;'; put 'put ''MDVlOVx1MDVlYVx1ZmZmZFx4YTNcdWZmZmRceGQ3XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhZVx4YWNceGJkXHhiY1x1ZmZmZFx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHVmZmZkXHVmZmZkXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx4YTZcdWZmZmRcdTI1ODBcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRceGI1XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHhhZlx4YjRceGFkXHhi''@;'; put 'put ''MVx1MjAxN1x4YmVceGI2XHhhN1x4ZjdceGI4XHhiMFx4YThceGI3XHhiOVx4YjNceGIyXHUyNWEwXHhhMCJ9LGlibTg1NjoiY3A4NTYiLGNzaWJtODU2OiJjcDg1NiIsY3A4NTc6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjN1x4ZmNceGU5XHhlMlx4ZTRceGUwXHhlNVx4ZTdceGVhXHhlYlx4''@;'; put 'put ''ZThceGVmXHhlZVx1MDEzMVx4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlcdTAxMzBceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MDE1ZVx1MDE1Zlx4ZTFceGVkXHhmM1x4ZmFceGYxXHhkMVx1MDExZVx1MDExZlx4YmZceGFlXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUy''@;'; put 'put ''NTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHhjMVx4YzJceGMwXHhhOVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx4YTJceGE1XHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHhlM1x4YzNcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1''@;'; put 'put ''NmNceGE0XHhiYVx4YWFceGNhXHhjYlx4YzhcdWZmZmRceGNkXHhjZVx4Y2ZcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRceGE2XHhjY1x1MjU4MFx4ZDNceGRmXHhkNFx4ZDJceGY1XHhkNVx4YjVcdWZmZmRceGQ3XHhkYVx4ZGJceGQ5XHhlY1x4ZmZceGFmXHhiNFx4YWRceGIxXHVmZmZkXHhi''@;'; put 'put ''ZVx4YjZceGE3XHhmN1x4YjhceGIwXHhhOFx4YjdceGI5XHhiM1x4YjJcdTI1YTBceGEwIn0saWJtODU3OiJjcDg1NyIsY3NpYm04NTc6ImNwODU3IixjcDg1ODp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVl''@;'; put 'put ''XHhlY1x4YzRceGM1XHhjOVx4ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhceGQ3XHUwMTkyXHhlMVx4ZWRceGYzXHhmYVx4ZjFceGQxXHhhYVx4YmFceGJmXHhhZVx4YWNceGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUw''@;'; put 'put ''Mlx1MjUyNFx4YzFceGMyXHhjMFx4YTlcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRceGEyXHhhNVx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x4ZTNceGMzXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHhhNFx4ZjBceGQwXHhjYVx4''@;'; put 'put ''Y2JceGM4XHUyMGFjXHhjZFx4Y2VceGNmXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHhhNlx4Y2NcdTI1ODBceGQzXHhkZlx4ZDRceGQyXHhmNVx4ZDVceGI1XHhmZVx4ZGVceGRhXHhkYlx4ZDlceGZkXHhkZFx4YWZceGI0XHhhZFx4YjFcdTIwMTdceGJlXHhiNlx4YTdceGY3XHhiOFx4YjBc''@;'; put 'put ''eGE4XHhiN1x4YjlceGIzXHhiMlx1MjVhMFx4YTAifSxpYm04NTg6ImNwODU4Iixjc2libTg1ODoiY3A4NTgiLGNwODYwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4ZTJceGUzXHhlMFx4YzFceGU3XHhlYVx4Y2FceGU4XHhjZFx4ZDRceGVjXHhjM1x4YzJceGM5XHhjMFx4''@;'; put 'put ''YzhceGY0XHhmNVx4ZjJceGRhXHhmOVx4Y2NceGQ1XHhkY1x4YTJceGEzXHhkOVx1MjBhN1x4ZDNceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZceGQyXHhhY1x4YmRceGJjXHhhMVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUy''@;'; put 'put ''NTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1''@;'; put 'put ''XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2IxXHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVc''@;'; put 'put ''dTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVhMFx4YTAifSxpYm04NjA6ImNwODYwIixjc2libTg2MDoiY3A4NjAiLGNwODYxOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzdceGZjXHhlOVx4''@;'; put 'put ''ZTJceGU0XHhlMFx4ZTVceGU3XHhlYVx4ZWJceGU4XHhkMFx4ZjBceGRlXHhjNFx4YzVceGM5XHhlNlx4YzZceGY0XHhmNlx4ZmVceGZiXHhkZFx4ZmRceGQ2XHhkY1x4ZjhceGEzXHhkOFx1MjBhN1x1MDE5Mlx4ZTFceGVkXHhmM1x4ZmFceGMxXHhjZFx4ZDNceGRhXHhiZlx1MjMxMFx4YWNc''@;'; put 'put ''eGJkXHhiY1x4YTFceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1''@;'; put 'put ''MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDNiMVx4ZGZcdTAzOTNcdTAzYzBc''@;'; put 'put ''dTAzYTNcdTAzYzNceGI1XHUwM2M0XHUwM2E2XHUwMzk4XHUwM2E5XHUwM2I0XHUyMjFlXHUwM2M2XHUwM2I1XHUyMjI5XHUyMjYxXHhiMVx1MjI2NVx1MjI2NFx1MjMyMFx1MjMyMVx4ZjdcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0saWJtODYxOiJj''@;'; put 'put ''cDg2MSIsY3NpYm04NjE6ImNwODYxIixjcDg2Mjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA1ZDBcdTA1ZDFcdTA1ZDJcdTA1ZDNcdTA1ZDRcdTA1ZDVcdTA1ZDZcdTA1ZDdcdTA1ZDhcdTA1ZDlcdTA1ZGFcdTA1ZGJcdTA1ZGNcdTA1ZGRcdTA1ZGVcdTA1ZGZcdTA1ZTBcdTA1ZTFcdTA1ZTJc''@;'; put 'put ''dTA1ZTNcdTA1ZTRcdTA1ZTVcdTA1ZTZcdTA1ZTdcdTA1ZThcdTA1ZTlcdTA1ZWFceGEyXHhhM1x4YTVcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YmJcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1''@;'; put 'put ''MjRcdTI1NjFcdTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1Njdc''@;'; put 'put ''dTI1NjhcdTI1NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1''@;'; put 'put ''MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2MjoiY3A4NjIiLGNzaWJtODYyOiJjcDg2MiIsY3A4NjM6e3R5cGU6Il9zYmNzIixjaGFy''@;'; put 'put ''czoiXHhjN1x4ZmNceGU5XHhlMlx4YzJceGUwXHhiNlx4ZTdceGVhXHhlYlx4ZThceGVmXHhlZVx1MjAxN1x4YzBceGE3XHhjOVx4YzhceGNhXHhmNFx4Y2JceGNmXHhmYlx4ZjlceGE0XHhkNFx4ZGNceGEyXHhhM1x4ZDlceGRiXHUwMTkyXHhhNlx4YjRceGYzXHhmYVx4YThceGI4XHhiM1x4''@;'; put 'put ''YWZceGNlXHUyMzEwXHhhY1x4YmRceGJjXHhiZVx4YWJceGJiXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUy''@;'; put 'put ''NTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwM2Ix''@;'; put 'put ''XHhkZlx1MDM5M1x1MDNjMFx1MDNhM1x1MDNjM1x4YjVcdTAzYzRcdTAzYTZcdTAzOThcdTAzYTlcdTAzYjRcdTIyMWVcdTAzYzZcdTAzYjVcdTIyMjlcdTIyNjFceGIxXHUyMjY1XHUyMjY0XHUyMzIwXHUyMzIxXHhmN1x1MjI0OFx4YjBcdTIyMTlceGI3XHUyMjFhXHUyMDdmXHhiMlx1MjVh''@;'; put 'put ''MFx4YTAifSxpYm04NjM6ImNwODYzIixjc2libTg2MzoiY3A4NjMiLGNwODY0Ont0eXBlOiJfc2JjcyIsY2hhcnM6IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgxNlx4MTdceDE4XHgxOVx4MWFceDFi''@;'; put 'put ''XHgxY1x4MWRceDFlXHgxZiAhXCIjJFx1MDY2YSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9flx4N2ZceGIwXHhiN1x1MjIxOVx1MjIxYVx1MjU5Mlx1MjUwMFx1MjUwMlx1MjUz''@;'; put 'put ''Y1x1MjUyNFx1MjUyY1x1MjUxY1x1MjUzNFx1MjUxMFx1MjUwY1x1MjUxNFx1MjUxOFx1MDNiMlx1MjIxZVx1MDNjNlx4YjFceGJkXHhiY1x1MjI0OFx4YWJceGJiXHVmZWY3XHVmZWY4XHVmZmZkXHVmZmZkXHVmZWZiXHVmZWZjXHVmZmZkXHhhMFx4YWRcdWZlODJceGEzXHhhNFx1ZmU4NFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmU4ZVx1ZmU4Zlx1ZmU5NVx1ZmU5OVx1MDYwY1x1ZmU5ZFx1ZmVhMVx1ZmVhNVx1MDY2MFx1MDY2MVx1MDY2Mlx1MDY2M1x1MDY2NFx1MDY2NVx1MDY2Nlx1MDY2N1x1MDY2OFx1MDY2OVx1ZmVkMVx1MDYxYlx1ZmViMVx1ZmViNVx1ZmViOVx1MDYxZlx4YTJcdWZlODBc''@;'; put 'put ''dWZlODFcdWZlODNcdWZlODVcdWZlY2FcdWZlOGJcdWZlOGRcdWZlOTFcdWZlOTNcdWZlOTdcdWZlOWJcdWZlOWZcdWZlYTNcdWZlYTdcdWZlYTlcdWZlYWJcdWZlYWRcdWZlYWZcdWZlYjNcdWZlYjdcdWZlYmJcdWZlYmZcdWZlYzFcdWZlYzVcdWZlY2JcdWZlY2ZceGE2XHhhY1x4ZjdceGQ3''@;'; put 'put ''XHVmZWM5XHUwNjQwXHVmZWQzXHVmZWQ3XHVmZWRiXHVmZWRmXHVmZWUzXHVmZWU3XHVmZWViXHVmZWVkXHVmZWVmXHVmZWYzXHVmZWJkXHVmZWNjXHVmZWNlXHVmZWNkXHVmZWUxXHVmZTdkXHUwNjUxXHVmZWU1XHVmZWU5XHVmZWVjXHVmZWYwXHVmZWYyXHVmZWQwXHVmZWQ1XHVmZWY1XHVm''@;'; put 'put ''ZWY2XHVmZWRkXHVmZWQ5XHVmZWYxXHUyNWEwXHVmZmZkIn0saWJtODY0OiJjcDg2NCIsY3NpYm04NjQ6ImNwODY0IixjcDg2NTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM3XHhmY1x4ZTlceGUyXHhlNFx4ZTBceGU1XHhlN1x4ZWFceGViXHhlOFx4ZWZceGVlXHhlY1x4YzRceGM1XHhjOVx4''@;'; put 'put ''ZTZceGM2XHhmNFx4ZjZceGYyXHhmYlx4ZjlceGZmXHhkNlx4ZGNceGY4XHhhM1x4ZDhcdTIwYTdcdTAxOTJceGUxXHhlZFx4ZjNceGZhXHhmMVx4ZDFceGFhXHhiYVx4YmZcdTIzMTBceGFjXHhiZFx4YmNceGExXHhhYlx4YTRcdTI1OTFcdTI1OTJcdTI1OTNcdTI1MDJcdTI1MjRcdTI1NjFc''@;'; put 'put ''dTI1NjJcdTI1NTZcdTI1NTVcdTI1NjNcdTI1NTFcdTI1NTdcdTI1NWRcdTI1NWNcdTI1NWJcdTI1MTBcdTI1MTRcdTI1MzRcdTI1MmNcdTI1MWNcdTI1MDBcdTI1M2NcdTI1NWVcdTI1NWZcdTI1NWFcdTI1NTRcdTI1NjlcdTI1NjZcdTI1NjBcdTI1NTBcdTI1NmNcdTI1NjdcdTI1NjhcdTI1''@;'; put 'put ''NjRcdTI1NjVcdTI1NTlcdTI1NThcdTI1NTJcdTI1NTNcdTI1NmJcdTI1NmFcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRmXHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNj''@;'; put 'put ''Nlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhhMCJ9LGlibTg2NToiY3A4NjUiLGNzaWJtODY1OiJjcDg2NSIsY3A4NjY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEw''@;'; put 'put ''XHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUw''@;'; put 'put ''NDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2''@;'; put 'put ''XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEwXHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUy''@;'; put 'put ''NTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUyNTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRl''@;'; put 'put ''XHUwNDRmXHUwNDAxXHUwNDUxXHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBlXHUwNDVlXHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIxMTZceGE0XHUyNWEwXHhhMCJ9LGlibTg2NjoiY3A4NjYiLGNzaWJtODY2OiJjcDg2NiIsY3A4Njk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwMzg2XHVmZmZkXHhiN1x4YWNceGE2XHUyMDE4XHUyMDE5XHUwMzg4XHUyMDE1XHUwMzg5XHUwMzhhXHUwM2FhXHUwMzhjXHVmZmZkXHVmZmZkXHUwMzhlXHUwM2FiXHhhOVx1MDM4Zlx4YjJceGIzXHUwM2FjXHhhM1x1MDNhZFx1MDNhZVx1''@;'; put 'put ''MDNhZlx1MDNjYVx1MDM5MFx1MDNjY1x1MDNjZFx1MDM5MVx1MDM5Mlx1MDM5M1x1MDM5NFx1MDM5NVx1MDM5Nlx1MDM5N1x4YmRcdTAzOThcdTAzOTlceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MDM5YVx1MDM5Ylx1MDM5Y1x1MDM5ZFx1MjU2M1x1MjU1MVx1MjU1''@;'; put 'put ''N1x1MjU1ZFx1MDM5ZVx1MDM5Zlx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MDNhMFx1MDNhMVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MDNhM1x1MDNhNFx1MDNhNVx1MDNhNlx1MDNhN1x1MDNhOFx1MDNhOVx1MDNiMVx1''@;'; put 'put ''MDNiMlx1MDNiM1x1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MDNiNFx1MDNiNVx1MjU4MFx1MDNiNlx1MDNiN1x1MDNiOFx1MDNiOVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNiZFx1MDNiZVx1MDNiZlx1MDNjMFx1MDNjMVx1MDNjM1x1MDNjMlx1MDNjNFx1MDM4NFx4YWRceGIxXHUwM2M1XHUw''@;'; put 'put ''M2M2XHUwM2M3XHhhN1x1MDNjOFx1MDM4NVx4YjBceGE4XHUwM2M5XHUwM2NiXHUwM2IwXHUwM2NlXHUyNWEwXHhhMCJ9LGlibTg2OToiY3A4NjkiLGNzaWJtODY5OiJjcDg2OSIsY3A5MjI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4''@;'; put 'put ''XHg4OVx4OGFceDhiXHg4Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVcdTIwM2VceGIwXHhi''@;'; put 'put ''MVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHhjM1x4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNiXHhjY1x4Y2RceGNlXHhjZlx1MDE2MFx4ZDFceGQyXHhkM1x4ZDRceGQ1XHhkNlx4ZDdceGQ4XHhkOVx4''@;'; put 'put ''ZGFceGRiXHhkY1x4ZGRcdTAxN2RceGRmXHhlMFx4ZTFceGUyXHhlM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHhlY1x4ZWRceGVlXHhlZlx1MDE2MVx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRcdTAxN2VceGZmIn0saWJtOTIy''@;'; put 'put ''OiJjcDkyMiIsY3NpYm05MjI6ImNwOTIyIixjcDEwNDY6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZTg4XHhkN1x4ZjdcdWY4ZjZcdWY4ZjVcdWY4ZjRcdWY4ZjdcdWZlNzFceDg4XHUyNWEwXHUyNTAyXHUyNTAwXHUyNTEwXHUyNTBjXHUyNTE0XHUyNTE4XHVmZTc5XHVmZTdiXHVmZTdkXHVm''@;'; put 'put ''ZTdmXHVmZTc3XHVmZThhXHVmZWYwXHVmZWYzXHVmZWYyXHVmZWNlXHVmZWNmXHVmZWQwXHVmZWY2XHVmZWY4XHVmZWZhXHVmZWZjXHhhMFx1ZjhmYVx1ZjhmOVx1ZjhmOFx4YTRcdWY4ZmJcdWZlOGJcdWZlOTFcdWZlOTdcdWZlOWJcdWZlOWZcdWZlYTNcdTA2MGNceGFkXHVmZWE3XHVmZWIz''@;'; put 'put ''XHUwNjYwXHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHVmZWI3XHUwNjFiXHVmZWJiXHVmZWJmXHVmZWNhXHUwNjFmXHVmZWNiXHUwNjIxXHUwNjIyXHUwNjIzXHUwNjI0XHUwNjI1XHUwNjI2XHUwNjI3XHUwNjI4XHUwNjI5XHUwNjJhXHUw''@;'; put 'put ''NjJiXHUwNjJjXHUwNjJkXHUwNjJlXHUwNjJmXHUwNjMwXHUwNjMxXHUwNjMyXHUwNjMzXHUwNjM0XHUwNjM1XHUwNjM2XHUwNjM3XHVmZWM3XHUwNjM5XHUwNjNhXHVmZWNjXHVmZTgyXHVmZTg0XHVmZThlXHVmZWQzXHUwNjQwXHUwNjQxXHUwNjQyXHUwNjQzXHUwNjQ0XHUwNjQ1XHUwNjQ2''@;'; put 'put ''XHUwNjQ3XHUwNjQ4XHUwNjQ5XHUwNjRhXHUwNjRiXHUwNjRjXHUwNjRkXHUwNjRlXHUwNjRmXHUwNjUwXHUwNjUxXHUwNjUyXHVmZWQ3XHVmZWRiXHVmZWRmXHVmOGZjXHVmZWY1XHVmZWY3XHVmZWY5XHVmZWZiXHVmZWUzXHVmZWU3XHVmZWVjXHVmZWU5XHVmZmZkIn0saWJtMTA0NjoiY3Ax''@;'; put 'put ''MDQ2Iixjc2libTEwNDY6ImNwMTA0NiIsY3AxMTI0Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJc''@;'; put 'put ''eDljXHg5ZFx4OWVceDlmXHhhMFx1MDQwMVx1MDQwMlx1MDQ5MFx1MDQwNFx1MDQwNVx1MDQwNlx1MDQwN1x1MDQwOFx1MDQwOVx1MDQwYVx1MDQwYlx1MDQwY1x4YWRcdTA0MGVcdTA0MGZcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0''@;'; put 'put ''MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTA0MzBcdTA0MzFcdTA0MzJcdTA0MzNcdTA0MzRc''@;'; put 'put ''dTA0MzVcdTA0MzZcdTA0MzdcdTA0MzhcdTA0MzlcdTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0NDRcdTA0NDVcdTA0NDZcdTA0NDdcdTA0NDhcdTA0NDlcdTA0NGFcdTA0NGJcdTA0NGNcdTA0NGRcdTA0NGVcdTA0NGZcdTIx''@;'; put 'put ''MTZcdTA0NTFcdTA0NTJcdTA0OTFcdTA0NTRcdTA0NTVcdTA0NTZcdTA0NTdcdTA0NThcdTA0NTlcdTA0NWFcdTA0NWJcdTA0NWNceGE3XHUwNDVlXHUwNDVmIn0saWJtMTEyNDoiY3AxMTI0Iixjc2libTExMjQ6ImNwMTEyNCIsY3AxMTI1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1''@;'; put 'put ''MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQy''@;'; put 'put ''Y1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1''@;'; put 'put ''MjU1NVx1MjU2M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1''@;'; put 'put ''OVx1MjU1OFx1MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1''@;'; put 'put ''MDQ0Zlx1MDQwMVx1MDQ1MVx1MDQ5MFx1MDQ5MVx1MDQwNFx1MDQ1NFx1MDQwNlx1MDQ1Nlx1MDQwN1x1MDQ1N1x4YjdcdTIyMWFcdTIxMTZceGE0XHUyNWEwXHhhMCJ9LGlibTExMjU6ImNwMTEyNSIsY3NpYm0xMTI1OiJjcDExMjUiLGNwMTEyOTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgw''@;'; put 'put ''XHg4MVx4ODJceDgzXHg4NFx4ODVceDg2XHg4N1x4ODhceDg5XHg4YVx4OGJceDhjXHg4ZFx4OGVceDhmXHg5MFx4OTFceDkyXHg5M1x4OTRceDk1XHg5Nlx4OTdceDk4XHg5OVx4OWFceDliXHg5Y1x4OWRceDllXHg5Zlx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHUwMTUzXHhh''@;'; put 'put ''OVx4YWFceGFiXHhhY1x4YWRceGFlXHhhZlx4YjBceGIxXHhiMlx4YjNcdTAxNzhceGI1XHhiNlx4YjdcdTAxNTJceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHhjMFx4YzFceGMyXHUwMTAyXHhjNFx4YzVceGM2XHhjN1x4YzhceGM5XHhjYVx4Y2JcdTAzMDBceGNkXHhjZVx4Y2ZcdTAx''@;'; put 'put ''MTBceGQxXHUwMzA5XHhkM1x4ZDRcdTAxYTBceGQ2XHhkN1x4ZDhceGQ5XHhkYVx4ZGJceGRjXHUwMWFmXHUwMzAzXHhkZlx4ZTBceGUxXHhlMlx1MDEwM1x4ZTRceGU1XHhlNlx4ZTdceGU4XHhlOVx4ZWFceGViXHUwMzAxXHhlZFx4ZWVceGVmXHUwMTExXHhmMVx1MDMyM1x4ZjNceGY0XHUw''@;'; put 'put ''MWExXHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x1MDFiMFx1MjBhYlx4ZmYifSxpYm0xMTI5OiJjcDExMjkiLGNzaWJtMTEyOToiY3AxMTI5IixjcDExMzM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFceDgyXHg4M1x4ODRceDg1XHg4Nlx4ODdceDg4XHg4OVx4OGFceDhiXHg4''@;'; put 'put ''Y1x4OGRceDhlXHg4Zlx4OTBceDkxXHg5Mlx4OTNceDk0XHg5NVx4OTZceDk3XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwZTgxXHUwZTgyXHUwZTg0XHUwZTg3XHUwZTg4XHUwZWFhXHUwZThhXHUwZThkXHUwZTk0XHUwZTk1XHUwZTk2XHUwZTk3XHUwZTk5XHUwZTlh''@;'; put 'put ''XHUwZTliXHUwZTljXHUwZTlkXHUwZTllXHUwZTlmXHUwZWExXHUwZWEyXHUwZWEzXHUwZWE1XHUwZWE3XHUwZWFiXHUwZWFkXHUwZWFlXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWFmXHUwZWIwXHUwZWIyXHUwZWIzXHUwZWI0XHUwZWI1XHUwZWI2XHUwZWI3XHUwZWI4XHUwZWI5XHUwZWJjXHUw''@;'; put 'put ''ZWIxXHUwZWJiXHUwZWJkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWMwXHUwZWMxXHUwZWMyXHUwZWMzXHUwZWM0XHUwZWM4XHUwZWM5XHUwZWNhXHUwZWNiXHUwZWNjXHUwZWNkXHUwZWM2XHVmZmZkXHUwZWRjXHUwZWRkXHUyMGFkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZWQwXHUwZWQxXHUwZWQyXHUwZWQzXHUwZWQ0XHUwZWQ1XHUwZWQ2XHUwZWQ3XHUwZWQ4XHUwZWQ5XHVmZmZkXHVmZmZkXHhhMlx4YWNceGE2XHVmZmZkIn0saWJtMTEzMzoiY3Ax''@;'; put 'put ''MTMzIixjc2libTExMzM6ImNwMTEzMyIsY3AxMTYxOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1MGU0OFx1MGUwMVx1MGUwMlx1MGUwM1x1MGUwNFx1MGUwNVx1MGUwNlx1MGUwN1x1MGUwOFx1MGUwOVx1MGUwYVx1MGUwYlx1MGUwY1x1MGUwZFx1''@;'; put 'put ''MGUwZVx1MGUwZlx1MGUxMFx1MGUxMVx1MGUxMlx1MGUxM1x1MGUxNFx1MGUxNVx1MGUxNlx1MGUxN1x1MGUxOFx1MGUxOVx1MGUxYVx1MGUxYlx1MGUxY1x1MGUxZFx1MGUxZVx1MGUxZlx1MGUyMFx1MGUyMVx1MGUyMlx1MGUyM1x1MGUyNFx1MGUyNVx1MGUyNlx1MGUyN1x1MGUyOFx1MGUy''@;'; put 'put ''OVx1MGUyYVx1MGUyYlx1MGUyY1x1MGUyZFx1MGUyZVx1MGUyZlx1MGUzMFx1MGUzMVx1MGUzMlx1MGUzM1x1MGUzNFx1MGUzNVx1MGUzNlx1MGUzN1x1MGUzOFx1MGUzOVx1MGUzYVx1MGU0OVx1MGU0YVx1MGU0Ylx1MjBhY1x1MGUzZlx1MGU0MFx1MGU0MVx1MGU0Mlx1MGU0M1x1MGU0NFx1''@;'; put 'put ''MGU0NVx1MGU0Nlx1MGU0N1x1MGU0OFx1MGU0OVx1MGU0YVx1MGU0Ylx1MGU0Y1x1MGU0ZFx1MGU0ZVx1MGU0Zlx1MGU1MFx1MGU1MVx1MGU1Mlx1MGU1M1x1MGU1NFx1MGU1NVx1MGU1Nlx1MGU1N1x1MGU1OFx1MGU1OVx1MGU1YVx1MGU1Ylx4YTJceGFjXHhhNlx4YTAifSxpYm0xMTYxOiJj''@;'; put 'put ''cDExNjEiLGNzaWJtMTE2MToiY3AxMTYxIixjcDExNjI6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUyMGFjXHg4MVx4ODJceDgzXHg4NFx1MjAyNlx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUy''@;'; put 'put ''MDE0XHg5OFx4OTlceDlhXHg5Ylx4OWNceDlkXHg5ZVx4OWZceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1''@;'; put 'put ''XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUw''@;'; put 'put ''ZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRj''@;'; put 'put ''XHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn0saWJtMTE2MjoiY3AxMTYyIixjc2libTExNjI6ImNwMTE2MiIsY3AxMTYzOnt0eXBl''@;'; put 'put ''OiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YTFceGEyXHhhM1x1MjBh''@;'; put 'put ''Y1x4YTVceGE2XHhhN1x1MDE1M1x4YTlceGFhXHhhYlx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHUwMTc4XHhiNVx4YjZceGI3XHUwMTUyXHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx4YzBceGMxXHhjMlx1MDEwMlx4YzRceGM1XHhjNlx4YzdceGM4XHhjOVx4Y2FceGNi''@;'; put 'put ''XHUwMzAwXHhjZFx4Y2VceGNmXHUwMTEwXHhkMVx1MDMwOVx4ZDNceGQ0XHUwMWEwXHhkNlx4ZDdceGQ4XHhkOVx4ZGFceGRiXHhkY1x1MDFhZlx1MDMwM1x4ZGZceGUwXHhlMVx4ZTJcdTAxMDNceGU0XHhlNVx4ZTZceGU3XHhlOFx4ZTlceGVhXHhlYlx1MDMwMVx4ZWRceGVlXHhlZlx1MDEx''@;'; put 'put ''MVx4ZjFcdTAzMjNceGYzXHhmNFx1MDFhMVx4ZjZceGY3XHhmOFx4ZjlceGZhXHhmYlx4ZmNcdTAxYjBcdTIwYWJceGZmIn0saWJtMTE2MzoiY3AxMTYzIixjc2libTExNjM6ImNwMTE2MyIsbWFjY3JvYXRpYW46e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2''@;'; put 'put ''XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHUwMTYwXHUyMTIyXHhiNFx4YThc''@;'; put 'put ''dTIyNjBcdTAxN2RceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx1MjIwNlx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAxNjFcdTIyMmJceGFhXHhiYVx1MjEyNlx1MDE3ZVx4ZjhceGJmXHhhMVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTAxMDZceGFiXHUwMTBjXHUyMDI2XHhhMFx4YzBceGMz''@;'; put 'put ''XHhkNVx1MDE1Mlx1MDE1M1x1MDExMFx1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdWZmZmRceGE5XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx4YzZceGJiXHUyMDEzXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJcdTAxMDdceGMxXHUwMTBkXHhjOFx4Y2RceGNlXHhj''@;'; put 'put ''Zlx4Y2NceGQzXHhkNFx1MDExMVx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFmXHUwM2MwXHhjYlx1MDJkYVx4YjhceGNhXHhlNlx1MDJjNyJ9LG1hY2N5cmlsbGljOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1''@;'; put 'put ''MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MjAyMFx4YjBc''@;'; put 'put ''eGEyXHhhM1x4YTdcdTIwMjJceGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhiNVx1MjIwMlx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1''@;'; put 'put ''MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUw''@;'; put 'put ''NDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4''@;'; put 'put ''XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHhhNCJ9LG1hY2dyZWVrOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGI5XHhiMlx4YzlceGIzXHhkNlx4ZGNcdTAzODVceGUwXHhlMlx4ZTRcdTAzODRceGE4XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGEzXHUyMTIyXHhlZVx4''@;'; put 'put ''ZWZcdTIwMjJceGJkXHUyMDMwXHhmNFx4ZjZceGE2XHhhZFx4ZjlceGZiXHhmY1x1MjAyMFx1MDM5M1x1MDM5NFx1MDM5OFx1MDM5Ylx1MDM5ZVx1MDNhMFx4ZGZceGFlXHhhOVx1MDNhM1x1MDNhYVx4YTdcdTIyNjBceGIwXHUwMzg3XHUwMzkxXHhiMVx1MjI2NFx1MjI2NVx4YTVcdTAzOTJc''@;'; put 'put ''dTAzOTVcdTAzOTZcdTAzOTdcdTAzOTlcdTAzOWFcdTAzOWNcdTAzYTZcdTAzYWJcdTAzYThcdTAzYTlcdTAzYWNcdTAzOWRceGFjXHUwMzlmXHUwM2ExXHUyMjQ4XHUwM2E0XHhhYlx4YmJcdTIwMjZceGEwXHUwM2E1XHUwM2E3XHUwMzg2XHUwMzg4XHUwMTUzXHUyMDEzXHUyMDE1XHUyMDFj''@;'; put 'put ''XHUyMDFkXHUyMDE4XHUyMDE5XHhmN1x1MDM4OVx1MDM4YVx1MDM4Y1x1MDM4ZVx1MDNhZFx1MDNhZVx1MDNhZlx1MDNjY1x1MDM4Zlx1MDNjZFx1MDNiMVx1MDNiMlx1MDNjOFx1MDNiNFx1MDNiNVx1MDNjNlx1MDNiM1x1MDNiN1x1MDNiOVx1MDNiZVx1MDNiYVx1MDNiYlx1MDNiY1x1MDNi''@;'; put 'put ''ZFx1MDNiZlx1MDNjMFx1MDNjZVx1MDNjMVx1MDNjM1x1MDNjNFx1MDNiOFx1MDNjOVx1MDNjMlx1MDNjN1x1MDNjNVx1MDNiNlx1MDNjYVx1MDNjYlx1MDM5MFx1MDNiMFx1ZmZmZCJ9LG1hY2ljZWxhbmQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhk''@;'; put 'put ''Y1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNceGRkXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4''@;'; put 'put ''YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1''@;'; put 'put ''M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx4ZDBceGYwXHhkZVx4ZmVceGZkXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4''@;'; put 'put ''ZGFceGRiXHhkOVx1MDEzMVx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjcm9tYW46e3R5cGU6Il9zYmNzIixjaGFyczoiXHhjNFx4YzVceGM3XHhjOVx4ZDFceGQ2XHhkY1x4ZTFceGUwXHhlMlx4ZTRceGUzXHhlNVx4ZTdceGU5''@;'; put 'put ''XHhlOFx4ZWFceGViXHhlZFx4ZWNceGVlXHhlZlx4ZjFceGYzXHhmMlx4ZjRceGY2XHhmNVx4ZmFceGY5XHhmYlx4ZmNcdTIwMjBceGIwXHhhMlx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx4YjRceGE4XHUyMjYwXHhjNlx4ZDhcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhh''@;'; put 'put ''NVx4YjVcdTIyMDJcdTIyMTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx4ZTZceGY4XHhiZlx4YTFceGFjXHUyMjFhXHUwMTkyXHUyMjQ4XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHhjMFx4YzNceGQ1XHUwMTUyXHUwMTUzXHUyMDEzXHUyMDE0XHUyMDFjXHUyMDFkXHUyMDE4''@;'; put 'put ''XHUyMDE5XHhmN1x1MjVjYVx4ZmZcdTAxNzhcdTIwNDRceGE0XHUyMDM5XHUyMDNhXHVmYjAxXHVmYjAyXHUyMDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1MDEzMVx1MDJj''@;'; put 'put ''Nlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjcm9tYW5pYTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhl''@;'; put 'put ''Y1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBcdTAxMDJcdTAxNWVcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHhhNVx4YjVcdTIyMDJcdTIy''@;'; put 'put ''MTFcdTIyMGZcdTAzYzBcdTIyMmJceGFhXHhiYVx1MjEyNlx1MDEwM1x1MDE1Zlx4YmZceGExXHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4Zjdc''@;'; put 'put ''dTI1Y2FceGZmXHUwMTc4XHUyMDQ0XHhhNFx1MjAzOVx1MjAzYVx1MDE2Mlx1MDE2M1x1MjAyMVx4YjdcdTIwMWFcdTIwMWVcdTIwMzBceGMyXHhjYVx4YzFceGNiXHhjOFx4Y2RceGNlXHhjZlx4Y2NceGQzXHhkNFx1ZmZmZFx4ZDJceGRhXHhkYlx4ZDlcdTAxMzFcdTAyYzZcdTAyZGNceGFm''@;'; put 'put ''XHUwMmQ4XHUwMmQ5XHUwMmRhXHhiOFx1MDJkZFx1MDJkYlx1MDJjNyJ9LG1hY3RoYWk6e3R5cGU6Il9zYmNzIixjaGFyczoiXHhhYlx4YmJcdTIwMjZcdWY4OGNcdWY4OGZcdWY4OTJcdWY4OTVcdWY4OThcdWY4OGJcdWY4OGVcdWY4OTFcdWY4OTRcdWY4OTdcdTIwMWNcdTIwMWRcdWY4OTlc''@;'; put 'put ''dWZmZmRcdTIwMjJcdWY4ODRcdWY4ODlcdWY4ODVcdWY4ODZcdWY4ODdcdWY4ODhcdWY4OGFcdWY4OGRcdWY4OTBcdWY4OTNcdWY4OTZcdTIwMThcdTIwMTlcdWZmZmRceGEwXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBi''@;'; put 'put ''XHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUwZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUw''@;'; put 'put ''ZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZWZmXHUyMDBiXHUyMDEzXHUyMDE0XHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQy''@;'; put 'put ''XHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUyMTIyXHUwZTRmXHUwZTUwXHUwZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHhhZVx4YTlcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmQifSxtYWN0dXJraXNoOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4YzRceGM1XHhjN1x4YzlceGQxXHhkNlx4ZGNceGUxXHhlMFx4ZTJceGU0XHhlM1x4ZTVceGU3XHhlOVx4ZThceGVhXHhlYlx4ZWRceGVjXHhlZVx4ZWZceGYxXHhmM1x4ZjJceGY0XHhmNlx4ZjVceGZhXHhmOVx4ZmJc''@;'; put 'put ''eGZjXHUyMDIwXHhiMFx4YTJceGEzXHhhN1x1MjAyMlx4YjZceGRmXHhhZVx4YTlcdTIxMjJceGI0XHhhOFx1MjI2MFx4YzZceGQ4XHUyMjFlXHhiMVx1MjI2NFx1MjI2NVx4YTVceGI1XHUyMjAyXHUyMjExXHUyMjBmXHUwM2MwXHUyMjJiXHhhYVx4YmFcdTIxMjZceGU2XHhmOFx4YmZceGEx''@;'; put 'put ''XHhhY1x1MjIxYVx1MDE5Mlx1MjI0OFx1MjIwNlx4YWJceGJiXHUyMDI2XHhhMFx4YzBceGMzXHhkNVx1MDE1Mlx1MDE1M1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FceGZmXHUwMTc4XHUwMTFlXHUwMTFmXHUwMTMwXHUwMTMxXHUwMTVlXHUwMTVmXHUy''@;'; put 'put ''MDIxXHhiN1x1MjAxYVx1MjAxZVx1MjAzMFx4YzJceGNhXHhjMVx4Y2JceGM4XHhjZFx4Y2VceGNmXHhjY1x4ZDNceGQ0XHVmZmZkXHhkMlx4ZGFceGRiXHhkOVx1ZmZmZFx1MDJjNlx1MDJkY1x4YWZcdTAyZDhcdTAyZDlcdTAyZGFceGI4XHUwMmRkXHUwMmRiXHUwMmM3In0sbWFjdWtyYWlu''@;'; put 'put ''ZTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTA0MTBcdTA0MTFcdTA0MTJcdTA0MTNcdTA0MTRcdTA0MTVcdTA0MTZcdTA0MTdcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MjRcdTA0MjVcdTA0MjZcdTA0''@;'; put 'put ''MjdcdTA0MjhcdTA0MjlcdTA0MmFcdTA0MmJcdTA0MmNcdTA0MmRcdTA0MmVcdTA0MmZcdTIwMjBceGIwXHUwNDkwXHhhM1x4YTdcdTIwMjJceGI2XHUwNDA2XHhhZVx4YTlcdTIxMjJcdTA0MDJcdTA0NTJcdTIyNjBcdTA0MDNcdTA0NTNcdTIyMWVceGIxXHUyMjY0XHUyMjY1XHUwNDU2XHhi''@;'; put 'put ''NVx1MDQ5MVx1MDQwOFx1MDQwNFx1MDQ1NFx1MDQwN1x1MDQ1N1x1MDQwOVx1MDQ1OVx1MDQwYVx1MDQ1YVx1MDQ1OFx1MDQwNVx4YWNcdTIyMWFcdTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBcdTA0MGJcdTA0NWJcdTA0MGNcdTA0NWNcdTA0NTVcdTIwMTNcdTIwMTRcdTIw''@;'; put 'put ''MWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyMDFlXHUwNDBlXHUwNDVlXHUwNDBmXHUwNDVmXHUyMTE2XHUwNDAxXHUwNDUxXHUwNDRmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUw''@;'; put 'put ''NDNlXHUwNDNmXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHhhNCJ9LGtvaThyOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxNFx1''@;'; put 'put ''MjUxOFx1MjUxY1x1MjUyNFx1MjUyY1x1MjUzNFx1MjUzY1x1MjU4MFx1MjU4NFx1MjU4OFx1MjU4Y1x1MjU5MFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjMyMFx1MjVhMFx1MjIxOVx1MjIxYVx1MjI0OFx1MjI2NFx1MjI2NVx4YTBcdTIzMjFceGIwXHhiMlx4YjdceGY3XHUyNTUwXHUyNTUxXHUy''@;'; put 'put ''NTUyXHUwNDUxXHUyNTUzXHUyNTU0XHUyNTU1XHUyNTU2XHUyNTU3XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUyNTVjXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUwNDAxXHUyNTYyXHUyNTYzXHUyNTY0XHUyNTY1XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUyNTZi''@;'; put 'put ''XHUyNTZjXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0''@;'; put 'put ''Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1''@;'; put 'put ''MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGtvaTh1Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjUxY1x1MjUyNFx1MjUyY1x1MjUzNFx1MjUzY1x1MjU4''@;'; put 'put ''MFx1MjU4NFx1MjU4OFx1MjU4Y1x1MjU5MFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjMyMFx1MjVhMFx1MjIxOVx1MjIxYVx1MjI0OFx1MjI2NFx1MjI2NVx4YTBcdTIzMjFceGIwXHhiMlx4YjdceGY3XHUyNTUwXHUyNTUxXHUyNTUyXHUwNDUxXHUwNDU0XHUyNTU0XHUwNDU2XHUwNDU3XHUyNTU3''@;'; put 'put ''XHUyNTU4XHUyNTU5XHUyNTVhXHUyNTViXHUwNDkxXHUyNTVkXHUyNTVlXHUyNTVmXHUyNTYwXHUyNTYxXHUwNDAxXHUwNDA0XHUyNTYzXHUwNDA2XHUwNDA3XHUyNTY2XHUyNTY3XHUyNTY4XHUyNTY5XHUyNTZhXHUwNDkwXHUyNTZjXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQz''@;'; put 'put ''NFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1''@;'; put 'put ''MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQy''@;'; put 'put ''OFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGtvaThydTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcdTI1MDBcdTI1MDJcdTI1MGNcdTI1MTBcdTI1MTRcdTI1MThcdTI1MWNcdTI1MjRcdTI1MmNcdTI1MzRcdTI1M2NcdTI1ODBcdTI1ODRcdTI1ODhcdTI1OGNcdTI1OTBcdTI1OTFcdTI1OTJc''@;'; put 'put ''dTI1OTNcdTIzMjBcdTI1YTBcdTIyMTlcdTIyMWFcdTIyNDhcdTIyNjRcdTIyNjVceGEwXHUyMzIxXHhiMFx4YjJceGI3XHhmN1x1MjU1MFx1MjU1MVx1MjU1Mlx1MDQ1MVx1MDQ1NFx1MjU1NFx1MDQ1Nlx1MDQ1N1x1MjU1N1x1MjU1OFx1MjU1OVx1MjU1YVx1MjU1Ylx1MDQ5MVx1MDQ1ZVx1''@;'; put 'put ''MjU1ZVx1MjU1Zlx1MjU2MFx1MjU2MVx1MDQwMVx1MDQwNFx1MjU2M1x1MDQwNlx1MDQwN1x1MjU2Nlx1MjU2N1x1MjU2OFx1MjU2OVx1MjU2YVx1MDQ5MFx1MDQwZVx4YTlcdTA0NGVcdTA0MzBcdTA0MzFcdTA0NDZcdTA0MzRcdTA0MzVcdTA0NDRcdTA0MzNcdTA0NDVcdTA0MzhcdTA0Mzlc''@;'; put 'put ''dTA0M2FcdTA0M2JcdTA0M2NcdTA0M2RcdTA0M2VcdTA0M2ZcdTA0NGZcdTA0NDBcdTA0NDFcdTA0NDJcdTA0NDNcdTA0MzZcdTA0MzJcdTA0NGNcdTA0NGJcdTA0MzdcdTA0NDhcdTA0NGRcdTA0NDlcdTA0NDdcdTA0NGFcdTA0MmVcdTA0MTBcdTA0MTFcdTA0MjZcdTA0MTRcdTA0MTVcdTA0''@;'; put 'put ''MjRcdTA0MTNcdTA0MjVcdTA0MThcdTA0MTlcdTA0MWFcdTA0MWJcdTA0MWNcdTA0MWRcdTA0MWVcdTA0MWZcdTA0MmZcdTA0MjBcdTA0MjFcdTA0MjJcdTA0MjNcdTA0MTZcdTA0MTJcdTA0MmNcdTA0MmJcdTA0MTdcdTA0MjhcdTA0MmRcdTA0MjlcdTA0MjdcdTA0MmEifSxrb2k4dDp7dHlw''@;'; put 'put ''ZToiX3NiY3MiLGNoYXJzOiJcdTA0OWJcdTA0OTNcdTIwMWFcdTA0OTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFcdWZmZmRcdTIwMzBcdTA0YjNcdTIwMzlcdTA0YjJcdTA0YjdcdTA0YjZcdWZmZmRcdTA0OWFcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdWZm''@;'; put 'put ''ZmRcdTIxMjJcdWZmZmRcdTIwM2FcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdTA0ZWZcdTA0ZWVcdTA0NTFceGE0XHUwNGUzXHhhNlx4YTdcdWZmZmRcdWZmZmRcdWZmZmRceGFiXHhhY1x4YWRceGFlXHVmZmZkXHhiMFx4YjFceGIyXHUwNDAxXHVmZmZkXHUwNGUyXHhiNlx4Yjdc''@;'; put 'put ''dWZmZmRcdTIxMTZcdWZmZmRceGJiXHVmZmZkXHVmZmZkXHVmZmZkXHhhOVx1MDQ0ZVx1MDQzMFx1MDQzMVx1MDQ0Nlx1MDQzNFx1MDQzNVx1MDQ0NFx1MDQzM1x1MDQ0NVx1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0Zlx1MDQ0MFx1MDQ0MVx1''@;'; put 'put ''MDQ0Mlx1MDQ0M1x1MDQzNlx1MDQzMlx1MDQ0Y1x1MDQ0Ylx1MDQzN1x1MDQ0OFx1MDQ0ZFx1MDQ0OVx1MDQ0N1x1MDQ0YVx1MDQyZVx1MDQxMFx1MDQxMVx1MDQyNlx1MDQxNFx1MDQxNVx1MDQyNFx1MDQxM1x1MDQyNVx1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQx''@;'; put 'put ''ZVx1MDQxZlx1MDQyZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQxNlx1MDQxMlx1MDQyY1x1MDQyYlx1MDQxN1x1MDQyOFx1MDQyZFx1MDQyOVx1MDQyN1x1MDQyYSJ9LGFybXNjaWk4Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4''@;'; put 'put ''OFx4ODlceDhhXHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx1ZmZmZFx1MDU4N1x1MDU4OSkoXHhiYlx4YWJcdTIwMTQuXHUwNTVkLC1cdTA1OGFcdTIwMjZcdTA1NWNcdTA1NWJc''@;'; put 'put ''dTA1NWVcdTA1MzFcdTA1NjFcdTA1MzJcdTA1NjJcdTA1MzNcdTA1NjNcdTA1MzRcdTA1NjRcdTA1MzVcdTA1NjVcdTA1MzZcdTA1NjZcdTA1MzdcdTA1NjdcdTA1MzhcdTA1NjhcdTA1MzlcdTA1NjlcdTA1M2FcdTA1NmFcdTA1M2JcdTA1NmJcdTA1M2NcdTA1NmNcdTA1M2RcdTA1NmRcdTA1''@;'; put 'put ''M2VcdTA1NmVcdTA1M2ZcdTA1NmZcdTA1NDBcdTA1NzBcdTA1NDFcdTA1NzFcdTA1NDJcdTA1NzJcdTA1NDNcdTA1NzNcdTA1NDRcdTA1NzRcdTA1NDVcdTA1NzVcdTA1NDZcdTA1NzZcdTA1NDdcdTA1NzdcdTA1NDhcdTA1NzhcdTA1NDlcdTA1NzlcdTA1NGFcdTA1N2FcdTA1NGJcdTA1N2Jc''@;'; put 'put ''dTA1NGNcdTA1N2NcdTA1NGRcdTA1N2RcdTA1NGVcdTA1N2VcdTA1NGZcdTA1N2ZcdTA1NTBcdTA1ODBcdTA1NTFcdTA1ODFcdTA1NTJcdTA1ODJcdTA1NTNcdTA1ODNcdTA1NTRcdTA1ODRcdTA1NTVcdTA1ODVcdTA1NTZcdTA1ODZcdTA1NWFcdWZmZmQifSxyazEwNDg6e3R5cGU6Il9zYmNz''@;'; put 'put ''IixjaGFyczoiXHUwNDAyXHUwNDAzXHUyMDFhXHUwNDUzXHUyMDFlXHUyMDI2XHUyMDIwXHUyMDIxXHUyMGFjXHUyMDMwXHUwNDA5XHUyMDM5XHUwNDBhXHUwNDlhXHUwNGJhXHUwNDBmXHUwNDUyXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHVmZmZkXHUyMTIy''@;'; put 'put ''XHUwNDU5XHUyMDNhXHUwNDVhXHUwNDliXHUwNGJiXHUwNDVmXHhhMFx1MDRiMFx1MDRiMVx1MDRkOFx4YTRcdTA0ZThceGE2XHhhN1x1MDQwMVx4YTlcdTA0OTJceGFiXHhhY1x4YWRceGFlXHUwNGFlXHhiMFx4YjFcdTA0MDZcdTA0NTZcdTA0ZTlceGI1XHhiNlx4YjdcdTA0NTFcdTIxMTZc''@;'; put 'put ''dTA0OTNceGJiXHUwNGQ5XHUwNGEyXHUwNGEzXHUwNGFmXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1''@;'; put 'put ''XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUwNDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUwNDQwXHUw''@;'; put 'put ''NDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmIn0sdGN2bjp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4ZGFcdTFlZTRceDAzXHUxZWVhXHUxZWVjXHUxZWVlXHgwN1xiXHRcblx2XGZc''@;'; put 'put ''clx4MGVceDBmXHgxMFx1MWVlOFx1MWVmMFx1MWVmMlx1MWVmNlx1MWVmOFx4ZGRcdTFlZjRceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXF1eX2BhYmNkZWZnaGlqa2xt''@;'; put 'put ''bm9wcXJzdHV2d3h5ent8fX5ceDdmXHhjMFx1MWVhMlx4YzNceGMxXHUxZWEwXHUxZWI2XHUxZWFjXHhjOFx1MWViYVx1MWViY1x4YzlcdTFlYjhcdTFlYzZceGNjXHUxZWM4XHUwMTI4XHhjZFx1MWVjYVx4ZDJcdTFlY2VceGQ1XHhkM1x1MWVjY1x1MWVkOFx1MWVkY1x1MWVkZVx1MWVlMFx1''@;'; put 'put ''MWVkYVx1MWVlMlx4ZDlcdTFlZTZcdTAxNjhceGEwXHUwMTAyXHhjMlx4Y2FceGQ0XHUwMWEwXHUwMWFmXHUwMTEwXHUwMTAzXHhlMlx4ZWFceGY0XHUwMWExXHUwMWIwXHUwMTExXHUxZWIwXHUwMzAwXHUwMzA5XHUwMzAzXHUwMzAxXHUwMzIzXHhlMFx1MWVhM1x4ZTNceGUxXHUxZWExXHUx''@;'; put 'put ''ZWIyXHUxZWIxXHUxZWIzXHUxZWI1XHUxZWFmXHUxZWI0XHUxZWFlXHUxZWE2XHUxZWE4XHUxZWFhXHUxZWE0XHUxZWMwXHUxZWI3XHUxZWE3XHUxZWE5XHUxZWFiXHUxZWE1XHUxZWFkXHhlOFx1MWVjMlx1MWViYlx1MWViZFx4ZTlcdTFlYjlcdTFlYzFcdTFlYzNcdTFlYzVcdTFlYmZcdTFl''@;'; put 'put ''YzdceGVjXHUxZWM5XHUxZWM0XHUxZWJlXHUxZWQyXHUwMTI5XHhlZFx1MWVjYlx4ZjJcdTFlZDRcdTFlY2ZceGY1XHhmM1x1MWVjZFx1MWVkM1x1MWVkNVx1MWVkN1x1MWVkMVx1MWVkOVx1MWVkZFx1MWVkZlx1MWVlMVx1MWVkYlx1MWVlM1x4ZjlcdTFlZDZcdTFlZTdcdTAxNjlceGZhXHUx''@;'; put 'put ''ZWU1XHUxZWViXHUxZWVkXHUxZWVmXHUxZWU5XHUxZWYxXHUxZWYzXHUxZWY3XHUxZWY5XHhmZFx1MWVmNVx1MWVkMCJ9LGdlb3JnaWFuYWNhZGVteTp7dHlwZToiX3NiY3MiLGNoYXJzOiJceDgwXHg4MVx1MjAxYVx1MDE5Mlx1MjAxZVx1MjAyNlx1MjAyMFx1MjAyMVx1MDJjNlx1MjAzMFx1''@;'; put 'put ''MDE2MFx1MjAzOVx1MDE1Mlx4OGRceDhlXHg4Zlx4OTBcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjJcdTIwMTNcdTIwMTRcdTAyZGNcdTIxMjJcdTAxNjFcdTIwM2FcdTAxNTNceDlkXHg5ZVx1MDE3OFx4YTBceGExXHhhMlx4YTNceGE0XHhhNVx4YTZceGE3XHhhOFx4YTlceGFhXHhh''@;'; put 'put ''Ylx4YWNceGFkXHhhZVx4YWZceGIwXHhiMVx4YjJceGIzXHhiNFx4YjVceGI2XHhiN1x4YjhceGI5XHhiYVx4YmJceGJjXHhiZFx4YmVceGJmXHUxMGQwXHUxMGQxXHUxMGQyXHUxMGQzXHUxMGQ0XHUxMGQ1XHUxMGQ2XHUxMGQ3XHUxMGQ4XHUxMGQ5XHUxMGRhXHUxMGRiXHUxMGRjXHUxMGRk''@;'; put 'put ''XHUxMGRlXHUxMGRmXHUxMGUwXHUxMGUxXHUxMGUyXHUxMGUzXHUxMGU0XHUxMGU1XHUxMGU2XHUxMGU3XHUxMGU4XHUxMGU5XHUxMGVhXHUxMGViXHUxMGVjXHUxMGVkXHUxMGVlXHUxMGVmXHUxMGYwXHUxMGYxXHUxMGYyXHUxMGYzXHUxMGY0XHUxMGY1XHUxMGY2XHhlN1x4ZThceGU5XHhl''@;'; put 'put ''YVx4ZWJceGVjXHhlZFx4ZWVceGVmXHhmMFx4ZjFceGYyXHhmM1x4ZjRceGY1XHhmNlx4ZjdceGY4XHhmOVx4ZmFceGZiXHhmY1x4ZmRceGZlXHhmZiJ9LGdlb3JnaWFucHM6e3R5cGU6Il9zYmNzIixjaGFyczoiXHg4MFx4ODFcdTIwMWFcdTAxOTJcdTIwMWVcdTIwMjZcdTIwMjBcdTIwMjFc''@;'; put 'put ''dTAyYzZcdTIwMzBcdTAxNjBcdTIwMzlcdTAxNTJceDhkXHg4ZVx4OGZceDkwXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwMmRjXHUyMTIyXHUwMTYxXHUyMDNhXHUwMTUzXHg5ZFx4OWVcdTAxNzhceGEwXHhhMVx4YTJceGEzXHhhNFx4YTVceGE2XHhhN1x4''@;'; put 'put ''YThceGE5XHhhYVx4YWJceGFjXHhhZFx4YWVceGFmXHhiMFx4YjFceGIyXHhiM1x4YjRceGI1XHhiNlx4YjdceGI4XHhiOVx4YmFceGJiXHhiY1x4YmRceGJlXHhiZlx1MTBkMFx1MTBkMVx1MTBkMlx1MTBkM1x1MTBkNFx1MTBkNVx1MTBkNlx1MTBmMVx1MTBkN1x1MTBkOFx1MTBkOVx1MTBk''@;'; put 'put ''YVx1MTBkYlx1MTBkY1x1MTBmMlx1MTBkZFx1MTBkZVx1MTBkZlx1MTBlMFx1MTBlMVx1MTBlMlx1MTBmM1x1MTBlM1x1MTBlNFx1MTBlNVx1MTBlNlx1MTBlN1x1MTBlOFx1MTBlOVx1MTBlYVx1MTBlYlx1MTBlY1x1MTBlZFx1MTBlZVx1MTBmNFx1MTBlZlx1MTBmMFx1MTBmNVx4ZTZceGU3''@;'; put 'put ''XHhlOFx4ZTlceGVhXHhlYlx4ZWNceGVkXHhlZVx4ZWZceGYwXHhmMVx4ZjJceGYzXHhmNFx4ZjVceGY2XHhmN1x4ZjhceGY5XHhmYVx4ZmJceGZjXHhmZFx4ZmVceGZmIn0scHQxNTQ6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDk2XHUwNDkyXHUwNGVlXHUwNDkzXHUyMDFlXHUyMDI2XHUw''@;'; put 'put ''NGI2XHUwNGFlXHUwNGIyXHUwNGFmXHUwNGEwXHUwNGUyXHUwNGEyXHUwNDlhXHUwNGJhXHUwNGI4XHUwNDk3XHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUyMDIyXHUyMDEzXHUyMDE0XHUwNGIzXHUwNGI3XHUwNGExXHUwNGUzXHUwNGEzXHUwNDliXHUwNGJiXHUwNGI5XHhhMFx1MDQwZVx1''@;'; put 'put ''MDQ1ZVx1MDQwOFx1MDRlOFx1MDQ5OFx1MDRiMFx4YTdcdTA0MDFceGE5XHUwNGQ4XHhhYlx4YWNcdTA0ZWZceGFlXHUwNDljXHhiMFx1MDRiMVx1MDQwNlx1MDQ1Nlx1MDQ5OVx1MDRlOVx4YjZceGI3XHUwNDUxXHUyMTE2XHUwNGQ5XHhiYlx1MDQ1OFx1MDRhYVx1MDRhYlx1MDQ5ZFx1MDQx''@;'; put 'put ''MFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQxZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1''@;'; put 'put ''MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0''@;'; put 'put ''N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0ZiJ9LHZpc2NpaTp7dHlwZToiX3NiY3MiLGNoYXJzOiJcMFx4MDFcdTFlYjJceDAzXHgwNFx1MWViNFx1MWVhYVx4MDdcYlx0XG5cdlxmXHJceDBlXHgwZlx4MTBceDExXHgxMlx4MTNcdTFlZjZceDE1XHgx''@;'; put 'put ''Nlx4MTdceDE4XHUxZWY4XHgxYVx4MWJceDFjXHgxZFx1MWVmNFx4MWYgIVwiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXFxdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+XHg3Zlx1MWVhMFx1MWVhZVx1MWViMFx1MWVi''@;'; put 'put ''Nlx1MWVhNFx1MWVhNlx1MWVhOFx1MWVhY1x1MWViY1x1MWViOFx1MWViZVx1MWVjMFx1MWVjMlx1MWVjNFx1MWVjNlx1MWVkMFx1MWVkMlx1MWVkNFx1MWVkNlx1MWVkOFx1MWVlMlx1MWVkYVx1MWVkY1x1MWVkZVx1MWVjYVx1MWVjZVx1MWVjY1x1MWVjOFx1MWVlNlx1MDE2OFx1MWVlNFx1''@;'; put 'put ''MWVmMlx4ZDVcdTFlYWZcdTFlYjFcdTFlYjdcdTFlYTVcdTFlYTdcdTFlYTlcdTFlYWRcdTFlYmRcdTFlYjlcdTFlYmZcdTFlYzFcdTFlYzNcdTFlYzVcdTFlYzdcdTFlZDFcdTFlZDNcdTFlZDVcdTFlZDdcdTFlZTBcdTAxYTBcdTFlZDlcdTFlZGRcdTFlZGZcdTFlY2JcdTFlZjBcdTFlZThc''@;'; put 'put ''dTFlZWFcdTFlZWNcdTAxYTFcdTFlZGJcdTAxYWZceGMwXHhjMVx4YzJceGMzXHUxZWEyXHUwMTAyXHUxZWIzXHUxZWI1XHhjOFx4YzlceGNhXHUxZWJhXHhjY1x4Y2RcdTAxMjhcdTFlZjNcdTAxMTBcdTFlZTlceGQyXHhkM1x4ZDRcdTFlYTFcdTFlZjdcdTFlZWJcdTFlZWRceGQ5XHhkYVx1''@;'; put 'put ''MWVmOVx1MWVmNVx4ZGRcdTFlZTFcdTAxYjBceGUwXHhlMVx4ZTJceGUzXHUxZWEzXHUwMTAzXHUxZWVmXHUxZWFiXHhlOFx4ZTlceGVhXHUxZWJiXHhlY1x4ZWRcdTAxMjlcdTFlYzlcdTAxMTFcdTFlZjFceGYyXHhmM1x4ZjRceGY1XHUxZWNmXHUxZWNkXHUxZWU1XHhmOVx4ZmFcdTAxNjlc''@;'; put 'put ''dTFlZTdceGZkXHUxZWUzXHUxZWVlIn0saXNvNjQ2Y246e3R5cGU6Il9zYmNzIixjaGFyczoiXDBceDAxXHgwMlx4MDNceDA0XHgwNVx4MDZceDA3XGJcdFxuXHZcZlxyXHgwZVx4MGZceDEwXHgxMVx4MTJceDEzXHgxNFx4MTVceDE2XHgxN1x4MThceDE5XHgxYVx4MWJceDFjXHgxZFx4MWVc''@;'; put 'put ''eDFmICFcIiNceGE1JSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XHUyMDNlXHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGlzbzY0NmpwOnt0eXBlOiJfc2JjcyIsY2hhcnM6IlwwXHgwMVx4MDJceDAzXHgwNFx4MDVceDA2XHgwN1xiXHRcblx2XGZcclx4MGVceDBmXHgxMFx4MTFceDEyXHgxM1x4MTRceDE1XHgx''@;'; put 'put ''Nlx4MTdceDE4XHgxOVx4MWFceDFiXHgxY1x4MWRceDFlXHgxZiAhXCIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltceGE1XV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9XHUyMDNlXHg3Zlx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZm''@;'; put 'put ''ZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1''@;'; put 'put ''ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZFx1ZmZmZCJ9LGhwcm9tYW44Ont0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHg4Mlx4ODNceDg0XHg4NVx4ODZceDg3XHg4OFx4ODlceDhh''@;'; put 'put ''XHg4Ylx4OGNceDhkXHg4ZVx4OGZceDkwXHg5MVx4OTJceDkzXHg5NFx4OTVceDk2XHg5N1x4OThceDk5XHg5YVx4OWJceDljXHg5ZFx4OWVceDlmXHhhMFx4YzBceGMyXHhjOFx4Y2FceGNiXHhjZVx4Y2ZceGI0XHUwMmNiXHUwMmM2XHhhOFx1MDJkY1x4ZDlceGRiXHUyMGE0XHhhZlx4ZGRc''@;'; put 'put ''eGZkXHhiMFx4YzdceGU3XHhkMVx4ZjFceGExXHhiZlx4YTRceGEzXHhhNVx4YTdcdTAxOTJceGEyXHhlMlx4ZWFceGY0XHhmYlx4ZTFceGU5XHhmM1x4ZmFceGUwXHhlOFx4ZjJceGY5XHhlNFx4ZWJceGY2XHhmY1x4YzVceGVlXHhkOFx4YzZceGU1XHhlZFx4ZjhceGU2XHhjNFx4ZWNceGQ2''@;'; put 'put ''XHhkY1x4YzlceGVmXHhkZlx4ZDRceGMxXHhjM1x4ZTNceGQwXHhmMFx4Y2RceGNjXHhkM1x4ZDJceGQ1XHhmNVx1MDE2MFx1MDE2MVx4ZGFcdTAxNzhceGZmXHhkZVx4ZmVceGI3XHhiNVx4YjZceGJlXHUyMDE0XHhiY1x4YmRceGFhXHhiYVx4YWJcdTI1YTBceGJiXHhiMVx1ZmZmZCJ9LG1h''@;'; put 'put ''Y2ludG9zaDp7dHlwZToiX3NiY3MiLGNoYXJzOiJceGM0XHhjNVx4YzdceGM5XHhkMVx4ZDZceGRjXHhlMVx4ZTBceGUyXHhlNFx4ZTNceGU1XHhlN1x4ZTlceGU4XHhlYVx4ZWJceGVkXHhlY1x4ZWVceGVmXHhmMVx4ZjNceGYyXHhmNFx4ZjZceGY1XHhmYVx4ZjlceGZiXHhmY1x1MjAyMFx4''@;'; put 'put ''YjBceGEyXHhhM1x4YTdcdTIwMjJceGI2XHhkZlx4YWVceGE5XHUyMTIyXHhiNFx4YThcdTIyNjBceGM2XHhkOFx1MjIxZVx4YjFcdTIyNjRcdTIyNjVceGE1XHhiNVx1MjIwMlx1MjIxMVx1MjIwZlx1MDNjMFx1MjIyYlx4YWFceGJhXHUyMTI2XHhlNlx4ZjhceGJmXHhhMVx4YWNcdTIyMWFc''@;'; put 'put ''dTAxOTJcdTIyNDhcdTIyMDZceGFiXHhiYlx1MjAyNlx4YTBceGMwXHhjM1x4ZDVcdTAxNTJcdTAxNTNcdTIwMTNcdTIwMTRcdTIwMWNcdTIwMWRcdTIwMThcdTIwMTlceGY3XHUyNWNhXHhmZlx1MDE3OFx1MjA0NFx4YTRcdTIwMzlcdTIwM2FcdWZiMDFcdWZiMDJcdTIwMjFceGI3XHUyMDFh''@;'; put 'put ''XHUyMDFlXHUyMDMwXHhjMlx4Y2FceGMxXHhjYlx4YzhceGNkXHhjZVx4Y2ZceGNjXHhkM1x4ZDRcdWZmZmRceGQyXHhkYVx4ZGJceGQ5XHUwMTMxXHUwMmM2XHUwMmRjXHhhZlx1MDJkOFx1MDJkOVx1MDJkYVx4YjhcdTAyZGRcdTAyZGJcdTAyYzcifSxhc2NpaTp7dHlwZToiX3NiY3MiLGNo''@;'; put 'put ''YXJzOiJcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZm''@;'; put 'put ''ZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRc''@;'; put 'put ''dWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmRcdWZmZmQifSx0aXM2MjA6e3R5cGU6Il9zYmNzIixjaGFyczoiXHVmZmZkXHVmZmZkXHVmZmZkXHVm''@;'; put 'put ''ZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZk''@;'; put 'put ''XHVmZmZkXHVmZmZkXHUwZTAxXHUwZTAyXHUwZTAzXHUwZTA0XHUwZTA1XHUwZTA2XHUwZTA3XHUwZTA4XHUwZTA5XHUwZTBhXHUwZTBiXHUwZTBjXHUwZTBkXHUwZTBlXHUwZTBmXHUwZTEwXHUwZTExXHUwZTEyXHUwZTEzXHUwZTE0XHUwZTE1XHUwZTE2XHUwZTE3XHUwZTE4XHUwZTE5XHUw''@;'; put 'put ''ZTFhXHUwZTFiXHUwZTFjXHUwZTFkXHUwZTFlXHUwZTFmXHUwZTIwXHUwZTIxXHUwZTIyXHUwZTIzXHUwZTI0XHUwZTI1XHUwZTI2XHUwZTI3XHUwZTI4XHUwZTI5XHUwZTJhXHUwZTJiXHUwZTJjXHUwZTJkXHUwZTJlXHUwZTJmXHUwZTMwXHUwZTMxXHUwZTMyXHUwZTMzXHUwZTM0XHUwZTM1''@;'; put 'put ''XHUwZTM2XHUwZTM3XHUwZTM4XHUwZTM5XHUwZTNhXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkXHUwZTNmXHUwZTQwXHUwZTQxXHUwZTQyXHUwZTQzXHUwZTQ0XHUwZTQ1XHUwZTQ2XHUwZTQ3XHUwZTQ4XHUwZTQ5XHUwZTRhXHUwZTRiXHUwZTRjXHUwZTRkXHUwZTRlXHUwZTRmXHUwZTUwXHUw''@;'; put 'put ''ZTUxXHUwZTUyXHUwZTUzXHUwZTU0XHUwZTU1XHUwZTU2XHUwZTU3XHUwZTU4XHUwZTU5XHUwZTVhXHUwZTViXHVmZmZkXHVmZmZkXHVmZmZkXHVmZmZkIn19fSw2ODYxOTpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPXsxMDAyOToibWFjY2VudGV1cm8iLG1hY2NlbnRldXJvOnt0eXBl''@;'; put 'put ''OiJfc2JjcyIsY2hhcnM6Ilx4YzRcdTAxMDBcdTAxMDFceGM5XHUwMTA0XHhkNlx4ZGNceGUxXHUwMTA1XHUwMTBjXHhlNFx1MDEwZFx1MDEwNlx1MDEwN1x4ZTlcdTAxNzlcdTAxN2FcdTAxMGVceGVkXHUwMTBmXHUwMTEyXHUwMTEzXHUwMTE2XHhmM1x1MDExN1x4ZjRceGY2XHhmNVx4ZmFc''@;'; put 'put ''dTAxMWFcdTAxMWJceGZjXHUyMDIwXHhiMFx1MDExOFx4YTNceGE3XHUyMDIyXHhiNlx4ZGZceGFlXHhhOVx1MjEyMlx1MDExOVx4YThcdTIyNjBcdTAxMjNcdTAxMmVcdTAxMmZcdTAxMmFcdTIyNjRcdTIyNjVcdTAxMmJcdTAxMzZcdTIyMDJcdTIyMTFcdTAxNDJcdTAxM2JcdTAxM2NcdTAx''@;'; put 'put ''M2RcdTAxM2VcdTAxMzlcdTAxM2FcdTAxNDVcdTAxNDZcdTAxNDNceGFjXHUyMjFhXHUwMTQ0XHUwMTQ3XHUyMjA2XHhhYlx4YmJcdTIwMjZceGEwXHUwMTQ4XHUwMTUwXHhkNVx1MDE1MVx1MDE0Y1x1MjAxM1x1MjAxNFx1MjAxY1x1MjAxZFx1MjAxOFx1MjAxOVx4ZjdcdTI1Y2FcdTAxNGRc''@;'; put 'put ''dTAxNTRcdTAxNTVcdTAxNThcdTIwMzlcdTIwM2FcdTAxNTlcdTAxNTZcdTAxNTdcdTAxNjBcdTIwMWFcdTIwMWVcdTAxNjFcdTAxNWFcdTAxNWJceGMxXHUwMTY0XHUwMTY1XHhjZFx1MDE3ZFx1MDE3ZVx1MDE2YVx4ZDNceGQ0XHUwMTZiXHUwMTZlXHhkYVx1MDE2Zlx1MDE3MFx1MDE3MVx1''@;'; put 'put ''MDE3Mlx1MDE3M1x4ZGRceGZkXHUwMTM3XHUwMTdiXHUwMTQxXHUwMTdjXHUwMTIyXHUwMmM3In0sODA4OiJjcDgwOCIsaWJtODA4OiJjcDgwOCIsY3A4MDg6e3R5cGU6Il9zYmNzIixjaGFyczoiXHUwNDEwXHUwNDExXHUwNDEyXHUwNDEzXHUwNDE0XHUwNDE1XHUwNDE2XHUwNDE3XHUwNDE4''@;'; put 'put ''XHUwNDE5XHUwNDFhXHUwNDFiXHUwNDFjXHUwNDFkXHUwNDFlXHUwNDFmXHUwNDIwXHUwNDIxXHUwNDIyXHUwNDIzXHUwNDI0XHUwNDI1XHUwNDI2XHUwNDI3XHUwNDI4XHUwNDI5XHUwNDJhXHUwNDJiXHUwNDJjXHUwNDJkXHUwNDJlXHUwNDJmXHUwNDMwXHUwNDMxXHUwNDMyXHUwNDMzXHUw''@;'; put 'put ''NDM0XHUwNDM1XHUwNDM2XHUwNDM3XHUwNDM4XHUwNDM5XHUwNDNhXHUwNDNiXHUwNDNjXHUwNDNkXHUwNDNlXHUwNDNmXHUyNTkxXHUyNTkyXHUyNTkzXHUyNTAyXHUyNTI0XHUyNTYxXHUyNTYyXHUyNTU2XHUyNTU1XHUyNTYzXHUyNTUxXHUyNTU3XHUyNTVkXHUyNTVjXHUyNTViXHUyNTEw''@;'; put 'put ''XHUyNTE0XHUyNTM0XHUyNTJjXHUyNTFjXHUyNTAwXHUyNTNjXHUyNTVlXHUyNTVmXHUyNTVhXHUyNTU0XHUyNTY5XHUyNTY2XHUyNTYwXHUyNTUwXHUyNTZjXHUyNTY3XHUyNTY4XHUyNTY0XHUyNTY1XHUyNTU5XHUyNTU4XHUyNTUyXHUyNTUzXHUyNTZiXHUyNTZhXHUyNTE4XHUyNTBjXHUy''@;'; put 'put ''NTg4XHUyNTg0XHUyNThjXHUyNTkwXHUyNTgwXHUwNDQwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDQ0XHUwNDQ1XHUwNDQ2XHUwNDQ3XHUwNDQ4XHUwNDQ5XHUwNDRhXHUwNDRiXHUwNDRjXHUwNDRkXHUwNDRlXHUwNDRmXHUwNDAxXHUwNDUxXHUwNDA0XHUwNDU0XHUwNDA3XHUwNDU3XHUwNDBl''@;'; put 'put ''XHUwNDVlXHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIxMTZcdTIwYWNcdTI1YTBceGEwIn0sbWlrOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx1MDQxMFx1MDQxMVx1MDQxMlx1MDQxM1x1MDQxNFx1MDQxNVx1MDQxNlx1MDQxN1x1MDQxOFx1MDQxOVx1MDQxYVx1MDQxYlx1MDQxY1x1MDQxZFx1MDQx''@;'; put 'put ''ZVx1MDQxZlx1MDQyMFx1MDQyMVx1MDQyMlx1MDQyM1x1MDQyNFx1MDQyNVx1MDQyNlx1MDQyN1x1MDQyOFx1MDQyOVx1MDQyYVx1MDQyYlx1MDQyY1x1MDQyZFx1MDQyZVx1MDQyZlx1MDQzMFx1MDQzMVx1MDQzMlx1MDQzM1x1MDQzNFx1MDQzNVx1MDQzNlx1MDQzN1x1MDQzOFx1MDQzOVx1''@;'; put 'put ''MDQzYVx1MDQzYlx1MDQzY1x1MDQzZFx1MDQzZVx1MDQzZlx1MDQ0MFx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQ0NFx1MDQ0NVx1MDQ0Nlx1MDQ0N1x1MDQ0OFx1MDQ0OVx1MDQ0YVx1MDQ0Ylx1MDQ0Y1x1MDQ0ZFx1MDQ0ZVx1MDQ0Zlx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUz''@;'; put 'put ''Y1x1MjU2M1x1MjU1MVx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjUxMFx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjExNlx4YTdcdTI1NTdcdTI1NWRcdTI1MThcdTI1MGNcdTI1ODhcdTI1ODRcdTI1OGNcdTI1OTBcdTI1ODBcdTAzYjFceGRm''@;'; put 'put ''XHUwMzkzXHUwM2MwXHUwM2EzXHUwM2MzXHhiNVx1MDNjNFx1MDNhNlx1MDM5OFx1MDNhOVx1MDNiNFx1MjIxZVx1MDNjNlx1MDNiNVx1MjIyOVx1MjI2MVx4YjFcdTIyNjVcdTIyNjRcdTIzMjBcdTIzMjFceGY3XHUyMjQ4XHhiMFx1MjIxOVx4YjdcdTIyMWFcdTIwN2ZceGIyXHUyNWEwXHhh''@;'; put 'put ''MCJ9LGNwNzIwOnt0eXBlOiJfc2JjcyIsY2hhcnM6Ilx4ODBceDgxXHhlOVx4ZTJceDg0XHhlMFx4ODZceGU3XHhlYVx4ZWJceGU4XHhlZlx4ZWVceDhkXHg4ZVx4OGZceDkwXHUwNjUxXHUwNjUyXHhmNFx4YTRcdTA2NDBceGZiXHhmOVx1MDYyMVx1MDYyMlx1MDYyM1x1MDYyNFx4YTNcdTA2''@;'; put 'put ''MjVcdTA2MjZcdTA2MjdcdTA2MjhcdTA2MjlcdTA2MmFcdTA2MmJcdTA2MmNcdTA2MmRcdTA2MmVcdTA2MmZcdTA2MzBcdTA2MzFcdTA2MzJcdTA2MzNcdTA2MzRcdTA2MzVceGFiXHhiYlx1MjU5MVx1MjU5Mlx1MjU5M1x1MjUwMlx1MjUyNFx1MjU2MVx1MjU2Mlx1MjU1Nlx1MjU1NVx1MjU2''@;'; put 'put ''M1x1MjU1MVx1MjU1N1x1MjU1ZFx1MjU1Y1x1MjU1Ylx1MjUxMFx1MjUxNFx1MjUzNFx1MjUyY1x1MjUxY1x1MjUwMFx1MjUzY1x1MjU1ZVx1MjU1Zlx1MjU1YVx1MjU1NFx1MjU2OVx1MjU2Nlx1MjU2MFx1MjU1MFx1MjU2Y1x1MjU2N1x1MjU2OFx1MjU2NFx1MjU2NVx1MjU1OVx1MjU1OFx1''@;'; put 'put ''MjU1Mlx1MjU1M1x1MjU2Ylx1MjU2YVx1MjUxOFx1MjUwY1x1MjU4OFx1MjU4NFx1MjU4Y1x1MjU5MFx1MjU4MFx1MDYzNlx1MDYzN1x1MDYzOFx1MDYzOVx1MDYzYVx1MDY0MVx4YjVcdTA2NDJcdTA2NDNcdTA2NDRcdTA2NDVcdTA2NDZcdTA2NDdcdTA2NDhcdTA2NDlcdTA2NGFcdTIyNjFc''@;'; put 'put ''dTA2NGJcdTA2NGNcdTA2NGRcdTA2NGVcdTA2NGZcdTA2NTBcdTIyNDhceGIwXHUyMjE5XHhiN1x1MjIxYVx1MjA3Zlx4YjJcdTI1YTBceGEwIn0sYXNjaWk4Yml0OiJhc2NpaSIsdXNhc2NpaToiYXNjaWkiLGFuc2l4MzQ6ImFzY2lpIixhbnNpeDM0MTk2ODoiYXNjaWkiLGFuc2l4MzQxOTg2''@;'; put 'put ''OiJhc2NpaSIsY3Nhc2NpaToiYXNjaWkiLGNwMzY3OiJhc2NpaSIsaWJtMzY3OiJhc2NpaSIsaXNvaXI2OiJhc2NpaSIsaXNvNjQ2dXM6ImFzY2lpIixpc282NDZpcnY6ImFzY2lpIix1czoiYXNjaWkiLGxhdGluMToiaXNvODg1OTEiLGxhdGluMjoiaXNvODg1OTIiLGxhdGluMzoiaXNvODg1''@;'; put 'put ''OTMiLGxhdGluNDoiaXNvODg1OTQiLGxhdGluNToiaXNvODg1OTkiLGxhdGluNjoiaXNvODg1OTEwIixsYXRpbjc6Imlzbzg4NTkxMyIsbGF0aW44OiJpc284ODU5MTQiLGxhdGluOToiaXNvODg1OTE1IixsYXRpbjEwOiJpc284ODU5MTYiLGNzaXNvbGF0aW4xOiJpc284ODU5MSIsY3Npc29s''@;'; put 'put ''YXRpbjI6Imlzbzg4NTkyIixjc2lzb2xhdGluMzoiaXNvODg1OTMiLGNzaXNvbGF0aW40OiJpc284ODU5NCIsY3Npc29sYXRpbmN5cmlsbGljOiJpc284ODU5NSIsY3Npc29sYXRpbmFyYWJpYzoiaXNvODg1OTYiLGNzaXNvbGF0aW5ncmVlazoiaXNvODg1OTciLGNzaXNvbGF0aW5oZWJyZXc6''@;'; put 'put ''Imlzbzg4NTk4Iixjc2lzb2xhdGluNToiaXNvODg1OTkiLGNzaXNvbGF0aW42OiJpc284ODU5MTAiLGwxOiJpc284ODU5MSIsbDI6Imlzbzg4NTkyIixsMzoiaXNvODg1OTMiLGw0OiJpc284ODU5NCIsbDU6Imlzbzg4NTk5IixsNjoiaXNvODg1OTEwIixsNzoiaXNvODg1OTEzIixsODoiaXNv''@;'; put 'put ''ODg1OTE0IixsOToiaXNvODg1OTE1IixsMTA6Imlzbzg4NTkxNiIsaXNvaXIxNDoiaXNvNjQ2anAiLGlzb2lyNTc6ImlzbzY0NmNuIixpc29pcjEwMDoiaXNvODg1OTEiLGlzb2lyMTAxOiJpc284ODU5MiIsaXNvaXIxMDk6Imlzbzg4NTkzIixpc29pcjExMDoiaXNvODg1OTQiLGlzb2lyMTQ0''@;'; put 'put ''OiJpc284ODU5NSIsaXNvaXIxMjc6Imlzbzg4NTk2Iixpc29pcjEyNjoiaXNvODg1OTciLGlzb2lyMTM4OiJpc284ODU5OCIsaXNvaXIxNDg6Imlzbzg4NTk5Iixpc29pcjE1NzoiaXNvODg1OTEwIixpc29pcjE2NjoidGlzNjIwIixpc29pcjE3OToiaXNvODg1OTEzIixpc29pcjE5OToiaXNv''@;'; put 'put ''ODg1OTE0Iixpc29pcjIwMzoiaXNvODg1OTE1Iixpc29pcjIyNjoiaXNvODg1OTE2IixjcDgxOToiaXNvODg1OTEiLGlibTgxOToiaXNvODg1OTEiLGN5cmlsbGljOiJpc284ODU5NSIsYXJhYmljOiJpc284ODU5NiIsYXJhYmljODoiaXNvODg1OTYiLGVjbWExMTQ6Imlzbzg4NTk2Iixhc21v''@;'; put 'put ''NzA4OiJpc284ODU5NiIsZ3JlZWs6Imlzbzg4NTk3IixncmVlazg6Imlzbzg4NTk3IixlY21hMTE4OiJpc284ODU5NyIsZWxvdDkyODoiaXNvODg1OTciLGhlYnJldzoiaXNvODg1OTgiLGhlYnJldzg6Imlzbzg4NTk4Iix0dXJraXNoOiJpc284ODU5OSIsdHVya2lzaDg6Imlzbzg4NTk5Iix0''@;'; put 'put ''aGFpOiJpc284ODU5MTEiLHRoYWk4OiJpc284ODU5MTEiLGNlbHRpYzoiaXNvODg1OTE0IixjZWx0aWM4OiJpc284ODU5MTQiLGlzb2NlbHRpYzoiaXNvODg1OTE0Iix0aXM2MjAwOiJ0aXM2MjAiLHRpczYyMDI1MjkxOiJ0aXM2MjAiLHRpczYyMDI1MzMwOiJ0aXM2MjAiLDFlNDoibWFjcm9t''@;'; put 'put ''YW4iLDEwMDA2OiJtYWNncmVlayIsMTAwMDc6Im1hY2N5cmlsbGljIiwxMDA3OToibWFjaWNlbGFuZCIsMTAwODE6Im1hY3R1cmtpc2giLGNzcGM4Y29kZXBhZ2U0Mzc6ImNwNDM3Iixjc3BjNzc1YmFsdGljOiJjcDc3NSIsY3NwYzg1MG11bHRpbGluZ3VhbDoiY3A4NTAiLGNzcGNwODUyOiJj''@;'; put 'put ''cDg1MiIsY3NwYzg2MmxhdGluaGVicmV3OiJjcDg2MiIsY3BncjoiY3A4NjkiLG1zZWU6ImNwMTI1MCIsbXNjeXJsOiJjcDEyNTEiLG1zYW5zaToiY3AxMjUyIixtc2dyZWVrOiJjcDEyNTMiLG1zdHVyazoiY3AxMjU0Iixtc2hlYnI6ImNwMTI1NSIsbXNhcmFiOiJjcDEyNTYiLHdpbmJhbHRy''@;'; put 'put ''aW06ImNwMTI1NyIsY3AyMDg2Njoia29pOHIiLDIwODY2OiJrb2k4ciIsaWJtODc4OiJrb2k4ciIsY3Nrb2k4cjoia29pOHIiLGNwMjE4NjY6ImtvaTh1IiwyMTg2Njoia29pOHUiLGlibTExNjg6ImtvaTh1IixzdHJrMTA0ODIwMDI6InJrMTA0OCIsdGN2bjU3MTI6InRjdm4iLHRjdm41NzEy''@;'; put 'put ''MToidGN2biIsZ2IxOTg4ODA6ImlzbzY0NmNuIixjbjoiaXNvNjQ2Y24iLGNzaXNvMTRqaXNjNjIyMHJvOiJpc282NDZqcCIsamlzYzYyMjAxOTY5cm86ImlzbzY0NmpwIixqcDoiaXNvNjQ2anAiLGNzaHByb21hbjg6Imhwcm9tYW44IixyODoiaHByb21hbjgiLHJvbWFuODoiaHByb21hbjgi''@;'; put 'put ''LHhyb21hbjg6Imhwcm9tYW44IixpYm0xMDUxOiJocHJvbWFuOCIsbWFjOiJtYWNpbnRvc2giLGNzbWFjaW50b3NoOiJtYWNpbnRvc2gifX0sOTM3NjA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXI7ZnVuY3Rpb24gQigpe31mdW5jdGlvbiBFKCl7fWZ1''@;'; put 'put ''bmN0aW9uIEVlKCl7dGhpcy5vdmVyZmxvd0J5dGU9LTF9ZnVuY3Rpb24gVShhZSxZKXt0aGlzLmljb252PVl9ZnVuY3Rpb24gUShhZSxZKXt2b2lkIDA9PT0oYWU9YWV8fHt9KS5hZGRCT00mJihhZS5hZGRCT009ITApLHRoaXMuZW5jb2Rlcj1ZLmljb252LmdldEVuY29kZXIoInV0Zi0xNmxl''@;'; put 'put ''IixhZSl9ZnVuY3Rpb24gaihhZSxZKXt0aGlzLmRlY29kZXI9bnVsbCx0aGlzLmluaXRpYWxCeXRlcz1bXSx0aGlzLmluaXRpYWxCeXRlc0xlbj0wLHRoaXMub3B0aW9ucz1hZXx8e30sdGhpcy5pY29udj1ZLmljb252fWZ1bmN0aW9uIHJlKGFlLFkpe3ZhciBXPVl8fCJ1dGYtMTZsZSI7aWYo''@;'; put 'put ''YWUubGVuZ3RoPj0yKWlmKDI1ND09YWVbMF0mJjI1NT09YWVbMV0pVz0idXRmLTE2YmUiO2Vsc2UgaWYoMjU1PT1hZVswXSYmMjU0PT1hZVsxXSlXPSJ1dGYtMTZsZSI7ZWxzZXtmb3IodmFyIE49MCx0ZT0wLEs9TWF0aC5taW4oYWUubGVuZ3RoLWFlLmxlbmd0aCUyLDY0KSxKPTA7SjxLO0or''@;'; put 'put ''PTIpMD09PWFlW0pdJiYwIT09YWVbSisxXSYmdGUrKywwIT09YWVbSl0mJjA9PT1hZVtKKzFdJiZOKys7dGU+Tj9XPSJ1dGYtMTZiZSI6dGU8TiYmKFc9InV0Zi0xNmxlIil9cmV0dXJuIFd9SmUudXRmMTZiZT1CLEIucHJvdG90eXBlLmVuY29kZXI9RSxCLnByb3RvdHlwZS5kZWNvZGVyPUVl''@;'; put 'put ''LEIucHJvdG90eXBlLmJvbUF3YXJlPSEwLEUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGFlKXtmb3IodmFyIFk9bWUuZnJvbShhZSwidWNzMiIpLFc9MDtXPFkubGVuZ3RoO1crPTIpe3ZhciBOPVlbV107WVtXXT1ZW1crMV0sWVtXKzFdPU59cmV0dXJuIFl9LEUucHJvdG90eXBlLmVuZD1m''@;'; put 'put ''dW5jdGlvbigpe30sRWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGFlKXtpZigwPT1hZS5sZW5ndGgpcmV0dXJuIiI7dmFyIFk9bWUuYWxsb2MoYWUubGVuZ3RoKzEpLFc9MCxOPTA7Zm9yKC0xIT09dGhpcy5vdmVyZmxvd0J5dGUmJihZWzBdPWFlWzBdLFlbMV09dGhpcy5vdmVyZmxvd0J5''@;'; put 'put ''dGUsVz0xLE49Mik7VzxhZS5sZW5ndGgtMTtXKz0yLE4rPTIpWVtOXT1hZVtXKzFdLFlbTisxXT1hZVtXXTtyZXR1cm4gdGhpcy5vdmVyZmxvd0J5dGU9Vz09YWUubGVuZ3RoLTE/YWVbYWUubGVuZ3RoLTFdOi0xLFkuc2xpY2UoMCxOKS50b1N0cmluZygidWNzMiIpfSxFZS5wcm90b3R5cGUu''@;'; put 'put ''ZW5kPWZ1bmN0aW9uKCl7fSxKZS51dGYxNj1VLFUucHJvdG90eXBlLmVuY29kZXI9USxVLnByb3RvdHlwZS5kZWNvZGVyPWosUS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLmVuY29kZXIud3JpdGUoYWUpfSxRLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5lbmNvZGVyLmVuZCgpfSxqLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhZSl7aWYoIXRoaXMuZGVjb2Rlcil7aWYodGhpcy5pbml0aWFsQnl0ZXMucHVzaChhZSksdGhpcy5pbml0aWFsQnl0ZXNMZW4rPWFlLmxlbmd0aCx0aGlzLmluaXRpYWxCeXRlc0xlbjwxNilyZXR1cm4i''@;'; put 'put ''Ijt2YXIgWT1yZShhZT1tZS5jb25jYXQodGhpcy5pbml0aWFsQnl0ZXMpLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoWSx0aGlzLm9wdGlvbnMpLHRoaXMuaW5pdGlhbEJ5dGVzLmxlbmd0aD10aGlzLmluaXRpYWxCeXRl''@;'; put 'put ''c0xlbj0wfXJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYWUpfSxqLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5kZWNvZGVyKXt2YXIgYWU9bWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSxZPXJlKGFlLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVj''@;'; put 'put ''b2Rlcj10aGlzLmljb252LmdldERlY29kZXIoWSx0aGlzLm9wdGlvbnMpO3ZhciBXPXRoaXMuZGVjb2Rlci53cml0ZShhZSksTj10aGlzLmRlY29kZXIuZW5kKCk7cmV0dXJuIE4/VytOOld9cmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKX19LDgyNjA2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0''@;'; put 'put ''Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyO2Z1bmN0aW9uIEIoYWUsWSl7dGhpcy5pY29udj1ZLHRoaXMuYm9tQXdhcmU9ITAsdGhpcy5pc0xFPWFlLmlzTEV9ZnVuY3Rpb24gRShhZSxZKXt0aGlzLmlzTEU9WS5pc0xFLHRoaXMuaGlnaFN1cnJvZ2F0ZT0wfWZ1bmN0aW9uIEVlKGFlLFkpe3Ro''@;'; put 'put ''aXMuaXNMRT1ZLmlzTEUsdGhpcy5iYWRDaGFyPVkuaWNvbnYuZGVmYXVsdENoYXJVbmljb2RlLmNoYXJDb2RlQXQoMCksdGhpcy5vdmVyZmxvdz1udWxsfWZ1bmN0aW9uIFUoYWUsWSl7dGhpcy5pY29udj1ZfWZ1bmN0aW9uIFEoYWUsWSl7dm9pZCAwPT09KGFlPWFlfHx7fSkuYWRkQk9NJiYo''@;'; put 'put ''YWUuYWRkQk9NPSEwKSx0aGlzLmVuY29kZXI9WS5pY29udi5nZXRFbmNvZGVyKGFlLmRlZmF1bHRFbmNvZGluZ3x8InV0Zi0zMmxlIixhZSl9ZnVuY3Rpb24gaihhZSxZKXt0aGlzLmRlY29kZXI9bnVsbCx0aGlzLmluaXRpYWxCeXRlcz1bXSx0aGlzLmluaXRpYWxCeXRlc0xlbj0wLHRoaXMu''@;'; put 'put ''b3B0aW9ucz1hZXx8e30sdGhpcy5pY29udj1ZLmljb252fWZ1bmN0aW9uIHJlKGFlLFkpe3ZhciBXPVl8fCJ1dGYtMzJsZSI7aWYoYWUubGVuZ3RoPj00KWlmKDY1Mjc5PT09YWUucmVhZFVJbnQzMkJFKDApKVc9InV0Zi0zMmJlIjtlbHNlIGlmKDY1Mjc5PT09YWUucmVhZFVJbnQzMkxFKDAp''@;'; put 'put ''KVc9InV0Zi0zMmxlIjtlbHNle2Zvcih2YXIgTj0wLHRlPTAsSz0wLEo9MCxzZT1NYXRoLm1pbihhZS5sZW5ndGgtYWUubGVuZ3RoJTQsMTI4KSxvZT0wO29lPHNlO29lKz00KXt2YXIgY2U9YWVbb2VdLGRlPWFlW29lKzFdLHZlPWFlW29lKzJdLEFlPWFlW29lKzNdOygwIT09Y2V8fGRlPjE2''@;'; put 'put ''KSYmKyt0ZSwoMCE9PUFlfHx2ZT4xNikmJisrTiwwPT09Y2UmJjA9PT1kZSYmMD09PXZlJiYwIT09QWUmJkorKywwIT09Y2UmJjA9PT1kZSYmMD09PXZlJiYwPT09QWUmJksrK310ZTxOP1c9InV0Zi0zMmJlIjpOPHRlJiYoVz0idXRmLTMybGUiKSxKPks/Vz0idXRmLTMyYmUiOko8SyYmKFc9''@;'; put 'put ''InV0Zi0zMmxlIil9cmV0dXJuIFd9SmUuX3V0ZjMyPUIsSmUudXRmMzJsZT17dHlwZToiX3V0ZjMyIixpc0xFOiEwfSxKZS51dGYzMmJlPXt0eXBlOiJfdXRmMzIiLGlzTEU6ITF9LEplLnVjczRsZT0idXRmMzJsZSIsSmUudWNzNGJlPSJ1dGYzMmJlIixCLnByb3RvdHlwZS5lbmNvZGVyPUUs''@;'; put 'put ''Qi5wcm90b3R5cGUuZGVjb2Rlcj1FZSxFLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbihhZSl7Zm9yKHZhciBZPW1lLmZyb20oYWUsInVjczIiKSxXPW1lLmFsbG9jKDIqWS5sZW5ndGgpLE49dGhpcy5pc0xFP1cud3JpdGVVSW50MzJMRTpXLndyaXRlVUludDMyQkUsdGU9MCxLPTA7SzxZLmxl''@;'; put 'put ''bmd0aDtLKz0yKXt2YXIgSj1ZLnJlYWRVSW50MTZMRShLKSxzZT01NTI5Njw9SiYmSjw1NjMyMDtpZih0aGlzLmhpZ2hTdXJyb2dhdGUpe2lmKCFzZSYmNTYzMjA8PUomJko8NTczNDQpe04uY2FsbChXLDY1NTM2Kyh0aGlzLmhpZ2hTdXJyb2dhdGUtNTUyOTY8PDEwfEotNTYzMjApLHRlKSx0''@;'; put 'put ''ZSs9NCx0aGlzLmhpZ2hTdXJyb2dhdGU9MDtjb250aW51ZX1OLmNhbGwoVyx0aGlzLmhpZ2hTdXJyb2dhdGUsdGUpLHRlKz00fXNlP3RoaXMuaGlnaFN1cnJvZ2F0ZT1KOihOLmNhbGwoVyxKLHRlKSx0ZSs9NCx0aGlzLmhpZ2hTdXJyb2dhdGU9MCl9cmV0dXJuIHRlPFcubGVuZ3RoJiYoVz1X''@;'; put 'put ''LnNsaWNlKDAsdGUpKSxXfSxFLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZih0aGlzLmhpZ2hTdXJyb2dhdGUpe3ZhciBhZT1tZS5hbGxvYyg0KTtyZXR1cm4gdGhpcy5pc0xFP2FlLndyaXRlVUludDMyTEUodGhpcy5oaWdoU3Vycm9nYXRlLDApOmFlLndyaXRlVUludDMyQkUodGhpcy5o''@;'; put 'put ''aWdoU3Vycm9nYXRlLDApLHRoaXMuaGlnaFN1cnJvZ2F0ZT0wLGFlfX0sRWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKGFlKXtpZigwPT09YWUubGVuZ3RoKXJldHVybiIiO3RoaXMub3ZlcmZsb3cmJihhZT1tZS5jb25jYXQoW3RoaXMub3ZlcmZsb3csYWVdKSk7dmFyIFk9YWUubGVuZ3Ro''@;'; put 'put ''LWFlLmxlbmd0aCU0O2FlLmxlbmd0aCE9PVk/KHRoaXMub3ZlcmZsb3c9YWUuc2xpY2UoWSksYWU9YWUuc2xpY2UoMCxZKSk6dGhpcy5vdmVyZmxvdz1udWxsO2Zvcih2YXIgVz1tZS5hbGxvYyhZKSxOPTAsdGU9MDt0ZTxZO3RlKz00KXt2YXIgSz10aGlzLmlzTEU/YWUucmVhZFVJbnQzMkxF''@;'; put 'put ''KHRlKTphZS5yZWFkVUludDMyQkUodGUpO2lmKEs8NjU1MzYpVy53cml0ZVVJbnQxNkxFKEssTiksTis9MjtlbHNlIGlmKEs+MTExNDExMSlXLndyaXRlVUludDE2TEUodGhpcy5iYWRDaGFyLE4pLE4rPTI7ZWxzZXt2YXIgc2U9NTYzMjArKDEwMjMmKEstPTY1NTM2KSk7Vy53cml0ZVVJbnQx''@;'; put 'put ''NkxFKDU1Mjk2fEs+PjEwLE4pLFcud3JpdGVVSW50MTZMRShzZSxOKz0yKSxOKz0yfX1yZXR1cm4gVy5zbGljZSgwLE4pLnRvU3RyaW5nKCJ1Y3MyIil9LEVlLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt0aGlzLm92ZXJmbG93PW51bGx9LEplLnV0ZjMyPVUsSmUudWNzND1VLFUucHJvdG90''@;'; put 'put ''eXBlLmVuY29kZXI9USxVLnByb3RvdHlwZS5kZWNvZGVyPWosUS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oYWUpe3JldHVybiB0aGlzLmVuY29kZXIud3JpdGUoYWUpfSxRLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpfSxqLnByb3RvdHlwZS53''@;'; put 'put ''cml0ZT1mdW5jdGlvbihhZSl7aWYoIXRoaXMuZGVjb2Rlcil7aWYodGhpcy5pbml0aWFsQnl0ZXMucHVzaChhZSksdGhpcy5pbml0aWFsQnl0ZXNMZW4rPWFlLmxlbmd0aCx0aGlzLmluaXRpYWxCeXRlc0xlbjwzMilyZXR1cm4iIjt2YXIgVz1yZShtZS5jb25jYXQodGhpcy5pbml0aWFsQnl0''@;'; put 'put ''ZXMpLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoVyx0aGlzLm9wdGlvbnMpLHRoaXMuaW5pdGlhbEJ5dGVzLmxlbmd0aD10aGlzLmluaXRpYWxCeXRlc0xlbj0wfXJldHVybiB0aGlzLmRlY29kZXIud3JpdGUoYWUpfSxq''@;'; put 'put ''LnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtpZighdGhpcy5kZWNvZGVyKXt2YXIgYWU9bWUuY29uY2F0KHRoaXMuaW5pdGlhbEJ5dGVzKSxZPXJlKGFlLHRoaXMub3B0aW9ucy5kZWZhdWx0RW5jb2RpbmcpO3RoaXMuZGVjb2Rlcj10aGlzLmljb252LmdldERlY29kZXIoWSx0aGlzLm9wdGlv''@;'; put 'put ''bnMpO3ZhciBXPXRoaXMuZGVjb2Rlci53cml0ZShhZSksTj10aGlzLmRlY29kZXIuZW5kKCk7cmV0dXJuIE4/VytOOld9cmV0dXJuIHRoaXMuZGVjb2Rlci5lbmQoKX19LDI4Nzc4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2MjAzOCkuQnVmZmVyO2Z1bmN0aW9uIEIoc2Us''@;'; put 'put ''b2Upe3RoaXMuaWNvbnY9b2V9SmUudXRmNz1CLEplLnVuaWNvZGUxMXV0Zjc9InV0ZjciLEIucHJvdG90eXBlLmVuY29kZXI9RWUsQi5wcm90b3R5cGUuZGVjb2Rlcj1VLEIucHJvdG90eXBlLmJvbUF3YXJlPSEwO3ZhciBFPS9bXkEtWmEtejAtOSdcKFwpLC1cLlwvOlw/IFxuXHJcdF0rL2c7''@;'; put 'put ''ZnVuY3Rpb24gRWUoc2Usb2Upe3RoaXMuaWNvbnY9b2UuaWNvbnZ9ZnVuY3Rpb24gVShzZSxvZSl7dGhpcy5pY29udj1vZS5pY29udix0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiJ9RWUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHNlKXtyZXR1cm4gbWUuZnJvbShzZS5y''@;'; put 'put ''ZXBsYWNlKEUsZnVuY3Rpb24ob2Upe3JldHVybiIrIisoIisiPT09b2U/IiI6dGhpcy5pY29udi5lbmNvZGUob2UsInV0ZjE2LWJlIikudG9TdHJpbmcoImJhc2U2NCIpLnJlcGxhY2UoLz0rJC8sIiIpKSsiLSJ9LmJpbmQodGhpcykpKX0sRWUucHJvdG90eXBlLmVuZD1mdW5jdGlvbigpe307''@;'; put 'put ''Zm9yKHZhciBRPS9bQS1aYS16MC05XC8rXS8saj1bXSxyZT0wO3JlPDI1NjtyZSsrKWpbcmVdPVEudGVzdChTdHJpbmcuZnJvbUNoYXJDb2RlKHJlKSk7dmFyIGFlPSIrIi5jaGFyQ29kZUF0KDApLFk9Ii0iLmNoYXJDb2RlQXQoMCksVz0iJiIuY2hhckNvZGVBdCgwKTtmdW5jdGlvbiBOKHNl''@;'; put 'put ''LG9lKXt0aGlzLmljb252PW9lfWZ1bmN0aW9uIHRlKHNlLG9lKXt0aGlzLmljb252PW9lLmljb252LHRoaXMuaW5CYXNlNjQ9ITEsdGhpcy5iYXNlNjRBY2N1bT1tZS5hbGxvYyg2KSx0aGlzLmJhc2U2NEFjY3VtSWR4PTB9ZnVuY3Rpb24gSyhzZSxvZSl7dGhpcy5pY29udj1vZS5pY29udix0''@;'; put 'put ''aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiJ9VS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oc2Upe2Zvcih2YXIgb2U9IiIsY2U9MCxkZT10aGlzLmluQmFzZTY0LHZlPXRoaXMuYmFzZTY0QWNjdW0sQWU9MDtBZTxzZS5sZW5ndGg7QWUrKylpZihkZSl7aWYoIWpbc2VbQWVd''@;'; put 'put ''XSl7aWYoQWU9PWNlJiZzZVtBZV09PVkpb2UrPSIrIjtlbHNle3ZhciBrZT12ZStzZS5zbGljZShjZSxBZSkudG9TdHJpbmcoKTtvZSs9dGhpcy5pY29udi5kZWNvZGUobWUuZnJvbShrZSwiYmFzZTY0IiksInV0ZjE2LWJlIil9c2VbQWVdIT1ZJiZBZS0tLGNlPUFlKzEsZGU9ITEsdmU9IiJ9''@;'; put 'put ''fWVsc2Ugc2VbQWVdPT1hZSYmKG9lKz10aGlzLmljb252LmRlY29kZShzZS5zbGljZShjZSxBZSksImFzY2lpIiksY2U9QWUrMSxkZT0hMCk7aWYoZGUpe3ZhciBTZT0oa2U9dmUrc2Uuc2xpY2UoY2UpLnRvU3RyaW5nKCkpLmxlbmd0aC1rZS5sZW5ndGglODt2ZT1rZS5zbGljZShTZSksa2U9''@;'; put 'put ''a2Uuc2xpY2UoMCxTZSksb2UrPXRoaXMuaWNvbnYuZGVjb2RlKG1lLmZyb20oa2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfWVsc2Ugb2UrPXRoaXMuaWNvbnYuZGVjb2RlKHNlLnNsaWNlKGNlKSwiYXNjaWkiKTtyZXR1cm4gdGhpcy5pbkJhc2U2ND1kZSx0aGlzLmJhc2U2NEFjY3VtPXZlLG9l''@;'; put 'put ''fSxVLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgc2U9IiI7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJnRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoPjAmJihzZT10aGlzLmljb252LmRlY29kZShtZS5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sImJhc2U2NCIpLCJ1dGYxNi1iZSIpKSx0aGlzLmlu''@;'; put 'put ''QmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiIsc2V9LEplLnV0ZjdpbWFwPU4sTi5wcm90b3R5cGUuZW5jb2Rlcj10ZSxOLnByb3RvdHlwZS5kZWNvZGVyPUssTi5wcm90b3R5cGUuYm9tQXdhcmU9ITAsdGUucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHNlKXtmb3IodmFyIG9lPXRoaXMu''@;'; put 'put ''aW5CYXNlNjQsY2U9dGhpcy5iYXNlNjRBY2N1bSxkZT10aGlzLmJhc2U2NEFjY3VtSWR4LHZlPW1lLmFsbG9jKDUqc2UubGVuZ3RoKzEwKSxBZT0wLGtlPTA7a2U8c2UubGVuZ3RoO2tlKyspe3ZhciBTZT1zZS5jaGFyQ29kZUF0KGtlKTszMjw9U2UmJlNlPD0xMjY/KG9lJiYoZGU+MCYmKEFl''@;'; put 'put ''Kz12ZS53cml0ZShjZS5zbGljZSgwLGRlKS50b1N0cmluZygiYmFzZTY0IikucmVwbGFjZSgvXC8vZywiLCIpLnJlcGxhY2UoLz0rJC8sIiIpLEFlKSxkZT0wKSx2ZVtBZSsrXT1ZLG9lPSExKSxvZXx8KHZlW0FlKytdPVNlLFNlPT09VyYmKHZlW0FlKytdPVkpKSk6KG9lfHwodmVbQWUrK109''@;'; put 'put ''VyxvZT0hMCksb2UmJihjZVtkZSsrXT1TZT4+OCxjZVtkZSsrXT0yNTUmU2UsZGU9PWNlLmxlbmd0aCYmKEFlKz12ZS53cml0ZShjZS50b1N0cmluZygiYmFzZTY0IikucmVwbGFjZSgvXC8vZywiLCIpLEFlKSxkZT0wKSkpfXJldHVybiB0aGlzLmluQmFzZTY0PW9lLHRoaXMuYmFzZTY0QWNj''@;'; put 'put ''dW1JZHg9ZGUsdmUuc2xpY2UoMCxBZSl9LHRlLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgc2U9bWUuYWxsb2MoMTApLG9lPTA7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJih0aGlzLmJhc2U2NEFjY3VtSWR4PjAmJihvZSs9c2Uud3JpdGUodGhpcy5iYXNlNjRBY2N1bS5zbGljZSgwLHRo''@;'; put 'put ''aXMuYmFzZTY0QWNjdW1JZHgpLnRvU3RyaW5nKCJiYXNlNjQiKS5yZXBsYWNlKC9cLy9nLCIsIikucmVwbGFjZSgvPSskLywiIiksb2UpLHRoaXMuYmFzZTY0QWNjdW1JZHg9MCksc2Vbb2UrK109WSx0aGlzLmluQmFzZTY0PSExKSxzZS5zbGljZSgwLG9lKX07dmFyIEo9ai5zbGljZSgpO0pb''@;'; put 'put ''IiwiLmNoYXJDb2RlQXQoMCldPSEwLEsucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHNlKXtmb3IodmFyIG9lPSIiLGNlPTAsZGU9dGhpcy5pbkJhc2U2NCx2ZT10aGlzLmJhc2U2NEFjY3VtLEFlPTA7QWU8c2UubGVuZ3RoO0FlKyspaWYoZGUpe2lmKCFKW3NlW0FlXV0pe2lmKEFlPT1jZSYm''@;'; put 'put ''c2VbQWVdPT1ZKW9lKz0iJiI7ZWxzZXt2YXIga2U9dmUrc2Uuc2xpY2UoY2UsQWUpLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCIvIik7b2UrPXRoaXMuaWNvbnYuZGVjb2RlKG1lLmZyb20oa2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfXNlW0FlXSE9WSYmQWUtLSxjZT1BZSsxLGRlPSExLHZl''@;'; put 'put ''PSIifX1lbHNlIHNlW0FlXT09VyYmKG9lKz10aGlzLmljb252LmRlY29kZShzZS5zbGljZShjZSxBZSksImFzY2lpIiksY2U9QWUrMSxkZT0hMCk7aWYoZGUpe3ZhciBTZT0oa2U9dmUrc2Uuc2xpY2UoY2UpLnRvU3RyaW5nKCkucmVwbGFjZSgvLC9nLCIvIikpLmxlbmd0aC1rZS5sZW5ndGgl''@;'; put 'put ''ODt2ZT1rZS5zbGljZShTZSksa2U9a2Uuc2xpY2UoMCxTZSksb2UrPXRoaXMuaWNvbnYuZGVjb2RlKG1lLmZyb20oa2UsImJhc2U2NCIpLCJ1dGYxNi1iZSIpfWVsc2Ugb2UrPXRoaXMuaWNvbnYuZGVjb2RlKHNlLnNsaWNlKGNlKSwiYXNjaWkiKTtyZXR1cm4gdGhpcy5pbkJhc2U2ND1kZSx0''@;'; put 'put ''aGlzLmJhc2U2NEFjY3VtPXZlLG9lfSxLLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXt2YXIgc2U9IiI7cmV0dXJuIHRoaXMuaW5CYXNlNjQmJnRoaXMuYmFzZTY0QWNjdW0ubGVuZ3RoPjAmJihzZT10aGlzLmljb252LmRlY29kZShtZS5mcm9tKHRoaXMuYmFzZTY0QWNjdW0sImJhc2U2NCIp''@;'; put 'put ''LCJ1dGYxNi1iZSIpKSx0aGlzLmluQmFzZTY0PSExLHRoaXMuYmFzZTY0QWNjdW09IiIsc2V9fSw0NjA5OTooWGUsSmUpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKEUsRWUpe3RoaXMuZW5jb2Rlcj1FLHRoaXMuYWRkQk9NPSEwfWZ1bmN0aW9uIEIoRSxFZSl7dGhpcy5kZWNvZGVyPUUs''@;'; put 'put ''dGhpcy5wYXNzPSExLHRoaXMub3B0aW9ucz1FZXx8e319SmUuUHJlcGVuZEJPTT1tZSxtZS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuYWRkQk9NJiYoRT0iXHVmZWZmIitFLHRoaXMuYWRkQk9NPSExKSx0aGlzLmVuY29kZXIud3JpdGUoRSl9LG1lLnByb3RvdHlw''@;'; put 'put ''ZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmNvZGVyLmVuZCgpfSxKZS5TdHJpcEJPTT1CLEIucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKEUpe3ZhciBFZT10aGlzLmRlY29kZXIud3JpdGUoRSk7cmV0dXJuIHRoaXMucGFzc3x8IUVlfHwoIlx1ZmVmZiI9PT1FZVswXSYmKEVlPUVl''@;'; put 'put ''LnNsaWNlKDEpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuc3RyaXBCT00mJnRoaXMub3B0aW9ucy5zdHJpcEJPTSgpKSx0aGlzLnBhc3M9ITApLEVlfSxCLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kZWNvZGVyLmVuZCgpfX0sNDE5MjU6KFhlLEplLEwp''@;'; put 'put ''PT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDYyMDM4KS5CdWZmZXIsQj1MKDQ2MDk5KSxFPVhlLmV4cG9ydHM7RS5lbmNvZGluZ3M9bnVsbCxFLmRlZmF1bHRDaGFyVW5pY29kZT0iXHVmZmZkIixFLmRlZmF1bHRDaGFyU2luZ2xlQnl0ZT0iPyIsRS5lbmNvZGU9ZnVuY3Rpb24oaixyZSxhZSl7''@;'; put 'put ''aj0iIisoanx8IiIpO3ZhciBZPUUuZ2V0RW5jb2RlcihyZSxhZSksVz1ZLndyaXRlKGopLE49WS5lbmQoKTtyZXR1cm4gTiYmTi5sZW5ndGg+MD9tZS5jb25jYXQoW1csTl0pOld9LEUuZGVjb2RlPWZ1bmN0aW9uKGoscmUsYWUpeyJzdHJpbmciPT10eXBlb2YgaiYmKEUuc2tpcERlY29kZVdh''@;'; put 'put ''cm5pbmd8fChjb25zb2xlLmVycm9yKCJJY29udi1saXRlIHdhcm5pbmc6IGRlY29kZSgpLWluZyBzdHJpbmdzIGlzIGRlcHJlY2F0ZWQuIFJlZmVyIHRvIGh0dHBzOi8vZ2l0aHViLmNvbS9hc2h0dWNoa2luL2ljb252LWxpdGUvd2lraS9Vc2UtQnVmZmVycy13aGVuLWRlY29kaW5nIiksRS5z''@;'; put 'put ''a2lwRGVjb2RlV2FybmluZz0hMCksaj1tZS5mcm9tKCIiKyhqfHwiIiksImJpbmFyeSIpKTt2YXIgWT1FLmdldERlY29kZXIocmUsYWUpLFc9WS53cml0ZShqKSxOPVkuZW5kKCk7cmV0dXJuIE4/VytOOld9LEUuZW5jb2RpbmdFeGlzdHM9ZnVuY3Rpb24oail7dHJ5e3JldHVybiBFLmdldENv''@;'; put 'put ''ZGVjKGopLCEwfWNhdGNoKHJlKXtyZXR1cm4hMX19LEUudG9FbmNvZGluZz1FLmVuY29kZSxFLmZyb21FbmNvZGluZz1FLmRlY29kZSxFLl9jb2RlY0RhdGFDYWNoZT17fSxFLmdldENvZGVjPWZ1bmN0aW9uKGope0UuZW5jb2RpbmdzfHwoRS5lbmNvZGluZ3M9TCg3OTcxNCkpO2Zvcih2YXIg''@;'; put 'put ''cmU9RS5fY2Fub25pY2FsaXplRW5jb2RpbmcoaiksYWU9e307Oyl7dmFyIFk9RS5fY29kZWNEYXRhQ2FjaGVbcmVdO2lmKFkpcmV0dXJuIFk7dmFyIFc9RS5lbmNvZGluZ3NbcmVdO3N3aXRjaCh0eXBlb2YgVyl7Y2FzZSJzdHJpbmciOnJlPVc7YnJlYWs7Y2FzZSJvYmplY3QiOmZvcih2YXIg''@;'; put 'put ''TiBpbiBXKWFlW05dPVdbTl07YWUuZW5jb2RpbmdOYW1lfHwoYWUuZW5jb2RpbmdOYW1lPXJlKSxyZT1XLnR5cGU7YnJlYWs7Y2FzZSJmdW5jdGlvbiI6cmV0dXJuIGFlLmVuY29kaW5nTmFtZXx8KGFlLmVuY29kaW5nTmFtZT1yZSksWT1uZXcgVyhhZSxFKSxFLl9jb2RlY0RhdGFDYWNoZVth''@;'; put 'put ''ZS5lbmNvZGluZ05hbWVdPVksWTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiRW5jb2Rpbmcgbm90IHJlY29nbml6ZWQ6ICciK2orIicgKHNlYXJjaGVkIGFzOiAnIityZSsiJykiKX19fSxFLl9jYW5vbmljYWxpemVFbmNvZGluZz1mdW5jdGlvbihRKXtyZXR1cm4oIiIrUSkudG9Mb3dlckNh''@;'; put 'put ''c2UoKS5yZXBsYWNlKC86XGR7NH0kfFteMC05YS16XS9nLCIiKX0sRS5nZXRFbmNvZGVyPWZ1bmN0aW9uKGoscmUpe3ZhciBhZT1FLmdldENvZGVjKGopLFk9bmV3IGFlLmVuY29kZXIocmUsYWUpO3JldHVybiBhZS5ib21Bd2FyZSYmcmUmJnJlLmFkZEJPTSYmKFk9bmV3IEIuUHJlcGVuZEJP''@;'; put 'put ''TShZLHJlKSksWX0sRS5nZXREZWNvZGVyPWZ1bmN0aW9uKGoscmUpe3ZhciBhZT1FLmdldENvZGVjKGopLFk9bmV3IGFlLmRlY29kZXIocmUsYWUpO3JldHVybiBhZS5ib21Bd2FyZSYmIShyZSYmITE9PT1yZS5zdHJpcEJPTSkmJihZPW5ldyBCLlN0cmlwQk9NKFkscmUpKSxZfTt2YXIgRWU9''@;'; put 'put ''InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiZwcm9jZXNzLnZlcnNpb25zJiZwcm9jZXNzLnZlcnNpb25zLm5vZGU7aWYoRWUpe3ZhciBVPUVlLnNwbGl0KCIuIikubWFwKE51bWJlcik7KFVbMF0+MHx8VVsxXT49MTApJiZMKDY5MzMxKShFKSxMKDE5NTI3KShFKX19LDQ4NDYxOihYZSxK''@;'; put 'put ''ZSk9PntKZS5yZWFkPWZ1bmN0aW9uKEwsbWUsQixFLEVlKXt2YXIgVSxRLGo9OCpFZS1FLTEscmU9KDE8PGopLTEsYWU9cmU+PjEsWT0tNyxXPUI/RWUtMTowLE49Qj8tMToxLHRlPUxbbWUrV107Zm9yKFcrPU4sVT10ZSYoMTw8LVkpLTEsdGU+Pj0tWSxZKz1qO1k+MDtVPTI1NipVK0xbbWUr''@;'; put 'put ''V10sVys9TixZLT04KTtmb3IoUT1VJigxPDwtWSktMSxVPj49LVksWSs9RTtZPjA7UT0yNTYqUStMW21lK1ddLFcrPU4sWS09OCk7aWYoMD09PVUpVT0xLWFlO2Vsc2V7aWYoVT09PXJlKXJldHVybiBRP05hTjoxLzAqKHRlPy0xOjEpO1ErPU1hdGgucG93KDIsRSksVS09YWV9cmV0dXJuKHRl''@;'; put 'put ''Py0xOjEpKlEqTWF0aC5wb3coMixVLUUpfSxKZS53cml0ZT1mdW5jdGlvbihMLG1lLEIsRSxFZSxVKXt2YXIgUSxqLHJlLGFlPTgqVS1FZS0xLFk9KDE8PGFlKS0xLFc9WT4+MSxOPTIzPT09RWU/TWF0aC5wb3coMiwtMjQpLU1hdGgucG93KDIsLTc3KTowLHRlPUU/MDpVLTEsSz1FPzE6LTEs''@;'; put 'put ''Sj1tZTwwfHwwPT09bWUmJjEvbWU8MD8xOjA7Zm9yKG1lPU1hdGguYWJzKG1lKSxpc05hTihtZSl8fG1lPT09MS8wPyhqPWlzTmFOKG1lKT8xOjAsUT1ZKTooUT1NYXRoLmZsb29yKE1hdGgubG9nKG1lKS9NYXRoLkxOMiksbWUqKHJlPU1hdGgucG93KDIsLVEpKTwxJiYoUS0tLHJlKj0yKSwo''@;'; put 'put ''bWUrPVErVz49MT9OL3JlOk4qTWF0aC5wb3coMiwxLVcpKSpyZT49MiYmKFErKyxyZS89MiksUStXPj1ZPyhqPTAsUT1ZKTpRK1c+PTE/KGo9KG1lKnJlLTEpKk1hdGgucG93KDIsRWUpLFErPVcpOihqPW1lKk1hdGgucG93KDIsVy0xKSpNYXRoLnBvdygyLEVlKSxRPTApKTtFZT49ODtMW0Ir''@;'; put 'put ''dGVdPTI1NSZqLHRlKz1LLGovPTI1NixFZS09OCk7Zm9yKFE9UTw8RWV8aixhZSs9RWU7YWU+MDtMW0IrdGVdPTI1NSZRLHRlKz1LLFEvPTI1NixhZS09OCk7TFtCK3RlLUtdfD0xMjgqSn19LDgzODk0OlhlPT57WGUuZXhwb3J0cz0iZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmNyZWF0ZT9m''@;'; put 'put ''dW5jdGlvbihMLG1lKXttZSYmKEwuc3VwZXJfPW1lLEwucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobWUucHJvdG90eXBlLHtjb25zdHJ1Y3Rvcjp7dmFsdWU6TCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSl9OmZ1bmN0aW9uKEwsbWUpe2lmKG1lKXtMLnN1''@;'; put 'put ''cGVyXz1tZTt2YXIgQj1mdW5jdGlvbigpe307Qi5wcm90b3R5cGU9bWUucHJvdG90eXBlLEwucHJvdG90eXBlPW5ldyBCLEwucHJvdG90eXBlLmNvbnN0cnVjdG9yPUx9fX0sODA5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODM4OTQpLEI9TCgzOTY1MCksRT1MKDczNTAy''@;'; put 'put ''KS5CdWZmZXIsRWU9bmV3IEFycmF5KDE2KTtmdW5jdGlvbiBVKCl7Qi5jYWxsKHRoaXMsNjQpLHRoaXMuX2E9MTczMjU4NDE5Myx0aGlzLl9iPTQwMjMyMzM0MTcsdGhpcy5fYz0yNTYyMzgzMTAyLHRoaXMuX2Q9MjcxNzMzODc4fWZ1bmN0aW9uIFEoVyxOKXtyZXR1cm4gVzw8TnxXPj4+MzIt''@;'; put 'put ''Tn1mdW5jdGlvbiBqKFcsTix0ZSxLLEosc2Usb2Upe3JldHVybiBRKFcrKE4mdGV8fk4mSykrSitzZXwwLG9lKStOfDB9ZnVuY3Rpb24gcmUoVyxOLHRlLEssSixzZSxvZSl7cmV0dXJuIFEoVysoTiZLfHRlJn5LKStKK3NlfDAsb2UpK058MH1mdW5jdGlvbiBhZShXLE4sdGUsSyxKLHNlLG9l''@;'; put 'put ''KXtyZXR1cm4gUShXKyhOXnRlXkspK0orc2V8MCxvZSkrTnwwfWZ1bmN0aW9uIFkoVyxOLHRlLEssSixzZSxvZSl7cmV0dXJuIFEoVysodGVeKE58fkspKStKK3NlfDAsb2UpK058MH1tZShVLEIpLFUucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIFc9RWUsTj0wO048MTY7''@;'; put 'put ''KytOKVdbTl09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCpOKTt2YXIgdGU9dGhpcy5fYSxLPXRoaXMuX2IsSj10aGlzLl9jLHNlPXRoaXMuX2Q7dGU9aih0ZSxLLEosc2UsV1swXSwzNjE0MDkwMzYwLDcpLHNlPWooc2UsdGUsSyxKLFdbMV0sMzkwNTQwMjcxMCwxMiksSj1qKEosc2UsdGUs''@;'; put 'put ''SyxXWzJdLDYwNjEwNTgxOSwxNyksSz1qKEssSixzZSx0ZSxXWzNdLDMyNTA0NDE5NjYsMjIpLHRlPWoodGUsSyxKLHNlLFdbNF0sNDExODU0ODM5OSw3KSxzZT1qKHNlLHRlLEssSixXWzVdLDEyMDAwODA0MjYsMTIpLEo9aihKLHNlLHRlLEssV1s2XSwyODIxNzM1OTU1LDE3KSxLPWooSyxK''@;'; put 'put ''LHNlLHRlLFdbN10sNDI0OTI2MTMxMywyMiksdGU9aih0ZSxLLEosc2UsV1s4XSwxNzcwMDM1NDE2LDcpLHNlPWooc2UsdGUsSyxKLFdbOV0sMjMzNjU1Mjg3OSwxMiksSj1qKEosc2UsdGUsSyxXWzEwXSw0Mjk0OTI1MjMzLDE3KSxLPWooSyxKLHNlLHRlLFdbMTFdLDIzMDQ1NjMxMzQsMjIp''@;'; put 'put ''LHRlPWoodGUsSyxKLHNlLFdbMTJdLDE4MDQ2MDM2ODIsNyksc2U9aihzZSx0ZSxLLEosV1sxM10sNDI1NDYyNjE5NSwxMiksSj1qKEosc2UsdGUsSyxXWzE0XSwyNzkyOTY1MDA2LDE3KSx0ZT1yZSh0ZSxLPWooSyxKLHNlLHRlLFdbMTVdLDEyMzY1MzUzMjksMjIpLEosc2UsV1sxXSw0MTI5''@;'; put 'put ''MTcwNzg2LDUpLHNlPXJlKHNlLHRlLEssSixXWzZdLDMyMjU0NjU2NjQsOSksSj1yZShKLHNlLHRlLEssV1sxMV0sNjQzNzE3NzEzLDE0KSxLPXJlKEssSixzZSx0ZSxXWzBdLDM5MjEwNjk5OTQsMjApLHRlPXJlKHRlLEssSixzZSxXWzVdLDM1OTM0MDg2MDUsNSksc2U9cmUoc2UsdGUsSyxK''@;'; put 'put ''LFdbMTBdLDM4MDE2MDgzLDkpLEo9cmUoSixzZSx0ZSxLLFdbMTVdLDM2MzQ0ODg5NjEsMTQpLEs9cmUoSyxKLHNlLHRlLFdbNF0sMzg4OTQyOTQ0OCwyMCksdGU9cmUodGUsSyxKLHNlLFdbOV0sNTY4NDQ2NDM4LDUpLHNlPXJlKHNlLHRlLEssSixXWzE0XSwzMjc1MTYzNjA2LDkpLEo9cmUo''@;'; put 'put ''SixzZSx0ZSxLLFdbM10sNDEwNzYwMzMzNSwxNCksSz1yZShLLEosc2UsdGUsV1s4XSwxMTYzNTMxNTAxLDIwKSx0ZT1yZSh0ZSxLLEosc2UsV1sxM10sMjg1MDI4NTgyOSw1KSxzZT1yZShzZSx0ZSxLLEosV1syXSw0MjQzNTYzNTEyLDkpLEo9cmUoSixzZSx0ZSxLLFdbN10sMTczNTMyODQ3''@;'; put 'put ''MywxNCksdGU9YWUodGUsSz1yZShLLEosc2UsdGUsV1sxMl0sMjM2ODM1OTU2MiwyMCksSixzZSxXWzVdLDQyOTQ1ODg3MzgsNCksc2U9YWUoc2UsdGUsSyxKLFdbOF0sMjI3MjM5MjgzMywxMSksSj1hZShKLHNlLHRlLEssV1sxMV0sMTgzOTAzMDU2MiwxNiksSz1hZShLLEosc2UsdGUsV1sx''@;'; put 'put ''NF0sNDI1OTY1Nzc0MCwyMyksdGU9YWUodGUsSyxKLHNlLFdbMV0sMjc2Mzk3NTIzNiw0KSxzZT1hZShzZSx0ZSxLLEosV1s0XSwxMjcyODkzMzUzLDExKSxKPWFlKEosc2UsdGUsSyxXWzddLDQxMzk0Njk2NjQsMTYpLEs9YWUoSyxKLHNlLHRlLFdbMTBdLDMyMDAyMzY2NTYsMjMpLHRlPWFl''@;'; put 'put ''KHRlLEssSixzZSxXWzEzXSw2ODEyNzkxNzQsNCksc2U9YWUoc2UsdGUsSyxKLFdbMF0sMzkzNjQzMDA3NCwxMSksSj1hZShKLHNlLHRlLEssV1szXSwzNTcyNDQ1MzE3LDE2KSxLPWFlKEssSixzZSx0ZSxXWzZdLDc2MDI5MTg5LDIzKSx0ZT1hZSh0ZSxLLEosc2UsV1s5XSwzNjU0NjAyODA5''@;'; put 'put ''LDQpLHNlPWFlKHNlLHRlLEssSixXWzEyXSwzODczMTUxNDYxLDExKSxKPWFlKEosc2UsdGUsSyxXWzE1XSw1MzA3NDI1MjAsMTYpLHRlPVkodGUsSz1hZShLLEosc2UsdGUsV1syXSwzMjk5NjI4NjQ1LDIzKSxKLHNlLFdbMF0sNDA5NjMzNjQ1Miw2KSxzZT1ZKHNlLHRlLEssSixXWzddLDEx''@;'; put 'put ''MjY4OTE0MTUsMTApLEo9WShKLHNlLHRlLEssV1sxNF0sMjg3ODYxMjM5MSwxNSksSz1ZKEssSixzZSx0ZSxXWzVdLDQyMzc1MzMyNDEsMjEpLHRlPVkodGUsSyxKLHNlLFdbMTJdLDE3MDA0ODU1NzEsNiksc2U9WShzZSx0ZSxLLEosV1szXSwyMzk5OTgwNjkwLDEwKSxKPVkoSixzZSx0ZSxL''@;'; put 'put ''LFdbMTBdLDQyOTM5MTU3NzMsMTUpLEs9WShLLEosc2UsdGUsV1sxXSwyMjQwMDQ0NDk3LDIxKSx0ZT1ZKHRlLEssSixzZSxXWzhdLDE4NzMzMTMzNTksNiksc2U9WShzZSx0ZSxLLEosV1sxNV0sNDI2NDM1NTU1MiwxMCksSj1ZKEosc2UsdGUsSyxXWzZdLDI3MzQ3Njg5MTYsMTUpLEs9WShL''@;'; put 'put ''LEosc2UsdGUsV1sxM10sMTMwOTE1MTY0OSwyMSksdGU9WSh0ZSxLLEosc2UsV1s0XSw0MTQ5NDQ0MjI2LDYpLHNlPVkoc2UsdGUsSyxKLFdbMTFdLDMxNzQ3NTY5MTcsMTApLEo9WShKLHNlLHRlLEssV1syXSw3MTg3ODcyNTksMTUpLEs9WShLLEosc2UsdGUsV1s5XSwzOTUxNDgxNzQ1LDIx''@;'; put 'put ''KSx0aGlzLl9hPXRoaXMuX2ErdGV8MCx0aGlzLl9iPXRoaXMuX2IrS3wwLHRoaXMuX2M9dGhpcy5fYytKfDAsdGhpcy5fZD10aGlzLl9kK3NlfDB9LFUucHJvdG90eXBlLl9kaWdlc3Q9ZnVuY3Rpb24oKXt0aGlzLl9ibG9ja1t0aGlzLl9ibG9ja09mZnNldCsrXT0xMjgsdGhpcy5fYmxvY2tP''@;'; put 'put ''ZmZzZXQ+NTYmJih0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNjQpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX2Jsb2NrT2Zmc2V0PTApLHRoaXMuX2Jsb2NrLmZpbGwoMCx0aGlzLl9ibG9ja09mZnNldCw1NiksdGhpcy5fYmxvY2sud3JpdGVVSW50MzJMRSh0aGlzLl9sZW5n''@;'; put 'put ''dGhbMF0sNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzFdLDYwKSx0aGlzLl91cGRhdGUoKTt2YXIgVz1FLmFsbG9jVW5zYWZlKDE2KTtyZXR1cm4gVy53cml0ZUludDMyTEUodGhpcy5fYSwwKSxXLndyaXRlSW50MzJMRSh0aGlzLl9iLDQpLFcud3JpdGVJbnQz''@;'; put 'put ''MkxFKHRoaXMuX2MsOCksVy53cml0ZUludDMyTEUodGhpcy5fZCwxMiksV30sWGUuZXhwb3J0cz1VfSwxNzA3OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMzc4KSxCPUwoMzc5NTApO2Z1bmN0aW9uIEUoRWUpe3RoaXMucmFuZD1FZXx8bmV3IEIuUmFuZH1YZS5leHBvcnRzPUUsRS5jcmVhdGU9''@;'; put 'put ''ZnVuY3Rpb24oVSl7cmV0dXJuIG5ldyBFKFUpfSxFLnByb3RvdHlwZS5fcmFuZGJlbG93PWZ1bmN0aW9uKFUpe3ZhciBRPVUuYml0TGVuZ3RoKCksaj1NYXRoLmNlaWwoUS84KTtkb3t2YXIgcmU9bmV3IG1lKHRoaXMucmFuZC5nZW5lcmF0ZShqKSl9d2hpbGUocmUuY21wKFUpPj0wKTtyZXR1''@;'; put 'put ''cm4gcmV9LEUucHJvdG90eXBlLl9yYW5kcmFuZ2U9ZnVuY3Rpb24oVSxRKXt2YXIgaj1RLnN1YihVKTtyZXR1cm4gVS5hZGQodGhpcy5fcmFuZGJlbG93KGopKX0sRS5wcm90b3R5cGUudGVzdD1mdW5jdGlvbihVLFEsail7dmFyIHJlPVUuYml0TGVuZ3RoKCksYWU9bWUubW9udChVKSxZPW5l''@;'; put 'put ''dyBtZSgxKS50b1JlZChhZSk7UXx8KFE9TWF0aC5tYXgoMSxyZS80OHwwKSk7Zm9yKHZhciBXPVUuc3VibigxKSxOPTA7IVcudGVzdG4oTik7TisrKTtmb3IodmFyIHRlPVUuc2hybihOKSxLPVcudG9SZWQoYWUpO1E+MDtRLS0pe3ZhciBzZT10aGlzLl9yYW5kcmFuZ2UobmV3IG1lKDIpLFcp''@;'; put 'put ''O2omJmooc2UpO3ZhciBvZT1zZS50b1JlZChhZSkucmVkUG93KHRlKTtpZigwIT09b2UuY21wKFkpJiYwIT09b2UuY21wKEspKXtmb3IodmFyIGNlPTE7Y2U8TjtjZSsrKXtpZigwPT09KG9lPW9lLnJlZFNxcigpKS5jbXAoWSkpcmV0dXJuITE7aWYoMD09PW9lLmNtcChLKSlicmVha31pZihj''@;'; put 'put ''ZT09PU4pcmV0dXJuITF9fXJldHVybiEwfSxFLnByb3RvdHlwZS5nZXREaXZpc29yPWZ1bmN0aW9uKFUsUSl7dmFyIGo9VS5iaXRMZW5ndGgoKSxyZT1tZS5tb250KFUpLGFlPW5ldyBtZSgxKS50b1JlZChyZSk7UXx8KFE9TWF0aC5tYXgoMSxqLzQ4fDApKTtmb3IodmFyIFk9VS5zdWJuKDEp''@;'; put 'put ''LFc9MDshWS50ZXN0bihXKTtXKyspO2Zvcih2YXIgTj1VLnNocm4oVyksdGU9WS50b1JlZChyZSk7UT4wO1EtLSl7dmFyIEs9dGhpcy5fcmFuZHJhbmdlKG5ldyBtZSgyKSxZKSxKPVUuZ2NkKEspO2lmKDAhPT1KLmNtcG4oMSkpcmV0dXJuIEo7dmFyIHNlPUsudG9SZWQocmUpLnJlZFBvdyhO''@;'; put 'put ''KTtpZigwIT09c2UuY21wKGFlKSYmMCE9PXNlLmNtcCh0ZSkpe2Zvcih2YXIgb2U9MTtvZTxXO29lKyspe2lmKDA9PT0oc2U9c2UucmVkU3FyKCkpLmNtcChhZSkpcmV0dXJuIHNlLmZyb21SZWQoKS5zdWJuKDEpLmdjZChVKTtpZigwPT09c2UuY21wKHRlKSlicmVha31pZihvZT09PVcpcmV0''@;'; put 'put ''dXJuKHNlPXNlLnJlZFNxcigpKS5mcm9tUmVkKCkuc3VibigxKS5nY2QoVSl9fXJldHVybiExfX0sMTM3ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUsQil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEUoaGUsTyl7aWYoIWhlKXRocm93IG5ldyBFcnJvcihPfHwiQXNzZXJ0aW9uIGZh''@;'; put 'put ''aWxlZCIpfWZ1bmN0aW9uIEVlKGhlLE8pe2hlLnN1cGVyXz1PO3ZhciB6PWZ1bmN0aW9uKCl7fTt6LnByb3RvdHlwZT1PLnByb3RvdHlwZSxoZS5wcm90b3R5cGU9bmV3IHosaGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWhlfWZ1bmN0aW9uIFUoaGUsTyx6KXtpZihVLmlzQk4oaGUpKXJldHVy''@;'; put 'put ''biBoZTt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09aGUmJigoImxlIj09PU98fCJiZSI9PT1PKSYmKHo9TyxPPTEwKSx0aGlzLl9pbml0KGhlfHwwLE98fDEwLHp8fCJiZSIpKX12YXIgUTsib2JqZWN0Ij09dHlwZW9m''@;'; put 'put ''IG1lP21lLmV4cG9ydHM9VTpCLkJOPVUsVS5CTj1VLFUud29yZFNpemU9MjY7dHJ5e1E9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpMKDU2NjE5KS5CdWZmZXJ9Y2F0Y2goaGUpe31mdW5jdGlvbiBqKGhlLE8pe3ZhciB6''@;'; put 'put ''PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJuIHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1bmN0aW9uIHJlKGhlLE8seil7dmFyIGVlPWooaGUseik7cmV0dXJuIHotMT49TyYmKGVlfD1qKGhlLHotMSk8PDQpLGVlfWZ1bmN0aW9uIGFlKGhlLE8seixlZSl7''@;'; put 'put ''Zm9yKHZhciBuZT0wLHg9TWF0aC5taW4oaGUubGVuZ3RoLHopLFA9TztQPHg7UCsrKXt2YXIgVj1oZS5jaGFyQ29kZUF0KFApLTQ4O25lKj1lZSxuZSs9Vj49NDk/Vi00OSsxMDpWPj0xNz9WLTE3KzEwOlZ9cmV0dXJuIG5lfVUuaXNCTj1mdW5jdGlvbihPKXtyZXR1cm4gTyBpbnN0YW5jZW9m''@;'; put 'put ''IFV8fG51bGwhPT1PJiYib2JqZWN0Ij09dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iud29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0FycmF5KE8ud29yZHMpfSxVLm1heD1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KT4wP086en0sVS5taW49ZnVuY3Rpb24oTyx6KXtyZXR1cm4g''@;'; put 'put ''Ty5jbXAoeik8MD9POnp9LFUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKE8seixlZSl7aWYoIm51bWJlciI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKE8seixlZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0QXJyYXkoTyx6LGVlKTsiaGV4Ij09''@;'; put 'put ''PXomJih6PTE2KSxFKHo9PT0oMHx6KSYmej49MiYmejw9MzYpO3ZhciBuZT0wOyItIj09PShPPU8udG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYobmUrKyx0aGlzLm5lZ2F0aXZlPTEpLG5lPE8ubGVuZ3RoJiYoMTY9PT16P3RoaXMuX3BhcnNlSGV4KE8sbmUsZWUpOih0aGlz''@;'; put 'put ''Ll9wYXJzZUJhc2UoTyx6LG5lKSwibGUiPT09ZWUmJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSx6LGVlKSkpfSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihPLHosZWUpe088MCYmKHRoaXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2''@;'; put 'put ''NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0xKTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRoaXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEUoTzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcx''@;'; put 'put ''MDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PWVlJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCkseixlZSl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTyx6LGVlKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTy5sZW5ndGgpLE8ubGVuZ3RoPD0wKXJldHVybiB0''@;'; put 'put ''aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT0wO3ZhciB4LFAsVj0wO2lm''@;'; put 'put ''KCJiZSI9PT1lZSlmb3IobmU9Ty5sZW5ndGgtMSx4PTA7bmU+PTA7bmUtPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZS0xXTw8OHxPW25lLTJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtl''@;'; put 'put ''bHNlIGlmKCJsZSI9PT1lZSlmb3IobmU9MCx4PTA7bmU8Ty5sZW5ndGg7bmUrPTMpdGhpcy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZSsxXTw8OHxPW25lKzJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsr''@;'; put 'put ''KTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVuY3Rpb24oTyx6LGVlKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUr''@;'; put 'put ''Kyl0aGlzLndvcmRzW25lXT0wO3ZhciBWLHg9MCxQPTA7aWYoImJlIj09PWVlKWZvcihuZT1PLmxlbmd0aC0xO25lPj16O25lLT0yKVY9cmUoTyx6LG5lKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7ZWxz''@;'; put 'put ''ZSBmb3IobmU9KE8ubGVuZ3RoLXopJTI9PTA/eisxOno7bmU8Ty5sZW5ndGg7bmUrPTIpVj1yZShPLHosbmUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9w''@;'; put 'put ''YXJzZUJhc2U9ZnVuY3Rpb24oTyx6LGVlKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgbmU9MCx4PTE7eDw9NjcxMDg4NjM7eCo9eiluZSsrO25lLS0seD14L3p8MDtmb3IodmFyIFA9Ty5sZW5ndGgtZWUsVj1QJW5lLFQ9TWF0aC5taW4oUCxQLVYpK2VlLFM9MCxGPWVl''@;'; put 'put ''O0Y8VDtGKz1uZSlTPWFlKE8sRixGK25lLHopLHRoaXMuaW11bG4oeCksdGhpcy53b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9PVYpe3ZhciB5ZT0xO2ZvcihTPWFlKE8sRixPLmxlbmd0aCx6KSxGPTA7RjxWO0YrKyl5ZSo9ejt0aGlz''@;'; put 'put ''LmltdWxuKHllKSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9Uzp0aGlzLl9pYWRkbihTKX10aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTyl7Ty53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5n''@;'; put 'put ''dGg7eisrKU8ud29yZHNbel09dGhpcy53b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxlbmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsTy5yZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weShPKSxPfSxV''@;'; put 'put ''LnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5n''@;'; put 'put ''dGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LFUucHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxVLnByb3RvdHlwZS5pbnNwZWN0''@;'; put 'put ''PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIs''@;'; put 'put ''IjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAw''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLFc9WzAsMCwyNSwxNiwx''@;'; put 'put ''MiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgz''@;'; put 'put ''MTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMz''@;'; put 'put ''NTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5jdGlvbiBLKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlO3ZhciBlZT1oZS5sZW5ndGgrTy5sZW5ndGh8MDt6Lmxlbmd0aD1lZSxlZT1lZS0xfDA7dmFyIG5lPTB8aGUud29yZHNb''@;'; put 'put ''MF0seD0wfE8ud29yZHNbMF0sUD1uZSp4LFQ9UC82NzEwODg2NHwwO3oud29yZHNbMF09NjcxMDg4NjMmUDtmb3IodmFyIFM9MTtTPGVlO1MrKyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02NzEwODg2MyZULENlPU1hdGgubWluKFMsTy5sZW5ndGgtMSksRGU9TWF0aC5tYXgoMCxTLWhlLmxlbmd0''@;'; put 'put ''aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0obmU9MHxoZS53b3Jkc1tTLURlfDBdKSooeD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcxMDg4NjR8MCx5ZT02NzEwODg2MyZQO3oud29yZHNbU109MHx5ZSxUPTB8Rn1yZXR1cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6ei5sZW5ndGgtLSx6LnN0cmlwKCl9''@;'; put 'put ''VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTyx6KXt2YXIgZWU7aWYoej0wfHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJoZXgiPT09Tyl7ZWU9IiI7Zm9yKHZhciBuZT0wLHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMud29yZHNbUF0sVD0oMTY3NzcyMTUmKFY8PG5l''@;'; put 'put ''fHgpKS50b1N0cmluZygxNik7ZWU9MCE9KHg9Vj4+PjI0LW5lJjE2Nzc3MjE1KXx8UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQubGVuZ3RoXStUK2VlOlQrZWUsKG5lKz0yKT49MjYmJihuZS09MjYsUC0tKX1mb3IoMCE9PXgmJihlZT14LnRvU3RyaW5nKDE2KStlZSk7ZWUubGVuZ3RoJXohPTA7''@;'; put 'put ''KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0iLSIrZWUpLGVlfWlmKE89PT0oMHxPKSYmTz49MiYmTzw9MzYpe3ZhciBTPVdbT10sRj1OW09dO2VlPSIiO3ZhciB5ZT10aGlzLmNsb25lKCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXllLmlzWmVybygpOyl7dmFyIENlPXll''@;'; put 'put ''Lm1vZG4oRikudG9TdHJpbmcoTyk7ZWU9KHllPXllLmlkaXZuKEYpKS5pc1plcm8oKT9DZStlZTpZW1MtQ2UubGVuZ3RoXStDZStlZX1mb3IodGhpcy5pc1plcm8oKSYmKGVlPSIwIitlZSk7ZWUubGVuZ3RoJXohPTA7KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0i''@;'; put 'put ''LSIrZWUpLGVlfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYiKX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5n''@;'; put 'put ''dGgmJjE9PT10aGlzLndvcmRzWzJdP08rPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tTzpPfSxVLnByb3RvdHlw''@;'; put 'put ''ZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LFUucHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKE8seil7cmV0dXJuIEUodm9pZCAwIT09USksdGhpcy50b0FycmF5TGlrZShRLE8seil9LFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTyx6KXtyZXR1''@;'; put 'put ''cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxPLHopfSxVLnByb3RvdHlwZS50b0FycmF5TGlrZT1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT10aGlzLmJ5dGVMZW5ndGgoKSx4PWVlfHxNYXRoLm1heCgxLG5lKTtFKG5lPD14LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3Ro''@;'; put 'put ''IiksRSh4PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3RyaXAoKTt2YXIgVCxTLFA9ImxlIj09PXosVj1uZXcgTyh4KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtmb3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW1NdPVQ7Zm9y''@;'; put 'put ''KDtTPHg7UysrKVZbU109MH1lbHNle2ZvcihTPTA7Uzx4LW5lO1MrKylWW1NdPTA7Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVlt4LVMtMV09VH1yZXR1cm4gVn0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKE8p''@;'; put 'put ''e3JldHVybiAzMi1NYXRoLmNsejMyKE8pfTpmdW5jdGlvbihPKXt2YXIgej1PLGVlPTA7cmV0dXJuIHo+PTQwOTYmJihlZSs9MTMsej4+Pj0xMyksej49NjQmJihlZSs9Nyx6Pj4+PTcpLHo+PTgmJihlZSs9NCx6Pj4+PTQpLHo+PTImJihlZSs9Mix6Pj4+PTIpLGVlK3p9LFUucHJvdG90eXBl''@;'; put 'put ''Ll96ZXJvQml0cz1mdW5jdGlvbihPKXtpZigwPT09TylyZXR1cm4gMjY7dmFyIHo9TyxlZT0wO3JldHVybiAwPT0oODE5MSZ6KSYmKGVlKz0xMyx6Pj4+PTEzKSwwPT0oMTI3JnopJiYoZWUrPTcsej4+Pj03KSwwPT0oMTUmeikmJihlZSs9NCx6Pj4+PTQpLDA9PSgzJnopJiYoZWUrPTIsej4+''@;'; put 'put ''Pj0yKSwwPT0oMSZ6KSYmZWUrKyxlZX0sVS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkren0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24o''@;'; put 'put ''KXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgTz0wLHo9MDt6PHRoaXMubGVuZ3RoO3orKyl7dmFyIGVlPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbel0pO2lmKE8rPWVlLDI2IT09ZWUpYnJlYWt9cmV0dXJuIE99LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LFUucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihPKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0''@;'; put 'put ''aW9uKE8pe3JldHVybiB0aGlzLnRlc3RuKE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhp''@;'; put 'put ''cy5jbG9uZSgpLmluZWcoKX0sVS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sVS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMu''@;'; put 'put ''bGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jkc1t6XT10aGlzLndvcmRzW3pdfE8ud29yZHNbel07cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUp''@;'; put 'put ''KSx0aGlzLml1b3IoTyl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKE8pOk8uY2xvbmUoKS5pb3IodGhpcyl9LFUucHJvdG90eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5n''@;'; put 'put ''dGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE8pe3ZhciB6O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/Tzp0aGlzO2Zvcih2YXIgZWU9MDtlZTx6Lmxlbmd0aDtlZSsrKXRoaXMud29yZHNbZWVdPXRoaXMud29y''@;'; put 'put ''ZHNbZWVdJk8ud29yZHNbZWVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9LFUucHJvdG90eXBlLmFuZD1mdW5j''@;'; put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQodGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChPKTpPLmNsb25l''@;'; put 'put ''KCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3ZhciB6LGVlO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyh6PXRoaXMsZWU9Tyk6KHo9TyxlZT10aGlzKTtmb3IodmFyIG5lPTA7bmU8ZWUubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09ei53b3Jkc1tuZV1eZWUu''@;'; put 'put ''d29yZHNbbmVdO2lmKHRoaXMhPT16KWZvcig7bmU8ei5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT16LndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0''@;'; put 'put ''aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKE8pOk8uY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKE8pe3JldHVy''@;'; put 'put ''biB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5jbG9uZSgpLml1eG9yKHRoaXMpfSxVLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9MHxNYXRoLmNlaWwoTy8yNiksZWU9TyUyNjt0aGlzLl9l''@;'; put 'put ''eHBhbmQoeiksZWU+MCYmei0tO2Zvcih2YXIgbmU9MDtuZTx6O25lKyspdGhpcy53b3Jkc1tuZV09NjcxMDg4NjMmfnRoaXMud29yZHNbbmVdO3JldHVybiBlZT4wJiYodGhpcy53b3Jkc1tuZV09fnRoaXMud29yZHNbbmVdJjY3MTA4ODYzPj4yNi1lZSksdGhpcy5zdHJpcCgpfSxVLnByb3Rv''@;'; put 'put ''dHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4oTyl9LFUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oTyx6KXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIGVlPU8vMjZ8MCxuZT1PJTI2O3JldHVybiB0aGlzLl9leHBhbmQoZWUrMSksdGhpcy53''@;'; put 'put ''b3Jkc1tlZV09ej90aGlzLndvcmRzW2VlXXwxPDxuZTp0aGlzLndvcmRzW2VlXSZ+KDE8PG5lKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHosZWUsbmU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0''@;'; put 'put ''aXZlPTAsej10aGlzLmlzdWIoTyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3Ro''@;'; put 'put ''Pk8ubGVuZ3RoPyhlZT10aGlzLG5lPU8pOihlZT1PLG5lPXRoaXMpO2Zvcih2YXIgeD0wLFA9MDtQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxlZS53b3Jkc1tQXSkrKDB8bmUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zvcig7MCE9PXgmJlA8ZWUubGVuZ3Ro''@;'; put 'put ''O1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfGVlLndvcmRzW1BdKSt4KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0aD1lZS5sZW5ndGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09eCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoZWUhPT10aGlzKWZvcig7UDxlZS5sZW5ndGg7''@;'; put 'put ''UCsrKXRoaXMud29yZHNbUF09ZWUud29yZHNbUF07cmV0dXJuIHRoaXN9LFUucHJvdG90eXBlLmFkZD1mdW5jdGlvbihPKXt2YXIgejtyZXR1cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhPLm5lZ2F0aXZlPTAsej10aGlzLnN1YihPKSxPLm5lZ2F0aXZlXj0xLHopOjA9''@;'; put 'put ''PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0wLHo9Ty5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHopOnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMpfSxVLnByb3RvdHlwZS5pc3ViPWZ1''@;'; put 'put ''bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9dGhpcy5pYWRkKE8pO3JldHVybiBPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChPKSx0aGlzLm5lZ2F0aXZl''@;'; put 'put ''PTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgbmUseCxlZT10aGlzLmNtcChPKTtpZigwPT09ZWUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO2VlPjA/KG5lPXRoaXMseD1PKToobmU9Tyx4PXRoaXMpO2Zvcih2YXIgUD0wLFY9MDtWPHgu''@;'; put 'put ''bGVuZ3RoO1YrKylQPSh6PSgwfG5lLndvcmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2Zvcig7MCE9PVAmJlY8bmUubGVuZ3RoO1YrKylQPSh6PSgwfG5lLndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2lmKDA9''@;'; put 'put ''PT1QJiZWPG5lLmxlbmd0aCYmbmUhPT10aGlzKWZvcig7VjxuZS5sZW5ndGg7VisrKXRoaXMud29yZHNbVl09bmUud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFYpLG5lIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxVLnBy''@;'; put 'put ''b3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKE8pfTt2YXIgSj1mdW5jdGlvbihPLHosZWUpe3ZhciBULFMsRixuZT1PLndvcmRzLHg9ei53b3JkcyxQPWVlLndvcmRzLFY9MCx5ZT0wfG5lWzBdLENlPTgxOTEmeWUsRGU9eWU+Pj4xMyxQZT0wfG5lWzFd''@;'; put 'put ''LFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxndD0wfG5lWzJdLHd0PTgxOTEmZ3QsbXQ9Z3Q+Pj4xMyx2dD0wfG5lWzNdLEF0PTgxOTEmdnQsaHQ9dnQ+Pj4xMyxCdD0wfG5lWzRdLG9uPTgxOTEmQnQsX3Q9QnQ+Pj4xMyx0dD0wfG5lWzVdLGV0PTgxOTEmdHQsbHQ9dHQ+Pj4xMyxMdD0wfG5lWzZd''@;'; put 'put ''LEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfG5lWzddLEdlPTgxOTEmSHQsVWU9SHQ+Pj4xMyx5dD0wfG5lWzhdLGp0PTgxOTEmeXQsSnQ9eXQ+Pj4xMyxnbj0wfG5lWzldLGRuPTgxOTEmZ24seW49Z24+Pj4xMyxsbj0wfHhbMF0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8eFsxXSxz''@;'; put 'put ''cj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZwcixBbj1wcj4+PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249MHx4WzVdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfHhbNl0sd249ODE5''@;'; put 'put ''MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMsa3I9MHx4WzhdLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxjbj0wfHhbOV0sX249ODE5MSZjbixHdD1jbj4+PjEzO2VlLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5ndGg9MTk7dmFyIGtu''@;'; put 'put ''PShWKyhUPU1hdGguaW11bChDZSxObikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoQ2UsYm4pKStNYXRoLmltdWwoRGUsTm4pfDApKTw8MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERlLGJuKSkrKFM+Pj4xMyl8MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFFlLE5u''@;'; put 'put ''KSxTPShTPU1hdGguaW11bChRZSxibikpK01hdGguaW11bCgkZSxObil8MCxGPU1hdGguaW11bCgkZSxibik7dmFyIFZuPShWKyhUPVQrTWF0aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsWG4pfDApK01hdGguaW11bChEZSxzcil8MCkpPDwxMyl8MDtW''@;'; put 'put ''PSgoRj1GK01hdGguaW11bChEZSxYbil8MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYpfDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHd0LE5uKSxTPShTPU1hdGguaW11bCh3dCxibikpK01hdGguaW11bChtdCxObil8MCxGPU1hdGguaW11bChtdCxibiksVD1UK01hdGguaW11bChRZSxzcil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhuKXwwKStNYXRoLmltdWwoJGUsc3IpfDAsRj1GK01hdGguaW11bCgkZSxYbil8MDt2YXIgZW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UseHIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxxdCl8MCkrTWF0aC5pbXVsKERlLHhyKXwwKSk8''@;'; put 'put ''PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHF0KXwwKSsoUz4+PjEzKXwwKSsoZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVsKEF0LGJuKSkrTWF0aC5pbXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVsKGh0LGJuKSxUPVQrTWF0aC5pbXVs''@;'; put 'put ''KHd0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsWG4pfDApK01hdGguaW11bChtdCxzcil8MCxGPUYrTWF0aC5pbXVsKG10LFhuKXwwLFQ9VCtNYXRoLmltdWwoUWUseHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwLEY9RitNYXRoLmltdWwoJGUs''@;'; put 'put ''cXQpfDA7dmFyIEluPShWKyhUPVQrTWF0aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQW4pfDApK01hdGguaW11bChEZSxucil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxBbil8MCkrKFM+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3''@;'; put 'put ''MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5uKSxTPShTPU1hdGguaW11bChvbixibikpK01hdGguaW11bChfdCxObil8MCxGPU1hdGguaW11bChfdCxibiksVD1UK01hdGguaW11bChBdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LFhuKXwwKStNYXRoLmltdWwoaHQsc3IpfDAsRj1GK01hdGgu''@;'; put 'put ''aW11bChodCxYbil8MCxUPVQrTWF0aC5pbXVsKHd0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxGPUYrTWF0aC5pbXVsKG10LHF0KXwwLFQ9VCtNYXRoLmltdWwoUWUsbnIpfDAsUz0oUz1TK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVs''@;'; put 'put ''KCRlLG5yKXwwLEY9RitNYXRoLmltdWwoJGUsQW4pfDA7dmFyIEpuPShWKyhUPVQrTWF0aC5pbXVsKENlLFd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscG4pfDApK01hdGguaW11bChEZSxXdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxwbil8MCkrKFM+''@;'; put 'put ''Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0LE5uKSxTPShTPU1hdGguaW11bChldCxibikpK01hdGguaW11bChsdCxObil8MCxGPU1hdGguaW11bChsdCxibiksVD1UK01hdGguaW11bChvbixzcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLFhuKXwwKStN''@;'; put 'put ''YXRoLmltdWwoX3Qsc3IpfDAsRj1GK01hdGguaW11bChfdCxYbil8MCxUPVQrTWF0aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxGPUYrTWF0aC5pbXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmltdWwod3QsbnIpfDAsUz0oUz1TK01h''@;'; put 'put ''dGguaW11bCh3dCxBbil8MCkrTWF0aC5pbXVsKG10LG5yKXwwLEY9RitNYXRoLmltdWwobXQsQW4pfDAsVD1UK01hdGguaW11bChRZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBuKXwwKStNYXRoLmltdWwoJGUsV3QpfDAsRj1GK01hdGguaW11bCgkZSxwbil8MDt2YXIgb3I9KFYrKFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoQ2UsTnQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxzbil8MCkrTWF0aC5pbXVsKERlLE50KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHNuKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwo''@;'; put 'put ''Q3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXwwLEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQrTWF0aC5pbXVsKGV0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsWG4pfDApK01hdGguaW11bChsdCxzcil8MCxGPUYrTWF0aC5pbXVsKGx0LFhuKXwwLFQ9VCtN''@;'; put 'put ''YXRoLmltdWwob24seHIpfDAsUz0oUz1TK01hdGguaW11bChvbixxdCl8MCkrTWF0aC5pbXVsKF90LHhyKXwwLEY9RitNYXRoLmltdWwoX3QscXQpfDAsVD1UK01hdGguaW11bChBdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRj1GK01hdGgu''@;'; put 'put ''aW11bChodCxBbil8MCxUPVQrTWF0aC5pbXVsKHd0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxGPUYrTWF0aC5pbXVsKG10LHBuKXwwLFQ9VCtNYXRoLmltdWwoUWUsTnQpfDAsUz0oUz1TK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVs''@;'; put 'put ''KCRlLE50KXwwLEY9RitNYXRoLmltdWwoJGUsc24pfDA7dmFyIGdyPShWKyhUPVQrTWF0aC5pbXVsKENlLHduKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdG4pfDApK01hdGguaW11bChEZSx3bil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx0bil8MCkrKFM+''@;'; put 'put ''Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdlLE5uKSxTPShTPU1hdGguaW11bChHZSxibikpK01hdGguaW11bChVZSxObil8MCxGPU1hdGguaW11bChVZSxibiksVD1UK01hdGguaW11bChDdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LFhuKXwwKStN''@;'; put 'put ''YXRoLmltdWwoZnQsc3IpfDAsRj1GK01hdGguaW11bChmdCxYbil8MCxUPVQrTWF0aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChsdCx4cil8MCxGPUYrTWF0aC5pbXVsKGx0LHF0KXwwLFQ9VCtNYXRoLmltdWwob24sbnIpfDAsUz0oUz1TK01h''@;'; put 'put ''dGguaW11bChvbixBbil8MCkrTWF0aC5pbXVsKF90LG5yKXwwLEY9RitNYXRoLmltdWwoX3QsQW4pfDAsVD1UK01hdGguaW11bChBdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBuKXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRj1GK01hdGguaW11bChodCxwbil8MCxUPVQrTWF0aC5pbXVs''@;'; put 'put ''KHd0LE50KXwwLFM9KFM9UytNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bChtdCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10LHNuKXwwLFQ9VCtNYXRoLmltdWwoUWUsd24pfDAsUz0oUz1TK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwLEY9RitNYXRoLmltdWwoJGUs''@;'; put 'put ''dG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQm4pfDApK01hdGguaW11bChEZSxUcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxCbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3''@;'; put 'put ''MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5uKSxTPShTPU1hdGguaW11bChqdCxibikpK01hdGguaW11bChKdCxObil8MCxGPU1hdGguaW11bChKdCxibiksVD1UK01hdGguaW11bChHZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLFhuKXwwKStNYXRoLmltdWwoVWUsc3IpfDAsRj1GK01hdGgu''@;'; put 'put ''aW11bChVZSxYbil8MCxUPVQrTWF0aC5pbXVsKEN0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXwwLFQ9VCtNYXRoLmltdWwoZXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChldCxBbil8MCkrTWF0aC5pbXVs''@;'; put 'put ''KGx0LG5yKXwwLEY9RitNYXRoLmltdWwobHQsQW4pfDAsVD1UK01hdGguaW11bChvbixXdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRj1GK01hdGguaW11bChfdCxwbil8MCxUPVQrTWF0aC5pbXVsKEF0LE50KXwwLFM9KFM9UytNYXRoLmltdWwo''@;'; put 'put ''QXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNuKXwwLFQ9VCtNYXRoLmltdWwod3Qsd24pfDAsUz0oUz1TK01hdGguaW11bCh3dCx0bil8MCkrTWF0aC5pbXVsKG10LHduKXwwLEY9RitNYXRoLmltdWwobXQsdG4pfDAsVD1UK01hdGguaW11bChRZSxUcil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJuKXwwKStNYXRoLmltdWwoJGUsVHIpfDAsRj1GK01hdGguaW11bCgkZSxCbil8MDt2YXIgVnI9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx1bil8MCkrTWF0aC5pbXVsKERlLG1uKXwwKSk8''@;'; put 'put ''PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHVuKXwwKSsoUz4+PjEzKXwwKSsoVnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVsKGRuLGJuKSkrTWF0aC5pbXVsKHluLE5uKXwwLEY9TWF0aC5pbXVsKHluLGJuKSxUPVQrTWF0aC5pbXVs''@;'; put 'put ''KGp0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsWG4pfDApK01hdGguaW11bChKdCxzcil8MCxGPUYrTWF0aC5pbXVsKEp0LFhuKXwwLFQ9VCtNYXRoLmltdWwoR2UseHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhyKXwwLEY9RitNYXRoLmltdWwoVWUs''@;'; put 'put ''cXQpfDAsVD1UK01hdGguaW11bChDdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRj1GK01hdGguaW11bChmdCxBbil8MCxUPVQrTWF0aC5pbXVsKGV0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChsdCxXdCl8''@;'; put 'put ''MCxGPUYrTWF0aC5pbXVsKGx0LHBuKXwwLFQ9VCtNYXRoLmltdWwob24sTnQpfDAsUz0oUz1TK01hdGguaW11bChvbixzbil8MCkrTWF0aC5pbXVsKF90LE50KXwwLEY9RitNYXRoLmltdWwoX3Qsc24pfDAsVD1UK01hdGguaW11bChBdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHRuKXww''@;'; put 'put ''KStNYXRoLmltdWwoaHQsd24pfDAsRj1GK01hdGguaW11bChodCx0bil8MCxUPVQrTWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxGPUYrTWF0aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRoLmltdWwoUWUsbW4pfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRoLmltdWwoJGUsdW4pfDA7dmFyIGlpPShWKyhUPVQrTWF0aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsR3QpfDApK01hdGguaW11bChEZSxfbil8MCkpPDwxMyl8MDtW''@;'; put 'put ''PSgoRj1GK01hdGguaW11bChEZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYpfDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHNyKSxTPShTPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixzcil8MCxGPU1hdGguaW11bCh5bixYbiksVD1UK01hdGguaW11bChqdCx4cil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoSnQseHIpfDAsRj1GK01hdGguaW11bChKdCxxdCl8MCxUPVQrTWF0aC5pbXVsKEdlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxGPUYrTWF0aC5pbXVsKFVlLEFuKXwwLFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0oUz1TK01hdGguaW11bChDdCxwbil8MCkrTWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitNYXRoLmltdWwoZnQscG4pfDAsVD1UK01hdGguaW11bChldCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHNuKXwwKStNYXRoLmltdWwobHQsTnQpfDAsRj1GK01h''@;'; put 'put ''dGguaW11bChsdCxzbil8MCxUPVQrTWF0aC5pbXVsKG9uLHduKXwwLFM9KFM9UytNYXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3bil8MCxGPUYrTWF0aC5pbXVsKF90LHRuKXwwLFQ9VCtNYXRoLmltdWwoQXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChBdCxCbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKGh0LFRyKXwwLEY9RitNYXRoLmltdWwoaHQsQm4pfDAsVD1UK01hdGguaW11bCh3dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHVuKXwwKStNYXRoLmltdWwobXQsbW4pfDAsRj1GK01hdGguaW11bChtdCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtNYXRoLmltdWwoUWUsX24pfDApfDAp''@;'; put 'put ''KygoODE5MSYoUz0oUz1TK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKCRlLEd0KXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4seHIpLFM9KFM9TWF0aC5pbXVsKGRu''@;'; put 'put ''LHF0KSkrTWF0aC5pbXVsKHluLHhyKXwwLEY9TWF0aC5pbXVsKHluLHF0KSxUPVQrTWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChKdCxucil8MCxGPUYrTWF0aC5pbXVsKEp0LEFuKXwwLFQ9VCtNYXRoLmltdWwoR2UsV3QpfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bChHZSxwbil8MCkrTWF0aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRoLmltdWwoVWUscG4pfDAsVD1UK01hdGguaW11bChDdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRj1GK01hdGguaW11bChmdCxzbil8MCxUPVQrTWF0aC5p''@;'; put 'put ''bXVsKGV0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11bChsdCx3bil8MCxGPUYrTWF0aC5pbXVsKGx0LHRuKXwwLFQ9VCtNYXRoLmltdWwob24sVHIpfDAsUz0oUz1TK01hdGguaW11bChvbixCbil8MCkrTWF0aC5pbXVsKF90LFRyKXwwLEY9RitNYXRoLmltdWwo''@;'; put 'put ''X3QsQm4pfDAsVD1UK01hdGguaW11bChBdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRj1GK01hdGguaW11bChodCx1bil8MDt2YXIgbGk9KFYrKFQ9VCtNYXRoLmltdWwod3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh3''@;'; put 'put ''dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbnIpLFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkrTWF0aC5pbXVsKHluLG5yKXwwLEY9''@;'; put 'put ''TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChKdCxXdCl8MCxGPUYrTWF0aC5pbXVsKEp0LHBuKXwwLFQ9VCtNYXRoLmltdWwoR2UsTnQpfDAsUz0oUz1TK01hdGguaW11bChHZSxzbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKFVlLE50KXwwLEY9RitNYXRoLmltdWwoVWUsc24pfDAsVD1UK01hdGguaW11bChDdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAsRj1GK01hdGguaW11bChmdCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0LFRyKXwwLFM9KFM9UytNYXRoLmlt''@;'; put 'put ''dWwoZXQsQm4pfDApK01hdGguaW11bChsdCxUcil8MCxGPUYrTWF0aC5pbXVsKGx0LEJuKXwwLFQ9VCtNYXRoLmltdWwob24sbW4pfDAsUz0oUz1TK01hdGguaW11bChvbix1bil8MCkrTWF0aC5pbXVsKF90LG1uKXwwLEY9RitNYXRoLmltdWwoX3QsdW4pfDA7dmFyIE1pPShWKyhUPVQrTWF0''@;'; put 'put ''aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQXQsR3QpfDApK01hdGguaW11bChodCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChodCxHdCl8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFd0''@;'; put 'put ''KSxTPShTPU1hdGguaW11bChkbixwbikpK01hdGguaW11bCh5bixXdCl8MCxGPU1hdGguaW11bCh5bixwbiksVD1UK01hdGguaW11bChqdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmltdWwoSnQsTnQpfDAsRj1GK01hdGguaW11bChKdCxzbil8MCxUPVQrTWF0aC5p''@;'; put 'put ''bXVsKEdlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11bChVZSx3bil8MCxGPUYrTWF0aC5pbXVsKFVlLHRuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0LFRyKXwwLEY9RitNYXRoLmltdWwo''@;'; put 'put ''ZnQsQm4pfDAsVD1UK01hdGguaW11bChldCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHVuKXwwKStNYXRoLmltdWwobHQsbW4pfDAsRj1GK01hdGguaW11bChsdCx1bil8MDt2YXIgbzA9KFYrKFQ9VCtNYXRoLmltdWwob24sX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChv''@;'; put 'put ''bixHdCl8MCkrTWF0aC5pbXVsKF90LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTnQpLFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkrTWF0aC5pbXVsKHluLE50KXwwLEY9''@;'; put 'put ''TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0aC5pbXVsKGp0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChKdCx3bil8MCxGPUYrTWF0aC5pbXVsKEp0LHRuKXwwLFQ9VCtNYXRoLmltdWwoR2UsVHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxCbil8MCkrTWF0aC5p''@;'; put 'put ''bXVsKFVlLFRyKXwwLEY9RitNYXRoLmltdWwoVWUsQm4pfDAsVD1UK01hdGguaW11bChDdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRj1GK01hdGguaW11bChmdCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtNYXRoLmltdWwoZXQsX24pfDApfDAp''@;'; put 'put ''KygoODE5MSYoUz0oUz1TK01hdGguaW11bChldCxHdCl8MCkrTWF0aC5pbXVsKGx0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGx0LEd0KXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sd24pLFM9KFM9TWF0aC5pbXVsKGRu''@;'; put 'put ''LHRuKSkrTWF0aC5pbXVsKHluLHduKXwwLEY9TWF0aC5pbXVsKHluLHRuKSxUPVQrTWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChKdCxUcil8MCxGPUYrTWF0aC5pbXVsKEp0LEJuKXwwLFQ9VCtNYXRoLmltdWwoR2UsbW4pfDAsUz0oUz1T''@;'; put 'put ''K01hdGguaW11bChHZSx1bil8MCkrTWF0aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRoLmltdWwoVWUsdW4pfDA7dmFyIGQwPShWKyhUPVQrTWF0aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCkpPDwxMyl8MDtW''@;'; put 'put ''PSgoRj1GK01hdGguaW11bChmdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYpfDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFRyKSxTPShTPU1hdGguaW11bChkbixCbikpK01hdGguaW11bCh5bixUcil8MCxGPU1hdGguaW11bCh5bixCbiksVD1UK01hdGguaW11bChqdCxtbil8''@;'; put 'put ''MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoSnQsbW4pfDAsRj1GK01hdGguaW11bChKdCx1bil8MDt2YXIgbTA9KFYrKFQ9VCtNYXRoLmltdWwoR2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChHZSxHdCl8MCkrTWF0aC5pbXVsKFVlLF9uKXwwKSk8''@;'; put 'put ''PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFVlLEd0KXwwKSsoUz4+PjEzKXwwKSsobTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVsKGRuLHVuKSkrTWF0aC5pbXVsKHluLG1uKXwwLEY9TWF0aC5pbXVsKHluLHVuKTt2YXIgRzA9KFYrKFQ9''@;'; put 'put ''VCtNYXRoLmltdWwoanQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChqdCxHdCl8MCkrTWF0aC5pbXVsKEp0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKEp0LEd0KXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjM7dmFyIERpPShWKyhU''@;'; put 'put ''PU1hdGguaW11bChkbixfbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoZG4sR3QpKStNYXRoLmltdWwoeW4sX24pfDApKTw8MTMpfDA7cmV0dXJuIFY9KChGPU1hdGguaW11bCh5bixHdCkpKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxQWzBdPWtuLFBbMV09Vm4s''@;'; put 'put ''UFsyXT1lbixQWzNdPUluLFBbNF09Sm4sUFs1XT1vcixQWzZdPWdyLFBbN109S3IsUFs4XT1WcixQWzldPWlpLFBbMTBdPVJyLFBbMTFdPWxpLFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRdPW4wLFBbMTVdPWQwLFBbMTZdPW0wLFBbMTddPUcwLFBbMThdPURpLDAhPT1WJiYoUFsxOV09VixlZS5s''@;'; put 'put ''ZW5ndGgrKyksZWV9O2Z1bmN0aW9uIG9lKGhlLE8seil7cmV0dXJuKG5ldyBjZSkubXVscChoZSxPLHopfWZ1bmN0aW9uIGNlKGhlLE8pe3RoaXMueD1oZSx0aGlzLnk9T31NYXRoLmltdWx8fChKPUspLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRoaXMubGVu''@;'; put 'put ''Z3RoK08ubGVuZ3RoO3JldHVybiBlZT0xMD09PXRoaXMubGVuZ3RoJiYxMD09PU8ubGVuZ3RoP0oodGhpcyxPLHopOm5lPDYzP0sodGhpcyxPLHopOm5lPDEwMjQ/ZnVuY3Rpb24gc2UoaGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmUsei5sZW5ndGg9aGUubGVuZ3Ro''@;'; put 'put ''K08ubGVuZ3RoO2Zvcih2YXIgZWU9MCxuZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsrKXt2YXIgUD1uZTtuZT0wO2Zvcih2YXIgVj02NzEwODg2MyZlZSxUPU1hdGgubWluKHgsTy5sZW5ndGgtMSksUz1NYXRoLm1heCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7UysrKXt2YXIgRGU9KDB8aGUud29y''@;'; put 'put ''ZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSksUGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2MyYoUGU9UGUrVnwwKSxuZSs9KFA9KFA9UCsoRGUvNjcxMDg4NjR8MCl8MCkrKFBlPj4+MjYpfDApPj4+MjYsUCY9NjcxMDg4NjN9ei53b3Jkc1t4XT1WLGVlPVAsUD1uZX1yZXR1cm4gMCE9PWVlP3oud29y''@;'; put 'put ''ZHNbeF09ZWU6ei5sZW5ndGgtLSx6LnN0cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlzLE8seiksZWV9LGNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksZWU9VS5wcm90b3R5cGUuX2NvdW50Qml0cyhPKS0xLG5lPTA7bmU8TztuZSsrKXpbbmVd''@;'; put 'put ''PXRoaXMucmV2QmluKG5lLGVlLE8pO3JldHVybiB6fSxjZS5wcm90b3R5cGUucmV2QmluPWZ1bmN0aW9uKE8seixlZSl7aWYoMD09PU98fE89PT1lZS0xKXJldHVybiBPO2Zvcih2YXIgbmU9MCx4PTA7eDx6O3grKyluZXw9KDEmTyk8PHoteC0xLE8+Pj0xO3JldHVybiBuZX0sY2UucHJvdG90''@;'; put 'put ''eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6LGVlLG5lLHgsUCl7Zm9yKHZhciBWPTA7VjxQO1YrKyluZVtWXT16W09bVl1dLHhbVl09ZWVbT1tWXV19LGNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oTyx6LGVlLG5lLHgsUCl7dGhpcy5wZXJtdXRlKFAsTyx6LGVlLG5lLHgpO2Zvcih2''@;'; put 'put ''YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFyIFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0aC5QSS9UKSx5ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBDZT1TLERlPUYsUGU9MDtQZTxWO1BlKyspe3ZhciBRZT1lZVt5ZStQZV0sJGU9bmVbeWUrUGVdLGd0PWVl''@;'; put 'put ''W3llK1BlK1ZdLHd0PW5lW3llK1BlK1ZdLG10PUNlKmd0LURlKnd0O3d0PUNlKnd0K0RlKmd0LGVlW3llK1BlXT1RZSsoZ3Q9bXQpLG5lW3llK1BlXT0kZSt3dCxlZVt5ZStQZStWXT1RZS1ndCxuZVt5ZStQZStWXT0kZS13dCxQZSE9PVQmJihtdD1TKkNlLUYqRGUsRGU9UypEZStGKkNlLENl''@;'; put 'put ''PW10KX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihPLHope3ZhciBlZT0xfE1hdGgubWF4KHosTyksbmU9MSZlZSx4PTA7Zm9yKGVlPWVlLzJ8MDtlZTtlZT4+Pj0xKXgrKztyZXR1cm4gMTw8eCsxK25lfSxjZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKE8seixl''@;'; put 'put ''ZSl7aWYoIShlZTw9MSkpZm9yKHZhciBuZT0wO25lPGVlLzI7bmUrKyl7dmFyIHg9T1tuZV07T1tuZV09T1tlZS1uZS0xXSxPW2VlLW5lLTFdPXgseD16W25lXSx6W25lXT0teltlZS1uZS0xXSx6W2VlLW5lLTFdPS14fX0sY2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihPLHop''@;'; put 'put ''e2Zvcih2YXIgZWU9MCxuZT0wO25lPHovMjtuZSsrKXt2YXIgeD04MTkyKk1hdGgucm91bmQoT1syKm5lKzFdL3opK01hdGgucm91bmQoT1syKm5lXS96KStlZTtPW25lXT02NzEwODg2MyZ4LGVlPXg8NjcxMDg4NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJuIE99LGNlLnByb3RvdHlwZS5jb252''@;'; put 'put ''ZXJ0MTNiPWZ1bmN0aW9uKE8seixlZSxuZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQKyspZWVbMipQXT04MTkxJih4Kz0wfE9bUF0pLGVlWzIqUCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+PTEzO2ZvcihQPTIqejtQPG5lOysrUCllZVtQXT0wO0UoMD09PXgpLEUoMD09KC04MTkyJngpKX0sY2Uu''@;'; put 'put ''cHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShPKSxlZT0wO2VlPE87ZWUrKyl6W2VlXT0wO3JldHVybiB6fSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoTy5sZW5ndGgsei5sZW5ndGgpLHg9''@;'; put 'put ''dGhpcy5tYWtlUkJUKG5lKSxQPXRoaXMuc3R1YihuZSksVj1uZXcgQXJyYXkobmUpLFQ9bmV3IEFycmF5KG5lKSxTPW5ldyBBcnJheShuZSksRj1uZXcgQXJyYXkobmUpLHllPW5ldyBBcnJheShuZSksQ2U9bmV3IEFycmF5KG5lKSxEZT1lZS53b3JkcztEZS5sZW5ndGg9bmUsdGhpcy5jb252''@;'; put 'put ''ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgsVixuZSksdGhpcy5jb252ZXJ0MTNiKHoud29yZHMsei5sZW5ndGgsRixuZSksdGhpcy50cmFuc2Zvcm0oVixQLFQsUyxuZSx4KSx0aGlzLnRyYW5zZm9ybShGLFAseWUsQ2UsbmUseCk7Zm9yKHZhciBQZT0wO1BlPG5lO1BlKyspe3ZhciBRZT1UW1Bl''@;'; put 'put ''XSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1NbUGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRoaXMuY29uanVnYXRlKFQsUyxuZSksdGhpcy50cmFuc2Zvcm0oVCxTLERlLFAsbmUseCksdGhpcy5jb25qdWdhdGUoRGUsUCxuZSksdGhpcy5ub3JtYWxpemUxM2Io''@;'; put 'put ''RGUsbmUpLGVlLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5ndGg9Ty5sZW5ndGgrei5sZW5ndGgsZWUuc3RyaXAoKX0sVS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtP''@;'; put 'put ''Lmxlbmd0aCksdGhpcy5tdWxUbyhPLHopfSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksb2UodGhpcyxPLHopfSxVLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8pe3Jl''@;'; put 'put ''dHVybiB0aGlzLmNsb25lKCkubXVsVG8oTyx0aGlzKX0sVS5wcm90b3R5cGUuaW11bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZhciB6PTAsZWU9MDtlZTx0aGlzLmxlbmd0aDtlZSsrKXt2YXIgbmU9KDB8dGhpcy53b3Jkc1tlZV0pKk8s''@;'; put 'put ''eD0oNjcxMDg4NjMmbmUpKyg2NzEwODg2MyZ6KTt6Pj49MjYseis9bmUvNjcxMDg4NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jkc1tlZV09NjcxMDg4NjMmeH1yZXR1cm4gMCE9PXomJih0aGlzLndvcmRzW2VlXT16LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVuY3Rp''@;'; put 'put ''b24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihPKX0sVS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxVLnByb3RvdHlwZS5wb3c9ZnVu''@;'; put 'put ''Y3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24gdGUoaGUpe2Zvcih2YXIgTz1uZXcgQXJyYXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6PE8ubGVuZ3RoO3orKyl7dmFyIG5lPXolMjY7T1t6XT0oaGUud29yZHNbei8yNnwwXSYxPDxuZSk+Pj5uZX1yZXR1cm4gT30oTyk7aWYoMD09PXoubGVuZ3RoKXJl''@;'; put 'put ''dHVybiBuZXcgVSgxKTtmb3IodmFyIGVlPXRoaXMsbmU9MDtuZTx6Lmxlbmd0aCYmMD09PXpbbmVdO25lKyssZWU9ZWUuc3FyKCkpO2lmKCsrbmU8ei5sZW5ndGgpZm9yKHZhciB4PWVlLnNxcigpO25lPHoubGVuZ3RoO25lKysseD14LnNxcigpKTAhPT16W25lXSYmKGVlPWVlLm11bCh4KSk7''@;'; put 'put ''cmV0dXJuIGVlfSxVLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB4LHo9TyUyNixlZT0oTy16KS8yNixuZT02NzEwODg2Mz4+PjI2LXo8PDI2LXo7aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7''@;'; put 'put ''dmFyIFY9dGhpcy53b3Jkc1t4XSZuZTt0aGlzLndvcmRzW3hdPSgwfHRoaXMud29yZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16fVAmJih0aGlzLndvcmRzW3hdPVAsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWVlKXtmb3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXRoaXMud29yZHNbeCtlZV09''@;'; put 'put ''dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8ZWU7eCsrKXRoaXMud29yZHNbeF09MDt0aGlzLmxlbmd0aCs9ZWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKE8pfSxVLnByb3Rv''@;'; put 'put ''dHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApLG5lPXo/KHoteiUyNikvMjY6MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4oKE8teCkvMjYsdGhpcy5sZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4NjM+Pj54PDx4LFQ9ZWU7aWYobmUt''@;'; put 'put ''PVAsbmU9TWF0aC5tYXgoMCxuZSksVCl7Zm9yKHZhciBTPTA7UzxQO1MrKylULndvcmRzW1NdPXRoaXMud29yZHNbU107VC5sZW5ndGg9UH1pZigwIT09UClpZih0aGlzLmxlbmd0aD5QKWZvcih0aGlzLmxlbmd0aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlz''@;'; put 'put ''LndvcmRzW1MrUF07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3RoLTE7Uz49MCYmKDAhPT1GfHxTPj1uZSk7Uy0tKXt2YXIgeWU9MHx0aGlzLndvcmRzW1NdO3RoaXMud29yZHNbU109Rjw8MjYteHx5ZT4+PngsRj15ZSZWfXJldHVy''@;'; put 'put ''biBUJiYwIT09RiYmKFQud29yZHNbVC5sZW5ndGgrK109RiksMD09PXRoaXMubGVuZ3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oTyx6LGVlKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhp''@;'; put 'put ''cy5pdXNocm4oTyx6LGVlKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKE8pfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihPKX0sVS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihP''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKE8pfSxVLnByb3RvdHlwZS51c2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihPKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsZWU9''@;'; put 'put ''KE8teikvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9ZWV8fCEodGhpcy53b3Jkc1tlZV0mMTw8eikpfSxVLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsZWU9KE8teikvMjY7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRp''@;'; put 'put ''dmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRoaXMubGVuZ3RoPD1lZT90aGlzOigwIT09eiYmZWUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihlZSx0aGlzLmxlbmd0aCksMCE9PXomJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEw''@;'; put 'put ''ODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKE8pfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzww''@;'; put 'put ''P3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8odGhpcy53b3Jkc1swXT1PLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTyksdGhpcy5u''@;'; put 'put ''ZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE8pfSxVLnByb3RvdHlwZS5faWFkZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jkc1swXSs9Tztmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPj02NzEwODg2NDt6KyspdGhpcy53b3Jkc1t6XS09NjcxMDg4NjQsej09PXRo''@;'; put 'put ''aXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHorMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTyl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2''@;'; put 'put ''NCksTzwwKXJldHVybiB0aGlzLmlhZGRuKC1PKTtpZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09TywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlz''@;'; put 'put ''LndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZvcih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel08MDt6KyspdGhpcy53b3Jkc1t6XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t6KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90''@;'; put 'put ''eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihPKX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKE8pfSxVLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlz''@;'; put 'put ''fSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKE8seixlZSl7dmFyIHg7dGhpcy5fZXhwYW5kKE8ubGVuZ3RoK2VlKTt2YXIgUCxWPTA7Zm9yKHg9MDt4PE8ubGVuZ3RoO3grKyl7''@;'; put 'put ''UD0oMHx0aGlzLndvcmRzW3grZWVdKStWO3ZhciBUPSgwfE8ud29yZHNbeF0pKno7Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNiktKFQvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQfWZvcig7eDx0aGlzLmxlbmd0aC1lZTt4KyspVj0oUD0oMHx0aGlzLndvcmRzW3grZWVd''@;'; put 'put ''KStWKT4+MjYsdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQO2lmKDA9PT1WKXJldHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUoLTE9PT1WKSxWPTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKVY9KFA9LSgwfHRoaXMud29yZHNbeF0pK1YpPj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlA7cmV0''@;'; put 'put ''dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl93b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRoaXMuY2xvbmUoKSx4PU8sUD0wfHgud29yZHNbeC5sZW5ndGgtMV07MCE9KGVlPTI2LXRoaXMuX2NvdW50Qml0cyhQKSkmJih4PXgudXNobG4oZWUp''@;'; put 'put ''LG5lLml1c2hsbihlZSksUD0wfHgud29yZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9bmUubGVuZ3RoLXgubGVuZ3RoO2lmKCJtb2QiIT09eil7KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1UKzEsUy53b3Jkcz1uZXcgQXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIgRj0wO0Y8Uy5sZW5ndGg7RisrKVMu''@;'; put 'put ''d29yZHNbRl09MH12YXIgeWU9bmUuY2xvbmUoKS5faXNobG5zdWJtdWwoeCwxLFQpOzA9PT15ZS5uZWdhdGl2ZSYmKG5lPXllLFMmJihTLndvcmRzW1RdPTEpKTtmb3IodmFyIENlPVQtMTtDZT49MDtDZS0tKXt2YXIgRGU9NjcxMDg4NjQqKDB8bmUud29yZHNbeC5sZW5ndGgrQ2VdKSsoMHxu''@;'; put 'put ''ZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7Zm9yKERlPU1hdGgubWluKERlL1B8MCw2NzEwODg2MyksbmUuX2lzaGxuc3VibXVsKHgsRGUsQ2UpOzAhPT1uZS5uZWdhdGl2ZTspRGUtLSxuZS5uZWdhdGl2ZT0wLG5lLl9pc2hsbnN1Ym11bCh4LDEsQ2UpLG5lLmlzWmVybygpfHwobmUubmVnYXRp''@;'; put 'put ''dmVePTEpO1MmJihTLndvcmRzW0NlXT1EZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSxuZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9PWVlJiZuZS5pdXNocm4oZWUpLHtkaXY6U3x8bnVsbCxtb2Q6bmV9fSxVLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6LGVlKXtyZXR1cm4gRSghTy5pc1pl''@;'; put 'put ''cm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8seiksIm1vZCIhPT16JiYobmU9UC5kaXYubmVnKCkpLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUm''@;'; put 'put ''JjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQoTykpLHtkaXY6bmUsbW9kOnh9KTowPT09dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmU/KFA9dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwibW9kIiE9PXomJihuZT1QLmRpdi5uZWcoKSkse2RpdjpuZSxtb2Q6UC5tb2R9KTowIT0odGhpcy5uZWdh''@;'; put 'put ''dGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlzLm5lZygpLmRpdm1vZChPLm5lZygpLHopLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykpLHtkaXY6UC5kaXYsbW9kOnh9KTpPLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoTyk8MD97ZGl2''@;'; put 'put ''Om5ldyBVKDApLG1vZDp0aGlzfToxPT09Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXo/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6''@;'; put 'put ''bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihPLHopO3ZhciBuZSx4LFB9LFUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywiZGl2IiwhMSkuZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMu''@;'; put 'put ''ZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMCkubW9kfSxVLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihPKXt2YXIgej10aGlzLmRpdm1vZChPKTtpZih6Lm1vZC5pc1plcm8oKSlyZXR1''@;'; put 'put ''cm4gei5kaXY7dmFyIGVlPTAhPT16LmRpdi5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8pOnoubW9kLG5lPU8udXNocm4oMSkseD1PLmFuZGxuKDEpLFA9ZWUuY21wKG5lKTtyZXR1cm4gUDwwfHwxPT09eCYmMD09PVA/ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZlP3ouZGl2LmlzdWJuKDEpOnouZGl2''@;'; put 'put ''LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE8pe0UoTzw9NjcxMDg4NjMpO2Zvcih2YXIgej0oMTw8MjYpJU8sZWU9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pZWU9KHoqZWUrKDB8dGhpcy53b3Jkc1tuZV0pKSVPO3JldHVybiBlZX0sVS5wcm90b3R5cGUuaWRp''@;'; put 'put ''dm49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PTAsZWU9dGhpcy5sZW5ndGgtMTtlZT49MDtlZS0tKXt2YXIgbmU9KDB8dGhpcy53b3Jkc1tlZV0pKzY3MTA4ODY0Kno7dGhpcy53b3Jkc1tlZV09bmUvT3wwLHo9bmUlT31yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3Rv''@;'; put 'put ''dHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4oTyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHo9dGhpcyxlZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6''@;'; put 'put ''ei5jbG9uZSgpO2Zvcih2YXIgbmU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBVKDApLFY9bmV3IFUoMSksVD0wO3ouaXNFdmVuKCkmJmVlLmlzRXZlbigpOyl6Lml1c2hybigxKSxlZS5pdXNocm4oMSksKytUO2Zvcih2YXIgUz1lZS5jbG9uZSgpLEY9ei5jbG9uZSgpOyF6LmlzWmVybygp''@;'; put 'put ''Oyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsrK3llLENlPDw9MSk7aWYoeWU+MClmb3Ioei5pdXNocm4oeWUpO3llLS0gPjA7KShuZS5pc09kZCgpfHx4LmlzT2RkKCkpJiYobmUuaWFkZChTKSx4LmlzdWIoRikpLG5lLml1c2hybigxKSx4Lml1c2hybigx''@;'; put 'put ''KTtmb3IodmFyIERlPTAsUGU9MTswPT0oZWUud29yZHNbMF0mUGUpJiZEZTwyNjsrK0RlLFBlPDw9MSk7aWYoRGU+MClmb3IoZWUuaXVzaHJuKERlKTtEZS0tID4wOykoUC5pc09kZCgpfHxWLmlzT2RkKCkpJiYoUC5pYWRkKFMpLFYuaXN1YihGKSksUC5pdXNocm4oMSksVi5pdXNocm4oMSk7''@;'; put 'put ''ei5jbXAoZWUpPj0wPyh6LmlzdWIoZWUpLG5lLmlzdWIoUCkseC5pc3ViKFYpKTooZWUuaXN1Yih6KSxQLmlzdWIobmUpLFYuaXN1Yih4KSl9cmV0dXJue2E6UCxiOlYsZ2NkOmVlLml1c2hsbihUKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxF''@;'; put 'put ''KCFPLmlzWmVybygpKTt2YXIgeWUsej10aGlzLGVlPU8uY2xvbmUoKTt6PTAhPT16Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciBuZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9ZWUuY2xvbmUoKTt6LmNtcG4oMSk+MCYmZWUuY21wbigxKT4wOyl7Zm9yKHZhciBWPTAsVD0x''@;'; put 'put ''OzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2OysrVixUPDw9MSk7aWYoVj4wKWZvcih6Lml1c2hybihWKTtWLS0gPjA7KW5lLmlzT2RkKCkmJm5lLmlhZGQoUCksbmUuaXVzaHJuKDEpO2Zvcih2YXIgUz0wLEY9MTswPT0oZWUud29yZHNbMF0mRikmJlM8MjY7KytTLEY8PD0xKTtpZihTPjApZm9y''@;'; put 'put ''KGVlLml1c2hybihTKTtTLS0gPjA7KXguaXNPZGQoKSYmeC5pYWRkKFApLHguaXVzaHJuKDEpO3ouY21wKGVlKT49MD8oei5pc3ViKGVlKSxuZS5pc3ViKHgpKTooZWUuaXN1Yih6KSx4LmlzdWIobmUpKX1yZXR1cm4oeWU9MD09PXouY21wbigxKT9uZTp4KS5jbXBuKDApPDAmJnllLmlhZGQo''@;'; put 'put ''TykseWV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihPKXtpZih0aGlzLmlzWmVybygpKXJldHVybiBPLmFicygpO2lmKE8uaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9dGhpcy5jbG9uZSgpLGVlPU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAsZWUubmVnYXRpdmU9MDtmb3IodmFy''@;'; put 'put ''IG5lPTA7ei5pc0V2ZW4oKSYmZWUuaXNFdmVuKCk7bmUrKyl6Lml1c2hybigxKSxlZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3ouaXNFdmVuKCk7KXouaXVzaHJuKDEpO2Zvcig7ZWUuaXNFdmVuKCk7KWVlLml1c2hybigxKTt2YXIgeD16LmNtcChlZSk7aWYoeDwwKXt2YXIgUD16O3o9ZWUs''@;'; put 'put ''ZWU9UH1lbHNlIGlmKDA9PT14fHwwPT09ZWUuY21wbigxKSlicmVhazt6LmlzdWIoZWUpfXJldHVybiBlZS5pdXNobG4obmUpfSxVLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmVnY2QoTykuYS51bW9kKE8pfSxVLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXty''@;'; put 'put ''ZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZPfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlv''@;'; put 'put ''bihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyk7dmFyIHo9TyUyNixlZT0oTy16KS8yNixuZT0xPDx6O2lmKHRoaXMubGVuZ3RoPD1lZSlyZXR1cm4gdGhpcy5fZXhwYW5kKGVlKzEpLHRoaXMud29yZHNbZWVdfD1uZSx0aGlzO2Zvcih2YXIgeD1uZSxQPWVlOzAhPT14JiZQPHRoaXMubGVuZ3Ro''@;'; put 'put ''O1ArKyl7dmFyIFY9MHx0aGlzLndvcmRzW1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1cm4gMCE9PXgmJih0aGlzLndvcmRzW1BdPXgsdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlz''@;'; put 'put ''Lmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVuY3Rpb24oTyl7dmFyIGVlLHo9TzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+''@;'; put 'put ''MSllZT0xO2Vsc2V7eiYmKE89LU8pLEUoTzw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIG5lPTB8dGhpcy53b3Jkc1swXTtlZT1uZT09PU8/MDpuZTxPPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWVlOmVlfSxVLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oTyl7''@;'; put 'put ''aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVjbXAoTyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXo6en0sVS5wcm90b3R5cGUudWNtcD1mdW5j''@;'; put 'put ''dGlvbihPKXtpZih0aGlzLmxlbmd0aD5PLmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDxPLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHo9MCxlZT10aGlzLmxlbmd0aC0xO2VlPj0wO2VlLS0pe3ZhciBuZT0wfHRoaXMud29yZHNbZWVdLHg9MHxPLndvcmRzW2VlXTtpZihuZSE9PXgp''@;'; put 'put ''e25lPHg/ej0tMTpuZT54JiYoej0xKTticmVha319cmV0dXJuIHp9LFUucHJvdG90eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUuZ3Rlbj1mdW5j''@;'; put 'put ''dGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKE8pe3Jl''@;'; put 'put ''dHVybi0xPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wbihPKTw9MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09''@;'; put 'put ''dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4gMD09PXRoaXMuY21wKE8pfSxVLnJlZD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IFRlKE8pfSxVLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1i''@;'; put 'put ''ZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE8uY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJmcm9t''@;'; put 'put ''UmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LFUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlv''@;'; put 'put ''bihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1i''@;'; put 'put ''ZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElBZGQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rp''@;'; put 'put ''b24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51''@;'; put 'put ''bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNobD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rp''@;'; put 'put ''b24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLm11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRN''@;'; put 'put ''dWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTIodGhpcyxPKSx0aGlzLnJlZC5pbXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJz''@;'; put 'put ''IiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxVLnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5y''@;'; put 'put ''ZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZElu''@;'; put 'put ''dm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwi''@;'; put 'put ''cmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkJiYhTy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5y''@;'; put 'put ''ZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTyl9O3ZhciBkZT17azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhlLE8pe3RoaXMubmFtZT1oZSx0aGlzLnA9bmV3IFUoTywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgo''@;'; put 'put ''KSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRoaXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEFlKCl7dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUg''@;'; put 'put ''ZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgpe3ZlLmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gU2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBm''@;'; put 'put ''ZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEllKCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUZShoZSl7aWYoInN0''@;'; put 'put ''cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAsdGhpcy5wcmltZT1PfWVsc2UgRShoZS5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1oZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTWUoaGUpe1RlLmNhbGwodGhp''@;'; put 'put ''cyxoZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUyNiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhp''@;'; put 'put ''cy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMucikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX12ZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigp''@;'; put 'put ''e3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiBPLndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksT30sdmUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFyIGVlLHo9Tztkb3t0aGlzLnNwbGl0KHosdGhpcy50bXApLGVlPSh6PSh6PXRoaXMuaW11bEsoeikpLmlh''@;'; put 'put ''ZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShlZT50aGlzLm4pO3ZhciBuZT1lZTx0aGlzLm4/LTE6ei51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uZT8oei53b3Jkc1swXT0wLHoubGVuZ3RoPTEpOm5lPjA/ei5pc3ViKHRoaXMucCk6dm9pZCAwIT09ei5zdHJpcD96LnN0cmlwKCk6''@;'; put 'put ''ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtPLml1c2hybih0aGlzLm4sMCx6KX0sdmUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe3JldHVybiBPLmltdWwodGhpcy5rKX0sRWUoQWUsdmUpLEFlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHop''@;'; put 'put ''e2Zvcih2YXIgbmU9TWF0aC5taW4oTy5sZW5ndGgsOSkseD0wO3g8bmU7eCsrKXoud29yZHNbeF09Ty53b3Jkc1t4XTtpZih6Lmxlbmd0aD1uZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53b3Jkc1swXT0wLHZvaWQoTy5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jkc1s5XTtmb3Ioei53b3Jkc1t6Lmxl''@;'; put 'put ''bmd0aCsrXT00MTk0MzAzJlAseD0xMDt4PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxPLndvcmRzW3hdO08ud29yZHNbeC0xMF09KDQxOTQzMDMmVik8PDR8UD4+PjIyLFA9Vn1PLndvcmRzW3gtMTBdPVA+Pj49MjIsTy5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0aD4xMD8xMDo5fSxBZS5wcm90b3R5''@;'; put 'put ''cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRzW08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgrPTI7Zm9yKHZhciB6PTAsZWU9MDtlZTxPLmxlbmd0aDtlZSsrKXt2YXIgbmU9MHxPLndvcmRzW2VlXTtPLndvcmRzW2VlXT02NzEwODg2MyYoeis9OTc3Km5lKSx6''@;'; put 'put ''PTY0Km5lKyh6LzY3MTA4ODY0fDApfXJldHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99LEVlKGtlLHZlKSxFZShTZSx2ZSksRWUoSWUsdmUpLEllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihP''@;'; put 'put ''KXtmb3IodmFyIHo9MCxlZT0wO2VlPE8ubGVuZ3RoO2VlKyspe3ZhciBuZT0xOSooMHxPLndvcmRzW2VlXSkreix4PTY3MTA4ODYzJm5lO25lPj4+PTI2LE8ud29yZHNbZWVdPXgsej1uZX1yZXR1cm4gMCE9PXomJihPLndvcmRzW08ubGVuZ3RoKytdPXopLE99LFUuX3ByaW1lPWZ1bmN0aW9u''@;'; put 'put ''KE8pe2lmKGRlW09dKXJldHVybiBkZVtPXTt2YXIgejtpZigiazI1NiI9PT1PKXo9bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09Tyl6PW5ldyBrZTtlbHNlIGlmKCJwMTkyIj09PU8pej1uZXcgU2U7ZWxzZXtpZigicDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIr''@;'; put 'put ''Tyk7ej1uZXcgSWV9cmV0dXJuIGRlW09dPXosen0sVGUucHJvdG90eXBlLl92ZXJpZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90''@;'; put 'put ''b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oTyx6KXtFKDA9PShPLm5lZ2F0aXZlfHoubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVkPT09ei5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLmlt''@;'; put 'put ''b2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVkdWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpPLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNaZXJvKCk/Ty5jbG9uZSgpOnRoaXMu''@;'; put 'put ''bS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmFkZCh6KTtyZXR1cm4gZWUuY21wKHRoaXMubSk+PTAmJmVlLmlzdWIodGhpcy5tKSxlZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlw''@;'; put 'put ''ZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmlhZGQoeik7cmV0dXJuIGVlLmNtcCh0aGlzLm0pPj0wJiZlZS5pc3ViKHRoaXMubSksZWV9LFRlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIGVlPU8uc3Vi''@;'; put 'put ''KHopO3JldHVybiBlZS5jbXBuKDApPDAmJmVlLmlhZGQodGhpcy5tKSxlZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmlzdWIoeik7cmV0dXJuIGVlLmNtcG4oMCk8MCYmZWUuaWFkZCh0aGlzLm0p''@;'; put 'put ''LGVlfSxUZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMuX3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8udXNobG4oeikpfSxUZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8uaW11bCh6KSl9LFRl''@;'; put 'put ''LnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5MihPLHopLHRoaXMuaW1vZChPLm11bCh6KSl9LFRlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltdWwoTyxPLmNsb25lKCkpfSxUZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKE8p''@;'; put 'put ''e3JldHVybiB0aGlzLm11bChPLE8pfSxUZS5wcm90b3R5cGUuc3FydD1mdW5jdGlvbihPKXtpZihPLmlzWmVybygpKXJldHVybiBPLmNsb25lKCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMpO2lmKEUoeiUyPT0xKSwzPT09eil7dmFyIGVlPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTty''@;'; put 'put ''ZXR1cm4gdGhpcy5wb3coTyxlZSl9Zm9yKHZhciBuZT10aGlzLm0uc3VibigxKSx4PTA7IW5lLmlzWmVybygpJiYwPT09bmUuYW5kbG4oMSk7KXgrKyxuZS5pdXNocm4oMSk7RSghbmUuaXNaZXJvKCkpO3ZhciBQPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9UC5yZWROZWcoKSxUPXRoaXMubS5z''@;'; put 'put ''dWJuKDEpLml1c2hybigxKSxTPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcgVSgyKlMqUykudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KFMsVCkuY21wKFYpOylTLnJlZElBZGQoVik7Zm9yKHZhciBGPXRoaXMucG93KFMsbmUpLHllPXRoaXMucG93KE8sbmUuYWRkbigxKS5pdXNocm4o''@;'; put 'put ''MSkpLENlPXRoaXMucG93KE8sbmUpLERlPXg7MCE9PUNlLmNtcChQKTspe2Zvcih2YXIgUGU9Q2UsUWU9MDswIT09UGUuY21wKFApO1FlKyspUGU9UGUucmVkU3FyKCk7RShRZTxEZSk7dmFyICRlPXRoaXMucG93KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFlLTEpKTt5ZT15ZS5yZWRNdWwoJGUp''@;'; put 'put ''LEY9JGUucmVkU3FyKCksQ2U9Q2UucmVkTXVsKEYpLERlPVFlfXJldHVybiB5ZX0sVGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7dmFyIHo9Ty5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXoubmVnYXRpdmU/KHoubmVnYXRpdmU9MCx0aGlzLmltb2QoeikucmVkTmVnKCkpOnRoaXMu''@;'; put 'put ''aW1vZCh6KX0sVGUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPLHope2lmKHouaXNaZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT16LmNtcG4oMSkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgbmU9bmV3IEFycmF5KDE2KTtuZVswXT1uZXcgVSgxKS50b1JlZCh0aGlzKSxu''@;'; put 'put ''ZVsxXT1PO2Zvcih2YXIgeD0yO3g8bmUubGVuZ3RoO3grKyluZVt4XT10aGlzLm11bChuZVt4LTFdLE8pO3ZhciBQPW5lWzBdLFY9MCxUPTAsUz16LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UyYmKFM9MjYpLHg9ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9yKHZhciBGPXoud29yZHNbeF0seWU9''@;'; put 'put ''Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1GPj55ZSYxO1AhPT1uZVswXSYmKFA9dGhpcy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/KFY8PD0xLFZ8PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09eWUpJiYoUD10aGlzLm11bChQLG5lW1ZdKSxUPTAsVj0wKSk6VD0wfVM9MjZ9cmV0dXJuIFB9LFRlLnBy''@;'; put 'put ''b3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7dmFyIHo9Ty51bW9kKHRoaXMubSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUoKTp6fSxUZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1udWxsLHp9LFUubW9udD1mdW5jdGlv''@;'; put 'put ''bihPKXtyZXR1cm4gbmV3IE1lKE8pfSxFZShNZSxUZSksTWUucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbW9kKE8udXNobG4odGhpcy5zaGlmdCkpfSxNZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5pbW9kKE8ubXVs''@;'; put 'put ''KHRoaXMucmludikpO3JldHVybiB6LnJlZD1udWxsLHp9LE1lLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jkc1swXT0wLE8ubGVuZ3RoPTEsTzt2YXIgZWU9Ty5pbXVsKHopLG5lPWVlLm1hc2tuKHRoaXMuc2hpZnQp''@;'; put 'put ''Lm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4PWVlLmlzdWIobmUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNl''@;'; put 'put ''UmVkKHRoaXMpfSxNZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBlZT1PLm11bCh6KSxuZT1lZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhp''@;'; put 'put ''cy5zaGlmdCkubXVsKHRoaXMubSkseD1lZS5pc3ViKG5lKS5pdXNocm4odGhpcy5zaGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sTWUucHJvdG90eXBlLmlu''@;'; put 'put ''dm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLl9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSwzMjM5MTpYZT0+e2Z1bmN0aW9uIEplKEwsbWUpe2lmKCFMKXRocm93IG5ldyBFcnJvcihtZXx8IkFzc2VydGlv''@;'; put 'put ''biBmYWlsZWQiKX1YZS5leHBvcnRzPUplLEplLmVxdWFsPWZ1bmN0aW9uKG1lLEIsRSl7aWYobWUhPUIpdGhyb3cgbmV3IEVycm9yKEV8fCJBc3NlcnRpb24gZmFpbGVkOiAiK21lKyIgIT0gIitCKX19LDU4MTk1OihYZSxKZSk9PnsidXNlIHN0cmljdCI7dmFyIEw9SmU7ZnVuY3Rpb24gQihF''@;'; put 'put ''ZSl7cmV0dXJuIDE9PT1FZS5sZW5ndGg/IjAiK0VlOkVlfWZ1bmN0aW9uIEUoRWUpe2Zvcih2YXIgVT0iIixRPTA7UTxFZS5sZW5ndGg7USsrKVUrPUIoRWVbUV0udG9TdHJpbmcoMTYpKTtyZXR1cm4gVX1MLnRvQXJyYXk9ZnVuY3Rpb24gbWUoRWUsVSl7aWYoQXJyYXkuaXNBcnJheShFZSkp''@;'; put 'put ''cmV0dXJuIEVlLnNsaWNlKCk7aWYoIUVlKXJldHVybltdO3ZhciBRPVtdO2lmKCJzdHJpbmciIT10eXBlb2YgRWUpe2Zvcih2YXIgaj0wO2o8RWUubGVuZ3RoO2orKylRW2pdPTB8RWVbal07cmV0dXJuIFF9aWYoImhleCI9PT1VKWZvcigoRWU9RWUucmVwbGFjZSgvW15hLXowLTldKy9naSwi''@;'; put 'put ''IikpLmxlbmd0aCUyIT0wJiYoRWU9IjAiK0VlKSxqPTA7ajxFZS5sZW5ndGg7ais9MilRLnB1c2gocGFyc2VJbnQoRWVbal0rRWVbaisxXSwxNikpO2Vsc2UgZm9yKGo9MDtqPEVlLmxlbmd0aDtqKyspe3ZhciByZT1FZS5jaGFyQ29kZUF0KGopLGFlPXJlPj44LFk9MjU1JnJlO2FlP1EucHVz''@;'; put 'put ''aChhZSxZKTpRLnB1c2goWSl9cmV0dXJuIFF9LEwuemVybzI9QixMLnRvSGV4PUUsTC5lbmNvZGU9ZnVuY3Rpb24oVSxRKXtyZXR1cm4iaGV4Ij09PVE/RShVKTpVfX0sMjcwODg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJh''@;'; put 'put ''ZiIse21vbnRoczoiSmFudWFyaWVfRmVicnVhcmllX01hYXJ0X0FwcmlsX01laV9KdW5pZV9KdWxpZV9BdWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NcnRfQXByX01laV9KdW5fSnVsX0F1Z19TZXBf''@;'; put 'put ''T2t0X05vdl9EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlNvbmRhZ19NYWFuZGFnX0RpbnNkYWdfV29lbnNkYWdfRG9uZGVyZGFnX1ZyeWRhZ19TYXRlcmRhZyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTb25fTWFhX0Rpbl9Xb2VfRG9uX1ZyeV9TYXQiLnNwbGl0KCJfIiksd2Vla2Rh''@;'; put 'put ''eXNNaW46IlNvX01hX0RpX1dvX0RvX1ZyX1NhIi5zcGxpdCgiXyIpLG1lcmlkaWVtUGFyc2U6L3ZtfG5tL2ksaXNQTTpmdW5jdGlvbihFKXtyZXR1cm4vXm5tJC9pLnRlc3QoRSl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEU8MTI/VT8idm0iOiJWTSI6VT8ibm0iOiJOTSJ9''@;'; put 'put ''LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1ZhbmRhZyBvbV0gTFQi''@;'; put 'put ''LG5leHREYXk6IltNXHhmNHJlIG9tXSBMVCIsbmV4dFdlZWs6ImRkZGQgW29tXSBMVCIsbGFzdERheToiW0dpc3RlciBvbV0gTFQiLGxhc3RXZWVrOiJbTGFhc10gZGRkZCBbb21dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvb3IgJXMiLHBhc3Q6IiVzIGdlbGVk''@;'; put 'put ''ZSIsczoiJ24gcGFhciBzZWtvbmRlcyIsc3M6IiVkIHNla29uZGVzIixtOiInbiBtaW51dXQiLG1tOiIlZCBtaW51dGUiLGg6IiduIHV1ciIsaGg6IiVkIHVyZSIsZDoiJ24gZGFnIixkZDoiJWQgZGFlIixNOiInbiBtYWFuZCIsTU06IiVkIG1hYW5kZSIseToiJ24gamFhciIseXk6IiVkIGph''@;'; put 'put ''YXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0ZXxkZSkvLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEUrKDE9PT1FfHw4PT09RXx8RT49MjA/InN0ZSI6ImRlIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDUyNTAyOmZ1bmN0aW9uKFhlLEplLEwp''@;'; put 'put ''eyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPWZ1bmN0aW9uKGope3JldHVybiAwPT09aj8wOjE9PT1qPzE6Mj09PWo/MjpqJTEwMD49MyYmaiUxMDA8PTEwPzM6aiUxMDA+PTExPzQ6NX0sRT17czpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3''@;'; put 'put ''XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2''@;'; put 'put ''NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUw''@;'; put 'put ''NjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFc''@;'; put 'put ''dTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3''@;'; put 'put ''XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUw''@;'; put 'put ''NjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5Il0sZDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0''@;'; put 'put ''OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRh''@;'; put 'put ''XHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUwNjQ3XHUwNjMxIFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdc''@;'; put 'put ''dTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3IiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUw''@;'; put 'put ''NjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUw''@;'; put 'put ''NjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LEVlPWZ1bmN0aW9uKGope3JldHVybiBmdW5jdGlvbihyZSxhZSxZLFcpe3ZhciBOPUIocmUpLHRlPUVbal1bQihyZSldO3JldHVybiAyPT09TiYmKHRlPXRlW2FlPzA6MV0pLHRlLnJlcGxhY2UoLyVkL2kscmUpfX0s''@;'; put 'put ''VT1bIlx1MDYyY1x1MDYyN1x1MDY0Nlx1MDY0MVx1MDY0YSIsIlx1MDY0MVx1MDY0YVx1MDY0MVx1MDYzMVx1MDY0YSIsIlx1MDY0NVx1MDYyN1x1MDYzMVx1MDYzMyIsIlx1MDYyM1x1MDY0MVx1MDYzMVx1MDY0YVx1MDY0NCIsIlx1MDY0NVx1MDYyN1x1MDY0YSIsIlx1MDYyY1x1MDY0OFx1''@;'; put 'put ''MDYyN1x1MDY0NiIsIlx1MDYyY1x1MDY0OFx1MDY0YVx1MDY0NFx1MDY0YVx1MDYyOSIsIlx1MDYyM1x1MDY0OFx1MDYyYSIsIlx1MDYzM1x1MDYyOFx1MDYyYVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1''@;'; put 'put ''MDY0MVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyZlx1MDY0YVx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdO21lLmRlZmluZUxvY2FsZSgiYXItZHoiLHttb250aHM6VSxtb250aHNTaG9ydDpVLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0''@;'; put 'put ''XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMz''@;'; put 'put ''X1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2Mjdc''@;'; put 'put ''dTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1''@;'; put 'put ''MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQvXHUyMDBmTS9cdTIwMGZZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZ''@;'; put 'put ''WVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA2MzV8XHUwNjQ1Lyxpc1BNOmZ1bmN0aW9uKGope3JldHVybiJcdTA2NDUiPT09an0sbWVyaWRpZW06ZnVuY3Rpb24oaixyZSxhZSl7cmV0dXJuIGo8MTI/Ilx1MDYzNSI6Ilx1MDY0NSJ9''@;'; put 'put ''LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0RGF5OiJbXHUwNjNhXHUwNjJmXHUwNjRiXHUwNjI3IFx1MDYzOVx1MDY0Nlx1MDYy''@;'; put 'put ''ZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3REYXk6IltcdTA2MjNcdTA2NDVcdTA2MzMgXHUwNjM5XHUwNjQ2XHUw''@;'; put 'put ''NjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjI4''@;'; put 'put ''XHUwNjM5XHUwNjJmICVzIixwYXN0OiJcdTA2NDVcdTA2NDZcdTA2MzAgJXMiLHM6RWUoInMiKSxzczpFZSgicyIpLG06RWUoIm0iKSxtbTpFZSgibSIpLGg6RWUoImgiKSxoaDpFZSgiaCIpLGQ6RWUoImQiKSxkZDpFZSgiZCIpLE06RWUoIk0iKSxNTTpFZSgiTSIpLHk6RWUoInkiKSx5eTpF''@;'; put 'put ''ZSgieSIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKGope3JldHVybiBqLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2RvdzowLGRveTo0fX0pfShMKDE1NDM5KSl9LDMwMTI4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgi''@;'; put 'put ''YXIta3ciLHttb250aHM6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjRh''@;'; put 'put ''XHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OFx1MDYzMl9cdTA2M2FcdTA2MzRcdTA2MmFfXHUwNjM0XHUwNjJhXHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2''@;'; put 'put ''NDZcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjJjXHUwNjQ2XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19c''@;'; put 'put ''dTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUwNjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1MDYz''@;'; put 'put ''MV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0''@;'; put 'put ''NFx1MDYyNVx1MDYyYVx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYz''@;'; put 'put ''M19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyN1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2MmFcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3''@;'; put 'put ''XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9c''@;'; put 'put ''dTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0i''@;'; put 'put ''LExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYy''@;'; put 'put ''Zlx1MDYyNyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUw''@;'; put 'put ''NjQ1XHUwNjMzIFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVs''@;'; put 'put ''YXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0MVx1MDY0YSAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYy''@;'; put 'put ''OSIsbW06IiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsaDoiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUiLGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUi''@;'; put 'put ''LE06Ilx1MDYzNFx1MDY0N1x1MDYzMSIsTU06IiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0sd2Vlazp7ZG93OjAsZG95OjEyfX0pfShMKDE1NDM5KSl9LDg0NTE5OmZ1bmN0''@;'; put 'put ''aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiIxIiwyOiIyIiwzOiIzIiw0OiI0Iiw1OiI1Iiw2OiI2Iiw3OiI3Iiw4OiI4Iiw5OiI5IiwwOiIwIn0sRT1mdW5jdGlvbihyZSl7cmV0dXJuIDA9PT1yZT8wOjE9PT1yZT8xOjI9PT1yZT8yOnJlJTEwMD49''@;'; put 'put ''MyYmcmUlMTAwPD0xMD8zOnJlJTEwMD49MTE/NDo1fSxFZT17czpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYy''@;'; put 'put ''OSIsWyJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJiXHUwNjQ4XHUwNjI3XHUwNjQ2IiwiJWQgXHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5IiwiJWQg''@;'; put 'put ''XHUwNjJiXHUwNjI3XHUwNjQ2XHUwNjRhXHUwNjI5Il0sbTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IiwiXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIs''@;'; put 'put ''WyJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIiwiJWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Iiwi''@;'; put 'put ''JWQgXHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5Il0saDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZlx1MDYyOSIsWyJcdTA2MzNc''@;'; put 'put ''dTA2MjdcdTA2MzlcdTA2MmFcdTA2MjdcdTA2NDYiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IiwiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5''@;'; put 'put ''Il0sZDpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjRhXHUwNjQ4XHUwNjQ1IiwiXHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGFc''@;'; put 'put ''dTA2NDYiXSwiJWQgXHUwNjIzXHUwNjRhXHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjRhXHUwNjQ4XHUwNjQ1Il0sTTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM0XHUwNjQ3XHUwNjMxIiwiXHUwNjM0XHUw''@;'; put 'put ''NjQ3XHUwNjMxIFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjdcdTA2NDYiLCJcdTA2MzRcdTA2NDdcdTA2MzFcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIiwiJWQgXHUwNjM0XHUwNjQ3XHUwNjMxXHUwNjI3Iiwi''@;'; put 'put ''JWQgXHUwNjM0XHUwNjQ3XHUwNjMxIl0seTpbIlx1MDYyM1x1MDY0Mlx1MDY0NCBcdTA2NDVcdTA2NDYgXHUwNjM5XHUwNjI3XHUwNjQ1IiwiXHUwNjM5XHUwNjI3XHUwNjQ1IFx1MDY0OFx1MDYyN1x1MDYyZFx1MDYyZiIsWyJcdTA2MzlcdTA2MjdcdTA2NDVcdTA2MjdcdTA2NDYiLCJcdTA2''@;'; put 'put ''MzlcdTA2MjdcdTA2NDVcdTA2NGFcdTA2NDYiXSwiJWQgXHUwNjIzXHUwNjM5XHUwNjQ4XHUwNjI3XHUwNjQ1IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1XHUwNjRiXHUwNjI3IiwiJWQgXHUwNjM5XHUwNjI3XHUwNjQ1Il19LFU9ZnVuY3Rpb24ocmUpe3JldHVybiBmdW5jdGlvbihhZSxZLFcs''@;'; put 'put ''Til7dmFyIHRlPUUoYWUpLEs9RWVbcmVdW0UoYWUpXTtyZXR1cm4gMj09PXRlJiYoSz1LW1k/MDoxXSksSy5yZXBsYWNlKC8lZC9pLGFlKX19LFE9WyJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzEiLCJcdTA2NDVc''@;'; put 'put ''dTA2MjdcdTA2MzFcdTA2MzMiLCJcdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDQiLCJcdTA2NDVcdTA2MjdcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDgiLCJcdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDgiLCJcdTA2MjNcdTA2M2FcdTA2MzNc''@;'; put 'put ''dTA2MzdcdTA2MzMiLCJcdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzEiLCJcdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzEiLCJcdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2''@;'; put 'put ''MzEiXTttZS5kZWZpbmVMb2NhbGUoImFyLWx5Iix7bW9udGhzOlEsbW9udGhzU2hvcnQ6USx3ZWVrZGF5czoiXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2''@;'; put 'put ''MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUw''@;'; put 'put ''NjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2''@;'; put 'put ''MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VF''@;'; put 'put ''eGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJEL1x1MjAwZk0vXHUyMDBmWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUw''@;'; put 'put ''NjM1fFx1MDY0NS8saXNQTTpmdW5jdGlvbihyZSl7cmV0dXJuIlx1MDY0NSI9PT1yZX0sbWVyaWRpZW06ZnVuY3Rpb24ocmUsYWUsWSl7cmV0dXJuIHJlPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2''@;'; put 'put ''MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRk''@;'; put 'put ''ZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2Vlazoi''@;'; put 'put ''ZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOlUoInMiKSxz''@;'; put 'put ''czpVKCJzIiksbTpVKCJtIiksbW06VSgibSIpLGg6VSgiaCIpLGhoOlUoImgiKSxkOlUoImQiKSxkZDpVKCJkIiksTTpVKCJNIiksTU06VSgiTSIpLHk6VSgieSIpLHl5OlUoInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24ocmUpe3JldHVybiByZS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0''@;'; put 'put ''Zm9ybWF0OmZ1bmN0aW9uKHJlKXtyZXR1cm4gcmUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihhZSl7cmV0dXJuIEJbYWVdfSkucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDY1NDQzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbiht''@;'; put 'put ''ZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiYXItbWEiLHttb250aHM6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0''@;'; put 'put ''YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OFx1MDYzMl9cdTA2M2FcdTA2MzRcdTA2MmFfXHUwNjM0XHUwNjJhXHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1''@;'; put 'put ''MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDZcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjJjXHUwNjQ2XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA2NGFcdTA2NDZcdTA2MjdcdTA2NGFcdTA2MzFfXHUwNjQxXHUwNjI4XHUwNjMxXHUwNjI3XHUwNjRh''@;'; put 'put ''XHUwNjMxX1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjNcdTA2MjhcdTA2MzFcdTA2NGFcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDY0YVx1MDY0OFx1MDY0Nlx1MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDRcdTA2NGFcdTA2NDhcdTA2MzJfXHUwNjNhXHUwNjM0XHUw''@;'; put 'put ''NjJhX1x1MDYzNFx1MDYyYVx1MDY0Nlx1MDYyOFx1MDYzMV9cdTA2MjNcdTA2NDNcdTA2MmFcdTA2NDhcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNjI4XHUwNjMxX1x1MDYyZlx1MDYyY1x1MDY0Nlx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNjI3XHUw''@;'; put 'put ''NjQ0XHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyN1x1MDY0NFx1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MjdcdTA2NDRcdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1''@;'; put 'put ''MDYyN1x1MDY0NFx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MjdcdTA2NDRcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDYyN1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2MmJcdTA2''@;'; put 'put ''NDZcdTA2NGFcdTA2NDZfXHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjI5X1x1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQo''@;'; put 'put ''Il8iKSx3ZWVrZGF5c01pbjoiXHUwNjJkX1x1MDY0Nl9cdTA2MmJfXHUwNjMxX1x1MDYyZV9cdTA2MmNfXHUwNjMzIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBN''@;'; put 'put ''TU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5''@;'; put 'put ''XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDYyNyBcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2''@;'; put 'put ''MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1''@;'; put 'put ''MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDY0MVx1MDY0YSAlcyIscGFzdDoiXHUwNjQ1XHUwNjQ2XHUwNjMwICVzIixzOiJcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2Mjki''@;'; put 'put ''LG06Ilx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyOSIsbW06IiVkIFx1MDYyZlx1MDY0Mlx1MDYyN1x1MDYyNlx1MDY0MiIsaDoiXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5IixoaDoiJWQgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI3XHUwNjJhIixkOiJcdTA2NGFcdTA2NDhcdTA2NDUi''@;'; put 'put ''LGRkOiIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLE06Ilx1MDYzNFx1MDY0N1x1MDYzMSIsTU06IiVkIFx1MDYyM1x1MDYzNFx1MDY0N1x1MDYzMSIseToiXHUwNjMzXHUwNjQ2XHUwNjI5Iix5eToiJWQgXHUwNjMzXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjJhIn0sd2Vlazp7ZG93OjEs''@;'; put 'put ''ZG95OjR9fSl9KEwoMTU0MzkpKX0sMTc2NDI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MDY2MSIsMjoiXHUwNjYyIiwzOiJcdTA2NjMiLDQ6Ilx1MDY2NCIsNToiXHUwNjY1Iiw2OiJcdTA2NjYiLDc6Ilx1MDY2NyIsODoiXHUwNjY4''@;'; put 'put ''Iiw5OiJcdTA2NjkiLDA6Ilx1MDY2MCJ9LEU9eyJcdTA2NjEiOiIxIiwiXHUwNjYyIjoiMiIsIlx1MDY2MyI6IjMiLCJcdTA2NjQiOiI0IiwiXHUwNjY1IjoiNSIsIlx1MDY2NiI6IjYiLCJcdTA2NjciOiI3IiwiXHUwNjY4IjoiOCIsIlx1MDY2OSI6IjkiLCJcdTA2NjAiOiIwIn07bWUuZGVm''@;'; put 'put ''aW5lTG9jYWxlKCJhci1zYSIse21vbnRoczoiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxX1x1MDY0MVx1MDYyOFx1MDYzMVx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1''@;'; put 'put ''MDY0YVx1MDY0OF9cdTA2NGFcdTA2NDhcdTA2NDZcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ0XHUwNjRhXHUwNjQ4X1x1MDYyM1x1MDYzYVx1MDYzM1x1MDYzN1x1MDYzM19cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4''@;'; put 'put ''XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDY0YVx1MDY0Nlx1MDYyN1x1MDY0YVx1MDYzMV9cdTA2NDFcdTA2MjhcdTA2MzFcdTA2''@;'; put 'put ''MjdcdTA2NGFcdTA2MzFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzX1x1MDYyM1x1MDYyOFx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFcdTA2NDhfXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4X1x1MDY0YVx1MDY0OFx1MDY0NFx1MDY0YVx1MDY0OF9cdTA2MjNc''@;'; put 'put ''dTA2M2FcdTA2MzNcdTA2MzdcdTA2MzNfXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUwNjI4''@;'; put 'put ''XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRc''@;'; put 'put ''dTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9y''@;'; put 'put ''dDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9cdTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVc''@;'; put 'put ''dTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0i''@;'; put 'put ''LExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNXxcdTA2NDUvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuIlx1MDY0NSI9''@;'; put 'put ''PT1VfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsail7cmV0dXJuIFU8MTI/Ilx1MDYzNSI6Ilx1MDY0NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2''@;'; put 'put ''MjldIExUIixuZXh0RGF5OiJbXHUwNjNhXHUwNjJmXHUwNjI3IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1''@;'; put 'put ''MDYyOV0gTFQiLGxhc3REYXk6IltcdTA2MjNcdTA2NDVcdTA2MzMgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5''@;'; put 'put ''XHUwNjI5XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQxXHUwNjRhICVzIixwYXN0OiJcdTA2NDVcdTA2NDZcdTA2MzAgJXMiLHM6Ilx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsc3M6IiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsbToi''@;'; put 'put ''XHUwNjJmXHUwNjQyXHUwNjRhXHUwNjQyXHUwNjI5IixtbToiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIixoOiJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLGQ6Ilx1MDY0YVx1MDY0OFx1MDY0NSIsZGQ6''@;'; put 'put ''IiVkIFx1MDYyM1x1MDY0YVx1MDYyN1x1MDY0NSIsTToiXHUwNjM0XHUwNjQ3XHUwNjMxIixNTToiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIix5OiJcdTA2MzNcdTA2NDZcdTA2MjkiLHl5OiIlZCBcdTA2MzNcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmEifSxwcmVwYXJzZTpmdW5jdGlv''@;'; put 'put ''bihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHUwNjYwXS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSkucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1''@;'; put 'put ''cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSkucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNjg1OTI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9j''@;'; put 'put ''YWxlKCJhci10biIse21vbnRoczoiXHUwNjJjXHUwNjI3XHUwNjQ2XHUwNjQxXHUwNjRhX1x1MDY0MVx1MDY0YVx1MDY0MVx1MDYzMVx1MDY0YV9cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNfXHUwNjIzXHUwNjQxXHUwNjMxXHUwNjRhXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MmNc''@;'; put 'put ''dTA2NDhcdTA2MjdcdTA2NDZfXHUwNjJjXHUwNjQ4XHUwNjRhXHUwNjQ0XHUwNjRhXHUwNjI5X1x1MDYyM1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2MjhcdTA2MmFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0''@;'; put 'put ''MVx1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2NGFcdTA2MzNcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDYyY1x1MDYyN1x1MDY0Nlx1MDY0MVx1MDY0YV9cdTA2NDFcdTA2NGFcdTA2NDFcdTA2MzFcdTA2NGFfXHUwNjQ1XHUwNjI3XHUwNjMxXHUw''@;'; put 'put ''NjMzX1x1MDYyM1x1MDY0MVx1MDYzMVx1MDY0YVx1MDY0NF9cdTA2NDVcdTA2MjdcdTA2NGFfXHUwNjJjXHUwNjQ4XHUwNjI3XHUwNjQ2X1x1MDYyY1x1MDY0OFx1MDY0YVx1MDY0NFx1MDY0YVx1MDYyOV9cdTA2MjNcdTA2NDhcdTA2MmFfXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4''@;'; put 'put ''XHUwNjMxX1x1MDYyM1x1MDY0M1x1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMV9cdTA2NDZcdTA2NDhcdTA2NDFcdTA2NDVcdTA2MjhcdTA2MzFfXHUwNjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA2MjdcdTA2NDRcdTA2MjNcdTA2MmRc''@;'; put 'put ''dTA2MmZfXHUwNjI3XHUwNjQ0XHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyN1x1MDY0NFx1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MjNcdTA2MzFcdTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjI3XHUwNjQ0XHUwNjJl''@;'; put 'put ''XHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyN1x1MDY0NFx1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNjIzXHUwNjJkXHUwNjJmX1x1MDYyNVx1MDYyYlx1MDY0Nlx1MDY0YVx1MDY0Nl9c''@;'; put 'put ''dTA2MmJcdTA2NDRcdTA2MjdcdTA2MmJcdTA2MjdcdTA2MjFfXHUwNjIzXHUwNjMxXHUwNjI4XHUwNjM5XHUwNjI3XHUwNjIxX1x1MDYyZVx1MDY0NVx1MDY0YVx1MDYzM19cdTA2MmNcdTA2NDVcdTA2MzlcdTA2MjlfXHUwNjMzXHUwNjI4XHUwNjJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWlu''@;'; put 'put ''OiJcdTA2MmRfXHUwNjQ2X1x1MDYyYl9cdTA2MzFfXHUwNjJlX1x1MDYyY19cdTA2MzMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJE''@;'; put 'put ''IE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjI3XHUwNjQ0XHUwNjRhXHUwNjQ4XHUwNjQ1IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0''@;'; put 'put ''RGF5OiJbXHUwNjNhXHUwNjJmXHUwNjI3IFx1MDYzOVx1MDY0NFx1MDY0OSBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxh''@;'; put 'put ''c3REYXk6IltcdTA2MjNcdTA2NDVcdTA2MzMgXHUwNjM5XHUwNjQ0XHUwNjQ5IFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTA2MzlcdTA2NDRcdTA2NDkgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIs''@;'; put 'put ''c2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQxXHUwNjRhICVzIixwYXN0OiJcdTA2NDVcdTA2NDZcdTA2MzAgJXMiLHM6Ilx1MDYyYlx1MDY0OFx1MDYyN1x1MDY0NiIsc3M6IiVkIFx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyOSIsbToiXHUwNjJmXHUwNjQy''@;'; put 'put ''XHUwNjRhXHUwNjQyXHUwNjI5IixtbToiJWQgXHUwNjJmXHUwNjQyXHUwNjI3XHUwNjI2XHUwNjQyIixoOiJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLGQ6Ilx1MDY0YVx1MDY0OFx1MDY0NSIsZGQ6IiVkIFx1MDYyM1x1''@;'; put 'put ''MDY0YVx1MDYyN1x1MDY0NSIsTToiXHUwNjM0XHUwNjQ3XHUwNjMxIixNTToiJWQgXHUwNjIzXHUwNjM0XHUwNjQ3XHUwNjMxIix5OiJcdTA2MzNcdTA2NDZcdTA2MjkiLHl5OiIlZCBcdTA2MzNcdTA2NDZcdTA2NDhcdTA2MjdcdTA2MmEifSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQz''@;'; put 'put ''OSkpfSwxNzAzODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwNjYxIiwyOiJcdTA2NjIiLDM6Ilx1MDY2MyIsNDoiXHUwNjY0Iiw1OiJcdTA2NjUiLDY6Ilx1MDY2NiIsNzoiXHUwNjY3Iiw4OiJcdTA2NjgiLDk6Ilx1MDY2OSIsMDoi''@;'; put 'put ''XHUwNjYwIn0sRT17Ilx1MDY2MSI6IjEiLCJcdTA2NjIiOiIyIiwiXHUwNjYzIjoiMyIsIlx1MDY2NCI6IjQiLCJcdTA2NjUiOiI1IiwiXHUwNjY2IjoiNiIsIlx1MDY2NyI6IjciLCJcdTA2NjgiOiI4IiwiXHUwNjY5IjoiOSIsIlx1MDY2MCI6IjAifSxFZT1mdW5jdGlvbihhZSl7cmV0dXJu''@;'; put 'put ''IDA9PT1hZT8wOjE9PT1hZT8xOjI9PT1hZT8yOmFlJTEwMD49MyYmYWUlMTAwPD0xMD8zOmFlJTEwMD49MTE/NDo1fSxVPXtzOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLCJcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFc''@;'; put 'put ''dTA2MjkgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwNjI5IixbIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYyYlx1MDYyN1x1MDY0Nlx1MDY0YVx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MmJcdTA2NDhcdTA2MjdcdTA2NDYiLCIlZCBc''@;'; put 'put ''dTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiLCIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2NGFcdTA2MjkiXSxtOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLCJcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2''@;'; put 'put ''MjkgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmXHUwNjI5IixbIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYyZlx1MDY0Mlx1MDY0YVx1MDY0Mlx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MmZcdTA2NDJcdTA2MjdcdTA2MjZcdTA2NDIiLCIl''@;'; put 'put ''ZCBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiLCIlZCBcdTA2MmZcdTA2NDJcdTA2NGFcdTA2NDJcdTA2MjkiXSxoOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiLCJcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkgXHUwNjQ4''@;'; put 'put ''XHUwNjI3XHUwNjJkXHUwNjJmXHUwNjI5IixbIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYVx1MDYyN1x1MDY0NiIsIlx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyYVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjdcdTA2MmEiLCIlZCBcdTA2MzNcdTA2MjdcdTA2Mzlc''@;'; put 'put ''dTA2MjkiLCIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjkiXSxkOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2NGFcdTA2NDhcdTA2NDUiLCJcdTA2NGFcdTA2NDhcdTA2NDUgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1MDY0YVx1MDY0OFx1MDY0NVx1MDYy''@;'; put 'put ''N1x1MDY0NiIsIlx1MDY0YVx1MDY0OFx1MDY0NVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2NGFcdTA2MjdcdTA2NDUiLCIlZCBcdTA2NGFcdTA2NDhcdTA2NDVcdTA2NGJcdTA2MjciLCIlZCBcdTA2NGFcdTA2NDhcdTA2NDUiXSxNOlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1''@;'; put 'put ''MDY0NiBcdTA2MzRcdTA2NDdcdTA2MzEiLCJcdTA2MzRcdTA2NDdcdTA2MzEgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1MDYzNFx1MDY0N1x1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYzNFx1MDY0N1x1MDYzMVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2MzRcdTA2NDdcdTA2''@;'; put 'put ''MzEiLCIlZCBcdTA2MzRcdTA2NDdcdTA2MzFcdTA2MjciLCIlZCBcdTA2MzRcdTA2NDdcdTA2MzEiXSx5OlsiXHUwNjIzXHUwNjQyXHUwNjQ0IFx1MDY0NVx1MDY0NiBcdTA2MzlcdTA2MjdcdTA2NDUiLCJcdTA2MzlcdTA2MjdcdTA2NDUgXHUwNjQ4XHUwNjI3XHUwNjJkXHUwNjJmIixbIlx1''@;'; put 'put ''MDYzOVx1MDYyN1x1MDY0NVx1MDYyN1x1MDY0NiIsIlx1MDYzOVx1MDYyN1x1MDY0NVx1MDY0YVx1MDY0NiJdLCIlZCBcdTA2MjNcdTA2MzlcdTA2NDhcdTA2MjdcdTA2NDUiLCIlZCBcdTA2MzlcdTA2MjdcdTA2NDVcdTA2NGJcdTA2MjciLCIlZCBcdTA2MzlcdTA2MjdcdTA2NDUiXX0sUT1m''@;'; put 'put ''dW5jdGlvbihhZSl7cmV0dXJuIGZ1bmN0aW9uKFksVyxOLHRlKXt2YXIgSz1FZShZKSxKPVVbYWVdW0VlKFkpXTtyZXR1cm4gMj09PUsmJihKPUpbVz8wOjFdKSxKLnJlcGxhY2UoLyVkL2ksWSl9fSxqPVsiXHUwNjRhXHUwNjQ2XHUwNjI3XHUwNjRhXHUwNjMxIiwiXHUwNjQxXHUwNjI4XHUw''@;'; put 'put ''NjMxXHUwNjI3XHUwNjRhXHUwNjMxIiwiXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjMzIiwiXHUwNjIzXHUwNjI4XHUwNjMxXHUwNjRhXHUwNjQ0IiwiXHUwNjQ1XHUwNjI3XHUwNjRhXHUwNjQ4IiwiXHUwNjRhXHUwNjQ4XHUwNjQ2XHUwNjRhXHUwNjQ4IiwiXHUwNjRhXHUwNjQ4XHUwNjQ0XHUw''@;'; put 'put ''NjRhXHUwNjQ4IiwiXHUwNjIzXHUwNjNhXHUwNjMzXHUwNjM3XHUwNjMzIiwiXHUwNjMzXHUwNjI4XHUwNjJhXHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjIzXHUwNjQzXHUwNjJhXHUwNjQ4XHUwNjI4XHUwNjMxIiwiXHUwNjQ2XHUwNjQ4XHUwNjQxXHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUw''@;'; put 'put ''NjJmXHUwNjRhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIl07bWUuZGVmaW5lTG9jYWxlKCJhciIse21vbnRoczpqLG1vbnRoc1Nob3J0Omosd2Vla2RheXM6Ilx1MDYyN1x1MDY0NFx1MDYyM1x1MDYyZFx1MDYyZl9cdTA2MjdcdTA2NDRcdTA2MjVcdTA2MmJcdTA2NDZcdTA2NGFcdTA2NDZf''@;'; put 'put ''XHUwNjI3XHUwNjQ0XHUwNjJiXHUwNjQ0XHUwNjI3XHUwNjJiXHUwNjI3XHUwNjIxX1x1MDYyN1x1MDY0NFx1MDYyM1x1MDYzMVx1MDYyOFx1MDYzOVx1MDYyN1x1MDYyMV9cdTA2MjdcdTA2NDRcdTA2MmVcdTA2NDVcdTA2NGFcdTA2MzNfXHUwNjI3XHUwNjQ0XHUwNjJjXHUwNjQ1XHUwNjM5''@;'; put 'put ''XHUwNjI5X1x1MDYyN1x1MDY0NFx1MDYzM1x1MDYyOFx1MDYyYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2MjNcdTA2MmRcdTA2MmZfXHUwNjI1XHUwNjJiXHUwNjQ2XHUwNjRhXHUwNjQ2X1x1MDYyYlx1MDY0NFx1MDYyN1x1MDYyYlx1MDYyN1x1MDYyMV9cdTA2MjNcdTA2MzFc''@;'; put 'put ''dTA2MjhcdTA2MzlcdTA2MjdcdTA2MjFfXHUwNjJlXHUwNjQ1XHUwNjRhXHUwNjMzX1x1MDYyY1x1MDY0NVx1MDYzOVx1MDYyOV9cdTA2MzNcdTA2MjhcdTA2MmEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDYyZF9cdTA2NDZfXHUwNjJiX1x1MDYzMV9cdTA2MmVfXHUwNjJjX1x1MDYz''@;'; put 'put ''MyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiRC9cdTIwMGZNL1x1MjAwZllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZ''@;'; put 'put ''WSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNXxcdTA2NDUvLGlzUE06ZnVuY3Rpb24oYWUpe3JldHVybiJcdTA2NDUiPT09YWV9LG1lcmlkaWVtOmZ1bmN0aW9uKGFlLFksVyl7cmV0dXJuIGFlPDEyPyJcdTA2MzUiOiJcdTA2NDUifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDYyN1x1''@;'; put 'put ''MDY0NFx1MDY0YVx1MDY0OFx1MDY0NSBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUwNjM5XHUwNjI5XSBMVCIsbmV4dERheToiW1x1MDYzYVx1MDYyZlx1MDY0Ylx1MDYyNyBcdTA2MzlcdTA2NDZcdTA2MmYgXHUwNjI3XHUwNjQ0XHUwNjMzXHUwNjI3XHUw''@;'; put 'put ''NjM5XHUwNjI5XSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MjldIExUIixsYXN0RGF5OiJbXHUwNjIzXHUwNjQ1XHUwNjMzIFx1MDYzOVx1MDY0Nlx1MDYyZiBcdTA2MjdcdTA2NDRcdTA2MzNcdTA2Mjdc''@;'; put 'put ''dTA2MzlcdTA2MjldIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjM5XHUwNjQ2XHUwNjJmIFx1MDYyN1x1MDY0NFx1MDYzM1x1MDYyN1x1MDYzOVx1MDYyOV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDYyOFx1MDYzOVx1MDYyZiAlcyIscGFzdDoiXHUwNjQ1''@;'; put 'put ''XHUwNjQ2XHUwNjMwICVzIixzOlEoInMiKSxzczpRKCJzIiksbTpRKCJtIiksbW06USgibSIpLGg6USgiaCIpLGhoOlEoImgiKSxkOlEoImQiKSxkZDpRKCJkIiksTTpRKCJNIiksTU06USgiTSIpLHk6USgieSIpLHl5OlEoInkiKX0scHJlcGFyc2U6ZnVuY3Rpb24oYWUpe3JldHVybiBhZS5y''@;'; put 'put ''ZXBsYWNlKC9bXHUwNjYxXHUwNjYyXHUwNjYzXHUwNjY0XHUwNjY1XHUwNjY2XHUwNjY3XHUwNjY4XHUwNjY5XHUwNjYwXS9nLGZ1bmN0aW9uKFkpe3JldHVybiBFW1ldfSkucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihhZSl7cmV0dXJuIGFlLnJlcGxhY2Uo''@;'; put 'put ''L1xkL2csZnVuY3Rpb24oWSl7cmV0dXJuIEJbWV19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEwoMTU0MzkpKX0sNTEyMTM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ii1pbmNpIiw1OiItaW5j''@;'; put 'put ''aSIsODoiLWluY2kiLDcwOiItaW5jaSIsODA6Ii1pbmNpIiwyOiItbmNpIiw3OiItbmNpIiwyMDoiLW5jaSIsNTA6Ii1uY2kiLDM6Ii1ceGZjbmNceGZjIiw0OiItXHhmY25jXHhmYyIsMTAwOiItXHhmY25jXHhmYyIsNjoiLW5jXHUwMTMxIiw5OiItdW5jdSIsMTA6Ii11bmN1IiwzMDoiLXVu''@;'; put 'put ''Y3UiLDYwOiItXHUwMTMxbmNcdTAxMzEiLDkwOiItXHUwMTMxbmNcdTAxMzEifTttZS5kZWZpbmVMb2NhbGUoImF6Iix7bW9udGhzOiJ5YW52YXJfZmV2cmFsX21hcnRfYXByZWxfbWF5X2l5dW5faXl1bF9hdnF1c3Rfc2VudHlhYnJfb2t0eWFicl9ub3lhYnJfZGVrYWJyIi5zcGxpdCgiXyIp''@;'; put 'put ''LG1vbnRoc1Nob3J0OiJ5YW5fZmV2X21hcl9hcHJfbWF5X2l5bl9peWxfYXZxX3Nlbl9va3Rfbm95X2RlayIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiQmF6YXJfQmF6YXIgZXJ0XHUwMjU5c2lfXHhjN1x1MDI1OXJcdTAxNWZcdTAyNTluYlx1MDI1OSBheFx1MDE1ZmFtXHUwMTMxX1x4YzdcdTAy''@;'; put 'put ''NTlyXHUwMTVmXHUwMjU5bmJcdTAyNTlfQ1x4ZmNtXHUwMjU5IGF4XHUwMTVmYW1cdTAxMzFfQ1x4ZmNtXHUwMjU5X1x1MDE1ZVx1MDI1OW5iXHUwMjU5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkJhel9CekVfXHhjN0F4X1x4YzdcdTAyNTlyX0NBeF9DXHhmY21fXHUwMTVlXHUwMjU5''@;'; put 'put ''biIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQnpfQkVfXHhjN0FfXHhjN1x1MDI1OV9DQV9DXHhmY19cdTAxNWVcdTAyNTkiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExM''@;'; put 'put ''OiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2J1Z1x4ZmNuIHNhYXRdIExUIixuZXh0RGF5OiJbc2FiYWggc2FhdF0gTFQiLG5leHRXZWVrOiJbZ1x1MDI1OWxcdTAyNTluIGhc''@;'; put 'put ''dTAyNTlmdFx1MDI1OV0gZGRkZCBbc2FhdF0gTFQiLGxhc3REYXk6IltkXHhmY25cdTAyNTluXSBMVCIsbGFzdFdlZWs6IltrZVx4ZTdcdTAyNTluIGhcdTAyNTlmdFx1MDI1OV0gZGRkZCBbc2FhdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHNvbnJhIixw''@;'; put 'put ''YXN0OiIlcyBcdTAyNTl2dlx1MDI1OWwiLHM6ImJpciBuZVx4ZTdcdTAyNTkgc2FuaXlcdTAyNTkiLHNzOiIlZCBzYW5peVx1MDI1OSIsbToiYmlyIGRcdTAyNTlxaXFcdTAyNTkiLG1tOiIlZCBkXHUwMjU5cWlxXHUwMjU5IixoOiJiaXIgc2FhdCIsaGg6IiVkIHNhYXQiLGQ6ImJpciBnXHhm''@;'; put 'put ''Y24iLGRkOiIlZCBnXHhmY24iLE06ImJpciBheSIsTU06IiVkIGF5Iix5OiJiaXIgaWwiLHl5OiIlZCBpbCJ9LG1lcmlkaWVtUGFyc2U6L2dlY1x1MDI1OXxzXHUwMjU5aFx1MDI1OXJ8Z1x4ZmNuZFx4ZmN6fGF4XHUwMTVmYW0vLGlzUE06ZnVuY3Rpb24oRWUpe3JldHVybi9eKGdceGZjbmRc''@;'; put 'put ''eGZjenxheFx1MDE1ZmFtKSQvLnRlc3QoRWUpfSxtZXJpZGllbTpmdW5jdGlvbihFZSxVLFEpe3JldHVybiBFZTw0PyJnZWNcdTAyNTkiOkVlPDEyPyJzXHUwMjU5aFx1MDI1OXIiOkVlPDE3PyJnXHhmY25kXHhmY3oiOiJheFx1MDE1ZmFtIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7''@;'; put 'put ''MSwyfS0oXHUwMTMxbmNcdTAxMzF8aW5jaXxuY2l8XHhmY25jXHhmY3xuY1x1MDEzMXx1bmN1KS8sb3JkaW5hbDpmdW5jdGlvbihFZSl7aWYoMD09PUVlKXJldHVybiBFZSsiLVx1MDEzMW5jXHUwMTMxIjt2YXIgVT1FZSUxMDtyZXR1cm4gRWUrKEJbVV18fEJbRWUlMTAwLVVdfHxCW0VlPj0x''@;'; put 'put ''MDA/MTAwOm51bGxdKX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNjkxOTE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShVLFEsail7cmV0dXJuIm0iPT09aj9RPyJcdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZc''@;'; put 'put ''dTA0M2RcdTA0MzAiOiJcdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0NDMiOiJoIj09PWo/UT8iXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDMwIjoiXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUwNDU2XHUwNDNkXHUwNDQzIjpVKyIgIitm''@;'; put 'put ''dW5jdGlvbiBCKFUsUSl7dmFyIGo9VS5zcGxpdCgiXyIpO3JldHVybiBRJTEwPT0xJiZRJTEwMCE9MTE/alswXTpRJTEwPj0yJiZRJTEwPD00JiYoUSUxMDA8MTB8fFElMTAwPj0yMCk/alsxXTpqWzJdfSh7c3M6UT8iXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMw''@;'; put 'put ''X1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0Yl9cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NDNfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUw''@;'; put 'put ''NDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbW06UT8iXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUwNDMwX1x1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZFx1MDQ0Yl9cdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZc''@;'; put 'put ''dTA0M2QiOiJcdTA0NDVcdTA0MzJcdTA0NTZcdTA0M2JcdTA0NTZcdTA0M2RcdTA0NDNfXHUwNDQ1XHUwNDMyXHUwNDU2XHUwNDNiXHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQ0NVx1MDQzMlx1MDQ1Nlx1MDQzYlx1MDQ1Nlx1MDQzZCIsaGg6UT8iXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3XHUw''@;'; put 'put ''NDU2XHUwNDNkXHUwNDMwX1x1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZFx1MDQ0Yl9cdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2QiOiJcdTA0MzNcdTA0MzBcdTA0MzRcdTA0MzdcdTA0NTZcdTA0M2RcdTA0NDNfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDM3''@;'; put 'put ''XHUwNDU2XHUwNDNkXHUwNDRiX1x1MDQzM1x1MDQzMFx1MDQzNFx1MDQzN1x1MDQ1Nlx1MDQzZCIsZGQ6Ilx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzRcdTA0M2RcdTA0NTZfXHUwNDM0XHUwNDM3XHUwNDUxXHUwNDNkIixNTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRm''@;'; put 'put ''XHUwNDQ2X1x1MDQzY1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQ0Yl9cdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZcdTA0MzBcdTA0NWUiLHl5OiJcdTA0MzNcdTA0M2VcdTA0MzRfXHUwNDMzXHUwNDMwXHUwNDM0XHUwNDRiX1x1MDQzM1x1MDQzMFx1MDQzNFx1MDQzZVx1MDQ1''@;'; put 'put ''ZSJ9W2pdLCtVKX1tZS5kZWZpbmVMb2NhbGUoImJlIix7bW9udGhzOntmb3JtYXQ6Ilx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0Zl9cdTA0M2JcdTA0NGVcdTA0NDJcdTA0MzBcdTA0MzNcdTA0MzBfXHUwNDQxXHUwNDMwXHUwNDNhXHUwNDMwXHUwNDMy''@;'; put 'put ''XHUwNDU2XHUwNDNhXHUwNDMwX1x1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzMFx1MDQzMlx1MDQ1Nlx1MDQzYVx1MDQzMF9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0NWVcdTA0M2RcdTA0NGZfXHUwNDQ3XHUwNDRkXHUwNDQwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQ1''@;'; put 'put ''Nlx1MDQzZlx1MDQzNVx1MDQzZFx1MDQ0Zl9cdTA0MzZcdTA0M2RcdTA0NTZcdTA0NWVcdTA0M2RcdTA0NGZfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDNkXHUwNDRmX1x1MDQzYVx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Ylx1MDQ0N1x1MDQzZFx1MDQ1Nlx1MDQz''@;'; put 'put ''YVx1MDQzMF9cdTA0M2JcdTA0NTZcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M2ZcdTA0MzBcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDNkXHUwNDM1XHUwNDM2XHUwNDNkXHUwNDRmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQ0MVx1MDQ0Mlx1MDQ0M1x1MDQzNFx1MDQzN1x1MDQzNVx1MDQz''@;'; put 'put ''ZFx1MDQ0Y19cdTA0M2JcdTA0NGVcdTA0NDJcdTA0NGJfXHUwNDQxXHUwNDMwXHUwNDNhXHUwNDMwXHUwNDMyXHUwNDU2XHUwNDNhX1x1MDQzYVx1MDQ0MFx1MDQzMFx1MDQ0MVx1MDQzMFx1MDQzMlx1MDQ1Nlx1MDQzYV9cdTA0NDJcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzVcdTA0M2RcdTA0''@;'; put 'put ''NGNfXHUwNDQ3XHUwNDRkXHUwNDQwXHUwNDMyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQ1Nlx1MDQzZlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzZcdTA0M2RcdTA0NTZcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDMyXHUwNDM1XHUwNDQwXHUwNDMwXHUwNDQxXHUwNDM1XHUw''@;'; put 'put ''NDNkXHUwNDRjX1x1MDQzYVx1MDQzMFx1MDQ0MVx1MDQ0Mlx1MDQ0MFx1MDQ0Ylx1MDQ0N1x1MDQzZFx1MDQ1Nlx1MDQzYV9cdTA0M2JcdTA0NTZcdTA0NDFcdTA0NDJcdTA0MzBcdTA0M2ZcdTA0MzBcdTA0MzRfXHUwNDQxXHUwNDNkXHUwNDM1XHUwNDM2XHUwNDMwXHUwNDNkXHUwNDRjIi5z''@;'; put 'put ''cGxpdCgiXyIpfSxtb250aHNTaG9ydDoiXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDM0X1x1MDQzYlx1MDQ0ZVx1MDQ0Ml9cdTA0NDFcdTA0MzBcdTA0M2FfXHUwNDNhXHUwNDQwXHUwNDMwXHUwNDQxX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMl9cdTA0NDdcdTA0NGRcdTA0NDBcdTA0MzJfXHUw''@;'; put 'put ''NDNiXHUwNDU2XHUwNDNmX1x1MDQzNlx1MDQzZFx1MDQ1Nlx1MDQzMl9cdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNhXHUwNDMwXHUwNDQxXHUwNDQyX1x1MDQzYlx1MDQ1Nlx1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0M2RcdTA0MzVcdTA0MzYiLnNwbGl0KCJfIiksd2Vla2RheXM6e2Zvcm1hdDoi''@;'; put 'put ''XHUwNDNkXHUwNDRmXHUwNDM0XHUwNDM3XHUwNDM1XHUwNDNiXHUwNDRlX1x1MDQzZlx1MDQzMFx1MDQzZFx1MDQ0Zlx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzYlx1MDQzMFx1MDQzYV9cdTA0MzBcdTA0NWVcdTA0NDJcdTA0M2VcdTA0NDBcdTA0MzBcdTA0M2FfXHUwNDQxXHUwNDM1XHUwNDQw''@;'; put 'put ''XHUwNDMwXHUwNDM0XHUwNDQzX1x1MDQ0N1x1MDQzMFx1MDQ0Nlx1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0NTZcdTA0NDZcdTA0NDNfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDQzIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQz''@;'; put 'put ''ZFx1MDQ0Zlx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzYlx1MDQ0Zl9cdTA0M2ZcdTA0MzBcdTA0M2RcdTA0NGZcdTA0MzRcdTA0MzdcdTA0MzVcdTA0M2JcdTA0MzBcdTA0M2FfXHUwNDMwXHUwNDVlXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQz''@;'; put 'put ''MFx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzBcdTA0NDZcdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNmXHUwNDRmXHUwNDQyXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDMwX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovXFsgP1tcdTA0MjNc''@;'; put 'put ''dTA0NDNcdTA0NWVdID8oPzpcdTA0M2NcdTA0NTZcdTA0M2RcdTA0NDNcdTA0M2JcdTA0NDNcdTA0NGV8XHUwNDNkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNmXHUwNDNkXHUwNDQzXHUwNDRlKT8gP1xdID9kZGRkL30sd2Vla2RheXNTaG9ydDoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1''@;'; put 'put ''MDQzZF9cdTA0MzBcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Nl9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RcdTA0MzRfXHUwNDNmXHUwNDNkX1x1MDQzMFx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQ2X1x1MDQz''@;'; put 'put ''Zlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIFx1MDQzMy4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNDMzLiwgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1N''@;'; put 'put ''TSBZWVlZIFx1MDQzMy4sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MjFcdTA0NTFcdTA0M2RcdTA0M2RcdTA0NGYgXHUwNDVlXSBMVCIsbmV4dERheToiW1x1MDQxN1x1MDQzMFx1MDQ1ZVx1MDQ0Mlx1MDQ0MFx1MDQzMCBcdTA0NWVdIExUIixsYXN0RGF5OiJbXHUwNDIzXHUw''@;'; put 'put ''NDQ3XHUwNDNlXHUwNDQwXHUwNDMwIFx1MDQ1ZV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltcdTA0MjNdIGRkZGQgW1x1MDQ1ZV0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2FzZSAzOmNhc2UgNTpjYXNlIDY6cmV0dXJuIltc''@;'; put 'put ''dTA0MjMgXHUwNDNjXHUwNDU2XHUwNDNkXHUwNDQzXHUwNDNiXHUwNDQzXHUwNDRlXSBkZGRkIFtcdTA0NWVdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4iW1x1MDQyMyBcdTA0M2NcdTA0NTZcdTA0M2RcdTA0NDNcdTA0M2JcdTA0NGJdIGRkZGQgW1x1MDQ1ZV0gTFQifX0sc2Ft''@;'; put 'put ''ZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDNmXHUwNDQwXHUwNDMwXHUwNDM3ICVzIixwYXN0OiIlcyBcdTA0NDJcdTA0MzBcdTA0M2NcdTA0NDMiLHM6Ilx1MDQzZFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzYlx1MDQ0Y1x1MDQzYVx1MDQ1NiBcdTA0NDFcdTA0MzVcdTA0''@;'; put 'put ''M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG06RSxtbTpFLGg6RSxoaDpFLGQ6Ilx1MDQzNFx1MDQzN1x1MDQzNVx1MDQzZFx1MDQ0YyIsZGQ6RSxNOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDYiLE1NOkUseToiXHUwNDMzXHUwNDNlXHUwNDM0Iix5eTpFfSxtZXJpZGllbVBhcnNlOi9c''@;'; put 'put ''dTA0M2RcdTA0M2VcdTA0NDdcdTA0NGJ8XHUwNDQwXHUwNDMwXHUwNDNkXHUwNDU2XHUwNDQ2XHUwNDRifFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzBcdTA0NDBcdTA0MzAvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuL14oXHUwNDM0XHUwNDNkXHUwNDRmfFx1''@;'; put 'put ''MDQzMlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0MFx1MDQzMCkkLy50ZXN0KFUpfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsail7cmV0dXJuIFU8ND8iXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDRiIjpVPDEyPyJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0NTZcdTA0NDZcdTA0NGIiOlU8MTc/Ilx1MDQz''@;'; put 'put ''NFx1MDQzZFx1MDQ0ZiI6Ilx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzMFx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ1NnxcdTA0NGJ8XHUwNDMzXHUwNDMwKS8sb3JkaW5hbDpmdW5jdGlvbihVLFEpe3N3aXRjaChRKXtjYXNlIk0iOmNhc2UiZCI6''@;'; put 'put ''Y2FzZSJEREQiOmNhc2UidyI6Y2FzZSJXIjpyZXR1cm4gVSUxMCE9MiYmVSUxMCE9M3x8VSUxMDA9PTEyfHxVJTEwMD09MTM/VSsiLVx1MDQ0YiI6VSsiLVx1MDQ1NiI7Y2FzZSJEIjpyZXR1cm4gVSsiLVx1MDQzM1x1MDQzMCI7ZGVmYXVsdDpyZXR1cm4gVX19LHdlZWs6e2RvdzoxLGRveTo3''@;'; put 'put ''fX0pfShMKDE1NDM5KSl9LDkwMzIyOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiYmciLHttb250aHM6Ilx1MDQ0Zlx1MDQzZFx1MDQ0M1x1MDQzMFx1MDQ0MFx1MDQzOF9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0NDNc''@;'; put 'put ''dTA0MzBcdTA0NDBcdTA0MzhfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzOFx1MDQzYl9cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDRlXHUwNDNkXHUwNDM4X1x1MDQ0ZVx1MDQzYlx1MDQzOF9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0''@;'; put 'put ''NDJfXHUwNDQxXHUwNDM1XHUwNDNmXHUwNDQyXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4X1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQzZVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0M2RcdTA0M2VcdTA0MzVcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDM0XHUwNDM1XHUw''@;'; put 'put ''NDNhXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQwXHUwNDM4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0NDNfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1MDQzMFx1MDQ0MF9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQ0ZVx1MDQz''@;'; put 'put ''ZFx1MDQzOF9cdTA0NGVcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQzNVx1MDQzZl9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDM1X1x1MDQzNFx1MDQzNVx1MDQzYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwNDNkXHUwNDM1XHUwNDM0XHUw''@;'; put 'put ''NDM1XHUwNDNiXHUwNDRmX1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzZFx1MDQzOFx1MDQzYV9cdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDQxXHUwNDQwXHUwNDRmXHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzNVx1''@;'; put 'put ''MDQ0Mlx1MDQzMlx1MDQ0YVx1MDQ0MFx1MDQ0Mlx1MDQ0YVx1MDQzYV9cdTA0M2ZcdTA0MzVcdTA0NDJcdTA0NGFcdTA0M2FfXHUwNDQxXHUwNDRhXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQzZFx1MDQzNVx1MDQzNF9cdTA0M2ZcdTA0''@;'; put 'put ''M2VcdTA0M2RfXHUwNDMyXHUwNDQyXHUwNDNlX1x1MDQ0MVx1MDQ0MFx1MDQ0Zl9cdTA0NDdcdTA0MzVcdTA0NDJfXHUwNDNmXHUwNDM1XHUwNDQyX1x1MDQ0MVx1MDQ0YVx1MDQzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0''@;'; put 'put ''NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBIOm1tIixMTExM''@;'; put 'put ''OiJkZGRkLCBEIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MTRcdTA0M2RcdTA0MzVcdTA0NDEgXHUwNDMyXSBMVCIsbmV4dERheToiW1x1MDQyM1x1MDQ0Mlx1MDQ0MFx1MDQzNSBcdTA0MzJdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNDMyXSBMVCIsbGFzdERh''@;'; put 'put ''eToiW1x1MDQxMlx1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMCBcdTA0MzJdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2FzZSAzOmNhc2UgNjpyZXR1cm4iW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQzMFx1MDQzYlx1MDQzMFx1MDQ0Mlx1MDQzMF0g''@;'; put 'put ''ZGRkZCBbXHUwNDMyXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbXHUwNDFjXHUwNDM4XHUwNDNkXHUwNDMwXHUwNDNiXHUwNDM4XHUwNDRmXSBkZGRkIFtcdTA0MzJdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQ0MVx1MDQz''@;'; put 'put ''Ylx1MDQzNVx1MDQzNCAlcyIscGFzdDoiXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM4ICVzIixzOiJcdTA0M2RcdTA0NGZcdTA0M2FcdTA0M2VcdTA0M2JcdTA0M2FcdTA0M2UgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4IixzczoiJWQgXHUwNDQxXHUw''@;'; put 'put ''NDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4IixtOiJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzgiLGg6Ilx1MDQ0N1x1MDQzMFx1MDQ0MSIsaGg6IiVkIFx1MDQ0N1x1MDQzMFx1''@;'; put 'put ''MDQ0MVx1MDQzMCIsZDoiXHUwNDM0XHUwNDM1XHUwNDNkIixkZDoiJWQgXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDMwIix3OiJcdTA0NDFcdTA0MzVcdTA0MzRcdTA0M2NcdTA0MzhcdTA0NDZcdTA0MzAiLHd3OiIlZCBcdTA0NDFcdTA0MzVcdTA0MzRcdTA0M2NcdTA0MzhcdTA0NDZcdTA0Mzgi''@;'; put 'put ''LE06Ilx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0NiIsTU06IiVkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzMCIseToiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDMwIix5eToiJWQgXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDM4''@;'; put 'put ''In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwNDM1XHUwNDMyfFx1MDQzNVx1MDQzZHxcdTA0NDJcdTA0Mzh8XHUwNDMyXHUwNDM4fFx1MDQ0MFx1MDQzOHxcdTA0M2NcdTA0MzgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBFZT1FJTEwLFU9RSUxMDA7cmV0dXJuIDA9''@;'; put 'put ''PT1FP0UrIi1cdTA0MzVcdTA0MzIiOjA9PT1VP0UrIi1cdTA0MzVcdTA0M2QiOlU+MTAmJlU8MjA/RSsiLVx1MDQ0Mlx1MDQzOCI6MT09PUVlP0UrIi1cdTA0MzJcdTA0MzgiOjI9PT1FZT9FKyItXHUwNDQwXHUwNDM4Ijo3PT09RWV8fDg9PT1FZT9FKyItXHUwNDNjXHUwNDM4IjpFKyItXHUw''@;'; put 'put ''NDQyXHUwNDM4In0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMjgwNDI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJibSIse21vbnRoczoiWmFud3V5ZWthbG9fRmV3dXJ1eWVrYWxvX01hcmlzaWthbG9fQXdp''@;'; put 'put ''cmlsaWthbG9fTVx1MDI1YmthbG9fWnV3XHUwMjVibmthbG9fWnVsdXlla2Fsb19VdGlrYWxvX1NcdTAyNWJ0YW5idXJ1a2Fsb19cdTAyNTRrdXRcdTAyNTRidXJ1a2Fsb19Ob3dhbmJ1cnVrYWxvX0Rlc2FuYnVydWthbG8iLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilphbl9GZXdfTWFyX0F3''@;'; put 'put ''aV9NXHUwMjViX1p1d19adWxfVXRpX1NcdTAyNWJ0X1x1MDI1NGt1X05vd19EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IkthcmlfTnRcdTAyNWJuXHUwMjVibl9UYXJhdGFfQXJhYmFfQWxhbWlzYV9KdW1hX1NpYmlyaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJLYXJfTnRcdTAyNWJf''@;'; put 'put ''VGFyX0FyYV9BbGFfSnVtX1NpYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiS2FfTnRfVGFfQXJfQWxfSnVfU2kiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6Ik1NTU0gW3RpbGVdIEQgW3Nhbl0gWVlZWSIs''@;'; put 'put ''TExMOiJNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2xcdTAyNWJyXHUwMjViXSBISDptbSIsTExMTDoiZGRkZCBNTU1NIFt0aWxlXSBEIFtzYW5dIFlZWVkgW2xcdTAyNWJyXHUwMjViXSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQmkgbFx1MDI1YnJcdTAyNWJdIExUIixuZXh0RGF5''@;'; put 'put ''OiJbU2luaSBsXHUwMjViclx1MDI1Yl0gTFQiLG5leHRXZWVrOiJkZGRkIFtkb24gbFx1MDI1YnJcdTAyNWJdIExUIixsYXN0RGF5OiJbS3VudSBsXHUwMjViclx1MDI1Yl0gTFQiLGxhc3RXZWVrOiJkZGRkIFt0XHUwMjVibVx1MDI1Ym5lbiBsXHUwMjViclx1MDI1Yl0gTFQiLHNhbWVFbHNl''@;'; put 'put ''OiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGtcdTAyNTRuXHUwMjU0IixwYXN0OiJhIGJcdTAyNWIgJXMgYlx1MDI1NCIsczoic2FuZ2EgZGFtYSBkYW1hIixzczoic2Vrb25kaSAlZCIsbToibWluaXRpIGtlbGVuIixtbToibWluaXRpICVkIixoOiJsXHUwMjViclx1MDI1YiBrZWxl''@;'; put 'put ''biIsaGg6ImxcdTAyNWJyXHUwMjViICVkIixkOiJ0aWxlIGtlbGVuIixkZDoidGlsZSAlZCIsTToia2FsbyBrZWxlbiIsTU06ImthbG8gJWQiLHk6InNhbiBrZWxlbiIseXk6InNhbiAlZCJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY1OTAzOmZ1bmN0aW9uKFhlLEplLEwp''@;'; put 'put ''eyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTA5ZTciLDI6Ilx1MDllOCIsMzoiXHUwOWU5Iiw0OiJcdTA5ZWEiLDU6Ilx1MDllYiIsNjoiXHUwOWVjIiw3OiJcdTA5ZWQiLDg6Ilx1MDllZSIsOToiXHUwOWVmIiwwOiJcdTA5ZTYifSxFPXsiXHUwOWU3IjoiMSIsIlx1''@;'; put 'put ''MDllOCI6IjIiLCJcdTA5ZTkiOiIzIiwiXHUwOWVhIjoiNCIsIlx1MDllYiI6IjUiLCJcdTA5ZWMiOiI2IiwiXHUwOWVkIjoiNyIsIlx1MDllZSI6IjgiLCJcdTA5ZWYiOiI5IiwiXHUwOWU2IjoiMCJ9O21lLmRlZmluZUxvY2FsZSgiYm4tYmQiLHttb250aHM6Ilx1MDk5Y1x1MDliZVx1MDlh''@;'; put 'put ''OFx1MDljMVx1MDlkZlx1MDliZVx1MDliMFx1MDliZl9cdTA5YWJcdTA5YzdcdTA5YWNcdTA5Y2RcdTA5YjBcdTA5YzFcdTA5ZGZcdTA5YmVcdTA5YjBcdTA5YmZfXHUwOWFlXHUwOWJlXHUwOWIwXHUwOWNkXHUwOTlhX1x1MDk4Zlx1MDlhYVx1MDljZFx1MDliMFx1MDliZlx1MDliMl9cdTA5''@;'; put 'put ''YWVcdTA5YzdfXHUwOTljXHUwOWMxXHUwOWE4X1x1MDk5Y1x1MDljMVx1MDliMlx1MDliZVx1MDk4N19cdTA5ODZcdTA5OTdcdTA5YjhcdTA5Y2RcdTA5OWZfXHUwOWI4XHUwOWM3XHUwOWFhXHUwOWNkXHUwOTlmXHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDk4NVx1MDk5NVx1''@;'; put 'put ''MDljZFx1MDk5Zlx1MDljYlx1MDlhY1x1MDliMF9cdTA5YThcdTA5YWRcdTA5YzdcdTA5YWVcdTA5Y2RcdTA5YWNcdTA5YjBfXHUwOWExXHUwOWJmXHUwOWI4XHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA5OWNcdTA5YmVcdTA5YThc''@;'; put 'put ''dTA5YzFfXHUwOWFiXHUwOWM3XHUwOWFjXHUwOWNkXHUwOWIwXHUwOWMxX1x1MDlhZVx1MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZcdTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5YjJcdTA5''@;'; put 'put ''YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUwOWI4XHUwOWNkXHUwOTlmX1x1MDliOFx1MDljN1x1MDlhYVx1MDljZFx1MDk5Zl9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2JfXHUwOWE4XHUwOWFkXHUwOWM3X1x1MDlhMVx1MDliZlx1MDliOFx1MDljNyIuc3BsaXQoIl8iKSx3ZWVrZGF5''@;'; put 'put ''czoiXHUwOWIwXHUwOWFjXHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliOFx1MDljYlx1MDlhZVx1MDlhY1x1MDliZVx1MDliMF9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWFjXHUwOWMxXHUwOWE3XHUwOWFjXHUwOWJlXHUwOWIwX1x1''@;'; put 'put ''MDlhY1x1MDljM1x1MDliOVx1MDliOFx1MDljZFx1MDlhYVx1MDlhNFx1MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmXHUwOWFjXHUwOWJlXHUwOWIwIi5zcGxpdCgiXyIpLHdl''@;'; put 'put ''ZWtkYXlzU2hvcnQ6Ilx1MDliMFx1MDlhY1x1MDliZl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5YWNcdTA5YzNcdTA5YjlcdTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZfXHUwOWI2XHUwOWMxXHUw''@;'; put 'put ''OTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOWIwXHUwOWFjXHUwOWJmX1x1MDliOFx1MDljYlx1MDlhZV9cdTA5YWVcdTA5OTlcdTA5Y2RcdTA5OTdcdTA5YjJfXHUwOWFjXHUwOWMxXHUwOWE3X1x1MDlhY1x1MDljM1x1MDli''@;'; put 'put ''OV9cdTA5YjZcdTA5YzFcdTA5OTVcdTA5Y2RcdTA5YjBfXHUwOWI2XHUwOWE4XHUwOWJmIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiIsTFRTOiJBIGg6bW06c3MgXHUwOWI4XHUwOWFlXHUwOWRmIixMOiJERC9NTS9ZWVlZIixMTDoi''@;'; put 'put ''RCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5ODZcdTA5OWNdIExUIixuZXh0RGF5OiJbXHUwOTg2''@;'; put 'put ''XHUwOTk3XHUwOWJlXHUwOWFlXHUwOWMwXHUwOTk1XHUwOWJlXHUwOWIyXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTk3XHUwOWE0XHUwOTk1XHUwOWJlXHUwOWIyXSBMVCIsbGFzdFdlZWs6IltcdTA5OTdcdTA5YTRdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJl''@;'; put 'put ''bGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA5YWFcdTA5YjBcdTA5YzciLHBhc3Q6IiVzIFx1MDk4Nlx1MDk5N1x1MDljNyIsczoiXHUwOTk1XHUwOWRmXHUwOWM3XHUwOTk1IFx1MDliOFx1MDljN1x1MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1MDlhMSIsc3M6IiVkIFx1MDliOFx1MDljN1x1''@;'; put 'put ''MDk5NVx1MDljN1x1MDlhOFx1MDljZFx1MDlhMSIsbToiXHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZlx1MDlhOFx1MDliZlx1MDk5ZiIsbW06IiVkIFx1MDlhZVx1MDliZlx1MDlhOFx1MDliZlx1MDk5ZiIsaDoiXHUwOThmXHUwOTk1IFx1MDk5OFx1MDlhOFx1MDljZFx1MDk5Zlx1MDliZSIs''@;'; put 'put ''aGg6IiVkIFx1MDk5OFx1MDlhOFx1MDljZFx1MDk5Zlx1MDliZSIsZDoiXHUwOThmXHUwOTk1IFx1MDlhNlx1MDliZlx1MDlhOCIsZGQ6IiVkIFx1MDlhNlx1MDliZlx1MDlhOCIsTToiXHUwOThmXHUwOTk1IFx1MDlhZVx1MDliZVx1MDliOCIsTU06IiVkIFx1MDlhZVx1MDliZVx1MDliOCIs''@;'; put 'put ''eToiXHUwOThmXHUwOTk1IFx1MDlhY1x1MDk5Ylx1MDliMCIseXk6IiVkIFx1MDlhY1x1MDk5Ylx1MDliMCJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTA5ZTdcdTA5ZThcdTA5ZTlcdTA5ZWFcdTA5ZWJcdTA5ZWNcdTA5ZWRcdTA5ZWVcdTA5ZWZcdTA5ZTZd''@;'; put 'put ''L2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MDliMFx1MDliZVx1MDlhNHxcdTA5YWRcdTA5Y2JcdTA5YjB8XHUwOWI4XHUw''@;'; put 'put ''OTk1XHUwOWJlXHUwOWIyfFx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMHxcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjJ8XHUwOWI4XHUwOWE4XHUwOWNkXHUwOWE3XHUwOWNkXHUwOWFmXHUwOWJlfFx1MDliMFx1MDliZVx1MDlhNC8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUs''@;'; put 'put ''USl7cmV0dXJuIDEyPT09VSYmKFU9MCksIlx1MDliMFx1MDliZVx1MDlhNCI9PT1RP1U8ND9VOlUrMTI6Ilx1MDlhZFx1MDljYlx1MDliMCI9PT1RfHwiXHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyIj09PVE/VToiXHUwOWE2XHUwOWMxXHUwOWFhXHUwOWMxXHUwOWIwIj09PVE/VT49Mz9VOlUr''@;'; put 'put ''MTI6Ilx1MDlhY1x1MDliZlx1MDk5NVx1MDliZVx1MDliMiI9PT1RfHwiXHUwOWI4XHUwOWE4XHUwOWNkXHUwOWE3XHUwOWNkXHUwOWFmXHUwOWJlIj09PVE/VSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxqKXtyZXR1cm4gVTw0PyJcdTA5YjBcdTA5YmVcdTA5YTQiOlU8Nj8i''@;'; put 'put ''XHUwOWFkXHUwOWNiXHUwOWIwIjpVPDEyPyJcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjIiOlU8MTU/Ilx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI6VTwxOD8iXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIjpVPDIwPyJcdTA5YjhcdTA5YThcdTA5Y2RcdTA5YTdcdTA5Y2Rc''@;'; put 'put ''dTA5YWZcdTA5YmUiOiJcdTA5YjBcdTA5YmVcdTA5YTQifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw1OTYyMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwOWU3IiwyOiJcdTA5ZTgiLDM6Ilx1MDllOSIsNDoiXHUw''@;'; put 'put ''OWVhIiw1OiJcdTA5ZWIiLDY6Ilx1MDllYyIsNzoiXHUwOWVkIiw4OiJcdTA5ZWUiLDk6Ilx1MDllZiIsMDoiXHUwOWU2In0sRT17Ilx1MDllNyI6IjEiLCJcdTA5ZTgiOiIyIiwiXHUwOWU5IjoiMyIsIlx1MDllYSI6IjQiLCJcdTA5ZWIiOiI1IiwiXHUwOWVjIjoiNiIsIlx1MDllZCI6Ijci''@;'; put 'put ''LCJcdTA5ZWUiOiI4IiwiXHUwOWVmIjoiOSIsIlx1MDllNiI6IjAifTttZS5kZWZpbmVMb2NhbGUoImJuIix7bW9udGhzOiJcdTA5OWNcdTA5YmVcdTA5YThcdTA5YzFcdTA5ZGZcdTA5YmVcdTA5YjBcdTA5YmZfXHUwOWFiXHUwOWM3XHUwOWFjXHUwOWNkXHUwOWIwXHUwOWMxXHUwOWRmXHUw''@;'; put 'put ''OWJlXHUwOWIwXHUwOWJmX1x1MDlhZVx1MDliZVx1MDliMFx1MDljZFx1MDk5YV9cdTA5OGZcdTA5YWFcdTA5Y2RcdTA5YjBcdTA5YmZcdTA5YjJfXHUwOWFlXHUwOWM3X1x1MDk5Y1x1MDljMVx1MDlhOF9cdTA5OWNcdTA5YzFcdTA5YjJcdTA5YmVcdTA5ODdfXHUwOTg2XHUwOTk3XHUwOWI4''@;'; put 'put ''XHUwOWNkXHUwOTlmX1x1MDliOFx1MDljN1x1MDlhYVx1MDljZFx1MDk5Zlx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMF9cdTA5ODVcdTA5OTVcdTA5Y2RcdTA5OWZcdTA5Y2JcdTA5YWNcdTA5YjBfXHUwOWE4XHUwOWFkXHUwOWM3XHUwOWFlXHUwOWNkXHUwOWFjXHUwOWIwX1x1MDlh''@;'; put 'put ''MVx1MDliZlx1MDliOFx1MDljN1x1MDlhZVx1MDljZFx1MDlhY1x1MDliMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTljXHUwOWJlXHUwOWE4XHUwOWMxX1x1MDlhYlx1MDljN1x1MDlhY1x1MDljZFx1MDliMFx1MDljMV9cdTA5YWVcdTA5YmVcdTA5YjBcdTA5Y2RcdTA5OWFfXHUw''@;'; put 'put ''OThmXHUwOWFhXHUwOWNkXHUwOWIwXHUwOWJmXHUwOWIyX1x1MDlhZVx1MDljN19cdTA5OWNcdTA5YzFcdTA5YThfXHUwOTljXHUwOWMxXHUwOWIyXHUwOWJlXHUwOTg3X1x1MDk4Nlx1MDk5N1x1MDliOFx1MDljZFx1MDk5Zl9cdTA5YjhcdTA5YzdcdTA5YWFcdTA5Y2RcdTA5OWZfXHUwOTg1''@;'; put 'put ''XHUwOTk1XHUwOWNkXHUwOTlmXHUwOWNiX1x1MDlhOFx1MDlhZFx1MDljN19cdTA5YTFcdTA5YmZcdTA5YjhcdTA5YzciLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDliMFx1MDlhY1x1MDliZlx1MDlhY1x1MDliZVx1MDliMF9cdTA5YjhcdTA5Y2JcdTA5YWVcdTA5YWNcdTA5YmVcdTA5YjBf''@;'; put 'put ''XHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDlhY1x1MDljMVx1MDlhN1x1MDlhY1x1MDliZVx1MDliMF9cdTA5YWNcdTA5YzNcdTA5YjlcdTA5YjhcdTA5Y2RcdTA5YWFcdTA5YTRcdTA5YmZcdTA5YWNcdTA5YmVcdTA5YjBfXHUwOWI2XHUwOWMx''@;'; put 'put ''XHUwOTk1XHUwOWNkXHUwOWIwXHUwOWFjXHUwOWJlXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZlx1MDlhY1x1MDliZVx1MDliMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA5YjBcdTA5YWNcdTA5YmZfXHUwOWI4XHUwOWNiXHUwOWFlX1x1MDlhZVx1MDk5OVx1MDljZFx1MDk5N1x1''@;'; put 'put ''MDliMl9cdTA5YWNcdTA5YzFcdTA5YTdfXHUwOWFjXHUwOWMzXHUwOWI5XHUwOWI4XHUwOWNkXHUwOWFhXHUwOWE0XHUwOWJmX1x1MDliNlx1MDljMVx1MDk5NVx1MDljZFx1MDliMF9cdTA5YjZcdTA5YThcdTA5YmYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDliMFx1MDlhY1x1MDli''@;'; put 'put ''Zl9cdTA5YjhcdTA5Y2JcdTA5YWVfXHUwOWFlXHUwOTk5XHUwOWNkXHUwOTk3XHUwOWIyX1x1MDlhY1x1MDljMVx1MDlhN19cdTA5YWNcdTA5YzNcdTA5YjlfXHUwOWI2XHUwOWMxXHUwOTk1XHUwOWNkXHUwOWIwX1x1MDliNlx1MDlhOFx1MDliZiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1h''@;'; put 'put ''dDp7TFQ6IkEgaDptbSBcdTA5YjhcdTA5YWVcdTA5ZGYiLExUUzoiQSBoOm1tOnNzIFx1MDliOFx1MDlhZVx1MDlkZiIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOWI4XHUwOWFlXHUwOWRmIixMTExMOiJkZGRkLCBEIE1NTU0g''@;'; put 'put ''WVlZWSwgQSBoOm1tIFx1MDliOFx1MDlhZVx1MDlkZiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTg2XHUwOTljXSBMVCIsbmV4dERheToiW1x1MDk4Nlx1MDk5N1x1MDliZVx1MDlhZVx1MDljMFx1MDk5NVx1MDliZVx1MDliMl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToi''@;'; put 'put ''W1x1MDk5N1x1MDlhNFx1MDk5NVx1MDliZVx1MDliMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTk3XHUwOWE0XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwOWFhXHUwOWIwXHUwOWM3IixwYXN0OiIlcyBcdTA5ODZcdTA5OTdcdTA5YzciLHM6Ilx1''@;'; put 'put ''MDk5NVx1MDlkZlx1MDljN1x1MDk5NSBcdTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThcdTA5Y2RcdTA5YTEiLHNzOiIlZCBcdTA5YjhcdTA5YzdcdTA5OTVcdTA5YzdcdTA5YThcdTA5Y2RcdTA5YTEiLG06Ilx1MDk4Zlx1MDk5NSBcdTA5YWVcdTA5YmZcdTA5YThcdTA5YmZcdTA5OWYi''@;'; put 'put ''LG1tOiIlZCBcdTA5YWVcdTA5YmZcdTA5YThcdTA5YmZcdTA5OWYiLGg6Ilx1MDk4Zlx1MDk5NSBcdTA5OThcdTA5YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGhoOiIlZCBcdTA5OThcdTA5YThcdTA5Y2RcdTA5OWZcdTA5YmUiLGQ6Ilx1MDk4Zlx1MDk5NSBcdTA5YTZcdTA5YmZcdTA5YTgiLGRk''@;'; put 'put ''OiIlZCBcdTA5YTZcdTA5YmZcdTA5YTgiLE06Ilx1MDk4Zlx1MDk5NSBcdTA5YWVcdTA5YmVcdTA5YjgiLE1NOiIlZCBcdTA5YWVcdTA5YmVcdTA5YjgiLHk6Ilx1MDk4Zlx1MDk5NSBcdTA5YWNcdTA5OWJcdTA5YjAiLHl5OiIlZCBcdTA5YWNcdTA5OWJcdTA5YjAifSxwcmVwYXJzZTpmdW5j''@;'; put 'put ''dGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwOWU3XHUwOWU4XHUwOWU5XHUwOWVhXHUwOWViXHUwOWVjXHUwOWVkXHUwOWVlXHUwOWVmXHUwOWU2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxm''@;'; put 'put ''dW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5YjBcdTA5YmVcdTA5YTR8XHUwOWI4XHUwOTk1XHUwOWJlXHUwOWIyfFx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMHxcdTA5YWNcdTA5YmZcdTA5OTVcdTA5YmVcdTA5YjJ8XHUwOWIwXHUwOWJlXHUwOWE0''@;'; put 'put ''LyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwOWIwXHUwOWJlXHUwOWE0Ij09PVEmJlU+PTR8fCJcdTA5YTZcdTA5YzFcdTA5YWFcdTA5YzFcdTA5YjAiPT09USYmVTw1fHwiXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUwOWIyIj09PVE/VSsx''@;'; put 'put ''MjpVfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsail7cmV0dXJuIFU8ND8iXHUwOWIwXHUwOWJlXHUwOWE0IjpVPDEwPyJcdTA5YjhcdTA5OTVcdTA5YmVcdTA5YjIiOlU8MTc/Ilx1MDlhNlx1MDljMVx1MDlhYVx1MDljMVx1MDliMCI6VTwyMD8iXHUwOWFjXHUwOWJmXHUwOTk1XHUwOWJlXHUw''@;'; put 'put ''OWIyIjoiXHUwOWIwXHUwOWJlXHUwOWE0In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNjk2NDU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MGYyMSIsMjoiXHUwZjIyIiwzOiJcdTBmMjMiLDQ6Ilx1MGYyNCIsNToi''@;'; put 'put ''XHUwZjI1Iiw2OiJcdTBmMjYiLDc6Ilx1MGYyNyIsODoiXHUwZjI4Iiw5OiJcdTBmMjkiLDA6Ilx1MGYyMCJ9LEU9eyJcdTBmMjEiOiIxIiwiXHUwZjIyIjoiMiIsIlx1MGYyMyI6IjMiLCJcdTBmMjQiOiI0IiwiXHUwZjI1IjoiNSIsIlx1MGYyNiI6IjYiLCJcdTBmMjciOiI3IiwiXHUwZjI4''@;'; put 'put ''IjoiOCIsIlx1MGYyOSI6IjkiLCJcdTBmMjAiOiIwIn07bWUuZGVmaW5lTG9jYWxlKCJibyIse21vbnRoczoiXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjUxXHUwZjQ0XHUwZjBiXHUwZjU0XHUwZjdjX1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY0Mlx1MGY0''@;'; put 'put ''OVx1MGY3Mlx1MGY2Nlx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNDJcdTBmNjZcdTBmNzRcdTBmNThcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjVlXHUwZjcyXHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZi''@;'; put 'put ''M1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY2M1x1MGY5NFx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTFcdTBmYjJcdTBmNzRcdTBmNDJcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiXHUwZjU2XHUwZjUxXHUwZjc0XHUwZjUz''@;'; put 'put ''XHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY2Mlx1MGY5Mlx1MGZiMVx1MGY1MVx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJcdTBmNTFcdTBmNDJcdTBmNzRcdTBmMGJcdTBmNTRfXHUwZjVmXHUwZmIzXHUwZjBi''@;'; put 'put ''XHUwZjU2XHUwZjBiXHUwZjU2XHUwZjQ1XHUwZjc0XHUwZjBiXHUwZjU0X1x1MGY1Zlx1MGZiM1x1MGYwYlx1MGY1Nlx1MGYwYlx1MGY1Nlx1MGY0NVx1MGY3NFx1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1NF9cdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJc''@;'; put 'put ''dTBmNTZcdTBmNDVcdTBmNzRcdTBmMGJcdTBmNDJcdTBmNDlcdTBmNzJcdTBmNjZcdTBmMGJcdTBmNTQiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGY1Zlx1MGZiM1x1MGYwYjFfXHUwZjVmXHUwZmIzXHUwZjBiMl9cdTBmNWZcdTBmYjNcdTBmMGIzX1x1MGY1Zlx1MGZiM1x1MGYwYjRf''@;'; put 'put ''XHUwZjVmXHUwZmIzXHUwZjBiNV9cdTBmNWZcdTBmYjNcdTBmMGI2X1x1MGY1Zlx1MGZiM1x1MGYwYjdfXHUwZjVmXHUwZmIzXHUwZjBiOF9cdTBmNWZcdTBmYjNcdTBmMGI5X1x1MGY1Zlx1MGZiM1x1MGYwYjEwX1x1MGY1Zlx1MGZiM1x1MGYwYjExX1x1MGY1Zlx1MGZiM1x1MGYwYjEyIi5z''@;'; put 'put ''cGxpdCgiXyIpLG1vbnRoc1Nob3J0UmVnZXg6L14oXHUwZjVmXHUwZmIzXHUwZjBiXGR7MSwyfSkvLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY0OVx1MGY3Mlx1MGYwYlx1MGY1OFx1MGYwYl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBm''@;'; put 'put ''MGJcdTBmNWZcdTBmYjNcdTBmMGJcdTBmNTZcdTBmMGJfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU4XHUwZjcyXHUwZjQyXHUwZjBiXHUwZjUxXHUwZjU4XHUwZjYyXHUwZjBiX1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY2M1x1MGZiN1x1MGY0Mlx1MGYwYlx1MGY1NFx1MGYw''@;'; put 'put ''Yl9cdTBmNDJcdTBmNWZcdTBmNjBcdTBmMGJcdTBmNTVcdTBmNzRcdTBmNjJcdTBmMGJcdTBmNTZcdTBmNzRfXHUwZjQyXHUwZjVmXHUwZjYwXHUwZjBiXHUwZjU0XHUwZjBiXHUwZjY2XHUwZjQ0XHUwZjY2XHUwZjBiX1x1MGY0Mlx1MGY1Zlx1MGY2MFx1MGYwYlx1MGY2Nlx1MGZhNFx1MGY3''@;'; put 'put ''YVx1MGY1M1x1MGYwYlx1MGY1NFx1MGYwYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBmNDlcdTBmNzJcdTBmMGJcdTBmNThcdTBmMGJfXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2XHUwZjBiX1x1MGY1OFx1MGY3Mlx1MGY0Mlx1MGYwYlx1MGY1MVx1MGY1OFx1MGY2Mlx1MGYwYl9c''@;'; put 'put ''dTBmNjNcdTBmYjdcdTBmNDJcdTBmMGJcdTBmNTRcdTBmMGJfXHUwZjU1XHUwZjc0XHUwZjYyXHUwZjBiXHUwZjU2XHUwZjc0X1x1MGY1NFx1MGYwYlx1MGY2Nlx1MGY0NFx1MGY2Nlx1MGYwYl9cdTBmNjZcdTBmYTRcdTBmN2FcdTBmNTNcdTBmMGJcdTBmNTRcdTBmMGIiLnNwbGl0KCJfIiks''@;'; put 'put ''d2Vla2RheXNNaW46Ilx1MGY0OVx1MGY3Ml9cdTBmNWZcdTBmYjNfXHUwZjU4XHUwZjcyXHUwZjQyX1x1MGY2M1x1MGZiN1x1MGY0Ml9cdTBmNTVcdTBmNzRcdTBmNjJfXHUwZjY2XHUwZjQ0XHUwZjY2X1x1MGY2Nlx1MGZhNFx1MGY3YVx1MGY1MyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1h''@;'; put 'put ''dDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBmNTFcdTBmNzJcdTBmMGJcdTBm''@;'; put 'put ''NjJcdTBmNzJcdTBmNDRdIExUIixuZXh0RGF5OiJbXHUwZjY2XHUwZjQ0XHUwZjBiXHUwZjQ5XHUwZjcyXHUwZjUzXSBMVCIsbmV4dFdlZWs6IltcdTBmNTZcdTBmNTFcdTBmNzRcdTBmNTNcdTBmMGJcdTBmNTVcdTBmYjJcdTBmNDJcdTBmMGJcdTBmNjJcdTBmOTdcdTBmN2FcdTBmNjZcdTBm''@;'; put 'put ''MGJcdTBmNThdLCBMVCIsbGFzdERheToiW1x1MGY0MVx1MGYwYlx1MGY2Nlx1MGY0NF0gTFQiLGxhc3RXZWVrOiJbXHUwZjU2XHUwZjUxXHUwZjc0XHUwZjUzXHUwZjBiXHUwZjU1XHUwZmIyXHUwZjQyXHUwZjBiXHUwZjU4XHUwZjUwXHUwZjYwXHUwZjBiXHUwZjU4XSBkZGRkLCBMVCIsc2Ft''@;'; put 'put ''ZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwZjYzXHUwZjBiIixwYXN0OiIlcyBcdTBmNjZcdTBmOTRcdTBmNTNcdTBmMGJcdTBmNjMiLHM6Ilx1MGY2M1x1MGY1OFx1MGYwYlx1MGY2Nlx1MGY0NCIsc3M6IiVkIFx1MGY2Nlx1MGY5MFx1MGY2Mlx1MGYwYlx1MGY0Nlx1''@;'; put 'put ''MGYwZCIsbToiXHUwZjY2XHUwZjkwXHUwZjYyXHUwZjBiXHUwZjU4XHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIixtbToiJWQgXHUwZjY2XHUwZjkwXHUwZjYyXHUwZjBiXHUwZjU4IixoOiJcdTBmNDZcdTBmNzRcdTBmMGJcdTBmNWFcdTBmN2NcdTBmNTFcdTBmMGJcdTBmNDJcdTBm''@;'; put 'put ''NDVcdTBmNzJcdTBmNDIiLGhoOiIlZCBcdTBmNDZcdTBmNzRcdTBmMGJcdTBmNWFcdTBmN2NcdTBmNTEiLGQ6Ilx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY0NVx1MGY3Mlx1MGY0MiIsZGQ6IiVkIFx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYiIsTToiXHUwZjVmXHUwZmIzXHUw''@;'; put 'put ''ZjBiXHUwZjU2XHUwZjBiXHUwZjQyXHUwZjQ1XHUwZjcyXHUwZjQyIixNTToiJWQgXHUwZjVmXHUwZmIzXHUwZjBiXHUwZjU2Iix5OiJcdTBmNjNcdTBmN2NcdTBmMGJcdTBmNDJcdTBmNDVcdTBmNzJcdTBmNDIiLHl5OiIlZCBcdTBmNjNcdTBmN2MifSxwcmVwYXJzZTpmdW5jdGlvbihVKXty''@;'; put 'put ''ZXR1cm4gVS5yZXBsYWNlKC9bXHUwZjIxXHUwZjIyXHUwZjIzXHUwZjI0XHUwZjI1XHUwZjI2XHUwZjI3XHUwZjI4XHUwZjI5XHUwZjIwXS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihR''@;'; put 'put ''KXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBmNThcdTBmNWFcdTBmNTNcdTBmMGJcdTBmNThcdTBmN2N8XHUwZjVlXHUwZjdjXHUwZjQyXHUwZjY2XHUwZjBiXHUwZjQwXHUwZjY2fFx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY3NFx1MGY0NHxcdTBmNTFcdTBm''@;'; put 'put ''NDJcdTBmN2NcdTBmNDRcdTBmMGJcdTBmNTFcdTBmNDJ8XHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIj09PVEmJlU+''@;'; put 'put ''PTR8fCJcdTBmNDlcdTBmNzJcdTBmNTNcdTBmMGJcdTBmNDJcdTBmNzRcdTBmNDQiPT09USYmVTw1fHwiXHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUwZjUxXHUwZjQyIj09PVE/VSsxMjpVfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsail7cmV0dXJuIFU8ND8iXHUwZjU4XHUwZjVh''@;'; put 'put ''XHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIjpVPDEwPyJcdTBmNWVcdTBmN2NcdTBmNDJcdTBmNjZcdTBmMGJcdTBmNDBcdTBmNjYiOlU8MTc/Ilx1MGY0OVx1MGY3Mlx1MGY1M1x1MGYwYlx1MGY0Mlx1MGY3NFx1MGY0NCI6VTwyMD8iXHUwZjUxXHUwZjQyXHUwZjdjXHUwZjQ0XHUwZjBiXHUw''@;'; put 'put ''ZjUxXHUwZjQyIjoiXHUwZjU4XHUwZjVhXHUwZjUzXHUwZjBiXHUwZjU4XHUwZjdjIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNDUwMjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihKLHNlLG9lKXtyZXR1cm4gSisi''@;'; put 'put ''ICIrZnVuY3Rpb24gVShKLHNlKXtyZXR1cm4gMj09PXNlP2Z1bmN0aW9uIFEoSil7dmFyIHNlPXttOiJ2IixiOiJ2IixkOiJ6In07cmV0dXJuIHZvaWQgMD09PXNlW0ouY2hhckF0KDApXT9KOnNlW0ouY2hhckF0KDApXStKLnN1YnN0cmluZygxKX0oSik6Sn0oe21tOiJtdW51dGVubiIsTU06''@;'; put 'put ''Im1peiIsZGQ6ImRldmV6aCJ9W29lXSxKKX1mdW5jdGlvbiBFZShKKXtyZXR1cm4gSj45P0VlKEolMTApOkp9dmFyIGo9Wy9eZ2VuL2ksL15jW1x1MDJiY1wnXWh3ZS9pLC9ebWV1L2ksL15lYnIvaSwvXm1hZS9pLC9eKG1lenxldmUpL2ksL15nb3UvaSwvXmVvcy9pLC9eZ3dlL2ksL15oZXIv''@;'; put 'put ''aSwvXmR1L2ksL15rZXIvaV0scmU9L14oZ2VudmVyfGNbXHUwMmJjXCddaHdldnJlcnxtZXVyemh8ZWJyZWx8bWFlfG1lemhldmVufGdvdWVyZXxlb3N0fGd3ZW5nb2xvfGhlcmV8ZHV8a2VyenV8Z2VufGNbXHUwMmJjXCddaHdlfG1ldXxlYnJ8bWFlfGV2ZXxnb3V8ZW9zfGd3ZXxoZXJ8ZHV8''@;'; put 'put ''a2VyKS9pLHRlPVsvXlN1L2ksL15MdS9pLC9eTWUoW15yXXwkKS9pLC9eTWVyL2ksL15ZYS9pLC9eR3cvaSwvXlNhL2ldO21lLmRlZmluZUxvY2FsZSgiYnIiLHttb250aHM6IkdlbnZlcl9DXHUwMmJjaHdldnJlcl9NZXVyemhfRWJyZWxfTWFlX01lemhldmVuX0dvdWVyZV9Fb3N0X0d3ZW5n''@;'; put 'put ''b2xvX0hlcmVfRHVfS2VyenUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikdlbl9DXHUwMmJjaHdlX01ldV9FYnJfTWFlX0V2ZV9Hb3VfRW9zX0d3ZV9IZXJfRHVfS2VyIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdWxfTHVuX01ldXJ6aF9NZXJjXHUwMmJjaGVyX1lhb3VfR3dlbmVyX1NhZG9y''@;'; put 'put ''biIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdWxfTHVuX01ldV9NZXJfWWFvX0d3ZV9TYWQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X0x1X01lX01lcl9ZYV9Hd19TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlOnRlLGZ1bGxXZWVrZGF5c1BhcnNlOlsvXnN1bC9pLC9ebHVu''@;'; put 'put ''L2ksL15tZXVyemgvaSwvXm1lcmNbXHUwMmJjXCddaGVyL2ksL155YW91L2ksL15nd2VuZXIvaSwvXnNhZG9ybi9pXSxzaG9ydFdlZWtkYXlzUGFyc2U6Wy9eU3VsL2ksL15MdW4vaSwvXk1ldS9pLC9eTWVyL2ksL15ZYW8vaSwvXkd3ZS9pLC9eU2FkL2ldLG1pbldlZWtkYXlzUGFyc2U6dGUs''@;'; put 'put ''bW9udGhzUmVnZXg6cmUsbW9udGhzU2hvcnRSZWdleDpyZSxtb250aHNTdHJpY3RSZWdleDovXihnZW52ZXJ8Y1tcdTAyYmNcJ11od2V2cmVyfG1ldXJ6aHxlYnJlbHxtYWV8bWV6aGV2ZW58Z291ZXJlfGVvc3R8Z3dlbmdvbG98aGVyZXxkdXxrZXJ6dSkvaSxtb250aHNTaG9ydFN0cmljdFJl''@;'; put 'put ''Z2V4Oi9eKGdlbnxjW1x1MDJiY1wnXWh3ZXxtZXV8ZWJyfG1hZXxldmV8Z291fGVvc3xnd2V8aGVyfGR1fGtlcikvaSxtb250aHNQYXJzZTpqLGxvbmdNb250aHNQYXJzZTpqLHNob3J0TW9udGhzUGFyc2U6aixsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJE''@;'; put 'put ''RC9NTS9ZWVlZIixMTDoiRCBbYSB2aXpdIE1NTU0gWVlZWSIsTExMOiJEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIFthIHZpel0gTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIaXppdiBkYV0gTFQiLG5leHREYXk6IltXYXJjXHUwMmJjaG9h''@;'; put 'put ''emggZGFdIExUIixuZXh0V2VlazoiZGRkZCBbZGFdIExUIixsYXN0RGF5OiJbRGVjXHUwMmJjaCBkYV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtwYXNldCBkYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImEtYmVubiAlcyIscGFzdDoiJXMgXHUwMmJjem8iLHM6InVu''@;'; put 'put ''IG5lYmV1ZCBzZWdvbmRlbm5vXHhmOSIsc3M6IiVkIGVpbGVubiIsbToidXIgdnVudXRlbm4iLG1tOkIsaDoidW4gZXVyIixoaDoiJWQgZXVyIixkOiJ1biBkZXZlemgiLGRkOkIsTToidXIgbWl6IixNTTpCLHk6InVyIGJsb2F6Iix5eTpmdW5jdGlvbiBFKEope3N3aXRjaChFZShKKSl7Y2Fz''@;'; put 'put ''ZSAxOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmNhc2UgOTpyZXR1cm4gSisiIGJsb2F6IjtkZWZhdWx0OnJldHVybiBKKyIgdmxvYXoifX19LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oYVx4ZjF8dmV0KS8sb3JkaW5hbDpmdW5jdGlvbihKKXtyZXR1cm4gSisoMT09PUo/ImFceGYx''@;'; put 'put ''IjoidmV0Iil9LHdlZWs6e2RvdzoxLGRveTo0fSxtZXJpZGllbVBhcnNlOi9hLm0ufGcubS4vLGlzUE06ZnVuY3Rpb24oSil7cmV0dXJuImcubS4iPT09Sn0sbWVyaWRpZW06ZnVuY3Rpb24oSixzZSxvZSl7cmV0dXJuIEo8MTI/ImEubS4iOiJnLm0uIn19KX0oTCgxNTQzOSkpfSw2NDc5Mjpm''@;'; put 'put ''dW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKEVlLFUsUSl7dmFyIGo9RWUrIiAiO3N3aXRjaChRKXtjYXNlInNzIjpyZXR1cm4gaisoMT09PUVlPyJzZWt1bmRhIjoyPT09RWV8fDM9PT1FZXx8ND09PUVlPyJzZWt1bmRlIjoic2VrdW5kaSIp''@;'; put 'put ''O2Nhc2UibSI6cmV0dXJuIFU/ImplZG5hIG1pbnV0YSI6ImplZG5lIG1pbnV0ZSI7Y2FzZSJtbSI6cmV0dXJuIGorKDE9PT1FZT8ibWludXRhIjoyPT09RWV8fDM9PT1FZXx8ND09PUVlPyJtaW51dGUiOiJtaW51dGEiKTtjYXNlImgiOnJldHVybiBVPyJqZWRhbiBzYXQiOiJqZWRub2cgc2F0''@;'; put 'put ''YSI7Y2FzZSJoaCI6cmV0dXJuIGorKDE9PT1FZT8ic2F0IjoyPT09RWV8fDM9PT1FZXx8ND09PUVlPyJzYXRhIjoic2F0aSIpO2Nhc2UiZGQiOnJldHVybiBqKygxPT09RWU/ImRhbiI6ImRhbmEiKTtjYXNlIk1NIjpyZXR1cm4gaisoMT09PUVlPyJtamVzZWMiOjI9PT1FZXx8Mz09PUVlfHw0''@;'; put 'put ''PT09RWU/Im1qZXNlY2EiOiJtamVzZWNpIik7Y2FzZSJ5eSI6cmV0dXJuIGorKDE9PT1FZT8iZ29kaW5hIjoyPT09RWV8fDM9PT1FZXx8ND09PUVlPyJnb2RpbmUiOiJnb2RpbmEiKX19bWUuZGVmaW5lTG9jYWxlKCJicyIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpf''@;'; put 'put ''anVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iYXJfb2t0b2Jhcl9ub3ZlbWJhcl9kZWNlbWJhciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFj''@;'; put 'put ''dDohMCx3ZWVrZGF5czoibmVkamVsamFfcG9uZWRqZWxqYWtfdXRvcmFrX3NyaWplZGFfXHUwMTBkZXR2cnRha19wZXRha19zdWJvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3V0by5fc3JpLl9cdTAxMGRldC5fcGV0Ll9zdWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; put 'put ''TWluOiJuZV9wb191dF9zcl9cdTAxMGRlX3BlX3N1Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExM''@;'; put 'put ''TDoiZGRkZCwgRC4gTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2RhbmFzIHVdIExUIixuZXh0RGF5OiJbc3V0cmEgdV0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3VdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNl''@;'; put 'put ''IDM6cmV0dXJuIlt1XSBbc3JpamVkdV0gW3VdIExUIjtjYXNlIDY6cmV0dXJuIlt1XSBbc3Vib3R1XSBbdV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW3VdIGRkZGQgW3VdIExUIn19LGxhc3REYXk6IltqdVx1MDEwZGVyIHVdIExUIixsYXN0V2VlazpmdW5jdGlv''@;'; put 'put ''bigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6Y2FzZSAzOnJldHVybiJbcHJvXHUwMTYxbHVdIGRkZGQgW3VdIExUIjtjYXNlIDY6cmV0dXJuIltwcm9cdTAxNjFsZV0gW3N1Ym90ZV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIltwcm9cdTAxNjFsaV0g''@;'; put 'put ''ZGRkZCBbdV0gTFQifX0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByaWplICVzIixzOiJwYXIgc2VrdW5kaSIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOiJkYW4iLGRkOkIsTToibWplc2VjIixNTTpCLHk6ImdvZGludSIseXk6Qn0sZGF5T2ZN''@;'; put 'put ''b250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDQ3OTgwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiY2EiLHttb250aHM6e3N0YW5kYWxv''@;'; put 'put ''bmU6ImdlbmVyX2ZlYnJlcl9tYXJceGU3X2FicmlsX21haWdfanVueV9qdWxpb2xfYWdvc3Rfc2V0ZW1icmVfb2N0dWJyZV9ub3ZlbWJyZV9kZXNlbWJyZSIuc3BsaXQoIl8iKSxmb3JtYXQ6ImRlIGdlbmVyX2RlIGZlYnJlcl9kZSBtYXJceGU3X2QnYWJyaWxfZGUgbWFpZ19kZSBqdW55X2Rl''@;'; put 'put ''IGp1bGlvbF9kJ2Fnb3N0X2RlIHNldGVtYnJlX2Qnb2N0dWJyZV9kZSBub3ZlbWJyZV9kZSBkZXNlbWJyZSIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovRFtvRF0/KFxzKStNTU1NL30sbW9udGhzU2hvcnQ6Imdlbi5fZmVici5fbWFyXHhlN19hYnIuX21haWdfanVueV9qdWwuX2FnLl9zZXQuX29j''@;'; put 'put ''dC5fbm92Ll9kZXMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRpdW1lbmdlX2RpbGx1bnNfZGltYXJ0c19kaW1lY3Jlc19kaWpvdXNfZGl2ZW5kcmVzX2Rpc3NhYnRlIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRnLl9kbC5fZHQuX2RjLl9kai5fZHYu''@;'; put 'put ''X2RzLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGdfZGxfZHRfZGNfZGpfZHZfZHMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFtkZV0gWVlZWSIsbGw6''@;'; put 'put ''IkQgTU1NIFlZWVkiLExMTDoiRCBNTU1NIFtkZV0gWVlZWSBbYSBsZXNdIEg6bW0iLGxsbDoiRCBNTU0gWVlZWSwgSDptbSIsTExMTDoiZGRkZCBEIE1NTU0gW2RlXSBZWVlZIFthIGxlc10gSDptbSIsbGxsbDoiZGRkIEQgTU1NIFlZWVksIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiJbYXZ1aSBhICIrKDEhPT10aGlzLmhvdXJzKCk/ImxlcyI6ImxhIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltkZW1ceGUwIGEgIisoMSE9PXRoaXMuaG91cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''ImRkZGQgW2EgIisoMSE9PXRoaXMuaG91cnMoKT8ibGVzIjoibGEiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2FoaXIgYSAiKygxIT09dGhpcy5ob3VycygpPyJsZXMiOiJsYSIpKyJdIExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW2VsXSBkZGRkIFtwYXNz''@;'; put 'put ''YXQgYSAiKygxIT09dGhpcy5ob3VycygpPyJsZXMiOiJsYSIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZCdhcXVceGVkICVzIixwYXN0OiJmYSAlcyIsczoidW5zIHNlZ29ucyIsc3M6IiVkIHNlZ29ucyIsbToidW4gbWludXQiLG1tOiIlZCBtaW51dHMi''@;'; put 'put ''LGg6InVuYSBob3JhIixoaDoiJWQgaG9yZXMiLGQ6InVuIGRpYSIsZGQ6IiVkIGRpZXMiLE06InVuIG1lcyIsTU06IiVkIG1lc29zIix5OiJ1biBhbnkiLHl5OiIlZCBhbnlzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShyfG58dHxceGU4fGEpLyxvcmRpbmFsOmZ1bmN0aW9u''@;'; put 'put ''KEUsRWUpe3ZhciBVPTE9PT1FPyJyIjoyPT09RT8ibiI6Mz09PUU/InIiOjQ9PT1FPyJ0IjoiXHhlOCI7cmV0dXJuKCJ3Ij09PUVlfHwiVyI9PT1FZSkmJihVPSJhIiksRStVfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0NzMyMjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rp''@;'; put 'put ''b24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17Zm9ybWF0OiJsZWRlbl9ceGZhbm9yX2JcdTAxNTllemVuX2R1YmVuX2t2XHUwMTFidGVuX1x1MDEwZGVydmVuX1x1MDEwZGVydmVuZWNfc3JwZW5felx4ZTFcdTAxNTlceGVkX1x1MDE1OVx4ZWRqZW5fbGlzdG9wYWRfcHJvc2luZWMiLnNwbGl0''@;'; put 'put ''KCJfIiksc3RhbmRhbG9uZToibGVkbmFfXHhmYW5vcmFfYlx1MDE1OWV6bmFfZHVibmFfa3ZcdTAxMWJ0bmFfXHUwMTBkZXJ2bmFfXHUwMTBkZXJ2ZW5jZV9zcnBuYV96XHhlMVx1MDE1OVx4ZWRfXHUwMTU5XHhlZGpuYV9saXN0b3BhZHVfcHJvc2luY2UiLnNwbGl0KCJfIil9LEU9ImxlZF9c''@;'; put 'put ''eGZhbm9fYlx1MDE1OWVfZHViX2t2XHUwMTFiX1x1MDEwZHZuX1x1MDEwZHZjX3NycF96XHhlMVx1MDE1OV9cdTAxNTlceGVkal9saXNfcHJvIi5zcGxpdCgiXyIpLEVlPVsvXmxlZC9pLC9eXHhmYW5vL2ksL15iXHUwMTU5ZS9pLC9eZHViL2ksL15rdlx1MDExYi9pLC9eKFx1MDEwZHZufFx1''@;'; put 'put ''MDEwZGVydmVuJHxcdTAxMGRlcnZuYSkvaSwvXihcdTAxMGR2Y3xcdTAxMGRlcnZlbmVjfFx1MDEwZGVydmVuY2UpL2ksL15zcnAvaSwvXnpceGUxXHUwMTU5L2ksL15cdTAxNTlceGVkai9pLC9ebGlzL2ksL15wcm8vaV0sVT0vXihsZWRlbnxceGZhbm9yfGJcdTAxNTllemVufGR1YmVufGt2''@;'; put 'put ''XHUwMTFidGVufFx1MDEwZGVydmVuZWN8XHUwMTBkZXJ2ZW5jZXxcdTAxMGRlcnZlbnxcdTAxMGRlcnZuYXxzcnBlbnx6XHhlMVx1MDE1OVx4ZWR8XHUwMTU5XHhlZGplbnxsaXN0b3BhZHxwcm9zaW5lY3xsZWR8XHhmYW5vfGJcdTAxNTllfGR1Ynxrdlx1MDExYnxcdTAxMGR2bnxcdTAxMGR2''@;'; put 'put ''Y3xzcnB8elx4ZTFcdTAxNTl8XHUwMTU5XHhlZGp8bGlzfHBybykvaTtmdW5jdGlvbiBRKGFlKXtyZXR1cm4gYWU+MSYmYWU8NSYmMSE9fn4oYWUvMTApfWZ1bmN0aW9uIGooYWUsWSxXLE4pe3ZhciB0ZT1hZSsiICI7c3dpdGNoKFcpe2Nhc2UicyI6cmV0dXJuIFl8fE4/InBceGUxciBzZWt1''@;'; put 'put ''bmQiOiJwXHhlMXIgc2VrdW5kYW1pIjtjYXNlInNzIjpyZXR1cm4gWXx8Tj90ZSsoUShhZSk/InNla3VuZHkiOiJzZWt1bmQiKTp0ZSsic2VrdW5kYW1pIjtjYXNlIm0iOnJldHVybiBZPyJtaW51dGEiOk4/Im1pbnV0dSI6Im1pbnV0b3UiO2Nhc2UibW0iOnJldHVybiBZfHxOP3RlKyhRKGFl''@;'; put 'put ''KT8ibWludXR5IjoibWludXQiKTp0ZSsibWludXRhbWkiO2Nhc2UiaCI6cmV0dXJuIFk/ImhvZGluYSI6Tj8iaG9kaW51IjoiaG9kaW5vdSI7Y2FzZSJoaCI6cmV0dXJuIFl8fE4/dGUrKFEoYWUpPyJob2RpbnkiOiJob2RpbiIpOnRlKyJob2RpbmFtaSI7Y2FzZSJkIjpyZXR1cm4gWXx8Tj8i''@;'; put 'put ''ZGVuIjoiZG5lbSI7Y2FzZSJkZCI6cmV0dXJuIFl8fE4/dGUrKFEoYWUpPyJkbnkiOiJkblx4ZWQiKTp0ZSsiZG55IjtjYXNlIk0iOnJldHVybiBZfHxOPyJtXHUwMTFic1x4ZWRjIjoibVx1MDExYnNceGVkY2VtIjtjYXNlIk1NIjpyZXR1cm4gWXx8Tj90ZSsoUShhZSk/Im1cdTAxMWJzXHhl''@;'; put 'put ''ZGNlIjoibVx1MDExYnNceGVkY1x1MDE2ZiIpOnRlKyJtXHUwMTFic1x4ZWRjaSI7Y2FzZSJ5IjpyZXR1cm4gWXx8Tj8icm9rIjoicm9rZW0iO2Nhc2UieXkiOnJldHVybiBZfHxOP3RlKyhRKGFlKT8icm9reSI6ImxldCIpOnRlKyJsZXR5In19bWUuZGVmaW5lTG9jYWxlKCJjcyIse21vbnRo''@;'; put 'put ''czpCLG1vbnRoc1Nob3J0OkUsbW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14obGVkZW58bGVkbmF8XHhmYW5vcmF8XHhmYW5vcnxiXHUwMTU5ZXplbnxiXHUwMTU5ZXpuYXxkdWJlbnxkdWJuYXxrdlx1MDExYnRlbnxrdlx1MDExYnRuYXxcdTAx''@;'; put 'put ''MGRlcnZlbmVjfFx1MDEwZGVydmVuY2V8XHUwMTBkZXJ2ZW58XHUwMTBkZXJ2bmF8c3JwZW58c3JwbmF8elx4ZTFcdTAxNTlceGVkfFx1MDE1OVx4ZWRqZW58XHUwMTU5XHhlZGpuYXxsaXN0b3BhZHV8bGlzdG9wYWR8cHJvc2luZWN8cHJvc2luY2UpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdl''@;'; put 'put ''eDovXihsZWR8XHhmYW5vfGJcdTAxNTllfGR1Ynxrdlx1MDExYnxcdTAxMGR2bnxcdTAxMGR2Y3xzcnB8elx4ZTFcdTAxNTl8XHUwMTU5XHhlZGp8bGlzfHBybykvaSxtb250aHNQYXJzZTpFZSxsb25nTW9udGhzUGFyc2U6RWUsc2hvcnRNb250aHNQYXJzZTpFZSx3ZWVrZGF5czoibmVkXHUw''@;'; put 'put ''MTFibGVfcG9uZFx1MDExYmxceGVkX1x4ZmF0ZXJceGZkX3N0XHUwMTU5ZWRhX1x1MDEwZHR2cnRla19wXHhlMXRla19zb2JvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVfcG9fXHhmYXRfc3RfXHUwMTBkdF9wXHhlMV9zbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9f''@;'; put 'put ''XHhmYXRfc3RfXHUwMTBkdF9wXHhlMV9zbyIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCBELiBNTU1NIFlZWVkgSDptbSIs''@;'; put 'put ''bDoiRC4gTS4gWVlZWSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZG5lcyB2XSBMVCIsbmV4dERheToiW3pceGVkdHJhIHZdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt2IG5lZFx1MDExYmxpIHZdIExUIjtjYXNlIDE6Y2FzZSAyOnJl''@;'; put 'put ''dHVybiJbdl0gZGRkZCBbdl0gTFQiO2Nhc2UgMzpyZXR1cm4iW3ZlIHN0XHUwMTU5ZWR1IHZdIExUIjtjYXNlIDQ6cmV0dXJuIlt2ZSBcdTAxMGR0dnJ0ZWsgdl0gTFQiO2Nhc2UgNTpyZXR1cm4iW3YgcFx4ZTF0ZWsgdl0gTFQiO2Nhc2UgNjpyZXR1cm4iW3Ygc29ib3R1IHZdIExUIn19LGxh''@;'; put 'put ''c3REYXk6Ilt2XHUwMTBkZXJhIHZdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlttaW51bG91IG5lZFx1MDExYmxpIHZdIExUIjtjYXNlIDE6Y2FzZSAyOnJldHVybiJbbWludWxceGU5XSBkZGRkIFt2XSBMVCI7Y2FzZSAzOnJldHVy''@;'; put 'put ''biJbbWludWxvdSBzdFx1MDE1OWVkdSB2XSBMVCI7Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW21pbnVsXHhmZF0gZGRkZCBbdl0gTFQiO2Nhc2UgNjpyZXR1cm4iW21pbnVsb3Ugc29ib3R1IHZdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJw''@;'; put 'put ''XHUwMTU5ZWQgJXMiLHM6aixzczpqLG06aixtbTpqLGg6aixoaDpqLGQ6aixkZDpqLE06aixNTTpqLHk6aix5eTpqfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sOTAzNjU6ZnVuY3Rpb24o''@;'; put 'put ''WGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJjdiIse21vbnRoczoiXHUwNDNhXHUwNGQxXHUwNDQwXHUwNDNiXHUwNDMwXHUwNDQ3X1x1MDQzZFx1MDQzMFx1MDQ0MFx1MDRkMVx1MDQ0MV9cdTA0M2ZcdTA0NDNcdTA0NDhfXHUwNDMwXHUwNDNh''@;'; put 'put ''XHUwNDMwX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0YWJcdTA0ZDdcdTA0NDBcdTA0NDJcdTA0M2NcdTA0MzVfXHUwNDQzXHUwNDQyXHUwNGQxX1x1MDRhYlx1MDQ0M1x1MDQ0MFx1MDQzYlx1MDQzMF9cdTA0MzBcdTA0MzJcdTA0ZDFcdTA0M2RfXHUwNDRlXHUwNDNmXHUwNDMwX1x1MDQ0N1x1''@;'; put 'put ''MDRmM1x1MDQzYV9cdTA0NDBcdTA0MzBcdTA0NDhcdTA0NDJcdTA0MzBcdTA0MzIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQzYVx1MDRkMVx1MDQ0MF9cdTA0M2RcdTA0MzBcdTA0NDBfXHUwNDNmXHUwNDQzXHUwNDQ4X1x1MDQzMFx1MDQzYVx1MDQzMF9cdTA0M2NcdTA0MzBcdTA0''@;'; put 'put ''MzlfXHUwNGFiXHUwNGQ3XHUwNDQwX1x1MDQ0M1x1MDQ0Mlx1MDRkMV9cdTA0YWJcdTA0NDNcdTA0NDBfXHUwNDMwXHUwNDMyXHUwNDNkX1x1MDQ0ZVx1MDQzZlx1MDQzMF9cdTA0NDdcdTA0ZjNcdTA0M2FfXHUwNDQwXHUwNDMwXHUwNDQ4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0MzJc''@;'; put 'put ''dTA0NGJcdTA0NDBcdTA0NDFcdTA0MzBcdTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDQyXHUwNDQzXHUwNDNkXHUwNDQyXHUwNDM4XHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQ0Ylx1MDQ0Mlx1MDQzYlx1MDQzMFx1MDQ0MFx1MDQzOFx1MDQzYVx1MDQ0M1x1MDQzZF9c''@;'; put 'put ''dTA0NGVcdTA0M2RcdTA0M2FcdTA0NDNcdTA0M2RfXHUwNDNhXHUwNGQ3XHUwNGFiXHUwNDNkXHUwNDM1XHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhXHUwNDQzXHUwNDNkX1x1MDQ0ZFx1MDQ0MFx1MDQzZFx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZF9cdTA0NDhcdTA0ZDFcdTA0M2NcdTA0MzBc''@;'; put 'put ''dTA0NDJcdTA0M2FcdTA0NDNcdTA0M2QiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDMyXHUwNDRiXHUwNDQwX1x1MDQ0Mlx1MDQ0M1x1MDQzZF9cdTA0NGJcdTA0NDJcdTA0M2JfXHUwNDRlXHUwNDNkX1x1MDQzYVx1MDRkN1x1MDRhYl9cdTA0NGRcdTA0NDBcdTA0M2RfXHUwNDQ4''@;'; put 'put ''XHUwNGQxXHUwNDNjIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MzJcdTA0NDBfXHUwNDQyXHUwNDNkX1x1MDQ0Ylx1MDQ0Ml9cdTA0NGVcdTA0M2RfXHUwNDNhXHUwNGFiX1x1MDQ0ZFx1MDQ0MF9cdTA0NDhcdTA0M2MiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDpt''@;'; put 'put ''bSIsTFRTOiJISDptbTpzcyIsTDoiREQtTU0tWVlZWSIsTEw6IllZWVkgW1x1MDRhYlx1MDQ0M1x1MDQzYlx1MDQ0NVx1MDQzOF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3XHUwNDNkXSBEWy1cdTA0M2NcdTA0ZDdcdTA0NDhcdTA0ZDddIixMTEw6IllZWVkgW1x1MDRh''@;'; put 'put ''Ylx1MDQ0M1x1MDQzYlx1MDQ0NVx1MDQzOF0gTU1NTSBbXHUwNDQzXHUwNDM5XHUwNGQxXHUwNDQ1XHUwNGQ3XHUwNDNkXSBEWy1cdTA0M2NcdTA0ZDdcdTA0NDhcdTA0ZDddLCBISDptbSIsTExMTDoiZGRkZCwgWVlZWSBbXHUwNGFiXHUwNDQzXHUwNDNiXHUwNDQ1XHUwNDM4XSBNTU1NIFtc''@;'; put 'put ''dTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDVcdTA0ZDdcdTA0M2RdIERbLVx1MDQzY1x1MDRkN1x1MDQ0OFx1MDRkN10sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MWZcdTA0MzBcdTA0NGZcdTA0M2RdIExUIFtcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0''@;'; put 'put ''MzVdIixuZXh0RGF5OiJbXHUwNDJiXHUwNDQwXHUwNDMwXHUwNDNkXSBMVCBbXHUwNDQxXHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsbGFzdERheToiW1x1MDRkNlx1MDQzZFx1MDQzNVx1MDQ0MF0gTFQgW1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0Mlx1MDQ0''@;'; put 'put ''MFx1MDQzNV0iLG5leHRXZWVrOiJbXHUwNGFhXHUwNDM4XHUwNDQyXHUwNDM1XHUwNDQxXSBkZGRkIExUIFtcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDJcdTA0NDBcdTA0MzVdIixsYXN0V2VlazoiW1x1MDQxOFx1MDQ0MFx1MDQ0Mlx1MDQzZFx1MDRkN10gZGRkZCBMVCBbXHUwNDQx''@;'; put 'put ''XHUwNDM1XHUwNDQ1XHUwNDM1XHUwNDQyXHUwNDQwXHUwNDM1XSIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihFKXtyZXR1cm4gRSsoL1x1MDQ0MVx1MDQzNVx1MDQ0NVx1MDQzNVx1MDQ0MiQvaS5leGVjKEUpPyJcdTA0NDBcdTA0MzVcdTA0M2QiOi9cdTA0''@;'; put 'put ''YWJcdTA0NDNcdTA0M2IkL2kuZXhlYyhFKT8iXHUwNDQyXHUwNDMwXHUwNDNkIjoiXHUwNDQwXHUwNDMwXHUwNDNkIil9LHBhc3Q6IiVzIFx1MDQzYVx1MDQzMFx1MDQ0Zlx1MDQzYlx1MDQzYlx1MDQzMCIsczoiXHUwNDNmXHUwNGQ3XHUwNDQwLVx1MDQzOFx1MDQzYSBcdTA0YWJcdTA0MzVc''@;'; put 'put ''dTA0M2FcdTA0M2FcdTA0NDNcdTA0M2RcdTA0NDIiLHNzOiIlZCBcdTA0YWJcdTA0MzVcdTA0M2FcdTA0M2FcdTA0NDNcdTA0M2RcdTA0NDIiLG06Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0''@;'; put 'put ''NDNcdTA0NDIiLGg6Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0MzVcdTA0NDVcdTA0MzVcdTA0NDIiLGQ6Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0M2FcdTA0NDNcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0NDNc''@;'; put 'put ''dTA0M2QiLE06Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDUiLE1NOiIlZCBcdTA0NDNcdTA0MzlcdTA0ZDFcdTA0NDUiLHk6Ilx1MDQzZlx1MDRkN1x1MDQ0MCBcdTA0YWJcdTA0NDNcdTA0M2IiLHl5OiIlZCBcdTA0YWJcdTA0NDNcdTA0M2IifSxkYXlPZk1v''@;'; put 'put ''bnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LVx1MDQzY1x1MDRkN1x1MDQ0OC8sb3JkaW5hbDoiJWQtXHUwNDNjXHUwNGQ3XHUwNDQ4Iix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwzMjA5MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5k''@;'; put 'put ''ZWZpbmVMb2NhbGUoImN5Iix7bW9udGhzOiJJb25hd3JfQ2h3ZWZyb3JfTWF3cnRoX0VicmlsbF9NYWlfTWVoZWZpbl9Hb3JmZmVubmFmX0F3c3RfTWVkaV9IeWRyZWZfVGFjaHdlZGRfUmhhZ2Z5ciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSW9uX0Nod2VfTWF3X0Vicl9NYWlfTWVoX0dv''@;'; put 'put ''cl9Bd3NfTWVkX0h5ZF9UYWNoX1JoYWciLnNwbGl0KCJfIiksd2Vla2RheXM6IkR5ZGQgU3VsX0R5ZGQgTGx1bl9EeWRkIE1hd3J0aF9EeWRkIE1lcmNoZXJfRHlkZCBJYXVfRHlkZCBHd2VuZXJfRHlkZCBTYWR3cm4iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VsX0xsdW5fTWF3X01l''@;'; put 'put ''cl9JYXVfR3dlX1NhZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTGxfTWFfTWVfSWFfR3dfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZ''@;'; put 'put ''WSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hlZGRpdyBhbV0gTFQiLG5leHREYXk6IltZZm9yeSBhbV0gTFQiLG5leHRXZWVrOiJkZGRkIFthbV0gTFQiLGxhc3REYXk6IltEZG9lIGFtXSBMVCIs''@;'; put 'put ''bGFzdFdlZWs6ImRkZGQgW2Rpd2V0aGFmIGFtXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibWV3biAlcyIscGFzdDoiJXMgeW4gXHhmNGwiLHM6InljaHlkaWcgZWlsaWFkYXUiLHNzOiIlZCBlaWxpYWQiLG06Im11bnVkIixtbToiJWQgbXVudWQiLGg6ImF3ciIs''@;'; put 'put ''aGg6IiVkIGF3ciIsZDoiZGl3cm5vZCIsZGQ6IiVkIGRpd3Jub2QiLE06Im1pcyIsTU06IiVkIG1pcyIseToiYmx3eWRkeW4iLHl5OiIlZCBmbHluZWRkIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShmZWR8YWlufGFmfGlsfHlkZHxlZHxlZykvLG9yZGluYWw6ZnVuY3Rpb24o''@;'; put 'put ''RSl7dmFyIFU9IiI7cmV0dXJuIEU+MjA/VT00MD09PUV8fDUwPT09RXx8NjA9PT1FfHw4MD09PUV8fDEwMD09PUU/ImZlZCI6ImFpbiI6RT4wJiYoVT1bIiIsImFmIiwiaWwiLCJ5ZGQiLCJ5ZGQiLCJlZCIsImVkIiwiZWQiLCJmZWQiLCJmZWQiLCJmZWQiLCJlZyIsImZlZCIsImVnIiwiZWci''@;'; put 'put ''LCJmZWQiLCJlZyIsImVnIiwiZmVkIiwiZWciLCJmZWQiXVtFXSksRStVfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw3NzM4NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImRhIix7bW9udGhzOiJqYW51YXJf''@;'; put 'put ''ZmVicnVhcl9tYXJ0c19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuX2ZlYl9tYXJfYXByX21hal9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vl''@;'; put 'put ''a2RheXM6InNceGY4bmRhZ19tYW5kYWdfdGlyc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4ZjhyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY4bl9tYW5fdGlyX29uc190b3JfZnJlX2xceGY4ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic1x4ZjhfbWFfdGlfb25f''@;'; put 'put ''dG9fZnJfbFx4ZjgiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgW2QuXSBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0i''@;'; put 'put ''fSxjYWxlbmRhcjp7c2FtZURheToiW2kgZGFnIGtsLl0gTFQiLG5leHREYXk6IltpIG1vcmdlbiBrbC5dIExUIixuZXh0V2VlazoicFx4ZTUgZGRkZCBba2wuXSBMVCIsbGFzdERheToiW2kgZ1x4ZTVyIGtsLl0gTFQiLGxhc3RXZWVrOiJbaV0gZGRkZFtzIGtsLl0gTFQiLHNhbWVFbHNlOiJM''@;'; put 'put ''In0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9tICVzIixwYXN0OiIlcyBzaWRlbiIsczoiZlx4ZTUgc2VrdW5kZXIiLHNzOiIlZCBzZWt1bmRlciIsbToiZXQgbWludXQiLG1tOiIlZCBtaW51dHRlciIsaDoiZW4gdGltZSIsaGg6IiVkIHRpbWVyIixkOiJlbiBkYWciLGRkOiIlZCBkYWdlIixN''@;'; put 'put ''OiJlbiBtXHhlNW5lZCIsTU06IiVkIG1ceGU1bmVkZXIiLHk6ImV0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMjk0NTk6ZnVuY3Rpb24oWGUsSmUs''@;'; put 'put ''TCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihFZSxVLFEsail7dmFyIHJlPXttOlsiZWluZSBNaW51dGUiLCJlaW5lciBNaW51dGUiXSxoOlsiZWluZSBTdHVuZGUiLCJlaW5lciBTdHVuZGUiXSxkOlsiZWluIFRhZyIsImVpbmVtIFRhZyJdLGRkOltFZSsiIFRhZ2Ui''@;'; put 'put ''LEVlKyIgVGFnZW4iXSx3OlsiZWluZSBXb2NoZSIsImVpbmVyIFdvY2hlIl0sTTpbImVpbiBNb25hdCIsImVpbmVtIE1vbmF0Il0sTU06W0VlKyIgTW9uYXRlIixFZSsiIE1vbmF0ZW4iXSx5OlsiZWluIEphaHIiLCJlaW5lbSBKYWhyIl0seXk6W0VlKyIgSmFocmUiLEVlKyIgSmFocmVuIl19''@;'; put 'put ''O3JldHVybiBVP3JlW1FdWzBdOnJlW1FdWzFdfW1lLmRlZmluZUxvY2FsZSgiZGUtYXQiLHttb250aHM6IkpceGU0bm5lcl9GZWJydWFyX01ceGU0cnpfQXByaWxfTWFpX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXIiLnNwbGl0KCJfIiksbW9u''@;'; put 'put ''dGhzU2hvcnQ6IkpceGU0bi5fRmViLl9NXHhlNHJ6X0Fwci5fTWFpX0p1bmlfSnVsaV9BdWcuX1NlcC5fT2t0Ll9Ob3YuX0Rlei4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiU29ubnRhZ19Nb250YWdfRGllbnN0YWdfTWl0dHdvY2hfRG9ubmVyc3RhZ19GcmVp''@;'; put 'put ''dGFnX1NhbXN0YWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU28uX01vLl9EaS5fTWkuX0RvLl9Gci5fU2EuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTb19Nb19EaV9NaV9Eb19Gcl9TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xU''@;'; put 'put ''OiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbaGV1dGUgdW1dIExUIFtVaHJdIixzYW1lRWxzZToi''@;'; put 'put ''TCIsbmV4dERheToiW21vcmdlbiB1bV0gTFQgW1Vocl0iLG5leHRXZWVrOiJkZGRkIFt1bV0gTFQgW1Vocl0iLGxhc3REYXk6IltnZXN0ZXJuIHVtXSBMVCBbVWhyXSIsbGFzdFdlZWs6IltsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0ifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMi''@;'; put 'put ''LHBhc3Q6InZvciAlcyIsczoiZWluIHBhYXIgU2VrdW5kZW4iLHNzOiIlZCBTZWt1bmRlbiIsbTpCLG1tOiIlZCBNaW51dGVuIixoOkIsaGg6IiVkIFN0dW5kZW4iLGQ6QixkZDpCLHc6Qix3dzoiJWQgV29jaGVuIixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTov''@;'; put 'put ''XGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY3MjQzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoRWUsVSxRLGope3ZhciByZT17bTpbImVpbmUgTWludXRlIiwiZWluZXIgTWlu''@;'; put 'put ''dXRlIl0saDpbImVpbmUgU3R1bmRlIiwiZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbRWUrIiBUYWdlIixFZSsiIFRhZ2VuIl0sdzpbImVpbmUgV29jaGUiLCJlaW5lciBXb2NoZSJdLE06WyJlaW4gTW9uYXQiLCJlaW5lbSBNb25hdCJdLE1NOltFZSsiIE1v''@;'; put 'put ''bmF0ZSIsRWUrIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltFZSsiIEphaHJlIixFZSsiIEphaHJlbiJdfTtyZXR1cm4gVT9yZVtRXVswXTpyZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUoImRlLWNoIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNHJ6X0Fw''@;'; put 'put ''cmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW4uX0ZlYi5fTVx4ZTRyel9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRo''@;'; put 'put ''c1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IlNvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvX01vX0RpX01pX0RvX0ZyX1NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTb19Nb19E''@;'; put 'put ''aV9NaV9Eb19Gcl9TYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQuIE1NTU0gWVlZWSIsTExMOiJELiBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQuIE1N''@;'; put 'put ''TU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbaGV1dGUgdW1dIExUIFtVaHJdIixzYW1lRWxzZToiTCIsbmV4dERheToiW21vcmdlbiB1bV0gTFQgW1Vocl0iLG5leHRXZWVrOiJkZGRkIFt1bV0gTFQgW1Vocl0iLGxhc3REYXk6IltnZXN0ZXJuIHVtXSBMVCBbVWhyXSIsbGFz''@;'; put 'put ''dFdlZWs6IltsZXR6dGVuXSBkZGRkIFt1bV0gTFQgW1Vocl0ifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6InZvciAlcyIsczoiZWluIHBhYXIgU2VrdW5kZW4iLHNzOiIlZCBTZWt1bmRlbiIsbTpCLG1tOiIlZCBNaW51dGVuIixoOkIsaGg6IiVkIFN0dW5kZW4iLGQ6Qixk''@;'; put 'put ''ZDpCLHc6Qix3dzoiJWQgV29jaGVuIixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDU0MzA3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVz''@;'; put 'put ''ZSBzdHJpY3QiO2Z1bmN0aW9uIEIoRWUsVSxRLGope3ZhciByZT17bTpbImVpbmUgTWludXRlIiwiZWluZXIgTWludXRlIl0saDpbImVpbmUgU3R1bmRlIiwiZWluZXIgU3R1bmRlIl0sZDpbImVpbiBUYWciLCJlaW5lbSBUYWciXSxkZDpbRWUrIiBUYWdlIixFZSsiIFRhZ2VuIl0sdzpbImVp''@;'; put 'put ''bmUgV29jaGUiLCJlaW5lciBXb2NoZSJdLE06WyJlaW4gTW9uYXQiLCJlaW5lbSBNb25hdCJdLE1NOltFZSsiIE1vbmF0ZSIsRWUrIiBNb25hdGVuIl0seTpbImVpbiBKYWhyIiwiZWluZW0gSmFociJdLHl5OltFZSsiIEphaHJlIixFZSsiIEphaHJlbiJdfTtyZXR1cm4gVT9yZVtRXVswXTpy''@;'; put 'put ''ZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUoImRlIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNHJ6X0FwcmlsX01haV9KdW5pX0p1bGlfQXVndXN0X1NlcHRlbWJlcl9Pa3RvYmVyX05vdmVtYmVyX0RlemVtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW4uX0ZlYi5fTVx4ZTRy''@;'; put 'put ''el9BcHIuX01haV9KdW5pX0p1bGlfQXVnLl9TZXAuX09rdC5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6IlNvbm50YWdfTW9udGFnX0RpZW5zdGFnX01pdHR3b2NoX0Rvbm5lcnN0YWdfRnJlaXRhZ19TYW1zdGFnIi5zcGxpdCgiXyIpLHdlZWtk''@;'; put 'put ''YXlzU2hvcnQ6IlNvLl9Nby5fRGkuX01pLl9Eby5fRnIuX1NhLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTW9fRGlfTWlfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRE''@;'; put 'put ''Lk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hldXRlIHVtXSBMVCBbVWhyXSIsc2FtZUVsc2U6IkwiLG5leHREYXk6Ilttb3JnZW4gdW1dIExUIFtV''@;'; put 'put ''aHJdIixuZXh0V2VlazoiZGRkZCBbdW1dIExUIFtVaHJdIixsYXN0RGF5OiJbZ2VzdGVybiB1bV0gTFQgW1Vocl0iLGxhc3RXZWVrOiJbbGV0enRlbl0gZGRkZCBbdW1dIExUIFtVaHJdIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiJ2b3IgJXMiLHM6ImVpbiBwYWFyIFNl''@;'; put 'put ''a3VuZGVuIixzczoiJWQgU2VrdW5kZW4iLG06QixtbToiJWQgTWludXRlbiIsaDpCLGhoOiIlZCBTdHVuZGVuIixkOkIsZGQ6Qix3OkIsd3c6IiVkIFdvY2hlbiIsTTpCLE1NOkIseTpCLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVr''@;'; put 'put ''Ontkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzOTY1OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1bIlx1MDc5Nlx1MDdhY1x1MDc4Mlx1MDdhYVx1MDc4N1x1MDdhNlx1MDc4M1x1MDdhOSIsIlx1MDc4YVx1MDdhY1x1MDc4NFx1MDdiMFx1''@;'; put 'put ''MDc4M1x1MDdhYVx1MDc4N1x1MDdhNlx1MDc4M1x1MDdhOSIsIlx1MDc4OVx1MDdhN1x1MDc4M1x1MDdhOFx1MDc5N1x1MDdhYSIsIlx1MDc4N1x1MDdhZFx1MDc5NVx1MDdiMFx1MDc4M1x1MDdhOVx1MDc4ZFx1MDdhYSIsIlx1MDc4OVx1MDdhZCIsIlx1MDc5Nlx1MDdhYlx1MDc4Mlx1MDdi''@;'; put 'put ''MCIsIlx1MDc5Nlx1MDdhYVx1MDc4ZFx1MDdhNlx1MDc4N1x1MDdhOCIsIlx1MDc4N1x1MDdhZlx1MDc4ZVx1MDdhNlx1MDc5MFx1MDdiMFx1MDc5M1x1MDdhYSIsIlx1MDc5MFx1MDdhY1x1MDc5NVx1MDdiMFx1MDc5M1x1MDdhY1x1MDc4OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdh''@;'; put 'put ''YSIsIlx1MDc4N1x1MDdhZVx1MDc4Nlx1MDdiMFx1MDc5M1x1MDdhZlx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSIsIlx1MDc4Mlx1MDdhZVx1MDc4OFx1MDdhY1x1MDc4OVx1MDdiMFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSIsIlx1MDc5MVx1MDdhOFx1MDc5MFx1MDdhY1x1MDc4OVx1MDdi''@;'; put 'put ''MFx1MDc4NFx1MDdhNlx1MDc4M1x1MDdhYSJdLEU9WyJcdTA3ODdcdTA3YTdcdTA3OGJcdTA3YThcdTA3ODdcdTA3YjBcdTA3OGNcdTA3YTYiLCJcdTA3ODBcdTA3YWZcdTA3ODlcdTA3YTYiLCJcdTA3ODdcdTA3YTZcdTA3ODJcdTA3YjBcdTA3OGVcdTA3YTdcdTA3ODNcdTA3YTYiLCJcdTA3''@;'; put 'put ''ODRcdTA3YWFcdTA3OGJcdTA3YTYiLCJcdTA3ODRcdTA3YWFcdTA3ODNcdTA3YTdcdTA3OTBcdTA3YjBcdTA3OGFcdTA3YTZcdTA3OGNcdTA3YTgiLCJcdTA3ODBcdTA3YWFcdTA3ODZcdTA3YWFcdTA3ODNcdTA3YWEiLCJcdTA3ODBcdTA3YWVcdTA3ODJcdTA3YThcdTA3ODBcdTA3YThcdTA3''@;'; put 'put ''ODNcdTA3YWEiXTttZS5kZWZpbmVMb2NhbGUoImR2Iix7bW9udGhzOkIsbW9udGhzU2hvcnQ6Qix3ZWVrZGF5czpFLHdlZWtkYXlzU2hvcnQ6RSx3ZWVrZGF5c01pbjoiXHUwNzg3XHUwN2E3XHUwNzhiXHUwN2E4X1x1MDc4MFx1MDdhZlx1MDc4OVx1MDdhNl9cdTA3ODdcdTA3YTZcdTA3ODJc''@;'; put 'put ''dTA3YjBfXHUwNzg0XHUwN2FhXHUwNzhiXHUwN2E2X1x1MDc4NFx1MDdhYVx1MDc4M1x1MDdhN19cdTA3ODBcdTA3YWFcdTA3ODZcdTA3YWFfXHUwNzgwXHUwN2FlXHUwNzgyXHUwN2E4Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkQv''@;'; put 'put ''TS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTA3ODlcdTA3ODZ8XHUwNzg5XHUwNzhhLyxpc1BNOmZ1bmN0aW9uKFUpe3JldHVybiJcdTA3ODlcdTA3OGEiPT09VX0s''@;'; put 'put ''bWVyaWRpZW06ZnVuY3Rpb24oVSxRLGope3JldHVybiBVPDEyPyJcdTA3ODlcdTA3ODYiOiJcdTA3ODlcdTA3OGEifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDc4OVx1MDdhOFx1MDc4N1x1MDdhNlx1MDc4Ylx1MDdhYV0gTFQiLG5leHREYXk6IltcdTA3ODlcdTA3YTdcdTA3OGJcdTA3YTZc''@;'; put 'put ''dTA3ODlcdTA3YTddIExUIixuZXh0V2VlazoiZGRkZCBMVCIsbGFzdERheToiW1x1MDc4N1x1MDdhOFx1MDc4N1x1MDdiMFx1MDc5NFx1MDdhY10gTFQiLGxhc3RXZWVrOiJbXHUwNzhhXHUwN2E3XHUwNzg3XHUwN2E4XHUwNzhjXHUwN2FhXHUwNzg4XHUwN2E4XSBkZGRkIExUIixzYW1lRWxz''@;'; put 'put ''ZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA3OGNcdTA3YWNcdTA3ODNcdTA3YWRcdTA3OGVcdTA3YTZcdTA3ODdcdTA3YTggJXMiLHBhc3Q6Ilx1MDc4Nlx1MDdhYVx1MDc4M1x1MDdhOFx1MDc4Mlx1MDdiMCAlcyIsczoiXHUwNzkwXHUwN2E4XHUwNzg2XHUwN2FhXHUwNzgyXHUw''@;'; put 'put ''N2IwXHUwNzhjXHUwN2FhXHUwNzg2XHUwN2FlXHUwNzg1XHUwN2FjXHUwNzg3XHUwN2IwIixzczoiZCUgXHUwNzkwXHUwN2E4XHUwNzg2XHUwN2FhXHUwNzgyXHUwN2IwXHUwNzhjXHUwN2FhIixtOiJcdTA3ODlcdTA3YThcdTA3ODJcdTA3YThcdTA3OTNcdTA3YWNcdTA3ODdcdTA3YjAiLG1t''@;'; put 'put ''OiJcdTA3ODlcdTA3YThcdTA3ODJcdTA3YThcdTA3OTNcdTA3YWEgJWQiLGg6Ilx1MDc4ZVx1MDdhNlx1MDc5MVx1MDdhOFx1MDc4N1x1MDdhOFx1MDc4M1x1MDdhY1x1MDc4N1x1MDdiMCIsaGg6Ilx1MDc4ZVx1MDdhNlx1MDc5MVx1MDdhOFx1MDc4N1x1MDdhOFx1MDc4M1x1MDdhYSAlZCIs''@;'; put 'put ''ZDoiXHUwNzhiXHUwN2FhXHUwNzg4XHUwN2E2XHUwNzgwXHUwN2FjXHUwNzg3XHUwN2IwIixkZDoiXHUwNzhiXHUwN2FhXHUwNzg4XHUwN2E2XHUwNzkwXHUwN2IwICVkIixNOiJcdTA3ODlcdTA3YTZcdTA3ODBcdTA3YWNcdTA3ODdcdTA3YjAiLE1NOiJcdTA3ODlcdTA3YTZcdTA3OTBcdTA3''@;'; put 'put ''YjAgJWQiLHk6Ilx1MDc4N1x1MDdhNlx1MDc4MFx1MDdhNlx1MDc4M1x1MDdhY1x1MDc4N1x1MDdiMCIseXk6Ilx1MDc4N1x1MDdhNlx1MDc4MFx1MDdhNlx1MDc4M1x1MDdhYSAlZCJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rm''@;'; put 'put ''b3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjcsZG95OjEyfX0pfShMKDE1NDM5KSl9LDM0NjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJlbCIse21vbnRoc05v''@;'; put 'put ''bWluYXRpdmVFbDoiXHUwMzk5XHUwM2IxXHUwM2JkXHUwM2JmXHUwM2M1XHUwM2FjXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDNhNlx1MDNiNVx1MDNiMlx1MDNjMVx1MDNiZlx1MDNjNVx1MDNhY1x1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOWNcdTAzYWNcdTAzYzFcdTAzYzRc''@;'; put 'put ''dTAzYjlcdTAzYmZcdTAzYzJfXHUwMzkxXHUwM2MwXHUwM2MxXHUwM2FmXHUwM2JiXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5Y1x1MDNhY1x1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTlcdTAzYmZcdTAzY2RcdTAzYmRcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzk5XHUwM2JmXHUwM2NkXHUwM2Ji''@;'; put 'put ''XHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5MVx1MDNjZFx1MDNiM1x1MDNiZlx1MDNjNVx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjMl9cdTAzYTNcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYWRcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzJfXHUwMzlmXHUwM2JhXHUwM2M0XHUwM2Nl''@;'; put 'put ''XHUwM2IyXHUwM2MxXHUwM2I5XHUwM2JmXHUwM2MyX1x1MDM5ZFx1MDNiZlx1MDNhZFx1MDNiY1x1MDNiMlx1MDNjMVx1MDNiOVx1MDNiZlx1MDNjMl9cdTAzOTRcdTAzYjVcdTAzYmFcdTAzYWRcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYjlcdTAzYmZcdTAzYzIiLnNwbGl0KCJfIiksbW9udGhz''@;'; put 'put ''R2VuaXRpdmVFbDoiXHUwMzk5XHUwM2IxXHUwM2JkXHUwM2JmXHUwM2M1XHUwM2IxXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDNhNlx1MDNiNVx1MDNiMlx1MDNjMVx1MDNiZlx1MDNjNVx1MDNiMVx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOWNcdTAzYjFcdTAzYzFcdTAzYzRc''@;'; put 'put ''dTAzYWZcdTAzYmZcdTAzYzVfXHUwMzkxXHUwM2MwXHUwM2MxXHUwM2I5XHUwM2JiXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5Y1x1MDNiMVx1MDM5MFx1MDNiZlx1MDNjNV9cdTAzOTlcdTAzYmZcdTAzYzVcdTAzYmRcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzk5XHUwM2JmXHUwM2M1XHUwM2Ji''@;'; put 'put ''XHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5MVx1MDNjNVx1MDNiM1x1MDNiZlx1MDNjZFx1MDNjM1x1MDNjNFx1MDNiZlx1MDNjNV9cdTAzYTNcdTAzYjVcdTAzYzBcdTAzYzRcdTAzYjVcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzVfXHUwMzlmXHUwM2JhXHUwM2M0XHUwM2M5''@;'; put 'put ''XHUwM2IyXHUwM2MxXHUwM2FmXHUwM2JmXHUwM2M1X1x1MDM5ZFx1MDNiZlx1MDNiNVx1MDNiY1x1MDNiMlx1MDNjMVx1MDNhZlx1MDNiZlx1MDNjNV9cdTAzOTRcdTAzYjVcdTAzYmFcdTAzYjVcdTAzYmNcdTAzYjJcdTAzYzFcdTAzYWZcdTAzYmZcdTAzYzUiLnNwbGl0KCJfIiksbW9udGhz''@;'; put 'put ''OmZ1bmN0aW9uKEVlLFUpe3JldHVybiBFZT8ic3RyaW5nIj09dHlwZW9mIFUmJi9ELy50ZXN0KFUuc3Vic3RyaW5nKDAsVS5pbmRleE9mKCJNTU1NIikpKT90aGlzLl9tb250aHNHZW5pdGl2ZUVsW0VlLm1vbnRoKCldOnRoaXMuX21vbnRoc05vbWluYXRpdmVFbFtFZS5tb250aCgpXTp0aGlz''@;'; put 'put ''Ll9tb250aHNOb21pbmF0aXZlRWx9LG1vbnRoc1Nob3J0OiJcdTAzOTlcdTAzYjFcdTAzYmRfXHUwM2E2XHUwM2I1XHUwM2IyX1x1MDM5Y1x1MDNiMVx1MDNjMV9cdTAzOTFcdTAzYzBcdTAzYzFfXHUwMzljXHUwM2IxXHUwM2NhX1x1MDM5OVx1MDNiZlx1MDNjNVx1MDNiZF9cdTAzOTlcdTAz''@;'; put 'put ''YmZcdTAzYzVcdTAzYmJfXHUwMzkxXHUwM2M1XHUwM2IzX1x1MDNhM1x1MDNiNVx1MDNjMF9cdTAzOWZcdTAzYmFcdTAzYzRfXHUwMzlkXHUwM2JmXHUwM2I1X1x1MDM5NFx1MDNiNVx1MDNiYSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwMzlhXHUwM2M1XHUwM2MxXHUwM2I5XHUwM2IxXHUw''@;'; put 'put ''M2JhXHUwM2FlX1x1MDM5NFx1MDNiNVx1MDNjNVx1MDNjNFx1MDNhZFx1MDNjMVx1MDNiMV9cdTAzYTRcdTAzYzFcdTAzYWZcdTAzYzRcdTAzYjdfXHUwM2E0XHUwM2I1XHUwM2M0XHUwM2FjXHUwM2MxXHUwM2M0XHUwM2I3X1x1MDNhMFx1MDNhZFx1MDNiY1x1MDNjMFx1MDNjNFx1MDNiN19c''@;'; put 'put ''dTAzYTBcdTAzYjFcdTAzYzFcdTAzYjFcdTAzYzNcdTAzYmFcdTAzYjVcdTAzYzVcdTAzYWVfXHUwM2EzXHUwM2FjXHUwM2IyXHUwM2IyXHUwM2IxXHUwM2M0XHUwM2JmIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDM5YVx1MDNjNVx1MDNjMV9cdTAzOTRcdTAzYjVcdTAzYzVfXHUw''@;'; put 'put ''M2E0XHUwM2MxXHUwM2I5X1x1MDNhNFx1MDNiNVx1MDNjNF9cdTAzYTBcdTAzYjVcdTAzYmNfXHUwM2EwXHUwM2IxXHUwM2MxX1x1MDNhM1x1MDNiMVx1MDNiMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwMzlhXHUwM2M1X1x1MDM5NFx1MDNiNV9cdTAzYTRcdTAzYzFfXHUwM2E0XHUw''@;'; put 'put ''M2I1X1x1MDNhMFx1MDNiNV9cdTAzYTBcdTAzYjFfXHUwM2EzXHUwM2IxIi5zcGxpdCgiXyIpLG1lcmlkaWVtOmZ1bmN0aW9uKEVlLFUsUSl7cmV0dXJuIEVlPjExP1E/Ilx1MDNiY1x1MDNiYyI6Ilx1MDM5Y1x1MDM5YyI6UT8iXHUwM2MwXHUwM2JjIjoiXHUwM2EwXHUwMzljIn0saXNQTTpm''@;'; put 'put ''dW5jdGlvbihFZSl7cmV0dXJuIlx1MDNiYyI9PT0oRWUrIiIpLnRvTG93ZXJDYXNlKClbMF19LG1lcmlkaWVtUGFyc2U6L1tcdTAzYTBcdTAzOWNdXC4/XHUwMzljP1wuPy9pLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQg''@;'; put 'put ''TU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXJFbDp7c2FtZURheToiW1x1MDNhM1x1MDNhZVx1MDNiY1x1MDNiNVx1MDNjMVx1MDNiMSB7fV0gTFQiLG5leHREYXk6IltcdTAzOTFcdTAzY2RcdTAzYzFc''@;'; put 'put ''dTAzYjlcdTAzYmYge31dIExUIixuZXh0V2VlazoiZGRkZCBbe31dIExUIixsYXN0RGF5OiJbXHUwM2E3XHUwM2I4XHUwM2I1XHUwM2MyIHt9XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gNj09PXRoaXMuZGF5KCk/IltcdTAzYzRcdTAzYmYgXHUwM2MwXHUwM2MxXHUwM2JmXHUw''@;'; put 'put ''M2I3XHUwM2IzXHUwM2JmXHUwM2NkXHUwM2JjXHUwM2I1XHUwM2JkXHUwM2JmXSBkZGRkIFt7fV0gTFQiOiJbXHUwM2M0XHUwM2I3XHUwM2JkIFx1MDNjMFx1MDNjMVx1MDNiZlx1MDNiN1x1MDNiM1x1MDNiZlx1MDNjZFx1MDNiY1x1MDNiNVx1MDNiZFx1MDNiN10gZGRkZCBbe31dIExUIn0s''@;'; put 'put ''c2FtZUVsc2U6IkwifSxjYWxlbmRhcjpmdW5jdGlvbihFZSxVKXt2YXIgUT10aGlzLl9jYWxlbmRhckVsW0VlXSxqPVUmJlUuaG91cnMoKTtyZXR1cm4gZnVuY3Rpb24gQihFZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBGdW5jdGlvbiYmRWUgaW5zdGFuY2VvZiBGdW5jdGlvbnx8Iltv''@;'; put 'put ''YmplY3QgRnVuY3Rpb25dIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChFZSl9KFEpJiYoUT1RLmFwcGx5KFUpKSxRLnJlcGxhY2UoInt9IixqJTEyPT0xPyJcdTAzYzNcdTAzYzRcdTAzYjciOiJcdTAzYzNcdTAzYzRcdTAzYjlcdTAzYzIiKX0scmVsYXRpdmVUaW1lOntmdXR1''@;'; put 'put ''cmU6Ilx1MDNjM1x1MDNiNSAlcyIscGFzdDoiJXMgXHUwM2MwXHUwM2MxXHUwM2I5XHUwM2JkIixzOiJcdTAzYmJcdTAzYWZcdTAzYjNcdTAzYjEgXHUwM2I0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixzczoiJWQg''@;'; put 'put ''XHUwM2I0XHUwM2I1XHUwM2M1XHUwM2M0XHUwM2I1XHUwM2MxXHUwM2NjXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2IxIixtOiJcdTAzYWRcdTAzYmRcdTAzYjEgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2NjIixtbToiJWQgXHUwM2JiXHUwM2I1XHUwM2MwXHUwM2M0XHUwM2Fj''@;'; put 'put ''IixoOiJcdTAzYmNcdTAzYWZcdTAzYjEgXHUwM2NlXHUwM2MxXHUwM2IxIixoaDoiJWQgXHUwM2NlXHUwM2MxXHUwM2I1XHUwM2MyIixkOiJcdTAzYmNcdTAzYWZcdTAzYjEgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2IxIixkZDoiJWQgXHUwM2JjXHUwM2FkXHUwM2MxXHUwM2I1XHUwM2MyIixN''@;'; put 'put ''OiJcdTAzYWRcdTAzYmRcdTAzYjFcdTAzYzIgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2IxXHUwM2MyIixNTToiJWQgXHUwM2JjXHUwM2FlXHUwM2JkXHUwM2I1XHUwM2MyIix5OiJcdTAzYWRcdTAzYmRcdTAzYjFcdTAzYzIgXHUwM2M3XHUwM2MxXHUwM2NjXHUwM2JkXHUwM2JmXHUwM2MyIix5''@;'; put 'put ''eToiJWQgXHUwM2M3XHUwM2MxXHUwM2NjXHUwM2JkXHUwM2I5XHUwM2IxIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx1MDNiNy8sb3JkaW5hbDoiJWRcdTAzYjciLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDk0MzY5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5j''@;'; put 'put ''dGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4tYXUiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6''@;'; put 'put ''Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1''@;'; put 'put ''ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDptbSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZ''@;'; put 'put ''WVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUb2RheSBhdF0gTFQiLG5leHREYXk6IltUb21vcnJvdyBhdF0gTFQiLG5leHRXZWVrOiJkZGRkIFthdF0gTFQiLGxhc3REYXk6IltZZXN0ZXJkYXkgYXRdIExUIixsYXN0V2Vl''@;'; put 'put ''azoiW0xhc3RdIGRkZGQgW2F0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaW4gJXMiLHBhc3Q6IiVzIGFnbyIsczoiYSBmZXcgc2Vjb25kcyIsc3M6IiVkIHNlY29uZHMiLG06ImEgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoiYW4gaG91ciIsaGg6IiVkIGhv''@;'; put 'put ''dXJzIixkOiJhIGRheSIsZGQ6IiVkIGRheXMiLE06ImEgbW9udGgiLE1NOiIlZCBtb250aHMiLHk6ImEgeWVhciIseXk6IiVkIHllYXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShzdHxuZHxyZHx0aCkvLG9yZGluYWw6ZnVuY3Rpb24oRSl7dmFyIEVlPUUlMTA7cmV0dXJu''@;'; put 'put ''IEUrKDE9PX5+KEUlMTAwLzEwKT8idGgiOjE9PT1FZT8ic3QiOjI9PT1FZT8ibmQiOjM9PT1FZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MCxkb3k6NH19KX0oTCgxNTQzOSkpfSw2MDUzMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2Nh''@;'; put 'put ''bGUoImVuLWNhIix7bW9udGhzOiJKYW51YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1Nl''@;'; put 'put ''cF9PY3RfTm92X0RlYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtk''@;'; put 'put ''YXlzTWluOiJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IllZWVktTU0tREQiLExMOiJNTU1NIEQsIFlZWVkiLExMTDoiTU1NTSBELCBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgTU1NTSBELCBZ''@;'; put 'put ''WVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNl''@;'; put 'put ''OiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJh''@;'; put 'put ''IG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBFZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09RWU/''@;'; put 'put ''InN0IjoyPT09RWU/Im5kIjozPT09RWU/InJkIjoidGgiKX19KX0oTCgxNTQzOSkpfSw5OTk4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4tZ2IiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5''@;'; put 'put ''X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1''@;'; put 'put ''ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9y''@;'; put 'put ''bWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1Rv''@;'; put 'put ''bW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBz''@;'; put 'put ''ZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRo''@;'; put 'put ''T3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgRWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PUVlPyJzdCI6Mj09PUVlPyJuZCI6Mz09PUVlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShM''@;'; put 'put ''KDE1NDM5KSl9LDEzMzkxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4taWUiLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92''@;'; put 'put ''ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRh''@;'; put 'put ''eSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01N''@;'; put 'put ''L1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixs''@;'; put 'put ''YXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06''@;'; put 'put ''IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRp''@;'; put 'put ''bmFsOmZ1bmN0aW9uKEUpe3ZhciBFZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09RWU/InN0IjoyPT09RWU/Im5kIjozPT09RWU/InJkIjoidGgiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNzU0MTQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0''@;'; put 'put ''aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJlbi1pbCIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9KdWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoi''@;'; put 'put ''SmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVl''@;'; put 'put ''X1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZ''@;'; put 'put ''IEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltM''@;'; put 'put ''YXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIs''@;'; put 'put ''ZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJhIHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBFZT1FJTEwO3JldHVybiBFKygx''@;'; put 'put ''PT1+fihFJTEwMC8xMCk/InRoIjoxPT09RWU/InN0IjoyPT09RWU/Im5kIjozPT09RWU/InJkIjoidGgiKX19KX0oTCgxNTQzOSkpfSwxOTYxNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImVuLWluIix7bW9udGhzOiJKYW51''@;'; put 'put ''YXJ5X0ZlYnJ1YXJ5X01hcmNoX0FwcmlsX01heV9KdW5lX0p1bHlfQXVndXN0X1NlcHRlbWJlcl9PY3RvYmVyX05vdmVtYmVyX0RlY2VtYmVyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYyIuc3BsaXQoIl8i''@;'; put 'put ''KSx3ZWVrZGF5czoiU3VuZGF5X01vbmRheV9UdWVzZGF5X1dlZG5lc2RheV9UaHVyc2RheV9GcmlkYXlfU2F0dXJkYXkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJTdV9Nb19UdV9XZV9UaF9G''@;'; put 'put ''cl9TYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1l''@;'; put 'put ''RGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJbWWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6''@;'; put 'put ''ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29uZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIixNOiJhIG1vbnRoIixNTToiJWQgbW9udGhzIix5OiJh''@;'; put 'put ''IHllYXIiLHl5OiIlZCB5ZWFycyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBFZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09RWU/InN0IjoyPT09RWU/Im5kIjozPT09RWU/InJk''@;'; put 'put ''IjoidGgiKX0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sMjEyNDg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJlbi1ueiIse21vbnRoczoiSmFudWFyeV9GZWJydWFyeV9NYXJjaF9BcHJpbF9NYXlfSnVuZV9K''@;'; put 'put ''dWx5X0F1Z3VzdF9TZXB0ZW1iZXJfT2N0b2Jlcl9Ob3ZlbWJlcl9EZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0ZlYl9NYXJfQXByX01heV9KdW5fSnVsX0F1Z19TZXBfT2N0X05vdl9EZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6IlN1bmRheV9Nb25kYXlfVHVlc2RheV9X''@;'; put 'put ''ZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlN1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU3VfTW9fVHVfV2VfVGhfRnJfU2EiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xU''@;'; put 'put ''OiJoOm1tIEEiLExUUzoiaDptbTpzcyBBIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgaDptbSBBIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBoOm1tIEEifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9y''@;'; put 'put ''cm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFzdERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNv''@;'; put 'put ''bmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3Jk''@;'; put 'put ''aW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgRWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PUVlPyJzdCI6Mj09PUVlPyJuZCI6Mz09PUVlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1''@;'; put 'put ''NDM5KSl9LDEzNzY3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW4tc2ciLHttb250aHM6IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1i''@;'; put 'put ''ZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJTdW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIu''@;'; put 'put ''c3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJTdW5fTW9uX1R1ZV9XZWRfVGh1X0ZyaV9TYXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01vX1R1X1dlX1RoX0ZyX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZ''@;'; put 'put ''WVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1RvZGF5IGF0XSBMVCIsbmV4dERheToiW1RvbW9ycm93IGF0XSBMVCIsbmV4dFdlZWs6ImRkZGQgW2F0XSBMVCIsbGFz''@;'; put 'put ''dERheToiW1llc3RlcmRheSBhdF0gTFQiLGxhc3RXZWVrOiJbTGFzdF0gZGRkZCBbYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpbiAlcyIscGFzdDoiJXMgYWdvIixzOiJhIGZldyBzZWNvbmRzIixzczoiJWQgc2Vjb25kcyIsbToiYSBtaW51dGUiLG1tOiIl''@;'; put 'put ''ZCBtaW51dGVzIixoOiJhbiBob3VyIixoaDoiJWQgaG91cnMiLGQ6ImEgZGF5IixkZDoiJWQgZGF5cyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToiJWQgeWVhcnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0fG5kfHJkfHRoKS8sb3JkaW5h''@;'; put 'put ''bDpmdW5jdGlvbihFKXt2YXIgRWU9RSUxMDtyZXR1cm4gRSsoMT09fn4oRSUxMDAvMTApPyJ0aCI6MT09PUVlPyJzdCI6Mj09PUVlPyJuZCI6Mz09PUVlPyJyZCI6InRoIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDg0NTMwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlv''@;'; put 'put ''bihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZW8iLHttb250aHM6ImphbnVhcm9fZmVicnVhcm9fbWFydG9fYXByaWxvX21ham9fanVuaW9fanVsaW9fYVx1MDE2ZGd1c3RvX3NlcHRlbWJyb19va3RvYnJvX25vdmVtYnJvX2RlY2VtYnJvIi5zcGxpdCgiXyIpLG1vbnRoc1No''@;'; put 'put ''b3J0OiJqYW5fZmViX21hcnRfYXByX21hal9qdW5fanVsX2FcdTAxNmRnX3NlcHRfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6ImRpbWFuXHUwMTA5b19sdW5kb19tYXJkb19tZXJrcmVkb19cdTAxMzVhXHUwMTZkZG9fdmVuZHJlZG9fc2FiYXRvIi5zcGxpdCgiXyIpLHdlZWtk''@;'; put 'put ''YXlzU2hvcnQ6ImRpbV9sdW5fbWFyZF9tZXJrX1x1MDEzNWFcdTAxNmRfdmVuX3NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGlfbHVfbWFfbWVfXHUwMTM1YV92ZV9zYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1N''@;'; put 'put ''LUREIixMTDoiW2xhXSBEWy1hbiBkZV0gTU1NTSwgWVlZWSIsTExMOiJbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixMTExMOiJkZGRkW25dLCBbbGFdIERbLWFuIGRlXSBNTU1NLCBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIFtsYV0gRFstYW4gZGVdIE1NTSwgWVlZWSBISDptbSJ9''@;'; put 'put ''LG1lcmlkaWVtUGFyc2U6L1thcF1cLnRcLm0vaSxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJwIj09PUUuY2hhckF0KDApLnRvTG93ZXJDYXNlKCl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEU+MTE/VT8icC50Lm0uIjoiUC5ULk0uIjpVPyJhLnQubS4iOiJBLlQuTS4ifSxj''@;'; put 'put ''YWxlbmRhcjp7c2FtZURheToiW0hvZGlhXHUwMTZkIGplXSBMVCIsbmV4dERheToiW01vcmdhXHUwMTZkIGplXSBMVCIsbmV4dFdlZWs6ImRkZGRbbiBqZV0gTFQiLGxhc3REYXk6IltIaWVyYVx1MDE2ZCBqZV0gTFQiLGxhc3RXZWVrOiJbcGFzaW50YW5dIGRkZGRbbiBqZV0gTFQiLHNhbWVF''@;'; put 'put ''bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InBvc3QgJXMiLHBhc3Q6ImFudGFcdTAxNmQgJXMiLHM6ImtlbGthaiBzZWt1bmRvaiIsc3M6IiVkIHNla3VuZG9qIixtOiJ1bnUgbWludXRvIixtbToiJWQgbWludXRvaiIsaDoidW51IGhvcm8iLGhoOiIlZCBob3JvaiIsZDoidW51IHRh''@;'; put 'put ''Z28iLGRkOiIlZCB0YWdvaiIsTToidW51IG1vbmF0byIsTU06IiVkIG1vbmF0b2oiLHk6InVudSBqYXJvIix5eToiJWQgamFyb2oifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9YS8sb3JkaW5hbDoiJWRhIix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwxODk0NDpm''@;'; put 'put ''dW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0''@;'; put 'put ''X25vdl9kaWMiLnNwbGl0KCJfIiksRWU9Wy9eZW5lL2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xq''@;'; put 'put ''dWxpb3xhZ29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcy1kbyIse21v''@;'; put 'put ''bnRoczoiZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihqLHJlKXtyZXR1cm4gaj8vLU1NTS0vLnRlc3QocmUpP0Vbai5t''@;'; put 'put ''b250aCgpXTpCW2oubW9udGgoKV06Qn0sbW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJy''@;'; put 'put ''ZSkvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOkVlLGxvbmdNb250aHNQYXJzZTpFZSxzaG9ydE1vbnRoc1Bh''@;'; put 'put ''cnNlOkVlLHdlZWtkYXlzOiJkb21pbmdvX2x1bmVzX21hcnRlc19taVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNN''@;'; put 'put ''aW46ImRvX2x1X21hX21pX2p1X3ZpX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0g''@;'; put 'put ''W2RlXSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4iW21hXHhmMWFuYSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F5ZXIgYSBsYSIr''@;'; put 'put ''KDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbiAlcyIscGFz''@;'; put 'put ''dDoiaGFjZSAlcyIsczoidW5vcyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5hIix3dzoiJWQgc2VtYW5hcyIs''@;'; put 'put ''TToidW4gbWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwyOTExNjpmdW5jdGlvbihYZSxKZSxM''@;'; put 'put ''KXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0''@;'; put 'put ''KCJfIiksRWU9Wy9eZW5lL2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2Vw''@;'; put 'put ''dGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcy1teCIse21vbnRoczoiZW5lcm9fZmVi''@;'; put 'put ''cmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihqLHJlKXtyZXR1cm4gaj8vLU1NTS0vLnRlc3QocmUpP0Vbai5tb250aCgpXTpCW2oubW9u''@;'; put 'put ''dGgoKV06Qn0sbW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxtb250aHNTaG9y''@;'; put 'put ''dFN0cmljdFJlZ2V4Oi9eKGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOkVlLGxvbmdNb250aHNQYXJzZTpFZSxzaG9ydE1vbnRoc1BhcnNlOkVlLHdlZWtkYXlz''@;'; put 'put ''OiJkb21pbmdvX2x1bmVzX21hcnRlc19taVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21p''@;'; put 'put ''X2p1X3ZpX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSIsTExM''@;'; put 'put ''TDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG95IGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFhbmEgYSBsYSIrKDEh''@;'; put 'put ''PT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltheWVyIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoi''@;'; put 'put ''IikrIl0gTFQifSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW4gJXMiLHBhc3Q6ImhhY2UgJXMiLHM6InVub3Mgc2Vn''@;'; put 'put ''dW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIsbToidW4gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsdzoidW5hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVuIG1lcyIsTU06IiVkIG1lc2Vz''@;'; put 'put ''Iix5OiJ1biBhXHhmMW8iLHl5OiIlZCBhXHhmMW9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjAsZG95OjR9LGludmFsaWREYXRlOiJGZWNoYSBpbnZceGUxbGlkYSJ9KX0oTCgxNTQzOSkpfSw4MzYwOTpmdW5jdGlv''@;'; put 'put ''bihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9k''@;'; put 'put ''aWMiLnNwbGl0KCJfIiksRWU9Wy9eZW5lL2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xh''@;'; put 'put ''Z29zdG98c2VwdGllbWJyZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcy11cyIse21vbnRoczoi''@;'; put 'put ''ZW5lcm9fZmVicmVyb19tYXJ6b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihqLHJlKXtyZXR1cm4gaj8vLU1NTS0vLnRlc3QocmUpP0Vbai5tb250aCgp''@;'; put 'put ''XTpCW2oubW9udGgoKV06Qn0sbW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxt''@;'; put 'put ''b250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOkVlLGxvbmdNb250aHNQYXJzZTpFZSxzaG9ydE1vbnRoc1BhcnNlOkVl''@;'; put 'put ''LHdlZWtkYXlzOiJkb21pbmdvX2x1bmVzX21hcnRlc19taVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRv''@;'; put 'put ''X2x1X21hX21pX2p1X3ZpX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6Ik1NL0REL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZ''@;'; put 'put ''WVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIGg6bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltob3kgYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21h''@;'; put 'put ''XHhmMWFuYSBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sbmV4dFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iZGRkZCBbYSBsYSIrKDEhPT10aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW2F5ZXIgYSBsYSIrKDEhPT10''@;'; put 'put ''aGlzLmhvdXJzKCk/InMiOiIiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIltlbF0gZGRkZCBbcGFzYWRvIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbiAlcyIscGFzdDoiaGFj''@;'; put 'put ''ZSAlcyIsczoidW5vcyBzZWd1bmRvcyIsc3M6IiVkIHNlZ3VuZG9zIixtOiJ1biBtaW51dG8iLG1tOiIlZCBtaW51dG9zIixoOiJ1bmEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIix3OiJ1bmEgc2VtYW5hIix3dzoiJWQgc2VtYW5hcyIsTToidW4g''@;'; put 'put ''bWVzIixNTToiJWQgbWVzZXMiLHk6InVuIGFceGYxbyIseXk6IiVkIGFceGYxb3MifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw4Njg2NjpmdW5jdGlvbihYZSxKZSxMKXshZnVu''@;'; put 'put ''Y3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iZW5lLl9mZWIuX21hci5fYWJyLl9tYXkuX2p1bi5fanVsLl9hZ28uX3NlcC5fb2N0Ll9ub3YuX2RpYy4iLnNwbGl0KCJfIiksRT0iZW5lX2ZlYl9tYXJfYWJyX21heV9qdW5fanVsX2Fnb19zZXBfb2N0X25vdl9kaWMiLnNwbGl0KCJfIiks''@;'; put 'put ''RWU9Wy9eZW5lL2ksL15mZWIvaSwvXm1hci9pLC9eYWJyL2ksL15tYXkvaSwvXmp1bi9pLC9eanVsL2ksL15hZ28vaSwvXnNlcC9pLC9eb2N0L2ksL15ub3YvaSwvXmRpYy9pXSxVPS9eKGVuZXJvfGZlYnJlcm98bWFyem98YWJyaWx8bWF5b3xqdW5pb3xqdWxpb3xhZ29zdG98c2VwdGllbWJy''@;'; put 'put ''ZXxvY3R1YnJlfG5vdmllbWJyZXxkaWNpZW1icmV8ZW5lXC4/fGZlYlwuP3xtYXJcLj98YWJyXC4/fG1heVwuP3xqdW5cLj98anVsXC4/fGFnb1wuP3xzZXBcLj98b2N0XC4/fG5vdlwuP3xkaWNcLj8pL2k7bWUuZGVmaW5lTG9jYWxlKCJlcyIse21vbnRoczoiZW5lcm9fZmVicmVyb19tYXJ6''@;'; put 'put ''b19hYnJpbF9tYXlvX2p1bmlvX2p1bGlvX2Fnb3N0b19zZXB0aWVtYnJlX29jdHVicmVfbm92aWVtYnJlX2RpY2llbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihqLHJlKXtyZXR1cm4gaj8vLU1NTS0vLnRlc3QocmUpP0Vbai5tb250aCgpXTpCW2oubW9udGgoKV06Qn0s''@;'; put 'put ''bW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oZW5lcm98ZmVicmVyb3xtYXJ6b3xhYnJpbHxtYXlvfGp1bmlvfGp1bGlvfGFnb3N0b3xzZXB0aWVtYnJlfG9jdHVicmV8bm92aWVtYnJlfGRpY2llbWJyZSkvaSxtb250aHNTaG9ydFN0cmljdFJl''@;'; put 'put ''Z2V4Oi9eKGVuZVwuP3xmZWJcLj98bWFyXC4/fGFiclwuP3xtYXlcLj98anVuXC4/fGp1bFwuP3xhZ29cLj98c2VwXC4/fG9jdFwuP3xub3ZcLj98ZGljXC4/KS9pLG1vbnRoc1BhcnNlOkVlLGxvbmdNb250aHNQYXJzZTpFZSxzaG9ydE1vbnRoc1BhcnNlOkVlLHdlZWtkYXlzOiJkb21pbmdv''@;'; put 'put ''X2x1bmVzX21hcnRlc19taVx4ZTlyY29sZXNfanVldmVzX3ZpZXJuZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21pXHhlOS5fanVlLl92aWUuX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21pX2p1X3ZpX3Nc''@;'; put 'put ''eGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSIsTExMTDoiZGRkZCwg''@;'; put 'put ''RCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG95IGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxuZXh0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIlttYVx4ZjFhbmEgYSBsYSIrKDEhPT10aGlzLmhv''@;'; put 'put ''dXJzKCk/InMiOiIiKSsiXSBMVCJ9LG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW2EgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQifSxsYXN0RGF5OmZ1bmN0aW9uKCl7cmV0dXJuIltheWVyIGEgbGEiKygxIT09dGhpcy5ob3VycygpPyJzIjoiIikrIl0gTFQi''@;'; put 'put ''fSxsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiJbZWxdIGRkZGQgW3Bhc2FkbyBhIGxhIisoMSE9PXRoaXMuaG91cnMoKT8icyI6IiIpKyJdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW4gJXMiLHBhc3Q6ImhhY2UgJXMiLHM6InVub3Mgc2VndW5kb3MiLHNz''@;'; put 'put ''OiIlZCBzZWd1bmRvcyIsbToidW4gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW5hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW4gZFx4ZWRhIixkZDoiJWQgZFx4ZWRhcyIsdzoidW5hIHNlbWFuYSIsd3c6IiVkIHNlbWFuYXMiLE06InVuIG1lcyIsTU06IiVkIG1lc2VzIix5OiJ1biBh''@;'; put 'put ''XHhmMW8iLHl5OiIlZCBhXHhmMW9zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9LGludmFsaWREYXRlOiJGZWNoYSBpbnZceGUxbGlkYSJ9KX0oTCgxNTQzOSkpfSw5NjcyNTpmdW5jdGlvbihYZSxKZSxM''@;'; put 'put ''KXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKEVlLFUsUSxqKXt2YXIgcmU9e3M6WyJtXHhmNW5lIHNla3VuZGkiLCJtXHhmNW5pIHNla3VuZCIsInBhYXIgc2VrdW5kaXQiXSxzczpbRWUrInNla3VuZGkiLEVlKyJzZWt1bmRpdCJdLG06WyJceGZjaGUgbWludXRpIiwi''@;'; put 'put ''XHhmY2tzIG1pbnV0Il0sbW06W0VlKyIgbWludXRpIixFZSsiIG1pbnV0aXQiXSxoOlsiXHhmY2hlIHR1bm5pIiwidHVuZCBhZWdhIiwiXHhmY2tzIHR1bmQiXSxoaDpbRWUrIiB0dW5uaSIsRWUrIiB0dW5kaSJdLGQ6WyJceGZjaGUgcFx4ZTRldmEiLCJceGZja3MgcFx4ZTRldiJdLE06WyJr''@;'; put 'put ''dXUgYWphIiwia3V1IGFlZ2EiLCJceGZja3Mga3V1Il0sTU06W0VlKyIga3V1IixFZSsiIGt1dWQiXSx5OlsiXHhmY2hlIGFhc3RhIiwiYWFzdGEiLCJceGZja3MgYWFzdGEiXSx5eTpbRWUrIiBhYXN0YSIsRWUrIiBhYXN0YXQiXX07cmV0dXJuIFU/cmVbUV1bMl0/cmVbUV1bMl06cmVbUV1b''@;'; put 'put ''MV06aj9yZVtRXVswXTpyZVtRXVsxXX1tZS5kZWZpbmVMb2NhbGUoImV0Iix7bW9udGhzOiJqYWFudWFyX3ZlZWJydWFyX21ceGU0cnRzX2FwcmlsbF9tYWlfanV1bmlfanV1bGlfYXVndXN0X3NlcHRlbWJlcl9va3Rvb2Jlcl9ub3ZlbWJlcl9kZXRzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhz''@;'; put 'put ''U2hvcnQ6ImphYW5fdmVlYnJfbVx4ZTRydHNfYXByX21haV9qdXVuaV9qdXVsaV9hdWdfc2VwdF9va3Rfbm92X2RldHMiLnNwbGl0KCJfIiksd2Vla2RheXM6InBceGZjaGFwXHhlNGV2X2VzbWFzcFx4ZTRldl90ZWlzaXBceGU0ZXZfa29sbWFwXHhlNGV2X25lbGphcFx4ZTRldl9yZWVkZV9s''@;'; put 'put ''YXVwXHhlNGV2Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlBfRV9UX0tfTl9SX0wiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlBfRV9UX0tfTl9SX0wiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBN''@;'; put 'put ''TU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltUXHhlNG5hLF0gTFQiLG5leHREYXk6IltIb21tZSxdIExUIixuZXh0V2VlazoiW0pceGU0cmdtaW5lXSBkZGRkIExUIixsYXN0RGF5OiJb''@;'; put 'put ''RWlsZSxdIExUIixsYXN0V2VlazoiW0VlbG1pbmVdIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHBceGU0cmFzdCIscGFzdDoiJXMgdGFnYXNpIixzOkIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOkIsZGQ6IiVkIHBceGU0ZXZhIixNOkIsTU06Qix5''@;'; put 'put ''OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY3OTMxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZXUiLHtt''@;'; put 'put ''b250aHM6InVydGFycmlsYV9vdHNhaWxhX21hcnR4b2FfYXBpcmlsYV9tYWlhdHphX2VrYWluYV91enRhaWxhX2FidXp0dWFfaXJhaWxhX3VycmlhX2F6YXJvYV9hYmVuZHVhIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ1cnQuX290cy5fbWFyLl9hcGkuX21haS5fZWthLl91enQuX2FidS5f''@;'; put 'put ''aXJhLl91cnIuX2F6YS5fYWJlLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJpZ2FuZGVhX2FzdGVsZWhlbmFfYXN0ZWFydGVhX2FzdGVhemtlbmFfb3N0ZWd1bmFfb3N0aXJhbGFfbGFydW5iYXRhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImlnLl9hbC5f''@;'; put 'put ''YXIuX2F6Ll9vZy5fb2wuX2xyLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiaWdfYWxfYXJfYXpfb2dfb2xfbHIiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZWVktTU0tREQiLExMOiJZWVlZ''@;'; put 'put ''W2tvXSBNTU1NW3Jlbl0gRFthXSIsTExMOiJZWVlZW2tvXSBNTU1NW3Jlbl0gRFthXSBISDptbSIsTExMTDoiZGRkZCwgWVlZWVtrb10gTU1NTVtyZW5dIERbYV0gSEg6bW0iLGw6IllZWVktTS1EIixsbDoiWVlZWVtrb10gTU1NIERbYV0iLGxsbDoiWVlZWVtrb10gTU1NIERbYV0gSEg6bW0i''@;'; put 'put ''LGxsbGw6ImRkZCwgWVlZWVtrb10gTU1NIERbYV0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2dhdXJdIExUW2V0YW5dIixuZXh0RGF5OiJbYmloYXJdIExUW2V0YW5dIixuZXh0V2VlazoiZGRkZCBMVFtldGFuXSIsbGFzdERheToiW2F0em9dIExUW2V0YW5dIixsYXN0V2VlazoiW2F1''@;'; put 'put ''cnJla29dIGRkZGQgTFRbZXRhbl0iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIGJhcnJ1IixwYXN0OiJkdWVsYSAlcyIsczoic2VndW5kbyBiYXR6dWsiLHNzOiIlZCBzZWd1bmRvIixtOiJtaW51dHUgYmF0IixtbToiJWQgbWludXR1IixoOiJvcmR1IGJhdCIsaGg6''@;'; put 'put ''IiVkIG9yZHUiLGQ6ImVndW4gYmF0IixkZDoiJWQgZWd1biIsTToiaGlsYWJldGUgYmF0IixNTToiJWQgaGlsYWJldGUiLHk6InVydGUgYmF0Iix5eToiJWQgdXJ0ZSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319''@;'; put 'put ''KX0oTCgxNTQzOSkpfSw1NjQxNzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwNmYxIiwyOiJcdTA2ZjIiLDM6Ilx1MDZmMyIsNDoiXHUwNmY0Iiw1OiJcdTA2ZjUiLDY6Ilx1MDZmNiIsNzoiXHUwNmY3Iiw4OiJcdTA2ZjgiLDk6Ilx1''@;'; put 'put ''MDZmOSIsMDoiXHUwNmYwIn0sRT17Ilx1MDZmMSI6IjEiLCJcdTA2ZjIiOiIyIiwiXHUwNmYzIjoiMyIsIlx1MDZmNCI6IjQiLCJcdTA2ZjUiOiI1IiwiXHUwNmY2IjoiNiIsIlx1MDZmNyI6IjciLCJcdTA2ZjgiOiI4IiwiXHUwNmY5IjoiOSIsIlx1MDZmMCI6IjAifTttZS5kZWZpbmVMb2Nh''@;'; put 'put ''bGUoImZhIix7bW9udGhzOiJcdTA2OThcdTA2MjdcdTA2NDZcdTA2NDhcdTA2Y2NcdTA2NDdfXHUwNjQxXHUwNjQ4XHUwNjMxXHUwNmNjXHUwNjQ3X1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYzM19cdTA2MjJcdTA2NDhcdTA2MzFcdTA2Y2NcdTA2NDRfXHUwNjQ1XHUwNjQ3X1x1MDY5OFx1MDY0''@;'; put 'put ''OFx1MDYyNlx1MDY0Nl9cdTA2OThcdTA2NDhcdTA2MjZcdTA2Y2NcdTA2NDdfXHUwNjI3XHUwNjQ4XHUwNjJhX1x1MDYzM1x1MDY3ZVx1MDYyYVx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MjdcdTA2YTlcdTA2MmFcdTA2MjhcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjI3XHUwNjQ1XHUw''@;'; put 'put ''NjI4XHUwNjMxX1x1MDYyZlx1MDYzM1x1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjk4XHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNmNjXHUwNjQ3X1x1MDY0MVx1MDY0OFx1MDYzMVx1MDZjY1x1MDY0N19cdTA2NDVcdTA2MjdcdTA2MzFcdTA2MzNf''@;'; put 'put ''XHUwNjIyXHUwNjQ4XHUwNjMxXHUwNmNjXHUwNjQ0X1x1MDY0NVx1MDY0N19cdTA2OThcdTA2NDhcdTA2MjZcdTA2NDZfXHUwNjk4XHUwNjQ4XHUwNjI2XHUwNmNjXHUwNjQ3X1x1MDYyN1x1MDY0OFx1MDYyYV9cdTA2MzNcdTA2N2VcdTA2MmFcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzFfXHUw''@;'; put 'put ''NjI3XHUwNmE5XHUwNjJhXHUwNjI4XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDYyN1x1MDY0NVx1MDYyOFx1MDYzMV9cdTA2MmZcdTA2MzNcdTA2MjdcdTA2NDVcdTA2MjhcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDZjY1x1MDZhOVx1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0''@;'; put 'put ''N19cdTA2MmZcdTA2NDhcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjMzXHUwNjQ3XHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDY4Nlx1MDY0N1x1MDYyN1x1MDYzMVx1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2N2VcdTA2NDZcdTA2MmNcdTIwMGNcdTA2MzRcdTA2''@;'; put 'put ''NDZcdTA2MjhcdTA2NDdfXHUwNjJjXHUwNjQ1XHUwNjM5XHUwNjQ3X1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0NyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2Y2NcdTA2YTlcdTIwMGNcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjJmXHUwNjQ4XHUwNjM0XHUwNjQ2XHUwNjI4''@;'; put 'put ''XHUwNjQ3X1x1MDYzM1x1MDY0N1x1MjAwY1x1MDYzNFx1MDY0Nlx1MDYyOFx1MDY0N19cdTA2ODZcdTA2NDdcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDdfXHUwNjdlXHUwNjQ2XHUwNjJjXHUyMDBjXHUwNjM0XHUwNjQ2XHUwNjI4XHUwNjQ3X1x1MDYyY1x1MDY0NVx1MDYz''@;'; put 'put ''OVx1MDY0N19cdTA2MzRcdTA2NDZcdTA2MjhcdTA2NDciLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDZjY19cdTA2MmZfXHUwNjMzX1x1MDY4Nl9cdTA2N2VfXHUwNjJjX1x1MDYzNCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDpt''@;'; put 'put ''bSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDY0Mlx1MDYyOFx1MDY0NCBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3''@;'; put 'put ''XHUwNjMxfFx1MDYyOFx1MDYzOVx1MDYyZiBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxLyxpc1BNOmZ1bmN0aW9uKFUpe3JldHVybi9cdTA2MjhcdTA2MzlcdTA2MmYgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMS8udGVzdChVKX0sbWVyaWRpZW06ZnVuY3Rpb24oVSxR''@;'; put 'put ''LGope3JldHVybiBVPDEyPyJcdTA2NDJcdTA2MjhcdTA2NDQgXHUwNjI3XHUwNjMyIFx1MDYzOFx1MDY0N1x1MDYzMSI6Ilx1MDYyOFx1MDYzOVx1MDYyZiBcdTA2MjdcdTA2MzIgXHUwNjM4XHUwNjQ3XHUwNjMxIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2NDVcdTA2MzFcdTA2''@;'; put 'put ''NDhcdTA2MzIgXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsbmV4dERheToiW1x1MDY0MVx1MDYzMVx1MDYyZlx1MDYyNyBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFdIExUIixuZXh0V2VlazoiZGRkZCBbXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsbGFzdERheToiW1x1MDYy''@;'; put 'put ''Zlx1MDZjY1x1MDYzMVx1MDY0OFx1MDYzMiBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmFdIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjdlXHUwNmNjXHUwNjM0XSBbXHUwNjMzXHUwNjI3XHUwNjM5XHUwNjJhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjJm''@;'; put 'put ''XHUwNjMxICVzIixwYXN0OiIlcyBcdTA2N2VcdTA2Y2NcdTA2MzQiLHM6Ilx1MDY4Nlx1MDY0Nlx1MDYyZiBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2Y2NcdTA2NDciLHNzOiIlZCBcdTA2MmJcdTA2MjdcdTA2NDZcdTA2Y2NcdTA2NDciLG06Ilx1MDZjY1x1MDZhOSBcdTA2MmZcdTA2NDJcdTA2''@;'; put 'put ''Y2NcdTA2NDJcdTA2NDciLG1tOiIlZCBcdTA2MmZcdTA2NDJcdTA2Y2NcdTA2NDJcdTA2NDciLGg6Ilx1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmEiLGhoOiIlZCBcdTA2MzNcdTA2MjdcdTA2MzlcdTA2MmEiLGQ6Ilx1MDZjY1x1MDZhOSBcdTA2MzFcdTA2NDhcdTA2MzIi''@;'; put 'put ''LGRkOiIlZCBcdTA2MzFcdTA2NDhcdTA2MzIiLE06Ilx1MDZjY1x1MDZhOSBcdTA2NDVcdTA2MjdcdTA2NDciLE1NOiIlZCBcdTA2NDVcdTA2MjdcdTA2NDciLHk6Ilx1MDZjY1x1MDZhOSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2NDQifSxwcmVwYXJzZTpm''@;'; put 'put ''dW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwNmYwLVx1MDZmOV0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pLnJlcGxhY2UoL1x1MDYwYy9nLCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltR''@;'; put 'put ''XX0pLnJlcGxhY2UoLywvZywiXHUwNjBjIil9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTA2NDUvLG9yZGluYWw6IiVkXHUwNjQ1Iix3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEwoMTU0MzkpKX0sMjA5NDQ6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0''@;'; put 'put ''cmljdCI7dmFyIEI9Im5vbGxhIHlrc2kga2Frc2kga29sbWUgbmVsalx4ZTQgdmlpc2kga3V1c2kgc2VpdHNlbVx4ZTRuIGthaGRla3NhbiB5aGRla3NceGU0biIuc3BsaXQoIiAiKSxFPVsibm9sbGEiLCJ5aGRlbiIsImthaGRlbiIsImtvbG1lbiIsIm5lbGpceGU0biIsInZpaWRlbiIsImt1''@;'; put 'put ''dWRlbiIsQls3XSxCWzhdLEJbOV1dO2Z1bmN0aW9uIEVlKGoscmUsYWUsWSl7dmFyIFc9IiI7c3dpdGNoKGFlKXtjYXNlInMiOnJldHVybiBZPyJtdXV0YW1hbiBzZWt1bm5pbiI6Im11dXRhbWEgc2VrdW50aSI7Y2FzZSJzcyI6Vz1ZPyJzZWt1bm5pbiI6InNla3VudGlhIjticmVhaztjYXNl''@;'; put 'put ''Im0iOnJldHVybiBZPyJtaW51dXRpbiI6Im1pbnV1dHRpIjtjYXNlIm1tIjpXPVk/Im1pbnV1dGluIjoibWludXV0dGlhIjticmVhaztjYXNlImgiOnJldHVybiBZPyJ0dW5uaW4iOiJ0dW50aSI7Y2FzZSJoaCI6Vz1ZPyJ0dW5uaW4iOiJ0dW50aWEiO2JyZWFrO2Nhc2UiZCI6cmV0dXJuIFk/''@;'; put 'put ''InBceGU0aXZceGU0biI6InBceGU0aXZceGU0IjtjYXNlImRkIjpXPVk/InBceGU0aXZceGU0biI6InBceGU0aXZceGU0XHhlNCI7YnJlYWs7Y2FzZSJNIjpyZXR1cm4gWT8ia3V1a2F1ZGVuIjoia3V1a2F1c2kiO2Nhc2UiTU0iOlc9WT8ia3V1a2F1ZGVuIjoia3V1a2F1dHRhIjticmVhaztj''@;'; put 'put ''YXNlInkiOnJldHVybiBZPyJ2dW9kZW4iOiJ2dW9zaSI7Y2FzZSJ5eSI6Vz1ZPyJ2dW9kZW4iOiJ2dW90dGEifXJldHVybiBmdW5jdGlvbiBVKGoscmUpe3JldHVybiBqPDEwP3JlP0Vbal06QltqXTpqfShqLFkpKyIgIitXfW1lLmRlZmluZUxvY2FsZSgiZmkiLHttb250aHM6InRhbW1pa3V1''@;'; put 'put ''X2hlbG1pa3V1X21hYWxpc2t1dV9odWh0aWt1dV90b3Vrb2t1dV9rZXNceGU0a3V1X2hlaW5ceGU0a3V1X2Vsb2t1dV9zeXlza3V1X2xva2FrdXVfbWFycmFza3V1X2pvdWx1a3V1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJ0YW1taV9oZWxtaV9tYWFsaXNfaHVodGlfdG91a29fa2VzXHhl''@;'; put 'put ''NF9oZWluXHhlNF9lbG9fc3l5c19sb2thX21hcnJhc19qb3VsdSIuc3BsaXQoIl8iKSx3ZWVrZGF5czoic3VubnVudGFpX21hYW5hbnRhaV90aWlzdGFpX2tlc2tpdmlpa2tvX3RvcnN0YWlfcGVyamFudGFpX2xhdWFudGFpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InN1X21hX3RpX2tl''@;'; put 'put ''X3RvX3BlX2xhIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJzdV9tYV90aV9rZV90b19wZV9sYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRG8gTU1NTVt0YV0gWVlZWSIsTExMOiJEbyBNTU1NW3RhXSBZ''@;'; put 'put ''WVlZLCBba2xvXSBISC5tbSIsTExMTDoiZGRkZCwgRG8gTU1NTVt0YV0gWVlZWSwgW2tsb10gSEgubW0iLGw6IkQuTS5ZWVlZIixsbDoiRG8gTU1NIFlZWVkiLGxsbDoiRG8gTU1NIFlZWVksIFtrbG9dIEhILm1tIixsbGxsOiJkZGQsIERvIE1NTSBZWVlZLCBba2xvXSBISC5tbSJ9LGNhbGVu''@;'; put 'put ''ZGFyOntzYW1lRGF5OiJbdFx4ZTRuXHhlNFx4ZTRuXSBba2xvXSBMVCIsbmV4dERheToiW2h1b21lbm5hXSBba2xvXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2tsb10gTFQiLGxhc3REYXk6IltlaWxlbl0gW2tsb10gTFQiLGxhc3RXZWVrOiJbdmlpbWVdIGRkZGRbbmFdIFtrbG9dIExUIixzYW1l''@;'; put 'put ''RWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBwXHhlNFx4ZTRzdFx4ZTQiLHBhc3Q6IiVzIHNpdHRlbiIsczpFZSxzczpFZSxtOkVlLG1tOkVlLGg6RWUsaGg6RWUsZDpFZSxkZDpFZSxNOkVlLE1NOkVlLHk6RWUseXk6RWV9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEs''@;'; put 'put ''Mn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw2MTc2NjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImZpbCIse21vbnRoczoiRW5lcm9fUGVicmVyb19NYXJzb19BYnJpbF9NYXlv''@;'; put 'put ''X0h1bnlvX0h1bHlvX0Fnb3N0b19TZXR5ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTGluZ2dvX0x1bmVz''@;'; put 'put ''X01hcnRlc19NaXllcmt1bGVzX0h1d2ViZXNfQml5ZXJuZXNfU2FiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ikxpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTGlfTHVfTWFfTWlfSHVfQmlfU2FiIi5zcGxpdCgiXyIpLGxvbmdEYXRl''@;'; put 'put ''Rm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6Ik1NL0QvWVlZWSIsTEw6Ik1NTU0gRCwgWVlZWSIsTExMOiJNTU1NIEQsIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gREQsIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiTFQgW25nYXlvbmcgYXJhd10iLG5l''@;'; put 'put ''eHREYXk6IltCdWthcyBuZ10gTFQiLG5leHRXZWVrOiJMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCIsbGFzdERheToiTFQgW2thaGFwb25dIixsYXN0V2VlazoiTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToic2EgbG9vYiBuZyAl''@;'; put 'put ''cyIscGFzdDoiJXMgYW5nIG5ha2FsaXBhcyIsczoiaWxhbmcgc2VndW5kbyIsc3M6IiVkIHNlZ3VuZG8iLG06ImlzYW5nIG1pbnV0byIsbW06IiVkIG1pbnV0byIsaDoiaXNhbmcgb3JhcyIsaGg6IiVkIG9yYXMiLGQ6ImlzYW5nIGFyYXciLGRkOiIlZCBhcmF3IixNOiJpc2FuZyBidXdhbiIs''@;'; put 'put ''TU06IiVkIGJ1d2FuIix5OiJpc2FuZyB0YW9uIix5eToiJWQgdGFvbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEV9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDk1ODY3OmZ1bmN0aW9uKFhlLEplLEwpeyFm''@;'; put 'put ''dW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZm8iLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnNfYXByXHhlZGxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6''@;'; put 'put ''Imphbl9mZWJfbWFyX2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdW5udWRhZ3VyX21ceGUxbmFkYWd1cl90XHhmZHNkYWd1cl9taWt1ZGFndXJfaFx4ZjNzZGFndXJfZnJceGVkZ2dqYWRhZ3VyX2xleWdhcmRhZ3VyIi5zcGxpdCgi''@;'; put 'put ''XyIpLHdlZWtkYXlzU2hvcnQ6InN1bl9tXHhlMW5fdFx4ZmRzX21pa19oXHhmM3NfZnJceGVkX2xleSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic3VfbVx4ZTFfdFx4ZmRfbWlfaFx4ZjNfZnJfbGUiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpz''@;'; put 'put ''cyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQuIE1NTU0sIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x4Y2QgZGFnIGtsLl0gTFQiLG5leHREYXk6IltceGNkIG1vcmdpbiBrbC5dIExUIixuZXh0''@;'; put 'put ''V2VlazoiZGRkZCBba2wuXSBMVCIsbGFzdERheToiW1x4Y2QgZ2pceGUxciBrbC5dIExUIixsYXN0V2VlazoiW3NceGVkXHhmMHN0dV0gZGRkZCBba2xdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ1bSAlcyIscGFzdDoiJXMgc1x4ZWRceGYwYW5pIixzOiJmXHhl''@;'; put 'put ''MSBzZWt1bmQiLHNzOiIlZCBzZWt1bmRpciIsbToiZWluIG1pbnV0dHVyIixtbToiJWQgbWludXR0aXIiLGg6ImVpbiB0XHhlZG1pIixoaDoiJWQgdFx4ZWRtYXIiLGQ6ImVpbiBkYWd1ciIsZGQ6IiVkIGRhZ2FyIixNOiJlaW4gbVx4ZTFuYVx4ZjB1ciIsTU06IiVkIG1ceGUxbmFceGYwaXIi''@;'; put 'put ''LHk6ImVpdHQgXHhlMXIiLHl5OiIlZCBceGUxciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNjg0ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijtt''@;'; put 'put ''ZS5kZWZpbmVMb2NhbGUoImZyLWNhIix7bW9udGhzOiJqYW52aWVyX2ZceGU5dnJpZXJfbWFyc19hdnJpbF9tYWlfanVpbl9qdWlsbGV0X2FvXHhmYnRfc2VwdGVtYnJlX29jdG9icmVfbm92ZW1icmVfZFx4ZTljZW1icmUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ImphbnYuX2ZceGU5dnIu''@;'; put 'put ''X21hcnNfYXZyLl9tYWlfanVpbl9qdWlsLl9hb1x4ZmJ0X3NlcHQuX29jdC5fbm92Ll9kXHhlOWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6ImRpbWFuY2hlX2x1bmRpX21hcmRpX21lcmNyZWRpX2pldWRpX3ZlbmRyZWRpX3NhbWVkaSIuc3BsaXQoIl8iKSx3''@;'; put 'put ''ZWVrZGF5c1Nob3J0OiJkaW0uX2x1bi5fbWFyLl9tZXIuX2pldS5fdmVuLl9zYW0uIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkaV9sdV9tYV9tZV9qZV92ZV9zYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDpt''@;'; put 'put ''bTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltBdWpvdXJkXHUyMDE5aHVpIFx4ZTBdIExUIixuZXh0RGF5OiJbRGVtYWluIFx4ZTBdIExU''@;'; put 'put ''IixuZXh0V2VlazoiZGRkZCBbXHhlMF0gTFQiLGxhc3REYXk6IltIaWVyIFx4ZTBdIExUIixsYXN0V2VlazoiZGRkZCBbZGVybmllciBceGUwXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFucyAlcyIscGFzdDoiaWwgeSBhICVzIixzOiJxdWVscXVlcyBzZWNv''@;'; put 'put ''bmRlcyIsc3M6IiVkIHNlY29uZGVzIixtOiJ1bmUgbWludXRlIixtbToiJWQgbWludXRlcyIsaDoidW5lIGhldXJlIixoaDoiJWQgaGV1cmVzIixkOiJ1biBqb3VyIixkZDoiJWQgam91cnMiLE06InVuIG1vaXMiLE1NOiIlZCBtb2lzIix5OiJ1biBhbiIseXk6IiVkIGFucyJ9LGRheU9mTW9u''@;'; put 'put ''dGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZXJ8ZSkvLG9yZGluYWw6ZnVuY3Rpb24oRSxFZSl7c3dpdGNoKEVlKXtkZWZhdWx0OmNhc2UiTSI6Y2FzZSJRIjpjYXNlIkQiOmNhc2UiREREIjpjYXNlImQiOnJldHVybiBFKygxPT09RT8iZXIiOiJlIik7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBF''@;'; put 'put ''KygxPT09RT8icmUiOiJlIil9fX0pfShMKDE1NDM5KSl9LDc3NzczOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiZnItY2giLHttb250aHM6ImphbnZpZXJfZlx4ZTl2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRf''@;'; put 'put ''YW9ceGZidF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kXHhlOWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFudi5fZlx4ZTl2ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2FvXHhmYnRfc2VwdC5fb2N0Ll9ub3YuX2RceGU5Yy4iLnNwbGl0KCJfIiksbW9udGhzUGFy''@;'; put 'put ''c2VFeGFjdDohMCx3ZWVrZGF5czoiZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRpbS5fbHVuLl9tYXIuX21lci5famV1Ll92ZW4uX3NhbS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRpX2x1''@;'; put 'put ''X21hX21lX2plX3ZlX3NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1N''@;'; put 'put ''IFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0F1am91cmRcdTIwMTlodWkgXHhlMF0gTFQiLG5leHREYXk6IltEZW1haW4gXHhlMF0gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwXSBMVCIsbGFzdERheToiW0hpZXIgXHhlMF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtkZXJuaWVyIFx4''@;'; put 'put ''ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYW5zICVzIixwYXN0OiJpbCB5IGEgJXMiLHM6InF1ZWxxdWVzIHNlY29uZGVzIixzczoiJWQgc2Vjb25kZXMiLG06InVuZSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJ1bmUgaGV1cmUiLGhoOiIlZCBoZXVy''@;'; put 'put ''ZXMiLGQ6InVuIGpvdXIiLGRkOiIlZCBqb3VycyIsTToidW4gbW9pcyIsTU06IiVkIG1vaXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShlcnxlKS8sb3JkaW5hbDpmdW5jdGlvbihFLEVlKXtzd2l0Y2goRWUpe2RlZmF1bHQ6Y2FzZSJN''@;'; put 'put ''IjpjYXNlIlEiOmNhc2UiRCI6Y2FzZSJEREQiOmNhc2UiZCI6cmV0dXJuIEUrKDE9PT1FPyJlciI6ImUiKTtjYXNlInciOmNhc2UiVyI6cmV0dXJuIEUrKDE9PT1FPyJyZSI6ImUiKX19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDE2MzY6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1''@;'; put 'put ''bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEVlPS8oamFudlwuP3xmXHhlOXZyXC4/fG1hcnN8YXZyXC4/fG1haXxqdWlufGp1aWxcLj98YW9ceGZidHxzZXB0XC4/fG9jdFwuP3xub3ZcLj98ZFx4ZTljXC4/fGphbnZpZXJ8Zlx4ZTl2cmllcnxtYXJzfGF2cmlsfG1haXxqdWlufGp1aWxs''@;'; put 'put ''ZXR8YW9ceGZidHxzZXB0ZW1icmV8b2N0b2JyZXxub3ZlbWJyZXxkXHhlOWNlbWJyZSkvaSxVPVsvXmphbnYvaSwvXmZceGU5dnIvaSwvXm1hcnMvaSwvXmF2ci9pLC9ebWFpL2ksL15qdWluL2ksL15qdWlsL2ksL15hb1x4ZmJ0L2ksL15zZXB0L2ksL15vY3QvaSwvXm5vdi9pLC9eZFx4ZTlj''@;'; put 'put ''L2ldO21lLmRlZmluZUxvY2FsZSgiZnIiLHttb250aHM6ImphbnZpZXJfZlx4ZTl2cmllcl9tYXJzX2F2cmlsX21haV9qdWluX2p1aWxsZXRfYW9ceGZidF9zZXB0ZW1icmVfb2N0b2JyZV9ub3ZlbWJyZV9kXHhlOWNlbWJyZSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFudi5fZlx4ZTl2''@;'; put 'put ''ci5fbWFyc19hdnIuX21haV9qdWluX2p1aWwuX2FvXHhmYnRfc2VwdC5fb2N0Ll9ub3YuX2RceGU5Yy4iLnNwbGl0KCJfIiksbW9udGhzUmVnZXg6RWUsbW9udGhzU2hvcnRSZWdleDpFZSxtb250aHNTdHJpY3RSZWdleDovXihqYW52aWVyfGZceGU5dnJpZXJ8bWFyc3xhdnJpbHxtYWl8anVp''@;'; put 'put ''bnxqdWlsbGV0fGFvXHhmYnR8c2VwdGVtYnJlfG9jdG9icmV8bm92ZW1icmV8ZFx4ZTljZW1icmUpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovKGphbnZcLj98Zlx4ZTl2clwuP3xtYXJzfGF2clwuP3xtYWl8anVpbnxqdWlsXC4/fGFvXHhmYnR8c2VwdFwuP3xvY3RcLj98bm92XC4/fGRc''@;'; put 'put ''eGU5Y1wuPykvaSxtb250aHNQYXJzZTpVLGxvbmdNb250aHNQYXJzZTpVLHNob3J0TW9udGhzUGFyc2U6VSx3ZWVrZGF5czoiZGltYW5jaGVfbHVuZGlfbWFyZGlfbWVyY3JlZGlfamV1ZGlfdmVuZHJlZGlfc2FtZWRpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRpbS5fbHVuLl9tYXIu''@;'; put 'put ''X21lci5famV1Ll92ZW4uX3NhbS4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRpX2x1X21hX21lX2plX3ZlX3NhIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBN''@;'; put 'put ''TU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0F1am91cmRcdTIwMTlodWkgXHhlMF0gTFQiLG5leHREYXk6IltEZW1haW4gXHhlMF0gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwXSBMVCIs''@;'; put 'put ''bGFzdERheToiW0hpZXIgXHhlMF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtkZXJuaWVyIFx4ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkYW5zICVzIixwYXN0OiJpbCB5IGEgJXMiLHM6InF1ZWxxdWVzIHNlY29uZGVzIixzczoiJWQgc2Vjb25kZXMiLG06InVu''@;'; put 'put ''ZSBtaW51dGUiLG1tOiIlZCBtaW51dGVzIixoOiJ1bmUgaGV1cmUiLGhoOiIlZCBoZXVyZXMiLGQ6InVuIGpvdXIiLGRkOiIlZCBqb3VycyIsdzoidW5lIHNlbWFpbmUiLHd3OiIlZCBzZW1haW5lcyIsTToidW4gbW9pcyIsTU06IiVkIG1vaXMiLHk6InVuIGFuIix5eToiJWQgYW5zIn0sZGF5''@;'; put 'put ''T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShlcnwpLyxvcmRpbmFsOmZ1bmN0aW9uKGoscmUpe3N3aXRjaChyZSl7Y2FzZSJEIjpyZXR1cm4gaisoMT09PWo/ImVyIjoiIik7ZGVmYXVsdDpjYXNlIk0iOmNhc2UiUSI6Y2FzZSJEREQiOmNhc2UiZCI6cmV0dXJuIGorKDE9PT1qPyJlciI6''@;'; put 'put ''ImUiKTtjYXNlInciOmNhc2UiVyI6cmV0dXJuIGorKDE9PT1qPyJyZSI6ImUiKX19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDE0OTQwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPSJqYW4uX2ZlYi5fbXJ0Ll9hcHIuX21haV9q''@;'; put 'put ''dW4uX2p1bC5fYXVnLl9zZXAuX29rdC5fbm92Ll9kZXMuIi5zcGxpdCgiXyIpLEU9Imphbl9mZWJfbXJ0X2Fwcl9tYWlfanVuX2p1bF9hdWdfc2VwX29rdF9ub3ZfZGVzIi5zcGxpdCgiXyIpO21lLmRlZmluZUxvY2FsZSgiZnkiLHttb250aHM6Imphbm5ld2FyaXNfZmVicmV3YXJpc19tYWFy''@;'; put 'put ''dF9hcHJpbF9tYWFpZV9qdW55X2p1bHlfYXVndXN0dXNfc2VwdGltYmVyX29rdG9iZXJfbm92aW1iZXJfZGVzaW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gVT8vLU1NTS0vLnRlc3QoUSk/RVtVLm1vbnRoKCldOkJbVS5tb250aCgpXTpCfSxtb250''@;'; put 'put ''aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJzbmVpbl9tb2FuZGVpX3RpaXNkZWlfd29hbnNkZWlfdG9uZ2Vyc2RlaV9mcmVlZF9zbmVvbiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzaS5fbW8uX3RpLl93by5fdG8uX2ZyLl9zby4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNpX01v''@;'; put 'put ''X1RpX1dvX1RvX0ZyX1NvIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC1NTS1ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1N''@;'; put 'put ''IFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2hqb2VkIG9tXSBMVCIsbmV4dERheToiW21vYXJuIG9tXSBMVCIsbmV4dFdlZWs6ImRkZGQgW29tXSBMVCIsbGFzdERheToiW2p1c3RlciBvbV0gTFQiLGxhc3RXZWVrOiJbXHhmNGZyXHhmYm5lXSBkZGRkIFtvbV0gTFQiLHNhbWVF''@;'; put 'put ''bHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9lciAlcyIscGFzdDoiJXMgbHluIixzOiJpbiBwZWFyIHNla29uZGVuIixzczoiJWQgc2Vrb25kZW4iLG06ImllbiBtaW5ceGZhdCIsbW06IiVkIG1pbnV0ZW4iLGg6ImllbiBvZXJlIixoaDoiJWQgb2VyZW4iLGQ6ImllbiBkZWkiLGRk''@;'; put 'put ''OiIlZCBkYWdlbiIsTToiaWVuIG1vYW5uZSIsTU06IiVkIG1vYW5uZW4iLHk6ImllbiBqaWVyIix5eToiJWQgamllcnJlbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5jdGlvbihVKXtyZXR1cm4gVSsoMT09PVV8fDg9PT1VfHxVPj0yMD8i''@;'; put 'put ''c3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sOTE0MDI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJnYSIse21vbnRoczpbIkVhblx4ZTFpciIsIkZlYWJocmEiLCJNXHhlMXJ0YSIsIkFpYnJl''@;'; put 'put ''XHhlMW4iLCJCZWFsdGFpbmUiLCJNZWl0aGVhbWgiLCJJXHhmYWlsIiwiTFx4ZmFuYXNhIiwiTWVceGUxbiBGXHhmM21oYWlyIiwiRGVpcmVhZGggRlx4ZjNtaGFpciIsIlNhbWhhaW4iLCJOb2xsYWlnIl0sbW9udGhzU2hvcnQ6WyJFYW4iLCJGZWFiaCIsIk1ceGUxcnQiLCJBaWIiLCJCZWFs''@;'; put 'put ''IiwiTWVpdGgiLCJJXHhmYWlsIiwiTFx4ZmFuIiwiTS5GLiIsIkQuRi4iLCJTYW1oIiwiTm9sbCJdLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6WyJEXHhlOSBEb21obmFpZ2giLCJEXHhlOSBMdWFpbiIsIkRceGU5IE1ceGUxaXJ0IiwiRFx4ZTkgQ1x4ZTlhZGFvaW4iLCJEXHhlOWFy''@;'; put 'put ''ZGFvaW4iLCJEXHhlOSBoQW9pbmUiLCJEXHhlOSBTYXRoYWlybiJdLHdlZWtkYXlzU2hvcnQ6WyJEb21oIiwiTHVhbiIsIk1ceGUxaXJ0IiwiQ1x4ZTlhZCIsIkRceGU5YXIiLCJBb2luZSIsIlNhdGgiXSx3ZWVrZGF5c01pbjpbIkRvIiwiTHUiLCJNXHhlMSIsIkNceGU5IiwiRFx4ZTkiLCJB''@;'; put 'put ''IiwiU2EiXSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJbm5pdSBh''@;'; put 'put ''Z10gTFQiLG5leHREYXk6IltBbVx4ZTFyYWNoIGFnXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2FnXSBMVCIsbGFzdERheToiW0lublx4ZTkgYWddIExUIixsYXN0V2VlazoiZGRkZCBbc2VvIGNhaXRlXSBbYWddIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJpICVzIixw''@;'; put 'put ''YXN0OiIlcyBceGYzIHNoaW4iLHM6ImNceGZhcGxhIHNvaWNpbmQiLHNzOiIlZCBzb2ljaW5kIixtOiJuXHhmM2ltXHhlOWFkIixtbToiJWQgblx4ZjNpbVx4ZTlhZCIsaDoidWFpciBhbiBjaGxvaWciLGhoOiIlZCB1YWlyIGFuIGNobG9pZyIsZDoibFx4ZTEiLGRkOiIlZCBsXHhlMSIsTToi''@;'; put 'put ''bVx4ZWQiLE1NOiIlZCBtXHhlZG9ubmEiLHk6ImJsaWFpbiIseXk6IiVkIGJsaWFpbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZHxuYXxtaCkvLG9yZGluYWw6ZnVuY3Rpb24ocmUpe3JldHVybiByZSsoMT09PXJlPyJkIjpyZSUxMD09Mj8ibmEiOiJtaCIpfSx3ZWVrOntk''@;'; put 'put ''b3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0NjkyNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImdkIix7bW9udGhzOlsiQW0gRmFvaWxsZWFjaCIsIkFuIEdlYXJyYW4iLCJBbSBNXHhlMHJ0IiwiQW4gR2libGVhbiIsIkFu''@;'; put 'put ''IENceGU4aXRlYW4iLCJBbiB0LVx4ZDJnbWhpb3MiLCJBbiB0LUl1Y2hhciIsIkFuIExceGY5bmFzdGFsIiwiQW4gdC1TdWx0YWluIiwiQW4gRFx4ZTBtaGFpciIsIkFuIHQtU2FtaGFpbiIsIkFuIERceGY5YmhsYWNoZCJdLG1vbnRoc1Nob3J0OlsiRmFvaSIsIkdlYXIiLCJNXHhlMHJ0Iiwi''@;'; put 'put ''R2libCIsIkNceGU4aXQiLCJceGQyZ21oIiwiSXVjaCIsIkxceGY5biIsIlN1bHQiLCJEXHhlMG1oIiwiU2FtaCIsIkRceGY5YmgiXSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOlsiRGlkXHhmMm1obmFpY2giLCJEaWx1YWluIiwiRGltXHhlMGlydCIsIkRpY2lhZGFpbiIsIkRpYXJk''@;'; put 'put ''YW9pbiIsIkRpaGFvaW5lIiwiRGlzYXRoYWlybmUiXSx3ZWVrZGF5c1Nob3J0OlsiRGlkIiwiRGlsIiwiRGltIiwiRGljIiwiRGlhIiwiRGloIiwiRGlzIl0sd2Vla2RheXNNaW46WyJEXHhmMiIsIkx1IiwiTVx4ZTAiLCJDaSIsIkFyIiwiSGEiLCJTYSJdLGxvbmdEYXRlRm9ybWF0OntMVDoi''@;'; put 'put ''SEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0FuLWRpdWdoIGFpZ10gTFQiLG5leHREYXk6IltBLW1ceGUw''@;'; put 'put ''aXJlYWNoIGFpZ10gTFQiLG5leHRXZWVrOiJkZGRkIFthaWddIExUIixsYXN0RGF5OiJbQW4tZFx4ZTggYWlnXSBMVCIsbGFzdFdlZWs6ImRkZGQgW3NlbyBjaGFpZGhdIFthaWddIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJhbm4gYW4gJXMiLHBhc3Q6ImJobyBj''@;'; put 'put ''aGlvbm4gJXMiLHM6ImJlYWdhbiBkaW9nYW4iLHNzOiIlZCBkaW9nYW4iLG06Im1pb25haWQiLG1tOiIlZCBtaW9uYWlkZWFuIixoOiJ1YWlyIixoaDoiJWQgdWFpcmVhbiIsZDoibGF0aGEiLGRkOiIlZCBsYXRoYSIsTToibVx4ZWNvcyIsTU06IiVkIG1ceGVjb3NhbiIseToiYmxpYWRobmEi''@;'; put 'put ''LHl5OiIlZCBibGlhZGhuYSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZHxuYXxtaCkvLG9yZGluYWw6ZnVuY3Rpb24ocmUpe3JldHVybiByZSsoMT09PXJlPyJkIjpyZSUxMD09Mj8ibmEiOiJtaCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwxNjM5ODpm''@;'; put 'put ''dW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImdsIix7bW9udGhzOiJ4YW5laXJvX2ZlYnJlaXJvX21hcnpvX2FicmlsX21haW9feHVceGYxb194dWxsb19hZ29zdG9fc2V0ZW1icm9fb3V0dWJyb19ub3ZlbWJyb19kZWNlbWJybyIu''@;'; put 'put ''c3BsaXQoIl8iKSxtb250aHNTaG9ydDoieGFuLl9mZWIuX21hci5fYWJyLl9tYWkuX3h1XHhmMS5feHVsLl9hZ28uX3NldC5fb3V0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZG9taW5nb19sdW5zX21hcnRlc19tXHhlOXJjb3Jlc194b3Zl''@;'; put 'put ''c192ZW5yZXNfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbS5fbHVuLl9tYXIuX21ceGU5ci5feG92Ll92ZW4uX3NceGUxYi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46ImRvX2x1X21hX21ceGU5X3hvX3ZlX3NceGUxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VF''@;'; put 'put ''eGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgW2RlXSBNTU1NIFtkZV0gWVlZWSIsTExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEg6bW0ifSxj''@;'; put 'put ''YWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVybiJbaG94ZSAiKygxIT09dGhpcy5ob3VycygpPyJceGUxcyI6Ilx4ZTEiKSsiXSBMVCJ9LG5leHREYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW21hXHhmMVx4ZTEgIisoMSE9PXRoaXMuaG91cnMoKT8iXHhlMXMiOiJceGUxIikrIl0gTFQi''@;'; put 'put ''fSxuZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFsiKygxIT09dGhpcy5ob3VycygpPyJceGUxcyI6ImEiKSsiXSBMVCJ9LGxhc3REYXk6ZnVuY3Rpb24oKXtyZXR1cm4iW29udGUgIisoMSE9PXRoaXMuaG91cnMoKT8iXHhlMSI6ImEiKSsiXSBMVCJ9LGxhc3RXZWVrOmZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIltvXSBkZGRkIFtwYXNhZG8gIisoMSE9PXRoaXMuaG91cnMoKT8iXHhlMXMiOiJhIikrIl0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOmZ1bmN0aW9uKEUpe3JldHVybiAwPT09RS5pbmRleE9mKCJ1biIpPyJuIitFOiJlbiAiK0V9LHBhc3Q6Imhh''@;'; put 'put ''aSAlcyIsczoidW5zIHNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVuIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6InVuaGEgaG9yYSIsaGg6IiVkIGhvcmFzIixkOiJ1biBkXHhlZGEiLGRkOiIlZCBkXHhlZGFzIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYW5vIix5''@;'; put 'put ''eToiJWQgYW5vcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDcyNDU3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoRWUs''@;'; put 'put ''VSxRLGope3ZhciByZT17czpbIlx1MDkyNVx1MDk0Ylx1MDkyMVx1MDkyZlx1MDkzZSBcdTA5MzhcdTA5NDVcdTA5MTVcdTA5MDJcdTA5MjFcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLCJcdTA5MjVcdTA5NGJcdTA5MjFcdTA5NDcgXHUwOTM4XHUwOTQ1XHUwOTE1XHUwOTAyXHUwOTIxIl0s''@;'; put 'put ''c3M6W0VlKyIgXHUwOTM4XHUwOTQ1XHUwOTE1XHUwOTAyXHUwOTIxXHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixFZSsiIFx1MDkzOFx1MDk0NVx1MDkxNVx1MDkwMlx1MDkyMSJdLG06WyJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTJlXHUwOTNmXHUwOTIzXHUwOTFmXHUwOTNlXHUwOTI4Iiwi''@;'; put 'put ''XHUwOTBmXHUwOTE1IFx1MDkyZVx1MDkzZlx1MDkyOFx1MDk0Mlx1MDkxZiJdLG1tOltFZSsiIFx1MDkyZVx1MDkzZlx1MDkyM1x1MDkxZlx1MDkzZVx1MDkwMlx1MDkyOFx1MDk0MCIsRWUrIiBcdTA5MmVcdTA5M2ZcdTA5MjNcdTA5MWZcdTA5M2VcdTA5MDIiXSxoOlsiXHUwOTBmXHUwOTE1''@;'; put 'put ''XHUwOTNlIFx1MDkzNVx1MDkzMFx1MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MzVcdTA5MzAiXSxoaDpbRWUrIiBcdTA5MzVcdTA5MzBcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLEVlKyIgXHUwOTM1XHUwOTMwXHUwOTNlXHUwOTAyIl0sZDpbIlx1MDkwZlx1MDkxNVx1MDkzZSBc''@;'; put 'put ''dTA5MjZcdTA5M2ZcdTA5MzhcdTA5M2VcdTA5MjgiLCJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTQwXHUwOTM4Il0sZGQ6W0VlKyIgXHUwOTI2XHUwOTNmXHUwOTM4XHUwOTNlXHUwOTAyXHUwOTI4XHUwOTQwIixFZSsiIFx1MDkyNlx1MDk0MFx1MDkzOCJdLE06WyJcdTA5MGZcdTA5MTVcdTA5''@;'; put 'put ''M2UgXHUwOTJlXHUwOTRkXHUwOTM5XHUwOTJmXHUwOTI4XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTI4IiwiXHUwOTBmXHUwOTE1IFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1MDk0YiJdLE1NOltFZSsiIFx1MDkyZVx1MDk0ZFx1MDkzOVx1MDkyZlx1MDkyOFx1MDk0ZFx1MDkyZlx1''@;'; put 'put ''MDkzZVx1MDkyOFx1MDk0MCIsRWUrIiBcdTA5MmVcdTA5NGRcdTA5MzlcdTA5MmZcdTA5MjhcdTA5NDciXSx5OlsiXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzOFx1MDkzZVx1MDkyOCIsIlx1MDkwZlx1MDkxNSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzgiXSx5''@;'; put 'put ''eTpbRWUrIiBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MjhcdTA5NDAiLEVlKyIgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM4XHUwOTNlXHUwOTAyIl19O3JldHVybiBqP3JlW1FdWzBdOnJlW1FdWzFdfW1lLmRlZmluZUxvY2FsZSgiZ29tLWRldmEiLHttb250aHM6''@;'; put 'put ''e3N0YW5kYWxvbmU6Ilx1MDkxY1x1MDkzZVx1MDkyOFx1MDk0N1x1MDkzNVx1MDkzZVx1MDkzMFx1MDk0MF9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDFcdTA5MzVcdTA5M2VcdTA5MzBcdTA5NDBfXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwZlx1MDky''@;'; put 'put ''YVx1MDk0ZFx1MDkzMFx1MDk0MFx1MDkzMl9cdTA5MmVcdTA5NDdfXHUwOTFjXHUwOTQyXHUwOTI4X1x1MDkxY1x1MDk0MVx1MDkzMlx1MDkyZl9cdTA5MTFcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MWZfXHUwOTM4XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwX1x1''@;'; put 'put ''MDkxMVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Ylx1MDkyY1x1MDkzMF9cdTA5MjhcdTA5NGJcdTA5MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwIi5zcGxpdCgiXyIpLGZvcm1hdDoiXHUwOTFj''@;'; put 'put ''XHUwOTNlXHUwOTI4XHUwOTQ3XHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MVx1MDkzNVx1MDkzZVx1MDkzMFx1MDk0MFx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MmVcdTA5M2Vc''@;'; put 'put ''dTA5MzBcdTA5NGRcdTA5MWFcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQwXHUwOTMyXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyZVx1MDk0N1x1MDkyZlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9c''@;'; put 'put ''dTA5MWNcdTA5NDJcdTA5MjhcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTJmXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkxMVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkxZlx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9c''@;'; put 'put ''dTA5MzhcdTA5MmFcdTA5NGRcdTA5MWZcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2VfXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiXHUwOTJjXHUwOTMwXHUwOTNlXHUwOTFhXHUwOTRkXHUwOTJmXHUwOTNlX1x1MDkyOFx1MDk0Ylx1''@;'; put 'put ''MDkzNVx1MDk0ZFx1MDkzOVx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMFx1MDkzZVx1MDkxYVx1MDk0ZFx1MDkyZlx1MDkzZV9cdTA5MjFcdTA5M2ZcdTA5MzhcdTA5NDdcdTA5MDJcdTA5MmNcdTA5MzBcdTA5M2VcdTA5MWFcdTA5NGRcdTA5MmZcdTA5M2UiLnNwbGl0KCJfIiksaXNGb3JtYXQ6''@;'; put 'put ''L01NTU0oXHMpK0Rbb0RdPy99LG1vbnRoc1Nob3J0OiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDcuX1x1MDkyYlx1MDk0N1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0MS5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwZlx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0MC5fXHUwOTJl''@;'; put 'put ''XHUwOTQ3X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzIuX1x1MDkxMVx1MDkxNy5fXHUwOTM4XHUwOTJhXHUwOTRkXHUwOTFmXHUwOTQ3XHUwOTAyLl9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGIuX1x1MDkyOFx1MDk0Ylx1MDkzNVx1MDk0ZFx1MDkzOVx1MDk0''@;'; put 'put ''N1x1MDkwMi5fXHUwOTIxXHUwOTNmXHUwOTM4XHUwOTQ3XHUwOTAyLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTA5MDZcdTA5MmZcdTA5MjRcdTA5M2VcdTA5MzBfXHUwOTM4XHUwOTRiXHUwOTJlXHUwOTNlXHUwOTMwX1x1MDkyZVx1MDkwMlx1MDkxN1x1''@;'; put 'put ''MDkzM1x1MDkzZVx1MDkzMF9cdTA5MmNcdTA5NDFcdTA5MjdcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTNmXHUwOTMwXHUwOTQ3XHUwOTM4XHUwOTRkXHUwOTI0XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMFx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDdc''@;'; put 'put ''dTA5MjhcdTA5MzVcdTA5M2VcdTA5MzAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwOTA2XHUwOTJmXHUwOTI0Ll9cdTA5MzhcdTA5NGJcdTA5MmUuX1x1MDkyZVx1MDkwMlx1MDkxN1x1MDkzMy5fXHUwOTJjXHUwOTQxXHUwOTI3Ll9cdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDdcdTA5''@;'; put 'put ''MzhcdTA5NGRcdTA5MjQuX1x1MDkzOFx1MDk0MVx1MDkxNVx1MDk0ZFx1MDkzMC5fXHUwOTM2XHUwOTQ3XHUwOTI4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTA2X1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkyY1x1MDk0ZFx1MDkzMFx1MDk0N19c''@;'; put 'put ''dTA5MzhcdTA5NDFfXHUwOTM2XHUwOTQ3Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlXHUwOTAyXSIsTFRTOiJBIGg6bW06c3MgW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDky''@;'; put 'put ''NFx1MDkzZVx1MDkwMl0iLEw6IkRELU1NLVlZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBBIGg6bW0gW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0iLExMTEw6ImRkZGQsIE1NTU0gRG8sIFlZWVksIEEgaDptbSBbXHUwOTM1XHUwOTNlXHUwOTFj''@;'; put 'put ''XHUwOTI0XHUwOTNlXHUwOTAyXSIsbGxsbDoiZGRkLCBEIE1NTSBZWVlZLCBBIGg6bW0gW1x1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZVx1MDkwMl0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDkwNlx1MDkyZlx1MDkxY10gTFQiLG5leHREYXk6IltcdTA5MmJcdTA5M2VcdTA5MzJc''@;'; put 'put ''dTA5NGRcdTA5MmZcdTA5M2VcdTA5MDJdIExUIixuZXh0V2VlazoiW1x1MDkyYlx1MDk0MVx1MDkyMVx1MDkzMlx1MDk0Yl0gZGRkZFssXSBMVCIsbGFzdERheToiW1x1MDkxNVx1MDkzZVx1MDkzMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTJiXHUwOTNlXHUwOTFmXHUwOTMyXHUwOTRiXSBkZGRk''@;'; put 'put ''WyxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyIscGFzdDoiJXMgXHUwOTA2XHUwOTI2XHUwOTQwXHUwOTAyIixzOkIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOkIsZGQ6QixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7''@;'; put 'put ''MSwyfShcdTA5MzVcdTA5NDdcdTA5MzApLyxvcmRpbmFsOmZ1bmN0aW9uKEVlLFUpe3JldHVybiJEIj09PVU/RWUrIlx1MDkzNVx1MDk0N1x1MDkzMCI6RWV9LHdlZWs6e2RvdzowLGRveTozfSxtZXJpZGllbVBhcnNlOi9cdTA5MzBcdTA5M2VcdTA5MjRcdTA5NDB8XHUwOTM4XHUwOTE1XHUw''@;'; put 'put ''OTNlXHUwOTMzXHUwOTQwXHUwOTAyfFx1MDkyNlx1MDkyOFx1MDkyYVx1MDkzZVx1MDkzMFx1MDkzZVx1MDkwMnxcdTA5MzhcdTA5M2VcdTA5MDJcdTA5MWNcdTA5NDcvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFZSxVKXtyZXR1cm4gMTI9PT1FZSYmKEVlPTApLCJcdTA5MzBcdTA5M2VcdTA5''@;'; put 'put ''MjRcdTA5NDAiPT09VT9FZTw0P0VlOkVlKzEyOiJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDBcdTA5MDIiPT09VT9FZToiXHUwOTI2XHUwOTI4XHUwOTJhXHUwOTNlXHUwOTMwXHUwOTNlXHUwOTAyIj09PVU/RWU+MTI/RWU6RWUrMTI6Ilx1MDkzOFx1MDkzZVx1MDkwMlx1MDkxY1x1''@;'; put 'put ''MDk0NyI9PT1VP0VlKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oRWUsVSxRKXtyZXR1cm4gRWU8ND8iXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTQwIjpFZTwxMj8iXHUwOTM4XHUwOTE1XHUwOTNlXHUwOTMzXHUwOTQwXHUwOTAyIjpFZTwxNj8iXHUwOTI2XHUwOTI4XHUwOTJhXHUwOTNl''@;'; put 'put ''XHUwOTMwXHUwOTNlXHUwOTAyIjpFZTwyMD8iXHUwOTM4XHUwOTNlXHUwOTAyXHUwOTFjXHUwOTQ3IjoiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTQwIn19KX0oTCgxNTQzOSkpfSw1MjU0NTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKEVl''@;'; put 'put ''LFUsUSxqKXt2YXIgcmU9e3M6WyJ0aG9kZGVhIHNla29uZGFtbmkiLCJ0aG9kZGUgc2Vrb25kIl0sc3M6W0VlKyIgc2Vrb25kYW1uaSIsRWUrIiBzZWtvbmQiXSxtOlsiZWthIG1pbnRhbiIsImVrIG1pbnV0Il0sbW06W0VlKyIgbWludGFtbmkiLEVlKyIgbWludGFtIl0saDpbImVrYSB2b3Jh''@;'; put 'put ''biIsImVrIHZvciJdLGhoOltFZSsiIHZvcmFtbmkiLEVlKyIgdm9yYW0iXSxkOlsiZWthIGRpc2FuIiwiZWsgZGlzIl0sZGQ6W0VlKyIgZGlzYW1uaSIsRWUrIiBkaXMiXSxNOlsiZWthIG1ob2luZWFuIiwiZWsgbWhvaW5vIl0sTU06W0VlKyIgbWhvaW5lYW1uaSIsRWUrIiBtaG9pbmUiXSx5''@;'; put 'put ''OlsiZWthIHZvcnNhbiIsImVrIHZvcm9zIl0seXk6W0VlKyIgdm9yc2FtbmkiLEVlKyIgdm9yc2FtIl19O3JldHVybiBqP3JlW1FdWzBdOnJlW1FdWzFdfW1lLmRlZmluZUxvY2FsZSgiZ29tLWxhdG4iLHttb250aHM6e3N0YW5kYWxvbmU6IkphbmVyX0ZlYnJlcl9NYXJzX0FicmlsX01haV9K''@;'; put 'put ''dW5fSnVsYWlfQWdvc3RfU2V0ZW1icl9PdHVicl9Ob3ZlbWJyX0RlemVtYnIiLnNwbGl0KCJfIiksZm9ybWF0OiJKYW5lcmFjaGVhX0ZlYnJlcmFjaGVhX01hcnNhY2hlYV9BYnJpbGFjaGVhX01haWFjaGVhX0p1bmFjaGVhX0p1bGFpYWNoZWFfQWdvc3RhY2hlYV9TZXRlbWJyYWNoZWFfT3R1''@;'; put 'put ''YnJhY2hlYV9Ob3ZlbWJyYWNoZWFfRGV6ZW1icmFjaGVhIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9NTU1NKFxzKStEW29EXT8vfSxtb250aHNTaG9ydDoiSmFuLl9GZWIuX01hcnNfQWJyLl9NYWlfSnVuX0p1bC5fQWdvLl9TZXQuX090dS5fTm92Ll9EZXouIi5zcGxpdCgiXyIpLG1vbnRoc1Bh''@;'; put 'put ''cnNlRXhhY3Q6ITAsd2Vla2RheXM6IkFpdGFyX1NvbWFyX01vbmdsbGFyX0J1ZGh2YXJfQmlyZXN0YXJfU3VrcmFyX1Nvbid2YXIiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQWl0Ll9Tb20uX01vbi5fQnVkLl9CcmUuX1N1ay5fU29uLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQWlf''@;'; put 'put ''U21fTW9fQnVfQnJfU3VfU24iLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFt2YXp0YV0iLExUUzoiQSBoOm1tOnNzIFt2YXp0YV0iLEw6IkRELU1NLVlZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBBIGg6''@;'; put 'put ''bW0gW3ZhenRhXSIsTExMTDoiZGRkZCwgTU1NTSBEbywgWVlZWSwgQSBoOm1tIFt2YXp0YV0iLGxsbGw6ImRkZCwgRCBNTU0gWVlZWSwgQSBoOm1tIFt2YXp0YV0ifSxjYWxlbmRhcjp7c2FtZURheToiW0Fpel0gTFQiLG5leHREYXk6IltGYWxlYW1dIExUIixuZXh0V2VlazoiW0Z1ZGRsb10g''@;'; put 'put ''ZGRkZFssXSBMVCIsbGFzdERheToiW0thbF0gTFQiLGxhc3RXZWVrOiJbRmF0dGxvXSBkZGRkWyxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyIscGFzdDoiJXMgYWRpbSIsczpCLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDpCLGRkOkIsTTpCLE1NOkIseTpC''@;'; put 'put ''LHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oZXIpLyxvcmRpbmFsOmZ1bmN0aW9uKEVlLFUpe3JldHVybiJEIj09PVU/RWUrImVyIjpFZX0sd2Vlazp7ZG93OjAsZG95OjN9LG1lcmlkaWVtUGFyc2U6L3JhdGl8c29rYWxsaW18ZG9ucGFyYW18c2FuamUvLG1lcmlkaWVt''@;'; put 'put ''SG91cjpmdW5jdGlvbihFZSxVKXtyZXR1cm4gMTI9PT1FZSYmKEVlPTApLCJyYXRpIj09PVU/RWU8ND9FZTpFZSsxMjoic29rYWxsaW0iPT09VT9FZToiZG9ucGFyYW0iPT09VT9FZT4xMj9FZTpFZSsxMjoic2FuamUiPT09VT9FZSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEVlLFUs''@;'; put 'put ''USl7cmV0dXJuIEVlPDQ/InJhdGkiOkVlPDEyPyJzb2thbGxpbSI6RWU8MTY/ImRvbnBhcmFtIjpFZTwyMD8ic2FuamUiOiJyYXRpIn19KX0oTCgxNTQzOSkpfSw0MjY0MTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwYWU3IiwyOiJc''@;'; put 'put ''dTBhZTgiLDM6Ilx1MGFlOSIsNDoiXHUwYWVhIiw1OiJcdTBhZWIiLDY6Ilx1MGFlYyIsNzoiXHUwYWVkIiw4OiJcdTBhZWUiLDk6Ilx1MGFlZiIsMDoiXHUwYWU2In0sRT17Ilx1MGFlNyI6IjEiLCJcdTBhZTgiOiIyIiwiXHUwYWU5IjoiMyIsIlx1MGFlYSI6IjQiLCJcdTBhZWIiOiI1Iiwi''@;'; put 'put ''XHUwYWVjIjoiNiIsIlx1MGFlZCI6IjciLCJcdTBhZWUiOiI4IiwiXHUwYWVmIjoiOSIsIlx1MGFlNiI6IjAifTttZS5kZWZpbmVMb2NhbGUoImd1Iix7bW9udGhzOiJcdTBhOWNcdTBhYmVcdTBhYThcdTBhY2RcdTBhYWZcdTBhYzFcdTBhODZcdTBhYjBcdTBhYzBfXHUwYWFiXHUwYWM3XHUw''@;'; put 'put ''YWFjXHUwYWNkXHUwYWIwXHUwYWMxXHUwYTg2XHUwYWIwXHUwYWMwX1x1MGFhZVx1MGFiZVx1MGFiMFx1MGFjZFx1MGE5YV9cdTBhOGZcdTBhYWFcdTBhY2RcdTBhYjBcdTBhYmZcdTBhYjJfXHUwYWFlXHUwYWM3X1x1MGE5Y1x1MGFjMlx1MGFhOF9cdTBhOWNcdTBhYzFcdTBhYjJcdTBhYmVc''@;'; put 'put ''dTBhODhfXHUwYTkxXHUwYTk3XHUwYWI4XHUwYWNkXHUwYTlmX1x1MGFiOFx1MGFhYVx1MGFjZFx1MGE5Zlx1MGFjN1x1MGFhZVx1MGFjZFx1MGFhY1x1MGFiMF9cdTBhOTFcdTBhOTVcdTBhY2RcdTBhOWZcdTBhY2RcdTBhYWNcdTBhYjBfXHUwYWE4XHUwYWI1XHUwYWM3XHUwYWFlXHUwYWNk''@;'; put 'put ''XHUwYWFjXHUwYWIwX1x1MGFhMVx1MGFiZlx1MGFiOFx1MGFjN1x1MGFhZVx1MGFjZFx1MGFhY1x1MGFiMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwYTljXHUwYWJlXHUwYWE4XHUwYWNkXHUwYWFmXHUwYWMxLl9cdTBhYWJcdTBhYzdcdTBhYWNcdTBhY2RcdTBhYjBcdTBhYzEuX1x1''@;'; put 'put ''MGFhZVx1MGFiZVx1MGFiMFx1MGFjZFx1MGE5YV9cdTBhOGZcdTBhYWFcdTBhY2RcdTBhYjBcdTBhYmYuX1x1MGFhZVx1MGFjN19cdTBhOWNcdTBhYzJcdTBhYThfXHUwYTljXHUwYWMxXHUwYWIyXHUwYWJlLl9cdTBhOTFcdTBhOTcuX1x1MGFiOFx1MGFhYVx1MGFjZFx1MGE5Zlx1MGFjNy5f''@;'; put 'put ''XHUwYTkxXHUwYTk1XHUwYWNkXHUwYTlmXHUwYWNkLl9cdTBhYThcdTBhYjVcdTBhYzcuX1x1MGFhMVx1MGFiZlx1MGFiOFx1MGFjNy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwYWIwXHUwYWI1XHUwYWJmXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGFiOFx1''@;'; put 'put ''MGFjYlx1MGFhZVx1MGFiNVx1MGFiZVx1MGFiMF9cdTBhYWVcdTBhODJcdTBhOTdcdTBhYjNcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWFjXHUwYWMxXHUwYWE3XHUwYWNkXHUwYWI1XHUwYWJlXHUwYWIwX1x1MGE5N1x1MGFjMVx1MGFiMFx1MGFjMVx1MGFiNVx1MGFiZVx1MGFiMF9cdTBhYjZc''@;'; put 'put ''dTBhYzFcdTBhOTVcdTBhY2RcdTBhYjBcdTBhYjVcdTBhYmVcdTBhYjBfXHUwYWI2XHUwYWE4XHUwYWJmXHUwYWI1XHUwYWJlXHUwYWIwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGFiMFx1MGFiNVx1MGFiZl9cdTBhYjhcdTBhY2JcdTBhYWVfXHUwYWFlXHUwYTgyXHUwYTk3XHUw''@;'; put 'put ''YWIzX1x1MGFhY1x1MGFjMVx1MGFhN1x1MGFjZF9cdTBhOTdcdTBhYzFcdTBhYjBcdTBhYzFfXHUwYWI2XHUwYWMxXHUwYTk1XHUwYWNkXHUwYWIwX1x1MGFiNlx1MGFhOFx1MGFiZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwYWIwX1x1MGFiOFx1MGFjYl9cdTBhYWVcdTBhODJfXHUw''@;'; put 'put ''YWFjXHUwYWMxX1x1MGE5N1x1MGFjMV9cdTBhYjZcdTBhYzFfXHUwYWI2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MGFiNVx1MGFiZVx1MGE5N1x1MGFjZFx1MGFhZlx1MGFjNyIsTFRTOiJBIGg6bW06c3MgXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFm''@;'; put 'put ''XHUwYWM3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTBhYjVcdTBhYmVcdTBhOTdcdTBhY2RcdTBhYWZcdTBhYzciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwYWI1XHUwYWJlXHUwYTk3XHUwYWNkXHUwYWFm''@;'; put 'put ''XHUwYWM3In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBhODZcdTBhOWNdIExUIixuZXh0RGF5OiJbXHUwYTk1XHUwYWJlXHUwYWIyXHUwYWM3XSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYTk3XHUwYTg3XHUwYTk1XHUwYWJlXHUwYWIyXHUwYWM3XSBMVCIsbGFzdFdl''@;'; put 'put ''ZWs6IltcdTBhYWFcdTBhYmVcdTBhOWJcdTBhYjJcdTBhYmVdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTBhYWVcdTBhYmUiLHBhc3Q6IiVzIFx1MGFhYVx1MGFiOVx1MGFjN1x1MGFiMlx1MGFiZSIsczoiXHUwYTg1XHUwYWFlXHUwYWMxXHUw''@;'; put 'put ''YTk1IFx1MGFhYVx1MGFiM1x1MGFjYiIsc3M6IiVkIFx1MGFiOFx1MGFjN1x1MGE5NVx1MGE4Mlx1MGFhMSIsbToiXHUwYThmXHUwYTk1IFx1MGFhZVx1MGFiZlx1MGFhOFx1MGFiZlx1MGE5ZiIsbW06IiVkIFx1MGFhZVx1MGFiZlx1MGFhOFx1MGFiZlx1MGE5ZiIsaDoiXHUwYThmXHUwYTk1''@;'; put 'put ''IFx1MGE5NVx1MGFiMlx1MGFiZVx1MGE5NSIsaGg6IiVkIFx1MGE5NVx1MGFiMlx1MGFiZVx1MGE5NSIsZDoiXHUwYThmXHUwYTk1IFx1MGFhNlx1MGFiZlx1MGFiNVx1MGFiOCIsZGQ6IiVkIFx1MGFhNlx1MGFiZlx1MGFiNVx1MGFiOCIsTToiXHUwYThmXHUwYTk1IFx1MGFhZVx1MGFiOVx1''@;'; put 'put ''MGFiZlx1MGFhOFx1MGFjYiIsTU06IiVkIFx1MGFhZVx1MGFiOVx1MGFiZlx1MGFhOFx1MGFjYiIseToiXHUwYThmXHUwYTk1IFx1MGFiNVx1MGFiMFx1MGFjZFx1MGFiNyIseXk6IiVkIFx1MGFiNVx1MGFiMFx1MGFjZFx1MGFiNyJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJl''@;'; put 'put ''cGxhY2UoL1tcdTBhZTdcdTBhZThcdTBhZTlcdTBhZWFcdTBhZWJcdTBhZWNcdTBhZWRcdTBhZWVcdTBhZWZcdTBhZTZdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBC''@;'; put 'put ''W1FdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MGFiMFx1MGFiZVx1MGFhNHxcdTBhYWNcdTBhYWFcdTBhY2JcdTBhYjB8XHUwYWI4XHUwYWI1XHUwYWJlXHUwYWIwfFx1MGFiOFx1MGFiZVx1MGE4Mlx1MGE5Yy8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCks''@;'; put 'put ''Ilx1MGFiMFx1MGFiZVx1MGFhNCI9PT1RP1U8ND9VOlUrMTI6Ilx1MGFiOFx1MGFiNVx1MGFiZVx1MGFiMCI9PT1RP1U6Ilx1MGFhY1x1MGFhYVx1MGFjYlx1MGFiMCI9PT1RP1U+PTEwP1U6VSsxMjoiXHUwYWI4XHUwYWJlXHUwYTgyXHUwYTljIj09PVE/VSsxMjp2b2lkIDB9LG1lcmlkaWVt''@;'; put 'put ''OmZ1bmN0aW9uKFUsUSxqKXtyZXR1cm4gVTw0PyJcdTBhYjBcdTBhYmVcdTBhYTQiOlU8MTA/Ilx1MGFiOFx1MGFiNVx1MGFiZVx1MGFiMCI6VTwxNz8iXHUwYWFjXHUwYWFhXHUwYWNiXHUwYWIwIjpVPDIwPyJcdTBhYjhcdTBhYmVcdTBhODJcdTBhOWMiOiJcdTBhYjBcdTBhYmVcdTBhYTQi''@;'; put 'put ''fSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw3NTM2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiaGUiLHttb250aHM6Ilx1MDVkOVx1MDVlMFx1MDVkNVx1MDVkMFx1MDVlOF9cdTA1ZTRcdTA1ZDFcdTA1ZThc''@;'; put 'put ''dTA1ZDVcdTA1ZDBcdTA1ZThfXHUwNWRlXHUwNWU4XHUwNWU1X1x1MDVkMFx1MDVlNFx1MDVlOFx1MDVkOVx1MDVkY19cdTA1ZGVcdTA1ZDBcdTA1ZDlfXHUwNWQ5XHUwNWQ1XHUwNWUwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVkY1x1MDVkOV9cdTA1ZDBcdTA1ZDVcdTA1ZDJcdTA1ZDVcdTA1''@;'; put 'put ''ZTFcdTA1ZDhfXHUwNWUxXHUwNWU0XHUwNWQ4XHUwNWRlXHUwNWQxXHUwNWU4X1x1MDVkMFx1MDVkNVx1MDVlN1x1MDVkOFx1MDVkNVx1MDVkMVx1MDVlOF9cdTA1ZTBcdTA1ZDVcdTA1ZDFcdTA1ZGVcdTA1ZDFcdTA1ZThfXHUwNWQzXHUwNWU2XHUwNWRlXHUwNWQxXHUwNWU4Ii5zcGxpdCgi''@;'; put 'put ''XyIpLG1vbnRoc1Nob3J0OiJcdTA1ZDlcdTA1ZTBcdTA1ZDVcdTA1ZjNfXHUwNWU0XHUwNWQxXHUwNWU4XHUwNWYzX1x1MDVkZVx1MDVlOFx1MDVlNV9cdTA1ZDBcdTA1ZTRcdTA1ZThcdTA1ZjNfXHUwNWRlXHUwNWQwXHUwNWQ5X1x1MDVkOVx1MDVkNVx1MDVlMFx1MDVkOV9cdTA1ZDlcdTA1''@;'; put 'put ''ZDVcdTA1ZGNcdTA1ZDlfXHUwNWQwXHUwNWQ1XHUwNWQyXHUwNWYzX1x1MDVlMVx1MDVlNFx1MDVkOFx1MDVmM19cdTA1ZDBcdTA1ZDVcdTA1ZTdcdTA1ZjNfXHUwNWUwXHUwNWQ1XHUwNWQxXHUwNWYzX1x1MDVkM1x1MDVlNlx1MDVkZVx1MDVmMyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUw''@;'; put 'put ''NWU4XHUwNWQwXHUwNWU5XHUwNWQ1XHUwNWRmX1x1MDVlOVx1MDVlMFx1MDVkOV9cdTA1ZTlcdTA1ZGNcdTA1ZDlcdTA1ZTlcdTA1ZDlfXHUwNWU4XHUwNWQxXHUwNWQ5XHUwNWUyXHUwNWQ5X1x1MDVkN1x1MDVkZVx1MDVkOVx1MDVlOVx1MDVkOV9cdTA1ZTlcdTA1ZDlcdTA1ZTlcdTA1ZDlf''@;'; put 'put ''XHUwNWU5XHUwNWQxXHUwNWVhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDVkMFx1MDVmM19cdTA1ZDFcdTA1ZjNfXHUwNWQyXHUwNWYzX1x1MDVkM1x1MDVmM19cdTA1ZDRcdTA1ZjNfXHUwNWQ1XHUwNWYzX1x1MDVlOVx1MDVmMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUw''@;'; put 'put ''NWQwX1x1MDVkMV9cdTA1ZDJfXHUwNWQzX1x1MDVkNF9cdTA1ZDVfXHUwNWU5Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtcdTA1ZDFdTU1NTSBZWVlZIixMTEw6IkQgW1x1MDVkMV1NTU1NIFlZWVkg''@;'; put 'put ''SEg6bW0iLExMTEw6ImRkZGQsIEQgW1x1MDVkMV1NTU1NIFlZWVkgSEg6bW0iLGw6IkQvTS9ZWVlZIixsbDoiRCBNTU0gWVlZWSIsbGxsOiJEIE1NTSBZWVlZIEhIOm1tIixsbGxsOiJkZGQsIEQgTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDVkNFx1MDVkOVx1MDVk''@;'; put 'put ''NVx1MDVkZCBcdTA1ZDFcdTA1YmVdTFQiLG5leHREYXk6IltcdTA1ZGVcdTA1ZDdcdTA1ZTggXHUwNWQxXHUwNWJlXUxUIixuZXh0V2VlazoiZGRkZCBbXHUwNWQxXHUwNWU5XHUwNWUyXHUwNWQ0XSBMVCIsbGFzdERheToiW1x1MDVkMFx1MDVlYVx1MDVkZVx1MDVkNVx1MDVkYyBcdTA1ZDFc''@;'; put 'put ''dTA1YmVdTFQiLGxhc3RXZWVrOiJbXHUwNWQxXHUwNWQ5XHUwNWQ1XHUwNWRkXSBkZGRkIFtcdTA1ZDRcdTA1ZDBcdTA1ZDdcdTA1ZThcdTA1ZDVcdTA1ZGYgXHUwNWQxXHUwNWU5XHUwNWUyXHUwNWQ0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNWQxXHUw''@;'; put 'put ''NWUyXHUwNWQ1XHUwNWQzICVzIixwYXN0OiJcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDkgJXMiLHM6Ilx1MDVkZVx1MDVlMVx1MDVlNFx1MDVlOCBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZDVcdTA1ZWEiLHNzOiIlZCBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZDVcdTA1ZWEiLG06Ilx1MDVkM1x1''@;'; put 'put ''MDVlN1x1MDVkNCIsbW06IiVkIFx1MDVkM1x1MDVlN1x1MDVkNVx1MDVlYSIsaDoiXHUwNWU5XHUwNWUyXHUwNWQ0IixoaDpmdW5jdGlvbihFKXtyZXR1cm4gMj09PUU/Ilx1MDVlOVx1MDVlMlx1MDVlYVx1MDVkOVx1MDVkOVx1MDVkZCI6RSsiIFx1MDVlOVx1MDVlMlx1MDVkNVx1MDVlYSJ9''@;'; put 'put ''LGQ6Ilx1MDVkOVx1MDVkNVx1MDVkZCIsZGQ6ZnVuY3Rpb24oRSl7cmV0dXJuIDI9PT1FPyJcdTA1ZDlcdTA1ZDVcdTA1ZGVcdTA1ZDlcdTA1ZDlcdTA1ZGQiOkUrIiBcdTA1ZDlcdTA1ZGVcdTA1ZDlcdTA1ZGQifSxNOiJcdTA1ZDdcdTA1ZDVcdTA1ZDNcdTA1ZTkiLE1NOmZ1bmN0aW9uKEUp''@;'; put 'put ''e3JldHVybiAyPT09RT8iXHUwNWQ3XHUwNWQ1XHUwNWQzXHUwNWU5XHUwNWQ5XHUwNWQ5XHUwNWRkIjpFKyIgXHUwNWQ3XHUwNWQ1XHUwNWQzXHUwNWU5XHUwNWQ5XHUwNWRkIn0seToiXHUwNWU5XHUwNWUwXHUwNWQ0Iix5eTpmdW5jdGlvbihFKXtyZXR1cm4gMj09PUU/Ilx1MDVlOVx1MDVl''@;'; put 'put ''MFx1MDVlYVx1MDVkOVx1MDVkOVx1MDVkZCI6RSUxMD09MCYmMTAhPT1FP0UrIiBcdTA1ZTlcdTA1ZTBcdTA1ZDQiOkUrIiBcdTA1ZTlcdTA1ZTBcdTA1ZDlcdTA1ZGQifX0sbWVyaWRpZW1QYXJzZTovXHUwNWQwXHUwNWQ3XHUwNWQ0Ilx1MDVlNnxcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDQi''@;'; put 'put ''XHUwNWU2fFx1MDVkMFx1MDVkN1x1MDVlOFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGR8XHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ5IFx1MDVkNFx1MDVlNlx1MDVkNFx1MDVlOFx1MDVkOVx1MDVkOVx1MDVkZHxcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1''@;'; put 'put ''ZDVcdTA1ZWEgXHUwNWQxXHUwNWQ1XHUwNWU3XHUwNWU4fFx1MDVkMVx1MDVkMVx1MDVkNVx1MDVlN1x1MDVlOHxcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEvaSxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybi9eKFx1MDVkMFx1MDVkN1x1MDVkNCJcdTA1ZTZ8XHUwNWQwXHUwNWQ3XHUwNWU4XHUw''@;'; put 'put ''NWQ5IFx1MDVkNFx1MDVlNlx1MDVkNFx1MDVlOFx1MDVkOVx1MDVkOVx1MDVkZHxcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEpJC8udGVzdChFKX0sbWVyaWRpZW06ZnVuY3Rpb24oRSxFZSxVKXtyZXR1cm4gRTw1PyJcdTA1ZGNcdTA1ZTRcdTA1ZTBcdTA1ZDVcdTA1ZWEgXHUwNWQxXHUwNWQ1''@;'; put 'put ''XHUwNWU3XHUwNWU4IjpFPDEwPyJcdTA1ZDFcdTA1ZDFcdTA1ZDVcdTA1ZTdcdTA1ZTgiOkU8MTI/VT8nXHUwNWRjXHUwNWU0XHUwNWUwXHUwNWQ0Ilx1MDVlNic6Ilx1MDVkY1x1MDVlNFx1MDVlMFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOkU8''@;'; put 'put ''MTg/VT8nXHUwNWQwXHUwNWQ3XHUwNWQ0Ilx1MDVlNic6Ilx1MDVkMFx1MDVkN1x1MDVlOFx1MDVkOSBcdTA1ZDRcdTA1ZTZcdTA1ZDRcdTA1ZThcdTA1ZDlcdTA1ZDlcdTA1ZGQiOiJcdTA1ZDFcdTA1ZTJcdTA1ZThcdTA1ZDEifX0pfShMKDE1NDM5KSl9LDk2MzM1OmZ1bmN0aW9uKFhlLEpl''@;'; put 'put ''LEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTA5NjciLDI6Ilx1MDk2OCIsMzoiXHUwOTY5Iiw0OiJcdTA5NmEiLDU6Ilx1MDk2YiIsNjoiXHUwOTZjIiw3OiJcdTA5NmQiLDg6Ilx1MDk2ZSIsOToiXHUwOTZmIiwwOiJcdTA5NjYifSxFPXsiXHUwOTY3IjoiMSIs''@;'; put 'put ''Ilx1MDk2OCI6IjIiLCJcdTA5NjkiOiIzIiwiXHUwOTZhIjoiNCIsIlx1MDk2YiI6IjUiLCJcdTA5NmMiOiI2IiwiXHUwOTZkIjoiNyIsIlx1MDk2ZSI6IjgiLCJcdTA5NmYiOiI5IiwiXHUwOTY2IjoiMCJ9LEVlPVsvXlx1MDkxY1x1MDkyOC9pLC9eXHUwOTJiXHUwOTNjXHUwOTMwfFx1MDky''@;'; put 'put ''Ylx1MDkzMC9pLC9eXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhL2ksL15cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDgvaSwvXlx1MDkyZVx1MDkwOC9pLC9eXHUwOTFjXHUwOTQyXHUwOTI4L2ksL15cdTA5MWNcdTA5NDFcdTA5MzIvaSwvXlx1MDkwNVx1MDkxNy9pLC9eXHUw''@;'; put 'put ''OTM4XHUwOTNmXHUwOTI0XHUwOTAyfFx1MDkzOFx1MDkzZlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzV8XHUwOTI4XHUwOTM1XHUwOTAyL2ksL15cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJ8XHUwOTI2XHUwOTNmXHUwOTM4L2ldO21l''@;'; put 'put ''LmRlZmluZUxvY2FsZSgiaGkiLHttb250aHM6e2Zvcm1hdDoiXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4''@;'; put 'put ''XHUwOTMyX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4X1x1MDkwNVx1MDkxN1x1MDkzOFx1MDk0ZFx1MDkyNF9cdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzBfXHUwOTA1XHUwOTE1XHUwOTRkXHUw''@;'; put 'put ''OTFmXHUwOTQyXHUwOTJjXHUwOTMwX1x1MDkyOFx1MDkzNVx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMF9cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzAiLnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyYlx1''@;'; put 'put ''MDkzMFx1MDkzNVx1MDkzMFx1MDk0MF9cdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWFfXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDJcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4X1x1MDkwNVx1MDkx''@;'; put 'put ''N1x1MDkzOFx1MDk0ZFx1MDkyNF9cdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzBfXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwX1x1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MDJcdTA5MmNcdTA5''@;'; put 'put ''MzAiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0OiJcdTA5MWNcdTA5MjguX1x1MDkyYlx1MDkzY1x1MDkzMC5fXHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhX1x1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OC5fXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0Mlx1MDkyOF9cdTA5MWNc''@;'; put 'put ''dTA5NDFcdTA5MzIuX1x1MDkwNVx1MDkxNy5fXHUwOTM4XHUwOTNmXHUwOTI0Ll9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDIuX1x1MDkyOFx1MDkzNS5fXHUwOTI2XHUwOTNmXHUwOTM4LiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwOTMwXHUwOTM1XHUwOTNmXHUwOTM1XHUwOTNl''@;'; put 'put ''XHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzJcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkxN1x1MDk0MVx1MDkzMFx1MDk0Mlx1MDkzNVx1MDkzZVx1MDkz''@;'; put 'put ''MF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkzMFx1MDkzNVx1MDkzZl9cdTA5MzhcdTA5NGJcdTA5MmVfXHUwOTJlXHUwOTAy''@;'; put 'put ''XHUwOTE3XHUwOTMyX1x1MDkyY1x1MDk0MVx1MDkyN19cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwOTMwX1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJf''@;'; put 'put ''XHUwOTJjXHUwOTQxX1x1MDkxN1x1MDk0MV9cdTA5MzZcdTA5NDFfXHUwOTM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTFRTOiJBIGg6bW06c3MgXHUwOTJjXHUwOTFjXHUwOTQ3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1N''@;'; put 'put ''IFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3In0sbW9udGhzUGFyc2U6RWUsbG9uZ01vbnRoc1BhcnNlOkVlLHNob3J0TW9udGhzUGFyc2U6Wy9eXHUwOTFj''@;'; put 'put ''XHUwOTI4L2ksL15cdTA5MmJcdTA5M2NcdTA5MzAvaSwvXlx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS9pLC9eXHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4L2ksL15cdTA5MmVcdTA5MDgvaSwvXlx1MDkxY1x1MDk0Mlx1MDkyOC9pLC9eXHUwOTFjXHUwOTQxXHUwOTMyL2ks''@;'; put 'put ''L15cdTA5MDVcdTA5MTcvaSwvXlx1MDkzOFx1MDkzZlx1MDkyNC9pLC9eXHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyL2ksL15cdTA5MjhcdTA5MzUvaSwvXlx1MDkyNlx1MDkzZlx1MDkzOC9pXSxtb250aHNSZWdleDovXihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUw''@;'; put 'put ''OTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4''@;'; put 'put ''XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1''@;'; put 'put ''XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDkyNFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5''@;'; put 'put ''MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1''@;'; put 'put ''MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjZcdTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU2hvcnRSZWdleDovXihcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTFjXHUwOTI4XC4/fFx1MDkyYlx1MDkzY1x1MDkzMFx1MDkzNVx1MDkzMFx1MDk0MHxcdTA5MmJcdTA5MzBc''@;'; put 'put ''dTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTNjXHUwOTMwXC4/fFx1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYT98XHUwOTA1XHUwOTJhXHUwOTRkXHUwOTMwXHUwOTQ4XHUwOTMyfFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1MDk0OFwuP3xcdTA5MmVcdTA5MDg/fFx1MDkxY1x1''@;'; put 'put ''MDk0Mlx1MDkyOD98XHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcdTA5MzhcdTA5NGRcdTA5MjR8XHUwOTA1XHUwOTE3XC4/fFx1MDkzOFx1MDkzZlx1MDkyNFx1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMHxcdTA5MzhcdTA5''@;'; put 'put ''M2ZcdTA5MjRcdTA5MDJcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNmXHUwOTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0Mlx1MDkyY1x1MDkzMHxcdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NDJcLj98XHUwOTI4XHUwOTM1XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1''@;'; put 'put ''MDkyOFx1MDkzNVx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwfFx1MDkyNlx1MDkzZlx1MDkzOFx1MDkwMlx1MDkyY1x1MDkzMHxcdTA5MjZcdTA5M2ZcdTA5MzhcLj8pL2ksbW9udGhzU3RyaWN0UmVn''@;'; put 'put ''ZXg6L14oXHUwOTFjXHUwOTI4XHUwOTM1XHUwOTMwXHUwOTQwP3xcdTA5MmJcdTA5M2NcdTA5MzBcdTA5MzVcdTA5MzBcdTA5NDB8XHUwOTJiXHUwOTMwXHUwOTM1XHUwOTMwXHUwOTQwP3xcdTA5MmVcdTA5M2VcdTA5MzBcdTA5NGRcdTA5MWE/fFx1MDkwNVx1MDkyYVx1MDk0ZFx1MDkzMFx1''@;'; put 'put ''MDk0OFx1MDkzMj98XHUwOTJlXHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlx1MDkzZVx1MDkwOD98XHUwOTA1XHUwOTE3XHUwOTM4XHUwOTRkXHUwOTI0P3xcdTA5MzhcdTA5M2ZcdTA5MjRcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTM4XHUwOTNm''@;'; put 'put ''XHUwOTI0XHUwOTAyXHUwOTJjXHUwOTMwfFx1MDkzOFx1MDkzZlx1MDkyND9cLj98XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTQyXHUwOTJjXHUwOTMwfFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0MlwuP3xcdTA5MjhcdTA5MzVcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUw''@;'; put 'put ''OTI4XHUwOTM1XHUwOTAyXHUwOTJjXHUwOTMwP3xcdTA5MjZcdTA5M2ZcdTA5MzhcdTA5MmVcdTA5NGRcdTA5MmNcdTA5MzB8XHUwOTI2XHUwOTNmXHUwOTM4XHUwOTAyXHUwOTJjXHUwOTMwPykvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKFx1MDkxY1x1MDkyOFwuP3xcdTA5MmJcdTA5''@;'; put 'put ''M2NcdTA5MzBcLj98XHUwOTJlXHUwOTNlXHUwOTMwXHUwOTRkXHUwOTFhP3xcdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5NDhcLj98XHUwOTJlXHUwOTA4P3xcdTA5MWNcdTA5NDJcdTA5Mjg/fFx1MDkxY1x1MDk0MVx1MDkzMlwuP3xcdTA5MDVcdTA5MTdcLj98XHUwOTM4XHUwOTNmXHUw''@;'; put 'put ''OTI0XC4/fFx1MDkwNVx1MDkxNVx1MDk0ZFx1MDkxZlx1MDk0MlwuP3xcdTA5MjhcdTA5MzVcLj98XHUwOTI2XHUwOTNmXHUwOTM4XC4/KS9pLGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTA2XHUwOTFjXSBMVCIsbmV4dERheToiW1x1MDkxNVx1MDkzMl0gTFQiLG5leHRXZWVrOiJkZGRkLCBM''@;'; put 'put ''VCIsbGFzdERheToiW1x1MDkxNVx1MDkzMl0gTFQiLGxhc3RXZWVrOiJbXHUwOTJhXHUwOTNmXHUwOTFiXHUwOTMyXHUwOTQ3XSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwOTJlXHUwOTQ3XHUwOTAyIixwYXN0OiIlcyBcdTA5MmFcdTA5Mzlc''@;'; put 'put ''dTA5MzJcdTA5NDciLHM6Ilx1MDkxNVx1MDk0MVx1MDkxYiBcdTA5MzlcdTA5NDAgXHUwOTE1XHUwOTRkXHUwOTM3XHUwOTIzIixzczoiJWQgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTIxIixtOiJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTFmIixtbToiJWQgXHUw''@;'; put 'put ''OTJlXHUwOTNmXHUwOTI4XHUwOTFmIixoOiJcdTA5MGZcdTA5MTUgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTNlIixoaDoiJWQgXHUwOTE4XHUwOTAyXHUwOTFmXHUwOTQ3IixkOiJcdTA5MGZcdTA5MTUgXHUwOTI2XHUwOTNmXHUwOTI4IixkZDoiJWQgXHUwOTI2XHUwOTNmXHUwOTI4IixNOiJc''@;'; put 'put ''dTA5MGZcdTA5MTUgXHUwOTJlXHUwOTM5XHUwOTQwXHUwOTI4XHUwOTQ3IixNTToiJWQgXHUwOTJlXHUwOTM5XHUwOTQwXHUwOTI4XHUwOTQ3Iix5OiJcdTA5MGZcdTA5MTUgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3Iix5eToiJWQgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3In0scHJlcGFy''@;'; put 'put ''c2U6ZnVuY3Rpb24oail7cmV0dXJuIGoucmVwbGFjZSgvW1x1MDk2N1x1MDk2OFx1MDk2OVx1MDk2YVx1MDk2Ylx1MDk2Y1x1MDk2ZFx1MDk2ZVx1MDk2Zlx1MDk2Nl0vZyxmdW5jdGlvbihyZSl7cmV0dXJuIEVbcmVdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oail7cmV0dXJuIGoucmVwbGFj''@;'; put 'put ''ZSgvXGQvZyxmdW5jdGlvbihyZSl7cmV0dXJuIEJbcmVdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MDkzMFx1MDkzZVx1MDkyNHxcdTA5MzhcdTA5NDFcdTA5MmNcdTA5Mzl8XHUwOTI2XHUwOTRiXHUwOTJhXHUwOTM5XHUwOTMwfFx1MDkzNlx1MDkzZVx1MDkyZS8sbWVyaWRpZW1Ib3VyOmZ1bmN0''@;'; put 'put ''aW9uKGoscmUpe3JldHVybiAxMj09PWomJihqPTApLCJcdTA5MzBcdTA5M2VcdTA5MjQiPT09cmU/ajw0P2o6aisxMjoiXHUwOTM4XHUwOTQxXHUwOTJjXHUwOTM5Ij09PXJlP2o6Ilx1MDkyNlx1MDk0Ylx1MDkyYVx1MDkzOVx1MDkzMCI9PT1yZT9qPj0xMD9qOmorMTI6Ilx1MDkzNlx1MDkz''@;'; put 'put ''ZVx1MDkyZSI9PT1yZT9qKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oaixyZSxhZSl7cmV0dXJuIGo8ND8iXHUwOTMwXHUwOTNlXHUwOTI0IjpqPDEwPyJcdTA5MzhcdTA5NDFcdTA5MmNcdTA5MzkiOmo8MTc/Ilx1MDkyNlx1MDk0Ylx1MDkyYVx1MDkzOVx1MDkzMCI6ajwyMD8iXHUw''@;'; put 'put ''OTM2XHUwOTNlXHUwOTJlIjoiXHUwOTMwXHUwOTNlXHUwOTI0In0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sNzQ1ODpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKEVlLFUsUSl7dmFyIGo9RWUrIiAiO3N3aXRjaChRKXtj''@;'; put 'put ''YXNlInNzIjpyZXR1cm4gaisoMT09PUVlPyJzZWt1bmRhIjoyPT09RWV8fDM9PT1FZXx8ND09PUVlPyJzZWt1bmRlIjoic2VrdW5kaSIpO2Nhc2UibSI6cmV0dXJuIFU/ImplZG5hIG1pbnV0YSI6ImplZG5lIG1pbnV0ZSI7Y2FzZSJtbSI6cmV0dXJuIGorKDE9PT1FZT8ibWludXRhIjoyPT09''@;'; put 'put ''RWV8fDM9PT1FZXx8ND09PUVlPyJtaW51dGUiOiJtaW51dGEiKTtjYXNlImgiOnJldHVybiBVPyJqZWRhbiBzYXQiOiJqZWRub2cgc2F0YSI7Y2FzZSJoaCI6cmV0dXJuIGorKDE9PT1FZT8ic2F0IjoyPT09RWV8fDM9PT1FZXx8ND09PUVlPyJzYXRhIjoic2F0aSIpO2Nhc2UiZGQiOnJldHVy''@;'; put 'put ''biBqKygxPT09RWU/ImRhbiI6ImRhbmEiKTtjYXNlIk1NIjpyZXR1cm4gaisoMT09PUVlPyJtamVzZWMiOjI9PT1FZXx8Mz09PUVlfHw0PT09RWU/Im1qZXNlY2EiOiJtamVzZWNpIik7Y2FzZSJ5eSI6cmV0dXJuIGorKDE9PT1FZT8iZ29kaW5hIjoyPT09RWV8fDM9PT1FZXx8ND09PUVlPyJn''@;'; put 'put ''b2RpbmUiOiJnb2RpbmEiKX19bWUuZGVmaW5lTG9jYWxlKCJociIse21vbnRoczp7Zm9ybWF0OiJzaWplXHUwMTBkbmphX3ZlbGphXHUwMTBkZV9vXHUwMTdldWprYV90cmF2bmphX3N2aWJuamFfbGlwbmphX3NycG5qYV9rb2xvdm96YV9ydWpuYV9saXN0b3BhZGFfc3R1ZGVub2dhX3Byb3Np''@;'; put 'put ''bmNhIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6InNpamVcdTAxMGRhbmpfdmVsamFcdTAxMGRhX29cdTAxN2V1amFrX3RyYXZhbmpfc3ZpYmFual9saXBhbmpfc3JwYW5qX2tvbG92b3pfcnVqYW5fbGlzdG9wYWRfc3R1ZGVuaV9wcm9zaW5hYyIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6InNp''@;'; put 'put ''ai5fdmVsai5fb1x1MDE3ZXUuX3RyYS5fc3ZpLl9saXAuX3NycC5fa29sLl9ydWouX2xpcy5fc3R1Ll9wcm8uIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vi''@;'; put 'put ''b3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyaS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRfc3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVG''@;'; put 'put ''b3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEbyBNTU1NIFlZWVkiLExMTDoiRG8gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIERvIE1NTU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3N1''@;'; put 'put ''dHJhIHVdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt1XSBbbmVkamVsanVdIFt1XSBMVCI7Y2FzZSAzOnJldHVybiJbdV0gW3NyaWplZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbdV0gW3N1Ym90dV0gW3VdIExUIjtjYXNlIDE6''@;'; put 'put ''Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt1XSBkZGRkIFt1XSBMVCJ9fSxsYXN0RGF5OiJbanVcdTAxMGRlciB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbcHJvXHUwMTYxbHVdIFtuZWRqZWxqdV0gW3VdIExUIjtjYXNl''@;'; put 'put ''IDM6cmV0dXJuIltwcm9cdTAxNjFsdV0gW3NyaWplZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJbcHJvXHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbcHJvXHUwMTYxbGldIGRkZGQgW3VdIExUIn19LHNhbWVFbHNlOiJMIn0s''@;'; put 'put ''cmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwcmlqZSAlcyIsczoicGFyIHNla3VuZGkiLHNzOkIsbTpCLG1tOkIsaDpCLGhoOkIsZDoiZGFuIixkZDpCLE06Im1qZXNlYyIsTU06Qix5OiJnb2RpbnUiLHl5OkJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8s''@;'; put 'put ''b3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw1NjU0MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0idmFzXHhlMXJuYXAgaFx4ZTl0Zlx1MDE1MW4ga2VkZGVuIHN6ZXJkXHhlMW4gY3NceGZjdFx4ZjZydFx4''@;'; put 'put ''ZjZrXHhmNm4gcFx4ZTludGVrZW4gc3pvbWJhdG9uIi5zcGxpdCgiICIpO2Z1bmN0aW9uIEUoUSxqLHJlLGFlKXt2YXIgWT1RO3N3aXRjaChyZSl7Y2FzZSJzIjpyZXR1cm4gYWV8fGo/Im5ceGU5aFx4ZTFueSBtXHhlMXNvZHBlcmMiOiJuXHhlOWhceGUxbnkgbVx4ZTFzb2RwZXJjZSI7Y2Fz''@;'; put 'put ''ZSJzcyI6cmV0dXJuIFkrKGFlfHxqKT8iIG1ceGUxc29kcGVyYyI6IiBtXHhlMXNvZHBlcmNlIjtjYXNlIm0iOnJldHVybiJlZ3kiKyhhZXx8aj8iIHBlcmMiOiIgcGVyY2UiKTtjYXNlIm1tIjpyZXR1cm4gWSsoYWV8fGo/IiBwZXJjIjoiIHBlcmNlIik7Y2FzZSJoIjpyZXR1cm4iZWd5Iiso''@;'; put 'put ''YWV8fGo/IiBceGYzcmEiOiIgXHhmM3JceGUxamEiKTtjYXNlImhoIjpyZXR1cm4gWSsoYWV8fGo/IiBceGYzcmEiOiIgXHhmM3JceGUxamEiKTtjYXNlImQiOnJldHVybiJlZ3kiKyhhZXx8aj8iIG5hcCI6IiBuYXBqYSIpO2Nhc2UiZGQiOnJldHVybiBZKyhhZXx8aj8iIG5hcCI6IiBuYXBq''@;'; put 'put ''YSIpO2Nhc2UiTSI6cmV0dXJuImVneSIrKGFlfHxqPyIgaFx4ZjNuYXAiOiIgaFx4ZjNuYXBqYSIpO2Nhc2UiTU0iOnJldHVybiBZKyhhZXx8aj8iIGhceGYzbmFwIjoiIGhceGYzbmFwamEiKTtjYXNlInkiOnJldHVybiJlZ3kiKyhhZXx8aj8iIFx4ZTl2IjoiIFx4ZTl2ZSIpO2Nhc2UieXki''@;'; put 'put ''OnJldHVybiBZKyhhZXx8aj8iIFx4ZTl2IjoiIFx4ZTl2ZSIpfXJldHVybiIifWZ1bmN0aW9uIEVlKFEpe3JldHVybihRPyIiOiJbbVx4ZmFsdF0gIikrIlsiK0JbdGhpcy5kYXkoKV0rIl0gTFRbLWtvcl0ifW1lLmRlZmluZUxvY2FsZSgiaHUiLHttb250aHM6ImphbnVceGUxcl9mZWJydVx4''@;'; put 'put ''ZTFyX21ceGUxcmNpdXNfXHhlMXByaWxpc19tXHhlMWp1c19qXHhmYW5pdXNfalx4ZmFsaXVzX2F1Z3VzenR1c19zemVwdGVtYmVyX29rdFx4ZjNiZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tXHhlMXJjLl9ceGUxcHIuX21ceGUxai5f''@;'; put 'put ''alx4ZmFuLl9qXHhmYWwuX2F1Zy5fc3plcHQuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6InZhc1x4ZTFybmFwX2hceGU5dGZcdTAxNTFfa2VkZF9zemVyZGFfY3NceGZjdFx4ZjZydFx4ZjZrX3BceGU5bnRla19zem9tYmF0Ii5zcGxp''@;'; put 'put ''dCgiXyIpLHdlZWtkYXlzU2hvcnQ6InZhc19oXHhlOXRfa2VkZF9zemVfY3NceGZjdF9wXHhlOW5fc3pvIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJ2X2hfa19zemVfY3NfcF9zem8iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IllZWVku''@;'; put 'put ''TU0uREQuIixMTDoiWVlZWS4gTU1NTSBELiIsTExMOiJZWVlZLiBNTU1NIEQuIEg6bW0iLExMTEw6IllZWVkuIE1NTU0gRC4sIGRkZGQgSDptbSJ9LG1lcmlkaWVtUGFyc2U6L2RlfGR1L2ksaXNQTTpmdW5jdGlvbihRKXtyZXR1cm4idSI9PT1RLmNoYXJBdCgxKS50b0xvd2VyQ2FzZSgpfSxt''@;'; put 'put ''ZXJpZGllbTpmdW5jdGlvbihRLGoscmUpe3JldHVybiBRPDEyPyEwPT09cmU/ImRlIjoiREUiOiEwPT09cmU/ImR1IjoiRFUifSxjYWxlbmRhcjp7c2FtZURheToiW21hXSBMVFsta29yXSIsbmV4dERheToiW2hvbG5hcF0gTFRbLWtvcl0iLG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIEVl''@;'; put 'put ''LmNhbGwodGhpcywhMCl9LGxhc3REYXk6Ilt0ZWduYXBdIExUWy1rb3JdIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVybiBFZS5jYWxsKHRoaXMsITEpfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBtXHhmYWx2YSIscGFzdDoiJXMiLHM6RSxzczpFLG06RSxtbTpF''@;'; put 'put ''LGg6RSxoaDpFLGQ6RSxkZDpFLE06RSxNTTpFLHk6RSx5eTpFfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNjUyODM6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0''@;'; put 'put ''cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJoeS1hbSIse21vbnRoczp7Zm9ybWF0OiJcdTA1NzBcdTA1NzhcdTA1ODJcdTA1NzZcdTA1N2VcdTA1NjFcdTA1ODBcdTA1NmJfXHUwNTgzXHUwNTY1XHUwNTdmXHUwNTgwXHUwNTdlXHUwNTYxXHUwNTgwXHUwNTZiX1x1MDU3NFx1MDU2MVx1MDU4MFx1''@;'; put 'put ''MDU3Zlx1MDU2Yl9cdTA1NjFcdTA1N2FcdTA1ODBcdTA1NmJcdTA1NmNcdTA1NmJfXHUwNTc0XHUwNTYxXHUwNTc1XHUwNTZiXHUwNTdkXHUwNTZiX1x1MDU3MFx1MDU3OFx1MDU4Mlx1MDU3Nlx1MDU2Ylx1MDU3ZFx1MDU2Yl9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NmNcdTA1NmJcdTA1N2Rc''@;'; put 'put ''dTA1NmJfXHUwNTg1XHUwNTYzXHUwNTc4XHUwNTdkXHUwNTdmXHUwNTc4XHUwNTdkXHUwNTZiX1x1MDU3ZFx1MDU2NVx1MDU3YVx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MFx1MDU2Yl9cdTA1NzBcdTA1NzhcdTA1NmZcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVc''@;'; put 'put ''dTA1ODBcdTA1NmJfXHUwNTc2XHUwNTc4XHUwNTc1XHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwXHUwNTZiX1x1MDU2NFx1MDU2NVx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MFx1MDU2YiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA1NzBcdTA1Nzhc''@;'; put 'put ''dTA1ODJcdTA1NzZcdTA1N2VcdTA1NjFcdTA1ODBfXHUwNTgzXHUwNTY1XHUwNTdmXHUwNTgwXHUwNTdlXHUwNTYxXHUwNTgwX1x1MDU3NFx1MDU2MVx1MDU4MFx1MDU3Zl9cdTA1NjFcdTA1N2FcdTA1ODBcdTA1NmJcdTA1NmNfXHUwNTc0XHUwNTYxXHUwNTc1XHUwNTZiXHUwNTdkX1x1MDU3''@;'; put 'put ''MFx1MDU3OFx1MDU4Mlx1MDU3Nlx1MDU2Ylx1MDU3ZF9cdTA1NzBcdTA1NzhcdTA1ODJcdTA1NmNcdTA1NmJcdTA1N2RfXHUwNTg1XHUwNTYzXHUwNTc4XHUwNTdkXHUwNTdmXHUwNTc4XHUwNTdkX1x1MDU3ZFx1MDU2NVx1MDU3YVx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4''@;'; put 'put ''MF9cdTA1NzBcdTA1NzhcdTA1NmZcdTA1N2ZcdTA1NjVcdTA1NzRcdTA1NjJcdTA1NjVcdTA1ODBfXHUwNTc2XHUwNTc4XHUwNTc1XHUwNTY1XHUwNTc0XHUwNTYyXHUwNTY1XHUwNTgwX1x1MDU2NFx1MDU2NVx1MDU2Zlx1MDU3Zlx1MDU2NVx1MDU3NFx1MDU2Mlx1MDU2NVx1MDU4MCIuc3Bs''@;'; put 'put ''aXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDU3MFx1MDU3Nlx1MDU3ZV9cdTA1ODNcdTA1N2ZcdTA1ODBfXHUwNTc0XHUwNTgwXHUwNTdmX1x1MDU2MVx1MDU3YVx1MDU4MF9cdTA1NzRcdTA1NzVcdTA1N2RfXHUwNTcwXHUwNTc2XHUwNTdkX1x1MDU3MFx1MDU2Y1x1MDU3ZF9cdTA1ODVcdTA1''@;'; put 'put ''NjNcdTA1N2RfXHUwNTdkXHUwNTdhXHUwNTdmX1x1MDU3MFx1MDU2Zlx1MDU3Zl9cdTA1NzZcdTA1NzRcdTA1NjJfXHUwNTY0XHUwNTZmXHUwNTdmIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA1NmZcdTA1NmJcdTA1ODBcdTA1NjFcdTA1NmZcdTA1NmJfXHUwNTY1XHUwNTgwXHUwNTZmXHUw''@;'; put 'put ''NTc4XHUwNTgyXHUwNTc3XHUwNTYxXHUwNTYyXHUwNTY5XHUwNTZiX1x1MDU2NVx1MDU4MFx1MDU2NVx1MDU4NFx1MDU3N1x1MDU2MVx1MDU2Mlx1MDU2OVx1MDU2Yl9cdTA1NzlcdTA1NzhcdTA1ODBcdTA1NjVcdTA1ODRcdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjlcdTA1NmJfXHUwNTcwXHUw''@;'; put 'put ''NTZiXHUwNTc2XHUwNTYzXHUwNTc3XHUwNTYxXHUwNTYyXHUwNTY5XHUwNTZiX1x1MDU3OFx1MDU4Mlx1MDU4MFx1MDU2Mlx1MDU2MVx1MDU2OV9cdTA1NzdcdTA1NjFcdTA1NjJcdTA1NjFcdTA1NjkiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNTZmXHUwNTgwXHUwNTZmX1x1MDU2''@;'; put 'put ''NVx1MDU4MFx1MDU2Zl9cdTA1NjVcdTA1ODBcdTA1ODRfXHUwNTc5XHUwNTgwXHUwNTg0X1x1MDU3MFx1MDU3Nlx1MDU2M19cdTA1NzhcdTA1ODJcdTA1ODBcdTA1NjJfXHUwNTc3XHUwNTYyXHUwNTY5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA1NmZcdTA1ODBcdTA1NmZfXHUwNTY1''@;'; put 'put ''XHUwNTgwXHUwNTZmX1x1MDU2NVx1MDU4MFx1MDU4NF9cdTA1NzlcdTA1ODBcdTA1ODRfXHUwNTcwXHUwNTc2XHUwNTYzX1x1MDU3OFx1MDU4Mlx1MDU4MFx1MDU2Ml9cdTA1NzdcdTA1NjJcdTA1NjkiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpz''@;'; put 'put ''cyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIFx1MDU2OS4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNTY5LiwgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFx1MDU2OS4sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA1NjFcdTA1NzVcdTA1N2RcdTA1ODVcdTA1''@;'; put 'put ''ODBdIExUIixuZXh0RGF5OiJbXHUwNTdlXHUwNTYxXHUwNTcyXHUwNTY4XSBMVCIsbGFzdERheToiW1x1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zl0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuImRkZGQgW1x1MDU4NVx1MDU4MFx1MDU2OCBcdTA1NmFcdTA1NjFcdTA1NzRcdTA1Njhd''@;'; put 'put ''IExUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4iW1x1MDU2MVx1MDU3Nlx1MDU4MVx1MDU2MVx1MDU2ZV0gZGRkZCBbXHUwNTg1XHUwNTgwXHUwNTY4IFx1MDU2YVx1MDU2MVx1MDU3NFx1MDU2OF0gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA1''@;'; put 'put ''NzBcdTA1NjVcdTA1N2ZcdTA1NzgiLHBhc3Q6IiVzIFx1MDU2MVx1MDU3Y1x1MDU2MVx1MDU3YiIsczoiXHUwNTc0XHUwNTZiIFx1MDU4NFx1MDU2MVx1MDU3Nlx1MDU2YiBcdTA1N2VcdTA1NjFcdTA1NzVcdTA1ODBcdTA1NmZcdTA1NzVcdTA1NjFcdTA1NzYiLHNzOiIlZCBcdTA1N2VcdTA1''@;'; put 'put ''NjFcdTA1NzVcdTA1ODBcdTA1NmZcdTA1NzVcdTA1NjFcdTA1NzYiLG06Ilx1MDU4MFx1MDU3OFx1MDU3YVx1MDU2NSIsbW06IiVkIFx1MDU4MFx1MDU3OFx1MDU3YVx1MDU2NSIsaDoiXHUwNTZhXHUwNTYxXHUwNTc0IixoaDoiJWQgXHUwNTZhXHUwNTYxXHUwNTc0IixkOiJcdTA1ODVcdTA1''@;'; put 'put ''ODAiLGRkOiIlZCBcdTA1ODVcdTA1ODAiLE06Ilx1MDU2MVx1MDU3NFx1MDU2Ylx1MDU3ZCIsTU06IiVkIFx1MDU2MVx1MDU3NFx1MDU2Ylx1MDU3ZCIseToiXHUwNTdmXHUwNTYxXHUwNTgwXHUwNTZiIix5eToiJWQgXHUwNTdmXHUwNTYxXHUwNTgwXHUwNTZiIn0sbWVyaWRpZW1QYXJzZTov''@;'; put 'put ''XHUwNTYzXHUwNTZiXHUwNTc3XHUwNTY1XHUwNTgwXHUwNTdlXHUwNTYxfFx1MDU2MVx1MDU3Y1x1MDU2MVx1MDU3ZVx1MDU3OFx1MDU3Zlx1MDU3ZVx1MDU2MXxcdTA1ODFcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1N2VcdTA1NjF8XHUwNTY1XHUwNTgwXHUwNTY1XHUwNTZmXHUwNTc4''@;'; put 'put ''XHUwNTc1XHUwNTYxXHUwNTc2Lyxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybi9eKFx1MDU4MVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3ZVx1MDU2MXxcdTA1NjVcdTA1ODBcdTA1NjVcdTA1NmZcdTA1NzhcdTA1NzVcdTA1NjFcdTA1NzYpJC8udGVzdChFKX0sbWVyaWRpZW06ZnVuY3Rp''@;'; put 'put ''b24oRSl7cmV0dXJuIEU8ND8iXHUwNTYzXHUwNTZiXHUwNTc3XHUwNTY1XHUwNTgwXHUwNTdlXHUwNTYxIjpFPDEyPyJcdTA1NjFcdTA1N2NcdTA1NjFcdTA1N2VcdTA1NzhcdTA1N2ZcdTA1N2VcdTA1NjEiOkU8MTc/Ilx1MDU4MVx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3ZVx1MDU2''@;'; put 'put ''MSI6Ilx1MDU2NVx1MDU4MFx1MDU2NVx1MDU2Zlx1MDU3OFx1MDU3NVx1MDU2MVx1MDU3NiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn18XGR7MSwyfS0oXHUwNTZiXHUwNTc2fFx1MDU4MFx1MDU2NCkvLG9yZGluYWw6ZnVuY3Rpb24oRSxFZSl7c3dpdGNoKEVlKXtjYXNlIkRE''@;'; put 'put ''RCI6Y2FzZSJ3IjpjYXNlIlciOmNhc2UiREREbyI6cmV0dXJuIDE9PT1FP0UrIi1cdTA1NmJcdTA1NzYiOkUrIi1cdTA1ODBcdTA1NjQiO2RlZmF1bHQ6cmV0dXJuIEV9fSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw5ODc4MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24o''@;'; put 'put ''bWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImlkIix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hcmV0X0FwcmlsX01laV9KdW5pX0p1bGlfQWd1c3R1c19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiSmFuX0Zl''@;'; put 'put ''Yl9NYXJfQXByX01laV9KdW5fSnVsX0FndF9TZXBfT2t0X05vdl9EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ik1pbmdndV9TZW5pbl9TZWxhc2FfUmFidV9LYW1pc19KdW1hdF9TYWJ0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJNaW5fU2VuX1NlbF9SYWJfS2FtX0p1bV9TYWIiLnNw''@;'; put 'put ''bGl0KCJfIiksd2Vla2RheXNNaW46Ik1nX1NuX1NsX1JiX0ttX0ptX1NiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIixMTExM''@;'; put 'put ''OiJkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovcGFnaXxzaWFuZ3xzb3JlfG1hbGFtLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxFZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksInBhZ2kiPT09RWU/RToic2lhbmciPT09RWU/RT49MTE/RTpFKzEyOiJz''@;'; put 'put ''b3JlIj09PUVlfHwibWFsYW0iPT09RWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEU8MTE/InBhZ2kiOkU8MTU/InNpYW5nIjpFPDE5PyJzb3JlIjoibWFsYW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhcmkgaW5pIHB1a3VsXSBMVCIsbmV4dERheToi''@;'; put 'put ''W0Jlc29rIHB1a3VsXSBMVCIsbmV4dFdlZWs6ImRkZGQgW3B1a3VsXSBMVCIsbGFzdERheToiW0tlbWFyaW4gcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBbbGFsdSBwdWt1bF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ImRhbGFtICVzIixwYXN0OiIlcyB5YW5n''@;'; put 'put ''IGxhbHUiLHM6ImJlYmVyYXBhIGRldGlrIixzczoiJWQgZGV0aWsiLG06InNlbWVuaXQiLG1tOiIlZCBtZW5pdCIsaDoic2VqYW0iLGhoOiIlZCBqYW0iLGQ6InNlaGFyaSIsZGQ6IiVkIGhhcmkiLE06InNlYnVsYW4iLE1NOiIlZCBidWxhbiIseToic2V0YWh1biIseXk6IiVkIHRhaHVuIn0s''@;'; put 'put ''d2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sMTQyMDU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihVKXtyZXR1cm4gVSUxMDA9PTExfHxVJTEwIT0xfWZ1bmN0aW9uIEUoVSxRLGoscmUpe3ZhciBhZT1VKyIgIjtzd2l0Y2go''@;'; put 'put ''ail7Y2FzZSJzIjpyZXR1cm4gUXx8cmU/Im5va2tyYXIgc2VrXHhmYW5kdXIiOiJub2trcnVtIHNla1x4ZmFuZHVtIjtjYXNlInNzIjpyZXR1cm4gQihVKT9hZSsoUXx8cmU/InNla1x4ZmFuZHVyIjoic2VrXHhmYW5kdW0iKTphZSsic2VrXHhmYW5kYSI7Y2FzZSJtIjpyZXR1cm4gUT8ibVx4''@;'; put 'put ''ZWRuXHhmYXRhIjoibVx4ZWRuXHhmYXR1IjtjYXNlIm1tIjpyZXR1cm4gQihVKT9hZSsoUXx8cmU/Im1ceGVkblx4ZmF0dXIiOiJtXHhlZG5ceGZhdHVtIik6UT9hZSsibVx4ZWRuXHhmYXRhIjphZSsibVx4ZWRuXHhmYXR1IjtjYXNlImhoIjpyZXR1cm4gQihVKT9hZSsoUXx8cmU/ImtsdWtr''@;'; put 'put ''dXN0dW5kaXIiOiJrbHVra3VzdHVuZHVtIik6YWUrImtsdWtrdXN0dW5kIjtjYXNlImQiOnJldHVybiBRPyJkYWd1ciI6cmU/ImRhZyI6ImRlZ2kiO2Nhc2UiZGQiOnJldHVybiBCKFUpP1E/YWUrImRhZ2FyIjphZSsocmU/ImRhZ2EiOiJkXHhmNmd1bSIpOlE/YWUrImRhZ3VyIjphZSsocmU/''@;'; put 'put ''ImRhZyI6ImRlZ2kiKTtjYXNlIk0iOnJldHVybiBRPyJtXHhlMW51XHhmMHVyIjpyZT8ibVx4ZTFudVx4ZjAiOiJtXHhlMW51XHhmMGkiO2Nhc2UiTU0iOnJldHVybiBCKFUpP1E/YWUrIm1ceGUxbnVceGYwaXIiOmFlKyhyZT8ibVx4ZTFudVx4ZjBpIjoibVx4ZTFudVx4ZjB1bSIpOlE/YWUr''@;'; put 'put ''Im1ceGUxbnVceGYwdXIiOmFlKyhyZT8ibVx4ZTFudVx4ZjAiOiJtXHhlMW51XHhmMGkiKTtjYXNlInkiOnJldHVybiBRfHxyZT8iXHhlMXIiOiJceGUxcmkiO2Nhc2UieXkiOnJldHVybiBCKFUpP2FlKyhRfHxyZT8iXHhlMXIiOiJceGUxcnVtIik6YWUrKFF8fHJlPyJceGUxciI6Ilx4ZTFy''@;'; put 'put ''aSIpfX1tZS5kZWZpbmVMb2NhbGUoImlzIix7bW9udGhzOiJqYW5ceGZhYXJfZmViclx4ZmFhcl9tYXJzX2Fwclx4ZWRsX21hXHhlZF9qXHhmYW5ceGVkX2pceGZhbFx4ZWRfXHhlMWdceGZhc3Rfc2VwdGVtYmVyX29rdFx4ZjNiZXJfblx4ZjN2ZW1iZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiks''@;'; put 'put ''bW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYVx4ZWRfalx4ZmFuX2pceGZhbF9ceGUxZ1x4ZmFfc2VwX29rdF9uXHhmM3ZfZGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzdW5udWRhZ3VyX21ceGUxbnVkYWd1cl9ceGZlcmlceGYwanVkYWd1cl9taVx4ZjB2aWt1ZGFndXJfZmltbXR1''@;'; put 'put ''ZGFndXJfZlx4ZjZzdHVkYWd1cl9sYXVnYXJkYWd1ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJzdW5fbVx4ZTFuX1x4ZmVyaV9taVx4ZjBfZmltX2ZceGY2c19sYXUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN1X01ceGUxX1x4ZGVyX01pX0ZpX0ZceGY2X0xhIi5zcGxpdCgiXyIp''@;'; put 'put ''LGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBba2wuXSBIOm1tIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgW2tsLl0gSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHhl''@;'; put 'put ''ZCBkYWcga2wuXSBMVCIsbmV4dERheToiW1x4ZTEgbW9yZ3VuIGtsLl0gTFQiLG5leHRXZWVrOiJkZGRkIFtrbC5dIExUIixsYXN0RGF5OiJbXHhlZCBnXHhlNnIga2wuXSBMVCIsbGFzdFdlZWs6IltzXHhlZFx4ZjBhc3RhXSBkZGRkIFtrbC5dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZl''@;'; put 'put ''VGltZTp7ZnV0dXJlOiJlZnRpciAlcyIscGFzdDoiZnlyaXIgJXMgc1x4ZWRceGYwYW4iLHM6RSxzczpFLG06RSxtbTpFLGg6ImtsdWtrdXN0dW5kIixoaDpFLGQ6RSxkZDpFLE06RSxNTTpFLHk6RSx5eTpFfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVk''@;'; put 'put ''LiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMjk5ODU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJpdC1jaCIse21vbnRoczoiZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdub19s''@;'; put 'put ''dWdsaW9fYWdvc3RvX3NldHRlbWJyZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9tZW5pY2FfbHVuZWRceGVjX21h''@;'; put 'put ''cnRlZFx4ZWNfbWVyY29sZWRceGVjX2dpb3ZlZFx4ZWNfdmVuZXJkXHhlY19zYWJhdG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tZV9naV92ZV9zYSIuc3BsaXQoIl8iKSxs''@;'; put 'put ''b25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW09nZ2kgYWxsZV0gTFQiLG5l''@;'; put 'put ''eHREYXk6IltEb21hbmkgYWxsZV0gTFQiLG5leHRXZWVrOiJkZGRkIFthbGxlXSBMVCIsbGFzdERheToiW0llcmkgYWxsZV0gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLmRheSgpPyJbbGEgc2NvcnNhXSBkZGRkIFthbGxlXSBMVCI6IltsbyBzY29yc29dIGRkZGQg''@;'; put 'put ''W2FsbGVdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihFKXtyZXR1cm4oL15bMC05XS4rJC8udGVzdChFKT8idHJhIjoiaW4iKSsiICIrRX0scGFzdDoiJXMgZmEiLHM6ImFsY3VuaSBzZWNvbmRpIixzczoiJWQgc2Vjb25kaSIsbToidW4gbWludXRv''@;'; put 'put ''IixtbToiJWQgbWludXRpIixoOiJ1bidvcmEiLGhoOiIlZCBvcmUiLGQ6InVuIGdpb3JubyIsZGQ6IiVkIGdpb3JuaSIsTToidW4gbWVzZSIsTU06IiVkIG1lc2kiLHk6InVuIGFubm8iLHl5OiIlZCBhbm5pIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVx4YmEvLG9yZGluYWw6''@;'; put 'put ''IiVkXHhiYSIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMzQyMTE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJpdCIse21vbnRoczoiZ2VubmFpb19mZWJicmFpb19tYXJ6b19hcHJpbGVfbWFnZ2lvX2dpdWdu''@;'; put 'put ''b19sdWdsaW9fYWdvc3RvX3NldHRlbWJyZV9vdHRvYnJlX25vdmVtYnJlX2RpY2VtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJnZW5fZmViX21hcl9hcHJfbWFnX2dpdV9sdWdfYWdvX3NldF9vdHRfbm92X2RpYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9tZW5pY2FfbHVuZWRceGVj''@;'; put 'put ''X21hcnRlZFx4ZWNfbWVyY29sZWRceGVjX2dpb3ZlZFx4ZWNfdmVuZXJkXHhlY19zYWJhdG8iLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiZG9tX2x1bl9tYXJfbWVyX2dpb192ZW5fc2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJkb19sdV9tYV9tZV9naV92ZV9zYSIuc3BsaXQoIl8i''@;'; put 'put ''KSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheTpmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biJbT2dnaSBhIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbmV4dERheTpmdW5jdGlvbigpe3JldHVybiJbRG9tYW5pIGEiKyh0aGlzLmhvdXJzKCk+MT8ibGxlICI6MD09PXRoaXMuaG91cnMoKT8iICI6ImxsJyIpKyJdTFQifSxu''@;'; put 'put ''ZXh0V2VlazpmdW5jdGlvbigpe3JldHVybiJkZGRkIFthIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sbGFzdERheTpmdW5jdGlvbigpe3JldHVybiJbSWVyaSBhIisodGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJz''@;'; put 'put ''KCk/IiAiOiJsbCciKSsiXUxUIn0sbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZGF5KCk/IltMYSBzY29yc2FdIGRkZGQgW2EiKyh0aGlzLmhvdXJzKCk+MT8ibGxlICI6MD09PXRoaXMuaG91cnMoKT8iICI6ImxsJyIpKyJdTFQiOiJbTG8gc2NvcnNvXSBkZGRkIFthIiso''@;'; put 'put ''dGhpcy5ob3VycygpPjE/ImxsZSAiOjA9PT10aGlzLmhvdXJzKCk/IiAiOiJsbCciKSsiXUxUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToidHJhICVzIixwYXN0OiIlcyBmYSIsczoiYWxjdW5pIHNlY29uZGkiLHNzOiIlZCBzZWNvbmRpIixtOiJ1biBtaW51dG8iLG1t''@;'; put 'put ''OiIlZCBtaW51dGkiLGg6InVuJ29yYSIsaGg6IiVkIG9yZSIsZDoidW4gZ2lvcm5vIixkZDoiJWQgZ2lvcm5pIix3OiJ1bmEgc2V0dGltYW5hIix3dzoiJWQgc2V0dGltYW5lIixNOiJ1biBtZXNlIixNTToiJWQgbWVzaSIseToidW4gYW5ubyIseXk6IiVkIGFubmkifSxkYXlPZk1vbnRoT3Jk''@;'; put 'put ''aW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzMTAwMzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImphIix7ZXJhczpbe3NpbmNlOiIyMDE5''@;'; put 'put ''LTA1LTAxIixvZmZzZXQ6MSxuYW1lOiJcdTRlZTRcdTU0OGMiLG5hcnJvdzoiXHUzMmZmIixhYmJyOiJSIn0se3NpbmNlOiIxOTg5LTAxLTA4Iix1bnRpbDoiMjAxOS0wNC0zMCIsb2Zmc2V0OjEsbmFtZToiXHU1ZTczXHU2MjEwIixuYXJyb3c6Ilx1MzM3YiIsYWJicjoiSCJ9LHtzaW5jZToi''@;'; put 'put ''MTkyNi0xMi0yNSIsdW50aWw6IjE5ODktMDEtMDciLG9mZnNldDoxLG5hbWU6Ilx1NjYyZFx1NTQ4YyIsbmFycm93OiJcdTMzN2MiLGFiYnI6IlMifSx7c2luY2U6IjE5MTItMDctMzAiLHVudGlsOiIxOTI2LTEyLTI0IixvZmZzZXQ6MSxuYW1lOiJcdTU5MjdcdTZiNjMiLG5hcnJvdzoiXHUz''@;'; put 'put ''MzdkIixhYmJyOiJUIn0se3NpbmNlOiIxODczLTAxLTAxIix1bnRpbDoiMTkxMi0wNy0yOSIsb2Zmc2V0OjYsbmFtZToiXHU2NjBlXHU2Y2JiIixuYXJyb3c6Ilx1MzM3ZSIsYWJicjoiTSJ9LHtzaW5jZToiMDAwMS0wMS0wMSIsdW50aWw6IjE4NzMtMTItMzEiLG9mZnNldDoxLG5hbWU6Ilx1''@;'; put 'put ''ODk3Zlx1NjZhNiIsbmFycm93OiJBRCIsYWJicjoiQUQifSx7c2luY2U6IjAwMDAtMTItMzEiLHVudGlsOi0xLzAsb2Zmc2V0OjEsbmFtZToiXHU3ZDAwXHU1MTQzXHU1MjRkIixuYXJyb3c6IkJDIixhYmJyOiJCQyJ9XSxlcmFZZWFyT3JkaW5hbFJlZ2V4Oi8oXHU1MTQzfFxkKylcdTVlNzQv''@;'; put 'put ''LGVyYVllYXJPcmRpbmFsUGFyc2U6ZnVuY3Rpb24oRSxFZSl7cmV0dXJuIlx1NTE0MyI9PT1FZVsxXT8xOnBhcnNlSW50KEVlWzFdfHxFLDEwKX0sbW9udGhzOiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1NjcwOF8x''@;'; put 'put ''MFx1NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1NjcwOF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vl''@;'; put 'put ''a2RheXM6Ilx1NjVlNVx1NjZkY1x1NjVlNV9cdTY3MDhcdTY2ZGNcdTY1ZTVfXHU3MDZiXHU2NmRjXHU2NWU1X1x1NmMzNFx1NjZkY1x1NjVlNV9cdTY3MjhcdTY2ZGNcdTY1ZTVfXHU5MWQxXHU2NmRjXHU2NWU1X1x1NTcxZlx1NjZkY1x1NjVlNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0''@;'; put 'put ''OiJcdTY1ZTVfXHU2NzA4X1x1NzA2Yl9cdTZjMzRfXHU2NzI4X1x1OTFkMV9cdTU3MWYiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1NjVlNV9cdTY3MDhfXHU3MDZiX1x1NmMzNF9cdTY3MjhfXHU5MWQxX1x1NTcxZiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixM''@;'; put 'put ''VFM6IkhIOm1tOnNzIixMOiJZWVlZL01NL0REIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IGRkZGQgSEg6bW0iLGw6IllZWVkvTU0vREQiLGxsOiJZWVlZXHU1''@;'; put 'put ''ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUoZGRkKSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1NTM0OFx1NTI0ZHxcdTUzNDhcdTVmOGMvaSxpc1BNOmZ1bmN0aW9uKEUpe3JldHVy''@;'; put 'put ''biJcdTUzNDhcdTVmOGMiPT09RX0sbWVyaWRpZW06ZnVuY3Rpb24oRSxFZSxVKXtyZXR1cm4gRTwxMj8iXHU1MzQ4XHU1MjRkIjoiXHU1MzQ4XHU1ZjhjIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTY1ZTVdIExUIixuZXh0RGF5OiJbXHU2NjBlXHU2NWU1XSBMVCIsbmV4dFdlZWs6''@;'; put 'put ''ZnVuY3Rpb24oRSl7cmV0dXJuIEUud2VlaygpIT09dGhpcy53ZWVrKCk/IltcdTY3NjVcdTkwMzFdZGRkZCBMVCI6ImRkZGQgTFQifSxsYXN0RGF5OiJbXHU2NjI4XHU2NWU1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMud2VlaygpIT09RS53ZWVrKCk/IltcdTUxNDhc''@;'; put 'put ''dTkwMzFdZGRkZCBMVCI6ImRkZGQgTFQifSxzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTY1ZTUvLG9yZGluYWw6ZnVuY3Rpb24oRSxFZSl7c3dpdGNoKEVlKXtjYXNlInkiOnJldHVybiAxPT09RT8iXHU1MTQzXHU1ZTc0IjpFKyJcdTVlNzQiO2Nhc2Ui''@;'; put 'put ''ZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIEUrIlx1NjVlNSI7ZGVmYXVsdDpyZXR1cm4gRX19LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NWY4YyIscGFzdDoiJXNcdTUyNGQiLHM6Ilx1NjU3MFx1NzlkMiIsc3M6IiVkXHU3OWQyIixtOiIxXHU1MjA2IixtbToiJWRcdTUyMDYiLGg6''@;'; put 'put ''IjFcdTY2NDJcdTk1OTMiLGhoOiIlZFx1NjY0Mlx1OTU5MyIsZDoiMVx1NjVlNSIsZGQ6IiVkXHU2NWU1IixNOiIxXHUzMGY2XHU2NzA4IixNTToiJWRcdTMwZjZcdTY3MDgiLHk6IjFcdTVlNzQiLHl5OiIlZFx1NWU3NCJ9fSl9KEwoMTU0MzkpKX0sNjA0MjA6ZnVuY3Rpb24oWGUsSmUsTCl7''@;'; put 'put ''IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJqdiIse21vbnRoczoiSmFudWFyaV9GZWJydWFyaV9NYXJldF9BcHJpbF9NZWlfSnVuaV9KdWxpX0FndXN0dXNfU2VwdGVtYmVyX09rdG9iZXJfTm9wZW1iZXJfRGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hv''@;'; put 'put ''cnQ6Ikphbl9GZWJfTWFyX0Fwcl9NZWlfSnVuX0p1bF9BZ3NfU2VwX09rdF9Ob3BfRGVzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJNaW5nZ3VfU2VuZW5fU2Vsb3NvX1JlYnVfS2VtaXNfSmVtdXdhaF9TZXB0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJNaW5fU2VuX1NlbF9SZWJfS2Vt''@;'; put 'put ''X0plbV9TZXAiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ik1nX1NuX1NsX1JiX0ttX0ptX1NwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxd''@;'; put 'put ''IEhILm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovZW5qaW5nfHNpeWFuZ3xzb250ZW58bmRhbHUvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLEVlKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiZW5qaW5nIj09PUVlP0U6InNpeWFuZyI9''@;'; put 'put ''PT1FZT9FPj0xMT9FOkUrMTI6InNvbnRlbiI9PT1FZXx8Im5kYWx1Ij09PUVlP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLEVlLFUpe3JldHVybiBFPDExPyJlbmppbmciOkU8MTU/InNpeWFuZyI6RTwxOT8ic29udGVuIjoibmRhbHUifSxjYWxlbmRhcjp7c2FtZURheToiW0Rp''@;'; put 'put ''bnRlbiBwdW5pa28gcHVrdWxdIExUIixuZXh0RGF5OiJbTWJlbmphbmcgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixsYXN0RGF5OiJbS2FsYSB3aW5naSBwdWt1bF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtrZXBlbmdrZXIgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJl''@;'; put 'put ''bGF0aXZlVGltZTp7ZnV0dXJlOiJ3b250ZW4gaW5nICVzIixwYXN0OiIlcyBpbmdrYW5nIGtlcGVuZ2tlciIsczoic2F3ZXRhd2lzIGRldGlrIixzczoiJWQgZGV0aWsiLG06InNldHVuZ2dhbCBtZW5pdCIsbW06IiVkIG1lbml0IixoOiJzZXR1bmdnYWwgamFtIixoaDoiJWQgamFtIixkOiJz''@;'; put 'put ''ZWRpbnRlbiIsZGQ6IiVkIGRpbnRlbiIsTToic2V3dWxhbiIsTU06IiVkIHd1bGFuIix5OiJzZXRhdW4iLHl5OiIlZCB0YXVuIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNDA4NTE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVm''@;'; put 'put ''aW5lTG9jYWxlKCJrYSIse21vbnRoczoiXHUxMGQ4XHUxMGQwXHUxMGRjXHUxMGQ1XHUxMGQwXHUxMGUwXHUxMGQ4X1x1MTBkN1x1MTBkNFx1MTBkMVx1MTBkNFx1MTBlMFx1MTBkNVx1MTBkMFx1MTBkYVx1MTBkOF9cdTEwZGJcdTEwZDBcdTEwZTBcdTEwZTJcdTEwZDhfXHUxMGQwXHUxMGRl''@;'; put 'put ''XHUxMGUwXHUxMGQ4XHUxMGRhXHUxMGQ4X1x1MTBkYlx1MTBkMFx1MTBkOFx1MTBlMVx1MTBkOF9cdTEwZDhcdTEwZDVcdTEwZGNcdTEwZDhcdTEwZTFcdTEwZDhfXHUxMGQ4XHUxMGQ1XHUxMGRhXHUxMGQ4XHUxMGUxXHUxMGQ4X1x1MTBkMFx1MTBkMlx1MTBkNVx1MTBkOFx1MTBlMVx1MTBl''@;'; put 'put ''Mlx1MTBkZF9cdTEwZTFcdTEwZDRcdTEwZTVcdTEwZTJcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDhfXHUxMGRkXHUxMGU1XHUxMGUyXHUxMGRkXHUxMGRiXHUxMGQxXHUxMGQ0XHUxMGUwXHUxMGQ4X1x1MTBkY1x1MTBkZFx1MTBkNFx1MTBkYlx1MTBkMVx1MTBkNFx1MTBl''@;'; put 'put ''MFx1MTBkOF9cdTEwZDNcdTEwZDRcdTEwZDlcdTEwZDRcdTEwZGJcdTEwZDFcdTEwZDRcdTEwZTBcdTEwZDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MTBkOFx1MTBkMFx1MTBkY19cdTEwZDdcdTEwZDRcdTEwZDFfXHUxMGRiXHUxMGQwXHUxMGUwX1x1MTBkMFx1MTBkZVx1MTBlMF9c''@;'; put 'put ''dTEwZGJcdTEwZDBcdTEwZDhfXHUxMGQ4XHUxMGQ1XHUxMGRjX1x1MTBkOFx1MTBkNVx1MTBkYV9cdTEwZDBcdTEwZDJcdTEwZDVfXHUxMGUxXHUxMGQ0XHUxMGU1X1x1MTBkZFx1MTBlNVx1MTBlMl9cdTEwZGNcdTEwZGRcdTEwZDRfXHUxMGQzXHUxMGQ0XHUxMGQ5Ii5zcGxpdCgiXyIpLHdl''@;'; put 'put ''ZWtkYXlzOntzdGFuZGFsb25lOiJcdTEwZDlcdTEwZDVcdTEwZDhcdTEwZTBcdTEwZDBfXHUxMGRkXHUxMGUwXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1MTBlMVx1MTBkMFx1MTBkYlx1MTBlOFx1MTBkMFx1MTBkMVx1MTBkMFx1MTBkN1x1MTBkOF9cdTEwZGRcdTEw''@;'; put 'put ''ZDdcdTEwZWVcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZDhfXHUxMGVlXHUxMGUzXHUxMGQ3XHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGQ4X1x1MTBkZVx1MTBkMFx1MTBlMFx1MTBkMFx1MTBlMVx1MTBkOVx1MTBkNFx1MTBkNVx1MTBkOF9cdTEwZThcdTEw''@;'; put 'put ''ZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZDgiLnNwbGl0KCJfIiksZm9ybWF0OiJcdTEwZDlcdTEwZDVcdTEwZDhcdTEwZTBcdTEwZDBcdTEwZTFfXHUxMGRkXHUxMGUwXHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBlMVx1MTBkMFx1MTBkYlx1MTBlOFx1MTBkMFx1''@;'; put 'put ''MTBkMVx1MTBkMFx1MTBkN1x1MTBlMV9cdTEwZGRcdTEwZDdcdTEwZWVcdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTFfXHUxMGVlXHUxMGUzXHUxMGQ3XHUxMGU4XHUxMGQwXHUxMGQxXHUxMGQwXHUxMGQ3XHUxMGUxX1x1MTBkZVx1MTBkMFx1MTBlMFx1MTBkMFx1MTBlMVx1''@;'; put 'put ''MTBkOVx1MTBkNFx1MTBkNVx1MTBlMV9cdTEwZThcdTEwZDBcdTEwZDFcdTEwZDBcdTEwZDdcdTEwZTEiLnNwbGl0KCJfIiksaXNGb3JtYXQ6LyhcdTEwZWNcdTEwZDhcdTEwZGNcdTEwZDB8XHUxMGU4XHUxMGQ0XHUxMGRiXHUxMGQzXHUxMGQ0XHUxMGQyKS99LHdlZWtkYXlzU2hvcnQ6Ilx1''@;'; put 'put ''MTBkOVx1MTBkNVx1MTBkOF9cdTEwZGRcdTEwZTBcdTEwZThfXHUxMGUxXHUxMGQwXHUxMGRiX1x1MTBkZFx1MTBkN1x1MTBlZV9cdTEwZWVcdTEwZTNcdTEwZDdfXHUxMGRlXHUxMGQwXHUxMGUwX1x1MTBlOFx1MTBkMFx1MTBkMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxMGQ5XHUx''@;'; put 'put ''MGQ1X1x1MTBkZFx1MTBlMF9cdTEwZTFcdTEwZDBfXHUxMGRkXHUxMGQ3X1x1MTBlZVx1MTBlM19cdTEwZGVcdTEwZDBfXHUxMGU4XHUxMGQwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZ''@;'; put 'put ''WSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MTBkM1x1MTBlNlx1MTBkNFx1MTBlMV0gTFRbLVx1MTBkNlx1MTBkNF0iLG5leHREYXk6IltcdTEwZWVcdTEwZDVcdTEwZDBcdTEwZGFdIExUWy1c''@;'; put 'put ''dTEwZDZcdTEwZDRdIixsYXN0RGF5OiJbXHUxMGQyXHUxMGUzXHUxMGU4XHUxMGQ4XHUxMGRjXSBMVFstXHUxMGQ2XHUxMGQ0XSIsbmV4dFdlZWs6IltcdTEwZThcdTEwZDRcdTEwZGJcdTEwZDNcdTEwZDRcdTEwZDJdIGRkZGQgTFRbLVx1MTBkNlx1MTBkNF0iLGxhc3RXZWVrOiJbXHUxMGVj''@;'; put 'put ''XHUxMGQ4XHUxMGRjXHUxMGQwXSBkZGRkIExULVx1MTBkNlx1MTBkNCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZTpmdW5jdGlvbihFKXtyZXR1cm4gRS5yZXBsYWNlKC8oXHUxMGVjXHUxMGQwXHUxMGRifFx1MTBlY1x1MTBlM1x1MTBkN3xcdTEwZTFcdTEwZDBcdTEwZDBc''@;'; put 'put ''dTEwZDd8XHUxMGVjXHUxMGQ0XHUxMGRhfFx1MTBkM1x1MTBlNnxcdTEwZDdcdTEwZDUpKFx1MTBkOHxcdTEwZDQpLyxmdW5jdGlvbihFZSxVLFEpe3JldHVybiJcdTEwZDgiPT09UT9VKyJcdTEwZThcdTEwZDgiOlUrUSsiXHUxMGU4XHUxMGQ4In0pfSxwYXN0OmZ1bmN0aW9uKEUpe3JldHVy''@;'; put 'put ''bi8oXHUxMGVjXHUxMGQwXHUxMGRiXHUxMGQ4fFx1MTBlY1x1MTBlM1x1MTBkN1x1MTBkOHxcdTEwZTFcdTEwZDBcdTEwZDBcdTEwZDdcdTEwZDh8XHUxMGQzXHUxMGU2XHUxMGQ0fFx1MTBkN1x1MTBkNVx1MTBkNCkvLnRlc3QoRSk/RS5yZXBsYWNlKC8oXHUxMGQ4fFx1MTBkNCkkLywiXHUx''@;'; put 'put ''MGQ4XHUxMGUxIFx1MTBlY1x1MTBkOFx1MTBkYyIpOi9cdTEwZWNcdTEwZDRcdTEwZGFcdTEwZDgvLnRlc3QoRSk/RS5yZXBsYWNlKC9cdTEwZWNcdTEwZDRcdTEwZGFcdTEwZDgkLywiXHUxMGVjXHUxMGRhXHUxMGQ4XHUxMGUxIFx1MTBlY1x1MTBkOFx1MTBkYyIpOkV9LHM6Ilx1MTBlMFx1''@;'; put 'put ''MTBkMFx1MTBkYlx1MTBkM1x1MTBkNFx1MTBkY1x1MTBkOFx1MTBkYlx1MTBkNCBcdTEwZWNcdTEwZDBcdTEwZGJcdTEwZDgiLHNzOiIlZCBcdTEwZWNcdTEwZDBcdTEwZGJcdTEwZDgiLG06Ilx1MTBlY1x1MTBlM1x1MTBkN1x1MTBkOCIsbW06IiVkIFx1MTBlY1x1MTBlM1x1MTBkN1x1MTBk''@;'; put 'put ''OCIsaDoiXHUxMGUxXHUxMGQwXHUxMGQwXHUxMGQ3XHUxMGQ4IixoaDoiJWQgXHUxMGUxXHUxMGQwXHUxMGQwXHUxMGQ3XHUxMGQ4IixkOiJcdTEwZDNcdTEwZTZcdTEwZDQiLGRkOiIlZCBcdTEwZDNcdTEwZTZcdTEwZDQiLE06Ilx1MTBkN1x1MTBkNVx1MTBkNCIsTU06IiVkIFx1MTBkN1x1''@;'; put 'put ''MTBkNVx1MTBkNCIseToiXHUxMGVjXHUxMGQ0XHUxMGRhXHUxMGQ4Iix5eToiJWQgXHUxMGVjXHUxMGQ0XHUxMGRhXHUxMGQ4In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovMHwxLVx1MTBkYVx1MTBkOHxcdTEwZGJcdTEwZDQtXGR7MSwyfXxcZHsxLDJ9LVx1MTBkNC8sb3JkaW5hbDpmdW5j''@;'; put 'put ''dGlvbihFKXtyZXR1cm4gMD09PUU/RToxPT09RT9FKyItXHUxMGRhXHUxMGQ4IjpFPDIwfHxFPD0xMDAmJkUlMjA9PTB8fEUlMTAwPT0wPyJcdTEwZGJcdTEwZDQtIitFOkUrIi1cdTEwZDQifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwxNjA3NDpmdW5jdGlvbihYZSxKZSxM''@;'; put 'put ''KXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MDoiLVx1MDQ0OFx1MDQ1NiIsMToiLVx1MDQ0OFx1MDQ1NiIsMjoiLVx1MDQ0OFx1MDQ1NiIsMzoiLVx1MDQ0OFx1MDQ1NiIsNDoiLVx1MDQ0OFx1MDQ1NiIsNToiLVx1MDQ0OFx1MDQ1NiIsNjoiLVx1MDQ0OFx1MDQ0YiIsNzoi''@;'; put 'put ''LVx1MDQ0OFx1MDQ1NiIsODoiLVx1MDQ0OFx1MDQ1NiIsOToiLVx1MDQ0OFx1MDQ0YiIsMTA6Ii1cdTA0NDhcdTA0NGIiLDIwOiItXHUwNDQ4XHUwNDRiIiwzMDoiLVx1MDQ0OFx1MDQ0YiIsNDA6Ii1cdTA0NDhcdTA0NGIiLDUwOiItXHUwNDQ4XHUwNDU2Iiw2MDoiLVx1MDQ0OFx1MDQ0YiIs''@;'; put 'put ''NzA6Ii1cdTA0NDhcdTA0NTYiLDgwOiItXHUwNDQ4XHUwNDU2Iiw5MDoiLVx1MDQ0OFx1MDQ0YiIsMTAwOiItXHUwNDQ4XHUwNDU2In07bWUuZGVmaW5lTG9jYWxlKCJrayIse21vbnRoczoiXHUwNDliXHUwNDMwXHUwNGEzXHUwNDQyXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQ5Ylx1MDQzZlx1''@;'; put 'put ''MDQzMFx1MDQzZF9cdTA0M2RcdTA0MzBcdTA0NDNcdTA0NDBcdTA0NGJcdTA0MzdfXHUwNDQxXHUwNGQ5XHUwNDQzXHUwNDU2XHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQzY1x1MDQ0Ylx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NDNcdTA0NDFcdTA0NGJcdTA0M2NfXHUwNDQ4XHUwNDU2XHUwNDNi''@;'; put 'put ''XHUwNDM0XHUwNDM1X1x1MDQ0Mlx1MDQzMFx1MDQzY1x1MDQ0Ylx1MDQzN19cdTA0OWJcdTA0NGJcdTA0NDBcdTA0M2FcdTA0YWZcdTA0MzlcdTA0MzVcdTA0M2FfXHUwNDliXHUwNDMwXHUwNDM3XHUwNDMwXHUwNDNkX1x1MDQ5Ylx1MDQzMFx1MDQ0MFx1MDQzMFx1MDQ0OFx1MDQzMF9cdTA0''@;'; put 'put ''MzZcdTA0MzVcdTA0M2JcdTA0NDJcdTA0M2VcdTA0OWJcdTA0NDFcdTA0MzBcdTA0M2QiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MDQ5Ylx1MDQzMFx1MDRhM19cdTA0MzBcdTA0OWJcdTA0M2ZfXHUwNDNkXHUwNDMwXHUwNDQzX1x1MDQ0MVx1MDRkOVx1MDQ0M19cdTA0M2NcdTA0MzBc''@;'; put 'put ''dTA0M2NfXHUwNDNjXHUwNDMwXHUwNDQzX1x1MDQ0OFx1MDQ1Nlx1MDQzYl9cdTA0NDJcdTA0MzBcdTA0M2NfXHUwNDliXHUwNDRiXHUwNDQwX1x1MDQ5Ylx1MDQzMFx1MDQzN19cdTA0OWJcdTA0MzBcdTA0NDBfXHUwNDM2XHUwNDM1XHUwNDNiIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0''@;'; put 'put ''MzZcdTA0MzVcdTA0M2FcdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTZfXHUwNDM0XHUwNGFmXHUwNDM5XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQ0MVx1MDQzNVx1MDQzOVx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQzMVx1MDQ1Nl9cdTA0NDFcdTA0ZDlcdTA0NDBcdTA0''@;'; put 'put ''NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTZfXHUwNDMxXHUwNDM1XHUwNDM5XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDMxXHUwNDU2X1x1MDQzNlx1MDRiMVx1MDQzY1x1MDQzMF9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0MzFcdTA0NTYiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDM2''@;'; put 'put ''XHUwNDM1XHUwNDNhX1x1MDQzNFx1MDRhZlx1MDQzOV9cdTA0NDFcdTA0MzVcdTA0MzlfXHUwNDQxXHUwNGQ5XHUwNDQwX1x1MDQzMVx1MDQzNVx1MDQzOV9cdTA0MzZcdTA0YjFcdTA0M2NfXHUwNDQxXHUwNDM1XHUwNDNkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0MzZcdTA0M2Ff''@;'; put 'put ''XHUwNDM0XHUwNDM5X1x1MDQ0MVx1MDQzOV9cdTA0NDFcdTA0NDBfXHUwNDMxXHUwNDM5X1x1MDQzNlx1MDQzY19cdTA0NDFcdTA0M2QiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixM''@;'; put 'put ''TEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDExXHUwNGFmXHUwNDMzXHUwNDU2XHUwNDNkIFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLG5leHREYXk6IltcdTA0MTVcdTA0NDBc''@;'; put 'put ''dTA0NDJcdTA0MzVcdTA0YTMgXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMwXHUwNDQyXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0Ml0gTFQiLGxhc3REYXk6IltcdTA0MWFcdTA0MzVcdTA0NDhcdTA0MzUgXHUwNDQxXHUwNDMwXHUwNDkzXHUwNDMw''@;'; put 'put ''XHUwNDQyXSBMVCIsbGFzdFdlZWs6IltcdTA0ZThcdTA0NDJcdTA0M2FcdTA0MzVcdTA0M2QgXHUwNDMwXHUwNDNmXHUwNDQyXHUwNDMwXHUwNDNkXHUwNDRiXHUwNGEzXSBkZGRkIFtcdTA0NDFcdTA0MzBcdTA0OTNcdTA0MzBcdTA0NDJdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGlt''@;'; put 'put ''ZTp7ZnV0dXJlOiIlcyBcdTA0NTZcdTA0NDhcdTA0NTZcdTA0M2RcdTA0MzRcdTA0MzUiLHBhc3Q6IiVzIFx1MDQzMVx1MDRiMVx1MDQ0MFx1MDQ0Ylx1MDQzZCIsczoiXHUwNDMxXHUwNDU2XHUwNDQwXHUwNDNkXHUwNDM1XHUwNDQ4XHUwNDM1IFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1''@;'; put 'put ''MDQzZFx1MDQzNCIsc3M6IiVkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsbToiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiIsbW06IiVkIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiIsaDoiXHUwNDMxXHUwNDU2''@;'; put 'put ''XHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0MiIsaGg6IiVkIFx1MDQ0MVx1MDQzMFx1MDQ5M1x1MDQzMFx1MDQ0MiIsZDoiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQzYVx1MDRhZlx1MDQzZCIsZGQ6IiVkIFx1MDQzYVx1MDRhZlx1MDQzZCIsTToiXHUwNDMxXHUwNDU2XHUw''@;'; put 'put ''NDQwIFx1MDQzMFx1MDQzOSIsTU06IiVkIFx1MDQzMFx1MDQzOSIseToiXHUwNDMxXHUwNDU2XHUwNDQwIFx1MDQzNlx1MDQ0Ylx1MDQzYiIseXk6IiVkIFx1MDQzNlx1MDQ0Ylx1MDQzYiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ0OFx1MDQ1NnxcdTA0NDhcdTA0''@;'; put 'put ''NGIpLyxvcmRpbmFsOmZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUrKEJbRWVdfHxCW0VlJTEwXXx8QltFZT49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDUzMzQzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBC''@;'; put 'put ''PXsxOiJcdTE3ZTEiLDI6Ilx1MTdlMiIsMzoiXHUxN2UzIiw0OiJcdTE3ZTQiLDU6Ilx1MTdlNSIsNjoiXHUxN2U2Iiw3OiJcdTE3ZTciLDg6Ilx1MTdlOCIsOToiXHUxN2U5IiwwOiJcdTE3ZTAifSxFPXsiXHUxN2UxIjoiMSIsIlx1MTdlMiI6IjIiLCJcdTE3ZTMiOiIzIiwiXHUxN2U0Ijoi''@;'; put 'put ''NCIsIlx1MTdlNSI6IjUiLCJcdTE3ZTYiOiI2IiwiXHUxN2U3IjoiNyIsIlx1MTdlOCI6IjgiLCJcdTE3ZTkiOiI5IiwiXHUxN2UwIjoiMCJ9O21lLmRlZmluZUxvY2FsZSgia20iLHttb250aHM6Ilx1MTc5OFx1MTc4MFx1MTc5YVx1MTdiNl9cdTE3ODBcdTE3YmJcdTE3OThcdTE3ZDJcdTE3''@;'; put 'put ''OTdcdTE3YzhfXHUxNzk4XHUxN2I4XHUxNzkzXHUxN2I2X1x1MTc5OFx1MTdjMVx1MTc5Zlx1MTdiNl9cdTE3YTdcdTE3OWZcdTE3OTdcdTE3YjZfXHUxNzk4XHUxN2I3XHUxNzkwXHUxN2JiXHUxNzkzXHUxN2I2X1x1MTc4MFx1MTc4MFx1MTdkMlx1MTc4MFx1MTc4YVx1MTdiNl9cdTE3OWZc''@;'; put 'put ''dTE3YjhcdTE3YTBcdTE3YjZfXHUxNzgwXHUxNzg5XHUxN2QyXHUxNzg5XHUxN2I2X1x1MTc4Zlx1MTdiYlx1MTc5Ylx1MTdiNl9cdTE3OWNcdTE3YjdcdTE3ODVcdTE3ZDJcdTE3ODZcdTE3YjdcdTE3ODBcdTE3YjZfXHUxNzkyXHUxN2QyXHUxNzkzXHUxN2JjIi5zcGxpdCgiXyIpLG1vbnRo''@;'; put 'put ''c1Nob3J0OiJcdTE3OThcdTE3ODBcdTE3OWFcdTE3YjZfXHUxNzgwXHUxN2JiXHUxNzk4XHUxN2QyXHUxNzk3XHUxN2M4X1x1MTc5OFx1MTdiOFx1MTc5M1x1MTdiNl9cdTE3OThcdTE3YzFcdTE3OWZcdTE3YjZfXHUxN2E3XHUxNzlmXHUxNzk3XHUxN2I2X1x1MTc5OFx1MTdiN1x1MTc5MFx1''@;'; put 'put ''MTdiYlx1MTc5M1x1MTdiNl9cdTE3ODBcdTE3ODBcdTE3ZDJcdTE3ODBcdTE3OGFcdTE3YjZfXHUxNzlmXHUxN2I4XHUxN2EwXHUxN2I2X1x1MTc4MFx1MTc4OVx1MTdkMlx1MTc4OVx1MTdiNl9cdTE3OGZcdTE3YmJcdTE3OWJcdTE3YjZfXHUxNzljXHUxN2I3XHUxNzg1XHUxN2QyXHUxNzg2''@;'; put 'put ''XHUxN2I3XHUxNzgwXHUxN2I2X1x1MTc5Mlx1MTdkMlx1MTc5M1x1MTdiYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUxN2EyXHUxN2I2XHUxNzkxXHUxN2I3XHUxNzhmXHUxN2QyXHUxNzk5X1x1MTc4NVx1MTdkMFx1MTc5M1x1MTdkMlx1MTc5MV9cdTE3YTJcdTE3ODRcdTE3ZDJcdTE3ODJc''@;'; put 'put ''dTE3YjZcdTE3OWFfXHUxNzk2XHUxN2JiXHUxNzkyX1x1MTc5Nlx1MTdkMlx1MTc5YVx1MTdhMFx1MTc5Zlx1MTdkMlx1MTc5NFx1MTc4Zlx1MTdiN1x1MTdjZF9cdTE3OWZcdTE3YmJcdTE3ODBcdTE3ZDJcdTE3OWFfXHUxNzlmXHUxN2M1XHUxNzlhXHUxN2NkIi5zcGxpdCgiXyIpLHdlZWtk''@;'; put 'put ''YXlzU2hvcnQ6Ilx1MTdhMlx1MTdiNl9cdTE3ODVfXHUxN2EyX1x1MTc5Nl9cdTE3OTZcdTE3ZDJcdTE3OWFfXHUxNzlmXHUxN2JiX1x1MTc5ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUxN2EyXHUxN2I2X1x1MTc4NV9cdTE3YTJfXHUxNzk2X1x1MTc5Nlx1MTdkMlx1MTc5YV9cdTE3''@;'; put 'put ''OWZcdTE3YmJfXHUxNzlmIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1N''@;'; put 'put ''TSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUxNzk2XHUxN2QyXHUxNzlhXHUxN2I5XHUxNzgwfFx1MTc5Ylx1MTdkMlx1MTc4NFx1MTdiNlx1MTc4NS8saXNQTTpmdW5jdGlvbihVKXtyZXR1cm4iXHUxNzliXHUxN2QyXHUxNzg0XHUxN2I2XHUxNzg1Ij09PVV9LG1lcmlkaWVtOmZ1''@;'; put 'put ''bmN0aW9uKFUsUSxqKXtyZXR1cm4gVTwxMj8iXHUxNzk2XHUxN2QyXHUxNzlhXHUxN2I5XHUxNzgwIjoiXHUxNzliXHUxN2QyXHUxNzg0XHUxN2I2XHUxNzg1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzNcdTE3OTNcdTE3YzFcdTE3YzcgXHUxNzk4XHUx''@;'; put 'put ''N2M5XHUxN2M0XHUxNzg0XSBMVCIsbmV4dERheToiW1x1MTc5Zlx1MTdkMlx1MTdhMlx1MTdjMlx1MTc4MCBcdTE3OThcdTE3YzlcdTE3YzRcdTE3ODRdIExUIixuZXh0V2VlazoiZGRkZCBbXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0XSBMVCIsbGFzdERheToiW1x1MTc5OFx1MTdkMlx1MTc5''@;'; put 'put ''Zlx1MTdiN1x1MTc5Ylx1MTc5OFx1MTdiN1x1MTc4OSBcdTE3OThcdTE3YzlcdTE3YzRcdTE3ODRdIExUIixsYXN0V2VlazoiZGRkZCBbXHUxNzlmXHUxNzk0XHUxN2QyXHUxNzhmXHUxN2I2XHUxN2EwXHUxN2NkXHUxNzk4XHUxN2JiXHUxNzkzXSBbXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0''@;'; put 'put ''XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTE3OTFcdTE3YzBcdTE3OGYiLHBhc3Q6IiVzXHUxNzk4XHUxN2JiXHUxNzkzIixzOiJcdTE3OTRcdTE3YzlcdTE3YmJcdTE3OTNcdTE3ZDJcdTE3OThcdTE3YjZcdTE3OTNcdTE3OWNcdTE3YjdcdTE3OTNcdTE3''@;'; put 'put ''YjZcdTE3OTFcdTE3YjgiLHNzOiIlZCBcdTE3OWNcdTE3YjdcdTE3OTNcdTE3YjZcdTE3OTFcdTE3YjgiLG06Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc5M1x1MTdiNlx1MTc5MVx1MTdiOCIsbW06IiVkIFx1MTc5M1x1MTdiNlx1MTc5MVx1MTdiOCIsaDoiXHUxNzk4XHUxN2JkXHUxNzk5XHUx''@;'; put 'put ''Nzk4XHUxN2M5XHUxN2M0XHUxNzg0IixoaDoiJWQgXHUxNzk4XHUxN2M5XHUxN2M0XHUxNzg0IixkOiJcdTE3OThcdTE3YmRcdTE3OTlcdTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzMiLGRkOiIlZCBcdTE3OTBcdTE3ZDJcdTE3ODRcdTE3YzMiLE06Ilx1MTc5OFx1MTdiZFx1MTc5OVx1MTc4MVx1''@;'; put 'put ''MTdjMiIsTU06IiVkIFx1MTc4MVx1MTdjMiIseToiXHUxNzk4XHUxN2JkXHUxNzk5XHUxNzg2XHUxN2QyXHUxNzkzXHUxN2I2XHUxN2M2Iix5eToiJWQgXHUxNzg2XHUxN2QyXHUxNzkzXHUxN2I2XHUxN2M2In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXHUxNzkxXHUxN2I4XGR7MSwyfS8s''@;'; put 'put ''b3JkaW5hbDoiXHUxNzkxXHUxN2I4JWQiLHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTE3ZTFcdTE3ZTJcdTE3ZTNcdTE3ZTRcdTE3ZTVcdTE3ZTZcdTE3ZTdcdTE3ZThcdTE3ZTlcdTE3ZTBdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1h''@;'; put 'put ''dDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDQ0Nzk5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTBjZTci''@;'; put 'put ''LDI6Ilx1MGNlOCIsMzoiXHUwY2U5Iiw0OiJcdTBjZWEiLDU6Ilx1MGNlYiIsNjoiXHUwY2VjIiw3OiJcdTBjZWQiLDg6Ilx1MGNlZSIsOToiXHUwY2VmIiwwOiJcdTBjZTYifSxFPXsiXHUwY2U3IjoiMSIsIlx1MGNlOCI6IjIiLCJcdTBjZTkiOiIzIiwiXHUwY2VhIjoiNCIsIlx1MGNlYiI6''@;'; put 'put ''IjUiLCJcdTBjZWMiOiI2IiwiXHUwY2VkIjoiNyIsIlx1MGNlZSI6IjgiLCJcdTBjZWYiOiI5IiwiXHUwY2U2IjoiMCJ9O21lLmRlZmluZUxvY2FsZSgia24iLHttb250aHM6Ilx1MGM5Y1x1MGNhOFx1MGNiNVx1MGNiMFx1MGNiZl9cdTBjYWJcdTBjYzZcdTBjYWNcdTBjY2RcdTBjYjBcdTBj''@;'; put 'put ''YjVcdTBjYjBcdTBjYmZfXHUwY2FlXHUwY2JlXHUwY2IwXHUwY2NkXHUwYzlhXHUwY2NkX1x1MGM4Zlx1MGNhYVx1MGNjZFx1MGNiMFx1MGNiZlx1MGNiMlx1MGNjZF9cdTBjYWVcdTBjYzZcdTBjZDVfXHUwYzljXHUwY2MyXHUwY2E4XHUwY2NkX1x1MGM5Y1x1MGNjMVx1MGNiMlx1MGNjNlx1''@;'; put 'put ''MGNkNl9cdTBjODZcdTBjOTdcdTBjYjhcdTBjY2RcdTBjOWZcdTBjY2RfXHUwY2I4XHUwY2M2XHUwY2FhXHUwY2NkXHUwYzlmXHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkX1x1MGM4NVx1MGM5NVx1MGNjZFx1MGM5Zlx1MGNjNlx1MGNjMlx1MGNkNVx1MGNhY1x1MGNiMFx1MGNjZF9c''@;'; put 'put ''dTBjYThcdTBjYjVcdTBjYzZcdTBjODJcdTBjYWNcdTBjYjBcdTBjY2RfXHUwY2ExXHUwY2JmXHUwY2I4XHUwY2M2XHUwYzgyXHUwY2FjXHUwY2IwXHUwY2NkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBjOWNcdTBjYThfXHUwY2FiXHUwY2M2XHUwY2FjXHUwY2NkXHUwY2IwX1x1MGNh''@;'; put 'put ''ZVx1MGNiZVx1MGNiMFx1MGNjZFx1MGM5YVx1MGNjZF9cdTBjOGZcdTBjYWFcdTBjY2RcdTBjYjBcdTBjYmZcdTBjYjJcdTBjY2RfXHUwY2FlXHUwY2M2XHUwY2Q1X1x1MGM5Y1x1MGNjMlx1MGNhOFx1MGNjZF9cdTBjOWNcdTBjYzFcdTBjYjJcdTBjYzZcdTBjZDZfXHUwYzg2XHUwYzk3XHUw''@;'; put 'put ''Y2I4XHUwY2NkXHUwYzlmXHUwY2NkX1x1MGNiOFx1MGNjNlx1MGNhYVx1MGNjZFx1MGM5Zlx1MGNjNlx1MGM4Ml9cdTBjODVcdTBjOTVcdTBjY2RcdTBjOWZcdTBjYzZcdTBjYzJcdTBjZDVfXHUwY2E4XHUwY2I1XHUwY2M2XHUwYzgyX1x1MGNhMVx1MGNiZlx1MGNiOFx1MGNjNlx1MGM4MiIu''@;'; put 'put ''c3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJcdTBjYWRcdTBjYmVcdTBjYThcdTBjYzFcdTBjYjVcdTBjYmVcdTBjYjBfXHUwY2I4XHUwY2M2XHUwY2MyXHUwY2Q1XHUwY2FlXHUwY2I1XHUwY2JlXHUwY2IwX1x1MGNhZVx1MGM4Mlx1MGM5N1x1MGNiM1x1MGNiNVx1''@;'; put 'put ''MGNiZVx1MGNiMF9cdTBjYWNcdTBjYzFcdTBjYTdcdTBjYjVcdTBjYmVcdTBjYjBfXHUwYzk3XHUwY2MxXHUwY2IwXHUwY2MxXHUwY2I1XHUwY2JlXHUwY2IwX1x1MGNiNlx1MGNjMVx1MGM5NVx1MGNjZFx1MGNiMFx1MGNiNVx1MGNiZVx1MGNiMF9cdTBjYjZcdTBjYThcdTBjYmZcdTBjYjVc''@;'; put 'put ''dTBjYmVcdTBjYjAiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwY2FkXHUwY2JlXHUwY2E4XHUwY2MxX1x1MGNiOFx1MGNjNlx1MGNjMlx1MGNkNVx1MGNhZV9cdTBjYWVcdTBjODJcdTBjOTdcdTBjYjNfXHUwY2FjXHUwY2MxXHUwY2E3X1x1MGM5N1x1MGNjMVx1MGNiMFx1MGNjMV9c''@;'; put 'put ''dTBjYjZcdTBjYzFcdTBjOTVcdTBjY2RcdTBjYjBfXHUwY2I2XHUwY2E4XHUwY2JmIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTBjYWRcdTBjYmVfXHUwY2I4XHUwY2M2XHUwY2MyXHUwY2Q1X1x1MGNhZVx1MGM4Ml9cdTBjYWNcdTBjYzFfXHUwYzk3XHUwY2MxX1x1MGNiNlx1MGNjMV9c''@;'; put 'put ''dTBjYjYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJBIGg6bW0iLExUUzoiQSBoOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEEgaDptbSJ9LGNhbGVuZGFyOntz''@;'; put 'put ''YW1lRGF5OiJbXHUwYzg3XHUwYzgyXHUwY2E2XHUwY2MxXSBMVCIsbmV4dERheToiW1x1MGNhOFx1MGNiZVx1MGNiM1x1MGNjNl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1MGNhOFx1MGNiZlx1MGNhOFx1MGNjZFx1MGNhOFx1MGNjNl0gTFQiLGxhc3RXZWVrOiJbXHUw''@;'; put 'put ''Yzk1XHUwY2M2XHUwY2MyXHUwY2E4XHUwY2M2XHUwY2FmXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwY2E4XHUwYzgyXHUwY2E0XHUwY2IwIixwYXN0OiIlcyBcdTBjYjlcdTBjYmZcdTBjODJcdTBjYTZcdTBjYzYiLHM6Ilx1MGM5NVx1MGNj''@;'; put 'put ''Nlx1MGNiMlx1MGNiNVx1MGNjMSBcdTBjOTVcdTBjY2RcdTBjYjdcdTBjYTNcdTBjOTdcdTBjYjNcdTBjYzEiLHNzOiIlZCBcdTBjYjhcdTBjYzZcdTBjOTVcdTBjYzZcdTBjODJcdTBjYTFcdTBjYzFcdTBjOTdcdTBjYjNcdTBjYzEiLG06Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBj''@;'; put 'put ''YThcdTBjYmZcdTBjYWVcdTBjYmZcdTBjYjciLG1tOiIlZCBcdTBjYThcdTBjYmZcdTBjYWVcdTBjYmZcdTBjYjciLGg6Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjOTdcdTBjODJcdTBjOWZcdTBjYzYiLGhoOiIlZCBcdTBjOTdcdTBjODJcdTBjOWZcdTBjYzYiLGQ6Ilx1MGM5Mlx1''@;'; put 'put ''MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYTZcdTBjYmZcdTBjYTgiLGRkOiIlZCBcdTBjYTZcdTBjYmZcdTBjYTgiLE06Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYTRcdTBjYmZcdTBjODJcdTBjOTdcdTBjYjNcdTBjYzEiLE1NOiIlZCBcdTBjYTRcdTBjYmZcdTBjODJcdTBjOTdcdTBj''@;'; put 'put ''YjNcdTBjYzEiLHk6Ilx1MGM5Mlx1MGM4Mlx1MGNhNlx1MGNjMSBcdTBjYjVcdTBjYjBcdTBjY2RcdTBjYjciLHl5OiIlZCBcdTBjYjVcdTBjYjBcdTBjY2RcdTBjYjcifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9bXHUwY2U3XHUwY2U4XHUwY2U5XHUwY2VhXHUw''@;'; put 'put ''Y2ViXHUwY2VjXHUwY2VkXHUwY2VlXHUwY2VmXHUwY2U2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0pfSxtZXJpZGllbVBhcnNlOi9cdTBjYjBcdTBjYmVc''@;'; put 'put ''dTBjYTRcdTBjY2RcdTBjYjBcdTBjYmZ8XHUwY2FjXHUwY2M2XHUwY2IzXHUwY2JmXHUwYzk3XHUwY2NkXHUwYzk3XHUwY2M2fFx1MGNhZVx1MGNhN1x1MGNjZFx1MGNhZlx1MGNiZVx1MGNiOVx1MGNjZFx1MGNhOHxcdTBjYjhcdTBjODJcdTBjOWNcdTBjYzYvLG1lcmlkaWVtSG91cjpmdW5j''@;'; put 'put ''dGlvbihVLFEpe3JldHVybiAxMj09PVUmJihVPTApLCJcdTBjYjBcdTBjYmVcdTBjYTRcdTBjY2RcdTBjYjBcdTBjYmYiPT09UT9VPDQ/VTpVKzEyOiJcdTBjYWNcdTBjYzZcdTBjYjNcdTBjYmZcdTBjOTdcdTBjY2RcdTBjOTdcdTBjYzYiPT09UT9VOiJcdTBjYWVcdTBjYTdcdTBjY2RcdTBj''@;'; put 'put ''YWZcdTBjYmVcdTBjYjlcdTBjY2RcdTBjYTgiPT09UT9VPj0xMD9VOlUrMTI6Ilx1MGNiOFx1MGM4Mlx1MGM5Y1x1MGNjNiI9PT1RP1UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihVLFEsail7cmV0dXJuIFU8ND8iXHUwY2IwXHUwY2JlXHUwY2E0XHUwY2NkXHUwY2IwXHUwY2JmIjpV''@;'; put 'put ''PDEwPyJcdTBjYWNcdTBjYzZcdTBjYjNcdTBjYmZcdTBjOTdcdTBjY2RcdTBjOTdcdTBjYzYiOlU8MTc/Ilx1MGNhZVx1MGNhN1x1MGNjZFx1MGNhZlx1MGNiZVx1MGNiOVx1MGNjZFx1MGNhOCI6VTwyMD8iXHUwY2I4XHUwYzgyXHUwYzljXHUwY2M2IjoiXHUwY2IwXHUwY2JlXHUwY2E0XHUw''@;'; put 'put ''Y2NkXHUwY2IwXHUwY2JmIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfShcdTBjYThcdTBjYzZcdTBjZDUpLyxvcmRpbmFsOmZ1bmN0aW9uKFUpe3JldHVybiBVKyJcdTBjYThcdTBjYzZcdTBjZDUifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSwxMzU0OTpmdW5j''@;'; put 'put ''dGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImtvIix7bW9udGhzOiIxXHVjNmQ0XzJcdWM2ZDRfM1x1YzZkNF80XHVjNmQ0XzVcdWM2ZDRfNlx1YzZkNF83XHVjNmQ0XzhcdWM2ZDRfOVx1YzZkNF8xMFx1YzZkNF8xMVx1YzZkNF8xMlx1''@;'; put 'put ''YzZkNCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1YzZkNF8yXHVjNmQ0XzNcdWM2ZDRfNFx1YzZkNF81XHVjNmQ0XzZcdWM2ZDRfN1x1YzZkNF84XHVjNmQ0XzlcdWM2ZDRfMTBcdWM2ZDRfMTFcdWM2ZDRfMTJcdWM2ZDQiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1Yzc3Y1x1YzY5NFx1''@;'; put 'put ''Yzc3Y19cdWM2ZDRcdWM2OTRcdWM3N2NfXHVkNjU0XHVjNjk0XHVjNzdjX1x1YzIxOFx1YzY5NFx1Yzc3Y19cdWJhYTlcdWM2OTRcdWM3N2NfXHVhZTA4XHVjNjk0XHVjNzdjX1x1ZDFhMFx1YzY5NFx1Yzc3YyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdWM3N2NfXHVjNmQ0X1x1ZDY1''@;'; put 'put ''NF9cdWMyMThfXHViYWE5X1x1YWUwOF9cdWQxYTAiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1Yzc3Y19cdWM2ZDRfXHVkNjU0X1x1YzIxOF9cdWJhYTlfXHVhZTA4X1x1ZDFhMCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IllZ''@;'; put 'put ''WVkuTU0uREQuIixMTDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MiLExMTDoiWVlZWVx1YjE0NCBNTU1NIERcdWM3N2MgQSBoOm1tIixMTExMOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyBkZGRkIEEgaDptbSIsbDoiWVlZWS5NTS5ERC4iLGxsOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyIs''@;'; put 'put ''bGxsOiJZWVlZXHViMTQ0IE1NTU0gRFx1Yzc3YyBBIGg6bW0iLGxsbGw6IllZWVlcdWIxNDQgTU1NTSBEXHVjNzdjIGRkZGQgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilx1YzYyNFx1YjI5OCBMVCIsbmV4dERheToiXHViMGI0XHVjNzdjIExUIixuZXh0V2VlazoiZGRkZCBMVCIsbGFz''@;'; put 'put ''dERheToiXHVjNWI0XHVjODFjIExUIixsYXN0V2VlazoiXHVjOWMwXHViMDljXHVjOGZjIGRkZGQgTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIFx1ZDZjNCIscGFzdDoiJXMgXHVjODA0IixzOiJcdWJhODcgXHVjZDA4IixzczoiJWRcdWNkMDgiLG06IjFcdWJk''@;'; put 'put ''ODQiLG1tOiIlZFx1YmQ4NCIsaDoiXHVkNTVjIFx1YzJkY1x1YWMwNCIsaGg6IiVkXHVjMmRjXHVhYzA0IixkOiJcdWQ1NThcdWI4ZTgiLGRkOiIlZFx1Yzc3YyIsTToiXHVkNTVjIFx1YjJlYyIsTU06IiVkXHViMmVjIix5OiJcdWM3N2MgXHViMTQ0Iix5eToiJWRcdWIxNDQifSxkYXlPZk1v''@;'; put 'put ''bnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KFx1Yzc3Y3xcdWM2ZDR8XHVjOGZjKS8sb3JkaW5hbDpmdW5jdGlvbihFLEVlKXtzd2l0Y2goRWUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIEUrIlx1Yzc3YyI7Y2FzZSJNIjpyZXR1cm4gRSsiXHVjNmQ0IjtjYXNlInciOmNhc2Ui''@;'; put 'put ''VyI6cmV0dXJuIEUrIlx1YzhmYyI7ZGVmYXVsdDpyZXR1cm4gRX19LG1lcmlkaWVtUGFyc2U6L1x1YzYyNFx1YzgwNHxcdWM2MjRcdWQ2YzQvLGlzUE06ZnVuY3Rpb24oRSl7cmV0dXJuIlx1YzYyNFx1ZDZjNCI9PT1FfSxtZXJpZGllbTpmdW5jdGlvbihFLEVlLFUpe3JldHVybiBFPDEyPyJc''@;'; put 'put ''dWM2MjRcdWM4MDQiOiJcdWM2MjRcdWQ2YzQifX0pfShMKDE1NDM5KSl9LDkxMDM3OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTA2NjEiLDI6Ilx1MDY2MiIsMzoiXHUwNjYzIiw0OiJcdTA2NjQiLDU6Ilx1MDY2NSIsNjoiXHUwNjY2''@;'; put 'put ''Iiw3OiJcdTA2NjciLDg6Ilx1MDY2OCIsOToiXHUwNjY5IiwwOiJcdTA2NjAifSxFPXsiXHUwNjYxIjoiMSIsIlx1MDY2MiI6IjIiLCJcdTA2NjMiOiIzIiwiXHUwNjY0IjoiNCIsIlx1MDY2NSI6IjUiLCJcdTA2NjYiOiI2IiwiXHUwNjY3IjoiNyIsIlx1MDY2OCI6IjgiLCJcdTA2NjkiOiI5''@;'; put 'put ''IiwiXHUwNjYwIjoiMCJ9LEVlPVsiXHUwNmE5XHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNmNjIFx1MDYyZlx1MDY0OFx1MDY0OFx1MDZkNVx1MDY0NSIsIlx1MDYzNFx1MDY0OFx1MDYyOFx1MDYyN1x1MDYyYSIsIlx1MDYyNlx1MDYyN1x1MDYzMlx1MDYyN1x1MDYzMSIsIlx1MDY0Nlx1''@;'; put 'put ''MDZjY1x1MDYzM1x1MDYyN1x1MDY0NiIsIlx1MDYyNlx1MDYyN1x1MDZjY1x1MDYyN1x1MDYzMSIsIlx1MDYyZFx1MDY0OFx1MDYzMlx1MDZkNVx1MDZjY1x1MDYzMVx1MDYyN1x1MDY0NiIsIlx1MDYyYVx1MDZkNVx1MDY0NVx1MDY0NVx1MDY0OFx1MDYzMiIsIlx1MDYyNlx1MDYyN1x1MDYy''@;'; put 'put ''OCIsIlx1MDYyNlx1MDZkNVx1MDZjY1x1MDY0NFx1MDY0OFx1MDY0OFx1MDY0NCIsIlx1MDYyYVx1MDYzNFx1MDYzMVx1MDZjY1x1MDY0Nlx1MDZjYyBcdTA2Y2NcdTA2ZDVcdTA2NDNcdTA2ZDVcdTA2NDUiLCJcdTA2MmFcdTA2MzRcdTA2MzFcdTA2Y2NcdTA2NDZcdTA2Y2MgXHUwNjJmXHUw''@;'; put 'put ''NjQ4XHUwNjQ4XHUwNmQ1XHUwNjQ1IiwiXHUwNjQzXHUwNjI3XHUwNjQ2XHUwNjQ4XHUwNjQ2XHUwNmNjIFx1MDZjY1x1MDZkNVx1MDZhOVx1MDZkNVx1MDY0NSJdO21lLmRlZmluZUxvY2FsZSgia3UiLHttb250aHM6RWUsbW9udGhzU2hvcnQ6RWUsd2Vla2RheXM6Ilx1MDZjY1x1MDY0N1x1''@;'; put 'put ''MjAwY1x1MDY0M1x1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwY19cdTA2MmZcdTA2NDhcdTA2NDhcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjMzXHUwNmNlXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1XHUwNjQ1XHUwNjQ3XHUy''@;'; put 'put ''MDBjX1x1MDY4Nlx1MDY0OFx1MDYyN1x1MDYzMVx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwY19cdTA2N2VcdTA2Y2VcdTA2NDZcdTA2MmNcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGNfXHUwNjQ3XHUwNjQ3XHUyMDBjXHUwNmNjXHUw''@;'; put 'put ''NjQ2XHUwNmNjX1x1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NVx1MDY0NVx1MDY0N1x1MjAwYyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2Y2NcdTA2NDdcdTIwMGNcdTA2NDNcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVfXHUwNjJmXHUwNjQ4XHUwNjQ4XHUwNjM0XHUwNjQ3XHUyMDBj''@;'; put 'put ''XHUwNjQ1X1x1MDYzM1x1MDZjZVx1MDYzNFx1MDY0N1x1MjAwY1x1MDY0NV9cdTA2ODZcdTA2NDhcdTA2MjdcdTA2MzFcdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVfXHUwNjdlXHUwNmNlXHUwNjQ2XHUwNjJjXHUwNjM0XHUwNjQ3XHUyMDBjXHUwNjQ1X1x1MDY0N1x1MDY0N1x1MjAwY1x1MDZj''@;'; put 'put ''Y1x1MDY0Nlx1MDZjY19cdTA2MzRcdTA2NDdcdTIwMGNcdTA2NDVcdTA2NDVcdTA2NDdcdTIwMGMiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDZjY19cdTA2MmZfXHUwNjMzX1x1MDY4Nl9cdTA2N2VfXHUwNjQ3X1x1MDYzNCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAs''@;'; put 'put ''bG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYyNlx1MDZjZVx1MDY0OFx1''@;'; put 'put ''MDYyN1x1MDYzMVx1MDY0N1x1MjAwY3xcdTA2MjhcdTA2NDdcdTIwMGNcdTA2Y2NcdTA2MjdcdTA2NDZcdTA2Y2MvLGlzUE06ZnVuY3Rpb24oUSl7cmV0dXJuL1x1MDYyNlx1MDZjZVx1MDY0OFx1MDYyN1x1MDYzMVx1MDY0N1x1MjAwYy8udGVzdChRKX0sbWVyaWRpZW06ZnVuY3Rpb24oUSxq''@;'; put 'put ''LHJlKXtyZXR1cm4gUTwxMj8iXHUwNjI4XHUwNjQ3XHUyMDBjXHUwNmNjXHUwNjI3XHUwNjQ2XHUwNmNjIjoiXHUwNjI2XHUwNmNlXHUwNjQ4XHUwNjI3XHUwNjMxXHUwNjQ3XHUyMDBjIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjZcdTA2NDdcdTIwMGNcdTA2NDVcdTA2MzFcdTA2YzYg''@;'; put 'put ''XHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbmV4dERheToiW1x1MDYyOFx1MDY0N1x1MjAwY1x1MDZjY1x1MDYyN1x1MDY0Nlx1MDZjYyBcdTA2NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixuZXh0V2VlazoiZGRkZCBb''@;'; put 'put ''XHUwNjQzXHUwNjI3XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsbGFzdERheToiW1x1MDYyZlx1MDY0OFx1MDZjZVx1MDY0Nlx1MDZjZSBcdTA2NDNcdTA2MjdcdTA2MmFcdTA2OThcdTA2NDVcdTA2Y2VcdTA2MzFdIExUIixsYXN0V2VlazoiZGRkZCBbXHUwNjQzXHUwNjI3''@;'; put 'put ''XHUwNjJhXHUwNjk4XHUwNjQ1XHUwNmNlXHUwNjMxXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNjQ0XHUwNjQ3XHUyMDBjICVzIixwYXN0OiIlcyIsczoiXHUwNjg2XHUwNjQ3XHUyMDBjXHUwNjQ2XHUwNjJmIFx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1''@;'; put 'put ''MjAwY1x1MDZjY1x1MDY0N1x1MjAwY1x1MDY0MyIsc3M6Ilx1MDY4Nlx1MDYzMVx1MDY0M1x1MDY0N1x1MjAwYyAlZCIsbToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0N1x1MjAwY1x1MDY0MyIsbW06IiVkIFx1MDYyZVx1MDY0OFx1MDY0NFx1MDY0''@;'; put 'put ''N1x1MjAwY1x1MDY0MyIsaDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsaGg6IiVkIFx1MDY0M1x1MDYyN1x1MDYyYVx1MDY5OFx1MDY0NVx1MDZjZVx1MDYzMSIsZDoiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQz''@;'; put 'put ''IFx1MDY5NVx1MDZjNlx1MDY5OCIsZGQ6IiVkIFx1MDY5NVx1MDZjNlx1MDY5OCIsTToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1MDY0NVx1MDYyN1x1MDY0Nlx1MDZhZiIsTU06IiVkIFx1MDY0NVx1MDYyN1x1MDY0Nlx1MDZhZiIseToiXHUwNmNjXHUwNjQ3XHUyMDBjXHUwNjQzIFx1''@;'; put 'put ''MDYzM1x1MDYyN1x1MDZiNSIseXk6IiVkIFx1MDYzM1x1MDYyN1x1MDZiNSJ9LHByZXBhcnNlOmZ1bmN0aW9uKFEpe3JldHVybiBRLnJlcGxhY2UoL1tcdTA2NjFcdTA2NjJcdTA2NjNcdTA2NjRcdTA2NjVcdTA2NjZcdTA2NjdcdTA2NjhcdTA2NjlcdTA2NjBdL2csZnVuY3Rpb24oail7cmV0''@;'; put 'put ''dXJuIEVbal19KS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFEpe3JldHVybiBRLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oail7cmV0dXJuIEJbal19KS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6Nixkb3k6MTJ9fSl9KEwoMTU0MzkpKX0s''@;'; put 'put ''OTMxMjU6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezA6Ii1cdTA0NDdcdTA0YWYiLDE6Ii1cdTA0NDdcdTA0MzgiLDI6Ii1cdTA0NDdcdTA0MzgiLDM6Ii1cdTA0NDdcdTA0YWYiLDQ6Ii1cdTA0NDdcdTA0YWYiLDU6Ii1cdTA0NDdcdTA0Mzgi''@;'; put 'put ''LDY6Ii1cdTA0NDdcdTA0NGIiLDc6Ii1cdTA0NDdcdTA0MzgiLDg6Ii1cdTA0NDdcdTA0MzgiLDk6Ii1cdTA0NDdcdTA0NDMiLDEwOiItXHUwNDQ3XHUwNDQzIiwyMDoiLVx1MDQ0N1x1MDQ0YiIsMzA6Ii1cdTA0NDdcdTA0NDMiLDQwOiItXHUwNDQ3XHUwNDRiIiw1MDoiLVx1MDQ0N1x1MDRh''@;'; put 'put ''ZiIsNjA6Ii1cdTA0NDdcdTA0NGIiLDcwOiItXHUwNDQ3XHUwNDM4Iiw4MDoiLVx1MDQ0N1x1MDQzOCIsOTA6Ii1cdTA0NDdcdTA0NDMiLDEwMDoiLVx1MDQ0N1x1MDRhZiJ9O21lLmRlZmluZUxvY2FsZSgia3kiLHttb250aHM6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0''@;'; put 'put ''Y19cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYlx1MDQ0Y19cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRjX1x1MDQzOFx1MDQ0ZVx1''@;'; put 'put ''MDQzYlx1MDQ0Y19cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFc''@;'; put 'put ''dTA0NDBcdTA0NGNfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwXHUwNDRjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTA0NGZcdTA0M2RcdTA0MzJfXHUwNDQ0XHUwNDM1XHUwNDMyX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBfXHUw''@;'; put 'put ''NDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzX1x1MDQ0MVx1MDQzNVx1MDQzZF9cdTA0M2VcdTA0M2FcdTA0NDJfXHUwNDNkXHUwNDNlXHUwNDRmX1x1MDQzNFx1MDQzNVx1MDQzYSIuc3Bs''@;'; put 'put ''aXQoIl8iKSx3ZWVrZGF5czoiXHUwNDE2XHUwNDM1XHUwNDNhXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4X1x1MDQxNFx1MDRhZlx1MDQzOVx1MDQ0OFx1MDRlOVx1MDQzY1x1MDQzMVx1MDRhZl9cdTA0MjhcdTA0MzVcdTA0MzlcdTA0NDhcdTA0MzVcdTA0M2NcdTA0MzFcdTA0Mzhf''@;'; put 'put ''XHUwNDI4XHUwNDMwXHUwNDQwXHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4X1x1MDQxMVx1MDQzNVx1MDQzOVx1MDQ0OFx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzOF9cdTA0MTZcdTA0NDNcdTA0M2NcdTA0MzBfXHUwNDE4XHUwNDQ4XHUwNDM1XHUwNDNjXHUwNDMxXHUwNDM4Ii5zcGxp''@;'; put 'put ''dCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDQxNlx1MDQzNVx1MDQzYV9cdTA0MTRcdTA0YWZcdTA0MzlfXHUwNDI4XHUwNDM1XHUwNDM5X1x1MDQyOFx1MDQzMFx1MDQ0MF9cdTA0MTFcdTA0MzVcdTA0MzlfXHUwNDE2XHUwNDQzXHUwNDNjX1x1MDQxOFx1MDQ0OFx1MDQzNSIuc3BsaXQoIl8i''@;'; put 'put ''KSx3ZWVrZGF5c01pbjoiXHUwNDE2XHUwNDNhX1x1MDQxNFx1MDQzOV9cdTA0MjhcdTA0MzlfXHUwNDI4XHUwNDQwX1x1MDQxMVx1MDQzOV9cdTA0MTZcdTA0M2NfXHUwNDE4XHUwNDQ4Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRE''@;'; put 'put ''Lk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQxMVx1MDRhZlx1MDQzM1x1MDRhZlx1MDQzZCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDJdIExUIixu''@;'; put 'put ''ZXh0RGF5OiJbXHUwNDJkXHUwNDQwXHUwNDQyXHUwNDM1XHUwNGEzIFx1MDQ0MVx1MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLG5leHRXZWVrOiJkZGRkIFtcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDJdIExUIixsYXN0RGF5OiJbXHUwNDFhXHUwNDM1XHUwNDQ3XHUwNDRkXHUwNDRkIFx1MDQ0MVx1''@;'; put 'put ''MDQzMFx1MDQzMFx1MDQ0Ml0gTFQiLGxhc3RXZWVrOiJbXHUwNGU4XHUwNDQyXHUwNDNhXHUwNGU5XHUwNDNkIFx1MDQzMFx1MDQzZlx1MDQ0Mlx1MDQzMFx1MDQzZFx1MDQ0Ylx1MDQzZF0gZGRkZCBbXHUwNDNhXHUwNGFmXHUwNDNkXHUwNGFmXSBbXHUwNDQxXHUwNDMwXHUwNDMwXHUwNDQy''@;'; put 'put ''XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNDM4XHUwNDQ3XHUwNDM4XHUwNDNkXHUwNDM0XHUwNDM1IixwYXN0OiIlcyBcdTA0M2NcdTA0NDNcdTA0NDBcdTA0NDNcdTA0M2QiLHM6Ilx1MDQzMVx1MDQzOFx1MDQ0MFx1MDQzZFx1MDQzNVx1MDQ0N1x1''@;'; put 'put ''MDQzNSBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLHNzOiIlZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiLG06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2NcdTA0YWZcdTA0M2RcdTA0ZTlcdTA0NDIiLG1tOiIlZCBcdTA0M2NcdTA0YWZcdTA0''@;'; put 'put ''M2RcdTA0ZTlcdTA0NDIiLGg6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0MzBcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2FcdTA0YWZcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0YWZcdTA0M2Qi''@;'; put 'put ''LE06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzBcdTA0MzkiLE1NOiIlZCBcdTA0MzBcdTA0MzkiLHk6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzZcdTA0NGJcdTA0M2IiLHl5OiIlZCBcdTA0MzZcdTA0NGJcdTA0M2IifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LShcdTA0''@;'; put 'put ''NDdcdTA0Mzh8XHUwNDQ3XHUwNDRifFx1MDQ0N1x1MDRhZnxcdTA0NDdcdTA0NDMpLyxvcmRpbmFsOmZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUrKEJbRWVdfHxCW0VlJTEwXXx8QltFZT49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDY5NTg2OmZ1bmN0''@;'; put 'put ''aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoaixyZSxhZSxZKXt2YXIgVz17bTpbImVuZyBNaW51dHQiLCJlbmdlciBNaW51dHQiXSxoOlsiZW5nIFN0b25uIiwiZW5nZXIgU3Rvbm4iXSxkOlsiZWVuIERhZyIsImVuZ2VtIERhZyJdLE06WyJlZSBN''@;'; put 'put ''b3VudCIsImVuZ2VtIE1vdW50Il0seTpbImVlIEpvZXIiLCJlbmdlbSBKb2VyIl19O3JldHVybiByZT9XW2FlXVswXTpXW2FlXVsxXX1mdW5jdGlvbiBVKGope2lmKGo9cGFyc2VJbnQoaiwxMCksaXNOYU4oaikpcmV0dXJuITE7aWYoajwwKXJldHVybiEwO2lmKGo8MTApcmV0dXJuIDQ8PWom''@;'; put 'put ''Jmo8PTc7aWYoajwxMDApe3ZhciByZT1qJTEwO3JldHVybiBVKDA9PT1yZT9qLzEwOnJlKX1pZihqPDFlNCl7Zm9yKDtqPj0xMDspai89MTA7cmV0dXJuIFUoail9cmV0dXJuIFUoai89MWUzKX1tZS5kZWZpbmVMb2NhbGUoImxiIix7bW9udGhzOiJKYW51YXJfRmVicnVhcl9NXHhlNGVyel9B''@;'; put 'put ''YnJceGVibGxfTWVlX0p1bmlfSnVsaV9BdWd1c3RfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGV6ZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbi5fRmVici5fTXJ6Ll9BYnIuX01lZV9KdW4uX0p1bC5fQXVnLl9TZXB0Ll9Pa3QuX05vdi5fRGV6LiIuc3BsaXQoIl8iKSxt''@;'; put 'put ''b250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTb25uZGVnX01ceGU5aW5kZWdfRFx4ZWJuc2NoZGVnX01ceGVidHR3b2NoX0Rvbm5lc2NoZGVnX0ZyZWlkZWdfU2Ftc2NoZGVnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNvLl9NXHhlOS5fRFx4ZWIuX01ceGViLl9Eby5fRnIuX1Nh''@;'; put 'put ''LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU29fTVx4ZTlfRFx4ZWJfTVx4ZWJfRG9fRnJfU2EiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSBbQXVlcl0iLExUUzoiSDptbTpzcyBbQXVlcl0iLEw6IkRELk1NLllZWVkiLExMOiJE''@;'; put 'put ''LiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0gW0F1ZXJdIixMTExMOiJkZGRkLCBELiBNTU1NIFlZWVkgSDptbSBbQXVlcl0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhdXQgdW1dIExUIixzYW1lRWxzZToiTCIsbmV4dERheToiW011ZXIgdW1dIExUIixuZXh0V2VlazoiZGRk''@;'; put 'put ''ZCBbdW1dIExUIixsYXN0RGF5OiJbR1x4ZWJzY2h0ZXIgdW1dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDI6Y2FzZSA0OnJldHVybiJbTGVzY2h0ZW5dIGRkZGQgW3VtXSBMVCI7ZGVmYXVsdDpyZXR1cm4iW0xlc2NodGVdIGRkZGQgW3VtXSBMVCJ9''@;'; put 'put ''fX0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24gRShqKXtyZXR1cm4gVShqLnN1YnN0cigwLGouaW5kZXhPZigiICIpKSk/ImEgIitqOiJhbiAiK2p9LHBhc3Q6ZnVuY3Rpb24gRWUoail7cmV0dXJuIFUoai5zdWJzdHIoMCxqLmluZGV4T2YoIiAiKSkpPyJ2aXJ1ICIrajoidmlydW4g''@;'; put 'put ''IitqfSxzOiJlIHB1ZXIgU2Vrb25uZW4iLHNzOiIlZCBTZWtvbm5lbiIsbTpCLG1tOiIlZCBNaW51dHRlbiIsaDpCLGhoOiIlZCBTdG9ubmVuIixkOkIsZGQ6IiVkIERlZWciLE06QixNTToiJWQgTVx4ZTlpbnQiLHk6Qix5eToiJWQgSm9lciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xk''@;'; put 'put ''ezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwzMjM0OTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoImxvIix7bW9udGhzOiJcdTBlYTFcdTBlYjFcdTBlODdcdTBlODFcdTBl''@;'; put 'put ''YWRcdTBlOTlfXHUwZTgxXHUwZWI4XHUwZWExXHUwZTllXHUwZWIyX1x1MGVhMVx1MGViNVx1MGU5OVx1MGViMl9cdTBlYzBcdTBlYTFcdTBlYWFcdTBlYjJfXHUwZTllXHUwZWI2XHUwZTk0XHUwZWFhXHUwZWIwXHUwZTllXHUwZWIyX1x1MGVhMVx1MGViNFx1MGU5Nlx1MGViOFx1MGU5OVx1''@;'; put 'put ''MGViMl9cdTBlODFcdTBlY2RcdTBlYTVcdTBlYjBcdTBlODFcdTBlYmJcdTBlOTRfXHUwZWFhXHUwZWI0XHUwZTg3XHUwZWFiXHUwZWIyX1x1MGU4MVx1MGViMVx1MGU5OVx1MGU4ZFx1MGViMl9cdTBlOTVcdTBlYjhcdTBlYTVcdTBlYjJfXHUwZTllXHUwZWIwXHUwZTg4XHUwZWI0XHUwZTgx''@;'; put 'put ''X1x1MGU5N1x1MGViMVx1MGU5OVx1MGVhN1x1MGViMiIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwZWExXHUwZWIxXHUwZTg3XHUwZTgxXHUwZWFkXHUwZTk5X1x1MGU4MVx1MGViOFx1MGVhMVx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjVcdTBlOTlcdTBlYjJfXHUwZWMwXHUwZWExXHUw''@;'; put 'put ''ZWFhXHUwZWIyX1x1MGU5ZVx1MGViNlx1MGU5NFx1MGVhYVx1MGViMFx1MGU5ZVx1MGViMl9cdTBlYTFcdTBlYjRcdTBlOTZcdTBlYjhcdTBlOTlcdTBlYjJfXHUwZTgxXHUwZWNkXHUwZWE1XHUwZWIwXHUwZTgxXHUwZWJiXHUwZTk0X1x1MGVhYVx1MGViNFx1MGU4N1x1MGVhYlx1MGViMl9c''@;'; put 'put ''dTBlODFcdTBlYjFcdTBlOTlcdTBlOGRcdTBlYjJfXHUwZTk1XHUwZWI4XHUwZWE1XHUwZWIyX1x1MGU5ZVx1MGViMFx1MGU4OFx1MGViNFx1MGU4MV9cdTBlOTdcdTBlYjFcdTBlOTlcdTBlYTdcdTBlYjIiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MGVhZFx1MGViMlx1MGU5N1x1MGViNFx1''@;'; put 'put ''MGU5NF9cdTBlODhcdTBlYjFcdTBlOTlfXHUwZWFkXHUwZWIxXHUwZTg3XHUwZTg0XHUwZWIyXHUwZTk5X1x1MGU5ZVx1MGViOFx1MGU5NF9cdTBlOWVcdTBlYjBcdTBlYWJcdTBlYjFcdTBlOTRfXHUwZWFhXHUwZWI4XHUwZTgxX1x1MGVjMFx1MGVhYVx1MGViYlx1MGViMiIuc3BsaXQoIl8i''@;'; put 'put ''KSx3ZWVrZGF5c1Nob3J0OiJcdTBlOTdcdTBlYjRcdTBlOTRfXHUwZTg4XHUwZWIxXHUwZTk5X1x1MGVhZFx1MGViMVx1MGU4N1x1MGU4NFx1MGViMlx1MGU5OV9cdTBlOWVcdTBlYjhcdTBlOTRfXHUwZTllXHUwZWIwXHUwZWFiXHUwZWIxXHUwZTk0X1x1MGVhYVx1MGViOFx1MGU4MV9cdTBl''@;'; put 'put ''YzBcdTBlYWFcdTBlYmJcdTBlYjIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGU5N19cdTBlODhfXHUwZWFkXHUwZTg0X1x1MGU5ZV9cdTBlOWVcdTBlYWJfXHUwZWFhXHUwZTgxX1x1MGVhYSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xU''@;'; put 'put ''OiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJcdTBlYTdcdTBlYjFcdTBlOTlkZGRkIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwZTk1XHUwZWFkXHUwZTk5XHUw''@;'; put 'put ''ZWMwXHUwZThhXHUwZWJiXHUwZWM5XHUwZWIyfFx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4Ny8saXNQTTpmdW5jdGlvbihFKXtyZXR1cm4iXHUwZTk1XHUwZWFkXHUwZTk5XHUwZWMxXHUwZWE1XHUwZTg3Ij09PUV9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJu''@;'; put 'put ''IEU8MTI/Ilx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMFx1MGU4YVx1MGViYlx1MGVjOVx1MGViMiI6Ilx1MGU5NVx1MGVhZFx1MGU5OVx1MGVjMVx1MGVhNVx1MGU4NyJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZWExXHUwZWI3XHUwZWM5XHUwZTk5XHUwZWI1XHUwZWM5XHUwZWMwXHUwZWE3''@;'; put 'put ''XHUwZWE1XHUwZWIyXSBMVCIsbmV4dERheToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhZFx1MGViN1x1MGVjOFx1MGU5OVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLG5leHRXZWVrOiJbXHUwZWE3XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWRjXHUwZWM5XHUwZWIyXHUwZWMwXHUwZWE3''@;'; put 'put ''XHUwZWE1XHUwZWIyXSBMVCIsbGFzdERheToiW1x1MGVhMVx1MGViN1x1MGVjOVx1MGVhN1x1MGViMlx1MGU5OVx1MGU5OVx1MGViNVx1MGVjOVx1MGVjMFx1MGVhN1x1MGVhNVx1MGViMl0gTFQiLGxhc3RXZWVrOiJbXHUwZWE3XHUwZWIxXHUwZTk5XWRkZGRbXHUwZWMxXHUwZWE1XHUwZWM5''@;'; put 'put ''XHUwZWE3XHUwZTk5XHUwZWI1XHUwZWM5XHUwZWMwXHUwZWE3XHUwZWE1XHUwZWIyXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwZWFkXHUwZWI1XHUwZTgxICVzIixwYXN0OiIlc1x1MGU5Y1x1MGVjOFx1MGViMlx1MGU5OVx1MGVhMVx1MGViMiIsczoiXHUw''@;'; put 'put ''ZTlhXHUwZWNkXHUwZWM4XHUwZWMwXHUwZTk3XHUwZWJiXHUwZWM4XHUwZWIyXHUwZWMzXHUwZTk0XHUwZWE3XHUwZWI0XHUwZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixzczoiJWQgXHUwZWE3XHUwZWI0XHUwZTk5XHUwZWIyXHUwZTk3XHUwZWI1IixtOiIxIFx1MGU5OVx1MGViMlx1MGU5N1x1''@;'; put 'put ''MGViNSIsbW06IiVkIFx1MGU5OVx1MGViMlx1MGU5N1x1MGViNSIsaDoiMSBcdTBlOGFcdTBlYmJcdTBlYzhcdTBlYTdcdTBlYzJcdTBlYTFcdTBlODciLGhoOiIlZCBcdTBlOGFcdTBlYmJcdTBlYzhcdTBlYTdcdTBlYzJcdTBlYTFcdTBlODciLGQ6IjEgXHUwZWExXHUwZWI3XHUwZWM5Iixk''@;'; put 'put ''ZDoiJWQgXHUwZWExXHUwZWI3XHUwZWM5IixNOiIxIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIsTU06IiVkIFx1MGVjMFx1MGU5NFx1MGViN1x1MGVhZFx1MGU5OSIseToiMSBcdTBlOWJcdTBlYjUiLHl5OiIlZCBcdTBlOWJcdTBlYjUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNl''@;'; put 'put ''Oi8oXHUwZTk3XHUwZWI1XHUwZWM4KVxkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIlx1MGU5N1x1MGViNVx1MGVjOCIrRX19KX0oTCgxNTQzOSkpfSw5MjQwMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17c3M6InNla3VuZFx1''@;'; put 'put ''MDExN19zZWt1bmRcdTAxN2VpXHUwMTczX3Nla3VuZGVzIixtOiJtaW51dFx1MDExN19taW51dFx1MDExN3NfbWludXRcdTAxMTkiLG1tOiJtaW51dFx1MDExN3NfbWludVx1MDEwZGlcdTAxNzNfbWludXRlcyIsaDoidmFsYW5kYV92YWxhbmRvc192YWxhbmRcdTAxMDUiLGhoOiJ2YWxhbmRv''@;'; put 'put ''c192YWxhbmRcdTAxNzNfdmFsYW5kYXMiLGQ6ImRpZW5hX2RpZW5vc19kaWVuXHUwMTA1IixkZDoiZGllbm9zX2RpZW5cdTAxNzNfZGllbmFzIixNOiJtXHUwMTE3bnVvX21cdTAxMTduZXNpb19tXHUwMTE3bmVzXHUwMTJmIixNTToibVx1MDExN25lc2lhaV9tXHUwMTE3bmVzaVx1MDE3M19t''@;'; put 'put ''XHUwMTE3bmVzaXVzIix5OiJtZXRhaV9tZXRcdTAxNzNfbWV0dXMiLHl5OiJtZXRhaV9tZXRcdTAxNzNfbWV0dXMifTtmdW5jdGlvbiBFZShhZSxZLFcsTil7cmV0dXJuIFk/UShXKVswXTpOP1EoVylbMV06UShXKVsyXX1mdW5jdGlvbiBVKGFlKXtyZXR1cm4gYWUlMTA9PTB8fGFlPjEwJiZh''@;'; put 'put ''ZTwyMH1mdW5jdGlvbiBRKGFlKXtyZXR1cm4gQlthZV0uc3BsaXQoIl8iKX1mdW5jdGlvbiBqKGFlLFksVyxOKXt2YXIgdGU9YWUrIiAiO3JldHVybiAxPT09YWU/dGUrRWUoMCxZLFdbMF0sTik6WT90ZSsoVShhZSk/UShXKVsxXTpRKFcpWzBdKTpOP3RlK1EoVylbMV06dGUrKFUoYWUpP1Eo''@;'; put 'put ''VylbMV06UShXKVsyXSl9bWUuZGVmaW5lTG9jYWxlKCJsdCIse21vbnRoczp7Zm9ybWF0OiJzYXVzaW9fdmFzYXJpb19rb3ZvX2JhbGFuZFx1MDE3ZWlvX2dlZ3VcdTAxN2VcdTAxMTdzX2Jpclx1MDE3ZWVsaW9fbGllcG9zX3J1Z3BqXHUwMTZiXHUwMTBkaW9fcnVnc1x1MDExN2pvX3NwYWxp''@;'; put 'put ''b19sYXBrcmlcdTAxMGRpb19ncnVvZFx1MDE3ZWlvIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6InNhdXNpc192YXNhcmlzX2tvdmFzX2JhbGFuZGlzX2dlZ3VcdTAxN2VcdTAxMTdfYmlyXHUwMTdlZWxpc19saWVwYV9ydWdwalx1MDE2YnRpc19ydWdzXHUwMTE3amlzX3NwYWxpc19sYXBrcml0''@;'; put 'put ''aXNfZ3J1b2RpcyIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovRFtvRF0/KFxbW15cW1xdXSpcXXxccykrTU1NTT98TU1NTT8oXFtbXlxbXF1dKlxdfFxzKStEW29EXT8vfSxtb250aHNTaG9ydDoic2F1X3Zhc19rb3ZfYmFsX2dlZ19iaXJfbGllX3JncF9yZ3Nfc3BhX2xhcF9ncmQiLnNwbGl0KCJf''@;'; put 'put ''Iiksd2Vla2RheXM6e2Zvcm1hdDoic2VrbWFkaWVuXHUwMTJmX3Bpcm1hZGllblx1MDEyZl9hbnRyYWRpZW5cdTAxMmZfdHJlXHUwMTBkaWFkaWVuXHUwMTJmX2tldHZpcnRhZGllblx1MDEyZl9wZW5rdGFkaWVuXHUwMTJmX1x1MDE2MWVcdTAxNjF0YWRpZW5cdTAxMmYiLnNwbGl0KCJfIiks''@;'; put 'put ''c3RhbmRhbG9uZToic2VrbWFkaWVuaXNfcGlybWFkaWVuaXNfYW50cmFkaWVuaXNfdHJlXHUwMTBkaWFkaWVuaXNfa2V0dmlydGFkaWVuaXNfcGVua3RhZGllbmlzX1x1MDE2MWVcdTAxNjF0YWRpZW5pcyIuc3BsaXQoIl8iKSxpc0Zvcm1hdDovZGRkZCBISDptbS99LHdlZWtkYXlzU2hvcnQ6''@;'; put 'put ''IlNla19QaXJfQW50X1RyZV9LZXRfUGVuX1x1MDE2MGVcdTAxNjEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlNfUF9BX1RfS19Qbl9cdTAxNjAiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IllZ''@;'; put 'put ''WVktTU0tREQiLExMOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0iLExMTDoiWVlZWSBbbS5dIE1NTU0gRCBbZC5dLCBISDptbSBbdmFsLl0iLExMTEw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSwgZGRkZCwgSEg6bW0gW3ZhbC5dIixsOiJZWVlZLU1NLUREIixsbDoiWVlZWSBbbS5dIE1NTU0gRCBb''@;'; put 'put ''ZC5dIixsbGw6IllZWVkgW20uXSBNTU1NIEQgW2QuXSwgSEg6bW0gW3ZhbC5dIixsbGxsOiJZWVlZIFttLl0gTU1NTSBEIFtkLl0sIGRkZCwgSEg6bW0gW3ZhbC5dIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTAxNjBpYW5kaWVuXSBMVCIsbmV4dERheToiW1J5dG9qXSBMVCIsbmV4dFdlZWs6''@;'; put 'put ''ImRkZGQgTFQiLGxhc3REYXk6IltWYWthcl0gTFQiLGxhc3RXZWVrOiJbUHJhXHUwMTE3anVzXHUwMTJmXSBkZGRkIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJwbyAlcyIscGFzdDoicHJpZVx1MDE2MSAlcyIsczpmdW5jdGlvbiBFKGFlLFksVyxOKXtyZXR1cm4g''@;'; put 'put ''WT8ia2VsaW9zIHNla3VuZFx1MDExN3MiOk4/ImtlbGlcdTAxNzMgc2VrdW5kXHUwMTdlaVx1MDE3MyI6ImtlbGlhcyBzZWt1bmRlcyJ9LHNzOmosbTpFZSxtbTpqLGg6RWUsaGg6aixkOkVlLGRkOmosTTpFZSxNTTpqLHk6RWUseXk6an0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwy''@;'; put 'put ''fS1vamkvLG9yZGluYWw6ZnVuY3Rpb24oYWUpe3JldHVybiBhZSsiLW9qaSJ9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDM5OTkxOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXtzczoic2VrdW5kZXNfc2VrdW5kXHUwMTEzbV9z''@;'; put 'put ''ZWt1bmRlX3Nla3VuZGVzIi5zcGxpdCgiXyIpLG06Im1pblx1MDE2YnRlc19taW5cdTAxNmJ0XHUwMTEzbV9taW5cdTAxNmJ0ZV9taW5cdTAxNmJ0ZXMiLnNwbGl0KCJfIiksbW06Im1pblx1MDE2YnRlc19taW5cdTAxNmJ0XHUwMTEzbV9taW5cdTAxNmJ0ZV9taW5cdTAxNmJ0ZXMiLnNwbGl0''@;'; put 'put ''KCJfIiksaDoic3R1bmRhc19zdHVuZFx1MDEwMW1fc3R1bmRhX3N0dW5kYXMiLnNwbGl0KCJfIiksaGg6InN0dW5kYXNfc3R1bmRcdTAxMDFtX3N0dW5kYV9zdHVuZGFzIi5zcGxpdCgiXyIpLGQ6ImRpZW5hc19kaWVuXHUwMTAxbV9kaWVuYV9kaWVuYXMiLnNwbGl0KCJfIiksZGQ6ImRpZW5h''@;'; put 'put ''c19kaWVuXHUwMTAxbV9kaWVuYV9kaWVuYXMiLnNwbGl0KCJfIiksTToibVx1MDExM25lXHUwMTYxYV9tXHUwMTEzbmVcdTAxNjFpZW1fbVx1MDExM25lc2lzX21cdTAxMTNuZVx1MDE2MWkiLnNwbGl0KCJfIiksTU06Im1cdTAxMTNuZVx1MDE2MWFfbVx1MDExM25lXHUwMTYxaWVtX21cdTAx''@;'; put 'put ''MTNuZXNpc19tXHUwMTEzbmVcdTAxNjFpIi5zcGxpdCgiXyIpLHk6ImdhZGFfZ2FkaWVtX2dhZHNfZ2FkaSIuc3BsaXQoIl8iKSx5eToiZ2FkYV9nYWRpZW1fZ2Fkc19nYWRpIi5zcGxpdCgiXyIpfTtmdW5jdGlvbiBFKHJlLGFlLFkpe3JldHVybiBZP2FlJTEwPT0xJiZhZSUxMDAhPTExP3Jl''@;'; put 'put ''WzJdOnJlWzNdOmFlJTEwPT0xJiZhZSUxMDAhPTExP3JlWzBdOnJlWzFdfWZ1bmN0aW9uIEVlKHJlLGFlLFkpe3JldHVybiByZSsiICIrRShCW1ldLHJlLGFlKX1mdW5jdGlvbiBVKHJlLGFlLFkpe3JldHVybiBFKEJbWV0scmUsYWUpfW1lLmRlZmluZUxvY2FsZSgibHYiLHttb250aHM6Imph''@;'; put 'put ''bnZcdTAxMDFyaXNfZmVicnVcdTAxMDFyaXNfbWFydHNfYXByXHUwMTJibGlzX21haWpzX2pcdTAxNmJuaWpzX2pcdTAxNmJsaWpzX2F1Z3VzdHNfc2VwdGVtYnJpc19va3RvYnJpc19ub3ZlbWJyaXNfZGVjZW1icmlzIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmViX21hcl9hcHJf''@;'; put 'put ''bWFpX2pcdTAxNmJuX2pcdTAxNmJsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksd2Vla2RheXM6InN2XHUwMTEzdGRpZW5hX3Bpcm1kaWVuYV9vdHJkaWVuYV90cmVcdTAxNjFkaWVuYV9jZXR1cnRkaWVuYV9waWVrdGRpZW5hX3Nlc3RkaWVuYSIuc3BsaXQoIl8iKSx3ZWVrZGF5''@;'; put 'put ''c1Nob3J0OiJTdl9QX09fVF9DX1BrX1MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN2X1BfT19UX0NfUGtfUyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWS4iLExMOiJZWVlZ''@;'; put 'put ''LiBbZ2FkYV0gRC4gTU1NTSIsTExMOiJZWVlZLiBbZ2FkYV0gRC4gTU1NTSwgSEg6bW0iLExMTEw6IllZWVkuIFtnYWRhXSBELiBNTU1NLCBkZGRkLCBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwMTYwb2RpZW4gcHVsa3N0ZW5dIExUIixuZXh0RGF5OiJbUlx1MDEyYnQgcHVsa3N0''@;'; put 'put ''ZW5dIExUIixuZXh0V2VlazoiZGRkZCBbcHVsa3N0ZW5dIExUIixsYXN0RGF5OiJbVmFrYXIgcHVsa3N0ZW5dIExUIixsYXN0V2VlazoiW1BhZ1x1MDEwMWp1XHUwMTYxXHUwMTAxXSBkZGRkIFtwdWxrc3Rlbl0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InBcdTAx''@;'; put 'put ''MTNjICVzIixwYXN0OiJwaXJtcyAlcyIsczpmdW5jdGlvbiBRKHJlLGFlKXtyZXR1cm4gYWU/ImRhXHUwMTdlYXMgc2VrdW5kZXMiOiJkYVx1MDE3ZVx1MDEwMW0gc2VrdW5kXHUwMTEzbSJ9LHNzOkVlLG06VSxtbTpFZSxoOlUsaGg6RWUsZDpVLGRkOkVlLE06VSxNTTpFZSx5OlUseXk6RWV9''@;'; put 'put ''LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSwyODQ3NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17d29yZHM6e3NzOlsic2VrdW5kIiwic2Vr''@;'; put 'put ''dW5kYSIsInNla3VuZGkiXSxtOlsiamVkYW4gbWludXQiLCJqZWRub2cgbWludXRhIl0sbW06WyJtaW51dCIsIm1pbnV0YSIsIm1pbnV0YSJdLGg6WyJqZWRhbiBzYXQiLCJqZWRub2cgc2F0YSJdLGhoOlsic2F0Iiwic2F0YSIsInNhdGkiXSxkZDpbImRhbiIsImRhbmEiLCJkYW5hIl0sTU06''@;'; put 'put ''WyJtamVzZWMiLCJtamVzZWNhIiwibWplc2VjaSJdLHl5OlsiZ29kaW5hIiwiZ29kaW5lIiwiZ29kaW5hIl19LGNvcnJlY3RHcmFtbWF0aWNhbENhc2U6ZnVuY3Rpb24oRWUsVSl7cmV0dXJuIDE9PT1FZT9VWzBdOkVlPj0yJiZFZTw9ND9VWzFdOlVbMl19LHRyYW5zbGF0ZTpmdW5jdGlvbihF''@;'; put 'put ''ZSxVLFEpe3ZhciBqPUIud29yZHNbUV07cmV0dXJuIDE9PT1RLmxlbmd0aD9VP2pbMF06alsxXTpFZSsiICIrQi5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKEVlLGopfX07bWUuZGVmaW5lTG9jYWxlKCJtZSIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuX2p1bF9h''@;'; put 'put ''dmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1iYXJfZGVjZW1iYXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6''@;'; put 'put ''Im5lZGplbGphX3BvbmVkamVsamFrX3V0b3Jha19zcmlqZWRhX1x1MDEwZGV0dnJ0YWtfcGV0YWtfc3Vib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lZC5fcG9uLl91dG8uX3NyaS5fXHUwMTBkZXQuX3BldC5fc3ViLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoibmVfcG9fdXRf''@;'; put 'put ''c3JfXHUwMTBkZV9wZV9zdSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQsIEQuIE1N''@;'; put 'put ''TU0gWVlZWSBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3NqdXRyYSB1XSBMVCIsbmV4dFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbdV0gW25lZGplbGp1XSBbdV0gTFQiO2Nhc2UgMzpyZXR1cm4iW3Vd''@;'; put 'put ''IFtzcmlqZWR1XSBbdV0gTFQiO2Nhc2UgNjpyZXR1cm4iW3VdIFtzdWJvdHVdIFt1XSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbdV0gZGRkZCBbdV0gTFQifX0sbGFzdERheToiW2p1XHUwMTBkZSB1XSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm5bIltw''@;'; put 'put ''cm9cdTAxNjFsZV0gW25lZGplbGplXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbcG9uZWRqZWxqa2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFt1dG9ya2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3NyaWplZGVdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFtcdTAxMGRldHZydGth''@;'; put 'put ''XSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbcGV0a2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3N1Ym90ZV0gW3VdIExUIl1bdGhpcy5kYXkoKV19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6InphICVzIixwYXN0OiJwcmlqZSAlcyIsczoibmVrb2xpa28gc2VrdW5k''@;'; put 'put ''aSIsc3M6Qi50cmFuc2xhdGUsbTpCLnRyYW5zbGF0ZSxtbTpCLnRyYW5zbGF0ZSxoOkIudHJhbnNsYXRlLGhoOkIudHJhbnNsYXRlLGQ6ImRhbiIsZGQ6Qi50cmFuc2xhdGUsTToibWplc2VjIixNTTpCLnRyYW5zbGF0ZSx5OiJnb2RpbnUiLHl5OkIudHJhbnNsYXRlfSxkYXlPZk1vbnRoT3Jk''@;'; put 'put ''aW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sNTUxMTg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJtaSIse21vbnRoczoiS29oaS10XHUwMTAxdGVf''@;'; put 'put ''SHVpLXRhbmd1cnVfUG91dFx1MDE2Yi10ZS1yYW5naV9QYWVuZ2Etd2hcdTAxMDF3aFx1MDEwMV9IYXJhdHVhX1BpcGlyaV9IXHUwMTRkbmdvaW5nb2lfSGVyZS10dXJpLWtcdTAxNGRrXHUwMTAxX01haHVydV9XaGlyaW5nYS1cdTAxMDEtbnVrdV9XaGlyaW5nYS1cdTAxMDEtcmFuZ2lfSGFr''@;'; put 'put ''aWhlYSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiS29oaV9IdWlfUG91X1BhZV9IYXJhX1BpcGlfSFx1MDE0ZG5nb2lfSGVyZV9NYWh1X1doaS1udV9XaGktcmFfSGFraSIuc3BsaXQoIl8iKSxtb250aHNSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wtPyl7MSwzfS9pLG1v''@;'; put 'put ''bnRoc1N0cmljdFJlZ2V4Oi8oPzpbJ2Etelx1MDEwMVx1MDE0RFx1MDE2Ql0rXC0/KXsxLDN9L2ksbW9udGhzU2hvcnRSZWdleDovKD86WydhLXpcdTAxMDFcdTAxNERcdTAxNkJdK1wtPyl7MSwzfS9pLG1vbnRoc1Nob3J0U3RyaWN0UmVnZXg6Lyg/OlsnYS16XHUwMTAxXHUwMTREXHUwMTZC''@;'; put 'put ''XStcLT8pezEsMn0vaSx3ZWVrZGF5czoiUlx1MDEwMXRhcHVfTWFuZV9UXHUwMTZicmVpX1dlbmVyZWlfVFx1MDEwMWl0ZV9QYXJhaXJlX0hcdTAxMDF0YXJlaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJUYV9NYV9UXHUwMTZiX1dlX1RcdTAxMDFpX1BhX0hcdTAxMDEiLnNwbGl0KCJf''@;'; put 'put ''Iiksd2Vla2RheXNNaW46IlRhX01hX1RcdTAxNmJfV2VfVFx1MDEwMWlfUGFfSFx1MDEwMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW2ldIEhIOm1t''@;'; put 'put ''IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBbaV0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2kgdGVpZSBtYWhhbmEsIGldIExUIixuZXh0RGF5OiJbYXBvcG8gaV0gTFQiLG5leHRXZWVrOiJkZGRkIFtpXSBMVCIsbGFzdERheToiW2luYW5haGkgaV0gTFQiLGxhc3RXZWVrOiJkZGRk''@;'; put 'put ''IFt3aGFrYW11dHVuZ2EgaV0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Imkgcm90byBpICVzIixwYXN0OiIlcyBpIG11YSIsczoidGUgaFx1MDExM2tvbmEgcnVhcnVhIixzczoiJWQgaFx1MDExM2tvbmEiLG06ImhlIG1lbmV0aSIsbW06IiVkIG1lbmV0aSIsaDoi''@;'; put 'put ''dGUgaGFvcmEiLGhoOiIlZCBoYW9yYSIsZDoiaGUgcmEiLGRkOiIlZCByYSIsTToiaGUgbWFyYW1hIixNTToiJWQgbWFyYW1hIix5OiJoZSB0YXUiLHl5OiIlZCB0YXUifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIix3ZWVrOntkb3c6MSxk''@;'; put 'put ''b3k6NH19KX0oTCgxNTQzOSkpfSwxNTk0MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIm1rIix7bW9udGhzOiJcdTA0NThcdTA0MzBcdTA0M2RcdTA0NDNcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDQ0XHUwNDM1XHUwNDMyXHUw''@;'; put 'put ''NDQwXHUwNDQzXHUwNDMwXHUwNDQwXHUwNDM4X1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzhcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDU4X1x1MDQ1OFx1MDQ0M1x1MDQzZFx1MDQzOF9cdTA0NThcdTA0NDNcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMy''@;'; put 'put ''XHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZlx1MDQ0Mlx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0M2VcdTA0M2NcdTA0MzJcdTA0NDBcdTA0MzhfXHUwNDNkXHUwNDNlXHUwNDM1XHUwNDNjXHUwNDMyXHUwNDQw''@;'; put 'put ''XHUwNDM4X1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzNVx1MDQzY1x1MDQzMlx1MDQ0MFx1MDQzOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDU4XHUwNDMwXHUwNDNkX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNmXHUwNDQwX1x1MDQzY1x1''@;'; put 'put ''MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RfXHUwNDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2ZfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQzNV9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0KCJfIiksd2Vla2RheXM6''@;'; put 'put ''Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQzMF9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNkXHUwNDM4XHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQz''@;'; put 'put ''NFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0M2VcdTA0M2FfXHUwNDNmXHUwNDM1XHUwNDQyXHUwNDNlXHUwNDNhX1x1MDQ0MVx1MDQzMFx1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVc''@;'; put 'put ''dTA0MzRfXHUwNDNmXHUwNDNlXHUwNDNkX1x1MDQzMlx1MDQ0Mlx1MDQzZV9cdTA0NDFcdTA0NDBcdTA0MzVfXHUwNDQ3XHUwNDM1XHUwNDQyX1x1MDQzZlx1MDQzNVx1MDQ0Ml9cdTA0NDFcdTA0MzBcdTA0MzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzZGVfXHUwNDNmb19cdTA0''@;'; put 'put ''MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQzNV9cdTA0M2ZcdTA0MzVfXHUwNDQxYSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExM''@;'; put 'put ''TDoiZGRkZCwgRCBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDE0XHUwNDM1XHUwNDNkXHUwNDM1XHUwNDQxIFx1MDQzMlx1MDQzZV0gTFQiLG5leHREYXk6IltcdTA0MjNcdTA0NDJcdTA0NDBcdTA0MzUgXHUwNDMyXHUwNDNlXSBMVCIsbmV4dFdlZWs6IltcdTA0''@;'; put 'put ''MTJcdTA0M2VdIGRkZGQgW1x1MDQzMlx1MDQzZV0gTFQiLGxhc3REYXk6IltcdTA0MTJcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAgXHUwNDMyXHUwNDNlXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDY6cmV0dXJuIltcdTA0''@;'; put 'put ''MThcdTA0MzdcdTA0M2NcdTA0MzhcdTA0M2RcdTA0MzBcdTA0NDJcdTA0MzBcdTA0NDJcdTA0MzBdIGRkZGQgW1x1MDQzMlx1MDQzZV0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQxOFx1MDQzN1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQzMFx1MDQ0Mlx1MDQz''@;'; put 'put ''OFx1MDQzZVx1MDQ0Ml0gZGRkZCBbXHUwNDMyXHUwNDNlXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzNCAlcyIsczoiXHUwNDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDNiXHUw''@;'; put 'put ''NDNhXHUwNDQzIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6IiVkIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsbToiXHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1''@;'; put 'put ''MDQzMCIsbW06IiVkIFx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzOCIsaDoiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQ0N1x1MDQzMFx1MDQ0MSIsaGg6IiVkIFx1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMCIsZDoiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQz''@;'; put 'put ''NFx1MDQzNVx1MDQzZCIsZGQ6IiVkIFx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzMCIsTToiXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0NiIsTU06IiVkIFx1MDQzY1x1MDQzNVx1MDQ0MVx1MDQzNVx1MDQ0Nlx1MDQzOCIseToiXHUwNDM1XHUw''@;'; put 'put ''NDM0XHUwNDNkXHUwNDMwIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCIseXk6IiVkIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzOCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzNVx1MDQzMnxcdTA0MzVcdTA0M2R8XHUwNDQy''@;'; put 'put ''XHUwNDM4fFx1MDQzMlx1MDQzOHxcdTA0NDBcdTA0Mzh8XHUwNDNjXHUwNDM4KS8sb3JkaW5hbDpmdW5jdGlvbihFKXt2YXIgRWU9RSUxMCxVPUUlMTAwO3JldHVybiAwPT09RT9FKyItXHUwNDM1XHUwNDMyIjowPT09VT9FKyItXHUwNDM1XHUwNDNkIjpVPjEwJiZVPDIwP0UrIi1cdTA0NDJc''@;'; put 'put ''dTA0MzgiOjE9PT1FZT9FKyItXHUwNDMyXHUwNDM4IjoyPT09RWU/RSsiLVx1MDQ0MFx1MDQzOCI6Nz09PUVlfHw4PT09RWU/RSsiLVx1MDQzY1x1MDQzOCI6RSsiLVx1MDQ0Mlx1MDQzOCJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDEzODQ5OmZ1bmN0aW9uKFhlLEplLEwp''@;'; put 'put ''eyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgibWwiLHttb250aHM6Ilx1MGQxY1x1MGQyOFx1MGQ0MVx1MGQzNVx1MGQzMFx1MGQzZl9cdTBkMmJcdTBkNDZcdTBkMmNcdTBkNGRcdTBkMzBcdTBkNDFcdTBkMzVcdTBkMzBcdTBkM2ZfXHUwZDJlXHUwZDNlXHUw''@;'; put 'put ''ZDdjXHUwZDFhXHUwZDRkXHUwZDFhXHUwZDRkX1x1MGQwZlx1MGQyYVx1MGQ0ZFx1MGQzMFx1MGQzZlx1MGQ3ZF9cdTBkMmVcdTBkNDdcdTBkMmZcdTBkNGRfXHUwZDFjXHUwZDQyXHUwZDdhX1x1MGQxY1x1MGQ0Mlx1MGQzMlx1MGQ0OF9cdTBkMTNcdTBkMTdcdTBkMzhcdTBkNGRcdTBkMzFc''@;'; put 'put ''dTBkNGRcdTBkMzFcdTBkNGRfXHUwZDM4XHUwZDQ2XHUwZDJhXHUwZDRkXHUwZDMxXHUwZDRkXHUwZDMxXHUwZDAyXHUwZDJjXHUwZDdjX1x1MGQxMlx1MGQxNVx1MGQ0ZFx1MGQxZlx1MGQ0Ylx1MGQyY1x1MGQ3Y19cdTBkMjhcdTBkMzVcdTBkMDJcdTBkMmNcdTBkN2NfXHUwZDIxXHUwZDNm''@;'; put 'put ''XHUwZDM4XHUwZDAyXHUwZDJjXHUwZDdjIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBkMWNcdTBkMjhcdTBkNDEuX1x1MGQyYlx1MGQ0Nlx1MGQyY1x1MGQ0ZFx1MGQzMFx1MGQ0MS5fXHUwZDJlXHUwZDNlXHUwZDdjLl9cdTBkMGZcdTBkMmFcdTBkNGRcdTBkMzBcdTBkM2YuX1x1MGQy''@;'; put 'put ''ZVx1MGQ0N1x1MGQyZlx1MGQ0ZF9cdTBkMWNcdTBkNDJcdTBkN2FfXHUwZDFjXHUwZDQyXHUwZDMyXHUwZDQ4Ll9cdTBkMTNcdTBkMTcuX1x1MGQzOFx1MGQ0Nlx1MGQyYVx1MGQ0ZFx1MGQzMVx1MGQ0ZFx1MGQzMS5fXHUwZDEyXHUwZDE1XHUwZDRkXHUwZDFmXHUwZDRiLl9cdTBkMjhcdTBk''@;'; put 'put ''MzVcdTBkMDIuX1x1MGQyMVx1MGQzZlx1MGQzOFx1MGQwMi4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwZDFlXHUwZDNlXHUwZDJmXHUwZDMxXHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQyNFx1MGQzZlx1MGQxOVx1MGQ0ZFx1MGQxNVx1MGQzM1x1''@;'; put 'put ''MGQzZVx1MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMWFcdTBkNGFcdTBkMzVcdTBkNGRcdTBkMzVcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDJjXHUwZDQxXHUwZDI3XHUwZDI4XHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhX1x1MGQzNVx1MGQ0ZFx1MGQyZlx1MGQzZVx1MGQzNFx1MGQzZVx1''@;'; put 'put ''MGQzNFx1MGQ0ZFx1MGQxYV9cdTBkMzVcdTBkNDZcdTBkMzNcdTBkNGRcdTBkMzNcdTBkM2ZcdTBkMmZcdTBkM2VcdTBkMzRcdTBkNGRcdTBkMWFfXHUwZDM2XHUwZDI4XHUwZDNmXHUwZDJmXHUwZDNlXHUwZDM0XHUwZDRkXHUwZDFhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGQx''@;'; put 'put ''ZVx1MGQzZVx1MGQyZlx1MGQ3Y19cdTBkMjRcdTBkM2ZcdTBkMTlcdTBkNGRcdTBkMTVcdTBkN2VfXHUwZDFhXHUwZDRhXHUwZDM1XHUwZDRkXHUwZDM1X1x1MGQyY1x1MGQ0MVx1MGQyN1x1MGQ3Yl9cdTBkMzVcdTBkNGRcdTBkMmZcdTBkM2VcdTBkMzRcdTBkMDJfXHUwZDM1XHUwZDQ2XHUw''@;'; put 'put ''ZDMzXHUwZDRkXHUwZDMzXHUwZDNmX1x1MGQzNlx1MGQyOFx1MGQzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwZDFlXHUwZDNlX1x1MGQyNFx1MGQzZl9cdTBkMWFcdTBkNGFfXHUwZDJjXHUwZDQxX1x1MGQzNVx1MGQ0ZFx1MGQyZlx1MGQzZV9cdTBkMzVcdTBkNDZfXHUwZDM2Ii5z''@;'; put 'put ''cGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIC1cdTBkMjhcdTBkNDEiLExUUzoiQSBoOm1tOnNzIC1cdTBkMjhcdTBkNDEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIC1cdTBkMjhcdTBkNDEiLExMTEw6ImRkZGQs''@;'; put 'put ''IEQgTU1NTSBZWVlZLCBBIGg6bW0gLVx1MGQyOFx1MGQ0MSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwZDA3XHUwZDI4XHUwZDRkXHUwZDI4XHUwZDRkXSBMVCIsbmV4dERheToiW1x1MGQyOFx1MGQzZVx1MGQzM1x1MGQ0Nl0gTFQiLG5leHRXZWVrOiJkZGRkLCBMVCIsbGFzdERheToiW1x1''@;'; put 'put ''MGQwN1x1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQzMlx1MGQ0Nl0gTFQiLGxhc3RXZWVrOiJbXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUwZDRkXHUwZDFlXSBkZGRkLCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwZDE1XHUwZDM0XHUwZDNmXHUwZDFlXHUw''@;'; put 'put ''ZDRkXHUwZDFlXHUwZDRkIixwYXN0OiIlcyBcdTBkMmVcdTBkNDFcdTBkN2JcdTBkMmFcdTBkNGQiLHM6Ilx1MGQwNVx1MGQ3ZFx1MGQyYSBcdTBkMjhcdTBkM2ZcdTBkMmVcdTBkM2ZcdTBkMzdcdTBkMTlcdTBkNGRcdTBkMTlcdTBkN2UiLHNzOiIlZCBcdTBkMzhcdTBkNDZcdTBkMTVcdTBk''@;'; put 'put ''NGRcdTBkMTVcdTBkN2JcdTBkMjFcdTBkNGQiLG06Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMmVcdTBkM2ZcdTBkMjhcdTBkM2ZcdTBkMzFcdTBkNGRcdTBkMzFcdTBkNGQiLG1tOiIlZCBcdTBkMmVcdTBkM2ZcdTBkMjhcdTBkM2ZcdTBkMzFcdTBkNGRcdTBkMzFcdTBkNGQiLGg6Ilx1MGQx''@;'; put 'put ''Mlx1MGQzMFx1MGQ0MSBcdTBkMmVcdTBkMjNcdTBkM2ZcdTBkMTVcdTBkNGRcdTBkMTVcdTBkNDJcdTBkN2MiLGhoOiIlZCBcdTBkMmVcdTBkMjNcdTBkM2ZcdTBkMTVcdTBkNGRcdTBkMTVcdTBkNDJcdTBkN2MiLGQ6Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMjZcdTBkM2ZcdTBkMzVcdTBk''@;'; put 'put ''MzhcdTBkMDIiLGRkOiIlZCBcdTBkMjZcdTBkM2ZcdTBkMzVcdTBkMzhcdTBkMDIiLE06Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMmVcdTBkM2VcdTBkMzhcdTBkMDIiLE1NOiIlZCBcdTBkMmVcdTBkM2VcdTBkMzhcdTBkMDIiLHk6Ilx1MGQxMlx1MGQzMFx1MGQ0MSBcdTBkMzVcdTBkN2Nc''@;'; put 'put ''dTBkMzdcdTBkMDIiLHl5OiIlZCBcdTBkMzVcdTBkN2NcdTBkMzdcdTBkMDIifSxtZXJpZGllbVBhcnNlOi9cdTBkMzBcdTBkM2VcdTBkMjRcdTBkNGRcdTBkMzBcdTBkM2Z8XHUwZDMwXHUwZDNlXHUwZDM1XHUwZDNmXHUwZDMyXHUwZDQ2fFx1MGQwOVx1MGQxYVx1MGQ0ZFx1MGQxYSBcdTBk''@;'; put 'put ''MTVcdTBkMzRcdTBkM2ZcdTBkMWVcdTBkNGRcdTBkMWVcdTBkNGR8XHUwZDM1XHUwZDQ4XHUwZDE1XHUwZDQxXHUwZDI4XHUwZDRkXHUwZDI4XHUwZDQ3XHUwZDMwXHUwZDAyfFx1MGQzMFx1MGQzZVx1MGQyNFx1MGQ0ZFx1MGQzMFx1MGQzZi9pLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLEVl''@;'; put 'put ''KXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiXHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmIj09PUVlJiZFPj00fHwiXHUwZDA5XHUwZDFhXHUwZDRkXHUwZDFhIFx1MGQxNVx1MGQzNFx1MGQzZlx1MGQxZVx1MGQ0ZFx1MGQxZVx1MGQ0ZCI9PT1FZXx8Ilx1MGQzNVx1MGQ0OFx1''@;'; put 'put ''MGQxNVx1MGQ0MVx1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0N1x1MGQzMFx1MGQwMiI9PT1FZT9FKzEyOkV9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEU8ND8iXHUwZDMwXHUwZDNlXHUwZDI0XHUwZDRkXHUwZDMwXHUwZDNmIjpFPDEyPyJcdTBkMzBcdTBkM2VcdTBkMzVcdTBk''@;'; put 'put ''M2ZcdTBkMzJcdTBkNDYiOkU8MTc/Ilx1MGQwOVx1MGQxYVx1MGQ0ZFx1MGQxYSBcdTBkMTVcdTBkMzRcdTBkM2ZcdTBkMWVcdTBkNGRcdTBkMWVcdTBkNGQiOkU8MjA/Ilx1MGQzNVx1MGQ0OFx1MGQxNVx1MGQ0MVx1MGQyOFx1MGQ0ZFx1MGQyOFx1MGQ0N1x1MGQzMFx1MGQwMiI6Ilx1MGQz''@;'; put 'put ''MFx1MGQzZVx1MGQyNFx1MGQ0ZFx1MGQzMFx1MGQzZiJ9fSl9KEwoMTU0MzkpKX0sMzE5Nzc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihFZSxVLFEsail7c3dpdGNoKFEpe2Nhc2UicyI6cmV0dXJuIFU/Ilx1MDQ0NVx1MDQ0ZFx1MDQz''@;'; put 'put ''NFx1MDQ0NVx1MDQ0ZFx1MDQzZCBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiJcdTA0NDVcdTA0NGRcdTA0MzRcdTA0NDVcdTA0NGRcdTA0M2QgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiXHUwNDNkIjtjYXNlInNzIjpyZXR1cm4gRWUr''@;'; put 'put ''KFU/IiBcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzQiOiIgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiXHUwNDNkIik7Y2FzZSJtIjpjYXNlIm1tIjpyZXR1cm4gRWUrKFU/IiBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiOiIgXHUw''@;'; put 'put ''NDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRiXHUwNDNkIik7Y2FzZSJoIjpjYXNlImhoIjpyZXR1cm4gRWUrKFU/IiBcdTA0NDZcdTA0MzBcdTA0MzMiOiIgXHUwNDQ2XHUwNDMwXHUwNDMzXHUwNDM4XHUwNDM5XHUwNDNkIik7Y2FzZSJkIjpjYXNlImRkIjpyZXR1cm4gRWUrKFU/''@;'; put 'put ''IiBcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0NDAiOiIgXHUwNGU5XHUwNDM0XHUwNDQwXHUwNDM4XHUwNDM5XHUwNDNkIik7Y2FzZSJNIjpjYXNlIk1NIjpyZXR1cm4gRWUrKFU/IiBcdTA0NDFcdTA0MzBcdTA0NDAiOiIgXHUwNDQxXHUwNDMwXHUwNDQwXHUwNDRiXHUwNDNkIik7Y2FzZSJ5Ijpj''@;'; put 'put ''YXNlInl5IjpyZXR1cm4gRWUrKFU/IiBcdTA0MzZcdTA0MzhcdTA0M2IiOiIgXHUwNDM2XHUwNDM4XHUwNDNiXHUwNDM4XHUwNDM5XHUwNDNkIik7ZGVmYXVsdDpyZXR1cm4gRWV9fW1lLmRlZmluZUxvY2FsZSgibW4iLHttb250aHM6Ilx1MDQxZFx1MDQ0ZFx1MDQzM1x1MDQzNFx1MDRhZlx1''@;'; put 'put ''MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDI1XHUwNDNlXHUwNDUxXHUwNDQwXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTNcdTA0NDNcdTA0NDBcdTA0MzBcdTA0MzJcdTA0MzRcdTA0NDNc''@;'; put 'put ''dTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxNFx1MDRlOVx1MDQ0MFx1MDRlOVx1MDQzMlx1MDQzNFx1MDRhZlx1MDQzM1x1MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDIyXHUwNDMwXHUwNDMyXHUwNDM0XHUwNDQzXHUwNDMz''@;'; put 'put ''XHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTdcdTA0NDNcdTA0NDBcdTA0MzNcdTA0MzBcdTA0MzRcdTA0NDNcdTA0MzNcdTA0MzBcdTA0MzBcdTA0NDAgXHUwNDQxXHUwNDMwXHUwNDQwX1x1MDQxNFx1MDQzZVx1MDQzYlx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQz''@;'; put 'put ''MFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDFkXHUwNDMwXHUwNDM5XHUwNDNjXHUwNDM0XHUwNDQzXHUwNDMzXHUwNDMwXHUwNDMwXHUwNDQwIFx1MDQ0MVx1MDQzMFx1MDQ0MF9cdTA0MTVcdTA0NDFcdTA0MzRcdTA0YWZcdTA0MzNcdTA0NGRcdTA0NGRcdTA0NDAgXHUw''@;'; put 'put ''NDQxXHUwNDMwXHUwNDQwX1x1MDQxMFx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDEwXHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNkIFx1MDQzZFx1MDQ0ZFx1MDQzM1x1MDQzNFx1MDRhZlx1MDQzM1x1''@;'; put 'put ''MDQ0ZFx1MDQ0ZFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDBfXHUwNDEwXHUwNDQwXHUwNDMyXHUwNDMwXHUwNDNkIFx1MDQ0NVx1MDQzZVx1MDQ1MVx1MDQ0MFx1MDQzNFx1MDQ0M1x1MDQzM1x1MDQzMFx1MDQzMFx1MDQ0MCBcdTA0NDFcdTA0MzBcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhz''@;'; put 'put ''U2hvcnQ6IjEgXHUwNDQxXHUwNDMwXHUwNDQwXzIgXHUwNDQxXHUwNDMwXHUwNDQwXzMgXHUwNDQxXHUwNDMwXHUwNDQwXzQgXHUwNDQxXHUwNDMwXHUwNDQwXzUgXHUwNDQxXHUwNDMwXHUwNDQwXzYgXHUwNDQxXHUwNDMwXHUwNDQwXzcgXHUwNDQxXHUwNDMwXHUwNDQwXzggXHUwNDQxXHUw''@;'; put 'put ''NDMwXHUwNDQwXzkgXHUwNDQxXHUwNDMwXHUwNDQwXzEwIFx1MDQ0MVx1MDQzMFx1MDQ0MF8xMSBcdTA0NDFcdTA0MzBcdTA0NDBfMTIgXHUwNDQxXHUwNDMwXHUwNDQwIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDQxZFx1MDQ0Zlx1MDQzY19cdTA0MTRc''@;'; put 'put ''dTA0MzBcdTA0MzJcdTA0MzBcdTA0MzBfXHUwNDFjXHUwNDRmXHUwNDMzXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQxYlx1MDQ0NVx1MDQzMFx1MDQzM1x1MDQzMlx1MDQzMF9cdTA0MWZcdTA0YWZcdTA0NDBcdTA0NGRcdTA0MzJfXHUwNDExXHUwNDMwXHUwNDMwXHUwNDQxXHUwNDMwXHUwNDNk''@;'; put 'put ''X1x1MDQxMVx1MDQ0Zlx1MDQzY1x1MDQzMVx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0MWRcdTA0NGZcdTA0M2NfXHUwNDE0XHUwNDMwXHUwNDMyX1x1MDQxY1x1MDQ0Zlx1MDQzM19cdTA0MWJcdTA0NDVcdTA0MzBfXHUwNDFmXHUwNGFmXHUwNDQwX1x1MDQxMVx1MDQz''@;'; put 'put ''MFx1MDQzMF9cdTA0MTFcdTA0NGZcdTA0M2MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQxZFx1MDQ0Zl9cdTA0MTRcdTA0MzBfXHUwNDFjXHUwNDRmX1x1MDQxYlx1MDQ0NV9cdTA0MWZcdTA0YWZfXHUwNDExXHUwNDMwX1x1MDQxMVx1MDQ0ZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Bh''@;'; put 'put ''cnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IllZWVkgXHUwNDNlXHUwNDNkXHUwNDRiIE1NTU1cdTA0NGJcdTA0M2QgRCIsTExMOiJZWVlZIFx1MDQzZVx1MDQzZFx1MDQ0YiBNTU1NXHUwNDRiXHUwNDNkIEQg''@;'; put 'put ''SEg6bW0iLExMTEw6ImRkZGQsIFlZWVkgXHUwNDNlXHUwNDNkXHUwNDRiIE1NTU1cdTA0NGJcdTA0M2QgRCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDRhZVx1MDRlOHxcdTA0YWVcdTA0MjUvaSxpc1BNOmZ1bmN0aW9uKEVlKXtyZXR1cm4iXHUwNGFlXHUwNDI1Ij09PUVlfSxtZXJpZGll''@;'; put 'put ''bTpmdW5jdGlvbihFZSxVLFEpe3JldHVybiBFZTwxMj8iXHUwNGFlXHUwNGU4IjoiXHUwNGFlXHUwNDI1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0ZThcdTA0M2RcdTA0ZTlcdTA0ZTlcdTA0MzRcdTA0ZTlcdTA0NDBdIExUIixuZXh0RGF5OiJbXHUwNDFjXHUwNDMwXHUwNDQwXHUwNDMz''@;'; put 'put ''XHUwNDMwXHUwNDMwXHUwNDQ4XSBMVCIsbmV4dFdlZWs6IltcdTA0MThcdTA0NDBcdTA0NGRcdTA0NDVdIGRkZGQgTFQiLGxhc3REYXk6IltcdTA0ZThcdTA0NDdcdTA0MzhcdTA0MzNcdTA0MzRcdTA0ZTlcdTA0NDBdIExUIixsYXN0V2VlazoiW1x1MDRlOFx1MDQzZFx1MDQzM1x1MDRlOVx1''@;'; put 'put ''MDQ0MFx1MDQ0MVx1MDRlOVx1MDQzZF0gZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNDM0XHUwNDMwXHUwNDQwXHUwNDMwXHUwNDMwIixwYXN0OiIlcyBcdTA0ZTlcdTA0M2NcdTA0M2RcdTA0ZTkiLHM6QixzczpCLG06QixtbTpCLGg6QixoaDpC''@;'; put 'put ''LGQ6QixkZDpCLE06QixNTTpCLHk6Qix5eTpCfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9IFx1MDRlOVx1MDQzNFx1MDRlOVx1MDQ0MC8sb3JkaW5hbDpmdW5jdGlvbihFZSxVKXtzd2l0Y2goVSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRWUrIiBcdTA0ZTlc''@;'; put 'put ''dTA0MzRcdTA0ZTlcdTA0NDAiO2RlZmF1bHQ6cmV0dXJuIEVlfX19KX0oTCgxNTQzOSkpfSw2NjE4NDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUwOTY3IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIi''@;'; put 'put ''LDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4OiJcdTA5NmUiLDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0sRT17Ilx1MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5IjoiMyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIiOiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4Iiwi''@;'; put 'put ''XHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAifTtmdW5jdGlvbiBFZShRLGoscmUsYWUpe3ZhciBZPSIiO2lmKGopc3dpdGNoKHJlKXtjYXNlInMiOlk9Ilx1MDkxNVx1MDkzZVx1MDkzOVx1MDk0MCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5MDJcdTA5MjYiO2JyZWFrO2Nhc2Uic3MiOlk9IiVkIFx1''@;'; put 'put ''MDkzOFx1MDk0N1x1MDkxNVx1MDkwMlx1MDkyNiI7YnJlYWs7Y2FzZSJtIjpZPSJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTNmXHUwOTI4XHUwOTNmXHUwOTFmIjticmVhaztjYXNlIm1tIjpZPSIlZCBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5M2ZcdTA5MWZcdTA5NDciO2JyZWFrO2Nhc2UiaCI6''@;'; put 'put ''WT0iXHUwOTBmXHUwOTE1IFx1MDkyNFx1MDkzZVx1MDkzOCI7YnJlYWs7Y2FzZSJoaCI6WT0iJWQgXHUwOTI0XHUwOTNlXHUwOTM4IjticmVhaztjYXNlImQiOlk9Ilx1MDkwZlx1MDkxNSBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5MzgiO2JyZWFrO2Nhc2UiZGQiOlk9IiVkIFx1MDkyNlx1MDkz''@;'; put 'put ''Zlx1MDkzNVx1MDkzOCI7YnJlYWs7Y2FzZSJNIjpZPSJcdTA5MGZcdTA5MTUgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTNlIjticmVhaztjYXNlIk1NIjpZPSIlZCBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5NDciO2JyZWFrO2Nhc2UieSI6WT0iXHUwOTBmXHUwOTE1IFx1MDkz''@;'; put 'put ''NVx1MDkzMFx1MDk0ZFx1MDkzNyI7YnJlYWs7Y2FzZSJ5eSI6WT0iJWQgXHUwOTM1XHUwOTMwXHUwOTRkXHUwOTM3XHUwOTQ3In1lbHNlIHN3aXRjaChyZSl7Y2FzZSJzIjpZPSJcdTA5MTVcdTA5M2VcdTA5MzlcdTA5NDAgXHUwOTM4XHUwOTQ3XHUwOTE1XHUwOTAyXHUwOTI2XHUwOTNlXHUw''@;'; put 'put ''OTAyIjticmVhaztjYXNlInNzIjpZPSIlZCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5MDJcdTA5MjZcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UibSI6WT0iXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1MDkzZlx1MDkyOFx1MDkzZlx1MDkxZlx1MDkzZSI7YnJlYWs7Y2FzZSJtbSI6WT0iJWQg''@;'; put 'put ''XHUwOTJlXHUwOTNmXHUwOTI4XHUwOTNmXHUwOTFmXHUwOTNlXHUwOTAyIjticmVhaztjYXNlImgiOlk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MjRcdTA5M2VcdTA5MzhcdTA5M2UiO2JyZWFrO2Nhc2UiaGgiOlk9IiVkIFx1MDkyNFx1MDkzZVx1MDkzOFx1MDkzZVx1MDkwMiI7YnJlYWs7''@;'; put 'put ''Y2FzZSJkIjpZPSJcdTA5MGZcdTA5MTVcdTA5M2UgXHUwOTI2XHUwOTNmXHUwOTM1XHUwOTM4XHUwOTNlIjticmVhaztjYXNlImRkIjpZPSIlZCBcdTA5MjZcdTA5M2ZcdTA5MzVcdTA5MzhcdTA5M2VcdTA5MDIiO2JyZWFrO2Nhc2UiTSI6WT0iXHUwOTBmXHUwOTE1XHUwOTNlIFx1MDkyZVx1''@;'; put 'put ''MDkzOVx1MDkzZlx1MDkyOFx1MDk0ZFx1MDkyZlx1MDkzZSI7YnJlYWs7Y2FzZSJNTSI6WT0iJWQgXHUwOTJlXHUwOTM5XHUwOTNmXHUwOTI4XHUwOTRkXHUwOTJmXHUwOTNlXHUwOTAyIjticmVhaztjYXNlInkiOlk9Ilx1MDkwZlx1MDkxNVx1MDkzZSBcdTA5MzVcdTA5MzBcdTA5NGRcdTA5''@;'; put 'put ''MzdcdTA5M2UiO2JyZWFrO2Nhc2UieXkiOlk9IiVkIFx1MDkzNVx1MDkzMFx1MDk0ZFx1MDkzN1x1MDkzZVx1MDkwMiJ9cmV0dXJuIFkucmVwbGFjZSgvJWQvaSxRKX1tZS5kZWZpbmVMb2NhbGUoIm1yIix7bW9udGhzOiJcdTA5MWNcdTA5M2VcdTA5MjhcdTA5NDdcdTA5MzVcdTA5M2VcdTA5''@;'; put 'put ''MzBcdTA5NDBfXHUwOTJiXHUwOTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxXHUwOTM1XHUwOTNlXHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MGZcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2ZcdTA5MzJfXHUwOTJlXHUwOTQ3X1x1MDkxY1x1MDk0Mlx1''@;'; put 'put ''MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJcdTA5NDhfXHUwOTExXHUwOTE3XHUwOTM4XHUwOTRkXHUwOTFmX1x1MDkzOFx1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMF9cdTA5MTFcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBfXHUwOTI4XHUwOTRi''@;'; put 'put ''XHUwOTM1XHUwOTRkXHUwOTM5XHUwOTQ3XHUwOTAyXHUwOTJjXHUwOTMwX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMlx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTNlXHUwOTI4XHUwOTQ3Ll9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5''@;'; put 'put ''MzBcdTA5NDEuX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYS5fXHUwOTBmXHUwOTJhXHUwOTRkXHUwOTMwXHUwOTNmLl9cdTA5MmVcdTA5NDcuX1x1MDkxY1x1MDk0Mlx1MDkyOC5fXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTQ4Ll9cdTA5MTFcdTA5MTcuX1x1MDkzOFx1MDkyYVx1MDk0''@;'; put 'put ''ZFx1MDkxZlx1MDk0N1x1MDkwMi5fXHUwOTExXHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiLl9cdTA5MjhcdTA5NGJcdTA5MzVcdTA5NGRcdTA5MzlcdTA5NDdcdTA5MDIuX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkwMi4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVr''@;'; put 'put ''ZGF5czoiXHUwOTMwXHUwOTM1XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkzOFx1MDk0Ylx1MDkyZVx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MDJcdTA5MTdcdTA5MzNcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTM1XHUwOTNlXHUwOTMwX1x1MDkx''@;'; put 'put ''N1x1MDk0MVx1MDkzMFx1MDk0Mlx1MDkzNVx1MDkzZVx1MDkzMF9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBcdTA5MzVcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTM1XHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkzMFx1MDkzNVx1''@;'; put 'put ''MDkzZl9cdTA5MzhcdTA5NGJcdTA5MmVfXHUwOTJlXHUwOTAyXHUwOTE3XHUwOTMzX1x1MDkyY1x1MDk0MVx1MDkyN19cdTA5MTdcdTA5NDFcdTA5MzBcdTA5NDJfXHUwOTM2XHUwOTQxXHUwOTE1XHUwOTRkXHUwOTMwX1x1MDkzNlx1MDkyOFx1MDkzZiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01p''@;'; put 'put ''bjoiXHUwOTMwX1x1MDkzOFx1MDk0Yl9cdTA5MmVcdTA5MDJfXHUwOTJjXHUwOTQxX1x1MDkxN1x1MDk0MV9cdTA5MzZcdTA5NDFfXHUwOTM2Ii5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MDkzNVx1MDkzZVx1MDkxY1x1MDkyNFx1MDkzZSIsTFRTOiJBIGg6bW06''@;'; put 'put ''c3MgXHUwOTM1XHUwOTNlXHUwOTFjXHUwOTI0XHUwOTNlIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTA5MzVcdTA5M2VcdTA5MWNcdTA5MjRcdTA5M2UiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwOTM1XHUw''@;'; put 'put ''OTNlXHUwOTFjXHUwOTI0XHUwOTNlIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA5MDZcdTA5MWNdIExUIixuZXh0RGF5OiJbXHUwOTA5XHUwOTI2XHUwOTRkXHUwOTJmXHUwOTNlXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwOTE1XHUwOTNlXHUwOTMyXSBMVCIsbGFz''@;'; put 'put ''dFdlZWs6IltcdTA5MmVcdTA5M2VcdTA5MTdcdTA5NDBcdTA5MzJdIGRkZGQsIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1MDkyZVx1MDkyN1x1MDk0ZFx1MDkyZlx1MDk0NyIscGFzdDoiJXNcdTA5MmFcdTA5NDJcdTA5MzBcdTA5NGRcdTA5MzVcdTA5NDAi''@;'; put 'put ''LHM6RWUsc3M6RWUsbTpFZSxtbTpFZSxoOkVlLGhoOkVlLGQ6RWUsZGQ6RWUsTTpFZSxNTTpFZSx5OkVlLHl5OkVlfSxwcmVwYXJzZTpmdW5jdGlvbihRKXtyZXR1cm4gUS5yZXBsYWNlKC9bXHUwOTY3XHUwOTY4XHUwOTY5XHUwOTZhXHUwOTZiXHUwOTZjXHUwOTZkXHUwOTZlXHUwOTZmXHUw''@;'; put 'put ''OTY2XS9nLGZ1bmN0aW9uKGope3JldHVybiBFW2pdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oUSl7cmV0dXJuIFEucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihqKXtyZXR1cm4gQltqXX0pfSxtZXJpZGllbVBhcnNlOi9cdTA5MmFcdTA5MzlcdTA5M2VcdTA5MWZcdTA5NDd8XHUwOTM4XHUwOTE1''@;'; put 'put ''XHUwOTNlXHUwOTMzXHUwOTQwfFx1MDkyNlx1MDk0MVx1MDkyYVx1MDkzZVx1MDkzMFx1MDk0MHxcdTA5MzhcdTA5M2VcdTA5MmZcdTA5MDJcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDB8XHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24o''@;'; put 'put ''USxqKXtyZXR1cm4gMTI9PT1RJiYoUT0wKSwiXHUwOTJhXHUwOTM5XHUwOTNlXHUwOTFmXHUwOTQ3Ij09PWp8fCJcdTA5MzhcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDAiPT09aj9ROiJcdTA5MjZcdTA5NDFcdTA5MmFcdTA5M2VcdTA5MzBcdTA5NDAiPT09anx8Ilx1MDkzOFx1MDkzZVx1MDky''@;'; put 'put ''Zlx1MDkwMlx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MCI9PT1qfHwiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTRkXHUwOTMwXHUwOTQwIj09PWo/UT49MTI/UTpRKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oUSxqLHJlKXtyZXR1cm4gUT49MCYmUTw2PyJcdTA5MmFcdTA5MzlcdTA5M2Vc''@;'; put 'put ''dTA5MWZcdTA5NDciOlE8MTI/Ilx1MDkzOFx1MDkxNVx1MDkzZVx1MDkzM1x1MDk0MCI6UTwxNz8iXHUwOTI2XHUwOTQxXHUwOTJhXHUwOTNlXHUwOTMwXHUwOTQwIjpRPDIwPyJcdTA5MzhcdTA5M2VcdTA5MmZcdTA5MDJcdTA5MTVcdTA5M2VcdTA5MzNcdTA5NDAiOiJcdTA5MzBcdTA5M2Vc''@;'; put 'put ''dTA5MjRcdTA5NGRcdTA5MzBcdTA5NDAifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSw2NDUyNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIm1zLW15Iix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hY19B''@;'; put 'put ''cHJpbF9NZWlfSnVuX0p1bGFpX09nb3NfU2VwdGVtYmVyX09rdG9iZXJfTm92ZW1iZXJfRGlzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GZWJfTWFjX0Fwcl9NZWlfSnVuX0p1bF9PZ3NfU2VwX09rdF9Ob3ZfRGlzIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJBaGFkX0lzbmlu''@;'; put 'put ''X1NlbGFzYV9SYWJ1X0toYW1pc19KdW1hYXRfU2FidHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQWhkX0lzbl9TZWxfUmFiX0toYV9KdW1fU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJBaF9Jc19TbF9SYl9LbV9KbV9TYiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6''@;'; put 'put ''IkhILm1tIixMVFM6IkhILm1tLnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgW3B1a3VsXSBISC5tbSJ9LG1lcmlkaWVtUGFyc2U6L3BhZ2l8dGVuZ2FoYXJpfHBldGFuZ3xt''@;'; put 'put ''YWxhbS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsRWUpe3JldHVybiAxMj09PUUmJihFPTApLCJwYWdpIj09PUVlP0U6InRlbmdhaGFyaSI9PT1FZT9FPj0xMT9FOkUrMTI6InBldGFuZyI9PT1FZXx8Im1hbGFtIj09PUVlP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlvbihFLEVlLFUp''@;'; put 'put ''e3JldHVybiBFPDExPyJwYWdpIjpFPDE1PyJ0ZW5nYWhhcmkiOkU8MTk/InBldGFuZyI6Im1hbGFtIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIYXJpIGluaSBwdWt1bF0gTFQiLG5leHREYXk6IltFc29rIHB1a3VsXSBMVCIsbmV4dFdlZWs6ImRkZGQgW3B1a3VsXSBMVCIsbGFzdERheToiW0tl''@;'; put 'put ''bG1hcmluIHB1a3VsXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2xlcGFzIHB1a3VsXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFsYW0gJXMiLHBhc3Q6IiVzIHlhbmcgbGVwYXMiLHM6ImJlYmVyYXBhIHNhYXQiLHNzOiIlZCBzYWF0IixtOiJzZW1pbml0IixtbToi''@;'; put 'put ''JWQgbWluaXQiLGg6InNlamFtIixoaDoiJWQgamFtIixkOiJzZWhhcmkiLGRkOiIlZCBoYXJpIixNOiJzZWJ1bGFuIixNTToiJWQgYnVsYW4iLHk6InNldGFodW4iLHl5OiIlZCB0YWh1biJ9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDcwNDg1OmZ1bmN0aW9uKFhlLEplLEwp''@;'; put 'put ''eyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgibXMiLHttb250aHM6IkphbnVhcmlfRmVicnVhcmlfTWFjX0FwcmlsX01laV9KdW5fSnVsYWlfT2dvc19TZXB0ZW1iZXJfT2t0b2Jlcl9Ob3ZlbWJlcl9EaXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoi''@;'; put 'put ''SmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX09nc19TZXBfT2t0X05vdl9EaXMiLnNwbGl0KCJfIiksd2Vla2RheXM6IkFoYWRfSXNuaW5fU2VsYXNhX1JhYnVfS2hhbWlzX0p1bWFhdF9TYWJ0dSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJBaGRfSXNuX1NlbF9SYWJfS2hhX0p1bV9T''@;'; put 'put ''YWIiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFoX0lzX1NsX1JiX0ttX0ptX1NiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEgubW0iLExUUzoiSEgubW0uc3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1t''@;'; put 'put ''IixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBbcHVrdWxdIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovcGFnaXx0ZW5nYWhhcml8cGV0YW5nfG1hbGFtLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxFZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksInBhZ2kiPT09RWU/RToidGVuZ2FoYXJpIj09PUVl''@;'; put 'put ''P0U+PTExP0U6RSsxMjoicGV0YW5nIj09PUVlfHwibWFsYW0iPT09RWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEU8MTE/InBhZ2kiOkU8MTU/InRlbmdhaGFyaSI6RTwxOT8icGV0YW5nIjoibWFsYW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hhcmkg''@;'; put 'put ''aW5pIHB1a3VsXSBMVCIsbmV4dERheToiW0Vzb2sgcHVrdWxdIExUIixuZXh0V2VlazoiZGRkZCBbcHVrdWxdIExUIixsYXN0RGF5OiJbS2VsbWFyaW4gcHVrdWxdIExUIixsYXN0V2VlazoiZGRkZCBbbGVwYXMgcHVrdWxdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJl''@;'; put 'put ''OiJkYWxhbSAlcyIscGFzdDoiJXMgeWFuZyBsZXBhcyIsczoiYmViZXJhcGEgc2FhdCIsc3M6IiVkIHNhYXQiLG06InNlbWluaXQiLG1tOiIlZCBtaW5pdCIsaDoic2VqYW0iLGhoOiIlZCBqYW0iLGQ6InNlaGFyaSIsZGQ6IiVkIGhhcmkiLE06InNlYnVsYW4iLE1NOiIlZCBidWxhbiIseToi''@;'; put 'put ''c2V0YWh1biIseXk6IiVkIHRhaHVuIn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMzY2ODE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJtdCIse21vbnRoczoiSmFubmFyX0ZyYXJfTWFyenVfQXByaWxfTWVq''@;'; put 'put ''anVfXHUwMTIwdW5qdV9MdWxqdV9Bd3dpc3N1X1NldHRlbWJydV9PdHR1YnJ1X05vdmVtYnJ1X0RpXHUwMTBiZW1icnUiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ikphbl9GcmFfTWFyX0Fwcl9NZWpfXHUwMTIwdW5fTHVsX0F3d19TZXRfT3R0X05vdl9EaVx1MDEwYiIuc3BsaXQoIl8iKSx3''@;'; put 'put ''ZWVrZGF5czoiSWwtXHUwMTI2YWRkX0l0LVRuZWpuX0l0LVRsaWV0YV9MLUVyYmdcdTAxMjdhX0lsLVx1MDEyNmFtaXNfSWwtXHUwMTIwaW1nXHUwMTI3YV9Jcy1TaWJ0Ii5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDEyNmFkX1RuZV9UbGlfRXJiX1x1MDEyNmFtX1x1MDEyMGltX1Np''@;'; put 'put ''YiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwMTI2YV9Ubl9UbF9Fcl9cdTAxMjZhX1x1MDEyMGlfU2kiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZ''@;'; put 'put ''IEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbSWxsdW0gZmlsLV1MVCIsbmV4dERheToiW0dcdTAxMjdhZGEgZmlsLV1MVCIsbmV4dFdlZWs6ImRkZGQgW2ZpbC1dTFQiLGxhc3REYXk6IltJbC1iaWVyYVx1MDEyNyBmaWwtXUxUIixs''@;'; put 'put ''YXN0V2VlazoiZGRkZCBbbGkgZ1x1MDEyN2FkZGFdIFtmaWwtXUxUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJmXHUyMDE5ICVzIixwYXN0OiIlcyBpbHUiLHM6ImZ0aXQgc2Vrb25kaSIsc3M6IiVkIHNla29uZGkiLG06Im1pbnV0YSIsbW06IiVkIG1pbnV0aSIsaDoi''@;'; put 'put ''c2llZ1x1MDEyN2EiLGhoOiIlZCBzaWVnXHUwMTI3YXQiLGQ6Ilx1MDEyMXVybmF0YSIsZGQ6IiVkIFx1MDEyMXJhbmV0IixNOiJ4YWhhciIsTU06IiVkIHhodXIiLHk6InNlbmEiLHl5OiIlZCBzbmkifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRc''@;'; put 'put ''eGJhIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw1MjAyNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiXHUxMDQxIiwyOiJcdTEwNDIiLDM6Ilx1MTA0MyIsNDoiXHUxMDQ0Iiw1OiJcdTEwNDUiLDY6Ilx1MTA0NiIsNzoi''@;'; put 'put ''XHUxMDQ3Iiw4OiJcdTEwNDgiLDk6Ilx1MTA0OSIsMDoiXHUxMDQwIn0sRT17Ilx1MTA0MSI6IjEiLCJcdTEwNDIiOiIyIiwiXHUxMDQzIjoiMyIsIlx1MTA0NCI6IjQiLCJcdTEwNDUiOiI1IiwiXHUxMDQ2IjoiNiIsIlx1MTA0NyI6IjciLCJcdTEwNDgiOiI4IiwiXHUxMDQ5IjoiOSIsIlx1''@;'; put 'put ''MTA0MCI6IjAifTttZS5kZWZpbmVMb2NhbGUoIm15Iix7bW9udGhzOiJcdTEwMDdcdTEwMTRcdTEwM2FcdTEwMTRcdTEwMWRcdTEwMmJcdTEwMWJcdTEwMmVfXHUxMDE2XHUxMDMxXHUxMDE2XHUxMDMxXHUxMDJjXHUxMDNhXHUxMDFkXHUxMDJiXHUxMDFiXHUxMDJlX1x1MTAxOVx1MTAxMFx1''@;'; put 'put ''MTAzYV9cdTEwMjdcdTEwMTVcdTEwM2NcdTEwMmVfXHUxMDE5XHUxMDMxX1x1MTAwN1x1MTAzZFx1MTAxNFx1MTAzYV9cdTEwMDdcdTEwMzBcdTEwMWNcdTEwMmRcdTEwMmZcdTEwMDRcdTEwM2FfXHUxMDFlXHUxMDNjXHUxMDAyXHUxMDJmXHUxMDEwXHUxMDNhX1x1MTAwNVx1MTAwMFx1MTAz''@;'; put 'put ''YVx1MTAxMFx1MTAwNFx1MTAzYVx1MTAxOFx1MTAyY19cdTEwMjFcdTEwMzFcdTEwMmNcdTEwMDBcdTEwM2FcdTEwMTBcdTEwMmRcdTEwMmZcdTEwMThcdTEwMmNfXHUxMDE0XHUxMDJkXHUxMDJmXHUxMDFkXHUxMDA0XHUxMDNhXHUxMDE4XHUxMDJjX1x1MTAxMlx1MTAyZVx1MTAwN1x1MTAw''@;'; put 'put ''NFx1MTAzYVx1MTAxOFx1MTAyYyIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUxMDA3XHUxMDE0XHUxMDNhX1x1MTAxNlx1MTAzMV9cdTEwMTlcdTEwMTBcdTEwM2FfXHUxMDE1XHUxMDNjXHUxMDJlX1x1MTAxOVx1MTAzMV9cdTEwMDdcdTEwM2RcdTEwMTRcdTEwM2FfXHUxMDFjXHUxMDJk''@;'; put 'put ''XHUxMDJmXHUxMDA0XHUxMDNhX1x1MTAxZVx1MTAzY19cdTEwMDVcdTEwMDBcdTEwM2FfXHUxMDIxXHUxMDMxXHUxMDJjXHUxMDAwXHUxMDNhX1x1MTAxNFx1MTAyZFx1MTAyZl9cdTEwMTJcdTEwMmUiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MTAxMFx1MTAxNFx1MTAwNFx1MTAzYVx1MTAz''@;'; put 'put ''OVx1MTAwMlx1MTAxNFx1MTAzZFx1MTAzMV9cdTEwMTBcdTEwMTRcdTEwMDRcdTEwM2FcdTEwMzlcdTEwMWNcdTEwMmNfXHUxMDIxXHUxMDA0XHUxMDNhXHUxMDM5XHUxMDAyXHUxMDJiX1x1MTAxN1x1MTAyZlx1MTAxMlx1MTAzOVx1MTAxM1x1MTAxZlx1MTAzMFx1MTAzOF9cdTEwMDBcdTEw''@;'; put 'put ''M2NcdTEwMmNcdTEwMWVcdTEwMTVcdTEwMTBcdTEwMzFcdTEwMzhfXHUxMDFlXHUxMDMxXHUxMDJjXHUxMDAwXHUxMDNjXHUxMDJjX1x1MTAwNVx1MTAxNFx1MTAzMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTEwMTRcdTEwM2RcdTEwMzFfXHUxMDFjXHUxMDJjX1x1MTAwMlx1MTAy''@;'; put 'put ''Yl9cdTEwMWZcdTEwMzBcdTEwMzhfXHUxMDAwXHUxMDNjXHUxMDJjX1x1MTAxZVx1MTAzMVx1MTAyY19cdTEwMTRcdTEwMzEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MTAxNFx1MTAzZFx1MTAzMV9cdTEwMWNcdTEwMmNfXHUxMDAyXHUxMDJiX1x1MTAxZlx1MTAzMFx1MTAzOF9cdTEw''@;'; put 'put ''MDBcdTEwM2NcdTEwMmNfXHUxMDFlXHUxMDMxXHUxMDJjX1x1MTAxNFx1MTAzMSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRk''@;'; put 'put ''ZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MTAxYVx1MTAxNFx1MTAzMS5dIExUIFtcdTEwMTlcdTEwM2VcdTEwMmNdIixuZXh0RGF5OiJbXHUxMDE5XHUxMDE0XHUxMDAwXHUxMDNhXHUxMDE2XHUxMDNjXHUxMDE0XHUxMDNhXSBMVCBbXHUxMDE5XHUxMDNl''@;'; put 'put ''XHUxMDJjXSIsbmV4dFdlZWs6ImRkZGQgTFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLGxhc3REYXk6IltcdTEwMTlcdTEwMTRcdTEwMzEuXHUxMDAwXSBMVCBbXHUxMDE5XHUxMDNlXHUxMDJjXSIsbGFzdFdlZWs6IltcdTEwMTVcdTEwM2NcdTEwMmVcdTEwMzhcdTEwMDFcdTEwMzJcdTEwMzdc''@;'; put 'put ''dTEwMWVcdTEwMzFcdTEwMmNdIGRkZGQgTFQgW1x1MTAxOVx1MTAzZVx1MTAyY10iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MTAxY1x1MTAyY1x1MTAxOVx1MTAwYVx1MTAzYVx1MTAzNyAlcyBcdTEwMTlcdTEwM2VcdTEwMmMiLHBhc3Q6Ilx1MTAxY1x1MTAzZFx1''@;'; put 'put ''MTAxNFx1MTAzYVx1MTAwMVx1MTAzMlx1MTAzN1x1MTAxZVx1MTAzMVx1MTAyYyAlcyBcdTEwMDAiLHM6Ilx1MTAwNVx1MTAwMFx1MTAzOVx1MTAwMFx1MTAxNFx1MTAzYS5cdTEwMjFcdTEwMTRcdTEwMGFcdTEwM2FcdTEwMzhcdTEwMDRcdTEwMWFcdTEwM2EiLHNzOiIlZCBcdTEwMDVcdTEw''@;'; put 'put ''MDBcdTEwMzlcdTEwMDBcdTEwMTRcdTEwMzdcdTEwM2EiLG06Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxOVx1MTAyZFx1MTAxNFx1MTAwNVx1MTAzYSIsbW06IiVkIFx1MTAxOVx1MTAyZFx1MTAxNFx1MTAwNVx1MTAzYSIsaDoiXHUxMDEwXHUxMDA1XHUxMDNhXHUxMDE0XHUxMDJjXHUxMDFi''@;'; put 'put ''XHUxMDJlIixoaDoiJWQgXHUxMDE0XHUxMDJjXHUxMDFiXHUxMDJlIixkOiJcdTEwMTBcdTEwMDVcdTEwM2FcdTEwMWJcdTEwMDBcdTEwM2EiLGRkOiIlZCBcdTEwMWJcdTEwMDBcdTEwM2EiLE06Ilx1MTAxMFx1MTAwNVx1MTAzYVx1MTAxYyIsTU06IiVkIFx1MTAxYyIseToiXHUxMDEwXHUx''@;'; put 'put ''MDA1XHUxMDNhXHUxMDE0XHUxMDNlXHUxMDA1XHUxMDNhIix5eToiJWQgXHUxMDE0XHUxMDNlXHUxMDA1XHUxMDNhIn0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MTA0MVx1MTA0Mlx1MTA0M1x1MTA0NFx1MTA0NVx1MTA0Nlx1MTA0N1x1MTA0OFx1MTA0OVx1''@;'; put 'put ''MTA0MF0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNDI2ODg6ZnVuY3Rpb24oWGUsSmUsTCl7''@;'; put 'put ''IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJuYiIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFyc19hcHJpbF9tYWlfanVuaV9qdWxpX2F1Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZXNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoi''@;'; put 'put ''amFuLl9mZWIuX21hcnNfYXByLl9tYWlfanVuaV9qdWxpX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVzLiIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJzXHhmOG5kYWdfbWFuZGFnX3RpcnNkYWdfb25zZGFnX3RvcnNkYWdfZnJlZGFnX2xceGY4cmRhZyIuc3BsaXQo''@;'; put 'put ''Il8iKSx3ZWVrZGF5c1Nob3J0OiJzXHhmOC5fbWEuX3RpLl9vbi5fdG8uX2ZyLl9sXHhmOC4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46InNceGY4X21hX3RpX29uX3RvX2ZyX2xceGY4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1t''@;'; put 'put ''IixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBba2wuXSBISDptbSIsTExMTDoiZGRkZCBELiBNTU1NIFlZWVkgW2tsLl0gSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2kgZGFnIGtsLl0gTFQiLG5leHREYXk6Iltp''@;'; put 'put ''IG1vcmdlbiBrbC5dIExUIixuZXh0V2VlazoiZGRkZCBba2wuXSBMVCIsbGFzdERheToiW2kgZ1x4ZTVyIGtsLl0gTFQiLGxhc3RXZWVrOiJbZm9ycmlnZV0gZGRkZCBba2wuXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib20gJXMiLHBhc3Q6IiVzIHNpZGVuIixz''@;'; put 'put ''OiJub2VuIHNla3VuZGVyIixzczoiJWQgc2VrdW5kZXIiLG06ImV0dCBtaW51dHQiLG1tOiIlZCBtaW51dHRlciIsaDoiZW4gdGltZSIsaGg6IiVkIHRpbWVyIixkOiJlbiBkYWciLGRkOiIlZCBkYWdlciIsdzoiZW4gdWtlIix3dzoiJWQgdWtlciIsTToiZW4gbVx4ZTVuZWQiLE1NOiIlZCBt''@;'; put 'put ''XHhlNW5lZGVyIix5OiJldHQgXHhlNXIiLHl5OiIlZCBceGU1ciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw2ODkxNDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ug''@;'; put 'put ''c3RyaWN0Ijt2YXIgQj17MToiXHUwOTY3IiwyOiJcdTA5NjgiLDM6Ilx1MDk2OSIsNDoiXHUwOTZhIiw1OiJcdTA5NmIiLDY6Ilx1MDk2YyIsNzoiXHUwOTZkIiw4OiJcdTA5NmUiLDk6Ilx1MDk2ZiIsMDoiXHUwOTY2In0sRT17Ilx1MDk2NyI6IjEiLCJcdTA5NjgiOiIyIiwiXHUwOTY5Ijoi''@;'; put 'put ''MyIsIlx1MDk2YSI6IjQiLCJcdTA5NmIiOiI1IiwiXHUwOTZjIjoiNiIsIlx1MDk2ZCI6IjciLCJcdTA5NmUiOiI4IiwiXHUwOTZmIjoiOSIsIlx1MDk2NiI6IjAifTttZS5kZWZpbmVMb2NhbGUoIm5lIix7bW9udGhzOiJcdTA5MWNcdTA5MjhcdTA5MzVcdTA5MzBcdTA5NDBfXHUwOTJiXHUw''@;'; put 'put ''OTQ3XHUwOTJjXHUwOTRkXHUwOTMwXHUwOTQxXHUwOTM1XHUwOTMwXHUwOTQwX1x1MDkyZVx1MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2ZcdTA5MzJfXHUwOTJlXHUwOTA4X1x1MDkxY1x1MDk0MVx1MDkyOF9cdTA5MWNcdTA5NDFcdTA5MzJc''@;'; put 'put ''dTA5M2VcdTA5MDhfXHUwOTA1XHUwOTE3XHUwOTM3XHUwOTRkXHUwOTFmX1x1MDkzOFx1MDk0N1x1MDkyYVx1MDk0ZFx1MDkxZlx1MDk0N1x1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMF9cdTA5MDVcdTA5MTVcdTA5NGRcdTA5MWZcdTA5NGJcdTA5MmNcdTA5MzBfXHUwOTI4XHUwOTRiXHUwOTJk''@;'; put 'put ''XHUwOTQ3XHUwOTJlXHUwOTRkXHUwOTJjXHUwOTMwX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0N1x1MDkyZVx1MDk0ZFx1MDkyY1x1MDkzMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwOTFjXHUwOTI4Ll9cdTA5MmJcdTA5NDdcdTA5MmNcdTA5NGRcdTA5MzBcdTA5NDEuX1x1MDkyZVx1''@;'; put 'put ''MDkzZVx1MDkzMFx1MDk0ZFx1MDkxYV9cdTA5MDVcdTA5MmFcdTA5NGRcdTA5MzBcdTA5M2YuX1x1MDkyZVx1MDkwOF9cdTA5MWNcdTA5NDFcdTA5MjhfXHUwOTFjXHUwOTQxXHUwOTMyXHUwOTNlXHUwOTA4Ll9cdTA5MDVcdTA5MTcuX1x1MDkzOFx1MDk0N1x1MDkyYVx1MDk0ZFx1MDkxZi5f''@;'; put 'put ''XHUwOTA1XHUwOTE1XHUwOTRkXHUwOTFmXHUwOTRiLl9cdTA5MjhcdTA5NGJcdTA5MmRcdTA5NDcuX1x1MDkyMVx1MDkzZlx1MDkzOFx1MDk0Ny4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiXHUwOTA2XHUwOTA3XHUwOTI0XHUwOTJjXHUwOTNlXHUwOTMwX1x1''@;'; put 'put ''MDkzOFx1MDk0Ylx1MDkyZVx1MDkyY1x1MDkzZVx1MDkzMF9cdTA5MmVcdTA5MTlcdTA5NGRcdTA5MTdcdTA5MzJcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTJjXHUwOTQxXHUwOTI3XHUwOTJjXHUwOTNlXHUwOTMwX1x1MDkyY1x1MDkzZlx1MDkzOVx1MDkzZlx1MDkyY1x1MDkzZVx1MDkzMF9c''@;'; put 'put ''dTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzBcdTA5MmNcdTA5M2VcdTA5MzBfXHUwOTM2XHUwOTI4XHUwOTNmXHUwOTJjXHUwOTNlXHUwOTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MDkwNlx1MDkwN1x1MDkyNC5fXHUwOTM4XHUwOTRiXHUwOTJlLl9cdTA5MmVcdTA5MTlc''@;'; put 'put ''dTA5NGRcdTA5MTdcdTA5MzIuX1x1MDkyY1x1MDk0MVx1MDkyNy5fXHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNmLl9cdTA5MzZcdTA5NDFcdTA5MTVcdTA5NGRcdTA5MzAuX1x1MDkzNlx1MDkyOFx1MDkzZi4iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDkwNi5fXHUwOTM4XHUwOTRiLl9c''@;'; put 'put ''dTA5MmVcdTA5MDIuX1x1MDkyY1x1MDk0MS5fXHUwOTJjXHUwOTNmLl9cdTA5MzZcdTA5NDEuX1x1MDkzNi4iLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiQVx1MDkxNVx1MDk0YiBoOm1tIFx1MDkyY1x1MDkxY1x1MDk0NyIsTFRTOiJBXHUw''@;'; put 'put ''OTE1XHUwOTRiIGg6bW06c3MgXHUwOTJjXHUwOTFjXHUwOTQ3IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEFcdTA5MTVcdTA5NGIgaDptbSBcdTA5MmNcdTA5MWNcdTA5NDciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBXHUwOTE1XHUwOTRi''@;'; put 'put ''IGg6bW0gXHUwOTJjXHUwOTFjXHUwOTQ3In0scHJlcGFyc2U6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvW1x1MDk2N1x1MDk2OFx1MDk2OVx1MDk2YVx1MDk2Ylx1MDk2Y1x1MDk2ZFx1MDk2ZVx1MDk2Zlx1MDk2Nl0vZyxmdW5jdGlvbihRKXtyZXR1cm4gRVtRXX0pfSxwb3N0Zm9y''@;'; put 'put ''bWF0OmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1xkL2csZnVuY3Rpb24oUSl7cmV0dXJuIEJbUV19KX0sbWVyaWRpZW1QYXJzZTovXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTNmfFx1MDkyY1x1MDkzZlx1MDkzOVx1MDkzZVx1MDkyOHxcdTA5MjZcdTA5M2ZcdTA5MDlcdTA5MDFcdTA5''@;'; put 'put ''MzhcdTA5NGJ8XHUwOTM4XHUwOTNlXHUwOTAxXHUwOTFkLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwOTMwXHUwOTNlXHUwOTI0XHUwOTNmIj09PVE/VTw0P1U6VSsxMjoiXHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNlXHUwOTI4Ij09PVE/VToi''@;'; put 'put ''XHUwOTI2XHUwOTNmXHUwOTA5XHUwOTAxXHUwOTM4XHUwOTRiIj09PVE/VT49MTA/VTpVKzEyOiJcdTA5MzhcdTA5M2VcdTA5MDFcdTA5MWQiPT09UT9VKzEyOnZvaWQgMH0sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLGope3JldHVybiBVPDM/Ilx1MDkzMFx1MDkzZVx1MDkyNFx1MDkzZiI6VTwx''@;'; put 'put ''Mj8iXHUwOTJjXHUwOTNmXHUwOTM5XHUwOTNlXHUwOTI4IjpVPDE2PyJcdTA5MjZcdTA5M2ZcdTA5MDlcdTA5MDFcdTA5MzhcdTA5NGIiOlU8MjA/Ilx1MDkzOFx1MDkzZVx1MDkwMVx1MDkxZCI6Ilx1MDkzMFx1MDkzZVx1MDkyNFx1MDkzZiJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwOTA2''@;'; put 'put ''XHUwOTFjXSBMVCIsbmV4dERheToiW1x1MDkyZFx1MDk0Ylx1MDkzMlx1MDkzZl0gTFQiLG5leHRXZWVrOiJbXHUwOTA2XHUwOTA5XHUwOTAxXHUwOTI2XHUwOTRiXSBkZGRkWyxdIExUIixsYXN0RGF5OiJbXHUwOTM5XHUwOTNmXHUwOTFjXHUwOTRiXSBMVCIsbGFzdFdlZWs6IltcdTA5MTdc''@;'; put 'put ''dTA5MGZcdTA5MTVcdTA5NGJdIGRkZGRbLF0gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHUwOTJlXHUwOTNlIixwYXN0OiIlcyBcdTA5MDVcdTA5MTdcdTA5M2VcdTA5MjFcdTA5M2YiLHM6Ilx1MDkxNVx1MDk0N1x1MDkzOVx1MDk0MCBcdTA5MTVcdTA5NGRc''@;'; put 'put ''dTA5MzdcdTA5MjMiLHNzOiIlZCBcdTA5MzhcdTA5NDdcdTA5MTVcdTA5NDdcdTA5MjNcdTA5NGRcdTA5MjEiLG06Ilx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5NDdcdTA5MWYiLG1tOiIlZCBcdTA5MmVcdTA5M2ZcdTA5MjhcdTA5NDdcdTA5MWYiLGg6Ilx1MDkwZlx1MDkx''@;'; put 'put ''NSBcdTA5MThcdTA5MjNcdTA5NGRcdTA5MWZcdTA5M2UiLGhoOiIlZCBcdTA5MThcdTA5MjNcdTA5NGRcdTA5MWZcdTA5M2UiLGQ6Ilx1MDkwZlx1MDkxNSBcdTA5MjZcdTA5M2ZcdTA5MjgiLGRkOiIlZCBcdTA5MjZcdTA5M2ZcdTA5MjgiLE06Ilx1MDkwZlx1MDkxNSBcdTA5MmVcdTA5Mzlc''@;'; put 'put ''dTA5M2ZcdTA5MjhcdTA5M2UiLE1NOiIlZCBcdTA5MmVcdTA5MzlcdTA5M2ZcdTA5MjhcdTA5M2UiLHk6Ilx1MDkwZlx1MDkxNSBcdTA5MmNcdTA5MzBcdTA5NGRcdTA5MzciLHl5OiIlZCBcdTA5MmNcdTA5MzBcdTA5NGRcdTA5MzcifSx3ZWVrOntkb3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkp''@;'; put 'put ''fSw1MjI3MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iamFuLl9mZWIuX21ydC5fYXByLl9tZWlfanVuLl9qdWwuX2F1Zy5fc2VwLl9va3QuX25vdi5fZGVjLiIuc3BsaXQoIl8iKSxFPSJqYW5fZmViX21ydF9hcHJfbWVpX2p1bl9qdWxfYXVn''@;'; put 'put ''X3NlcF9va3Rfbm92X2RlYyIuc3BsaXQoIl8iKSxFZT1bL15qYW4vaSwvXmZlYi9pLC9ebWFhcnR8bXJ0Lj8kL2ksL15hcHIvaSwvXm1laSQvaSwvXmp1bltpLl0/JC9pLC9eanVsW2kuXT8kL2ksL15hdWcvaSwvXnNlcC9pLC9eb2t0L2ksL15ub3YvaSwvXmRlYy9pXSxVPS9eKGphbnVhcml8''@;'; put 'put ''ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXJ8amFuXC4/fGZlYlwuP3xtcnRcLj98YXByXC4/fGp1W25sXVwuP3xhdWdcLj98c2VwXC4/fG9rdFwuP3xub3ZcLj98ZGVjXC4/KS9pO21lLmRlZmluZUxv''@;'; put 'put ''Y2FsZSgibmwtYmUiLHttb250aHM6ImphbnVhcmlfZmVicnVhcmlfbWFhcnRfYXByaWxfbWVpX2p1bmlfanVsaV9hdWd1c3R1c19zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDpmdW5jdGlvbihqLHJlKXtyZXR1cm4gaj8vLU1NTS0v''@;'; put 'put ''LnRlc3QocmUpP0Vbai5tb250aCgpXTpCW2oubW9udGgoKV06Qn0sbW9udGhzUmVnZXg6VSxtb250aHNTaG9ydFJlZ2V4OlUsbW9udGhzU3RyaWN0UmVnZXg6L14oamFudWFyaXxmZWJydWFyaXxtYWFydHxhcHJpbHxtZWl8anVbbmxdaXxhdWd1c3R1c3xzZXB0ZW1iZXJ8b2t0b2Jlcnxub3Zl''@;'; put 'put ''bWJlcnxkZWNlbWJlcikvaSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKGphblwuP3xmZWJcLj98bXJ0XC4/fGFwclwuP3xtZWl8anVbbmxdXC4/fGF1Z1wuP3xzZXBcLj98b2t0XC4/fG5vdlwuP3xkZWNcLj8pL2ksbW9udGhzUGFyc2U6RWUsbG9uZ01vbnRoc1BhcnNlOkVlLHNob3J0TW9u''@;'; put 'put ''dGhzUGFyc2U6RWUsd2Vla2RheXM6InpvbmRhZ19tYWFuZGFnX2RpbnNkYWdfd29lbnNkYWdfZG9uZGVyZGFnX3ZyaWpkYWdfemF0ZXJkYWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiem8uX21hLl9kaS5fd28uX2RvLl92ci5femEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJ6b19t''@;'; put 'put ''YV9kaV93b19kb192cl96YSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkIEQgTU1N''@;'; put 'put ''TSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilt2YW5kYWFnIG9tXSBMVCIsbmV4dERheToiW21vcmdlbiBvbV0gTFQiLG5leHRXZWVrOiJkZGRkIFtvbV0gTFQiLGxhc3REYXk6IltnaXN0ZXJlbiBvbV0gTFQiLGxhc3RXZWVrOiJbYWZnZWxvcGVuXSBkZGRkIFtvbV0gTFQiLHNh''@;'; put 'put ''bWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im92ZXIgJXMiLHBhc3Q6IiVzIGdlbGVkZW4iLHM6ImVlbiBwYWFyIHNlY29uZGVuIixzczoiJWQgc2Vjb25kZW4iLG06Ilx4ZTlceGU5biBtaW51dXQiLG1tOiIlZCBtaW51dGVuIixoOiJceGU5XHhlOW4gdXVyIixoaDoiJWQgdXVy''@;'; put 'put ''IixkOiJceGU5XHhlOW4gZGFnIixkZDoiJWQgZGFnZW4iLE06Ilx4ZTlceGU5biBtYWFuZCIsTU06IiVkIG1hYW5kZW4iLHk6Ilx4ZTlceGU5biBqYWFyIix5eToiJWQgamFhciJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3RlfGRlKS8sb3JkaW5hbDpmdW5jdGlvbihqKXty''@;'; put 'put ''ZXR1cm4gaisoMT09PWp8fDg9PT1qfHxqPj0yMD8ic3RlIjoiZGUiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTE3NTg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9Imphbi5fZmViLl9tcnQuX2Fwci5fbWVpX2p1bi5fanVs''@;'; put 'put ''Ll9hdWcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksRT0iamFuX2ZlYl9tcnRfYXByX21laV9qdW5fanVsX2F1Z19zZXBfb2t0X25vdl9kZWMiLnNwbGl0KCJfIiksRWU9Wy9eamFuL2ksL15mZWIvaSwvXm1hYXJ0fG1ydC4/JC9pLC9eYXByL2ksL15tZWkkL2ksL15qdW5baS5d''@;'; put 'put ''PyQvaSwvXmp1bFtpLl0/JC9pLC9eYXVnL2ksL15zZXAvaSwvXm9rdC9pLC9ebm92L2ksL15kZWMvaV0sVT0vXihqYW51YXJpfGZlYnJ1YXJpfG1hYXJ0fGFwcmlsfG1laXxqdVtubF1pfGF1Z3VzdHVzfHNlcHRlbWJlcnxva3RvYmVyfG5vdmVtYmVyfGRlY2VtYmVyfGphblwuP3xmZWJcLj98''@;'; put 'put ''bXJ0XC4/fGFwclwuP3xqdVtubF1cLj98YXVnXC4/fHNlcFwuP3xva3RcLj98bm92XC4/fGRlY1wuPykvaTttZS5kZWZpbmVMb2NhbGUoIm5sIix7bW9udGhzOiJqYW51YXJpX2ZlYnJ1YXJpX21hYXJ0X2FwcmlsX21laV9qdW5pX2p1bGlfYXVndXN0dXNfc2VwdGVtYmVyX29rdG9iZXJfbm92''@;'; put 'put ''ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6ZnVuY3Rpb24oaixyZSl7cmV0dXJuIGo/Ly1NTU0tLy50ZXN0KHJlKT9FW2oubW9udGgoKV06QltqLm1vbnRoKCldOkJ9LG1vbnRoc1JlZ2V4OlUsbW9udGhzU2hvcnRSZWdleDpVLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKGph''@;'; put 'put ''bnVhcml8ZmVicnVhcml8bWFhcnR8YXByaWx8bWVpfGp1W25sXWl8YXVndXN0dXN8c2VwdGVtYmVyfG9rdG9iZXJ8bm92ZW1iZXJ8ZGVjZW1iZXIpL2ksbW9udGhzU2hvcnRTdHJpY3RSZWdleDovXihqYW5cLj98ZmViXC4/fG1ydFwuP3xhcHJcLj98bWVpfGp1W25sXVwuP3xhdWdcLj98c2Vw''@;'; put 'put ''XC4/fG9rdFwuP3xub3ZcLj98ZGVjXC4/KS9pLG1vbnRoc1BhcnNlOkVlLGxvbmdNb250aHNQYXJzZTpFZSxzaG9ydE1vbnRoc1BhcnNlOkVlLHdlZWtkYXlzOiJ6b25kYWdfbWFhbmRhZ19kaW5zZGFnX3dvZW5zZGFnX2RvbmRlcmRhZ192cmlqZGFnX3phdGVyZGFnIi5zcGxpdCgiXyIpLHdl''@;'; put 'put ''ZWtkYXlzU2hvcnQ6InpvLl9tYS5fZGkuX3dvLl9kby5fdnIuX3phLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiem9fbWFfZGlfd29fZG9fdnJfemEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6''@;'; put 'put ''IkRELU1NLVlZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbdmFuZGFhZyBvbV0gTFQiLG5leHREYXk6Ilttb3JnZW4gb21dIExUIixuZXh0V2VlazoiZGRkZCBbb21d''@;'; put 'put ''IExUIixsYXN0RGF5OiJbZ2lzdGVyZW4gb21dIExUIixsYXN0V2VlazoiW2FmZ2Vsb3Blbl0gZGRkZCBbb21dIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvdmVyICVzIixwYXN0OiIlcyBnZWxlZGVuIixzOiJlZW4gcGFhciBzZWNvbmRlbiIsc3M6IiVkIHNlY29u''@;'; put 'put ''ZGVuIixtOiJceGU5XHhlOW4gbWludXV0IixtbToiJWQgbWludXRlbiIsaDoiXHhlOVx4ZTluIHV1ciIsaGg6IiVkIHV1ciIsZDoiXHhlOVx4ZTluIGRhZyIsZGQ6IiVkIGRhZ2VuIix3OiJceGU5XHhlOW4gd2VlayIsd3c6IiVkIHdla2VuIixNOiJceGU5XHhlOW4gbWFhbmQiLE1NOiIlZCBt''@;'; put 'put ''YWFuZGVuIix5OiJceGU5XHhlOW4gamFhciIseXk6IiVkIGphYXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHN0ZXxkZSkvLG9yZGluYWw6ZnVuY3Rpb24oail7cmV0dXJuIGorKDE9PT1qfHw4PT09anx8aj49MjA/InN0ZSI6ImRlIil9LHdlZWs6e2RvdzoxLGRveTo0fX0p''@;'; put 'put ''fShMKDE1NDM5KSl9LDQxNTEwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgibm4iLHttb250aHM6ImphbnVhcl9mZWJydWFyX21hcnNfYXByaWxfbWFpX2p1bmlfanVsaV9hdWd1c3Rfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1i''@;'; put 'put ''ZXJfZGVzZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXJzX2Fwci5fbWFpX2p1bmlfanVsaV9hdWcuX3NlcC5fb2t0Ll9ub3YuX2Rlcy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoic3VuZGFnX21ceGU1bmRhZ190eXNkYWdfb25z''@;'; put 'put ''ZGFnX3RvcnNkYWdfZnJlZGFnX2xhdXJkYWciLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic3UuX21ceGU1Ll90eS5fb24uX3RvLl9mci5fbGF1LiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic3VfbVx4ZTVfdHlfb25fdG9fZnJfbGEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0''@;'; put 'put ''OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIFtrbC5dIEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSBZWVlZIFtrbC5dIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6''@;'; put 'put ''IltJIGRhZyBrbG9ra2FdIExUIixuZXh0RGF5OiJbSSBtb3Jnb24ga2xva2thXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2tsb2trYV0gTFQiLGxhc3REYXk6IltJIGdceGU1ciBrbG9ra2FdIExUIixsYXN0V2VlazoiW0ZceGY4cmVnXHhlNWFuZGVdIGRkZGQgW2tsb2trYV0gTFQiLHNhbWVFbHNl''@;'; put 'put ''OiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Im9tICVzIixwYXN0OiIlcyBzaWRhbiIsczoibm9rcmUgc2VrdW5kIixzczoiJWQgc2VrdW5kIixtOiJlaXQgbWludXR0IixtbToiJWQgbWludXR0IixoOiJlaW4gdGltZSIsaGg6IiVkIHRpbWFyIixkOiJlaW4gZGFnIixkZDoiJWQgZGFnYXIi''@;'; put 'put ''LHc6ImVpIHZla2UiLHd3OiIlZCB2ZWtlciIsTToiZWluIG1ceGU1bmFkIixNTToiJWQgbVx4ZTVuYWRlciIseToiZWl0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwo''@;'; put 'put ''MTU0MzkpKX0sNTI3OTc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJvYy1sbmMiLHttb250aHM6e3N0YW5kYWxvbmU6ImdlbmlceGU4cl9mZWJyaVx4ZThyX21hclx4ZTdfYWJyaWxfbWFpX2p1bmhfanVsaGV0X2Fnb3N0X3Nl''@;'; put 'put ''dGVtYnJlX29jdFx4ZjJicmVfbm92ZW1icmVfZGVjZW1icmUiLnNwbGl0KCJfIiksZm9ybWF0OiJkZSBnZW5pXHhlOHJfZGUgZmVicmlceGU4cl9kZSBtYXJceGU3X2QnYWJyaWxfZGUgbWFpX2RlIGp1bmhfZGUganVsaGV0X2QnYWdvc3RfZGUgc2V0ZW1icmVfZCdvY3RceGYyYnJlX2RlIG5v''@;'; put 'put ''dmVtYnJlX2RlIGRlY2VtYnJlIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9EW29EXT8oXHMpK01NTU0vfSxtb250aHNTaG9ydDoiZ2VuLl9mZWJyLl9tYXJceGU3X2Fici5fbWFpX2p1bmhfanVsaC5fYWdvLl9zZXQuX29jdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6''@;'; put 'put ''ITAsd2Vla2RheXM6ImRpbWVuZ2VfZGlsdW5zX2RpbWFyc19kaW1ceGU4Y3Jlc19kaWpceGYydXNfZGl2ZW5kcmVzX2Rpc3NhYnRlIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRnLl9kbC5fZG0uX2RjLl9kai5fZHYuX2RzLiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZGdfZGxfZG1f''@;'; put 'put ''ZGNfZGpfZHZfZHMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFtkZV0gWVlZWSIsbGw6IkQgTU1NIFlZWVkiLExMTDoiRCBNTU1NIFtkZV0gWVlZWSBbYV0g''@;'; put 'put ''SDptbSIsbGxsOiJEIE1NTSBZWVlZLCBIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBbZGVdIFlZWVkgW2FdIEg6bW0iLGxsbGw6ImRkZCBEIE1NTSBZWVlZLCBIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6Ilt1XHhlOGkgYV0gTFQiLG5leHREYXk6IltkZW1hbiBhXSBMVCIsbmV4dFdlZWs6ImRk''@;'; put 'put ''ZGQgW2FdIExUIixsYXN0RGF5OiJbaVx4ZThyIGFdIExUIixsYXN0V2VlazoiZGRkZCBbcGFzc2F0IGFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJkJ2FxdVx4ZWQgJXMiLHBhc3Q6ImZhICVzIixzOiJ1bmFzIHNlZ29uZGFzIixzczoiJWQgc2Vnb25kYXMiLG06''@;'; put 'put ''InVuYSBtaW51dGEiLG1tOiIlZCBtaW51dGFzIixoOiJ1bmEgb3JhIixoaDoiJWQgb3JhcyIsZDoidW4gam9ybiIsZGQ6IiVkIGpvcm5zIixNOiJ1biBtZXMiLE1NOiIlZCBtZXNlcyIseToidW4gYW4iLHl5OiIlZCBhbnMifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9KHJ8bnx0''@;'; put 'put ''fFx4ZTh8YSkvLG9yZGluYWw6ZnVuY3Rpb24oRSxFZSl7dmFyIFU9MT09PUU/InIiOjI9PT1FPyJuIjozPT09RT8iciI6ND09PUU/InQiOiJceGU4IjtyZXR1cm4oInciPT09RWV8fCJXIj09PUVlKSYmKFU9ImEiKSxFK1V9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDM3OTQ0''@;'; put 'put ''OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiJcdTBhNjciLDI6Ilx1MGE2OCIsMzoiXHUwYTY5Iiw0OiJcdTBhNmEiLDU6Ilx1MGE2YiIsNjoiXHUwYTZjIiw3OiJcdTBhNmQiLDg6Ilx1MGE2ZSIsOToiXHUwYTZmIiwwOiJcdTBhNjYifSxF''@;'; put 'put ''PXsiXHUwYTY3IjoiMSIsIlx1MGE2OCI6IjIiLCJcdTBhNjkiOiIzIiwiXHUwYTZhIjoiNCIsIlx1MGE2YiI6IjUiLCJcdTBhNmMiOiI2IiwiXHUwYTZkIjoiNyIsIlx1MGE2ZSI6IjgiLCJcdTBhNmYiOiI5IiwiXHUwYTY2IjoiMCJ9O21lLmRlZmluZUxvY2FsZSgicGEtaW4iLHttb250aHM6''@;'; put 'put ''Ilx1MGExY1x1MGEyOFx1MGEzNVx1MGEzMFx1MGE0MF9cdTBhMmJcdTBhM2NcdTBhMzBcdTBhMzVcdTBhMzBcdTBhNDBfXHUwYTJlXHUwYTNlXHUwYTMwXHUwYTFhX1x1MGEwNVx1MGEyYVx1MGE0ZFx1MGEzMFx1MGE0OFx1MGEzMl9cdTBhMmVcdTBhMDhfXHUwYTFjXHUwYTQyXHUwYTI4X1x1''@;'; put 'put ''MGExY1x1MGE0MVx1MGEzMlx1MGEzZVx1MGEwOF9cdTBhMDVcdTBhMTdcdTBhMzhcdTBhMjRfXHUwYTM4XHUwYTI0XHUwYTcwXHUwYTJjXHUwYTMwX1x1MGEwNVx1MGExNVx1MGEyNFx1MGE0Mlx1MGEyY1x1MGEzMF9cdTBhMjhcdTBhMzVcdTBhNzBcdTBhMmNcdTBhMzBfXHUwYTI2XHUwYTM4''@;'; put 'put ''XHUwYTcwXHUwYTJjXHUwYTMwIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBhMWNcdTBhMjhcdTBhMzVcdTBhMzBcdTBhNDBfXHUwYTJiXHUwYTNjXHUwYTMwXHUwYTM1XHUwYTMwXHUwYTQwX1x1MGEyZVx1MGEzZVx1MGEzMFx1MGExYV9cdTBhMDVcdTBhMmFcdTBhNGRcdTBhMzBcdTBh''@;'; put 'put ''NDhcdTBhMzJfXHUwYTJlXHUwYTA4X1x1MGExY1x1MGE0Mlx1MGEyOF9cdTBhMWNcdTBhNDFcdTBhMzJcdTBhM2VcdTBhMDhfXHUwYTA1XHUwYTE3XHUwYTM4XHUwYTI0X1x1MGEzOFx1MGEyNFx1MGE3MFx1MGEyY1x1MGEzMF9cdTBhMDVcdTBhMTVcdTBhMjRcdTBhNDJcdTBhMmNcdTBhMzBf''@;'; put 'put ''XHUwYTI4XHUwYTM1XHUwYTcwXHUwYTJjXHUwYTMwX1x1MGEyNlx1MGEzOFx1MGE3MFx1MGEyY1x1MGEzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwYTEwXHUwYTI0XHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEzOFx1MGE0Ylx1MGEyZVx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMmVcdTBhNzBc''@;'; put 'put ''dTBhMTdcdTBhMzJcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTJjXHUwYTQxXHUwYTI3XHUwYTM1XHUwYTNlXHUwYTMwX1x1MGEzNVx1MGE0MFx1MGEzMFx1MGEzNVx1MGEzZVx1MGEzMF9cdTBhMzhcdTBhM2NcdTBhNDFcdTBhNzFcdTBhMTVcdTBhMzBcdTBhMzVcdTBhM2VcdTBhMzBfXHUwYTM4''@;'; put 'put ''XHUwYTNjXHUwYTI4XHUwYTQwXHUwYTFhXHUwYTMwXHUwYTM1XHUwYTNlXHUwYTMwIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGExMFx1MGEyNF9cdTBhMzhcdTBhNGJcdTBhMmVfXHUwYTJlXHUwYTcwXHUwYTE3XHUwYTMyX1x1MGEyY1x1MGE0MVx1MGEyN19cdTBhMzVcdTBhNDBc''@;'; put 'put ''dTBhMzBfXHUwYTM4XHUwYTNjXHUwYTQxXHUwYTE1XHUwYTMwX1x1MGEzOFx1MGEzY1x1MGEyOFx1MGE0MCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwYTEwXHUwYTI0X1x1MGEzOFx1MGE0Ylx1MGEyZV9cdTBhMmVcdTBhNzBcdTBhMTdcdTBhMzJfXHUwYTJjXHUwYTQxXHUwYTI3X1x1''@;'; put 'put ''MGEzNVx1MGE0MFx1MGEzMF9cdTBhMzhcdTBhM2NcdTBhNDFcdTBhMTVcdTBhMzBfXHUwYTM4XHUwYTNjXHUwYTI4XHUwYTQwIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiQSBoOm1tIFx1MGEzNVx1MGExY1x1MGE0NyIsTFRTOiJBIGg6bW06c3MgXHUwYTM1XHUwYTFjXHUwYTQ3''@;'; put 'put ''IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVksIEEgaDptbSBcdTBhMzVcdTBhMWNcdTBhNDciLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZLCBBIGg6bW0gXHUwYTM1XHUwYTFjXHUwYTQ3In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBhMDVcdTBhMWNd''@;'; put 'put ''IExUIixuZXh0RGF5OiJbXHUwYTE1XHUwYTMyXSBMVCIsbmV4dFdlZWs6IltcdTBhMDVcdTBhMTdcdTBhMzJcdTBhM2VdIGRkZGQsIExUIixsYXN0RGF5OiJbXHUwYTE1XHUwYTMyXSBMVCIsbGFzdFdlZWs6IltcdTBhMmFcdTBhM2ZcdTBhMWJcdTBhMzJcdTBhNDddIGRkZGQsIExUIixzYW1l''@;'; put 'put ''RWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTBhMzVcdTBhM2ZcdTBhNzFcdTBhMWEiLHBhc3Q6IiVzIFx1MGEyYVx1MGEzZlx1MGExYlx1MGEzMlx1MGE0NyIsczoiXHUwYTE1XHUwYTQxXHUwYTFkIFx1MGEzOFx1MGExNVx1MGEzZlx1MGE3MFx1MGExZiIsc3M6IiVkIFx1''@;'; put 'put ''MGEzOFx1MGExNVx1MGEzZlx1MGE3MFx1MGExZiIsbToiXHUwYTA3XHUwYTE1IFx1MGEyZVx1MGEzZlx1MGE3MFx1MGExZiIsbW06IiVkIFx1MGEyZVx1MGEzZlx1MGE3MFx1MGExZiIsaDoiXHUwYTA3XHUwYTcxXHUwYTE1IFx1MGExOFx1MGE3MFx1MGExZlx1MGEzZSIsaGg6IiVkIFx1MGEx''@;'; put 'put ''OFx1MGE3MFx1MGExZlx1MGE0NyIsZDoiXHUwYTA3XHUwYTcxXHUwYTE1IFx1MGEyNlx1MGEzZlx1MGEyOCIsZGQ6IiVkIFx1MGEyNlx1MGEzZlx1MGEyOCIsTToiXHUwYTA3XHUwYTcxXHUwYTE1IFx1MGEyZVx1MGEzOVx1MGE0MFx1MGEyOFx1MGEzZSIsTU06IiVkIFx1MGEyZVx1MGEzOVx1''@;'; put 'put ''MGE0MFx1MGEyOFx1MGE0NyIseToiXHUwYTA3XHUwYTcxXHUwYTE1IFx1MGEzOFx1MGEzZVx1MGEzMiIseXk6IiVkIFx1MGEzOFx1MGEzZVx1MGEzMiJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1tcdTBhNjdcdTBhNjhcdTBhNjlcdTBhNmFcdTBhNmJcdTBhNmNc''@;'; put 'put ''dTBhNmRcdTBhNmVcdTBhNmZcdTBhNjZdL2csZnVuY3Rpb24oUSl7cmV0dXJuIEVbUV19KX0scG9zdGZvcm1hdDpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cZC9nLGZ1bmN0aW9uKFEpe3JldHVybiBCW1FdfSl9LG1lcmlkaWVtUGFyc2U6L1x1MGEzMFx1MGEzZVx1MGEyNHxcdTBh''@;'; put 'put ''MzhcdTBhMzVcdTBhNDdcdTBhMzB8XHUwYTI2XHUwYTQxXHUwYTJhXHUwYTM5XHUwYTNmXHUwYTMwfFx1MGEzOFx1MGEzY1x1MGEzZVx1MGEyZS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIDEyPT09VSYmKFU9MCksIlx1MGEzMFx1MGEzZVx1MGEyNCI9PT1RP1U8ND9VOlUr''@;'; put 'put ''MTI6Ilx1MGEzOFx1MGEzNVx1MGE0N1x1MGEzMCI9PT1RP1U6Ilx1MGEyNlx1MGE0MVx1MGEyYVx1MGEzOVx1MGEzZlx1MGEzMCI9PT1RP1U+PTEwP1U6VSsxMjoiXHUwYTM4XHUwYTNjXHUwYTNlXHUwYTJlIj09PVE/VSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxqKXtyZXR1''@;'; put 'put ''cm4gVTw0PyJcdTBhMzBcdTBhM2VcdTBhMjQiOlU8MTA/Ilx1MGEzOFx1MGEzNVx1MGE0N1x1MGEzMCI6VTwxNz8iXHUwYTI2XHUwYTQxXHUwYTJhXHUwYTM5XHUwYTNmXHUwYTMwIjpVPDIwPyJcdTBhMzhcdTBhM2NcdTBhM2VcdTBhMmUiOiJcdTBhMzBcdTBhM2VcdTBhMjQifSx3ZWVrOntk''@;'; put 'put ''b3c6MCxkb3k6Nn19KX0oTCgxNTQzOSkpfSwxNjA1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPSJzdHljemVcdTAxNDRfbHV0eV9tYXJ6ZWNfa3dpZWNpZVx1MDE0NF9tYWpfY3plcndpZWNfbGlwaWVjX3NpZXJwaWVcdTAxNDRfd3J6ZXNpZVx1''@;'; put 'put ''MDE0NF9wYVx1MDE3YWR6aWVybmlrX2xpc3RvcGFkX2dydWR6aWVcdTAxNDQiLnNwbGl0KCJfIiksRT0ic3R5Y3puaWFfbHV0ZWdvX21hcmNhX2t3aWV0bmlhX21hamFfY3plcndjYV9saXBjYV9zaWVycG5pYV93cnplXHUwMTVibmlhX3BhXHUwMTdhZHppZXJuaWthX2xpc3RvcGFkYV9ncnVk''@;'; put 'put ''bmlhIi5zcGxpdCgiXyIpLEVlPVsvXnN0eS9pLC9ebHV0L2ksL15tYXIvaSwvXmt3aS9pLC9ebWFqL2ksL15jemUvaSwvXmxpcC9pLC9ec2llL2ksL153cnovaSwvXnBhXHUwMTdhL2ksL15saXMvaSwvXmdydS9pXTtmdW5jdGlvbiBVKHJlKXtyZXR1cm4gcmUlMTA8NSYmcmUlMTA+MSYmfn4o''@;'; put 'put ''cmUvMTApJTEwIT0xfWZ1bmN0aW9uIFEocmUsYWUsWSl7dmFyIFc9cmUrIiAiO3N3aXRjaChZKXtjYXNlInNzIjpyZXR1cm4gVysoVShyZSk/InNla3VuZHkiOiJzZWt1bmQiKTtjYXNlIm0iOnJldHVybiBhZT8ibWludXRhIjoibWludXRcdTAxMTkiO2Nhc2UibW0iOnJldHVybiBXKyhVKHJl''@;'; put 'put ''KT8ibWludXR5IjoibWludXQiKTtjYXNlImgiOnJldHVybiBhZT8iZ29kemluYSI6ImdvZHppblx1MDExOSI7Y2FzZSJoaCI6cmV0dXJuIFcrKFUocmUpPyJnb2R6aW55IjoiZ29kemluIik7Y2FzZSJ3dyI6cmV0dXJuIFcrKFUocmUpPyJ0eWdvZG5pZSI6InR5Z29kbmkiKTtjYXNlIk1NIjpy''@;'; put 'put ''ZXR1cm4gVysoVShyZSk/Im1pZXNpXHUwMTA1Y2UiOiJtaWVzaVx1MDExOWN5Iik7Y2FzZSJ5eSI6cmV0dXJuIFcrKFUocmUpPyJsYXRhIjoibGF0Iil9fW1lLmRlZmluZUxvY2FsZSgicGwiLHttb250aHM6ZnVuY3Rpb24ocmUsYWUpe3JldHVybiByZT8vRCBNTU1NLy50ZXN0KGFlKT9FW3Jl''@;'; put 'put ''Lm1vbnRoKCldOkJbcmUubW9udGgoKV06Qn0sbW9udGhzU2hvcnQ6InN0eV9sdXRfbWFyX2t3aV9tYWpfY3plX2xpcF9zaWVfd3J6X3BhXHUwMTdhX2xpc19ncnUiLnNwbGl0KCJfIiksbW9udGhzUGFyc2U6RWUsbG9uZ01vbnRoc1BhcnNlOkVlLHNob3J0TW9udGhzUGFyc2U6RWUsd2Vla2Rh''@;'; put 'put ''eXM6Im5pZWR6aWVsYV9wb25pZWR6aWFcdTAxNDJla193dG9yZWtfXHUwMTVicm9kYV9jendhcnRla19waVx1MDEwNXRla19zb2JvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmR6X3Bvbl93dF9cdTAxNWJyX2N6d19wdF9zb2IiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ik5kX1Bu''@;'; put 'put ''X1d0X1x1MDE1YXJfQ3pfUHRfU28iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNh''@;'; put 'put ''bGVuZGFyOntzYW1lRGF5OiJbRHppXHUwMTViIG9dIExUIixuZXh0RGF5OiJbSnV0cm8gb10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW1cgbmllZHppZWxcdTAxMTkgb10gTFQiO2Nhc2UgMjpyZXR1cm4iW1dlIHd0b3JlayBvXSBM''@;'; put 'put ''VCI7Y2FzZSAzOnJldHVybiJbVyBcdTAxNWJyb2RcdTAxMTkgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW1cgc29ib3RcdTAxMTkgb10gTFQiO2RlZmF1bHQ6cmV0dXJuIltXXSBkZGRkIFtvXSBMVCJ9fSxsYXN0RGF5OiJbV2N6b3JhaiBvXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtzd2l0Y2go''@;'; put 'put ''dGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbVyB6ZXN6XHUwMTQyXHUwMTA1IG5pZWR6aWVsXHUwMTE5IG9dIExUIjtjYXNlIDM6cmV0dXJuIltXIHplc3pcdTAxNDJcdTAxMDUgXHUwMTVicm9kXHUwMTE5IG9dIExUIjtjYXNlIDY6cmV0dXJuIltXIHplc3pcdTAxNDJcdTAxMDUgc29ib3Rc''@;'; put 'put ''dTAxMTkgb10gTFQiO2RlZmF1bHQ6cmV0dXJuIltXIHplc3pcdTAxNDJ5XSBkZGRkIFtvXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoiJXMgdGVtdSIsczoia2lsa2Egc2VrdW5kIixzczpRLG06USxtbTpRLGg6USxoaDpRLGQ6IjEgZHpp''@;'; put 'put ''ZVx1MDE0NCIsZGQ6IiVkIGRuaSIsdzoidHlkemllXHUwMTQ0Iix3dzpRLE06Im1pZXNpXHUwMTA1YyIsTU06USx5OiJyb2siLHl5OlF9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw3Mzg0''@;'; put 'put ''MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInB0LWJyIix7bW9udGhzOiJqYW5laXJvX2ZldmVyZWlyb19tYXJceGU3b19hYnJpbF9tYWlvX2p1bmhvX2p1bGhvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2Rl''@;'; put 'put ''emVtYnJvIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3NldF9vdXRfbm92X2RleiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiZG9taW5nb19zZWd1bmRhLWZlaXJhX3Rlclx4ZTdhLWZlaXJhX3F1YXJ0YS1mZWlyYV9xdWludGEtZmVpcmFf''@;'; put 'put ''c2V4dGEtZmVpcmFfc1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6ImRvbV9zZWdfdGVyX3F1YV9xdWlfc2V4X3NceGUxYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiZG9fMlx4YWFfM1x4YWFfNFx4YWFfNVx4YWFfNlx4YWFfc1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQ''@;'; put 'put ''YXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIFtceGUwc10gSEg6bW0iLExMTEw6ImRkZGQsIEQgW2RlXSBNTU1NIFtk''@;'; put 'put ''ZV0gWVlZWSBbXHhlMHNdIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIb2plIFx4ZTBzXSBMVCIsbmV4dERheToiW0FtYW5oXHhlMyBceGUwc10gTFQiLG5leHRXZWVrOiJkZGRkIFtceGUwc10gTFQiLGxhc3REYXk6IltPbnRlbSBceGUwc10gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIDA9PT10aGlzLmRheSgpfHw2PT09dGhpcy5kYXkoKT8iW1x4ZGFsdGltb10gZGRkZCBbXHhlMHNdIExUIjoiW1x4ZGFsdGltYV0gZGRkZCBbXHhlMHNdIExUIn0sc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZW0gJXMiLHBhc3Q6ImhceGUxICVzIixzOiJwb3Vj''@;'; put 'put ''b3Mgc2VndW5kb3MiLHNzOiIlZCBzZWd1bmRvcyIsbToidW0gbWludXRvIixtbToiJWQgbWludXRvcyIsaDoidW1hIGhvcmEiLGhoOiIlZCBob3JhcyIsZDoidW0gZGlhIixkZDoiJWQgZGlhcyIsTToidW0gbVx4ZWFzIixNTToiJWQgbWVzZXMiLHk6InVtIGFubyIseXk6IiVkIGFub3MifSxk''@;'; put 'put ''YXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHhiYS8sb3JkaW5hbDoiJWRceGJhIixpbnZhbGlkRGF0ZToiRGF0YSBpbnZceGUxbGlkYSJ9KX0oTCgxNTQzOSkpfSw1NDIyNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUo''@;'; put 'put ''InB0Iix7bW9udGhzOiJqYW5laXJvX2ZldmVyZWlyb19tYXJceGU3b19hYnJpbF9tYWlvX2p1bmhvX2p1bGhvX2Fnb3N0b19zZXRlbWJyb19vdXR1YnJvX25vdmVtYnJvX2RlemVtYnJvIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJqYW5fZmV2X21hcl9hYnJfbWFpX2p1bl9qdWxfYWdvX3Nl''@;'; put 'put ''dF9vdXRfbm92X2RleiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiRG9taW5nb19TZWd1bmRhLWZlaXJhX1Rlclx4ZTdhLWZlaXJhX1F1YXJ0YS1mZWlyYV9RdWludGEtZmVpcmFfU2V4dGEtZmVpcmFfU1x4ZTFiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkRvbV9TZWdfVGVyX1F1YV9R''@;'; put 'put ''dWlfU2V4X1NceGUxYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiRG9fMlx4YWFfM1x4YWFfNFx4YWFfNVx4YWFfNlx4YWFfU1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZ''@;'; put 'put ''WVkiLExMOiJEIFtkZV0gTU1NTSBbZGVdIFlZWVkiLExMTDoiRCBbZGVdIE1NTU0gW2RlXSBZWVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIFtkZV0gTU1NTSBbZGVdIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW0hvamUgXHhlMHNdIExUIixuZXh0RGF5OiJbQW1hbmhceGUzIFx4''@;'; put 'put ''ZTBzXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x4ZTBzXSBMVCIsbGFzdERheToiW09udGVtIFx4ZTBzXSBMVCIsbGFzdFdlZWs6ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuZGF5KCl8fDY9PT10aGlzLmRheSgpPyJbXHhkYWx0aW1vXSBkZGRkIFtceGUwc10gTFQiOiJbXHhkYWx0aW1hXSBk''@;'; put 'put ''ZGRkIFtceGUwc10gTFQifSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJlbSAlcyIscGFzdDoiaFx4ZTEgJXMiLHM6InNlZ3VuZG9zIixzczoiJWQgc2VndW5kb3MiLG06InVtIG1pbnV0byIsbW06IiVkIG1pbnV0b3MiLGg6InVtYSBob3JhIixoaDoiJWQgaG9yYXMiLGQ6''@;'; put 'put ''InVtIGRpYSIsZGQ6IiVkIGRpYXMiLHc6InVtYSBzZW1hbmEiLHd3OiIlZCBzZW1hbmFzIixNOiJ1bSBtXHhlYXMiLE1NOiIlZCBtZXNlcyIseToidW0gYW5vIix5eToiJWQgYW5vcyJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1ceGJhLyxvcmRpbmFsOiIlZFx4YmEiLHdlZWs6''@;'; put 'put ''e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDQ1MTI4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoRWUsVSxRKXt2YXIgcmU9IiAiO3JldHVybihFZSUxMDA+PTIwfHxFZT49MTAwJiZFZSUxMDA9PTApJiYocmU9IiBkZSAiKSxFZSty''@;'; put 'put ''ZSt7c3M6InNlY3VuZGUiLG1tOiJtaW51dGUiLGhoOiJvcmUiLGRkOiJ6aWxlIix3dzoic1x1MDEwM3B0XHUwMTAzbVx4ZTJuaSIsTU06Imx1bmkiLHl5OiJhbmkifVtRXX1tZS5kZWZpbmVMb2NhbGUoInJvIix7bW9udGhzOiJpYW51YXJpZV9mZWJydWFyaWVfbWFydGllX2FwcmlsaWVfbWFp''@;'; put 'put ''X2l1bmllX2l1bGllX2F1Z3VzdF9zZXB0ZW1icmllX29jdG9tYnJpZV9ub2llbWJyaWVfZGVjZW1icmllIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJpYW4uX2ZlYi5fbWFydC5fYXByLl9tYWlfaXVuLl9pdWwuX2F1Zy5fc2VwdC5fb2N0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhz''@;'; put 'put ''UGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiZHVtaW5pY1x1MDEwM19sdW5pX21hclx1MDIxYmlfbWllcmN1cmlfam9pX3ZpbmVyaV9zXHhlMm1iXHUwMTAzdFx1MDEwMyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJEdW1fTHVuX01hcl9NaWVfSm9pX1Zpbl9TXHhlMm0iLnNwbGl0KCJfIiks''@;'; put 'put ''d2Vla2RheXNNaW46IkR1X0x1X01hX01pX0pvX1ZpX1NceGUyIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZ''@;'; put 'put ''WVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYXppIGxhXSBMVCIsbmV4dERheToiW21ceGUyaW5lIGxhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2xhXSBMVCIsbGFzdERheToiW2llcmkgbGFdIExUIixsYXN0V2VlazoiW2Zvc3RhXSBkZGRkIFtsYV0gTFQiLHNhbWVFbHNlOiJMIn0scmVs''@;'; put 'put ''YXRpdmVUaW1lOntmdXR1cmU6InBlc3RlICVzIixwYXN0OiIlcyBceGVlbiB1cm1cdTAxMDMiLHM6ImNceGUydGV2YSBzZWN1bmRlIixzczpCLG06InVuIG1pbnV0IixtbTpCLGg6Im8gb3JcdTAxMDMiLGhoOkIsZDoibyB6aSIsZGQ6Qix3OiJvIHNcdTAxMDNwdFx1MDEwM21ceGUyblx1MDEw''@;'; put 'put ''MyIsd3c6QixNOiJvIGx1blx1MDEwMyIsTU06Qix5OiJ1biBhbiIseXk6Qn0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMzUxMjc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShRLGoscmUpe3JldHVybiJtIj09PXJlP2o/''@;'; put 'put ''Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQzMCI6Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0MyI6USsiICIrZnVuY3Rpb24gQihRLGope3ZhciByZT1RLnNwbGl0KCJfIik7cmV0dXJuIGolMTA9PTEmJmolMTAwIT0xMT9yZVswXTpqJTEwPj0yJiZqJTEw''@;'; put 'put ''PD00JiYoaiUxMDA8MTB8fGolMTAwPj0yMCk/cmVbMV06cmVbMl19KHtzczpqPyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDRiX1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1''@;'; put 'put ''MDQzNCI6Ilx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0M19cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0NGJfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtbTpqPyJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0''@;'; put 'put ''NDJcdTA0MzBfXHUwNDNjXHUwNDM4XHUwNDNkXHUwNDQzXHUwNDQyXHUwNDRiX1x1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0MiI6Ilx1MDQzY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQ0Mlx1MDQ0M19cdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0NGJfXHUwNDNjXHUwNDM4''@;'; put 'put ''XHUwNDNkXHUwNDQzXHUwNDQyIixoaDoiXHUwNDQ3XHUwNDMwXHUwNDQxX1x1MDQ0N1x1MDQzMFx1MDQ0MVx1MDQzMF9cdTA0NDdcdTA0MzBcdTA0NDFcdTA0M2VcdTA0MzIiLGRkOiJcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM0XHUwNDNkXHUwNDRmX1x1MDQzNFx1MDQzZFx1MDQz''@;'; put 'put ''NVx1MDQzOSIsd3c6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Zl9cdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0M2JcdTA0MzhfXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDNiXHUwNDRjIixNTToiXHUwNDNjXHUwNDM1XHUwNDQxXHUwNDRmXHUwNDQ2X1x1MDQz''@;'; put 'put ''Y1x1MDQzNVx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQzMF9cdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDZcdTA0MzVcdTA0MzIiLHl5OiJcdTA0MzNcdTA0M2VcdTA0MzRfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDMwX1x1MDQzYlx1MDQzNVx1MDQ0MiJ9W3JlXSwrUSl9dmFyIEVlPVsvXlx1''@;'; put 'put ''MDQ0Zlx1MDQzZFx1MDQzMi9pLC9eXHUwNDQ0XHUwNDM1XHUwNDMyL2ksL15cdTA0M2NcdTA0MzBcdTA0NDAvaSwvXlx1MDQzMFx1MDQzZlx1MDQ0MC9pLC9eXHUwNDNjXHUwNDMwW1x1MDQzOVx1MDQ0Zl0vaSwvXlx1MDQzOFx1MDQ0ZVx1MDQzZC9pLC9eXHUwNDM4XHUwNDRlXHUwNDNiL2ks''@;'; put 'put ''L15cdTA0MzBcdTA0MzJcdTA0MzMvaSwvXlx1MDQ0MVx1MDQzNVx1MDQzZC9pLC9eXHUwNDNlXHUwNDNhXHUwNDQyL2ksL15cdTA0M2RcdTA0M2VcdTA0NGYvaSwvXlx1MDQzNFx1MDQzNVx1MDQzYS9pXTttZS5kZWZpbmVMb2NhbGUoInJ1Iix7bW9udGhzOntmb3JtYXQ6Ilx1MDQ0Zlx1MDQz''@;'; put 'put ''ZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Zl9cdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0NGZfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyXHUwNDMwX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYlx1MDQ0Zl9cdTA0M2NcdTA0MzBcdTA0NGZfXHUwNDM4XHUw''@;'; put 'put ''NDRlXHUwNDNkXHUwNDRmX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Zl9cdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRmX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1''@;'; put 'put ''MDQ0MFx1MDQ0Zl9cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGZfXHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwXHUwNDRmIi5zcGxpdCgiXyIpLHN0YW5kYWxvbmU6Ilx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFx1MDQ0Y19cdTA0NDRcdTA0MzVc''@;'; put 'put ''dTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JcdTA0NGNfXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYlx1MDQ0Y19cdTA0M2NcdTA0MzBcdTA0MzlfXHUwNDM4XHUwNDRlXHUwNDNkXHUwNDRjX1x1MDQzOFx1MDQ0ZVx1MDQzYlx1MDQ0Y19cdTA0''@;'; put 'put ''MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJfXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDRjX1x1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQ0Y19cdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBcdTA0NGNfXHUw''@;'; put 'put ''NDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwXHUwNDRjIi5zcGxpdCgiXyIpfSxtb250aHNTaG9ydDp7Zm9ybWF0OiJcdTA0NGZcdTA0M2RcdTA0MzIuX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDQwLl9cdTA0MzBcdTA0M2ZcdTA0NDAuX1x1MDQz''@;'; put 'put ''Y1x1MDQzMFx1MDQ0Zl9cdTA0MzhcdTA0NGVcdTA0M2RcdTA0NGZfXHUwNDM4XHUwNDRlXHUwNDNiXHUwNDRmX1x1MDQzMFx1MDQzMlx1MDQzMy5fXHUwNDQxXHUwNDM1XHUwNDNkXHUwNDQyLl9cdTA0M2VcdTA0M2FcdTA0NDIuX1x1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMS5fXHUwNDM0XHUw''@;'; put 'put ''NDM1XHUwNDNhLiIuc3BsaXQoIl8iKSxzdGFuZGFsb25lOiJcdTA0NGZcdTA0M2RcdTA0MzIuX1x1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDQwXHUwNDQyX1x1MDQzMFx1MDQzZlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1''@;'; put 'put ''MDQ0Y19cdTA0MzhcdTA0NGVcdTA0M2JcdTA0NGNfXHUwNDMwXHUwNDMyXHUwNDMzLl9cdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDIuX1x1MDQzZVx1MDQzYVx1MDQ0Mi5fXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxLl9cdTA0MzRcdTA0MzVcdTA0M2EuIi5zcGxpdCgiXyIpfSx3ZWVrZGF5czp7''@;'; put 'put ''c3RhbmRhbG9uZToiXHUwNDMyXHUwNDNlXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDRjXHUwNDM1X1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQzOFx1MDQzYV9cdTA0MzJcdTA0NDJcdTA0M2Vc''@;'; put 'put ''dTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDMwX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzM19cdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0MzBfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDMx''@;'; put 'put ''XHUwNDNlXHUwNDQyXHUwNDMwIi5zcGxpdCgiXyIpLGZvcm1hdDoiXHUwNDMyXHUwNDNlXHUwNDQxXHUwNDNhXHUwNDQwXHUwNDM1XHUwNDQxXHUwNDM1XHUwNDNkXHUwNDRjXHUwNDM1X1x1MDQzZlx1MDQzZVx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0Y1x1MDQzZFx1MDQz''@;'; put 'put ''OFx1MDQzYV9cdTA0MzJcdTA0NDJcdTA0M2VcdTA0NDBcdTA0M2RcdTA0MzhcdTA0M2FfXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDQzX1x1MDQ0N1x1MDQzNVx1MDQ0Mlx1MDQzMlx1MDQzNVx1MDQ0MFx1MDQzM19cdTA0M2ZcdTA0NGZcdTA0NDJcdTA0M2RcdTA0MzhcdTA0NDZcdTA0''@;'; put 'put ''NDNfXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDQzIi5zcGxpdCgiXyIpLGlzRm9ybWF0Oi9cWyA/W1x1MDQxMlx1MDQzMl0gPyg/Olx1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQ0M1x1MDQ0ZXxcdTA0NDFcdTA0M2JcdTA0MzVcdTA0MzRcdTA0NDNc''@;'; put 'put ''dTA0NGVcdTA0NDlcdTA0NDNcdTA0NGV8XHUwNDRkXHUwNDQyXHUwNDQzKT8gP10gP2RkZGQvfSx3ZWVrZGF5c1Nob3J0OiJcdTA0MzJcdTA0NDFfXHUwNDNmXHUwNDNkX1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNw''@;'; put 'put ''bGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQzMlx1MDQ0MV9cdTA0M2ZcdTA0M2RfXHUwNDMyXHUwNDQyX1x1MDQ0MVx1MDQ0MF9cdTA0NDdcdTA0NDJfXHUwNDNmXHUwNDQyX1x1MDQ0MVx1MDQzMSIuc3BsaXQoIl8iKSxtb250aHNQYXJzZTpFZSxsb25nTW9udGhzUGFyc2U6RWUsc2hvcnRN''@;'; put 'put ''b250aHNQYXJzZTpFZSxtb250aHNSZWdleDovXihcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NGZcdTA0M2RcdTA0MzJcLj98XHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDQ0XHUwNDM1XHUwNDMy''@;'; put 'put ''XHUwNDQwP1wuP3xcdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJcdTA0MzA/fFx1MDQzY1x1MDQzMFx1MDQ0MFwuP3xcdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0MzBcdTA0M2ZcdTA0NDBcLj98XHUwNDNjXHUwNDMwW1x1MDQzOVx1MDQ0Zl18XHUwNDM4''@;'; put 'put ''XHUwNDRlXHUwNDNkW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNkXC4/fFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQzOFx1MDQ0ZVx1MDQzYlwuP3xcdTA0MzBcdTA0MzJcdTA0MzNcdTA0NDNcdTA0NDFcdTA0NDJcdTA0MzA/fFx1MDQzMFx1MDQzMlx1MDQz''@;'; put 'put ''M1wuP3xcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDI/XC4/fFx1MDQzZVx1MDQzYVx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzZVx1MDQzYVx1MDQ0MlwuP3xc''@;'; put 'put ''dTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRjXHUwNDRmXXxcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzE/XC4/fFx1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzNFx1MDQzNVx1MDQzYVwuPykvaSxtb250aHNTaG9ydFJlZ2V4''@;'; put 'put ''Oi9eKFx1MDQ0Zlx1MDQzZFx1MDQzMlx1MDQzMFx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQ0Zlx1MDQzZFx1MDQzMlwuP3xcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDBcdTA0MzBcdTA0M2JbXHUwNDRjXHUwNDRmXXxcdTA0NDRcdTA0MzVcdTA0MzJcdTA0NDA/XC4/fFx1MDQzY1x1MDQzMFx1''@;'; put 'put ''MDQ0MFx1MDQ0Mlx1MDQzMD98XHUwNDNjXHUwNDMwXHUwNDQwXC4/fFx1MDQzMFx1MDQzZlx1MDQ0MFx1MDQzNVx1MDQzYltcdTA0NGNcdTA0NGZdfFx1MDQzMFx1MDQzZlx1MDQ0MFwuP3xcdTA0M2NcdTA0MzBbXHUwNDM5XHUwNDRmXXxcdTA0MzhcdTA0NGVcdTA0M2RbXHUwNDRjXHUwNDRm''@;'; put 'put ''XXxcdTA0MzhcdTA0NGVcdTA0M2RcLj98XHUwNDM4XHUwNDRlXHUwNDNiW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM4XHUwNDRlXHUwNDNiXC4/fFx1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Mlx1MDQzMD98XHUwNDMwXHUwNDMyXHUwNDMzXC4/fFx1MDQ0MVx1MDQzNVx1MDQzZFx1''@;'; put 'put ''MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mj9cLj98XHUwNDNlXHUwNDNhXHUwNDQyXHUwNDRmXHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDNlXHUwNDNhXHUwNDQyXC4/fFx1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMVx1''@;'; put 'put ''MDQ0MFtcdTA0NGNcdTA0NGZdfFx1MDQzZFx1MDQzZVx1MDQ0Zlx1MDQzMT9cLj98XHUwNDM0XHUwNDM1XHUwNDNhXHUwNDMwXHUwNDMxXHUwNDQwW1x1MDQ0Y1x1MDQ0Zl18XHUwNDM0XHUwNDM1XHUwNDNhXC4/KS9pLG1vbnRoc1N0cmljdFJlZ2V4Oi9eKFx1MDQ0Zlx1MDQzZFx1MDQzMlx1''@;'; put 'put ''MDQzMFx1MDQ0MFtcdTA0NGZcdTA0NGNdfFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MFx1MDQzMFx1MDQzYltcdTA0NGZcdTA0NGNdfFx1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzMD98XHUwNDMwXHUwNDNmXHUwNDQwXHUwNDM1XHUwNDNiW1x1MDQ0Zlx1MDQ0Y118XHUwNDNjXHUwNDMw''@;'; put 'put ''W1x1MDQ0Zlx1MDQzOV18XHUwNDM4XHUwNDRlXHUwNDNkW1x1MDQ0Zlx1MDQ0Y118XHUwNDM4XHUwNDRlXHUwNDNiW1x1MDQ0Zlx1MDQ0Y118XHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDMwP3xcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDJcdTA0NGZcdTA0MzFcdTA0''@;'; put 'put ''NDBbXHUwNDRmXHUwNDRjXXxcdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRmXHUwNDRjXXxcdTA0M2RcdTA0M2VcdTA0NGZcdTA0MzFcdTA0NDBbXHUwNDRmXHUwNDRjXXxcdTA0MzRcdTA0MzVcdTA0M2FcdTA0MzBcdTA0MzFcdTA0NDBbXHUwNDRmXHUwNDRjXSkv''@;'; put 'put ''aSxtb250aHNTaG9ydFN0cmljdFJlZ2V4Oi9eKFx1MDQ0Zlx1MDQzZFx1MDQzMlwufFx1MDQ0NFx1MDQzNVx1MDQzMlx1MDQ0MD9cLnxcdTA0M2NcdTA0MzBcdTA0NDBbXHUwNDQyLl18XHUwNDMwXHUwNDNmXHUwNDQwXC58XHUwNDNjXHUwNDMwW1x1MDQ0Zlx1MDQzOV18XHUwNDM4XHUwNDRl''@;'; put 'put ''XHUwNDNkW1x1MDQ0Y1x1MDQ0Zi5dfFx1MDQzOFx1MDQ0ZVx1MDQzYltcdTA0NGNcdTA0NGYuXXxcdTA0MzBcdTA0MzJcdTA0MzNcLnxcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NDI/XC58XHUwNDNlXHUwNDNhXHUwNDQyXC58XHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxP1wufFx1MDQzNFx1MDQz''@;'; put 'put ''NVx1MDQzYVwuKS9pLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkgXHUwNDMzLiIsTExMOiJEIE1NTU0gWVlZWSBcdTA0MzMuLCBIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBcdTA0MzMuLCBIOm1tIn0s''@;'; put 'put ''Y2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MjFcdTA0MzVcdTA0MzNcdTA0M2VcdTA0MzRcdTA0M2RcdTA0NGYsIFx1MDQzMl0gTFQiLG5leHREYXk6IltcdTA0MTdcdTA0MzBcdTA0MzJcdTA0NDJcdTA0NDBcdTA0MzAsIFx1MDQzMl0gTFQiLGxhc3REYXk6IltcdTA0MTJcdTA0NDdcdTA0MzVc''@;'; put 'put ''dTA0NDBcdTA0MzAsIFx1MDQzMl0gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKFEpe2lmKFEud2VlaygpPT09dGhpcy53ZWVrKCkpcmV0dXJuIDI9PT10aGlzLmRheSgpPyJbXHUwNDEyXHUwNDNlXSBkZGRkLCBbXHUwNDMyXSBMVCI6IltcdTA0MTJdIGRkZGQsIFtcdTA0MzJdIExUIjtzd2l0Y2go''@;'; put 'put ''dGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbXHUwNDEyIFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzNVx1MDQzNV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OnJldHVybiJbXHUwNDEyIFx1MDQ0MVx1MDQzYlx1MDQzNVx1''@;'; put 'put ''MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQzOFx1MDQzOV0gZGRkZCwgW1x1MDQzMl0gTFQiO2Nhc2UgMzpjYXNlIDU6Y2FzZSA2OnJldHVybiJbXHUwNDEyIFx1MDQ0MVx1MDQzYlx1MDQzNVx1MDQzNFx1MDQ0M1x1MDQ0ZVx1MDQ0OVx1MDQ0M1x1MDQ0ZV0gZGRkZCwgW1x1MDQzMl0gTFQi''@;'; put 'put ''fX0sbGFzdFdlZWs6ZnVuY3Rpb24oUSl7aWYoUS53ZWVrKCk9PT10aGlzLndlZWsoKSlyZXR1cm4gMj09PXRoaXMuZGF5KCk/IltcdTA0MTJcdTA0M2VdIGRkZGQsIFtcdTA0MzJdIExUIjoiW1x1MDQxMl0gZGRkZCwgW1x1MDQzMl0gTFQiO3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0''@;'; put 'put ''dXJuIltcdTA0MTIgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDNlXHUwNDM1XSBkZGRkLCBbXHUwNDMyXSBMVCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6cmV0dXJuIltcdTA0MTIgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDRiXHUwNDM5XSBkZGRkLCBbXHUw''@;'; put 'put ''NDMyXSBMVCI7Y2FzZSAzOmNhc2UgNTpjYXNlIDY6cmV0dXJuIltcdTA0MTIgXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDQzXHUwNDRlXSBkZGRkLCBbXHUwNDMyXSBMVCJ9fSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0NDdcdTA0MzVcdTA0NDBc''@;'; put 'put ''dTA0MzVcdTA0MzcgJXMiLHBhc3Q6IiVzIFx1MDQzZFx1MDQzMFx1MDQzN1x1MDQzMFx1MDQzNCIsczoiXHUwNDNkXHUwNDM1XHUwNDQxXHUwNDNhXHUwNDNlXHUwNDNiXHUwNDRjXHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNCIsc3M6RSxtOkUsbW06''@;'; put 'put ''RSxoOiJcdTA0NDdcdTA0MzBcdTA0NDEiLGhoOkUsZDoiXHUwNDM0XHUwNDM1XHUwNDNkXHUwNDRjIixkZDpFLHc6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQzYlx1MDQ0ZiIsd3c6RSxNOiJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0NGZcdTA0NDYiLE1NOkUseToiXHUwNDMzXHUwNDNl''@;'; put 'put ''XHUwNDM0Iix5eTpFfSxtZXJpZGllbVBhcnNlOi9cdTA0M2RcdTA0M2VcdTA0NDdcdTA0Mzh8XHUwNDQzXHUwNDQyXHUwNDQwXHUwNDMwfFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzAvaSxpc1BNOmZ1bmN0aW9uKFEpe3JldHVybi9eKFx1''@;'; put 'put ''MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzApJC8udGVzdChRKX0sbWVyaWRpZW06ZnVuY3Rpb24oUSxqLHJlKXtyZXR1cm4gUTw0PyJcdTA0M2RcdTA0M2VcdTA0NDdcdTA0MzgiOlE8MTI/Ilx1MDQ0M1x1MDQ0Mlx1MDQ0MFx1MDQzMCI6UTwx''@;'; put 'put ''Nz8iXHUwNDM0XHUwNDNkXHUwNDRmIjoiXHUwNDMyXHUwNDM1XHUwNDQ3XHUwNDM1XHUwNDQwXHUwNDMwIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS0oXHUwNDM5fFx1MDQzM1x1MDQzZXxcdTA0NGYpLyxvcmRpbmFsOmZ1bmN0aW9uKFEsail7c3dpdGNoKGope2Nhc2UiTSI6''@;'; put 'put ''Y2FzZSJkIjpjYXNlIkRERCI6cmV0dXJuIFErIi1cdTA0MzkiO2Nhc2UiRCI6cmV0dXJuIFErIi1cdTA0MzNcdTA0M2UiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gUSsiLVx1MDQ0ZiI7ZGVmYXVsdDpyZXR1cm4gUX19LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDMyNTI1OmZ1''@;'; put 'put ''bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPVsiXHUwNjJjXHUwNjQ2XHUwNjQ4XHUwNjMxXHUwNjRhIiwiXHUwNjQxXHUwNjRhXHUwNjI4XHUwNjMxXHUwNjQ4XHUwNjMxXHUwNjRhIiwiXHUwNjQ1XHUwNjI3XHUwNjMxXHUwNjg2IiwiXHUwNjI3XHUw''@;'; put 'put ''NjdlXHUwNjMxXHUwNjRhXHUwNjQ0IiwiXHUwNjQ1XHUwNjI2XHUwNjRhIiwiXHUwNjJjXHUwNjQ4XHUwNjQ2IiwiXHUwNjJjXHUwNjQ4XHUwNjQ0XHUwNjI3XHUwNjIxXHUwNjUwIiwiXHUwNjIyXHUwNmFmXHUwNjMzXHUwNjdkIiwiXHUwNjMzXHUwNjRhXHUwNjdlXHUwNjdkXHUwNjQ1XHUw''@;'; put 'put ''NjI4XHUwNjMxIiwiXHUwNjIyXHUwNmFhXHUwNjdkXHUwNjQ4XHUwNjI4XHUwNjMxIiwiXHUwNjQ2XHUwNjQ4XHUwNjQ1XHUwNjI4XHUwNjMxIiwiXHUwNjhhXHUwNjMzXHUwNjQ1XHUwNjI4XHUwNjMxIl0sRT1bIlx1MDYyMlx1MDY4Nlx1MDYzMSIsIlx1MDYzM1x1MDY0OFx1MDY0NVx1MDYz''@;'; put 'put ''MSIsIlx1MDYyN1x1MDZiMVx1MDYyN1x1MDYzMVx1MDY0OCIsIlx1MDYyN1x1MDYzMVx1MDYyOFx1MDYzOSIsIlx1MDYyZVx1MDY0NVx1MDY0YVx1MDYzMyIsIlx1MDYyY1x1MDY0NVx1MDYzOSIsIlx1MDY4N1x1MDY0Nlx1MDY4N1x1MDYzMSJdO21lLmRlZmluZUxvY2FsZSgic2QiLHttb250''@;'; put 'put ''aHM6Qixtb250aHNTaG9ydDpCLHdlZWtkYXlzOkUsd2Vla2RheXNTaG9ydDpFLHdlZWtkYXlzTWluOkUsbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJk''@;'; put 'put ''ZGRkXHUwNjBjIEQgTU1NTSBZWVlZIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHUwNjM1XHUwNjI4XHUwNjJkfFx1MDYzNFx1MDYyN1x1MDY0NS8saXNQTTpmdW5jdGlvbihVKXtyZXR1cm4iXHUwNjM0XHUwNjI3XHUwNjQ1Ij09PVV9LG1lcmlkaWVtOmZ1bmN0aW9uKFUsUSxqKXtyZXR1cm4g''@;'; put 'put ''VTwxMj8iXHUwNjM1XHUwNjI4XHUwNjJkIjoiXHUwNjM0XHUwNjI3XHUwNjQ1In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA2MjdcdTA2ODRdIExUIixuZXh0RGF5OiJbXHUwNjMzXHUwNjgwXHUwNjI3XHUwNmJiXHUwNjRhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYyN1x1MDZiM1x1MDY0''@;'; put 'put ''YVx1MDY0NiBcdTA2NDdcdTA2NDFcdTA2MmFcdTA2NGEgXHUwNjJhXHUwNjRhXSBMVCIsbGFzdERheToiW1x1MDZhYVx1MDYyN1x1MDY0NFx1MDY0N1x1MDY0N10gTFQiLGxhc3RXZWVrOiJbXHUwNmFmXHUwNjMyXHUwNjMxXHUwNjRhXHUwNjQ0IFx1MDY0N1x1MDY0MVx1MDYyYVx1MDY0YV0g''@;'; put 'put ''ZGRkZCBbXHUwNjJhXHUwNjRhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwNjdlXHUwNjQ4XHUwNjIxIixwYXN0OiIlcyBcdTA2MjdcdTA2YjMiLHM6Ilx1MDY4Nlx1MDY0Nlx1MDYyZiBcdTA2MzNcdTA2NGFcdTA2YWFcdTA2NDZcdTA2OGEiLHNzOiIl''@;'; put 'put ''ZCBcdTA2MzNcdTA2NGFcdTA2YWFcdTA2NDZcdTA2OGEiLG06Ilx1MDY0N1x1MDZhYSBcdTA2NDVcdTA2NDZcdTA2N2QiLG1tOiIlZCBcdTA2NDVcdTA2NDZcdTA2N2QiLGg6Ilx1MDY0N1x1MDZhYSBcdTA2YWFcdTA2NDRcdTA2MjdcdTA2YWEiLGhoOiIlZCBcdTA2YWFcdTA2NDRcdTA2Mjdc''@;'; put 'put ''dTA2YWEiLGQ6Ilx1MDY0N1x1MDZhYSBcdTA2OGZcdTA2NGFcdTA2NDZcdTA2NDdcdTA2NDYiLGRkOiIlZCBcdTA2OGZcdTA2NGFcdTA2NDZcdTA2NDdcdTA2NDYiLE06Ilx1MDY0N1x1MDZhYSBcdTA2NDVcdTA2NDdcdTA2NGFcdTA2NDZcdTA2NDgiLE1NOiIlZCBcdTA2NDVcdTA2NDdcdTA2''@;'; put 'put ''NGFcdTA2NDZcdTA2MjciLHk6Ilx1MDY0N1x1MDZhYSBcdTA2MzNcdTA2MjdcdTA2NDQiLHl5OiIlZCBcdTA2MzNcdTA2MjdcdTA2NDQifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNlKC9cdTA2MGMvZywiLCIpfSxwb3N0Zm9ybWF0OmZ1bmN0aW9uKFUpe3JldHVybiBV''@;'; put 'put ''LnJlcGxhY2UoLywvZywiXHUwNjBjIil9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDU5ODkzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgic2UiLHttb250aHM6Im9cdTAxMTFcdTAxMTFhamFnZW1ceGUxbm51''@;'; put 'put ''X2d1b3Z2YW1ceGUxbm51X25qdWtcdTAxMGRhbVx4ZTFubnVfY3VvXHUwMTRib21ceGUxbm51X21pZXNzZW1ceGUxbm51X2dlYXNzZW1ceGUxbm51X3N1b2lkbmVtXHhlMW5udV9ib3JnZW1ceGUxbm51X1x1MDEwZGFrXHUwMTBkYW1ceGUxbm51X2dvbGdnb3RtXHhlMW5udV9za1x4ZTFibWFt''@;'; put 'put ''XHhlMW5udV9qdW92bGFtXHhlMW5udSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoib1x1MDExMVx1MDExMWpfZ3Vvdl9uanVrX2N1b19taWVzX2dlYXNfc3VvaV9ib3JnX1x1MDEwZGFrXHUwMTBkX2dvbGdfc2tceGUxYl9qdW92Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzb3RuYWJlYWl2aV92''@;'; put 'put ''dW9zc1x4ZTFyZ2FfbWFcdTAxNGJcdTAxNGJlYlx4ZTFyZ2FfZ2Fza2F2YWhra3VfZHVvcmFzdGF0X2JlYXJqYWRhdF9sXHhlMXZ2YXJkYXQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoic290bl92dW9zX21hXHUwMTRiX2dhc2tfZHVvcl9iZWFyX2xceGUxdiIuc3BsaXQoIl8iKSx3ZWVr''@;'; put 'put ''ZGF5c01pbjoic192X21fZ19kX2JfTCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiTU1NTSBELiBbYi5dIFlZWVkiLExMTDoiTU1NTSBELiBbYi5dIFlZWVkgW3RpLl0gSEg6bW0iLExMTEw6ImRkZGQsIE1N''@;'; put 'put ''TU0gRC4gW2IuXSBZWVlZIFt0aS5dIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltvdG5lIHRpXSBMVCIsbmV4dERheToiW2lodHRpbiB0aV0gTFQiLG5leHRXZWVrOiJkZGRkIFt0aV0gTFQiLGxhc3REYXk6Iltpa3RlIHRpXSBMVCIsbGFzdFdlZWs6IltvdmRkaXRdIGRkZGQgW3RpXSBM''@;'; put 'put ''VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgZ2VhXHUwMTdlZXMiLHBhc3Q6Im1hXHUwMTRiaXQgJXMiLHM6Im1vYWRkZSBzZWt1bmRkYXQiLHNzOiIlZCBzZWt1bmRkYXQiLG06Im9rdGEgbWludWh0YSIsbW06IiVkIG1pbnVodGF0IixoOiJva3RhIGRpaW1tdSIs''@;'; put 'put ''aGg6IiVkIGRpaW1tdXQiLGQ6Im9rdGEgYmVhaXZpIixkZDoiJWQgYmVhaXZ2aXQiLE06Im9rdGEgbVx4ZTFubnUiLE1NOiIlZCBtXHhlMW51dCIseToib2t0YSBqYWhraSIseXk6IiVkIGphZ2l0In0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdl''@;'; put 'put ''ZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDMzMTIzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgic2kiLHttb250aHM6Ilx1MGRhMlx1MGRiMVx1MGRjMFx1MGRjZlx1MGRiYlx1MGRkMl9cdTBkYjRcdTBkZDlcdTBk''@;'; put 'put ''YjZcdTBkYmJcdTBkYzBcdTBkY2ZcdTBkYmJcdTBkZDJfXHUwZGI4XHUwZGNmXHUwZGJiXHUwZGNhXHUwZGFkXHUwZGQ0X1x1MGQ4NVx1MGRiNFx1MGRjYVx1MjAwZFx1MGRiYlx1MGRkYVx1MGRiZFx1MGRjYV9cdTBkYjhcdTBkZDBcdTBkYmFcdTBkZDJfXHUwZGEyXHUwZGQ2XHUwZGIxXHUw''@;'; put 'put ''ZGQyX1x1MGRhMlx1MGRkNlx1MGRiZFx1MGRkMl9cdTBkODVcdTBkOWNcdTBkZGRcdTBkYzNcdTBkY2FcdTBkYWRcdTBkZDRfXHUwZGMzXHUwZGQwXHUwZGI0XHUwZGNhXHUwZGFkXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhX1x1MGQ5NFx1MGQ5YVx1MGRjYVx1MGRhZFx1''@;'; put 'put ''MGRkZFx1MGRiNlx1MGRiYlx1MGRjYV9cdTBkYjFcdTBkZGNcdTBkYzBcdTBkZDBcdTBkYjhcdTBkY2FcdTBkYjZcdTBkYmJcdTBkY2FfXHUwZGFmXHUwZGQ5XHUwZGMzXHUwZGQwXHUwZGI4XHUwZGNhXHUwZGI2XHUwZGJiXHUwZGNhIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBkYTJc''@;'; put 'put ''dTBkYjFfXHUwZGI0XHUwZGQ5XHUwZGI2X1x1MGRiOFx1MGRjZlx1MGRiYlx1MGRjYV9cdTBkODVcdTBkYjRcdTBkY2FfXHUwZGI4XHUwZGQwXHUwZGJhXHUwZGQyX1x1MGRhMlx1MGRkNlx1MGRiMVx1MGRkMl9cdTBkYTJcdTBkZDZcdTBkYmRcdTBkZDJfXHUwZDg1XHUwZDljXHUwZGRkX1x1''@;'; put 'put ''MGRjM1x1MGRkMFx1MGRiNFx1MGRjYV9cdTBkOTRcdTBkOWFcdTBkY2FfXHUwZGIxXHUwZGRjXHUwZGMwXHUwZGQwX1x1MGRhZlx1MGRkOVx1MGRjM1x1MGRkMCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHUwZDg5XHUwZGJiXHUwZGQyXHUwZGFmXHUwZGNmX1x1MGRjM1x1MGRiM1x1MGRkNFx1''@;'; put 'put ''MGRhZlx1MGRjZl9cdTBkODVcdTBkOWZcdTBkYzRcdTBkYmJcdTBkZDRcdTBkYzBcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGI2XHUwZGFmXHUwZGNmXHUwZGFmXHUwZGNmX1x1MGRiNlx1MGRjYVx1MjAwZFx1MGRiYlx1MGRjNFx1MGRjM1x1MGRjYVx1MGRiNFx1MGRhZFx1MGRkMlx1MGRiMVx1''@;'; put 'put ''MGRjYVx1MGRhZlx1MGRjZl9cdTBkYzNcdTBkZDJcdTBkOWFcdTBkZDRcdTBkYmJcdTBkY2ZcdTBkYWZcdTBkY2ZfXHUwZGMzXHUwZGQ5XHUwZGIxXHUwZGMzXHUwZGQ0XHUwZGJiXHUwZGNmXHUwZGFmXHUwZGNmIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1MGQ4OVx1MGRiYlx1MGRk''@;'; put 'put ''Ml9cdTBkYzNcdTBkYjNcdTBkZDRfXHUwZDg1XHUwZDlmX1x1MGRiNlx1MGRhZlx1MGRjZl9cdTBkYjZcdTBkY2FcdTIwMGRcdTBkYmJcdTBkYzRfXHUwZGMzXHUwZGQyXHUwZDlhXHUwZGQ0X1x1MGRjM1x1MGRkOVx1MGRiMSIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiXHUwZDg5X1x1MGRj''@;'; put 'put ''M19cdTBkODVfXHUwZGI2X1x1MGRiNlx1MGRjYVx1MjAwZFx1MGRiYl9cdTBkYzNcdTBkZDJfXHUwZGMzXHUwZGQ5Ii5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6ImEgaDptbSIsTFRTOiJhIGg6bW06c3MiLEw6IllZWVkvTU0vREQiLExMOiJZ''@;'; put 'put ''WVlZIE1NTU0gRCIsTExMOiJZWVlZIE1NTU0gRCwgYSBoOm1tIixMTExMOiJZWVlZIE1NTU0gRCBbXHUwZGMwXHUwZGQwXHUwZGIxXHUwZGQyXSBkZGRkLCBhIGg6bW06c3MifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MGQ4NVx1MGRhZl0gTFRbXHUwZGE3XSIsbmV4dERheToiW1x1MGRjNFx1''@;'; put 'put ''MGRkOVx1MGRhN10gTFRbXHUwZGE3XSIsbmV4dFdlZWs6ImRkZGQgTFRbXHUwZGE3XSIsbGFzdERheToiW1x1MGQ4YVx1MGRiYVx1MGRkYV0gTFRbXHUwZGE3XSIsbGFzdFdlZWs6IltcdTBkYjRcdTBkYzNcdTBkZDRcdTBkOWNcdTBkZDJcdTBkYmFdIGRkZGQgTFRbXHUwZGE3XSIsc2FtZUVs''@;'; put 'put ''c2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTBkOWFcdTBkZDJcdTBkYjFcdTBkY2EiLHBhc3Q6IiVzXHUwZDlhXHUwZGE3IFx1MGRiNFx1MGRkOVx1MGRiYiIsczoiXHUwZGFkXHUwZGFkXHUwZGNhXHUwZGI0XHUwZGJiIFx1MGQ5YVx1MGRkMlx1MGRjNFx1MGRkMlx1MGRiNFx1''@;'; put 'put ''MGRiYSIsc3M6Ilx1MGRhZFx1MGRhZFx1MGRjYVx1MGRiNFx1MGRiYiAlZCIsbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0XHUwZGMwIixtbToiXHUwZGI4XHUwZGQyXHUwZGIxXHUwZGQyXHUwZGFkXHUwZGNhXHUwZGFkXHUwZGQ0ICVkIixoOiJc''@;'; put 'put ''dTBkYjRcdTBkZDBcdTBkYmEiLGhoOiJcdTBkYjRcdTBkZDBcdTBkYmEgJWQiLGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMVx1MGRiYSIsZGQ6Ilx1MGRhZlx1MGRkMlx1MGRiMSAlZCIsTToiXHUwZGI4XHUwZGNmXHUwZGMzXHUwZGJhIixNTToiXHUwZGI4XHUwZGNmXHUwZGMzICVkIix5OiJcdTBk''@;'; put 'put ''YzBcdTBkYzNcdTBkYmIiLHl5OiJcdTBkYzBcdTBkYzNcdTBkYmIgJWQifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9IFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMi8sb3JkaW5hbDpmdW5jdGlvbihFKXtyZXR1cm4gRSsiIFx1MGRjMFx1MGRkMFx1MGRiMVx1MGRkMiJ9LG1lcmlk''@;'; put 'put ''aWVtUGFyc2U6L1x1MGRiNFx1MGRkOVx1MGRiYiBcdTBkYzBcdTBkYmJcdTBkZDR8XHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNHxcdTBkYjRcdTBkZDkuXHUwZGMwfFx1MGRiNC5cdTBkYzAuLyxpc1BNOmZ1bmN0aW9uKEUpe3JldHVybiJcdTBkYjQuXHUwZGMwLiI9PT1F''@;'; put 'put ''fHwiXHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNCI9PT1FfSxtZXJpZGllbTpmdW5jdGlvbihFLEVlLFUpe3JldHVybiBFPjExP1U/Ilx1MGRiNC5cdTBkYzAuIjoiXHUwZGI0XHUwZGMzXHUwZGNhIFx1MGRjMFx1MGRiYlx1MGRkNCI6VT8iXHUwZGI0XHUwZGQ5Llx1MGRj''@;'; put 'put ''MC4iOiJcdTBkYjRcdTBkZDlcdTBkYmIgXHUwZGMwXHUwZGJiXHUwZGQ0In19KX0oTCgxNTQzOSkpfSw1OTYzNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj0iamFudVx4ZTFyX2ZlYnJ1XHhlMXJfbWFyZWNfYXByXHhlZGxfbVx4ZTFqX2pceGZh''@;'; put 'put ''bl9qXHhmYWxfYXVndXN0X3NlcHRlbWJlcl9va3RceGYzYmVyX25vdmVtYmVyX2RlY2VtYmVyIi5zcGxpdCgiXyIpLEU9Imphbl9mZWJfbWFyX2Fwcl9tXHhlMWpfalx4ZmFuX2pceGZhbF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpO2Z1bmN0aW9uIEVlKGope3JldHVybiBqPjEm''@;'; put 'put ''Jmo8NX1mdW5jdGlvbiBVKGoscmUsYWUsWSl7dmFyIFc9aisiICI7c3dpdGNoKGFlKXtjYXNlInMiOnJldHVybiByZXx8WT8icFx4ZTFyIHNla1x4ZmFuZCI6InBceGUxciBzZWt1bmRhbWkiO2Nhc2Uic3MiOnJldHVybiByZXx8WT9XKyhFZShqKT8ic2VrdW5keSI6InNla1x4ZmFuZCIpOlcr''@;'; put 'put ''InNla3VuZGFtaSI7Y2FzZSJtIjpyZXR1cm4gcmU/Im1pblx4ZmF0YSI6WT8ibWluXHhmYXR1IjoibWluXHhmYXRvdSI7Y2FzZSJtbSI6cmV0dXJuIHJlfHxZP1crKEVlKGopPyJtaW5ceGZhdHkiOiJtaW5ceGZhdCIpOlcrIm1pblx4ZmF0YW1pIjtjYXNlImgiOnJldHVybiByZT8iaG9kaW5h''@;'; put 'put ''IjpZPyJob2RpbnUiOiJob2Rpbm91IjtjYXNlImhoIjpyZXR1cm4gcmV8fFk/VysoRWUoaik/ImhvZGlueSI6ImhvZFx4ZWRuIik6VysiaG9kaW5hbWkiO2Nhc2UiZCI6cmV0dXJuIHJlfHxZPyJkZVx1MDE0OCI6ImRcdTAxNDhvbSI7Y2FzZSJkZCI6cmV0dXJuIHJlfHxZP1crKEVlKGopPyJk''@;'; put 'put ''bmkiOiJkblx4ZWQiKTpXKyJkXHUwMTQ4YW1pIjtjYXNlIk0iOnJldHVybiByZXx8WT8ibWVzaWFjIjoibWVzaWFjb20iO2Nhc2UiTU0iOnJldHVybiByZXx8WT9XKyhFZShqKT8ibWVzaWFjZSI6Im1lc2lhY292Iik6VysibWVzaWFjbWkiO2Nhc2UieSI6cmV0dXJuIHJlfHxZPyJyb2siOiJy''@;'; put 'put ''b2tvbSI7Y2FzZSJ5eSI6cmV0dXJuIHJlfHxZP1crKEVlKGopPyJyb2t5Ijoicm9rb3YiKTpXKyJyb2ttaSJ9fW1lLmRlZmluZUxvY2FsZSgic2siLHttb250aHM6Qixtb250aHNTaG9ydDpFLHdlZWtkYXlzOiJuZWRlXHUwMTNlYV9wb25kZWxva191dG9yb2tfc3RyZWRhX1x1MDE2MXR2cnRv''@;'; put 'put ''a19waWF0b2tfc29ib3RhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Im5lX3BvX3V0X3N0X1x1MDE2MXRfcGlfc28iLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Im5lX3BvX3V0X3N0X1x1MDE2MXRfcGlfc28iLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJIOm1tIixMVFM6Ikg6''@;'; put 'put ''bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJELiBNTU1NIFlZWVkiLExMTDoiRC4gTU1NTSBZWVlZIEg6bW0iLExMTEw6ImRkZGQgRC4gTU1NTSBZWVlZIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2RuZXMgb10gTFQiLG5leHREYXk6Ilt6YWp0cmEgb10gTFQiLG5leHRXZWVrOmZ1bmN0''@;'; put 'put ''aW9uKCl7c3dpdGNoKHRoaXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW3YgbmVkZVx1MDEzZXUgb10gTFQiO2Nhc2UgMTpjYXNlIDI6cmV0dXJuIlt2XSBkZGRkIFtvXSBMVCI7Y2FzZSAzOnJldHVybiJbdiBzdHJlZHUgb10gTFQiO2Nhc2UgNDpyZXR1cm4iW3ZvIFx1MDE2MXR2cnRvayBvXSBM''@;'; put 'put ''VCI7Y2FzZSA1OnJldHVybiJbdiBwaWF0b2sgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW3Ygc29ib3R1IG9dIExUIn19LGxhc3REYXk6Ilt2XHUwMTBkZXJhIG9dIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlttaW51bFx4ZmEgbmVkZVx1''@;'; put 'put ''MDEzZXUgb10gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW21pbnVsXHhmZF0gZGRkZCBbb10gTFQiO2Nhc2UgMzpyZXR1cm4iW21pbnVsXHhmYSBzdHJlZHUgb10gTFQiO2Nhc2UgNjpyZXR1cm4iW21pbnVsXHhmYSBzb2JvdHUgb10gTFQifX0sc2FtZUVsc2U6Ikwi''@;'; put 'put ''fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiemEgJXMiLHBhc3Q6InByZWQgJXMiLHM6VSxzczpVLG06VSxtbTpVLGg6VSxoaDpVLGQ6VSxkZDpVLE06VSxNTTpVLHk6VSx5eTpVfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95''@;'; put 'put ''OjR9fSl9KEwoMTU0MzkpKX0sNzgxMDY6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gQihFZSxVLFEsail7dmFyIHJlPUVlKyIgIjtzd2l0Y2goUSl7Y2FzZSJzIjpyZXR1cm4gVXx8aj8ibmVrYWogc2VrdW5kIjoibmVrYWogc2VrdW5kYW1p''@;'; put 'put ''IjtjYXNlInNzIjpyZXR1cm4gcmUrKDE9PT1FZT9VPyJzZWt1bmRvIjoic2VrdW5kaSI6Mj09PUVlP1V8fGo/InNla3VuZGkiOiJzZWt1bmRhaCI6RWU8NT9VfHxqPyJzZWt1bmRlIjoic2VrdW5kYWgiOiJzZWt1bmQiKTtjYXNlIm0iOnJldHVybiBVPyJlbmEgbWludXRhIjoiZW5vIG1pbnV0''@;'; put 'put ''byI7Y2FzZSJtbSI6cmV0dXJuIHJlKygxPT09RWU/VT8ibWludXRhIjoibWludXRvIjoyPT09RWU/VXx8aj8ibWludXRpIjoibWludXRhbWEiOkVlPDU/VXx8aj8ibWludXRlIjoibWludXRhbWkiOlV8fGo/Im1pbnV0IjoibWludXRhbWkiKTtjYXNlImgiOnJldHVybiBVPyJlbmEgdXJhIjoi''@;'; put 'put ''ZW5vIHVybyI7Y2FzZSJoaCI6cmV0dXJuIHJlKygxPT09RWU/VT8idXJhIjoidXJvIjoyPT09RWU/VXx8aj8idXJpIjoidXJhbWEiOkVlPDU/VXx8aj8idXJlIjoidXJhbWkiOlV8fGo/InVyIjoidXJhbWkiKTtjYXNlImQiOnJldHVybiBVfHxqPyJlbiBkYW4iOiJlbmltIGRuZW0iO2Nhc2Ui''@;'; put 'put ''ZGQiOnJldHVybiByZSsoMT09PUVlP1V8fGo/ImRhbiI6ImRuZW0iOjI9PT1FZT9VfHxqPyJkbmkiOiJkbmV2b21hIjpVfHxqPyJkbmkiOiJkbmV2aSIpO2Nhc2UiTSI6cmV0dXJuIFV8fGo/ImVuIG1lc2VjIjoiZW5pbSBtZXNlY2VtIjtjYXNlIk1NIjpyZXR1cm4gcmUrKDE9PT1FZT9VfHxq''@;'; put 'put ''PyJtZXNlYyI6Im1lc2VjZW0iOjI9PT1FZT9VfHxqPyJtZXNlY2EiOiJtZXNlY2VtYSI6RWU8NT9VfHxqPyJtZXNlY2UiOiJtZXNlY2kiOlV8fGo/Im1lc2VjZXYiOiJtZXNlY2kiKTtjYXNlInkiOnJldHVybiBVfHxqPyJlbm8gbGV0byI6ImVuaW0gbGV0b20iO2Nhc2UieXkiOnJldHVybiBy''@;'; put 'put ''ZSsoMT09PUVlP1V8fGo/ImxldG8iOiJsZXRvbSI6Mj09PUVlP1V8fGo/ImxldGkiOiJsZXRvbWEiOkVlPDU/VXx8aj8ibGV0YSI6ImxldGkiOlV8fGo/ImxldCI6ImxldGkiKX19bWUuZGVmaW5lTG9jYWxlKCJzbCIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFyZWNfYXByaWxfbWFqX2p1''@;'; put 'put ''bmlqX2p1bGlqX2F2Z3VzdF9zZXB0ZW1iZXJfb2t0b2Jlcl9ub3ZlbWJlcl9kZWNlbWJlciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiamFuLl9mZWIuX21hci5fYXByLl9tYWouX2p1bi5fanVsLl9hdmcuX3NlcC5fb2t0Ll9ub3YuX2RlYy4iLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFj''@;'; put 'put ''dDohMCx3ZWVrZGF5czoibmVkZWxqYV9wb25lZGVsamVrX3RvcmVrX3NyZWRhX1x1MDEwZGV0cnRla19wZXRla19zb2JvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3Rvci5fc3JlLl9cdTAxMGRldC5fcGV0Ll9zb2IuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJu''@;'; put 'put ''ZV9wb190b19zcl9cdTAxMGRlX3BlX3NvIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiREQuIE1NLiBZWVlZIixMTDoiRC4gTU1NTSBZWVlZIixMTEw6IkQuIE1NTU0gWVlZWSBIOm1tIixMTExMOiJk''@;'; put 'put ''ZGRkLCBELiBNTU1NIFlZWVkgSDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbZGFuZXMgb2JdIExUIixuZXh0RGF5OiJbanV0cmkgb2JdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt2XSBbbmVkZWxqb10gW29iXSBMVCI7Y2FzZSAz''@;'; put 'put ''OnJldHVybiJbdl0gW3NyZWRvXSBbb2JdIExUIjtjYXNlIDY6cmV0dXJuIlt2XSBbc29ib3RvXSBbb2JdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt2XSBkZGRkIFtvYl0gTFQifX0sbGFzdERheToiW3ZcdTAxMGRlcmFqIG9iXSBMVCIsbGFzdFdlZWs6ZnVuY3Rp''@;'; put 'put ''b24oKXtzd2l0Y2godGhpcy5kYXkoKSl7Y2FzZSAwOnJldHVybiJbcHJlalx1MDE2MW5qb10gW25lZGVsam9dIFtvYl0gTFQiO2Nhc2UgMzpyZXR1cm4iW3ByZWpcdTAxNjFuam9dIFtzcmVkb10gW29iXSBMVCI7Y2FzZSA2OnJldHVybiJbcHJlalx1MDE2MW5qb10gW3NvYm90b10gW29iXSBM''@;'; put 'put ''VCI7Y2FzZSAxOmNhc2UgMjpjYXNlIDQ6Y2FzZSA1OnJldHVybiJbcHJlalx1MDE2MW5qaV0gZGRkZCBbb2JdIExUIn19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDEwZGV6ICVzIixwYXN0OiJwcmVkICVzIixzOkIsc3M6QixtOkIsbW06QixoOkIsaGg6QixkOkIs''@;'; put 'put ''ZGQ6QixNOkIsTU06Qix5OkIseXk6Qn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfVwuLyxvcmRpbmFsOiIlZC4iLHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDg4Nzk5OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmlu''@;'; put 'put ''ZUxvY2FsZSgic3EiLHttb250aHM6IkphbmFyX1Noa3VydF9NYXJzX1ByaWxsX01hal9RZXJzaG9yX0tvcnJpa19HdXNodF9TaHRhdG9yX1RldG9yX05ceGVibnRvcl9EaGpldG9yIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fU2hrX01hcl9QcmlfTWFqX1Flcl9Lb3JfR3VzX1NodF9U''@;'; put 'put ''ZXRfTlx4ZWJuX0RoaiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiRSBEaWVsX0UgSFx4ZWJuXHhlYl9FIE1hcnRceGViX0UgTVx4ZWJya3VyXHhlYl9FIEVuanRlX0UgUHJlbXRlX0UgU2h0dW5ceGViIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IkRpZV9IXHhlYm5fTWFyX01ceGVicl9Fbmpf''@;'; put 'put ''UHJlX1NodCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiRF9IX01hX01ceGViX0VfUF9TaCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1BhcnNlRXhhY3Q6ITAsbWVyaWRpZW1QYXJzZTovUER8TUQvLGlzUE06ZnVuY3Rpb24oRSl7cmV0dXJuIk0iPT09RS5jaGFyQXQoMCl9LG1lcmlkaWVtOmZ1bmN0''@;'; put 'put ''aW9uKEUsRWUsVSl7cmV0dXJuIEU8MTI/IlBEIjoiTUQifSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0s''@;'; put 'put ''Y2FsZW5kYXI6e3NhbWVEYXk6IltTb3Qgblx4ZWJdIExUIixuZXh0RGF5OiJbTmVzXHhlYnIgblx4ZWJdIExUIixuZXh0V2VlazoiZGRkZCBbblx4ZWJdIExUIixsYXN0RGF5OiJbRGplIG5ceGViXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2Uga2FsdWFyIG5ceGViXSBMVCIsc2FtZUVsc2U6Ikwi''@;'; put 'put ''fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiblx4ZWIgJXMiLHBhc3Q6IiVzIG1ceGViIHBhclx4ZWIiLHM6ImRpc2Egc2Vrb25kYSIsc3M6IiVkIHNla29uZGEiLG06Im5qXHhlYiBtaW51dFx4ZWIiLG1tOiIlZCBtaW51dGEiLGg6Im5qXHhlYiBvclx4ZWIiLGhoOiIlZCBvclx4ZWIiLGQ6Im5q''@;'; put 'put ''XHhlYiBkaXRceGViIixkZDoiJWQgZGl0XHhlYiIsTToibmpceGViIG11YWoiLE1NOiIlZCBtdWFqIix5OiJualx4ZWIgdml0Iix5eToiJWQgdml0ZSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQz''@;'; put 'put ''OSkpfSw1Mjg3MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17d29yZHM6e3NzOlsiXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDMwIiwiXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM1Iiwi''@;'; put 'put ''XHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4Il0sbTpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzMgXHUwNDNjXHUwNDM4XHUw''@;'; put 'put ''NDNkXHUwNDQzXHUwNDQyXHUwNDMwIl0sbW06WyJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDIiLCJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiLCJcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0NDJcdTA0MzAiXSxoOlsiXHUwNDU4XHUwNDM1XHUwNDM0XHUw''@;'; put 'put ''NDMwXHUwNDNkIFx1MDQ0MVx1MDQzMFx1MDQ0MiIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzZVx1MDQzMyBcdTA0NDFcdTA0MzBcdTA0NDJcdTA0MzAiXSxoaDpbIlx1MDQ0MVx1MDQzMFx1MDQ0MiIsIlx1MDQ0MVx1MDQzMFx1MDQ0Mlx1MDQzMCIsIlx1MDQ0MVx1MDQzMFx1MDQ0''@;'; put 'put ''Mlx1MDQzOCJdLGQ6WyJcdTA0NThcdTA0MzVcdTA0MzRcdTA0MzBcdTA0M2QgXHUwNDM0XHUwNDMwXHUwNDNkIiwiXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDNlXHUwNDMzIFx1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMCJdLGRkOlsiXHUwNDM0XHUwNDMwXHUwNDNkIiwiXHUwNDM0XHUw''@;'; put 'put ''NDMwXHUwNDNkXHUwNDMwIiwiXHUwNDM0XHUwNDMwXHUwNDNkXHUwNDMwIl0sTTpbIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzMFx1MDQzZCBcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLCJcdTA0NThcdTA0MzVcdTA0MzRcdTA0M2RcdTA0M2VcdTA0MzMgXHUwNDNjXHUwNDM1XHUw''@;'; put 'put ''NDQxXHUwNDM1XHUwNDQ2XHUwNDMwIl0sTU06WyJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDYiLCJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0MzAiLCJcdTA0M2NcdTA0MzVcdTA0NDFcdTA0MzVcdTA0NDZcdTA0MzgiXSx5OlsiXHUwNDU4XHUwNDM1XHUwNDM0XHUw''@;'; put 'put ''NDNkXHUwNDQzIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyIsIlx1MDQ1OFx1MDQzNVx1MDQzNFx1MDQzZFx1MDQzNSBcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzUiXSx5eTpbIlx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyIsIlx1''@;'; put 'put ''MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzNSIsIlx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCJdfSxjb3JyZWN0R3JhbW1hdGljYWxDYXNlOmZ1bmN0aW9uKEVlLFUpe3JldHVybiBFZSUxMD49MSYmRWUlMTA8PTQmJihFZSUxMDA8MTB8fEVlJTEwMD49MjAp''@;'; put 'put ''P0VlJTEwPT0xP1VbMF06VVsxXTpVWzJdfSx0cmFuc2xhdGU6ZnVuY3Rpb24oRWUsVSxRLGope3ZhciBhZSxyZT1CLndvcmRzW1FdO3JldHVybiAxPT09US5sZW5ndGg/InkiPT09USYmVT8iXHUwNDU4XHUwNDM1XHUwNDM0XHUwNDNkXHUwNDMwIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1''@;'; put 'put ''MDQzZFx1MDQzMCI6anx8VT9yZVswXTpyZVsxXTooYWU9Qi5jb3JyZWN0R3JhbW1hdGljYWxDYXNlKEVlLHJlKSwieXkiPT09USYmVSYmIlx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyI9PT1hZT9FZSsiIFx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMCI6''@;'; put 'put ''RWUrIiAiK2FlKX19O21lLmRlZmluZUxvY2FsZSgic3ItY3lybCIse21vbnRoczoiXHUwNDU4XHUwNDMwXHUwNDNkXHUwNDQzXHUwNDMwXHUwNDQwX1x1MDQ0NFx1MDQzNVx1MDQzMVx1MDQ0MFx1MDQ0M1x1MDQzMFx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0NDBcdTA0NDJfXHUwNDMwXHUwNDNm''@;'; put 'put ''XHUwNDQwXHUwNDM4XHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ1OF9cdTA0NThcdTA0NDNcdTA0M2RfXHUwNDU4XHUwNDQzXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM1x1MDQ0M1x1MDQ0MVx1MDQ0Ml9cdTA0NDFcdTA0MzVcdTA0M2ZcdTA0NDJcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0''@;'; put 'put ''NDBfXHUwNDNlXHUwNDNhXHUwNDQyXHUwNDNlXHUwNDMxXHUwNDMwXHUwNDQwX1x1MDQzZFx1MDQzZVx1MDQzMlx1MDQzNVx1MDQzY1x1MDQzMVx1MDQzMFx1MDQ0MF9cdTA0MzRcdTA0MzVcdTA0NDZcdTA0MzVcdTA0M2NcdTA0MzFcdTA0MzBcdTA0NDAiLnNwbGl0KCJfIiksbW9udGhzU2hv''@;'; put 'put ''cnQ6Ilx1MDQ1OFx1MDQzMFx1MDQzZC5fXHUwNDQ0XHUwNDM1XHUwNDMxLl9cdTA0M2NcdTA0MzBcdTA0NDAuX1x1MDQzMFx1MDQzZlx1MDQ0MC5fXHUwNDNjXHUwNDMwXHUwNDU4X1x1MDQ1OFx1MDQ0M1x1MDQzZF9cdTA0NThcdTA0NDNcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzLl9cdTA0''@;'; put 'put ''NDFcdTA0MzVcdTA0M2YuX1x1MDQzZVx1MDQzYVx1MDQ0Mi5fXHUwNDNkXHUwNDNlXHUwNDMyLl9cdTA0MzRcdTA0MzVcdTA0NDYuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQzMF9cdTA0M2ZcdTA0''@;'; put 'put ''M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0MzBcdTA0M2FfXHUwNDQzXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0NDBcdTA0NDJcdTA0MzBcdTA0M2FfXHUw''@;'; put 'put ''NDNmXHUwNDM1XHUwNDQyXHUwNDMwXHUwNDNhX1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0M2RcdTA0MzVcdTA0MzQuX1x1MDQzZlx1MDQzZVx1MDQzZC5fXHUwNDQzXHUwNDQyXHUwNDNlLl9cdTA0NDFcdTA0NDBc''@;'; put 'put ''dTA0MzUuX1x1MDQ0N1x1MDQzNVx1MDQ0Mi5fXHUwNDNmXHUwNDM1XHUwNDQyLl9cdTA0NDFcdTA0NDNcdTA0MzEuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0M2RcdTA0MzVfXHUwNDNmXHUwNDNlX1x1MDQ0M1x1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDM1X1x1MDQzZlx1''@;'; put 'put ''MDQzNV9cdTA0NDFcdTA0NDMiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNzIixMOiJELiBNLiBZWVlZLiIsTEw6IkQuIE1NTU0gWVlZWS4iLExMTDoiRC4gTU1NTSBZWVlZLiBIOm1tIixMTExMOiJkZGRkLCBE''@;'; put 'put ''LiBNTU1NIFlZWVkuIEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MDQzNFx1MDQzMFx1MDQzZFx1MDQzMFx1MDQ0MSBcdTA0NDNdIExUIixuZXh0RGF5OiJbXHUwNDQxXHUwNDQzXHUwNDQyXHUwNDQwXHUwNDMwIFx1MDQ0M10gTFQiLG5leHRXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRo''@;'; put 'put ''aXMuZGF5KCkpe2Nhc2UgMDpyZXR1cm4iW1x1MDQ0M10gW1x1MDQzZFx1MDQzNVx1MDQzNFx1MDQzNVx1MDQ1OVx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgMzpyZXR1cm4iW1x1MDQ0M10gW1x1MDQ0MVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgNjpyZXR1''@;'; put 'put ''cm4iW1x1MDQ0M10gW1x1MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQ0M10gW1x1MDQ0M10gTFQiO2Nhc2UgMTpjYXNlIDI6Y2FzZSA0OmNhc2UgNTpyZXR1cm4iW1x1MDQ0M10gZGRkZCBbXHUwNDQzXSBMVCJ9fSxsYXN0RGF5OiJbXHUwNDU4XHUwNDQzXHUwNDQ3XHUwNDM1IFx1''@;'; put 'put ''MDQ0M10gTFQiLGxhc3RXZWVrOmZ1bmN0aW9uKCl7cmV0dXJuWyJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDM1XHUwNDU5XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0''@;'; put 'put ''M2VcdTA0MzNdIFtcdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0MzVcdTA0NTlcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQ0M1x1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzYVx1MDQzMF0g''@;'; put 'put ''W1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUwNDNiXHUwNDM1XSBbXHUwNDQxXHUwNDQwXHUwNDM1XHUwNDM0XHUwNDM1XSBbXHUwNDQzXSBMVCIsIltcdTA0M2ZcdTA0NDBcdTA0M2VcdTA0NDhcdTA0M2JcdTA0M2VcdTA0MzNdIFtcdTA0NDdcdTA0MzVcdTA0NDJc''@;'; put 'put ''dTA0MzJcdTA0NDBcdTA0NDJcdTA0M2FcdTA0MzBdIFtcdTA0NDNdIExUIiwiW1x1MDQzZlx1MDQ0MFx1MDQzZVx1MDQ0OFx1MDQzYlx1MDQzZVx1MDQzM10gW1x1MDQzZlx1MDQzNVx1MDQ0Mlx1MDQzYVx1MDQzMF0gW1x1MDQ0M10gTFQiLCJbXHUwNDNmXHUwNDQwXHUwNDNlXHUwNDQ4XHUw''@;'; put 'put ''NDNiXHUwNDM1XSBbXHUwNDQxXHUwNDQzXHUwNDMxXHUwNDNlXHUwNDQyXHUwNDM1XSBbXHUwNDQzXSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTA0MzdcdTA0MzAgJXMiLHBhc3Q6Ilx1MDQzZlx1MDQ0MFx1MDQzNSAlcyIsczoiXHUw''@;'; put 'put ''NDNkXHUwNDM1XHUwNDNhXHUwNDNlXHUwNDNiXHUwNDM4XHUwNDNhXHUwNDNlIFx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQzOCIsc3M6Qi50cmFuc2xhdGUsbTpCLnRyYW5zbGF0ZSxtbTpCLnRyYW5zbGF0ZSxoOkIudHJhbnNsYXRlLGhoOkIudHJhbnNsYXRlLGQ6''@;'; put 'put ''Qi50cmFuc2xhdGUsZGQ6Qi50cmFuc2xhdGUsTTpCLnRyYW5zbGF0ZSxNTTpCLnRyYW5zbGF0ZSx5OkIudHJhbnNsYXRlLHl5OkIudHJhbnNsYXRlfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0Mzkp''@;'; put 'put ''KX0sOTc5NDk6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9e3dvcmRzOntzczpbInNla3VuZGEiLCJzZWt1bmRlIiwic2VrdW5kaSJdLG06WyJqZWRhbiBtaW51dCIsImplZG5vZyBtaW51dGEiXSxtbTpbIm1pbnV0IiwibWludXRhIiwibWludXRh''@;'; put 'put ''Il0saDpbImplZGFuIHNhdCIsImplZG5vZyBzYXRhIl0saGg6WyJzYXQiLCJzYXRhIiwic2F0aSJdLGQ6WyJqZWRhbiBkYW4iLCJqZWRub2cgZGFuYSJdLGRkOlsiZGFuIiwiZGFuYSIsImRhbmEiXSxNOlsiamVkYW4gbWVzZWMiLCJqZWRub2cgbWVzZWNhIl0sTU06WyJtZXNlYyIsIm1lc2Vj''@;'; put 'put ''YSIsIm1lc2VjaSJdLHk6WyJqZWRudSBnb2RpbnUiLCJqZWRuZSBnb2RpbmUiXSx5eTpbImdvZGludSIsImdvZGluZSIsImdvZGluYSJdfSxjb3JyZWN0R3JhbW1hdGljYWxDYXNlOmZ1bmN0aW9uKEVlLFUpe3JldHVybiBFZSUxMD49MSYmRWUlMTA8PTQmJihFZSUxMDA8MTB8fEVlJTEwMD49''@;'; put 'put ''MjApP0VlJTEwPT0xP1VbMF06VVsxXTpVWzJdfSx0cmFuc2xhdGU6ZnVuY3Rpb24oRWUsVSxRLGope3ZhciBhZSxyZT1CLndvcmRzW1FdO3JldHVybiAxPT09US5sZW5ndGg/InkiPT09USYmVT8iamVkbmEgZ29kaW5hIjpqfHxVP3JlWzBdOnJlWzFdOihhZT1CLmNvcnJlY3RHcmFtbWF0aWNh''@;'; put 'put ''bENhc2UoRWUscmUpLCJ5eSI9PT1RJiZVJiYiZ29kaW51Ij09PWFlP0VlKyIgZ29kaW5hIjpFZSsiICIrYWUpfX07bWUuZGVmaW5lTG9jYWxlKCJzciIse21vbnRoczoiamFudWFyX2ZlYnJ1YXJfbWFydF9hcHJpbF9tYWpfanVuX2p1bF9hdmd1c3Rfc2VwdGVtYmFyX29rdG9iYXJfbm92ZW1i''@;'; put 'put ''YXJfZGVjZW1iYXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbi5fZmViLl9tYXIuX2Fwci5fbWFqX2p1bl9qdWxfYXZnLl9zZXAuX29rdC5fbm92Ll9kZWMuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Im5lZGVsamFfcG9uZWRlbGpha191dG9yYWtfc3Jl''@;'; put 'put ''ZGFfXHUwMTBkZXR2cnRha19wZXRha19zdWJvdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoibmVkLl9wb24uX3V0by5fc3JlLl9cdTAxMGRldC5fcGV0Ll9zdWIuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJuZV9wb191dF9zcl9cdTAxMGRlX3BlX3N1Ii5zcGxpdCgiXyIpLHdlZWtk''@;'; put 'put ''YXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Ikg6bW0iLExUUzoiSDptbTpzcyIsTDoiRC4gTS4gWVlZWS4iLExMOiJELiBNTU1NIFlZWVkuIixMTEw6IkQuIE1NTU0gWVlZWS4gSDptbSIsTExMTDoiZGRkZCwgRC4gTU1NTSBZWVlZLiBIOm1tIn0sY2FsZW5kYXI6e3NhbWVE''@;'; put 'put ''YXk6IltkYW5hcyB1XSBMVCIsbmV4dERheToiW3N1dHJhIHVdIExUIixuZXh0V2VlazpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLmRheSgpKXtjYXNlIDA6cmV0dXJuIlt1XSBbbmVkZWxqdV0gW3VdIExUIjtjYXNlIDM6cmV0dXJuIlt1XSBbc3JlZHVdIFt1XSBMVCI7Y2FzZSA2OnJldHVybiJb''@;'; put 'put ''dV0gW3N1Ym90dV0gW3VdIExUIjtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpjYXNlIDU6cmV0dXJuIlt1XSBkZGRkIFt1XSBMVCJ9fSxsYXN0RGF5OiJbanVcdTAxMGRlIHVdIExUIixsYXN0V2VlazpmdW5jdGlvbigpe3JldHVyblsiW3Byb1x1MDE2MWxlXSBbbmVkZWxqZV0gW3VdIExUIiwiW3By''@;'; put 'put ''b1x1MDE2MWxvZ10gW3BvbmVkZWxqa2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsb2ddIFt1dG9ya2FdIFt1XSBMVCIsIltwcm9cdTAxNjFsZV0gW3NyZWRlXSBbdV0gTFQiLCJbcHJvXHUwMTYxbG9nXSBbXHUwMTBkZXR2cnRrYV0gW3VdIExUIiwiW3Byb1x1MDE2MWxvZ10gW3BldGthXSBbdV0g''@;'; put 'put ''TFQiLCJbcHJvXHUwMTYxbGVdIFtzdWJvdGVdIFt1XSBMVCJdW3RoaXMuZGF5KCldfSxzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJ6YSAlcyIscGFzdDoicHJlICVzIixzOiJuZWtvbGlrbyBzZWt1bmRpIixzczpCLnRyYW5zbGF0ZSxtOkIudHJhbnNsYXRlLG1tOkIudHJh''@;'; put 'put ''bnNsYXRlLGg6Qi50cmFuc2xhdGUsaGg6Qi50cmFuc2xhdGUsZDpCLnRyYW5zbGF0ZSxkZDpCLnRyYW5zbGF0ZSxNOkIudHJhbnNsYXRlLE1NOkIudHJhbnNsYXRlLHk6Qi50cmFuc2xhdGUseXk6Qi50cmFuc2xhdGV9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5h''@;'; put 'put ''bDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw4NjE2NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInNzIix7bW9udGhzOiJCaGltYmlkdndhbmVfSW5kbG92YW5hX0luZGxvdidsZW5raHVsdV9NYWJh''@;'; put 'put ''c2FfSW5raHdla2h3ZXRpX0luaGxhYmFfS2hvbHdhbmVfSW5nY2lfSW55b25pX0ltcGhhbGFfTHdldGlfSW5nb25nb25pIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJCaGlfSW5hX0ludV9NYWJfSW5rX0luaF9LaG9fSWdjX0lueV9JbXBfTHdlX0lnbyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoi''@;'; put 'put ''TGlzb250Zm9fVW1zb21idWx1a29fTGVzaWJpbGlfTGVzaXRzYXRmdV9MZXNpbmVfTGVzaWhsYW51X1VtZ2NpYmVsbyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJMaXNfVW1iX0xzYl9MZXNfTHNpX0xzaF9VbWciLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkxpX1VzX0xiX0x0X0xzX0xo''@;'; put 'put ''X1VnIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6Img6bW0gQSIsTFRTOiJoOm1tOnNzIEEiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBoOm1tIEEiLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIGg6''@;'; put 'put ''bW0gQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbTmFtdWhsYSBuZ2FdIExUIixuZXh0RGF5OiJbS3VzYXNhIG5nYV0gTFQiLG5leHRXZWVrOiJkZGRkIFtuZ2FdIExUIixsYXN0RGF5OiJbSXRvbG8gbmdhXSBMVCIsbGFzdFdlZWs6ImRkZGQgW2xlbGlwaGVsaWxlXSBbbmdhXSBMVCIsc2FtZUVs''@;'; put 'put ''c2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibmdhICVzIixwYXN0OiJ3ZW50ZWthIG5nYSAlcyIsczoiZW1penV6d2FuYSBsb21jYW5lIixzczoiJWQgbXp1endhbmEiLG06InVtenV6dSIsbW06IiVkIGVtaXp1enUiLGg6ImxpaG9yYSIsaGg6IiVkIGVtYWhvcmEiLGQ6ImxpbGFuZ2Ei''@;'; put 'put ''LGRkOiIlZCBlbWFsYW5nYSIsTToiaW55YW5nYSIsTU06IiVkIHRpbnlhbmdhIix5OiJ1bW55YWthIix5eToiJWQgaW1pbnlha2EifSxtZXJpZGllbVBhcnNlOi9la3VzZW5pfGVtaW5pfGVudHNhbWJhbWF8ZWJ1c3VrdS8sbWVyaWRpZW06ZnVuY3Rpb24oRSxFZSxVKXtyZXR1cm4gRTwxMT8i''@;'; put 'put ''ZWt1c2VuaSI6RTwxNT8iZW1pbmkiOkU8MTk/ImVudHNhbWJhbWEiOiJlYnVzdWt1In0sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsRWUpe3JldHVybiAxMj09PUUmJihFPTApLCJla3VzZW5pIj09PUVlP0U6ImVtaW5pIj09PUVlP0U+PTExP0U6RSsxMjoiZW50c2FtYmFtYSI9PT1FZXx8ImVi''@;'; put 'put ''dXN1a3UiPT09RWU/MD09PUU/MDpFKzEyOnZvaWQgMH0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8sb3JkaW5hbDoiJWQiLHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDM5NzEzOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21l''@;'; put 'put ''LmRlZmluZUxvY2FsZSgic3YiLHttb250aHM6ImphbnVhcmlfZmVicnVhcmlfbWFyc19hcHJpbF9tYWpfanVuaV9qdWxpX2F1Z3VzdGlfc2VwdGVtYmVyX29rdG9iZXJfbm92ZW1iZXJfZGVjZW1iZXIiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Imphbl9mZWJfbWFyX2Fwcl9tYWpfanVuX2p1''@;'; put 'put ''bF9hdWdfc2VwX29rdF9ub3ZfZGVjIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJzXHhmNm5kYWdfbVx4ZTVuZGFnX3Rpc2RhZ19vbnNkYWdfdG9yc2RhZ19mcmVkYWdfbFx4ZjZyZGFnIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6InNceGY2bl9tXHhlNW5fdGlzX29uc190b3JfZnJlX2xceGY2''@;'; put 'put ''ciIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoic1x4ZjZfbVx4ZTVfdGlfb25fdG9fZnJfbFx4ZjYiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS1NTS1ERCIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIFtrbC5d''@;'; put 'put ''IEhIOm1tIixMTExMOiJkZGRkIEQgTU1NTSBZWVlZIFtrbC5dIEhIOm1tIixsbGw6IkQgTU1NIFlZWVkgSEg6bW0iLGxsbGw6ImRkZCBEIE1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltJZGFnXSBMVCIsbmV4dERheToiW0ltb3Jnb25dIExUIixsYXN0RGF5OiJbSWdceGU1''@;'; put 'put ''cl0gTFQiLG5leHRXZWVrOiJbUFx4ZTVdIGRkZGQgTFQiLGxhc3RXZWVrOiJbSV0gZGRkZFtzXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToib20gJXMiLHBhc3Q6ImZceGY2ciAlcyBzZWRhbiIsczoiblx4ZTVncmEgc2VrdW5kZXIiLHNzOiIlZCBzZWt1bmRlciIs''@;'; put 'put ''bToiZW4gbWludXQiLG1tOiIlZCBtaW51dGVyIixoOiJlbiB0aW1tZSIsaGg6IiVkIHRpbW1hciIsZDoiZW4gZGFnIixkZDoiJWQgZGFnYXIiLE06ImVuIG1ceGU1bmFkIixNTToiJWQgbVx4ZTVuYWRlciIseToiZXR0IFx4ZTVyIix5eToiJWQgXHhlNXIifSxkYXlPZk1vbnRoT3JkaW5hbFBh''@;'; put 'put ''cnNlOi9cZHsxLDJ9KFw6ZXxcOmEpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBFZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/IjplIjoxPT09RWV8fDI9PT1FZT8iOmEiOiI6ZSIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw0MTk4MjpmdW5jdGlvbihYZSxK''@;'; put 'put ''ZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInN3Iix7bW9udGhzOiJKYW51YXJpX0ZlYnJ1YXJpX01hY2hpX0FwcmlsaV9NZWlfSnVuaV9KdWxhaV9BZ29zdGlfU2VwdGVtYmFfT2t0b2JhX05vdmVtYmFfRGVzZW1iYSIuc3BsaXQoIl8iKSxtb250aHNT''@;'; put 'put ''aG9ydDoiSmFuX0ZlYl9NYWNfQXByX01laV9KdW5fSnVsX0Fnb19TZXBfT2t0X05vdl9EZXMiLnNwbGl0KCJfIiksd2Vla2RheXM6Ikp1bWFwaWxpX0p1bWF0YXR1X0p1bWFubmVfSnVtYXRhbm9fQWxoYW1pc2lfSWp1bWFhX0p1bWFtb3NpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ikpw''@;'; put 'put ''bF9KdGF0X0pubmVfSnRhbl9BbGhfSWptX0ptb3MiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkoyX0ozX0o0X0o1X0FsX0lqX0oxIi5zcGxpdCgiXyIpLHdlZWtkYXlzUGFyc2VFeGFjdDohMCxsb25nRGF0ZUZvcm1hdDp7TFQ6ImhoOm1tIEEiLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZ''@;'; put 'put ''WVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2xlbyBzYWFdIExUIixuZXh0RGF5OiJba2VzaG8gc2FhXSBMVCIsbmV4dFdlZWs6Ilt3aWtpIGlqYXlvXSBkZGRkIFtz''@;'; put 'put ''YWF0XSBMVCIsbGFzdERheToiW2phbmFdIExUIixsYXN0V2VlazoiW3dpa2kgaWxpeW9waXRhXSBkZGRkIFtzYWF0XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgYmFhZGF5ZSIscGFzdDoidG9rZWEgJXMiLHM6ImhpdmkgcHVuZGUiLHNzOiJzZWt1bmRlICVk''@;'; put 'put ''IixtOiJkYWtpa2EgbW9qYSIsbW06ImRha2lrYSAlZCIsaDoic2FhIGxpbW9qYSIsaGg6Im1hc2FhICVkIixkOiJzaWt1IG1vamEiLGRkOiJzaWt1ICVkIixNOiJtd2V6aSBtbW9qYSIsTU06Im1pZXppICVkIix5OiJtd2FrYSBtbW9qYSIseXk6Im1pYWthICVkIn0sd2Vlazp7ZG93OjEsZG95''@;'; put 'put ''Ojd9fSl9KEwoMTU0MzkpKX0sMjI3MzI6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezE6Ilx1MGJlNyIsMjoiXHUwYmU4IiwzOiJcdTBiZTkiLDQ6Ilx1MGJlYSIsNToiXHUwYmViIiw2OiJcdTBiZWMiLDc6Ilx1MGJlZCIsODoiXHUwYmVlIiw5''@;'; put 'put ''OiJcdTBiZWYiLDA6Ilx1MGJlNiJ9LEU9eyJcdTBiZTciOiIxIiwiXHUwYmU4IjoiMiIsIlx1MGJlOSI6IjMiLCJcdTBiZWEiOiI0IiwiXHUwYmViIjoiNSIsIlx1MGJlYyI6IjYiLCJcdTBiZWQiOiI3IiwiXHUwYmVlIjoiOCIsIlx1MGJlZiI6IjkiLCJcdTBiZTYiOiIwIn07bWUuZGVmaW5l''@;'; put 'put ''TG9jYWxlKCJ0YSIse21vbnRoczoiXHUwYjljXHUwYmE5XHUwYmI1XHUwYmIwXHUwYmJmX1x1MGJhYVx1MGJiZlx1MGJhYVx1MGJjZFx1MGJiMFx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWVcdTBiYmVcdTBiYjBcdTBiY2RcdTBiOWFcdTBiY2RfXHUwYjhmXHUwYmFhXHUwYmNkXHUwYmIwXHUw''@;'; put 'put ''YmIyXHUwYmNkX1x1MGJhZVx1MGJjN19cdTBiOWNcdTBiYzJcdTBiYTlcdTBiY2RfXHUwYjljXHUwYmMyXHUwYmIyXHUwYmM4X1x1MGI4Nlx1MGI5NVx1MGJiOFx1MGJjZFx1MGI5Zlx1MGJjZF9cdTBiOWFcdTBiYzZcdTBiYWFcdTBiY2RcdTBiOWZcdTBiYzZcdTBiYWVcdTBiY2RcdTBiYWFc''@;'; put 'put ''dTBiYjBcdTBiY2RfXHUwYjg1XHUwYjk1XHUwYmNkXHUwYjlmXHUwYmM3XHUwYmJlXHUwYmFhXHUwYmIwXHUwYmNkX1x1MGJhOFx1MGJiNVx1MGJhZVx1MGJjZFx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiOWZcdTBiYmZcdTBiOWFcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2QiLnNwbGl0''@;'; put 'put ''KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGI5Y1x1MGJhOVx1MGJiNVx1MGJiMFx1MGJiZl9cdTBiYWFcdTBiYmZcdTBiYWFcdTBiY2RcdTBiYjBcdTBiYjVcdTBiYjBcdTBiYmZfXHUwYmFlXHUwYmJlXHUwYmIwXHUwYmNkXHUwYjlhXHUwYmNkX1x1MGI4Zlx1MGJhYVx1MGJjZFx1MGJiMFx1MGJi''@;'; put 'put ''Mlx1MGJjZF9cdTBiYWVcdTBiYzdfXHUwYjljXHUwYmMyXHUwYmE5XHUwYmNkX1x1MGI5Y1x1MGJjMlx1MGJiMlx1MGJjOF9cdTBiODZcdTBiOTVcdTBiYjhcdTBiY2RcdTBiOWZcdTBiY2RfXHUwYjlhXHUwYmM2XHUwYmFhXHUwYmNkXHUwYjlmXHUwYmM2XHUwYmFlXHUwYmNkXHUwYmFhXHUw''@;'; put 'put ''YmIwXHUwYmNkX1x1MGI4NVx1MGI5NVx1MGJjZFx1MGI5Zlx1MGJjN1x1MGJiZVx1MGJhYVx1MGJiMFx1MGJjZF9cdTBiYThcdTBiYjVcdTBiYWVcdTBiY2RcdTBiYWFcdTBiYjBcdTBiY2RfXHUwYjlmXHUwYmJmXHUwYjlhXHUwYmFlXHUwYmNkXHUwYmFhXHUwYmIwXHUwYmNkIi5zcGxpdCgi''@;'; put 'put ''XyIpLHdlZWtkYXlzOiJcdTBiOWVcdTBiYmVcdTBiYWZcdTBiYmZcdTBiYjFcdTBiY2RcdTBiYjFcdTBiYzFcdTBiOTVcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmE0XHUwYmJmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYjlmXHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0''@;'; put 'put ''XHUwYmFlXHUwYmM4X1x1MGI5YVx1MGJjNlx1MGJiNVx1MGJjZFx1MGJiNVx1MGJiZVx1MGJhZlx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiYWFcdTBiYzFcdTBiYTRcdTBiYTlcdTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzhfXHUwYmI1XHUwYmJm''@;'; put 'put ''XHUwYmFmXHUwYmJlXHUwYmI0XHUwYjk1XHUwYmNkXHUwYjk1XHUwYmJmXHUwYmI0XHUwYmFlXHUwYmM4X1x1MGJiNVx1MGJjNlx1MGJiM1x1MGJjZFx1MGJiM1x1MGJiZlx1MGI5NVx1MGJjZFx1MGI5NVx1MGJiZlx1MGJiNFx1MGJhZVx1MGJjOF9cdTBiOWFcdTBiYTlcdTBiYmZcdTBiOTVc''@;'; put 'put ''dTBiY2RcdTBiOTVcdTBiYmZcdTBiYjRcdTBiYWVcdTBiYzgiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwYjllXHUwYmJlXHUwYmFmXHUwYmJmXHUwYmIxXHUwYmMxX1x1MGJhNFx1MGJiZlx1MGI5OVx1MGJjZFx1MGI5NVx1MGJiM1x1MGJjZF9cdTBiOWFcdTBiYzZcdTBiYjVcdTBi''@;'; put 'put ''Y2RcdTBiYjVcdTBiYmVcdTBiYWZcdTBiY2RfXHUwYmFhXHUwYmMxXHUwYmE0XHUwYmE5XHUwYmNkX1x1MGJiNVx1MGJiZlx1MGJhZlx1MGJiZVx1MGJiNFx1MGJhOVx1MGJjZF9cdTBiYjVcdTBiYzZcdTBiYjNcdTBiY2RcdTBiYjNcdTBiYmZfXHUwYjlhXHUwYmE5XHUwYmJmIi5zcGxpdCgi''@;'; put 'put ''XyIpLHdlZWtkYXlzTWluOiJcdTBiOWVcdTBiYmVfXHUwYmE0XHUwYmJmX1x1MGI5YVx1MGJjNl9cdTBiYWFcdTBiYzFfXHUwYmI1XHUwYmJmX1x1MGJiNVx1MGJjNl9cdTBiOWEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0v''@;'; put 'put ''WVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZLCBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVksIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBiODdcdTBiYTlcdTBiY2RcdTBiYjFcdTBiYzFdIExUIixuZXh0RGF5OiJbXHUwYmE4XHUwYmJlXHUwYmIz''@;'; put 'put ''XHUwYmM4XSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYmE4XHUwYmM3XHUwYmIxXHUwYmNkXHUwYmIxXHUwYmMxXSBMVCIsbGFzdFdlZWs6IltcdTBiOTVcdTBiOWZcdTBiYThcdTBiY2RcdTBiYTQgXHUwYmI1XHUwYmJlXHUwYmIwXHUwYmFlXHUwYmNkXSBkZGRkLCBM''@;'; put 'put ''VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXMgXHUwYjg3XHUwYmIyXHUwYmNkIixwYXN0OiIlcyBcdTBiYWVcdTBiYzFcdTBiYTlcdTBiY2QiLHM6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiOWFcdTBiYmZcdTBiYjIgXHUwYmI1XHUwYmJmXHUwYmE4XHUwYmJlXHUw''@;'; put 'put ''YjlmXHUwYmJmXHUwYjk1XHUwYmIzXHUwYmNkIixzczoiJWQgXHUwYmI1XHUwYmJmXHUwYmE4XHUwYmJlXHUwYjlmXHUwYmJmXHUwYjk1XHUwYmIzXHUwYmNkIixtOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJmXHUwYjlmXHUwYmFlXHUwYmNkIixtbToiJWQg''@;'; put 'put ''XHUwYmE4XHUwYmJmXHUwYmFlXHUwYmJmXHUwYjlmXHUwYjk5XHUwYmNkXHUwYjk1XHUwYmIzXHUwYmNkIixoOiJcdTBiOTJcdTBiYjBcdTBiYzEgXHUwYmFlXHUwYmEzXHUwYmJmIFx1MGJhOFx1MGJjN1x1MGJiMFx1MGJhZVx1MGJjZCIsaGg6IiVkIFx1MGJhZVx1MGJhM1x1MGJiZiBcdTBi''@;'; put 'put ''YThcdTBiYzdcdTBiYjBcdTBiYWVcdTBiY2QiLGQ6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYThcdTBiYmVcdTBiYjNcdTBiY2QiLGRkOiIlZCBcdTBiYThcdTBiYmVcdTBiOWZcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2QiLE06Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYWVcdTBiYmVcdTBi''@;'; put 'put ''YTRcdTBiYWVcdTBiY2QiLE1NOiIlZCBcdTBiYWVcdTBiYmVcdTBiYTRcdTBiOTlcdTBiY2RcdTBiOTVcdTBiYjNcdTBiY2QiLHk6Ilx1MGI5Mlx1MGJiMFx1MGJjMSBcdTBiYjVcdTBiYjBcdTBiYzFcdTBiOWZcdTBiYWVcdTBiY2QiLHl5OiIlZCBcdTBiODZcdTBiYTNcdTBiY2RcdTBiOWZc''@;'; put 'put ''dTBiYzFcdTBiOTVcdTBiYjNcdTBiY2QifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XHUwYmI1XHUwYmE0XHUwYmMxLyxvcmRpbmFsOmZ1bmN0aW9uKFUpe3JldHVybiBVKyJcdTBiYjVcdTBiYTRcdTBiYzEifSxwcmVwYXJzZTpmdW5jdGlvbihVKXtyZXR1cm4gVS5yZXBsYWNl''@;'; put 'put ''KC9bXHUwYmU3XHUwYmU4XHUwYmU5XHUwYmVhXHUwYmViXHUwYmVjXHUwYmVkXHUwYmVlXHUwYmVmXHUwYmU2XS9nLGZ1bmN0aW9uKFEpe3JldHVybiBFW1FdfSl9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvXGQvZyxmdW5jdGlvbihRKXtyZXR1cm4gQltRXX0p''@;'; put 'put ''fSxtZXJpZGllbVBhcnNlOi9cdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2R8XHUwYmI1XHUwYmM4XHUwYjk1XHUwYmIxXHUwYmM4fFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJjOHxcdTBiYThcdTBiYTNcdTBiY2RcdTBiYWFcdTBiOTVcdTBiYjJcdTBiY2R8XHUwYjhlXHUwYmIxXHUwYmNk''@;'; put 'put ''XHUwYmFhXHUwYmJlXHUwYjlmXHUwYmMxfFx1MGJhZVx1MGJiZVx1MGJiMlx1MGJjOC8sbWVyaWRpZW06ZnVuY3Rpb24oVSxRLGope3JldHVybiBVPDI/IiBcdTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2QiOlU8Nj8iIFx1MGJiNVx1MGJjOFx1MGI5NVx1MGJiMVx1MGJjOCI6VTwxMD8i''@;'; put 'put ''IFx1MGI5NVx1MGJiZVx1MGJiMlx1MGJjOCI6VTwxND8iIFx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJiMlx1MGJjZCI6VTwxOD8iIFx1MGI4ZVx1MGJiMVx1MGJjZFx1MGJhYVx1MGJiZVx1MGI5Zlx1MGJjMSI6VTwyMj8iIFx1MGJhZVx1MGJiZVx1MGJiMlx1MGJjOCI6IiBc''@;'; put 'put ''dTBiYWZcdTBiYmVcdTBiYWVcdTBiYWVcdTBiY2QifSxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oVSxRKXtyZXR1cm4gMTI9PT1VJiYoVT0wKSwiXHUwYmFmXHUwYmJlXHUwYmFlXHUwYmFlXHUwYmNkIj09PVE/VTwyP1U6VSsxMjoiXHUwYmI1XHUwYmM4XHUwYjk1XHUwYmIxXHUwYmM4Ij09PVF8''@;'; put 'put ''fCJcdTBiOTVcdTBiYmVcdTBiYjJcdTBiYzgiPT09UXx8Ilx1MGJhOFx1MGJhM1x1MGJjZFx1MGJhYVx1MGI5NVx1MGJiMlx1MGJjZCI9PT1RJiZVPj0xMD9VOlUrMTJ9LHdlZWs6e2RvdzowLGRveTo2fX0pfShMKDE1NDM5KSl9LDQzNjM2OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbiht''@;'; put 'put ''ZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgidGUiLHttb250aHM6Ilx1MGMxY1x1MGMyOFx1MGMzNVx1MGMzMFx1MGMzZl9cdTBjMmJcdTBjM2ZcdTBjMmNcdTBjNGRcdTBjMzBcdTBjMzVcdTBjMzBcdTBjM2ZfXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUwYzFhXHUwYzNmX1x1''@;'; put 'put ''MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1MGMzZlx1MGMzMlx1MGM0ZF9cdTBjMmVcdTBjNDdfXHUwYzFjXHUwYzQyXHUwYzI4XHUwYzRkX1x1MGMxY1x1MGM0MVx1MGMzMlx1MGM0OF9cdTBjMDZcdTBjMTdcdTBjMzhcdTBjNGRcdTBjMWZcdTBjNDFfXHUwYzM4XHUwYzQ2XHUwYzJhXHUwYzRk''@;'; put 'put ''XHUwYzFmXHUwYzQ2XHUwYzAyXHUwYzJjXHUwYzMwXHUwYzRkX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Ylx1MGMyY1x1MGMzMFx1MGM0ZF9cdTBjMjhcdTBjMzVcdTBjMDJcdTBjMmNcdTBjMzBcdTBjNGRfXHUwYzIxXHUwYzNmXHUwYzM4XHUwYzQ2XHUwYzAyXHUwYzJjXHUwYzMw''@;'; put 'put ''XHUwYzRkIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJcdTBjMWNcdTBjMjguX1x1MGMyYlx1MGMzZlx1MGMyY1x1MGM0ZFx1MGMzMC5fXHUwYzJlXHUwYzNlXHUwYzMwXHUwYzRkXHUwYzFhXHUwYzNmX1x1MGMwZlx1MGMyYVx1MGM0ZFx1MGMzMFx1MGMzZi5fXHUwYzJlXHUwYzQ3X1x1MGMx''@;'; put 'put ''Y1x1MGM0Mlx1MGMyOFx1MGM0ZF9cdTBjMWNcdTBjNDFcdTBjMzJcdTBjNDhfXHUwYzA2XHUwYzE3Ll9cdTBjMzhcdTBjNDZcdTBjMmFcdTBjNGQuX1x1MGMwNVx1MGMxNVx1MGM0ZFx1MGMxZlx1MGM0Yi5fXHUwYzI4XHUwYzM1Ll9cdTBjMjFcdTBjM2ZcdTBjMzhcdTBjNDYuIi5zcGxpdCgi''@;'; put 'put ''XyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGMwNlx1MGMyNlx1MGMzZlx1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMzhcdTBjNGJcdTBjMmVcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzJlXHUwYzAyXHUwYzE3XHUwYzMzXHUwYzM1XHUwYzNlXHUwYzMwXHUw''@;'; put 'put ''YzAyX1x1MGMyY1x1MGM0MVx1MGMyN1x1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMl9cdTBjMTdcdTBjNDFcdTBjMzBcdTBjNDFcdTBjMzVcdTBjM2VcdTBjMzBcdTBjMDJfXHUwYzM2XHUwYzQxXHUwYzE1XHUwYzRkXHUwYzMwXHUwYzM1XHUwYzNlXHUwYzMwXHUwYzAyX1x1MGMzNlx1MGMyOFx1''@;'; put 'put ''MGMzZlx1MGMzNVx1MGMzZVx1MGMzMFx1MGMwMiIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBjMDZcdTBjMjZcdTBjM2ZfXHUwYzM4XHUwYzRiXHUwYzJlX1x1MGMyZVx1MGMwMlx1MGMxN1x1MGMzM19cdTBjMmNcdTBjNDFcdTBjMjdfXHUwYzE3XHUwYzQxXHUwYzMwXHUwYzQxX1x1''@;'; put 'put ''MGMzNlx1MGM0MVx1MGMxNVx1MGM0ZFx1MGMzMF9cdTBjMzZcdTBjMjhcdTBjM2YiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGMwNl9cdTBjMzhcdTBjNGJfXHUwYzJlXHUwYzAyX1x1MGMyY1x1MGM0MV9cdTBjMTdcdTBjNDFfXHUwYzM2XHUwYzQxX1x1MGMzNiIuc3BsaXQoIl8iKSxs''@;'; put 'put ''b25nRGF0ZUZvcm1hdDp7TFQ6IkEgaDptbSIsTFRTOiJBIGg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSwgQSBoOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSwgQSBoOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBjMjhcdTBj''@;'; put 'put ''NDdcdTBjMjFcdTBjNDFdIExUIixuZXh0RGF5OiJbXHUwYzMwXHUwYzQ3XHUwYzJhXHUwYzQxXSBMVCIsbmV4dFdlZWs6ImRkZGQsIExUIixsYXN0RGF5OiJbXHUwYzI4XHUwYzNmXHUwYzI4XHUwYzRkXHUwYzI4XSBMVCIsbGFzdFdlZWs6IltcdTBjMTdcdTBjMjRdIGRkZGQsIExUIixzYW1l''@;'; put 'put ''RWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTBjMzJcdTBjNGIiLHBhc3Q6IiVzIFx1MGMxNVx1MGM0ZFx1MGMzMFx1MGMzZlx1MGMyNFx1MGMwMiIsczoiXHUwYzE1XHUwYzRhXHUwYzI4XHUwYzRkXHUwYzI4XHUwYzNmIFx1MGMxNVx1MGM0ZFx1MGMzN1x1MGMyM1x1MGMz''@;'; put 'put ''ZVx1MGMzMlx1MGM0MSIsc3M6IiVkIFx1MGMzOFx1MGM0Nlx1MGMxNVx1MGMyOFx1MGM0ZFx1MGMzMlx1MGM0MSIsbToiXHUwYzEyXHUwYzE1IFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1MGMzN1x1MGMwMiIsbW06IiVkIFx1MGMyOFx1MGMzZlx1MGMyZVx1MGMzZlx1MGMzN1x1MGMzZVx1''@;'; put 'put ''MGMzMlx1MGM0MSIsaDoiXHUwYzEyXHUwYzE1IFx1MGMxN1x1MGMwMlx1MGMxZiIsaGg6IiVkIFx1MGMxN1x1MGMwMlx1MGMxZlx1MGMzMlx1MGM0MSIsZDoiXHUwYzEyXHUwYzE1IFx1MGMzMFx1MGM0Ylx1MGMxY1x1MGM0MSIsZGQ6IiVkIFx1MGMzMFx1MGM0Ylx1MGMxY1x1MGM0MVx1MGMz''@;'; put 'put ''Mlx1MGM0MSIsTToiXHUwYzEyXHUwYzE1IFx1MGMyOFx1MGM0Nlx1MGMzMiIsTU06IiVkIFx1MGMyOFx1MGM0Nlx1MGMzMlx1MGMzMlx1MGM0MSIseToiXHUwYzEyXHUwYzE1IFx1MGMzOFx1MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1MGMzOFx1MGMzMFx1MGMwMiIseXk6IiVkIFx1MGMzOFx1''@;'; put 'put ''MGMwMlx1MGMzNVx1MGMyNFx1MGM0ZFx1MGMzOFx1MGMzMFx1MGMzZVx1MGMzMlx1MGM0MSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cdTBjMzUvLG9yZGluYWw6IiVkXHUwYzM1IixtZXJpZGllbVBhcnNlOi9cdTBjMzBcdTBjM2VcdTBjMjRcdTBjNGRcdTBjMzBcdTBjM2Z8''@;'; put 'put ''XHUwYzA5XHUwYzI2XHUwYzJmXHUwYzAyfFx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1MGM0ZFx1MGMyOFx1MGMwMnxcdTBjMzhcdTBjM2VcdTBjMmZcdTBjMDJcdTBjMjRcdTBjNGRcdTBjMzBcdTBjMDIvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLEVlKXtyZXR1cm4g''@;'; put 'put ''MTI9PT1FJiYoRT0wKSwiXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIj09PUVlP0U8ND9FOkUrMTI6Ilx1MGMwOVx1MGMyNlx1MGMyZlx1MGMwMiI9PT1FZT9FOiJcdTBjMmVcdTBjMjdcdTBjNGRcdTBjMmZcdTBjM2VcdTBjMzlcdTBjNGRcdTBjMjhcdTBjMDIiPT09RWU/''@;'; put 'put ''RT49MTA/RTpFKzEyOiJcdTBjMzhcdTBjM2VcdTBjMmZcdTBjMDJcdTBjMjRcdTBjNGRcdTBjMzBcdTBjMDIiPT09RWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEU8ND8iXHUwYzMwXHUwYzNlXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzNmIjpFPDEwPyJc''@;'; put 'put ''dTBjMDlcdTBjMjZcdTBjMmZcdTBjMDIiOkU8MTc/Ilx1MGMyZVx1MGMyN1x1MGM0ZFx1MGMyZlx1MGMzZVx1MGMzOVx1MGM0ZFx1MGMyOFx1MGMwMiI6RTwyMD8iXHUwYzM4XHUwYzNlXHUwYzJmXHUwYzAyXHUwYzI0XHUwYzRkXHUwYzMwXHUwYzAyIjoiXHUwYzMwXHUwYzNlXHUwYzI0XHUw''@;'; put 'put ''YzRkXHUwYzMwXHUwYzNmIn0sd2Vlazp7ZG93OjAsZG95OjZ9fSl9KEwoMTU0MzkpKX0sMjExNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInRldCIse21vbnRoczoiSmFuZWlydV9GZXZlcmVpcnVfTWFyc3VfQWJyaWxfTWFp''@;'; put 'put ''dV9KdVx4ZjF1X0p1bGx1X0FndXN0dV9TZXRlbWJydV9PdXR1YnJ1X05vdmVtYnJ1X0RlemVtYnJ1Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmV2X01hcl9BYnJfTWFpX0p1bl9KdWxfQWdvX1NldF9PdXRfTm92X0RleiIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiRG9taW5ndV9TZWd1''@;'; put 'put ''bmRhX1RlcnNhX0t1YXJ0YV9LaW50YV9TZXN0YV9TYWJhZHUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiRG9tX1NlZ19UZXJzX0t1YV9LaW50X1Nlc3RfU2FiIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJEb19TZWdfVGVfS3VfS2lfU2VzX1NhIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9y''@;'; put 'put ''bWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW09oaW4gaWhhXSBMVCIsbmV4dERheToiW0Fi''@;'; put 'put ''YW4gaWhhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW2loYV0gTFQiLGxhc3REYXk6IltIb3Jpc2VpayBpaGFdIExUIixsYXN0V2VlazoiZGRkZCBbc2VtYW5hIGtvdHVrXSBbaWhhXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiaWhhICVzIixwYXN0OiIlcyBsaXViYSIs''@;'; put 'put ''czoic2VndW5kdSBiYWx1biIsc3M6InNlZ3VuZHUgJWQiLG06Im1pbnV0dSBpZGEiLG1tOiJtaW51dHUgJWQiLGg6Im9yYXMgaWRhIixoaDoib3JhcyAlZCIsZDoibG9yb24gaWRhIixkZDoibG9yb24gJWQiLE06ImZ1bGFuIGlkYSIsTU06ImZ1bGFuICVkIix5OiJ0aW5hbiBpZGEiLHl5OiJ0''@;'; put 'put ''aW5hbiAlZCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oc3R8bmR8cmR8dGgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3ZhciBFZT1FJTEwO3JldHVybiBFKygxPT1+fihFJTEwMC8xMCk/InRoIjoxPT09RWU/InN0IjoyPT09RWU/Im5kIjozPT09RWU/InJkIjoidGgiKX0sd2Vl''@;'; put 'put ''azp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNjk4MDE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7dmFyIEI9ezA6Ii1cdTA0NDNcdTA0M2MiLDE6Ii1cdTA0NDNcdTA0M2MiLDI6Ii1cdTA0NGVcdTA0M2MiLDM6Ii1cdTA0NGVcdTA0M2MiLDQ6Ii1c''@;'; put 'put ''dTA0NDNcdTA0M2MiLDU6Ii1cdTA0NDNcdTA0M2MiLDY6Ii1cdTA0NDNcdTA0M2MiLDc6Ii1cdTA0NDNcdTA0M2MiLDg6Ii1cdTA0NDNcdTA0M2MiLDk6Ii1cdTA0NDNcdTA0M2MiLDEwOiItXHUwNDQzXHUwNDNjIiwxMjoiLVx1MDQ0M1x1MDQzYyIsMTM6Ii1cdTA0NDNcdTA0M2MiLDIwOiIt''@;'; put 'put ''XHUwNDQzXHUwNDNjIiwzMDoiLVx1MDQ0ZVx1MDQzYyIsNDA6Ii1cdTA0NDNcdTA0M2MiLDUwOiItXHUwNDQzXHUwNDNjIiw2MDoiLVx1MDQ0M1x1MDQzYyIsNzA6Ii1cdTA0NDNcdTA0M2MiLDgwOiItXHUwNDQzXHUwNDNjIiw5MDoiLVx1MDQ0M1x1MDQzYyIsMTAwOiItXHUwNDQzXHUwNDNj''@;'; put 'put ''In07bWUuZGVmaW5lTG9jYWxlKCJ0ZyIse21vbnRoczp7Zm9ybWF0OiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBcdTA0MzhfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiXHUwNDM4X1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Mlx1MDQzOF9cdTA0MzBcdTA0M2Zc''@;'; put 'put ''dTA0NDBcdTA0MzVcdTA0M2JcdTA0MzhfXHUwNDNjXHUwNDMwXHUwNDM5XHUwNDM4X1x1MDQzOFx1MDQ0ZVx1MDQzZFx1MDQzOF9cdTA0MzhcdTA0NGVcdTA0M2JcdTA0MzhfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyXHUwNDM4X1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0''@;'; put 'put ''Mlx1MDQ0Zlx1MDQzMVx1MDQ0MFx1MDQzOF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBcdTA0MzhfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwXHUwNDM4X1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MFx1MDQzOCIuc3BsaXQoIl8iKSxzdGFu''@;'; put 'put ''ZGFsb25lOiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JfXHUwNDNjXHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1''@;'; put 'put ''MDQzZF9cdTA0MzhcdTA0NGVcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0NDBfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMx''@;'; put 'put ''XHUwNDQwX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MCIuc3BsaXQoIl8iKX0sbW9udGhzU2hvcnQ6Ilx1MDQ0Zlx1MDQzZFx1MDQzMl9cdTA0NDRcdTA0MzVcdTA0MzJfXHUwNDNjXHUwNDMwXHUwNDQwX1x1MDQzMFx1MDQzZlx1MDQ0MF9cdTA0M2NcdTA0MzBcdTA0Mzlf''@;'; put 'put ''XHUwNDM4XHUwNDRlXHUwNDNkX1x1MDQzOFx1MDQ0ZVx1MDQzYl9cdTA0MzBcdTA0MzJcdTA0MzNfXHUwNDQxXHUwNDM1XHUwNDNkX1x1MDQzZVx1MDQzYVx1MDQ0Ml9cdTA0M2RcdTA0M2VcdTA0NGZfXHUwNDM0XHUwNDM1XHUwNDNhIi5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTA0NGZcdTA0''@;'; put 'put ''M2FcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzVfXHUwNDM0XHUwNDQzXHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDQ0MVx1MDQzNVx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzNV9cdTA0NDdcdTA0M2VcdTA0NDBcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0''@;'; put 'put ''MzVfXHUwNDNmXHUwNDMwXHUwNDNkXHUwNGI3XHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDM1X1x1MDRiN1x1MDQ0M1x1MDQzY1x1MDQ0YVx1MDQzMF9cdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzUiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHUwNDRmXHUwNDQ4XHUwNDMx''@;'; put 'put ''X1x1MDQzNFx1MDQ0OFx1MDQzMV9cdTA0NDFcdTA0NDhcdTA0MzFfXHUwNDQ3XHUwNDQ4XHUwNDMxX1x1MDQzZlx1MDQ0OFx1MDQzMV9cdTA0YjdcdTA0NDNcdTA0M2NfXHUwNDQ4XHUwNDNkXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTA0NGZcdTA0NDhfXHUwNDM0XHUwNDQ4''@;'; put 'put ''X1x1MDQ0MVx1MDQ0OF9cdTA0NDdcdTA0NDhfXHUwNDNmXHUwNDQ4X1x1MDRiN1x1MDQzY19cdTA0NDhcdTA0MzEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZ''@;'; put 'put ''WVlZIEhIOm1tIixMTExMOiJkZGRkLCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNDE4XHUwNDNjXHUwNDQwXHUwNGVmXHUwNDM3IFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLG5leHREYXk6IltcdTA0MjRcdTA0MzBcdTA0NDBcdTA0MzRc''@;'; put 'put ''dTA0M2UgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXHUwNDM4XSBMVCIsbGFzdERheToiW1x1MDQxNFx1MDQzOFx1MDQ0MFx1MDRlZlx1MDQzNyBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJcdTA0MzhdIExUIixuZXh0V2VlazoiZGRkZFtcdTA0MzhdIFtcdTA0YjNcdTA0MzBcdTA0NDRcdTA0''@;'; put 'put ''NDJcdTA0MzBcdTA0MzggXHUwNDNlXHUwNDRmXHUwNDNkXHUwNDM0XHUwNDMwIFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Mlx1MDQzOF0gTFQiLGxhc3RXZWVrOiJkZGRkW1x1MDQzOF0gW1x1MDRiM1x1MDQzMFx1MDQ0NFx1MDQ0Mlx1MDQzMFx1MDQzOCBcdTA0MzNcdTA0NDNcdTA0MzdcdTA0''@;'; put 'put ''MzBcdTA0NDhcdTA0NDJcdTA0MzAgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXHUwNDM4XSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiXHUwNDMxXHUwNDMwXHUwNDRhXHUwNDM0XHUwNDM4ICVzIixwYXN0OiIlcyBcdTA0M2ZcdTA0MzVcdTA0NDgiLHM6Ilx1MDQ0''@;'; put 'put ''Zlx1MDQzYVx1MDQ0N1x1MDQzMFx1MDQzZFx1MDQzNCBcdTA0NDFcdTA0M2VcdTA0M2RcdTA0MzhcdTA0NGYiLG06Ilx1MDQ0Zlx1MDQzYSBcdTA0MzRcdTA0MzBcdTA0OWJcdTA0MzhcdTA0OWJcdTA0MzAiLG1tOiIlZCBcdTA0MzRcdTA0MzBcdTA0OWJcdTA0MzhcdTA0OWJcdTA0MzAiLGg6''@;'; put 'put ''Ilx1MDQ0Zlx1MDQzYSBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQ0Zlx1MDQzYSBcdTA0NDBcdTA0ZWZcdTA0MzciLGRkOiIlZCBcdTA0NDBcdTA0ZWZcdTA0MzciLE06Ilx1MDQ0Zlx1MDQzYSBcdTA0M2NcdTA0M2Vc''@;'; put 'put ''dTA0YjMiLE1NOiIlZCBcdTA0M2NcdTA0M2VcdTA0YjMiLHk6Ilx1MDQ0Zlx1MDQzYSBcdTA0NDFcdTA0M2VcdTA0M2IiLHl5OiIlZCBcdTA0NDFcdTA0M2VcdTA0M2IifSxtZXJpZGllbVBhcnNlOi9cdTA0NDhcdTA0MzBcdTA0MzF8XHUwNDQxXHUwNDQzXHUwNDMxXHUwNGIzfFx1MDQ0MFx1''@;'; put 'put ''MDRlZlx1MDQzN3xcdTA0MzFcdTA0MzVcdTA0MzNcdTA0M2VcdTA0YjMvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFZSxVKXtyZXR1cm4gMTI9PT1FZSYmKEVlPTApLCJcdTA0NDhcdTA0MzBcdTA0MzEiPT09VT9FZTw0P0VlOkVlKzEyOiJcdTA0NDFcdTA0NDNcdTA0MzFcdTA0YjMiPT09VT9F''@;'; put 'put ''ZToiXHUwNDQwXHUwNGVmXHUwNDM3Ij09PVU/RWU+PTExP0VlOkVlKzEyOiJcdTA0MzFcdTA0MzVcdTA0MzNcdTA0M2VcdTA0YjMiPT09VT9FZSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEVlLFUsUSl7cmV0dXJuIEVlPDQ/Ilx1MDQ0OFx1MDQzMFx1MDQzMSI6RWU8MTE/Ilx1MDQ0''@;'; put 'put ''MVx1MDQ0M1x1MDQzMVx1MDRiMyI6RWU8MTY/Ilx1MDQ0MFx1MDRlZlx1MDQzNyI6RWU8MTk/Ilx1MDQzMVx1MDQzNVx1MDQzM1x1MDQzZVx1MDRiMyI6Ilx1MDQ0OFx1MDQzMFx1MDQzMSJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQ0M1x1MDQzY3xcdTA0NGVcdTA0''@;'; put 'put ''M2MpLyxvcmRpbmFsOmZ1bmN0aW9uKEVlKXtyZXR1cm4gRWUrKEJbRWVdfHxCW0VlJTEwXXx8QltFZT49MTAwPzEwMDpudWxsXSl9LHdlZWs6e2RvdzoxLGRveTo3fX0pfShMKDE1NDM5KSl9LDI4Njg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVm''@;'; put 'put ''aW5lTG9jYWxlKCJ0aCIse21vbnRoczoiXHUwZTIxXHUwZTAxXHUwZTIzXHUwZTMyXHUwZTA0XHUwZTIxX1x1MGUwMVx1MGUzOFx1MGUyMVx1MGUyMFx1MGUzMlx1MGUxZVx1MGUzMVx1MGUxOVx1MGUxOFx1MGU0Y19cdTBlMjFcdTBlMzVcdTBlMTlcdTBlMzJcdTBlMDRcdTBlMjFfXHUwZTQw''@;'; put 'put ''XHUwZTIxXHUwZTI5XHUwZTMyXHUwZTIyXHUwZTE5X1x1MGUxZVx1MGUyNFx1MGUyOVx1MGUyMFx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlMjFcdTBlMzRcdTBlMTZcdTBlMzhcdTBlMTlcdTBlMzJcdTBlMjJcdTBlMTlfXHUwZTAxXHUwZTIzXHUwZTAxXHUwZTBlXHUwZTMyXHUwZTA0XHUwZTIx''@;'; put 'put ''X1x1MGUyYVx1MGUzNFx1MGUwN1x1MGUyYlx1MGUzMlx1MGUwNFx1MGUyMV9cdTBlMDFcdTBlMzFcdTBlMTlcdTBlMjJcdTBlMzJcdTBlMjJcdTBlMTlfXHUwZTE1XHUwZTM4XHUwZTI1XHUwZTMyXHUwZTA0XHUwZTIxX1x1MGUxZVx1MGUyNFx1MGUyOFx1MGUwOFx1MGUzNFx1MGUwMVx1MGUz''@;'; put 'put ''Mlx1MGUyMlx1MGUxOV9cdTBlMThcdTBlMzFcdTBlMTlcdTBlMjdcdTBlMzJcdTBlMDRcdTBlMjEiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6Ilx1MGUyMS5cdTBlMDQuX1x1MGUwMS5cdTBlMWUuX1x1MGUyMVx1MGUzNS5cdTBlMDQuX1x1MGU0MFx1MGUyMS5cdTBlMjIuX1x1MGUxZS5cdTBl''@;'; put 'put ''MDQuX1x1MGUyMVx1MGUzNC5cdTBlMjIuX1x1MGUwMS5cdTBlMDQuX1x1MGUyYS5cdTBlMDQuX1x1MGUwMS5cdTBlMjIuX1x1MGUxNS5cdTBlMDQuX1x1MGUxZS5cdTBlMjIuX1x1MGUxOC5cdTBlMDQuIi5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Ilx1MGUyZFx1''@;'; put 'put ''MGUzMlx1MGUxN1x1MGUzNFx1MGUxNVx1MGUyMlx1MGU0Y19cdTBlMDhcdTBlMzFcdTBlMTlcdTBlMTdcdTBlMjNcdTBlNGNfXHUwZTJkXHUwZTMxXHUwZTA3XHUwZTA0XHUwZTMyXHUwZTIzX1x1MGUxZVx1MGUzOFx1MGUxOF9cdTBlMWVcdTBlMjRcdTBlMmJcdTBlMzFcdTBlMmFcdTBlMWFc''@;'; put 'put ''dTBlMTRcdTBlMzVfXHUwZTI4XHUwZTM4XHUwZTAxXHUwZTIzXHUwZTRjX1x1MGU0MFx1MGUyYVx1MGUzMlx1MGUyM1x1MGU0YyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTBlMmRcdTBlMzJcdTBlMTdcdTBlMzRcdTBlMTVcdTBlMjJcdTBlNGNfXHUwZTA4XHUwZTMxXHUwZTE5XHUw''@;'; put 'put ''ZTE3XHUwZTIzXHUwZTRjX1x1MGUyZFx1MGUzMVx1MGUwN1x1MGUwNFx1MGUzMlx1MGUyM19cdTBlMWVcdTBlMzhcdTBlMThfXHUwZTFlXHUwZTI0XHUwZTJiXHUwZTMxXHUwZTJhX1x1MGUyOFx1MGUzOFx1MGUwMVx1MGUyM1x1MGU0Y19cdTBlNDBcdTBlMmFcdTBlMzJcdTBlMjNcdTBlNGMi''@;'; put 'put ''LnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MGUyZFx1MGUzMi5fXHUwZTA4Ll9cdTBlMmQuX1x1MGUxZS5fXHUwZTFlXHUwZTI0Ll9cdTBlMjguX1x1MGUyYS4iLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSDptbSIsTFRTOiJIOm1tOnNz''@;'; put 'put ''IixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyIEg6bW0iLExMTEw6Ilx1MGUyN1x1MGUzMVx1MGUxOWRkZGRcdTBlMTdcdTBlMzVcdTBlNDggRCBNTU1NIFlZWVkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMy''@;'; put 'put ''IEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTBlMDFcdTBlNDhcdTBlMmRcdTBlMTlcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBlMDd8XHUwZTJiXHUwZTI1XHUwZTMxXHUwZTA3XHUwZTQwXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTIyXHUwZTA3Lyxpc1BNOmZ1bmN0aW9uKEUpe3Jl''@;'; put 'put ''dHVybiJcdTBlMmJcdTBlMjVcdTBlMzFcdTBlMDdcdTBlNDBcdTBlMTdcdTBlMzVcdTBlNDhcdTBlMjJcdTBlMDciPT09RX0sbWVyaWRpZW06ZnVuY3Rpb24oRSxFZSxVKXtyZXR1cm4gRTwxMj8iXHUwZTAxXHUwZTQ4XHUwZTJkXHUwZTE5XHUwZTQwXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTIy''@;'; put 'put ''XHUwZTA3IjoiXHUwZTJiXHUwZTI1XHUwZTMxXHUwZTA3XHUwZTQwXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTIyXHUwZTA3In0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTBlMjdcdTBlMzFcdTBlMTlcdTBlMTlcdTBlMzVcdTBlNDkgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbmV4dERh''@;'; put 'put ''eToiW1x1MGUxZVx1MGUyM1x1MGUzOFx1MGU0OFx1MGUwN1x1MGUxOVx1MGUzNVx1MGU0OSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzJdIExUIixuZXh0V2VlazoiZGRkZFtcdTBlMmJcdTBlMTlcdTBlNDlcdTBlMzIgXHUwZTQwXHUwZTI3XHUwZTI1XHUwZTMyXSBMVCIsbGFzdERheToiW1x1''@;'; put 'put ''MGU0MFx1MGUyMVx1MGUzN1x1MGU0OFx1MGUyZFx1MGUyN1x1MGUzMlx1MGUxOVx1MGUxOVx1MGUzNVx1MGU0OSBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzJdIExUIixsYXN0V2VlazoiW1x1MGUyN1x1MGUzMVx1MGUxOV1kZGRkW1x1MGUxN1x1MGUzNVx1MGU0OFx1MGU0MVx1MGUyNVx1MGU0''@;'; put 'put ''OVx1MGUyNyBcdTBlNDBcdTBlMjdcdTBlMjVcdTBlMzJdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTBlMmRcdTBlMzVcdTBlMDEgJXMiLHBhc3Q6IiVzXHUwZTE3XHUwZTM1XHUwZTQ4XHUwZTQxXHUwZTI1XHUwZTQ5XHUwZTI3IixzOiJcdTBlNDRcdTBlMjFc''@;'; put 'put ''dTBlNDhcdTBlMDFcdTBlMzVcdTBlNDhcdTBlMjdcdTBlMzRcdTBlMTlcdTBlMzJcdTBlMTdcdTBlMzUiLHNzOiIlZCBcdTBlMjdcdTBlMzRcdTBlMTlcdTBlMzJcdTBlMTdcdTBlMzUiLG06IjEgXHUwZTE5XHUwZTMyXHUwZTE3XHUwZTM1IixtbToiJWQgXHUwZTE5XHUwZTMyXHUwZTE3XHUw''@;'; put 'put ''ZTM1IixoOiIxIFx1MGUwYVx1MGUzMVx1MGU0OFx1MGUyN1x1MGU0Mlx1MGUyMVx1MGUwNyIsaGg6IiVkIFx1MGUwYVx1MGUzMVx1MGU0OFx1MGUyN1x1MGU0Mlx1MGUyMVx1MGUwNyIsZDoiMSBcdTBlMjdcdTBlMzFcdTBlMTkiLGRkOiIlZCBcdTBlMjdcdTBlMzFcdTBlMTkiLHc6IjEgXHUw''@;'; put 'put ''ZTJhXHUwZTMxXHUwZTFiXHUwZTE0XHUwZTMyXHUwZTJiXHUwZTRjIix3dzoiJWQgXHUwZTJhXHUwZTMxXHUwZTFiXHUwZTE0XHUwZTMyXHUwZTJiXHUwZTRjIixNOiIxIFx1MGU0MFx1MGUxNFx1MGUzN1x1MGUyZFx1MGUxOSIsTU06IiVkIFx1MGU0MFx1MGUxNFx1MGUzN1x1MGUyZFx1MGUx''@;'; put 'put ''OSIseToiMSBcdTBlMWJcdTBlMzUiLHl5OiIlZCBcdTBlMWJcdTBlMzUifX0pfShMKDE1NDM5KSl9LDMxMzEwOmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPXsxOiInaW5qaSIsNToiJ2luamkiLDg6IidpbmppIiw3MDoiJ2luamkiLDgwOiInaW5q''@;'; put 'put ''aSIsMjoiJ25qaSIsNzoiJ25qaSIsMjA6IiduamkiLDUwOiInbmppIiwzOiInXHhmY25qaSIsNDoiJ1x4ZmNuamkiLDEwMDoiJ1x4ZmNuamkiLDY6IiduankiLDk6Iid1bmp5IiwxMDoiJ3VuankiLDMwOiIndW5qeSIsNjA6Iid5bmp5Iiw5MDoiJ3luankifTttZS5kZWZpbmVMb2NhbGUoInRr''@;'; put 'put ''Iix7bW9udGhzOiJceGRkYW53YXJfRmV3cmFsX01hcnRfQXByZWxfTWFceGZkX0lceGZkdW5fSVx4ZmR1bF9Bd2d1c3RfU2VudFx4ZmRhYnJfT2t0XHhmZGFicl9Ob1x4ZmRhYnJfRGVrYWJyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJceGRkYW5fRmV3X01hcl9BcHJfTWFceGZkX0lceGZk''@;'; put 'put ''bl9JXHhmZGxfQXdnX1Nlbl9Pa3RfTm9ceGZkX0RlayIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHhkZGVrXHUwMTVmZW5iZV9EdVx1MDE1ZmVuYmVfU2lcdTAxNWZlbmJlX1x4Yzdhclx1MDE1ZmVuYmVfUGVuXHUwMTVmZW5iZV9Bbm5hX1x1MDE1ZWVuYmUiLnNwbGl0KCJfIiksd2Vla2RheXNT''@;'; put 'put ''aG9ydDoiXHhkZGVrX0R1XHUwMTVmX1NpXHUwMTVmX1x4Yzdhcl9QZW5fQW5uX1x1MDE1ZWVuIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJceGRka19EXHUwMTVmX1NcdTAxNWZfXHhjN3JfUG5fQW5fXHUwMTVlbiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6''@;'; put 'put ''IkhIOm1tOnNzIixMOiJERC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltidWdceGZjbiBzYWdhdF0gTFQiLG5leHREYXk6IltlcnRpciBzYWdhdF0gTFQi''@;'; put 'put ''LG5leHRXZWVrOiJbaW5kaWtpXSBkZGRkIFtzYWdhdF0gTFQiLGxhc3REYXk6IltkXHhmY1x4ZmRuXSBMVCIsbGFzdFdlZWs6IltnZVx4ZTdlbl0gZGRkZCBbc2FnYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBzb1x1MDE0OCIscGFzdDoiJXMgXHhmNlx1''@;'; put 'put ''MDE0OCIsczoiYmlyblx4ZTRceGU3ZSBzZWt1bnQiLG06ImJpciBtaW51dCIsbW06IiVkIG1pbnV0IixoOiJiaXIgc2FnYXQiLGhoOiIlZCBzYWdhdCIsZDoiYmlyIGdceGZjbiIsZGQ6IiVkIGdceGZjbiIsTToiYmlyIGFceGZkIixNTToiJWQgYVx4ZmQiLHk6ImJpciBceGZkeWwiLHl5OiIl''@;'; put 'put ''ZCBceGZkeWwifSxvcmRpbmFsOmZ1bmN0aW9uKEVlLFUpe3N3aXRjaChVKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEbyI6Y2FzZSJERCI6cmV0dXJuIEVlO2RlZmF1bHQ6aWYoMD09PUVlKXJldHVybiBFZSsiJ3VuankiO3ZhciBRPUVlJTEwO3JldHVybiBFZSsoQltRXXx8QltFZSUxMDAtUV18''@;'; put 'put ''fEJbRWU+PTEwMD8xMDA6bnVsbF0pfX0sd2Vlazp7ZG93OjEsZG95Ojd9fSl9KEwoMTU0MzkpKX0sMjIzNjA6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ0bC1waCIse21vbnRoczoiRW5lcm9fUGVicmVyb19NYXJzb19BYnJp''@;'; put 'put ''bF9NYXlvX0h1bnlvX0h1bHlvX0Fnb3N0b19TZXR5ZW1icmVfT2t0dWJyZV9Ob2J5ZW1icmVfRGlzeWVtYnJlIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJFbmVfUGViX01hcl9BYnJfTWF5X0h1bl9IdWxfQWdvX1NldF9Pa3RfTm9iX0RpcyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiTGluZ2dv''@;'; put 'put ''X0x1bmVzX01hcnRlc19NaXllcmt1bGVzX0h1d2ViZXNfQml5ZXJuZXNfU2FiYWRvIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ikxpbl9MdW5fTWFyX01peV9IdXdfQml5X1NhYiIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiTGlfTHVfTWFfTWlfSHVfQmlfU2FiIi5zcGxpdCgiXyIpLGxv''@;'; put 'put ''bmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6Ik1NL0QvWVlZWSIsTEw6Ik1NTU0gRCwgWVlZWSIsTExMOiJNTU1NIEQsIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIE1NTU0gREQsIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiTFQgW25nYXlvbmcgYXJh''@;'; put 'put ''d10iLG5leHREYXk6IltCdWthcyBuZ10gTFQiLG5leHRXZWVrOiJMVCBbc2Egc3VzdW5vZCBuYV0gZGRkZCIsbGFzdERheToiTFQgW2thaGFwb25dIixsYXN0V2VlazoiTFQgW25vb25nIG5ha2FyYWFuZ10gZGRkZCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToic2EgbG9v''@;'; put 'put ''YiBuZyAlcyIscGFzdDoiJXMgYW5nIG5ha2FsaXBhcyIsczoiaWxhbmcgc2VndW5kbyIsc3M6IiVkIHNlZ3VuZG8iLG06ImlzYW5nIG1pbnV0byIsbW06IiVkIG1pbnV0byIsaDoiaXNhbmcgb3JhcyIsaGg6IiVkIG9yYXMiLGQ6ImlzYW5nIGFyYXciLGRkOiIlZCBhcmF3IixNOiJpc2FuZyBi''@;'; put 'put ''dXdhbiIsTU06IiVkIGJ1d2FuIix5OiJpc2FuZyB0YW9uIix5eToiJWQgdGFvbiJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0vLG9yZGluYWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEV9LHdlZWs6e2RvdzoxLGRveTo0fX0pfShMKDE1NDM5KSl9LDY2NjQ1OmZ1bmN0aW9uKFhlLEpl''@;'; put 'put ''LEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO3ZhciBCPSJwYWdoX3dhXHUyMDE5X2NoYVx1MjAxOV93ZWpfbG9TX3ZhZ2hfamF2X1NvY2hfY2hvcmdoX0h1dCIuc3BsaXQoIl8iKTtmdW5jdGlvbiBVKHJlLGFlLFksVyl7dmFyIE49ZnVuY3Rpb24gUShyZSl7dmFyIGFlPU1hdGguZmxv''@;'; put 'put ''b3IocmUlMWUzLzEwMCksWT1NYXRoLmZsb29yKHJlJTEwMC8xMCksVz1yZSUxMCxOPSIiO3JldHVybiBhZT4wJiYoTis9QlthZV0rInZhdGxoIiksWT4wJiYoTis9KCIiIT09Tj8iICI6IiIpK0JbWV0rIm1hSCIpLFc+MCYmKE4rPSgiIiE9PU4/IiAiOiIiKStCW1ddKSwiIj09PU4/InBhZ2gi''@;'; put 'put ''Ok59KHJlKTtzd2l0Y2goWSl7Y2FzZSJzcyI6cmV0dXJuIE4rIiBsdXAiO2Nhc2UibW0iOnJldHVybiBOKyIgdHVwIjtjYXNlImhoIjpyZXR1cm4gTisiIHJlcCI7Y2FzZSJkZCI6cmV0dXJuIE4rIiBqYWoiO2Nhc2UiTU0iOnJldHVybiBOKyIgamFyIjtjYXNlInl5IjpyZXR1cm4gTisiIERJ''@;'; put 'put ''UyJ9fW1lLmRlZmluZUxvY2FsZSgidGxoIix7bW9udGhzOiJ0ZXJhXHUyMDE5IGphciB3YVx1MjAxOV90ZXJhXHUyMDE5IGphciBjaGFcdTIwMTlfdGVyYVx1MjAxOSBqYXIgd2VqX3RlcmFcdTIwMTkgamFyIGxvU190ZXJhXHUyMDE5IGphciB2YWdoX3RlcmFcdTIwMTkgamFyIGphdl90ZXJh''@;'; put 'put ''XHUyMDE5IGphciBTb2NoX3RlcmFcdTIwMTkgamFyIGNob3JnaF90ZXJhXHUyMDE5IGphciBIdXRfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUhfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUggd2FcdTIwMTlfdGVyYVx1MjAxOSBqYXIgd2FcdTIwMTltYUggY2hhXHUyMDE5Ii5zcGxpdCgi''@;'; put 'put ''XyIpLG1vbnRoc1Nob3J0OiJqYXIgd2FcdTIwMTlfamFyIGNoYVx1MjAxOV9qYXIgd2VqX2phciBsb1NfamFyIHZhZ2hfamFyIGphdl9qYXIgU29jaF9qYXIgY2hvcmdoX2phciBIdXRfamFyIHdhXHUyMDE5bWFIX2phciB3YVx1MjAxOW1hSCB3YVx1MjAxOV9qYXIgd2FcdTIwMTltYUggY2hh''@;'; put 'put ''XHUyMDE5Ii5zcGxpdCgiXyIpLG1vbnRoc1BhcnNlRXhhY3Q6ITAsd2Vla2RheXM6Imxvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGphal9sb2doamFqX2J1cWphal9naEluamFqIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Imxvam1JdGphal9EYVNqYWpfcG92amFqX2doSXRsaGph''@;'; put 'put ''al9sb2doamFqX2J1cWphal9naEluamFqIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJsb2ptSXRqYWpfRGFTamFqX3Bvdmphal9naEl0bGhqYWpfbG9naGphal9idXFqYWpfZ2hJbmphaiIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJE''@;'; put 'put ''RC5NTS5ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltEYUhqYWpdIExUIixuZXh0RGF5OiJbd2FcdTIwMTlsZVNdIExUIixuZXh0V2VlazoiTExMIixsYXN0RGF5''@;'; put 'put ''OiJbd2FcdTIwMTlIdVx1MjAxOV0gTFQiLGxhc3RXZWVrOiJMTEwiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6ZnVuY3Rpb24gRShyZSl7dmFyIGFlPXJlO3JldHVybi0xIT09cmUuaW5kZXhPZigiamFqIik/YWUuc2xpY2UoMCwtMykrImxlUyI6LTEhPT1yZS5pbmRleE9m''@;'; put 'put ''KCJqYXIiKT9hZS5zbGljZSgwLC0zKSsid2FRIjotMSE9PXJlLmluZGV4T2YoIkRJUyIpP2FlLnNsaWNlKDAsLTMpKyJuZW0iOmFlKyIgcElxIn0scGFzdDpmdW5jdGlvbiBFZShyZSl7dmFyIGFlPXJlO3JldHVybi0xIT09cmUuaW5kZXhPZigiamFqIik/YWUuc2xpY2UoMCwtMykrIkh1XHUy''@;'; put 'put ''MDE5IjotMSE9PXJlLmluZGV4T2YoImphciIpP2FlLnNsaWNlKDAsLTMpKyJ3ZW4iOi0xIT09cmUuaW5kZXhPZigiRElTIik/YWUuc2xpY2UoMCwtMykrImJlbiI6YWUrIiByZXQifSxzOiJwdVMgbHVwIixzczpVLG06IndhXHUyMDE5IHR1cCIsbW06VSxoOiJ3YVx1MjAxOSByZXAiLGhoOlUs''@;'; put 'put ''ZDoid2FcdTIwMTkgamFqIixkZDpVLE06IndhXHUyMDE5IGphciIsTU06VSx5OiJ3YVx1MjAxOSBESVMiLHl5OlV9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn1cLi8sb3JkaW5hbDoiJWQuIix3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw5ODM3NDpmdW5jdGlvbihY''@;'; put 'put ''ZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj17MToiJ2luY2kiLDU6IidpbmNpIiw4OiInaW5jaSIsNzA6IidpbmNpIiw4MDoiJ2luY2kiLDI6IiduY2kiLDc6IiduY2kiLDIwOiInbmNpIiw1MDoiJ25jaSIsMzoiJ1x4ZmNuY1x4ZmMiLDQ6IidceGZjbmNceGZjIiwx''@;'; put 'put ''MDA6IidceGZjbmNceGZjIiw2OiInbmNcdTAxMzEiLDk6Iid1bmN1IiwxMDoiJ3VuY3UiLDMwOiIndW5jdSIsNjA6IidcdTAxMzFuY1x1MDEzMSIsOTA6IidcdTAxMzFuY1x1MDEzMSJ9O21lLmRlZmluZUxvY2FsZSgidHIiLHttb250aHM6Ik9jYWtfXHUwMTVldWJhdF9NYXJ0X05pc2FuX01h''@;'; put 'put ''eVx1MDEzMXNfSGF6aXJhbl9UZW1tdXpfQVx1MDExZnVzdG9zX0V5bFx4ZmNsX0VraW1fS2FzXHUwMTMxbV9BcmFsXHUwMTMxayIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiT2NhX1x1MDE1ZXViX01hcl9OaXNfTWF5X0hhel9UZW1fQVx1MDExZnVfRXlsX0VraV9LYXNfQXJhIi5zcGxpdCgi''@;'; put 'put ''XyIpLHdlZWtkYXlzOiJQYXphcl9QYXphcnRlc2lfU2FsXHUwMTMxX1x4Yzdhclx1MDE1ZmFtYmFfUGVyXHUwMTVmZW1iZV9DdW1hX0N1bWFydGVzaSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJQYXpfUHp0X1NhbF9ceGM3YXJfUGVyX0N1bV9DbXQiLnNwbGl0KCJfIiksd2Vla2RheXNN''@;'; put 'put ''aW46IlB6X1B0X1NhX1x4YzdhX1BlX0N1X0N0Ii5zcGxpdCgiXyIpLG1lcmlkaWVtOmZ1bmN0aW9uKEVlLFUsUSl7cmV0dXJuIEVlPDEyP1E/Ilx4ZjZceGY2IjoiXHhkNlx4ZDYiOlE/Ilx4ZjZzIjoiXHhkNlMifSxtZXJpZGllbVBhcnNlOi9ceGY2XHhmNnxceGQ2XHhkNnxceGY2c3xceGQ2''@;'; put 'put ''Uy8saXNQTTpmdW5jdGlvbihFZSl7cmV0dXJuIlx4ZjZzIj09PUVlfHwiXHhkNlMiPT09RWV9LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkRELk1NLllZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwg''@;'; put 'put ''RCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW2J1Z1x4ZmNuIHNhYXRdIExUIixuZXh0RGF5OiJbeWFyXHUwMTMxbiBzYWF0XSBMVCIsbmV4dFdlZWs6IltnZWxlY2VrXSBkZGRkIFtzYWF0XSBMVCIsbGFzdERheToiW2RceGZjbl0gTFQiLGxhc3RXZWVrOiJbZ2VceGU3''@;'; put 'put ''ZW5dIGRkZGQgW3NhYXRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBzb25yYSIscGFzdDoiJXMgXHhmNm5jZSIsczoiYmlya2FceGU3IHNhbml5ZSIsc3M6IiVkIHNhbml5ZSIsbToiYmlyIGRha2lrYSIsbW06IiVkIGRha2lrYSIsaDoiYmlyIHNhYXQiLGho''@;'; put 'put ''OiIlZCBzYWF0IixkOiJiaXIgZ1x4ZmNuIixkZDoiJWQgZ1x4ZmNuIix3OiJiaXIgaGFmdGEiLHd3OiIlZCBoYWZ0YSIsTToiYmlyIGF5IixNTToiJWQgYXkiLHk6ImJpciB5XHUwMTMxbCIseXk6IiVkIHlcdTAxMzFsIn0sb3JkaW5hbDpmdW5jdGlvbihFZSxVKXtzd2l0Y2goVSl7Y2FzZSJk''@;'; put 'put ''IjpjYXNlIkQiOmNhc2UiRG8iOmNhc2UiREQiOnJldHVybiBFZTtkZWZhdWx0OmlmKDA9PT1FZSlyZXR1cm4gRWUrIidcdTAxMzFuY1x1MDEzMSI7dmFyIFE9RWUlMTA7cmV0dXJuIEVlKyhCW1FdfHxCW0VlJTEwMC1RXXx8QltFZT49MTAwPzEwMDpudWxsXSl9fSx3ZWVrOntkb3c6MSxkb3k6''@;'; put 'put ''N319KX0oTCgxNTQzOSkpfSwyNTY6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gRShFZSxVLFEsail7dmFyIHJlPXtzOlsidmllbnNhcyBzZWN1bmRzIiwiJ2llbnNhcyBzZWN1bmRzIl0sc3M6W0VlKyIgc2VjdW5kcyIsRWUrIiBzZWN1bmRz''@;'; put 'put ''Il0sbTpbIiduIG1ceGVkdXQiLCInaWVucyBtXHhlZHV0Il0sbW06W0VlKyIgbVx4ZWR1dHMiLEVlKyIgbVx4ZWR1dHMiXSxoOlsiJ24gXHhmZW9yYSIsIidpZW5zYSBceGZlb3JhIl0saGg6W0VlKyIgXHhmZW9yYXMiLEVlKyIgXHhmZW9yYXMiXSxkOlsiJ24geml1YSIsIidpZW5zYSB6aXVh''@;'; put 'put ''Il0sZGQ6W0VlKyIgeml1YXMiLEVlKyIgeml1YXMiXSxNOlsiJ24gbWVzIiwiJ2llbnMgbWVzIl0sTU06W0VlKyIgbWVzZW4iLEVlKyIgbWVzZW4iXSx5OlsiJ24gYXIiLCInaWVucyBhciJdLHl5OltFZSsiIGFycyIsRWUrIiBhcnMiXX07cmV0dXJuIGp8fFU/cmVbUV1bMF06cmVbUV1bMV19''@;'; put 'put ''bWUuZGVmaW5lTG9jYWxlKCJ0emwiLHttb250aHM6IkphbnVhcl9GZXZyYWdsaF9NYXJceGU3X0F2clx4ZWZ1X01haV9HXHhmY25fSnVsaWFfR3VzY2h0X1NldGVtdmFyX0xpc3RvcFx4ZTR0c19Ob2VtdmFyX1plY2VtdmFyIi5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiJKYW5fRmV2X01hcl9B''@;'; put 'put ''dnJfTWFpX0dceGZjbl9KdWxfR3VzX1NldF9MaXNfTm9lX1plYyIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiU1x4ZmFsYWRpX0xceGZhbmVceGU3aV9NYWl0emlfTVx4ZTFyY3VyaV9YaFx4ZmFhZGlfVmlceGU5bmVyXHhlN2lfU1x4ZTF0dXJpIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6IlNc''@;'; put 'put ''eGZhbF9MXHhmYW5fTWFpX01ceGUxcl9YaFx4ZmFfVmlceGU5X1NceGUxdCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiU1x4ZmFfTFx4ZmFfTWFfTVx4ZTFfWGhfVmlfU1x4ZTEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISC5tbSIsTFRTOiJISC5tbS5zcyIsTDoiREQuTU0u''@;'; put 'put ''WVlZWSIsTEw6IkQuIE1NTU0gW2RhbGxhc10gWVlZWSIsTExMOiJELiBNTU1NIFtkYWxsYXNdIFlZWVkgSEgubW0iLExMTEw6ImRkZGQsIFtsaV0gRC4gTU1NTSBbZGFsbGFzXSBZWVlZIEhILm1tIn0sbWVyaWRpZW1QYXJzZTovZFwnb3xkXCdhL2ksaXNQTTpmdW5jdGlvbihFZSl7cmV0dXJu''@;'; put 'put ''ImQnbyI9PT1FZS50b0xvd2VyQ2FzZSgpfSxtZXJpZGllbTpmdW5jdGlvbihFZSxVLFEpe3JldHVybiBFZT4xMT9RPyJkJ28iOiJEJ08iOlE/ImQnYSI6IkQnQSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbb3hoaSBceGUwXSBMVCIsbmV4dERheToiW2RlbVx4ZTAgXHhlMF0gTFQiLG5leHRXZWVr''@;'; put 'put ''OiJkZGRkIFtceGUwXSBMVCIsbGFzdERheToiW2llaXJpIFx4ZTBdIExUIixsYXN0V2VlazoiW3NceGZjciBlbF0gZGRkZCBbbGFzdGV1IFx4ZTBdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJvc3ByZWkgJXMiLHBhc3Q6ImphJXMiLHM6RSxzczpFLG06RSxtbTpF''@;'; put 'put ''LGg6RSxoaDpFLGQ6RSxkZDpFLE06RSxNTTpFLHk6RSx5eTpFfSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9XC4vLG9yZGluYWw6IiVkLiIsd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNjE2MzE6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0''@;'; put 'put ''cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ0em0tbGF0biIse21vbnRoczoiaW5uYXlyX2JyXHUwMmU0YXlyXHUwMmU0X21hclx1MDJlNHNcdTAyZTRfaWJyaXJfbWF5eXdfeXdueXdfeXdseXd6X1x1MDI2M3dcdTAxNjF0X1x1MDE2MXd0YW5iaXJfa3RcdTAyZTR3YnJcdTAyZTRfbnd3YW5iaXJf''@;'; put 'put ''ZHdqbmJpciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiaW5uYXlyX2JyXHUwMmU0YXlyXHUwMmU0X21hclx1MDJlNHNcdTAyZTRfaWJyaXJfbWF5eXdfeXdueXdfeXdseXd6X1x1MDI2M3dcdTAxNjF0X1x1MDE2MXd0YW5iaXJfa3RcdTAyZTR3YnJcdTAyZTRfbnd3YW5iaXJfZHdqbmJpciIu''@;'; put 'put ''c3BsaXQoIl8iKSx3ZWVrZGF5czoiYXNhbWFzX2F5bmFzX2FzaW5hc19ha3Jhc19ha3dhc19hc2ltd2FzX2FzaVx1MWUwZHlhcyIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNpXHUxZTBkeWFzIi5zcGxpdCgiXyIp''@;'; put 'put ''LHdlZWtkYXlzTWluOiJhc2FtYXNfYXluYXNfYXNpbmFzX2FrcmFzX2Frd2FzX2FzaW13YXNfYXNpXHUxZTBkeWFzIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0g''@;'; put 'put ''WVlZWSBISDptbSIsTExMTDoiZGRkZCBEIE1NTU0gWVlZWSBISDptbSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbYXNka2ggZ10gTFQiLG5leHREYXk6Ilthc2thIGddIExUIixuZXh0V2VlazoiZGRkZCBbZ10gTFQiLGxhc3REYXk6Ilthc3NhbnQgZ10gTFQiLGxhc3RXZWVrOiJkZGRkIFtnXSBM''@;'; put 'put ''VCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiZGFka2ggcyB5YW4gJXMiLHBhc3Q6InlhbiAlcyIsczoiaW1payIsc3M6IiVkIGltaWsiLG06Im1pbnVcdTFlMGQiLG1tOiIlZCBtaW51XHUxZTBkIixoOiJzYVx1MDI1YmEiLGhoOiIlZCB0YXNzYVx1MDI1YmluIixkOiJh''@;'; put 'put ''c3MiLGRkOiIlZCBvc3NhbiIsTToiYXlvd3IiLE1NOiIlZCBpeXlpcm4iLHk6ImFzZ2FzIix5eToiJWQgaXNnYXNuIn0sd2Vlazp7ZG93OjYsZG95OjEyfX0pfShMKDE1NDM5KSl9LDYxNTk1OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxv''@;'; put 'put ''Y2FsZSgidHptIix7bW9udGhzOiJcdTJkNDlcdTJkNGZcdTJkNGZcdTJkMzBcdTJkNjJcdTJkNTRfXHUyZDMxXHUyZDU1XHUyZDMwXHUyZDYyXHUyZDU1X1x1MmQ0ZVx1MmQzMFx1MmQ1NVx1MmQ1YV9cdTJkNDlcdTJkMzFcdTJkNTRcdTJkNDlcdTJkNTRfXHUyZDRlXHUyZDMwXHUyZDYyXHUy''@;'; put 'put ''ZDYyXHUyZDUzX1x1MmQ2Mlx1MmQ1M1x1MmQ0Zlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGRcdTJkNjJcdTJkNTNcdTJkNjNfXHUyZDU2XHUyZDUzXHUyZDViXHUyZDVjX1x1MmQ1Ylx1MmQ1M1x1MmQ1Y1x1MmQzMFx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkM2RcdTJkNWZc''@;'; put 'put ''dTJkNTNcdTJkMzFcdTJkNTVfXHUyZDRmXHUyZDUzXHUyZDYxXHUyZDMwXHUyZDRmXHUyZDMxXHUyZDQ5XHUyZDU0X1x1MmQzN1x1MmQ1M1x1MmQ0YVx1MmQ0Zlx1MmQzMVx1MmQ0OVx1MmQ1NCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUyZDQ5XHUyZDRmXHUyZDRmXHUyZDMwXHUyZDYy''@;'; put 'put ''XHUyZDU0X1x1MmQzMVx1MmQ1NVx1MmQzMFx1MmQ2Mlx1MmQ1NV9cdTJkNGVcdTJkMzBcdTJkNTVcdTJkNWFfXHUyZDQ5XHUyZDMxXHUyZDU0XHUyZDQ5XHUyZDU0X1x1MmQ0ZVx1MmQzMFx1MmQ2Mlx1MmQ2Mlx1MmQ1M19cdTJkNjJcdTJkNTNcdTJkNGZcdTJkNjJcdTJkNTNfXHUyZDYyXHUy''@;'; put 'put ''ZDUzXHUyZDRkXHUyZDYyXHUyZDUzXHUyZDYzX1x1MmQ1Nlx1MmQ1M1x1MmQ1Ylx1MmQ1Y19cdTJkNWJcdTJkNTNcdTJkNWNcdTJkMzBcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTRfXHUyZDNkXHUyZDVmXHUyZDUzXHUyZDMxXHUyZDU1X1x1MmQ0Zlx1MmQ1M1x1MmQ2MVx1MmQzMFx1MmQ0Zlx1''@;'; put 'put ''MmQzMVx1MmQ0OVx1MmQ1NF9cdTJkMzdcdTJkNTNcdTJkNGFcdTJkNGZcdTJkMzFcdTJkNDlcdTJkNTQiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MmQzMFx1MmQ1OVx1MmQzMFx1MmQ0ZVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNjJcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUy''@;'; put 'put ''ZDQ5XHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ1NFx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRlXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQzOVx1MmQ2Mlx1MmQzMFx1''@;'; put 'put ''MmQ1OSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTJkMzBcdTJkNTlcdTJkMzBcdTJkNGVcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDYyXHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0Zlx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNTRcdTJkMzBcdTJk''@;'; put 'put ''NTlfXHUyZDMwXHUyZDNkXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQ0ZVx1MmQ2MVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNTlcdTJkNDlcdTJkMzlcdTJkNjJcdTJkMzBcdTJkNTkiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MmQzMFx1MmQ1OVx1MmQzMFx1''@;'; put 'put ''MmQ0ZVx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkNjJcdTJkNGZcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5XHUyZDRmXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQzZFx1MmQ1NFx1MmQzMFx1MmQ1OV9cdTJkMzBcdTJkM2RcdTJkNjFcdTJkMzBcdTJkNTlfXHUyZDMwXHUyZDU5XHUyZDQ5''@;'; put 'put ''XHUyZDRlXHUyZDYxXHUyZDMwXHUyZDU5X1x1MmQzMFx1MmQ1OVx1MmQ0OVx1MmQzOVx1MmQ2Mlx1MmQzMFx1MmQ1OSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVkiLExMTDoiRCBNTU1N''@;'; put 'put ''IFlZWVkgSEg6bW0iLExMTEw6ImRkZGQgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1x1MmQzMFx1MmQ1OVx1MmQzN1x1MmQ0NSBcdTJkMzRdIExUIixuZXh0RGF5OiJbXHUyZDMwXHUyZDU5XHUyZDNkXHUyZDMwIFx1MmQzNF0gTFQiLG5leHRXZWVrOiJkZGRkIFtc''@;'; put 'put ''dTJkMzRdIExUIixsYXN0RGF5OiJbXHUyZDMwXHUyZDVhXHUyZDMwXHUyZDRmXHUyZDVjIFx1MmQzNF0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTJkMzRdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJcdTJkMzdcdTJkMzBcdTJkMzdcdTJkNDUgXHUyZDU5IFx1MmQ2''@;'; put 'put ''Mlx1MmQzMFx1MmQ0ZiAlcyIscGFzdDoiXHUyZDYyXHUyZDMwXHUyZDRmICVzIixzOiJcdTJkNDlcdTJkNGVcdTJkNDlcdTJkM2QiLHNzOiIlZCBcdTJkNDlcdTJkNGVcdTJkNDlcdTJkM2QiLG06Ilx1MmQ0ZVx1MmQ0OVx1MmQ0Zlx1MmQ1M1x1MmQzYSIsbW06IiVkIFx1MmQ0ZVx1MmQ0OVx1''@;'; put 'put ''MmQ0Zlx1MmQ1M1x1MmQzYSIsaDoiXHUyZDU5XHUyZDMwXHUyZDQ0XHUyZDMwIixoaDoiJWQgXHUyZDVjXHUyZDMwXHUyZDU5XHUyZDU5XHUyZDMwXHUyZDQ0XHUyZDQ5XHUyZDRmIixkOiJcdTJkMzBcdTJkNTlcdTJkNTkiLGRkOiIlZCBvXHUyZDU5XHUyZDU5XHUyZDMwXHUyZDRmIixNOiJc''@;'; put 'put ''dTJkMzBcdTJkNjJvXHUyZDUzXHUyZDU0IixNTToiJWQgXHUyZDQ5XHUyZDYyXHUyZDYyXHUyZDQ5XHUyZDU0XHUyZDRmIix5OiJcdTJkMzBcdTJkNTlcdTJkMzNcdTJkMzBcdTJkNTkiLHl5OiIlZCBcdTJkNDlcdTJkNTlcdTJkMzNcdTJkMzBcdTJkNTlcdTJkNGYifSx3ZWVrOntkb3c6Nixk''@;'; put 'put ''b3k6MTJ9fSl9KEwoMTU0MzkpKX0sNjA1MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInVnLWNuIix7bW9udGhzOiJcdTA2NGFcdTA2MjdcdTA2NDZcdTA2Y2JcdTA2MjdcdTA2MzFfXHUwNjQxXHUwNmQwXHUwNmNiXHUwNjMx''@;'; put 'put ''XHUwNjI3XHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDYzMVx1MDYyYV9cdTA2MjZcdTA2MjdcdTA2N2VcdTA2MzFcdTA2ZDBcdTA2NDRfXHUwNjQ1XHUwNjI3XHUwNjRhX1x1MDYyNlx1MDY0OVx1MDY0YVx1MDZjN1x1MDY0Nl9cdTA2MjZcdTA2NDlcdTA2NGFcdTA2YzdcdTA2NDRfXHUwNjI2XHUw''@;'; put 'put ''NjI3XHUwNmNiXHUwNjNhXHUwNmM3XHUwNjMzXHUwNjJhX1x1MDYzM1x1MDZkMFx1MDY0Nlx1MDYyYVx1MDZkNVx1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MjZcdTA2YzZcdTA2NDNcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjQ2XHUwNjQ4XHUwNjRhXHUwNjI3XHUwNjI4XHUw''@;'; put 'put ''NjQ5XHUwNjMxX1x1MDYyZlx1MDZkMFx1MDY0M1x1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMSIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNjRhXHUwNjI3XHUwNjQ2XHUwNmNiXHUwNjI3XHUwNjMxX1x1MDY0MVx1MDZkMFx1MDZjYlx1MDYzMVx1MDYyN1x1MDY0NF9cdTA2NDVcdTA2Mjdc''@;'; put 'put ''dTA2MzFcdTA2MmFfXHUwNjI2XHUwNjI3XHUwNjdlXHUwNjMxXHUwNmQwXHUwNjQ0X1x1MDY0NVx1MDYyN1x1MDY0YV9cdTA2MjZcdTA2NDlcdTA2NGFcdTA2YzdcdTA2NDZfXHUwNjI2XHUwNjQ5XHUwNjRhXHUwNmM3XHUwNjQ0X1x1MDYyNlx1MDYyN1x1MDZjYlx1MDYzYVx1MDZjN1x1MDYz''@;'; put 'put ''M1x1MDYyYV9cdTA2MzNcdTA2ZDBcdTA2NDZcdTA2MmFcdTA2ZDVcdTA2MjhcdTA2NDlcdTA2MzFfXHUwNjI2XHUwNmM2XHUwNjQzXHUwNjJhXHUwNmQ1XHUwNjI4XHUwNjQ5XHUwNjMxX1x1MDY0Nlx1MDY0OFx1MDY0YVx1MDYyN1x1MDYyOFx1MDY0OVx1MDYzMV9cdTA2MmZcdTA2ZDBcdTA2''@;'; put 'put ''NDNcdTA2MjdcdTA2MjhcdTA2NDlcdTA2MzEiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1MDY0YVx1MDZkNVx1MDY0M1x1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2MmZcdTA2YzhcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjMzXHUwNmQ1XHUwNjRhXHUwNjM0''@;'; put 'put ''XHUwNmQ1XHUwNjQ2XHUwNjI4XHUwNmQ1X1x1MDY4Nlx1MDYyN1x1MDYzMVx1MDYzNFx1MDZkNVx1MDY0Nlx1MDYyOFx1MDZkNV9cdTA2N2VcdTA2ZDVcdTA2NGFcdTA2MzRcdTA2ZDVcdTA2NDZcdTA2MjhcdTA2ZDVfXHUwNjJjXHUwNmM4XHUwNjQ1XHUwNmQ1X1x1MDYzNFx1MDZkNVx1MDY0''@;'; put 'put ''Nlx1MDYyOFx1MDZkNSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA2NGFcdTA2ZDVfXHUwNjJmXHUwNmM4X1x1MDYzM1x1MDZkNV9cdTA2ODZcdTA2MjdfXHUwNjdlXHUwNmQ1X1x1MDYyY1x1MDZjOF9cdTA2MzRcdTA2ZDUiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDY0YVx1''@;'; put 'put ''MDZkNV9cdTA2MmZcdTA2YzhfXHUwNjMzXHUwNmQ1X1x1MDY4Nlx1MDYyN19cdTA2N2VcdTA2ZDVfXHUwNjJjXHUwNmM4X1x1MDYzNFx1MDZkNSIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZLU1NLUREIixMTDoiWVlZWS1cdTA2''@;'; put 'put ''NGFcdTA2NDlcdTA2NDRcdTA2NDlNLVx1MDYyNlx1MDYyN1x1MDY0YVx1MDY0Nlx1MDY0OVx1MDZhZEQtXHUwNjQzXHUwNmM4XHUwNjQ2XHUwNjQ5IixMTEw6IllZWVktXHUwNjRhXHUwNjQ5XHUwNjQ0XHUwNjQ5TS1cdTA2MjZcdTA2MjdcdTA2NGFcdTA2NDZcdTA2NDlcdTA2YWRELVx1MDY0''@;'; put 'put ''M1x1MDZjOFx1MDY0Nlx1MDY0OVx1MDYwYyBISDptbSIsTExMTDoiZGRkZFx1MDYwYyBZWVlZLVx1MDY0YVx1MDY0OVx1MDY0NFx1MDY0OU0tXHUwNjI2XHUwNjI3XHUwNjRhXHUwNjQ2XHUwNjQ5XHUwNmFkRC1cdTA2NDNcdTA2YzhcdTA2NDZcdTA2NDlcdTA2MGMgSEg6bW0ifSxtZXJpZGll''@;'; put 'put ''bVBhcnNlOi9cdTA2NGFcdTA2ZDBcdTA2MzFcdTA2NDlcdTA2NDUgXHUwNjQzXHUwNmQwXHUwNjg2XHUwNmQ1fFx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMXxcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjI4XHUwNmM3XHUwNjMxXHUwNmM3XHUwNjQ2fFx1''@;'; put 'put ''MDY4Nlx1MDZjOFx1MDYzNHxcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2fFx1MDY0M1x1MDZkNVx1MDY4Ni8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsRWUpe3JldHVybiAxMj09PUUmJihFPTApLCJcdTA2NGFcdTA2''@;'; put 'put ''ZDBcdTA2MzFcdTA2NDlcdTA2NDUgXHUwNjQzXHUwNmQwXHUwNjg2XHUwNmQ1Ij09PUVlfHwiXHUwNjMzXHUwNmQ1XHUwNmJlXHUwNmQ1XHUwNjMxIj09PUVlfHwiXHUwNjg2XHUwNmM4XHUwNjM0XHUwNjJhXHUwNjQ5XHUwNjQ2IFx1MDYyOFx1MDZjN1x1MDYzMVx1MDZjN1x1MDY0NiI9PT1F''@;'; put 'put ''ZT9FOiJcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2Ij09PUVlfHwiXHUwNjQzXHUwNmQ1XHUwNjg2Ij09PUVlP0UrMTI6RT49MTE/RTpFKzEyfSxtZXJpZGllbTpmdW5jdGlvbihFLEVlLFUpe3ZhciBRPTEwMCpFK0Vl''@;'; put 'put ''O3JldHVybiBRPDYwMD8iXHUwNjRhXHUwNmQwXHUwNjMxXHUwNjQ5XHUwNjQ1IFx1MDY0M1x1MDZkMFx1MDY4Nlx1MDZkNSI6UTw5MDA/Ilx1MDYzM1x1MDZkNVx1MDZiZVx1MDZkNVx1MDYzMSI6UTwxMTMwPyJcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjI4XHUw''@;'; put 'put ''NmM3XHUwNjMxXHUwNmM3XHUwNjQ2IjpRPDEyMzA/Ilx1MDY4Nlx1MDZjOFx1MDYzNCI6UTwxODAwPyJcdTA2ODZcdTA2YzhcdTA2MzRcdTA2MmFcdTA2NDlcdTA2NDYgXHUwNjQzXHUwNmQwXHUwNjRhXHUwNjQ5XHUwNjQ2IjoiXHUwNjQzXHUwNmQ1XHUwNjg2In0sY2FsZW5kYXI6e3NhbWVE''@;'; put 'put ''YXk6IltcdTA2MjhcdTA2YzhcdTA2YWZcdTA2YzhcdTA2NDYgXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsbmV4dERheToiW1x1MDYyNlx1MDZkNVx1MDYyYVx1MDZkNSBcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmFdIExUIixuZXh0V2VlazoiW1x1MDY0M1x1MDZk''@;'; put 'put ''MFx1MDY0NFx1MDZkNVx1MDYzMVx1MDY0M1x1MDY0OV0gZGRkZCBbXHUwNjMzXHUwNjI3XHUwNjI2XHUwNmQ1XHUwNjJhXSBMVCIsbGFzdERheToiW1x1MDYyYVx1MDZjNlx1MDY0Nlx1MDZjOFx1MDZhZlx1MDZjOFx1MDY0Nl0gTFQiLGxhc3RXZWVrOiJbXHUwNjI2XHUwNjI3XHUwNjQ0XHUw''@;'; put 'put ''NjJmXHUwNjQ5XHUwNjQ2XHUwNjQyXHUwNjQ5XSBkZGRkIFtcdTA2MzNcdTA2MjdcdTA2MjZcdTA2ZDVcdTA2MmFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA2NDNcdTA2ZDBcdTA2NGFcdTA2NDlcdTA2NDYiLHBhc3Q6IiVzIFx1MDYyOFx1MDZjN1x1''@;'; put 'put ''MDYzMVx1MDZjN1x1MDY0NiIsczoiXHUwNjQ2XHUwNmQ1XHUwNjg2XHUwNjg2XHUwNmQ1IFx1MDYzM1x1MDZkMFx1MDY0M1x1MDY0OFx1MDY0Nlx1MDYyYSIsc3M6IiVkIFx1MDYzM1x1MDZkMFx1MDY0M1x1MDY0OFx1MDY0Nlx1MDYyYSIsbToiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDY0NVx1''@;'; put 'put ''MDY0OVx1MDY0Nlx1MDZjN1x1MDYyYSIsbW06IiVkIFx1MDY0NVx1MDY0OVx1MDY0Nlx1MDZjN1x1MDYyYSIsaDoiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYSIsaGg6IiVkIFx1MDYzM1x1MDYyN1x1MDYyNlx1MDZkNVx1MDYyYSIsZDoiXHUwNjI4''@;'; put 'put ''XHUwNjQ5XHUwNjMxIFx1MDY0M1x1MDZjOFx1MDY0NiIsZGQ6IiVkIFx1MDY0M1x1MDZjOFx1MDY0NiIsTToiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDYyNlx1MDYyN1x1MDY0YSIsTU06IiVkIFx1MDYyNlx1MDYyN1x1MDY0YSIseToiXHUwNjI4XHUwNjQ5XHUwNjMxIFx1MDY0YVx1MDY0OVx1''@;'; put 'put ''MDY0NCIseXk6IiVkIFx1MDY0YVx1MDY0OVx1MDY0NCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oLVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OXwtXHUwNjI2XHUwNjI3XHUwNjRhfC1cdTA2YmVcdTA2ZDVcdTA2N2VcdTA2MmFcdTA2ZDUpLyxvcmRpbmFsOmZ1bmN0aW9uKEUs''@;'; put 'put ''RWUpe3N3aXRjaChFZSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRSsiLVx1MDY0M1x1MDZjOFx1MDY0Nlx1MDY0OSI7Y2FzZSJ3IjpjYXNlIlciOnJldHVybiBFKyItXHUwNmJlXHUwNmQ1XHUwNjdlXHUwNjJhXHUwNmQ1IjtkZWZhdWx0OnJldHVybiBFfX0scHJlcGFyc2U6''@;'; put 'put ''ZnVuY3Rpb24oRSl7cmV0dXJuIEUucmVwbGFjZSgvXHUwNjBjL2csIiwiKX0scG9zdGZvcm1hdDpmdW5jdGlvbihFKXtyZXR1cm4gRS5yZXBsYWNlKC8sL2csIlx1MDYwYyIpfSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw2NTYxMDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rp''@;'; put 'put ''b24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBFKGoscmUsYWUpe3JldHVybiJtIj09PWFlP3JlPyJcdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0MzAiOiJcdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0NDMiOiJoIj09PWFlP3JlPyJcdTA0''@;'; put 'put ''MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzAiOiJcdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0NDMiOmorIiAiK2Z1bmN0aW9uIEIoaixyZSl7dmFyIGFlPWouc3BsaXQoIl8iKTtyZXR1cm4gcmUlMTA9PTEmJnJlJTEwMCE9MTE/YWVbMF06cmUlMTA+PTImJnJlJTEw''@;'; put 'put ''PD00JiYocmUlMTAwPDEwfHxyZSUxMDA+PTIwKT9hZVsxXTphZVsyXX0oe3NzOnJlPyJcdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzBfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0XHUwNDM4X1x1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQz''@;'; put 'put ''ZFx1MDQzNCI6Ilx1MDQ0MVx1MDQzNVx1MDQzYVx1MDQ0M1x1MDQzZFx1MDQzNFx1MDQ0M19cdTA0NDFcdTA0MzVcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzRcdTA0MzhfXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixtbTpyZT8iXHUwNDQ1XHUwNDMyXHUwNDM4XHUwNDNi''@;'; put 'put ''XHUwNDM4XHUwNDNkXHUwNDMwX1x1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZFx1MDQzOF9cdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2QiOiJcdTA0NDVcdTA0MzJcdTA0MzhcdTA0M2JcdTA0MzhcdTA0M2RcdTA0NDNfXHUwNDQ1XHUwNDMyXHUwNDM4XHUw''@;'; put 'put ''NDNiXHUwNDM4XHUwNDNkXHUwNDM4X1x1MDQ0NVx1MDQzMlx1MDQzOFx1MDQzYlx1MDQzOFx1MDQzZCIsaGg6cmU/Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzMF9cdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2RcdTA0MzhfXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4''@;'; put 'put ''XHUwNDNkIjoiXHUwNDMzXHUwNDNlXHUwNDM0XHUwNDM4XHUwNDNkXHUwNDQzX1x1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQzOF9cdTA0MzNcdTA0M2VcdTA0MzRcdTA0MzhcdTA0M2QiLGRkOiJcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM0XHUwNDNkXHUwNDU2X1x1''@;'; put 'put ''MDQzNFx1MDQzZFx1MDQ1Nlx1MDQzMiIsTU06Ilx1MDQzY1x1MDQ1Nlx1MDQ0MVx1MDQ0Zlx1MDQ0Nlx1MDQ0Y19cdTA0M2NcdTA0NTZcdTA0NDFcdTA0NGZcdTA0NDZcdTA0NTZfXHUwNDNjXHUwNDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDU2XHUwNDMyIix5eToiXHUwNDQwXHUwNDU2XHUw''@;'; put 'put ''NDNhX1x1MDQ0MFx1MDQzZVx1MDQzYVx1MDQzOF9cdTA0NDBcdTA0M2VcdTA0M2FcdTA0NTZcdTA0MzIifVthZV0sK2opfWZ1bmN0aW9uIFUoail7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGorIlx1MDQzZSIrKDExPT09dGhpcy5ob3VycygpPyJcdTA0MzEiOiIiKSsiXSBMVCJ9fW1lLmRl''@;'; put 'put ''ZmluZUxvY2FsZSgidWsiLHttb250aHM6e2Zvcm1hdDoiXHUwNDQxXHUwNDU2XHUwNDQ3XHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzZVx1MDQzM1x1MDQzZV9cdTA0MzFcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzdcdTA0M2RcdTA0NGZfXHUwNDNhXHUwNDMyXHUwNDU2XHUw''@;'; put 'put ''NDQyXHUwNDNkXHUwNDRmX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzZFx1MDQ0Zl9cdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzJcdTA0M2RcdTA0NGZfXHUwNDNiXHUwNDM4XHUwNDNmXHUwNDNkXHUwNDRmX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzZlx1MDQzZFx1MDQ0Zl9cdTA0MzJc''@;'; put 'put ''dTA0MzVcdTA0NDBcdTA0MzVcdTA0NDFcdTA0M2RcdTA0NGZfXHUwNDM2XHUwNDNlXHUwNDMyXHUwNDQyXHUwNDNkXHUwNDRmX1x1MDQzYlx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzMFx1MDQzNFx1MDQzMF9cdTA0MzNcdTA0NDBcdTA0NDNcdTA0MzRcdTA0M2RcdTA0NGYi''@;'; put 'put ''LnNwbGl0KCJfIiksc3RhbmRhbG9uZToiXHUwNDQxXHUwNDU2XHUwNDQ3XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQ0ZVx1MDQ0Mlx1MDQzOFx1MDQzOV9cdTA0MzFcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzdcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNhXHUwNDMyXHUwNDU2XHUwNDQy''@;'; put 'put ''XHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQ0Mlx1MDQ0MFx1MDQzMFx1MDQzMlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0NDdcdTA0MzVcdTA0NDBcdTA0MzJcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDNiXHUwNDM4XHUwNDNmXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQz''@;'; put 'put ''Zlx1MDQzNVx1MDQzZFx1MDQ0Y19cdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzVcdTA0NDFcdTA0MzVcdTA0M2RcdTA0NGNfXHUwNDM2XHUwNDNlXHUwNDMyXHUwNDQyXHUwNDM1XHUwNDNkXHUwNDRjX1x1MDQzYlx1MDQzOFx1MDQ0MVx1MDQ0Mlx1MDQzZVx1MDQzZlx1MDQzMFx1MDQzNF9cdTA0''@;'; put 'put ''MzNcdTA0NDBcdTA0NDNcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGMiLnNwbGl0KCJfIil9LG1vbnRoc1Nob3J0OiJcdTA0NDFcdTA0NTZcdTA0NDdfXHUwNDNiXHUwNDRlXHUwNDQyX1x1MDQzMVx1MDQzNVx1MDQ0MF9cdTA0M2FcdTA0MzJcdTA0NTZcdTA0NDJfXHUwNDQyXHUwNDQwXHUwNDMw''@;'; put 'put ''XHUwNDMyX1x1MDQ0N1x1MDQzNVx1MDQ0MFx1MDQzMl9cdTA0M2JcdTA0MzhcdTA0M2ZfXHUwNDQxXHUwNDM1XHUwNDQwXHUwNDNmX1x1MDQzMlx1MDQzNVx1MDQ0MF9cdTA0MzZcdTA0M2VcdTA0MzJcdTA0NDJfXHUwNDNiXHUwNDM4XHUwNDQxXHUwNDQyX1x1MDQzM1x1MDQ0MFx1MDQ0M1x1''@;'; put 'put ''MDQzNCIuc3BsaXQoIl8iKSx3ZWVrZGF5czpmdW5jdGlvbiBFZShqLHJlKXt2YXIgYWU9e25vbWluYXRpdmU6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQ0Zl9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0M2VcdTA0M2FfXHUwNDMyXHUw''@;'; put 'put ''NDU2XHUwNDMyXHUwNDQyXHUwNDNlXHUwNDQwXHUwNDNlXHUwNDNhX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzMF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBfXHUwNDNmXHUyMDE5XHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDRmX1x1''@;'; put 'put ''MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzMCIuc3BsaXQoIl8iKSxhY2N1c2F0aXZlOiJcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0NGVfXHUwNDNmXHUwNDNlXHUwNDNkXHUwNDM1XHUwNDM0XHUwNDU2XHUwNDNiXHUwNDNlXHUwNDNhX1x1MDQzMlx1MDQ1Nlx1''@;'; put 'put ''MDQzMlx1MDQ0Mlx1MDQzZVx1MDQ0MFx1MDQzZVx1MDQzYV9cdTA0NDFcdTA0MzVcdTA0NDBcdTA0MzVcdTA0MzRcdTA0NDNfXHUwNDQ3XHUwNDM1XHUwNDQyXHUwNDMyXHUwNDM1XHUwNDQwX1x1MDQzZlx1MjAxOVx1MDQ0Zlx1MDQ0Mlx1MDQzZFx1MDQzOFx1MDQ0Nlx1MDQ0ZV9cdTA0NDFc''@;'; put 'put ''dTA0NDNcdTA0MzFcdTA0M2VcdTA0NDJcdTA0NDMiLnNwbGl0KCJfIiksZ2VuaXRpdmU6Ilx1MDQzZFx1MDQzNVx1MDQzNFx1MDQ1Nlx1MDQzYlx1MDQ1Nl9cdTA0M2ZcdTA0M2VcdTA0M2RcdTA0MzVcdTA0MzRcdTA0NTZcdTA0M2JcdTA0M2FcdTA0MzBfXHUwNDMyXHUwNDU2XHUwNDMyXHUw''@;'; put 'put ''NDQyXHUwNDNlXHUwNDQwXHUwNDNhXHUwNDMwX1x1MDQ0MVx1MDQzNVx1MDQ0MFx1MDQzNVx1MDQzNFx1MDQzOF9cdTA0NDdcdTA0MzVcdTA0NDJcdTA0MzJcdTA0MzVcdTA0NDBcdTA0MzNcdTA0MzBfXHUwNDNmXHUyMDE5XHUwNDRmXHUwNDQyXHUwNDNkXHUwNDM4XHUwNDQ2XHUwNDU2X1x1''@;'; put 'put ''MDQ0MVx1MDQ0M1x1MDQzMVx1MDQzZVx1MDQ0Mlx1MDQzOCIuc3BsaXQoIl8iKX07cmV0dXJuITA9PT1qP2FlLm5vbWluYXRpdmUuc2xpY2UoMSw3KS5jb25jYXQoYWUubm9taW5hdGl2ZS5zbGljZSgwLDEpKTpqP2FlWy8oXFtbXHUwNDEyXHUwNDMyXHUwNDIzXHUwNDQzXVxdKSA/ZGRkZC8u''@;'; put 'put ''dGVzdChyZSk/ImFjY3VzYXRpdmUiOi9cWz8oPzpcdTA0M2NcdTA0MzhcdTA0M2RcdTA0NDNcdTA0M2JcdTA0M2VcdTA0NTd8XHUwNDNkXHUwNDMwXHUwNDQxXHUwNDQyXHUwNDQzXHUwNDNmXHUwNDNkXHUwNDNlXHUwNDU3KT8gP1xdID9kZGRkLy50ZXN0KHJlKT8iZ2VuaXRpdmUiOiJub21p''@;'; put 'put ''bmF0aXZlIl1bai5kYXkoKV06YWUubm9taW5hdGl2ZX0sd2Vla2RheXNTaG9ydDoiXHUwNDNkXHUwNDM0X1x1MDQzZlx1MDQzZF9cdTA0MzJcdTA0NDJfXHUwNDQxXHUwNDQwX1x1MDQ0N1x1MDQ0Ml9cdTA0M2ZcdTA0NDJfXHUwNDQxXHUwNDMxIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJc''@;'; put 'put ''dTA0M2RcdTA0MzRfXHUwNDNmXHUwNDNkX1x1MDQzMlx1MDQ0Ml9cdTA0NDFcdTA0NDBfXHUwNDQ3XHUwNDQyX1x1MDQzZlx1MDQ0Ml9cdTA0NDFcdTA0MzEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQuTU0uWVlZWSIsTEw6IkQg''@;'; put 'put ''TU1NTSBZWVlZIFx1MDQ0MC4iLExMTDoiRCBNTU1NIFlZWVkgXHUwNDQwLiwgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBZWVlZIFx1MDQ0MC4sIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6VSgiW1x1MDQyMVx1MDQ0Y1x1MDQzZVx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzZFx1MDQ1NiAi''@;'; put 'put ''KSxuZXh0RGF5OlUoIltcdTA0MTdcdTA0MzBcdTA0MzJcdTA0NDJcdTA0NDBcdTA0MzAgIiksbGFzdERheTpVKCJbXHUwNDEyXHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDMwICIpLG5leHRXZWVrOlUoIltcdTA0MjNdIGRkZGQgWyIpLGxhc3RXZWVrOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZGF5''@;'; put 'put ''KCkpe2Nhc2UgMDpjYXNlIDM6Y2FzZSA1OmNhc2UgNjpyZXR1cm4gVSgiW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQ0M1x1MDQzYlx1MDQzZVx1MDQ1N10gZGRkZCBbIikuY2FsbCh0aGlzKTtjYXNlIDE6Y2FzZSAyOmNhc2UgNDpyZXR1cm4gVSgiW1x1MDQxY1x1MDQzOFx1MDQzZFx1MDQ0M1x1''@;'; put 'put ''MDQzYlx1MDQzZVx1MDQzM1x1MDQzZV0gZGRkZCBbIikuY2FsbCh0aGlzKX19LHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQzN1x1MDQzMCAlcyIscGFzdDoiJXMgXHUwNDQyXHUwNDNlXHUwNDNjXHUwNDQzIixzOiJcdTA0MzRcdTA0MzVcdTA0M2FcdTA0NTZcdTA0''@;'; put 'put ''M2JcdTA0NGNcdTA0M2FcdTA0MzAgXHUwNDQxXHUwNDM1XHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM0IixzczpFLG06RSxtbTpFLGg6Ilx1MDQzM1x1MDQzZVx1MDQzNFx1MDQzOFx1MDQzZFx1MDQ0MyIsaGg6RSxkOiJcdTA0MzRcdTA0MzVcdTA0M2RcdTA0NGMiLGRkOkUsTToiXHUwNDNjXHUw''@;'; put 'put ''NDU2XHUwNDQxXHUwNDRmXHUwNDQ2XHUwNDRjIixNTTpFLHk6Ilx1MDQ0MFx1MDQ1Nlx1MDQzYSIseXk6RX0sbWVyaWRpZW1QYXJzZTovXHUwNDNkXHUwNDNlXHUwNDQ3XHUwNDU2fFx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzYVx1MDQ0M3xcdTA0MzRcdTA0M2RcdTA0NGZ8XHUwNDMyXHUwNDM1''@;'; put 'put ''XHUwNDQ3XHUwNDNlXHUwNDQwXHUwNDMwLyxpc1BNOmZ1bmN0aW9uKGope3JldHVybi9eKFx1MDQzNFx1MDQzZFx1MDQ0ZnxcdTA0MzJcdTA0MzVcdTA0NDdcdTA0M2VcdTA0NDBcdTA0MzApJC8udGVzdChqKX0sbWVyaWRpZW06ZnVuY3Rpb24oaixyZSxhZSl7cmV0dXJuIGo8ND8iXHUwNDNk''@;'; put 'put ''XHUwNDNlXHUwNDQ3XHUwNDU2IjpqPDEyPyJcdTA0NDBcdTA0MzBcdTA0M2RcdTA0M2FcdTA0NDMiOmo8MTc/Ilx1MDQzNFx1MDQzZFx1MDQ0ZiI6Ilx1MDQzMlx1MDQzNVx1MDQ0N1x1MDQzZVx1MDQ0MFx1MDQzMCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0tKFx1MDQzOXxc''@;'; put 'put ''dTA0MzNcdTA0M2UpLyxvcmRpbmFsOmZ1bmN0aW9uKGoscmUpe3N3aXRjaChyZSl7Y2FzZSJNIjpjYXNlImQiOmNhc2UiREREIjpjYXNlInciOmNhc2UiVyI6cmV0dXJuIGorIi1cdTA0MzkiO2Nhc2UiRCI6cmV0dXJuIGorIi1cdTA0MzNcdTA0M2UiO2RlZmF1bHQ6cmV0dXJuIGp9fSx3ZWVr''@;'; put 'put ''Ontkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw4NjA3NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0Ijt2YXIgQj1bIlx1MDYyY1x1MDY0Nlx1MDY0OFx1MDYzMVx1MDZjYyIsIlx1MDY0MVx1MDYzMVx1MDY0OFx1MDYzMVx1MDZjYyIsIlx1MDY0NVx1MDYy''@;'; put 'put ''N1x1MDYzMVx1MDY4NiIsIlx1MDYyN1x1MDY3ZVx1MDYzMVx1MDZjY1x1MDY0NCIsIlx1MDY0NVx1MDYyNlx1MDZjYyIsIlx1MDYyY1x1MDY0OFx1MDY0NiIsIlx1MDYyY1x1MDY0OFx1MDY0NFx1MDYyN1x1MDYyNlx1MDZjYyIsIlx1MDYyN1x1MDZhZlx1MDYzM1x1MDYyYSIsIlx1MDYzM1x1''@;'; put 'put ''MDYyYVx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyN1x1MDZhOVx1MDYyYVx1MDY0OFx1MDYyOFx1MDYzMSIsIlx1MDY0Nlx1MDY0OFx1MDY0NVx1MDYyOFx1MDYzMSIsIlx1MDYyZlx1MDYzM1x1MDY0NVx1MDYyOFx1MDYzMSJdLEU9WyJcdTA2MjdcdTA2MmFcdTA2NDhcdTA2MjdcdTA2MzEi''@;'; put 'put ''LCJcdTA2N2VcdTA2Y2NcdTA2MzEiLCJcdTA2NDVcdTA2NDZcdTA2YWZcdTA2NDQiLCJcdTA2MjhcdTA2MmZcdTA2YmUiLCJcdTA2MmNcdTA2NDVcdTA2MzlcdTA2MzFcdTA2MjdcdTA2MmEiLCJcdTA2MmNcdTA2NDVcdTA2MzlcdTA2YzEiLCJcdTA2YzFcdTA2NDFcdTA2MmFcdTA2YzEiXTtt''@;'; put 'put ''ZS5kZWZpbmVMb2NhbGUoInVyIix7bW9udGhzOkIsbW9udGhzU2hvcnQ6Qix3ZWVrZGF5czpFLHdlZWtkYXlzU2hvcnQ6RSx3ZWVrZGF5c01pbjpFLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJE''@;'; put 'put ''IE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZFx1MDYwYyBEIE1NTU0gWVlZWSBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1MDYzNVx1MDYyOFx1MDYyZHxcdTA2MzRcdTA2MjdcdTA2NDUvLGlzUE06ZnVuY3Rpb24oVSl7cmV0dXJuIlx1MDYzNFx1MDYyN1x1MDY0NSI9PT1VfSxtZXJpZGll''@;'; put 'put ''bTpmdW5jdGlvbihVLFEsail7cmV0dXJuIFU8MTI/Ilx1MDYzNVx1MDYyOFx1MDYyZCI6Ilx1MDYzNFx1MDYyN1x1MDY0NSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHUwNjIyXHUwNjJjIFx1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLG5leHREYXk6IltcdTA2YTlcdTA2NDQgXHUwNjI4''@;'; put 'put ''XHUwNjQ4XHUwNjQyXHUwNjJhXSBMVCIsbmV4dFdlZWs6ImRkZGQgW1x1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLGxhc3REYXk6IltcdTA2YWZcdTA2MzBcdTA2MzRcdTA2MmFcdTA2YzEgXHUwNjMxXHUwNjQ4XHUwNjMyIFx1MDYyOFx1MDY0OFx1MDY0Mlx1MDYyYV0gTFQiLGxhc3RX''@;'; put 'put ''ZWVrOiJbXHUwNmFmXHUwNjMwXHUwNjM0XHUwNjJhXHUwNmMxXSBkZGRkIFtcdTA2MjhcdTA2NDhcdTA2NDJcdTA2MmFdIExUIixzYW1lRWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlcyBcdTA2MjhcdTA2MzlcdTA2MmYiLHBhc3Q6IiVzIFx1MDY0Mlx1MDYyOFx1MDY0NCIsczoi''@;'; put 'put ''XHUwNjg2XHUwNjQ2XHUwNjJmIFx1MDYzM1x1MDZjY1x1MDZhOVx1MDY0Nlx1MDY4OCIsc3M6IiVkIFx1MDYzM1x1MDZjY1x1MDZhOVx1MDY0Nlx1MDY4OCIsbToiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDY0NVx1MDY0Nlx1MDY3OSIsbW06IiVkIFx1MDY0NVx1MDY0Nlx1MDY3OSIsaDoiXHUw''@;'; put 'put ''NjI3XHUwNmNjXHUwNmE5IFx1MDZhZlx1MDZiZVx1MDY0Nlx1MDY3OVx1MDZjMSIsaGg6IiVkIFx1MDZhZlx1MDZiZVx1MDY0Nlx1MDY3OVx1MDZkMiIsZDoiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDYyZlx1MDY0NiIsZGQ6IiVkIFx1MDYyZlx1MDY0NiIsTToiXHUwNjI3XHUwNmNjXHUwNmE5''@;'; put 'put ''IFx1MDY0NVx1MDYyN1x1MDZjMSIsTU06IiVkIFx1MDY0NVx1MDYyN1x1MDZjMSIseToiXHUwNjI3XHUwNmNjXHUwNmE5IFx1MDYzM1x1MDYyN1x1MDY0NCIseXk6IiVkIFx1MDYzM1x1MDYyN1x1MDY0NCJ9LHByZXBhcnNlOmZ1bmN0aW9uKFUpe3JldHVybiBVLnJlcGxhY2UoL1x1MDYwYy9n''@;'; put 'put ''LCIsIil9LHBvc3Rmb3JtYXQ6ZnVuY3Rpb24oVSl7cmV0dXJuIFUucmVwbGFjZSgvLC9nLCJcdTA2MGMiKX0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sMTIyMDc6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ1''@;'; put 'put ''ei1sYXRuIix7bW9udGhzOiJZYW52YXJfRmV2cmFsX01hcnRfQXByZWxfTWF5X0l5dW5fSXl1bF9Bdmd1c3RfU2VudGFicl9Pa3RhYnJfTm95YWJyX0Rla2FiciIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiWWFuX0Zldl9NYXJfQXByX01heV9JeXVuX0l5dWxfQXZnX1Nlbl9Pa3RfTm95X0Rl''@;'; put 'put ''ayIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiWWFrc2hhbmJhX0R1c2hhbmJhX1Nlc2hhbmJhX0Nob3JzaGFuYmFfUGF5c2hhbmJhX0p1bWFfU2hhbmJhIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Illha19EdXNoX1Nlc2hfQ2hvcl9QYXlfSnVtX1NoYW4iLnNwbGl0KCJfIiksd2Vla2RheXNN''@;'; put 'put ''aW46IllhX0R1X1NlX0Nob19QYV9KdV9TaGEiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIEhIOm1tIixMTExMOiJEIE1NTU0gWVlZWSwgZGRkZCBISDpt''@;'; put 'put ''bSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbQnVndW4gc29hdF0gTFQgW2RhXSIsbmV4dERheToiW0VydGFnYV0gTFQgW2RhXSIsbmV4dFdlZWs6ImRkZGQgW2t1bmkgc29hdF0gTFQgW2RhXSIsbGFzdERheToiW0tlY2hhIHNvYXRdIExUIFtkYV0iLGxhc3RXZWVrOiJbTyd0Z2FuXSBkZGRkIFtr''@;'; put 'put ''dW5pIHNvYXRdIExUIFtkYV0iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IllhcWluICVzIGljaGlkYSIscGFzdDoiQmlyIG5lY2hhICVzIG9sZGluIixzOiJzb25peWEiLHNzOiIlZCBzb25peWEiLG06ImJpciBkYXFpcWEiLG1tOiIlZCBkYXFpcWEiLGg6ImJpciBzb2F0''@;'; put 'put ''IixoaDoiJWQgc29hdCIsZDoiYmlyIGt1biIsZGQ6IiVkIGt1biIsTToiYmlyIG95IixNTToiJWQgb3kiLHk6ImJpciB5aWwiLHl5OiIlZCB5aWwifSx3ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSwyMjg2MjpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3Ry''@;'; put 'put ''aWN0IjttZS5kZWZpbmVMb2NhbGUoInV6Iix7bW9udGhzOiJcdTA0NGZcdTA0M2RcdTA0MzJcdTA0MzBcdTA0NDBfXHUwNDQ0XHUwNDM1XHUwNDMyXHUwNDQwXHUwNDMwXHUwNDNiX1x1MDQzY1x1MDQzMFx1MDQ0MFx1MDQ0Ml9cdTA0MzBcdTA0M2ZcdTA0NDBcdTA0MzVcdTA0M2JfXHUwNDNj''@;'; put 'put ''XHUwNDMwXHUwNDM5X1x1MDQzOFx1MDQ0ZVx1MDQzZF9cdTA0MzhcdTA0NGVcdTA0M2JfXHUwNDMwXHUwNDMyXHUwNDMzXHUwNDQzXHUwNDQxXHUwNDQyX1x1MDQ0MVx1MDQzNVx1MDQzZFx1MDQ0Mlx1MDQ0Zlx1MDQzMVx1MDQ0MF9cdTA0M2VcdTA0M2FcdTA0NDJcdTA0NGZcdTA0MzFcdTA0''@;'; put 'put ''NDBfXHUwNDNkXHUwNDNlXHUwNDRmXHUwNDMxXHUwNDQwX1x1MDQzNFx1MDQzNVx1MDQzYVx1MDQzMFx1MDQzMVx1MDQ0MCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiXHUwNDRmXHUwNDNkXHUwNDMyX1x1MDQ0NFx1MDQzNVx1MDQzMl9cdTA0M2NcdTA0MzBcdTA0NDBfXHUwNDMwXHUwNDNm''@;'; put 'put ''XHUwNDQwX1x1MDQzY1x1MDQzMFx1MDQzOV9cdTA0MzhcdTA0NGVcdTA0M2RfXHUwNDM4XHUwNDRlXHUwNDNiX1x1MDQzMFx1MDQzMlx1MDQzM19cdTA0NDFcdTA0MzVcdTA0M2RfXHUwNDNlXHUwNDNhXHUwNDQyX1x1MDQzZFx1MDQzZVx1MDQ0Zl9cdTA0MzRcdTA0MzVcdTA0M2EiLnNwbGl0''@;'; put 'put ''KCJfIiksd2Vla2RheXM6Ilx1MDQyZlx1MDQzYVx1MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMF9cdTA0MTRcdTA0NDNcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzBfXHUwNDIxXHUwNDM1XHUwNDQ4XHUwNDMwXHUwNDNkXHUwNDMxXHUwNDMwX1x1MDQyN1x1MDQzZVx1MDQ0MFx1''@;'; put 'put ''MDQ0OFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMF9cdTA0MWZcdTA0MzBcdTA0MzlcdTA0NDhcdTA0MzBcdTA0M2RcdTA0MzFcdTA0MzBfXHUwNDE2XHUwNDQzXHUwNDNjXHUwNDMwX1x1MDQyOFx1MDQzMFx1MDQzZFx1MDQzMVx1MDQzMCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTA0''@;'; put 'put ''MmZcdTA0M2FcdTA0NDhfXHUwNDE0XHUwNDQzXHUwNDQ4X1x1MDQyMVx1MDQzNVx1MDQ0OF9cdTA0MjdcdTA0M2VcdTA0NDBfXHUwNDFmXHUwNDMwXHUwNDM5X1x1MDQxNlx1MDQ0M1x1MDQzY19cdTA0MjhcdTA0MzBcdTA0M2QiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46Ilx1MDQyZlx1MDQz''@;'; put 'put ''YV9cdTA0MTRcdTA0NDNfXHUwNDIxXHUwNDM1X1x1MDQyN1x1MDQzZV9cdTA0MWZcdTA0MzBfXHUwNDE2XHUwNDQzX1x1MDQyOFx1MDQzMCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJERC9NTS9ZWVlZIixMTDoiRCBNTU1NIFlZWVki''@;'; put 'put ''LExMTDoiRCBNTU1NIFlZWVkgSEg6bW0iLExMTEw6IkQgTU1NTSBZWVlZLCBkZGRkIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTA0MTFcdTA0NDNcdTA0MzNcdTA0NDNcdTA0M2QgXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXSBMVCBbXHUwNDM0XHUwNDMwXSIsbmV4dERheToiW1x1''@;'; put 'put ''MDQyZFx1MDQ0MFx1MDQ0Mlx1MDQzMFx1MDQzM1x1MDQzMF0gTFQgW1x1MDQzNFx1MDQzMF0iLG5leHRXZWVrOiJkZGRkIFtcdTA0M2FcdTA0NDNcdTA0M2RcdTA0MzggXHUwNDQxXHUwNDNlXHUwNDMwXHUwNDQyXSBMVCBbXHUwNDM0XHUwNDMwXSIsbGFzdERheToiW1x1MDQxYVx1MDQzNVx1''@;'; put 'put ''MDQ0N1x1MDQzMCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDJdIExUIFtcdTA0MzRcdTA0MzBdIixsYXN0V2VlazoiW1x1MDQyM1x1MDQ0Mlx1MDQzM1x1MDQzMFx1MDQzZF0gZGRkZCBbXHUwNDNhXHUwNDQzXHUwNDNkXHUwNDM4IFx1MDQ0MVx1MDQzZVx1MDQzMFx1MDQ0Ml0gTFQgW1x1MDQz''@;'; put 'put ''NFx1MDQzMF0iLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6Ilx1MDQyZlx1MDQzYVx1MDQzOFx1MDQzZCAlcyBcdTA0MzhcdTA0NDdcdTA0MzhcdTA0MzRcdTA0MzAiLHBhc3Q6Ilx1MDQxMVx1MDQzOFx1MDQ0MCBcdTA0M2RcdTA0MzVcdTA0NDdcdTA0MzAgJXMgXHUwNDNl''@;'; put 'put ''XHUwNDNiXHUwNDM0XHUwNDM4XHUwNDNkIixzOiJcdTA0NDRcdTA0NDNcdTA0NDBcdTA0NDFcdTA0MzBcdTA0NDIiLHNzOiIlZCBcdTA0NDRcdTA0NDNcdTA0NDBcdTA0NDFcdTA0MzBcdTA0NDIiLG06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzRcdTA0MzBcdTA0M2FcdTA0MzhcdTA0M2Fc''@;'; put 'put ''dTA0MzAiLG1tOiIlZCBcdTA0MzRcdTA0MzBcdTA0M2FcdTA0MzhcdTA0M2FcdTA0MzAiLGg6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDIiLGhoOiIlZCBcdTA0NDFcdTA0M2VcdTA0MzBcdTA0NDIiLGQ6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2FcdTA0''@;'; put 'put ''NDNcdTA0M2QiLGRkOiIlZCBcdTA0M2FcdTA0NDNcdTA0M2QiLE06Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0M2VcdTA0MzkiLE1NOiIlZCBcdTA0M2VcdTA0MzkiLHk6Ilx1MDQzMVx1MDQzOFx1MDQ0MCBcdTA0MzlcdTA0MzhcdTA0M2IiLHl5OiIlZCBcdTA0MzlcdTA0MzhcdTA0M2IifSx3''@;'; put 'put ''ZWVrOntkb3c6MSxkb3k6N319KX0oTCgxNTQzOSkpfSw0ODA5MzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInZpIix7bW9udGhzOiJ0aFx4ZTFuZyAxX3RoXHhlMW5nIDJfdGhceGUxbmcgM190aFx4ZTFuZyA0X3RoXHhlMW5n''@;'; put 'put ''IDVfdGhceGUxbmcgNl90aFx4ZTFuZyA3X3RoXHhlMW5nIDhfdGhceGUxbmcgOV90aFx4ZTFuZyAxMF90aFx4ZTFuZyAxMV90aFx4ZTFuZyAxMiIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiVGhnIDAxX1RoZyAwMl9UaGcgMDNfVGhnIDA0X1RoZyAwNV9UaGcgMDZfVGhnIDA3X1RoZyAwOF9U''@;'; put 'put ''aGcgMDlfVGhnIDEwX1RoZyAxMV9UaGcgMTIiLnNwbGl0KCJfIiksbW9udGhzUGFyc2VFeGFjdDohMCx3ZWVrZGF5czoiY2hcdTFlZTcgbmhcdTFlYWR0X3RoXHUxZWU5IGhhaV90aFx1MWVlOSBiYV90aFx1MWVlOSB0XHUwMWIwX3RoXHUxZWU5IG5cdTAxMDNtX3RoXHUxZWU5IHNceGUxdV90''@;'; put 'put ''aFx1MWVlOSBiXHUxZWEzeSIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJDTl9UMl9UM19UNF9UNV9UNl9UNyIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoiQ05fVDJfVDNfVDRfVDVfVDZfVDciLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4YWN0OiEwLG1lcmlkaWVtUGFyc2U6L3NhfGNo''@;'; put 'put ''L2ksaXNQTTpmdW5jdGlvbihFKXtyZXR1cm4vXmNoJC9pLnRlc3QoRSl9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEU8MTI/VT8ic2EiOiJTQSI6VT8iY2giOiJDSCJ9LGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExM''@;'; put 'put ''OiJEIE1NTU0gW25cdTAxMDNtXSBZWVlZIixMTEw6IkQgTU1NTSBbblx1MDEwM21dIFlZWVkgSEg6bW0iLExMTEw6ImRkZGQsIEQgTU1NTSBbblx1MDEwM21dIFlZWVkgSEg6bW0iLGw6IkREL00vWVlZWSIsbGw6IkQgTU1NIFlZWVkiLGxsbDoiRCBNTU0gWVlZWSBISDptbSIsbGxsbDoiZGRk''@;'; put 'put ''LCBEIE1NTSBZWVlZIEhIOm1tIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltIXHhmNG0gbmF5IGxceGZhY10gTFQiLG5leHREYXk6IltOZ1x4ZTB5IG1haSBsXHhmYWNdIExUIixuZXh0V2VlazoiZGRkZCBbdHVcdTFlYTduIHRcdTFlZGJpIGxceGZhY10gTFQiLGxhc3REYXk6IltIXHhmNG0gcXVh''@;'; put 'put ''IGxceGZhY10gTFQiLGxhc3RXZWVrOiJkZGRkIFt0dVx1MWVhN24gdHJcdTAxYjBcdTFlZGJjIGxceGZhY10gTFQiLHNhbWVFbHNlOiJMIn0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzIHRcdTFlZGJpIixwYXN0OiIlcyB0clx1MDFiMFx1MWVkYmMiLHM6InZceGUwaSBnaVx4ZTJ5Iixzczoi''@;'; put 'put ''JWQgZ2lceGUyeSIsbToibVx1MWVkOXQgcGhceGZhdCIsbW06IiVkIHBoXHhmYXQiLGg6Im1cdTFlZDl0IGdpXHUxZWRkIixoaDoiJWQgZ2lcdTFlZGQiLGQ6Im1cdTFlZDl0IG5nXHhlMHkiLGRkOiIlZCBuZ1x4ZTB5Iix3OiJtXHUxZWQ5dCB0dVx1MWVhN24iLHd3OiIlZCB0dVx1MWVhN24i''@;'; put 'put ''LE06Im1cdTFlZDl0IHRoXHhlMW5nIixNTToiJWQgdGhceGUxbmciLHk6Im1cdTFlZDl0IG5cdTAxMDNtIix5eToiJWQgblx1MDEwM20ifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOi9cZHsxLDJ9LyxvcmRpbmFsOmZ1bmN0aW9uKEUpe3JldHVybiBFfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0o''@;'; put 'put ''TCgxNTQzOSkpfSwyNTU5MDpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoIngtcHNldWRvIix7bW9udGhzOiJKflx4ZTFceGYxXHhmYVx4ZTF+clx4ZmRfRn5ceGU5YnJceGZhflx4ZTFyXHhmZF9+TVx4ZTFyY35oX1x4YzFwfnJc''@;'; put 'put ''eGVkbF9+TVx4ZTFceGZkX35KXHhmYVx4ZjFceGU5fl9KXHhmYWx+XHhmZF9ceGMxXHhmYX5nXHhmYXN0fl9TXHhlOXB+dFx4ZTltYn5ceGU5cl9ceGQzfmN0XHhmM2J+XHhlOXJfXHhkMX5ceGYzdlx4ZTltfmJceGU5cl9+RFx4ZTljXHhlOX5tYlx4ZTlyIi5zcGxpdCgiXyIpLG1vbnRoc1No''@;'; put 'put ''b3J0OiJKflx4ZTFceGYxX35GXHhlOWJffk1ceGUxcl9+XHhjMXByX35NXHhlMVx4ZmRffkpceGZhXHhmMV9+Slx4ZmFsX35ceGMxXHhmYWdfflNceGU5cF9+XHhkM2N0X35ceGQxXHhmM3ZffkRceGU5YyIuc3BsaXQoIl8iKSxtb250aHNQYXJzZUV4YWN0OiEwLHdlZWtkYXlzOiJTflx4ZmFc''@;'; put 'put ''eGYxZFx4ZTF+XHhmZF9NXHhmM35ceGYxZFx4ZTFceGZkfl9UXHhmYVx4ZTl+c2RceGUxXHhmZH5fV1x4ZTlkflx4ZjFceGU5c2R+XHhlMVx4ZmRfVH5oXHhmYXJzfmRceGUxXHhmZF9+RnJceGVkZH5ceGUxXHhmZF9Tflx4ZTF0XHhmYXJ+ZFx4ZTFceGZkIi5zcGxpdCgiXyIpLHdlZWtkYXlz''@;'; put 'put ''U2hvcnQ6IlN+XHhmYVx4ZjFffk1ceGYzXHhmMV9+VFx4ZmFceGU5X35XXHhlOWRfflRoXHhmYV9+RnJceGVkX35TXHhlMXQiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IlN+XHhmYV9NXHhmM35fVFx4ZmFffldceGU5X1R+aF9Gcn5fU1x4ZTEiLnNwbGl0KCJfIiksd2Vla2RheXNQYXJzZUV4''@;'; put 'put ''YWN0OiEwLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLEw6IkREL01NL1lZWVkiLExMOiJEIE1NTU0gWVlZWSIsTExMOiJEIE1NTU0gWVlZWSBISDptbSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgSEg6bW0ifSxjYWxlbmRhcjp7c2FtZURheToiW1R+XHhmM2RceGUxflx4ZmQgXHhlMXRd''@;'; put 'put ''IExUIixuZXh0RGF5OiJbVH5ceGYzbVx4ZjN+cnJceGYzfncgXHhlMXRdIExUIixuZXh0V2VlazoiZGRkZCBbXHhlMXRdIExUIixsYXN0RGF5OiJbXHhkZH5ceGU5c3R+XHhlOXJkXHhlMX5ceGZkIFx4ZTF0XSBMVCIsbGFzdFdlZWs6IltMflx4ZTFzdF0gZGRkZCBbXHhlMXRdIExUIixzYW1l''@;'; put 'put ''RWxzZToiTCJ9LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiJceGVkflx4ZjEgJXMiLHBhc3Q6IiVzIFx4ZTF+Z1x4ZjMiLHM6Ilx4ZTEgfmZceGU5dyB+c1x4ZTljXHhmM35ceGYxZHMiLHNzOiIlZCBzflx4ZTljXHhmM1x4ZjF+ZHMiLG06Ilx4ZTEgfm1ceGVkXHhmMX5ceGZhdFx4ZTkiLG1tOiIl''@;'; put 'put ''ZCBtflx4ZWRceGYxXHhmYX50XHhlOXMiLGg6Ilx4ZTF+XHhmMSBoXHhmM35ceGZhciIsaGg6IiVkIGh+XHhmM1x4ZmFycyIsZDoiXHhlMSB+ZFx4ZTFceGZkIixkZDoiJWQgZH5ceGUxXHhmZHMiLE06Ilx4ZTEgfm1ceGYzXHhmMX50aCIsTU06IiVkIG1+XHhmM1x4ZjF0fmhzIix5OiJceGUx''@;'; put 'put ''IH5ceGZkXHhlOVx4ZTFyIix5eToiJWQgXHhmZH5ceGU5XHhlMXJzIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfSh0aHxzdHxuZHxyZCkvLG9yZGluYWw6ZnVuY3Rpb24oRSl7dmFyIEVlPUUlMTA7cmV0dXJuIEUrKDE9PX5+KEUlMTAwLzEwKT8idGgiOjE9PT1FZT8ic3QiOjI9''@;'; put 'put ''PT1FZT8ibmQiOjM9PT1FZT8icmQiOiJ0aCIpfSx3ZWVrOntkb3c6MSxkb3k6NH19KX0oTCgxNTQzOSkpfSw5MDU4OmZ1bmN0aW9uKFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgieW8iLHttb250aHM6IlNcdTFlYjlcdTAzMDFyXHUxZWI5XHUw''@;'; put 'put ''MzAxX0VcdTAzMDByZVx1MDMwMGxlXHUwMzAwX1x1MWViOHJcdTFlYjlcdTAzMDBuYVx1MDMwMF9JXHUwMzAwZ2JlXHUwMzAxX0VcdTAzMDBiaWJpX09cdTAzMDBrdVx1MDMwMGR1X0FnXHUxZWI5bW9fT1x1MDMwMGd1XHUwMzAxbl9Pd2V3ZV9cdTFlY2NcdTAzMDB3YVx1MDMwMHJhXHUwMzAw''@;'; put 'put ''X0JlXHUwMzAxbHVcdTAzMDFfXHUxZWNjXHUwMzAwcFx1MWViOVx1MDMwMFx1MDMwMCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiU1x1MWViOVx1MDMwMXJfRVx1MDMwMHJsX1x1MWViOHJuX0lcdTAzMDBnYl9FXHUwMzAwYmlfT1x1MDMwMGt1XHUwMzAwX0FnXHUxZWI5X09cdTAzMDBndVx1''@;'; put 'put ''MDMwMV9Pd2VfXHUxZWNjXHUwMzAwd2FcdTAzMDBfQmVcdTAzMDFsX1x1MWVjY1x1MDMwMHBcdTFlYjlcdTAzMDBcdTAzMDAiLnNwbGl0KCJfIiksd2Vla2RheXM6IkFcdTAzMDBpXHUwMzAwa3VcdTAzMDFfQWplXHUwMzAxX0lcdTAzMDBzXHUxZWI5XHUwMzAxZ3VuX1x1MWVjY2pcdTFlY2Rc''@;'; put 'put ''dTAzMDFydVx1MDMwMV9cdTFlY2NqXHUxZWNkXHUwMzAxYlx1MWVjZF9cdTFlYjh0aVx1MDMwMF9BXHUwMzAwYmFcdTAzMDFtXHUxZWI5XHUwMzAxdGEiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiQVx1MDMwMGlcdTAzMDBrX0FqZVx1MDMwMV9JXHUwMzAwc1x1MWViOVx1MDMwMV9cdTFl''@;'; put 'put ''Y2Nqcl9cdTFlY2NqYl9cdTFlYjh0aVx1MDMwMF9BXHUwMzAwYmFcdTAzMDEiLnNwbGl0KCJfIiksd2Vla2RheXNNaW46IkFcdTAzMDBpXHUwMzAwX0FqX0lcdTAzMDBzX1x1MWVjY3JfXHUxZWNjYl9cdTFlYjh0X0FcdTAzMDBiIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiaDpt''@;'; put 'put ''bSBBIixMVFM6Img6bW06c3MgQSIsTDoiREQvTU0vWVlZWSIsTEw6IkQgTU1NTSBZWVlZIixMTEw6IkQgTU1NTSBZWVlZIGg6bW0gQSIsTExMTDoiZGRkZCwgRCBNTU1NIFlZWVkgaDptbSBBIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltPXHUwMzAwbmlcdTAzMDAgbmldIExUIixuZXh0RGF5OiJb''@;'; put 'put ''XHUxZWNjXHUwMzAwbGEgbmldIExUIixuZXh0V2VlazoiZGRkZCBbXHUxZWNjc1x1MWViOVx1MDMwMCB0b1x1MDMwMW4nYlx1MWVjZF0gW25pXSBMVCIsbGFzdERheToiW0FcdTAzMDBuYSBuaV0gTFQiLGxhc3RXZWVrOiJkZGRkIFtcdTFlY2NzXHUxZWI5XHUwMzAwIHRvXHUwMzAxbFx1MWVj''@;'; put 'put ''ZFx1MDMwMV0gW25pXSBMVCIsc2FtZUVsc2U6IkwifSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToibmlcdTAzMDEgJXMiLHBhc3Q6IiVzIGtcdTFlY2RqYVx1MDMwMSIsczoiaVx1MDMwMHNcdTFlYjlqdVx1MDMwMSBhYXlhXHUwMzAxIGRpZSIsc3M6ImFheWFcdTAzMDEgJWQiLG06ImlcdTAzMDBz''@;'; put 'put ''XHUxZWI5anVcdTAzMDEga2FuIixtbToiaVx1MDMwMHNcdTFlYjlqdVx1MDMwMSAlZCIsaDoid2FcdTAzMDFrYXRpIGthbiIsaGg6IndhXHUwMzAxa2F0aSAlZCIsZDoiXHUxZWNkalx1MWVjZFx1MDMwMSBrYW4iLGRkOiJcdTFlY2RqXHUxZWNkXHUwMzAxICVkIixNOiJvc3VcdTAzMDAga2Fu''@;'; put 'put ''IixNTToib3N1XHUwMzAwICVkIix5OiJcdTFlY2RkdVx1MDMwMW4ga2FuIix5eToiXHUxZWNkZHVcdTAzMDFuICVkIn0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXHUxZWNkalx1MWVjZFx1MDMwMVxzXGR7MSwyfS8sb3JkaW5hbDoiXHUxZWNkalx1MWVjZFx1MDMwMSAlZCIsd2Vlazp7ZG93''@;'; put 'put ''OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0sNzc5MDg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ6aC1jbiIse21vbnRoczoiXHU0ZTAwXHU2NzA4X1x1NGU4Y1x1NjcwOF9cdTRlMDlcdTY3MDhfXHU1NmRiXHU2NzA4X1x1NGU5''@;'; put 'put ''NFx1NjcwOF9cdTUxNmRcdTY3MDhfXHU0ZTAzXHU2NzA4X1x1NTE2Ylx1NjcwOF9cdTRlNWRcdTY3MDhfXHU1MzQxXHU2NzA4X1x1NTM0MVx1NGUwMFx1NjcwOF9cdTUzNDFcdTRlOGNcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3''@;'; put 'put ''MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY2MWZcdTY3MWZcdTY1ZTVfXHU2NjFmXHU2NzFmXHU0ZTAwX1x1NjYxZlx1NjcxZlx1NGU4Y19cdTY2MWZcdTY3MWZcdTRl''@;'; put 'put ''MDlfXHU2NjFmXHU2NzFmXHU1NmRiX1x1NjYxZlx1NjcxZlx1NGU5NF9cdTY2MWZcdTY3MWZcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHU1NDY4XHU2NWU1X1x1NTQ2OFx1NGUwMF9cdTU0NjhcdTRlOGNfXHU1NDY4XHU0ZTA5X1x1NTQ2OFx1NTZkYl9cdTU0NjhcdTRlOTRf''@;'; put 'put ''XHU1NDY4XHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU0ZTAwX1x1NGU4Y19cdTRlMDlfXHU1NmRiX1x1NGU5NF9cdTUxNmQiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlc''@;'; put 'put ''dTVlNzRNXHU2NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVBaFx1NzBiOW1tXHU1MjA2IixMTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkQWhcdTcwYjltbVx1NTIwNiIsbDoiWVlZWS9NL0QiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxs''@;'; put 'put ''bDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHU1MWNjXHU2NjY4fFx1NjVlOVx1NGUwYXxcdTRlMGFcdTUzNDh8XHU0ZTJkXHU1MzQ4fFx1NGUwYlx1NTM0OHxcdTY2NWFc''@;'; put 'put ''dTRlMGEvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLEVlKXtyZXR1cm4gMTI9PT1FJiYoRT0wKSwiXHU1MWNjXHU2NjY4Ij09PUVlfHwiXHU2NWU5XHU0ZTBhIj09PUVlfHwiXHU0ZTBhXHU1MzQ4Ij09PUVlP0U6Ilx1NGUwYlx1NTM0OCI9PT1FZXx8Ilx1NjY1YVx1NGUwYSI9PT1FZT9FKzEy''@;'; put 'put ''OkU+PTExP0U6RSsxMn0sbWVyaWRpZW06ZnVuY3Rpb24oRSxFZSxVKXt2YXIgUT0xMDAqRStFZTtyZXR1cm4gUTw2MDA/Ilx1NTFjY1x1NjY2OCI6UTw5MDA/Ilx1NjVlOVx1NGUwYSI6UTwxMTMwPyJcdTRlMGFcdTUzNDgiOlE8MTIzMD8iXHU0ZTJkXHU1MzQ4IjpRPDE4MDA/Ilx1NGUwYlx1''@;'; put 'put ''NTM0OCI6Ilx1NjY1YVx1NGUwYSJ9LGNhbGVuZGFyOntzYW1lRGF5OiJbXHU0ZWNhXHU1OTI5XUxUIixuZXh0RGF5OiJbXHU2NjBlXHU1OTI5XUxUIixuZXh0V2VlazpmdW5jdGlvbihFKXtyZXR1cm4gRS53ZWVrKCkhPT10aGlzLndlZWsoKT8iW1x1NGUwYl1kZGRMVCI6IltcdTY3MmNdZGRk''@;'; put 'put ''TFQifSxsYXN0RGF5OiJbXHU2NjI4XHU1OTI5XUxUIixsYXN0V2VlazpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy53ZWVrKCkhPT1FLndlZWsoKT8iW1x1NGUwYV1kZGRMVCI6IltcdTY3MmNdZGRkTFQifSxzYW1lRWxzZToiTCJ9LGRheU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHU2''@;'; put 'put ''NWU1fFx1NjcwOHxcdTU0NjgpLyxvcmRpbmFsOmZ1bmN0aW9uKEUsRWUpe3N3aXRjaChFZSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRSsiXHU2NWU1IjtjYXNlIk0iOnJldHVybiBFKyJcdTY3MDgiO2Nhc2UidyI6Y2FzZSJXIjpyZXR1cm4gRSsiXHU1NDY4IjtkZWZhdWx0''@;'; put 'put ''OnJldHVybiBFfX0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHU1NDBlIixwYXN0OiIlc1x1NTI0ZCIsczoiXHU1MWUwXHU3OWQyIixzczoiJWQgXHU3OWQyIixtOiIxIFx1NTIwNlx1OTQ5ZiIsbW06IiVkIFx1NTIwNlx1OTQ5ZiIsaDoiMSBcdTVjMGZcdTY1ZjYiLGhoOiIlZCBcdTVjMGZc''@;'; put 'put ''dTY1ZjYiLGQ6IjEgXHU1OTI5IixkZDoiJWQgXHU1OTI5Iix3OiIxIFx1NTQ2OCIsd3c6IiVkIFx1NTQ2OCIsTToiMSBcdTRlMmFcdTY3MDgiLE1NOiIlZCBcdTRlMmFcdTY3MDgiLHk6IjEgXHU1ZTc0Iix5eToiJWQgXHU1ZTc0In0sd2Vlazp7ZG93OjEsZG95OjR9fSl9KEwoMTU0MzkpKX0s''@;'; put 'put ''ODg2NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjttZS5kZWZpbmVMb2NhbGUoInpoLWhrIix7bW9udGhzOiJcdTRlMDBcdTY3MDhfXHU0ZThjXHU2NzA4X1x1NGUwOVx1NjcwOF9cdTU2ZGJcdTY3MDhfXHU0ZTk0XHU2NzA4X1x1NTE2ZFx1NjcwOF9cdTRl''@;'; put 'put ''MDNcdTY3MDhfXHU1MTZiXHU2NzA4X1x1NGU1ZFx1NjcwOF9cdTUzNDFcdTY3MDhfXHU1MzQxXHU0ZTAwXHU2NzA4X1x1NTM0MVx1NGU4Y1x1NjcwOCIuc3BsaXQoIl8iKSxtb250aHNTaG9ydDoiMVx1NjcwOF8yXHU2NzA4XzNcdTY3MDhfNFx1NjcwOF81XHU2NzA4XzZcdTY3MDhfN1x1Njcw''@;'; put 'put ''OF84XHU2NzA4XzlcdTY3MDhfMTBcdTY3MDhfMTFcdTY3MDhfMTJcdTY3MDgiLnNwbGl0KCJfIiksd2Vla2RheXM6Ilx1NjYxZlx1NjcxZlx1NjVlNV9cdTY2MWZcdTY3MWZcdTRlMDBfXHU2NjFmXHU2NzFmXHU0ZThjX1x1NjYxZlx1NjcxZlx1NGUwOV9cdTY2MWZcdTY3MWZcdTU2ZGJfXHU2''@;'; put 'put ''NjFmXHU2NzFmXHU0ZTk0X1x1NjYxZlx1NjcxZlx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c1Nob3J0OiJcdTkwMzFcdTY1ZTVfXHU5MDMxXHU0ZTAwX1x1OTAzMVx1NGU4Y19cdTkwMzFcdTRlMDlfXHU5MDMxXHU1NmRiX1x1OTAzMVx1NGU5NF9cdTkwMzFcdTUxNmQiLnNwbGl0KCJfIiks''@;'; put 'put ''d2Vla2RheXNNaW46Ilx1NjVlNV9cdTRlMDBfXHU0ZThjX1x1NGUwOV9cdTU2ZGJfXHU0ZTk0X1x1NTE2ZCIuc3BsaXQoIl8iKSxsb25nRGF0ZUZvcm1hdDp7TFQ6IkhIOm1tIixMVFM6IkhIOm1tOnNzIixMOiJZWVlZL01NL0REIixMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixMTEw6''@;'; put 'put ''IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsTExMTDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRkZCBISDptbSIsbDoiWVlZWS9NL0QiLGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IEhIOm1tIixsbGxsOiJZWVlZ''@;'; put 'put ''XHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIn0sbWVyaWRpZW1QYXJzZTovXHU1MWNjXHU2NjY4fFx1NjVlOVx1NGUwYXxcdTRlMGFcdTUzNDh8XHU0ZTJkXHU1MzQ4fFx1NGUwYlx1NTM0OHxcdTY2NWFcdTRlMGEvLG1lcmlkaWVtSG91cjpmdW5jdGlvbihFLEVlKXtyZXR1cm4gMTI9''@;'; put 'put ''PT1FJiYoRT0wKSwiXHU1MWNjXHU2NjY4Ij09PUVlfHwiXHU2NWU5XHU0ZTBhIj09PUVlfHwiXHU0ZTBhXHU1MzQ4Ij09PUVlP0U6Ilx1NGUyZFx1NTM0OCI9PT1FZT9FPj0xMT9FOkUrMTI6Ilx1NGUwYlx1NTM0OCI9PT1FZXx8Ilx1NjY1YVx1NGUwYSI9PT1FZT9FKzEyOnZvaWQgMH0sbWVy''@;'; put 'put ''aWRpZW06ZnVuY3Rpb24oRSxFZSxVKXt2YXIgUT0xMDAqRStFZTtyZXR1cm4gUTw2MDA/Ilx1NTFjY1x1NjY2OCI6UTw5MDA/Ilx1NjVlOVx1NGUwYSI6UTwxMjAwPyJcdTRlMGFcdTUzNDgiOjEyMDA9PT1RPyJcdTRlMmRcdTUzNDgiOlE8MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0''@;'; put 'put ''ZTBhIn0sY2FsZW5kYXI6e3NhbWVEYXk6IltcdTRlY2FcdTU5MjldTFQiLG5leHREYXk6IltcdTY2MGVcdTU5MjldTFQiLG5leHRXZWVrOiJbXHU0ZTBiXWRkZGRMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV1MVCIsbGFzdFdlZWs6IltcdTRlMGFdZGRkZExUIixzYW1lRWxzZToiTCJ9LGRh''@;'; put 'put ''eU9mTW9udGhPcmRpbmFsUGFyc2U6L1xkezEsMn0oXHU2NWU1fFx1NjcwOHxcdTkwMzEpLyxvcmRpbmFsOmZ1bmN0aW9uKEUsRWUpe3N3aXRjaChFZSl7Y2FzZSJkIjpjYXNlIkQiOmNhc2UiREREIjpyZXR1cm4gRSsiXHU2NWU1IjtjYXNlIk0iOnJldHVybiBFKyJcdTY3MDgiO2Nhc2UidyI6''@;'; put 'put ''Y2FzZSJXIjpyZXR1cm4gRSsiXHU5MDMxIjtkZWZhdWx0OnJldHVybiBFfX0scmVsYXRpdmVUaW1lOntmdXR1cmU6IiVzXHU1ZjhjIixwYXN0OiIlc1x1NTI0ZCIsczoiXHU1ZTdlXHU3OWQyIixzczoiJWQgXHU3OWQyIixtOiIxIFx1NTIwNlx1OTQxOCIsbW06IiVkIFx1NTIwNlx1OTQxOCIs''@;'; put 'put ''aDoiMSBcdTVjMGZcdTY2NDIiLGhoOiIlZCBcdTVjMGZcdTY2NDIiLGQ6IjEgXHU1OTI5IixkZDoiJWQgXHU1OTI5IixNOiIxIFx1NTAwYlx1NjcwOCIsTU06IiVkIFx1NTAwYlx1NjcwOCIseToiMSBcdTVlNzQiLHl5OiIlZCBcdTVlNzQifX0pfShMKDE1NDM5KSl9LDMxMTMzOmZ1bmN0aW9u''@;'; put 'put ''KFhlLEplLEwpeyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmRlZmluZUxvY2FsZSgiemgtbW8iLHttb250aHM6Ilx1NGUwMFx1NjcwOF9cdTRlOGNcdTY3MDhfXHU0ZTA5XHU2NzA4X1x1NTZkYlx1NjcwOF9cdTRlOTRcdTY3MDhfXHU1MTZkXHU2NzA4X1x1NGUwM1x1NjcwOF9cdTUx''@;'; put 'put ''NmJcdTY3MDhfXHU0ZTVkXHU2NzA4X1x1NTM0MVx1NjcwOF9cdTUzNDFcdTRlMDBcdTY3MDhfXHU1MzQxXHU0ZThjXHU2NzA4Ii5zcGxpdCgiXyIpLG1vbnRoc1Nob3J0OiIxXHU2NzA4XzJcdTY3MDhfM1x1NjcwOF80XHU2NzA4XzVcdTY3MDhfNlx1NjcwOF83XHU2NzA4XzhcdTY3MDhfOVx1''@;'; put 'put ''NjcwOF8xMFx1NjcwOF8xMVx1NjcwOF8xMlx1NjcwOCIuc3BsaXQoIl8iKSx3ZWVrZGF5czoiXHU2NjFmXHU2NzFmXHU2NWU1X1x1NjYxZlx1NjcxZlx1NGUwMF9cdTY2MWZcdTY3MWZcdTRlOGNfXHU2NjFmXHU2NzFmXHU0ZTA5X1x1NjYxZlx1NjcxZlx1NTZkYl9cdTY2MWZcdTY3MWZcdTRl''@;'; put 'put ''OTRfXHU2NjFmXHU2NzFmXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzU2hvcnQ6Ilx1OTAzMVx1NjVlNV9cdTkwMzFcdTRlMDBfXHU5MDMxXHU0ZThjX1x1OTAzMVx1NGUwOV9cdTkwMzFcdTU2ZGJfXHU5MDMxXHU0ZTk0X1x1OTAzMVx1NTE2ZCIuc3BsaXQoIl8iKSx3ZWVrZGF5c01pbjoi''@;'; put 'put ''XHU2NWU1X1x1NGUwMF9cdTRlOGNfXHU0ZTA5X1x1NTZkYl9cdTRlOTRfXHU1MTZkIi5zcGxpdCgiXyIpLGxvbmdEYXRlRm9ybWF0OntMVDoiSEg6bW0iLExUUzoiSEg6bW06c3MiLEw6IkREL01NL1lZWVkiLExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUiLExMTDoiWVlZWVx1NWU3NE1c''@;'; put 'put ''dTY3MDhEXHU2NWU1IEhIOm1tIixMTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTVkZGRkIEhIOm1tIixsOiJEL00vWVlZWSIsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsbGxsOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1ZTUgSEg6bW0iLGxsbGw6IllZWVlcdTVlNzRNXHU2NzA4''@;'; put 'put ''RFx1NjVlNWRkZGQgSEg6bW0ifSxtZXJpZGllbVBhcnNlOi9cdTUxY2NcdTY2Njh8XHU2NWU5XHU0ZTBhfFx1NGUwYVx1NTM0OHxcdTRlMmRcdTUzNDh8XHU0ZTBiXHU1MzQ4fFx1NjY1YVx1NGUwYS8sbWVyaWRpZW1Ib3VyOmZ1bmN0aW9uKEUsRWUpe3JldHVybiAxMj09PUUmJihFPTApLCJc''@;'; put 'put ''dTUxY2NcdTY2NjgiPT09RWV8fCJcdTY1ZTlcdTRlMGEiPT09RWV8fCJcdTRlMGFcdTUzNDgiPT09RWU/RToiXHU0ZTJkXHU1MzQ4Ij09PUVlP0U+PTExP0U6RSsxMjoiXHU0ZTBiXHU1MzQ4Ij09PUVlfHwiXHU2NjVhXHU0ZTBhIj09PUVlP0UrMTI6dm9pZCAwfSxtZXJpZGllbTpmdW5jdGlv''@;'; put 'put ''bihFLEVlLFUpe3ZhciBRPTEwMCpFK0VlO3JldHVybiBRPDYwMD8iXHU1MWNjXHU2NjY4IjpRPDkwMD8iXHU2NWU5XHU0ZTBhIjpRPDExMzA/Ilx1NGUwYVx1NTM0OCI6UTwxMjMwPyJcdTRlMmRcdTUzNDgiOlE8MTgwMD8iXHU0ZTBiXHU1MzQ4IjoiXHU2NjVhXHU0ZTBhIn0sY2FsZW5kYXI6''@;'; put 'put ''e3NhbWVEYXk6IltcdTRlY2FcdTU5MjldIExUIixuZXh0RGF5OiJbXHU2NjBlXHU1OTI5XSBMVCIsbmV4dFdlZWs6IltcdTRlMGJdZGRkZCBMVCIsbGFzdERheToiW1x1NjYyOFx1NTkyOV0gTFQiLGxhc3RXZWVrOiJbXHU0ZTBhXWRkZGQgTFQiLHNhbWVFbHNlOiJMIn0sZGF5T2ZNb250aE9y''@;'; put 'put ''ZGluYWxQYXJzZTovXGR7MSwyfShcdTY1ZTV8XHU2NzA4fFx1OTAzMSkvLG9yZGluYWw6ZnVuY3Rpb24oRSxFZSl7c3dpdGNoKEVlKXtjYXNlImQiOmNhc2UiRCI6Y2FzZSJEREQiOnJldHVybiBFKyJcdTY1ZTUiO2Nhc2UiTSI6cmV0dXJuIEUrIlx1NjcwOCI7Y2FzZSJ3IjpjYXNlIlciOnJl''@;'; put 'put ''dHVybiBFKyJcdTkwMzEiO2RlZmF1bHQ6cmV0dXJuIEV9fSxyZWxhdGl2ZVRpbWU6e2Z1dHVyZToiJXNcdTUxNjciLHBhc3Q6IiVzXHU1MjRkIixzOiJcdTVlN2VcdTc5ZDIiLHNzOiIlZCBcdTc5ZDIiLG06IjEgXHU1MjA2XHU5NDE4IixtbToiJWQgXHU1MjA2XHU5NDE4IixoOiIxIFx1NWMw''@;'; put 'put ''Zlx1NjY0MiIsaGg6IiVkIFx1NWMwZlx1NjY0MiIsZDoiMSBcdTU5MjkiLGRkOiIlZCBcdTU5MjkiLE06IjEgXHU1MDBiXHU2NzA4IixNTToiJWQgXHU1MDBiXHU2NzA4Iix5OiIxIFx1NWU3NCIseXk6IiVkIFx1NWU3NCJ9fSl9KEwoMTU0MzkpKX0sODMyOTE6ZnVuY3Rpb24oWGUsSmUsTCl7''@;'; put 'put ''IWZ1bmN0aW9uKG1lKXsidXNlIHN0cmljdCI7bWUuZGVmaW5lTG9jYWxlKCJ6aC10dyIse21vbnRoczoiXHU0ZTAwXHU2NzA4X1x1NGU4Y1x1NjcwOF9cdTRlMDlcdTY3MDhfXHU1NmRiXHU2NzA4X1x1NGU5NFx1NjcwOF9cdTUxNmRcdTY3MDhfXHU0ZTAzXHU2NzA4X1x1NTE2Ylx1NjcwOF9c''@;'; put 'put ''dTRlNWRcdTY3MDhfXHU1MzQxXHU2NzA4X1x1NTM0MVx1NGUwMFx1NjcwOF9cdTUzNDFcdTRlOGNcdTY3MDgiLnNwbGl0KCJfIiksbW9udGhzU2hvcnQ6IjFcdTY3MDhfMlx1NjcwOF8zXHU2NzA4XzRcdTY3MDhfNVx1NjcwOF82XHU2NzA4XzdcdTY3MDhfOFx1NjcwOF85XHU2NzA4XzEwXHU2''@;'; put 'put ''NzA4XzExXHU2NzA4XzEyXHU2NzA4Ii5zcGxpdCgiXyIpLHdlZWtkYXlzOiJcdTY2MWZcdTY3MWZcdTY1ZTVfXHU2NjFmXHU2NzFmXHU0ZTAwX1x1NjYxZlx1NjcxZlx1NGU4Y19cdTY2MWZcdTY3MWZcdTRlMDlfXHU2NjFmXHU2NzFmXHU1NmRiX1x1NjYxZlx1NjcxZlx1NGU5NF9cdTY2MWZc''@;'; put 'put ''dTY3MWZcdTUxNmQiLnNwbGl0KCJfIiksd2Vla2RheXNTaG9ydDoiXHU5MDMxXHU2NWU1X1x1OTAzMVx1NGUwMF9cdTkwMzFcdTRlOGNfXHU5MDMxXHU0ZTA5X1x1OTAzMVx1NTZkYl9cdTkwMzFcdTRlOTRfXHU5MDMxXHU1MTZkIi5zcGxpdCgiXyIpLHdlZWtkYXlzTWluOiJcdTY1ZTVfXHU0''@;'; put 'put ''ZTAwX1x1NGU4Y19cdTRlMDlfXHU1NmRiX1x1NGU5NF9cdTUxNmQiLnNwbGl0KCJfIiksbG9uZ0RhdGVGb3JtYXQ6e0xUOiJISDptbSIsTFRTOiJISDptbTpzcyIsTDoiWVlZWS9NTS9ERCIsTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSIsTExMOiJZWVlZXHU1ZTc0TVx1NjcwOERcdTY1''@;'; put 'put ''ZTUgSEg6bW0iLExMTEw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNWRkZGQgSEg6bW0iLGw6IllZWVkvTS9EIixsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1IixsbGw6IllZWVlcdTVlNzRNXHU2NzA4RFx1NjVlNSBISDptbSIsbGxsbDoiWVlZWVx1NWU3NE1cdTY3MDhEXHU2NWU1ZGRk''@;'; put 'put ''ZCBISDptbSJ9LG1lcmlkaWVtUGFyc2U6L1x1NTFjY1x1NjY2OHxcdTY1ZTlcdTRlMGF8XHU0ZTBhXHU1MzQ4fFx1NGUyZFx1NTM0OHxcdTRlMGJcdTUzNDh8XHU2NjVhXHU0ZTBhLyxtZXJpZGllbUhvdXI6ZnVuY3Rpb24oRSxFZSl7cmV0dXJuIDEyPT09RSYmKEU9MCksIlx1NTFjY1x1NjY2''@;'; put 'put ''OCI9PT1FZXx8Ilx1NjVlOVx1NGUwYSI9PT1FZXx8Ilx1NGUwYVx1NTM0OCI9PT1FZT9FOiJcdTRlMmRcdTUzNDgiPT09RWU/RT49MTE/RTpFKzEyOiJcdTRlMGJcdTUzNDgiPT09RWV8fCJcdTY2NWFcdTRlMGEiPT09RWU/RSsxMjp2b2lkIDB9LG1lcmlkaWVtOmZ1bmN0aW9uKEUsRWUsVSl7''@;'; put 'put ''dmFyIFE9MTAwKkUrRWU7cmV0dXJuIFE8NjAwPyJcdTUxY2NcdTY2NjgiOlE8OTAwPyJcdTY1ZTlcdTRlMGEiOlE8MTEzMD8iXHU0ZTBhXHU1MzQ4IjpRPDEyMzA/Ilx1NGUyZFx1NTM0OCI6UTwxODAwPyJcdTRlMGJcdTUzNDgiOiJcdTY2NWFcdTRlMGEifSxjYWxlbmRhcjp7c2FtZURheToi''@;'; put 'put ''W1x1NGVjYVx1NTkyOV0gTFQiLG5leHREYXk6IltcdTY2MGVcdTU5MjldIExUIixuZXh0V2VlazoiW1x1NGUwYl1kZGRkIExUIixsYXN0RGF5OiJbXHU2NjI4XHU1OTI5XSBMVCIsbGFzdFdlZWs6IltcdTRlMGFdZGRkZCBMVCIsc2FtZUVsc2U6IkwifSxkYXlPZk1vbnRoT3JkaW5hbFBhcnNl''@;'; put 'put ''Oi9cZHsxLDJ9KFx1NjVlNXxcdTY3MDh8XHU5MDMxKS8sb3JkaW5hbDpmdW5jdGlvbihFLEVlKXtzd2l0Y2goRWUpe2Nhc2UiZCI6Y2FzZSJEIjpjYXNlIkRERCI6cmV0dXJuIEUrIlx1NjVlNSI7Y2FzZSJNIjpyZXR1cm4gRSsiXHU2NzA4IjtjYXNlInciOmNhc2UiVyI6cmV0dXJuIEUrIlx1''@;'; put 'put ''OTAzMSI7ZGVmYXVsdDpyZXR1cm4gRX19LHJlbGF0aXZlVGltZTp7ZnV0dXJlOiIlc1x1NWY4YyIscGFzdDoiJXNcdTUyNGQiLHM6Ilx1NWU3ZVx1NzlkMiIsc3M6IiVkIFx1NzlkMiIsbToiMSBcdTUyMDZcdTk0MTgiLG1tOiIlZCBcdTUyMDZcdTk0MTgiLGg6IjEgXHU1YzBmXHU2NjQyIixo''@;'; put 'put ''aDoiJWQgXHU1YzBmXHU2NjQyIixkOiIxIFx1NTkyOSIsZGQ6IiVkIFx1NTkyOSIsTToiMSBcdTUwMGJcdTY3MDgiLE1NOiIlZCBcdTUwMGJcdTY3MDgiLHk6IjEgXHU1ZTc0Iix5eToiJWQgXHU1ZTc0In19KX0oTCgxNTQzOSkpfSwxNTQzOTpmdW5jdGlvbihYZSxKZSxMKXsoWGU9TC5ubWQo''@;'; put 'put ''WGUpKS5leHBvcnRzPWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBtZSxzZTtmdW5jdGlvbiBCKCl7cmV0dXJuIG1lLmFwcGx5KG51bGwsYXJndW1lbnRzKX1mdW5jdGlvbiBFZSh6ZSl7cmV0dXJuIHplIGluc3RhbmNlb2YgQXJyYXl8fCJbb2JqZWN0IEFycmF5XSI9PT1PYmplY3QucHJv''@;'; put 'put ''dG90eXBlLnRvU3RyaW5nLmNhbGwoemUpfWZ1bmN0aW9uIFUoemUpe3JldHVybiBudWxsIT16ZSYmIltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoemUpfWZ1bmN0aW9uIFEoemUsVnQpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3Bl''@;'; put 'put ''cnR5LmNhbGwoemUsVnQpfWZ1bmN0aW9uIGooemUpe2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKXJldHVybiAwPT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoemUpLmxlbmd0aDt2YXIgVnQ7Zm9yKFZ0IGluIHplKWlmKFEoemUsVnQpKXJldHVybiExO3JldHVybiEwfWZ1bmN0''@;'; put 'put ''aW9uIHJlKHplKXtyZXR1cm4gdm9pZCAwPT09emV9ZnVuY3Rpb24gYWUoemUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgemV8fCJbb2JqZWN0IE51bWJlcl0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHplKX1mdW5jdGlvbiBZKHplKXtyZXR1cm4gemUgaW5zdGFuY2VvZiBE''@;'; put 'put ''YXRlfHwiW29iamVjdCBEYXRlXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoemUpfWZ1bmN0aW9uIFcoemUsVnQpe3ZhciBSbixobj1bXSx0cj16ZS5sZW5ndGg7Zm9yKFJuPTA7Um48dHI7KytSbilobi5wdXNoKFZ0KHplW1JuXSxSbikpO3JldHVybiBobn1mdW5jdGlvbiBO''@;'; put 'put ''KHplLFZ0KXtmb3IodmFyIGhuIGluIFZ0KVEoVnQsaG4pJiYoemVbaG5dPVZ0W2huXSk7cmV0dXJuIFEoVnQsInRvU3RyaW5nIikmJih6ZS50b1N0cmluZz1WdC50b1N0cmluZyksUShWdCwidmFsdWVPZiIpJiYoemUudmFsdWVPZj1WdC52YWx1ZU9mKSx6ZX1mdW5jdGlvbiB0ZSh6ZSxWdCxo''@;'; put 'put ''bixSbil7cmV0dXJuIEtvKHplLFZ0LGhuLFJuLCEwKS51dGMoKX1mdW5jdGlvbiBKKHplKXtyZXR1cm4gbnVsbD09emUuX3BmJiYoemUuX3BmPXtlbXB0eTohMSx1bnVzZWRUb2tlbnM6W10sdW51c2VkSW5wdXQ6W10sb3ZlcmZsb3c6LTIsY2hhcnNMZWZ0T3ZlcjowLG51bGxJbnB1dDohMSxp''@;'; put 'put ''bnZhbGlkRXJhOm51bGwsaW52YWxpZE1vbnRoOm51bGwsaW52YWxpZEZvcm1hdDohMSx1c2VySW52YWxpZGF0ZWQ6ITEsaXNvOiExLHBhcnNlZERhdGVQYXJ0czpbXSxlcmE6bnVsbCxtZXJpZGllbTpudWxsLHJmYzI4MjI6ITEsd2Vla2RheU1pc21hdGNoOiExfSksemUuX3BmfWZ1bmN0aW9u''@;'; put 'put ''IG9lKHplKXtpZihudWxsPT16ZS5faXNWYWxpZCl7dmFyIFZ0PUooemUpLGhuPXNlLmNhbGwoVnQucGFyc2VkRGF0ZVBhcnRzLGZ1bmN0aW9uKHRyKXtyZXR1cm4gbnVsbCE9dHJ9KSxSbj0haXNOYU4oemUuX2QuZ2V0VGltZSgpKSYmVnQub3ZlcmZsb3c8MCYmIVZ0LmVtcHR5JiYhVnQuaW52''@;'; put 'put ''YWxpZEVyYSYmIVZ0LmludmFsaWRNb250aCYmIVZ0LmludmFsaWRXZWVrZGF5JiYhVnQud2Vla2RheU1pc21hdGNoJiYhVnQubnVsbElucHV0JiYhVnQuaW52YWxpZEZvcm1hdCYmIVZ0LnVzZXJJbnZhbGlkYXRlZCYmKCFWdC5tZXJpZGllbXx8VnQubWVyaWRpZW0mJmhuKTtpZih6ZS5fc3Ry''@;'; put 'put ''aWN0JiYoUm49Um4mJjA9PT1WdC5jaGFyc0xlZnRPdmVyJiYwPT09VnQudW51c2VkVG9rZW5zLmxlbmd0aCYmdm9pZCAwPT09VnQuYmlnSG91ciksbnVsbCE9T2JqZWN0LmlzRnJvemVuJiZPYmplY3QuaXNGcm96ZW4oemUpKXJldHVybiBSbjt6ZS5faXNWYWxpZD1Sbn1yZXR1cm4gemUuX2lz''@;'; put 'put ''VmFsaWR9ZnVuY3Rpb24gY2UoemUpe3ZhciBWdD10ZShOYU4pO3JldHVybiBudWxsIT16ZT9OKEooVnQpLHplKTpKKFZ0KS51c2VySW52YWxpZGF0ZWQ9ITAsVnR9c2U9QXJyYXkucHJvdG90eXBlLnNvbWU/QXJyYXkucHJvdG90eXBlLnNvbWU6ZnVuY3Rpb24oemUpe3ZhciBSbixWdD1PYmpl''@;'; put 'put ''Y3QodGhpcyksaG49VnQubGVuZ3RoPj4+MDtmb3IoUm49MDtSbjxobjtSbisrKWlmKFJuIGluIFZ0JiZ6ZS5jYWxsKHRoaXMsVnRbUm5dLFJuLFZ0KSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIGRlPUIubW9tZW50UHJvcGVydGllcz1bXSx2ZT0hMTtmdW5jdGlvbiBBZSh6ZSxWdCl7dmFyIGhu''@;'; put 'put ''LFJuLHRyLGVpPWRlLmxlbmd0aDtpZihyZShWdC5faXNBTW9tZW50T2JqZWN0KXx8KHplLl9pc0FNb21lbnRPYmplY3Q9VnQuX2lzQU1vbWVudE9iamVjdCkscmUoVnQuX2kpfHwoemUuX2k9VnQuX2kpLHJlKFZ0Ll9mKXx8KHplLl9mPVZ0Ll9mKSxyZShWdC5fbCl8fCh6ZS5fbD1WdC5fbCks''@;'; put 'put ''cmUoVnQuX3N0cmljdCl8fCh6ZS5fc3RyaWN0PVZ0Ll9zdHJpY3QpLHJlKFZ0Ll90em0pfHwoemUuX3R6bT1WdC5fdHptKSxyZShWdC5faXNVVEMpfHwoemUuX2lzVVRDPVZ0Ll9pc1VUQykscmUoVnQuX29mZnNldCl8fCh6ZS5fb2Zmc2V0PVZ0Ll9vZmZzZXQpLHJlKFZ0Ll9wZil8fCh6ZS5f''@;'; put 'put ''cGY9SihWdCkpLHJlKFZ0Ll9sb2NhbGUpfHwoemUuX2xvY2FsZT1WdC5fbG9jYWxlKSxlaT4wKWZvcihobj0wO2huPGVpO2huKyspcmUodHI9VnRbUm49ZGVbaG5dXSl8fCh6ZVtSbl09dHIpO3JldHVybiB6ZX1mdW5jdGlvbiBrZSh6ZSl7QWUodGhpcyx6ZSksdGhpcy5fZD1uZXcgRGF0ZShu''@;'; put 'put ''dWxsIT16ZS5fZD96ZS5fZC5nZXRUaW1lKCk6TmFOKSx0aGlzLmlzVmFsaWQoKXx8KHRoaXMuX2Q9bmV3IERhdGUoTmFOKSksITE9PT12ZSYmKHZlPSEwLEIudXBkYXRlT2Zmc2V0KHRoaXMpLHZlPSExKX1mdW5jdGlvbiBTZSh6ZSl7cmV0dXJuIHplIGluc3RhbmNlb2Yga2V8fG51bGwhPXpl''@;'; put 'put ''JiZudWxsIT16ZS5faXNBTW9tZW50T2JqZWN0fWZ1bmN0aW9uIEllKHplKXshMT09PUIuc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzJiYidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKCJEZXByZWNhdGlvbiB3YXJuaW5nOiAiK3plKX1m''@;'; put 'put ''dW5jdGlvbiBUZSh6ZSxWdCl7dmFyIGhuPSEwO3JldHVybiBOKGZ1bmN0aW9uKCl7aWYobnVsbCE9Qi5kZXByZWNhdGlvbkhhbmRsZXImJkIuZGVwcmVjYXRpb25IYW5kbGVyKG51bGwsemUpLGhuKXt2YXIgdHIsZWksWWksUm49W10sZGE9YXJndW1lbnRzLmxlbmd0aDtmb3IoZWk9MDtlaTxk''@;'; put 'put ''YTtlaSsrKXtpZih0cj0iIiwib2JqZWN0Ij09dHlwZW9mIGFyZ3VtZW50c1tlaV0pe2ZvcihZaSBpbiB0cis9IlxuWyIrZWkrIl0gIixhcmd1bWVudHNbMF0pUShhcmd1bWVudHNbMF0sWWkpJiYodHIrPVlpKyI6ICIrYXJndW1lbnRzWzBdW1lpXSsiLCAiKTt0cj10ci5zbGljZSgwLC0yKX1l''@;'; put 'put ''bHNlIHRyPWFyZ3VtZW50c1tlaV07Um4ucHVzaCh0cil9SWUoemUrIlxuQXJndW1lbnRzOiAiK0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFJuKS5qb2luKCIiKSsiXG4iKyhuZXcgRXJyb3IpLnN0YWNrKSxobj0hMX1yZXR1cm4gVnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxWdCl9dmFy''@;'; put 'put ''IHgsTWU9e307ZnVuY3Rpb24gaGUoemUsVnQpe251bGwhPUIuZGVwcmVjYXRpb25IYW5kbGVyJiZCLmRlcHJlY2F0aW9uSGFuZGxlcih6ZSxWdCksTWVbemVdfHwoSWUoVnQpLE1lW3plXT0hMCl9ZnVuY3Rpb24gTyh6ZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBGdW5jdGlvbiYmemUg''@;'; put 'put ''aW5zdGFuY2VvZiBGdW5jdGlvbnx8IltvYmplY3QgRnVuY3Rpb25dIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh6ZSl9ZnVuY3Rpb24gZWUoemUsVnQpe3ZhciBSbixobj1OKHt9LHplKTtmb3IoUm4gaW4gVnQpUShWdCxSbikmJihVKHplW1JuXSkmJlUoVnRbUm5dKT8oaG5b''@;'; put 'put ''Um5dPXt9LE4oaG5bUm5dLHplW1JuXSksTihobltSbl0sVnRbUm5dKSk6bnVsbCE9VnRbUm5dP2huW1JuXT1WdFtSbl06ZGVsZXRlIGhuW1JuXSk7Zm9yKFJuIGluIHplKVEoemUsUm4pJiYhUShWdCxSbikmJlUoemVbUm5dKSYmKGhuW1JuXT1OKHt9LGhuW1JuXSkpO3JldHVybiBobn1mdW5j''@;'; put 'put ''dGlvbiBuZSh6ZSl7bnVsbCE9emUmJnRoaXMuc2V0KHplKX1CLnN1cHByZXNzRGVwcmVjYXRpb25XYXJuaW5ncz0hMSxCLmRlcHJlY2F0aW9uSGFuZGxlcj1udWxsLHg9T2JqZWN0LmtleXM/T2JqZWN0LmtleXM6ZnVuY3Rpb24oemUpe3ZhciBWdCxobj1bXTtmb3IoVnQgaW4gemUpUSh6ZSxW''@;'; put 'put ''dCkmJmhuLnB1c2goVnQpO3JldHVybiBobn07ZnVuY3Rpb24gVCh6ZSxWdCxobil7dmFyIFJuPSIiK01hdGguYWJzKHplKTtyZXR1cm4oemU+PTA/aG4/IisiOiIiOiItIikrTWF0aC5wb3coMTAsTWF0aC5tYXgoMCxWdC1Sbi5sZW5ndGgpKS50b1N0cmluZygpLnN1YnN0cigxKStSbn12YXIg''@;'; put 'put ''Uz0vKFxbW15cW10qXF0pfChcXCk/KFtIaF1tbShzcyk/fE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFFvP3xOezEsNX18WVlZWVlZfFlZWVlZfFlZWVl8WVl8eXsyLDR9fHlvP3xnZyhnZ2c/KT98R0coR0dHPyk/fGV8RXxhfEF8aGg/fEhI''@;'; put 'put ''P3xraz98bW0/fHNzP3xTezEsOX18eHxYfHp6P3xaWj98LikvZyxGPS8oXFtbXlxbXSpcXSl8KFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nLHllPXt9LENlPXt9O2Z1bmN0aW9uIERlKHplLFZ0LGhuLFJuKXt2YXIgdHI9Um47InN0cmluZyI9PXR5cGVvZiBSbiYmKHRyPWZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIHRoaXNbUm5dKCl9KSx6ZSYmKENlW3plXT10ciksVnQmJihDZVtWdFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gVCh0ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksVnRbMV0sVnRbMl0pfSksaG4mJihDZVtobl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkub3Jk''@;'; put 'put ''aW5hbCh0ci5hcHBseSh0aGlzLGFyZ3VtZW50cyksemUpfSl9ZnVuY3Rpb24gUGUoemUpe3JldHVybiB6ZS5tYXRjaCgvXFtbXHNcU10vKT96ZS5yZXBsYWNlKC9eXFt8XF0kL2csIiIpOnplLnJlcGxhY2UoL1xcL2csIiIpfWZ1bmN0aW9uICRlKHplLFZ0KXtyZXR1cm4gemUuaXNWYWxpZCgp''@;'; put 'put ''PyhWdD1ndChWdCx6ZS5sb2NhbGVEYXRhKCkpLHllW1Z0XT15ZVtWdF18fGZ1bmN0aW9uIFFlKHplKXt2YXIgaG4sUm4sVnQ9emUubWF0Y2goUyk7Zm9yKGhuPTAsUm49VnQubGVuZ3RoO2huPFJuO2huKyspVnRbaG5dPUNlW1Z0W2huXV0/Q2VbVnRbaG5dXTpQZShWdFtobl0pO3JldHVybiBm''@;'; put 'put ''dW5jdGlvbih0cil7dmFyIFlpLGVpPSIiO2ZvcihZaT0wO1lpPFJuO1lpKyspZWkrPU8oVnRbWWldKT9WdFtZaV0uY2FsbCh0cix6ZSk6VnRbWWldO3JldHVybiBlaX19KFZ0KSx5ZVtWdF0oemUpKTp6ZS5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX1mdW5jdGlvbiBndCh6ZSxWdCl7dmFy''@;'; put 'put ''IGhuPTU7ZnVuY3Rpb24gUm4odHIpe3JldHVybiBWdC5sb25nRGF0ZUZvcm1hdCh0cil8fHRyfWZvcihGLmxhc3RJbmRleD0wO2huPj0wJiZGLnRlc3QoemUpOyl6ZT16ZS5yZXBsYWNlKEYsUm4pLEYubGFzdEluZGV4PTAsaG4tPTE7cmV0dXJuIHplfXZhciBsdD17fTtmdW5jdGlvbiBMdCh6''@;'; put 'put ''ZSxWdCl7dmFyIGhuPXplLnRvTG93ZXJDYXNlKCk7bHRbaG5dPWx0W2huKyJzIl09bHRbVnRdPXplfWZ1bmN0aW9uIEN0KHplKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHplP2x0W3plXXx8bHRbemUudG9Mb3dlckNhc2UoKV06dm9pZCAwfWZ1bmN0aW9uIGZ0KHplKXt2YXIgaG4sUm4sVnQ9''@;'; put 'put ''e307Zm9yKFJuIGluIHplKVEoemUsUm4pJiYoaG49Q3QoUm4pKSYmKFZ0W2huXT16ZVtSbl0pO3JldHVybiBWdH12YXIgSHQ9e307ZnVuY3Rpb24gR2UoemUsVnQpe0h0W3plXT1WdH1mdW5jdGlvbiB5dCh6ZSl7cmV0dXJuIHplJTQ9PTAmJnplJTEwMCE9MHx8emUlNDAwPT0wfWZ1bmN0aW9u''@;'; put 'put ''IGp0KHplKXtyZXR1cm4gemU8MD9NYXRoLmNlaWwoemUpfHwwOk1hdGguZmxvb3IoemUpfWZ1bmN0aW9uIEp0KHplKXt2YXIgVnQ9K3plLGhuPTA7cmV0dXJuIDAhPT1WdCYmaXNGaW5pdGUoVnQpJiYoaG49anQoVnQpKSxobn1mdW5jdGlvbiBnbih6ZSxWdCl7cmV0dXJuIGZ1bmN0aW9uKGhu''@;'; put 'put ''KXtyZXR1cm4gbnVsbCE9aG4/KHluKHRoaXMsemUsaG4pLEIudXBkYXRlT2Zmc2V0KHRoaXMsVnQpLHRoaXMpOmRuKHRoaXMsemUpfX1mdW5jdGlvbiBkbih6ZSxWdCl7cmV0dXJuIHplLmlzVmFsaWQoKT96ZS5fZFsiZ2V0IisoemUuX2lzVVRDPyJVVEMiOiIiKStWdF0oKTpOYU59ZnVuY3Rp''@;'; put 'put ''b24geW4oemUsVnQsaG4pe3plLmlzVmFsaWQoKSYmIWlzTmFOKGhuKSYmKCJGdWxsWWVhciI9PT1WdCYmeXQoemUueWVhcigpKSYmMT09PXplLm1vbnRoKCkmJjI5PT09emUuZGF0ZSgpPyhobj1KdChobiksemUuX2RbInNldCIrKHplLl9pc1VUQz8iVVRDIjoiIikrVnRdKGhuLHplLm1vbnRo''@;'; put 'put ''KCksaWkoaG4semUubW9udGgoKSkpKTp6ZS5fZFsic2V0IisoemUuX2lzVVRDPyJVVEMiOiIiKStWdF0oaG4pKX12YXIgd24sYm49L1xkLyxlcj0vXGRcZC8sc3I9L1xkezN9LyxYbj0vXGR7NH0vLEZyPS9bKy1dP1xkezZ9Lyx4cj0vXGRcZD8vLHF0PS9cZFxkXGRcZD8vLHByPS9cZFxkXGRc''@;'; put 'put ''ZFxkXGQ/Lyxucj0vXGR7MSwzfS8sQW49L1xkezEsNH0vLHFuPS9bKy1dP1xkezEsNn0vLFd0PS9cZCsvLHBuPS9bKy1dP1xkKy8sS249L1p8WystXVxkXGQ6P1xkXGQvZ2ksTnQ9L1p8WystXVxkXGQoPzo6P1xkXGQpPy9naSxVbj0vWzAtOV17MCwyNTZ9WydhLXpcdTAwQTAtXHUwNUZGXHUw''@;'; put 'put ''NzAwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRjA3XHVGRjEwLVx1RkZFRl17MSwyNTZ9fFtcdTA2MDAtXHUwNkZGXC9dezEsMjU2fShccyo/W1x1MDYwMC1cdTA2RkZdezEsMjU2fSl7MSwyfS9pO2Z1bmN0aW9uIHRuKHplLFZ0LGhuKXt3blt6ZV09TyhWdCk/VnQ6ZnVuY3Rpb24o''@;'; put 'put ''Um4sdHIpe3JldHVybiBSbiYmaG4/aG46VnR9fWZ1bmN0aW9uIHpuKHplLFZ0KXtyZXR1cm4gUSh3bix6ZSk/d25bemVdKFZ0Ll9zdHJpY3QsVnQuX2xvY2FsZSk6bmV3IFJlZ0V4cChmdW5jdGlvbiBUcih6ZSl7cmV0dXJuIEJuKHplLnJlcGxhY2UoIlxcIiwiIikucmVwbGFjZSgvXFwoXFsp''@;'; put 'put ''fFxcKFxdKXxcWyhbXlxdXFtdKilcXXxcXCguKS9nLGZ1bmN0aW9uKFZ0LGhuLFJuLHRyLGVpKXtyZXR1cm4gaG58fFJufHx0cnx8ZWl9KSl9KHplKSl9ZnVuY3Rpb24gQm4oemUpe3JldHVybiB6ZS5yZXBsYWNlKC9bLVwvXFxeJCorPy4oKXxbXF17fV0vZywiXFwkJiIpfXduPXt9O3ZhciBr''@;'; put 'put ''cj17fTtmdW5jdGlvbiBtbih6ZSxWdCl7dmFyIGhuLHRyLFJuPVZ0O2Zvcigic3RyaW5nIj09dHlwZW9mIHplJiYoemU9W3plXSksYWUoVnQpJiYoUm49ZnVuY3Rpb24oZWksWWkpe1lpW1Z0XT1KdChlaSl9KSx0cj16ZS5sZW5ndGgsaG49MDtobjx0cjtobisrKWtyW3plW2huXV09Um59ZnVu''@;'; put 'put ''Y3Rpb24gdW4oemUsVnQpe21uKHplLGZ1bmN0aW9uKGhuLFJuLHRyLGVpKXt0ci5fdz10ci5fd3x8e30sVnQoaG4sdHIuX3csdHIsZWkpfSl9ZnVuY3Rpb24gY24oemUsVnQsaG4pe251bGwhPVZ0JiZRKGtyLHplKSYma3JbemVdKFZ0LGhuLl9hLGhuLHplKX12YXIgVnI7ZnVuY3Rpb24gaWko''@;'; put 'put ''emUsVnQpe2lmKGlzTmFOKHplKXx8aXNOYU4oVnQpKXJldHVybiBOYU47dmFyIGhuPWZ1bmN0aW9uIEtyKHplLFZ0KXtyZXR1cm4oemUlVnQrVnQpJVZ0fShWdCwxMik7cmV0dXJuIHplKz0oVnQtaG4pLzEyLDE9PT1obj95dCh6ZSk/Mjk6Mjg6MzEtaG4lNyUyfVZyPUFycmF5LnByb3RvdHlw''@;'; put 'put ''ZS5pbmRleE9mP0FycmF5LnByb3RvdHlwZS5pbmRleE9mOmZ1bmN0aW9uKHplKXt2YXIgVnQ7Zm9yKFZ0PTA7VnQ8dGhpcy5sZW5ndGg7KytWdClpZih0aGlzW1Z0XT09PXplKXJldHVybiBWdDtyZXR1cm4tMX0sRGUoIk0iLFsiTU0iLDJdLCJNbyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5t''@;'; put 'put ''b250aCgpKzF9KSxEZSgiTU1NIiwwLDAsZnVuY3Rpb24oemUpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHNTaG9ydCh0aGlzLHplKX0pLERlKCJNTU1NIiwwLDAsZnVuY3Rpb24oemUpe3JldHVybiB0aGlzLmxvY2FsZURhdGEoKS5tb250aHModGhpcyx6ZSl9KSxMdCgibW9udGgi''@;'; put 'put ''LCJNIiksR2UoIm1vbnRoIiw4KSx0bigiTSIseHIpLHRuKCJNTSIseHIsZXIpLHRuKCJNTU0iLGZ1bmN0aW9uKHplLFZ0KXtyZXR1cm4gVnQubW9udGhzU2hvcnRSZWdleCh6ZSl9KSx0bigiTU1NTSIsZnVuY3Rpb24oemUsVnQpe3JldHVybiBWdC5tb250aHNSZWdleCh6ZSl9KSxtbihbIk0i''@;'; put 'put ''LCJNTSJdLGZ1bmN0aW9uKHplLFZ0KXtWdFsxXT1KdCh6ZSktMX0pLG1uKFsiTU1NIiwiTU1NTSJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXt2YXIgdHI9aG4uX2xvY2FsZS5tb250aHNQYXJzZSh6ZSxSbixobi5fc3RyaWN0KTtudWxsIT10cj9WdFsxXT10cjpKKGhuKS5pbnZhbGlkTW9udGg9''@;'; put 'put ''emV9KTt2YXIgUnI9IkphbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXIiLnNwbGl0KCJfIiksbGk9Ikphbl9GZWJfTWFyX0Fwcl9NYXlfSnVuX0p1bF9BdWdfU2VwX09jdF9Ob3ZfRGVjIi5z''@;'; put 'put ''cGxpdCgiXyIpLE1pPS9EW29EXT8oXFtbXlxbXF1dKlxdfFxzKStNTU1NPy8sbzA9VW4sbjA9VW47ZnVuY3Rpb24gRzAoemUsVnQsaG4pe3ZhciBSbix0cixlaSxZaT16ZS50b0xvY2FsZUxvd2VyQ2FzZSgpO2lmKCF0aGlzLl9tb250aHNQYXJzZSlmb3IodGhpcy5fbW9udGhzUGFyc2U9W10s''@;'; put 'put ''dGhpcy5fbG9uZ01vbnRoc1BhcnNlPVtdLHRoaXMuX3Nob3J0TW9udGhzUGFyc2U9W10sUm49MDtSbjwxMjsrK1JuKWVpPXRlKFsyZTMsUm5dKSx0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW1JuXT10aGlzLm1vbnRoc1Nob3J0KGVpLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX2xvbmdN''@;'; put 'put ''b250aHNQYXJzZVtSbl09dGhpcy5tb250aHMoZWksIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuIGhuPyJNTU0iPT09VnQ/LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9zaG9ydE1vbnRoc1BhcnNlLFlpKSk/dHI6bnVsbDotMSE9PSh0cj1Wci5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJz''@;'; put 'put ''ZSxZaSkpP3RyOm51bGw6Ik1NTSI9PT1WdD8tMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3Nob3J0TW9udGhzUGFyc2UsWWkpKXx8LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsWWkpKT90cjpudWxsOi0xIT09KHRyPVZyLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLFlp''@;'; put 'put ''KSl8fC0xIT09KHRyPVZyLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSxZaSkpP3RyOm51bGx9ZnVuY3Rpb24gVzAoemUsVnQpe3ZhciBobjtpZighemUuaXNWYWxpZCgpKXJldHVybiB6ZTtpZigic3RyaW5nIj09dHlwZW9mIFZ0KWlmKC9eXGQrJC8udGVzdChWdCkpVnQ9SnQoVnQpO2Vs''@;'; put 'put ''c2UgaWYoIWFlKFZ0PXplLmxvY2FsZURhdGEoKS5tb250aHNQYXJzZShWdCkpKXJldHVybiB6ZTtyZXR1cm4gaG49TWF0aC5taW4oemUuZGF0ZSgpLGlpKHplLnllYXIoKSxWdCkpLHplLl9kWyJzZXQiKyh6ZS5faXNVVEM/IlVUQyI6IiIpKyJNb250aCJdKFZ0LGhuKSx6ZX1mdW5jdGlvbiBF''@;'; put 'put ''byh6ZSl7cmV0dXJuIG51bGwhPXplPyhXMCh0aGlzLHplKSxCLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0aGlzKTpkbih0aGlzLCJNb250aCIpfWZ1bmN0aW9uIFFpKCl7ZnVuY3Rpb24gemUoWWksZGEpe3JldHVybiBkYS5sZW5ndGgtWWkubGVuZ3RofXZhciB0cixlaSxWdD1bXSxobj1bXSxS''@;'; put 'put ''bj1bXTtmb3IodHI9MDt0cjwxMjt0cisrKWVpPXRlKFsyZTMsdHJdKSxWdC5wdXNoKHRoaXMubW9udGhzU2hvcnQoZWksIiIpKSxobi5wdXNoKHRoaXMubW9udGhzKGVpLCIiKSksUm4ucHVzaCh0aGlzLm1vbnRocyhlaSwiIikpLFJuLnB1c2godGhpcy5tb250aHNTaG9ydChlaSwiIikpO2Zv''@;'; put 'put ''cihWdC5zb3J0KHplKSxobi5zb3J0KHplKSxSbi5zb3J0KHplKSx0cj0wO3RyPDEyO3RyKyspVnRbdHJdPUJuKFZ0W3RyXSksaG5bdHJdPUJuKGhuW3RyXSk7Zm9yKHRyPTA7dHI8MjQ7dHIrKylSblt0cl09Qm4oUm5bdHJdKTt0aGlzLl9tb250aHNSZWdleD1uZXcgUmVnRXhwKCJeKCIrUm4u''@;'; put 'put ''am9pbigifCIpKyIpIiwiaSIpLHRoaXMuX21vbnRoc1Nob3J0UmVnZXg9dGhpcy5fbW9udGhzUmVnZXgsdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK2huLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4PW5ldyBSZWdFeHAoIl4o''@;'; put 'put ''IitWdC5qb2luKCJ8IikrIikiLCJpIil9ZnVuY3Rpb24gTWEoemUpe3JldHVybiB5dCh6ZSk/MzY2OjM2NX1EZSgiWSIsMCwwLGZ1bmN0aW9uKCl7dmFyIHplPXRoaXMueWVhcigpO3JldHVybiB6ZTw9OTk5OT9UKHplLDQpOiIrIit6ZX0pLERlKDAsWyJZWSIsMl0sMCxmdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiB0aGlzLnllYXIoKSUxMDB9KSxEZSgwLFsiWVlZWSIsNF0sMCwieWVhciIpLERlKDAsWyJZWVlZWSIsNV0sMCwieWVhciIpLERlKDAsWyJZWVlZWVkiLDYsITBdLDAsInllYXIiKSxMdCgieWVhciIsInkiKSxHZSgieWVhciIsMSksdG4oIlkiLHBuKSx0bigiWVkiLHhyLGVyKSx0bigi''@;'; put 'put ''WVlZWSIsQW4sWG4pLHRuKCJZWVlZWSIscW4sRnIpLHRuKCJZWVlZWVkiLHFuLEZyKSxtbihbIllZWVlZIiwiWVlZWVlZIl0sMCksbW4oIllZWVkiLGZ1bmN0aW9uKHplLFZ0KXtWdFswXT0yPT09emUubGVuZ3RoP0IucGFyc2VUd29EaWdpdFllYXIoemUpOkp0KHplKX0pLG1uKCJZWSIsZnVu''@;'; put 'put ''Y3Rpb24oemUsVnQpe1Z0WzBdPUIucGFyc2VUd29EaWdpdFllYXIoemUpfSksbW4oIlkiLGZ1bmN0aW9uKHplLFZ0KXtWdFswXT1wYXJzZUludCh6ZSwxMCl9KSxCLnBhcnNlVHdvRGlnaXRZZWFyPWZ1bmN0aW9uKHplKXtyZXR1cm4gSnQoemUpKyhKdCh6ZSk+Njg/MTkwMDoyZTMpfTt2YXIg''@;'; put 'put ''bmw9Z24oIkZ1bGxZZWFyIiwhMCk7ZnVuY3Rpb24gQWkoemUsVnQsaG4sUm4sdHIsZWksWWkpe3ZhciBkYTtyZXR1cm4gemU8MTAwJiZ6ZT49MD8oZGE9bmV3IERhdGUoemUrNDAwLFZ0LGhuLFJuLHRyLGVpLFlpKSxpc0Zpbml0ZShkYS5nZXRGdWxsWWVhcigpKSYmZGEuc2V0RnVsbFllYXIo''@;'; put 'put ''emUpKTpkYT1uZXcgRGF0ZSh6ZSxWdCxobixSbix0cixlaSxZaSksZGF9ZnVuY3Rpb24gdmkoemUpe3ZhciBWdCxobjtyZXR1cm4gemU8MTAwJiZ6ZT49MD8oKGhuPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cykpWzBdPXplKzQwMCxWdD1uZXcgRGF0ZShEYXRlLlVUQy5h''@;'; put 'put ''cHBseShudWxsLGhuKSksaXNGaW5pdGUoVnQuZ2V0VVRDRnVsbFllYXIoKSkmJlZ0LnNldFVUQ0Z1bGxZZWFyKHplKSk6VnQ9bmV3IERhdGUoRGF0ZS5VVEMuYXBwbHkobnVsbCxhcmd1bWVudHMpKSxWdH1mdW5jdGlvbiBiMCh6ZSxWdCxobil7dmFyIFJuPTcrVnQtaG47cmV0dXJuLSg3K3Zp''@;'; put 'put ''KHplLDAsUm4pLmdldFVUQ0RheSgpLVZ0KSU3K1JuLTF9ZnVuY3Rpb24gc2EoemUsVnQsaG4sUm4sdHIpe3ZhciB6YSxGcyxkYT0xKzcqKFZ0LTEpKyg3K2huLVJuKSU3K2IwKHplLFJuLHRyKTtyZXR1cm4gZGE8PTA/RnM9TWEoemE9emUtMSkrZGE6ZGE+TWEoemUpPyh6YT16ZSsxLEZzPWRh''@;'; put 'put ''LU1hKHplKSk6KHphPXplLEZzPWRhKSx7eWVhcjp6YSxkYXlPZlllYXI6RnN9fWZ1bmN0aW9uIHJsKHplLFZ0LGhuKXt2YXIgZWksWWksUm49YjAoemUueWVhcigpLFZ0LGhuKSx0cj1NYXRoLmZsb29yKCh6ZS5kYXlPZlllYXIoKS1Sbi0xKS83KSsxO3JldHVybiB0cjwxP2VpPXRyK19pKFlp''@;'; put 'put ''PXplLnllYXIoKS0xLFZ0LGhuKTp0cj5faSh6ZS55ZWFyKCksVnQsaG4pPyhlaT10ci1faSh6ZS55ZWFyKCksVnQsaG4pLFlpPXplLnllYXIoKSsxKTooWWk9emUueWVhcigpLGVpPXRyKSx7d2VlazplaSx5ZWFyOllpfX1mdW5jdGlvbiBfaSh6ZSxWdCxobil7dmFyIFJuPWIwKHplLFZ0LGhu''@;'; put 'put ''KSx0cj1iMCh6ZSsxLFZ0LGhuKTtyZXR1cm4oTWEoemUpLVJuK3RyKS83fURlKCJ3IixbInd3IiwyXSwid28iLCJ3ZWVrIiksRGUoIlciLFsiV1ciLDJdLCJXbyIsImlzb1dlZWsiKSxMdCgid2VlayIsInciKSxMdCgiaXNvV2VlayIsIlciKSxHZSgid2VlayIsNSksR2UoImlzb1dlZWsiLDUp''@;'; put 'put ''LHRuKCJ3Iix4ciksdG4oInd3Iix4cixlciksdG4oIlciLHhyKSx0bigiV1ciLHhyLGVyKSx1bihbInciLCJ3dyIsIlciLCJXVyJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXtWdFtSbi5zdWJzdHIoMCwxKV09SnQoemUpfSk7ZnVuY3Rpb24gdm4oemUsVnQpe3JldHVybiB6ZS5zbGljZShWdCw3''@;'; put 'put ''KS5jb25jYXQoemUuc2xpY2UoMCxWdCkpfURlKCJkIiwwLCJkbyIsImRheSIpLERlKCJkZCIsMCwwLGZ1bmN0aW9uKHplKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNNaW4odGhpcyx6ZSl9KSxEZSgiZGRkIiwwLDAsZnVuY3Rpb24oemUpe3JldHVybiB0aGlzLmxvY2FsZURh''@;'; put 'put ''dGEoKS53ZWVrZGF5c1Nob3J0KHRoaXMsemUpfSksRGUoImRkZGQiLDAsMCxmdW5jdGlvbih6ZSl7cmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzKHRoaXMsemUpfSksRGUoImUiLDAsMCwid2Vla2RheSIpLERlKCJFIiwwLDAsImlzb1dlZWtkYXkiKSxMdCgiZGF5IiwiZCIpLEx0''@;'; put 'put ''KCJ3ZWVrZGF5IiwiZSIpLEx0KCJpc29XZWVrZGF5IiwiRSIpLEdlKCJkYXkiLDExKSxHZSgid2Vla2RheSIsMTEpLEdlKCJpc29XZWVrZGF5IiwxMSksdG4oImQiLHhyKSx0bigiZSIseHIpLHRuKCJFIix4ciksdG4oImRkIixmdW5jdGlvbih6ZSxWdCl7cmV0dXJuIFZ0LndlZWtkYXlzTWlu''@;'; put 'put ''UmVnZXgoemUpfSksdG4oImRkZCIsZnVuY3Rpb24oemUsVnQpe3JldHVybiBWdC53ZWVrZGF5c1Nob3J0UmVnZXgoemUpfSksdG4oImRkZGQiLGZ1bmN0aW9uKHplLFZ0KXtyZXR1cm4gVnQud2Vla2RheXNSZWdleCh6ZSl9KSx1bihbImRkIiwiZGRkIiwiZGRkZCJdLGZ1bmN0aW9uKHplLFZ0''@;'; put 'put ''LGhuLFJuKXt2YXIgdHI9aG4uX2xvY2FsZS53ZWVrZGF5c1BhcnNlKHplLFJuLGhuLl9zdHJpY3QpO251bGwhPXRyP1Z0LmQ9dHI6SihobikuaW52YWxpZFdlZWtkYXk9emV9KSx1bihbImQiLCJlIiwiRSJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXtWdFtSbl09SnQoemUpfSk7dmFyIF8wPSJT''@;'; put 'put ''dW5kYXlfTW9uZGF5X1R1ZXNkYXlfV2VkbmVzZGF5X1RodXJzZGF5X0ZyaWRheV9TYXR1cmRheSIuc3BsaXQoIl8iKSxnYz0iU3VuX01vbl9UdWVfV2VkX1RodV9GcmlfU2F0Ii5zcGxpdCgiXyIpLHBkPSJTdV9Nb19UdV9XZV9UaF9Gcl9TYSIuc3BsaXQoIl8iKSxCMT1VbixhdT1VbixQMT1V''@;'; put 'put ''bjtmdW5jdGlvbiBkMyh6ZSxWdCxobil7dmFyIFJuLHRyLGVpLFlpPXplLnRvTG9jYWxlTG93ZXJDYXNlKCk7aWYoIXRoaXMuX3dlZWtkYXlzUGFyc2UpZm9yKHRoaXMuX3dlZWtkYXlzUGFyc2U9W10sdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlPVtdLHRoaXMuX21pbldlZWtkYXlzUGFyc2U9''@;'; put 'put ''W10sUm49MDtSbjw3OysrUm4pZWk9dGUoWzJlMywxXSkuZGF5KFJuKSx0aGlzLl9taW5XZWVrZGF5c1BhcnNlW1JuXT10aGlzLndlZWtkYXlzTWluKGVpLCIiKS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtSbl09dGhpcy53ZWVrZGF5c1Nob3J0KGVpLCIi''@;'; put 'put ''KS50b0xvY2FsZUxvd2VyQ2FzZSgpLHRoaXMuX3dlZWtkYXlzUGFyc2VbUm5dPXRoaXMud2Vla2RheXMoZWksIiIpLnRvTG9jYWxlTG93ZXJDYXNlKCk7cmV0dXJuIGhuPyJkZGRkIj09PVZ0Py0xIT09KHRyPVZyLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSxZaSkpP3RyOm51bGw6ImRkZCI9''@;'; put 'put ''PT1WdD8tMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSxZaSkpP3RyOm51bGw6LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLFlpKSk/dHI6bnVsbDoiZGRkZCI9PT1WdD8tMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsWWkp''@;'; put 'put ''KXx8LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsWWkpKXx8LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLFlpKSk/dHI6bnVsbDoiZGRkIj09PVZ0Py0xIT09KHRyPVZyLmNhbGwodGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlLFlpKSl8fC0x''@;'; put 'put ''IT09KHRyPVZyLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSxZaSkpfHwtMSE9PSh0cj1Wci5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsWWkpKT90cjpudWxsOi0xIT09KHRyPVZyLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSxZaSkpfHwtMSE9PSh0cj1Wci5jYWxsKHRoaXMuX3dl''@;'; put 'put ''ZWtkYXlzUGFyc2UsWWkpKXx8LTEhPT0odHI9VnIuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsWWkpKT90cjpudWxsfWZ1bmN0aW9uIGRzKCl7ZnVuY3Rpb24gemUoS3UsSHMpe3JldHVybiBIcy5sZW5ndGgtS3UubGVuZ3RofXZhciBlaSxZaSxkYSx6YSxGcyxWdD1bXSxobj1bXSxS''@;'; put 'put ''bj1bXSx0cj1bXTtmb3IoZWk9MDtlaTw3O2VpKyspWWk9dGUoWzJlMywxXSkuZGF5KGVpKSxkYT1Cbih0aGlzLndlZWtkYXlzTWluKFlpLCIiKSksemE9Qm4odGhpcy53ZWVrZGF5c1Nob3J0KFlpLCIiKSksRnM9Qm4odGhpcy53ZWVrZGF5cyhZaSwiIikpLFZ0LnB1c2goZGEpLGhuLnB1c2go''@;'; put 'put ''emEpLFJuLnB1c2goRnMpLHRyLnB1c2goZGEpLHRyLnB1c2goemEpLHRyLnB1c2goRnMpO1Z0LnNvcnQoemUpLGhuLnNvcnQoemUpLFJuLnNvcnQoemUpLHRyLnNvcnQoemUpLHRoaXMuX3dlZWtkYXlzUmVnZXg9bmV3IFJlZ0V4cCgiXigiK3RyLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl93''@;'; put 'put ''ZWVrZGF5c1Nob3J0UmVnZXg9dGhpcy5fd2Vla2RheXNSZWdleCx0aGlzLl93ZWVrZGF5c01pblJlZ2V4PXRoaXMuX3dlZWtkYXlzUmVnZXgsdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleD1uZXcgUmVnRXhwKCJeKCIrUm4uam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX3dlZWtkYXlzU2hvcnRT''@;'; put 'put ''dHJpY3RSZWdleD1uZXcgUmVnRXhwKCJeKCIraG4uam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg9bmV3IFJlZ0V4cCgiXigiK1Z0LmpvaW4oInwiKSsiKSIsImkiKX1mdW5jdGlvbiBuMigpe3JldHVybiB0aGlzLmhvdXJzKCklMTJ8fDEyfWZ1bmN0aW9u''@;'; put 'put ''IFRpKHplLFZ0KXtEZSh6ZSwwLDAsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubWVyaWRpZW0odGhpcy5ob3VycygpLHRoaXMubWludXRlcygpLFZ0KX0pfWZ1bmN0aW9uIFBzKHplLFZ0KXtyZXR1cm4gVnQuX21lcmlkaWVtUGFyc2V9RGUoIkgiLFsiSEgiLDJdLDAsImhv''@;'; put 'put ''dXIiKSxEZSgiaCIsWyJoaCIsMl0sMCxuMiksRGUoImsiLFsia2siLDJdLDAsZnVuY3Rpb24gVDIoKXtyZXR1cm4gdGhpcy5ob3VycygpfHwyNH0pLERlKCJobW0iLDAsMCxmdW5jdGlvbigpe3JldHVybiIiK24yLmFwcGx5KHRoaXMpK1QodGhpcy5taW51dGVzKCksMil9KSxEZSgiaG1tc3Mi''@;'; put 'put ''LDAsMCxmdW5jdGlvbigpe3JldHVybiIiK24yLmFwcGx5KHRoaXMpK1QodGhpcy5taW51dGVzKCksMikrVCh0aGlzLnNlY29uZHMoKSwyKX0pLERlKCJIbW0iLDAsMCxmdW5jdGlvbigpe3JldHVybiIiK3RoaXMuaG91cnMoKStUKHRoaXMubWludXRlcygpLDIpfSksRGUoIkhtbXNzIiwwLDAs''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4iIit0aGlzLmhvdXJzKCkrVCh0aGlzLm1pbnV0ZXMoKSwyKStUKHRoaXMuc2Vjb25kcygpLDIpfSksVGkoImEiLCEwKSxUaSgiQSIsITEpLEx0KCJob3VyIiwiaCIpLEdlKCJob3VyIiwxMyksdG4oImEiLFBzKSx0bigiQSIsUHMpLHRuKCJIIix4ciksdG4oImgi''@;'; put 'put ''LHhyKSx0bigiayIseHIpLHRuKCJISCIseHIsZXIpLHRuKCJoaCIseHIsZXIpLHRuKCJrayIseHIsZXIpLHRuKCJobW0iLHF0KSx0bigiaG1tc3MiLHByKSx0bigiSG1tIixxdCksdG4oIkhtbXNzIixwciksbW4oWyJIIiwiSEgiXSwzKSxtbihbImsiLCJrayJdLGZ1bmN0aW9uKHplLFZ0LGhu''@;'; put 'put ''KXt2YXIgUm49SnQoemUpO1Z0WzNdPTI0PT09Um4/MDpSbn0pLG1uKFsiYSIsIkEiXSxmdW5jdGlvbih6ZSxWdCxobil7aG4uX2lzUG09aG4uX2xvY2FsZS5pc1BNKHplKSxobi5fbWVyaWRpZW09emV9KSxtbihbImgiLCJoaCJdLGZ1bmN0aW9uKHplLFZ0LGhuKXtWdFszXT1KdCh6ZSksSiho''@;'; put 'put ''bikuYmlnSG91cj0hMH0pLG1uKCJobW0iLGZ1bmN0aW9uKHplLFZ0LGhuKXt2YXIgUm49emUubGVuZ3RoLTI7VnRbM109SnQoemUuc3Vic3RyKDAsUm4pKSxWdFs0XT1KdCh6ZS5zdWJzdHIoUm4pKSxKKGhuKS5iaWdIb3VyPSEwfSksbW4oImhtbXNzIixmdW5jdGlvbih6ZSxWdCxobil7dmFy''@;'; put 'put ''IFJuPXplLmxlbmd0aC00LHRyPXplLmxlbmd0aC0yO1Z0WzNdPUp0KHplLnN1YnN0cigwLFJuKSksVnRbNF09SnQoemUuc3Vic3RyKFJuLDIpKSxWdFs1XT1KdCh6ZS5zdWJzdHIodHIpKSxKKGhuKS5iaWdIb3VyPSEwfSksbW4oIkhtbSIsZnVuY3Rpb24oemUsVnQsaG4pe3ZhciBSbj16ZS5s''@;'; put 'put ''ZW5ndGgtMjtWdFszXT1KdCh6ZS5zdWJzdHIoMCxSbikpLFZ0WzRdPUp0KHplLnN1YnN0cihSbikpfSksbW4oIkhtbXNzIixmdW5jdGlvbih6ZSxWdCxobil7dmFyIFJuPXplLmxlbmd0aC00LHRyPXplLmxlbmd0aC0yO1Z0WzNdPUp0KHplLnN1YnN0cigwLFJuKSksVnRbNF09SnQoemUuc3Vi''@;'; put 'put ''c3RyKFJuLDIpKSxWdFs1XT1KdCh6ZS5zdWJzdHIodHIpKX0pO3ZhciBOYz1nbigiSG91cnMiLCEwKTt2YXIgVXMsQzQ9e2NhbGVuZGFyOntzYW1lRGF5OiJbVG9kYXkgYXRdIExUIixuZXh0RGF5OiJbVG9tb3Jyb3cgYXRdIExUIixuZXh0V2VlazoiZGRkZCBbYXRdIExUIixsYXN0RGF5OiJb''@;'; put 'put ''WWVzdGVyZGF5IGF0XSBMVCIsbGFzdFdlZWs6IltMYXN0XSBkZGRkIFthdF0gTFQiLHNhbWVFbHNlOiJMIn0sbG9uZ0RhdGVGb3JtYXQ6e0xUUzoiaDptbTpzcyBBIixMVDoiaDptbSBBIixMOiJNTS9ERC9ZWVlZIixMTDoiTU1NTSBELCBZWVlZIixMTEw6Ik1NTU0gRCwgWVlZWSBoOm1tIEEi''@;'; put 'put ''LExMTEw6ImRkZGQsIE1NTU0gRCwgWVlZWSBoOm1tIEEifSxpbnZhbGlkRGF0ZToiSW52YWxpZCBkYXRlIixvcmRpbmFsOiIlZCIsZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfS8scmVsYXRpdmVUaW1lOntmdXR1cmU6ImluICVzIixwYXN0OiIlcyBhZ28iLHM6ImEgZmV3IHNlY29u''@;'; put 'put ''ZHMiLHNzOiIlZCBzZWNvbmRzIixtOiJhIG1pbnV0ZSIsbW06IiVkIG1pbnV0ZXMiLGg6ImFuIGhvdXIiLGhoOiIlZCBob3VycyIsZDoiYSBkYXkiLGRkOiIlZCBkYXlzIix3OiJhIHdlZWsiLHd3OiIlZCB3ZWVrcyIsTToiYSBtb250aCIsTU06IiVkIG1vbnRocyIseToiYSB5ZWFyIix5eToi''@;'; put 'put ''JWQgeWVhcnMifSxtb250aHM6UnIsbW9udGhzU2hvcnQ6bGksd2Vlazp7ZG93OjAsZG95OjZ9LHdlZWtkYXlzOl8wLHdlZWtkYXlzTWluOnBkLHdlZWtkYXlzU2hvcnQ6Z2MsbWVyaWRpZW1QYXJzZTovW2FwXVwuP20/XC4/L2l9LHIyPXt9LFdpPXt9O2Z1bmN0aW9uIHZzKHplLFZ0KXt2YXIg''@;'; put 'put ''aG4sUm49TWF0aC5taW4oemUubGVuZ3RoLFZ0Lmxlbmd0aCk7Zm9yKGhuPTA7aG48Um47aG4rPTEpaWYoemVbaG5dIT09VnRbaG5dKXJldHVybiBobjtyZXR1cm4gUm59ZnVuY3Rpb24gRjEoemUpe3JldHVybiB6ZSYmemUudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCJfIiwiLSIpfWZ1bmN0aW9u''@;'; put 'put ''IFJpKHplKXt2YXIgVnQ9bnVsbDtpZih2b2lkIDA9PT1yMlt6ZV0mJlhlJiZYZS5leHBvcnRzJiZmdW5jdGlvbiBDcyh6ZSl7cmV0dXJuIG51bGwhPXplLm1hdGNoKCJeW14vXFxcXF0qJCIpfSh6ZSkpdHJ5e1Z0PVVzLl9hYmJyLEwoNDY3MDApKCIuLyIremUpLEgxKFZ0KX1jYXRjaChSbil7''@;'; put 'put ''cjJbemVdPW51bGx9cmV0dXJuIHIyW3plXX1mdW5jdGlvbiBIMSh6ZSxWdCl7dmFyIGhuO3JldHVybiB6ZSYmKChobj1yZShWdCk/dTEoemUpOkoyKHplLFZ0KSk/VXM9aG46InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm4mJmNvbnNvbGUud2FybigiTG9jYWxlICIr''@;'; put 'put ''emUrIiBub3QgZm91bmQuIERpZCB5b3UgZm9yZ2V0IHRvIGxvYWQgaXQ/IikpLFVzLl9hYmJyfWZ1bmN0aW9uIEoyKHplLFZ0KXtpZihudWxsIT09VnQpe3ZhciBobixSbj1DNDtpZihWdC5hYmJyPXplLG51bGwhPXIyW3plXSloZSgiZGVmaW5lTG9jYWxlT3ZlcnJpZGUiLCJ1c2UgbW9tZW50''@;'; put 'put ''LnVwZGF0ZUxvY2FsZShsb2NhbGVOYW1lLCBjb25maWcpIHRvIGNoYW5nZSBhbiBleGlzdGluZyBsb2NhbGUuIG1vbWVudC5kZWZpbmVMb2NhbGUobG9jYWxlTmFtZSwgY29uZmlnKSBzaG91bGQgb25seSBiZSB1c2VkIGZvciBjcmVhdGluZyBhIG5ldyBsb2NhbGUgU2VlIGh0dHA6Ly9tb21l''@;'; put 'put ''bnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZGVmaW5lLWxvY2FsZS8gZm9yIG1vcmUgaW5mby4iKSxSbj1yMlt6ZV0uX2NvbmZpZztlbHNlIGlmKG51bGwhPVZ0LnBhcmVudExvY2FsZSlpZihudWxsIT1yMltWdC5wYXJlbnRMb2NhbGVdKVJuPXIyW1Z0LnBhcmVudExvY2FsZV0uX2NvbmZp''@;'; put 'put ''ZztlbHNle2lmKG51bGw9PShobj1SaShWdC5wYXJlbnRMb2NhbGUpKSlyZXR1cm4gV2lbVnQucGFyZW50TG9jYWxlXXx8KFdpW1Z0LnBhcmVudExvY2FsZV09W10pLFdpW1Z0LnBhcmVudExvY2FsZV0ucHVzaCh7bmFtZTp6ZSxjb25maWc6VnR9KSxudWxsO1JuPWhuLl9jb25maWd9cmV0dXJu''@;'; put 'put ''IHIyW3plXT1uZXcgbmUoZWUoUm4sVnQpKSxXaVt6ZV0mJldpW3plXS5mb3JFYWNoKGZ1bmN0aW9uKHRyKXtKMih0ci5uYW1lLHRyLmNvbmZpZyl9KSxIMSh6ZSkscjJbemVdfXJldHVybiBkZWxldGUgcjJbemVdLG51bGx9ZnVuY3Rpb24gdTEoemUpe3ZhciBWdDtpZih6ZSYmemUuX2xvY2Fs''@;'; put 'put ''ZSYmemUuX2xvY2FsZS5fYWJiciYmKHplPXplLl9sb2NhbGUuX2FiYnIpLCF6ZSlyZXR1cm4gVXM7aWYoIUVlKHplKSl7aWYoVnQ9UmkoemUpKXJldHVybiBWdDt6ZT1bemVdfXJldHVybiBmdW5jdGlvbiBLbCh6ZSl7Zm9yKHZhciBobixSbix0cixlaSxWdD0wO1Z0PHplLmxlbmd0aDspe2Zv''@;'; put 'put ''cihobj0oZWk9RjEoemVbVnRdKS5zcGxpdCgiLSIpKS5sZW5ndGgsUm49KFJuPUYxKHplW1Z0KzFdKSk/Um4uc3BsaXQoIi0iKTpudWxsO2huPjA7KXtpZih0cj1SaShlaS5zbGljZSgwLGhuKS5qb2luKCItIikpKXJldHVybiB0cjtpZihSbiYmUm4ubGVuZ3RoPj1obiYmdnMoZWksUm4pPj1o''@;'; put 'put ''bi0xKWJyZWFrO2huLS19VnQrK31yZXR1cm4gVXN9KHplKX1mdW5jdGlvbiBwMyh6ZSl7dmFyIFZ0LGhuPXplLl9hO3JldHVybiBobiYmLTI9PT1KKHplKS5vdmVyZmxvdyYmKFZ0PWhuWzFdPDB8fGhuWzFdPjExPzE6aG5bMl08MXx8aG5bMl0+aWkoaG5bMF0saG5bMV0pPzI6aG5bM108MHx8''@;'; put 'put ''aG5bM10+MjR8fDI0PT09aG5bM10mJigwIT09aG5bNF18fDAhPT1obls1XXx8MCE9PWhuWzZdKT8zOmhuWzRdPDB8fGhuWzRdPjU5PzQ6aG5bNV08MHx8aG5bNV0+NTk/NTpobls2XTwwfHxobls2XT45OTk/NjotMSxKKHplKS5fb3ZlcmZsb3dEYXlPZlllYXImJihWdDwwfHxWdD4yKSYmKFZ0''@;'; put 'put ''PTIpLEooemUpLl9vdmVyZmxvd1dlZWtzJiYtMT09PVZ0JiYoVnQ9NyksSih6ZSkuX292ZXJmbG93V2Vla2RheSYmLTE9PT1WdCYmKFZ0PTgpLEooemUpLm92ZXJmbG93PVZ0KSx6ZX12YXIgWXU9L15ccyooKD86WystXVxkezZ9fFxkezR9KS0oPzpcZFxkLVxkXGR8V1xkXGQtXGR8V1xkXGR8''@;'; put 'put ''XGRcZFxkfFxkXGQpKSg/OihUfCApKFxkXGQoPzo6XGRcZCg/OjpcZFxkKD86Wy4sXVxkKyk/KT8pPykoWystXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLHNvPS9eXHMqKCg/OlsrLV1cZHs2fXxcZHs0fSkoPzpcZFxkXGRcZHxXXGRcZFxkfFdcZFxkfFxkXGRcZHxcZFxkfCkpKD86KFR8''@;'; put 'put ''ICkoXGRcZCg/OlxkXGQoPzpcZFxkKD86Wy4sXVxkKyk/KT8pPykoWystXVxkXGQoPzo6P1xkXGQpP3xccypaKT8pPyQvLFlhPS9afFsrLV1cZFxkKD86Oj9cZFxkKT8vLGFzPVtbIllZWVlZWS1NTS1ERCIsL1srLV1cZHs2fS1cZFxkLVxkXGQvXSxbIllZWVktTU0tREQiLC9cZHs0fS1cZFxk''@;'; put 'put ''LVxkXGQvXSxbIkdHR0ctW1ddV1ctRSIsL1xkezR9LVdcZFxkLVxkL10sWyJHR0dHLVtXXVdXIiwvXGR7NH0tV1xkXGQvLCExXSxbIllZWVktREREIiwvXGR7NH0tXGR7M30vXSxbIllZWVktTU0iLC9cZHs0fS1cZFxkLywhMV0sWyJZWVlZWVlNTUREIiwvWystXVxkezEwfS9dLFsiWVlZWU1N''@;'; put 'put ''REQiLC9cZHs4fS9dLFsiR0dHR1tXXVdXRSIsL1xkezR9V1xkezN9L10sWyJHR0dHW1ddV1ciLC9cZHs0fVdcZHsyfS8sITFdLFsiWVlZWURERCIsL1xkezd9L10sWyJZWVlZTU0iLC9cZHs2fS8sITFdLFsiWVlZWSIsL1xkezR9LywhMV1dLFhhPVtbIkhIOm1tOnNzLlNTU1MiLC9cZFxkOlxk''@;'; put 'put ''XGQ6XGRcZFwuXGQrL10sWyJISDptbTpzcyxTU1NTIiwvXGRcZDpcZFxkOlxkXGQsXGQrL10sWyJISDptbTpzcyIsL1xkXGQ6XGRcZDpcZFxkL10sWyJISDptbSIsL1xkXGQ6XGRcZC9dLFsiSEhtbXNzLlNTU1MiLC9cZFxkXGRcZFxkXGRcLlxkKy9dLFsiSEhtbXNzLFNTU1MiLC9cZFxkXGRc''@;'; put 'put ''ZFxkXGQsXGQrL10sWyJISG1tc3MiLC9cZFxkXGRcZFxkXGQvXSxbIkhIbW0iLC9cZFxkXGRcZC9dLFsiSEgiLC9cZFxkL11dLFV1PS9eXC8/RGF0ZVwoKC0/XGQrKS9pLEExPS9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksP1xzKT8oXGR7MSwyfSlccyhKYW58RmVifE1hcnxB''@;'; put 'put ''cHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylccyhcZHsyLDR9KVxzKFxkXGQpOihcZFxkKSg/OjooXGRcZCkpP1xzKD86KFVUfEdNVHxbRUNNUF1bU0RdVCl8KFtael0pfChbKy1dXGR7NH0pKSQvLG1oPXtVVDowLEdNVDowLEVEVDotMjQwLEVTVDotMzAwLENEVDotMzAwLENT''@;'; put 'put ''VDotMzYwLE1EVDotMzYwLE1TVDotNDIwLFBEVDotNDIwLFBTVDotNDgwfTtmdW5jdGlvbiBfYSh6ZSl7dmFyIFZ0LGhuLGVpLFlpLGRhLHphLFJuPXplLl9pLHRyPVl1LmV4ZWMoUm4pfHxzby5leGVjKFJuKSxGcz1hcy5sZW5ndGgsS3U9WGEubGVuZ3RoO2lmKHRyKXtmb3IoSih6ZSkuaXNv''@;'; put 'put ''PSEwLFZ0PTAsaG49RnM7VnQ8aG47VnQrKylpZihhc1tWdF1bMV0uZXhlYyh0clsxXSkpe1lpPWFzW1Z0XVswXSxlaT0hMSE9PWFzW1Z0XVsyXTticmVha31pZihudWxsPT1ZaSlyZXR1cm4gdm9pZCh6ZS5faXNWYWxpZD0hMSk7aWYodHJbM10pe2ZvcihWdD0wLGhuPUt1O1Z0PGhuO1Z0Kysp''@;'; put 'put ''aWYoWGFbVnRdWzFdLmV4ZWModHJbM10pKXtkYT0odHJbMl18fCIgIikrWGFbVnRdWzBdO2JyZWFrfWlmKG51bGw9PWRhKXJldHVybiB2b2lkKHplLl9pc1ZhbGlkPSExKX1pZighZWkmJm51bGwhPWRhKXJldHVybiB2b2lkKHplLl9pc1ZhbGlkPSExKTtpZih0cls0XSl7aWYoIVlhLmV4ZWMo''@;'; put 'put ''dHJbNF0pKXJldHVybiB2b2lkKHplLl9pc1ZhbGlkPSExKTt6YT0iWiJ9emUuX2Y9WWkrKGRhfHwiIikrKHphfHwiIiksbGYoemUpfWVsc2UgemUuX2lzVmFsaWQ9ITF9ZnVuY3Rpb24gazQoemUpe3ZhciBWdD1wYXJzZUludCh6ZSwxMCk7cmV0dXJuIFZ0PD00OT8yZTMrVnQ6VnQ8PTk5OT8x''@;'; put 'put ''OTAwK1Z0OlZ0fWZ1bmN0aW9uIEFzKHplKXt2YXIgaG4sVnQ9QTEuZXhlYyhmdW5jdGlvbiBzbCh6ZSl7cmV0dXJuIHplLnJlcGxhY2UoL1woW14oKV0qXCl8W1xuXHRdL2csIiAiKS5yZXBsYWNlKC8oXHNccyspL2csIiAiKS5yZXBsYWNlKC9eXHNccyovLCIiKS5yZXBsYWNlKC9cc1xzKiQv''@;'; put 'put ''LCIiKX0oemUuX2kpKTtpZihWdCl7aWYoaG49ZnVuY3Rpb24ganAoemUsVnQsaG4sUm4sdHIsZWkpe3ZhciBZaT1bazQoemUpLGxpLmluZGV4T2YoVnQpLHBhcnNlSW50KGhuLDEwKSxwYXJzZUludChSbiwxMCkscGFyc2VJbnQodHIsMTApXTtyZXR1cm4gZWkmJllpLnB1c2gocGFyc2VJbnQo''@;'; put 'put ''ZWksMTApKSxZaX0oVnRbNF0sVnRbM10sVnRbMl0sVnRbNV0sVnRbNl0sVnRbN10pLCFmdW5jdGlvbiB1bCh6ZSxWdCxobil7cmV0dXJuIXplfHxnYy5pbmRleE9mKHplKT09PW5ldyBEYXRlKFZ0WzBdLFZ0WzFdLFZ0WzJdKS5nZXREYXkoKXx8KEooaG4pLndlZWtkYXlNaXNtYXRjaD0hMCxo''@;'; put 'put ''bi5faXNWYWxpZD0hMSwhMSl9KFZ0WzFdLGhuLHplKSlyZXR1cm47emUuX2E9aG4semUuX3R6bT1mdW5jdGlvbiBZMCh6ZSxWdCxobil7aWYoemUpcmV0dXJuIG1oW3plXTtpZihWdClyZXR1cm4gMDt2YXIgUm49cGFyc2VJbnQoaG4sMTApLHRyPVJuJTEwMDtyZXR1cm4oUm4tdHIpLzEwMCo2''@;'; put 'put ''MCt0cn0oVnRbOF0sVnRbOV0sVnRbMTBdKSx6ZS5fZD12aS5hcHBseShudWxsLHplLl9hKSx6ZS5fZC5zZXRVVENNaW51dGVzKHplLl9kLmdldFVUQ01pbnV0ZXMoKS16ZS5fdHptKSxKKHplKS5yZmMyODIyPSEwfWVsc2UgemUuX2lzVmFsaWQ9ITF9ZnVuY3Rpb24gRm8oemUsVnQsaG4pe3Jl''@;'; put 'put ''dHVybiBudWxsIT16ZT96ZTpudWxsIT1WdD9WdDpobn1mdW5jdGlvbiB5MSh6ZSl7dmFyIFZ0LGhuLHRyLGVpLFlpLFJuPVtdO2lmKCF6ZS5fZCl7Zm9yKHRyPWZ1bmN0aW9uIGdkKHplKXt2YXIgVnQ9bmV3IERhdGUoQi5ub3coKSk7cmV0dXJuIHplLl91c2VVVEM/W1Z0LmdldFVUQ0Z1bGxZ''@;'; put 'put ''ZWFyKCksVnQuZ2V0VVRDTW9udGgoKSxWdC5nZXRVVENEYXRlKCldOltWdC5nZXRGdWxsWWVhcigpLFZ0LmdldE1vbnRoKCksVnQuZ2V0RGF0ZSgpXX0oemUpLHplLl93JiZudWxsPT16ZS5fYVsyXSYmbnVsbD09emUuX2FbMV0mJmZ1bmN0aW9uIHcxKHplKXt2YXIgVnQsaG4sUm4sdHIsZWks''@;'; put 'put ''WWksZGEsemEsRnM7bnVsbCE9KFZ0PXplLl93KS5HR3x8bnVsbCE9VnQuV3x8bnVsbCE9VnQuRT8oZWk9MSxZaT00LGhuPUZvKFZ0LkdHLHplLl9hWzBdLHJsKGtzKCksMSw0KS55ZWFyKSxSbj1GbyhWdC5XLDEpLCgodHI9Rm8oVnQuRSwxKSk8MXx8dHI+NykmJih6YT0hMCkpOihlaT16ZS5f''@;'; put 'put ''bG9jYWxlLl93ZWVrLmRvdyxZaT16ZS5fbG9jYWxlLl93ZWVrLmRveSxGcz1ybChrcygpLGVpLFlpKSxobj1GbyhWdC5nZyx6ZS5fYVswXSxGcy55ZWFyKSxSbj1GbyhWdC53LEZzLndlZWspLG51bGwhPVZ0LmQ/KCh0cj1WdC5kKTwwfHx0cj42KSYmKHphPSEwKTpudWxsIT1WdC5lPyh0cj1W''@;'; put 'put ''dC5lK2VpLChWdC5lPDB8fFZ0LmU+NikmJih6YT0hMCkpOnRyPWVpKSxSbjwxfHxSbj5faShobixlaSxZaSk/Sih6ZSkuX292ZXJmbG93V2Vla3M9ITA6bnVsbCE9emE/Sih6ZSkuX292ZXJmbG93V2Vla2RheT0hMDooZGE9c2EoaG4sUm4sdHIsZWksWWkpLHplLl9hWzBdPWRhLnllYXIsemUu''@;'; put 'put ''X2RheU9mWWVhcj1kYS5kYXlPZlllYXIpfSh6ZSksbnVsbCE9emUuX2RheU9mWWVhciYmKFlpPUZvKHplLl9hWzBdLHRyWzBdKSwoemUuX2RheU9mWWVhcj5NYShZaSl8fDA9PT16ZS5fZGF5T2ZZZWFyKSYmKEooemUpLl9vdmVyZmxvd0RheU9mWWVhcj0hMCksaG49dmkoWWksMCx6ZS5fZGF5''@;'; put 'put ''T2ZZZWFyKSx6ZS5fYVsxXT1obi5nZXRVVENNb250aCgpLHplLl9hWzJdPWhuLmdldFVUQ0RhdGUoKSksVnQ9MDtWdDwzJiZudWxsPT16ZS5fYVtWdF07KytWdCl6ZS5fYVtWdF09Um5bVnRdPXRyW1Z0XTtmb3IoO1Z0PDc7VnQrKyl6ZS5fYVtWdF09Um5bVnRdPW51bGw9PXplLl9hW1Z0XT8y''@;'; put 'put ''PT09VnQ/MTowOnplLl9hW1Z0XTsyND09PXplLl9hWzNdJiYwPT09emUuX2FbNF0mJjA9PT16ZS5fYVs1XSYmMD09PXplLl9hWzZdJiYoemUuX25leHREYXk9ITAsemUuX2FbM109MCksemUuX2Q9KHplLl91c2VVVEM/dmk6QWkpLmFwcGx5KG51bGwsUm4pLGVpPXplLl91c2VVVEM/emUuX2Qu''@;'; put 'put ''Z2V0VVRDRGF5KCk6emUuX2QuZ2V0RGF5KCksbnVsbCE9emUuX3R6bSYmemUuX2Quc2V0VVRDTWludXRlcyh6ZS5fZC5nZXRVVENNaW51dGVzKCktemUuX3R6bSksemUuX25leHREYXkmJih6ZS5fYVszXT0yNCksemUuX3cmJnZvaWQgMCE9PXplLl93LmQmJnplLl93LmQhPT1laSYmKEooemUp''@;'; put 'put ''LndlZWtkYXlNaXNtYXRjaD0hMCl9fWZ1bmN0aW9uIGxmKHplKXtpZih6ZS5fZiE9PUIuSVNPXzg2MDEpaWYoemUuX2YhPT1CLlJGQ18yODIyKXt6ZS5fYT1bXSxKKHplKS5lbXB0eT0hMDt2YXIgaG4sUm4sdHIsZWksWWksRnMsS3UsVnQ9IiIremUuX2ksZGE9VnQubGVuZ3RoLHphPTA7Zm9y''@;'; put 'put ''KEt1PSh0cj1ndCh6ZS5fZix6ZS5fbG9jYWxlKS5tYXRjaChTKXx8W10pLmxlbmd0aCxobj0wO2huPEt1O2huKyspKFJuPShWdC5tYXRjaCh6bihlaT10cltobl0semUpKXx8W10pWzBdKSYmKChZaT1WdC5zdWJzdHIoMCxWdC5pbmRleE9mKFJuKSkpLmxlbmd0aD4wJiZKKHplKS51bnVzZWRJ''@;'; put 'put ''bnB1dC5wdXNoKFlpKSxWdD1WdC5zbGljZShWdC5pbmRleE9mKFJuKStSbi5sZW5ndGgpLHphKz1Sbi5sZW5ndGgpLENlW2VpXT8oUm4/Sih6ZSkuZW1wdHk9ITE6Sih6ZSkudW51c2VkVG9rZW5zLnB1c2goZWkpLGNuKGVpLFJuLHplKSk6emUuX3N0cmljdCYmIVJuJiZKKHplKS51bnVzZWRU''@;'; put 'put ''b2tlbnMucHVzaChlaSk7Sih6ZSkuY2hhcnNMZWZ0T3Zlcj1kYS16YSxWdC5sZW5ndGg+MCYmSih6ZSkudW51c2VkSW5wdXQucHVzaChWdCksemUuX2FbM108PTEyJiYhMD09PUooemUpLmJpZ0hvdXImJnplLl9hWzNdPjAmJihKKHplKS5iaWdIb3VyPXZvaWQgMCksSih6ZSkucGFyc2VkRGF0''@;'; put 'put ''ZVBhcnRzPXplLl9hLnNsaWNlKDApLEooemUpLm1lcmlkaWVtPXplLl9tZXJpZGllbSx6ZS5fYVszXT1mdW5jdGlvbiBtZCh6ZSxWdCxobil7dmFyIFJuO3JldHVybiBudWxsPT1obj9WdDpudWxsIT16ZS5tZXJpZGllbUhvdXI/emUubWVyaWRpZW1Ib3VyKFZ0LGhuKToobnVsbCE9emUuaXNQ''@;'; put 'put ''TSYmKChSbj16ZS5pc1BNKGhuKSkmJlZ0PDEyJiYoVnQrPTEyKSwhUm4mJjEyPT09VnQmJihWdD0wKSksVnQpfSh6ZS5fbG9jYWxlLHplLl9hWzNdLHplLl9tZXJpZGllbSksbnVsbCE9PShGcz1KKHplKS5lcmEpJiYoemUuX2FbMF09emUuX2xvY2FsZS5lcmFzQ29udmVydFllYXIoRnMsemUu''@;'; put 'put ''X2FbMF0pKSx5MSh6ZSkscDMoemUpfWVsc2UgQXMoemUpO2Vsc2UgX2EoemUpfWZ1bmN0aW9uIFR1KHplKXt2YXIgVnQ9emUuX2ksaG49emUuX2Y7cmV0dXJuIHplLl9sb2NhbGU9emUuX2xvY2FsZXx8dTEoemUuX2wpLG51bGw9PT1WdHx8dm9pZCAwPT09aG4mJiIiPT09VnQ/Y2Uoe251bGxJ''@;'; put 'put ''bnB1dDohMH0pOigic3RyaW5nIj09dHlwZW9mIFZ0JiYoemUuX2k9VnQ9emUuX2xvY2FsZS5wcmVwYXJzZShWdCkpLFNlKFZ0KT9uZXcga2UocDMoVnQpKTooWShWdCk/emUuX2Q9VnQ6RWUoaG4pP2Z1bmN0aW9uICRsKHplKXt2YXIgVnQsaG4sUm4sdHIsZWksWWksZGE9ITEsemE9emUuX2Yu''@;'; put 'put ''bGVuZ3RoO2lmKDA9PT16YSlyZXR1cm4gSih6ZSkuaW52YWxpZEZvcm1hdD0hMCx2b2lkKHplLl9kPW5ldyBEYXRlKE5hTikpO2Zvcih0cj0wO3RyPHphO3RyKyspZWk9MCxZaT0hMSxWdD1BZSh7fSx6ZSksbnVsbCE9emUuX3VzZVVUQyYmKFZ0Ll91c2VVVEM9emUuX3VzZVVUQyksVnQuX2Y9''@;'; put 'put ''emUuX2ZbdHJdLGxmKFZ0KSxvZShWdCkmJihZaT0hMCksZWkrPUooVnQpLmNoYXJzTGVmdE92ZXIsZWkrPTEwKkooVnQpLnVudXNlZFRva2Vucy5sZW5ndGgsSihWdCkuc2NvcmU9ZWksZGE/ZWk8Um4mJihSbj1laSxobj1WdCk6KG51bGw9PVJufHxlaTxSbnx8WWkpJiYoUm49ZWksaG49VnQs''@;'; put 'put ''WWkmJihkYT0hMCkpO04oemUsaG58fFZ0KX0oemUpOmhuP2xmKHplKTpmdW5jdGlvbiBzZih6ZSl7dmFyIFZ0PXplLl9pO3JlKFZ0KT96ZS5fZD1uZXcgRGF0ZShCLm5vdygpKTpZKFZ0KT96ZS5fZD1uZXcgRGF0ZShWdC52YWx1ZU9mKCkpOiJzdHJpbmciPT10eXBlb2YgVnQ/ZnVuY3Rpb24g''@;'; put 'put ''ZmEoemUpe3ZhciBWdD1VdS5leGVjKHplLl9pKTtudWxsPT09VnQ/KF9hKHplKSwhMT09PXplLl9pc1ZhbGlkJiYoZGVsZXRlIHplLl9pc1ZhbGlkLEFzKHplKSwhMT09PXplLl9pc1ZhbGlkJiYoZGVsZXRlIHplLl9pc1ZhbGlkLHplLl9zdHJpY3Q/emUuX2lzVmFsaWQ9ITE6Qi5jcmVhdGVG''@;'; put 'put ''cm9tSW5wdXRGYWxsYmFjayh6ZSkpKSk6emUuX2Q9bmV3IERhdGUoK1Z0WzFdKX0oemUpOkVlKFZ0KT8oemUuX2E9VyhWdC5zbGljZSgwKSxmdW5jdGlvbihobil7cmV0dXJuIHBhcnNlSW50KGhuLDEwKX0pLHkxKHplKSk6VShWdCk/ZnVuY3Rpb24geHUoemUpe2lmKCF6ZS5fZCl7dmFyIFZ0''@;'; put 'put ''PWZ0KHplLl9pKTt6ZS5fYT1XKFtWdC55ZWFyLFZ0Lm1vbnRoLHZvaWQgMD09PVZ0LmRheT9WdC5kYXRlOlZ0LmRheSxWdC5ob3VyLFZ0Lm1pbnV0ZSxWdC5zZWNvbmQsVnQubWlsbGlzZWNvbmRdLGZ1bmN0aW9uKFJuKXtyZXR1cm4gUm4mJnBhcnNlSW50KFJuLDEwKX0pLHkxKHplKX19KHpl''@;'; put 'put ''KTphZShWdCk/emUuX2Q9bmV3IERhdGUoVnQpOkIuY3JlYXRlRnJvbUlucHV0RmFsbGJhY2soemUpfSh6ZSksb2UoemUpfHwoemUuX2Q9bnVsbCksemUpKX1mdW5jdGlvbiBLbyh6ZSxWdCxobixSbix0cil7dmFyIGVpPXt9O3JldHVybighMD09PVZ0fHwhMT09PVZ0KSYmKFJuPVZ0LFZ0PXZv''@;'; put 'put ''aWQgMCksKCEwPT09aG58fCExPT09aG4pJiYoUm49aG4saG49dm9pZCAwKSwoVSh6ZSkmJmooemUpfHxFZSh6ZSkmJjA9PT16ZS5sZW5ndGgpJiYoemU9dm9pZCAwKSxlaS5faXNBTW9tZW50T2JqZWN0PSEwLGVpLl91c2VVVEM9ZWkuX2lzVVRDPXRyLGVpLl9sPWhuLGVpLl9pPXplLGVpLl9m''@;'; put 'put ''PVZ0LGVpLl9zdHJpY3Q9Um4sZnVuY3Rpb24gbHUoemUpe3ZhciBWdD1uZXcga2UocDMoVHUoemUpKSk7cmV0dXJuIFZ0Ll9uZXh0RGF5JiYoVnQuYWRkKDEsImQiKSxWdC5fbmV4dERheT12b2lkIDApLFZ0fShlaSl9ZnVuY3Rpb24ga3MoemUsVnQsaG4sUm4pe3JldHVybiBLbyh6ZSxWdCxo''@;'; put 'put ''bixSbiwhMSl9Qi5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjaz1UZSgidmFsdWUgcHJvdmlkZWQgaXMgbm90IGluIGEgcmVjb2duaXplZCBSRkMyODIyIG9yIElTTyBmb3JtYXQuIG1vbWVudCBjb25zdHJ1Y3Rpb24gZmFsbHMgYmFjayB0byBqcyBEYXRlKCksIHdoaWNoIGlzIG5vdCByZWxpYWJs''@;'; put 'put ''ZSBhY3Jvc3MgYWxsIGJyb3dzZXJzIGFuZCB2ZXJzaW9ucy4gTm9uIFJGQzI4MjIvSVNPIGRhdGUgZm9ybWF0cyBhcmUgZGlzY291cmFnZWQuIFBsZWFzZSByZWZlciB0byBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGluZm8uIixmdW5j''@;'; put 'put ''dGlvbih6ZSl7emUuX2Q9bmV3IERhdGUoemUuX2krKHplLl91c2VVVEM/IiBVVEMiOiIiKSl9KSxCLklTT184NjAxPWZ1bmN0aW9uKCl7fSxCLlJGQ18yODIyPWZ1bmN0aW9uKCl7fTt2YXIgemc9VGUoIm1vbWVudCgpLm1pbiBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50Lm1heCBpbnN0ZWFk''@;'; put 'put ''LiBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL21pbi1tYXgvIixmdW5jdGlvbigpe3ZhciB6ZT1rcy5hcHBseShudWxsLGFyZ3VtZW50cyk7cmV0dXJuIHRoaXMuaXNWYWxpZCgpJiZ6ZS5pc1ZhbGlkKCk/emU8dGhpcz90aGlzOnplOmNlKCl9KSxWZj1UZSgibW9tZW50''@;'; put 'put ''KCkubWF4IGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWluIGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8iLGZ1bmN0aW9uKCl7dmFyIHplPWtzLmFwcGx5KG51bGwsYXJndW1lbnRzKTtyZXR1cm4gdGhpcy5pc1ZhbGlkKCkmJnplLmlz''@;'; put 'put ''VmFsaWQoKT96ZT50aGlzP3RoaXM6emU6Y2UoKX0pO2Z1bmN0aW9uIHF3KHplLFZ0KXt2YXIgaG4sUm47aWYoMT09PVZ0Lmxlbmd0aCYmRWUoVnRbMF0pJiYoVnQ9VnRbMF0pLCFWdC5sZW5ndGgpcmV0dXJuIGtzKCk7Zm9yKGhuPVZ0WzBdLFJuPTE7Um48VnQubGVuZ3RoOysrUm4pKCFWdFtS''@;'; put 'put ''bl0uaXNWYWxpZCgpfHxWdFtSbl1bemVdKGhuKSkmJihobj1WdFtSbl0pO3JldHVybiBobn12YXIgQWg9WyJ5ZWFyIiwicXVhcnRlciIsIm1vbnRoIiwid2VlayIsImRheSIsImhvdXIiLCJtaW51dGUiLCJzZWNvbmQiLCJtaWxsaXNlY29uZCJdO2Z1bmN0aW9uIFpwKHplKXt2YXIgVnQ9ZnQo''@;'; put 'put ''emUpLGhuPVZ0LnllYXJ8fDAsUm49VnQucXVhcnRlcnx8MCx0cj1WdC5tb250aHx8MCxlaT1WdC53ZWVrfHxWdC5pc29XZWVrfHwwLFlpPVZ0LmRheXx8MCxkYT1WdC5ob3VyfHwwLHphPVZ0Lm1pbnV0ZXx8MCxGcz1WdC5zZWNvbmR8fDAsS3U9VnQubWlsbGlzZWNvbmR8fDA7dGhpcy5faXNW''@;'; put 'put ''YWxpZD1mdW5jdGlvbiBlYih6ZSl7dmFyIFZ0LFJuLGhuPSExLHRyPUFoLmxlbmd0aDtmb3IoVnQgaW4gemUpaWYoUSh6ZSxWdCkmJigtMT09PVZyLmNhbGwoQWgsVnQpfHxudWxsIT16ZVtWdF0mJmlzTmFOKHplW1Z0XSkpKXJldHVybiExO2ZvcihSbj0wO1JuPHRyOysrUm4paWYoemVbQWhb''@;'; put 'put ''Um5dXSl7aWYoaG4pcmV0dXJuITE7cGFyc2VGbG9hdCh6ZVtBaFtSbl1dKSE9PUp0KHplW0FoW1JuXV0pJiYoaG49ITApfXJldHVybiEwfShWdCksdGhpcy5fbWlsbGlzZWNvbmRzPStLdSsxZTMqRnMrNmU0KnphKzFlMypkYSo2MCo2MCx0aGlzLl9kYXlzPStZaSs3KmVpLHRoaXMuX21vbnRo''@;'; put 'put ''cz0rdHIrMypSbisxMipobix0aGlzLl9kYXRhPXt9LHRoaXMuX2xvY2FsZT11MSgpLHRoaXMuX2J1YmJsZSgpfWZ1bmN0aW9uIGw5KHplKXtyZXR1cm4gemUgaW5zdGFuY2VvZiBacH1mdW5jdGlvbiBHZyh6ZSl7cmV0dXJuIHplPDA/LTEqTWF0aC5yb3VuZCgtMSp6ZSk6TWF0aC5yb3VuZCh6''@;'; put 'put ''ZSl9ZnVuY3Rpb24gV2coemUsVnQpe0RlKHplLDAsMCxmdW5jdGlvbigpe3ZhciBobj10aGlzLnV0Y09mZnNldCgpLFJuPSIrIjtyZXR1cm4gaG48MCYmKGhuPS1obixSbj0iLSIpLFJuK1Qofn4oaG4vNjApLDIpK1Z0K1Qofn5obiU2MCwyKX0pfVdnKCJaIiwiOiIpLFdnKCJaWiIsIiIpLHRu''@;'; put 'put ''KCJaIixOdCksdG4oIlpaIixOdCksbW4oWyJaIiwiWloiXSxmdW5jdGlvbih6ZSxWdCxobil7aG4uX3VzZVVUQz0hMCxobi5fdHptPXM5KE50LHplKX0pO3ZhciBJTT0vKFtcK1wtXXxcZFxkKS9naTtmdW5jdGlvbiBzOSh6ZSxWdCl7dmFyIHRyLGVpLGhuPShWdHx8IiIpLm1hdGNoKHplKTty''@;'; put 'put ''ZXR1cm4gbnVsbD09PWhuP251bGw6MD09PShlaT02MCoodHI9KChobltobi5sZW5ndGgtMV18fFtdKSsiIikubWF0Y2goSU0pfHxbIi0iLDAsMF0pWzFdK0p0KHRyWzJdKSk/MDoiKyI9PT10clswXT9laTotZWl9ZnVuY3Rpb24gWWcoemUsVnQpe3ZhciBobixSbjtyZXR1cm4gVnQuX2lzVVRD''@;'; put 'put ''Pyhobj1WdC5jbG9uZSgpLFJuPShTZSh6ZSl8fFkoemUpP3plLnZhbHVlT2YoKTprcyh6ZSkudmFsdWVPZigpKS1obi52YWx1ZU9mKCksaG4uX2Quc2V0VGltZShobi5fZC52YWx1ZU9mKCkrUm4pLEIudXBkYXRlT2Zmc2V0KGhuLCExKSxobik6a3MoemUpLmxvY2FsKCl9ZnVuY3Rpb24gd2go''@;'; put 'put ''emUpe3JldHVybi1NYXRoLnJvdW5kKHplLl9kLmdldFRpbWV6b25lT2Zmc2V0KCkpfWZ1bmN0aW9uIG5iKCl7cmV0dXJuISF0aGlzLmlzVmFsaWQoKSYmdGhpcy5faXNVVEMmJjA9PT10aGlzLl9vZmZzZXR9Qi51cGRhdGVPZmZzZXQ9ZnVuY3Rpb24oKXt9O3ZhciBRZz0vXigtfFwrKT8oPzoo''@;'; put 'put ''XGQqKVsuIF0pPyhcZCspOihcZCspKD86OihcZCspKFwuXGQqKT8pPyQvLFdwPS9eKC18XCspP1AoPzooWy0rXT9bMC05LC5dKilZKT8oPzooWy0rXT9bMC05LC5dKilNKT8oPzooWy0rXT9bMC05LC5dKilXKT8oPzooWy0rXT9bMC05LC5dKilEKT8oPzpUKD86KFstK10/WzAtOSwuXSopSCk/''@;'; put 'put ''KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopUyk/KT8kLztmdW5jdGlvbiBRcyh6ZSxWdCl7dmFyIHRyLGVpLFlpLGhuPXplLFJuPW51bGw7cmV0dXJuIGw5KHplKT9obj17bXM6emUuX21pbGxpc2Vjb25kcyxkOnplLl9kYXlzLE06emUuX21vbnRoc306YWUoemUpfHwh''@;'; put 'put ''aXNOYU4oK3plKT8oaG49e30sVnQ/aG5bVnRdPSt6ZTpobi5taWxsaXNlY29uZHM9K3plKTooUm49UWcuZXhlYyh6ZSkpPyh0cj0iLSI9PT1SblsxXT8tMToxLGhuPXt5OjAsZDpKdChSblsyXSkqdHIsaDpKdChSblszXSkqdHIsbTpKdChSbls0XSkqdHIsczpKdChSbls1XSkqdHIsbXM6SnQo''@;'; put 'put ''R2coMWUzKlJuWzZdKSkqdHJ9KTooUm49V3AuZXhlYyh6ZSkpP2huPXt5OmJoKFJuWzJdLHRyPSItIj09PVJuWzFdPy0xOjEpLE06YmgoUm5bM10sdHIpLHc6YmgoUm5bNF0sdHIpLGQ6YmgoUm5bNV0sdHIpLGg6YmgoUm5bNl0sdHIpLG06YmgoUm5bN10sdHIpLHM6YmgoUm5bOF0sdHIpfTpu''@;'; put 'put ''dWxsPT1obj9obj17fToib2JqZWN0Ij09dHlwZW9mIGhuJiYoImZyb20iaW4gaG58fCJ0byJpbiBobikmJihZaT1mdW5jdGlvbiBKZyh6ZSxWdCl7dmFyIGhuO3JldHVybiB6ZS5pc1ZhbGlkKCkmJlZ0LmlzVmFsaWQoKT8oVnQ9WWcoVnQsemUpLHplLmlzQmVmb3JlKFZ0KT9obj1ZcCh6ZSxW''@;'; put 'put ''dCk6KChobj1ZcChWdCx6ZSkpLm1pbGxpc2Vjb25kcz0taG4ubWlsbGlzZWNvbmRzLGhuLm1vbnRocz0taG4ubW9udGhzKSxobik6e21pbGxpc2Vjb25kczowLG1vbnRoczowfX0oa3MoaG4uZnJvbSksa3MoaG4udG8pKSwoaG49e30pLm1zPVlpLm1pbGxpc2Vjb25kcyxobi5NPVlpLm1vbnRo''@;'; put 'put ''cyksZWk9bmV3IFpwKGhuKSxsOSh6ZSkmJlEoemUsIl9sb2NhbGUiKSYmKGVpLl9sb2NhbGU9emUuX2xvY2FsZSksbDkoemUpJiZRKHplLCJfaXNWYWxpZCIpJiYoZWkuX2lzVmFsaWQ9emUuX2lzVmFsaWQpLGVpfWZ1bmN0aW9uIGJoKHplLFZ0KXt2YXIgaG49emUmJnBhcnNlRmxvYXQoemUu''@;'; put 'put ''cmVwbGFjZSgiLCIsIi4iKSk7cmV0dXJuKGlzTmFOKGhuKT8wOmhuKSpWdH1mdW5jdGlvbiBZcCh6ZSxWdCl7dmFyIGhuPXt9O3JldHVybiBobi5tb250aHM9VnQubW9udGgoKS16ZS5tb250aCgpKzEyKihWdC55ZWFyKCktemUueWVhcigpKSx6ZS5jbG9uZSgpLmFkZChobi5tb250aHMsIk0i''@;'; put 'put ''KS5pc0FmdGVyKFZ0KSYmLS1obi5tb250aHMsaG4ubWlsbGlzZWNvbmRzPStWdC0remUuY2xvbmUoKS5hZGQoaG4ubW9udGhzLCJNIiksaG59ZnVuY3Rpb24gVmMoemUsVnQpe3JldHVybiBmdW5jdGlvbihobixSbil7dmFyIGVpO3JldHVybiBudWxsIT09Um4mJiFpc05hTigrUm4pJiYoaGUo''@;'; put 'put ''VnQsIm1vbWVudCgpLiIrVnQrIihwZXJpb2QsIG51bWJlcikgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBtb21lbnQoKS4iK1Z0KyIobnVtYmVyLCBwZXJpb2QpLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9hZGQtaW52ZXJ0ZWQtcGFyYW0vIGZvciBtb3Jl''@;'; put 'put ''IGluZm8uIiksZWk9aG4saG49Um4sUm49ZWkpLEU0KHRoaXMsUXMoaG4sUm4pLHplKSx0aGlzfX1mdW5jdGlvbiBFNCh6ZSxWdCxobixSbil7dmFyIHRyPVZ0Ll9taWxsaXNlY29uZHMsZWk9R2coVnQuX2RheXMpLFlpPUdnKFZ0Ll9tb250aHMpOyF6ZS5pc1ZhbGlkKCl8fChSbj1udWxsPT1S''@;'; put 'put ''bnx8Um4sWWkmJlcwKHplLGRuKHplLCJNb250aCIpK1lpKmhuKSxlaSYmeW4oemUsIkRhdGUiLGRuKHplLCJEYXRlIikrZWkqaG4pLHRyJiZ6ZS5fZC5zZXRUaW1lKHplLl9kLnZhbHVlT2YoKSt0cipobiksUm4mJkIudXBkYXRlT2Zmc2V0KHplLGVpfHxZaSkpfVFzLmZuPVpwLnByb3RvdHlw''@;'; put 'put ''ZSxRcy5pbnZhbGlkPWZ1bmN0aW9uIHloKCl7cmV0dXJuIFFzKE5hTil9O3ZhciBETT1WYygxLCJhZGQiKSxoOT1WYygtMSwic3VidHJhY3QiKTtmdW5jdGlvbiBkOSh6ZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB6ZXx8emUgaW5zdGFuY2VvZiBTdHJpbmd9ZnVuY3Rpb24gc3UoemUpe3Jl''@;'; put 'put ''dHVybiBTZSh6ZSl8fFkoemUpfHxkOSh6ZSl8fGFlKHplKXx8ZnVuY3Rpb24gTE0oemUpe3ZhciBWdD1FZSh6ZSksaG49ITE7cmV0dXJuIFZ0JiYoaG49MD09PXplLmZpbHRlcihmdW5jdGlvbihSbil7cmV0dXJuIWFlKFJuKSYmZDkoemUpfSkubGVuZ3RoKSxWdCYmaG59KHplKXx8ZnVuY3Rp''@;'; put 'put ''b24gWDIoemUpe3ZhciB0cixWdD1VKHplKSYmIWooemUpLGhuPSExLFJuPVsieWVhcnMiLCJ5ZWFyIiwieSIsIm1vbnRocyIsIm1vbnRoIiwiTSIsImRheXMiLCJkYXkiLCJkIiwiZGF0ZXMiLCJkYXRlIiwiRCIsImhvdXJzIiwiaG91ciIsImgiLCJtaW51dGVzIiwibWludXRlIiwibSIsInNl''@;'; put 'put ''Y29uZHMiLCJzZWNvbmQiLCJzIiwibWlsbGlzZWNvbmRzIiwibWlsbGlzZWNvbmQiLCJtcyJdLFlpPVJuLmxlbmd0aDtmb3IodHI9MDt0cjxZaTt0cis9MSlobj1obnx8USh6ZSxSblt0cl0pO3JldHVybiBWdCYmaG59KHplKXx8bnVsbD09emV9ZnVuY3Rpb24gcmIoemUpe3ZhciB0cixWdD1V''@;'; put 'put ''KHplKSYmIWooemUpLGhuPSExLFJuPVsic2FtZURheSIsIm5leHREYXkiLCJsYXN0RGF5IiwibmV4dFdlZWsiLCJsYXN0V2VlayIsInNhbWVFbHNlIl07Zm9yKHRyPTA7dHI8Um4ubGVuZ3RoO3RyKz0xKWhuPWhufHxRKHplLFJuW3RyXSk7cmV0dXJuIFZ0JiZobn1mdW5jdGlvbiBfaCh6ZSxW''@;'; put 'put ''dCl7aWYoemUuZGF0ZSgpPFZ0LmRhdGUoKSlyZXR1cm4tX2goVnQsemUpO3ZhciBobj0xMiooVnQueWVhcigpLXplLnllYXIoKSkrKFZ0Lm1vbnRoKCktemUubW9udGgoKSksUm49emUuY2xvbmUoKS5hZGQoaG4sIm1vbnRocyIpO3JldHVybi0oaG4rKFZ0LVJuPDA/KFZ0LVJuKS8oUm4temUu''@;'; put 'put ''Y2xvbmUoKS5hZGQoaG4tMSwibW9udGhzIikpOihWdC1SbikvKHplLmNsb25lKCkuYWRkKGhuKzEsIm1vbnRocyIpLVJuKSkpfHwwfWZ1bmN0aW9uIGR0KHplKXt2YXIgVnQ7cmV0dXJuIHZvaWQgMD09PXplP3RoaXMuX2xvY2FsZS5fYWJicjoobnVsbCE9KFZ0PXUxKHplKSkmJih0aGlzLl9s''@;'; put 'put ''b2NhbGU9VnQpLHRoaXMpfUIuZGVmYXVsdEZvcm1hdD0iWVlZWS1NTS1ERFRISDptbTpzc1oiLEIuZGVmYXVsdEZvcm1hdFV0Yz0iWVlZWS1NTS1ERFRISDptbTpzc1taXSI7dmFyIEl0PVRlKCJtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxv''@;'; put 'put ''Y2FsZURhdGEoKSB0byBnZXQgdGhlIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLiIsZnVuY3Rpb24oemUpe3JldHVybiB2b2lkIDA9PT16ZT90aGlzLmxvY2FsZURhdGEoKTp0aGlzLmxvY2FsZSh6ZSl9KTtmdW5jdGlv''@;'; put 'put ''biBQdCgpe3JldHVybiB0aGlzLl9sb2NhbGV9dmFyIGl0PTZlNCxhPTYwKml0LFh0PTM1MDYzMjgqYTtmdW5jdGlvbiBocih6ZSxWdCl7cmV0dXJuKHplJVZ0K1Z0KSVWdH1mdW5jdGlvbiBQaSh6ZSxWdCxobil7cmV0dXJuIHplPDEwMCYmemU+PTA/bmV3IERhdGUoemUrNDAwLFZ0LGhuKS1Y''@;'; put 'put ''dDpuZXcgRGF0ZSh6ZSxWdCxobikudmFsdWVPZigpfWZ1bmN0aW9uIGpuKHplLFZ0LGhuKXtyZXR1cm4gemU8MTAwJiZ6ZT49MD9EYXRlLlVUQyh6ZSs0MDAsVnQsaG4pLVh0OkRhdGUuVVRDKHplLFZ0LGhuKX1mdW5jdGlvbiBxbCh6ZSxWdCl7cmV0dXJuIFZ0LmVyYXNBYmJyUmVnZXgoemUp''@;'; put 'put ''fWZ1bmN0aW9uIEpwKCl7dmFyIHRyLGVpLHplPVtdLFZ0PVtdLGhuPVtdLFJuPVtdLFlpPXRoaXMuZXJhcygpO2Zvcih0cj0wLGVpPVlpLmxlbmd0aDt0cjxlaTsrK3RyKVZ0LnB1c2goQm4oWWlbdHJdLm5hbWUpKSx6ZS5wdXNoKEJuKFlpW3RyXS5hYmJyKSksaG4ucHVzaChCbihZaVt0cl0u''@;'; put 'put ''bmFycm93KSksUm4ucHVzaChCbihZaVt0cl0ubmFtZSkpLFJuLnB1c2goQm4oWWlbdHJdLmFiYnIpKSxSbi5wdXNoKEJuKFlpW3RyXS5uYXJyb3cpKTt0aGlzLl9lcmFzUmVnZXg9bmV3IFJlZ0V4cCgiXigiK1JuLmpvaW4oInwiKSsiKSIsImkiKSx0aGlzLl9lcmFzTmFtZVJlZ2V4PW5ldyBS''@;'; put 'put ''ZWdFeHAoIl4oIitWdC5qb2luKCJ8IikrIikiLCJpIiksdGhpcy5fZXJhc0FiYnJSZWdleD1uZXcgUmVnRXhwKCJeKCIremUuam9pbigifCIpKyIpIiwiaSIpLHRoaXMuX2VyYXNOYXJyb3dSZWdleD1uZXcgUmVnRXhwKCJeKCIraG4uam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIFhwKHpl''@;'; put 'put ''LFZ0KXtEZSgwLFt6ZSx6ZS5sZW5ndGhdLDAsVnQpfWZ1bmN0aW9uIGFiKHplLFZ0LGhuLFJuLHRyKXt2YXIgZWk7cmV0dXJuIG51bGw9PXplP3JsKHRoaXMsUm4sdHIpLnllYXI6KFZ0PihlaT1faSh6ZSxSbix0cikpJiYoVnQ9ZWkpLEZNLmNhbGwodGhpcyx6ZSxWdCxobixSbix0cikpfWZ1''@;'; put 'put ''bmN0aW9uIEZNKHplLFZ0LGhuLFJuLHRyKXt2YXIgZWk9c2EoemUsVnQsaG4sUm4sdHIpLFlpPXZpKGVpLnllYXIsMCxlaS5kYXlPZlllYXIpO3JldHVybiB0aGlzLnllYXIoWWkuZ2V0VVRDRnVsbFllYXIoKSksdGhpcy5tb250aChZaS5nZXRVVENNb250aCgpKSx0aGlzLmRhdGUoWWkuZ2V0''@;'; put 'put ''VVRDRGF0ZSgpKSx0aGlzfURlKCJOIiwwLDAsImVyYUFiYnIiKSxEZSgiTk4iLDAsMCwiZXJhQWJiciIpLERlKCJOTk4iLDAsMCwiZXJhQWJiciIpLERlKCJOTk5OIiwwLDAsImVyYU5hbWUiKSxEZSgiTk5OTk4iLDAsMCwiZXJhTmFycm93IiksRGUoInkiLFsieSIsMV0sInlvIiwiZXJhWWVh''@;'; put 'put ''ciIpLERlKCJ5IixbInl5IiwyXSwwLCJlcmFZZWFyIiksRGUoInkiLFsieXl5IiwzXSwwLCJlcmFZZWFyIiksRGUoInkiLFsieXl5eSIsNF0sMCwiZXJhWWVhciIpLHRuKCJOIixxbCksdG4oIk5OIixxbCksdG4oIk5OTiIscWwpLHRuKCJOTk5OIixmdW5jdGlvbiBoYSh6ZSxWdCl7cmV0dXJu''@;'; put 'put ''IFZ0LmVyYXNOYW1lUmVnZXgoemUpfSksdG4oIk5OTk5OIixmdW5jdGlvbiBEYSh6ZSxWdCl7cmV0dXJuIFZ0LmVyYXNOYXJyb3dSZWdleCh6ZSl9KSxtbihbIk4iLCJOTiIsIk5OTiIsIk5OTk4iLCJOTk5OTiJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXt2YXIgdHI9aG4uX2xvY2FsZS5lcmFz''@;'; put 'put ''UGFyc2UoemUsUm4saG4uX3N0cmljdCk7dHI/SihobikuZXJhPXRyOkooaG4pLmludmFsaWRFcmE9emV9KSx0bigieSIsV3QpLHRuKCJ5eSIsV3QpLHRuKCJ5eXkiLFd0KSx0bigieXl5eSIsV3QpLHRuKCJ5byIsZnVuY3Rpb24gVDgoemUsVnQpe3JldHVybiBWdC5fZXJhWWVhck9yZGluYWxS''@;'; put 'put ''ZWdleHx8V3R9KSxtbihbInkiLCJ5eSIsInl5eSIsInl5eXkiXSwwKSxtbihbInlvIl0sZnVuY3Rpb24oemUsVnQsaG4sUm4pe3ZhciB0cjtobi5fbG9jYWxlLl9lcmFZZWFyT3JkaW5hbFJlZ2V4JiYodHI9emUubWF0Y2goaG4uX2xvY2FsZS5fZXJhWWVhck9yZGluYWxSZWdleCkpLFZ0WzBd''@;'; put 'put ''PWhuLl9sb2NhbGUuZXJhWWVhck9yZGluYWxQYXJzZT9obi5fbG9jYWxlLmVyYVllYXJPcmRpbmFsUGFyc2UoemUsdHIpOnBhcnNlSW50KHplLDEwKX0pLERlKDAsWyJnZyIsMl0sMCxmdW5jdGlvbigpe3JldHVybiB0aGlzLndlZWtZZWFyKCklMTAwfSksRGUoMCxbIkdHIiwyXSwwLGZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIHRoaXMuaXNvV2Vla1llYXIoKSUxMDB9KSxYcCgiZ2dnZyIsIndlZWtZZWFyIiksWHAoImdnZ2dnIiwid2Vla1llYXIiKSxYcCgiR0dHRyIsImlzb1dlZWtZZWFyIiksWHAoIkdHR0dHIiwiaXNvV2Vla1llYXIiKSxMdCgid2Vla1llYXIiLCJnZyIpLEx0KCJpc29XZWVr''@;'; put 'put ''WWVhciIsIkdHIiksR2UoIndlZWtZZWFyIiwxKSxHZSgiaXNvV2Vla1llYXIiLDEpLHRuKCJHIixwbiksdG4oImciLHBuKSx0bigiR0ciLHhyLGVyKSx0bigiZ2ciLHhyLGVyKSx0bigiR0dHRyIsQW4sWG4pLHRuKCJnZ2dnIixBbixYbiksdG4oIkdHR0dHIixxbixGciksdG4oImdnZ2dnIixx''@;'; put 'put ''bixGciksdW4oWyJnZ2dnIiwiZ2dnZ2ciLCJHR0dHIiwiR0dHR0ciXSxmdW5jdGlvbih6ZSxWdCxobixSbil7VnRbUm4uc3Vic3RyKDAsMildPUp0KHplKX0pLHVuKFsiZ2ciLCJHRyJdLGZ1bmN0aW9uKHplLFZ0LGhuLFJuKXtWdFtSbl09Qi5wYXJzZVR3b0RpZ2l0WWVhcih6ZSl9KSxEZSgi''@;'; put 'put ''USIsMCwiUW8iLCJxdWFydGVyIiksTHQoInF1YXJ0ZXIiLCJRIiksR2UoInF1YXJ0ZXIiLDcpLHRuKCJRIixibiksbW4oIlEiLGZ1bmN0aW9uKHplLFZ0KXtWdFsxXT0zKihKdCh6ZSktMSl9KSxEZSgiRCIsWyJERCIsMl0sIkRvIiwiZGF0ZSIpLEx0KCJkYXRlIiwiRCIpLEdlKCJkYXRlIiw5''@;'; put 'put ''KSx0bigiRCIseHIpLHRuKCJERCIseHIsZXIpLHRuKCJEbyIsZnVuY3Rpb24oemUsVnQpe3JldHVybiB6ZT9WdC5fZGF5T2ZNb250aE9yZGluYWxQYXJzZXx8VnQuX29yZGluYWxQYXJzZTpWdC5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnR9KSxtbihbIkQiLCJERCJdLDIpLG1uKCJE''@;'; put 'put ''byIsZnVuY3Rpb24oemUsVnQpe1Z0WzJdPUp0KHplLm1hdGNoKHhyKVswXSl9KTt2YXIgdzI9Z24oIkRhdGUiLCEwKTtEZSgiREREIixbIkREREQiLDNdLCJERERvIiwiZGF5T2ZZZWFyIiksTHQoImRheU9mWWVhciIsIkRERCIpLEdlKCJkYXlPZlllYXIiLDQpLHRuKCJEREQiLG5yKSx0bigi''@;'; put 'put ''RERERCIsc3IpLG1uKFsiREREIiwiRERERCJdLGZ1bmN0aW9uKHplLFZ0LGhuKXtobi5fZGF5T2ZZZWFyPUp0KHplKX0pLERlKCJtIixbIm1tIiwyXSwwLCJtaW51dGUiKSxMdCgibWludXRlIiwibSIpLEdlKCJtaW51dGUiLDE0KSx0bigibSIseHIpLHRuKCJtbSIseHIsZXIpLG1uKFsibSIs''@;'; put 'put ''Im1tIl0sNCk7dmFyIHlkPWduKCJNaW51dGVzIiwhMSk7RGUoInMiLFsic3MiLDJdLDAsInNlY29uZCIpLEx0KCJzZWNvbmQiLCJzIiksR2UoInNlY29uZCIsMTUpLHRuKCJzIix4ciksdG4oInNzIix4cixlciksbW4oWyJzIiwic3MiXSw1KTt2YXIgZmYsSTgsS3A9Z24oIlNlY29uZHMiLCEx''@;'; put 'put ''KTtmb3IoRGUoIlMiLDAsMCxmdW5jdGlvbigpe3JldHVybn5+KHRoaXMubWlsbGlzZWNvbmQoKS8xMDApfSksRGUoMCxbIlNTIiwyXSwwLGZ1bmN0aW9uKCl7cmV0dXJufn4odGhpcy5taWxsaXNlY29uZCgpLzEwKX0pLERlKDAsWyJTU1MiLDNdLDAsIm1pbGxpc2Vjb25kIiksRGUoMCxbIlNT''@;'; put 'put ''U1MiLDRdLDAsZnVuY3Rpb24oKXtyZXR1cm4gMTAqdGhpcy5taWxsaXNlY29uZCgpfSksRGUoMCxbIlNTU1NTIiw1XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDEwMCp0aGlzLm1pbGxpc2Vjb25kKCl9KSxEZSgwLFsiU1NTU1NTIiw2XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDFlMyp0aGlzLm1pbGxp''@;'; put 'put ''c2Vjb25kKCl9KSxEZSgwLFsiU1NTU1NTUyIsN10sMCxmdW5jdGlvbigpe3JldHVybiAxZTQqdGhpcy5taWxsaXNlY29uZCgpfSksRGUoMCxbIlNTU1NTU1NTIiw4XSwwLGZ1bmN0aW9uKCl7cmV0dXJuIDFlNSp0aGlzLm1pbGxpc2Vjb25kKCl9KSxEZSgwLFsiU1NTU1NTU1NTIiw5XSwwLGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIDFlNip0aGlzLm1pbGxpc2Vjb25kKCl9KSxMdCgibWlsbGlzZWNvbmQiLCJtcyIpLEdlKCJtaWxsaXNlY29uZCIsMTYpLHRuKCJTIixucixibiksdG4oIlNTIixucixlciksdG4oIlNTUyIsbnIsc3IpLGZmPSJTU1NTIjtmZi5sZW5ndGg8PTk7ZmYrPSJTIil0bihm''@;'; put 'put ''ZixXdCk7ZnVuY3Rpb24gSE0oemUsVnQpe1Z0WzZdPUp0KDFlMyooIjAuIit6ZSkpfWZvcihmZj0iUyI7ZmYubGVuZ3RoPD05O2ZmKz0iUyIpbW4oZmYsSE0pO0k4PWduKCJNaWxsaXNlY29uZHMiLCExKSxEZSgieiIsMCwwLCJ6b25lQWJiciIpLERlKCJ6eiIsMCwwLCJ6b25lTmFtZSIpO3Zh''@;'; put 'put ''ciBhMD1rZS5wcm90b3R5cGU7ZnVuY3Rpb24gSnMoemUpe3JldHVybiB6ZX1hMC5hZGQ9RE0sYTAuY2FsZW5kYXI9ZnVuY3Rpb24gdmMoemUsVnQpezE9PT1hcmd1bWVudHMubGVuZ3RoJiYoYXJndW1lbnRzWzBdP3N1KGFyZ3VtZW50c1swXSk/KHplPWFyZ3VtZW50c1swXSxWdD12b2lkIDAp''@;'; put 'put ''OnJiKGFyZ3VtZW50c1swXSkmJihWdD1hcmd1bWVudHNbMF0semU9dm9pZCAwKTooemU9dm9pZCAwLFZ0PXZvaWQgMCkpO3ZhciBobj16ZXx8a3MoKSxSbj1ZZyhobix0aGlzKS5zdGFydE9mKCJkYXkiKSx0cj1CLmNhbGVuZGFyRm9ybWF0KHRoaXMsUm4pfHwic2FtZUVsc2UiLGVpPVZ0JiYo''@;'; put 'put ''TyhWdFt0cl0pP1Z0W3RyXS5jYWxsKHRoaXMsaG4pOlZ0W3RyXSk7cmV0dXJuIHRoaXMuZm9ybWF0KGVpfHx0aGlzLmxvY2FsZURhdGEoKS5jYWxlbmRhcih0cix0aGlzLGtzKGhuKSkpfSxhMC5jbG9uZT1mdW5jdGlvbiBwOSgpe3JldHVybiBuZXcga2UodGhpcyl9LGEwLmRpZmY9ZnVuY3Rp''@;'; put 'put ''b24gTjEoemUsVnQsaG4pe3ZhciBSbix0cixlaTtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIE5hTjtpZighKFJuPVlnKHplLHRoaXMpKS5pc1ZhbGlkKCkpcmV0dXJuIE5hTjtzd2l0Y2godHI9NmU0KihSbi51dGNPZmZzZXQoKS10aGlzLnV0Y09mZnNldCgpKSxWdD1DdChWdCkpe2Nhc2Ui''@;'; put 'put ''eWVhciI6ZWk9X2godGhpcyxSbikvMTI7YnJlYWs7Y2FzZSJtb250aCI6ZWk9X2godGhpcyxSbik7YnJlYWs7Y2FzZSJxdWFydGVyIjplaT1faCh0aGlzLFJuKS8zO2JyZWFrO2Nhc2Uic2Vjb25kIjplaT0odGhpcy1SbikvMWUzO2JyZWFrO2Nhc2UibWludXRlIjplaT0odGhpcy1SbikvNmU0''@;'; put 'put ''O2JyZWFrO2Nhc2UiaG91ciI6ZWk9KHRoaXMtUm4pLzM2ZTU7YnJlYWs7Y2FzZSJkYXkiOmVpPSh0aGlzLVJuLXRyKS84NjRlNTticmVhaztjYXNlIndlZWsiOmVpPSh0aGlzLVJuLXRyKS82MDQ4ZTU7YnJlYWs7ZGVmYXVsdDplaT10aGlzLVJufXJldHVybiBobj9laTpqdChlaSl9LGEwLmVu''@;'; put 'put ''ZE9mPWZ1bmN0aW9uIEFvKHplKXt2YXIgVnQsaG47aWYodm9pZCAwPT09KHplPUN0KHplKSl8fCJtaWxsaXNlY29uZCI9PT16ZXx8IXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzO3N3aXRjaChobj10aGlzLl9pc1VUQz9qbjpQaSx6ZSl7Y2FzZSJ5ZWFyIjpWdD1obih0aGlzLnllYXIoKSsx''@;'; put 'put ''LDAsMSktMTticmVhaztjYXNlInF1YXJ0ZXIiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKS10aGlzLm1vbnRoKCklMyszLDEpLTE7YnJlYWs7Y2FzZSJtb250aCI6VnQ9aG4odGhpcy55ZWFyKCksdGhpcy5tb250aCgpKzEsMSktMTticmVhaztjYXNlIndlZWsiOlZ0PWhuKHRoaXMu''@;'; put 'put ''eWVhcigpLHRoaXMubW9udGgoKSx0aGlzLmRhdGUoKS10aGlzLndlZWtkYXkoKSs3KS0xO2JyZWFrO2Nhc2UiaXNvV2VlayI6VnQ9aG4odGhpcy55ZWFyKCksdGhpcy5tb250aCgpLHRoaXMuZGF0ZSgpLSh0aGlzLmlzb1dlZWtkYXkoKS0xKSs3KS0xO2JyZWFrO2Nhc2UiZGF5IjpjYXNlImRh''@;'; put 'put ''dGUiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSx0aGlzLmRhdGUoKSsxKS0xO2JyZWFrO2Nhc2UiaG91ciI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQrPWEtaHIoVnQrKHRoaXMuX2lzVVRDPzA6dGhpcy51dGNPZmZzZXQoKSppdCksYSktMTticmVhaztjYXNlIm1pbnV0ZSI6VnQ9''@;'; put 'put ''dGhpcy5fZC52YWx1ZU9mKCksVnQrPWl0LWhyKFZ0LGl0KS0xO2JyZWFrO2Nhc2Uic2Vjb25kIjpWdD10aGlzLl9kLnZhbHVlT2YoKSxWdCs9MWUzLWhyKFZ0LDFlMyktMX1yZXR1cm4gdGhpcy5fZC5zZXRUaW1lKFZ0KSxCLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0aGlzfSxhMC5mb3JtYXQ9''@;'; put 'put ''ZnVuY3Rpb24gcWcoemUpe3plfHwoemU9dGhpcy5pc1V0YygpP0IuZGVmYXVsdEZvcm1hdFV0YzpCLmRlZmF1bHRGb3JtYXQpO3ZhciBWdD0kZSh0aGlzLHplKTtyZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkucG9zdGZvcm1hdChWdCl9LGEwLmZyb209ZnVuY3Rpb24gaWIoemUsVnQpe3JldHVy''@;'; put 'put ''biB0aGlzLmlzVmFsaWQoKSYmKFNlKHplKSYmemUuaXNWYWxpZCgpfHxrcyh6ZSkuaXNWYWxpZCgpKT9Rcyh7dG86dGhpcyxmcm9tOnplfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCFWdCk6dGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX0sYTAuZnJvbU5vdz1mdW5j''@;'; put 'put ''dGlvbiBmMih6ZSl7cmV0dXJuIHRoaXMuZnJvbShrcygpLHplKX0sYTAudG89ZnVuY3Rpb24gcFIoemUsVnQpe3JldHVybiB0aGlzLmlzVmFsaWQoKSYmKFNlKHplKSYmemUuaXNWYWxpZCgpfHxrcyh6ZSkuaXNWYWxpZCgpKT9Rcyh7ZnJvbTp0aGlzLHRvOnplfSkubG9jYWxlKHRoaXMubG9j''@;'; put 'put ''YWxlKCkpLmh1bWFuaXplKCFWdCk6dGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKX0sYTAudG9Ob3c9ZnVuY3Rpb24gUk0oemUpe3JldHVybiB0aGlzLnRvKGtzKCksemUpfSxhMC5nZXQ9ZnVuY3Rpb24gbG4oemUpe3JldHVybiBPKHRoaXNbemU9Q3QoemUpXSk/dGhpc1t6ZV0oKTp0''@;'; put 'put ''aGlzfSxhMC5pbnZhbGlkQXQ9ZnVuY3Rpb24gbzIoKXtyZXR1cm4gSih0aGlzKS5vdmVyZmxvd30sYTAuaXNBZnRlcj1mdW5jdGlvbiBYZyh6ZSxWdCl7dmFyIGhuPVNlKHplKT96ZTprcyh6ZSk7cmV0dXJuISghdGhpcy5pc1ZhbGlkKCl8fCFobi5pc1ZhbGlkKCkpJiYoIm1pbGxpc2Vjb25k''@;'; put 'put ''Ij09PShWdD1DdChWdCl8fCJtaWxsaXNlY29uZCIpP3RoaXMudmFsdWVPZigpPmhuLnZhbHVlT2YoKTpobi52YWx1ZU9mKCk8dGhpcy5jbG9uZSgpLnN0YXJ0T2YoVnQpLnZhbHVlT2YoKSl9LGEwLmlzQmVmb3JlPWZ1bmN0aW9uIFFwKHplLFZ0KXt2YXIgaG49U2UoemUpP3plOmtzKHplKTty''@;'; put 'put ''ZXR1cm4hKCF0aGlzLmlzVmFsaWQoKXx8IWhuLmlzVmFsaWQoKSkmJigibWlsbGlzZWNvbmQiPT09KFZ0PUN0KFZ0KXx8Im1pbGxpc2Vjb25kIik/dGhpcy52YWx1ZU9mKCk8aG4udmFsdWVPZigpOnRoaXMuY2xvbmUoKS5lbmRPZihWdCkudmFsdWVPZigpPGhuLnZhbHVlT2YoKSl9LGEwLmlz''@;'; put 'put ''QmV0d2Vlbj1mdW5jdGlvbiBRdSh6ZSxWdCxobixSbil7dmFyIHRyPVNlKHplKT96ZTprcyh6ZSksZWk9U2UoVnQpP1Z0OmtzKFZ0KTtyZXR1cm4hISh0aGlzLmlzVmFsaWQoKSYmdHIuaXNWYWxpZCgpJiZlaS5pc1ZhbGlkKCkpJiYoIigiPT09KFJuPVJufHwiKCkiKVswXT90aGlzLmlzQWZ0''@;'; put 'put ''ZXIodHIsaG4pOiF0aGlzLmlzQmVmb3JlKHRyLGhuKSkmJigiKSI9PT1SblsxXT90aGlzLmlzQmVmb3JlKGVpLGhuKTohdGhpcy5pc0FmdGVyKGVpLGhuKSl9LGEwLmlzU2FtZT1mdW5jdGlvbiBLZyh6ZSxWdCl7dmFyIFJuLGhuPVNlKHplKT96ZTprcyh6ZSk7cmV0dXJuISghdGhpcy5pc1Zh''@;'; put 'put ''bGlkKCl8fCFobi5pc1ZhbGlkKCkpJiYoIm1pbGxpc2Vjb25kIj09PShWdD1DdChWdCl8fCJtaWxsaXNlY29uZCIpP3RoaXMudmFsdWVPZigpPT09aG4udmFsdWVPZigpOihSbj1obi52YWx1ZU9mKCksdGhpcy5jbG9uZSgpLnN0YXJ0T2YoVnQpLnZhbHVlT2YoKTw9Um4mJlJuPD10aGlzLmNs''@;'; put 'put ''b25lKCkuZW5kT2YoVnQpLnZhbHVlT2YoKSkpfSxhMC5pc1NhbWVPckFmdGVyPWZ1bmN0aW9uIHV1KHplLFZ0KXtyZXR1cm4gdGhpcy5pc1NhbWUoemUsVnQpfHx0aGlzLmlzQWZ0ZXIoemUsVnQpfSxhMC5pc1NhbWVPckJlZm9yZT1mdW5jdGlvbiBPTSh6ZSxWdCl7cmV0dXJuIHRoaXMuaXNT''@;'; put 'put ''YW1lKHplLFZ0KXx8dGhpcy5pc0JlZm9yZSh6ZSxWdCl9LGEwLmlzVmFsaWQ9ZnVuY3Rpb24geG4oKXtyZXR1cm4gb2UodGhpcyl9LGEwLmxhbmc9SXQsYTAubG9jYWxlPWR0LGEwLmxvY2FsZURhdGE9UHQsYTAubWF4PVZmLGEwLm1pbj16ZyxhMC5wYXJzaW5nRmxhZ3M9ZnVuY3Rpb24gaTIo''@;'; put 'put ''KXtyZXR1cm4gTih7fSxKKHRoaXMpKX0sYTAuc2V0PWZ1bmN0aW9uIE5uKHplLFZ0KXtpZigib2JqZWN0Ij09dHlwZW9mIHplKXt2YXIgUm4saG49ZnVuY3Rpb24gVWUoemUpe3ZhciBobixWdD1bXTtmb3IoaG4gaW4gemUpUSh6ZSxobikmJlZ0LnB1c2goe3VuaXQ6aG4scHJpb3JpdHk6SHRb''@;'; put 'put ''aG5dfSk7cmV0dXJuIFZ0LnNvcnQoZnVuY3Rpb24oUm4sdHIpe3JldHVybiBSbi5wcmlvcml0eS10ci5wcmlvcml0eX0pLFZ0fSh6ZT1mdCh6ZSkpLHRyPWhuLmxlbmd0aDtmb3IoUm49MDtSbjx0cjtSbisrKXRoaXNbaG5bUm5dLnVuaXRdKHplW2huW1JuXS51bml0XSl9ZWxzZSBpZihPKHRo''@;'; put 'put ''aXNbemU9Q3QoemUpXSkpcmV0dXJuIHRoaXNbemVdKFZ0KTtyZXR1cm4gdGhpc30sYTAuc3RhcnRPZj1mdW5jdGlvbiBfKHplKXt2YXIgVnQsaG47aWYodm9pZCAwPT09KHplPUN0KHplKSl8fCJtaWxsaXNlY29uZCI9PT16ZXx8IXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzO3N3aXRjaCho''@;'; put 'put ''bj10aGlzLl9pc1VUQz9qbjpQaSx6ZSl7Y2FzZSJ5ZWFyIjpWdD1obih0aGlzLnllYXIoKSwwLDEpO2JyZWFrO2Nhc2UicXVhcnRlciI6VnQ9aG4odGhpcy55ZWFyKCksdGhpcy5tb250aCgpLXRoaXMubW9udGgoKSUzLDEpO2JyZWFrO2Nhc2UibW9udGgiOlZ0PWhuKHRoaXMueWVhcigpLHRo''@;'; put 'put ''aXMubW9udGgoKSwxKTticmVhaztjYXNlIndlZWsiOlZ0PWhuKHRoaXMueWVhcigpLHRoaXMubW9udGgoKSx0aGlzLmRhdGUoKS10aGlzLndlZWtkYXkoKSk7YnJlYWs7Y2FzZSJpc29XZWVrIjpWdD1obih0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCktKHRoaXMuaXNvV2Vl''@;'; put 'put ''a2RheSgpLTEpKTticmVhaztjYXNlImRheSI6Y2FzZSJkYXRlIjpWdD1obih0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCksdGhpcy5kYXRlKCkpO2JyZWFrO2Nhc2UiaG91ciI6VnQ9dGhpcy5fZC52YWx1ZU9mKCksVnQtPWhyKFZ0Kyh0aGlzLl9pc1VUQz8wOnRoaXMudXRjT2Zmc2V0KCkqaXQp''@;'; put 'put ''LGEpO2JyZWFrO2Nhc2UibWludXRlIjpWdD10aGlzLl9kLnZhbHVlT2YoKSxWdC09aHIoVnQsaXQpO2JyZWFrO2Nhc2Uic2Vjb25kIjpWdD10aGlzLl9kLnZhbHVlT2YoKSxWdC09aHIoVnQsMWUzKX1yZXR1cm4gdGhpcy5fZC5zZXRUaW1lKFZ0KSxCLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0''@;'; put 'put ''aGlzfSxhMC5zdWJ0cmFjdD1oOSxhMC50b0FycmF5PWZ1bmN0aW9uIFYxKCl7dmFyIHplPXRoaXM7cmV0dXJuW3plLnllYXIoKSx6ZS5tb250aCgpLHplLmRhdGUoKSx6ZS5ob3VyKCksemUubWludXRlKCksemUuc2Vjb25kKCksemUubWlsbGlzZWNvbmQoKV19LGEwLnRvT2JqZWN0PWZ1bmN0''@;'; put 'put ''aW9uIGxzKCl7dmFyIHplPXRoaXM7cmV0dXJue3llYXJzOnplLnllYXIoKSxtb250aHM6emUubW9udGgoKSxkYXRlOnplLmRhdGUoKSxob3Vyczp6ZS5ob3VycygpLG1pbnV0ZXM6emUubWludXRlcygpLHNlY29uZHM6emUuc2Vjb25kcygpLG1pbGxpc2Vjb25kczp6ZS5taWxsaXNlY29uZHMo''@;'; put 'put ''KX19LGEwLnRvRGF0ZT1mdW5jdGlvbiBsZSgpe3JldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSl9LGEwLnRvSVNPU3RyaW5nPWZ1bmN0aW9uIENhKHplKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGw7dmFyIFZ0PSEwIT09emUsaG49VnQ/dGhpcy5jbG9uZSgpLnV0YygpOnRo''@;'; put 'put ''aXM7cmV0dXJuIGhuLnllYXIoKTwwfHxobi55ZWFyKCk+OTk5OT8kZShobixWdD8iWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdIjoiWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWiIpOk8oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpP1Z0P3RoaXMudG9EYXRlKCkudG9JU09T''@;'; put 'put ''dHJpbmcoKTpuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSs2MCp0aGlzLnV0Y09mZnNldCgpKjFlMykudG9JU09TdHJpbmcoKS5yZXBsYWNlKCJaIiwkZShobiwiWiIpKTokZShobixWdD8iWVlZWS1NTS1ERFtUXUhIOm1tOnNzLlNTU1taXSI6IllZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaIil9''@;'; put 'put ''LGEwLmluc3BlY3Q9ZnVuY3Rpb24gJGcoKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIm1vbWVudC5pbnZhbGlkKC8qICIrdGhpcy5faSsiICovKSI7dmFyIGhuLFJuLHplPSJtb21lbnQiLFZ0PSIiO3JldHVybiB0aGlzLmlzTG9jYWwoKXx8KHplPTA9PT10aGlzLnV0Y09mZnNldCgpPyJt''@;'; put 'put ''b21lbnQudXRjIjoibW9tZW50LnBhcnNlWm9uZSIsVnQ9IloiKSxobj0iWyIremUrJygiXScsUm49MDw9dGhpcy55ZWFyKCkmJnRoaXMueWVhcigpPD05OTk5PyJZWVlZIjoiWVlZWVlZIix0aGlzLmZvcm1hdChobitSbisiLU1NLUREW1RdSEg6bW06c3MuU1NTIitWdCsnWyIpXScpfSwidW5k''@;'; put 'put ''ZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmbnVsbCE9U3ltYm9sLmZvciYmKGEwW1N5bWJvbC5mb3IoIm5vZGVqcy51dGlsLmluc3BlY3QuY3VzdG9tIildPWZ1bmN0aW9uKCl7cmV0dXJuIk1vbWVudDwiK3RoaXMuZm9ybWF0KCkrIj4ifSksYTAudG9KU09OPWZ1bmN0aW9uIE1uKCl7cmV0dXJu''@;'; put 'put ''IHRoaXMuaXNWYWxpZCgpP3RoaXMudG9JU09TdHJpbmcoKTpudWxsfSxhMC50b1N0cmluZz1mdW5jdGlvbiB2ZCgpe3JldHVybiB0aGlzLmNsb25lKCkubG9jYWxlKCJlbiIpLmZvcm1hdCgiZGRkIE1NTSBERCBZWVlZIEhIOm1tOnNzIFtHTVRdWloiKX0sYTAudW5peD1mdW5jdGlvbiAkbygp''@;'; put 'put ''e3JldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpLzFlMyl9LGEwLnZhbHVlT2Y9ZnVuY3Rpb24gU2koKXtyZXR1cm4gdGhpcy5fZC52YWx1ZU9mKCktNmU0Kih0aGlzLl9vZmZzZXR8fDApfSxhMC5jcmVhdGlvbkRhdGE9ZnVuY3Rpb24gamMoKXtyZXR1cm57aW5wdXQ6dGhpcy5faSxm''@;'; put 'put ''b3JtYXQ6dGhpcy5fZixsb2NhbGU6dGhpcy5fbG9jYWxlLGlzVVRDOnRoaXMuX2lzVVRDLHN0cmljdDp0aGlzLl9zdHJpY3R9fSxhMC5lcmFOYW1lPWZ1bmN0aW9uIGc5KCl7dmFyIHplLFZ0LGhuLFJuPXRoaXMubG9jYWxlRGF0YSgpLmVyYXMoKTtmb3IoemU9MCxWdD1Sbi5sZW5ndGg7emU8''@;'; put 'put ''VnQ7Kyt6ZSlpZihobj10aGlzLmNsb25lKCkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpLFJuW3plXS5zaW5jZTw9aG4mJmhuPD1Sblt6ZV0udW50aWx8fFJuW3plXS51bnRpbDw9aG4mJmhuPD1Sblt6ZV0uc2luY2UpcmV0dXJuIFJuW3plXS5uYW1lO3JldHVybiIifSxhMC5lcmFOYXJyb3c9''@;'; put 'put ''ZnVuY3Rpb24gbTkoKXt2YXIgemUsVnQsaG4sUm49dGhpcy5sb2NhbGVEYXRhKCkuZXJhcygpO2Zvcih6ZT0wLFZ0PVJuLmxlbmd0aDt6ZTxWdDsrK3plKWlmKGhuPXRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS52YWx1ZU9mKCksUm5bemVdLnNpbmNlPD1obiYmaG48PVJuW3plXS51bnRp''@;'; put 'put ''bHx8Um5bemVdLnVudGlsPD1obiYmaG48PVJuW3plXS5zaW5jZSlyZXR1cm4gUm5bemVdLm5hcnJvdztyZXR1cm4iIn0sYTAuZXJhQWJicj1mdW5jdGlvbiBvYigpe3ZhciB6ZSxWdCxobixSbj10aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7Zm9yKHplPTAsVnQ9Um4ubGVuZ3RoO3plPFZ0Oysr''@;'; put 'put ''emUpaWYoaG49dGhpcy5jbG9uZSgpLnN0YXJ0T2YoImRheSIpLnZhbHVlT2YoKSxSblt6ZV0uc2luY2U8PWhuJiZobjw9Um5bemVdLnVudGlsfHxSblt6ZV0udW50aWw8PWhuJiZobjw9Um5bemVdLnNpbmNlKXJldHVybiBSblt6ZV0uYWJicjtyZXR1cm4iIn0sYTAuZXJhWWVhcj1mdW5jdGlv''@;'; put 'put ''biBEbigpe3ZhciB6ZSxWdCxobixSbix0cj10aGlzLmxvY2FsZURhdGEoKS5lcmFzKCk7Zm9yKHplPTAsVnQ9dHIubGVuZ3RoO3plPFZ0OysremUpaWYoaG49dHJbemVdLnNpbmNlPD10clt6ZV0udW50aWw/MTotMSxSbj10aGlzLmNsb25lKCkuc3RhcnRPZigiZGF5IikudmFsdWVPZigpLHRy''@;'; put 'put ''W3plXS5zaW5jZTw9Um4mJlJuPD10clt6ZV0udW50aWx8fHRyW3plXS51bnRpbDw9Um4mJlJuPD10clt6ZV0uc2luY2UpcmV0dXJuKHRoaXMueWVhcigpLUIodHJbemVdLnNpbmNlKS55ZWFyKCkpKmhuK3RyW3plXS5vZmZzZXQ7cmV0dXJuIHRoaXMueWVhcigpfSxhMC55ZWFyPW5sLGEwLmlz''@;'; put 'put ''TGVhcFllYXI9ZnVuY3Rpb24gZ2woKXtyZXR1cm4geXQodGhpcy55ZWFyKCkpfSxhMC53ZWVrWWVhcj1mdW5jdGlvbiBaZih6ZSl7cmV0dXJuIGFiLmNhbGwodGhpcyx6ZSx0aGlzLndlZWsoKSx0aGlzLndlZWtkYXkoKSx0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3csdGhpcy5sb2NhbGVE''@;'; put 'put ''YXRhKCkuX3dlZWsuZG95KX0sYTAuaXNvV2Vla1llYXI9ZnVuY3Rpb24gVWwoemUpe3JldHVybiBhYi5jYWxsKHRoaXMsemUsdGhpcy5pc29XZWVrKCksdGhpcy5pc29XZWVrZGF5KCksMSw0KX0sYTAucXVhcnRlcj1hMC5xdWFydGVycz1mdW5jdGlvbiBBZCh6ZSl7cmV0dXJuIG51bGw9PXpl''@;'; put 'put ''P01hdGguY2VpbCgodGhpcy5tb250aCgpKzEpLzMpOnRoaXMubW9udGgoMyooemUtMSkrdGhpcy5tb250aCgpJTMpfSxhMC5tb250aD1FbyxhMC5kYXlzSW5Nb250aD1mdW5jdGlvbiBxbygpe3JldHVybiBpaSh0aGlzLnllYXIoKSx0aGlzLm1vbnRoKCkpfSxhMC53ZWVrPWEwLndlZWtzPWZ1''@;'; put 'put ''bmN0aW9uIFgwKHplKXt2YXIgVnQ9dGhpcy5sb2NhbGVEYXRhKCkud2Vlayh0aGlzKTtyZXR1cm4gbnVsbD09emU/VnQ6dGhpcy5hZGQoNyooemUtVnQpLCJkIil9LGEwLmlzb1dlZWs9YTAuaXNvV2Vla3M9ZnVuY3Rpb24gdWEoemUpe3ZhciBWdD1ybCh0aGlzLDEsNCkud2VlaztyZXR1cm4g''@;'; put 'put ''bnVsbD09emU/VnQ6dGhpcy5hZGQoNyooemUtVnQpLCJkIil9LGEwLndlZWtzSW5ZZWFyPWZ1bmN0aW9uIEl1KCl7dmFyIHplPXRoaXMubG9jYWxlRGF0YSgpLl93ZWVrO3JldHVybiBfaSh0aGlzLnllYXIoKSx6ZS5kb3csemUuZG95KX0sYTAud2Vla3NJbldlZWtZZWFyPWZ1bmN0aW9uIEFy''@;'; put 'put ''KCl7dmFyIHplPXRoaXMubG9jYWxlRGF0YSgpLl93ZWVrO3JldHVybiBfaSh0aGlzLndlZWtZZWFyKCksemUuZG93LHplLmRveSl9LGEwLmlzb1dlZWtzSW5ZZWFyPWZ1bmN0aW9uIHpmKCl7cmV0dXJuIF9pKHRoaXMueWVhcigpLDEsNCl9LGEwLmlzb1dlZWtzSW5JU09XZWVrWWVhcj1mdW5j''@;'; put 'put ''dGlvbiBGMigpe3JldHVybiBfaSh0aGlzLmlzb1dlZWtZZWFyKCksMSw0KX0sYTAuZGF0ZT13MixhMC5kYXk9YTAuZGF5cz1mdW5jdGlvbiBzMSh6ZSl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiBudWxsIT16ZT90aGlzOk5hTjt2YXIgVnQ9dGhpcy5faXNVVEM/dGhpcy5fZC5nZXRVVENE''@;'; put 'put ''YXkoKTp0aGlzLl9kLmdldERheSgpO3JldHVybiBudWxsIT16ZT8oemU9ZnVuY3Rpb24gajAoemUsVnQpe3JldHVybiJzdHJpbmciIT10eXBlb2YgemU/emU6aXNOYU4oemUpPyJudW1iZXIiPT10eXBlb2YoemU9VnQud2Vla2RheXNQYXJzZSh6ZSkpP3plOm51bGw6cGFyc2VJbnQoemUsMTAp''@;'; put 'put ''fSh6ZSx0aGlzLmxvY2FsZURhdGEoKSksdGhpcy5hZGQoemUtVnQsImQiKSk6VnR9LGEwLndlZWtkYXk9ZnVuY3Rpb24gWjAoemUpe2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbnVsbCE9emU/dGhpczpOYU47dmFyIFZ0PSh0aGlzLmRheSgpKzctdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsu''@;'; put 'put ''ZG93KSU3O3JldHVybiBudWxsPT16ZT9WdDp0aGlzLmFkZCh6ZS1WdCwiZCIpfSxhMC5pc29XZWVrZGF5PWZ1bmN0aW9uIGZpKHplKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIG51bGwhPXplP3RoaXM6TmFOO2lmKG51bGwhPXplKXt2YXIgVnQ9ZnVuY3Rpb24gQmwoemUsVnQpe3JldHVy''@;'; put 'put ''biJzdHJpbmciPT10eXBlb2YgemU/VnQud2Vla2RheXNQYXJzZSh6ZSklN3x8Nzppc05hTih6ZSk/bnVsbDp6ZX0oemUsdGhpcy5sb2NhbGVEYXRhKCkpO3JldHVybiB0aGlzLmRheSh0aGlzLmRheSgpJTc/VnQ6VnQtNyl9cmV0dXJuIHRoaXMuZGF5KCl8fDd9LGEwLmRheU9mWWVhcj1mdW5j''@;'; put 'put ''dGlvbiBlbSh6ZSl7dmFyIFZ0PU1hdGgucm91bmQoKHRoaXMuY2xvbmUoKS5zdGFydE9mKCJkYXkiKS10aGlzLmNsb25lKCkuc3RhcnRPZigieWVhciIpKS84NjRlNSkrMTtyZXR1cm4gbnVsbD09emU/VnQ6dGhpcy5hZGQoemUtVnQsImQiKX0sYTAuaG91cj1hMC5ob3Vycz1OYyxhMC5taW51''@;'; put 'put ''dGU9YTAubWludXRlcz15ZCxhMC5zZWNvbmQ9YTAuc2Vjb25kcz1LcCxhMC5taWxsaXNlY29uZD1hMC5taWxsaXNlY29uZHM9STgsYTAudXRjT2Zmc2V0PWZ1bmN0aW9uIEdwKHplLFZ0LGhuKXt2YXIgdHIsUm49dGhpcy5fb2Zmc2V0fHwwO2lmKCF0aGlzLmlzVmFsaWQoKSlyZXR1cm4gbnVs''@;'; put 'put ''bCE9emU/dGhpczpOYU47aWYobnVsbCE9emUpe2lmKCJzdHJpbmciPT10eXBlb2YgemUpe2lmKG51bGw9PT0oemU9czkoTnQsemUpKSlyZXR1cm4gdGhpc31lbHNlIE1hdGguYWJzKHplKTwxNiYmIWhuJiYoemUqPTYwKTtyZXR1cm4hdGhpcy5faXNVVEMmJlZ0JiYodHI9d2godGhpcykpLHRo''@;'; put 'put ''aXMuX29mZnNldD16ZSx0aGlzLl9pc1VUQz0hMCxudWxsIT10ciYmdGhpcy5hZGQodHIsIm0iKSxSbiE9PXplJiYoIVZ0fHx0aGlzLl9jaGFuZ2VJblByb2dyZXNzP0U0KHRoaXMsUXMoemUtUm4sIm0iKSwxLCExKTp0aGlzLl9jaGFuZ2VJblByb2dyZXNzfHwodGhpcy5fY2hhbmdlSW5Qcm9n''@;'; put 'put ''cmVzcz0hMCxCLnVwZGF0ZU9mZnNldCh0aGlzLCEwKSx0aGlzLl9jaGFuZ2VJblByb2dyZXNzPW51bGwpKSx0aGlzfXJldHVybiB0aGlzLl9pc1VUQz9Sbjp3aCh0aGlzKX0sYTAudXRjPWZ1bmN0aW9uIGM5KHplKXtyZXR1cm4gdGhpcy51dGNPZmZzZXQoMCx6ZSl9LGEwLmxvY2FsPWZ1bmN0''@;'; put 'put ''aW9uIEkyKHplKXtyZXR1cm4gdGhpcy5faXNVVEMmJih0aGlzLnV0Y09mZnNldCgwLHplKSx0aGlzLl9pc1VUQz0hMSx6ZSYmdGhpcy5zdWJ0cmFjdCh3aCh0aGlzKSwibSIpKSx0aGlzfSxhMC5wYXJzZVpvbmU9ZnVuY3Rpb24gdWYoKXtpZihudWxsIT10aGlzLl90em0pdGhpcy51dGNPZmZz''@;'; put 'put ''ZXQodGhpcy5fdHptLCExLCEwKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgdGhpcy5faSl7dmFyIHplPXM5KEtuLHRoaXMuX2kpO251bGwhPXplP3RoaXMudXRjT2Zmc2V0KHplKTp0aGlzLnV0Y09mZnNldCgwLCEwKX1yZXR1cm4gdGhpc30sYTAuaGFzQWxpZ25lZEhvdXJPZmZzZXQ9ZnVu''@;'; put 'put ''Y3Rpb24gVWcoemUpe3JldHVybiEhdGhpcy5pc1ZhbGlkKCkmJih6ZT16ZT9rcyh6ZSkudXRjT2Zmc2V0KCk6MCwodGhpcy51dGNPZmZzZXQoKS16ZSklNjA9PTApfSxhMC5pc0RTVD1mdW5jdGlvbiBqZigpe3JldHVybiB0aGlzLnV0Y09mZnNldCgpPnRoaXMuY2xvbmUoKS5tb250aCgwKS51''@;'; put 'put ''dGNPZmZzZXQoKXx8dGhpcy51dGNPZmZzZXQoKT50aGlzLmNsb25lKCkubW9udGgoNSkudXRjT2Zmc2V0KCl9LGEwLmlzTG9jYWw9ZnVuY3Rpb24gRDIoKXtyZXR1cm4hIXRoaXMuaXNWYWxpZCgpJiYhdGhpcy5faXNVVEN9LGEwLmlzVXRjT2Zmc2V0PWZ1bmN0aW9uIGY5KCl7cmV0dXJuISF0''@;'; put 'put ''aGlzLmlzVmFsaWQoKSYmdGhpcy5faXNVVEN9LGEwLmlzVXRjPW5iLGEwLmlzVVRDPW5iLGEwLnpvbmVBYmJyPWZ1bmN0aW9uIENoKCl7cmV0dXJuIHRoaXMuX2lzVVRDPyJVVEMiOiIifSxhMC56b25lTmFtZT1mdW5jdGlvbiB3ZCgpe3JldHVybiB0aGlzLl9pc1VUQz8iQ29vcmRpbmF0ZWQg''@;'; put 'put ''VW5pdmVyc2FsIFRpbWUiOiIifSxhMC5kYXRlcz1UZSgiZGF0ZXMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIGRhdGUgaW5zdGVhZC4iLHcyKSxhMC5tb250aHM9VGUoIm1vbnRocyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgbW9udGggaW5zdGVhZCIsRW8pLGEwLnllYXJzPVRl''@;'; put 'put ''KCJ5ZWFycyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgeWVhciBpbnN0ZWFkIixubCksYTAuem9uZT1UZSgibW9tZW50KCkuem9uZSBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50KCkudXRjT2Zmc2V0IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3Mv''@;'; put 'put ''em9uZS8iLGZ1bmN0aW9uIHU5KHplLFZ0KXtyZXR1cm4gbnVsbCE9emU/KCJzdHJpbmciIT10eXBlb2YgemUmJih6ZT0temUpLHRoaXMudXRjT2Zmc2V0KHplLFZ0KSx0aGlzKTotdGhpcy51dGNPZmZzZXQoKX0pLGEwLmlzRFNUU2hpZnRlZD1UZSgiaXNEU1RTaGlmdGVkIGlzIGRlcHJlY2F0''@;'; put 'put ''ZWQuIFNlZSBodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2RzdC1zaGlmdGVkLyBmb3IgbW9yZSBpbmZvcm1hdGlvbiIsZnVuY3Rpb24gdGIoKXtpZighcmUodGhpcy5faXNEU1RTaGlmdGVkKSlyZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO3ZhciBWdCx6ZT17fTtyZXR1''@;'; put 'put ''cm4gQWUoemUsdGhpcyksKHplPVR1KHplKSkuX2E/KFZ0PXplLl9pc1VUQz90ZSh6ZS5fYSk6a3MoemUuX2EpLHRoaXMuX2lzRFNUU2hpZnRlZD10aGlzLmlzVmFsaWQoKSYmZnVuY3Rpb24genAoemUsVnQsaG4pe3ZhciBZaSxSbj1NYXRoLm1pbih6ZS5sZW5ndGgsVnQubGVuZ3RoKSx0cj1N''@;'; put 'put ''YXRoLmFicyh6ZS5sZW5ndGgtVnQubGVuZ3RoKSxlaT0wO2ZvcihZaT0wO1lpPFJuO1lpKyspKGhuJiZ6ZVtZaV0hPT1WdFtZaV18fCFobiYmSnQoemVbWWldKSE9PUp0KFZ0W1lpXSkpJiZlaSsrO3JldHVybiBlaSt0cn0oemUuX2EsVnQudG9BcnJheSgpKT4wKTp0aGlzLl9pc0RTVFNoaWZ0''@;'; put 'put ''ZWQ9ITEsdGhpcy5faXNEU1RTaGlmdGVkfSk7dmFyIHRhPW5lLnByb3RvdHlwZTtmdW5jdGlvbiBqMSh6ZSxWdCxobixSbil7dmFyIHRyPXUxKCksZWk9dGUoKS5zZXQoUm4sVnQpO3JldHVybiB0cltobl0oZWksemUpfWZ1bmN0aW9uIGMxKHplLFZ0LGhuKXtpZihhZSh6ZSkmJihWdD16ZSx6''@;'; put 'put ''ZT12b2lkIDApLHplPXplfHwiIixudWxsIT1WdClyZXR1cm4gajEoemUsVnQsaG4sIm1vbnRoIik7dmFyIFJuLHRyPVtdO2ZvcihSbj0wO1JuPDEyO1JuKyspdHJbUm5dPWoxKHplLFJuLGhuLCJtb250aCIpO3JldHVybiB0cn1mdW5jdGlvbiBoZih6ZSxWdCxobixSbil7ImJvb2xlYW4iPT10''@;'; put 'put ''eXBlb2YgemU/KGFlKFZ0KSYmKGhuPVZ0LFZ0PXZvaWQgMCksVnQ9VnR8fCIiKTooaG49VnQ9emUsemU9ITEsYWUoVnQpJiYoaG49VnQsVnQ9dm9pZCAwKSxWdD1WdHx8IiIpO3ZhciBZaSx0cj11MSgpLGVpPXplP3RyLl93ZWVrLmRvdzowLGRhPVtdO2lmKG51bGwhPWhuKXJldHVybiBqMShW''@;'; put 'put ''dCwoaG4rZWkpJTcsUm4sImRheSIpO2ZvcihZaT0wO1lpPDc7WWkrKylkYVtZaV09ajEoVnQsKFlpK2VpKSU3LFJuLCJkYXkiKTtyZXR1cm4gZGF9dGEuY2FsZW5kYXI9ZnVuY3Rpb24gVih6ZSxWdCxobil7dmFyIFJuPXRoaXMuX2NhbGVuZGFyW3plXXx8dGhpcy5fY2FsZW5kYXIuc2FtZUVs''@;'; put 'put ''c2U7cmV0dXJuIE8oUm4pP1JuLmNhbGwoVnQsaG4pOlJufSx0YS5sb25nRGF0ZUZvcm1hdD1mdW5jdGlvbiBtdCh6ZSl7dmFyIFZ0PXRoaXMuX2xvbmdEYXRlRm9ybWF0W3plXSxobj10aGlzLl9sb25nRGF0ZUZvcm1hdFt6ZS50b1VwcGVyQ2FzZSgpXTtyZXR1cm4gVnR8fCFobj9WdDoodGhp''@;'; put 'put ''cy5fbG9uZ0RhdGVGb3JtYXRbemVdPWhuLm1hdGNoKFMpLm1hcChmdW5jdGlvbihSbil7cmV0dXJuIk1NTU0iPT09Um58fCJNTSI9PT1Sbnx8IkREIj09PVJufHwiZGRkZCI9PT1Sbj9Sbi5zbGljZSgxKTpSbn0pLmpvaW4oIiIpLHRoaXMuX2xvbmdEYXRlRm9ybWF0W3plXSl9LHRhLmludmFs''@;'; put 'put ''aWREYXRlPWZ1bmN0aW9uIEF0KCl7cmV0dXJuIHRoaXMuX2ludmFsaWREYXRlfSx0YS5vcmRpbmFsPWZ1bmN0aW9uIG9uKHplKXtyZXR1cm4gdGhpcy5fb3JkaW5hbC5yZXBsYWNlKCIlZCIsemUpfSx0YS5wcmVwYXJzZT1Kcyx0YS5wb3N0Zm9ybWF0PUpzLHRhLnJlbGF0aXZlVGltZT1mdW5j''@;'; put 'put ''dGlvbiB0dCh6ZSxWdCxobixSbil7dmFyIHRyPXRoaXMuX3JlbGF0aXZlVGltZVtobl07cmV0dXJuIE8odHIpP3RyKHplLFZ0LGhuLFJuKTp0ci5yZXBsYWNlKC8lZC9pLHplKX0sdGEucGFzdEZ1dHVyZT1mdW5jdGlvbiBldCh6ZSxWdCl7dmFyIGhuPXRoaXMuX3JlbGF0aXZlVGltZVt6ZT4w''@;'; put 'put ''PyJmdXR1cmUiOiJwYXN0Il07cmV0dXJuIE8oaG4pP2huKFZ0KTpobi5yZXBsYWNlKC8lcy9pLFZ0KX0sdGEuc2V0PWZ1bmN0aW9uIHooemUpe3ZhciBWdCxobjtmb3IoaG4gaW4gemUpUSh6ZSxobikmJihPKFZ0PXplW2huXSk/dGhpc1tobl09VnQ6dGhpc1siXyIraG5dPVZ0KTt0aGlzLl9j''@;'; put 'put ''b25maWc9emUsdGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQ9bmV3IFJlZ0V4cCgodGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZS5zb3VyY2V8fHRoaXMuX29yZGluYWxQYXJzZS5zb3VyY2UpKyJ8IisvXGR7MSwyfS8uc291cmNlKX0sdGEuZXJhcz1mdW5jdGlvbiB5cyh6''@;'; put 'put ''ZSxWdCl7dmFyIGhuLFJuLHRyLGVpPXRoaXMuX2VyYXN8fHUxKCJlbiIpLl9lcmFzO2Zvcihobj0wLFJuPWVpLmxlbmd0aDtobjxSbjsrK2huKXN3aXRjaCgic3RyaW5nIj09dHlwZW9mIGVpW2huXS5zaW5jZSYmKHRyPUIoZWlbaG5dLnNpbmNlKS5zdGFydE9mKCJkYXkiKSxlaVtobl0uc2lu''@;'; put 'put ''Y2U9dHIudmFsdWVPZigpKSx0eXBlb2YgZWlbaG5dLnVudGlsKXtjYXNlInVuZGVmaW5lZCI6ZWlbaG5dLnVudGlsPTEvMDticmVhaztjYXNlInN0cmluZyI6dHI9QihlaVtobl0udW50aWwpLnN0YXJ0T2YoImRheSIpLnZhbHVlT2YoKSxlaVtobl0udW50aWw9dHIudmFsdWVPZigpfXJldHVy''@;'; put 'put ''biBlaX0sdGEuZXJhc1BhcnNlPWZ1bmN0aW9uIEJNKHplLFZ0LGhuKXt2YXIgUm4sdHIsWWksZGEsemEsZWk9dGhpcy5lcmFzKCk7Zm9yKHplPXplLnRvVXBwZXJDYXNlKCksUm49MCx0cj1laS5sZW5ndGg7Um48dHI7KytSbilpZihZaT1laVtSbl0ubmFtZS50b1VwcGVyQ2FzZSgpLGRhPWVp''@;'; put 'put ''W1JuXS5hYmJyLnRvVXBwZXJDYXNlKCksemE9ZWlbUm5dLm5hcnJvdy50b1VwcGVyQ2FzZSgpLGhuKXN3aXRjaChWdCl7Y2FzZSJOIjpjYXNlIk5OIjpjYXNlIk5OTiI6aWYoZGE9PT16ZSlyZXR1cm4gZWlbUm5dO2JyZWFrO2Nhc2UiTk5OTiI6aWYoWWk9PT16ZSlyZXR1cm4gZWlbUm5dO2Jy''@;'; put 'put ''ZWFrO2Nhc2UiTk5OTk4iOmlmKHphPT09emUpcmV0dXJuIGVpW1JuXX1lbHNlIGlmKFtZaSxkYSx6YV0uaW5kZXhPZih6ZSk+PTApcmV0dXJuIGVpW1JuXX0sdGEuZXJhc0NvbnZlcnRZZWFyPWZ1bmN0aW9uIFBNKHplLFZ0KXt2YXIgaG49emUuc2luY2U8PXplLnVudGlsPzE6LTE7cmV0dXJu''@;'; put 'put ''IHZvaWQgMD09PVZ0P0IoemUuc2luY2UpLnllYXIoKTpCKHplLnNpbmNlKS55ZWFyKCkrKFZ0LXplLm9mZnNldCkqaG59LHRhLmVyYXNBYmJyUmVnZXg9ZnVuY3Rpb24gZW8oemUpe3JldHVybiBRKHRoaXMsIl9lcmFzQWJiclJlZ2V4Iil8fEpwLmNhbGwodGhpcyksemU/dGhpcy5fZXJhc0Fi''@;'; put 'put ''YnJSZWdleDp0aGlzLl9lcmFzUmVnZXh9LHRhLmVyYXNOYW1lUmVnZXg9ZnVuY3Rpb24gY2YoemUpe3JldHVybiBRKHRoaXMsIl9lcmFzTmFtZVJlZ2V4Iil8fEpwLmNhbGwodGhpcyksemU/dGhpcy5fZXJhc05hbWVSZWdleDp0aGlzLl9lcmFzUmVnZXh9LHRhLmVyYXNOYXJyb3dSZWdleD1m''@;'; put 'put ''dW5jdGlvbiBEMCh6ZSl7cmV0dXJuIFEodGhpcywiX2VyYXNOYXJyb3dSZWdleCIpfHxKcC5jYWxsKHRoaXMpLHplP3RoaXMuX2VyYXNOYXJyb3dSZWdleDp0aGlzLl9lcmFzUmVnZXh9LHRhLm1vbnRocz1mdW5jdGlvbiBkMCh6ZSxWdCl7cmV0dXJuIHplP0VlKHRoaXMuX21vbnRocyk/dGhp''@;'; put 'put ''cy5fbW9udGhzW3plLm1vbnRoKCldOnRoaXMuX21vbnRoc1sodGhpcy5fbW9udGhzLmlzRm9ybWF0fHxNaSkudGVzdChWdCk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXVt6ZS5tb250aCgpXTpFZSh0aGlzLl9tb250aHMpP3RoaXMuX21vbnRoczp0aGlzLl9tb250aHMuc3RhbmRhbG9uZX0sdGEu''@;'; put 'put ''bW9udGhzU2hvcnQ9ZnVuY3Rpb24gbTAoemUsVnQpe3JldHVybiB6ZT9FZSh0aGlzLl9tb250aHNTaG9ydCk/dGhpcy5fbW9udGhzU2hvcnRbemUubW9udGgoKV06dGhpcy5fbW9udGhzU2hvcnRbTWkudGVzdChWdCk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXVt6ZS5tb250aCgpXTpFZSh0aGlz''@;'; put 'put ''Ll9tb250aHNTaG9ydCk/dGhpcy5fbW9udGhzU2hvcnQ6dGhpcy5fbW9udGhzU2hvcnQuc3RhbmRhbG9uZX0sdGEubW9udGhzUGFyc2U9ZnVuY3Rpb24gRGkoemUsVnQsaG4pe3ZhciBSbix0cixlaTtpZih0aGlzLl9tb250aHNQYXJzZUV4YWN0KXJldHVybiBHMC5jYWxsKHRoaXMsemUsVnQs''@;'; put 'put ''aG4pO2Zvcih0aGlzLl9tb250aHNQYXJzZXx8KHRoaXMuX21vbnRoc1BhcnNlPVtdLHRoaXMuX2xvbmdNb250aHNQYXJzZT1bXSx0aGlzLl9zaG9ydE1vbnRoc1BhcnNlPVtdKSxSbj0wO1JuPDEyO1JuKyspe2lmKHRyPXRlKFsyZTMsUm5dKSxobiYmIXRoaXMuX2xvbmdNb250aHNQYXJzZVtS''@;'; put 'put ''bl0mJih0aGlzLl9sb25nTW9udGhzUGFyc2VbUm5dPW5ldyBSZWdFeHAoIl4iK3RoaXMubW9udGhzKHRyLCIiKS5yZXBsYWNlKCIuIiwiIikrIiQiLCJpIiksdGhpcy5fc2hvcnRNb250aHNQYXJzZVtSbl09bmV3IFJlZ0V4cCgiXiIrdGhpcy5tb250aHNTaG9ydCh0ciwiIikucmVwbGFjZSgi''@;'; put 'put ''LiIsIiIpKyIkIiwiaSIpKSwhaG4mJiF0aGlzLl9tb250aHNQYXJzZVtSbl0mJihlaT0iXiIrdGhpcy5tb250aHModHIsIiIpKyJ8XiIrdGhpcy5tb250aHNTaG9ydCh0ciwiIiksdGhpcy5fbW9udGhzUGFyc2VbUm5dPW5ldyBSZWdFeHAoZWkucmVwbGFjZSgiLiIsIiIpLCJpIikpLGhuJiYi''@;'; put 'put ''TU1NTSI9PT1WdCYmdGhpcy5fbG9uZ01vbnRoc1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm47aWYoaG4mJiJNTU0iPT09VnQmJnRoaXMuX3Nob3J0TW9udGhzUGFyc2VbUm5dLnRlc3QoemUpKXJldHVybiBSbjtpZighaG4mJnRoaXMuX21vbnRoc1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1''@;'; put 'put ''cm4gUm59fSx0YS5tb250aHNSZWdleD1mdW5jdGlvbiBsbCh6ZSl7cmV0dXJuIHRoaXMuX21vbnRoc1BhcnNlRXhhY3Q/KFEodGhpcywiX21vbnRoc1JlZ2V4Iil8fFFpLmNhbGwodGhpcyksemU/dGhpcy5fbW9udGhzU3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzUmVnZXgpOihRKHRoaXMsIl9t''@;'; put 'put ''b250aHNSZWdleCIpfHwodGhpcy5fbW9udGhzUmVnZXg9bjApLHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4JiZ6ZT90aGlzLl9tb250aHNTdHJpY3RSZWdleDp0aGlzLl9tb250aHNSZWdleCl9LHRhLm1vbnRoc1Nob3J0UmVnZXg9ZnVuY3Rpb24gY2EoemUpe3JldHVybiB0aGlzLl9tb250aHNQ''@;'; put 'put ''YXJzZUV4YWN0PyhRKHRoaXMsIl9tb250aHNSZWdleCIpfHxRaS5jYWxsKHRoaXMpLHplP3RoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzU2hvcnRSZWdleCk6KFEodGhpcywiX21vbnRoc1Nob3J0UmVnZXgiKXx8KHRoaXMuX21vbnRoc1Nob3J0UmVnZXg9bzApLHRo''@;'; put 'put ''aXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXgmJnplP3RoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXg6dGhpcy5fbW9udGhzU2hvcnRSZWdleCl9LHRhLndlZWs9ZnVuY3Rpb24gb3UoemUpe3JldHVybiBybCh6ZSx0aGlzLl93ZWVrLmRvdyx0aGlzLl93ZWVrLmRveSkud2Vla30sdGEuZmly''@;'; put 'put ''c3REYXlPZlllYXI9ZnVuY3Rpb24gQnMoKXtyZXR1cm4gdGhpcy5fd2Vlay5kb3l9LHRhLmZpcnN0RGF5T2ZXZWVrPWZ1bmN0aW9uIFUwKCl7cmV0dXJuIHRoaXMuX3dlZWsuZG93fSx0YS53ZWVrZGF5cz1mdW5jdGlvbiBtYyh6ZSxWdCl7dmFyIGhuPUVlKHRoaXMuX3dlZWtkYXlzKT90aGlz''@;'; put 'put ''Ll93ZWVrZGF5czp0aGlzLl93ZWVrZGF5c1t6ZSYmITAhPT16ZSYmdGhpcy5fd2Vla2RheXMuaXNGb3JtYXQudGVzdChWdCk/ImZvcm1hdCI6InN0YW5kYWxvbmUiXTtyZXR1cm4hMD09PXplP3ZuKGhuLHRoaXMuX3dlZWsuZG93KTp6ZT9oblt6ZS5kYXkoKV06aG59LHRhLndlZWtkYXlzTWlu''@;'; put 'put ''PWZ1bmN0aW9uIFBsKHplKXtyZXR1cm4hMD09PXplP3ZuKHRoaXMuX3dlZWtkYXlzTWluLHRoaXMuX3dlZWsuZG93KTp6ZT90aGlzLl93ZWVrZGF5c01pblt6ZS5kYXkoKV06dGhpcy5fd2Vla2RheXNNaW59LHRhLndlZWtkYXlzU2hvcnQ9ZnVuY3Rpb24geDIoemUpe3JldHVybiEwPT09emU/''@;'; put 'put ''dm4odGhpcy5fd2Vla2RheXNTaG9ydCx0aGlzLl93ZWVrLmRvdyk6emU/dGhpcy5fd2Vla2RheXNTaG9ydFt6ZS5kYXkoKV06dGhpcy5fd2Vla2RheXNTaG9ydH0sdGEud2Vla2RheXNQYXJzZT1mdW5jdGlvbiBRMih6ZSxWdCxobil7dmFyIFJuLHRyLGVpO2lmKHRoaXMuX3dlZWtkYXlzUGFy''@;'; put 'put ''c2VFeGFjdClyZXR1cm4gZDMuY2FsbCh0aGlzLHplLFZ0LGhuKTtmb3IodGhpcy5fd2Vla2RheXNQYXJzZXx8KHRoaXMuX3dlZWtkYXlzUGFyc2U9W10sdGhpcy5fbWluV2Vla2RheXNQYXJzZT1bXSx0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2U9W10sdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2U9''@;'; put 'put ''W10pLFJuPTA7Um48NztSbisrKXtpZih0cj10ZShbMmUzLDFdKS5kYXkoUm4pLGhuJiYhdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbUm5dJiYodGhpcy5fZnVsbFdlZWtkYXlzUGFyc2VbUm5dPW5ldyBSZWdFeHAoIl4iK3RoaXMud2Vla2RheXModHIsIiIpLnJlcGxhY2UoIi4iLCJcXC4/Iikr''@;'; put 'put ''IiQiLCJpIiksdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW1JuXT1uZXcgUmVnRXhwKCJeIit0aGlzLndlZWtkYXlzU2hvcnQodHIsIiIpLnJlcGxhY2UoIi4iLCJcXC4/IikrIiQiLCJpIiksdGhpcy5fbWluV2Vla2RheXNQYXJzZVtSbl09bmV3IFJlZ0V4cCgiXiIrdGhpcy53ZWVrZGF5c01p''@;'; put 'put ''bih0ciwiIikucmVwbGFjZSgiLiIsIlxcLj8iKSsiJCIsImkiKSksdGhpcy5fd2Vla2RheXNQYXJzZVtSbl18fChlaT0iXiIrdGhpcy53ZWVrZGF5cyh0ciwiIikrInxeIit0aGlzLndlZWtkYXlzU2hvcnQodHIsIiIpKyJ8XiIrdGhpcy53ZWVrZGF5c01pbih0ciwiIiksdGhpcy5fd2Vla2Rh''@;'; put 'put ''eXNQYXJzZVtSbl09bmV3IFJlZ0V4cChlaS5yZXBsYWNlKCIuIiwiIiksImkiKSksaG4mJiJkZGRkIj09PVZ0JiZ0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtSbl0udGVzdCh6ZSkpcmV0dXJuIFJuO2lmKGhuJiYiZGRkIj09PVZ0JiZ0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2VbUm5dLnRlc3Qo''@;'; put 'put ''emUpKXJldHVybiBSbjtpZihobiYmImRkIj09PVZ0JiZ0aGlzLl9taW5XZWVrZGF5c1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm47aWYoIWhuJiZ0aGlzLl93ZWVrZGF5c1BhcnNlW1JuXS50ZXN0KHplKSlyZXR1cm4gUm59fSx0YS53ZWVrZGF5c1JlZ2V4PWZ1bmN0aW9uIFIwKHplKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0PyhRKHRoaXMsIl93ZWVrZGF5c1JlZ2V4Iil8fGRzLmNhbGwodGhpcyksemU/dGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c1JlZ2V4KTooUSh0aGlzLCJfd2Vla2RheXNSZWdleCIpfHwodGhpcy5fd2Vla2RheXNS''@;'; put 'put ''ZWdleD1CMSksdGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleCYmemU/dGhpcy5fd2Vla2RheXNTdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c1JlZ2V4KX0sdGEud2Vla2RheXNTaG9ydFJlZ2V4PWZ1bmN0aW9uIG1vKHplKXtyZXR1cm4gdGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0PyhRKHRoaXMs''@;'; put 'put ''Il93ZWVrZGF5c1JlZ2V4Iil8fGRzLmNhbGwodGhpcyksemU/dGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4OnRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCk6KFEodGhpcywiX3dlZWtkYXlzU2hvcnRSZWdleCIpfHwodGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4PWF1KSx0aGlzLl93ZWVr''@;'; put 'put ''ZGF5c1Nob3J0U3RyaWN0UmVnZXgmJnplP3RoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c1Nob3J0UmVnZXgpfSx0YS53ZWVrZGF5c01pblJlZ2V4PWZ1bmN0aW9uIHJzKHplKXtyZXR1cm4gdGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0PyhRKHRoaXMsIl93ZWVr''@;'; put 'put ''ZGF5c1JlZ2V4Iil8fGRzLmNhbGwodGhpcyksemU/dGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c01pblJlZ2V4KTooUSh0aGlzLCJfd2Vla2RheXNNaW5SZWdleCIpfHwodGhpcy5fd2Vla2RheXNNaW5SZWdleD1QMSksdGhpcy5fd2Vla2RheXNNaW5TdHJpY3RS''@;'; put 'put ''ZWdleCYmemU/dGhpcy5fd2Vla2RheXNNaW5TdHJpY3RSZWdleDp0aGlzLl93ZWVrZGF5c01pblJlZ2V4KX0sdGEuaXNQTT1mdW5jdGlvbiBOZih6ZSl7cmV0dXJuInAiPT09KHplKyIiKS50b0xvd2VyQ2FzZSgpLmNoYXJBdCgwKX0sdGEubWVyaWRpZW09ZnVuY3Rpb24gY28oemUsVnQsaG4p''@;'; put 'put ''e3JldHVybiB6ZT4xMT9obj8icG0iOiJQTSI6aG4/ImFtIjoiQU0ifSxIMSgiZW4iLHtlcmFzOlt7c2luY2U6IjAwMDEtMDEtMDEiLHVudGlsOjEvMCxvZmZzZXQ6MSxuYW1lOiJBbm5vIERvbWluaSIsbmFycm93OiJBRCIsYWJicjoiQUQifSx7c2luY2U6IjAwMDAtMTItMzEiLHVudGlsOi0x''@;'; put 'put ''LzAsb2Zmc2V0OjEsbmFtZToiQmVmb3JlIENocmlzdCIsbmFycm93OiJCQyIsYWJicjoiQkMifV0sZGF5T2ZNb250aE9yZGluYWxQYXJzZTovXGR7MSwyfSh0aHxzdHxuZHxyZCkvLG9yZGluYWw6ZnVuY3Rpb24oemUpe3ZhciBWdD16ZSUxMDtyZXR1cm4gemUrKDE9PT1KdCh6ZSUxMDAvMTAp''@;'; put 'put ''PyJ0aCI6MT09PVZ0PyJzdCI6Mj09PVZ0PyJuZCI6Mz09PVZ0PyJyZCI6InRoIil9fSksQi5sYW5nPVRlKCJtb21lbnQubGFuZyBpcyBkZXByZWNhdGVkLiBVc2UgbW9tZW50LmxvY2FsZSBpbnN0ZWFkLiIsSDEpLEIubGFuZ0RhdGE9VGUoIm1vbWVudC5sYW5nRGF0YSBpcyBkZXByZWNhdGVk''@;'; put 'put ''LiBVc2UgbW9tZW50LmxvY2FsZURhdGEgaW5zdGVhZC4iLHUxKTt2YXIgR2M9TWF0aC5hYnM7ZnVuY3Rpb24geDQoemUsVnQsaG4sUm4pe3ZhciB0cj1RcyhWdCxobik7cmV0dXJuIHplLl9taWxsaXNlY29uZHMrPVJuKnRyLl9taWxsaXNlY29uZHMsemUuX2RheXMrPVJuKnRyLl9kYXlzLHpl''@;'; put 'put ''Ll9tb250aHMrPVJuKnRyLl9tb250aHMsemUuX2J1YmJsZSgpfWZ1bmN0aW9uIEw4KHplKXtyZXR1cm4gemU8MD9NYXRoLmZsb29yKHplKTpNYXRoLmNlaWwoemUpfWZ1bmN0aW9uICRwKHplKXtyZXR1cm4gNDgwMCp6ZS8xNDYwOTd9ZnVuY3Rpb24gTzgoemUpe3JldHVybiAxNDYwOTcqemUv''@;'; put 'put ''NDgwMH1mdW5jdGlvbiBraCh6ZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXMoemUpfX12YXIgZTY9a2goIm1zIiksdDY9a2goInMiKSxSOD1raCgibSIpLEFjPWtoKCJoIiksR2Y9a2goImQiKSxzYj1raCgidyIpLGJkPWtoKCJNIiksdjk9a2goIlEiKSx0bT1raCgieSIpO2Z1''@;'; put 'put ''bmN0aW9uIEp1KHplKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCk/dGhpcy5fZGF0YVt6ZV06TmFOfX12YXIgVDQ9SnUoIm1pbGxpc2Vjb25kcyIpLHI2PUp1KCJzZWNvbmRzIiksdWI9SnUoIm1pbnV0ZXMiKSxBOT1KdSgiaG91cnMiKSxJND1KdSgiZGF5cyIpLFZN''@;'; put 'put ''PUp1KCJtb250aHMiKSxmbD1KdSgieWVhcnMiKTt2YXIgWHU9TWF0aC5yb3VuZCxEdT17c3M6NDQsczo0NSxtOjQ1LGg6MjIsZDoyNix3Om51bGwsTToxMX07ZnVuY3Rpb24gZzMoemUsVnQsaG4sUm4sdHIpe3JldHVybiB0ci5yZWxhdGl2ZVRpbWUoVnR8fDEsISFobix6ZSxSbil9dmFyIFA4''@;'; put 'put ''PU1hdGguYWJzO2Z1bmN0aW9uIFdmKHplKXtyZXR1cm4oemU+MCktKHplPDApfHwremV9ZnVuY3Rpb24geTkoKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7dmFyIFJuLHRyLGVpLFlpLHphLEZzLEt1LEhzLHplPVA4KHRoaXMuX21p''@;'; put 'put ''bGxpc2Vjb25kcykvMWUzLFZ0PVA4KHRoaXMuX2RheXMpLGhuPVA4KHRoaXMuX21vbnRocyksZGE9dGhpcy5hc1NlY29uZHMoKTtyZXR1cm4gZGE/KFJuPWp0KHplLzYwKSx0cj1qdChSbi82MCksemUlPTYwLFJuJT02MCxlaT1qdChobi8xMiksaG4lPTEyLFlpPXplP3plLnRvRml4ZWQoMyku''@;'; put 'put ''cmVwbGFjZSgvXC4/MCskLywiIik6IiIsemE9ZGE8MD8iLSI6IiIsRnM9V2YodGhpcy5fbW9udGhzKSE9PVdmKGRhKT8iLSI6IiIsS3U9V2YodGhpcy5fZGF5cykhPT1XZihkYSk/Ii0iOiIiLEhzPVdmKHRoaXMuX21pbGxpc2Vjb25kcykhPT1XZihkYSk/Ii0iOiIiLHphKyJQIisoZWk/RnMr''@;'; put 'put ''ZWkrIlkiOiIiKSsoaG4/RnMraG4rIk0iOiIiKSsoVnQ/S3UrVnQrIkQiOiIiKSsodHJ8fFJufHx6ZT8iVCI6IiIpKyh0cj9Icyt0cisiSCI6IiIpKyhSbj9IcytSbisiTSI6IiIpKyh6ZT9IcytZaSsiUyI6IiIpKToiUDBEIn12YXIgYmw9WnAucHJvdG90eXBlO3JldHVybiBibC5pc1ZhbGlk''@;'; put 'put ''PWZ1bmN0aW9uIFRNKCl7cmV0dXJuIHRoaXMuX2lzVmFsaWR9LGJsLmFicz1mdW5jdGlvbiBjdSgpe3ZhciB6ZT10aGlzLl9kYXRhO3JldHVybiB0aGlzLl9taWxsaXNlY29uZHM9R2ModGhpcy5fbWlsbGlzZWNvbmRzKSx0aGlzLl9kYXlzPUdjKHRoaXMuX2RheXMpLHRoaXMuX21vbnRocz1H''@;'; put 'put ''Yyh0aGlzLl9tb250aHMpLHplLm1pbGxpc2Vjb25kcz1HYyh6ZS5taWxsaXNlY29uZHMpLHplLnNlY29uZHM9R2MoemUuc2Vjb25kcyksemUubWludXRlcz1HYyh6ZS5taW51dGVzKSx6ZS5ob3Vycz1HYyh6ZS5ob3VycyksemUubW9udGhzPUdjKHplLm1vbnRocyksemUueWVhcnM9R2MoemUu''@;'; put 'put ''eWVhcnMpLHRoaXN9LGJsLmFkZD1mdW5jdGlvbiBkZih6ZSxWdCl7cmV0dXJuIHg0KHRoaXMsemUsVnQsMSl9LGJsLnN1YnRyYWN0PWZ1bmN0aW9uIFByKHplLFZ0KXtyZXR1cm4geDQodGhpcyx6ZSxWdCwtMSl9LGJsLmFzPWZ1bmN0aW9uIHFwKHplKXtpZighdGhpcy5pc1ZhbGlkKCkpcmV0''@;'; put 'put ''dXJuIE5hTjt2YXIgVnQsaG4sUm49dGhpcy5fbWlsbGlzZWNvbmRzO2lmKCJtb250aCI9PT0oemU9Q3QoemUpKXx8InF1YXJ0ZXIiPT09emV8fCJ5ZWFyIj09PXplKXN3aXRjaChWdD10aGlzLl9kYXlzK1JuLzg2NGU1LGhuPXRoaXMuX21vbnRocyskcChWdCksemUpe2Nhc2UibW9udGgiOnJl''@;'; put 'put ''dHVybiBobjtjYXNlInF1YXJ0ZXIiOnJldHVybiBobi8zO2Nhc2UieWVhciI6cmV0dXJuIGhuLzEyfWVsc2Ugc3dpdGNoKFZ0PXRoaXMuX2RheXMrTWF0aC5yb3VuZChPOCh0aGlzLl9tb250aHMpKSx6ZSl7Y2FzZSJ3ZWVrIjpyZXR1cm4gVnQvNytSbi82MDQ4ZTU7Y2FzZSJkYXkiOnJldHVy''@;'; put 'put ''biBWdCtSbi84NjRlNTtjYXNlImhvdXIiOnJldHVybiAyNCpWdCtSbi8zNmU1O2Nhc2UibWludXRlIjpyZXR1cm4gMTQ0MCpWdCtSbi82ZTQ7Y2FzZSJzZWNvbmQiOnJldHVybiA4NjQwMCpWdCtSbi8xZTM7Y2FzZSJtaWxsaXNlY29uZCI6cmV0dXJuIE1hdGguZmxvb3IoODY0ZTUqVnQpK1Ju''@;'; put 'put ''O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHVuaXQgIit6ZSl9fSxibC5hc01pbGxpc2Vjb25kcz1lNixibC5hc1NlY29uZHM9dDYsYmwuYXNNaW51dGVzPVI4LGJsLmFzSG91cnM9QWMsYmwuYXNEYXlzPUdmLGJsLmFzV2Vla3M9c2IsYmwuYXNNb250aHM9YmQsYmwuYXNRdWFy''@;'; put 'put ''dGVycz12OSxibC5hc1llYXJzPXRtLGJsLnZhbHVlT2Y9ZnVuY3Rpb24gcGYoKXtyZXR1cm4gdGhpcy5pc1ZhbGlkKCk/dGhpcy5fbWlsbGlzZWNvbmRzKzg2NGU1KnRoaXMuX2RheXMrdGhpcy5fbW9udGhzJTEyKjI1OTJlNiszMTUzNmU2Kkp0KHRoaXMuX21vbnRocy8xMik6TmFOfSxibC5f''@;'; put 'put ''YnViYmxlPWZ1bmN0aW9uIE5NKCl7dmFyIHRyLGVpLFlpLGRhLHphLHplPXRoaXMuX21pbGxpc2Vjb25kcyxWdD10aGlzLl9kYXlzLGhuPXRoaXMuX21vbnRocyxSbj10aGlzLl9kYXRhO3JldHVybiB6ZT49MCYmVnQ+PTAmJmhuPj0wfHx6ZTw9MCYmVnQ8PTAmJmhuPD0wfHwoemUrPTg2NGU1''@;'; put 'put ''Kkw4KE84KGhuKStWdCksVnQ9MCxobj0wKSxSbi5taWxsaXNlY29uZHM9emUlMWUzLHRyPWp0KHplLzFlMyksUm4uc2Vjb25kcz10ciU2MCxlaT1qdCh0ci82MCksUm4ubWludXRlcz1laSU2MCxZaT1qdChlaS82MCksUm4uaG91cnM9WWklMjQsVnQrPWp0KFlpLzI0KSxobis9emE9anQoJHAo''@;'; put 'put ''VnQpKSxWdC09TDgoTzgoemEpKSxkYT1qdChobi8xMiksaG4lPTEyLFJuLmRheXM9VnQsUm4ubW9udGhzPWhuLFJuLnllYXJzPWRhLHRoaXN9LGJsLmNsb25lPWZ1bmN0aW9uIEI4KCl7cmV0dXJuIFFzKHRoaXMpfSxibC5nZXQ9ZnVuY3Rpb24gbjYoemUpe3JldHVybiB6ZT1DdCh6ZSksdGhp''@;'; put 'put ''cy5pc1ZhbGlkKCk/dGhpc1t6ZSsicyJdKCk6TmFOfSxibC5taWxsaXNlY29uZHM9VDQsYmwuc2Vjb25kcz1yNixibC5taW51dGVzPXViLGJsLmhvdXJzPUE5LGJsLmRheXM9STQsYmwud2Vla3M9ZnVuY3Rpb24gbm0oKXtyZXR1cm4ganQodGhpcy5kYXlzKCkvNyl9LGJsLm1vbnRocz1WTSxi''@;'; put 'put ''bC55ZWFycz1mbCxibC5odW1hbml6ZT1mdW5jdGlvbiBjYih6ZSxWdCl7aWYoIXRoaXMuaXNWYWxpZCgpKXJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO3ZhciB0cixlaSxobj0hMSxSbj1EdTtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHplJiYoVnQ9emUsemU9ITEpLCJi''@;'; put 'put ''b29sZWFuIj09dHlwZW9mIHplJiYoaG49emUpLCJvYmplY3QiPT10eXBlb2YgVnQmJihSbj1PYmplY3QuYXNzaWduKHt9LER1LFZ0KSxudWxsIT1WdC5zJiZudWxsPT1WdC5zcyYmKFJuLnNzPVZ0LnMtMSkpLGVpPWZ1bmN0aW9uIGk2KHplLFZ0LGhuLFJuKXt2YXIgdHI9UXMoemUpLmFicygp''@;'; put 'put ''LGVpPVh1KHRyLmFzKCJzIikpLFlpPVh1KHRyLmFzKCJtIikpLGRhPVh1KHRyLmFzKCJoIikpLHphPVh1KHRyLmFzKCJkIikpLEZzPVh1KHRyLmFzKCJNIikpLEt1PVh1KHRyLmFzKCJ3IikpLEhzPVh1KHRyLmFzKCJ5IikpLFdjPWVpPD1obi5zcyYmWyJzIixlaV18fGVpPGhuLnMmJlsic3Mi''@;'; put 'put ''LGVpXXx8WWk8PTEmJlsibSJdfHxZaTxobi5tJiZbIm1tIixZaV18fGRhPD0xJiZbImgiXXx8ZGE8aG4uaCYmWyJoaCIsZGFdfHx6YTw9MSYmWyJkIl18fHphPGhuLmQmJlsiZGQiLHphXTtyZXR1cm4gbnVsbCE9aG4udyYmKFdjPVdjfHxLdTw9MSYmWyJ3Il18fEt1PGhuLncmJlsid3ciLEt1''@;'; put 'put ''XSksKFdjPVdjfHxGczw9MSYmWyJNIl18fEZzPGhuLk0mJlsiTU0iLEZzXXx8SHM8PTEmJlsieSJdfHxbInl5IixIc10pWzJdPVZ0LFdjWzNdPSt6ZT4wLFdjWzRdPVJuLGczLmFwcGx5KG51bGwsV2MpfSh0aGlzLCFobixSbix0cj10aGlzLmxvY2FsZURhdGEoKSksaG4mJihlaT10ci5wYXN0''@;'; put 'put ''RnV0dXJlKCt0aGlzLGVpKSksdHIucG9zdGZvcm1hdChlaSl9LGJsLnRvSVNPU3RyaW5nPXk5LGJsLnRvU3RyaW5nPXk5LGJsLnRvSlNPTj15OSxibC5sb2NhbGU9ZHQsYmwubG9jYWxlRGF0YT1QdCxibC50b0lzb1N0cmluZz1UZSgidG9Jc29TdHJpbmcoKSBpcyBkZXByZWNhdGVkLiBQbGVh''@;'; put 'put ''c2UgdXNlIHRvSVNPU3RyaW5nKCkgaW5zdGVhZCAobm90aWNlIHRoZSBjYXBpdGFscykiLHk5KSxibC5sYW5nPUl0LERlKCJYIiwwLDAsInVuaXgiKSxEZSgieCIsMCwwLCJ2YWx1ZU9mIiksdG4oIngiLHBuKSx0bigiWCIsL1srLV0/XGQrKFwuXGR7MSwzfSk/LyksbW4oIlgiLGZ1bmN0aW9u''@;'; put 'put ''KHplLFZ0LGhuKXtobi5fZD1uZXcgRGF0ZSgxZTMqcGFyc2VGbG9hdCh6ZSkpfSksbW4oIngiLGZ1bmN0aW9uKHplLFZ0LGhuKXtobi5fZD1uZXcgRGF0ZShKdCh6ZSkpfSksQi52ZXJzaW9uPSIyLjI5LjQiLGZ1bmN0aW9uIEUoemUpe21lPXplfShrcyksQi5mbj1hMCxCLm1pbj1mdW5jdGlv''@;'; put 'put ''biB2aCgpe3JldHVybiBxdygiaXNCZWZvcmUiLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sQi5tYXg9ZnVuY3Rpb24gUzQoKXtyZXR1cm4gcXcoImlzQWZ0ZXIiLFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDApKX0sQi5ub3c9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3c/RGF0ZS5u''@;'; put 'put ''b3coKTorbmV3IERhdGV9LEIudXRjPXRlLEIudW5peD1mdW5jdGlvbiBGbCh6ZSl7cmV0dXJuIGtzKDFlMyp6ZSl9LEIubW9udGhzPWZ1bmN0aW9uIFpjKHplLFZ0KXtyZXR1cm4gYzEoemUsVnQsIm1vbnRocyIpfSxCLmlzRGF0ZT1ZLEIubG9jYWxlPUgxLEIuaW52YWxpZD1jZSxCLmR1cmF0''@;'; put 'put ''aW9uPVFzLEIuaXNNb21lbnQ9U2UsQi53ZWVrZGF5cz1mdW5jdGlvbiBaMSh6ZSxWdCxobil7cmV0dXJuIGhmKHplLFZ0LGhuLCJ3ZWVrZGF5cyIpfSxCLnBhcnNlWm9uZT1mdW5jdGlvbiBEOCgpe3JldHVybiBrcy5hcHBseShudWxsLGFyZ3VtZW50cykucGFyc2Vab25lKCl9LEIubG9jYWxl''@;'; put 'put ''RGF0YT11MSxCLmlzRHVyYXRpb249bDksQi5tb250aHNTaG9ydD1mdW5jdGlvbiBzcyh6ZSxWdCl7cmV0dXJuIGMxKHplLFZ0LCJtb250aHNTaG9ydCIpfSxCLndlZWtkYXlzTWluPWZ1bmN0aW9uIGxiKHplLFZ0LGhuKXtyZXR1cm4gaGYoemUsVnQsaG4sIndlZWtkYXlzTWluIil9LEIuZGVm''@;'; put 'put ''aW5lTG9jYWxlPUoyLEIudXBkYXRlTG9jYWxlPWZ1bmN0aW9uIEMwKHplLFZ0KXtpZihudWxsIT1WdCl7dmFyIGhuLFJuLHRyPUM0O251bGwhPXIyW3plXSYmbnVsbCE9cjJbemVdLnBhcmVudExvY2FsZT9yMlt6ZV0uc2V0KGVlKHIyW3plXS5fY29uZmlnLFZ0KSk6KG51bGwhPShSbj1SaSh6''@;'; put 'put ''ZSkpJiYodHI9Um4uX2NvbmZpZyksVnQ9ZWUodHIsVnQpLG51bGw9PVJuJiYoVnQuYWJicj16ZSksKGhuPW5ldyBuZShWdCkpLnBhcmVudExvY2FsZT1yMlt6ZV0scjJbemVdPWhuKSxIMSh6ZSl9ZWxzZSBudWxsIT1yMlt6ZV0mJihudWxsIT1yMlt6ZV0ucGFyZW50TG9jYWxlPyhyMlt6ZV09''@;'; put 'put ''cjJbemVdLnBhcmVudExvY2FsZSx6ZT09PUgxKCkmJkgxKHplKSk6bnVsbCE9cjJbemVdJiZkZWxldGUgcjJbemVdKTtyZXR1cm4gcjJbemVdfSxCLmxvY2FsZXM9ZnVuY3Rpb24gbWwoKXtyZXR1cm4geChyMil9LEIud2Vla2RheXNTaG9ydD1mdW5jdGlvbiB6Yyh6ZSxWdCxobil7cmV0dXJu''@;'; put 'put ''IGhmKHplLFZ0LGhuLCJ3ZWVrZGF5c1Nob3J0Iil9LEIubm9ybWFsaXplVW5pdHM9Q3QsQi5yZWxhdGl2ZVRpbWVSb3VuZGluZz1mdW5jdGlvbiBvNih6ZSl7cmV0dXJuIHZvaWQgMD09PXplP1h1OiJmdW5jdGlvbiI9PXR5cGVvZiB6ZSYmKFh1PXplLCEwKX0sQi5yZWxhdGl2ZVRpbWVUaHJl''@;'; put 'put ''c2hvbGQ9ZnVuY3Rpb24gYTYoemUsVnQpe3JldHVybiB2b2lkIDAhPT1EdVt6ZV0mJih2b2lkIDA9PT1WdD9EdVt6ZV06KER1W3plXT1WdCwicyI9PT16ZSYmKER1LnNzPVZ0LTEpLCEwKSl9LEIuY2FsZW5kYXJGb3JtYXQ9ZnVuY3Rpb24gVXAoemUsVnQpe3ZhciBobj16ZS5kaWZmKFZ0LCJk''@;'; put 'put ''YXlzIiwhMCk7cmV0dXJuIGhuPC02PyJzYW1lRWxzZSI6aG48LTE/Imxhc3RXZWVrIjpobjwwPyJsYXN0RGF5IjpobjwxPyJzYW1lRGF5IjpobjwyPyJuZXh0RGF5Ijpobjw3PyJuZXh0V2VlayI6InNhbWVFbHNlIn0sQi5wcm90b3R5cGU9YTAsQi5IVE1MNV9GTVQ9e0RBVEVUSU1FX0xPQ0FM''@;'; put 'put ''OiJZWVlZLU1NLUREVEhIOm1tIixEQVRFVElNRV9MT0NBTF9TRUNPTkRTOiJZWVlZLU1NLUREVEhIOm1tOnNzIixEQVRFVElNRV9MT0NBTF9NUzoiWVlZWS1NTS1ERFRISDptbTpzcy5TU1MiLERBVEU6IllZWVktTU0tREQiLFRJTUU6IkhIOm1tIixUSU1FX1NFQ09ORFM6IkhIOm1tOnNzIixU''@;'; put 'put ''SU1FX01TOiJISDptbTpzcy5TU1MiLFdFRUs6IkdHR0ctW1ddV1ciLE1PTlRIOiJZWVlZLU1NIn0sQn0oKX0sNTI5OTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg3OTc3KTtKZS5jZXJ0aWZpY2F0ZT1MKDEyMzkwKTt2YXIgQj1tZS5kZWZpbmUoIlJTQVByaXZhdGVLZXki''@;'; put 'put ''LGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInZlcnNpb24iKS5pbnQoKSx0aGlzLmtleSgibW9kdWx1cyIpLmludCgpLHRoaXMua2V5KCJwdWJsaWNFeHBvbmVudCIpLmludCgpLHRoaXMua2V5KCJwcml2YXRlRXhwb25lbnQiKS5pbnQoKSx0aGlzLmtleSgicHJpbWUxIiku''@;'; put 'put ''aW50KCksdGhpcy5rZXkoInByaW1lMiIpLmludCgpLHRoaXMua2V5KCJleHBvbmVudDEiKS5pbnQoKSx0aGlzLmtleSgiZXhwb25lbnQyIikuaW50KCksdGhpcy5rZXkoImNvZWZmaWNpZW50IikuaW50KCkpfSk7SmUuUlNBUHJpdmF0ZUtleT1CO3ZhciBFPW1lLmRlZmluZSgiUlNBUHVibGlj''@;'; put 'put ''S2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJtb2R1bHVzIikuaW50KCksdGhpcy5rZXkoInB1YmxpY0V4cG9uZW50IikuaW50KCkpfSk7SmUuUlNBUHVibGljS2V5PUU7dmFyIEVlPW1lLmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9uKCl7dGhp''@;'; put 'put ''cy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShVKSx0aGlzLmtleSgic3ViamVjdFB1YmxpY0tleSIpLmJpdHN0cigpKX0pO0plLlB1YmxpY0tleT1FZTt2YXIgVT1tZS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhp''@;'; put 'put ''cy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoIm5vbmUiKS5udWxsXygpLm9wdGlvbmFsKCksdGhpcy5rZXkoImN1cnZlIikub2JqaWQoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInAiKS5pbnQoKSx0aGlzLmtleSgicSIpLmlu''@;'; put 'put ''dCgpLHRoaXMua2V5KCJnIikuaW50KCkpLm9wdGlvbmFsKCkpfSksUT1tZS5kZWZpbmUoIlByaXZhdGVLZXlJbmZvIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShVKSx0aGlzLmtleSgic3ViamVj''@;'; put 'put ''dFByaXZhdGVLZXkiKS5vY3RzdHIoKSl9KTtKZS5Qcml2YXRlS2V5PVE7dmFyIGo9bWUuZGVmaW5lKCJFbmNyeXB0ZWRQcml2YXRlS2V5SW5mbyIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgiYWxnb3JpdGhtIikuc2VxKCkub2JqKHRoaXMua2V5KCJpZCIpLm9iamlkKCks''@;'; put 'put ''dGhpcy5rZXkoImRlY3J5cHQiKS5zZXEoKS5vYmoodGhpcy5rZXkoImtkZSIpLnNlcSgpLm9iaih0aGlzLmtleSgiaWQiKS5vYmppZCgpLHRoaXMua2V5KCJrZGVwYXJhbXMiKS5zZXEoKS5vYmoodGhpcy5rZXkoInNhbHQiKS5vY3RzdHIoKSx0aGlzLmtleSgiaXRlcnMiKS5pbnQoKSkpLHRo''@;'; put 'put ''aXMua2V5KCJjaXBoZXIiKS5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ28iKS5vYmppZCgpLHRoaXMua2V5KCJpdiIpLm9jdHN0cigpKSkpLHRoaXMua2V5KCJzdWJqZWN0UHJpdmF0ZUtleSIpLm9jdHN0cigpKX0pO0plLkVuY3J5cHRlZFByaXZhdGVLZXk9ajt2YXIgcmU9bWUuZGVmaW5lKCJE''@;'; put 'put ''U0FQcml2YXRlS2V5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ2ZXJzaW9uIikuaW50KCksdGhpcy5rZXkoInAiKS5pbnQoKSx0aGlzLmtleSgicSIpLmludCgpLHRoaXMua2V5KCJnIikuaW50KCksdGhpcy5rZXkoInB1Yl9rZXkiKS5pbnQoKSx0aGlzLmtleSgicHJp''@;'; put 'put ''dl9rZXkiKS5pbnQoKSl9KTtKZS5EU0FQcml2YXRlS2V5PXJlLEplLkRTQXBhcmFtPW1lLmRlZmluZSgiRFNBcGFyYW0iLGZ1bmN0aW9uKCl7dGhpcy5pbnQoKX0pO3ZhciBhZT1tZS5kZWZpbmUoIkVDUHJpdmF0ZUtleSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVy''@;'; put 'put ''c2lvbiIpLmludCgpLHRoaXMua2V5KCJwcml2YXRlS2V5Iikub2N0c3RyKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLmV4cGxpY2l0KDApLnVzZShZKSx0aGlzLmtleSgicHVibGljS2V5Iikub3B0aW9uYWwoKS5leHBsaWNpdCgxKS5iaXRzdHIoKSl9KTtKZS5FQ1ByaXZh''@;'; put 'put ''dGVLZXk9YWU7dmFyIFk9bWUuZGVmaW5lKCJFQ1BhcmFtZXRlcnMiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe25hbWVkQ3VydmU6dGhpcy5vYmppZCgpfSl9KTtKZS5zaWduYXR1cmU9bWUuZGVmaW5lKCJzaWduYXR1cmUiLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoInIi''@;'; put 'put ''KS5pbnQoKSx0aGlzLmtleSgicyIpLmludCgpKX0pfSwxMjM5MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODc5NzcpLEI9bWUuZGVmaW5lKCJUaW1lIixmdW5jdGlvbigpe3RoaXMuY2hvaWNlKHt1dGNUaW1lOnRoaXMudXRjdGltZSgpLGdlbmVyYWxUaW1lOnRoaXMuZ2Vu''@;'; put 'put ''dGltZSgpfSl9KSxFPW1lLmRlZmluZSgiQXR0cmlidXRlVHlwZVZhbHVlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0eXBlIikub2JqaWQoKSx0aGlzLmtleSgidmFsdWUiKS5hbnkoKSl9KSxFZT1tZS5kZWZpbmUoIkFsZ29yaXRobUlkZW50aWZpZXIiLGZ1bmN0aW9u''@;'; put 'put ''KCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLm9iamlkKCksdGhpcy5rZXkoInBhcmFtZXRlcnMiKS5vcHRpb25hbCgpLHRoaXMua2V5KCJjdXJ2ZSIpLm9iamlkKCkub3B0aW9uYWwoKSl9KSxVPW1lLmRlZmluZSgiU3ViamVjdFB1YmxpY0tleUluZm8iLGZ1bmN0aW9u''@;'; put 'put ''KCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImFsZ29yaXRobSIpLnVzZShFZSksdGhpcy5rZXkoInN1YmplY3RQdWJsaWNLZXkiKS5iaXRzdHIoKSl9KSxRPW1lLmRlZmluZSgiUmVsYXRpdmVEaXN0aW5ndWlzaGVkTmFtZSIsZnVuY3Rpb24oKXt0aGlzLnNldG9mKEUpfSksaj1tZS5kZWZp''@;'; put 'put ''bmUoIlJETlNlcXVlbmNlIixmdW5jdGlvbigpe3RoaXMuc2Vxb2YoUSl9KSxyZT1tZS5kZWZpbmUoIk5hbWUiLGZ1bmN0aW9uKCl7dGhpcy5jaG9pY2Uoe3JkblNlcXVlbmNlOnRoaXMudXNlKGopfSl9KSxhZT1tZS5kZWZpbmUoIlZhbGlkaXR5IixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2Jq''@;'; put 'put ''KHRoaXMua2V5KCJub3RCZWZvcmUiKS51c2UoQiksdGhpcy5rZXkoIm5vdEFmdGVyIikudXNlKEIpKX0pLFk9bWUuZGVmaW5lKCJFeHRlbnNpb24iLGZ1bmN0aW9uKCl7dGhpcy5zZXEoKS5vYmoodGhpcy5rZXkoImV4dG5JRCIpLm9iamlkKCksdGhpcy5rZXkoImNyaXRpY2FsIikuYm9vbCgp''@;'; put 'put ''LmRlZighMSksdGhpcy5rZXkoImV4dG5WYWx1ZSIpLm9jdHN0cigpKX0pLFc9bWUuZGVmaW5lKCJUQlNDZXJ0aWZpY2F0ZSIsZnVuY3Rpb24oKXt0aGlzLnNlcSgpLm9iaih0aGlzLmtleSgidmVyc2lvbiIpLmV4cGxpY2l0KDApLmludCgpLm9wdGlvbmFsKCksdGhpcy5rZXkoInNlcmlhbE51''@;'; put 'put ''bWJlciIpLmludCgpLHRoaXMua2V5KCJzaWduYXR1cmUiKS51c2UoRWUpLHRoaXMua2V5KCJpc3N1ZXIiKS51c2UocmUpLHRoaXMua2V5KCJ2YWxpZGl0eSIpLnVzZShhZSksdGhpcy5rZXkoInN1YmplY3QiKS51c2UocmUpLHRoaXMua2V5KCJzdWJqZWN0UHVibGljS2V5SW5mbyIpLnVzZShV''@;'; put 'put ''KSx0aGlzLmtleSgiaXNzdWVyVW5pcXVlSUQiKS5pbXBsaWNpdCgxKS5iaXRzdHIoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJzdWJqZWN0VW5pcXVlSUQiKS5pbXBsaWNpdCgyKS5iaXRzdHIoKS5vcHRpb25hbCgpLHRoaXMua2V5KCJleHRlbnNpb25zIikuZXhwbGljaXQoMykuc2Vxb2YoWSku''@;'; put 'put ''b3B0aW9uYWwoKSl9KSxOPW1lLmRlZmluZSgiWDUwOUNlcnRpZmljYXRlIixmdW5jdGlvbigpe3RoaXMuc2VxKCkub2JqKHRoaXMua2V5KCJ0YnNDZXJ0aWZpY2F0ZSIpLnVzZShXKSx0aGlzLmtleSgic2lnbmF0dXJlQWxnb3JpdGhtIikudXNlKEVlKSx0aGlzLmtleSgic2lnbmF0dXJlVmFs''@;'; put 'put ''dWUiKS5iaXRzdHIoKSl9KTtYZS5leHBvcnRzPU59LDY1MjY5OihYZSxKZSxMKT0+e3ZhciBtZT0vUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRFtcblxyXStERUstSW5mbzogQUVTLSgoPzoxMjgpfCg/OjE5Mil8KD86MjU2KSktQ0JDLChbMC05QS1IXSspW1xuXHJdKyhbMC05QS16XG5ccisvPV0r''@;'; put 'put ''KVtcblxyXSsvbSxCPS9eLS0tLS1CRUdJTiAoKD86Lio/IEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0vbSxFPS9eLS0tLS1CRUdJTiAoKD86Lio/IEtFWSl8Q0VSVElGSUNBVEUpLS0tLS0oWzAtOUEtelxuXHIrLz1dKyktLS0tLUVORCBcMS0tLS0tJC9tLEVlPUwoNDAzNDcpLFU9TCg4NDMzMCks''@;'; put 'put ''UT1MKDczNTAyKS5CdWZmZXI7WGUuZXhwb3J0cz1mdW5jdGlvbihqLHJlKXt2YXIgVyxhZT1qLnRvU3RyaW5nKCksWT1hZS5tYXRjaChtZSk7aWYoWSl7dmFyIHRlPSJhZXMiK1lbMV0sSz1RLmZyb20oWVsyXSwiaGV4IiksSj1RLmZyb20oWVszXS5yZXBsYWNlKC9bXHJcbl0vZywiIiksImJh''@;'; put 'put ''c2U2NCIpLHNlPUVlKHJlLEsuc2xpY2UoMCw4KSxwYXJzZUludChZWzFdLDEwKSkua2V5LG9lPVtdLGNlPVUuY3JlYXRlRGVjaXBoZXJpdih0ZSxzZSxLKTtvZS5wdXNoKGNlLnVwZGF0ZShKKSksb2UucHVzaChjZS5maW5hbCgpKSxXPVEuY29uY2F0KG9lKX1lbHNle3ZhciBOPWFlLm1hdGNo''@;'; put 'put ''KEUpO1c9US5mcm9tKE5bMl0ucmVwbGFjZSgvW1xyXG5dL2csIiIpLCJiYXNlNjQiKX1yZXR1cm57dGFnOmFlLm1hdGNoKEIpWzFdLGRhdGE6V319fSwyMjc3MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1Mjk5OSksQj1MKDIyNTYyKSxFPUwoNjUyNjkpLEVlPUwoODQzMzApLFU9TCg5OTM1Nyks''@;'; put 'put ''UT1MKDczNTAyKS5CdWZmZXI7ZnVuY3Rpb24gaihhZSl7dmFyIFk7Im9iamVjdCI9PXR5cGVvZiBhZSYmIVEuaXNCdWZmZXIoYWUpJiYoWT1hZS5wYXNzcGhyYXNlLGFlPWFlLmtleSksInN0cmluZyI9PXR5cGVvZiBhZSYmKGFlPVEuZnJvbShhZSkpO3ZhciBLLEosVz1FKGFlLFkpLE49Vy50''@;'; put 'put ''YWcsdGU9Vy5kYXRhO3N3aXRjaChOKXtjYXNlIkNFUlRJRklDQVRFIjpKPW1lLmNlcnRpZmljYXRlLmRlY29kZSh0ZSwiZGVyIikudGJzQ2VydGlmaWNhdGUuc3ViamVjdFB1YmxpY0tleUluZm87Y2FzZSJQVUJMSUMgS0VZIjpzd2l0Y2goSnx8KEo9bWUuUHVibGljS2V5LmRlY29kZSh0ZSwi''@;'; put 'put ''ZGVyIikpLEs9Si5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIxLjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJuIG1lLlJTQVB1YmxpY0tleS5kZWNvZGUoSi5zdWJqZWN0UHVibGljS2V5LmRhdGEsImRlciIpO2Nhc2UiMS4yLjg0MC4xMDA0NS4yLjEiOnJldHVybiBKLnN1''@;'; put 'put ''YmplY3RQcml2YXRlS2V5PUouc3ViamVjdFB1YmxpY0tleSx7dHlwZToiZWMiLGRhdGE6Sn07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIEouYWxnb3JpdGhtLnBhcmFtcy5wdWJfa2V5PW1lLkRTQXBhcmFtLmRlY29kZShKLnN1YmplY3RQdWJsaWNLZXkuZGF0YSwiZGVyIikse3R5''@;'; put 'put ''cGU6ImRzYSIsZGF0YTpKLmFsZ29yaXRobS5wYXJhbXN9O2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGtleSBpZCAiK0spfWNhc2UiRU5DUllQVEVEIFBSSVZBVEUgS0VZIjp0ZT1mdW5jdGlvbiByZShhZSxZKXt2YXIgVz1hZS5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFy''@;'; put 'put ''YW1zLnNhbHQsTj1wYXJzZUludChhZS5hbGdvcml0aG0uZGVjcnlwdC5rZGUua2RlcGFyYW1zLml0ZXJzLnRvU3RyaW5nKCksMTApLHRlPUJbYWUuYWxnb3JpdGhtLmRlY3J5cHQuY2lwaGVyLmFsZ28uam9pbigiLiIpXSxLPWFlLmFsZ29yaXRobS5kZWNyeXB0LmNpcGhlci5pdixKPWFlLnN1''@;'; put 'put ''YmplY3RQcml2YXRlS2V5LHNlPXBhcnNlSW50KHRlLnNwbGl0KCItIilbMV0sMTApLzgsb2U9VS5wYmtkZjJTeW5jKFksVyxOLHNlLCJzaGExIiksY2U9RWUuY3JlYXRlRGVjaXBoZXJpdih0ZSxvZSxLKSxkZT1bXTtyZXR1cm4gZGUucHVzaChjZS51cGRhdGUoSikpLGRlLnB1c2goY2UuZmlu''@;'; put 'put ''YWwoKSksUS5jb25jYXQoZGUpfSh0ZT1tZS5FbmNyeXB0ZWRQcml2YXRlS2V5LmRlY29kZSh0ZSwiZGVyIiksWSk7Y2FzZSJQUklWQVRFIEtFWSI6c3dpdGNoKEs9KEo9bWUuUHJpdmF0ZUtleS5kZWNvZGUodGUsImRlciIpKS5hbGdvcml0aG0uYWxnb3JpdGhtLmpvaW4oIi4iKSl7Y2FzZSIx''@;'; put 'put ''LjIuODQwLjExMzU0OS4xLjEuMSI6cmV0dXJuIG1lLlJTQVByaXZhdGVLZXkuZGVjb2RlKEouc3ViamVjdFByaXZhdGVLZXksImRlciIpO2Nhc2UiMS4yLjg0MC4xMDA0NS4yLjEiOnJldHVybntjdXJ2ZTpKLmFsZ29yaXRobS5jdXJ2ZSxwcml2YXRlS2V5Om1lLkVDUHJpdmF0ZUtleS5kZWNv''@;'; put 'put ''ZGUoSi5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikucHJpdmF0ZUtleX07Y2FzZSIxLjIuODQwLjEwMDQwLjQuMSI6cmV0dXJuIEouYWxnb3JpdGhtLnBhcmFtcy5wcml2X2tleT1tZS5EU0FwYXJhbS5kZWNvZGUoSi5zdWJqZWN0UHJpdmF0ZUtleSwiZGVyIikse3R5cGU6ImRzYSIscGFyYW1z''@;'; put 'put ''OkouYWxnb3JpdGhtLnBhcmFtc307ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IGlkICIrSyl9Y2FzZSJSU0EgUFVCTElDIEtFWSI6cmV0dXJuIG1lLlJTQVB1YmxpY0tleS5kZWNvZGUodGUsImRlciIpO2Nhc2UiUlNBIFBSSVZBVEUgS0VZIjpyZXR1cm4gbWUuUlNBUHJp''@;'; put 'put ''dmF0ZUtleS5kZWNvZGUodGUsImRlciIpO2Nhc2UiRFNBIFBSSVZBVEUgS0VZIjpyZXR1cm57dHlwZToiZHNhIixwYXJhbXM6bWUuRFNBUHJpdmF0ZUtleS5kZWNvZGUodGUsImRlciIpfTtjYXNlIkVDIFBSSVZBVEUgS0VZIjpyZXR1cm57Y3VydmU6KHRlPW1lLkVDUHJpdmF0ZUtleS5kZWNv''@;'; put 'put ''ZGUodGUsImRlciIpKS5wYXJhbWV0ZXJzLnZhbHVlLHByaXZhdGVLZXk6dGUucHJpdmF0ZUtleX07ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInVua25vd24ga2V5IHR5cGUgIitOKX19WGUuZXhwb3J0cz1qLGouc2lnbmF0dXJlPW1lLnNpZ25hdHVyZX0sOTkzNTc6KFhlLEplLEwpPT57SmUu''@;'; put 'put ''cGJrZGYyPUwoOTA0MTUpLEplLnBia2RmMlN5bmM9TCg3NzQ3Mil9LDkwNDE1OihYZSxKZSxMKT0+e3ZhciBRLFcsbWU9TCg3MzUwMikuQnVmZmVyLEI9TCg2MjY5NyksRT1MKDc4ODY3KSxFZT1MKDc3NDcyKSxVPUwoOTQ1NjYpLGo9Z2xvYmFsLmNyeXB0byYmZ2xvYmFsLmNyeXB0by5zdWJ0''@;'; put 'put ''bGUscmU9e3NoYToiU0hBLTEiLCJzaGEtMSI6IlNIQS0xIixzaGExOiJTSEEtMSIsc2hhMjU2OiJTSEEtMjU2Iiwic2hhLTI1NiI6IlNIQS0yNTYiLHNoYTM4NDoiU0hBLTM4NCIsInNoYS0zODQiOiJTSEEtMzg0Iiwic2hhLTUxMiI6IlNIQS01MTIiLHNoYTUxMjoiU0hBLTUxMiJ9LGFlPVtd''@;'; put 'put ''O2Z1bmN0aW9uIE4oKXtyZXR1cm4gV3x8KFc9Z2xvYmFsLnByb2Nlc3MmJmdsb2JhbC5wcm9jZXNzLm5leHRUaWNrP2dsb2JhbC5wcm9jZXNzLm5leHRUaWNrOmdsb2JhbC5xdWV1ZU1pY3JvdGFzaz9nbG9iYWwucXVldWVNaWNyb3Rhc2s6Z2xvYmFsLnNldEltbWVkaWF0ZT9nbG9iYWwuc2V0''@;'; put 'put ''SW1tZWRpYXRlOmdsb2JhbC5zZXRUaW1lb3V0KX1mdW5jdGlvbiB0ZShKLHNlLG9lLGNlLGRlKXtyZXR1cm4gai5pbXBvcnRLZXkoInJhdyIsSix7bmFtZToiUEJLREYyIn0sITEsWyJkZXJpdmVCaXRzIl0pLnRoZW4oZnVuY3Rpb24odmUpe3JldHVybiBqLmRlcml2ZUJpdHMoe25hbWU6IlBC''@;'; put 'put ''S0RGMiIsc2FsdDpzZSxpdGVyYXRpb25zOm9lLGhhc2g6e25hbWU6ZGV9fSx2ZSxjZTw8Myl9KS50aGVuKGZ1bmN0aW9uKHZlKXtyZXR1cm4gbWUuZnJvbSh2ZSl9KX1YZS5leHBvcnRzPWZ1bmN0aW9uKEosc2Usb2UsY2UsZGUsdmUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZSYmKHZlPWRlLGRl''@;'; put 'put ''PXZvaWQgMCk7dmFyIEFlPXJlWyhkZT1kZXx8InNoYTEiKS50b0xvd2VyQ2FzZSgpXTtpZihBZSYmImZ1bmN0aW9uIj09dHlwZW9mIGdsb2JhbC5Qcm9taXNlKXtpZihCKG9lLGNlKSxKPVUoSixFLCJQYXNzd29yZCIpLHNlPVUoc2UsRSwiU2FsdCIpLCJmdW5jdGlvbiIhPXR5cGVvZiB2ZSl0''@;'; put 'put ''aHJvdyBuZXcgRXJyb3IoIk5vIGNhbGxiYWNrIHByb3ZpZGVkIHRvIHBia2RmMiIpOyFmdW5jdGlvbiBLKEosc2Upe0oudGhlbihmdW5jdGlvbihvZSl7TigpKGZ1bmN0aW9uKCl7c2UobnVsbCxvZSl9KX0sZnVuY3Rpb24ob2Upe04oKShmdW5jdGlvbigpe3NlKG9lKX0pfSl9KGZ1bmN0aW9u''@;'; put 'put ''IFkoSil7aWYoZ2xvYmFsLnByb2Nlc3MmJiFnbG9iYWwucHJvY2Vzcy5icm93c2VyfHwhanx8IWouaW1wb3J0S2V5fHwhai5kZXJpdmVCaXRzKXJldHVybiBQcm9taXNlLnJlc29sdmUoITEpO2lmKHZvaWQgMCE9PWFlW0pdKXJldHVybiBhZVtKXTt2YXIgc2U9dGUoUT1RfHxtZS5hbGxvYyg4''@;'; put 'put ''KSxRLDEwLDEyOCxKKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSk7cmV0dXJuIGFlW0pdPXNlLHNlfShBZSkudGhlbihmdW5jdGlvbihrZSl7cmV0dXJuIGtlP3RlKEosc2Usb2UsY2UsQWUpOkVlKEosc2Usb2UsY2UsZGUpfSksdmUpfWVs''@;'; put 'put ''c2UgTigpKGZ1bmN0aW9uKCl7dmFyIGtlO3RyeXtrZT1FZShKLHNlLG9lLGNlLGRlKX1jYXRjaChTZSl7cmV0dXJuIHZlKFNlKX12ZShudWxsLGtlKX0pfX0sNzg4Njc6WGU9Pnt2YXIgSmU7SmU9Z2xvYmFsLnByb2Nlc3MmJmdsb2JhbC5wcm9jZXNzLmJyb3dzZXI/InV0Zi04IjpnbG9iYWwu''@;'; put 'put ''cHJvY2VzcyYmZ2xvYmFsLnByb2Nlc3MudmVyc2lvbj9wYXJzZUludChwcm9jZXNzLnZlcnNpb24uc3BsaXQoIi4iKVswXS5zbGljZSgxKSwxMCk+PTY/InV0Zi04IjoiYmluYXJ5IjoidXRmLTgiLFhlLmV4cG9ydHM9SmV9LDYyNjk3OlhlPT57dmFyIEplPU1hdGgucG93KDIsMzApLTE7WGUu''@;'; put 'put ''ZXhwb3J0cz1mdW5jdGlvbihMLG1lKXtpZigibnVtYmVyIiE9dHlwZW9mIEwpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0aW9ucyBub3QgYSBudW1iZXIiKTtpZihMPDApdGhyb3cgbmV3IFR5cGVFcnJvcigiQmFkIGl0ZXJhdGlvbnMiKTtpZigibnVtYmVyIiE9dHlwZW9mIG1lKXRocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIktleSBsZW5ndGggbm90IGEgbnVtYmVyIik7aWYobWU8MHx8bWU+SmV8fG1lIT1tZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJCYWQga2V5IGxlbmd0aCIpfX0sNzc0NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTU2NDApLEI9TCg3NTYzNCksRT1MKDk1MjQ0KSxFZT1M''@;'; put 'put ''KDczNTAyKS5CdWZmZXIsVT1MKDYyNjk3KSxRPUwoNzg4NjcpLGo9TCg5NDU2NikscmU9RWUuYWxsb2MoMTI4KSxhZT17bWQ1OjE2LHNoYTE6MjAsc2hhMjI0OjI4LHNoYTI1NjozMixzaGEzODQ6NDgsc2hhNTEyOjY0LHJtZDE2MDoyMCxyaXBlbWQxNjA6MjB9O2Z1bmN0aW9uIFkodGUsSyxK''@;'; put 'put ''KXt2YXIgc2U9ZnVuY3Rpb24gVyh0ZSl7cmV0dXJuInJtZDE2MCI9PT10ZXx8InJpcGVtZDE2MCI9PT10ZT9mdW5jdGlvbiBKKHNlKXtyZXR1cm4obmV3IEIpLnVwZGF0ZShzZSkuZGlnZXN0KCl9OiJtZDUiPT09dGU/bWU6ZnVuY3Rpb24gSyhzZSl7cmV0dXJuIEUodGUpLnVwZGF0ZShzZSku''@;'; put 'put ''ZGlnZXN0KCl9fSh0ZSksb2U9InNoYTUxMiI9PT10ZXx8InNoYTM4NCI9PT10ZT8xMjg6NjQ7Sy5sZW5ndGg+b2U/Sz1zZShLKTpLLmxlbmd0aDxvZSYmKEs9RWUuY29uY2F0KFtLLHJlXSxvZSkpO2Zvcih2YXIgY2U9RWUuYWxsb2NVbnNhZmUob2UrYWVbdGVdKSxkZT1FZS5hbGxvY1Vuc2Fm''@;'; put 'put ''ZShvZSthZVt0ZV0pLHZlPTA7dmU8b2U7dmUrKyljZVt2ZV09NTReS1t2ZV0sZGVbdmVdPTkyXktbdmVdO3ZhciBBZT1FZS5hbGxvY1Vuc2FmZShvZStKKzQpO2NlLmNvcHkoQWUsMCwwLG9lKSx0aGlzLmlwYWQxPUFlLHRoaXMuaXBhZDI9Y2UsdGhpcy5vcGFkPWRlLHRoaXMuYWxnPXRlLHRo''@;'; put 'put ''aXMuYmxvY2tzaXplPW9lLHRoaXMuaGFzaD1zZSx0aGlzLnNpemU9YWVbdGVdfVkucHJvdG90eXBlLnJ1bj1mdW5jdGlvbih0ZSxLKXtyZXR1cm4gdGUuY29weShLLHRoaXMuYmxvY2tzaXplKSx0aGlzLmhhc2goSykuY29weSh0aGlzLm9wYWQsdGhpcy5ibG9ja3NpemUpLHRoaXMuaGFzaCh0''@;'; put 'put ''aGlzLm9wYWQpfSxYZS5leHBvcnRzPWZ1bmN0aW9uIE4odGUsSyxKLHNlLG9lKXtVKEosc2UpO3ZhciBjZT1uZXcgWShvZT1vZXx8InNoYTEiLHRlPWoodGUsUSwiUGFzc3dvcmQiKSwoSz1qKEssUSwiU2FsdCIpKS5sZW5ndGgpLGRlPUVlLmFsbG9jVW5zYWZlKHNlKSx2ZT1FZS5hbGxvY1Vu''@;'; put 'put ''c2FmZShLLmxlbmd0aCs0KTtLLmNvcHkodmUsMCwwLEsubGVuZ3RoKTtmb3IodmFyIEFlPTAsa2U9YWVbb2VdLFNlPU1hdGguY2VpbChzZS9rZSksSWU9MTtJZTw9U2U7SWUrKyl7dmUud3JpdGVVSW50MzJCRShJZSxLLmxlbmd0aCk7Zm9yKHZhciBUZT1jZS5ydW4odmUsY2UuaXBhZDEpLE1l''@;'; put 'put ''PVRlLGhlPTE7aGU8SjtoZSsrKXtNZT1jZS5ydW4oTWUsY2UuaXBhZDIpO2Zvcih2YXIgTz0wO088a2U7TysrKVRlW09dXj1NZVtPXX1UZS5jb3B5KGRlLEFlKSxBZSs9a2V9cmV0dXJuIGRlfX0sOTQ1NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtYZS5leHBvcnRzPWZ1''@;'; put 'put ''bmN0aW9uKEIsRSxFZSl7aWYobWUuaXNCdWZmZXIoQikpcmV0dXJuIEI7aWYoInN0cmluZyI9PXR5cGVvZiBCKXJldHVybiBtZS5mcm9tKEIsRSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KEIpKXJldHVybiBtZS5mcm9tKEIuYnVmZmVyKTt0aHJvdyBuZXcgVHlwZUVycm9yKEVlKyIgbXVzdCBi''@;'; put 'put ''ZSBhIHN0cmluZywgYSBCdWZmZXIsIGEgdHlwZWQgYXJyYXkgb3IgYSBEYXRhVmlldyIpfX0sNDEwNzg6ZnVuY3Rpb24oWGUsSmUsTCl7IWZ1bmN0aW9uKG1lLEIpeyJ1c2Ugc3RyaWN0Ijt2YXIgRTt0cnl7RT1MKDE1NDM5KX1jYXRjaChFZSl7fVhlLmV4cG9ydHM9ZnVuY3Rpb24obWUpe3Zh''@;'; put 'put ''ciBCPSJmdW5jdGlvbiI9PXR5cGVvZiBtZSxFPSEhd2luZG93LmFkZEV2ZW50TGlzdGVuZXIsRWU9d2luZG93LmRvY3VtZW50LFU9d2luZG93LnNldFRpbWVvdXQsUT1mdW5jdGlvbihQLFYsVCxTKXtFP1AuYWRkRXZlbnRMaXN0ZW5lcihWLFQsISFTKTpQLmF0dGFjaEV2ZW50KCJvbiIrVixU''@;'; put 'put ''KX0saj1mdW5jdGlvbihQLFYsVCxTKXtFP1AucmVtb3ZlRXZlbnRMaXN0ZW5lcihWLFQsISFTKTpQLmRldGFjaEV2ZW50KCJvbiIrVixUKX0sYWU9ZnVuY3Rpb24oUCxWKXtyZXR1cm4tMSE9PSgiICIrUC5jbGFzc05hbWUrIiAiKS5pbmRleE9mKCIgIitWKyIgIil9LFk9ZnVuY3Rpb24oUCxW''@;'; put 'put ''KXthZShQLFYpfHwoUC5jbGFzc05hbWU9IiI9PT1QLmNsYXNzTmFtZT9WOlAuY2xhc3NOYW1lKyIgIitWKX0sVz1mdW5jdGlvbihQLFYpe1AuY2xhc3NOYW1lPWZ1bmN0aW9uKFApe3JldHVybiBQLnRyaW0/UC50cmltKCk6UC5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIil9KCgiICIrUC5jbGFz''@;'; put 'put ''c05hbWUrIiAiKS5yZXBsYWNlKCIgIitWKyIgIiwiICIpKX0sTj1mdW5jdGlvbihQKXtyZXR1cm4vQXJyYXkvLnRlc3QoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFApKX0sdGU9ZnVuY3Rpb24oUCl7cmV0dXJuL0RhdGUvLnRlc3QoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5j''@;'; put 'put ''YWxsKFApKSYmIWlzTmFOKFAuZ2V0VGltZSgpKX0sSz1mdW5jdGlvbihQKXt2YXIgVj1QLmdldERheSgpO3JldHVybiAwPT09Vnx8Nj09PVZ9LEo9ZnVuY3Rpb24oUCl7cmV0dXJuIFAlND09MCYmUCUxMDAhPTB8fFAlNDAwPT0wfSxzZT1mdW5jdGlvbihQLFYpe3JldHVyblszMSxKKFApPzI5''@;'; put 'put ''OjI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXVtWXX0sb2U9ZnVuY3Rpb24oUCl7dGUoUCkmJlAuc2V0SG91cnMoMCwwLDAsMCl9LGNlPWZ1bmN0aW9uKFAsVil7cmV0dXJuIFAuZ2V0VGltZSgpPT09Vi5nZXRUaW1lKCl9LGRlPWZ1bmN0aW9uKFAsVixUKXt2YXIgUyxGO2ZvcihT''@;'; put 'put ''IGluIFYpKEY9dm9pZCAwIT09UFtTXSkmJiJvYmplY3QiPT10eXBlb2YgVltTXSYmbnVsbCE9PVZbU10mJnZvaWQgMD09PVZbU10ubm9kZU5hbWU/dGUoVltTXSk/VCYmKFBbU109bmV3IERhdGUoVltTXS5nZXRUaW1lKCkpKTpOKFZbU10pP1QmJihQW1NdPVZbU10uc2xpY2UoMCkpOlBbU109''@;'; put 'put ''ZGUoe30sVltTXSxUKTooVHx8IUYpJiYoUFtTXT1WW1NdKTtyZXR1cm4gUH0sdmU9ZnVuY3Rpb24oUCxWLFQpe3ZhciBTO0VlLmNyZWF0ZUV2ZW50PygoUz1FZS5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpKS5pbml0RXZlbnQoViwhMCwhMSksUz1kZShTLFQpLFAuZGlzcGF0Y2hFdmVudChT''@;'; put 'put ''KSk6RWUuY3JlYXRlRXZlbnRPYmplY3QmJihTPUVlLmNyZWF0ZUV2ZW50T2JqZWN0KCksUz1kZShTLFQpLFAuZmlyZUV2ZW50KCJvbiIrVixTKSl9LEFlPWZ1bmN0aW9uKFApe3JldHVybiBQLm1vbnRoPDAmJihQLnllYXItPU1hdGguY2VpbChNYXRoLmFicyhQLm1vbnRoKS8xMiksUC5tb250''@;'; put 'put ''aCs9MTIpLFAubW9udGg+MTEmJihQLnllYXIrPU1hdGguZmxvb3IoTWF0aC5hYnMoUC5tb250aCkvMTIpLFAubW9udGgtPTEyKSxQfSxrZT17ZmllbGQ6bnVsbCxib3VuZDp2b2lkIDAsYXJpYUxhYmVsOiJVc2UgdGhlIGFycm93IGtleXMgdG8gcGljayBhIGRhdGUiLHBvc2l0aW9uOiJib3R0''@;'; put 'put ''b20gbGVmdCIscmVwb3NpdGlvbjohMCxmb3JtYXQ6IllZWVktTU0tREQiLHRvU3RyaW5nOm51bGwscGFyc2U6bnVsbCxkZWZhdWx0RGF0ZTpudWxsLHNldERlZmF1bHREYXRlOiExLGZpcnN0RGF5OjAsZmlyc3RXZWVrT2ZZZWFyTWluRGF5czo0LGZvcm1hdFN0cmljdDohMSxtaW5EYXRlOm51''@;'; put 'put ''bGwsbWF4RGF0ZTpudWxsLHllYXJSYW5nZToxMCxzaG93V2Vla051bWJlcjohMSxwaWNrV2hvbGVXZWVrOiExLG1pblllYXI6MCxtYXhZZWFyOjk5OTksbWluTW9udGg6dm9pZCAwLG1heE1vbnRoOnZvaWQgMCxzdGFydFJhbmdlOm51bGwsZW5kUmFuZ2U6bnVsbCxpc1JUTDohMSx5ZWFyU3Vm''@;'; put 'put ''Zml4OiIiLHNob3dNb250aEFmdGVyWWVhcjohMSxzaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzOiExLGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczohMSxudW1iZXJPZk1vbnRoczoxLG1haW5DYWxlbmRhcjoibGVmdCIsY29udGFpbmVyOnZvaWQgMCxi''@;'; put 'put ''bHVyRmllbGRPblNlbGVjdDohMCxpMThuOntwcmV2aW91c01vbnRoOiJQcmV2aW91cyBNb250aCIsbmV4dE1vbnRoOiJOZXh0IE1vbnRoIixtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIi''@;'; put 'put ''LCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHdlZWtkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSx3ZWVrZGF5c1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJp''@;'; put 'put ''IiwiU2F0Il19LHRoZW1lOm51bGwsZXZlbnRzOltdLG9uU2VsZWN0Om51bGwsb25PcGVuOm51bGwsb25DbG9zZTpudWxsLG9uRHJhdzpudWxsLGtleWJvYXJkSW5wdXQ6ITB9LFNlPWZ1bmN0aW9uKFAsVixUKXtmb3IoVis9UC5maXJzdERheTtWPj03OylWLT03O3JldHVybiBUP1AuaTE4bi53''@;'; put 'put ''ZWVrZGF5c1Nob3J0W1ZdOlAuaTE4bi53ZWVrZGF5c1tWXX0sSWU9ZnVuY3Rpb24oUCl7dmFyIFY9W10sVD0iZmFsc2UiO2lmKFAuaXNFbXB0eSl7aWYoIVAuc2hvd0RheXNJbk5leHRBbmRQcmV2aW91c01vbnRocylyZXR1cm4nPHRkIGNsYXNzPSJpcy1lbXB0eSI+PC90ZD4nO1YucHVzaCgi''@;'; put 'put ''aXMtb3V0c2lkZS1jdXJyZW50LW1vbnRoIiksUC5lbmFibGVTZWxlY3Rpb25EYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHN8fFYucHVzaCgiaXMtc2VsZWN0aW9uLWRpc2FibGVkIil9cmV0dXJuIFAuaXNEaXNhYmxlZCYmVi5wdXNoKCJpcy1kaXNhYmxlZCIpLFAuaXNUb2RheSYmVi5wdXNo''@;'; put 'put ''KCJpcy10b2RheSIpLFAuaXNTZWxlY3RlZCYmKFYucHVzaCgiaXMtc2VsZWN0ZWQiKSxUPSJ0cnVlIiksUC5oYXNFdmVudCYmVi5wdXNoKCJoYXMtZXZlbnQiKSxQLmlzSW5SYW5nZSYmVi5wdXNoKCJpcy1pbnJhbmdlIiksUC5pc1N0YXJ0UmFuZ2UmJlYucHVzaCgiaXMtc3RhcnRyYW5nZSIp''@;'; put 'put ''LFAuaXNFbmRSYW5nZSYmVi5wdXNoKCJpcy1lbmRyYW5nZSIpLCc8dGQgZGF0YS1kYXk9IicrUC5kYXkrJyIgY2xhc3M9IicrVi5qb2luKCIgIikrJyIgYXJpYS1zZWxlY3RlZD0iJytUKyciPjxidXR0b24gY2xhc3M9InBpa2EtYnV0dG9uIHBpa2EtZGF5IiB0eXBlPSJidXR0b24iIGRhdGEt''@;'; put 'put ''cGlrYS15ZWFyPSInK1AueWVhcisnIiBkYXRhLXBpa2EtbW9udGg9IicrUC5tb250aCsnIiBkYXRhLXBpa2EtZGF5PSInK1AuZGF5KyciPicrUC5kYXkrIjwvYnV0dG9uPjwvdGQ+In0sTWU9ZnVuY3Rpb24oUCxWLFQsUyl7dmFyIEY9bmV3IERhdGUoVCxWLFApO3JldHVybic8dGQgY2xhc3M9''@;'; put 'put ''InBpa2Etd2VlayI+JysoQj9tZShGKS5pc29XZWVrKCk6ZnVuY3Rpb24oUCxWKXtQLnNldEhvdXJzKDAsMCwwLDApO3ZhciBUPVAuZ2V0RGF0ZSgpLFM9UC5nZXREYXkoKSxGPVYseWU9Ri0xLERlPWZ1bmN0aW9uKHd0KXtyZXR1cm4od3QrNy0xKSU3fTtQLnNldERhdGUoVCt5ZS1EZShTKSk7''@;'; put 'put ''dmFyIFBlPW5ldyBEYXRlKFAuZ2V0RnVsbFllYXIoKSwwLEYpLCRlPShQLmdldFRpbWUoKS1QZS5nZXRUaW1lKCkpLzg2NGU1O3JldHVybiAxK01hdGgucm91bmQoKCRlLXllK0RlKFBlLmdldERheSgpKSkvNyl9KEYsUykpKyI8L3RkPiJ9LGhlPWZ1bmN0aW9uKFAsVixULFMpe3JldHVybic8''@;'; put 'put ''dHIgY2xhc3M9InBpa2Etcm93JysoVD8iIHBpY2std2hvbGUtd2VlayI6IiIpKyhTPyIgaXMtc2VsZWN0ZWQiOiIiKSsnIj4nKyhWP1AucmV2ZXJzZSgpOlApLmpvaW4oIiIpKyI8L3RyPiJ9LGVlPWZ1bmN0aW9uKFAsVixULFMsRix5ZSl7dmFyIENlLERlLFBlLG10LHZ0LFFlPVAuX28sJGU9''@;'; put 'put ''VD09PVFlLm1pblllYXIsZ3Q9VD09PVFlLm1heFllYXIsd3Q9JzxkaXYgaWQ9IicreWUrJyIgY2xhc3M9InBpa2EtdGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIj4nLEF0PSEwLGh0PSEwO2ZvcihQZT1bXSxDZT0wO0NlPDEyO0NlKyspUGUucHVzaCgnPG9wdGlv''@;'; put 'put ''biB2YWx1ZT0iJysoVD09PUY/Q2UtVjoxMitDZS1WKSsnIicrKENlPT09Uz8nIHNlbGVjdGVkPSJzZWxlY3RlZCInOiIiKSsoJGUmJkNlPFFlLm1pbk1vbnRofHxndCYmQ2U+UWUubWF4TW9udGg/JyBkaXNhYmxlZD0iZGlzYWJsZWQiJzoiIikrIj4iK1FlLmkxOG4ubW9udGhzW0NlXSsiPC9v''@;'; put 'put ''cHRpb24+Iik7Zm9yKG10PSc8ZGl2IGNsYXNzPSJwaWthLWxhYmVsIj4nK1FlLmkxOG4ubW9udGhzW1NdKyc8c2VsZWN0IGNsYXNzPSJwaWthLXNlbGVjdCBwaWthLXNlbGVjdC1tb250aCIgdGFiaW5kZXg9Ii0xIj4nK1BlLmpvaW4oIiIpKyI8L3NlbGVjdD48L2Rpdj4iLE4oUWUueWVhclJh''@;'; put 'put ''bmdlKT8oQ2U9UWUueWVhclJhbmdlWzBdLERlPVFlLnllYXJSYW5nZVsxXSsxKTooQ2U9VC1RZS55ZWFyUmFuZ2UsRGU9MStUK1FlLnllYXJSYW5nZSksUGU9W107Q2U8RGUmJkNlPD1RZS5tYXhZZWFyO0NlKyspQ2U+PVFlLm1pblllYXImJlBlLnB1c2goJzxvcHRpb24gdmFsdWU9IicrQ2Ur''@;'; put 'put ''JyInKyhDZT09PVQ/JyBzZWxlY3RlZD0ic2VsZWN0ZWQiJzoiIikrIj4iK0NlKyI8L29wdGlvbj4iKTtyZXR1cm4gdnQ9JzxkaXYgY2xhc3M9InBpa2EtbGFiZWwiPicrVCtRZS55ZWFyU3VmZml4Kyc8c2VsZWN0IGNsYXNzPSJwaWthLXNlbGVjdCBwaWthLXNlbGVjdC15ZWFyIiB0YWJpbmRl''@;'; put 'put ''eD0iLTEiPicrUGUuam9pbigiIikrIjwvc2VsZWN0PjwvZGl2PiIsd3QrPVFlLnNob3dNb250aEFmdGVyWWVhcj92dCttdDptdCt2dCwkZSYmKDA9PT1TfHxRZS5taW5Nb250aD49UykmJihBdD0hMSksZ3QmJigxMT09PVN8fFFlLm1heE1vbnRoPD1TKSYmKGh0PSExKSwwPT09ViYmKHd0Kz0n''@;'; put 'put ''PGJ1dHRvbiBjbGFzcz0icGlrYS1wcmV2JysoQXQ/IiI6IiBpcy1kaXNhYmxlZCIpKyciIHR5cGU9ImJ1dHRvbiI+JytRZS5pMThuLnByZXZpb3VzTW9udGgrIjwvYnV0dG9uPiIpLFY9PT1QLl9vLm51bWJlck9mTW9udGhzLTEmJih3dCs9JzxidXR0b24gY2xhc3M9InBpa2EtbmV4dCcrKGh0''@;'; put 'put ''PyIiOiIgaXMtZGlzYWJsZWQiKSsnIiB0eXBlPSJidXR0b24iPicrUWUuaTE4bi5uZXh0TW9udGgrIjwvYnV0dG9uPiIpLHd0KyI8L2Rpdj4ifSxuZT1mdW5jdGlvbihQLFYsVCl7cmV0dXJuJzx0YWJsZSBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIGNsYXNzPSJwaWthLXRhYmxl''@;'; put 'put ''IiByb2xlPSJncmlkIiBhcmlhLWxhYmVsbGVkYnk9IicrVCsnIj4nK2Z1bmN0aW9uKFApe3ZhciBWLFQ9W107Zm9yKFAuc2hvd1dlZWtOdW1iZXImJlQucHVzaCgiPHRoPjwvdGg+IiksVj0wO1Y8NztWKyspVC5wdXNoKCc8dGggc2NvcGU9ImNvbCI+PGFiYnIgdGl0bGU9IicrU2UoUCxWKSsn''@;'; put 'put ''Ij4nK1NlKFAsViwhMCkrIjwvYWJicj48L3RoPiIpO3JldHVybiI8dGhlYWQ+PHRyPiIrKFAuaXNSVEw/VC5yZXZlcnNlKCk6VCkuam9pbigiIikrIjwvdHI+PC90aGVhZD4ifShQKStmdW5jdGlvbihQKXtyZXR1cm4iPHRib2R5PiIrUC5qb2luKCIiKSsiPC90Ym9keT4ifShWKSsiPC90YWJs''@;'; put 'put ''ZT4ifSx4PWZ1bmN0aW9uKFApe3ZhciBWPXRoaXMsVD1WLmNvbmZpZyhQKTtWLl9vbk1vdXNlRG93bj1mdW5jdGlvbihGKXtpZihWLl92KXt2YXIgeWU9KEY9Rnx8d2luZG93LmV2ZW50KS50YXJnZXR8fEYuc3JjRWxlbWVudDtpZih5ZSlpZihhZSh5ZSwiaXMtZGlzYWJsZWQiKXx8KCFhZSh5''@;'; put 'put ''ZSwicGlrYS1idXR0b24iKXx8YWUoeWUsImlzLWVtcHR5Iil8fGFlKHllLnBhcmVudE5vZGUsImlzLWRpc2FibGVkIik/YWUoeWUsInBpa2EtcHJldiIpP1YucHJldk1vbnRoKCk6YWUoeWUsInBpa2EtbmV4dCIpJiZWLm5leHRNb250aCgpOihWLnNldERhdGUobmV3IERhdGUoeWUuZ2V0QXR0''@;'; put 'put ''cmlidXRlKCJkYXRhLXBpa2EteWVhciIpLHllLmdldEF0dHJpYnV0ZSgiZGF0YS1waWthLW1vbnRoIikseWUuZ2V0QXR0cmlidXRlKCJkYXRhLXBpa2EtZGF5IikpKSxULmJvdW5kJiZVKGZ1bmN0aW9uKCl7Vi5oaWRlKCksVC5ibHVyRmllbGRPblNlbGVjdCYmVC5maWVsZCYmVC5maWVsZC5i''@;'; put 'put ''bHVyKCl9LDEwMCkpKSxhZSh5ZSwicGlrYS1zZWxlY3QiKSlWLl9jPSEwO2Vsc2V7aWYoIUYucHJldmVudERlZmF1bHQpcmV0dXJuIEYucmV0dXJuVmFsdWU9ITEsITE7Ri5wcmV2ZW50RGVmYXVsdCgpfX19LFYuX29uQ2hhbmdlPWZ1bmN0aW9uKEYpe3ZhciB5ZT0oRj1GfHx3aW5kb3cuZXZl''@;'; put 'put ''bnQpLnRhcmdldHx8Ri5zcmNFbGVtZW50OyF5ZXx8KGFlKHllLCJwaWthLXNlbGVjdC1tb250aCIpP1YuZ290b01vbnRoKHllLnZhbHVlKTphZSh5ZSwicGlrYS1zZWxlY3QteWVhciIpJiZWLmdvdG9ZZWFyKHllLnZhbHVlKSl9LFYuX29uS2V5Q2hhbmdlPWZ1bmN0aW9uKEYpe2lmKEY9Rnx8''@;'; put 'put ''d2luZG93LmV2ZW50LFYuaXNWaXNpYmxlKCkpc3dpdGNoKEYua2V5Q29kZSl7Y2FzZSAxMzpjYXNlIDI3OlQuZmllbGQmJlQuZmllbGQuYmx1cigpO2JyZWFrO2Nhc2UgMzc6Vi5hZGp1c3REYXRlKCJzdWJ0cmFjdCIsMSk7YnJlYWs7Y2FzZSAzODpWLmFkanVzdERhdGUoInN1YnRyYWN0Iiw3''@;'; put 'put ''KTticmVhaztjYXNlIDM5OlYuYWRqdXN0RGF0ZSgiYWRkIiwxKTticmVhaztjYXNlIDQwOlYuYWRqdXN0RGF0ZSgiYWRkIiw3KTticmVhaztjYXNlIDg6Y2FzZSA0NjpWLnNldERhdGUobnVsbCl9fSxWLl9wYXJzZUZpZWxkVmFsdWU9ZnVuY3Rpb24oKXtpZihULnBhcnNlKXJldHVybiBULnBh''@;'; put 'put ''cnNlKFQuZmllbGQudmFsdWUsVC5mb3JtYXQpO2lmKEIpe3ZhciBGPW1lKFQuZmllbGQudmFsdWUsVC5mb3JtYXQsVC5mb3JtYXRTdHJpY3QpO3JldHVybiBGJiZGLmlzVmFsaWQoKT9GLnRvRGF0ZSgpOm51bGx9cmV0dXJuIG5ldyBEYXRlKERhdGUucGFyc2UoVC5maWVsZC52YWx1ZSkpfSxW''@;'; put 'put ''Ll9vbklucHV0Q2hhbmdlPWZ1bmN0aW9uKEYpe3ZhciB5ZTtGLmZpcmVkQnkhPT1WJiYoeWU9Vi5fcGFyc2VGaWVsZFZhbHVlKCksdGUoeWUpJiZWLnNldERhdGUoeWUpLFYuX3Z8fFYuc2hvdygpKX0sVi5fb25JbnB1dEZvY3VzPWZ1bmN0aW9uKCl7Vi5zaG93KCl9LFYuX29uSW5wdXRDbGlj''@;'; put 'put ''az1mdW5jdGlvbigpe1Yuc2hvdygpfSxWLl9vbklucHV0Qmx1cj1mdW5jdGlvbigpe3ZhciBGPUVlLmFjdGl2ZUVsZW1lbnQ7ZG97aWYoYWUoRiwicGlrYS1zaW5nbGUiKSlyZXR1cm59d2hpbGUoRj1GLnBhcmVudE5vZGUpO1YuX2N8fChWLl9iPVUoZnVuY3Rpb24oKXtWLmhpZGUoKX0sNTAp''@;'; put 'put ''KSxWLl9jPSExfSxWLl9vbkNsaWNrPWZ1bmN0aW9uKEYpe3ZhciB5ZT0oRj1GfHx3aW5kb3cuZXZlbnQpLnRhcmdldHx8Ri5zcmNFbGVtZW50LENlPXllO2lmKHllKXshRSYmYWUoeWUsInBpa2Etc2VsZWN0IikmJih5ZS5vbmNoYW5nZXx8KHllLnNldEF0dHJpYnV0ZSgib25jaGFuZ2UiLCJy''@;'; put 'put ''ZXR1cm47IiksUSh5ZSwiY2hhbmdlIixWLl9vbkNoYW5nZSkpKTtkb3tpZihhZShDZSwicGlrYS1zaW5nbGUiKXx8Q2U9PT1ULnRyaWdnZXIpcmV0dXJufXdoaWxlKENlPUNlLnBhcmVudE5vZGUpO1YuX3YmJnllIT09VC50cmlnZ2VyJiZDZSE9PVQudHJpZ2dlciYmVi5oaWRlKCl9fSxWLmVs''@;'; put 'put ''PUVlLmNyZWF0ZUVsZW1lbnQoImRpdiIpLFYuZWwuY2xhc3NOYW1lPSJwaWthLXNpbmdsZSIrKFQuaXNSVEw/IiBpcy1ydGwiOiIiKSsoVC50aGVtZT8iICIrVC50aGVtZToiIiksUShWLmVsLCJtb3VzZWRvd24iLFYuX29uTW91c2VEb3duLCEwKSxRKFYuZWwsInRvdWNoZW5kIixWLl9vbk1v''@;'; put 'put ''dXNlRG93biwhMCksUShWLmVsLCJjaGFuZ2UiLFYuX29uQ2hhbmdlKSxULmtleWJvYXJkSW5wdXQmJlEoRWUsImtleWRvd24iLFYuX29uS2V5Q2hhbmdlKSxULmZpZWxkJiYoVC5jb250YWluZXI/VC5jb250YWluZXIuYXBwZW5kQ2hpbGQoVi5lbCk6VC5ib3VuZD9FZS5ib2R5LmFwcGVuZENo''@;'; put 'put ''aWxkKFYuZWwpOlQuZmllbGQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoVi5lbCxULmZpZWxkLm5leHRTaWJsaW5nKSxRKFQuZmllbGQsImNoYW5nZSIsVi5fb25JbnB1dENoYW5nZSksVC5kZWZhdWx0RGF0ZXx8KFQuZGVmYXVsdERhdGU9Vi5fcGFyc2VGaWVsZFZhbHVlKCksVC5zZXREZWZh''@;'; put 'put ''dWx0RGF0ZT0hMCkpO3ZhciBTPVQuZGVmYXVsdERhdGU7dGUoUyk/VC5zZXREZWZhdWx0RGF0ZT9WLnNldERhdGUoUywhMCk6Vi5nb3RvRGF0ZShTKTpWLmdvdG9EYXRlKG5ldyBEYXRlKSxULmJvdW5kPyh0aGlzLmhpZGUoKSxWLmVsLmNsYXNzTmFtZSs9IiBpcy1ib3VuZCIsUShULnRyaWdn''@;'; put 'put ''ZXIsImNsaWNrIixWLl9vbklucHV0Q2xpY2spLFEoVC50cmlnZ2VyLCJmb2N1cyIsVi5fb25JbnB1dEZvY3VzKSxRKFQudHJpZ2dlciwiYmx1ciIsVi5fb25JbnB1dEJsdXIpKTp0aGlzLnNob3coKX07cmV0dXJuIHgucHJvdG90eXBlPXtjb25maWc6ZnVuY3Rpb24oUCl7dGhpcy5fb3x8KHRo''@;'; put 'put ''aXMuX289ZGUoe30sa2UsITApKTt2YXIgVj1kZSh0aGlzLl9vLFAsITApO1YuaXNSVEw9ISFWLmlzUlRMLFYuZmllbGQ9Vi5maWVsZCYmVi5maWVsZC5ub2RlTmFtZT9WLmZpZWxkOm51bGwsVi50aGVtZT0ic3RyaW5nIj09dHlwZW9mIFYudGhlbWUmJlYudGhlbWU/Vi50aGVtZTpudWxsLFYu''@;'; put 'put ''Ym91bmQ9ISEodm9pZCAwIT09Vi5ib3VuZD9WLmZpZWxkJiZWLmJvdW5kOlYuZmllbGQpLFYudHJpZ2dlcj1WLnRyaWdnZXImJlYudHJpZ2dlci5ub2RlTmFtZT9WLnRyaWdnZXI6Vi5maWVsZCxWLmRpc2FibGVXZWVrZW5kcz0hIVYuZGlzYWJsZVdlZWtlbmRzLFYuZGlzYWJsZURheUZuPSJm''@;'; put 'put ''dW5jdGlvbiI9PXR5cGVvZiBWLmRpc2FibGVEYXlGbj9WLmRpc2FibGVEYXlGbjpudWxsO3ZhciBUPXBhcnNlSW50KFYubnVtYmVyT2ZNb250aHMsMTApfHwxO2lmKFYubnVtYmVyT2ZNb250aHM9VD40PzQ6VCx0ZShWLm1pbkRhdGUpfHwoVi5taW5EYXRlPSExKSx0ZShWLm1heERhdGUpfHwo''@;'; put 'put ''Vi5tYXhEYXRlPSExKSxWLm1pbkRhdGUmJlYubWF4RGF0ZSYmVi5tYXhEYXRlPFYubWluRGF0ZSYmKFYubWF4RGF0ZT1WLm1pbkRhdGU9ITEpLFYubWluRGF0ZSYmdGhpcy5zZXRNaW5EYXRlKFYubWluRGF0ZSksVi5tYXhEYXRlJiZ0aGlzLnNldE1heERhdGUoVi5tYXhEYXRlKSxOKFYueWVh''@;'; put 'put ''clJhbmdlKSl7dmFyIFM9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLTEwO1YueWVhclJhbmdlWzBdPXBhcnNlSW50KFYueWVhclJhbmdlWzBdLDEwKXx8UyxWLnllYXJSYW5nZVsxXT1wYXJzZUludChWLnllYXJSYW5nZVsxXSwxMCl8fFN9ZWxzZSBWLnllYXJSYW5nZT1NYXRoLmFicyhwYXJz''@;'; put 'put ''ZUludChWLnllYXJSYW5nZSwxMCkpfHxrZS55ZWFyUmFuZ2UsVi55ZWFyUmFuZ2U+MTAwJiYoVi55ZWFyUmFuZ2U9MTAwKTtyZXR1cm4gVn0sdG9TdHJpbmc6ZnVuY3Rpb24oUCl7cmV0dXJuIFA9UHx8dGhpcy5fby5mb3JtYXQsdGUodGhpcy5fZCk/dGhpcy5fby50b1N0cmluZz90aGlzLl9v''@;'; put 'put ''LnRvU3RyaW5nKHRoaXMuX2QsUCk6Qj9tZSh0aGlzLl9kKS5mb3JtYXQoUCk6dGhpcy5fZC50b0RhdGVTdHJpbmcoKToiIn0sZ2V0TW9tZW50OmZ1bmN0aW9uKCl7cmV0dXJuIEI/bWUodGhpcy5fZCk6bnVsbH0sc2V0TW9tZW50OmZ1bmN0aW9uKFAsVil7QiYmbWUuaXNNb21lbnQoUCkmJnRo''@;'; put 'put ''aXMuc2V0RGF0ZShQLnRvRGF0ZSgpLFYpfSxnZXREYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRlKHRoaXMuX2QpP25ldyBEYXRlKHRoaXMuX2QuZ2V0VGltZSgpKTpudWxsfSxzZXREYXRlOmZ1bmN0aW9uKFAsVil7aWYoIVApcmV0dXJuIHRoaXMuX2Q9bnVsbCx0aGlzLl9vLmZpZWxkJiYodGhp''@;'; put 'put ''cy5fby5maWVsZC52YWx1ZT0iIix2ZSh0aGlzLl9vLmZpZWxkLCJjaGFuZ2UiLHtmaXJlZEJ5OnRoaXN9KSksdGhpcy5kcmF3KCk7aWYoInN0cmluZyI9PXR5cGVvZiBQJiYoUD1uZXcgRGF0ZShEYXRlLnBhcnNlKFApKSksdGUoUCkpe3ZhciBUPXRoaXMuX28ubWluRGF0ZSxTPXRoaXMuX28u''@;'; put 'put ''bWF4RGF0ZTt0ZShUKSYmUDxUP1A9VDp0ZShTKSYmUD5TJiYoUD1TKSx0aGlzLl9kPW5ldyBEYXRlKFAuZ2V0VGltZSgpKSxvZSh0aGlzLl9kKSx0aGlzLmdvdG9EYXRlKHRoaXMuX2QpLHRoaXMuX28uZmllbGQmJih0aGlzLl9vLmZpZWxkLnZhbHVlPXRoaXMudG9TdHJpbmcoKSx2ZSh0aGlz''@;'; put 'put ''Ll9vLmZpZWxkLCJjaGFuZ2UiLHtmaXJlZEJ5OnRoaXN9KSksIVYmJiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uU2VsZWN0JiZ0aGlzLl9vLm9uU2VsZWN0LmNhbGwodGhpcyx0aGlzLmdldERhdGUoKSl9fSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuc2V0RGF0ZShudWxsKX0sZ290b0Rh''@;'; put 'put ''dGU6ZnVuY3Rpb24oUCl7dmFyIFY9ITA7aWYodGUoUCkpe2lmKHRoaXMuY2FsZW5kYXJzKXt2YXIgVD1uZXcgRGF0ZSh0aGlzLmNhbGVuZGFyc1swXS55ZWFyLHRoaXMuY2FsZW5kYXJzWzBdLm1vbnRoLDEpLFM9bmV3IERhdGUodGhpcy5jYWxlbmRhcnNbdGhpcy5jYWxlbmRhcnMubGVuZ3Ro''@;'; put 'put ''LTFdLnllYXIsdGhpcy5jYWxlbmRhcnNbdGhpcy5jYWxlbmRhcnMubGVuZ3RoLTFdLm1vbnRoLDEpLEY9UC5nZXRUaW1lKCk7Uy5zZXRNb250aChTLmdldE1vbnRoKCkrMSksUy5zZXREYXRlKFMuZ2V0RGF0ZSgpLTEpLFY9RjxULmdldFRpbWUoKXx8Uy5nZXRUaW1lKCk8Rn1WJiYodGhpcy5j''@;'; put 'put ''YWxlbmRhcnM9W3ttb250aDpQLmdldE1vbnRoKCkseWVhcjpQLmdldEZ1bGxZZWFyKCl9XSwicmlnaHQiPT09dGhpcy5fby5tYWluQ2FsZW5kYXImJih0aGlzLmNhbGVuZGFyc1swXS5tb250aCs9MS10aGlzLl9vLm51bWJlck9mTW9udGhzKSksdGhpcy5hZGp1c3RDYWxlbmRhcnMoKX19LGFk''@;'; put 'put ''anVzdERhdGU6ZnVuY3Rpb24oUCxWKXt2YXIgRixUPXRoaXMuZ2V0RGF0ZSgpfHxuZXcgRGF0ZSxTPTI0KnBhcnNlSW50KFYpKjYwKjYwKjFlMzsiYWRkIj09PVA/Rj1uZXcgRGF0ZShULnZhbHVlT2YoKStTKToic3VidHJhY3QiPT09UCYmKEY9bmV3IERhdGUoVC52YWx1ZU9mKCktUykpLHRo''@;'; put 'put ''aXMuc2V0RGF0ZShGKX0sYWRqdXN0Q2FsZW5kYXJzOmZ1bmN0aW9uKCl7dGhpcy5jYWxlbmRhcnNbMF09QWUodGhpcy5jYWxlbmRhcnNbMF0pO2Zvcih2YXIgUD0xO1A8dGhpcy5fby5udW1iZXJPZk1vbnRocztQKyspdGhpcy5jYWxlbmRhcnNbUF09QWUoe21vbnRoOnRoaXMuY2FsZW5kYXJz''@;'; put 'put ''WzBdLm1vbnRoK1AseWVhcjp0aGlzLmNhbGVuZGFyc1swXS55ZWFyfSk7dGhpcy5kcmF3KCl9LGdvdG9Ub2RheTpmdW5jdGlvbigpe3RoaXMuZ290b0RhdGUobmV3IERhdGUpfSxnb3RvTW9udGg6ZnVuY3Rpb24oUCl7aXNOYU4oUCl8fCh0aGlzLmNhbGVuZGFyc1swXS5tb250aD1wYXJzZUlu''@;'; put 'put ''dChQLDEwKSx0aGlzLmFkanVzdENhbGVuZGFycygpKX0sbmV4dE1vbnRoOmZ1bmN0aW9uKCl7dGhpcy5jYWxlbmRhcnNbMF0ubW9udGgrKyx0aGlzLmFkanVzdENhbGVuZGFycygpfSxwcmV2TW9udGg6ZnVuY3Rpb24oKXt0aGlzLmNhbGVuZGFyc1swXS5tb250aC0tLHRoaXMuYWRqdXN0Q2Fs''@;'; put 'put ''ZW5kYXJzKCl9LGdvdG9ZZWFyOmZ1bmN0aW9uKFApe2lzTmFOKFApfHwodGhpcy5jYWxlbmRhcnNbMF0ueWVhcj1wYXJzZUludChQLDEwKSx0aGlzLmFkanVzdENhbGVuZGFycygpKX0sc2V0TWluRGF0ZTpmdW5jdGlvbihQKXtQIGluc3RhbmNlb2YgRGF0ZT8ob2UoUCksdGhpcy5fby5taW5E''@;'; put 'put ''YXRlPVAsdGhpcy5fby5taW5ZZWFyPVAuZ2V0RnVsbFllYXIoKSx0aGlzLl9vLm1pbk1vbnRoPVAuZ2V0TW9udGgoKSk6KHRoaXMuX28ubWluRGF0ZT1rZS5taW5EYXRlLHRoaXMuX28ubWluWWVhcj1rZS5taW5ZZWFyLHRoaXMuX28ubWluTW9udGg9a2UubWluTW9udGgsdGhpcy5fby5zdGFy''@;'; put 'put ''dFJhbmdlPWtlLnN0YXJ0UmFuZ2UpLHRoaXMuZHJhdygpfSxzZXRNYXhEYXRlOmZ1bmN0aW9uKFApe1AgaW5zdGFuY2VvZiBEYXRlPyhvZShQKSx0aGlzLl9vLm1heERhdGU9UCx0aGlzLl9vLm1heFllYXI9UC5nZXRGdWxsWWVhcigpLHRoaXMuX28ubWF4TW9udGg9UC5nZXRNb250aCgpKToo''@;'; put 'put ''dGhpcy5fby5tYXhEYXRlPWtlLm1heERhdGUsdGhpcy5fby5tYXhZZWFyPWtlLm1heFllYXIsdGhpcy5fby5tYXhNb250aD1rZS5tYXhNb250aCx0aGlzLl9vLmVuZFJhbmdlPWtlLmVuZFJhbmdlKSx0aGlzLmRyYXcoKX0sc2V0U3RhcnRSYW5nZTpmdW5jdGlvbihQKXt0aGlzLl9vLnN0YXJ0''@;'; put 'put ''UmFuZ2U9UH0sc2V0RW5kUmFuZ2U6ZnVuY3Rpb24oUCl7dGhpcy5fby5lbmRSYW5nZT1QfSxkcmF3OmZ1bmN0aW9uKFApe2lmKHRoaXMuX3Z8fFApe3ZhciBEZSxWPXRoaXMuX28sVD1WLm1pblllYXIsUz1WLm1heFllYXIsRj1WLm1pbk1vbnRoLHllPVYubWF4TW9udGgsQ2U9IiI7dGhpcy5f''@;'; put 'put ''eTw9VCYmKHRoaXMuX3k9VCwhaXNOYU4oRikmJnRoaXMuX208RiYmKHRoaXMuX209RikpLHRoaXMuX3k+PVMmJih0aGlzLl95PVMsIWlzTmFOKHllKSYmdGhpcy5fbT55ZSYmKHRoaXMuX209eWUpKTtmb3IodmFyIFBlPTA7UGU8Vi5udW1iZXJPZk1vbnRocztQZSsrKURlPSJwaWthLXRpdGxl''@;'; put 'put ''LSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikucmVwbGFjZSgvW15hLXpdKy9nLCIiKS5zdWJzdHIoMCwyKSxDZSs9JzxkaXYgY2xhc3M9InBpa2EtbGVuZGFyIj4nK2VlKHRoaXMsUGUsdGhpcy5jYWxlbmRhcnNbUGVdLnllYXIsdGhpcy5jYWxlbmRhcnNbUGVdLm1vbnRoLHRoaXMuY2Fs''@;'; put 'put ''ZW5kYXJzWzBdLnllYXIsRGUpK3RoaXMucmVuZGVyKHRoaXMuY2FsZW5kYXJzW1BlXS55ZWFyLHRoaXMuY2FsZW5kYXJzW1BlXS5tb250aCxEZSkrIjwvZGl2PiI7dGhpcy5lbC5pbm5lckhUTUw9Q2UsVi5ib3VuZCYmImhpZGRlbiIhPT1WLmZpZWxkLnR5cGUmJlUoZnVuY3Rpb24oKXtWLnRy''@;'; put 'put ''aWdnZXIuZm9jdXMoKX0sMSksImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuX28ub25EcmF3JiZ0aGlzLl9vLm9uRHJhdyh0aGlzKSxWLmJvdW5kJiZWLmZpZWxkLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsVi5hcmlhTGFiZWwpfX0sYWRqdXN0UG9zaXRpb246ZnVuY3Rpb24oKXt2YXIgUCxW''@;'; put 'put ''LFQsUyxGLHllLENlLERlLFBlLFFlLCRlLGd0O2lmKCF0aGlzLl9vLmNvbnRhaW5lcil7aWYodGhpcy5lbC5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLFY9UD10aGlzLl9vLnRyaWdnZXIsVD10aGlzLmVsLm9mZnNldFdpZHRoLFM9dGhpcy5lbC5vZmZzZXRIZWlnaHQsRj13aW5kb3cuaW5u''@;'; put 'put ''ZXJXaWR0aHx8RWUuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLHllPXdpbmRvdy5pbm5lckhlaWdodHx8RWUuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCxDZT13aW5kb3cucGFnZVlPZmZzZXR8fEVlLmJvZHkuc2Nyb2xsVG9wfHxFZS5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9w''@;'; put 'put ''LCRlPSEwLGd0PSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBQLmdldEJvdW5kaW5nQ2xpZW50UmVjdClEZT0oUWU9UC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkubGVmdCt3aW5kb3cucGFnZVhPZmZzZXQsUGU9UWUuYm90dG9tK3dpbmRvdy5wYWdlWU9mZnNldDtlbHNlIGZvcihEZT1WLm9mZnNl''@;'; put 'put ''dExlZnQsUGU9Vi5vZmZzZXRUb3ArVi5vZmZzZXRIZWlnaHQ7Vj1WLm9mZnNldFBhcmVudDspRGUrPVYub2Zmc2V0TGVmdCxQZSs9Vi5vZmZzZXRUb3A7KHRoaXMuX28ucmVwb3NpdGlvbiYmRGUrVD5GfHx0aGlzLl9vLnBvc2l0aW9uLmluZGV4T2YoInJpZ2h0Iik+LTEmJkRlLVQrUC5vZmZz''@;'; put 'put ''ZXRXaWR0aD4wKSYmKERlPURlLVQrUC5vZmZzZXRXaWR0aCwkZT0hMSksKHRoaXMuX28ucmVwb3NpdGlvbiYmUGUrUz55ZStDZXx8dGhpcy5fby5wb3NpdGlvbi5pbmRleE9mKCJ0b3AiKT4tMSYmUGUtUy1QLm9mZnNldEhlaWdodD4wKSYmKFBlPVBlLVMtUC5vZmZzZXRIZWlnaHQsZ3Q9ITEp''@;'; put 'put ''LHRoaXMuZWwuc3R5bGUubGVmdD1EZSsicHgiLHRoaXMuZWwuc3R5bGUudG9wPVBlKyJweCIsWSh0aGlzLmVsLCRlPyJsZWZ0LWFsaWduZWQiOiJyaWdodC1hbGlnbmVkIiksWSh0aGlzLmVsLGd0PyJib3R0b20tYWxpZ25lZCI6InRvcC1hbGlnbmVkIiksVyh0aGlzLmVsLCRlPyJyaWdodC1h''@;'; put 'put ''bGlnbmVkIjoibGVmdC1hbGlnbmVkIiksVyh0aGlzLmVsLGd0PyJ0b3AtYWxpZ25lZCI6ImJvdHRvbS1hbGlnbmVkIil9fSxyZW5kZXI6ZnVuY3Rpb24oUCxWLFQpe3ZhciBTPXRoaXMuX28sRj1uZXcgRGF0ZSx5ZT1zZShQLFYpLENlPW5ldyBEYXRlKFAsViwxKS5nZXREYXkoKSxEZT1bXSxQ''@;'; put 'put ''ZT1bXTtvZShGKSxTLmZpcnN0RGF5PjAmJihDZS09Uy5maXJzdERheSk8MCYmKENlKz03KTtmb3IodmFyIFFlPTA9PT1WPzExOlYtMSwkZT0xMT09PVY/MDpWKzEsZ3Q9MD09PVY/UC0xOlAsd3Q9MTE9PT1WP1ArMTpQLG10PXNlKGd0LFFlKSx2dD15ZStDZSxBdD12dDtBdD43OylBdC09Nzt2''@;'; put 'put ''dCs9Ny1BdDtmb3IodmFyIGh0PSExLEJ0PTAsb249MDtCdDx2dDtCdCsrKXt2YXIgX3Q9bmV3IERhdGUoUCxWLEJ0LUNlKzEpLHR0PSEhdGUodGhpcy5fZCkmJmNlKF90LHRoaXMuX2QpLGV0PWNlKF90LEYpLGx0PS0xIT09Uy5ldmVudHMuaW5kZXhPZihfdC50b0RhdGVTdHJpbmcoKSksTHQ9''@;'; put 'put ''QnQ8Q2V8fEJ0Pj15ZStDZSxDdD1CdC1DZSsxLGZ0PVYsSHQ9UCxHZT1TLnN0YXJ0UmFuZ2UmJmNlKFMuc3RhcnRSYW5nZSxfdCksVWU9Uy5lbmRSYW5nZSYmY2UoUy5lbmRSYW5nZSxfdCkseXQ9Uy5zdGFydFJhbmdlJiZTLmVuZFJhbmdlJiZTLnN0YXJ0UmFuZ2U8X3QmJl90PFMuZW5kUmFu''@;'; put 'put ''Z2UsanQ9Uy5taW5EYXRlJiZfdDxTLm1pbkRhdGV8fFMubWF4RGF0ZSYmX3Q+Uy5tYXhEYXRlfHxTLmRpc2FibGVXZWVrZW5kcyYmSyhfdCl8fFMuZGlzYWJsZURheUZuJiZTLmRpc2FibGVEYXlGbihfdCk7THQmJihCdDxDZT8oQ3Q9bXQrQ3QsZnQ9UWUsSHQ9Z3QpOihDdC09eWUsZnQ9JGUs''@;'; put 'put ''SHQ9d3QpKSxTLnBpY2tXaG9sZVdlZWsmJnR0JiYoaHQ9ITApLFBlLnB1c2goSWUoe2RheTpDdCxtb250aDpmdCx5ZWFyOkh0LGhhc0V2ZW50Omx0LGlzU2VsZWN0ZWQ6dHQsaXNUb2RheTpldCxpc0Rpc2FibGVkOmp0LGlzRW1wdHk6THQsaXNTdGFydFJhbmdlOkdlLGlzRW5kUmFuZ2U6VWUs''@;'; put 'put ''aXNJblJhbmdlOnl0LHNob3dEYXlzSW5OZXh0QW5kUHJldmlvdXNNb250aHM6Uy5zaG93RGF5c0luTmV4dEFuZFByZXZpb3VzTW9udGhzLGVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRoczpTLmVuYWJsZVNlbGVjdGlvbkRheXNJbk5leHRBbmRQcmV2aW91c01vbnRo''@;'; put 'put ''c30pKSw3PT0rK29uJiYoUy5zaG93V2Vla051bWJlciYmUGUudW5zaGlmdChNZShCdC1DZSxWLFAsUy5maXJzdFdlZWtPZlllYXJNaW5EYXlzKSksRGUucHVzaChoZShQZSxTLmlzUlRMLFMucGlja1dob2xlV2VlayxodCkpLFBlPVtdLG9uPTAsaHQ9ITEpfXJldHVybiBuZShTLERlLFQpfSxp''@;'; put 'put ''c1Zpc2libGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdn0sc2hvdzpmdW5jdGlvbigpe3RoaXMuaXNWaXNpYmxlKCl8fCh0aGlzLl92PSEwLHRoaXMuZHJhdygpLFcodGhpcy5lbCwiaXMtaGlkZGVuIiksdGhpcy5fby5ib3VuZCYmKFEoRWUsImNsaWNrIix0aGlzLl9vbkNsaWNrKSx0aGlz''@;'; put 'put ''LmFkanVzdFBvc2l0aW9uKCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9vLm9uT3BlbiYmdGhpcy5fby5vbk9wZW4uY2FsbCh0aGlzKSl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl92OyExIT09UCYmKHRoaXMuX28uYm91bmQmJmooRWUsImNsaWNrIix0aGlzLl9vbkNsaWNrKSx0''@;'; put 'put ''aGlzLl9vLmNvbnRhaW5lcnx8KHRoaXMuZWwuc3R5bGUucG9zaXRpb249InN0YXRpYyIsdGhpcy5lbC5zdHlsZS5sZWZ0PSJhdXRvIix0aGlzLmVsLnN0eWxlLnRvcD0iYXV0byIpLFkodGhpcy5lbCwiaXMtaGlkZGVuIiksdGhpcy5fdj0hMSx2b2lkIDAhPT1QJiYiZnVuY3Rpb24iPT10eXBl''@;'; put 'put ''b2YgdGhpcy5fby5vbkNsb3NlJiZ0aGlzLl9vLm9uQ2xvc2UuY2FsbCh0aGlzKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgUD10aGlzLl9vO3RoaXMuaGlkZSgpLGoodGhpcy5lbCwibW91c2Vkb3duIix0aGlzLl9vbk1vdXNlRG93biwhMCksaih0aGlzLmVsLCJ0b3VjaGVuZCIsdGhpcy5f''@;'; put 'put ''b25Nb3VzZURvd24sITApLGoodGhpcy5lbCwiY2hhbmdlIix0aGlzLl9vbkNoYW5nZSksUC5rZXlib2FyZElucHV0JiZqKEVlLCJrZXlkb3duIix0aGlzLl9vbktleUNoYW5nZSksUC5maWVsZCYmKGooUC5maWVsZCwiY2hhbmdlIix0aGlzLl9vbklucHV0Q2hhbmdlKSxQLmJvdW5kJiYoaihQ''@;'; put 'put ''LnRyaWdnZXIsImNsaWNrIix0aGlzLl9vbklucHV0Q2xpY2spLGooUC50cmlnZ2VyLCJmb2N1cyIsdGhpcy5fb25JbnB1dEZvY3VzKSxqKFAudHJpZ2dlciwiYmx1ciIsdGhpcy5fb25JbnB1dEJsdXIpKSksdGhpcy5lbC5wYXJlbnROb2RlJiZ0aGlzLmVsLnBhcmVudE5vZGUucmVtb3ZlQ2hp''@;'; put 'put ''bGQodGhpcy5lbCl9fSx4fShFKX0oKX0sNjM3MDE6KFhlLEplLEwpPT57SmUucHVibGljRW5jcnlwdD1MKDE2NTYyKSxKZS5wcml2YXRlRGVjcnlwdD1MKDM2NzA1KSxKZS5wcml2YXRlRW5jcnlwdD1mdW5jdGlvbihCLEUpe3JldHVybiBKZS5wdWJsaWNFbmNyeXB0KEIsRSwhMCl9LEplLnB1''@;'; put 'put ''YmxpY0RlY3J5cHQ9ZnVuY3Rpb24oQixFKXtyZXR1cm4gSmUucHJpdmF0ZURlY3J5cHQoQixFLCEwKX19LDg2OTQ1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk2Mzg2KSxCPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBFKEVlKXt2YXIgVT1CLmFsbG9jVW5zYWZlKDQpO3JldHVybiBVLndyaXRl''@;'; put 'put ''VUludDMyQkUoRWUsMCksVX1YZS5leHBvcnRzPWZ1bmN0aW9uKEVlLFUpe2Zvcih2YXIgcmUsUT1CLmFsbG9jKDApLGo9MDtRLmxlbmd0aDxVOylyZT1FKGorKyksUT1CLmNvbmNhdChbUSxtZSgic2hhMSIpLnVwZGF0ZShFZSkudXBkYXRlKHJlKS5kaWdlc3QoKV0pO3JldHVybiBRLnNsaWNl''@;'; put 'put ''KDAsVSl9fSw4MjA1NzpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUsQil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEUoaGUsTyl7aWYoIWhlKXRocm93IG5ldyBFcnJvcihPfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIEVlKGhlLE8pe2hlLnN1cGVyXz1PO3ZhciB6PWZ1bmN0''@;'; put 'put ''aW9uKCl7fTt6LnByb3RvdHlwZT1PLnByb3RvdHlwZSxoZS5wcm90b3R5cGU9bmV3IHosaGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWhlfWZ1bmN0aW9uIFUoaGUsTyx6KXtpZihVLmlzQk4oaGUpKXJldHVybiBoZTt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3Ro''@;'; put 'put ''PTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09aGUmJigoImxlIj09PU98fCJiZSI9PT1PKSYmKHo9TyxPPTEwKSx0aGlzLl9pbml0KGhlfHwwLE98fDEwLHp8fCJiZSIpKX12YXIgUTsib2JqZWN0Ij09dHlwZW9mIG1lP21lLmV4cG9ydHM9VTpCLkJOPVUsVS5CTj1VLFUud29yZFNpemU9MjY7dHJ5''@;'; put 'put ''e1E9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjpMKDc3MTA4KS5CdWZmZXJ9Y2F0Y2goaGUpe31mdW5jdGlvbiBqKGhlLE8pe3ZhciB6PWhlLmNoYXJDb2RlQXQoTyk7cmV0dXJuIHo+PTY1JiZ6PD03MD96LTU1Ono+PTk3''@;'; put 'put ''JiZ6PD0xMDI/ei04Nzp6LTQ4JjE1fWZ1bmN0aW9uIHJlKGhlLE8seil7dmFyIGVlPWooaGUseik7cmV0dXJuIHotMT49TyYmKGVlfD1qKGhlLHotMSk8PDQpLGVlfWZ1bmN0aW9uIGFlKGhlLE8seixlZSl7Zm9yKHZhciBuZT0wLHg9TWF0aC5taW4oaGUubGVuZ3RoLHopLFA9TztQPHg7UCsr''@;'; put 'put ''KXt2YXIgVj1oZS5jaGFyQ29kZUF0KFApLTQ4O25lKj1lZSxuZSs9Vj49NDk/Vi00OSsxMDpWPj0xNz9WLTE3KzEwOlZ9cmV0dXJuIG5lfVUuaXNCTj1mdW5jdGlvbihPKXtyZXR1cm4gTyBpbnN0YW5jZW9mIFV8fG51bGwhPT1PJiYib2JqZWN0Ij09dHlwZW9mIE8mJk8uY29uc3RydWN0b3Iu''@;'; put 'put ''d29yZFNpemU9PT1VLndvcmRTaXplJiZBcnJheS5pc0FycmF5KE8ud29yZHMpfSxVLm1heD1mdW5jdGlvbihPLHope3JldHVybiBPLmNtcCh6KT4wP086en0sVS5taW49ZnVuY3Rpb24oTyx6KXtyZXR1cm4gTy5jbXAoeik8MD9POnp9LFUucHJvdG90eXBlLl9pbml0PWZ1bmN0aW9uKE8seixl''@;'; put 'put ''ZSl7aWYoIm51bWJlciI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0TnVtYmVyKE8seixlZSk7aWYoIm9iamVjdCI9PXR5cGVvZiBPKXJldHVybiB0aGlzLl9pbml0QXJyYXkoTyx6LGVlKTsiaGV4Ij09PXomJih6PTE2KSxFKHo9PT0oMHx6KSYmej49MiYmejw9MzYpO3ZhciBuZT0wOyIt''@;'; put 'put ''Ij09PShPPU8udG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYobmUrKyx0aGlzLm5lZ2F0aXZlPTEpLG5lPE8ubGVuZ3RoJiYoMTY9PT16P3RoaXMuX3BhcnNlSGV4KE8sbmUsZWUpOih0aGlzLl9wYXJzZUJhc2UoTyx6LG5lKSwibGUiPT09ZWUmJnRoaXMuX2luaXRBcnJheSh0''@;'; put 'put ''aGlzLnRvQXJyYXkoKSx6LGVlKSkpfSxVLnByb3RvdHlwZS5faW5pdE51bWJlcj1mdW5jdGlvbihPLHosZWUpe088MCYmKHRoaXMubmVnYXRpdmU9MSxPPS1PKSxPPDY3MTA4ODY0Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZPXSx0aGlzLmxlbmd0aD0xKTpPPDQ1MDM1OTk2MjczNzA0OTY/KHRo''@;'; put 'put ''aXMud29yZHM9WzY3MTA4ODYzJk8sTy82NzEwODg2NCY2NzEwODg2M10sdGhpcy5sZW5ndGg9Mik6KEUoTzw5MDA3MTk5MjU0NzQwOTkyKSx0aGlzLndvcmRzPVs2NzEwODg2MyZPLE8vNjcxMDg4NjQmNjcxMDg4NjMsMV0sdGhpcy5sZW5ndGg9MyksImxlIj09PWVlJiZ0aGlzLl9pbml0QXJy''@;'; put 'put ''YXkodGhpcy50b0FycmF5KCkseixlZSl9LFUucHJvdG90eXBlLl9pbml0QXJyYXk9ZnVuY3Rpb24oTyx6LGVlKXtpZihFKCJudW1iZXIiPT10eXBlb2YgTy5sZW5ndGgpLE8ubGVuZ3RoPD0wKXJldHVybiB0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xLHRoaXM7dGhpcy5sZW5ndGg9TWF0''@;'; put 'put ''aC5jZWlsKE8ubGVuZ3RoLzMpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT0wO3ZhciB4LFAsVj0wO2lmKCJiZSI9PT1lZSlmb3IobmU9Ty5sZW5ndGgtMSx4PTA7bmU+PTA7bmUtPTMpdGhp''@;'; put 'put ''cy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZS0xXTw8OHxPW25lLTJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtlbHNlIGlmKCJsZSI9PT1lZSlmb3IobmU9MCx4PTA7bmU8Ty5sZW5ndGg7bmUrPTMp''@;'; put 'put ''dGhpcy53b3Jkc1t4XXw9KFA9T1tuZV18T1tuZSsxXTw8OHxPW25lKzJdPDwxNik8PFYmNjcxMDg4NjMsdGhpcy53b3Jkc1t4KzFdPVA+Pj4yNi1WJjY3MTA4ODYzLChWKz0yNCk+PTI2JiYoVi09MjYseCsrKTtyZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5fcGFyc2VIZXg9ZnVu''@;'; put 'put ''Y3Rpb24oTyx6LGVlKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKE8ubGVuZ3RoLXopLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG5lPTA7bmU8dGhpcy5sZW5ndGg7bmUrKyl0aGlzLndvcmRzW25lXT0wO3ZhciBWLHg9MCxQPTA7aWYoImJlIj09PWVlKWZv''@;'; put 'put ''cihuZT1PLmxlbmd0aC0xO25lPj16O25lLT0yKVY9cmUoTyx6LG5lKTw8eCx0aGlzLndvcmRzW1BdfD02NzEwODg2MyZWLHg+PTE4Pyh4LT0xOCx0aGlzLndvcmRzW1ArPTFdfD1WPj4+MjYpOngrPTg7ZWxzZSBmb3IobmU9KE8ubGVuZ3RoLXopJTI9PTA/eisxOno7bmU8Ty5sZW5ndGg7bmUr''@;'; put 'put ''PTIpVj1yZShPLHosbmUpPDx4LHRoaXMud29yZHNbUF18PTY3MTA4ODYzJlYseD49MTg/KHgtPTE4LHRoaXMud29yZHNbUCs9MV18PVY+Pj4yNik6eCs9ODt0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl9wYXJzZUJhc2U9ZnVuY3Rpb24oTyx6LGVlKXt0aGlzLndvcmRzPVswXSx0aGlzLmxl''@;'; put 'put ''bmd0aD0xO2Zvcih2YXIgbmU9MCx4PTE7eDw9NjcxMDg4NjM7eCo9eiluZSsrO25lLS0seD14L3p8MDtmb3IodmFyIFA9Ty5sZW5ndGgtZWUsVj1QJW5lLFQ9TWF0aC5taW4oUCxQLVYpK2VlLFM9MCxGPWVlO0Y8VDtGKz1uZSlTPWFlKE8sRixGK25lLHopLHRoaXMuaW11bG4oeCksdGhpcy53''@;'; put 'put ''b3Jkc1swXStTPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPVM6dGhpcy5faWFkZG4oUyk7aWYoMCE9PVYpe3ZhciB5ZT0xO2ZvcihTPWFlKE8sRixPLmxlbmd0aCx6KSxGPTA7RjxWO0YrKyl5ZSo9ejt0aGlzLmltdWxuKHllKSx0aGlzLndvcmRzWzBdK1M8NjcxMDg4NjQ/dGhpcy53b3Jkc1sw''@;'; put 'put ''XSs9Uzp0aGlzLl9pYWRkbihTKX10aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmNvcHk9ZnVuY3Rpb24oTyl7Ty53b3Jkcz1uZXcgQXJyYXkodGhpcy5sZW5ndGgpO2Zvcih2YXIgej0wO3o8dGhpcy5sZW5ndGg7eisrKU8ud29yZHNbel09dGhpcy53b3Jkc1t6XTtPLmxlbmd0aD10aGlzLmxl''@;'; put 'put ''bmd0aCxPLm5lZ2F0aXZlPXRoaXMubmVnYXRpdmUsTy5yZWQ9dGhpcy5yZWR9LFUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIE89bmV3IFUobnVsbCk7cmV0dXJuIHRoaXMuY29weShPKSxPfSxVLnByb3RvdHlwZS5fZXhwYW5kPWZ1bmN0aW9uKE8pe2Zvcig7dGhpcy5sZW5ndGg8''@;'; put 'put ''TzspdGhpcy53b3Jkc1t0aGlzLmxlbmd0aCsrXT0wO3JldHVybiB0aGlzfSxVLnByb3RvdHlwZS5zdHJpcD1mdW5jdGlvbigpe2Zvcig7dGhpcy5sZW5ndGg+MSYmMD09PXRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV07KXRoaXMubGVuZ3RoLS07cmV0dXJuIHRoaXMuX25vcm1TaWduKCl9LFUu''@;'; put 'put ''cHJvdG90eXBlLl9ub3JtU2lnbj1mdW5jdGlvbigpe3JldHVybiAxPT09dGhpcy5sZW5ndGgmJjA9PT10aGlzLndvcmRzWzBdJiYodGhpcy5uZWdhdGl2ZT0wKSx0aGlzfSxVLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmVkPyI8Qk4tUjogIjoiPEJOOiAiKSt0''@;'; put 'put ''aGlzLnRvU3RyaW5nKDE2KSsiPiJ9O3ZhciBZPVsiIiwiMCIsIjAwIiwiMDAwIiwiMDAwMCIsIjAwMDAwIiwiMDAwMDAwIiwiMDAwMDAwMCIsIjAwMDAwMDAwIiwiMDAwMDAwMDAwIiwiMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMCIsIjAw''@;'; put 'put ''MDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAw''@;'; put 'put ''MDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCJdLFc9WzAsMCwyNSwxNiwxMiwxMSwxMCw5LDgsOCw3LDcsNyw3LDYsNiw2LDYsNiw2LDYsNSw1LDUsNSw1LDUs''@;'; put 'put ''NSw1LDUsNSw1LDUsNSw1LDUsNV0sTj1bMCwwLDMzNTU0NDMyLDQzMDQ2NzIxLDE2Nzc3MjE2LDQ4ODI4MTI1LDYwNDY2MTc2LDQwMzUzNjA3LDE2Nzc3MjE2LDQzMDQ2NzIxLDFlNywxOTQ4NzE3MSwzNTgzMTgwOCw2Mjc0ODUxNyw3NTI5NTM2LDExMzkwNjI1LDE2Nzc3MjE2LDI0MTM3NTY5''@;'; put 'put ''LDM0MDEyMjI0LDQ3MDQ1ODgxLDY0ZTYsNDA4NDEwMSw1MTUzNjMyLDY0MzYzNDMsNzk2MjYyNCw5NzY1NjI1LDExODgxMzc2LDE0MzQ4OTA3LDE3MjEwMzY4LDIwNTExMTQ5LDI0M2U1LDI4NjI5MTUxLDMzNTU0NDMyLDM5MTM1MzkzLDQ1NDM1NDI0LDUyNTIxODc1LDYwNDY2MTc2XTtmdW5j''@;'; put 'put ''dGlvbiBLKGhlLE8seil7ei5uZWdhdGl2ZT1PLm5lZ2F0aXZlXmhlLm5lZ2F0aXZlO3ZhciBlZT1oZS5sZW5ndGgrTy5sZW5ndGh8MDt6Lmxlbmd0aD1lZSxlZT1lZS0xfDA7dmFyIG5lPTB8aGUud29yZHNbMF0seD0wfE8ud29yZHNbMF0sUD1uZSp4LFQ9UC82NzEwODg2NHwwO3oud29yZHNb''@;'; put 'put ''MF09NjcxMDg4NjMmUDtmb3IodmFyIFM9MTtTPGVlO1MrKyl7Zm9yKHZhciBGPVQ+Pj4yNix5ZT02NzEwODg2MyZULENlPU1hdGgubWluKFMsTy5sZW5ndGgtMSksRGU9TWF0aC5tYXgoMCxTLWhlLmxlbmd0aCsxKTtEZTw9Q2U7RGUrKylGKz0oUD0obmU9MHxoZS53b3Jkc1tTLURlfDBdKSoo''@;'; put 'put ''eD0wfE8ud29yZHNbRGVdKSt5ZSkvNjcxMDg4NjR8MCx5ZT02NzEwODg2MyZQO3oud29yZHNbU109MHx5ZSxUPTB8Rn1yZXR1cm4gMCE9PVQ/ei53b3Jkc1tTXT0wfFQ6ei5sZW5ndGgtLSx6LnN0cmlwKCl9VS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oTyx6KXt2YXIgZWU7aWYoej0w''@;'; put 'put ''fHp8fDEsMTY9PT0oTz1PfHwxMCl8fCJoZXgiPT09Tyl7ZWU9IiI7Zm9yKHZhciBuZT0wLHg9MCxQPTA7UDx0aGlzLmxlbmd0aDtQKyspe3ZhciBWPXRoaXMud29yZHNbUF0sVD0oMTY3NzcyMTUmKFY8PG5lfHgpKS50b1N0cmluZygxNik7ZWU9MCE9KHg9Vj4+PjI0LW5lJjE2Nzc3MjE1KXx8''@;'; put 'put ''UCE9PXRoaXMubGVuZ3RoLTE/WVs2LVQubGVuZ3RoXStUK2VlOlQrZWUsKG5lKz0yKT49MjYmJihuZS09MjYsUC0tKX1mb3IoMCE9PXgmJihlZT14LnRvU3RyaW5nKDE2KStlZSk7ZWUubGVuZ3RoJXohPTA7KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0iLSIrZWUp''@;'; put 'put ''LGVlfWlmKE89PT0oMHxPKSYmTz49MiYmTzw9MzYpe3ZhciBTPVdbT10sRj1OW09dO2VlPSIiO3ZhciB5ZT10aGlzLmNsb25lKCk7Zm9yKHllLm5lZ2F0aXZlPTA7IXllLmlzWmVybygpOyl7dmFyIENlPXllLm1vZG4oRikudG9TdHJpbmcoTyk7ZWU9KHllPXllLmlkaXZuKEYpKS5pc1plcm8o''@;'; put 'put ''KT9DZStlZTpZW1MtQ2UubGVuZ3RoXStDZStlZX1mb3IodGhpcy5pc1plcm8oKSYmKGVlPSIwIitlZSk7ZWUubGVuZ3RoJXohPTA7KWVlPSIwIitlZTtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmUmJihlZT0iLSIrZWUpLGVlfUUoITEsIkJhc2Ugc2hvdWxkIGJlIGJldHdlZW4gMiBhbmQgMzYi''@;'; put 'put ''KX0sVS5wcm90b3R5cGUudG9OdW1iZXI9ZnVuY3Rpb24oKXt2YXIgTz10aGlzLndvcmRzWzBdO3JldHVybiAyPT09dGhpcy5sZW5ndGg/Tys9NjcxMDg4NjQqdGhpcy53b3Jkc1sxXTozPT09dGhpcy5sZW5ndGgmJjE9PT10aGlzLndvcmRzWzJdP08rPTQ1MDM1OTk2MjczNzA0OTYrNjcxMDg4''@;'; put 'put ''NjQqdGhpcy53b3Jkc1sxXTp0aGlzLmxlbmd0aD4yJiZFKCExLCJOdW1iZXIgY2FuIG9ubHkgc2FmZWx5IHN0b3JlIHVwIHRvIDUzIGJpdHMiKSwwIT09dGhpcy5uZWdhdGl2ZT8tTzpPfSxVLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50b1N0cmluZygxNil9LFUu''@;'; put 'put ''cHJvdG90eXBlLnRvQnVmZmVyPWZ1bmN0aW9uKE8seil7cmV0dXJuIEUodm9pZCAwIT09USksdGhpcy50b0FycmF5TGlrZShRLE8seil9LFUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy50b0FycmF5TGlrZShBcnJheSxPLHopfSxVLnByb3RvdHlwZS50b0Fy''@;'; put 'put ''cmF5TGlrZT1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT10aGlzLmJ5dGVMZW5ndGgoKSx4PWVlfHxNYXRoLm1heCgxLG5lKTtFKG5lPD14LCJieXRlIGFycmF5IGxvbmdlciB0aGFuIGRlc2lyZWQgbGVuZ3RoIiksRSh4PjAsIlJlcXVlc3RlZCBhcnJheSBsZW5ndGggPD0gMCIpLHRoaXMuc3Ry''@;'; put 'put ''aXAoKTt2YXIgVCxTLFA9ImxlIj09PXosVj1uZXcgTyh4KSxGPXRoaXMuY2xvbmUoKTtpZihQKXtmb3IoUz0wOyFGLmlzWmVybygpO1MrKylUPUYuYW5kbG4oMjU1KSxGLml1c2hybig4KSxWW1NdPVQ7Zm9yKDtTPHg7UysrKVZbU109MH1lbHNle2ZvcihTPTA7Uzx4LW5lO1MrKylWW1NdPTA7''@;'; put 'put ''Zm9yKFM9MDshRi5pc1plcm8oKTtTKyspVD1GLmFuZGxuKDI1NSksRi5pdXNocm4oOCksVlt4LVMtMV09VH1yZXR1cm4gVn0sVS5wcm90b3R5cGUuX2NvdW50Qml0cz1NYXRoLmNsejMyP2Z1bmN0aW9uKE8pe3JldHVybiAzMi1NYXRoLmNsejMyKE8pfTpmdW5jdGlvbihPKXt2YXIgej1PLGVl''@;'; put 'put ''PTA7cmV0dXJuIHo+PTQwOTYmJihlZSs9MTMsej4+Pj0xMyksej49NjQmJihlZSs9Nyx6Pj4+PTcpLHo+PTgmJihlZSs9NCx6Pj4+PTQpLHo+PTImJihlZSs9Mix6Pj4+PTIpLGVlK3p9LFUucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbihPKXtpZigwPT09TylyZXR1cm4gMjY7dmFyIHo9''@;'; put 'put ''TyxlZT0wO3JldHVybiAwPT0oODE5MSZ6KSYmKGVlKz0xMyx6Pj4+PTEzKSwwPT0oMTI3JnopJiYoZWUrPTcsej4+Pj03KSwwPT0oMTUmeikmJihlZSs9NCx6Pj4+PTQpLDA9PSgzJnopJiYoZWUrPTIsej4+Pj0yKSwwPT0oMSZ6KSYmZWUrKyxlZX0sVS5wcm90b3R5cGUuYml0TGVuZ3RoPWZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIHo9dGhpcy5fY291bnRCaXRzKHRoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0pO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkren0sVS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgTz0wLHo9MDt6PHRo''@;'; put 'put ''aXMubGVuZ3RoO3orKyl7dmFyIGVlPXRoaXMuX3plcm9CaXRzKHRoaXMud29yZHNbel0pO2lmKE8rPWVlLDI2IT09ZWUpYnJlYWt9cmV0dXJuIE99LFUucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LFUucHJvdG90''@;'; put 'put ''eXBlLnRvVHdvcz1mdW5jdGlvbihPKXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bihPKS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLnRlc3RuKE8tMSk/dGhpcy5ub3RuKE8pLmlhZGRu''@;'; put 'put ''KDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LFUucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxVLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sVS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sVS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbihPKXtmb3IoO3RoaXMubGVuZ3RoPE8ubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciB6PTA7ejxPLmxlbmd0aDt6KyspdGhpcy53b3Jk''@;'; put 'put ''c1t6XT10aGlzLndvcmRzW3pdfE8ud29yZHNbel07cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1b3IoTyl9LFUucHJvdG90eXBlLm9yPWZ1bmN0aW9uKE8pe3JldHVy''@;'; put 'put ''biB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKE8pOk8uY2xvbmUoKS5pb3IodGhpcyl9LFUucHJvdG90eXBlLnVvcj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IoTyk6Ty5jbG9uZSgpLml1b3IodGhpcyl9LFUu''@;'; put 'put ''cHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKE8pe3ZhciB6O3o9dGhpcy5sZW5ndGg+Ty5sZW5ndGg/Tzp0aGlzO2Zvcih2YXIgZWU9MDtlZTx6Lmxlbmd0aDtlZSsrKXRoaXMud29yZHNbZWVdPXRoaXMud29yZHNbZWVdJk8ud29yZHNbZWVdO3JldHVybiB0aGlzLmxlbmd0aD16Lmxlbmd0aCx0''@;'; put 'put ''aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09KHRoaXMubmVnYXRpdmV8Ty5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQoTyl9LFUucHJvdG90eXBlLmFuZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5sZW5ndGg+Ty5sZW5ndGg/dGhpcy5jbG9uZSgp''@;'; put 'put ''LmlhbmQoTyk6Ty5jbG9uZSgpLmlhbmQodGhpcyl9LFUucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZChPKTpPLmNsb25lKCkuaXVhbmQodGhpcyl9LFUucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKE8pe3Zh''@;'; put 'put ''ciB6LGVlO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyh6PXRoaXMsZWU9Tyk6KHo9TyxlZT10aGlzKTtmb3IodmFyIG5lPTA7bmU8ZWUubGVuZ3RoO25lKyspdGhpcy53b3Jkc1tuZV09ei53b3Jkc1tuZV1eZWUud29yZHNbbmVdO2lmKHRoaXMhPT16KWZvcig7bmU8ei5sZW5ndGg7bmUrKyl0aGlz''@;'; put 'put ''LndvcmRzW25lXT16LndvcmRzW25lXTtyZXR1cm4gdGhpcy5sZW5ndGg9ei5sZW5ndGgsdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKE8pe3JldHVybiBFKDA9PSh0aGlzLm5lZ2F0aXZlfE8ubmVnYXRpdmUpKSx0aGlzLml1eG9yKE8pfSxVLnByb3RvdHlwZS54b3I9''@;'; put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKE8pOk8uY2xvbmUoKS5peG9yKHRoaXMpfSxVLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmxlbmd0aD5PLmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IoTyk6Ty5j''@;'; put 'put ''bG9uZSgpLml1eG9yKHRoaXMpfSxVLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIHo9MHxNYXRoLmNlaWwoTy8yNiksZWU9TyUyNjt0aGlzLl9leHBhbmQoeiksZWU+MCYmei0tO2Zvcih2YXIgbmU9MDtuZTx6O25lKyspdGhpcy53''@;'; put 'put ''b3Jkc1tuZV09NjcxMDg4NjMmfnRoaXMud29yZHNbbmVdO3JldHVybiBlZT4wJiYodGhpcy53b3Jkc1tuZV09fnRoaXMud29yZHNbbmVdJjY3MTA4ODYzPj4yNi1lZSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5ub3RuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW5vdG4o''@;'; put 'put ''Tyl9LFUucHJvdG90eXBlLnNldG49ZnVuY3Rpb24oTyx6KXtFKCJudW1iZXIiPT10eXBlb2YgTyYmTz49MCk7dmFyIGVlPU8vMjZ8MCxuZT1PJTI2O3JldHVybiB0aGlzLl9leHBhbmQoZWUrMSksdGhpcy53b3Jkc1tlZV09ej90aGlzLndvcmRzW2VlXXwxPDxuZTp0aGlzLndvcmRzW2VlXSZ+''@;'; put 'put ''KDE8PG5lKSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmlhZGQ9ZnVuY3Rpb24oTyl7dmFyIHosZWUsbmU7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsej10aGlzLmlzdWIoTyksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3Jt''@;'; put 'put ''U2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gTy5uZWdhdGl2ZT0wLHo9dGhpcy5pc3ViKE8pLE8ubmVnYXRpdmU9MSx6Ll9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPk8ubGVuZ3RoPyhlZT10aGlzLG5lPU8pOihlZT1PLG5lPXRoaXMpO2Zvcih2YXIg''@;'; put 'put ''eD0wLFA9MDtQPG5lLmxlbmd0aDtQKyspdGhpcy53b3Jkc1tQXT02NzEwODg2MyYoej0oMHxlZS53b3Jkc1tQXSkrKDB8bmUud29yZHNbUF0pK3gpLHg9ej4+PjI2O2Zvcig7MCE9PXgmJlA8ZWUubGVuZ3RoO1ArKyl0aGlzLndvcmRzW1BdPTY3MTA4ODYzJih6PSgwfGVlLndvcmRzW1BdKSt4''@;'; put 'put ''KSx4PXo+Pj4yNjtpZih0aGlzLmxlbmd0aD1lZS5sZW5ndGgsMCE9PXgpdGhpcy53b3Jkc1t0aGlzLmxlbmd0aF09eCx0aGlzLmxlbmd0aCsrO2Vsc2UgaWYoZWUhPT10aGlzKWZvcig7UDxlZS5sZW5ndGg7UCsrKXRoaXMud29yZHNbUF09ZWUud29yZHNbUF07cmV0dXJuIHRoaXN9LFUucHJv''@;'; put 'put ''dG90eXBlLmFkZD1mdW5jdGlvbihPKXt2YXIgejtyZXR1cm4gMCE9PU8ubmVnYXRpdmUmJjA9PT10aGlzLm5lZ2F0aXZlPyhPLm5lZ2F0aXZlPTAsej10aGlzLnN1YihPKSxPLm5lZ2F0aXZlXj0xLHopOjA9PT1PLm5lZ2F0aXZlJiYwIT09dGhpcy5uZWdhdGl2ZT8odGhpcy5uZWdhdGl2ZT0w''@;'; put 'put ''LHo9Ty5zdWIodGhpcyksdGhpcy5uZWdhdGl2ZT0xLHopOnRoaXMubGVuZ3RoPk8ubGVuZ3RoP3RoaXMuY2xvbmUoKS5pYWRkKE8pOk8uY2xvbmUoKS5pYWRkKHRoaXMpfSxVLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8pe2lmKDAhPT1PLm5lZ2F0aXZlKXtPLm5lZ2F0aXZlPTA7dmFyIHo9''@;'; put 'put ''dGhpcy5pYWRkKE8pO3JldHVybiBPLm5lZ2F0aXZlPTEsei5fbm9ybVNpZ24oKX1pZigwIT09dGhpcy5uZWdhdGl2ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZChPKSx0aGlzLm5lZ2F0aXZlPTEsdGhpcy5fbm9ybVNpZ24oKTt2YXIgbmUseCxlZT10aGlzLmNtcChPKTtpZigw''@;'; put 'put ''PT09ZWUpcmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzLmxlbmd0aD0xLHRoaXMud29yZHNbMF09MCx0aGlzO2VlPjA/KG5lPXRoaXMseD1PKToobmU9Tyx4PXRoaXMpO2Zvcih2YXIgUD0wLFY9MDtWPHgubGVuZ3RoO1YrKylQPSh6PSgwfG5lLndvcmRzW1ZdKS0oMHx4LndvcmRzW1ZdKStQ''@;'; put 'put ''KT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2Zvcig7MCE9PVAmJlY8bmUubGVuZ3RoO1YrKylQPSh6PSgwfG5lLndvcmRzW1ZdKStQKT4+MjYsdGhpcy53b3Jkc1tWXT02NzEwODg2MyZ6O2lmKDA9PT1QJiZWPG5lLmxlbmd0aCYmbmUhPT10aGlzKWZvcig7VjxuZS5sZW5ndGg7Visr''@;'; put 'put ''KXRoaXMud29yZHNbVl09bmUud29yZHNbVl07cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLFYpLG5lIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3Vi''@;'; put 'put ''KE8pfTt2YXIgSj1mdW5jdGlvbihPLHosZWUpe3ZhciBULFMsRixuZT1PLndvcmRzLHg9ei53b3JkcyxQPWVlLndvcmRzLFY9MCx5ZT0wfG5lWzBdLENlPTgxOTEmeWUsRGU9eWU+Pj4xMyxQZT0wfG5lWzFdLFFlPTgxOTEmUGUsJGU9UGU+Pj4xMyxndD0wfG5lWzJdLHd0PTgxOTEmZ3QsbXQ9''@;'; put 'put ''Z3Q+Pj4xMyx2dD0wfG5lWzNdLEF0PTgxOTEmdnQsaHQ9dnQ+Pj4xMyxCdD0wfG5lWzRdLG9uPTgxOTEmQnQsX3Q9QnQ+Pj4xMyx0dD0wfG5lWzVdLGV0PTgxOTEmdHQsbHQ9dHQ+Pj4xMyxMdD0wfG5lWzZdLEN0PTgxOTEmTHQsZnQ9THQ+Pj4xMyxIdD0wfG5lWzddLEdlPTgxOTEmSHQsVWU9''@;'; put 'put ''SHQ+Pj4xMyx5dD0wfG5lWzhdLGp0PTgxOTEmeXQsSnQ9eXQ+Pj4xMyxnbj0wfG5lWzldLGRuPTgxOTEmZ24seW49Z24+Pj4xMyxsbj0wfHhbMF0sTm49ODE5MSZsbixibj1sbj4+PjEzLGVyPTB8eFsxXSxzcj04MTkxJmVyLFhuPWVyPj4+MTMsRnI9MHx4WzJdLHhyPTgxOTEmRnIscXQ9RnI+''@;'; put 'put ''Pj4xMyxwcj0wfHhbM10sbnI9ODE5MSZwcixBbj1wcj4+PjEzLHFuPTB8eFs0XSxXdD04MTkxJnFuLHBuPXFuPj4+MTMsS249MHx4WzVdLE50PTgxOTEmS24sc249S24+Pj4xMyxVbj0wfHhbNl0sd249ODE5MSZVbix0bj1Vbj4+PjEzLHpuPTB8eFs3XSxUcj04MTkxJnpuLEJuPXpuPj4+MTMs''@;'; put 'put ''a3I9MHx4WzhdLG1uPTgxOTEma3IsdW49a3I+Pj4xMyxjbj0wfHhbOV0sX249ODE5MSZjbixHdD1jbj4+PjEzO2VlLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5ndGg9MTk7dmFyIGtuPShWKyhUPU1hdGguaW11bChDZSxObikpfDApKygoODE5MSYoUz0oUz1NYXRoLmlt''@;'; put 'put ''dWwoQ2UsYm4pKStNYXRoLmltdWwoRGUsTm4pfDApKTw8MTMpfDA7Vj0oKEY9TWF0aC5pbXVsKERlLGJuKSkrKFM+Pj4xMyl8MCkrKGtuPj4+MjYpfDAsa24mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKFFlLE5uKSxTPShTPU1hdGguaW11bChRZSxibikpK01hdGguaW11bCgkZSxObil8MCxGPU1h''@;'; put 'put ''dGguaW11bCgkZSxibik7dmFyIFZuPShWKyhUPVQrTWF0aC5pbXVsKENlLHNyKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsWG4pfDApK01hdGguaW11bChEZSxzcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxYbil8MCkrKFM+Pj4xMyl8MCkrKFZuPj4+MjYp''@;'; put 'put ''fDAsVm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKHd0LE5uKSxTPShTPU1hdGguaW11bCh3dCxibikpK01hdGguaW11bChtdCxObil8MCxGPU1hdGguaW11bChtdCxibiksVD1UK01hdGguaW11bChRZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLFhuKXwwKStNYXRoLmltdWwoJGUsc3IpfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bCgkZSxYbil8MDt2YXIgZW49KFYrKFQ9VCtNYXRoLmltdWwoQ2UseHIpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSxxdCl8MCkrTWF0aC5pbXVsKERlLHhyKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHF0KXwwKSsoUz4+PjEzKXwwKSso''@;'; put 'put ''ZW4+Pj4yNil8MCxlbiY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQXQsTm4pLFM9KFM9TWF0aC5pbXVsKEF0LGJuKSkrTWF0aC5pbXVsKGh0LE5uKXwwLEY9TWF0aC5pbXVsKGh0LGJuKSxUPVQrTWF0aC5pbXVsKHd0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsWG4pfDApK01hdGguaW11bCht''@;'; put 'put ''dCxzcil8MCxGPUYrTWF0aC5pbXVsKG10LFhuKXwwLFQ9VCtNYXRoLmltdWwoUWUseHIpfDAsUz0oUz1TK01hdGguaW11bChRZSxxdCl8MCkrTWF0aC5pbXVsKCRlLHhyKXwwLEY9RitNYXRoLmltdWwoJGUscXQpfDA7dmFyIEluPShWKyhUPVQrTWF0aC5pbXVsKENlLG5yKXwwKXwwKSsoKDgx''@;'; put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQW4pfDApK01hdGguaW11bChEZSxucil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxBbil8MCkrKFM+Pj4xMyl8MCkrKEluPj4+MjYpfDAsSW4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKG9uLE5uKSxTPShTPU1hdGguaW11bChvbixibikp''@;'; put 'put ''K01hdGguaW11bChfdCxObil8MCxGPU1hdGguaW11bChfdCxibiksVD1UK01hdGguaW11bChBdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LFhuKXwwKStNYXRoLmltdWwoaHQsc3IpfDAsRj1GK01hdGguaW11bChodCxYbil8MCxUPVQrTWF0aC5pbXVsKHd0LHhyKXwwLFM9KFM9UytNYXRo''@;'; put 'put ''LmltdWwod3QscXQpfDApK01hdGguaW11bChtdCx4cil8MCxGPUYrTWF0aC5pbXVsKG10LHF0KXwwLFQ9VCtNYXRoLmltdWwoUWUsbnIpfDAsUz0oUz1TK01hdGguaW11bChRZSxBbil8MCkrTWF0aC5pbXVsKCRlLG5yKXwwLEY9RitNYXRoLmltdWwoJGUsQW4pfDA7dmFyIEpuPShWKyhUPVQr''@;'; put 'put ''TWF0aC5pbXVsKENlLFd0KXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UscG4pfDApK01hdGguaW11bChEZSxXdCl8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxwbil8MCkrKFM+Pj4xMyl8MCkrKEpuPj4+MjYpfDAsSm4mPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGV0''@;'; put 'put ''LE5uKSxTPShTPU1hdGguaW11bChldCxibikpK01hdGguaW11bChsdCxObil8MCxGPU1hdGguaW11bChsdCxibiksVD1UK01hdGguaW11bChvbixzcil8MCxTPShTPVMrTWF0aC5pbXVsKG9uLFhuKXwwKStNYXRoLmltdWwoX3Qsc3IpfDAsRj1GK01hdGguaW11bChfdCxYbil8MCxUPVQrTWF0''@;'; put 'put ''aC5pbXVsKEF0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoQXQscXQpfDApK01hdGguaW11bChodCx4cil8MCxGPUYrTWF0aC5pbXVsKGh0LHF0KXwwLFQ9VCtNYXRoLmltdWwod3QsbnIpfDAsUz0oUz1TK01hdGguaW11bCh3dCxBbil8MCkrTWF0aC5pbXVsKG10LG5yKXwwLEY9RitNYXRoLmlt''@;'; put 'put ''dWwobXQsQW4pfDAsVD1UK01hdGguaW11bChRZSxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKFFlLHBuKXwwKStNYXRoLmltdWwoJGUsV3QpfDAsRj1GK01hdGguaW11bCgkZSxwbil8MDt2YXIgb3I9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsTnQpfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11''@;'; put 'put ''bChDZSxzbil8MCkrTWF0aC5pbXVsKERlLE50KXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHNuKXwwKSsoUz4+PjEzKXwwKSsob3I+Pj4yNil8MCxvciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoQ3QsTm4pLFM9KFM9TWF0aC5pbXVsKEN0LGJuKSkrTWF0aC5pbXVsKGZ0LE5uKXww''@;'; put 'put ''LEY9TWF0aC5pbXVsKGZ0LGJuKSxUPVQrTWF0aC5pbXVsKGV0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsWG4pfDApK01hdGguaW11bChsdCxzcil8MCxGPUYrTWF0aC5pbXVsKGx0LFhuKXwwLFQ9VCtNYXRoLmltdWwob24seHIpfDAsUz0oUz1TK01hdGguaW11bChvbixxdCl8MCkrTWF0''@;'; put 'put ''aC5pbXVsKF90LHhyKXwwLEY9RitNYXRoLmltdWwoX3QscXQpfDAsVD1UK01hdGguaW11bChBdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LEFuKXwwKStNYXRoLmltdWwoaHQsbnIpfDAsRj1GK01hdGguaW11bChodCxBbil8MCxUPVQrTWF0aC5pbXVsKHd0LFd0KXwwLFM9KFM9UytNYXRo''@;'; put 'put ''LmltdWwod3QscG4pfDApK01hdGguaW11bChtdCxXdCl8MCxGPUYrTWF0aC5pbXVsKG10LHBuKXwwLFQ9VCtNYXRoLmltdWwoUWUsTnQpfDAsUz0oUz1TK01hdGguaW11bChRZSxzbil8MCkrTWF0aC5pbXVsKCRlLE50KXwwLEY9RitNYXRoLmltdWwoJGUsc24pfDA7dmFyIGdyPShWKyhUPVQr''@;'; put 'put ''TWF0aC5pbXVsKENlLHduKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsdG4pfDApK01hdGguaW11bChEZSx3bil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSx0bil8MCkrKFM+Pj4xMyl8MCkrKGdyPj4+MjYpfDAsZ3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKEdl''@;'; put 'put ''LE5uKSxTPShTPU1hdGguaW11bChHZSxibikpK01hdGguaW11bChVZSxObil8MCxGPU1hdGguaW11bChVZSxibiksVD1UK01hdGguaW11bChDdCxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LFhuKXwwKStNYXRoLmltdWwoZnQsc3IpfDAsRj1GK01hdGguaW11bChmdCxYbil8MCxUPVQrTWF0''@;'; put 'put ''aC5pbXVsKGV0LHhyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQscXQpfDApK01hdGguaW11bChsdCx4cil8MCxGPUYrTWF0aC5pbXVsKGx0LHF0KXwwLFQ9VCtNYXRoLmltdWwob24sbnIpfDAsUz0oUz1TK01hdGguaW11bChvbixBbil8MCkrTWF0aC5pbXVsKF90LG5yKXwwLEY9RitNYXRoLmlt''@;'; put 'put ''dWwoX3QsQW4pfDAsVD1UK01hdGguaW11bChBdCxXdCl8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHBuKXwwKStNYXRoLmltdWwoaHQsV3QpfDAsRj1GK01hdGguaW11bChodCxwbil8MCxUPVQrTWF0aC5pbXVsKHd0LE50KXwwLFM9KFM9UytNYXRoLmltdWwod3Qsc24pfDApK01hdGguaW11bCht''@;'; put 'put ''dCxOdCl8MCxGPUYrTWF0aC5pbXVsKG10LHNuKXwwLFQ9VCtNYXRoLmltdWwoUWUsd24pfDAsUz0oUz1TK01hdGguaW11bChRZSx0bil8MCkrTWF0aC5pbXVsKCRlLHduKXwwLEY9RitNYXRoLmltdWwoJGUsdG4pfDA7dmFyIEtyPShWKyhUPVQrTWF0aC5pbXVsKENlLFRyKXwwKXwwKSsoKDgx''@;'; put 'put ''OTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsQm4pfDApK01hdGguaW11bChEZSxUcil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxCbil8MCkrKFM+Pj4xMyl8MCkrKEtyPj4+MjYpfDAsS3ImPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGp0LE5uKSxTPShTPU1hdGguaW11bChqdCxibikp''@;'; put 'put ''K01hdGguaW11bChKdCxObil8MCxGPU1hdGguaW11bChKdCxibiksVD1UK01hdGguaW11bChHZSxzcil8MCxTPShTPVMrTWF0aC5pbXVsKEdlLFhuKXwwKStNYXRoLmltdWwoVWUsc3IpfDAsRj1GK01hdGguaW11bChVZSxYbil8MCxUPVQrTWF0aC5pbXVsKEN0LHhyKXwwLFM9KFM9UytNYXRo''@;'; put 'put ''LmltdWwoQ3QscXQpfDApK01hdGguaW11bChmdCx4cil8MCxGPUYrTWF0aC5pbXVsKGZ0LHF0KXwwLFQ9VCtNYXRoLmltdWwoZXQsbnIpfDAsUz0oUz1TK01hdGguaW11bChldCxBbil8MCkrTWF0aC5pbXVsKGx0LG5yKXwwLEY9RitNYXRoLmltdWwobHQsQW4pfDAsVD1UK01hdGguaW11bChv''@;'; put 'put ''bixXdCl8MCxTPShTPVMrTWF0aC5pbXVsKG9uLHBuKXwwKStNYXRoLmltdWwoX3QsV3QpfDAsRj1GK01hdGguaW11bChfdCxwbil8MCxUPVQrTWF0aC5pbXVsKEF0LE50KXwwLFM9KFM9UytNYXRoLmltdWwoQXQsc24pfDApK01hdGguaW11bChodCxOdCl8MCxGPUYrTWF0aC5pbXVsKGh0LHNu''@;'; put 'put ''KXwwLFQ9VCtNYXRoLmltdWwod3Qsd24pfDAsUz0oUz1TK01hdGguaW11bCh3dCx0bil8MCkrTWF0aC5pbXVsKG10LHduKXwwLEY9RitNYXRoLmltdWwobXQsdG4pfDAsVD1UK01hdGguaW11bChRZSxUcil8MCxTPShTPVMrTWF0aC5pbXVsKFFlLEJuKXwwKStNYXRoLmltdWwoJGUsVHIpfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bCgkZSxCbil8MDt2YXIgVnI9KFYrKFQ9VCtNYXRoLmltdWwoQ2UsbW4pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChDZSx1bil8MCkrTWF0aC5pbXVsKERlLG1uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKERlLHVuKXwwKSsoUz4+PjEzKXwwKSso''@;'; put 'put ''VnI+Pj4yNil8MCxWciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTm4pLFM9KFM9TWF0aC5pbXVsKGRuLGJuKSkrTWF0aC5pbXVsKHluLE5uKXwwLEY9TWF0aC5pbXVsKHluLGJuKSxUPVQrTWF0aC5pbXVsKGp0LHNyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsWG4pfDApK01hdGguaW11bChK''@;'; put 'put ''dCxzcil8MCxGPUYrTWF0aC5pbXVsKEp0LFhuKXwwLFQ9VCtNYXRoLmltdWwoR2UseHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxxdCl8MCkrTWF0aC5pbXVsKFVlLHhyKXwwLEY9RitNYXRoLmltdWwoVWUscXQpfDAsVD1UK01hdGguaW11bChDdCxucil8MCxTPShTPVMrTWF0aC5pbXVsKEN0''@;'; put 'put ''LEFuKXwwKStNYXRoLmltdWwoZnQsbnIpfDAsRj1GK01hdGguaW11bChmdCxBbil8MCxUPVQrTWF0aC5pbXVsKGV0LFd0KXwwLFM9KFM9UytNYXRoLmltdWwoZXQscG4pfDApK01hdGguaW11bChsdCxXdCl8MCxGPUYrTWF0aC5pbXVsKGx0LHBuKXwwLFQ9VCtNYXRoLmltdWwob24sTnQpfDAs''@;'; put 'put ''Uz0oUz1TK01hdGguaW11bChvbixzbil8MCkrTWF0aC5pbXVsKF90LE50KXwwLEY9RitNYXRoLmltdWwoX3Qsc24pfDAsVD1UK01hdGguaW11bChBdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEF0LHRuKXwwKStNYXRoLmltdWwoaHQsd24pfDAsRj1GK01hdGguaW11bChodCx0bil8MCxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKHd0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwod3QsQm4pfDApK01hdGguaW11bChtdCxUcil8MCxGPUYrTWF0aC5pbXVsKG10LEJuKXwwLFQ9VCtNYXRoLmltdWwoUWUsbW4pfDAsUz0oUz1TK01hdGguaW11bChRZSx1bil8MCkrTWF0aC5pbXVsKCRlLG1uKXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoJGUsdW4pfDA7dmFyIGlpPShWKyhUPVQrTWF0aC5pbXVsKENlLF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ2UsR3QpfDApK01hdGguaW11bChEZSxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChEZSxHdCl8MCkrKFM+Pj4xMyl8MCkrKGlpPj4+MjYp''@;'; put 'put ''fDAsaWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLHNyKSxTPShTPU1hdGguaW11bChkbixYbikpK01hdGguaW11bCh5bixzcil8MCxGPU1hdGguaW11bCh5bixYbiksVD1UK01hdGguaW11bChqdCx4cil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHF0KXwwKStNYXRoLmltdWwoSnQseHIpfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bChKdCxxdCl8MCxUPVQrTWF0aC5pbXVsKEdlLG5yKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsQW4pfDApK01hdGguaW11bChVZSxucil8MCxGPUYrTWF0aC5pbXVsKFVlLEFuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsV3QpfDAsUz0oUz1TK01hdGguaW11bChDdCxwbil8MCkr''@;'; put 'put ''TWF0aC5pbXVsKGZ0LFd0KXwwLEY9RitNYXRoLmltdWwoZnQscG4pfDAsVD1UK01hdGguaW11bChldCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGV0LHNuKXwwKStNYXRoLmltdWwobHQsTnQpfDAsRj1GK01hdGguaW11bChsdCxzbil8MCxUPVQrTWF0aC5pbXVsKG9uLHduKXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwob24sdG4pfDApK01hdGguaW11bChfdCx3bil8MCxGPUYrTWF0aC5pbXVsKF90LHRuKXwwLFQ9VCtNYXRoLmltdWwoQXQsVHIpfDAsUz0oUz1TK01hdGguaW11bChBdCxCbil8MCkrTWF0aC5pbXVsKGh0LFRyKXwwLEY9RitNYXRoLmltdWwoaHQsQm4pfDAsVD1UK01hdGguaW11''@;'; put 'put ''bCh3dCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKHd0LHVuKXwwKStNYXRoLmltdWwobXQsbW4pfDAsRj1GK01hdGguaW11bChtdCx1bil8MDt2YXIgUnI9KFYrKFQ9VCtNYXRoLmltdWwoUWUsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChRZSxHdCl8MCkrTWF0aC5pbXVsKCRl''@;'; put 'put ''LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKCRlLEd0KXwwKSsoUz4+PjEzKXwwKSsoUnI+Pj4yNil8MCxSciY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4seHIpLFM9KFM9TWF0aC5pbXVsKGRuLHF0KSkrTWF0aC5pbXVsKHluLHhyKXwwLEY9TWF0aC5pbXVsKHluLHF0KSxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKGp0LG5yKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQW4pfDApK01hdGguaW11bChKdCxucil8MCxGPUYrTWF0aC5pbXVsKEp0LEFuKXwwLFQ9VCtNYXRoLmltdWwoR2UsV3QpfDAsUz0oUz1TK01hdGguaW11bChHZSxwbil8MCkrTWF0aC5pbXVsKFVlLFd0KXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoVWUscG4pfDAsVD1UK01hdGguaW11bChDdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHNuKXwwKStNYXRoLmltdWwoZnQsTnQpfDAsRj1GK01hdGguaW11bChmdCxzbil8MCxUPVQrTWF0aC5pbXVsKGV0LHduKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsdG4pfDApK01hdGguaW11''@;'; put 'put ''bChsdCx3bil8MCxGPUYrTWF0aC5pbXVsKGx0LHRuKXwwLFQ9VCtNYXRoLmltdWwob24sVHIpfDAsUz0oUz1TK01hdGguaW11bChvbixCbil8MCkrTWF0aC5pbXVsKF90LFRyKXwwLEY9RitNYXRoLmltdWwoX3QsQm4pfDAsVD1UK01hdGguaW11bChBdCxtbil8MCxTPShTPVMrTWF0aC5pbXVs''@;'; put 'put ''KEF0LHVuKXwwKStNYXRoLmltdWwoaHQsbW4pfDAsRj1GK01hdGguaW11bChodCx1bil8MDt2YXIgbGk9KFYrKFQ9VCtNYXRoLmltdWwod3QsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bCh3dCxHdCl8MCkrTWF0aC5pbXVsKG10LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0''@;'; put 'put ''aC5pbXVsKG10LEd0KXwwKSsoUz4+PjEzKXwwKSsobGk+Pj4yNil8MCxsaSY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbnIpLFM9KFM9TWF0aC5pbXVsKGRuLEFuKSkrTWF0aC5pbXVsKHluLG5yKXwwLEY9TWF0aC5pbXVsKHluLEFuKSxUPVQrTWF0aC5pbXVsKGp0LFd0KXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoanQscG4pfDApK01hdGguaW11bChKdCxXdCl8MCxGPUYrTWF0aC5pbXVsKEp0LHBuKXwwLFQ9VCtNYXRoLmltdWwoR2UsTnQpfDAsUz0oUz1TK01hdGguaW11bChHZSxzbil8MCkrTWF0aC5pbXVsKFVlLE50KXwwLEY9RitNYXRoLmltdWwoVWUsc24pfDAsVD1UK01hdGguaW11''@;'; put 'put ''bChDdCx3bil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHRuKXwwKStNYXRoLmltdWwoZnQsd24pfDAsRj1GK01hdGguaW11bChmdCx0bil8MCxUPVQrTWF0aC5pbXVsKGV0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoZXQsQm4pfDApK01hdGguaW11bChsdCxUcil8MCxGPUYrTWF0aC5pbXVsKGx0''@;'; put 'put ''LEJuKXwwLFQ9VCtNYXRoLmltdWwob24sbW4pfDAsUz0oUz1TK01hdGguaW11bChvbix1bil8MCkrTWF0aC5pbXVsKF90LG1uKXwwLEY9RitNYXRoLmltdWwoX3QsdW4pfDA7dmFyIE1pPShWKyhUPVQrTWF0aC5pbXVsKEF0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQXQs''@;'; put 'put ''R3QpfDApK01hdGguaW11bChodCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChodCxHdCl8MCkrKFM+Pj4xMyl8MCkrKE1pPj4+MjYpfDAsTWkmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFd0KSxTPShTPU1hdGguaW11bChkbixwbikpK01hdGguaW11bCh5bixXdCl8MCxGPU1h''@;'; put 'put ''dGguaW11bCh5bixwbiksVD1UK01hdGguaW11bChqdCxOdCl8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHNuKXwwKStNYXRoLmltdWwoSnQsTnQpfDAsRj1GK01hdGguaW11bChKdCxzbil8MCxUPVQrTWF0aC5pbXVsKEdlLHduKXwwLFM9KFM9UytNYXRoLmltdWwoR2UsdG4pfDApK01hdGguaW11''@;'; put 'put ''bChVZSx3bil8MCxGPUYrTWF0aC5pbXVsKFVlLHRuKXwwLFQ9VCtNYXRoLmltdWwoQ3QsVHIpfDAsUz0oUz1TK01hdGguaW11bChDdCxCbil8MCkrTWF0aC5pbXVsKGZ0LFRyKXwwLEY9RitNYXRoLmltdWwoZnQsQm4pfDAsVD1UK01hdGguaW11bChldCxtbil8MCxTPShTPVMrTWF0aC5pbXVs''@;'; put 'put ''KGV0LHVuKXwwKStNYXRoLmltdWwobHQsbW4pfDAsRj1GK01hdGguaW11bChsdCx1bil8MDt2YXIgbzA9KFYrKFQ9VCtNYXRoLmltdWwob24sX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChvbixHdCl8MCkrTWF0aC5pbXVsKF90LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0''@;'; put 'put ''aC5pbXVsKF90LEd0KXwwKSsoUz4+PjEzKXwwKSsobzA+Pj4yNil8MCxvMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sTnQpLFM9KFM9TWF0aC5pbXVsKGRuLHNuKSkrTWF0aC5pbXVsKHluLE50KXwwLEY9TWF0aC5pbXVsKHluLHNuKSxUPVQrTWF0aC5pbXVsKGp0LHduKXwwLFM9KFM9UytN''@;'; put 'put ''YXRoLmltdWwoanQsdG4pfDApK01hdGguaW11bChKdCx3bil8MCxGPUYrTWF0aC5pbXVsKEp0LHRuKXwwLFQ9VCtNYXRoLmltdWwoR2UsVHIpfDAsUz0oUz1TK01hdGguaW11bChHZSxCbil8MCkrTWF0aC5pbXVsKFVlLFRyKXwwLEY9RitNYXRoLmltdWwoVWUsQm4pfDAsVD1UK01hdGguaW11''@;'; put 'put ''bChDdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKEN0LHVuKXwwKStNYXRoLmltdWwoZnQsbW4pfDAsRj1GK01hdGguaW11bChmdCx1bil8MDt2YXIgbjA9KFYrKFQ9VCtNYXRoLmltdWwoZXQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChldCxHdCl8MCkrTWF0aC5pbXVsKGx0''@;'; put 'put ''LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKGx0LEd0KXwwKSsoUz4+PjEzKXwwKSsobjA+Pj4yNil8MCxuMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sd24pLFM9KFM9TWF0aC5pbXVsKGRuLHRuKSkrTWF0aC5pbXVsKHluLHduKXwwLEY9TWF0aC5pbXVsKHluLHRuKSxUPVQr''@;'; put 'put ''TWF0aC5pbXVsKGp0LFRyKXwwLFM9KFM9UytNYXRoLmltdWwoanQsQm4pfDApK01hdGguaW11bChKdCxUcil8MCxGPUYrTWF0aC5pbXVsKEp0LEJuKXwwLFQ9VCtNYXRoLmltdWwoR2UsbW4pfDAsUz0oUz1TK01hdGguaW11bChHZSx1bil8MCkrTWF0aC5pbXVsKFVlLG1uKXwwLEY9RitNYXRo''@;'; put 'put ''LmltdWwoVWUsdW4pfDA7dmFyIGQwPShWKyhUPVQrTWF0aC5pbXVsKEN0LF9uKXwwKXwwKSsoKDgxOTEmKFM9KFM9UytNYXRoLmltdWwoQ3QsR3QpfDApK01hdGguaW11bChmdCxfbil8MCkpPDwxMyl8MDtWPSgoRj1GK01hdGguaW11bChmdCxHdCl8MCkrKFM+Pj4xMyl8MCkrKGQwPj4+MjYp''@;'; put 'put ''fDAsZDAmPTY3MTA4ODYzLFQ9TWF0aC5pbXVsKGRuLFRyKSxTPShTPU1hdGguaW11bChkbixCbikpK01hdGguaW11bCh5bixUcil8MCxGPU1hdGguaW11bCh5bixCbiksVD1UK01hdGguaW11bChqdCxtbil8MCxTPShTPVMrTWF0aC5pbXVsKGp0LHVuKXwwKStNYXRoLmltdWwoSnQsbW4pfDAs''@;'; put 'put ''Rj1GK01hdGguaW11bChKdCx1bil8MDt2YXIgbTA9KFYrKFQ9VCtNYXRoLmltdWwoR2UsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11bChHZSxHdCl8MCkrTWF0aC5pbXVsKFVlLF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKFVlLEd0KXwwKSsoUz4+PjEzKXwwKSso''@;'; put 'put ''bTA+Pj4yNil8MCxtMCY9NjcxMDg4NjMsVD1NYXRoLmltdWwoZG4sbW4pLFM9KFM9TWF0aC5pbXVsKGRuLHVuKSkrTWF0aC5pbXVsKHluLG1uKXwwLEY9TWF0aC5pbXVsKHluLHVuKTt2YXIgRzA9KFYrKFQ9VCtNYXRoLmltdWwoanQsX24pfDApfDApKygoODE5MSYoUz0oUz1TK01hdGguaW11''@;'; put 'put ''bChqdCxHdCl8MCkrTWF0aC5pbXVsKEp0LF9uKXwwKSk8PDEzKXwwO1Y9KChGPUYrTWF0aC5pbXVsKEp0LEd0KXwwKSsoUz4+PjEzKXwwKSsoRzA+Pj4yNil8MCxHMCY9NjcxMDg4NjM7dmFyIERpPShWKyhUPU1hdGguaW11bChkbixfbikpfDApKygoODE5MSYoUz0oUz1NYXRoLmltdWwoZG4s''@;'; put 'put ''R3QpKStNYXRoLmltdWwoeW4sX24pfDApKTw8MTMpfDA7cmV0dXJuIFY9KChGPU1hdGguaW11bCh5bixHdCkpKyhTPj4+MTMpfDApKyhEaT4+PjI2KXwwLERpJj02NzEwODg2MyxQWzBdPWtuLFBbMV09Vm4sUFsyXT1lbixQWzNdPUluLFBbNF09Sm4sUFs1XT1vcixQWzZdPWdyLFBbN109S3Is''@;'; put 'put ''UFs4XT1WcixQWzldPWlpLFBbMTBdPVJyLFBbMTFdPWxpLFBbMTJdPU1pLFBbMTNdPW8wLFBbMTRdPW4wLFBbMTVdPWQwLFBbMTZdPW0wLFBbMTddPUcwLFBbMThdPURpLDAhPT1WJiYoUFsxOV09VixlZS5sZW5ndGgrKyksZWV9O2Z1bmN0aW9uIG9lKGhlLE8seil7cmV0dXJuKG5ldyBjZSku''@;'; put 'put ''bXVscChoZSxPLHopfWZ1bmN0aW9uIGNlKGhlLE8pe3RoaXMueD1oZSx0aGlzLnk9T31NYXRoLmltdWx8fChKPUspLFUucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRoaXMubGVuZ3RoK08ubGVuZ3RoO3JldHVybiBlZT0xMD09PXRoaXMubGVuZ3RoJiYxMD09PU8u''@;'; put 'put ''bGVuZ3RoP0oodGhpcyxPLHopOm5lPDYzP0sodGhpcyxPLHopOm5lPDEwMjQ/ZnVuY3Rpb24gc2UoaGUsTyx6KXt6Lm5lZ2F0aXZlPU8ubmVnYXRpdmVeaGUubmVnYXRpdmUsei5sZW5ndGg9aGUubGVuZ3RoK08ubGVuZ3RoO2Zvcih2YXIgZWU9MCxuZT0wLHg9MDt4PHoubGVuZ3RoLTE7eCsr''@;'; put 'put ''KXt2YXIgUD1uZTtuZT0wO2Zvcih2YXIgVj02NzEwODg2MyZlZSxUPU1hdGgubWluKHgsTy5sZW5ndGgtMSksUz1NYXRoLm1heCgwLHgtaGUubGVuZ3RoKzEpO1M8PVQ7UysrKXt2YXIgRGU9KDB8aGUud29yZHNbeC1TXSkqKDB8Ty53b3Jkc1tTXSksUGU9NjcxMDg4NjMmRGU7Vj02NzEwODg2''@;'; put 'put ''MyYoUGU9UGUrVnwwKSxuZSs9KFA9KFA9UCsoRGUvNjcxMDg4NjR8MCl8MCkrKFBlPj4+MjYpfDApPj4+MjYsUCY9NjcxMDg4NjN9ei53b3Jkc1t4XT1WLGVlPVAsUD1uZX1yZXR1cm4gMCE9PWVlP3oud29yZHNbeF09ZWU6ei5sZW5ndGgtLSx6LnN0cmlwKCl9KHRoaXMsTyx6KTpvZSh0aGlz''@;'; put 'put ''LE8seiksZWV9LGNlLnByb3RvdHlwZS5tYWtlUkJUPWZ1bmN0aW9uKE8pe2Zvcih2YXIgej1uZXcgQXJyYXkoTyksZWU9VS5wcm90b3R5cGUuX2NvdW50Qml0cyhPKS0xLG5lPTA7bmU8TztuZSsrKXpbbmVdPXRoaXMucmV2QmluKG5lLGVlLE8pO3JldHVybiB6fSxjZS5wcm90b3R5cGUucmV2''@;'; put 'put ''QmluPWZ1bmN0aW9uKE8seixlZSl7aWYoMD09PU98fE89PT1lZS0xKXJldHVybiBPO2Zvcih2YXIgbmU9MCx4PTA7eDx6O3grKyluZXw9KDEmTyk8PHoteC0xLE8+Pj0xO3JldHVybiBuZX0sY2UucHJvdG90eXBlLnBlcm11dGU9ZnVuY3Rpb24oTyx6LGVlLG5lLHgsUCl7Zm9yKHZhciBWPTA7''@;'; put 'put ''VjxQO1YrKyluZVtWXT16W09bVl1dLHhbVl09ZWVbT1tWXV19LGNlLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24oTyx6LGVlLG5lLHgsUCl7dGhpcy5wZXJtdXRlKFAsTyx6LGVlLG5lLHgpO2Zvcih2YXIgVj0xO1Y8eDtWPDw9MSlmb3IodmFyIFQ9Vjw8MSxTPU1hdGguY29zKDIqTWF0''@;'; put 'put ''aC5QSS9UKSxGPU1hdGguc2luKDIqTWF0aC5QSS9UKSx5ZT0wO3llPHg7eWUrPVQpZm9yKHZhciBDZT1TLERlPUYsUGU9MDtQZTxWO1BlKyspe3ZhciBRZT1lZVt5ZStQZV0sJGU9bmVbeWUrUGVdLGd0PWVlW3llK1BlK1ZdLHd0PW5lW3llK1BlK1ZdLG10PUNlKmd0LURlKnd0O3d0PUNlKnd0''@;'; put 'put ''K0RlKmd0LGVlW3llK1BlXT1RZSsoZ3Q9bXQpLG5lW3llK1BlXT0kZSt3dCxlZVt5ZStQZStWXT1RZS1ndCxuZVt5ZStQZStWXT0kZS13dCxQZSE9PVQmJihtdD1TKkNlLUYqRGUsRGU9UypEZStGKkNlLENlPW10KX19LGNlLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbihPLHope3Zh''@;'; put 'put ''ciBlZT0xfE1hdGgubWF4KHosTyksbmU9MSZlZSx4PTA7Zm9yKGVlPWVlLzJ8MDtlZTtlZT4+Pj0xKXgrKztyZXR1cm4gMTw8eCsxK25lfSxjZS5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKE8seixlZSl7aWYoIShlZTw9MSkpZm9yKHZhciBuZT0wO25lPGVlLzI7bmUrKyl7dmFyIHg9''@;'; put 'put ''T1tuZV07T1tuZV09T1tlZS1uZS0xXSxPW2VlLW5lLTFdPXgseD16W25lXSx6W25lXT0teltlZS1uZS0xXSx6W2VlLW5lLTFdPS14fX0sY2UucHJvdG90eXBlLm5vcm1hbGl6ZTEzYj1mdW5jdGlvbihPLHope2Zvcih2YXIgZWU9MCxuZT0wO25lPHovMjtuZSsrKXt2YXIgeD04MTkyKk1hdGgu''@;'; put 'put ''cm91bmQoT1syKm5lKzFdL3opK01hdGgucm91bmQoT1syKm5lXS96KStlZTtPW25lXT02NzEwODg2MyZ4LGVlPXg8NjcxMDg4NjQ/MDp4LzY3MTA4ODY0fDB9cmV0dXJuIE99LGNlLnByb3RvdHlwZS5jb252ZXJ0MTNiPWZ1bmN0aW9uKE8seixlZSxuZSl7Zm9yKHZhciB4PTAsUD0wO1A8ejtQ''@;'; put 'put ''KyspZWVbMipQXT04MTkxJih4Kz0wfE9bUF0pLGVlWzIqUCsxXT04MTkxJih4Pj4+PTEzKSx4Pj4+PTEzO2ZvcihQPTIqejtQPG5lOysrUCllZVtQXT0wO0UoMD09PXgpLEUoMD09KC04MTkyJngpKX0sY2UucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24oTyl7Zm9yKHZhciB6PW5ldyBBcnJheShP''@;'; put 'put ''KSxlZT0wO2VlPE87ZWUrKyl6W2VlXT0wO3JldHVybiB6fSxjZS5wcm90b3R5cGUubXVscD1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT0yKnRoaXMuZ3Vlc3NMZW4xM2IoTy5sZW5ndGgsei5sZW5ndGgpLHg9dGhpcy5tYWtlUkJUKG5lKSxQPXRoaXMuc3R1YihuZSksVj1uZXcgQXJyYXkobmUp''@;'; put 'put ''LFQ9bmV3IEFycmF5KG5lKSxTPW5ldyBBcnJheShuZSksRj1uZXcgQXJyYXkobmUpLHllPW5ldyBBcnJheShuZSksQ2U9bmV3IEFycmF5KG5lKSxEZT1lZS53b3JkcztEZS5sZW5ndGg9bmUsdGhpcy5jb252ZXJ0MTNiKE8ud29yZHMsTy5sZW5ndGgsVixuZSksdGhpcy5jb252ZXJ0MTNiKHou''@;'; put 'put ''d29yZHMsei5sZW5ndGgsRixuZSksdGhpcy50cmFuc2Zvcm0oVixQLFQsUyxuZSx4KSx0aGlzLnRyYW5zZm9ybShGLFAseWUsQ2UsbmUseCk7Zm9yKHZhciBQZT0wO1BlPG5lO1BlKyspe3ZhciBRZT1UW1BlXSp5ZVtQZV0tU1tQZV0qQ2VbUGVdO1NbUGVdPVRbUGVdKkNlW1BlXStTW1BlXSp5''@;'; put 'put ''ZVtQZV0sVFtQZV09UWV9cmV0dXJuIHRoaXMuY29uanVnYXRlKFQsUyxuZSksdGhpcy50cmFuc2Zvcm0oVCxTLERlLFAsbmUseCksdGhpcy5jb25qdWdhdGUoRGUsUCxuZSksdGhpcy5ub3JtYWxpemUxM2IoRGUsbmUpLGVlLm5lZ2F0aXZlPU8ubmVnYXRpdmVeei5uZWdhdGl2ZSxlZS5sZW5n''@;'; put 'put ''dGg9Ty5sZW5ndGgrei5sZW5ndGgsZWUuc3RyaXAoKX0sVS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksdGhpcy5tdWxUbyhPLHopfSxVLnByb3RvdHlwZS5tdWxmPWZ1bmN0''@;'; put 'put ''aW9uKE8pe3ZhciB6PW5ldyBVKG51bGwpO3JldHVybiB6LndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCtPLmxlbmd0aCksb2UodGhpcyxPLHopfSxVLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkubXVsVG8oTyx0aGlzKX0sVS5wcm90b3R5cGUuaW11''@;'; put 'put ''bG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCk7Zm9yKHZhciB6PTAsZWU9MDtlZTx0aGlzLmxlbmd0aDtlZSsrKXt2YXIgbmU9KDB8dGhpcy53b3Jkc1tlZV0pKk8seD0oNjcxMDg4NjMmbmUpKyg2NzEwODg2MyZ6KTt6Pj49MjYseis9bmUvNjcxMDg4''@;'; put 'put ''NjR8MCx6Kz14Pj4+MjYsdGhpcy53b3Jkc1tlZV09NjcxMDg4NjMmeH1yZXR1cm4gMCE9PXomJih0aGlzLndvcmRzW2VlXT16LHRoaXMubGVuZ3RoKyspLHRoaXN9LFUucHJvdG90eXBlLm11bG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbXVsbihPKX0sVS5wcm90b3R5cGUu''@;'; put 'put ''c3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubXVsKHRoaXMpfSxVLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW11bCh0aGlzLmNsb25lKCkpfSxVLnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24oTyl7dmFyIHo9ZnVuY3Rpb24gdGUoaGUpe2Zvcih2YXIgTz1uZXcgQXJy''@;'; put 'put ''YXkoaGUuYml0TGVuZ3RoKCkpLHo9MDt6PE8ubGVuZ3RoO3orKyl7dmFyIG5lPXolMjY7T1t6XT0oaGUud29yZHNbei8yNnwwXSYxPDxuZSk+Pj5uZX1yZXR1cm4gT30oTyk7aWYoMD09PXoubGVuZ3RoKXJldHVybiBuZXcgVSgxKTtmb3IodmFyIGVlPXRoaXMsbmU9MDtuZTx6Lmxlbmd0aCYm''@;'; put 'put ''MD09PXpbbmVdO25lKyssZWU9ZWUuc3FyKCkpO2lmKCsrbmU8ei5sZW5ndGgpZm9yKHZhciB4PWVlLnNxcigpO25lPHoubGVuZ3RoO25lKysseD14LnNxcigpKTAhPT16W25lXSYmKGVlPWVlLm11bCh4KSk7cmV0dXJuIGVlfSxVLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24oTyl7RSgibnVt''@;'; put 'put ''YmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB4LHo9TyUyNixlZT0oTy16KS8yNixuZT02NzEwODg2Mz4+PjI2LXo8PDI2LXo7aWYoMCE9PXope3ZhciBQPTA7Zm9yKHg9MDt4PHRoaXMubGVuZ3RoO3grKyl7dmFyIFY9dGhpcy53b3Jkc1t4XSZuZTt0aGlzLndvcmRzW3hdPSgwfHRoaXMud29y''@;'; put 'put ''ZHNbeF0pLVY8PHp8UCxQPVY+Pj4yNi16fVAmJih0aGlzLndvcmRzW3hdPVAsdGhpcy5sZW5ndGgrKyl9aWYoMCE9PWVlKXtmb3IoeD10aGlzLmxlbmd0aC0xO3g+PTA7eC0tKXRoaXMud29yZHNbeCtlZV09dGhpcy53b3Jkc1t4XTtmb3IoeD0wO3g8ZWU7eCsrKXRoaXMud29yZHNbeF09MDt0''@;'; put 'put ''aGlzLmxlbmd0aCs9ZWV9cmV0dXJuIHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24oTyl7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKE8pfSxVLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU7RSgibnVtYmVyIj09''@;'; put 'put ''dHlwZW9mIE8mJk8+PTApLG5lPXo/KHoteiUyNikvMjY6MDt2YXIgeD1PJTI2LFA9TWF0aC5taW4oKE8teCkvMjYsdGhpcy5sZW5ndGgpLFY9NjcxMDg4NjNeNjcxMDg4NjM+Pj54PDx4LFQ9ZWU7aWYobmUtPVAsbmU9TWF0aC5tYXgoMCxuZSksVCl7Zm9yKHZhciBTPTA7UzxQO1MrKylULndv''@;'; put 'put ''cmRzW1NdPXRoaXMud29yZHNbU107VC5sZW5ndGg9UH1pZigwIT09UClpZih0aGlzLmxlbmd0aD5QKWZvcih0aGlzLmxlbmd0aC09UCxTPTA7Uzx0aGlzLmxlbmd0aDtTKyspdGhpcy53b3Jkc1tTXT10aGlzLndvcmRzW1MrUF07ZWxzZSB0aGlzLndvcmRzWzBdPTAsdGhpcy5sZW5ndGg9MTt2''@;'; put 'put ''YXIgRj0wO2ZvcihTPXRoaXMubGVuZ3RoLTE7Uz49MCYmKDAhPT1GfHxTPj1uZSk7Uy0tKXt2YXIgeWU9MHx0aGlzLndvcmRzW1NdO3RoaXMud29yZHNbU109Rjw8MjYteHx5ZT4+PngsRj15ZSZWfXJldHVybiBUJiYwIT09RiYmKFQud29yZHNbVC5sZW5ndGgrK109RiksMD09PXRoaXMubGVu''@;'; put 'put ''Z3RoJiYodGhpcy53b3Jkc1swXT0wLHRoaXMubGVuZ3RoPTEpLHRoaXMuc3RyaXAoKX0sVS5wcm90b3R5cGUuaXNocm49ZnVuY3Rpb24oTyx6LGVlKXtyZXR1cm4gRSgwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4oTyx6LGVlKX0sVS5wcm90b3R5cGUuc2hsbj1mdW5jdGlvbihPKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5jbG9uZSgpLmlzaGxuKE8pfSxVLnByb3RvdHlwZS51c2hsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hsbihPKX0sVS5wcm90b3R5cGUuc2hybj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzaHJuKE8pfSxVLnByb3RvdHlwZS51c2hy''@;'; put 'put ''bj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLml1c2hybihPKX0sVS5wcm90b3R5cGUudGVzdG49ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsZWU9KE8teikvMjY7cmV0dXJuISh0aGlzLmxlbmd0aDw9ZWV8fCEodGhpcy53b3Jkc1tl''@;'; put 'put ''ZV0mMTw8eikpfSxVLnByb3RvdHlwZS5pbWFza249ZnVuY3Rpb24oTyl7RSgibnVtYmVyIj09dHlwZW9mIE8mJk8+PTApO3ZhciB6PU8lMjYsZWU9KE8teikvMjY7cmV0dXJuIEUoMD09PXRoaXMubmVnYXRpdmUsImltYXNrbiB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmUgbnVtYmVycyIpLHRo''@;'; put 'put ''aXMubGVuZ3RoPD1lZT90aGlzOigwIT09eiYmZWUrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihlZSx0aGlzLmxlbmd0aCksMCE9PXomJih0aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdJj02NzEwODg2M142NzEwODg2Mz4+Pno8PHopLHRoaXMuc3RyaXAoKSl9LFUucHJvdG90eXBlLm1hc2tuPWZ1''@;'; put 'put ''bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaW1hc2tuKE8pfSxVLnByb3RvdHlwZS5pYWRkbj1mdW5jdGlvbihPKXtyZXR1cm4gRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwP3RoaXMuaXN1Ym4oLU8pOjAhPT10aGlzLm5lZ2F0aXZlPzE9PT10aGlzLmxlbmd0''@;'; put 'put ''aCYmKDB8dGhpcy53b3Jkc1swXSk8Tz8odGhpcy53b3Jkc1swXT1PLSgwfHRoaXMud29yZHNbMF0pLHRoaXMubmVnYXRpdmU9MCx0aGlzKToodGhpcy5uZWdhdGl2ZT0wLHRoaXMuaXN1Ym4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXMpOnRoaXMuX2lhZGRuKE8pfSxVLnByb3RvdHlwZS5faWFk''@;'; put 'put ''ZG49ZnVuY3Rpb24oTyl7dGhpcy53b3Jkc1swXSs9Tztmb3IodmFyIHo9MDt6PHRoaXMubGVuZ3RoJiZ0aGlzLndvcmRzW3pdPj02NzEwODg2NDt6KyspdGhpcy53b3Jkc1t6XS09NjcxMDg4NjQsej09PXRoaXMubGVuZ3RoLTE/dGhpcy53b3Jkc1t6KzFdPTE6dGhpcy53b3Jkc1t6KzFdKys7''@;'; put 'put ''cmV0dXJuIHRoaXMubGVuZ3RoPU1hdGgubWF4KHRoaXMubGVuZ3RoLHorMSksdGhpc30sVS5wcm90b3R5cGUuaXN1Ym49ZnVuY3Rpb24oTyl7aWYoRSgibnVtYmVyIj09dHlwZW9mIE8pLEUoTzw2NzEwODg2NCksTzwwKXJldHVybiB0aGlzLmlhZGRuKC1PKTtpZigwIT09dGhpcy5uZWdhdGl2''@;'; put 'put ''ZSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMuaWFkZG4oTyksdGhpcy5uZWdhdGl2ZT0xLHRoaXM7aWYodGhpcy53b3Jkc1swXS09TywxPT09dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbMF08MCl0aGlzLndvcmRzWzBdPS10aGlzLndvcmRzWzBdLHRoaXMubmVnYXRpdmU9MTtlbHNlIGZv''@;'; put 'put ''cih2YXIgej0wO3o8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbel08MDt6KyspdGhpcy53b3Jkc1t6XSs9NjcxMDg4NjQsdGhpcy53b3Jkc1t6KzFdLT0xO3JldHVybiB0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLmFkZG49ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pYWRkbihP''@;'; put 'put ''KX0sVS5wcm90b3R5cGUuc3Vibj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlzdWJuKE8pfSxVLnByb3RvdHlwZS5pYWJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmVnYXRpdmU9MCx0aGlzfSxVLnByb3RvdHlwZS5hYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgp''@;'; put 'put ''LmlhYnMoKX0sVS5wcm90b3R5cGUuX2lzaGxuc3VibXVsPWZ1bmN0aW9uKE8seixlZSl7dmFyIHg7dGhpcy5fZXhwYW5kKE8ubGVuZ3RoK2VlKTt2YXIgUCxWPTA7Zm9yKHg9MDt4PE8ubGVuZ3RoO3grKyl7UD0oMHx0aGlzLndvcmRzW3grZWVdKStWO3ZhciBUPSgwfE8ud29yZHNbeF0pKno7''@;'; put 'put ''Vj0oKFAtPTY3MTA4ODYzJlQpPj4yNiktKFQvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQfWZvcig7eDx0aGlzLmxlbmd0aC1lZTt4KyspVj0oUD0oMHx0aGlzLndvcmRzW3grZWVdKStWKT4+MjYsdGhpcy53b3Jkc1t4K2VlXT02NzEwODg2MyZQO2lmKDA9PT1WKXJl''@;'; put 'put ''dHVybiB0aGlzLnN0cmlwKCk7Zm9yKEUoLTE9PT1WKSxWPTAseD0wO3g8dGhpcy5sZW5ndGg7eCsrKVY9KFA9LSgwfHRoaXMud29yZHNbeF0pK1YpPj4yNix0aGlzLndvcmRzW3hdPTY3MTA4ODYzJlA7cmV0dXJuIHRoaXMubmVnYXRpdmU9MSx0aGlzLnN0cmlwKCl9LFUucHJvdG90eXBlLl93''@;'; put 'put ''b3JkRGl2PWZ1bmN0aW9uKE8seil7dmFyIGVlLG5lPXRoaXMuY2xvbmUoKSx4PU8sUD0wfHgud29yZHNbeC5sZW5ndGgtMV07MCE9KGVlPTI2LXRoaXMuX2NvdW50Qml0cyhQKSkmJih4PXgudXNobG4oZWUpLG5lLml1c2hsbihlZSksUD0wfHgud29yZHNbeC5sZW5ndGgtMV0pO3ZhciBTLFQ9''@;'; put 'put ''bmUubGVuZ3RoLXgubGVuZ3RoO2lmKCJtb2QiIT09eil7KFM9bmV3IFUobnVsbCkpLmxlbmd0aD1UKzEsUy53b3Jkcz1uZXcgQXJyYXkoUy5sZW5ndGgpO2Zvcih2YXIgRj0wO0Y8Uy5sZW5ndGg7RisrKVMud29yZHNbRl09MH12YXIgeWU9bmUuY2xvbmUoKS5faXNobG5zdWJtdWwoeCwxLFQp''@;'; put 'put ''OzA9PT15ZS5uZWdhdGl2ZSYmKG5lPXllLFMmJihTLndvcmRzW1RdPTEpKTtmb3IodmFyIENlPVQtMTtDZT49MDtDZS0tKXt2YXIgRGU9NjcxMDg4NjQqKDB8bmUud29yZHNbeC5sZW5ndGgrQ2VdKSsoMHxuZS53b3Jkc1t4Lmxlbmd0aCtDZS0xXSk7Zm9yKERlPU1hdGgubWluKERlL1B8MCw2''@;'; put 'put ''NzEwODg2MyksbmUuX2lzaGxuc3VibXVsKHgsRGUsQ2UpOzAhPT1uZS5uZWdhdGl2ZTspRGUtLSxuZS5uZWdhdGl2ZT0wLG5lLl9pc2hsbnN1Ym11bCh4LDEsQ2UpLG5lLmlzWmVybygpfHwobmUubmVnYXRpdmVePTEpO1MmJihTLndvcmRzW0NlXT1EZSl9cmV0dXJuIFMmJlMuc3RyaXAoKSxu''@;'; put 'put ''ZS5zdHJpcCgpLCJkaXYiIT09eiYmMCE9PWVlJiZuZS5pdXNocm4oZWUpLHtkaXY6U3x8bnVsbCxtb2Q6bmV9fSxVLnByb3RvdHlwZS5kaXZtb2Q9ZnVuY3Rpb24oTyx6LGVlKXtyZXR1cm4gRSghTy5pc1plcm8oKSksdGhpcy5pc1plcm8oKT97ZGl2Om5ldyBVKDApLG1vZDpuZXcgVSgwKX06''@;'; put 'put ''MCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlPyhQPXRoaXMubmVnKCkuZGl2bW9kKE8seiksIm1vZCIhPT16JiYobmU9UC5kaXYubmVnKCkpLCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlhZGQoTykpLHtkaXY6bmUsbW9kOnh9KTowPT09''@;'; put 'put ''dGhpcy5uZWdhdGl2ZSYmMCE9PU8ubmVnYXRpdmU/KFA9dGhpcy5kaXZtb2QoTy5uZWcoKSx6KSwibW9kIiE9PXomJihuZT1QLmRpdi5uZWcoKSkse2RpdjpuZSxtb2Q6UC5tb2R9KTowIT0odGhpcy5uZWdhdGl2ZSZPLm5lZ2F0aXZlKT8oUD10aGlzLm5lZygpLmRpdm1vZChPLm5lZygpLHop''@;'; put 'put ''LCJkaXYiIT09eiYmKHg9UC5tb2QubmVnKCksZWUmJjAhPT14Lm5lZ2F0aXZlJiZ4LmlzdWIoTykpLHtkaXY6UC5kaXYsbW9kOnh9KTpPLmxlbmd0aD50aGlzLmxlbmd0aHx8dGhpcy5jbXAoTyk8MD97ZGl2Om5ldyBVKDApLG1vZDp0aGlzfToxPT09Ty5sZW5ndGg/ImRpdiI9PT16P3tkaXY6''@;'; put 'put ''dGhpcy5kaXZuKE8ud29yZHNbMF0pLG1vZDpudWxsfToibW9kIj09PXo/e2RpdjpudWxsLG1vZDpuZXcgVSh0aGlzLm1vZG4oTy53b3Jkc1swXSkpfTp7ZGl2OnRoaXMuZGl2bihPLndvcmRzWzBdKSxtb2Q6bmV3IFUodGhpcy5tb2RuKE8ud29yZHNbMF0pKX06dGhpcy5fd29yZERpdihPLHop''@;'; put 'put ''O3ZhciBuZSx4LFB9LFUucHJvdG90eXBlLmRpdj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywiZGl2IiwhMSkuZGl2fSxVLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuZGl2bW9kKE8sIm1vZCIsITEpLm1vZH0sVS5wcm90b3R5cGUudW1vZD1mdW5jdGlv''@;'; put 'put ''bihPKXtyZXR1cm4gdGhpcy5kaXZtb2QoTywibW9kIiwhMCkubW9kfSxVLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbihPKXt2YXIgej10aGlzLmRpdm1vZChPKTtpZih6Lm1vZC5pc1plcm8oKSlyZXR1cm4gei5kaXY7dmFyIGVlPTAhPT16LmRpdi5uZWdhdGl2ZT96Lm1vZC5pc3ViKE8p''@;'; put 'put ''OnoubW9kLG5lPU8udXNocm4oMSkseD1PLmFuZGxuKDEpLFA9ZWUuY21wKG5lKTtyZXR1cm4gUDwwfHwxPT09eCYmMD09PVA/ei5kaXY6MCE9PXouZGl2Lm5lZ2F0aXZlP3ouZGl2LmlzdWJuKDEpOnouZGl2LmlhZGRuKDEpfSxVLnByb3RvdHlwZS5tb2RuPWZ1bmN0aW9uKE8pe0UoTzw9Njcx''@;'; put 'put ''MDg4NjMpO2Zvcih2YXIgej0oMTw8MjYpJU8sZWU9MCxuZT10aGlzLmxlbmd0aC0xO25lPj0wO25lLS0pZWU9KHoqZWUrKDB8dGhpcy53b3Jkc1tuZV0pKSVPO3JldHVybiBlZX0sVS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24oTyl7RShPPD02NzEwODg2Myk7Zm9yKHZhciB6PTAsZWU9dGhp''@;'; put 'put ''cy5sZW5ndGgtMTtlZT49MDtlZS0tKXt2YXIgbmU9KDB8dGhpcy53b3Jkc1tlZV0pKzY3MTA4ODY0Kno7dGhpcy53b3Jkc1tlZV09bmUvT3wwLHo9bmUlT31yZXR1cm4gdGhpcy5zdHJpcCgpfSxVLnByb3RvdHlwZS5kaXZuPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNsb25lKCkuaWRpdm4o''@;'; put 'put ''Tyl9LFUucHJvdG90eXBlLmVnY2Q9ZnVuY3Rpb24oTyl7RSgwPT09Ty5uZWdhdGl2ZSksRSghTy5pc1plcm8oKSk7dmFyIHo9dGhpcyxlZT1PLmNsb25lKCk7ej0wIT09ei5uZWdhdGl2ZT96LnVtb2QoTyk6ei5jbG9uZSgpO2Zvcih2YXIgbmU9bmV3IFUoMSkseD1uZXcgVSgwKSxQPW5ldyBV''@;'; put 'put ''KDApLFY9bmV3IFUoMSksVD0wO3ouaXNFdmVuKCkmJmVlLmlzRXZlbigpOyl6Lml1c2hybigxKSxlZS5pdXNocm4oMSksKytUO2Zvcih2YXIgUz1lZS5jbG9uZSgpLEY9ei5jbG9uZSgpOyF6LmlzWmVybygpOyl7Zm9yKHZhciB5ZT0wLENlPTE7MD09KHoud29yZHNbMF0mQ2UpJiZ5ZTwyNjsr''@;'; put 'put ''K3llLENlPDw9MSk7aWYoeWU+MClmb3Ioei5pdXNocm4oeWUpO3llLS0gPjA7KShuZS5pc09kZCgpfHx4LmlzT2RkKCkpJiYobmUuaWFkZChTKSx4LmlzdWIoRikpLG5lLml1c2hybigxKSx4Lml1c2hybigxKTtmb3IodmFyIERlPTAsUGU9MTswPT0oZWUud29yZHNbMF0mUGUpJiZEZTwyNjsr''@;'; put 'put ''K0RlLFBlPDw9MSk7aWYoRGU+MClmb3IoZWUuaXVzaHJuKERlKTtEZS0tID4wOykoUC5pc09kZCgpfHxWLmlzT2RkKCkpJiYoUC5pYWRkKFMpLFYuaXN1YihGKSksUC5pdXNocm4oMSksVi5pdXNocm4oMSk7ei5jbXAoZWUpPj0wPyh6LmlzdWIoZWUpLG5lLmlzdWIoUCkseC5pc3ViKFYpKToo''@;'; put 'put ''ZWUuaXN1Yih6KSxQLmlzdWIobmUpLFYuaXN1Yih4KSl9cmV0dXJue2E6UCxiOlYsZ2NkOmVlLml1c2hsbihUKX19LFUucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbihPKXtFKDA9PT1PLm5lZ2F0aXZlKSxFKCFPLmlzWmVybygpKTt2YXIgeWUsej10aGlzLGVlPU8uY2xvbmUoKTt6PTAhPT16''@;'; put 'put ''Lm5lZ2F0aXZlP3oudW1vZChPKTp6LmNsb25lKCk7Zm9yKHZhciBuZT1uZXcgVSgxKSx4PW5ldyBVKDApLFA9ZWUuY2xvbmUoKTt6LmNtcG4oMSk+MCYmZWUuY21wbigxKT4wOyl7Zm9yKHZhciBWPTAsVD0xOzA9PSh6LndvcmRzWzBdJlQpJiZWPDI2OysrVixUPDw9MSk7aWYoVj4wKWZvcih6''@;'; put 'put ''Lml1c2hybihWKTtWLS0gPjA7KW5lLmlzT2RkKCkmJm5lLmlhZGQoUCksbmUuaXVzaHJuKDEpO2Zvcih2YXIgUz0wLEY9MTswPT0oZWUud29yZHNbMF0mRikmJlM8MjY7KytTLEY8PD0xKTtpZihTPjApZm9yKGVlLml1c2hybihTKTtTLS0gPjA7KXguaXNPZGQoKSYmeC5pYWRkKFApLHguaXVz''@;'; put 'put ''aHJuKDEpO3ouY21wKGVlKT49MD8oei5pc3ViKGVlKSxuZS5pc3ViKHgpKTooZWUuaXN1Yih6KSx4LmlzdWIobmUpKX1yZXR1cm4oeWU9MD09PXouY21wbigxKT9uZTp4KS5jbXBuKDApPDAmJnllLmlhZGQoTykseWV9LFUucHJvdG90eXBlLmdjZD1mdW5jdGlvbihPKXtpZih0aGlzLmlzWmVy''@;'; put 'put ''bygpKXJldHVybiBPLmFicygpO2lmKE8uaXNaZXJvKCkpcmV0dXJuIHRoaXMuYWJzKCk7dmFyIHo9dGhpcy5jbG9uZSgpLGVlPU8uY2xvbmUoKTt6Lm5lZ2F0aXZlPTAsZWUubmVnYXRpdmU9MDtmb3IodmFyIG5lPTA7ei5pc0V2ZW4oKSYmZWUuaXNFdmVuKCk7bmUrKyl6Lml1c2hybigxKSxl''@;'; put 'put ''ZS5pdXNocm4oMSk7Zm9yKDs7KXtmb3IoO3ouaXNFdmVuKCk7KXouaXVzaHJuKDEpO2Zvcig7ZWUuaXNFdmVuKCk7KWVlLml1c2hybigxKTt2YXIgeD16LmNtcChlZSk7aWYoeDwwKXt2YXIgUD16O3o9ZWUsZWU9UH1lbHNlIGlmKDA9PT14fHwwPT09ZWUuY21wbigxKSlicmVhazt6LmlzdWIo''@;'; put 'put ''ZWUpfXJldHVybiBlZS5pdXNobG4obmUpfSxVLnByb3RvdHlwZS5pbnZtPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmVnY2QoTykuYS51bW9kKE8pfSxVLnByb3RvdHlwZS5pc0V2ZW49ZnVuY3Rpb24oKXtyZXR1cm4gMD09KDEmdGhpcy53b3Jkc1swXSl9LFUucHJvdG90eXBlLmlzT2RkPWZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIDE9PSgxJnRoaXMud29yZHNbMF0pfSxVLnByb3RvdHlwZS5hbmRsbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy53b3Jkc1swXSZPfSxVLnByb3RvdHlwZS5iaW5jbj1mdW5jdGlvbihPKXtFKCJudW1iZXIiPT10eXBlb2YgTyk7dmFyIHo9TyUyNixlZT0oTy16KS8y''@;'; put 'put ''NixuZT0xPDx6O2lmKHRoaXMubGVuZ3RoPD1lZSlyZXR1cm4gdGhpcy5fZXhwYW5kKGVlKzEpLHRoaXMud29yZHNbZWVdfD1uZSx0aGlzO2Zvcih2YXIgeD1uZSxQPWVlOzAhPT14JiZQPHRoaXMubGVuZ3RoO1ArKyl7dmFyIFY9MHx0aGlzLndvcmRzW1BdO3g9KFYrPXgpPj4+MjYsdGhpcy53''@;'; put 'put ''b3Jkc1tQXT1WJj02NzEwODg2M31yZXR1cm4gMCE9PXgmJih0aGlzLndvcmRzW1BdPXgsdGhpcy5sZW5ndGgrKyksdGhpc30sVS5wcm90b3R5cGUuaXNaZXJvPWZ1bmN0aW9uKCl7cmV0dXJuIDE9PT10aGlzLmxlbmd0aCYmMD09PXRoaXMud29yZHNbMF19LFUucHJvdG90eXBlLmNtcG49ZnVu''@;'; put 'put ''Y3Rpb24oTyl7dmFyIGVlLHo9TzwwO2lmKDAhPT10aGlzLm5lZ2F0aXZlJiYheilyZXR1cm4tMTtpZigwPT09dGhpcy5uZWdhdGl2ZSYmeilyZXR1cm4gMTtpZih0aGlzLnN0cmlwKCksdGhpcy5sZW5ndGg+MSllZT0xO2Vsc2V7eiYmKE89LU8pLEUoTzw9NjcxMDg4NjMsIk51bWJlciBpcyB0''@;'; put 'put ''b28gYmlnIik7dmFyIG5lPTB8dGhpcy53b3Jkc1swXTtlZT1uZT09PU8/MDpuZTxPPy0xOjF9cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWVlOmVlfSxVLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24oTyl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT1PLm5lZ2F0aXZlKXJldHVybi0xO2lm''@;'; put 'put ''KDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09Ty5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgej10aGlzLnVjbXAoTyk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LXo6en0sVS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbihPKXtpZih0aGlzLmxlbmd0aD5PLmxlbmd0aClyZXR1cm4gMTtpZih0aGlz''@;'; put 'put ''Lmxlbmd0aDxPLmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIHo9MCxlZT10aGlzLmxlbmd0aC0xO2VlPj0wO2VlLS0pe3ZhciBuZT0wfHRoaXMud29yZHNbZWVdLHg9MHxPLndvcmRzW2VlXTtpZihuZSE9PXgpe25lPHg/ej0tMTpuZT54JiYoej0xKTticmVha319cmV0dXJuIHp9LFUucHJvdG90''@;'; put 'put ''eXBlLmd0bj1mdW5jdGlvbihPKXtyZXR1cm4gMT09PXRoaXMuY21wbihPKX0sVS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24oTyl7cmV0dXJuIDE9PT10aGlzLmNtcChPKX0sVS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5jbXBuKE8pPj0wfSxVLnByb3RvdHlwZS5ndGU9''@;'; put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuY21wKE8pPj0wfSxVLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24oTyl7cmV0dXJuLTE9PT10aGlzLmNtcG4oTyl9LFUucHJvdG90eXBlLmx0PWZ1bmN0aW9uKE8pe3JldHVybi0xPT09dGhpcy5jbXAoTyl9LFUucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24o''@;'; put 'put ''Tyl7cmV0dXJuIHRoaXMuY21wbihPKTw9MH0sVS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmNtcChPKTw9MH0sVS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKE8pe3JldHVybiAwPT09dGhpcy5jbXBuKE8pfSxVLnByb3RvdHlwZS5lcT1mdW5jdGlvbihPKXtyZXR1cm4g''@;'; put 'put ''MD09PXRoaXMuY21wKE8pfSxVLnJlZD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IFRlKE8pfSxVLnByb3RvdHlwZS50b1JlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSxFKDA9PT10aGlzLm5lZ2F0aXZlLCJy''@;'; put 'put ''ZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLE8uY29udmVydFRvKHRoaXMpLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUuZnJvbVJlZD1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJmcm9tUmVkIHdvcmtzIG9ubHkgd2l0aCBudW1iZXJzIGluIHJlZHVjdGlvbiBjb250ZXh0''@;'; put 'put ''IiksdGhpcy5yZWQuY29udmVydEZyb20odGhpcyl9LFUucHJvdG90eXBlLl9mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5yZWQ9Tyx0aGlzfSxVLnByb3RvdHlwZS5mb3JjZVJlZD1mdW5jdGlvbihPKXtyZXR1cm4gRSghdGhpcy5yZWQsIkFscmVhZHkgYSBudW1iZXIgaW4gcmVk''@;'; put 'put ''dWN0aW9uIGNvbnRleHQiKSx0aGlzLl9mb3JjZVJlZChPKX0sVS5wcm90b3R5cGUucmVkQWRkPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuYWRkKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZElBZGQ9''@;'; put 'put ''ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElBZGQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuaWFkZCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRTdWI9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZFN1YiB3b3JrcyBvbmx5IHdpdGgg''@;'; put 'put ''cmVkIG51bWJlcnMiKSx0aGlzLnJlZC5zdWIodGhpcyxPKX0sVS5wcm90b3R5cGUucmVkSVN1Yj1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSVN1YiB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pc3ViKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNo''@;'; put 'put ''bD1mdW5jdGlvbihPKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkU2hsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnNobCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRNdWw9ZnVuY3Rpb24oTyl7cmV0dXJuIEUodGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGgg''@;'; put 'put ''cmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLE8pLHRoaXMucmVkLm11bCh0aGlzLE8pfSxVLnByb3RvdHlwZS5yZWRJTXVsPWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkLCJyZWRNdWwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3Zlcmlm''@;'; put 'put ''eTIodGhpcyxPKSx0aGlzLnJlZC5pbXVsKHRoaXMsTyl9LFUucHJvdG90eXBlLnJlZFNxcj1mdW5jdGlvbigpe3JldHVybiBFKHRoaXMucmVkLCJyZWRTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FyKHRoaXMpfSxV''@;'; put 'put ''LnByb3RvdHlwZS5yZWRJU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcy5yZWQsInJlZElTcXIgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuaXNxcih0aGlzKX0sVS5wcm90b3R5cGUucmVkU3FydD1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBFKHRoaXMucmVkLCJyZWRTcXJ0IHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLnNxcnQodGhpcyl9LFUucHJvdG90eXBlLnJlZEludm09ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkSW52bSB3b3JrcyBv''@;'; put 'put ''bmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pbnZtKHRoaXMpfSxVLnByb3RvdHlwZS5yZWROZWc9ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLnJlZCwicmVkTmVnIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92''@;'; put 'put ''ZXJpZnkxKHRoaXMpLHRoaXMucmVkLm5lZyh0aGlzKX0sVS5wcm90b3R5cGUucmVkUG93PWZ1bmN0aW9uKE8pe3JldHVybiBFKHRoaXMucmVkJiYhTy5yZWQsInJlZFBvdyhub3JtYWxOdW0pIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQucG93KHRoaXMsTyl9O3ZhciBkZT17''@;'; put 'put ''azI1NjpudWxsLHAyMjQ6bnVsbCxwMTkyOm51bGwscDI1NTE5Om51bGx9O2Z1bmN0aW9uIHZlKGhlLE8pe3RoaXMubmFtZT1oZSx0aGlzLnA9bmV3IFUoTywxNiksdGhpcy5uPXRoaXMucC5iaXRMZW5ndGgoKSx0aGlzLms9bmV3IFUoMSkuaXVzaGxuKHRoaXMubikuaXN1Yih0aGlzLnApLHRo''@;'; put 'put ''aXMudG1wPXRoaXMuX3RtcCgpfWZ1bmN0aW9uIEFlKCl7dmUuY2FsbCh0aGlzLCJrMjU2IiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZjMmYiKX1mdW5jdGlvbiBrZSgpe3ZlLmNhbGwodGhpcywicDIyNCIsImZm''@;'; put 'put ''ZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gU2UoKXt2ZS5jYWxsKHRoaXMsInAxOTIiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmZmZiBmZmZmZmZmZiIpfWZ1bmN0aW9uIEll''@;'; put 'put ''KCl7dmUuY2FsbCh0aGlzLCIyNTUxOSIsIjdmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZWQiKX1mdW5jdGlvbiBUZShoZSl7aWYoInN0cmluZyI9PXR5cGVvZiBoZSl7dmFyIE89VS5fcHJpbWUoaGUpO3RoaXMubT1PLnAs''@;'; put 'put ''dGhpcy5wcmltZT1PfWVsc2UgRShoZS5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT1oZSx0aGlzLnByaW1lPW51bGx9ZnVuY3Rpb24gTWUoaGUpe1RlLmNhbGwodGhpcyxoZSksdGhpcy5zaGlmdD10aGlzLm0uYml0TGVuZ3RoKCksdGhpcy5zaGlmdCUy''@;'; put 'put ''NiE9MCYmKHRoaXMuc2hpZnQrPTI2LXRoaXMuc2hpZnQlMjYpLHRoaXMucj1uZXcgVSgxKS5pdXNobG4odGhpcy5zaGlmdCksdGhpcy5yMj10aGlzLmltb2QodGhpcy5yLnNxcigpKSx0aGlzLnJpbnY9dGhpcy5yLl9pbnZtcCh0aGlzLm0pLHRoaXMubWludj10aGlzLnJpbnYubXVsKHRoaXMu''@;'; put 'put ''cikuaXN1Ym4oMSkuZGl2KHRoaXMubSksdGhpcy5taW52PXRoaXMubWludi51bW9kKHRoaXMuciksdGhpcy5taW52PXRoaXMuci5zdWIodGhpcy5taW52KX12ZS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciBPPW5ldyBVKG51bGwpO3JldHVybiBPLndvcmRzPW5ldyBBcnJheShNYXRo''@;'; put 'put ''LmNlaWwodGhpcy5uLzEzKSksT30sdmUucHJvdG90eXBlLmlyZWR1Y2U9ZnVuY3Rpb24oTyl7dmFyIGVlLHo9Tztkb3t0aGlzLnNwbGl0KHosdGhpcy50bXApLGVlPSh6PSh6PXRoaXMuaW11bEsoeikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShlZT50aGlzLm4pO3ZhciBu''@;'; put 'put ''ZT1lZTx0aGlzLm4/LTE6ei51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uZT8oei53b3Jkc1swXT0wLHoubGVuZ3RoPTEpOm5lPjA/ei5pc3ViKHRoaXMucCk6dm9pZCAwIT09ei5zdHJpcD96LnN0cmlwKCk6ei5fc3RyaXAoKSx6fSx2ZS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24oTyx6KXtP''@;'; put 'put ''Lml1c2hybih0aGlzLm4sMCx6KX0sdmUucHJvdG90eXBlLmltdWxLPWZ1bmN0aW9uKE8pe3JldHVybiBPLmltdWwodGhpcy5rKX0sRWUoQWUsdmUpLEFlLnByb3RvdHlwZS5zcGxpdD1mdW5jdGlvbihPLHope2Zvcih2YXIgbmU9TWF0aC5taW4oTy5sZW5ndGgsOSkseD0wO3g8bmU7eCsrKXou''@;'; put 'put ''d29yZHNbeF09Ty53b3Jkc1t4XTtpZih6Lmxlbmd0aD1uZSxPLmxlbmd0aDw9OSlyZXR1cm4gTy53b3Jkc1swXT0wLHZvaWQoTy5sZW5ndGg9MSk7dmFyIFA9Ty53b3Jkc1s5XTtmb3Ioei53b3Jkc1t6Lmxlbmd0aCsrXT00MTk0MzAzJlAseD0xMDt4PE8ubGVuZ3RoO3grKyl7dmFyIFY9MHxP''@;'; put 'put ''LndvcmRzW3hdO08ud29yZHNbeC0xMF09KDQxOTQzMDMmVik8PDR8UD4+PjIyLFA9Vn1PLndvcmRzW3gtMTBdPVA+Pj49MjIsTy5sZW5ndGgtPTA9PT1QJiZPLmxlbmd0aD4xMD8xMDo5fSxBZS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24oTyl7Ty53b3Jkc1tPLmxlbmd0aF09MCxPLndvcmRz''@;'; put 'put ''W08ubGVuZ3RoKzFdPTAsTy5sZW5ndGgrPTI7Zm9yKHZhciB6PTAsZWU9MDtlZTxPLmxlbmd0aDtlZSsrKXt2YXIgbmU9MHxPLndvcmRzW2VlXTtPLndvcmRzW2VlXT02NzEwODg2MyYoeis9OTc3Km5lKSx6PTY0Km5lKyh6LzY3MTA4ODY0fDApfXJldHVybiAwPT09Ty53b3Jkc1tPLmxlbmd0''@;'; put 'put ''aC0xXSYmKE8ubGVuZ3RoLS0sMD09PU8ud29yZHNbTy5sZW5ndGgtMV0mJk8ubGVuZ3RoLS0pLE99LEVlKGtlLHZlKSxFZShTZSx2ZSksRWUoSWUsdmUpLEllLnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbihPKXtmb3IodmFyIHo9MCxlZT0wO2VlPE8ubGVuZ3RoO2VlKyspe3ZhciBuZT0xOSoo''@;'; put 'put ''MHxPLndvcmRzW2VlXSkreix4PTY3MTA4ODYzJm5lO25lPj4+PTI2LE8ud29yZHNbZWVdPXgsej1uZX1yZXR1cm4gMCE9PXomJihPLndvcmRzW08ubGVuZ3RoKytdPXopLE99LFUuX3ByaW1lPWZ1bmN0aW9uKE8pe2lmKGRlW09dKXJldHVybiBkZVtPXTt2YXIgejtpZigiazI1NiI9PT1PKXo9''@;'; put 'put ''bmV3IEFlO2Vsc2UgaWYoInAyMjQiPT09Tyl6PW5ldyBrZTtlbHNlIGlmKCJwMTkyIj09PU8pej1uZXcgU2U7ZWxzZXtpZigicDI1NTE5IiE9PU8pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByaW1lICIrTyk7ej1uZXcgSWV9cmV0dXJuIGRlW09dPXosen0sVGUucHJvdG90eXBlLl92ZXJp''@;'; put 'put ''ZnkxPWZ1bmN0aW9uKE8pe0UoMD09PU8ubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksRShPLnJlZCwicmVkIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpfSxUZS5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24oTyx6KXtFKDA9PShPLm5lZ2F0aXZlfHou''@;'; put 'put ''bmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLEUoTy5yZWQmJk8ucmVkPT09ei5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVGUucHJvdG90eXBlLmltb2Q9ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMucHJpbWU/dGhpcy5wcmltZS5pcmVk''@;'; put 'put ''dWNlKE8pLl9mb3JjZVJlZCh0aGlzKTpPLnVtb2QodGhpcy5tKS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oTyl7cmV0dXJuIE8uaXNaZXJvKCk/Ty5jbG9uZSgpOnRoaXMubS5zdWIoTykuX2ZvcmNlUmVkKHRoaXMpfSxUZS5wcm90b3R5cGUuYWRkPWZ1bmN0''@;'; put 'put ''aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmFkZCh6KTtyZXR1cm4gZWUuY21wKHRoaXMubSk+PTAmJmVlLmlzdWIodGhpcy5tKSxlZS5fZm9yY2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pYWRkPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1P''@;'; put 'put ''LmlhZGQoeik7cmV0dXJuIGVlLmNtcCh0aGlzLm0pPj0wJiZlZS5pc3ViKHRoaXMubSksZWV9LFRlLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24oTyx6KXt0aGlzLl92ZXJpZnkyKE8seik7dmFyIGVlPU8uc3ViKHopO3JldHVybiBlZS5jbXBuKDApPDAmJmVlLmlhZGQodGhpcy5tKSxlZS5fZm9y''@;'; put 'put ''Y2VSZWQodGhpcyl9LFRlLnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKE8seil7dGhpcy5fdmVyaWZ5MihPLHopO3ZhciBlZT1PLmlzdWIoeik7cmV0dXJuIGVlLmNtcG4oMCk8MCYmZWUuaWFkZCh0aGlzLm0pLGVlfSxUZS5wcm90b3R5cGUuc2hsPWZ1bmN0aW9uKE8seil7cmV0dXJuIHRoaXMu''@;'; put 'put ''X3ZlcmlmeTEoTyksdGhpcy5pbW9kKE8udXNobG4oeikpfSxUZS5wcm90b3R5cGUuaW11bD1mdW5jdGlvbihPLHope3JldHVybiB0aGlzLl92ZXJpZnkyKE8seiksdGhpcy5pbW9kKE8uaW11bCh6KSl9LFRlLnByb3RvdHlwZS5tdWw9ZnVuY3Rpb24oTyx6KXtyZXR1cm4gdGhpcy5fdmVyaWZ5''@;'; put 'put ''MihPLHopLHRoaXMuaW1vZChPLm11bCh6KSl9LFRlLnByb3RvdHlwZS5pc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLmltdWwoTyxPLmNsb25lKCkpfSxUZS5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKE8pe3JldHVybiB0aGlzLm11bChPLE8pfSxUZS5wcm90b3R5cGUuc3FydD1mdW5jdGlv''@;'; put 'put ''bihPKXtpZihPLmlzWmVybygpKXJldHVybiBPLmNsb25lKCk7dmFyIHo9dGhpcy5tLmFuZGxuKDMpO2lmKEUoeiUyPT0xKSwzPT09eil7dmFyIGVlPXRoaXMubS5hZGQobmV3IFUoMSkpLml1c2hybigyKTtyZXR1cm4gdGhpcy5wb3coTyxlZSl9Zm9yKHZhciBuZT10aGlzLm0uc3VibigxKSx4''@;'; put 'put ''PTA7IW5lLmlzWmVybygpJiYwPT09bmUuYW5kbG4oMSk7KXgrKyxuZS5pdXNocm4oMSk7RSghbmUuaXNaZXJvKCkpO3ZhciBQPW5ldyBVKDEpLnRvUmVkKHRoaXMpLFY9UC5yZWROZWcoKSxUPXRoaXMubS5zdWJuKDEpLml1c2hybigxKSxTPXRoaXMubS5iaXRMZW5ndGgoKTtmb3IoUz1uZXcg''@;'; put 'put ''VSgyKlMqUykudG9SZWQodGhpcyk7MCE9PXRoaXMucG93KFMsVCkuY21wKFYpOylTLnJlZElBZGQoVik7Zm9yKHZhciBGPXRoaXMucG93KFMsbmUpLHllPXRoaXMucG93KE8sbmUuYWRkbigxKS5pdXNocm4oMSkpLENlPXRoaXMucG93KE8sbmUpLERlPXg7MCE9PUNlLmNtcChQKTspe2Zvcih2''@;'; put 'put ''YXIgUGU9Q2UsUWU9MDswIT09UGUuY21wKFApO1FlKyspUGU9UGUucmVkU3FyKCk7RShRZTxEZSk7dmFyICRlPXRoaXMucG93KEYsbmV3IFUoMSkuaXVzaGxuKERlLVFlLTEpKTt5ZT15ZS5yZWRNdWwoJGUpLEY9JGUucmVkU3FyKCksQ2U9Q2UucmVkTXVsKEYpLERlPVFlfXJldHVybiB5ZX0s''@;'; put 'put ''VGUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7dmFyIHo9Ty5faW52bXAodGhpcy5tKTtyZXR1cm4gMCE9PXoubmVnYXRpdmU/KHoubmVnYXRpdmU9MCx0aGlzLmltb2QoeikucmVkTmVnKCkpOnRoaXMuaW1vZCh6KX0sVGUucHJvdG90eXBlLnBvdz1mdW5jdGlvbihPLHope2lmKHouaXNa''@;'; put 'put ''ZXJvKCkpcmV0dXJuIG5ldyBVKDEpLnRvUmVkKHRoaXMpO2lmKDA9PT16LmNtcG4oMSkpcmV0dXJuIE8uY2xvbmUoKTt2YXIgbmU9bmV3IEFycmF5KDE2KTtuZVswXT1uZXcgVSgxKS50b1JlZCh0aGlzKSxuZVsxXT1PO2Zvcih2YXIgeD0yO3g8bmUubGVuZ3RoO3grKyluZVt4XT10aGlzLm11''@;'; put 'put ''bChuZVt4LTFdLE8pO3ZhciBQPW5lWzBdLFY9MCxUPTAsUz16LmJpdExlbmd0aCgpJTI2O2ZvcigwPT09UyYmKFM9MjYpLHg9ei5sZW5ndGgtMTt4Pj0wO3gtLSl7Zm9yKHZhciBGPXoud29yZHNbeF0seWU9Uy0xO3llPj0wO3llLS0pe3ZhciBDZT1GPj55ZSYxO1AhPT1uZVswXSYmKFA9dGhp''@;'; put 'put ''cy5zcXIoUCkpLDAhPT1DZXx8MCE9PVY/KFY8PD0xLFZ8PUNlLCg0PT0rK1R8fDA9PT14JiYwPT09eWUpJiYoUD10aGlzLm11bChQLG5lW1ZdKSxUPTAsVj0wKSk6VD0wfVM9MjZ9cmV0dXJuIFB9LFRlLnByb3RvdHlwZS5jb252ZXJ0VG89ZnVuY3Rpb24oTyl7dmFyIHo9Ty51bW9kKHRoaXMu''@;'; put 'put ''bSk7cmV0dXJuIHo9PT1PP3ouY2xvbmUoKTp6fSxUZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9Ty5jbG9uZSgpO3JldHVybiB6LnJlZD1udWxsLHp9LFUubW9udD1mdW5jdGlvbihPKXtyZXR1cm4gbmV3IE1lKE8pfSxFZShNZSxUZSksTWUucHJvdG90eXBlLmNv''@;'; put 'put ''bnZlcnRUbz1mdW5jdGlvbihPKXtyZXR1cm4gdGhpcy5pbW9kKE8udXNobG4odGhpcy5zaGlmdCkpfSxNZS5wcm90b3R5cGUuY29udmVydEZyb209ZnVuY3Rpb24oTyl7dmFyIHo9dGhpcy5pbW9kKE8ubXVsKHRoaXMucmludikpO3JldHVybiB6LnJlZD1udWxsLHp9LE1lLnByb3RvdHlwZS5p''@;'; put 'put ''bXVsPWZ1bmN0aW9uKE8seil7aWYoTy5pc1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gTy53b3Jkc1swXT0wLE8ubGVuZ3RoPTEsTzt2YXIgZWU9Ty5pbXVsKHopLG5lPWVlLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSx4''@;'; put 'put ''PWVlLmlzdWIobmUpLml1c2hybih0aGlzLnNoaWZ0KSxQPXg7cmV0dXJuIHguY21wKHRoaXMubSk+PTA/UD14LmlzdWIodGhpcy5tKTp4LmNtcG4oMCk8MCYmKFA9eC5pYWRkKHRoaXMubSkpLFAuX2ZvcmNlUmVkKHRoaXMpfSxNZS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKE8seil7aWYoTy5p''@;'; put 'put ''c1plcm8oKXx8ei5pc1plcm8oKSlyZXR1cm4gbmV3IFUoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciBlZT1PLm11bCh6KSxuZT1lZS5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSkseD1lZS5pc3ViKG5lKS5pdXNocm4odGhpcy5z''@;'; put 'put ''aGlmdCksUD14O3JldHVybiB4LmNtcCh0aGlzLm0pPj0wP1A9eC5pc3ViKHRoaXMubSk6eC5jbXBuKDApPDAmJihQPXguaWFkZCh0aGlzLm0pKSxQLl9mb3JjZVJlZCh0aGlzKX0sTWUucHJvdG90eXBlLmludm09ZnVuY3Rpb24oTyl7cmV0dXJuIHRoaXMuaW1vZChPLl9pbnZtcCh0aGlzLm0p''@;'; put 'put ''Lm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0oWGU9TC5ubWQoWGUpLHRoaXMpfSwzNjcwNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMjc3MiksQj1MKDg2OTQ1KSxFPUwoNzk0MDEpLEVlPUwoODIwNTcpLFU9TCg4NDY2KSxRPUwoOTYzODYpLGo9TCgzODY1MSkscmU9TCg3MzUwMiku''@;'; put 'put ''QnVmZmVyO1hlLmV4cG9ydHM9ZnVuY3Rpb24odGUsSyxKKXt2YXIgc2U7c2U9dGUucGFkZGluZz90ZS5wYWRkaW5nOko/MTo0O3ZhciBkZSxvZT1tZSh0ZSksY2U9b2UubW9kdWx1cy5ieXRlTGVuZ3RoKCk7aWYoSy5sZW5ndGg+Y2V8fG5ldyBFZShLKS5jbXAob2UubW9kdWx1cyk+PTApdGhy''@;'; put 'put ''b3cgbmV3IEVycm9yKCJkZWNyeXB0aW9uIGVycm9yIik7ZGU9Sj9qKG5ldyBFZShLKSxvZSk6VShLLG9lKTt2YXIgdmU9cmUuYWxsb2MoY2UtZGUubGVuZ3RoKTtpZihkZT1yZS5jb25jYXQoW3ZlLGRlXSxjZSksND09PXNlKXJldHVybiBmdW5jdGlvbiBhZShOLHRlKXt2YXIgSz1OLm1vZHVs''@;'; put 'put ''dXMuYnl0ZUxlbmd0aCgpLEo9USgic2hhMSIpLnVwZGF0ZShyZS5hbGxvYygwKSkuZGlnZXN0KCksc2U9Si5sZW5ndGg7aWYoMCE9PXRlWzBdKXRocm93IG5ldyBFcnJvcigiZGVjcnlwdGlvbiBlcnJvciIpO3ZhciBvZT10ZS5zbGljZSgxLHNlKzEpLGNlPXRlLnNsaWNlKHNlKzEpLGRlPUUo''@;'; put 'put ''b2UsQihjZSxzZSkpLHZlPUUoY2UsQihkZSxLLXNlLTEpKTtpZihmdW5jdGlvbiBXKE4sdGUpe049cmUuZnJvbShOKSx0ZT1yZS5mcm9tKHRlKTt2YXIgSz0wLEo9Ti5sZW5ndGg7Ti5sZW5ndGghPT10ZS5sZW5ndGgmJihLKyssSj1NYXRoLm1pbihOLmxlbmd0aCx0ZS5sZW5ndGgpKTtmb3Io''@;'; put 'put ''dmFyIHNlPS0xOysrc2U8SjspSys9TltzZV1edGVbc2VdO3JldHVybiBLfShKLHZlLnNsaWNlKDAsc2UpKSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtmb3IodmFyIEFlPXNlOzA9PT12ZVtBZV07KUFlKys7aWYoMSE9PXZlW0FlKytdKXRocm93IG5ldyBFcnJvcigiZGVj''@;'; put 'put ''cnlwdGlvbiBlcnJvciIpO3JldHVybiB2ZS5zbGljZShBZSl9KG9lLGRlKTtpZigxPT09c2UpcmV0dXJuIGZ1bmN0aW9uIFkoTix0ZSxLKXtmb3IodmFyIEo9dGUuc2xpY2UoMCwyKSxzZT0yLG9lPTA7MCE9PXRlW3NlKytdOylpZihzZT49dGUubGVuZ3RoKXtvZSsrO2JyZWFrfXZhciBjZT10''@;'; put 'put ''ZS5zbGljZSgyLHNlLTEpO2lmKCgiMDAwMiIhPT1KLnRvU3RyaW5nKCJoZXgiKSYmIUt8fCIwMDAxIiE9PUoudG9TdHJpbmcoImhleCIpJiZLKSYmb2UrKyxjZS5sZW5ndGg8OCYmb2UrKyxvZSl0aHJvdyBuZXcgRXJyb3IoImRlY3J5cHRpb24gZXJyb3IiKTtyZXR1cm4gdGUuc2xpY2Uoc2Up''@;'; put 'put ''fSgwLGRlLEopO2lmKDM9PT1zZSlyZXR1cm4gZGU7dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKX19LDE2NTYyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDIyNzcyKSxCPUwoNTM3NTMpLEU9TCg5NjM4NiksRWU9TCg4Njk0NSksVT1MKDc5NDAxKSxRPUwoODIwNTcpLGo9TCgzODY1''@;'; put 'put ''MSkscmU9TCg4NDY2KSxhZT1MKDczNTAyKS5CdWZmZXI7WGUuZXhwb3J0cz1mdW5jdGlvbihLLEosc2Upe3ZhciBvZTtvZT1LLnBhZGRpbmc/Sy5wYWRkaW5nOnNlPzE6NDt2YXIgZGUsY2U9bWUoSyk7aWYoND09PW9lKWRlPWZ1bmN0aW9uIFkodGUsSyl7dmFyIEo9dGUubW9kdWx1cy5ieXRl''@;'; put 'put ''TGVuZ3RoKCksc2U9Sy5sZW5ndGgsb2U9RSgic2hhMSIpLnVwZGF0ZShhZS5hbGxvYygwKSkuZGlnZXN0KCksY2U9b2UubGVuZ3RoLGRlPTIqY2U7aWYoc2U+Si1kZS0yKXRocm93IG5ldyBFcnJvcigibWVzc2FnZSB0b28gbG9uZyIpO3ZhciB2ZT1hZS5hbGxvYyhKLXNlLWRlLTIpLEFlPUot''@;'; put 'put ''Y2UtMSxrZT1CKGNlKSxTZT1VKGFlLmNvbmNhdChbb2UsdmUsYWUuYWxsb2MoMSwxKSxLXSxBZSksRWUoa2UsQWUpKSxJZT1VKGtlLEVlKFNlLGNlKSk7cmV0dXJuIG5ldyBRKGFlLmNvbmNhdChbYWUuYWxsb2MoMSksSWUsU2VdLEopKX0oY2UsSik7ZWxzZSBpZigxPT09b2UpZGU9ZnVuY3Rp''@;'; put 'put ''b24gVyh0ZSxLLEope3ZhciBjZSxzZT1LLmxlbmd0aCxvZT10ZS5tb2R1bHVzLmJ5dGVMZW5ndGgoKTtpZihzZT5vZS0xMSl0aHJvdyBuZXcgRXJyb3IoIm1lc3NhZ2UgdG9vIGxvbmciKTtyZXR1cm4gY2U9Sj9hZS5hbGxvYyhvZS1zZS0zLDI1NSk6ZnVuY3Rpb24gTih0ZSl7Zm9yKHZhciBj''@;'; put 'put ''ZSxLPWFlLmFsbG9jVW5zYWZlKHRlKSxKPTAsc2U9QigyKnRlKSxvZT0wO0o8dGU7KW9lPT09c2UubGVuZ3RoJiYoc2U9QigyKnRlKSxvZT0wKSwoY2U9c2Vbb2UrK10pJiYoS1tKKytdPWNlKTtyZXR1cm4gS30ob2Utc2UtMyksbmV3IFEoYWUuY29uY2F0KFthZS5mcm9tKFswLEo/MToyXSks''@;'; put 'put ''Y2UsYWUuYWxsb2MoMSksS10sb2UpKX0oY2UsSixzZSk7ZWxzZXtpZigzIT09b2UpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHBhZGRpbmciKTtpZigoZGU9bmV3IFEoSikpLmNtcChjZS5tb2R1bHVzKT49MCl0aHJvdyBuZXcgRXJyb3IoImRhdGEgdG9vIGxvbmcgZm9yIG1vZHVsdXMiKX1y''@;'; put 'put ''ZXR1cm4gc2U/cmUoZGUsY2UpOmooZGUsY2UpfX0sMzg2NTE6KFhlLEplLEwpPT57dmFyIG1lPUwoODIwNTcpLEI9TCg3MzUwMikuQnVmZmVyO1hlLmV4cG9ydHM9ZnVuY3Rpb24gRShFZSxVKXtyZXR1cm4gQi5mcm9tKEVlLnRvUmVkKG1lLm1vbnQoVS5tb2R1bHVzKSkucmVkUG93KG5ldyBt''@;'; put 'put ''ZShVLnB1YmxpY0V4cG9uZW50KSkuZnJvbVJlZCgpLnRvQXJyYXkoKSl9fSw3OTQwMTpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oTCxtZSl7Zm9yKHZhciBCPUwubGVuZ3RoLEU9LTE7KytFPEI7KUxbRV1ePW1lW0VdO3JldHVybiBMfX0sNTM3NTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3Qi''@;'; put 'put ''O3ZhciBFZT1MKDczNTAyKS5CdWZmZXIsVT1nbG9iYWwuY3J5cHRvfHxnbG9iYWwubXNDcnlwdG87WGUuZXhwb3J0cz1VJiZVLmdldFJhbmRvbVZhbHVlcz9mdW5jdGlvbiBRKGoscmUpe2lmKGo+NDI5NDk2NzI5NSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigicmVxdWVzdGVkIHRvbyBtYW55IHJh''@;'; put 'put ''bmRvbSBieXRlcyIpO3ZhciBhZT1FZS5hbGxvY1Vuc2FmZShqKTtpZihqPjApaWYoaj42NTUzNilmb3IodmFyIFk9MDtZPGo7WSs9NjU1MzYpVS5nZXRSYW5kb21WYWx1ZXMoYWUuc2xpY2UoWSxZKzY1NTM2KSk7ZWxzZSBVLmdldFJhbmRvbVZhbHVlcyhhZSk7cmV0dXJuImZ1bmN0aW9uIj09''@;'; put 'put ''dHlwZW9mIHJlP3Byb2Nlc3MubmV4dFRpY2soZnVuY3Rpb24oKXtyZShudWxsLGFlKX0pOmFlfTpmdW5jdGlvbiBFKCl7dGhyb3cgbmV3IEVycm9yKCJTZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyLlxuVXNlIENocm9tZSwg''@;'; put 'put ''RmlyZWZveCBvciBJbnRlcm5ldCBFeHBsb3JlciAxMSIpfX0sMTQyNzU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKCl7dGhyb3cgbmV3IEVycm9yKCJzZWN1cmUgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBicm93c2VyXG51c2Ug''@;'; put 'put ''Y2hyb21lLCBGaXJlRm94IG9yIEludGVybmV0IEV4cGxvcmVyIDExIil9dmFyIEI9TCg3MzUwMiksRT1MKDUzNzUzKSxFZT1CLkJ1ZmZlcixVPUIua01heExlbmd0aCxRPWdsb2JhbC5jcnlwdG98fGdsb2JhbC5tc0NyeXB0byxqPU1hdGgucG93KDIsMzIpLTE7ZnVuY3Rpb24gcmUodGUsSyl7''@;'; put 'put ''aWYoIm51bWJlciIhPXR5cGVvZiB0ZXx8dGUhPXRlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9mZnNldCBtdXN0IGJlIGEgbnVtYmVyIik7aWYodGU+anx8dGU8MCl0aHJvdyBuZXcgVHlwZUVycm9yKCJvZmZzZXQgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHRlPlV8fHRlPkspdGhyb3cgbmV3IFJh''@;'; put 'put ''bmdlRXJyb3IoIm9mZnNldCBvdXQgb2YgcmFuZ2UiKX1mdW5jdGlvbiBhZSh0ZSxLLEope2lmKCJudW1iZXIiIT10eXBlb2YgdGV8fHRlIT10ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJzaXplIG11c3QgYmUgYSBudW1iZXIiKTtpZih0ZT5qfHx0ZTwwKXRocm93IG5ldyBUeXBlRXJyb3IoInNp''@;'; put 'put ''emUgbXVzdCBiZSBhIHVpbnQzMiIpO2lmKHRlK0s+Snx8dGU+VSl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiYnVmZmVyIHRvbyBzbWFsbCIpfWZ1bmN0aW9uIFcodGUsSyxKLHNlKXtpZihwcm9jZXNzLmJyb3dzZXIpe3ZhciBjZT1uZXcgVWludDhBcnJheSh0ZS5idWZmZXIsSyxKKTtyZXR1cm4g''@;'; put 'put ''US5nZXRSYW5kb21WYWx1ZXMoY2UpLHNlP3ZvaWQgcHJvY2Vzcy5uZXh0VGljayhmdW5jdGlvbigpe3NlKG51bGwsdGUpfSk6dGV9aWYoIXNlKXJldHVybiBFKEopLmNvcHkodGUsSyksdGU7RShKLGZ1bmN0aW9uKHZlLEFlKXtpZih2ZSlyZXR1cm4gc2UodmUpO0FlLmNvcHkodGUsSyksc2Uo''@;'; put 'put ''bnVsbCx0ZSl9KX1RJiZRLmdldFJhbmRvbVZhbHVlc3x8IXByb2Nlc3MuYnJvd3Nlcj8oSmUucmFuZG9tRmlsbD1mdW5jdGlvbiBZKHRlLEssSixzZSl7aWYoIShFZS5pc0J1ZmZlcih0ZSl8fHRlIGluc3RhbmNlb2YgZ2xvYmFsLlVpbnQ4QXJyYXkpKXRocm93IG5ldyBUeXBlRXJyb3IoJyJi''@;'; put 'put ''dWYiIGFyZ3VtZW50IG11c3QgYmUgYSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBLKXNlPUssSz0wLEo9dGUubGVuZ3RoO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIEopc2U9SixKPXRlLmxlbmd0aC1LO2Vsc2UgaWYoImZ1bmN0aW9uIiE9dHlwZW9m''@;'; put 'put ''IHNlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJjYiIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7cmV0dXJuIHJlKEssdGUubGVuZ3RoKSxhZShKLEssdGUubGVuZ3RoKSxXKHRlLEssSixzZSl9LEplLnJhbmRvbUZpbGxTeW5jPWZ1bmN0aW9uIE4odGUsSyxKKXtpZih2b2lkIDA9PT1L''@;'; put 'put ''JiYoSz0wKSwhKEVlLmlzQnVmZmVyKHRlKXx8dGUgaW5zdGFuY2VvZiBnbG9iYWwuVWludDhBcnJheSkpdGhyb3cgbmV3IFR5cGVFcnJvcignImJ1ZiIgYXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciBvciBVaW50OEFycmF5Jyk7cmV0dXJuIHJlKEssdGUubGVuZ3RoKSx2b2lkIDA9PT1KJiYo''@;'; put 'put ''Sj10ZS5sZW5ndGgtSyksYWUoSixLLHRlLmxlbmd0aCksVyh0ZSxLLEopfSk6KEplLnJhbmRvbUZpbGw9bWUsSmUucmFuZG9tRmlsbFN5bmM9bWUpfSw3MDg5MTpYZT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTD17fTtmdW5jdGlvbiBtZShRLGoscmUpe3JlfHwocmU9RXJyb3IpO3ZhciBZPWZ1bmN0''@;'; put 'put ''aW9uKFcpe2Z1bmN0aW9uIE4odGUsSyxKKXtyZXR1cm4gVy5jYWxsKHRoaXMsZnVuY3Rpb24gYWUoVyxOLHRlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGo/ajpqKFcsTix0ZSl9KHRlLEssSikpfHx0aGlzfXJldHVybiBmdW5jdGlvbiBKZShRLGope1EucHJvdG90eXBlPU9iamVjdC5jcmVh''@;'; put 'put ''dGUoai5wcm90b3R5cGUpLFEucHJvdG90eXBlLmNvbnN0cnVjdG9yPVEsUS5fX3Byb3RvX189an0oTixXKSxOfShyZSk7WS5wcm90b3R5cGUubmFtZT1yZS5uYW1lLFkucHJvdG90eXBlLmNvZGU9USxMW1FdPVl9ZnVuY3Rpb24gQihRLGope2lmKEFycmF5LmlzQXJyYXkoUSkpe3ZhciByZT1R''@;'; put 'put ''Lmxlbmd0aDtyZXR1cm4gUT1RLm1hcChmdW5jdGlvbihhZSl7cmV0dXJuIFN0cmluZyhhZSl9KSxyZT4yPyJvbmUgb2YgIi5jb25jYXQoaiwiICIpLmNvbmNhdChRLnNsaWNlKDAscmUtMSkuam9pbigiLCAiKSwiLCBvciAiKStRW3JlLTFdOjI9PT1yZT8ib25lIG9mICIuY29uY2F0KGosIiAi''@;'; put 'put ''KS5jb25jYXQoUVswXSwiIG9yICIpLmNvbmNhdChRWzFdKToib2YgIi5jb25jYXQoaiwiICIpLmNvbmNhdChRWzBdKX1yZXR1cm4ib2YgIi5jb25jYXQoaiwiICIpLmNvbmNhdChTdHJpbmcoUSkpfW1lKCJFUlJfSU5WQUxJRF9PUFRfVkFMVUUiLGZ1bmN0aW9uKFEsail7cmV0dXJuJ1RoZSB2''@;'; put 'put ''YWx1ZSAiJytqKyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAiJytRKyciJ30sVHlwZUVycm9yKSxtZSgiRVJSX0lOVkFMSURfQVJHX1RZUEUiLGZ1bmN0aW9uKFEsaixyZSl7dmFyIGFlLFk7aWYoInN0cmluZyI9PXR5cGVvZiBqJiZmdW5jdGlvbiBFKFEsaixyZSl7cmV0dXJuIFEuc3Vic3Ry''@;'; put 'put ''KCFyZXx8cmU8MD8wOityZSxqLmxlbmd0aCk9PT1qfShqLCJub3QgIik/KGFlPSJtdXN0IG5vdCBiZSIsaj1qLnJlcGxhY2UoL15ub3QgLywiIikpOmFlPSJtdXN0IGJlIixmdW5jdGlvbiBFZShRLGoscmUpe3JldHVybih2b2lkIDA9PT1yZXx8cmU+US5sZW5ndGgpJiYocmU9US5sZW5ndGgp''@;'; put 'put ''LFEuc3Vic3RyaW5nKHJlLWoubGVuZ3RoLHJlKT09PWp9KFEsIiBhcmd1bWVudCIpKVk9IlRoZSAiLmNvbmNhdChRLCIgIikuY29uY2F0KGFlLCIgIikuY29uY2F0KEIoaiwidHlwZSIpKTtlbHNle3ZhciBXPWZ1bmN0aW9uIFUoUSxqLHJlKXtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHJlJiYo''@;'; put 'put ''cmU9MCksIShyZStqLmxlbmd0aD5RLmxlbmd0aCkmJi0xIT09US5pbmRleE9mKGoscmUpfShRLCIuIik/InByb3BlcnR5IjoiYXJndW1lbnQiO1k9J1RoZSAiJy5jb25jYXQoUSwnIiAnKS5jb25jYXQoVywiICIpLmNvbmNhdChhZSwiICIpLmNvbmNhdChCKGosInR5cGUiKSl9cmV0dXJuIFkr''@;'; put 'put ''Ii4gUmVjZWl2ZWQgdHlwZSAiLmNvbmNhdCh0eXBlb2YgcmUpfSxUeXBlRXJyb3IpLG1lKCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSxtZSgiRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQiLGZ1bmN0aW9uKFEpe3JldHVybiJUaGUgIitR''@;'; put 'put ''KyIgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCJ9KSxtZSgiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiLCJQcmVtYXR1cmUgY2xvc2UiKSxtZSgiRVJSX1NUUkVBTV9ERVNUUk9ZRUQiLGZ1bmN0aW9uKFEpe3JldHVybiJDYW5ub3QgY2FsbCAiK1ErIiBhZnRlciBhIHN0cmVhbSB3YXMg''@;'; put 'put ''ZGVzdHJveWVkIn0pLG1lKCJFUlJfTVVMVElQTEVfQ0FMTEJBQ0siLCJDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSxtZSgiRVJSX1NUUkVBTV9DQU5OT1RfUElQRSIsIkNhbm5vdCBwaXBlLCBub3QgcmVhZGFibGUiKSxtZSgiRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQiLCJ3''@;'; put 'put ''cml0ZSBhZnRlciBlbmQiKSxtZSgiRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyIsIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIixUeXBlRXJyb3IpLG1lKCJFUlJfVU5LTk9XTl9FTkNPRElORyIsZnVuY3Rpb24oUSl7cmV0dXJuIlVua25vd24gZW5jb2Rpbmc6ICIrUX0sVHlw''@;'; put 'put ''ZUVycm9yKSxtZSgiRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVCIsInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50IiksWGUuZXhwb3J0cy5xPUx9LDQxMzM5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKFkpe3Zh''@;'; put 'put ''ciBXPVtdO2Zvcih2YXIgTiBpbiBZKVcucHVzaChOKTtyZXR1cm4gV307WGUuZXhwb3J0cz1qO3ZhciBCPUwoMzE1NCksRT1MKDIwNTIwKTtMKDgzODk0KShqLEIpO2Zvcih2YXIgRWU9bWUoRS5wcm90b3R5cGUpLFU9MDtVPEVlLmxlbmd0aDtVKyspe3ZhciBRPUVlW1VdO2oucHJvdG90eXBl''@;'; put 'put ''W1FdfHwoai5wcm90b3R5cGVbUV09RS5wcm90b3R5cGVbUV0pfWZ1bmN0aW9uIGooWSl7aWYoISh0aGlzIGluc3RhbmNlb2YgaikpcmV0dXJuIG5ldyBqKFkpO0IuY2FsbCh0aGlzLFkpLEUuY2FsbCh0aGlzLFkpLHRoaXMuYWxsb3dIYWxmT3Blbj0hMCxZJiYoITE9PT1ZLnJlYWRhYmxlJiYo''@;'; put 'put ''dGhpcy5yZWFkYWJsZT0hMSksITE9PT1ZLndyaXRhYmxlJiYodGhpcy53cml0YWJsZT0hMSksITE9PT1ZLmFsbG93SGFsZk9wZW4mJih0aGlzLmFsbG93SGFsZk9wZW49ITEsdGhpcy5vbmNlKCJlbmQiLHJlKSkpfWZ1bmN0aW9uIHJlKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZHx8cHJv''@;'; put 'put ''Y2Vzcy5uZXh0VGljayhhZSx0aGlzKX1mdW5jdGlvbiBhZShZKXtZLmVuZCgpfU9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdo''@;'; put 'put ''V2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eShqLnByb3RvdHlwZSwid3JpdGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoai5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFi''@;'; put 'put ''bGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKFcp''@;'; put 'put ''e3ZvaWQgMD09PXRoaXMuX3JlYWRhYmxlU3RhdGV8fHZvaWQgMD09PXRoaXMuX3dyaXRhYmxlU3RhdGV8fCh0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD1XLHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPVcpfX0pfSw1NjA3MTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7WGUu''@;'; put 'put ''ZXhwb3J0cz1CO3ZhciBtZT1MKDYwMjUpO2Z1bmN0aW9uIEIoRSl7aWYoISh0aGlzIGluc3RhbmNlb2YgQikpcmV0dXJuIG5ldyBCKEUpO21lLmNhbGwodGhpcyxFKX1MKDgzODk0KShCLG1lKSxCLnByb3RvdHlwZS5fdHJhbnNmb3JtPWZ1bmN0aW9uKEUsRWUsVSl7VShudWxsLEUpfX0sMzE1''@;'; put 'put ''NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lO1hlLmV4cG9ydHM9aGUsaGUuUmVhZGFibGVTdGF0ZT1NZSxMKDU5MDY5KTt2YXIgWSxFPWZ1bmN0aW9uKEJ0LG9uKXtyZXR1cm4gQnQubGlzdGVuZXJzKG9uKS5sZW5ndGh9LEVlPUwoNDk3MCksVT1MKDkzMTcyKS5CdWZmZXIsUT1n''@;'; put 'put ''bG9iYWwuVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9LGFlPUwoOTQ2MTYpO1k9YWUmJmFlLmRlYnVnbG9nP2FlLmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIHZlLEFlLGtlLFc9TCgyNTAxOSksTj1MKDQxOTIwKSxLPUwoNDcxMDIpLmdldEhpZ2hXYXRlck1hcmssSj1MKDcw''@;'; put 'put ''ODkxKS5xLHNlPUouRVJSX0lOVkFMSURfQVJHX1RZUEUsb2U9Si5FUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GLGNlPUouRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsZGU9Si5FUlJfU1RSRUFNX1VOU0hJRlRfQUZURVJfRU5EX0VWRU5UO0woODM4OTQpKGhlLEVlKTt2YXIgU2U9Ti5lcnJv''@;'; put 'put ''ck9yRGVzdHJveSxJZT1bImVycm9yIiwiY2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1bWUiXTtmdW5jdGlvbiBNZShodCxCdCxvbil7bWU9bWV8fEwoNDEzMzkpLCJib29sZWFuIiE9dHlwZW9mIG9uJiYob249QnQgaW5zdGFuY2VvZiBtZSksdGhpcy5vYmplY3RNb2RlPSEhKGh0PWh0''@;'; put 'put ''fHx7fSkub2JqZWN0TW9kZSxvbiYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhaHQucmVhZGFibGVPYmplY3RNb2RlKSx0aGlzLmhpZ2hXYXRlck1hcms9Syh0aGlzLGh0LCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLG9uKSx0aGlzLmJ1ZmZlcj1uZXcgVyx0aGlzLmxlbmd0''@;'; put 'put ''aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRo''@;'; put 'put ''aXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT1odC5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWh0LmF1dG9EZXN0cm95LHRoaXMuZGVzdHJveWVkPSExLHRoaXMuZGVmYXVsdEVuY29k''@;'; put 'put ''aW5nPWh0LmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLGh0LmVuY29kaW5nJiYodmV8fCh2ZT1MKDczMDU0KS5zKSx0aGlzLmRlY29kZXI9bmV3IHZlKGh0LmVu''@;'; put 'put ''Y29kaW5nKSx0aGlzLmVuY29kaW5nPWh0LmVuY29kaW5nKX1mdW5jdGlvbiBoZShodCl7aWYobWU9bWV8fEwoNDEzMzkpLCEodGhpcyBpbnN0YW5jZW9mIGhlKSlyZXR1cm4gbmV3IGhlKGh0KTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBNZShodCx0aGlzLHRoaXMgaW5zdGFuY2VvZiBtZSks''@;'; put 'put ''dGhpcy5yZWFkYWJsZT0hMCxodCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBodC5yZWFkJiYodGhpcy5fcmVhZD1odC5yZWFkKSwiZnVuY3Rpb24iPT10eXBlb2YgaHQuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9aHQuZGVzdHJveSkpLEVlLmNhbGwodGhpcyl9ZnVuY3Rpb24gTyhodCxCdCxvbixf''@;'; put 'put ''dCx0dCl7WSgicmVhZGFibGVBZGRDaHVuayIsQnQpO3ZhciBsdCxldD1odC5fcmVhZGFibGVTdGF0ZTtpZihudWxsPT09QnQpZXQucmVhZGluZz0hMSxmdW5jdGlvbiBWKGh0LEJ0KXtpZihZKCJvbkVvZkNodW5rIiksIUJ0LmVuZGVkKXtpZihCdC5kZWNvZGVyKXt2YXIgb249QnQuZGVjb2Rl''@;'; put 'put ''ci5lbmQoKTtvbiYmb24ubGVuZ3RoJiYoQnQuYnVmZmVyLnB1c2gob24pLEJ0Lmxlbmd0aCs9QnQub2JqZWN0TW9kZT8xOm9uLmxlbmd0aCl9QnQuZW5kZWQ9ITAsQnQuc3luYz9UKGh0KTooQnQubmVlZFJlYWRhYmxlPSExLEJ0LmVtaXR0ZWRSZWFkYWJsZXx8KEJ0LmVtaXR0ZWRSZWFkYWJs''@;'; put 'put ''ZT0hMCxTKGh0KSkpfX0oaHQsZXQpO2Vsc2UgaWYodHR8fChsdD1mdW5jdGlvbiBlZShodCxCdCl7dmFyIG9uO3JldHVybiFmdW5jdGlvbiByZShodCl7cmV0dXJuIFUuaXNCdWZmZXIoaHQpfHxodCBpbnN0YW5jZW9mIFF9KEJ0KSYmInN0cmluZyIhPXR5cGVvZiBCdCYmdm9pZCAwIT09QnQm''@;'; put 'put ''JiFodC5vYmplY3RNb2RlJiYob249bmV3IHNlKCJjaHVuayIsWyJzdHJpbmciLCJCdWZmZXIiLCJVaW50OEFycmF5Il0sQnQpKSxvbn0oZXQsQnQpKSxsdClTZShodCxsdCk7ZWxzZSBpZihldC5vYmplY3RNb2RlfHxCdCYmQnQubGVuZ3RoPjApaWYoInN0cmluZyIhPXR5cGVvZiBCdCYmIWV0''@;'; put 'put ''Lm9iamVjdE1vZGUmJk9iamVjdC5nZXRQcm90b3R5cGVPZihCdCkhPT1VLnByb3RvdHlwZSYmKEJ0PWZ1bmN0aW9uIGooaHQpe3JldHVybiBVLmZyb20oaHQpfShCdCkpLF90KWV0LmVuZEVtaXR0ZWQ/U2UoaHQsbmV3IGRlKTp6KGh0LGV0LEJ0LCEwKTtlbHNlIGlmKGV0LmVuZGVkKVNlKGh0''@;'; put 'put ''LG5ldyBvZSk7ZWxzZXtpZihldC5kZXN0cm95ZWQpcmV0dXJuITE7ZXQucmVhZGluZz0hMSxldC5kZWNvZGVyJiYhb24/KEJ0PWV0LmRlY29kZXIud3JpdGUoQnQpLGV0Lm9iamVjdE1vZGV8fDAhPT1CdC5sZW5ndGg/eihodCxldCxCdCwhMSk6RihodCxldCkpOnooaHQsZXQsQnQsITEpfWVs''@;'; put 'put ''c2UgX3R8fChldC5yZWFkaW5nPSExLEYoaHQsZXQpKTtyZXR1cm4hZXQuZW5kZWQmJihldC5sZW5ndGg8ZXQuaGlnaFdhdGVyTWFya3x8MD09PWV0Lmxlbmd0aCl9ZnVuY3Rpb24geihodCxCdCxvbixfdCl7QnQuZmxvd2luZyYmMD09PUJ0Lmxlbmd0aCYmIUJ0LnN5bmM/KEJ0LmF3YWl0RHJh''@;'; put 'put ''aW49MCxodC5lbWl0KCJkYXRhIixvbikpOihCdC5sZW5ndGgrPUJ0Lm9iamVjdE1vZGU/MTpvbi5sZW5ndGgsX3Q/QnQuYnVmZmVyLnVuc2hpZnQob24pOkJ0LmJ1ZmZlci5wdXNoKG9uKSxCdC5uZWVkUmVhZGFibGUmJlQoaHQpKSxGKGh0LEJ0KX1PYmplY3QuZGVmaW5lUHJvcGVydHkoaGUu''@;'; put 'put ''cHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKEJ0KXshdGhpcy5fcmVhZGFibGVTdGF0ZXx8KHRoaXMu''@;'; put 'put ''X3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPUJ0KX19KSxoZS5wcm90b3R5cGUuZGVzdHJveT1OLmRlc3Ryb3ksaGUucHJvdG90eXBlLl91bmRlc3Ryb3k9Ti51bmRlc3Ryb3ksaGUucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKGh0LEJ0KXtCdChodCl9LGhlLnByb3RvdHlwZS5wdXNoPWZ1''@;'; put 'put ''bmN0aW9uKGh0LEJ0KXt2YXIgX3Qsb249dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gb24ub2JqZWN0TW9kZT9fdD0hMDoic3RyaW5nIj09dHlwZW9mIGh0JiYoKEJ0PUJ0fHxvbi5kZWZhdWx0RW5jb2RpbmcpIT09b24uZW5jb2RpbmcmJihodD1VLmZyb20oaHQsQnQpLEJ0PSIiKSxfdD0h''@;'; put 'put ''MCksTyh0aGlzLGh0LEJ0LCExLF90KX0saGUucHJvdG90eXBlLnVuc2hpZnQ9ZnVuY3Rpb24oaHQpe3JldHVybiBPKHRoaXMsaHQsbnVsbCwhMCwhMSl9LGhlLnByb3RvdHlwZS5pc1BhdXNlZD1mdW5jdGlvbigpe3JldHVybiExPT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxoZS5w''@;'; put 'put ''cm90b3R5cGUuc2V0RW5jb2Rpbmc9ZnVuY3Rpb24oaHQpe3ZlfHwodmU9TCg3MzA1NCkucyk7dmFyIEJ0PW5ldyB2ZShodCk7dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyPUJ0LHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29k''@;'; put 'put ''aW5nO2Zvcih2YXIgb249dGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuaGVhZCxfdD0iIjtudWxsIT09b247KV90Kz1CdC53cml0ZShvbi5kYXRhKSxvbj1vbi5uZXh0O3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5jbGVhcigpLCIiIT09X3QmJnRoaXMuX3JlYWRhYmxlU3Rh''@;'; put 'put ''dGUuYnVmZmVyLnB1c2goX3QpLHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RoPV90Lmxlbmd0aCx0aGlzfTt2YXIgbmU9MTA3Mzc0MTgyNDtmdW5jdGlvbiBQKGh0LEJ0KXtyZXR1cm4gaHQ8PTB8fDA9PT1CdC5sZW5ndGgmJkJ0LmVuZGVkPzA6QnQub2JqZWN0TW9kZT8xOmh0IT1odD9CdC5m''@;'; put 'put ''bG93aW5nJiZCdC5sZW5ndGg/QnQuYnVmZmVyLmhlYWQuZGF0YS5sZW5ndGg6QnQubGVuZ3RoOihodD5CdC5oaWdoV2F0ZXJNYXJrJiYoQnQuaGlnaFdhdGVyTWFyaz1mdW5jdGlvbiB4KGh0KXtyZXR1cm4gaHQ+PW5lP2h0PW5lOihodC0tLGh0fD1odD4+PjEsaHR8PWh0Pj4+MixodHw9aHQ+''@;'; put 'put ''Pj40LGh0fD1odD4+PjgsaHR8PWh0Pj4+MTYsaHQrKyksaHR9KGh0KSksaHQ8PUJ0Lmxlbmd0aD9odDpCdC5lbmRlZD9CdC5sZW5ndGg6KEJ0Lm5lZWRSZWFkYWJsZT0hMCwwKSl9ZnVuY3Rpb24gVChodCl7dmFyIEJ0PWh0Ll9yZWFkYWJsZVN0YXRlO1koImVtaXRSZWFkYWJsZSIsQnQubmVl''@;'; put 'put ''ZFJlYWRhYmxlLEJ0LmVtaXR0ZWRSZWFkYWJsZSksQnQubmVlZFJlYWRhYmxlPSExLEJ0LmVtaXR0ZWRSZWFkYWJsZXx8KFkoImVtaXRSZWFkYWJsZSIsQnQuZmxvd2luZyksQnQuZW1pdHRlZFJlYWRhYmxlPSEwLHByb2Nlc3MubmV4dFRpY2soUyxodCkpfWZ1bmN0aW9uIFMoaHQpe3ZhciBC''@;'; put 'put ''dD1odC5fcmVhZGFibGVTdGF0ZTtZKCJlbWl0UmVhZGFibGVfIixCdC5kZXN0cm95ZWQsQnQubGVuZ3RoLEJ0LmVuZGVkKSwhQnQuZGVzdHJveWVkJiYoQnQubGVuZ3RofHxCdC5lbmRlZCkmJihodC5lbWl0KCJyZWFkYWJsZSIpLEJ0LmVtaXR0ZWRSZWFkYWJsZT0hMSksQnQubmVlZFJlYWRh''@;'; put 'put ''YmxlPSFCdC5mbG93aW5nJiYhQnQuZW5kZWQmJkJ0Lmxlbmd0aDw9QnQuaGlnaFdhdGVyTWFyayxndChodCl9ZnVuY3Rpb24gRihodCxCdCl7QnQucmVhZGluZ01vcmV8fChCdC5yZWFkaW5nTW9yZT0hMCxwcm9jZXNzLm5leHRUaWNrKHllLGh0LEJ0KSl9ZnVuY3Rpb24geWUoaHQsQnQpe2Zv''@;'; put 'put ''cig7IUJ0LnJlYWRpbmcmJiFCdC5lbmRlZCYmKEJ0Lmxlbmd0aDxCdC5oaWdoV2F0ZXJNYXJrfHxCdC5mbG93aW5nJiYwPT09QnQubGVuZ3RoKTspe3ZhciBvbj1CdC5sZW5ndGg7aWYoWSgibWF5YmVSZWFkTW9yZSByZWFkIDAiKSxodC5yZWFkKDApLG9uPT09QnQubGVuZ3RoKWJyZWFrfUJ0''@;'; put 'put ''LnJlYWRpbmdNb3JlPSExfWZ1bmN0aW9uIERlKGh0KXt2YXIgQnQ9aHQuX3JlYWRhYmxlU3RhdGU7QnQucmVhZGFibGVMaXN0ZW5pbmc9aHQubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLEJ0LnJlc3VtZVNjaGVkdWxlZCYmIUJ0LnBhdXNlZD9CdC5mbG93aW5nPSEwOmh0Lmxpc3RlbmVy''@;'; put 'put ''Q291bnQoImRhdGEiKT4wJiZodC5yZXN1bWUoKX1mdW5jdGlvbiBQZShodCl7WSgicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIiksaHQucmVhZCgwKX1mdW5jdGlvbiAkZShodCxCdCl7WSgicmVzdW1lIixCdC5yZWFkaW5nKSxCdC5yZWFkaW5nfHxodC5yZWFkKDApLEJ0LnJlc3VtZVNjaGVk''@;'; put 'put ''dWxlZD0hMSxodC5lbWl0KCJyZXN1bWUiKSxndChodCksQnQuZmxvd2luZyYmIUJ0LnJlYWRpbmcmJmh0LnJlYWQoMCl9ZnVuY3Rpb24gZ3QoaHQpe3ZhciBCdD1odC5fcmVhZGFibGVTdGF0ZTtmb3IoWSgiZmxvdyIsQnQuZmxvd2luZyk7QnQuZmxvd2luZyYmbnVsbCE9PWh0LnJlYWQoKTsp''@;'; put 'put ''O31mdW5jdGlvbiB3dChodCxCdCl7cmV0dXJuIDA9PT1CdC5sZW5ndGg/bnVsbDooQnQub2JqZWN0TW9kZT9vbj1CdC5idWZmZXIuc2hpZnQoKTohaHR8fGh0Pj1CdC5sZW5ndGg/KG9uPUJ0LmRlY29kZXI/QnQuYnVmZmVyLmpvaW4oIiIpOjE9PT1CdC5idWZmZXIubGVuZ3RoP0J0LmJ1ZmZl''@;'; put 'put ''ci5maXJzdCgpOkJ0LmJ1ZmZlci5jb25jYXQoQnQubGVuZ3RoKSxCdC5idWZmZXIuY2xlYXIoKSk6b249QnQuYnVmZmVyLmNvbnN1bWUoaHQsQnQuZGVjb2Rlciksb24pO3ZhciBvbn1mdW5jdGlvbiBtdChodCl7dmFyIEJ0PWh0Ll9yZWFkYWJsZVN0YXRlO1koImVuZFJlYWRhYmxlIixCdC5l''@;'; put 'put ''bmRFbWl0dGVkKSxCdC5lbmRFbWl0dGVkfHwoQnQuZW5kZWQ9ITAscHJvY2Vzcy5uZXh0VGljayh2dCxCdCxodCkpfWZ1bmN0aW9uIHZ0KGh0LEJ0KXtpZihZKCJlbmRSZWFkYWJsZU5UIixodC5lbmRFbWl0dGVkLGh0Lmxlbmd0aCksIWh0LmVuZEVtaXR0ZWQmJjA9PT1odC5sZW5ndGgmJiho''@;'; put 'put ''dC5lbmRFbWl0dGVkPSEwLEJ0LnJlYWRhYmxlPSExLEJ0LmVtaXQoImVuZCIpLGh0LmF1dG9EZXN0cm95KSl7dmFyIG9uPUJ0Ll93cml0YWJsZVN0YXRlOyghb258fG9uLmF1dG9EZXN0cm95JiZvbi5maW5pc2hlZCkmJkJ0LmRlc3Ryb3koKX19ZnVuY3Rpb24gQXQoaHQsQnQpe2Zvcih2YXIg''@;'; put 'put ''b249MCxfdD1odC5sZW5ndGg7b248X3Q7b24rKylpZihodFtvbl09PT1CdClyZXR1cm4gb247cmV0dXJuLTF9aGUucHJvdG90eXBlLnJlYWQ9ZnVuY3Rpb24oaHQpe1koInJlYWQiLGh0KSxodD1wYXJzZUludChodCwxMCk7dmFyIEJ0PXRoaXMuX3JlYWRhYmxlU3RhdGUsb249aHQ7aWYoMCE9''@;'; put 'put ''PWh0JiYoQnQuZW1pdHRlZFJlYWRhYmxlPSExKSwwPT09aHQmJkJ0Lm5lZWRSZWFkYWJsZSYmKCgwIT09QnQuaGlnaFdhdGVyTWFyaz9CdC5sZW5ndGg+PUJ0LmhpZ2hXYXRlck1hcms6QnQubGVuZ3RoPjApfHxCdC5lbmRlZCkpcmV0dXJuIFkoInJlYWQ6IGVtaXRSZWFkYWJsZSIsQnQubGVu''@;'; put 'put ''Z3RoLEJ0LmVuZGVkKSwwPT09QnQubGVuZ3RoJiZCdC5lbmRlZD9tdCh0aGlzKTpUKHRoaXMpLG51bGw7aWYoMD09PShodD1QKGh0LEJ0KSkmJkJ0LmVuZGVkKXJldHVybiAwPT09QnQubGVuZ3RoJiZtdCh0aGlzKSxudWxsO3ZhciB0dCxfdD1CdC5uZWVkUmVhZGFibGU7cmV0dXJuIFkoIm5l''@;'; put 'put ''ZWQgcmVhZGFibGUiLF90KSwoMD09PUJ0Lmxlbmd0aHx8QnQubGVuZ3RoLWh0PEJ0LmhpZ2hXYXRlck1hcmspJiZZKCJsZW5ndGggbGVzcyB0aGFuIHdhdGVybWFyayIsX3Q9ITApLEJ0LmVuZGVkfHxCdC5yZWFkaW5nP1koInJlYWRpbmcgb3IgZW5kZWQiLF90PSExKTpfdCYmKFkoImRvIHJl''@;'; put 'put ''YWQiKSxCdC5yZWFkaW5nPSEwLEJ0LnN5bmM9ITAsMD09PUJ0Lmxlbmd0aCYmKEJ0Lm5lZWRSZWFkYWJsZT0hMCksdGhpcy5fcmVhZChCdC5oaWdoV2F0ZXJNYXJrKSxCdC5zeW5jPSExLEJ0LnJlYWRpbmd8fChodD1QKG9uLEJ0KSkpLG51bGw9PT0odHQ9aHQ+MD93dChodCxCdCk6bnVsbCk/''@;'; put 'put ''KEJ0Lm5lZWRSZWFkYWJsZT1CdC5sZW5ndGg8PUJ0LmhpZ2hXYXRlck1hcmssaHQ9MCk6KEJ0Lmxlbmd0aC09aHQsQnQuYXdhaXREcmFpbj0wKSwwPT09QnQubGVuZ3RoJiYoQnQuZW5kZWR8fChCdC5uZWVkUmVhZGFibGU9ITApLG9uIT09aHQmJkJ0LmVuZGVkJiZtdCh0aGlzKSksbnVsbCE9''@;'; put 'put ''PXR0JiZ0aGlzLmVtaXQoImRhdGEiLHR0KSx0dH0saGUucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKGh0KXtTZSh0aGlzLG5ldyBjZSgiX3JlYWQoKSIpKX0saGUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oaHQsQnQpe3ZhciBvbj10aGlzLF90PXRoaXMuX3JlYWRhYmxlU3RhdGU7c3dpdGNo''@;'; put 'put ''KF90LnBpcGVzQ291bnQpe2Nhc2UgMDpfdC5waXBlcz1odDticmVhaztjYXNlIDE6X3QucGlwZXM9W190LnBpcGVzLGh0XTticmVhaztkZWZhdWx0Ol90LnBpcGVzLnB1c2goaHQpfV90LnBpcGVzQ291bnQrPTEsWSgicGlwZSBjb3VudD0lZCBvcHRzPSVqIixfdC5waXBlc0NvdW50LEJ0KTt2''@;'; put 'put ''YXIgZXQ9QnQmJiExPT09QnQuZW5kfHxodD09PXByb2Nlc3Muc3Rkb3V0fHxodD09PXByb2Nlc3Muc3RkZXJyP0p0Okx0O2Z1bmN0aW9uIEx0KCl7WSgib25lbmQiKSxodC5lbmQoKX1fdC5lbmRFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2soZXQpOm9uLm9uY2UoImVuZCIsZXQpLGh0Lm9uKCJ1''@;'; put 'put ''bnBpcGUiLGZ1bmN0aW9uIGx0KGduLGRuKXtZKCJvbnVucGlwZSIpLGduPT09b24mJmRuJiYhMT09PWRuLmhhc1VucGlwZWQmJihkbi5oYXNVbnBpcGVkPSEwLGZ1bmN0aW9uIEh0KCl7WSgiY2xlYW51cCIpLGh0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIseXQpLGh0LnJlbW92ZUxpc3RlbmVy''@;'; put 'put ''KCJmaW5pc2giLGp0KSxodC5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLEN0KSxodC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLFVlKSxodC5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixsdCksb24ucmVtb3ZlTGlzdGVuZXIoImVuZCIsTHQpLG9uLnJlbW92ZUxpc3RlbmVyKCJlbmQiLEp0KSxvbi5y''@;'; put 'put ''ZW1vdmVMaXN0ZW5lcigiZGF0YSIsR2UpLGZ0PSEwLF90LmF3YWl0RHJhaW4mJighaHQuX3dyaXRhYmxlU3RhdGV8fGh0Ll93cml0YWJsZVN0YXRlLm5lZWREcmFpbikmJkN0KCl9KCkpfSk7dmFyIEN0PWZ1bmN0aW9uIENlKGh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgb249aHQuX3JlYWRh''@;'; put 'put ''YmxlU3RhdGU7WSgicGlwZU9uRHJhaW4iLG9uLmF3YWl0RHJhaW4pLG9uLmF3YWl0RHJhaW4mJm9uLmF3YWl0RHJhaW4tLSwwPT09b24uYXdhaXREcmFpbiYmRShodCwiZGF0YSIpJiYob24uZmxvd2luZz0hMCxndChodCkpfX0ob24pO2h0Lm9uKCJkcmFpbiIsQ3QpO3ZhciBmdD0hMTtmdW5j''@;'; put 'put ''dGlvbiBHZShnbil7WSgib25kYXRhIik7dmFyIGRuPWh0LndyaXRlKGduKTtZKCJkZXN0LndyaXRlIixkbiksITE9PT1kbiYmKCgxPT09X3QucGlwZXNDb3VudCYmX3QucGlwZXM9PT1odHx8X3QucGlwZXNDb3VudD4xJiYtMSE9PUF0KF90LnBpcGVzLGh0KSkmJiFmdCYmKFkoImZhbHNlIHdy''@;'; put 'put ''aXRlIHJlc3BvbnNlLCBwYXVzZSIsX3QuYXdhaXREcmFpbiksX3QuYXdhaXREcmFpbisrKSxvbi5wYXVzZSgpKX1mdW5jdGlvbiBVZShnbil7WSgib25lcnJvciIsZ24pLEp0KCksaHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixVZSksMD09PUUoaHQsImVycm9yIikmJlNlKGh0LGduKX1mdW5j''@;'; put 'put ''dGlvbiB5dCgpe2h0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLGp0KSxKdCgpfWZ1bmN0aW9uIGp0KCl7WSgib25maW5pc2giKSxodC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLHl0KSxKdCgpfWZ1bmN0aW9uIEp0KCl7WSgidW5waXBlIiksb24udW5waXBlKGh0KX1yZXR1cm4gb24ub24oImRh''@;'; put 'put ''dGEiLEdlKSxmdW5jdGlvbiBUZShodCxCdCxvbil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGh0LnByZXBlbmRMaXN0ZW5lcilyZXR1cm4gaHQucHJlcGVuZExpc3RlbmVyKEJ0LG9uKTtodC5fZXZlbnRzJiZodC5fZXZlbnRzW0J0XT9BcnJheS5pc0FycmF5KGh0Ll9ldmVudHNbQnRdKT9odC5f''@;'; put 'put ''ZXZlbnRzW0J0XS51bnNoaWZ0KG9uKTpodC5fZXZlbnRzW0J0XT1bb24saHQuX2V2ZW50c1tCdF1dOmh0Lm9uKEJ0LG9uKX0oaHQsImVycm9yIixVZSksaHQub25jZSgiY2xvc2UiLHl0KSxodC5vbmNlKCJmaW5pc2giLGp0KSxodC5lbWl0KCJwaXBlIixvbiksX3QuZmxvd2luZ3x8KFkoInBp''@;'; put 'put ''cGUgcmVzdW1lIiksb24ucmVzdW1lKCkpLGh0fSxoZS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKGh0KXt2YXIgQnQ9dGhpcy5fcmVhZGFibGVTdGF0ZSxvbj17aGFzVW5waXBlZDohMX07aWYoMD09PUJ0LnBpcGVzQ291bnQpcmV0dXJuIHRoaXM7aWYoMT09PUJ0LnBpcGVzQ291bnQpcmV0''@;'; put 'put ''dXJuIGh0JiZodCE9PUJ0LnBpcGVzfHwoaHR8fChodD1CdC5waXBlcyksQnQucGlwZXM9bnVsbCxCdC5waXBlc0NvdW50PTAsQnQuZmxvd2luZz0hMSxodCYmaHQuZW1pdCgidW5waXBlIix0aGlzLG9uKSksdGhpcztpZighaHQpe3ZhciBfdD1CdC5waXBlcyx0dD1CdC5waXBlc0NvdW50O0J0''@;'; put 'put ''LnBpcGVzPW51bGwsQnQucGlwZXNDb3VudD0wLEJ0LmZsb3dpbmc9ITE7Zm9yKHZhciBldD0wO2V0PHR0O2V0KyspX3RbZXRdLmVtaXQoInVucGlwZSIsdGhpcyx7aGFzVW5waXBlZDohMX0pO3JldHVybiB0aGlzfXZhciBsdD1BdChCdC5waXBlcyxodCk7cmV0dXJuLTE9PT1sdHx8KEJ0LnBp''@;'; put 'put ''cGVzLnNwbGljZShsdCwxKSxCdC5waXBlc0NvdW50LT0xLDE9PT1CdC5waXBlc0NvdW50JiYoQnQucGlwZXM9QnQucGlwZXNbMF0pLGh0LmVtaXQoInVucGlwZSIsdGhpcyxvbikpLHRoaXN9LGhlLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1oZS5wcm90b3R5cGUub249ZnVuY3Rpb24oaHQsQnQp''@;'; put 'put ''e3ZhciBvbj1FZS5wcm90b3R5cGUub24uY2FsbCh0aGlzLGh0LEJ0KSxfdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiJkYXRhIj09PWh0PyhfdC5yZWFkYWJsZUxpc3RlbmluZz10aGlzLmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCwhMSE9PV90LmZsb3dpbmcmJnRoaXMucmVzdW1l''@;'; put 'put ''KCkpOiJyZWFkYWJsZSI9PT1odCYmIV90LmVuZEVtaXR0ZWQmJiFfdC5yZWFkYWJsZUxpc3RlbmluZyYmKF90LnJlYWRhYmxlTGlzdGVuaW5nPV90Lm5lZWRSZWFkYWJsZT0hMCxfdC5mbG93aW5nPSExLF90LmVtaXR0ZWRSZWFkYWJsZT0hMSxZKCJvbiByZWFkYWJsZSIsX3QubGVuZ3RoLF90''@;'; put 'put ''LnJlYWRpbmcpLF90Lmxlbmd0aD9UKHRoaXMpOl90LnJlYWRpbmd8fHByb2Nlc3MubmV4dFRpY2soUGUsdGhpcykpLG9ufSxoZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24oaHQsQnQpe3ZhciBvbj1FZS5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIuY2FsbCh0aGlzLGh0LEJ0''@;'; put 'put ''KTtyZXR1cm4icmVhZGFibGUiPT09aHQmJnByb2Nlc3MubmV4dFRpY2soRGUsdGhpcyksb259LGhlLnByb3RvdHlwZS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZnVuY3Rpb24oaHQpe3ZhciBCdD1FZS5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1''@;'; put 'put ''cm4oInJlYWRhYmxlIj09PWh0fHx2b2lkIDA9PT1odCkmJnByb2Nlc3MubmV4dFRpY2soRGUsdGhpcyksQnR9LGhlLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgaHQ9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gaHQuZmxvd2luZ3x8KFkoInJlc3VtZSIpLGh0LmZsb3dpbmc9''@;'; put 'put ''IWh0LnJlYWRhYmxlTGlzdGVuaW5nLGZ1bmN0aW9uIFFlKGh0LEJ0KXtCdC5yZXN1bWVTY2hlZHVsZWR8fChCdC5yZXN1bWVTY2hlZHVsZWQ9ITAscHJvY2Vzcy5uZXh0VGljaygkZSxodCxCdCkpfSh0aGlzLGh0KSksaHQucGF1c2VkPSExLHRoaXN9LGhlLnByb3RvdHlwZS5wYXVzZT1mdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiBZKCJjYWxsIHBhdXNlIGZsb3dpbmc9JWoiLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZyksITEhPT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcmJihZKCJwYXVzZSIpLHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz0hMSx0aGlzLmVtaXQoInBhdXNlIikp''@;'; put 'put ''LHRoaXMuX3JlYWRhYmxlU3RhdGUucGF1c2VkPSEwLHRoaXN9LGhlLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKGh0KXt2YXIgQnQ9dGhpcyxvbj10aGlzLl9yZWFkYWJsZVN0YXRlLF90PSExO2Zvcih2YXIgdHQgaW4gaHQub24oImVuZCIsZnVuY3Rpb24oKXtpZihZKCJ3cmFwcGVkIGVuZCIp''@;'; put 'put ''LG9uLmRlY29kZXImJiFvbi5lbmRlZCl7dmFyIGx0PW9uLmRlY29kZXIuZW5kKCk7bHQmJmx0Lmxlbmd0aCYmQnQucHVzaChsdCl9QnQucHVzaChudWxsKX0pLGh0Lm9uKCJkYXRhIixmdW5jdGlvbihsdCl7WSgid3JhcHBlZCBkYXRhIiksb24uZGVjb2RlciYmKGx0PW9uLmRlY29kZXIud3Jp''@;'; put 'put ''dGUobHQpKSxvbi5vYmplY3RNb2RlJiZudWxsPT1sdHx8IShvbi5vYmplY3RNb2RlfHxsdCYmbHQubGVuZ3RoKXx8QnQucHVzaChsdCl8fChfdD0hMCxodC5wYXVzZSgpKX0pLGh0KXZvaWQgMD09PXRoaXNbdHRdJiYiZnVuY3Rpb24iPT10eXBlb2YgaHRbdHRdJiYodGhpc1t0dF09ZnVuY3Rp''@;'; put 'put ''b24oTHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBodFtMdF0uYXBwbHkoaHQsYXJndW1lbnRzKX19KHR0KSk7Zm9yKHZhciBldD0wO2V0PEllLmxlbmd0aDtldCsrKWh0Lm9uKEllW2V0XSx0aGlzLmVtaXQuYmluZCh0aGlzLEllW2V0XSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9u''@;'; put 'put ''KGx0KXtZKCJ3cmFwcGVkIF9yZWFkIixsdCksX3QmJihfdD0hMSxodC5yZXN1bWUoKSl9LHRoaXN9LCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihoZS5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PUFlJiYoQWU9TCgxMzg3Mikp''@;'; put 'put ''LEFlKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGhlLnByb3RvdHlwZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''eShoZS5wcm90b3R5cGUsInJlYWRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXJ9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGhlLnByb3RvdHlwZSwicmVhZGFibGVG''@;'; put 'put ''bG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24oQnQpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9QnQpfX0pLGhlLl9mcm9tTGlzdD13dCxP''@;'; put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoaGUucHJvdG90eXBlLCJyZWFkYWJsZUxlbmd0aCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUubGVuZ3RofX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihoZS5mcm9tPWZ1bmN0aW9uKGh0''@;'; put 'put ''LEJ0KXtyZXR1cm4gdm9pZCAwPT09a2UmJihrZT1MKDQ3NDEyKSksa2UoaGUsaHQsQnQpfSl9LDYwMjU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9cmU7dmFyIG1lPUwoNzA4OTEpLnEsQj1tZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxFPW1lLkVSUl9NVUxUSVBM''@;'; put 'put ''RV9DQUxMQkFDSyxFZT1tZS5FUlJfVFJBTlNGT1JNX0FMUkVBRFlfVFJBTlNGT1JNSU5HLFU9bWUuRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wLFE9TCg0MTMzOSk7ZnVuY3Rpb24gaihXLE4pe3ZhciB0ZT10aGlzLl90cmFuc2Zvcm1TdGF0ZTt0ZS50cmFuc2Zvcm1pbmc9ITE7dmFyIEs9''@;'; put 'put ''dGUud3JpdGVjYjtpZihudWxsPT09SylyZXR1cm4gdGhpcy5lbWl0KCJlcnJvciIsbmV3IEUpO3RlLndyaXRlY2h1bms9bnVsbCx0ZS53cml0ZWNiPW51bGwsbnVsbCE9TiYmdGhpcy5wdXNoKE4pLEsoVyk7dmFyIEo9dGhpcy5fcmVhZGFibGVTdGF0ZTtKLnJlYWRpbmc9ITEsKEoubmVlZFJl''@;'; put 'put ''YWRhYmxlfHxKLmxlbmd0aDxKLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEouaGlnaFdhdGVyTWFyayl9ZnVuY3Rpb24gcmUoVyl7aWYoISh0aGlzIGluc3RhbmNlb2YgcmUpKXJldHVybiBuZXcgcmUoVyk7US5jYWxsKHRoaXMsVyksdGhpcy5fdHJhbnNmb3JtU3RhdGU9e2FmdGVyVHJh''@;'; put 'put ''bnNmb3JtOmouYmluZCh0aGlzKSxuZWVkVHJhbnNmb3JtOiExLHRyYW5zZm9ybWluZzohMSx3cml0ZWNiOm51bGwsd3JpdGVjaHVuazpudWxsLHdyaXRlZW5jb2Rpbmc6bnVsbH0sdGhpcy5fcmVhZGFibGVTdGF0ZS5uZWVkUmVhZGFibGU9ITAsdGhpcy5fcmVhZGFibGVTdGF0ZS5zeW5jPSEx''@;'; put 'put ''LFcmJigiZnVuY3Rpb24iPT10eXBlb2YgVy50cmFuc2Zvcm0mJih0aGlzLl90cmFuc2Zvcm09Vy50cmFuc2Zvcm0pLCJmdW5jdGlvbiI9PXR5cGVvZiBXLmZsdXNoJiYodGhpcy5fZmx1c2g9Vy5mbHVzaCkpLHRoaXMub24oInByZWZpbmlzaCIsYWUpfWZ1bmN0aW9uIGFlKCl7dmFyIFc9dGhp''@;'; put 'put ''czsiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fZmx1c2h8fHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkP1kodGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKGZ1bmN0aW9uKE4sdGUpe1koVyxOLHRlKX0pfWZ1bmN0aW9uIFkoVyxOLHRlKXtpZihOKXJldHVybiBXLmVtaXQoImVycm9y''@;'; put 'put ''IixOKTtpZihudWxsIT10ZSYmVy5wdXNoKHRlKSxXLl93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgVTtpZihXLl90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IEVlO3JldHVybiBXLnB1c2gobnVsbCl9TCg4Mzg5NCkocmUsUSkscmUucHJvdG90eXBlLnB1c2g9''@;'; put 'put ''ZnVuY3Rpb24oVyxOKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtU3RhdGUubmVlZFRyYW5zZm9ybT0hMSxRLnByb3RvdHlwZS5wdXNoLmNhbGwodGhpcyxXLE4pfSxyZS5wcm90b3R5cGUuX3RyYW5zZm9ybT1mdW5jdGlvbihXLE4sdGUpe3RlKG5ldyBCKCJfdHJhbnNmb3JtKCkiKSl9LHJlLnBy''@;'; put 'put ''b3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oVyxOLHRlKXt2YXIgSz10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihLLndyaXRlY2I9dGUsSy53cml0ZWNodW5rPVcsSy53cml0ZWVuY29kaW5nPU4sIUsudHJhbnNmb3JtaW5nKXt2YXIgSj10aGlzLl9yZWFkYWJsZVN0YXRlOyhLLm5lZWRUcmFuc2Zv''@;'; put 'put ''cm18fEoubmVlZFJlYWRhYmxlfHxKLmxlbmd0aDxKLmhpZ2hXYXRlck1hcmspJiZ0aGlzLl9yZWFkKEouaGlnaFdhdGVyTWFyayl9fSxyZS5wcm90b3R5cGUuX3JlYWQ9ZnVuY3Rpb24oVyl7dmFyIE49dGhpcy5fdHJhbnNmb3JtU3RhdGU7bnVsbD09PU4ud3JpdGVjaHVua3x8Ti50cmFuc2Zv''@;'; put 'put ''cm1pbmc/Ti5uZWVkVHJhbnNmb3JtPSEwOihOLnRyYW5zZm9ybWluZz0hMCx0aGlzLl90cmFuc2Zvcm0oTi53cml0ZWNodW5rLE4ud3JpdGVlbmNvZGluZyxOLmFmdGVyVHJhbnNmb3JtKSl9LHJlLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihXLE4pe1EucHJvdG90eXBlLl9kZXN0cm95''@;'; put 'put ''LmNhbGwodGhpcyxXLGZ1bmN0aW9uKHRlKXtOKHRlKX0pfX0sMjA1MjA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoZ3Qpe3ZhciB3dD10aGlzO3RoaXMubmV4dD1udWxsLHRoaXMuZW50cnk9bnVsbCx0aGlzLmZpbmlzaD1mdW5jdGlvbigpeyFmdW5jdGlvbiAkZShndCx3''@;'; put 'put ''dCxtdCl7dmFyIHZ0PWd0LmVudHJ5O2ZvcihndC5lbnRyeT1udWxsO3Z0Oyl7dmFyIEF0PXZ0LmNhbGxiYWNrO3d0LnBlbmRpbmdjYi0tLEF0KG10KSx2dD12dC5uZXh0fXd0LmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PWd0fSh3dCxndCl9fXZhciBFO1hlLmV4cG9ydHM9TWUsTWUuV3JpdGFi''@;'; put 'put ''bGVTdGF0ZT1JZTt2YXIgVGUsRWU9e2RlcHJlY2F0ZTpMKDIzNTMyKX0sVT1MKDQ5NzApLFE9TCg5MzE3MikuQnVmZmVyLGo9Z2xvYmFsLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fSxZPUwoNDE5MjApLE49TCg0NzEwMikuZ2V0SGlnaFdhdGVyTWFyayx0ZT1MKDcwODkxKS5xLEs9dGUuRVJS''@;'; put 'put ''X0lOVkFMSURfQVJHX1RZUEUsSj10ZS5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxzZT10ZS5FUlJfTVVMVElQTEVfQ0FMTEJBQ0ssb2U9dGUuRVJSX1NUUkVBTV9DQU5OT1RfUElQRSxjZT10ZS5FUlJfU1RSRUFNX0RFU1RST1lFRCxkZT10ZS5FUlJfU1RSRUFNX05VTExfVkFMVUVTLHZl''@;'; put 'put ''PXRlLkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5ELEFlPXRlLkVSUl9VTktOT1dOX0VOQ09ESU5HLGtlPVkuZXJyb3JPckRlc3Ryb3k7ZnVuY3Rpb24gU2UoKXt9ZnVuY3Rpb24gSWUoZ3Qsd3QsbXQpe0U9RXx8TCg0MTMzOSksImJvb2xlYW4iIT10eXBlb2YgbXQmJihtdD13dCBpbnN0YW5j''@;'; put 'put ''ZW9mIEUpLHRoaXMub2JqZWN0TW9kZT0hIShndD1ndHx8e30pLm9iamVjdE1vZGUsbXQmJih0aGlzLm9iamVjdE1vZGU9dGhpcy5vYmplY3RNb2RlfHwhIWd0LndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPU4odGhpcyxndCwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIixt''@;'; put 'put ''dCksdGhpcy5maW5hbENhbGxlZD0hMSx0aGlzLm5lZWREcmFpbj0hMSx0aGlzLmVuZGluZz0hMSx0aGlzLmVuZGVkPSExLHRoaXMuZmluaXNoZWQ9ITEsdGhpcy5kZXN0cm95ZWQ9ITEsdGhpcy5kZWNvZGVTdHJpbmdzPSEoITE9PT1ndC5kZWNvZGVTdHJpbmdzKSx0aGlzLmRlZmF1bHRFbmNv''@;'; put 'put ''ZGluZz1ndC5kZWZhdWx0RW5jb2Rpbmd8fCJ1dGY4Iix0aGlzLmxlbmd0aD0wLHRoaXMud3JpdGluZz0hMSx0aGlzLmNvcmtlZD0wLHRoaXMuc3luYz0hMCx0aGlzLmJ1ZmZlclByb2Nlc3Npbmc9ITEsdGhpcy5vbndyaXRlPWZ1bmN0aW9uKEF0KXshZnVuY3Rpb24gVihndCx3dCl7dmFyIG10''@;'; put 'put ''PWd0Ll93cml0YWJsZVN0YXRlLHZ0PW10LnN5bmMsQXQ9bXQud3JpdGVjYjtpZigiZnVuY3Rpb24iIT10eXBlb2YgQXQpdGhyb3cgbmV3IHNlO2lmKGZ1bmN0aW9uIFAoZ3Qpe2d0LndyaXRpbmc9ITEsZ3Qud3JpdGVjYj1udWxsLGd0Lmxlbmd0aC09Z3Qud3JpdGVsZW4sZ3Qud3JpdGVsZW49''@;'; put 'put ''MH0obXQpLHd0KSFmdW5jdGlvbiB4KGd0LHd0LG10LHZ0LEF0KXstLXd0LnBlbmRpbmdjYixtdD8ocHJvY2Vzcy5uZXh0VGljayhBdCx2dCkscHJvY2Vzcy5uZXh0VGljayhQZSxndCx3dCksZ3QuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLGtlKGd0LHZ0KSk6KEF0KHZ0KSxndC5f''@;'; put 'put ''d3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsa2UoZ3QsdnQpLFBlKGd0LHd0KSl9KGd0LG10LHZ0LHd0LEF0KTtlbHNle3ZhciBodD15ZShtdCl8fGd0LmRlc3Ryb3llZDshaHQmJiFtdC5jb3JrZWQmJiFtdC5idWZmZXJQcm9jZXNzaW5nJiZtdC5idWZmZXJlZFJlcXVlc3QmJkYoZ3Qs''@;'; put 'put ''bXQpLHZ0P3Byb2Nlc3MubmV4dFRpY2soVCxndCxtdCxodCxBdCk6VChndCxtdCxodCxBdCl9fSh3dCxBdCl9LHRoaXMud3JpdGVjYj1udWxsLHRoaXMud3JpdGVsZW49MCx0aGlzLmJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsLHRoaXMucGVuZGlu''@;'; put 'put ''Z2NiPTAsdGhpcy5wcmVmaW5pc2hlZD0hMSx0aGlzLmVycm9yRW1pdHRlZD0hMSx0aGlzLmVtaXRDbG9zZT0hMSE9PWd0LmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhZ3QuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVl''@;'; put 'put ''PW5ldyBCKHRoaXMpfWZ1bmN0aW9uIE1lKGd0KXt2YXIgd3Q9dGhpcyBpbnN0YW5jZW9mKEU9RXx8TCg0MTMzOSkpO2lmKCF3dCYmIVRlLmNhbGwoTWUsdGhpcykpcmV0dXJuIG5ldyBNZShndCk7dGhpcy5fd3JpdGFibGVTdGF0ZT1uZXcgSWUoZ3QsdGhpcyx3dCksdGhpcy53cml0YWJsZT0h''@;'; put 'put ''MCxndCYmKCJmdW5jdGlvbiI9PXR5cGVvZiBndC53cml0ZSYmKHRoaXMuX3dyaXRlPWd0LndyaXRlKSwiZnVuY3Rpb24iPT10eXBlb2YgZ3Qud3JpdGV2JiYodGhpcy5fd3JpdGV2PWd0LndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIGd0LmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PWd0LmRl''@;'; put 'put ''c3Ryb3kpLCJmdW5jdGlvbiI9PXR5cGVvZiBndC5maW5hbCYmKHRoaXMuX2ZpbmFsPWd0LmZpbmFsKSksVS5jYWxsKHRoaXMpfWZ1bmN0aW9uIG5lKGd0LHd0LG10LHZ0LEF0LGh0LEJ0KXt3dC53cml0ZWxlbj12dCx3dC53cml0ZWNiPUJ0LHd0LndyaXRpbmc9ITAsd3Quc3luYz0hMCx3dC5k''@;'; put 'put ''ZXN0cm95ZWQ/d3Qub253cml0ZShuZXcgY2UoIndyaXRlIikpOm10P2d0Ll93cml0ZXYoQXQsd3Qub253cml0ZSk6Z3QuX3dyaXRlKEF0LGh0LHd0Lm9ud3JpdGUpLHd0LnN5bmM9ITF9ZnVuY3Rpb24gVChndCx3dCxtdCx2dCl7bXR8fGZ1bmN0aW9uIFMoZ3Qsd3QpezA9PT13dC5sZW5ndGgm''@;'; put 'put ''Jnd0Lm5lZWREcmFpbiYmKHd0Lm5lZWREcmFpbj0hMSxndC5lbWl0KCJkcmFpbiIpKX0oZ3Qsd3QpLHd0LnBlbmRpbmdjYi0tLHZ0KCksUGUoZ3Qsd3QpfWZ1bmN0aW9uIEYoZ3Qsd3Qpe3d0LmJ1ZmZlclByb2Nlc3Npbmc9ITA7dmFyIG10PXd0LmJ1ZmZlcmVkUmVxdWVzdDtpZihndC5fd3Jp''@;'; put 'put ''dGV2JiZtdCYmbXQubmV4dCl7dmFyIEF0PW5ldyBBcnJheSh3dC5idWZmZXJlZFJlcXVlc3RDb3VudCksaHQ9d3QuY29ya2VkUmVxdWVzdHNGcmVlO2h0LmVudHJ5PW10O2Zvcih2YXIgQnQ9MCxvbj0hMDttdDspQXRbQnRdPW10LG10LmlzQnVmfHwob249ITEpLG10PW10Lm5leHQsQnQrPTE7''@;'; put 'put ''QXQuYWxsQnVmZmVycz1vbixuZShndCx3dCwhMCx3dC5sZW5ndGgsQXQsIiIsaHQuZmluaXNoKSx3dC5wZW5kaW5nY2IrKyx3dC5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsaHQubmV4dD8od3QuY29ya2VkUmVxdWVzdHNGcmVlPWh0Lm5leHQsaHQubmV4dD1udWxsKTp3dC5jb3JrZWRSZXF1''@;'; put 'put ''ZXN0c0ZyZWU9bmV3IEIod3QpLHd0LmJ1ZmZlcmVkUmVxdWVzdENvdW50PTB9ZWxzZXtmb3IoO210Oyl7dmFyIF90PW10LmNodW5rO2lmKG5lKGd0LHd0LCExLHd0Lm9iamVjdE1vZGU/MTpfdC5sZW5ndGgsX3QsbXQuZW5jb2RpbmcsbXQuY2FsbGJhY2spLG10PW10Lm5leHQsd3QuYnVmZmVy''@;'; put 'put ''ZWRSZXF1ZXN0Q291bnQtLSx3dC53cml0aW5nKWJyZWFrfW51bGw9PT1tdCYmKHd0Lmxhc3RCdWZmZXJlZFJlcXVlc3Q9bnVsbCl9d3QuYnVmZmVyZWRSZXF1ZXN0PW10LHd0LmJ1ZmZlclByb2Nlc3Npbmc9ITF9ZnVuY3Rpb24geWUoZ3Qpe3JldHVybiBndC5lbmRpbmcmJjA9PT1ndC5sZW5n''@;'; put 'put ''dGgmJm51bGw9PT1ndC5idWZmZXJlZFJlcXVlc3QmJiFndC5maW5pc2hlZCYmIWd0LndyaXRpbmd9ZnVuY3Rpb24gQ2UoZ3Qsd3Qpe2d0Ll9maW5hbChmdW5jdGlvbihtdCl7d3QucGVuZGluZ2NiLS0sbXQmJmtlKGd0LG10KSx3dC5wcmVmaW5pc2hlZD0hMCxndC5lbWl0KCJwcmVmaW5pc2gi''@;'; put 'put ''KSxQZShndCx3dCl9KX1mdW5jdGlvbiBQZShndCx3dCl7dmFyIG10PXllKHd0KTtpZihtdCYmKGZ1bmN0aW9uIERlKGd0LHd0KXshd3QucHJlZmluaXNoZWQmJiF3dC5maW5hbENhbGxlZCYmKCJmdW5jdGlvbiIhPXR5cGVvZiBndC5fZmluYWx8fHd0LmRlc3Ryb3llZD8od3QucHJlZmluaXNo''@;'; put 'put ''ZWQ9ITAsZ3QuZW1pdCgicHJlZmluaXNoIikpOih3dC5wZW5kaW5nY2IrKyx3dC5maW5hbENhbGxlZD0hMCxwcm9jZXNzLm5leHRUaWNrKENlLGd0LHd0KSkpfShndCx3dCksMD09PXd0LnBlbmRpbmdjYiYmKHd0LmZpbmlzaGVkPSEwLGd0LmVtaXQoImZpbmlzaCIpLHd0LmF1dG9EZXN0cm95''@;'; put 'put ''KSkpe3ZhciB2dD1ndC5fcmVhZGFibGVTdGF0ZTsoIXZ0fHx2dC5hdXRvRGVzdHJveSYmdnQuZW5kRW1pdHRlZCkmJmd0LmRlc3Ryb3koKX1yZXR1cm4gbXR9TCg4Mzg5NCkoTWUsVSksSWUucHJvdG90eXBlLmdldEJ1ZmZlcj1mdW5jdGlvbigpe2Zvcih2YXIgd3Q9dGhpcy5idWZmZXJlZFJl''@;'; put 'put ''cXVlc3QsbXQ9W107d3Q7KW10LnB1c2god3QpLHd0PXd0Lm5leHQ7cmV0dXJuIG10fSxmdW5jdGlvbigpe3RyeXtPYmplY3QuZGVmaW5lUHJvcGVydHkoSWUucHJvdG90eXBlLCJidWZmZXIiLHtnZXQ6RWUuZGVwcmVjYXRlKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnVmZmVyKCl9LCJf''@;'; put 'put ''d3JpdGFibGVTdGF0ZS5idWZmZXIgaXMgZGVwcmVjYXRlZC4gVXNlIF93cml0YWJsZVN0YXRlLmdldEJ1ZmZlciBpbnN0ZWFkLiIsIkRFUDAwMDMiKX0pfWNhdGNoKGd0KXt9fSgpLCJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5oYXNJbnN0YW5jZSYmImZ1bmN0aW9uIj09dHlw''@;'; put 'put ''ZW9mIEZ1bmN0aW9uLnByb3RvdHlwZVtTeW1ib2wuaGFzSW5zdGFuY2VdPyhUZT1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTWUsU3ltYm9sLmhhc0luc3RhbmNlLHt2YWx1ZTpmdW5jdGlvbih3dCl7cmV0dXJuISFUZS5jYWxs''@;'; put 'put ''KHRoaXMsd3QpfHx0aGlzPT09TWUmJnd0JiZ3dC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIEllfX0pKTpUZT1mdW5jdGlvbih3dCl7cmV0dXJuIHd0IGluc3RhbmNlb2YgdGhpc30sTWUucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24oKXtrZSh0aGlzLG5ldyBvZSl9LE1lLnByb3RvdHlwZS53''@;'; put 'put ''cml0ZT1mdW5jdGlvbihndCx3dCxtdCl7dmFyIHZ0PXRoaXMuX3dyaXRhYmxlU3RhdGUsQXQ9ITEsaHQ9IXZ0Lm9iamVjdE1vZGUmJmZ1bmN0aW9uIGFlKGd0KXtyZXR1cm4gUS5pc0J1ZmZlcihndCl8fGd0IGluc3RhbmNlb2Ygan0oZ3QpO3JldHVybiBodCYmIVEuaXNCdWZmZXIoZ3QpJiYo''@;'; put 'put ''Z3Q9ZnVuY3Rpb24gcmUoZ3Qpe3JldHVybiBRLmZyb20oZ3QpfShndCkpLCJmdW5jdGlvbiI9PXR5cGVvZiB3dCYmKG10PXd0LHd0PW51bGwpLGh0P3d0PSJidWZmZXIiOnd0fHwod3Q9dnQuZGVmYXVsdEVuY29kaW5nKSwiZnVuY3Rpb24iIT10eXBlb2YgbXQmJihtdD1TZSksdnQuZW5kaW5n''@;'; put 'put ''P2Z1bmN0aW9uIGhlKGd0LHd0KXt2YXIgbXQ9bmV3IHZlO2tlKGd0LG10KSxwcm9jZXNzLm5leHRUaWNrKHd0LG10KX0odGhpcyxtdCk6KGh0fHxmdW5jdGlvbiBPKGd0LHd0LG10LHZ0KXt2YXIgQXQ7cmV0dXJuIG51bGw9PT1tdD9BdD1uZXcgZGU6InN0cmluZyIhPXR5cGVvZiBtdCYmIXd0''@;'; put 'put ''Lm9iamVjdE1vZGUmJihBdD1uZXcgSygiY2h1bmsiLFsic3RyaW5nIiwiQnVmZmVyIl0sbXQpKSwhQXR8fChrZShndCxBdCkscHJvY2Vzcy5uZXh0VGljayh2dCxBdCksITEpfSh0aGlzLHZ0LGd0LG10KSkmJih2dC5wZW5kaW5nY2IrKyxBdD1mdW5jdGlvbiBlZShndCx3dCxtdCx2dCxBdCxo''@;'; put 'put ''dCl7aWYoIW10KXt2YXIgQnQ9ZnVuY3Rpb24geihndCx3dCxtdCl7cmV0dXJuIWd0Lm9iamVjdE1vZGUmJiExIT09Z3QuZGVjb2RlU3RyaW5ncyYmInN0cmluZyI9PXR5cGVvZiB3dCYmKHd0PVEuZnJvbSh3dCxtdCkpLHd0fSh3dCx2dCxBdCk7dnQhPT1CdCYmKG10PSEwLEF0PSJidWZmZXIi''@;'; put 'put ''LHZ0PUJ0KX12YXIgb249d3Qub2JqZWN0TW9kZT8xOnZ0Lmxlbmd0aDt3dC5sZW5ndGgrPW9uO3ZhciBfdD13dC5sZW5ndGg8d3QuaGlnaFdhdGVyTWFyaztpZihfdHx8KHd0Lm5lZWREcmFpbj0hMCksd3Qud3JpdGluZ3x8d3QuY29ya2VkKXt2YXIgdHQ9d3QubGFzdEJ1ZmZlcmVkUmVxdWVz''@;'; put 'put ''dDt3dC5sYXN0QnVmZmVyZWRSZXF1ZXN0PXtjaHVuazp2dCxlbmNvZGluZzpBdCxpc0J1ZjptdCxjYWxsYmFjazpodCxuZXh0Om51bGx9LHR0P3R0Lm5leHQ9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdDp3dC5idWZmZXJlZFJlcXVlc3Q9d3QubGFzdEJ1ZmZlcmVkUmVxdWVzdCx3dC5idWZmZXJl''@;'; put 'put ''ZFJlcXVlc3RDb3VudCs9MX1lbHNlIG5lKGd0LHd0LCExLG9uLHZ0LEF0LGh0KTtyZXR1cm4gX3R9KHRoaXMsdnQsaHQsZ3Qsd3QsbXQpKSxBdH0sTWUucHJvdG90eXBlLmNvcms9ZnVuY3Rpb24oKXt0aGlzLl93cml0YWJsZVN0YXRlLmNvcmtlZCsrfSxNZS5wcm90b3R5cGUudW5jb3JrPWZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIGd0PXRoaXMuX3dyaXRhYmxlU3RhdGU7Z3QuY29ya2VkJiYoZ3QuY29ya2VkLS0sIWd0LndyaXRpbmcmJiFndC5jb3JrZWQmJiFndC5idWZmZXJQcm9jZXNzaW5nJiZndC5idWZmZXJlZFJlcXVlc3QmJkYodGhpcyxndCkpfSxNZS5wcm90b3R5cGUuc2V0RGVmYXVsdEVu''@;'; put 'put ''Y29kaW5nPWZ1bmN0aW9uKHd0KXtpZigic3RyaW5nIj09dHlwZW9mIHd0JiYod3Q9d3QudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhP''@;'; put 'put ''Zigod3QrIiIpLnRvTG93ZXJDYXNlKCkpPi0xKSl0aHJvdyBuZXcgQWUod3QpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZz13dCx0aGlzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoTWUucHJvdG90eXBlLCJ3cml0YWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEs''@;'; put 'put ''Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE1lLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24o''@;'; put 'put ''KXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLE1lLnByb3RvdHlwZS5fd3JpdGU9ZnVuY3Rpb24oZ3Qsd3QsbXQpe210KG5ldyBKKCJfd3JpdGUoKSIpKX0sTWUucHJvdG90eXBlLl93cml0ZXY9bnVsbCxNZS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKGd0LHd0''@;'; put 'put ''LG10KXt2YXIgdnQ9dGhpcy5fd3JpdGFibGVTdGF0ZTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZ3Q/KG10PWd0LGd0PW51bGwsd3Q9bnVsbCk6ImZ1bmN0aW9uIj09dHlwZW9mIHd0JiYobXQ9d3Qsd3Q9bnVsbCksbnVsbCE9Z3QmJnRoaXMud3JpdGUoZ3Qsd3QpLHZ0LmNvcmtlZCYmKHZ0''@;'; put 'put ''LmNvcmtlZD0xLHRoaXMudW5jb3JrKCkpLHZ0LmVuZGluZ3x8ZnVuY3Rpb24gUWUoZ3Qsd3QsbXQpe3d0LmVuZGluZz0hMCxQZShndCx3dCksbXQmJih3dC5maW5pc2hlZD9wcm9jZXNzLm5leHRUaWNrKG10KTpndC5vbmNlKCJmaW5pc2giLG10KSksd3QuZW5kZWQ9ITAsZ3Qud3JpdGFibGU9''@;'; put 'put ''ITF9KHRoaXMsdnQsbXQpLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShNZS5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KE1l''@;'; put 'put ''LnByb3RvdHlwZSwiZGVzdHJveWVkIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWR9LHNldDpmdW5jdGlvbih3dCl7IXRoaXMuX3dyaXRhYmxlU3RhdGV8fCh0aGlz''@;'; put 'put ''Ll93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD13dCl9fSksTWUucHJvdG90eXBlLmRlc3Ryb3k9WS5kZXN0cm95LE1lLnByb3RvdHlwZS5fdW5kZXN0cm95PVkudW5kZXN0cm95LE1lLnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbihndCx3dCl7d3QoZ3QpfX0sMTM4NzI6KFhlLEplLEwpPT57''@;'; put 'put ''InVzZSBzdHJpY3QiO3ZhciBtZTtmdW5jdGlvbiBCKGNlLGRlLHZlKXtyZXR1cm4gZGUgaW4gY2U/T2JqZWN0LmRlZmluZVByb3BlcnR5KGNlLGRlLHt2YWx1ZTp2ZSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOmNlW2RlXT12ZSxjZX12YXIgRT1MKDY3NTQy''@;'; put 'put ''KSxFZT1TeW1ib2woImxhc3RSZXNvbHZlIiksVT1TeW1ib2woImxhc3RSZWplY3QiKSxRPVN5bWJvbCgiZXJyb3IiKSxqPVN5bWJvbCgiZW5kZWQiKSxyZT1TeW1ib2woImxhc3RQcm9taXNlIiksYWU9U3ltYm9sKCJoYW5kbGVQcm9taXNlIiksWT1TeW1ib2woInN0cmVhbSIpO2Z1bmN0aW9u''@;'; put 'put ''IFcoY2UsZGUpe3JldHVybnt2YWx1ZTpjZSxkb25lOmRlfX1mdW5jdGlvbiBOKGNlKXt2YXIgZGU9Y2VbRWVdO2lmKG51bGwhPT1kZSl7dmFyIHZlPWNlW1ldLnJlYWQoKTtudWxsIT09dmUmJihjZVtyZV09bnVsbCxjZVtFZV09bnVsbCxjZVtVXT1udWxsLGRlKFcodmUsITEpKSl9fWZ1bmN0''@;'; put 'put ''aW9uIHRlKGNlKXtwcm9jZXNzLm5leHRUaWNrKE4sY2UpfXZhciBKPU9iamVjdC5nZXRQcm90b3R5cGVPZihmdW5jdGlvbigpe30pLHNlPU9iamVjdC5zZXRQcm90b3R5cGVPZigoQihtZT17Z2V0IHN0cmVhbSgpe3JldHVybiB0aGlzW1ldfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIGRlPXRoaXMs''@;'; put 'put ''dmU9dGhpc1tRXTtpZihudWxsIT09dmUpcmV0dXJuIFByb21pc2UucmVqZWN0KHZlKTtpZih0aGlzW2pdKXJldHVybiBQcm9taXNlLnJlc29sdmUoVyh2b2lkIDAsITApKTtpZih0aGlzW1ldLmRlc3Ryb3llZClyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oSWUsVGUpe3Byb2Nlc3MubmV4''@;'; put 'put ''dFRpY2soZnVuY3Rpb24oKXtkZVtRXT9UZShkZVtRXSk6SWUoVyh2b2lkIDAsITApKX0pfSk7dmFyIGtlLEFlPXRoaXNbcmVdO2lmKEFlKWtlPW5ldyBQcm9taXNlKGZ1bmN0aW9uIEsoY2UsZGUpe3JldHVybiBmdW5jdGlvbih2ZSxBZSl7Y2UudGhlbihmdW5jdGlvbigpe2RlW2pdP3ZlKFco''@;'; put 'put ''dm9pZCAwLCEwKSk6ZGVbYWVdKHZlLEFlKX0sQWUpfX0oQWUsdGhpcykpO2Vsc2V7dmFyIFNlPXRoaXNbWV0ucmVhZCgpO2lmKG51bGwhPT1TZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFcoU2UsITEpKTtrZT1uZXcgUHJvbWlzZSh0aGlzW2FlXSl9cmV0dXJuIHRoaXNbcmVdPWtlLGtlfX0s''@;'; put 'put ''U3ltYm9sLmFzeW5jSXRlcmF0b3IsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLEIobWUsInJldHVybiIsZnVuY3Rpb24oKXt2YXIgZGU9dGhpcztyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odmUsQWUpe2RlW1ldLmRlc3Ryb3kobnVsbCxmdW5jdGlvbihrZSl7a2U/QWUoa2UpOnZlKFco''@;'; put 'put ''dm9pZCAwLCEwKSl9KX0pfSksbWUpLEopO1hlLmV4cG9ydHM9ZnVuY3Rpb24oZGUpe3ZhciB2ZSxBZT1PYmplY3QuY3JlYXRlKHNlLChCKHZlPXt9LFkse3ZhbHVlOmRlLHdyaXRhYmxlOiEwfSksQih2ZSxFZSx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLEIodmUsVSx7dmFsdWU6bnVsbCx3''@;'; put 'put ''cml0YWJsZTohMH0pLEIodmUsUSx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLEIodmUsaix7dmFsdWU6ZGUuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJsZTohMH0pLEIodmUsYWUse3ZhbHVlOmZ1bmN0aW9uKFNlLEllKXt2YXIgVGU9QWVbWV0ucmVhZCgpO1RlPyhBZVtyZV09''@;'; put 'put ''bnVsbCxBZVtFZV09bnVsbCxBZVtVXT1udWxsLFNlKFcoVGUsITEpKSk6KEFlW0VlXT1TZSxBZVtVXT1JZSl9LHdyaXRhYmxlOiEwfSksdmUpKTtyZXR1cm4gQWVbcmVdPW51bGwsRShkZSxmdW5jdGlvbihrZSl7aWYoa2UmJiJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIhPT1rZS5jb2Rl''@;'; put 'put ''KXt2YXIgU2U9QWVbVV07cmV0dXJuIG51bGwhPT1TZSYmKEFlW3JlXT1udWxsLEFlW0VlXT1udWxsLEFlW1VdPW51bGwsU2Uoa2UpKSx2b2lkKEFlW1FdPWtlKX12YXIgSWU9QWVbRWVdO251bGwhPT1JZSYmKEFlW3JlXT1udWxsLEFlW0VlXT1udWxsLEFlW1VdPW51bGwsSWUoVyh2b2lkIDAs''@;'; put 'put ''ITApKSksQWVbal09ITB9KSxkZS5vbigicmVhZGFibGUiLHRlLmJpbmQobnVsbCxBZSkpLEFlfX0sMjUwMTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1lKHRlLEspe3ZhciBKPU9iamVjdC5rZXlzKHRlKTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIg''@;'; put 'put ''c2U9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0ZSk7SyYmKHNlPXNlLmZpbHRlcihmdW5jdGlvbihvZSl7cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodGUsb2UpLmVudW1lcmFibGV9KSksSi5wdXNoLmFwcGx5KEosc2UpfXJldHVybiBKfWZ1bmN0aW9uIEUo''@;'; put 'put ''dGUsSyxKKXtyZXR1cm4gSyBpbiB0ZT9PYmplY3QuZGVmaW5lUHJvcGVydHkodGUsSyx7dmFsdWU6SixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRlW0tdPUosdGV9ZnVuY3Rpb24gVSh0ZSxLKXtmb3IodmFyIEo9MDtKPEsubGVuZ3RoO0orKyl7dmFyIHNl''@;'; put 'put ''PUtbSl07c2UuZW51bWVyYWJsZT1zZS5lbnVtZXJhYmxlfHwhMSxzZS5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHNlJiYoc2Uud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0ZSxzZS5rZXksc2UpfX12YXIgcmU9TCg5MzE3MikuQnVmZmVyLFk9TCg1MjM2MSkuaW5zcGVj''@;'; put 'put ''dCxXPVkmJlkuY3VzdG9tfHwiaW5zcGVjdCI7ZnVuY3Rpb24gTih0ZSxLLEope3JlLnByb3RvdHlwZS5jb3B5LmNhbGwodGUsSyxKKX1YZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdGUoKXsoZnVuY3Rpb24gRWUodGUsSyl7aWYoISh0ZSBpbnN0YW5jZW9mIEspKXRocm93IG5ldyBU''@;'; put 'put ''eXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSkodGhpcyx0ZSksdGhpcy5oZWFkPW51bGwsdGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH1yZXR1cm4gZnVuY3Rpb24gUSh0ZSxLLEope0smJlUodGUucHJvdG90eXBlLEspLEomJlUodGUsSil9KHRlLFt7''@;'; put 'put ''a2V5OiJwdXNoIix2YWx1ZTpmdW5jdGlvbihKKXt2YXIgc2U9e2RhdGE6SixuZXh0Om51bGx9O3RoaXMubGVuZ3RoPjA/dGhpcy50YWlsLm5leHQ9c2U6dGhpcy5oZWFkPXNlLHRoaXMudGFpbD1zZSwrK3RoaXMubGVuZ3RofX0se2tleToidW5zaGlmdCIsdmFsdWU6ZnVuY3Rpb24oSil7dmFy''@;'; put 'put ''IHNlPXtkYXRhOkosbmV4dDp0aGlzLmhlYWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD1zZSksdGhpcy5oZWFkPXNlLCsrdGhpcy5sZW5ndGh9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciBKPXRoaXMuaGVhZC5kYXRhO3JldHVy''@;'; put 'put ''biB0aGlzLmhlYWQ9MT09PXRoaXMubGVuZ3RoP3RoaXMudGFpbD1udWxsOnRoaXMuaGVhZC5uZXh0LC0tdGhpcy5sZW5ndGgsSn19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwsdGhpcy5sZW5ndGg9MH19LHtrZXk6ImpvaW4iLHZhbHVl''@;'; put 'put ''OmZ1bmN0aW9uKEope2lmKDA9PT10aGlzLmxlbmd0aClyZXR1cm4iIjtmb3IodmFyIHNlPXRoaXMuaGVhZCxvZT0iIitzZS5kYXRhO3NlPXNlLm5leHQ7KW9lKz1KK3NlLmRhdGE7cmV0dXJuIG9lfX0se2tleToiY29uY2F0Iix2YWx1ZTpmdW5jdGlvbihKKXtpZigwPT09dGhpcy5sZW5ndGgp''@;'; put 'put ''cmV0dXJuIHJlLmFsbG9jKDApO2Zvcih2YXIgc2U9cmUuYWxsb2NVbnNhZmUoSj4+PjApLG9lPXRoaXMuaGVhZCxjZT0wO29lOylOKG9lLmRhdGEsc2UsY2UpLGNlKz1vZS5kYXRhLmxlbmd0aCxvZT1vZS5uZXh0O3JldHVybiBzZX19LHtrZXk6ImNvbnN1bWUiLHZhbHVlOmZ1bmN0aW9uKEos''@;'; put 'put ''c2Upe3ZhciBvZTtyZXR1cm4gSjx0aGlzLmhlYWQuZGF0YS5sZW5ndGg/KG9lPXRoaXMuaGVhZC5kYXRhLnNsaWNlKDAsSiksdGhpcy5oZWFkLmRhdGE9dGhpcy5oZWFkLmRhdGEuc2xpY2UoSikpOm9lPUo9PT10aGlzLmhlYWQuZGF0YS5sZW5ndGg/dGhpcy5zaGlmdCgpOnNlP3RoaXMuX2dl''@;'; put 'put ''dFN0cmluZyhKKTp0aGlzLl9nZXRCdWZmZXIoSiksb2V9fSx7a2V5OiJmaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OiJfZ2V0U3RyaW5nIix2YWx1ZTpmdW5jdGlvbihKKXt2YXIgc2U9dGhpcy5oZWFkLG9lPTEsY2U9c2UuZGF0YTtmb3IoSi09''@;'; put 'put ''Y2UubGVuZ3RoO3NlPXNlLm5leHQ7KXt2YXIgZGU9c2UuZGF0YSx2ZT1KPmRlLmxlbmd0aD9kZS5sZW5ndGg6SjtpZihjZSs9dmU9PT1kZS5sZW5ndGg/ZGU6ZGUuc2xpY2UoMCxKKSwwPT0oSi09dmUpKXt2ZT09PWRlLmxlbmd0aD8oKytvZSx0aGlzLmhlYWQ9c2UubmV4dD9zZS5uZXh0OnRo''@;'; put 'put ''aXMudGFpbD1udWxsKToodGhpcy5oZWFkPXNlLHNlLmRhdGE9ZGUuc2xpY2UodmUpKTticmVha30rK29lfXJldHVybiB0aGlzLmxlbmd0aC09b2UsY2V9fSx7a2V5OiJfZ2V0QnVmZmVyIix2YWx1ZTpmdW5jdGlvbihKKXt2YXIgc2U9cmUuYWxsb2NVbnNhZmUoSiksb2U9dGhpcy5oZWFkLGNl''@;'; put 'put ''PTE7Zm9yKG9lLmRhdGEuY29weShzZSksSi09b2UuZGF0YS5sZW5ndGg7b2U9b2UubmV4dDspe3ZhciBkZT1vZS5kYXRhLHZlPUo+ZGUubGVuZ3RoP2RlLmxlbmd0aDpKO2lmKGRlLmNvcHkoc2Usc2UubGVuZ3RoLUosMCx2ZSksMD09KEotPXZlKSl7dmU9PT1kZS5sZW5ndGg/KCsrY2UsdGhp''@;'; put 'put ''cy5oZWFkPW9lLm5leHQ/b2UubmV4dDp0aGlzLnRhaWw9bnVsbCk6KHRoaXMuaGVhZD1vZSxvZS5kYXRhPWRlLnNsaWNlKHZlKSk7YnJlYWt9KytjZX1yZXR1cm4gdGhpcy5sZW5ndGgtPWNlLHNlfX0se2tleTpXLHZhbHVlOmZ1bmN0aW9uKEosc2Upe3JldHVybiBZKHRoaXMsZnVuY3Rpb24g''@;'; put 'put ''Qih0ZSl7Zm9yKHZhciBLPTE7Szxhcmd1bWVudHMubGVuZ3RoO0srKyl7dmFyIEo9bnVsbCE9YXJndW1lbnRzW0tdP2FyZ3VtZW50c1tLXTp7fTtLJTI/bWUoT2JqZWN0KEopLCEwKS5mb3JFYWNoKGZ1bmN0aW9uKHNlKXtFKHRlLHNlLEpbc2VdKX0pOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURl''@;'; put 'put ''c2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHRlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKEopKTptZShPYmplY3QoSikpLmZvckVhY2goZnVuY3Rpb24oc2Upe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0ZSxzZSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw''@;'; put 'put ''dG9yKEosc2UpKX0pfXJldHVybiB0ZX0oe30sc2Use2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSksdGV9KCl9LDQxOTIwOlhlPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEwoVSxRKXtFKFUsUSksbWUoVSl9ZnVuY3Rpb24gbWUoVSl7VS5fd3JpdGFibGVTdGF0ZSYmIVUuX3dyaXRh''@;'; put 'put ''YmxlU3RhdGUuZW1pdENsb3NlfHxVLl9yZWFkYWJsZVN0YXRlJiYhVS5fcmVhZGFibGVTdGF0ZS5lbWl0Q2xvc2V8fFUuZW1pdCgiY2xvc2UiKX1mdW5jdGlvbiBFKFUsUSl7VS5lbWl0KCJlcnJvciIsUSl9WGUuZXhwb3J0cz17ZGVzdHJveTpmdW5jdGlvbiBKZShVLFEpe3ZhciBqPXRoaXM7''@;'; put 'put ''cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkfHx0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZD8oUT9RKFUpOlUmJih0aGlzLl93cml0YWJsZVN0YXRlP3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJy''@;'; put 'put ''b3JFbWl0dGVkfHwodGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAscHJvY2Vzcy5uZXh0VGljayhFLHRoaXMsVSkpOnByb2Nlc3MubmV4dFRpY2soRSx0aGlzLFUpKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEw''@;'; put 'put ''KSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3koVXx8bnVsbCxmdW5jdGlvbihZKXshUSYmWT9qLl93cml0YWJsZVN0YXRlP2ouX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkP3Byb2Nlc3MubmV4dFRpY2sobWUs''@;'; put 'put ''aik6KGouX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLHByb2Nlc3MubmV4dFRpY2soTCxqLFkpKTpwcm9jZXNzLm5leHRUaWNrKEwsaixZKTpRPyhwcm9jZXNzLm5leHRUaWNrKG1lLGopLFEoWSkpOnByb2Nlc3MubmV4dFRpY2sobWUsail9KSx0aGlzKX0sdW5kZXN0cm95OmZ1bmN0''@;'; put 'put ''aW9uIEIoKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93''@;'; put 'put ''cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUucHJl''@;'; put 'put ''ZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9LGVycm9yT3JEZXN0cm95OmZ1bmN0aW9uIEVlKFUsUSl7dmFyIGo9VS5fcmVhZGFibGVTdGF0ZSxyZT1VLl93cml0YWJsZVN0YXRlO2omJmouYXV0''@;'; put 'put ''b0Rlc3Ryb3l8fHJlJiZyZS5hdXRvRGVzdHJveT9VLmRlc3Ryb3koUSk6VS5lbWl0KCJlcnJvciIsUSl9fX0sNjc1NDI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDcwODkxKS5xLkVSUl9TVFJFQU1fUFJFTUFUVVJFX0NMT1NFO2Z1bmN0aW9uIEUoKXt9WGUuZXhwb3J0cz1m''@;'; put 'put ''dW5jdGlvbiBVKFEsaixyZSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGopcmV0dXJuIFUoUSxudWxsLGopO2p8fChqPXt9KSxyZT1mdW5jdGlvbiBCKFEpe3ZhciBqPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFqKXtqPSEwO2Zvcih2YXIgcmU9YXJndW1lbnRzLmxlbmd0aCxhZT1uZXcgQXJy''@;'; put 'put ''YXkocmUpLFk9MDtZPHJlO1krKylhZVtZXT1hcmd1bWVudHNbWV07US5hcHBseSh0aGlzLGFlKX19fShyZXx8RSk7dmFyIGFlPWoucmVhZGFibGV8fCExIT09ai5yZWFkYWJsZSYmUS5yZWFkYWJsZSxZPWoud3JpdGFibGV8fCExIT09ai53cml0YWJsZSYmUS53cml0YWJsZSxXPWZ1bmN0aW9u''@;'; put 'put ''KCl7US53cml0YWJsZXx8dGUoKX0sTj1RLl93cml0YWJsZVN0YXRlJiZRLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLHRlPWZ1bmN0aW9uKCl7WT0hMSxOPSEwLGFlfHxyZS5jYWxsKFEpfSxLPVEuX3JlYWRhYmxlU3RhdGUmJlEuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxKPWZ1bmN0aW9u''@;'; put 'put ''KCl7YWU9ITEsSz0hMCxZfHxyZS5jYWxsKFEpfSxzZT1mdW5jdGlvbih2ZSl7cmUuY2FsbChRLHZlKX0sb2U9ZnVuY3Rpb24oKXt2YXIgdmU7cmV0dXJuIGFlJiYhSz8oKCFRLl9yZWFkYWJsZVN0YXRlfHwhUS5fcmVhZGFibGVTdGF0ZS5lbmRlZCkmJih2ZT1uZXcgbWUpLHJlLmNhbGwoUSx2''@;'; put 'put ''ZSkpOlkmJiFOPygoIVEuX3dyaXRhYmxlU3RhdGV8fCFRLl93cml0YWJsZVN0YXRlLmVuZGVkKSYmKHZlPW5ldyBtZSkscmUuY2FsbChRLHZlKSk6dm9pZCAwfSxjZT1mdW5jdGlvbigpe1EucmVxLm9uKCJmaW5pc2giLHRlKX07cmV0dXJuIGZ1bmN0aW9uIEVlKFEpe3JldHVybiBRLnNldEhl''@;'; put 'put ''YWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIFEuYWJvcnR9KFEpPyhRLm9uKCJjb21wbGV0ZSIsdGUpLFEub24oImFib3J0IixvZSksUS5yZXE/Y2UoKTpRLm9uKCJyZXF1ZXN0IixjZSkpOlkmJiFRLl93cml0YWJsZVN0YXRlJiYoUS5vbigiZW5kIixXKSxRLm9uKCJjbG9zZSIsVykpLFEub24o''@;'; put 'put ''ImVuZCIsSiksUS5vbigiZmluaXNoIix0ZSksITEhPT1qLmVycm9yJiZRLm9uKCJlcnJvciIsc2UpLFEub24oImNsb3NlIixvZSksZnVuY3Rpb24oKXtRLnJlbW92ZUxpc3RlbmVyKCJjb21wbGV0ZSIsdGUpLFEucmVtb3ZlTGlzdGVuZXIoImFib3J0IixvZSksUS5yZW1vdmVMaXN0ZW5lcigi''@;'; put 'put ''cmVxdWVzdCIsY2UpLFEucmVxJiZRLnJlcS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIix0ZSksUS5yZW1vdmVMaXN0ZW5lcigiZW5kIixXKSxRLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsVyksUS5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIix0ZSksUS5yZW1vdmVMaXN0ZW5lcigiZW5kIixKKSxR''@;'; put 'put ''LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsc2UpLFEucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixvZSl9fX0sNDc0MTI6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJSZWFkYWJsZS5mcm9tIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIGJyb3dzZXIiKX19LDkwOTU0''@;'; put 'put ''OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWUsRT1MKDcwODkxKS5xLEVlPUUuRVJSX01JU1NJTkdfQVJHUyxVPUUuRVJSX1NUUkVBTV9ERVNUUk9ZRUQ7ZnVuY3Rpb24gUSh0ZSl7aWYodGUpdGhyb3cgdGV9ZnVuY3Rpb24gcmUodGUsSyxKLHNlKXtzZT1mdW5jdGlvbiBCKHRlKXt2''@;'; put 'put ''YXIgSz0hMTtyZXR1cm4gZnVuY3Rpb24oKXtLfHwoSz0hMCx0ZS5hcHBseSh2b2lkIDAsYXJndW1lbnRzKSl9fShzZSk7dmFyIG9lPSExO3RlLm9uKCJjbG9zZSIsZnVuY3Rpb24oKXtvZT0hMH0pLHZvaWQgMD09PW1lJiYobWU9TCg2NzU0MikpLG1lKHRlLHtyZWFkYWJsZTpLLHdyaXRhYmxl''@;'; put 'put ''Okp9LGZ1bmN0aW9uKGRlKXtpZihkZSlyZXR1cm4gc2UoZGUpO29lPSEwLHNlKCl9KTt2YXIgY2U9ITE7cmV0dXJuIGZ1bmN0aW9uKGRlKXtpZighb2UmJiFjZSl7aWYoY2U9ITAsZnVuY3Rpb24gaih0ZSl7cmV0dXJuIHRlLnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIHRlLmFib3J0''@;'; put 'put ''fSh0ZSkpcmV0dXJuIHRlLmFib3J0KCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHRlLmRlc3Ryb3kpcmV0dXJuIHRlLmRlc3Ryb3koKTtzZShkZXx8bmV3IFUoInBpcGUiKSl9fX1mdW5jdGlvbiBhZSh0ZSl7dGUoKX1mdW5jdGlvbiBZKHRlLEspe3JldHVybiB0ZS5waXBlKEspfWZ1bmN0aW9u''@;'; put 'put ''IFcodGUpe3JldHVybiB0ZS5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiB0ZVt0ZS5sZW5ndGgtMV0/dGUucG9wKCk6UX1YZS5leHBvcnRzPWZ1bmN0aW9uIE4oKXtmb3IodmFyIHRlPWFyZ3VtZW50cy5sZW5ndGgsSz1uZXcgQXJyYXkodGUpLEo9MDtKPHRlO0orKylLW0pdPWFyZ3VtZW50''@;'; put 'put ''c1tKXTt2YXIgc2U9VyhLKTtpZihBcnJheS5pc0FycmF5KEtbMF0pJiYoSz1LWzBdKSxLLmxlbmd0aDwyKXRocm93IG5ldyBFZSgic3RyZWFtcyIpO3ZhciBvZSxjZT1LLm1hcChmdW5jdGlvbihkZSx2ZSl7dmFyIEFlPXZlPEsubGVuZ3RoLTE7cmV0dXJuIHJlKGRlLEFlLHZlPjAsZnVuY3Rp''@;'; put 'put ''b24oU2Upe29lfHwob2U9U2UpLFNlJiZjZS5mb3JFYWNoKGFlKSwhQWUmJihjZS5mb3JFYWNoKGFlKSxzZShvZSkpfSl9KTtyZXR1cm4gSy5yZWR1Y2UoWSl9fSw0NzEwMjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzA4OTEpLnEuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO1hl''@;'; put 'put ''LmV4cG9ydHM9e2dldEhpZ2hXYXRlck1hcms6ZnVuY3Rpb24gRShFZSxVLFEsail7dmFyIHJlPWZ1bmN0aW9uIEIoRWUsVSxRKXtyZXR1cm4gbnVsbCE9RWUuaGlnaFdhdGVyTWFyaz9FZS5oaWdoV2F0ZXJNYXJrOlU/RWVbUV06bnVsbH0oVSxqLFEpO2lmKG51bGwhPXJlKXtpZighaXNGaW5p''@;'; put 'put ''dGUocmUpfHxNYXRoLmZsb29yKHJlKSE9PXJlfHxyZTwwKXRocm93IG5ldyBtZShqP1E6ImhpZ2hXYXRlck1hcmsiLHJlKTtyZXR1cm4gTWF0aC5mbG9vcihyZSl9cmV0dXJuIEVlLm9iamVjdE1vZGU/MTY6MTYzODR9fX0sNDk3MDooWGUsSmUsTCk9PntYZS5leHBvcnRzPUwoNTkwNjkpLkV2''@;'; put 'put ''ZW50RW1pdHRlcn0sNjU2ODU6KFhlLEplLEwpPT57KEplPVhlLmV4cG9ydHM9TCgzMTU0KSkuU3RyZWFtPUplLEplLlJlYWRhYmxlPUplLEplLldyaXRhYmxlPUwoMjA1MjApLEplLkR1cGxleD1MKDQxMzM5KSxKZS5UcmFuc2Zvcm09TCg2MDI1KSxKZS5QYXNzVGhyb3VnaD1MKDU2MDcxKSxK''@;'; put 'put ''ZS5maW5pc2hlZD1MKDY3NTQyKSxKZS5waXBlbGluZT1MKDkwOTU0KX0sNzU2MzQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDkzMTcyKS5CdWZmZXIsQj1MKDgzODk0KSxFPUwoMzk2NTApLEVlPW5ldyBBcnJheSgxNiksVT1bMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwx''@;'; put 'put ''MiwxMywxNCwxNSw3LDQsMTMsMSwxMCw2LDE1LDMsMTIsMCw5LDUsMiwxNCwxMSw4LDMsMTAsMTQsNCw5LDE1LDgsMSwyLDcsMCw2LDEzLDExLDUsMTIsMSw5LDExLDEwLDAsOCwxMiw0LDEzLDMsNywxNSwxNCw1LDYsMiw0LDAsNSw5LDcsMTIsMiwxMCwxNCwxLDMsOCwxMSw2LDE1LDEzXSxR''@;'; put 'put ''PVs1LDE0LDcsMCw5LDIsMTEsNCwxMyw2LDE1LDgsMSwxMCwzLDEyLDYsMTEsMyw3LDAsMTMsNSwxMCwxNCwxNSw4LDEyLDQsOSwxLDIsMTUsNSwxLDMsNywxNCw2LDksMTEsOCwxMiwyLDEwLDAsNCwxMyw4LDYsNCwxLDMsMTEsMTUsMCw1LDEyLDIsMTMsOSw3LDEwLDE0LDEyLDE1LDEwLDQs''@;'; put 'put ''MSw1LDgsNyw2LDIsMTMsMTQsMCwzLDksMTFdLGo9WzExLDE0LDE1LDEyLDUsOCw3LDksMTEsMTMsMTQsMTUsNiw3LDksOCw3LDYsOCwxMywxMSw5LDcsMTUsNywxMiwxNSw5LDExLDcsMTMsMTIsMTEsMTMsNiw3LDE0LDksMTMsMTUsMTQsOCwxMyw2LDUsMTIsNyw1LDExLDEyLDE0LDE1LDE0''@;'; put 'put ''LDE1LDksOCw5LDE0LDUsNiw4LDYsNSwxMiw5LDE1LDUsMTEsNiw4LDEzLDEyLDUsMTIsMTMsMTQsMTEsOCw1LDZdLHJlPVs4LDksOSwxMSwxMywxNSwxNSw1LDcsNyw4LDExLDE0LDE0LDEyLDYsOSwxMywxNSw3LDEyLDgsOSwxMSw3LDcsMTIsNyw2LDE1LDEzLDExLDksNywxNSwxMSw4LDYs''@;'; put 'put ''NiwxNCwxMiwxMyw1LDE0LDEzLDEzLDcsNSwxNSw1LDgsMTEsMTQsMTQsNiwxNCw2LDksMTIsOSwxMiw1LDE1LDgsOCw1LDEyLDksMTIsNSwxNCw2LDgsMTMsNiw1LDE1LDEzLDExLDExXSxhZT1bMCwxNTE4NTAwMjQ5LDE4NTk3NzUzOTMsMjQwMDk1OTcwOCwyODQwODUzODM4XSxZPVsxMzUy''@;'; put 'put ''ODI5OTI2LDE1NDg2MDM2ODQsMTgzNjA3MjY5MSwyMDUzOTk0MjE3LDBdO2Z1bmN0aW9uIFcoKXtFLmNhbGwodGhpcyw2NCksdGhpcy5fYT0xNzMyNTg0MTkzLHRoaXMuX2I9NDAyMzIzMzQxNyx0aGlzLl9jPTI1NjIzODMxMDIsdGhpcy5fZD0yNzE3MzM4NzgsdGhpcy5fZT0zMjg1Mzc3NTIw''@;'; put 'put ''fWZ1bmN0aW9uIE4oY2UsZGUpe3JldHVybiBjZTw8ZGV8Y2U+Pj4zMi1kZX1mdW5jdGlvbiB0ZShjZSxkZSx2ZSxBZSxrZSxTZSxJZSxUZSl7cmV0dXJuIE4oY2UrKGRlXnZlXkFlKStTZStJZXwwLFRlKStrZXwwfWZ1bmN0aW9uIEsoY2UsZGUsdmUsQWUsa2UsU2UsSWUsVGUpe3JldHVybiBO''@;'; put 'put ''KGNlKyhkZSZ2ZXx+ZGUmQWUpK1NlK0llfDAsVGUpK2tlfDB9ZnVuY3Rpb24gSihjZSxkZSx2ZSxBZSxrZSxTZSxJZSxUZSl7cmV0dXJuIE4oY2UrKChkZXx+dmUpXkFlKStTZStJZXwwLFRlKStrZXwwfWZ1bmN0aW9uIHNlKGNlLGRlLHZlLEFlLGtlLFNlLEllLFRlKXtyZXR1cm4gTihjZSso''@;'; put 'put ''ZGUmQWV8dmUmfkFlKStTZStJZXwwLFRlKStrZXwwfWZ1bmN0aW9uIG9lKGNlLGRlLHZlLEFlLGtlLFNlLEllLFRlKXtyZXR1cm4gTihjZSsoZGVeKHZlfH5BZSkpK1NlK0llfDAsVGUpK2tlfDB9QihXLEUpLFcucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oKXtmb3IodmFyIGNlPUVlLGRl''@;'; put 'put ''PTA7ZGU8MTY7KytkZSljZVtkZV09dGhpcy5fYmxvY2sucmVhZEludDMyTEUoNCpkZSk7Zm9yKHZhciB2ZT0wfHRoaXMuX2EsQWU9MHx0aGlzLl9iLGtlPTB8dGhpcy5fYyxTZT0wfHRoaXMuX2QsSWU9MHx0aGlzLl9lLFRlPTB8dGhpcy5fYSxNZT0wfHRoaXMuX2IsaGU9MHx0aGlzLl9jLE89''@;'; put 'put ''MHx0aGlzLl9kLHo9MHx0aGlzLl9lLGVlPTA7ZWU8ODA7ZWUrPTEpe3ZhciBuZSx4O2VlPDE2PyhuZT10ZSh2ZSxBZSxrZSxTZSxJZSxjZVtVW2VlXV0sYWVbMF0saltlZV0pLHg9b2UoVGUsTWUsaGUsTyx6LGNlW1FbZWVdXSxZWzBdLHJlW2VlXSkpOmVlPDMyPyhuZT1LKHZlLEFlLGtlLFNl''@;'; put 'put ''LEllLGNlW1VbZWVdXSxhZVsxXSxqW2VlXSkseD1zZShUZSxNZSxoZSxPLHosY2VbUVtlZV1dLFlbMV0scmVbZWVdKSk6ZWU8NDg/KG5lPUoodmUsQWUsa2UsU2UsSWUsY2VbVVtlZV1dLGFlWzJdLGpbZWVdKSx4PUooVGUsTWUsaGUsTyx6LGNlW1FbZWVdXSxZWzJdLHJlW2VlXSkpOmVlPDY0''@;'; put 'put ''PyhuZT1zZSh2ZSxBZSxrZSxTZSxJZSxjZVtVW2VlXV0sYWVbM10saltlZV0pLHg9SyhUZSxNZSxoZSxPLHosY2VbUVtlZV1dLFlbM10scmVbZWVdKSk6KG5lPW9lKHZlLEFlLGtlLFNlLEllLGNlW1VbZWVdXSxhZVs0XSxqW2VlXSkseD10ZShUZSxNZSxoZSxPLHosY2VbUVtlZV1dLFlbNF0s''@;'; put 'put ''cmVbZWVdKSksdmU9SWUsSWU9U2UsU2U9TihrZSwxMCksa2U9QWUsQWU9bmUsVGU9eix6PU8sTz1OKGhlLDEwKSxoZT1NZSxNZT14fXZhciBQPXRoaXMuX2Ira2UrT3wwO3RoaXMuX2I9dGhpcy5fYytTZSt6fDAsdGhpcy5fYz10aGlzLl9kK0llK1RlfDAsdGhpcy5fZD10aGlzLl9lK3ZlK01l''@;'; put 'put ''fDAsdGhpcy5fZT10aGlzLl9hK0FlK2hlfDAsdGhpcy5fYT1QfSxXLnByb3RvdHlwZS5fZGlnZXN0PWZ1bmN0aW9uKCl7dGhpcy5fYmxvY2tbdGhpcy5fYmxvY2tPZmZzZXQrK109MTI4LHRoaXMuX2Jsb2NrT2Zmc2V0PjU2JiYodGhpcy5fYmxvY2suZmlsbCgwLHRoaXMuX2Jsb2NrT2Zmc2V0''@;'; put 'put ''LDY0KSx0aGlzLl91cGRhdGUoKSx0aGlzLl9ibG9ja09mZnNldD0wKSx0aGlzLl9ibG9jay5maWxsKDAsdGhpcy5fYmxvY2tPZmZzZXQsNTYpLHRoaXMuX2Jsb2NrLndyaXRlVUludDMyTEUodGhpcy5fbGVuZ3RoWzBdLDU2KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkxFKHRoaXMuX2xlbmd0''@;'; put 'put ''aFsxXSw2MCksdGhpcy5fdXBkYXRlKCk7dmFyIGNlPW1lLmFsbG9jP21lLmFsbG9jKDIwKTpuZXcgbWUoMjApO3JldHVybiBjZS53cml0ZUludDMyTEUodGhpcy5fYSwwKSxjZS53cml0ZUludDMyTEUodGhpcy5fYiw0KSxjZS53cml0ZUludDMyTEUodGhpcy5fYyw4KSxjZS53cml0ZUludDMy''@;'; put 'put ''TEUodGhpcy5fZCwxMiksY2Uud3JpdGVJbnQzMkxFKHRoaXMuX2UsMTYpLGNlfSxYZS5leHBvcnRzPVd9LDczNTAyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDkzMTcyKSxCPW1lLkJ1ZmZlcjtmdW5jdGlvbiBFKFUsUSl7Zm9yKHZhciBqIGluIFUpUVtqXT1VW2pdfWZ1bmN0aW9uIEVlKFUsUSxq''@;'; put 'put ''KXtyZXR1cm4gQihVLFEsail9Qi5mcm9tJiZCLmFsbG9jJiZCLmFsbG9jVW5zYWZlJiZCLmFsbG9jVW5zYWZlU2xvdz9YZS5leHBvcnRzPW1lOihFKG1lLEplKSxKZS5CdWZmZXI9RWUpLEUoQixFZSksRWUuZnJvbT1mdW5jdGlvbihVLFEsail7aWYoIm51bWJlciI9PXR5cGVvZiBVKXRocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3Qgbm90IGJlIGEgbnVtYmVyIik7cmV0dXJuIEIoVSxRLGopfSxFZS5hbGxvYz1mdW5jdGlvbihVLFEsail7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIg''@;'; put 'put ''cmU9QihVKTtyZXR1cm4gdm9pZCAwIT09UT8ic3RyaW5nIj09dHlwZW9mIGo/cmUuZmlsbChRLGopOnJlLmZpbGwoUSk6cmUuZmlsbCgwKSxyZX0sRWUuYWxsb2NVbnNhZmU9ZnVuY3Rpb24oVSl7aWYoIm51bWJlciIhPXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11''@;'; put 'put ''c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gQihVKX0sRWUuYWxsb2NVbnNhZmVTbG93PWZ1bmN0aW9uKFUpe2lmKCJudW1iZXIiIT10eXBlb2YgVSl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IGJlIGEgbnVtYmVyIik7cmV0dXJuIG1lLlNsb3dCdWZmZXIoVSl9fSw2MjAzODoo''@;'; put 'put ''WGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIEVlLG1lPUwoOTMxNzIpLEI9bWUuQnVmZmVyLEU9e307Zm9yKEVlIGluIG1lKSFtZS5oYXNPd25Qcm9wZXJ0eShFZSl8fCJTbG93QnVmZmVyIj09PUVlfHwiQnVmZmVyIj09PUVlfHwoRVtFZV09bWVbRWVdKTt2YXIgVT1FLkJ1ZmZlcj17fTtm''@;'; put 'put ''b3IoRWUgaW4gQikhQi5oYXNPd25Qcm9wZXJ0eShFZSl8fCJhbGxvY1Vuc2FmZSI9PT1FZXx8ImFsbG9jVW5zYWZlU2xvdyI9PT1FZXx8KFVbRWVdPUJbRWVdKTtpZihFLkJ1ZmZlci5wcm90b3R5cGU9Qi5wcm90b3R5cGUsKCFVLmZyb218fFUuZnJvbT09PVVpbnQ4QXJyYXkuZnJvbSkmJihV''@;'; put 'put ''LmZyb209ZnVuY3Rpb24oUSxqLHJlKXtpZigibnVtYmVyIj09dHlwZW9mIFEpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgUSk7aWYoUSYmdm9pZCAwPT09US5sZW5ndGgp''@;'; put 'put ''dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgUSk7cmV0dXJuIEIoUSxqLHJlKX0pLFUu''@;'; put 'put ''YWxsb2N8fChVLmFsbG9jPWZ1bmN0aW9uKFEsaixyZSl7aWYoIm51bWJlciIhPXR5cGVvZiBRKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAic2l6ZSIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIG51bWJlci4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiBRKTtpZihRPDB8fFE+PTIqKDE8PDMw''@;'; put 'put ''KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlICInK1ErJyIgaXMgaW52YWxpZCBmb3Igb3B0aW9uICJzaXplIicpO3ZhciBhZT1CKFEpO3JldHVybiBqJiYwIT09ai5sZW5ndGg/InN0cmluZyI9PXR5cGVvZiByZT9hZS5maWxsKGoscmUpOmFlLmZpbGwoaik6YWUuZmlsbCgwKSxh''@;'; put 'put ''ZX0pLCFFLmtTdHJpbmdNYXhMZW5ndGgpdHJ5e0Uua1N0cmluZ01heExlbmd0aD1wcm9jZXNzLmJpbmRpbmcoImJ1ZmZlciIpLmtTdHJpbmdNYXhMZW5ndGh9Y2F0Y2goUSl7fUUuY29uc3RhbnRzfHwoRS5jb25zdGFudHM9e01BWF9MRU5HVEg6RS5rTWF4TGVuZ3RofSxFLmtTdHJpbmdNYXhM''@;'; put 'put ''ZW5ndGgmJihFLmNvbnN0YW50cy5NQVhfU1RSSU5HX0xFTkdUSD1FLmtTdHJpbmdNYXhMZW5ndGgpKSxYZS5leHBvcnRzPUV9LDIwMzM6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU7IWZ1bmN0aW9uKCl7dmFyIEI9SmV8fHt9O3ZvaWQgMCE9PShtZT1mdW5jdGlvbigpe3JldHVybiBC''@;'; put 'put ''fS5hcHBseShKZSxbXSkpJiYoWGUuZXhwb3J0cz1tZSksQi5kZWZhdWx0PUI7dmFyIEU9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIixVPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsaj0vdXJsXChbIiddPyguKz8pWyInXT9cKS8scmU9e3dvZmYyOiJmb250L3dvZmYyIix3''@;'; put 'put ''b2ZmOiJmb250L3dvZmYiLG90ZjoiYXBwbGljYXRpb24veC1mb250LW9wZW50eXBlIix0dGY6ImFwcGxpY2F0aW9uL3gtZm9udC10dGYiLGVvdDoiYXBwbGljYXRpb24vdm5kLm1zLWZvbnRvYmplY3QiLHNmbnQ6ImFwcGxpY2F0aW9uL2ZvbnQtc2ZudCIsc3ZnOiJpbWFnZS9zdmcreG1sIn0s''@;'; put 'put ''YWU9ZnVuY3Rpb24oeil7cmV0dXJuIHogaW5zdGFuY2VvZiBIVE1MRWxlbWVudHx8eiBpbnN0YW5jZW9mIFNWR0VsZW1lbnR9LFk9ZnVuY3Rpb24oeil7aWYoIWFlKHopKXRocm93IG5ldyBFcnJvcigiYW4gSFRNTEVsZW1lbnQgb3IgU1ZHRWxlbWVudCBpcyByZXF1aXJlZDsgZ290ICIreil9''@;'; put 'put ''LFc9ZnVuY3Rpb24oeil7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGVlLG5lKXthZSh6KT9lZSh6KTpuZShuZXcgRXJyb3IoImFuIEhUTUxFbGVtZW50IG9yIFNWR0VsZW1lbnQgaXMgcmVxdWlyZWQ7IGdvdCAiK3opKX0pfSx0ZT1mdW5jdGlvbih6KXt2YXIgZWU9T2JqZWN0LmtleXMo''@;'; put 'put ''cmUpLmZpbHRlcihmdW5jdGlvbihuZSl7cmV0dXJuIHouaW5kZXhPZigiLiIrbmUpPjB9KS5tYXAoZnVuY3Rpb24obmUpe3JldHVybiByZVtuZV19KTtyZXR1cm4gZWU/ZWVbMF06KGNvbnNvbGUuZXJyb3IoIlVua25vd24gZm9udCBmb3JtYXQgZm9yICIreisiLiBGb250cyBtYXkgbm90IGJl''@;'; put 'put ''IHdvcmtpbmcgY29ycmVjdGx5LiIpLCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKX0sSj1mdW5jdGlvbih6LGVlLG5lKXt2YXIgeD16LnZpZXdCb3gmJnoudmlld0JveC5iYXNlVmFsJiZ6LnZpZXdCb3guYmFzZVZhbFtuZV18fG51bGwhPT1lZS5nZXRBdHRyaWJ1dGUobmUpJiYhZWUuZ2V0''@;'; put 'put ''QXR0cmlidXRlKG5lKS5tYXRjaCgvJSQvKSYmcGFyc2VJbnQoZWUuZ2V0QXR0cmlidXRlKG5lKSl8fHouZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbbmVdfHxwYXJzZUludChlZS5zdHlsZVtuZV0pfHxwYXJzZUludCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh6KS5nZXRQcm9wZXJ0eVZhbHVl''@;'; put 'put ''KG5lKSk7cmV0dXJuIG51bGw9PXh8fGlzTmFOKHBhcnNlRmxvYXQoeCkpPzA6eH0sY2U9ZnVuY3Rpb24oeil7Zm9yKHZhciBlZT13aW5kb3cuYXRvYih6LnNwbGl0KCIsIilbMV0pLG5lPXouc3BsaXQoIiwiKVswXS5zcGxpdCgiOiIpWzFdLnNwbGl0KCI7IilbMF0seD1uZXcgQXJyYXlCdWZm''@;'; put 'put ''ZXIoZWUubGVuZ3RoKSxQPW5ldyBVaW50OEFycmF5KHgpLFY9MDtWPGVlLmxlbmd0aDtWKyspUFtWXT1lZS5jaGFyQ29kZUF0KFYpO3JldHVybiBuZXcgQmxvYihbeF0se3R5cGU6bmV9KX0sa2U9e30sSWU9bnVsbCxNZT1mdW5jdGlvbih6LGVlKXt2YXIgbmU9ZWV8fHt9LHg9bmUuc2VsZWN0''@;'; put 'put ''b3JSZW1hcCxQPW5lLm1vZGlmeVN0eWxlLFQ9bmUuZm9udHMsUz1uZS5leGNsdWRlVW51c2VkQ3NzLEY9bmUubW9kaWZ5Q3NzfHxmdW5jdGlvbihQZSxRZSl7cmV0dXJuKHg/eChQZSk6UGUpKyJ7IisoUD9QKFFlKTpRZSkrIn1cbiJ9LHllPVtdLENlPXZvaWQgMD09PVQsRGU9VHx8W107cmV0''@;'; put 'put ''dXJuKEllfHwoSWU9QXJyYXkuZnJvbShkb2N1bWVudC5zdHlsZVNoZWV0cykubWFwKGZ1bmN0aW9uKHope3RyeXtyZXR1cm57cnVsZXM6ei5jc3NSdWxlcyxocmVmOnouaHJlZn19Y2F0Y2goZWUpe3JldHVybiBjb25zb2xlLndhcm4oIlN0eWxlc2hlZXQgY291bGQgbm90IGJlIGxvYWRlZDog''@;'; put 'put ''Iit6LmhyZWYsZWUpLHt9fX0pKSkuZm9yRWFjaChmdW5jdGlvbihQZSl7dmFyIFFlPVBlLnJ1bGVzLCRlPVBlLmhyZWY7IVFlfHxBcnJheS5mcm9tKFFlKS5mb3JFYWNoKGZ1bmN0aW9uKGd0KXtpZih2b2lkIDAhPT1ndC5zdHlsZSlpZihmdW5jdGlvbih6LGVlKXtpZihlZSl0cnl7cmV0dXJu''@;'; put 'put ''IHoucXVlcnlTZWxlY3RvcihlZSl8fHoucGFyZW50Tm9kZSYmei5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoZWUpfWNhdGNoKG5lKXtjb25zb2xlLndhcm4oJ0ludmFsaWQgQ1NTIHNlbGVjdG9yICInK2VlKyciJyxuZSl9fSh6LGd0LnNlbGVjdG9yVGV4dCkpeWUucHVzaChGKGd0LnNlbGVj''@;'; put 'put ''dG9yVGV4dCxndC5zdHlsZS5jc3NUZXh0KSk7ZWxzZSBpZihDZSYmZ3QuY3NzVGV4dC5tYXRjaCgvXkBmb250LWZhY2UvKSl7dmFyIHd0PWZ1bmN0aW9uKHosZWUpe3ZhciBuZT16LmNzc1RleHQubWF0Y2goaikseD1uZSYmbmVbMV18fCIiO2lmKHgmJiF4Lm1hdGNoKC9eZGF0YTovKSYmImFi''@;'; put 'put ''b3V0OmJsYW5rIiE9PXgpe3ZhciBQPXguc3RhcnRzV2l0aCgiLi4vIik/ZWUrIi8uLi8iK3g6eC5zdGFydHNXaXRoKCIuLyIpP2VlKyIvLiIreDp4O3JldHVybnt0ZXh0OnouY3NzVGV4dCxmb3JtYXQ6dGUoUCksdXJsOlB9fX0oZ3QsJGUpO3d0JiZEZS5wdXNoKHd0KX1lbHNlIFN8fHllLnB1''@;'; put 'put ''c2goZ3QuY3NzVGV4dCl9KX0pLGZ1bmN0aW9uKHope3JldHVybiBQcm9taXNlLmFsbCh6Lm1hcChmdW5jdGlvbihlZSl7cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKG5lLHgpe2lmKGtlW2VlLnVybF0pcmV0dXJuIG5lKGtlW2VlLnVybF0pO3ZhciBQPW5ldyBYTUxIdHRwUmVxdWVzdDtQ''@;'; put 'put ''LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLGZ1bmN0aW9uKCl7dmFyIFY9ZnVuY3Rpb24oeil7Zm9yKHZhciBlZT0iIixuZT1uZXcgVWludDhBcnJheSh6KSx4PTA7eDxuZS5ieXRlTGVuZ3RoO3grKyllZSs9U3RyaW5nLmZyb21DaGFyQ29kZShuZVt4XSk7cmV0dXJuIHdpbmRvdy5idG9hKGVl''@;'; put 'put ''KX0oUC5yZXNwb25zZSksVD1lZS50ZXh0LnJlcGxhY2UoaiwndXJsKCJkYXRhOicrZWUuZm9ybWF0KyI7YmFzZTY0LCIrVisnIiknKSsiXG4iO2tlW2VlLnVybF09VCxuZShUKX0pLFAuYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLGZ1bmN0aW9uKFYpe2NvbnNvbGUud2FybigiRmFpbGVkIHRv''@;'; put 'put ''IGxvYWQgZm9udCBmcm9tOiAiK2VlLnVybCxWKSxrZVtlZS51cmxdPW51bGwsbmUobnVsbCl9KSxQLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixmdW5jdGlvbihWKXtjb25zb2xlLndhcm4oIkFib3J0ZWQgbG9hZGluZyBmb250IGZyb206ICIrZWUudXJsLFYpLG5lKG51bGwpfSksUC5vcGVu''@;'; put 'put ''KCJHRVQiLGVlLnVybCksUC5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixQLnNlbmQoKX0pfSkpLnRoZW4oZnVuY3Rpb24oZWUpe3JldHVybiBlZS5maWx0ZXIoZnVuY3Rpb24obmUpe3JldHVybiBuZX0pLmpvaW4oIiIpfSl9KERlKS50aGVuKGZ1bmN0aW9uKFBlKXtyZXR1cm4geWUuam9p''@;'; put 'put ''bigiXG4iKStQZX0pfSxoZT1mdW5jdGlvbigpe2lmKCFuYXZpZ2F0b3IubXNTYXZlT3JPcGVuQmxvYiYmISgiZG93bmxvYWQiaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpKSlyZXR1cm57cG9wdXA6d2luZG93Lm9wZW4oKX19O0IucHJlcGFyZVN2Zz1mdW5jdGlvbihPLHosZWUpe1ko''@;'; put 'put ''Tyk7dmFyIG5lPXp8fHt9LHg9bmUubGVmdCxQPXZvaWQgMD09PXg/MDp4LFY9bmUudG9wLFQ9dm9pZCAwPT09Vj8wOlYsUz1uZS53aWR0aCxGPW5lLmhlaWdodCx5ZT1uZS5zY2FsZSxDZT12b2lkIDA9PT15ZT8xOnllLERlPW5lLnJlc3BvbnNpdmUsUGU9dm9pZCAwIT09RGUmJkRlLFFlPW5l''@;'; put 'put ''LmV4Y2x1ZGVDc3MsJGU9dm9pZCAwIT09UWUmJlFlO3JldHVybiBmdW5jdGlvbih6KXtyZXR1cm4gUHJvbWlzZS5hbGwoQXJyYXkuZnJvbSh6LnF1ZXJ5U2VsZWN0b3JBbGwoImltYWdlIikpLm1hcChmdW5jdGlvbihlZSl7dmFyIG5lPWVlLmdldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3Lncz''@;'; put 'put ''Lm9yZy8xOTk5L3hsaW5rIiwiaHJlZiIpfHxlZS5nZXRBdHRyaWJ1dGUoImhyZWYiKTtyZXR1cm4gbmU/KGZ1bmN0aW9uKHope3JldHVybiB6JiYwPT09ei5sYXN0SW5kZXhPZigiaHR0cCIsMCkmJi0xPT09ei5sYXN0SW5kZXhPZih3aW5kb3cubG9jYXRpb24uaG9zdCl9KG5lKSYmKG5lKz0o''@;'; put 'put ''LTE9PT1uZS5pbmRleE9mKCI/Iik/Ij8iOiImIikrInQ9IisobmV3IERhdGUpLnZhbHVlT2YoKSksbmV3IFByb21pc2UoZnVuY3Rpb24oeCxQKXt2YXIgVj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxUPW5ldyBJbWFnZTtULmNyb3NzT3JpZ2luPSJhbm9ueW1vdXMiLFQuc3Jj''@;'; put 'put ''PW5lLFQub25lcnJvcj1mdW5jdGlvbigpe3JldHVybiBQKG5ldyBFcnJvcigiQ291bGQgbm90IGxvYWQgIituZSkpfSxULm9ubG9hZD1mdW5jdGlvbigpe1Yud2lkdGg9VC53aWR0aCxWLmhlaWdodD1ULmhlaWdodCxWLmdldENvbnRleHQoIjJkIikuZHJhd0ltYWdlKFQsMCwwKSxlZS5zZXRB''@;'; put 'put ''dHRyaWJ1dGVOUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIsImhyZWYiLFYudG9EYXRhVVJMKCJpbWFnZS9wbmciKSkseCghMCl9fSkpOlByb21pc2UucmVzb2x2ZShudWxsKX0pKX0oTykudGhlbihmdW5jdGlvbigpe3ZhciBndD1PLmNsb25lTm9kZSghMCk7Z3Quc3R5bGUuYmFj''@;'; put 'put ''a2dyb3VuZENvbG9yPSh6fHx7fSkuYmFja2dyb3VuZENvbG9yfHxPLnN0eWxlLmJhY2tncm91bmRDb2xvcjt2YXIgd3Q9ZnVuY3Rpb24oeixlZSxuZSx4KXtpZigic3ZnIj09PXoudGFnTmFtZSlyZXR1cm57d2lkdGg6bmV8fEooeixlZSwid2lkdGgiKSxoZWlnaHQ6eHx8Sih6LGVlLCJoZWln''@;'; put 'put ''aHQiKX07aWYoei5nZXRCQm94KXt2YXIgUD16LmdldEJCb3goKTtyZXR1cm57d2lkdGg6UC54K1Aud2lkdGgsaGVpZ2h0OlAueStQLmhlaWdodH19fShPLGd0LFMsRiksbXQ9d3Qud2lkdGgsdnQ9d3QuaGVpZ2h0O2lmKCJzdmciIT09Ty50YWdOYW1lKXtpZighTy5nZXRCQm94KXJldHVybiB2''@;'; put 'put ''b2lkIGNvbnNvbGUuZXJyb3IoIkF0dGVtcHRlZCB0byByZW5kZXIgbm9uLVNWRyBlbGVtZW50IixPKTtudWxsIT1ndC5nZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIpJiZndC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsZ3QuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKS5yZXBsYWNlKC90cmFu''@;'; put 'put ''c2xhdGVcKC4qP1wpLywiIikpO3ZhciBBdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7QXQuYXBwZW5kQ2hpbGQoZ3QpLGd0PUF0fWlmKGd0LnNldEF0dHJpYnV0ZSgidmVyc2lvbiIsIjEuMSIpLGd0LnNldEF0dHJpYnV0ZSgi''@;'; put 'put ''dmlld0JveCIsW1AsVCxtdCx2dF0uam9pbigiICIpKSxndC5nZXRBdHRyaWJ1dGUoInhtbG5zIil8fGd0LnNldEF0dHJpYnV0ZU5TKEUsInhtbG5zIixVKSxndC5nZXRBdHRyaWJ1dGUoInhtbG5zOnhsaW5rIil8fGd0LnNldEF0dHJpYnV0ZU5TKEUsInhtbG5zOnhsaW5rIiwiaHR0cDovL3d3''@;'; put 'put ''dy53My5vcmcvMTk5OS94bGluayIpLFBlPyhndC5yZW1vdmVBdHRyaWJ1dGUoIndpZHRoIiksZ3QucmVtb3ZlQXR0cmlidXRlKCJoZWlnaHQiKSxndC5zZXRBdHRyaWJ1dGUoInByZXNlcnZlQXNwZWN0UmF0aW8iLCJ4TWluWU1pbiBtZWV0IikpOihndC5zZXRBdHRyaWJ1dGUoIndpZHRoIixt''@;'; put 'put ''dCpDZSksZ3Quc2V0QXR0cmlidXRlKCJoZWlnaHQiLHZ0KkNlKSksQXJyYXkuZnJvbShndC5xdWVyeVNlbGVjdG9yQWxsKCJmb3JlaWduT2JqZWN0ID4gKiIpKS5mb3JFYWNoKGZ1bmN0aW9uKG9uKXtvbi5zZXRBdHRyaWJ1dGVOUyhFLCJ4bWxucyIsInN2ZyI9PT1vbi50YWdOYW1lP1U6Imh0''@;'; put 'put ''dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiKX0pLCEkZSlyZXR1cm4gTWUoTyx6KS50aGVuKGZ1bmN0aW9uKG9uKXt2YXIgX3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtfdC5zZXRBdHRyaWJ1dGUoInR5cGUiLCJ0ZXh0L2NzcyIpLF90LmlubmVySFRNTD0iPCFbQ0RBVEFb''@;'; put 'put ''XG4iK29uKyJcbl1dPiI7dmFyIHR0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRlZnMiKTt0dC5hcHBlbmRDaGlsZChfdCksZ3QuaW5zZXJ0QmVmb3JlKHR0LGd0LmZpcnN0Q2hpbGQpO3ZhciBldD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtldC5hcHBlbmRDaGlsZChndCk7dmFy''@;'; put 'put ''IGx0PWV0LmlubmVySFRNTC5yZXBsYWNlKC9OU1xkKzpocmVmL2dpLCd4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeGxpbms6aHJlZicpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlZSlyZXR1cm57c3JjOmx0LHdpZHRoOm10LGhlaWdodDp2dH07ZWUobHQsbXQs''@;'; put 'put ''dnQpfSk7dmFyIGh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2h0LmFwcGVuZENoaWxkKGd0KTt2YXIgQnQ9aHQuaW5uZXJIVE1MO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlZSlyZXR1cm57c3JjOkJ0LHdpZHRoOm10LGhlaWdodDp2dH07ZWUoQnQsbXQsdnQpfSl9LEIuc3ZnQXNE''@;'; put 'put ''YXRhVXJpPWZ1bmN0aW9uKE8seixlZSl7cmV0dXJuIFkoTyksQi5wcmVwYXJlU3ZnKE8seikudGhlbihmdW5jdGlvbihuZSl7dmFyIFA9bmUud2lkdGgsVj1uZS5oZWlnaHQsVD0iZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCwiK3dpbmRvdy5idG9hKGZ1bmN0aW9uKHope3JldHVybiBkZWNv''@;'; put 'put ''ZGVVUklDb21wb25lbnQoZW5jb2RlVVJJQ29tcG9uZW50KHopLnJlcGxhY2UoLyUoWzAtOUEtRl17Mn0pL2csZnVuY3Rpb24oZWUsbmUpe3ZhciB4PVN0cmluZy5mcm9tQ2hhckNvZGUoIjB4IituZSk7cmV0dXJuIiUiPT09eD8iJTI1Ijp4fSkpfSgnPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFu''@;'; put 'put ''ZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCIgWzwhRU5USVRZIG5ic3AgIiYjMTYwOyI+XT4nK25lLnNyYykpO3JldHVybiJmdW5jdGlvbiI9''@;'; put 'put ''PXR5cGVvZiBlZSYmZWUoVCxQLFYpLFR9KX0sQi5zdmdBc1BuZ1VyaT1mdW5jdGlvbihPLHosZWUpe1koTyk7dmFyIG5lPXp8fHt9LHg9bmUuZW5jb2RlclR5cGUsUD12b2lkIDA9PT14PyJpbWFnZS9wbmciOngsVj1uZS5lbmNvZGVyT3B0aW9ucyxUPXZvaWQgMD09PVY/Ljg6VixTPW5lLmNh''@;'; put 'put ''bnZnLEY9ZnVuY3Rpb24oQ2Upe3ZhciBEZT1DZS5zcmMsUGU9Q2Uud2lkdGgsUWU9Q2UuaGVpZ2h0LCRlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGd0PSRlLmdldENvbnRleHQoIjJkIiksd3Q9d2luZG93LmRldmljZVBpeGVsUmF0aW98fDE7JGUud2lkdGg9UGUqd3QsJGUu''@;'; put 'put ''aGVpZ2h0PVFlKnd0LCRlLnN0eWxlLndpZHRoPSRlLndpZHRoKyJweCIsJGUuc3R5bGUuaGVpZ2h0PSRlLmhlaWdodCsicHgiLGd0LnNldFRyYW5zZm9ybSh3dCwwLDAsd3QsMCwwKSxTP1MoJGUsRGUpOmd0LmRyYXdJbWFnZShEZSwwLDApO3ZhciBtdD12b2lkIDA7dHJ5e210PSRlLnRvRGF0''@;'; put 'put ''YVVSTChQLFQpfWNhdGNoKHZ0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIFNlY3VyaXR5RXJyb3ImJnZ0IGluc3RhbmNlb2YgU2VjdXJpdHlFcnJvcnx8IlNlY3VyaXR5RXJyb3IiPT09dnQubmFtZSlyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKCJSZW5kZXJlZCBTVkcgaW1hZ2VzIGNhbm5v''@;'; put 'put ''dCBiZSBkb3dubG9hZGVkIGluIHRoaXMgYnJvd3Nlci4iKTt0aHJvdyB2dH1yZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZWUmJmVlKG10LCRlLndpZHRoLCRlLmhlaWdodCksUHJvbWlzZS5yZXNvbHZlKG10KX07cmV0dXJuIFM/Qi5wcmVwYXJlU3ZnKE8seikudGhlbihGKTpCLnN2Z0FzRGF0''@;'; put 'put ''YVVyaShPLHopLnRoZW4oZnVuY3Rpb24oeWUpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihDZSxEZSl7dmFyIFBlPW5ldyBJbWFnZTtQZS5vbmxvYWQ9ZnVuY3Rpb24oKXtyZXR1cm4gQ2UoRih7c3JjOlBlLHdpZHRoOlBlLndpZHRoLGhlaWdodDpQZS5oZWlnaHR9KSl9LFBlLm9uZXJy''@;'; put 'put ''b3I9ZnVuY3Rpb24oKXtEZSgiVGhlcmUgd2FzIGFuIGVycm9yIGxvYWRpbmcgdGhlIGRhdGEgVVJJIGFzIGFuIGltYWdlIG9uIHRoZSBmb2xsb3dpbmcgU1ZHXG4iK3dpbmRvdy5hdG9iKHllLnNsaWNlKDI2KSkrIk9wZW4gdGhlIGZvbGxvd2luZyBsaW5rIHRvIHNlZSBicm93c2VyJ3MgZGlh''@;'; put 'put ''Z25vc2lzXG4iK3llKX0sUGUuc3JjPXllfSl9KX0sQi5kb3dubG9hZD1mdW5jdGlvbihPLHosZWUpe2lmKG5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKW5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGNlKHopLE8pO2Vsc2V7dmFyIG5lPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtp''@;'; put 'put ''ZigiZG93bmxvYWQiaW4gbmUpe25lLmRvd25sb2FkPU8sbmUuc3R5bGUuZGlzcGxheT0ibm9uZSIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuZSk7dHJ5e3ZhciB4PWNlKHopLFA9VVJMLmNyZWF0ZU9iamVjdFVSTCh4KTtuZS5ocmVmPVAsbmUub25jbGljaz1mdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXR1cm4gVVJMLnJldm9rZU9iamVjdFVSTChQKX0pfX1jYXRjaChWKXtjb25zb2xlLmVycm9yKFYpLGNvbnNvbGUud2FybigiRXJyb3Igd2hpbGUgZ2V0dGluZyBvYmplY3QgVVJMLiBGYWxsaW5nIGJhY2sgdG8gc3RyaW5nIFVS''@;'; put 'put ''TC4iKSxuZS5ocmVmPXp9bmUuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG5lKX1lbHNlIGVlJiZlZS5wb3B1cCYmKGVlLnBvcHVwLmRvY3VtZW50LnRpdGxlPU8sZWUucG9wdXAubG9jYXRpb24ucmVwbGFjZSh6KSl9fSxCLnNhdmVTdmc9ZnVuY3Rpb24oTyx6LGVlKXt2YXIg''@;'; put 'put ''bmU9aGUoKTtyZXR1cm4gVyhPKS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiBCLnN2Z0FzRGF0YVVyaSh4LGVlfHx7fSl9KS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiBCLmRvd25sb2FkKHoseCxuZSl9KX0sQi5zYXZlU3ZnQXNQbmc9ZnVuY3Rpb24oTyx6LGVlKXt2YXIgbmU9aGUoKTtyZXR1''@;'; put 'put ''cm4gVyhPKS50aGVuKGZ1bmN0aW9uKHgpe3JldHVybiBCLnN2Z0FzUG5nVXJpKHgsZWV8fHt9KX0pLnRoZW4oZnVuY3Rpb24oeCl7cmV0dXJuIEIuZG93bmxvYWQoeix4LG5lKX0pfX0oKX0sODY2OTI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzM1MDIpLkJ1ZmZlcjtmdW5jdGlvbiBCKEUsRWUp''@;'; put 'put ''e3RoaXMuX2Jsb2NrPW1lLmFsbG9jKEUpLHRoaXMuX2ZpbmFsU2l6ZT1FZSx0aGlzLl9ibG9ja1NpemU9RSx0aGlzLl9sZW49MH1CLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oRSxFZSl7InN0cmluZyI9PXR5cGVvZiBFJiYoRT1tZS5mcm9tKEUsRWU9RWV8fCJ1dGY4IikpO2Zvcih2YXIg''@;'; put 'put ''VT10aGlzLl9ibG9jayxRPXRoaXMuX2Jsb2NrU2l6ZSxqPUUubGVuZ3RoLHJlPXRoaXMuX2xlbixhZT0wO2FlPGo7KXtmb3IodmFyIFk9cmUlUSxXPU1hdGgubWluKGotYWUsUS1ZKSxOPTA7TjxXO04rKylVW1krTl09RVthZStOXTthZSs9VywocmUrPVcpJVE9PTAmJnRoaXMuX3VwZGF0ZShV''@;'; put 'put ''KX1yZXR1cm4gdGhpcy5fbGVuKz1qLHRoaXN9LEIucHJvdG90eXBlLmRpZ2VzdD1mdW5jdGlvbihFKXt2YXIgRWU9dGhpcy5fbGVuJXRoaXMuX2Jsb2NrU2l6ZTt0aGlzLl9ibG9ja1tFZV09MTI4LHRoaXMuX2Jsb2NrLmZpbGwoMCxFZSsxKSxFZT49dGhpcy5fZmluYWxTaXplJiYodGhpcy5f''@;'; put 'put ''dXBkYXRlKHRoaXMuX2Jsb2NrKSx0aGlzLl9ibG9jay5maWxsKDApKTt2YXIgVT04KnRoaXMuX2xlbjtpZihVPD00Mjk0OTY3Mjk1KXRoaXMuX2Jsb2NrLndyaXRlVUludDMyQkUoVSx0aGlzLl9ibG9ja1NpemUtNCk7ZWxzZXt2YXIgUT0oNDI5NDk2NzI5NSZVKT4+PjA7dGhpcy5fYmxvY2su''@;'; put 'put ''d3JpdGVVSW50MzJCRSgoVS1RKS80Mjk0OTY3Mjk2LHRoaXMuX2Jsb2NrU2l6ZS04KSx0aGlzLl9ibG9jay53cml0ZVVJbnQzMkJFKFEsdGhpcy5fYmxvY2tTaXplLTQpfXRoaXMuX3VwZGF0ZSh0aGlzLl9ibG9jayk7dmFyIHJlPXRoaXMuX2hhc2goKTtyZXR1cm4gRT9yZS50b1N0cmluZyhF''@;'; put 'put ''KTpyZX0sQi5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbigpe3Rocm93IG5ldyBFcnJvcigiX3VwZGF0ZSBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzIil9LFhlLmV4cG9ydHM9Qn0sOTUyNDQ6KFhlLEplLEwpPT57dmFyIG1lPVhlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7RT1FLnRv''@;'; put 'put ''TG93ZXJDYXNlKCk7dmFyIEVlPW1lW0VdO2lmKCFFZSl0aHJvdyBuZXcgRXJyb3IoRSsiIGlzIG5vdCBzdXBwb3J0ZWQgKHdlIGFjY2VwdCBwdWxsIHJlcXVlc3RzKSIpO3JldHVybiBuZXcgRWV9O21lLnNoYT1MKDg4OTMyKSxtZS5zaGExPUwoMTc3MzYpLG1lLnNoYTIyND1MKDI1MDQ0KSxt''@;'; put 'put ''ZS5zaGEyNTY9TCgxNTAxNCksbWUuc2hhMzg0PUwoNzY1NDApLG1lLnNoYTUxMj1MKDEwMTE3KX0sODg5MzI6KFhlLEplLEwpPT57dmFyIG1lPUwoODM4OTQpLEI9TCg4NjY5MiksRT1MKDczNTAyKS5CdWZmZXIsRWU9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3''@;'; put 'put ''NTE0XSxVPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxCLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gaihZKXtyZXR1cm4gWTw8NXxZPj4+Mjd9ZnVuY3Rpb24gcmUoWSl7cmV0dXJuIFk8PDMwfFk+Pj4yfWZ1bmN0aW9uIGFlKFksVyxOLHRlKXty''@;'; put 'put ''ZXR1cm4gMD09PVk/VyZOfH5XJnRlOjI9PT1ZP1cmTnxXJnRlfE4mdGU6V15OXnRlfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3''@;'; put 'put ''OCx0aGlzLl9lPTMyODUzNzc1MjAsdGhpc30sUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihZKXtmb3IodmFyIFc9dGhpcy5fdyxOPTB8dGhpcy5fYSx0ZT0wfHRoaXMuX2IsSz0wfHRoaXMuX2MsSj0wfHRoaXMuX2Qsc2U9MHx0aGlzLl9lLG9lPTA7b2U8MTY7KytvZSlXW29lXT1ZLnJl''@;'; put 'put ''YWRJbnQzMkJFKDQqb2UpO2Zvcig7b2U8ODA7KytvZSlXW29lXT1XW29lLTNdXldbb2UtOF1eV1tvZS0xNF1eV1tvZS0xNl07Zm9yKHZhciBjZT0wO2NlPDgwOysrY2Upe3ZhciBkZT1+fihjZS8yMCksdmU9aihOKSthZShkZSx0ZSxLLEopK3NlK1dbY2VdK0VlW2RlXXwwO3NlPUosSj1LLEs9''@;'; put 'put ''cmUodGUpLHRlPU4sTj12ZX10aGlzLl9hPU4rdGhpcy5fYXwwLHRoaXMuX2I9dGUrdGhpcy5fYnwwLHRoaXMuX2M9Syt0aGlzLl9jfDAsdGhpcy5fZD1KK3RoaXMuX2R8MCx0aGlzLl9lPXNlK3RoaXMuX2V8MH0sUS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgWT1FLmFsbG9jVW5z''@;'; put 'put ''YWZlKDIwKTtyZXR1cm4gWS53cml0ZUludDMyQkUoMHx0aGlzLl9hLDApLFkud3JpdGVJbnQzMkJFKDB8dGhpcy5fYiw0KSxZLndyaXRlSW50MzJCRSgwfHRoaXMuX2MsOCksWS53cml0ZUludDMyQkUoMHx0aGlzLl9kLDEyKSxZLndyaXRlSW50MzJCRSgwfHRoaXMuX2UsMTYpLFl9LFhlLmV4''@;'; put 'put ''cG9ydHM9UX0sMTc3MzY6KFhlLEplLEwpPT57dmFyIG1lPUwoODM4OTQpLEI9TCg4NjY5MiksRT1MKDczNTAyKS5CdWZmZXIsRWU9WzE1MTg1MDAyNDksMTg1OTc3NTM5MywtMTg5NDAwNzU4OCwtODk5NDk3NTE0XSxVPW5ldyBBcnJheSg4MCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRo''@;'; put 'put ''aXMuX3c9VSxCLmNhbGwodGhpcyw2NCw1Nil9ZnVuY3Rpb24gaihXKXtyZXR1cm4gVzw8MXxXPj4+MzF9ZnVuY3Rpb24gcmUoVyl7cmV0dXJuIFc8PDV8Vz4+PjI3fWZ1bmN0aW9uIGFlKFcpe3JldHVybiBXPDwzMHxXPj4+Mn1mdW5jdGlvbiBZKFcsTix0ZSxLKXtyZXR1cm4gMD09PVc/TiZ0''@;'; put 'put ''ZXx+TiZLOjI9PT1XP04mdGV8TiZLfHRlJks6Tl50ZV5LfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hPTE3MzI1ODQxOTMsdGhpcy5fYj00MDIzMjMzNDE3LHRoaXMuX2M9MjU2MjM4MzEwMix0aGlzLl9kPTI3MTczMzg3OCx0aGlzLl9lPTMyODUz''@;'; put 'put ''Nzc1MjAsdGhpc30sUS5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbihXKXtmb3IodmFyIE49dGhpcy5fdyx0ZT0wfHRoaXMuX2EsSz0wfHRoaXMuX2IsSj0wfHRoaXMuX2Msc2U9MHx0aGlzLl9kLG9lPTB8dGhpcy5fZSxjZT0wO2NlPDE2OysrY2UpTltjZV09Vy5yZWFkSW50MzJCRSg0KmNl''@;'; put 'put ''KTtmb3IoO2NlPDgwOysrY2UpTltjZV09aihOW2NlLTNdXk5bY2UtOF1eTltjZS0xNF1eTltjZS0xNl0pO2Zvcih2YXIgZGU9MDtkZTw4MDsrK2RlKXt2YXIgdmU9fn4oZGUvMjApLEFlPXJlKHRlKStZKHZlLEssSixzZSkrb2UrTltkZV0rRWVbdmVdfDA7b2U9c2Usc2U9SixKPWFlKEspLEs9''@;'; put 'put ''dGUsdGU9QWV9dGhpcy5fYT10ZSt0aGlzLl9hfDAsdGhpcy5fYj1LK3RoaXMuX2J8MCx0aGlzLl9jPUordGhpcy5fY3wwLHRoaXMuX2Q9c2UrdGhpcy5fZHwwLHRoaXMuX2U9b2UrdGhpcy5fZXwwfSxRLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBXPUUuYWxsb2NVbnNhZmUoMjAp''@;'; put 'put ''O3JldHVybiBXLndyaXRlSW50MzJCRSgwfHRoaXMuX2EsMCksVy53cml0ZUludDMyQkUoMHx0aGlzLl9iLDQpLFcud3JpdGVJbnQzMkJFKDB8dGhpcy5fYyw4KSxXLndyaXRlSW50MzJCRSgwfHRoaXMuX2QsMTIpLFcud3JpdGVJbnQzMkJFKDB8dGhpcy5fZSwxNiksV30sWGUuZXhwb3J0cz1R''@;'; put 'put ''fSwyNTA0NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4Mzg5NCksQj1MKDE1MDE0KSxFPUwoODY2OTIpLEVlPUwoNzM1MDIpLkJ1ZmZlcixVPW5ldyBBcnJheSg2NCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxFLmNhbGwodGhpcyw2NCw1Nil9bWUoUSxCKSxRLnByb3RvdHlw''@;'; put 'put ''ZS5pbml0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2E9MzIzODM3MTAzMix0aGlzLl9iPTkxNDE1MDY2Myx0aGlzLl9jPTgxMjcwMjk5OSx0aGlzLl9kPTQxNDQ5MTI2OTcsdGhpcy5fZT00MjkwNzc1ODU3LHRoaXMuX2Y9MTc1MDYwMzAyNSx0aGlzLl9nPTE2OTQwNzY4MzksdGhpcy5faD0z''@;'; put 'put ''MjA0MDc1NDI4LHRoaXN9LFEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGo9RWUuYWxsb2NVbnNhZmUoMjgpO3JldHVybiBqLndyaXRlSW50MzJCRSh0aGlzLl9hLDApLGoud3JpdGVJbnQzMkJFKHRoaXMuX2IsNCksai53cml0ZUludDMyQkUodGhpcy5fYyw4KSxqLndyaXRlSW50''@;'; put 'put ''MzJCRSh0aGlzLl9kLDEyKSxqLndyaXRlSW50MzJCRSh0aGlzLl9lLDE2KSxqLndyaXRlSW50MzJCRSh0aGlzLl9mLDIwKSxqLndyaXRlSW50MzJCRSh0aGlzLl9nLDI0KSxqfSxYZS5leHBvcnRzPVF9LDE1MDE0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDgzODk0KSxCPUwoODY2OTIpLEU9TCg3''@;'; put 'put ''MzUwMikuQnVmZmVyLEVlPVsxMTE2MzUyNDA4LDE4OTk0NDc0NDEsMzA0OTMyMzQ3MSwzOTIxMDA5NTczLDk2MTk4NzE2MywxNTA4OTcwOTkzLDI0NTM2MzU3NDgsMjg3MDc2MzIyMSwzNjI0MzgxMDgwLDMxMDU5ODQwMSw2MDcyMjUyNzgsMTQyNjg4MTk4NywxOTI1MDc4Mzg4LDIxNjIwNzgy''@;'; put 'put ''MDYsMjYxNDg4ODEwMywzMjQ4MjIyNTgwLDM4MzUzOTA0MDEsNDAyMjIyNDc3NCwyNjQzNDcwNzgsNjA0ODA3NjI4LDc3MDI1NTk4MywxMjQ5MTUwMTIyLDE1NTUwODE2OTIsMTk5NjA2NDk4NiwyNTU0MjIwODgyLDI4MjE4MzQzNDksMjk1Mjk5NjgwOCwzMjEwMzEzNjcxLDMzMzY1NzE4OTEs''@;'; put 'put ''MzU4NDUyODcxMSwxMTM5MjY5OTMsMzM4MjQxODk1LDY2NjMwNzIwNSw3NzM1Mjk5MTIsMTI5NDc1NzM3MiwxMzk2MTgyMjkxLDE2OTUxODM3MDAsMTk4NjY2MTA1MSwyMTc3MDI2MzUwLDI0NTY5NTYwMzcsMjczMDQ4NTkyMSwyODIwMzAyNDExLDMyNTk3MzA4MDAsMzM0NTc2NDc3MSwzNTE2''@;'; put 'put ''MDY1ODE3LDM2MDAzNTI4MDQsNDA5NDU3MTkwOSwyNzU0MjMzNDQsNDMwMjI3NzM0LDUwNjk0ODYxNiw2NTkwNjA1NTYsODgzOTk3ODc3LDk1ODEzOTU3MSwxMzIyODIyMjE4LDE1MzcwMDIwNjMsMTc0Nzg3Mzc3OSwxOTU1NTYyMjIyLDIwMjQxMDQ4MTUsMjIyNzczMDQ1MiwyMzYxODUyNDI0''@;'; put 'put ''LDI0Mjg0MzY0NzQsMjc1NjczNDE4NywzMjA0MDMxNDc5LDMzMjkzMjUyOThdLFU9bmV3IEFycmF5KDY0KTtmdW5jdGlvbiBRKCl7dGhpcy5pbml0KCksdGhpcy5fdz1VLEIuY2FsbCh0aGlzLDY0LDU2KX1mdW5jdGlvbiBqKHRlLEssSil7cmV0dXJuIEpedGUmKEteSil9ZnVuY3Rpb24gcmUo''@;'; put 'put ''dGUsSyxKKXtyZXR1cm4gdGUmS3xKJih0ZXxLKX1mdW5jdGlvbiBhZSh0ZSl7cmV0dXJuKHRlPj4+Mnx0ZTw8MzApXih0ZT4+PjEzfHRlPDwxOSleKHRlPj4+MjJ8dGU8PDEwKX1mdW5jdGlvbiBZKHRlKXtyZXR1cm4odGU+Pj42fHRlPDwyNileKHRlPj4+MTF8dGU8PDIxKV4odGU+Pj4yNXx0''@;'; put 'put ''ZTw8Nyl9ZnVuY3Rpb24gVyh0ZSl7cmV0dXJuKHRlPj4+N3x0ZTw8MjUpXih0ZT4+PjE4fHRlPDwxNCledGU+Pj4zfWZ1bmN0aW9uIE4odGUpe3JldHVybih0ZT4+PjE3fHRlPDwxNSleKHRlPj4+MTl8dGU8PDEzKV50ZT4+PjEwfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiB0aGlzLl9hPTE3NzkwMzM3MDMsdGhpcy5fYj0zMTQ0MTM0Mjc3LHRoaXMuX2M9MTAxMzkwNDI0Mix0aGlzLl9kPTI3NzM0ODA3NjIsdGhpcy5fZT0xMzU5ODkzMTE5LHRoaXMuX2Y9MjYwMDgyMjkyNCx0aGlzLl9nPTUyODczNDYzNSx0aGlzLl9oPTE1NDE0NTkyMjUsdGhpc30s''@;'; put 'put ''US5wcm90b3R5cGUuX3VwZGF0ZT1mdW5jdGlvbih0ZSl7Zm9yKHZhciBLPXRoaXMuX3csSj0wfHRoaXMuX2Esc2U9MHx0aGlzLl9iLG9lPTB8dGhpcy5fYyxjZT0wfHRoaXMuX2QsZGU9MHx0aGlzLl9lLHZlPTB8dGhpcy5fZixBZT0wfHRoaXMuX2csa2U9MHx0aGlzLl9oLFNlPTA7U2U8MTY7''@;'; put 'put ''KytTZSlLW1NlXT10ZS5yZWFkSW50MzJCRSg0KlNlKTtmb3IoO1NlPDY0OysrU2UpS1tTZV09TihLW1NlLTJdKStLW1NlLTddK1coS1tTZS0xNV0pK0tbU2UtMTZdfDA7Zm9yKHZhciBJZT0wO0llPDY0OysrSWUpe3ZhciBUZT1rZStZKGRlKStqKGRlLHZlLEFlKStFZVtJZV0rS1tJZV18MCxN''@;'; put 'put ''ZT1hZShKKStyZShKLHNlLG9lKXwwO2tlPUFlLEFlPXZlLHZlPWRlLGRlPWNlK1RlfDAsY2U9b2Usb2U9c2Usc2U9SixKPVRlK01lfDB9dGhpcy5fYT1KK3RoaXMuX2F8MCx0aGlzLl9iPXNlK3RoaXMuX2J8MCx0aGlzLl9jPW9lK3RoaXMuX2N8MCx0aGlzLl9kPWNlK3RoaXMuX2R8MCx0aGlz''@;'; put 'put ''Ll9lPWRlK3RoaXMuX2V8MCx0aGlzLl9mPXZlK3RoaXMuX2Z8MCx0aGlzLl9nPUFlK3RoaXMuX2d8MCx0aGlzLl9oPWtlK3RoaXMuX2h8MH0sUS5wcm90b3R5cGUuX2hhc2g9ZnVuY3Rpb24oKXt2YXIgdGU9RS5hbGxvY1Vuc2FmZSgzMik7cmV0dXJuIHRlLndyaXRlSW50MzJCRSh0aGlzLl9h''@;'; put 'put ''LDApLHRlLndyaXRlSW50MzJCRSh0aGlzLl9iLDQpLHRlLndyaXRlSW50MzJCRSh0aGlzLl9jLDgpLHRlLndyaXRlSW50MzJCRSh0aGlzLl9kLDEyKSx0ZS53cml0ZUludDMyQkUodGhpcy5fZSwxNiksdGUud3JpdGVJbnQzMkJFKHRoaXMuX2YsMjApLHRlLndyaXRlSW50MzJCRSh0aGlzLl9n''@;'; put 'put ''LDI0KSx0ZS53cml0ZUludDMyQkUodGhpcy5faCwyOCksdGV9LFhlLmV4cG9ydHM9UX0sNzY1NDA6KFhlLEplLEwpPT57dmFyIG1lPUwoODM4OTQpLEI9TCgxMDExNyksRT1MKDg2NjkyKSxFZT1MKDczNTAyKS5CdWZmZXIsVT1uZXcgQXJyYXkoMTYwKTtmdW5jdGlvbiBRKCl7dGhpcy5pbml0''@;'; put 'put ''KCksdGhpcy5fdz1VLEUuY2FsbCh0aGlzLDEyOCwxMTIpfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9haD0zNDE4MDcwMzY1LHRoaXMuX2JoPTE2NTQyNzAyNTAsdGhpcy5fY2g9MjQzODUyOTM3MCx0aGlzLl9kaD0zNTU0NjIzNjAsdGhpcy5fZWg9''@;'; put 'put ''MTczMTQwNTQxNSx0aGlzLl9maD0yMzk0MTgwMjMxLHRoaXMuX2doPTM2NzUwMDg1MjUsdGhpcy5faGg9MTIwMzA2MjgxMyx0aGlzLl9hbD0zMjM4MzcxMDMyLHRoaXMuX2JsPTkxNDE1MDY2Myx0aGlzLl9jbD04MTI3MDI5OTksdGhpcy5fZGw9NDE0NDkxMjY5Nyx0aGlzLl9lbD00MjkwNzc1''@;'; put 'put ''ODU3LHRoaXMuX2ZsPTE3NTA2MDMwMjUsdGhpcy5fZ2w9MTY5NDA3NjgzOSx0aGlzLl9obD0zMjA0MDc1NDI4LHRoaXN9LFEucHJvdG90eXBlLl9oYXNoPWZ1bmN0aW9uKCl7dmFyIGo9RWUuYWxsb2NVbnNhZmUoNDgpO2Z1bmN0aW9uIHJlKGFlLFksVyl7ai53cml0ZUludDMyQkUoYWUsVyks''@;'; put 'put ''ai53cml0ZUludDMyQkUoWSxXKzQpfXJldHVybiByZSh0aGlzLl9haCx0aGlzLl9hbCwwKSxyZSh0aGlzLl9iaCx0aGlzLl9ibCw4KSxyZSh0aGlzLl9jaCx0aGlzLl9jbCwxNikscmUodGhpcy5fZGgsdGhpcy5fZGwsMjQpLHJlKHRoaXMuX2VoLHRoaXMuX2VsLDMyKSxyZSh0aGlzLl9maCx0''@;'; put 'put ''aGlzLl9mbCw0MCksan0sWGUuZXhwb3J0cz1RfSwxMDExNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4Mzg5NCksQj1MKDg2NjkyKSxFPUwoNzM1MDIpLkJ1ZmZlcixFZT1bMTExNjM1MjQwOCwzNjA5NzY3NDU4LDE4OTk0NDc0NDEsNjAyODkxNzI1LDMwNDkzMjM0NzEsMzk2NDQ4NDM5OSwzOTIx''@;'; put 'put ''MDA5NTczLDIxNzMyOTU1NDgsOTYxOTg3MTYzLDQwODE2Mjg0NzIsMTUwODk3MDk5MywzMDUzODM0MjY1LDI0NTM2MzU3NDgsMjkzNzY3MTU3OSwyODcwNzYzMjIxLDM2NjQ2MDk1NjAsMzYyNDM4MTA4MCwyNzM0ODgzMzk0LDMxMDU5ODQwMSwxMTY0OTk2NTQyLDYwNzIyNTI3OCwxMzIzNjEw''@;'; put 'put ''NzY0LDE0MjY4ODE5ODcsMzU5MDMwNDk5NCwxOTI1MDc4Mzg4LDQwNjgxODIzODMsMjE2MjA3ODIwNiw5OTEzMzYxMTMsMjYxNDg4ODEwMyw2MzM4MDMzMTcsMzI0ODIyMjU4MCwzNDc5Nzc0ODY4LDM4MzUzOTA0MDEsMjY2NjYxMzQ1OCw0MDIyMjI0Nzc0LDk0NDcxMTEzOSwyNjQzNDcwNzgs''@;'; put 'put ''MjM0MTI2Mjc3Myw2MDQ4MDc2MjgsMjAwNzgwMDkzMyw3NzAyNTU5ODMsMTQ5NTk5MDkwMSwxMjQ5MTUwMTIyLDE4NTY0MzEyMzUsMTU1NTA4MTY5MiwzMTc1MjE4MTMyLDE5OTYwNjQ5ODYsMjE5ODk1MDgzNywyNTU0MjIwODgyLDM5OTk3MTkzMzksMjgyMTgzNDM0OSw3NjY3ODQwMTYsMjk1''@;'; put 'put ''Mjk5NjgwOCwyNTY2NTk0ODc5LDMyMTAzMTM2NzEsMzIwMzMzNzk1NiwzMzM2NTcxODkxLDEwMzQ0NTcwMjYsMzU4NDUyODcxMSwyNDY2OTQ4OTAxLDExMzkyNjk5MywzNzU4MzI2MzgzLDMzODI0MTg5NSwxNjg3MTc5MzYsNjY2MzA3MjA1LDExODgxNzk5NjQsNzczNTI5OTEyLDE1NDYwNDU3''@;'; put 'put ''MzQsMTI5NDc1NzM3MiwxNTIyODA1NDg1LDEzOTYxODIyOTEsMjY0MzgzMzgyMywxNjk1MTgzNzAwLDIzNDM1MjczOTAsMTk4NjY2MTA1MSwxMDE0NDc3NDgwLDIxNzcwMjYzNTAsMTIwNjc1OTE0MiwyNDU2OTU2MDM3LDM0NDA3NzYyNywyNzMwNDg1OTIxLDEyOTA4NjM0NjAsMjgyMDMwMjQx''@;'; put 'put ''MSwzMTU4NDU0MjczLDMyNTk3MzA4MDAsMzUwNTk1MjY1NywzMzQ1NzY0NzcxLDEwNjIxNzAwOCwzNTE2MDY1ODE3LDM2MDYwMDgzNDQsMzYwMDM1MjgwNCwxNDMyNzI1Nzc2LDQwOTQ1NzE5MDksMTQ2NzAzMTU5NCwyNzU0MjMzNDQsODUxMTY5NzIwLDQzMDIyNzczNCwzMTAwODIzNzUyLDUw''@;'; put 'put ''Njk0ODYxNiwxMzYzMjU4MTk1LDY1OTA2MDU1NiwzNzUwNjg1NTkzLDg4Mzk5Nzg3NywzNzg1MDUwMjgwLDk1ODEzOTU3MSwzMzE4MzA3NDI3LDEzMjI4MjIyMTgsMzgxMjcyMzQwMywxNTM3MDAyMDYzLDIwMDMwMzQ5OTUsMTc0Nzg3Mzc3OSwzNjAyMDM2ODk5LDE5NTU1NjIyMjIsMTU3NTk5''@;'; put 'put ''MDAxMiwyMDI0MTA0ODE1LDExMjU1OTI5MjgsMjIyNzczMDQ1MiwyNzE2OTA0MzA2LDIzNjE4NTI0MjQsNDQyNzc2MDQ0LDI0Mjg0MzY0NzQsNTkzNjk4MzQ0LDI3NTY3MzQxODcsMzczMzExMDI0OSwzMjA0MDMxNDc5LDI5OTkzNTE1NzMsMzMyOTMyNTI5OCwzODE1OTIwNDI3LDMzOTE1Njk2''@;'; put 'put ''MTQsMzkyODM4MzkwMCwzNTE1MjY3MjcxLDU2NjI4MDcxMSwzOTQwMTg3NjA2LDM0NTQwNjk1MzQsNDExODYzMDI3MSw0MDAwMjM5OTkyLDExNjQxODQ3NCwxOTE0MTM4NTU0LDE3NDI5MjQyMSwyNzMxMDU1MjcwLDI4OTM4MDM1NiwzMjAzOTkzMDA2LDQ2MDM5MzI2OSwzMjA2MjAzMTUsNjg1''@;'; put 'put ''NDcxNzMzLDU4NzQ5NjgzNiw4NTIxNDI5NzEsMTA4Njc5Mjg1MSwxMDE3MDM2Mjk4LDM2NTU0MzEwMCwxMTI2MDAwNTgwLDI2MTgyOTc2NzYsMTI4ODAzMzQ3MCwzNDA5ODU1MTU4LDE1MDE1MDU5NDgsNDIzNDUwOTg2NiwxNjA3MTY3OTE1LDk4NzE2NzQ2OCwxODE2NDAyMzE2LDEyNDYxODk1''@;'; put 'put ''OTFdLFU9bmV3IEFycmF5KDE2MCk7ZnVuY3Rpb24gUSgpe3RoaXMuaW5pdCgpLHRoaXMuX3c9VSxCLmNhbGwodGhpcywxMjgsMTEyKX1mdW5jdGlvbiBqKHNlLG9lLGNlKXtyZXR1cm4gY2Vec2UmKG9lXmNlKX1mdW5jdGlvbiByZShzZSxvZSxjZSl7cmV0dXJuIHNlJm9lfGNlJihzZXxvZSl9''@;'; put 'put ''ZnVuY3Rpb24gYWUoc2Usb2Upe3JldHVybihzZT4+PjI4fG9lPDw0KV4ob2U+Pj4yfHNlPDwzMCleKG9lPj4+N3xzZTw8MjUpfWZ1bmN0aW9uIFkoc2Usb2Upe3JldHVybihzZT4+PjE0fG9lPDwxOCleKHNlPj4+MTh8b2U8PDE0KV4ob2U+Pj45fHNlPDwyMyl9ZnVuY3Rpb24gVyhzZSxvZSl7''@;'; put 'put ''cmV0dXJuKHNlPj4+MXxvZTw8MzEpXihzZT4+Pjh8b2U8PDI0KV5zZT4+Pjd9ZnVuY3Rpb24gTihzZSxvZSl7cmV0dXJuKHNlPj4+MXxvZTw8MzEpXihzZT4+Pjh8b2U8PDI0KV4oc2U+Pj43fG9lPDwyNSl9ZnVuY3Rpb24gdGUoc2Usb2Upe3JldHVybihzZT4+PjE5fG9lPDwxMyleKG9lPj4+''@;'; put 'put ''Mjl8c2U8PDMpXnNlPj4+Nn1mdW5jdGlvbiBLKHNlLG9lKXtyZXR1cm4oc2U+Pj4xOXxvZTw8MTMpXihvZT4+PjI5fHNlPDwzKV4oc2U+Pj42fG9lPDwyNil9ZnVuY3Rpb24gSihzZSxvZSl7cmV0dXJuIHNlPj4+MDxvZT4+PjA/MTowfW1lKFEsQiksUS5wcm90b3R5cGUuaW5pdD1mdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB0aGlzLl9haD0xNzc5MDMzNzAzLHRoaXMuX2JoPTMxNDQxMzQyNzcsdGhpcy5fY2g9MTAxMzkwNDI0Mix0aGlzLl9kaD0yNzczNDgwNzYyLHRoaXMuX2VoPTEzNTk4OTMxMTksdGhpcy5fZmg9MjYwMDgyMjkyNCx0aGlzLl9naD01Mjg3MzQ2MzUsdGhpcy5faGg9MTU0MTQ1''@;'; put 'put ''OTIyNSx0aGlzLl9hbD00MDg5MjM1NzIwLHRoaXMuX2JsPTIyMjc4NzM1OTUsdGhpcy5fY2w9NDI3MTE3NTcyMyx0aGlzLl9kbD0xNTk1NzUwMTI5LHRoaXMuX2VsPTI5MTc1NjUxMzcsdGhpcy5fZmw9NzI1NTExMTk5LHRoaXMuX2dsPTQyMTUzODk1NDcsdGhpcy5faGw9MzI3MDMzMjA5LHRo''@;'; put 'put ''aXN9LFEucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oc2Upe2Zvcih2YXIgb2U9dGhpcy5fdyxjZT0wfHRoaXMuX2FoLGRlPTB8dGhpcy5fYmgsdmU9MHx0aGlzLl9jaCxBZT0wfHRoaXMuX2RoLGtlPTB8dGhpcy5fZWgsU2U9MHx0aGlzLl9maCxJZT0wfHRoaXMuX2doLFRlPTB8dGhpcy5f''@;'; put 'put ''aGgsTWU9MHx0aGlzLl9hbCxoZT0wfHRoaXMuX2JsLE89MHx0aGlzLl9jbCx6PTB8dGhpcy5fZGwsZWU9MHx0aGlzLl9lbCxuZT0wfHRoaXMuX2ZsLHg9MHx0aGlzLl9nbCxQPTB8dGhpcy5faGwsVj0wO1Y8MzI7Vis9MilvZVtWXT1zZS5yZWFkSW50MzJCRSg0KlYpLG9lW1YrMV09c2UucmVh''@;'; put 'put ''ZEludDMyQkUoNCpWKzQpO2Zvcig7VjwxNjA7Vis9Mil7dmFyIFQ9b2VbVi0zMF0sUz1vZVtWLTMwKzFdLEY9VyhULFMpLHllPU4oUyxUKSxDZT10ZShUPW9lW1YtNF0sUz1vZVtWLTQrMV0pLERlPUsoUyxUKSwkZT1vZVtWLTMyXSxndD1vZVtWLTMyKzFdLHd0PXllK29lW1YtMTQrMV18MCxt''@;'; put 'put ''dD1GK29lW1YtMTRdK0ood3QseWUpfDA7bXQ9KG10PW10K0NlK0ood3Q9d3QrRGV8MCxEZSl8MCkrJGUrSih3dD13dCtndHwwLGd0KXwwLG9lW1ZdPW10LG9lW1YrMV09d3R9Zm9yKHZhciB2dD0wO3Z0PDE2MDt2dCs9Mil7bXQ9b2VbdnRdLHd0PW9lW3Z0KzFdO3ZhciBBdD1yZShjZSxkZSx2''@;'; put 'put ''ZSksaHQ9cmUoTWUsaGUsTyksQnQ9YWUoY2UsTWUpLG9uPWFlKE1lLGNlKSxfdD1ZKGtlLGVlKSx0dD1ZKGVlLGtlKSxldD1FZVt2dF0sbHQ9RWVbdnQrMV0sTHQ9aihrZSxTZSxJZSksQ3Q9aihlZSxuZSx4KSxmdD1QK3R0fDAsSHQ9VGUrX3QrSihmdCxQKXwwO0h0PShIdD0oSHQ9SHQrTHQr''@;'; put 'put ''SihmdD1mdCtDdHwwLEN0KXwwKStldCtKKGZ0PWZ0K2x0fDAsbHQpfDApK210K0ooZnQ9ZnQrd3R8MCx3dCl8MDt2YXIgR2U9b24raHR8MCxVZT1CdCtBdCtKKEdlLG9uKXwwO1RlPUllLFA9eCxJZT1TZSx4PW5lLFNlPWtlLG5lPWVlLGtlPUFlK0h0K0ooZWU9eitmdHwwLHopfDAsQWU9dmUs''@;'; put 'put ''ej1PLHZlPWRlLE89aGUsZGU9Y2UsaGU9TWUsY2U9SHQrVWUrSihNZT1mdCtHZXwwLGZ0KXwwfXRoaXMuX2FsPXRoaXMuX2FsK01lfDAsdGhpcy5fYmw9dGhpcy5fYmwraGV8MCx0aGlzLl9jbD10aGlzLl9jbCtPfDAsdGhpcy5fZGw9dGhpcy5fZGwrenwwLHRoaXMuX2VsPXRoaXMuX2VsK2Vl''@;'; put 'put ''fDAsdGhpcy5fZmw9dGhpcy5fZmwrbmV8MCx0aGlzLl9nbD10aGlzLl9nbCt4fDAsdGhpcy5faGw9dGhpcy5faGwrUHwwLHRoaXMuX2FoPXRoaXMuX2FoK2NlK0oodGhpcy5fYWwsTWUpfDAsdGhpcy5fYmg9dGhpcy5fYmgrZGUrSih0aGlzLl9ibCxoZSl8MCx0aGlzLl9jaD10aGlzLl9jaCt2''@;'; put 'put ''ZStKKHRoaXMuX2NsLE8pfDAsdGhpcy5fZGg9dGhpcy5fZGgrQWUrSih0aGlzLl9kbCx6KXwwLHRoaXMuX2VoPXRoaXMuX2VoK2tlK0oodGhpcy5fZWwsZWUpfDAsdGhpcy5fZmg9dGhpcy5fZmgrU2UrSih0aGlzLl9mbCxuZSl8MCx0aGlzLl9naD10aGlzLl9naCtJZStKKHRoaXMuX2dsLHgp''@;'; put 'put ''fDAsdGhpcy5faGg9dGhpcy5faGgrVGUrSih0aGlzLl9obCxQKXwwfSxRLnByb3RvdHlwZS5faGFzaD1mdW5jdGlvbigpe3ZhciBzZT1FLmFsbG9jVW5zYWZlKDY0KTtmdW5jdGlvbiBvZShjZSxkZSx2ZSl7c2Uud3JpdGVJbnQzMkJFKGNlLHZlKSxzZS53cml0ZUludDMyQkUoZGUsdmUrNCl9''@;'; put 'put ''cmV0dXJuIG9lKHRoaXMuX2FoLHRoaXMuX2FsLDApLG9lKHRoaXMuX2JoLHRoaXMuX2JsLDgpLG9lKHRoaXMuX2NoLHRoaXMuX2NsLDE2KSxvZSh0aGlzLl9kaCx0aGlzLl9kbCwyNCksb2UodGhpcy5fZWgsdGhpcy5fZWwsMzIpLG9lKHRoaXMuX2ZoLHRoaXMuX2ZsLDQwKSxvZSh0aGlzLl9n''@;'; put 'put ''aCx0aGlzLl9nbCw0OCksb2UodGhpcy5faGgsdGhpcy5faGwsNTYpLHNlfSxYZS5leHBvcnRzPVF9LDI5NTooWGUsSmUsTCk9PntYZS5leHBvcnRzPUU7dmFyIG1lPUwoNTkwNjkpLkV2ZW50RW1pdHRlcjtmdW5jdGlvbiBFKCl7bWUuY2FsbCh0aGlzKX1MKDgzODk0KShFLG1lKSxFLlJlYWRh''@;'; put 'put ''YmxlPUwoMzE1NCksRS5Xcml0YWJsZT1MKDIwNTIwKSxFLkR1cGxleD1MKDQxMzM5KSxFLlRyYW5zZm9ybT1MKDYwMjUpLEUuUGFzc1Rocm91Z2g9TCg1NjA3MSksRS5maW5pc2hlZD1MKDY3NTQyKSxFLnBpcGVsaW5lPUwoOTA5NTQpLEUuU3RyZWFtPUUsRS5wcm90b3R5cGUucGlwZT1mdW5j''@;'; put 'put ''dGlvbihFZSxVKXt2YXIgUT10aGlzO2Z1bmN0aW9uIGooSyl7RWUud3JpdGFibGUmJiExPT09RWUud3JpdGUoSykmJlEucGF1c2UmJlEucGF1c2UoKX1mdW5jdGlvbiByZSgpe1EucmVhZGFibGUmJlEucmVzdW1lJiZRLnJlc3VtZSgpfVEub24oImRhdGEiLGopLEVlLm9uKCJkcmFpbiIscmUp''@;'; put 'put ''LCFFZS5faXNTdGRpbyYmKCFVfHwhMSE9PVUuZW5kKSYmKFEub24oImVuZCIsWSksUS5vbigiY2xvc2UiLFcpKTt2YXIgYWU9ITE7ZnVuY3Rpb24gWSgpe2FlfHwoYWU9ITAsRWUuZW5kKCkpfWZ1bmN0aW9uIFcoKXthZXx8KGFlPSEwLCJmdW5jdGlvbiI9PXR5cGVvZiBFZS5kZXN0cm95JiZF''@;'; put 'put ''ZS5kZXN0cm95KCkpfWZ1bmN0aW9uIE4oSyl7aWYodGUoKSwwPT09bWUubGlzdGVuZXJDb3VudCh0aGlzLCJlcnJvciIpKXRocm93IEt9ZnVuY3Rpb24gdGUoKXtRLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixqKSxFZS5yZW1vdmVMaXN0ZW5lcigiZHJhaW4iLHJlKSxRLnJlbW92ZUxpc3RlbmVy''@;'; put 'put ''KCJlbmQiLFkpLFEucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixXKSxRLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsTiksRWUucmVtb3ZlTGlzdGVuZXIoImVycm9yIixOKSxRLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHRlKSxRLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdGUpLEVlLnJlbW92ZUxpc3Rl''@;'; put 'put ''bmVyKCJjbG9zZSIsdGUpfXJldHVybiBRLm9uKCJlcnJvciIsTiksRWUub24oImVycm9yIixOKSxRLm9uKCJlbmQiLHRlKSxRLm9uKCJjbG9zZSIsdGUpLEVlLm9uKCJjbG9zZSIsdGUpLEVlLmVtaXQoInBpcGUiLFEpLEVlfX0sNzMwNTQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBt''@;'; put 'put ''ZT1MKDMwODU4KS5CdWZmZXIsQj1tZS5pc0VuY29kaW5nfHxmdW5jdGlvbihjZSl7c3dpdGNoKChjZT0iIitjZSkmJmNlLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UiYmluYXJ5IjpjYXNlImJhc2U2NCI6Y2FzZSJ1Y3My''@;'; put 'put ''IjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOmNhc2UicmF3IjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX07ZnVuY3Rpb24gVShjZSl7dmFyIGRlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uIEVlKGNlKXt2YXIgZGU9ZnVuY3Rpb24gRShjZSl7aWYo''@;'; put 'put ''IWNlKXJldHVybiJ1dGY4Ijtmb3IodmFyIGRlOzspc3dpdGNoKGNlKXtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiJ1dGY4IjtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuInV0ZjE2bGUiO2Nhc2UibGF0aW4xIjpjYXNlImJp''@;'; put 'put ''bmFyeSI6cmV0dXJuImxhdGluMSI7Y2FzZSJiYXNlNjQiOmNhc2UiYXNjaWkiOmNhc2UiaGV4IjpyZXR1cm4gY2U7ZGVmYXVsdDppZihkZSlyZXR1cm47Y2U9KCIiK2NlKS50b0xvd2VyQ2FzZSgpLGRlPSEwfX0oY2UpO2lmKCJzdHJpbmciIT10eXBlb2YgZGUmJihtZS5pc0VuY29kaW5nPT09''@;'; put 'put ''Qnx8IUIoY2UpKSl0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrY2UpO3JldHVybiBkZXx8Y2V9KGNlKSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD1OLHRoaXMuZW5kPXRlLGRlPTQ7YnJlYWs7Y2FzZSJ1dGY4Ijp0aGlzLmZpbGxMYXN0PWFlLGRl''@;'; put 'put ''PTQ7YnJlYWs7Y2FzZSJiYXNlNjQiOnRoaXMudGV4dD1LLHRoaXMuZW5kPUosZGU9MzticmVhaztkZWZhdWx0OnJldHVybiB0aGlzLndyaXRlPXNlLHZvaWQodGhpcy5lbmQ9b2UpfXRoaXMubGFzdE5lZWQ9MCx0aGlzLmxhc3RUb3RhbD0wLHRoaXMubGFzdENoYXI9bWUuYWxsb2NVbnNhZmUo''@;'; put 'put ''ZGUpfWZ1bmN0aW9uIFEoY2Upe3JldHVybiBjZTw9MTI3PzA6Y2U+PjU9PTY/MjpjZT4+ND09MTQ/MzpjZT4+Mz09MzA/NDpjZT4+Nj09Mj8tMTotMn1mdW5jdGlvbiBhZShjZSl7dmFyIGRlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsdmU9ZnVuY3Rpb24gcmUoY2UsZGUsdmUpe2lm''@;'; put 'put ''KDEyOCE9KDE5MiZkZVswXSkpcmV0dXJuIGNlLmxhc3ROZWVkPTAsIlx1ZmZmZCI7aWYoY2UubGFzdE5lZWQ+MSYmZGUubGVuZ3RoPjEpe2lmKDEyOCE9KDE5MiZkZVsxXSkpcmV0dXJuIGNlLmxhc3ROZWVkPTEsIlx1ZmZmZCI7aWYoY2UubGFzdE5lZWQ+MiYmZGUubGVuZ3RoPjImJjEyOCE9''@;'; put 'put ''KDE5MiZkZVsyXSkpcmV0dXJuIGNlLmxhc3ROZWVkPTIsIlx1ZmZmZCJ9fSh0aGlzLGNlKTtyZXR1cm4gdm9pZCAwIT09dmU/dmU6dGhpcy5sYXN0TmVlZDw9Y2UubGVuZ3RoPyhjZS5jb3B5KHRoaXMubGFzdENoYXIsZGUsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5n''@;'; put 'put ''KHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCkpOihjZS5jb3B5KHRoaXMubGFzdENoYXIsZGUsMCxjZS5sZW5ndGgpLHZvaWQodGhpcy5sYXN0TmVlZC09Y2UubGVuZ3RoKSl9ZnVuY3Rpb24gTihjZSxkZSl7aWYoKGNlLmxlbmd0aC1kZSklMj09MCl7dmFyIHZlPWNlLnRvU3RyaW5n''@;'; put 'put ''KCJ1dGYxNmxlIixkZSk7aWYodmUpe3ZhciBBZT12ZS5jaGFyQ29kZUF0KHZlLmxlbmd0aC0xKTtpZihBZT49NTUyOTYmJkFlPD01NjMxOSlyZXR1cm4gdGhpcy5sYXN0TmVlZD0yLHRoaXMubGFzdFRvdGFsPTQsdGhpcy5sYXN0Q2hhclswXT1jZVtjZS5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hh''@;'; put 'put ''clsxXT1jZVtjZS5sZW5ndGgtMV0sdmUuc2xpY2UoMCwtMSl9cmV0dXJuIHZlfXJldHVybiB0aGlzLmxhc3ROZWVkPTEsdGhpcy5sYXN0VG90YWw9Mix0aGlzLmxhc3RDaGFyWzBdPWNlW2NlLmxlbmd0aC0xXSxjZS50b1N0cmluZygidXRmMTZsZSIsZGUsY2UubGVuZ3RoLTEpfWZ1bmN0aW9u''@;'; put 'put ''IHRlKGNlKXt2YXIgZGU9Y2UmJmNlLmxlbmd0aD90aGlzLndyaXRlKGNlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD9kZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJ1dGYxNmxlIiwwLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQpOmRlfWZ1bmN0aW9uIEsoY2UsZGUpe3ZhciB2ZT0o''@;'; put 'put ''Y2UubGVuZ3RoLWRlKSUzO3JldHVybiAwPT09dmU/Y2UudG9TdHJpbmcoImJhc2U2NCIsZGUpOih0aGlzLmxhc3ROZWVkPTMtdmUsdGhpcy5sYXN0VG90YWw9MywxPT09dmU/dGhpcy5sYXN0Q2hhclswXT1jZVtjZS5sZW5ndGgtMV06KHRoaXMubGFzdENoYXJbMF09Y2VbY2UubGVuZ3RoLTJd''@;'; put 'put ''LHRoaXMubGFzdENoYXJbMV09Y2VbY2UubGVuZ3RoLTFdKSxjZS50b1N0cmluZygiYmFzZTY0IixkZSxjZS5sZW5ndGgtdmUpKX1mdW5jdGlvbiBKKGNlKXt2YXIgZGU9Y2UmJmNlLmxlbmd0aD90aGlzLndyaXRlKGNlKToiIjtyZXR1cm4gdGhpcy5sYXN0TmVlZD9kZSt0aGlzLmxhc3RDaGFy''@;'; put 'put ''LnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTpkZX1mdW5jdGlvbiBzZShjZSl7cmV0dXJuIGNlLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcpfWZ1bmN0aW9uIG9lKGNlKXtyZXR1cm4gY2UmJmNlLmxlbmd0aD90aGlzLndyaXRlKGNlKToiIn1KZS5zPVUsVS5wcm90b3R5cGUu''@;'; put 'put ''d3JpdGU9ZnVuY3Rpb24oY2Upe2lmKDA9PT1jZS5sZW5ndGgpcmV0dXJuIiI7dmFyIGRlLHZlO2lmKHRoaXMubGFzdE5lZWQpe2lmKHZvaWQgMD09PShkZT10aGlzLmZpbGxMYXN0KGNlKSkpcmV0dXJuIiI7dmU9dGhpcy5sYXN0TmVlZCx0aGlzLmxhc3ROZWVkPTB9ZWxzZSB2ZT0wO3JldHVy''@;'; put 'put ''biB2ZTxjZS5sZW5ndGg/ZGU/ZGUrdGhpcy50ZXh0KGNlLHZlKTp0aGlzLnRleHQoY2UsdmUpOmRlfHwiIn0sVS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uIFcoY2Upe3ZhciBkZT1jZSYmY2UubGVuZ3RoP3RoaXMud3JpdGUoY2UpOiIiO3JldHVybiB0aGlzLmxhc3ROZWVkP2RlKyJcdWZmZmQi''@;'; put 'put ''OmRlfSxVLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uIFkoY2UsZGUpe3ZhciB2ZT1mdW5jdGlvbiBqKGNlLGRlLHZlKXt2YXIgQWU9ZGUubGVuZ3RoLTE7aWYoQWU8dmUpcmV0dXJuIDA7dmFyIGtlPVEoZGVbQWVdKTtyZXR1cm4ga2U+PTA/KGtlPjAmJihjZS5sYXN0TmVlZD1rZS0xKSxrZSk6''@;'; put 'put ''LS1BZTx2ZXx8LTI9PT1rZT8wOihrZT1RKGRlW0FlXSkpPj0wPyhrZT4wJiYoY2UubGFzdE5lZWQ9a2UtMiksa2UpOi0tQWU8dmV8fC0yPT09a2U/MDooa2U9UShkZVtBZV0pKT49MD8oa2U+MCYmKDI9PT1rZT9rZT0wOmNlLmxhc3ROZWVkPWtlLTMpLGtlKTowfSh0aGlzLGNlLGRlKTtpZigh''@;'; put 'put ''dGhpcy5sYXN0TmVlZClyZXR1cm4gY2UudG9TdHJpbmcoInV0ZjgiLGRlKTt0aGlzLmxhc3RUb3RhbD12ZTt2YXIgQWU9Y2UubGVuZ3RoLSh2ZS10aGlzLmxhc3ROZWVkKTtyZXR1cm4gY2UuY29weSh0aGlzLmxhc3RDaGFyLDAsQWUpLGNlLnRvU3RyaW5nKCJ1dGY4IixkZSxBZSl9LFUucHJv''@;'; put 'put ''dG90eXBlLmZpbGxMYXN0PWZ1bmN0aW9uKGNlKXtpZih0aGlzLmxhc3ROZWVkPD1jZS5sZW5ndGgpcmV0dXJuIGNlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29k''@;'; put 'put ''aW5nLDAsdGhpcy5sYXN0VG90YWwpO2NlLmNvcHkodGhpcy5sYXN0Q2hhcix0aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkLDAsY2UubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT1jZS5sZW5ndGh9fSwzMDg1ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MzE3MiksQj1tZS5CdWZmZXI7ZnVuY3Rp''@;'; put 'put ''b24gRShVLFEpe2Zvcih2YXIgaiBpbiBVKVFbal09VVtqXX1mdW5jdGlvbiBFZShVLFEsail7cmV0dXJuIEIoVSxRLGopfUIuZnJvbSYmQi5hbGxvYyYmQi5hbGxvY1Vuc2FmZSYmQi5hbGxvY1Vuc2FmZVNsb3c/WGUuZXhwb3J0cz1tZTooRShtZSxKZSksSmUuQnVmZmVyPUVlKSxFZS5wcm90''@;'; put 'put ''b3R5cGU9T2JqZWN0LmNyZWF0ZShCLnByb3RvdHlwZSksRShCLEVlKSxFZS5mcm9tPWZ1bmN0aW9uKFUsUSxqKXtpZigibnVtYmVyIj09dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBub3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gQihVLFEsail9LEVlLmFsbG9j''@;'; put 'put ''PWZ1bmN0aW9uKFUsUSxqKXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3ZhciByZT1CKFUpO3JldHVybiB2b2lkIDAhPT1RPyJzdHJpbmciPT10eXBlb2Ygaj9yZS5maWxsKFEsaik6cmUuZmlsbChRKTpyZS5m''@;'; put 'put ''aWxsKDApLHJlfSxFZS5hbGxvY1Vuc2FmZT1mdW5jdGlvbihVKXtpZigibnVtYmVyIiE9dHlwZW9mIFUpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIG51bWJlciIpO3JldHVybiBCKFUpfSxFZS5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24oVSl7aWYoIm51bWJlciIh''@;'; put 'put ''PXR5cGVvZiBVKXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gbWUuU2xvd0J1ZmZlcihVKX19LDI0ODc5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5NTY1KTtYZS5leHBvcnRzPXtUZXh0RW5jb2RlcjptZS5UZXh0RW5jb2RlcixUZXh0RGVj''@;'; put 'put ''b2RlcjptZS5UZXh0RGVjb2Rlcn19LDg2Mzg5OmZ1bmN0aW9uKFhlKXshZnVuY3Rpb24oSmUpeyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzJiYoWGUuZXhwb3J0cz1KZSksSmVbImVuY29kaW5nLWluZGV4ZXMiXT17YmlnNTpbbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTczOTIsMTk1MDYsMTc5MjMsMTc4MzAsMTc3ODQsMTYwMzU5LDE5ODMxLDE3ODQzLDE2Mjk5MywxOTY4MiwxNjMwMTMsMTUyNTMsMTgyMzAsMTgyNDQsMTk1MjcsMTk1MjAsMTQ4MTU5LDE0NDkxOSwx''@;'; put 'put ''NjA1OTQsMTU5MzcxLDE1OTk1NCwxOTU0MywxNzI4ODEsMTgyNTUsMTc4ODIsMTk1ODksMTYyOTI0LDE5NzE5LDE5MTA4LDE4MDgxLDE1ODQ5OSwyOTIyMSwxNTQxOTYsMTM3ODI3LDE0Njk1MCwxNDcyOTcsMjYxODksMjIyNjcsbnVsbCwzMjE0OSwyMjgxMywxNjY4NDEsMTU4NjAsMzg3MDgs''@;'; put 'put ''MTYyNzk5LDIzNTE1LDEzODU5MCwyMzIwNCwxMzg2MSwxNzE2OTYsMjMyNDksMjM0NzksMjM4MDQsMjY0NzgsMzQxOTUsMTcwMzA5LDI5NzkzLDI5ODUzLDE0NDUzLDEzODU3OSwxNDUwNTQsMTU1NjgxLDE2MTA4LDE1MzgyMiwxNTA5MywzMTQ4NCw0MDg1NSwxNDc4MDksMTY2MTU3LDE0Mzg1''@;'; put 'put ''MCwxMzM3NzAsMTQzOTY2LDE3MTYyLDMzOTI0LDQwODU0LDM3OTM1LDE4NzM2LDM0MzIzLDIyNjc4LDM4NzMwLDM3NDAwLDMxMTg0LDMxMjgyLDI2MjA4LDI3MTc3LDM0OTczLDI5NzcyLDMxNjg1LDI2NDk4LDMxMjc2LDIxMDcxLDM2OTM0LDEzNTQyLDI5NjM2LDE1NTA2NSwyOTg5NCw0MDkw''@;'; put 'put ''MywyMjQ1MSwxODczNSwyMTU4MCwxNjY4OSwxNDUwMzgsMjI1NTIsMzEzNDYsMTYyNjYxLDM1NzI3LDE4MDk0LDE1OTM2OCwxNjc2OSwxNTUwMzMsMzE2NjIsMTQwNDc2LDQwOTA0LDE0MDQ4MSwxNDA0ODksMTQwNDkyLDQwOTA1LDM0MDUyLDE0NDgyNywxNjU2NCw0MDkwNiwxNzYzMywxNzU2''@;'; put 'put ''MTUsMjUyODEsMjg3ODIsNDA5MDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCwxMjczNiwxMjczNywxMjczOCwxMjczOSwxMjc0MCwxMzEzNDAsMTI3NDEsMTMxMjgxLDEzMTI3NywxMjc0MiwxMjc0MywxMzEyNzUsMTM5MjQwLDEyNzQ0LDEzMTI3NCwxMjc0NSwxMjc0NiwxMjc0NywxMjc0OCwxMzEzNDIsMTI3NDksMTI3NTAsMjU2LDE5Myw0NjEsMTky''@;'; put 'put ''LDI3NCwyMDEsMjgyLDIwMCwzMzIsMjExLDQ2NSwyMTAsbnVsbCw3ODcwLG51bGwsNzg3MiwyMDIsMjU3LDIyNSw0NjIsMjI0LDU5MywyNzUsMjMzLDI4MywyMzIsMjk5LDIzNyw0NjQsMjM2LDMzMywyNDMsNDY2LDI0MiwzNjMsMjUwLDQ2OCwyNDksNDcwLDQ3Miw0NzQsNDc2LDI1MixudWxs''@;'; put 'put ''LDc4NzEsbnVsbCw3ODczLDIzNCw2MDksOTE3OCw5MTc5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE3Mjk2OSwxMzU0OTMsbnVsbCwyNTg2NixudWxsLG51bGwsMjAwMjks''@;'; put 'put ''MjgzODEsNDAyNzAsMzczNDMsbnVsbCxudWxsLDE2MTU4OSwyNTc0NSwyMDI1MCwyMDI2NCwyMDM5MiwyMDgyMiwyMDg1MiwyMDg5MiwyMDk2NCwyMTE1MywyMTE2MCwyMTMwNywyMTMyNiwyMTQ1NywyMTQ2NCwyMjI0MiwyMjc2OCwyMjc4OCwyMjc5MSwyMjgzNCwyMjgzNiwyMzM5OCwyMzQ1''@;'; put 'put ''NCwyMzQ1NSwyMzcwNiwyNDE5OCwyNDYzNSwyNTk5MywyNjYyMiwyNjYyOCwyNjcyNSwyNzk4MiwyODg2MCwzMDAwNSwzMjQyMCwzMjQyOCwzMjQ0MiwzMjQ1NSwzMjQ2MywzMjQ3OSwzMjUxOCwzMjU2NywzMzQwMiwzMzQ4NywzMzY0NywzNTI3MCwzNTc3NCwzNTgxMCwzNjcxMCwzNjcxMSwz''@;'; put 'put ''NjcxOCwyOTcxMywzMTk5NiwzMjIwNSwyNjk1MCwzMTQzMywyMTAzMSxudWxsLG51bGwsbnVsbCxudWxsLDM3MjYwLDMwOTA0LDM3MjE0LDMyOTU2LG51bGwsMzYxMDcsMzMwMTQsMTMzNjA3LG51bGwsbnVsbCwzMjkyNyw0MDY0NywxOTY2MSw0MDM5Myw0MDQ2MCwxOTUxOCwxNzE1MTAsMTU5''@;'; put 'put ''NzU4LDQwNDU4LDE3MjMzOSwxMzc2MSxudWxsLDI4MzE0LDMzMzQyLDI5OTc3LG51bGwsMTg3MDUsMzk1MzIsMzk1NjcsNDA4NTcsMzExMTEsMTY0OTcyLDEzODY5OCwxMzI1NjAsMTQyMDU0LDIwMDA0LDIwMDk3LDIwMDk2LDIwMTAzLDIwMTU5LDIwMjAzLDIwMjc5LDEzMzg4LDIwNDEzLDE1''@;'; put 'put ''OTQ0LDIwNDgzLDIwNjE2LDEzNDM3LDEzNDU5LDEzNDc3LDIwODcwLDIyNzg5LDIwOTU1LDIwOTg4LDIwOTk3LDIwMTA1LDIxMTEzLDIxMTM2LDIxMjg3LDEzNzY3LDIxNDE3LDEzNjQ5LDIxNDI0LDEzNjUxLDIxNDQyLDIxNTM5LDEzNjc3LDEzNjgyLDEzOTUzLDIxNjUxLDIxNjY3LDIxNjg0''@;'; put 'put ''LDIxNjg5LDIxNzEyLDIxNzQzLDIxNzg0LDIxNzk1LDIxODAwLDEzNzIwLDIxODIzLDEzNzMzLDEzNzU5LDIxOTc1LDEzNzY1LDE2MzIwNCwyMTc5NyxudWxsLDEzNDIxMCwxMzQ0MjEsMTUxODUxLDIxOTA0LDE0MjUzNCwxNDgyOCwxMzE5MDUsMzY0MjIsMTUwOTY4LDE2OTE4OSwxNjQ2Nywx''@;'; put 'put ''NjQwMzAsMzA1ODYsMTQyMzkyLDE0OTAwLDE4Mzg5LDE2NDE4OSwxNTgxOTQsMTUxMDE4LDI1ODIxLDEzNDUyNCwxMzUwOTIsMTM0MzU3LDEzNTQxMiwyNTc0MSwzNjQ3OCwxMzQ4MDYsMTM0MTU1LDEzNTAxMiwxNDI1MDUsMTY0NDM4LDE0ODY5MSxudWxsLDEzNDQ3MCwxNzA1NzMsMTY0MDcz''@;'; put 'put ''LDE4NDIwLDE1MTIwNywxNDI1MzAsMzk2MDIsMTQ5NTEsMTY5NDYwLDE2MzY1LDEzNTc0LDE1MjI2MywxNjk5NDAsMTYxOTkyLDE0MjY2MCw0MDMwMiwzODkzMyxudWxsLDE3MzY5LDE1NTgxMywyNTc4MCwyMTczMSwxNDI2NjgsMTQyMjgyLDEzNTI4NywxNDg0MywxMzUyNzksMTU3NDAyLDE1''@;'; put 'put ''NzQ2MiwxNjIyMDgsMjU4MzQsMTUxNjM0LDEzNDIxMSwzNjQ1NiwxMzk2ODEsMTY2NzMyLDEzMjkxMyxudWxsLDE4NDQzLDEzMTQ5NywxNjM3OCwyMjY0MywxNDI3MzMsbnVsbCwxNDg5MzYsMTMyMzQ4LDE1NTc5OSwxMzQ5ODgsMTM0NTUwLDIxODgxLDE2NTcxLDE3MzM4LG51bGwsMTkxMjQs''@;'; put 'put ''MTQxOTI2LDEzNTMyNSwzMzE5NCwzOTE1NywxMzQ1NTYsMjU0NjUsMTQ4NDYsMTQxMTczLDM2Mjg4LDIyMTc3LDI1NzI0LDE1OTM5LG51bGwsMTczNTY5LDEzNDY2NSwxNDIwMzEsMTQyNTM3LG51bGwsMTM1MzY4LDE0NTg1OCwxNDczOCwxNDg1NCwxNjQ1MDcsMTM2ODgsMTU1MjA5LDEzOTQ2''@;'; put 'put ''MywyMjA5OCwxMzQ5NjEsMTQyNTE0LDE2OTc2MCwxMzUwMCwyNzcwOSwxNTEwOTksbnVsbCxudWxsLDE2MTE0MCwxNDI5ODcsMTM5Nzg0LDE3MzY1OSwxNjcxMTcsMTM0Nzc4LDEzNDE5NiwxNTc3MjQsMzI2NTksMTM1Mzc1LDE0MTMxNSwxNDE2MjUsMTM4MTksMTUyMDM1LDEzNDc5NiwxMzUw''@;'; put 'put ''NTMsMTM0ODI2LDE2Mjc1LDEzNDk2MCwxMzQ0NzEsMTM1NTAzLDEzNDczMixudWxsLDEzNDgyNywxMzQwNTcsMTM0NDcyLDEzNTM2MCwxMzU0ODUsMTYzNzcsMTQwOTUwLDI1NjUwLDEzNTA4NSwxNDQzNzIsMTYxMzM3LDE0MjI4NiwxMzQ1MjYsMTM0NTI3LDE0MjQxNywxNDI0MjEsMTQ4NzIs''@;'; put 'put ''MTM0ODA4LDEzNTM2NywxMzQ5NTgsMTczNjE4LDE1ODU0NCwxNjcxMjIsMTY3MzIxLDE2NzExNCwzODMxNCwyMTcwOCwzMzQ3NiwyMTk0NSxudWxsLDE3MTcxNSwzOTk3NCwzOTYwNiwxNjE2MzAsMTQyODMwLDI4OTkyLDMzMTMzLDMzMDA0LDIzNTgwLDE1NzA0MiwzMzA3NiwxNDIzMSwyMTM0''@;'; put 'put ''MywxNjQwMjksMzczMDIsMTM0OTA2LDEzNDY3MSwxMzQ3NzUsMTM0OTA3LDEzNzg5LDE1MTAxOSwxMzgzMywxMzQzNTgsMjIxOTEsMTQxMjM3LDEzNTM2OSwxMzQ2NzIsMTM0Nzc2LDEzNTI4OCwxMzU0OTYsMTY0MzU5LDEzNjI3NywxMzQ3NzcsMTUxMTIwLDE0Mjc1NiwyMzEyNCwxMzUxOTcs''@;'; put 'put ''MTM1MTk4LDEzNTQxMywxMzU0MTQsMjI0MjgsMTM0NjczLDE2MTQyOCwxNjQ1NTcsMTM1MDkzLDEzNDc3OSwxNTE5MzQsMTQwODMsMTM1MDk0LDEzNTU1MiwxNTIyODAsMTcyNzMzLDE0OTk3OCwxMzcyNzQsMTQ3ODMxLDE2NDQ3NiwyMjY4MSwyMTA5NiwxMzg1MCwxNTM0MDUsMzE2NjYsMjM0''@;'; put 'put ''MDAsMTg0MzIsMTkyNDQsNDA3NDMsMTg5MTksMzk5NjcsMzk4MjEsMTU0NDg0LDE0MzY3NywyMjAxMSwxMzgxMCwyMjE1MywyMDAwOCwyMjc4NiwxMzgxNzcsMTk0NjgwLDM4NzM3LDEzMTIwNiwyMDA1OSwyMDE1NSwxMzYzMCwyMzU4NywyNDQwMSwyNDUxNiwxNDU4NiwyNTE2NCwyNTkwOSwy''@;'; put 'put ''NzUxNCwyNzcwMSwyNzcwNiwyODc4MCwyOTIyNywyMDAxMiwyOTM1NywxNDk3MzcsMzI1OTQsMzEwMzUsMzE5OTMsMzI1OTUsMTU2MjY2LDEzNTA1LG51bGwsMTU2NDkxLDMyNzcwLDMyODk2LDE1NzIwMiwxNTgwMzMsMjEzNDEsMzQ5MTYsMzUyNjUsMTYxOTcwLDM1NzQ0LDM2MTI1LDM4MDIx''@;'; put 'put ''LDM4MjY0LDM4MjcxLDM4Mzc2LDE2NzQzOSwzODg4NiwzOTAyOSwzOTExOCwzOTEzNCwzOTI2NywxN2U0LDQwMDYwLDQwNDc5LDQwNjQ0LDI3NTAzLDYzNzUxLDIwMDIzLDEzMTIwNywzODQyOSwyNTE0MywzODA1MCxudWxsLDIwNTM5LDI4MTU4LDE3MTEyMyw0MDg3MCwxNTgxNywzNDk1OSwx''@;'; put 'put ''NDc3OTAsMjg3OTEsMjM3OTcsMTkyMzIsMTUyMDEzLDEzNjU3LDE1NDkyOCwyNDg2NiwxNjY0NTAsMzY3NzUsMzczNjYsMjkwNzMsMjYzOTMsMjk2MjYsMTQ0MDAxLDE3MjI5NSwxNTQ5OSwxMzc2MDAsMTkyMTYsMzA5NDgsMjk2OTgsMjA5MTAsMTY1NjQ3LDE2MzkzLDI3MjM1LDE3MjczMCwx''@;'; put 'put ''NjkzMSwzNDMxOSwxMzM3NDMsMzEyNzQsMTcwMzExLDE2NjYzNCwzODc0MSwyODc0OSwyMTI4NCwxMzkzOTAsMzc4NzYsMzA0MjUsMTY2MzcxLDQwODcxLDMwNjg1LDIwMTMxLDIwNDY0LDIwNjY4LDIwMDE1LDIwMjQ3LDQwODcyLDIxNTU2LDMyMTM5LDIyNjc0LDIyNzM2LDEzODY3OCwyNDIx''@;'; put 'put ''MCwyNDIxNywyNDUxNCwxNDEwNzQsMjU5OTUsMTQ0Mzc3LDI2OTA1LDI3MjAzLDE0NjUzMSwyNzkwMyxudWxsLDI5MTg0LDE0ODc0MSwyOTU4MCwxNjA5MSwxNTAwMzUsMjMzMTcsMjk4ODEsMzU3MTUsMTU0Nzg4LDE1MzIzNywzMTM3OSwzMTcyNCwzMTkzOSwzMjM2NCwzMzUyOCwzNDE5OSw0''@;'; put 'put ''MDg3MywzNDk2MCw0MDg3NCwzNjUzNyw0MDg3NSwzNjgxNSwzNDE0MywzOTM5MiwzNzQwOSw0MDg3NiwxNjczNTMsMTM2MjU1LDE2NDk3LDE3MDU4LDIzMDY2LG51bGwsbnVsbCxudWxsLDM5MDE2LDI2NDc1LDE3MDE0LDIyMzMzLG51bGwsMzQyNjIsMTQ5ODgzLDMzNDcxLDE2MDAxMywxOTU4''@;'; put 'put ''NSwxNTkwOTIsMjM5MzEsMTU4NDg1LDE1OTY3OCw0MDg3Nyw0MDg3OCwyMzQ0Niw0MDg3OSwyNjM0MywzMjM0NywyODI0NywzMTE3OCwxNTc1MiwxNzYwMywxNDM5NTgsMTQxMjA2LDE3MzA2LDE3NzE4LG51bGwsMjM3NjUsMTQ2MjAyLDM1NTc3LDIzNjcyLDE1NjM0LDE0NDcyMSwyMzkyOCw0''@;'; put 'put ''MDg4MiwyOTAxNSwxNzc1MiwxNDc2OTIsMTM4Nzg3LDE5NTc1LDE0NzEyLDEzMzg2LDEzMTQ5MiwxNTg3ODUsMzU1MzIsMjA0MDQsMTMxNjQxLDIyOTc1LDMzMTMyLDM4OTk4LDE3MDIzNCwyNDM3OSwxMzQwNDcsbnVsbCwxMzk3MTMsMTY2MjUzLDE2NjQyLDE4MTA3LDE2ODA1NywxNjEzNSw0''@;'; put 'put ''MDg4MywxNzI0NjksMTY2MzIsMTQyOTQsMTgxNjcsMTU4NzkwLDE2NzY0LDE2NTU1NCwxNjA3NjcsMTc3NzMsMTQ1NDgsMTUyNzMwLDE3NzYxLDE3NjkxLDE5ODQ5LDE5NTc5LDE5ODMwLDE3ODk4LDE2MzI4LDE1MDI4NywxMzkyMSwxNzYzMCwxNzU5NywxNjg3NywyMzg3MCwyMzg4MCwyMzg5''@;'; put 'put ''NCwxNTg2OCwxNDM1MSwyMzk3MiwyMzk5MywxNDM2OCwxNDM5MiwyNDEzMCwyNDI1MywyNDM1NywyNDQ1MSwxNDYwMCwxNDYxMiwxNDY1NSwxNDY2OSwyNDc5MSwyNDg5MywyMzc4MSwxNDcyOSwyNTAxNSwyNTAxNywyNTAzOSwxNDc3NiwyNTEzMiwyNTIzMiwyNTMxNywyNTM2OCwxNDg0MCwy''@;'; put 'put ''MjE5MywxNDg1MSwyNTU3MCwyNTU5NSwyNTYwNywyNTY5MCwxNDkyMywyNTc5MiwyMzgyOSwyMjA0OSw0MDg2MywxNDk5OSwyNTk5MCwxNTAzNywyNjExMSwyNjE5NSwxNTA5MCwyNjI1OCwxNTEzOCwyNjM5MCwxNTE3MCwyNjUzMiwyNjYyNCwxNTE5MiwyNjY5OCwyNjc1NiwxNTIxOCwxNTIx''@;'; put 'put ''NywxNTIyNywyNjg4OSwyNjk0NywyOTI3NiwyNjk4MCwyNzAzOSwyNzAxMywxNTI5MiwyNzA5NCwxNTMyNSwyNzIzNywyNzI1MiwyNzI0OSwyNzI2NiwxNTM0MCwyNzI4OSwxNTM0NiwyNzMwNywyNzMxNywyNzM0OCwyNzM4MiwyNzUyMSwyNzU4NSwyNzYyNiwyNzc2NSwyNzgxOCwxNTU2Mywy''@;'; put 'put ''NzkwNiwyNzkxMCwyNzk0MiwyODAzMywxNTU5OSwyODA2OCwyODA4MSwyODE4MSwyODE4NCwyODIwMSwyODI5NCwxNjYzMzYsMjgzNDcsMjgzODYsMjgzNzgsNDA4MzEsMjgzOTIsMjgzOTMsMjg0NTIsMjg0NjgsMTU2ODYsMTQ3MjY1LDI4NTQ1LDI4NjA2LDE1NzIyLDE1NzMzLDI5MTExLDIz''@;'; put 'put ''NzA1LDE1NzU0LDI4NzE2LDE1NzYxLDI4NzUyLDI4NzU2LDI4NzgzLDI4Nzk5LDI4ODA5LDEzMTg3NywxNzM0NSwxMzgwOSwxMzQ4NzIsMTQ3MTU5LDIyNDYyLDE1OTQ0MywyODk5MCwxNTM1NjgsMTM5MDIsMjcwNDIsMTY2ODg5LDIzNDEyLDMxMzA1LDE1MzgyNSwxNjkxNzcsMzEzMzMsMzEz''@;'; put 'put ''NTcsMTU0MDI4LDMxNDE5LDMxNDA4LDMxNDI2LDMxNDI3LDI5MTM3LDE1NjgxMywxNjg0MiwzMTQ1MCwzMTQ1MywzMTQ2NiwxNjg3OSwyMTY4MiwxNTQ2MjUsMzE0OTksMzE1NzMsMzE1MjksMTUyMzM0LDE1NDg3OCwzMTY1MCwzMTU5OSwzMzY5MiwxNTQ1NDgsMTU4ODQ3LDMxNjk2LDMzODI1''@;'; put 'put ''LDMxNjM0LDMxNjcyLDE1NDkxMiwxNTc4OSwxNTQ3MjUsMzM5MzgsMzE3MzgsMzE3NTAsMzE3OTcsMTU0ODE3LDMxODEyLDMxODc1LDE0OTYzNCwzMTkxMCwyNjIzNywxNDg4NTYsMzE5NDUsMzE5NDMsMzE5NzQsMzE4NjAsMzE5ODcsMzE5ODksMzE5NTAsMzIzNTksMTc2OTMsMTU5MzAwLDMy''@;'; put 'put ''MDkzLDE1OTQ0NiwyOTgzNywzMjEzNywzMjE3MSwyODk4MSwzMjE3OSwzMjIxMCwxNDc1NDMsMTU1Njg5LDMyMjI4LDE1NjM1LDMyMjQ1LDEzNzIwOSwzMjIyOSwxNjQ3MTcsMzIyODUsMTU1OTM3LDE1NTk5NCwzMjM2NiwzMjQwMiwxNzE5NSwzNzk5NiwzMjI5NSwzMjU3NiwzMjU3NywzMjU4''@;'; put 'put ''MywzMTAzMCwxNTYzNjgsMzkzOTMsMzI2NjMsMTU2NDk3LDMyNjc1LDEzNjgwMSwxMzExNzYsMTc3NTYsMTQ1MjU0LDE3NjY3LDE2NDY2NiwzMjc2MiwxNTY4MDksMzI3NzMsMzI3NzYsMzI3OTcsMzI4MDgsMzI4MTUsMTcyMTY3LDE1ODkxNSwzMjgyNywzMjgyOCwzMjg2NSwxNDEwNzYsMTg4''@;'; put 'put ''MjUsMTU3MjIyLDE0NjkxNSwxNTc0MTYsMjY0MDUsMzI5MzUsMTY2NDcyLDMzMDMxLDMzMDUwLDIyNzA0LDE0MTA0NiwyNzc3NSwxNTY4MjQsMTUxNDgwLDI1ODMxLDEzNjMzMCwzMzMwNCwxMzczMTAsMjcyMTksMTUwMTE3LDE1MDE2NSwxNzUzMCwzMzMyMSwxMzM5MDEsMTU4MjkwLDE0Njgx''@;'; put 'put ''NCwyMDQ3MywxMzY0NDUsMzQwMTgsMzM2MzQsMTU4NDc0LDE0OTkyNywxNDQ2ODgsMTM3MDc1LDE0NjkzNiwzMzQ1MCwyNjkwNywxOTQ5NjQsMTY4NTksMzQxMjMsMzM0ODgsMzM1NjIsMTM0Njc4LDEzNzE0MCwxNDAxNywxNDM3NDEsMTQ0NzMwLDMzNDAzLDMzNTA2LDMzNTYwLDE0NzA4Mywx''@;'; put 'put ''NTkxMzksMTU4NDY5LDE1ODYxNSwxNDQ4NDYsMTU4MDcsMzM1NjUsMjE5OTYsMzM2NjksMTc2NzUsMTU5MTQxLDMzNzA4LDMzNzI5LDMzNzQ3LDEzNDM4LDE1OTQ0NCwyNzIyMywzNDEzOCwxMzQ2MiwxNTkyOTgsMTQzMDg3LDMzODgwLDE1NDU5NiwzMzkwNSwxNTgyNywxNzYzNiwyNzMwMywz''@;'; put 'put ''Mzg2NiwxNDY2MTMsMzEwNjQsMzM5NjAsMTU4NjE0LDE1OTM1MSwxNTkyOTksMzQwMTQsMzM4MDcsMzM2ODEsMTc1NjgsMzM5MzksMzQwMjAsMTU0NzY5LDE2OTYwLDE1NDgxNiwxNzczMSwzNDEwMCwyMzI4MiwxNTkzODUsMTc3MDMsMzQxNjMsMTc2ODYsMjY1NTksMzQzMjYsMTY1NDEzLDE2''@;'; put 'put ''NTQzNSwzNDI0MSwxNTk4ODAsMzQzMDYsMTM2NTc4LDE1OTk0OSwxOTQ5OTQsMTc3NzAsMzQzNDQsMTM4OTYsMTM3Mzc4LDIxNDk1LDE2MDY2NiwzNDQzMCwzNDY3MywxNzIyODAsMzQ3OTgsMTQyMzc1LDM0NzM3LDM0Nzc4LDM0ODMxLDIyMTEzLDM0NDEyLDI2NzEwLDE3OTM1LDM0ODg1LDM0''@;'; put 'put ''ODg2LDE2MTI0OCwxNDY4NzMsMTYxMjUyLDM0OTEwLDM0OTcyLDE4MDExLDM0OTk2LDM0OTk3LDI1NTM3LDM1MDEzLDMwNTgzLDE2MTU1MSwzNTIwNywzNTIxMCwzNTIzOCwzNTI0MSwzNTIzOSwzNTI2MCwxNjY0MzcsMzUzMDMsMTYyMDg0LDE2MjQ5MywzNTQ4NCwzMDYxMSwzNzM3NCwzNTQ3''@;'; put 'put ''MiwxNjIzOTMsMzE0NjUsMTYyNjE4LDE0NzM0MywxODE5NSwxNjI2MTYsMjkwNTIsMzU1OTYsMzU2MTUsMTUyNjI0LDE1MjkzMywzNTY0NywzNTY2MCwzNTY2MSwzNTQ5NywxNTAxMzgsMzU3MjgsMzU3MzksMzU1MDMsMTM2OTI3LDE3OTQxLDM0ODk1LDM1OTk1LDE2MzE1NiwxNjMyMTUsMTk1''@;'; put 'put ''MDI4LDE0MTE3LDE2MzE1NSwzNjA1NCwxNjMyMjQsMTYzMjYxLDM2MTE0LDM2MDk5LDEzNzQ4OCwzNjA1OSwyODc2NCwzNjExMywxNTA3MjksMTYwODAsMzYyMTUsMzYyNjUsMTYzODQyLDEzNTE4OCwxNDk4OTgsMTUyMjgsMTY0Mjg0LDE2MDAxMiwzMTQ2MywzNjUyNSwzNjUzNCwzNjU0Nywz''@;'; put 'put ''NzU4OCwzNjYzMywzNjY1MywxNjQ3MDksMTY0ODgyLDM2NzczLDM3NjM1LDE3MjcwMywxMzM3MTIsMzY3ODcsMTg3MzAsMTY2MzY2LDE2NTE4MSwxNDY4NzUsMjQzMTIsMTQzOTcwLDM2ODU3LDE3MjA1MiwxNjU1NjQsMTY1MTIxLDE0MDA2OSwxNDcyMCwxNTk0NDcsMzY5MTksMTY1MTgwLDE2''@;'; put 'put ''MjQ5NCwzNjk2MSwxNjUyMjgsMTY1Mzg3LDM3MDMyLDE2NTY1MSwzNzA2MCwxNjU2MDYsMzcwMzgsMzcxMTcsMzcyMjMsMTUwODgsMzcyODksMzczMTYsMzE5MTYsMTY2MTk1LDEzODg4OSwzNzM5MCwyNzgwNywzNzQ0MSwzNzQ3NCwxNTMwMTcsMzc1NjEsMTY2NTk4LDE0NjU4NywxNjY2Njgs''@;'; put 'put ''MTUzMDUxLDEzNDQ0OSwzNzY3NiwzNzczOSwxNjY2MjUsMTY2ODkxLDI4ODE1LDIzMjM1LDE2NjYyNiwxNjY2MjksMTg3ODksMzc0NDQsMTY2ODkyLDE2Njk2OSwxNjY5MTEsMzc3NDcsMzc5NzksMzY1NDAsMzgyNzcsMzgzMTAsMzc5MjYsMzgzMDQsMjg2NjIsMTcwODEsMTQwOTIyLDE2NTU5''@;'; put 'put ''MiwxMzU4MDQsMTQ2OTkwLDE4OTExLDI3Njc2LDM4NTIzLDM4NTUwLDE2NzQ4LDM4NTYzLDE1OTQ0NSwyNTA1MCwzODU4MiwzMDk2NSwxNjY2MjQsMzg1ODksMjE0NTIsMTg4NDksMTU4OTA0LDEzMTcwMCwxNTY2ODgsMTY4MTExLDE2ODE2NSwxNTAyMjUsMTM3NDkzLDE0NDEzOCwzODcwNSwz''@;'; put 'put ''NDM3MCwzODcxMCwxODk1OSwxNzcyNSwxNzc5NywxNTAyNDksMjg3ODksMjMzNjEsMzg2ODMsMzg3NDgsMTY4NDA1LDM4NzQzLDIzMzcwLDE2ODQyNywzODc1MSwzNzkyNSwyMDY4OCwxNDM1NDMsMTQzNTQ4LDM4NzkzLDM4ODE1LDM4ODMzLDM4ODQ2LDM4ODQ4LDM4ODY2LDM4ODgwLDE1MjY4''@;'; put 'put ''NCwzODg5NCwyOTcyNCwxNjkwMTEsMzg5MTEsMzg5MDEsMTY4OTg5LDE2MjE3MCwxOTE1MywzODk2NCwzODk2MywzODk4NywzOTAxNCwxNTExOCwxNjAxMTcsMTU2OTcsMTMyNjU2LDE0NzgwNCwxNTMzNTAsMzkxMTQsMzkwOTUsMzkxMTIsMzkxMTEsMTkxOTksMTU5MDE1LDEzNjkxNSwyMTkz''@;'; put 'put ''NiwzOTEzNywzOTE0MiwzOTE0OCwzNzc1MiwzOTIyNSwxNTAwNTcsMTkzMTQsMTcwMDcxLDE3MDI0NSwzOTQxMywzOTQzNiwzOTQ4MywzOTQ0MCwzOTUxMiwxNTMzODEsMTQwMjAsMTY4MTEzLDE3MDk2NSwzOTY0OCwzOTY1MCwxNzA3NTcsMzk2NjgsMTk0NzAsMzk3MDAsMzk3MjUsMTY1Mzc2''@;'; put 'put ''LDIwNTMyLDM5NzMyLDE1ODEyMCwxNDUzMSwxNDM0ODUsMzk3NjAsMzk3NDQsMTcxMzI2LDIzMTA5LDEzNzMxNSwzOTgyMiwxNDgwNDMsMzk5MzgsMzk5MzUsMzk5NDgsMTcxNjI0LDQwNDA0LDE3MTk1OSwxNzI0MzQsMTcyNDU5LDE3MjI1NywxNzIzMjMsMTcyNTExLDQwMzE4LDQwMzIzLDE3''@;'; put 'put ''MjM0MCw0MDQ2MiwyNjc2MCw0MDM4OCwxMzk2MTEsMTcyNDM1LDE3MjU3NiwxMzc1MzEsMTcyNTk1LDQwMjQ5LDE3MjIxNywxNzI3MjQsNDA1OTIsNDA1OTcsNDA2MDYsNDA2MTAsMTk3NjQsNDA2MTgsNDA2MjMsMTQ4MzI0LDQwNjQxLDE1MjAwLDE0ODIxLDE1NjQ1LDIwMjc0LDE0MjcwLDE2''@;'; put 'put ''Njk1NSw0MDcwNiw0MDcxMiwxOTM1MCwzNzkyNCwxNTkxMzgsNDA3MjcsNDA3MjYsNDA3NjEsMjIxNzUsMjIxNTQsNDA3NzMsMzkzNTIsMTY4MDc1LDM4ODk4LDMzOTE5LDQwODAyLDQwODA5LDMxNDUyLDQwODQ2LDI5MjA2LDE5MzkwLDE0OTg3NywxNDk5NDcsMjkwNDcsMTUwMDA4LDE0ODI5''@;'; put 'put ''NiwxNTAwOTcsMjk1OTgsMTY2ODc0LDEzNzQ2NiwzMTEzNSwxNjYyNzAsMTY3NDc4LDM3NzM3LDM3ODc1LDE2NjQ2OCwzNzYxMiwzNzc2MSwzNzgzNSwxNjYyNTIsMTQ4NjY1LDI5MjA3LDE2MTA3LDMwNTc4LDMxMjk5LDI4ODgwLDE0ODU5NSwxNDg0NzIsMjkwNTQsMTM3MTk5LDI4ODM1LDEz''@;'; put 'put ''NzQwNiwxNDQ3OTMsMTYwNzEsMTM3MzQ5LDE1MjYyMywxMzcyMDgsMTQxMTQsMTM2OTU1LDEzNzI3MywxNDA0OSwxMzcwNzYsMTM3NDI1LDE1NTQ2NywxNDExNSwxMzY4OTYsMjIzNjMsMTUwMDUzLDEzNjE5MCwxMzU4NDgsMTM2MTM0LDEzNjM3NCwzNDA1MSwxNDUwNjIsMzQwNTEsMzM4Nzcs''@;'; put 'put ''MTQ5OTA4LDE2MDEwMSwxNDY5OTMsMTUyOTI0LDE0NzE5NSwxNTk4MjYsMTc2NTIsMTQ1MTM0LDE3MDM5NywxNTk1MjYsMjY2MTcsMTQxMzEsMTUzODEsMTU4NDcsMjI2MzYsMTM3NTA2LDI2NjQwLDE2NDcxLDE0NTIxNSwxNDc2ODEsMTQ3NTk1LDE0NzcyNywxNTg3NTMsMjE3MDcsMjIxNzQs''@;'; put 'put ''MTU3MzYxLDIyMTYyLDEzNTEzNSwxMzQwNTYsMTM0NjY5LDM3ODMwLDE2NjY3NSwzNzc4OCwyMDIxNiwyMDc3OSwxNDM2MSwxNDg1MzQsMjAxNTYsMTMyMTk3LDEzMTk2NywyMDI5OSwyMDM2MiwxNTMxNjksMjMxNDQsMTMxNDk5LDEzMjA0MywxNDc0NSwxMzE4NTAsMTMyMTE2LDEzMzY1LDIw''@;'; put 'put ''MjY1LDEzMTc3NiwxNjc2MDMsMTMxNzAxLDM1NTQ2LDEzMTU5NiwyMDEyMCwyMDY4NSwyMDc0OSwyMDM4NiwyMDIyNywxNTAwMzAsMTQ3MDgyLDIwMjkwLDIwNTI2LDIwNTg4LDIwNjA5LDIwNDI4LDIwNDUzLDIwNTY4LDIwNzMyLDIwODI1LDIwODI3LDIwODI5LDIwODMwLDI4Mjc4LDE0NDc4''@;'; put 'put ''OSwxNDcwMDEsMTQ3MTM1LDI4MDE4LDEzNzM0OCwxNDcwODEsMjA5MDQsMjA5MzEsMTMyNTc2LDE3NjI5LDEzMjI1OSwxMzIyNDIsMTMyMjQxLDM2MjE4LDE2NjU1NiwxMzI4NzgsMjEwODEsMjExNTYsMTMzMjM1LDIxMjE3LDM3NzQyLDE4MDQyLDI5MDY4LDE0ODM2NCwxMzQxNzYsMTQ5OTMy''@;'; put 'put ''LDEzNTM5NiwyNzA4OSwxMzQ2ODUsMjk4MTcsMTYwOTQsMjk4NDksMjk3MTYsMjk3ODIsMjk1OTIsMTkzNDIsMTUwMjA0LDE0NzU5NywyMTQ1NiwxMzcwMCwyOTE5OSwxNDc2NTcsMjE5NDAsMTMxOTA5LDIxNzA5LDEzNDA4NiwyMjMwMSwzNzQ2OSwzODY0NCwzNzczNCwyMjQ5MywyMjQxMywy''@;'; put 'put ''MjM5OSwxMzg4NiwyMjczMSwyMzE5MywxNjY0NzAsMTM2OTU0LDEzNzA3MSwxMzY5NzYsMjMwODQsMjI5NjgsMzc1MTksMjMxNjYsMjMyNDcsMjMwNTgsMTUzOTI2LDEzNzcxNSwxMzczMTMsMTQ4MTE3LDE0MDY5LDI3OTA5LDI5NzYzLDIzMDczLDE1NTI2NywyMzE2OSwxNjY4NzEsMTMyMTE1''@;'; put 'put ''LDM3ODU2LDI5ODM2LDEzNTkzOSwyODkzMywxODgwMiwzNzg5NiwxNjYzOTUsMzc4MjEsMTQyNDAsMjM1ODIsMjM3MTAsMjQxNTgsMjQxMzYsMTM3NjIyLDEzNzU5NiwxNDYxNTgsMjQyNjksMjMzNzUsMTM3NDc1LDEzNzQ3NiwxNDA4MSwxMzczNzYsMTQwNDUsMTM2OTU4LDE0MDM1LDMzMDY2''@;'; put 'put ''LDE2NjQ3MSwxMzg2ODIsMTQ0NDk4LDE2NjMxMiwyNDMzMiwyNDMzNCwxMzc1MTEsMTM3MTMxLDIzMTQ3LDEzNzAxOSwyMzM2NCwzNDMyNCwxNjEyNzcsMzQ5MTIsMjQ3MDIsMTQxNDA4LDE0MDg0MywyNDUzOSwxNjA1NiwxNDA3MTksMTQwNzM0LDE2ODA3MiwxNTk2MDMsMjUwMjQsMTMxMTM0''@;'; put 'put ''LDEzMTE0MiwxNDA4MjcsMjQ5ODUsMjQ5ODQsMjQ2OTMsMTQyNDkxLDE0MjU5OSwxNDkyMDQsMTY4MjY5LDI1NzEzLDE0OTA5MywxNDIxODYsMTQ4ODksMTQyMTE0LDE0NDQ2NCwxNzAyMTgsMTQyOTY4LDI1Mzk5LDE3MzE0NywyNTc4MiwyNTM5MywyNTU1MywxNDk5ODcsMTQyNjk1LDI1MjUy''@;'; put 'put ''LDE0MjQ5NywyNTY1OSwyNTk2MywyNjk5NCwxNTM0OCwxNDM1MDIsMTQ0MDQ1LDE0OTg5NywxNDQwNDMsMjE3NzMsMTQ0MDk2LDEzNzQzMywxNjkwMjMsMjYzMTgsMTQ0MDA5LDE0Mzc5NSwxNTA3MiwxNjc4NCwxNTI5NjQsMTY2NjkwLDE1Mjk3NSwxMzY5NTYsMTUyOTIzLDE1MjYxMywzMDk1''@;'; put 'put ''OCwxNDM2MTksMTM3MjU4LDE0MzkyNCwxMzQxMiwxNDM4ODcsMTQzNzQ2LDE0ODE2OSwyNjI1NCwxNTkwMTIsMjYyMTksMTkzNDcsMjYxNjAsMTYxOTA0LDEzODczMSwyNjIxMSwxNDQwODIsMTQ0MDk3LDI2MTQyLDE1MzcxNCwxNDU0NSwxNDU0NjYsMTQ1MzQwLDE1MjU3LDE0NTMxNCwxNDQz''@;'; put 'put ''ODIsMjk5MDQsMTUyNTQsMjY1MTEsMTQ5MDM0LDI2ODA2LDI2NjU0LDE1MzAwLDI3MzI2LDE0NDM1LDE0NTM2NSwxNDg2MTUsMjcxODcsMjcyMTgsMjczMzcsMjczOTcsMTM3NDkwLDI1ODczLDI2Nzc2LDI3MjEyLDE1MzE5LDI3MjU4LDI3NDc5LDE0NzM5MiwxNDY1ODYsMzc3OTIsMzc2MTgs''@;'; put 'put ''MTY2ODkwLDE2NjYwMywzNzUxMywxNjM4NzAsMTY2MzY0LDM3OTkxLDI4MDY5LDI4NDI3LDE0OTk5NiwyODAwNywxNDczMjcsMTU3NTksMjgxNjQsMTQ3NTE2LDIzMTAxLDI4MTcwLDIyNTk5LDI3OTQwLDMwNzg2LDI4OTg3LDE0ODI1MCwxNDgwODYsMjg5MTMsMjkyNjQsMjkzMTksMjkzMzIs''@;'; put 'put ''MTQ5MzkxLDE0OTI4NSwyMDg1NywxNTAxODAsMTMyNTg3LDI5ODE4LDE0NzE5MiwxNDQ5OTEsMTUwMDkwLDE0OTc4MywxNTU2MTcsMTYxMzQsMTYwNDksMTUwMjM5LDE2Njk0NywxNDcyNTMsMjQ3NDMsMTYxMTUsMjk5MDAsMjk3NTYsMzc3NjcsMjk3NTEsMTc1NjcsMTU5MjEwLDE3NzQ1LDMw''@;'; put 'put ''MDgzLDE2MjI3LDE1MDc0NSwxNTA3OTAsMTYyMTYsMzAwMzcsMzAzMjMsMTczNTEwLDE1MTI5LDI5ODAwLDE2NjYwNCwxNDk5MzEsMTQ5OTAyLDE1MDk5LDE1ODIxLDE1MDA5NCwxNjEyNywxNDk5NTcsMTQ5NzQ3LDM3MzcwLDIyMzIyLDM3Njk4LDE2NjYyNywxMzczMTYsMjA3MDMsMTUyMDk3''@;'; put 'put ''LDE1MjAzOSwzMDU4NCwxNDM5MjIsMzA0NzgsMzA0NzksMzA1ODcsMTQ5MTQzLDE0NTI4MSwxNDk0MiwxNDk3NDQsMjk3NTIsMjk4NTEsMTYwNjMsMTUwMjAyLDE1MDIxNSwxNjU4NCwxNTAxNjYsMTU2MDc4LDM3NjM5LDE1Mjk2MSwzMDc1MCwzMDg2MSwzMDg1NiwzMDkzMCwyOTY0OCwzMTA2''@;'; put 'put ''NSwxNjE2MDEsMTUzMzE1LDE2NjU0LDMxMTMxLDMzOTQyLDMxMTQxLDI3MTgxLDE0NzE5NCwzMTI5MCwzMTIyMCwxNjc1MCwxMzY5MzQsMTY2OTAsMzc0MjksMzEyMTcsMTM0NDc2LDE0OTkwMCwxMzE3MzcsMTQ2ODc0LDEzNzA3MCwxMzcxOSwyMTg2NywxMzY4MCwxMzk5NCwxMzE1NDAsMTM0''@;'; put 'put ''MTU3LDMxNDU4LDIzMTI5LDE0MTA0NSwxNTQyODcsMTU0MjY4LDIzMDUzLDEzMTY3NSwzMDk2MCwyMzA4MiwxNTQ1NjYsMzE0ODYsMTY4ODksMzE4MzcsMzE4NTMsMTY5MTMsMTU0NTQ3LDE1NTMyNCwxNTUzMDIsMzE5NDksMTUwMDA5LDEzNzEzNiwzMTg4NiwzMTg2OCwzMTkxOCwyNzMxNCwz''@;'; put 'put ''MjIyMCwzMjI2MywzMjIxMSwzMjU5MCwxNTYyNTcsMTU1OTk2LDE2MjYzMiwzMjE1MSwxNTUyNjYsMTcwMDIsMTU4NTgxLDEzMzM5OCwyNjU4MiwxMzExNTAsMTQ0ODQ3LDIyNDY4LDE1NjY5MCwxNTY2NjQsMTQ5ODU4LDMyNzMzLDMxNTI3LDEzMzE2NCwxNTQzNDUsMTU0OTQ3LDMxNTAwLDE1''@;'; put 'put ''NTE1MCwzOTM5OCwzNDM3MywzOTUyMywyNzE2NCwxNDQ0NDcsMTQ4MTgsMTUwMDA3LDE1NzEwMSwzOTQ1NSwxNTcwODgsMzM5MjAsMTYwMDM5LDE1ODkyOSwxNzY0MiwzMzA3OSwxNzQxMCwzMjk2NiwzMzAzMywzMzA5MCwxNTc2MjAsMzkxMDcsMTU4Mjc0LDMzMzc4LDMzMzgxLDE1ODI4OSwz''@;'; put 'put ''Mzg3NSwxNTkxNDMsMzQzMjAsMTYwMjgzLDIzMTc0LDE2NzY3LDEzNzI4MCwyMzMzOSwxMzczNzcsMjMyNjgsMTM3NDMyLDM0NDY0LDE5NTAwNCwxNDY4MzEsMzQ4NjEsMTYwODAyLDIzMDQyLDM0OTI2LDIwMjkzLDM0OTUxLDM1MDA3LDM1MDQ2LDM1MTczLDM1MTQ5LDE1MzIxOSwzNTE1Niwx''@;'; put 'put ''NjE2NjksMTYxNjY4LDE2NjkwMSwxNjY4NzMsMTY2ODEyLDE2NjM5MywxNjA0NSwzMzk1NSwxODE2NSwxODEyNywxNDMyMiwzNTM4OSwzNTM1NiwxNjkwMzIsMjQzOTcsMzc0MTksMTQ4MTAwLDI2MDY4LDI4OTY5LDI4ODY4LDEzNzI4NSw0MDMwMSwzNTk5OSwzNjA3MywxNjMyOTIsMjI5Mzgs''@;'; put 'put ''MzA2NTksMjMwMjQsMTcyNjIsMTQwMzYsMzYzOTQsMzY1MTksMTUwNTM3LDM2NjU2LDM2NjgyLDE3MTQwLDI3NzM2LDI4NjAzLDE0MDA2NSwxODU4NywyODUzNywyODI5OSwxMzcxNzgsMzk5MTMsMTQwMDUsMTQ5ODA3LDM3MDUxLDM3MDE1LDIxODczLDE4Njk0LDM3MzA3LDM3ODkyLDE2NjQ3''@;'; put 'put ''NSwxNjQ4MiwxNjY2NTIsMzc5MjcsMTY2OTQxLDE2Njk3MSwzNDAyMSwzNTM3MSwzODI5NywzODMxMSwzODI5NSwzODI5NCwxNjcyMjAsMjk3NjUsMTYwNjYsMTQ5NzU5LDE1MDA4MiwxNDg0NTgsMTYxMDMsMTQzOTA5LDM4NTQzLDE2NzY1NSwxNjc1MjYsMTY3NTI1LDE2MDc2LDE0OTk5Nywx''@;'; put 'put ''NTAxMzYsMTQ3NDM4LDI5NzE0LDI5ODAzLDE2MTI0LDM4NzIxLDE2ODExMiwyNjY5NSwxODk3MywxNjgwODMsMTUzNTY3LDM4NzQ5LDM3NzM2LDE2NjI4MSwxNjY5NTAsMTY2NzAzLDE1NjYwNiwzNzU2MiwyMzMxMywzNTY4OSwxODc0OCwyOTY4OSwxNDc5OTUsMzg4MTEsMzg3NjksMzkyMjQs''@;'; put 'put ''MTM0OTUwLDI0MDAxLDE2Njg1MywxNTAxOTQsMzg5NDMsMTY5MTc4LDM3NjIyLDE2OTQzMSwzNzM0OSwxNzYwMCwxNjY3MzYsMTUwMTE5LDE2Njc1NiwzOTEzMiwxNjY0NjksMTYxMjgsMzc0MTgsMTg3MjUsMzM4MTIsMzkyMjcsMzkyNDUsMTYyNTY2LDE1ODY5LDM5MzIzLDE5MzExLDM5MzM4''@;'; put 'put ''LDM5NTE2LDE2Njc1NywxNTM4MDAsMjcyNzksMzk0NTcsMjMyOTQsMzk0NzEsMTcwMjI1LDE5MzQ0LDE3MDMxMiwzOTM1NiwxOTM4OSwxOTM1MSwzNzc1NywyMjY0MiwxMzU5MzgsMjI1NjIsMTQ5OTQ0LDEzNjQyNCwzMDc4OCwxNDEwODcsMTQ2ODcyLDI2ODIxLDE1NzQxLDM3OTc2LDE0NjMx''@;'; put 'put ''LDI0OTEyLDE0MTE4NSwxNDE2NzUsMjQ4MzksNDAwMTUsNDAwMTksNDAwNTksMzk5ODksMzk5NTIsMzk4MDcsMzk4ODcsMTcxNTY1LDM5ODM5LDE3MjUzMywxNzIyODYsNDAyMjUsMTk2MzAsMTQ3NzE2LDQwNDcyLDE5NjMyLDQwMjA0LDE3MjQ2OCwxNzIyNjksMTcyMjc1LDE3MDI4Nyw0MDM1''@;'; put 'put ''NywzMzk4MSwxNTkyNTAsMTU5NzExLDE1ODU5NCwzNDMwMCwxNzcxNSwxNTkxNDAsMTU5MzY0LDE1OTIxNiwzMzgyNCwzNDI4NiwxNTkyMzIsMTQ1MzY3LDE1NTc0OCwzMTIwMiwxNDQ3OTYsMTQ0OTYwLDE4NzMzLDE0OTk4MiwxNTcxNCwzNzg1MSwzNzU2NiwzNzcwNCwxMzE3NzUsMzA5MDUs''@;'; put 'put ''Mzc0OTUsMzc5NjUsMjA0NTIsMTMzNzYsMzY5NjQsMTUyOTI1LDMwNzgxLDMwODA0LDMwOTAyLDMwNzk1LDEzNzA0NywxNDM4MTcsMTQ5ODI1LDEzOTc4LDIwMzM4LDI4NjM0LDI4NjMzLDI4NzAyLDI4NzAyLDIxNTI0LDE0Nzg5MywyMjQ1OSwyMjc3MSwyMjQxMCw0MDIxNCwyMjQ4NywyODk4''@;'; put 'put ''MCwxMzQ4NywxNDc4ODQsMjkxNjMsMTU4Nzg0LDE1MTQ0NywyMzMzNiwxMzcxNDEsMTY2NDczLDI0ODQ0LDIzMjQ2LDIzMDUxLDE3MDg0LDE0ODYxNiwxNDEyNCwxOTMyMywxNjYzOTYsMzc4MTksMzc4MTYsMTM3NDMwLDEzNDk0MSwzMzkwNiwxNTg5MTIsMTM2MjExLDE0ODIxOCwxNDIzNzQs''@;'; put 'put ''MTQ4NDE3LDIyOTMyLDE0Njg3MSwxNTc1MDUsMzIxNjgsMTU1OTk1LDE1NTgxMiwxNDk5NDUsMTQ5ODk5LDE2NjM5NCwzNzYwNSwyOTY2NiwxNjEwNSwyOTg3NiwxNjY3NTUsMTM3Mzc1LDE2MDk3LDE1MDE5NSwyNzM1MiwyOTY4MywyOTY5MSwxNjA4NiwxNTAwNzgsMTUwMTY0LDEzNzE3Nywx''@;'; put 'put ''NTAxMTgsMTMyMDA3LDEzNjIyOCwxNDk5ODksMjk3NjgsMTQ5NzgyLDI4ODM3LDE0OTg3OCwzNzUwOCwyOTY3MCwzNzcyNywxMzIzNTAsMzc2ODEsMTY2NjA2LDE2NjQyMiwzNzc2NiwxNjY4ODcsMTUzMDQ1LDE4NzQxLDE2NjUzMCwyOTAzNSwxNDk4MjcsMTM0Mzk5LDIyMTgwLDEzMjYzNCwx''@;'; put 'put ''MzQxMjMsMTM0MzI4LDIxNzYyLDMxMTcyLDEzNzIxMCwzMjI1NCwxMzY4OTgsMTUwMDk2LDEzNzI5OCwxNzcxMCwzNzg4OSwxNDA5MCwxNjY1OTIsMTQ5OTMzLDIyOTYwLDEzNzQwNywxMzczNDcsMTYwOTAwLDIzMjAxLDE0MDUwLDE0Njc3OSwxNGUzLDM3NDcxLDIzMTYxLDE2NjUyOSwxMzcz''@;'; put 'put ''MTQsMzc3NDgsMTU1NjUsMTMzODEyLDE5MDk0LDE0NzMwLDIwNzI0LDE1NzIxLDE1NjkyLDEzNjA5MiwyOTA0NSwxNzE0NywxNjQzNzYsMjgxNzUsMTY4MTY0LDE3NjQzLDI3OTkxLDE2MzQwNywyODc3NSwyNzgyMywxNTU3NCwxNDc0MzcsMTQ2OTg5LDI4MTYyLDI4NDI4LDE1NzI3LDEzMjA4''@;'; put 'put ''NSwzMDAzMywxNDAxMiwxMzUxMiwxODA0OCwxNjA5MCwxODU0NSwyMjk4MCwzNzQ4NiwxODc1MCwzNjY3MywxNjY5NDAsMTU4NjU2LDIyNTQ2LDIyNDcyLDE0MDM4LDEzNjI3NCwyODkyNiwxNDgzMjIsMTUwMTI5LDE0MzMzMSwxMzU4NTYsMTQwMjIxLDI2ODA5LDI2OTgzLDEzNjA4OCwxNDQ2''@;'; put 'put ''MTMsMTYyODA0LDE0NTExOSwxNjY1MzEsMTQ1MzY2LDE0NDM3OCwxNTA2ODcsMjcxNjIsMTQ1MDY5LDE1ODkwMywzMzg1NCwxNzYzMSwxNzYxNCwxNTkwMTQsMTU5MDU3LDE1ODg1MCwxNTk3MTAsMjg0MzksMTYwMDA5LDMzNTk3LDEzNzAxOCwzMzc3MywxNTg4NDgsMTU5ODI3LDEzNzE3OSwy''@;'; put 'put ''MjkyMSwyMzE3MCwxMzcxMzksMjMxMzcsMjMxNTMsMTM3NDc3LDE0Nzk2NCwxNDEyNSwyMzAyMywxMzcwMjAsMTQwMjMsMjkwNzAsMzc3NzYsMjYyNjYsMTQ4MTMzLDIzMTUwLDIzMDgzLDE0ODExNSwyNzE3OSwxNDcxOTMsMTYxNTkwLDE0ODU3MSwxNDgxNzAsMjg5NTcsMTQ4MDU3LDE2NjM2''@;'; put 'put ''OSwyMDQwMCwxNTkwMTYsMjM3NDYsMTQ4Njg2LDE2MzQwNSwxNDg0MTMsMjcxNDgsMTQ4MDU0LDEzNTk0MCwyODgzOCwyODk3OSwxNDg0NTcsMTU3ODEsMjc4NzEsMTk0NTk3LDE1MDA5NSwzMjM1NywyMzAxOSwyMzg1NSwxNTg1OSwyNDQxMiwxNTAxMDksMTM3MTgzLDMyMTY0LDMzODMwLDIx''@;'; put 'put ''NjM3LDE0NjE3MCwxNDQxMjgsMTMxNjA0LDIyMzk4LDEzMzMzMywxMzI2MzMsMTYzNTcsMTM5MTY2LDE3MjcyNiwyODY3NSwxNjgyODMsMjM5MjAsMjk1ODMsMzE5NTUsMTY2NDg5LDE2ODk5MiwyMDQyNCwzMjc0MywyOTM4OSwyOTQ1NiwxNjI1NDgsMjk0OTYsMjk0OTcsMTUzMzM0LDI5NTA1''@;'; put 'put ''LDI5NTEyLDE2MDQxLDE2MjU4NCwzNjk3MiwyOTE3MywxNDk3NDYsMjk2NjUsMzMyNzAsMTYwNzQsMzA0NzYsMTYwODEsMjc4MTAsMjIyNjksMjk3MjEsMjk3MjYsMjk3MjcsMTYwOTgsMTYxMTIsMTYxMTYsMTYxMjIsMjk5MDcsMTYxNDIsMTYyMTEsMzAwMTgsMzAwNjEsMzAwNjYsMzAwOTMs''@;'; put 'put ''MTYyNTIsMzAxNTIsMzAxNzIsMTYzMjAsMzAyODUsMTYzNDMsMzAzMjQsMTYzNDgsMzAzMzAsMTUxMzg4LDI5MDY0LDIyMDUxLDM1MjAwLDIyNjMzLDE2NDEzLDMwNTMxLDE2NDQxLDI2NDY1LDE2NDUzLDEzNzg3LDMwNjE2LDE2NDkwLDE2NDk1LDIzNjQ2LDMwNjU0LDMwNjY3LDIyNzcwLDMw''@;'; put 'put ''NzQ0LDI4ODU3LDMwNzQ4LDE2NTUyLDMwNzc3LDMwNzkxLDMwODAxLDMwODIyLDMzODY0LDE1Mjg4NSwzMTAyNywyNjYyNywzMTAyNiwxNjY0MywxNjY0OSwzMTEyMSwzMTEyOSwzNjc5NSwzMTIzOCwzNjc5NiwxNjc0MywzMTM3NywxNjgxOCwzMTQyMCwzMzQwMSwxNjgzNiwzMTQzOSwzMTQ1''@;'; put 'put ''MSwxNjg0NywyMDAwMSwzMTU4NiwzMTU5NiwzMTYxMSwzMTc2MiwzMTc3MSwxNjk5MiwxNzAxOCwzMTg2NywzMTkwMCwxNzAzNiwzMTkyOCwxNzA0NCwzMTk4MSwzNjc1NSwyODg2NCwxMzQzNTEsMzIyMDcsMzIyMTIsMzIyMDgsMzIyNTMsMzI2ODYsMzI2OTIsMjkzNDMsMTczMDMsMzI4MDAs''@;'; put 'put ''MzI4MDUsMzE1NDUsMzI4MTQsMzI4MTcsMzI4NTIsMTU4MjAsMjI0NTIsMjg4MzIsMzI5NTEsMzMwMDEsMTczODksMzMwMzYsMjk0ODIsMzMwMzgsMzMwNDIsMzAwNDgsMzMwNDQsMTc0MDksMTUxNjEsMzMxMTAsMzMxMTMsMzMxMTQsMTc0MjcsMjI1ODYsMzMxNDgsMzMxNTYsMTc0NDUsMzMx''@;'; put 'put ''NzEsMTc0NTMsMzMxODksMjI1MTEsMzMyMTcsMzMyNTIsMzMzNjQsMTc1NTEsMzM0NDYsMzMzOTgsMzM0ODIsMzM0OTYsMzM1MzUsMTc1ODQsMzM2MjMsMzg1MDUsMjcwMTgsMzM3OTcsMjg5MTcsMzM4OTIsMjQ4MDMsMzM5MjgsMTc2NjgsMzM5ODIsMzQwMTcsMzQwNDAsMzQwNjQsMzQxMDQs''@;'; put 'put ''MzQxMzAsMTc3MjMsMzQxNTksMzQxNjAsMzQyNzIsMTc3ODMsMzQ0MTgsMzQ0NTAsMzQ0ODIsMzQ1NDMsMzg0NjksMzQ2OTksMTc5MjYsMTc5NDMsMzQ5OTAsMzUwNzEsMzUxMDgsMzUxNDMsMzUyMTcsMTYyMTUxLDM1MzY5LDM1Mzg0LDM1NDc2LDM1NTA4LDM1OTIxLDM2MDUyLDM2MDgyLDM2''@;'; put 'put ''MTI0LDE4MzI4LDIyNjIzLDM2MjkxLDE4NDEzLDIwMjA2LDM2NDEwLDIxOTc2LDIyMzU2LDM2NDY1LDIyMDA1LDM2NTI4LDE4NDg3LDM2NTU4LDM2NTc4LDM2NTgwLDM2NTg5LDM2NTk0LDM2NzkxLDM2ODAxLDM2ODEwLDM2ODEyLDM2OTE1LDM5MzY0LDE4NjA1LDM5MTM2LDM3Mzk1LDE4NzE4''@;'; put 'put ''LDM3NDE2LDM3NDY0LDM3NDgzLDM3NTUzLDM3NTUwLDM3NTY3LDM3NjAzLDM3NjExLDM3NjE5LDM3NjIwLDM3NjI5LDM3Njk5LDM3NzY0LDM3ODA1LDE4NzU3LDE4NzY5LDQwNjM5LDM3OTExLDIxMjQ5LDM3OTE3LDM3OTMzLDM3OTUwLDE4Nzk0LDM3OTcyLDM4MDA5LDM4MTg5LDM4MzA2LDE4''@;'; put 'put ''ODU1LDM4Mzg4LDM4NDUxLDE4OTE3LDI2NTI4LDE4OTgwLDM4NzIwLDE4OTk3LDM4ODM0LDM4ODUwLDIyMTAwLDE5MTcyLDI0ODA4LDM5MDk3LDE5MjI1LDM5MTUzLDIyNTk2LDM5MTgyLDM5MTkzLDIwOTE2LDM5MTk2LDM5MjIzLDM5MjM0LDM5MjYxLDM5MjY2LDE5MzEyLDM5MzY1LDE5MzU3''@;'; put 'put ''LDM5NDg0LDM5Njk1LDMxMzYzLDM5Nzg1LDM5ODA5LDM5OTAxLDM5OTIxLDM5OTI0LDE5NTY1LDM5OTY4LDE0MTkxLDEzODE3OCw0MDI2NSwzOTk5NCw0MDcwMiwyMjA5Niw0MDMzOSw0MDM4MSw0MDM4NCw0MDQ0NCwzODEzNCwzNjc5MCw0MDU3MSw0MDYyMCw0MDYyNSw0MDYzNyw0MDY0Niwz''@;'; put 'put ''ODEwOCw0MDY3NCw0MDY4OSw0MDY5NiwzMTQzMiw0MDc3MiwxMzEyMjAsMTMxNzY3LDEzMmUzLDI2OTA2LDM4MDgzLDIyOTU2LDEzMjMxMSwyMjU5MiwzODA4MSwxNDI2NSwxMzI1NjUsMTMyNjI5LDEzMjcyNiwxMzY4OTAsMjIzNTksMjkwNDMsMTMzODI2LDEzMzgzNywxMzQwNzksMjE2MTAs''@;'; put 'put ''MTk0NjE5LDEzNDA5MSwyMTY2MiwxMzQxMzksMTM0MjAzLDEzNDIyNywxMzQyNDUsMTM0MjY4LDI0ODA3LDEzNDI4NSwyMjEzOCwxMzQzMjUsMTM0MzY1LDEzNDM4MSwxMzQ1MTEsMTM0NTc4LDEzNDYwMCwyNjk2NSwzOTk4MywzNDcyNSwxMzQ2NjAsMTM0NjcwLDEzNDg3MSwxMzUwNTYsMTM0''@;'; put 'put ''OTU3LDEzNDc3MSwyMzU4NCwxMzUxMDAsMjQwNzUsMTM1MjYwLDEzNTI0NywxMzUyODYsMjYzOTgsMTM1MjkxLDEzNTMwNCwxMzUzMTgsMTM4OTUsMTM1MzU5LDEzNTM3OSwxMzU0NzEsMTM1NDgzLDIxMzQ4LDMzOTY1LDEzNTkwNywxMzYwNTMsMTM1OTkwLDM1NzEzLDEzNjU2NywxMzY3Mjks''@;'; put 'put ''MTM3MTU1LDEzNzE1OSwyMDA4OCwyODg1OSwxMzcyNjEsMTM3NTc4LDEzNzc3MywxMzc3OTcsMTM4MjgyLDEzODM1MiwxMzg0MTIsMTM4OTUyLDI1MjgzLDEzODk2NSwxMzkwMjksMjkwODAsMjY3MDksMTM5MzMzLDI3MTEzLDE0MDI0LDEzOTkwMCwxNDAyNDcsMTQwMjgyLDE0MTA5OCwxNDE0''@;'; put 'put ''MjUsMTQxNjQ3LDMzNTMzLDE0MTY3MSwxNDE3MTUsMTQyMDM3LDM1MjM3LDE0MjA1NiwzNjc2OCwxNDIwOTQsMzg4NDAsMTQyMTQzLDM4OTgzLDM5NjEzLDE0MjQxMixudWxsLDE0MjQ3MiwxNDI1MTksMTU0NjAwLDE0MjYwMCwxNDI2MTAsMTQyNzc1LDE0Mjc0MSwxNDI5MTQsMTQzMjIwLDE0''@;'; put 'put ''MzMwOCwxNDM0MTEsMTQzNDYyLDE0NDE1OSwxNDQzNTAsMjQ0OTcsMjYxODQsMjYzMDMsMTYyNDI1LDE0NDc0MywxNDQ4ODMsMjkxODUsMTQ5OTQ2LDMwNjc5LDE0NDkyMiwxNDUxNzQsMzIzOTEsMTMxOTEwLDIyNzA5LDI2MzgyLDI2OTA0LDE0NjA4NywxNjEzNjcsMTU1NjE4LDE0Njk2MSwx''@;'; put 'put ''NDcxMjksMTYxMjc4LDEzOTQxOCwxODY0MCwxOTEyOCwxNDc3MzcsMTY2NTU0LDE0ODIwNiwxNDgyMzcsMTQ3NTE1LDE0ODI3NiwxNDgzNzQsMTUwMDg1LDEzMjU1NCwyMDk0NiwxMzI2MjUsMjI5NDMsMTM4OTIwLDE1Mjk0LDE0NjY4NywxNDg0ODQsMTQ4Njk0LDIyNDA4LDE0OTEwOCwxNDc0''@;'; put 'put ''NywxNDkyOTUsMTY1MzUyLDE3MDQ0MSwxNDE3OCwxMzk3MTUsMzU2NzgsMTY2NzM0LDM5MzgyLDE0OTUyMiwxNDk3NTUsMTUwMDM3LDI5MTkzLDE1MDIwOCwxMzQyNjQsMjI4ODUsMTUxMjA1LDE1MTQzMCwxMzI5ODUsMzY1NzAsMTUxNTk2LDIxMTM1LDIyMzM1LDI5MDQxLDE1MjIxNywxNTI2''@;'; put 'put ''MDEsMTQ3Mjc0LDE1MDE4MywyMTk0OCwxNTI2NDYsMTUyNjg2LDE1ODU0NiwzNzMzMiwxMzQyNywxNTI4OTUsMTYxMzMwLDE1MjkyNiwxODIwMCwxNTI5MzAsMTUyOTM0LDE1MzU0MywxNDk4MjMsMTUzNjkzLDIwNTgyLDEzNTYzLDE0NDMzMiwyNDc5OCwxNTM4NTksMTgzMDAsMTY2MjE2LDE1''@;'; put 'put ''NDI4NiwxNTQ1MDUsMTU0NjMwLDEzODY0MCwyMjQzMywyOTAwOSwyODU5OCwxNTU5MDYsMTYyODM0LDM2OTUwLDE1NjA4MiwxNTE0NTAsMzU2ODIsMTU2Njc0LDE1Njc0NiwyMzg5OSwxNTg3MTEsMzY2NjIsMTU2ODA0LDEzNzUwMCwzNTU2MiwxNTAwMDYsMTU2ODA4LDE0NzQzOSwxNTY5NDYs''@;'; put 'put ''MTkzOTIsMTU3MTE5LDE1NzM2NSwxNDEwODMsMzc5ODksMTUzNTY5LDI0OTgxLDIzMDc5LDE5NDc2NSwyMDQxMSwyMjIwMSwxNDg3NjksMTU3NDM2LDIwMDc0LDE0OTgxMiwzODQ4NiwyODA0NywxNTg5MDksMTM4NDgsMzUxOTEsMTU3NTkzLDE1NzgwNiwxNTY2ODksMTU3NzkwLDI5MTUxLDE1''@;'; put 'put ''Nzg5NSwzMTU1NCwxNjgxMjgsMTMzNjQ5LDE1Nzk5MCwzNzEyNCwxNTgwMDksMzEzMDEsNDA0MzIsMTU4MjAyLDM5NDYyLDE1ODI1MywxMzkxOSwxNTY3NzcsMTMxMTA1LDMxMTA3LDE1ODI2MCwxNTg1NTUsMjM4NTIsMTQ0NjY1LDMzNzQzLDE1ODYyMSwxODEyOCwxNTg4ODQsMzAwMTEsMzQ5''@;'; put 'put ''MTcsMTU5MTUwLDIyNzEwLDE0MTA4LDE0MDY4NSwxNTk4MTksMTYwMjA1LDE1NDQ0LDE2MDM4NCwxNjAzODksMzc1MDUsMTM5NjQyLDE2MDM5NSwzNzY4MCwxNjA0ODYsMTQ5OTY4LDI3NzA1LDM4MDQ3LDE2MDg0OCwxMzQ5MDQsMzQ4NTUsMzUwNjEsMTQxNjA2LDE2NDk3OSwxMzcxMzcsMjgz''@;'; put 'put ''NDQsMTUwMDU4LDEzNzI0OCwxNDc1NiwxNDAwOSwyMzU2OCwzMTIwMywxNzcyNywyNjI5NCwxNzExODEsMTcwMTQ4LDM1MTM5LDE2MTc0MCwxNjE4ODAsMjIyMzAsMTY2MDcsMTM2NzE0LDE0NzUzLDE0NTE5OSwxNjQwNzIsMTM2MTMzLDI5MTAxLDMzNjM4LDE2MjI2OSwxNjgzNjAsMjMxNDMs''@;'; put 'put ''MTk2MzksMTU5OTE5LDE2NjMxNSwxNjIzMDEsMTYyMzE0LDE2MjU3MSwxNjMxNzQsMTQ3ODM0LDMxNTU1LDMxMTAyLDE2Mzg0OSwyODU5NywxNzI3NjcsMjcxMzksMTY0NjMyLDIxNDEwLDE1OTIzOSwzNzgyMywyNjY3OCwzODc0OSwxNjQyMDcsMTYzODc1LDE1ODEzMywxMzYxNzMsMTQzOTE5''@;'; put 'put ''LDE2MzkxMiwyMzk0MSwxNjY5NjAsMTYzOTcxLDIyMjkzLDM4OTQ3LDE2NjIxNywyMzk3OSwxNDk4OTYsMjYwNDYsMjcwOTMsMjE0NTgsMTUwMTgxLDE0NzMyOSwxNTM3NywyNjQyMiwxNjM5ODQsMTY0MDg0LDE2NDE0MiwxMzkxNjksMTY0MTc1LDE2NDIzMywxNjQyNzEsMTY0Mzc4LDE2NDYx''@;'; put 'put ''NCwxNjQ2NTUsMTY0NzQ2LDEzNzcwLDE2NDk2OCwxNjU1NDYsMTg2ODIsMjU1NzQsMTY2MjMwLDMwNzI4LDM3NDYxLDE2NjMyOCwxNzM5NCwxNjYzNzUsMTczNzUsMTY2Mzc2LDE2NjcyNiwxNjY4NjgsMjMwMzIsMTY2OTIxLDM2NjE5LDE2Nzg3NywxNjgxNzIsMzE1NjksMTY4MjA4LDE2ODI1''@;'; put 'put ''MiwxNTg2MywxNjgyODYsMTUwMjE4LDM2ODE2LDI5MzI3LDIyMTU1LDE2OTE5MSwxNjk0NDksMTY5MzkyLDE2OTQwMCwxNjk3NzgsMTcwMTkzLDE3MDMxMywxNzAzNDYsMTcwNDM1LDE3MDUzNiwxNzA3NjYsMTcxMzU0LDE3MTQxOSwzMjQxNSwxNzE3NjgsMTcxODExLDE5NjIwLDM4MjE1LDE3''@;'; put 'put ''MjY5MSwyOTA5MCwxNzI3OTksMTk4NTcsMzY4ODIsMTczNTE1LDE5ODY4LDEzNDMwMCwzNjc5OCwyMTk1MywzNjc5NCwxNDA0NjQsMzY3OTMsMTUwMTYzLDE3NjczLDMyMzgzLDI4NTAyLDI3MzEzLDIwMjAyLDEzNTQwLDE2NjcwMCwxNjE5NDksMTQxMzgsMzY0ODAsMTM3MjA1LDE2Mzg3Niwx''@;'; put 'put ''NjY3NjQsMTY2ODA5LDE2MjM2NiwxNTczNTksMTU4NTEsMTYxMzY1LDE0NjYxNSwxNTMxNDEsMTUzOTQyLDIwMTIyLDE1NTI2NSwxNTYyNDgsMjIyMDcsMTM0NzY1LDM2MzY2LDIzNDA1LDE0NzA4MCwxNTA2ODYsMjU1NjYsMjUyOTYsMTM3MjA2LDEzNzMzOSwyNTkwNCwyMjA2MSwxNTQ2OTgs''@;'; put 'put ''MjE1MzAsMTUyMzM3LDE1ODE0LDE3MTQxNiwxOTU4MSwyMjA1MCwyMjA0NiwzMjU4NSwxNTUzNTIsMjI5MDEsMTQ2NzUyLDM0NjcyLDE5OTk2LDEzNTE0NiwxMzQ0NzMsMTQ1MDgyLDMzMDQ3LDQwMjg2LDM2MTIwLDMwMjY3LDQwMDA1LDMwMjg2LDMwNjQ5LDM3NzAxLDIxNTU0LDMzMDk2LDMz''@;'; put 'put ''NTI3LDIyMDUzLDMzMDc0LDMzODE2LDMyOTU3LDIxOTk0LDMxMDc0LDIyMDgzLDIxNTI2LDEzNDgxMywxMzc3NCwyMjAyMSwyMjAwMSwyNjM1MywxNjQ1NzgsMTM4NjksMzAwMDQsMjJlMywyMTk0NiwyMTY1NSwyMTg3NCwxMzQyMDksMTM0Mjk0LDI0MjcyLDE1MTg4MCwxMzQ3NzQsMTQyNDM0''@;'; put 'put ''LDEzNDgxOCw0MDYxOSwzMjA5MCwyMTk4MiwxMzUyODUsMjUyNDUsMzg3NjUsMjE2NTIsMzYwNDUsMjkxNzQsMzcyMzgsMjU1OTYsMjU1MjksMjU1OTgsMjE4NjUsMTQyMTQ3LDQwMDUwLDE0MzAyNywyMDg5MCwxMzUzNSwxMzQ1NjcsMjA5MDMsMjE1ODEsMjE3OTAsMjE3NzksMzAzMTAsMzYz''@;'; put 'put ''OTcsMTU3ODM0LDMwMTI5LDMyOTUwLDM0ODIwLDM0Njk0LDM1MDE1LDMzMjA2LDMzODIwLDEzNTM2MSwxNzY0NCwyOTQ0NCwxNDkyNTQsMjM0NDAsMzM1NDcsMTU3ODQzLDIyMTM5LDE0MTA0NCwxNjMxMTksMTQ3ODc1LDE2MzE4NywxNTk0NDAsMTYwNDM4LDM3MjMyLDEzNTY0MSwzNzM4NCwx''@;'; put 'put ''NDY2ODQsMTczNzM3LDEzNDgyOCwxMzQ5MDUsMjkyODYsMTM4NDAyLDE4MjU0LDE1MTQ5MCwxNjM4MzMsMTM1MTQ3LDE2NjM0LDQwMDI5LDI1ODg3LDE0Mjc1MiwxODY3NSwxNDk0NzIsMTcxMzg4LDEzNTE0OCwxMzQ2NjYsMjQ2NzQsMTYxMTg3LDEzNTE0OSxudWxsLDE1NTcyMCwxMzU1NTks''@;'; put 'put ''MjkwOTEsMzIzOTgsNDAyNzIsMTk5OTQsMTk5NzIsMTM2ODcsMjMzMDksMjc4MjYsMjEzNTEsMTM5OTYsMTQ4MTIsMjEzNzMsMTM5ODksMTQ5MDE2LDIyNjgyLDE1MDM4MiwzMzMyNSwyMTU3OSwyMjQ0MiwxNTQyNjEsMTMzNDk3LG51bGwsMTQ5MzAsMTQwMzg5LDI5NTU2LDE3MTY5MiwxOTcy''@;'; put 'put ''MSwzOTkxNywxNDY2ODYsMTcxODI0LDE5NTQ3LDE1MTQ2NSwxNjkzNzQsMTcxOTk4LDMzODg0LDE0Njg3MCwxNjA0MzQsMTU3NjE5LDE0NTE4NCwyNTM5MCwzMjAzNywxNDcxOTEsMTQ2OTg4LDE0ODkwLDM2ODcyLDIxMTk2LDE1OTg4LDEzOTQ2LDE3ODk3LDEzMjIzOCwzMDI3MiwyMzI4MCwx''@;'; put 'put ''MzQ4MzgsMzA4NDIsMTYzNjMwLDIyNjk1LDE2NTc1LDIyMTQwLDM5ODE5LDIzOTI0LDMwMjkyLDE3MzEwOCw0MDU4MSwxOTY4MSwzMDIwMSwxNDMzMSwyNDg1NywxNDM1NzgsMTQ4NDY2LG51bGwsMjIxMDksMTM1ODQ5LDIyNDM5LDE0OTg1OSwxNzE1MjYsMjEwNDQsMTU5OTE4LDEzNzQxLDI3''@;'; put 'put ''NzIyLDQwMzE2LDMxODMwLDM5NzM3LDIyNDk0LDEzNzA2OCwyMzYzNSwyNTgxMSwxNjkxNjgsMTU2NDY5LDE2MDEwMCwzNDQ3NywxMzQ0NDAsMTU5MDEwLDE1MDI0MiwxMzQ1MTMsbnVsbCwyMDk5MCwxMzkwMjMsMjM5NTAsMzg2NTksMTM4NzA1LDQwNTc3LDM2OTQwLDMxNTE5LDM5NjgyLDIz''@;'; put 'put ''NzYxLDMxNjUxLDI1MTkyLDI1Mzk3LDM5Njc5LDMxNjk1LDM5NzIyLDMxODcwLDM5NzI2LDMxODEwLDMxODc4LDM5OTU3LDMxNzQwLDM5Njg5LDQwNzI3LDM5OTYzLDE0OTgyMiw0MDc5NCwyMTg3NSwyMzQ5MSwyMDQ3Nyw0MDYwMCwyMDQ2NiwyMTA4OCwxNTg3OCwyMTIwMSwyMjM3NSwyMDU2''@;'; put 'put ''NiwyMjk2NywyNDA4MiwzODg1Niw0MDM2MywzNjcwMCwyMTYwOSwzODgzNiwzOTIzMiwzODg0MiwyMTI5MiwyNDg4MCwyNjkyNCwyMTQ2NiwzOTk0Niw0MDE5NCwxOTUxNSwzODQ2NSwyNzAwOCwyMDY0NiwzMDAyMiwxMzcwNjksMzkzODYsMjExMDcsbnVsbCwzNzIwOSwzODUyOSwzNzIxMixu''@;'; put 'put ''dWxsLDM3MjAxLDE2NzU3NSwyNTQ3MSwxNTkwMTEsMjczMzgsMjIwMzMsMzcyNjIsMzAwNzQsMjUyMjEsMTMyMDkyLDI5NTE5LDMxODU2LDE1NDY1NywxNDY2ODUsbnVsbCwxNDk3ODUsMzA0MjIsMzk4MzcsMjAwMTAsMTM0MzU2LDMzNzI2LDM0ODgyLG51bGwsMjM2MjYsMjcwNzIsMjA3MTcs''@;'; put 'put ''MjIzOTQsMjEwMjMsMjQwNTMsMjAxNzQsMjc2OTcsMTMxNTcwLDIwMjgxLDIxNjYwLDIxNzIyLDIxMTQ2LDM2MjI2LDEzODIyLDI0MzMyLDEzODExLG51bGwsMjc0NzQsMzcyNDQsNDA4NjksMzk4MzEsMzg5NTgsMzkwOTIsMzk2MTAsNDA2MTYsNDA1ODAsMjkwNTAsMzE1MDgsbnVsbCwyNzY0''@;'; put 'put ''MiwzNDg0MCwzMjYzMixudWxsLDIyMDQ4LDE3MzY0MiwzNjQ3MSw0MDc4NyxudWxsLDM2MzA4LDM2NDMxLDQwNDc2LDM2MzUzLDI1MjE4LDE2NDczMywzNjM5MiwzNjQ2OSwzMTQ0MywxNTAxMzUsMzEyOTQsMzA5MzYsMjc4ODIsMzU0MzEsMzAyMTUsMTY2NDkwLDQwNzQyLDI3ODU0LDM0Nzc0''@;'; put 'put ''LDMwMTQ3LDE3MjcyMiwzMDgwMywxOTQ2MjQsMzYxMDgsMjk0MTAsMjk1NTMsMzU2MjksMjk0NDIsMjk5MzcsMzYwNzUsMTUwMjAzLDM0MzUxLDI0NTA2LDM0OTc2LDE3NTkxLG51bGwsMTM3Mjc1LDE1OTIzNyxudWxsLDM1NDU0LDE0MDU3MSxudWxsLDI0ODI5LDMwMzExLDM5NjM5LDQwMjYw''@;'; put 'put ''LDM3NzQyLDM5ODIzLDM0ODA1LG51bGwsMzQ4MzEsMzYwODcsMjk0ODQsMzg2ODksMzk4NTYsMTM3ODIsMjkzNjIsMTk0NjMsMzE4MjUsMzkyNDIsMTU1OTkzLDI0OTIxLDE5NDYwLDQwNTk4LDI0OTU3LG51bGwsMjIzNjcsMjQ5NDMsMjUyNTQsMjUxNDUsMjUyOTQsMTQ5NDAsMjUwNTgsMjE0''@;'; put 'put ''MTgsMTQ0MzczLDI1NDQ0LDI2NjI2LDEzNzc4LDIzODk1LDE2Njg1MCwzNjgyNiwxNjc0ODEsbnVsbCwyMDY5NywxMzg1NjYsMzA5ODIsMjEyOTgsMzg0NTYsMTM0OTcxLDE2NDg1LG51bGwsMzA3MTgsbnVsbCwzMTkzOCwxNTU0MTgsMzE5NjIsMzEyNzcsMzI4NzAsMzI4NjcsMzIwNzcsMjk5''@;'; put 'put ''NTcsMjk5MzgsMzUyMjAsMzMzMDYsMjYzODAsMzI4NjYsMTYwOTAyLDMyODU5LDI5OTM2LDMzMDI3LDMwNTAwLDM1MjA5LDE1NzY0NCwzMDAzNSwxNTk0NDEsMzQ3MjksMzQ3NjYsMzMyMjQsMzQ3MDAsMzU0MDEsMzYwMTMsMzU2NTEsMzA1MDcsMjk5NDQsMzQwMTAsMTM4NzcsMjcwNTgsMzYy''@;'; put 'put ''NjIsbnVsbCwzNTI0MSwyOTgwMCwyODA4OSwzNDc1MywxNDc0NzMsMjk5MjcsMTU4MzUsMjkwNDYsMjQ3NDAsMjQ5ODgsMTU1NjksMjkwMjYsMjQ2OTUsbnVsbCwzMjYyNSwxNjY3MDEsMjkyNjQsMjQ4MDksMTkzMjYsMjEwMjQsMTUzODQsMTQ2NjMxLDE1NTM1MSwxNjEzNjYsMTUyODgxLDEz''@;'; put 'put ''NzU0MCwxMzU5MzQsMTcwMjQzLDE1OTE5NiwxNTk5MTcsMjM3NDUsMTU2MDc3LDE2NjQxNSwxNDUwMTUsMTMxMzEwLDE1Nzc2NiwxNTEzMTAsMTc3NjIsMjMzMjcsMTU2NDkyLDQwNzg0LDQwNjE0LDE1NjI2NywxMjI4OCw2NTI5MiwxMjI4OSwxMjI5MCw2NTI5NCw4MjMxLDY1MzA3LDY1MzA2''@;'; put 'put ''LDY1MzExLDY1MjgxLDY1MDcyLDgyMzAsODIyOSw2NTEwNCw2NTEwNSw2NTEwNiwxODMsNjUxMDgsNjUxMDksNjUxMTAsNjUxMTEsNjUzNzIsODIxMSw2NTA3Myw4MjEyLDY1MDc1LDk1ODgsNjUwNzYsNjUxMDMsNjUyODgsNjUyODksNjUwNzcsNjUwNzgsNjUzNzEsNjUzNzMsNjUwNzksNjUw''@;'; put 'put ''ODAsMTIzMDgsMTIzMDksNjUwODEsNjUwODIsMTIzMDQsMTIzMDUsNjUwODMsNjUwODQsMTIyOTgsMTIyOTksNjUwODUsNjUwODYsMTIyOTYsMTIyOTcsNjUwODcsNjUwODgsMTIzMDAsMTIzMDEsNjUwODksNjUwOTAsMTIzMDIsMTIzMDMsNjUwOTEsNjUwOTIsNjUxMTMsNjUxMTQsNjUxMTUs''@;'; put 'put ''NjUxMTYsNjUxMTcsNjUxMTgsODIxNiw4MjE3LDgyMjAsODIyMSwxMjMxNywxMjMxOCw4MjQ1LDgyNDIsNjUyODMsNjUyODYsNjUyOTAsODI1MSwxNjcsMTIyOTEsOTY3NSw5Njc5LDk2NTEsOTY1MCw5Njc4LDk3MzQsOTczMyw5NjcxLDk2NzAsOTYzMyw5NjMyLDk2NjEsOTY2MCwxMjk2Myw4''@;'; put 'put ''NDUzLDE3NSw2NTUwNyw2NTM0Myw3MTcsNjUwOTcsNjUwOTgsNjUxMDEsNjUxMDIsNjUwOTksNjUxMDAsNjUxMTksNjUxMjAsNjUxMjEsNjUyOTEsNjUyOTMsMjE1LDI0NywxNzcsODczMCw2NTMwOCw2NTMxMCw2NTMwOSw4ODA2LDg4MDcsODgwMCw4NzM0LDg3ODYsODgwMSw2NTEyMiw2NTEy''@;'; put 'put ''Myw2NTEyNCw2NTEyNSw2NTEyNiw2NTM3NCw4NzQ1LDg3NDYsODg2OSw4NzM2LDg3MzUsODg5NSwxMzI2NiwxMzI2NSw4NzQ3LDg3NTAsODc1Nyw4NzU2LDk3OTIsOTc5NCw4ODUzLDg4NTcsODU5Myw4NTk1LDg1OTIsODU5NCw4NTk4LDg1OTksODYwMSw4NjAwLDg3NDEsODczOSw2NTI5NSw2''@;'; put 'put ''NTM0MCw4NzI1LDY1MTI4LDY1Mjg0LDY1NTA5LDEyMzA2LDY1NTA0LDY1NTA1LDY1Mjg1LDY1MzEyLDg0NTEsODQ1Nyw2NTEyOSw2NTEzMCw2NTEzMSwxMzI2OSwxMzIxMiwxMzIxMywxMzIxNCwxMzI2MiwxMzIxNywxMzE5OCwxMzE5OSwxMzI1MiwxNzYsMjA4MjUsMjA4MjcsMjA4MzAsMjA4''@;'; put 'put ''MjksMjA4MzMsMjA4MzUsMjE5OTEsMjk5MjksMzE5NTAsOTYwMSw5NjAyLDk2MDMsOTYwNCw5NjA1LDk2MDYsOTYwNyw5NjA4LDk2MTUsOTYxNCw5NjEzLDk2MTIsOTYxMSw5NjEwLDk2MDksOTUzMiw5NTI0LDk1MTYsOTUwOCw5NTAwLDk2MjAsOTQ3Miw5NDc0LDk2MjEsOTQ4NCw5NDg4LDk0''@;'; put 'put ''OTIsOTQ5Niw5NTgxLDk1ODIsOTU4NCw5NTgzLDk1NTIsOTU2Niw5NTc4LDk1NjksOTY5OCw5Njk5LDk3MDEsOTcwMCw5NTg1LDk1ODYsOTU4Nyw2NTI5Niw2NTI5Nyw2NTI5OCw2NTI5OSw2NTMwMCw2NTMwMSw2NTMwMiw2NTMwMyw2NTMwNCw2NTMwNSw4NTQ0LDg1NDUsODU0Niw4NTQ3LDg1''@;'; put 'put ''NDgsODU0OSw4NTUwLDg1NTEsODU1Miw4NTUzLDEyMzIxLDEyMzIyLDEyMzIzLDEyMzI0LDEyMzI1LDEyMzI2LDEyMzI3LDEyMzI4LDEyMzI5LDIxMzEzLDIxMzE2LDIxMzE3LDY1MzEzLDY1MzE0LDY1MzE1LDY1MzE2LDY1MzE3LDY1MzE4LDY1MzE5LDY1MzIwLDY1MzIxLDY1MzIyLDY1MzIz''@;'; put 'put ''LDY1MzI0LDY1MzI1LDY1MzI2LDY1MzI3LDY1MzI4LDY1MzI5LDY1MzMwLDY1MzMxLDY1MzMyLDY1MzMzLDY1MzM0LDY1MzM1LDY1MzM2LDY1MzM3LDY1MzM4LDY1MzQ1LDY1MzQ2LDY1MzQ3LDY1MzQ4LDY1MzQ5LDY1MzUwLDY1MzUxLDY1MzUyLDY1MzUzLDY1MzU0LDY1MzU1LDY1MzU2LDY1''@;'; put 'put ''MzU3LDY1MzU4LDY1MzU5LDY1MzYwLDY1MzYxLDY1MzYyLDY1MzYzLDY1MzY0LDY1MzY1LDY1MzY2LDY1MzY3LDY1MzY4LDY1MzY5LDY1MzcwLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0''@;'; put 'put ''LDkzNSw5MzYsOTM3LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDEyNTQ5LDEyNTUwLDEyNTUxLDEyNTUyLDEyNTUzLDEyNTU0LDEyNTU1LDEyNTU2LDEyNTU3LDEy''@;'; put 'put ''NTU4LDEyNTU5LDEyNTYwLDEyNTYxLDEyNTYyLDEyNTYzLDEyNTY0LDEyNTY1LDEyNTY2LDEyNTY3LDEyNTY4LDEyNTY5LDEyNTcwLDEyNTcxLDEyNTcyLDEyNTczLDEyNTc0LDEyNTc1LDEyNTc2LDEyNTc3LDEyNTc4LDEyNTc5LDEyNTgwLDEyNTgxLDEyNTgyLDEyNTgzLDEyNTg0LDEyNTg1''@;'; put 'put ''LDcyOSw3MTMsNzE0LDcxMSw3MTUsOTIxNiw5MjE3LDkyMTgsOTIxOSw5MjIwLDkyMjEsOTIyMiw5MjIzLDkyMjQsOTIyNSw5MjI2LDkyMjcsOTIyOCw5MjI5LDkyMzAsOTIzMSw5MjMyLDkyMzMsOTIzNCw5MjM1LDkyMzYsOTIzNyw5MjM4LDkyMzksOTI0MCw5MjQxLDkyNDIsOTI0Myw5MjQ0''@;'; put 'put ''LDkyNDUsOTI0Niw5MjQ3LDkyNDksODM2NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsMTk5NjgsMjAwNTcsMTk5NjksMTk5NzEsMjAwMzUsMjAwNjEsMjAxMDIsMjAxMDgsMjAxNTQsMjA3OTksMjA4MzcsMjA4NDMsMjA5NjAsMjA5OTIsMjA5OTMsMjExNDcsMjEyNjksMjEzMTMsMjEzNDAsMjE0NDgsMTk5NzcsMTk5NzksMTk5NzYsMTk5NzgsMjAwMTEsMjAwMjQsMjA5''@;'; put 'put ''NjEsMjAwMzcsMjAwNDAsMjAwNjMsMjAwNjIsMjAxMTAsMjAxMjksMjA4MDAsMjA5OTUsMjEyNDIsMjEzMTUsMjE0NDksMjE0NzUsMjIzMDMsMjI3NjMsMjI4MDUsMjI4MjMsMjI4OTksMjMzNzYsMjMzNzcsMjMzNzksMjM1NDQsMjM1NjcsMjM1ODYsMjM2MDgsMjM2NjUsMjQwMjksMjQwMzcs''@;'; put 'put ''MjQwNDksMjQwNTAsMjQwNTEsMjQwNjIsMjQxNzgsMjQzMTgsMjQzMzEsMjQzMzksMjUxNjUsMTk5ODUsMTk5ODQsMTk5ODEsMjAwMTMsMjAwMTYsMjAwMjUsMjAwNDMsMjM2MDksMjAxMDQsMjAxMTMsMjAxMTcsMjAxMTQsMjAxMTYsMjAxMzAsMjAxNjEsMjAxNjAsMjAxNjMsMjAxNjYsMjAx''@;'; put 'put ''NjcsMjAxNzMsMjAxNzAsMjAxNzEsMjAxNjQsMjA4MDMsMjA4MDEsMjA4MzksMjA4NDUsMjA4NDYsMjA4NDQsMjA4ODcsMjA5ODIsMjA5OTgsMjA5OTksMjFlMywyMTI0MywyMTI0NiwyMTI0NywyMTI3MCwyMTMwNSwyMTMyMCwyMTMxOSwyMTMxNywyMTM0MiwyMTM4MCwyMTQ1MSwyMTQ1MCwy''@;'; put 'put ''MTQ1MywyMjc2NCwyMjgyNSwyMjgyNywyMjgyNiwyMjgyOSwyMzM4MCwyMzU2OSwyMzU4OCwyMzYxMCwyMzY2MywyNDA1MiwyNDE4NywyNDMxOSwyNDM0MCwyNDM0MSwyNDUxNSwyNTA5NiwyNTE0MiwyNTE2MywyNTE2NiwyNTkwMywyNTk5MSwyNjAwNywyNjAyMCwyNjA0MSwyNjA4NSwyNjM1''@;'; put 'put ''MiwyNjM3NiwyNjQwOCwyNzQyNCwyNzQ5MCwyNzUxMywyNzU5NSwyNzYwNCwyNzYxMSwyNzY2MywyNzcwMCwyODc3OSwyOTIyNiwyOTIzOCwyOTI0MywyOTI1NSwyOTI3MywyOTI3NSwyOTM1NiwyOTU3OSwxOTk5MywxOTk5MCwxOTk4OSwxOTk4OCwxOTk5MiwyMDAyNywyMDA0NSwyMDA0Nywy''@;'; put 'put ''MDA0NiwyMDE5NywyMDE4NCwyMDE4MCwyMDE4MSwyMDE4MiwyMDE4MywyMDE5NSwyMDE5NiwyMDE4NSwyMDE5MCwyMDgwNSwyMDgwNCwyMDg3MywyMDg3NCwyMDkwOCwyMDk4NSwyMDk4NiwyMDk4NCwyMTAwMiwyMTE1MiwyMTE1MSwyMTI1MywyMTI1NCwyMTI3MSwyMTI3NywyMDE5MSwyMTMy''@;'; put 'put ''MiwyMTMyMSwyMTM0NSwyMTM0NCwyMTM1OSwyMTM1OCwyMTQzNSwyMTQ4NywyMTQ3NiwyMTQ5MSwyMTQ4NCwyMTQ4NiwyMTQ4MSwyMTQ4MCwyMTUwMCwyMTQ5NiwyMTQ5MywyMTQ4MywyMTQ3OCwyMTQ4MiwyMTQ5MCwyMTQ4OSwyMTQ4OCwyMTQ3NywyMTQ4NSwyMTQ5OSwyMjIzNSwyMjIzNCwy''@;'; put 'put ''MjgwNiwyMjgzMCwyMjgzMywyMjkwMCwyMjkwMiwyMzM4MSwyMzQyNywyMzYxMiwyNDA0MCwyNDAzOSwyNDAzOCwyNDA2NiwyNDA2NywyNDE3OSwyNDE4OCwyNDMyMSwyNDM0NCwyNDM0MywyNDUxNywyNTA5OCwyNTE3MSwyNTE3MiwyNTE3MCwyNTE2OSwyNjAyMSwyNjA4NiwyNjQxNCwyNjQx''@;'; put 'put ''MiwyNjQxMCwyNjQxMSwyNjQxMywyNzQ5MSwyNzU5NywyNzY2NSwyNzY2NCwyNzcwNCwyNzcxMywyNzcxMiwyNzcxMCwyOTM1OSwyOTU3MiwyOTU3NywyOTkxNiwyOTkyNiwyOTk3NiwyOTk4MywyOTk5MiwyOTk5MywzZTQsMzAwMDEsMzAwMDIsMzAwMDMsMzAwOTEsMzAzMzMsMzAzODIsMzAz''@;'; put 'put ''OTksMzA0NDYsMzA2ODMsMzA2OTAsMzA3MDcsMzEwMzQsMzExNjYsMzEzNDgsMzE0MzUsMTk5OTgsMTk5OTksMjAwNTAsMjAwNTEsMjAwNzMsMjAxMjEsMjAxMzIsMjAxMzQsMjAxMzMsMjAyMjMsMjAyMzMsMjAyNDksMjAyMzQsMjAyNDUsMjAyMzcsMjAyNDAsMjAyNDEsMjAyMzksMjAyMTAs''@;'; put 'put ''MjAyMTQsMjAyMTksMjAyMDgsMjAyMTEsMjAyMjEsMjAyMjUsMjAyMzUsMjA4MDksMjA4MDcsMjA4MDYsMjA4MDgsMjA4NDAsMjA4NDksMjA4NzcsMjA5MTIsMjEwMTUsMjEwMDksMjEwMTAsMjEwMDYsMjEwMTQsMjExNTUsMjEyNTYsMjEyODEsMjEyODAsMjEzNjAsMjEzNjEsMjE1MTMsMjE1''@;'; put 'put ''MTksMjE1MTYsMjE1MTQsMjE1MjAsMjE1MDUsMjE1MTUsMjE1MDgsMjE1MjEsMjE1MTcsMjE1MTIsMjE1MDcsMjE1MTgsMjE1MTAsMjE1MjIsMjIyNDAsMjIyMzgsMjIyMzcsMjIzMjMsMjIzMjAsMjIzMTIsMjIzMTcsMjIzMTYsMjIzMTksMjIzMTMsMjI4MDksMjI4MTAsMjI4MzksMjI4NDAs''@;'; put 'put ''MjI5MTYsMjI5MDQsMjI5MTUsMjI5MDksMjI5MDUsMjI5MTQsMjI5MTMsMjMzODMsMjMzODQsMjM0MzEsMjM0MzIsMjM0MjksMjM0MzMsMjM1NDYsMjM1NzQsMjM2NzMsMjQwMzAsMjQwNzAsMjQxODIsMjQxODAsMjQzMzUsMjQzNDcsMjQ1MzcsMjQ1MzQsMjUxMDIsMjUxMDAsMjUxMDEsMjUx''@;'; put 'put ''MDQsMjUxODcsMjUxNzksMjUxNzYsMjU5MTAsMjYwODksMjYwODgsMjYwOTIsMjYwOTMsMjYzNTQsMjYzNTUsMjYzNzcsMjY0MjksMjY0MjAsMjY0MTcsMjY0MjEsMjc0MjUsMjc0OTIsMjc1MTUsMjc2NzAsMjc3NDEsMjc3MzUsMjc3MzcsMjc3NDMsMjc3NDQsMjc3MjgsMjc3MzMsMjc3NDUs''@;'; put 'put ''Mjc3MzksMjc3MjUsMjc3MjYsMjg3ODQsMjkyNzksMjkyNzcsMzAzMzQsMzE0ODEsMzE4NTksMzE5OTIsMzI1NjYsMzI2NTAsMzI3MDEsMzI3NjksMzI3NzEsMzI3ODAsMzI3ODYsMzI4MTksMzI4OTUsMzI5MDUsMzI5MDcsMzI5MDgsMzMyNTEsMzMyNTgsMzMyNjcsMzMyNzYsMzMyOTIsMzMz''@;'; put 'put ''MDcsMzMzMTEsMzMzOTAsMzMzOTQsMzM0MDYsMzQ0MTEsMzQ4ODAsMzQ4OTIsMzQ5MTUsMzUxOTksMzg0MzMsMjAwMTgsMjAxMzYsMjAzMDEsMjAzMDMsMjAyOTUsMjAzMTEsMjAzMTgsMjAyNzYsMjAzMTUsMjAzMDksMjAyNzIsMjAzMDQsMjAzMDUsMjAyODUsMjAyODIsMjAyODAsMjAyOTEs''@;'; put 'put ''MjAzMDgsMjAyODQsMjAyOTQsMjAzMjMsMjAzMTYsMjAzMjAsMjAyNzEsMjAzMDIsMjAyNzgsMjAzMTMsMjAzMTcsMjAyOTYsMjAzMTQsMjA4MTIsMjA4MTEsMjA4MTMsMjA4NTMsMjA5MTgsMjA5MTksMjEwMjksMjEwMjgsMjEwMzMsMjEwMzQsMjEwMzIsMjExNjMsMjExNjEsMjExNjIsMjEx''@;'; put 'put ''NjQsMjEyODMsMjEzNjMsMjEzNjUsMjE1MzMsMjE1NDksMjE1MzQsMjE1NjYsMjE1NDIsMjE1ODIsMjE1NDMsMjE1NzQsMjE1NzEsMjE1NTUsMjE1NzYsMjE1NzAsMjE1MzEsMjE1NDUsMjE1NzgsMjE1NjEsMjE1NjMsMjE1NjAsMjE1NTAsMjE1NTcsMjE1NTgsMjE1MzYsMjE1NjQsMjE1Njgs''@;'; put 'put ''MjE1NTMsMjE1NDcsMjE1MzUsMjE1NDgsMjIyNTAsMjIyNTYsMjIyNDQsMjIyNTEsMjIzNDYsMjIzNTMsMjIzMzYsMjIzNDksMjIzNDMsMjIzNTAsMjIzMzQsMjIzNTIsMjIzNTEsMjIzMzEsMjI3NjcsMjI4NDYsMjI5NDEsMjI5MzAsMjI5NTIsMjI5NDIsMjI5NDcsMjI5MzcsMjI5MzQsMjI5''@;'; put 'put ''MjUsMjI5NDgsMjI5MzEsMjI5MjIsMjI5NDksMjMzODksMjMzODgsMjMzODYsMjMzODcsMjM0MzYsMjM0MzUsMjM0MzksMjM1OTYsMjM2MTYsMjM2MTcsMjM2MTUsMjM2MTQsMjM2OTYsMjM2OTcsMjM3MDAsMjM2OTIsMjQwNDMsMjQwNzYsMjQyMDcsMjQxOTksMjQyMDIsMjQzMTEsMjQzMjQs''@;'; put 'put ''MjQzNTEsMjQ0MjAsMjQ0MTgsMjQ0MzksMjQ0NDEsMjQ1MzYsMjQ1MjQsMjQ1MzUsMjQ1MjUsMjQ1NjEsMjQ1NTUsMjQ1NjgsMjQ1NTQsMjUxMDYsMjUxMDUsMjUyMjAsMjUyMzksMjUyMzgsMjUyMTYsMjUyMDYsMjUyMjUsMjUxOTcsMjUyMjYsMjUyMTIsMjUyMTQsMjUyMDksMjUyMDMsMjUy''@;'; put 'put ''MzQsMjUxOTksMjUyNDAsMjUxOTgsMjUyMzcsMjUyMzUsMjUyMzMsMjUyMjIsMjU5MTMsMjU5MTUsMjU5MTIsMjYwOTcsMjYzNTYsMjY0NjMsMjY0NDYsMjY0NDcsMjY0NDgsMjY0NDksMjY0NjAsMjY0NTQsMjY0NjIsMjY0NDEsMjY0MzgsMjY0NjQsMjY0NTEsMjY0NTUsMjc0OTMsMjc1OTks''@;'; put 'put ''Mjc3MTQsMjc3NDIsMjc4MDEsMjc3NzcsMjc3ODQsMjc3ODUsMjc3ODEsMjc4MDMsMjc3NTQsMjc3NzAsMjc3OTIsMjc3NjAsMjc3ODgsMjc3NTIsMjc3OTgsMjc3OTQsMjc3NzMsMjc3NzksMjc3NjIsMjc3NzQsMjc3NjQsMjc3ODIsMjc3NjYsMjc3ODksMjc3OTYsMjc4MDAsMjc3NzgsMjg3''@;'; put 'put ''OTAsMjg3OTYsMjg3OTcsMjg3OTIsMjkyODIsMjkyODEsMjkyODAsMjkzODAsMjkzNzgsMjk1OTAsMjk5OTYsMjk5OTUsMzAwMDcsMzAwMDgsMzAzMzgsMzA0NDcsMzA2OTEsMzExNjksMzExNjgsMzExNjcsMzEzNTAsMzE5OTUsMzI1OTcsMzI5MTgsMzI5MTUsMzI5MjUsMzI5MjAsMzI5MjMs''@;'; put 'put ''MzI5MjIsMzI5NDYsMzMzOTEsMzM0MjYsMzM0MTksMzM0MjEsMzUyMTEsMzUyODIsMzUzMjgsMzU4OTUsMzU5MTAsMzU5MjUsMzU5OTcsMzYxOTYsMzYyMDgsMzYyNzUsMzY1MjMsMzY1NTQsMzY3NjMsMzY3ODQsMzY4MDIsMzY4MDYsMzY4MDUsMzY4MDQsMjQwMzMsMzcwMDksMzcwMjYsMzcw''@;'; put 'put ''MzQsMzcwMzAsMzcwMjcsMzcxOTMsMzczMTgsMzczMjQsMzg0NTAsMzg0NDYsMzg0NDksMzg0NDIsMzg0NDQsMjAwMDYsMjAwNTQsMjAwODMsMjAxMDcsMjAxMjMsMjAxMjYsMjAxMzksMjAxNDAsMjAzMzUsMjAzODEsMjAzNjUsMjAzMzksMjAzNTEsMjAzMzIsMjAzNzksMjAzNjMsMjAzNTgs''@;'; put 'put ''MjAzNTUsMjAzMzYsMjAzNDEsMjAzNjAsMjAzMjksMjAzNDcsMjAzNzQsMjAzNTAsMjAzNjcsMjAzNjksMjAzNDYsMjA4MjAsMjA4MTgsMjA4MjEsMjA4NDEsMjA4NTUsMjA4NTQsMjA4NTYsMjA5MjUsMjA5ODksMjEwNTEsMjEwNDgsMjEwNDcsMjEwNTAsMjEwNDAsMjEwMzgsMjEwNDYsMjEw''@;'; put 'put ''NTcsMjExODIsMjExNzksMjEzMzAsMjEzMzIsMjEzMzEsMjEzMjksMjEzNTAsMjEzNjcsMjEzNjgsMjEzNjksMjE0NjIsMjE0NjAsMjE0NjMsMjE2MTksMjE2MjEsMjE2NTQsMjE2MjQsMjE2NTMsMjE2MzIsMjE2MjcsMjE2MjMsMjE2MzYsMjE2NTAsMjE2MzgsMjE2MjgsMjE2NDgsMjE2MTcs''@;'; put 'put ''MjE2MjIsMjE2NDQsMjE2NTgsMjE2MDIsMjE2MDgsMjE2NDMsMjE2MjksMjE2NDYsMjIyNjYsMjI0MDMsMjIzOTEsMjIzNzgsMjIzNzcsMjIzNjksMjIzNzQsMjIzNzIsMjIzOTYsMjI4MTIsMjI4NTcsMjI4NTUsMjI4NTYsMjI4NTIsMjI4NjgsMjI5NzQsMjI5NzEsMjI5OTYsMjI5NjksMjI5''@;'; put 'put ''NTgsMjI5OTMsMjI5ODIsMjI5OTIsMjI5ODksMjI5ODcsMjI5OTUsMjI5ODYsMjI5NTksMjI5NjMsMjI5OTQsMjI5ODEsMjMzOTEsMjMzOTYsMjMzOTUsMjM0NDcsMjM0NTAsMjM0NDgsMjM0NTIsMjM0NDksMjM0NTEsMjM1NzgsMjM2MjQsMjM2MjEsMjM2MjIsMjM3MzUsMjM3MTMsMjM3MzYs''@;'; put 'put ''MjM3MjEsMjM3MjMsMjM3MjksMjM3MzEsMjQwODgsMjQwOTAsMjQwODYsMjQwODUsMjQwOTEsMjQwODEsMjQxODQsMjQyMTgsMjQyMTUsMjQyMjAsMjQyMTMsMjQyMTQsMjQzMTAsMjQzNTgsMjQzNTksMjQzNjEsMjQ0NDgsMjQ0NDksMjQ0NDcsMjQ0NDQsMjQ1NDEsMjQ1NDQsMjQ1NzMsMjQ1''@;'; put 'put ''NjUsMjQ1NzUsMjQ1OTEsMjQ1OTYsMjQ2MjMsMjQ2MjksMjQ1OTgsMjQ2MTgsMjQ1OTcsMjQ2MDksMjQ2MTUsMjQ2MTcsMjQ2MTksMjQ2MDMsMjUxMTAsMjUxMDksMjUxNTEsMjUxNTAsMjUxNTIsMjUyMTUsMjUyODksMjUyOTIsMjUyODQsMjUyNzksMjUyODIsMjUyNzMsMjUyOTgsMjUzMDcs''@;'; put 'put ''MjUyNTksMjUyOTksMjUzMDAsMjUyOTEsMjUyODgsMjUyNTYsMjUyNzcsMjUyNzYsMjUyOTYsMjUzMDUsMjUyODcsMjUyOTMsMjUyNjksMjUzMDYsMjUyNjUsMjUzMDQsMjUzMDIsMjUzMDMsMjUyODYsMjUyNjAsMjUyOTQsMjU5MTgsMjYwMjMsMjYwNDQsMjYxMDYsMjYxMzIsMjYxMzEsMjYx''@;'; put 'put ''MjQsMjYxMTgsMjYxMTQsMjYxMjYsMjYxMTIsMjYxMjcsMjYxMzMsMjYxMjIsMjYxMTksMjYzODEsMjYzNzksMjY0NzcsMjY1MDcsMjY1MTcsMjY0ODEsMjY1MjQsMjY0ODMsMjY0ODcsMjY1MDMsMjY1MjUsMjY1MTksMjY0NzksMjY0ODAsMjY0OTUsMjY1MDUsMjY0OTQsMjY1MTIsMjY0ODUs''@;'; put 'put ''MjY1MjIsMjY1MTUsMjY0OTIsMjY0NzQsMjY0ODIsMjc0MjcsMjc0OTQsMjc0OTUsMjc1MTksMjc2NjcsMjc2NzUsMjc4NzUsMjc4ODAsMjc4OTEsMjc4MjUsMjc4NTIsMjc4NzcsMjc4MjcsMjc4MzcsMjc4MzgsMjc4MzYsMjc4NzQsMjc4MTksMjc4NjEsMjc4NTksMjc4MzIsMjc4NDQsMjc4''@;'; put 'put ''MzMsMjc4NDEsMjc4MjIsMjc4NjMsMjc4NDUsMjc4ODksMjc4MzksMjc4MzUsMjc4NzMsMjc4NjcsMjc4NTAsMjc4MjAsMjc4ODcsMjc4NjgsMjc4NjIsMjc4NzIsMjg4MjEsMjg4MTQsMjg4MTgsMjg4MTAsMjg4MjUsMjkyMjgsMjkyMjksMjkyNDAsMjkyNTYsMjkyODcsMjkyODksMjkzNzYs''@;'; put 'put ''MjkzOTAsMjk0MDEsMjkzOTksMjkzOTIsMjk2MDksMjk2MDgsMjk1OTksMjk2MTEsMjk2MDUsMzAwMTMsMzAxMDksMzAxMDUsMzAxMDYsMzAzNDAsMzA0MDIsMzA0NTAsMzA0NTIsMzA2OTMsMzA3MTcsMzEwMzgsMzEwNDAsMzEwNDEsMzExNzcsMzExNzYsMzEzNTQsMzEzNTMsMzE0ODIsMzE5''@;'; put 'put ''OTgsMzI1OTYsMzI2NTIsMzI2NTEsMzI3NzMsMzI5NTQsMzI5MzMsMzI5MzAsMzI5NDUsMzI5MjksMzI5MzksMzI5MzcsMzI5NDgsMzI5MzgsMzI5NDMsMzMyNTMsMzMyNzgsMzMyOTMsMzM0NTksMzM0MzcsMzM0MzMsMzM0NTMsMzM0NjksMzM0MzksMzM0NjUsMzM0NTcsMzM0NTIsMzM0NDUs''@;'; put 'put ''MzM0NTUsMzM0NjQsMzM0NDMsMzM0NTYsMzM0NzAsMzM0NjMsMzQzODIsMzQ0MTcsMjEwMjEsMzQ5MjAsMzY1NTUsMzY4MTQsMzY4MjAsMzY4MTcsMzcwNDUsMzcwNDgsMzcwNDEsMzcwNDYsMzczMTksMzczMjksMzgyNjMsMzgyNzIsMzg0MjgsMzg0NjQsMzg0NjMsMzg0NTksMzg0NjgsMzg0''@;'; put 'put ''NjYsMzg1ODUsMzg2MzIsMzg3MzgsMzg3NTAsMjAxMjcsMjAxNDEsMjAxNDIsMjA0NDksMjA0MDUsMjAzOTksMjA0MTUsMjA0NDgsMjA0MzMsMjA0MzEsMjA0NDUsMjA0MTksMjA0MDYsMjA0NDAsMjA0NDcsMjA0MjYsMjA0MzksMjAzOTgsMjA0MzIsMjA0MjAsMjA0MTgsMjA0NDIsMjA0MzAs''@;'; put 'put ''MjA0NDYsMjA0MDcsMjA4MjMsMjA4ODIsMjA4ODEsMjA4OTYsMjEwNzAsMjEwNTksMjEwNjYsMjEwNjksMjEwNjgsMjEwNjcsMjEwNjMsMjExOTEsMjExOTMsMjExODcsMjExODUsMjEyNjEsMjEzMzUsMjEzNzEsMjE0MDIsMjE0NjcsMjE2NzYsMjE2OTYsMjE2NzIsMjE3MTAsMjE3MDUsMjE2''@;'; put 'put ''ODgsMjE2NzAsMjE2ODMsMjE3MDMsMjE2OTgsMjE2OTMsMjE2NzQsMjE2OTcsMjE3MDAsMjE3MDQsMjE2NzksMjE2NzUsMjE2ODEsMjE2OTEsMjE2NzMsMjE2NzEsMjE2OTUsMjIyNzEsMjI0MDIsMjI0MTEsMjI0MzIsMjI0MzUsMjI0MzQsMjI0NzgsMjI0NDYsMjI0MTksMjI4NjksMjI4NjUs''@;'; put 'put ''MjI4NjMsMjI4NjIsMjI4NjQsMjMwMDQsMjNlMywyMzAzOSwyMzAxMSwyMzAxNiwyMzA0MywyMzAxMywyMzAxOCwyMzAwMiwyMzAxNCwyMzA0MSwyMzAzNSwyMzQwMSwyMzQ1OSwyMzQ2MiwyMzQ2MCwyMzQ1OCwyMzQ2MSwyMzU1MywyMzYzMCwyMzYzMSwyMzYyOSwyMzYyNywyMzc2OSwyMzc2''@;'; put 'put ''MiwyNDA1NSwyNDA5MywyNDEwMSwyNDA5NSwyNDE4OSwyNDIyNCwyNDIzMCwyNDMxNCwyNDMyOCwyNDM2NSwyNDQyMSwyNDQ1NiwyNDQ1MywyNDQ1OCwyNDQ1OSwyNDQ1NSwyNDQ2MCwyNDQ1NywyNDU5NCwyNDYwNSwyNDYwOCwyNDYxMywyNDU5MCwyNDYxNiwyNDY1MywyNDY4OCwyNDY4MCwy''@;'; put 'put ''NDY3NCwyNDY0NiwyNDY0MywyNDY4NCwyNDY4MywyNDY4MiwyNDY3NiwyNTE1MywyNTMwOCwyNTM2NiwyNTM1MywyNTM0MCwyNTMyNSwyNTM0NSwyNTMyNiwyNTM0MSwyNTM1MSwyNTMyOSwyNTMzNSwyNTMyNywyNTMyNCwyNTM0MiwyNTMzMiwyNTM2MSwyNTM0NiwyNTkxOSwyNTkyNSwyNjAy''@;'; put 'put ''NywyNjA0NSwyNjA4MiwyNjE0OSwyNjE1NywyNjE0NCwyNjE1MSwyNjE1OSwyNjE0MywyNjE1MiwyNjE2MSwyNjE0OCwyNjM1OSwyNjYyMywyNjU3OSwyNjYwOSwyNjU4MCwyNjU3NiwyNjYwNCwyNjU1MCwyNjU0MywyNjYxMywyNjYwMSwyNjYwNywyNjU2NCwyNjU3NywyNjU0OCwyNjU4Niwy''@;'; put 'put ''NjU5NywyNjU1MiwyNjU3NSwyNjU5MCwyNjYxMSwyNjU0NCwyNjU4NSwyNjU5NCwyNjU4OSwyNjU3OCwyNzQ5OCwyNzUyMywyNzUyNiwyNzU3MywyNzYwMiwyNzYwNywyNzY3OSwyNzg0OSwyNzkxNSwyNzk1NCwyNzk0NiwyNzk2OSwyNzk0MSwyNzkxNiwyNzk1MywyNzkzNCwyNzkyNywyNzk2''@;'; put 'put ''MywyNzk2NSwyNzk2NiwyNzk1OCwyNzkzMSwyNzg5MywyNzk2MSwyNzk0MywyNzk2MCwyNzk0NSwyNzk1MCwyNzk1NywyNzkxOCwyNzk0NywyODg0MywyODg1OCwyODg1MSwyODg0NCwyODg0NywyODg0NSwyODg1NiwyODg0NiwyODgzNiwyOTIzMiwyOTI5OCwyOTI5NSwyOTMwMCwyOTQxNywy''@;'; put 'put ''OTQwOCwyOTQwOSwyOTYyMywyOTY0MiwyOTYyNywyOTYxOCwyOTY0NSwyOTYzMiwyOTYxOSwyOTk3OCwyOTk5NywzMDAzMSwzMDAyOCwzMDAzMCwzMDAyNywzMDEyMywzMDExNiwzMDExNywzMDExNCwzMDExNSwzMDMyOCwzMDM0MiwzMDM0MywzMDM0NCwzMDQwOCwzMDQwNiwzMDQwMywzMDQw''@;'; put 'put ''NSwzMDQ2NSwzMDQ1NywzMDQ1NiwzMDQ3MywzMDQ3NSwzMDQ2MiwzMDQ2MCwzMDQ3MSwzMDY4NCwzMDcyMiwzMDc0MCwzMDczMiwzMDczMywzMTA0NiwzMTA0OSwzMTA0OCwzMTA0NywzMTE2MSwzMTE2MiwzMTE4NSwzMTE4NiwzMTE3OSwzMTM1OSwzMTM2MSwzMTQ4NywzMTQ4NSwzMTg2OSwz''@;'; put 'put ''MjAwMiwzMjAwNSwzMmUzLDMyMDA5LDMyMDA3LDMyMDA0LDMyMDA2LDMyNTY4LDMyNjU0LDMyNzAzLDMyNzcyLDMyNzg0LDMyNzgxLDMyNzg1LDMyODIyLDMyOTgyLDMyOTk3LDMyOTg2LDMyOTYzLDMyOTY0LDMyOTcyLDMyOTkzLDMyOTg3LDMyOTc0LDMyOTkwLDMyOTk2LDMyOTg5LDMzMjY4''@;'; put 'put ''LDMzMzE0LDMzNTExLDMzNTM5LDMzNTQxLDMzNTA3LDMzNDk5LDMzNTEwLDMzNTQwLDMzNTA5LDMzNTM4LDMzNTQ1LDMzNDkwLDMzNDk1LDMzNTIxLDMzNTM3LDMzNTAwLDMzNDkyLDMzNDg5LDMzNTAyLDMzNDkxLDMzNTAzLDMzNTE5LDMzNTQyLDM0Mzg0LDM0NDI1LDM0NDI3LDM0NDI2LDM0''@;'; put 'put ''ODkzLDM0OTIzLDM1MjAxLDM1Mjg0LDM1MzM2LDM1MzMwLDM1MzMxLDM1OTk4LDM2ZTMsMzYyMTIsMzYyMTEsMzYyNzYsMzY1NTcsMzY1NTYsMzY4NDgsMzY4MzgsMzY4MzQsMzY4NDIsMzY4MzcsMzY4NDUsMzY4NDMsMzY4MzYsMzY4NDAsMzcwNjYsMzcwNzAsMzcwNTcsMzcwNTksMzcxOTUs''@;'; put 'put ''MzcxOTQsMzczMjUsMzgyNzQsMzg0ODAsMzg0NzUsMzg0NzYsMzg0NzcsMzg3NTQsMzg3NjEsMzg4NTksMzg4OTMsMzg4OTksMzg5MTMsMzkwODAsMzkxMzEsMzkxMzUsMzkzMTgsMzkzMjEsMjAwNTYsMjAxNDcsMjA0OTIsMjA0OTMsMjA1MTUsMjA0NjMsMjA1MTgsMjA1MTcsMjA0NzIsMjA1''@;'; put 'put ''MjEsMjA1MDIsMjA0ODYsMjA1NDAsMjA1MTEsMjA1MDYsMjA0OTgsMjA0OTcsMjA0NzQsMjA0ODAsMjA1MDAsMjA1MjAsMjA0NjUsMjA1MTMsMjA0OTEsMjA1MDUsMjA1MDQsMjA0NjcsMjA0NjIsMjA1MjUsMjA1MjIsMjA0NzgsMjA1MjMsMjA0ODksMjA4NjAsMjA5MDAsMjA5MDEsMjA4OTgs''@;'; put 'put ''MjA5NDEsMjA5NDAsMjA5MzQsMjA5MzksMjEwNzgsMjEwODQsMjEwNzYsMjEwODMsMjEwODUsMjEyOTAsMjEzNzUsMjE0MDcsMjE0MDUsMjE0NzEsMjE3MzYsMjE3NzYsMjE3NjEsMjE4MTUsMjE3NTYsMjE3MzMsMjE3NDYsMjE3NjYsMjE3NTQsMjE3ODAsMjE3MzcsMjE3NDEsMjE3MjksMjE3''@;'; put 'put ''NjksMjE3NDIsMjE3MzgsMjE3MzQsMjE3OTksMjE3NjcsMjE3NTcsMjE3NzUsMjIyNzUsMjIyNzYsMjI0NjYsMjI0ODQsMjI0NzUsMjI0NjcsMjI1MzcsMjI3OTksMjI4NzEsMjI4NzIsMjI4NzQsMjMwNTcsMjMwNjQsMjMwNjgsMjMwNzEsMjMwNjcsMjMwNTksMjMwMjAsMjMwNzIsMjMwNzUs''@;'; put 'put ''MjMwODEsMjMwNzcsMjMwNTIsMjMwNDksMjM0MDMsMjM2NDAsMjM0NzIsMjM0NzUsMjM0NzgsMjM0NzYsMjM0NzAsMjM0NzcsMjM0ODEsMjM0ODAsMjM1NTYsMjM2MzMsMjM2MzcsMjM2MzIsMjM3ODksMjM4MDUsMjM4MDMsMjM3ODYsMjM3ODQsMjM3OTIsMjM3OTgsMjM4MDksMjM3OTYsMjQw''@;'; put 'put ''NDYsMjQxMDksMjQxMDcsMjQyMzUsMjQyMzcsMjQyMzEsMjQzNjksMjQ0NjYsMjQ0NjUsMjQ0NjQsMjQ2NjUsMjQ2NzUsMjQ2NzcsMjQ2NTYsMjQ2NjEsMjQ2ODUsMjQ2ODEsMjQ2ODcsMjQ3MDgsMjQ3MzUsMjQ3MzAsMjQ3MTcsMjQ3MjQsMjQ3MTYsMjQ3MDksMjQ3MjYsMjUxNTksMjUzMzEs''@;'; put 'put ''MjUzNTIsMjUzNDMsMjU0MjIsMjU0MDYsMjUzOTEsMjU0MjksMjU0MTAsMjU0MTQsMjU0MjMsMjU0MTcsMjU0MDIsMjU0MjQsMjU0MDUsMjUzODYsMjUzODcsMjUzODQsMjU0MjEsMjU0MjAsMjU5MjgsMjU5MjksMjYwMDksMjYwNDksMjYwNTMsMjYxNzgsMjYxODUsMjYxOTEsMjYxNzksMjYx''@;'; put 'put ''OTQsMjYxODgsMjYxODEsMjYxNzcsMjYzNjAsMjYzODgsMjYzODksMjYzOTEsMjY2NTcsMjY2ODAsMjY2OTYsMjY2OTQsMjY3MDcsMjY2ODEsMjY2OTAsMjY3MDgsMjY2NjUsMjY4MDMsMjY2NDcsMjY3MDAsMjY3MDUsMjY2ODUsMjY2MTIsMjY3MDQsMjY2ODgsMjY2ODQsMjY2OTEsMjY2NjYs''@;'; put 'put ''MjY2OTMsMjY2NDMsMjY2NDgsMjY2ODksMjc1MzAsMjc1MjksMjc1NzUsMjc2ODMsMjc2ODcsMjc2ODgsMjc2ODYsMjc2ODQsMjc4ODgsMjgwMTAsMjgwNTMsMjgwNDAsMjgwMzksMjgwMDYsMjgwMjQsMjgwMjMsMjc5OTMsMjgwNTEsMjgwMTIsMjgwNDEsMjgwMTQsMjc5OTQsMjgwMjAsMjgw''@;'; put 'put ''MDksMjgwNDQsMjgwNDIsMjgwMjUsMjgwMzcsMjgwMDUsMjgwNTIsMjg4NzQsMjg4ODgsMjg5MDAsMjg4ODksMjg4NzIsMjg4NzksMjkyNDEsMjkzMDUsMjk0MzYsMjk0MzMsMjk0MzcsMjk0MzIsMjk0MzEsMjk1NzQsMjk2NzcsMjk3MDUsMjk2NzgsMjk2NjQsMjk2NzQsMjk2NjIsMzAwMzYs''@;'; put 'put ''MzAwNDUsMzAwNDQsMzAwNDIsMzAwNDEsMzAxNDIsMzAxNDksMzAxNTEsMzAxMzAsMzAxMzEsMzAxNDEsMzAxNDAsMzAxMzcsMzAxNDYsMzAxMzYsMzAzNDcsMzAzODQsMzA0MTAsMzA0MTMsMzA0MTQsMzA1MDUsMzA0OTUsMzA0OTYsMzA1MDQsMzA2OTcsMzA3NjgsMzA3NTksMzA3NzYsMzA3''@;'; put 'put ''NDksMzA3NzIsMzA3NzUsMzA3NTcsMzA3NjUsMzA3NTIsMzA3NTEsMzA3NzAsMzEwNjEsMzEwNTYsMzEwNzIsMzEwNzEsMzEwNjIsMzEwNzAsMzEwNjksMzEwNjMsMzEwNjYsMzEyMDQsMzEyMDMsMzEyMDcsMzExOTksMzEyMDYsMzEyMDksMzExOTIsMzEzNjQsMzEzNjgsMzE0NDksMzE0OTQs''@;'; put 'put ''MzE1MDUsMzE4ODEsMzIwMzMsMzIwMjMsMzIwMTEsMzIwMTAsMzIwMzIsMzIwMzQsMzIwMjAsMzIwMTYsMzIwMjEsMzIwMjYsMzIwMjgsMzIwMTMsMzIwMjUsMzIwMjcsMzI1NzAsMzI2MDcsMzI2NjAsMzI3MDksMzI3MDUsMzI3NzQsMzI3OTIsMzI3ODksMzI3OTMsMzI3OTEsMzI4MjksMzI4''@;'; put 'put ''MzEsMzMwMDksMzMwMjYsMzMwMDgsMzMwMjksMzMwMDUsMzMwMTIsMzMwMzAsMzMwMTYsMzMwMTEsMzMwMzIsMzMwMjEsMzMwMzQsMzMwMjAsMzMwMDcsMzMyNjEsMzMyNjAsMzMyODAsMzMyOTYsMzMzMjIsMzMzMjMsMzMzMjAsMzMzMjQsMzM0NjcsMzM1NzksMzM2MTgsMzM2MjAsMzM2MTAs''@;'; put 'put ''MzM1OTIsMzM2MTYsMzM2MDksMzM1ODksMzM1ODgsMzM2MTUsMzM1ODYsMzM1OTMsMzM1OTAsMzM1NTksMzM2MDAsMzM1ODUsMzM1NzYsMzM2MDMsMzQzODgsMzQ0NDIsMzQ0NzQsMzQ0NTEsMzQ0NjgsMzQ0NzMsMzQ0NDQsMzQ0NjcsMzQ0NjAsMzQ5MjgsMzQ5MzUsMzQ5NDUsMzQ5NDYsMzQ5''@;'; put 'put ''NDEsMzQ5MzcsMzUzNTIsMzUzNDQsMzUzNDIsMzUzNDAsMzUzNDksMzUzMzgsMzUzNTEsMzUzNDcsMzUzNTAsMzUzNDMsMzUzNDUsMzU5MTIsMzU5NjIsMzU5NjEsMzYwMDEsMzYwMDIsMzYyMTUsMzY1MjQsMzY1NjIsMzY1NjQsMzY1NTksMzY3ODUsMzY4NjUsMzY4NzAsMzY4NTUsMzY4NjQs''@;'; put 'put ''MzY4NTgsMzY4NTIsMzY4NjcsMzY4NjEsMzY4NjksMzY4NTYsMzcwMTMsMzcwODksMzcwODUsMzcwOTAsMzcyMDIsMzcxOTcsMzcxOTYsMzczMzYsMzczNDEsMzczMzUsMzczNDAsMzczMzcsMzgyNzUsMzg0OTgsMzg0OTksMzg0OTcsMzg0OTEsMzg0OTMsMzg1MDAsMzg0ODgsMzg0OTQsMzg1''@;'; put 'put ''ODcsMzkxMzgsMzkzNDAsMzk1OTIsMzk2NDAsMzk3MTcsMzk3MzAsMzk3NDAsMjAwOTQsMjA2MDIsMjA2MDUsMjA1NzIsMjA1NTEsMjA1NDcsMjA1NTYsMjA1NzAsMjA1NTMsMjA1ODEsMjA1OTgsMjA1NTgsMjA1NjUsMjA1OTcsMjA1OTYsMjA1OTksMjA1NTksMjA0OTUsMjA1OTEsMjA1ODks''@;'; put 'put ''MjA4MjgsMjA4ODUsMjA5NzYsMjEwOTgsMjExMDMsMjEyMDIsMjEyMDksMjEyMDgsMjEyMDUsMjEyNjQsMjEyNjMsMjEyNzMsMjEzMTEsMjEzMTIsMjEzMTAsMjE0NDMsMjYzNjQsMjE4MzAsMjE4NjYsMjE4NjIsMjE4MjgsMjE4NTQsMjE4NTcsMjE4MjcsMjE4MzQsMjE4MDksMjE4NDYsMjE4''@;'; put 'put ''MzksMjE4NDUsMjE4MDcsMjE4NjAsMjE4MTYsMjE4MDYsMjE4NTIsMjE4MDQsMjE4NTksMjE4MTEsMjE4MjUsMjE4NDcsMjIyODAsMjIyODMsMjIyODEsMjI0OTUsMjI1MzMsMjI1MzgsMjI1MzQsMjI0OTYsMjI1MDAsMjI1MjIsMjI1MzAsMjI1ODEsMjI1MTksMjI1MjEsMjI4MTYsMjI4ODIs''@;'; put 'put ''MjMwOTQsMjMxMDUsMjMxMTMsMjMxNDIsMjMxNDYsMjMxMDQsMjMxMDAsMjMxMzgsMjMxMzAsMjMxMTAsMjMxMTQsMjM0MDgsMjM0OTUsMjM0OTMsMjM0OTIsMjM0OTAsMjM0ODcsMjM0OTQsMjM1NjEsMjM1NjAsMjM1NTksMjM2NDgsMjM2NDQsMjM2NDUsMjM4MTUsMjM4MTQsMjM4MjIsMjM4''@;'; put 'put ''MzUsMjM4MzAsMjM4NDIsMjM4MjUsMjM4NDksMjM4MjgsMjM4MzMsMjM4NDQsMjM4NDcsMjM4MzEsMjQwMzQsMjQxMjAsMjQxMTgsMjQxMTUsMjQxMTksMjQyNDcsMjQyNDgsMjQyNDYsMjQyNDUsMjQyNTQsMjQzNzMsMjQzNzUsMjQ0MDcsMjQ0MjgsMjQ0MjUsMjQ0MjcsMjQ0NzEsMjQ0NzMs''@;'; put 'put ''MjQ0NzgsMjQ0NzIsMjQ0ODEsMjQ0ODAsMjQ0NzYsMjQ3MDMsMjQ3MzksMjQ3MTMsMjQ3MzYsMjQ3NDQsMjQ3NzksMjQ3NTYsMjQ4MDYsMjQ3NjUsMjQ3NzMsMjQ3NjMsMjQ3NTcsMjQ3OTYsMjQ3NjQsMjQ3OTIsMjQ3ODksMjQ3NzQsMjQ3OTksMjQ3NjAsMjQ3OTQsMjQ3NzUsMjUxMTQsMjUx''@;'; put 'put ''MTUsMjUxNjAsMjU1MDQsMjU1MTEsMjU0NTgsMjU0OTQsMjU1MDYsMjU1MDksMjU0NjMsMjU0NDcsMjU0OTYsMjU1MTQsMjU0NTcsMjU1MTMsMjU0ODEsMjU0NzUsMjU0OTksMjU0NTEsMjU1MTIsMjU0NzYsMjU0ODAsMjU0OTcsMjU1MDUsMjU1MTYsMjU0OTAsMjU0ODcsMjU0NzIsMjU0Njcs''@;'; put 'put ''MjU0NDksMjU0NDgsMjU0NjYsMjU5NDksMjU5NDIsMjU5MzcsMjU5NDUsMjU5NDMsMjE4NTUsMjU5MzUsMjU5NDQsMjU5NDEsMjU5NDAsMjYwMTIsMjYwMTEsMjYwMjgsMjYwNjMsMjYwNTksMjYwNjAsMjYwNjIsMjYyMDUsMjYyMDIsMjYyMTIsMjYyMTYsMjYyMTQsMjYyMDYsMjYzNjEsMjEy''@;'; put 'put ''MDcsMjYzOTUsMjY3NTMsMjY3OTksMjY3ODYsMjY3NzEsMjY4MDUsMjY3NTEsMjY3NDIsMjY4MDEsMjY3OTEsMjY3NzUsMjY4MDAsMjY3NTUsMjY4MjAsMjY3OTcsMjY3NTgsMjY3NTcsMjY3NzIsMjY3ODEsMjY3OTIsMjY3ODMsMjY3ODUsMjY3NTQsMjc0NDIsMjc1NzgsMjc2MjcsMjc2Mjgs''@;'; put 'put ''Mjc2OTEsMjgwNDYsMjgwOTIsMjgxNDcsMjgxMjEsMjgwODIsMjgxMjksMjgxMDgsMjgxMzIsMjgxNTUsMjgxNTQsMjgxNjUsMjgxMDMsMjgxMDcsMjgwNzksMjgxMTMsMjgwNzgsMjgxMjYsMjgxNTMsMjgwODgsMjgxNTEsMjgxNDksMjgxMDEsMjgxMTQsMjgxODYsMjgwODUsMjgxMjIsMjgx''@;'; put 'put ''MzksMjgxMjAsMjgxMzgsMjgxNDUsMjgxNDIsMjgxMzYsMjgxMDIsMjgxMDAsMjgwNzQsMjgxNDAsMjgwOTUsMjgxMzQsMjg5MjEsMjg5MzcsMjg5MzgsMjg5MjUsMjg5MTEsMjkyNDUsMjkzMDksMjkzMTMsMjk0NjgsMjk0NjcsMjk0NjIsMjk0NTksMjk0NjUsMjk1NzUsMjk3MDEsMjk3MDYs''@;'; put 'put ''Mjk2OTksMjk3MDIsMjk2OTQsMjk3MDksMjk5MjAsMjk5NDIsMjk5NDMsMjk5ODAsMjk5ODYsMzAwNTMsMzAwNTQsMzAwNTAsMzAwNjQsMzAwOTUsMzAxNjQsMzAxNjUsMzAxMzMsMzAxNTQsMzAxNTcsMzAzNTAsMzA0MjAsMzA0MTgsMzA0MjcsMzA1MTksMzA1MjYsMzA1MjQsMzA1MTgsMzA1''@;'; put 'put ''MjAsMzA1MjIsMzA4MjcsMzA3ODcsMzA3OTgsMzEwNzcsMzEwODAsMzEwODUsMzEyMjcsMzEzNzgsMzEzODEsMzE1MjAsMzE1MjgsMzE1MTUsMzE1MzIsMzE1MjYsMzE1MTMsMzE1MTgsMzE1MzQsMzE4OTAsMzE4OTUsMzE4OTMsMzIwNzAsMzIwNjcsMzIxMTMsMzIwNDYsMzIwNTcsMzIwNjAs''@;'; put 'put ''MzIwNjQsMzIwNDgsMzIwNTEsMzIwNjgsMzIwNDcsMzIwNjYsMzIwNTAsMzIwNDksMzI1NzMsMzI2NzAsMzI2NjYsMzI3MTYsMzI3MTgsMzI3MjIsMzI3OTYsMzI4NDIsMzI4MzgsMzMwNzEsMzMwNDYsMzMwNTksMzMwNjcsMzMwNjUsMzMwNzIsMzMwNjAsMzMyODIsMzMzMzMsMzMzMzUsMzMz''@;'; put 'put ''MzQsMzMzMzcsMzM2NzgsMzM2OTQsMzM2ODgsMzM2NTYsMzM2OTgsMzM2ODYsMzM3MjUsMzM3MDcsMzM2ODIsMzM2NzQsMzM2ODMsMzM2NzMsMzM2OTYsMzM2NTUsMzM2NTksMzM2NjAsMzM2NzAsMzM3MDMsMzQzODksMjQ0MjYsMzQ1MDMsMzQ0OTYsMzQ0ODYsMzQ1MDAsMzQ0ODUsMzQ1MDIs''@;'; put 'put ''MzQ1MDcsMzQ0ODEsMzQ0NzksMzQ1MDUsMzQ4OTksMzQ5NzQsMzQ5NTIsMzQ5ODcsMzQ5NjIsMzQ5NjYsMzQ5NTcsMzQ5NTUsMzUyMTksMzUyMTUsMzUzNzAsMzUzNTcsMzUzNjMsMzUzNjUsMzUzNzcsMzUzNzMsMzUzNTksMzUzNTUsMzUzNjIsMzU5MTMsMzU5MzAsMzYwMDksMzYwMTIsMzYw''@;'; put 'put ''MTEsMzYwMDgsMzYwMTAsMzYwMDcsMzYxOTksMzYxOTgsMzYyODYsMzYyODIsMzY1NzEsMzY1NzUsMzY4ODksMzY4NzcsMzY4OTAsMzY4ODcsMzY4OTksMzY4OTUsMzY4OTMsMzY4ODAsMzY4ODUsMzY4OTQsMzY4OTYsMzY4NzksMzY4OTgsMzY4ODYsMzY4OTEsMzY4ODQsMzcwOTYsMzcxMDEs''@;'; put 'put ''MzcxMTcsMzcyMDcsMzczMjYsMzczNjUsMzczNTAsMzczNDcsMzczNTEsMzczNTcsMzczNTMsMzgyODEsMzg1MDYsMzg1MTcsMzg1MTUsMzg1MjAsMzg1MTIsMzg1MTYsMzg1MTgsMzg1MTksMzg1MDgsMzg1OTIsMzg2MzQsMzg2MzMsMzE0NTYsMzE0NTUsMzg5MTQsMzg5MTUsMzk3NzAsNDAx''@;'; put 'put ''NjUsNDA1NjUsNDA1NzUsNDA2MTMsNDA2MzUsMjA2NDIsMjA2MjEsMjA2MTMsMjA2MzMsMjA2MjUsMjA2MDgsMjA2MzAsMjA2MzIsMjA2MzQsMjYzNjgsMjA5NzcsMjExMDYsMjExMDgsMjExMDksMjEwOTcsMjEyMTQsMjEyMTMsMjEyMTEsMjEzMzgsMjE0MTMsMjE4ODMsMjE4ODgsMjE5Mjcs''@;'; put 'put ''MjE4ODQsMjE4OTgsMjE5MTcsMjE5MTIsMjE4OTAsMjE5MTYsMjE5MzAsMjE5MDgsMjE4OTUsMjE4OTksMjE4OTEsMjE5MzksMjE5MzQsMjE5MTksMjE4MjIsMjE5MzgsMjE5MTQsMjE5NDcsMjE5MzIsMjE5MzcsMjE4ODYsMjE4OTcsMjE5MzEsMjE5MTMsMjIyODUsMjI1NzUsMjI1NzAsMjI1''@;'; put 'put ''ODAsMjI1NjQsMjI1NzYsMjI1NzcsMjI1NjEsMjI1NTcsMjI1NjAsMjI3NzcsMjI3NzgsMjI4ODAsMjMxNTksMjMxOTQsMjMxNjcsMjMxODYsMjMxOTUsMjMyMDcsMjM0MTEsMjM0MDksMjM1MDYsMjM1MDAsMjM1MDcsMjM1MDQsMjM1NjIsMjM1NjMsMjM2MDEsMjM4ODQsMjM4ODgsMjM4NjAs''@;'; put 'put ''MjM4NzksMjQwNjEsMjQxMzMsMjQxMjUsMjQxMjgsMjQxMzEsMjQxOTAsMjQyNjYsMjQyNTcsMjQyNTgsMjQyNjAsMjQzODAsMjQ0MjksMjQ0ODksMjQ0OTAsMjQ0ODgsMjQ3ODUsMjQ4MDEsMjQ3NTQsMjQ3NTgsMjQ4MDAsMjQ4NjAsMjQ4NjcsMjQ4MjYsMjQ4NTMsMjQ4MTYsMjQ4MjcsMjQ4''@;'; put 'put ''MjAsMjQ5MzYsMjQ4MTcsMjQ4NDYsMjQ4MjIsMjQ4NDEsMjQ4MzIsMjQ4NTAsMjUxMTksMjUxNjEsMjU1MDcsMjU0ODQsMjU1NTEsMjU1MzYsMjU1NzcsMjU1NDUsMjU1NDIsMjU1NDksMjU1NTQsMjU1NzEsMjU1NTIsMjU1NjksMjU1NTgsMjU1ODEsMjU1ODIsMjU0NjIsMjU1ODgsMjU1Nzgs''@;'; put 'put ''MjU1NjMsMjU2ODIsMjU1NjIsMjU1OTMsMjU5NTAsMjU5NTgsMjU5NTQsMjU5NTUsMjYwMDEsMjZlMywyNjAzMSwyNjIyMiwyNjIyNCwyNjIyOCwyNjIzMCwyNjIyMywyNjI1NywyNjIzNCwyNjIzOCwyNjIzMSwyNjM2NiwyNjM2NywyNjM5OSwyNjM5NywyNjg3NCwyNjgzNywyNjg0OCwyNjg0''@;'; put 'put ''MCwyNjgzOSwyNjg4NSwyNjg0NywyNjg2OSwyNjg2MiwyNjg1NSwyNjg3MywyNjgzNCwyNjg2NiwyNjg1MSwyNjgyNywyNjgyOSwyNjg5MywyNjg5OCwyNjg5NCwyNjgyNSwyNjg0MiwyNjk5MCwyNjg3NSwyNzQ1NCwyNzQ1MCwyNzQ1MywyNzU0NCwyNzU0MiwyNzU4MCwyNzYzMSwyNzY5NCwy''@;'; put 'put ''NzY5NSwyNzY5MiwyODIwNywyODIxNiwyODI0NCwyODE5MywyODIxMCwyODI2MywyODIzNCwyODE5MiwyODE5NywyODE5NSwyODE4NywyODI1MSwyODI0OCwyODE5NiwyODI0NiwyODI3MCwyODIwNSwyODE5OCwyODI3MSwyODIxMiwyODIzNywyODIxOCwyODIwNCwyODIyNywyODE4OSwyODIy''@;'; put 'put ''MiwyODM2MywyODI5NywyODE4NSwyODIzOCwyODI1OSwyODIyOCwyODI3NCwyODI2NSwyODI1NSwyODk1MywyODk1NCwyODk2NiwyODk3NiwyODk2MSwyODk4MiwyOTAzOCwyODk1NiwyOTI2MCwyOTMxNiwyOTMxMiwyOTQ5NCwyOTQ3NywyOTQ5MiwyOTQ4MSwyOTc1NCwyOTczOCwyOTc0Nywy''@;'; put 'put ''OTczMCwyOTczMywyOTc0OSwyOTc1MCwyOTc0OCwyOTc0MywyOTcyMywyOTczNCwyOTczNiwyOTk4OSwyOTk5MCwzMDA1OSwzMDA1OCwzMDE3OCwzMDE3MSwzMDE3OSwzMDE2OSwzMDE2OCwzMDE3NCwzMDE3NiwzMDMzMSwzMDMzMiwzMDM1OCwzMDM1NSwzMDM4OCwzMDQyOCwzMDU0MywzMDcw''@;'; put 'put ''MSwzMDgxMywzMDgyOCwzMDgzMSwzMTI0NSwzMTI0MCwzMTI0MywzMTIzNywzMTIzMiwzMTM4NCwzMTM4MywzMTM4MiwzMTQ2MSwzMTQ1OSwzMTU2MSwzMTU3NCwzMTU1OCwzMTU2OCwzMTU3MCwzMTU3MiwzMTU2NSwzMTU2MywzMTU2NywzMTU2OSwzMTkwMywzMTkwOSwzMjA5NCwzMjA4MCwz''@;'; put 'put ''MjEwNCwzMjA4NSwzMjA0MywzMjExMCwzMjExNCwzMjA5NywzMjEwMiwzMjA5OCwzMjExMiwzMjExNSwyMTg5MiwzMjcyNCwzMjcyNSwzMjc3OSwzMjg1MCwzMjkwMSwzMzEwOSwzMzEwOCwzMzA5OSwzMzEwNSwzMzEwMiwzMzA4MSwzMzA5NCwzMzA4NiwzMzEwMCwzMzEwNywzMzE0MCwzMzI5''@;'; put 'put ''OCwzMzMwOCwzMzc2OSwzMzc5NSwzMzc4NCwzMzgwNSwzMzc2MCwzMzczMywzMzgwMywzMzcyOSwzMzc3NSwzMzc3NywzMzc4MCwzMzg3OSwzMzgwMiwzMzc3NiwzMzgwNCwzMzc0MCwzMzc4OSwzMzc3OCwzMzczOCwzMzg0OCwzMzgwNiwzMzc5NiwzMzc1NiwzMzc5OSwzMzc0OCwzMzc1OSwz''@;'; put 'put ''NDM5NSwzNDUyNywzNDUyMSwzNDU0MSwzNDUxNiwzNDUyMywzNDUzMiwzNDUxMiwzNDUyNiwzNDkwMywzNTAwOSwzNTAxMCwzNDk5MywzNTIwMywzNTIyMiwzNTM4NywzNTQyNCwzNTQxMywzNTQyMiwzNTM4OCwzNTM5MywzNTQxMiwzNTQxOSwzNTQwOCwzNTM5OCwzNTM4MCwzNTM4NiwzNTM4''@;'; put 'put ''MiwzNTQxNCwzNTkzNywzNTk3MCwzNjAxNSwzNjAyOCwzNjAxOSwzNjAyOSwzNjAzMywzNjAyNywzNjAzMiwzNjAyMCwzNjAyMywzNjAyMiwzNjAzMSwzNjAyNCwzNjIzNCwzNjIyOSwzNjIyNSwzNjMwMiwzNjMxNywzNjI5OSwzNjMxNCwzNjMwNSwzNjMwMCwzNjMxNSwzNjI5NCwzNjYwMywz''@;'; put 'put ''NjYwMCwzNjYwNCwzNjc2NCwzNjkxMCwzNjkxNywzNjkxMywzNjkyMCwzNjkxNCwzNjkxOCwzNzEyMiwzNzEwOSwzNzEyOSwzNzExOCwzNzIxOSwzNzIyMSwzNzMyNywzNzM5NiwzNzM5NywzNzQxMSwzNzM4NSwzNzQwNiwzNzM4OSwzNzM5MiwzNzM4MywzNzM5MywzODI5MiwzODI4NywzODI4''@;'; put 'put ''MywzODI4OSwzODI5MSwzODI5MCwzODI4NiwzODUzOCwzODU0MiwzODUzOSwzODUyNSwzODUzMywzODUzNCwzODU0MSwzODUxNCwzODUzMiwzODU5MywzODU5NywzODU5NiwzODU5OCwzODU5OSwzODYzOSwzODY0MiwzODg2MCwzODkxNywzODkxOCwzODkyMCwzOTE0MywzOTE0NiwzOTE1MSwz''@;'; put 'put ''OTE0NSwzOTE1NCwzOTE0OSwzOTM0MiwzOTM0MSw0MDY0Myw0MDY1Myw0MDY1NywyMDA5OCwyMDY1MywyMDY2MSwyMDY1OCwyMDY1OSwyMDY3NywyMDY3MCwyMDY1MiwyMDY2MywyMDY2NywyMDY1NSwyMDY3OSwyMTExOSwyMTExMSwyMTExNywyMTIxNSwyMTIyMiwyMTIyMCwyMTIxOCwyMTIx''@;'; put 'put ''OSwyMTI5NSwyMTk4MywyMTk5MiwyMTk3MSwyMTk5MCwyMTk2NiwyMTk4MCwyMTk1OSwyMTk2OSwyMTk4NywyMTk4OCwyMTk5OSwyMTk3OCwyMTk4NSwyMTk1NywyMTk1OCwyMTk4OSwyMTk2MSwyMjI5MCwyMjI5MSwyMjYyMiwyMjYwOSwyMjYxNiwyMjYxNSwyMjYxOCwyMjYxMiwyMjYzNSwy''@;'; put 'put ''MjYwNCwyMjYzNywyMjYwMiwyMjYyNiwyMjYxMCwyMjYwMywyMjg4NywyMzIzMywyMzI0MSwyMzI0NCwyMzIzMCwyMzIyOSwyMzIyOCwyMzIxOSwyMzIzNCwyMzIxOCwyMzkxMywyMzkxOSwyNDE0MCwyNDE4NSwyNDI2NSwyNDI2NCwyNDMzOCwyNDQwOSwyNDQ5MiwyNDQ5NCwyNDg1OCwyNDg0''@;'; put 'put ''NywyNDkwNCwyNDg2MywyNDgxOSwyNDg1OSwyNDgyNSwyNDgzMywyNDg0MCwyNDkxMCwyNDkwOCwyNDkwMCwyNDkwOSwyNDg5NCwyNDg4NCwyNDg3MSwyNDg0NSwyNDgzOCwyNDg4NywyNTEyMSwyNTEyMiwyNTYxOSwyNTY2MiwyNTYzMCwyNTY0MiwyNTY0NSwyNTY2MSwyNTY0NCwyNTYxNSwy''@;'; put 'put ''NTYyOCwyNTYyMCwyNTYxMywyNTY1NCwyNTYyMiwyNTYyMywyNTYwNiwyNTk2NCwyNjAxNSwyNjAzMiwyNjI2MywyNjI0OSwyNjI0NywyNjI0OCwyNjI2MiwyNjI0NCwyNjI2NCwyNjI1MywyNjM3MSwyNzAyOCwyNjk4OSwyNjk3MCwyNjk5OSwyNjk3NiwyNjk2NCwyNjk5NywyNjkyOCwyNzAx''@;'; put 'put ''MCwyNjk1NCwyNjk4NCwyNjk4NywyNjk3NCwyNjk2MywyNzAwMSwyNzAxNCwyNjk3MywyNjk3OSwyNjk3MSwyNzQ2MywyNzUwNiwyNzU4NCwyNzU4MywyNzYwMywyNzY0NSwyODMyMiwyODMzNSwyODM3MSwyODM0MiwyODM1NCwyODMwNCwyODMxNywyODM1OSwyODM1NywyODMyNSwyODMxMiwy''@;'; put 'put ''ODM0OCwyODM0NiwyODMzMSwyODM2OSwyODMxMCwyODMxNiwyODM1NiwyODM3MiwyODMzMCwyODMyNywyODM0MCwyOTAwNiwyOTAxNywyOTAzMywyOTAyOCwyOTAwMSwyOTAzMSwyOTAyMCwyOTAzNiwyOTAzMCwyOTAwNCwyOTAyOSwyOTAyMiwyODk5OCwyOTAzMiwyOTAxNCwyOTI0MiwyOTI2''@;'; put 'put ''NiwyOTQ5NSwyOTUwOSwyOTUwMywyOTUwMiwyOTgwNywyOTc4NiwyOTc4MSwyOTc5MSwyOTc5MCwyOTc2MSwyOTc1OSwyOTc4NSwyOTc4NywyOTc4OCwzMDA3MCwzMDA3MiwzMDIwOCwzMDE5MiwzMDIwOSwzMDE5NCwzMDE5MywzMDIwMiwzMDIwNywzMDE5NiwzMDE5NSwzMDQzMCwzMDQzMSwz''@;'; put 'put ''MDU1NSwzMDU3MSwzMDU2NiwzMDU1OCwzMDU2MywzMDU4NSwzMDU3MCwzMDU3MiwzMDU1NiwzMDU2NSwzMDU2OCwzMDU2MiwzMDcwMiwzMDg2MiwzMDg5NiwzMDg3MSwzMDg3MiwzMDg2MCwzMDg1NywzMDg0NCwzMDg2NSwzMDg2NywzMDg0NywzMTA5OCwzMTEwMywzMTEwNSwzMzgzNiwzMTE2''@;'; put 'put ''NSwzMTI2MCwzMTI1OCwzMTI2NCwzMTI1MiwzMTI2MywzMTI2MiwzMTM5MSwzMTM5MiwzMTYwNywzMTY4MCwzMTU4NCwzMTU5OCwzMTU5MSwzMTkyMSwzMTkyMywzMTkyNSwzMjE0NywzMjEyMSwzMjE0NSwzMjEyOSwzMjE0MywzMjA5MSwzMjYyMiwzMjYxNywzMjYxOCwzMjYyNiwzMjY4MSwz''@;'; put 'put ''MjY4MCwzMjY3NiwzMjg1NCwzMjg1NiwzMjkwMiwzMjkwMCwzMzEzNywzMzEzNiwzMzE0NCwzMzEyNSwzMzEzNCwzMzEzOSwzMzEzMSwzMzE0NSwzMzE0NiwzMzEyNiwzMzI4NSwzMzM1MSwzMzkyMiwzMzkxMSwzMzg1MywzMzg0MSwzMzkwOSwzMzg5NCwzMzg5OSwzMzg2NSwzMzkwMCwzMzg4''@;'; put 'put ''MywzMzg1MiwzMzg0NSwzMzg4OSwzMzg5MSwzMzg5NywzMzkwMSwzMzg2MiwzNDM5OCwzNDM5NiwzNDM5OSwzNDU1MywzNDU3OSwzNDU2OCwzNDU2NywzNDU2MCwzNDU1OCwzNDU1NSwzNDU2MiwzNDU2MywzNDU2NiwzNDU3MCwzNDkwNSwzNTAzOSwzNTAyOCwzNTAzMywzNTAzNiwzNTAzMiwz''@;'; put 'put ''NTAzNywzNTA0MSwzNTAxOCwzNTAyOSwzNTAyNiwzNTIyOCwzNTI5OSwzNTQzNSwzNTQ0MiwzNTQ0MywzNTQzMCwzNTQzMywzNTQ0MCwzNTQ2MywzNTQ1MiwzNTQyNywzNTQ4OCwzNTQ0MSwzNTQ2MSwzNTQzNywzNTQyNiwzNTQzOCwzNTQzNiwzNTQ0OSwzNTQ1MSwzNTM5MCwzNTQzMiwzNTkz''@;'; put 'put ''OCwzNTk3OCwzNTk3NywzNjA0MiwzNjAzOSwzNjA0MCwzNjAzNiwzNjAxOCwzNjAzNSwzNjAzNCwzNjAzNywzNjMyMSwzNjMxOSwzNjMyOCwzNjMzNSwzNjMzOSwzNjM0NiwzNjMzMCwzNjMyNCwzNjMyNiwzNjUzMCwzNjYxMSwzNjYxNywzNjYwNiwzNjYxOCwzNjc2NywzNjc4NiwzNjkzOSwz''@;'; put 'put ''NjkzOCwzNjk0NywzNjkzMCwzNjk0OCwzNjkyNCwzNjk0OSwzNjk0NCwzNjkzNSwzNjk0MywzNjk0MiwzNjk0MSwzNjk0NSwzNjkyNiwzNjkyOSwzNzEzOCwzNzE0MywzNzIyOCwzNzIyNiwzNzIyNSwzNzMyMSwzNzQzMSwzNzQ2MywzNzQzMiwzNzQzNywzNzQ0MCwzNzQzOCwzNzQ2NywzNzQ1''@;'; put 'put ''MSwzNzQ3NiwzNzQ1NywzNzQyOCwzNzQ0OSwzNzQ1MywzNzQ0NSwzNzQzMywzNzQzOSwzNzQ2NiwzODI5NiwzODU1MiwzODU0OCwzODU0OSwzODYwNSwzODYwMywzODYwMSwzODYwMiwzODY0NywzODY1MSwzODY0OSwzODY0NiwzODc0MiwzODc3MiwzODc3NCwzODkyOCwzODkyOSwzODkzMSwz''@;'; put 'put ''ODkyMiwzODkzMCwzODkyNCwzOTE2NCwzOTE1NiwzOTE2NSwzOTE2NiwzOTM0NywzOTM0NSwzOTM0OCwzOTY0OSw0MDE2OSw0MDU3OCw0MDcxOCw0MDcyMyw0MDczNiwyMDcxMSwyMDcxOCwyMDcwOSwyMDY5NCwyMDcxNywyMDY5OCwyMDY5MywyMDY4NywyMDY4OSwyMDcyMSwyMDY4NiwyMDcx''@;'; put 'put ''MywyMDgzNCwyMDk3OSwyMTEyMywyMTEyMiwyMTI5NywyMTQyMSwyMjAxNCwyMjAxNiwyMjA0MywyMjAzOSwyMjAxMywyMjAzNiwyMjAyMiwyMjAyNSwyMjAyOSwyMjAzMCwyMjAwNywyMjAzOCwyMjA0NywyMjAyNCwyMjAzMiwyMjAwNiwyMjI5NiwyMjI5NCwyMjY0NSwyMjY1NCwyMjY1OSwy''@;'; put 'put ''MjY3NSwyMjY2NiwyMjY0OSwyMjY2MSwyMjY1MywyMjc4MSwyMjgyMSwyMjgxOCwyMjgyMCwyMjg5MCwyMjg4OSwyMzI2NSwyMzI3MCwyMzI3MywyMzI1NSwyMzI1NCwyMzI1NiwyMzI2NywyMzQxMywyMzUxOCwyMzUyNywyMzUyMSwyMzUyNSwyMzUyNiwyMzUyOCwyMzUyMiwyMzUyNCwyMzUx''@;'; put 'put ''OSwyMzU2NSwyMzY1MCwyMzk0MCwyMzk0MywyNDE1NSwyNDE2MywyNDE0OSwyNDE1MSwyNDE0OCwyNDI3NSwyNDI3OCwyNDMzMCwyNDM5MCwyNDQzMiwyNDUwNSwyNDkwMywyNDg5NSwyNDkwNywyNDk1MSwyNDkzMCwyNDkzMSwyNDkyNywyNDkyMiwyNDkyMCwyNDk0OSwyNTEzMCwyNTczNSwy''@;'; put 'put ''NTY4OCwyNTY4NCwyNTc2NCwyNTcyMCwyNTY5NSwyNTcyMiwyNTY4MSwyNTcwMywyNTY1MiwyNTcwOSwyNTcyMywyNTk3MCwyNjAxNywyNjA3MSwyNjA3MCwyNjI3NCwyNjI4MCwyNjI2OSwyNzAzNiwyNzA0OCwyNzAyOSwyNzA3MywyNzA1NCwyNzA5MSwyNzA4MywyNzAzNSwyNzA2MywyNzA2''@;'; put 'put ''NywyNzA1MSwyNzA2MCwyNzA4OCwyNzA4NSwyNzA1MywyNzA4NCwyNzA0NiwyNzA3NSwyNzA0MywyNzQ2NSwyNzQ2OCwyNzY5OSwyODQ2NywyODQzNiwyODQxNCwyODQzNSwyODQwNCwyODQ1NywyODQ3OCwyODQ0OCwyODQ2MCwyODQzMSwyODQxOCwyODQ1MCwyODQxNSwyODM5OSwyODQyMiwy''@;'; put 'put ''ODQ2NSwyODQ3MiwyODQ2NiwyODQ1MSwyODQzNywyODQ1OSwyODQ2MywyODU1MiwyODQ1OCwyODM5NiwyODQxNywyODQwMiwyODM2NCwyODQwNywyOTA3NiwyOTA4MSwyOTA1MywyOTA2NiwyOTA2MCwyOTA3NCwyOTI0NiwyOTMzMCwyOTMzNCwyOTUwOCwyOTUyMCwyOTc5NiwyOTc5NSwyOTgw''@;'; put 'put ''MiwyOTgwOCwyOTgwNSwyOTk1NiwzMDA5NywzMDI0NywzMDIyMSwzMDIxOSwzMDIxNywzMDIyNywzMDQzMywzMDQzNSwzMDU5NiwzMDU4OSwzMDU5MSwzMDU2MSwzMDkxMywzMDg3OSwzMDg4NywzMDg5OSwzMDg4OSwzMDg4MywzMTExOCwzMTExOSwzMTExNywzMTI3OCwzMTI4MSwzMTQwMiwz''@;'; put 'put ''MTQwMSwzMTQ2OSwzMTQ3MSwzMTY0OSwzMTYzNywzMTYyNywzMTYwNSwzMTYzOSwzMTY0NSwzMTYzNiwzMTYzMSwzMTY3MiwzMTYyMywzMTYyMCwzMTkyOSwzMTkzMywzMTkzNCwzMjE4NywzMjE3NiwzMjE1NiwzMjE4OSwzMjE5MCwzMjE2MCwzMjIwMiwzMjE4MCwzMjE3OCwzMjE3NywzMjE4''@;'; put 'put ''NiwzMjE2MiwzMjE5MSwzMjE4MSwzMjE4NCwzMjE3MywzMjIxMCwzMjE5OSwzMjE3MiwzMjYyNCwzMjczNiwzMjczNywzMjczNSwzMjg2MiwzMjg1OCwzMjkwMywzMzEwNCwzMzE1MiwzMzE2NywzMzE2MCwzMzE2MiwzMzE1MSwzMzE1NCwzMzI1NSwzMzI3NCwzMzI4NywzMzMwMCwzMzMxMCwz''@;'; put 'put ''MzM1NSwzMzk5MywzMzk4MywzMzk5MCwzMzk4OCwzMzk0NSwzMzk1MCwzMzk3MCwzMzk0OCwzMzk5NSwzMzk3NiwzMzk4NCwzNDAwMywzMzkzNiwzMzk4MCwzNDAwMSwzMzk5NCwzNDYyMywzNDU4OCwzNDYxOSwzNDU5NCwzNDU5NywzNDYxMiwzNDU4NCwzNDY0NSwzNDYxNSwzNDYwMSwzNTA1''@;'; put 'put ''OSwzNTA3NCwzNTA2MCwzNTA2NSwzNTA2NCwzNTA2OSwzNTA0OCwzNTA5OCwzNTA1NSwzNTQ5NCwzNTQ2OCwzNTQ4NiwzNTQ5MSwzNTQ2OSwzNTQ4OSwzNTQ3NSwzNTQ5MiwzNTQ5OCwzNTQ5MywzNTQ5NiwzNTQ4MCwzNTQ3MywzNTQ4MiwzNTQ5NSwzNTk0NiwzNTk4MSwzNTk4MCwzNjA1MSwz''@;'; put 'put ''NjA0OSwzNjA1MCwzNjIwMywzNjI0OSwzNjI0NSwzNjM0OCwzNjYyOCwzNjYyNiwzNjYyOSwzNjYyNywzNjc3MSwzNjk2MCwzNjk1MiwzNjk1NiwzNjk2MywzNjk1MywzNjk1OCwzNjk2MiwzNjk1NywzNjk1NSwzNzE0NSwzNzE0NCwzNzE1MCwzNzIzNywzNzI0MCwzNzIzOSwzNzIzNiwzNzQ5''@;'; put 'put ''NiwzNzUwNCwzNzUwOSwzNzUyOCwzNzUyNiwzNzQ5OSwzNzUyMywzNzUzMiwzNzU0NCwzNzUwMCwzNzUyMSwzODMwNSwzODMxMiwzODMxMywzODMwNywzODMwOSwzODMwOCwzODU1MywzODU1NiwzODU1NSwzODYwNCwzODYxMCwzODY1NiwzODc4MCwzODc4OSwzODkwMiwzODkzNSwzODkzNiwz''@;'; put 'put ''OTA4NywzOTA4OSwzOTE3MSwzOTE3MywzOTE4MCwzOTE3NywzOTM2MSwzOTU5OSwzOTYwMCwzOTY1NCwzOTc0NSwzOTc0Niw0MDE4MCw0MDE4Miw0MDE3OSw0MDYzNiw0MDc2Myw0MDc3OCwyMDc0MCwyMDczNiwyMDczMSwyMDcyNSwyMDcyOSwyMDczOCwyMDc0NCwyMDc0NSwyMDc0MSwyMDk1''@;'; put 'put ''NiwyMTEyNywyMTEyOCwyMTEyOSwyMTEzMywyMTEzMCwyMTIzMiwyMTQyNiwyMjA2MiwyMjA3NSwyMjA3MywyMjA2NiwyMjA3OSwyMjA2OCwyMjA1NywyMjA5OSwyMjA5NCwyMjEwMywyMjEzMiwyMjA3MCwyMjA2MywyMjA2NCwyMjY1NiwyMjY4NywyMjY4NiwyMjcwNywyMjY4NCwyMjcwMiwy''@;'; put 'put ''MjY5NywyMjY5NCwyMjg5MywyMzMwNSwyMzI5MSwyMzMwNywyMzI4NSwyMzMwOCwyMzMwNCwyMzUzNCwyMzUzMiwyMzUyOSwyMzUzMSwyMzY1MiwyMzY1MywyMzk2NSwyMzk1NiwyNDE2MiwyNDE1OSwyNDE2MSwyNDI5MCwyNDI4MiwyNDI4NywyNDI4NSwyNDI5MSwyNDI4OCwyNDM5MiwyNDQz''@;'; put 'put ''MywyNDUwMywyNDUwMSwyNDk1MCwyNDkzNSwyNDk0MiwyNDkyNSwyNDkxNywyNDk2MiwyNDk1NiwyNDk0NCwyNDkzOSwyNDk1OCwyNDk5OSwyNDk3NiwyNTAwMywyNDk3NCwyNTAwNCwyNDk4NiwyNDk5NiwyNDk4MCwyNTAwNiwyNTEzNCwyNTcwNSwyNTcxMSwyNTcyMSwyNTc1OCwyNTc3OCwy''@;'; put 'put ''NTczNiwyNTc0NCwyNTc3NiwyNTc2NSwyNTc0NywyNTc0OSwyNTc2OSwyNTc0NiwyNTc3NCwyNTc3MywyNTc3MSwyNTc1NCwyNTc3MiwyNTc1MywyNTc2MiwyNTc3OSwyNTk3MywyNTk3NSwyNTk3NiwyNjI4NiwyNjI4MywyNjI5MiwyNjI4OSwyNzE3MSwyNzE2NywyNzExMiwyNzEzNywyNzE2''@;'; put 'put ''NiwyNzE2MSwyNzEzMywyNzE2OSwyNzE1NSwyNzE0NiwyNzEyMywyNzEzOCwyNzE0MSwyNzExNywyNzE1MywyNzQ3MiwyNzQ3MCwyNzU1NiwyNzU4OSwyNzU5MCwyODQ3OSwyODU0MCwyODU0OCwyODQ5NywyODUxOCwyODUwMCwyODU1MCwyODUyNSwyODUwNywyODUzNiwyODUyNiwyODU1OCwy''@;'; put 'put ''ODUzOCwyODUyOCwyODUxNiwyODU2NywyODUwNCwyODM3MywyODUyNywyODUxMiwyODUxMSwyOTA4NywyOTEwMCwyOTEwNSwyOTA5NiwyOTI3MCwyOTMzOSwyOTUxOCwyOTUyNywyOTgwMSwyOTgzNSwyOTgyNywyOTgyMiwyOTgyNCwzMDA3OSwzMDI0MCwzMDI0OSwzMDIzOSwzMDI0NCwzMDI0''@;'; put 'put ''NiwzMDI0MSwzMDI0MiwzMDM2MiwzMDM5NCwzMDQzNiwzMDYwNiwzMDU5OSwzMDYwNCwzMDYwOSwzMDYwMywzMDkyMywzMDkxNywzMDkwNiwzMDkyMiwzMDkxMCwzMDkzMywzMDkwOCwzMDkyOCwzMTI5NSwzMTI5MiwzMTI5NiwzMTI5MywzMTI4NywzMTI5MSwzMTQwNywzMTQwNiwzMTY2MSwz''@;'; put 'put ''MTY2NSwzMTY4NCwzMTY2OCwzMTY4NiwzMTY4NywzMTY4MSwzMTY0OCwzMTY5MiwzMTk0NiwzMjIyNCwzMjI0NCwzMjIzOSwzMjI1MSwzMjIxNiwzMjIzNiwzMjIyMSwzMjIzMiwzMjIyNywzMjIxOCwzMjIyMiwzMjIzMywzMjE1OCwzMjIxNywzMjI0MiwzMjI0OSwzMjYyOSwzMjYzMSwzMjY4''@;'; put 'put ''NywzMjc0NSwzMjgwNiwzMzE3OSwzMzE4MCwzMzE4MSwzMzE4NCwzMzE3OCwzMzE3NiwzNDA3MSwzNDEwOSwzNDA3NCwzNDAzMCwzNDA5MiwzNDA5MywzNDA2NywzNDA2NSwzNDA4MywzNDA4MSwzNDA2OCwzNDAyOCwzNDA4NSwzNDA0NywzNDA1NCwzNDY5MCwzNDY3NiwzNDY3OCwzNDY1Niwz''@;'; put 'put ''NDY2MiwzNDY4MCwzNDY2NCwzNDY0OSwzNDY0NywzNDYzNiwzNDY0MywzNDkwNywzNDkwOSwzNTA4OCwzNTA3OSwzNTA5MCwzNTA5MSwzNTA5MywzNTA4MiwzNTUxNiwzNTUzOCwzNTUyNywzNTUyNCwzNTQ3NywzNTUzMSwzNTU3NiwzNTUwNiwzNTUyOSwzNTUyMiwzNTUxOSwzNTUwNCwzNTU0''@;'; put 'put ''MiwzNTUzMywzNTUxMCwzNTUxMywzNTU0NywzNTkxNiwzNTkxOCwzNTk0OCwzNjA2NCwzNjA2MiwzNjA3MCwzNjA2OCwzNjA3NiwzNjA3NywzNjA2NiwzNjA2NywzNjA2MCwzNjA3NCwzNjA2NSwzNjIwNSwzNjI1NSwzNjI1OSwzNjM5NSwzNjM2OCwzNjM4MSwzNjM4NiwzNjM2NywzNjM5Mywz''@;'; put 'put ''NjM4MywzNjM4NSwzNjM4MiwzNjUzOCwzNjYzNywzNjYzNSwzNjYzOSwzNjY0OSwzNjY0NiwzNjY1MCwzNjYzNiwzNjYzOCwzNjY0NSwzNjk2OSwzNjk3NCwzNjk2OCwzNjk3MywzNjk4MywzNzE2OCwzNzE2NSwzNzE1OSwzNzE2OSwzNzI1NSwzNzI1NywzNzI1OSwzNzI1MSwzNzU3MywzNzU2''@;'; put 'put ''MywzNzU1OSwzNzYxMCwzNzU0OCwzNzYwNCwzNzU2OSwzNzU1NSwzNzU2NCwzNzU4NiwzNzU3NSwzNzYxNiwzNzU1NCwzODMxNywzODMyMSwzODY2MCwzODY2MiwzODY2MywzODY2NSwzODc1MiwzODc5NywzODc5NSwzODc5OSwzODk0NSwzODk1NSwzODk0MCwzOTA5MSwzOTE3OCwzOTE4Nywz''@;'; put 'put ''OTE4NiwzOTE5MiwzOTM4OSwzOTM3NiwzOTM5MSwzOTM4NywzOTM3NywzOTM4MSwzOTM3OCwzOTM4NSwzOTYwNywzOTY2MiwzOTY2MywzOTcxOSwzOTc0OSwzOTc0OCwzOTc5OSwzOTc5MSw0MDE5OCw0MDIwMSw0MDE5NSw0MDYxNyw0MDYzOCw0MDY1NCwyMjY5Niw0MDc4NiwyMDc1NCwyMDc2''@;'; put 'put ''MCwyMDc1NiwyMDc1MiwyMDc1NywyMDg2NCwyMDkwNiwyMDk1NywyMTEzNywyMTEzOSwyMTIzNSwyMjEwNSwyMjEyMywyMjEzNywyMjEyMSwyMjExNiwyMjEzNiwyMjEyMiwyMjEyMCwyMjExNywyMjEyOSwyMjEyNywyMjEyNCwyMjExNCwyMjEzNCwyMjcyMSwyMjcxOCwyMjcyNywyMjcyNSwy''@;'; put 'put ''Mjg5NCwyMzMyNSwyMzM0OCwyMzQxNiwyMzUzNiwyMzU2NiwyNDM5NCwyNTAxMCwyNDk3NywyNTAwMSwyNDk3MCwyNTAzNywyNTAxNCwyNTAyMiwyNTAzNCwyNTAzMiwyNTEzNiwyNTc5NywyNTc5MywyNTgwMywyNTc4NywyNTc4OCwyNTgxOCwyNTc5NiwyNTc5OSwyNTc5NCwyNTgwNSwyNTc5''@;'; put 'put ''MSwyNTgxMCwyNTgxMiwyNTc5MCwyNTk3MiwyNjMxMCwyNjMxMywyNjI5NywyNjMwOCwyNjMxMSwyNjI5NiwyNzE5NywyNzE5MiwyNzE5NCwyNzIyNSwyNzI0MywyNzIyNCwyNzE5MywyNzIwNCwyNzIzNCwyNzIzMywyNzIxMSwyNzIwNywyNzE4OSwyNzIzMSwyNzIwOCwyNzQ4MSwyNzUxMSwy''@;'; put 'put ''NzY1MywyODYxMCwyODU5MywyODU3NywyODYxMSwyODU4MCwyODYwOSwyODU4MywyODU5NSwyODYwOCwyODYwMSwyODU5OCwyODU4MiwyODU3NiwyODU5NiwyOTExOCwyOTEyOSwyOTEzNiwyOTEzOCwyOTEyOCwyOTE0MSwyOTExMywyOTEzNCwyOTE0NSwyOTE0OCwyOTEyMywyOTEyNCwyOTU0''@;'; put 'put ''NCwyOTg1MiwyOTg1OSwyOTg0OCwyOTg1NSwyOTg1NCwyOTkyMiwyOTk2NCwyOTk2NSwzMDI2MCwzMDI2NCwzMDI2NiwzMDQzOSwzMDQzNywzMDYyNCwzMDYyMiwzMDYyMywzMDYyOSwzMDk1MiwzMDkzOCwzMDk1NiwzMDk1MSwzMTE0MiwzMTMwOSwzMTMxMCwzMTMwMiwzMTMwOCwzMTMwNywz''@;'; put 'put ''MTQxOCwzMTcwNSwzMTc2MSwzMTY4OSwzMTcxNiwzMTcwNywzMTcxMywzMTcyMSwzMTcxOCwzMTk1NywzMTk1OCwzMjI2NiwzMjI3MywzMjI2NCwzMjI4MywzMjI5MSwzMjI4NiwzMjI4NSwzMjI2NSwzMjI3MiwzMjYzMywzMjY5MCwzMjc1MiwzMjc1MywzMjc1MCwzMjgwOCwzMzIwMywzMzE5''@;'; put 'put ''MywzMzE5MiwzMzI3NSwzMzI4OCwzMzM2OCwzMzM2OSwzNDEyMiwzNDEzNywzNDEyMCwzNDE1MiwzNDE1MywzNDExNSwzNDEyMSwzNDE1NywzNDE1NCwzNDE0MiwzNDY5MSwzNDcxOSwzNDcxOCwzNDcyMiwzNDcwMSwzNDkxMywzNTExNCwzNTEyMiwzNTEwOSwzNTExNSwzNTEwNSwzNTI0Miwz''@;'; put 'put ''NTIzOCwzNTU1OCwzNTU3OCwzNTU2MywzNTU2OSwzNTU4NCwzNTU0OCwzNTU1OSwzNTU2NiwzNTU4MiwzNTU4NSwzNTU4NiwzNTU3NSwzNTU2NSwzNTU3MSwzNTU3NCwzNTU4MCwzNTk0NywzNTk0OSwzNTk4NywzNjA4NCwzNjQyMCwzNjQwMSwzNjQwNCwzNjQxOCwzNjQwOSwzNjQwNSwzNjY2''@;'; put 'put ''NywzNjY1NSwzNjY2NCwzNjY1OSwzNjc3NiwzNjc3NCwzNjk4MSwzNjk4MCwzNjk4NCwzNjk3OCwzNjk4OCwzNjk4NiwzNzE3MiwzNzI2NiwzNzY2NCwzNzY4NiwzNzYyNCwzNzY4MywzNzY3OSwzNzY2NiwzNzYyOCwzNzY3NSwzNzYzNiwzNzY1OCwzNzY0OCwzNzY3MCwzNzY2NSwzNzY1Mywz''@;'; put 'put ''NzY3OCwzNzY1NywzODMzMSwzODU2NywzODU2OCwzODU3MCwzODYxMywzODY3MCwzODY3MywzODY3OCwzODY2OSwzODY3NSwzODY3MSwzODc0NywzODc0OCwzODc1OCwzODgwOCwzODk2MCwzODk2OCwzODk3MSwzODk2NywzODk1NywzODk2OSwzODk0OCwzOTE4NCwzOTIwOCwzOTE5OCwzOTE5''@;'; put 'put ''NSwzOTIwMSwzOTE5NCwzOTQwNSwzOTM5NCwzOTQwOSwzOTYwOCwzOTYxMiwzOTY3NSwzOTY2MSwzOTcyMCwzOTgyNSw0MDIxMyw0MDIyNyw0MDIzMCw0MDIzMiw0MDIxMCw0MDIxOSw0MDY2NCw0MDY2MCw0MDg0NSw0MDg2MCwyMDc3OCwyMDc2NywyMDc2OSwyMDc4NiwyMTIzNywyMjE1OCwy''@;'; put 'put ''MjE0NCwyMjE2MCwyMjE0OSwyMjE1MSwyMjE1OSwyMjc0MSwyMjczOSwyMjczNywyMjczNCwyMzM0NCwyMzMzOCwyMzMzMiwyMzQxOCwyMzYwNywyMzY1NiwyMzk5NiwyMzk5NCwyMzk5NywyMzk5MiwyNDE3MSwyNDM5NiwyNDUwOSwyNTAzMywyNTAyNiwyNTAzMSwyNTA2MiwyNTAzNSwyNTEz''@;'; put 'put ''OCwyNTE0MCwyNTgwNiwyNTgwMiwyNTgxNiwyNTgyNCwyNTg0MCwyNTgzMCwyNTgzNiwyNTg0MSwyNTgyNiwyNTgzNywyNTk4NiwyNTk4NywyNjMyOSwyNjMyNiwyNzI2NCwyNzI4NCwyNzI2OCwyNzI5OCwyNzI5MiwyNzM1NSwyNzI5OSwyNzI2MiwyNzI4NywyNzI4MCwyNzI5NiwyNzQ4NCwy''@;'; put 'put ''NzU2NiwyNzYxMCwyNzY1NiwyODYzMiwyODY1NywyODYzOSwyODY0MCwyODYzNSwyODY0NCwyODY1MSwyODY1NSwyODU0NCwyODY1MiwyODY0MSwyODY0OSwyODYyOSwyODY1NCwyODY1NiwyOTE1OSwyOTE1MSwyOTE2NiwyOTE1OCwyOTE1NywyOTE2NSwyOTE2NCwyOTE3MiwyOTE1MiwyOTIz''@;'; put 'put ''NywyOTI1NCwyOTU1MiwyOTU1NCwyOTg2NSwyOTg3MiwyOTg2MiwyOTg2NCwzMDI3OCwzMDI3NCwzMDI4NCwzMDQ0MiwzMDY0MywzMDYzNCwzMDY0MCwzMDYzNiwzMDYzMSwzMDYzNywzMDcwMywzMDk2NywzMDk3MCwzMDk2NCwzMDk1OSwzMDk3NywzMTE0MywzMTE0NiwzMTMxOSwzMTQyMywz''@;'; put 'put ''MTc1MSwzMTc1NywzMTc0MiwzMTczNSwzMTc1NiwzMTcxMiwzMTk2OCwzMTk2NCwzMTk2NiwzMTk3MCwzMTk2NywzMTk2MSwzMTk2NSwzMjMwMiwzMjMxOCwzMjMyNiwzMjMxMSwzMjMwNiwzMjMyMywzMjI5OSwzMjMxNywzMjMwNSwzMjMyNSwzMjMyMSwzMjMwOCwzMjMxMywzMjMyOCwzMjMw''@;'; put 'put ''OSwzMjMxOSwzMjMwMywzMjU4MCwzMjc1NSwzMjc2NCwzMjg4MSwzMjg4MiwzMjg4MCwzMjg3OSwzMjg4MywzMzIyMiwzMzIxOSwzMzIxMCwzMzIxOCwzMzIxNiwzMzIxNSwzMzIxMywzMzIyNSwzMzIxNCwzMzI1NiwzMzI4OSwzMzM5MywzNDIxOCwzNDE4MCwzNDE3NCwzNDIwNCwzNDE5Mywz''@;'; put 'put ''NDE5NiwzNDIyMywzNDIwMywzNDE4MywzNDIxNiwzNDE4NiwzNDQwNywzNDc1MiwzNDc2OSwzNDczOSwzNDc3MCwzNDc1OCwzNDczMSwzNDc0NywzNDc0NiwzNDc2MCwzNDc2MywzNTEzMSwzNTEyNiwzNTE0MCwzNTEyOCwzNTEzMywzNTI0NCwzNTU5OCwzNTYwNywzNTYwOSwzNTYxMSwzNTU5''@;'; put 'put ''NCwzNTYxNiwzNTYxMywzNTU4OCwzNTYwMCwzNTkwNSwzNTkwMywzNTk1NSwzNjA5MCwzNjA5MywzNjA5MiwzNjA4OCwzNjA5MSwzNjI2NCwzNjQyNSwzNjQyNywzNjQyNCwzNjQyNiwzNjY3NiwzNjY3MCwzNjY3NCwzNjY3NywzNjY3MSwzNjk5MSwzNjk4OSwzNjk5NiwzNjk5MywzNjk5NCwz''@;'; put 'put ''Njk5MiwzNzE3NywzNzI4MywzNzI3OCwzNzI3NiwzNzcwOSwzNzc2MiwzNzY3MiwzNzc0OSwzNzcwNiwzNzczMywzNzcwNywzNzY1NiwzNzc1OCwzNzc0MCwzNzcyMywzNzc0NCwzNzcyMiwzNzcxNiwzODM0NiwzODM0NywzODM0OCwzODM0NCwzODM0MiwzODU3NywzODU4NCwzODYxNCwzODY4''@;'; put 'put ''NCwzODY4NiwzODgxNiwzODg2NywzODk4MiwzOTA5NCwzOTIyMSwzOTQyNSwzOTQyMywzOTg1NCwzOTg1MSwzOTg1MCwzOTg1Myw0MDI1MSw0MDI1NSw0MDU4Nyw0MDY1NSw0MDY3MCw0MDY2OCw0MDY2OSw0MDY2Nyw0MDc2Niw0MDc3OSwyMTQ3NCwyMjE2NSwyMjE5MCwyMjc0NSwyMjc0NCwy''@;'; put 'put ''MzM1MiwyNDQxMywyNTA1OSwyNTEzOSwyNTg0NCwyNTg0MiwyNTg1NCwyNTg2MiwyNTg1MCwyNTg1MSwyNTg0NywyNjAzOSwyNjMzMiwyNjQwNiwyNzMxNSwyNzMwOCwyNzMzMSwyNzMyMywyNzMyMCwyNzMzMCwyNzMxMCwyNzMxMSwyNzQ4NywyNzUxMiwyNzU2NywyODY4MSwyODY4MywyODY3''@;'; put 'put ''MCwyODY3OCwyODY2NiwyODY4OSwyODY4NywyOTE3OSwyOTE4MCwyOTE4MiwyOTE3NiwyOTU1OSwyOTU1NywyOTg2MywyOTg4NywyOTk3MywzMDI5NCwzMDI5NiwzMDI5MCwzMDY1MywzMDY1NSwzMDY1MSwzMDY1MiwzMDk5MCwzMTE1MCwzMTMyOSwzMTMzMCwzMTMyOCwzMTQyOCwzMTQyOSwz''@;'; put 'put ''MTc4NywzMTc4MywzMTc4NiwzMTc3NCwzMTc3OSwzMTc3NywzMTk3NSwzMjM0MCwzMjM0MSwzMjM1MCwzMjM0NiwzMjM1MywzMjMzOCwzMjM0NSwzMjU4NCwzMjc2MSwzMjc2MywzMjg4NywzMjg4NiwzMzIyOSwzMzIzMSwzMzI5MCwzNDI1NSwzNDIxNywzNDI1MywzNDI1NiwzNDI0OSwzNDIy''@;'; put 'put ''NCwzNDIzNCwzNDIzMywzNDIxNCwzNDc5OSwzNDc5NiwzNDgwMiwzNDc4NCwzNTIwNiwzNTI1MCwzNTMxNiwzNTYyNCwzNTY0MSwzNTYyOCwzNTYyNywzNTkyMCwzNjEwMSwzNjQ0MSwzNjQ1MSwzNjQ1NCwzNjQ1MiwzNjQ0NywzNjQzNywzNjU0NCwzNjY4MSwzNjY4NSwzNjk5OSwzNjk5NSwz''@;'; put 'put ''N2UzLDM3MjkxLDM3MjkyLDM3MzI4LDM3NzgwLDM3NzcwLDM3NzgyLDM3Nzk0LDM3ODExLDM3ODA2LDM3ODA0LDM3ODA4LDM3Nzg0LDM3Nzg2LDM3NzgzLDM4MzU2LDM4MzU4LDM4MzUyLDM4MzU3LDM4NjI2LDM4NjIwLDM4NjE3LDM4NjE5LDM4NjIyLDM4NjkyLDM4ODE5LDM4ODIyLDM4ODI5''@;'; put 'put ''LDM4OTA1LDM4OTg5LDM4OTkxLDM4OTg4LDM4OTkwLDM4OTk1LDM5MDk4LDM5MjMwLDM5MjMxLDM5MjI5LDM5MjE0LDM5MzMzLDM5NDM4LDM5NjE3LDM5NjgzLDM5Njg2LDM5NzU5LDM5NzU4LDM5NzU3LDM5ODgyLDM5ODgxLDM5OTMzLDM5ODgwLDM5ODcyLDQwMjczLDQwMjg1LDQwMjg4LDQw''@;'; put 'put ''NjcyLDQwNzI1LDQwNzQ4LDIwNzg3LDIyMTgxLDIyNzUwLDIyNzUxLDIyNzU0LDIzNTQxLDQwODQ4LDI0MzAwLDI1MDc0LDI1MDc5LDI1MDc4LDI1MDc3LDI1ODU2LDI1ODcxLDI2MzM2LDI2MzMzLDI3MzY1LDI3MzU3LDI3MzU0LDI3MzQ3LDI4Njk5LDI4NzAzLDI4NzEyLDI4Njk4LDI4NzAx''@;'; put 'put ''LDI4NjkzLDI4Njk2LDI5MTkwLDI5MTk3LDI5MjcyLDI5MzQ2LDI5NTYwLDI5NTYyLDI5ODg1LDI5ODk4LDI5OTIzLDMwMDg3LDMwMDg2LDMwMzAzLDMwMzA1LDMwNjYzLDMxMDAxLDMxMTUzLDMxMzM5LDMxMzM3LDMxODA2LDMxODA3LDMxODAwLDMxODA1LDMxNzk5LDMxODA4LDMyMzYzLDMy''@;'; put 'put ''MzY1LDMyMzc3LDMyMzYxLDMyMzYyLDMyNjQ1LDMyMzcxLDMyNjk0LDMyNjk3LDMyNjk2LDMzMjQwLDM0MjgxLDM0MjY5LDM0MjgyLDM0MjYxLDM0Mjc2LDM0Mjc3LDM0Mjk1LDM0ODExLDM0ODIxLDM0ODI5LDM0ODA5LDM0ODE0LDM1MTY4LDM1MTY3LDM1MTU4LDM1MTY2LDM1NjQ5LDM1Njc2''@;'; put 'put ''LDM1NjcyLDM1NjU3LDM1Njc0LDM1NjYyLDM1NjYzLDM1NjU0LDM1NjczLDM2MTA0LDM2MTA2LDM2NDc2LDM2NDY2LDM2NDg3LDM2NDcwLDM2NDYwLDM2NDc0LDM2NDY4LDM2NjkyLDM2Njg2LDM2NzgxLDM3MDAyLDM3MDAzLDM3Mjk3LDM3Mjk0LDM3ODU3LDM3ODQxLDM3ODU1LDM3ODI3LDM3''@;'; put 'put ''ODMyLDM3ODUyLDM3ODUzLDM3ODQ2LDM3ODU4LDM3ODM3LDM3ODQ4LDM3ODYwLDM3ODQ3LDM3ODY0LDM4MzY0LDM4NTgwLDM4NjI3LDM4Njk4LDM4Njk1LDM4NzUzLDM4ODc2LDM4OTA3LDM5MDA2LDM5ZTMsMzkwMDMsMzkxMDAsMzkyMzcsMzkyNDEsMzk0NDYsMzk0NDksMzk2OTMsMzk5MTIs''@;'; put 'put ''Mzk5MTEsMzk4OTQsMzk4OTksNDAzMjksNDAyODksNDAzMDYsNDAyOTgsNDAzMDAsNDA1OTQsNDA1OTksNDA1OTUsNDA2MjgsMjEyNDAsMjIxODQsMjIxOTksMjIxOTgsMjIxOTYsMjIyMDQsMjI3NTYsMjMzNjAsMjMzNjMsMjM0MjEsMjM1NDIsMjQwMDksMjUwODAsMjUwODIsMjU4ODAsMjU4''@;'; put 'put ''NzYsMjU4ODEsMjYzNDIsMjY0MDcsMjczNzIsMjg3MzQsMjg3MjAsMjg3MjIsMjkyMDAsMjk1NjMsMjk5MDMsMzAzMDYsMzAzMDksMzEwMTQsMzEwMTgsMzEwMjAsMzEwMTksMzE0MzEsMzE0NzgsMzE4MjAsMzE4MTEsMzE4MjEsMzE5ODMsMzE5ODQsMzY3ODIsMzIzODEsMzIzODAsMzIzODYs''@;'; put 'put ''MzI1ODgsMzI3NjgsMzMyNDIsMzMzODIsMzQyOTksMzQyOTcsMzQzMjEsMzQyOTgsMzQzMTAsMzQzMTUsMzQzMTEsMzQzMTQsMzQ4MzYsMzQ4MzcsMzUxNzIsMzUyNTgsMzUzMjAsMzU2OTYsMzU2OTIsMzU2ODYsMzU2OTUsMzU2NzksMzU2OTEsMzYxMTEsMzYxMDksMzY0ODksMzY0ODEsMzY0''@;'; put 'put ''ODUsMzY0ODIsMzczMDAsMzczMjMsMzc5MTIsMzc4OTEsMzc4ODUsMzgzNjksMzg3MDQsMzkxMDgsMzkyNTAsMzkyNDksMzkzMzYsMzk0NjcsMzk0NzIsMzk0NzksMzk0NzcsMzk5NTUsMzk5NDksNDA1NjksNDA2MjksNDA2ODAsNDA3NTEsNDA3OTksNDA4MDMsNDA4MDEsMjA3OTEsMjA3OTIs''@;'; put 'put ''MjIyMDksMjIyMDgsMjIyMTAsMjI4MDQsMjM2NjAsMjQwMTMsMjUwODQsMjUwODYsMjU4ODUsMjU4ODQsMjYwMDUsMjYzNDUsMjczODcsMjczOTYsMjczODYsMjc1NzAsMjg3NDgsMjkyMTEsMjkzNTEsMjk5MTAsMjk5MDgsMzAzMTMsMzA2NzUsMzE4MjQsMzIzOTksMzIzOTYsMzI3MDAsMzQz''@;'; put 'put ''MjcsMzQzNDksMzQzMzAsMzQ4NTEsMzQ4NTAsMzQ4NDksMzQ4NDcsMzUxNzgsMzUxODAsMzUyNjEsMzU3MDAsMzU3MDMsMzU3MDksMzYxMTUsMzY0OTAsMzY0OTMsMzY0OTEsMzY3MDMsMzY3ODMsMzczMDYsMzc5MzQsMzc5MzksMzc5NDEsMzc5NDYsMzc5NDQsMzc5MzgsMzc5MzEsMzgzNzAs''@;'; put 'put ''Mzg3MTIsMzg3MTMsMzg3MDYsMzg5MTEsMzkwMTUsMzkwMTMsMzkyNTUsMzk0OTMsMzk0OTEsMzk0ODgsMzk0ODYsMzk2MzEsMzk3NjQsMzk3NjEsMzk5ODEsMzk5NzMsNDAzNjcsNDAzNzIsNDAzODYsNDAzNzYsNDA2MDUsNDA2ODcsNDA3MjksNDA3OTYsNDA4MDYsNDA4MDcsMjA3OTYsMjA3''@;'; put 'put ''OTUsMjIyMTYsMjIyMTgsMjIyMTcsMjM0MjMsMjQwMjAsMjQwMTgsMjQzOTgsMjUwODcsMjU4OTIsMjc0MDIsMjc0ODksMjg3NTMsMjg3NjAsMjk1NjgsMjk5MjQsMzAwOTAsMzAzMTgsMzAzMTYsMzExNTUsMzE4NDAsMzE4MzksMzI4OTQsMzI4OTMsMzMyNDcsMzUxODYsMzUxODMsMzUzMjQs''@;'; put 'put ''MzU3MTIsMzYxMTgsMzYxMTksMzY0OTcsMzY0OTksMzY3MDUsMzcxOTIsMzc5NTYsMzc5NjksMzc5NzAsMzg3MTcsMzg3MTgsMzg4NTEsMzg4NDksMzkwMTksMzkyNTMsMzk1MDksMzk1MDEsMzk2MzQsMzk3MDYsNDAwMDksMzk5ODUsMzk5OTgsMzk5OTUsNDA0MDMsNDA0MDcsNDA3NTYsNDA4''@;'; put 'put ''MTIsNDA4MTAsNDA4NTIsMjIyMjAsMjQwMjIsMjUwODgsMjU4OTEsMjU4OTksMjU4OTgsMjYzNDgsMjc0MDgsMjk5MTQsMzE0MzQsMzE4NDQsMzE4NDMsMzE4NDUsMzI0MDMsMzI0MDYsMzI0MDQsMzMyNTAsMzQzNjAsMzQzNjcsMzQ4NjUsMzU3MjIsMzcwMDgsMzcwMDcsMzc5ODcsMzc5ODQs''@;'; put 'put ''Mzc5ODgsMzg3NjAsMzkwMjMsMzkyNjAsMzk1MTQsMzk1MTUsMzk1MTEsMzk2MzUsMzk2MzYsMzk2MzMsNDAwMjAsNDAwMjMsNDAwMjIsNDA0MjEsNDA2MDcsNDA2OTIsMjIyMjUsMjI3NjEsMjU5MDAsMjg3NjYsMzAzMjEsMzAzMjIsMzA2NzksMzI1OTIsMzI2NDgsMzQ4NzAsMzQ4NzMsMzQ5''@;'; put 'put ''MTQsMzU3MzEsMzU3MzAsMzU3MzQsMzMzOTksMzYxMjMsMzczMTIsMzc5OTQsMzg3MjIsMzg3MjgsMzg3MjQsMzg4NTQsMzkwMjQsMzk1MTksMzk3MTQsMzk3NjgsNDAwMzEsNDA0NDEsNDA0NDIsNDA1NzIsNDA1NzMsNDA3MTEsNDA4MjMsNDA4MTgsMjQzMDcsMjc0MTQsMjg3NzEsMzE4NTIs''@;'; put 'put ''MzE4NTQsMzQ4NzUsMzUyNjQsMzY1MTMsMzczMTMsMzgwMDIsMzhlMywzOTAyNSwzOTI2MiwzOTYzOCwzOTcxNSw0MDY1MiwyODc3MiwzMDY4MiwzNTczOCwzODAwNywzODg1NywzOTUyMiwzOTUyNSwzMjQxMiwzNTc0MCwzNjUyMiwzNzMxNywzODAxMywzODAxNCwzODAxMiw0MDA1NSw0MDA1''@;'; put 'put ''Niw0MDY5NSwzNTkyNCwzODAxNSw0MDQ3NCwyOTIyNCwzOTUzMCwzOTcyOSw0MDQ3NSw0MDQ3OCwzMTg1OCw5MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDkzMzIsOTMzMyw5MzM0LDkzMzUsOTMzNiw5MzM3LDkzMzgsOTMzOSw5MzQwLDkzNDEsODU2''@;'; put 'put ''MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1NjUsODU2Niw4NTY3LDg1NjgsODU2OSwyMDAyMiwyMDAzMSwyMDEwMSwyMDEyOCwyMDg2NiwyMDg4NiwyMDkwNywyMTI0MSwyMTMwNCwyMTM1MywyMTQzMCwyMjc5NCwyMzQyNCwyNDAyNywxMjA4MywyNDE5MSwyNDMwOCwyNDQwMCwyNDQxNywyNTkw''@;'; put 'put ''OCwyNjA4MCwzMDA5OCwzMDMyNiwzNjc4OSwzODU4MiwxNjgsNzEwLDEyNTQxLDEyNTQyLDEyNDQ1LDEyNDQ2LDEyMjkxLDIwMTg5LDEyMjkzLDEyMjk0LDEyMjk1LDEyNTQwLDY1MzM5LDY1MzQxLDEwMDQ1LDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEyMzU5LDEyMzYw''@;'; put 'put ''LDEyMzYxLDEyMzYyLDEyMzYzLDEyMzY0LDEyMzY1LDEyMzY2LDEyMzY3LDEyMzY4LDEyMzY5LDEyMzcwLDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1LDEyMzg2LDEyMzg3LDEy''@;'; put 'put ''Mzg4LDEyMzg5LDEyMzkwLDEyMzkxLDEyMzkyLDEyMzkzLDEyMzk0LDEyMzk1LDEyMzk2LDEyMzk3LDEyMzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEyNDEzLDEyNDE0LDEyNDE1''@;'; put 'put ''LDEyNDE2LDEyNDE3LDEyNDE4LDEyNDE5LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDI1LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUyLDEyNDUzLDEyNDU0LDEyNDU1LDEy''@;'; put 'put ''NDU2LDEyNDU3LDEyNDU4LDEyNDU5LDEyNDYwLDEyNDYxLDEyNDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEyNDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4LDEyNDc5LDEyNDgwLDEyNDgxLDEyNDgyLDEyNDgz''@;'; put 'put ''LDEyNDg0LDEyNDg1LDEyNDg2LDEyNDg3LDEyNDg4LDEyNDg5LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAxLDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEyNTA2LDEyNTA3LDEyNTA4LDEyNTA5LDEyNTEwLDEy''@;'; put 'put ''NTExLDEyNTEyLDEyNTEzLDEyNTE0LDEyNTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEyNTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMzLDEyNTM0LDEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0''@;'; put 'put ''NCwxMDQ1LDEwMjUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3''@;'; put 'put ''NiwxMDc3LDExMDUsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDg2NzksODYzMiw4NjMzLDEyNzUxLDEz''@;'; put 'put ''MTI3NiwyMDA1OCwxMzEyMTAsMjA5OTQsMTc1NTMsNDA4ODAsMjA4NzIsNDA4ODEsMTYxMjg3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsMTI4NDksODQ3MCw4NDgxLDEyNDQzLDEyNDQ0LDExOTA0LDExOTA4LDExOTEwLDExOTEx''@;'; put 'put ''LDExOTEyLDExOTE0LDExOTE2LDExOTE3LDExOTI1LDExOTMyLDExOTMzLDExOTQxLDExOTQzLDExOTQ2LDExOTQ4LDExOTUwLDExOTU4LDExOTY0LDExOTY2LDExOTc0LDExOTc4LDExOTgwLDExOTgxLDExOTgzLDExOTkwLDExOTkxLDExOTk4LDEyMDAzLG51bGwsbnVsbCxudWxsLDY0Myw1''@;'; put 'put ''OTIsNjAzLDU5Niw2MjksMzM5LDI0OCwzMzEsNjUwLDYxOCwyMDAzNCwyMDA2MCwyMDk4MSwyMTI3NCwyMTM3OCwxOTk3NSwxOTk4MCwyMDAzOSwyMDEwOSwyMjIzMSw2NDAxMiwyMzY2MiwyNDQzNSwxOTk4MywyMDg3MSwxOTk4MiwyMDAxNCwyMDExNSwyMDE2MiwyMDE2OSwyMDE2OCwyMDg4''@;'; put 'put ''OCwyMTI0NCwyMTM1NiwyMTQzMywyMjMwNCwyMjc4NywyMjgyOCwyMzU2OCwyNDA2MywyNjA4MSwyNzU3MSwyNzU5NiwyNzY2OCwyOTI0NywyMDAxNywyMDAyOCwyMDIwMCwyMDE4OCwyMDIwMSwyMDE5MywyMDE4OSwyMDE4NiwyMTAwNCwyMTI3NiwyMTMyNCwyMjMwNiwyMjMwNywyMjgwNywy''@;'; put 'put ''MjgzMSwyMzQyNSwyMzQyOCwyMzU3MCwyMzYxMSwyMzY2OCwyMzY2NywyNDA2OCwyNDE5MiwyNDE5NCwyNDUyMSwyNTA5NywyNTE2OCwyNzY2OSwyNzcwMiwyNzcxNSwyNzcxMSwyNzcwNywyOTM1OCwyOTM2MCwyOTU3OCwzMTE2MCwzMjkwNiwzODQzMCwyMDIzOCwyMDI0OCwyMDI2OCwyMDIx''@;'; put 'put ''MywyMDI0NCwyMDIwOSwyMDIyNCwyMDIxNSwyMDIzMiwyMDI1MywyMDIyNiwyMDIyOSwyMDI1OCwyMDI0MywyMDIyOCwyMDIxMiwyMDI0MiwyMDkxMywyMTAxMSwyMTAwMSwyMTAwOCwyMTE1OCwyMTI4MiwyMTI3OSwyMTMyNSwyMTM4NiwyMTUxMSwyMjI0MSwyMjIzOSwyMjMxOCwyMjMxNCwy''@;'; put 'put ''MjMyNCwyMjg0NCwyMjkxMiwyMjkwOCwyMjkxNywyMjkwNywyMjkxMCwyMjkwMywyMjkxMSwyMzM4MiwyMzU3MywyMzU4OSwyMzY3NiwyMzY3NCwyMzY3NSwyMzY3OCwyNDAzMSwyNDE4MSwyNDE5NiwyNDMyMiwyNDM0NiwyNDQzNiwyNDUzMywyNDUzMiwyNDUyNywyNTE4MCwyNTE4MiwyNTE4''@;'; put 'put ''OCwyNTE4NSwyNTE5MCwyNTE4NiwyNTE3NywyNTE4NCwyNTE3OCwyNTE4OSwyNjA5NSwyNjA5NCwyNjQzMCwyNjQyNSwyNjQyNCwyNjQyNywyNjQyNiwyNjQzMSwyNjQyOCwyNjQxOSwyNzY3MiwyNzcxOCwyNzczMCwyNzc0MCwyNzcyNywyNzcyMiwyNzczMiwyNzcyMywyNzcyNCwyODc4NSwy''@;'; put 'put ''OTI3OCwyOTM2NCwyOTM2NSwyOTU4MiwyOTk5NCwzMDMzNSwzMTM0OSwzMjU5MywzMzQwMCwzMzQwNCwzMzQwOCwzMzQwNSwzMzQwNywzNDM4MSwzNTE5OCwzNzAxNywzNzAxNSwzNzAxNiwzNzAxOSwzNzAxMiwzODQzNCwzODQzNiwzODQzMiwzODQzNSwyMDMxMCwyMDI4MywyMDMyMiwyMDI5''@;'; put 'put ''NywyMDMwNywyMDMyNCwyMDI4NiwyMDMyNywyMDMwNiwyMDMxOSwyMDI4OSwyMDMxMiwyMDI2OSwyMDI3NSwyMDI4NywyMDMyMSwyMDg3OSwyMDkyMSwyMTAyMCwyMTAyMiwyMTAyNSwyMTE2NSwyMTE2NiwyMTI1NywyMTM0NywyMTM2MiwyMTM5MCwyMTM5MSwyMTU1MiwyMTU1OSwyMTU0Niwy''@;'; put 'put ''MTU4OCwyMTU3MywyMTUyOSwyMTUzMiwyMTU0MSwyMTUyOCwyMTU2NSwyMTU4MywyMTU2OSwyMTU0NCwyMTU0MCwyMTU3NSwyMjI1NCwyMjI0NywyMjI0NSwyMjMzNywyMjM0MSwyMjM0OCwyMjM0NSwyMjM0NywyMjM1NCwyMjc5MCwyMjg0OCwyMjk1MCwyMjkzNiwyMjk0NCwyMjkzNSwyMjky''@;'; put 'put ''NiwyMjk0NiwyMjkyOCwyMjkyNywyMjk1MSwyMjk0NSwyMzQzOCwyMzQ0MiwyMzU5MiwyMzU5NCwyMzY5MywyMzY5NSwyMzY4OCwyMzY5MSwyMzY4OSwyMzY5OCwyMzY5MCwyMzY4NiwyMzY5OSwyMzcwMSwyNDAzMiwyNDA3NCwyNDA3OCwyNDIwMywyNDIwMSwyNDIwNCwyNDIwMCwyNDIwNSwy''@;'; put 'put ''NDMyNSwyNDM0OSwyNDQ0MCwyNDQzOCwyNDUzMCwyNDUyOSwyNDUyOCwyNDU1NywyNDU1MiwyNDU1OCwyNDU2MywyNDU0NSwyNDU0OCwyNDU0NywyNDU3MCwyNDU1OSwyNDU2NywyNDU3MSwyNDU3NiwyNDU2NCwyNTE0NiwyNTIxOSwyNTIyOCwyNTIzMCwyNTIzMSwyNTIzNiwyNTIyMywyNTIw''@;'; put 'put ''MSwyNTIxMSwyNTIxMCwyNTIwMCwyNTIxNywyNTIyNCwyNTIwNywyNTIxMywyNTIwMiwyNTIwNCwyNTkxMSwyNjA5NiwyNjEwMCwyNjA5OSwyNjA5OCwyNjEwMSwyNjQzNywyNjQzOSwyNjQ1NywyNjQ1MywyNjQ0NCwyNjQ0MCwyNjQ2MSwyNjQ0NSwyNjQ1OCwyNjQ0MywyNzYwMCwyNzY3Mywy''@;'; put 'put ''NzY3NCwyNzc2OCwyNzc1MSwyNzc1NSwyNzc4MCwyNzc4NywyNzc5MSwyNzc2MSwyNzc1OSwyNzc1MywyNzgwMiwyNzc1NywyNzc4MywyNzc5NywyNzgwNCwyNzc1MCwyNzc2MywyNzc0OSwyNzc3MSwyNzc5MCwyODc4OCwyODc5NCwyOTI4MywyOTM3NSwyOTM3MywyOTM3OSwyOTM4MiwyOTM3''@;'; put 'put ''NywyOTM3MCwyOTM4MSwyOTU4OSwyOTU5MSwyOTU4NywyOTU4OCwyOTU4NiwzMDAxMCwzMDAwOSwzMDEwMCwzMDEwMSwzMDMzNywzMTAzNywzMjgyMCwzMjkxNywzMjkyMSwzMjkxMiwzMjkxNCwzMjkyNCwzMzQyNCwzMzQyMywzMzQxMywzMzQyMiwzMzQyNSwzMzQyNywzMzQxOCwzMzQxMSwz''@;'; put 'put ''MzQxMiwzNTk2MCwzNjgwOSwzNjc5OSwzNzAyMywzNzAyNSwzNzAyOSwzNzAyMiwzNzAzMSwzNzAyNCwzODQ0OCwzODQ0MCwzODQ0NywzODQ0NSwyMDAxOSwyMDM3NiwyMDM0OCwyMDM1NywyMDM0OSwyMDM1MiwyMDM1OSwyMDM0MiwyMDM0MCwyMDM2MSwyMDM1NiwyMDM0MywyMDMwMCwyMDM3''@;'; put 'put ''NSwyMDMzMCwyMDM3OCwyMDM0NSwyMDM1MywyMDM0NCwyMDM2OCwyMDM4MCwyMDM3MiwyMDM4MiwyMDM3MCwyMDM1NCwyMDM3MywyMDMzMSwyMDMzNCwyMDg5NCwyMDkyNCwyMDkyNiwyMTA0NSwyMTA0MiwyMTA0MywyMTA2MiwyMTA0MSwyMTE4MCwyMTI1OCwyMTI1OSwyMTMwOCwyMTM5NCwy''@;'; put 'put ''MTM5NiwyMTYzOSwyMTYzMSwyMTYzMywyMTY0OSwyMTYzNCwyMTY0MCwyMTYxMSwyMTYyNiwyMTYzMCwyMTYwNSwyMTYxMiwyMTYyMCwyMTYwNiwyMTY0NSwyMTYxNSwyMTYwMSwyMTYwMCwyMTY1NiwyMTYwMywyMTYwNywyMTYwNCwyMjI2MywyMjI2NSwyMjM4MywyMjM4NiwyMjM4MSwyMjM3''@;'; put 'put ''OSwyMjM4NSwyMjM4NCwyMjM5MCwyMjQwMCwyMjM4OSwyMjM5NSwyMjM4NywyMjM4OCwyMjM3MCwyMjM3NiwyMjM5NywyMjc5NiwyMjg1MywyMjk2NSwyMjk3MCwyMjk5MSwyMjk5MCwyMjk2MiwyMjk4OCwyMjk3NywyMjk2NiwyMjk3MiwyMjk3OSwyMjk5OCwyMjk2MSwyMjk3MywyMjk3Niwy''@;'; put 'put ''Mjk4NCwyMjk2NCwyMjk4MywyMzM5NCwyMzM5NywyMzQ0MywyMzQ0NSwyMzYyMCwyMzYyMywyMzcyNiwyMzcxNiwyMzcxMiwyMzczMywyMzcyNywyMzcyMCwyMzcyNCwyMzcxMSwyMzcxNSwyMzcyNSwyMzcxNCwyMzcyMiwyMzcxOSwyMzcwOSwyMzcxNywyMzczNCwyMzcyOCwyMzcxOCwyNDA4''@;'; put 'put ''NywyNDA4NCwyNDA4OSwyNDM2MCwyNDM1NCwyNDM1NSwyNDM1NiwyNDQwNCwyNDQ1MCwyNDQ0NiwyNDQ0NSwyNDU0MiwyNDU0OSwyNDYyMSwyNDYxNCwyNDYwMSwyNDYyNiwyNDU4NywyNDYyOCwyNDU4NiwyNDU5OSwyNDYyNywyNDYwMiwyNDYwNiwyNDYyMCwyNDYxMCwyNDU4OSwyNDU5Miwy''@;'; put 'put ''NDYyMiwyNDU5NSwyNDU5MywyNDU4OCwyNDU4NSwyNDYwNCwyNTEwOCwyNTE0OSwyNTI2MSwyNTI2OCwyNTI5NywyNTI3OCwyNTI1OCwyNTI3MCwyNTI5MCwyNTI2MiwyNTI2NywyNTI2MywyNTI3NSwyNTI1NywyNTI2NCwyNTI3MiwyNTkxNywyNjAyNCwyNjA0MywyNjEyMSwyNjEwOCwyNjEx''@;'; put 'put ''NiwyNjEzMCwyNjEyMCwyNjEwNywyNjExNSwyNjEyMywyNjEyNSwyNjExNywyNjEwOSwyNjEyOSwyNjEyOCwyNjM1OCwyNjM3OCwyNjUwMSwyNjQ3NiwyNjUxMCwyNjUxNCwyNjQ4NiwyNjQ5MSwyNjUyMCwyNjUwMiwyNjUwMCwyNjQ4NCwyNjUwOSwyNjUwOCwyNjQ5MCwyNjUyNywyNjUxMywy''@;'; put 'put ''NjUyMSwyNjQ5OSwyNjQ5MywyNjQ5NywyNjQ4OCwyNjQ4OSwyNjUxNiwyNzQyOSwyNzUyMCwyNzUxOCwyNzYxNCwyNzY3NywyNzc5NSwyNzg4NCwyNzg4MywyNzg4NiwyNzg2NSwyNzgzMCwyNzg2MCwyNzgyMSwyNzg3OSwyNzgzMSwyNzg1NiwyNzg0MiwyNzgzNCwyNzg0MywyNzg0NiwyNzg4''@;'; put 'put ''NSwyNzg5MCwyNzg1OCwyNzg2OSwyNzgyOCwyNzc4NiwyNzgwNSwyNzc3NiwyNzg3MCwyNzg0MCwyNzk1MiwyNzg1MywyNzg0NywyNzgyNCwyNzg5NywyNzg1NSwyNzg4MSwyNzg1NywyODgyMCwyODgyNCwyODgwNSwyODgxOSwyODgwNiwyODgwNCwyODgxNywyODgyMiwyODgwMiwyODgyNiwy''@;'; put 'put ''ODgwMywyOTI5MCwyOTM5OCwyOTM4NywyOTQwMCwyOTM4NSwyOTQwNCwyOTM5NCwyOTM5NiwyOTQwMiwyOTM4OCwyOTM5MywyOTYwNCwyOTYwMSwyOTYxMywyOTYwNiwyOTYwMiwyOTYwMCwyOTYxMiwyOTU5NywyOTkxNywyOTkyOCwzMDAxNSwzMDAxNiwzMDAxNCwzMDA5MiwzMDEwNCwzMDM4''@;'; put 'put ''MywzMDQ1MSwzMDQ0OSwzMDQ0OCwzMDQ1MywzMDcxMiwzMDcxNiwzMDcxMywzMDcxNSwzMDcxNCwzMDcxMSwzMTA0MiwzMTAzOSwzMTE3MywzMTM1MiwzMTM1NSwzMTQ4MywzMTg2MSwzMTk5NywzMjgyMSwzMjkxMSwzMjk0MiwzMjkzMSwzMjk1MiwzMjk0OSwzMjk0MSwzMzMxMiwzMzQ0MCwz''@;'; put 'put ''MzQ3MiwzMzQ1MSwzMzQzNCwzMzQzMiwzMzQzNSwzMzQ2MSwzMzQ0NywzMzQ1NCwzMzQ2OCwzMzQzOCwzMzQ2NiwzMzQ2MCwzMzQ0OCwzMzQ0MSwzMzQ0OSwzMzQ3NCwzMzQ0NCwzMzQ3NSwzMzQ2MiwzMzQ0MiwzNDQxNiwzNDQxNSwzNDQxMywzNDQxNCwzNTkyNiwzNjgxOCwzNjgxMSwzNjgx''@;'; put 'put ''OSwzNjgxMywzNjgyMiwzNjgyMSwzNjgyMywzNzA0MiwzNzA0NCwzNzAzOSwzNzA0MywzNzA0MCwzODQ1NywzODQ2MSwzODQ2MCwzODQ1OCwzODQ2NywyMDQyOSwyMDQyMSwyMDQzNSwyMDQwMiwyMDQyNSwyMDQyNywyMDQxNywyMDQzNiwyMDQ0NCwyMDQ0MSwyMDQxMSwyMDQwMywyMDQ0Mywy''@;'; put 'put ''MDQyMywyMDQzOCwyMDQxMCwyMDQxNiwyMDQwOSwyMDQ2MCwyMTA2MCwyMTA2NSwyMTE4NCwyMTE4NiwyMTMwOSwyMTM3MiwyMTM5OSwyMTM5OCwyMTQwMSwyMTQwMCwyMTY5MCwyMTY2NSwyMTY3NywyMTY2OSwyMTcxMSwyMTY5OSwzMzU0OSwyMTY4NywyMTY3OCwyMTcxOCwyMTY4NiwyMTcw''@;'; put 'put ''MSwyMTcwMiwyMTY2NCwyMTYxNiwyMTY5MiwyMTY2NiwyMTY5NCwyMTYxOCwyMTcyNiwyMTY4MCwyMjQ1MywyMjQzMCwyMjQzMSwyMjQzNiwyMjQxMiwyMjQyMywyMjQyOSwyMjQyNywyMjQyMCwyMjQyNCwyMjQxNSwyMjQyNSwyMjQzNywyMjQyNiwyMjQyMSwyMjc3MiwyMjc5NywyMjg2Nywy''@;'; put 'put ''MzAwOSwyMzAwNiwyMzAyMiwyMzA0MCwyMzAyNSwyMzAwNSwyMzAzNCwyMzAzNywyMzAzNiwyMzAzMCwyMzAxMiwyMzAyNiwyMzAzMSwyMzAwMywyMzAxNywyMzAyNywyMzAyOSwyMzAwOCwyMzAzOCwyMzAyOCwyMzAyMSwyMzQ2NCwyMzYyOCwyMzc2MCwyMzc2OCwyMzc1NiwyMzc2NywyMzc1''@;'; put 'put ''NSwyMzc3MSwyMzc3NCwyMzc3MCwyMzc1MywyMzc1MSwyMzc1NCwyMzc2NiwyMzc2MywyMzc2NCwyMzc1OSwyMzc1MiwyMzc1MCwyMzc1OCwyMzc3NSwyMzgwMCwyNDA1NywyNDA5NywyNDA5OCwyNDA5OSwyNDA5NiwyNDEwMCwyNDI0MCwyNDIyOCwyNDIyNiwyNDIxOSwyNDIyNywyNDIyOSwy''@;'; put 'put ''NDMyNywyNDM2NiwyNDQwNiwyNDQ1NCwyNDYzMSwyNDYzMywyNDY2MCwyNDY5MCwyNDY3MCwyNDY0NSwyNDY1OSwyNDY0NywyNDY0OSwyNDY2NywyNDY1MiwyNDY0MCwyNDY0MiwyNDY3MSwyNDYxMiwyNDY0NCwyNDY2NCwyNDY3OCwyNDY4NiwyNTE1NCwyNTE1NSwyNTI5NSwyNTM1NywyNTM1''@;'; put 'put ''NSwyNTMzMywyNTM1OCwyNTM0NywyNTMyMywyNTMzNywyNTM1OSwyNTM1NiwyNTMzNiwyNTMzNCwyNTM0NCwyNTM2MywyNTM2NCwyNTMzOCwyNTM2NSwyNTMzOSwyNTMyOCwyNTkyMSwyNTkyMywyNjAyNiwyNjA0NywyNjE2NiwyNjE0NSwyNjE2MiwyNjE2NSwyNjE0MCwyNjE1MCwyNjE0Niwy''@;'; put 'put ''NjE2MywyNjE1NSwyNjE3MCwyNjE0MSwyNjE2NCwyNjE2OSwyNjE1OCwyNjM4MywyNjM4NCwyNjU2MSwyNjYxMCwyNjU2OCwyNjU1NCwyNjU4OCwyNjU1NSwyNjYxNiwyNjU4NCwyNjU2MCwyNjU1MSwyNjU2NSwyNjYwMywyNjU5NiwyNjU5MSwyNjU0OSwyNjU3MywyNjU0NywyNjYxNSwyNjYx''@;'; put 'put ''NCwyNjYwNiwyNjU5NSwyNjU2MiwyNjU1MywyNjU3NCwyNjU5OSwyNjYwOCwyNjU0NiwyNjYyMCwyNjU2NiwyNjYwNSwyNjU3MiwyNjU0MiwyNjU5OCwyNjU4NywyNjYxOCwyNjU2OSwyNjU3MCwyNjU2MywyNjYwMiwyNjU3MSwyNzQzMiwyNzUyMiwyNzUyNCwyNzU3NCwyNzYwNiwyNzYwOCwy''@;'; put 'put ''NzYxNiwyNzY4MCwyNzY4MSwyNzk0NCwyNzk1NiwyNzk0OSwyNzkzNSwyNzk2NCwyNzk2NywyNzkyMiwyNzkxNCwyNzg2NiwyNzk1NSwyNzkwOCwyNzkyOSwyNzk2MiwyNzkzMCwyNzkyMSwyNzkwNCwyNzkzMywyNzk3MCwyNzkwNSwyNzkyOCwyNzk1OSwyNzkwNywyNzkxOSwyNzk2OCwyNzkx''@;'; put 'put ''MSwyNzkzNiwyNzk0OCwyNzkxMiwyNzkzOCwyNzkxMywyNzkyMCwyODg1NSwyODgzMSwyODg2MiwyODg0OSwyODg0OCwyODgzMywyODg1MiwyODg1MywyODg0MSwyOTI0OSwyOTI1NywyOTI1OCwyOTI5MiwyOTI5NiwyOTI5OSwyOTI5NCwyOTM4NiwyOTQxMiwyOTQxNiwyOTQxOSwyOTQwNywy''@;'; put 'put ''OTQxOCwyOTQxNCwyOTQxMSwyOTU3MywyOTY0NCwyOTYzNCwyOTY0MCwyOTYzNywyOTYyNSwyOTYyMiwyOTYyMSwyOTYyMCwyOTY3NSwyOTYzMSwyOTYzOSwyOTYzMCwyOTYzNSwyOTYzOCwyOTYyNCwyOTY0MywyOTkzMiwyOTkzNCwyOTk5OCwzMDAyMywzMDAyNCwzMDExOSwzMDEyMiwzMDMy''@;'; put 'put ''OSwzMDQwNCwzMDQ3MiwzMDQ2NywzMDQ2OCwzMDQ2OSwzMDQ3NCwzMDQ1NSwzMDQ1OSwzMDQ1OCwzMDY5NSwzMDY5NiwzMDcyNiwzMDczNywzMDczOCwzMDcyNSwzMDczNiwzMDczNSwzMDczNCwzMDcyOSwzMDcyMywzMDczOSwzMTA1MCwzMTA1MiwzMTA1MSwzMTA0NSwzMTA0NCwzMTE4OSwz''@;'; put 'put ''MTE4MSwzMTE4MywzMTE5MCwzMTE4MiwzMTM2MCwzMTM1OCwzMTQ0MSwzMTQ4OCwzMTQ4OSwzMTg2NiwzMTg2NCwzMTg2NSwzMTg3MSwzMTg3MiwzMTg3MywzMjAwMywzMjAwOCwzMjAwMSwzMjYwMCwzMjY1NywzMjY1MywzMjcwMiwzMjc3NSwzMjc4MiwzMjc4MywzMjc4OCwzMjgyMywzMjk4''@;'; put 'put ''NCwzMjk2NywzMjk5MiwzMjk3NywzMjk2OCwzMjk2MiwzMjk3NiwzMjk2NSwzMjk5NSwzMjk4NSwzMjk4OCwzMjk3MCwzMjk4MSwzMjk2OSwzMjk3NSwzMjk4MywzMjk5OCwzMjk3MywzMzI3OSwzMzMxMywzMzQyOCwzMzQ5NywzMzUzNCwzMzUyOSwzMzU0MywzMzUxMiwzMzUzNiwzMzQ5Mywz''@;'; put 'put ''MzU5NCwzMzUxNSwzMzQ5NCwzMzUyNCwzMzUxNiwzMzUwNSwzMzUyMiwzMzUyNSwzMzU0OCwzMzUzMSwzMzUyNiwzMzUyMCwzMzUxNCwzMzUwOCwzMzUwNCwzMzUzMCwzMzUyMywzMzUxNywzNDQyMywzNDQyMCwzNDQyOCwzNDQxOSwzNDg4MSwzNDg5NCwzNDkxOSwzNDkyMiwzNDkyMSwzNTI4''@;'; put 'put ''MywzNTMzMiwzNTMzNSwzNjIxMCwzNjgzNSwzNjgzMywzNjg0NiwzNjgzMiwzNzEwNSwzNzA1MywzNzA1NSwzNzA3NywzNzA2MSwzNzA1NCwzNzA2MywzNzA2NywzNzA2NCwzNzMzMiwzNzMzMSwzODQ4NCwzODQ3OSwzODQ4MSwzODQ4MywzODQ3NCwzODQ3OCwyMDUxMCwyMDQ4NSwyMDQ4Nywy''@;'; put 'put ''MDQ5OSwyMDUxNCwyMDUyOCwyMDUwNywyMDQ2OSwyMDQ2OCwyMDUzMSwyMDUzNSwyMDUyNCwyMDQ3MCwyMDQ3MSwyMDUwMywyMDUwOCwyMDUxMiwyMDUxOSwyMDUzMywyMDUyNywyMDUyOSwyMDQ5NCwyMDgyNiwyMDg4NCwyMDg4MywyMDkzOCwyMDkzMiwyMDkzMywyMDkzNiwyMDk0MiwyMTA4''@;'; put 'put ''OSwyMTA4MiwyMTA3NCwyMTA4NiwyMTA4NywyMTA3NywyMTA5MCwyMTE5NywyMTI2MiwyMTQwNiwyMTc5OCwyMTczMCwyMTc4MywyMTc3OCwyMTczNSwyMTc0NywyMTczMiwyMTc4NiwyMTc1OSwyMTc2NCwyMTc2OCwyMTczOSwyMTc3NywyMTc2NSwyMTc0NSwyMTc3MCwyMTc1NSwyMTc1MSwy''@;'; put 'put ''MTc1MiwyMTcyOCwyMTc3NCwyMTc2MywyMTc3MSwyMjI3MywyMjI3NCwyMjQ3NiwyMjU3OCwyMjQ4NSwyMjQ4MiwyMjQ1OCwyMjQ3MCwyMjQ2MSwyMjQ2MCwyMjQ1NiwyMjQ1NCwyMjQ2MywyMjQ3MSwyMjQ4MCwyMjQ1NywyMjQ2NSwyMjc5OCwyMjg1OCwyMzA2NSwyMzA2MiwyMzA4NSwyMzA4''@;'; put 'put ''NiwyMzA2MSwyMzA1NSwyMzA2MywyMzA1MCwyMzA3MCwyMzA5MSwyMzQwNCwyMzQ2MywyMzQ2OSwyMzQ2OCwyMzU1NSwyMzYzOCwyMzYzNiwyMzc4OCwyMzgwNywyMzc5MCwyMzc5MywyMzc5OSwyMzgwOCwyMzgwMSwyNDEwNSwyNDEwNCwyNDIzMiwyNDIzOCwyNDIzNCwyNDIzNiwyNDM3MSwy''@;'; put 'put ''NDM2OCwyNDQyMywyNDY2OSwyNDY2NiwyNDY3OSwyNDY0MSwyNDczOCwyNDcxMiwyNDcwNCwyNDcyMiwyNDcwNSwyNDczMywyNDcwNywyNDcyNSwyNDczMSwyNDcyNywyNDcxMSwyNDczMiwyNDcxOCwyNTExMywyNTE1OCwyNTMzMCwyNTM2MCwyNTQzMCwyNTM4OCwyNTQxMiwyNTQxMywyNTM5''@;'; put 'put ''OCwyNTQxMSwyNTU3MiwyNTQwMSwyNTQxOSwyNTQxOCwyNTQwNCwyNTM4NSwyNTQwOSwyNTM5NiwyNTQzMiwyNTQyOCwyNTQzMywyNTM4OSwyNTQxNSwyNTM5NSwyNTQzNCwyNTQyNSwyNTQwMCwyNTQzMSwyNTQwOCwyNTQxNiwyNTkzMCwyNTkyNiwyNjA1NCwyNjA1MSwyNjA1MiwyNjA1MCwy''@;'; put 'put ''NjE4NiwyNjIwNywyNjE4MywyNjE5MywyNjM4NiwyNjM4NywyNjY1NSwyNjY1MCwyNjY5NywyNjY3NCwyNjY3NSwyNjY4MywyNjY5OSwyNjcwMywyNjY0NiwyNjY3MywyNjY1MiwyNjY3NywyNjY2NywyNjY2OSwyNjY3MSwyNjcwMiwyNjY5MiwyNjY3NiwyNjY1MywyNjY0MiwyNjY0NCwyNjY2''@;'; put 'put ''MiwyNjY2NCwyNjY3MCwyNjcwMSwyNjY4MiwyNjY2MSwyNjY1NiwyNzQzNiwyNzQzOSwyNzQzNywyNzQ0MSwyNzQ0NCwyNzUwMSwzMjg5OCwyNzUyOCwyNzYyMiwyNzYyMCwyNzYyNCwyNzYxOSwyNzYxOCwyNzYyMywyNzY4NSwyODAyNiwyODAwMywyODAwNCwyODAyMiwyNzkxNywyODAwMSwy''@;'; put 'put ''ODA1MCwyNzk5MiwyODAwMiwyODAxMywyODAxNSwyODA0OSwyODA0NSwyODE0MywyODAzMSwyODAzOCwyNzk5OCwyODAwNywyOGUzLDI4MDU1LDI4MDE2LDI4MDI4LDI3OTk5LDI4MDM0LDI4MDU2LDI3OTUxLDI4MDA4LDI4MDQzLDI4MDMwLDI4MDMyLDI4MDM2LDI3OTI2LDI4MDM1LDI4MDI3''@;'; put 'put ''LDI4MDI5LDI4MDIxLDI4MDQ4LDI4ODkyLDI4ODgzLDI4ODgxLDI4ODkzLDI4ODc1LDMyNTY5LDI4ODk4LDI4ODg3LDI4ODgyLDI4ODk0LDI4ODk2LDI4ODg0LDI4ODc3LDI4ODY5LDI4ODcwLDI4ODcxLDI4ODkwLDI4ODc4LDI4ODk3LDI5MjUwLDI5MzA0LDI5MzAzLDI5MzAyLDI5NDQwLDI5''@;'; put 'put ''NDM0LDI5NDI4LDI5NDM4LDI5NDMwLDI5NDI3LDI5NDM1LDI5NDQxLDI5NjUxLDI5NjU3LDI5NjY5LDI5NjU0LDI5NjI4LDI5NjcxLDI5NjY3LDI5NjczLDI5NjYwLDI5NjUwLDI5NjU5LDI5NjUyLDI5NjYxLDI5NjU4LDI5NjU1LDI5NjU2LDI5NjcyLDI5OTE4LDI5OTE5LDI5OTQwLDI5OTQx''@;'; put 'put ''LDI5OTg1LDMwMDQzLDMwMDQ3LDMwMTI4LDMwMTQ1LDMwMTM5LDMwMTQ4LDMwMTQ0LDMwMTQzLDMwMTM0LDMwMTM4LDMwMzQ2LDMwNDA5LDMwNDkzLDMwNDkxLDMwNDgwLDMwNDgzLDMwNDgyLDMwNDk5LDMwNDgxLDMwNDg1LDMwNDg5LDMwNDkwLDMwNDk4LDMwNTAzLDMwNzU1LDMwNzY0LDMw''@;'; put 'put ''NzU0LDMwNzczLDMwNzY3LDMwNzYwLDMwNzY2LDMwNzYzLDMwNzUzLDMwNzYxLDMwNzcxLDMwNzYyLDMwNzY5LDMxMDYwLDMxMDY3LDMxMDU1LDMxMDY4LDMxMDU5LDMxMDU4LDMxMDU3LDMxMjExLDMxMjEyLDMxMjAwLDMxMjE0LDMxMjEzLDMxMjEwLDMxMTk2LDMxMTk4LDMxMTk3LDMxMzY2''@;'; put 'put ''LDMxMzY5LDMxMzY1LDMxMzcxLDMxMzcyLDMxMzcwLDMxMzY3LDMxNDQ4LDMxNTA0LDMxNDkyLDMxNTA3LDMxNDkzLDMxNTAzLDMxNDk2LDMxNDk4LDMxNTAyLDMxNDk3LDMxNTA2LDMxODc2LDMxODg5LDMxODgyLDMxODg0LDMxODgwLDMxODg1LDMxODc3LDMyMDMwLDMyMDI5LDMyMDE3LDMy''@;'; put 'put ''MDE0LDMyMDI0LDMyMDIyLDMyMDE5LDMyMDMxLDMyMDE4LDMyMDE1LDMyMDEyLDMyNjA0LDMyNjA5LDMyNjA2LDMyNjA4LDMyNjA1LDMyNjAzLDMyNjYyLDMyNjU4LDMyNzA3LDMyNzA2LDMyNzA0LDMyNzkwLDMyODMwLDMyODI1LDMzMDE4LDMzMDEwLDMzMDE3LDMzMDEzLDMzMDI1LDMzMDE5''@;'; put 'put ''LDMzMDI0LDMzMjgxLDMzMzI3LDMzMzE3LDMzNTg3LDMzNTgxLDMzNjA0LDMzNTYxLDMzNjE3LDMzNTczLDMzNjIyLDMzNTk5LDMzNjAxLDMzNTc0LDMzNTY0LDMzNTcwLDMzNjAyLDMzNjE0LDMzNTYzLDMzNTc4LDMzNTQ0LDMzNTk2LDMzNjEzLDMzNTU4LDMzNTcyLDMzNTY4LDMzNTkxLDMz''@;'; put 'put ''NTgzLDMzNTc3LDMzNjA3LDMzNjA1LDMzNjEyLDMzNjE5LDMzNTY2LDMzNTgwLDMzNjExLDMzNTc1LDMzNjA4LDM0Mzg3LDM0Mzg2LDM0NDY2LDM0NDcyLDM0NDU0LDM0NDQ1LDM0NDQ5LDM0NDYyLDM0NDM5LDM0NDU1LDM0NDM4LDM0NDQzLDM0NDU4LDM0NDM3LDM0NDY5LDM0NDU3LDM0NDY1''@;'; put 'put ''LDM0NDcxLDM0NDUzLDM0NDU2LDM0NDQ2LDM0NDYxLDM0NDQ4LDM0NDUyLDM0ODgzLDM0ODg0LDM0OTI1LDM0OTMzLDM0OTM0LDM0OTMwLDM0OTQ0LDM0OTI5LDM0OTQzLDM0OTI3LDM0OTQ3LDM0OTQyLDM0OTMyLDM0OTQwLDM1MzQ2LDM1OTExLDM1OTI3LDM1OTYzLDM2MDA0LDM2MDAzLDM2''@;'; put 'put ''MjE0LDM2MjE2LDM2Mjc3LDM2Mjc5LDM2Mjc4LDM2NTYxLDM2NTYzLDM2ODYyLDM2ODUzLDM2ODY2LDM2ODYzLDM2ODU5LDM2ODY4LDM2ODYwLDM2ODU0LDM3MDc4LDM3MDg4LDM3MDgxLDM3MDgyLDM3MDkxLDM3MDg3LDM3MDkzLDM3MDgwLDM3MDgzLDM3MDc5LDM3MDg0LDM3MDkyLDM3MjAw''@;'; put 'put ''LDM3MTk4LDM3MTk5LDM3MzMzLDM3MzQ2LDM3MzM4LDM4NDkyLDM4NDk1LDM4NTg4LDM5MTM5LDM5NjQ3LDM5NzI3LDIwMDk1LDIwNTkyLDIwNTg2LDIwNTc3LDIwNTc0LDIwNTc2LDIwNTYzLDIwNTU1LDIwNTczLDIwNTk0LDIwNTUyLDIwNTU3LDIwNTQ1LDIwNTcxLDIwNTU0LDIwNTc4LDIw''@;'; put 'put ''NTAxLDIwNTQ5LDIwNTc1LDIwNTg1LDIwNTg3LDIwNTc5LDIwNTgwLDIwNTUwLDIwNTQ0LDIwNTkwLDIwNTk1LDIwNTY3LDIwNTYxLDIwOTQ0LDIxMDk5LDIxMTAxLDIxMTAwLDIxMTAyLDIxMjA2LDIxMjAzLDIxMjkzLDIxNDA0LDIxODc3LDIxODc4LDIxODIwLDIxODM3LDIxODQwLDIxODEy''@;'; put 'put ''LDIxODAyLDIxODQxLDIxODU4LDIxODE0LDIxODEzLDIxODA4LDIxODQyLDIxODI5LDIxNzcyLDIxODEwLDIxODYxLDIxODM4LDIxODE3LDIxODMyLDIxODA1LDIxODE5LDIxODI0LDIxODM1LDIyMjgyLDIyMjc5LDIyNTIzLDIyNTQ4LDIyNDk4LDIyNTE4LDIyNDkyLDIyNTE2LDIyNTI4LDIy''@;'; put 'put ''NTA5LDIyNTI1LDIyNTM2LDIyNTIwLDIyNTM5LDIyNTE1LDIyNDc5LDIyNTM1LDIyNTEwLDIyNDk5LDIyNTE0LDIyNTAxLDIyNTA4LDIyNDk3LDIyNTQyLDIyNTI0LDIyNTQ0LDIyNTAzLDIyNTI5LDIyNTQwLDIyNTEzLDIyNTA1LDIyNTEyLDIyNTQxLDIyNTMyLDIyODc2LDIzMTM2LDIzMTI4''@;'; put 'put ''LDIzMTI1LDIzMTQzLDIzMTM0LDIzMDk2LDIzMDkzLDIzMTQ5LDIzMTIwLDIzMTM1LDIzMTQxLDIzMTQ4LDIzMTIzLDIzMTQwLDIzMTI3LDIzMTA3LDIzMTMzLDIzMTIyLDIzMTA4LDIzMTMxLDIzMTEyLDIzMTgyLDIzMTAyLDIzMTE3LDIzMDk3LDIzMTE2LDIzMTUyLDIzMTQ1LDIzMTExLDIz''@;'; put 'put ''MTIxLDIzMTI2LDIzMTA2LDIzMTMyLDIzNDEwLDIzNDA2LDIzNDg5LDIzNDg4LDIzNjQxLDIzODM4LDIzODE5LDIzODM3LDIzODM0LDIzODQwLDIzODIwLDIzODQ4LDIzODIxLDIzODQ2LDIzODQ1LDIzODIzLDIzODU2LDIzODI2LDIzODQzLDIzODM5LDIzODU0LDI0MTI2LDI0MTE2LDI0MjQx''@;'; put 'put ''LDI0MjQ0LDI0MjQ5LDI0MjQyLDI0MjQzLDI0Mzc0LDI0Mzc2LDI0NDc1LDI0NDcwLDI0NDc5LDI0NzE0LDI0NzIwLDI0NzEwLDI0NzY2LDI0NzUyLDI0NzYyLDI0Nzg3LDI0Nzg4LDI0NzgzLDI0ODA0LDI0NzkzLDI0Nzk3LDI0Nzc2LDI0NzUzLDI0Nzk1LDI0NzU5LDI0Nzc4LDI0NzY3LDI0''@;'; put 'put ''NzcxLDI0NzgxLDI0NzY4LDI1Mzk0LDI1NDQ1LDI1NDgyLDI1NDc0LDI1NDY5LDI1NTMzLDI1NTAyLDI1NTE3LDI1NTAxLDI1NDk1LDI1NTE1LDI1NDg2LDI1NDU1LDI1NDc5LDI1NDg4LDI1NDU0LDI1NTE5LDI1NDYxLDI1NTAwLDI1NDUzLDI1NTE4LDI1NDY4LDI1NTA4LDI1NDAzLDI1NTAz''@;'; put 'put ''LDI1NDY0LDI1NDc3LDI1NDczLDI1NDg5LDI1NDg1LDI1NDU2LDI1OTM5LDI2MDYxLDI2MjEzLDI2MjA5LDI2MjAzLDI2MjAxLDI2MjA0LDI2MjEwLDI2MzkyLDI2NzQ1LDI2NzU5LDI2NzY4LDI2NzgwLDI2NzMzLDI2NzM0LDI2Nzk4LDI2Nzk1LDI2OTY2LDI2NzM1LDI2Nzg3LDI2Nzk2LDI2''@;'; put 'put ''NzkzLDI2NzQxLDI2NzQwLDI2ODAyLDI2NzY3LDI2NzQzLDI2NzcwLDI2NzQ4LDI2NzMxLDI2NzM4LDI2Nzk0LDI2NzUyLDI2NzM3LDI2NzUwLDI2Nzc5LDI2Nzc0LDI2NzYzLDI2Nzg0LDI2NzYxLDI2Nzg4LDI2NzQ0LDI2NzQ3LDI2NzY5LDI2NzY0LDI2NzYyLDI2NzQ5LDI3NDQ2LDI3NDQz''@;'; put 'put ''LDI3NDQ3LDI3NDQ4LDI3NTM3LDI3NTM1LDI3NTMzLDI3NTM0LDI3NTMyLDI3NjkwLDI4MDk2LDI4MDc1LDI4MDg0LDI4MDgzLDI4Mjc2LDI4MDc2LDI4MTM3LDI4MTMwLDI4MDg3LDI4MTUwLDI4MTE2LDI4MTYwLDI4MTA0LDI4MTI4LDI4MTI3LDI4MTE4LDI4MDk0LDI4MTMzLDI4MTI0LDI4''@;'; put 'put ''MTI1LDI4MTIzLDI4MTQ4LDI4MTA2LDI4MDkzLDI4MTQxLDI4MTQ0LDI4MDkwLDI4MTE3LDI4MDk4LDI4MTExLDI4MTA1LDI4MTEyLDI4MTQ2LDI4MTE1LDI4MTU3LDI4MTE5LDI4MTA5LDI4MTMxLDI4MDkxLDI4OTIyLDI4OTQxLDI4OTE5LDI4OTUxLDI4OTE2LDI4OTQwLDI4OTEyLDI4OTMy''@;'; put 'put ''LDI4OTE1LDI4OTQ0LDI4OTI0LDI4OTI3LDI4OTM0LDI4OTQ3LDI4OTI4LDI4OTIwLDI4OTE4LDI4OTM5LDI4OTMwLDI4OTQyLDI5MzEwLDI5MzA3LDI5MzA4LDI5MzExLDI5NDY5LDI5NDYzLDI5NDQ3LDI5NDU3LDI5NDY0LDI5NDUwLDI5NDQ4LDI5NDM5LDI5NDU1LDI5NDcwLDI5NTc2LDI5''@;'; put 'put ''Njg2LDI5Njg4LDI5Njg1LDI5NzAwLDI5Njk3LDI5NjkzLDI5NzAzLDI5Njk2LDI5NjkwLDI5NjkyLDI5Njk1LDI5NzA4LDI5NzA3LDI5Njg0LDI5NzA0LDMwMDUyLDMwMDUxLDMwMTU4LDMwMTYyLDMwMTU5LDMwMTU1LDMwMTU2LDMwMTYxLDMwMTYwLDMwMzUxLDMwMzQ1LDMwNDE5LDMwNTIx''@;'; put 'put ''LDMwNTExLDMwNTA5LDMwNTEzLDMwNTE0LDMwNTE2LDMwNTE1LDMwNTI1LDMwNTAxLDMwNTIzLDMwNTE3LDMwNzkyLDMwODAyLDMwNzkzLDMwNzk3LDMwNzk0LDMwNzk2LDMwNzU4LDMwNzg5LDMwODAwLDMxMDc2LDMxMDc5LDMxMDgxLDMxMDgyLDMxMDc1LDMxMDgzLDMxMDczLDMxMTYzLDMx''@;'; put 'put ''MjI2LDMxMjI0LDMxMjIyLDMxMjIzLDMxMzc1LDMxMzgwLDMxMzc2LDMxNTQxLDMxNTU5LDMxNTQwLDMxNTI1LDMxNTM2LDMxNTIyLDMxNTI0LDMxNTM5LDMxNTEyLDMxNTMwLDMxNTE3LDMxNTM3LDMxNTMxLDMxNTMzLDMxNTM1LDMxNTM4LDMxNTQ0LDMxNTE0LDMxNTIzLDMxODkyLDMxODk2''@;'; put 'put ''LDMxODk0LDMxOTA3LDMyMDUzLDMyMDYxLDMyMDU2LDMyMDU0LDMyMDU4LDMyMDY5LDMyMDQ0LDMyMDQxLDMyMDY1LDMyMDcxLDMyMDYyLDMyMDYzLDMyMDc0LDMyMDU5LDMyMDQwLDMyNjExLDMyNjYxLDMyNjY4LDMyNjY5LDMyNjY3LDMyNzE0LDMyNzE1LDMyNzE3LDMyNzIwLDMyNzIxLDMy''@;'; put 'put ''NzExLDMyNzE5LDMyNzEzLDMyNzk5LDMyNzk4LDMyNzk1LDMyODM5LDMyODM1LDMyODQwLDMzMDQ4LDMzMDYxLDMzMDQ5LDMzMDUxLDMzMDY5LDMzMDU1LDMzMDY4LDMzMDU0LDMzMDU3LDMzMDQ1LDMzMDYzLDMzMDUzLDMzMDU4LDMzMjk3LDMzMzM2LDMzMzMxLDMzMzM4LDMzMzMyLDMzMzMw''@;'; put 'put ''LDMzMzk2LDMzNjgwLDMzNjk5LDMzNzA0LDMzNjc3LDMzNjU4LDMzNjUxLDMzNzAwLDMzNjUyLDMzNjc5LDMzNjY1LDMzNjg1LDMzNjg5LDMzNjUzLDMzNjg0LDMzNzA1LDMzNjYxLDMzNjY3LDMzNjc2LDMzNjkzLDMzNjkxLDMzNzA2LDMzNjc1LDMzNjYyLDMzNzAxLDMzNzExLDMzNjcyLDMz''@;'; put 'put ''Njg3LDMzNzEyLDMzNjYzLDMzNzAyLDMzNjcxLDMzNzEwLDMzNjU0LDMzNjkwLDM0MzkzLDM0MzkwLDM0NDk1LDM0NDg3LDM0NDk4LDM0NDk3LDM0NTAxLDM0NDkwLDM0NDgwLDM0NTA0LDM0NDg5LDM0NDgzLDM0NDg4LDM0NTA4LDM0NDg0LDM0NDkxLDM0NDkyLDM0NDk5LDM0NDkzLDM0NDk0''@;'; put 'put ''LDM0ODk4LDM0OTUzLDM0OTY1LDM0OTg0LDM0OTc4LDM0OTg2LDM0OTcwLDM0OTYxLDM0OTc3LDM0OTc1LDM0OTY4LDM0OTgzLDM0OTY5LDM0OTcxLDM0OTY3LDM0OTgwLDM0OTg4LDM0OTU2LDM0OTYzLDM0OTU4LDM1MjAyLDM1Mjg2LDM1Mjg5LDM1Mjg1LDM1Mzc2LDM1MzY3LDM1MzcyLDM1''@;'; put 'put ''MzU4LDM1ODk3LDM1ODk5LDM1OTMyLDM1OTMzLDM1OTY1LDM2MDA1LDM2MjIxLDM2MjE5LDM2MjE3LDM2Mjg0LDM2MjkwLDM2MjgxLDM2Mjg3LDM2Mjg5LDM2NTY4LDM2NTc0LDM2NTczLDM2NTcyLDM2NTY3LDM2NTc2LDM2NTc3LDM2OTAwLDM2ODc1LDM2ODgxLDM2ODkyLDM2ODc2LDM2ODk3''@;'; put 'put ''LDM3MTAzLDM3MDk4LDM3MTA0LDM3MTA4LDM3MTA2LDM3MTA3LDM3MDc2LDM3MDk5LDM3MTAwLDM3MDk3LDM3MjA2LDM3MjA4LDM3MjEwLDM3MjAzLDM3MjA1LDM3MzU2LDM3MzY0LDM3MzYxLDM3MzYzLDM3MzY4LDM3MzQ4LDM3MzY5LDM3MzU0LDM3MzU1LDM3MzY3LDM3MzUyLDM3MzU4LDM4''@;'; put 'put ''MjY2LDM4Mjc4LDM4MjgwLDM4NTI0LDM4NTA5LDM4NTA3LDM4NTEzLDM4NTExLDM4NTkxLDM4NzYyLDM4OTE2LDM5MTQxLDM5MzE5LDIwNjM1LDIwNjI5LDIwNjI4LDIwNjM4LDIwNjE5LDIwNjQzLDIwNjExLDIwNjIwLDIwNjIyLDIwNjM3LDIwNTg0LDIwNjM2LDIwNjI2LDIwNjEwLDIwNjE1''@;'; put 'put ''LDIwODMxLDIwOTQ4LDIxMjY2LDIxMjY1LDIxNDEyLDIxNDE1LDIxOTA1LDIxOTI4LDIxOTI1LDIxOTMzLDIxODc5LDIyMDg1LDIxOTIyLDIxOTA3LDIxODk2LDIxOTAzLDIxOTQxLDIxODg5LDIxOTIzLDIxOTA2LDIxOTI0LDIxODg1LDIxOTAwLDIxOTI2LDIxODg3LDIxOTA5LDIxOTIxLDIx''@;'; put 'put ''OTAyLDIyMjg0LDIyNTY5LDIyNTgzLDIyNTUzLDIyNTU4LDIyNTY3LDIyNTYzLDIyNTY4LDIyNTE3LDIyNjAwLDIyNTY1LDIyNTU2LDIyNTU1LDIyNTc5LDIyNTkxLDIyNTgyLDIyNTc0LDIyNTg1LDIyNTg0LDIyNTczLDIyNTcyLDIyNTg3LDIyODgxLDIzMjE1LDIzMTg4LDIzMTk5LDIzMTYy''@;'; put 'put ''LDIzMjAyLDIzMTk4LDIzMTYwLDIzMjA2LDIzMTY0LDIzMjA1LDIzMjEyLDIzMTg5LDIzMjE0LDIzMDk1LDIzMTcyLDIzMTc4LDIzMTkxLDIzMTcxLDIzMTc5LDIzMjA5LDIzMTYzLDIzMTY1LDIzMTgwLDIzMTk2LDIzMTgzLDIzMTg3LDIzMTk3LDIzNTMwLDIzNTAxLDIzNDk5LDIzNTA4LDIz''@;'; put 'put ''NTA1LDIzNDk4LDIzNTAyLDIzNTY0LDIzNjAwLDIzODYzLDIzODc1LDIzOTE1LDIzODczLDIzODgzLDIzODcxLDIzODYxLDIzODg5LDIzODg2LDIzODkzLDIzODU5LDIzODY2LDIzODkwLDIzODY5LDIzODU3LDIzODk3LDIzODc0LDIzODY1LDIzODgxLDIzODY0LDIzODY4LDIzODU4LDIzODYy''@;'; put 'put ''LDIzODcyLDIzODc3LDI0MTMyLDI0MTI5LDI0NDA4LDI0NDg2LDI0NDg1LDI0NDkxLDI0Nzc3LDI0NzYxLDI0NzgwLDI0ODAyLDI0NzgyLDI0NzcyLDI0ODUyLDI0ODE4LDI0ODQyLDI0ODU0LDI0ODM3LDI0ODIxLDI0ODUxLDI0ODI0LDI0ODI4LDI0ODMwLDI0NzY5LDI0ODM1LDI0ODU2LDI0''@;'; put 'put ''ODYxLDI0ODQ4LDI0ODMxLDI0ODM2LDI0ODQzLDI1MTYyLDI1NDkyLDI1NTIxLDI1NTIwLDI1NTUwLDI1NTczLDI1NTc2LDI1NTgzLDI1NTM5LDI1NzU3LDI1NTg3LDI1NTQ2LDI1NTY4LDI1NTkwLDI1NTU3LDI1NTg2LDI1NTg5LDI1Njk3LDI1NTY3LDI1NTM0LDI1NTY1LDI1NTY0LDI1NTQw''@;'; put 'put ''LDI1NTYwLDI1NTU1LDI1NTM4LDI1NTQzLDI1NTQ4LDI1NTQ3LDI1NTQ0LDI1NTg0LDI1NTU5LDI1NTYxLDI1OTA2LDI1OTU5LDI1OTYyLDI1OTU2LDI1OTQ4LDI1OTYwLDI1OTU3LDI1OTk2LDI2MDEzLDI2MDE0LDI2MDMwLDI2MDY0LDI2MDY2LDI2MjM2LDI2MjIwLDI2MjM1LDI2MjQwLDI2''@;'; put 'put ''MjI1LDI2MjMzLDI2MjE4LDI2MjI2LDI2MzY5LDI2ODkyLDI2ODM1LDI2ODg0LDI2ODQ0LDI2OTIyLDI2ODYwLDI2ODU4LDI2ODY1LDI2ODk1LDI2ODM4LDI2ODcxLDI2ODU5LDI2ODUyLDI2ODcwLDI2ODk5LDI2ODk2LDI2ODY3LDI2ODQ5LDI2ODg3LDI2ODI4LDI2ODg4LDI2OTkyLDI2ODA0''@;'; put 'put ''LDI2ODk3LDI2ODYzLDI2ODIyLDI2OTAwLDI2ODcyLDI2ODMyLDI2ODc3LDI2ODc2LDI2ODU2LDI2ODkxLDI2ODkwLDI2OTAzLDI2ODMwLDI2ODI0LDI2ODQ1LDI2ODQ2LDI2ODU0LDI2ODY4LDI2ODMzLDI2ODg2LDI2ODM2LDI2ODU3LDI2OTAxLDI2OTE3LDI2ODIzLDI3NDQ5LDI3NDUxLDI3''@;'; put 'put ''NDU1LDI3NDUyLDI3NTQwLDI3NTQzLDI3NTQ1LDI3NTQxLDI3NTgxLDI3NjMyLDI3NjM0LDI3NjM1LDI3Njk2LDI4MTU2LDI4MjMwLDI4MjMxLDI4MTkxLDI4MjMzLDI4Mjk2LDI4MjIwLDI4MjIxLDI4MjI5LDI4MjU4LDI4MjAzLDI4MjIzLDI4MjI1LDI4MjUzLDI4Mjc1LDI4MTg4LDI4MjEx''@;'; put 'put ''LDI4MjM1LDI4MjI0LDI4MjQxLDI4MjE5LDI4MTYzLDI4MjA2LDI4MjU0LDI4MjY0LDI4MjUyLDI4MjU3LDI4MjA5LDI4MjAwLDI4MjU2LDI4MjczLDI4MjY3LDI4MjE3LDI4MTk0LDI4MjA4LDI4MjQzLDI4MjYxLDI4MTk5LDI4MjgwLDI4MjYwLDI4Mjc5LDI4MjQ1LDI4MjgxLDI4MjQyLDI4''@;'; put 'put ''MjYyLDI4MjEzLDI4MjE0LDI4MjUwLDI4OTYwLDI4OTU4LDI4OTc1LDI4OTIzLDI4OTc0LDI4OTc3LDI4OTYzLDI4OTY1LDI4OTYyLDI4OTc4LDI4OTU5LDI4OTY4LDI4OTg2LDI4OTU1LDI5MjU5LDI5Mjc0LDI5MzIwLDI5MzIxLDI5MzE4LDI5MzE3LDI5MzIzLDI5NDU4LDI5NDUxLDI5NDg4''@;'; put 'put ''LDI5NDc0LDI5NDg5LDI5NDkxLDI5NDc5LDI5NDkwLDI5NDg1LDI5NDc4LDI5NDc1LDI5NDkzLDI5NDUyLDI5NzQyLDI5NzQwLDI5NzQ0LDI5NzM5LDI5NzE4LDI5NzIyLDI5NzI5LDI5NzQxLDI5NzQ1LDI5NzMyLDI5NzMxLDI5NzI1LDI5NzM3LDI5NzI4LDI5NzQ2LDI5OTQ3LDI5OTk5LDMw''@;'; put 'put ''MDYzLDMwMDYwLDMwMTgzLDMwMTcwLDMwMTc3LDMwMTgyLDMwMTczLDMwMTc1LDMwMTgwLDMwMTY3LDMwMzU3LDMwMzU0LDMwNDI2LDMwNTM0LDMwNTM1LDMwNTMyLDMwNTQxLDMwNTMzLDMwNTM4LDMwNTQyLDMwNTM5LDMwNTQwLDMwNjg2LDMwNzAwLDMwODE2LDMwODIwLDMwODIxLDMwODEy''@;'; put 'put ''LDMwODI5LDMwODMzLDMwODI2LDMwODMwLDMwODMyLDMwODI1LDMwODI0LDMwODE0LDMwODE4LDMxMDkyLDMxMDkxLDMxMDkwLDMxMDg4LDMxMjM0LDMxMjQyLDMxMjM1LDMxMjQ0LDMxMjM2LDMxMzg1LDMxNDYyLDMxNDYwLDMxNTYyLDMxNTQ3LDMxNTU2LDMxNTYwLDMxNTY0LDMxNTY2LDMx''@;'; put 'put ''NTUyLDMxNTc2LDMxNTU3LDMxOTA2LDMxOTAyLDMxOTEyLDMxOTA1LDMyMDg4LDMyMTExLDMyMDk5LDMyMDgzLDMyMDg2LDMyMTAzLDMyMTA2LDMyMDc5LDMyMTA5LDMyMDkyLDMyMTA3LDMyMDgyLDMyMDg0LDMyMTA1LDMyMDgxLDMyMDk1LDMyMDc4LDMyNTc0LDMyNTc1LDMyNjEzLDMyNjE0''@;'; put 'put ''LDMyNjc0LDMyNjcyLDMyNjczLDMyNzI3LDMyODQ5LDMyODQ3LDMyODQ4LDMzMDIyLDMyOTgwLDMzMDkxLDMzMDk4LDMzMTA2LDMzMTAzLDMzMDk1LDMzMDg1LDMzMTAxLDMzMDgyLDMzMjU0LDMzMjYyLDMzMjcxLDMzMjcyLDMzMjczLDMzMjg0LDMzMzQwLDMzMzQxLDMzMzQzLDMzMzk3LDMz''@;'; put 'put ''NTk1LDMzNzQzLDMzNzg1LDMzODI3LDMzNzI4LDMzNzY4LDMzODEwLDMzNzY3LDMzNzY0LDMzNzg4LDMzNzgyLDMzODA4LDMzNzM0LDMzNzM2LDMzNzcxLDMzNzYzLDMzNzI3LDMzNzkzLDMzNzU3LDMzNzY1LDMzNzUyLDMzNzkxLDMzNzYxLDMzNzM5LDMzNzQyLDMzNzUwLDMzNzgxLDMzNzM3''@;'; put 'put ''LDMzODAxLDMzODA3LDMzNzU4LDMzODA5LDMzNzk4LDMzNzMwLDMzNzc5LDMzNzQ5LDMzNzg2LDMzNzM1LDMzNzQ1LDMzNzcwLDMzODExLDMzNzMxLDMzNzcyLDMzNzc0LDMzNzMyLDMzNzg3LDMzNzUxLDMzNzYyLDMzODE5LDMzNzU1LDMzNzkwLDM0NTIwLDM0NTMwLDM0NTM0LDM0NTE1LDM0''@;'; put 'put ''NTMxLDM0NTIyLDM0NTM4LDM0NTI1LDM0NTM5LDM0NTI0LDM0NTQwLDM0NTM3LDM0NTE5LDM0NTM2LDM0NTEzLDM0ODg4LDM0OTAyLDM0OTAxLDM1MDAyLDM1MDMxLDM1MDAxLDM1ZTMsMzUwMDgsMzUwMDYsMzQ5OTgsMzUwMDQsMzQ5OTksMzUwMDUsMzQ5OTQsMzUwNzMsMzUwMTcsMzUyMjEs''@;'; put 'put ''MzUyMjQsMzUyMjMsMzUyOTMsMzUyOTAsMzUyOTEsMzU0MDYsMzU0MDUsMzUzODUsMzU0MTcsMzUzOTIsMzU0MTUsMzU0MTYsMzUzOTYsMzUzOTcsMzU0MTAsMzU0MDAsMzU0MDksMzU0MDIsMzU0MDQsMzU0MDcsMzU5MzUsMzU5NjksMzU5NjgsMzYwMjYsMzYwMzAsMzYwMTYsMzYwMjUsMzYw''@;'; put 'put ''MjEsMzYyMjgsMzYyMjQsMzYyMzMsMzYzMTIsMzYzMDcsMzYzMDEsMzYyOTUsMzYzMTAsMzYzMTYsMzYzMDMsMzYzMDksMzYzMTMsMzYyOTYsMzYzMTEsMzYyOTMsMzY1OTEsMzY1OTksMzY2MDIsMzY2MDEsMzY1ODIsMzY1OTAsMzY1ODEsMzY1OTcsMzY1ODMsMzY1ODQsMzY1OTgsMzY1ODcs''@;'; put 'put ''MzY1OTMsMzY1ODgsMzY1OTYsMzY1ODUsMzY5MDksMzY5MTYsMzY5MTEsMzcxMjYsMzcxNjQsMzcxMjQsMzcxMTksMzcxMTYsMzcxMjgsMzcxMTMsMzcxMTUsMzcxMjEsMzcxMjAsMzcxMjcsMzcxMjUsMzcxMjMsMzcyMTcsMzcyMjAsMzcyMTUsMzcyMTgsMzcyMTYsMzczNzcsMzczODYsMzc0''@;'; put 'put ''MTMsMzczNzksMzc0MDIsMzc0MTQsMzczOTEsMzczODgsMzczNzYsMzczOTQsMzczNzUsMzczNzMsMzczODIsMzczODAsMzc0MTUsMzczNzgsMzc0MDQsMzc0MTIsMzc0MDEsMzczOTksMzczODEsMzczOTgsMzgyNjcsMzgyODUsMzgyODQsMzgyODgsMzg1MzUsMzg1MjYsMzg1MzYsMzg1Mzcs''@;'; put 'put ''Mzg1MzEsMzg1MjgsMzg1OTQsMzg2MDAsMzg1OTUsMzg2NDEsMzg2NDAsMzg3NjQsMzg3NjgsMzg3NjYsMzg5MTksMzkwODEsMzkxNDcsNDAxNjYsNDA2OTcsMjAwOTksMjAxMDAsMjAxNTAsMjA2NjksMjA2NzEsMjA2NzgsMjA2NTQsMjA2NzYsMjA2ODIsMjA2NjAsMjA2ODAsMjA2NzQsMjA2''@;'; put 'put ''NTYsMjA2NzMsMjA2NjYsMjA2NTcsMjA2ODMsMjA2ODEsMjA2NjIsMjA2NjQsMjA5NTEsMjExMTQsMjExMTIsMjExMTUsMjExMTYsMjE5NTUsMjE5NzksMjE5NjQsMjE5NjgsMjE5NjMsMjE5NjIsMjE5ODEsMjE5NTIsMjE5NzIsMjE5NTYsMjE5OTMsMjE5NTEsMjE5NzAsMjE5MDEsMjE5Njcs''@;'; put 'put ''MjE5NzMsMjE5ODYsMjE5NzQsMjE5NjAsMjIwMDIsMjE5NjUsMjE5NzcsMjE5NTQsMjIyOTIsMjI2MTEsMjI2MzIsMjI2MjgsMjI2MDcsMjI2MDUsMjI2MDEsMjI2MzksMjI2MTMsMjI2MDYsMjI2MjEsMjI2MTcsMjI2MjksMjI2MTksMjI1ODksMjI2MjcsMjI2NDEsMjI3ODAsMjMyMzksMjMy''@;'; put 'put ''MzYsMjMyNDMsMjMyMjYsMjMyMjQsMjMyMTcsMjMyMjEsMjMyMTYsMjMyMzEsMjMyNDAsMjMyMjcsMjMyMzgsMjMyMjMsMjMyMzIsMjMyNDIsMjMyMjAsMjMyMjIsMjMyNDUsMjMyMjUsMjMxODQsMjM1MTAsMjM1MTIsMjM1MTMsMjM1ODMsMjM2MDMsMjM5MjEsMjM5MDcsMjM4ODIsMjM5MDks''@;'; put 'put ''MjM5MjIsMjM5MTYsMjM5MDIsMjM5MTIsMjM5MTEsMjM5MDYsMjQwNDgsMjQxNDMsMjQxNDIsMjQxMzgsMjQxNDEsMjQxMzksMjQyNjEsMjQyNjgsMjQyNjIsMjQyNjcsMjQyNjMsMjQzODQsMjQ0OTUsMjQ0OTMsMjQ4MjMsMjQ5MDUsMjQ5MDYsMjQ4NzUsMjQ5MDEsMjQ4ODYsMjQ4ODIsMjQ4''@;'; put 'put ''NzgsMjQ5MDIsMjQ4NzksMjQ5MTEsMjQ4NzMsMjQ4OTYsMjUxMjAsMzcyMjQsMjUxMjMsMjUxMjUsMjUxMjQsMjU1NDEsMjU1ODUsMjU1NzksMjU2MTYsMjU2MTgsMjU2MDksMjU2MzIsMjU2MzYsMjU2NTEsMjU2NjcsMjU2MzEsMjU2MjEsMjU2MjQsMjU2NTcsMjU2NTUsMjU2MzQsMjU2MzUs''@;'; put 'put ''MjU2MTIsMjU2MzgsMjU2NDgsMjU2NDAsMjU2NjUsMjU2NTMsMjU2NDcsMjU2MTAsMjU2MjYsMjU2NjQsMjU2MzcsMjU2MzksMjU2MTEsMjU1NzUsMjU2MjcsMjU2NDYsMjU2MzMsMjU2MTQsMjU5NjcsMjYwMDIsMjYwNjcsMjYyNDYsMjYyNTIsMjYyNjEsMjYyNTYsMjYyNTEsMjYyNTAsMjYy''@;'; put 'put ''NjUsMjYyNjAsMjYyMzIsMjY0MDAsMjY5ODIsMjY5NzUsMjY5MzYsMjY5NTgsMjY5NzgsMjY5OTMsMjY5NDMsMjY5NDksMjY5ODYsMjY5MzcsMjY5NDYsMjY5NjcsMjY5NjksMjcwMDIsMjY5NTIsMjY5NTMsMjY5MzMsMjY5ODgsMjY5MzEsMjY5NDEsMjY5ODEsMjY4NjQsMjdlMywyNjkzMiwy''@;'; put 'put ''Njk4NSwyNjk0NCwyNjk5MSwyNjk0OCwyNjk5OCwyNjk2OCwyNjk0NSwyNjk5NiwyNjk1NiwyNjkzOSwyNjk1NSwyNjkzNSwyNjk3MiwyNjk1OSwyNjk2MSwyNjkzMCwyNjk2MiwyNjkyNywyNzAwMywyNjk0MCwyNzQ2MiwyNzQ2MSwyNzQ1OSwyNzQ1OCwyNzQ2NCwyNzQ1NywyNzU0Nyw2NDAx''@;'; put 'put ''MywyNzY0MywyNzY0NCwyNzY0MSwyNzYzOSwyNzY0MCwyODMxNSwyODM3NCwyODM2MCwyODMwMywyODM1MiwyODMxOSwyODMwNywyODMwOCwyODMyMCwyODMzNywyODM0NSwyODM1OCwyODM3MCwyODM0OSwyODM1MywyODMxOCwyODM2MSwyODM0MywyODMzNiwyODM2NSwyODMyNiwyODM2Nywy''@;'; put 'put ''ODMzOCwyODM1MCwyODM1NSwyODM4MCwyODM3NiwyODMxMywyODMwNiwyODMwMiwyODMwMSwyODMyNCwyODMyMSwyODM1MSwyODMzOSwyODM2OCwyODM2MiwyODMxMSwyODMzNCwyODMyMywyODk5OSwyOTAxMiwyOTAxMCwyOTAyNywyOTAyNCwyODk5MywyOTAyMSwyOTAyNiwyOTA0MiwyOTA0''@;'; put 'put ''OCwyOTAzNCwyOTAyNSwyODk5NCwyOTAxNiwyODk5NSwyOTAwMywyOTA0MCwyOTAyMywyOTAwOCwyOTAxMSwyODk5NiwyOTAwNSwyOTAxOCwyOTI2MywyOTMyNSwyOTMyNCwyOTMyOSwyOTMyOCwyOTMyNiwyOTUwMCwyOTUwNiwyOTQ5OSwyOTQ5OCwyOTUwNCwyOTUxNCwyOTUxMywyOTc2NCwy''@;'; put 'put ''OTc3MCwyOTc3MSwyOTc3OCwyOTc3NywyOTc4MywyOTc2MCwyOTc3NSwyOTc3NiwyOTc3NCwyOTc2MiwyOTc2NiwyOTc3MywyOTc4MCwyOTkyMSwyOTk1MSwyOTk1MCwyOTk0OSwyOTk4MSwzMDA3MywzMDA3MSwyNzAxMSwzMDE5MSwzMDIyMywzMDIxMSwzMDE5OSwzMDIwNiwzMDIwNCwzMDIw''@;'; put 'put ''MSwzMDIwMCwzMDIyNCwzMDIwMywzMDE5OCwzMDE4OSwzMDE5NywzMDIwNSwzMDM2MSwzMDM4OSwzMDQyOSwzMDU0OSwzMDU1OSwzMDU2MCwzMDU0NiwzMDU1MCwzMDU1NCwzMDU2OSwzMDU2NywzMDU0OCwzMDU1MywzMDU3MywzMDY4OCwzMDg1NSwzMDg3NCwzMDg2OCwzMDg2MywzMDg1Miwz''@;'; put 'put ''MDg2OSwzMDg1MywzMDg1NCwzMDg4MSwzMDg1MSwzMDg0MSwzMDg3MywzMDg0OCwzMDg3MCwzMDg0MywzMTEwMCwzMTEwNiwzMTEwMSwzMTA5NywzMTI0OSwzMTI1NiwzMTI1NywzMTI1MCwzMTI1NSwzMTI1MywzMTI2NiwzMTI1MSwzMTI1OSwzMTI0OCwzMTM5NSwzMTM5NCwzMTM5MCwzMTQ2''@;'; put 'put ''NywzMTU5MCwzMTU4OCwzMTU5NywzMTYwNCwzMTU5MywzMTYwMiwzMTU4OSwzMTYwMywzMTYwMSwzMTYwMCwzMTU4NSwzMTYwOCwzMTYwNiwzMTU4NywzMTkyMiwzMTkyNCwzMTkxOSwzMjEzNiwzMjEzNCwzMjEyOCwzMjE0MSwzMjEyNywzMjEzMywzMjEyMiwzMjE0MiwzMjEyMywzMjEzMSwz''@;'; put 'put ''MjEyNCwzMjE0MCwzMjE0OCwzMjEzMiwzMjEyNSwzMjE0NiwzMjYyMSwzMjYxOSwzMjYxNSwzMjYxNiwzMjYyMCwzMjY3OCwzMjY3NywzMjY3OSwzMjczMSwzMjczMiwzMjgwMSwzMzEyNCwzMzEyMCwzMzE0MywzMzExNiwzMzEyOSwzMzExNSwzMzEyMiwzMzEzOCwyNjQwMSwzMzExOCwzMzE0''@;'; put 'put ''MiwzMzEyNywzMzEzNSwzMzA5MiwzMzEyMSwzMzMwOSwzMzM1MywzMzM0OCwzMzM0NCwzMzM0NiwzMzM0OSwzNDAzMywzMzg1NSwzMzg3OCwzMzkxMCwzMzkxMywzMzkzNSwzMzkzMywzMzg5MywzMzg3MywzMzg1NiwzMzkyNiwzMzg5NSwzMzg0MCwzMzg2OSwzMzkxNywzMzg4MiwzMzg4MSwz''@;'; put 'put ''MzkwOCwzMzkwNywzMzg4NSwzNDA1NSwzMzg4NiwzMzg0NywzMzg1MCwzMzg0NCwzMzkxNCwzMzg1OSwzMzkxMiwzMzg0MiwzMzg2MSwzMzgzMywzMzc1MywzMzg2NywzMzgzOSwzMzg1OCwzMzgzNywzMzg4NywzMzkwNCwzMzg0OSwzMzg3MCwzMzg2OCwzMzg3NCwzMzkwMywzMzk4OSwzMzkz''@;'; put 'put ''NCwzMzg1MSwzMzg2MywzMzg0NiwzMzg0MywzMzg5NiwzMzkxOCwzMzg2MCwzMzgzNSwzMzg4OCwzMzg3NiwzMzkwMiwzMzg3MiwzNDU3MSwzNDU2NCwzNDU1MSwzNDU3MiwzNDU1NCwzNDUxOCwzNDU0OSwzNDYzNywzNDU1MiwzNDU3NCwzNDU2OSwzNDU2MSwzNDU1MCwzNDU3MywzNDU2NSwz''@;'; put 'put ''NTAzMCwzNTAxOSwzNTAyMSwzNTAyMiwzNTAzOCwzNTAzNSwzNTAzNCwzNTAyMCwzNTAyNCwzNTIwNSwzNTIyNywzNTI5NSwzNTMwMSwzNTMwMCwzNTI5NywzNTI5NiwzNTI5OCwzNTI5MiwzNTMwMiwzNTQ0NiwzNTQ2MiwzNTQ1NSwzNTQyNSwzNTM5MSwzNTQ0NywzNTQ1OCwzNTQ2MCwzNTQ0''@;'; put 'put ''NSwzNTQ1OSwzNTQ1NywzNTQ0NCwzNTQ1MCwzNTkwMCwzNTkxNSwzNTkxNCwzNTk0MSwzNTk0MCwzNTk0MiwzNTk3NCwzNTk3MiwzNTk3MywzNjA0NCwzNjIwMCwzNjIwMSwzNjI0MSwzNjIzNiwzNjIzOCwzNjIzOSwzNjIzNywzNjI0MywzNjI0NCwzNjI0MCwzNjI0MiwzNjMzNiwzNjMyMCwz''@;'; put 'put ''NjMzMiwzNjMzNywzNjMzNCwzNjMwNCwzNjMyOSwzNjMyMywzNjMyMiwzNjMyNywzNjMzOCwzNjMzMSwzNjM0MCwzNjYxNCwzNjYwNywzNjYwOSwzNjYwOCwzNjYxMywzNjYxNSwzNjYxNiwzNjYxMCwzNjYxOSwzNjk0NiwzNjkyNywzNjkzMiwzNjkzNywzNjkyNSwzNzEzNiwzNzEzMywzNzEz''@;'; put 'put ''NSwzNzEzNywzNzE0MiwzNzE0MCwzNzEzMSwzNzEzNCwzNzIzMCwzNzIzMSwzNzQ0OCwzNzQ1OCwzNzQyNCwzNzQzNCwzNzQ3OCwzNzQyNywzNzQ3NywzNzQ3MCwzNzUwNywzNzQyMiwzNzQ1MCwzNzQ0NiwzNzQ4NSwzNzQ4NCwzNzQ1NSwzNzQ3MiwzNzQ3OSwzNzQ4NywzNzQzMCwzNzQ3Mywz''@;'; put 'put ''NzQ4OCwzNzQyNSwzNzQ2MCwzNzQ3NSwzNzQ1NiwzNzQ5MCwzNzQ1NCwzNzQ1OSwzNzQ1MiwzNzQ2MiwzNzQyNiwzODMwMywzODMwMCwzODMwMiwzODI5OSwzODU0NiwzODU0NywzODU0NSwzODU1MSwzODYwNiwzODY1MCwzODY1MywzODY0OCwzODY0NSwzODc3MSwzODc3NSwzODc3NiwzODc3''@;'; put 'put ''MCwzODkyNywzODkyNSwzODkyNiwzOTA4NCwzOTE1OCwzOTE2MSwzOTM0MywzOTM0NiwzOTM0NCwzOTM0OSwzOTU5NywzOTU5NSwzOTc3MSw0MDE3MCw0MDE3Myw0MDE2Nyw0MDU3Niw0MDcwMSwyMDcxMCwyMDY5MiwyMDY5NSwyMDcxMiwyMDcyMywyMDY5OSwyMDcxNCwyMDcwMSwyMDcwOCwy''@;'; put 'put ''MDY5MSwyMDcxNiwyMDcyMCwyMDcxOSwyMDcwNywyMDcwNCwyMDk1MiwyMTEyMCwyMTEyMSwyMTIyNSwyMTIyNywyMTI5NiwyMTQyMCwyMjA1NSwyMjAzNywyMjAyOCwyMjAzNCwyMjAxMiwyMjAzMSwyMjA0NCwyMjAxNywyMjAzNSwyMjAxOCwyMjAxMCwyMjA0NSwyMjAyMCwyMjAxNSwyMjAw''@;'; put 'put ''OSwyMjY2NSwyMjY1MiwyMjY3MiwyMjY4MCwyMjY2MiwyMjY1NywyMjY1NSwyMjY0NCwyMjY2NywyMjY1MCwyMjY2MywyMjY3MywyMjY3MCwyMjY0NiwyMjY1OCwyMjY2NCwyMjY1MSwyMjY3NiwyMjY3MSwyMjc4MiwyMjg5MSwyMzI2MCwyMzI3OCwyMzI2OSwyMzI1MywyMzI3NCwyMzI1OCwy''@;'; put 'put ''MzI3NywyMzI3NSwyMzI4MywyMzI2NiwyMzI2NCwyMzI1OSwyMzI3NiwyMzI2MiwyMzI2MSwyMzI1NywyMzI3MiwyMzI2MywyMzQxNSwyMzUyMCwyMzUyMywyMzY1MSwyMzkzOCwyMzkzNiwyMzkzMywyMzk0MiwyMzkzMCwyMzkzNywyMzkyNywyMzk0NiwyMzk0NSwyMzk0NCwyMzkzNCwyMzkz''@;'; put 'put ''MiwyMzk0OSwyMzkyOSwyMzkzNSwyNDE1MiwyNDE1MywyNDE0NywyNDI4MCwyNDI3MywyNDI3OSwyNDI3MCwyNDI4NCwyNDI3NywyNDI4MSwyNDI3NCwyNDI3NiwyNDM4OCwyNDM4NywyNDQzMSwyNDUwMiwyNDg3NiwyNDg3MiwyNDg5NywyNDkyNiwyNDk0NSwyNDk0NywyNDkxNCwyNDkxNSwy''@;'; put 'put ''NDk0NiwyNDk0MCwyNDk2MCwyNDk0OCwyNDkxNiwyNDk1NCwyNDkyMywyNDkzMywyNDg5MSwyNDkzOCwyNDkyOSwyNDkxOCwyNTEyOSwyNTEyNywyNTEzMSwyNTY0MywyNTY3NywyNTY5MSwyNTY5MywyNTcxNiwyNTcxOCwyNTcxNCwyNTcxNSwyNTcyNSwyNTcxNywyNTcwMiwyNTc2NiwyNTY3''@;'; put 'put ''OCwyNTczMCwyNTY5NCwyNTY5MiwyNTY3NSwyNTY4MywyNTY5NiwyNTY4MCwyNTcyNywyNTY2MywyNTcwOCwyNTcwNywyNTY4OSwyNTcwMSwyNTcxOSwyNTk3MSwyNjAxNiwyNjI3MywyNjI3MiwyNjI3MSwyNjM3MywyNjM3MiwyNjQwMiwyNzA1NywyNzA2MiwyNzA4MSwyNzA0MCwyNzA4Niwy''@;'; put 'put ''NzAzMCwyNzA1NiwyNzA1MiwyNzA2OCwyNzAyNSwyNzAzMywyNzAyMiwyNzA0NywyNzAyMSwyNzA0OSwyNzA3MCwyNzA1NSwyNzA3MSwyNzA3NiwyNzA2OSwyNzA0NCwyNzA5MiwyNzA2NSwyNzA4MiwyNzAzNCwyNzA4NywyNzA1OSwyNzAyNywyNzA1MCwyNzA0MSwyNzAzOCwyNzA5NywyNzAz''@;'; put 'put ''MSwyNzAyNCwyNzA3NCwyNzA2MSwyNzA0NSwyNzA3OCwyNzQ2NiwyNzQ2OSwyNzQ2NywyNzU1MCwyNzU1MSwyNzU1MiwyNzU4NywyNzU4OCwyNzY0NiwyODM2NiwyODQwNSwyODQwMSwyODQxOSwyODQ1MywyODQwOCwyODQ3MSwyODQxMSwyODQ2MiwyODQyNSwyODQ5NCwyODQ0MSwyODQ0Miwy''@;'; put 'put ''ODQ1NSwyODQ0MCwyODQ3NSwyODQzNCwyODM5NywyODQyNiwyODQ3MCwyODUzMSwyODQwOSwyODM5OCwyODQ2MSwyODQ4MCwyODQ2NCwyODQ3NiwyODQ2OSwyODM5NSwyODQyMywyODQzMCwyODQ4MywyODQyMSwyODQxMywyODQwNiwyODQ3MywyODQ0NCwyODQxMiwyODQ3NCwyODQ0NywyODQy''@;'; put 'put ''OSwyODQ0NiwyODQyNCwyODQ0OSwyOTA2MywyOTA3MiwyOTA2NSwyOTA1NiwyOTA2MSwyOTA1OCwyOTA3MSwyOTA1MSwyOTA2MiwyOTA1NywyOTA3OSwyOTI1MiwyOTI2NywyOTMzNSwyOTMzMywyOTMzMSwyOTUwNywyOTUxNywyOTUyMSwyOTUxNiwyOTc5NCwyOTgxMSwyOTgwOSwyOTgxMywy''@;'; put 'put ''OTgxMCwyOTc5OSwyOTgwNiwyOTk1MiwyOTk1NCwyOTk1NSwzMDA3NywzMDA5NiwzMDIzMCwzMDIxNiwzMDIyMCwzMDIyOSwzMDIyNSwzMDIxOCwzMDIyOCwzMDM5MiwzMDU5MywzMDU4OCwzMDU5NywzMDU5NCwzMDU3NCwzMDU5MiwzMDU3NSwzMDU5MCwzMDU5NSwzMDg5OCwzMDg5MCwzMDkw''@;'; put 'put ''MCwzMDg5MywzMDg4OCwzMDg0NiwzMDg5MSwzMDg3OCwzMDg4NSwzMDg4MCwzMDg5MiwzMDg4MiwzMDg4NCwzMTEyOCwzMTExNCwzMTExNSwzMTEyNiwzMTEyNSwzMTEyNCwzMTEyMywzMTEyNywzMTExMiwzMTEyMiwzMTEyMCwzMTI3NSwzMTMwNiwzMTI4MCwzMTI3OSwzMTI3MiwzMTI3MCwz''@;'; put 'put ''MTQwMCwzMTQwMywzMTQwNCwzMTQ3MCwzMTYyNCwzMTY0NCwzMTYyNiwzMTYzMywzMTYzMiwzMTYzOCwzMTYyOSwzMTYyOCwzMTY0MywzMTYzMCwzMTYyMSwzMTY0MCwyMTEyNCwzMTY0MSwzMTY1MiwzMTYxOCwzMTkzMSwzMTkzNSwzMTkzMiwzMTkzMCwzMjE2NywzMjE4MywzMjE5NCwzMjE2''@;'; put 'put ''MywzMjE3MCwzMjE5MywzMjE5MiwzMjE5NywzMjE1NywzMjIwNiwzMjE5NiwzMjE5OCwzMjIwMywzMjIwNCwzMjE3NSwzMjE4NSwzMjE1MCwzMjE4OCwzMjE1OSwzMjE2NiwzMjE3NCwzMjE2OSwzMjE2MSwzMjIwMSwzMjYyNywzMjczOCwzMjczOSwzMjc0MSwzMjczNCwzMjgwNCwzMjg2MSwz''@;'; put 'put ''Mjg2MCwzMzE2MSwzMzE1OCwzMzE1NSwzMzE1OSwzMzE2NSwzMzE2NCwzMzE2MywzMzMwMSwzMzk0MywzMzk1NiwzMzk1MywzMzk1MSwzMzk3OCwzMzk5OCwzMzk4NiwzMzk2NCwzMzk2NiwzMzk2MywzMzk3NywzMzk3MiwzMzk4NSwzMzk5NywzMzk2MiwzMzk0NiwzMzk2OSwzNGUzLDMzOTQ5''@;'; put 'put ''LDMzOTU5LDMzOTc5LDMzOTU0LDMzOTQwLDMzOTkxLDMzOTk2LDMzOTQ3LDMzOTYxLDMzOTY3LDMzOTYwLDM0MDA2LDMzOTQ0LDMzOTc0LDMzOTk5LDMzOTUyLDM0MDA3LDM0MDA0LDM0MDAyLDM0MDExLDMzOTY4LDMzOTM3LDM0NDAxLDM0NjExLDM0NTk1LDM0NjAwLDM0NjY3LDM0NjI0LDM0''@;'; put 'put ''NjA2LDM0NTkwLDM0NTkzLDM0NTg1LDM0NTg3LDM0NjI3LDM0NjA0LDM0NjI1LDM0NjIyLDM0NjMwLDM0NTkyLDM0NjEwLDM0NjAyLDM0NjA1LDM0NjIwLDM0NTc4LDM0NjE4LDM0NjA5LDM0NjEzLDM0NjI2LDM0NTk4LDM0NTk5LDM0NjE2LDM0NTk2LDM0NTg2LDM0NjA4LDM0NTc3LDM1MDYz''@;'; put 'put ''LDM1MDQ3LDM1MDU3LDM1MDU4LDM1MDY2LDM1MDcwLDM1MDU0LDM1MDY4LDM1MDYyLDM1MDY3LDM1MDU2LDM1MDUyLDM1MDUxLDM1MjI5LDM1MjMzLDM1MjMxLDM1MjMwLDM1MzA1LDM1MzA3LDM1MzA0LDM1NDk5LDM1NDgxLDM1NDY3LDM1NDc0LDM1NDcxLDM1NDc4LDM1OTAxLDM1OTQ0LDM1''@;'; put 'put ''OTQ1LDM2MDUzLDM2MDQ3LDM2MDU1LDM2MjQ2LDM2MzYxLDM2MzU0LDM2MzUxLDM2MzY1LDM2MzQ5LDM2MzYyLDM2MzU1LDM2MzU5LDM2MzU4LDM2MzU3LDM2MzUwLDM2MzUyLDM2MzU2LDM2NjI0LDM2NjI1LDM2NjIyLDM2NjIxLDM3MTU1LDM3MTQ4LDM3MTUyLDM3MTU0LDM3MTUxLDM3MTQ5''@;'; put 'put ''LDM3MTQ2LDM3MTU2LDM3MTUzLDM3MTQ3LDM3MjQyLDM3MjM0LDM3MjQxLDM3MjM1LDM3NTQxLDM3NTQwLDM3NDk0LDM3NTMxLDM3NDk4LDM3NTM2LDM3NTI0LDM3NTQ2LDM3NTE3LDM3NTQyLDM3NTMwLDM3NTQ3LDM3NDk3LDM3NTI3LDM3NTAzLDM3NTM5LDM3NjE0LDM3NTE4LDM3NTA2LDM3''@;'; put 'put ''NTI1LDM3NTM4LDM3NTAxLDM3NTEyLDM3NTM3LDM3NTE0LDM3NTEwLDM3NTE2LDM3NTI5LDM3NTQzLDM3NTAyLDM3NTExLDM3NTQ1LDM3NTMzLDM3NTE1LDM3NDIxLDM4NTU4LDM4NTYxLDM4NjU1LDM4NzQ0LDM4NzgxLDM4Nzc4LDM4NzgyLDM4Nzg3LDM4Nzg0LDM4Nzg2LDM4Nzc5LDM4Nzg4''@;'; put 'put ''LDM4Nzg1LDM4NzgzLDM4ODYyLDM4ODYxLDM4OTM0LDM5MDg1LDM5MDg2LDM5MTcwLDM5MTY4LDM5MTc1LDM5MzI1LDM5MzI0LDM5MzYzLDM5MzUzLDM5MzU1LDM5MzU0LDM5MzYyLDM5MzU3LDM5MzY3LDM5NjAxLDM5NjUxLDM5NjU1LDM5NzQyLDM5NzQzLDM5Nzc2LDM5Nzc3LDM5Nzc1LDQw''@;'; put 'put ''MTc3LDQwMTc4LDQwMTgxLDQwNjE1LDIwNzM1LDIwNzM5LDIwNzg0LDIwNzI4LDIwNzQyLDIwNzQzLDIwNzI2LDIwNzM0LDIwNzQ3LDIwNzQ4LDIwNzMzLDIwNzQ2LDIxMTMxLDIxMTMyLDIxMjMzLDIxMjMxLDIyMDg4LDIyMDgyLDIyMDkyLDIyMDY5LDIyMDgxLDIyMDkwLDIyMDg5LDIyMDg2''@;'; put 'put ''LDIyMTA0LDIyMTA2LDIyMDgwLDIyMDY3LDIyMDc3LDIyMDYwLDIyMDc4LDIyMDcyLDIyMDU4LDIyMDc0LDIyMjk4LDIyNjk5LDIyNjg1LDIyNzA1LDIyNjg4LDIyNjkxLDIyNzAzLDIyNzAwLDIyNjkzLDIyNjg5LDIyNzgzLDIzMjk1LDIzMjg0LDIzMjkzLDIzMjg3LDIzMjg2LDIzMjk5LDIz''@;'; put 'put ''Mjg4LDIzMjk4LDIzMjg5LDIzMjk3LDIzMzAzLDIzMzAxLDIzMzExLDIzNjU1LDIzOTYxLDIzOTU5LDIzOTY3LDIzOTU0LDIzOTcwLDIzOTU1LDIzOTU3LDIzOTY4LDIzOTY0LDIzOTY5LDIzOTYyLDIzOTY2LDI0MTY5LDI0MTU3LDI0MTYwLDI0MTU2LDMyMjQzLDI0MjgzLDI0Mjg2LDI0Mjg5''@;'; put 'put ''LDI0MzkzLDI0NDk4LDI0OTcxLDI0OTYzLDI0OTUzLDI1MDA5LDI1MDA4LDI0OTk0LDI0OTY5LDI0OTg3LDI0OTc5LDI1MDA3LDI1MDA1LDI0OTkxLDI0OTc4LDI1MDAyLDI0OTkzLDI0OTczLDI0OTM0LDI1MDExLDI1MTMzLDI1NzEwLDI1NzEyLDI1NzUwLDI1NzYwLDI1NzMzLDI1NzUxLDI1''@;'; put 'put ''NzU2LDI1NzQzLDI1NzM5LDI1NzM4LDI1NzQwLDI1NzYzLDI1NzU5LDI1NzA0LDI1Nzc3LDI1NzUyLDI1OTc0LDI1OTc4LDI1OTc3LDI1OTc5LDI2MDM0LDI2MDM1LDI2MjkzLDI2Mjg4LDI2MjgxLDI2MjkwLDI2Mjk1LDI2MjgyLDI2Mjg3LDI3MTM2LDI3MTQyLDI3MTU5LDI3MTA5LDI3MTI4''@;'; put 'put ''LDI3MTU3LDI3MTIxLDI3MTA4LDI3MTY4LDI3MTM1LDI3MTE2LDI3MTA2LDI3MTYzLDI3MTY1LDI3MTM0LDI3MTc1LDI3MTIyLDI3MTE4LDI3MTU2LDI3MTI3LDI3MTExLDI3MjAwLDI3MTQ0LDI3MTEwLDI3MTMxLDI3MTQ5LDI3MTMyLDI3MTE1LDI3MTQ1LDI3MTQwLDI3MTYwLDI3MTczLDI3''@;'; put 'put ''MTUxLDI3MTI2LDI3MTc0LDI3MTQzLDI3MTI0LDI3MTU4LDI3NDczLDI3NTU3LDI3NTU1LDI3NTU0LDI3NTU4LDI3NjQ5LDI3NjQ4LDI3NjQ3LDI3NjUwLDI4NDgxLDI4NDU0LDI4NTQyLDI4NTUxLDI4NjE0LDI4NTYyLDI4NTU3LDI4NTUzLDI4NTU2LDI4NTE0LDI4NDk1LDI4NTQ5LDI4NTA2''@;'; put 'put ''LDI4NTY2LDI4NTM0LDI4NTI0LDI4NTQ2LDI4NTAxLDI4NTMwLDI4NDk4LDI4NDk2LDI4NTAzLDI4NTY0LDI4NTYzLDI4NTA5LDI4NDE2LDI4NTEzLDI4NTIzLDI4NTQxLDI4NTE5LDI4NTYwLDI4NDk5LDI4NTU1LDI4NTIxLDI4NTQzLDI4NTY1LDI4NTE1LDI4NTM1LDI4NTIyLDI4NTM5LDI5''@;'; put 'put ''MTA2LDI5MTAzLDI5MDgzLDI5MTA0LDI5MDg4LDI5MDgyLDI5MDk3LDI5MTA5LDI5MDg1LDI5MDkzLDI5MDg2LDI5MDkyLDI5MDg5LDI5MDk4LDI5MDg0LDI5MDk1LDI5MTA3LDI5MzM2LDI5MzM4LDI5NTI4LDI5NTIyLDI5NTM0LDI5NTM1LDI5NTM2LDI5NTMzLDI5NTMxLDI5NTM3LDI5NTMw''@;'; put 'put ''LDI5NTI5LDI5NTM4LDI5ODMxLDI5ODMzLDI5ODM0LDI5ODMwLDI5ODI1LDI5ODIxLDI5ODI5LDI5ODMyLDI5ODIwLDI5ODE3LDI5OTYwLDI5OTU5LDMwMDc4LDMwMjQ1LDMwMjM4LDMwMjMzLDMwMjM3LDMwMjM2LDMwMjQzLDMwMjM0LDMwMjQ4LDMwMjM1LDMwMzY0LDMwMzY1LDMwMzY2LDMw''@;'; put 'put ''MzYzLDMwNjA1LDMwNjA3LDMwNjAxLDMwNjAwLDMwOTI1LDMwOTA3LDMwOTI3LDMwOTI0LDMwOTI5LDMwOTI2LDMwOTMyLDMwOTIwLDMwOTE1LDMwOTE2LDMwOTIxLDMxMTMwLDMxMTM3LDMxMTM2LDMxMTMyLDMxMTM4LDMxMTMxLDI3NTEwLDMxMjg5LDMxNDEwLDMxNDEyLDMxNDExLDMxNjcx''@;'; put 'put ''LDMxNjkxLDMxNjc4LDMxNjYwLDMxNjk0LDMxNjYzLDMxNjczLDMxNjkwLDMxNjY5LDMxOTQxLDMxOTQ0LDMxOTQ4LDMxOTQ3LDMyMjQ3LDMyMjE5LDMyMjM0LDMyMjMxLDMyMjE1LDMyMjI1LDMyMjU5LDMyMjUwLDMyMjMwLDMyMjQ2LDMyMjQxLDMyMjQwLDMyMjM4LDMyMjIzLDMyNjMwLDMy''@;'; put 'put ''Njg0LDMyNjg4LDMyNjg1LDMyNzQ5LDMyNzQ3LDMyNzQ2LDMyNzQ4LDMyNzQyLDMyNzQ0LDMyODY4LDMyODcxLDMzMTg3LDMzMTgzLDMzMTgyLDMzMTczLDMzMTg2LDMzMTc3LDMzMTc1LDMzMzAyLDMzMzU5LDMzMzYzLDMzMzYyLDMzMzYwLDMzMzU4LDMzMzYxLDM0MDg0LDM0MTA3LDM0MDYz''@;'; put 'put ''LDM0MDQ4LDM0MDg5LDM0MDYyLDM0MDU3LDM0MDYxLDM0MDc5LDM0MDU4LDM0MDg3LDM0MDc2LDM0MDQzLDM0MDkxLDM0MDQyLDM0MDU2LDM0MDYwLDM0MDM2LDM0MDkwLDM0MDM0LDM0MDY5LDM0MDM5LDM0MDI3LDM0MDM1LDM0MDQ0LDM0MDY2LDM0MDI2LDM0MDI1LDM0MDcwLDM0MDQ2LDM0''@;'; put 'put ''MDg4LDM0MDc3LDM0MDk0LDM0MDUwLDM0MDQ1LDM0MDc4LDM0MDM4LDM0MDk3LDM0MDg2LDM0MDIzLDM0MDI0LDM0MDMyLDM0MDMxLDM0MDQxLDM0MDcyLDM0MDgwLDM0MDk2LDM0MDU5LDM0MDczLDM0MDk1LDM0NDAyLDM0NjQ2LDM0NjU5LDM0NjYwLDM0Njc5LDM0Nzg1LDM0Njc1LDM0NjQ4''@;'; put 'put ''LDM0NjQ0LDM0NjUxLDM0NjQyLDM0NjU3LDM0NjUwLDM0NjQxLDM0NjU0LDM0NjY5LDM0NjY2LDM0NjQwLDM0NjM4LDM0NjU1LDM0NjUzLDM0NjcxLDM0NjY4LDM0NjgyLDM0NjcwLDM0NjUyLDM0NjYxLDM0NjM5LDM0NjgzLDM0Njc3LDM0NjU4LDM0NjYzLDM0NjY1LDM0OTA2LDM1MDc3LDM1''@;'; put 'put ''MDg0LDM1MDkyLDM1MDgzLDM1MDk1LDM1MDk2LDM1MDk3LDM1MDc4LDM1MDk0LDM1MDg5LDM1MDg2LDM1MDgxLDM1MjM0LDM1MjM2LDM1MjM1LDM1MzA5LDM1MzEyLDM1MzA4LDM1NTM1LDM1NTI2LDM1NTEyLDM1NTM5LDM1NTM3LDM1NTQwLDM1NTQxLDM1NTE1LDM1NTQzLDM1NTE4LDM1NTIw''@;'; put 'put ''LDM1NTI1LDM1NTQ0LDM1NTIzLDM1NTE0LDM1NTE3LDM1NTQ1LDM1OTAyLDM1OTE3LDM1OTgzLDM2MDY5LDM2MDYzLDM2MDU3LDM2MDcyLDM2MDU4LDM2MDYxLDM2MDcxLDM2MjU2LDM2MjUyLDM2MjU3LDM2MjUxLDM2Mzg0LDM2Mzg3LDM2Mzg5LDM2Mzg4LDM2Mzk4LDM2MzczLDM2Mzc5LDM2''@;'; put 'put ''Mzc0LDM2MzY5LDM2Mzc3LDM2MzkwLDM2MzkxLDM2MzcyLDM2MzcwLDM2Mzc2LDM2MzcxLDM2MzgwLDM2Mzc1LDM2Mzc4LDM2NjUyLDM2NjQ0LDM2NjMyLDM2NjM0LDM2NjQwLDM2NjQzLDM2NjMwLDM2NjMxLDM2OTc5LDM2OTc2LDM2OTc1LDM2OTY3LDM2OTcxLDM3MTY3LDM3MTYzLDM3MTYx''@;'; put 'put ''LDM3MTYyLDM3MTcwLDM3MTU4LDM3MTY2LDM3MjUzLDM3MjU0LDM3MjU4LDM3MjQ5LDM3MjUwLDM3MjUyLDM3MjQ4LDM3NTg0LDM3NTcxLDM3NTcyLDM3NTY4LDM3NTkzLDM3NTU4LDM3NTgzLDM3NjE3LDM3NTk5LDM3NTkyLDM3NjA5LDM3NTkxLDM3NTk3LDM3NTgwLDM3NjE1LDM3NTcwLDM3''@;'; put 'put ''NjA4LDM3NTc4LDM3NTc2LDM3NTgyLDM3NjA2LDM3NTgxLDM3NTg5LDM3NTc3LDM3NjAwLDM3NTk4LDM3NjA3LDM3NTg1LDM3NTg3LDM3NTU3LDM3NjAxLDM3NTc0LDM3NTU2LDM4MjY4LDM4MzE2LDM4MzE1LDM4MzE4LDM4MzIwLDM4NTY0LDM4NTYyLDM4NjExLDM4NjYxLDM4NjY0LDM4NjU4''@;'; put 'put ''LDM4NzQ2LDM4Nzk0LDM4Nzk4LDM4NzkyLDM4ODY0LDM4ODYzLDM4OTQyLDM4OTQxLDM4OTUwLDM4OTUzLDM4OTUyLDM4OTQ0LDM4OTM5LDM4OTUxLDM5MDkwLDM5MTc2LDM5MTYyLDM5MTg1LDM5MTg4LDM5MTkwLDM5MTkxLDM5MTg5LDM5Mzg4LDM5MzczLDM5Mzc1LDM5Mzc5LDM5MzgwLDM5''@;'; put 'put ''Mzc0LDM5MzY5LDM5MzgyLDM5Mzg0LDM5MzcxLDM5MzgzLDM5MzcyLDM5NjAzLDM5NjYwLDM5NjU5LDM5NjY3LDM5NjY2LDM5NjY1LDM5NzUwLDM5NzQ3LDM5NzgzLDM5Nzk2LDM5NzkzLDM5NzgyLDM5Nzk4LDM5Nzk3LDM5NzkyLDM5Nzg0LDM5NzgwLDM5Nzg4LDQwMTg4LDQwMTg2LDQwMTg5''@;'; put 'put ''LDQwMTkxLDQwMTgzLDQwMTk5LDQwMTkyLDQwMTg1LDQwMTg3LDQwMjAwLDQwMTk3LDQwMTk2LDQwNTc5LDQwNjU5LDQwNzE5LDQwNzIwLDIwNzY0LDIwNzU1LDIwNzU5LDIwNzYyLDIwNzUzLDIwOTU4LDIxMzAwLDIxNDczLDIyMTI4LDIyMTEyLDIyMTI2LDIyMTMxLDIyMTE4LDIyMTE1LDIy''@;'; put 'put ''MTI1LDIyMTMwLDIyMTEwLDIyMTM1LDIyMzAwLDIyMjk5LDIyNzI4LDIyNzE3LDIyNzI5LDIyNzE5LDIyNzE0LDIyNzIyLDIyNzE2LDIyNzI2LDIzMzE5LDIzMzIxLDIzMzIzLDIzMzI5LDIzMzE2LDIzMzE1LDIzMzEyLDIzMzE4LDIzMzM2LDIzMzIyLDIzMzI4LDIzMzI2LDIzNTM1LDIzOTgw''@;'; put 'put ''LDIzOTg1LDIzOTc3LDIzOTc1LDIzOTg5LDIzOTg0LDIzOTgyLDIzOTc4LDIzOTc2LDIzOTg2LDIzOTgxLDIzOTgzLDIzOTg4LDI0MTY3LDI0MTY4LDI0MTY2LDI0MTc1LDI0Mjk3LDI0Mjk1LDI0Mjk0LDI0Mjk2LDI0MjkzLDI0Mzk1LDI0NTA4LDI0OTg5LDI1ZTMsMjQ5ODIsMjUwMjksMjUw''@;'; put 'put ''MTIsMjUwMzAsMjUwMjUsMjUwMzYsMjUwMTgsMjUwMjMsMjUwMTYsMjQ5NzIsMjU4MTUsMjU4MTQsMjU4MDgsMjU4MDcsMjU4MDEsMjU3ODksMjU3MzcsMjU3OTUsMjU4MTksMjU4NDMsMjU4MTcsMjU5MDcsMjU5ODMsMjU5ODAsMjYwMTgsMjYzMTIsMjYzMDIsMjYzMDQsMjYzMTQsMjYzMTUs''@;'; put 'put ''MjYzMTksMjYzMDEsMjYyOTksMjYyOTgsMjYzMTYsMjY0MDMsMjcxODgsMjcyMzgsMjcyMDksMjcyMzksMjcxODYsMjcyNDAsMjcxOTgsMjcyMjksMjcyNDUsMjcyNTQsMjcyMjcsMjcyMTcsMjcxNzYsMjcyMjYsMjcxOTUsMjcxOTksMjcyMDEsMjcyNDIsMjcyMzYsMjcyMTYsMjcyMTUsMjcy''@;'; put 'put ''MjAsMjcyNDcsMjcyNDEsMjcyMzIsMjcxOTYsMjcyMzAsMjcyMjIsMjcyMjEsMjcyMTMsMjcyMTQsMjcyMDYsMjc0NzcsMjc0NzYsMjc0NzgsMjc1NTksMjc1NjIsMjc1NjMsMjc1OTIsMjc1OTEsMjc2NTIsMjc2NTEsMjc2NTQsMjg1ODksMjg2MTksMjg1NzksMjg2MTUsMjg2MDQsMjg2MjIs''@;'; put 'put ''Mjg2MTYsMjg1MTAsMjg2MTIsMjg2MDUsMjg1NzQsMjg2MTgsMjg1ODQsMjg2NzYsMjg1ODEsMjg1OTAsMjg2MDIsMjg1ODgsMjg1ODYsMjg2MjMsMjg2MDcsMjg2MDAsMjg1NzgsMjg2MTcsMjg1ODcsMjg2MjEsMjg1OTEsMjg1OTQsMjg1OTIsMjkxMjUsMjkxMjIsMjkxMTksMjkxMTIsMjkx''@;'; put 'put ''NDIsMjkxMjAsMjkxMjEsMjkxMzEsMjkxNDAsMjkxMzAsMjkxMjcsMjkxMzUsMjkxMTcsMjkxNDQsMjkxMTYsMjkxMjYsMjkxNDYsMjkxNDcsMjkzNDEsMjkzNDIsMjk1NDUsMjk1NDIsMjk1NDMsMjk1NDgsMjk1NDEsMjk1NDcsMjk1NDYsMjk4MjMsMjk4NTAsMjk4NTYsMjk4NDQsMjk4NDIs''@;'; put 'put ''Mjk4NDUsMjk4NTcsMjk5NjMsMzAwODAsMzAyNTUsMzAyNTMsMzAyNTcsMzAyNjksMzAyNTksMzAyNjgsMzAyNjEsMzAyNTgsMzAyNTYsMzAzOTUsMzA0MzgsMzA2MTgsMzA2MjEsMzA2MjUsMzA2MjAsMzA2MTksMzA2MjYsMzA2MjcsMzA2MTMsMzA2MTcsMzA2MTUsMzA5NDEsMzA5NTMsMzA5''@;'; put 'put ''NDksMzA5NTQsMzA5NDIsMzA5NDcsMzA5MzksMzA5NDUsMzA5NDYsMzA5NTcsMzA5NDMsMzA5NDQsMzExNDAsMzEzMDAsMzEzMDQsMzEzMDMsMzE0MTQsMzE0MTYsMzE0MTMsMzE0MDksMzE0MTUsMzE3MTAsMzE3MTUsMzE3MTksMzE3MDksMzE3MDEsMzE3MTcsMzE3MDYsMzE3MjAsMzE3Mzcs''@;'; put 'put ''MzE3MDAsMzE3MjIsMzE3MTQsMzE3MDgsMzE3MjMsMzE3MDQsMzE3MTEsMzE5NTQsMzE5NTYsMzE5NTksMzE5NTIsMzE5NTMsMzIyNzQsMzIyODksMzIyNzksMzIyNjgsMzIyODcsMzIyODgsMzIyNzUsMzIyNzAsMzIyODQsMzIyNzcsMzIyODIsMzIyOTAsMzIyNjcsMzIyNzEsMzIyNzgsMzIy''@;'; put 'put ''NjksMzIyNzYsMzIyOTMsMzIyOTIsMzI1NzksMzI2MzUsMzI2MzYsMzI2MzQsMzI2ODksMzI3NTEsMzI4MTAsMzI4MDksMzI4NzYsMzMyMDEsMzMxOTAsMzMxOTgsMzMyMDksMzMyMDUsMzMxOTUsMzMyMDAsMzMxOTYsMzMyMDQsMzMyMDIsMzMyMDcsMzMxOTEsMzMyNjYsMzMzNjUsMzMzNjYs''@;'; put 'put ''MzMzNjcsMzQxMzQsMzQxMTcsMzQxNTUsMzQxMjUsMzQxMzEsMzQxNDUsMzQxMzYsMzQxMTIsMzQxMTgsMzQxNDgsMzQxMTMsMzQxNDYsMzQxMTYsMzQxMjksMzQxMTksMzQxNDcsMzQxMTAsMzQxMzksMzQxNjEsMzQxMjYsMzQxNTgsMzQxNjUsMzQxMzMsMzQxNTEsMzQxNDQsMzQxODgsMzQx''@;'; put 'put ''NTAsMzQxNDEsMzQxMzIsMzQxNDksMzQxNTYsMzQ0MDMsMzQ0MDUsMzQ0MDQsMzQ3MTUsMzQ3MDMsMzQ3MTEsMzQ3MDcsMzQ3MDYsMzQ2OTYsMzQ2ODksMzQ3MTAsMzQ3MTIsMzQ2ODEsMzQ2OTUsMzQ3MjMsMzQ2OTMsMzQ3MDQsMzQ3MDUsMzQ3MTcsMzQ2OTIsMzQ3MDgsMzQ3MTYsMzQ3MTQs''@;'; put 'put ''MzQ2OTcsMzUxMDIsMzUxMTAsMzUxMjAsMzUxMTcsMzUxMTgsMzUxMTEsMzUxMjEsMzUxMDYsMzUxMTMsMzUxMDcsMzUxMTksMzUxMTYsMzUxMDMsMzUzMTMsMzU1NTIsMzU1NTQsMzU1NzAsMzU1NzIsMzU1NzMsMzU1NDksMzU2MDQsMzU1NTYsMzU1NTEsMzU1NjgsMzU1MjgsMzU1NTAsMzU1''@;'; put 'put ''NTMsMzU1NjAsMzU1ODMsMzU1NjcsMzU1NzksMzU5ODUsMzU5ODYsMzU5ODQsMzYwODUsMzYwNzgsMzYwODEsMzYwODAsMzYwODMsMzYyMDQsMzYyMDYsMzYyNjEsMzYyNjMsMzY0MDMsMzY0MTQsMzY0MDgsMzY0MTYsMzY0MjEsMzY0MDYsMzY0MTIsMzY0MTMsMzY0MTcsMzY0MDAsMzY0MTUs''@;'; put 'put ''MzY1NDEsMzY2NjIsMzY2NTQsMzY2NjEsMzY2NTgsMzY2NjUsMzY2NjMsMzY2NjAsMzY5ODIsMzY5ODUsMzY5ODcsMzY5OTgsMzcxMTQsMzcxNzEsMzcxNzMsMzcxNzQsMzcyNjcsMzcyNjQsMzcyNjUsMzcyNjEsMzcyNjMsMzc2NzEsMzc2NjIsMzc2NDAsMzc2NjMsMzc2MzgsMzc2NDcsMzc3''@;'; put 'put ''NTQsMzc2ODgsMzc2OTIsMzc2NTksMzc2NjcsMzc2NTAsMzc2MzMsMzc3MDIsMzc2NzcsMzc2NDYsMzc2NDUsMzc1NzksMzc2NjEsMzc2MjYsMzc2NjksMzc2NTEsMzc2MjUsMzc2MjMsMzc2ODQsMzc2MzQsMzc2NjgsMzc2MzEsMzc2NzMsMzc2ODksMzc2ODUsMzc2NzQsMzc2NTIsMzc2NDQs''@;'; put 'put ''Mzc2NDMsMzc2MzAsMzc2NDEsMzc2MzIsMzc2MjcsMzc2NTQsMzgzMzIsMzgzNDksMzgzMzQsMzgzMjksMzgzMzAsMzgzMjYsMzgzMzUsMzgzMjUsMzgzMzMsMzg1NjksMzg2MTIsMzg2NjcsMzg2NzQsMzg2NzIsMzg4MDksMzg4MDcsMzg4MDQsMzg4OTYsMzg5MDQsMzg5NjUsMzg5NTksMzg5''@;'; put 'put ''NjIsMzkyMDQsMzkxOTksMzkyMDcsMzkyMDksMzkzMjYsMzk0MDYsMzk0MDQsMzkzOTcsMzkzOTYsMzk0MDgsMzkzOTUsMzk0MDIsMzk0MDEsMzkzOTksMzk2MDksMzk2MTUsMzk2MDQsMzk2MTEsMzk2NzAsMzk2NzQsMzk2NzMsMzk2NzEsMzk3MzEsMzk4MDgsMzk4MTMsMzk4MTUsMzk4MDQs''@;'; put 'put ''Mzk4MDYsMzk4MDMsMzk4MTAsMzk4MjcsMzk4MjYsMzk4MjQsMzk4MDIsMzk4MjksMzk4MDUsMzk4MTYsNDAyMjksNDAyMTUsNDAyMjQsNDAyMjIsNDAyMTIsNDAyMzMsNDAyMjEsNDAyMTYsNDAyMjYsNDAyMDgsNDAyMTcsNDAyMjMsNDA1ODQsNDA1ODIsNDA1ODMsNDA2MjIsNDA2MjEsNDA2''@;'; put 'put ''NjEsNDA2NjIsNDA2OTgsNDA3MjIsNDA3NjUsMjA3NzQsMjA3NzMsMjA3NzAsMjA3NzIsMjA3NjgsMjA3NzcsMjEyMzYsMjIxNjMsMjIxNTYsMjIxNTcsMjIxNTAsMjIxNDgsMjIxNDcsMjIxNDIsMjIxNDYsMjIxNDMsMjIxNDUsMjI3NDIsMjI3NDAsMjI3MzUsMjI3MzgsMjMzNDEsMjMzMzMs''@;'; put 'put ''MjMzNDYsMjMzMzEsMjMzNDAsMjMzMzUsMjMzMzQsMjMzNDMsMjMzNDIsMjM0MTksMjM1MzcsMjM1MzgsMjM5OTEsMjQxNzIsMjQxNzAsMjQ1MTAsMjQ1MDcsMjUwMjcsMjUwMTMsMjUwMjAsMjUwNjMsMjUwNTYsMjUwNjEsMjUwNjAsMjUwNjQsMjUwNTQsMjU4MzksMjU4MzMsMjU4MjcsMjU4''@;'; put 'put ''MzUsMjU4MjgsMjU4MzIsMjU5ODUsMjU5ODQsMjYwMzgsMjYwNzQsMjYzMjIsMjcyNzcsMjcyODYsMjcyNjUsMjczMDEsMjcyNzMsMjcyOTUsMjcyOTEsMjcyOTcsMjcyOTQsMjcyNzEsMjcyODMsMjcyNzgsMjcyODUsMjcyNjcsMjczMDQsMjczMDAsMjcyODEsMjcyNjMsMjczMDIsMjcyOTAs''@;'; put 'put ''MjcyNjksMjcyNzYsMjcyODIsMjc0ODMsMjc1NjUsMjc2NTcsMjg2MjAsMjg1ODUsMjg2NjAsMjg2MjgsMjg2NDMsMjg2MzYsMjg2NTMsMjg2NDcsMjg2NDYsMjg2MzgsMjg2NTgsMjg2MzcsMjg2NDIsMjg2NDgsMjkxNTMsMjkxNjksMjkxNjAsMjkxNzAsMjkxNTYsMjkxNjgsMjkxNTQsMjk1''@;'; put 'put ''NTUsMjk1NTAsMjk1NTEsMjk4NDcsMjk4NzQsMjk4NjcsMjk4NDAsMjk4NjYsMjk4NjksMjk4NzMsMjk4NjEsMjk4NzEsMjk5NjgsMjk5NjksMjk5NzAsMjk5NjcsMzAwODQsMzAyNzUsMzAyODAsMzAyODEsMzAyNzksMzAzNzIsMzA0NDEsMzA2NDUsMzA2MzUsMzA2NDIsMzA2NDcsMzA2NDYs''@;'; put 'put ''MzA2NDQsMzA2NDEsMzA2MzIsMzA3MDQsMzA5NjMsMzA5NzMsMzA5NzgsMzA5NzEsMzA5NzIsMzA5NjIsMzA5ODEsMzA5NjksMzA5NzQsMzA5ODAsMzExNDcsMzExNDQsMzEzMjQsMzEzMjMsMzEzMTgsMzEzMjAsMzEzMTYsMzEzMjIsMzE0MjIsMzE0MjQsMzE0MjUsMzE3NDksMzE3NTksMzE3''@;'; put 'put ''MzAsMzE3NDQsMzE3NDMsMzE3MzksMzE3NTgsMzE3MzIsMzE3NTUsMzE3MzEsMzE3NDYsMzE3NTMsMzE3NDcsMzE3NDUsMzE3MzYsMzE3NDEsMzE3NTAsMzE3MjgsMzE3MjksMzE3NjAsMzE3NTQsMzE5NzYsMzIzMDEsMzIzMTYsMzIzMjIsMzIzMDcsMzg5ODQsMzIzMTIsMzIyOTgsMzIzMjks''@;'; put 'put ''MzIzMjAsMzIzMjcsMzIyOTcsMzIzMzIsMzIzMDQsMzIzMTUsMzIzMTAsMzIzMjQsMzIzMTQsMzI1ODEsMzI2MzksMzI2MzgsMzI2MzcsMzI3NTYsMzI3NTQsMzI4MTIsMzMyMTEsMzMyMjAsMzMyMjgsMzMyMjYsMzMyMjEsMzMyMjMsMzMyMTIsMzMyNTcsMzMzNzEsMzMzNzAsMzMzNzIsMzQx''@;'; put 'put ''NzksMzQxNzYsMzQxOTEsMzQyMTUsMzQxOTcsMzQyMDgsMzQxODcsMzQyMTEsMzQxNzEsMzQyMTIsMzQyMDIsMzQyMDYsMzQxNjcsMzQxNzIsMzQxODUsMzQyMDksMzQxNzAsMzQxNjgsMzQxMzUsMzQxOTAsMzQxOTgsMzQxODIsMzQxODksMzQyMDEsMzQyMDUsMzQxNzcsMzQyMTAsMzQxNzgs''@;'; put 'put ''MzQxODQsMzQxODEsMzQxNjksMzQxNjYsMzQyMDAsMzQxOTIsMzQyMDcsMzQ0MDgsMzQ3NTAsMzQ3MzAsMzQ3MzMsMzQ3NTcsMzQ3MzYsMzQ3MzIsMzQ3NDUsMzQ3NDEsMzQ3NDgsMzQ3MzQsMzQ3NjEsMzQ3NTUsMzQ3NTQsMzQ3NjQsMzQ3NDMsMzQ3MzUsMzQ3NTYsMzQ3NjIsMzQ3NDAsMzQ3''@;'; put 'put ''NDIsMzQ3NTEsMzQ3NDQsMzQ3NDksMzQ3ODIsMzQ3MzgsMzUxMjUsMzUxMjMsMzUxMzIsMzUxMzQsMzUxMzcsMzUxNTQsMzUxMjcsMzUxMzgsMzUyNDUsMzUyNDcsMzUyNDYsMzUzMTQsMzUzMTUsMzU2MTQsMzU2MDgsMzU2MDYsMzU2MDEsMzU1ODksMzU1OTUsMzU2MTgsMzU1OTksMzU2MDIs''@;'; put 'put ''MzU2MDUsMzU1OTEsMzU1OTcsMzU1OTIsMzU1OTAsMzU2MTIsMzU2MDMsMzU2MTAsMzU5MTksMzU5NTIsMzU5NTQsMzU5NTMsMzU5NTEsMzU5ODksMzU5ODgsMzYwODksMzYyMDcsMzY0MzAsMzY0MjksMzY0MzUsMzY0MzIsMzY0MjgsMzY0MjMsMzY2NzUsMzY2NzIsMzY5OTcsMzY5OTAsMzcx''@;'; put 'put ''NzYsMzcyNzQsMzcyODIsMzcyNzUsMzcyNzMsMzcyNzksMzcyODEsMzcyNzcsMzcyODAsMzc3OTMsMzc3NjMsMzc4MDcsMzc3MzIsMzc3MTgsMzc3MDMsMzc3NTYsMzc3MjAsMzc3MjQsMzc3NTAsMzc3MDUsMzc3MTIsMzc3MTMsMzc3MjgsMzc3NDEsMzc3NzUsMzc3MDgsMzc3MzgsMzc3NTMs''@;'; put 'put ''Mzc3MTksMzc3MTcsMzc3MTQsMzc3MTEsMzc3NDUsMzc3NTEsMzc3NTUsMzc3MjksMzc3MjYsMzc3MzEsMzc3MzUsMzc3NjAsMzc3MTAsMzc3MjEsMzgzNDMsMzgzMzYsMzgzNDUsMzgzMzksMzgzNDEsMzgzMjcsMzg1NzQsMzg1NzYsMzg1NzIsMzg2ODgsMzg2ODcsMzg2ODAsMzg2ODUsMzg2''@;'; put 'put ''ODEsMzg4MTAsMzg4MTcsMzg4MTIsMzg4MTQsMzg4MTMsMzg4NjksMzg4NjgsMzg4OTcsMzg5NzcsMzg5ODAsMzg5ODYsMzg5ODUsMzg5ODEsMzg5NzksMzkyMDUsMzkyMTEsMzkyMTIsMzkyMTAsMzkyMTksMzkyMTgsMzkyMTUsMzkyMTMsMzkyMTcsMzkyMTYsMzkzMjAsMzkzMzEsMzkzMjks''@;'; put 'put ''Mzk0MjYsMzk0MTgsMzk0MTIsMzk0MTUsMzk0MTcsMzk0MTYsMzk0MTQsMzk0MTksMzk0MjEsMzk0MjIsMzk0MjAsMzk0MjcsMzk2MTQsMzk2NzgsMzk2NzcsMzk2ODEsMzk2NzYsMzk3NTIsMzk4MzQsMzk4NDgsMzk4MzgsMzk4MzUsMzk4NDYsMzk4NDEsMzk4NDUsMzk4NDQsMzk4MTQsMzk4''@;'; put 'put ''NDIsMzk4NDAsMzk4NTUsNDAyNDMsNDAyNTcsNDAyOTUsNDAyNDYsNDAyMzgsNDAyMzksNDAyNDEsNDAyNDgsNDAyNDAsNDAyNjEsNDAyNTgsNDAyNTksNDAyNTQsNDAyNDcsNDAyNTYsNDAyNTMsMzI3NTcsNDAyMzcsNDA1ODYsNDA1ODUsNDA1ODksNDA2MjQsNDA2NDgsNDA2NjYsNDA2OTks''@;'; put 'put ''NDA3MDMsNDA3NDAsNDA3MzksNDA3MzgsNDA3ODgsNDA4NjQsMjA3ODUsMjA3ODEsMjA3ODIsMjIxNjgsMjIxNzIsMjIxNjcsMjIxNzAsMjIxNzMsMjIxNjksMjI4OTYsMjMzNTYsMjM2NTcsMjM2NTgsMjRlMywyNDE3MywyNDE3NCwyNTA0OCwyNTA1NSwyNTA2OSwyNTA3MCwyNTA3MywyNTA2''@;'; put 'put ''NiwyNTA3MiwyNTA2NywyNTA0NiwyNTA2NSwyNTg1NSwyNTg2MCwyNTg1MywyNTg0OCwyNTg1NywyNTg1OSwyNTg1MiwyNjAwNCwyNjA3NSwyNjMzMCwyNjMzMSwyNjMyOCwyNzMzMywyNzMyMSwyNzMyNSwyNzM2MSwyNzMzNCwyNzMyMiwyNzMxOCwyNzMxOSwyNzMzNSwyNzMxNiwyNzMwOSwy''@;'; put 'put ''NzQ4NiwyNzU5MywyNzY1OSwyODY3OSwyODY4NCwyODY4NSwyODY3MywyODY3NywyODY5MiwyODY4NiwyODY3MSwyODY3MiwyODY2NywyODcxMCwyODY2OCwyODY2MywyODY4MiwyOTE4NSwyOTE4MywyOTE3NywyOTE4NywyOTE4MSwyOTU1OCwyOTg4MCwyOTg4OCwyOTg3NywyOTg4OSwyOTg4''@;'; put 'put ''NiwyOTg3OCwyOTg4MywyOTg5MCwyOTk3MiwyOTk3MSwzMDMwMCwzMDMwOCwzMDI5NywzMDI4OCwzMDI5MSwzMDI5NSwzMDI5OCwzMDM3NCwzMDM5NywzMDQ0NCwzMDY1OCwzMDY1MCwzMDk3NSwzMDk4OCwzMDk5NSwzMDk5NiwzMDk4NSwzMDk5MiwzMDk5NCwzMDk5MywzMTE0OSwzMTE0OCwz''@;'; put 'put ''MTMyNywzMTc3MiwzMTc4NSwzMTc2OSwzMTc3NiwzMTc3NSwzMTc4OSwzMTc3MywzMTc4MiwzMTc4NCwzMTc3OCwzMTc4MSwzMTc5MiwzMjM0OCwzMjMzNiwzMjM0MiwzMjM1NSwzMjM0NCwzMjM1NCwzMjM1MSwzMjMzNywzMjM1MiwzMjM0MywzMjMzOSwzMjY5MywzMjY5MSwzMjc1OSwzMjc2''@;'; put 'put ''MCwzMjg4NSwzMzIzMywzMzIzNCwzMzIzMiwzMzM3NSwzMzM3NCwzNDIyOCwzNDI0NiwzNDI0MCwzNDI0MywzNDI0MiwzNDIyNywzNDIyOSwzNDIzNywzNDI0NywzNDI0NCwzNDIzOSwzNDI1MSwzNDI1NCwzNDI0OCwzNDI0NSwzNDIyNSwzNDIzMCwzNDI1OCwzNDM0MCwzNDIzMiwzNDIzMSwz''@;'; put 'put ''NDIzOCwzNDQwOSwzNDc5MSwzNDc5MCwzNDc4NiwzNDc3OSwzNDc5NSwzNDc5NCwzNDc4OSwzNDc4MywzNDgwMywzNDc4OCwzNDc3MiwzNDc4MCwzNDc3MSwzNDc5NywzNDc3NiwzNDc4NywzNDcyNCwzNDc3NSwzNDc3NywzNDgxNywzNDgwNCwzNDc5MiwzNDc4MSwzNTE1NSwzNTE0NywzNTE1''@;'; put 'put ''MSwzNTE0OCwzNTE0MiwzNTE1MiwzNTE1MywzNTE0NSwzNTYyNiwzNTYyMywzNTYxOSwzNTYzNSwzNTYzMiwzNTYzNywzNTY1NSwzNTYzMSwzNTY0NCwzNTY0NiwzNTYzMywzNTYyMSwzNTYzOSwzNTYyMiwzNTYzOCwzNTYzMCwzNTYyMCwzNTY0MywzNTY0NSwzNTY0MiwzNTkwNiwzNTk1Nywz''@;'; put 'put ''NTk5MywzNTk5MiwzNTk5MSwzNjA5NCwzNjEwMCwzNjA5OCwzNjA5NiwzNjQ0NCwzNjQ1MCwzNjQ0OCwzNjQzOSwzNjQzOCwzNjQ0NiwzNjQ1MywzNjQ1NSwzNjQ0MywzNjQ0MiwzNjQ0OSwzNjQ0NSwzNjQ1NywzNjQzNiwzNjY3OCwzNjY3OSwzNjY4MCwzNjY4MywzNzE2MCwzNzE3OCwzNzE3''@;'; put 'put ''OSwzNzE4MiwzNzI4OCwzNzI4NSwzNzI4NywzNzI5NSwzNzI5MCwzNzgxMywzNzc3MiwzNzc3OCwzNzgxNSwzNzc4NywzNzc4OSwzNzc2OSwzNzc5OSwzNzc3NCwzNzgwMiwzNzc5MCwzNzc5OCwzNzc4MSwzNzc2OCwzNzc4NSwzNzc5MSwzNzc3MywzNzgwOSwzNzc3NywzNzgxMCwzNzc5Niwz''@;'; put 'put ''NzgwMCwzNzgxMiwzNzc5NSwzNzc5NywzODM1NCwzODM1NSwzODM1MywzODU3OSwzODYxNSwzODYxOCwyNDAwMiwzODYyMywzODYxNiwzODYyMSwzODY5MSwzODY5MCwzODY5MywzODgyOCwzODgzMCwzODgyNCwzODgyNywzODgyMCwzODgyNiwzODgxOCwzODgyMSwzODg3MSwzODg3MywzODg3''@;'; put 'put ''MCwzODg3MiwzODkwNiwzODk5MiwzODk5MywzODk5NCwzOTA5NiwzOTIzMywzOTIyOCwzOTIyNiwzOTQzOSwzOTQzNSwzOTQzMywzOTQzNywzOTQyOCwzOTQ0MSwzOTQzNCwzOTQyOSwzOTQzMSwzOTQzMCwzOTYxNiwzOTY0NCwzOTY4OCwzOTY4NCwzOTY4NSwzOTcyMSwzOTczMywzOTc1NCwz''@;'; put 'put ''OTc1NiwzOTc1NSwzOTg3OSwzOTg3OCwzOTg3NSwzOTg3MSwzOTg3MywzOTg2MSwzOTg2NCwzOTg5MSwzOTg2MiwzOTg3NiwzOTg2NSwzOTg2OSw0MDI4NCw0MDI3NSw0MDI3MSw0MDI2Niw0MDI4Myw0MDI2Nyw0MDI4MSw0MDI3OCw0MDI2OCw0MDI3OSw0MDI3NCw0MDI3Niw0MDI4Nyw0MDI4''@;'; put 'put ''MCw0MDI4Miw0MDU5MCw0MDU4OCw0MDY3MSw0MDcwNSw0MDcwNCw0MDcyNiw0MDc0MSw0MDc0Nyw0MDc0Niw0MDc0NSw0MDc0NCw0MDc4MCw0MDc4OSwyMDc4OCwyMDc4OSwyMTE0MiwyMTIzOSwyMTQyOCwyMjE4NywyMjE4OSwyMjE4MiwyMjE4MywyMjE4NiwyMjE4OCwyMjc0NiwyMjc0OSwy''@;'; put 'put ''Mjc0NywyMjgwMiwyMzM1NywyMzM1OCwyMzM1OSwyNDAwMywyNDE3NiwyNDUxMSwyNTA4MywyNTg2MywyNTg3MiwyNTg2OSwyNTg2NSwyNTg2OCwyNTg3MCwyNTk4OCwyNjA3OCwyNjA3NywyNjMzNCwyNzM2NywyNzM2MCwyNzM0MCwyNzM0NSwyNzM1MywyNzMzOSwyNzM1OSwyNzM1NiwyNzM0''@;'; put 'put ''NCwyNzM3MSwyNzM0MywyNzM0MSwyNzM1OCwyNzQ4OCwyNzU2OCwyNzY2MCwyODY5NywyODcxMSwyODcwNCwyODY5NCwyODcxNSwyODcwNSwyODcwNiwyODcwNywyODcxMywyODY5NSwyODcwOCwyODcwMCwyODcxNCwyOTE5NiwyOTE5NCwyOTE5MSwyOTE4NiwyOTE4OSwyOTM0OSwyOTM1MCwy''@;'; put 'put ''OTM0OCwyOTM0NywyOTM0NSwyOTg5OSwyOTg5MywyOTg3OSwyOTg5MSwyOTk3NCwzMDMwNCwzMDY2NSwzMDY2NiwzMDY2MCwzMDcwNSwzMTAwNSwzMTAwMywzMTAwOSwzMTAwNCwzMDk5OSwzMTAwNiwzMTE1MiwzMTMzNSwzMTMzNiwzMTc5NSwzMTgwNCwzMTgwMSwzMTc4OCwzMTgwMywzMTk4''@;'; put 'put ''MCwzMTk3OCwzMjM3NCwzMjM3MywzMjM3NiwzMjM2OCwzMjM3NSwzMjM2NywzMjM3OCwzMjM3MCwzMjM3MiwzMjM2MCwzMjU4NywzMjU4NiwzMjY0MywzMjY0NiwzMjY5NSwzMjc2NSwzMjc2NiwzMjg4OCwzMzIzOSwzMzIzNywzMzM4MCwzMzM3NywzMzM3OSwzNDI4MywzNDI4OSwzNDI4NSwz''@;'; put 'put ''NDI2NSwzNDI3MywzNDI4MCwzNDI2NiwzNDI2MywzNDI4NCwzNDI5MCwzNDI5NiwzNDI2NCwzNDI3MSwzNDI3NSwzNDI2OCwzNDI1NywzNDI4OCwzNDI3OCwzNDI4NywzNDI3MCwzNDI3NCwzNDgxNiwzNDgxMCwzNDgxOSwzNDgwNiwzNDgwNywzNDgyNSwzNDgyOCwzNDgyNywzNDgyMiwzNDgx''@;'; put 'put ''MiwzNDgyNCwzNDgxNSwzNDgyNiwzNDgxOCwzNTE3MCwzNTE2MiwzNTE2MywzNTE1OSwzNTE2OSwzNTE2NCwzNTE2MCwzNTE2NSwzNTE2MSwzNTIwOCwzNTI1NSwzNTI1NCwzNTMxOCwzNTY2NCwzNTY1NiwzNTY1OCwzNTY0OCwzNTY2NywzNTY3MCwzNTY2OCwzNTY1OSwzNTY2OSwzNTY2NSwz''@;'; put 'put ''NTY1MCwzNTY2NiwzNTY3MSwzNTkwNywzNTk1OSwzNTk1OCwzNTk5NCwzNjEwMiwzNjEwMywzNjEwNSwzNjI2OCwzNjI2NiwzNjI2OSwzNjI2NywzNjQ2MSwzNjQ3MiwzNjQ2NywzNjQ1OCwzNjQ2MywzNjQ3NSwzNjU0NiwzNjY5MCwzNjY4OSwzNjY4NywzNjY4OCwzNjY5MSwzNjc4OCwzNzE4''@;'; put 'put ''NCwzNzE4MywzNzI5NiwzNzI5MywzNzg1NCwzNzgzMSwzNzgzOSwzNzgyNiwzNzg1MCwzNzg0MCwzNzg4MSwzNzg2OCwzNzgzNiwzNzg0OSwzNzgwMSwzNzg2MiwzNzgzNCwzNzg0NCwzNzg3MCwzNzg1OSwzNzg0NSwzNzgyOCwzNzgzOCwzNzgyNCwzNzg0MiwzNzg2MywzODI2OSwzODM2Miwz''@;'; put 'put ''ODM2MywzODYyNSwzODY5NywzODY5OSwzODcwMCwzODY5NiwzODY5NCwzODgzNSwzODgzOSwzODgzOCwzODg3NywzODg3OCwzODg3OSwzOTAwNCwzOTAwMSwzOTAwNSwzODk5OSwzOTEwMywzOTEwMSwzOTA5OSwzOTEwMiwzOTI0MCwzOTIzOSwzOTIzNSwzOTMzNCwzOTMzNSwzOTQ1MCwzOTQ0''@;'; put 'put ''NSwzOTQ2MSwzOTQ1MywzOTQ2MCwzOTQ1MSwzOTQ1OCwzOTQ1NiwzOTQ2MywzOTQ1OSwzOTQ1NCwzOTQ1MiwzOTQ0NCwzOTYxOCwzOTY5MSwzOTY5MCwzOTY5NCwzOTY5MiwzOTczNSwzOTkxNCwzOTkxNSwzOTkwNCwzOTkwMiwzOTkwOCwzOTkxMCwzOTkwNiwzOTkyMCwzOTg5MiwzOTg5NSwz''@;'; put 'put ''OTkxNiwzOTkwMCwzOTg5NywzOTkwOSwzOTg5MywzOTkwNSwzOTg5OCw0MDMxMSw0MDMyMSw0MDMzMCw0MDMyNCw0MDMyOCw0MDMwNSw0MDMyMCw0MDMxMiw0MDMyNiw0MDMzMSw0MDMzMiw0MDMxNyw0MDI5OSw0MDMwOCw0MDMwOSw0MDMwNCw0MDI5Nyw0MDMyNSw0MDMwNyw0MDMxNSw0MDMy''@;'; put 'put ''Miw0MDMwMyw0MDMxMyw0MDMxOSw0MDMyNyw0MDI5Niw0MDU5Niw0MDU5Myw0MDY0MCw0MDcwMCw0MDc0OSw0MDc2OCw0MDc2OSw0MDc4MSw0MDc5MCw0MDc5MSw0MDc5MiwyMTMwMywyMjE5NCwyMjE5NywyMjE5NSwyMjc1NSwyMzM2NSwyNDAwNiwyNDAwNywyNDMwMiwyNDMwMywyNDUxMiwy''@;'; put 'put ''NDUxMywyNTA4MSwyNTg3OSwyNTg3OCwyNTg3NywyNTg3NSwyNjA3OSwyNjM0NCwyNjMzOSwyNjM0MCwyNzM3OSwyNzM3NiwyNzM3MCwyNzM2OCwyNzM4NSwyNzM3NywyNzM3NCwyNzM3NSwyODczMiwyODcyNSwyODcxOSwyODcyNywyODcyNCwyODcyMSwyODczOCwyODcyOCwyODczNSwyODcz''@;'; put 'put ''MCwyODcyOSwyODczNiwyODczMSwyODcyMywyODczNywyOTIwMywyOTIwNCwyOTM1MiwyOTU2NSwyOTU2NCwyOTg4MiwzMDM3OSwzMDM3OCwzMDM5OCwzMDQ0NSwzMDY2OCwzMDY3MCwzMDY3MSwzMDY2OSwzMDcwNiwzMTAxMywzMTAxMSwzMTAxNSwzMTAxNiwzMTAxMiwzMTAxNywzMTE1NCwz''@;'; put 'put ''MTM0MiwzMTM0MCwzMTM0MSwzMTQ3OSwzMTgxNywzMTgxNiwzMTgxOCwzMTgxNSwzMTgxMywzMTk4MiwzMjM3OSwzMjM4MiwzMjM4NSwzMjM4NCwzMjY5OCwzMjc2NywzMjg4OSwzMzI0MywzMzI0MSwzMzI5MSwzMzM4NCwzMzM4NSwzNDMzOCwzNDMwMywzNDMwNSwzNDMwMiwzNDMzMSwzNDMw''@;'; put 'put ''NCwzNDI5NCwzNDMwOCwzNDMxMywzNDMwOSwzNDMxNiwzNDMwMSwzNDg0MSwzNDgzMiwzNDgzMywzNDgzOSwzNDgzNSwzNDgzOCwzNTE3MSwzNTE3NCwzNTI1NywzNTMxOSwzNTY4MCwzNTY5MCwzNTY3NywzNTY4OCwzNTY4MywzNTY4NSwzNTY4NywzNTY5MywzNjI3MCwzNjQ4NiwzNjQ4OCwz''@;'; put 'put ''NjQ4NCwzNjY5NywzNjY5NCwzNjY5NSwzNjY5MywzNjY5NiwzNjY5OCwzNzAwNSwzNzE4NywzNzE4NSwzNzMwMywzNzMwMSwzNzI5OCwzNzI5OSwzNzg5OSwzNzkwNywzNzg4MywzNzkyMCwzNzkwMywzNzkwOCwzNzg4NiwzNzkwOSwzNzkwNCwzNzkyOCwzNzkxMywzNzkwMSwzNzg3NywzNzg4''@;'; put 'put ''OCwzNzg3OSwzNzg5NSwzNzkwMiwzNzkxMCwzNzkwNiwzNzg4MiwzNzg5NywzNzg4MCwzNzg5OCwzNzg4NywzNzg4NCwzNzkwMCwzNzg3OCwzNzkwNSwzNzg5NCwzODM2NiwzODM2OCwzODM2NywzODcwMiwzODcwMywzODg0MSwzODg0MywzODkwOSwzODkxMCwzOTAwOCwzOTAxMCwzOTAxMSwz''@;'; put 'put ''OTAwNywzOTEwNSwzOTEwNiwzOTI0OCwzOTI0NiwzOTI1NywzOTI0NCwzOTI0MywzOTI1MSwzOTQ3NCwzOTQ3NiwzOTQ3MywzOTQ2OCwzOTQ2NiwzOTQ3OCwzOTQ2NSwzOTQ3MCwzOTQ4MCwzOTQ2OSwzOTYyMywzOTYyNiwzOTYyMiwzOTY5NiwzOTY5OCwzOTY5NywzOTk0NywzOTk0NCwzOTky''@;'; put 'put ''NywzOTk0MSwzOTk1NCwzOTkyOCw0ZTQsMzk5NDMsMzk5NTAsMzk5NDIsMzk5NTksMzk5NTYsMzk5NDUsNDAzNTEsNDAzNDUsNDAzNTYsNDAzNDksNDAzMzgsNDAzNDQsNDAzMzYsNDAzNDcsNDAzNTIsNDAzNDAsNDAzNDgsNDAzNjIsNDAzNDMsNDAzNTMsNDAzNDYsNDAzNTQsNDAzNjAsNDAz''@;'; put 'put ''NTAsNDAzNTUsNDAzODMsNDAzNjEsNDAzNDIsNDAzNTgsNDAzNTksNDA2MDEsNDA2MDMsNDA2MDIsNDA2NzcsNDA2NzYsNDA2NzksNDA2NzgsNDA3NTIsNDA3NTAsNDA3OTUsNDA4MDAsNDA3OTgsNDA3OTcsNDA3OTMsNDA4NDksMjA3OTQsMjA3OTMsMjExNDQsMjExNDMsMjIyMTEsMjIyMDUs''@;'; put 'put ''MjIyMDYsMjMzNjgsMjMzNjcsMjQwMTEsMjQwMTUsMjQzMDUsMjUwODUsMjU4ODMsMjczOTQsMjczODgsMjczOTUsMjczODQsMjczOTIsMjg3MzksMjg3NDAsMjg3NDYsMjg3NDQsMjg3NDUsMjg3NDEsMjg3NDIsMjkyMTMsMjkyMTAsMjkyMDksMjk1NjYsMjk5NzUsMzAzMTQsMzA2NzIsMzEw''@;'; put 'put ''MjEsMzEwMjUsMzEwMjMsMzE4MjgsMzE4MjcsMzE5ODYsMzIzOTQsMzIzOTEsMzIzOTIsMzIzOTUsMzIzOTAsMzIzOTcsMzI1ODksMzI2OTksMzI4MTYsMzMyNDUsMzQzMjgsMzQzNDYsMzQzNDIsMzQzMzUsMzQzMzksMzQzMzIsMzQzMjksMzQzNDMsMzQzNTAsMzQzMzcsMzQzMzYsMzQzNDUs''@;'; put 'put ''MzQzMzQsMzQzNDEsMzQ4NTcsMzQ4NDUsMzQ4NDMsMzQ4NDgsMzQ4NTIsMzQ4NDQsMzQ4NTksMzQ4OTAsMzUxODEsMzUxNzcsMzUxODIsMzUxNzksMzUzMjIsMzU3MDUsMzU3MDQsMzU2NTMsMzU3MDYsMzU3MDcsMzYxMTIsMzYxMTYsMzYyNzEsMzY0OTQsMzY0OTIsMzY3MDIsMzY2OTksMzY3''@;'; put 'put ''MDEsMzcxOTAsMzcxODgsMzcxODksMzczMDUsMzc5NTEsMzc5NDcsMzc5NDIsMzc5MjksMzc5NDksMzc5NDgsMzc5MzYsMzc5NDUsMzc5MzAsMzc5NDMsMzc5MzIsMzc5NTIsMzc5MzcsMzgzNzMsMzgzNzIsMzgzNzEsMzg3MDksMzg3MTQsMzg4NDcsMzg4ODEsMzkwMTIsMzkxMTMsMzkxMTAs''@;'; put 'put ''MzkxMDQsMzkyNTYsMzkyNTQsMzk0ODEsMzk0ODUsMzk0OTQsMzk0OTIsMzk0OTAsMzk0ODksMzk0ODIsMzk0ODcsMzk2MjksMzk3MDEsMzk3MDMsMzk3MDQsMzk3MDIsMzk3MzgsMzk3NjIsMzk5NzksMzk5NjUsMzk5NjQsMzk5ODAsMzk5NzEsMzk5NzYsMzk5NzcsMzk5NzIsMzk5NjksNDAz''@;'; put 'put ''NzUsNDAzNzQsNDAzODAsNDAzODUsNDAzOTEsNDAzOTQsNDAzOTksNDAzODIsNDAzODksNDAzODcsNDAzNzksNDAzNzMsNDAzOTgsNDAzNzcsNDAzNzgsNDAzNjQsNDAzOTIsNDAzNjksNDAzNjUsNDAzOTYsNDAzNzEsNDAzOTcsNDAzNzAsNDA1NzAsNDA2MDQsNDA2ODMsNDA2ODYsNDA2ODUs''@;'; put 'put ''NDA3MzEsNDA3MjgsNDA3MzAsNDA3NTMsNDA3ODIsNDA4MDUsNDA4MDQsNDA4NTAsMjAxNTMsMjIyMTQsMjIyMTMsMjIyMTksMjI4OTcsMjMzNzEsMjMzNzIsMjQwMjEsMjQwMTcsMjQzMDYsMjU4ODksMjU4ODgsMjU4OTQsMjU4OTAsMjc0MDMsMjc0MDAsMjc0MDEsMjc2NjEsMjg3NTcsMjg3''@;'; put 'put ''NTgsMjg3NTksMjg3NTQsMjkyMTQsMjkyMTUsMjkzNTMsMjk1NjcsMjk5MTIsMjk5MDksMjk5MTMsMjk5MTEsMzAzMTcsMzAzODEsMzEwMjksMzExNTYsMzEzNDQsMzEzNDUsMzE4MzEsMzE4MzYsMzE4MzMsMzE4MzUsMzE4MzQsMzE5ODgsMzE5ODUsMzI0MDEsMzI1OTEsMzI2NDcsMzMyNDYs''@;'; put 'put ''MzMzODcsMzQzNTYsMzQzNTcsMzQzNTUsMzQzNDgsMzQzNTQsMzQzNTgsMzQ4NjAsMzQ4NTYsMzQ4NTQsMzQ4NTgsMzQ4NTMsMzUxODUsMzUyNjMsMzUyNjIsMzUzMjMsMzU3MTAsMzU3MTYsMzU3MTQsMzU3MTgsMzU3MTcsMzU3MTEsMzYxMTcsMzY1MDEsMzY1MDAsMzY1MDYsMzY0OTgsMzY0''@;'; put 'put ''OTYsMzY1MDIsMzY1MDMsMzY3MDQsMzY3MDYsMzcxOTEsMzc5NjQsMzc5NjgsMzc5NjIsMzc5NjMsMzc5NjcsMzc5NTksMzc5NTcsMzc5NjAsMzc5NjEsMzc5NTgsMzg3MTksMzg4ODMsMzkwMTgsMzkwMTcsMzkxMTUsMzkyNTIsMzkyNTksMzk1MDIsMzk1MDcsMzk1MDgsMzk1MDAsMzk1MDMs''@;'; put 'put ''Mzk0OTYsMzk0OTgsMzk0OTcsMzk1MDYsMzk1MDQsMzk2MzIsMzk3MDUsMzk3MjMsMzk3MzksMzk3NjYsMzk3NjUsNDAwMDYsNDAwMDgsMzk5OTksNDAwMDQsMzk5OTMsMzk5ODcsNDAwMDEsMzk5OTYsMzk5OTEsMzk5ODgsMzk5ODYsMzk5OTcsMzk5OTAsNDA0MTEsNDA0MDIsNDA0MTQsNDA0''@;'; put 'put ''MTAsNDAzOTUsNDA0MDAsNDA0MTIsNDA0MDEsNDA0MTUsNDA0MjUsNDA0MDksNDA0MDgsNDA0MDYsNDA0MzcsNDA0MDUsNDA0MTMsNDA2MzAsNDA2ODgsNDA3NTcsNDA3NTUsNDA3NTQsNDA3NzAsNDA4MTEsNDA4NTMsNDA4NjYsMjA3OTcsMjExNDUsMjI3NjAsMjI3NTksMjI4OTgsMjMzNzMs''@;'; put 'put ''MjQwMjQsMzQ4NjMsMjQzOTksMjUwODksMjUwOTEsMjUwOTIsMjU4OTcsMjU4OTMsMjYwMDYsMjYzNDcsMjc0MDksMjc0MTAsMjc0MDcsMjc1OTQsMjg3NjMsMjg3NjIsMjkyMTgsMjk1NzAsMjk1NjksMjk1NzEsMzAzMjAsMzA2NzYsMzE4NDcsMzE4NDYsMzI0MDUsMzMzODgsMzQzNjIsMzQz''@;'; put 'put ''NjgsMzQzNjEsMzQzNjQsMzQzNTMsMzQzNjMsMzQzNjYsMzQ4NjQsMzQ4NjYsMzQ4NjIsMzQ4NjcsMzUxOTAsMzUxODgsMzUxODcsMzUzMjYsMzU3MjQsMzU3MjYsMzU3MjMsMzU3MjAsMzU5MDksMzYxMjEsMzY1MDQsMzY3MDgsMzY3MDcsMzczMDgsMzc5ODYsMzc5NzMsMzc5ODEsMzc5NzUs''@;'; put 'put ''Mzc5ODIsMzg4NTIsMzg4NTMsMzg5MTIsMzk1MTAsMzk1MTMsMzk3MTAsMzk3MTEsMzk3MTIsNDAwMTgsNDAwMjQsNDAwMTYsNDAwMTAsNDAwMTMsNDAwMTEsNDAwMjEsNDAwMjUsNDAwMTIsNDAwMTQsNDA0NDMsNDA0MzksNDA0MzEsNDA0MTksNDA0MjcsNDA0NDAsNDA0MjAsNDA0MzgsNDA0''@;'; put 'put ''MTcsNDA0MzAsNDA0MjIsNDA0MzQsNDA0MzIsNDA0MTgsNDA0MjgsNDA0MzYsNDA0MzUsNDA0MjQsNDA0MjksNDA2NDIsNDA2NTYsNDA2OTAsNDA2OTEsNDA3MTAsNDA3MzIsNDA3NjAsNDA3NTksNDA3NTgsNDA3NzEsNDA3ODMsNDA4MTcsNDA4MTYsNDA4MTQsNDA4MTUsMjIyMjcsMjIyMjEs''@;'; put 'put ''MjMzNzQsMjM2NjEsMjU5MDEsMjYzNDksMjYzNTAsMjc0MTEsMjg3NjcsMjg3NjksMjg3NjUsMjg3NjgsMjkyMTksMjk5MTUsMjk5MjUsMzA2NzcsMzEwMzIsMzExNTksMzExNTgsMzE4NTAsMzI0MDcsMzI2NDksMzMzODksMzQzNzEsMzQ4NzIsMzQ4NzEsMzQ4NjksMzQ4OTEsMzU3MzIsMzU3''@;'; put 'put ''MzMsMzY1MTAsMzY1MTEsMzY1MTIsMzY1MDksMzczMTAsMzczMDksMzczMTQsMzc5OTUsMzc5OTIsMzc5OTMsMzg2MjksMzg3MjYsMzg3MjMsMzg3MjcsMzg4NTUsMzg4ODUsMzk1MTgsMzk2MzcsMzk3NjksNDAwMzUsNDAwMzksNDAwMzgsNDAwMzQsNDAwMzAsNDAwMzIsNDA0NTAsNDA0NDYs''@;'; put 'put ''NDA0NTUsNDA0NTEsNDA0NTQsNDA0NTMsNDA0NDgsNDA0NDksNDA0NTcsNDA0NDcsNDA0NDUsNDA0NTIsNDA2MDgsNDA3MzQsNDA3NzQsNDA4MjAsNDA4MjEsNDA4MjIsMjIyMjgsMjU5MDIsMjYwNDAsMjc0MTYsMjc0MTcsMjc0MTUsMjc0MTgsMjg3NzAsMjkyMjIsMjkzNTQsMzA2ODAsMzA2''@;'; put 'put ''ODEsMzEwMzMsMzE4NDksMzE4NTEsMzE5OTAsMzI0MTAsMzI0MDgsMzI0MTEsMzI0MDksMzMyNDgsMzMyNDksMzQzNzQsMzQzNzUsMzQzNzYsMzUxOTMsMzUxOTQsMzUxOTYsMzUxOTUsMzUzMjcsMzU3MzYsMzU3MzcsMzY1MTcsMzY1MTYsMzY1MTUsMzc5OTgsMzc5OTcsMzc5OTksMzgwMDEs''@;'; put 'put ''MzgwMDMsMzg3MjksMzkwMjYsMzkyNjMsNDAwNDAsNDAwNDYsNDAwNDUsNDA0NTksNDA0NjEsNDA0NjQsNDA0NjMsNDA0NjYsNDA0NjUsNDA2MDksNDA2OTMsNDA3MTMsNDA3NzUsNDA4MjQsNDA4MjcsNDA4MjYsNDA4MjUsMjIzMDIsMjg3NzQsMzE4NTUsMzQ4NzYsMzYyNzQsMzY1MTgsMzcz''@;'; put 'put ''MTUsMzgwMDQsMzgwMDgsMzgwMDYsMzgwMDUsMzk1MjAsNDAwNTIsNDAwNTEsNDAwNDksNDAwNTMsNDA0NjgsNDA0NjcsNDA2OTQsNDA3MTQsNDA4NjgsMjg3NzYsMjg3NzMsMzE5OTEsMzQ0MTAsMzQ4NzgsMzQ4NzcsMzQ4NzksMzU3NDIsMzU5OTYsMzY1MjEsMzY1NTMsMzg3MzEsMzkwMjcs''@;'; put 'put ''MzkwMjgsMzkxMTYsMzkyNjUsMzkzMzksMzk1MjQsMzk1MjYsMzk1MjcsMzk3MTYsNDA0NjksNDA0NzEsNDA3NzYsMjUwOTUsMjc0MjIsMjkyMjMsMzQzODAsMzY1MjAsMzgwMTgsMzgwMTYsMzgwMTcsMzk1MjksMzk1MjgsMzk3MjYsNDA0NzMsMjkyMjUsMzQzNzksMzU3NDMsMzgwMTksNDAw''@;'; put 'put ''NTcsNDA2MzEsMzAzMjUsMzk1MzEsNDAwNTgsNDA0NzcsMjg3NzcsMjg3NzgsNDA2MTIsNDA4MzAsNDA3NzcsNDA4NTYsMzA4NDksMzc1NjEsMzUwMjMsMjI3MTUsMjQ2NTgsMzE5MTEsMjMyOTAsOTU1Niw5NTc0LDk1NTksOTU2OCw5NTgwLDk1NzEsOTU2Miw5NTc3LDk1NjUsOTU1NCw5NTcy''@;'; put 'put ''LDk1NTcsOTU2Niw5NTc4LDk1NjksOTU2MCw5NTc1LDk1NjMsOTU1NSw5NTczLDk1NTgsOTU2Nyw5NTc5LDk1NzAsOTU2MSw5NTc2LDk1NjQsOTU1Myw5NTUyLDk1ODEsOTU4Miw5NTg0LDk1ODMsNjU1MTcsMTMyNDIzLDM3NTk1LDEzMjU3NSwxNDczOTcsMzQxMjQsMTcwNzcsMjk2NzksMjA5''@;'; put 'put ''MTcsMTM4OTcsMTQ5ODI2LDE2NjM3MiwzNzcwMCwxMzc2OTEsMzM1MTgsMTQ2NjMyLDMwNzgwLDI2NDM2LDI1MzExLDE0OTgxMSwxNjYzMTQsMTMxNzQ0LDE1ODY0MywxMzU5NDEsMjAzOTUsMTQwNTI1LDIwNDg4LDE1OTAxNywxNjI0MzYsMTQ0ODk2LDE1MDE5MywxNDA1NjMsMjA1MjEsMTMx''@;'; put 'put ''OTY2LDI0NDg0LDEzMTk2OCwxMzE5MTEsMjgzNzksMTMyMTI3LDIwNjA1LDIwNzM3LDEzNDM0LDIwNzUwLDM5MDIwLDE0MTQ3LDMzODE0LDE0OTkyNCwxMzIyMzEsMjA4MzIsMTQ0MzA4LDIwODQyLDEzNDE0MywxMzk1MTYsMTMxODEzLDE0MDU5MiwxMzI0OTQsMTQzOTIzLDEzNzYwMywyMzQy''@;'; put 'put ''NiwzNDY4NSwxMzI1MzEsMTQ2NTg1LDIwOTE0LDIwOTIwLDQwMjQ0LDIwOTM3LDIwOTQzLDIwOTQ1LDE1NTgwLDIwOTQ3LDE1MDE4MiwyMDkxNSwyMDk2MiwyMTMxNCwyMDk3MywzMzc0MSwyNjk0MiwxNDUxOTcsMjQ0NDMsMjEwMDMsMjEwMzAsMjEwNTIsMjExNzMsMjEwNzksMjExNDAsMjEx''@;'; put 'put ''NzcsMjExODksMzE3NjUsMzQxMTQsMjEyMTYsMzQzMTcsMTU4NDgzLDIxMjUzLDE2NjYyMiwyMTgzMywyODM3NywxNDczMjgsMTMzNDYwLDE0NzQzNiwyMTI5OSwyMTMxNiwxMzQxMTQsMjc4NTEsMTM2OTk4LDI2NjUxLDI5NjUzLDI0NjUwLDE2MDQyLDE0NTQwLDEzNjkzNiwyOTE0OSwxNzU3''@;'; put 'put ''MCwyMTM1NywyMTM2NCwxNjU1NDcsMjEzNzQsMjEzNzUsMTM2NTk4LDEzNjcyMywzMDY5NCwyMTM5NSwxNjY1NTUsMjE0MDgsMjE0MTksMjE0MjIsMjk2MDcsMTUzNDU4LDE2MjE3LDI5NTk2LDIxNDQxLDIxNDQ1LDI3NzIxLDIwMDQxLDIyNTI2LDIxNDY1LDE1MDE5LDEzNDAzMSwyMTQ3Miwx''@;'; put 'put ''NDc0MzUsMTQyNzU1LDIxNDk0LDEzNDI2MywyMTUyMywyODc5MywyMTgwMywyNjE5OSwyNzk5NSwyMTYxMywxNTg1NDcsMTM0NTE2LDIxODUzLDIxNjQ3LDIxNjY4LDE4MzQyLDEzNjk3MywxMzQ4NzcsMTU3OTYsMTM0NDc3LDE2NjMzMiwxNDA5NTIsMjE4MzEsMTk2OTMsMjE1NTEsMjk3MTks''@;'; put 'put ''MjE4OTQsMjE5MjksMjIwMjEsMTM3NDMxLDE0NzUxNCwxNzc0NiwxNDg1MzMsMjYyOTEsMTM1MzQ4LDIyMDcxLDI2MzE3LDE0NDAxMCwyNjI3NiwyNjI4NSwyMjA5MywyMjA5NSwzMDk2MSwyMjI1NywzODc5MSwyMTUwMiwyMjI3MiwyMjI1NSwyMjI1MywxNjY3NTgsMTM4NTksMTM1NzU5LDIy''@;'; put 'put ''MzQyLDE0Nzg3NywyNzc1OCwyODgxMSwyMjMzOCwxNDAwMSwxNTg4NDYsMjI1MDIsMTM2MjE0LDIyNTMxLDEzNjI3NiwxNDgzMjMsMjI1NjYsMTUwNTE3LDIyNjIwLDIyNjk4LDEzNjY1LDIyNzUyLDIyNzQ4LDEzNTc0MCwyMjc3OSwyMzU1MSwyMjMzOSwxNzIzNjgsMTQ4MDg4LDM3ODQzLDEz''@;'; put 'put ''NzI5LDIyODE1LDI2NzkwLDE0MDE5LDI4MjQ5LDEzNjc2NiwyMzA3NiwyMTg0MywxMzY4NTAsMzQwNTMsMjI5ODUsMTM0NDc4LDE1ODg0OSwxNTkwMTgsMTM3MTgwLDIzMDAxLDEzNzIxMSwxMzcxMzgsMTU5MTQyLDI4MDE3LDEzNzI1NiwxMzY5MTcsMjMwMzMsMTU5MzAxLDIzMjExLDIzMTM5''@;'; put 'put ''LDE0MDU0LDE0OTkyOSwyMzE1OSwxNDA4OCwyMzE5MCwyOTc5NywyMzI1MSwxNTk2NDksMTQwNjI4LDE1NzQ5LDEzNzQ4OSwxNDEzMCwxMzY4ODgsMjQxOTUsMjEyMDAsMjM0MTQsMjU5OTIsMjM0MjAsMTYyMzE4LDE2Mzg4LDE4NTI1LDEzMTU4OCwyMzUwOSwyNDkyOCwxMzc3ODAsMTU0MDYw''@;'; put 'put ''LDEzMjUxNywyMzUzOSwyMzQ1MywxOTcyOCwyMzU1NywxMzgwNTIsMjM1NzEsMjk2NDYsMjM1NzIsMTM4NDA1LDE1ODUwNCwyMzYyNSwxODY1MywyMzY4NSwyMzc4NSwyMzc5MSwyMzk0NywxMzg3NDUsMTM4ODA3LDIzODI0LDIzODMyLDIzODc4LDEzODkxNiwyMzczOCwyNDAyMywzMzUzMiwx''@;'; put 'put ''NDM4MSwxNDk3NjEsMTM5MzM3LDEzOTYzNSwzMzQxNSwxNDM5MCwxNTI5OCwyNDExMCwyNzI3NCwyNDE4MSwyNDE4NiwxNDg2NjgsMTM0MzU1LDIxNDE0LDIwMTUxLDI0MjcyLDIxNDE2LDEzNzA3MywyNDA3MywyNDMwOCwxNjQ5OTQsMjQzMTMsMjQzMTUsMTQ0OTYsMjQzMTYsMjY2ODYsMzc5''@;'; put 'put ''MTUsMjQzMzMsMTMxNTIxLDE5NDcwOCwxNTA3MCwxODYwNiwxMzU5OTQsMjQzNzgsMTU3ODMyLDE0MDI0MCwyNDQwOCwxNDA0MDEsMjQ0MTksMzg4NDUsMTU5MzQyLDI0NDM0LDM3Njk2LDE2NjQ1NCwyNDQ4NywyMzk5MCwxNTcxMSwxNTIxNDQsMTM5MTE0LDE1OTk5MiwxNDA5MDQsMzczMzQs''@;'; put 'put ''MTMxNzQyLDE2NjQ0MSwyNDYyNSwyNjI0NSwxMzczMzUsMTQ2OTEsMTU4MTUsMTM4ODEsMjI0MTYsMTQxMjM2LDMxMDg5LDE1OTM2LDI0NzM0LDI0NzQwLDI0NzU1LDE0OTg5MCwxNDk5MDMsMTYyMzg3LDI5ODYwLDIwNzA1LDIzMjAwLDI0OTMyLDMzODI4LDI0ODk4LDE5NDcyNiwxNTk0NDIs''@;'; put 'put ''MjQ5NjEsMjA5ODAsMTMyNjk0LDI0OTY3LDIzNDY2LDE0NzM4MywxNDE0MDcsMjUwNDMsMTY2ODEzLDE3MDMzMywyNTA0MCwxNDY0MiwxNDE2OTYsMTQxNTA1LDI0NjExLDI0OTI0LDI1ODg2LDI1NDgzLDEzMTM1MiwyNTI4NSwxMzcwNzIsMjUzMDEsMTQyODYxLDI1NDUyLDE0OTk4MywxNDg3''@;'; put 'put ''MSwyNTY1NiwyNTU5MiwxMzYwNzgsMTM3MjEyLDI1NzQ0LDI4NTU0LDE0MjkwMiwzODkzMiwxNDc1OTYsMTUzMzczLDI1ODI1LDI1ODI5LDM4MDExLDE0OTUwLDI1NjU4LDE0OTM1LDI1OTMzLDI4NDM4LDE1MDA1NiwxNTAwNTEsMjU5ODksMjU5NjUsMjU5NTEsMTQzNDg2LDI2MDM3LDE0OTgy''@;'; put 'put ''NCwxOTI1NSwyNjA2NSwxNjYwMCwxMzcyNTcsMjYwODAsMjYwODMsMjQ1NDMsMTQ0Mzg0LDI2MTM2LDE0Mzg2MywxNDM4NjQsMjYxODAsMTQzNzgwLDE0Mzc4MSwyNjE4NywxMzQ3NzMsMjYyMTUsMTUyMDM4LDI2MjI3LDI2MjI4LDEzODgxMywxNDM5MjEsMTY1MzY0LDE0MzgxNiwxNTIzMzks''@;'; put 'put ''MzA2NjEsMTQxNTU5LDM5MzMyLDI2MzcwLDE0ODM4MCwxNTAwNDksMTUxNDcsMjcxMzAsMTQ1MzQ2LDI2NDYyLDI2NDcxLDI2NDY2LDE0NzkxNywxNjgxNzMsMjY1ODMsMTc2NDEsMjY2NTgsMjgyNDAsMzc0MzYsMjY2MjUsMTQ0MzU4LDE1OTEzNiwyNjcxNywxNDQ0OTUsMjcxMDUsMjcxNDcs''@;'; put 'put ''MTY2NjIzLDI2OTk1LDI2ODE5LDE0NDg0NSwyNjg4MSwyNjg4MCwxNTY2NiwxNDg0OSwxNDQ5NTYsMTUyMzIsMjY1NDAsMjY5NzcsMTY2NDc0LDE3MTQ4LDI2OTM0LDI3MDMyLDE1MjY1LDEzMjA0MSwzMzYzNSwyMDYyNCwyNzEyOSwxNDQ5ODUsMTM5NTYyLDI3MjA1LDE0NTE1NSwyNzI5Mywx''@;'; put 'put ''NTM0NywyNjU0NSwyNzMzNiwxNjgzNDgsMTUzNzMsMjc0MjEsMTMzNDExLDI0Nzk4LDI3NDQ1LDI3NTA4LDE0MTI2MSwyODM0MSwxNDYxMzksMTMyMDIxLDEzNzU2MCwxNDE0NCwyMTUzNywxNDYyNjYsMjc2MTcsMTQ3MTk2LDI3NjEyLDI3NzAzLDE0MDQyNywxNDk3NDUsMTU4NTQ1LDI3NzM4''@;'; put 'put ''LDMzMzE4LDI3NzY5LDE0Njg3NiwxNzYwNSwxNDY4NzcsMTQ3ODc2LDE0OTc3MiwxNDk3NjAsMTQ2NjMzLDE0MDUzLDE1NTk1LDEzNDQ1MCwzOTgxMSwxNDM4NjUsMTQwNDMzLDMyNjU1LDI2Njc5LDE1OTAxMywxNTkxMzcsMTU5MjExLDI4MDU0LDI3OTk2LDI4Mjg0LDI4NDIwLDE0OTg4Nywx''@;'; put 'put ''NDc1ODksMTU5MzQ2LDM0MDk5LDE1OTYwNCwyMDkzNSwyNzgwNCwyODE4OSwzMzgzOCwxNjY2ODksMjgyMDcsMTQ2OTkxLDI5Nzc5LDE0NzMzMCwzMTE4MCwyODIzOSwyMzE4NSwxNDM0MzUsMjg2NjQsMTQwOTMsMjg1NzMsMTQ2OTkyLDI4NDEwLDEzNjM0MywxNDc1MTcsMTc3NDksMzc4NzIs''@;'; put 'put ''Mjg0ODQsMjg1MDgsMTU2OTQsMjg1MzIsMTY4MzA0LDE1Njc1LDI4NTc1LDE0Nzc4MCwyODYyNywxNDc2MDEsMTQ3Nzk3LDE0NzUxMywxNDc0NDAsMTQ3MzgwLDE0Nzc3NSwyMDk1OSwxNDc3OTgsMTQ3Nzk5LDE0Nzc3NiwxNTYxMjUsMjg3NDcsMjg3OTgsMjg4MzksMjg4MDEsMjg4NzYsMjg4''@;'; put 'put ''ODUsMjg4ODYsMjg4OTUsMTY2NDQsMTU4NDgsMjkxMDgsMjkwNzgsMTQ4MDg3LDI4OTcxLDI4OTk3LDIzMTc2LDI5MDAyLDI5MDM4LDIzNzA4LDE0ODMyNSwyOTAwNywzNzczMCwxNDgxNjEsMjg5NzIsMTQ4NTcwLDE1MDA1NSwxNTAwNTAsMjkxMTQsMTY2ODg4LDI4ODYxLDI5MTk4LDM3OTU0''@;'; put 'put ''LDI5MjA1LDIyODAxLDM3OTU1LDI5MjIwLDM3Njk3LDE1MzA5MywyOTIzMCwyOTI0OCwxNDk4NzYsMjY4MTMsMjkyNjksMjkyNzEsMTU5NTcsMTQzNDI4LDI2NjM3LDI4NDc3LDI5MzE0LDI5NDgyLDI5NDgzLDE0OTUzOSwxNjU5MzEsMTg2NjksMTY1ODkyLDI5NDgwLDI5NDg2LDI5NjQ3LDI5''@;'; put 'put ''NjEwLDEzNDIwMiwxNTgyNTQsMjk2NDEsMjk3NjksMTQ3OTM4LDEzNjkzNSwxNTAwNTIsMjYxNDcsMTQwMjEsMTQ5OTQzLDE0OTkwMSwxNTAwMTEsMjk2ODcsMjk3MTcsMjY4ODMsMTUwMDU0LDI5NzUzLDEzMjU0NywxNjA4NywyOTc4OCwxNDE0ODUsMjk3OTIsMTY3NjAyLDI5NzY3LDI5NjY4''@;'; put 'put ''LDI5ODE0LDMzNzIxLDI5ODA0LDE0MTI4LDI5ODEyLDM3ODczLDI3MTgwLDI5ODI2LDE4NzcxLDE1MDE1NiwxNDc4MDcsMTUwMTM3LDE2Njc5OSwyMzM2NiwxNjY5MTUsMTM3Mzc0LDI5ODk2LDEzNzYwOCwyOTk2NiwyOTkyOSwyOTk4MiwxNjc2NDEsMTM3ODAzLDIzNTExLDE2NzU5NiwzNzc2''@;'; put 'put ''NSwzMDAyOSwzMDAyNiwzMDA1NSwzMDA2MiwxNTE0MjYsMTYxMzIsMTUwODAzLDMwMDk0LDI5Nzg5LDMwMTEwLDMwMTMyLDMwMjEwLDMwMjUyLDMwMjg5LDMwMjg3LDMwMzE5LDMwMzI2LDE1NjY2MSwzMDM1MiwzMzI2MywxNDMyOCwxNTc5NjksMTU3OTY2LDMwMzY5LDMwMzczLDMwMzkxLDMw''@;'; put 'put ''NDEyLDE1OTY0NywzMzg5MCwxNTE3MDksMTUxOTMzLDEzODc4MCwzMDQ5NCwzMDUwMiwzMDUyOCwyNTc3NSwxNTIwOTYsMzA1NTIsMTQ0MDQ0LDMwNjM5LDE2NjI0NCwxNjYyNDgsMTM2ODk3LDMwNzA4LDMwNzI5LDEzNjA1NCwxNTAwMzQsMjY4MjYsMzA4OTUsMzA5MTksMzA5MzEsMzg1NjUs''@;'; put 'put ''MzEwMjIsMTUzMDU2LDMwOTM1LDMxMDI4LDMwODk3LDE2MTI5MiwzNjc5MiwzNDk0OCwxNjY2OTksMTU1Nzc5LDE0MDgyOCwzMTExMCwzNTA3MiwyNjg4MiwzMTEwNCwxNTM2ODcsMzExMzMsMTYyNjE3LDMxMDM2LDMxMTQ1LDI4MjAyLDE2MDAzOCwxNjA0MCwzMTE3NCwxNjgyMDUsMzExODhd''@;'; put 'put ''LCJldWMta3IiOls0NDAzNCw0NDAzNSw0NDAzNyw0NDAzOCw0NDA0Myw0NDA0NCw0NDA0NSw0NDA0Niw0NDA0Nyw0NDA1Niw0NDA2Miw0NDA2Myw0NDA2NSw0NDA2Niw0NDA2Nyw0NDA2OSw0NDA3MCw0NDA3MSw0NDA3Miw0NDA3Myw0NDA3NCw0NDA3NSw0NDA3OCw0NDA4Miw0NDA4Myw0NDA4''@;'; put 'put ''NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDA4NSw0NDA4Niw0NDA4Nyw0NDA5MCw0NDA5MSw0NDA5Myw0NDA5NCw0NDA5NSw0NDA5Nyw0NDA5OCw0NDA5OSw0NDEwMCw0NDEwMSw0NDEwMiw0NDEwMyw0NDEwNCw0NDEwNSw0NDEwNiw0NDEwOCw0NDExMCw0NDExMSw0NDExMiw0''@;'; put 'put ''NDExMyw0NDExNCw0NDExNSw0NDExNyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDExOCw0NDExOSw0NDEyMSw0NDEyMiw0NDEyMyw0NDEyNSw0NDEyNiw0NDEyNyw0NDEyOCw0NDEyOSw0NDEzMCw0NDEzMSw0NDEzMiw0NDEzMyw0NDEzNCw0NDEzNSw0NDEzNiw0NDEzNyw0NDEz''@;'; put 'put ''OCw0NDEzOSw0NDE0MCw0NDE0MSw0NDE0Miw0NDE0Myw0NDE0Niw0NDE0Nyw0NDE0OSw0NDE1MCw0NDE1Myw0NDE1NSw0NDE1Niw0NDE1Nyw0NDE1OCw0NDE1OSw0NDE2Miw0NDE2Nyw0NDE2OCw0NDE3Myw0NDE3NCw0NDE3NSw0NDE3Nyw0NDE3OCw0NDE3OSw0NDE4MSw0NDE4Miw0NDE4Myw0''@;'; put 'put ''NDE4NCw0NDE4NSw0NDE4Niw0NDE4Nyw0NDE5MCw0NDE5NCw0NDE5NSw0NDE5Niw0NDE5Nyw0NDE5OCw0NDE5OSw0NDIwMyw0NDIwNSw0NDIwNiw0NDIwOSw0NDIxMCw0NDIxMSw0NDIxMiw0NDIxMyw0NDIxNCw0NDIxNSw0NDIxOCw0NDIyMiw0NDIyMyw0NDIyNCw0NDIyNiw0NDIyNyw0NDIy''@;'; put 'put ''OSw0NDIzMCw0NDIzMSw0NDIzMyw0NDIzNCw0NDIzNSw0NDIzNyw0NDIzOCw0NDIzOSw0NDI0MCw0NDI0MSw0NDI0Miw0NDI0Myw0NDI0NCw0NDI0Niw0NDI0OCw0NDI0OSw0NDI1MCw0NDI1MSw0NDI1Miw0NDI1Myw0NDI1NCw0NDI1NSw0NDI1OCw0NDI1OSw0NDI2MSw0NDI2Miw0NDI2NSw0''@;'; put 'put ''NDI2Nyw0NDI2OSw0NDI3MCw0NDI3NCw0NDI3Niw0NDI3OSw0NDI4MCw0NDI4MSw0NDI4Miw0NDI4Myw0NDI4Niw0NDI4Nyw0NDI4OSw0NDI5MCw0NDI5MSw0NDI5Myw0NDI5NSw0NDI5Niw0NDI5Nyw0NDI5OCw0NDI5OSw0NDMwMiw0NDMwNCw0NDMwNiw0NDMwNyw0NDMwOCw0NDMwOSw0NDMx''@;'; put 'put ''MCw0NDMxMSw0NDMxMyw0NDMxNCw0NDMxNSw0NDMxNyw0NDMxOCw0NDMxOSw0NDMyMSw0NDMyMiw0NDMyMyw0NDMyNCw0NDMyNSw0NDMyNiw0NDMyNyw0NDMyOCw0NDMzMCw0NDMzMSw0NDMzNCw0NDMzNSw0NDMzNiw0NDMzNyw0NDMzOCw0NDMzOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCw0NDM0Miw0NDM0Myw0NDM0NSw0NDM0Niw0NDM0Nyw0NDM0OSw0NDM1MCw0NDM1MSw0NDM1Miw0NDM1Myw0NDM1NCw0NDM1NSw0NDM1OCw0NDM2MCw0NDM2Miw0NDM2Myw0NDM2NCw0NDM2NSw0NDM2Niw0NDM2Nyw0NDM2OSw0NDM3MCw0NDM3MSw0NDM3Myw0NDM3NCw0NDM3NSxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDM3Nyw0NDM3OCw0NDM3OSw0NDM4MCw0NDM4MSw0NDM4Miw0NDM4Myw0NDM4NCw0NDM4Niw0NDM4OCw0NDM4OSw0NDM5MCw0NDM5MSw0NDM5Miw0NDM5Myw0NDM5NCw0NDM5NSw0NDM5OCw0NDM5OSw0NDQwMSw0NDQwMiw0NDQwNyw0NDQwOCw0''@;'; put 'put ''NDQwOSw0NDQxMCw0NDQxNCw0NDQxNiw0NDQxOSw0NDQyMCw0NDQyMSw0NDQyMiw0NDQyMyw0NDQyNiw0NDQyNyw0NDQyOSw0NDQzMCw0NDQzMSw0NDQzMyw0NDQzNCw0NDQzNSw0NDQzNiw0NDQzNyw0NDQzOCw0NDQzOSw0NDQ0MCw0NDQ0MSw0NDQ0Miw0NDQ0Myw0NDQ0Niw0NDQ0Nyw0NDQ0''@;'; put 'put ''OCw0NDQ0OSw0NDQ1MCw0NDQ1MSw0NDQ1Myw0NDQ1NCw0NDQ1NSw0NDQ1Niw0NDQ1Nyw0NDQ1OCw0NDQ1OSw0NDQ2MCw0NDQ2MSw0NDQ2Miw0NDQ2Myw0NDQ2NCw0NDQ2NSw0NDQ2Niw0NDQ2Nyw0NDQ2OCw0NDQ2OSw0NDQ3MCw0NDQ3Miw0NDQ3Myw0NDQ3NCw0NDQ3NSw0NDQ3Niw0NDQ3Nyw0''@;'; put 'put ''NDQ3OCw0NDQ3OSw0NDQ4Miw0NDQ4Myw0NDQ4NSw0NDQ4Niw0NDQ4Nyw0NDQ4OSw0NDQ5MCw0NDQ5MSw0NDQ5Miw0NDQ5Myw0NDQ5NCw0NDQ5NSw0NDQ5OCw0NDUwMCw0NDUwMSw0NDUwMiw0NDUwMyw0NDUwNCw0NDUwNSw0NDUwNiw0NDUwNyw0NDUwOSw0NDUxMCw0NDUxMSw0NDUxMyw0NDUx''@;'; put 'put ''NCw0NDUxNSw0NDUxNyw0NDUxOCw0NDUxOSw0NDUyMCw0NDUyMSw0NDUyMiw0NDUyMyw0NDUyNCw0NDUyNSw0NDUyNiw0NDUyNyw0NDUyOCw0NDUyOSw0NDUzMCw0NDUzMSw0NDUzMiw0NDUzMyw0NDUzNCw0NDUzNSw0NDUzOCw0NDUzOSw0NDU0MSw0NDU0Miw0NDU0Niw0NDU0Nyw0NDU0OCw0''@;'; put 'put ''NDU0OSw0NDU1MCw0NDU1MSw0NDU1NCw0NDU1Niw0NDU1OCw0NDU1OSw0NDU2MCw0NDU2MSw0NDU2Miw0NDU2Myw0NDU2NSw0NDU2Niw0NDU2Nyw0NDU2OCw0NDU2OSw0NDU3MCw0NDU3MSw0NDU3MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDU3Myw0NDU3NCw0NDU3NSw0NDU3''@;'; put 'put ''Niw0NDU3Nyw0NDU3OCw0NDU3OSw0NDU4MCw0NDU4MSw0NDU4Miw0NDU4Myw0NDU4NCw0NDU4NSw0NDU4Niw0NDU4Nyw0NDU4OCw0NDU4OSw0NDU5MCw0NDU5MSw0NDU5NCw0NDU5NSw0NDU5Nyw0NDU5OCw0NDYwMSw0NDYwMyw0NDYwNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0''@;'; put 'put ''NDYwNSw0NDYwNiw0NDYwNyw0NDYxMCw0NDYxMiw0NDYxNSw0NDYxNiw0NDYxNyw0NDYxOSw0NDYyMyw0NDYyNSw0NDYyNiw0NDYyNyw0NDYyOSw0NDYzMSw0NDYzMiw0NDYzMyw0NDYzNCw0NDYzNSw0NDYzOCw0NDY0Miw0NDY0Myw0NDY0NCw0NDY0Niw0NDY0Nyw0NDY1MCw0NDY1MSw0NDY1''@;'; put 'put ''Myw0NDY1NCw0NDY1NSw0NDY1Nyw0NDY1OCw0NDY1OSw0NDY2MCw0NDY2MSw0NDY2Miw0NDY2Myw0NDY2Niw0NDY3MCw0NDY3MSw0NDY3Miw0NDY3Myw0NDY3NCw0NDY3NSw0NDY3OCw0NDY3OSw0NDY4MCw0NDY4MSw0NDY4Miw0NDY4Myw0NDY4NSw0NDY4Niw0NDY4Nyw0NDY4OCw0NDY4OSw0''@;'; put 'put ''NDY5MCw0NDY5MSw0NDY5Miw0NDY5Myw0NDY5NCw0NDY5NSw0NDY5Niw0NDY5Nyw0NDY5OCw0NDY5OSw0NDcwMCw0NDcwMSw0NDcwMiw0NDcwMyw0NDcwNCw0NDcwNSw0NDcwNiw0NDcwNyw0NDcwOCw0NDcwOSw0NDcxMCw0NDcxMSw0NDcxMiw0NDcxMyw0NDcxNCw0NDcxNSw0NDcxNiw0NDcx''@;'; put 'put ''Nyw0NDcxOCw0NDcxOSw0NDcyMCw0NDcyMSw0NDcyMiw0NDcyMyw0NDcyNCw0NDcyNSw0NDcyNiw0NDcyNyw0NDcyOCw0NDcyOSw0NDczMCw0NDczMSw0NDczNSw0NDczNyw0NDczOCw0NDczOSw0NDc0MSw0NDc0Miw0NDc0Myw0NDc0NCw0NDc0NSw0NDc0Niw0NDc0Nyw0NDc1MCw0NDc1NCw0''@;'; put 'put ''NDc1NSw0NDc1Niw0NDc1Nyw0NDc1OCw0NDc1OSw0NDc2Miw0NDc2Myw0NDc2NSw0NDc2Niw0NDc2Nyw0NDc2OCw0NDc2OSw0NDc3MCw0NDc3MSw0NDc3Miw0NDc3Myw0NDc3NCw0NDc3NSw0NDc3Nyw0NDc3OCw0NDc4MCw0NDc4Miw0NDc4Myw0NDc4NCw0NDc4NSw0NDc4Niw0NDc4Nyw0NDc4''@;'; put 'put ''OSw0NDc5MCw0NDc5MSw0NDc5Myw0NDc5NCw0NDc5NSw0NDc5Nyw0NDc5OCw0NDc5OSw0NDgwMCw0NDgwMSw0NDgwMiw0NDgwMyw0NDgwNCw0NDgwNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDgwNiw0NDgwOSw0NDgxMCw0NDgxMSw0NDgxMiw0NDgxNCw0NDgxNSw0NDgxNyw0''@;'; put 'put ''NDgxOCw0NDgxOSw0NDgyMCw0NDgyMSw0NDgyMiw0NDgyMyw0NDgyNCw0NDgyNSw0NDgyNiw0NDgyNyw0NDgyOCw0NDgyOSw0NDgzMCw0NDgzMSw0NDgzMiw0NDgzMyw0NDgzNCw0NDgzNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NDgzNiw0NDgzNyw0NDgzOCw0NDgzOSw0NDg0''@;'; put 'put ''MCw0NDg0MSw0NDg0Miw0NDg0Myw0NDg0Niw0NDg0Nyw0NDg0OSw0NDg1MSw0NDg1Myw0NDg1NCw0NDg1NSw0NDg1Niw0NDg1Nyw0NDg1OCw0NDg1OSw0NDg2Miw0NDg2NCw0NDg2OCw0NDg2OSw0NDg3MCw0NDg3MSw0NDg3NCw0NDg3NSw0NDg3Niw0NDg3Nyw0NDg3OCw0NDg3OSw0NDg4MSw0''@;'; put 'put ''NDg4Miw0NDg4Myw0NDg4NCw0NDg4NSw0NDg4Niw0NDg4Nyw0NDg4OCw0NDg4OSw0NDg5MCw0NDg5MSw0NDg5NCw0NDg5NSw0NDg5Niw0NDg5Nyw0NDg5OCw0NDg5OSw0NDkwMiw0NDkwMyw0NDkwNCw0NDkwNSw0NDkwNiw0NDkwNyw0NDkwOCw0NDkwOSw0NDkxMCw0NDkxMSw0NDkxMiw0NDkx''@;'; put 'put ''Myw0NDkxNCw0NDkxNSw0NDkxNiw0NDkxNyw0NDkxOCw0NDkxOSw0NDkyMCw0NDkyMiw0NDkyMyw0NDkyNCw0NDkyNSw0NDkyNiw0NDkyNyw0NDkyOSw0NDkzMCw0NDkzMSw0NDkzMyw0NDkzNCw0NDkzNSw0NDkzNyw0NDkzOCw0NDkzOSw0NDk0MCw0NDk0MSw0NDk0Miw0NDk0Myw0NDk0Niw0''@;'; put 'put ''NDk0Nyw0NDk0OCw0NDk1MCw0NDk1MSw0NDk1Miw0NDk1Myw0NDk1NCw0NDk1NSw0NDk1Nyw0NDk1OCw0NDk1OSw0NDk2MCw0NDk2MSw0NDk2Miw0NDk2Myw0NDk2NCw0NDk2NSw0NDk2Niw0NDk2Nyw0NDk2OCw0NDk2OSw0NDk3MCw0NDk3MSw0NDk3Miw0NDk3Myw0NDk3NCw0NDk3NSw0NDk3''@;'; put 'put ''Niw0NDk3Nyw0NDk3OCw0NDk3OSw0NDk4MCw0NDk4MSw0NDk4Miw0NDk4Myw0NDk4Niw0NDk4Nyw0NDk4OSw0NDk5MCw0NDk5MSw0NDk5Myw0NDk5NCw0NDk5NSw0NDk5Niw0NDk5Nyw0NDk5OCw0NTAwMiw0NTAwNCw0NTAwNyw0NTAwOCw0NTAwOSw0NTAxMCw0NTAxMSw0NTAxMyw0NTAxNCw0''@;'; put 'put ''NTAxNSw0NTAxNiw0NTAxNyw0NTAxOCw0NTAxOSw0NTAyMSw0NTAyMiw0NTAyMyw0NTAyNCw0NTAyNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTAyNiw0NTAyNyw0NTAyOCw0NTAyOSw0NTAzMCw0NTAzMSw0NTAzNCw0NTAzNSw0NTAzNiw0NTAzNyw0NTAzOCw0NTAzOSw0NTA0''@;'; put 'put ''Miw0NTA0Myw0NTA0NSw0NTA0Niw0NTA0Nyw0NTA0OSw0NTA1MCw0NTA1MSw0NTA1Miw0NTA1Myw0NTA1NCw0NTA1NSw0NTA1OCw0NTA1OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTA2MSw0NTA2Miw0NTA2Myw0NTA2NCw0NTA2NSw0NTA2Niw0NTA2Nyw0NTA2OSw0NTA3MCw0''@;'; put 'put ''NTA3MSw0NTA3Myw0NTA3NCw0NTA3NSw0NTA3Nyw0NTA3OCw0NTA3OSw0NTA4MCw0NTA4MSw0NTA4Miw0NTA4Myw0NTA4Niw0NTA4Nyw0NTA4OCw0NTA4OSw0NTA5MCw0NTA5MSw0NTA5Miw0NTA5Myw0NTA5NCw0NTA5NSw0NTA5Nyw0NTA5OCw0NTA5OSw0NTEwMCw0NTEwMSw0NTEwMiw0NTEw''@;'; put 'put ''Myw0NTEwNCw0NTEwNSw0NTEwNiw0NTEwNyw0NTEwOCw0NTEwOSw0NTExMCw0NTExMSw0NTExMiw0NTExMyw0NTExNCw0NTExNSw0NTExNiw0NTExNyw0NTExOCw0NTExOSw0NTEyMCw0NTEyMSw0NTEyMiw0NTEyMyw0NTEyNiw0NTEyNyw0NTEyOSw0NTEzMSw0NTEzMyw0NTEzNSw0NTEzNiw0''@;'; put 'put ''NTEzNyw0NTEzOCw0NTE0Miw0NTE0NCw0NTE0Niw0NTE0Nyw0NTE0OCw0NTE1MCw0NTE1MSw0NTE1Miw0NTE1Myw0NTE1NCw0NTE1NSw0NTE1Niw0NTE1Nyw0NTE1OCw0NTE1OSw0NTE2MCw0NTE2MSw0NTE2Miw0NTE2Myw0NTE2NCw0NTE2NSw0NTE2Niw0NTE2Nyw0NTE2OCw0NTE2OSw0NTE3''@;'; put 'put ''MCw0NTE3MSw0NTE3Miw0NTE3Myw0NTE3NCw0NTE3NSw0NTE3Niw0NTE3Nyw0NTE3OCw0NTE3OSw0NTE4Miw0NTE4Myw0NTE4NSw0NTE4Niw0NTE4Nyw0NTE4OSw0NTE5MCw0NTE5MSw0NTE5Miw0NTE5Myw0NTE5NCw0NTE5NSw0NTE5OCw0NTIwMCw0NTIwMiw0NTIwMyw0NTIwNCw0NTIwNSw0''@;'; put 'put ''NTIwNiw0NTIwNyw0NTIxMSw0NTIxMyw0NTIxNCw0NTIxOSw0NTIyMCw0NTIyMSw0NTIyMiw0NTIyMyw0NTIyNiw0NTIzMiw0NTIzNCw0NTIzOCw0NTIzOSw0NTI0MSw0NTI0Miw0NTI0Myw0NTI0NSw0NTI0Niw0NTI0Nyw0NTI0OCw0NTI0OSw0NTI1MCw0NTI1MSw0NTI1NCw0NTI1OCw0NTI1''@;'; put 'put ''OSw0NTI2MCw0NTI2MSw0NTI2Miw0NTI2Myw0NTI2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTI2Nyw0NTI2OSw0NTI3MCw0NTI3MSw0NTI3Myw0NTI3NCw0NTI3NSw0NTI3Niw0NTI3Nyw0NTI3OCw0NTI3OSw0NTI4MSw0NTI4Miw0NTI4Myw0NTI4NCw0NTI4Niw0NTI4Nyw0''@;'; put 'put ''NTI4OCw0NTI4OSw0NTI5MCw0NTI5MSw0NTI5Miw0NTI5Myw0NTI5NCw0NTI5NSw0NTI5NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTI5Nyw0NTI5OCw0NTI5OSw0NTMwMCw0NTMwMSw0NTMwMiw0NTMwMyw0NTMwNCw0NTMwNSw0NTMwNiw0NTMwNyw0NTMwOCw0NTMwOSw0NTMx''@;'; put 'put ''MCw0NTMxMSw0NTMxMiw0NTMxMyw0NTMxNCw0NTMxNSw0NTMxNiw0NTMxNyw0NTMxOCw0NTMxOSw0NTMyMiw0NTMyNSw0NTMyNiw0NTMyNyw0NTMyOSw0NTMzMiw0NTMzMyw0NTMzNCw0NTMzNSw0NTMzOCw0NTM0Miw0NTM0Myw0NTM0NCw0NTM0NSw0NTM0Niw0NTM1MCw0NTM1MSw0NTM1Myw0''@;'; put 'put ''NTM1NCw0NTM1NSw0NTM1Nyw0NTM1OCw0NTM1OSw0NTM2MCw0NTM2MSw0NTM2Miw0NTM2Myw0NTM2Niw0NTM3MCw0NTM3MSw0NTM3Miw0NTM3Myw0NTM3NCw0NTM3NSw0NTM3OCw0NTM3OSw0NTM4MSw0NTM4Miw0NTM4Myw0NTM4NSw0NTM4Niw0NTM4Nyw0NTM4OCw0NTM4OSw0NTM5MCw0NTM5''@;'; put 'put ''MSw0NTM5NCw0NTM5NSw0NTM5OCw0NTM5OSw0NTQwMSw0NTQwMiw0NTQwMyw0NTQwNSw0NTQwNiw0NTQwNyw0NTQwOSw0NTQxMCw0NTQxMSw0NTQxMiw0NTQxMyw0NTQxNCw0NTQxNSw0NTQxNiw0NTQxNyw0NTQxOCw0NTQxOSw0NTQyMCw0NTQyMSw0NTQyMiw0NTQyMyw0NTQyNCw0NTQyNSw0''@;'; put 'put ''NTQyNiw0NTQyNyw0NTQyOCw0NTQyOSw0NTQzMCw0NTQzMSw0NTQzNCw0NTQzNSw0NTQzNyw0NTQzOCw0NTQzOSw0NTQ0MSw0NTQ0Myw0NTQ0NCw0NTQ0NSw0NTQ0Niw0NTQ0Nyw0NTQ1MCw0NTQ1Miw0NTQ1NCw0NTQ1NSw0NTQ1Niw0NTQ1Nyw0NTQ2MSw0NTQ2Miw0NTQ2Myw0NTQ2NSw0NTQ2''@;'; put 'put ''Niw0NTQ2Nyw0NTQ2OSw0NTQ3MCw0NTQ3MSw0NTQ3Miw0NTQ3Myw0NTQ3NCw0NTQ3NSw0NTQ3Niw0NTQ3Nyw0NTQ3OCw0NTQ3OSw0NTQ4MSw0NTQ4Miw0NTQ4Myw0NTQ4NCw0NTQ4NSw0NTQ4Niw0NTQ4Nyw0NTQ4OCw0NTQ4OSw0NTQ5MCw0NTQ5MSw0NTQ5Miw0NTQ5Myw0NTQ5NCw0NTQ5NSw0''@;'; put 'put ''NTQ5NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTQ5Nyw0NTQ5OCw0NTQ5OSw0NTUwMCw0NTUwMSw0NTUwMiw0NTUwMyw0NTUwNCw0NTUwNSw0NTUwNiw0NTUwNyw0NTUwOCw0NTUwOSw0NTUxMCw0NTUxMSw0NTUxMiw0NTUxMyw0NTUxNCw0NTUxNSw0NTUxNyw0NTUxOCw0NTUx''@;'; put 'put ''OSw0NTUyMSw0NTUyMiw0NTUyMyw0NTUyNSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTUyNiw0NTUyNyw0NTUyOCw0NTUyOSw0NTUzMCw0NTUzMSw0NTUzNCw0NTUzNiw0NTUzNyw0NTUzOCw0NTUzOSw0NTU0MCw0NTU0MSw0NTU0Miw0NTU0Myw0NTU0Niw0NTU0Nyw0NTU0OSw0''@;'; put 'put ''NTU1MCw0NTU1MSw0NTU1Myw0NTU1NCw0NTU1NSw0NTU1Niw0NTU1Nyw0NTU1OCw0NTU1OSw0NTU2MCw0NTU2Miw0NTU2NCw0NTU2Niw0NTU2Nyw0NTU2OCw0NTU2OSw0NTU3MCw0NTU3MSw0NTU3NCw0NTU3NSw0NTU3Nyw0NTU3OCw0NTU4MSw0NTU4Miw0NTU4Myw0NTU4NCw0NTU4NSw0NTU4''@;'; put 'put ''Niw0NTU4Nyw0NTU5MCw0NTU5Miw0NTU5NCw0NTU5NSw0NTU5Niw0NTU5Nyw0NTU5OCw0NTU5OSw0NTYwMSw0NTYwMiw0NTYwMyw0NTYwNCw0NTYwNSw0NTYwNiw0NTYwNyw0NTYwOCw0NTYwOSw0NTYxMCw0NTYxMSw0NTYxMiw0NTYxMyw0NTYxNCw0NTYxNSw0NTYxNiw0NTYxNyw0NTYxOCw0''@;'; put 'put ''NTYxOSw0NTYyMSw0NTYyMiw0NTYyMyw0NTYyNCw0NTYyNSw0NTYyNiw0NTYyNyw0NTYyOSw0NTYzMCw0NTYzMSw0NTYzMiw0NTYzMyw0NTYzNCw0NTYzNSw0NTYzNiw0NTYzNyw0NTYzOCw0NTYzOSw0NTY0MCw0NTY0MSw0NTY0Miw0NTY0Myw0NTY0NCw0NTY0NSw0NTY0Niw0NTY0Nyw0NTY0''@;'; put 'put ''OCw0NTY0OSw0NTY1MCw0NTY1MSw0NTY1Miw0NTY1Myw0NTY1NCw0NTY1NSw0NTY1Nyw0NTY1OCw0NTY1OSw0NTY2MSw0NTY2Miw0NTY2Myw0NTY2NSw0NTY2Niw0NTY2Nyw0NTY2OCw0NTY2OSw0NTY3MCw0NTY3MSw0NTY3NCw0NTY3NSw0NTY3Niw0NTY3Nyw0NTY3OCw0NTY3OSw0NTY4MCw0''@;'; put 'put ''NTY4MSw0NTY4Miw0NTY4Myw0NTY4Niw0NTY4Nyw0NTY4OCw0NTY4OSw0NTY5MCw0NTY5MSw0NTY5Myw0NTY5NCw0NTY5NSw0NTY5Niw0NTY5Nyw0NTY5OCw0NTY5OSw0NTcwMiw0NTcwMyw0NTcwNCw0NTcwNiw0NTcwNyw0NTcwOCw0NTcwOSw0NTcxMCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCw0NTcxMSw0NTcxNCw0NTcxNSw0NTcxNyw0NTcxOCw0NTcxOSw0NTcyMyw0NTcyNCw0NTcyNSw0NTcyNiw0NTcyNyw0NTczMCw0NTczMiw0NTczNSw0NTczNiw0NTczNyw0NTczOSw0NTc0MSw0NTc0Miw0NTc0Myw0NTc0NSw0NTc0Niw0NTc0Nyw0NTc0OSw0NTc1MCw0NTc1MSxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTc1Miw0NTc1Myw0NTc1NCw0NTc1NSw0NTc1Niw0NTc1Nyw0NTc1OCw0NTc1OSw0NTc2MCw0NTc2MSw0NTc2Miw0NTc2Myw0NTc2NCw0NTc2NSw0NTc2Niw0NTc2Nyw0NTc3MCw0NTc3MSw0NTc3Myw0NTc3NCw0NTc3NSw0NTc3Nyw0NTc3''@;'; put 'put ''OSw0NTc4MCw0NTc4MSw0NTc4Miw0NTc4Myw0NTc4Niw0NTc4OCw0NTc5MCw0NTc5MSw0NTc5Miw0NTc5Myw0NTc5NSw0NTc5OSw0NTgwMSw0NTgwMiw0NTgwOCw0NTgwOSw0NTgxMCw0NTgxNCw0NTgyMCw0NTgyMSw0NTgyMiw0NTgyNiw0NTgyNyw0NTgyOSw0NTgzMCw0NTgzMSw0NTgzMyw0''@;'; put 'put ''NTgzNCw0NTgzNSw0NTgzNiw0NTgzNyw0NTgzOCw0NTgzOSw0NTg0Miw0NTg0Niw0NTg0Nyw0NTg0OCw0NTg0OSw0NTg1MCw0NTg1MSw0NTg1Myw0NTg1NCw0NTg1NSw0NTg1Niw0NTg1Nyw0NTg1OCw0NTg1OSw0NTg2MCw0NTg2MSw0NTg2Miw0NTg2Myw0NTg2NCw0NTg2NSw0NTg2Niw0NTg2''@;'; put 'put ''Nyw0NTg2OCw0NTg2OSw0NTg3MCw0NTg3MSw0NTg3Miw0NTg3Myw0NTg3NCw0NTg3NSw0NTg3Niw0NTg3Nyw0NTg3OCw0NTg3OSw0NTg4MCw0NTg4MSw0NTg4Miw0NTg4Myw0NTg4NCw0NTg4NSw0NTg4Niw0NTg4Nyw0NTg4OCw0NTg4OSw0NTg5MCw0NTg5MSw0NTg5Miw0NTg5Myw0NTg5NCw0''@;'; put 'put ''NTg5NSw0NTg5Niw0NTg5Nyw0NTg5OCw0NTg5OSw0NTkwMCw0NTkwMSw0NTkwMiw0NTkwMyw0NTkwNCw0NTkwNSw0NTkwNiw0NTkwNyw0NTkxMSw0NTkxMyw0NTkxNCw0NTkxNyw0NTkyMCw0NTkyMSw0NTkyMiw0NTkyMyw0NTkyNiw0NTkyOCw0NTkzMCw0NTkzMiw0NTkzMyw0NTkzNSw0NTkz''@;'; put 'put ''OCw0NTkzOSw0NTk0MSw0NTk0Miw0NTk0Myw0NTk0NSw0NTk0Niw0NTk0Nyw0NTk0OCw0NTk0OSw0NTk1MCw0NTk1MSw0NTk1NCw0NTk1OCw0NTk1OSw0NTk2MCw0NTk2MSw0NTk2Miw0NTk2Myw0NTk2NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0NTk2Niw0NTk2Nyw0NTk2OSw0''@;'; put 'put ''NTk3MCw0NTk3MSw0NTk3Myw0NTk3NCw0NTk3NSw0NTk3Niw0NTk3Nyw0NTk3OCw0NTk3OSw0NTk4MCw0NTk4MSw0NTk4Miw0NTk4Myw0NTk4Niw0NTk4Nyw0NTk4OCw0NTk4OSw0NTk5MCw0NTk5MSw0NTk5Myw0NTk5NCw0NTk5NSw0NTk5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCw0NTk5OCw0NTk5OSw0NmUzLDQ2MDAxLDQ2MDAyLDQ2MDAzLDQ2MDA0LDQ2MDA1LDQ2MDA2LDQ2MDA3LDQ2MDA4LDQ2MDA5LDQ2MDEwLDQ2MDExLDQ2MDEyLDQ2MDEzLDQ2MDE0LDQ2MDE1LDQ2MDE2LDQ2MDE3LDQ2MDE4LDQ2MDE5LDQ2MDIyLDQ2MDIzLDQ2MDI1LDQ2MDI2LDQ2MDI5LDQ2''@;'; put 'put ''MDMxLDQ2MDMzLDQ2MDM0LDQ2MDM1LDQ2MDM4LDQ2MDQwLDQ2MDQyLDQ2MDQ0LDQ2MDQ2LDQ2MDQ3LDQ2MDQ5LDQ2MDUwLDQ2MDUxLDQ2MDUzLDQ2MDU0LDQ2MDU1LDQ2MDU3LDQ2MDU4LDQ2MDU5LDQ2MDYwLDQ2MDYxLDQ2MDYyLDQ2MDYzLDQ2MDY0LDQ2MDY1LDQ2MDY2LDQ2MDY3LDQ2MDY4''@;'; put 'put ''LDQ2MDY5LDQ2MDcwLDQ2MDcxLDQ2MDcyLDQ2MDczLDQ2MDc0LDQ2MDc1LDQ2MDc3LDQ2MDc4LDQ2MDc5LDQ2MDgwLDQ2MDgxLDQ2MDgyLDQ2MDgzLDQ2MDg0LDQ2MDg1LDQ2MDg2LDQ2MDg3LDQ2MDg4LDQ2MDg5LDQ2MDkwLDQ2MDkxLDQ2MDkyLDQ2MDkzLDQ2MDk0LDQ2MDk1LDQ2MDk3LDQ2''@;'; put 'put ''MDk4LDQ2MDk5LDQ2MTAwLDQ2MTAxLDQ2MTAyLDQ2MTAzLDQ2MTA1LDQ2MTA2LDQ2MTA3LDQ2MTA5LDQ2MTEwLDQ2MTExLDQ2MTEzLDQ2MTE0LDQ2MTE1LDQ2MTE2LDQ2MTE3LDQ2MTE4LDQ2MTE5LDQ2MTIyLDQ2MTI0LDQ2MTI1LDQ2MTI2LDQ2MTI3LDQ2MTI4LDQ2MTI5LDQ2MTMwLDQ2MTMx''@;'; put 'put ''LDQ2MTMzLDQ2MTM0LDQ2MTM1LDQ2MTM2LDQ2MTM3LDQ2MTM4LDQ2MTM5LDQ2MTQwLDQ2MTQxLDQ2MTQyLDQ2MTQzLDQ2MTQ0LDQ2MTQ1LDQ2MTQ2LDQ2MTQ3LDQ2MTQ4LDQ2MTQ5LDQ2MTUwLDQ2MTUxLDQ2MTUyLDQ2MTUzLDQ2MTU0LDQ2MTU1LDQ2MTU2LDQ2MTU3LDQ2MTU4LDQ2MTU5LDQ2''@;'; put 'put ''MTYyLDQ2MTYzLDQ2MTY1LDQ2MTY2LDQ2MTY3LDQ2MTY5LDQ2MTcwLDQ2MTcxLDQ2MTcyLDQ2MTczLDQ2MTc0LDQ2MTc1LDQ2MTc4LDQ2MTgwLDQ2MTgyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2MTgzLDQ2MTg0LDQ2MTg1LDQ2MTg2LDQ2MTg3LDQ2MTg5LDQ2MTkwLDQ2MTkx''@;'; put 'put ''LDQ2MTkyLDQ2MTkzLDQ2MTk0LDQ2MTk1LDQ2MTk2LDQ2MTk3LDQ2MTk4LDQ2MTk5LDQ2MjAwLDQ2MjAxLDQ2MjAyLDQ2MjAzLDQ2MjA0LDQ2MjA1LDQ2MjA2LDQ2MjA3LDQ2MjA5LDQ2MjEwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2MjExLDQ2MjEyLDQ2MjEzLDQ2MjE0LDQ2''@;'; put 'put ''MjE1LDQ2MjE3LDQ2MjE4LDQ2MjE5LDQ2MjIwLDQ2MjIxLDQ2MjIyLDQ2MjIzLDQ2MjI0LDQ2MjI1LDQ2MjI2LDQ2MjI3LDQ2MjI4LDQ2MjI5LDQ2MjMwLDQ2MjMxLDQ2MjMyLDQ2MjMzLDQ2MjM0LDQ2MjM1LDQ2MjM2LDQ2MjM4LDQ2MjM5LDQ2MjQwLDQ2MjQxLDQ2MjQyLDQ2MjQzLDQ2MjQ1''@;'; put 'put ''LDQ2MjQ2LDQ2MjQ3LDQ2MjQ5LDQ2MjUwLDQ2MjUxLDQ2MjUzLDQ2MjU0LDQ2MjU1LDQ2MjU2LDQ2MjU3LDQ2MjU4LDQ2MjU5LDQ2MjYwLDQ2MjYyLDQ2MjY0LDQ2MjY2LDQ2MjY3LDQ2MjY4LDQ2MjY5LDQ2MjcwLDQ2MjcxLDQ2MjczLDQ2Mjc0LDQ2Mjc1LDQ2Mjc3LDQ2Mjc4LDQ2Mjc5LDQ2''@;'; put 'put ''MjgxLDQ2MjgyLDQ2MjgzLDQ2Mjg0LDQ2Mjg1LDQ2Mjg2LDQ2Mjg3LDQ2Mjg5LDQ2MjkwLDQ2MjkxLDQ2MjkyLDQ2Mjk0LDQ2Mjk1LDQ2Mjk2LDQ2Mjk3LDQ2Mjk4LDQ2Mjk5LDQ2MzAyLDQ2MzAzLDQ2MzA1LDQ2MzA2LDQ2MzA5LDQ2MzExLDQ2MzEyLDQ2MzEzLDQ2MzE0LDQ2MzE1LDQ2MzE4''@;'; put 'put ''LDQ2MzIwLDQ2MzIyLDQ2MzIzLDQ2MzI0LDQ2MzI1LDQ2MzI2LDQ2MzI3LDQ2MzI5LDQ2MzMwLDQ2MzMxLDQ2MzMyLDQ2MzMzLDQ2MzM0LDQ2MzM1LDQ2MzM2LDQ2MzM3LDQ2MzM4LDQ2MzM5LDQ2MzQwLDQ2MzQxLDQ2MzQyLDQ2MzQzLDQ2MzQ0LDQ2MzQ1LDQ2MzQ2LDQ2MzQ3LDQ2MzQ4LDQ2''@;'; put 'put ''MzQ5LDQ2MzUwLDQ2MzUxLDQ2MzUyLDQ2MzUzLDQ2MzU0LDQ2MzU1LDQ2MzU4LDQ2MzU5LDQ2MzYxLDQ2MzYyLDQ2MzY1LDQ2MzY2LDQ2MzY3LDQ2MzY4LDQ2MzY5LDQ2MzcwLDQ2MzcxLDQ2Mzc0LDQ2Mzc5LDQ2MzgwLDQ2MzgxLDQ2MzgyLDQ2MzgzLDQ2Mzg2LDQ2Mzg3LDQ2Mzg5LDQ2Mzkw''@;'; put 'put ''LDQ2MzkxLDQ2MzkzLDQ2Mzk0LDQ2Mzk1LDQ2Mzk2LDQ2Mzk3LDQ2Mzk4LDQ2Mzk5LDQ2NDAyLDQ2NDA2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NDA3LDQ2NDA4LDQ2NDA5LDQ2NDEwLDQ2NDE0LDQ2NDE1LDQ2NDE3LDQ2NDE4LDQ2NDE5LDQ2NDIxLDQ2NDIyLDQ2NDIzLDQ2''@;'; put 'put ''NDI0LDQ2NDI1LDQ2NDI2LDQ2NDI3LDQ2NDMwLDQ2NDM0LDQ2NDM1LDQ2NDM2LDQ2NDM3LDQ2NDM4LDQ2NDM5LDQ2NDQwLDQ2NDQxLDQ2NDQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NDQzLDQ2NDQ0LDQ2NDQ1LDQ2NDQ2LDQ2NDQ3LDQ2NDQ4LDQ2NDQ5LDQ2NDUwLDQ2NDUx''@;'; put 'put ''LDQ2NDUyLDQ2NDUzLDQ2NDU0LDQ2NDU1LDQ2NDU2LDQ2NDU3LDQ2NDU4LDQ2NDU5LDQ2NDYwLDQ2NDYxLDQ2NDYyLDQ2NDYzLDQ2NDY0LDQ2NDY1LDQ2NDY2LDQ2NDY3LDQ2NDY4LDQ2NDY5LDQ2NDcwLDQ2NDcxLDQ2NDcyLDQ2NDczLDQ2NDc0LDQ2NDc1LDQ2NDc2LDQ2NDc3LDQ2NDc4LDQ2''@;'; put 'put ''NDc5LDQ2NDgwLDQ2NDgxLDQ2NDgyLDQ2NDgzLDQ2NDg0LDQ2NDg1LDQ2NDg2LDQ2NDg3LDQ2NDg4LDQ2NDg5LDQ2NDkwLDQ2NDkxLDQ2NDkyLDQ2NDkzLDQ2NDk0LDQ2NDk1LDQ2NDk4LDQ2NDk5LDQ2NTAxLDQ2NTAyLDQ2NTAzLDQ2NTA1LDQ2NTA4LDQ2NTA5LDQ2NTEwLDQ2NTExLDQ2NTE0''@;'; put 'put ''LDQ2NTE4LDQ2NTE5LDQ2NTIwLDQ2NTIxLDQ2NTIyLDQ2NTI2LDQ2NTI3LDQ2NTI5LDQ2NTMwLDQ2NTMxLDQ2NTMzLDQ2NTM0LDQ2NTM1LDQ2NTM2LDQ2NTM3LDQ2NTM4LDQ2NTM5LDQ2NTQyLDQ2NTQ2LDQ2NTQ3LDQ2NTQ4LDQ2NTQ5LDQ2NTUwLDQ2NTUxLDQ2NTUzLDQ2NTU0LDQ2NTU1LDQ2''@;'; put 'put ''NTU2LDQ2NTU3LDQ2NTU4LDQ2NTU5LDQ2NTYwLDQ2NTYxLDQ2NTYyLDQ2NTYzLDQ2NTY0LDQ2NTY1LDQ2NTY2LDQ2NTY3LDQ2NTY4LDQ2NTY5LDQ2NTcwLDQ2NTcxLDQ2NTczLDQ2NTc0LDQ2NTc1LDQ2NTc2LDQ2NTc3LDQ2NTc4LDQ2NTc5LDQ2NTgwLDQ2NTgxLDQ2NTgyLDQ2NTgzLDQ2NTg0''@;'; put 'put ''LDQ2NTg1LDQ2NTg2LDQ2NTg3LDQ2NTg4LDQ2NTg5LDQ2NTkwLDQ2NTkxLDQ2NTkyLDQ2NTkzLDQ2NTk0LDQ2NTk1LDQ2NTk2LDQ2NTk3LDQ2NTk4LDQ2NTk5LDQ2NjAwLDQ2NjAxLDQ2NjAyLDQ2NjAzLDQ2NjA0LDQ2NjA1LDQ2NjA2LDQ2NjA3LDQ2NjEwLDQ2NjExLDQ2NjEzLDQ2NjE0LDQ2''@;'; put 'put ''NjE1LDQ2NjE3LDQ2NjE4LDQ2NjE5LDQ2NjIwLDQ2NjIxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NjIyLDQ2NjIzLDQ2NjI0LDQ2NjI1LDQ2NjI2LDQ2NjI3LDQ2NjI4LDQ2NjMwLDQ2NjMxLDQ2NjMyLDQ2NjMzLDQ2NjM0LDQ2NjM1LDQ2NjM3LDQ2NjM4LDQ2NjM5LDQ2NjQw''@;'; put 'put ''LDQ2NjQxLDQ2NjQyLDQ2NjQzLDQ2NjQ1LDQ2NjQ2LDQ2NjQ3LDQ2NjQ4LDQ2NjQ5LDQ2NjUwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2NjUxLDQ2NjUyLDQ2NjUzLDQ2NjU0LDQ2NjU1LDQ2NjU2LDQ2NjU3LDQ2NjU4LDQ2NjU5LDQ2NjYwLDQ2NjYxLDQ2NjYyLDQ2NjYzLDQ2''@;'; put 'put ''NjY1LDQ2NjY2LDQ2NjY3LDQ2NjY4LDQ2NjY5LDQ2NjcwLDQ2NjcxLDQ2NjcyLDQ2NjczLDQ2Njc0LDQ2Njc1LDQ2Njc2LDQ2Njc3LDQ2Njc4LDQ2Njc5LDQ2NjgwLDQ2NjgxLDQ2NjgyLDQ2NjgzLDQ2Njg0LDQ2Njg1LDQ2Njg2LDQ2Njg3LDQ2Njg4LDQ2Njg5LDQ2NjkwLDQ2NjkxLDQ2Njkz''@;'; put 'put ''LDQ2Njk0LDQ2Njk1LDQ2Njk3LDQ2Njk4LDQ2Njk5LDQ2NzAwLDQ2NzAxLDQ2NzAyLDQ2NzAzLDQ2NzA0LDQ2NzA1LDQ2NzA2LDQ2NzA3LDQ2NzA4LDQ2NzA5LDQ2NzEwLDQ2NzExLDQ2NzEyLDQ2NzEzLDQ2NzE0LDQ2NzE1LDQ2NzE2LDQ2NzE3LDQ2NzE4LDQ2NzE5LDQ2NzIwLDQ2NzIxLDQ2''@;'; put 'put ''NzIyLDQ2NzIzLDQ2NzI0LDQ2NzI1LDQ2NzI2LDQ2NzI3LDQ2NzI4LDQ2NzI5LDQ2NzMwLDQ2NzMxLDQ2NzMyLDQ2NzMzLDQ2NzM0LDQ2NzM1LDQ2NzM2LDQ2NzM3LDQ2NzM4LDQ2NzM5LDQ2NzQwLDQ2NzQxLDQ2NzQyLDQ2NzQzLDQ2NzQ0LDQ2NzQ1LDQ2NzQ2LDQ2NzQ3LDQ2NzUwLDQ2NzUx''@;'; put 'put ''LDQ2NzUzLDQ2NzU0LDQ2NzU1LDQ2NzU3LDQ2NzU4LDQ2NzU5LDQ2NzYwLDQ2NzYxLDQ2NzYyLDQ2NzY1LDQ2NzY2LDQ2NzY3LDQ2NzY4LDQ2NzcwLDQ2NzcxLDQ2NzcyLDQ2NzczLDQ2Nzc0LDQ2Nzc1LDQ2Nzc2LDQ2Nzc3LDQ2Nzc4LDQ2Nzc5LDQ2NzgwLDQ2NzgxLDQ2NzgyLDQ2NzgzLDQ2''@;'; put 'put ''Nzg0LDQ2Nzg1LDQ2Nzg2LDQ2Nzg3LDQ2Nzg4LDQ2Nzg5LDQ2NzkwLDQ2NzkxLDQ2NzkyLDQ2NzkzLDQ2Nzk0LDQ2Nzk1LDQ2Nzk2LDQ2Nzk3LDQ2Nzk4LDQ2Nzk5LDQ2ODAwLDQ2ODAxLDQ2ODAyLDQ2ODAzLDQ2ODA1LDQ2ODA2LDQ2ODA3LDQ2ODA4LDQ2ODA5LDQ2ODEwLDQ2ODExLDQ2ODEy''@;'; put 'put ''LDQ2ODEzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2ODE0LDQ2ODE1LDQ2ODE2LDQ2ODE3LDQ2ODE4LDQ2ODE5LDQ2ODIwLDQ2ODIxLDQ2ODIyLDQ2ODIzLDQ2ODI0LDQ2ODI1LDQ2ODI2LDQ2ODI3LDQ2ODI4LDQ2ODI5LDQ2ODMwLDQ2ODMxLDQ2ODMzLDQ2ODM0LDQ2ODM1LDQ2''@;'; put 'put ''ODM3LDQ2ODM4LDQ2ODM5LDQ2ODQxLDQ2ODQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ2ODQzLDQ2ODQ0LDQ2ODQ1LDQ2ODQ2LDQ2ODQ3LDQ2ODUwLDQ2ODUxLDQ2ODUyLDQ2ODU0LDQ2ODU1LDQ2ODU2LDQ2ODU3LDQ2ODU4LDQ2ODU5LDQ2ODYwLDQ2ODYxLDQ2ODYyLDQ2ODYz''@;'; put 'put ''LDQ2ODY0LDQ2ODY1LDQ2ODY2LDQ2ODY3LDQ2ODY4LDQ2ODY5LDQ2ODcwLDQ2ODcxLDQ2ODcyLDQ2ODczLDQ2ODc0LDQ2ODc1LDQ2ODc2LDQ2ODc3LDQ2ODc4LDQ2ODc5LDQ2ODgwLDQ2ODgxLDQ2ODgyLDQ2ODgzLDQ2ODg0LDQ2ODg1LDQ2ODg2LDQ2ODg3LDQ2ODkwLDQ2ODkxLDQ2ODkzLDQ2''@;'; put 'put ''ODk0LDQ2ODk3LDQ2ODk4LDQ2ODk5LDQ2OTAwLDQ2OTAxLDQ2OTAyLDQ2OTAzLDQ2OTA2LDQ2OTA4LDQ2OTA5LDQ2OTEwLDQ2OTExLDQ2OTEyLDQ2OTEzLDQ2OTE0LDQ2OTE1LDQ2OTE3LDQ2OTE4LDQ2OTE5LDQ2OTIxLDQ2OTIyLDQ2OTIzLDQ2OTI1LDQ2OTI2LDQ2OTI3LDQ2OTI4LDQ2OTI5''@;'; put 'put ''LDQ2OTMwLDQ2OTMxLDQ2OTM0LDQ2OTM1LDQ2OTM2LDQ2OTM3LDQ2OTM4LDQ2OTM5LDQ2OTQwLDQ2OTQxLDQ2OTQyLDQ2OTQzLDQ2OTQ1LDQ2OTQ2LDQ2OTQ3LDQ2OTQ5LDQ2OTUwLDQ2OTUxLDQ2OTUzLDQ2OTU0LDQ2OTU1LDQ2OTU2LDQ2OTU3LDQ2OTU4LDQ2OTU5LDQ2OTYyLDQ2OTY0LDQ2''@;'; put 'put ''OTY2LDQ2OTY3LDQ2OTY4LDQ2OTY5LDQ2OTcwLDQ2OTcxLDQ2OTc0LDQ2OTc1LDQ2OTc3LDQ2OTc4LDQ2OTc5LDQ2OTgxLDQ2OTgyLDQ2OTgzLDQ2OTg0LDQ2OTg1LDQ2OTg2LDQ2OTg3LDQ2OTkwLDQ2OTk1LDQ2OTk2LDQ2OTk3LDQ3MDAyLDQ3MDAzLDQ3MDA1LDQ3MDA2LDQ3MDA3LDQ3MDA5''@;'; put 'put ''LDQ3MDEwLDQ3MDExLDQ3MDEyLDQ3MDEzLDQ3MDE0LDQ3MDE1LDQ3MDE4LDQ3MDIyLDQ3MDIzLDQ3MDI0LDQ3MDI1LDQ3MDI2LDQ3MDI3LDQ3MDMwLDQ3MDMxLDQ3MDMzLDQ3MDM0LDQ3MDM1LDQ3MDM2LDQ3MDM3LDQ3MDM4LDQ3MDM5LDQ3MDQwLDQ3MDQxLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLDQ3MDQyLDQ3MDQzLDQ3MDQ0LDQ3MDQ1LDQ3MDQ2LDQ3MDQ4LDQ3MDUwLDQ3MDUxLDQ3MDUyLDQ3MDUzLDQ3MDU0LDQ3MDU1LDQ3MDU2LDQ3MDU3LDQ3MDU4LDQ3MDU5LDQ3MDYwLDQ3MDYxLDQ3MDYyLDQ3MDYzLDQ3MDY0LDQ3MDY1LDQ3MDY2LDQ3MDY3LDQ3MDY4LDQ3MDY5''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3MDcwLDQ3MDcxLDQ3MDcyLDQ3MDczLDQ3MDc0LDQ3MDc1LDQ3MDc2LDQ3MDc3LDQ3MDc4LDQ3MDc5LDQ3MDgwLDQ3MDgxLDQ3MDgyLDQ3MDgzLDQ3MDg2LDQ3MDg3LDQ3MDg5LDQ3MDkwLDQ3MDkxLDQ3MDkzLDQ3MDk0LDQ3MDk1LDQ3''@;'; put 'put ''MDk2LDQ3MDk3LDQ3MDk4LDQ3MDk5LDQ3MTAyLDQ3MTA2LDQ3MTA3LDQ3MTA4LDQ3MTA5LDQ3MTEwLDQ3MTE0LDQ3MTE1LDQ3MTE3LDQ3MTE4LDQ3MTE5LDQ3MTIxLDQ3MTIyLDQ3MTIzLDQ3MTI0LDQ3MTI1LDQ3MTI2LDQ3MTI3LDQ3MTMwLDQ3MTMyLDQ3MTM0LDQ3MTM1LDQ3MTM2LDQ3MTM3''@;'; put 'put ''LDQ3MTM4LDQ3MTM5LDQ3MTQyLDQ3MTQzLDQ3MTQ1LDQ3MTQ2LDQ3MTQ3LDQ3MTQ5LDQ3MTUwLDQ3MTUxLDQ3MTUyLDQ3MTUzLDQ3MTU0LDQ3MTU1LDQ3MTU4LDQ3MTYyLDQ3MTYzLDQ3MTY0LDQ3MTY1LDQ3MTY2LDQ3MTY3LDQ3MTY5LDQ3MTcwLDQ3MTcxLDQ3MTczLDQ3MTc0LDQ3MTc1LDQ3''@;'; put 'put ''MTc2LDQ3MTc3LDQ3MTc4LDQ3MTc5LDQ3MTgwLDQ3MTgxLDQ3MTgyLDQ3MTgzLDQ3MTg0LDQ3MTg2LDQ3MTg4LDQ3MTg5LDQ3MTkwLDQ3MTkxLDQ3MTkyLDQ3MTkzLDQ3MTk0LDQ3MTk1LDQ3MTk4LDQ3MTk5LDQ3MjAxLDQ3MjAyLDQ3MjAzLDQ3MjA1LDQ3MjA2LDQ3MjA3LDQ3MjA4LDQ3MjA5''@;'; put 'put ''LDQ3MjEwLDQ3MjExLDQ3MjE0LDQ3MjE2LDQ3MjE4LDQ3MjE5LDQ3MjIwLDQ3MjIxLDQ3MjIyLDQ3MjIzLDQ3MjI1LDQ3MjI2LDQ3MjI3LDQ3MjI5LDQ3MjMwLDQ3MjMxLDQ3MjMyLDQ3MjMzLDQ3MjM0LDQ3MjM1LDQ3MjM2LDQ3MjM3LDQ3MjM4LDQ3MjM5LDQ3MjQwLDQ3MjQxLDQ3MjQyLDQ3''@;'; put 'put ''MjQzLDQ3MjQ0LDQ3MjQ2LDQ3MjQ3LDQ3MjQ4LDQ3MjQ5LDQ3MjUwLDQ3MjUxLDQ3MjUyLDQ3MjUzLDQ3MjU0LDQ3MjU1LDQ3MjU2LDQ3MjU3LDQ3MjU4LDQ3MjU5LDQ3MjYwLDQ3MjYxLDQ3MjYyLDQ3MjYzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3MjY0LDQ3MjY1LDQ3MjY2''@;'; put 'put ''LDQ3MjY3LDQ3MjY4LDQ3MjY5LDQ3MjcwLDQ3MjcxLDQ3MjczLDQ3Mjc0LDQ3Mjc1LDQ3Mjc2LDQ3Mjc3LDQ3Mjc4LDQ3Mjc5LDQ3MjgxLDQ3MjgyLDQ3MjgzLDQ3Mjg1LDQ3Mjg2LDQ3Mjg3LDQ3Mjg5LDQ3MjkwLDQ3MjkxLDQ3MjkyLDQ3MjkzLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLDQ3Mjk0LDQ3Mjk1LDQ3Mjk4LDQ3MzAwLDQ3MzAyLDQ3MzAzLDQ3MzA0LDQ3MzA1LDQ3MzA2LDQ3MzA3LDQ3MzA5LDQ3MzEwLDQ3MzExLDQ3MzEzLDQ3MzE0LDQ3MzE1LDQ3MzE3LDQ3MzE4LDQ3MzE5LDQ3MzIwLDQ3MzIxLDQ3MzIyLDQ3MzIzLDQ3MzI0LDQ3MzI2LDQ3MzI4LDQ3MzMw''@;'; put 'put ''LDQ3MzMxLDQ3MzMyLDQ3MzMzLDQ3MzM0LDQ3MzM1LDQ3MzM4LDQ3MzM5LDQ3MzQxLDQ3MzQyLDQ3MzQzLDQ3MzQ1LDQ3MzQ2LDQ3MzQ3LDQ3MzQ4LDQ3MzQ5LDQ3MzUwLDQ3MzUxLDQ3MzU0LDQ3MzU2LDQ3MzU4LDQ3MzU5LDQ3MzYwLDQ3MzYxLDQ3MzYyLDQ3MzYzLDQ3MzY1LDQ3MzY2LDQ3''@;'; put 'put ''MzY3LDQ3MzY4LDQ3MzY5LDQ3MzcwLDQ3MzcxLDQ3MzcyLDQ3MzczLDQ3Mzc0LDQ3Mzc1LDQ3Mzc2LDQ3Mzc3LDQ3Mzc4LDQ3Mzc5LDQ3MzgwLDQ3MzgxLDQ3MzgyLDQ3MzgzLDQ3Mzg1LDQ3Mzg2LDQ3Mzg3LDQ3Mzg4LDQ3Mzg5LDQ3MzkwLDQ3MzkxLDQ3MzkzLDQ3Mzk0LDQ3Mzk1LDQ3Mzk2''@;'; put 'put ''LDQ3Mzk3LDQ3Mzk4LDQ3Mzk5LDQ3NDAwLDQ3NDAxLDQ3NDAyLDQ3NDAzLDQ3NDA0LDQ3NDA1LDQ3NDA2LDQ3NDA3LDQ3NDA4LDQ3NDA5LDQ3NDEwLDQ3NDExLDQ3NDEyLDQ3NDEzLDQ3NDE0LDQ3NDE1LDQ3NDE2LDQ3NDE3LDQ3NDE4LDQ3NDE5LDQ3NDIyLDQ3NDIzLDQ3NDI1LDQ3NDI2LDQ3''@;'; put 'put ''NDI3LDQ3NDI5LDQ3NDMwLDQ3NDMxLDQ3NDMyLDQ3NDMzLDQ3NDM0LDQ3NDM1LDQ3NDM3LDQ3NDM4LDQ3NDQwLDQ3NDQyLDQ3NDQzLDQ3NDQ0LDQ3NDQ1LDQ3NDQ2LDQ3NDQ3LDQ3NDUwLDQ3NDUxLDQ3NDUzLDQ3NDU0LDQ3NDU1LDQ3NDU3LDQ3NDU4LDQ3NDU5LDQ3NDYwLDQ3NDYxLDQ3NDYy''@;'; put 'put ''LDQ3NDYzLDQ3NDY2LDQ3NDY4LDQ3NDcwLDQ3NDcxLDQ3NDcyLDQ3NDczLDQ3NDc0LDQ3NDc1LDQ3NDc4LDQ3NDc5LDQ3NDgxLDQ3NDgyLDQ3NDgzLDQ3NDg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NDg2LDQ3NDg3LDQ3NDg4LDQ3NDg5LDQ3NDkwLDQ3NDkxLDQ3NDk0LDQ3''@;'; put 'put ''NDk2LDQ3NDk5LDQ3NTAwLDQ3NTAzLDQ3NTA0LDQ3NTA1LDQ3NTA2LDQ3NTA3LDQ3NTA4LDQ3NTA5LDQ3NTEwLDQ3NTExLDQ3NTEyLDQ3NTEzLDQ3NTE0LDQ3NTE1LDQ3NTE2LDQ3NTE3LDQ3NTE4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NTE5LDQ3NTIwLDQ3NTIxLDQ3NTIy''@;'; put 'put ''LDQ3NTIzLDQ3NTI0LDQ3NTI1LDQ3NTI2LDQ3NTI3LDQ3NTI4LDQ3NTI5LDQ3NTMwLDQ3NTMxLDQ3NTM0LDQ3NTM1LDQ3NTM3LDQ3NTM4LDQ3NTM5LDQ3NTQxLDQ3NTQyLDQ3NTQzLDQ3NTQ0LDQ3NTQ1LDQ3NTQ2LDQ3NTQ3LDQ3NTUwLDQ3NTUyLDQ3NTU0LDQ3NTU1LDQ3NTU2LDQ3NTU3LDQ3''@;'; put 'put ''NTU4LDQ3NTU5LDQ3NTYyLDQ3NTYzLDQ3NTY1LDQ3NTcxLDQ3NTcyLDQ3NTczLDQ3NTc0LDQ3NTc1LDQ3NTc4LDQ3NTgwLDQ3NTgzLDQ3NTg0LDQ3NTg2LDQ3NTkwLDQ3NTkxLDQ3NTkzLDQ3NTk0LDQ3NTk1LDQ3NTk3LDQ3NTk4LDQ3NTk5LDQ3NjAwLDQ3NjAxLDQ3NjAyLDQ3NjAzLDQ3NjA2''@;'; put 'put ''LDQ3NjExLDQ3NjEyLDQ3NjEzLDQ3NjE0LDQ3NjE1LDQ3NjE4LDQ3NjE5LDQ3NjIwLDQ3NjIxLDQ3NjIyLDQ3NjIzLDQ3NjI1LDQ3NjI2LDQ3NjI3LDQ3NjI4LDQ3NjI5LDQ3NjMwLDQ3NjMxLDQ3NjMyLDQ3NjMzLDQ3NjM0LDQ3NjM1LDQ3NjM2LDQ3NjM4LDQ3NjM5LDQ3NjQwLDQ3NjQxLDQ3''@;'; put 'put ''NjQyLDQ3NjQzLDQ3NjQ0LDQ3NjQ1LDQ3NjQ2LDQ3NjQ3LDQ3NjQ4LDQ3NjQ5LDQ3NjUwLDQ3NjUxLDQ3NjUyLDQ3NjUzLDQ3NjU0LDQ3NjU1LDQ3NjU2LDQ3NjU3LDQ3NjU4LDQ3NjU5LDQ3NjYwLDQ3NjYxLDQ3NjYyLDQ3NjYzLDQ3NjY0LDQ3NjY1LDQ3NjY2LDQ3NjY3LDQ3NjY4LDQ3NjY5''@;'; put 'put ''LDQ3NjcwLDQ3NjcxLDQ3Njc0LDQ3Njc1LDQ3Njc3LDQ3Njc4LDQ3Njc5LDQ3NjgxLDQ3NjgzLDQ3Njg0LDQ3Njg1LDQ3Njg2LDQ3Njg3LDQ3NjkwLDQ3NjkyLDQ3Njk1LDQ3Njk2LDQ3Njk3LDQ3Njk4LDQ3NzAyLDQ3NzAzLDQ3NzA1LDQ3NzA2LDQ3NzA3LDQ3NzA5LDQ3NzEwLDQ3NzExLDQ3''@;'; put 'put ''NzEyLDQ3NzEzLDQ3NzE0LDQ3NzE1LDQ3NzE4LDQ3NzIyLDQ3NzIzLDQ3NzI0LDQ3NzI1LDQ3NzI2LDQ3NzI3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NzMwLDQ3NzMxLDQ3NzMzLDQ3NzM0LDQ3NzM1LDQ3NzM3LDQ3NzM4LDQ3NzM5LDQ3NzQwLDQ3NzQxLDQ3NzQyLDQ3NzQz''@;'; put 'put ''LDQ3NzQ0LDQ3NzQ1LDQ3NzQ2LDQ3NzUwLDQ3NzUyLDQ3NzUzLDQ3NzU0LDQ3NzU1LDQ3NzU3LDQ3NzU4LDQ3NzU5LDQ3NzYwLDQ3NzYxLDQ3NzYyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3NzYzLDQ3NzY0LDQ3NzY1LDQ3NzY2LDQ3NzY3LDQ3NzY4LDQ3NzY5LDQ3NzcwLDQ3''@;'; put 'put ''NzcxLDQ3NzcyLDQ3NzczLDQ3Nzc0LDQ3Nzc1LDQ3Nzc2LDQ3Nzc3LDQ3Nzc4LDQ3Nzc5LDQ3NzgwLDQ3NzgxLDQ3NzgyLDQ3NzgzLDQ3Nzg2LDQ3Nzg5LDQ3NzkwLDQ3NzkxLDQ3NzkzLDQ3Nzk1LDQ3Nzk2LDQ3Nzk3LDQ3Nzk4LDQ3Nzk5LDQ3ODAyLDQ3ODA0LDQ3ODA2LDQ3ODA3LDQ3ODA4''@;'; put 'put ''LDQ3ODA5LDQ3ODEwLDQ3ODExLDQ3ODEzLDQ3ODE0LDQ3ODE1LDQ3ODE3LDQ3ODE4LDQ3ODE5LDQ3ODIwLDQ3ODIxLDQ3ODIyLDQ3ODIzLDQ3ODI0LDQ3ODI1LDQ3ODI2LDQ3ODI3LDQ3ODI4LDQ3ODI5LDQ3ODMwLDQ3ODMxLDQ3ODM0LDQ3ODM1LDQ3ODM2LDQ3ODM3LDQ3ODM4LDQ3ODM5LDQ3''@;'; put 'put ''ODQwLDQ3ODQxLDQ3ODQyLDQ3ODQzLDQ3ODQ0LDQ3ODQ1LDQ3ODQ2LDQ3ODQ3LDQ3ODQ4LDQ3ODQ5LDQ3ODUwLDQ3ODUxLDQ3ODUyLDQ3ODUzLDQ3ODU0LDQ3ODU1LDQ3ODU2LDQ3ODU3LDQ3ODU4LDQ3ODU5LDQ3ODYwLDQ3ODYxLDQ3ODYyLDQ3ODYzLDQ3ODY0LDQ3ODY1LDQ3ODY2LDQ3ODY3''@;'; put 'put ''LDQ3ODY5LDQ3ODcwLDQ3ODcxLDQ3ODczLDQ3ODc0LDQ3ODc1LDQ3ODc3LDQ3ODc4LDQ3ODc5LDQ3ODgwLDQ3ODgxLDQ3ODgyLDQ3ODgzLDQ3ODg0LDQ3ODg2LDQ3ODg4LDQ3ODkwLDQ3ODkxLDQ3ODkyLDQ3ODkzLDQ3ODk0LDQ3ODk1LDQ3ODk3LDQ3ODk4LDQ3ODk5LDQ3OTAxLDQ3OTAyLDQ3''@;'; put 'put ''OTAzLDQ3OTA1LDQ3OTA2LDQ3OTA3LDQ3OTA4LDQ3OTA5LDQ3OTEwLDQ3OTExLDQ3OTEyLDQ3OTE0LDQ3OTE2LDQ3OTE3LDQ3OTE4LDQ3OTE5LDQ3OTIwLDQ3OTIxLDQ3OTIyLDQ3OTIzLDQ3OTI3LDQ3OTI5LDQ3OTMwLDQ3OTM1LDQ3OTM2LDQ3OTM3LDQ3OTM4LDQ3OTM5LDQ3OTQyLDQ3OTQ0''@;'; put 'put ''LDQ3OTQ2LDQ3OTQ3LDQ3OTQ4LDQ3OTUwLDQ3OTUzLDQ3OTU0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3OTU1LDQ3OTU3LDQ3OTU4LDQ3OTU5LDQ3OTYxLDQ3OTYyLDQ3OTYzLDQ3OTY0LDQ3OTY1LDQ3OTY2LDQ3OTY3LDQ3OTY4LDQ3OTcwLDQ3OTcyLDQ3OTczLDQ3OTc0LDQ3''@;'; put 'put ''OTc1LDQ3OTc2LDQ3OTc3LDQ3OTc4LDQ3OTc5LDQ3OTgxLDQ3OTgyLDQ3OTgzLDQ3OTg0LDQ3OTg1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDQ3OTg2LDQ3OTg3LDQ3OTg4LDQ3OTg5LDQ3OTkwLDQ3OTkxLDQ3OTkyLDQ3OTkzLDQ3OTk0LDQ3OTk1LDQ3OTk2LDQ3OTk3LDQ3OTk4''@;'; put 'put ''LDQ3OTk5LDQ4ZTMsNDgwMDEsNDgwMDIsNDgwMDMsNDgwMDQsNDgwMDUsNDgwMDYsNDgwMDcsNDgwMDksNDgwMTAsNDgwMTEsNDgwMTMsNDgwMTQsNDgwMTUsNDgwMTcsNDgwMTgsNDgwMTksNDgwMjAsNDgwMjEsNDgwMjIsNDgwMjMsNDgwMjQsNDgwMjUsNDgwMjYsNDgwMjcsNDgwMjgsNDgw''@;'; put 'put ''MjksNDgwMzAsNDgwMzEsNDgwMzIsNDgwMzMsNDgwMzQsNDgwMzUsNDgwMzcsNDgwMzgsNDgwMzksNDgwNDEsNDgwNDIsNDgwNDMsNDgwNDUsNDgwNDYsNDgwNDcsNDgwNDgsNDgwNDksNDgwNTAsNDgwNTEsNDgwNTMsNDgwNTQsNDgwNTYsNDgwNTcsNDgwNTgsNDgwNTksNDgwNjAsNDgwNjEs''@;'; put 'put ''NDgwNjIsNDgwNjMsNDgwNjUsNDgwNjYsNDgwNjcsNDgwNjksNDgwNzAsNDgwNzEsNDgwNzMsNDgwNzQsNDgwNzUsNDgwNzYsNDgwNzcsNDgwNzgsNDgwNzksNDgwODEsNDgwODIsNDgwODQsNDgwODUsNDgwODYsNDgwODcsNDgwODgsNDgwODksNDgwOTAsNDgwOTEsNDgwOTIsNDgwOTMsNDgw''@;'; put 'put ''OTQsNDgwOTUsNDgwOTYsNDgwOTcsNDgwOTgsNDgwOTksNDgxMDAsNDgxMDEsNDgxMDIsNDgxMDMsNDgxMDQsNDgxMDUsNDgxMDYsNDgxMDcsNDgxMDgsNDgxMDksNDgxMTAsNDgxMTEsNDgxMTIsNDgxMTMsNDgxMTQsNDgxMTUsNDgxMTYsNDgxMTcsNDgxMTgsNDgxMTksNDgxMjIsNDgxMjMs''@;'; put 'put ''NDgxMjUsNDgxMjYsNDgxMjksNDgxMzEsNDgxMzIsNDgxMzMsNDgxMzQsNDgxMzUsNDgxMzgsNDgxNDIsNDgxNDQsNDgxNDYsNDgxNDcsNDgxNTMsNDgxNTQsNDgxNjAsNDgxNjEsNDgxNjIsNDgxNjMsNDgxNjYsNDgxNjgsNDgxNzAsNDgxNzEsNDgxNzIsNDgxNzQsNDgxNzUsNDgxNzgsNDgx''@;'; put 'put ''NzksNDgxODEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDgxODIsNDgxODMsNDgxODUsNDgxODYsNDgxODcsNDgxODgsNDgxODksNDgxOTAsNDgxOTEsNDgxOTQsNDgxOTgsNDgxOTksNDgyMDAsNDgyMDIsNDgyMDMsNDgyMDYsNDgyMDcsNDgyMDksNDgyMTAsNDgyMTEsNDgyMTIs''@;'; put 'put ''NDgyMTMsNDgyMTQsNDgyMTUsNDgyMTYsNDgyMTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDgyMTgsNDgyMTksNDgyMjAsNDgyMjIsNDgyMjMsNDgyMjQsNDgyMjUsNDgyMjYsNDgyMjcsNDgyMjgsNDgyMjksNDgyMzAsNDgyMzEsNDgyMzIsNDgyMzMsNDgyMzQsNDgyMzUsNDgy''@;'; put 'put ''MzYsNDgyMzcsNDgyMzgsNDgyMzksNDgyNDAsNDgyNDEsNDgyNDIsNDgyNDMsNDgyNDQsNDgyNDUsNDgyNDYsNDgyNDcsNDgyNDgsNDgyNDksNDgyNTAsNDgyNTEsNDgyNTIsNDgyNTMsNDgyNTQsNDgyNTUsNDgyNTYsNDgyNTcsNDgyNTgsNDgyNTksNDgyNjIsNDgyNjMsNDgyNjUsNDgyNjYs''@;'; put 'put ''NDgyNjksNDgyNzEsNDgyNzIsNDgyNzMsNDgyNzQsNDgyNzUsNDgyNzgsNDgyODAsNDgyODMsNDgyODQsNDgyODUsNDgyODYsNDgyODcsNDgyOTAsNDgyOTEsNDgyOTMsNDgyOTQsNDgyOTcsNDgyOTgsNDgyOTksNDgzMDAsNDgzMDEsNDgzMDIsNDgzMDMsNDgzMDYsNDgzMTAsNDgzMTEsNDgz''@;'; put 'put ''MTIsNDgzMTMsNDgzMTQsNDgzMTUsNDgzMTgsNDgzMTksNDgzMjEsNDgzMjIsNDgzMjMsNDgzMjUsNDgzMjYsNDgzMjcsNDgzMjgsNDgzMjksNDgzMzAsNDgzMzEsNDgzMzIsNDgzMzQsNDgzMzgsNDgzMzksNDgzNDAsNDgzNDIsNDgzNDMsNDgzNDUsNDgzNDYsNDgzNDcsNDgzNDksNDgzNTAs''@;'; put 'put ''NDgzNTEsNDgzNTIsNDgzNTMsNDgzNTQsNDgzNTUsNDgzNTYsNDgzNTcsNDgzNTgsNDgzNTksNDgzNjAsNDgzNjEsNDgzNjIsNDgzNjMsNDgzNjQsNDgzNjUsNDgzNjYsNDgzNjcsNDgzNjgsNDgzNjksNDgzNzAsNDgzNzEsNDgzNzUsNDgzNzcsNDgzNzgsNDgzNzksNDgzODEsNDgzODIsNDgz''@;'; put 'put ''ODMsNDgzODQsNDgzODUsNDgzODYsNDgzODcsNDgzOTAsNDgzOTIsNDgzOTQsNDgzOTUsNDgzOTYsNDgzOTcsNDgzOTgsNDgzOTksNDg0MDEsNDg0MDIsNDg0MDMsNDg0MDUsNDg0MDYsNDg0MDcsNDg0MDgsNDg0MDksNDg0MTAsNDg0MTEsNDg0MTIsNDg0MTMsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsNDg0MTQsNDg0MTUsNDg0MTYsNDg0MTcsNDg0MTgsNDg0MTksNDg0MjEsNDg0MjIsNDg0MjMsNDg0MjQsNDg0MjUsNDg0MjYsNDg0MjcsNDg0MjksNDg0MzAsNDg0MzEsNDg0MzIsNDg0MzMsNDg0MzQsNDg0MzUsNDg0MzYsNDg0MzcsNDg0MzgsNDg0MzksNDg0NDAsNDg0''@;'; put 'put ''NDEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg0NDIsNDg0NDMsNDg0NDQsNDg0NDUsNDg0NDYsNDg0NDcsNDg0NDksNDg0NTAsNDg0NTEsNDg0NTIsNDg0NTMsNDg0NTQsNDg0NTUsNDg0NTgsNDg0NTksNDg0NjEsNDg0NjIsNDg0NjMsNDg0NjUsNDg0NjYsNDg0NjcsNDg0Njgs''@;'; put 'put ''NDg0NjksNDg0NzAsNDg0NzEsNDg0NzQsNDg0NzUsNDg0NzYsNDg0NzcsNDg0NzgsNDg0NzksNDg0ODAsNDg0ODEsNDg0ODIsNDg0ODMsNDg0ODUsNDg0ODYsNDg0ODcsNDg0ODksNDg0OTAsNDg0OTEsNDg0OTIsNDg0OTMsNDg0OTQsNDg0OTUsNDg0OTYsNDg0OTcsNDg0OTgsNDg0OTksNDg1''@;'; put 'put ''MDAsNDg1MDEsNDg1MDIsNDg1MDMsNDg1MDQsNDg1MDUsNDg1MDYsNDg1MDcsNDg1MDgsNDg1MDksNDg1MTAsNDg1MTEsNDg1MTQsNDg1MTUsNDg1MTcsNDg1MTgsNDg1MjMsNDg1MjQsNDg1MjUsNDg1MjYsNDg1MjcsNDg1MzAsNDg1MzIsNDg1MzQsNDg1MzUsNDg1MzYsNDg1MzksNDg1NDEs''@;'; put 'put ''NDg1NDIsNDg1NDMsNDg1NDQsNDg1NDUsNDg1NDYsNDg1NDcsNDg1NDksNDg1NTAsNDg1NTEsNDg1NTIsNDg1NTMsNDg1NTQsNDg1NTUsNDg1NTYsNDg1NTcsNDg1NTgsNDg1NTksNDg1NjEsNDg1NjIsNDg1NjMsNDg1NjQsNDg1NjUsNDg1NjYsNDg1NjcsNDg1NjksNDg1NzAsNDg1NzEsNDg1''@;'; put 'put ''NzIsNDg1NzMsNDg1NzQsNDg1NzUsNDg1NzYsNDg1NzcsNDg1NzgsNDg1NzksNDg1ODAsNDg1ODEsNDg1ODIsNDg1ODMsNDg1ODQsNDg1ODUsNDg1ODYsNDg1ODcsNDg1ODgsNDg1ODksNDg1OTAsNDg1OTEsNDg1OTIsNDg1OTMsNDg1OTQsNDg1OTUsNDg1OTgsNDg1OTksNDg2MDEsNDg2MDIs''@;'; put 'put ''NDg2MDMsNDg2MDUsNDg2MDYsNDg2MDcsNDg2MDgsNDg2MDksNDg2MTAsNDg2MTEsNDg2MTIsNDg2MTMsNDg2MTQsNDg2MTUsNDg2MTYsNDg2MTgsNDg2MTksNDg2MjAsNDg2MjEsNDg2MjIsNDg2MjMsNDg2MjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg2MjYsNDg2MjcsNDg2''@;'; put 'put ''MjksNDg2MzAsNDg2MzEsNDg2MzMsNDg2MzQsNDg2MzUsNDg2MzYsNDg2MzcsNDg2MzgsNDg2MzksNDg2NDEsNDg2NDIsNDg2NDQsNDg2NDYsNDg2NDcsNDg2NDgsNDg2NDksNDg2NTAsNDg2NTEsNDg2NTQsNDg2NTUsNDg2NTcsNDg2NTgsNDg2NTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsNDg2NjEsNDg2NjIsNDg2NjMsNDg2NjQsNDg2NjUsNDg2NjYsNDg2NjcsNDg2NzAsNDg2NzIsNDg2NzMsNDg2NzQsNDg2NzUsNDg2NzYsNDg2NzcsNDg2NzgsNDg2NzksNDg2ODAsNDg2ODEsNDg2ODIsNDg2ODMsNDg2ODQsNDg2ODUsNDg2ODYsNDg2ODcsNDg2ODgsNDg2ODksNDg2''@;'; put 'put ''OTAsNDg2OTEsNDg2OTIsNDg2OTMsNDg2OTQsNDg2OTUsNDg2OTYsNDg2OTcsNDg2OTgsNDg2OTksNDg3MDAsNDg3MDEsNDg3MDIsNDg3MDMsNDg3MDQsNDg3MDUsNDg3MDYsNDg3MDcsNDg3MTAsNDg3MTEsNDg3MTMsNDg3MTQsNDg3MTUsNDg3MTcsNDg3MTksNDg3MjAsNDg3MjEsNDg3MjIs''@;'; put 'put ''NDg3MjMsNDg3MjYsNDg3MjgsNDg3MzIsNDg3MzMsNDg3MzQsNDg3MzUsNDg3MzgsNDg3MzksNDg3NDEsNDg3NDIsNDg3NDMsNDg3NDUsNDg3NDcsNDg3NDgsNDg3NDksNDg3NTAsNDg3NTEsNDg3NTQsNDg3NTgsNDg3NTksNDg3NjAsNDg3NjEsNDg3NjIsNDg3NjYsNDg3NjcsNDg3NjksNDg3''@;'; put 'put ''NzAsNDg3NzEsNDg3NzMsNDg3NzQsNDg3NzUsNDg3NzYsNDg3NzcsNDg3NzgsNDg3NzksNDg3ODIsNDg3ODYsNDg3ODcsNDg3ODgsNDg3ODksNDg3OTAsNDg3OTEsNDg3OTQsNDg3OTUsNDg3OTYsNDg3OTcsNDg3OTgsNDg3OTksNDg4MDAsNDg4MDEsNDg4MDIsNDg4MDMsNDg4MDQsNDg4MDUs''@;'; put 'put ''NDg4MDYsNDg4MDcsNDg4MDksNDg4MTAsNDg4MTEsNDg4MTIsNDg4MTMsNDg4MTQsNDg4MTUsNDg4MTYsNDg4MTcsNDg4MTgsNDg4MTksNDg4MjAsNDg4MjEsNDg4MjIsNDg4MjMsNDg4MjQsNDg4MjUsNDg4MjYsNDg4MjcsNDg4MjgsNDg4MjksNDg4MzAsNDg4MzEsNDg4MzIsNDg4MzMsNDg4''@;'; put 'put ''MzQsNDg4MzUsNDg4MzYsNDg4MzcsNDg4MzgsNDg4MzksNDg4NDAsNDg4NDEsNDg4NDIsNDg4NDMsNDg4NDQsNDg4NDUsNDg4NDYsNDg4NDcsNDg4NTAsNDg4NTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg4NTMsNDg4NTQsNDg4NTcsNDg4NTgsNDg4NTksNDg4NjAsNDg4NjEs''@;'; put 'put ''NDg4NjIsNDg4NjMsNDg4NjUsNDg4NjYsNDg4NzAsNDg4NzEsNDg4NzIsNDg4NzMsNDg4NzQsNDg4NzUsNDg4NzcsNDg4NzgsNDg4NzksNDg4ODAsNDg4ODEsNDg4ODIsNDg4ODMsNDg4ODQsNDg4ODUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNDg4ODYsNDg4ODcsNDg4ODgsNDg4''@;'; put 'put ''ODksNDg4OTAsNDg4OTEsNDg4OTIsNDg4OTMsNDg4OTQsNDg4OTUsNDg4OTYsNDg4OTgsNDg4OTksNDg5MDAsNDg5MDEsNDg5MDIsNDg5MDMsNDg5MDYsNDg5MDcsNDg5MDgsNDg5MDksNDg5MTAsNDg5MTEsNDg5MTIsNDg5MTMsNDg5MTQsNDg5MTUsNDg5MTYsNDg5MTcsNDg5MTgsNDg5MTks''@;'; put 'put ''NDg5MjIsNDg5MjYsNDg5MjcsNDg5MjgsNDg5MjksNDg5MzAsNDg5MzEsNDg5MzIsNDg5MzMsNDg5MzQsNDg5MzUsNDg5MzYsNDg5MzcsNDg5MzgsNDg5MzksNDg5NDAsNDg5NDEsNDg5NDIsNDg5NDMsNDg5NDQsNDg5NDUsNDg5NDYsNDg5NDcsNDg5NDgsNDg5NDksNDg5NTAsNDg5NTEsNDg5''@;'; put 'put ''NTIsNDg5NTMsNDg5NTQsNDg5NTUsNDg5NTYsNDg5NTcsNDg5NTgsNDg5NTksNDg5NjIsNDg5NjMsNDg5NjUsNDg5NjYsNDg5NjcsNDg5NjksNDg5NzAsNDg5NzEsNDg5NzIsNDg5NzMsNDg5NzQsNDg5NzUsNDg5NzgsNDg5NzksNDg5ODAsNDg5ODIsNDg5ODMsNDg5ODQsNDg5ODUsNDg5ODYs''@;'; put 'put ''NDg5ODcsNDg5ODgsNDg5ODksNDg5OTAsNDg5OTEsNDg5OTIsNDg5OTMsNDg5OTQsNDg5OTUsNDg5OTYsNDg5OTcsNDg5OTgsNDg5OTksNDllMyw0OTAwMSw0OTAwMiw0OTAwMyw0OTAwNCw0OTAwNSw0OTAwNiw0OTAwNyw0OTAwOCw0OTAwOSw0OTAxMCw0OTAxMSw0OTAxMiw0OTAxMyw0OTAx''@;'; put 'put ''NCw0OTAxNSw0OTAxNiw0OTAxNyw0OTAxOCw0OTAxOSw0OTAyMCw0OTAyMSw0OTAyMiw0OTAyMyw0OTAyNCw0OTAyNSw0OTAyNiw0OTAyNyw0OTAyOCw0OTAyOSw0OTAzMCw0OTAzMSw0OTAzMiw0OTAzMyw0OTAzNCw0OTAzNSw0OTAzNiw0OTAzNyw0OTAzOCw0OTAzOSw0OTA0MCw0OTA0MSw0''@;'; put 'put ''OTA0Miw0OTA0Myw0OTA0NSw0OTA0Niw0OTA0Nyw0OTA0OCw0OTA0OSw0OTA1MCw0OTA1MSw0OTA1Miw0OTA1MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTA1NCw0OTA1NSw0OTA1Niw0OTA1Nyw0OTA1OCw0OTA1OSw0OTA2MCw0OTA2MSw0OTA2Miw0OTA2Myw0OTA2NCw0OTA2''@;'; put 'put ''NSw0OTA2Niw0OTA2Nyw0OTA2OCw0OTA2OSw0OTA3MCw0OTA3MSw0OTA3Myw0OTA3NCw0OTA3NSw0OTA3Niw0OTA3Nyw0OTA3OCw0OTA3OSw0OTA4MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTA4MSw0OTA4Miw0OTA4Myw0OTA4NCw0OTA4NSw0OTA4Niw0OTA4Nyw0OTA4OCw0''@;'; put 'put ''OTA4OSw0OTA5MCw0OTA5MSw0OTA5Miw0OTA5NCw0OTA5NSw0OTA5Niw0OTA5Nyw0OTA5OCw0OTA5OSw0OTEwMiw0OTEwMyw0OTEwNSw0OTEwNiw0OTEwNyw0OTEwOSw0OTExMCw0OTExMSw0OTExMiw0OTExMyw0OTExNCw0OTExNSw0OTExNyw0OTExOCw0OTEyMCw0OTEyMiw0OTEyMyw0OTEy''@;'; put 'put ''NCw0OTEyNSw0OTEyNiw0OTEyNyw0OTEyOCw0OTEyOSw0OTEzMCw0OTEzMSw0OTEzMiw0OTEzMyw0OTEzNCw0OTEzNSw0OTEzNiw0OTEzNyw0OTEzOCw0OTEzOSw0OTE0MCw0OTE0MSw0OTE0Miw0OTE0Myw0OTE0NCw0OTE0NSw0OTE0Niw0OTE0Nyw0OTE0OCw0OTE0OSw0OTE1MCw0OTE1MSw0''@;'; put 'put ''OTE1Miw0OTE1Myw0OTE1NCw0OTE1NSw0OTE1Niw0OTE1Nyw0OTE1OCw0OTE1OSw0OTE2MCw0OTE2MSw0OTE2Miw0OTE2Myw0OTE2NCw0OTE2NSw0OTE2Niw0OTE2Nyw0OTE2OCw0OTE2OSw0OTE3MCw0OTE3MSw0OTE3Miw0OTE3Myw0OTE3NCw0OTE3NSw0OTE3Niw0OTE3Nyw0OTE3OCw0OTE3''@;'; put 'put ''OSw0OTE4MCw0OTE4MSw0OTE4Miw0OTE4Myw0OTE4NCw0OTE4NSw0OTE4Niw0OTE4Nyw0OTE4OCw0OTE4OSw0OTE5MCw0OTE5MSw0OTE5Miw0OTE5Myw0OTE5NCw0OTE5NSw0OTE5Niw0OTE5Nyw0OTE5OCw0OTE5OSw0OTIwMCw0OTIwMSw0OTIwMiw0OTIwMyw0OTIwNCw0OTIwNSw0OTIwNiw0''@;'; put 'put ''OTIwNyw0OTIwOCw0OTIwOSw0OTIxMCw0OTIxMSw0OTIxMyw0OTIxNCw0OTIxNSw0OTIxNiw0OTIxNyw0OTIxOCw0OTIxOSw0OTIyMCw0OTIyMSw0OTIyMiw0OTIyMyw0OTIyNCw0OTIyNSw0OTIyNiw0OTIyNyw0OTIyOCw0OTIyOSw0OTIzMCw0OTIzMSw0OTIzMiw0OTIzNCw0OTIzNSw0OTIz''@;'; put 'put ''Niw0OTIzNyw0OTIzOCw0OTIzOSw0OTI0MSw0OTI0Miw0OTI0MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTI0NSw0OTI0Niw0OTI0Nyw0OTI0OSw0OTI1MCw0OTI1MSw0OTI1Miw0OTI1Myw0OTI1NCw0OTI1NSw0OTI1OCw0OTI1OSw0OTI2MCw0OTI2MSw0OTI2Miw0OTI2Myw0''@;'; put 'put ''OTI2NCw0OTI2NSw0OTI2Niw0OTI2Nyw0OTI2OCw0OTI2OSw0OTI3MCw0OTI3MSw0OTI3Miw0OTI3MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTI3NCw0OTI3NSw0OTI3Niw0OTI3Nyw0OTI3OCw0OTI3OSw0OTI4MCw0OTI4MSw0OTI4Miw0OTI4Myw0OTI4NCw0OTI4NSw0OTI4''@;'; put 'put ''Niw0OTI4Nyw0OTI4OCw0OTI4OSw0OTI5MCw0OTI5MSw0OTI5Miw0OTI5Myw0OTI5NCw0OTI5NSw0OTI5OCw0OTI5OSw0OTMwMSw0OTMwMiw0OTMwMyw0OTMwNSw0OTMwNiw0OTMwNyw0OTMwOCw0OTMwOSw0OTMxMCw0OTMxMSw0OTMxNCw0OTMxNiw0OTMxOCw0OTMxOSw0OTMyMCw0OTMyMSw0''@;'; put 'put ''OTMyMiw0OTMyMyw0OTMyNiw0OTMyOSw0OTMzMCw0OTMzNSw0OTMzNiw0OTMzNyw0OTMzOCw0OTMzOSw0OTM0Miw0OTM0Niw0OTM0Nyw0OTM0OCw0OTM1MCw0OTM1MSw0OTM1NCw0OTM1NSw0OTM1Nyw0OTM1OCw0OTM1OSw0OTM2MSw0OTM2Miw0OTM2Myw0OTM2NCw0OTM2NSw0OTM2Niw0OTM2''@;'; put 'put ''Nyw0OTM3MCw0OTM3NCw0OTM3NSw0OTM3Niw0OTM3Nyw0OTM3OCw0OTM3OSw0OTM4Miw0OTM4Myw0OTM4NSw0OTM4Niw0OTM4Nyw0OTM4OSw0OTM5MCw0OTM5MSw0OTM5Miw0OTM5Myw0OTM5NCw0OTM5NSw0OTM5OCw0OTQwMCw0OTQwMiw0OTQwMyw0OTQwNCw0OTQwNSw0OTQwNiw0OTQwNyw0''@;'; put 'put ''OTQwOSw0OTQxMCw0OTQxMSw0OTQxMyw0OTQxNCw0OTQxNSw0OTQxNyw0OTQxOCw0OTQxOSw0OTQyMCw0OTQyMSw0OTQyMiw0OTQyMyw0OTQyNSw0OTQyNiw0OTQyNyw0OTQyOCw0OTQzMCw0OTQzMSw0OTQzMiw0OTQzMyw0OTQzNCw0OTQzNSw0OTQ0MSw0OTQ0Miw0OTQ0NSw0OTQ0OCw0OTQ0''@;'; put 'put ''OSw0OTQ1MCw0OTQ1MSw0OTQ1NCw0OTQ1OCw0OTQ1OSw0OTQ2MCw0OTQ2MSw0OTQ2Myw0OTQ2Niw0OTQ2Nyw0OTQ2OSw0OTQ3MCw0OTQ3MSw0OTQ3Myw0OTQ3NCw0OTQ3NSw0OTQ3Niw0OTQ3Nyw0OTQ3OCw0OTQ3OSw0OTQ4Miw0OTQ4Niw0OTQ4Nyw0OTQ4OCw0OTQ4OSw0OTQ5MCw0OTQ5MSw0''@;'; put 'put ''OTQ5NCw0OTQ5NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTQ5Nyw0OTQ5OCw0OTQ5OSw0OTUwMSw0OTUwMiw0OTUwMyw0OTUwNCw0OTUwNSw0OTUwNiw0OTUwNyw0OTUxMCw0OTUxNCw0OTUxNSw0OTUxNiw0OTUxNyw0OTUxOCw0OTUxOSw0OTUyMSw0OTUyMiw0OTUyMyw0OTUy''@;'; put 'put ''NSw0OTUyNiw0OTUyNyw0OTUyOSw0OTUzMCw0OTUzMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTUzMiw0OTUzMyw0OTUzNCw0OTUzNSw0OTUzNiw0OTUzNyw0OTUzOCw0OTUzOSw0OTU0MCw0OTU0Miw0OTU0Myw0OTU0NCw0OTU0NSw0OTU0Niw0OTU0Nyw0OTU1MSw0OTU1Myw0''@;'; put 'put ''OTU1NCw0OTU1NSw0OTU1Nyw0OTU1OSw0OTU2MCw0OTU2MSw0OTU2Miw0OTU2Myw0OTU2Niw0OTU2OCw0OTU3MCw0OTU3MSw0OTU3Miw0OTU3NCw0OTU3NSw0OTU3OCw0OTU3OSw0OTU4MSw0OTU4Miw0OTU4Myw0OTU4NSw0OTU4Niw0OTU4Nyw0OTU4OCw0OTU4OSw0OTU5MCw0OTU5MSw0OTU5''@;'; put 'put ''Miw0OTU5Myw0OTU5NCw0OTU5NSw0OTU5Niw0OTU5OCw0OTU5OSw0OTYwMCw0OTYwMSw0OTYwMiw0OTYwMyw0OTYwNSw0OTYwNiw0OTYwNyw0OTYwOSw0OTYxMCw0OTYxMSw0OTYxMyw0OTYxNCw0OTYxNSw0OTYxNiw0OTYxNyw0OTYxOCw0OTYxOSw0OTYyMSw0OTYyMiw0OTYyNSw0OTYyNiw0''@;'; put 'put ''OTYyNyw0OTYyOCw0OTYyOSw0OTYzMCw0OTYzMSw0OTYzMyw0OTYzNCw0OTYzNSw0OTYzNyw0OTYzOCw0OTYzOSw0OTY0MSw0OTY0Miw0OTY0Myw0OTY0NCw0OTY0NSw0OTY0Niw0OTY0Nyw0OTY1MCw0OTY1Miw0OTY1Myw0OTY1NCw0OTY1NSw0OTY1Niw0OTY1Nyw0OTY1OCw0OTY1OSw0OTY2''@;'; put 'put ''Miw0OTY2Myw0OTY2NSw0OTY2Niw0OTY2Nyw0OTY2OSw0OTY3MCw0OTY3MSw0OTY3Miw0OTY3Myw0OTY3NCw0OTY3NSw0OTY3OCw0OTY4MCw0OTY4Miw0OTY4Myw0OTY4NCw0OTY4NSw0OTY4Niw0OTY4Nyw0OTY5MCw0OTY5MSw0OTY5Myw0OTY5NCw0OTY5Nyw0OTY5OCw0OTY5OSw0OTcwMCw0''@;'; put 'put ''OTcwMSw0OTcwMiw0OTcwMyw0OTcwNiw0OTcwOCw0OTcxMCw0OTcxMiw0OTcxNSw0OTcxNyw0OTcxOCw0OTcxOSw0OTcyMCw0OTcyMSw0OTcyMiw0OTcyMyw0OTcyNCw0OTcyNSw0OTcyNiw0OTcyNyw0OTcyOCw0OTcyOSw0OTczMCw0OTczMSw0OTczMiw0OTczMyxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCw0OTczNCw0OTczNSw0OTczNyw0OTczOCw0OTczOSw0OTc0MCw0OTc0MSw0OTc0Miw0OTc0Myw0OTc0Niw0OTc0Nyw0OTc0OSw0OTc1MCw0OTc1MSw0OTc1Myw0OTc1NCw0OTc1NSw0OTc1Niw0OTc1Nyw0OTc1OCw0OTc1OSw0OTc2MSw0OTc2Miw0OTc2Myw0OTc2NCw0''@;'; put 'put ''OTc2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTc2Nyw0OTc2OCw0OTc2OSw0OTc3MCw0OTc3MSw0OTc3NCw0OTc3NSw0OTc3Nyw0OTc3OCw0OTc3OSw0OTc4MSw0OTc4Miw0OTc4Myw0OTc4NCw0OTc4NSw0OTc4Niw0OTc4Nyw0OTc5MCw0OTc5Miw0OTc5NCw0OTc5NSw0OTc5''@;'; put 'put ''Niw0OTc5Nyw0OTc5OCw0OTc5OSw0OTgwMiw0OTgwMyw0OTgwNCw0OTgwNSw0OTgwNiw0OTgwNyw0OTgwOSw0OTgxMCw0OTgxMSw0OTgxMiw0OTgxMyw0OTgxNCw0OTgxNSw0OTgxNyw0OTgxOCw0OTgyMCw0OTgyMiw0OTgyMyw0OTgyNCw0OTgyNSw0OTgyNiw0OTgyNyw0OTgzMCw0OTgzMSw0''@;'; put 'put ''OTgzMyw0OTgzNCw0OTgzNSw0OTgzOCw0OTgzOSw0OTg0MCw0OTg0MSw0OTg0Miw0OTg0Myw0OTg0Niw0OTg0OCw0OTg1MCw0OTg1MSw0OTg1Miw0OTg1Myw0OTg1NCw0OTg1NSw0OTg1Niw0OTg1Nyw0OTg1OCw0OTg1OSw0OTg2MCw0OTg2MSw0OTg2Miw0OTg2Myw0OTg2NCw0OTg2NSw0OTg2''@;'; put 'put ''Niw0OTg2Nyw0OTg2OCw0OTg2OSw0OTg3MCw0OTg3MSw0OTg3Miw0OTg3Myw0OTg3NCw0OTg3NSw0OTg3Niw0OTg3Nyw0OTg3OCw0OTg3OSw0OTg4MCw0OTg4MSw0OTg4Miw0OTg4Myw0OTg4Niw0OTg4Nyw0OTg4OSw0OTg5MCw0OTg5Myw0OTg5NCw0OTg5NSw0OTg5Niw0OTg5Nyw0OTg5OCw0''@;'; put 'put ''OTkwMiw0OTkwNCw0OTkwNiw0OTkwNyw0OTkwOCw0OTkwOSw0OTkxMSw0OTkxNCw0OTkxNyw0OTkxOCw0OTkxOSw0OTkyMSw0OTkyMiw0OTkyMyw0OTkyNCw0OTkyNSw0OTkyNiw0OTkyNyw0OTkzMCw0OTkzMSw0OTkzNCw0OTkzNSw0OTkzNiw0OTkzNyw0OTkzOCw0OTk0Miw0OTk0Myw0OTk0''@;'; put 'put ''NSw0OTk0Niw0OTk0Nyw0OTk0OSw0OTk1MCw0OTk1MSw0OTk1Miw0OTk1Myw0OTk1NCw0OTk1NSw0OTk1OCw0OTk1OSw0OTk2Miw0OTk2Myw0OTk2NCw0OTk2NSw0OTk2Niw0OTk2Nyw0OTk2OCw0OTk2OSw0OTk3MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw0OTk3MSw0OTk3Miw0''@;'; put 'put ''OTk3Myw0OTk3NCw0OTk3NSw0OTk3Niw0OTk3Nyw0OTk3OCw0OTk3OSw0OTk4MCw0OTk4MSw0OTk4Miw0OTk4Myw0OTk4NCw0OTk4NSw0OTk4Niw0OTk4Nyw0OTk4OCw0OTk5MCw0OTk5MSw0OTk5Miw0OTk5Myw0OTk5NCw0OTk5NSw0OTk5Niw0OTk5NyxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCw0OTk5OCw0OTk5OSw1ZTQsNTAwMDEsNTAwMDIsNTAwMDMsNTAwMDQsNTAwMDUsNTAwMDYsNTAwMDcsNTAwMDgsNTAwMDksNTAwMTAsNTAwMTEsNTAwMTIsNTAwMTMsNTAwMTQsNTAwMTUsNTAwMTYsNTAwMTcsNTAwMTgsNTAwMTksNTAwMjAsNTAwMjEsNTAwMjIsNTAwMjMsNTAw''@;'; put 'put ''MjYsNTAwMjcsNTAwMjksNTAwMzAsNTAwMzEsNTAwMzMsNTAwMzUsNTAwMzYsNTAwMzcsNTAwMzgsNTAwMzksNTAwNDIsNTAwNDMsNTAwNDYsNTAwNDcsNTAwNDgsNTAwNDksNTAwNTAsNTAwNTEsNTAwNTMsNTAwNTQsNTAwNTUsNTAwNTcsNTAwNTgsNTAwNTksNTAwNjEsNTAwNjIsNTAwNjMs''@;'; put 'put ''NTAwNjQsNTAwNjUsNTAwNjYsNTAwNjcsNTAwNjgsNTAwNjksNTAwNzAsNTAwNzEsNTAwNzIsNTAwNzMsNTAwNzQsNTAwNzUsNTAwNzYsNTAwNzcsNTAwNzgsNTAwNzksNTAwODAsNTAwODEsNTAwODIsNTAwODMsNTAwODQsNTAwODUsNTAwODYsNTAwODcsNTAwODgsNTAwODksNTAwOTAsNTAw''@;'; put 'put ''OTEsNTAwOTIsNTAwOTMsNTAwOTQsNTAwOTUsNTAwOTYsNTAwOTcsNTAwOTgsNTAwOTksNTAxMDAsNTAxMDEsNTAxMDIsNTAxMDMsNTAxMDQsNTAxMDUsNTAxMDYsNTAxMDcsNTAxMDgsNTAxMDksNTAxMTAsNTAxMTEsNTAxMTMsNTAxMTQsNTAxMTUsNTAxMTYsNTAxMTcsNTAxMTgsNTAxMTks''@;'; put 'put ''NTAxMjAsNTAxMjEsNTAxMjIsNTAxMjMsNTAxMjQsNTAxMjUsNTAxMjYsNTAxMjcsNTAxMjgsNTAxMjksNTAxMzAsNTAxMzEsNTAxMzIsNTAxMzMsNTAxMzQsNTAxMzUsNTAxMzgsNTAxMzksNTAxNDEsNTAxNDIsNTAxNDUsNTAxNDcsNTAxNDgsNTAxNDksNTAxNTAsNTAxNTEsNTAxNTQsNTAx''@;'; put 'put ''NTUsNTAxNTYsNTAxNTgsNTAxNTksNTAxNjAsNTAxNjEsNTAxNjIsNTAxNjMsNTAxNjYsNTAxNjcsNTAxNjksNTAxNzAsNTAxNzEsNTAxNzIsNTAxNzMsNTAxNzQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAxNzUsNTAxNzYsNTAxNzcsNTAxNzgsNTAxNzksNTAxODAsNTAxODEs''@;'; put 'put ''NTAxODIsNTAxODMsNTAxODUsNTAxODYsNTAxODcsNTAxODgsNTAxODksNTAxOTAsNTAxOTEsNTAxOTMsNTAxOTQsNTAxOTUsNTAxOTYsNTAxOTcsNTAxOTgsNTAxOTksNTAyMDAsNTAyMDEsNTAyMDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAyMDMsNTAyMDQsNTAyMDUsNTAy''@;'; put 'put ''MDYsNTAyMDcsNTAyMDgsNTAyMDksNTAyMTAsNTAyMTEsNTAyMTMsNTAyMTQsNTAyMTUsNTAyMTYsNTAyMTcsNTAyMTgsNTAyMTksNTAyMjEsNTAyMjIsNTAyMjMsNTAyMjUsNTAyMjYsNTAyMjcsNTAyMjksNTAyMzAsNTAyMzEsNTAyMzIsNTAyMzMsNTAyMzQsNTAyMzUsNTAyMzgsNTAyMzks''@;'; put 'put ''NTAyNDAsNTAyNDEsNTAyNDIsNTAyNDMsNTAyNDQsNTAyNDUsNTAyNDYsNTAyNDcsNTAyNDksNTAyNTAsNTAyNTEsNTAyNTIsNTAyNTMsNTAyNTQsNTAyNTUsNTAyNTYsNTAyNTcsNTAyNTgsNTAyNTksNTAyNjAsNTAyNjEsNTAyNjIsNTAyNjMsNTAyNjQsNTAyNjUsNTAyNjYsNTAyNjcsNTAy''@;'; put 'put ''NjgsNTAyNjksNTAyNzAsNTAyNzEsNTAyNzIsNTAyNzMsNTAyNzQsNTAyNzUsNTAyNzgsNTAyNzksNTAyODEsNTAyODIsNTAyODMsNTAyODUsNTAyODYsNTAyODcsNTAyODgsNTAyODksNTAyOTAsNTAyOTEsNTAyOTQsNTAyOTUsNTAyOTYsNTAyOTgsNTAyOTksNTAzMDAsNTAzMDEsNTAzMDIs''@;'; put 'put ''NTAzMDMsNTAzMDUsNTAzMDYsNTAzMDcsNTAzMDgsNTAzMDksNTAzMTAsNTAzMTEsNTAzMTIsNTAzMTMsNTAzMTQsNTAzMTUsNTAzMTYsNTAzMTcsNTAzMTgsNTAzMTksNTAzMjAsNTAzMjEsNTAzMjIsNTAzMjMsNTAzMjUsNTAzMjYsNTAzMjcsNTAzMjgsNTAzMjksNTAzMzAsNTAzMzEsNTAz''@;'; put 'put ''MzMsNTAzMzQsNTAzMzUsNTAzMzYsNTAzMzcsNTAzMzgsNTAzMzksNTAzNDAsNTAzNDEsNTAzNDIsNTAzNDMsNTAzNDQsNTAzNDUsNTAzNDYsNTAzNDcsNTAzNDgsNTAzNDksNTAzNTAsNTAzNTEsNTAzNTIsNTAzNTMsNTAzNTQsNTAzNTUsNTAzNTYsNTAzNTcsNTAzNTgsNTAzNTksNTAzNjEs''@;'; put 'put ''NTAzNjIsNTAzNjMsNTAzNjUsNTAzNjYsNTAzNjcsNTAzNjgsNTAzNjksNTAzNzAsNTAzNzEsNTAzNzIsNTAzNzMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTAzNzQsNTAzNzUsNTAzNzYsNTAzNzcsNTAzNzgsNTAzNzksNTAzODAsNTAzODEsNTAzODIsNTAzODMsNTAzODQsNTAz''@;'; put 'put ''ODUsNTAzODYsNTAzODcsNTAzODgsNTAzODksNTAzOTAsNTAzOTEsNTAzOTIsNTAzOTMsNTAzOTQsNTAzOTUsNTAzOTYsNTAzOTcsNTAzOTgsNTAzOTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA0MDAsNTA0MDEsNTA0MDIsNTA0MDMsNTA0MDQsNTA0MDUsNTA0MDYsNTA0MDcs''@;'; put 'put ''NTA0MDgsNTA0MTAsNTA0MTEsNTA0MTIsNTA0MTMsNTA0MTQsNTA0MTUsNTA0MTgsNTA0MTksNTA0MjEsNTA0MjIsNTA0MjMsNTA0MjUsNTA0MjcsNTA0MjgsNTA0MjksNTA0MzAsNTA0MzQsNTA0MzUsNTA0MzYsNTA0MzcsNTA0MzgsNTA0MzksNTA0NDAsNTA0NDEsNTA0NDIsNTA0NDMsNTA0''@;'; put 'put ''NDUsNTA0NDYsNTA0NDcsNTA0NDksNTA0NTAsNTA0NTEsNTA0NTMsNTA0NTQsNTA0NTUsNTA0NTYsNTA0NTcsNTA0NTgsNTA0NTksNTA0NjEsNTA0NjIsNTA0NjMsNTA0NjQsNTA0NjUsNTA0NjYsNTA0NjcsNTA0NjgsNTA0NjksNTA0NzAsNTA0NzEsNTA0NzQsNTA0NzUsNTA0NzcsNTA0Nzgs''@;'; put 'put ''NTA0NzksNTA0ODEsNTA0ODIsNTA0ODMsNTA0ODQsNTA0ODUsNTA0ODYsNTA0ODcsNTA0OTAsNTA0OTIsNTA0OTQsNTA0OTUsNTA0OTYsNTA0OTcsNTA0OTgsNTA0OTksNTA1MDIsNTA1MDMsNTA1MDcsNTA1MTEsNTA1MTIsNTA1MTMsNTA1MTQsNTA1MTgsNTA1MjIsNTA1MjMsNTA1MjQsNTA1''@;'; put 'put ''MjcsNTA1MzAsNTA1MzEsNTA1MzMsNTA1MzQsNTA1MzUsNTA1MzcsNTA1MzgsNTA1MzksNTA1NDAsNTA1NDEsNTA1NDIsNTA1NDMsNTA1NDYsNTA1NTAsNTA1NTEsNTA1NTIsNTA1NTMsNTA1NTQsNTA1NTUsNTA1NTgsNTA1NTksNTA1NjEsNTA1NjIsNTA1NjMsNTA1NjUsNTA1NjYsNTA1Njgs''@;'; put 'put ''NTA1NjksNTA1NzAsNTA1NzEsNTA1NzQsNTA1NzYsNTA1NzgsNTA1NzksNTA1ODAsNTA1ODIsNTA1ODUsNTA1ODYsNTA1ODcsNTA1ODksNTA1OTAsNTA1OTEsNTA1OTMsNTA1OTQsNTA1OTUsNTA1OTYsNTA1OTcsNTA1OTgsNTA1OTksNTA2MDAsNTA2MDIsNTA2MDMsNTA2MDQsNTA2MDUsNTA2''@;'; put 'put ''MDYsNTA2MDcsNTA2MDgsNTA2MDksNTA2MTAsNTA2MTEsNTA2MTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA2MTUsNTA2MTgsNTA2MjMsNTA2MjQsNTA2MjUsNTA2MjYsNTA2MjcsNTA2MzUsNTA2MzcsNTA2MzksNTA2NDIsNTA2NDMsNTA2NDUsNTA2NDYsNTA2NDcsNTA2NDks''@;'; put 'put ''NTA2NTAsNTA2NTEsNTA2NTIsNTA2NTMsNTA2NTQsNTA2NTUsNTA2NTgsNTA2NjAsNTA2NjIsNTA2NjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA2NjQsNTA2NjUsNTA2NjYsNTA2NjcsNTA2NzEsNTA2NzMsNTA2NzQsNTA2NzUsNTA2NzcsNTA2ODAsNTA2ODEsNTA2ODIsNTA2''@;'; put 'put ''ODMsNTA2OTAsNTA2OTEsNTA2OTIsNTA2OTcsNTA2OTgsNTA2OTksNTA3MDEsNTA3MDIsNTA3MDMsNTA3MDUsNTA3MDYsNTA3MDcsNTA3MDgsNTA3MDksNTA3MTAsNTA3MTEsNTA3MTQsNTA3MTcsNTA3MTgsNTA3MTksNTA3MjAsNTA3MjEsNTA3MjIsNTA3MjMsNTA3MjYsNTA3MjcsNTA3Mjks''@;'; put 'put ''NTA3MzAsNTA3MzEsNTA3MzUsNTA3MzcsNTA3MzgsNTA3NDIsNTA3NDQsNTA3NDYsNTA3NDgsNTA3NDksNTA3NTAsNTA3NTEsNTA3NTQsNTA3NTUsNTA3NTcsNTA3NTgsNTA3NTksNTA3NjEsNTA3NjIsNTA3NjMsNTA3NjQsNTA3NjUsNTA3NjYsNTA3NjcsNTA3NzAsNTA3NzQsNTA3NzUsNTA3''@;'; put 'put ''NzYsNTA3NzcsNTA3NzgsNTA3NzksNTA3ODIsNTA3ODMsNTA3ODUsNTA3ODYsNTA3ODcsNTA3ODgsNTA3ODksNTA3OTAsNTA3OTEsNTA3OTIsNTA3OTMsNTA3OTQsNTA3OTUsNTA3OTcsNTA3OTgsNTA4MDAsNTA4MDIsNTA4MDMsNTA4MDQsNTA4MDUsNTA4MDYsNTA4MDcsNTA4MTAsNTA4MTEs''@;'; put 'put ''NTA4MTMsNTA4MTQsNTA4MTUsNTA4MTcsNTA4MTgsNTA4MTksNTA4MjAsNTA4MjEsNTA4MjIsNTA4MjMsNTA4MjYsNTA4MjgsNTA4MzAsNTA4MzEsNTA4MzIsNTA4MzMsNTA4MzQsNTA4MzUsNTA4MzgsNTA4MzksNTA4NDEsNTA4NDIsNTA4NDMsNTA4NDUsNTA4NDYsNTA4NDcsNTA4NDgsNTA4''@;'; put 'put ''NDksNTA4NTAsNTA4NTEsNTA4NTQsNTA4NTYsNTA4NTgsNTA4NTksNTA4NjAsNTA4NjEsNTA4NjIsNTA4NjMsNTA4NjYsNTA4NjcsNTA4NjksNTA4NzAsNTA4NzEsNTA4NzUsNTA4NzYsNTA4NzcsNTA4NzgsNTA4NzksNTA4ODIsNTA4ODQsNTA4ODYsNTA4ODcsNTA4ODgsNTA4ODksNTA4OTAs''@;'; put 'put ''NTA4OTEsNTA4OTQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA4OTUsNTA4OTcsNTA4OTgsNTA4OTksNTA5MDEsNTA5MDIsNTA5MDMsNTA5MDQsNTA5MDUsNTA5MDYsNTA5MDcsNTA5MTAsNTA5MTEsNTA5MTQsNTA5MTUsNTA5MTYsNTA5MTcsNTA5MTgsNTA5MTksNTA5MjIsNTA5''@;'; put 'put ''MjMsNTA5MjUsNTA5MjYsNTA5MjcsNTA5MjksNTA5MzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTA5MzEsNTA5MzIsNTA5MzMsNTA5MzQsNTA5MzUsNTA5MzgsNTA5MzksNTA5NDAsNTA5NDIsNTA5NDMsNTA5NDQsNTA5NDUsNTA5NDYsNTA5NDcsNTA5NTAsNTA5NTEsNTA5NTMs''@;'; put 'put ''NTA5NTQsNTA5NTUsNTA5NTcsNTA5NTgsNTA5NTksNTA5NjAsNTA5NjEsNTA5NjIsNTA5NjMsNTA5NjYsNTA5NjgsNTA5NzAsNTA5NzEsNTA5NzIsNTA5NzMsNTA5NzQsNTA5NzUsNTA5NzgsNTA5NzksNTA5ODEsNTA5ODIsNTA5ODMsNTA5ODUsNTA5ODYsNTA5ODcsNTA5ODgsNTA5ODksNTA5''@;'; put 'put ''OTAsNTA5OTEsNTA5OTQsNTA5OTYsNTA5OTgsNTFlMyw1MTAwMSw1MTAwMiw1MTAwMyw1MTAwNiw1MTAwNyw1MTAwOSw1MTAxMCw1MTAxMSw1MTAxMyw1MTAxNCw1MTAxNSw1MTAxNiw1MTAxNyw1MTAxOSw1MTAyMiw1MTAyNCw1MTAzMyw1MTAzNCw1MTAzNSw1MTAzNyw1MTAzOCw1MTAzOSw1''@;'; put 'put ''MTA0MSw1MTA0Miw1MTA0Myw1MTA0NCw1MTA0NSw1MTA0Niw1MTA0Nyw1MTA0OSw1MTA1MCw1MTA1Miw1MTA1Myw1MTA1NCw1MTA1NSw1MTA1Niw1MTA1Nyw1MTA1OCw1MTA1OSw1MTA2Miw1MTA2Myw1MTA2NSw1MTA2Niw1MTA2Nyw1MTA3MSw1MTA3Miw1MTA3Myw1MTA3NCw1MTA3OCw1MTA4''@;'; put 'put ''Myw1MTA4NCw1MTA4NSw1MTA4Nyw1MTA5MCw1MTA5MSw1MTA5Myw1MTA5Nyw1MTA5OSw1MTEwMCw1MTEwMSw1MTEwMiw1MTEwMyw1MTEwNiw1MTExMSw1MTExMiw1MTExMyw1MTExNCw1MTExNSw1MTExOCw1MTExOSw1MTEyMSw1MTEyMiw1MTEyMyw1MTEyNSw1MTEyNiw1MTEyNyw1MTEyOCw1''@;'; put 'put ''MTEyOSw1MTEzMCw1MTEzMSw1MTEzNCw1MTEzOCw1MTEzOSw1MTE0MCw1MTE0MSw1MTE0Miw1MTE0Myw1MTE0Niw1MTE0Nyw1MTE0OSw1MTE1MSw1MTE1Myw1MTE1NCw1MTE1NSw1MTE1Niw1MTE1Nyw1MTE1OCw1MTE1OSw1MTE2MSw1MTE2Miw1MTE2Myw1MTE2NCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCw1MTE2Niw1MTE2Nyw1MTE2OCw1MTE2OSw1MTE3MCw1MTE3MSw1MTE3Myw1MTE3NCw1MTE3NSw1MTE3Nyw1MTE3OCw1MTE3OSw1MTE4MSw1MTE4Miw1MTE4Myw1MTE4NCw1MTE4NSw1MTE4Niw1MTE4Nyw1MTE4OCw1MTE4OSw1MTE5MCw1MTE5MSw1MTE5Miw1MTE5Myw1''@;'; put 'put ''MTE5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTE5NSw1MTE5Niw1MTE5Nyw1MTE5OCw1MTE5OSw1MTIwMiw1MTIwMyw1MTIwNSw1MTIwNiw1MTIwNyw1MTIwOSw1MTIxMSw1MTIxMiw1MTIxMyw1MTIxNCw1MTIxNSw1MTIxOCw1MTIyMCw1MTIyMyw1MTIyNCw1MTIyNSw1MTIy''@;'; put 'put ''Niw1MTIyNyw1MTIzMCw1MTIzMSw1MTIzMyw1MTIzNCw1MTIzNSw1MTIzNyw1MTIzOCw1MTIzOSw1MTI0MCw1MTI0MSw1MTI0Miw1MTI0Myw1MTI0Niw1MTI0OCw1MTI1MCw1MTI1MSw1MTI1Miw1MTI1Myw1MTI1NCw1MTI1NSw1MTI1Nyw1MTI1OCw1MTI1OSw1MTI2MSw1MTI2Miw1MTI2Myw1''@;'; put 'put ''MTI2NSw1MTI2Niw1MTI2Nyw1MTI2OCw1MTI2OSw1MTI3MCw1MTI3MSw1MTI3NCw1MTI3NSw1MTI3OCw1MTI3OSw1MTI4MCw1MTI4MSw1MTI4Miw1MTI4Myw1MTI4NSw1MTI4Niw1MTI4Nyw1MTI4OCw1MTI4OSw1MTI5MCw1MTI5MSw1MTI5Miw1MTI5Myw1MTI5NCw1MTI5NSw1MTI5Niw1MTI5''@;'; put 'put ''Nyw1MTI5OCw1MTI5OSw1MTMwMCw1MTMwMSw1MTMwMiw1MTMwMyw1MTMwNCw1MTMwNSw1MTMwNiw1MTMwNyw1MTMwOCw1MTMwOSw1MTMxMCw1MTMxMSw1MTMxNCw1MTMxNSw1MTMxNyw1MTMxOCw1MTMxOSw1MTMyMSw1MTMyMyw1MTMyNCw1MTMyNSw1MTMyNiw1MTMyNyw1MTMzMCw1MTMzMiw1''@;'; put 'put ''MTMzNiw1MTMzNyw1MTMzOCw1MTM0Miw1MTM0Myw1MTM0NCw1MTM0NSw1MTM0Niw1MTM0Nyw1MTM0OSw1MTM1MCw1MTM1MSw1MTM1Miw1MTM1Myw1MTM1NCw1MTM1NSw1MTM1Niw1MTM1OCw1MTM2MCw1MTM2Miw1MTM2Myw1MTM2NCw1MTM2NSw1MTM2Niw1MTM2Nyw1MTM2OSw1MTM3MCw1MTM3''@;'; put 'put ''MSw1MTM3Miw1MTM3Myw1MTM3NCw1MTM3NSw1MTM3Niw1MTM3Nyw1MTM3OCw1MTM3OSw1MTM4MCw1MTM4MSw1MTM4Miw1MTM4Myw1MTM4NCw1MTM4NSw1MTM4Niw1MTM4Nyw1MTM5MCw1MTM5MSw1MTM5Miw1MTM5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTM5NCw1MTM5NSw1''@;'; put 'put ''MTM5Nyw1MTM5OCw1MTM5OSw1MTQwMSw1MTQwMiw1MTQwMyw1MTQwNSw1MTQwNiw1MTQwNyw1MTQwOCw1MTQwOSw1MTQxMCw1MTQxMSw1MTQxNCw1MTQxNiw1MTQxOCw1MTQxOSw1MTQyMCw1MTQyMSw1MTQyMiw1MTQyMyw1MTQyNiw1MTQyNyw1MTQyOSxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCw1MTQzMCw1MTQzMSw1MTQzMiw1MTQzMyw1MTQzNCw1MTQzNSw1MTQzNiw1MTQzNyw1MTQzOCw1MTQzOSw1MTQ0MCw1MTQ0MSw1MTQ0Miw1MTQ0Myw1MTQ0NCw1MTQ0Niw1MTQ0Nyw1MTQ0OCw1MTQ0OSw1MTQ1MCw1MTQ1MSw1MTQ1NCw1MTQ1NSw1MTQ1Nyw1MTQ1OCw1MTQ1OSw1''@;'; put 'put ''MTQ2Myw1MTQ2NCw1MTQ2NSw1MTQ2Niw1MTQ2Nyw1MTQ3MCwxMjI4OCwxMjI4OSwxMjI5MCwxODMsODIyOSw4MjMwLDE2OCwxMjI5MSwxNzMsODIxMyw4NzQxLDY1MzQwLDg3NjQsODIxNiw4MjE3LDgyMjAsODIyMSwxMjMwOCwxMjMwOSwxMjI5NiwxMjI5NywxMjI5OCwxMjI5OSwxMjMwMCwx''@;'; put 'put ''MjMwMSwxMjMwMiwxMjMwMywxMjMwNCwxMjMwNSwxNzcsMjE1LDI0Nyw4ODAwLDg4MDQsODgwNSw4NzM0LDg3NTYsMTc2LDgyNDIsODI0Myw4NDUxLDg0OTEsNjU1MDQsNjU1MDUsNjU1MDksOTc5NCw5NzkyLDg3MzYsODg2OSw4OTc4LDg3MDYsODcxMSw4ODAxLDg3ODYsMTY3LDgyNTEsOTcz''@;'; put 'put ''NCw5NzMzLDk2NzUsOTY3OSw5Njc4LDk2NzEsOTY3MCw5NjMzLDk2MzIsOTY1MSw5NjUwLDk2NjEsOTY2MCw4NTk0LDg1OTIsODU5Myw4NTk1LDg1OTYsMTIzMDcsODgxMCw4ODExLDg3MzAsODc2NSw4NzMzLDg3NTcsODc0Nyw4NzQ4LDg3MTIsODcxNSw4ODM4LDg4MzksODgzNCw4ODM1LDg3''@;'; put 'put ''NDYsODc0NSw4NzQzLDg3NDQsNjU1MDYsNTE0NzIsNTE0NzQsNTE0NzUsNTE0NzYsNTE0NzcsNTE0NzgsNTE0NzksNTE0ODEsNTE0ODIsNTE0ODMsNTE0ODQsNTE0ODUsNTE0ODYsNTE0ODcsNTE0ODgsNTE0ODksNTE0OTAsNTE0OTEsNTE0OTIsNTE0OTMsNTE0OTQsNTE0OTUsNTE0OTYsNTE0''@;'; put 'put ''OTcsNTE0OTgsNTE0OTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1MDEsNTE1MDIsNTE1MDMsNTE1MDQsNTE1MDUsNTE1MDYsNTE1MDcsNTE1MDksNTE1MTAsNTE1MTEsNTE1MTIsNTE1MTMsNTE1MTQsNTE1MTUsNTE1MTYsNTE1MTcsNTE1MTgsNTE1MTksNTE1MjAsNTE1MjEs''@;'; put 'put ''NTE1MjIsNTE1MjMsNTE1MjQsNTE1MjUsNTE1MjYsNTE1MjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1MjgsNTE1MjksNTE1MzAsNTE1MzEsNTE1MzIsNTE1MzMsNTE1MzQsNTE1MzUsNTE1MzgsNTE1MzksNTE1NDEsNTE1NDIsNTE1NDMsNTE1NDUsNTE1NDYsNTE1NDcsNTE1''@;'; put 'put ''NDgsNTE1NDksNTE1NTAsNTE1NTEsNTE1NTQsNTE1NTYsNTE1NTcsNTE1NTgsNTE1NTksNTE1NjAsNTE1NjEsNTE1NjIsNTE1NjMsNTE1NjUsNTE1NjYsNTE1NjcsODY1OCw4NjYwLDg3MDQsODcwNywxODAsNjUzNzQsNzExLDcyOCw3MzMsNzMwLDcyOSwxODQsNzMxLDE2MSwxOTEsNzIwLDg3''@;'; put 'put ''NTAsODcyMSw4NzE5LDE2NCw4NDU3LDgyNDAsOTY2NSw5NjY0LDk2NTUsOTY1NCw5ODI4LDk4MjQsOTgyNSw5ODI5LDk4MzEsOTgyNyw4ODU3LDk2NzIsOTYzNSw5NjgwLDk2ODEsOTYxOCw5NjM2LDk2MzcsOTY0MCw5NjM5LDk2MzgsOTY0MSw5ODMyLDk3NDMsOTc0Miw5NzU2LDk3NTgsMTgy''@;'; put 'put ''LDgyMjQsODIyNSw4NTk3LDg1OTksODYwMSw4NTk4LDg2MDAsOTgzNyw5ODMzLDk4MzQsOTgzNiwxMjkyNywxMjgyOCw4NDcwLDEzMjU1LDg0ODIsMTMyNTAsMTMyNzIsODQ4MSw4MzY0LDE3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE1NjksNTE1NzAsNTE1NzEsNTE1NzMsNTE1NzQsNTE1NzUsNTE1NzYsNTE1NzcsNTE1NzgsNTE1NzksNTE1ODEsNTE1ODIsNTE1ODMsNTE1ODQsNTE1ODUsNTE1ODYsNTE1ODcsNTE1''@;'; put 'put ''ODgsNTE1ODksNTE1OTAsNTE1OTEsNTE1OTQsNTE1OTUsNTE1OTcsNTE1OTgsNTE1OTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE2MDEsNTE2MDIsNTE2MDMsNTE2MDQsNTE2MDUsNTE2MDYsNTE2MDcsNTE2MTAsNTE2MTIsNTE2MTQsNTE2MTUsNTE2MTYsNTE2MTcsNTE2MTgs''@;'; put 'put ''NTE2MTksNTE2MjAsNTE2MjEsNTE2MjIsNTE2MjMsNTE2MjQsNTE2MjUsNTE2MjYsNTE2MjcsNTE2MjgsNTE2MjksNTE2MzAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE2MzEsNTE2MzIsNTE2MzMsNTE2MzQsNTE2MzUsNTE2MzYsNTE2MzcsNTE2MzgsNTE2MzksNTE2NDAsNTE2''@;'; put 'put ''NDEsNTE2NDIsNTE2NDMsNTE2NDQsNTE2NDUsNTE2NDYsNTE2NDcsNTE2NTAsNTE2NTEsNTE2NTMsNTE2NTQsNTE2NTcsNTE2NTksNTE2NjAsNTE2NjEsNTE2NjIsNTE2NjMsNTE2NjYsNTE2NjgsNTE2NzEsNTE2NzIsNTE2NzUsNjUyODEsNjUyODIsNjUyODMsNjUyODQsNjUyODUsNjUyODYs''@;'; put 'put ''NjUyODcsNjUyODgsNjUyODksNjUyOTAsNjUyOTEsNjUyOTIsNjUyOTMsNjUyOTQsNjUyOTUsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsNjUzMDYsNjUzMDcsNjUzMDgsNjUzMDksNjUzMTAsNjUzMTEsNjUzMTIsNjUzMTMsNjUz''@;'; put 'put ''MTQsNjUzMTUsNjUzMTYsNjUzMTcsNjUzMTgsNjUzMTksNjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUzMzYsNjUzMzcsNjUzMzgsNjUzMzksNjU1MTAsNjUzNDEs''@;'; put 'put ''NjUzNDIsNjUzNDMsNjUzNDQsNjUzNDUsNjUzNDYsNjUzNDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQsNjUzNjUsNjUzNjYsNjUzNjcsNjUzNjgsNjUz''@;'; put 'put ''NjksNjUzNzAsNjUzNzEsNjUzNzIsNjUzNzMsNjU1MDcsNTE2NzgsNTE2NzksNTE2ODEsNTE2ODMsNTE2ODUsNTE2ODYsNTE2ODgsNTE2ODksNTE2OTAsNTE2OTEsNTE2OTQsNTE2OTgsNTE2OTksNTE3MDAsNTE3MDEsNTE3MDIsNTE3MDMsNTE3MDYsNTE3MDcsNTE3MDksNTE3MTAsNTE3MTEs''@;'; put 'put ''NTE3MTMsNTE3MTQsNTE3MTUsNTE3MTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE3MTcsNTE3MTgsNTE3MTksNTE3MjIsNTE3MjYsNTE3MjcsNTE3MjgsNTE3MjksNTE3MzAsNTE3MzEsNTE3MzMsNTE3MzQsNTE3MzUsNTE3MzcsNTE3MzgsNTE3MzksNTE3NDAsNTE3NDEsNTE3''@;'; put 'put ''NDIsNTE3NDMsNTE3NDQsNTE3NDUsNTE3NDYsNTE3NDcsNTE3NDgsNTE3NDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE3NTAsNTE3NTEsNTE3NTIsNTE3NTQsNTE3NTUsNTE3NTYsNTE3NTcsNTE3NTgsNTE3NTksNTE3NjAsNTE3NjEsNTE3NjIsNTE3NjMsNTE3NjQsNTE3NjUs''@;'; put 'put ''NTE3NjYsNTE3NjcsNTE3NjgsNTE3NjksNTE3NzAsNTE3NzEsNTE3NzIsNTE3NzMsNTE3NzQsNTE3NzUsNTE3NzYsNTE3NzcsNTE3NzgsNTE3NzksNTE3ODAsNTE3ODEsNTE3ODIsMTI1OTMsMTI1OTQsMTI1OTUsMTI1OTYsMTI1OTcsMTI1OTgsMTI1OTksMTI2MDAsMTI2MDEsMTI2MDIsMTI2''@;'; put 'put ''MDMsMTI2MDQsMTI2MDUsMTI2MDYsMTI2MDcsMTI2MDgsMTI2MDksMTI2MTAsMTI2MTEsMTI2MTIsMTI2MTMsMTI2MTQsMTI2MTUsMTI2MTYsMTI2MTcsMTI2MTgsMTI2MTksMTI2MjAsMTI2MjEsMTI2MjIsMTI2MjMsMTI2MjQsMTI2MjUsMTI2MjYsMTI2MjcsMTI2MjgsMTI2MjksMTI2MzAs''@;'; put 'put ''MTI2MzEsMTI2MzIsMTI2MzMsMTI2MzQsMTI2MzUsMTI2MzYsMTI2MzcsMTI2MzgsMTI2MzksMTI2NDAsMTI2NDEsMTI2NDIsMTI2NDMsMTI2NDQsMTI2NDUsMTI2NDYsMTI2NDcsMTI2NDgsMTI2NDksMTI2NTAsMTI2NTEsMTI2NTIsMTI2NTMsMTI2NTQsMTI2NTUsMTI2NTYsMTI2NTcsMTI2''@;'; put 'put ''NTgsMTI2NTksMTI2NjAsMTI2NjEsMTI2NjIsMTI2NjMsMTI2NjQsMTI2NjUsMTI2NjYsMTI2NjcsMTI2NjgsMTI2NjksMTI2NzAsMTI2NzEsMTI2NzIsMTI2NzMsMTI2NzQsMTI2NzUsMTI2NzYsMTI2NzcsMTI2NzgsMTI2NzksMTI2ODAsMTI2ODEsMTI2ODIsMTI2ODMsMTI2ODQsMTI2ODUs''@;'; put 'put ''MTI2ODYsNTE3ODMsNTE3ODQsNTE3ODUsNTE3ODYsNTE3ODcsNTE3OTAsNTE3OTEsNTE3OTMsNTE3OTQsNTE3OTUsNTE3OTcsNTE3OTgsNTE3OTksNTE4MDAsNTE4MDEsNTE4MDIsNTE4MDMsNTE4MDYsNTE4MTAsNTE4MTEsNTE4MTIsNTE4MTMsNTE4MTQsNTE4MTUsNTE4MTcsNTE4MTgsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE4MTksNTE4MjAsNTE4MjEsNTE4MjIsNTE4MjMsNTE4MjQsNTE4MjUsNTE4MjYsNTE4MjcsNTE4MjgsNTE4MjksNTE4MzAsNTE4MzEsNTE4MzIsNTE4MzMsNTE4MzQsNTE4MzUsNTE4MzYsNTE4MzgsNTE4MzksNTE4NDAsNTE4NDEsNTE4NDIs''@;'; put 'put ''NTE4NDMsNTE4NDUsNTE4NDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTE4NDcsNTE4NDgsNTE4NDksNTE4NTAsNTE4NTEsNTE4NTIsNTE4NTMsNTE4NTQsNTE4NTUsNTE4NTYsNTE4NTcsNTE4NTgsNTE4NTksNTE4NjAsNTE4NjEsNTE4NjIsNTE4NjMsNTE4NjUsNTE4NjYsNTE4''@;'; put 'put ''NjcsNTE4NjgsNTE4NjksNTE4NzAsNTE4NzEsNTE4NzIsNTE4NzMsNTE4NzQsNTE4NzUsNTE4NzYsNTE4NzcsNTE4NzgsNTE4NzksODU2MCw4NTYxLDg1NjIsODU2Myw4NTY0LDg1NjUsODU2Niw4NTY3LDg1NjgsODU2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODU0NCw4NTQ1LDg1NDYs''@;'; put 'put ''ODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5MjYsOTI3LDkyOCw5MjksOTMxLDkzMiw5MzMsOTM0LDkzNSw5MzYsOTM3''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCw1MTg4MCw1MTg4MSw1MTg4Miw1MTg4Myw1MTg4NCw1MTg4NSw1MTg4Niw1MTg4Nyw1MTg4OCw1MTg4OSw1MTg5MCw1MTg5MSw1MTg5Miw1MTg5Myw1MTg5NCw1MTg5NSw1MTg5Niw1MTg5Nyw1MTg5OCw1MTg5OSw1MTkwMiw1MTkwMyw1MTkwNSw1MTkwNiw1MTkwNyw1MTkwOSxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTkxMCw1MTkxMSw1MTkxMiw1MTkxMyw1MTkxNCw1MTkxNSw1MTkxOCw1MTkyMCw1MTkyMiw1MTkyNCw1MTkyNSw1MTkyNiw1MTkyNyw1MTkzMCw1MTkzMSw1MTkzMiw1MTkzMyw1MTkzNCw1MTkzNSw1MTkzNyw1MTkzOCw1MTkzOSw1MTk0MCw1MTk0''@;'; put 'put ''MSw1MTk0Miw1MTk0MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MTk0NCw1MTk0NSw1MTk0Niw1MTk0Nyw1MTk0OSw1MTk1MCw1MTk1MSw1MTk1Miw1MTk1Myw1MTk1NCw1MTk1NSw1MTk1Nyw1MTk1OCw1MTk1OSw1MTk2MCw1MTk2MSw1MTk2Miw1MTk2Myw1MTk2NCw1MTk2NSw1''@;'; put 'put ''MTk2Niw1MTk2Nyw1MTk2OCw1MTk2OSw1MTk3MCw1MTk3MSw1MTk3Miw1MTk3Myw1MTk3NCw1MTk3NSw1MTk3Nyw1MTk3OCw5NDcyLDk0NzQsOTQ4NCw5NDg4LDk0OTYsOTQ5Miw5NTAwLDk1MTYsOTUwOCw5NTI0LDk1MzIsOTQ3Myw5NDc1LDk0ODcsOTQ5MSw5NDk5LDk0OTUsOTUwNyw5NTIz''@;'; put 'put ''LDk1MTUsOTUzMSw5NTQ3LDk1MDQsOTUxOSw5NTEyLDk1MjcsOTUzNSw5NTAxLDk1MjAsOTUwOSw5NTI4LDk1MzgsOTQ5MCw5NDg5LDk0OTgsOTQ5Nyw5NDk0LDk0OTMsOTQ4Niw5NDg1LDk1MDIsOTUwMyw5NTA1LDk1MDYsOTUxMCw5NTExLDk1MTMsOTUxNCw5NTE3LDk1MTgsOTUyMSw5NTIy''@;'; put 'put ''LDk1MjUsOTUyNiw5NTI5LDk1MzAsOTUzMyw5NTM0LDk1MzYsOTUzNyw5NTM5LDk1NDAsOTU0MSw5NTQyLDk1NDMsOTU0NCw5NTQ1LDk1NDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUxOTc5LDUxOTgwLDUxOTgxLDUxOTgyLDUxOTgzLDUxOTg1LDUxOTg2LDUxOTg3LDUxOTg5LDUxOTkwLDUxOTkxLDUxOTkzLDUxOTk0LDUxOTk1LDUxOTk2LDUxOTk3LDUxOTk4LDUxOTk5LDUyMDAyLDUyMDAz''@;'; put 'put ''LDUyMDA0LDUyMDA1LDUyMDA2LDUyMDA3LDUyMDA4LDUyMDA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMDEwLDUyMDExLDUyMDEyLDUyMDEzLDUyMDE0LDUyMDE1LDUyMDE2LDUyMDE3LDUyMDE4LDUyMDE5LDUyMDIwLDUyMDIxLDUyMDIyLDUyMDIzLDUyMDI0LDUyMDI1LDUy''@;'; put 'put ''MDI2LDUyMDI3LDUyMDI4LDUyMDI5LDUyMDMwLDUyMDMxLDUyMDMyLDUyMDM0LDUyMDM1LDUyMDM2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMDM3LDUyMDM4LDUyMDM5LDUyMDQyLDUyMDQzLDUyMDQ1LDUyMDQ2LDUyMDQ3LDUyMDQ5LDUyMDUwLDUyMDUxLDUyMDUyLDUyMDUz''@;'; put 'put ''LDUyMDU0LDUyMDU1LDUyMDU4LDUyMDU5LDUyMDYwLDUyMDYyLDUyMDYzLDUyMDY0LDUyMDY1LDUyMDY2LDUyMDY3LDUyMDY5LDUyMDcwLDUyMDcxLDUyMDcyLDUyMDczLDUyMDc0LDUyMDc1LDUyMDc2LDEzMjA1LDEzMjA2LDEzMjA3LDg0NjcsMTMyMDgsMTMyNTIsMTMyMTksMTMyMjAsMTMy''@;'; put 'put ''MjEsMTMyMjIsMTMyMDksMTMyMTAsMTMyMTEsMTMyMTIsMTMyMTMsMTMyMTQsMTMyMTUsMTMyMTYsMTMyMTcsMTMyMTgsMTMyNTgsMTMxOTcsMTMxOTgsMTMxOTksMTMyNjMsMTMxOTIsMTMxOTMsMTMyNTYsMTMyMjMsMTMyMjQsMTMyMzIsMTMyMzMsMTMyMzQsMTMyMzUsMTMyMzYsMTMyMzcs''@;'; put 'put ''MTMyMzgsMTMyMzksMTMyNDAsMTMyNDEsMTMxODQsMTMxODUsMTMxODYsMTMxODcsMTMxODgsMTMyNDIsMTMyNDMsMTMyNDQsMTMyNDUsMTMyNDYsMTMyNDcsMTMyMDAsMTMyMDEsMTMyMDIsMTMyMDMsMTMyMDQsODQ4NiwxMzI0OCwxMzI0OSwxMzE5NCwxMzE5NSwxMzE5NiwxMzI3MCwxMzI1''@;'; put 'put ''MywxMzIyOSwxMzIzMCwxMzIzMSwxMzI3NSwxMzIyNSwxMzIyNiwxMzIyNywxMzIyOCwxMzI3NywxMzI2NCwxMzI2NywxMzI1MSwxMzI1NywxMzI3NiwxMzI1NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCw1MjA3Nyw1MjA3OCw1MjA3OSw1MjA4MCw1MjA4MSw1MjA4Miw1MjA4Myw1MjA4NCw1MjA4NSw1MjA4Niw1MjA4Nyw1MjA5MCw1MjA5MSw1MjA5Miw1MjA5Myw1MjA5NCw1MjA5NSw1MjA5Niw1MjA5Nyw1MjA5OCw1MjA5OSw1MjEwMCw1MjEwMSw1MjEwMiw1MjEwMyw1MjEwNCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjEwNSw1MjEwNiw1MjEwNyw1MjEwOCw1MjEwOSw1MjExMCw1MjExMSw1MjExMiw1MjExMyw1MjExNCw1MjExNSw1MjExNiw1MjExNyw1MjExOCw1MjExOSw1MjEyMCw1MjEyMSw1MjEyMiw1MjEyMyw1MjEyNSw1MjEyNiw1MjEyNyw1MjEyOCw1MjEy''@;'; put 'put ''OSw1MjEzMCw1MjEzMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjEzMiw1MjEzMyw1MjEzNCw1MjEzNSw1MjEzNiw1MjEzNyw1MjEzOCw1MjEzOSw1MjE0MCw1MjE0MSw1MjE0Miw1MjE0Myw1MjE0NCw1MjE0NSw1MjE0Niw1MjE0Nyw1MjE0OCw1MjE0OSw1MjE1MCw1MjE1MSw1''@;'; put 'put ''MjE1Myw1MjE1NCw1MjE1NSw1MjE1Niw1MjE1Nyw1MjE1OCw1MjE1OSw1MjE2MCw1MjE2MSw1MjE2Miw1MjE2Myw1MjE2NCwxOTgsMjA4LDE3MCwyOTQsbnVsbCwzMDYsbnVsbCwzMTksMzIxLDIxNiwzMzgsMTg2LDIyMiwzNTgsMzMwLG51bGwsMTI4OTYsMTI4OTcsMTI4OTgsMTI4OTksMTI5''@;'; put 'put ''MDAsMTI5MDEsMTI5MDIsMTI5MDMsMTI5MDQsMTI5MDUsMTI5MDYsMTI5MDcsMTI5MDgsMTI5MDksMTI5MTAsMTI5MTEsMTI5MTIsMTI5MTMsMTI5MTQsMTI5MTUsMTI5MTYsMTI5MTcsMTI5MTgsMTI5MTksMTI5MjAsMTI5MjEsMTI5MjIsMTI5MjMsOTQyNCw5NDI1LDk0MjYsOTQyNyw5NDI4''@;'; put 'put ''LDk0MjksOTQzMCw5NDMxLDk0MzIsOTQzMyw5NDM0LDk0MzUsOTQzNiw5NDM3LDk0MzgsOTQzOSw5NDQwLDk0NDEsOTQ0Miw5NDQzLDk0NDQsOTQ0NSw5NDQ2LDk0NDcsOTQ0OCw5NDQ5LDkzMTIsOTMxMyw5MzE0LDkzMTUsOTMxNiw5MzE3LDkzMTgsOTMxOSw5MzIwLDkzMjEsOTMyMiw5MzIz''@;'; put 'put ''LDkzMjQsOTMyNSw5MzI2LDE4OSw4NTMxLDg1MzIsMTg4LDE5MCw4NTM5LDg1NDAsODU0MSw4NTQyLDUyMTY1LDUyMTY2LDUyMTY3LDUyMTY4LDUyMTY5LDUyMTcwLDUyMTcxLDUyMTcyLDUyMTczLDUyMTc0LDUyMTc1LDUyMTc2LDUyMTc3LDUyMTc4LDUyMTc5LDUyMTgxLDUyMTgyLDUyMTgz''@;'; put 'put ''LDUyMTg0LDUyMTg1LDUyMTg2LDUyMTg3LDUyMTg4LDUyMTg5LDUyMTkwLDUyMTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMTkyLDUyMTkzLDUyMTk0LDUyMTk1LDUyMTk3LDUyMTk4LDUyMjAwLDUyMjAyLDUyMjAzLDUyMjA0LDUyMjA1LDUyMjA2LDUyMjA3LDUyMjA4LDUy''@;'; put 'put ''MjA5LDUyMjEwLDUyMjExLDUyMjEyLDUyMjEzLDUyMjE0LDUyMjE1LDUyMjE2LDUyMjE3LDUyMjE4LDUyMjE5LDUyMjIwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMjIxLDUyMjIyLDUyMjIzLDUyMjI0LDUyMjI1LDUyMjI2LDUyMjI3LDUyMjI4LDUyMjI5LDUyMjMwLDUyMjMx''@;'; put 'put ''LDUyMjMyLDUyMjMzLDUyMjM0LDUyMjM1LDUyMjM4LDUyMjM5LDUyMjQxLDUyMjQyLDUyMjQzLDUyMjQ1LDUyMjQ2LDUyMjQ3LDUyMjQ4LDUyMjQ5LDUyMjUwLDUyMjUxLDUyMjU0LDUyMjU1LDUyMjU2LDUyMjU5LDUyMjYwLDIzMCwyNzMsMjQwLDI5NSwzMDUsMzA3LDMxMiwzMjAsMzIyLDI0''@;'; put 'put ''OCwzMzksMjIzLDI1NCwzNTksMzMxLDMyOSwxMjgwMCwxMjgwMSwxMjgwMiwxMjgwMywxMjgwNCwxMjgwNSwxMjgwNiwxMjgwNywxMjgwOCwxMjgwOSwxMjgxMCwxMjgxMSwxMjgxMiwxMjgxMywxMjgxNCwxMjgxNSwxMjgxNiwxMjgxNywxMjgxOCwxMjgxOSwxMjgyMCwxMjgyMSwxMjgyMiwx''@;'; put 'put ''MjgyMywxMjgyNCwxMjgyNSwxMjgyNiwxMjgyNyw5MzcyLDkzNzMsOTM3NCw5Mzc1LDkzNzYsOTM3Nyw5Mzc4LDkzNzksOTM4MCw5MzgxLDkzODIsOTM4Myw5Mzg0LDkzODUsOTM4Niw5Mzg3LDkzODgsOTM4OSw5MzkwLDkzOTEsOTM5Miw5MzkzLDkzOTQsOTM5NSw5Mzk2LDkzOTcsOTMzMiw5''@;'; put 'put ''MzMzLDkzMzQsOTMzNSw5MzM2LDkzMzcsOTMzOCw5MzM5LDkzNDAsOTM0MSw5MzQyLDkzNDMsOTM0NCw5MzQ1LDkzNDYsMTg1LDE3OCwxNzksODMwOCw4MzE5LDgzMjEsODMyMiw4MzIzLDgzMjQsNTIyNjEsNTIyNjIsNTIyNjYsNTIyNjcsNTIyNjksNTIyNzEsNTIyNzMsNTIyNzQsNTIyNzUs''@;'; put 'put ''NTIyNzYsNTIyNzcsNTIyNzgsNTIyNzksNTIyODIsNTIyODcsNTIyODgsNTIyODksNTIyOTAsNTIyOTEsNTIyOTQsNTIyOTUsNTIyOTcsNTIyOTgsNTIyOTksNTIzMDEsNTIzMDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIzMDMsNTIzMDQsNTIzMDUsNTIzMDYsNTIzMDcsNTIz''@;'; put 'put ''MTAsNTIzMTQsNTIzMTUsNTIzMTYsNTIzMTcsNTIzMTgsNTIzMTksNTIzMjEsNTIzMjIsNTIzMjMsNTIzMjUsNTIzMjcsNTIzMjksNTIzMzAsNTIzMzEsNTIzMzIsNTIzMzMsNTIzMzQsNTIzMzUsNTIzMzcsNTIzMzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTIzMzksNTIzNDAs''@;'; put 'put ''NTIzNDIsNTIzNDMsNTIzNDQsNTIzNDUsNTIzNDYsNTIzNDcsNTIzNDgsNTIzNDksNTIzNTAsNTIzNTEsNTIzNTIsNTIzNTMsNTIzNTQsNTIzNTUsNTIzNTYsNTIzNTcsNTIzNTgsNTIzNTksNTIzNjAsNTIzNjEsNTIzNjIsNTIzNjMsNTIzNjQsNTIzNjUsNTIzNjYsNTIzNjcsNTIzNjgsNTIz''@;'; put 'put ''NjksNTIzNzAsNTIzNzEsMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIsMTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYsMTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIzNzMsMTIzNzQsMTIzNzUsMTIzNzYsMTIzNzcs''@;'; put 'put ''MTIzNzgsMTIzNzksMTIzODAsMTIzODEsMTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgsMTIzODksMTIzOTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIzOTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAsMTI0MDEsMTI0MDIsMTI0MDMsMTI0MDQsMTI0''@;'; put 'put ''MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0MTYsMTI0MTcsMTI0MTgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0MjgsMTI0MjksMTI0MzAsMTI0MzEsMTI0MzIs''@;'; put 'put ''MTI0MzMsMTI0MzQsMTI0MzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyMzcyLDUyMzczLDUyMzc0LDUyMzc1LDUyMzc4LDUyMzc5LDUyMzgxLDUyMzgyLDUyMzgzLDUyMzg1LDUyMzg2LDUyMzg3LDUyMzg4LDUyMzg5LDUyMzkwLDUy''@;'; put 'put ''MzkxLDUyMzk0LDUyMzk4LDUyMzk5LDUyNDAwLDUyNDAxLDUyNDAyLDUyNDAzLDUyNDA2LDUyNDA3LDUyNDA5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNDEwLDUyNDExLDUyNDEzLDUyNDE0LDUyNDE1LDUyNDE2LDUyNDE3LDUyNDE4LDUyNDE5LDUyNDIyLDUyNDI0LDUyNDI2''@;'; put 'put ''LDUyNDI3LDUyNDI4LDUyNDI5LDUyNDMwLDUyNDMxLDUyNDMzLDUyNDM0LDUyNDM1LDUyNDM3LDUyNDM4LDUyNDM5LDUyNDQwLDUyNDQxLDUyNDQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNDQzLDUyNDQ0LDUyNDQ1LDUyNDQ2LDUyNDQ3LDUyNDQ4LDUyNDQ5LDUyNDUwLDUy''@;'; put 'put ''NDUxLDUyNDUzLDUyNDU0LDUyNDU1LDUyNDU2LDUyNDU3LDUyNDU4LDUyNDU5LDUyNDYxLDUyNDYyLDUyNDYzLDUyNDY1LDUyNDY2LDUyNDY3LDUyNDY4LDUyNDY5LDUyNDcwLDUyNDcxLDUyNDcyLDUyNDczLDUyNDc0LDUyNDc1LDUyNDc2LDUyNDc3LDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUy''@;'; put 'put ''LDEyNDUzLDEyNDU0LDEyNDU1LDEyNDU2LDEyNDU3LDEyNDU4LDEyNDU5LDEyNDYwLDEyNDYxLDEyNDYyLDEyNDYzLDEyNDY0LDEyNDY1LDEyNDY2LDEyNDY3LDEyNDY4LDEyNDY5LDEyNDcwLDEyNDcxLDEyNDcyLDEyNDczLDEyNDc0LDEyNDc1LDEyNDc2LDEyNDc3LDEyNDc4LDEyNDc5LDEy''@;'; put 'put ''NDgwLDEyNDgxLDEyNDgyLDEyNDgzLDEyNDg0LDEyNDg1LDEyNDg2LDEyNDg3LDEyNDg4LDEyNDg5LDEyNDkwLDEyNDkxLDEyNDkyLDEyNDkzLDEyNDk0LDEyNDk1LDEyNDk2LDEyNDk3LDEyNDk4LDEyNDk5LDEyNTAwLDEyNTAxLDEyNTAyLDEyNTAzLDEyNTA0LDEyNTA1LDEyNTA2LDEyNTA3''@;'; put 'put ''LDEyNTA4LDEyNTA5LDEyNTEwLDEyNTExLDEyNTEyLDEyNTEzLDEyNTE0LDEyNTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTIxLDEyNTIyLDEyNTIzLDEyNTI0LDEyNTI1LDEyNTI2LDEyNTI3LDEyNTI4LDEyNTI5LDEyNTMwLDEyNTMxLDEyNTMyLDEyNTMzLDEyNTM0LG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjQ3OCw1MjQ3OSw1MjQ4MCw1MjQ4Miw1MjQ4Myw1MjQ4NCw1MjQ4NSw1MjQ4Niw1MjQ4Nyw1MjQ5MCw1MjQ5MSw1MjQ5Myw1MjQ5NCw1MjQ5NSw1MjQ5Nyw1MjQ5OCw1MjQ5OSw1MjUwMCw1MjUwMSw1MjUwMiw1MjUwMyw1''@;'; put 'put ''MjUwNiw1MjUwOCw1MjUxMCw1MjUxMSw1MjUxMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjUxMyw1MjUxNCw1MjUxNSw1MjUxNyw1MjUxOCw1MjUxOSw1MjUyMSw1MjUyMiw1MjUyMyw1MjUyNSw1MjUyNiw1MjUyNyw1MjUyOCw1MjUyOSw1MjUzMCw1MjUzMSw1MjUzMiw1MjUz''@;'; put 'put ''Myw1MjUzNCw1MjUzNSw1MjUzNiw1MjUzOCw1MjUzOSw1MjU0MCw1MjU0MSw1MjU0MixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjU0Myw1MjU0NCw1MjU0NSw1MjU0Niw1MjU0Nyw1MjU0OCw1MjU0OSw1MjU1MCw1MjU1MSw1MjU1Miw1MjU1Myw1MjU1NCw1MjU1NSw1MjU1Niw1''@;'; put 'put ''MjU1Nyw1MjU1OCw1MjU1OSw1MjU2MCw1MjU2MSw1MjU2Miw1MjU2Myw1MjU2NCw1MjU2NSw1MjU2Niw1MjU2Nyw1MjU2OCw1MjU2OSw1MjU3MCw1MjU3MSw1MjU3Myw1MjU3NCw1MjU3NSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1''@;'; put 'put ''MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEw''@;'; put 'put ''MCwxMTAxLDExMDIsMTEwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNTc3LDUyNTc4LDUyNTc5LDUyNTgxLDUyNTgyLDUyNTgzLDUyNTg0LDUyNTg1LDUyNTg2LDUyNTg3LDUyNTkwLDUyNTkyLDUyNTk0LDUyNTk1''@;'; put 'put ''LDUyNTk2LDUyNTk3LDUyNTk4LDUyNTk5LDUyNjAxLDUyNjAyLDUyNjAzLDUyNjA0LDUyNjA1LDUyNjA2LDUyNjA3LDUyNjA4LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNjA5LDUyNjEwLDUyNjExLDUyNjEyLDUyNjEzLDUyNjE0LDUyNjE1LDUyNjE3LDUyNjE4LDUyNjE5LDUy''@;'; put 'put ''NjIwLDUyNjIxLDUyNjIyLDUyNjIzLDUyNjI0LDUyNjI1LDUyNjI2LDUyNjI3LDUyNjMwLDUyNjMxLDUyNjMzLDUyNjM0LDUyNjM1LDUyNjM3LDUyNjM4LDUyNjM5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyNjQwLDUyNjQxLDUyNjQyLDUyNjQzLDUyNjQ2LDUyNjQ4LDUyNjUw''@;'; put 'put ''LDUyNjUxLDUyNjUyLDUyNjUzLDUyNjU0LDUyNjU1LDUyNjU3LDUyNjU4LDUyNjU5LDUyNjYwLDUyNjYxLDUyNjYyLDUyNjYzLDUyNjY0LDUyNjY1LDUyNjY2LDUyNjY3LDUyNjY4LDUyNjY5LDUyNjcwLDUyNjcxLDUyNjcyLDUyNjczLDUyNjc0LDUyNjc1LDUyNjc3LG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI2NzgsNTI2NzksNTI2ODAsNTI2ODEsNTI2ODIsNTI2ODMsNTI2''@;'; put 'put ''ODUsNTI2ODYsNTI2ODcsNTI2ODksNTI2OTAsNTI2OTEsNTI2OTIsNTI2OTMsNTI2OTQsNTI2OTUsNTI2OTYsNTI2OTcsNTI2OTgsNTI2OTksNTI3MDAsNTI3MDEsNTI3MDIsNTI3MDMsNTI3MDQsNTI3MDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTI3MDYsNTI3MDcsNTI3MDgs''@;'; put 'put ''NTI3MDksNTI3MTAsNTI3MTEsNTI3MTMsNTI3MTQsNTI3MTUsNTI3MTcsNTI3MTgsNTI3MTksNTI3MjEsNTI3MjIsNTI3MjMsNTI3MjQsNTI3MjUsNTI3MjYsNTI3MjcsNTI3MzAsNTI3MzIsNTI3MzQsNTI3MzUsNTI3MzYsNTI3MzcsNTI3MzgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsNTI3MzksNTI3NDEsNTI3NDIsNTI3NDMsNTI3NDUsNTI3NDYsNTI3NDcsNTI3NDksNTI3NTAsNTI3NTEsNTI3NTIsNTI3NTMsNTI3NTQsNTI3NTUsNTI3NTcsNTI3NTgsNTI3NTksNTI3NjAsNTI3NjIsNTI3NjMsNTI3NjQsNTI3NjUsNTI3NjYsNTI3NjcsNTI3NzAsNTI3NzEsNTI3NzMs''@;'; put 'put ''NTI3NzQsNTI3NzUsNTI3NzcsNTI3NzgsNTI3NzksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCw1Mjc4MCw1Mjc4MSw1Mjc4Miw1Mjc4Myw1Mjc4Niw1Mjc4OCw1Mjc5MCw1Mjc5MSw1Mjc5Miw1Mjc5Myw1Mjc5NCw1Mjc5NSw1Mjc5Niw1Mjc5Nyw1Mjc5OCw1Mjc5OSw1MjgwMCw1MjgwMSw1MjgwMiw1MjgwMyw1MjgwNCw1MjgwNSw1MjgwNiw1MjgwNyw1MjgwOCw1MjgwOSxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MjgxMCw1MjgxMSw1MjgxMiw1MjgxMyw1MjgxNCw1MjgxNSw1MjgxNiw1MjgxNyw1MjgxOCw1MjgxOSw1MjgyMCw1MjgyMSw1MjgyMiw1MjgyMyw1MjgyNiw1MjgyNyw1MjgyOSw1MjgzMCw1MjgzNCw1MjgzNSw1MjgzNiw1MjgzNyw1MjgzOCw1''@;'; put 'put ''MjgzOSw1Mjg0Miw1Mjg0NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mjg0Niw1Mjg0Nyw1Mjg0OCw1Mjg0OSw1Mjg1MCw1Mjg1MSw1Mjg1NCw1Mjg1NSw1Mjg1Nyw1Mjg1OCw1Mjg1OSw1Mjg2MSw1Mjg2Miw1Mjg2Myw1Mjg2NCw1Mjg2NSw1Mjg2Niw1Mjg2Nyw1Mjg3MCw1Mjg3''@;'; put 'put ''Miw1Mjg3NCw1Mjg3NSw1Mjg3Niw1Mjg3Nyw1Mjg3OCw1Mjg3OSw1Mjg4Miw1Mjg4Myw1Mjg4NSw1Mjg4Niw1Mjg4Nyw1Mjg4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyODkwLDUyODkxLDUyODkyLDUyODkzLDUyODk0LDUyODk1LDUyODk4LDUyOTAyLDUyOTAzLDUyOTA0LDUyOTA1LDUyOTA2LDUyOTA3LDUyOTEwLDUyOTExLDUyOTEyLDUyOTEzLDUyOTE0LDUyOTE1LDUy''@;'; put 'put ''OTE2LDUyOTE3LDUyOTE4LDUyOTE5LDUyOTIwLDUyOTIxLDUyOTIyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyOTIzLDUyOTI0LDUyOTI1LDUyOTI2LDUyOTI3LDUyOTI4LDUyOTMwLDUyOTMxLDUyOTMyLDUyOTMzLDUyOTM0LDUyOTM1LDUyOTM2LDUyOTM3LDUyOTM4LDUyOTM5''@;'; put 'put ''LDUyOTQwLDUyOTQxLDUyOTQyLDUyOTQzLDUyOTQ0LDUyOTQ1LDUyOTQ2LDUyOTQ3LDUyOTQ4LDUyOTQ5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUyOTUwLDUyOTUxLDUyOTUyLDUyOTUzLDUyOTU0LDUyOTU1LDUyOTU2LDUyOTU3LDUyOTU4LDUyOTU5LDUyOTYwLDUyOTYxLDUy''@;'; put 'put ''OTYyLDUyOTYzLDUyOTY2LDUyOTY3LDUyOTY5LDUyOTcwLDUyOTczLDUyOTc0LDUyOTc1LDUyOTc2LDUyOTc3LDUyOTc4LDUyOTc5LDUyOTgyLDUyOTg2LDUyOTg3LDUyOTg4LDUyOTg5LDUyOTkwLDUyOTkxLDQ0MDMyLDQ0MDMzLDQ0MDM2LDQ0MDM5LDQ0MDQwLDQ0MDQxLDQ0MDQyLDQ0MDQ4''@;'; put 'put ''LDQ0MDQ5LDQ0MDUwLDQ0MDUxLDQ0MDUyLDQ0MDUzLDQ0MDU0LDQ0MDU1LDQ0MDU3LDQ0MDU4LDQ0MDU5LDQ0MDYwLDQ0MDYxLDQ0MDY0LDQ0MDY4LDQ0MDc2LDQ0MDc3LDQ0MDc5LDQ0MDgwLDQ0MDgxLDQ0MDg4LDQ0MDg5LDQ0MDkyLDQ0MDk2LDQ0MTA3LDQ0MTA5LDQ0MTE2LDQ0MTIwLDQ0''@;'; put 'put ''MTI0LDQ0MTQ0LDQ0MTQ1LDQ0MTQ4LDQ0MTUxLDQ0MTUyLDQ0MTU0LDQ0MTYwLDQ0MTYxLDQ0MTYzLDQ0MTY0LDQ0MTY1LDQ0MTY2LDQ0MTY5LDQ0MTcwLDQ0MTcxLDQ0MTcyLDQ0MTc2LDQ0MTgwLDQ0MTg4LDQ0MTg5LDQ0MTkxLDQ0MTkyLDQ0MTkzLDQ0MjAwLDQ0MjAxLDQ0MjAyLDQ0MjA0''@;'; put 'put ''LDQ0MjA3LDQ0MjA4LDQ0MjE2LDQ0MjE3LDQ0MjE5LDQ0MjIwLDQ0MjIxLDQ0MjI1LDQ0MjI4LDQ0MjMyLDQ0MjM2LDQ0MjQ1LDQ0MjQ3LDQ0MjU2LDQ0MjU3LDQ0MjYwLDQ0MjYzLDQ0MjY0LDQ0MjY2LDQ0MjY4LDQ0MjcxLDQ0MjcyLDQ0MjczLDQ0Mjc1LDQ0Mjc3LDQ0Mjc4LDQ0Mjg0LDQ0''@;'; put 'put ''Mjg1LDQ0Mjg4LDQ0MjkyLDQ0Mjk0LDUyOTk0LDUyOTk1LDUyOTk3LDUyOTk4LDUyOTk5LDUzMDAxLDUzMDAyLDUzMDAzLDUzMDA0LDUzMDA1LDUzMDA2LDUzMDA3LDUzMDEwLDUzMDEyLDUzMDE0LDUzMDE1LDUzMDE2LDUzMDE3LDUzMDE4LDUzMDE5LDUzMDIxLDUzMDIyLDUzMDIzLDUzMDI1''@;'; put 'put ''LDUzMDI2LDUzMDI3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMDI5LDUzMDMwLDUzMDMxLDUzMDMyLDUzMDMzLDUzMDM0LDUzMDM1LDUzMDM4LDUzMDQyLDUzMDQzLDUzMDQ0LDUzMDQ1LDUzMDQ2LDUzMDQ3LDUzMDQ5LDUzMDUwLDUzMDUxLDUzMDUyLDUzMDUzLDUzMDU0LDUz''@;'; put 'put ''MDU1LDUzMDU2LDUzMDU3LDUzMDU4LDUzMDU5LDUzMDYwLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMDYxLDUzMDYyLDUzMDYzLDUzMDY0LDUzMDY1LDUzMDY2LDUzMDY3LDUzMDY4LDUzMDY5LDUzMDcwLDUzMDcxLDUzMDcyLDUzMDczLDUzMDc0LDUzMDc1LDUzMDc4LDUzMDc5''@;'; put 'put ''LDUzMDgxLDUzMDgyLDUzMDgzLDUzMDg1LDUzMDg2LDUzMDg3LDUzMDg4LDUzMDg5LDUzMDkwLDUzMDkxLDUzMDk0LDUzMDk2LDUzMDk4LDUzMDk5LDUzMTAwLDQ0MzAwLDQ0MzAxLDQ0MzAzLDQ0MzA1LDQ0MzEyLDQ0MzE2LDQ0MzIwLDQ0MzI5LDQ0MzMyLDQ0MzMzLDQ0MzQwLDQ0MzQxLDQ0''@;'; put 'put ''MzQ0LDQ0MzQ4LDQ0MzU2LDQ0MzU3LDQ0MzU5LDQ0MzYxLDQ0MzY4LDQ0MzcyLDQ0Mzc2LDQ0Mzg1LDQ0Mzg3LDQ0Mzk2LDQ0Mzk3LDQ0NDAwLDQ0NDAzLDQ0NDA0LDQ0NDA1LDQ0NDA2LDQ0NDExLDQ0NDEyLDQ0NDEzLDQ0NDE1LDQ0NDE3LDQ0NDE4LDQ0NDI0LDQ0NDI1LDQ0NDI4LDQ0NDMy''@;'; put 'put ''LDQ0NDQ0LDQ0NDQ1LDQ0NDUyLDQ0NDcxLDQ0NDgwLDQ0NDgxLDQ0NDg0LDQ0NDg4LDQ0NDk2LDQ0NDk3LDQ0NDk5LDQ0NTA4LDQ0NTEyLDQ0NTE2LDQ0NTM2LDQ0NTM3LDQ0NTQwLDQ0NTQzLDQ0NTQ0LDQ0NTQ1LDQ0NTUyLDQ0NTUzLDQ0NTU1LDQ0NTU3LDQ0NTY0LDQ0NTkyLDQ0NTkzLDQ0''@;'; put 'put ''NTk2LDQ0NTk5LDQ0NjAwLDQ0NjAyLDQ0NjA4LDQ0NjA5LDQ0NjExLDQ0NjEzLDQ0NjE0LDQ0NjE4LDQ0NjIwLDQ0NjIxLDQ0NjIyLDQ0NjI0LDQ0NjI4LDQ0NjMwLDQ0NjM2LDQ0NjM3LDQ0NjM5LDQ0NjQwLDQ0NjQxLDQ0NjQ1LDQ0NjQ4LDQ0NjQ5LDQ0NjUyLDQ0NjU2LDQ0NjY0LDUzMTAx''@;'; put 'put ''LDUzMTAyLDUzMTAzLDUzMTA2LDUzMTA3LDUzMTA5LDUzMTEwLDUzMTExLDUzMTEzLDUzMTE0LDUzMTE1LDUzMTE2LDUzMTE3LDUzMTE4LDUzMTE5LDUzMTIxLDUzMTIyLDUzMTIzLDUzMTI0LDUzMTI2LDUzMTI3LDUzMTI4LDUzMTI5LDUzMTMwLDUzMTMxLDUzMTMzLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLDUzMTM0LDUzMTM1LDUzMTM2LDUzMTM3LDUzMTM4LDUzMTM5LDUzMTQwLDUzMTQxLDUzMTQyLDUzMTQzLDUzMTQ0LDUzMTQ1LDUzMTQ2LDUzMTQ3LDUzMTQ4LDUzMTQ5LDUzMTUwLDUzMTUxLDUzMTUyLDUzMTU0LDUzMTU1LDUzMTU2LDUzMTU3LDUzMTU4LDUzMTU5''@;'; put 'put ''LDUzMTYxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDUzMTYyLDUzMTYzLDUzMTY0LDUzMTY1LDUzMTY2LDUzMTY3LDUzMTY5LDUzMTcwLDUzMTcxLDUzMTcyLDUzMTczLDUzMTc0LDUzMTc1LDUzMTc2LDUzMTc3LDUzMTc4LDUzMTc5LDUzMTgwLDUzMTgxLDUzMTgyLDUzMTgzLDUz''@;'; put 'put ''MTg0LDUzMTg1LDUzMTg2LDUzMTg3LDUzMTg5LDUzMTkwLDUzMTkxLDUzMTkyLDUzMTkzLDUzMTk0LDUzMTk1LDQ0NjY1LDQ0NjY3LDQ0NjY4LDQ0NjY5LDQ0Njc2LDQ0Njc3LDQ0Njg0LDQ0NzMyLDQ0NzMzLDQ0NzM0LDQ0NzM2LDQ0NzQwLDQ0NzQ4LDQ0NzQ5LDQ0NzUxLDQ0NzUyLDQ0NzUz''@;'; put 'put ''LDQ0NzYwLDQ0NzYxLDQ0NzY0LDQ0Nzc2LDQ0Nzc5LDQ0NzgxLDQ0Nzg4LDQ0NzkyLDQ0Nzk2LDQ0ODA3LDQ0ODA4LDQ0ODEzLDQ0ODE2LDQ0ODQ0LDQ0ODQ1LDQ0ODQ4LDQ0ODUwLDQ0ODUyLDQ0ODYwLDQ0ODYxLDQ0ODYzLDQ0ODY1LDQ0ODY2LDQ0ODY3LDQ0ODcyLDQ0ODczLDQ0ODgwLDQ0''@;'; put 'put ''ODkyLDQ0ODkzLDQ0OTAwLDQ0OTAxLDQ0OTIxLDQ0OTI4LDQ0OTMyLDQ0OTM2LDQ0OTQ0LDQ0OTQ1LDQ0OTQ5LDQ0OTU2LDQ0OTg0LDQ0OTg1LDQ0OTg4LDQ0OTkyLDQ0OTk5LDQ1ZTMsNDUwMDEsNDUwMDMsNDUwMDUsNDUwMDYsNDUwMTIsNDUwMjAsNDUwMzIsNDUwMzMsNDUwNDAsNDUwNDEs''@;'; put 'put ''NDUwNDQsNDUwNDgsNDUwNTYsNDUwNTcsNDUwNjAsNDUwNjgsNDUwNzIsNDUwNzYsNDUwODQsNDUwODUsNDUwOTYsNDUxMjQsNDUxMjUsNDUxMjgsNDUxMzAsNDUxMzIsNDUxMzQsNDUxMzksNDUxNDAsNDUxNDEsNDUxNDMsNDUxNDUsNTMxOTYsNTMxOTcsNTMxOTgsNTMxOTksNTMyMDAsNTMy''@;'; put 'put ''MDEsNTMyMDIsNTMyMDMsNTMyMDQsNTMyMDUsNTMyMDYsNTMyMDcsNTMyMDgsNTMyMDksNTMyMTAsNTMyMTEsNTMyMTIsNTMyMTMsNTMyMTQsNTMyMTUsNTMyMTgsNTMyMTksNTMyMjEsNTMyMjIsNTMyMjMsNTMyMjUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMyMjYsNTMyMjcs''@;'; put 'put ''NTMyMjgsNTMyMjksNTMyMzAsNTMyMzEsNTMyMzQsNTMyMzYsNTMyMzgsNTMyMzksNTMyNDAsNTMyNDEsNTMyNDIsNTMyNDMsNTMyNDUsNTMyNDYsNTMyNDcsNTMyNDksNTMyNTAsNTMyNTEsNTMyNTMsNTMyNTQsNTMyNTUsNTMyNTYsNTMyNTcsNTMyNTgsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsNTMyNTksNTMyNjAsNTMyNjEsNTMyNjIsNTMyNjMsNTMyNjQsNTMyNjYsNTMyNjcsNTMyNjgsNTMyNjksNTMyNzAsNTMyNzEsNTMyNzMsNTMyNzQsNTMyNzUsNTMyNzYsNTMyNzcsNTMyNzgsNTMyNzksNTMyODAsNTMyODEsNTMyODIsNTMyODMsNTMyODQsNTMyODUsNTMyODYs''@;'; put 'put ''NTMyODcsNTMyODgsNTMyODksNTMyOTAsNTMyOTEsNTMyOTIsNDUxNDksNDUxODAsNDUxODEsNDUxODQsNDUxODgsNDUxOTYsNDUxOTcsNDUxOTksNDUyMDEsNDUyMDgsNDUyMDksNDUyMTAsNDUyMTIsNDUyMTUsNDUyMTYsNDUyMTcsNDUyMTgsNDUyMjQsNDUyMjUsNDUyMjcsNDUyMjgsNDUy''@;'; put 'put ''MjksNDUyMzAsNDUyMzEsNDUyMzMsNDUyMzUsNDUyMzYsNDUyMzcsNDUyNDAsNDUyNDQsNDUyNTIsNDUyNTMsNDUyNTUsNDUyNTYsNDUyNTcsNDUyNjQsNDUyNjUsNDUyNjgsNDUyNzIsNDUyODAsNDUyODUsNDUzMjAsNDUzMjEsNDUzMjMsNDUzMjQsNDUzMjgsNDUzMzAsNDUzMzEsNDUzMzYs''@;'; put 'put ''NDUzMzcsNDUzMzksNDUzNDAsNDUzNDEsNDUzNDcsNDUzNDgsNDUzNDksNDUzNTIsNDUzNTYsNDUzNjQsNDUzNjUsNDUzNjcsNDUzNjgsNDUzNjksNDUzNzYsNDUzNzcsNDUzODAsNDUzODQsNDUzOTIsNDUzOTMsNDUzOTYsNDUzOTcsNDU0MDAsNDU0MDQsNDU0MDgsNDU0MzIsNDU0MzMsNDU0''@;'; put 'put ''MzYsNDU0NDAsNDU0NDIsNDU0NDgsNDU0NDksNDU0NTEsNDU0NTMsNDU0NTgsNDU0NTksNDU0NjAsNDU0NjQsNDU0NjgsNDU0ODAsNDU1MTYsNDU1MjAsNDU1MjQsNDU1MzIsNDU1MzMsNTMyOTQsNTMyOTUsNTMyOTYsNTMyOTcsNTMyOTgsNTMyOTksNTMzMDIsNTMzMDMsNTMzMDUsNTMzMDYs''@;'; put 'put ''NTMzMDcsNTMzMDksNTMzMTAsNTMzMTEsNTMzMTIsNTMzMTMsNTMzMTQsNTMzMTUsNTMzMTgsNTMzMjAsNTMzMjIsNTMzMjMsNTMzMjQsNTMzMjUsNTMzMjYsNTMzMjcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMzMjksNTMzMzAsNTMzMzEsNTMzMzMsNTMzMzQsNTMzMzUsNTMz''@;'; put 'put ''MzcsNTMzMzgsNTMzMzksNTMzNDAsNTMzNDEsNTMzNDIsNTMzNDMsNTMzNDUsNTMzNDYsNTMzNDcsNTMzNDgsNTMzNDksNTMzNTAsNTMzNTEsNTMzNTIsNTMzNTMsNTMzNTQsNTMzNTUsNTMzNTgsNTMzNTksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTMzNjEsNTMzNjIsNTMzNjMs''@;'; put 'put ''NTMzNjUsNTMzNjYsNTMzNjcsNTMzNjgsNTMzNjksNTMzNzAsNTMzNzEsNTMzNzQsNTMzNzUsNTMzNzYsNTMzNzgsNTMzNzksNTMzODAsNTMzODEsNTMzODIsNTMzODMsNTMzODQsNTMzODUsNTMzODYsNTMzODcsNTMzODgsNTMzODksNTMzOTAsNTMzOTEsNTMzOTIsNTMzOTMsNTMzOTQsNTMz''@;'; put 'put ''OTUsNTMzOTYsNDU1MzUsNDU1NDQsNDU1NDUsNDU1NDgsNDU1NTIsNDU1NjEsNDU1NjMsNDU1NjUsNDU1NzIsNDU1NzMsNDU1NzYsNDU1NzksNDU1ODAsNDU1ODgsNDU1ODksNDU1OTEsNDU1OTMsNDU2MDAsNDU2MjAsNDU2MjgsNDU2NTYsNDU2NjAsNDU2NjQsNDU2NzIsNDU2NzMsNDU2ODQs''@;'; put 'put ''NDU2ODUsNDU2OTIsNDU3MDAsNDU3MDEsNDU3MDUsNDU3MTIsNDU3MTMsNDU3MTYsNDU3MjAsNDU3MjEsNDU3MjIsNDU3MjgsNDU3MjksNDU3MzEsNDU3MzMsNDU3MzQsNDU3MzgsNDU3NDAsNDU3NDQsNDU3NDgsNDU3NjgsNDU3NjksNDU3NzIsNDU3NzYsNDU3NzgsNDU3ODQsNDU3ODUsNDU3''@;'; put 'put ''ODcsNDU3ODksNDU3OTQsNDU3OTYsNDU3OTcsNDU3OTgsNDU4MDAsNDU4MDMsNDU4MDQsNDU4MDUsNDU4MDYsNDU4MDcsNDU4MTEsNDU4MTIsNDU4MTMsNDU4MTUsNDU4MTYsNDU4MTcsNDU4MTgsNDU4MTksNDU4MjMsNDU4MjQsNDU4MjUsNDU4MjgsNDU4MzIsNDU4NDAsNDU4NDEsNDU4NDMs''@;'; put 'put ''NDU4NDQsNDU4NDUsNDU4NTIsNDU5MDgsNDU5MDksNDU5MTAsNDU5MTIsNDU5MTUsNDU5MTYsNDU5MTgsNDU5MTksNDU5MjQsNDU5MjUsNTMzOTcsNTMzOTgsNTMzOTksNTM0MDAsNTM0MDEsNTM0MDIsNTM0MDMsNTM0MDQsNTM0MDUsNTM0MDYsNTM0MDcsNTM0MDgsNTM0MDksNTM0MTAsNTM0''@;'; put 'put ''MTEsNTM0MTQsNTM0MTUsNTM0MTcsNTM0MTgsNTM0MTksNTM0MjEsNTM0MjIsNTM0MjMsNTM0MjQsNTM0MjUsNTM0MjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM0MjcsNTM0MzAsNTM0MzIsNTM0MzQsNTM0MzUsNTM0MzYsNTM0MzcsNTM0MzgsNTM0MzksNTM0NDIsNTM0NDMs''@;'; put 'put ''NTM0NDUsNTM0NDYsNTM0NDcsNTM0NTAsNTM0NTEsNTM0NTIsNTM0NTMsNTM0NTQsNTM0NTUsNTM0NTgsNTM0NjIsNTM0NjMsNTM0NjQsNTM0NjUsNTM0NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM0NjcsNTM0NzAsNTM0NzEsNTM0NzMsNTM0NzQsNTM0NzUsNTM0NzcsNTM0''@;'; put 'put ''NzgsNTM0NzksNTM0ODAsNTM0ODEsNTM0ODIsNTM0ODMsNTM0ODYsNTM0OTAsNTM0OTEsNTM0OTIsNTM0OTMsNTM0OTQsNTM0OTUsNTM0OTcsNTM0OTgsNTM0OTksNTM1MDAsNTM1MDEsNTM1MDIsNTM1MDMsNTM1MDQsNTM1MDUsNTM1MDYsNTM1MDcsNTM1MDgsNDU5MjcsNDU5MjksNDU5MzEs''@;'; put 'put ''NDU5MzQsNDU5MzYsNDU5MzcsNDU5NDAsNDU5NDQsNDU5NTIsNDU5NTMsNDU5NTUsNDU5NTYsNDU5NTcsNDU5NjQsNDU5NjgsNDU5NzIsNDU5ODQsNDU5ODUsNDU5OTIsNDU5OTYsNDYwMjAsNDYwMjEsNDYwMjQsNDYwMjcsNDYwMjgsNDYwMzAsNDYwMzIsNDYwMzYsNDYwMzcsNDYwMzksNDYw''@;'; put 'put ''NDEsNDYwNDMsNDYwNDUsNDYwNDgsNDYwNTIsNDYwNTYsNDYwNzYsNDYwOTYsNDYxMDQsNDYxMDgsNDYxMTIsNDYxMjAsNDYxMjEsNDYxMjMsNDYxMzIsNDYxNjAsNDYxNjEsNDYxNjQsNDYxNjgsNDYxNzYsNDYxNzcsNDYxNzksNDYxODEsNDYxODgsNDYyMDgsNDYyMTYsNDYyMzcsNDYyNDQs''@;'; put 'put ''NDYyNDgsNDYyNTIsNDYyNjEsNDYyNjMsNDYyNjUsNDYyNzIsNDYyNzYsNDYyODAsNDYyODgsNDYyOTMsNDYzMDAsNDYzMDEsNDYzMDQsNDYzMDcsNDYzMDgsNDYzMTAsNDYzMTYsNDYzMTcsNDYzMTksNDYzMjEsNDYzMjgsNDYzNTYsNDYzNTcsNDYzNjAsNDYzNjMsNDYzNjQsNDYzNzIsNDYz''@;'; put 'put ''NzMsNDYzNzUsNDYzNzYsNDYzNzcsNDYzNzgsNDYzODQsNDYzODUsNDYzODgsNDYzOTIsNTM1MDksNTM1MTAsNTM1MTEsNTM1MTIsNTM1MTMsNTM1MTQsNTM1MTUsNTM1MTYsNTM1MTgsNTM1MTksNTM1MjAsNTM1MjEsNTM1MjIsNTM1MjMsNTM1MjQsNTM1MjUsNTM1MjYsNTM1MjcsNTM1Mjgs''@;'; put 'put ''NTM1MjksNTM1MzAsNTM1MzEsNTM1MzIsNTM1MzMsNTM1MzQsNTM1MzUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM1MzYsNTM1MzcsNTM1MzgsNTM1MzksNTM1NDAsNTM1NDEsNTM1NDIsNTM1NDMsNTM1NDQsNTM1NDUsNTM1NDYsNTM1NDcsNTM1NDgsNTM1NDksNTM1NTAsNTM1''@;'; put 'put ''NTEsNTM1NTQsNTM1NTUsNTM1NTcsNTM1NTgsNTM1NTksNTM1NjEsNTM1NjMsNTM1NjQsNTM1NjUsNTM1NjYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM1NjcsNTM1NzAsNTM1NzQsNTM1NzUsNTM1NzYsNTM1NzcsNTM1NzgsNTM1NzksNTM1ODIsNTM1ODMsNTM1ODUsNTM1ODYs''@;'; put 'put ''NTM1ODcsNTM1ODksNTM1OTAsNTM1OTEsNTM1OTIsNTM1OTMsNTM1OTQsNTM1OTUsNTM1OTgsNTM2MDAsNTM2MDIsNTM2MDMsNTM2MDQsNTM2MDUsNTM2MDYsNTM2MDcsNTM2MDksNTM2MTAsNTM2MTEsNTM2MTMsNDY0MDAsNDY0MDEsNDY0MDMsNDY0MDQsNDY0MDUsNDY0MTEsNDY0MTIsNDY0''@;'; put 'put ''MTMsNDY0MTYsNDY0MjAsNDY0MjgsNDY0MjksNDY0MzEsNDY0MzIsNDY0MzMsNDY0OTYsNDY0OTcsNDY1MDAsNDY1MDQsNDY1MDYsNDY1MDcsNDY1MTIsNDY1MTMsNDY1MTUsNDY1MTYsNDY1MTcsNDY1MjMsNDY1MjQsNDY1MjUsNDY1MjgsNDY1MzIsNDY1NDAsNDY1NDEsNDY1NDMsNDY1NDQs''@;'; put 'put ''NDY1NDUsNDY1NTIsNDY1NzIsNDY2MDgsNDY2MDksNDY2MTIsNDY2MTYsNDY2MjksNDY2MzYsNDY2NDQsNDY2NjQsNDY2OTIsNDY2OTYsNDY3NDgsNDY3NDksNDY3NTIsNDY3NTYsNDY3NjMsNDY3NjQsNDY3NjksNDY4MDQsNDY4MzIsNDY4MzYsNDY4NDAsNDY4NDgsNDY4NDksNDY4NTMsNDY4''@;'; put 'put ''ODgsNDY4ODksNDY4OTIsNDY4OTUsNDY4OTYsNDY5MDQsNDY5MDUsNDY5MDcsNDY5MTYsNDY5MjAsNDY5MjQsNDY5MzIsNDY5MzMsNDY5NDQsNDY5NDgsNDY5NTIsNDY5NjAsNDY5NjEsNDY5NjMsNDY5NjUsNDY5NzIsNDY5NzMsNDY5NzYsNDY5ODAsNDY5ODgsNDY5ODksNDY5OTEsNDY5OTIs''@;'; put 'put ''NDY5OTMsNDY5OTQsNDY5OTgsNDY5OTksNTM2MTQsNTM2MTUsNTM2MTYsNTM2MTcsNTM2MTgsNTM2MTksNTM2MjAsNTM2MjEsNTM2MjIsNTM2MjMsNTM2MjQsNTM2MjUsNTM2MjYsNTM2MjcsNTM2MjksNTM2MzAsNTM2MzEsNTM2MzIsNTM2MzMsNTM2MzQsNTM2MzUsNTM2MzcsNTM2MzgsNTM2''@;'; put 'put ''MzksNTM2NDEsNTM2NDIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM2NDMsNTM2NDQsNTM2NDUsNTM2NDYsNTM2NDcsNTM2NDgsNTM2NDksNTM2NTAsNTM2NTEsNTM2NTIsNTM2NTMsNTM2NTQsNTM2NTUsNTM2NTYsNTM2NTcsNTM2NTgsNTM2NTksNTM2NjAsNTM2NjEsNTM2NjIs''@;'; put 'put ''NTM2NjMsNTM2NjYsNTM2NjcsNTM2NjksNTM2NzAsNTM2NzEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTM2NzMsNTM2NzQsNTM2NzUsNTM2NzYsNTM2NzcsNTM2NzgsNTM2NzksNTM2ODIsNTM2ODQsNTM2ODYsNTM2ODcsNTM2ODgsNTM2ODksNTM2OTEsNTM2OTMsNTM2OTQsNTM2''@;'; put 'put ''OTUsNTM2OTcsNTM2OTgsNTM2OTksNTM3MDAsNTM3MDEsNTM3MDIsNTM3MDMsNTM3MDQsNTM3MDUsNTM3MDYsNTM3MDcsNTM3MDgsNTM3MDksNTM3MTAsNTM3MTEsNDdlMyw0NzAwMSw0NzAwNCw0NzAwOCw0NzAxNiw0NzAxNyw0NzAxOSw0NzAyMCw0NzAyMSw0NzAyOCw0NzAyOSw0NzAzMiw0''@;'; put 'put ''NzA0Nyw0NzA0OSw0NzA4NCw0NzA4NSw0NzA4OCw0NzA5Miw0NzEwMCw0NzEwMSw0NzEwMyw0NzEwNCw0NzEwNSw0NzExMSw0NzExMiw0NzExMyw0NzExNiw0NzEyMCw0NzEyOCw0NzEyOSw0NzEzMSw0NzEzMyw0NzE0MCw0NzE0MSw0NzE0NCw0NzE0OCw0NzE1Niw0NzE1Nyw0NzE1OSw0NzE2''@;'; put 'put ''MCw0NzE2MSw0NzE2OCw0NzE3Miw0NzE4NSw0NzE4Nyw0NzE5Niw0NzE5Nyw0NzIwMCw0NzIwNCw0NzIxMiw0NzIxMyw0NzIxNSw0NzIxNyw0NzIyNCw0NzIyOCw0NzI0NSw0NzI3Miw0NzI4MCw0NzI4NCw0NzI4OCw0NzI5Niw0NzI5Nyw0NzI5OSw0NzMwMSw0NzMwOCw0NzMxMiw0NzMxNiw0''@;'; put 'put ''NzMyNSw0NzMyNyw0NzMyOSw0NzMzNiw0NzMzNyw0NzM0MCw0NzM0NCw0NzM1Miw0NzM1Myw0NzM1NSw0NzM1Nyw0NzM2NCw0NzM4NCw0NzM5Miw0NzQyMCw0NzQyMSw0NzQyNCw0NzQyOCw0NzQzNiw0NzQzOSw0NzQ0MSw0NzQ0OCw0NzQ0OSw0NzQ1Miw0NzQ1Niw0NzQ2NCw0NzQ2NSw1Mzcx''@;'; put 'put ''Miw1MzcxMyw1MzcxNCw1MzcxNSw1MzcxNiw1MzcxNyw1MzcxOCw1MzcxOSw1MzcyMSw1MzcyMiw1MzcyMyw1MzcyNCw1MzcyNSw1MzcyNiw1MzcyNyw1MzcyOCw1MzcyOSw1MzczMCw1MzczMSw1MzczMiw1MzczMyw1MzczNCw1MzczNSw1MzczNiw1MzczNyw1MzczOCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCw1MzczOSw1Mzc0MCw1Mzc0MSw1Mzc0Miw1Mzc0Myw1Mzc0NCw1Mzc0NSw1Mzc0Niw1Mzc0Nyw1Mzc0OSw1Mzc1MCw1Mzc1MSw1Mzc1Myw1Mzc1NCw1Mzc1NSw1Mzc1Niw1Mzc1Nyw1Mzc1OCw1Mzc1OSw1Mzc2MCw1Mzc2MSw1Mzc2Miw1Mzc2Myw1Mzc2NCw1Mzc2''@;'; put 'put ''NSw1Mzc2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzc2OCw1Mzc3MCw1Mzc3MSw1Mzc3Miw1Mzc3Myw1Mzc3NCw1Mzc3NSw1Mzc3Nyw1Mzc3OCw1Mzc3OSw1Mzc4MCw1Mzc4MSw1Mzc4Miw1Mzc4Myw1Mzc4NCw1Mzc4NSw1Mzc4Niw1Mzc4Nyw1Mzc4OCw1Mzc4OSw1Mzc5MCw1''@;'; put 'put ''Mzc5MSw1Mzc5Miw1Mzc5Myw1Mzc5NCw1Mzc5NSw1Mzc5Niw1Mzc5Nyw1Mzc5OCw1Mzc5OSw1MzgwMCw1MzgwMSw0NzQ2Nyw0NzQ2OSw0NzQ3Niw0NzQ3Nyw0NzQ4MCw0NzQ4NCw0NzQ5Miw0NzQ5Myw0NzQ5NSw0NzQ5Nyw0NzQ5OCw0NzUwMSw0NzUwMiw0NzUzMiw0NzUzMyw0NzUzNiw0NzU0''@;'; put 'put ''MCw0NzU0OCw0NzU0OSw0NzU1MSw0NzU1Myw0NzU2MCw0NzU2MSw0NzU2NCw0NzU2Niw0NzU2Nyw0NzU2OCw0NzU2OSw0NzU3MCw0NzU3Niw0NzU3Nyw0NzU3OSw0NzU4MSw0NzU4Miw0NzU4NSw0NzU4Nyw0NzU4OCw0NzU4OSw0NzU5Miw0NzU5Niw0NzYwNCw0NzYwNSw0NzYwNyw0NzYwOCw0''@;'; put 'put ''NzYwOSw0NzYxMCw0NzYxNiw0NzYxNyw0NzYyNCw0NzYzNyw0NzY3Miw0NzY3Myw0NzY3Niw0NzY4MCw0NzY4Miw0NzY4OCw0NzY4OSw0NzY5MSw0NzY5Myw0NzY5NCw0NzY5OSw0NzcwMCw0NzcwMSw0NzcwNCw0NzcwOCw0NzcxNiw0NzcxNyw0NzcxOSw0NzcyMCw0NzcyMSw0NzcyOCw0Nzcy''@;'; put 'put ''OSw0NzczMiw0NzczNiw0Nzc0Nyw0Nzc0OCw0Nzc0OSw0Nzc1MSw0Nzc1Niw0Nzc4NCw0Nzc4NSw0Nzc4Nyw0Nzc4OCw0Nzc5Miw0Nzc5NCw0NzgwMCw0NzgwMSw0NzgwMyw0NzgwNSw0NzgxMiw0NzgxNiw0NzgzMiw0NzgzMyw0Nzg2OCw1MzgwMiw1MzgwMyw1MzgwNiw1MzgwNyw1MzgwOSw1''@;'; put 'put ''MzgxMCw1MzgxMSw1MzgxMyw1MzgxNCw1MzgxNSw1MzgxNiw1MzgxNyw1MzgxOCw1MzgxOSw1MzgyMiw1MzgyNCw1MzgyNiw1MzgyNyw1MzgyOCw1MzgyOSw1MzgzMCw1MzgzMSw1MzgzMyw1MzgzNCw1MzgzNSw1MzgzNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzgzNyw1Mzgz''@;'; put 'put ''OCw1MzgzOSw1Mzg0MCw1Mzg0MSw1Mzg0Miw1Mzg0Myw1Mzg0NCw1Mzg0NSw1Mzg0Niw1Mzg0Nyw1Mzg0OCw1Mzg0OSw1Mzg1MCw1Mzg1MSw1Mzg1Myw1Mzg1NCw1Mzg1NSw1Mzg1Niw1Mzg1Nyw1Mzg1OCw1Mzg1OSw1Mzg2MSw1Mzg2Miw1Mzg2Myw1Mzg2NCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCw1Mzg2NSw1Mzg2Niw1Mzg2Nyw1Mzg2OCw1Mzg2OSw1Mzg3MCw1Mzg3MSw1Mzg3Miw1Mzg3Myw1Mzg3NCw1Mzg3NSw1Mzg3Niw1Mzg3Nyw1Mzg3OCw1Mzg3OSw1Mzg4MCw1Mzg4MSw1Mzg4Miw1Mzg4Myw1Mzg4NCw1Mzg4NSw1Mzg4Niw1Mzg4Nyw1Mzg5MCw1Mzg5MSw1Mzg5''@;'; put 'put ''Myw1Mzg5NCw1Mzg5NSw1Mzg5Nyw1Mzg5OCw1Mzg5OSw1MzkwMCw0Nzg3Miw0Nzg3Niw0Nzg4NSw0Nzg4Nyw0Nzg4OSw0Nzg5Niw0NzkwMCw0NzkwNCw0NzkxMyw0NzkxNSw0NzkyNCw0NzkyNSw0NzkyNiw0NzkyOCw0NzkzMSw0NzkzMiw0NzkzMyw0NzkzNCw0Nzk0MCw0Nzk0MSw0Nzk0Myw0''@;'; put 'put ''Nzk0NSw0Nzk0OSw0Nzk1MSw0Nzk1Miw0Nzk1Niw0Nzk2MCw0Nzk2OSw0Nzk3MSw0Nzk4MCw0ODAwOCw0ODAxMiw0ODAxNiw0ODAzNiw0ODA0MCw0ODA0NCw0ODA1Miw0ODA1NSw0ODA2NCw0ODA2OCw0ODA3Miw0ODA4MCw0ODA4Myw0ODEyMCw0ODEyMSw0ODEyNCw0ODEyNyw0ODEyOCw0ODEz''@;'; put 'put ''MCw0ODEzNiw0ODEzNyw0ODEzOSw0ODE0MCw0ODE0MSw0ODE0Myw0ODE0NSw0ODE0OCw0ODE0OSw0ODE1MCw0ODE1MSw0ODE1Miw0ODE1NSw0ODE1Niw0ODE1Nyw0ODE1OCw0ODE1OSw0ODE2NCw0ODE2NSw0ODE2Nyw0ODE2OSw0ODE3Myw0ODE3Niw0ODE3Nyw0ODE4MCw0ODE4NCw0ODE5Miw0''@;'; put 'put ''ODE5Myw0ODE5NSw0ODE5Niw0ODE5Nyw0ODIwMSw0ODIwNCw0ODIwNSw0ODIwOCw0ODIyMSw0ODI2MCw0ODI2MSw0ODI2NCw0ODI2Nyw0ODI2OCw0ODI3MCw0ODI3Niw0ODI3Nyw0ODI3OSw1MzkwMSw1MzkwMiw1MzkwMyw1MzkwNiw1MzkwNyw1MzkwOCw1MzkxMCw1MzkxMSw1MzkxMiw1Mzkx''@;'; put 'put ''Myw1MzkxNCw1MzkxNSw1MzkxNyw1MzkxOCw1MzkxOSw1MzkyMSw1MzkyMiw1MzkyMyw1MzkyNSw1MzkyNiw1MzkyNyw1MzkyOCw1MzkyOSw1MzkzMCw1MzkzMSw1MzkzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1MzkzNCw1MzkzNSw1MzkzNiw1MzkzOCw1MzkzOSw1Mzk0MCw1''@;'; put 'put ''Mzk0MSw1Mzk0Miw1Mzk0Myw1Mzk0Niw1Mzk0Nyw1Mzk0OSw1Mzk1MCw1Mzk1Myw1Mzk1NSw1Mzk1Niw1Mzk1Nyw1Mzk1OCw1Mzk1OSw1Mzk2Miw1Mzk2NCw1Mzk2NSw1Mzk2Niw1Mzk2Nyw1Mzk2OCw1Mzk2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzk3MCw1Mzk3MSw1Mzk3''@;'; put 'put ''Myw1Mzk3NCw1Mzk3NSw1Mzk3Nyw1Mzk3OCw1Mzk3OSw1Mzk4MSw1Mzk4Miw1Mzk4Myw1Mzk4NCw1Mzk4NSw1Mzk4Niw1Mzk4Nyw1Mzk5MCw1Mzk5MSw1Mzk5Miw1Mzk5Myw1Mzk5NCw1Mzk5NSw1Mzk5Niw1Mzk5Nyw1Mzk5OCw1Mzk5OSw1NDAwMiw1NDAwMyw1NDAwNSw1NDAwNiw1NDAwNyw1''@;'; put 'put ''NDAwOSw1NDAxMCw0ODI4MSw0ODI4Miw0ODI4OCw0ODI4OSw0ODI5Miw0ODI5NSw0ODI5Niw0ODMwNCw0ODMwNSw0ODMwNyw0ODMwOCw0ODMwOSw0ODMxNiw0ODMxNyw0ODMyMCw0ODMyNCw0ODMzMyw0ODMzNSw0ODMzNiw0ODMzNyw0ODM0MSw0ODM0NCw0ODM0OCw0ODM3Miw0ODM3Myw0ODM3''@;'; put 'put ''NCw0ODM3Niw0ODM4MCw0ODM4OCw0ODM4OSw0ODM5MSw0ODM5Myw0ODQwMCw0ODQwNCw0ODQyMCw0ODQyOCw0ODQ0OCw0ODQ1Niw0ODQ1Nyw0ODQ2MCw0ODQ2NCw0ODQ3Miw0ODQ3Myw0ODQ4NCw0ODQ4OCw0ODUxMiw0ODUxMyw0ODUxNiw0ODUxOSw0ODUyMCw0ODUyMSw0ODUyMiw0ODUyOCw0''@;'; put 'put ''ODUyOSw0ODUzMSw0ODUzMyw0ODUzNyw0ODUzOCw0ODU0MCw0ODU0OCw0ODU2MCw0ODU2OCw0ODU5Niw0ODU5Nyw0ODYwMCw0ODYwNCw0ODYxNyw0ODYyNCw0ODYyOCw0ODYzMiw0ODY0MCw0ODY0Myw0ODY0NSw0ODY1Miw0ODY1Myw0ODY1Niw0ODY2MCw0ODY2OCw0ODY2OSw0ODY3MSw0ODcw''@;'; put 'put ''OCw0ODcwOSw0ODcxMiw0ODcxNiw0ODcxOCw0ODcyNCw0ODcyNSw0ODcyNyw0ODcyOSw0ODczMCw0ODczMSw0ODczNiw0ODczNyw0ODc0MCw1NDAxMSw1NDAxMiw1NDAxMyw1NDAxNCw1NDAxNSw1NDAxOCw1NDAyMCw1NDAyMiw1NDAyMyw1NDAyNCw1NDAyNSw1NDAyNiw1NDAyNyw1NDAzMSw1''@;'; put 'put ''NDAzMyw1NDAzNCw1NDAzNSw1NDAzNyw1NDAzOSw1NDA0MCw1NDA0MSw1NDA0Miw1NDA0Myw1NDA0Niw1NDA1MCw1NDA1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDA1Miw1NDA1NCw1NDA1NSw1NDA1OCw1NDA1OSw1NDA2MSw1NDA2Miw1NDA2Myw1NDA2NSw1NDA2Niw1NDA2''@;'; put 'put ''Nyw1NDA2OCw1NDA2OSw1NDA3MCw1NDA3MSw1NDA3NCw1NDA3OCw1NDA3OSw1NDA4MCw1NDA4MSw1NDA4Miw1NDA4Myw1NDA4Niw1NDA4Nyw1NDA4OCw1NDA4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDA5MCw1NDA5MSw1NDA5Miw1NDA5Myw1NDA5NCw1NDA5NSw1NDA5Niw1''@;'; put 'put ''NDA5Nyw1NDA5OCw1NDA5OSw1NDEwMCw1NDEwMSw1NDEwMiw1NDEwMyw1NDEwNCw1NDEwNSw1NDEwNiw1NDEwNyw1NDEwOCw1NDEwOSw1NDExMCw1NDExMSw1NDExMiw1NDExMyw1NDExNCw1NDExNSw1NDExNiw1NDExNyw1NDExOCw1NDExOSw1NDEyMCw1NDEyMSw0ODc0NCw0ODc0Niw0ODc1''@;'; put 'put ''Miw0ODc1Myw0ODc1NSw0ODc1Niw0ODc1Nyw0ODc2Myw0ODc2NCw0ODc2NSw0ODc2OCw0ODc3Miw0ODc4MCw0ODc4MSw0ODc4Myw0ODc4NCw0ODc4NSw0ODc5Miw0ODc5Myw0ODgwOCw0ODg0OCw0ODg0OSw0ODg1Miw0ODg1NSw0ODg1Niw0ODg2NCw0ODg2Nyw0ODg2OCw0ODg2OSw0ODg3Niw0''@;'; put 'put ''ODg5Nyw0ODkwNCw0ODkwNSw0ODkyMCw0ODkyMSw0ODkyMyw0ODkyNCw0ODkyNSw0ODk2MCw0ODk2MSw0ODk2NCw0ODk2OCw0ODk3Niw0ODk3Nyw0ODk4MSw0OTA0NCw0OTA3Miw0OTA5Myw0OTEwMCw0OTEwMSw0OTEwNCw0OTEwOCw0OTExNiw0OTExOSw0OTEyMSw0OTIxMiw0OTIzMyw0OTI0''@;'; put 'put ''MCw0OTI0NCw0OTI0OCw0OTI1Niw0OTI1Nyw0OTI5Niw0OTI5Nyw0OTMwMCw0OTMwNCw0OTMxMiw0OTMxMyw0OTMxNSw0OTMxNyw0OTMyNCw0OTMyNSw0OTMyNyw0OTMyOCw0OTMzMSw0OTMzMiw0OTMzMyw0OTMzNCw0OTM0MCw0OTM0MSw0OTM0Myw0OTM0NCw0OTM0NSw0OTM0OSw0OTM1Miw0''@;'; put 'put ''OTM1Myw0OTM1Niw0OTM2MCw0OTM2OCw0OTM2OSw0OTM3MSw0OTM3Miw0OTM3Myw0OTM4MCw1NDEyMiw1NDEyMyw1NDEyNCw1NDEyNSw1NDEyNiw1NDEyNyw1NDEyOCw1NDEyOSw1NDEzMCw1NDEzMSw1NDEzMiw1NDEzMyw1NDEzNCw1NDEzNSw1NDEzNiw1NDEzNyw1NDEzOCw1NDEzOSw1NDE0''@;'; put 'put ''Miw1NDE0Myw1NDE0NSw1NDE0Niw1NDE0Nyw1NDE0OSw1NDE1MCw1NDE1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDE1Miw1NDE1Myw1NDE1NCw1NDE1NSw1NDE1OCw1NDE2Miw1NDE2Myw1NDE2NCw1NDE2NSw1NDE2Niw1NDE2Nyw1NDE3MCw1NDE3MSw1NDE3Myw1NDE3NCw1''@;'; put 'put ''NDE3NSw1NDE3Nyw1NDE3OCw1NDE3OSw1NDE4MCw1NDE4MSw1NDE4Miw1NDE4Myw1NDE4Niw1NDE4OCw1NDE5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDE5MSw1NDE5Miw1NDE5Myw1NDE5NCw1NDE5NSw1NDE5Nyw1NDE5OCw1NDE5OSw1NDIwMSw1NDIwMiw1NDIwMyw1NDIw''@;'; put 'put ''NSw1NDIwNiw1NDIwNyw1NDIwOCw1NDIwOSw1NDIxMCw1NDIxMSw1NDIxNCw1NDIxNSw1NDIxOCw1NDIxOSw1NDIyMCw1NDIyMSw1NDIyMiw1NDIyMyw1NDIyNSw1NDIyNiw1NDIyNyw1NDIyOCw1NDIyOSw1NDIzMCw0OTM4MSw0OTM4NCw0OTM4OCw0OTM5Niw0OTM5Nyw0OTM5OSw0OTQwMSw0''@;'; put 'put ''OTQwOCw0OTQxMiw0OTQxNiw0OTQyNCw0OTQyOSw0OTQzNiw0OTQzNyw0OTQzOCw0OTQzOSw0OTQ0MCw0OTQ0Myw0OTQ0NCw0OTQ0Niw0OTQ0Nyw0OTQ1Miw0OTQ1Myw0OTQ1NSw0OTQ1Niw0OTQ1Nyw0OTQ2Miw0OTQ2NCw0OTQ2NSw0OTQ2OCw0OTQ3Miw0OTQ4MCw0OTQ4MSw0OTQ4Myw0OTQ4''@;'; put 'put ''NCw0OTQ4NSw0OTQ5Miw0OTQ5Myw0OTQ5Niw0OTUwMCw0OTUwOCw0OTUwOSw0OTUxMSw0OTUxMiw0OTUxMyw0OTUyMCw0OTUyNCw0OTUyOCw0OTU0MSw0OTU0OCw0OTU0OSw0OTU1MCw0OTU1Miw0OTU1Niw0OTU1OCw0OTU2NCw0OTU2NSw0OTU2Nyw0OTU2OSw0OTU3Myw0OTU3Niw0OTU3Nyw0''@;'; put 'put ''OTU4MCw0OTU4NCw0OTU5Nyw0OTYwNCw0OTYwOCw0OTYxMiw0OTYyMCw0OTYyMyw0OTYyNCw0OTYzMiw0OTYzNiw0OTY0MCw0OTY0OCw0OTY0OSw0OTY1MSw0OTY2MCw0OTY2MSw0OTY2NCw0OTY2OCw0OTY3Niw0OTY3Nyw0OTY3OSw0OTY4MSw0OTY4OCw0OTY4OSw0OTY5Miw0OTY5NSw0OTY5''@;'; put 'put ''Niw0OTcwNCw0OTcwNSw0OTcwNyw0OTcwOSw1NDIzMSw1NDIzMyw1NDIzNCw1NDIzNSw1NDIzNiw1NDIzNyw1NDIzOCw1NDIzOSw1NDI0MCw1NDI0Miw1NDI0NCw1NDI0NSw1NDI0Niw1NDI0Nyw1NDI0OCw1NDI0OSw1NDI1MCw1NDI1MSw1NDI1NCw1NDI1NSw1NDI1Nyw1NDI1OCw1NDI1OSw1''@;'; put 'put ''NDI2MSw1NDI2Miw1NDI2MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDI2NCw1NDI2NSw1NDI2Niw1NDI2Nyw1NDI3MCw1NDI3Miw1NDI3NCw1NDI3NSw1NDI3Niw1NDI3Nyw1NDI3OCw1NDI3OSw1NDI4MSw1NDI4Miw1NDI4Myw1NDI4NCw1NDI4NSw1NDI4Niw1NDI4Nyw1NDI4''@;'; put 'put ''OCw1NDI4OSw1NDI5MCw1NDI5MSw1NDI5Miw1NDI5Myw1NDI5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDI5NSw1NDI5Niw1NDI5Nyw1NDI5OCw1NDI5OSw1NDMwMCw1NDMwMiw1NDMwMyw1NDMwNCw1NDMwNSw1NDMwNiw1NDMwNyw1NDMwOCw1NDMwOSw1NDMxMCw1NDMxMSw1''@;'; put 'put ''NDMxMiw1NDMxMyw1NDMxNCw1NDMxNSw1NDMxNiw1NDMxNyw1NDMxOCw1NDMxOSw1NDMyMCw1NDMyMSw1NDMyMiw1NDMyMyw1NDMyNCw1NDMyNSw1NDMyNiw1NDMyNyw0OTcxMSw0OTcxMyw0OTcxNCw0OTcxNiw0OTczNiw0OTc0NCw0OTc0NSw0OTc0OCw0OTc1Miw0OTc2MCw0OTc2NSw0OTc3''@;'; put 'put ''Miw0OTc3Myw0OTc3Niw0OTc4MCw0OTc4OCw0OTc4OSw0OTc5MSw0OTc5Myw0OTgwMCw0OTgwMSw0OTgwOCw0OTgxNiw0OTgxOSw0OTgyMSw0OTgyOCw0OTgyOSw0OTgzMiw0OTgzNiw0OTgzNyw0OTg0NCw0OTg0NSw0OTg0Nyw0OTg0OSw0OTg4NCw0OTg4NSw0OTg4OCw0OTg5MSw0OTg5Miw0''@;'; put 'put ''OTg5OSw0OTkwMCw0OTkwMSw0OTkwMyw0OTkwNSw0OTkxMCw0OTkxMiw0OTkxMyw0OTkxNSw0OTkxNiw0OTkyMCw0OTkyOCw0OTkyOSw0OTkzMiw0OTkzMyw0OTkzOSw0OTk0MCw0OTk0MSw0OTk0NCw0OTk0OCw0OTk1Niw0OTk1Nyw0OTk2MCw0OTk2MSw0OTk4OSw1MDAyNCw1MDAyNSw1MDAy''@;'; put 'put ''OCw1MDAzMiw1MDAzNCw1MDA0MCw1MDA0MSw1MDA0NCw1MDA0NSw1MDA1Miw1MDA1Niw1MDA2MCw1MDExMiw1MDEzNiw1MDEzNyw1MDE0MCw1MDE0Myw1MDE0NCw1MDE0Niw1MDE1Miw1MDE1Myw1MDE1Nyw1MDE2NCw1MDE2NSw1MDE2OCw1MDE4NCw1MDE5Miw1MDIxMiw1MDIyMCw1MDIyNCw1''@;'; put 'put ''NDMyOCw1NDMyOSw1NDMzMCw1NDMzMSw1NDMzMiw1NDMzMyw1NDMzNCw1NDMzNSw1NDMzNyw1NDMzOCw1NDMzOSw1NDM0MSw1NDM0Miw1NDM0Myw1NDM0NCw1NDM0NSw1NDM0Niw1NDM0Nyw1NDM0OCw1NDM0OSw1NDM1MCw1NDM1MSw1NDM1Miw1NDM1Myw1NDM1NCw1NDM1NSxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCw1NDM1Niw1NDM1Nyw1NDM1OCw1NDM1OSw1NDM2MCw1NDM2MSw1NDM2Miw1NDM2Myw1NDM2NSw1NDM2Niw1NDM2Nyw1NDM2OSw1NDM3MCw1NDM3MSw1NDM3Myw1NDM3NCw1NDM3NSw1NDM3Niw1NDM3Nyw1NDM3OCw1NDM3OSw1NDM4MCw1NDM4Miw1NDM4NCw1''@;'; put 'put ''NDM4NSw1NDM4NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDM4Nyw1NDM4OCw1NDM4OSw1NDM5MCw1NDM5MSw1NDM5NCw1NDM5NSw1NDM5Nyw1NDM5OCw1NDQwMSw1NDQwMyw1NDQwNCw1NDQwNSw1NDQwNiw1NDQwNyw1NDQxMCw1NDQxMiw1NDQxNCw1NDQxNSw1NDQxNiw1NDQx''@;'; put 'put ''Nyw1NDQxOCw1NDQxOSw1NDQyMSw1NDQyMiw1NDQyMyw1NDQyNCw1NDQyNSw1NDQyNiw1NDQyNyw1NDQyOCw1NDQyOSw1MDIyOCw1MDIzNiw1MDIzNyw1MDI0OCw1MDI3Niw1MDI3Nyw1MDI4MCw1MDI4NCw1MDI5Miw1MDI5Myw1MDI5Nyw1MDMwNCw1MDMyNCw1MDMzMiw1MDM2MCw1MDM2NCw1''@;'; put 'put ''MDQwOSw1MDQxNiw1MDQxNyw1MDQyMCw1MDQyNCw1MDQyNiw1MDQzMSw1MDQzMiw1MDQzMyw1MDQ0NCw1MDQ0OCw1MDQ1Miw1MDQ2MCw1MDQ3Miw1MDQ3Myw1MDQ3Niw1MDQ4MCw1MDQ4OCw1MDQ4OSw1MDQ5MSw1MDQ5Myw1MDUwMCw1MDUwMSw1MDUwNCw1MDUwNSw1MDUwNiw1MDUwOCw1MDUw''@;'; put 'put ''OSw1MDUxMCw1MDUxNSw1MDUxNiw1MDUxNyw1MDUxOSw1MDUyMCw1MDUyMSw1MDUyNSw1MDUyNiw1MDUyOCw1MDUyOSw1MDUzMiw1MDUzNiw1MDU0NCw1MDU0NSw1MDU0Nyw1MDU0OCw1MDU0OSw1MDU1Niw1MDU1Nyw1MDU2MCw1MDU2NCw1MDU2Nyw1MDU3Miw1MDU3Myw1MDU3NSw1MDU3Nyw1''@;'; put 'put ''MDU4MSw1MDU4Myw1MDU4NCw1MDU4OCw1MDU5Miw1MDYwMSw1MDYxMiw1MDYxMyw1MDYxNiw1MDYxNyw1MDYxOSw1MDYyMCw1MDYyMSw1MDYyMiw1MDYyOCw1MDYyOSw1MDYzMCw1MDYzMSw1MDYzMiw1MDYzMyw1MDYzNCw1MDYzNiw1MDYzOCw1NDQzMCw1NDQzMSw1NDQzMiw1NDQzMyw1NDQz''@;'; put 'put ''NCw1NDQzNSw1NDQzNiw1NDQzNyw1NDQzOCw1NDQzOSw1NDQ0MCw1NDQ0Miw1NDQ0Myw1NDQ0NCw1NDQ0NSw1NDQ0Niw1NDQ0Nyw1NDQ0OCw1NDQ0OSw1NDQ1MCw1NDQ1MSw1NDQ1Miw1NDQ1Myw1NDQ1NCw1NDQ1NSw1NDQ1NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDQ1Nyw1''@;'; put 'put ''NDQ1OCw1NDQ1OSw1NDQ2MCw1NDQ2MSw1NDQ2Miw1NDQ2Myw1NDQ2NCw1NDQ2NSw1NDQ2Niw1NDQ2Nyw1NDQ2OCw1NDQ2OSw1NDQ3MCw1NDQ3MSw1NDQ3Miw1NDQ3Myw1NDQ3NCw1NDQ3NSw1NDQ3Nyw1NDQ3OCw1NDQ3OSw1NDQ4MSw1NDQ4Miw1NDQ4Myw1NDQ4NSxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCw1NDQ4Niw1NDQ4Nyw1NDQ4OCw1NDQ4OSw1NDQ5MCw1NDQ5MSw1NDQ5Myw1NDQ5NCw1NDQ5Niw1NDQ5Nyw1NDQ5OCw1NDQ5OSw1NDUwMCw1NDUwMSw1NDUwMiw1NDUwMyw1NDUwNSw1NDUwNiw1NDUwNyw1NDUwOSw1NDUxMCw1NDUxMSw1NDUxMyw1NDUxNCw1NDUxNSw1''@;'; put 'put ''NDUxNiw1NDUxNyw1NDUxOCw1NDUxOSw1NDUyMSw1NDUyMiw1NDUyNCw1MDY0MCw1MDY0MSw1MDY0NCw1MDY0OCw1MDY1Niw1MDY1Nyw1MDY1OSw1MDY2MSw1MDY2OCw1MDY2OSw1MDY3MCw1MDY3Miw1MDY3Niw1MDY3OCw1MDY3OSw1MDY4NCw1MDY4NSw1MDY4Niw1MDY4Nyw1MDY4OCw1MDY4''@;'; put 'put ''OSw1MDY5Myw1MDY5NCw1MDY5NSw1MDY5Niw1MDcwMCw1MDcwNCw1MDcxMiw1MDcxMyw1MDcxNSw1MDcxNiw1MDcyNCw1MDcyNSw1MDcyOCw1MDczMiw1MDczMyw1MDczNCw1MDczNiw1MDczOSw1MDc0MCw1MDc0MSw1MDc0Myw1MDc0NSw1MDc0Nyw1MDc1Miw1MDc1Myw1MDc1Niw1MDc2MCw1''@;'; put 'put ''MDc2OCw1MDc2OSw1MDc3MSw1MDc3Miw1MDc3Myw1MDc4MCw1MDc4MSw1MDc4NCw1MDc5Niw1MDc5OSw1MDgwMSw1MDgwOCw1MDgwOSw1MDgxMiw1MDgxNiw1MDgyNCw1MDgyNSw1MDgyNyw1MDgyOSw1MDgzNiw1MDgzNyw1MDg0MCw1MDg0NCw1MDg1Miw1MDg1Myw1MDg1NSw1MDg1Nyw1MDg2''@;'; put 'put ''NCw1MDg2NSw1MDg2OCw1MDg3Miw1MDg3Myw1MDg3NCw1MDg4MCw1MDg4MSw1MDg4Myw1MDg4NSw1MDg5Miw1MDg5Myw1MDg5Niw1MDkwMCw1MDkwOCw1MDkwOSw1MDkxMiw1MDkxMyw1MDkyMCw1NDUyNiw1NDUyNyw1NDUyOCw1NDUyOSw1NDUzMCw1NDUzMSw1NDUzMyw1NDUzNCw1NDUzNSw1''@;'; put 'put ''NDUzNyw1NDUzOCw1NDUzOSw1NDU0MSw1NDU0Miw1NDU0Myw1NDU0NCw1NDU0NSw1NDU0Niw1NDU0Nyw1NDU1MCw1NDU1Miw1NDU1Myw1NDU1NCw1NDU1NSw1NDU1Niw1NDU1NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDU1OCw1NDU1OSw1NDU2MCw1NDU2MSw1NDU2Miw1NDU2''@;'; put 'put ''Myw1NDU2NCw1NDU2NSw1NDU2Niw1NDU2Nyw1NDU2OCw1NDU2OSw1NDU3MCw1NDU3MSw1NDU3Miw1NDU3Myw1NDU3NCw1NDU3NSw1NDU3Niw1NDU3Nyw1NDU3OCw1NDU3OSw1NDU4MCw1NDU4MSw1NDU4Miw1NDU4MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDU4NCw1NDU4NSw1''@;'; put 'put ''NDU4Niw1NDU4Nyw1NDU5MCw1NDU5MSw1NDU5Myw1NDU5NCw1NDU5NSw1NDU5Nyw1NDU5OCw1NDU5OSw1NDYwMCw1NDYwMSw1NDYwMiw1NDYwMyw1NDYwNiw1NDYwOCw1NDYxMCw1NDYxMSw1NDYxMiw1NDYxMyw1NDYxNCw1NDYxNSw1NDYxOCw1NDYxOSw1NDYyMSw1NDYyMiw1NDYyMyw1NDYy''@;'; put 'put ''NSw1NDYyNiw1NDYyNyw1MDkyMSw1MDkyNCw1MDkyOCw1MDkzNiw1MDkzNyw1MDk0MSw1MDk0OCw1MDk0OSw1MDk1Miw1MDk1Niw1MDk2NCw1MDk2NSw1MDk2Nyw1MDk2OSw1MDk3Niw1MDk3Nyw1MDk4MCw1MDk4NCw1MDk5Miw1MDk5Myw1MDk5NSw1MDk5Nyw1MDk5OSw1MTAwNCw1MTAwNSw1''@;'; put 'put ''MTAwOCw1MTAxMiw1MTAxOCw1MTAyMCw1MTAyMSw1MTAyMyw1MTAyNSw1MTAyNiw1MTAyNyw1MTAyOCw1MTAyOSw1MTAzMCw1MTAzMSw1MTAzMiw1MTAzNiw1MTA0MCw1MTA0OCw1MTA1MSw1MTA2MCw1MTA2MSw1MTA2NCw1MTA2OCw1MTA2OSw1MTA3MCw1MTA3NSw1MTA3Niw1MTA3Nyw1MTA3''@;'; put 'put ''OSw1MTA4MCw1MTA4MSw1MTA4Miw1MTA4Niw1MTA4OCw1MTA4OSw1MTA5Miw1MTA5NCw1MTA5NSw1MTA5Niw1MTA5OCw1MTEwNCw1MTEwNSw1MTEwNyw1MTEwOCw1MTEwOSw1MTExMCw1MTExNiw1MTExNyw1MTEyMCw1MTEyNCw1MTEzMiw1MTEzMyw1MTEzNSw1MTEzNiw1MTEzNyw1MTE0NCw1''@;'; put 'put ''MTE0NSw1MTE0OCw1MTE1MCw1MTE1Miw1MTE2MCw1MTE2NSw1MTE3Miw1MTE3Niw1MTE4MCw1MTIwMCw1MTIwMSw1MTIwNCw1MTIwOCw1MTIxMCw1NDYyOCw1NDYzMCw1NDYzMSw1NDYzNCw1NDYzNiw1NDYzOCw1NDYzOSw1NDY0MCw1NDY0MSw1NDY0Miw1NDY0Myw1NDY0Niw1NDY0Nyw1NDY0''@;'; put 'put ''OSw1NDY1MCw1NDY1MSw1NDY1Myw1NDY1NCw1NDY1NSw1NDY1Niw1NDY1Nyw1NDY1OCw1NDY1OSw1NDY2Miw1NDY2Niw1NDY2NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDY2OCw1NDY2OSw1NDY3MCw1NDY3MSw1NDY3Myw1NDY3NCw1NDY3NSw1NDY3Niw1NDY3Nyw1NDY3OCw1''@;'; put 'put ''NDY3OSw1NDY4MCw1NDY4MSw1NDY4Miw1NDY4Myw1NDY4NCw1NDY4NSw1NDY4Niw1NDY4Nyw1NDY4OCw1NDY4OSw1NDY5MCw1NDY5MSw1NDY5Miw1NDY5NCw1NDY5NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDY5Niw1NDY5Nyw1NDY5OCw1NDY5OSw1NDcwMCw1NDcwMSw1NDcw''@;'; put 'put ''Miw1NDcwMyw1NDcwNCw1NDcwNSw1NDcwNiw1NDcwNyw1NDcwOCw1NDcwOSw1NDcxMCw1NDcxMSw1NDcxMiw1NDcxMyw1NDcxNCw1NDcxNSw1NDcxNiw1NDcxNyw1NDcxOCw1NDcxOSw1NDcyMCw1NDcyMSw1NDcyMiw1NDcyMyw1NDcyNCw1NDcyNSw1NDcyNiw1NDcyNyw1MTIxNiw1MTIxNyw1''@;'; put 'put ''MTIxOSw1MTIyMSw1MTIyMiw1MTIyOCw1MTIyOSw1MTIzMiw1MTIzNiw1MTI0NCw1MTI0NSw1MTI0Nyw1MTI0OSw1MTI1Niw1MTI2MCw1MTI2NCw1MTI3Miw1MTI3Myw1MTI3Niw1MTI3Nyw1MTI4NCw1MTMxMiw1MTMxMyw1MTMxNiw1MTMyMCw1MTMyMiw1MTMyOCw1MTMyOSw1MTMzMSw1MTMz''@;'; put 'put ''Myw1MTMzNCw1MTMzNSw1MTMzOSw1MTM0MCw1MTM0MSw1MTM0OCw1MTM1Nyw1MTM1OSw1MTM2MSw1MTM2OCw1MTM4OCw1MTM4OSw1MTM5Niw1MTQwMCw1MTQwNCw1MTQxMiw1MTQxMyw1MTQxNSw1MTQxNyw1MTQyNCw1MTQyNSw1MTQyOCw1MTQ0NSw1MTQ1Miw1MTQ1Myw1MTQ1Niw1MTQ2MCw1''@;'; put 'put ''MTQ2MSw1MTQ2Miw1MTQ2OCw1MTQ2OSw1MTQ3MSw1MTQ3Myw1MTQ4MCw1MTUwMCw1MTUwOCw1MTUzNiw1MTUzNyw1MTU0MCw1MTU0NCw1MTU1Miw1MTU1Myw1MTU1NSw1MTU2NCw1MTU2OCw1MTU3Miw1MTU4MCw1MTU5Miw1MTU5Myw1MTU5Niw1MTYwMCw1MTYwOCw1MTYwOSw1MTYxMSw1MTYx''@;'; put 'put ''Myw1MTY0OCw1MTY0OSw1MTY1Miw1MTY1NSw1MTY1Niw1MTY1OCw1MTY2NCw1MTY2NSw1MTY2Nyw1NDczMCw1NDczMSw1NDczMyw1NDczNCw1NDczNSw1NDczNyw1NDczOSw1NDc0MCw1NDc0MSw1NDc0Miw1NDc0Myw1NDc0Niw1NDc0OCw1NDc1MCw1NDc1MSw1NDc1Miw1NDc1Myw1NDc1NCw1''@;'; put 'put ''NDc1NSw1NDc1OCw1NDc1OSw1NDc2MSw1NDc2Miw1NDc2Myw1NDc2NSw1NDc2NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDc2Nyw1NDc2OCw1NDc2OSw1NDc3MCw1NDc3MSw1NDc3NCw1NDc3Niw1NDc3OCw1NDc3OSw1NDc4MCw1NDc4MSw1NDc4Miw1NDc4Myw1NDc4Niw1NDc4''@;'; put 'put ''Nyw1NDc4OSw1NDc5MCw1NDc5MSw1NDc5Myw1NDc5NCw1NDc5NSw1NDc5Niw1NDc5Nyw1NDc5OCw1NDc5OSw1NDgwMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NDgwNiw1NDgwNyw1NDgwOCw1NDgwOSw1NDgxMCw1NDgxMSw1NDgxMyw1NDgxNCw1NDgxNSw1NDgxNyw1NDgxOCw1''@;'; put 'put ''NDgxOSw1NDgyMSw1NDgyMiw1NDgyMyw1NDgyNCw1NDgyNSw1NDgyNiw1NDgyNyw1NDgyOCw1NDgzMCw1NDgzMSw1NDgzMiw1NDgzMyw1NDgzNCw1NDgzNSw1NDgzNiw1NDgzNyw1NDgzOCw1NDgzOSw1NDg0Miw1NDg0Myw1MTY2OSw1MTY3MCw1MTY3Myw1MTY3NCw1MTY3Niw1MTY3Nyw1MTY4''@;'; put 'put ''MCw1MTY4Miw1MTY4NCw1MTY4Nyw1MTY5Miw1MTY5Myw1MTY5NSw1MTY5Niw1MTY5Nyw1MTcwNCw1MTcwNSw1MTcwOCw1MTcxMiw1MTcyMCw1MTcyMSw1MTcyMyw1MTcyNCw1MTcyNSw1MTczMiw1MTczNiw1MTc1Myw1MTc4OCw1MTc4OSw1MTc5Miw1MTc5Niw1MTgwNCw1MTgwNSw1MTgwNyw1''@;'; put 'put ''MTgwOCw1MTgwOSw1MTgxNiw1MTgzNyw1MTg0NCw1MTg2NCw1MTkwMCw1MTkwMSw1MTkwNCw1MTkwOCw1MTkxNiw1MTkxNyw1MTkxOSw1MTkyMSw1MTkyMyw1MTkyOCw1MTkyOSw1MTkzNiw1MTk0OCw1MTk1Niw1MTk3Niw1MTk4NCw1MTk4OCw1MTk5Miw1MmUzLDUyMDAxLDUyMDMzLDUyMDQw''@;'; put 'put ''LDUyMDQxLDUyMDQ0LDUyMDQ4LDUyMDU2LDUyMDU3LDUyMDYxLDUyMDY4LDUyMDg4LDUyMDg5LDUyMTI0LDUyMTUyLDUyMTgwLDUyMTk2LDUyMTk5LDUyMjAxLDUyMjM2LDUyMjM3LDUyMjQwLDUyMjQ0LDUyMjUyLDUyMjUzLDUyMjU3LDUyMjU4LDUyMjYzLDUyMjY0LDUyMjY1LDUyMjY4LDUy''@;'; put 'put ''MjcwLDUyMjcyLDUyMjgwLDUyMjgxLDUyMjgzLDU0ODQ1LDU0ODQ2LDU0ODQ3LDU0ODQ5LDU0ODUwLDU0ODUxLDU0ODUyLDU0ODU0LDU0ODU1LDU0ODU4LDU0ODYwLDU0ODYyLDU0ODYzLDU0ODY0LDU0ODY2LDU0ODY3LDU0ODcwLDU0ODcxLDU0ODczLDU0ODc0LDU0ODc1LDU0ODc3LDU0ODc4''@;'; put 'put ''LDU0ODc5LDU0ODgwLDU0ODgxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0ODgyLDU0ODgzLDU0ODg0LDU0ODg1LDU0ODg2LDU0ODg4LDU0ODkwLDU0ODkxLDU0ODkyLDU0ODkzLDU0ODk0LDU0ODk1LDU0ODk4LDU0ODk5LDU0OTAxLDU0OTAyLDU0OTAzLDU0OTA0LDU0OTA1LDU0''@;'; put 'put ''OTA2LDU0OTA3LDU0OTA4LDU0OTA5LDU0OTEwLDU0OTExLDU0OTEyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0OTEzLDU0OTE0LDU0OTE2LDU0OTE4LDU0OTE5LDU0OTIwLDU0OTIxLDU0OTIyLDU0OTIzLDU0OTI2LDU0OTI3LDU0OTI5LDU0OTMwLDU0OTMxLDU0OTMzLDU0OTM0''@;'; put 'put ''LDU0OTM1LDU0OTM2LDU0OTM3LDU0OTM4LDU0OTM5LDU0OTQwLDU0OTQyLDU0OTQ0LDU0OTQ2LDU0OTQ3LDU0OTQ4LDU0OTQ5LDU0OTUwLDU0OTUxLDU0OTUzLDU0OTU0LDUyMjg0LDUyMjg1LDUyMjg2LDUyMjkyLDUyMjkzLDUyMjk2LDUyMzAwLDUyMzA4LDUyMzA5LDUyMzExLDUyMzEyLDUy''@;'; put 'put ''MzEzLDUyMzIwLDUyMzI0LDUyMzI2LDUyMzI4LDUyMzM2LDUyMzQxLDUyMzc2LDUyMzc3LDUyMzgwLDUyMzg0LDUyMzkyLDUyMzkzLDUyMzk1LDUyMzk2LDUyMzk3LDUyNDA0LDUyNDA1LDUyNDA4LDUyNDEyLDUyNDIwLDUyNDIxLDUyNDIzLDUyNDI1LDUyNDMyLDUyNDM2LDUyNDUyLDUyNDYw''@;'; put 'put ''LDUyNDY0LDUyNDgxLDUyNDg4LDUyNDg5LDUyNDkyLDUyNDk2LDUyNTA0LDUyNTA1LDUyNTA3LDUyNTA5LDUyNTE2LDUyNTIwLDUyNTI0LDUyNTM3LDUyNTcyLDUyNTc2LDUyNTgwLDUyNTg4LDUyNTg5LDUyNTkxLDUyNTkzLDUyNjAwLDUyNjE2LDUyNjI4LDUyNjI5LDUyNjMyLDUyNjM2LDUy''@;'; put 'put ''NjQ0LDUyNjQ1LDUyNjQ3LDUyNjQ5LDUyNjU2LDUyNjc2LDUyNjg0LDUyNjg4LDUyNzEyLDUyNzE2LDUyNzIwLDUyNzI4LDUyNzI5LDUyNzMxLDUyNzMzLDUyNzQwLDUyNzQ0LDUyNzQ4LDUyNzU2LDUyNzYxLDUyNzY4LDUyNzY5LDUyNzcyLDUyNzc2LDUyNzg0LDUyNzg1LDUyNzg3LDUyNzg5''@;'; put 'put ''LDU0OTU1LDU0OTU3LDU0OTU4LDU0OTU5LDU0OTYxLDU0OTYyLDU0OTYzLDU0OTY0LDU0OTY1LDU0OTY2LDU0OTY3LDU0OTY4LDU0OTcwLDU0OTcyLDU0OTczLDU0OTc0LDU0OTc1LDU0OTc2LDU0OTc3LDU0OTc4LDU0OTc5LDU0OTgyLDU0OTgzLDU0OTg1LDU0OTg2LDU0OTg3LG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLDU0OTg5LDU0OTkwLDU0OTkxLDU0OTkyLDU0OTk0LDU0OTk1LDU0OTk3LDU0OTk4LDU1ZTMsNTUwMDIsNTUwMDMsNTUwMDQsNTUwMDUsNTUwMDYsNTUwMDcsNTUwMDksNTUwMTAsNTUwMTEsNTUwMTMsNTUwMTQsNTUwMTUsNTUwMTcsNTUwMTgsNTUwMTks''@;'; put 'put ''NTUwMjAsNTUwMjEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNTUwMjIsNTUwMjMsNTUwMjUsNTUwMjYsNTUwMjcsNTUwMjgsNTUwMzAsNTUwMzEsNTUwMzIsNTUwMzMsNTUwMzQsNTUwMzUsNTUwMzgsNTUwMzksNTUwNDEsNTUwNDIsNTUwNDMsNTUwNDUsNTUwNDYsNTUwNDcsNTUw''@;'; put 'put ''NDgsNTUwNDksNTUwNTAsNTUwNTEsNTUwNTIsNTUwNTMsNTUwNTQsNTUwNTUsNTUwNTYsNTUwNTgsNTUwNTksNTUwNjAsNTI4MjQsNTI4MjUsNTI4MjgsNTI4MzEsNTI4MzIsNTI4MzMsNTI4NDAsNTI4NDEsNTI4NDMsNTI4NDUsNTI4NTIsNTI4NTMsNTI4NTYsNTI4NjAsNTI4NjgsNTI4Njks''@;'; put 'put ''NTI4NzEsNTI4NzMsNTI4ODAsNTI4ODEsNTI4ODQsNTI4ODgsNTI4OTYsNTI4OTcsNTI4OTksNTI5MDAsNTI5MDEsNTI5MDgsNTI5MDksNTI5MjksNTI5NjQsNTI5NjUsNTI5NjgsNTI5NzEsNTI5NzIsNTI5ODAsNTI5ODEsNTI5ODMsNTI5ODQsNTI5ODUsNTI5OTIsNTI5OTMsNTI5OTYsNTNl''@;'; put 'put ''Myw1MzAwOCw1MzAwOSw1MzAxMSw1MzAxMyw1MzAyMCw1MzAyNCw1MzAyOCw1MzAzNiw1MzAzNyw1MzAzOSw1MzA0MCw1MzA0MSw1MzA0OCw1MzA3Niw1MzA3Nyw1MzA4MCw1MzA4NCw1MzA5Miw1MzA5Myw1MzA5NSw1MzA5Nyw1MzEwNCw1MzEwNSw1MzEwOCw1MzExMiw1MzEyMCw1MzEyNSw1''@;'; put 'put ''MzEzMiw1MzE1Myw1MzE2MCw1MzE2OCw1MzE4OCw1MzIxNiw1MzIxNyw1MzIyMCw1MzIyNCw1MzIzMiw1MzIzMyw1MzIzNSw1MzIzNyw1MzI0NCw1MzI0OCw1MzI1Miw1MzI2NSw1MzI3Miw1MzI5Myw1MzMwMCw1MzMwMSw1MzMwNCw1MzMwOCw1NTA2MSw1NTA2Miw1NTA2Myw1NTA2Niw1NTA2''@;'; put 'put ''Nyw1NTA2OSw1NTA3MCw1NTA3MSw1NTA3Myw1NTA3NCw1NTA3NSw1NTA3Niw1NTA3Nyw1NTA3OCw1NTA3OSw1NTA4Miw1NTA4NCw1NTA4Niw1NTA4Nyw1NTA4OCw1NTA4OSw1NTA5MCw1NTA5MSw1NTA5NCw1NTA5NSw1NTA5NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1NTA5OCw1''@;'; put 'put ''NTA5OSw1NTEwMSw1NTEwMiw1NTEwMyw1NTEwNCw1NTEwNSw1NTEwNiw1NTEwNyw1NTEwOSw1NTExMCw1NTExMiw1NTExNCw1NTExNSw1NTExNiw1NTExNyw1NTExOCw1NTExOSw1NTEyMiw1NTEyMyw1NTEyNSw1NTEzMCw1NTEzMSw1NTEzMiw1NTEzMyw1NTEzNCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCw1NTEzNSw1NTEzOCw1NTE0MCw1NTE0Miw1NTE0Myw1NTE0NCw1NTE0Niw1NTE0Nyw1NTE0OSw1NTE1MCw1NTE1MSw1NTE1Myw1NTE1NCw1NTE1NSw1NTE1Nyw1NTE1OCw1NTE1OSw1NTE2MCw1NTE2MSw1NTE2Miw1NTE2Myw1NTE2Niw1NTE2Nyw1NTE2OCw1NTE3MCw1''@;'; put 'put ''NTE3MSw1NTE3Miw1NTE3Myw1NTE3NCw1NTE3NSw1NTE3OCw1NTE3OSw1MzMxNiw1MzMxNyw1MzMxOSw1MzMyMSw1MzMyOCw1MzMzMiw1MzMzNiw1MzM0NCw1MzM1Niw1MzM1Nyw1MzM2MCw1MzM2NCw1MzM3Miw1MzM3Myw1MzM3Nyw1MzQxMiw1MzQxMyw1MzQxNiw1MzQyMCw1MzQyOCw1MzQy''@;'; put 'put ''OSw1MzQzMSw1MzQzMyw1MzQ0MCw1MzQ0MSw1MzQ0NCw1MzQ0OCw1MzQ0OSw1MzQ1Niw1MzQ1Nyw1MzQ1OSw1MzQ2MCw1MzQ2MSw1MzQ2OCw1MzQ2OSw1MzQ3Miw1MzQ3Niw1MzQ4NCw1MzQ4NSw1MzQ4Nyw1MzQ4OCw1MzQ4OSw1MzQ5Niw1MzUxNyw1MzU1Miw1MzU1Myw1MzU1Niw1MzU2MCw1''@;'; put 'put ''MzU2Miw1MzU2OCw1MzU2OSw1MzU3MSw1MzU3Miw1MzU3Myw1MzU4MCw1MzU4MSw1MzU4NCw1MzU4OCw1MzU5Niw1MzU5Nyw1MzU5OSw1MzYwMSw1MzYwOCw1MzYxMiw1MzYyOCw1MzYzNiw1MzY0MCw1MzY2NCw1MzY2NSw1MzY2OCw1MzY3Miw1MzY4MCw1MzY4MSw1MzY4Myw1MzY4NSw1MzY5''@;'; put 'put ''MCw1MzY5Miw1MzY5Niw1MzcyMCw1Mzc0OCw1Mzc1Miw1Mzc2Nyw1Mzc2OSw1Mzc3Niw1MzgwNCw1MzgwNSw1MzgwOCw1MzgxMiw1MzgyMCw1MzgyMSw1MzgyMyw1MzgyNSw1MzgzMiw1Mzg1Miw1NTE4MSw1NTE4Miw1NTE4Myw1NTE4NSw1NTE4Niw1NTE4Nyw1NTE4OCw1NTE4OSw1NTE5MCw1''@;'; put 'put ''NTE5MSw1NTE5NCw1NTE5Niw1NTE5OCw1NTE5OSw1NTIwMCw1NTIwMSw1NTIwMiw1NTIwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw1Mzg2MCw1Mzg4OCw1Mzg4OSw1Mzg5Miw1Mzg5Niw1MzkwNCw1MzkwNSw1MzkwOSw1Mzkx''@;'; put 'put ''Niw1MzkyMCw1MzkyNCw1MzkzMiw1MzkzNyw1Mzk0NCw1Mzk0NSw1Mzk0OCw1Mzk1MSw1Mzk1Miw1Mzk1NCw1Mzk2MCw1Mzk2MSw1Mzk2Myw1Mzk3Miw1Mzk3Niw1Mzk4MCw1Mzk4OCw1Mzk4OSw1NGUzLDU0MDAxLDU0MDA0LDU0MDA4LDU0MDE2LDU0MDE3LDU0MDE5LDU0MDIxLDU0MDI4LDU0''@;'; put 'put ''MDI5LDU0MDMwLDU0MDMyLDU0MDM2LDU0MDM4LDU0MDQ0LDU0MDQ1LDU0MDQ3LDU0MDQ4LDU0MDQ5LDU0MDUzLDU0MDU2LDU0MDU3LDU0MDYwLDU0MDY0LDU0MDcyLDU0MDczLDU0MDc1LDU0MDc2LDU0MDc3LDU0MDg0LDU0MDg1LDU0MTQwLDU0MTQxLDU0MTQ0LDU0MTQ4LDU0MTU2LDU0MTU3''@;'; put 'put ''LDU0MTU5LDU0MTYwLDU0MTYxLDU0MTY4LDU0MTY5LDU0MTcyLDU0MTc2LDU0MTg0LDU0MTg1LDU0MTg3LDU0MTg5LDU0MTk2LDU0MjAwLDU0MjA0LDU0MjEyLDU0MjEzLDU0MjE2LDU0MjE3LDU0MjI0LDU0MjMyLDU0MjQxLDU0MjQzLDU0MjUyLDU0MjUzLDU0MjU2LDU0MjYwLDU0MjY4LDU0''@;'; put 'put ''MjY5LDU0MjcxLDU0MjczLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LDU0MjgwLDU0MzAxLDU0MzM2LDU0MzQwLDU0MzY0LDU0MzY4LDU0MzcyLDU0MzgxLDU0MzgzLDU0MzkyLDU0MzkzLDU0Mzk2LDU0Mzk5LDU0NDAwLDU0NDAyLDU0NDA4LDU0NDA5LDU0NDExLDU0NDEzLDU0NDIwLDU0NDQxLDU0NDc2LDU0NDgwLDU0NDg0LDU0NDkyLDU0NDk1LDU0NTA0LDU0''@;'; put 'put ''NTA4LDU0NTEyLDU0NTIwLDU0NTIzLDU0NTI1LDU0NTMyLDU0NTM2LDU0NTQwLDU0NTQ4LDU0NTQ5LDU0NTUxLDU0NTg4LDU0NTg5LDU0NTkyLDU0NTk2LDU0NjA0LDU0NjA1LDU0NjA3LDU0NjA5LDU0NjE2LDU0NjE3LDU0NjIwLDU0NjI0LDU0NjI5LDU0NjMyLDU0NjMzLDU0NjM1LDU0NjM3''@;'; put 'put ''LDU0NjQ0LDU0NjQ1LDU0NjQ4LDU0NjUyLDU0NjYwLDU0NjYxLDU0NjYzLDU0NjY0LDU0NjY1LDU0NjcyLDU0NjkzLDU0NzI4LDU0NzI5LDU0NzMyLDU0NzM2LDU0NzM4LDU0NzQ0LDU0NzQ1LDU0NzQ3LDU0NzQ5LDU0NzU2LDU0NzU3LDU0NzYwLDU0NzY0LDU0NzcyLDU0NzczLDU0Nzc1LDU0''@;'; put 'put ''Nzc3LDU0Nzg0LDU0Nzg1LDU0Nzg4LDU0NzkyLDU0ODAwLDU0ODAxLDU0ODAzLDU0ODA0LDU0ODA1LDU0ODEyLDU0ODE2LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDU0ODIwLDU0ODI5LDU0ODQwLDU0ODQxLDU0ODQ0LDU0ODQ4LDU0ODUzLDU0ODU2LDU0ODU3LDU0ODU5LDU0ODYxLDU0ODY1LDU0ODY4LDU0ODY5LDU0ODcyLDU0ODc2LDU0ODg3LDU0ODg5LDU0''@;'; put 'put ''ODk2LDU0ODk3LDU0OTAwLDU0OTE1LDU0OTE3LDU0OTI0LDU0OTI1LDU0OTI4LDU0OTMyLDU0OTQxLDU0OTQzLDU0OTQ1LDU0OTUyLDU0OTU2LDU0OTYwLDU0OTY5LDU0OTcxLDU0OTgwLDU0OTgxLDU0OTg0LDU0OTg4LDU0OTkzLDU0OTk2LDU0OTk5LDU1MDAxLDU1MDA4LDU1MDEyLDU1MDE2''@;'; put 'put ''LDU1MDI0LDU1MDI5LDU1MDM2LDU1MDM3LDU1MDQwLDU1MDQ0LDU1MDU3LDU1MDY0LDU1MDY1LDU1MDY4LDU1MDcyLDU1MDgwLDU1MDgxLDU1MDgzLDU1MDg1LDU1MDkyLDU1MDkzLDU1MDk2LDU1MTAwLDU1MTA4LDU1MTExLDU1MTEzLDU1MTIwLDU1MTIxLDU1MTI0LDU1MTI2LDU1MTI3LDU1''@;'; put 'put ''MTI4LDU1MTI5LDU1MTM2LDU1MTM3LDU1MTM5LDU1MTQxLDU1MTQ1LDU1MTQ4LDU1MTUyLDU1MTU2LDU1MTY0LDU1MTY1LDU1MTY5LDU1MTc2LDU1MTc3LDU1MTgwLDU1MTg0LDU1MTkyLDU1MTkzLDU1MTk1LDU1MTk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjAyODUsMjAzMzksMjA1NTEsMjA3MjksMjExNTIsMjE0ODcsMjE2MjEsMjE3MzMsMjIwMjUsMjMyMzMsMjM0NzgsMjYyNDcsMjY1NTAsMjY1NTEsMjY2MDcsMjc0Njgs''@;'; put 'put ''Mjk2MzQsMzAxNDYsMzEyOTIsMzM0OTksMzM1NDAsMzQ5MDMsMzQ5NTIsMzUzODIsMzYwNDAsMzYzMDMsMzY2MDMsMzY4MzgsMzkzODEsMjEwNTEsMjEzNjQsMjE1MDgsMjQ2ODIsMjQ5MzIsMjc1ODAsMjk2NDcsMzMwNTAsMzUyNTgsMzUyODIsMzgzMDcsMjAzNTUsMjEwMDIsMjI3MTgsMjI5''@;'; put 'put ''MDQsMjMwMTQsMjQxNzgsMjQxODUsMjUwMzEsMjU1MzYsMjY0MzgsMjY2MDQsMjY3NTEsMjg1NjcsMzAyODYsMzA0NzUsMzA5NjUsMzEyNDAsMzE0ODcsMzE3NzcsMzI5MjUsMzMzOTAsMzMzOTMsMzU1NjMsMzgyOTEsMjAwNzUsMjE5MTcsMjYzNTksMjgyMTIsMzA4ODMsMzE0NjksMzM4ODMs''@;'; put 'put ''MzUwODgsMzQ2MzgsMzg4MjQsMjEyMDgsMjIzNTAsMjI1NzAsMjM4ODQsMjQ4NjMsMjUwMjIsMjUxMjEsMjU5NTQsMjY1NzcsMjcyMDQsMjgxODcsMjk5NzYsMzAxMzEsMzA0MzUsMzA2NDAsMzIwNTgsMzcwMzksMzc5NjksMzc5NzAsNDA4NTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjEyODMsMjM3MjQsMzAwMDIsMzI5ODcsMzc0NDAsMzgyOTYsMjEwODMs''@;'; put 'put ''MjI1MzYsMjMwMDQsMjM3MTMsMjM4MzEsMjQyNDcsMjQzNzgsMjQzOTQsMjQ5NTEsMjc3NDMsMzAwNzQsMzAwODYsMzE5NjgsMzIxMTUsMzIxNzcsMzI2NTIsMzMxMDgsMzMzMTMsMzQxOTMsMzUxMzcsMzU2MTEsMzc2MjgsMzg0NzcsNDAwMDcsMjAxNzEsMjAyMTUsMjA0OTEsMjA5NzcsMjI2''@;'; put 'put ''MDcsMjQ4ODcsMjQ4OTQsMjQ5MzYsMjU5MTMsMjcxMTQsMjg0MzMsMzAxMTcsMzAzNDIsMzA0MjIsMzE2MjMsMzM0NDUsMzM5OTUsNjM3NDQsMzc3OTksMzgyODMsMjE4ODgsMjM0NTgsMjIzNTMsNjM3NDUsMzE5MjMsMzI2OTcsMzczMDEsMjA1MjAsMjE0MzUsMjM2MjEsMjQwNDAsMjUyOTgs''@;'; put 'put ''MjU0NTQsMjU4MTgsMjU4MzEsMjgxOTIsMjg4NDQsMzEwNjcsMzYzMTcsMzYzODIsNjM3NDYsMzY5ODksMzc0NDUsMzc2MjQsMjAwOTQsMjAyMTQsMjA1ODEsMjQwNjIsMjQzMTQsMjQ4MzgsMjY5NjcsMzMxMzcsMzQzODgsMzY0MjMsMzc3NDksMzk0NjcsMjAwNjIsMjA2MjUsMjY0ODAsMjY2''@;'; put 'put ''ODgsMjA3NDUsMjExMzMsMjExMzgsMjcyOTgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsMzA2NTIsMzczOTIsNDA2NjAsMjExNjMsMjQ2MjMsMzY4NTAsMjA1NTIsMjUwMDEsMjU1ODEsMjU4MDIsMjY2ODQsMjcyNjgsMjg2MDgsMzMxNjAsMzUyMzMsMzg1NDgsMjI1MzMsMjkzMDksMjkzNTYsMjk5NTYsMzIxMjEsMzIzNjUsMzI5MzcsMzUyMTEsMzU3MDAsMzY5''@;'; put 'put ''NjMsNDAyNzMsMjUyMjUsMjc3NzAsMjg1MDAsMzIwODAsMzI1NzAsMzUzNjMsMjA4NjAsMjQ5MDYsMzE2NDUsMzU2MDksMzc0NjMsMzc3NzIsMjAxNDAsMjA0MzUsMjA1MTAsMjA2NzAsMjA3NDIsMjExODUsMjExOTcsMjEzNzUsMjIzODQsMjI2NTksMjQyMTgsMjQ0NjUsMjQ5NTAsMjUwMDQs''@;'; put 'put ''MjU4MDYsMjU5NjQsMjYyMjMsMjYyOTksMjYzNTYsMjY3NzUsMjgwMzksMjg4MDUsMjg5MTMsMjk4NTUsMjk4NjEsMjk4OTgsMzAxNjksMzA4MjgsMzA5NTYsMzE0NTUsMzE0NzgsMzIwNjksMzIxNDcsMzI3ODksMzI4MzEsMzMwNTEsMzM2ODYsMzU2ODYsMzY2MjksMzY4ODUsMzc4NTcsMzg5''@;'; put 'put ''MTUsMzg5NjgsMzk1MTQsMzk5MTIsMjA0MTgsMjE4NDMsMjI1ODYsMjI4NjUsMjMzOTUsMjM2MjIsMjQ3NjAsMjUxMDYsMjY2OTAsMjY4MDAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjY4NTYsMjgzMzAsMzAwMjgsMzAzMjgsMzA5MjYsMzEyOTMsMzE5OTUsMzIzNjMsMzIzODAsMzUzMzYsMzU0ODksMzU5MDMsMzg1NDIsNDAzODgsMjE0NzYsMjE0ODEsMjE1''@;'; put 'put ''NzgsMjE2MTcsMjIyNjYsMjI5OTMsMjMzOTYsMjM2MTEsMjQyMzUsMjUzMzUsMjU5MTEsMjU5MjUsMjU5NzAsMjYyNzIsMjY1NDMsMjcwNzMsMjc4MzcsMzAyMDQsMzAzNTIsMzA1OTAsMzEyOTUsMzI2NjAsMzI3NzEsMzI5MjksMzMxNjcsMzM1MTAsMzM1MzMsMzM3NzYsMzQyNDEsMzQ4NjUs''@;'; put 'put ''MzQ5OTYsMzU0OTMsNjM3NDcsMzY3NjQsMzc2NzgsMzg1OTksMzkwMTUsMzk2NDAsNDA3MjMsMjE3NDEsMjYwMTEsMjYzNTQsMjY3NjcsMzEyOTYsMzU4OTUsNDAyODgsMjIyNTYsMjIzNzIsMjM4MjUsMjYxMTgsMjY4MDEsMjY4MjksMjg0MTQsMjk3MzYsMzQ5NzQsMzk5MDgsMjc3NTIsNjM3''@;'; put 'put ''NDgsMzk1OTIsMjAzNzksMjA4NDQsMjA4NDksMjExNTEsMjMzODAsMjQwMzcsMjQ2NTYsMjQ2ODUsMjUzMjksMjU1MTEsMjU5MTUsMjk2NTcsMzEzNTQsMzQ0NjcsMzYwMDIsMzg3OTksMjAwMTgsMjM1MjEsMjUwOTYsMjY1MjQsMjk5MTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzExODUsMzM3NDcsMzU0NjMsMzU1MDYsMzYzMjgsMzY5NDIsMzc3MDcsMzg5''@;'; put 'put ''ODIsMjQyNzUsMjcxMTIsMzQzMDMsMzcxMDEsNjM3NDksMjA4OTYsMjM0NDgsMjM1MzIsMjQ5MzEsMjY4NzQsMjc0NTQsMjg3NDgsMjk3NDMsMjk5MTIsMzE2NDksMzI1OTIsMzM3MzMsMzUyNjQsMzYwMTEsMzgzNjQsMzkyMDgsMjEwMzgsMjQ2NjksMjUzMjQsMzY4NjYsMjAzNjIsMjA4MDks''@;'; put 'put ''MjEyODEsMjI3NDUsMjQyOTEsMjYzMzYsMjc5NjAsMjg4MjYsMjkzNzgsMjk2NTQsMzE1NjgsMzMwMDksMzc5NzksMjEzNTAsMjU0OTksMzI2MTksMjAwNTQsMjA2MDgsMjI2MDIsMjI3NTAsMjQ2MTgsMjQ4NzEsMjUyOTYsMjcwODgsMzk3NDUsMjM0MzksMzIwMjQsMzI5NDUsMzY3MDMsMjAx''@;'; put 'put ''MzIsMjA2ODksMjE2NzYsMjE5MzIsMjMzMDgsMjM5NjgsMjQwMzksMjU4OTgsMjU5MzQsMjY2NTcsMjcyMTEsMjk0MDksMzAzNTAsMzA3MDMsMzIwOTQsMzI3NjEsMzMxODQsMzQxMjYsMzQ1MjcsMzY2MTEsMzY2ODYsMzcwNjYsMzkxNzEsMzk1MDksMzk4NTEsMTk5OTIsMjAwMzcsMjAwNjEs''@;'; put 'put ''MjAxNjcsMjA0NjUsMjA4NTUsMjEyNDYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsMjEzMTIsMjE0NzUsMjE0NzcsMjE2NDYsMjIwMzYsMjIzODksMjI0MzQsMjM0OTUsMjM5NDMsMjQyNzIsMjUwODQsMjUzMDQsMjU5MzcsMjY1NTIsMjY2MDEsMjcwODMsMjc0NzIsMjc1OTAsMjc2MjgsMjc3MTQsMjgzMTcsMjg3OTIsMjkzOTksMjk1OTAsMjk2OTksMzA2NTUs''@;'; put 'put ''MzA2OTcsMzEzNTAsMzIxMjcsMzI3NzcsMzMyNzYsMzMyODUsMzMyOTAsMzM1MDMsMzQ5MTQsMzU2MzUsMzYwOTIsMzY1NDQsMzY4ODEsMzcwNDEsMzc0NzYsMzc1NTgsMzkzNzgsMzk0OTMsNDAxNjksNDA0MDcsNDA4NjAsMjIyODMsMjM2MTYsMzM3MzgsMzg4MTYsMzg4MjcsNDA2MjgsMjE1''@;'; put 'put ''MzEsMzEzODQsMzI2NzYsMzUwMzMsMzY1NTcsMzcwODksMjI1MjgsMjM2MjQsMjU0OTYsMzEzOTEsMjM0NzAsMjQzMzksMzEzNTMsMzE0MDYsMzM0MjIsMzY1MjQsMjA1MTgsMjEwNDgsMjEyNDAsMjEzNjcsMjIyODAsMjUzMzEsMjU0NTgsMjc0MDIsMjgwOTksMzA1MTksMjE0MTMsMjk1Mjcs''@;'; put 'put ''MzQxNTIsMzY0NzAsMzgzNTcsMjY0MjYsMjczMzEsMjg1MjgsMzU0MzcsMzY1NTYsMzkyNDMsNjM3NTAsMjYyMzEsMjc1MTIsMzYwMjAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzk3NDAsNjM3NTEsMjE0ODMsMjIzMTcsMjI4NjIsMjU1NDIsMjcxMzEsMjk2NzQsMzA3ODksMzE0MTgsMzE0MjksMzE5OTgsMzM5MDksMzUyMTUsMzYyMTEsMzY5MTcsMzgzMTIs''@;'; put 'put ''MjEyNDMsMjIzNDMsMzAwMjMsMzE1ODQsMzM3NDAsMzc0MDYsNjM3NTIsMjcyMjQsMjA4MTEsMjEwNjcsMjExMjcsMjUxMTksMjY4NDAsMjY5OTcsMzg1NTMsMjA2NzcsMjExNTYsMjEyMjAsMjUwMjcsMjYwMjAsMjY2ODEsMjcxMzUsMjk4MjIsMzE1NjMsMzM0NjUsMzM3NzEsMzUyNTAsMzU2''@;'; put 'put ''NDEsMzY4MTcsMzkyNDEsNjM3NTMsMjAxNzAsMjI5MzUsMjU4MTAsMjYxMjksMjcyNzgsMjk3NDgsMzExMDUsMzExNjUsMzM0NDksMzQ5NDIsMzQ5NDMsMzUxNjcsNjM3NTQsMzc2NzAsMjAyMzUsMjE0NTAsMjQ2MTMsMjUyMDEsMjc3NjIsMzIwMjYsMzIxMDIsMjAxMjAsMjA4MzQsMzA2ODQs''@;'; put 'put ''MzI5NDMsMjAyMjUsMjAyMzgsMjA4NTQsMjA4NjQsMjE5ODAsMjIxMjAsMjIzMzEsMjI1MjIsMjI1MjQsMjI4MDQsMjI4NTUsMjI5MzEsMjM0OTIsMjM2OTYsMjM4MjIsMjQwNDksMjQxOTAsMjQ1MjQsMjUyMTYsMjYwNzEsMjYwODMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjYzOTgsMjYzOTksMjY0NjIsMjY4MjcsMjY4MjAsMjcyMzEsMjc0NTAsMjc2ODMs''@;'; put 'put ''Mjc3NzMsMjc3NzgsMjgxMDMsMjk1OTIsMjk3MzQsMjk3MzgsMjk4MjYsMjk4NTksMzAwNzIsMzAwNzksMzA4NDksMzA5NTksMzEwNDEsMzEwNDcsMzEwNDgsMzEwOTgsMzE2MzcsMzJlMywzMjE4NiwzMjY0OCwzMjc3NCwzMjgxMywzMjkwOCwzNTM1MiwzNTY2MywzNTkxMiwzNjIxNSwzNzY2''@;'; put 'put ''NSwzNzY2OCwzOTEzOCwzOTI0OSwzOTQzOCwzOTQzOSwzOTUyNSw0MDU5NCwzMjIwMiwyMDM0MiwyMTUxMywyNTMyNiwyNjcwOCwzNzMyOSwyMTkzMSwyMDc5NCw2Mzc1NSw2Mzc1NiwyMzA2OCwyNTA2Miw2Mzc1NywyNTI5NSwyNTM0Myw2Mzc1OCw2Mzc1OSw2Mzc2MCw2Mzc2MSw2Mzc2Miw2''@;'; put 'put ''Mzc2MywzNzAyNyw2Mzc2NCw2Mzc2NSw2Mzc2Niw2Mzc2Nyw2Mzc2OCwzNTU4Miw2Mzc2OSw2Mzc3MCw2Mzc3MSw2Mzc3MiwyNjI2Miw2Mzc3MywyOTAxNCw2Mzc3NCw2Mzc3NSwzODYyNyw2Mzc3NiwyNTQyMywyNTQ2NiwyMTMzNSw2Mzc3NywyNjUxMSwyNjk3NiwyODI3NSw2Mzc3OCwzMDAw''@;'; put 'put ''Nyw2Mzc3OSw2Mzc4MCw2Mzc4MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCwzMjAxMyw2Mzc4Miw2Mzc4MywzNDkzMCwyMjIxOCwyMzA2NCw2Mzc4NCw2Mzc4NSw2Mzc4Niw2Mzc4Nyw2Mzc4OCwyMDAzNSw2Mzc4OSwyMDgzOSwyMjg1NiwyNjYwOCwzMjc4NCw2Mzc5MCwyMjg5OSwyNDE4MCwyNTc1NCwzMTE3OCwyNDU2NSwyNDY4NCwyNTI4OCwyNTQ2NywyMzUy''@;'; put 'put ''NywyMzUxMSwyMTE2Miw2Mzc5MSwyMjkwMCwyNDM2MSwyNDU5NCw2Mzc5Miw2Mzc5Myw2Mzc5NCwyOTc4NSw2Mzc5NSw2Mzc5Niw2Mzc5Nyw2Mzc5OCw2Mzc5OSw2MzgwMCwzOTM3Nyw2MzgwMSw2MzgwMiw2MzgwMyw2MzgwNCw2MzgwNSw2MzgwNiw2MzgwNyw2MzgwOCw2MzgwOSw2MzgxMCw2''@;'; put 'put ''MzgxMSwyODYxMSw2MzgxMiw2MzgxMywzMzIxNSwzNjc4NiwyNDgxNyw2MzgxNCw2MzgxNSwzMzEyNiw2MzgxNiw2MzgxNywyMzYxNSw2MzgxOCw2MzgxOSw2MzgyMCw2MzgyMSw2MzgyMiw2MzgyMyw2MzgyNCw2MzgyNSwyMzI3MywzNTM2NSwyNjQ5MSwzMjAxNiw2MzgyNiw2MzgyNyw2Mzgy''@;'; put 'put ''OCw2MzgyOSw2MzgzMCw2MzgzMSwzMzAyMSw2MzgzMiw2MzgzMywyMzYxMiwyNzg3NywyMTMxMSwyODM0NiwyMjgxMCwzMzU5MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMDAyNSwyMDE1MCwyMDI5NCwyMTkzNCwyMjI5NiwyMjcyNywyNDQwNiwyNjAzOSwyNjA4NiwyNzI2NCwyNzU3MywyODIzNywzMDcwMSwzMTQ3MSwzMTc3NCwzMjIyMiwzNDUwNywzNDk2''@;'; put 'put ''MiwzNzE3MCwzNzcyMywyNTc4NywyODYwNiwyOTU2MiwzMDEzNiwzNjk0OCwyMTg0NiwyMjM0OSwyNTAxOCwyNTgxMiwyNjMxMSwyODEyOSwyODI1MSwyODUyNSwyODYwMSwzMDE5MiwzMjgzNSwzMzIxMywzNDExMywzNTIwMywzNTUyNywzNTY3NCwzNzY2MywyNzc5NSwzMDAzNSwzMTU3Miwz''@;'; put 'put ''NjM2NywzNjk1NywyMTc3NiwyMjUzMCwyMjYxNiwyNDE2MiwyNTA5NSwyNTc1OCwyNjg0OCwzMDA3MCwzMTk1OCwzNDczOSw0MDY4MCwyMDE5NSwyMjQwOCwyMjM4MiwyMjgyMywyMzU2NSwyMzcyOSwyNDExOCwyNDQ1MywyNTE0MCwyNTgyNSwyOTYxOSwzMzI3NCwzNDk1NSwzNjAyNCwzODUz''@;'; put 'put ''OCw0MDY2NywyMzQyOSwyNDUwMywyNDc1NSwyMDQ5OCwyMDk5MiwyMTA0MCwyMjI5NCwyMjU4MSwyMjYxNSwyMzU2NiwyMzY0OCwyMzc5OCwyMzk0NywyNDIzMCwyNDQ2NiwyNDc2NCwyNTM2MSwyNTQ4MSwyNTYyMywyNjY5MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNjg3MywyNzMzMCwyODEyMCwyODE5MywyODM3MiwyODY0NCwyOTE4MiwzMDQyOCwzMDU4''@;'; put 'put ''NSwzMTE1MywzMTI5MSwzMzc5NiwzNTI0MSwzNjA3NywzNjMzOSwzNjQyNCwzNjg2NywzNjg4NCwzNjk0NywzNzExNywzNzcwOSwzODUxOCwzODg3NiwyNzYwMiwyODY3OCwyOTI3MiwyOTM0NiwyOTU0NCwzMDU2MywzMTE2NywzMTcxNiwzMjQxMSwzNTcxMiwyMjY5NywyNDc3NSwyNTk1OCwy''@;'; put 'put ''NjEwOSwyNjMwMiwyNzc4OCwyODk1OCwyOTEyOSwzNTkzMCwzODkzMSwyMDA3NywzMTM2MSwyMDE4OSwyMDkwOCwyMDk0MSwyMTIwNSwyMTUxNiwyNDk5OSwyNjQ4MSwyNjcwNCwyNjg0NywyNzkzNCwyODU0MCwzMDE0MCwzMDY0MywzMTQ2MSwzMzAxMiwzMzg5MSwzNzUwOSwyMDgyOCwyNjAw''@;'; put 'put ''NywyNjQ2MCwyNjUxNSwzMDE2OCwzMTQzMSwzMzY1MSw2MzgzNCwzNTkxMCwzNjg4NywzODk1NywyMzY2MywzMzIxNiwzMzQzNCwzNjkyOSwzNjk3NSwzNzM4OSwyNDQ3MSwyMzk2NSwyNzIyNSwyOTEyOCwzMDMzMSwzMTU2MSwzNDI3NiwzNTU4OCwzNzE1OSwzOTQ3MiwyMTg5NSwyNTA3OCw2''@;'; put 'put ''MzgzNSwzMDMxMywzMjY0NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCwzNDM2NywzNDc0NiwzNTA2NCwzNzAwNyw2MzgzNiwyNzkzMSwyODg4OSwyOTY2MiwzMjA5NywzMzg1Myw2MzgzNywzNzIyNiwzOTQwOSw2MzgzOCwyMDA5OCwyMTM2NSwyNzM5NiwyNzQxMCwyODczNCwyOTIxMSwzNDM0OSw0MDQ3OCwyMTA2OCwzNjc3MSwyMzg4OCwyNTgyOSwyNTkwMCwy''@;'; put 'put ''NzQxNCwyODY1MSwzMTgxMSwzMjQxMiwzNDI1MywzNTE3MiwzNTI2MSwyNTI4OSwzMzI0MCwzNDg0NywyNDI2NiwyNjM5MSwyODAxMCwyOTQzNiwyOTcwMSwyOTgwNywzNDY5MCwzNzA4NiwyMDM1OCwyMzgyMSwyNDQ4MCwzMzgwMiwyMDkxOSwyNTUwNCwzMDA1MywyMDE0MiwyMDQ4NiwyMDg0''@;'; put 'put ''MSwyMDkzNywyNjc1MywyNzE1MywzMTkxOCwzMTkyMSwzMTk3NSwzMzM5MSwzNTUzOCwzNjYzNSwzNzMyNywyMDQwNiwyMDc5MSwyMTIzNywyMTU3MCwyNDMwMCwyNDk0MiwyNTE1MCwyNjA1MywyNzM1NCwyODY3MCwzMTAxOCwzNDI2OCwzNDg1MSwzODMxNywzOTUyMiwzOTUzMCw0MDU5OSw0''@;'; put 'put ''MDY1NCwyMTE0NywyNjMxMCwyNzUxMSwyODcwMSwzMTAxOSwzNjcwNiwzODcyMiwyNDk3NiwyNTA4OCwyNTg5MSwyODQ1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyOTAwMSwyOTgzMywzMjI0NCwzMjg3OSwzNDAzMCwzNjY0NiwzNjg5OSwzNzcwNiwyMDkyNSwyMTAxNSwyMTE1NSwyNzkxNiwyODg3MiwzNTAxMCwyNDI2NSwyNTk4NiwyNzU2NiwyODYxMCwz''@;'; put 'put ''MTgwNiwyOTU1NywyMDE5NiwyMDI3OCwyMjI2NSw2MzgzOSwyMzczOCwyMzk5NCwyNDYwNCwyOTYxOCwzMTUzMywzMjY2NiwzMjcxOCwzMjgzOCwzNjg5NCwzNzQyOCwzODY0NiwzODcyOCwzODkzNiw0MDgwMSwyMDM2MywyODU4MywzMTE1MCwzNzMwMCwzODU4MywyMTIxNCw2Mzg0MCwyNTcz''@;'; put 'put ''NiwyNTc5NiwyNzM0NywyODUxMCwyODY5NiwyOTIwMCwzMDQzOSwzMjc2OSwzNDMxMCwzNDM5NiwzNjMzNSwzNjYxMywzODcwNiwzOTc5MSw0MDQ0Miw0MDU2NSwzMDg2MCwzMTEwMywzMjE2MCwzMzczNywzNzYzNiw0MDU3NSw0MDU5NSwzNTU0MiwyMjc1MSwyNDMyNCwyNjQwNywyODcxMSwy''@;'; put 'put ''OTkwMywzMTg0MCwzMjg5NCwyMDc2OSwyODcxMiwyOTI4MiwzMDkyMiwzNjAzNCwzNjA1OCwzNjA4NCwzODY0NywyMDEwMiwyMDY5OCwyMzUzNCwyNDI3OCwyNjAwOSwyOTEzNCwzMDI3NCwzMDYzNywzMjg0MiwzNDA0NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjk4OCwzOTcxOSw0MDg0NSwyMjc0NCwyMzEwNSwyMzY1MCwyNzE1NSwyODEyMiwyODQzMSwz''@;'; put 'put ''MDI2NywzMjA0NywzMjMxMSwzNDA3OCwzNTEyOCwzNzg2MCwzODQ3NSwyMTEyOSwyNjA2NiwyNjYxMSwyNzA2MCwyNzk2OSwyODMxNiwyODY4NywyOTcwNSwyOTc5MiwzMDA0MSwzMDI0NCwzMDgyNywzNTYyOCwzOTAwNiwyMDg0NSwyNTEzNCwzODUyMCwyMDM3NCwyMDUyMywyMzgzMywyODEz''@;'; put 'put ''OCwzMjE4NCwzNjY1MCwyNDQ1OSwyNDkwMCwyNjY0Nyw2Mzg0MSwzODUzNCwyMTIwMiwzMjkwNywyMDk1NiwyMDk0MCwyNjk3NCwzMTI2MCwzMjE5MCwzMzc3NywzODUxNywyMDQ0MiwyMTAzMywyMTQwMCwyMTUxOSwyMTc3NCwyMzY1MywyNDc0MywyNjQ0NiwyNjc5MiwyODAxMiwyOTMxMywy''@;'; put 'put ''OTQzMiwyOTcwMiwyOTgyNyw2Mzg0MiwzMDE3OCwzMTg1MiwzMjYzMywzMjY5NiwzMzY3MywzNTAyMywzNTA0MSwzNzMyNCwzNzMyOCwzODYyNiwzOTg4MSwyMTUzMywyODU0MiwyOTEzNiwyOTg0OCwzNDI5OCwzNjUyMiwzODU2Myw0MDAyMyw0MDYwNywyNjUxOSwyODEwNywyOTc0NywzMzI1''@;'; put 'put ''NiwzODY3OCwzMDc2NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwz''@;'; put 'put ''MTQzNSwzMTUyMCwzMTg5MCwyNTcwNSwyOTgwMiwzMDE5NCwzMDkwOCwzMDk1MiwzOTM0MCwzOTc2NCw0MDYzNSwyMzUxOCwyNDE0OSwyODQ0OCwzMzE4MCwzMzcwNywzN2UzLDE5OTc1LDIxMzI1LDIzMDgxLDI0MDE4LDI0Mzk4LDI0OTMwLDI1NDA1LDI2MjE3LDI2MzY0LDI4NDE1LDI4NDU5''@;'; put 'put ''LDI4NzcxLDMwNjIyLDMzODM2LDM0MDY3LDM0ODc1LDM2NjI3LDM5MjM3LDM5OTk1LDIxNzg4LDI1MjczLDI2NDExLDI3ODE5LDMzNTQ1LDM1MTc4LDM4Nzc4LDIwMTI5LDIyOTE2LDI0NTM2LDI0NTM3LDI2Mzk1LDMyMTc4LDMyNTk2LDMzNDI2LDMzNTc5LDMzNzI1LDM2NjM4LDM3MDE3LDIy''@;'; put 'put ''NDc1LDIyOTY5LDIzMTg2LDIzNTA0LDI2MTUxLDI2NTIyLDI2NzU3LDI3NTk5LDI5MDI4LDMyNjI5LDM2MDIzLDM2MDY3LDM2OTkzLDM5NzQ5LDMzMDMyLDM1OTc4LDM4NDc2LDM5NDg4LDQwNjEzLDIzMzkxLDI3NjY3LDI5NDY3LDMwNDUwLDMwNDMxLDMzODA0LDIwOTA2LDM1MjE5LDIwODEz''@;'; put 'put ''LDIwODg1LDIxMTkzLDI2ODI1LDI3Nzk2LDMwNDY4LDMwNDk2LDMyMTkxLDMyMjM2LDM4NzU0LDQwNjI5LDI4MzU3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM0MDY1LDIwOTAxLDIxNTE3LDIxNjI5LDI2MTI2LDI2MjY5LDI2OTE5LDI4MzE5LDMwMzk5LDMwNjA5LDMzNTU5LDMzOTg2LDM0NzE5LDM3MjI1LDM3NTI4LDQwMTgwLDM0OTQ2LDIwMzk4LDIwODgy''@;'; put 'put ''LDIxMjE1LDIyOTgyLDI0MTI1LDI0OTE3LDI1NzIwLDI1NzIxLDI2Mjg2LDI2NTc2LDI3MTY5LDI3NTk3LDI3NjExLDI5Mjc5LDI5MjgxLDI5NzYxLDMwNTIwLDMwNjgzLDMyNzkxLDMzNDY4LDMzNTQxLDM1NTg0LDM1NjI0LDM1OTgwLDI2NDA4LDI3NzkyLDI5Mjg3LDMwNDQ2LDMwNTY2LDMx''@;'; put 'put ''MzAyLDQwMzYxLDI3NTE5LDI3Nzk0LDIyODE4LDI2NDA2LDMzOTQ1LDIxMzU5LDIyNjc1LDIyOTM3LDI0Mjg3LDI1NTUxLDI2MTY0LDI2NDgzLDI4MjE4LDI5NDgzLDMxNDQ3LDMzNDk1LDM3NjcyLDIxMjA5LDI0MDQzLDI1MDA2LDI1MDM1LDI1MDk4LDI1Mjg3LDI1NzcxLDI2MDgwLDI2OTY5''@;'; put 'put ''LDI3NDk0LDI3NTk1LDI4OTYxLDI5Njg3LDMwMDQ1LDMyMzI2LDMzMzEwLDMzNTM4LDM0MTU0LDM1NDkxLDM2MDMxLDM4Njk1LDQwMjg5LDIyNjk2LDQwNjY0LDIwNDk3LDIxMDA2LDIxNTYzLDIxODM5LDI1OTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI3NzY2LDMyMDEwLDMyMDExLDMyODYyLDM0NDQyLDM4MjcyLDM4NjM5LDIxMjQ3LDI3Nzk3LDI5Mjg5''@;'; put 'put ''LDIxNjE5LDIzMTk0LDIzNjE0LDIzODgzLDI0Mzk2LDI0NDk0LDI2NDEwLDI2ODA2LDI2OTc5LDI4MjIwLDI4MjI4LDMwNDczLDMxODU5LDMyNjU0LDM0MTgzLDM1NTk4LDM2ODU1LDM4NzUzLDQwNjkyLDIzNzM1LDI0NzU4LDI0ODQ1LDI1MDAzLDI1OTM1LDI2MTA3LDI2MTA4LDI3NjY1LDI3''@;'; put 'put ''ODg3LDI5NTk5LDI5NjQxLDMyMjI1LDM4MjkyLDIzNDk0LDM0NTg4LDM1NjAwLDIxMDg1LDIxMzM4LDI1MjkzLDI1NjE1LDI1Nzc4LDI2NDIwLDI3MTkyLDI3ODUwLDI5NjMyLDI5ODU0LDMxNjM2LDMxODkzLDMyMjgzLDMzMTYyLDMzMzM0LDM0MTgwLDM2ODQzLDM4NjQ5LDM5MzYxLDIwMjc2''@;'; put 'put ''LDIxMzIyLDIxNDUzLDIxNDY3LDI1MjkyLDI1NjQ0LDI1ODU2LDI2MDAxLDI3MDc1LDI3ODg2LDI4NTA0LDI5Njc3LDMwMDM2LDMwMjQyLDMwNDM2LDMwNDYwLDMwOTI4LDMwOTcxLDMxMDIwLDMyMDcwLDMzMzI0LDM0Nzg0LDM2ODIwLDM4OTMwLDM5MTUxLDIxMTg3LDI1MzAwLDI1NzY1LDI4''@;'; put 'put ''MTk2LDI4NDk3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMwMzMy''@;'; put 'put ''LDM2Mjk5LDM3Mjk3LDM3NDc0LDM5NjYyLDM5NzQ3LDIwNTE1LDIwNjIxLDIyMzQ2LDIyOTUyLDIzNTkyLDI0MTM1LDI0NDM5LDI1MTUxLDI1OTE4LDI2MDQxLDI2MDQ5LDI2MTIxLDI2NTA3LDI3MDM2LDI4MzU0LDMwOTE3LDMyMDMzLDMyOTM4LDMzMTUyLDMzMzIzLDMzNDU5LDMzOTUzLDM0''@;'; put 'put ''NDQ0LDM1MzcwLDM1NjA3LDM3MDMwLDM4NDUwLDQwODQ4LDIwNDkzLDIwNDY3LDYzODQzLDIyNTIxLDI0NDcyLDI1MzA4LDI1NDkwLDI2NDc5LDI4MjI3LDI4OTUzLDMwNDAzLDMyOTcyLDMyOTg2LDM1MDYwLDM1MDYxLDM1MDk3LDM2MDY0LDM2NjQ5LDM3MTk3LDM4NTA2LDIwMjcxLDIwMzM2''@;'; put 'put ''LDI0MDkxLDI2NTc1LDI2NjU4LDMwMzMzLDMwMzM0LDM5NzQ4LDI0MTYxLDI3MTQ2LDI5MDMzLDI5MTQwLDMwMDU4LDYzODQ0LDMyMzIxLDM0MTE1LDM0MjgxLDM5MTMyLDIwMjQwLDMxNTY3LDMyNjI0LDM4MzA5LDIwOTYxLDI0MDcwLDI2ODA1LDI3NzEwLDI3NzI2LDI3ODY3LDI5MzU5LDMx''@;'; put 'put ''Njg0LDMzNTM5LDI3ODYxLDI5NzU0LDIwNzMxLDIxMTI4LDIyNzIxLDI1ODE2LDI3Mjg3LDI5ODYzLDMwMjk0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMwODg3LDM0MzI3LDM4MzcwLDM4NzEzLDYzODQ1LDIxMzQyLDI0MzIxLDM1NzIyLDM2Nzc2LDM2NzgzLDM3MDAyLDIxMDI5LDMwNjI5LDQwMDA5LDQwNzEyLDE5OTkzLDIwNDgyLDIwODUzLDIzNjQzLDI0''@;'; put 'put ''MTgzLDI2MTQyLDI2MTcwLDI2NTY0LDI2ODIxLDI4ODUxLDI5OTUzLDMwMTQ5LDMxMTc3LDMxNDUzLDM2NjQ3LDM5MjAwLDM5NDMyLDIwNDQ1LDIyNTYxLDIyNTc3LDIzNTQyLDI2MjIyLDI3NDkzLDI3OTIxLDI4MjgyLDI4NTQxLDI5NjY4LDI5OTk1LDMzNzY5LDM1MDM2LDM1MDkxLDM1Njc2''@;'; put 'put ''LDM2NjI4LDIwMjM5LDIwNjkzLDIxMjY0LDIxMzQwLDIzNDQzLDI0NDg5LDI2MzgxLDMxMTE5LDMzMTQ1LDMzNTgzLDM0MDY4LDM1MDc5LDM1MjA2LDM2NjY1LDM2NjY3LDM5MzMzLDM5OTU0LDI2NDEyLDIwMDg2LDIwNDcyLDIyODU3LDIzNTUzLDIzNzkxLDIzNzkyLDI1NDQ3LDI2ODM0LDI4''@;'; put 'put ''OTI1LDI5MDkwLDI5NzM5LDMyMjk5LDM0MDI4LDM0NTYyLDM2ODk4LDM3NTg2LDQwMTc5LDE5OTgxLDIwMTg0LDIwNDYzLDIwNjEzLDIxMDc4LDIxMTAzLDIxNTQyLDIxNjQ4LDIyNDk2LDIyODI3LDIzMTQyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIzMzg2LDIzNDEzLDIzNTAwLDI0MjIwLDYzODQ2LDI1MjA2LDI1OTc1LDI2MDIzLDI4MDE0LDI4MzI1LDI5''@;'; put 'put ''MjM4LDMxNTI2LDMxODA3LDMyNTY2LDMzMTA0LDMzMTA1LDMzMTc4LDMzMzQ0LDMzNDMzLDMzNzA1LDM1MzMxLDM2ZTMsMzYwNzAsMzYwOTEsMzYyMTIsMzYyODIsMzcwOTYsMzczNDAsMzg0MjgsMzg0NjgsMzkzODUsNDAxNjcsMjEyNzEsMjA5OTgsMjE1NDUsMjIxMzIsMjI3MDcsMjI4Njgs''@;'; put 'put ''MjI4OTQsMjQ1NzUsMjQ5OTYsMjUxOTgsMjYxMjgsMjc3NzQsMjg5NTQsMzA0MDYsMzE4ODEsMzE5NjYsMzIwMjcsMzM0NTIsMzYwMzMsMzg2NDAsNjM4NDcsMjAzMTUsMjQzNDMsMjQ0NDcsMjUyODIsMjM4NDksMjYzNzksMjY4NDIsMzA4NDQsMzIzMjMsNDAzMDAsMTk5ODksMjA2MzMsMjEy''@;'; put 'put ''NjksMjEyOTAsMjEzMjksMjI5MTUsMjMxMzgsMjQxOTksMjQ3NTQsMjQ5NzAsMjUxNjEsMjUyMDksMjZlMywyNjUwMywyNzA0NywyNzYwNCwyNzYwNiwyNzYwNywyNzYwOCwyNzgzMiw2Mzg0OCwyOTc0OSwzMDIwMiwzMDczOCwzMDg2NSwzMTE4OSwzMTE5MiwzMTg3NSwzMjIwMywzMjczNywz''@;'; put 'put ''MjkzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMzA4NiwzMzIx''@;'; put 'put ''OCwzMzc3OCwzNDU4NiwzNTA0OCwzNTUxMywzNTY5MiwzNjAyNywzNzE0NSwzODc1MCwzOTEzMSw0MDc2MywyMjE4OCwyMzMzOCwyNDQyOCwyNTk5NiwyNzMxNSwyNzU2NywyNzk5NiwyODY1NywyODY5MywyOTI3NywyOTYxMywzNjAwNywzNjA1MSwzODk3MSwyNDk3NywyNzcwMywzMjg1Niwz''@;'; put 'put ''OTQyNSwyMDA0NSwyMDEwNywyMDEyMywyMDE4MSwyMDI4MiwyMDI4NCwyMDM1MSwyMDQ0NywyMDczNSwyMTQ5MCwyMTQ5NiwyMTc2NiwyMTk4NywyMjIzNSwyMjc2MywyMjg4MiwyMzA1NywyMzUzMSwyMzU0NiwyMzU1NiwyNDA1MSwyNDEwNywyNDQ3MywyNDYwNSwyNTQ0OCwyNjAxMiwyNjAz''@;'; put 'put ''MSwyNjYxNCwyNjYxOSwyNjc5NywyNzUxNSwyNzgwMSwyNzg2MywyODE5NSwyODY4MSwyOTUwOSwzMDcyMiwzMTAzOCwzMTA0MCwzMTA3MiwzMTE2OSwzMTcyMSwzMjAyMywzMjExNCwzMjkwMiwzMzI5MywzMzY3OCwzNDAwMSwzNDUwMywzNTAzOSwzNTQwOCwzNTQyMiwzNTYxMywzNjA2MCwz''@;'; put 'put ''NjE5OCwzNjc4MSwzNzAzNCwzOTE2NCwzOTM5MSw0MDYwNSwyMTA2Niw2Mzg0OSwyNjM4OCw2Mzg1MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMDYzMiwyMTAzNCwyMzY2NSwyNTk1NSwyNzczMywyOTY0MiwyOTk4NywzMDEwOSwzMTYzOSwzMzk0OCwzNzI0MCwzODcwNCwyMDA4NywyNTc0NiwyNzU3OCwyOTAyMiwzNDIxNywxOTk3Nyw2Mzg1MSwyNjQ0MSwy''@;'; put 'put ''Njg2MiwyODE4MywzMzQzOSwzNDA3MiwzNDkyMywyNTU5MSwyODU0NSwzNzM5NCwzOTA4NywxOTk3OCwyMDY2MywyMDY4NywyMDc2NywyMTgzMCwyMTkzMCwyMjAzOSwyMzM2MCwyMzU3NywyMzc3NiwyNDEyMCwyNDIwMiwyNDIyNCwyNDI1OCwyNDgxOSwyNjcwNSwyNzIzMywyODI0OCwyOTI0''@;'; put 'put ''NSwyOTI0OCwyOTM3NiwzMDQ1NiwzMTA3NywzMTY2NSwzMjcyNCwzNTA1OSwzNTMxNiwzNTQ0MywzNTkzNywzNjA2MiwzODY4NCwyMjYyMiwyOTg4NSwzNjA5MywyMTk1OSw2Mzg1MiwzMTMyOSwzMjAzNCwzMzM5NCwyOTI5OCwyOTk4MywyOTk4OSw2Mzg1MywzMTUxMywyMjY2MSwyMjc3OSwy''@;'; put 'put ''Mzk5NiwyNDIwNywyNDI0NiwyNDQ2NCwyNDY2MSwyNTIzNCwyNTQ3MSwyNTkzMywyNjI1NywyNjMyOSwyNjM2MCwyNjY0NiwyNjg2NiwyOTMxMiwyOTc5MCwzMTU5OCwzMjExMCwzMjIxNCwzMjYyNixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjk5NywzMzI5OCwzNDIyMywzNTE5OSwzNTQ3NSwzNjg5MywzNzYwNCw0MDY1Myw0MDczNiwyMjgwNSwyMjg5Mywy''@;'; put 'put ''NDEwOSwyNDc5NiwyNjEzMiwyNjIyNywyNjUxMiwyNzcyOCwyODEwMSwyODUxMSwzMDcwNywzMDg4OSwzMzk5MCwzNzMyMywzNzY3NSwyMDE4NSwyMDY4MiwyMDgwOCwyMTg5MiwyMzMwNywyMzQ1OSwyNTE1OSwyNTk4MiwyNjA1OSwyODIxMCwyOTA1MywyOTY5NywyOTc2NCwyOTgzMSwyOTg4''@;'; put 'put ''NywzMDMxNiwzMTE0NiwzMjIxOCwzMjM0MSwzMjY4MCwzMzE0NiwzMzIwMywzMzMzNywzNDMzMCwzNDc5NiwzNTQ0NSwzNjMyMywzNjk4NCwzNzUyMSwzNzkyNSwzOTI0NSwzOTg1NCwyMTM1MiwyMzYzMywyNjk2NCwyNzg0NCwyNzk0NSwyODIwMywzMzI5MiwzNDIwMywzNTEzMSwzNTM3Mywz''@;'; put 'put ''NTQ5OCwzODYzNCw0MDgwNywyMTA4OSwyNjI5NywyNzU3MCwzMjQwNiwzNDgxNCwzNjEwOSwzODI3NSwzODQ5MywyNTg4NSwyODA0MSwyOTE2Niw2Mzg1NCwyMjQ3OCwyMjk5NSwyMzQ2OCwyNDYxNSwyNDgyNiwyNTEwNCwyNjE0MywyNjIwNywyOTQ4MSwyOTY4OSwzMDQyNywzMDQ2NSwzMTU5''@;'; put 'put ''NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMjg1NCwzMjg4Miwz''@;'; put 'put ''MzEyNSwzNTQ4OCwzNzI2NiwxOTk5MCwyMTIxOCwyNzUwNiwyNzkyNywzMTIzNywzMTU0NSwzMjA0OCw2Mzg1NSwzNjAxNiwyMTQ4NCwyMjA2MywyMjYwOSwyMzQ3NywyMzU2NywyMzU2OSwyNDAzNCwyNTE1MiwyNTQ3NSwyNTYyMCwyNjE1NywyNjgwMywyNzgzNiwyODA0MCwyODMzNSwyODcw''@;'; put 'put ''MywyODgzNiwyOTEzOCwyOTk5MCwzMDA5NSwzMDA5NCwzMDIzMywzMTUwNSwzMTcxMiwzMTc4NywzMjAzMiwzMjA1NywzNDA5MiwzNDE1NywzNDMxMSwzNTM4MCwzNjg3NywzNjk2MSwzNzA0NSwzNzU1OSwzODkwMiwzOTQ3OSwyMDQzOSwyMzY2MCwyNjQ2MywyODA0OSwzMTkwMywzMjM5Niwz''@;'; put 'put ''NTYwNiwzNjExOCwzNjg5NSwyMzQwMywyNDA2MSwyNTYxMywzMzk4NCwzNjk1NiwzOTEzNywyOTU3NSwyMzQzNSwyNDczMCwyNjQ5NCwyODEyNiwzNTM1OSwzNTQ5NCwzNjg2NSwzODkyNCwyMTA0Nyw2Mzg1NiwyODc1MywzMDg2MiwzNzc4MiwzNDkyOCwzNzMzNSwyMDQ2MiwyMTQ2MywyMjAx''@;'; put 'put ''MywyMjIzNCwyMjQwMiwyMjc4MSwyMzIzNCwyMzQzMiwyMzcyMywyMzc0NCwyNDEwMSwyNDgzMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNTEwMSwyNTE2MywyNTQ4MCwyNTYyOCwyNTkxMCwyNTk3NiwyNzE5MywyNzUzMCwyNzcwMCwyNzkyOSwyODQ2NSwyOTE1OSwyOTQxNywyOTU2MCwyOTcwMywyOTg3NCwzMDI0NiwzMDU2MSwzMTE2OCwzMTMxOSwzMTQ2''@;'; put 'put ''NiwzMTkyOSwzMjE0MywzMjE3MiwzMjM1MywzMjY3MCwzMzA2NSwzMzU4NSwzMzkzNiwzNDAxMCwzNDI4MiwzNDk2NiwzNTUwNCwzNTcyOCwzNjY2NCwzNjkzMCwzNjk5NSwzNzIyOCwzNzUyNiwzNzU2MSwzODUzOSwzODU2NywzODU2OCwzODYxNCwzODY1NiwzODkyMCwzOTMxOCwzOTYzNSwz''@;'; put 'put ''OTcwNiwyMTQ2MCwyMjY1NCwyMjgwOSwyMzQwOCwyMzQ4NywyODExMywyODUwNiwyOTA4NywyOTcyOSwyOTg4MSwzMjkwMSwzMzc4OSwyNDAzMywyNDQ1NSwyNDQ5MCwyNDY0MiwyNjA5MiwyNjY0MiwyNjk5MSwyNzIxOSwyNzUyOSwyNzk1NywyODE0NywyOTY2NywzMDQ2MiwzMDYzNiwzMTU2''@;'; put 'put ''NSwzMjAyMCwzMzA1OSwzMzMwOCwzMzYwMCwzNDAzNiwzNDE0NywzNTQyNiwzNTUyNCwzNzI1NSwzNzY2MiwzODkxOCwzOTM0OCwyNTEwMCwzNDg5OSwzNjg0OCwzNzQ3NywyMzgxNSwyMzg0NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMzkxMywyOTc5MSwzMzE4MSwzNDY2NCwyODYyOSwyNTM0MiwzMjcyMiwzNTEyNiwzNTE4NiwxOTk5OCwyMDA1NiwyMDcx''@;'; put 'put ''MSwyMTIxMywyMTMxOSwyNTIxNSwyNjExOSwzMjM2MSwzNDgyMSwzODQ5NCwyMDM2NSwyMTI3MywyMjA3MCwyMjk4NywyMzIwNCwyMzYwOCwyMzYzMCwyMzYyOSwyNDA2NiwyNDMzNywyNDY0MywyNjA0NSwyNjE1OSwyNjE3OCwyNjU1OCwyNjYxMiwyOTQ2OCwzMDY5MCwzMTAzNCwzMjcwOSwz''@;'; put 'put ''Mzk0MCwzMzk5NywzNTIyMiwzNTQzMCwzNTQzMywzNTU1MywzNTkyNSwzNTk2MiwyMjUxNiwyMzUwOCwyNDMzNSwyNDY4NywyNTMyNSwyNjg5MywyNzU0MiwyODI1MiwyOTA2MCwzMTY5OCwzNDY0NSwzNTY3MiwzNjYwNiwzOTEzNSwzOTE2NiwyMDI4MCwyMDM1MywyMDQ0OSwyMTYyNywyMzA3''@;'; put 'put ''MiwyMzQ4MCwyNDg5MiwyNjAzMiwyNjIxNiwyOTE4MCwzMDAwMywzMTA3MCwzMjA1MSwzMzEwMiwzMzI1MSwzMzY4OCwzNDIxOCwzNDI1NCwzNDU2MywzNTMzOCwzNjUyMywzNjc2Myw2Mzg1NywzNjgwNSwyMjgzMywyMzQ2MCwyMzUyNiwyNDcxMywyMzUyOSwyMzU2MywyNDUxNSwyNzc3Nyxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2Mzg1OCwyODE0NSwyODY4''@;'; put 'put ''MywyOTk3OCwzMzQ1NSwzNTU3NCwyMDE2MCwyMTMxMyw2Mzg1OSwzODYxNywyNzY2MywyMDEyNiwyMDQyMCwyMDgxOCwyMTg1NCwyMzA3NywyMzc4NCwyNTEwNSwyOTI3MywzMzQ2OSwzMzcwNiwzNDU1OCwzNDkwNSwzNTM1NywzODQ2MywzODU5NywzOTE4Nyw0MDIwMSw0MDI4NSwyMjUzOCwy''@;'; put 'put ''MzczMSwyMzk5NywyNDEzMiwyNDgwMSwyNDg1MywyNTU2OSwyNzEzOCwyODE5NywzNzEyMiwzNzcxNiwzODk5MCwzOTk1Miw0MDgyMywyMzQzMywyMzczNiwyNTM1MywyNjE5MSwyNjY5NiwzMDUyNCwzODU5MywzODc5NywzODk5NiwzOTgzOSwyNjAxNywzNTU4NSwzNjU1NSwzODMzMiwyMTgx''@;'; put 'put ''MywyMzcyMSwyNDAyMiwyNDI0NSwyNjI2MywzMDI4NCwzMzc4MCwzODM0MywyMjczOSwyNTI3NiwyOTM5MCw0MDIzMiwyMDIwOCwyMjgzMCwyNDU5MSwyNjE3MSwyNzUyMywzMTIwNyw0MDIzMCwyMTM5NSwyMTY5NiwyMjQ2NywyMzgzMCwyNDg1OSwyNjMyNiwyODA3OSwzMDg2MSwzMzQwNiwz''@;'; put 'put ''ODU1MiwzODcyNCwyMTM4MCwyNTIxMiwyNTQ5NCwyODA4MiwzMjI2NiwzMzA5OSwzODk4OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNzM4NywzMjU4OCw0MDM2Nyw0MDQ3NCwyMDA2MywyMDUzOSwyMDkxOCwyMjgxMiwyNDgyNSwyNTU5MCwyNjkyOCwyOTI0MiwzMjgyMiw2Mzg2MCwzNzMyNiwyNDM2OSw2Mzg2MSw2Mzg2MiwzMjAwNCwzMzUwOSwzMzkwMywz''@;'; put 'put ''Mzk3OSwzNDI3NywzNjQ5Myw2Mzg2MywyMDMzNSw2Mzg2NCw2Mzg2NSwyMjc1NiwyMzM2MywyNDY2NSwyNTU2MiwyNTg4MCwyNTk2NSwyNjI2NCw2Mzg2NiwyNjk1NCwyNzE3MSwyNzkxNSwyODY3MywyOTAzNiwzMDE2MiwzMDIyMSwzMTE1NSwzMTM0NCw2Mzg2NywzMjY1MCw2Mzg2OCwzNTE0''@;'; put 'put ''MCw2Mzg2OSwzNTczMSwzNzMxMiwzODUyNSw2Mzg3MCwzOTE3OCwyMjI3NiwyNDQ4MSwyNjA0NCwyODQxNywzMDIwOCwzMTE0MiwzNTQ4NiwzOTM0MSwzOTc3MCw0MDgxMiwyMDc0MCwyNTAxNCwyNTIzMywyNzI3NywzMzIyMiwyMDU0NywyMjU3NiwyNDQyMiwyODkzNywzNTMyOCwzNTU3OCwy''@;'; put 'put ''MzQyMCwzNDMyNiwyMDQ3NCwyMDc5NiwyMjE5NiwyMjg1MiwyNTUxMywyODE1MywyMzk3OCwyNjk4OSwyMDg3MCwyMDEwNCwyMDMxMyw2Mzg3MSw2Mzg3Miw2Mzg3MywyMjkxNCw2Mzg3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2Mzg3NSwyNzQ4NywyNzc0MSw2Mzg3NiwyOTg3NywzMDk5OCw2Mzg3NywzMzI4NywzMzM0OSwzMzU5MywzNjY3MSwzNjcwMSw2''@;'; put 'put ''Mzg3OCwzOTE5Miw2Mzg3OSw2Mzg4MCw2Mzg4MSwyMDEzNCw2Mzg4MiwyMjQ5NSwyNDQ0MSwyNjEzMSw2Mzg4Myw2Mzg4NCwzMDEyMywzMjM3NywzNTY5NSw2Mzg4NSwzNjg3MCwzOTUxNSwyMjE4MSwyMjU2NywyMzAzMiwyMzA3MSwyMzQ3Niw2Mzg4NiwyNDMxMCw2Mzg4Nyw2Mzg4OCwyNTQy''@;'; put 'put ''NCwyNTQwMyw2Mzg4OSwyNjk0MSwyNzc4MywyNzgzOSwyODA0NiwyODA1MSwyODE0OSwyODQzNiw2Mzg5MCwyODg5NSwyODk4MiwyOTAxNyw2Mzg5MSwyOTEyMywyOTE0MSw2Mzg5MiwzMDc5OSwzMDgzMSw2Mzg5MywzMTYwNSwzMjIyNyw2Mzg5NCwzMjMwMyw2Mzg5NSwzNDg5MywzNjU3NSw2''@;'; put 'put ''Mzg5Niw2Mzg5Nyw2Mzg5OCwzNzQ2Nyw2Mzg5OSw0MDE4Miw2MzkwMCw2MzkwMSw2MzkwMiwyNDcwOSwyODAzNyw2MzkwMywyOTEwNSw2MzkwNCw2MzkwNSwzODMyMSwyMTQyMSw2MzkwNiw2MzkwNyw2MzkwOCwyNjU3OSw2MzkwOSwyODgxNCwyODk3NiwyOTc0NCwzMzM5OCwzMzQ5MCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2MzkxMCwzODMzMSwzOTY1Myw0''@;'; put 'put ''MDU3MywyNjMwOCw2MzkxMSwyOTEyMSwzMzg2NSw2MzkxMiw2MzkxMywyMjYwMyw2MzkxNCw2MzkxNSwyMzk5MiwyNDQzMyw2MzkxNiwyNjE0NCwyNjI1NCwyNzAwMSwyNzA1NCwyNzcwNCwyNzg5MSwyODIxNCwyODQ4MSwyODYzNCwyODY5OSwyODcxOSwyOTAwOCwyOTE1MSwyOTU1Miw2Mzkx''@;'; put 'put ''NywyOTc4Nyw2MzkxOCwyOTkwOCwzMDQwOCwzMTMxMCwzMjQwMyw2MzkxOSw2MzkyMCwzMzUyMSwzNTQyNCwzNjgxNCw2MzkyMSwzNzcwNCw2MzkyMiwzODY4MSw2MzkyMyw2MzkyNCwyMDAzNCwyMDUyMiw2MzkyNSwyMWUzLDIxNDczLDI2MzU1LDI3NzU3LDI4NjE4LDI5NDUwLDMwNTkxLDMx''@;'; put 'put ''MzMwLDMzNDU0LDM0MjY5LDM0MzA2LDYzOTI2LDM1MDI4LDM1NDI3LDM1NzA5LDM1OTQ3LDYzOTI3LDM3NTU1LDYzOTI4LDM4Njc1LDM4OTI4LDIwMTE2LDIwMjM3LDIwNDI1LDIwNjU4LDIxMzIwLDIxNTY2LDIxNTU1LDIxOTc4LDIyNjI2LDIyNzE0LDIyODg3LDIzMDY3LDIzNTI0LDI0NzM1''@;'; put 'put ''LDYzOTI5LDI1MDM0LDI1OTQyLDI2MTExLDI2MjEyLDI2NzkxLDI3NzM4LDI4NTk1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDI4ODc5LDI5MTAwLDI5NTIyLDMxNjEzLDM0NTY4LDM1NDkyLDM5OTg2LDQwNzExLDIzNjI3LDI3Nzc5LDI5NTA4LDI5NTc3LDM3NDM0LDI4MzMxLDI5Nzk3LDMwMjM5LDMxMzM3LDMyMjc3LDM0MzE0LDIwODAwLDIyNzI1LDI1Nzkz''@;'; put 'put ''LDI5OTM0LDI5OTczLDMwMzIwLDMyNzA1LDM3MDEzLDM4NjA1LDM5MjUyLDI4MTk4LDI5OTI2LDMxNDAxLDMxNDAyLDMzMjUzLDM0NTIxLDM0NjgwLDM1MzU1LDIzMTEzLDIzNDM2LDIzNDUxLDI2Nzg1LDI2ODgwLDI4MDAzLDI5NjA5LDI5NzE1LDI5NzQwLDMwODcxLDMyMjMzLDMyNzQ3LDMz''@;'; put 'put ''MDQ4LDMzMTA5LDMzNjk0LDM1OTE2LDM4NDQ2LDM4OTI5LDI2MzUyLDI0NDQ4LDI2MTA2LDI2NTA1LDI3NzU0LDI5NTc5LDIwNTI1LDIzMDQzLDI3NDk4LDMwNzAyLDIyODA2LDIzOTE2LDI0MDEzLDI5NDc3LDMwMDMxLDYzOTMwLDYzOTMxLDIwNzA5LDIwOTg1LDIyNTc1LDIyODI5LDIyOTM0''@;'; put 'put ''LDIzMDAyLDIzNTI1LDYzOTMyLDYzOTMzLDIzOTcwLDI1MzAzLDI1NjIyLDI1NzQ3LDI1ODU0LDYzOTM0LDI2MzMyLDYzOTM1LDI3MjA4LDYzOTM2LDI5MTgzLDI5Nzk2LDYzOTM3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDMxMzY4LDMxNDA3LDMyMzI3LDMyMzUwLDMyNzY4LDMzMTM2LDYzOTM4LDM0Nzk5LDM1MjAxLDM1NjE2LDM2OTUzLDYzOTM5LDM2OTky''@;'; put 'put ''LDM5MjUwLDI0OTU4LDI3NDQyLDI4MDIwLDMyMjg3LDM1MTA5LDM2Nzg1LDIwNDMzLDIwNjUzLDIwODg3LDIxMTkxLDIyNDcxLDIyNjY1LDIzNDgxLDI0MjQ4LDI0ODk4LDI3MDI5LDI4MDQ0LDI4MjYzLDI4MzQyLDI5MDc2LDI5Nzk0LDI5OTkyLDI5OTk2LDMyODgzLDMzNTkyLDMzOTkzLDM2''@;'; put 'put ''MzYyLDM3NzgwLDM3ODU0LDYzOTQwLDIwMTEwLDIwMzA1LDIwNTk4LDIwNzc4LDIxNDQ4LDIxNDUxLDIxNDkxLDIzNDMxLDIzNTA3LDIzNTg4LDI0ODU4LDI0OTYyLDI2MTAwLDI5Mjc1LDI5NTkxLDI5NzYwLDMwNDAyLDMxMDU2LDMxMTIxLDMxMTYxLDMyMDA2LDMyNzAxLDMzNDE5LDM0MjYx''@;'; put 'put ''LDM0Mzk4LDM2ODAyLDM2OTM1LDM3MTA5LDM3MzU0LDM4NTMzLDM4NjMyLDM4NjMzLDIxMjA2LDI0NDIzLDI2MDkzLDI2MTYxLDI2NjcxLDI5MDIwLDMxMjg2LDM3MDU3LDM4OTIyLDIwMTEzLDYzOTQxLDI3MjE4LDI3NTUwLDI4NTYwLDI5MDY1LDMyNzkyLDMzNDY0LDM0MTMxLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM2OTM5LDM4NTQ5LDM4NjQyLDM4OTA3''@;'; put 'put ''LDM0MDc0LDM5NzI5LDIwMTEyLDI5MDY2LDM4NTk2LDIwODAzLDIxNDA3LDIxNzI5LDIyMjkxLDIyMjkwLDIyNDM1LDIzMTk1LDIzMjM2LDIzNDkxLDI0NjE2LDI0ODk1LDI1NTg4LDI3NzgxLDI3OTYxLDI4Mjc0LDI4MzA0LDI5MjMyLDI5NTAzLDI5NzgzLDMzNDg5LDM0OTQ1LDM2Njc3LDM2''@;'; put 'put ''OTYwLDYzOTQyLDM4NDk4LDM5ZTMsNDAyMTksMjYzNzYsMzYyMzQsMzc0NzAsMjAzMDEsMjA1NTMsMjA3MDIsMjEzNjEsMjIyODUsMjI5OTYsMjMwNDEsMjM1NjEsMjQ5NDQsMjYyNTYsMjgyMDUsMjkyMzQsMjk3NzEsMzIyMzksMzI5NjMsMzM4MDYsMzM4OTQsMzQxMTEsMzQ2NTUsMzQ5MDcs''@;'; put 'put ''MzUwOTYsMzU1ODYsMzY5NDksMzg4NTksMzk3NTksMjAwODMsMjAzNjksMjA3NTQsMjA4NDIsNjM5NDMsMjE4MDcsMjE5MjksMjM0MTgsMjM0NjEsMjQxODgsMjQxODksMjQyNTQsMjQ3MzYsMjQ3OTksMjQ4NDAsMjQ4NDEsMjU1NDAsMjU5MTIsMjYzNzcsNjM5NDQsMjY1ODAsMjY1ODYsNjM5''@;'; put 'put ''NDUsMjY5NzcsMjY5NzgsMjc4MzMsMjc5NDMsNjM5NDYsMjgyMTYsNjM5NDcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjg2NDEsMjk0OTQsMjk0OTUsNjM5NDgsMjk3ODgsMzAwMDEsNjM5NDksMzAyOTAsNjM5NTAsNjM5NTEsMzIxNzMsMzMyNzgsMzM4NDgsMzUwMjksMzU0ODAsMzU1NDcsMzU1NjUsMzY0MDAsMzY0MTgsMzY5MzgsMzY5MjYsMzY5ODYsMzcx''@;'; put 'put ''OTMsMzczMjEsMzc3NDIsNjM5NTIsNjM5NTMsMjI1MzcsNjM5NTQsMjc2MDMsMzI5MDUsMzI5NDYsNjM5NTUsNjM5NTYsMjA4MDEsMjI4OTEsMjM2MDksNjM5NTcsNjM5NTgsMjg1MTYsMjk2MDcsMzI5OTYsMzYxMDMsNjM5NTksMzczOTksMzgyODcsNjM5NjAsNjM5NjEsNjM5NjIsNjM5NjMs''@;'; put 'put ''MzI4OTUsMjUxMDIsMjg3MDAsMzIxMDQsMzQ3MDEsNjM5NjQsMjI0MzIsMjQ2ODEsMjQ5MDMsMjc1NzUsMzU1MTgsMzc1MDQsMzg1NzcsMjAwNTcsMjE1MzUsMjgxMzksMzQwOTMsMzg1MTIsMzg4OTksMzkxNTAsMjU1NTgsMjc4NzUsMzcwMDksMjA5NTcsMjUwMzMsMzMyMTAsNDA0NDEsMjAz''@;'; put 'put ''ODEsMjA1MDYsMjA3MzYsMjM0NTIsMjQ4NDcsMjUwODcsMjU4MzYsMjY4ODUsMjc1ODksMzAwOTcsMzA2OTEsMzI2ODEsMzMzODAsMzQxOTEsMzQ4MTEsMzQ5MTUsMzU1MTYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzU2OTYsMzcyOTEsMjAxMDgsMjAxOTcsMjAyMzQsNjM5NjUsNjM5NjYsMjI4MzksMjMwMTYsNjM5NjcsMjQwNTAsMjQzNDcsMjQ0MTEsMjQ2''@;'; put 'put ''MDksNjM5NjgsNjM5NjksNjM5NzAsNjM5NzEsMjkyNDYsMjk2NjksNjM5NzIsMzAwNjQsMzAxNTcsNjM5NzMsMzEyMjcsNjM5NzQsMzI3ODAsMzI4MTksMzI5MDAsMzM1MDUsMzM2MTcsNjM5NzUsNjM5NzYsMzYwMjksMzYwMTksMzY5OTksNjM5NzcsNjM5NzgsMzkxNTYsMzkxODAsNjM5Nzks''@;'; put 'put ''NjM5ODAsMjg3MjcsMzA0MTAsMzI3MTQsMzI3MTYsMzI3NjQsMzU2MTAsMjAxNTQsMjAxNjEsMjA5OTUsMjEzNjAsNjM5ODEsMjE2OTMsMjIyNDAsMjMwMzUsMjM0OTMsMjQzNDEsMjQ1MjUsMjgyNzAsNjM5ODIsNjM5ODMsMzIxMDYsMzM1ODksNjM5ODQsMzQ0NTEsMzU0NjksNjM5ODUsMzg3''@;'; put 'put ''NjUsMzg3NzUsNjM5ODYsNjM5ODcsMTk5NjgsMjAzMTQsMjAzNTAsMjI3NzcsMjYwODUsMjgzMjIsMzY5MjAsMzc4MDgsMzkzNTMsMjAyMTksMjI3NjQsMjI5MjIsMjMwMDEsMjQ2NDEsNjM5ODgsNjM5ODksMzEyNTIsNjM5OTAsMzM2MTUsMzYwMzUsMjA4MzcsMjEzMTYsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjM5OTEsNjM5OTIsNjM5OTMsMjAxNzMsMjEw''@;'; put 'put ''OTcsMjMzODEsMzM0NzEsMjAxODAsMjEwNTAsMjE2NzIsMjI5ODUsMjMwMzksMjMzNzYsMjMzODMsMjMzODgsMjQ2NzUsMjQ5MDQsMjgzNjMsMjg4MjUsMjkwMzgsMjk1NzQsMjk5NDMsMzAxMzMsMzA5MTMsMzIwNDMsMzI3NzMsMzMyNTgsMzM1NzYsMzQwNzEsMzQyNDksMzU1NjYsMzYwMzks''@;'; put 'put ''Mzg2MDQsMjAzMTYsMjEyNDIsMjIyMDQsMjYwMjcsMjYxNTIsMjg3OTYsMjg4NTYsMjkyMzcsMzIxODksMzM0MjEsMzcxOTYsMzg1OTIsNDAzMDYsMjM0MDksMjY4NTUsMjc1NDQsMjg1MzgsMzA0MzAsMjM2OTcsMjYyODMsMjg1MDcsMzE2NjgsMzE3ODYsMzQ4NzAsMzg2MjAsMTk5NzYsMjAx''@;'; put 'put ''ODMsMjEyODAsMjI1ODAsMjI3MTUsMjI3NjcsMjI4OTIsMjM1NTksMjQxMTUsMjQxOTYsMjQzNzMsMjU0ODQsMjYyOTAsMjY0NTQsMjcxNjcsMjcyOTksMjc0MDQsMjg0NzksMjkyNTQsNjM5OTQsMjk1MjAsMjk4MzUsMzE0NTYsMzE5MTEsMzMxNDQsMzMyNDcsMzMyNTUsMzM2NzQsMzM5MDAs''@;'; put 'put ''MzQwODMsMzQxOTYsMzQyNTUsMzUwMzcsMzYxMTUsMzcyOTIsMzgyNjMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzg1NTYsMjA4NzcsMjE3MDUsMjIzMTIsMjM0NzIsMjUxNjUsMjY0NDgsMjY2ODUsMjY3NzEsMjgyMjEsMjgzNzEsMjg3OTcsMzIyODksMzUwMDksMzYwMDEsMzY2MTcsNDA3NzksNDA3ODIsMjkyMjksMzE2MzEsMzU1MzMsMzc2NTgsMjAyOTUs''@;'; put 'put ''MjAzMDIsMjA3ODYsMjE2MzIsMjI5OTIsMjQyMTMsMjUyNjksMjY0ODUsMjY5OTAsMjcxNTksMjc4MjIsMjgxODYsMjk0MDEsMjk0ODIsMzAxNDEsMzE2NzIsMzIwNTMsMzM1MTEsMzM3ODUsMzM4NzksMzQyOTUsMzU0MTksMzYwMTUsMzY0ODcsMzY4ODksMzcwNDgsMzg2MDYsNDA3OTksMjEy''@;'; put 'put ''MTksMjE1MTQsMjMyNjUsMjM0OTAsMjU2ODgsMjU5NzMsMjg0MDQsMjkzODAsNjM5OTUsMzAzNDAsMzEzMDksMzE1MTUsMzE4MjEsMzIzMTgsMzI3MzUsMzM2NTksMzU2MjcsMzYwNDIsMzYxOTYsMzYzMjEsMzY0NDcsMzY4NDIsMzY4NTcsMzY5NjksMzc4NDEsMjAyOTEsMjAzNDYsMjA2NTks''@;'; put 'put ''MjA4NDAsMjA4NTYsMjEwNjksMjEwOTgsMjI2MjUsMjI2NTIsMjI4ODAsMjM1NjAsMjM2MzcsMjQyODMsMjQ3MzEsMjUxMzYsMjY2NDMsMjc1ODMsMjc2NTYsMjg1OTMsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjkwMDYsMjk3MjgsM2U0LDMwMDA4LDMwMDMzLDMwMzIyLDMxNTY0LDMxNjI3LDMxNjYxLDMxNjg2LDMyMzk5LDM1NDM4LDM2NjcwLDM2NjgxLDM3''@;'; put 'put ''NDM5LDM3NTIzLDM3NjY2LDM3OTMxLDM4NjUxLDM5MDAyLDM5MDE5LDM5MTk4LDIwOTk5LDI1MTMwLDI1MjQwLDI3OTkzLDMwMzA4LDMxNDM0LDMxNjgwLDMyMTE4LDIxMzQ0LDIzNzQyLDI0MjE1LDI4NDcyLDI4ODU3LDMxODk2LDM4NjczLDM5ODIyLDQwNjcwLDI1NTA5LDI1NzIyLDM0Njc4''@;'; put 'put ''LDE5OTY5LDIwMTE3LDIwMTQxLDIwNTcyLDIwNTk3LDIxNTc2LDIyOTc5LDIzNDUwLDI0MTI4LDI0MjM3LDI0MzExLDI0NDQ5LDI0NzczLDI1NDAyLDI1OTE5LDI1OTcyLDI2MDYwLDI2MjMwLDI2MjMyLDI2NjIyLDI2OTg0LDI3MjczLDI3NDkxLDI3NzEyLDI4MDk2LDI4MTM2LDI4MTkxLDI4''@;'; put 'put ''MjU0LDI4NzAyLDI4ODMzLDI5NTgyLDI5NjkzLDMwMDEwLDMwNTU1LDMwODU1LDMxMTE4LDMxMjQzLDMxMzU3LDMxOTM0LDMyMTQyLDMzMzUxLDM1MzMwLDM1NTYyLDM1OTk4LDM3MTY1LDM3MTk0LDM3MzM2LDM3NDc4LDM3NTgwLDM3NjY0LDM4NjYyLDM4NzQyLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM4NzQ4LDM4OTE0LDQwNzE4LDIxMDQ2LDIxMTM3LDIx''@;'; put 'put ''ODg0LDIyNTY0LDI0MDkzLDI0MzUxLDI0NzE2LDI1NTUyLDI2Nzk5LDI4NjM5LDMxMDg1LDMxNTMyLDMzMjI5LDM0MjM0LDM1MDY5LDM1NTc2LDM2NDIwLDM3MjYxLDM4NTAwLDM4NTU1LDM4NzE3LDM4OTg4LDQwNzc4LDIwNDMwLDIwODA2LDIwOTM5LDIxMTYxLDIyMDY2LDI0MzQwLDI0NDI3''@;'; put 'put ''LDI1NTE0LDI1ODA1LDI2MDg5LDI2MTc3LDI2MzYyLDI2MzYxLDI2Mzk3LDI2NzgxLDI2ODM5LDI3MTMzLDI4NDM3LDI4NTI2LDI5MDMxLDI5MTU3LDI5MjI2LDI5ODY2LDMwNTIyLDMxMDYyLDMxMDY2LDMxMTk5LDMxMjY0LDMxMzgxLDMxODk1LDMxOTY3LDMyMDY4LDMyMzY4LDMyOTAzLDM0''@;'; put 'put ''Mjk5LDM0NDY4LDM1NDEyLDM1NTE5LDM2MjQ5LDM2NDgxLDM2ODk2LDM2OTczLDM3MzQ3LDM4NDU5LDM4NjEzLDQwMTY1LDI2MDYzLDMxNzUxLDM2Mjc1LDM3ODI3LDIzMzg0LDIzNTYyLDIxMzMwLDI1MzA1LDI5NDY5LDIwNTE5LDIzNDQ3LDI0NDc4LDI0NzUyLDI0OTM5LDI2ODM3LDI4MTIx''@;'; put 'put ''LDI5NzQyLDMxMjc4LDMyMDY2LDMyMTU2LDMyMzA1LDMzMTMxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLDM2Mzk0LDM2NDA1LDM3NzU4LDM3OTEyLDIwMzA0LDIyMzUyLDI0MDM4LDI0MjMxLDI1Mzg3LDMyNjE4LDIwMDI3LDIwMzAzLDIwMzY3LDIwNTcwLDIzMDA1LDMyOTY0LDIxNjEwLDIxNjA4LDIyMDE0LDIyODYzLDIzNDQ5LDI0MDMwLDI0MjgyLDI2MjA1''@;'; put 'put ''LDI2NDE3LDI2NjA5LDI2NjY2LDI3ODgwLDI3OTU0LDI4MjM0LDI4NTU3LDI4ODU1LDI5NjY0LDMwMDg3LDMxODIwLDMyMDAyLDMyMDQ0LDMyMTYyLDMzMzExLDM0NTIzLDM1Mzg3LDM1NDYxLDM2MjA4LDM2NDkwLDM2NjU5LDM2OTEzLDM3MTk4LDM3MjAyLDM3OTU2LDM5Mzc2LDMxNDgxLDMx''@;'; put 'put ''OTA5LDIwNDI2LDIwNzM3LDIwOTM0LDIyNDcyLDIzNTM1LDIzODAzLDI2MjAxLDI3MTk3LDI3OTk0LDI4MzEwLDI4NjUyLDI4OTQwLDMwMDYzLDMxNDU5LDM0ODUwLDM2ODk3LDM2OTgxLDM4NjAzLDM5NDIzLDMzNTM3LDIwMDEzLDIwMjEwLDM0ODg2LDM3MzI1LDIxMzczLDI3MzU1LDI2OTg3''@;'; put 'put ''LDI3NzEzLDMzOTE0LDIyNjg2LDI0OTc0LDI2MzY2LDI1MzI3LDI4ODkzLDI5OTY5LDMwMTUxLDMyMzM4LDMzOTc2LDM1NjU3LDM2MTA0LDIwMDQzLDIxNDgyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIxNjc1LDIyMzIwLDIyMzM2LDI0NTM1LDI1MzQ1LDI1MzUxLDI1NzExLDI1OTAzLDI2MDg4LDI2MjM0LDI2NTI1LDI2NTQ3LDI3NDkwLDI3NzQ0LDI3ODAy''@;'; put 'put ''LDI4NDYwLDMwNjkzLDMwNzU3LDMxMDQ5LDMxMDYzLDMyMDI1LDMyOTMwLDMzMDI2LDMzMjY3LDMzNDM3LDMzNDYzLDM0NTg0LDM1NDY4LDYzOTk2LDM2MTAwLDM2Mjg2LDM2OTc4LDMwNDUyLDMxMjU3LDMxMjg3LDMyMzQwLDMyODg3LDIxNzY3LDIxOTcyLDIyNjQ1LDI1MzkxLDI1NjM0LDI2''@;'; put 'put ''MTg1LDI2MTg3LDI2NzMzLDI3MDM1LDI3NTI0LDI3OTQxLDI4MzM3LDI5NjQ1LDI5ODAwLDI5ODU3LDMwMDQzLDMwMTM3LDMwNDMzLDMwNDk0LDMwNjAzLDMxMjA2LDMyMjY1LDMyMjg1LDMzMjc1LDM0MDk1LDM0OTY3LDM1Mzg2LDM2MDQ5LDM2NTg3LDM2Nzg0LDM2OTE0LDM3ODA1LDM4NDk5''@;'; put 'put ''LDM4NTE1LDM4NjYzLDIwMzU2LDIxNDg5LDIzMDE4LDIzMjQxLDI0MDg5LDI2NzAyLDI5ODk0LDMwMTQyLDMxMjA5LDMxMzc4LDMzMTg3LDM0NTQxLDM2MDc0LDM2MzAwLDM2ODQ1LDI2MDE1LDI2Mzg5LDYzOTk3LDIyNTE5LDI4NTAzLDMyMjIxLDM2NjU1LG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDM3ODc4LDM4NTk4LDI0NTAxLDI1MDc0LDI4NTQ4LDE5OTg4''@;'; put 'put ''LDIwMzc2LDIwNTExLDIxNDQ5LDIxOTgzLDIzOTE5LDI0MDQ2LDI3NDI1LDI3NDkyLDMwOTIzLDMxNjQyLDYzOTk4LDM2NDI1LDM2NTU0LDM2OTc0LDI1NDE3LDI1NjYyLDMwNTI4LDMxMzY0LDM3Njc5LDM4MDE1LDQwODEwLDI1Nzc2LDI4NTkxLDI5MTU4LDI5ODY0LDI5OTE0LDMxNDI4LDMx''@;'; put 'put ''NzYyLDMyMzg2LDMxOTIyLDMyNDA4LDM1NzM4LDM2MTA2LDM4MDEzLDM5MTg0LDM5MjQ0LDIxMDQ5LDIzNTE5LDI1ODMwLDI2NDEzLDMyMDQ2LDIwNzE3LDIxNDQzLDIyNjQ5LDI0OTIwLDI0OTIxLDI1MDgyLDI2MDI4LDMxNDQ5LDM1NzMwLDM1NzM0LDIwNDg5LDIwNTEzLDIxMTA5LDIxODA5''@;'; put 'put ''LDIzMTAwLDI0Mjg4LDI0NDMyLDI0ODg0LDI1OTUwLDI2MTI0LDI2MTY2LDI2Mjc0LDI3MDg1LDI4MzU2LDI4NDY2LDI5NDYyLDMwMjQxLDMxMzc5LDMzMDgxLDMzMzY5LDMzNzUwLDMzOTgwLDIwNjYxLDIyNTEyLDIzNDg4LDIzNTI4LDI0NDI1LDI1NTA1LDMwNzU4LDMyMTgxLDMzNzU2LDM0''@;'; put 'put ''MDgxLDM3MzE5LDM3MzY1LDIwODc0LDI2NjEzLDMxNTc0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLDM2MDEyLDIwOTMyLDIyOTcxLDI0NzY1LDM0Mzg5LDIwNTA4LDYzOTk5LDIxMDc2LDIzNjEwLDI0OTU3LDI1MTE0LDI1Mjk5LDI1ODQyLDI2MDIxLDI4MzY0LDMwMjQwLDMzMDM0LDM2NDQ4LDM4NDk1LDM4NTg3LDIwMTkxLDIxMzE1LDIxOTEyLDIyODI1LDI0''@;'; put 'put ''MDI5LDI1Nzk3LDI3ODQ5LDI4MTU0LDI5NTg4LDMxMzU5LDMzMzA3LDM0MjE0LDM2MDY4LDM2MzY4LDM2OTgzLDM3MzUxLDM4MzY5LDM4NDMzLDM4ODU0LDIwOTg0LDIxNzQ2LDIxODk0LDI0NTA1LDI1NzY0LDI4NTUyLDMyMTgwLDM2NjM5LDM2Njg1LDM3OTQxLDIwNjgxLDIzNTc0LDI3ODM4''@;'; put 'put ''LDI4MTU1LDI5OTc5LDMwNjUxLDMxODA1LDMxODQ0LDM1NDQ5LDM1NTIyLDIyNTU4LDIyOTc0LDI0MDg2LDI1NDYzLDI5MjY2LDMwMDkwLDMwNTcxLDM1NTQ4LDM2MDI4LDM2NjI2LDI0MzA3LDI2MjI4LDI4MTUyLDMyODkzLDMzNzI5LDM1NTMxLDM4NzM3LDM5ODk0LDY0ZTMsMjEwNTksMjYz''@;'; put 'put ''NjcsMjgwNTMsMjgzOTksMzIyMjQsMzU1NTgsMzY5MTAsMzY5NTgsMzk2MzYsMjEwMjEsMjExMTksMjE3MzYsMjQ5ODAsMjUyMjAsMjUzMDcsMjY3ODYsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjY4OTgsMjY5NzAsMjcxODksMjg4MTgsMjg5NjYsMzA4MTMsMzA5NzcsMzA5OTAsMzExODYsMzEyNDUsMzI5MTgsMzM0MDAsMzM0OTMsMzM2MDksMzQxMjEsMzU5''@;'; put 'put ''NzAsMzYyMjksMzcyMTgsMzcyNTksMzcyOTQsMjA0MTksMjIyMjUsMjkxNjUsMzA2NzksMzQ1NjAsMzUzMjAsMjM1NDQsMjQ1MzQsMjY0NDksMzcwMzIsMjE0NzQsMjI2MTgsMjM1NDEsMjQ3NDAsMjQ5NjEsMjU2OTYsMzIzMTcsMzI4ODAsMzQwODUsMzc1MDcsMjU3NzQsMjA2NTIsMjM4Mjgs''@;'; put 'put ''MjYzNjgsMjI2ODQsMjUyNzcsMjU1MTIsMjY4OTQsMjdlMywyNzE2NiwyODI2NywzMDM5NCwzMTE3OSwzMzQ2NywzMzgzMywzNTUzNSwzNjI2NCwzNjg2MSwzNzEzOCwzNzE5NSwzNzI3NiwzNzY0OCwzNzY1NiwzNzc4NiwzODYxOSwzOTQ3OCwzOTk0OSwxOTk4NSwzMDA0NCwzMTA2OSwzMTQ4''@;'; put 'put ''MiwzMTU2OSwzMTY4OSwzMjMwMiwzMzk4OCwzNjQ0MSwzNjQ2OCwzNjYwMCwzNjg4MCwyNjE0OSwyNjk0MywyOTc2MywyMDk4NiwyNjQxNCw0MDY2OCwyMDgwNSwyNDU0NCwyNzc5OCwzNDgwMiwzNDkwOSwzNDkzNSwyNDc1NiwzMzIwNSwzMzc5NSxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzNjEwMSwyMTQ2MiwyMTU2MSwyMjA2OCwyMzA5NCwyMzYwMSwyODgx''@;'; put 'put ''MCwzMjczNiwzMjg1OCwzMzAzMCwzMzI2MSwzNjI1OSwzNzI1NywzOTUxOSw0MDQzNCwyMDU5NiwyMDE2NCwyMTQwOCwyNDgyNywyODIwNCwyMzY1MiwyMDM2MCwyMDUxNiwyMTk4OCwyMzc2OSwyNDE1OSwyNDY3NywyNjc3MiwyNzgzNSwyODEwMCwyOTExOCwzMDE2NCwzMDE5NiwzMDMwNSwz''@;'; put 'put ''MTI1OCwzMTMwNSwzMjE5OSwzMjI1MSwzMjYyMiwzMzI2OCwzNDQ3MywzNjYzNiwzODYwMSwzOTM0Nyw0MDc4NiwyMTA2MywyMTE4OSwzOTE0OSwzNTI0MiwxOTk3MSwyNjU3OCwyODQyMiwyMDQwNSwyMzUyMiwyNjUxNywyNzc4NCwyODAyNCwyOTcyMywzMDc1OSwzNzM0MSwzNzc1NiwzNDc1''@;'; put 'put ''NiwzMTIwNCwzMTI4MSwyNDU1NSwyMDE4MiwyMTY2OCwyMTgyMiwyMjcwMiwyMjk0OSwyNDgxNiwyNTE3MSwyNTMwMiwyNjQyMiwyNjk2NSwzMzMzMywzODQ2NCwzOTM0NSwzOTM4OSwyMDUyNCwyMTMzMSwyMTgyOCwyMjM5Niw2NDAwMSwyNTE3Niw2NDAwMiwyNTgyNiwyNjIxOSwyNjU4OSwy''@;'; put 'put ''ODYwOSwyODY1NSwyOTczMCwyOTc1MiwzNTM1MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCwzNzk0NCwyMTU4NSwyMjAyMiwyMjM3NCwyNDM5MiwyNDk4NiwyNzQ3MCwyODc2MCwyODg0NSwzMjE4NywzNTQ3NywyMjg5MCwzMzA2NywyNTUwNiwzMDQ3MiwzMjgyOSwzNjAxMCwyMjYxMiwyNTY0NSwyNzA2NywyMzQ0NSwyNDA4MSwyODI3MSw2NDAwMywzNDE1Mywy''@;'; put 'put ''MDgxMiwyMTQ4OCwyMjgyNiwyNDYwOCwyNDkwNywyNzUyNiwyNzc2MCwyNzg4OCwzMTUxOCwzMjk3NCwzMzQ5MiwzNjI5NCwzNzA0MCwzOTA4OSw2NDAwNCwyNTc5OSwyODU4MCwyNTc0NSwyNTg2MCwyMDgxNCwyMTUyMCwyMjMwMywzNTM0MiwyNDkyNywyNjc0Miw2NDAwNSwzMDE3MSwzMTU3''@;'; put 'put ''MCwzMjExMywzNjg5MCwyMjUzNCwyNzA4NCwzMzE1MSwzNTExNCwzNjg2NCwzODk2OSwyMDYwMCwyMjg3MSwyMjk1NiwyNTIzNywzNjg3OSwzOTcyMiwyNDkyNSwyOTMwNSwzODM1OCwyMjM2OSwyMzExMCwyNDA1MiwyNTIyNiwyNTc3MywyNTg1MCwyNjQ4NywyNzg3NCwyNzk2NiwyOTIyOCwy''@;'; put 'put ''OTc1MCwzMDc3MiwzMjYzMSwzMzQ1MywzNjMxNSwzODkzNSwyMTAyOCwyMjMzOCwyNjQ5NSwyOTI1NiwyOTkyMywzNjAwOSwzNjc3NCwzNzM5MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzODQ0MiwyMDg0MywyMTQ4NSwyNTQyMCwyMDMyOSwyMTc2NCwyNDcyNiwyNTk0MywyNzgwMywyODAzMSwyOTI2MCwyOTQzNywzMTI1NSwzNTIwNywzNTk5NywyNDQyOSwy''@;'; put 'put ''ODU1OCwyODkyMSwzMzE5MiwyNDg0NiwyMDQxNSwyMDU1OSwyNTE1MywyOTI1NSwzMTY4NywzMjIzMiwzMjc0NSwzNjk0MSwzODgyOSwzOTQ0OSwzNjAyMiwyMjM3OCwyNDE3OSwyNjU0NCwzMzgwNSwzNTQxMywyMTUzNiwyMzMxOCwyNDE2MywyNDI5MCwyNDMzMCwyNTk4NywzMjk1NCwzNDEw''@;'; put 'put ''OSwzODI4MSwzODQ5MSwyMDI5NiwyMTI1MywyMTI2MSwyMTI2MywyMTYzOCwyMTc1NCwyMjI3NSwyNDA2NywyNDU5OCwyNTI0MywyNTI2NSwyNTQyOSw2NDAwNiwyNzg3MywyODAwNiwzMDEyOSwzMDc3MCwzMjk5MCwzMzA3MSwzMzUwMiwzMzg4OSwzMzk3MCwzNDk1NywzNTA5MCwzNjg3NSwz''@;'; put 'put ''NzYxMCwzOTE2NSwzOTgyNSwyNDEzMywyNjI5MiwyNjMzMywyODY4OSwyOTE5MCw2NDAwNywyMDQ2OSwyMTExNywyNDQyNiwyNDkxNSwyNjQ1MSwyNzE2MSwyODQxOCwyOTkyMiwzMTA4MCwzNDkyMCwzNTk2MSwzOTExMSwzOTEwOCwzOTQ5MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyMTY5NywzMTI2MywyNjk2MywzNTU3NSwzNTkxNCwzOTA4MCwzOTM0Miwy''@;'; put 'put ''NDQ0NCwyNTI1OSwzMDEzMCwzMDM4MiwzNDk4NywzNjk5MSwzODQ2NiwyMTMwNSwyNDM4MCwyNDUxNywyNzg1MiwyOTY0NCwzMDA1MCwzMDA5MSwzMTU1OCwzMzUzNCwzOTMyNSwyMDA0NywzNjkyNCwxOTk3OSwyMDMwOSwyMTQxNCwyMjc5OSwyNDI2NCwyNjE2MCwyNzgyNywyOTc4MSwzMzY1''@;'; put 'put ''NSwzNDY2MiwzNjAzMiwzNjk0NCwzODY4NiwzOTk1NywyMjczNywyMzQxNiwzNDM4NCwzNTYwNCw0MDM3MiwyMzUwNiwyNDY4MCwyNDcxNywyNjA5NywyNzczNSwyODQ1MCwyODU3OSwyODY5OCwzMjU5NywzMjc1MiwzODI4OSwzODI5MCwzODQ4MCwzODg2NywyMTEwNiwzNjY3NiwyMDk4OSwy''@;'; put 'put ''MTU0NywyMTY4OCwyMTg1OSwyMTg5OCwyNzMyMywyODA4NSwzMjIxNiwzMzM4MiwzNzUzMiwzODUxOSw0MDU2OSwyMTUxMiwyMTcwNCwzMDQxOCwzNDUzMiwzODMwOCwzODM1NiwzODQ5MiwyMDEzMCwyMDIzMywyMzAyMiwyMzI3MCwyNDA1NSwyNDY1OCwyNTIzOSwyNjQ3NywyNjY4OSwyNzc4''@;'; put 'put ''MiwyODIwNywzMjU2OCwzMjkyMywzMzMyMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCw2NDAwOCw2NDAwOSwzODkxNywyMDEzMywyMDU2NSwyMTY4MywyMjQxOSwyMjg3NCwyMzQwMSwyMzQ3NSwyNTAzMiwyNjk5OSwyODAyMywyODcwNywzNDgwOSwzNTI5OSwzNTQ0MiwzNTU1OSwzNjk5NCwzOTQwNSwzOTYwOCwyMTE4MiwyNjY4MCwyMDUwMiwyNDE4NCwyNjQ0''@;'; put 'put ''NywzMzYwNywzNDg5MiwyMDEzOSwyMTUyMSwyMjE5MCwyOTY3MCwzNzE0MSwzODkxMSwzOTE3NywzOTI1NSwzOTMyMSwyMjA5OSwyMjY4NywzNDM5NSwzNTM3NywyNTAxMCwyNzM4MiwyOTU2MywzNjU2MiwyNzQ2MywzODU3MCwzOTUxMSwyMjg2OSwyOTE4NCwzNjIwMywzODc2MSwyMDQzNiwy''@;'; put 'put ''Mzc5NiwyNDM1OCwyNTA4MCwyNjIwMywyNzg4MywyODg0MywyOTU3MiwyOTYyNSwyOTY5NCwzMDUwNSwzMDU0MSwzMjA2NywzMjA5OCwzMjI5MSwzMzMzNSwzNDg5OCw2NDAxMCwzNjA2NiwzNzQ0OSwzOTAyMywyMzM3NywzMTM0OCwzNDg4MCwzODkxMywyMzI0NCwyMDQ0OCwyMTMzMiwyMjg0''@;'; put 'put ''NiwyMzgwNSwyNTQwNiwyODAyNSwyOTQzMywzMzAyOSwzMzAzMSwzMzY5OCwzNzU4MywzODk2MCwyMDEzNiwyMDgwNCwyMTAwOSwyMjQxMSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNDQxOCwyNzg0MiwyODM2NiwyODY3NywyODc1MiwyODg0NywyOTA3NCwyOTY3MywyOTgwMSwzMzYxMCwzNDcyMiwzNDkxMywzNjg3MiwzNzAyNiwzNzc5NSwzOTMzNiwyMDg0''@;'; put 'put ''NiwyNDQwNywyNDgwMCwyNDkzNSwyNjI5MSwzNDEzNywzNjQyNiwzNzI5NSwzODc5NSwyMDA0NiwyMDExNCwyMTYyOCwyMjc0MSwyMjc3OCwyMjkwOSwyMzczMywyNDM1OSwyNTE0MiwyNTE2MCwyNjEyMiwyNjIxNSwyNzYyNywyODAwOSwyODExMSwyODI0NiwyODQwOCwyODU2NCwyODY0MCwy''@;'; put 'put ''ODY0OSwyODc2NSwyOTM5MiwyOTczMywyOTc4NiwyOTkyMCwzMDM1NSwzMTA2OCwzMTk0NiwzMjI4NiwzMjk5MywzMzQ0NiwzMzg5OSwzMzk4MywzNDM4MiwzNDM5OSwzNDY3NiwzNTcwMywzNTk0NiwzNzgwNCwzODkxMiwzOTAxMywyNDc4NSwyNTExMCwzNzIzOSwyMzEzMCwyNjEyNywyODE1''@;'; put 'put ''MSwyODIyMiwyOTc1OSwzOTc0NiwyNDU3MywyNDc5NCwzMTUwMywyMTcwMCwyNDM0NCwyNzc0MiwyNzg1OSwyNzk0NiwyODg4OCwzMjAwNSwzNDQyNSwzNTM0MCw0MDI1MSwyMTI3MCwyMTY0NCwyMzMwMSwyNzE5NCwyODc3OSwzMDA2OSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwzMTExNywzMTE2NiwzMzQ1NywzMzc3NSwzNTQ0MSwzNTY0OSwzNjAwOCwzODc3''@;'; put 'put ''Miw2NDAxMSwyNTg0NCwyNTg5OSwzMDkwNiwzMDkwNywzMTMzOSwyMDAyNCwyMTkxNCwyMjg2NCwyMzQ2MiwyNDE4NywyNDczOSwyNTU2MywyNzQ4OSwyNjIxMywyNjcwNywyODE4NSwyOTAyOSwyOTg3MiwzMjAwOCwzNjk5NiwzOTUyOSwzOTk3MywyNzk2MywyODM2OSwyOTUwMiwzNTkwNSwz''@;'; put 'put ''ODM0NiwyMDk3NiwyNDE0MCwyNDQ4OCwyNDY1MywyNDgyMiwyNDg4MCwyNDkwOCwyNjE3OSwyNjE4MCwyNzA0NSwyNzg0MSwyODI1NSwyODM2MSwyODUxNCwyOTAwNCwyOTg1MiwzMDM0MywzMTY4MSwzMTc4MywzMzYxOCwzNDY0NywzNjk0NSwzODU0MSw0MDY0MywyMTI5NSwyMjIzOCwyNDMx''@;'; put 'put ''NSwyNDQ1OCwyNDY3NCwyNDcyNCwyNTA3OSwyNjIxNCwyNjM3MSwyNzI5MiwyODE0MiwyODU5MCwyODc4NCwyOTU0NiwzMjM2MiwzMzIxNCwzMzU4OCwzNDUxNiwzNTQ5NiwzNjAzNiwyMTEyMywyOTU1NCwyMzQ0NiwyNzI0MywzNzg5MiwyMTc0MiwyMjE1MCwyMzM4OSwyNTkyOCwyNTk4OSwy''@;'; put 'put ''NjMxMywyNjc4MywyODA0NSwyODEwMixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCwyOTI0MywzMjk0OCwzNzIzNywzOTUwMSwyMDM5OSwyMDUwNSwyMTQwMiwyMTUxOCwyMTU2NCwyMTg5NywyMTk1NywyNDEyNywyNDQ2MCwyNjQyOSwyOTAzMCwyOTY2MSwzNjg2OSwyMTIxMSwyMTIzNSwyMjYyOCwyMjczNCwyODkzMiwyOTA3MSwyOTE3OSwzNDIyNCwzNTM0Nywy''@;'; put 'put ''NjI0OCwzNDIxNiwyMTkyNywyNjI0NCwyOTAwMiwzMzg0MSwyMTMyMSwyMTkxMywyNzU4NSwyNDQwOSwyNDUwOSwyNTU4MiwyNjI0OSwyODk5OSwzNTU2OSwzNjYzNyw0MDYzOCwyMDI0MSwyNTY1OCwyODg3NSwzMDA1NCwzNDQwNywyNDY3NiwzNTY2Miw0MDQ0MCwyMDgwNywyMDk4MiwyMTI1''@;'; put 'put ''NiwyNzk1OCwzMzAxNiw0MDY1NywyNjEzMywyNzQyNywyODgyNCwzMDE2NSwyMTUwNywyMzY3MywzMjAwNywzNTM1MCwyNzQyNCwyNzQ1MywyNzQ2MiwyMTU2MCwyNDY4OCwyNzk2NSwzMjcyNSwzMzI4OCwyMDY5NCwyMDk1OCwyMTkxNiwyMjEyMywyMjIyMSwyMzAyMCwyMzMwNSwyNDA3Niwy''@;'; put 'put ''NDk4NSwyNDk4NCwyNTEzNywyNjIwNiwyNjM0MiwyOTA4MSwyOTExMywyOTExNCwyOTM1MSwzMTE0MywzMTIzMiwzMjY5MCwzNTQ0MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSxnYjE4MDMwOlsxOTk3MCwxOTk3MiwxOTk3MywxOTk3NCwxOTk4MywxOTk4NiwxOTk5MSwxOTk5OSwyZTQsMjAwMDEsMjAwMDMsMjAwMDYsMjAwMDksMjAwMTQsMjAwMTUsMjAwMTcsMjAwMTksMjAwMjEsMjAwMjMsMjAwMjgs''@;'; put 'put ''MjAwMzIsMjAwMzMsMjAwMzQsMjAwMzYsMjAwMzgsMjAwNDIsMjAwNDksMjAwNTMsMjAwNTUsMjAwNTgsMjAwNTksMjAwNjYsMjAwNjcsMjAwNjgsMjAwNjksMjAwNzEsMjAwNzIsMjAwNzQsMjAwNzUsMjAwNzYsMjAwNzcsMjAwNzgsMjAwNzksMjAwODIsMjAwODQsMjAwODUsMjAwODYsMjAw''@;'; put 'put ''ODcsMjAwODgsMjAwODksMjAwOTAsMjAwOTEsMjAwOTIsMjAwOTMsMjAwOTUsMjAwOTYsMjAwOTcsMjAwOTgsMjAwOTksMjAxMDAsMjAxMDEsMjAxMDMsMjAxMDYsMjAxMTIsMjAxMTgsMjAxMTksMjAxMjEsMjAxMjQsMjAxMjUsMjAxMjYsMjAxMzEsMjAxMzgsMjAxNDMsMjAxNDQsMjAxNDUs''@;'; put 'put ''MjAxNDgsMjAxNTAsMjAxNTEsMjAxNTIsMjAxNTMsMjAxNTYsMjAxNTcsMjAxNTgsMjAxNjgsMjAxNzIsMjAxNzUsMjAxNzYsMjAxNzgsMjAxODYsMjAxODcsMjAxODgsMjAxOTIsMjAxOTQsMjAxOTgsMjAxOTksMjAyMDEsMjAyMDUsMjAyMDYsMjAyMDcsMjAyMDksMjAyMTIsMjAyMTYsMjAy''@;'; put 'put ''MTcsMjAyMTgsMjAyMjAsMjAyMjIsMjAyMjQsMjAyMjYsMjAyMjcsMjAyMjgsMjAyMjksMjAyMzAsMjAyMzEsMjAyMzIsMjAyMzUsMjAyMzYsMjAyNDIsMjAyNDMsMjAyNDQsMjAyNDUsMjAyNDYsMjAyNTIsMjAyNTMsMjAyNTcsMjAyNTksMjAyNjQsMjAyNjUsMjAyNjgsMjAyNjksMjAyNzAs''@;'; put 'put ''MjAyNzMsMjAyNzUsMjAyNzcsMjAyNzksMjAyODEsMjAyODMsMjAyODYsMjAyODcsMjAyODgsMjAyODksMjAyOTAsMjAyOTIsMjAyOTMsMjAyOTUsMjAyOTYsMjAyOTcsMjAyOTgsMjAyOTksMjAzMDAsMjAzMDYsMjAzMDgsMjAzMTAsMjAzMjEsMjAzMjIsMjAzMjYsMjAzMjgsMjAzMzAsMjAz''@;'; put 'put ''MzEsMjAzMzMsMjAzMzQsMjAzMzcsMjAzMzgsMjAzNDEsMjAzNDMsMjAzNDQsMjAzNDUsMjAzNDYsMjAzNDksMjAzNTIsMjAzNTMsMjAzNTQsMjAzNTcsMjAzNTgsMjAzNTksMjAzNjIsMjAzNjQsMjAzNjYsMjAzNjgsMjAzNzAsMjAzNzEsMjAzNzMsMjAzNzQsMjAzNzYsMjAzNzcsMjAzNzgs''@;'; put 'put ''MjAzODAsMjAzODIsMjAzODMsMjAzODUsMjAzODYsMjAzODgsMjAzOTUsMjAzOTcsMjA0MDAsMjA0MDEsMjA0MDIsMjA0MDMsMjA0MDQsMjA0MDYsMjA0MDcsMjA0MDgsMjA0MDksMjA0MTAsMjA0MTEsMjA0MTIsMjA0MTMsMjA0MTQsMjA0MTYsMjA0MTcsMjA0MTgsMjA0MjIsMjA0MjMsMjA0''@;'; put 'put ''MjQsMjA0MjUsMjA0MjcsMjA0MjgsMjA0MjksMjA0MzQsMjA0MzUsMjA0MzYsMjA0MzcsMjA0MzgsMjA0NDEsMjA0NDMsMjA0NDgsMjA0NTAsMjA0NTIsMjA0NTMsMjA0NTUsMjA0NTksMjA0NjAsMjA0NjQsMjA0NjYsMjA0NjgsMjA0NjksMjA0NzAsMjA0NzEsMjA0NzMsMjA0NzUsMjA0NzYs''@;'; put 'put ''MjA0NzcsMjA0NzksMjA0ODAsMjA0ODEsMjA0ODIsMjA0ODMsMjA0ODQsMjA0ODUsMjA0ODYsMjA0ODcsMjA0ODgsMjA0ODksMjA0OTAsMjA0OTEsMjA0OTQsMjA0OTYsMjA0OTcsMjA0OTksMjA1MDEsMjA1MDIsMjA1MDMsMjA1MDcsMjA1MDksMjA1MTAsMjA1MTIsMjA1MTQsMjA1MTUsMjA1''@;'; put 'put ''MTYsMjA1MTksMjA1MjMsMjA1MjcsMjA1MjgsMjA1MjksMjA1MzAsMjA1MzEsMjA1MzIsMjA1MzMsMjA1MzQsMjA1MzUsMjA1MzYsMjA1MzcsMjA1MzksMjA1NDEsMjA1NDMsMjA1NDQsMjA1NDUsMjA1NDYsMjA1NDgsMjA1NDksMjA1NTAsMjA1NTMsMjA1NTQsMjA1NTUsMjA1NTcsMjA1NjAs''@;'; put 'put ''MjA1NjEsMjA1NjIsMjA1NjMsMjA1NjQsMjA1NjYsMjA1NjcsMjA1NjgsMjA1NjksMjA1NzEsMjA1NzMsMjA1NzQsMjA1NzUsMjA1NzYsMjA1NzcsMjA1NzgsMjA1NzksMjA1ODAsMjA1ODIsMjA1ODMsMjA1ODQsMjA1ODUsMjA1ODYsMjA1ODcsMjA1ODksMjA1OTAsMjA1OTEsMjA1OTIsMjA1''@;'; put 'put ''OTMsMjA1OTQsMjA1OTUsMjA1OTYsMjA1OTcsMjA2MDAsMjA2MDEsMjA2MDIsMjA2MDQsMjA2MDUsMjA2MDksMjA2MTAsMjA2MTEsMjA2MTIsMjA2MTQsMjA2MTUsMjA2MTcsMjA2MTgsMjA2MTksMjA2MjAsMjA2MjIsMjA2MjMsMjA2MjQsMjA2MjUsMjA2MjYsMjA2MjcsMjA2MjgsMjA2Mjks''@;'; put 'put ''MjA2MzAsMjA2MzEsMjA2MzIsMjA2MzMsMjA2MzQsMjA2MzUsMjA2MzYsMjA2MzcsMjA2MzgsMjA2MzksMjA2NDAsMjA2NDEsMjA2NDIsMjA2NDQsMjA2NDYsMjA2NTAsMjA2NTEsMjA2NTMsMjA2NTQsMjA2NTUsMjA2NTYsMjA2NTcsMjA2NTksMjA2NjAsMjA2NjEsMjA2NjIsMjA2NjMsMjA2''@;'; put 'put ''NjQsMjA2NjUsMjA2NjgsMjA2NjksMjA2NzAsMjA2NzEsMjA2NzIsMjA2NzMsMjA2NzQsMjA2NzUsMjA2NzYsMjA2NzcsMjA2NzgsMjA2NzksMjA2ODAsMjA2ODEsMjA2ODIsMjA2ODMsMjA2ODQsMjA2ODUsMjA2ODYsMjA2ODgsMjA2ODksMjA2OTAsMjA2OTEsMjA2OTIsMjA2OTMsMjA2OTUs''@;'; put 'put ''MjA2OTYsMjA2OTcsMjA2OTksMjA3MDAsMjA3MDEsMjA3MDIsMjA3MDMsMjA3MDQsMjA3MDUsMjA3MDYsMjA3MDcsMjA3MDgsMjA3MDksMjA3MTIsMjA3MTMsMjA3MTQsMjA3MTUsMjA3MTksMjA3MjAsMjA3MjEsMjA3MjIsMjA3MjQsMjA3MjYsMjA3MjcsMjA3MjgsMjA3MjksMjA3MzAsMjA3''@;'; put 'put ''MzIsMjA3MzMsMjA3MzQsMjA3MzUsMjA3MzYsMjA3MzcsMjA3MzgsMjA3MzksMjA3NDAsMjA3NDEsMjA3NDQsMjA3NDUsMjA3NDYsMjA3NDgsMjA3NDksMjA3NTAsMjA3NTEsMjA3NTIsMjA3NTMsMjA3NTUsMjA3NTYsMjA3NTcsMjA3NTgsMjA3NTksMjA3NjAsMjA3NjEsMjA3NjIsMjA3NjMs''@;'; put 'put ''MjA3NjQsMjA3NjUsMjA3NjYsMjA3NjcsMjA3NjgsMjA3NzAsMjA3NzEsMjA3NzIsMjA3NzMsMjA3NzQsMjA3NzUsMjA3NzYsMjA3NzcsMjA3NzgsMjA3NzksMjA3ODAsMjA3ODEsMjA3ODIsMjA3ODMsMjA3ODQsMjA3ODUsMjA3ODYsMjA3ODcsMjA3ODgsMjA3ODksMjA3OTAsMjA3OTEsMjA3''@;'; put 'put ''OTIsMjA3OTMsMjA3OTQsMjA3OTUsMjA3OTYsMjA3OTcsMjA3OTgsMjA4MDIsMjA4MDcsMjA4MTAsMjA4MTIsMjA4MTQsMjA4MTUsMjA4MTYsMjA4MTgsMjA4MTksMjA4MjMsMjA4MjQsMjA4MjUsMjA4MjcsMjA4MjksMjA4MzAsMjA4MzEsMjA4MzIsMjA4MzMsMjA4MzUsMjA4MzYsMjA4Mzgs''@;'; put 'put ''MjA4MzksMjA4NDEsMjA4NDIsMjA4NDcsMjA4NTAsMjA4NTgsMjA4NjIsMjA4NjMsMjA4NjcsMjA4NjgsMjA4NzAsMjA4NzEsMjA4NzQsMjA4NzUsMjA4NzgsMjA4NzksMjA4ODAsMjA4ODEsMjA4ODMsMjA4ODQsMjA4ODgsMjA4OTAsMjA4OTMsMjA4OTQsMjA4OTUsMjA4OTcsMjA4OTksMjA5''@;'; put 'put ''MDIsMjA5MDMsMjA5MDQsMjA5MDUsMjA5MDYsMjA5MDksMjA5MTAsMjA5MTYsMjA5MjAsMjA5MjEsMjA5MjIsMjA5MjYsMjA5MjcsMjA5MjksMjA5MzAsMjA5MzEsMjA5MzMsMjA5MzYsMjA5MzgsMjA5NDEsMjA5NDIsMjA5NDQsMjA5NDYsMjA5NDcsMjA5NDgsMjA5NDksMjA5NTAsMjA5NTEs''@;'; put 'put ''MjA5NTIsMjA5NTMsMjA5NTQsMjA5NTYsMjA5NTgsMjA5NTksMjA5NjIsMjA5NjMsMjA5NjUsMjA5NjYsMjA5NjcsMjA5NjgsMjA5NjksMjA5NzAsMjA5NzIsMjA5NzQsMjA5NzcsMjA5NzgsMjA5ODAsMjA5ODMsMjA5OTAsMjA5OTYsMjA5OTcsMjEwMDEsMjEwMDMsMjEwMDQsMjEwMDcsMjEw''@;'; put 'put ''MDgsMjEwMTEsMjEwMTIsMjEwMTMsMjEwMjAsMjEwMjIsMjEwMjMsMjEwMjUsMjEwMjYsMjEwMjcsMjEwMjksMjEwMzAsMjEwMzEsMjEwMzQsMjEwMzYsMjEwMzksMjEwNDEsMjEwNDIsMjEwNDQsMjEwNDUsMjEwNTIsMjEwNTQsMjEwNjAsMjEwNjEsMjEwNjIsMjEwNjMsMjEwNjQsMjEwNjUs''@;'; put 'put ''MjEwNjcsMjEwNzAsMjEwNzEsMjEwNzQsMjEwNzUsMjEwNzcsMjEwNzksMjEwODAsMjEwODEsMjEwODIsMjEwODMsMjEwODUsMjEwODcsMjEwODgsMjEwOTAsMjEwOTEsMjEwOTIsMjEwOTQsMjEwOTYsMjEwOTksMjExMDAsMjExMDEsMjExMDIsMjExMDQsMjExMDUsMjExMDcsMjExMDgsMjEx''@;'; put 'put ''MDksMjExMTAsMjExMTEsMjExMTIsMjExMTMsMjExMTQsMjExMTUsMjExMTYsMjExMTgsMjExMjAsMjExMjMsMjExMjQsMjExMjUsMjExMjYsMjExMjcsMjExMjksMjExMzAsMjExMzEsMjExMzIsMjExMzMsMjExMzQsMjExMzUsMjExMzcsMjExMzgsMjExNDAsMjExNDEsMjExNDIsMjExNDMs''@;'; put 'put ''MjExNDQsMjExNDUsMjExNDYsMjExNDgsMjExNTYsMjExNTcsMjExNTgsMjExNTksMjExNjYsMjExNjcsMjExNjgsMjExNzIsMjExNzMsMjExNzQsMjExNzUsMjExNzYsMjExNzcsMjExNzgsMjExNzksMjExODAsMjExODEsMjExODQsMjExODUsMjExODYsMjExODgsMjExODksMjExOTAsMjEx''@;'; put 'put ''OTIsMjExOTQsMjExOTYsMjExOTcsMjExOTgsMjExOTksMjEyMDEsMjEyMDMsMjEyMDQsMjEyMDUsMjEyMDcsMjEyMDksMjEyMTAsMjEyMTEsMjEyMTIsMjEyMTMsMjEyMTQsMjEyMTYsMjEyMTcsMjEyMTgsMjEyMTksMjEyMjEsMjEyMjIsMjEyMjMsMjEyMjQsMjEyMjUsMjEyMjYsMjEyMjcs''@;'; put 'put ''MjEyMjgsMjEyMjksMjEyMzAsMjEyMzEsMjEyMzMsMjEyMzQsMjEyMzUsMjEyMzYsMjEyMzcsMjEyMzgsMjEyMzksMjEyNDAsMjEyNDMsMjEyNDQsMjEyNDUsMjEyNDksMjEyNTAsMjEyNTEsMjEyNTIsMjEyNTUsMjEyNTcsMjEyNTgsMjEyNTksMjEyNjAsMjEyNjIsMjEyNjUsMjEyNjYsMjEy''@;'; put 'put ''NjcsMjEyNjgsMjEyNzIsMjEyNzUsMjEyNzYsMjEyNzgsMjEyNzksMjEyODIsMjEyODQsMjEyODUsMjEyODcsMjEyODgsMjEyODksMjEyOTEsMjEyOTIsMjEyOTMsMjEyOTUsMjEyOTYsMjEyOTcsMjEyOTgsMjEyOTksMjEzMDAsMjEzMDEsMjEzMDIsMjEzMDMsMjEzMDQsMjEzMDgsMjEzMDks''@;'; put 'put ''MjEzMTIsMjEzMTQsMjEzMTYsMjEzMTgsMjEzMjMsMjEzMjQsMjEzMjUsMjEzMjgsMjEzMzIsMjEzMzYsMjEzMzcsMjEzMzksMjEzNDEsMjEzNDksMjEzNTIsMjEzNTQsMjEzNTYsMjEzNTcsMjEzNjIsMjEzNjYsMjEzNjksMjEzNzEsMjEzNzIsMjEzNzMsMjEzNzQsMjEzNzYsMjEzNzcsMjEz''@;'; put 'put ''NzksMjEzODMsMjEzODQsMjEzODYsMjEzOTAsMjEzOTEsMjEzOTIsMjEzOTMsMjEzOTQsMjEzOTUsMjEzOTYsMjEzOTgsMjEzOTksMjE0MDEsMjE0MDMsMjE0MDQsMjE0MDYsMjE0MDgsMjE0MDksMjE0MTIsMjE0MTUsMjE0MTgsMjE0MTksMjE0MjAsMjE0MjEsMjE0MjMsMjE0MjQsMjE0MjUs''@;'; put 'put ''MjE0MjYsMjE0MjcsMjE0MjgsMjE0MjksMjE0MzEsMjE0MzIsMjE0MzMsMjE0MzQsMjE0MzYsMjE0MzcsMjE0MzgsMjE0NDAsMjE0NDMsMjE0NDQsMjE0NDUsMjE0NDYsMjE0NDcsMjE0NTQsMjE0NTUsMjE0NTYsMjE0NTgsMjE0NTksMjE0NjEsMjE0NjYsMjE0NjgsMjE0NjksMjE0NzAsMjE0''@;'; put 'put ''NzMsMjE0NzQsMjE0NzksMjE0OTIsMjE0OTgsMjE1MDIsMjE1MDMsMjE1MDQsMjE1MDYsMjE1MDksMjE1MTEsMjE1MTUsMjE1MjQsMjE1MjgsMjE1MjksMjE1MzAsMjE1MzIsMjE1MzgsMjE1NDAsMjE1NDEsMjE1NDYsMjE1NTIsMjE1NTUsMjE1NTgsMjE1NTksMjE1NjIsMjE1NjUsMjE1Njcs''@;'; put 'put ''MjE1NjksMjE1NzAsMjE1NzIsMjE1NzMsMjE1NzUsMjE1NzcsMjE1ODAsMjE1ODEsMjE1ODIsMjE1ODMsMjE1ODUsMjE1OTQsMjE1OTcsMjE1OTgsMjE1OTksMjE2MDAsMjE2MDEsMjE2MDMsMjE2MDUsMjE2MDcsMjE2MDksMjE2MTAsMjE2MTEsMjE2MTIsMjE2MTMsMjE2MTQsMjE2MTUsMjE2''@;'; put 'put ''MTYsMjE2MjAsMjE2MjUsMjE2MjYsMjE2MzAsMjE2MzEsMjE2MzMsMjE2MzUsMjE2MzcsMjE2MzksMjE2NDAsMjE2NDEsMjE2NDIsMjE2NDUsMjE2NDksMjE2NTEsMjE2NTUsMjE2NTYsMjE2NjAsMjE2NjIsMjE2NjMsMjE2NjQsMjE2NjUsMjE2NjYsMjE2NjksMjE2NzgsMjE2ODAsMjE2ODIs''@;'; put 'put ''MjE2ODUsMjE2ODYsMjE2ODcsMjE2ODksMjE2OTAsMjE2OTIsMjE2OTQsMjE2OTksMjE3MDEsMjE3MDYsMjE3MDcsMjE3MTgsMjE3MjAsMjE3MjMsMjE3MjgsMjE3MjksMjE3MzAsMjE3MzEsMjE3MzIsMjE3MzksMjE3NDAsMjE3NDMsMjE3NDQsMjE3NDUsMjE3NDgsMjE3NDksMjE3NTAsMjE3''@;'; put 'put ''NTEsMjE3NTIsMjE3NTMsMjE3NTUsMjE3NTgsMjE3NjAsMjE3NjIsMjE3NjMsMjE3NjQsMjE3NjUsMjE3NjgsMjE3NzAsMjE3NzEsMjE3NzIsMjE3NzMsMjE3NzQsMjE3NzgsMjE3NzksMjE3ODEsMjE3ODIsMjE3ODMsMjE3ODQsMjE3ODUsMjE3ODYsMjE3ODgsMjE3ODksMjE3OTAsMjE3OTEs''@;'; put 'put ''MjE3OTMsMjE3OTcsMjE3OTgsMjE4MDAsMjE4MDEsMjE4MDMsMjE4MDUsMjE4MTAsMjE4MTIsMjE4MTMsMjE4MTQsMjE4MTYsMjE4MTcsMjE4MTgsMjE4MTksMjE4MjEsMjE4MjQsMjE4MjYsMjE4MjksMjE4MzEsMjE4MzIsMjE4MzUsMjE4MzYsMjE4MzcsMjE4MzgsMjE4MzksMjE4NDEsMjE4''@;'; put 'put ''NDIsMjE4NDMsMjE4NDQsMjE4NDcsMjE4NDgsMjE4NDksMjE4NTAsMjE4NTEsMjE4NTMsMjE4NTQsMjE4NTUsMjE4NTYsMjE4NTgsMjE4NTksMjE4NjQsMjE4NjUsMjE4NjcsMjE4NzEsMjE4NzIsMjE4NzMsMjE4NzQsMjE4NzUsMjE4NzYsMjE4ODEsMjE4ODIsMjE4ODUsMjE4ODcsMjE4OTMs''@;'; put 'put ''MjE4OTQsMjE5MDAsMjE5MDEsMjE5MDIsMjE5MDQsMjE5MDYsMjE5MDcsMjE5MDksMjE5MTAsMjE5MTEsMjE5MTQsMjE5MTUsMjE5MTgsMjE5MjAsMjE5MjEsMjE5MjIsMjE5MjMsMjE5MjQsMjE5MjUsMjE5MjYsMjE5MjgsMjE5MjksMjE5MzAsMjE5MzEsMjE5MzIsMjE5MzMsMjE5MzQsMjE5''@;'; put 'put ''MzUsMjE5MzYsMjE5MzgsMjE5NDAsMjE5NDIsMjE5NDQsMjE5NDYsMjE5NDgsMjE5NTEsMjE5NTIsMjE5NTMsMjE5NTQsMjE5NTUsMjE5NTgsMjE5NTksMjE5NjAsMjE5NjIsMjE5NjMsMjE5NjYsMjE5NjcsMjE5NjgsMjE5NzMsMjE5NzUsMjE5NzYsMjE5NzcsMjE5NzgsMjE5NzksMjE5ODIs''@;'; put 'put ''MjE5ODQsMjE5ODYsMjE5OTEsMjE5OTMsMjE5OTcsMjE5OTgsMjJlMywyMjAwMSwyMjAwNCwyMjAwNiwyMjAwOCwyMjAwOSwyMjAxMCwyMjAxMSwyMjAxMiwyMjAxNSwyMjAxOCwyMjAxOSwyMjAyMCwyMjAyMSwyMjAyMiwyMjAyMywyMjAyNiwyMjAyNywyMjAyOSwyMjAzMiwyMjAzMywyMjAz''@;'; put 'put ''NCwyMjAzNSwyMjAzNiwyMjAzNywyMjAzOCwyMjAzOSwyMjA0MSwyMjA0MiwyMjA0NCwyMjA0NSwyMjA0OCwyMjA0OSwyMjA1MCwyMjA1MywyMjA1NCwyMjA1NiwyMjA1NywyMjA1OCwyMjA1OSwyMjA2MiwyMjA2MywyMjA2NCwyMjA2NywyMjA2OSwyMjA3MSwyMjA3MiwyMjA3NCwyMjA3Niwy''@;'; put 'put ''MjA3NywyMjA3OCwyMjA4MCwyMjA4MSwyMjA4MiwyMjA4MywyMjA4NCwyMjA4NSwyMjA4NiwyMjA4NywyMjA4OCwyMjA4OSwyMjA5MCwyMjA5MSwyMjA5NSwyMjA5NiwyMjA5NywyMjA5OCwyMjA5OSwyMjEwMSwyMjEwMiwyMjEwNiwyMjEwNywyMjEwOSwyMjExMCwyMjExMSwyMjExMiwyMjEx''@;'; put 'put ''MywyMjExNSwyMjExNywyMjExOCwyMjExOSwyMjEyNSwyMjEyNiwyMjEyNywyMjEyOCwyMjEzMCwyMjEzMSwyMjEzMiwyMjEzMywyMjEzNSwyMjEzNiwyMjEzNywyMjEzOCwyMjE0MSwyMjE0MiwyMjE0MywyMjE0NCwyMjE0NSwyMjE0NiwyMjE0NywyMjE0OCwyMjE1MSwyMjE1MiwyMjE1Mywy''@;'; put 'put ''MjE1NCwyMjE1NSwyMjE1NiwyMjE1NywyMjE2MCwyMjE2MSwyMjE2MiwyMjE2NCwyMjE2NSwyMjE2NiwyMjE2NywyMjE2OCwyMjE2OSwyMjE3MCwyMjE3MSwyMjE3MiwyMjE3MywyMjE3NCwyMjE3NSwyMjE3NiwyMjE3NywyMjE3OCwyMjE4MCwyMjE4MSwyMjE4MiwyMjE4MywyMjE4NCwyMjE4''@;'; put 'put ''NSwyMjE4NiwyMjE4NywyMjE4OCwyMjE4OSwyMjE5MCwyMjE5MiwyMjE5MywyMjE5NCwyMjE5NSwyMjE5NiwyMjE5NywyMjE5OCwyMjIwMCwyMjIwMSwyMjIwMiwyMjIwMywyMjIwNSwyMjIwNiwyMjIwNywyMjIwOCwyMjIwOSwyMjIxMCwyMjIxMSwyMjIxMiwyMjIxMywyMjIxNCwyMjIxNSwy''@;'; put 'put ''MjIxNiwyMjIxNywyMjIxOSwyMjIyMCwyMjIyMSwyMjIyMiwyMjIyMywyMjIyNCwyMjIyNSwyMjIyNiwyMjIyNywyMjIyOSwyMjIzMCwyMjIzMiwyMjIzMywyMjIzNiwyMjI0MywyMjI0NSwyMjI0NiwyMjI0NywyMjI0OCwyMjI0OSwyMjI1MCwyMjI1MiwyMjI1NCwyMjI1NSwyMjI1OCwyMjI1''@;'; put 'put ''OSwyMjI2MiwyMjI2MywyMjI2NCwyMjI2NywyMjI2OCwyMjI3MiwyMjI3MywyMjI3NCwyMjI3NywyMjI3OSwyMjI4MywyMjI4NCwyMjI4NSwyMjI4NiwyMjI4NywyMjI4OCwyMjI4OSwyMjI5MCwyMjI5MSwyMjI5MiwyMjI5MywyMjI5NCwyMjI5NSwyMjI5NiwyMjI5NywyMjI5OCwyMjI5OSwy''@;'; put 'put ''MjMwMSwyMjMwMiwyMjMwNCwyMjMwNSwyMjMwNiwyMjMwOCwyMjMwOSwyMjMxMCwyMjMxMSwyMjMxNSwyMjMyMSwyMjMyMiwyMjMyNCwyMjMyNSwyMjMyNiwyMjMyNywyMjMyOCwyMjMzMiwyMjMzMywyMjMzNSwyMjMzNywyMjMzOSwyMjM0MCwyMjM0MSwyMjM0MiwyMjM0NCwyMjM0NSwyMjM0''@;'; put 'put ''NywyMjM1NCwyMjM1NSwyMjM1NiwyMjM1NywyMjM1OCwyMjM2MCwyMjM2MSwyMjM3MCwyMjM3MSwyMjM3MywyMjM3NSwyMjM4MCwyMjM4MiwyMjM4NCwyMjM4NSwyMjM4NiwyMjM4OCwyMjM4OSwyMjM5MiwyMjM5MywyMjM5NCwyMjM5NywyMjM5OCwyMjM5OSwyMjQwMCwyMjQwMSwyMjQwNywy''@;'; put 'put ''MjQwOCwyMjQwOSwyMjQxMCwyMjQxMywyMjQxNCwyMjQxNSwyMjQxNiwyMjQxNywyMjQyMCwyMjQyMSwyMjQyMiwyMjQyMywyMjQyNCwyMjQyNSwyMjQyNiwyMjQyOCwyMjQyOSwyMjQzMCwyMjQzMSwyMjQzNywyMjQ0MCwyMjQ0MiwyMjQ0NCwyMjQ0NywyMjQ0OCwyMjQ0OSwyMjQ1MSwyMjQ1''@;'; put 'put ''MywyMjQ1NCwyMjQ1NSwyMjQ1NywyMjQ1OCwyMjQ1OSwyMjQ2MCwyMjQ2MSwyMjQ2MiwyMjQ2MywyMjQ2NCwyMjQ2NSwyMjQ2OCwyMjQ2OSwyMjQ3MCwyMjQ3MSwyMjQ3MiwyMjQ3MywyMjQ3NCwyMjQ3NiwyMjQ3NywyMjQ4MCwyMjQ4MSwyMjQ4MywyMjQ4NiwyMjQ4NywyMjQ5MSwyMjQ5Miwy''@;'; put 'put ''MjQ5NCwyMjQ5NywyMjQ5OCwyMjQ5OSwyMjUwMSwyMjUwMiwyMjUwMywyMjUwNCwyMjUwNSwyMjUwNiwyMjUwNywyMjUwOCwyMjUxMCwyMjUxMiwyMjUxMywyMjUxNCwyMjUxNSwyMjUxNywyMjUxOCwyMjUxOSwyMjUyMywyMjUyNCwyMjUyNiwyMjUyNywyMjUyOSwyMjUzMSwyMjUzMiwyMjUz''@;'; put 'put ''MywyMjUzNiwyMjUzNywyMjUzOCwyMjU0MCwyMjU0MiwyMjU0MywyMjU0NCwyMjU0NiwyMjU0NywyMjU0OCwyMjU1MCwyMjU1MSwyMjU1MiwyMjU1NCwyMjU1NSwyMjU1NiwyMjU1NywyMjU1OSwyMjU2MiwyMjU2MywyMjU2NSwyMjU2NiwyMjU2NywyMjU2OCwyMjU2OSwyMjU3MSwyMjU3Miwy''@;'; put 'put ''MjU3MywyMjU3NCwyMjU3NSwyMjU3NywyMjU3OCwyMjU3OSwyMjU4MCwyMjU4MiwyMjU4MywyMjU4NCwyMjU4NSwyMjU4NiwyMjU4NywyMjU4OCwyMjU4OSwyMjU5MCwyMjU5MSwyMjU5MiwyMjU5MywyMjU5NCwyMjU5NSwyMjU5NywyMjU5OCwyMjU5OSwyMjYwMCwyMjYwMSwyMjYwMiwyMjYw''@;'; put 'put ''MywyMjYwNiwyMjYwNywyMjYwOCwyMjYxMCwyMjYxMSwyMjYxMywyMjYxNCwyMjYxNSwyMjYxNywyMjYxOCwyMjYxOSwyMjYyMCwyMjYyMSwyMjYyMywyMjYyNCwyMjYyNSwyMjYyNiwyMjYyNywyMjYyOCwyMjYzMCwyMjYzMSwyMjYzMiwyMjYzMywyMjYzNCwyMjYzNywyMjYzOCwyMjYzOSwy''@;'; put 'put ''MjY0MCwyMjY0MSwyMjY0MiwyMjY0MywyMjY0NCwyMjY0NSwyMjY0NiwyMjY0NywyMjY0OCwyMjY0OSwyMjY1MCwyMjY1MSwyMjY1MiwyMjY1MywyMjY1NSwyMjY1OCwyMjY2MCwyMjY2MiwyMjY2MywyMjY2NCwyMjY2NiwyMjY2NywyMjY2OCwyMjY2OSwyMjY3MCwyMjY3MSwyMjY3MiwyMjY3''@;'; put 'put ''MywyMjY3NiwyMjY3NywyMjY3OCwyMjY3OSwyMjY4MCwyMjY4MywyMjY4NCwyMjY4NSwyMjY4OCwyMjY4OSwyMjY5MCwyMjY5MSwyMjY5MiwyMjY5MywyMjY5NCwyMjY5NSwyMjY5OCwyMjY5OSwyMjcwMCwyMjcwMSwyMjcwMiwyMjcwMywyMjcwNCwyMjcwNSwyMjcwNiwyMjcwNywyMjcwOCwy''@;'; put 'put ''MjcwOSwyMjcxMCwyMjcxMSwyMjcxMiwyMjcxMywyMjcxNCwyMjcxNSwyMjcxNywyMjcxOCwyMjcxOSwyMjcyMCwyMjcyMiwyMjcyMywyMjcyNCwyMjcyNiwyMjcyNywyMjcyOCwyMjcyOSwyMjczMCwyMjczMSwyMjczMiwyMjczMywyMjczNCwyMjczNSwyMjczNiwyMjczOCwyMjczOSwyMjc0''@;'; put 'put ''MCwyMjc0MiwyMjc0MywyMjc0NCwyMjc0NSwyMjc0NiwyMjc0NywyMjc0OCwyMjc0OSwyMjc1MCwyMjc1MSwyMjc1MiwyMjc1MywyMjc1NCwyMjc1NSwyMjc1NywyMjc1OCwyMjc1OSwyMjc2MCwyMjc2MSwyMjc2MiwyMjc2NSwyMjc2NywyMjc2OSwyMjc3MCwyMjc3MiwyMjc3MywyMjc3NSwy''@;'; put 'put ''Mjc3NiwyMjc3OCwyMjc3OSwyMjc4MCwyMjc4MSwyMjc4MiwyMjc4MywyMjc4NCwyMjc4NSwyMjc4NywyMjc4OSwyMjc5MCwyMjc5MiwyMjc5MywyMjc5NCwyMjc5NSwyMjc5NiwyMjc5OCwyMjgwMCwyMjgwMSwyMjgwMiwyMjgwMywyMjgwNywyMjgwOCwyMjgxMSwyMjgxMywyMjgxNCwyMjgx''@;'; put 'put ''NiwyMjgxNywyMjgxOCwyMjgxOSwyMjgyMiwyMjgyNCwyMjgyOCwyMjgzMiwyMjgzNCwyMjgzNSwyMjgzNywyMjgzOCwyMjg0MywyMjg0NSwyMjg0NiwyMjg0NywyMjg0OCwyMjg1MSwyMjg1MywyMjg1NCwyMjg1OCwyMjg2MCwyMjg2MSwyMjg2NCwyMjg2NiwyMjg2NywyMjg3MywyMjg3NSwy''@;'; put 'put ''Mjg3NiwyMjg3NywyMjg3OCwyMjg3OSwyMjg4MSwyMjg4MywyMjg4NCwyMjg4NiwyMjg4NywyMjg4OCwyMjg4OSwyMjg5MCwyMjg5MSwyMjg5MiwyMjg5MywyMjg5NCwyMjg5NSwyMjg5NiwyMjg5NywyMjg5OCwyMjkwMSwyMjkwMywyMjkwNiwyMjkwNywyMjkwOCwyMjkxMCwyMjkxMSwyMjkx''@;'; put 'put ''MiwyMjkxNywyMjkyMSwyMjkyMywyMjkyNCwyMjkyNiwyMjkyNywyMjkyOCwyMjkyOSwyMjkzMiwyMjkzMywyMjkzNiwyMjkzOCwyMjkzOSwyMjk0MCwyMjk0MSwyMjk0MywyMjk0NCwyMjk0NSwyMjk0NiwyMjk1MCwyMjk1MSwyMjk1NiwyMjk1NywyMjk2MCwyMjk2MSwyMjk2MywyMjk2NCwy''@;'; put 'put ''Mjk2NSwyMjk2NiwyMjk2NywyMjk2OCwyMjk3MCwyMjk3MiwyMjk3MywyMjk3NSwyMjk3NiwyMjk3NywyMjk3OCwyMjk3OSwyMjk4MCwyMjk4MSwyMjk4MywyMjk4NCwyMjk4NSwyMjk4OCwyMjk4OSwyMjk5MCwyMjk5MSwyMjk5NywyMjk5OCwyMzAwMSwyMzAwMywyMzAwNiwyMzAwNywyMzAw''@;'; put 'put ''OCwyMzAwOSwyMzAxMCwyMzAxMiwyMzAxNCwyMzAxNSwyMzAxNywyMzAxOCwyMzAxOSwyMzAyMSwyMzAyMiwyMzAyMywyMzAyNCwyMzAyNSwyMzAyNiwyMzAyNywyMzAyOCwyMzAyOSwyMzAzMCwyMzAzMSwyMzAzMiwyMzAzNCwyMzAzNiwyMzAzNywyMzAzOCwyMzA0MCwyMzA0MiwyMzA1MCwy''@;'; put 'put ''MzA1MSwyMzA1MywyMzA1NCwyMzA1NSwyMzA1NiwyMzA1OCwyMzA2MCwyMzA2MSwyMzA2MiwyMzA2MywyMzA2NSwyMzA2NiwyMzA2NywyMzA2OSwyMzA3MCwyMzA3MywyMzA3NCwyMzA3NiwyMzA3OCwyMzA3OSwyMzA4MCwyMzA4MiwyMzA4MywyMzA4NCwyMzA4NSwyMzA4NiwyMzA4NywyMzA4''@;'; put 'put ''OCwyMzA5MSwyMzA5MywyMzA5NSwyMzA5NiwyMzA5NywyMzA5OCwyMzA5OSwyMzEwMSwyMzEwMiwyMzEwMywyMzEwNSwyMzEwNiwyMzEwNywyMzEwOCwyMzEwOSwyMzExMSwyMzExMiwyMzExNSwyMzExNiwyMzExNywyMzExOCwyMzExOSwyMzEyMCwyMzEyMSwyMzEyMiwyMzEyMywyMzEyNCwy''@;'; put 'put ''MzEyNiwyMzEyNywyMzEyOCwyMzEyOSwyMzEzMSwyMzEzMiwyMzEzMywyMzEzNCwyMzEzNSwyMzEzNiwyMzEzNywyMzEzOSwyMzE0MCwyMzE0MSwyMzE0MiwyMzE0NCwyMzE0NSwyMzE0NywyMzE0OCwyMzE0OSwyMzE1MCwyMzE1MSwyMzE1MiwyMzE1MywyMzE1NCwyMzE1NSwyMzE2MCwyMzE2''@;'; put 'put ''MSwyMzE2MywyMzE2NCwyMzE2NSwyMzE2NiwyMzE2OCwyMzE2OSwyMzE3MCwyMzE3MSwyMzE3MiwyMzE3MywyMzE3NCwyMzE3NSwyMzE3NiwyMzE3NywyMzE3OCwyMzE3OSwyMzE4MCwyMzE4MSwyMzE4MiwyMzE4MywyMzE4NCwyMzE4NSwyMzE4NywyMzE4OCwyMzE4OSwyMzE5MCwyMzE5MSwy''@;'; put 'put ''MzE5MiwyMzE5MywyMzE5NiwyMzE5NywyMzE5OCwyMzE5OSwyMzIwMCwyMzIwMSwyMzIwMiwyMzIwMywyMzIwNCwyMzIwNSwyMzIwNiwyMzIwNywyMzIwOCwyMzIwOSwyMzIxMSwyMzIxMiwyMzIxMywyMzIxNCwyMzIxNSwyMzIxNiwyMzIxNywyMzIyMCwyMzIyMiwyMzIyMywyMzIyNSwyMzIy''@;'; put 'put ''NiwyMzIyNywyMzIyOCwyMzIyOSwyMzIzMSwyMzIzMiwyMzIzNSwyMzIzNiwyMzIzNywyMzIzOCwyMzIzOSwyMzI0MCwyMzI0MiwyMzI0MywyMzI0NSwyMzI0NiwyMzI0NywyMzI0OCwyMzI0OSwyMzI1MSwyMzI1MywyMzI1NSwyMzI1NywyMzI1OCwyMzI1OSwyMzI2MSwyMzI2MiwyMzI2Mywy''@;'; put 'put ''MzI2NiwyMzI2OCwyMzI2OSwyMzI3MSwyMzI3MiwyMzI3NCwyMzI3NiwyMzI3NywyMzI3OCwyMzI3OSwyMzI4MCwyMzI4MiwyMzI4MywyMzI4NCwyMzI4NSwyMzI4NiwyMzI4NywyMzI4OCwyMzI4OSwyMzI5MCwyMzI5MSwyMzI5MiwyMzI5MywyMzI5NCwyMzI5NSwyMzI5NiwyMzI5NywyMzI5''@;'; put 'put ''OCwyMzI5OSwyMzMwMCwyMzMwMSwyMzMwMiwyMzMwMywyMzMwNCwyMzMwNiwyMzMwNywyMzMwOCwyMzMwOSwyMzMxMCwyMzMxMSwyMzMxMiwyMzMxMywyMzMxNCwyMzMxNSwyMzMxNiwyMzMxNywyMzMyMCwyMzMyMSwyMzMyMiwyMzMyMywyMzMyNCwyMzMyNSwyMzMyNiwyMzMyNywyMzMyOCwy''@;'; put 'put ''MzMyOSwyMzMzMCwyMzMzMSwyMzMzMiwyMzMzMywyMzMzNCwyMzMzNSwyMzMzNiwyMzMzNywyMzMzOCwyMzMzOSwyMzM0MCwyMzM0MSwyMzM0MiwyMzM0MywyMzM0NCwyMzM0NSwyMzM0NywyMzM0OSwyMzM1MCwyMzM1MiwyMzM1MywyMzM1NCwyMzM1NSwyMzM1NiwyMzM1NywyMzM1OCwyMzM1''@;'; put 'put ''OSwyMzM2MSwyMzM2MiwyMzM2MywyMzM2NCwyMzM2NSwyMzM2NiwyMzM2NywyMzM2OCwyMzM2OSwyMzM3MCwyMzM3MSwyMzM3MiwyMzM3MywyMzM3NCwyMzM3NSwyMzM3OCwyMzM4MiwyMzM5MCwyMzM5MiwyMzM5MywyMzM5OSwyMzQwMCwyMzQwMywyMzQwNSwyMzQwNiwyMzQwNywyMzQxMCwy''@;'; put 'put ''MzQxMiwyMzQxNCwyMzQxNSwyMzQxNiwyMzQxNywyMzQxOSwyMzQyMCwyMzQyMiwyMzQyMywyMzQyNiwyMzQzMCwyMzQzNCwyMzQzNywyMzQzOCwyMzQ0MCwyMzQ0MSwyMzQ0MiwyMzQ0NCwyMzQ0NiwyMzQ1NSwyMzQ2MywyMzQ2NCwyMzQ2NSwyMzQ2OCwyMzQ2OSwyMzQ3MCwyMzQ3MSwyMzQ3''@;'; put 'put ''MywyMzQ3NCwyMzQ3OSwyMzQ4MiwyMzQ4MywyMzQ4NCwyMzQ4OCwyMzQ4OSwyMzQ5MSwyMzQ5NiwyMzQ5NywyMzQ5OCwyMzQ5OSwyMzUwMSwyMzUwMiwyMzUwMywyMzUwNSwyMzUwOCwyMzUwOSwyMzUxMCwyMzUxMSwyMzUxMiwyMzUxMywyMzUxNCwyMzUxNSwyMzUxNiwyMzUyMCwyMzUyMiwy''@;'; put 'put ''MzUyMywyMzUyNiwyMzUyNywyMzUyOSwyMzUzMCwyMzUzMSwyMzUzMiwyMzUzMywyMzUzNSwyMzUzNywyMzUzOCwyMzUzOSwyMzU0MCwyMzU0MSwyMzU0MiwyMzU0MywyMzU0OSwyMzU1MCwyMzU1MiwyMzU1NCwyMzU1NSwyMzU1NywyMzU1OSwyMzU2MCwyMzU2MywyMzU2NCwyMzU2NSwyMzU2''@;'; put 'put ''NiwyMzU2OCwyMzU3MCwyMzU3MSwyMzU3NSwyMzU3NywyMzU3OSwyMzU4MiwyMzU4MywyMzU4NCwyMzU4NSwyMzU4NywyMzU5MCwyMzU5MiwyMzU5MywyMzU5NCwyMzU5NSwyMzU5NywyMzU5OCwyMzU5OSwyMzYwMCwyMzYwMiwyMzYwMywyMzYwNSwyMzYwNiwyMzYwNywyMzYxOSwyMzYyMCwy''@;'; put 'put ''MzYyMiwyMzYyMywyMzYyOCwyMzYyOSwyMzYzNCwyMzYzNSwyMzYzNiwyMzYzOCwyMzYzOSwyMzY0MCwyMzY0MiwyMzY0MywyMzY0NCwyMzY0NSwyMzY0NywyMzY1MCwyMzY1MiwyMzY1NSwyMzY1NiwyMzY1NywyMzY1OCwyMzY1OSwyMzY2MCwyMzY2MSwyMzY2NCwyMzY2NiwyMzY2NywyMzY2''@;'; put 'put ''OCwyMzY2OSwyMzY3MCwyMzY3MSwyMzY3MiwyMzY3NSwyMzY3NiwyMzY3NywyMzY3OCwyMzY4MCwyMzY4MywyMzY4NCwyMzY4NSwyMzY4NiwyMzY4NywyMzY4OSwyMzY5MCwyMzY5MSwyMzY5NCwyMzY5NSwyMzY5OCwyMzY5OSwyMzcwMSwyMzcwOSwyMzcxMCwyMzcxMSwyMzcxMiwyMzcxMywy''@;'; put 'put ''MzcxNiwyMzcxNywyMzcxOCwyMzcxOSwyMzcyMCwyMzcyMiwyMzcyNiwyMzcyNywyMzcyOCwyMzczMCwyMzczMiwyMzczNCwyMzczNywyMzczOCwyMzczOSwyMzc0MCwyMzc0MiwyMzc0NCwyMzc0NiwyMzc0NywyMzc0OSwyMzc1MCwyMzc1MSwyMzc1MiwyMzc1MywyMzc1NCwyMzc1NiwyMzc1''@;'; put 'put ''NywyMzc1OCwyMzc1OSwyMzc2MCwyMzc2MSwyMzc2MywyMzc2NCwyMzc2NSwyMzc2NiwyMzc2NywyMzc2OCwyMzc3MCwyMzc3MSwyMzc3MiwyMzc3MywyMzc3NCwyMzc3NSwyMzc3NiwyMzc3OCwyMzc3OSwyMzc4MywyMzc4NSwyMzc4NywyMzc4OCwyMzc5MCwyMzc5MSwyMzc5MywyMzc5NCwy''@;'; put 'put ''Mzc5NSwyMzc5NiwyMzc5NywyMzc5OCwyMzc5OSwyMzgwMCwyMzgwMSwyMzgwMiwyMzgwNCwyMzgwNSwyMzgwNiwyMzgwNywyMzgwOCwyMzgwOSwyMzgxMiwyMzgxMywyMzgxNiwyMzgxNywyMzgxOCwyMzgxOSwyMzgyMCwyMzgyMSwyMzgyMywyMzgyNCwyMzgyNSwyMzgyNiwyMzgyNywyMzgy''@;'; put 'put ''OSwyMzgzMSwyMzgzMiwyMzgzMywyMzgzNCwyMzgzNiwyMzgzNywyMzgzOSwyMzg0MCwyMzg0MSwyMzg0MiwyMzg0MywyMzg0NSwyMzg0OCwyMzg1MCwyMzg1MSwyMzg1MiwyMzg1NSwyMzg1NiwyMzg1NywyMzg1OCwyMzg1OSwyMzg2MSwyMzg2MiwyMzg2MywyMzg2NCwyMzg2NSwyMzg2Niwy''@;'; put 'put ''Mzg2NywyMzg2OCwyMzg3MSwyMzg3MiwyMzg3MywyMzg3NCwyMzg3NSwyMzg3NiwyMzg3NywyMzg3OCwyMzg4MCwyMzg4MSwyMzg4NSwyMzg4NiwyMzg4NywyMzg4OCwyMzg4OSwyMzg5MCwyMzg5MSwyMzg5MiwyMzg5MywyMzg5NCwyMzg5NSwyMzg5NywyMzg5OCwyMzkwMCwyMzkwMiwyMzkw''@;'; put 'put ''MywyMzkwNCwyMzkwNSwyMzkwNiwyMzkwNywyMzkwOCwyMzkwOSwyMzkxMCwyMzkxMSwyMzkxMiwyMzkxNCwyMzkxNywyMzkxOCwyMzkyMCwyMzkyMSwyMzkyMiwyMzkyMywyMzkyNSwyMzkyNiwyMzkyNywyMzkyOCwyMzkyOSwyMzkzMCwyMzkzMSwyMzkzMiwyMzkzMywyMzkzNCwyMzkzNSwy''@;'; put 'put ''MzkzNiwyMzkzNywyMzkzOSwyMzk0MCwyMzk0MSwyMzk0MiwyMzk0MywyMzk0NCwyMzk0NSwyMzk0NiwyMzk0NywyMzk0OCwyMzk0OSwyMzk1MCwyMzk1MSwyMzk1MiwyMzk1MywyMzk1NCwyMzk1NSwyMzk1NiwyMzk1NywyMzk1OCwyMzk1OSwyMzk2MCwyMzk2MiwyMzk2MywyMzk2NCwyMzk2''@;'; put 'put ''NiwyMzk2NywyMzk2OCwyMzk2OSwyMzk3MCwyMzk3MSwyMzk3MiwyMzk3MywyMzk3NCwyMzk3NSwyMzk3NiwyMzk3NywyMzk3OCwyMzk3OSwyMzk4MCwyMzk4MSwyMzk4MiwyMzk4MywyMzk4NCwyMzk4NSwyMzk4NiwyMzk4NywyMzk4OCwyMzk4OSwyMzk5MCwyMzk5MiwyMzk5MywyMzk5NCwy''@;'; put 'put ''Mzk5NSwyMzk5NiwyMzk5NywyMzk5OCwyMzk5OSwyNGUzLDI0MDAxLDI0MDAyLDI0MDAzLDI0MDA0LDI0MDA2LDI0MDA3LDI0MDA4LDI0MDA5LDI0MDEwLDI0MDExLDI0MDEyLDI0MDE0LDI0MDE1LDI0MDE2LDI0MDE3LDI0MDE4LDI0MDE5LDI0MDIwLDI0MDIxLDI0MDIyLDI0MDIzLDI0MDI0''@;'; put 'put ''LDI0MDI1LDI0MDI2LDI0MDI4LDI0MDMxLDI0MDMyLDI0MDM1LDI0MDM2LDI0MDQyLDI0MDQ0LDI0MDQ1LDI0MDQ4LDI0MDUzLDI0MDU0LDI0MDU2LDI0MDU3LDI0MDU4LDI0MDU5LDI0MDYwLDI0MDYzLDI0MDY0LDI0MDY4LDI0MDcxLDI0MDczLDI0MDc0LDI0MDc1LDI0MDc3LDI0MDc4LDI0''@;'; put 'put ''MDgyLDI0MDgzLDI0MDg3LDI0MDk0LDI0MDk1LDI0MDk2LDI0MDk3LDI0MDk4LDI0MDk5LDI0MTAwLDI0MTAxLDI0MTA0LDI0MTA1LDI0MTA2LDI0MTA3LDI0MTA4LDI0MTExLDI0MTEyLDI0MTE0LDI0MTE1LDI0MTE2LDI0MTE3LDI0MTE4LDI0MTIxLDI0MTIyLDI0MTI2LDI0MTI3LDI0MTI4''@;'; put 'put ''LDI0MTI5LDI0MTMxLDI0MTM0LDI0MTM1LDI0MTM2LDI0MTM3LDI0MTM4LDI0MTM5LDI0MTQxLDI0MTQyLDI0MTQzLDI0MTQ0LDI0MTQ1LDI0MTQ2LDI0MTQ3LDI0MTUwLDI0MTUxLDI0MTUyLDI0MTUzLDI0MTU0LDI0MTU2LDI0MTU3LDI0MTU5LDI0MTYwLDI0MTYzLDI0MTY0LDI0MTY1LDI0''@;'; put 'put ''MTY2LDI0MTY3LDI0MTY4LDI0MTY5LDI0MTcwLDI0MTcxLDI0MTcyLDI0MTczLDI0MTc0LDI0MTc1LDI0MTc2LDI0MTc3LDI0MTgxLDI0MTgzLDI0MTg1LDI0MTkwLDI0MTkzLDI0MTk0LDI0MTk1LDI0MTk3LDI0MjAwLDI0MjAxLDI0MjA0LDI0MjA1LDI0MjA2LDI0MjEwLDI0MjE2LDI0MjE5''@;'; put 'put ''LDI0MjIxLDI0MjI1LDI0MjI2LDI0MjI3LDI0MjI4LDI0MjMyLDI0MjMzLDI0MjM0LDI0MjM1LDI0MjM2LDI0MjM4LDI0MjM5LDI0MjQwLDI0MjQxLDI0MjQyLDI0MjQ0LDI0MjUwLDI0MjUxLDI0MjUyLDI0MjUzLDI0MjU1LDI0MjU2LDI0MjU3LDI0MjU4LDI0MjU5LDI0MjYwLDI0MjYxLDI0''@;'; put 'put ''MjYyLDI0MjYzLDI0MjY0LDI0MjY3LDI0MjY4LDI0MjY5LDI0MjcwLDI0MjcxLDI0MjcyLDI0Mjc2LDI0Mjc3LDI0Mjc5LDI0MjgwLDI0MjgxLDI0MjgyLDI0Mjg0LDI0Mjg1LDI0Mjg2LDI0Mjg3LDI0Mjg4LDI0Mjg5LDI0MjkwLDI0MjkxLDI0MjkyLDI0MjkzLDI0Mjk0LDI0Mjk1LDI0Mjk3''@;'; put 'put ''LDI0Mjk5LDI0MzAwLDI0MzAxLDI0MzAyLDI0MzAzLDI0MzA0LDI0MzA1LDI0MzA2LDI0MzA3LDI0MzA5LDI0MzEyLDI0MzEzLDI0MzE1LDI0MzE2LDI0MzE3LDI0MzI1LDI0MzI2LDI0MzI3LDI0MzI5LDI0MzMyLDI0MzMzLDI0MzM0LDI0MzM2LDI0MzM4LDI0MzQwLDI0MzQyLDI0MzQ1LDI0''@;'; put 'put ''MzQ2LDI0MzQ4LDI0MzQ5LDI0MzUwLDI0MzUzLDI0MzU0LDI0MzU1LDI0MzU2LDI0MzYwLDI0MzYzLDI0MzY0LDI0MzY2LDI0MzY4LDI0MzcwLDI0MzcxLDI0MzcyLDI0MzczLDI0Mzc0LDI0Mzc1LDI0Mzc2LDI0Mzc5LDI0MzgxLDI0MzgyLDI0MzgzLDI0Mzg1LDI0Mzg2LDI0Mzg3LDI0Mzg4''@;'; put 'put ''LDI0Mzg5LDI0MzkwLDI0MzkxLDI0MzkyLDI0MzkzLDI0Mzk0LDI0Mzk1LDI0Mzk2LDI0Mzk3LDI0Mzk4LDI0Mzk5LDI0NDAxLDI0NDA0LDI0NDA5LDI0NDEwLDI0NDExLDI0NDEyLDI0NDE0LDI0NDE1LDI0NDE2LDI0NDE5LDI0NDIxLDI0NDIzLDI0NDI0LDI0NDI3LDI0NDMwLDI0NDMxLDI0''@;'; put 'put ''NDM0LDI0NDM2LDI0NDM3LDI0NDM4LDI0NDQwLDI0NDQyLDI0NDQ1LDI0NDQ2LDI0NDQ3LDI0NDUxLDI0NDU0LDI0NDYxLDI0NDYyLDI0NDYzLDI0NDY1LDI0NDY3LDI0NDY4LDI0NDcwLDI0NDc0LDI0NDc1LDI0NDc3LDI0NDc4LDI0NDc5LDI0NDgwLDI0NDgyLDI0NDgzLDI0NDg0LDI0NDg1''@;'; put 'put ''LDI0NDg2LDI0NDg3LDI0NDg5LDI0NDkxLDI0NDkyLDI0NDk1LDI0NDk2LDI0NDk3LDI0NDk4LDI0NDk5LDI0NTAwLDI0NTAyLDI0NTA0LDI0NTA1LDI0NTA2LDI0NTA3LDI0NTEwLDI0NTExLDI0NTEyLDI0NTEzLDI0NTE0LDI0NTE5LDI0NTIwLDI0NTIyLDI0NTIzLDI0NTI2LDI0NTMxLDI0''@;'; put 'put ''NTMyLDI0NTMzLDI0NTM4LDI0NTM5LDI0NTQwLDI0NTQyLDI0NTQzLDI0NTQ2LDI0NTQ3LDI0NTQ5LDI0NTUwLDI0NTUyLDI0NTUzLDI0NTU2LDI0NTU5LDI0NTYwLDI0NTYyLDI0NTYzLDI0NTY0LDI0NTY2LDI0NTY3LDI0NTY5LDI0NTcwLDI0NTcyLDI0NTgzLDI0NTg0LDI0NTg1LDI0NTg3''@;'; put 'put ''LDI0NTg4LDI0NTkyLDI0NTkzLDI0NTk1LDI0NTk5LDI0NjAwLDI0NjAyLDI0NjA2LDI0NjA3LDI0NjEwLDI0NjExLDI0NjEyLDI0NjIwLDI0NjIxLDI0NjIyLDI0NjI0LDI0NjI1LDI0NjI2LDI0NjI3LDI0NjI4LDI0NjMwLDI0NjMxLDI0NjMyLDI0NjMzLDI0NjM0LDI0NjM3LDI0NjM4LDI0''@;'; put 'put ''NjQwLDI0NjQ0LDI0NjQ1LDI0NjQ2LDI0NjQ3LDI0NjQ4LDI0NjQ5LDI0NjUwLDI0NjUyLDI0NjU0LDI0NjU1LDI0NjU3LDI0NjU5LDI0NjYwLDI0NjYyLDI0NjYzLDI0NjY0LDI0NjY3LDI0NjY4LDI0NjcwLDI0NjcxLDI0NjcyLDI0NjczLDI0Njc3LDI0Njc4LDI0Njg2LDI0Njg5LDI0Njkw''@;'; put 'put ''LDI0NjkyLDI0NjkzLDI0Njk1LDI0NzAyLDI0NzA0LDI0NzA1LDI0NzA2LDI0NzA5LDI0NzEwLDI0NzExLDI0NzEyLDI0NzE0LDI0NzE1LDI0NzE4LDI0NzE5LDI0NzIwLDI0NzIxLDI0NzIzLDI0NzI1LDI0NzI3LDI0NzI4LDI0NzI5LDI0NzMyLDI0NzM0LDI0NzM3LDI0NzM4LDI0NzQwLDI0''@;'; put 'put ''NzQxLDI0NzQzLDI0NzQ1LDI0NzQ2LDI0NzUwLDI0NzUyLDI0NzU1LDI0NzU3LDI0NzU4LDI0NzU5LDI0NzYxLDI0NzYyLDI0NzY1LDI0NzY2LDI0NzY3LDI0NzY4LDI0NzY5LDI0NzcwLDI0NzcxLDI0NzcyLDI0Nzc1LDI0Nzc2LDI0Nzc3LDI0NzgwLDI0NzgxLDI0NzgyLDI0NzgzLDI0Nzg0''@;'; put 'put ''LDI0Nzg2LDI0Nzg3LDI0Nzg4LDI0NzkwLDI0NzkxLDI0NzkzLDI0Nzk1LDI0Nzk4LDI0ODAxLDI0ODAyLDI0ODAzLDI0ODA0LDI0ODA1LDI0ODEwLDI0ODE3LDI0ODE4LDI0ODIxLDI0ODIzLDI0ODI0LDI0ODI3LDI0ODI4LDI0ODI5LDI0ODMwLDI0ODMxLDI0ODM0LDI0ODM1LDI0ODM2LDI0''@;'; put 'put ''ODM3LDI0ODM5LDI0ODQyLDI0ODQzLDI0ODQ0LDI0ODQ4LDI0ODQ5LDI0ODUwLDI0ODUxLDI0ODUyLDI0ODU0LDI0ODU1LDI0ODU2LDI0ODU3LDI0ODU5LDI0ODYwLDI0ODYxLDI0ODYyLDI0ODY1LDI0ODY2LDI0ODY5LDI0ODcyLDI0ODczLDI0ODc0LDI0ODc2LDI0ODc3LDI0ODc4LDI0ODc5''@;'; put 'put ''LDI0ODgwLDI0ODgxLDI0ODgyLDI0ODgzLDI0ODg0LDI0ODg1LDI0ODg2LDI0ODg3LDI0ODg4LDI0ODg5LDI0ODkwLDI0ODkxLDI0ODkyLDI0ODkzLDI0ODk0LDI0ODk2LDI0ODk3LDI0ODk4LDI0ODk5LDI0OTAwLDI0OTAxLDI0OTAyLDI0OTAzLDI0OTA1LDI0OTA3LDI0OTA5LDI0OTExLDI0''@;'; put 'put ''OTEyLDI0OTE0LDI0OTE1LDI0OTE2LDI0OTE4LDI0OTE5LDI0OTIwLDI0OTIxLDI0OTIyLDI0OTIzLDI0OTI0LDI0OTI2LDI0OTI3LDI0OTI4LDI0OTI5LDI0OTMxLDI0OTMyLDI0OTMzLDI0OTM0LDI0OTM3LDI0OTM4LDI0OTM5LDI0OTQwLDI0OTQxLDI0OTQyLDI0OTQzLDI0OTQ1LDI0OTQ2''@;'; put 'put ''LDI0OTQ3LDI0OTQ4LDI0OTUwLDI0OTUyLDI0OTUzLDI0OTU0LDI0OTU1LDI0OTU2LDI0OTU3LDI0OTU4LDI0OTU5LDI0OTYwLDI0OTYxLDI0OTYyLDI0OTYzLDI0OTY0LDI0OTY1LDI0OTY2LDI0OTY3LDI0OTY4LDI0OTY5LDI0OTcwLDI0OTcyLDI0OTczLDI0OTc1LDI0OTc2LDI0OTc3LDI0''@;'; put 'put ''OTc4LDI0OTc5LDI0OTgxLDI0OTgyLDI0OTgzLDI0OTg0LDI0OTg1LDI0OTg2LDI0OTg3LDI0OTg4LDI0OTkwLDI0OTkxLDI0OTkyLDI0OTkzLDI0OTk0LDI0OTk1LDI0OTk2LDI0OTk3LDI0OTk4LDI1MDAyLDI1MDAzLDI1MDA1LDI1MDA2LDI1MDA3LDI1MDA4LDI1MDA5LDI1MDEwLDI1MDEx''@;'; put 'put ''LDI1MDEyLDI1MDEzLDI1MDE0LDI1MDE2LDI1MDE3LDI1MDE4LDI1MDE5LDI1MDIwLDI1MDIxLDI1MDIzLDI1MDI0LDI1MDI1LDI1MDI3LDI1MDI4LDI1MDI5LDI1MDMwLDI1MDMxLDI1MDMzLDI1MDM2LDI1MDM3LDI1MDM4LDI1MDM5LDI1MDQwLDI1MDQzLDI1MDQ1LDI1MDQ2LDI1MDQ3LDI1''@;'; put 'put ''MDQ4LDI1MDQ5LDI1MDUwLDI1MDUxLDI1MDUyLDI1MDUzLDI1MDU0LDI1MDU1LDI1MDU2LDI1MDU3LDI1MDU4LDI1MDU5LDI1MDYwLDI1MDYxLDI1MDYzLDI1MDY0LDI1MDY1LDI1MDY2LDI1MDY3LDI1MDY4LDI1MDY5LDI1MDcwLDI1MDcxLDI1MDcyLDI1MDczLDI1MDc0LDI1MDc1LDI1MDc2''@;'; put 'put ''LDI1MDc4LDI1MDc5LDI1MDgwLDI1MDgxLDI1MDgyLDI1MDgzLDI1MDg0LDI1MDg1LDI1MDg2LDI1MDg4LDI1MDg5LDI1MDkwLDI1MDkxLDI1MDkyLDI1MDkzLDI1MDk1LDI1MDk3LDI1MTA3LDI1MTA4LDI1MTEzLDI1MTE2LDI1MTE3LDI1MTE4LDI1MTIwLDI1MTIzLDI1MTI2LDI1MTI3LDI1''@;'; put 'put ''MTI4LDI1MTI5LDI1MTMxLDI1MTMzLDI1MTM1LDI1MTM2LDI1MTM3LDI1MTM4LDI1MTQxLDI1MTQyLDI1MTQ0LDI1MTQ1LDI1MTQ2LDI1MTQ3LDI1MTQ4LDI1MTU0LDI1MTU2LDI1MTU3LDI1MTU4LDI1MTYyLDI1MTY3LDI1MTY4LDI1MTczLDI1MTc0LDI1MTc1LDI1MTc3LDI1MTc4LDI1MTgw''@;'; put 'put ''LDI1MTgxLDI1MTgyLDI1MTgzLDI1MTg0LDI1MTg1LDI1MTg2LDI1MTg4LDI1MTg5LDI1MTkyLDI1MjAxLDI1MjAyLDI1MjA0LDI1MjA1LDI1MjA3LDI1MjA4LDI1MjEwLDI1MjExLDI1MjEzLDI1MjE3LDI1MjE4LDI1MjE5LDI1MjIxLDI1MjIyLDI1MjIzLDI1MjI0LDI1MjI3LDI1MjI4LDI1''@;'; put 'put ''MjI5LDI1MjMwLDI1MjMxLDI1MjMyLDI1MjM2LDI1MjQxLDI1MjQ0LDI1MjQ1LDI1MjQ2LDI1MjUxLDI1MjU0LDI1MjU1LDI1MjU3LDI1MjU4LDI1MjYxLDI1MjYyLDI1MjYzLDI1MjY0LDI1MjY2LDI1MjY3LDI1MjY4LDI1MjcwLDI1MjcxLDI1MjcyLDI1Mjc0LDI1Mjc4LDI1MjgwLDI1Mjgx''@;'; put 'put ''LDI1MjgzLDI1MjkxLDI1Mjk1LDI1Mjk3LDI1MzAxLDI1MzA5LDI1MzEwLDI1MzEyLDI1MzEzLDI1MzE2LDI1MzIyLDI1MzIzLDI1MzI4LDI1MzMwLDI1MzMzLDI1MzM2LDI1MzM3LDI1MzM4LDI1MzM5LDI1MzQ0LDI1MzQ3LDI1MzQ4LDI1MzQ5LDI1MzUwLDI1MzU0LDI1MzU1LDI1MzU2LDI1''@;'; put 'put ''MzU3LDI1MzU5LDI1MzYwLDI1MzYyLDI1MzYzLDI1MzY0LDI1MzY1LDI1MzY3LDI1MzY4LDI1MzY5LDI1MzcyLDI1MzgyLDI1MzgzLDI1Mzg1LDI1Mzg4LDI1Mzg5LDI1MzkwLDI1MzkyLDI1MzkzLDI1Mzk1LDI1Mzk2LDI1Mzk3LDI1Mzk4LDI1Mzk5LDI1NDAwLDI1NDAzLDI1NDA0LDI1NDA2''@;'; put 'put ''LDI1NDA3LDI1NDA4LDI1NDA5LDI1NDEyLDI1NDE1LDI1NDE2LDI1NDE4LDI1NDI1LDI1NDI2LDI1NDI3LDI1NDI4LDI1NDMwLDI1NDMxLDI1NDMyLDI1NDMzLDI1NDM0LDI1NDM1LDI1NDM2LDI1NDM3LDI1NDQwLDI1NDQ0LDI1NDQ1LDI1NDQ2LDI1NDQ4LDI1NDUwLDI1NDUxLDI1NDUyLDI1''@;'; put 'put ''NDU1LDI1NDU2LDI1NDU4LDI1NDU5LDI1NDYwLDI1NDYxLDI1NDY0LDI1NDY1LDI1NDY4LDI1NDY5LDI1NDcwLDI1NDcxLDI1NDczLDI1NDc1LDI1NDc2LDI1NDc3LDI1NDc4LDI1NDgzLDI1NDg1LDI1NDg5LDI1NDkxLDI1NDkyLDI1NDkzLDI1NDk1LDI1NDk3LDI1NDk4LDI1NDk5LDI1NTAw''@;'; put 'put ''LDI1NTAxLDI1NTAyLDI1NTAzLDI1NTA1LDI1NTA4LDI1NTEwLDI1NTE1LDI1NTE5LDI1NTIxLDI1NTIyLDI1NTI1LDI1NTI2LDI1NTI5LDI1NTMxLDI1NTMzLDI1NTM1LDI1NTM2LDI1NTM3LDI1NTM4LDI1NTM5LDI1NTQxLDI1NTQzLDI1NTQ0LDI1NTQ2LDI1NTQ3LDI1NTQ4LDI1NTUzLDI1''@;'; put 'put ''NTU1LDI1NTU2LDI1NTU3LDI1NTU5LDI1NTYwLDI1NTYxLDI1NTYyLDI1NTYzLDI1NTY0LDI1NTY1LDI1NTY3LDI1NTcwLDI1NTcyLDI1NTczLDI1NTc0LDI1NTc1LDI1NTc2LDI1NTc5LDI1NTgwLDI1NTgyLDI1NTgzLDI1NTg0LDI1NTg1LDI1NTg3LDI1NTg5LDI1NTkxLDI1NTkzLDI1NTk0''@;'; put 'put ''LDI1NTk1LDI1NTk2LDI1NTk4LDI1NjAzLDI1NjA0LDI1NjA2LDI1NjA3LDI1NjA4LDI1NjA5LDI1NjEwLDI1NjEzLDI1NjE0LDI1NjE3LDI1NjE4LDI1NjIxLDI1NjIyLDI1NjIzLDI1NjI0LDI1NjI1LDI1NjI2LDI1NjI5LDI1NjMxLDI1NjM0LDI1NjM1LDI1NjM2LDI1NjM3LDI1NjM5LDI1''@;'; put 'put ''NjQwLDI1NjQxLDI1NjQzLDI1NjQ2LDI1NjQ3LDI1NjQ4LDI1NjQ5LDI1NjUwLDI1NjUxLDI1NjUzLDI1NjU0LDI1NjU1LDI1NjU2LDI1NjU3LDI1NjU5LDI1NjYwLDI1NjYyLDI1NjY0LDI1NjY2LDI1NjY3LDI1NjczLDI1Njc1LDI1Njc2LDI1Njc3LDI1Njc4LDI1Njc5LDI1NjgwLDI1Njgx''@;'; put 'put ''LDI1NjgzLDI1Njg1LDI1Njg2LDI1Njg3LDI1Njg5LDI1NjkwLDI1NjkxLDI1NjkyLDI1NjkzLDI1Njk1LDI1Njk2LDI1Njk3LDI1Njk4LDI1Njk5LDI1NzAwLDI1NzAxLDI1NzAyLDI1NzA0LDI1NzA2LDI1NzA3LDI1NzA4LDI1NzEwLDI1NzExLDI1NzEyLDI1NzEzLDI1NzE0LDI1NzE1LDI1''@;'; put 'put ''NzE2LDI1NzE3LDI1NzE4LDI1NzE5LDI1NzIzLDI1NzI0LDI1NzI1LDI1NzI2LDI1NzI3LDI1NzI4LDI1NzI5LDI1NzMxLDI1NzM0LDI1NzM2LDI1NzM3LDI1NzM4LDI1NzM5LDI1NzQwLDI1NzQxLDI1NzQyLDI1NzQzLDI1NzQ0LDI1NzQ3LDI1NzQ4LDI1NzUxLDI1NzUyLDI1NzU0LDI1NzU1''@;'; put 'put ''LDI1NzU2LDI1NzU3LDI1NzU5LDI1NzYwLDI1NzYxLDI1NzYyLDI1NzYzLDI1NzY1LDI1NzY2LDI1NzY3LDI1NzY4LDI1NzcwLDI1NzcxLDI1Nzc1LDI1Nzc3LDI1Nzc4LDI1Nzc5LDI1NzgwLDI1NzgyLDI1Nzg1LDI1Nzg3LDI1Nzg5LDI1NzkwLDI1NzkxLDI1NzkzLDI1Nzk1LDI1Nzk2LDI1''@;'; put 'put ''Nzk4LDI1Nzk5LDI1ODAwLDI1ODAxLDI1ODAyLDI1ODAzLDI1ODA0LDI1ODA3LDI1ODA5LDI1ODExLDI1ODEyLDI1ODEzLDI1ODE0LDI1ODE3LDI1ODE4LDI1ODE5LDI1ODIwLDI1ODIxLDI1ODIzLDI1ODI0LDI1ODI1LDI1ODI3LDI1ODI5LDI1ODMxLDI1ODMyLDI1ODMzLDI1ODM0LDI1ODM1''@;'; put 'put ''LDI1ODM2LDI1ODM3LDI1ODM4LDI1ODM5LDI1ODQwLDI1ODQxLDI1ODQyLDI1ODQzLDI1ODQ0LDI1ODQ1LDI1ODQ2LDI1ODQ3LDI1ODQ4LDI1ODQ5LDI1ODUwLDI1ODUxLDI1ODUyLDI1ODUzLDI1ODU0LDI1ODU1LDI1ODU3LDI1ODU4LDI1ODU5LDI1ODYwLDI1ODYxLDI1ODYyLDI1ODYzLDI1''@;'; put 'put ''ODY0LDI1ODY2LDI1ODY3LDI1ODY4LDI1ODY5LDI1ODcwLDI1ODcxLDI1ODcyLDI1ODczLDI1ODc1LDI1ODc2LDI1ODc3LDI1ODc4LDI1ODc5LDI1ODgxLDI1ODgyLDI1ODgzLDI1ODg0LDI1ODg1LDI1ODg2LDI1ODg3LDI1ODg4LDI1ODg5LDI1ODkwLDI1ODkxLDI1ODkyLDI1ODk0LDI1ODk1''@;'; put 'put ''LDI1ODk2LDI1ODk3LDI1ODk4LDI1OTAwLDI1OTAxLDI1OTA0LDI1OTA1LDI1OTA2LDI1OTA3LDI1OTExLDI1OTE0LDI1OTE2LDI1OTE3LDI1OTIwLDI1OTIxLDI1OTIyLDI1OTIzLDI1OTI0LDI1OTI2LDI1OTI3LDI1OTMwLDI1OTMxLDI1OTMzLDI1OTM0LDI1OTM2LDI1OTM4LDI1OTM5LDI1''@;'; put 'put ''OTQwLDI1OTQzLDI1OTQ0LDI1OTQ2LDI1OTQ4LDI1OTUxLDI1OTUyLDI1OTUzLDI1OTU2LDI1OTU3LDI1OTU5LDI1OTYwLDI1OTYxLDI1OTYyLDI1OTY1LDI1OTY2LDI1OTY3LDI1OTY5LDI1OTcxLDI1OTczLDI1OTc0LDI1OTc2LDI1OTc3LDI1OTc4LDI1OTc5LDI1OTgwLDI1OTgxLDI1OTgy''@;'; put 'put ''LDI1OTgzLDI1OTg0LDI1OTg1LDI1OTg2LDI1OTg3LDI1OTg4LDI1OTg5LDI1OTkwLDI1OTkyLDI1OTkzLDI1OTk0LDI1OTk3LDI1OTk4LDI1OTk5LDI2MDAyLDI2MDA0LDI2MDA1LDI2MDA2LDI2MDA4LDI2MDEwLDI2MDEzLDI2MDE0LDI2MDE2LDI2MDE4LDI2MDE5LDI2MDIyLDI2MDI0LDI2''@;'; put 'put ''MDI2LDI2MDI4LDI2MDMwLDI2MDMzLDI2MDM0LDI2MDM1LDI2MDM2LDI2MDM3LDI2MDM4LDI2MDM5LDI2MDQwLDI2MDQyLDI2MDQzLDI2MDQ2LDI2MDQ3LDI2MDQ4LDI2MDUwLDI2MDU1LDI2MDU2LDI2MDU3LDI2MDU4LDI2MDYxLDI2MDY0LDI2MDY1LDI2MDY3LDI2MDY4LDI2MDY5LDI2MDcy''@;'; put 'put ''LDI2MDczLDI2MDc0LDI2MDc1LDI2MDc2LDI2MDc3LDI2MDc4LDI2MDc5LDI2MDgxLDI2MDgzLDI2MDg0LDI2MDkwLDI2MDkxLDI2MDk4LDI2MDk5LDI2MTAwLDI2MTAxLDI2MTA0LDI2MTA1LDI2MTA3LDI2MTA4LDI2MTA5LDI2MTEwLDI2MTExLDI2MTEzLDI2MTE2LDI2MTE3LDI2MTE5LDI2''@;'; put 'put ''MTIwLDI2MTIxLDI2MTIzLDI2MTI1LDI2MTI4LDI2MTI5LDI2MTMwLDI2MTM0LDI2MTM1LDI2MTM2LDI2MTM4LDI2MTM5LDI2MTQwLDI2MTQyLDI2MTQ1LDI2MTQ2LDI2MTQ3LDI2MTQ4LDI2MTUwLDI2MTUzLDI2MTU0LDI2MTU1LDI2MTU2LDI2MTU4LDI2MTYwLDI2MTYyLDI2MTYzLDI2MTY3''@;'; put 'put ''LDI2MTY4LDI2MTY5LDI2MTcwLDI2MTcxLDI2MTczLDI2MTc1LDI2MTc2LDI2MTc4LDI2MTgwLDI2MTgxLDI2MTgyLDI2MTgzLDI2MTg0LDI2MTg1LDI2MTg2LDI2MTg5LDI2MTkwLDI2MTkyLDI2MTkzLDI2MjAwLDI2MjAxLDI2MjAzLDI2MjA0LDI2MjA1LDI2MjA2LDI2MjA4LDI2MjEwLDI2''@;'; put 'put ''MjExLDI2MjEzLDI2MjE1LDI2MjE3LDI2MjE4LDI2MjE5LDI2MjIwLDI2MjIxLDI2MjI1LDI2MjI2LDI2MjI3LDI2MjI5LDI2MjMyLDI2MjMzLDI2MjM1LDI2MjM2LDI2MjM3LDI2MjM5LDI2MjQwLDI2MjQxLDI2MjQzLDI2MjQ1LDI2MjQ2LDI2MjQ4LDI2MjQ5LDI2MjUwLDI2MjUxLDI2MjUz''@;'; put 'put ''LDI2MjU0LDI2MjU1LDI2MjU2LDI2MjU4LDI2MjU5LDI2MjYwLDI2MjYxLDI2MjY0LDI2MjY1LDI2MjY2LDI2MjY3LDI2MjY4LDI2MjcwLDI2MjcxLDI2MjcyLDI2MjczLDI2Mjc0LDI2Mjc1LDI2Mjc2LDI2Mjc3LDI2Mjc4LDI2MjgxLDI2MjgyLDI2MjgzLDI2Mjg0LDI2Mjg1LDI2Mjg3LDI2''@;'; put 'put ''Mjg4LDI2Mjg5LDI2MjkwLDI2MjkxLDI2MjkzLDI2Mjk0LDI2Mjk1LDI2Mjk2LDI2Mjk4LDI2Mjk5LDI2MzAwLDI2MzAxLDI2MzAzLDI2MzA0LDI2MzA1LDI2MzA2LDI2MzA3LDI2MzA4LDI2MzA5LDI2MzEwLDI2MzExLDI2MzEyLDI2MzEzLDI2MzE0LDI2MzE1LDI2MzE2LDI2MzE3LDI2MzE4''@;'; put 'put ''LDI2MzE5LDI2MzIwLDI2MzIxLDI2MzIyLDI2MzIzLDI2MzI0LDI2MzI1LDI2MzI2LDI2MzI3LDI2MzI4LDI2MzMwLDI2MzM0LDI2MzM1LDI2MzM2LDI2MzM3LDI2MzM4LDI2MzM5LDI2MzQwLDI2MzQxLDI2MzQzLDI2MzQ0LDI2MzQ2LDI2MzQ3LDI2MzQ4LDI2MzQ5LDI2MzUwLDI2MzUxLDI2''@;'; put 'put ''MzUzLDI2MzU3LDI2MzU4LDI2MzYwLDI2MzYyLDI2MzYzLDI2MzY1LDI2MzY5LDI2MzcwLDI2MzcxLDI2MzcyLDI2MzczLDI2Mzc0LDI2Mzc1LDI2MzgwLDI2MzgyLDI2MzgzLDI2Mzg1LDI2Mzg2LDI2Mzg3LDI2MzkwLDI2MzkyLDI2MzkzLDI2Mzk0LDI2Mzk2LDI2Mzk4LDI2NDAwLDI2NDAx''@;'; put 'put ''LDI2NDAyLDI2NDAzLDI2NDA0LDI2NDA1LDI2NDA3LDI2NDA5LDI2NDE0LDI2NDE2LDI2NDE4LDI2NDE5LDI2NDIyLDI2NDIzLDI2NDI0LDI2NDI1LDI2NDI3LDI2NDI4LDI2NDMwLDI2NDMxLDI2NDMzLDI2NDM2LDI2NDM3LDI2NDM5LDI2NDQyLDI2NDQzLDI2NDQ1LDI2NDUwLDI2NDUyLDI2''@;'; put 'put ''NDUzLDI2NDU1LDI2NDU2LDI2NDU3LDI2NDU4LDI2NDU5LDI2NDYxLDI2NDY2LDI2NDY3LDI2NDY4LDI2NDcwLDI2NDcxLDI2NDc1LDI2NDc2LDI2NDc4LDI2NDgxLDI2NDg0LDI2NDg2LDI2NDg4LDI2NDg5LDI2NDkwLDI2NDkxLDI2NDkzLDI2NDk2LDI2NDk4LDI2NDk5LDI2NTAxLDI2NTAy''@;'; put 'put ''LDI2NTA0LDI2NTA2LDI2NTA4LDI2NTA5LDI2NTEwLDI2NTExLDI2NTEzLDI2NTE0LDI2NTE1LDI2NTE2LDI2NTE4LDI2NTIxLDI2NTIzLDI2NTI3LDI2NTI4LDI2NTI5LDI2NTMyLDI2NTM0LDI2NTM3LDI2NTQwLDI2NTQyLDI2NTQ1LDI2NTQ2LDI2NTQ4LDI2NTUzLDI2NTU0LDI2NTU1LDI2''@;'; put 'put ''NTU2LDI2NTU3LDI2NTU4LDI2NTU5LDI2NTYwLDI2NTYyLDI2NTY1LDI2NTY2LDI2NTY3LDI2NTY4LDI2NTY5LDI2NTcwLDI2NTcxLDI2NTcyLDI2NTczLDI2NTc0LDI2NTgxLDI2NTgyLDI2NTgzLDI2NTg3LDI2NTkxLDI2NTkzLDI2NTk1LDI2NTk2LDI2NTk4LDI2NTk5LDI2NjAwLDI2NjAy''@;'; put 'put ''LDI2NjAzLDI2NjA1LDI2NjA2LDI2NjEwLDI2NjEzLDI2NjE0LDI2NjE1LDI2NjE2LDI2NjE3LDI2NjE4LDI2NjE5LDI2NjIwLDI2NjIyLDI2NjI1LDI2NjI2LDI2NjI3LDI2NjI4LDI2NjMwLDI2NjM3LDI2NjQwLDI2NjQyLDI2NjQ0LDI2NjQ1LDI2NjQ4LDI2NjQ5LDI2NjUwLDI2NjUxLDI2''@;'; put 'put ''NjUyLDI2NjU0LDI2NjU1LDI2NjU2LDI2NjU4LDI2NjU5LDI2NjYwLDI2NjYxLDI2NjYyLDI2NjYzLDI2NjY0LDI2NjY3LDI2NjY4LDI2NjY5LDI2NjcwLDI2NjcxLDI2NjcyLDI2NjczLDI2Njc2LDI2Njc3LDI2Njc4LDI2NjgyLDI2NjgzLDI2Njg3LDI2Njk1LDI2Njk5LDI2NzAxLDI2NzAz''@;'; put 'put ''LDI2NzA2LDI2NzEwLDI2NzExLDI2NzEyLDI2NzEzLDI2NzE0LDI2NzE1LDI2NzE2LDI2NzE3LDI2NzE4LDI2NzE5LDI2NzMwLDI2NzMyLDI2NzMzLDI2NzM0LDI2NzM1LDI2NzM2LDI2NzM3LDI2NzM4LDI2NzM5LDI2NzQxLDI2NzQ0LDI2NzQ1LDI2NzQ2LDI2NzQ3LDI2NzQ4LDI2NzQ5LDI2''@;'; put 'put ''NzUwLDI2NzUxLDI2NzUyLDI2NzU0LDI2NzU2LDI2NzU5LDI2NzYwLDI2NzYxLDI2NzYyLDI2NzYzLDI2NzY0LDI2NzY1LDI2NzY2LDI2NzY4LDI2NzY5LDI2NzcwLDI2NzcyLDI2NzczLDI2Nzc0LDI2Nzc2LDI2Nzc3LDI2Nzc4LDI2Nzc5LDI2NzgwLDI2NzgxLDI2NzgyLDI2NzgzLDI2Nzg0''@;'; put 'put ''LDI2Nzg1LDI2Nzg3LDI2Nzg4LDI2Nzg5LDI2NzkzLDI2Nzk0LDI2Nzk1LDI2Nzk2LDI2Nzk4LDI2ODAxLDI2ODAyLDI2ODA0LDI2ODA2LDI2ODA3LDI2ODA4LDI2ODA5LDI2ODEwLDI2ODExLDI2ODEyLDI2ODEzLDI2ODE0LDI2ODE1LDI2ODE3LDI2ODE5LDI2ODIwLDI2ODIxLDI2ODIyLDI2''@;'; put 'put ''ODIzLDI2ODI0LDI2ODI2LDI2ODI4LDI2ODMwLDI2ODMxLDI2ODMyLDI2ODMzLDI2ODM1LDI2ODM2LDI2ODM4LDI2ODM5LDI2ODQxLDI2ODQzLDI2ODQ0LDI2ODQ1LDI2ODQ2LDI2ODQ3LDI2ODQ5LDI2ODUwLDI2ODUyLDI2ODUzLDI2ODU0LDI2ODU1LDI2ODU2LDI2ODU3LDI2ODU4LDI2ODU5''@;'; put 'put ''LDI2ODYwLDI2ODYxLDI2ODYzLDI2ODY2LDI2ODY3LDI2ODY4LDI2ODcwLDI2ODcxLDI2ODcyLDI2ODc1LDI2ODc3LDI2ODc4LDI2ODc5LDI2ODgwLDI2ODgyLDI2ODgzLDI2ODg0LDI2ODg2LDI2ODg3LDI2ODg4LDI2ODg5LDI2ODkwLDI2ODkyLDI2ODk1LDI2ODk3LDI2ODk5LDI2OTAwLDI2''@;'; put 'put ''OTAxLDI2OTAyLDI2OTAzLDI2OTA0LDI2OTA1LDI2OTA2LDI2OTA3LDI2OTA4LDI2OTA5LDI2OTEwLDI2OTEzLDI2OTE0LDI2OTE1LDI2OTE3LDI2OTE4LDI2OTE5LDI2OTIwLDI2OTIxLDI2OTIyLDI2OTIzLDI2OTI0LDI2OTI2LDI2OTI3LDI2OTI5LDI2OTMwLDI2OTMxLDI2OTMzLDI2OTM0''@;'; put 'put ''LDI2OTM1LDI2OTM2LDI2OTM4LDI2OTM5LDI2OTQwLDI2OTQyLDI2OTQ0LDI2OTQ1LDI2OTQ3LDI2OTQ4LDI2OTQ5LDI2OTUwLDI2OTUxLDI2OTUyLDI2OTUzLDI2OTU0LDI2OTU1LDI2OTU2LDI2OTU3LDI2OTU4LDI2OTU5LDI2OTYwLDI2OTYxLDI2OTYyLDI2OTYzLDI2OTY1LDI2OTY2LDI2''@;'; put 'put ''OTY4LDI2OTY5LDI2OTcxLDI2OTcyLDI2OTc1LDI2OTc3LDI2OTc4LDI2OTgwLDI2OTgxLDI2OTgzLDI2OTg0LDI2OTg1LDI2OTg2LDI2OTg4LDI2OTg5LDI2OTkxLDI2OTkyLDI2OTk0LDI2OTk1LDI2OTk2LDI2OTk3LDI2OTk4LDI3MDAyLDI3MDAzLDI3MDA1LDI3MDA2LDI3MDA3LDI3MDA5''@;'; put 'put ''LDI3MDExLDI3MDEzLDI3MDE4LDI3MDE5LDI3MDIwLDI3MDIyLDI3MDIzLDI3MDI0LDI3MDI1LDI3MDI2LDI3MDI3LDI3MDMwLDI3MDMxLDI3MDMzLDI3MDM0LDI3MDM3LDI3MDM4LDI3MDM5LDI3MDQwLDI3MDQxLDI3MDQyLDI3MDQzLDI3MDQ0LDI3MDQ1LDI3MDQ2LDI3MDQ5LDI3MDUwLDI3''@;'; put 'put ''MDUyLDI3MDU0LDI3MDU1LDI3MDU2LDI3MDU4LDI3MDU5LDI3MDYxLDI3MDYyLDI3MDY0LDI3MDY1LDI3MDY2LDI3MDY4LDI3MDY5LDI3MDcwLDI3MDcxLDI3MDcyLDI3MDc0LDI3MDc1LDI3MDc2LDI3MDc3LDI3MDc4LDI3MDc5LDI3MDgwLDI3MDgxLDI3MDgzLDI3MDg1LDI3MDg3LDI3MDg5''@;'; put 'put ''LDI3MDkwLDI3MDkxLDI3MDkzLDI3MDk0LDI3MDk1LDI3MDk2LDI3MDk3LDI3MDk4LDI3MTAwLDI3MTAxLDI3MTAyLDI3MTA1LDI3MTA2LDI3MTA3LDI3MTA4LDI3MTA5LDI3MTEwLDI3MTExLDI3MTEyLDI3MTEzLDI3MTE0LDI3MTE1LDI3MTE2LDI3MTE4LDI3MTE5LDI3MTIwLDI3MTIxLDI3''@;'; put 'put ''MTIzLDI3MTI0LDI3MTI1LDI3MTI2LDI3MTI3LDI3MTI4LDI3MTI5LDI3MTMwLDI3MTMxLDI3MTMyLDI3MTM0LDI3MTM2LDI3MTM3LDI3MTM4LDI3MTM5LDI3MTQwLDI3MTQxLDI3MTQyLDI3MTQzLDI3MTQ0LDI3MTQ1LDI3MTQ3LDI3MTQ4LDI3MTQ5LDI3MTUwLDI3MTUxLDI3MTUyLDI3MTUz''@;'; put 'put ''LDI3MTU0LDI3MTU1LDI3MTU2LDI3MTU3LDI3MTU4LDI3MTYxLDI3MTYyLDI3MTYzLDI3MTY0LDI3MTY1LDI3MTY2LDI3MTY4LDI3MTcwLDI3MTcxLDI3MTcyLDI3MTczLDI3MTc0LDI3MTc1LDI3MTc3LDI3MTc5LDI3MTgwLDI3MTgxLDI3MTgyLDI3MTg0LDI3MTg2LDI3MTg3LDI3MTg4LDI3''@;'; put 'put ''MTkwLDI3MTkxLDI3MTkyLDI3MTkzLDI3MTk0LDI3MTk1LDI3MTk2LDI3MTk5LDI3MjAwLDI3MjAxLDI3MjAyLDI3MjAzLDI3MjA1LDI3MjA2LDI3MjA4LDI3MjA5LDI3MjEwLDI3MjExLDI3MjEyLDI3MjEzLDI3MjE0LDI3MjE1LDI3MjE3LDI3MjE4LDI3MjE5LDI3MjIwLDI3MjIxLDI3MjIy''@;'; put 'put ''LDI3MjIzLDI3MjI2LDI3MjI4LDI3MjI5LDI3MjMwLDI3MjMxLDI3MjMyLDI3MjM0LDI3MjM1LDI3MjM2LDI3MjM4LDI3MjM5LDI3MjQwLDI3MjQxLDI3MjQyLDI3MjQzLDI3MjQ0LDI3MjQ1LDI3MjQ2LDI3MjQ3LDI3MjQ4LDI3MjUwLDI3MjUxLDI3MjUyLDI3MjUzLDI3MjU0LDI3MjU1LDI3''@;'; put 'put ''MjU2LDI3MjU4LDI3MjU5LDI3MjYxLDI3MjYyLDI3MjYzLDI3MjY1LDI3MjY2LDI3MjY3LDI3MjY5LDI3MjcwLDI3MjcxLDI3MjcyLDI3MjczLDI3Mjc0LDI3Mjc1LDI3Mjc2LDI3Mjc3LDI3Mjc5LDI3MjgyLDI3MjgzLDI3Mjg0LDI3Mjg1LDI3Mjg2LDI3Mjg4LDI3Mjg5LDI3MjkwLDI3Mjkx''@;'; put 'put ''LDI3MjkyLDI3MjkzLDI3Mjk0LDI3Mjk1LDI3Mjk3LDI3Mjk4LDI3Mjk5LDI3MzAwLDI3MzAxLDI3MzAyLDI3MzAzLDI3MzA0LDI3MzA2LDI3MzA5LDI3MzEwLDI3MzExLDI3MzEyLDI3MzEzLDI3MzE0LDI3MzE1LDI3MzE2LDI3MzE3LDI3MzE4LDI3MzE5LDI3MzIwLDI3MzIxLDI3MzIyLDI3''@;'; put 'put ''MzIzLDI3MzI0LDI3MzI1LDI3MzI2LDI3MzI3LDI3MzI4LDI3MzI5LDI3MzMwLDI3MzMxLDI3MzMyLDI3MzMzLDI3MzM0LDI3MzM1LDI3MzM2LDI3MzM3LDI3MzM4LDI3MzM5LDI3MzQwLDI3MzQxLDI3MzQyLDI3MzQzLDI3MzQ0LDI3MzQ1LDI3MzQ2LDI3MzQ3LDI3MzQ4LDI3MzQ5LDI3MzUw''@;'; put 'put ''LDI3MzUxLDI3MzUyLDI3MzUzLDI3MzU0LDI3MzU1LDI3MzU2LDI3MzU3LDI3MzU4LDI3MzU5LDI3MzYwLDI3MzYxLDI3MzYyLDI3MzYzLDI3MzY0LDI3MzY1LDI3MzY2LDI3MzY3LDI3MzY4LDI3MzY5LDI3MzcwLDI3MzcxLDI3MzcyLDI3MzczLDI3Mzc0LDI3Mzc1LDI3Mzc2LDI3Mzc3LDI3''@;'; put 'put ''Mzc4LDI3Mzc5LDI3MzgwLDI3MzgxLDI3MzgyLDI3MzgzLDI3Mzg0LDI3Mzg1LDI3Mzg2LDI3Mzg3LDI3Mzg4LDI3Mzg5LDI3MzkwLDI3MzkxLDI3MzkyLDI3MzkzLDI3Mzk0LDI3Mzk1LDI3Mzk2LDI3Mzk3LDI3Mzk4LDI3Mzk5LDI3NDAwLDI3NDAxLDI3NDAyLDI3NDAzLDI3NDA0LDI3NDA1''@;'; put 'put ''LDI3NDA2LDI3NDA3LDI3NDA4LDI3NDA5LDI3NDEwLDI3NDExLDI3NDEyLDI3NDEzLDI3NDE0LDI3NDE1LDI3NDE2LDI3NDE3LDI3NDE4LDI3NDE5LDI3NDIwLDI3NDIxLDI3NDIyLDI3NDIzLDI3NDI5LDI3NDMwLDI3NDMyLDI3NDMzLDI3NDM0LDI3NDM1LDI3NDM2LDI3NDM3LDI3NDM4LDI3''@;'; put 'put ''NDM5LDI3NDQwLDI3NDQxLDI3NDQzLDI3NDQ0LDI3NDQ1LDI3NDQ2LDI3NDQ4LDI3NDUxLDI3NDUyLDI3NDUzLDI3NDU1LDI3NDU2LDI3NDU3LDI3NDU4LDI3NDYwLDI3NDYxLDI3NDY0LDI3NDY2LDI3NDY3LDI3NDY5LDI3NDcwLDI3NDcxLDI3NDcyLDI3NDczLDI3NDc0LDI3NDc1LDI3NDc2''@;'; put 'put ''LDI3NDc3LDI3NDc4LDI3NDc5LDI3NDgwLDI3NDgyLDI3NDgzLDI3NDg0LDI3NDg1LDI3NDg2LDI3NDg3LDI3NDg4LDI3NDg5LDI3NDk2LDI3NDk3LDI3NDk5LDI3NTAwLDI3NTAxLDI3NTAyLDI3NTAzLDI3NTA0LDI3NTA1LDI3NTA2LDI3NTA3LDI3NTA4LDI3NTA5LDI3NTEwLDI3NTExLDI3''@;'; put 'put ''NTEyLDI3NTE0LDI3NTE3LDI3NTE4LDI3NTE5LDI3NTIwLDI3NTI1LDI3NTI4LDI3NTMyLDI3NTM0LDI3NTM1LDI3NTM2LDI3NTM3LDI3NTQwLDI3NTQxLDI3NTQzLDI3NTQ0LDI3NTQ1LDI3NTQ4LDI3NTQ5LDI3NTUwLDI3NTUxLDI3NTUyLDI3NTU0LDI3NTU1LDI3NTU2LDI3NTU3LDI3NTU4''@;'; put 'put ''LDI3NTU5LDI3NTYwLDI3NTYxLDI3NTYzLDI3NTY0LDI3NTY1LDI3NTY2LDI3NTY3LDI3NTY4LDI3NTY5LDI3NTcwLDI3NTc0LDI3NTc2LDI3NTc3LDI3NTc4LDI3NTc5LDI3NTgwLDI3NTgxLDI3NTgyLDI3NTg0LDI3NTg3LDI3NTg4LDI3NTkwLDI3NTkxLDI3NTkyLDI3NTkzLDI3NTk0LDI3''@;'; put 'put ''NTk2LDI3NTk4LDI3NjAwLDI3NjAxLDI3NjA4LDI3NjEwLDI3NjEyLDI3NjEzLDI3NjE0LDI3NjE1LDI3NjE2LDI3NjE4LDI3NjE5LDI3NjIwLDI3NjIxLDI3NjIyLDI3NjIzLDI3NjI0LDI3NjI1LDI3NjI4LDI3NjI5LDI3NjMwLDI3NjMyLDI3NjMzLDI3NjM0LDI3NjM2LDI3NjM4LDI3NjM5''@;'; put 'put ''LDI3NjQwLDI3NjQyLDI3NjQzLDI3NjQ0LDI3NjQ2LDI3NjQ3LDI3NjQ4LDI3NjQ5LDI3NjUwLDI3NjUxLDI3NjUyLDI3NjU2LDI3NjU3LDI3NjU4LDI3NjU5LDI3NjYwLDI3NjYyLDI3NjY2LDI3NjcxLDI3Njc2LDI3Njc3LDI3Njc4LDI3NjgwLDI3NjgzLDI3Njg1LDI3NjkxLDI3NjkyLDI3''@;'; put 'put ''NjkzLDI3Njk3LDI3Njk5LDI3NzAyLDI3NzAzLDI3NzA1LDI3NzA2LDI3NzA3LDI3NzA4LDI3NzEwLDI3NzExLDI3NzE1LDI3NzE2LDI3NzE3LDI3NzIwLDI3NzIzLDI3NzI0LDI3NzI1LDI3NzI2LDI3NzI3LDI3NzI5LDI3NzMwLDI3NzMxLDI3NzM0LDI3NzM2LDI3NzM3LDI3NzM4LDI3NzQ2''@;'; put 'put ''LDI3NzQ3LDI3NzQ5LDI3NzUwLDI3NzUxLDI3NzU1LDI3NzU2LDI3NzU3LDI3NzU4LDI3NzU5LDI3NzYxLDI3NzYzLDI3NzY1LDI3NzY3LDI3NzY4LDI3NzcwLDI3NzcxLDI3NzcyLDI3Nzc1LDI3Nzc2LDI3NzgwLDI3NzgzLDI3Nzg2LDI3Nzg3LDI3Nzg5LDI3NzkwLDI3NzkzLDI3Nzk0LDI3''@;'; put 'put ''Nzk3LDI3Nzk4LDI3Nzk5LDI3ODAwLDI3ODAyLDI3ODA0LDI3ODA1LDI3ODA2LDI3ODA4LDI3ODEwLDI3ODE2LDI3ODIwLDI3ODIzLDI3ODI0LDI3ODI4LDI3ODI5LDI3ODMwLDI3ODMxLDI3ODM0LDI3ODQwLDI3ODQxLDI3ODQyLDI3ODQzLDI3ODQ2LDI3ODQ3LDI3ODQ4LDI3ODUxLDI3ODUz''@;'; put 'put ''LDI3ODU0LDI3ODU1LDI3ODU3LDI3ODU4LDI3ODY0LDI3ODY1LDI3ODY2LDI3ODY4LDI3ODY5LDI3ODcxLDI3ODc2LDI3ODc4LDI3ODc5LDI3ODgxLDI3ODg0LDI3ODg1LDI3ODkwLDI3ODkyLDI3ODk3LDI3OTAzLDI3OTA0LDI3OTA2LDI3OTA3LDI3OTA5LDI3OTEwLDI3OTEyLDI3OTEzLDI3''@;'; put 'put ''OTE0LDI3OTE3LDI3OTE5LDI3OTIwLDI3OTIxLDI3OTIzLDI3OTI0LDI3OTI1LDI3OTI2LDI3OTI4LDI3OTMyLDI3OTMzLDI3OTM1LDI3OTM2LDI3OTM3LDI3OTM4LDI3OTM5LDI3OTQwLDI3OTQyLDI3OTQ0LDI3OTQ1LDI3OTQ4LDI3OTQ5LDI3OTUxLDI3OTUyLDI3OTU2LDI3OTU4LDI3OTU5''@;'; put 'put ''LDI3OTYwLDI3OTYyLDI3OTY3LDI3OTY4LDI3OTcwLDI3OTcyLDI3OTc3LDI3OTgwLDI3OTg0LDI3OTg5LDI3OTkwLDI3OTkxLDI3OTkyLDI3OTk1LDI3OTk3LDI3OTk5LDI4MDAxLDI4MDAyLDI4MDA0LDI4MDA1LDI4MDA3LDI4MDA4LDI4MDExLDI4MDEyLDI4MDEzLDI4MDE2LDI4MDE3LDI4''@;'; put 'put ''MDE4LDI4MDE5LDI4MDIxLDI4MDIyLDI4MDI1LDI4MDI2LDI4MDI3LDI4MDI5LDI4MDMwLDI4MDMxLDI4MDMyLDI4MDMzLDI4MDM1LDI4MDM2LDI4MDM4LDI4MDM5LDI4MDQyLDI4MDQzLDI4MDQ1LDI4MDQ3LDI4MDQ4LDI4MDUwLDI4MDU0LDI4MDU1LDI4MDU2LDI4MDU3LDI4MDU4LDI4MDYw''@;'; put 'put ''LDI4MDY2LDI4MDY5LDI4MDc2LDI4MDc3LDI4MDgwLDI4MDgxLDI4MDgzLDI4MDg0LDI4MDg2LDI4MDg3LDI4MDg5LDI4MDkwLDI4MDkxLDI4MDkyLDI4MDkzLDI4MDk0LDI4MDk3LDI4MDk4LDI4MDk5LDI4MTA0LDI4MTA1LDI4MTA2LDI4MTA5LDI4MTEwLDI4MTExLDI4MTEyLDI4MTE0LDI4''@;'; put 'put ''MTE1LDI4MTE2LDI4MTE3LDI4MTE5LDI4MTIyLDI4MTIzLDI4MTI0LDI4MTI3LDI4MTMwLDI4MTMxLDI4MTMzLDI4MTM1LDI4MTM2LDI4MTM3LDI4MTM4LDI4MTQxLDI4MTQzLDI4MTQ0LDI4MTQ2LDI4MTQ4LDI4MTQ5LDI4MTUwLDI4MTUyLDI4MTU0LDI4MTU3LDI4MTU4LDI4MTU5LDI4MTYw''@;'; put 'put ''LDI4MTYxLDI4MTYyLDI4MTYzLDI4MTY0LDI4MTY2LDI4MTY3LDI4MTY4LDI4MTY5LDI4MTcxLDI4MTc1LDI4MTc4LDI4MTc5LDI4MTgxLDI4MTg0LDI4MTg1LDI4MTg3LDI4MTg4LDI4MTkwLDI4MTkxLDI4MTk0LDI4MTk4LDI4MTk5LDI4MjAwLDI4MjAyLDI4MjA0LDI4MjA2LDI4MjA4LDI4''@;'; put 'put ''MjA5LDI4MjExLDI4MjEzLDI4MjE0LDI4MjE1LDI4MjE3LDI4MjE5LDI4MjIwLDI4MjIxLDI4MjIyLDI4MjIzLDI4MjI0LDI4MjI1LDI4MjI2LDI4MjI5LDI4MjMwLDI4MjMxLDI4MjMyLDI4MjMzLDI4MjM0LDI4MjM1LDI4MjM2LDI4MjM5LDI4MjQwLDI4MjQxLDI4MjQyLDI4MjQ1LDI4MjQ3''@;'; put 'put ''LDI4MjQ5LDI4MjUwLDI4MjUyLDI4MjUzLDI4MjU0LDI4MjU2LDI4MjU3LDI4MjU4LDI4MjU5LDI4MjYwLDI4MjYxLDI4MjYyLDI4MjYzLDI4MjY0LDI4MjY1LDI4MjY2LDI4MjY4LDI4MjY5LDI4MjcxLDI4MjcyLDI4MjczLDI4Mjc0LDI4Mjc1LDI4Mjc2LDI4Mjc3LDI4Mjc4LDI4Mjc5LDI4''@;'; put 'put ''MjgwLDI4MjgxLDI4MjgyLDI4MjgzLDI4Mjg0LDI4Mjg1LDI4Mjg4LDI4Mjg5LDI4MjkwLDI4MjkyLDI4Mjk1LDI4Mjk2LDI4Mjk4LDI4Mjk5LDI4MzAwLDI4MzAxLDI4MzAyLDI4MzA1LDI4MzA2LDI4MzA3LDI4MzA4LDI4MzA5LDI4MzEwLDI4MzExLDI4MzEzLDI4MzE0LDI4MzE1LDI4MzE3''@;'; put 'put ''LDI4MzE4LDI4MzIwLDI4MzIxLDI4MzIzLDI4MzI0LDI4MzI2LDI4MzI4LDI4MzI5LDI4MzMxLDI4MzMyLDI4MzMzLDI4MzM0LDI4MzM2LDI4MzM5LDI4MzQxLDI4MzQ0LDI4MzQ1LDI4MzQ4LDI4MzUwLDI4MzUxLDI4MzUyLDI4MzU1LDI4MzU2LDI4MzU3LDI4MzU4LDI4MzYwLDI4MzYxLDI4''@;'; put 'put ''MzYyLDI4MzY0LDI4MzY1LDI4MzY2LDI4MzY4LDI4MzcwLDI4Mzc0LDI4Mzc2LDI4Mzc3LDI4Mzc5LDI4MzgwLDI4MzgxLDI4Mzg3LDI4MzkxLDI4Mzk0LDI4Mzk1LDI4Mzk2LDI4Mzk3LDI4Mzk4LDI4Mzk5LDI4NDAwLDI4NDAxLDI4NDAyLDI4NDAzLDI4NDA1LDI4NDA2LDI4NDA3LDI4NDA4''@;'; put 'put ''LDI4NDEwLDI4NDExLDI4NDEyLDI4NDEzLDI4NDE0LDI4NDE1LDI4NDE2LDI4NDE3LDI4NDE5LDI4NDIwLDI4NDIxLDI4NDIzLDI4NDI0LDI4NDI2LDI4NDI3LDI4NDI4LDI4NDI5LDI4NDMwLDI4NDMyLDI4NDMzLDI4NDM0LDI4NDM4LDI4NDM5LDI4NDQwLDI4NDQxLDI4NDQyLDI4NDQzLDI4''@;'; put 'put ''NDQ0LDI4NDQ1LDI4NDQ2LDI4NDQ3LDI4NDQ5LDI4NDUwLDI4NDUxLDI4NDUzLDI4NDU0LDI4NDU1LDI4NDU2LDI4NDYwLDI4NDYyLDI4NDY0LDI4NDY2LDI4NDY4LDI4NDY5LDI4NDcxLDI4NDcyLDI4NDczLDI4NDc0LDI4NDc1LDI4NDc2LDI4NDc3LDI4NDc5LDI4NDgwLDI4NDgxLDI4NDgy''@;'; put 'put ''LDI4NDgzLDI4NDg0LDI4NDg1LDI4NDg4LDI4NDg5LDI4NDkwLDI4NDkyLDI4NDk0LDI4NDk1LDI4NDk2LDI4NDk3LDI4NDk4LDI4NDk5LDI4NTAwLDI4NTAxLDI4NTAyLDI4NTAzLDI4NTA1LDI4NTA2LDI4NTA3LDI4NTA5LDI4NTExLDI4NTEyLDI4NTEzLDI4NTE1LDI4NTE2LDI4NTE3LDI4''@;'; put 'put ''NTE5LDI4NTIwLDI4NTIxLDI4NTIyLDI4NTIzLDI4NTI0LDI4NTI3LDI4NTI4LDI4NTI5LDI4NTMxLDI4NTMzLDI4NTM0LDI4NTM1LDI4NTM3LDI4NTM5LDI4NTQxLDI4NTQyLDI4NTQzLDI4NTQ0LDI4NTQ1LDI4NTQ2LDI4NTQ3LDI4NTQ5LDI4NTUwLDI4NTUxLDI4NTU0LDI4NTU1LDI4NTU5''@;'; put 'put ''LDI4NTYwLDI4NTYxLDI4NTYyLDI4NTYzLDI4NTY0LDI4NTY1LDI4NTY2LDI4NTY3LDI4NTY4LDI4NTY5LDI4NTcwLDI4NTcxLDI4NTczLDI4NTc0LDI4NTc1LDI4NTc2LDI4NTc4LDI4NTc5LDI4NTgwLDI4NTgxLDI4NTgyLDI4NTg0LDI4NTg1LDI4NTg2LDI4NTg3LDI4NTg4LDI4NTg5LDI4''@;'; put 'put ''NTkwLDI4NTkxLDI4NTkyLDI4NTkzLDI4NTk0LDI4NTk2LDI4NTk3LDI4NTk5LDI4NjAwLDI4NjAyLDI4NjAzLDI4NjA0LDI4NjA1LDI4NjA2LDI4NjA3LDI4NjA5LDI4NjExLDI4NjEyLDI4NjEzLDI4NjE0LDI4NjE1LDI4NjE2LDI4NjE4LDI4NjE5LDI4NjIwLDI4NjIxLDI4NjIyLDI4NjIz''@;'; put 'put ''LDI4NjI0LDI4NjI3LDI4NjI4LDI4NjI5LDI4NjMwLDI4NjMxLDI4NjMyLDI4NjMzLDI4NjM0LDI4NjM1LDI4NjM2LDI4NjM3LDI4NjM5LDI4NjQyLDI4NjQzLDI4NjQ0LDI4NjQ1LDI4NjQ2LDI4NjQ3LDI4NjQ4LDI4NjQ5LDI4NjUwLDI4NjUxLDI4NjUyLDI4NjUzLDI4NjU2LDI4NjU3LDI4''@;'; put 'put ''NjU4LDI4NjU5LDI4NjYwLDI4NjYxLDI4NjYyLDI4NjYzLDI4NjY0LDI4NjY1LDI4NjY2LDI4NjY3LDI4NjY4LDI4NjY5LDI4NjcwLDI4NjcxLDI4NjcyLDI4NjczLDI4Njc0LDI4Njc1LDI4Njc2LDI4Njc3LDI4Njc4LDI4Njc5LDI4NjgwLDI4NjgxLDI4NjgyLDI4NjgzLDI4Njg0LDI4Njg1''@;'; put 'put ''LDI4Njg2LDI4Njg3LDI4Njg4LDI4NjkwLDI4NjkxLDI4NjkyLDI4NjkzLDI4Njk0LDI4Njk1LDI4Njk2LDI4Njk3LDI4NzAwLDI4NzAxLDI4NzAyLDI4NzAzLDI4NzA0LDI4NzA1LDI4NzA2LDI4NzA4LDI4NzA5LDI4NzEwLDI4NzExLDI4NzEyLDI4NzEzLDI4NzE0LDI4NzE1LDI4NzE2LDI4''@;'; put 'put ''NzE3LDI4NzE4LDI4NzE5LDI4NzIwLDI4NzIxLDI4NzIyLDI4NzIzLDI4NzI0LDI4NzI2LDI4NzI3LDI4NzI4LDI4NzMwLDI4NzMxLDI4NzMyLDI4NzMzLDI4NzM0LDI4NzM1LDI4NzM2LDI4NzM3LDI4NzM4LDI4NzM5LDI4NzQwLDI4NzQxLDI4NzQyLDI4NzQzLDI4NzQ0LDI4NzQ1LDI4NzQ2''@;'; put 'put ''LDI4NzQ3LDI4NzQ5LDI4NzUwLDI4NzUyLDI4NzUzLDI4NzU0LDI4NzU1LDI4NzU2LDI4NzU3LDI4NzU4LDI4NzU5LDI4NzYwLDI4NzYxLDI4NzYyLDI4NzYzLDI4NzY0LDI4NzY1LDI4NzY3LDI4NzY4LDI4NzY5LDI4NzcwLDI4NzcxLDI4NzcyLDI4NzczLDI4Nzc0LDI4Nzc1LDI4Nzc2LDI4''@;'; put 'put ''Nzc3LDI4Nzc4LDI4NzgyLDI4Nzg1LDI4Nzg2LDI4Nzg3LDI4Nzg4LDI4NzkxLDI4NzkzLDI4Nzk0LDI4Nzk1LDI4Nzk3LDI4ODAxLDI4ODAyLDI4ODAzLDI4ODA0LDI4ODA2LDI4ODA3LDI4ODA4LDI4ODExLDI4ODEyLDI4ODEzLDI4ODE1LDI4ODE2LDI4ODE3LDI4ODE5LDI4ODIzLDI4ODI0''@;'; put 'put ''LDI4ODI2LDI4ODI3LDI4ODMwLDI4ODMxLDI4ODMyLDI4ODMzLDI4ODM0LDI4ODM1LDI4ODM2LDI4ODM3LDI4ODM4LDI4ODM5LDI4ODQwLDI4ODQxLDI4ODQyLDI4ODQ4LDI4ODUwLDI4ODUyLDI4ODUzLDI4ODU0LDI4ODU4LDI4ODYyLDI4ODYzLDI4ODY4LDI4ODY5LDI4ODcwLDI4ODcxLDI4''@;'; put 'put ''ODczLDI4ODc1LDI4ODc2LDI4ODc3LDI4ODc4LDI4ODc5LDI4ODgwLDI4ODgxLDI4ODgyLDI4ODgzLDI4ODg0LDI4ODg1LDI4ODg2LDI4ODg3LDI4ODkwLDI4ODkyLDI4ODkzLDI4ODk0LDI4ODk2LDI4ODk3LDI4ODk4LDI4ODk5LDI4OTAxLDI4OTA2LDI4OTEwLDI4OTEyLDI4OTEzLDI4OTE0''@;'; put 'put ''LDI4OTE1LDI4OTE2LDI4OTE3LDI4OTE4LDI4OTIwLDI4OTIyLDI4OTIzLDI4OTI0LDI4OTI2LDI4OTI3LDI4OTI4LDI4OTI5LDI4OTMwLDI4OTMxLDI4OTMyLDI4OTMzLDI4OTM0LDI4OTM1LDI4OTM2LDI4OTM5LDI4OTQwLDI4OTQxLDI4OTQyLDI4OTQzLDI4OTQ1LDI4OTQ2LDI4OTQ4LDI4''@;'; put 'put ''OTUxLDI4OTU1LDI4OTU2LDI4OTU3LDI4OTU4LDI4OTU5LDI4OTYwLDI4OTYxLDI4OTYyLDI4OTYzLDI4OTY0LDI4OTY1LDI4OTY3LDI4OTY4LDI4OTY5LDI4OTcwLDI4OTcxLDI4OTcyLDI4OTczLDI4OTc0LDI4OTc4LDI4OTc5LDI4OTgwLDI4OTgxLDI4OTgzLDI4OTg0LDI4OTg1LDI4OTg2''@;'; put 'put ''LDI4OTg3LDI4OTg4LDI4OTg5LDI4OTkwLDI4OTkxLDI4OTkyLDI4OTkzLDI4OTk0LDI4OTk1LDI4OTk2LDI4OTk4LDI4OTk5LDI5ZTMsMjkwMDEsMjkwMDMsMjkwMDUsMjkwMDcsMjkwMDgsMjkwMDksMjkwMTAsMjkwMTEsMjkwMTIsMjkwMTMsMjkwMTQsMjkwMTUsMjkwMTYsMjkwMTcsMjkw''@;'; put 'put ''MTgsMjkwMTksMjkwMjEsMjkwMjMsMjkwMjQsMjkwMjUsMjkwMjYsMjkwMjcsMjkwMjksMjkwMzMsMjkwMzQsMjkwMzUsMjkwMzYsMjkwMzcsMjkwMzksMjkwNDAsMjkwNDEsMjkwNDQsMjkwNDUsMjkwNDYsMjkwNDcsMjkwNDksMjkwNTEsMjkwNTIsMjkwNTQsMjkwNTUsMjkwNTYsMjkwNTcs''@;'; put 'put ''MjkwNTgsMjkwNTksMjkwNjEsMjkwNjIsMjkwNjMsMjkwNjQsMjkwNjUsMjkwNjcsMjkwNjgsMjkwNjksMjkwNzAsMjkwNzIsMjkwNzMsMjkwNzQsMjkwNzUsMjkwNzcsMjkwNzgsMjkwNzksMjkwODIsMjkwODMsMjkwODQsMjkwODUsMjkwODYsMjkwODksMjkwOTAsMjkwOTEsMjkwOTIsMjkw''@;'; put 'put ''OTMsMjkwOTQsMjkwOTUsMjkwOTcsMjkwOTgsMjkwOTksMjkxMDEsMjkxMDIsMjkxMDMsMjkxMDQsMjkxMDUsMjkxMDYsMjkxMDgsMjkxMTAsMjkxMTEsMjkxMTIsMjkxMTQsMjkxMTUsMjkxMTYsMjkxMTcsMjkxMTgsMjkxMTksMjkxMjAsMjkxMjEsMjkxMjIsMjkxMjQsMjkxMjUsMjkxMjYs''@;'; put 'put ''MjkxMjcsMjkxMjgsMjkxMjksMjkxMzAsMjkxMzEsMjkxMzIsMjkxMzMsMjkxMzUsMjkxMzYsMjkxMzcsMjkxMzgsMjkxMzksMjkxNDIsMjkxNDMsMjkxNDQsMjkxNDUsMjkxNDYsMjkxNDcsMjkxNDgsMjkxNDksMjkxNTAsMjkxNTEsMjkxNTMsMjkxNTQsMjkxNTUsMjkxNTYsMjkxNTgsMjkx''@;'; put 'put ''NjAsMjkxNjEsMjkxNjIsMjkxNjMsMjkxNjQsMjkxNjUsMjkxNjcsMjkxNjgsMjkxNjksMjkxNzAsMjkxNzEsMjkxNzIsMjkxNzMsMjkxNzQsMjkxNzUsMjkxNzYsMjkxNzgsMjkxNzksMjkxODAsMjkxODEsMjkxODIsMjkxODMsMjkxODQsMjkxODUsMjkxODYsMjkxODcsMjkxODgsMjkxODks''@;'; put 'put ''MjkxOTEsMjkxOTIsMjkxOTMsMjkxOTQsMjkxOTUsMjkxOTYsMjkxOTcsMjkxOTgsMjkxOTksMjkyMDAsMjkyMDEsMjkyMDIsMjkyMDMsMjkyMDQsMjkyMDUsMjkyMDYsMjkyMDcsMjkyMDgsMjkyMDksMjkyMTAsMjkyMTEsMjkyMTIsMjkyMTQsMjkyMTUsMjkyMTYsMjkyMTcsMjkyMTgsMjky''@;'; put 'put ''MTksMjkyMjAsMjkyMjEsMjkyMjIsMjkyMjMsMjkyMjUsMjkyMjcsMjkyMjksMjkyMzAsMjkyMzEsMjkyMzQsMjkyMzUsMjkyMzYsMjkyNDIsMjkyNDQsMjkyNDYsMjkyNDgsMjkyNDksMjkyNTAsMjkyNTEsMjkyNTIsMjkyNTMsMjkyNTQsMjkyNTcsMjkyNTgsMjkyNTksMjkyNjIsMjkyNjMs''@;'; put 'put ''MjkyNjQsMjkyNjUsMjkyNjcsMjkyNjgsMjkyNjksMjkyNzEsMjkyNzIsMjkyNzQsMjkyNzYsMjkyNzgsMjkyODAsMjkyODMsMjkyODQsMjkyODUsMjkyODgsMjkyOTAsMjkyOTEsMjkyOTIsMjkyOTMsMjkyOTYsMjkyOTcsMjkyOTksMjkzMDAsMjkzMDIsMjkzMDMsMjkzMDQsMjkzMDcsMjkz''@;'; put 'put ''MDgsMjkzMDksMjkzMTQsMjkzMTUsMjkzMTcsMjkzMTgsMjkzMTksMjkzMjAsMjkzMjEsMjkzMjQsMjkzMjYsMjkzMjgsMjkzMjksMjkzMzEsMjkzMzIsMjkzMzMsMjkzMzQsMjkzMzUsMjkzMzYsMjkzMzcsMjkzMzgsMjkzMzksMjkzNDAsMjkzNDEsMjkzNDIsMjkzNDQsMjkzNDUsMjkzNDYs''@;'; put 'put ''MjkzNDcsMjkzNDgsMjkzNDksMjkzNTAsMjkzNTEsMjkzNTIsMjkzNTMsMjkzNTQsMjkzNTUsMjkzNTgsMjkzNjEsMjkzNjIsMjkzNjMsMjkzNjUsMjkzNzAsMjkzNzEsMjkzNzIsMjkzNzMsMjkzNzQsMjkzNzUsMjkzNzYsMjkzODEsMjkzODIsMjkzODMsMjkzODUsMjkzODYsMjkzODcsMjkz''@;'; put 'put ''ODgsMjkzOTEsMjkzOTMsMjkzOTUsMjkzOTYsMjkzOTcsMjkzOTgsMjk0MDAsMjk0MDIsMjk0MDMsNTg1NjYsNTg1NjcsNTg1NjgsNTg1NjksNTg1NzAsNTg1NzEsNTg1NzIsNTg1NzMsNTg1NzQsNTg1NzUsNTg1NzYsNTg1NzcsNTg1NzgsNTg1NzksNTg1ODAsNTg1ODEsNTg1ODIsNTg1ODMs''@;'; put 'put ''NTg1ODQsNTg1ODUsNTg1ODYsNTg1ODcsNTg1ODgsNTg1ODksNTg1OTAsNTg1OTEsNTg1OTIsNTg1OTMsNTg1OTQsNTg1OTUsNTg1OTYsNTg1OTcsNTg1OTgsNTg1OTksNTg2MDAsNTg2MDEsNTg2MDIsNTg2MDMsNTg2MDQsNTg2MDUsNTg2MDYsNTg2MDcsNTg2MDgsNTg2MDksNTg2MTAsNTg2''@;'; put 'put ''MTEsNTg2MTIsNTg2MTMsNTg2MTQsNTg2MTUsNTg2MTYsNTg2MTcsNTg2MTgsNTg2MTksNTg2MjAsNTg2MjEsNTg2MjIsNTg2MjMsNTg2MjQsNTg2MjUsNTg2MjYsNTg2MjcsNTg2MjgsNTg2MjksNTg2MzAsNTg2MzEsNTg2MzIsNTg2MzMsNTg2MzQsNTg2MzUsNTg2MzYsNTg2MzcsNTg2Mzgs''@;'; put 'put ''NTg2MzksNTg2NDAsNTg2NDEsNTg2NDIsNTg2NDMsNTg2NDQsNTg2NDUsNTg2NDYsNTg2NDcsNTg2NDgsNTg2NDksNTg2NTAsNTg2NTEsNTg2NTIsNTg2NTMsNTg2NTQsNTg2NTUsNTg2NTYsNTg2NTcsNTg2NTgsNTg2NTksNTg2NjAsNTg2NjEsMTIyODgsMTIyODksMTIyOTAsMTgzLDcxMyw3''@;'; put 'put ''MTEsMTY4LDEyMjkxLDEyMjkzLDgyMTIsNjUzNzQsODIxNCw4MjMwLDgyMTYsODIxNyw4MjIwLDgyMjEsMTIzMDgsMTIzMDksMTIyOTYsMTIyOTcsMTIyOTgsMTIyOTksMTIzMDAsMTIzMDEsMTIzMDIsMTIzMDMsMTIzMTAsMTIzMTEsMTIzMDQsMTIzMDUsMTc3LDIxNSwyNDcsODc1OCw4NzQz''@;'; put 'put ''LDg3NDQsODcyMSw4NzE5LDg3NDYsODc0NSw4NzEyLDg3NTksODczMCw4ODY5LDg3NDEsODczNiw4OTc4LDg4NTcsODc0Nyw4NzUwLDg4MDEsODc4MCw4Nzc2LDg3NjUsODczMyw4ODAwLDg4MTQsODgxNSw4ODA0LDg4MDUsODczNCw4NzU3LDg3NTYsOTc5NCw5NzkyLDE3Niw4MjQyLDgyNDMs''@;'; put 'put ''ODQ1MSw2NTI4NCwxNjQsNjU1MDQsNjU1MDUsODI0MCwxNjcsODQ3MCw5NzM0LDk3MzMsOTY3NSw5Njc5LDk2NzgsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjUxLDk2NTAsODI1MSw4NTk0LDg1OTIsODU5Myw4NTk1LDEyMzA3LDU4NjYyLDU4NjYzLDU4NjY0LDU4NjY1LDU4NjY2LDU4NjY3LDU4''@;'; put 'put ''NjY4LDU4NjY5LDU4NjcwLDU4NjcxLDU4NjcyLDU4NjczLDU4Njc0LDU4Njc1LDU4Njc2LDU4Njc3LDU4Njc4LDU4Njc5LDU4NjgwLDU4NjgxLDU4NjgyLDU4NjgzLDU4Njg0LDU4Njg1LDU4Njg2LDU4Njg3LDU4Njg4LDU4Njg5LDU4NjkwLDU4NjkxLDU4NjkyLDU4NjkzLDU4Njk0LDU4Njk1''@;'; put 'put ''LDU4Njk2LDU4Njk3LDU4Njk4LDU4Njk5LDU4NzAwLDU4NzAxLDU4NzAyLDU4NzAzLDU4NzA0LDU4NzA1LDU4NzA2LDU4NzA3LDU4NzA4LDU4NzA5LDU4NzEwLDU4NzExLDU4NzEyLDU4NzEzLDU4NzE0LDU4NzE1LDU4NzE2LDU4NzE3LDU4NzE4LDU4NzE5LDU4NzIwLDU4NzIxLDU4NzIyLDU4''@;'; put 'put ''NzIzLDU4NzI0LDU4NzI1LDU4NzI2LDU4NzI3LDU4NzI4LDU4NzI5LDU4NzMwLDU4NzMxLDU4NzMyLDU4NzMzLDU4NzM0LDU4NzM1LDU4NzM2LDU4NzM3LDU4NzM4LDU4NzM5LDU4NzQwLDU4NzQxLDU4NzQyLDU4NzQzLDU4NzQ0LDU4NzQ1LDU4NzQ2LDU4NzQ3LDU4NzQ4LDU4NzQ5LDU4NzUw''@;'; put 'put ''LDU4NzUxLDU4NzUyLDU4NzUzLDU4NzU0LDU4NzU1LDU4NzU2LDU4NzU3LDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksNTkyMzgsNTkyMzksNTkyNDAsNTkyNDEsNTkyNDIsNTkyNDMsOTM1Miw5MzUzLDkzNTQsOTM1NSw5MzU2LDkzNTcsOTM1OCw5''@;'; put 'put ''MzU5LDkzNjAsOTM2MSw5MzYyLDkzNjMsOTM2NCw5MzY1LDkzNjYsOTM2Nyw5MzY4LDkzNjksOTM3MCw5MzcxLDkzMzIsOTMzMyw5MzM0LDkzMzUsOTMzNiw5MzM3LDkzMzgsOTMzOSw5MzQwLDkzNDEsOTM0Miw5MzQzLDkzNDQsOTM0NSw5MzQ2LDkzNDcsOTM0OCw5MzQ5LDkzNTAsOTM1MSw5''@;'; put 'put ''MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDgzNjQsNTkyNDUsMTI4MzIsMTI4MzMsMTI4MzQsMTI4MzUsMTI4MzYsMTI4MzcsMTI4MzgsMTI4MzksMTI4NDAsMTI4NDEsNTkyNDYsNTkyNDcsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1''@;'; put 'put ''MCw4NTUxLDg1NTIsODU1Myw4NTU0LDg1NTUsNTkyNDgsNTkyNDksNTg3NTgsNTg3NTksNTg3NjAsNTg3NjEsNTg3NjIsNTg3NjMsNTg3NjQsNTg3NjUsNTg3NjYsNTg3NjcsNTg3NjgsNTg3NjksNTg3NzAsNTg3NzEsNTg3NzIsNTg3NzMsNTg3NzQsNTg3NzUsNTg3NzYsNTg3NzcsNTg3Nzgs''@;'; put 'put ''NTg3NzksNTg3ODAsNTg3ODEsNTg3ODIsNTg3ODMsNTg3ODQsNTg3ODUsNTg3ODYsNTg3ODcsNTg3ODgsNTg3ODksNTg3OTAsNTg3OTEsNTg3OTIsNTg3OTMsNTg3OTQsNTg3OTUsNTg3OTYsNTg3OTcsNTg3OTgsNTg3OTksNTg4MDAsNTg4MDEsNTg4MDIsNTg4MDMsNTg4MDQsNTg4MDUsNTg4''@;'; put 'put ''MDYsNTg4MDcsNTg4MDgsNTg4MDksNTg4MTAsNTg4MTEsNTg4MTIsNTg4MTMsNTg4MTQsNTg4MTUsNTg4MTYsNTg4MTcsNTg4MTgsNTg4MTksNTg4MjAsNTg4MjEsNTg4MjIsNTg4MjMsNTg4MjQsNTg4MjUsNTg4MjYsNTg4MjcsNTg4MjgsNTg4MjksNTg4MzAsNTg4MzEsNTg4MzIsNTg4MzMs''@;'; put 'put ''NTg4MzQsNTg4MzUsNTg4MzYsNTg4MzcsNTg4MzgsNTg4MzksNTg4NDAsNTg4NDEsNTg4NDIsNTg4NDMsNTg4NDQsNTg4NDUsNTg4NDYsNTg4NDcsNTg4NDgsNTg4NDksNTg4NTAsNTg4NTEsNTg4NTIsMTIyODgsNjUyODEsNjUyODIsNjUyODMsNjU1MDksNjUyODUsNjUyODYsNjUyODcsNjUy''@;'; put 'put ''ODgsNjUyODksNjUyOTAsNjUyOTEsNjUyOTIsNjUyOTMsNjUyOTQsNjUyOTUsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTksNjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsNjUzMDYsNjUzMDcsNjUzMDgsNjUzMDksNjUzMTAsNjUzMTEsNjUzMTIsNjUzMTMsNjUzMTQsNjUzMTUs''@;'; put 'put ''NjUzMTYsNjUzMTcsNjUzMTgsNjUzMTksNjUzMjAsNjUzMjEsNjUzMjIsNjUzMjMsNjUzMjQsNjUzMjUsNjUzMjYsNjUzMjcsNjUzMjgsNjUzMjksNjUzMzAsNjUzMzEsNjUzMzIsNjUzMzMsNjUzMzQsNjUzMzUsNjUzMzYsNjUzMzcsNjUzMzgsNjUzMzksNjUzNDAsNjUzNDEsNjUzNDIsNjUz''@;'; put 'put ''NDMsNjUzNDQsNjUzNDUsNjUzNDYsNjUzNDcsNjUzNDgsNjUzNDksNjUzNTAsNjUzNTEsNjUzNTIsNjUzNTMsNjUzNTQsNjUzNTUsNjUzNTYsNjUzNTcsNjUzNTgsNjUzNTksNjUzNjAsNjUzNjEsNjUzNjIsNjUzNjMsNjUzNjQsNjUzNjUsNjUzNjYsNjUzNjcsNjUzNjgsNjUzNjksNjUzNzAs''@;'; put 'put ''NjUzNzEsNjUzNzIsNjUzNzMsNjU1MDcsNTg4NTQsNTg4NTUsNTg4NTYsNTg4NTcsNTg4NTgsNTg4NTksNTg4NjAsNTg4NjEsNTg4NjIsNTg4NjMsNTg4NjQsNTg4NjUsNTg4NjYsNTg4NjcsNTg4NjgsNTg4NjksNTg4NzAsNTg4NzEsNTg4NzIsNTg4NzMsNTg4NzQsNTg4NzUsNTg4NzYsNTg4''@;'; put 'put ''NzcsNTg4NzgsNTg4NzksNTg4ODAsNTg4ODEsNTg4ODIsNTg4ODMsNTg4ODQsNTg4ODUsNTg4ODYsNTg4ODcsNTg4ODgsNTg4ODksNTg4OTAsNTg4OTEsNTg4OTIsNTg4OTMsNTg4OTQsNTg4OTUsNTg4OTYsNTg4OTcsNTg4OTgsNTg4OTksNTg5MDAsNTg5MDEsNTg5MDIsNTg5MDMsNTg5MDQs''@;'; put 'put ''NTg5MDUsNTg5MDYsNTg5MDcsNTg5MDgsNTg5MDksNTg5MTAsNTg5MTEsNTg5MTIsNTg5MTMsNTg5MTQsNTg5MTUsNTg5MTYsNTg5MTcsNTg5MTgsNTg5MTksNTg5MjAsNTg5MjEsNTg5MjIsNTg5MjMsNTg5MjQsNTg5MjUsNTg5MjYsNTg5MjcsNTg5MjgsNTg5MjksNTg5MzAsNTg5MzEsNTg5''@;'; put 'put ''MzIsNTg5MzMsNTg5MzQsNTg5MzUsNTg5MzYsNTg5MzcsNTg5MzgsNTg5MzksNTg5NDAsNTg5NDEsNTg5NDIsNTg5NDMsNTg5NDQsNTg5NDUsNTg5NDYsNTg5NDcsNTg5NDgsNTg5NDksMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIs''@;'; put 'put ''MTIzNjMsMTIzNjQsMTIzNjUsMTIzNjYsMTIzNjcsMTIzNjgsMTIzNjksMTIzNzAsMTIzNzEsMTIzNzIsMTIzNzMsMTIzNzQsMTIzNzUsMTIzNzYsMTIzNzcsMTIzNzgsMTIzNzksMTIzODAsMTIzODEsMTIzODIsMTIzODMsMTIzODQsMTIzODUsMTIzODYsMTIzODcsMTIzODgsMTIzODksMTIz''@;'; put 'put ''OTAsMTIzOTEsMTIzOTIsMTIzOTMsMTIzOTQsMTIzOTUsMTIzOTYsMTIzOTcsMTIzOTgsMTIzOTksMTI0MDAsMTI0MDEsMTI0MDIsMTI0MDMsMTI0MDQsMTI0MDUsMTI0MDYsMTI0MDcsMTI0MDgsMTI0MDksMTI0MTAsMTI0MTEsMTI0MTIsMTI0MTMsMTI0MTQsMTI0MTUsMTI0MTYsMTI0MTcs''@;'; put 'put ''MTI0MTgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MjUsMTI0MjYsMTI0MjcsMTI0MjgsMTI0MjksMTI0MzAsMTI0MzEsMTI0MzIsMTI0MzMsMTI0MzQsMTI0MzUsNTkyNTAsNTkyNTEsNTkyNTIsNTkyNTMsNTkyNTQsNTkyNTUsNTkyNTYsNTkyNTcsNTkyNTgsNTky''@;'; put 'put ''NTksNTkyNjAsNTg5NTAsNTg5NTEsNTg5NTIsNTg5NTMsNTg5NTQsNTg5NTUsNTg5NTYsNTg5NTcsNTg5NTgsNTg5NTksNTg5NjAsNTg5NjEsNTg5NjIsNTg5NjMsNTg5NjQsNTg5NjUsNTg5NjYsNTg5NjcsNTg5NjgsNTg5NjksNTg5NzAsNTg5NzEsNTg5NzIsNTg5NzMsNTg5NzQsNTg5NzUs''@;'; put 'put ''NTg5NzYsNTg5NzcsNTg5NzgsNTg5NzksNTg5ODAsNTg5ODEsNTg5ODIsNTg5ODMsNTg5ODQsNTg5ODUsNTg5ODYsNTg5ODcsNTg5ODgsNTg5ODksNTg5OTAsNTg5OTEsNTg5OTIsNTg5OTMsNTg5OTQsNTg5OTUsNTg5OTYsNTg5OTcsNTg5OTgsNTg5OTksNTllMyw1OTAwMSw1OTAwMiw1OTAw''@;'; put 'put ''Myw1OTAwNCw1OTAwNSw1OTAwNiw1OTAwNyw1OTAwOCw1OTAwOSw1OTAxMCw1OTAxMSw1OTAxMiw1OTAxMyw1OTAxNCw1OTAxNSw1OTAxNiw1OTAxNyw1OTAxOCw1OTAxOSw1OTAyMCw1OTAyMSw1OTAyMiw1OTAyMyw1OTAyNCw1OTAyNSw1OTAyNiw1OTAyNyw1OTAyOCw1OTAyOSw1OTAzMCw1''@;'; put 'put ''OTAzMSw1OTAzMiw1OTAzMyw1OTAzNCw1OTAzNSw1OTAzNiw1OTAzNyw1OTAzOCw1OTAzOSw1OTA0MCw1OTA0MSw1OTA0Miw1OTA0Myw1OTA0NCw1OTA0NSwxMjQ0OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwxMjQ2MCwxMjQ2''@;'; put 'put ''MSwxMjQ2MiwxMjQ2MywxMjQ2NCwxMjQ2NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3NSwxMjQ3NiwxMjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwxMjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4NywxMjQ4OCwx''@;'; put 'put ''MjQ4OSwxMjQ5MCwxMjQ5MSwxMjQ5MiwxMjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwxMjUwMywxMjUwNCwxMjUwNSwxMjUwNiwxMjUwNywxMjUwOCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwxMjUxNSwxMjUx''@;'; put 'put ''NiwxMjUxNywxMjUxOCwxMjUxOSwxMjUyMCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUzMCwxMjUzMSwxMjUzMiwxMjUzMywxMjUzNCw1OTI2MSw1OTI2Miw1OTI2Myw1OTI2NCw1OTI2NSw1OTI2Niw1OTI2Nyw1OTI2OCw1OTA0Niw1''@;'; put 'put ''OTA0Nyw1OTA0OCw1OTA0OSw1OTA1MCw1OTA1MSw1OTA1Miw1OTA1Myw1OTA1NCw1OTA1NSw1OTA1Niw1OTA1Nyw1OTA1OCw1OTA1OSw1OTA2MCw1OTA2MSw1OTA2Miw1OTA2Myw1OTA2NCw1OTA2NSw1OTA2Niw1OTA2Nyw1OTA2OCw1OTA2OSw1OTA3MCw1OTA3MSw1OTA3Miw1OTA3Myw1OTA3''@;'; put 'put ''NCw1OTA3NSw1OTA3Niw1OTA3Nyw1OTA3OCw1OTA3OSw1OTA4MCw1OTA4MSw1OTA4Miw1OTA4Myw1OTA4NCw1OTA4NSw1OTA4Niw1OTA4Nyw1OTA4OCw1OTA4OSw1OTA5MCw1OTA5MSw1OTA5Miw1OTA5Myw1OTA5NCw1OTA5NSw1OTA5Niw1OTA5Nyw1OTA5OCw1OTA5OSw1OTEwMCw1OTEwMSw1''@;'; put 'put ''OTEwMiw1OTEwMyw1OTEwNCw1OTEwNSw1OTEwNiw1OTEwNyw1OTEwOCw1OTEwOSw1OTExMCw1OTExMSw1OTExMiw1OTExMyw1OTExNCw1OTExNSw1OTExNiw1OTExNyw1OTExOCw1OTExOSw1OTEyMCw1OTEyMSw1OTEyMiw1OTEyMyw1OTEyNCw1OTEyNSw1OTEyNiw1OTEyNyw1OTEyOCw1OTEy''@;'; put 'put ''OSw1OTEzMCw1OTEzMSw1OTEzMiw1OTEzMyw1OTEzNCw1OTEzNSw1OTEzNiw1OTEzNyw1OTEzOCw1OTEzOSw1OTE0MCw1OTE0MSw5MTMsOTE0LDkxNSw5MTYsOTE3LDkxOCw5MTksOTIwLDkyMSw5MjIsOTIzLDkyNCw5MjUsOTI2LDkyNyw5MjgsOTI5LDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2''@;'; put 'put ''LDkzNyw1OTI2OSw1OTI3MCw1OTI3MSw1OTI3Miw1OTI3Myw1OTI3NCw1OTI3NSw1OTI3Niw5NDUsOTQ2LDk0Nyw5NDgsOTQ5LDk1MCw5NTEsOTUyLDk1Myw5NTQsOTU1LDk1Niw5NTcsOTU4LDk1OSw5NjAsOTYxLDk2Myw5NjQsOTY1LDk2Niw5NjcsOTY4LDk2OSw1OTI3Nyw1OTI3OCw1OTI3''@;'; put 'put ''OSw1OTI4MCw1OTI4MSw1OTI4Miw1OTI4Myw2NTA3Nyw2NTA3OCw2NTA4MSw2NTA4Miw2NTA4Nyw2NTA4OCw2NTA4NSw2NTA4Niw2NTA4OSw2NTA5MCw2NTA5MSw2NTA5Miw1OTI4NCw1OTI4NSw2NTA4Myw2NTA4NCw2NTA3OSw2NTA4MCw2NTA3Myw1OTI4Niw2NTA3NSw2NTA3Niw1OTI4Nyw1''@;'; put 'put ''OTI4OCw1OTI4OSw1OTI5MCw1OTI5MSw1OTI5Miw1OTI5Myw1OTI5NCw1OTI5NSw1OTE0Miw1OTE0Myw1OTE0NCw1OTE0NSw1OTE0Niw1OTE0Nyw1OTE0OCw1OTE0OSw1OTE1MCw1OTE1MSw1OTE1Miw1OTE1Myw1OTE1NCw1OTE1NSw1OTE1Niw1OTE1Nyw1OTE1OCw1OTE1OSw1OTE2MCw1OTE2''@;'; put 'put ''MSw1OTE2Miw1OTE2Myw1OTE2NCw1OTE2NSw1OTE2Niw1OTE2Nyw1OTE2OCw1OTE2OSw1OTE3MCw1OTE3MSw1OTE3Miw1OTE3Myw1OTE3NCw1OTE3NSw1OTE3Niw1OTE3Nyw1OTE3OCw1OTE3OSw1OTE4MCw1OTE4MSw1OTE4Miw1OTE4Myw1OTE4NCw1OTE4NSw1OTE4Niw1OTE4Nyw1OTE4OCw1''@;'; put 'put ''OTE4OSw1OTE5MCw1OTE5MSw1OTE5Miw1OTE5Myw1OTE5NCw1OTE5NSw1OTE5Niw1OTE5Nyw1OTE5OCw1OTE5OSw1OTIwMCw1OTIwMSw1OTIwMiw1OTIwMyw1OTIwNCw1OTIwNSw1OTIwNiw1OTIwNyw1OTIwOCw1OTIwOSw1OTIxMCw1OTIxMSw1OTIxMiw1OTIxMyw1OTIxNCw1OTIxNSw1OTIx''@;'; put 'put ''Niw1OTIxNyw1OTIxOCw1OTIxOSw1OTIyMCw1OTIyMSw1OTIyMiw1OTIyMyw1OTIyNCw1OTIyNSw1OTIyNiw1OTIyNyw1OTIyOCw1OTIyOSw1OTIzMCw1OTIzMSw1OTIzMiw1OTIzMyw1OTIzNCw1OTIzNSw1OTIzNiw1OTIzNywxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDI1LDEw''@;'; put 'put ''NDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSw1OTI5Niw1OTI5Nyw1OTI5OCw1OTI5OSw1OTMwMCw1OTMwMSw1''@;'; put 'put ''OTMwMiw1OTMwMyw1OTMwNCw1OTMwNSw1OTMwNiw1OTMwNyw1OTMwOCw1OTMwOSw1OTMxMCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEw''@;'; put 'put ''OTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyw1OTMxMSw1OTMxMiw1OTMxMyw1OTMxNCw1OTMxNSw1OTMxNiw1OTMxNyw1OTMxOCw1OTMxOSw1OTMyMCw1OTMyMSw1OTMyMiw1OTMyMyw3MTQsNzE1LDcyOSw4MjExLDgyMTMsODIyOSw4MjQ1LDg0''@;'; put 'put ''NTMsODQ1Nyw4NTk4LDg1OTksODYwMCw4NjAxLDg3MjUsODczNSw4NzM5LDg3ODYsODgwNiw4ODA3LDg4OTUsOTU1Miw5NTUzLDk1NTQsOTU1NSw5NTU2LDk1NTcsOTU1OCw5NTU5LDk1NjAsOTU2MSw5NTYyLDk1NjMsOTU2NCw5NTY1LDk1NjYsOTU2Nyw5NTY4LDk1NjksOTU3MCw5NTcxLDk1''@;'; put 'put ''NzIsOTU3Myw5NTc0LDk1NzUsOTU3Niw5NTc3LDk1NzgsOTU3OSw5NTgwLDk1ODEsOTU4Miw5NTgzLDk1ODQsOTU4NSw5NTg2LDk1ODcsOTYwMSw5NjAyLDk2MDMsOTYwNCw5NjA1LDk2MDYsOTYwNyw5NjA4LDk2MDksOTYxMCw5NjExLDk2MTIsOTYxMyw5NjE0LDk2MTUsOTYxOSw5NjIwLDk2''@;'; put 'put ''MjEsOTY2MCw5NjYxLDk2OTgsOTY5OSw5NzAwLDk3MDEsOTczNyw4ODUzLDEyMzA2LDEyMzE3LDEyMzE4LDU5MzI0LDU5MzI1LDU5MzI2LDU5MzI3LDU5MzI4LDU5MzI5LDU5MzMwLDU5MzMxLDU5MzMyLDU5MzMzLDU5MzM0LDI1NywyMjUsNDYyLDIyNCwyNzUsMjMzLDI4MywyMzIsMjk5LDIz''@;'; put 'put ''Nyw0NjQsMjM2LDMzMywyNDMsNDY2LDI0MiwzNjMsMjUwLDQ2OCwyNDksNDcwLDQ3Miw0NzQsNDc2LDI1MiwyMzQsNTkzLDc3NDMsMzI0LDMyOCw1MDUsNjA5LDU5MzM3LDU5MzM4LDU5MzM5LDU5MzQwLDEyNTQ5LDEyNTUwLDEyNTUxLDEyNTUyLDEyNTUzLDEyNTU0LDEyNTU1LDEyNTU2LDEy''@;'; put 'put ''NTU3LDEyNTU4LDEyNTU5LDEyNTYwLDEyNTYxLDEyNTYyLDEyNTYzLDEyNTY0LDEyNTY1LDEyNTY2LDEyNTY3LDEyNTY4LDEyNTY5LDEyNTcwLDEyNTcxLDEyNTcyLDEyNTczLDEyNTc0LDEyNTc1LDEyNTc2LDEyNTc3LDEyNTc4LDEyNTc5LDEyNTgwLDEyNTgxLDEyNTgyLDEyNTgzLDEyNTg0''@;'; put 'put ''LDEyNTg1LDU5MzQxLDU5MzQyLDU5MzQzLDU5MzQ0LDU5MzQ1LDU5MzQ2LDU5MzQ3LDU5MzQ4LDU5MzQ5LDU5MzUwLDU5MzUxLDU5MzUyLDU5MzUzLDU5MzU0LDU5MzU1LDU5MzU2LDU5MzU3LDU5MzU4LDU5MzU5LDU5MzYwLDU5MzYxLDEyMzIxLDEyMzIyLDEyMzIzLDEyMzI0LDEyMzI1LDEy''@;'; put 'put ''MzI2LDEyMzI3LDEyMzI4LDEyMzI5LDEyOTYzLDEzMTk4LDEzMTk5LDEzMjEyLDEzMjEzLDEzMjE0LDEzMjE3LDEzMjUyLDEzMjYyLDEzMjY1LDEzMjY2LDEzMjY5LDY1MDcyLDY1NTA2LDY1NTA4LDU5MzYyLDg0ODEsMTI4NDksNTkzNjMsODIwOCw1OTM2NCw1OTM2NSw1OTM2NiwxMjU0MCwx''@;'; put 'put ''MjQ0MywxMjQ0NCwxMjU0MSwxMjU0MiwxMjI5NCwxMjQ0NSwxMjQ0Niw2NTA5Nyw2NTA5OCw2NTA5OSw2NTEwMCw2NTEwMSw2NTEwMiw2NTEwMyw2NTEwNCw2NTEwNSw2NTEwNiw2NTEwOCw2NTEwOSw2NTExMCw2NTExMSw2NTExMyw2NTExNCw2NTExNSw2NTExNiw2NTExNyw2NTExOCw2NTEx''@;'; put 'put ''OSw2NTEyMCw2NTEyMSw2NTEyMiw2NTEyMyw2NTEyNCw2NTEyNSw2NTEyNiw2NTEyOCw2NTEyOSw2NTEzMCw2NTEzMSwxMjM1MCwxMjI3MiwxMjI3MywxMjI3NCwxMjI3NSwxMjI3NiwxMjI3NywxMjI3OCwxMjI3OSwxMjI4MCwxMjI4MSwxMjI4MiwxMjI4MywxMjI5NSw1OTM4MCw1OTM4MSw1''@;'; put 'put ''OTM4Miw1OTM4Myw1OTM4NCw1OTM4NSw1OTM4Niw1OTM4Nyw1OTM4OCw1OTM4OSw1OTM5MCw1OTM5MSw1OTM5Miw5NDcyLDk0NzMsOTQ3NCw5NDc1LDk0NzYsOTQ3Nyw5NDc4LDk0NzksOTQ4MCw5NDgxLDk0ODIsOTQ4Myw5NDg0LDk0ODUsOTQ4Niw5NDg3LDk0ODgsOTQ4OSw5NDkwLDk0OTEs''@;'; put 'put ''OTQ5Miw5NDkzLDk0OTQsOTQ5NSw5NDk2LDk0OTcsOTQ5OCw5NDk5LDk1MDAsOTUwMSw5NTAyLDk1MDMsOTUwNCw5NTA1LDk1MDYsOTUwNyw5NTA4LDk1MDksOTUxMCw5NTExLDk1MTIsOTUxMyw5NTE0LDk1MTUsOTUxNiw5NTE3LDk1MTgsOTUxOSw5NTIwLDk1MjEsOTUyMiw5NTIzLDk1MjQs''@;'; put 'put ''OTUyNSw5NTI2LDk1MjcsOTUyOCw5NTI5LDk1MzAsOTUzMSw5NTMyLDk1MzMsOTUzNCw5NTM1LDk1MzYsOTUzNyw5NTM4LDk1MzksOTU0MCw5NTQxLDk1NDIsOTU0Myw5NTQ0LDk1NDUsOTU0Niw5NTQ3LDU5MzkzLDU5Mzk0LDU5Mzk1LDU5Mzk2LDU5Mzk3LDU5Mzk4LDU5Mzk5LDU5NDAwLDU5''@;'; put 'put ''NDAxLDU5NDAyLDU5NDAzLDU5NDA0LDU5NDA1LDU5NDA2LDU5NDA3LDI5NDA0LDI5NDA1LDI5NDA3LDI5NDEwLDI5NDExLDI5NDEyLDI5NDEzLDI5NDE0LDI5NDE1LDI5NDE4LDI5NDE5LDI5NDI5LDI5NDMwLDI5NDMzLDI5NDM3LDI5NDM4LDI5NDM5LDI5NDQwLDI5NDQyLDI5NDQ0LDI5NDQ1''@;'; put 'put ''LDI5NDQ2LDI5NDQ3LDI5NDQ4LDI5NDQ5LDI5NDUxLDI5NDUyLDI5NDUzLDI5NDU1LDI5NDU2LDI5NDU3LDI5NDU4LDI5NDYwLDI5NDY0LDI5NDY1LDI5NDY2LDI5NDcxLDI5NDcyLDI5NDc1LDI5NDc2LDI5NDc4LDI5NDc5LDI5NDgwLDI5NDg1LDI5NDg3LDI5NDg4LDI5NDkwLDI5NDkxLDI5''@;'; put 'put ''NDkzLDI5NDk0LDI5NDk4LDI5NDk5LDI5NTAwLDI5NTAxLDI5NTA0LDI5NTA1LDI5NTA2LDI5NTA3LDI5NTA4LDI5NTA5LDI5NTEwLDI5NTExLDI5NTEyLDI5NTEzLDI5NTE0LDI5NTE1LDI5NTE2LDI5NTE4LDI5NTE5LDI5NTIxLDI5NTIzLDI5NTI0LDI5NTI1LDI5NTI2LDI5NTI4LDI5NTI5''@;'; put 'put ''LDI5NTMwLDI5NTMxLDI5NTMyLDI5NTMzLDI5NTM0LDI5NTM1LDI5NTM3LDI5NTM4LDI5NTM5LDI5NTQwLDI5NTQxLDI5NTQyLDI5NTQzLDI5NTQ0LDI5NTQ1LDI5NTQ2LDI5NTQ3LDI5NTUwLDI5NTUyLDI5NTUzLDU3MzQ0LDU3MzQ1LDU3MzQ2LDU3MzQ3LDU3MzQ4LDU3MzQ5LDU3MzUwLDU3''@;'; put 'put ''MzUxLDU3MzUyLDU3MzUzLDU3MzU0LDU3MzU1LDU3MzU2LDU3MzU3LDU3MzU4LDU3MzU5LDU3MzYwLDU3MzYxLDU3MzYyLDU3MzYzLDU3MzY0LDU3MzY1LDU3MzY2LDU3MzY3LDU3MzY4LDU3MzY5LDU3MzcwLDU3MzcxLDU3MzcyLDU3MzczLDU3Mzc0LDU3Mzc1LDU3Mzc2LDU3Mzc3LDU3Mzc4''@;'; put 'put ''LDU3Mzc5LDU3MzgwLDU3MzgxLDU3MzgyLDU3MzgzLDU3Mzg0LDU3Mzg1LDU3Mzg2LDU3Mzg3LDU3Mzg4LDU3Mzg5LDU3MzkwLDU3MzkxLDU3MzkyLDU3MzkzLDU3Mzk0LDU3Mzk1LDU3Mzk2LDU3Mzk3LDU3Mzk4LDU3Mzk5LDU3NDAwLDU3NDAxLDU3NDAyLDU3NDAzLDU3NDA0LDU3NDA1LDU3''@;'; put 'put ''NDA2LDU3NDA3LDU3NDA4LDU3NDA5LDU3NDEwLDU3NDExLDU3NDEyLDU3NDEzLDU3NDE0LDU3NDE1LDU3NDE2LDU3NDE3LDU3NDE4LDU3NDE5LDU3NDIwLDU3NDIxLDU3NDIyLDU3NDIzLDU3NDI0LDU3NDI1LDU3NDI2LDU3NDI3LDU3NDI4LDU3NDI5LDU3NDMwLDU3NDMxLDU3NDMyLDU3NDMz''@;'; put 'put ''LDU3NDM0LDU3NDM1LDU3NDM2LDU3NDM3LDI5NTU0LDI5NTU1LDI5NTU2LDI5NTU3LDI5NTU4LDI5NTU5LDI5NTYwLDI5NTYxLDI5NTYyLDI5NTYzLDI5NTY0LDI5NTY1LDI5NTY3LDI5NTY4LDI5NTY5LDI5NTcwLDI5NTcxLDI5NTczLDI5NTc0LDI5NTc2LDI5NTc4LDI5NTgwLDI5NTgxLDI5''@;'; put 'put ''NTgzLDI5NTg0LDI5NTg2LDI5NTg3LDI5NTg4LDI5NTg5LDI5NTkxLDI5NTkyLDI5NTkzLDI5NTk0LDI5NTk2LDI5NTk3LDI5NTk4LDI5NjAwLDI5NjAxLDI5NjAzLDI5NjA0LDI5NjA1LDI5NjA2LDI5NjA3LDI5NjA4LDI5NjEwLDI5NjEyLDI5NjEzLDI5NjE3LDI5NjIwLDI5NjIxLDI5NjIy''@;'; put 'put ''LDI5NjI0LDI5NjI1LDI5NjI4LDI5NjI5LDI5NjMwLDI5NjMxLDI5NjMzLDI5NjM1LDI5NjM2LDI5NjM3LDI5NjM4LDI5NjM5LDI5NjQzLDI5NjQ0LDI5NjQ2LDI5NjUwLDI5NjUxLDI5NjUyLDI5NjUzLDI5NjU0LDI5NjU1LDI5NjU2LDI5NjU4LDI5NjU5LDI5NjYwLDI5NjYxLDI5NjYzLDI5''@;'; put 'put ''NjY1LDI5NjY2LDI5NjY3LDI5NjY4LDI5NjcwLDI5NjcyLDI5Njc0LDI5Njc1LDI5Njc2LDI5Njc4LDI5Njc5LDI5NjgwLDI5NjgxLDI5NjgzLDI5Njg0LDI5Njg1LDI5Njg2LDI5Njg3LDU3NDM4LDU3NDM5LDU3NDQwLDU3NDQxLDU3NDQyLDU3NDQzLDU3NDQ0LDU3NDQ1LDU3NDQ2LDU3NDQ3''@;'; put 'put ''LDU3NDQ4LDU3NDQ5LDU3NDUwLDU3NDUxLDU3NDUyLDU3NDUzLDU3NDU0LDU3NDU1LDU3NDU2LDU3NDU3LDU3NDU4LDU3NDU5LDU3NDYwLDU3NDYxLDU3NDYyLDU3NDYzLDU3NDY0LDU3NDY1LDU3NDY2LDU3NDY3LDU3NDY4LDU3NDY5LDU3NDcwLDU3NDcxLDU3NDcyLDU3NDczLDU3NDc0LDU3''@;'; put 'put ''NDc1LDU3NDc2LDU3NDc3LDU3NDc4LDU3NDc5LDU3NDgwLDU3NDgxLDU3NDgyLDU3NDgzLDU3NDg0LDU3NDg1LDU3NDg2LDU3NDg3LDU3NDg4LDU3NDg5LDU3NDkwLDU3NDkxLDU3NDkyLDU3NDkzLDU3NDk0LDU3NDk1LDU3NDk2LDU3NDk3LDU3NDk4LDU3NDk5LDU3NTAwLDU3NTAxLDU3NTAy''@;'; put 'put ''LDU3NTAzLDU3NTA0LDU3NTA1LDU3NTA2LDU3NTA3LDU3NTA4LDU3NTA5LDU3NTEwLDU3NTExLDU3NTEyLDU3NTEzLDU3NTE0LDU3NTE1LDU3NTE2LDU3NTE3LDU3NTE4LDU3NTE5LDU3NTIwLDU3NTIxLDU3NTIyLDU3NTIzLDU3NTI0LDU3NTI1LDU3NTI2LDU3NTI3LDU3NTI4LDU3NTI5LDU3''@;'; put 'put ''NTMwLDU3NTMxLDI5Njg4LDI5Njg5LDI5NjkwLDI5NjkxLDI5NjkyLDI5NjkzLDI5Njk0LDI5Njk1LDI5Njk2LDI5Njk3LDI5Njk4LDI5NzAwLDI5NzAzLDI5NzA0LDI5NzA3LDI5NzA4LDI5NzA5LDI5NzEwLDI5NzEzLDI5NzE0LDI5NzE1LDI5NzE2LDI5NzE3LDI5NzE4LDI5NzE5LDI5NzIw''@;'; put 'put ''LDI5NzIxLDI5NzI0LDI5NzI1LDI5NzI2LDI5NzI3LDI5NzI4LDI5NzI5LDI5NzMxLDI5NzMyLDI5NzM1LDI5NzM3LDI5NzM5LDI5NzQxLDI5NzQzLDI5NzQ1LDI5NzQ2LDI5NzUxLDI5NzUyLDI5NzUzLDI5NzU0LDI5NzU1LDI5NzU3LDI5NzU4LDI5NzU5LDI5NzYwLDI5NzYyLDI5NzYzLDI5''@;'; put 'put ''NzY0LDI5NzY1LDI5NzY2LDI5NzY3LDI5NzY4LDI5NzY5LDI5NzcwLDI5NzcxLDI5NzcyLDI5NzczLDI5Nzc0LDI5Nzc1LDI5Nzc2LDI5Nzc3LDI5Nzc4LDI5Nzc5LDI5NzgwLDI5NzgyLDI5Nzg0LDI5Nzg5LDI5NzkyLDI5NzkzLDI5Nzk0LDI5Nzk1LDI5Nzk2LDI5Nzk3LDI5Nzk4LDI5Nzk5''@;'; put 'put ''LDI5ODAwLDI5ODAxLDI5ODAyLDI5ODAzLDI5ODA0LDI5ODA2LDI5ODA3LDI5ODA5LDI5ODEwLDI5ODExLDI5ODEyLDI5ODEzLDI5ODE2LDI5ODE3LDI5ODE4LDU3NTMyLDU3NTMzLDU3NTM0LDU3NTM1LDU3NTM2LDU3NTM3LDU3NTM4LDU3NTM5LDU3NTQwLDU3NTQxLDU3NTQyLDU3NTQzLDU3''@;'; put 'put ''NTQ0LDU3NTQ1LDU3NTQ2LDU3NTQ3LDU3NTQ4LDU3NTQ5LDU3NTUwLDU3NTUxLDU3NTUyLDU3NTUzLDU3NTU0LDU3NTU1LDU3NTU2LDU3NTU3LDU3NTU4LDU3NTU5LDU3NTYwLDU3NTYxLDU3NTYyLDU3NTYzLDU3NTY0LDU3NTY1LDU3NTY2LDU3NTY3LDU3NTY4LDU3NTY5LDU3NTcwLDU3NTcx''@;'; put 'put ''LDU3NTcyLDU3NTczLDU3NTc0LDU3NTc1LDU3NTc2LDU3NTc3LDU3NTc4LDU3NTc5LDU3NTgwLDU3NTgxLDU3NTgyLDU3NTgzLDU3NTg0LDU3NTg1LDU3NTg2LDU3NTg3LDU3NTg4LDU3NTg5LDU3NTkwLDU3NTkxLDU3NTkyLDU3NTkzLDU3NTk0LDU3NTk1LDU3NTk2LDU3NTk3LDU3NTk4LDU3''@;'; put 'put ''NTk5LDU3NjAwLDU3NjAxLDU3NjAyLDU3NjAzLDU3NjA0LDU3NjA1LDU3NjA2LDU3NjA3LDU3NjA4LDU3NjA5LDU3NjEwLDU3NjExLDU3NjEyLDU3NjEzLDU3NjE0LDU3NjE1LDU3NjE2LDU3NjE3LDU3NjE4LDU3NjE5LDU3NjIwLDU3NjIxLDU3NjIyLDU3NjIzLDU3NjI0LDU3NjI1LDI5ODE5''@;'; put 'put ''LDI5ODIwLDI5ODIxLDI5ODIzLDI5ODI2LDI5ODI4LDI5ODI5LDI5ODMwLDI5ODMyLDI5ODMzLDI5ODM0LDI5ODM2LDI5ODM3LDI5ODM5LDI5ODQxLDI5ODQyLDI5ODQzLDI5ODQ0LDI5ODQ1LDI5ODQ2LDI5ODQ3LDI5ODQ4LDI5ODQ5LDI5ODUwLDI5ODUxLDI5ODUzLDI5ODU1LDI5ODU2LDI5''@;'; put 'put ''ODU3LDI5ODU4LDI5ODU5LDI5ODYwLDI5ODYxLDI5ODYyLDI5ODY2LDI5ODY3LDI5ODY4LDI5ODY5LDI5ODcwLDI5ODcxLDI5ODcyLDI5ODczLDI5ODc0LDI5ODc1LDI5ODc2LDI5ODc3LDI5ODc4LDI5ODc5LDI5ODgwLDI5ODgxLDI5ODgzLDI5ODg0LDI5ODg1LDI5ODg2LDI5ODg3LDI5ODg4''@;'; put 'put ''LDI5ODg5LDI5ODkwLDI5ODkxLDI5ODkyLDI5ODkzLDI5ODk0LDI5ODk1LDI5ODk2LDI5ODk3LDI5ODk4LDI5ODk5LDI5OTAwLDI5OTAxLDI5OTAyLDI5OTAzLDI5OTA0LDI5OTA1LDI5OTA3LDI5OTA4LDI5OTA5LDI5OTEwLDI5OTExLDI5OTEyLDI5OTEzLDI5OTE0LDI5OTE1LDI5OTE3LDI5''@;'; put 'put ''OTE5LDI5OTIxLDI5OTI1LDI5OTI3LDI5OTI4LDI5OTI5LDI5OTMwLDI5OTMxLDI5OTMyLDI5OTMzLDI5OTM2LDI5OTM3LDI5OTM4LDU3NjI2LDU3NjI3LDU3NjI4LDU3NjI5LDU3NjMwLDU3NjMxLDU3NjMyLDU3NjMzLDU3NjM0LDU3NjM1LDU3NjM2LDU3NjM3LDU3NjM4LDU3NjM5LDU3NjQw''@;'; put 'put ''LDU3NjQxLDU3NjQyLDU3NjQzLDU3NjQ0LDU3NjQ1LDU3NjQ2LDU3NjQ3LDU3NjQ4LDU3NjQ5LDU3NjUwLDU3NjUxLDU3NjUyLDU3NjUzLDU3NjU0LDU3NjU1LDU3NjU2LDU3NjU3LDU3NjU4LDU3NjU5LDU3NjYwLDU3NjYxLDU3NjYyLDU3NjYzLDU3NjY0LDU3NjY1LDU3NjY2LDU3NjY3LDU3''@;'; put 'put ''NjY4LDU3NjY5LDU3NjcwLDU3NjcxLDU3NjcyLDU3NjczLDU3Njc0LDU3Njc1LDU3Njc2LDU3Njc3LDU3Njc4LDU3Njc5LDU3NjgwLDU3NjgxLDU3NjgyLDU3NjgzLDU3Njg0LDU3Njg1LDU3Njg2LDU3Njg3LDU3Njg4LDU3Njg5LDU3NjkwLDU3NjkxLDU3NjkyLDU3NjkzLDU3Njk0LDU3Njk1''@;'; put 'put ''LDU3Njk2LDU3Njk3LDU3Njk4LDU3Njk5LDU3NzAwLDU3NzAxLDU3NzAyLDU3NzAzLDU3NzA0LDU3NzA1LDU3NzA2LDU3NzA3LDU3NzA4LDU3NzA5LDU3NzEwLDU3NzExLDU3NzEyLDU3NzEzLDU3NzE0LDU3NzE1LDU3NzE2LDU3NzE3LDU3NzE4LDU3NzE5LDI5OTM5LDI5OTQxLDI5OTQ0LDI5''@;'; put 'put ''OTQ1LDI5OTQ2LDI5OTQ3LDI5OTQ4LDI5OTQ5LDI5OTUwLDI5OTUyLDI5OTUzLDI5OTU0LDI5OTU1LDI5OTU3LDI5OTU4LDI5OTU5LDI5OTYwLDI5OTYxLDI5OTYyLDI5OTYzLDI5OTY0LDI5OTY2LDI5OTY4LDI5OTcwLDI5OTcyLDI5OTczLDI5OTc0LDI5OTc1LDI5OTc5LDI5OTgxLDI5OTgy''@;'; put 'put ''LDI5OTg0LDI5OTg1LDI5OTg2LDI5OTg3LDI5OTg4LDI5OTkwLDI5OTkxLDI5OTk0LDI5OTk4LDMwMDA0LDMwMDA2LDMwMDA5LDMwMDEyLDMwMDEzLDMwMDE1LDMwMDE3LDMwMDE4LDMwMDE5LDMwMDIwLDMwMDIyLDMwMDIzLDMwMDI1LDMwMDI2LDMwMDI5LDMwMDMyLDMwMDMzLDMwMDM0LDMw''@;'; put 'put ''MDM1LDMwMDM3LDMwMDM4LDMwMDM5LDMwMDQwLDMwMDQ1LDMwMDQ2LDMwMDQ3LDMwMDQ4LDMwMDQ5LDMwMDUwLDMwMDUxLDMwMDUyLDMwMDU1LDMwMDU2LDMwMDU3LDMwMDU5LDMwMDYwLDMwMDYxLDMwMDYyLDMwMDYzLDMwMDY0LDMwMDY1LDMwMDY3LDMwMDY5LDMwMDcwLDMwMDcxLDMwMDc0''@;'; put 'put ''LDMwMDc1LDMwMDc2LDMwMDc3LDMwMDc4LDMwMDgwLDMwMDgxLDMwMDgyLDMwMDg0LDMwMDg1LDMwMDg3LDU3NzIwLDU3NzIxLDU3NzIyLDU3NzIzLDU3NzI0LDU3NzI1LDU3NzI2LDU3NzI3LDU3NzI4LDU3NzI5LDU3NzMwLDU3NzMxLDU3NzMyLDU3NzMzLDU3NzM0LDU3NzM1LDU3NzM2LDU3''@;'; put 'put ''NzM3LDU3NzM4LDU3NzM5LDU3NzQwLDU3NzQxLDU3NzQyLDU3NzQzLDU3NzQ0LDU3NzQ1LDU3NzQ2LDU3NzQ3LDU3NzQ4LDU3NzQ5LDU3NzUwLDU3NzUxLDU3NzUyLDU3NzUzLDU3NzU0LDU3NzU1LDU3NzU2LDU3NzU3LDU3NzU4LDU3NzU5LDU3NzYwLDU3NzYxLDU3NzYyLDU3NzYzLDU3NzY0''@;'; put 'put ''LDU3NzY1LDU3NzY2LDU3NzY3LDU3NzY4LDU3NzY5LDU3NzcwLDU3NzcxLDU3NzcyLDU3NzczLDU3Nzc0LDU3Nzc1LDU3Nzc2LDU3Nzc3LDU3Nzc4LDU3Nzc5LDU3NzgwLDU3NzgxLDU3NzgyLDU3NzgzLDU3Nzg0LDU3Nzg1LDU3Nzg2LDU3Nzg3LDU3Nzg4LDU3Nzg5LDU3NzkwLDU3NzkxLDU3''@;'; put 'put ''NzkyLDU3NzkzLDU3Nzk0LDU3Nzk1LDU3Nzk2LDU3Nzk3LDU3Nzk4LDU3Nzk5LDU3ODAwLDU3ODAxLDU3ODAyLDU3ODAzLDU3ODA0LDU3ODA1LDU3ODA2LDU3ODA3LDU3ODA4LDU3ODA5LDU3ODEwLDU3ODExLDU3ODEyLDU3ODEzLDMwMDg4LDMwMDg5LDMwMDkwLDMwMDkyLDMwMDkzLDMwMDk0''@;'; put 'put ''LDMwMDk2LDMwMDk5LDMwMTAxLDMwMTA0LDMwMTA3LDMwMTA4LDMwMTEwLDMwMTE0LDMwMTE4LDMwMTE5LDMwMTIwLDMwMTIxLDMwMTIyLDMwMTI1LDMwMTM0LDMwMTM1LDMwMTM4LDMwMTM5LDMwMTQzLDMwMTQ0LDMwMTQ1LDMwMTUwLDMwMTU1LDMwMTU2LDMwMTU4LDMwMTU5LDMwMTYwLDMw''@;'; put 'put ''MTYxLDMwMTYzLDMwMTY3LDMwMTY5LDMwMTcwLDMwMTcyLDMwMTczLDMwMTc1LDMwMTc2LDMwMTc3LDMwMTgxLDMwMTg1LDMwMTg4LDMwMTg5LDMwMTkwLDMwMTkxLDMwMTk0LDMwMTk1LDMwMTk3LDMwMTk4LDMwMTk5LDMwMjAwLDMwMjAyLDMwMjAzLDMwMjA1LDMwMjA2LDMwMjEwLDMwMjEy''@;'; put 'put ''LDMwMjE0LDMwMjE1LDMwMjE2LDMwMjE3LDMwMjE5LDMwMjIxLDMwMjIyLDMwMjIzLDMwMjI1LDMwMjI2LDMwMjI3LDMwMjI4LDMwMjMwLDMwMjM0LDMwMjM2LDMwMjM3LDMwMjM4LDMwMjQxLDMwMjQzLDMwMjQ3LDMwMjQ4LDMwMjUyLDMwMjU0LDMwMjU1LDMwMjU3LDMwMjU4LDMwMjYyLDMw''@;'; put 'put ''MjYzLDMwMjY1LDMwMjY2LDMwMjY3LDMwMjY5LDMwMjczLDMwMjc0LDMwMjc2LDU3ODE0LDU3ODE1LDU3ODE2LDU3ODE3LDU3ODE4LDU3ODE5LDU3ODIwLDU3ODIxLDU3ODIyLDU3ODIzLDU3ODI0LDU3ODI1LDU3ODI2LDU3ODI3LDU3ODI4LDU3ODI5LDU3ODMwLDU3ODMxLDU3ODMyLDU3ODMz''@;'; put 'put ''LDU3ODM0LDU3ODM1LDU3ODM2LDU3ODM3LDU3ODM4LDU3ODM5LDU3ODQwLDU3ODQxLDU3ODQyLDU3ODQzLDU3ODQ0LDU3ODQ1LDU3ODQ2LDU3ODQ3LDU3ODQ4LDU3ODQ5LDU3ODUwLDU3ODUxLDU3ODUyLDU3ODUzLDU3ODU0LDU3ODU1LDU3ODU2LDU3ODU3LDU3ODU4LDU3ODU5LDU3ODYwLDU3''@;'; put 'put ''ODYxLDU3ODYyLDU3ODYzLDU3ODY0LDU3ODY1LDU3ODY2LDU3ODY3LDU3ODY4LDU3ODY5LDU3ODcwLDU3ODcxLDU3ODcyLDU3ODczLDU3ODc0LDU3ODc1LDU3ODc2LDU3ODc3LDU3ODc4LDU3ODc5LDU3ODgwLDU3ODgxLDU3ODgyLDU3ODgzLDU3ODg0LDU3ODg1LDU3ODg2LDU3ODg3LDU3ODg4''@;'; put 'put ''LDU3ODg5LDU3ODkwLDU3ODkxLDU3ODkyLDU3ODkzLDU3ODk0LDU3ODk1LDU3ODk2LDU3ODk3LDU3ODk4LDU3ODk5LDU3OTAwLDU3OTAxLDU3OTAyLDU3OTAzLDU3OTA0LDU3OTA1LDU3OTA2LDU3OTA3LDMwMjc3LDMwMjc4LDMwMjc5LDMwMjgwLDMwMjgxLDMwMjgyLDMwMjgzLDMwMjg2LDMw''@;'; put 'put ''Mjg3LDMwMjg4LDMwMjg5LDMwMjkwLDMwMjkxLDMwMjkzLDMwMjk1LDMwMjk2LDMwMjk3LDMwMjk4LDMwMjk5LDMwMzAxLDMwMzAzLDMwMzA0LDMwMzA1LDMwMzA2LDMwMzA4LDMwMzA5LDMwMzEwLDMwMzExLDMwMzEyLDMwMzEzLDMwMzE0LDMwMzE2LDMwMzE3LDMwMzE4LDMwMzIwLDMwMzIx''@;'; put 'put ''LDMwMzIyLDMwMzIzLDMwMzI0LDMwMzI1LDMwMzI2LDMwMzI3LDMwMzI5LDMwMzMwLDMwMzMyLDMwMzM1LDMwMzM2LDMwMzM3LDMwMzM5LDMwMzQxLDMwMzQ1LDMwMzQ2LDMwMzQ4LDMwMzQ5LDMwMzUxLDMwMzUyLDMwMzU0LDMwMzU2LDMwMzU3LDMwMzU5LDMwMzYwLDMwMzYyLDMwMzYzLDMw''@;'; put 'put ''MzY0LDMwMzY1LDMwMzY2LDMwMzY3LDMwMzY4LDMwMzY5LDMwMzcwLDMwMzcxLDMwMzczLDMwMzc0LDMwMzc1LDMwMzc2LDMwMzc3LDMwMzc4LDMwMzc5LDMwMzgwLDMwMzgxLDMwMzgzLDMwMzg0LDMwMzg3LDMwMzg5LDMwMzkwLDMwMzkxLDMwMzkyLDMwMzkzLDMwMzk0LDMwMzk1LDMwMzk2''@;'; put 'put ''LDMwMzk3LDMwMzk4LDMwNDAwLDMwNDAxLDMwNDAzLDIxODM0LDM4NDYzLDIyNDY3LDI1Mzg0LDIxNzEwLDIxNzY5LDIxNjk2LDMwMzUzLDMwMjg0LDM0MTA4LDMwNzAyLDMzNDA2LDMwODYxLDI5MjMzLDM4NTUyLDM4Nzk3LDI3Njg4LDIzNDMzLDIwNDc0LDI1MzUzLDI2MjYzLDIzNzM2LDMz''@;'; put 'put ''MDE4LDI2Njk2LDMyOTQyLDI2MTE0LDMwNDE0LDIwOTg1LDI1OTQyLDI5MTAwLDMyNzUzLDM0OTQ4LDIwNjU4LDIyODg1LDI1MDM0LDI4NTk1LDMzNDUzLDI1NDIwLDI1MTcwLDIxNDg1LDIxNTQzLDMxNDk0LDIwODQzLDMwMTE2LDI0MDUyLDI1MzAwLDM2Mjk5LDM4Nzc0LDI1MjI2LDMyNzkz''@;'; put 'put ''LDIyMzY1LDM4NzEyLDMyNjEwLDI5MjQwLDMwMzMzLDI2NTc1LDMwMzM0LDI1NjcwLDIwMzM2LDM2MTMzLDI1MzA4LDMxMjU1LDI2MDAxLDI5Njc3LDI1NjQ0LDI1MjAzLDMzMzI0LDM5MDQxLDI2NDk1LDI5MjU2LDI1MTk4LDI1MjkyLDIwMjc2LDI5OTIzLDIxMzIyLDIxMTUwLDMyNDU4LDM3''@;'; put 'put ''MDMwLDI0MTEwLDI2NzU4LDI3MDM2LDMzMTUyLDMyNDY1LDI2ODM0LDMwOTE3LDM0NDQ0LDM4MjI1LDIwNjIxLDM1ODc2LDMzNTAyLDMyOTkwLDIxMjUzLDM1MDkwLDIxMDkzLDMwNDA0LDMwNDA3LDMwNDA5LDMwNDExLDMwNDEyLDMwNDE5LDMwNDIxLDMwNDI1LDMwNDI2LDMwNDI4LDMwNDI5''@;'; put 'put ''LDMwNDMwLDMwNDMyLDMwNDMzLDMwNDM0LDMwNDM1LDMwNDM2LDMwNDM4LDMwNDM5LDMwNDQwLDMwNDQxLDMwNDQyLDMwNDQzLDMwNDQ0LDMwNDQ1LDMwNDQ4LDMwNDUxLDMwNDUzLDMwNDU0LDMwNDU1LDMwNDU4LDMwNDU5LDMwNDYxLDMwNDYzLDMwNDY0LDMwNDY2LDMwNDY3LDMwNDY5LDMw''@;'; put 'put ''NDcwLDMwNDc0LDMwNDc2LDMwNDc4LDMwNDc5LDMwNDgwLDMwNDgxLDMwNDgyLDMwNDgzLDMwNDg0LDMwNDg1LDMwNDg2LDMwNDg3LDMwNDg4LDMwNDkxLDMwNDkyLDMwNDkzLDMwNDk0LDMwNDk3LDMwNDk5LDMwNTAwLDMwNTAxLDMwNTAzLDMwNTA2LDMwNTA3LDMwNTA4LDMwNTEwLDMwNTEy''@;'; put 'put ''LDMwNTEzLDMwNTE0LDMwNTE1LDMwNTE2LDMwNTIxLDMwNTIzLDMwNTI1LDMwNTI2LDMwNTI3LDMwNTMwLDMwNTMyLDMwNTMzLDMwNTM0LDMwNTM2LDMwNTM3LDMwNTM4LDMwNTM5LDMwNTQwLDMwNTQxLDMwNTQyLDMwNTQzLDMwNTQ2LDMwNTQ3LDMwNTQ4LDMwNTQ5LDMwNTUwLDMwNTUxLDMw''@;'; put 'put ''NTUyLDMwNTUzLDMwNTU2LDM0MTgwLDM4NjQ5LDIwNDQ1LDIyNTYxLDM5MjgxLDIzNDUzLDI1MjY1LDI1MjUzLDI2MjkyLDM1OTYxLDQwMDc3LDI5MTkwLDI2NDc5LDMwODY1LDI0NzU0LDIxMzI5LDIxMjcxLDM2NzQ0LDMyOTcyLDM2MTI1LDM4MDQ5LDIwNDkzLDI5Mzg0LDIyNzkxLDI0ODEx''@;'; put 'put ''LDI4OTUzLDM0OTg3LDIyODY4LDMzNTE5LDI2NDEyLDMxNTI4LDIzODQ5LDMyNTAzLDI5OTk3LDI3ODkzLDM2NDU0LDM2ODU2LDM2OTI0LDQwNzYzLDI3NjA0LDM3MTQ1LDMxNTA4LDI0NDQ0LDMwODg3LDM0MDA2LDM0MTA5LDI3NjA1LDI3NjA5LDI3NjA2LDI0MDY1LDI0MTk5LDMwMjAxLDM4''@;'; put 'put ''MzgxLDI1OTQ5LDI0MzMwLDI0NTE3LDM2NzY3LDIyNzIxLDMzMjE4LDM2OTkxLDM4NDkxLDM4ODI5LDM2NzkzLDMyNTM0LDM2MTQwLDI1MTUzLDIwNDE1LDIxNDY0LDIxMzQyLDM2Nzc2LDM2Nzc3LDM2Nzc5LDM2OTQxLDI2NjMxLDI0NDI2LDMzMTc2LDM0OTIwLDQwMTUwLDI0OTcxLDIxMDM1''@;'; put 'put ''LDMwMjUwLDI0NDI4LDI1OTk2LDI4NjI2LDI4MzkyLDIzNDg2LDI1NjcyLDIwODUzLDIwOTEyLDI2NTY0LDE5OTkzLDMxMTc3LDM5MjkyLDI4ODUxLDMwNTU3LDMwNTU4LDMwNTU5LDMwNTYwLDMwNTY0LDMwNTY3LDMwNTY5LDMwNTcwLDMwNTczLDMwNTc0LDMwNTc1LDMwNTc2LDMwNTc3LDMw''@;'; put 'put ''NTc4LDMwNTc5LDMwNTgwLDMwNTgxLDMwNTgyLDMwNTgzLDMwNTg0LDMwNTg2LDMwNTg3LDMwNTg4LDMwNTkzLDMwNTk0LDMwNTk1LDMwNTk4LDMwNTk5LDMwNjAwLDMwNjAxLDMwNjAyLDMwNjAzLDMwNjA3LDMwNjA4LDMwNjExLDMwNjEyLDMwNjEzLDMwNjE0LDMwNjE1LDMwNjE2LDMwNjE3''@;'; put 'put ''LDMwNjE4LDMwNjE5LDMwNjIwLDMwNjIxLDMwNjIyLDMwNjI1LDMwNjI3LDMwNjI4LDMwNjMwLDMwNjMyLDMwNjM1LDMwNjM3LDMwNjM4LDMwNjM5LDMwNjQxLDMwNjQyLDMwNjQ0LDMwNjQ2LDMwNjQ3LDMwNjQ4LDMwNjQ5LDMwNjUwLDMwNjUyLDMwNjU0LDMwNjU2LDMwNjU3LDMwNjU4LDMw''@;'; put 'put ''NjU5LDMwNjYwLDMwNjYxLDMwNjYyLDMwNjYzLDMwNjY0LDMwNjY1LDMwNjY2LDMwNjY3LDMwNjY4LDMwNjcwLDMwNjcxLDMwNjcyLDMwNjczLDMwNjc0LDMwNjc1LDMwNjc2LDMwNjc3LDMwNjc4LDMwNjgwLDMwNjgxLDMwNjgyLDMwNjg1LDMwNjg2LDMwNjg3LDMwNjg4LDMwNjg5LDMwNjky''@;'; put 'put ''LDMwMTQ5LDI0MTgyLDI5NjI3LDMzNzYwLDI1NzczLDI1MzIwLDM4MDY5LDI3ODc0LDIxMzM4LDIxMTg3LDI1NjE1LDM4MDgyLDMxNjM2LDIwMjcxLDI0MDkxLDMzMzM0LDMzMDQ2LDMzMTYyLDI4MTk2LDI3ODUwLDM5NTM5LDI1NDI5LDIxMzQwLDIxNzU0LDM0OTE3LDIyNDk2LDE5OTgxLDI0''@;'; put 'put ''MDY3LDI3NDkzLDMxODA3LDM3MDk2LDI0NTk4LDI1ODMwLDI5NDY4LDM1MDA5LDI2NDQ4LDI1MTY1LDM2MTMwLDMwNTcyLDM2MzkzLDM3MzE5LDI0NDI1LDMzNzU2LDM0MDgxLDM5MTg0LDIxNDQyLDM0NDUzLDI3NTMxLDI0ODEzLDI0ODA4LDI4Nzk5LDMzNDg1LDMzMzI5LDIwMTc5LDI3ODE1''@;'; put 'put ''LDM0MjU1LDI1ODA1LDMxOTYxLDI3MTMzLDI2MzYxLDMzNjA5LDIxMzk3LDMxNTc0LDIwMzkxLDIwODc2LDI3OTc5LDIzNjE4LDM2NDYxLDI1NTU0LDIxNDQ5LDMzNTgwLDMzNTkwLDI2NTk3LDMwOTAwLDI1NjYxLDIzNTE5LDIzNzAwLDI0MDQ2LDM1ODE1LDI1Mjg2LDI2NjEyLDM1OTYyLDI1''@;'; put 'put ''NjAwLDI1NTMwLDM0NjMzLDM5MzA3LDM1ODYzLDMyNTQ0LDM4MTMwLDIwMTM1LDM4NDE2LDM5MDc2LDI2MTI0LDI5NDYyLDMwNjk0LDMwNjk2LDMwNjk4LDMwNzAzLDMwNzA0LDMwNzA1LDMwNzA2LDMwNzA4LDMwNzA5LDMwNzExLDMwNzEzLDMwNzE0LDMwNzE1LDMwNzE2LDMwNzIzLDMwNzI0''@;'; put 'put ''LDMwNzI1LDMwNzI2LDMwNzI3LDMwNzI4LDMwNzMwLDMwNzMxLDMwNzM0LDMwNzM1LDMwNzM2LDMwNzM5LDMwNzQxLDMwNzQ1LDMwNzQ3LDMwNzUwLDMwNzUyLDMwNzUzLDMwNzU0LDMwNzU2LDMwNzYwLDMwNzYyLDMwNzYzLDMwNzY2LDMwNzY3LDMwNzY5LDMwNzcwLDMwNzcxLDMwNzczLDMw''@;'; put 'put ''Nzc0LDMwNzgxLDMwNzgzLDMwNzg1LDMwNzg2LDMwNzg3LDMwNzg4LDMwNzkwLDMwNzkyLDMwNzkzLDMwNzk0LDMwNzk1LDMwNzk3LDMwNzk5LDMwODAxLDMwODAzLDMwODA0LDMwODA4LDMwODA5LDMwODEwLDMwODExLDMwODEyLDMwODE0LDMwODE1LDMwODE2LDMwODE3LDMwODE4LDMwODE5''@;'; put 'put ''LDMwODIwLDMwODIxLDMwODIyLDMwODIzLDMwODI0LDMwODI1LDMwODMxLDMwODMyLDMwODMzLDMwODM0LDMwODM1LDMwODM2LDMwODM3LDMwODM4LDMwODQwLDMwODQxLDMwODQyLDMwODQzLDMwODQ1LDMwODQ2LDMwODQ3LDMwODQ4LDMwODQ5LDMwODUwLDMwODUxLDIyMzMwLDIzNTgxLDI0''@;'; put 'put ''MTIwLDM4MjcxLDIwNjA3LDMyOTI4LDIxMzc4LDI1OTUwLDMwMDIxLDIxODA5LDIwNTEzLDM2MjI5LDI1MjIwLDM4MDQ2LDI2Mzk3LDIyMDY2LDI4NTI2LDI0MDM0LDIxNTU3LDI4ODE4LDM2NzEwLDI1MTk5LDI1NzY0LDI1NTA3LDI0NDQzLDI4NTUyLDM3MTA4LDMzMjUxLDM2Nzg0LDIzNTc2''@;'; put 'put ''LDI2MjE2LDI0NTYxLDI3Nzg1LDM4NDcyLDM2MjI1LDM0OTI0LDI1NzQ1LDMxMjE2LDIyNDc4LDI3MjI1LDI1MTA0LDIxNTc2LDIwMDU2LDMxMjQzLDI0ODA5LDI4NTQ4LDM1ODAyLDI1MjE1LDM2ODk0LDM5NTYzLDMxMjA0LDIxNTA3LDMwMTk2LDI1MzQ1LDIxMjczLDI3NzQ0LDM2ODMxLDI0''@;'; put 'put ''MzQ3LDM5NTM2LDMyODI3LDQwODMxLDIwMzYwLDIzNjEwLDM2MTk2LDMyNzA5LDI2MDIxLDI4ODYxLDIwODA1LDIwOTE0LDM0NDExLDIzODE1LDIzNDU2LDI1Mjc3LDM3MjI4LDMwMDY4LDM2MzY0LDMxMjY0LDI0ODMzLDMxNjA5LDIwMTY3LDMyNTA0LDMwNTk3LDE5OTg1LDMzMjYxLDIxMDIx''@;'; put 'put ''LDIwOTg2LDI3MjQ5LDIxNDE2LDM2NDg3LDM4MTQ4LDM4NjA3LDI4MzUzLDM4NTAwLDI2OTcwLDMwODUyLDMwODUzLDMwODU0LDMwODU2LDMwODU4LDMwODU5LDMwODYzLDMwODY0LDMwODY2LDMwODY4LDMwODY5LDMwODcwLDMwODczLDMwODc3LDMwODc4LDMwODgwLDMwODgyLDMwODg0LDMw''@;'; put 'put ''ODg2LDMwODg4LDMwODg5LDMwODkwLDMwODkxLDMwODkyLDMwODkzLDMwODk0LDMwODk1LDMwOTAxLDMwOTAyLDMwOTAzLDMwOTA0LDMwOTA2LDMwOTA3LDMwOTA4LDMwOTA5LDMwOTExLDMwOTEyLDMwOTE0LDMwOTE1LDMwOTE2LDMwOTE4LDMwOTE5LDMwOTIwLDMwOTI0LDMwOTI1LDMwOTI2''@;'; put 'put ''LDMwOTI3LDMwOTI5LDMwOTMwLDMwOTMxLDMwOTM0LDMwOTM1LDMwOTM2LDMwOTM4LDMwOTM5LDMwOTQwLDMwOTQxLDMwOTQyLDMwOTQzLDMwOTQ0LDMwOTQ1LDMwOTQ2LDMwOTQ3LDMwOTQ4LDMwOTQ5LDMwOTUwLDMwOTUxLDMwOTUzLDMwOTU0LDMwOTU1LDMwOTU3LDMwOTU4LDMwOTU5LDMw''@;'; put 'put ''OTYwLDMwOTYxLDMwOTYzLDMwOTY1LDMwOTY2LDMwOTY4LDMwOTY5LDMwOTcxLDMwOTcyLDMwOTczLDMwOTc0LDMwOTc1LDMwOTc2LDMwOTc4LDMwOTc5LDMwOTgwLDMwOTgyLDMwOTgzLDMwOTg0LDMwOTg1LDMwOTg2LDMwOTg3LDMwOTg4LDMwNzg0LDIwNjQ4LDMwNjc5LDI1NjE2LDM1MzAy''@;'; put 'put ''LDIyNzg4LDI1NTcxLDI0MDI5LDMxMzU5LDI2OTQxLDIwMjU2LDMzMzM3LDIxOTEyLDIwMDE4LDMwMTI2LDMxMzgzLDI0MTYyLDI0MjAyLDM4MzgzLDIxMDE5LDIxNTYxLDI4ODEwLDI1NDYyLDM4MTgwLDIyNDAyLDI2MTQ5LDI2OTQzLDM3MjU1LDIxNzY3LDI4MTQ3LDMyNDMxLDM0ODUwLDI1''@;'; put 'put ''MTM5LDMyNDk2LDMwMTMzLDMzNTc2LDMwOTEzLDM4NjA0LDM2NzY2LDI0OTA0LDI5OTQzLDM1Nzg5LDI3NDkyLDIxMDUwLDM2MTc2LDI3NDI1LDMyODc0LDMzOTA1LDIyMjU3LDIxMjU0LDIwMTc0LDE5OTk1LDIwOTQ1LDMxODk1LDM3MjU5LDMxNzUxLDIwNDE5LDM2NDc5LDMxNzEzLDMxMzg4''@;'; put 'put ''LDI1NzAzLDIzODI4LDIwNjUyLDMzMDMwLDMwMjA5LDMxOTI5LDI4MTQwLDMyNzM2LDI2NDQ5LDIzMzg0LDIzNTQ0LDMwOTIzLDI1Nzc0LDI1NjE5LDI1NTE0LDI1Mzg3LDM4MTY5LDI1NjQ1LDM2Nzk4LDMxNTcyLDMwMjQ5LDI1MTcxLDIyODIzLDIxNTc0LDI3NTEzLDIwNjQzLDI1MTQwLDI0''@;'; put 'put ''MTAyLDI3NTI2LDIwMTk1LDM2MTUxLDM0OTU1LDI0NDUzLDM2OTEwLDMwOTg5LDMwOTkwLDMwOTkxLDMwOTkyLDMwOTkzLDMwOTk0LDMwOTk2LDMwOTk3LDMwOTk4LDMwOTk5LDMxZTMsMzEwMDEsMzEwMDIsMzEwMDMsMzEwMDQsMzEwMDUsMzEwMDcsMzEwMDgsMzEwMDksMzEwMTAsMzEwMTEs''@;'; put 'put ''MzEwMTMsMzEwMTQsMzEwMTUsMzEwMTYsMzEwMTcsMzEwMTgsMzEwMTksMzEwMjAsMzEwMjEsMzEwMjIsMzEwMjMsMzEwMjQsMzEwMjUsMzEwMjYsMzEwMjcsMzEwMjksMzEwMzAsMzEwMzEsMzEwMzIsMzEwMzMsMzEwMzcsMzEwMzksMzEwNDIsMzEwNDMsMzEwNDQsMzEwNDUsMzEwNDcsMzEw''@;'; put 'put ''NTAsMzEwNTEsMzEwNTIsMzEwNTMsMzEwNTQsMzEwNTUsMzEwNTYsMzEwNTcsMzEwNTgsMzEwNjAsMzEwNjEsMzEwNjQsMzEwNjUsMzEwNzMsMzEwNzUsMzEwNzYsMzEwNzgsMzEwODEsMzEwODIsMzEwODMsMzEwODQsMzEwODYsMzEwODgsMzEwODksMzEwOTAsMzEwOTEsMzEwOTIsMzEwOTMs''@;'; put 'put ''MzEwOTQsMzEwOTcsMzEwOTksMzExMDAsMzExMDEsMzExMDIsMzExMDMsMzExMDYsMzExMDcsMzExMTAsMzExMTEsMzExMTIsMzExMTMsMzExMTUsMzExMTYsMzExMTcsMzExMTgsMzExMjAsMzExMjEsMzExMjIsMjQ2MDgsMzI4MjksMjUyODUsMjAwMjUsMjEzMzMsMzcxMTIsMjU1MjgsMzI5''@;'; put 'put ''NjYsMjYwODYsMjc2OTQsMjAyOTQsMjQ4MTQsMjgxMjksMzU4MDYsMjQzNzcsMzQ1MDcsMjQ0MDMsMjUzNzcsMjA4MjYsMzM2MzMsMjY3MjMsMjA5OTIsMjU0NDMsMzY0MjQsMjA0OTgsMjM3MDcsMzEwOTUsMjM1NDgsMjEwNDAsMzEyOTEsMjQ3NjQsMzY5NDcsMzA0MjMsMjQ1MDMsMjQ0NzEs''@;'; put 'put ''MzAzNDAsMzY0NjAsMjg3ODMsMzAzMzEsMzE1NjEsMzA2MzQsMjA5NzksMzcwMTEsMjI1NjQsMjAzMDIsMjg0MDQsMzY4NDIsMjU5MzIsMzE1MTUsMjkzODAsMjgwNjgsMzI3MzUsMjMyNjUsMjUyNjksMjQyMTMsMjIzMjAsMzM5MjIsMzE1MzIsMjQwOTMsMjQzNTEsMzY4ODIsMzI1MzIsMzkw''@;'; put 'put ''NzIsMjU0NzQsMjgzNTksMzA4NzIsMjg4NTcsMjA4NTYsMzg3NDcsMjI0NDMsMzAwMDUsMjAyOTEsMzAwMDgsMjQyMTUsMjQ4MDYsMjI4ODAsMjgwOTYsMjc1ODMsMzA4NTcsMjE1MDAsMzg2MTMsMjA5MzksMjA5OTMsMjU0ODEsMjE1MTQsMzgwMzUsMzU4NDMsMzYzMDAsMjkyNDEsMzA4Nzks''@;'; put 'put ''MzQ2NzgsMzY4NDUsMzU4NTMsMjE0NzIsMzExMjMsMzExMjQsMzExMjUsMzExMjYsMzExMjcsMzExMjgsMzExMjksMzExMzEsMzExMzIsMzExMzMsMzExMzQsMzExMzUsMzExMzYsMzExMzcsMzExMzgsMzExMzksMzExNDAsMzExNDEsMzExNDIsMzExNDQsMzExNDUsMzExNDYsMzExNDcsMzEx''@;'; put 'put ''NDgsMzExNDksMzExNTAsMzExNTEsMzExNTIsMzExNTMsMzExNTQsMzExNTYsMzExNTcsMzExNTgsMzExNTksMzExNjAsMzExNjQsMzExNjcsMzExNzAsMzExNzIsMzExNzMsMzExNzUsMzExNzYsMzExNzgsMzExODAsMzExODIsMzExODMsMzExODQsMzExODcsMzExODgsMzExOTAsMzExOTEs''@;'; put 'put ''MzExOTMsMzExOTQsMzExOTUsMzExOTYsMzExOTcsMzExOTgsMzEyMDAsMzEyMDEsMzEyMDIsMzEyMDUsMzEyMDgsMzEyMTAsMzEyMTIsMzEyMTQsMzEyMTcsMzEyMTgsMzEyMTksMzEyMjAsMzEyMjEsMzEyMjIsMzEyMjMsMzEyMjUsMzEyMjYsMzEyMjgsMzEyMzAsMzEyMzEsMzEyMzMsMzEy''@;'; put 'put ''MzYsMzEyMzcsMzEyMzksMzEyNDAsMzEyNDEsMzEyNDIsMzEyNDQsMzEyNDcsMzEyNDgsMzEyNDksMzEyNTAsMzEyNTEsMzEyNTMsMzEyNTQsMzEyNTYsMzEyNTcsMzEyNTksMzEyNjAsMTk5NjksMzA0NDcsMjE0ODYsMzgwMjUsMzkwMzAsNDA3MTgsMzgxODksMjM0NTAsMzU3NDYsMjAwMDIs''@;'; put 'put ''MTk5OTYsMjA5MDgsMzM4OTEsMjUwMjYsMjExNjAsMjY2MzUsMjAzNzUsMjQ2ODMsMjA5MjMsMjc5MzQsMjA4MjgsMjUyMzgsMjYwMDcsMzg0OTcsMzU5MTAsMzY4ODcsMzAxNjgsMzcxMTcsMzA1NjMsMjc2MDIsMjkzMjIsMjk0MjAsMzU4MzUsMjI1ODEsMzA1ODUsMzYxNzIsMjY0NjAsMzgy''@;'; put 'put ''MDgsMzI5MjIsMjQyMzAsMjgxOTMsMjI5MzAsMzE0NzEsMzA3MDEsMzgyMDMsMjc1NzMsMjYwMjksMzI1MjYsMjI1MzQsMjA4MTcsMzg0MzEsMjM1NDUsMjI2OTcsMjE1NDQsMzY0NjYsMjU5NTgsMzkwMzksMjIyNDQsMzgwNDUsMzA0NjIsMzY5MjksMjU0NzksMjE3MDIsMjI4MTAsMjI4NDIs''@;'; put 'put ''MjI0MjcsMzY1MzAsMjY0MjEsMzYzNDYsMzMzMzMsMjEwNTcsMjQ4MTYsMjI1NDksMzQ1NTgsMjM3ODQsNDA1MTcsMjA0MjAsMzkwNjksMzU3NjksMjMwNzcsMjQ2OTQsMjEzODAsMjUyMTIsMzY5NDMsMzcxMjIsMzkyOTUsMjQ2ODEsMzI3ODAsMjA3OTksMzI4MTksMjM1NzIsMzkyODUsMjc5''@;'; put 'put ''NTMsMjAxMDgsMzEyNjEsMzEyNjMsMzEyNjUsMzEyNjYsMzEyNjgsMzEyNjksMzEyNzAsMzEyNzEsMzEyNzIsMzEyNzMsMzEyNzQsMzEyNzUsMzEyNzYsMzEyNzcsMzEyNzgsMzEyNzksMzEyODAsMzEyODEsMzEyODIsMzEyODQsMzEyODUsMzEyODYsMzEyODgsMzEyOTAsMzEyOTQsMzEyOTYs''@;'; put 'put ''MzEyOTcsMzEyOTgsMzEyOTksMzEzMDAsMzEzMDEsMzEzMDMsMzEzMDQsMzEzMDUsMzEzMDYsMzEzMDcsMzEzMDgsMzEzMDksMzEzMTAsMzEzMTEsMzEzMTIsMzEzMTQsMzEzMTUsMzEzMTYsMzEzMTcsMzEzMTgsMzEzMjAsMzEzMjEsMzEzMjIsMzEzMjMsMzEzMjQsMzEzMjUsMzEzMjYsMzEz''@;'; put 'put ''MjcsMzEzMjgsMzEzMjksMzEzMzAsMzEzMzEsMzEzMzIsMzEzMzMsMzEzMzQsMzEzMzUsMzEzMzYsMzEzMzcsMzEzMzgsMzEzMzksMzEzNDAsMzEzNDEsMzEzNDIsMzEzNDMsMzEzNDUsMzEzNDYsMzEzNDcsMzEzNDksMzEzNTUsMzEzNTYsMzEzNTcsMzEzNTgsMzEzNjIsMzEzNjUsMzEzNjcs''@;'; put 'put ''MzEzNjksMzEzNzAsMzEzNzEsMzEzNzIsMzEzNzQsMzEzNzUsMzEzNzYsMzEzNzksMzEzODAsMzEzODUsMzEzODYsMzEzODcsMzEzOTAsMzEzOTMsMzEzOTQsMzYxNDQsMjE0NTcsMzI2MDIsMzE1NjcsMjAyNDAsMjAwNDcsMzg0MDAsMjc4NjEsMjk2NDgsMzQyODEsMjQwNzAsMzAwNTgsMzI3''@;'; put 'put ''NjMsMjcxNDYsMzA3MTgsMzgwMzQsMzIzMjEsMjA5NjEsMjg5MDIsMjE0NTMsMzY4MjAsMzM1MzksMzYxMzcsMjkzNTksMzkyNzcsMjc4NjcsMjIzNDYsMzM0NTksMjYwNDEsMzI5MzgsMjUxNTEsMzg0NTAsMjI5NTIsMjAyMjMsMzU3NzUsMzI0NDIsMjU5MTgsMzM3NzgsMzg3NTAsMjE4NTcs''@;'; put 'put ''MzkxMzQsMzI5MzMsMjEyOTAsMzU4MzcsMjE1MzYsMzI5NTQsMjQyMjMsMjc4MzIsMzYxNTMsMzM0NTIsMzcyMTAsMjE1NDUsMjc2NzUsMjA5OTgsMzI0MzksMjIzNjcsMjg5NTQsMjc3NzQsMzE4ODEsMjI4NTksMjAyMjEsMjQ1NzUsMjQ4NjgsMzE5MTQsMjAwMTYsMjM1NTMsMjY1MzksMzQ1''@;'; put 'put ''NjIsMjM3OTIsMzgxNTUsMzkxMTgsMzAxMjcsMjg5MjUsMzY4OTgsMjA5MTEsMzI1NDEsMzU3NzMsMjI4NTcsMjA5NjQsMjAzMTUsMjE1NDIsMjI4MjcsMjU5NzUsMzI5MzIsMjM0MTMsMjUyMDYsMjUyODIsMzY3NTIsMjQxMzMsMjc2NzksMzE1MjYsMjAyMzksMjA0NDAsMjYzODEsMzEzOTUs''@;'; put 'put ''MzEzOTYsMzEzOTksMzE0MDEsMzE0MDIsMzE0MDMsMzE0MDYsMzE0MDcsMzE0MDgsMzE0MDksMzE0MTAsMzE0MTIsMzE0MTMsMzE0MTQsMzE0MTUsMzE0MTYsMzE0MTcsMzE0MTgsMzE0MTksMzE0MjAsMzE0MjEsMzE0MjIsMzE0MjQsMzE0MjUsMzE0MjYsMzE0MjcsMzE0MjgsMzE0MjksMzE0''@;'; put 'put ''MzAsMzE0MzEsMzE0MzIsMzE0MzMsMzE0MzQsMzE0MzYsMzE0MzcsMzE0MzgsMzE0MzksMzE0NDAsMzE0NDEsMzE0NDIsMzE0NDMsMzE0NDQsMzE0NDUsMzE0NDcsMzE0NDgsMzE0NTAsMzE0NTEsMzE0NTIsMzE0NTMsMzE0NTcsMzE0NTgsMzE0NjAsMzE0NjMsMzE0NjQsMzE0NjUsMzE0NjYs''@;'; put 'put ''MzE0NjcsMzE0NjgsMzE0NzAsMzE0NzIsMzE0NzMsMzE0NzQsMzE0NzUsMzE0NzYsMzE0NzcsMzE0NzgsMzE0NzksMzE0ODAsMzE0ODMsMzE0ODQsMzE0ODYsMzE0ODgsMzE0ODksMzE0OTAsMzE0OTMsMzE0OTUsMzE0OTcsMzE1MDAsMzE1MDEsMzE1MDIsMzE1MDQsMzE1MDYsMzE1MDcsMzE1''@;'; put 'put ''MTAsMzE1MTEsMzE1MTIsMzE1MTQsMzE1MTYsMzE1MTcsMzE1MTksMzE1MjEsMzE1MjIsMzE1MjMsMzE1MjcsMzE1MjksMzE1MzMsMjgwMTQsMjgwNzQsMzExMTksMzQ5OTMsMjQzNDMsMjk5OTUsMjUyNDIsMzY3NDEsMjA0NjMsMzczNDAsMjYwMjMsMzMwNzEsMzMxMDUsMjQyMjAsMzMxMDQs''@;'; put 'put ''MzYyMTIsMjExMDMsMzUyMDYsMzYxNzEsMjI3OTcsMjA2MTMsMjAxODQsMzg0MjgsMjkyMzgsMzMxNDUsMzYxMjcsMjM1MDAsMzU3NDcsMzg0NjgsMjI5MTksMzI1MzgsMjE2NDgsMjIxMzQsMjIwMzAsMzU4MTMsMjU5MTMsMjcwMTAsMzgwNDEsMzA0MjIsMjgyOTcsMjQxNzgsMjk5NzYsMjY0''@;'; put 'put ''MzgsMjY1NzcsMzE0ODcsMzI5MjUsMzYyMTQsMjQ4NjMsMzExNzQsMjU5NTQsMzYxOTUsMjA4NzIsMjEwMTgsMzgwNTAsMzI1NjgsMzI5MjMsMzI0MzQsMjM3MDMsMjgyMDcsMjY0NjQsMzE3MDUsMzAzNDcsMzk2NDAsMzMxNjcsMzI2NjAsMzE5NTcsMjU2MzAsMzgyMjQsMzEyOTUsMjE1Nzgs''@;'; put 'put ''MjE3MzMsMjc0NjgsMjU2MDEsMjUwOTYsNDA1MDksMzMwMTEsMzAxMDUsMjExMDYsMzg3NjEsMzM4ODMsMjY2ODQsMzQ1MzIsMzg0MDEsMzg1NDgsMzgxMjQsMjAwMTAsMjE1MDgsMzI0NzMsMjY2ODEsMzYzMTksMzI3ODksMjYzNTYsMjQyMTgsMzI2OTcsMzE1MzUsMzE1MzYsMzE1MzgsMzE1''@;'; put 'put ''NDAsMzE1NDEsMzE1NDIsMzE1NDMsMzE1NDUsMzE1NDcsMzE1NDksMzE1NTEsMzE1NTIsMzE1NTMsMzE1NTQsMzE1NTUsMzE1NTYsMzE1NTgsMzE1NjAsMzE1NjIsMzE1NjUsMzE1NjYsMzE1NzEsMzE1NzMsMzE1NzUsMzE1NzcsMzE1ODAsMzE1ODIsMzE1ODMsMzE1ODUsMzE1ODcsMzE1ODgs''@;'; put 'put ''MzE1ODksMzE1OTAsMzE1OTEsMzE1OTIsMzE1OTMsMzE1OTQsMzE1OTUsMzE1OTYsMzE1OTcsMzE1OTksMzE2MDAsMzE2MDMsMzE2MDQsMzE2MDYsMzE2MDgsMzE2MTAsMzE2MTIsMzE2MTMsMzE2MTUsMzE2MTcsMzE2MTgsMzE2MTksMzE2MjAsMzE2MjIsMzE2MjMsMzE2MjQsMzE2MjUsMzE2''@;'; put 'put ''MjYsMzE2MjcsMzE2MjgsMzE2MzAsMzE2MzEsMzE2MzMsMzE2MzQsMzE2MzUsMzE2MzgsMzE2NDAsMzE2NDEsMzE2NDIsMzE2NDMsMzE2NDYsMzE2NDcsMzE2NDgsMzE2NTEsMzE2NTIsMzE2NTMsMzE2NjIsMzE2NjMsMzE2NjQsMzE2NjYsMzE2NjcsMzE2NjksMzE2NzAsMzE2NzEsMzE2NzMs''@;'; put 'put ''MzE2NzQsMzE2NzUsMzE2NzYsMzE2NzcsMzE2NzgsMzE2NzksMzE2ODAsMzE2ODIsMzE2ODMsMzE2ODQsMjI0NjYsMzI4MzEsMjY3NzUsMjQwMzcsMjU5MTUsMjExNTEsMjQ2ODUsNDA4NTgsMjAzNzksMzY1MjQsMjA4NDQsMjM0NjcsMjQzMzksMjQwNDEsMjc3NDIsMjUzMjksMzYxMjksMjA4''@;'; put 'put ''NDksMzgwNTcsMjEyNDYsMjc4MDcsMzM1MDMsMjkzOTksMjI0MzQsMjY1MDAsMzYxNDEsMjI4MTUsMzY3NjQsMzM3MzUsMjE2NTMsMzE2MjksMjAyNzIsMjc4MzcsMjMzOTYsMjI5OTMsNDA3MjMsMjE0NzYsMzQ1MDYsMzk1OTIsMzU4OTUsMzI5MjksMjU5MjUsMzkwMzgsMjIyNjYsMzg1OTks''@;'; put 'put ''MjEwMzgsMjk5MTYsMjEwNzIsMjM1MjEsMjUzNDYsMzUwNzQsMjAwNTQsMjUyOTYsMjQ2MTgsMjY4NzQsMjA4NTEsMjM0NDgsMjA4OTYsMzUyNjYsMzE2NDksMzkzMDIsMzI1OTIsMjQ4MTUsMjg3NDgsMzYxNDMsMjA4MDksMjQxOTEsMzY4OTEsMjk4MDgsMzUyNjgsMjIzMTcsMzA3ODksMjQ0''@;'; put 'put ''MDIsNDA4NjMsMzgzOTQsMzY3MTIsMzk3NDAsMzU4MDksMzAzMjgsMjY2OTAsMjY1ODgsMzYzMzAsMzYxNDksMjEwNTMsMzY3NDYsMjgzNzgsMjY4MjksMzgxNDksMzcxMDEsMjIyNjksMjY1MjQsMzUwNjUsMzY4MDcsMjE3MDQsMzE2ODUsMzE2ODgsMzE2ODksMzE2OTAsMzE2OTEsMzE2OTMs''@;'; put 'put ''MzE2OTQsMzE2OTUsMzE2OTYsMzE2OTgsMzE3MDAsMzE3MDEsMzE3MDIsMzE3MDMsMzE3MDQsMzE3MDcsMzE3MDgsMzE3MTAsMzE3MTEsMzE3MTIsMzE3MTQsMzE3MTUsMzE3MTYsMzE3MTksMzE3MjAsMzE3MjEsMzE3MjMsMzE3MjQsMzE3MjUsMzE3MjcsMzE3MjgsMzE3MzAsMzE3MzEsMzE3''@;'; put 'put ''MzIsMzE3MzMsMzE3MzQsMzE3MzYsMzE3MzcsMzE3MzgsMzE3MzksMzE3NDEsMzE3NDMsMzE3NDQsMzE3NDUsMzE3NDYsMzE3NDcsMzE3NDgsMzE3NDksMzE3NTAsMzE3NTIsMzE3NTMsMzE3NTQsMzE3NTcsMzE3NTgsMzE3NjAsMzE3NjEsMzE3NjIsMzE3NjMsMzE3NjQsMzE3NjUsMzE3Njcs''@;'; put 'put ''MzE3NjgsMzE3NjksMzE3NzAsMzE3NzEsMzE3NzIsMzE3NzMsMzE3NzQsMzE3NzYsMzE3NzcsMzE3NzgsMzE3NzksMzE3ODAsMzE3ODEsMzE3ODQsMzE3ODUsMzE3ODcsMzE3ODgsMzE3ODksMzE3OTAsMzE3OTEsMzE3OTIsMzE3OTMsMzE3OTQsMzE3OTUsMzE3OTYsMzE3OTcsMzE3OTgsMzE3''@;'; put 'put ''OTksMzE4MDEsMzE4MDIsMzE4MDMsMzE4MDQsMzE4MDUsMzE4MDYsMzE4MTAsMzk2MDgsMjM0MDEsMjgwMjMsMjc2ODYsMjAxMzMsMjM0NzUsMzk1NTksMzcyMTksMjVlMywzNzAzOSwzODg4OSwyMTU0NywyODA4NSwyMzUwNiwyMDk4OSwyMTg5OCwzMjU5NywzMjc1MiwyNTc4OCwyNTQyMSwy''@;'; put 'put ''NjA5NywyNTAyMiwyNDcxNywyODkzOCwyNzczNSwyNzcyMSwyMjgzMSwyNjQ3NywzMzMyMiwyMjc0MSwyMjE1OCwzNTk0NiwyNzYyNywzNzA4NSwyMjkwOSwzMjc5MSwyMTQ5NSwyODAwOSwyMTYyMSwyMTkxNywzMzY1NSwzMzc0MywyNjY4MCwzMTE2NiwyMTY0NCwyMDMwOSwyMTUxMiwzMDQx''@;'; put 'put ''OCwzNTk3NywzODQwMiwyNzgyNywyODA4OCwzNjIwMywzNTA4OCw0MDU0OCwzNjE1NCwyMjA3OSw0MDY1NywzMDE2NSwyNDQ1NiwyOTQwOCwyNDY4MCwyMTc1NiwyMDEzNiwyNzE3OCwzNDkxMywyNDY1OCwzNjcyMCwyMTcwMCwyODg4OCwzNDQyNSw0MDUxMSwyNzk0NiwyMzQzOSwyNDM0NCwz''@;'; put 'put ''MjQxOCwyMTg5NywyMDM5OSwyOTQ5MiwyMTU2NCwyMTQwMiwyMDUwNSwyMTUxOCwyMTYyOCwyMDA0NiwyNDU3MywyOTc4NiwyMjc3NCwzMzg5OSwzMjk5MywzNDY3NiwyOTM5MiwzMTk0NiwyODI0NiwzMTgxMSwzMTgxMiwzMTgxMywzMTgxNCwzMTgxNSwzMTgxNiwzMTgxNywzMTgxOCwzMTgx''@;'; put 'put ''OSwzMTgyMCwzMTgyMiwzMTgyMywzMTgyNCwzMTgyNSwzMTgyNiwzMTgyNywzMTgyOCwzMTgyOSwzMTgzMCwzMTgzMSwzMTgzMiwzMTgzMywzMTgzNCwzMTgzNSwzMTgzNiwzMTgzNywzMTgzOCwzMTgzOSwzMTg0MCwzMTg0MSwzMTg0MiwzMTg0MywzMTg0NCwzMTg0NSwzMTg0NiwzMTg0Nywz''@;'; put 'put ''MTg0OCwzMTg0OSwzMTg1MCwzMTg1MSwzMTg1MiwzMTg1MywzMTg1NCwzMTg1NSwzMTg1NiwzMTg1NywzMTg1OCwzMTg2MSwzMTg2MiwzMTg2MywzMTg2NCwzMTg2NSwzMTg2NiwzMTg3MCwzMTg3MSwzMTg3MiwzMTg3MywzMTg3NCwzMTg3NSwzMTg3NiwzMTg3NywzMTg3OCwzMTg3OSwzMTg4''@;'; put 'put ''MCwzMTg4MiwzMTg4MywzMTg4NCwzMTg4NSwzMTg4NiwzMTg4NywzMTg4OCwzMTg5MSwzMTg5MiwzMTg5NCwzMTg5NywzMTg5OCwzMTg5OSwzMTkwNCwzMTkwNSwzMTkwNywzMTkxMCwzMTkxMSwzMTkxMiwzMTkxMywzMTkxNSwzMTkxNiwzMTkxNywzMTkxOSwzMTkyMCwzMTkyNCwzMTkyNSwz''@;'; put 'put ''MTkyNiwzMTkyNywzMTkyOCwzMTkzMCwzMTkzMSwyNDM1OSwzNDM4MiwyMTgwNCwyNTI1MiwyMDExNCwyNzgxOCwyNTE0MywzMzQ1NywyMTcxOSwyMTMyNiwyOTUwMiwyODM2OSwzMDAxMSwyMTAxMCwyMTI3MCwzNTgwNSwyNzA4OCwyNDQ1OCwyNDU3NiwyODE0MiwyMjM1MSwyNzQyNiwyOTYx''@;'; put 'put ''NSwyNjcwNywzNjgyNCwzMjUzMSwyNTQ0MiwyNDczOSwyMTc5NiwzMDE4NiwzNTkzOCwyODk0OSwyODA2NywyMzQ2MiwyNDE4NywzMzYxOCwyNDkwOCw0MDY0NCwzMDk3MCwzNDY0NywzMTc4MywzMDM0MywyMDk3NiwyNDgyMiwyOTAwNCwyNjE3OSwyNDE0MCwyNDY1MywzNTg1NCwyODc4NCwy''@;'; put 'put ''NTM4MSwzNjc0NSwyNDUwOSwyNDY3NCwzNDUxNiwyMjIzOCwyNzU4NSwyNDcyNCwyNDkzNSwyMTMyMSwyNDgwMCwyNjIxNCwzNjE1OSwzMTIyOSwyMDI1MCwyODkwNSwyNzcxOSwzNTc2MywzNTgyNiwzMjQ3MiwzMzYzNiwyNjEyNywyMzEzMCwzOTc0NiwyNzk4NSwyODE1MSwzNTkwNSwyNzk2''@;'; put 'put ''MywyMDI0OSwyODc3OSwzMzcxOSwyNTExMCwyNDc4NSwzODY2OSwzNjEzNSwzMTA5NiwyMDk4NywyMjMzNCwyMjUyMiwyNjQyNiwzMDA3MiwzMTI5MywzMTIxNSwzMTYzNywzMTkzNSwzMTkzNiwzMTkzOCwzMTkzOSwzMTk0MCwzMTk0MiwzMTk0NSwzMTk0NywzMTk1MCwzMTk1MSwzMTk1Miwz''@;'; put 'put ''MTk1MywzMTk1NCwzMTk1NSwzMTk1NiwzMTk2MCwzMTk2MiwzMTk2MywzMTk2NSwzMTk2NiwzMTk2OSwzMTk3MCwzMTk3MSwzMTk3MiwzMTk3MywzMTk3NCwzMTk3NSwzMTk3NywzMTk3OCwzMTk3OSwzMTk4MCwzMTk4MSwzMTk4MiwzMTk4NCwzMTk4NSwzMTk4NiwzMTk4NywzMTk4OCwzMTk4''@;'; put 'put ''OSwzMTk5MCwzMTk5MSwzMTk5MywzMTk5NCwzMTk5NiwzMTk5NywzMTk5OCwzMTk5OSwzMmUzLDMyMDAxLDMyMDAyLDMyMDAzLDMyMDA0LDMyMDA1LDMyMDA2LDMyMDA3LDMyMDA4LDMyMDA5LDMyMDExLDMyMDEyLDMyMDEzLDMyMDE0LDMyMDE1LDMyMDE2LDMyMDE3LDMyMDE4LDMyMDE5LDMy''@;'; put 'put ''MDIwLDMyMDIxLDMyMDIyLDMyMDIzLDMyMDI0LDMyMDI1LDMyMDI2LDMyMDI3LDMyMDI4LDMyMDI5LDMyMDMwLDMyMDMxLDMyMDMzLDMyMDM1LDMyMDM2LDMyMDM3LDMyMDM4LDMyMDQwLDMyMDQxLDMyMDQyLDMyMDQ0LDMyMDQ1LDMyMDQ2LDMyMDQ4LDMyMDQ5LDMyMDUwLDMyMDUxLDMyMDUy''@;'; put 'put ''LDMyMDUzLDMyMDU0LDMyOTA4LDM5MjY5LDM2ODU3LDI4NjA4LDM1NzQ5LDQwNDgxLDIzMDIwLDMyNDg5LDMyNTIxLDIxNTEzLDI2NDk3LDI2ODQwLDM2NzUzLDMxODIxLDM4NTk4LDIxNDUwLDI0NjEzLDMwMTQyLDI3NzYyLDIxMzYzLDIzMjQxLDMyNDIzLDI1MzgwLDIwOTYwLDMzMDM0LDI0''@;'; put 'put ''MDQ5LDM0MDE1LDI1MjE2LDIwODY0LDIzMzk1LDIwMjM4LDMxMDg1LDIxMDU4LDI0NzYwLDI3OTgyLDIzNDkyLDIzNDkwLDM1NzQ1LDM1NzYwLDI2MDgyLDI0NTI0LDM4NDY5LDIyOTMxLDMyNDg3LDMyNDI2LDIyMDI1LDI2NTUxLDIyODQxLDIwMzM5LDIzNDc4LDIxMTUyLDMzNjI2LDM5MDUw''@;'; put 'put ''LDM2MTU4LDMwMDAyLDM4MDc4LDIwNTUxLDMxMjkyLDIwMjE1LDI2NTUwLDM5NTUwLDIzMjMzLDI3NTE2LDMwNDE3LDIyMzYyLDIzNTc0LDMxNTQ2LDM4Mzg4LDI5MDA2LDIwODYwLDMyOTM3LDMzMzkyLDIyOTA0LDMyNTE2LDMzNTc1LDI2ODE2LDI2NjA0LDMwODk3LDMwODM5LDI1MzE1LDI1''@;'; put 'put ''NDQxLDMxNjE2LDIwNDYxLDIxMDk4LDIwOTQzLDMzNjE2LDI3MDk5LDM3NDkyLDM2MzQxLDM2MTQ1LDM1MjY1LDM4MTkwLDMxNjYxLDIwMjE0LDMyMDU1LDMyMDU2LDMyMDU3LDMyMDU4LDMyMDU5LDMyMDYwLDMyMDYxLDMyMDYyLDMyMDYzLDMyMDY0LDMyMDY1LDMyMDY2LDMyMDY3LDMyMDY4''@;'; put 'put ''LDMyMDY5LDMyMDcwLDMyMDcxLDMyMDcyLDMyMDczLDMyMDc0LDMyMDc1LDMyMDc2LDMyMDc3LDMyMDc4LDMyMDc5LDMyMDgwLDMyMDgxLDMyMDgyLDMyMDgzLDMyMDg0LDMyMDg1LDMyMDg2LDMyMDg3LDMyMDg4LDMyMDg5LDMyMDkwLDMyMDkxLDMyMDkyLDMyMDkzLDMyMDk0LDMyMDk1LDMy''@;'; put 'put ''MDk2LDMyMDk3LDMyMDk4LDMyMDk5LDMyMTAwLDMyMTAxLDMyMTAyLDMyMTAzLDMyMTA0LDMyMTA1LDMyMTA2LDMyMTA3LDMyMTA4LDMyMTA5LDMyMTExLDMyMTEyLDMyMTEzLDMyMTE0LDMyMTE1LDMyMTE2LDMyMTE3LDMyMTE4LDMyMTIwLDMyMTIxLDMyMTIyLDMyMTIzLDMyMTI0LDMyMTI1''@;'; put 'put ''LDMyMTI2LDMyMTI3LDMyMTI4LDMyMTI5LDMyMTMwLDMyMTMxLDMyMTMyLDMyMTMzLDMyMTM0LDMyMTM1LDMyMTM2LDMyMTM3LDMyMTM4LDMyMTM5LDMyMTQwLDMyMTQxLDMyMTQyLDMyMTQzLDMyMTQ0LDMyMTQ1LDMyMTQ2LDMyMTQ3LDMyMTQ4LDMyMTQ5LDMyMTUwLDMyMTUxLDMyMTUyLDIw''@;'; put 'put ''NTgxLDMzMzI4LDIxMDczLDM5Mjc5LDI4MTc2LDI4MjkzLDI4MDcxLDI0MzE0LDIwNzI1LDIzMDA0LDIzNTU4LDI3OTc0LDI3NzQzLDMwMDg2LDMzOTMxLDI2NzI4LDIyODcwLDM1NzYyLDIxMjgwLDM3MjMzLDM4NDc3LDM0MTIxLDI2ODk4LDMwOTc3LDI4OTY2LDMzMDE0LDIwMTMyLDM3MDY2''@;'; put 'put ''LDI3OTc1LDM5NTU2LDIzMDQ3LDIyMjA0LDI1NjA1LDM4MTI4LDMwNjk5LDIwMzg5LDMzMDUwLDI5NDA5LDM1MjgyLDM5MjkwLDMyNTY0LDMyNDc4LDIxMTE5LDI1OTQ1LDM3MjM3LDM2NzM1LDM2NzM5LDIxNDgzLDMxMzgyLDI1NTgxLDI1NTA5LDMwMzQyLDMxMjI0LDM0OTAzLDM4NDU0LDI1''@;'; put 'put ''MTMwLDIxMTYzLDMzNDEwLDI2NzA4LDI2NDgwLDI1NDYzLDMwNTcxLDMxNDY5LDI3OTA1LDMyNDY3LDM1Mjk5LDIyOTkyLDI1MTA2LDM0MjQ5LDMzNDQ1LDMwMDI4LDIwNTExLDIwMTcxLDMwMTE3LDM1ODE5LDIzNjI2LDI0MDYyLDMxNTYzLDI2MDIwLDM3MzI5LDIwMTcwLDI3OTQxLDM1MTY3''@;'; put 'put ''LDMyMDM5LDM4MTgyLDIwMTY1LDM1ODgwLDM2ODI3LDM4NzcxLDI2MTg3LDMxMTA1LDM2ODE3LDI4OTA4LDI4MDI0LDMyMTUzLDMyMTU0LDMyMTU1LDMyMTU2LDMyMTU3LDMyMTU4LDMyMTU5LDMyMTYwLDMyMTYxLDMyMTYyLDMyMTYzLDMyMTY0LDMyMTY1LDMyMTY3LDMyMTY4LDMyMTY5LDMy''@;'; put 'put ''MTcwLDMyMTcxLDMyMTcyLDMyMTczLDMyMTc1LDMyMTc2LDMyMTc3LDMyMTc4LDMyMTc5LDMyMTgwLDMyMTgxLDMyMTgyLDMyMTgzLDMyMTg0LDMyMTg1LDMyMTg2LDMyMTg3LDMyMTg4LDMyMTg5LDMyMTkwLDMyMTkxLDMyMTkyLDMyMTkzLDMyMTk0LDMyMTk1LDMyMTk2LDMyMTk3LDMyMTk4''@;'; put 'put ''LDMyMTk5LDMyMjAwLDMyMjAxLDMyMjAyLDMyMjAzLDMyMjA0LDMyMjA1LDMyMjA2LDMyMjA3LDMyMjA4LDMyMjA5LDMyMjEwLDMyMjExLDMyMjEyLDMyMjEzLDMyMjE0LDMyMjE1LDMyMjE2LDMyMjE3LDMyMjE4LDMyMjE5LDMyMjIwLDMyMjIxLDMyMjIyLDMyMjIzLDMyMjI0LDMyMjI1LDMy''@;'; put 'put ''MjI2LDMyMjI3LDMyMjI4LDMyMjI5LDMyMjMwLDMyMjMxLDMyMjMyLDMyMjMzLDMyMjM0LDMyMjM1LDMyMjM2LDMyMjM3LDMyMjM4LDMyMjM5LDMyMjQwLDMyMjQxLDMyMjQyLDMyMjQzLDMyMjQ0LDMyMjQ1LDMyMjQ2LDMyMjQ3LDMyMjQ4LDMyMjQ5LDMyMjUwLDIzNjEzLDIxMTcwLDMzNjA2''@;'; put 'put ''LDIwODM0LDMzNTUwLDMwNTU1LDI2MjMwLDQwMTIwLDIwMTQwLDI0Nzc4LDMxOTM0LDMxOTIzLDMyNDYzLDIwMTE3LDM1Njg2LDI2MjIzLDM5MDQ4LDM4NzQ1LDIyNjU5LDI1OTY0LDM4MjM2LDI0NDUyLDMwMTUzLDM4NzQyLDMxNDU1LDMxNDU0LDIwOTI4LDI4ODQ3LDMxMzg0LDI1NTc4LDMx''@;'; put 'put ''MzUwLDMyNDE2LDI5NTkwLDM4ODkzLDIwMDM3LDI4NzkyLDIwMDYxLDM3MjAyLDIxNDE3LDI1OTM3LDI2MDg3LDMzMjc2LDMzMjg1LDIxNjQ2LDIzNjAxLDMwMTA2LDM4ODE2LDI1MzA0LDI5NDAxLDMwMTQxLDIzNjIxLDM5NTQ1LDMzNzM4LDIzNjE2LDIxNjMyLDMwNjk3LDIwMDMwLDI3ODIy''@;'; put 'put ''LDMyODU4LDI1Mjk4LDI1NDU0LDI0MDQwLDIwODU1LDM2MzE3LDM2MzgyLDM4MTkxLDIwNDY1LDIxNDc3LDI0ODA3LDI4ODQ0LDIxMDk1LDI1NDI0LDQwNTE1LDIzMDcxLDIwNTE4LDMwNTE5LDIxMzY3LDMyNDgyLDI1NzMzLDI1ODk5LDI1MjI1LDI1NDk2LDIwNTAwLDI5MjM3LDM1MjczLDIw''@;'; put 'put ''OTE1LDM1Nzc2LDMyNDc3LDIyMzQzLDMzNzQwLDM4MDU1LDIwODkxLDIxNTMxLDIzODAzLDMyMjUxLDMyMjUyLDMyMjUzLDMyMjU0LDMyMjU1LDMyMjU2LDMyMjU3LDMyMjU4LDMyMjU5LDMyMjYwLDMyMjYxLDMyMjYyLDMyMjYzLDMyMjY0LDMyMjY1LDMyMjY2LDMyMjY3LDMyMjY4LDMyMjY5''@;'; put 'put ''LDMyMjcwLDMyMjcxLDMyMjcyLDMyMjczLDMyMjc0LDMyMjc1LDMyMjc2LDMyMjc3LDMyMjc4LDMyMjc5LDMyMjgwLDMyMjgxLDMyMjgyLDMyMjgzLDMyMjg0LDMyMjg1LDMyMjg2LDMyMjg3LDMyMjg4LDMyMjg5LDMyMjkwLDMyMjkxLDMyMjkyLDMyMjkzLDMyMjk0LDMyMjk1LDMyMjk2LDMy''@;'; put 'put ''Mjk3LDMyMjk4LDMyMjk5LDMyMzAwLDMyMzAxLDMyMzAyLDMyMzAzLDMyMzA0LDMyMzA1LDMyMzA2LDMyMzA3LDMyMzA4LDMyMzA5LDMyMzEwLDMyMzExLDMyMzEyLDMyMzEzLDMyMzE0LDMyMzE2LDMyMzE3LDMyMzE4LDMyMzE5LDMyMzIwLDMyMzIyLDMyMzIzLDMyMzI0LDMyMzI1LDMyMzI2''@;'; put 'put ''LDMyMzI4LDMyMzI5LDMyMzMwLDMyMzMxLDMyMzMyLDMyMzMzLDMyMzM0LDMyMzM1LDMyMzM2LDMyMzM3LDMyMzM4LDMyMzM5LDMyMzQwLDMyMzQxLDMyMzQyLDMyMzQzLDMyMzQ0LDMyMzQ1LDMyMzQ2LDMyMzQ3LDMyMzQ4LDMyMzQ5LDIwNDI2LDMxNDU5LDI3OTk0LDM3MDg5LDM5NTY3LDIx''@;'; put 'put ''ODg4LDIxNjU0LDIxMzQ1LDIxNjc5LDI0MzIwLDI1NTc3LDI2OTk5LDIwOTc1LDI0OTM2LDIxMDAyLDIyNTcwLDIxMjA4LDIyMzUwLDMwNzMzLDMwNDc1LDI0MjQ3LDI0OTUxLDMxOTY4LDI1MTc5LDI1MjM5LDIwMTMwLDI4ODIxLDMyNzcxLDI1MzM1LDI4OTAwLDM4NzUyLDIyMzkxLDMzNDk5''@;'; put 'put ''LDI2NjA3LDI2ODY5LDMwOTMzLDM5MDYzLDMxMTg1LDIyNzcxLDIxNjgzLDIxNDg3LDI4MjEyLDIwODExLDIxMDUxLDIzNDU4LDM1ODM4LDMyOTQzLDIxODI3LDIyNDM4LDI0NjkxLDIyMzUzLDIxNTQ5LDMxMzU0LDI0NjU2LDIzMzgwLDI1NTExLDI1MjQ4LDIxNDc1LDI1MTg3LDIzNDk1LDI2''@;'; put 'put ''NTQzLDIxNzQxLDMxMzkxLDMzNTEwLDM3MjM5LDI0MjExLDM1MDQ0LDIyODQwLDIyNDQ2LDI1MzU4LDM2MzI4LDMzMDA3LDIyMzU5LDMxNjA3LDIwMzkzLDI0NTU1LDIzNDg1LDI3NDU0LDIxMjgxLDMxNTY4LDI5Mzc4LDI2Njk0LDMwNzE5LDMwNTE4LDI2MTAzLDIwOTE3LDIwMTExLDMwNDIw''@;'; put 'put ''LDIzNzQzLDMxMzk3LDMzOTA5LDIyODYyLDM5NzQ1LDIwNjA4LDMyMzUwLDMyMzUxLDMyMzUyLDMyMzUzLDMyMzU0LDMyMzU1LDMyMzU2LDMyMzU3LDMyMzU4LDMyMzU5LDMyMzYwLDMyMzYxLDMyMzYyLDMyMzYzLDMyMzY0LDMyMzY1LDMyMzY2LDMyMzY3LDMyMzY4LDMyMzY5LDMyMzcwLDMy''@;'; put 'put ''MzcxLDMyMzcyLDMyMzczLDMyMzc0LDMyMzc1LDMyMzc2LDMyMzc3LDMyMzc4LDMyMzc5LDMyMzgwLDMyMzgxLDMyMzgyLDMyMzgzLDMyMzg0LDMyMzg1LDMyMzg3LDMyMzg4LDMyMzg5LDMyMzkwLDMyMzkxLDMyMzkyLDMyMzkzLDMyMzk0LDMyMzk1LDMyMzk2LDMyMzk3LDMyMzk4LDMyMzk5''@;'; put 'put ''LDMyNDAwLDMyNDAxLDMyNDAyLDMyNDAzLDMyNDA0LDMyNDA1LDMyNDA2LDMyNDA3LDMyNDA4LDMyNDA5LDMyNDEwLDMyNDEyLDMyNDEzLDMyNDE0LDMyNDMwLDMyNDM2LDMyNDQzLDMyNDQ0LDMyNDcwLDMyNDg0LDMyNDkyLDMyNTA1LDMyNTIyLDMyNTI4LDMyNTQyLDMyNTY3LDMyNTY5LDMy''@;'; put 'put ''NTcxLDMyNTcyLDMyNTczLDMyNTc0LDMyNTc1LDMyNTc2LDMyNTc3LDMyNTc5LDMyNTgyLDMyNTgzLDMyNTg0LDMyNTg1LDMyNTg2LDMyNTg3LDMyNTg4LDMyNTg5LDMyNTkwLDMyNTkxLDMyNTk0LDMyNTk1LDM5MzA0LDI0ODcxLDI4MjkxLDIyMzcyLDI2MTE4LDI1NDE0LDIyMjU2LDI1MzI0''@;'; put 'put ''LDI1MTkzLDI0Mjc1LDM4NDIwLDIyNDAzLDI1Mjg5LDIxODk1LDM0NTkzLDMzMDk4LDM2NzcxLDIxODYyLDMzNzEzLDI2NDY5LDM2MTgyLDM0MDEzLDIzMTQ2LDI2NjM5LDI1MzE4LDMxNzI2LDM4NDE3LDIwODQ4LDI4NTcyLDM1ODg4LDI1NTk3LDM1MjcyLDI1MDQyLDMyNTE4LDI4ODY2LDI4''@;'; put 'put ''Mzg5LDI5NzAxLDI3MDI4LDI5NDM2LDI0MjY2LDM3MDcwLDI2MzkxLDI4MDEwLDI1NDM4LDIxMTcxLDI5MjgyLDMyNzY5LDIwMzMyLDIzMDEzLDM3MjI2LDI4ODg5LDI4MDYxLDIxMjAyLDIwMDQ4LDM4NjQ3LDM4MjUzLDM0MTc0LDMwOTIyLDMyMDQ3LDIwNzY5LDIyNDE4LDI1Nzk0LDMyOTA3''@;'; put 'put ''LDMxODY3LDI3ODgyLDI2ODY1LDI2OTc0LDIwOTE5LDIxNDAwLDI2NzkyLDI5MzEzLDQwNjU0LDMxNzI5LDI5NDMyLDMxMTYzLDI4NDM1LDI5NzAyLDI2NDQ2LDM3MzI0LDQwMTAwLDMxMDM2LDMzNjczLDMzNjIwLDIxNTE5LDI2NjQ3LDIwMDI5LDIxMzg1LDIxMTY5LDMwNzgyLDIxMzgyLDIx''@;'; put 'put ''MDMzLDIwNjE2LDIwMzYzLDIwNDMyLDMyNTk4LDMyNjAxLDMyNjAzLDMyNjA0LDMyNjA1LDMyNjA2LDMyNjA4LDMyNjExLDMyNjEyLDMyNjEzLDMyNjE0LDMyNjE1LDMyNjE5LDMyNjIwLDMyNjIxLDMyNjIzLDMyNjI0LDMyNjI3LDMyNjI5LDMyNjMwLDMyNjMxLDMyNjMyLDMyNjM0LDMyNjM1''@;'; put 'put ''LDMyNjM2LDMyNjM3LDMyNjM5LDMyNjQwLDMyNjQyLDMyNjQzLDMyNjQ0LDMyNjQ1LDMyNjQ2LDMyNjQ3LDMyNjQ4LDMyNjQ5LDMyNjUxLDMyNjUzLDMyNjU1LDMyNjU2LDMyNjU3LDMyNjU4LDMyNjU5LDMyNjYxLDMyNjYyLDMyNjYzLDMyNjY0LDMyNjY1LDMyNjY3LDMyNjY4LDMyNjcyLDMy''@;'; put 'put ''Njc0LDMyNjc1LDMyNjc3LDMyNjc4LDMyNjgwLDMyNjgxLDMyNjgyLDMyNjgzLDMyNjg0LDMyNjg1LDMyNjg2LDMyNjg5LDMyNjkxLDMyNjkyLDMyNjkzLDMyNjk0LDMyNjk1LDMyNjk4LDMyNjk5LDMyNzAyLDMyNzA0LDMyNzA2LDMyNzA3LDMyNzA4LDMyNzEwLDMyNzExLDMyNzEyLDMyNzEz''@;'; put 'put ''LDMyNzE1LDMyNzE3LDMyNzE5LDMyNzIwLDMyNzIxLDMyNzIyLDMyNzIzLDMyNzI2LDMyNzI3LDMyNzI5LDMyNzMwLDMyNzMxLDMyNzMyLDMyNzMzLDMyNzM0LDMyNzM4LDMyNzM5LDMwMTc4LDMxNDM1LDMxODkwLDI3ODEzLDM4NTgyLDIxMTQ3LDI5ODI3LDIxNzM3LDIwNDU3LDMyODUyLDMz''@;'; put 'put ''NzE0LDM2ODMwLDM4MjU2LDI0MjY1LDI0NjA0LDI4MDYzLDI0MDg4LDI1OTQ3LDMzMDgwLDM4MTQyLDI0NjUxLDI4ODYwLDMyNDUxLDMxOTE4LDIwOTM3LDI2NzUzLDMxOTIxLDMzMzkxLDIwMDA0LDM2NzQyLDM3MzI3LDI2MjM4LDIwMTQyLDM1ODQ1LDI1NzY5LDMyODQyLDIwNjk4LDMwMTAz''@;'; put 'put ''LDI5MTM0LDIzNTI1LDM2Nzk3LDI4NTE4LDIwMTAyLDI1NzMwLDM4MjQzLDI0Mjc4LDI2MDA5LDIxMDE1LDM1MDEwLDI4ODcyLDIxMTU1LDI5NDU0LDI5NzQ3LDI2NTE5LDMwOTY3LDM4Njc4LDIwMDIwLDM3MDUxLDQwMTU4LDI4MTA3LDIwOTU1LDM2MTYxLDIxNTMzLDI1Mjk0LDI5NjE4LDMz''@;'; put 'put ''Nzc3LDM4NjQ2LDQwODM2LDM4MDgzLDIwMjc4LDMyNjY2LDIwOTQwLDI4Nzg5LDM4NTE3LDIzNzI1LDM5MDQ2LDIxNDc4LDIwMTk2LDI4MzE2LDI5NzA1LDI3MDYwLDMwODI3LDM5MzExLDMwMDQxLDIxMDE2LDMwMjQ0LDI3OTY5LDI2NjExLDIwODQ1LDQwODU3LDMyODQzLDIxNjU3LDMxNTQ4''@;'; put 'put ''LDMxNDIzLDMyNzQwLDMyNzQzLDMyNzQ0LDMyNzQ2LDMyNzQ3LDMyNzQ4LDMyNzQ5LDMyNzUxLDMyNzU0LDMyNzU2LDMyNzU3LDMyNzU4LDMyNzU5LDMyNzYwLDMyNzYxLDMyNzYyLDMyNzY1LDMyNzY2LDMyNzY3LDMyNzcwLDMyNzc1LDMyNzc2LDMyNzc3LDMyNzc4LDMyNzgyLDMyNzgzLDMy''@;'; put 'put ''Nzg1LDMyNzg3LDMyNzk0LDMyNzk1LDMyNzk3LDMyNzk4LDMyNzk5LDMyODAxLDMyODAzLDMyODA0LDMyODExLDMyODEyLDMyODEzLDMyODE0LDMyODE1LDMyODE2LDMyODE4LDMyODIwLDMyODI1LDMyODI2LDMyODI4LDMyODMwLDMyODMyLDMyODMzLDMyODM2LDMyODM3LDMyODM5LDMyODQw''@;'; put 'put ''LDMyODQxLDMyODQ2LDMyODQ3LDMyODQ4LDMyODQ5LDMyODUxLDMyODUzLDMyODU0LDMyODU1LDMyODU3LDMyODU5LDMyODYwLDMyODYxLDMyODYyLDMyODYzLDMyODY0LDMyODY1LDMyODY2LDMyODY3LDMyODY4LDMyODY5LDMyODcwLDMyODcxLDMyODcyLDMyODc1LDMyODc2LDMyODc3LDMy''@;'; put 'put ''ODc4LDMyODc5LDMyODgwLDMyODgyLDMyODgzLDMyODg0LDMyODg1LDMyODg2LDMyODg3LDMyODg4LDMyODg5LDMyODkwLDMyODkxLDMyODkyLDMyODkzLDM4NTM0LDIyNDA0LDI1MzE0LDM4NDcxLDI3MDA0LDIzMDQ0LDI1NjAyLDMxNjk5LDI4NDMxLDM4NDc1LDMzNDQ2LDIxMzQ2LDM5MDQ1''@;'; put 'put ''LDI0MjA4LDI4ODA5LDI1NTIzLDIxMzQ4LDM0MzgzLDQwMDY1LDQwNTk1LDMwODYwLDM4NzA2LDM2MzM1LDM2MTYyLDQwNTc1LDI4NTEwLDMxMTA4LDI0NDA1LDM4NDcwLDI1MTM0LDM5NTQwLDIxNTI1LDM4MTA5LDIwMzg3LDI2MDUzLDIzNjUzLDIzNjQ5LDMyNTMzLDM0Mzg1LDI3Njk1LDI0''@;'; put 'put ''NDU5LDI5NTc1LDI4Mzg4LDMyNTExLDIzNzgyLDI1MzcxLDIzNDAyLDI4MzkwLDIxMzY1LDIwMDgxLDI1NTA0LDMwMDUzLDI1MjQ5LDM2NzE4LDIwMjYyLDIwMTc3LDI3ODE0LDMyNDM4LDM1NzcwLDMzODIxLDM0NzQ2LDMyNTk5LDM2OTIzLDM4MTc5LDMxNjU3LDM5NTg1LDM1MDY0LDMzODUz''@;'; put 'put ''LDI3OTMxLDM5NTU4LDMyNDc2LDIyOTIwLDQwNjM1LDI5NTk1LDMwNzIxLDM0NDM0LDM5NTMyLDM5NTU0LDIyMDQzLDIxNTI3LDIyNDc1LDIwMDgwLDQwNjE0LDIxMzM0LDM2ODA4LDMzMDMzLDMwNjEwLDM5MzE0LDM0NTQyLDI4Mzg1LDM0MDY3LDI2MzY0LDI0OTMwLDI4NDU5LDMyODk0LDMy''@;'; put 'put ''ODk3LDMyODk4LDMyOTAxLDMyOTA0LDMyOTA2LDMyOTA5LDMyOTEwLDMyOTExLDMyOTEyLDMyOTEzLDMyOTE0LDMyOTE2LDMyOTE3LDMyOTE5LDMyOTIxLDMyOTI2LDMyOTMxLDMyOTM0LDMyOTM1LDMyOTM2LDMyOTQwLDMyOTQ0LDMyOTQ3LDMyOTQ5LDMyOTUwLDMyOTUyLDMyOTUzLDMyOTU1''@;'; put 'put ''LDMyOTY1LDMyOTY3LDMyOTY4LDMyOTY5LDMyOTcwLDMyOTcxLDMyOTc1LDMyOTc2LDMyOTc3LDMyOTc4LDMyOTc5LDMyOTgwLDMyOTgxLDMyOTg0LDMyOTkxLDMyOTkyLDMyOTk0LDMyOTk1LDMyOTk4LDMzMDA2LDMzMDEzLDMzMDE1LDMzMDE3LDMzMDE5LDMzMDIyLDMzMDIzLDMzMDI0LDMz''@;'; put 'put ''MDI1LDMzMDI3LDMzMDI4LDMzMDI5LDMzMDMxLDMzMDMyLDMzMDM1LDMzMDM2LDMzMDQ1LDMzMDQ3LDMzMDQ5LDMzMDUxLDMzMDUyLDMzMDUzLDMzMDU1LDMzMDU2LDMzMDU3LDMzMDU4LDMzMDU5LDMzMDYwLDMzMDYxLDMzMDYyLDMzMDYzLDMzMDY0LDMzMDY1LDMzMDY2LDMzMDY3LDMzMDY5''@;'; put 'put ''LDMzMDcwLDMzMDcyLDMzMDc1LDMzMDc2LDMzMDc3LDMzMDc5LDMzMDgxLDMzMDgyLDMzMDgzLDMzMDg0LDMzMDg1LDMzMDg3LDM1ODgxLDMzNDI2LDMzNTc5LDMwNDUwLDI3NjY3LDI0NTM3LDMzNzI1LDI5NDgzLDMzNTQxLDM4MTcwLDI3NjExLDMwNjgzLDM4MDg2LDIxMzU5LDMzNTM4LDIw''@;'; put 'put ''ODgyLDI0MTI1LDM1OTgwLDM2MTUyLDIwMDQwLDI5NjExLDI2NTIyLDI2NzU3LDM3MjM4LDM4NjY1LDI5MDI4LDI3ODA5LDMwNDczLDIzMTg2LDM4MjA5LDI3NTk5LDMyNjU0LDI2MTUxLDIzNTA0LDIyOTY5LDIzMTk0LDM4Mzc2LDM4MzkxLDIwMjA0LDMzODA0LDMzOTQ1LDI3MzA4LDMwNDMx''@;'; put 'put ''LDM4MTkyLDI5NDY3LDI2NzkwLDIzMzkxLDMwNTExLDM3Mjc0LDM4NzUzLDMxOTY0LDM2ODU1LDM1ODY4LDI0MzU3LDMxODU5LDMxMTkyLDM1MjY5LDI3ODUyLDM0NTg4LDIzNDk0LDI0MTMwLDI2ODI1LDMwNDk2LDMyNTAxLDIwODg1LDIwODEzLDIxMTkzLDIzMDgxLDMyNTE3LDM4NzU0LDMz''@;'; put 'put ''NDk1LDI1NTUxLDMwNTk2LDM0MjU2LDMxMTg2LDI4MjE4LDI0MjE3LDIyOTM3LDM0MDY1LDI4NzgxLDI3NjY1LDI1Mjc5LDMwMzk5LDI1OTM1LDI0NzUxLDM4Mzk3LDI2MTI2LDM0NzE5LDQwNDgzLDM4MTI1LDIxNTE3LDIxNjI5LDM1ODg0LDI1NzIwLDMzMDg4LDMzMDg5LDMzMDkwLDMzMDkx''@;'; put 'put ''LDMzMDkyLDMzMDkzLDMzMDk1LDMzMDk3LDMzMTAxLDMzMTAyLDMzMTAzLDMzMTA2LDMzMTEwLDMzMTExLDMzMTEyLDMzMTE1LDMzMTE2LDMzMTE3LDMzMTE4LDMzMTE5LDMzMTIxLDMzMTIyLDMzMTIzLDMzMTI0LDMzMTI2LDMzMTI4LDMzMTMwLDMzMTMxLDMzMTMyLDMzMTM1LDMzMTM4LDMz''@;'; put 'put ''MTM5LDMzMTQxLDMzMTQyLDMzMTQzLDMzMTQ0LDMzMTUzLDMzMTU1LDMzMTU2LDMzMTU3LDMzMTU4LDMzMTU5LDMzMTYxLDMzMTYzLDMzMTY0LDMzMTY1LDMzMTY2LDMzMTY4LDMzMTcwLDMzMTcxLDMzMTcyLDMzMTczLDMzMTc0LDMzMTc1LDMzMTc3LDMzMTc4LDMzMTgyLDMzMTgzLDMzMTg0''@;'; put 'put ''LDMzMTg1LDMzMTg2LDMzMTg4LDMzMTg5LDMzMTkxLDMzMTkzLDMzMTk1LDMzMTk2LDMzMTk3LDMzMTk4LDMzMTk5LDMzMjAwLDMzMjAxLDMzMjAyLDMzMjA0LDMzMjA1LDMzMjA2LDMzMjA3LDMzMjA4LDMzMjA5LDMzMjEyLDMzMjEzLDMzMjE0LDMzMjE1LDMzMjIwLDMzMjIxLDMzMjIzLDMz''@;'; put 'put ''MjI0LDMzMjI1LDMzMjI3LDMzMjI5LDMzMjMwLDMzMjMxLDMzMjMyLDMzMjMzLDMzMjM0LDMzMjM1LDI1NzIxLDM0MzIxLDI3MTY5LDMzMTgwLDMwOTUyLDI1NzA1LDM5NzY0LDI1MjczLDI2NDExLDMzNzA3LDIyNjk2LDQwNjY0LDI3ODE5LDI4NDQ4LDIzNTE4LDM4NDc2LDM1ODUxLDI5Mjc5''@;'; put 'put ''LDI2NTc2LDI1Mjg3LDI5MjgxLDIwMTM3LDIyOTgyLDI3NTk3LDIyNjc1LDI2Mjg2LDI0MTQ5LDIxMjE1LDI0OTE3LDI2NDA4LDMwNDQ2LDMwNTY2LDI5Mjg3LDMxMzAyLDI1MzQzLDIxNzM4LDIxNTg0LDM4MDQ4LDM3MDI3LDIzMDY4LDMyNDM1LDI3NjcwLDIwMDM1LDIyOTAyLDMyNzg0LDIy''@;'; put 'put ''ODU2LDIxMzM1LDMwMDA3LDM4NTkwLDIyMjE4LDI1Mzc2LDMzMDQxLDI0NzAwLDM4MzkzLDI4MTE4LDIxNjAyLDM5Mjk3LDIwODY5LDIzMjczLDMzMDIxLDIyOTU4LDM4Njc1LDIwNTIyLDI3ODc3LDIzNjEyLDI1MzExLDIwMzIwLDIxMzExLDMzMTQ3LDM2ODcwLDI4MzQ2LDM0MDkxLDI1Mjg4''@;'; put 'put ''LDI0MTgwLDMwOTEwLDI1NzgxLDI1NDY3LDI0NTY1LDIzMDY0LDM3MjQ3LDQwNDc5LDIzNjE1LDI1NDIzLDMyODM0LDIzNDIxLDIxODcwLDM4MjE4LDM4MjIxLDI4MDM3LDI0NzQ0LDI2NTkyLDI5NDA2LDIwOTU3LDIzNDI1LDMzMjM2LDMzMjM3LDMzMjM4LDMzMjM5LDMzMjQwLDMzMjQxLDMz''@;'; put 'put ''MjQyLDMzMjQzLDMzMjQ0LDMzMjQ1LDMzMjQ2LDMzMjQ3LDMzMjQ4LDMzMjQ5LDMzMjUwLDMzMjUyLDMzMjUzLDMzMjU0LDMzMjU2LDMzMjU3LDMzMjU5LDMzMjYyLDMzMjYzLDMzMjY0LDMzMjY1LDMzMjY2LDMzMjY5LDMzMjcwLDMzMjcxLDMzMjcyLDMzMjczLDMzMjc0LDMzMjc3LDMzMjc5''@;'; put 'put ''LDMzMjgzLDMzMjg3LDMzMjg4LDMzMjg5LDMzMjkwLDMzMjkxLDMzMjk0LDMzMjk1LDMzMjk3LDMzMjk5LDMzMzAxLDMzMzAyLDMzMzAzLDMzMzA0LDMzMzA1LDMzMzA2LDMzMzA5LDMzMzEyLDMzMzE2LDMzMzE3LDMzMzE4LDMzMzE5LDMzMzIxLDMzMzI2LDMzMzMwLDMzMzM4LDMzMzQwLDMz''@;'; put 'put ''MzQxLDMzMzQzLDMzMzQ0LDMzMzQ1LDMzMzQ2LDMzMzQ3LDMzMzQ5LDMzMzUwLDMzMzUyLDMzMzU0LDMzMzU2LDMzMzU3LDMzMzU4LDMzMzYwLDMzMzYxLDMzMzYyLDMzMzYzLDMzMzY0LDMzMzY1LDMzMzY2LDMzMzY3LDMzMzY5LDMzMzcxLDMzMzcyLDMzMzczLDMzMzc0LDMzMzc2LDMzMzc3''@;'; put 'put ''LDMzMzc4LDMzMzc5LDMzMzgwLDMzMzgxLDMzMzgyLDMzMzgzLDMzMzg1LDI1MzE5LDI3ODcwLDI5Mjc1LDI1MTk3LDM4MDYyLDMyNDQ1LDMzMDQzLDI3OTg3LDIwODkyLDI0MzI0LDIyOTAwLDIxMTYyLDI0NTk0LDIyODk5LDI2MjYyLDM0Mzg0LDMwMTExLDI1Mzg2LDI1MDYyLDMxOTgzLDM1''@;'; put 'put ''ODM0LDIxNzM0LDI3NDMxLDQwNDg1LDI3NTcyLDM0MjYxLDIxNTg5LDIwNTk4LDI3ODEyLDIxODY2LDM2Mjc2LDI5MjI4LDI0MDg1LDI0NTk3LDI5NzUwLDI1MjkzLDI1NDkwLDI5MjYwLDI0NDcyLDI4MjI3LDI3OTY2LDI1ODU2LDI4NTA0LDMwNDI0LDMwOTI4LDMwNDYwLDMwMDM2LDIxMDI4''@;'; put 'put ''LDIxNDY3LDIwMDUxLDI0MjIyLDI2MDQ5LDMyODEwLDMyOTgyLDI1MjQzLDIxNjM4LDIxMDMyLDI4ODQ2LDM0OTU3LDM2MzA1LDI3ODczLDIxNjI0LDMyOTg2LDIyNTIxLDM1MDYwLDM2MTgwLDM4NTA2LDM3MTk3LDIwMzI5LDI3ODAzLDIxOTQzLDMwNDA2LDMwNzY4LDI1MjU2LDI4OTIxLDI4''@;'; put 'put ''NTU4LDI0NDI5LDM0MDI4LDI2ODQyLDMwODQ0LDMxNzM1LDMzMTkyLDI2Mzc5LDQwNTI3LDI1NDQ3LDMwODk2LDIyMzgzLDMwNzM4LDM4NzEzLDI1MjA5LDI1MjU5LDIxMTI4LDI5NzQ5LDI3NjA3LDMzMzg2LDMzMzg3LDMzMzg4LDMzMzg5LDMzMzkzLDMzMzk3LDMzMzk4LDMzMzk5LDMzNDAw''@;'; put 'put ''LDMzNDAzLDMzNDA0LDMzNDA4LDMzNDA5LDMzNDExLDMzNDEzLDMzNDE0LDMzNDE1LDMzNDE3LDMzNDIwLDMzNDI0LDMzNDI3LDMzNDI4LDMzNDI5LDMzNDMwLDMzNDM0LDMzNDM1LDMzNDM4LDMzNDQwLDMzNDQyLDMzNDQzLDMzNDQ3LDMzNDU4LDMzNDYxLDMzNDYyLDMzNDY2LDMzNDY3LDMz''@;'; put 'put ''NDY4LDMzNDcxLDMzNDcyLDMzNDc0LDMzNDc1LDMzNDc3LDMzNDc4LDMzNDgxLDMzNDg4LDMzNDk0LDMzNDk3LDMzNDk4LDMzNTAxLDMzNTA2LDMzNTExLDMzNTEyLDMzNTEzLDMzNTE0LDMzNTE2LDMzNTE3LDMzNTE4LDMzNTIwLDMzNTIyLDMzNTIzLDMzNTI1LDMzNTI2LDMzNTI4LDMzNTMw''@;'; put 'put ''LDMzNTMyLDMzNTMzLDMzNTM0LDMzNTM1LDMzNTM2LDMzNTQ2LDMzNTQ3LDMzNTQ5LDMzNTUyLDMzNTU0LDMzNTU1LDMzNTU4LDMzNTYwLDMzNTYxLDMzNTY1LDMzNTY2LDMzNTY3LDMzNTY4LDMzNTY5LDMzNTcwLDMzNTcxLDMzNTcyLDMzNTczLDMzNTc0LDMzNTc3LDMzNTc4LDMzNTgyLDMz''@;'; put 'put ''NTg0LDMzNTg2LDMzNTkxLDMzNTk1LDMzNTk3LDIxODYwLDMzMDg2LDMwMTMwLDMwMzgyLDIxMzA1LDMwMTc0LDIwNzMxLDIzNjE3LDM1NjkyLDMxNjg3LDIwNTU5LDI5MjU1LDM5NTc1LDM5MTI4LDI4NDE4LDI5OTIyLDMxMDgwLDI1NzM1LDMwNjI5LDI1MzQwLDM5MDU3LDM2MTM5LDIxNjk3''@;'; put 'put ''LDMyODU2LDIwMDUwLDIyMzc4LDMzNTI5LDMzODA1LDI0MTc5LDIwOTczLDI5OTQyLDM1NzgwLDIzNjMxLDIyMzY5LDI3OTAwLDM5MDQ3LDIzMTEwLDMwNzcyLDM5NzQ4LDM2ODQzLDMxODkzLDIxMDc4LDI1MTY5LDM4MTM4LDIwMTY2LDMzNjcwLDMzODg5LDMzNzY5LDMzOTcwLDIyNDg0LDI2''@;'; put 'put ''NDIwLDIyMjc1LDI2MjIyLDI4MDA2LDM1ODg5LDI2MzMzLDI4Njg5LDI2Mzk5LDI3NDUwLDI2NjQ2LDI1MTE0LDIyOTcxLDE5OTcxLDIwOTMyLDI4NDIyLDI2NTc4LDI3NzkxLDIwODU0LDI2ODI3LDIyODU1LDI3NDk1LDMwMDU0LDIzODIyLDMzMDQwLDQwNzg0LDI2MDcxLDMxMDQ4LDMxMDQx''@;'; put 'put ''LDM5NTY5LDM2MjE1LDIzNjgyLDIwMDYyLDIwMjI1LDIxNTUxLDIyODY1LDMwNzMyLDIyMTIwLDI3NjY4LDM2ODA0LDI0MzIzLDI3NzczLDI3ODc1LDM1NzU1LDI1NDg4LDMzNTk4LDMzNTk5LDMzNjAxLDMzNjAyLDMzNjA0LDMzNjA1LDMzNjA4LDMzNjEwLDMzNjExLDMzNjEyLDMzNjEzLDMz''@;'; put 'put ''NjE0LDMzNjE5LDMzNjIxLDMzNjIyLDMzNjIzLDMzNjI0LDMzNjI1LDMzNjI5LDMzNjM0LDMzNjQ4LDMzNjQ5LDMzNjUwLDMzNjUxLDMzNjUyLDMzNjUzLDMzNjU0LDMzNjU3LDMzNjU4LDMzNjYyLDMzNjYzLDMzNjY0LDMzNjY1LDMzNjY2LDMzNjY3LDMzNjY4LDMzNjcxLDMzNjcyLDMzNjc0''@;'; put 'put ''LDMzNjc1LDMzNjc2LDMzNjc3LDMzNjc5LDMzNjgwLDMzNjgxLDMzNjg0LDMzNjg1LDMzNjg2LDMzNjg3LDMzNjg5LDMzNjkwLDMzNjkzLDMzNjk1LDMzNjk3LDMzNjk4LDMzNjk5LDMzNzAwLDMzNzAxLDMzNzAyLDMzNzAzLDMzNzA4LDMzNzA5LDMzNzEwLDMzNzExLDMzNzE3LDMzNzIzLDMz''@;'; put 'put ''NzI2LDMzNzI3LDMzNzMwLDMzNzMxLDMzNzMyLDMzNzM0LDMzNzM2LDMzNzM3LDMzNzM5LDMzNzQxLDMzNzQyLDMzNzQ0LDMzNzQ1LDMzNzQ2LDMzNzQ3LDMzNzQ5LDMzNzUxLDMzNzUzLDMzNzU0LDMzNzU1LDMzNzU4LDMzNzYyLDMzNzYzLDMzNzY0LDMzNzY2LDMzNzY3LDMzNzY4LDMzNzcx''@;'; put 'put ''LDMzNzcyLDMzNzczLDI0Njg4LDI3OTY1LDI5MzAxLDI1MTkwLDM4MDMwLDM4MDg1LDIxMzE1LDM2ODAxLDMxNjE0LDIwMTkxLDM1ODc4LDIwMDk0LDQwNjYwLDM4MDY1LDM4MDY3LDIxMDY5LDI4NTA4LDM2OTYzLDI3OTczLDM1ODkyLDIyNTQ1LDIzODg0LDI3NDI0LDI3NDY1LDI2NTM4LDIx''@;'; put 'put ''NTk1LDMzMTA4LDMyNjUyLDIyNjgxLDM0MTAzLDI0Mzc4LDI1MjUwLDI3MjA3LDM4MjAxLDI1OTcwLDI0NzA4LDI2NzI1LDMwNjMxLDIwMDUyLDIwMzkyLDI0MDM5LDM4ODA4LDI1NzcyLDMyNzI4LDIzNzg5LDIwNDMxLDMxMzczLDIwOTk5LDMzNTQwLDE5OTg4LDI0NjIzLDMxMzYzLDM4MDU0''@;'; put 'put ''LDIwNDA1LDIwMTQ2LDMxMjA2LDI5NzQ4LDIxMjIwLDMzNDY1LDI1ODEwLDMxMTY1LDIzNTE3LDI3Nzc3LDM4NzM4LDM2NzMxLDI3NjgyLDIwNTQyLDIxMzc1LDI4MTY1LDI1ODA2LDI2MjI4LDI3Njk2LDI0NzczLDM5MDMxLDM1ODMxLDI0MTk4LDI5NzU2LDMxMzUxLDMxMTc5LDE5OTkyLDM3''@;'; put 'put ''MDQxLDI5Njk5LDI3NzE0LDIyMjM0LDM3MTk1LDI3ODQ1LDM2MjM1LDIxMzA2LDM0NTAyLDI2MzU0LDM2NTI3LDIzNjI0LDM5NTM3LDI4MTkyLDMzNzc0LDMzNzc1LDMzNzc5LDMzNzgwLDMzNzgxLDMzNzgyLDMzNzgzLDMzNzg2LDMzNzg3LDMzNzg4LDMzNzkwLDMzNzkxLDMzNzkyLDMzNzk0''@;'; put 'put ''LDMzNzk3LDMzNzk5LDMzODAwLDMzODAxLDMzODAyLDMzODA4LDMzODEwLDMzODExLDMzODEyLDMzODEzLDMzODE0LDMzODE1LDMzODE3LDMzODE4LDMzODE5LDMzODIyLDMzODIzLDMzODI0LDMzODI1LDMzODI2LDMzODI3LDMzODMzLDMzODM0LDMzODM1LDMzODM2LDMzODM3LDMzODM4LDMz''@;'; put 'put ''ODM5LDMzODQwLDMzODQyLDMzODQzLDMzODQ0LDMzODQ1LDMzODQ2LDMzODQ3LDMzODQ5LDMzODUwLDMzODUxLDMzODU0LDMzODU1LDMzODU2LDMzODU3LDMzODU4LDMzODU5LDMzODYwLDMzODYxLDMzODYzLDMzODY0LDMzODY1LDMzODY2LDMzODY3LDMzODY4LDMzODY5LDMzODcwLDMzODcx''@;'; put 'put ''LDMzODcyLDMzODc0LDMzODc1LDMzODc2LDMzODc3LDMzODc4LDMzODgwLDMzODg1LDMzODg2LDMzODg3LDMzODg4LDMzODkwLDMzODkyLDMzODkzLDMzODk0LDMzODk1LDMzODk2LDMzODk4LDMzOTAyLDMzOTAzLDMzOTA0LDMzOTA2LDMzOTA4LDMzOTExLDMzOTEzLDMzOTE1LDMzOTE2LDIx''@;'; put 'put ''NDYyLDIzMDk0LDQwODQzLDM2MjU5LDIxNDM1LDIyMjgwLDM5MDc5LDI2NDM1LDM3Mjc1LDI3ODQ5LDIwODQwLDMwMTU0LDI1MzMxLDI5MzU2LDIxMDQ4LDIxMTQ5LDMyNTcwLDI4ODIwLDMwMjY0LDIxMzY0LDQwNTIyLDI3MDYzLDMwODMwLDM4NTkyLDM1MDMzLDMyNjc2LDI4OTgyLDI5MTIz''@;'; put 'put ''LDIwODczLDI2NTc5LDI5OTI0LDIyNzU2LDI1ODgwLDIyMTk5LDM1NzUzLDM5Mjg2LDI1MjAwLDMyNDY5LDI0ODI1LDI4OTA5LDIyNzY0LDIwMTYxLDIwMTU0LDI0NTI1LDM4ODg3LDIwMjE5LDM1NzQ4LDIwOTk1LDIyOTIyLDMyNDI3LDI1MTcyLDIwMTczLDI2MDg1LDI1MTAyLDMzNTkyLDMz''@;'; put 'put ''OTkzLDMzNjM1LDM0NzAxLDI5MDc2LDI4MzQyLDIzNDgxLDMyNDY2LDIwODg3LDI1NTQ1LDI2NTgwLDMyOTA1LDMzNTkzLDM0ODM3LDIwNzU0LDIzNDE4LDIyOTE0LDM2Nzg1LDIwMDgzLDI3NzQxLDIwODM3LDM1MTA5LDM2NzE5LDM4NDQ2LDM0MTIyLDI5NzkwLDM4MTYwLDM4Mzg0LDI4MDcw''@;'; put 'put ''LDMzNTA5LDI0MzY5LDI1NzQ2LDI3OTIyLDMzODMyLDMzMTM0LDQwMTMxLDIyNjIyLDM2MTg3LDE5OTc3LDIxNDQxLDMzOTE3LDMzOTE4LDMzOTE5LDMzOTIwLDMzOTIxLDMzOTIzLDMzOTI0LDMzOTI1LDMzOTI2LDMzOTMwLDMzOTMzLDMzOTM1LDMzOTM2LDMzOTM3LDMzOTM4LDMzOTM5LDMz''@;'; put 'put ''OTQwLDMzOTQxLDMzOTQyLDMzOTQ0LDMzOTQ2LDMzOTQ3LDMzOTQ5LDMzOTUwLDMzOTUxLDMzOTUyLDMzOTU0LDMzOTU1LDMzOTU2LDMzOTU3LDMzOTU4LDMzOTU5LDMzOTYwLDMzOTYxLDMzOTYyLDMzOTYzLDMzOTY0LDMzOTY1LDMzOTY2LDMzOTY4LDMzOTY5LDMzOTcxLDMzOTczLDMzOTc0''@;'; put 'put ''LDMzOTc1LDMzOTc5LDMzOTgwLDMzOTgyLDMzOTg0LDMzOTg2LDMzOTg3LDMzOTg5LDMzOTkwLDMzOTkxLDMzOTkyLDMzOTk1LDMzOTk2LDMzOTk4LDMzOTk5LDM0MDAyLDM0MDA0LDM0MDA1LDM0MDA3LDM0MDA4LDM0MDA5LDM0MDEwLDM0MDExLDM0MDEyLDM0MDE0LDM0MDE3LDM0MDE4LDM0''@;'; put 'put ''MDIwLDM0MDIzLDM0MDI0LDM0MDI1LDM0MDI2LDM0MDI3LDM0MDI5LDM0MDMwLDM0MDMxLDM0MDMzLDM0MDM0LDM0MDM1LDM0MDM2LDM0MDM3LDM0MDM4LDM0MDM5LDM0MDQwLDM0MDQxLDM0MDQyLDM0MDQzLDM0MDQ1LDM0MDQ2LDM0MDQ4LDM0MDQ5LDM0MDUwLDIwMjU0LDI1OTU1LDI2NzA1''@;'; put 'put ''LDIxOTcxLDIwMDA3LDI1NjIwLDM5NTc4LDI1MTk1LDIzMjM0LDI5NzkxLDMzMzk0LDI4MDczLDI2ODYyLDIwNzExLDMzNjc4LDMwNzIyLDI2NDMyLDIxMDQ5LDI3ODAxLDMyNDMzLDIwNjY3LDIxODYxLDI5MDIyLDMxNTc5LDI2MTk0LDI5NjQyLDMzNTE1LDI2NDQxLDIzNjY1LDIxMDI0LDI5''@;'; put 'put ''MDUzLDM0OTIzLDM4Mzc4LDM4NDg1LDI1Nzk3LDM2MTkzLDMzMjAzLDIxODkyLDI3NzMzLDI1MTU5LDMyNTU4LDIyNjc0LDIwMjYwLDIxODMwLDM2MTc1LDI2MTg4LDE5OTc4LDIzNTc4LDM1MDU5LDI2Nzg2LDI1NDIyLDMxMjQ1LDI4OTAzLDMzNDIxLDIxMjQyLDM4OTAyLDIzNTY5LDIxNzM2''@;'; put 'put ''LDM3MDQ1LDMyNDYxLDIyODgyLDM2MTcwLDM0NTAzLDMzMjkyLDMzMjkzLDM2MTk4LDI1NjY4LDIzNTU2LDI0OTEzLDI4MDQxLDMxMDM4LDM1Nzc0LDMwNzc1LDMwMDAzLDIxNjI3LDIwMjgwLDM2NTIzLDI4MTQ1LDIzMDcyLDMyNDUzLDMxMDcwLDI3Nzg0LDIzNDU3LDIzMTU4LDI5OTc4LDMy''@;'; put 'put ''OTU4LDI0OTEwLDI4MTgzLDIyNzY4LDI5OTgzLDI5OTg5LDI5Mjk4LDIxMzE5LDMyNDk5LDM0MDUxLDM0MDUyLDM0MDUzLDM0MDU0LDM0MDU1LDM0MDU2LDM0MDU3LDM0MDU4LDM0MDU5LDM0MDYxLDM0MDYyLDM0MDYzLDM0MDY0LDM0MDY2LDM0MDY4LDM0MDY5LDM0MDcwLDM0MDcyLDM0MDcz''@;'; put 'put ''LDM0MDc1LDM0MDc2LDM0MDc3LDM0MDc4LDM0MDgwLDM0MDgyLDM0MDgzLDM0MDg0LDM0MDg1LDM0MDg2LDM0MDg3LDM0MDg4LDM0MDg5LDM0MDkwLDM0MDkzLDM0MDk0LDM0MDk1LDM0MDk2LDM0MDk3LDM0MDk4LDM0MDk5LDM0MTAwLDM0MTAxLDM0MTAyLDM0MTEwLDM0MTExLDM0MTEyLDM0''@;'; put 'put ''MTEzLDM0MTE0LDM0MTE2LDM0MTE3LDM0MTE4LDM0MTE5LDM0MTIzLDM0MTI0LDM0MTI1LDM0MTI2LDM0MTI3LDM0MTI4LDM0MTI5LDM0MTMwLDM0MTMxLDM0MTMyLDM0MTMzLDM0MTM1LDM0MTM2LDM0MTM4LDM0MTM5LDM0MTQwLDM0MTQxLDM0MTQzLDM0MTQ0LDM0MTQ1LDM0MTQ2LDM0MTQ3''@;'; put 'put ''LDM0MTQ5LDM0MTUwLDM0MTUxLDM0MTUzLDM0MTU0LDM0MTU1LDM0MTU2LDM0MTU3LDM0MTU4LDM0MTU5LDM0MTYwLDM0MTYxLDM0MTYzLDM0MTY1LDM0MTY2LDM0MTY3LDM0MTY4LDM0MTcyLDM0MTczLDM0MTc1LDM0MTc2LDM0MTc3LDMwNDY1LDMwNDI3LDIxMDk3LDMyOTg4LDIyMzA3LDI0''@;'; put 'put ''MDcyLDIyODMzLDI5NDIyLDI2MDQ1LDI4Mjg3LDM1Nzk5LDIzNjA4LDM0NDE3LDIxMzEzLDMwNzA3LDI1MzQyLDI2MTAyLDIwMTYwLDM5MTM1LDM0NDMyLDIzNDU0LDM1NzgyLDIxNDkwLDMwNjkwLDIwMzUxLDIzNjMwLDM5NTQyLDIyOTg3LDI0MzM1LDMxMDM0LDIyNzYzLDE5OTkwLDI2NjIz''@;'; put 'put ''LDIwMTA3LDI1MzI1LDM1NDc1LDM2ODkzLDIxMTgzLDI2MTU5LDIxOTgwLDIyMTI0LDM2ODY2LDIwMTgxLDIwMzY1LDM3MzIyLDM5MjgwLDI3NjYzLDI0MDY2LDI0NjQzLDIzNDYwLDM1MjcwLDM1Nzk3LDI1OTEwLDI1MTYzLDM5MzE4LDIzNDMyLDIzNTUxLDI1NDgwLDIxODA2LDIxNDYzLDMw''@;'; put 'put ''MjQ2LDIwODYxLDM0MDkyLDI2NTMwLDI2ODAzLDI3NTMwLDI1MjM0LDM2NzU1LDIxNDYwLDMzMjk4LDI4MTEzLDMwMDk1LDIwMDcwLDM2MTc0LDIzNDA4LDI5MDg3LDM0MjIzLDI2MjU3LDI2MzI5LDMyNjI2LDM0NTYwLDQwNjUzLDQwNzM2LDIzNjQ2LDI2NDE1LDM2ODQ4LDI2NjQxLDI2NDYz''@;'; put 'put ''LDI1MTAxLDMxNDQ2LDIyNjYxLDI0MjQ2LDI1OTY4LDI4NDY1LDM0MTc4LDM0MTc5LDM0MTgyLDM0MTg0LDM0MTg1LDM0MTg2LDM0MTg3LDM0MTg4LDM0MTg5LDM0MTkwLDM0MTkyLDM0MTkzLDM0MTk0LDM0MTk1LDM0MTk2LDM0MTk3LDM0MTk4LDM0MTk5LDM0MjAwLDM0MjAxLDM0MjAyLDM0''@;'; put 'put ''MjA1LDM0MjA2LDM0MjA3LDM0MjA4LDM0MjA5LDM0MjEwLDM0MjExLDM0MjEzLDM0MjE0LDM0MjE1LDM0MjE3LDM0MjE5LDM0MjIwLDM0MjIxLDM0MjI1LDM0MjI2LDM0MjI3LDM0MjI4LDM0MjI5LDM0MjMwLDM0MjMyLDM0MjM0LDM0MjM1LDM0MjM2LDM0MjM3LDM0MjM4LDM0MjM5LDM0MjQw''@;'; put 'put ''LDM0MjQyLDM0MjQzLDM0MjQ0LDM0MjQ1LDM0MjQ2LDM0MjQ3LDM0MjQ4LDM0MjUwLDM0MjUxLDM0MjUyLDM0MjUzLDM0MjU0LDM0MjU3LDM0MjU4LDM0MjYwLDM0MjYyLDM0MjYzLDM0MjY0LDM0MjY1LDM0MjY2LDM0MjY3LDM0MjY5LDM0MjcwLDM0MjcxLDM0MjcyLDM0MjczLDM0Mjc0LDM0''@;'; put 'put ''Mjc1LDM0Mjc3LDM0Mjc4LDM0Mjc5LDM0MjgwLDM0MjgyLDM0MjgzLDM0Mjg0LDM0Mjg1LDM0Mjg2LDM0Mjg3LDM0Mjg4LDM0Mjg5LDM0MjkwLDM0MjkxLDM0MjkyLDM0MjkzLDM0Mjk0LDM0Mjk1LDM0Mjk2LDI0NjYxLDIxMDQ3LDMyNzgxLDI1Njg0LDM0OTI4LDI5OTkzLDI0MDY5LDI2NjQz''@;'; put 'put ''LDI1MzMyLDM4Njg0LDIxNDUyLDI5MjQ1LDM1ODQxLDI3NzAwLDMwNTYxLDMxMjQ2LDIxNTUwLDMwNjM2LDM5MDM0LDMzMzA4LDM1ODI4LDMwODA1LDI2Mzg4LDI4ODY1LDI2MDMxLDI1NzQ5LDIyMDcwLDI0NjA1LDMxMTY5LDIxNDk2LDE5OTk3LDI3NTE1LDMyOTAyLDIzNTQ2LDIxOTg3LDIy''@;'; put 'put ''MjM1LDIwMjgyLDIwMjg0LDM5MjgyLDI0MDUxLDI2NDk0LDMyODI0LDI0NTc4LDM5MDQyLDM2ODY1LDIzNDM1LDM1NzcyLDM1ODI5LDI1NjI4LDMzMzY4LDI1ODIyLDIyMDEzLDMzNDg3LDM3MjIxLDIwNDM5LDMyMDMyLDM2ODk1LDMxOTAzLDIwNzIzLDIyNjA5LDI4MzM1LDIzNDg3LDM1Nzg1''@;'; put 'put ''LDMyODk5LDM3MjQwLDMzOTQ4LDMxNjM5LDM0NDI5LDM4NTM5LDM4NTQzLDMyNDg1LDM5NjM1LDMwODYyLDIzNjgxLDMxMzE5LDM2OTMwLDM4NTY3LDMxMDcxLDIzMzg1LDI1NDM5LDMxNDk5LDM0MDAxLDI2Nzk3LDIxNzY2LDMyNTUzLDI5NzEyLDMyMDM0LDM4MTQ1LDI1MTUyLDIyNjA0LDIw''@;'; put 'put ''MTgyLDIzNDI3LDIyOTA1LDIyNjEyLDM0Mjk3LDM0Mjk4LDM0MzAwLDM0MzAxLDM0MzAyLDM0MzA0LDM0MzA1LDM0MzA2LDM0MzA3LDM0MzA4LDM0MzEwLDM0MzExLDM0MzEyLDM0MzEzLDM0MzE0LDM0MzE1LDM0MzE2LDM0MzE3LDM0MzE4LDM0MzE5LDM0MzIwLDM0MzIyLDM0MzIzLDM0MzI0''@;'; put 'put ''LDM0MzI1LDM0MzI3LDM0MzI4LDM0MzI5LDM0MzMwLDM0MzMxLDM0MzMyLDM0MzMzLDM0MzM0LDM0MzM1LDM0MzM2LDM0MzM3LDM0MzM4LDM0MzM5LDM0MzQwLDM0MzQxLDM0MzQyLDM0MzQ0LDM0MzQ2LDM0MzQ3LDM0MzQ4LDM0MzQ5LDM0MzUwLDM0MzUxLDM0MzUyLDM0MzUzLDM0MzU0LDM0''@;'; put 'put ''MzU1LDM0MzU2LDM0MzU3LDM0MzU4LDM0MzU5LDM0MzYxLDM0MzYyLDM0MzYzLDM0MzY1LDM0MzY2LDM0MzY3LDM0MzY4LDM0MzY5LDM0MzcwLDM0MzcxLDM0MzcyLDM0MzczLDM0Mzc0LDM0Mzc1LDM0Mzc2LDM0Mzc3LDM0Mzc4LDM0Mzc5LDM0MzgwLDM0Mzg2LDM0Mzg3LDM0Mzg5LDM0Mzkw''@;'; put 'put ''LDM0MzkxLDM0MzkyLDM0MzkzLDM0Mzk1LDM0Mzk2LDM0Mzk3LDM0Mzk5LDM0NDAwLDM0NDAxLDM0NDAzLDM0NDA0LDM0NDA1LDM0NDA2LDM0NDA3LDM0NDA4LDM0NDA5LDM0NDEwLDI5NTQ5LDI1Mzc0LDM2NDI3LDM2MzY3LDMyOTc0LDMzNDkyLDI1MjYwLDIxNDg4LDI3ODg4LDM3MjE0LDIy''@;'; put 'put ''ODI2LDI0NTc3LDI3NzYwLDIyMzQ5LDI1Njc0LDM2MTM4LDMwMjUxLDI4MzkzLDIyMzYzLDI3MjY0LDMwMTkyLDI4NTI1LDM1ODg1LDM1ODQ4LDIyMzc0LDI3NjMxLDM0OTYyLDMwODk5LDI1NTA2LDIxNDk3LDI4ODQ1LDI3NzQ4LDIyNjE2LDI1NjQyLDIyNTMwLDI2ODQ4LDMzMTc5LDIxNzc2''@;'; put 'put ''LDMxOTU4LDIwNTA0LDM2NTM4LDI4MTA4LDM2MjU1LDI4OTA3LDI1NDg3LDI4MDU5LDI4MzcyLDMyNDg2LDMzNzk2LDI2NjkxLDM2ODY3LDI4MTIwLDM4NTE4LDM1NzUyLDIyODcxLDI5MzA1LDM0Mjc2LDMzMTUwLDMwMTQwLDM1NDY2LDI2Nzk5LDIxMDc2LDM2Mzg2LDM4MTYxLDI1NTUyLDM5''@;'; put 'put ''MDY0LDM2NDIwLDIxODg0LDIwMzA3LDI2MzY3LDIyMTU5LDI0Nzg5LDI4MDUzLDIxMDU5LDIzNjI1LDIyODI1LDI4MTU1LDIyNjM1LDNlNCwyOTk4MCwyNDY4NCwzMzMwMCwzMzA5NCwyNTM2MSwyNjQ2NSwzNjgzNCwzMDUyMiwzNjMzOSwzNjE0OCwzODA4MSwyNDA4NiwyMTM4MSwyMTU0OCwy''@;'; put 'put ''ODg2NywzNDQxMywzNDQxNSwzNDQxNiwzNDQxOCwzNDQxOSwzNDQyMCwzNDQyMSwzNDQyMiwzNDQyMywzNDQyNCwzNDQzNSwzNDQzNiwzNDQzNywzNDQzOCwzNDQzOSwzNDQ0MCwzNDQ0MSwzNDQ0NiwzNDQ0NywzNDQ0OCwzNDQ0OSwzNDQ1MCwzNDQ1MiwzNDQ1NCwzNDQ1NSwzNDQ1NiwzNDQ1''@;'; put 'put ''NywzNDQ1OCwzNDQ1OSwzNDQ2MiwzNDQ2MywzNDQ2NCwzNDQ2NSwzNDQ2NiwzNDQ2OSwzNDQ3MCwzNDQ3NSwzNDQ3NywzNDQ3OCwzNDQ4MiwzNDQ4MywzNDQ4NywzNDQ4OCwzNDQ4OSwzNDQ5MSwzNDQ5MiwzNDQ5MywzNDQ5NCwzNDQ5NSwzNDQ5NywzNDQ5OCwzNDQ5OSwzNDUwMSwzNDUwNCwz''@;'; put 'put ''NDUwOCwzNDUwOSwzNDUxNCwzNDUxNSwzNDUxNywzNDUxOCwzNDUxOSwzNDUyMiwzNDUyNCwzNDUyNSwzNDUyOCwzNDUyOSwzNDUzMCwzNDUzMSwzNDUzMywzNDUzNCwzNDUzNSwzNDUzNiwzNDUzOCwzNDUzOSwzNDU0MCwzNDU0MywzNDU0OSwzNDU1MCwzNDU1MSwzNDU1NCwzNDU1NSwzNDU1''@;'; put 'put ''NiwzNDU1NywzNDU1OSwzNDU2MSwzNDU2NCwzNDU2NSwzNDU2NiwzNDU3MSwzNDU3MiwzNDU3NCwzNDU3NSwzNDU3NiwzNDU3NywzNDU4MCwzNDU4MiwyNzcxMiwyNDMxMSwyMDU3MiwyMDE0MSwyNDIzNywyNTQwMiwzMzM1MSwzNjg5MCwyNjcwNCwzNzIzMCwzMDY0MywyMTUxNiwzODEwOCwy''@;'; put 'put ''NDQyMCwzMTQ2MSwyNjc0MiwyNTQxMywzMTU3MCwzMjQ3OSwzMDE3MSwyMDU5OSwyNTIzNywyMjgzNiwzNjg3OSwyMDk4NCwzMTE3MSwzMTM2MSwyMjI3MCwyNDQ2NiwzNjg4NCwyODAzNCwyMzY0OCwyMjMwMywyMTUyMCwyMDgyMCwyODIzNywyMjI0MiwyNTUxMiwzOTA1OSwzMzE1MSwzNDU4''@;'; put 'put ''MSwzNTExNCwzNjg2NCwyMTUzNCwyMzY2MywzMzIxNiwyNTMwMiwyNTE3NiwzMzA3Myw0MDUwMSwzODQ2NCwzOTUzNCwzOTU0OCwyNjkyNSwyMjk0OSwyNTI5OSwyMTgyMiwyNTM2NiwyMTcwMywzNDUyMSwyNzk2NCwyMzA0MywyOTkyNiwzNDk3MiwyNzQ5OCwyMjgwNiwzNTkxNiwyNDM2Nywy''@;'; put 'put ''ODI4NiwyOTYwOSwzOTAzNywyMDAyNCwyODkxOSwyMzQzNiwzMDg3MSwyNTQwNSwyNjIwMiwzMDM1OCwyNDc3OSwyMzQ1MSwyMzExMywxOTk3NSwzMzEwOSwyNzc1NCwyOTU3OSwyMDEyOSwyNjUwNSwzMjU5MywyNDQ0OCwyNjEwNiwyNjM5NSwyNDUzNiwyMjkxNiwyMzA0MSwzNDU4NSwzNDU4''@;'; put 'put ''NywzNDU4OSwzNDU5MSwzNDU5MiwzNDU5NiwzNDU5OCwzNDU5OSwzNDYwMCwzNDYwMiwzNDYwMywzNDYwNCwzNDYwNSwzNDYwNywzNDYwOCwzNDYxMCwzNDYxMSwzNDYxMywzNDYxNCwzNDYxNiwzNDYxNywzNDYxOCwzNDYyMCwzNDYyMSwzNDYyNCwzNDYyNSwzNDYyNiwzNDYyNywzNDYyOCwz''@;'; put 'put ''NDYyOSwzNDYzMCwzNDYzNCwzNDYzNSwzNDYzNywzNDYzOSwzNDY0MCwzNDY0MSwzNDY0MiwzNDY0NCwzNDY0NSwzNDY0NiwzNDY0OCwzNDY1MCwzNDY1MSwzNDY1MiwzNDY1MywzNDY1NCwzNDY1NSwzNDY1NywzNDY1OCwzNDY2MiwzNDY2MywzNDY2NCwzNDY2NSwzNDY2NiwzNDY2NywzNDY2''@;'; put 'put ''OCwzNDY2OSwzNDY3MSwzNDY3MywzNDY3NCwzNDY3NSwzNDY3NywzNDY3OSwzNDY4MCwzNDY4MSwzNDY4MiwzNDY4NywzNDY4OCwzNDY4OSwzNDY5MiwzNDY5NCwzNDY5NSwzNDY5NywzNDY5OCwzNDcwMCwzNDcwMiwzNDcwMywzNDcwNCwzNDcwNSwzNDcwNiwzNDcwOCwzNDcwOSwzNDcxMCwz''@;'; put 'put ''NDcxMiwzNDcxMywzNDcxNCwzNDcxNSwzNDcxNiwzNDcxNywzNDcxOCwzNDcyMCwzNDcyMSwzNDcyMiwzNDcyMywzNDcyNCwyNDAxMywyNDQ5NCwyMTM2MSwzODg4NiwzNjgyOSwyNjY5MywyMjI2MCwyMTgwNywyNDc5OSwyMDAyNiwyODQ5MywzMjUwMCwzMzQ3OSwzMzgwNiwyMjk5NiwyMDI1''@;'; put 'put ''NSwyMDI2NiwyMzYxNCwzMjQyOCwyNjQxMCwzNDA3NCwyMTYxOSwzMDAzMSwzMjk2MywyMTg5MCwzOTc1OSwyMDMwMSwyODIwNSwzNTg1OSwyMzU2MSwyNDk0NCwyMTM1NSwzMDIzOSwyODIwMSwzNDQ0MiwyNTk5MSwzODM5NSwzMjQ0MSwyMTU2MywzMTI4MywzMjAxMCwzODM4MiwyMTk4NSwz''@;'; put 'put ''MjcwNSwyOTkzNCwyNTM3MywzNDU4MywyODA2NSwzMTM4OSwyNTEwNSwyNjAxNywyMTM1MSwyNTU2OSwyNzc3OSwyNDA0MywyMTU5NiwzODA1NiwyMDA0NCwyNzc0NSwzNTgyMCwyMzYyNywyNjA4MCwzMzQzNiwyNjc5MSwyMTU2NiwyMTU1NiwyNzU5NSwyNzQ5NCwyMDExNiwyNTQxMCwyMTMy''@;'; put 'put ''MCwzMzMxMCwyMDIzNywyMDM5OCwyMjM2NiwyNTA5OCwzODY1NCwyNjIxMiwyOTI4OSwyMTI0NywyMTE1MywyNDczNSwzNTgyMywyNjEzMiwyOTA4MSwyNjUxMiwzNTE5OSwzMDgwMiwzMDcxNywyNjIyNCwyMjA3NSwyMTU2MCwzODE3NywyOTMwNiwzNDcyNSwzNDcyNiwzNDcyNywzNDcyOSwz''@;'; put 'put ''NDczMCwzNDczNCwzNDczNiwzNDczNywzNDczOCwzNDc0MCwzNDc0MiwzNDc0MywzNDc0NCwzNDc0NSwzNDc0NywzNDc0OCwzNDc1MCwzNDc1MSwzNDc1MywzNDc1NCwzNDc1NSwzNDc1NiwzNDc1NywzNDc1OSwzNDc2MCwzNDc2MSwzNDc2NCwzNDc2NSwzNDc2NiwzNDc2NywzNDc2OCwzNDc3''@;'; put 'put ''MiwzNDc3MywzNDc3NCwzNDc3NSwzNDc3NiwzNDc3NywzNDc3OCwzNDc4MCwzNDc4MSwzNDc4MiwzNDc4MywzNDc4NSwzNDc4NiwzNDc4NywzNDc4OCwzNDc5MCwzNDc5MSwzNDc5MiwzNDc5MywzNDc5NSwzNDc5NiwzNDc5NywzNDc5OSwzNDgwMCwzNDgwMSwzNDgwMiwzNDgwMywzNDgwNCwz''@;'; put 'put ''NDgwNSwzNDgwNiwzNDgwNywzNDgwOCwzNDgxMCwzNDgxMSwzNDgxMiwzNDgxMywzNDgxNSwzNDgxNiwzNDgxNywzNDgxOCwzNDgyMCwzNDgyMSwzNDgyMiwzNDgyMywzNDgyNCwzNDgyNSwzNDgyNywzNDgyOCwzNDgyOSwzNDgzMCwzNDgzMSwzNDgzMiwzNDgzMywzNDgzNCwzNDgzNiwzNDgz''@;'; put 'put ''OSwzNDg0MCwzNDg0MSwzNDg0MiwzNDg0NCwzNDg0NSwzNDg0NiwzNDg0NywzNDg0OCwzNDg1MSwzMTIzMiwyNDY4NywyNDA3NiwyNDcxMywzMzE4MSwyMjgwNSwyNDc5NiwyOTA2MCwyODkxMSwyODMzMCwyNzcyOCwyOTMxMiwyNzI2OCwzNDk4OSwyNDEwOSwyMDA2NCwyMzIxOSwyMTkxNiwz''@;'; put 'put ''ODExNSwyNzkyNywzMTk5NSwzODU1MywyNTEwMywzMjQ1NCwzMDYwNiwzNDQzMCwyMTI4MywzODY4NiwzNjc1OCwyNjI0NywyMzc3NywyMDM4NCwyOTQyMSwxOTk3OSwyMTQxNCwyMjc5OSwyMTUyMywyNTQ3MiwzODE4NCwyMDgwOCwyMDE4NSw0MDA5MiwzMjQyMCwyMTY4OCwzNjEzMiwzNDkw''@;'; put 'put ''MCwzMzMzNSwzODM4NiwyODA0NiwyNDM1OCwyMzI0NCwyNjE3NCwzODUwNSwyOTYxNiwyOTQ4NiwyMTQzOSwzMzE0NiwzOTMwMSwzMjY3MywyMzQ2NiwzODUxOSwzODQ4MCwzMjQ0NywzMDQ1NiwyMTQxMCwzODI2MiwzOTMyMSwzMTY2NSwzNTE0MCwyODI0OCwyMDA2NSwzMjcyNCwzMTA3Nywz''@;'; put 'put ''NTgxNCwyNDgxOSwyMTcwOSwyMDEzOSwzOTAzMywyNDA1NSwyNzIzMywyMDY4NywyMTUyMSwzNTkzNywzMzgzMSwzMDgxMywzODY2MCwyMTA2NiwyMTc0MiwyMjE3OSwzODE0NCwyODA0MCwyMzQ3NywyODEwMiwyNjE5NSwzNDg1MiwzNDg1MywzNDg1NCwzNDg1NSwzNDg1NiwzNDg1NywzNDg1''@;'; put 'put ''OCwzNDg1OSwzNDg2MCwzNDg2MSwzNDg2MiwzNDg2MywzNDg2NCwzNDg2NSwzNDg2NywzNDg2OCwzNDg2OSwzNDg3MCwzNDg3MSwzNDg3MiwzNDg3NCwzNDg3NSwzNDg3NywzNDg3OCwzNDg3OSwzNDg4MSwzNDg4MiwzNDg4MywzNDg4NiwzNDg4NywzNDg4OCwzNDg4OSwzNDg5MCwzNDg5MSwz''@;'; put 'put ''NDg5NCwzNDg5NSwzNDg5NiwzNDg5NywzNDg5OCwzNDg5OSwzNDkwMSwzNDkwMiwzNDkwNCwzNDkwNiwzNDkwNywzNDkwOCwzNDkwOSwzNDkxMCwzNDkxMSwzNDkxMiwzNDkxOCwzNDkxOSwzNDkyMiwzNDkyNSwzNDkyNywzNDkyOSwzNDkzMSwzNDkzMiwzNDkzMywzNDkzNCwzNDkzNiwzNDkz''@;'; put 'put ''NywzNDkzOCwzNDkzOSwzNDk0MCwzNDk0NCwzNDk0NywzNDk1MCwzNDk1MSwzNDk1MywzNDk1NCwzNDk1NiwzNDk1OCwzNDk1OSwzNDk2MCwzNDk2MSwzNDk2MywzNDk2NCwzNDk2NSwzNDk2NywzNDk2OCwzNDk2OSwzNDk3MCwzNDk3MSwzNDk3MywzNDk3NCwzNDk3NSwzNDk3NiwzNDk3Nywz''@;'; put 'put ''NDk3OSwzNDk4MSwzNDk4MiwzNDk4MywzNDk4NCwzNDk4NSwzNDk4NiwyMzU2NywyMzM4OSwyNjY1NywzMjkxOCwyMTg4MCwzMTUwNSwyNTkyOCwyNjk2NCwyMDEyMywyNzQ2MywzNDYzOCwzODc5NSwyMTMyNywyNTM3NSwyNTY1OCwzNzAzNCwyNjAxMiwzMjk2MSwzNTg1NiwyMDg4OSwyNjgw''@;'; put 'put ''MCwyMTM2OCwzNDgwOSwyNTAzMiwyNzg0NCwyNzg5OSwzNTg3NCwyMzYzMywzNDIxOCwzMzQ1NSwzODE1NiwyNzQyNywzNjc2MywyNjAzMiwyNDU3MSwyNDUxNSwyMDQ0OSwzNDg4NSwyNjE0MywzMzEyNSwyOTQ4MSwyNDgyNiwyMDg1MiwyMTAwOSwyMjQxMSwyNDQxOCwzNzAyNiwzNDg5Miwz''@;'; put 'put ''NzI2NiwyNDE4NCwyNjQ0NywyNDYxNSwyMjk5NSwyMDgwNCwyMDk4MiwzMzAxNiwyMTI1NiwyNzc2OSwzODU5NiwyOTA2NiwyMDI0MSwyMDQ2MiwzMjY3MCwyNjQyOSwyMTk1NywzODE1MiwzMTE2OCwzNDk2NiwzMjQ4MywyMjY4NywyNTEwMCwzODY1NiwzNDM5NCwyMjA0MCwzOTAzNSwyNDQ2''@;'; put 'put ''NCwzNTc2OCwzMzk4OCwzNzIwNywyMTQ2NSwyNjA5MywyNDIwNywzMDA0NCwyNDY3NiwzMjExMCwyMzE2NywzMjQ5MCwzMjQ5MywzNjcxMywyMTkyNywyMzQ1OSwyNDc0OCwyNjA1OSwyOTU3MiwzNDk4OCwzNDk5MCwzNDk5MSwzNDk5MiwzNDk5NCwzNDk5NSwzNDk5NiwzNDk5NywzNDk5OCwz''@;'; put 'put ''NWUzLDM1MDAxLDM1MDAyLDM1MDAzLDM1MDA1LDM1MDA2LDM1MDA3LDM1MDA4LDM1MDExLDM1MDEyLDM1MDE1LDM1MDE2LDM1MDE4LDM1MDE5LDM1MDIwLDM1MDIxLDM1MDIzLDM1MDI0LDM1MDI1LDM1MDI3LDM1MDMwLDM1MDMxLDM1MDM0LDM1MDM1LDM1MDM2LDM1MDM3LDM1MDM4LDM1MDQw''@;'; put 'put ''LDM1MDQxLDM1MDQ2LDM1MDQ3LDM1MDQ5LDM1MDUwLDM1MDUxLDM1MDUyLDM1MDUzLDM1MDU0LDM1MDU1LDM1MDU4LDM1MDYxLDM1MDYyLDM1MDYzLDM1MDY2LDM1MDY3LDM1MDY5LDM1MDcxLDM1MDcyLDM1MDczLDM1MDc1LDM1MDc2LDM1MDc3LDM1MDc4LDM1MDc5LDM1MDgwLDM1MDgxLDM1''@;'; put 'put ''MDgzLDM1MDg0LDM1MDg1LDM1MDg2LDM1MDg3LDM1MDg5LDM1MDkyLDM1MDkzLDM1MDk0LDM1MDk1LDM1MDk2LDM1MTAwLDM1MTAxLDM1MTAyLDM1MTAzLDM1MTA0LDM1MTA2LDM1MTA3LDM1MTA4LDM1MTEwLDM1MTExLDM1MTEyLDM1MTEzLDM1MTE2LDM1MTE3LDM1MTE4LDM1MTE5LDM1MTIx''@;'; put 'put ''LDM1MTIyLDM1MTIzLDM1MTI1LDM1MTI3LDM2ODczLDMwMzA3LDMwNTA1LDMyNDc0LDM4NzcyLDM0MjAzLDIzMzk4LDMxMzQ4LDM4NjM0LDM0ODgwLDIxMTk1LDI5MDcxLDI0NDkwLDI2MDkyLDM1ODEwLDIzNTQ3LDM5NTM1LDI0MDMzLDI3NTI5LDI3NzM5LDM1NzU3LDM1NzU5LDM2ODc0LDM2''@;'; put 'put ''ODA1LDIxMzg3LDI1Mjc2LDQwNDg2LDQwNDkzLDIxNTY4LDIwMDExLDMzNDY5LDI5MjczLDM0NDYwLDIzODMwLDM0OTA1LDI4MDc5LDM4NTk3LDIxNzEzLDIwMTIyLDM1NzY2LDI4OTM3LDIxNjkzLDM4NDA5LDI4ODk1LDI4MTUzLDMwNDE2LDIwMDA1LDMwNzQwLDM0NTc4LDIzNzIxLDI0MzEw''@;'; put 'put ''LDM1MzI4LDM5MDY4LDM4NDE0LDI4ODE0LDI3ODM5LDIyODUyLDI1NTEzLDMwNTI0LDM0ODkzLDI4NDM2LDMzMzk1LDIyNTc2LDI5MTQxLDIxMzg4LDMwNzQ2LDM4NTkzLDIxNzYxLDI0NDIyLDI4OTc2LDIzNDc2LDM1ODY2LDM5NTY0LDI3NTIzLDIyODMwLDQwNDk1LDMxMjA3LDI2NDcyLDI1''@;'; put 'put ''MTk2LDIwMzM1LDMwMTEzLDMyNjUwLDI3OTE1LDM4NDUxLDI3Njg3LDIwMjA4LDMwMTYyLDIwODU5LDI2Njc5LDI4NDc4LDM2OTkyLDMzMTM2LDIyOTM0LDI5ODE0LDM1MTI4LDM1MTI5LDM1MTMwLDM1MTMxLDM1MTMyLDM1MTMzLDM1MTM0LDM1MTM1LDM1MTM2LDM1MTM4LDM1MTM5LDM1MTQx''@;'; put 'put ''LDM1MTQyLDM1MTQzLDM1MTQ0LDM1MTQ1LDM1MTQ2LDM1MTQ3LDM1MTQ4LDM1MTQ5LDM1MTUwLDM1MTUxLDM1MTUyLDM1MTUzLDM1MTU0LDM1MTU1LDM1MTU2LDM1MTU3LDM1MTU4LDM1MTU5LDM1MTYwLDM1MTYxLDM1MTYyLDM1MTYzLDM1MTY0LDM1MTY1LDM1MTY4LDM1MTY5LDM1MTcwLDM1''@;'; put 'put ''MTcxLDM1MTcyLDM1MTczLDM1MTc1LDM1MTc2LDM1MTc3LDM1MTc4LDM1MTc5LDM1MTgwLDM1MTgxLDM1MTgyLDM1MTgzLDM1MTg0LDM1MTg1LDM1MTg2LDM1MTg3LDM1MTg4LDM1MTg5LDM1MTkwLDM1MTkxLDM1MTkyLDM1MTkzLDM1MTk0LDM1MTk2LDM1MTk3LDM1MTk4LDM1MjAwLDM1MjAy''@;'; put 'put ''LDM1MjA0LDM1MjA1LDM1MjA3LDM1MjA4LDM1MjA5LDM1MjEwLDM1MjExLDM1MjEyLDM1MjEzLDM1MjE0LDM1MjE1LDM1MjE2LDM1MjE3LDM1MjE4LDM1MjE5LDM1MjIwLDM1MjIxLDM1MjIyLDM1MjIzLDM1MjI0LDM1MjI1LDM1MjI2LDM1MjI3LDM1MjI4LDM1MjI5LDM1MjMwLDM1MjMxLDM1''@;'; put 'put ''MjMyLDM1MjMzLDI1NjcxLDIzNTkxLDM2OTY1LDMxMzc3LDM1ODc1LDIzMDAyLDIxNjc2LDMzMjgwLDMzNjQ3LDM1MjAxLDMyNzY4LDI2OTI4LDIyMDk0LDMyODIyLDI5MjM5LDM3MzI2LDIwOTE4LDIwMDYzLDM5MDI5LDI1NDk0LDE5OTk0LDIxNDk0LDI2MzU1LDMzMDk5LDIyODEyLDI4MDgy''@;'; put 'put ''LDE5OTY4LDIyNzc3LDIxMzA3LDI1NTU4LDM4MTI5LDIwMzgxLDIwMjM0LDM0OTE1LDM5MDU2LDIyODM5LDM2OTUxLDMxMjI3LDIwMjAyLDMzMDA4LDMwMDk3LDI3Nzc4LDIzNDUyLDIzMDE2LDI0NDEzLDI2ODg1LDM0NDMzLDIwNTA2LDI0MDUwLDIwMDU3LDMwNjkxLDIwMTk3LDMzNDAyLDI1''@;'; put 'put ''MjMzLDI2MTMxLDM3MDA5LDIzNjczLDIwMTU5LDI0NDQxLDMzMjIyLDM2OTIwLDMyOTAwLDMwMTIzLDIwMTM0LDM1MDI4LDI0ODQ3LDI3NTg5LDI0NTE4LDIwMDQxLDMwNDEwLDI4MzIyLDM1ODExLDM1NzU4LDM1ODUwLDM1NzkzLDI0MzIyLDMyNzY0LDMyNzE2LDMyNDYyLDMzNTg5LDMzNjQz''@;'; put 'put ''LDIyMjQwLDI3NTc1LDM4ODk5LDM4NDUyLDIzMDM1LDIxNTM1LDM4MTM0LDI4MTM5LDIzNDkzLDM5Mjc4LDIzNjA5LDI0MzQxLDM4NTQ0LDM1MjM0LDM1MjM1LDM1MjM2LDM1MjM3LDM1MjM4LDM1MjM5LDM1MjQwLDM1MjQxLDM1MjQyLDM1MjQzLDM1MjQ0LDM1MjQ1LDM1MjQ2LDM1MjQ3LDM1''@;'; put 'put ''MjQ4LDM1MjQ5LDM1MjUwLDM1MjUxLDM1MjUyLDM1MjUzLDM1MjU0LDM1MjU1LDM1MjU2LDM1MjU3LDM1MjU4LDM1MjU5LDM1MjYwLDM1MjYxLDM1MjYyLDM1MjYzLDM1MjY0LDM1MjY3LDM1Mjc3LDM1MjgzLDM1Mjg0LDM1Mjg1LDM1Mjg3LDM1Mjg4LDM1Mjg5LDM1MjkxLDM1MjkzLDM1Mjk1''@;'; put 'put ''LDM1Mjk2LDM1Mjk3LDM1Mjk4LDM1MzAwLDM1MzAzLDM1MzA0LDM1MzA1LDM1MzA2LDM1MzA4LDM1MzA5LDM1MzEwLDM1MzEyLDM1MzEzLDM1MzE0LDM1MzE2LDM1MzE3LDM1MzE4LDM1MzE5LDM1MzIwLDM1MzIxLDM1MzIyLDM1MzIzLDM1MzI0LDM1MzI1LDM1MzI2LDM1MzI3LDM1MzI5LDM1''@;'; put 'put ''MzMwLDM1MzMxLDM1MzMyLDM1MzMzLDM1MzM0LDM1MzM2LDM1MzM3LDM1MzM4LDM1MzM5LDM1MzQwLDM1MzQxLDM1MzQyLDM1MzQzLDM1MzQ0LDM1MzQ1LDM1MzQ2LDM1MzQ3LDM1MzQ4LDM1MzQ5LDM1MzUwLDM1MzUxLDM1MzUyLDM1MzUzLDM1MzU0LDM1MzU1LDM1MzU2LDM1MzU3LDIxMzYw''@;'; put 'put ''LDMzNTIxLDI3MTg1LDIzMTU2LDQwNTYwLDI0MjEyLDMyNTUyLDMzNzIxLDMzODI4LDMzODI5LDMzNjM5LDM0NjMxLDM2ODE0LDM2MTk0LDMwNDA4LDI0NDMzLDM5MDYyLDMwODI4LDI2MTQ0LDIxNzI3LDI1MzE3LDIwMzIzLDMzMjE5LDMwMTUyLDI0MjQ4LDM4NjA1LDM2MzYyLDM0NTUzLDIx''@;'; put 'put ''NjQ3LDI3ODkxLDI4MDQ0LDI3NzA0LDI0NzAzLDIxMTkxLDI5OTkyLDI0MTg5LDIwMjQ4LDI0NzM2LDI0NTUxLDIzNTg4LDMwMDAxLDM3MDM4LDM4MDgwLDI5MzY5LDI3ODMzLDI4MjE2LDM3MTkzLDI2Mzc3LDIxNDUxLDIxNDkxLDIwMzA1LDM3MzIxLDM1ODI1LDIxNDQ4LDI0MTg4LDM2ODAy''@;'; put 'put ''LDI4MTMyLDIwMTEwLDMwNDAyLDI3MDE0LDM0Mzk4LDI0ODU4LDMzMjg2LDIwMzEzLDIwNDQ2LDM2OTI2LDQwMDYwLDI0ODQxLDI4MTg5LDI4MTgwLDM4NTMzLDIwMTA0LDIzMDg5LDM4NjMyLDE5OTgyLDIzNjc5LDMxMTYxLDIzNDMxLDM1ODIxLDMyNzAxLDI5NTc3LDIyNDk1LDMzNDE5LDM3''@;'; put 'put ''MDU3LDIxNTA1LDM2OTM1LDIxOTQ3LDIzNzg2LDI0NDgxLDI0ODQwLDI3NDQyLDI5NDI1LDMyOTQ2LDM1NDY1LDM1MzU4LDM1MzU5LDM1MzYwLDM1MzYxLDM1MzYyLDM1MzYzLDM1MzY0LDM1MzY1LDM1MzY2LDM1MzY3LDM1MzY4LDM1MzY5LDM1MzcwLDM1MzcxLDM1MzcyLDM1MzczLDM1Mzc0''@;'; put 'put ''LDM1Mzc1LDM1Mzc2LDM1Mzc3LDM1Mzc4LDM1Mzc5LDM1MzgwLDM1MzgxLDM1MzgyLDM1MzgzLDM1Mzg0LDM1Mzg1LDM1Mzg2LDM1Mzg3LDM1Mzg4LDM1Mzg5LDM1MzkxLDM1MzkyLDM1MzkzLDM1Mzk0LDM1Mzk1LDM1Mzk2LDM1Mzk3LDM1Mzk4LDM1Mzk5LDM1NDAxLDM1NDAyLDM1NDAzLDM1''@;'; put 'put ''NDA0LDM1NDA1LDM1NDA2LDM1NDA3LDM1NDA4LDM1NDA5LDM1NDEwLDM1NDExLDM1NDEyLDM1NDEzLDM1NDE0LDM1NDE1LDM1NDE2LDM1NDE3LDM1NDE4LDM1NDE5LDM1NDIwLDM1NDIxLDM1NDIyLDM1NDIzLDM1NDI0LDM1NDI1LDM1NDI2LDM1NDI3LDM1NDI4LDM1NDI5LDM1NDMwLDM1NDMx''@;'; put 'put ''LDM1NDMyLDM1NDMzLDM1NDM0LDM1NDM1LDM1NDM2LDM1NDM3LDM1NDM4LDM1NDM5LDM1NDQwLDM1NDQxLDM1NDQyLDM1NDQzLDM1NDQ0LDM1NDQ1LDM1NDQ2LDM1NDQ3LDM1NDQ4LDM1NDUwLDM1NDUxLDM1NDUyLDM1NDUzLDM1NDU0LDM1NDU1LDM1NDU2LDI4MDIwLDIzNTA3LDM1MDI5LDM5''@;'; put 'put ''MDQ0LDM1OTQ3LDM5NTMzLDQwNDk5LDI4MTcwLDIwOTAwLDIwODAzLDIyNDM1LDM0OTQ1LDIxNDA3LDI1NTg4LDM2NzU3LDIyMjUzLDIxNTkyLDIyMjc4LDI5NTAzLDI4MzA0LDMyNTM2LDM2ODI4LDMzNDg5LDI0ODk1LDI0NjE2LDM4NDk4LDI2MzUyLDMyNDIyLDM2MjM0LDM2MjkxLDM4MDUz''@;'; put 'put ''LDIzNzMxLDMxOTA4LDI2Mzc2LDI0NzQyLDM4NDA1LDMyNzkyLDIwMTEzLDM3MDk1LDIxMjQ4LDM4NTA0LDIwODAxLDM2ODE2LDM0MTY0LDM3MjEzLDI2MTk3LDM4OTAxLDIzMzgxLDIxMjc3LDMwNzc2LDI2NDM0LDI2Njg1LDIxNzA1LDI4Nzk4LDIzNDcyLDM2NzMzLDIwODc3LDIyMzEyLDIx''@;'; put 'put ''NjgxLDI1ODc0LDI2MjQyLDM2MTkwLDM2MTYzLDMzMDM5LDMzOTAwLDM2OTczLDMxOTY3LDIwOTkxLDM0Mjk5LDI2NTMxLDI2MDg5LDI4NTc3LDM0NDY4LDM2NDgxLDIyMTIyLDM2ODk2LDMwMzM4LDI4NzkwLDI5MTU3LDM2MTMxLDI1MzIxLDIxMDE3LDI3OTAxLDM2MTU2LDI0NTkwLDIyNjg2''@;'; put 'put ''LDI0OTc0LDI2MzY2LDM2MTkyLDI1MTY2LDIxOTM5LDI4MTk1LDI2NDEzLDM2NzExLDM1NDU3LDM1NDU4LDM1NDU5LDM1NDYwLDM1NDYxLDM1NDYyLDM1NDYzLDM1NDY0LDM1NDY3LDM1NDY4LDM1NDY5LDM1NDcwLDM1NDcxLDM1NDcyLDM1NDczLDM1NDc0LDM1NDc2LDM1NDc3LDM1NDc4LDM1''@;'; put 'put ''NDc5LDM1NDgwLDM1NDgxLDM1NDgyLDM1NDgzLDM1NDg0LDM1NDg1LDM1NDg2LDM1NDg3LDM1NDg4LDM1NDg5LDM1NDkwLDM1NDkxLDM1NDkyLDM1NDkzLDM1NDk0LDM1NDk1LDM1NDk2LDM1NDk3LDM1NDk4LDM1NDk5LDM1NTAwLDM1NTAxLDM1NTAyLDM1NTAzLDM1NTA0LDM1NTA1LDM1NTA2''@;'; put 'put ''LDM1NTA3LDM1NTA4LDM1NTA5LDM1NTEwLDM1NTExLDM1NTEyLDM1NTEzLDM1NTE0LDM1NTE1LDM1NTE2LDM1NTE3LDM1NTE4LDM1NTE5LDM1NTIwLDM1NTIxLDM1NTIyLDM1NTIzLDM1NTI0LDM1NTI1LDM1NTI2LDM1NTI3LDM1NTI4LDM1NTI5LDM1NTMwLDM1NTMxLDM1NTMyLDM1NTMzLDM1''@;'; put 'put ''NTM0LDM1NTM1LDM1NTM2LDM1NTM3LDM1NTM4LDM1NTM5LDM1NTQwLDM1NTQxLDM1NTQyLDM1NTQzLDM1NTQ0LDM1NTQ1LDM1NTQ2LDM1NTQ3LDM1NTQ4LDM1NTQ5LDM1NTUwLDM1NTUxLDM1NTUyLDM1NTUzLDM1NTU0LDM1NTU1LDM4MTEzLDM4MzkyLDMwNTA0LDI2NjI5LDI3MDQ4LDIxNjQz''@;'; put 'put ''LDIwMDQ1LDI4ODU2LDM1Nzg0LDI1Njg4LDI1OTk1LDIzNDI5LDMxMzY0LDIwNTM4LDIzNTI4LDMwNjUxLDI3NjE3LDM1NDQ5LDMxODk2LDI3ODM4LDMwNDE1LDI2MDI1LDM2NzU5LDIzODUzLDIzNjM3LDM0MzYwLDI2NjMyLDIxMzQ0LDI1MTEyLDMxNDQ5LDI4MjUxLDMyNTA5LDI3MTY3LDMx''@;'; put 'put ''NDU2LDI0NDMyLDI4NDY3LDI0MzUyLDI1NDg0LDI4MDcyLDI2NDU0LDE5OTc2LDI0MDgwLDM2MTM0LDIwMTgzLDMyOTYwLDMwMjYwLDM4NTU2LDI1MzA3LDI2MTU3LDI1MjE0LDI3ODM2LDM2MjEzLDI5MDMxLDMyNjE3LDIwODA2LDMyOTAzLDIxNDg0LDM2OTc0LDI1MjQwLDIxNzQ2LDM0NTQ0''@;'; put 'put ''LDM2NzYxLDMyNzczLDM4MTY3LDM0MDcxLDM2ODI1LDI3OTkzLDI5NjQ1LDI2MDE1LDMwNDk1LDI5OTU2LDMwNzU5LDMzMjc1LDM2MTI2LDM4MDI0LDIwMzkwLDI2NTE3LDMwMTM3LDM1Nzg2LDM4NjYzLDI1MzkxLDM4MjE1LDM4NDUzLDMzOTc2LDI1Mzc5LDMwNTI5LDI0NDQ5LDI5NDI0LDIw''@;'; put 'put ''MTA1LDI0NTk2LDI1OTcyLDI1MzI3LDI3NDkxLDI1OTE5LDM1NTU2LDM1NTU3LDM1NTU4LDM1NTU5LDM1NTYwLDM1NTYxLDM1NTYyLDM1NTYzLDM1NTY0LDM1NTY1LDM1NTY2LDM1NTY3LDM1NTY4LDM1NTY5LDM1NTcwLDM1NTcxLDM1NTcyLDM1NTczLDM1NTc0LDM1NTc1LDM1NTc2LDM1NTc3''@;'; put 'put ''LDM1NTc4LDM1NTc5LDM1NTgwLDM1NTgxLDM1NTgyLDM1NTgzLDM1NTg0LDM1NTg1LDM1NTg2LDM1NTg3LDM1NTg4LDM1NTg5LDM1NTkwLDM1NTkyLDM1NTkzLDM1NTk0LDM1NTk1LDM1NTk2LDM1NTk3LDM1NTk4LDM1NTk5LDM1NjAwLDM1NjAxLDM1NjAyLDM1NjAzLDM1NjA0LDM1NjA1LDM1''@;'; put 'put ''NjA2LDM1NjA3LDM1NjA4LDM1NjA5LDM1NjEwLDM1NjExLDM1NjEyLDM1NjEzLDM1NjE0LDM1NjE1LDM1NjE2LDM1NjE3LDM1NjE4LDM1NjE5LDM1NjIwLDM1NjIxLDM1NjIzLDM1NjI0LDM1NjI1LDM1NjI2LDM1NjI3LDM1NjI4LDM1NjI5LDM1NjMwLDM1NjMxLDM1NjMyLDM1NjMzLDM1NjM0''@;'; put 'put ''LDM1NjM1LDM1NjM2LDM1NjM3LDM1NjM4LDM1NjM5LDM1NjQwLDM1NjQxLDM1NjQyLDM1NjQzLDM1NjQ0LDM1NjQ1LDM1NjQ2LDM1NjQ3LDM1NjQ4LDM1NjQ5LDM1NjUwLDM1NjUxLDM1NjUyLDM1NjUzLDI0MTAzLDMwMTUxLDM3MDczLDM1Nzc3LDMzNDM3LDI2NTI1LDI1OTAzLDIxNTUzLDM0''@;'; put 'put ''NTg0LDMwNjkzLDMyOTMwLDMzMDI2LDI3NzEzLDIwMDQzLDMyNDU1LDMyODQ0LDMwNDUyLDI2ODkzLDI3NTQyLDI1MTkxLDIwNTQwLDIwMzU2LDIyMzM2LDI1MzUxLDI3NDkwLDM2Mjg2LDIxNDgyLDI2MDg4LDMyNDQwLDI0NTM1LDI1MzcwLDI1NTI3LDMzMjY3LDMzMjY4LDMyNjIyLDI0MDky''@;'; put 'put ''LDIzNzY5LDIxMDQ2LDI2MjM0LDMxMjA5LDMxMjU4LDM2MTM2LDI4ODI1LDMwMTY0LDI4MzgyLDI3ODM1LDMxMzc4LDIwMDEzLDMwNDA1LDI0NTQ0LDM4MDQ3LDM0OTM1LDMyNDU2LDMxMTgxLDMyOTU5LDM3MzI1LDIwMjEwLDIwMjQ3LDMzMzExLDIxNjA4LDI0MDMwLDI3OTU0LDM1Nzg4LDMx''@;'; put 'put ''OTA5LDM2NzI0LDMyOTIwLDI0MDkwLDIxNjUwLDMwMzg1LDIzNDQ5LDI2MTcyLDM5NTg4LDI5NjY0LDI2NjY2LDM0NTIzLDI2NDE3LDI5NDgyLDM1ODMyLDM1ODAzLDM2ODgwLDMxNDgxLDI4ODkxLDI5MDM4LDI1Mjg0LDMwNjMzLDIyMDY1LDIwMDI3LDMzODc5LDI2NjA5LDIxMTYxLDM0NDk2''@;'; put 'put ''LDM2MTQyLDM4MTM2LDMxNTY5LDM1NjU0LDM1NjU1LDM1NjU2LDM1NjU3LDM1NjU4LDM1NjU5LDM1NjYwLDM1NjYxLDM1NjYyLDM1NjYzLDM1NjY0LDM1NjY1LDM1NjY2LDM1NjY3LDM1NjY4LDM1NjY5LDM1NjcwLDM1NjcxLDM1NjcyLDM1NjczLDM1Njc0LDM1Njc1LDM1Njc2LDM1Njc3LDM1''@;'; put 'put ''Njc4LDM1Njc5LDM1NjgwLDM1NjgxLDM1NjgyLDM1NjgzLDM1Njg0LDM1Njg1LDM1Njg3LDM1Njg4LDM1Njg5LDM1NjkwLDM1NjkxLDM1NjkzLDM1Njk0LDM1Njk1LDM1Njk2LDM1Njk3LDM1Njk4LDM1Njk5LDM1NzAwLDM1NzAxLDM1NzAyLDM1NzAzLDM1NzA0LDM1NzA1LDM1NzA2LDM1NzA3''@;'; put 'put ''LDM1NzA4LDM1NzA5LDM1NzEwLDM1NzExLDM1NzEyLDM1NzEzLDM1NzE0LDM1NzE1LDM1NzE2LDM1NzE3LDM1NzE4LDM1NzE5LDM1NzIwLDM1NzIxLDM1NzIyLDM1NzIzLDM1NzI0LDM1NzI1LDM1NzI2LDM1NzI3LDM1NzI4LDM1NzI5LDM1NzMwLDM1NzMxLDM1NzMyLDM1NzMzLDM1NzM0LDM1''@;'; put 'put ''NzM1LDM1NzM2LDM1NzM3LDM1NzM4LDM1NzM5LDM1NzQwLDM1NzQxLDM1NzQyLDM1NzQzLDM1NzU2LDM1NzYxLDM1NzcxLDM1NzgzLDM1NzkyLDM1ODE4LDM1ODQ5LDM1ODcwLDIwMzAzLDI3ODgwLDMxMDY5LDM5NTQ3LDI1MjM1LDI5MjI2LDI1MzQxLDE5OTg3LDMwNzQyLDM2NzE2LDI1Nzc2''@;'; put 'put ''LDM2MTg2LDMxNjg2LDI2NzI5LDI0MTk2LDM1MDEzLDIyOTE4LDI1NzU4LDIyNzY2LDI5MzY2LDI2ODk0LDM4MTgxLDM2ODYxLDM2MTg0LDIyMzY4LDMyNTEyLDM1ODQ2LDIwOTM0LDI1NDE3LDI1MzA1LDIxMzMxLDI2NzAwLDI5NzMwLDMzNTM3LDM3MTk2LDIxODI4LDMwNTI4LDI4Nzk2LDI3''@;'; put 'put ''OTc4LDIwODU3LDIxNjcyLDM2MTY0LDIzMDM5LDI4MzYzLDI4MTAwLDIzMzg4LDMyMDQzLDIwMTgwLDMxODY5LDI4MzcxLDIzMzc2LDMzMjU4LDI4MTczLDIzMzgzLDM5NjgzLDI2ODM3LDM2Mzk0LDIzNDQ3LDMyNTA4LDI0NjM1LDMyNDM3LDM3MDQ5LDM2MjA4LDIyODYzLDI1NTQ5LDMxMTk5''@;'; put 'put ''LDM2Mjc1LDIxMzMwLDI2MDYzLDMxMDYyLDM1NzgxLDM4NDU5LDMyNDUyLDM4MDc1LDMyMzg2LDIyMDY4LDM3MjU3LDI2MzY4LDMyNjE4LDIzNTYyLDM2OTgxLDI2MTUyLDI0MDM4LDIwMzA0LDI2NTkwLDIwNTcwLDIwMzE2LDIyMzUyLDI0MjMxLDU5NDA4LDU5NDA5LDU5NDEwLDU5NDExLDU5''@;'; put 'put ''NDEyLDM1ODk2LDM1ODk3LDM1ODk4LDM1ODk5LDM1OTAwLDM1OTAxLDM1OTAyLDM1OTAzLDM1OTA0LDM1OTA2LDM1OTA3LDM1OTA4LDM1OTA5LDM1OTEyLDM1OTE0LDM1OTE1LDM1OTE3LDM1OTE4LDM1OTE5LDM1OTIwLDM1OTIxLDM1OTIyLDM1OTIzLDM1OTI0LDM1OTI2LDM1OTI3LDM1OTI4''@;'; put 'put ''LDM1OTI5LDM1OTMxLDM1OTMyLDM1OTMzLDM1OTM0LDM1OTM1LDM1OTM2LDM1OTM5LDM1OTQwLDM1OTQxLDM1OTQyLDM1OTQzLDM1OTQ0LDM1OTQ1LDM1OTQ4LDM1OTQ5LDM1OTUwLDM1OTUxLDM1OTUyLDM1OTUzLDM1OTU0LDM1OTU2LDM1OTU3LDM1OTU4LDM1OTU5LDM1OTYzLDM1OTY0LDM1''@;'; put 'put ''OTY1LDM1OTY2LDM1OTY3LDM1OTY4LDM1OTY5LDM1OTcxLDM1OTcyLDM1OTc0LDM1OTc1LDM1OTc2LDM1OTc5LDM1OTgxLDM1OTgyLDM1OTgzLDM1OTg0LDM1OTg1LDM1OTg2LDM1OTg3LDM1OTg5LDM1OTkwLDM1OTkxLDM1OTkzLDM1OTk0LDM1OTk1LDM1OTk2LDM1OTk3LDM1OTk4LDM1OTk5''@;'; put 'put ''LDM2ZTMsMzYwMDEsMzYwMDIsMzYwMDMsMzYwMDQsMzYwMDUsMzYwMDYsMzYwMDcsMzYwMDgsMzYwMDksMzYwMTAsMzYwMTEsMzYwMTIsMzYwMTMsMjAxMDksMTk5ODAsMjA4MDAsMTk5ODQsMjQzMTksMjEzMTcsMTk5ODksMjAxMjAsMTk5OTgsMzk3MzAsMjM0MDQsMjIxMjEsMjAwMDgsMzEx''@;'; put 'put ''NjIsMjAwMzEsMjEyNjksMjAwMzksMjI4MjksMjkyNDMsMjEzNTgsMjc2NjQsMjIyMzksMzI5OTYsMzkzMTksMjc2MDMsMzA1OTAsNDA3MjcsMjAwMjIsMjAxMjcsNDA3MjAsMjAwNjAsMjAwNzMsMjAxMTUsMzM0MTYsMjMzODcsMjE4NjgsMjIwMzEsMjAxNjQsMjEzODksMjE0MDUsMjE0MTEs''@;'; put 'put ''MjE0MTMsMjE0MjIsMzg3NTcsMzYxODksMjEyNzQsMjE0OTMsMjEyODYsMjEyOTQsMjEzMTAsMzYxODgsMjEzNTAsMjEzNDcsMjA5OTQsMjFlMywyMTAwNiwyMTAzNywyMTA0MywyMTA1NSwyMTA1NiwyMTA2OCwyMTA4NiwyMTA4OSwyMTA4NCwzMzk2NywyMTExNywyMTEyMiwyMTEyMSwyMTEz''@;'; put 'put ''NiwyMTEzOSwyMDg2NiwzMjU5NiwyMDE1NSwyMDE2MywyMDE2OSwyMDE2MiwyMDIwMCwyMDE5MywyMDIwMywyMDE5MCwyMDI1MSwyMDIxMSwyMDI1OCwyMDMyNCwyMDIxMywyMDI2MSwyMDI2MywyMDIzMywyMDI2NywyMDMxOCwyMDMyNywyNTkxMiwyMDMxNCwyMDMxNywzNjAxNCwzNjAxNSwz''@;'; put 'put ''NjAxNiwzNjAxNywzNjAxOCwzNjAxOSwzNjAyMCwzNjAyMSwzNjAyMiwzNjAyMywzNjAyNCwzNjAyNSwzNjAyNiwzNjAyNywzNjAyOCwzNjAyOSwzNjAzMCwzNjAzMSwzNjAzMiwzNjAzMywzNjAzNCwzNjAzNSwzNjAzNiwzNjAzNywzNjAzOCwzNjAzOSwzNjA0MCwzNjA0MSwzNjA0MiwzNjA0''@;'; put 'put ''MywzNjA0NCwzNjA0NSwzNjA0NiwzNjA0NywzNjA0OCwzNjA0OSwzNjA1MCwzNjA1MSwzNjA1MiwzNjA1MywzNjA1NCwzNjA1NSwzNjA1NiwzNjA1NywzNjA1OCwzNjA1OSwzNjA2MCwzNjA2MSwzNjA2MiwzNjA2MywzNjA2NCwzNjA2NSwzNjA2NiwzNjA2NywzNjA2OCwzNjA2OSwzNjA3MCwz''@;'; put 'put ''NjA3MSwzNjA3MiwzNjA3MywzNjA3NCwzNjA3NSwzNjA3NiwzNjA3NywzNjA3OCwzNjA3OSwzNjA4MCwzNjA4MSwzNjA4MiwzNjA4MywzNjA4NCwzNjA4NSwzNjA4NiwzNjA4NywzNjA4OCwzNjA4OSwzNjA5MCwzNjA5MSwzNjA5MiwzNjA5MywzNjA5NCwzNjA5NSwzNjA5NiwzNjA5NywzNjA5''@;'; put 'put ''OCwzNjA5OSwzNjEwMCwzNjEwMSwzNjEwMiwzNjEwMywzNjEwNCwzNjEwNSwzNjEwNiwzNjEwNywzNjEwOCwzNjEwOSwyMDMxOSwyMDMxMSwyMDI3NCwyMDI4NSwyMDM0MiwyMDM0MCwyMDM2OSwyMDM2MSwyMDM1NSwyMDM2NywyMDM1MCwyMDM0NywyMDM5NCwyMDM0OCwyMDM5NiwyMDM3Miwy''@;'; put 'put ''MDQ1NCwyMDQ1NiwyMDQ1OCwyMDQyMSwyMDQ0MiwyMDQ1MSwyMDQ0NCwyMDQzMywyMDQ0NywyMDQ3MiwyMDUyMSwyMDU1NiwyMDQ2NywyMDUyNCwyMDQ5NSwyMDUyNiwyMDUyNSwyMDQ3OCwyMDUwOCwyMDQ5MiwyMDUxNywyMDUyMCwyMDYwNiwyMDU0NywyMDU2NSwyMDU1MiwyMDU1OCwyMDU4''@;'; put 'put ''OCwyMDYwMywyMDY0NSwyMDY0NywyMDY0OSwyMDY2NiwyMDY5NCwyMDc0MiwyMDcxNywyMDcxNiwyMDcxMCwyMDcxOCwyMDc0MywyMDc0NywyMDE4OSwyNzcwOSwyMDMxMiwyMDMyNSwyMDQzMCw0MDg2NCwyNzcxOCwzMTg2MCwyMDg0NiwyNDA2MSw0MDY0OSwzOTMyMCwyMDg2NSwyMjgwNCwy''@;'; put 'put ''MTI0MSwyMTI2MSwzNTMzNSwyMTI2NCwyMDk3MSwyMjgwOSwyMDgyMSwyMDEyOCwyMDgyMiwyMDE0NywzNDkyNiwzNDk4MCwyMDE0OSwzMzA0NCwzNTAyNiwzMTEwNCwyMzM0OCwzNDgxOSwzMjY5NiwyMDkwNywyMDkxMywyMDkyNSwyMDkyNCwzNjExMCwzNjExMSwzNjExMiwzNjExMywzNjEx''@;'; put 'put ''NCwzNjExNSwzNjExNiwzNjExNywzNjExOCwzNjExOSwzNjEyMCwzNjEyMSwzNjEyMiwzNjEyMywzNjEyNCwzNjEyOCwzNjE3NywzNjE3OCwzNjE4MywzNjE5MSwzNjE5NywzNjIwMCwzNjIwMSwzNjIwMiwzNjIwNCwzNjIwNiwzNjIwNywzNjIwOSwzNjIxMCwzNjIxNiwzNjIxNywzNjIxOCwz''@;'; put 'put ''NjIxOSwzNjIyMCwzNjIyMSwzNjIyMiwzNjIyMywzNjIyNCwzNjIyNiwzNjIyNywzNjIzMCwzNjIzMSwzNjIzMiwzNjIzMywzNjIzNiwzNjIzNywzNjIzOCwzNjIzOSwzNjI0MCwzNjI0MiwzNjI0MywzNjI0NSwzNjI0NiwzNjI0NywzNjI0OCwzNjI0OSwzNjI1MCwzNjI1MSwzNjI1MiwzNjI1''@;'; put 'put ''MywzNjI1NCwzNjI1NiwzNjI1NywzNjI1OCwzNjI2MCwzNjI2MSwzNjI2MiwzNjI2MywzNjI2NCwzNjI2NSwzNjI2NiwzNjI2NywzNjI2OCwzNjI2OSwzNjI3MCwzNjI3MSwzNjI3MiwzNjI3NCwzNjI3OCwzNjI3OSwzNjI4MSwzNjI4MywzNjI4NSwzNjI4OCwzNjI4OSwzNjI5MCwzNjI5Mywz''@;'; put 'put ''NjI5NSwzNjI5NiwzNjI5NywzNjI5OCwzNjMwMSwzNjMwNCwzNjMwNiwzNjMwNywzNjMwOCwyMDkzNSwyMDg4NiwyMDg5OCwyMDkwMSwzNTc0NCwzNTc1MCwzNTc1MSwzNTc1NCwzNTc2NCwzNTc2NSwzNTc2NywzNTc3OCwzNTc3OSwzNTc4NywzNTc5MSwzNTc5MCwzNTc5NCwzNTc5NSwzNTc5''@;'; put 'put ''NiwzNTc5OCwzNTgwMCwzNTgwMSwzNTgwNCwzNTgwNywzNTgwOCwzNTgxMiwzNTgxNiwzNTgxNywzNTgyMiwzNTgyNCwzNTgyNywzNTgzMCwzNTgzMywzNTgzNiwzNTgzOSwzNTg0MCwzNTg0MiwzNTg0NCwzNTg0NywzNTg1MiwzNTg1NSwzNTg1NywzNTg1OCwzNTg2MCwzNTg2MSwzNTg2Miwz''@;'; put 'put ''NTg2NSwzNTg2NywzNTg2NCwzNTg2OSwzNTg3MSwzNTg3MiwzNTg3MywzNTg3NywzNTg3OSwzNTg4MiwzNTg4MywzNTg4NiwzNTg4NywzNTg5MCwzNTg5MSwzNTg5MywzNTg5NCwyMTM1MywyMTM3MCwzODQyOSwzODQzNCwzODQzMywzODQ0OSwzODQ0MiwzODQ2MSwzODQ2MCwzODQ2NiwzODQ3''@;'; put 'put ''MywzODQ4NCwzODQ5NSwzODUwMywzODUwOCwzODUxNCwzODUxNiwzODUzNiwzODU0MSwzODU1MSwzODU3NiwzNzAxNSwzNzAxOSwzNzAyMSwzNzAxNywzNzAzNiwzNzAyNSwzNzA0NCwzNzA0MywzNzA0NiwzNzA1MCwzNjMwOSwzNjMxMiwzNjMxMywzNjMxNiwzNjMyMCwzNjMyMSwzNjMyMiwz''@;'; put 'put ''NjMyNSwzNjMyNiwzNjMyNywzNjMyOSwzNjMzMywzNjMzNCwzNjMzNiwzNjMzNywzNjMzOCwzNjM0MCwzNjM0MiwzNjM0OCwzNjM1MCwzNjM1MSwzNjM1MiwzNjM1MywzNjM1NCwzNjM1NSwzNjM1NiwzNjM1OCwzNjM1OSwzNjM2MCwzNjM2MywzNjM2NSwzNjM2NiwzNjM2OCwzNjM2OSwzNjM3''@;'; put 'put ''MCwzNjM3MSwzNjM3MywzNjM3NCwzNjM3NSwzNjM3NiwzNjM3NywzNjM3OCwzNjM3OSwzNjM4MCwzNjM4NCwzNjM4NSwzNjM4OCwzNjM4OSwzNjM5MCwzNjM5MSwzNjM5MiwzNjM5NSwzNjM5NywzNjQwMCwzNjQwMiwzNjQwMywzNjQwNCwzNjQwNiwzNjQwNywzNjQwOCwzNjQxMSwzNjQxMiwz''@;'; put 'put ''NjQxNCwzNjQxNSwzNjQxOSwzNjQyMSwzNjQyMiwzNjQyOCwzNjQyOSwzNjQzMCwzNjQzMSwzNjQzMiwzNjQzNSwzNjQzNiwzNjQzNywzNjQzOCwzNjQzOSwzNjQ0MCwzNjQ0MiwzNjQ0MywzNjQ0NCwzNjQ0NSwzNjQ0NiwzNjQ0NywzNjQ0OCwzNjQ0OSwzNjQ1MCwzNjQ1MSwzNjQ1MiwzNjQ1''@;'; put 'put ''MywzNjQ1NSwzNjQ1NiwzNjQ1OCwzNjQ1OSwzNjQ2MiwzNjQ2NSwzNzA0OCwzNzA0MCwzNzA3MSwzNzA2MSwzNzA1NCwzNzA3MiwzNzA2MCwzNzA2MywzNzA3NSwzNzA5NCwzNzA5MCwzNzA4NCwzNzA3OSwzNzA4MywzNzA5OSwzNzEwMywzNzExOCwzNzEyNCwzNzE1NCwzNzE1MCwzNzE1NSwz''@;'; put 'put ''NzE2OSwzNzE2NywzNzE3NywzNzE4NywzNzE5MCwyMTAwNSwyMjg1MCwyMTE1NCwyMTE2NCwyMTE2NSwyMTE4MiwyMTc1OSwyMTIwMCwyMTIwNiwyMTIzMiwyMTQ3MSwyOTE2NiwzMDY2OSwyNDMwOCwyMDk4MSwyMDk4OCwzOTcyNywyMTQzMCwyNDMyMSwzMDA0MiwyNDA0NywyMjM0OCwyMjQ0''@;'; put 'put ''MSwyMjQzMywyMjY1NCwyMjcxNiwyMjcyNSwyMjczNywyMjMxMywyMjMxNiwyMjMxNCwyMjMyMywyMjMyOSwyMjMxOCwyMjMxOSwyMjM2NCwyMjMzMSwyMjMzOCwyMjM3NywyMjQwNSwyMjM3OSwyMjQwNiwyMjM5NiwyMjM5NSwyMjM3NiwyMjM4MSwyMjM5MCwyMjM4NywyMjQ0NSwyMjQzNiwy''@;'; put 'put ''MjQxMiwyMjQ1MCwyMjQ3OSwyMjQzOSwyMjQ1MiwyMjQxOSwyMjQzMiwyMjQ4NSwyMjQ4OCwyMjQ5MCwyMjQ4OSwyMjQ4MiwyMjQ1NiwyMjUxNiwyMjUxMSwyMjUyMCwyMjUwMCwyMjQ5MywzNjQ2NywzNjQ2OSwzNjQ3MSwzNjQ3MiwzNjQ3MywzNjQ3NCwzNjQ3NSwzNjQ3NywzNjQ3OCwzNjQ4''@;'; put 'put ''MCwzNjQ4MiwzNjQ4MywzNjQ4NCwzNjQ4NiwzNjQ4OCwzNjQ4OSwzNjQ5MCwzNjQ5MSwzNjQ5MiwzNjQ5MywzNjQ5NCwzNjQ5NywzNjQ5OCwzNjQ5OSwzNjUwMSwzNjUwMiwzNjUwMywzNjUwNCwzNjUwNSwzNjUwNiwzNjUwNywzNjUwOSwzNjUxMSwzNjUxMiwzNjUxMywzNjUxNCwzNjUxNSwz''@;'; put 'put ''NjUxNiwzNjUxNywzNjUxOCwzNjUxOSwzNjUyMCwzNjUyMSwzNjUyMiwzNjUyNSwzNjUyNiwzNjUyOCwzNjUyOSwzNjUzMSwzNjUzMiwzNjUzMywzNjUzNCwzNjUzNSwzNjUzNiwzNjUzNywzNjUzOSwzNjU0MCwzNjU0MSwzNjU0MiwzNjU0MywzNjU0NCwzNjU0NSwzNjU0NiwzNjU0NywzNjU0''@;'; put 'put ''OCwzNjU0OSwzNjU1MCwzNjU1MSwzNjU1MiwzNjU1MywzNjU1NCwzNjU1NSwzNjU1NiwzNjU1NywzNjU1OSwzNjU2MCwzNjU2MSwzNjU2MiwzNjU2MywzNjU2NCwzNjU2NSwzNjU2NiwzNjU2NywzNjU2OCwzNjU2OSwzNjU3MCwzNjU3MSwzNjU3MiwzNjU3MywzNjU3NCwzNjU3NSwzNjU3Niwz''@;'; put 'put ''NjU3NywzNjU3OCwzNjU3OSwzNjU4MCwyMjUzOSwyMjU0MSwyMjUyNSwyMjUwOSwyMjUyOCwyMjU1OCwyMjU1MywyMjU5NiwyMjU2MCwyMjYyOSwyMjYzNiwyMjY1NywyMjY2NSwyMjY4MiwyMjY1NiwzOTMzNiw0MDcyOSwyNTA4NywzMzQwMSwzMzQwNSwzMzQwNywzMzQyMywzMzQxOCwzMzQ0''@;'; put 'put ''OCwzMzQxMiwzMzQyMiwzMzQyNSwzMzQzMSwzMzQzMywzMzQ1MSwzMzQ2NCwzMzQ3MCwzMzQ1NiwzMzQ4MCwzMzQ4MiwzMzUwNywzMzQzMiwzMzQ2MywzMzQ1NCwzMzQ4MywzMzQ4NCwzMzQ3MywzMzQ0OSwzMzQ2MCwzMzQ0MSwzMzQ1MCwzMzQzOSwzMzQ3NiwzMzQ4NiwzMzQ0NCwzMzUwNSwz''@;'; put 'put ''MzU0NSwzMzUyNywzMzUwOCwzMzU1MSwzMzU0MywzMzUwMCwzMzUyNCwzMzQ5MCwzMzQ5NiwzMzU0OCwzMzUzMSwzMzQ5MSwzMzU1MywzMzU2MiwzMzU0MiwzMzU1NiwzMzU1NywzMzUwNCwzMzQ5MywzMzU2NCwzMzYxNywzMzYyNywzMzYyOCwzMzU0NCwzMzY4MiwzMzU5NiwzMzU4OCwzMzU4''@;'; put 'put ''NSwzMzY5MSwzMzYzMCwzMzU4MywzMzYxNSwzMzYwNywzMzYwMywzMzYzMSwzMzYwMCwzMzU1OSwzMzYzMiwzMzU4MSwzMzU5NCwzMzU4NywzMzYzOCwzMzYzNywzNjU4MSwzNjU4MiwzNjU4MywzNjU4NCwzNjU4NSwzNjU4NiwzNjU4NywzNjU4OCwzNjU4OSwzNjU5MCwzNjU5MSwzNjU5Miwz''@;'; put 'put ''NjU5MywzNjU5NCwzNjU5NSwzNjU5NiwzNjU5NywzNjU5OCwzNjU5OSwzNjYwMCwzNjYwMSwzNjYwMiwzNjYwMywzNjYwNCwzNjYwNSwzNjYwNiwzNjYwNywzNjYwOCwzNjYwOSwzNjYxMCwzNjYxMSwzNjYxMiwzNjYxMywzNjYxNCwzNjYxNSwzNjYxNiwzNjYxNywzNjYxOCwzNjYxOSwzNjYy''@;'; put 'put ''MCwzNjYyMSwzNjYyMiwzNjYyMywzNjYyNCwzNjYyNSwzNjYyNiwzNjYyNywzNjYyOCwzNjYyOSwzNjYzMCwzNjYzMSwzNjYzMiwzNjYzMywzNjYzNCwzNjYzNSwzNjYzNiwzNjYzNywzNjYzOCwzNjYzOSwzNjY0MCwzNjY0MSwzNjY0MiwzNjY0MywzNjY0NCwzNjY0NSwzNjY0NiwzNjY0Nywz''@;'; put 'put ''NjY0OCwzNjY0OSwzNjY1MCwzNjY1MSwzNjY1MiwzNjY1MywzNjY1NCwzNjY1NSwzNjY1NiwzNjY1NywzNjY1OCwzNjY1OSwzNjY2MCwzNjY2MSwzNjY2MiwzNjY2MywzNjY2NCwzNjY2NSwzNjY2NiwzNjY2NywzNjY2OCwzNjY2OSwzNjY3MCwzNjY3MSwzNjY3MiwzNjY3MywzNjY3NCwzNjY3''@;'; put 'put ''NSwzNjY3NiwzMzY0MCwzMzU2MywzMzY0MSwzMzY0NCwzMzY0MiwzMzY0NSwzMzY0NiwzMzcxMiwzMzY1NiwzMzcxNSwzMzcxNiwzMzY5NiwzMzcwNiwzMzY4MywzMzY5MiwzMzY2OSwzMzY2MCwzMzcxOCwzMzcwNSwzMzY2MSwzMzcyMCwzMzY1OSwzMzY4OCwzMzY5NCwzMzcwNCwzMzcyMiwz''@;'; put 'put ''MzcyNCwzMzcyOSwzMzc5MywzMzc2NSwzMzc1MiwyMjUzNSwzMzgxNiwzMzgwMywzMzc1NywzMzc4OSwzMzc1MCwzMzgyMCwzMzg0OCwzMzgwOSwzMzc5OCwzMzc0OCwzMzc1OSwzMzgwNywzMzc5NSwzMzc4NCwzMzc4NSwzMzc3MCwzMzczMywzMzcyOCwzMzgzMCwzMzc3NiwzMzc2MSwzMzg4''@;'; put 'put ''NCwzMzg3MywzMzg4MiwzMzg4MSwzMzkwNywzMzkyNywzMzkyOCwzMzkxNCwzMzkyOSwzMzkxMiwzMzg1MiwzMzg2MiwzMzg5NywzMzkxMCwzMzkzMiwzMzkzNCwzMzg0MSwzMzkwMSwzMzk4NSwzMzk5NywzNGUzLDM0MDIyLDMzOTgxLDM0MDAzLDMzOTk0LDMzOTgzLDMzOTc4LDM0MDE2LDMz''@;'; put 'put ''OTUzLDMzOTc3LDMzOTcyLDMzOTQzLDM0MDIxLDM0MDE5LDM0MDYwLDI5OTY1LDM0MTA0LDM0MDMyLDM0MTA1LDM0MDc5LDM0MTA2LDM2Njc3LDM2Njc4LDM2Njc5LDM2NjgwLDM2NjgxLDM2NjgyLDM2NjgzLDM2Njg0LDM2Njg1LDM2Njg2LDM2Njg3LDM2Njg4LDM2Njg5LDM2NjkwLDM2Njkx''@;'; put 'put ''LDM2NjkyLDM2NjkzLDM2Njk0LDM2Njk1LDM2Njk2LDM2Njk3LDM2Njk4LDM2Njk5LDM2NzAwLDM2NzAxLDM2NzAyLDM2NzAzLDM2NzA0LDM2NzA1LDM2NzA2LDM2NzA3LDM2NzA4LDM2NzA5LDM2NzE0LDM2NzM2LDM2NzQ4LDM2NzU0LDM2NzY1LDM2NzY4LDM2NzY5LDM2NzcwLDM2NzcyLDM2''@;'; put 'put ''NzczLDM2Nzc0LDM2Nzc1LDM2Nzc4LDM2NzgwLDM2NzgxLDM2NzgyLDM2NzgzLDM2Nzg2LDM2Nzg3LDM2Nzg4LDM2Nzg5LDM2NzkxLDM2NzkyLDM2Nzk0LDM2Nzk1LDM2Nzk2LDM2Nzk5LDM2ODAwLDM2ODAzLDM2ODA2LDM2ODA5LDM2ODEwLDM2ODExLDM2ODEyLDM2ODEzLDM2ODE1LDM2ODE4''@;'; put 'put ''LDM2ODIyLDM2ODIzLDM2ODI2LDM2ODMyLDM2ODMzLDM2ODM1LDM2ODM5LDM2ODQ0LDM2ODQ3LDM2ODQ5LDM2ODUwLDM2ODUyLDM2ODUzLDM2ODU0LDM2ODU4LDM2ODU5LDM2ODYwLDM2ODYyLDM2ODYzLDM2ODcxLDM2ODcyLDM2ODc2LDM2ODc4LDM2ODgzLDM2ODg1LDM2ODg4LDM0MTM0LDM0''@;'; put 'put ''MTA3LDM0MDQ3LDM0MDQ0LDM0MTM3LDM0MTIwLDM0MTUyLDM0MTQ4LDM0MTQyLDM0MTcwLDMwNjI2LDM0MTE1LDM0MTYyLDM0MTcxLDM0MjEyLDM0MjE2LDM0MTgzLDM0MTkxLDM0MTY5LDM0MjIyLDM0MjA0LDM0MTgxLDM0MjMzLDM0MjMxLDM0MjI0LDM0MjU5LDM0MjQxLDM0MjY4LDM0MzAz''@;'; put 'put ''LDM0MzQzLDM0MzA5LDM0MzQ1LDM0MzI2LDM0MzY0LDI0MzE4LDI0MzI4LDIyODQ0LDIyODQ5LDMyODIzLDIyODY5LDIyODc0LDIyODcyLDIxMjYzLDIzNTg2LDIzNTg5LDIzNTk2LDIzNjA0LDI1MTY0LDI1MTk0LDI1MjQ3LDI1Mjc1LDI1MjkwLDI1MzA2LDI1MzAzLDI1MzI2LDI1Mzc4LDI1''@;'; put 'put ''MzM0LDI1NDAxLDI1NDE5LDI1NDExLDI1NTE3LDI1NTkwLDI1NDU3LDI1NDY2LDI1NDg2LDI1NTI0LDI1NDUzLDI1NTE2LDI1NDgyLDI1NDQ5LDI1NTE4LDI1NTMyLDI1NTg2LDI1NTkyLDI1NTY4LDI1NTk5LDI1NTQwLDI1NTY2LDI1NTUwLDI1NjgyLDI1NTQyLDI1NTM0LDI1NjY5LDI1NjY1''@;'; put 'put ''LDI1NjExLDI1NjI3LDI1NjMyLDI1NjEyLDI1NjM4LDI1NjMzLDI1Njk0LDI1NzMyLDI1NzA5LDI1NzUwLDM2ODg5LDM2ODkyLDM2ODk5LDM2OTAwLDM2OTAxLDM2OTAzLDM2OTA0LDM2OTA1LDM2OTA2LDM2OTA3LDM2OTA4LDM2OTEyLDM2OTEzLDM2OTE0LDM2OTE1LDM2OTE2LDM2OTE5LDM2''@;'; put 'put ''OTIxLDM2OTIyLDM2OTI1LDM2OTI3LDM2OTI4LDM2OTMxLDM2OTMzLDM2OTM0LDM2OTM2LDM2OTM3LDM2OTM4LDM2OTM5LDM2OTQwLDM2OTQyLDM2OTQ4LDM2OTQ5LDM2OTUwLDM2OTUzLDM2OTU0LDM2OTU2LDM2OTU3LDM2OTU4LDM2OTU5LDM2OTYwLDM2OTYxLDM2OTY0LDM2OTY2LDM2OTY3''@;'; put 'put ''LDM2OTY5LDM2OTcwLDM2OTcxLDM2OTcyLDM2OTc1LDM2OTc2LDM2OTc3LDM2OTc4LDM2OTc5LDM2OTgyLDM2OTgzLDM2OTg0LDM2OTg1LDM2OTg2LDM2OTg3LDM2OTg4LDM2OTkwLDM2OTkzLDM2OTk2LDM2OTk3LDM2OTk4LDM2OTk5LDM3MDAxLDM3MDAyLDM3MDA0LDM3MDA1LDM3MDA2LDM3''@;'; put 'put ''MDA3LDM3MDA4LDM3MDEwLDM3MDEyLDM3MDE0LDM3MDE2LDM3MDE4LDM3MDIwLDM3MDIyLDM3MDIzLDM3MDI0LDM3MDI4LDM3MDI5LDM3MDMxLDM3MDMyLDM3MDMzLDM3MDM1LDM3MDM3LDM3MDQyLDM3MDQ3LDM3MDUyLDM3MDUzLDM3MDU1LDM3MDU2LDI1NzIyLDI1NzgzLDI1Nzg0LDI1NzUz''@;'; put 'put ''LDI1Nzg2LDI1NzkyLDI1ODA4LDI1ODE1LDI1ODI4LDI1ODI2LDI1ODY1LDI1ODkzLDI1OTAyLDI0MzMxLDI0NTMwLDI5OTc3LDI0MzM3LDIxMzQzLDIxNDg5LDIxNTAxLDIxNDgxLDIxNDgwLDIxNDk5LDIxNTIyLDIxNTI2LDIxNTEwLDIxNTc5LDIxNTg2LDIxNTg3LDIxNTg4LDIxNTkwLDIx''@;'; put 'put ''NTcxLDIxNTM3LDIxNTkxLDIxNTkzLDIxNTM5LDIxNTU0LDIxNjM0LDIxNjUyLDIxNjIzLDIxNjE3LDIxNjA0LDIxNjU4LDIxNjU5LDIxNjM2LDIxNjIyLDIxNjA2LDIxNjYxLDIxNzEyLDIxNjc3LDIxNjk4LDIxNjg0LDIxNzE0LDIxNjcxLDIxNjcwLDIxNzE1LDIxNzE2LDIxNjE4LDIxNjY3''@;'; put 'put ''LDIxNzE3LDIxNjkxLDIxNjk1LDIxNzA4LDIxNzIxLDIxNzIyLDIxNzI0LDIxNjczLDIxNjc0LDIxNjY4LDIxNzI1LDIxNzExLDIxNzI2LDIxNzg3LDIxNzM1LDIxNzkyLDIxNzU3LDIxNzgwLDIxNzQ3LDIxNzk0LDIxNzk1LDIxNzc1LDIxNzc3LDIxNzk5LDIxODAyLDIxODYzLDIxOTAzLDIx''@;'; put 'put ''OTQxLDIxODMzLDIxODY5LDIxODI1LDIxODQ1LDIxODIzLDIxODQwLDIxODIwLDM3MDU4LDM3MDU5LDM3MDYyLDM3MDY0LDM3MDY1LDM3MDY3LDM3MDY4LDM3MDY5LDM3MDc0LDM3MDc2LDM3MDc3LDM3MDc4LDM3MDgwLDM3MDgxLDM3MDgyLDM3MDg2LDM3MDg3LDM3MDg4LDM3MDkxLDM3MDky''@;'; put 'put ''LDM3MDkzLDM3MDk3LDM3MDk4LDM3MTAwLDM3MTAyLDM3MTA0LDM3MTA1LDM3MTA2LDM3MTA3LDM3MTA5LDM3MTEwLDM3MTExLDM3MTEzLDM3MTE0LDM3MTE1LDM3MTE2LDM3MTE5LDM3MTIwLDM3MTIxLDM3MTIzLDM3MTI1LDM3MTI2LDM3MTI3LDM3MTI4LDM3MTI5LDM3MTMwLDM3MTMxLDM3''@;'; put 'put ''MTMyLDM3MTMzLDM3MTM0LDM3MTM1LDM3MTM2LDM3MTM3LDM3MTM4LDM3MTM5LDM3MTQwLDM3MTQxLDM3MTQyLDM3MTQzLDM3MTQ0LDM3MTQ2LDM3MTQ3LDM3MTQ4LDM3MTQ5LDM3MTUxLDM3MTUyLDM3MTUzLDM3MTU2LDM3MTU3LDM3MTU4LDM3MTU5LDM3MTYwLDM3MTYxLDM3MTYyLDM3MTYz''@;'; put 'put ''LDM3MTY0LDM3MTY1LDM3MTY2LDM3MTY4LDM3MTcwLDM3MTcxLDM3MTcyLDM3MTczLDM3MTc0LDM3MTc1LDM3MTc2LDM3MTc4LDM3MTc5LDM3MTgwLDM3MTgxLDM3MTgyLDM3MTgzLDM3MTg0LDM3MTg1LDM3MTg2LDM3MTg4LDIxODE1LDIxODQ2LDIxODc3LDIxODc4LDIxODc5LDIxODExLDIx''@;'; put 'put ''ODA4LDIxODUyLDIxODk5LDIxOTcwLDIxODkxLDIxOTM3LDIxOTQ1LDIxODk2LDIxODg5LDIxOTE5LDIxODg2LDIxOTc0LDIxOTA1LDIxODgzLDIxOTgzLDIxOTQ5LDIxOTUwLDIxOTA4LDIxOTEzLDIxOTk0LDIyMDA3LDIxOTYxLDIyMDQ3LDIxOTY5LDIxOTk1LDIxOTk2LDIxOTcyLDIxOTkw''@;'; put 'put ''LDIxOTgxLDIxOTU2LDIxOTk5LDIxOTg5LDIyMDAyLDIyMDAzLDIxOTY0LDIxOTY1LDIxOTkyLDIyMDA1LDIxOTg4LDM2NzU2LDIyMDQ2LDIyMDI0LDIyMDI4LDIyMDE3LDIyMDUyLDIyMDUxLDIyMDE0LDIyMDE2LDIyMDU1LDIyMDYxLDIyMTA0LDIyMDczLDIyMTAzLDIyMDYwLDIyMDkzLDIy''@;'; put 'put ''MTE0LDIyMTA1LDIyMTA4LDIyMDkyLDIyMTAwLDIyMTUwLDIyMTE2LDIyMTI5LDIyMTIzLDIyMTM5LDIyMTQwLDIyMTQ5LDIyMTYzLDIyMTkxLDIyMjI4LDIyMjMxLDIyMjM3LDIyMjQxLDIyMjYxLDIyMjUxLDIyMjY1LDIyMjcxLDIyMjc2LDIyMjgyLDIyMjgxLDIyMzAwLDI0MDc5LDI0MDg5''@;'; put 'put ''LDI0MDg0LDI0MDgxLDI0MTEzLDI0MTIzLDI0MTI0LDM3MTg5LDM3MTkxLDM3MTkyLDM3MjAxLDM3MjAzLDM3MjA0LDM3MjA1LDM3MjA2LDM3MjA4LDM3MjA5LDM3MjExLDM3MjEyLDM3MjE1LDM3MjE2LDM3MjIyLDM3MjIzLDM3MjI0LDM3MjI3LDM3MjI5LDM3MjM1LDM3MjQyLDM3MjQzLDM3''@;'; put 'put ''MjQ0LDM3MjQ4LDM3MjQ5LDM3MjUwLDM3MjUxLDM3MjUyLDM3MjU0LDM3MjU2LDM3MjU4LDM3MjYyLDM3MjYzLDM3MjY3LDM3MjY4LDM3MjY5LDM3MjcwLDM3MjcxLDM3MjcyLDM3MjczLDM3Mjc2LDM3Mjc3LDM3Mjc4LDM3Mjc5LDM3MjgwLDM3MjgxLDM3Mjg0LDM3Mjg1LDM3Mjg2LDM3Mjg3''@;'; put 'put ''LDM3Mjg4LDM3Mjg5LDM3MjkxLDM3MjkyLDM3Mjk2LDM3Mjk3LDM3Mjk4LDM3Mjk5LDM3MzAyLDM3MzAzLDM3MzA0LDM3MzA1LDM3MzA3LDM3MzA4LDM3MzA5LDM3MzEwLDM3MzExLDM3MzEyLDM3MzEzLDM3MzE0LDM3MzE1LDM3MzE2LDM3MzE3LDM3MzE4LDM3MzIwLDM3MzIzLDM3MzI4LDM3''@;'; put 'put ''MzMwLDM3MzMxLDM3MzMyLDM3MzMzLDM3MzM0LDM3MzM1LDM3MzM2LDM3MzM3LDM3MzM4LDM3MzM5LDM3MzQxLDM3MzQyLDM3MzQzLDM3MzQ0LDM3MzQ1LDM3MzQ2LDM3MzQ3LDM3MzQ4LDM3MzQ5LDI0MTE5LDI0MTMyLDI0MTQ4LDI0MTU1LDI0MTU4LDI0MTYxLDIzNjkyLDIzNjc0LDIzNjkz''@;'; put 'put ''LDIzNjk2LDIzNzAyLDIzNjg4LDIzNzA0LDIzNzA1LDIzNjk3LDIzNzA2LDIzNzA4LDIzNzMzLDIzNzE0LDIzNzQxLDIzNzI0LDIzNzIzLDIzNzI5LDIzNzE1LDIzNzQ1LDIzNzM1LDIzNzQ4LDIzNzYyLDIzNzgwLDIzNzU1LDIzNzgxLDIzODEwLDIzODExLDIzODQ3LDIzODQ2LDIzODU0LDIz''@;'; put 'put ''ODQ0LDIzODM4LDIzODE0LDIzODM1LDIzODk2LDIzODcwLDIzODYwLDIzODY5LDIzOTE2LDIzODk5LDIzOTE5LDIzOTAxLDIzOTE1LDIzODgzLDIzODgyLDIzOTEzLDIzOTI0LDIzOTM4LDIzOTYxLDIzOTY1LDM1OTU1LDIzOTkxLDI0MDA1LDI0NDM1LDI0NDM5LDI0NDUwLDI0NDU1LDI0NDU3''@;'; put 'put ''LDI0NDYwLDI0NDY5LDI0NDczLDI0NDc2LDI0NDg4LDI0NDkzLDI0NTAxLDI0NTA4LDM0OTE0LDI0NDE3LDI5MzU3LDI5MzYwLDI5MzY0LDI5MzY3LDI5MzY4LDI5Mzc5LDI5Mzc3LDI5MzkwLDI5Mzg5LDI5Mzk0LDI5NDE2LDI5NDIzLDI5NDE3LDI5NDI2LDI5NDI4LDI5NDMxLDI5NDQxLDI5''@;'; put 'put ''NDI3LDI5NDQzLDI5NDM0LDM3MzUwLDM3MzUxLDM3MzUyLDM3MzUzLDM3MzU0LDM3MzU1LDM3MzU2LDM3MzU3LDM3MzU4LDM3MzU5LDM3MzYwLDM3MzYxLDM3MzYyLDM3MzYzLDM3MzY0LDM3MzY1LDM3MzY2LDM3MzY3LDM3MzY4LDM3MzY5LDM3MzcwLDM3MzcxLDM3MzcyLDM3MzczLDM3Mzc0''@;'; put 'put ''LDM3Mzc1LDM3Mzc2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzg3LDM3Mzg4LDM3Mzg5LDM3MzkwLDM3MzkxLDM3MzkyLDM3MzkzLDM3Mzk0LDM3Mzk1LDM3Mzk2LDM3Mzk3LDM3Mzk4LDM3Mzk5LDM3NDAwLDM3NDAxLDM3''@;'; put 'put ''NDAyLDM3NDAzLDM3NDA0LDM3NDA1LDM3NDA2LDM3NDA3LDM3NDA4LDM3NDA5LDM3NDEwLDM3NDExLDM3NDEyLDM3NDEzLDM3NDE0LDM3NDE1LDM3NDE2LDM3NDE3LDM3NDE4LDM3NDE5LDM3NDIwLDM3NDIxLDM3NDIyLDM3NDIzLDM3NDI0LDM3NDI1LDM3NDI2LDM3NDI3LDM3NDI4LDM3NDI5''@;'; put 'put ''LDM3NDMwLDM3NDMxLDM3NDMyLDM3NDMzLDM3NDM0LDM3NDM1LDM3NDM2LDM3NDM3LDM3NDM4LDM3NDM5LDM3NDQwLDM3NDQxLDM3NDQyLDM3NDQzLDM3NDQ0LDM3NDQ1LDI5NDM1LDI5NDYzLDI5NDU5LDI5NDczLDI5NDUwLDI5NDcwLDI5NDY5LDI5NDYxLDI5NDc0LDI5NDk3LDI5NDc3LDI5''@;'; put 'put ''NDg0LDI5NDk2LDI5NDg5LDI5NTIwLDI5NTE3LDI5NTI3LDI5NTM2LDI5NTQ4LDI5NTUxLDI5NTY2LDMzMzA3LDIyODIxLDM5MTQzLDIyODIwLDIyNzg2LDM5MjY3LDM5MjcxLDM5MjcyLDM5MjczLDM5Mjc0LDM5Mjc1LDM5Mjc2LDM5Mjg0LDM5Mjg3LDM5MjkzLDM5Mjk2LDM5MzAwLDM5MzAz''@;'; put 'put ''LDM5MzA2LDM5MzA5LDM5MzEyLDM5MzEzLDM5MzE1LDM5MzE2LDM5MzE3LDI0MTkyLDI0MjA5LDI0MjAzLDI0MjE0LDI0MjI5LDI0MjI0LDI0MjQ5LDI0MjQ1LDI0MjU0LDI0MjQzLDM2MTc5LDI0Mjc0LDI0MjczLDI0MjgzLDI0Mjk2LDI0Mjk4LDMzMjEwLDI0NTE2LDI0NTIxLDI0NTM0LDI0''@;'; put 'put ''NTI3LDI0NTc5LDI0NTU4LDI0NTgwLDI0NTQ1LDI0NTQ4LDI0NTc0LDI0NTgxLDI0NTgyLDI0NTU0LDI0NTU3LDI0NTY4LDI0NjAxLDI0NjI5LDI0NjE0LDI0NjAzLDI0NTkxLDI0NTg5LDI0NjE3LDI0NjE5LDI0NTg2LDI0NjM5LDI0NjA5LDI0Njk2LDI0Njk3LDI0Njk5LDI0Njk4LDI0NjQy''@;'; put 'put ''LDM3NDQ2LDM3NDQ3LDM3NDQ4LDM3NDQ5LDM3NDUwLDM3NDUxLDM3NDUyLDM3NDUzLDM3NDU0LDM3NDU1LDM3NDU2LDM3NDU3LDM3NDU4LDM3NDU5LDM3NDYwLDM3NDYxLDM3NDYyLDM3NDYzLDM3NDY0LDM3NDY1LDM3NDY2LDM3NDY3LDM3NDY4LDM3NDY5LDM3NDcwLDM3NDcxLDM3NDcyLDM3''@;'; put 'put ''NDczLDM3NDc0LDM3NDc1LDM3NDc2LDM3NDc3LDM3NDc4LDM3NDc5LDM3NDgwLDM3NDgxLDM3NDgyLDM3NDgzLDM3NDg0LDM3NDg1LDM3NDg2LDM3NDg3LDM3NDg4LDM3NDg5LDM3NDkwLDM3NDkxLDM3NDkzLDM3NDk0LDM3NDk1LDM3NDk2LDM3NDk3LDM3NDk4LDM3NDk5LDM3NTAwLDM3NTAx''@;'; put 'put ''LDM3NTAyLDM3NTAzLDM3NTA0LDM3NTA1LDM3NTA2LDM3NTA3LDM3NTA4LDM3NTA5LDM3NTEwLDM3NTExLDM3NTEyLDM3NTEzLDM3NTE0LDM3NTE1LDM3NTE2LDM3NTE3LDM3NTE5LDM3NTIwLDM3NTIxLDM3NTIyLDM3NTIzLDM3NTI0LDM3NTI1LDM3NTI2LDM3NTI3LDM3NTI4LDM3NTI5LDM3''@;'; put 'put ''NTMwLDM3NTMxLDM3NTMyLDM3NTMzLDM3NTM0LDM3NTM1LDM3NTM2LDM3NTM3LDM3NTM4LDM3NTM5LDM3NTQwLDM3NTQxLDM3NTQyLDM3NTQzLDI0NjgyLDI0NzAxLDI0NzI2LDI0NzMwLDI0NzQ5LDI0NzMzLDI0NzA3LDI0NzIyLDI0NzE2LDI0NzMxLDI0ODEyLDI0NzYzLDI0NzUzLDI0Nzk3''@;'; put 'put ''LDI0NzkyLDI0Nzc0LDI0Nzk0LDI0NzU2LDI0ODY0LDI0ODcwLDI0ODUzLDI0ODY3LDI0ODIwLDI0ODMyLDI0ODQ2LDI0ODc1LDI0OTA2LDI0OTQ5LDI1MDA0LDI0OTgwLDI0OTk5LDI1MDE1LDI1MDQ0LDI1MDc3LDI0NTQxLDM4NTc5LDM4Mzc3LDM4Mzc5LDM4Mzg1LDM4Mzg3LDM4Mzg5LDM4''@;'; put 'put ''MzkwLDM4Mzk2LDM4Mzk4LDM4NDAzLDM4NDA0LDM4NDA2LDM4NDA4LDM4NDEwLDM4NDExLDM4NDEyLDM4NDEzLDM4NDE1LDM4NDE4LDM4NDIxLDM4NDIyLDM4NDIzLDM4NDI1LDM4NDI2LDIwMDEyLDI5MjQ3LDI1MTA5LDI3NzAxLDI3NzMyLDI3NzQwLDI3NzIyLDI3ODExLDI3NzgxLDI3Nzky''@;'; put 'put ''LDI3Nzk2LDI3Nzg4LDI3NzUyLDI3NzUzLDI3NzY0LDI3NzY2LDI3NzgyLDI3ODE3LDI3ODU2LDI3ODYwLDI3ODIxLDI3ODk1LDI3ODk2LDI3ODg5LDI3ODYzLDI3ODI2LDI3ODcyLDI3ODYyLDI3ODk4LDI3ODgzLDI3ODg2LDI3ODI1LDI3ODU5LDI3ODg3LDI3OTAyLDM3NTQ0LDM3NTQ1LDM3''@;'; put 'put ''NTQ2LDM3NTQ3LDM3NTQ4LDM3NTQ5LDM3NTUxLDM3NTUyLDM3NTUzLDM3NTU0LDM3NTU1LDM3NTU2LDM3NTU3LDM3NTU4LDM3NTU5LDM3NTYwLDM3NTYxLDM3NTYyLDM3NTYzLDM3NTY0LDM3NTY1LDM3NTY2LDM3NTY3LDM3NTY4LDM3NTY5LDM3NTcwLDM3NTcxLDM3NTcyLDM3NTczLDM3NTc0''@;'; put 'put ''LDM3NTc1LDM3NTc3LDM3NTc4LDM3NTc5LDM3NTgwLDM3NTgxLDM3NTgyLDM3NTgzLDM3NTg0LDM3NTg1LDM3NTg2LDM3NTg3LDM3NTg4LDM3NTg5LDM3NTkwLDM3NTkxLDM3NTkyLDM3NTkzLDM3NTk0LDM3NTk1LDM3NTk2LDM3NTk3LDM3NTk4LDM3NTk5LDM3NjAwLDM3NjAxLDM3NjAyLDM3''@;'; put 'put ''NjAzLDM3NjA0LDM3NjA1LDM3NjA2LDM3NjA3LDM3NjA4LDM3NjA5LDM3NjEwLDM3NjExLDM3NjEyLDM3NjEzLDM3NjE0LDM3NjE1LDM3NjE2LDM3NjE3LDM3NjE4LDM3NjE5LDM3NjIwLDM3NjIxLDM3NjIyLDM3NjIzLDM3NjI0LDM3NjI1LDM3NjI2LDM3NjI3LDM3NjI4LDM3NjI5LDM3NjMw''@;'; put 'put ''LDM3NjMxLDM3NjMyLDM3NjMzLDM3NjM0LDM3NjM1LDM3NjM2LDM3NjM3LDM3NjM4LDM3NjM5LDM3NjQwLDM3NjQxLDI3OTYxLDI3OTQzLDI3OTE2LDI3OTcxLDI3OTc2LDI3OTExLDI3OTA4LDI3OTI5LDI3OTE4LDI3OTQ3LDI3OTgxLDI3OTUwLDI3OTU3LDI3OTMwLDI3OTgzLDI3OTg2LDI3''@;'; put 'put ''OTg4LDI3OTU1LDI4MDQ5LDI4MDE1LDI4MDYyLDI4MDY0LDI3OTk4LDI4MDUxLDI4MDUyLDI3OTk2LDI4ZTMsMjgwMjgsMjgwMDMsMjgxODYsMjgxMDMsMjgxMDEsMjgxMjYsMjgxNzQsMjgwOTUsMjgxMjgsMjgxNzcsMjgxMzQsMjgxMjUsMjgxMjEsMjgxODIsMjgwNzUsMjgxNzIsMjgwNzgs''@;'; put 'put ''MjgyMDMsMjgyNzAsMjgyMzgsMjgyNjcsMjgzMzgsMjgyNTUsMjgyOTQsMjgyNDMsMjgyNDQsMjgyMTAsMjgxOTcsMjgyMjgsMjgzODMsMjgzMzcsMjgzMTIsMjgzODQsMjg0NjEsMjgzODYsMjgzMjUsMjgzMjcsMjgzNDksMjgzNDcsMjgzNDMsMjgzNzUsMjgzNDAsMjgzNjcsMjgzMDMsMjgz''@;'; put 'put ''NTQsMjgzMTksMjg1MTQsMjg0ODYsMjg0ODcsMjg0NTIsMjg0MzcsMjg0MDksMjg0NjMsMjg0NzAsMjg0OTEsMjg1MzIsMjg0NTgsMjg0MjUsMjg0NTcsMjg1NTMsMjg1NTcsMjg1NTYsMjg1MzYsMjg1MzAsMjg1NDAsMjg1MzgsMjg2MjUsMzc2NDIsMzc2NDMsMzc2NDQsMzc2NDUsMzc2NDYs''@;'; put 'put ''Mzc2NDcsMzc2NDgsMzc2NDksMzc2NTAsMzc2NTEsMzc2NTIsMzc2NTMsMzc2NTQsMzc2NTUsMzc2NTYsMzc2NTcsMzc2NTgsMzc2NTksMzc2NjAsMzc2NjEsMzc2NjIsMzc2NjMsMzc2NjQsMzc2NjUsMzc2NjYsMzc2NjcsMzc2NjgsMzc2NjksMzc2NzAsMzc2NzEsMzc2NzIsMzc2NzMsMzc2''@;'; put 'put ''NzQsMzc2NzUsMzc2NzYsMzc2NzcsMzc2NzgsMzc2NzksMzc2ODAsMzc2ODEsMzc2ODIsMzc2ODMsMzc2ODQsMzc2ODUsMzc2ODYsMzc2ODcsMzc2ODgsMzc2ODksMzc2OTAsMzc2OTEsMzc2OTIsMzc2OTMsMzc2OTUsMzc2OTYsMzc2OTcsMzc2OTgsMzc2OTksMzc3MDAsMzc3MDEsMzc3MDIs''@;'; put 'put ''Mzc3MDMsMzc3MDQsMzc3MDUsMzc3MDYsMzc3MDcsMzc3MDgsMzc3MDksMzc3MTAsMzc3MTEsMzc3MTIsMzc3MTMsMzc3MTQsMzc3MTUsMzc3MTYsMzc3MTcsMzc3MTgsMzc3MTksMzc3MjAsMzc3MjEsMzc3MjIsMzc3MjMsMzc3MjQsMzc3MjUsMzc3MjYsMzc3MjcsMzc3MjgsMzc3MjksMzc3''@;'; put 'put ''MzAsMzc3MzEsMzc3MzIsMzc3MzMsMzc3MzQsMzc3MzUsMzc3MzYsMzc3MzcsMzc3MzksMjg2MTcsMjg1ODMsMjg2MDEsMjg1OTgsMjg2MTAsMjg2NDEsMjg2NTQsMjg2MzgsMjg2NDAsMjg2NTUsMjg2OTgsMjg3MDcsMjg2OTksMjg3MjksMjg3MjUsMjg3NTEsMjg3NjYsMjM0MjQsMjM0Mjgs''@;'; put 'put ''MjM0NDUsMjM0NDMsMjM0NjEsMjM0ODAsMjk5OTksMzk1ODIsMjU2NTIsMjM1MjQsMjM1MzQsMzUxMjAsMjM1MzYsMzY0MjMsMzU1OTEsMzY3OTAsMzY4MTksMzY4MjEsMzY4MzcsMzY4NDYsMzY4MzYsMzY4NDEsMzY4MzgsMzY4NTEsMzY4NDAsMzY4NjksMzY4NjgsMzY4NzUsMzY5MDIsMzY4''@;'; put 'put ''ODEsMzY4NzcsMzY4ODYsMzY4OTcsMzY5MTcsMzY5MTgsMzY5MDksMzY5MTEsMzY5MzIsMzY5NDUsMzY5NDYsMzY5NDQsMzY5NjgsMzY5NTIsMzY5NjIsMzY5NTUsMjYyOTcsMzY5ODAsMzY5ODksMzY5OTQsMzdlMywzNjk5NSwzNzAwMywyNDQwMCwyNDQwNywyNDQwNiwyNDQwOCwyMzYxMSwy''@;'; put 'put ''MTY3NSwyMzYzMiwyMzY0MSwyMzQwOSwyMzY1MSwyMzY1NCwzMjcwMCwyNDM2MiwyNDM2MSwyNDM2NSwzMzM5NiwyNDM4MCwzOTczOSwyMzY2MiwyMjkxMywyMjkxNSwyMjkyNSwyMjk1MywyMjk1NCwyMjk0NywzNzc0MCwzNzc0MSwzNzc0MiwzNzc0MywzNzc0NCwzNzc0NSwzNzc0NiwzNzc0''@;'; put 'put ''NywzNzc0OCwzNzc0OSwzNzc1MCwzNzc1MSwzNzc1MiwzNzc1MywzNzc1NCwzNzc1NSwzNzc1NiwzNzc1NywzNzc1OCwzNzc1OSwzNzc2MCwzNzc2MSwzNzc2MiwzNzc2MywzNzc2NCwzNzc2NSwzNzc2NiwzNzc2NywzNzc2OCwzNzc2OSwzNzc3MCwzNzc3MSwzNzc3MiwzNzc3MywzNzc3NCwz''@;'; put 'put ''Nzc3NiwzNzc3NywzNzc3OCwzNzc3OSwzNzc4MCwzNzc4MSwzNzc4MiwzNzc4MywzNzc4NCwzNzc4NSwzNzc4NiwzNzc4NywzNzc4OCwzNzc4OSwzNzc5MCwzNzc5MSwzNzc5MiwzNzc5MywzNzc5NCwzNzc5NSwzNzc5NiwzNzc5NywzNzc5OCwzNzc5OSwzNzgwMCwzNzgwMSwzNzgwMiwzNzgw''@;'; put 'put ''MywzNzgwNCwzNzgwNSwzNzgwNiwzNzgwNywzNzgwOCwzNzgwOSwzNzgxMCwzNzgxMSwzNzgxMiwzNzgxMywzNzgxNCwzNzgxNSwzNzgxNiwzNzgxNywzNzgxOCwzNzgxOSwzNzgyMCwzNzgyMSwzNzgyMiwzNzgyMywzNzgyNCwzNzgyNSwzNzgyNiwzNzgyNywzNzgyOCwzNzgyOSwzNzgzMCwz''@;'; put 'put ''NzgzMSwzNzgzMiwzNzgzMywzNzgzNSwzNzgzNiwzNzgzNywyMjkzNSwyMjk4NiwyMjk1NSwyMjk0MiwyMjk0OCwyMjk5NCwyMjk2MiwyMjk1OSwyMjk5OSwyMjk3NCwyMzA0NSwyMzA0NiwyMzAwNSwyMzA0OCwyMzAxMSwyM2UzLDIzMDMzLDIzMDUyLDIzMDQ5LDIzMDkwLDIzMDkyLDIzMDU3''@;'; put 'put ''LDIzMDc1LDIzMDU5LDIzMTA0LDIzMTQzLDIzMTE0LDIzMTI1LDIzMTAwLDIzMTM4LDIzMTU3LDMzMDA0LDIzMjEwLDIzMTk1LDIzMTU5LDIzMTYyLDIzMjMwLDIzMjc1LDIzMjE4LDIzMjUwLDIzMjUyLDIzMjI0LDIzMjY0LDIzMjY3LDIzMjgxLDIzMjU0LDIzMjcwLDIzMjU2LDIzMjYwLDIz''@;'; put 'put ''MzA1LDIzMzE5LDIzMzE4LDIzMzQ2LDIzMzUxLDIzMzYwLDIzNTczLDIzNTgwLDIzMzg2LDIzMzk3LDIzNDExLDIzMzc3LDIzMzc5LDIzMzk0LDM5NTQxLDM5NTQzLDM5NTQ0LDM5NTQ2LDM5NTUxLDM5NTQ5LDM5NTUyLDM5NTUzLDM5NTU3LDM5NTYwLDM5NTYyLDM5NTY4LDM5NTcwLDM5NTcx''@;'; put 'put ''LDM5NTc0LDM5NTc2LDM5NTc5LDM5NTgwLDM5NTgxLDM5NTgzLDM5NTg0LDM5NTg2LDM5NTg3LDM5NTg5LDM5NTkxLDMyNDE1LDMyNDE3LDMyNDE5LDMyNDIxLDMyNDI0LDMyNDI1LDM3ODM4LDM3ODM5LDM3ODQwLDM3ODQxLDM3ODQyLDM3ODQzLDM3ODQ0LDM3ODQ1LDM3ODQ3LDM3ODQ4LDM3''@;'; put 'put ''ODQ5LDM3ODUwLDM3ODUxLDM3ODUyLDM3ODUzLDM3ODU0LDM3ODU1LDM3ODU2LDM3ODU3LDM3ODU4LDM3ODU5LDM3ODYwLDM3ODYxLDM3ODYyLDM3ODYzLDM3ODY0LDM3ODY1LDM3ODY2LDM3ODY3LDM3ODY4LDM3ODY5LDM3ODcwLDM3ODcxLDM3ODcyLDM3ODczLDM3ODc0LDM3ODc1LDM3ODc2''@;'; put 'put ''LDM3ODc3LDM3ODc4LDM3ODc5LDM3ODgwLDM3ODgxLDM3ODgyLDM3ODgzLDM3ODg0LDM3ODg1LDM3ODg2LDM3ODg3LDM3ODg4LDM3ODg5LDM3ODkwLDM3ODkxLDM3ODkyLDM3ODkzLDM3ODk0LDM3ODk1LDM3ODk2LDM3ODk3LDM3ODk4LDM3ODk5LDM3OTAwLDM3OTAxLDM3OTAyLDM3OTAzLDM3''@;'; put 'put ''OTA0LDM3OTA1LDM3OTA2LDM3OTA3LDM3OTA4LDM3OTA5LDM3OTEwLDM3OTExLDM3OTEyLDM3OTEzLDM3OTE0LDM3OTE1LDM3OTE2LDM3OTE3LDM3OTE4LDM3OTE5LDM3OTIwLDM3OTIxLDM3OTIyLDM3OTIzLDM3OTI0LDM3OTI1LDM3OTI2LDM3OTI3LDM3OTI4LDM3OTI5LDM3OTMwLDM3OTMx''@;'; put 'put ''LDM3OTMyLDM3OTMzLDM3OTM0LDMyNDI5LDMyNDMyLDMyNDQ2LDMyNDQ4LDMyNDQ5LDMyNDUwLDMyNDU3LDMyNDU5LDMyNDYwLDMyNDY0LDMyNDY4LDMyNDcxLDMyNDc1LDMyNDgwLDMyNDgxLDMyNDg4LDMyNDkxLDMyNDk0LDMyNDk1LDMyNDk3LDMyNDk4LDMyNTI1LDMyNTAyLDMyNTA2LDMy''@;'; put 'put ''NTA3LDMyNTEwLDMyNTEzLDMyNTE0LDMyNTE1LDMyNTE5LDMyNTIwLDMyNTIzLDMyNTI0LDMyNTI3LDMyNTI5LDMyNTMwLDMyNTM1LDMyNTM3LDMyNTQwLDMyNTM5LDMyNTQzLDMyNTQ1LDMyNTQ2LDMyNTQ3LDMyNTQ4LDMyNTQ5LDMyNTUwLDMyNTUxLDMyNTU0LDMyNTU1LDMyNTU2LDMyNTU3''@;'; put 'put ''LDMyNTU5LDMyNTYwLDMyNTYxLDMyNTYyLDMyNTYzLDMyNTY1LDI0MTg2LDMwMDc5LDI0MDI3LDMwMDE0LDM3MDEzLDI5NTgyLDI5NTg1LDI5NjE0LDI5NjAyLDI5NTk5LDI5NjQ3LDI5NjM0LDI5NjQ5LDI5NjIzLDI5NjE5LDI5NjMyLDI5NjQxLDI5NjQwLDI5NjY5LDI5NjU3LDM5MDM2LDI5''@;'; put 'put ''NzA2LDI5NjczLDI5NjcxLDI5NjYyLDI5NjI2LDI5NjgyLDI5NzExLDI5NzM4LDI5Nzg3LDI5NzM0LDI5NzMzLDI5NzM2LDI5NzQ0LDI5NzQyLDI5NzQwLDM3OTM1LDM3OTM2LDM3OTM3LDM3OTM4LDM3OTM5LDM3OTQwLDM3OTQxLDM3OTQyLDM3OTQzLDM3OTQ0LDM3OTQ1LDM3OTQ2LDM3OTQ3''@;'; put 'put ''LDM3OTQ4LDM3OTQ5LDM3OTUxLDM3OTUyLDM3OTUzLDM3OTU0LDM3OTU1LDM3OTU2LDM3OTU3LDM3OTU4LDM3OTU5LDM3OTYwLDM3OTYxLDM3OTYyLDM3OTYzLDM3OTY0LDM3OTY1LDM3OTY2LDM3OTY3LDM3OTY4LDM3OTY5LDM3OTcwLDM3OTcxLDM3OTcyLDM3OTczLDM3OTc0LDM3OTc1LDM3''@;'; put 'put ''OTc2LDM3OTc3LDM3OTc4LDM3OTc5LDM3OTgwLDM3OTgxLDM3OTgyLDM3OTgzLDM3OTg0LDM3OTg1LDM3OTg2LDM3OTg3LDM3OTg4LDM3OTg5LDM3OTkwLDM3OTkxLDM3OTkyLDM3OTkzLDM3OTk0LDM3OTk2LDM3OTk3LDM3OTk4LDM3OTk5LDM4ZTMsMzgwMDEsMzgwMDIsMzgwMDMsMzgwMDQs''@;'; put 'put ''MzgwMDUsMzgwMDYsMzgwMDcsMzgwMDgsMzgwMDksMzgwMTAsMzgwMTEsMzgwMTIsMzgwMTMsMzgwMTQsMzgwMTUsMzgwMTYsMzgwMTcsMzgwMTgsMzgwMTksMzgwMjAsMzgwMzMsMzgwMzgsMzgwNDAsMzgwODcsMzgwOTUsMzgwOTksMzgxMDAsMzgxMDYsMzgxMTgsMzgxMzksMzgxNzIsMzgx''@;'; put 'put ''NzYsMjk3MjMsMjk3MjIsMjk3NjEsMjk3ODgsMjk3ODMsMjk3ODEsMjk3ODUsMjk4MTUsMjk4MDUsMjk4MjIsMjk4NTIsMjk4MzgsMjk4MjQsMjk4MjUsMjk4MzEsMjk4MzUsMjk4NTQsMjk4NjQsMjk4NjUsMjk4NDAsMjk4NjMsMjk5MDYsMjk4ODIsMzg4OTAsMzg4OTEsMzg4OTIsMjY0NDQs''@;'; put 'put ''MjY0NTEsMjY0NjIsMjY0NDAsMjY0NzMsMjY1MzMsMjY1MDMsMjY0NzQsMjY0ODMsMjY1MjAsMjY1MzUsMjY0ODUsMjY1MzYsMjY1MjYsMjY1NDEsMjY1MDcsMjY0ODcsMjY0OTIsMjY2MDgsMjY2MzMsMjY1ODQsMjY2MzQsMjY2MDEsMjY1NDQsMjY2MzYsMjY1ODUsMjY1NDksMjY1ODYsMjY1''@;'; put 'put ''NDcsMjY1ODksMjY2MjQsMjY1NjMsMjY1NTIsMjY1OTQsMjY2MzgsMjY1NjEsMjY2MjEsMjY2NzQsMjY2NzUsMjY3MjAsMjY3MjEsMjY3MDIsMjY3MjIsMjY2OTIsMjY3MjQsMjY3NTUsMjY2NTMsMjY3MDksMjY3MjYsMjY2ODksMjY3MjcsMjY2ODgsMjY2ODYsMjY2OTgsMjY2OTcsMjY2NjUs''@;'; put 'put ''MjY4MDUsMjY3NjcsMjY3NDAsMjY3NDMsMjY3NzEsMjY3MzEsMjY4MTgsMjY5OTAsMjY4NzYsMjY5MTEsMjY5MTIsMjY4NzMsMzgxODMsMzgxOTUsMzgyMDUsMzgyMTEsMzgyMTYsMzgyMTksMzgyMjksMzgyMzQsMzgyNDAsMzgyNTQsMzgyNjAsMzgyNjEsMzgyNjMsMzgyNjQsMzgyNjUsMzgy''@;'; put 'put ''NjYsMzgyNjcsMzgyNjgsMzgyNjksMzgyNzAsMzgyNzIsMzgyNzMsMzgyNzQsMzgyNzUsMzgyNzYsMzgyNzcsMzgyNzgsMzgyNzksMzgyODAsMzgyODEsMzgyODIsMzgyODMsMzgyODQsMzgyODUsMzgyODYsMzgyODcsMzgyODgsMzgyODksMzgyOTAsMzgyOTEsMzgyOTIsMzgyOTMsMzgyOTQs''@;'; put 'put ''MzgyOTUsMzgyOTYsMzgyOTcsMzgyOTgsMzgyOTksMzgzMDAsMzgzMDEsMzgzMDIsMzgzMDMsMzgzMDQsMzgzMDUsMzgzMDYsMzgzMDcsMzgzMDgsMzgzMDksMzgzMTAsMzgzMTEsMzgzMTIsMzgzMTMsMzgzMTQsMzgzMTUsMzgzMTYsMzgzMTcsMzgzMTgsMzgzMTksMzgzMjAsMzgzMjEsMzgz''@;'; put 'put ''MjIsMzgzMjMsMzgzMjQsMzgzMjUsMzgzMjYsMzgzMjcsMzgzMjgsMzgzMjksMzgzMzAsMzgzMzEsMzgzMzIsMzgzMzMsMzgzMzQsMzgzMzUsMzgzMzYsMzgzMzcsMzgzMzgsMzgzMzksMzgzNDAsMzgzNDEsMzgzNDIsMzgzNDMsMzgzNDQsMzgzNDUsMzgzNDYsMzgzNDcsMjY5MTYsMjY4NjQs''@;'; put 'put ''MjY4OTEsMjY4ODEsMjY5NjcsMjY4NTEsMjY4OTYsMjY5OTMsMjY5MzcsMjY5NzYsMjY5NDYsMjY5NzMsMjcwMTIsMjY5ODcsMjcwMDgsMjcwMzIsMjdlMywyNjkzMiwyNzA4NCwyNzAxNSwyNzAxNiwyNzA4NiwyNzAxNywyNjk4MiwyNjk3OSwyNzAwMSwyNzAzNSwyNzA0NywyNzA2NywyNzA1''@;'; put 'put ''MSwyNzA1MywyNzA5MiwyNzA1NywyNzA3MywyNzA4MiwyNzEwMywyNzAyOSwyNzEwNCwyNzAyMSwyNzEzNSwyNzE4MywyNzExNywyNzE1OSwyNzE2MCwyNzIzNywyNzEyMiwyNzIwNCwyNzE5OCwyNzI5NiwyNzIxNiwyNzIyNywyNzE4OSwyNzI3OCwyNzI1NywyNzE5NywyNzE3NiwyNzIyNCwy''@;'; put 'put ''NzI2MCwyNzI4MSwyNzI4MCwyNzMwNSwyNzI4NywyNzMwNywyOTQ5NSwyOTUyMiwyNzUyMSwyNzUyMiwyNzUyNywyNzUyNCwyNzUzOCwyNzUzOSwyNzUzMywyNzU0NiwyNzU0NywyNzU1MywyNzU2MiwzNjcxNSwzNjcxNywzNjcyMSwzNjcyMiwzNjcyMywzNjcyNSwzNjcyNiwzNjcyOCwzNjcy''@;'; put 'put ''NywzNjcyOSwzNjczMCwzNjczMiwzNjczNCwzNjczNywzNjczOCwzNjc0MCwzNjc0MywzNjc0NywzODM0OCwzODM0OSwzODM1MCwzODM1MSwzODM1MiwzODM1MywzODM1NCwzODM1NSwzODM1NiwzODM1NywzODM1OCwzODM1OSwzODM2MCwzODM2MSwzODM2MiwzODM2MywzODM2NCwzODM2NSwz''@;'; put 'put ''ODM2NiwzODM2NywzODM2OCwzODM2OSwzODM3MCwzODM3MSwzODM3MiwzODM3MywzODM3NCwzODM3NSwzODM4MCwzODM5OSwzODQwNywzODQxOSwzODQyNCwzODQyNywzODQzMCwzODQzMiwzODQzNSwzODQzNiwzODQzNywzODQzOCwzODQzOSwzODQ0MCwzODQ0MSwzODQ0MywzODQ0NCwzODQ0''@;'; put 'put ''NSwzODQ0NywzODQ0OCwzODQ1NSwzODQ1NiwzODQ1NywzODQ1OCwzODQ2MiwzODQ2NSwzODQ2NywzODQ3NCwzODQ3OCwzODQ3OSwzODQ4MSwzODQ4MiwzODQ4MywzODQ4NiwzODQ4NywzODQ4OCwzODQ4OSwzODQ5MCwzODQ5MiwzODQ5MywzODQ5NCwzODQ5NiwzODQ5OSwzODUwMSwzODUwMiwz''@;'; put 'put ''ODUwNywzODUwOSwzODUxMCwzODUxMSwzODUxMiwzODUxMywzODUxNSwzODUyMCwzODUyMSwzODUyMiwzODUyMywzODUyNCwzODUyNSwzODUyNiwzODUyNywzODUyOCwzODUyOSwzODUzMCwzODUzMSwzODUzMiwzODUzNSwzODUzNywzODUzOCwzNjc0OSwzNjc1MCwzNjc1MSwzNjc2MCwzNjc2''@;'; put 'put ''MiwzNjU1OCwyNTA5OSwyNTExMSwyNTExNSwyNTExOSwyNTEyMiwyNTEyMSwyNTEyNSwyNTEyNCwyNTEzMiwzMzI1NSwyOTkzNSwyOTk0MCwyOTk1MSwyOTk2NywyOTk2OSwyOTk3MSwyNTkwOCwyNjA5NCwyNjA5NSwyNjA5NiwyNjEyMiwyNjEzNywyNjQ4MiwyNjExNSwyNjEzMywyNjExMiwy''@;'; put 'put ''ODgwNSwyNjM1OSwyNjE0MSwyNjE2NCwyNjE2MSwyNjE2NiwyNjE2NSwzMjc3NCwyNjIwNywyNjE5NiwyNjE3NywyNjE5MSwyNjE5OCwyNjIwOSwyNjE5OSwyNjIzMSwyNjI0NCwyNjI1MiwyNjI3OSwyNjI2OSwyNjMwMiwyNjMzMSwyNjMzMiwyNjM0MiwyNjM0NSwzNjE0NiwzNjE0NywzNjE1''@;'; put 'put ''MCwzNjE1NSwzNjE1NywzNjE2MCwzNjE2NSwzNjE2NiwzNjE2OCwzNjE2OSwzNjE2NywzNjE3MywzNjE4MSwzNjE4NSwzNTI3MSwzNTI3NCwzNTI3NSwzNTI3NiwzNTI3OCwzNTI3OSwzNTI4MCwzNTI4MSwyOTI5NCwyOTM0MywyOTI3NywyOTI4NiwyOTI5NSwyOTMxMCwyOTMxMSwyOTMxNiwy''@;'; put 'put ''OTMyMywyOTMyNSwyOTMyNywyOTMzMCwyNTM1MiwyNTM5NCwyNTUyMCwzODU0MCwzODU0MiwzODU0NSwzODU0NiwzODU0NywzODU0OSwzODU1MCwzODU1NCwzODU1NSwzODU1NywzODU1OCwzODU1OSwzODU2MCwzODU2MSwzODU2MiwzODU2MywzODU2NCwzODU2NSwzODU2NiwzODU2OCwzODU2''@;'; put 'put ''OSwzODU3MCwzODU3MSwzODU3MiwzODU3MywzODU3NCwzODU3NSwzODU3NywzODU3OCwzODU4MCwzODU4MSwzODU4MywzODU4NCwzODU4NiwzODU4NywzODU5MSwzODU5NCwzODU5NSwzODYwMCwzODYwMiwzODYwMywzODYwOCwzODYwOSwzODYxMSwzODYxMiwzODYxNCwzODYxNSwzODYxNiwz''@;'; put 'put ''ODYxNywzODYxOCwzODYxOSwzODYyMCwzODYyMSwzODYyMiwzODYyMywzODYyNSwzODYyNiwzODYyNywzODYyOCwzODYyOSwzODYzMCwzODYzMSwzODYzNSwzODYzNiwzODYzNywzODYzOCwzODY0MCwzODY0MSwzODY0MiwzODY0NCwzODY0NSwzODY0OCwzODY1MCwzODY1MSwzODY1MiwzODY1''@;'; put 'put ''MywzODY1NSwzODY1OCwzODY1OSwzODY2MSwzODY2NiwzODY2NywzODY2OCwzODY3MiwzODY3MywzODY3NCwzODY3NiwzODY3NywzODY3OSwzODY4MCwzODY4MSwzODY4MiwzODY4MywzODY4NSwzODY4NywzODY4OCwyNTY2MywyNTgxNiwzMjc3MiwyNzYyNiwyNzYzNSwyNzY0NSwyNzYzNywy''@;'; put 'put ''NzY0MSwyNzY1MywyNzY1NSwyNzY1NCwyNzY2MSwyNzY2OSwyNzY3MiwyNzY3MywyNzY3NCwyNzY4MSwyNzY4OSwyNzY4NCwyNzY5MCwyNzY5OCwyNTkwOSwyNTk0MSwyNTk2MywyOTI2MSwyOTI2NiwyOTI3MCwyOTIzMiwzNDQwMiwyMTAxNCwzMjkyNywzMjkyNCwzMjkxNSwzMjk1NiwyNjM3''@;'; put 'put ''OCwzMjk1NywzMjk0NSwzMjkzOSwzMjk0MSwzMjk0OCwzMjk1MSwzMjk5OSwzM2UzLDMzMDAxLDMzMDAyLDMyOTg3LDMyOTYyLDMyOTY0LDMyOTg1LDMyOTczLDMyOTgzLDI2Mzg0LDMyOTg5LDMzMDAzLDMzMDA5LDMzMDEyLDMzMDA1LDMzMDM3LDMzMDM4LDMzMDEwLDMzMDIwLDI2Mzg5LDMz''@;'; put 'put ''MDQyLDM1OTMwLDMzMDc4LDMzMDU0LDMzMDY4LDMzMDQ4LDMzMDc0LDMzMDk2LDMzMTAwLDMzMTA3LDMzMTQwLDMzMTEzLDMzMTE0LDMzMTM3LDMzMTIwLDMzMTI5LDMzMTQ4LDMzMTQ5LDMzMTMzLDMzMTI3LDIyNjA1LDIzMjIxLDMzMTYwLDMzMTU0LDMzMTY5LDI4MzczLDMzMTg3LDMzMTk0''@;'; put 'put ''LDMzMjI4LDI2NDA2LDMzMjI2LDMzMjExLDM4Njg5LDM4NjkwLDM4NjkxLDM4NjkyLDM4NjkzLDM4Njk0LDM4Njk1LDM4Njk2LDM4Njk3LDM4Njk5LDM4NzAwLDM4NzAyLDM4NzAzLDM4NzA1LDM4NzA3LDM4NzA4LDM4NzA5LDM4NzEwLDM4NzExLDM4NzE0LDM4NzE1LDM4NzE2LDM4NzE3LDM4''@;'; put 'put ''NzE5LDM4NzIwLDM4NzIxLDM4NzIyLDM4NzIzLDM4NzI0LDM4NzI1LDM4NzI2LDM4NzI3LDM4NzI4LDM4NzI5LDM4NzMwLDM4NzMxLDM4NzMyLDM4NzMzLDM4NzM0LDM4NzM1LDM4NzM2LDM4NzM3LDM4NzQwLDM4NzQxLDM4NzQzLDM4NzQ0LDM4NzQ2LDM4NzQ4LDM4NzQ5LDM4NzUxLDM4NzU1''@;'; put 'put ''LDM4NzU2LDM4NzU4LDM4NzU5LDM4NzYwLDM4NzYyLDM4NzYzLDM4NzY0LDM4NzY1LDM4NzY2LDM4NzY3LDM4NzY4LDM4NzY5LDM4NzcwLDM4NzczLDM4Nzc1LDM4Nzc2LDM4Nzc3LDM4Nzc4LDM4Nzc5LDM4NzgxLDM4NzgyLDM4NzgzLDM4Nzg0LDM4Nzg1LDM4Nzg2LDM4Nzg3LDM4Nzg4LDM4''@;'; put 'put ''NzkwLDM4NzkxLDM4NzkyLDM4NzkzLDM4Nzk0LDM4Nzk2LDM4Nzk4LDM4Nzk5LDM4ODAwLDM4ODAzLDM4ODA1LDM4ODA2LDM4ODA3LDM4ODA5LDM4ODEwLDM4ODExLDM4ODEyLDM4ODEzLDMzMjE3LDMzMTkwLDI3NDI4LDI3NDQ3LDI3NDQ5LDI3NDU5LDI3NDYyLDI3NDgxLDM5MTIxLDM5MTIy''@;'; put 'put ''LDM5MTIzLDM5MTI1LDM5MTI5LDM5MTMwLDI3NTcxLDI0Mzg0LDI3NTg2LDM1MzE1LDI2ZTMsNDA3ODUsMjYwMDMsMjYwNDQsMjYwNTQsMjYwNTIsMjYwNTEsMjYwNjAsMjYwNjIsMjYwNjYsMjYwNzAsMjg4MDAsMjg4MjgsMjg4MjIsMjg4MjksMjg4NTksMjg4NjQsMjg4NTUsMjg4NDMsMjg4''@;'; put 'put ''NDksMjg5MDQsMjg4NzQsMjg5NDQsMjg5NDcsMjg5NTAsMjg5NzUsMjg5NzcsMjkwNDMsMjkwMjAsMjkwMzIsMjg5OTcsMjkwNDIsMjkwMDIsMjkwNDgsMjkwNTAsMjkwODAsMjkxMDcsMjkxMDksMjkwOTYsMjkwODgsMjkxNTIsMjkxNDAsMjkxNTksMjkxNzcsMjkyMTMsMjkyMjQsMjg3ODAs''@;'; put 'put ''Mjg5NTIsMjkwMzAsMjkxMTMsMjUxNTAsMjUxNDksMjUxNTUsMjUxNjAsMjUxNjEsMzEwMzUsMzEwNDAsMzEwNDYsMzEwNDksMzEwNjcsMzEwNjgsMzEwNTksMzEwNjYsMzEwNzQsMzEwNjMsMzEwNzIsMzEwODcsMzEwNzksMzEwOTgsMzExMDksMzExMTQsMzExMzAsMzExNDMsMzExNTUsMjQ1''@;'; put 'put ''MjksMjQ1MjgsMzg4MTQsMzg4MTUsMzg4MTcsMzg4MTgsMzg4MjAsMzg4MjEsMzg4MjIsMzg4MjMsMzg4MjQsMzg4MjUsMzg4MjYsMzg4MjgsMzg4MzAsMzg4MzIsMzg4MzMsMzg4MzUsMzg4MzcsMzg4MzgsMzg4MzksMzg4NDAsMzg4NDEsMzg4NDIsMzg4NDMsMzg4NDQsMzg4NDUsMzg4NDYs''@;'; put 'put ''Mzg4NDcsMzg4NDgsMzg4NDksMzg4NTAsMzg4NTEsMzg4NTIsMzg4NTMsMzg4NTQsMzg4NTUsMzg4NTYsMzg4NTcsMzg4NTgsMzg4NTksMzg4NjAsMzg4NjEsMzg4NjIsMzg4NjMsMzg4NjQsMzg4NjUsMzg4NjYsMzg4NjcsMzg4NjgsMzg4NjksMzg4NzAsMzg4NzEsMzg4NzIsMzg4NzMsMzg4''@;'; put 'put ''NzQsMzg4NzUsMzg4NzYsMzg4NzcsMzg4NzgsMzg4NzksMzg4ODAsMzg4ODEsMzg4ODIsMzg4ODMsMzg4ODQsMzg4ODUsMzg4ODgsMzg4OTQsMzg4OTUsMzg4OTYsMzg4OTcsMzg4OTgsMzg5MDAsMzg5MDMsMzg5MDQsMzg5MDUsMzg5MDYsMzg5MDcsMzg5MDgsMzg5MDksMzg5MTAsMzg5MTEs''@;'; put 'put ''Mzg5MTIsMzg5MTMsMzg5MTQsMzg5MTUsMzg5MTYsMzg5MTcsMzg5MTgsMzg5MTksMzg5MjAsMzg5MjEsMzg5MjIsMzg5MjMsMzg5MjQsMzg5MjUsMzg5MjYsMjQ2MzYsMjQ2NjksMjQ2NjYsMjQ2NzksMjQ2NDEsMjQ2NjUsMjQ2NzUsMjQ3NDcsMjQ4MzgsMjQ4NDUsMjQ5MjUsMjUwMDEsMjQ5''@;'; put 'put ''ODksMjUwMzUsMjUwNDEsMjUwOTQsMzI4OTYsMzI4OTUsMjc3OTUsMjc4OTQsMjgxNTYsMzA3MTAsMzA3MTIsMzA3MjAsMzA3MjksMzA3NDMsMzA3NDQsMzA3MzcsMjYwMjcsMzA3NjUsMzA3NDgsMzA3NDksMzA3NzcsMzA3NzgsMzA3NzksMzA3NTEsMzA3ODAsMzA3NTcsMzA3NjQsMzA3NTUs''@;'; put 'put ''MzA3NjEsMzA3OTgsMzA4MjksMzA4MDYsMzA4MDcsMzA3NTgsMzA4MDAsMzA3OTEsMzA3OTYsMzA4MjYsMzA4NzUsMzA4NjcsMzA4NzQsMzA4NTUsMzA4NzYsMzA4ODEsMzA4ODMsMzA4OTgsMzA5MDUsMzA4ODUsMzA5MzIsMzA5MzcsMzA5MjEsMzA5NTYsMzA5NjIsMzA5ODEsMzA5NjQsMzA5''@;'; put 'put ''OTUsMzEwMTIsMzEwMDYsMzEwMjgsNDA4NTksNDA2OTcsNDA2OTksNDA3MDAsMzA0NDksMzA0NjgsMzA0NzcsMzA0NTcsMzA0NzEsMzA0NzIsMzA0OTAsMzA0OTgsMzA0ODksMzA1MDksMzA1MDIsMzA1MTcsMzA1MjAsMzA1NDQsMzA1NDUsMzA1MzUsMzA1MzEsMzA1NTQsMzA1NjgsMzg5Mjcs''@;'; put 'put ''Mzg5MjgsMzg5MjksMzg5MzAsMzg5MzEsMzg5MzIsMzg5MzMsMzg5MzQsMzg5MzUsMzg5MzYsMzg5MzcsMzg5MzgsMzg5MzksMzg5NDAsMzg5NDEsMzg5NDIsMzg5NDMsMzg5NDQsMzg5NDUsMzg5NDYsMzg5NDcsMzg5NDgsMzg5NDksMzg5NTAsMzg5NTEsMzg5NTIsMzg5NTMsMzg5NTQsMzg5''@;'; put 'put ''NTUsMzg5NTYsMzg5NTcsMzg5NTgsMzg5NTksMzg5NjAsMzg5NjEsMzg5NjIsMzg5NjMsMzg5NjQsMzg5NjUsMzg5NjYsMzg5NjcsMzg5NjgsMzg5NjksMzg5NzAsMzg5NzEsMzg5NzIsMzg5NzMsMzg5NzQsMzg5NzUsMzg5NzYsMzg5NzcsMzg5NzgsMzg5NzksMzg5ODAsMzg5ODEsMzg5ODIs''@;'; put 'put ''Mzg5ODMsMzg5ODQsMzg5ODUsMzg5ODYsMzg5ODcsMzg5ODgsMzg5ODksMzg5OTAsMzg5OTEsMzg5OTIsMzg5OTMsMzg5OTQsMzg5OTUsMzg5OTYsMzg5OTcsMzg5OTgsMzg5OTksMzllMywzOTAwMSwzOTAwMiwzOTAwMywzOTAwNCwzOTAwNSwzOTAwNiwzOTAwNywzOTAwOCwzOTAwOSwzOTAx''@;'; put 'put ''MCwzOTAxMSwzOTAxMiwzOTAxMywzOTAxNCwzOTAxNSwzOTAxNiwzOTAxNywzOTAxOCwzOTAxOSwzOTAyMCwzOTAyMSwzOTAyMiwzMDU2MiwzMDU2NSwzMDU5MSwzMDYwNSwzMDU4OSwzMDU5MiwzMDYwNCwzMDYwOSwzMDYyMywzMDYyNCwzMDY0MCwzMDY0NSwzMDY1MywzMDAxMCwzMDAxNiwz''@;'; put 'put ''MDAzMCwzMDAyNywzMDAyNCwzMDA0MywzMDA2NiwzMDA3MywzMDA4MywzMjYwMCwzMjYwOSwzMjYwNywzNTQwMCwzMjYxNiwzMjYyOCwzMjYyNSwzMjYzMywzMjY0MSwzMjYzOCwzMDQxMywzMDQzNywzNDg2NiwzODAyMSwzODAyMiwzODAyMywzODAyNywzODAyNiwzODAyOCwzODAyOSwzODAz''@;'; put 'put ''MSwzODAzMiwzODAzNiwzODAzOSwzODAzNywzODA0MiwzODA0MywzODA0NCwzODA1MSwzODA1MiwzODA1OSwzODA1OCwzODA2MSwzODA2MCwzODA2MywzODA2NCwzODA2NiwzODA2OCwzODA3MCwzODA3MSwzODA3MiwzODA3MywzODA3NCwzODA3NiwzODA3NywzODA3OSwzODA4NCwzODA4OCwz''@;'; put 'put ''ODA4OSwzODA5MCwzODA5MSwzODA5MiwzODA5MywzODA5NCwzODA5NiwzODA5NywzODA5OCwzODEwMSwzODEwMiwzODEwMywzODEwNSwzODEwNCwzODEwNywzODExMCwzODExMSwzODExMiwzODExNCwzODExNiwzODExNywzODExOSwzODEyMCwzODEyMiwzOTAyMywzOTAyNCwzOTAyNSwzOTAy''@;'; put 'put ''NiwzOTAyNywzOTAyOCwzOTA1MSwzOTA1NCwzOTA1OCwzOTA2MSwzOTA2NSwzOTA3NSwzOTA4MCwzOTA4MSwzOTA4MiwzOTA4MywzOTA4NCwzOTA4NSwzOTA4NiwzOTA4NywzOTA4OCwzOTA4OSwzOTA5MCwzOTA5MSwzOTA5MiwzOTA5MywzOTA5NCwzOTA5NSwzOTA5NiwzOTA5NywzOTA5OCwz''@;'; put 'put ''OTA5OSwzOTEwMCwzOTEwMSwzOTEwMiwzOTEwMywzOTEwNCwzOTEwNSwzOTEwNiwzOTEwNywzOTEwOCwzOTEwOSwzOTExMCwzOTExMSwzOTExMiwzOTExMywzOTExNCwzOTExNSwzOTExNiwzOTExNywzOTExOSwzOTEyMCwzOTEyNCwzOTEyNiwzOTEyNywzOTEzMSwzOTEzMiwzOTEzMywzOTEz''@;'; put 'put ''NiwzOTEzNywzOTEzOCwzOTEzOSwzOTE0MCwzOTE0MSwzOTE0MiwzOTE0NSwzOTE0NiwzOTE0NywzOTE0OCwzOTE0OSwzOTE1MCwzOTE1MSwzOTE1MiwzOTE1MywzOTE1NCwzOTE1NSwzOTE1NiwzOTE1NywzOTE1OCwzOTE1OSwzOTE2MCwzOTE2MSwzOTE2MiwzOTE2MywzOTE2NCwzOTE2NSwz''@;'; put 'put ''OTE2NiwzOTE2NywzOTE2OCwzOTE2OSwzOTE3MCwzOTE3MSwzOTE3MiwzOTE3MywzOTE3NCwzOTE3NSwzODEyMSwzODEyMywzODEyNiwzODEyNywzODEzMSwzODEzMiwzODEzMywzODEzNSwzODEzNywzODE0MCwzODE0MSwzODE0MywzODE0NywzODE0NiwzODE1MCwzODE1MSwzODE1MywzODE1''@;'; put 'put ''NCwzODE1NywzODE1OCwzODE1OSwzODE2MiwzODE2MywzODE2NCwzODE2NSwzODE2NiwzODE2OCwzODE3MSwzODE3MywzODE3NCwzODE3NSwzODE3OCwzODE4NiwzODE4NywzODE4NSwzODE4OCwzODE5MywzODE5NCwzODE5NiwzODE5OCwzODE5OSwzODIwMCwzODIwNCwzODIwNiwzODIwNywz''@;'; put 'put ''ODIxMCwzODE5NywzODIxMiwzODIxMywzODIxNCwzODIxNywzODIyMCwzODIyMiwzODIyMywzODIyNiwzODIyNywzODIyOCwzODIzMCwzODIzMSwzODIzMiwzODIzMywzODIzNSwzODIzOCwzODIzOSwzODIzNywzODI0MSwzODI0MiwzODI0NCwzODI0NSwzODI0NiwzODI0NywzODI0OCwzODI0''@;'; put 'put ''OSwzODI1MCwzODI1MSwzODI1MiwzODI1NSwzODI1NywzODI1OCwzODI1OSwzODIwMiwzMDY5NSwzMDcwMCwzODYwMSwzMTE4OSwzMTIxMywzMTIwMywzMTIxMSwzMTIzOCwyMzg3OSwzMTIzNSwzMTIzNCwzMTI2MiwzMTI1MiwzOTE3NiwzOTE3NywzOTE3OCwzOTE3OSwzOTE4MCwzOTE4Miwz''@;'; put 'put ''OTE4MywzOTE4NSwzOTE4NiwzOTE4NywzOTE4OCwzOTE4OSwzOTE5MCwzOTE5MSwzOTE5MiwzOTE5MywzOTE5NCwzOTE5NSwzOTE5NiwzOTE5NywzOTE5OCwzOTE5OSwzOTIwMCwzOTIwMSwzOTIwMiwzOTIwMywzOTIwNCwzOTIwNSwzOTIwNiwzOTIwNywzOTIwOCwzOTIwOSwzOTIxMCwzOTIx''@;'; put 'put ''MSwzOTIxMiwzOTIxMywzOTIxNSwzOTIxNiwzOTIxNywzOTIxOCwzOTIxOSwzOTIyMCwzOTIyMSwzOTIyMiwzOTIyMywzOTIyNCwzOTIyNSwzOTIyNiwzOTIyNywzOTIyOCwzOTIyOSwzOTIzMCwzOTIzMSwzOTIzMiwzOTIzMywzOTIzNCwzOTIzNSwzOTIzNiwzOTIzNywzOTIzOCwzOTIzOSwz''@;'; put 'put ''OTI0MCwzOTI0MSwzOTI0MiwzOTI0MywzOTI0NCwzOTI0NSwzOTI0NiwzOTI0NywzOTI0OCwzOTI0OSwzOTI1MCwzOTI1MSwzOTI1NCwzOTI1NSwzOTI1NiwzOTI1NywzOTI1OCwzOTI1OSwzOTI2MCwzOTI2MSwzOTI2MiwzOTI2MywzOTI2NCwzOTI2NSwzOTI2NiwzOTI2OCwzOTI3MCwzOTI4''@;'; put 'put ''MywzOTI4OCwzOTI4OSwzOTI5MSwzOTI5NCwzOTI5OCwzOTI5OSwzOTMwNSwzMTI4OSwzMTI4NywzMTMxMyw0MDY1NSwzOTMzMywzMTM0NCwzMDM0NCwzMDM1MCwzMDM1NSwzMDM2MSwzMDM3MiwyOTkxOCwyOTkyMCwyOTk5Niw0MDQ4MCw0MDQ4Miw0MDQ4OCw0MDQ4OSw0MDQ5MCw0MDQ5MSw0''@;'; put 'put ''MDQ5Miw0MDQ5OCw0MDQ5Nyw0MDUwMiw0MDUwNCw0MDUwMyw0MDUwNSw0MDUwNiw0MDUxMCw0MDUxMyw0MDUxNCw0MDUxNiw0MDUxOCw0MDUxOSw0MDUyMCw0MDUyMSw0MDUyMyw0MDUyNCw0MDUyNiw0MDUyOSw0MDUzMyw0MDUzNSw0MDUzOCw0MDUzOSw0MDU0MCw0MDU0Miw0MDU0Nyw0MDU1''@;'; put 'put ''MCw0MDU1MSw0MDU1Miw0MDU1Myw0MDU1NCw0MDU1NSw0MDU1Niw0MDU2MSw0MDU1Nyw0MDU2MywzMDA5OCwzMDEwMCwzMDEwMiwzMDExMiwzMDEwOSwzMDEyNCwzMDExNSwzMDEzMSwzMDEzMiwzMDEzNiwzMDE0OCwzMDEyOSwzMDEyOCwzMDE0NywzMDE0NiwzMDE2NiwzMDE1NywzMDE3OSwz''@;'; put 'put ''MDE4NCwzMDE4MiwzMDE4MCwzMDE4NywzMDE4MywzMDIxMSwzMDE5MywzMDIwNCwzMDIwNywzMDIyNCwzMDIwOCwzMDIxMywzMDIyMCwzMDIzMSwzMDIxOCwzMDI0NSwzMDIzMiwzMDIyOSwzMDIzMywzOTMwOCwzOTMxMCwzOTMyMiwzOTMyMywzOTMyNCwzOTMyNSwzOTMyNiwzOTMyNywzOTMy''@;'; put 'put ''OCwzOTMyOSwzOTMzMCwzOTMzMSwzOTMzMiwzOTMzNCwzOTMzNSwzOTMzNywzOTMzOCwzOTMzOSwzOTM0MCwzOTM0MSwzOTM0MiwzOTM0MywzOTM0NCwzOTM0NSwzOTM0NiwzOTM0NywzOTM0OCwzOTM0OSwzOTM1MCwzOTM1MSwzOTM1MiwzOTM1MywzOTM1NCwzOTM1NSwzOTM1NiwzOTM1Nywz''@;'; put 'put ''OTM1OCwzOTM1OSwzOTM2MCwzOTM2MSwzOTM2MiwzOTM2MywzOTM2NCwzOTM2NSwzOTM2NiwzOTM2NywzOTM2OCwzOTM2OSwzOTM3MCwzOTM3MSwzOTM3MiwzOTM3MywzOTM3NCwzOTM3NSwzOTM3NiwzOTM3NywzOTM3OCwzOTM3OSwzOTM4MCwzOTM4MSwzOTM4MiwzOTM4MywzOTM4NCwzOTM4''@;'; put 'put ''NSwzOTM4NiwzOTM4NywzOTM4OCwzOTM4OSwzOTM5MCwzOTM5MSwzOTM5MiwzOTM5MywzOTM5NCwzOTM5NSwzOTM5NiwzOTM5NywzOTM5OCwzOTM5OSwzOTQwMCwzOTQwMSwzOTQwMiwzOTQwMywzOTQwNCwzOTQwNSwzOTQwNiwzOTQwNywzOTQwOCwzOTQwOSwzOTQxMCwzOTQxMSwzOTQxMiwz''@;'; put 'put ''OTQxMywzOTQxNCwzOTQxNSwzOTQxNiwzOTQxNywzMDIzNSwzMDI2OCwzMDI0MiwzMDI0MCwzMDI3MiwzMDI1MywzMDI1NiwzMDI3MSwzMDI2MSwzMDI3NSwzMDI3MCwzMDI1OSwzMDI4NSwzMDMwMiwzMDI5MiwzMDMwMCwzMDI5NCwzMDMxNSwzMDMxOSwzMjcxNCwzMTQ2MiwzMTM1MiwzMTM1''@;'; put 'put ''MywzMTM2MCwzMTM2NiwzMTM2OCwzMTM4MSwzMTM5OCwzMTM5MiwzMTQwNCwzMTQwMCwzMTQwNSwzMTQxMSwzNDkxNiwzNDkyMSwzNDkzMCwzNDk0MSwzNDk0MywzNDk0NiwzNDk3OCwzNTAxNCwzNDk5OSwzNTAwNCwzNTAxNywzNTA0MiwzNTAyMiwzNTA0MywzNTA0NSwzNTA1NywzNTA5OCwz''@;'; put 'put ''NTA2OCwzNTA0OCwzNTA3MCwzNTA1NiwzNTEwNSwzNTA5NywzNTA5MSwzNTA5OSwzNTA4MiwzNTEyNCwzNTExNSwzNTEyNiwzNTEzNywzNTE3NCwzNTE5NSwzMDA5MSwzMjk5NywzMDM4NiwzMDM4OCwzMDY4NCwzMjc4NiwzMjc4OCwzMjc5MCwzMjc5NiwzMjgwMCwzMjgwMiwzMjgwNSwzMjgw''@;'; put 'put ''NiwzMjgwNywzMjgwOSwzMjgwOCwzMjgxNywzMjc3OSwzMjgyMSwzMjgzNSwzMjgzOCwzMjg0NSwzMjg1MCwzMjg3MywzMjg4MSwzNTIwMywzOTAzMiwzOTA0MCwzOTA0MywzOTQxOCwzOTQxOSwzOTQyMCwzOTQyMSwzOTQyMiwzOTQyMywzOTQyNCwzOTQyNSwzOTQyNiwzOTQyNywzOTQyOCwz''@;'; put 'put ''OTQyOSwzOTQzMCwzOTQzMSwzOTQzMiwzOTQzMywzOTQzNCwzOTQzNSwzOTQzNiwzOTQzNywzOTQzOCwzOTQzOSwzOTQ0MCwzOTQ0MSwzOTQ0MiwzOTQ0MywzOTQ0NCwzOTQ0NSwzOTQ0NiwzOTQ0NywzOTQ0OCwzOTQ0OSwzOTQ1MCwzOTQ1MSwzOTQ1MiwzOTQ1MywzOTQ1NCwzOTQ1NSwzOTQ1''@;'; put 'put ''NiwzOTQ1NywzOTQ1OCwzOTQ1OSwzOTQ2MCwzOTQ2MSwzOTQ2MiwzOTQ2MywzOTQ2NCwzOTQ2NSwzOTQ2NiwzOTQ2NywzOTQ2OCwzOTQ2OSwzOTQ3MCwzOTQ3MSwzOTQ3MiwzOTQ3MywzOTQ3NCwzOTQ3NSwzOTQ3NiwzOTQ3NywzOTQ3OCwzOTQ3OSwzOTQ4MCwzOTQ4MSwzOTQ4MiwzOTQ4Mywz''@;'; put 'put ''OTQ4NCwzOTQ4NSwzOTQ4NiwzOTQ4NywzOTQ4OCwzOTQ4OSwzOTQ5MCwzOTQ5MSwzOTQ5MiwzOTQ5MywzOTQ5NCwzOTQ5NSwzOTQ5NiwzOTQ5NywzOTQ5OCwzOTQ5OSwzOTUwMCwzOTUwMSwzOTUwMiwzOTUwMywzOTUwNCwzOTUwNSwzOTUwNiwzOTUwNywzOTUwOCwzOTUwOSwzOTUxMCwzOTUx''@;'; put 'put ''MSwzOTUxMiwzOTUxMywzOTA0OSwzOTA1MiwzOTA1MywzOTA1NSwzOTA2MCwzOTA2NiwzOTA2NywzOTA3MCwzOTA3MSwzOTA3MywzOTA3NCwzOTA3NywzOTA3OCwzNDM4MSwzNDM4OCwzNDQxMiwzNDQxNCwzNDQzMSwzNDQyNiwzNDQyOCwzNDQyNywzNDQ3MiwzNDQ0NSwzNDQ0MywzNDQ3Niwz''@;'; put 'put ''NDQ2MSwzNDQ3MSwzNDQ2NywzNDQ3NCwzNDQ1MSwzNDQ3MywzNDQ4NiwzNDUwMCwzNDQ4NSwzNDUxMCwzNDQ4MCwzNDQ5MCwzNDQ4MSwzNDQ3OSwzNDUwNSwzNDUxMSwzNDQ4NCwzNDUzNywzNDU0NSwzNDU0NiwzNDU0MSwzNDU0NywzNDUxMiwzNDU3OSwzNDUyNiwzNDU0OCwzNDUyNywzNDUy''@;'; put 'put ''MCwzNDUxMywzNDU2MywzNDU2NywzNDU1MiwzNDU2OCwzNDU3MCwzNDU3MywzNDU2OSwzNDU5NSwzNDYxOSwzNDU5MCwzNDU5NywzNDYwNiwzNDU4NiwzNDYyMiwzNDYzMiwzNDYxMiwzNDYwOSwzNDYwMSwzNDYxNSwzNDYyMywzNDY5MCwzNDU5NCwzNDY4NSwzNDY4NiwzNDY4MywzNDY1Niwz''@;'; put 'put ''NDY3MiwzNDYzNiwzNDY3MCwzNDY5OSwzNDY0MywzNDY1OSwzNDY4NCwzNDY2MCwzNDY0OSwzNDY2MSwzNDcwNywzNDczNSwzNDcyOCwzNDc3MCwzOTUxNCwzOTUxNSwzOTUxNiwzOTUxNywzOTUxOCwzOTUxOSwzOTUyMCwzOTUyMSwzOTUyMiwzOTUyMywzOTUyNCwzOTUyNSwzOTUyNiwzOTUy''@;'; put 'put ''NywzOTUyOCwzOTUyOSwzOTUzMCwzOTUzMSwzOTUzOCwzOTU1NSwzOTU2MSwzOTU2NSwzOTU2NiwzOTU3MiwzOTU3MywzOTU3NywzOTU5MCwzOTU5MywzOTU5NCwzOTU5NSwzOTU5NiwzOTU5NywzOTU5OCwzOTU5OSwzOTYwMiwzOTYwMywzOTYwNCwzOTYwNSwzOTYwOSwzOTYxMSwzOTYxMywz''@;'; put 'put ''OTYxNCwzOTYxNSwzOTYxOSwzOTYyMCwzOTYyMiwzOTYyMywzOTYyNCwzOTYyNSwzOTYyNiwzOTYyOSwzOTYzMCwzOTYzMSwzOTYzMiwzOTYzNCwzOTYzNiwzOTYzNywzOTYzOCwzOTYzOSwzOTY0MSwzOTY0MiwzOTY0MywzOTY0NCwzOTY0NSwzOTY0NiwzOTY0OCwzOTY1MCwzOTY1MSwzOTY1''@;'; put 'put ''MiwzOTY1MywzOTY1NSwzOTY1NiwzOTY1NywzOTY1OCwzOTY2MCwzOTY2MiwzOTY2NCwzOTY2NSwzOTY2NiwzOTY2NywzOTY2OCwzOTY2OSwzOTY3MCwzOTY3MSwzOTY3MiwzOTY3NCwzOTY3NiwzOTY3NywzOTY3OCwzOTY3OSwzOTY4MCwzOTY4MSwzOTY4MiwzOTY4NCwzOTY4NSwzOTY4Niwz''@;'; put 'put ''NDc1OCwzNDY5NiwzNDY5MywzNDczMywzNDcxMSwzNDY5MSwzNDczMSwzNDc4OSwzNDczMiwzNDc0MSwzNDczOSwzNDc2MywzNDc3MSwzNDc0OSwzNDc2OSwzNDc1MiwzNDc2MiwzNDc3OSwzNDc5NCwzNDc4NCwzNDc5OCwzNDgzOCwzNDgzNSwzNDgxNCwzNDgyNiwzNDg0MywzNDg0OSwzNDg3''@;'; put 'put ''MywzNDg3NiwzMjU2NiwzMjU3OCwzMjU4MCwzMjU4MSwzMzI5NiwzMTQ4MiwzMTQ4NSwzMTQ5NiwzMTQ5MSwzMTQ5MiwzMTUwOSwzMTQ5OCwzMTUzMSwzMTUwMywzMTU1OSwzMTU0NCwzMTUzMCwzMTUxMywzMTUzNCwzMTUzNywzMTUyMCwzMTUyNSwzMTUyNCwzMTUzOSwzMTU1MCwzMTUxOCwz''@;'; put 'put ''MTU3NiwzMTU3OCwzMTU1NywzMTYwNSwzMTU2NCwzMTU4MSwzMTU4NCwzMTU5OCwzMTYxMSwzMTU4NiwzMTYwMiwzMTYwMSwzMTYzMiwzMTY1NCwzMTY1NSwzMTY3MiwzMTY2MCwzMTY0NSwzMTY1NiwzMTYyMSwzMTY1OCwzMTY0NCwzMTY1MCwzMTY1OSwzMTY2OCwzMTY5NywzMTY4MSwzMTY5''@;'; put 'put ''MiwzMTcwOSwzMTcwNiwzMTcxNywzMTcxOCwzMTcyMiwzMTc1NiwzMTc0MiwzMTc0MCwzMTc1OSwzMTc2NiwzMTc1NSwzOTY4NywzOTY4OSwzOTY5MCwzOTY5MSwzOTY5MiwzOTY5MywzOTY5NCwzOTY5NiwzOTY5NywzOTY5OCwzOTcwMCwzOTcwMSwzOTcwMiwzOTcwMywzOTcwNCwzOTcwNSwz''@;'; put 'put ''OTcwNiwzOTcwNywzOTcwOCwzOTcwOSwzOTcxMCwzOTcxMiwzOTcxMywzOTcxNCwzOTcxNiwzOTcxNywzOTcxOCwzOTcxOSwzOTcyMCwzOTcyMSwzOTcyMiwzOTcyMywzOTcyNCwzOTcyNSwzOTcyNiwzOTcyOCwzOTcyOSwzOTczMSwzOTczMiwzOTczMywzOTczNCwzOTczNSwzOTczNiwzOTcz''@;'; put 'put ''NywzOTczOCwzOTc0MSwzOTc0MiwzOTc0MywzOTc0NCwzOTc1MCwzOTc1NCwzOTc1NSwzOTc1NiwzOTc1OCwzOTc2MCwzOTc2MiwzOTc2MywzOTc2NSwzOTc2NiwzOTc2NywzOTc2OCwzOTc2OSwzOTc3MCwzOTc3MSwzOTc3MiwzOTc3MywzOTc3NCwzOTc3NSwzOTc3NiwzOTc3NywzOTc3OCwz''@;'; put 'put ''OTc3OSwzOTc4MCwzOTc4MSwzOTc4MiwzOTc4MywzOTc4NCwzOTc4NSwzOTc4NiwzOTc4NywzOTc4OCwzOTc4OSwzOTc5MCwzOTc5MSwzOTc5MiwzOTc5MywzOTc5NCwzOTc5NSwzOTc5NiwzOTc5NywzOTc5OCwzOTc5OSwzOTgwMCwzOTgwMSwzOTgwMiwzOTgwMywzMTc3NSwzMTc4NiwzMTc4''@;'; put 'put ''MiwzMTgwMCwzMTgwOSwzMTgwOCwzMzI3OCwzMzI4MSwzMzI4MiwzMzI4NCwzMzI2MCwzNDg4NCwzMzMxMywzMzMxNCwzMzMxNSwzMzMyNSwzMzMyNywzMzMyMCwzMzMyMywzMzMzNiwzMzMzOSwzMzMzMSwzMzMzMiwzMzM0MiwzMzM0OCwzMzM1MywzMzM1NSwzMzM1OSwzMzM3MCwzMzM3NSwz''@;'; put 'put ''MzM4NCwzNDk0MiwzNDk0OSwzNDk1MiwzNTAzMiwzNTAzOSwzNTE2NiwzMjY2OSwzMjY3MSwzMjY3OSwzMjY4NywzMjY4OCwzMjY5MCwzMTg2OCwyNTkyOSwzMTg4OSwzMTkwMSwzMTkwMCwzMTkwMiwzMTkwNiwzMTkyMiwzMTkzMiwzMTkzMywzMTkzNywzMTk0MywzMTk0OCwzMTk0OSwzMTk0''@;'; put 'put ''NCwzMTk0MSwzMTk1OSwzMTk3NiwzMzM5MCwyNjI4MCwzMjcwMywzMjcxOCwzMjcyNSwzMjc0MSwzMjczNywzMjc0MiwzMjc0NSwzMjc1MCwzMjc1NSwzMTk5MiwzMjExOSwzMjE2NiwzMjE3NCwzMjMyNywzMjQxMSw0MDYzMiw0MDYyOCwzNjIxMSwzNjIyOCwzNjI0NCwzNjI0MSwzNjI3Mywz''@;'; put 'put ''NjE5OSwzNjIwNSwzNTkxMSwzNTkxMywzNzE5NCwzNzIwMCwzNzE5OCwzNzE5OSwzNzIyMCwzOTgwNCwzOTgwNSwzOTgwNiwzOTgwNywzOTgwOCwzOTgwOSwzOTgxMCwzOTgxMSwzOTgxMiwzOTgxMywzOTgxNCwzOTgxNSwzOTgxNiwzOTgxNywzOTgxOCwzOTgxOSwzOTgyMCwzOTgyMSwzOTgy''@;'; put 'put ''MiwzOTgyMywzOTgyNCwzOTgyNSwzOTgyNiwzOTgyNywzOTgyOCwzOTgyOSwzOTgzMCwzOTgzMSwzOTgzMiwzOTgzMywzOTgzNCwzOTgzNSwzOTgzNiwzOTgzNywzOTgzOCwzOTgzOSwzOTg0MCwzOTg0MSwzOTg0MiwzOTg0MywzOTg0NCwzOTg0NSwzOTg0NiwzOTg0NywzOTg0OCwzOTg0OSwz''@;'; put 'put ''OTg1MCwzOTg1MSwzOTg1MiwzOTg1MywzOTg1NCwzOTg1NSwzOTg1NiwzOTg1NywzOTg1OCwzOTg1OSwzOTg2MCwzOTg2MSwzOTg2MiwzOTg2MywzOTg2NCwzOTg2NSwzOTg2NiwzOTg2NywzOTg2OCwzOTg2OSwzOTg3MCwzOTg3MSwzOTg3MiwzOTg3MywzOTg3NCwzOTg3NSwzOTg3NiwzOTg3''@;'; put 'put ''NywzOTg3OCwzOTg3OSwzOTg4MCwzOTg4MSwzOTg4MiwzOTg4MywzOTg4NCwzOTg4NSwzOTg4NiwzOTg4NywzOTg4OCwzOTg4OSwzOTg5MCwzOTg5MSwzOTg5MiwzOTg5MywzOTg5NCwzOTg5NSwzOTg5NiwzOTg5NywzOTg5OCwzOTg5OSwzNzIxOCwzNzIxNywzNzIzMiwzNzIyNSwzNzIzMSwz''@;'; put 'put ''NzI0NSwzNzI0NiwzNzIzNCwzNzIzNiwzNzI0MSwzNzI2MCwzNzI1MywzNzI2NCwzNzI2MSwzNzI2NSwzNzI4MiwzNzI4MywzNzI5MCwzNzI5MywzNzI5NCwzNzI5NSwzNzMwMSwzNzMwMCwzNzMwNiwzNTkyNSw0MDU3NCwzNjI4MCwzNjMzMSwzNjM1NywzNjQ0MSwzNjQ1NywzNjI3NywzNjI4''@;'; put 'put ''NywzNjI4NCwzNjI4MiwzNjI5MiwzNjMxMCwzNjMxMSwzNjMxNCwzNjMxOCwzNjMwMiwzNjMwMywzNjMxNSwzNjI5NCwzNjMzMiwzNjM0MywzNjM0NCwzNjMyMywzNjM0NSwzNjM0NywzNjMyNCwzNjM2MSwzNjM0OSwzNjM3MiwzNjM4MSwzNjM4MywzNjM5NiwzNjM5OCwzNjM4NywzNjM5OSwz''@;'; put 'put ''NjQxMCwzNjQxNiwzNjQwOSwzNjQwNSwzNjQxMywzNjQwMSwzNjQyNSwzNjQxNywzNjQxOCwzNjQzMywzNjQzNCwzNjQyNiwzNjQ2NCwzNjQ3MCwzNjQ3NiwzNjQ2MywzNjQ2OCwzNjQ4NSwzNjQ5NSwzNjUwMCwzNjQ5NiwzNjUwOCwzNjUxMCwzNTk2MCwzNTk3MCwzNTk3OCwzNTk3MywzNTk5''@;'; put 'put ''MiwzNTk4OCwyNjAxMSwzNTI4NiwzNTI5NCwzNTI5MCwzNTI5MiwzOTkwMCwzOTkwMSwzOTkwMiwzOTkwMywzOTkwNCwzOTkwNSwzOTkwNiwzOTkwNywzOTkwOCwzOTkwOSwzOTkxMCwzOTkxMSwzOTkxMiwzOTkxMywzOTkxNCwzOTkxNSwzOTkxNiwzOTkxNywzOTkxOCwzOTkxOSwzOTkyMCwz''@;'; put 'put ''OTkyMSwzOTkyMiwzOTkyMywzOTkyNCwzOTkyNSwzOTkyNiwzOTkyNywzOTkyOCwzOTkyOSwzOTkzMCwzOTkzMSwzOTkzMiwzOTkzMywzOTkzNCwzOTkzNSwzOTkzNiwzOTkzNywzOTkzOCwzOTkzOSwzOTk0MCwzOTk0MSwzOTk0MiwzOTk0MywzOTk0NCwzOTk0NSwzOTk0NiwzOTk0NywzOTk0''@;'; put 'put ''OCwzOTk0OSwzOTk1MCwzOTk1MSwzOTk1MiwzOTk1MywzOTk1NCwzOTk1NSwzOTk1NiwzOTk1NywzOTk1OCwzOTk1OSwzOTk2MCwzOTk2MSwzOTk2MiwzOTk2MywzOTk2NCwzOTk2NSwzOTk2NiwzOTk2NywzOTk2OCwzOTk2OSwzOTk3MCwzOTk3MSwzOTk3MiwzOTk3MywzOTk3NCwzOTk3NSwz''@;'; put 'put ''OTk3NiwzOTk3NywzOTk3OCwzOTk3OSwzOTk4MCwzOTk4MSwzOTk4MiwzOTk4MywzOTk4NCwzOTk4NSwzOTk4NiwzOTk4NywzOTk4OCwzOTk4OSwzOTk5MCwzOTk5MSwzOTk5MiwzOTk5MywzOTk5NCwzOTk5NSwzNTMwMSwzNTMwNywzNTMxMSwzNTM5MCwzNTYyMiwzODczOSwzODYzMywzODY0''@;'; put 'put ''MywzODYzOSwzODY2MiwzODY1NywzODY2NCwzODY3MSwzODY3MCwzODY5OCwzODcwMSwzODcwNCwzODcxOCw0MDgzMiw0MDgzNSw0MDgzNyw0MDgzOCw0MDgzOSw0MDg0MCw0MDg0MSw0MDg0Miw0MDg0NCw0MDcwMiw0MDcxNSw0MDcxNywzODU4NSwzODU4OCwzODU4OSwzODYwNiwzODYxMCwz''@;'; put 'put ''MDY1NSwzODYyNCwzNzUxOCwzNzU1MCwzNzU3NiwzNzY5NCwzNzczOCwzNzgzNCwzNzc3NSwzNzk1MCwzNzk5NSw0MDA2Myw0MDA2Niw0MDA2OSw0MDA3MCw0MDA3MSw0MDA3MiwzMTI2Nyw0MDA3NSw0MDA3OCw0MDA4MCw0MDA4MSw0MDA4Miw0MDA4NCw0MDA4NSw0MDA5MCw0MDA5MSw0MDA5''@;'; put 'put ''NCw0MDA5NSw0MDA5Niw0MDA5Nyw0MDA5OCw0MDA5OSw0MDEwMSw0MDEwMiw0MDEwMyw0MDEwNCw0MDEwNSw0MDEwNyw0MDEwOSw0MDExMCw0MDExMiw0MDExMyw0MDExNCw0MDExNSw0MDExNiw0MDExNyw0MDExOCw0MDExOSw0MDEyMiw0MDEyMyw0MDEyNCw0MDEyNSw0MDEzMiw0MDEzMyw0''@;'; put 'put ''MDEzNCw0MDEzNSw0MDEzOCw0MDEzOSwzOTk5NiwzOTk5NywzOTk5OCwzOTk5OSw0ZTQsNDAwMDEsNDAwMDIsNDAwMDMsNDAwMDQsNDAwMDUsNDAwMDYsNDAwMDcsNDAwMDgsNDAwMDksNDAwMTAsNDAwMTEsNDAwMTIsNDAwMTMsNDAwMTQsNDAwMTUsNDAwMTYsNDAwMTcsNDAwMTgsNDAwMTks''@;'; put 'put ''NDAwMjAsNDAwMjEsNDAwMjIsNDAwMjMsNDAwMjQsNDAwMjUsNDAwMjYsNDAwMjcsNDAwMjgsNDAwMjksNDAwMzAsNDAwMzEsNDAwMzIsNDAwMzMsNDAwMzQsNDAwMzUsNDAwMzYsNDAwMzcsNDAwMzgsNDAwMzksNDAwNDAsNDAwNDEsNDAwNDIsNDAwNDMsNDAwNDQsNDAwNDUsNDAwNDYsNDAw''@;'; put 'put ''NDcsNDAwNDgsNDAwNDksNDAwNTAsNDAwNTEsNDAwNTIsNDAwNTMsNDAwNTQsNDAwNTUsNDAwNTYsNDAwNTcsNDAwNTgsNDAwNTksNDAwNjEsNDAwNjIsNDAwNjQsNDAwNjcsNDAwNjgsNDAwNzMsNDAwNzQsNDAwNzYsNDAwNzksNDAwODMsNDAwODYsNDAwODcsNDAwODgsNDAwODksNDAwOTMs''@;'; put 'put ''NDAxMDYsNDAxMDgsNDAxMTEsNDAxMjEsNDAxMjYsNDAxMjcsNDAxMjgsNDAxMjksNDAxMzAsNDAxMzYsNDAxMzcsNDAxNDUsNDAxNDYsNDAxNTQsNDAxNTUsNDAxNjAsNDAxNjEsNDAxNDAsNDAxNDEsNDAxNDIsNDAxNDMsNDAxNDQsNDAxNDcsNDAxNDgsNDAxNDksNDAxNTEsNDAxNTIsNDAx''@;'; put 'put ''NTMsNDAxNTYsNDAxNTcsNDAxNTksNDAxNjIsMzg3ODAsMzg3ODksMzg4MDEsMzg4MDIsMzg4MDQsMzg4MzEsMzg4MjcsMzg4MTksMzg4MzQsMzg4MzYsMzk2MDEsMzk2MDAsMzk2MDcsNDA1MzYsMzk2MDYsMzk2MTAsMzk2MTIsMzk2MTcsMzk2MTYsMzk2MjEsMzk2MTgsMzk2MjcsMzk2Mjgs''@;'; put 'put ''Mzk2MzMsMzk3NDksMzk3NDcsMzk3NTEsMzk3NTMsMzk3NTIsMzk3NTcsMzk3NjEsMzkxNDQsMzkxODEsMzkyMTQsMzkyNTMsMzkyNTIsMzk2NDcsMzk2NDksMzk2NTQsMzk2NjMsMzk2NTksMzk2NzUsMzk2NjEsMzk2NzMsMzk2ODgsMzk2OTUsMzk2OTksMzk3MTEsMzk3MTUsNDA2MzcsNDA2''@;'; put 'put ''MzgsMzIzMTUsNDA1NzgsNDA1ODMsNDA1ODQsNDA1ODcsNDA1OTQsMzc4NDYsNDA2MDUsNDA2MDcsNDA2NjcsNDA2NjgsNDA2NjksNDA2NzIsNDA2NzEsNDA2NzQsNDA2ODEsNDA2NzksNDA2NzcsNDA2ODIsNDA2ODcsNDA3MzgsNDA3NDgsNDA3NTEsNDA3NjEsNDA3NTksNDA3NjUsNDA3NjYs''@;'; put 'put ''NDA3NzIsNDAxNjMsNDAxNjQsNDAxNjUsNDAxNjYsNDAxNjcsNDAxNjgsNDAxNjksNDAxNzAsNDAxNzEsNDAxNzIsNDAxNzMsNDAxNzQsNDAxNzUsNDAxNzYsNDAxNzcsNDAxNzgsNDAxNzksNDAxODAsNDAxODEsNDAxODIsNDAxODMsNDAxODQsNDAxODUsNDAxODYsNDAxODcsNDAxODgsNDAx''@;'; put 'put ''ODksNDAxOTAsNDAxOTEsNDAxOTIsNDAxOTMsNDAxOTQsNDAxOTUsNDAxOTYsNDAxOTcsNDAxOTgsNDAxOTksNDAyMDAsNDAyMDEsNDAyMDIsNDAyMDMsNDAyMDQsNDAyMDUsNDAyMDYsNDAyMDcsNDAyMDgsNDAyMDksNDAyMTAsNDAyMTEsNDAyMTIsNDAyMTMsNDAyMTQsNDAyMTUsNDAyMTYs''@;'; put 'put ''NDAyMTcsNDAyMTgsNDAyMTksNDAyMjAsNDAyMjEsNDAyMjIsNDAyMjMsNDAyMjQsNDAyMjUsNDAyMjYsNDAyMjcsNDAyMjgsNDAyMjksNDAyMzAsNDAyMzEsNDAyMzIsNDAyMzMsNDAyMzQsNDAyMzUsNDAyMzYsNDAyMzcsNDAyMzgsNDAyMzksNDAyNDAsNDAyNDEsNDAyNDIsNDAyNDMsNDAy''@;'; put 'put ''NDQsNDAyNDUsNDAyNDYsNDAyNDcsNDAyNDgsNDAyNDksNDAyNTAsNDAyNTEsNDAyNTIsNDAyNTMsNDAyNTQsNDAyNTUsNDAyNTYsNDAyNTcsNDAyNTgsNTc5MDgsNTc5MDksNTc5MTAsNTc5MTEsNTc5MTIsNTc5MTMsNTc5MTQsNTc5MTUsNTc5MTYsNTc5MTcsNTc5MTgsNTc5MTksNTc5MjAs''@;'; put 'put ''NTc5MjEsNTc5MjIsNTc5MjMsNTc5MjQsNTc5MjUsNTc5MjYsNTc5MjcsNTc5MjgsNTc5MjksNTc5MzAsNTc5MzEsNTc5MzIsNTc5MzMsNTc5MzQsNTc5MzUsNTc5MzYsNTc5MzcsNTc5MzgsNTc5MzksNTc5NDAsNTc5NDEsNTc5NDIsNTc5NDMsNTc5NDQsNTc5NDUsNTc5NDYsNTc5NDcsNTc5''@;'; put 'put ''NDgsNTc5NDksNTc5NTAsNTc5NTEsNTc5NTIsNTc5NTMsNTc5NTQsNTc5NTUsNTc5NTYsNTc5NTcsNTc5NTgsNTc5NTksNTc5NjAsNTc5NjEsNTc5NjIsNTc5NjMsNTc5NjQsNTc5NjUsNTc5NjYsNTc5NjcsNTc5NjgsNTc5NjksNTc5NzAsNTc5NzEsNTc5NzIsNTc5NzMsNTc5NzQsNTc5NzUs''@;'; put 'put ''NTc5NzYsNTc5NzcsNTc5NzgsNTc5NzksNTc5ODAsNTc5ODEsNTc5ODIsNTc5ODMsNTc5ODQsNTc5ODUsNTc5ODYsNTc5ODcsNTc5ODgsNTc5ODksNTc5OTAsNTc5OTEsNTc5OTIsNTc5OTMsNTc5OTQsNTc5OTUsNTc5OTYsNTc5OTcsNTc5OTgsNTc5OTksNThlMyw1ODAwMSw0MDI1OSw0MDI2''@;'; put 'put ''MCw0MDI2MSw0MDI2Miw0MDI2Myw0MDI2NCw0MDI2NSw0MDI2Niw0MDI2Nyw0MDI2OCw0MDI2OSw0MDI3MCw0MDI3MSw0MDI3Miw0MDI3Myw0MDI3NCw0MDI3NSw0MDI3Niw0MDI3Nyw0MDI3OCw0MDI3OSw0MDI4MCw0MDI4MSw0MDI4Miw0MDI4Myw0MDI4NCw0MDI4NSw0MDI4Niw0MDI4Nyw0''@;'; put 'put ''MDI4OCw0MDI4OSw0MDI5MCw0MDI5MSw0MDI5Miw0MDI5Myw0MDI5NCw0MDI5NSw0MDI5Niw0MDI5Nyw0MDI5OCw0MDI5OSw0MDMwMCw0MDMwMSw0MDMwMiw0MDMwMyw0MDMwNCw0MDMwNSw0MDMwNiw0MDMwNyw0MDMwOCw0MDMwOSw0MDMxMCw0MDMxMSw0MDMxMiw0MDMxMyw0MDMxNCw0MDMx''@;'; put 'put ''NSw0MDMxNiw0MDMxNyw0MDMxOCw0MDMxOSw0MDMyMCw0MDMyMSw0MDMyMiw0MDMyMyw0MDMyNCw0MDMyNSw0MDMyNiw0MDMyNyw0MDMyOCw0MDMyOSw0MDMzMCw0MDMzMSw0MDMzMiw0MDMzMyw0MDMzNCw0MDMzNSw0MDMzNiw0MDMzNyw0MDMzOCw0MDMzOSw0MDM0MCw0MDM0MSw0MDM0Miw0''@;'; put 'put ''MDM0Myw0MDM0NCw0MDM0NSw0MDM0Niw0MDM0Nyw0MDM0OCw0MDM0OSw0MDM1MCw0MDM1MSw0MDM1Miw0MDM1Myw0MDM1NCw1ODAwMiw1ODAwMyw1ODAwNCw1ODAwNSw1ODAwNiw1ODAwNyw1ODAwOCw1ODAwOSw1ODAxMCw1ODAxMSw1ODAxMiw1ODAxMyw1ODAxNCw1ODAxNSw1ODAxNiw1ODAx''@;'; put 'put ''Nyw1ODAxOCw1ODAxOSw1ODAyMCw1ODAyMSw1ODAyMiw1ODAyMyw1ODAyNCw1ODAyNSw1ODAyNiw1ODAyNyw1ODAyOCw1ODAyOSw1ODAzMCw1ODAzMSw1ODAzMiw1ODAzMyw1ODAzNCw1ODAzNSw1ODAzNiw1ODAzNyw1ODAzOCw1ODAzOSw1ODA0MCw1ODA0MSw1ODA0Miw1ODA0Myw1ODA0NCw1''@;'; put 'put ''ODA0NSw1ODA0Niw1ODA0Nyw1ODA0OCw1ODA0OSw1ODA1MCw1ODA1MSw1ODA1Miw1ODA1Myw1ODA1NCw1ODA1NSw1ODA1Niw1ODA1Nyw1ODA1OCw1ODA1OSw1ODA2MCw1ODA2MSw1ODA2Miw1ODA2Myw1ODA2NCw1ODA2NSw1ODA2Niw1ODA2Nyw1ODA2OCw1ODA2OSw1ODA3MCw1ODA3MSw1ODA3''@;'; put 'put ''Miw1ODA3Myw1ODA3NCw1ODA3NSw1ODA3Niw1ODA3Nyw1ODA3OCw1ODA3OSw1ODA4MCw1ODA4MSw1ODA4Miw1ODA4Myw1ODA4NCw1ODA4NSw1ODA4Niw1ODA4Nyw1ODA4OCw1ODA4OSw1ODA5MCw1ODA5MSw1ODA5Miw1ODA5Myw1ODA5NCw1ODA5NSw0MDM1NSw0MDM1Niw0MDM1Nyw0MDM1OCw0''@;'; put 'put ''MDM1OSw0MDM2MCw0MDM2MSw0MDM2Miw0MDM2Myw0MDM2NCw0MDM2NSw0MDM2Niw0MDM2Nyw0MDM2OCw0MDM2OSw0MDM3MCw0MDM3MSw0MDM3Miw0MDM3Myw0MDM3NCw0MDM3NSw0MDM3Niw0MDM3Nyw0MDM3OCw0MDM3OSw0MDM4MCw0MDM4MSw0MDM4Miw0MDM4Myw0MDM4NCw0MDM4NSw0MDM4''@;'; put 'put ''Niw0MDM4Nyw0MDM4OCw0MDM4OSw0MDM5MCw0MDM5MSw0MDM5Miw0MDM5Myw0MDM5NCw0MDM5NSw0MDM5Niw0MDM5Nyw0MDM5OCw0MDM5OSw0MDQwMCw0MDQwMSw0MDQwMiw0MDQwMyw0MDQwNCw0MDQwNSw0MDQwNiw0MDQwNyw0MDQwOCw0MDQwOSw0MDQxMCw0MDQxMSw0MDQxMiw0MDQxMyw0''@;'; put 'put ''MDQxNCw0MDQxNSw0MDQxNiw0MDQxNyw0MDQxOCw0MDQxOSw0MDQyMCw0MDQyMSw0MDQyMiw0MDQyMyw0MDQyNCw0MDQyNSw0MDQyNiw0MDQyNyw0MDQyOCw0MDQyOSw0MDQzMCw0MDQzMSw0MDQzMiw0MDQzMyw0MDQzNCw0MDQzNSw0MDQzNiw0MDQzNyw0MDQzOCw0MDQzOSw0MDQ0MCw0MDQ0''@;'; put 'put ''MSw0MDQ0Miw0MDQ0Myw0MDQ0NCw0MDQ0NSw0MDQ0Niw0MDQ0Nyw0MDQ0OCw0MDQ0OSw0MDQ1MCw1ODA5Niw1ODA5Nyw1ODA5OCw1ODA5OSw1ODEwMCw1ODEwMSw1ODEwMiw1ODEwMyw1ODEwNCw1ODEwNSw1ODEwNiw1ODEwNyw1ODEwOCw1ODEwOSw1ODExMCw1ODExMSw1ODExMiw1ODExMyw1''@;'; put 'put ''ODExNCw1ODExNSw1ODExNiw1ODExNyw1ODExOCw1ODExOSw1ODEyMCw1ODEyMSw1ODEyMiw1ODEyMyw1ODEyNCw1ODEyNSw1ODEyNiw1ODEyNyw1ODEyOCw1ODEyOSw1ODEzMCw1ODEzMSw1ODEzMiw1ODEzMyw1ODEzNCw1ODEzNSw1ODEzNiw1ODEzNyw1ODEzOCw1ODEzOSw1ODE0MCw1ODE0''@;'; put 'put ''MSw1ODE0Miw1ODE0Myw1ODE0NCw1ODE0NSw1ODE0Niw1ODE0Nyw1ODE0OCw1ODE0OSw1ODE1MCw1ODE1MSw1ODE1Miw1ODE1Myw1ODE1NCw1ODE1NSw1ODE1Niw1ODE1Nyw1ODE1OCw1ODE1OSw1ODE2MCw1ODE2MSw1ODE2Miw1ODE2Myw1ODE2NCw1ODE2NSw1ODE2Niw1ODE2Nyw1ODE2OCw1''@;'; put 'put ''ODE2OSw1ODE3MCw1ODE3MSw1ODE3Miw1ODE3Myw1ODE3NCw1ODE3NSw1ODE3Niw1ODE3Nyw1ODE3OCw1ODE3OSw1ODE4MCw1ODE4MSw1ODE4Miw1ODE4Myw1ODE4NCw1ODE4NSw1ODE4Niw1ODE4Nyw1ODE4OCw1ODE4OSw0MDQ1MSw0MDQ1Miw0MDQ1Myw0MDQ1NCw0MDQ1NSw0MDQ1Niw0MDQ1''@;'; put 'put ''Nyw0MDQ1OCw0MDQ1OSw0MDQ2MCw0MDQ2MSw0MDQ2Miw0MDQ2Myw0MDQ2NCw0MDQ2NSw0MDQ2Niw0MDQ2Nyw0MDQ2OCw0MDQ2OSw0MDQ3MCw0MDQ3MSw0MDQ3Miw0MDQ3Myw0MDQ3NCw0MDQ3NSw0MDQ3Niw0MDQ3Nyw0MDQ3OCw0MDQ4NCw0MDQ4Nyw0MDQ5NCw0MDQ5Niw0MDUwMCw0MDUwNyw0''@;'; put 'put ''MDUwOCw0MDUxMiw0MDUyNSw0MDUyOCw0MDUzMCw0MDUzMSw0MDUzMiw0MDUzNCw0MDUzNyw0MDU0MSw0MDU0Myw0MDU0NCw0MDU0NSw0MDU0Niw0MDU0OSw0MDU1OCw0MDU1OSw0MDU2Miw0MDU2NCw0MDU2NSw0MDU2Niw0MDU2Nyw0MDU2OCw0MDU2OSw0MDU3MCw0MDU3MSw0MDU3Miw0MDU3''@;'; put 'put ''Myw0MDU3Niw0MDU3Nyw0MDU3OSw0MDU4MCw0MDU4MSw0MDU4Miw0MDU4NSw0MDU4Niw0MDU4OCw0MDU4OSw0MDU5MCw0MDU5MSw0MDU5Miw0MDU5Myw0MDU5Niw0MDU5Nyw0MDU5OCw0MDU5OSw0MDYwMCw0MDYwMSw0MDYwMiw0MDYwMyw0MDYwNCw0MDYwNiw0MDYwOCw0MDYwOSw0MDYxMCw0''@;'; put 'put ''MDYxMSw0MDYxMiw0MDYxMyw0MDYxNSw0MDYxNiw0MDYxNyw0MDYxOCw1ODE5MCw1ODE5MSw1ODE5Miw1ODE5Myw1ODE5NCw1ODE5NSw1ODE5Niw1ODE5Nyw1ODE5OCw1ODE5OSw1ODIwMCw1ODIwMSw1ODIwMiw1ODIwMyw1ODIwNCw1ODIwNSw1ODIwNiw1ODIwNyw1ODIwOCw1ODIwOSw1ODIx''@;'; put 'put ''MCw1ODIxMSw1ODIxMiw1ODIxMyw1ODIxNCw1ODIxNSw1ODIxNiw1ODIxNyw1ODIxOCw1ODIxOSw1ODIyMCw1ODIyMSw1ODIyMiw1ODIyMyw1ODIyNCw1ODIyNSw1ODIyNiw1ODIyNyw1ODIyOCw1ODIyOSw1ODIzMCw1ODIzMSw1ODIzMiw1ODIzMyw1ODIzNCw1ODIzNSw1ODIzNiw1ODIzNyw1''@;'; put 'put ''ODIzOCw1ODIzOSw1ODI0MCw1ODI0MSw1ODI0Miw1ODI0Myw1ODI0NCw1ODI0NSw1ODI0Niw1ODI0Nyw1ODI0OCw1ODI0OSw1ODI1MCw1ODI1MSw1ODI1Miw1ODI1Myw1ODI1NCw1ODI1NSw1ODI1Niw1ODI1Nyw1ODI1OCw1ODI1OSw1ODI2MCw1ODI2MSw1ODI2Miw1ODI2Myw1ODI2NCw1ODI2''@;'; put 'put ''NSw1ODI2Niw1ODI2Nyw1ODI2OCw1ODI2OSw1ODI3MCw1ODI3MSw1ODI3Miw1ODI3Myw1ODI3NCw1ODI3NSw1ODI3Niw1ODI3Nyw1ODI3OCw1ODI3OSw1ODI4MCw1ODI4MSw1ODI4Miw1ODI4Myw0MDYxOSw0MDYyMCw0MDYyMSw0MDYyMiw0MDYyMyw0MDYyNCw0MDYyNSw0MDYyNiw0MDYyNyw0''@;'; put 'put ''MDYyOSw0MDYzMCw0MDYzMSw0MDYzMyw0MDYzNCw0MDYzNiw0MDYzOSw0MDY0MCw0MDY0MSw0MDY0Miw0MDY0Myw0MDY0NSw0MDY0Niw0MDY0Nyw0MDY0OCw0MDY1MCw0MDY1MSw0MDY1Miw0MDY1Niw0MDY1OCw0MDY1OSw0MDY2MSw0MDY2Miw0MDY2Myw0MDY2NSw0MDY2Niw0MDY3MCw0MDY3''@;'; put 'put ''Myw0MDY3NSw0MDY3Niw0MDY3OCw0MDY4MCw0MDY4Myw0MDY4NCw0MDY4NSw0MDY4Niw0MDY4OCw0MDY4OSw0MDY5MCw0MDY5MSw0MDY5Miw0MDY5Myw0MDY5NCw0MDY5NSw0MDY5Niw0MDY5OCw0MDcwMSw0MDcwMyw0MDcwNCw0MDcwNSw0MDcwNiw0MDcwNyw0MDcwOCw0MDcwOSw0MDcxMCw0''@;'; put 'put ''MDcxMSw0MDcxMiw0MDcxMyw0MDcxNCw0MDcxNiw0MDcxOSw0MDcyMSw0MDcyMiw0MDcyNCw0MDcyNSw0MDcyNiw0MDcyOCw0MDczMCw0MDczMSw0MDczMiw0MDczMyw0MDczNCw0MDczNSw0MDczNyw0MDczOSw0MDc0MCw0MDc0MSw0MDc0Miw0MDc0Myw0MDc0NCw0MDc0NSw0MDc0Niw0MDc0''@;'; put 'put ''Nyw0MDc0OSw0MDc1MCw0MDc1Miw0MDc1Myw1ODI4NCw1ODI4NSw1ODI4Niw1ODI4Nyw1ODI4OCw1ODI4OSw1ODI5MCw1ODI5MSw1ODI5Miw1ODI5Myw1ODI5NCw1ODI5NSw1ODI5Niw1ODI5Nyw1ODI5OCw1ODI5OSw1ODMwMCw1ODMwMSw1ODMwMiw1ODMwMyw1ODMwNCw1ODMwNSw1ODMwNiw1''@;'; put 'put ''ODMwNyw1ODMwOCw1ODMwOSw1ODMxMCw1ODMxMSw1ODMxMiw1ODMxMyw1ODMxNCw1ODMxNSw1ODMxNiw1ODMxNyw1ODMxOCw1ODMxOSw1ODMyMCw1ODMyMSw1ODMyMiw1ODMyMyw1ODMyNCw1ODMyNSw1ODMyNiw1ODMyNyw1ODMyOCw1ODMyOSw1ODMzMCw1ODMzMSw1ODMzMiw1ODMzMyw1ODMz''@;'; put 'put ''NCw1ODMzNSw1ODMzNiw1ODMzNyw1ODMzOCw1ODMzOSw1ODM0MCw1ODM0MSw1ODM0Miw1ODM0Myw1ODM0NCw1ODM0NSw1ODM0Niw1ODM0Nyw1ODM0OCw1ODM0OSw1ODM1MCw1ODM1MSw1ODM1Miw1ODM1Myw1ODM1NCw1ODM1NSw1ODM1Niw1ODM1Nyw1ODM1OCw1ODM1OSw1ODM2MCw1ODM2MSw1''@;'; put 'put ''ODM2Miw1ODM2Myw1ODM2NCw1ODM2NSw1ODM2Niw1ODM2Nyw1ODM2OCw1ODM2OSw1ODM3MCw1ODM3MSw1ODM3Miw1ODM3Myw1ODM3NCw1ODM3NSw1ODM3Niw1ODM3Nyw0MDc1NCw0MDc1NSw0MDc1Niw0MDc1Nyw0MDc1OCw0MDc2MCw0MDc2Miw0MDc2NCw0MDc2Nyw0MDc2OCw0MDc2OSw0MDc3''@;'; put 'put ''MCw0MDc3MSw0MDc3Myw0MDc3NCw0MDc3NSw0MDc3Niw0MDc3Nyw0MDc3OCw0MDc3OSw0MDc4MCw0MDc4MSw0MDc4Miw0MDc4Myw0MDc4Niw0MDc4Nyw0MDc4OCw0MDc4OSw0MDc5MCw0MDc5MSw0MDc5Miw0MDc5Myw0MDc5NCw0MDc5NSw0MDc5Niw0MDc5Nyw0MDc5OCw0MDc5OSw0MDgwMCw0''@;'; put 'put ''MDgwMSw0MDgwMiw0MDgwMyw0MDgwNCw0MDgwNSw0MDgwNiw0MDgwNyw0MDgwOCw0MDgwOSw0MDgxMCw0MDgxMSw0MDgxMiw0MDgxMyw0MDgxNCw0MDgxNSw0MDgxNiw0MDgxNyw0MDgxOCw0MDgxOSw0MDgyMCw0MDgyMSw0MDgyMiw0MDgyMyw0MDgyNCw0MDgyNSw0MDgyNiw0MDgyNyw0MDgy''@;'; put 'put ''OCw0MDgyOSw0MDgzMCw0MDgzMyw0MDgzNCw0MDg0NSw0MDg0Niw0MDg0Nyw0MDg0OCw0MDg0OSw0MDg1MCw0MDg1MSw0MDg1Miw0MDg1Myw0MDg1NCw0MDg1NSw0MDg1Niw0MDg2MCw0MDg2MSw0MDg2Miw0MDg2NSw0MDg2Niw0MDg2Nyw0MDg2OCw0MDg2OSw2Mzc4OCw2Mzg2NSw2Mzg5Myw2''@;'; put 'put ''Mzk3NSw2Mzk4NSw1ODM3OCw1ODM3OSw1ODM4MCw1ODM4MSw1ODM4Miw1ODM4Myw1ODM4NCw1ODM4NSw1ODM4Niw1ODM4Nyw1ODM4OCw1ODM4OSw1ODM5MCw1ODM5MSw1ODM5Miw1ODM5Myw1ODM5NCw1ODM5NSw1ODM5Niw1ODM5Nyw1ODM5OCw1ODM5OSw1ODQwMCw1ODQwMSw1ODQwMiw1ODQw''@;'; put 'put ''Myw1ODQwNCw1ODQwNSw1ODQwNiw1ODQwNyw1ODQwOCw1ODQwOSw1ODQxMCw1ODQxMSw1ODQxMiw1ODQxMyw1ODQxNCw1ODQxNSw1ODQxNiw1ODQxNyw1ODQxOCw1ODQxOSw1ODQyMCw1ODQyMSw1ODQyMiw1ODQyMyw1ODQyNCw1ODQyNSw1ODQyNiw1ODQyNyw1ODQyOCw1ODQyOSw1ODQzMCw1''@;'; put 'put ''ODQzMSw1ODQzMiw1ODQzMyw1ODQzNCw1ODQzNSw1ODQzNiw1ODQzNyw1ODQzOCw1ODQzOSw1ODQ0MCw1ODQ0MSw1ODQ0Miw1ODQ0Myw1ODQ0NCw1ODQ0NSw1ODQ0Niw1ODQ0Nyw1ODQ0OCw1ODQ0OSw1ODQ1MCw1ODQ1MSw1ODQ1Miw1ODQ1Myw1ODQ1NCw1ODQ1NSw1ODQ1Niw1ODQ1Nyw1ODQ1''@;'; put 'put ''OCw1ODQ1OSw1ODQ2MCw1ODQ2MSw1ODQ2Miw1ODQ2Myw1ODQ2NCw1ODQ2NSw1ODQ2Niw1ODQ2Nyw1ODQ2OCw1ODQ2OSw1ODQ3MCw1ODQ3MSw2NDAxMiw2NDAxMyw2NDAxNCw2NDAxNSw2NDAxNyw2NDAxOSw2NDAyMCw2NDAyNCw2NDAzMSw2NDAzMiw2NDAzMyw2NDAzNSw2NDAzNiw2NDAzOSw2''@;'; put 'put ''NDA0MCw2NDA0MSwxMTkwNSw1OTQxNCw1OTQxNSw1OTQxNiwxMTkwOCwxMzQyNywxMzM4MywxMTkxMiwxMTkxNSw1OTQyMiwxMzcyNiwxMzg1MCwxMzgzOCwxMTkxNiwxMTkyNywxNDcwMiwxNDYxNiw1OTQzMCwxNDc5OSwxNDgxNSwxNDk2MywxNDgwMCw1OTQzNSw1OTQzNiwxNTE4MiwxNTQ3''@;'; put 'put ''MCwxNTU4NCwxMTk0Myw1OTQ0MSw1OTQ0MiwxMTk0NiwxNjQ3MCwxNjczNSwxMTk1MCwxNzIwNywxMTk1NSwxMTk1OCwxMTk1OSw1OTQ1MSwxNzMyOSwxNzMyNCwxMTk2MywxNzM3MywxNzYyMiwxODAxNywxNzk5Niw1OTQ1OSwxODIxMSwxODIxNywxODMwMCwxODMxNywxMTk3OCwxODc1OSwx''@;'; put 'put ''ODgxMCwxODgxMywxODgxOCwxODgxOSwxODgyMSwxODgyMiwxODg0NywxODg0MywxODg3MSwxODg3MCw1OTQ3Niw1OTQ3NywxOTYxOSwxOTYxNSwxOTYxNiwxOTYxNywxOTU3NSwxOTYxOCwxOTczMSwxOTczMiwxOTczMywxOTczNCwxOTczNSwxOTczNiwxOTczNywxOTg4Niw1OTQ5Miw1ODQ3''@;'; put 'put ''Miw1ODQ3Myw1ODQ3NCw1ODQ3NSw1ODQ3Niw1ODQ3Nyw1ODQ3OCw1ODQ3OSw1ODQ4MCw1ODQ4MSw1ODQ4Miw1ODQ4Myw1ODQ4NCw1ODQ4NSw1ODQ4Niw1ODQ4Nyw1ODQ4OCw1ODQ4OSw1ODQ5MCw1ODQ5MSw1ODQ5Miw1ODQ5Myw1ODQ5NCw1ODQ5NSw1ODQ5Niw1ODQ5Nyw1ODQ5OCw1ODQ5OSw1''@;'; put 'put ''ODUwMCw1ODUwMSw1ODUwMiw1ODUwMyw1ODUwNCw1ODUwNSw1ODUwNiw1ODUwNyw1ODUwOCw1ODUwOSw1ODUxMCw1ODUxMSw1ODUxMiw1ODUxMyw1ODUxNCw1ODUxNSw1ODUxNiw1ODUxNyw1ODUxOCw1ODUxOSw1ODUyMCw1ODUyMSw1ODUyMiw1ODUyMyw1ODUyNCw1ODUyNSw1ODUyNiw1ODUy''@;'; put 'put ''Nyw1ODUyOCw1ODUyOSw1ODUzMCw1ODUzMSw1ODUzMiw1ODUzMyw1ODUzNCw1ODUzNSw1ODUzNiw1ODUzNyw1ODUzOCw1ODUzOSw1ODU0MCw1ODU0MSw1ODU0Miw1ODU0Myw1ODU0NCw1ODU0NSw1ODU0Niw1ODU0Nyw1ODU0OCw1ODU0OSw1ODU1MCw1ODU1MSw1ODU1Miw1ODU1Myw1ODU1NCw1''@;'; put 'put ''ODU1NSw1ODU1Niw1ODU1Nyw1ODU1OCw1ODU1OSw1ODU2MCw1ODU2MSw1ODU2Miw1ODU2Myw1ODU2NCw1ODU2NV0sImdiMTgwMzAtcmFuZ2VzIjpbWzAsMTI4XSxbMzYsMTY1XSxbMzgsMTY5XSxbNDUsMTc4XSxbNTAsMTg0XSxbODEsMjE2XSxbODksMjI2XSxbOTUsMjM1XSxbOTYsMjM4XSxb''@;'; put 'put ''MTAwLDI0NF0sWzEwMywyNDhdLFsxMDQsMjUxXSxbMTA1LDI1M10sWzEwOSwyNThdLFsxMjYsMjc2XSxbMTMzLDI4NF0sWzE0OCwzMDBdLFsxNzIsMzI1XSxbMTc1LDMyOV0sWzE3OSwzMzRdLFsyMDgsMzY0XSxbMzA2LDQ2M10sWzMwNyw0NjVdLFszMDgsNDY3XSxbMzA5LDQ2OV0sWzMxMCw0''@;'; put 'put ''NzFdLFszMTEsNDczXSxbMzEyLDQ3NV0sWzMxMyw0NzddLFszNDEsNTA2XSxbNDI4LDU5NF0sWzQ0Myw2MTBdLFs1NDQsNzEyXSxbNTQ1LDcxNl0sWzU1OCw3MzBdLFs3NDEsOTMwXSxbNzQyLDkzOF0sWzc0OSw5NjJdLFs3NTAsOTcwXSxbODA1LDEwMjZdLFs4MTksMTEwNF0sWzgyMCwxMTA2''@;'; put 'put ''XSxbNzkyMiw4MjA5XSxbNzkyNCw4MjE1XSxbNzkyNSw4MjE4XSxbNzkyNyw4MjIyXSxbNzkzNCw4MjMxXSxbNzk0Myw4MjQxXSxbNzk0NCw4MjQ0XSxbNzk0NSw4MjQ2XSxbNzk1MCw4MjUyXSxbODA2Miw4MzY1XSxbODE0OCw4NDUyXSxbODE0OSw4NDU0XSxbODE1Miw4NDU4XSxbODE2NCw4''@;'; put 'put ''NDcxXSxbODE3NCw4NDgyXSxbODIzNiw4NTU2XSxbODI0MCw4NTcwXSxbODI2Miw4NTk2XSxbODI2NCw4NjAyXSxbODM3NCw4NzEzXSxbODM4MCw4NzIwXSxbODM4MSw4NzIyXSxbODM4NCw4NzI2XSxbODM4OCw4NzMxXSxbODM5MCw4NzM3XSxbODM5Miw4NzQwXSxbODM5Myw4NzQyXSxbODM5''@;'; put 'put ''NCw4NzQ4XSxbODM5Niw4NzUxXSxbODQwMSw4NzYwXSxbODQwNiw4NzY2XSxbODQxNiw4Nzc3XSxbODQxOSw4NzgxXSxbODQyNCw4Nzg3XSxbODQzNyw4ODAyXSxbODQzOSw4ODA4XSxbODQ0NSw4ODE2XSxbODQ4Miw4ODU0XSxbODQ4NSw4ODU4XSxbODQ5Niw4ODcwXSxbODUyMSw4ODk2XSxb''@;'; put 'put ''ODYwMyw4OTc5XSxbODkzNiw5MzIyXSxbODk0Niw5MzcyXSxbOTA0Niw5NTQ4XSxbOTA1MCw5NTg4XSxbOTA2Myw5NjE2XSxbOTA2Niw5NjIyXSxbOTA3Niw5NjM0XSxbOTA5Miw5NjUyXSxbOTEwMCw5NjYyXSxbOTEwOCw5NjcyXSxbOTExMSw5Njc2XSxbOTExMyw5NjgwXSxbOTEzMSw5NzAy''@;'; put 'put ''XSxbOTE2Miw5NzM1XSxbOTE2NCw5NzM4XSxbOTIxOCw5NzkzXSxbOTIxOSw5Nzk1XSxbMTEzMjksMTE5MDZdLFsxMTMzMSwxMTkwOV0sWzExMzM0LDExOTEzXSxbMTEzMzYsMTE5MTddLFsxMTM0NiwxMTkyOF0sWzExMzYxLDExOTQ0XSxbMTEzNjMsMTE5NDddLFsxMTM2NiwxMTk1MV0sWzEx''@;'; put 'put ''MzcwLDExOTU2XSxbMTEzNzIsMTE5NjBdLFsxMTM3NSwxMTk2NF0sWzExMzg5LDExOTc5XSxbMTE2ODIsMTIyODRdLFsxMTY4NiwxMjI5Ml0sWzExNjg3LDEyMzEyXSxbMTE2OTIsMTIzMTldLFsxMTY5NCwxMjMzMF0sWzExNzE0LDEyMzUxXSxbMTE3MTYsMTI0MzZdLFsxMTcyMywxMjQ0N10s''@;'; put 'put ''WzExNzI1LDEyNTM1XSxbMTE3MzAsMTI1NDNdLFsxMTczNiwxMjU4Nl0sWzExOTgyLDEyODQyXSxbMTE5ODksMTI4NTBdLFsxMjEwMiwxMjk2NF0sWzEyMzM2LDEzMjAwXSxbMTIzNDgsMTMyMTVdLFsxMjM1MCwxMzIxOF0sWzEyMzg0LDEzMjUzXSxbMTIzOTMsMTMyNjNdLFsxMjM5NSwxMzI2''@;'; put 'put ''N10sWzEyMzk3LDEzMjcwXSxbMTI1MTAsMTMzODRdLFsxMjU1MywxMzQyOF0sWzEyODUxLDEzNzI3XSxbMTI5NjIsMTM4MzldLFsxMjk3MywxMzg1MV0sWzEzNzM4LDE0NjE3XSxbMTM4MjMsMTQ3MDNdLFsxMzkxOSwxNDgwMV0sWzEzOTMzLDE0ODE2XSxbMTQwODAsMTQ5NjRdLFsxNDI5OCwx''@;'; put 'put ''NTE4M10sWzE0NTg1LDE1NDcxXSxbMTQ2OTgsMTU1ODVdLFsxNTU4MywxNjQ3MV0sWzE1ODQ3LDE2NzM2XSxbMTYzMTgsMTcyMDhdLFsxNjQzNCwxNzMyNV0sWzE2NDM4LDE3MzMwXSxbMTY0ODEsMTczNzRdLFsxNjcyOSwxNzYyM10sWzE3MTAyLDE3OTk3XSxbMTcxMjIsMTgwMThdLFsxNzMx''@;'; put 'put ''NSwxODIxMl0sWzE3MzIwLDE4MjE4XSxbMTc0MDIsMTgzMDFdLFsxNzQxOCwxODMxOF0sWzE3ODU5LDE4NzYwXSxbMTc5MDksMTg4MTFdLFsxNzkxMSwxODgxNF0sWzE3OTE1LDE4ODIwXSxbMTc5MTYsMTg4MjNdLFsxNzkzNiwxODg0NF0sWzE3OTM5LDE4ODQ4XSxbMTc5NjEsMTg4NzJdLFsx''@;'; put 'put ''ODY2NCwxOTU3Nl0sWzE4NzAzLDE5NjIwXSxbMTg4MTQsMTk3MzhdLFsxODk2MiwxOTg4N10sWzE5MDQzLDQwODcwXSxbMzM0NjksNTkyNDRdLFszMzQ3MCw1OTMzNl0sWzMzNDcxLDU5MzY3XSxbMzM0ODQsNTk0MTNdLFszMzQ4NSw1OTQxN10sWzMzNDkwLDU5NDIzXSxbMzM0OTcsNTk0MzFd''@;'; put 'put ''LFszMzUwMSw1OTQzN10sWzMzNTA1LDU5NDQzXSxbMzM1MTMsNTk0NTJdLFszMzUyMCw1OTQ2MF0sWzMzNTM2LDU5NDc4XSxbMzM1NTAsNTk0OTNdLFszNzg0NSw2Mzc4OV0sWzM3OTIxLDYzODY2XSxbMzc5NDgsNjM4OTRdLFszODAyOSw2Mzk3Nl0sWzM4MDM4LDYzOTg2XSxbMzgwNjQsNjQw''@;'; put 'put ''MTZdLFszODA2NSw2NDAxOF0sWzM4MDY2LDY0MDIxXSxbMzgwNjksNjQwMjVdLFszODA3NSw2NDAzNF0sWzM4MDc2LDY0MDM3XSxbMzgwNzgsNjQwNDJdLFszOTEwOCw2NTA3NF0sWzM5MTA5LDY1MDkzXSxbMzkxMTMsNjUxMDddLFszOTExNCw2NTExMl0sWzM5MTE1LDY1MTI3XSxbMzkxMTYs''@;'; put 'put ''NjUxMzJdLFszOTI2NSw2NTM3NV0sWzM5Mzk0LDY1NTEwXSxbMTg5ZTMsNjU1MzZdXSxqaXMwMjA4OlsxMjI4OCwxMjI4OSwxMjI5MCw2NTI5Miw2NTI5NCwxMjUzOSw2NTMwNiw2NTMwNyw2NTMxMSw2NTI4MSwxMjQ0MywxMjQ0NCwxODAsNjUzNDQsMTY4LDY1MzQyLDY1NTA3LDY1MzQzLDEy''@;'; put 'put ''NTQxLDEyNTQyLDEyNDQ1LDEyNDQ2LDEyMjkxLDIwMTg5LDEyMjkzLDEyMjk0LDEyMjk1LDEyNTQwLDgyMTMsODIwOCw2NTI5NSw2NTM0MCw2NTM3NCw4NzQxLDY1MzcyLDgyMzAsODIyOSw4MjE2LDgyMTcsODIyMCw4MjIxLDY1Mjg4LDY1Mjg5LDEyMzA4LDEyMzA5LDY1MzM5LDY1MzQxLDY1''@;'; put 'put ''MzcxLDY1MzczLDEyMjk2LDEyMjk3LDEyMjk4LDEyMjk5LDEyMzAwLDEyMzAxLDEyMzAyLDEyMzAzLDEyMzA0LDEyMzA1LDY1MjkxLDY1MjkzLDE3NywyMTUsMjQ3LDY1MzA5LDg4MDAsNjUzMDgsNjUzMTAsODgwNiw4ODA3LDg3MzQsODc1Niw5Nzk0LDk3OTIsMTc2LDgyNDIsODI0Myw4NDUx''@;'; put 'put ''LDY1NTA5LDY1Mjg0LDY1NTA0LDY1NTA1LDY1Mjg1LDY1MjgzLDY1Mjg2LDY1MjkwLDY1MzEyLDE2Nyw5NzM0LDk3MzMsOTY3NSw5Njc5LDk2NzgsOTY3MSw5NjcwLDk2MzMsOTYzMiw5NjUxLDk2NTAsOTY2MSw5NjYwLDgyNTEsMTIzMDYsODU5NCw4NTkyLDg1OTMsODU5NSwxMjMwNyxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODcxMiw4NzE1LDg4MzgsODgzOSw4ODM0LDg4MzUsODc0Niw4NzQ1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NzQzLDg3NDQsNjU1MDYsODY1OCw4NjYwLDg3MDQsODcw''@;'; put 'put ''NyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsODczNiw4ODY5LDg5NzgsODcwNiw4NzExLDg4MDEsODc4Niw4ODEwLDg4MTEsODczMCw4NzY1LDg3MzMsODc1Nyw4NzQ3LDg3NDgsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCw4NDkxLDgyNDAsOTgzOSw5ODM3LDk4MzQsODIyNCw4MjI1LDE4MixudWxsLG51bGwsbnVsbCxudWxsLDk3MTEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsNjUyOTYsNjUyOTcsNjUyOTgsNjUyOTks''@;'; put 'put ''NjUzMDAsNjUzMDEsNjUzMDIsNjUzMDMsNjUzMDQsNjUzMDUsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NTMxMyw2NTMxNCw2NTMxNSw2NTMxNiw2NTMxNyw2NTMxOCw2NTMxOSw2NTMyMCw2NTMyMSw2NTMyMiw2NTMyMyw2NTMyNCw2NTMyNSw2NTMyNiw2NTMyNyw2NTMy''@;'; put 'put ''OCw2NTMyOSw2NTMzMCw2NTMzMSw2NTMzMiw2NTMzMyw2NTMzNCw2NTMzNSw2NTMzNiw2NTMzNyw2NTMzOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw2NTM0NSw2NTM0Niw2NTM0Nyw2NTM0OCw2NTM0OSw2NTM1MCw2NTM1MSw2NTM1Miw2NTM1Myw2NTM1NCw2NTM1NSw2NTM1Niw2''@;'; put 'put ''NTM1Nyw2NTM1OCw2NTM1OSw2NTM2MCw2NTM2MSw2NTM2Miw2NTM2Myw2NTM2NCw2NTM2NSw2NTM2Niw2NTM2Nyw2NTM2OCw2NTM2OSw2NTM3MCxudWxsLG51bGwsbnVsbCxudWxsLDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEyMzU5LDEyMzYwLDEyMzYxLDEyMzYyLDEy''@;'; put 'put ''MzYzLDEyMzY0LDEyMzY1LDEyMzY2LDEyMzY3LDEyMzY4LDEyMzY5LDEyMzcwLDEyMzcxLDEyMzcyLDEyMzczLDEyMzc0LDEyMzc1LDEyMzc2LDEyMzc3LDEyMzc4LDEyMzc5LDEyMzgwLDEyMzgxLDEyMzgyLDEyMzgzLDEyMzg0LDEyMzg1LDEyMzg2LDEyMzg3LDEyMzg4LDEyMzg5LDEyMzkw''@;'; put 'put ''LDEyMzkxLDEyMzkyLDEyMzkzLDEyMzk0LDEyMzk1LDEyMzk2LDEyMzk3LDEyMzk4LDEyMzk5LDEyNDAwLDEyNDAxLDEyNDAyLDEyNDAzLDEyNDA0LDEyNDA1LDEyNDA2LDEyNDA3LDEyNDA4LDEyNDA5LDEyNDEwLDEyNDExLDEyNDEyLDEyNDEzLDEyNDE0LDEyNDE1LDEyNDE2LDEyNDE3LDEy''@;'; put 'put ''NDE4LDEyNDE5LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDI1LDEyNDI2LDEyNDI3LDEyNDI4LDEyNDI5LDEyNDMwLDEyNDMxLDEyNDMyLDEyNDMzLDEyNDM0LDEyNDM1LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMjQ0''@;'; put 'put ''OSwxMjQ1MCwxMjQ1MSwxMjQ1MiwxMjQ1MywxMjQ1NCwxMjQ1NSwxMjQ1NiwxMjQ1NywxMjQ1OCwxMjQ1OSwxMjQ2MCwxMjQ2MSwxMjQ2MiwxMjQ2MywxMjQ2NCwxMjQ2NSwxMjQ2NiwxMjQ2NywxMjQ2OCwxMjQ2OSwxMjQ3MCwxMjQ3MSwxMjQ3MiwxMjQ3MywxMjQ3NCwxMjQ3NSwxMjQ3Niwx''@;'; put 'put ''MjQ3NywxMjQ3OCwxMjQ3OSwxMjQ4MCwxMjQ4MSwxMjQ4MiwxMjQ4MywxMjQ4NCwxMjQ4NSwxMjQ4NiwxMjQ4NywxMjQ4OCwxMjQ4OSwxMjQ5MCwxMjQ5MSwxMjQ5MiwxMjQ5MywxMjQ5NCwxMjQ5NSwxMjQ5NiwxMjQ5NywxMjQ5OCwxMjQ5OSwxMjUwMCwxMjUwMSwxMjUwMiwxMjUwMywxMjUw''@;'; put 'put ''NCwxMjUwNSwxMjUwNiwxMjUwNywxMjUwOCwxMjUwOSwxMjUxMCwxMjUxMSwxMjUxMiwxMjUxMywxMjUxNCwxMjUxNSwxMjUxNiwxMjUxNywxMjUxOCwxMjUxOSwxMjUyMCwxMjUyMSwxMjUyMiwxMjUyMywxMjUyNCwxMjUyNSwxMjUyNiwxMjUyNywxMjUyOCwxMjUyOSwxMjUzMCwxMjUzMSwx''@;'; put 'put ''MjUzMiwxMjUzMywxMjUzNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDQwLDEwNDEsMTA0Miwx''@;'; put 'put ''MDQzLDEwNDQsMTA0NSwxMDI1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMTA1LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQsMTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwx''@;'; put 'put ''MDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwMyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Niw5NDkyLDk1MDAsOTUxNiw5''@;'; put 'put ''NTA4LDk1MjQsOTUzMiw5NDczLDk0NzUsOTQ4Nyw5NDkxLDk0OTksOTQ5NSw5NTA3LDk1MjMsOTUxNSw5NTMxLDk1NDcsOTUwNCw5NTE5LDk1MTIsOTUyNyw5NTM1LDk1MDEsOTUyMCw5NTA5LDk1MjgsOTUzOCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw5''@;'; put 'put ''MzEyLDkzMTMsOTMxNCw5MzE1LDkzMTYsOTMxNyw5MzE4LDkzMTksOTMyMCw5MzIxLDkzMjIsOTMyMyw5MzI0LDkzMjUsOTMyNiw5MzI3LDkzMjgsOTMyOSw5MzMwLDkzMzEsODU0NCw4NTQ1LDg1NDYsODU0Nyw4NTQ4LDg1NDksODU1MCw4NTUxLDg1NTIsODU1MyxudWxsLDEzMTI5LDEzMDc2''@;'; put 'put ''LDEzMDkwLDEzMTMzLDEzMDgwLDEzMDk1LDEzMDU5LDEzMTEwLDEzMTM3LDEzMTQzLDEzMDY5LDEzMDk0LDEzMDkxLDEzMDk5LDEzMTMwLDEzMTE1LDEzMjEyLDEzMjEzLDEzMjE0LDEzMTk4LDEzMTk5LDEzMjUyLDEzMjE3LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCwxMzE3OSwxMjMxNywxMjMxOSw4NDcwLDEzMjYxLDg0ODEsMTI5NjQsMTI5NjUsMTI5NjYsMTI5NjcsMTI5NjgsMTI4NDksMTI4NTAsMTI4NTcsMTMxODIsMTMxODEsMTMxODAsODc4Niw4ODAxLDg3NDcsODc1MCw4NzIxLDg3MzAsODg2OSw4NzM2LDg3MzUsODg5NSw4NzU3LDg3NDUsODc0''@;'; put 'put ''NixudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDIwMTI0LDIxNzgyLDIzMDQzLDM4NDYzLDIxNjk2LDI0ODU5LDI1''@;'; put 'put ''Mzg0LDIzMDMwLDM2ODk4LDMzOTA5LDMzNTY0LDMxMzEyLDI0NzQ2LDI1NTY5LDI4MTk3LDI2MDkzLDMzODk0LDMzNDQ2LDM5OTI1LDI2NzcxLDIyMzExLDI2MDE3LDI1MjAxLDIzNDUxLDIyOTkyLDM0NDI3LDM5MTU2LDMyMDk4LDMyMTkwLDM5ODIyLDI1MTEwLDMxOTAzLDM0OTk5LDIzNDMz''@;'; put 'put ''LDI0MjQ1LDI1MzUzLDI2MjYzLDI2Njk2LDM4MzQzLDM4Nzk3LDI2NDQ3LDIwMTk3LDIwMjM0LDIwMzAxLDIwMzgxLDIwNTUzLDIyMjU4LDIyODM5LDIyOTk2LDIzMDQxLDIzNTYxLDI0Nzk5LDI0ODQ3LDI0OTQ0LDI2MTMxLDI2ODg1LDI4ODU4LDMwMDMxLDMwMDY0LDMxMjI3LDMyMTczLDMy''@;'; put 'put ''MjM5LDMyOTYzLDMzODA2LDM0OTE1LDM1NTg2LDM2OTQ5LDM2OTg2LDIxMzA3LDIwMTE3LDIwMTMzLDIyNDk1LDMyOTQ2LDM3MDU3LDMwOTU5LDE5OTY4LDIyNzY5LDI4MzIyLDM2OTIwLDMxMjgyLDMzNTc2LDMzNDE5LDM5OTgzLDIwODAxLDIxMzYwLDIxNjkzLDIxNzI5LDIyMjQwLDIzMDM1''@;'; put 'put ''LDI0MzQxLDM5MTU0LDI4MTM5LDMyOTk2LDM0MDkzLDM4NDk4LDM4NTEyLDM4NTYwLDM4OTA3LDIxNTE1LDIxNDkxLDIzNDMxLDI4ODc5LDMyNzAxLDM2ODAyLDM4NjMyLDIxMzU5LDQwMjg0LDMxNDE4LDE5OTg1LDMwODY3LDMzMjc2LDI4MTk4LDIyMDQwLDIxNzY0LDI3NDIxLDM0MDc0LDM5''@;'; put 'put ''OTk1LDIzMDEzLDIxNDE3LDI4MDA2LDI5OTE2LDM4Mjg3LDIyMDgyLDIwMTEzLDM2OTM5LDM4NjQyLDMzNjE1LDM5MTgwLDIxNDczLDIxOTQyLDIzMzQ0LDI0NDMzLDI2MTQ0LDI2MzU1LDI2NjI4LDI3NzA0LDI3ODkxLDI3OTQ1LDI5Nzg3LDMwNDA4LDMxMzEwLDM4OTY0LDMzNTIxLDM0OTA3''@;'; put 'put ''LDM1NDI0LDM3NjEzLDI4MDgyLDMwMTIzLDMwNDEwLDM5MzY1LDI0NzQyLDM1NTg1LDM2MjM0LDM4MzIyLDI3MDIyLDIxNDIxLDIwODcwLDIyMjkwLDIyNTc2LDIyODUyLDIzNDc2LDI0MzEwLDI0NjE2LDI1NTEzLDI1NTg4LDI3ODM5LDI4NDM2LDI4ODE0LDI4OTQ4LDI5MDE3LDI5MTQxLDI5''@;'; put 'put ''NTAzLDMyMjU3LDMzMzk4LDMzNDg5LDM0MTk5LDM2OTYwLDM3NDY3LDQwMjE5LDIyNjMzLDI2MDQ0LDI3NzM4LDI5OTg5LDIwOTg1LDIyODMwLDIyODg1LDI0NDQ4LDI0NTQwLDI1Mjc2LDI2MTA2LDI3MTc4LDI3NDMxLDI3NTcyLDI5NTc5LDMyNzA1LDM1MTU4LDQwMjM2LDQwMjA2LDQwNjQ0''@;'; put 'put ''LDIzNzEzLDI3Nzk4LDMzNjU5LDIwNzQwLDIzNjI3LDI1MDE0LDMzMjIyLDI2NzQyLDI5MjgxLDIwMDU3LDIwNDc0LDIxMzY4LDI0NjgxLDI4MjAxLDMxMzExLDM4ODk5LDE5OTc5LDIxMjcwLDIwMjA2LDIwMzA5LDIwMjg1LDIwMzg1LDIwMzM5LDIxMTUyLDIxNDg3LDIyMDI1LDIyNzk5LDIz''@;'; put 'put ''MjMzLDIzNDc4LDIzNTIxLDMxMTg1LDI2MjQ3LDI2NTI0LDI2NTUwLDI3NDY4LDI3ODI3LDI4Nzc5LDI5NjM0LDMxMTE3LDMxMTY2LDMxMjkyLDMxNjIzLDMzNDU3LDMzNDk5LDMzNTQwLDMzNjU1LDMzNzc1LDMzNzQ3LDM0NjYyLDM1NTA2LDIyMDU3LDM2MDA4LDM2ODM4LDM2OTQyLDM4Njg2''@;'; put 'put ''LDM0NDQyLDIwNDIwLDIzNzg0LDI1MTA1LDI5MjczLDMwMDExLDMzMjUzLDMzNDY5LDM0NTU4LDM2MDMyLDM4NTk3LDM5MTg3LDM5MzgxLDIwMTcxLDIwMjUwLDM1Mjk5LDIyMjM4LDIyNjAyLDIyNzMwLDI0MzE1LDI0NTU1LDI0NjE4LDI0NzI0LDI0Njc0LDI1MDQwLDI1MTA2LDI1Mjk2LDI1''@;'; put 'put ''OTEzLDM5NzQ1LDI2MjE0LDI2ODAwLDI4MDIzLDI4Nzg0LDMwMDI4LDMwMzQyLDMyMTE3LDMzNDQ1LDM0ODA5LDM4MjgzLDM4NTQyLDM1OTk3LDIwOTc3LDIxMTgyLDIyODA2LDIxNjgzLDIzNDc1LDIzODMwLDI0OTM2LDI3MDEwLDI4MDc5LDMwODYxLDMzOTk1LDM0OTAzLDM1NDQyLDM3Nzk5''@;'; put 'put ''LDM5NjA4LDI4MDEyLDM5MzM2LDM0NTIxLDIyNDM1LDI2NjIzLDM0NTEwLDM3MzkwLDIxMTIzLDIyMTUxLDIxNTA4LDI0Mjc1LDI1MzEzLDI1Nzg1LDI2Njg0LDI2NjgwLDI3NTc5LDI5NTU0LDMwOTA2LDMxMzM5LDM1MjI2LDM1MjgyLDM2MjAzLDM2NjExLDM3MTAxLDM4MzA3LDM4NTQ4LDM4''@;'; put 'put ''NzYxLDIzMzk4LDIzNzMxLDI3MDA1LDM4OTg5LDM4OTkwLDI1NDk5LDMxNTIwLDI3MTc5LDI3MjYzLDI2ODA2LDM5OTQ5LDI4NTExLDIxMTA2LDIxOTE3LDI0Njg4LDI1MzI0LDI3OTYzLDI4MTY3LDI4MzY5LDMzODgzLDM1MDg4LDM2Njc2LDE5OTg4LDM5OTkzLDIxNDk0LDI2OTA3LDI3MTk0''@;'; put 'put ''LDM4Nzg4LDI2NjY2LDIwODI4LDMxNDI3LDMzOTcwLDM3MzQwLDM3NzcyLDIyMTA3LDQwMjMyLDI2NjU4LDMzNTQxLDMzODQxLDMxOTA5LDIxZTMsMzM0NzcsMjk5MjYsMjAwOTQsMjAzNTUsMjA4OTYsMjM1MDYsMjEwMDIsMjEyMDgsMjEyMjMsMjQwNTksMjE5MTQsMjI1NzAsMjMwMTQsMjM0''@;'; put 'put ''MzYsMjM0NDgsMjM1MTUsMjQxNzgsMjQxODUsMjQ3MzksMjQ4NjMsMjQ5MzEsMjUwMjIsMjU1NjMsMjU5NTQsMjY1NzcsMjY3MDcsMjY4NzQsMjc0NTQsMjc0NzUsMjc3MzUsMjg0NTAsMjg1NjcsMjg0ODUsMjk4NzIsMjk5NzYsMzA0MzUsMzA0NzUsMzE0ODcsMzE2NDksMzE3NzcsMzIyMzMs''@;'; put 'put ''MzI1NjYsMzI3NTIsMzI5MjUsMzMzODIsMzM2OTQsMzUyNTEsMzU1MzIsMzYwMTEsMzY5OTYsMzc5NjksMzgyOTEsMzgyODksMzgzMDYsMzg1MDEsMzg4NjcsMzkyMDgsMzMzMDQsMjAwMjQsMjE1NDcsMjM3MzYsMjQwMTIsMjk2MDksMzAyODQsMzA1MjQsMjM3MjEsMzI3NDcsMzYxMDcsMzg1''@;'; put 'put ''OTMsMzg5MjksMzg5OTYsMzllMywyMDIyNSwyMDIzOCwyMTM2MSwyMTkxNiwyMjEyMCwyMjUyMiwyMjg1NSwyMzMwNSwyMzQ5MiwyMzY5NiwyNDA3NiwyNDE5MCwyNDUyNCwyNTU4MiwyNjQyNiwyNjA3MSwyNjA4MiwyNjM5OSwyNjgyNywyNjgyMCwyNzIzMSwyNDExMiwyNzU4OSwyNzY3MSwy''@;'; put 'put ''Nzc3MywzMDA3OSwzMTA0OCwyMzM5NSwzMTIzMiwzMmUzLDI0NTA5LDM1MjE1LDM1MzUyLDM2MDIwLDM2MjE1LDM2NTU2LDM2NjM3LDM5MTM4LDM5NDM4LDM5NzQwLDIwMDk2LDIwNjA1LDIwNzM2LDIyOTMxLDIzNDUyLDI1MTM1LDI1MjE2LDI1ODM2LDI3NDUwLDI5MzQ0LDMwMDk3LDMxMDQ3''@;'; put 'put ''LDMyNjgxLDM0ODExLDM1NTE2LDM1Njk2LDI1NTE2LDMzNzM4LDM4ODE2LDIxNTEzLDIxNTA3LDIxOTMxLDI2NzA4LDI3MjI0LDM1NDQwLDMwNzU5LDI2NDg1LDQwNjUzLDIxMzY0LDIzNDU4LDMzMDUwLDM0Mzg0LDM2ODcwLDE5OTkyLDIwMDM3LDIwMTY3LDIwMjQxLDIxNDUwLDIxNTYwLDIz''@;'; put 'put ''NDcwLDI0MzM5LDI0NjEzLDI1OTM3LDI2NDI5LDI3NzE0LDI3NzYyLDI3ODc1LDI4NzkyLDI5Njk5LDMxMzUwLDMxNDA2LDMxNDk2LDMyMDI2LDMxOTk4LDMyMTAyLDI2MDg3LDI5Mjc1LDIxNDM1LDIzNjIxLDI0MDQwLDI1Mjk4LDI1MzEyLDI1MzY5LDI4MTkyLDM0Mzk0LDM1Mzc3LDM2MzE3''@;'; put 'put ''LDM3NjI0LDI4NDE3LDMxMTQyLDM5NzcwLDIwMTM2LDIwMTM5LDIwMTQwLDIwMzc5LDIwMzg0LDIwNjg5LDIwODA3LDMxNDc4LDIwODQ5LDIwOTgyLDIxMzMyLDIxMjgxLDIxMzc1LDIxNDgzLDIxOTMyLDIyNjU5LDIzNzc3LDI0Mzc1LDI0Mzk0LDI0NjIzLDI0NjU2LDI0Njg1LDI1Mzc1LDI1''@;'; put 'put ''OTQ1LDI3MjExLDI3ODQxLDI5Mzc4LDI5NDIxLDMwNzAzLDMzMDE2LDMzMDI5LDMzMjg4LDM0MTI2LDM3MTExLDM3ODU3LDM4OTExLDM5MjU1LDM5NTE0LDIwMjA4LDIwOTU3LDIzNTk3LDI2MjQxLDI2OTg5LDIzNjE2LDI2MzU0LDI2OTk3LDI5NTc3LDI2NzA0LDMxODczLDIwNjc3LDIxMjIw''@;'; put 'put ''LDIyMzQzLDI0MDYyLDM3NjcwLDI2MDIwLDI3NDI3LDI3NDUzLDI5NzQ4LDMxMTA1LDMxMTY1LDMxNTYzLDMyMjAyLDMzNDY1LDMzNzQwLDM0OTQzLDM1MTY3LDM1NjQxLDM2ODE3LDM3MzI5LDIxNTM1LDM3NTA0LDIwMDYxLDIwNTM0LDIxNDc3LDIxMzA2LDI5Mzk5LDI5NTkwLDMwNjk3LDMz''@;'; put 'put ''NTEwLDM2NTI3LDM5MzY2LDM5MzY4LDM5Mzc4LDIwODU1LDI0ODU4LDM0Mzk4LDIxOTM2LDMxMzU0LDIwNTk4LDIzNTA3LDM2OTM1LDM4NTMzLDIwMDE4LDI3MzU1LDM3MzUxLDIzNjMzLDIzNjI0LDI1NDk2LDMxMzkxLDI3Nzk1LDM4NzcyLDM2NzA1LDMxNDAyLDI5MDY2LDM4NTM2LDMxODc0''@;'; put 'put ''LDI2NjQ3LDMyMzY4LDI2NzA1LDM3NzQwLDIxMjM0LDIxNTMxLDM0MjE5LDM1MzQ3LDMyNjc2LDM2NTU3LDM3MDg5LDIxMzUwLDM0OTUyLDMxMDQxLDIwNDE4LDIwNjcwLDIxMDA5LDIwODA0LDIxODQzLDIyMzE3LDI5Njc0LDIyNDExLDIyODY1LDI0NDE4LDI0NDUyLDI0NjkzLDI0OTUwLDI0''@;'; put 'put ''OTM1LDI1MDAxLDI1NTIyLDI1NjU4LDI1OTY0LDI2MjIzLDI2NjkwLDI4MTc5LDMwMDU0LDMxMjkzLDMxOTk1LDMyMDc2LDMyMTUzLDMyMzMxLDMyNjE5LDMzNTUwLDMzNjEwLDM0NTA5LDM1MzM2LDM1NDI3LDM1Njg2LDM2NjA1LDM4OTM4LDQwMzM1LDMzNDY0LDM2ODE0LDM5OTEyLDIxMTI3''@;'; put 'put ''LDI1MTE5LDI1NzMxLDI4NjA4LDM4NTUzLDI2Njg5LDIwNjI1LDI3NDI0LDI3NzcwLDI4NTAwLDMxMzQ4LDMyMDgwLDM0ODgwLDM1MzYzLDI2Mzc2LDIwMjE0LDIwNTM3LDIwNTE4LDIwNTgxLDIwODYwLDIxMDQ4LDIxMDkxLDIxOTI3LDIyMjg3LDIyNTMzLDIzMjQ0LDI0MzE0LDI1MDEwLDI1''@;'; put 'put ''MDgwLDI1MzMxLDI1NDU4LDI2OTA4LDI3MTc3LDI5MzA5LDI5MzU2LDI5NDg2LDMwNzQwLDMwODMxLDMyMTIxLDMwNDc2LDMyOTM3LDM1MjExLDM1NjA5LDM2MDY2LDM2NTYyLDM2OTYzLDM3NzQ5LDM4NTIyLDM4OTk3LDM5NDQzLDQwNTY4LDIwODAzLDIxNDA3LDIxNDI3LDI0MTg3LDI0MzU4''@;'; put 'put ''LDI4MTg3LDI4MzA0LDI5NTcyLDI5Njk0LDMyMDY3LDMzMzM1LDM1MzI4LDM1NTc4LDM4NDgwLDIwMDQ2LDIwNDkxLDIxNDc2LDIxNjI4LDIyMjY2LDIyOTkzLDIzMzk2LDI0MDQ5LDI0MjM1LDI0MzU5LDI1MTQ0LDI1OTI1LDI2NTQzLDI4MjQ2LDI5MzkyLDMxOTQ2LDM0OTk2LDMyOTI5LDMy''@;'; put 'put ''OTkzLDMzNzc2LDM0MzgyLDM1NDYzLDM2MzI4LDM3NDMxLDM4NTk5LDM5MDE1LDQwNzIzLDIwMTE2LDIwMTE0LDIwMjM3LDIxMzIwLDIxNTc3LDIxNTY2LDIzMDg3LDI0NDYwLDI0NDgxLDI0NzM1LDI2NzkxLDI3Mjc4LDI5Nzg2LDMwODQ5LDM1NDg2LDM1NDkyLDM1NzAzLDM3MjY0LDIwMDYy''@;'; put 'put ''LDM5ODgxLDIwMTMyLDIwMzQ4LDIwMzk5LDIwNTA1LDIwNTAyLDIwODA5LDIwODQ0LDIxMTUxLDIxMTc3LDIxMjQ2LDIxNDAyLDIxNDc1LDIxNTIxLDIxNTE4LDIxODk3LDIyMzUzLDIyNDM0LDIyOTA5LDIzMzgwLDIzMzg5LDIzNDM5LDI0MDM3LDI0MDM5LDI0MDU1LDI0MTg0LDI0MTk1LDI0''@;'; put 'put ''MjE4LDI0MjQ3LDI0MzQ0LDI0NjU4LDI0OTA4LDI1MjM5LDI1MzA0LDI1NTExLDI1OTE1LDI2MTE0LDI2MTc5LDI2MzU2LDI2NDc3LDI2NjU3LDI2Nzc1LDI3MDgzLDI3NzQzLDI3OTQ2LDI4MDA5LDI4MjA3LDI4MzE3LDMwMDAyLDMwMzQzLDMwODI4LDMxMjk1LDMxOTY4LDMyMDA1LDMyMDI0''@;'; put 'put ''LDMyMDk0LDMyMTc3LDMyNzg5LDMyNzcxLDMyOTQzLDMyOTQ1LDMzMTA4LDMzMTY3LDMzMzIyLDMzNjE4LDM0ODkyLDM0OTEzLDM1NjExLDM2MDAyLDM2MDkyLDM3MDY2LDM3MjM3LDM3NDg5LDMwNzgzLDM3NjI4LDM4MzA4LDM4NDc3LDM4OTE3LDM5MzIxLDM5NjQwLDQwMjUxLDIxMDgzLDIx''@;'; put 'put ''MTYzLDIxNDk1LDIxNTEyLDIyNzQxLDI1MzM1LDI4NjQwLDM1OTQ2LDM2NzAzLDQwNjMzLDIwODExLDIxMDUxLDIxNTc4LDIyMjY5LDMxMjk2LDM3MjM5LDQwMjg4LDQwNjU4LDI5NTA4LDI4NDI1LDMzMTM2LDI5OTY5LDI0NTczLDI0Nzk0LDM5NTkyLDI5NDAzLDM2Nzk2LDI3NDkyLDM4OTE1''@;'; put 'put ''LDIwMTcwLDIyMjU2LDIyMzcyLDIyNzE4LDIzMTMwLDI0NjgwLDI1MDMxLDI2MTI3LDI2MTE4LDI2NjgxLDI2ODAxLDI4MTUxLDMwMTY1LDMyMDU4LDMzMzkwLDM5NzQ2LDIwMTIzLDIwMzA0LDIxNDQ5LDIxNzY2LDIzOTE5LDI0MDM4LDI0MDQ2LDI2NjE5LDI3ODAxLDI5ODExLDMwNzIyLDM1''@;'; put 'put ''NDA4LDM3NzgyLDM1MDM5LDIyMzUyLDI0MjMxLDI1Mzg3LDIwNjYxLDIwNjUyLDIwODc3LDI2MzY4LDIxNzA1LDIyNjIyLDIyOTcxLDIzNDcyLDI0NDI1LDI1MTY1LDI1NTA1LDI2Njg1LDI3NTA3LDI4MTY4LDI4Nzk3LDM3MzE5LDI5MzEyLDMwNzQxLDMwNzU4LDMxMDg1LDI1OTk4LDMyMDQ4''@;'; put 'put ''LDMzNzU2LDM1MDA5LDM2NjE3LDM4NTU1LDIxMDkyLDIyMzEyLDI2NDQ4LDMyNjE4LDM2MDAxLDIwOTE2LDIyMzM4LDM4NDQyLDIyNTg2LDI3MDE4LDMyOTQ4LDIxNjgyLDIzODIyLDIyNTI0LDMwODY5LDQwNDQyLDIwMzE2LDIxMDY2LDIxNjQzLDI1NjYyLDI2MTUyLDI2Mzg4LDI2NjEzLDMx''@;'; put 'put ''MzY0LDMxNTc0LDMyMDM0LDM3Njc5LDI2NzE2LDM5ODUzLDMxNTQ1LDIxMjczLDIwODc0LDIxMDQ3LDIzNTE5LDI1MzM0LDI1Nzc0LDI1ODMwLDI2NDEzLDI3NTc4LDM0MjE3LDM4NjA5LDMwMzUyLDM5ODk0LDI1NDIwLDM3NjM4LDM5ODUxLDMwMzk5LDI2MTk0LDE5OTc3LDIwNjMyLDIxNDQy''@;'; put 'put ''LDIzNjY1LDI0ODA4LDI1NzQ2LDI1OTU1LDI2NzE5LDI5MTU4LDI5NjQyLDI5OTg3LDMxNjM5LDMyMzg2LDM0NDUzLDM1NzE1LDM2MDU5LDM3MjQwLDM5MTg0LDI2MDI4LDI2MjgzLDI3NTMxLDIwMTgxLDIwMTgwLDIwMjgyLDIwMzUxLDIxMDUwLDIxNDk2LDIxNDkwLDIxOTg3LDIyMjM1LDIy''@;'; put 'put ''NzYzLDIyOTg3LDIyOTg1LDIzMDM5LDIzMzc2LDIzNjI5LDI0MDY2LDI0MTA3LDI0NTM1LDI0NjA1LDI1MzUxLDI1OTAzLDIzMzg4LDI2MDMxLDI2MDQ1LDI2MDg4LDI2NTI1LDI3NDkwLDI3NTE1LDI3NjYzLDI5NTA5LDMxMDQ5LDMxMTY5LDMxOTkyLDMyMDI1LDMyMDQzLDMyOTMwLDMzMDI2''@;'; put 'put ''LDMzMjY3LDM1MjIyLDM1NDIyLDM1NDMzLDM1NDMwLDM1NDY4LDM1NTY2LDM2MDM5LDM2MDYwLDM4NjA0LDM5MTY0LDI3NTAzLDIwMTA3LDIwMjg0LDIwMzY1LDIwODE2LDIzMzgzLDIzNTQ2LDI0OTA0LDI1MzQ1LDI2MTc4LDI3NDI1LDI4MzYzLDI3ODM1LDI5MjQ2LDI5ODg1LDMwMTY0LDMw''@;'; put 'put ''OTEzLDMxMDM0LDMyNzgwLDMyODE5LDMzMjU4LDMzOTQwLDM2NzY2LDI3NzI4LDQwNTc1LDI0MzM1LDM1NjcyLDQwMjM1LDMxNDgyLDM2NjAwLDIzNDM3LDM4NjM1LDE5OTcxLDIxNDg5LDIyNTE5LDIyODMzLDIzMjQxLDIzNDYwLDI0NzEzLDI4Mjg3LDI4NDIyLDMwMTQyLDM2MDc0LDIzNDU1''@;'; put 'put ''LDM0MDQ4LDMxNzEyLDIwNTk0LDI2NjEyLDMzNDM3LDIzNjQ5LDM0MTIyLDMyMjg2LDMzMjk0LDIwODg5LDIzNTU2LDI1NDQ4LDM2MTk4LDI2MDEyLDI5MDM4LDMxMDM4LDMyMDIzLDMyNzczLDM1NjEzLDM2NTU0LDM2OTc0LDM0NTAzLDM3MDM0LDIwNTExLDIxMjQyLDIzNjEwLDI2NDUxLDI4''@;'; put 'put ''Nzk2LDI5MjM3LDM3MTk2LDM3MzIwLDM3Njc1LDMzNTA5LDIzNDkwLDI0MzY5LDI0ODI1LDIwMDI3LDIxNDYyLDIzNDMyLDI1MTYzLDI2NDE3LDI3NTMwLDI5NDE3LDI5NjY0LDMxMjc4LDMzMTMxLDM2MjU5LDM3MjAyLDM5MzE4LDIwNzU0LDIxNDYzLDIxNjEwLDIzNTUxLDI1NDgwLDI3MTkz''@;'; put 'put ''LDMyMTcyLDM4NjU2LDIyMjM0LDIxNDU0LDIxNjA4LDIzNDQ3LDIzNjAxLDI0MDMwLDIwNDYyLDI0ODMzLDI1MzQyLDI3OTU0LDMxMTY4LDMxMTc5LDMyMDY2LDMyMzMzLDMyNzIyLDMzMjYxLDMzMzExLDMzOTM2LDM0ODg2LDM1MTg2LDM1NzI4LDM2NDY4LDM2NjU1LDM2OTEzLDM3MTk1LDM3''@;'; put 'put ''MjI4LDM4NTk4LDM3Mjc2LDIwMTYwLDIwMzAzLDIwODA1LDIxMzEzLDI0NDY3LDI1MTAyLDI2NTgwLDI3NzEzLDI4MTcxLDI5NTM5LDMyMjk0LDM3MzI1LDM3NTA3LDIxNDYwLDIyODA5LDIzNDg3LDI4MTEzLDMxMDY5LDMyMzAyLDMxODk5LDIyNjU0LDI5MDg3LDIwOTg2LDM0ODk5LDM2ODQ4''@;'; put 'put ''LDIwNDI2LDIzODAzLDI2MTQ5LDMwNjM2LDMxNDU5LDMzMzA4LDM5NDIzLDIwOTM0LDI0NDkwLDI2MDkyLDI2OTkxLDI3NTI5LDI4MTQ3LDI4MzEwLDI4NTE2LDMwNDYyLDMyMDIwLDI0MDMzLDM2OTgxLDM3MjU1LDM4OTE4LDIwOTY2LDIxMDIxLDI1MTUyLDI2MjU3LDI2MzI5LDI4MTg2LDI0''@;'; put 'put ''MjQ2LDMyMjEwLDMyNjI2LDI2MzYwLDM0MjIzLDM0Mjk1LDM1NTc2LDIxMTYxLDIxNDY1LDIyODk5LDI0MjA3LDI0NDY0LDI0NjYxLDM3NjA0LDM4NTAwLDIwNjYzLDIwNzY3LDIxMjEzLDIxMjgwLDIxMzE5LDIxNDg0LDIxNzM2LDIxODMwLDIxODA5LDIyMDM5LDIyODg4LDIyOTc0LDIzMTAw''@;'; put 'put ''LDIzNDc3LDIzNTU4LDIzNTY3LDIzNTY5LDIzNTc4LDI0MTk2LDI0MjAyLDI0Mjg4LDI0NDMyLDI1MjE1LDI1MjIwLDI1MzA3LDI1NDg0LDI1NDYzLDI2MTE5LDI2MTI0LDI2MTU3LDI2MjMwLDI2NDk0LDI2Nzg2LDI3MTY3LDI3MTg5LDI3ODM2LDI4MDQwLDI4MTY5LDI4MjQ4LDI4OTg4LDI4''@;'; put 'put ''OTY2LDI5MDMxLDMwMTUxLDMwNDY1LDMwODEzLDMwOTc3LDMxMDc3LDMxMjE2LDMxNDU2LDMxNTA1LDMxOTExLDMyMDU3LDMyOTE4LDMzNzUwLDMzOTMxLDM0MTIxLDM0OTA5LDM1MDU5LDM1MzU5LDM1Mzg4LDM1NDEyLDM1NDQzLDM1OTM3LDM2MDYyLDM3Mjg0LDM3NDc4LDM3NzU4LDM3OTEy''@;'; put 'put ''LDM4NTU2LDM4ODA4LDE5OTc4LDE5OTc2LDE5OTk4LDIwMDU1LDIwODg3LDIxMTA0LDIyNDc4LDIyNTgwLDIyNzMyLDIzMzMwLDI0MTIwLDI0NzczLDI1ODU0LDI2NDY1LDI2NDU0LDI3OTcyLDI5MzY2LDMwMDY3LDMxMzMxLDMzOTc2LDM1Njk4LDM3MzA0LDM3NjY0LDIyMDY1LDIyNTE2LDM5''@;'; put 'put ''MTY2LDI1MzI1LDI2ODkzLDI3NTQyLDI5MTY1LDMyMzQwLDMyODg3LDMzMzk0LDM1MzAyLDM5MTM1LDM0NjQ1LDM2Nzg1LDIzNjExLDIwMjgwLDIwNDQ5LDIwNDA1LDIxNzY3LDIzMDcyLDIzNTE3LDIzNTI5LDI0NTE1LDI0OTEwLDI1MzkxLDI2MDMyLDI2MTg3LDI2ODYyLDI3MDM1LDI4MDI0''@;'; put 'put ''LDI4MTQ1LDMwMDAzLDMwMTM3LDMwNDk1LDMxMDcwLDMxMjA2LDMyMDUxLDMzMjUxLDMzNDU1LDM0MjE4LDM1MjQyLDM1Mzg2LDM2NTIzLDM2NzYzLDM2OTE0LDM3MzQxLDM4NjYzLDIwMTU0LDIwMTYxLDIwOTk1LDIyNjQ1LDIyNzY0LDIzNTYzLDI5OTc4LDIzNjEzLDMzMTAyLDM1MzM4LDM2''@;'; put 'put ''ODA1LDM4NDk5LDM4NzY1LDMxNTI1LDM1NTM1LDM4OTIwLDM3MjE4LDIyMjU5LDIxNDE2LDM2ODg3LDIxNTYxLDIyNDAyLDI0MTAxLDI1NTEyLDI3NzAwLDI4ODEwLDMwNTYxLDMxODgzLDMyNzM2LDM0OTI4LDM2OTMwLDM3MjA0LDM3NjQ4LDM3NjU2LDM4NTQzLDI5NzkwLDM5NjIwLDIzODE1''@;'; put 'put ''LDIzOTEzLDI1OTY4LDI2NTMwLDM2MjY0LDM4NjE5LDI1NDU0LDI2NDQxLDI2OTA1LDMzNzMzLDM4OTM1LDM4NTkyLDM1MDcwLDI4NTQ4LDI1NzIyLDIzNTQ0LDE5OTkwLDI4NzE2LDMwMDQ1LDI2MTU5LDIwOTMyLDIxMDQ2LDIxMjE4LDIyOTk1LDI0NDQ5LDI0NjE1LDI1MTA0LDI1OTE5LDI1''@;'; put 'put ''OTcyLDI2MTQzLDI2MjI4LDI2ODY2LDI2NjQ2LDI3NDkxLDI4MTY1LDI5Mjk4LDI5OTgzLDMwNDI3LDMxOTM0LDMyODU0LDIyNzY4LDM1MDY5LDM1MTk5LDM1NDg4LDM1NDc1LDM1NTMxLDM2ODkzLDM3MjY2LDM4NzM4LDM4NzQ1LDI1OTkzLDMxMjQ2LDMzMDMwLDM4NTg3LDI0MTA5LDI0Nzk2''@;'; put 'put ''LDI1MTE0LDI2MDIxLDI2MTMyLDI2NTEyLDMwNzA3LDMxMzA5LDMxODIxLDMyMzE4LDMzMDM0LDM2MDEyLDM2MTk2LDM2MzIxLDM2NDQ3LDMwODg5LDIwOTk5LDI1MzA1LDI1NTA5LDI1NjY2LDI1MjQwLDM1MzczLDMxMzYzLDMxNjgwLDM1NTAwLDM4NjM0LDMyMTE4LDMzMjkyLDM0NjMzLDIw''@;'; put 'put ''MTg1LDIwODA4LDIxMzE1LDIxMzQ0LDIzNDU5LDIzNTU0LDIzNTc0LDI0MDI5LDI1MTI2LDI1MTU5LDI1Nzc2LDI2NjQzLDI2Njc2LDI3ODQ5LDI3OTczLDI3OTI3LDI2NTc5LDI4NTA4LDI5MDA2LDI5MDUzLDI2MDU5LDMxMzU5LDMxNjYxLDMyMjE4LDMyMzMwLDMyNjgwLDMzMTQ2LDMzMzA3''@;'; put 'put ''LDMzMzM3LDM0MjE0LDM1NDM4LDM2MDQ2LDM2MzQxLDM2OTg0LDM2OTgzLDM3NTQ5LDM3NTIxLDM4Mjc1LDM5ODU0LDIxMDY5LDIxODkyLDI4NDcyLDI4OTgyLDIwODQwLDMxMTA5LDMyMzQxLDMzMjAzLDMxOTUwLDIyMDkyLDIyNjA5LDIzNzIwLDI1NTE0LDI2MzY2LDI2MzY1LDI2OTcwLDI5''@;'; put 'put ''NDAxLDMwMDk1LDMwMDk0LDMwOTkwLDMxMDYyLDMxMTk5LDMxODk1LDMyMDMyLDMyMDY4LDM0MzExLDM1MzgwLDM4NDU5LDM2OTYxLDQwNzM2LDIwNzExLDIxMTA5LDIxNDUyLDIxNDc0LDIwNDg5LDIxOTMwLDIyNzY2LDIyODYzLDI5MjQ1LDIzNDM1LDIzNjUyLDIxMjc3LDI0ODAzLDI0ODE5''@;'; put 'put ''LDI1NDM2LDI1NDc1LDI1NDA3LDI1NTMxLDI1ODA1LDI2MDg5LDI2MzYxLDI0MDM1LDI3MDg1LDI3MTMzLDI4NDM3LDI5MTU3LDIwMTA1LDMwMTg1LDMwNDU2LDMxMzc5LDMxOTY3LDMyMjA3LDMyMTU2LDMyODY1LDMzNjA5LDMzNjI0LDMzOTAwLDMzOTgwLDM0Mjk5LDM1MDEzLDM2MjA4LDM2''@;'; put 'put ''ODY1LDM2OTczLDM3NzgzLDM4Njg0LDM5NDQyLDIwNjg3LDIyNjc5LDI0OTc0LDMzMjM1LDM0MTAxLDM2MTA0LDM2ODk2LDIwNDE5LDIwNTk2LDIxMDYzLDIxMzYzLDI0Njg3LDI1NDE3LDI2NDYzLDI4MjA0LDM2Mjc1LDM2ODk1LDIwNDM5LDIzNjQ2LDM2MDQyLDI2MDYzLDMyMTU0LDIxMzMw''@;'; put 'put ''LDM0OTY2LDIwODU0LDI1NTM5LDIzMzg0LDIzNDAzLDIzNTYyLDI1NjEzLDI2NDQ5LDM2OTU2LDIwMTgyLDIyODEwLDIyODI2LDI3NzYwLDM1NDA5LDIxODIyLDIyNTQ5LDIyOTQ5LDI0ODE2LDI1MTcxLDI2NTYxLDMzMzMzLDI2OTY1LDM4NDY0LDM5MzY0LDM5NDY0LDIwMzA3LDIyNTM0LDIz''@;'; put 'put ''NTUwLDMyNzg0LDIzNzI5LDI0MTExLDI0NDUzLDI0NjA4LDI0OTA3LDI1MTQwLDI2MzY3LDI3ODg4LDI4MzgyLDMyOTc0LDMzMTUxLDMzNDkyLDM0OTU1LDM2MDI0LDM2ODY0LDM2OTEwLDM4NTM4LDQwNjY3LDM5ODk5LDIwMTk1LDIxNDg4LDIyODIzLDMxNTMyLDM3MjYxLDM4OTg4LDQwNDQx''@;'; put 'put ''LDI4MzgxLDI4NzExLDIxMzMxLDIxODI4LDIzNDI5LDI1MTc2LDI1MjQ2LDI1Mjk5LDI3ODEwLDI4NjU1LDI5NzMwLDM1MzUxLDM3OTQ0LDI4NjA5LDM1NTgyLDMzNTkyLDIwOTY3LDM0NTUyLDIxNDgyLDIxNDgxLDIwMjk0LDM2OTQ4LDM2Nzg0LDIyODkwLDMzMDczLDI0MDYxLDMxNDY2LDM2''@;'; put 'put ''Nzk5LDI2ODQyLDM1ODk1LDI5NDMyLDQwMDA4LDI3MTk3LDM1NTA0LDIwMDI1LDIxMzM2LDIyMDIyLDIyMzc0LDI1Mjg1LDI1NTA2LDI2MDg2LDI3NDcwLDI4MTI5LDI4MjUxLDI4ODQ1LDMwNzAxLDMxNDcxLDMxNjU4LDMyMTg3LDMyODI5LDMyOTY2LDM0NTA3LDM1NDc3LDM3NzIzLDIyMjQz''@;'; put 'put ''LDIyNzI3LDI0MzgyLDI2MDI5LDI2MjYyLDI3MjY0LDI3NTczLDMwMDA3LDM1NTI3LDIwNTE2LDMwNjkzLDIyMzIwLDI0MzQ3LDI0Njc3LDI2MjM0LDI3NzQ0LDMwMTk2LDMxMjU4LDMyNjIyLDMzMjY4LDM0NTg0LDM2OTMzLDM5MzQ3LDMxNjg5LDMwMDQ0LDMxNDgxLDMxNTY5LDMzOTg4LDM2''@;'; put 'put ''ODgwLDMxMjA5LDMxMzc4LDMzNTkwLDIzMjY1LDMwNTI4LDIwMDEzLDIwMjEwLDIzNDQ5LDI0NTQ0LDI1Mjc3LDI2MTcyLDI2NjA5LDI3ODgwLDM0NDExLDM0OTM1LDM1Mzg3LDM3MTk4LDM3NjE5LDM5Mzc2LDI3MTU5LDI4NzEwLDI5NDgyLDMzNTExLDMzODc5LDM2MDE1LDE5OTY5LDIwODA2''@;'; put 'put ''LDIwOTM5LDIxODk5LDIzNTQxLDI0MDg2LDI0MTE1LDI0MTkzLDI0MzQwLDI0MzczLDI0NDI3LDI0NTAwLDI1MDc0LDI1MzYxLDI2Mjc0LDI2Mzk3LDI4NTI2LDI5MjY2LDMwMDEwLDMwNTIyLDMyODg0LDMzMDgxLDMzMTQ0LDM0Njc4LDM1NTE5LDM1NTQ4LDM2MjI5LDM2MzM5LDM3NTMwLDM4''@;'; put 'put ''MjYzLDM4OTE0LDQwMTY1LDIxMTg5LDI1NDMxLDMwNDUyLDI2Mzg5LDI3Nzg0LDI5NjQ1LDM2MDM1LDM3ODA2LDM4NTE1LDI3OTQxLDIyNjg0LDI2ODk0LDI3MDg0LDM2ODYxLDM3Nzg2LDMwMTcxLDM2ODkwLDIyNjE4LDI2NjI2LDI1NTI0LDI3MTMxLDIwMjkxLDI4NDYwLDI2NTg0LDM2Nzk1''@;'; put 'put ''LDM0MDg2LDMyMTgwLDM3NzE2LDI2OTQzLDI4NTI4LDIyMzc4LDIyNzc1LDIzMzQwLDMyMDQ0LDI5MjI2LDIxNTE0LDM3MzQ3LDQwMzcyLDIwMTQxLDIwMzAyLDIwNTcyLDIwNTk3LDIxMDU5LDM1OTk4LDIxNTc2LDIyNTY0LDIzNDUwLDI0MDkzLDI0MjEzLDI0MjM3LDI0MzExLDI0MzUxLDI0''@;'; put 'put ''NzE2LDI1MjY5LDI1NDAyLDI1NTUyLDI2Nzk5LDI3NzEyLDMwODU1LDMxMTE4LDMxMjQzLDMyMjI0LDMzMzUxLDM1MzMwLDM1NTU4LDM2NDIwLDM2ODgzLDM3MDQ4LDM3MTY1LDM3MzM2LDQwNzE4LDI3ODc3LDI1Njg4LDI1ODI2LDI1OTczLDI4NDA0LDMwMzQwLDMxNTE1LDM2OTY5LDM3ODQx''@;'; put 'put ''LDI4MzQ2LDIxNzQ2LDI0NTA1LDI1NzY0LDM2Njg1LDM2ODQ1LDM3NDQ0LDIwODU2LDIyNjM1LDIyODI1LDIzNjM3LDI0MjE1LDI4MTU1LDMyMzk5LDI5OTgwLDM2MDI4LDM2NTc4LDM5MDAzLDI4ODU3LDIwMjUzLDI3NTgzLDI4NTkzLDNlNCwzODY1MSwyMDgxNCwyMTUyMCwyMjU4MSwyMjYx''@;'; put 'put ''NSwyMjk1NiwyMzY0OCwyNDQ2NiwyNjAwNywyNjQ2MCwyODE5MywzMDMzMSwzMzc1OSwzNjA3NywzNjg4NCwzNzExNywzNzcwOSwzMDc1NywzMDc3OCwyMTE2MiwyNDIzMCwyMjMwMywyMjkwMCwyNDU5NCwyMDQ5OCwyMDgyNiwyMDkwOCwyMDk0MSwyMDk5MiwyMTc3NiwyMjYxMiwyMjYxNiwy''@;'; put 'put ''Mjg3MSwyMzQ0NSwyMzc5OCwyMzk0NywyNDc2NCwyNTIzNywyNTY0NSwyNjQ4MSwyNjY5MSwyNjgxMiwyNjg0NywzMDQyMywyODEyMCwyODI3MSwyODA1OSwyODc4MywyOTEyOCwyNDQwMywzMDE2OCwzMTA5NSwzMTU2MSwzMTU3MiwzMTU3MCwzMTk1OCwzMjExMywyMTA0MCwzMzg5MSwzNDE1''@;'; put 'put ''MywzNDI3NiwzNTM0MiwzNTU4OCwzNTkxMCwzNjM2NywzNjg2NywzNjg3OSwzNzkxMywzODUxOCwzODk1NywzOTQ3MiwzODM2MCwyMDY4NSwyMTIwNSwyMTUxNiwyMjUzMCwyMzU2NiwyNDk5OSwyNTc1OCwyNzkzNCwzMDY0MywzMTQ2MSwzMzAxMiwzMzc5NiwzNjk0NywzNzUwOSwyMzc3Niw0''@;'; put 'put ''MDE5OSwyMTMxMSwyNDQ3MSwyNDQ5OSwyODA2MCwyOTMwNSwzMDU2MywzMTE2NywzMTcxNiwyNzYwMiwyOTQyMCwzNTUwMSwyNjYyNywyNzIzMywyMDk4NCwzMTM2MSwyNjkzMiwyMzYyNiw0MDE4MiwzMzUxNSwyMzQ5MywzNzE5MywyODcwMiwyMjEzNiwyMzY2MywyNDc3NSwyNTk1OCwyNzc4''@;'; put 'put ''OCwzNTkzMCwzNjkyOSwzODkzMSwyMTU4NSwyNjMxMSwzNzM4OSwyMjg1NiwzNzAyNywyMDg2OSwyMDA0NSwyMDk3MCwzNDIwMSwzNTU5OCwyODc2MCwyNTQ2NiwzNzcwNywyNjk3OCwzOTM0OCwzMjI2MCwzMDA3MSwyMTMzNSwyNjk3NiwzNjU3NSwzODYyNywyNzc0MSwyMDEwOCwyMzYxMiwy''@;'; put 'put ''NDMzNiwzNjg0MSwyMTI1MCwzNjA0OSwzMjkwNSwzNDQyNSwyNDMxOSwyNjA4NSwyMDA4MywyMDgzNywyMjkxNCwyMzYxNSwzODg5NCwyMDIxOSwyMjkyMiwyNDUyNSwzNTQ2OSwyODY0MSwzMTE1MiwzMTA3NCwyMzUyNywzMzkwNSwyOTQ4MywyOTEwNSwyNDE4MCwyNDU2NSwyNTQ2NywyNTc1''@;'; put 'put ''NCwyOTEyMywzMTg5NiwyMDAzNSwyNDMxNiwyMDA0MywyMjQ5MiwyMjE3OCwyNDc0NSwyODYxMSwzMjAxMywzMzAyMSwzMzA3NSwzMzIxNSwzNjc4NiwzNTIyMywzNDQ2OCwyNDA1MiwyNTIyNiwyNTc3MywzNTIwNywyNjQ4NywyNzg3NCwyNzk2NiwyOTc1MCwzMDc3MiwyMzExMCwzMjYyOSwz''@;'; put 'put ''MzQ1MywzOTM0MCwyMDQ2NywyNDI1OSwyNTMwOSwyNTQ5MCwyNTk0MywyNjQ3OSwzMDQwMywyOTI2MCwzMjk3MiwzMjk1NCwzNjY0OSwzNzE5NywyMDQ5MywyMjUyMSwyMzE4NiwyNjc1NywyNjk5NSwyOTAyOCwyOTQzNywzNjAyMywyMjc3MCwzNjA2NCwzODUwNiwzNjg4OSwzNDY4NywzMTIw''@;'; put 'put ''NCwzMDY5NSwzMzgzMywyMDI3MSwyMTA5MywyMTMzOCwyNTI5MywyNjU3NSwyNzg1MCwzMDMzMywzMTYzNiwzMTg5MywzMzMzNCwzNDE4MCwzNjg0MywyNjMzMywyODQ0OCwyOTE5MCwzMjI4MywzMzcwNywzOTM2MSw0MDYxNCwyMDk4OSwzMTY2NSwzMDgzNCwzMTY3MiwzMjkwMywzMTU2MCwy''@;'; put 'put ''NzM2OCwyNDE2MSwzMjkwOCwzMDAzMywzMDA0OCwyMDg0MywzNzQ3NCwyODMwMCwzMDMzMCwzNzI3MSwzOTY1OCwyMDI0MCwzMjYyNCwyNTI0NCwzMTU2NywzODMwOSw0MDE2OSwyMjEzOCwyMjYxNywzNDUzMiwzODU4OCwyMDI3NiwyMTAyOCwyMTMyMiwyMTQ1MywyMTQ2NywyNDA3MCwyNTY0''@;'; put 'put ''NCwyNjAwMSwyNjQ5NSwyNzcxMCwyNzcyNiwyOTI1NiwyOTM1OSwyOTY3NywzMDAzNiwzMjMyMSwzMzMyNCwzNDI4MSwzNjAwOSwzMTY4NCwzNzMxOCwyOTAzMywzODkzMCwzOTE1MSwyNTQwNSwyNjIxNywzMDA1OCwzMDQzNiwzMDkyOCwzNDExNSwzNDU0MiwyMTI5MCwyMTMyOSwyMTU0Miwy''@;'; put 'put ''MjkxNSwyNDE5OSwyNDQ0NCwyNDc1NCwyNTE2MSwyNTIwOSwyNTI1OSwyNmUzLDI3NjA0LDI3ODUyLDMwMTMwLDMwMzgyLDMwODY1LDMxMTkyLDMyMjAzLDMyNjMxLDMyOTMzLDM0OTg3LDM1NTEzLDM2MDI3LDM2OTkxLDM4NzUwLDM5MTMxLDI3MTQ3LDMxODAwLDIwNjMzLDIzNjE0LDI0NDk0''@;'; put 'put ''LDI2NTAzLDI3NjA4LDI5NzQ5LDMwNDczLDMyNjU0LDQwNzYzLDI2NTcwLDMxMjU1LDIxMzA1LDMwMDkxLDM5NjYxLDI0NDIyLDMzMTgxLDMzNzc3LDMyOTIwLDI0MzgwLDI0NTE3LDMwMDUwLDMxNTU4LDM2OTI0LDI2NzI3LDIzMDE5LDIzMTk1LDMyMDE2LDMwMzM0LDM1NjI4LDIwNDY5LDI0''@;'; put 'put ''NDI2LDI3MTYxLDI3NzAzLDI4NDE4LDI5OTIyLDMxMDgwLDM0OTIwLDM1NDEzLDM1OTYxLDI0Mjg3LDI1NTUxLDMwMTQ5LDMxMTg2LDMzNDk1LDM3NjcyLDM3NjE4LDMzOTQ4LDM0NTQxLDM5OTgxLDIxNjk3LDI0NDI4LDI1OTk2LDI3OTk2LDI4NjkzLDM2MDA3LDM2MDUxLDM4OTcxLDI1OTM1''@;'; put 'put ''LDI5OTQyLDE5OTgxLDIwMTg0LDIyNDk2LDIyODI3LDIzMTQyLDIzNTAwLDIwOTA0LDI0MDY3LDI0MjIwLDI0NTk4LDI1MjA2LDI1OTc1LDI2MDIzLDI2MjIyLDI4MDE0LDI5MjM4LDMxNTI2LDMzMTA0LDMzMTc4LDMzNDMzLDM1Njc2LDM2ZTMsMzYwNzAsMzYyMTIsMzg0MjgsMzg0NjgsMjAz''@;'; put 'put ''OTgsMjU3NzEsMjc0OTQsMzMzMTAsMzM4ODksMzQxNTQsMzcwOTYsMjM1NTMsMjY5NjMsMzkwODAsMzM5MTQsMzQxMzUsMjAyMzksMjExMDMsMjQ0ODksMjQxMzMsMjYzODEsMzExMTksMzMxNDUsMzUwNzksMzUyMDYsMjgxNDksMjQzNDMsMjUxNzMsMjc4MzIsMjAxNzUsMjkyODksMzk4MjYs''@;'; put 'put ''MjA5OTgsMjE1NjMsMjIxMzIsMjI3MDcsMjQ5OTYsMjUxOTgsMjg5NTQsMjI4OTQsMzE4ODEsMzE5NjYsMzIwMjcsMzg2NDAsMjU5OTEsMzI4NjIsMTk5OTMsMjAzNDEsMjA4NTMsMjI1OTIsMjQxNjMsMjQxNzksMjQzMzAsMjY1NjQsMjAwMDYsMzQxMDksMzgyODEsMzg0OTEsMzE4NTksMzg5''@;'; put 'put ''MTMsMjA3MzEsMjI3MjEsMzAyOTQsMzA4ODcsMjEwMjksMzA2MjksMzQwNjUsMzE2MjIsMjA1NTksMjI3OTMsMjkyNTUsMzE2ODcsMzIyMzIsMzY3OTQsMzY4MjAsMzY5NDEsMjA0MTUsMjExOTMsMjMwODEsMjQzMjEsMzg4MjksMjA0NDUsMzMzMDMsMzc2MTAsMjIyNzUsMjU0MjksMjc0OTcs''@;'; put 'put ''Mjk5OTUsMzUwMzYsMzY2MjgsMzEyOTgsMjEyMTUsMjI2NzUsMjQ5MTcsMjUwOTgsMjYyODYsMjc1OTcsMzE4MDcsMzM3NjksMjA1MTUsMjA0NzIsMjEyNTMsMjE1NzQsMjI1NzcsMjI4NTcsMjM0NTMsMjM3OTIsMjM3OTEsMjM4NDksMjQyMTQsMjUyNjUsMjU0NDcsMjU5MTgsMjYwNDEsMjYz''@;'; put 'put ''NzksMjc4NjEsMjc4NzMsMjg5MjEsMzA3NzAsMzIyOTksMzI5OTAsMzM0NTksMzM4MDQsMzQwMjgsMzQ1NjIsMzUwOTAsMzUzNzAsMzU5MTQsMzcwMzAsMzc1ODYsMzkxNjUsNDAxNzksNDAzMDAsMjAwNDcsMjAxMjksMjA2MjEsMjEwNzgsMjIzNDYsMjI5NTIsMjQxMjUsMjQ1MzYsMjQ1Mzcs''@;'; put 'put ''MjUxNTEsMjYyOTIsMjYzOTUsMjY1NzYsMjY4MzQsMjA4ODIsMzIwMzMsMzI5MzgsMzMxOTIsMzU1ODQsMzU5ODAsMzYwMzEsMzc1MDIsMzg0NTAsMjE1MzYsMzg5NTYsMjEyNzEsMjA2OTMsMjEzNDAsMjI2OTYsMjU3NzgsMjY0MjAsMjkyODcsMzA1NjYsMzEzMDIsMzczNTAsMjExODcsMjc4''@;'; put 'put ''MDksMjc1MjYsMjI1MjgsMjQxNDAsMjI4NjgsMjY0MTIsMzI3NjMsMjA5NjEsMzA0MDYsMjU3MDUsMzA5NTIsMzk3NjQsNDA2MzUsMjI0NzUsMjI5NjksMjYxNTEsMjY1MjIsMjc1OTgsMjE3MzcsMjcwOTcsMjQxNDksMzMxODAsMjY1MTcsMzk4NTAsMjY2MjIsNDAwMTgsMjY3MTcsMjAxMzQs''@;'; put 'put ''MjA0NTEsMjE0NDgsMjUyNzMsMjY0MTEsMjc4MTksMzY4MDQsMjAzOTcsMzIzNjUsNDA2MzksMTk5NzUsMjQ5MzAsMjgyODgsMjg0NTksMzQwNjcsMjE2MTksMjY0MTAsMzk3NDksMjQwNTEsMzE2MzcsMjM3MjQsMjM0OTQsMzQ1ODgsMjgyMzQsMzQwMDEsMzEyNTIsMzMwMzIsMjI5MzcsMzE4''@;'; put 'put ''ODUsMjc2NjUsMzA0OTYsMjEyMDksMjI4MTgsMjg5NjEsMjkyNzksMzA2ODMsMzg2OTUsNDAyODksMjY4OTEsMjMxNjcsMjMwNjQsMjA5MDEsMjE1MTcsMjE2MjksMjYxMjYsMzA0MzEsMzY4NTUsMzc1MjgsNDAxODAsMjMwMTgsMjkyNzcsMjgzNTcsMjA4MTMsMjY4MjUsMzIxOTEsMzIyMzYs''@;'; put 'put ''Mzg3NTQsNDA2MzQsMjU3MjAsMjcxNjksMzM1MzgsMjI5MTYsMjMzOTEsMjc2MTEsMjk0NjcsMzA0NTAsMzIxNzgsMzI3OTEsMzM5NDUsMjA3ODYsMjY0MDgsNDA2NjUsMzA0NDYsMjY0NjYsMjEyNDcsMzkxNzMsMjM1ODgsMjUxNDcsMzE4NzAsMzYwMTYsMjE4MzksMjQ3NTgsMzIwMTEsMzgy''@;'; put 'put ''NzIsMjEyNDksMjAwNjMsMjA5MTgsMjI4MTIsMjkyNDIsMzI4MjIsMzczMjYsMjQzNTcsMzA2OTAsMjEzODAsMjQ0NDEsMzIwMDQsMzQyMjAsMzUzNzksMzY0OTMsMzg3NDIsMjY2MTEsMzQyMjIsMzc5NzEsMjQ4NDEsMjQ4NDAsMjc4MzMsMzAyOTAsMzU1NjUsMzY2NjQsMjE4MDcsMjAzMDUs''@;'; put 'put ''MjA3NzgsMjExOTEsMjE0NTEsMjM0NjEsMjQxODksMjQ3MzYsMjQ5NjIsMjU1NTgsMjYzNzcsMjY1ODYsMjgyNjMsMjgwNDQsMjk0OTQsMjk0OTUsMzAwMDEsMzEwNTYsMzUwMjksMzU0ODAsMzY5MzgsMzcwMDksMzcxMDksMzg1OTYsMzQ3MDEsMjI4MDUsMjAxMDQsMjAzMTMsMTk5ODIsMzU0''@;'; put 'put ''NjUsMzY2NzEsMzg5MjgsMjA2NTMsMjQxODgsMjI5MzQsMjM0ODEsMjQyNDgsMjU1NjIsMjU1OTQsMjU3OTMsMjYzMzIsMjY5NTQsMjcwOTYsMjc5MTUsMjgzNDIsMjkwNzYsMjk5OTIsMzE0MDcsMzI2NTAsMzI3NjgsMzM4NjUsMzM5OTMsMzUyMDEsMzU2MTcsMzYzNjIsMzY5NjUsMzg1MjUs''@;'; put 'put ''MzkxNzgsMjQ5NTgsMjUyMzMsMjc0NDIsMjc3NzksMjgwMjAsMzI3MTYsMzI3NjQsMjgwOTYsMzI2NDUsMzQ3NDYsMzUwNjQsMjY0NjksMzM3MTMsMzg5NzIsMzg2NDcsMjc5MzEsMzIwOTcsMzM4NTMsMzcyMjYsMjAwODEsMjEzNjUsMjM4ODgsMjczOTYsMjg2NTEsMzQyNTMsMzQzNDksMzUy''@;'; put 'put ''MzksMjEwMzMsMjE1MTksMjM2NTMsMjY0NDYsMjY3OTIsMjk3MDIsMjk4MjcsMzAxNzgsMzUwMjMsMzUwNDEsMzczMjQsMzg2MjYsMzg1MjAsMjQ0NTksMjk1NzUsMzE0MzUsMzM4NzAsMjU1MDQsMzAwNTMsMjExMjksMjc5NjksMjgzMTYsMjk3MDUsMzAwNDEsMzA4MjcsMzE4OTAsMzg1MzQs''@;'; put 'put ''MzE0NTIsNDA4NDUsMjA0MDYsMjQ5NDIsMjYwNTMsMzQzOTYsMjAxMDIsMjAxNDIsMjA2OTgsMjAwMDEsMjA5NDAsMjM1MzQsMjYwMDksMjY3NTMsMjgwOTIsMjk0NzEsMzAyNzQsMzA2MzcsMzEyNjAsMzE5NzUsMzMzOTEsMzU1MzgsMzY5ODgsMzczMjcsMzg1MTcsMzg5MzYsMjExNDcsMzIy''@;'; put 'put ''MDksMjA1MjMsMjE0MDAsMjY1MTksMjgxMDcsMjkxMzYsMjk3NDcsMzMyNTYsMzY2NTAsMzg1NjMsNDAwMjMsNDA2MDcsMjk3OTIsMjI1OTMsMjgwNTcsMzIwNDcsMzkwMDYsMjAxOTYsMjAyNzgsMjAzNjMsMjA5MTksMjExNjksMjM5OTQsMjQ2MDQsMjk2MTgsMzEwMzYsMzM0OTEsMzc0Mjgs''@;'; put 'put ''Mzg1ODMsMzg2NDYsMzg2NjYsNDA1OTksNDA4MDIsMjYyNzgsMjc1MDgsMjEwMTUsMjExNTUsMjg4NzIsMzUwMTAsMjQyNjUsMjQ2NTEsMjQ5NzYsMjg0NTEsMjkwMDEsMzE4MDYsMzIyNDQsMzI4NzksMzQwMzAsMzY4OTksMzc2NzYsMjE1NzAsMzk3OTEsMjczNDcsMjg4MDksMzYwMzQsMzYz''@;'; put 'put ''MzUsMzg3MDYsMjExNzIsMjMxMDUsMjQyNjYsMjQzMjQsMjYzOTEsMjcwMDQsMjcwMjgsMjgwMTAsMjg0MzEsMjkyODIsMjk0MzYsMzE3MjUsMzI3NjksMzI4OTQsMzQ2MzUsMzcwNzAsMjA4NDUsNDA1OTUsMzExMDgsMzI5MDcsMzc2ODIsMzU1NDIsMjA1MjUsMjE2NDQsMzU0NDEsMjc0OTgs''@;'; put 'put ''MzYwMzYsMzMwMzEsMjQ3ODUsMjY1MjgsNDA0MzQsMjAxMjEsMjAxMjAsMzk5NTIsMzU0MzUsMzQyNDEsMzQxNTIsMjY4ODAsMjgyODYsMzA4NzEsMzMxMDksbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwyNDMzMiwxOTk4NCwxOTk4OSwyMDAxMCwy''@;'; put 'put ''MDAxNywyMDAyMiwyMDAyOCwyMDAzMSwyMDAzNCwyMDA1NCwyMDA1NiwyMDA5OCwyMDEwMSwzNTk0NywyMDEwNiwzMzI5OCwyNDMzMywyMDExMCwyMDEyNiwyMDEyNywyMDEyOCwyMDEzMCwyMDE0NCwyMDE0NywyMDE1MCwyMDE3NCwyMDE3MywyMDE2NCwyMDE2NiwyMDE2MiwyMDE4MywyMDE5''@;'; put 'put ''MCwyMDIwNSwyMDE5MSwyMDIxNSwyMDIzMywyMDMxNCwyMDI3MiwyMDMxNSwyMDMxNywyMDMxMSwyMDI5NSwyMDM0MiwyMDM2MCwyMDM2NywyMDM3NiwyMDM0NywyMDMyOSwyMDMzNiwyMDM2OSwyMDMzNSwyMDM1OCwyMDM3NCwyMDc2MCwyMDQzNiwyMDQ0NywyMDQzMCwyMDQ0MCwyMDQ0Mywy''@;'; put 'put ''MDQzMywyMDQ0MiwyMDQzMiwyMDQ1MiwyMDQ1MywyMDUwNiwyMDUyMCwyMDUwMCwyMDUyMiwyMDUxNywyMDQ4NSwyMDI1MiwyMDQ3MCwyMDUxMywyMDUyMSwyMDUyNCwyMDQ3OCwyMDQ2MywyMDQ5NywyMDQ4NiwyMDU0NywyMDU1MSwyNjM3MSwyMDU2NSwyMDU2MCwyMDU1MiwyMDU3MCwyMDU2''@;'; put 'put ''NiwyMDU4OCwyMDYwMCwyMDYwOCwyMDYzNCwyMDYxMywyMDY2MCwyMDY1OCwyMDY4MSwyMDY4MiwyMDY1OSwyMDY3NCwyMDY5NCwyMDcwMiwyMDcwOSwyMDcxNywyMDcwNywyMDcxOCwyMDcyOSwyMDcyNSwyMDc0NSwyMDczNywyMDczOCwyMDc1OCwyMDc1NywyMDc1NiwyMDc2MiwyMDc2OSwy''@;'; put 'put ''MDc5NCwyMDc5MSwyMDc5NiwyMDc5NSwyMDc5OSwyMDgwMCwyMDgxOCwyMDgxMiwyMDgyMCwyMDgzNCwzMTQ4MCwyMDg0MSwyMDg0MiwyMDg0NiwyMDg2NCwyMDg2NiwyMjIzMiwyMDg3NiwyMDg3MywyMDg3OSwyMDg4MSwyMDg4MywyMDg4NSwyMDg4NiwyMDkwMCwyMDkwMiwyMDg5OCwyMDkw''@;'; put 'put ''NSwyMDkwNiwyMDkwNywyMDkxNSwyMDkxMywyMDkxNCwyMDkxMiwyMDkxNywyMDkyNSwyMDkzMywyMDkzNywyMDk1NSwyMDk2MCwzNDM4OSwyMDk2OSwyMDk3MywyMDk3NiwyMDk4MSwyMDk5MCwyMDk5NiwyMTAwMywyMTAxMiwyMTAwNiwyMTAzMSwyMTAzNCwyMTAzOCwyMTA0MywyMTA0OSwy''@;'; put 'put ''MTA3MSwyMTA2MCwyMTA2NywyMTA2OCwyMTA4NiwyMTA3NiwyMTA5OCwyMTEwOCwyMTA5NywyMTEwNywyMTExOSwyMTExNywyMTEzMywyMTE0MCwyMTEzOCwyMTEwNSwyMTEyOCwyMTEzNywzNjc3NiwzNjc3NSwyMTE2NCwyMTE2NSwyMTE4MCwyMTE3MywyMTE4NSwyMTE5NywyMTIwNywyMTIx''@;'; put 'put ''NCwyMTIxOSwyMTIyMiwzOTE0OSwyMTIxNiwyMTIzNSwyMTIzNywyMTI0MCwyMTI0MSwyMTI1NCwyMTI1NiwzMDAwOCwyMTI2MSwyMTI2NCwyMTI2MywyMTI2OSwyMTI3NCwyMTI4MywyMTI5NSwyMTI5NywyMTI5OSwyMTMwNCwyMTMxMiwyMTMxOCwyMTMxNywxOTk5MSwyMTMyMSwyMTMyNSwy''@;'; put 'put ''MDk1MCwyMTM0MiwyMTM1MywyMTM1OCwyMjgwOCwyMTM3MSwyMTM2NywyMTM3OCwyMTM5OCwyMTQwOCwyMTQxNCwyMTQxMywyMTQyMiwyMTQyNCwyMTQzMCwyMTQ0MywzMTc2MiwzODYxNywyMTQ3MSwyNjM2NCwyOTE2NiwyMTQ4NiwyMTQ4MCwyMTQ4NSwyMTQ5OCwyMTUwNSwyMTU2NSwyMTU2''@;'; put 'put ''OCwyMTU0OCwyMTU0OSwyMTU2NCwyMTU1MCwyMTU1OCwyMTU0NSwyMTUzMywyMTU4MiwyMTY0NywyMTYyMSwyMTY0NiwyMTU5OSwyMTYxNywyMTYyMywyMTYxNiwyMTY1MCwyMTYyNywyMTYzMiwyMTYyMiwyMTYzNiwyMTY0OCwyMTYzOCwyMTcwMywyMTY2NiwyMTY4OCwyMTY2OSwyMTY3Niwy''@;'; put 'put ''MTcwMCwyMTcwNCwyMTY3MiwyMTY3NSwyMTY5OCwyMTY2OCwyMTY5NCwyMTY5MiwyMTcyMCwyMTczMywyMTczNCwyMTc3NSwyMTc4MCwyMTc1NywyMTc0MiwyMTc0MSwyMTc1NCwyMTczMCwyMTgxNywyMTgyNCwyMTg1OSwyMTgzNiwyMTgwNiwyMTg1MiwyMTgyOSwyMTg0NiwyMTg0NywyMTgx''@;'; put 'put ''NiwyMTgxMSwyMTg1MywyMTkxMywyMTg4OCwyMTY3OSwyMTg5OCwyMTkxOSwyMTg4MywyMTg4NiwyMTkxMiwyMTkxOCwyMTkzNCwyMTg4NCwyMTg5MSwyMTkyOSwyMTg5NSwyMTkyOCwyMTk3OCwyMTk1NywyMTk4MywyMTk1NiwyMTk4MCwyMTk4OCwyMTk3MiwyMjAzNiwyMjAwNywyMjAzOCwy''@;'; put 'put ''MjAxNCwyMjAxMywyMjA0MywyMjAwOSwyMjA5NCwyMjA5NiwyOTE1MSwyMjA2OCwyMjA3MCwyMjA2NiwyMjA3MiwyMjEyMywyMjExNiwyMjA2MywyMjEyNCwyMjEyMiwyMjE1MCwyMjE0NCwyMjE1NCwyMjE3NiwyMjE2NCwyMjE1OSwyMjE4MSwyMjE5MCwyMjE5OCwyMjE5NiwyMjIxMCwyMjIw''@;'; put 'put ''NCwyMjIwOSwyMjIxMSwyMjIwOCwyMjIxNiwyMjIyMiwyMjIyNSwyMjIyNywyMjIzMSwyMjI1NCwyMjI2NSwyMjI3MiwyMjI3MSwyMjI3NiwyMjI4MSwyMjI4MCwyMjI4MywyMjI4NSwyMjI5MSwyMjI5NiwyMjI5NCwyMTk1OSwyMjMwMCwyMjMxMCwyMjMyNywyMjMyOCwyMjM1MCwyMjMzMSwy''@;'; put 'put ''MjMzNiwyMjM1MSwyMjM3NywyMjQ2NCwyMjQwOCwyMjM2OSwyMjM5OSwyMjQwOSwyMjQxOSwyMjQzMiwyMjQ1MSwyMjQzNiwyMjQ0MiwyMjQ0OCwyMjQ2NywyMjQ3MCwyMjQ4NCwyMjQ4MiwyMjQ4MywyMjUzOCwyMjQ4NiwyMjQ5OSwyMjUzOSwyMjU1MywyMjU1NywyMjY0MiwyMjU2MSwyMjYy''@;'; put 'put ''NiwyMjYwMywyMjY0MCwyNzU4NCwyMjYxMCwyMjU4OSwyMjY0OSwyMjY2MSwyMjcxMywyMjY4NywyMjY5OSwyMjcxNCwyMjc1MCwyMjcxNSwyMjcxMiwyMjcwMiwyMjcyNSwyMjczOSwyMjczNywyMjc0MywyMjc0NSwyMjc0NCwyMjc1NywyMjc0OCwyMjc1NiwyMjc1MSwyMjc2NywyMjc3OCwy''@;'; put 'put ''Mjc3NywyMjc3OSwyMjc4MCwyMjc4MSwyMjc4NiwyMjc5NCwyMjgwMCwyMjgxMSwyNjc5MCwyMjgyMSwyMjgyOCwyMjgyOSwyMjgzNCwyMjg0MCwyMjg0NiwzMTQ0MiwyMjg2OSwyMjg2NCwyMjg2MiwyMjg3NCwyMjg3MiwyMjg4MiwyMjg4MCwyMjg4NywyMjg5MiwyMjg4OSwyMjkwNCwyMjkx''@;'; put 'put ''MywyMjk0MSwyMDMxOCwyMDM5NSwyMjk0NywyMjk2MiwyMjk4MiwyMzAxNiwyMzAwNCwyMjkyNSwyMzAwMSwyMzAwMiwyMzA3NywyMzA3MSwyMzA1NywyMzA2OCwyMzA0OSwyMzA2NiwyMzEwNCwyMzE0OCwyMzExMywyMzA5MywyMzA5NCwyMzEzOCwyMzE0NiwyMzE5NCwyMzIyOCwyMzIzMCwy''@;'; put 'put ''MzI0MywyMzIzNCwyMzIyOSwyMzI2NywyMzI1NSwyMzI3MCwyMzI3MywyMzI1NCwyMzI5MCwyMzI5MSwyMzMwOCwyMzMwNywyMzMxOCwyMzM0NiwyMzI0OCwyMzMzOCwyMzM1MCwyMzM1OCwyMzM2MywyMzM2NSwyMzM2MCwyMzM3NywyMzM4MSwyMzM4NiwyMzM4NywyMzM5NywyMzQwMSwyMzQw''@;'; put 'put ''OCwyMzQxMSwyMzQxMywyMzQxNiwyNTk5MiwyMzQxOCwyMzQyNCwyMzQyNywyMzQ2MiwyMzQ4MCwyMzQ5MSwyMzQ5NSwyMzQ5NywyMzUwOCwyMzUwNCwyMzUyNCwyMzUyNiwyMzUyMiwyMzUxOCwyMzUyNSwyMzUzMSwyMzUzNiwyMzU0MiwyMzUzOSwyMzU1NywyMzU1OSwyMzU2MCwyMzU2NSwy''@;'; put 'put ''MzU3MSwyMzU4NCwyMzU4NiwyMzU5MiwyMzYwOCwyMzYwOSwyMzYxNywyMzYyMiwyMzYzMCwyMzYzNSwyMzYzMiwyMzYzMSwyMzQwOSwyMzY2MCwyMzY2MiwyMDA2NiwyMzY3MCwyMzY3MywyMzY5MiwyMzY5NywyMzcwMCwyMjkzOSwyMzcyMywyMzczOSwyMzczNCwyMzc0MCwyMzczNSwyMzc0''@;'; put 'put ''OSwyMzc0MiwyMzc1MSwyMzc2OSwyMzc4NSwyMzgwNSwyMzgwMiwyMzc4OSwyMzk0OCwyMzc4NiwyMzgxOSwyMzgyOSwyMzgzMSwyMzkwMCwyMzgzOSwyMzgzNSwyMzgyNSwyMzgyOCwyMzg0MiwyMzgzNCwyMzgzMywyMzgzMiwyMzg4NCwyMzg5MCwyMzg4NiwyMzg4MywyMzkxNiwyMzkyMywy''@;'; put 'put ''MzkyNiwyMzk0MywyMzk0MCwyMzkzOCwyMzk3MCwyMzk2NSwyMzk4MCwyMzk4MiwyMzk5NywyMzk1MiwyMzk5MSwyMzk5NiwyNDAwOSwyNDAxMywyNDAxOSwyNDAxOCwyNDAyMiwyNDAyNywyNDA0MywyNDA1MCwyNDA1MywyNDA3NSwyNDA5MCwyNDA4OSwyNDA4MSwyNDA5MSwyNDExOCwyNDEx''@;'; put 'put ''OSwyNDEzMiwyNDEzMSwyNDEyOCwyNDE0MiwyNDE1MSwyNDE0OCwyNDE1OSwyNDE2MiwyNDE2NCwyNDEzNSwyNDE4MSwyNDE4MiwyNDE4Niw0MDYzNiwyNDE5MSwyNDIyNCwyNDI1NywyNDI1OCwyNDI2NCwyNDI3MiwyNDI3MSwyNDI3OCwyNDI5MSwyNDI4NSwyNDI4MiwyNDI4MywyNDI5MCwy''@;'; put 'put ''NDI4OSwyNDI5NiwyNDI5NywyNDMwMCwyNDMwNSwyNDMwNywyNDMwNCwyNDMwOCwyNDMxMiwyNDMxOCwyNDMyMywyNDMyOSwyNDQxMywyNDQxMiwyNDMzMSwyNDMzNywyNDM0MiwyNDM2MSwyNDM2NSwyNDM3NiwyNDM4NSwyNDM5MiwyNDM5NiwyNDM5OCwyNDM2NywyNDQwMSwyNDQwNiwyNDQw''@;'; put 'put ''NywyNDQwOSwyNDQxNywyNDQyOSwyNDQzNSwyNDQzOSwyNDQ1MSwyNDQ1MCwyNDQ0NywyNDQ1OCwyNDQ1NiwyNDQ2NSwyNDQ1NSwyNDQ3OCwyNDQ3MywyNDQ3MiwyNDQ4MCwyNDQ4OCwyNDQ5MywyNDUwOCwyNDUzNCwyNDU3MSwyNDU0OCwyNDU2OCwyNDU2MSwyNDU0MSwyNDc1NSwyNDU3NSwy''@;'; put 'put ''NDYwOSwyNDY3MiwyNDYwMSwyNDU5MiwyNDYxNywyNDU5MCwyNDYyNSwyNDYwMywyNDU5NywyNDYxOSwyNDYxNCwyNDU5MSwyNDYzNCwyNDY2NiwyNDY0MSwyNDY4MiwyNDY5NSwyNDY3MSwyNDY1MCwyNDY0NiwyNDY1MywyNDY3NSwyNDY0MywyNDY3NiwyNDY0MiwyNDY4NCwyNDY4MywyNDY2''@;'; put 'put ''NSwyNDcwNSwyNDcxNywyNDgwNywyNDcwNywyNDczMCwyNDcwOCwyNDczMSwyNDcyNiwyNDcyNywyNDcyMiwyNDc0MywyNDcxNSwyNDgwMSwyNDc2MCwyNDgwMCwyNDc4NywyNDc1NiwyNDU2MCwyNDc2NSwyNDc3NCwyNDc1NywyNDc5MiwyNDkwOSwyNDg1MywyNDgzOCwyNDgyMiwyNDgyMywy''@;'; put 'put ''NDgzMiwyNDgyMCwyNDgyNiwyNDgzNSwyNDg2NSwyNDgyNywyNDgxNywyNDg0NSwyNDg0NiwyNDkwMywyNDg5NCwyNDg3MiwyNDg3MSwyNDkwNiwyNDg5NSwyNDg5MiwyNDg3NiwyNDg4NCwyNDg5MywyNDg5OCwyNDkwMCwyNDk0NywyNDk1MSwyNDkyMCwyNDkyMSwyNDkyMiwyNDkzOSwyNDk0''@;'; put 'put ''OCwyNDk0MywyNDkzMywyNDk0NSwyNDkyNywyNDkyNSwyNDkxNSwyNDk0OSwyNDk4NSwyNDk4MiwyNDk2NywyNTAwNCwyNDk4MCwyNDk4NiwyNDk3MCwyNDk3NywyNTAwMywyNTAwNiwyNTAzNiwyNTAzNCwyNTAzMywyNTA3OSwyNTAzMiwyNTAyNywyNTAzMCwyNTAxOCwyNTAzNSwzMjYzMywy''@;'; put 'put ''NTAzNywyNTA2MiwyNTA1OSwyNTA3OCwyNTA4MiwyNTA3NiwyNTA4NywyNTA4NSwyNTA4NCwyNTA4NiwyNTA4OCwyNTA5NiwyNTA5NywyNTEwMSwyNTEwMCwyNTEwOCwyNTExNSwyNTExOCwyNTEyMSwyNTEzMCwyNTEzNCwyNTEzNiwyNTEzOCwyNTEzOSwyNTE1MywyNTE2NiwyNTE4MiwyNTE4''@;'; put 'put ''NywyNTE3OSwyNTE4NCwyNTE5MiwyNTIxMiwyNTIxOCwyNTIyNSwyNTIxNCwyNTIzNCwyNTIzNSwyNTIzOCwyNTMwMCwyNTIxOSwyNTIzNiwyNTMwMywyNTI5NywyNTI3NSwyNTI5NSwyNTM0MywyNTI4NiwyNTgxMiwyNTI4OCwyNTMwOCwyNTI5MiwyNTI5MCwyNTI4MiwyNTI4NywyNTI0Mywy''@;'; put 'put ''NTI4OSwyNTM1NiwyNTMyNiwyNTMyOSwyNTM4MywyNTM0NiwyNTM1MiwyNTMyNywyNTMzMywyNTQyNCwyNTQwNiwyNTQyMSwyNTYyOCwyNTQyMywyNTQ5NCwyNTQ4NiwyNTQ3MiwyNTUxNSwyNTQ2MiwyNTUwNywyNTQ4NywyNTQ4MSwyNTUwMywyNTUyNSwyNTQ1MSwyNTQ0OSwyNTUzNCwyNTU3''@;'; put 'put ''NywyNTUzNiwyNTU0MiwyNTU3MSwyNTU0NSwyNTU1NCwyNTU5MCwyNTU0MCwyNTYyMiwyNTY1MiwyNTYwNiwyNTYxOSwyNTYzOCwyNTY1NCwyNTg4NSwyNTYyMywyNTY0MCwyNTYxNSwyNTcwMywyNTcxMSwyNTcxOCwyNTY3OCwyNTg5OCwyNTc0OSwyNTc0NywyNTc2NSwyNTc2OSwyNTczNiwy''@;'; put 'put ''NTc4OCwyNTgxOCwyNTgxMCwyNTc5NywyNTc5OSwyNTc4NywyNTgxNiwyNTc5NCwyNTg0MSwyNTgzMSwzMzI4OSwyNTgyNCwyNTgyNSwyNTI2MCwyNTgyNywyNTgzOSwyNTkwMCwyNTg0NiwyNTg0NCwyNTg0MiwyNTg1MCwyNTg1NiwyNTg1MywyNTg4MCwyNTg4NCwyNTg2MSwyNTg5MiwyNTg5''@;'; put 'put ''MSwyNTg5OSwyNTkwOCwyNTkwOSwyNTkxMSwyNTkxMCwyNTkxMiwzMDAyNywyNTkyOCwyNTk0MiwyNTk0MSwyNTkzMywyNTk0NCwyNTk1MCwyNTk0OSwyNTk3MCwyNTk3NiwyNTk4NiwyNTk4NywzNTcyMiwyNjAxMSwyNjAxNSwyNjAyNywyNjAzOSwyNjA1MSwyNjA1NCwyNjA0OSwyNjA1Miwy''@;'; put 'put ''NjA2MCwyNjA2NiwyNjA3NSwyNjA3MywyNjA4MCwyNjA4MSwyNjA5NywyNjQ4MiwyNjEyMiwyNjExNSwyNjEwNywyNjQ4MywyNjE2NSwyNjE2NiwyNjE2NCwyNjE0MCwyNjE5MSwyNjE4MCwyNjE4NSwyNjE3NywyNjIwNiwyNjIwNSwyNjIxMiwyNjIxNSwyNjIxNiwyNjIwNywyNjIxMCwyNjIy''@;'; put 'put ''NCwyNjI0MywyNjI0OCwyNjI1NCwyNjI0OSwyNjI0NCwyNjI2NCwyNjI2OSwyNjMwNSwyNjI5NywyNjMxMywyNjMwMiwyNjMwMCwyNjMwOCwyNjI5NiwyNjMyNiwyNjMzMCwyNjMzNiwyNjE3NSwyNjM0MiwyNjM0NSwyNjM1MiwyNjM1NywyNjM1OSwyNjM4MywyNjM5MCwyNjM5OCwyNjQwNiwy''@;'; put 'put ''NjQwNywzODcxMiwyNjQxNCwyNjQzMSwyNjQyMiwyNjQzMywyNjQyNCwyNjQyMywyNjQzOCwyNjQ2MiwyNjQ2NCwyNjQ1NywyNjQ2NywyNjQ2OCwyNjUwNSwyNjQ4MCwyNjUzNywyNjQ5MiwyNjQ3NCwyNjUwOCwyNjUwNywyNjUzNCwyNjUyOSwyNjUwMSwyNjU1MSwyNjYwNywyNjU0OCwyNjYw''@;'; put 'put ''NCwyNjU0NywyNjYwMSwyNjU1MiwyNjU5NiwyNjU5MCwyNjU4OSwyNjU5NCwyNjYwNiwyNjU1MywyNjU3NCwyNjU2NiwyNjU5OSwyNzI5MiwyNjY1NCwyNjY5NCwyNjY2NSwyNjY4OCwyNjcwMSwyNjY3NCwyNjcwMiwyNjgwMywyNjY2NywyNjcxMywyNjcyMywyNjc0MywyNjc1MSwyNjc4Mywy''@;'; put 'put ''Njc2NywyNjc5NywyNjc3MiwyNjc4MSwyNjc3OSwyNjc1NSwyNzMxMCwyNjgwOSwyNjc0MCwyNjgwNSwyNjc4NCwyNjgxMCwyNjg5NSwyNjc2NSwyNjc1MCwyNjg4MSwyNjgyNiwyNjg4OCwyNjg0MCwyNjkxNCwyNjkxOCwyNjg0OSwyNjg5MiwyNjgyOSwyNjgzNiwyNjg1NSwyNjgzNywyNjkz''@;'; put 'put ''NCwyNjg5OCwyNjg4NCwyNjgzOSwyNjg1MSwyNjkxNywyNjg3MywyNjg0OCwyNjg2MywyNjkyMCwyNjkyMiwyNjkwNiwyNjkxNSwyNjkxMywyNjgyMiwyNzAwMSwyNjk5OSwyNjk3MiwyN2UzLDI2OTg3LDI2OTY0LDI3MDA2LDI2OTkwLDI2OTM3LDI2OTk2LDI2OTQxLDI2OTY5LDI2OTI4LDI2''@;'; put 'put ''OTc3LDI2OTc0LDI2OTczLDI3MDA5LDI2OTg2LDI3MDU4LDI3MDU0LDI3MDg4LDI3MDcxLDI3MDczLDI3MDkxLDI3MDcwLDI3MDg2LDIzNTI4LDI3MDgyLDI3MTAxLDI3MDY3LDI3MDc1LDI3MDQ3LDI3MTgyLDI3MDI1LDI3MDQwLDI3MDM2LDI3MDI5LDI3MDYwLDI3MTAyLDI3MTEyLDI3MTM4''@;'; put 'put ''LDI3MTYzLDI3MTM1LDI3NDAyLDI3MTI5LDI3MTIyLDI3MTExLDI3MTQxLDI3MDU3LDI3MTY2LDI3MTE3LDI3MTU2LDI3MTE1LDI3MTQ2LDI3MTU0LDI3MzI5LDI3MTcxLDI3MTU1LDI3MjA0LDI3MTQ4LDI3MjUwLDI3MTkwLDI3MjU2LDI3MjA3LDI3MjM0LDI3MjI1LDI3MjM4LDI3MjA4LDI3''@;'; put 'put ''MTkyLDI3MTcwLDI3MjgwLDI3Mjc3LDI3Mjk2LDI3MjY4LDI3Mjk4LDI3Mjk5LDI3Mjg3LDM0MzI3LDI3MzIzLDI3MzMxLDI3MzMwLDI3MzIwLDI3MzE1LDI3MzA4LDI3MzU4LDI3MzQ1LDI3MzU5LDI3MzA2LDI3MzU0LDI3MzcwLDI3Mzg3LDI3Mzk3LDM0MzI2LDI3Mzg2LDI3NDEwLDI3NDE0''@;'; put 'put ''LDM5NzI5LDI3NDIzLDI3NDQ4LDI3NDQ3LDMwNDI4LDI3NDQ5LDM5MTUwLDI3NDYzLDI3NDU5LDI3NDY1LDI3NDcyLDI3NDgxLDI3NDc2LDI3NDgzLDI3NDg3LDI3NDg5LDI3NTEyLDI3NTEzLDI3NTE5LDI3NTIwLDI3NTI0LDI3NTIzLDI3NTMzLDI3NTQ0LDI3NTQxLDI3NTUwLDI3NTU2LDI3''@;'; put 'put ''NTYyLDI3NTYzLDI3NTY3LDI3NTcwLDI3NTY5LDI3NTcxLDI3NTc1LDI3NTgwLDI3NTkwLDI3NTk1LDI3NjAzLDI3NjE1LDI3NjI4LDI3NjI3LDI3NjM1LDI3NjMxLDQwNjM4LDI3NjU2LDI3NjY3LDI3NjY4LDI3Njc1LDI3Njg0LDI3NjgzLDI3NzQyLDI3NzMzLDI3NzQ2LDI3NzU0LDI3Nzc4''@;'; put 'put ''LDI3Nzg5LDI3ODAyLDI3Nzc3LDI3ODAzLDI3Nzc0LDI3NzUyLDI3NzYzLDI3Nzk0LDI3NzkyLDI3ODQ0LDI3ODg5LDI3ODU5LDI3ODM3LDI3ODYzLDI3ODQ1LDI3ODY5LDI3ODIyLDI3ODI1LDI3ODM4LDI3ODM0LDI3ODY3LDI3ODg3LDI3ODY1LDI3ODgyLDI3OTM1LDM0ODkzLDI3OTU4LDI3''@;'; put 'put ''OTQ3LDI3OTY1LDI3OTYwLDI3OTI5LDI3OTU3LDI3OTU1LDI3OTIyLDI3OTE2LDI4MDAzLDI4MDUxLDI4MDA0LDI3OTk0LDI4MDI1LDI3OTkzLDI4MDQ2LDI4MDUzLDI4NjQ0LDI4MDM3LDI4MTUzLDI4MTgxLDI4MTcwLDI4MDg1LDI4MTAzLDI4MTM0LDI4MDg4LDI4MTAyLDI4MTQwLDI4MTI2''@;'; put 'put ''LDI4MTA4LDI4MTM2LDI4MTE0LDI4MTAxLDI4MTU0LDI4MTIxLDI4MTMyLDI4MTE3LDI4MTM4LDI4MTQyLDI4MjA1LDI4MjcwLDI4MjA2LDI4MTg1LDI4Mjc0LDI4MjU1LDI4MjIyLDI4MTk1LDI4MjY3LDI4MjAzLDI4Mjc4LDI4MjM3LDI4MTkxLDI4MjI3LDI4MjE4LDI4MjM4LDI4MTk2LDI4''@;'; put 'put ''NDE1LDI4MTg5LDI4MjE2LDI4MjkwLDI4MzMwLDI4MzEyLDI4MzYxLDI4MzQzLDI4MzcxLDI4MzQ5LDI4MzM1LDI4MzU2LDI4MzM4LDI4MzcyLDI4MzczLDI4MzAzLDI4MzI1LDI4MzU0LDI4MzE5LDI4NDgxLDI4NDMzLDI4NzQ4LDI4Mzk2LDI4NDA4LDI4NDE0LDI4NDc5LDI4NDAyLDI4NDY1''@;'; put 'put ''LDI4Mzk5LDI4NDY2LDI4MzY0LDI4NDc4LDI4NDM1LDI4NDA3LDI4NTUwLDI4NTM4LDI4NTM2LDI4NTQ1LDI4NTQ0LDI4NTI3LDI4NTA3LDI4NjU5LDI4NTI1LDI4NTQ2LDI4NTQwLDI4NTA0LDI4NTU4LDI4NTYxLDI4NjEwLDI4NTE4LDI4NTk1LDI4NTc5LDI4NTc3LDI4NTgwLDI4NjAxLDI4''@;'; put 'put ''NjE0LDI4NTg2LDI4NjM5LDI4NjI5LDI4NjUyLDI4NjI4LDI4NjMyLDI4NjU3LDI4NjU0LDI4NjM1LDI4NjgxLDI4NjgzLDI4NjY2LDI4Njg5LDI4NjczLDI4Njg3LDI4NjcwLDI4Njk5LDI4Njk4LDI4NTMyLDI4NzAxLDI4Njk2LDI4NzAzLDI4NzIwLDI4NzM0LDI4NzIyLDI4NzUzLDI4Nzcx''@;'; put 'put ''LDI4ODI1LDI4ODE4LDI4ODQ3LDI4OTEzLDI4ODQ0LDI4ODU2LDI4ODUxLDI4ODQ2LDI4ODk1LDI4ODc1LDI4ODkzLDI4ODg5LDI4OTM3LDI4OTI1LDI4OTU2LDI4OTUzLDI5MDI5LDI5MDEzLDI5MDY0LDI5MDMwLDI5MDI2LDI5MDA0LDI5MDE0LDI5MDM2LDI5MDcxLDI5MTc5LDI5MDYwLDI5''@;'; put 'put ''MDc3LDI5MDk2LDI5MTAwLDI5MTQzLDI5MTEzLDI5MTE4LDI5MTM4LDI5MTI5LDI5MTQwLDI5MTM0LDI5MTUyLDI5MTY0LDI5MTU5LDI5MTczLDI5MTgwLDI5MTc3LDI5MTgzLDI5MTk3LDI5MjAwLDI5MjExLDI5MjI0LDI5MjI5LDI5MjI4LDI5MjMyLDI5MjM0LDI5MjQzLDI5MjQ0LDI5MjQ3''@;'; put 'put ''LDI5MjQ4LDI5MjU0LDI5MjU5LDI5MjcyLDI5MzAwLDI5MzEwLDI5MzE0LDI5MzEzLDI5MzE5LDI5MzMwLDI5MzM0LDI5MzQ2LDI5MzUxLDI5MzY5LDI5MzYyLDI5Mzc5LDI5MzgyLDI5MzgwLDI5MzkwLDI5Mzk0LDI5NDEwLDI5NDA4LDI5NDA5LDI5NDMzLDI5NDMxLDIwNDk1LDI5NDYzLDI5''@;'; put 'put ''NDUwLDI5NDY4LDI5NDYyLDI5NDY5LDI5NDkyLDI5NDg3LDI5NDgxLDI5NDc3LDI5NTAyLDI5NTE4LDI5NTE5LDQwNjY0LDI5NTI3LDI5NTQ2LDI5NTQ0LDI5NTUyLDI5NTYwLDI5NTU3LDI5NTYzLDI5NTYyLDI5NjQwLDI5NjE5LDI5NjQ2LDI5NjI3LDI5NjMyLDI5NjY5LDI5Njc4LDI5NjYy''@;'; put 'put ''LDI5ODU4LDI5NzAxLDI5ODA3LDI5NzMzLDI5Njg4LDI5NzQ2LDI5NzU0LDI5NzgxLDI5NzU5LDI5NzkxLDI5Nzg1LDI5NzYxLDI5Nzg4LDI5ODAxLDI5ODA4LDI5Nzk1LDI5ODAyLDI5ODE0LDI5ODIyLDI5ODM1LDI5ODU0LDI5ODYzLDI5ODk4LDI5OTAzLDI5OTA4LDI5NjgxLDI5OTIwLDI5''@;'; put 'put ''OTIzLDI5OTI3LDI5OTI5LDI5OTM0LDI5OTM4LDI5OTM2LDI5OTM3LDI5OTQ0LDI5OTQzLDI5OTU2LDI5OTU1LDI5OTU3LDI5OTY0LDI5OTY2LDI5OTY1LDI5OTczLDI5OTcxLDI5OTgyLDI5OTkwLDI5OTk2LDMwMDEyLDMwMDIwLDMwMDI5LDMwMDI2LDMwMDI1LDMwMDQzLDMwMDIyLDMwMDQy''@;'; put 'put ''LDMwMDU3LDMwMDUyLDMwMDU1LDMwMDU5LDMwMDYxLDMwMDcyLDMwMDcwLDMwMDg2LDMwMDg3LDMwMDY4LDMwMDkwLDMwMDg5LDMwMDgyLDMwMTAwLDMwMTA2LDMwMTA5LDMwMTE3LDMwMTE1LDMwMTQ2LDMwMTMxLDMwMTQ3LDMwMTMzLDMwMTQxLDMwMTM2LDMwMTQwLDMwMTI5LDMwMTU3LDMw''@;'; put 'put ''MTU0LDMwMTYyLDMwMTY5LDMwMTc5LDMwMTc0LDMwMjA2LDMwMjA3LDMwMjA0LDMwMjA5LDMwMTkyLDMwMjAyLDMwMTk0LDMwMTk1LDMwMjE5LDMwMjIxLDMwMjE3LDMwMjM5LDMwMjQ3LDMwMjQwLDMwMjQxLDMwMjQyLDMwMjQ0LDMwMjYwLDMwMjU2LDMwMjY3LDMwMjc5LDMwMjgwLDMwMjc4''@;'; put 'put ''LDMwMzAwLDMwMjk2LDMwMzA1LDMwMzA2LDMwMzEyLDMwMzEzLDMwMzE0LDMwMzExLDMwMzE2LDMwMzIwLDMwMzIyLDMwMzI2LDMwMzI4LDMwMzMyLDMwMzM2LDMwMzM5LDMwMzQ0LDMwMzQ3LDMwMzUwLDMwMzU4LDMwMzU1LDMwMzYxLDMwMzYyLDMwMzg0LDMwMzg4LDMwMzkyLDMwMzkzLDMw''@;'; put 'put ''Mzk0LDMwNDAyLDMwNDEzLDMwNDIyLDMwNDE4LDMwNDMwLDMwNDMzLDMwNDM3LDMwNDM5LDMwNDQyLDM0MzUxLDMwNDU5LDMwNDcyLDMwNDcxLDMwNDY4LDMwNTA1LDMwNTAwLDMwNDk0LDMwNTAxLDMwNTAyLDMwNDkxLDMwNTE5LDMwNTIwLDMwNTM1LDMwNTU0LDMwNTY4LDMwNTcxLDMwNTU1''@;'; put 'put ''LDMwNTY1LDMwNTkxLDMwNTkwLDMwNTg1LDMwNjA2LDMwNjAzLDMwNjA5LDMwNjI0LDMwNjIyLDMwNjQwLDMwNjQ2LDMwNjQ5LDMwNjU1LDMwNjUyLDMwNjUzLDMwNjUxLDMwNjYzLDMwNjY5LDMwNjc5LDMwNjgyLDMwNjg0LDMwNjkxLDMwNzAyLDMwNzE2LDMwNzMyLDMwNzM4LDMxMDE0LDMw''@;'; put 'put ''NzUyLDMxMDE4LDMwNzg5LDMwODYyLDMwODM2LDMwODU0LDMwODQ0LDMwODc0LDMwODYwLDMwODgzLDMwOTAxLDMwODkwLDMwODk1LDMwOTI5LDMwOTE4LDMwOTIzLDMwOTMyLDMwOTEwLDMwOTA4LDMwOTE3LDMwOTIyLDMwOTU2LDMwOTUxLDMwOTM4LDMwOTczLDMwOTY0LDMwOTgzLDMwOTk0''@;'; put 'put ''LDMwOTkzLDMxMDAxLDMxMDIwLDMxMDE5LDMxMDQwLDMxMDcyLDMxMDYzLDMxMDcxLDMxMDY2LDMxMDYxLDMxMDU5LDMxMDk4LDMxMTAzLDMxMTE0LDMxMTMzLDMxMTQzLDQwNzc5LDMxMTQ2LDMxMTUwLDMxMTU1LDMxMTYxLDMxMTYyLDMxMTc3LDMxMTg5LDMxMjA3LDMxMjEyLDMxMjAxLDMx''@;'; put 'put ''MjAzLDMxMjQwLDMxMjQ1LDMxMjU2LDMxMjU3LDMxMjY0LDMxMjYzLDMxMTA0LDMxMjgxLDMxMjkxLDMxMjk0LDMxMjg3LDMxMjk5LDMxMzE5LDMxMzA1LDMxMzI5LDMxMzMwLDMxMzM3LDQwODYxLDMxMzQ0LDMxMzUzLDMxMzU3LDMxMzY4LDMxMzgzLDMxMzgxLDMxMzg0LDMxMzgyLDMxNDAx''@;'; put 'put ''LDMxNDMyLDMxNDA4LDMxNDE0LDMxNDI5LDMxNDI4LDMxNDIzLDM2OTk1LDMxNDMxLDMxNDM0LDMxNDM3LDMxNDM5LDMxNDQ1LDMxNDQzLDMxNDQ5LDMxNDUwLDMxNDUzLDMxNDU3LDMxNDU4LDMxNDYyLDMxNDY5LDMxNDcyLDMxNDkwLDMxNTAzLDMxNDk4LDMxNDk0LDMxNTM5LDMxNTEyLDMx''@;'; put 'put ''NTEzLDMxNTE4LDMxNTQxLDMxNTI4LDMxNTQyLDMxNTY4LDMxNjEwLDMxNDkyLDMxNTY1LDMxNDk5LDMxNTY0LDMxNTU3LDMxNjA1LDMxNTg5LDMxNjA0LDMxNTkxLDMxNjAwLDMxNjAxLDMxNTk2LDMxNTk4LDMxNjQ1LDMxNjQwLDMxNjQ3LDMxNjI5LDMxNjQ0LDMxNjQyLDMxNjI3LDMxNjM0''@;'; put 'put ''LDMxNjMxLDMxNTgxLDMxNjQxLDMxNjkxLDMxNjgxLDMxNjkyLDMxNjk1LDMxNjY4LDMxNjg2LDMxNzA5LDMxNzIxLDMxNzYxLDMxNzY0LDMxNzE4LDMxNzE3LDMxODQwLDMxNzQ0LDMxNzUxLDMxNzYzLDMxNzMxLDMxNzM1LDMxNzY3LDMxNzU3LDMxNzM0LDMxNzc5LDMxNzgzLDMxNzg2LDMx''@;'; put 'put ''Nzc1LDMxNzk5LDMxNzg3LDMxODA1LDMxODIwLDMxODExLDMxODI4LDMxODIzLDMxODA4LDMxODI0LDMxODMyLDMxODM5LDMxODQ0LDMxODMwLDMxODQ1LDMxODUyLDMxODYxLDMxODc1LDMxODg4LDMxOTA4LDMxOTE3LDMxOTA2LDMxOTE1LDMxOTA1LDMxOTEyLDMxOTIzLDMxOTIyLDMxOTIx''@;'; put 'put ''LDMxOTE4LDMxOTI5LDMxOTMzLDMxOTM2LDMxOTQxLDMxOTM4LDMxOTYwLDMxOTU0LDMxOTY0LDMxOTcwLDM5NzM5LDMxOTgzLDMxOTg2LDMxOTg4LDMxOTkwLDMxOTk0LDMyMDA2LDMyMDAyLDMyMDI4LDMyMDIxLDMyMDEwLDMyMDY5LDMyMDc1LDMyMDQ2LDMyMDUwLDMyMDYzLDMyMDUzLDMy''@;'; put 'put ''MDcwLDMyMTE1LDMyMDg2LDMyMDc4LDMyMTE0LDMyMTA0LDMyMTEwLDMyMDc5LDMyMDk5LDMyMTQ3LDMyMTM3LDMyMDkxLDMyMTQzLDMyMTI1LDMyMTU1LDMyMTg2LDMyMTc0LDMyMTYzLDMyMTgxLDMyMTk5LDMyMTg5LDMyMTcxLDMyMzE3LDMyMTYyLDMyMTc1LDMyMjIwLDMyMTg0LDMyMTU5''@;'; put 'put ''LDMyMTc2LDMyMjE2LDMyMjIxLDMyMjI4LDMyMjIyLDMyMjUxLDMyMjQyLDMyMjI1LDMyMjYxLDMyMjY2LDMyMjkxLDMyMjg5LDMyMjc0LDMyMzA1LDMyMjg3LDMyMjY1LDMyMjY3LDMyMjkwLDMyMzI2LDMyMzU4LDMyMzE1LDMyMzA5LDMyMzEzLDMyMzIzLDMyMzExLDMyMzA2LDMyMzE0LDMy''@;'; put 'put ''MzU5LDMyMzQ5LDMyMzQyLDMyMzUwLDMyMzQ1LDMyMzQ2LDMyMzc3LDMyMzYyLDMyMzYxLDMyMzgwLDMyMzc5LDMyMzg3LDMyMjEzLDMyMzgxLDM2NzgyLDMyMzgzLDMyMzkyLDMyMzkzLDMyMzk2LDMyNDAyLDMyNDAwLDMyNDAzLDMyNDA0LDMyNDA2LDMyMzk4LDMyNDExLDMyNDEyLDMyNTY4''@;'; put 'put ''LDMyNTcwLDMyNTgxLDMyNTg4LDMyNTg5LDMyNTkwLDMyNTkyLDMyNTkzLDMyNTk3LDMyNTk2LDMyNjAwLDMyNjA3LDMyNjA4LDMyNjE2LDMyNjE3LDMyNjE1LDMyNjMyLDMyNjQyLDMyNjQ2LDMyNjQzLDMyNjQ4LDMyNjQ3LDMyNjUyLDMyNjYwLDMyNjcwLDMyNjY5LDMyNjY2LDMyNjc1LDMy''@;'; put 'put ''Njg3LDMyNjkwLDMyNjk3LDMyNjg2LDMyNjk0LDMyNjk2LDM1Njk3LDMyNzA5LDMyNzEwLDMyNzE0LDMyNzI1LDMyNzI0LDMyNzM3LDMyNzQyLDMyNzQ1LDMyNzU1LDMyNzYxLDM5MTMyLDMyNzc0LDMyNzcyLDMyNzc5LDMyNzg2LDMyNzkyLDMyNzkzLDMyNzk2LDMyODAxLDMyODA4LDMyODMx''@;'; put 'put ''LDMyODI3LDMyODQyLDMyODM4LDMyODUwLDMyODU2LDMyODU4LDMyODYzLDMyODY2LDMyODcyLDMyODgzLDMyODgyLDMyODgwLDMyODg2LDMyODg5LDMyODkzLDMyODk1LDMyOTAwLDMyOTAyLDMyOTAxLDMyOTIzLDMyOTE1LDMyOTIyLDMyOTQxLDIwODgwLDMyOTQwLDMyOTg3LDMyOTk3LDMy''@;'; put 'put ''OTg1LDMyOTg5LDMyOTY0LDMyOTg2LDMyOTgyLDMzMDMzLDMzMDA3LDMzMDA5LDMzMDUxLDMzMDY1LDMzMDU5LDMzMDcxLDMzMDk5LDM4NTM5LDMzMDk0LDMzMDg2LDMzMTA3LDMzMTA1LDMzMDIwLDMzMTM3LDMzMTM0LDMzMTI1LDMzMTI2LDMzMTQwLDMzMTU1LDMzMTYwLDMzMTYyLDMzMTUy''@;'; put 'put ''LDMzMTU0LDMzMTg0LDMzMTczLDMzMTg4LDMzMTg3LDMzMTE5LDMzMTcxLDMzMTkzLDMzMjAwLDMzMjA1LDMzMjE0LDMzMjA4LDMzMjEzLDMzMjE2LDMzMjE4LDMzMjEwLDMzMjI1LDMzMjI5LDMzMjMzLDMzMjQxLDMzMjQwLDMzMjI0LDMzMjQyLDMzMjQ3LDMzMjQ4LDMzMjU1LDMzMjc0LDMz''@;'; put 'put ''Mjc1LDMzMjc4LDMzMjgxLDMzMjgyLDMzMjg1LDMzMjg3LDMzMjkwLDMzMjkzLDMzMjk2LDMzMzAyLDMzMzIxLDMzMzIzLDMzMzM2LDMzMzMxLDMzMzQ0LDMzMzY5LDMzMzY4LDMzMzczLDMzMzcwLDMzMzc1LDMzMzgwLDMzMzc4LDMzMzg0LDMzMzg2LDMzMzg3LDMzMzI2LDMzMzkzLDMzMzk5''@;'; put 'put ''LDMzNDAwLDMzNDA2LDMzNDIxLDMzNDI2LDMzNDUxLDMzNDM5LDMzNDY3LDMzNDUyLDMzNTA1LDMzNTA3LDMzNTAzLDMzNDkwLDMzNTI0LDMzNTIzLDMzNTMwLDMzNjgzLDMzNTM5LDMzNTMxLDMzNTI5LDMzNTAyLDMzNTQyLDMzNTAwLDMzNTQ1LDMzNDk3LDMzNTg5LDMzNTg4LDMzNTU4LDMz''@;'; put 'put ''NTg2LDMzNTg1LDMzNjAwLDMzNTkzLDMzNjE2LDMzNjA1LDMzNTgzLDMzNTc5LDMzNTU5LDMzNTYwLDMzNjY5LDMzNjkwLDMzNzA2LDMzNjk1LDMzNjk4LDMzNjg2LDMzNTcxLDMzNjc4LDMzNjcxLDMzNjc0LDMzNjYwLDMzNzE3LDMzNjUxLDMzNjUzLDMzNjk2LDMzNjczLDMzNzA0LDMzNzgw''@;'; put 'put ''LDMzODExLDMzNzcxLDMzNzQyLDMzNzg5LDMzNzk1LDMzNzUyLDMzODAzLDMzNzI5LDMzNzgzLDMzNzk5LDMzNzYwLDMzNzc4LDMzODA1LDMzODI2LDMzODI0LDMzNzI1LDMzODQ4LDM0MDU0LDMzNzg3LDMzOTAxLDMzODM0LDMzODUyLDM0MTM4LDMzOTI0LDMzOTExLDMzODk5LDMzOTY1LDMz''@;'; put 'put ''OTAyLDMzOTIyLDMzODk3LDMzODYyLDMzODM2LDMzOTAzLDMzOTEzLDMzODQ1LDMzOTk0LDMzODkwLDMzOTc3LDMzOTgzLDMzOTUxLDM0MDA5LDMzOTk3LDMzOTc5LDM0MDEwLDM0ZTMsMzM5ODUsMzM5OTAsMzQwMDYsMzM5NTMsMzQwODEsMzQwNDcsMzQwMzYsMzQwNzEsMzQwNzIsMzQwOTIs''@;'; put 'put ''MzQwNzksMzQwNjksMzQwNjgsMzQwNDQsMzQxMTIsMzQxNDcsMzQxMzYsMzQxMjAsMzQxMTMsMzQzMDYsMzQxMjMsMzQxMzMsMzQxNzYsMzQyMTIsMzQxODQsMzQxOTMsMzQxODYsMzQyMTYsMzQxNTcsMzQxOTYsMzQyMDMsMzQyODIsMzQxODMsMzQyMDQsMzQxNjcsMzQxNzQsMzQxOTIsMzQy''@;'; put 'put ''NDksMzQyMzQsMzQyNTUsMzQyMzMsMzQyNTYsMzQyNjEsMzQyNjksMzQyNzcsMzQyNjgsMzQyOTcsMzQzMTQsMzQzMjMsMzQzMTUsMzQzMDIsMzQyOTgsMzQzMTAsMzQzMzgsMzQzMzAsMzQzNTIsMzQzNjcsMzQzODEsMjAwNTMsMzQzODgsMzQzOTksMzQ0MDcsMzQ0MTcsMzQ0NTEsMzQ0Njcs''@;'; put 'put ''MzQ0NzMsMzQ0NzQsMzQ0NDMsMzQ0NDQsMzQ0ODYsMzQ0NzksMzQ1MDAsMzQ1MDIsMzQ0ODAsMzQ1MDUsMzQ4NTEsMzQ0NzUsMzQ1MTYsMzQ1MjYsMzQ1MzcsMzQ1NDAsMzQ1MjcsMzQ1MjMsMzQ1NDMsMzQ1NzgsMzQ1NjYsMzQ1NjgsMzQ1NjAsMzQ1NjMsMzQ1NTUsMzQ1NzcsMzQ1NjksMzQ1''@;'; put 'put ''NzMsMzQ1NTMsMzQ1NzAsMzQ2MTIsMzQ2MjMsMzQ2MTUsMzQ2MTksMzQ1OTcsMzQ2MDEsMzQ1ODYsMzQ2NTYsMzQ2NTUsMzQ2ODAsMzQ2MzYsMzQ2MzgsMzQ2NzYsMzQ2NDcsMzQ2NjQsMzQ2NzAsMzQ2NDksMzQ2NDMsMzQ2NTksMzQ2NjYsMzQ4MjEsMzQ3MjIsMzQ3MTksMzQ2OTAsMzQ3MzUs''@;'; put 'put ''MzQ3NjMsMzQ3NDksMzQ3NTIsMzQ3NjgsMzg2MTQsMzQ3MzEsMzQ3NTYsMzQ3MzksMzQ3NTksMzQ3NTgsMzQ3NDcsMzQ3OTksMzQ4MDIsMzQ3ODQsMzQ4MzEsMzQ4MjksMzQ4MTQsMzQ4MDYsMzQ4MDcsMzQ4MzAsMzQ3NzAsMzQ4MzMsMzQ4MzgsMzQ4MzcsMzQ4NTAsMzQ4NDksMzQ4NjUsMzQ4''@;'; put 'put ''NzAsMzQ4NzMsMzQ4NTUsMzQ4NzUsMzQ4ODQsMzQ4ODIsMzQ4OTgsMzQ5MDUsMzQ5MTAsMzQ5MTQsMzQ5MjMsMzQ5NDUsMzQ5NDIsMzQ5NzQsMzQ5MzMsMzQ5NDEsMzQ5OTcsMzQ5MzAsMzQ5NDYsMzQ5NjcsMzQ5NjIsMzQ5OTAsMzQ5NjksMzQ5NzgsMzQ5NTcsMzQ5ODAsMzQ5OTIsMzUwMDcs''@;'; put 'put ''MzQ5OTMsMzUwMTEsMzUwMTIsMzUwMjgsMzUwMzIsMzUwMzMsMzUwMzcsMzUwNjUsMzUwNzQsMzUwNjgsMzUwNjAsMzUwNDgsMzUwNTgsMzUwNzYsMzUwODQsMzUwODIsMzUwOTEsMzUxMzksMzUxMDIsMzUxMDksMzUxMTQsMzUxMTUsMzUxMzcsMzUxNDAsMzUxMzEsMzUxMjYsMzUxMjgsMzUx''@;'; put 'put ''NDgsMzUxMDEsMzUxNjgsMzUxNjYsMzUxNzQsMzUxNzIsMzUxODEsMzUxNzgsMzUxODMsMzUxODgsMzUxOTEsMzUxOTgsMzUyMDMsMzUyMDgsMzUyMTAsMzUyMTksMzUyMjQsMzUyMzMsMzUyNDEsMzUyMzgsMzUyNDQsMzUyNDcsMzUyNTAsMzUyNTgsMzUyNjEsMzUyNjMsMzUyNjQsMzUyOTAs''@;'; put 'put ''MzUyOTIsMzUyOTMsMzUzMDMsMzUzMTYsMzUzMjAsMzUzMzEsMzUzNTAsMzUzNDQsMzUzNDAsMzUzNTUsMzUzNTcsMzUzNjUsMzUzODIsMzUzOTMsMzU0MTksMzU0MTAsMzUzOTgsMzU0MDAsMzU0NTIsMzU0MzcsMzU0MzYsMzU0MjYsMzU0NjEsMzU0NTgsMzU0NjAsMzU0OTYsMzU0ODksMzU0''@;'; put 'put ''NzMsMzU0OTMsMzU0OTQsMzU0ODIsMzU0OTEsMzU1MjQsMzU1MzMsMzU1MjIsMzU1NDYsMzU1NjMsMzU1NzEsMzU1NTksMzU1NTYsMzU1NjksMzU2MDQsMzU1NTIsMzU1NTQsMzU1NzUsMzU1NTAsMzU1NDcsMzU1OTYsMzU1OTEsMzU2MTAsMzU1NTMsMzU2MDYsMzU2MDAsMzU2MDcsMzU2MTYs''@;'; put 'put ''MzU2MzUsMzg4MjcsMzU2MjIsMzU2MjcsMzU2NDYsMzU2MjQsMzU2NDksMzU2NjAsMzU2NjMsMzU2NjIsMzU2NTcsMzU2NzAsMzU2NzUsMzU2NzQsMzU2OTEsMzU2NzksMzU2OTIsMzU2OTUsMzU3MDAsMzU3MDksMzU3MTIsMzU3MjQsMzU3MjYsMzU3MzAsMzU3MzEsMzU3MzQsMzU3MzcsMzU3''@;'; put 'put ''MzgsMzU4OTgsMzU5MDUsMzU5MDMsMzU5MTIsMzU5MTYsMzU5MTgsMzU5MjAsMzU5MjUsMzU5MzgsMzU5NDgsMzU5NjAsMzU5NjIsMzU5NzAsMzU5NzcsMzU5NzMsMzU5NzgsMzU5ODEsMzU5ODIsMzU5ODgsMzU5NjQsMzU5OTIsMjUxMTcsMzYwMTMsMzYwMTAsMzYwMjksMzYwMTgsMzYwMTks''@;'; put 'put ''MzYwMTQsMzYwMjIsMzYwNDAsMzYwMzMsMzYwNjgsMzYwNjcsMzYwNTgsMzYwOTMsMzYwOTAsMzYwOTEsMzYxMDAsMzYxMDEsMzYxMDYsMzYxMDMsMzYxMTEsMzYxMDksMzYxMTIsNDA3ODIsMzYxMTUsMzYwNDUsMzYxMTYsMzYxMTgsMzYxOTksMzYyMDUsMzYyMDksMzYyMTEsMzYyMjUsMzYy''@;'; put 'put ''NDksMzYyOTAsMzYyODYsMzYyODIsMzYzMDMsMzYzMTQsMzYzMTAsMzYzMDAsMzYzMTUsMzYyOTksMzYzMzAsMzYzMzEsMzYzMTksMzYzMjMsMzYzNDgsMzYzNjAsMzYzNjEsMzYzNTEsMzYzODEsMzYzODIsMzYzNjgsMzYzODMsMzY0MTgsMzY0MDUsMzY0MDAsMzY0MDQsMzY0MjYsMzY0MjMs''@;'; put 'put ''MzY0MjUsMzY0MjgsMzY0MzIsMzY0MjQsMzY0NDEsMzY0NTIsMzY0NDgsMzYzOTQsMzY0NTEsMzY0MzcsMzY0NzAsMzY0NjYsMzY0NzYsMzY0ODEsMzY0ODcsMzY0ODUsMzY0ODQsMzY0OTEsMzY0OTAsMzY0OTksMzY0OTcsMzY1MDAsMzY1MDUsMzY1MjIsMzY1MTMsMzY1MjQsMzY1MjgsMzY1''@;'; put 'put ''NTAsMzY1MjksMzY1NDIsMzY1NDksMzY1NTIsMzY1NTUsMzY1NzEsMzY1NzksMzY2MDQsMzY2MDMsMzY1ODcsMzY2MDYsMzY2MTgsMzY2MTMsMzY2MjksMzY2MjYsMzY2MzMsMzY2MjcsMzY2MzYsMzY2MzksMzY2MzUsMzY2MjAsMzY2NDYsMzY2NTksMzY2NjcsMzY2NjUsMzY2NzcsMzY2NzQs''@;'; put 'put ''MzY2NzAsMzY2ODQsMzY2ODEsMzY2NzgsMzY2ODYsMzY2OTUsMzY3MDAsMzY3MDYsMzY3MDcsMzY3MDgsMzY3NjQsMzY3NjcsMzY3NzEsMzY3ODEsMzY3ODMsMzY3OTEsMzY4MjYsMzY4MzcsMzY4MzQsMzY4NDIsMzY4NDcsMzY5OTksMzY4NTIsMzY4NjksMzY4NTcsMzY4NTgsMzY4ODEsMzY4''@;'; put 'put ''ODUsMzY4OTcsMzY4NzcsMzY4OTQsMzY4ODYsMzY4NzUsMzY5MDMsMzY5MTgsMzY5MTcsMzY5MjEsMzY4NTYsMzY5NDMsMzY5NDQsMzY5NDUsMzY5NDYsMzY4NzgsMzY5MzcsMzY5MjYsMzY5NTAsMzY5NTIsMzY5NTgsMzY5NjgsMzY5NzUsMzY5ODIsMzg1NjgsMzY5NzgsMzY5OTQsMzY5ODks''@;'; put 'put ''MzY5OTMsMzY5OTIsMzcwMDIsMzcwMDEsMzcwMDcsMzcwMzIsMzcwMzksMzcwNDEsMzcwNDUsMzcwOTAsMzcwOTIsMjUxNjAsMzcwODMsMzcxMjIsMzcxMzgsMzcxNDUsMzcxNzAsMzcxNjgsMzcxOTQsMzcyMDYsMzcyMDgsMzcyMTksMzcyMjEsMzcyMjUsMzcyMzUsMzcyMzQsMzcyNTksMzcy''@;'; put 'put ''NTcsMzcyNTAsMzcyODIsMzcyOTEsMzcyOTUsMzcyOTAsMzczMDEsMzczMDAsMzczMDYsMzczMTIsMzczMTMsMzczMjEsMzczMjMsMzczMjgsMzczMzQsMzczNDMsMzczNDUsMzczMzksMzczNzIsMzczNjUsMzczNjYsMzc0MDYsMzczNzUsMzczOTYsMzc0MjAsMzczOTcsMzczOTMsMzc0NzAs''@;'; put 'put ''Mzc0NjMsMzc0NDUsMzc0NDksMzc0NzYsMzc0NDgsMzc1MjUsMzc0MzksMzc0NTEsMzc0NTYsMzc1MzIsMzc1MjYsMzc1MjMsMzc1MzEsMzc0NjYsMzc1ODMsMzc1NjEsMzc1NTksMzc2MDksMzc2NDcsMzc2MjYsMzc3MDAsMzc2NzgsMzc2NTcsMzc2NjYsMzc2NTgsMzc2NjcsMzc2OTAsMzc2''@;'; put 'put ''ODUsMzc2OTEsMzc3MjQsMzc3MjgsMzc3NTYsMzc3NDIsMzc3MTgsMzc4MDgsMzc4MDQsMzc4MDUsMzc3ODAsMzc4MTcsMzc4NDYsMzc4NDcsMzc4NjQsMzc4NjEsMzc4NDgsMzc4MjcsMzc4NTMsMzc4NDAsMzc4MzIsMzc4NjAsMzc5MTQsMzc5MDgsMzc5MDcsMzc4OTEsMzc4OTUsMzc5MDQs''@;'; put 'put ''Mzc5NDIsMzc5MzEsMzc5NDEsMzc5MjEsMzc5NDYsMzc5NTMsMzc5NzAsMzc5NTYsMzc5NzksMzc5ODQsMzc5ODYsMzc5ODIsMzc5OTQsMzc0MTcsMzhlMywzODAwNSwzODAwNywzODAxMywzNzk3OCwzODAxMiwzODAxNCwzODAxNywzODAxNSwzODI3NCwzODI3OSwzODI4MiwzODI5MiwzODI5''@;'; put 'put ''NCwzODI5NiwzODI5NywzODMwNCwzODMxMiwzODMxMSwzODMxNywzODMzMiwzODMzMSwzODMyOSwzODMzNCwzODM0NiwyODY2MiwzODMzOSwzODM0OSwzODM0OCwzODM1NywzODM1NiwzODM1OCwzODM2NCwzODM2OSwzODM3MywzODM3MCwzODQzMywzODQ0MCwzODQ0NiwzODQ0NywzODQ2Niwz''@;'; put 'put ''ODQ3NiwzODQ3OSwzODQ3NSwzODUxOSwzODQ5MiwzODQ5NCwzODQ5MywzODQ5NSwzODUwMiwzODUxNCwzODUwOCwzODU0MSwzODU1MiwzODU0OSwzODU1MSwzODU3MCwzODU2NywzODU3NywzODU3OCwzODU3NiwzODU4MCwzODU4MiwzODU4NCwzODU4NSwzODYwNiwzODYwMywzODYwMSwzODYw''@;'; put 'put ''NSwzNTE0OSwzODYyMCwzODY2OSwzODYxMywzODY0OSwzODY2MCwzODY2MiwzODY2NCwzODY3NSwzODY3MCwzODY3MywzODY3MSwzODY3OCwzODY4MSwzODY5MiwzODY5OCwzODcwNCwzODcxMywzODcxNywzODcxOCwzODcyNCwzODcyNiwzODcyOCwzODcyMiwzODcyOSwzODc0OCwzODc1Miwz''@;'; put 'put ''ODc1NiwzODc1OCwzODc2MCwyMTIwMiwzODc2MywzODc2OSwzODc3NywzODc4OSwzODc4MCwzODc4NSwzODc3OCwzODc5MCwzODc5NSwzODc5OSwzODgwMCwzODgxMiwzODgyNCwzODgyMiwzODgxOSwzODgzNSwzODgzNiwzODg1MSwzODg1NCwzODg1NiwzODg1OSwzODg3NiwzODg5Myw0MDc4''@;'; put 'put ''MywzODg5OCwzMTQ1NSwzODkwMiwzODkwMSwzODkyNywzODkyNCwzODk2OCwzODk0OCwzODk0NSwzODk2NywzODk3MywzODk4MiwzODk5MSwzODk4NywzOTAxOSwzOTAyMywzOTAyNCwzOTAyNSwzOTAyOCwzOTAyNywzOTA4MiwzOTA4NywzOTA4OSwzOTA5NCwzOTEwOCwzOTEwNywzOTExMCwz''@;'; put 'put ''OTE0NSwzOTE0NywzOTE3MSwzOTE3NywzOTE4NiwzOTE4OCwzOTE5MiwzOTIwMSwzOTE5NywzOTE5OCwzOTIwNCwzOTIwMCwzOTIxMiwzOTIxNCwzOTIyOSwzOTIzMCwzOTIzNCwzOTI0MSwzOTIzNywzOTI0OCwzOTI0MywzOTI0OSwzOTI1MCwzOTI0NCwzOTI1MywzOTMxOSwzOTMyMCwzOTMz''@;'; put 'put ''MywzOTM0MSwzOTM0MiwzOTM1NiwzOTM5MSwzOTM4NywzOTM4OSwzOTM4NCwzOTM3NywzOTQwNSwzOTQwNiwzOTQwOSwzOTQxMCwzOTQxOSwzOTQxNiwzOTQyNSwzOTQzOSwzOTQyOSwzOTM5NCwzOTQ0OSwzOTQ2NywzOTQ3OSwzOTQ5MywzOTQ5MCwzOTQ4OCwzOTQ5MSwzOTQ4NiwzOTUwOSwz''@;'; put 'put ''OTUwMSwzOTUxNSwzOTUxMSwzOTUxOSwzOTUyMiwzOTUyNSwzOTUyNCwzOTUyOSwzOTUzMSwzOTUzMCwzOTU5NywzOTYwMCwzOTYxMiwzOTYxNiwzOTYzMSwzOTYzMywzOTYzNSwzOTYzNiwzOTY0NiwzOTY0NywzOTY1MCwzOTY1MSwzOTY1NCwzOTY2MywzOTY1OSwzOTY2MiwzOTY2OCwzOTY2''@;'; put 'put ''NSwzOTY3MSwzOTY3NSwzOTY4NiwzOTcwNCwzOTcwNiwzOTcxMSwzOTcxNCwzOTcxNSwzOTcxNywzOTcxOSwzOTcyMCwzOTcyMSwzOTcyMiwzOTcyNiwzOTcyNywzOTczMCwzOTc0OCwzOTc0NywzOTc1OSwzOTc1NywzOTc1OCwzOTc2MSwzOTc2OCwzOTc5NiwzOTgyNywzOTgxMSwzOTgyNSwz''@;'; put 'put ''OTgzMCwzOTgzMSwzOTgzOSwzOTg0MCwzOTg0OCwzOTg2MCwzOTg3MiwzOTg4MiwzOTg2NSwzOTg3OCwzOTg4NywzOTg4OSwzOTg5MCwzOTkwNywzOTkwNiwzOTkwOCwzOTg5MiwzOTkwNSwzOTk5NCwzOTkyMiwzOTkyMSwzOTkyMCwzOTk1NywzOTk1NiwzOTk0NSwzOTk1NSwzOTk0OCwzOTk0''@;'; put 'put ''MiwzOTk0NCwzOTk1NCwzOTk0NiwzOTk0MCwzOTk4MiwzOTk2MywzOTk3MywzOTk3MiwzOTk2OSwzOTk4NCw0MDAwNywzOTk4Niw0MDAwNiwzOTk5OCw0MDAyNiw0MDAzMiw0MDAzOSw0MDA1NCw0MDA1Niw0MDE2Nyw0MDE3Miw0MDE3Niw0MDIwMSw0MDIwMCw0MDE3MSw0MDE5NSw0MDE5OCw0''@;'; put 'put ''MDIzNCw0MDIzMCw0MDM2Nyw0MDIyNyw0MDIyMyw0MDI2MCw0MDIxMyw0MDIxMCw0MDI1Nyw0MDI1NSw0MDI1NCw0MDI2Miw0MDI2NCw0MDI4NSw0MDI4Niw0MDI5Miw0MDI3Myw0MDI3Miw0MDI4MSw0MDMwNiw0MDMyOSw0MDMyNyw0MDM2Myw0MDMwMyw0MDMxNCw0MDM0Niw0MDM1Niw0MDM2''@;'; put 'put ''MSw0MDM3MCw0MDM4OCw0MDM4NSw0MDM3OSw0MDM3Niw0MDM3OCw0MDM5MCw0MDM5OSw0MDM4Niw0MDQwOSw0MDQwMyw0MDQ0MCw0MDQyMiw0MDQyOSw0MDQzMSw0MDQ0NSw0MDQ3NCw0MDQ3NSw0MDQ3OCw0MDU2NSw0MDU2OSw0MDU3Myw0MDU3Nyw0MDU4NCw0MDU4Nyw0MDU4OCw0MDU5NCw0''@;'; put 'put ''MDU5Nyw0MDU5Myw0MDYwNSw0MDYxMyw0MDYxNyw0MDYzMiw0MDYxOCw0MDYyMSwzODc1Myw0MDY1Miw0MDY1NCw0MDY1NSw0MDY1Niw0MDY2MCw0MDY2OCw0MDY3MCw0MDY2OSw0MDY3Miw0MDY3Nyw0MDY4MCw0MDY4Nyw0MDY5Miw0MDY5NCw0MDY5NSw0MDY5Nyw0MDY5OSw0MDcwMCw0MDcw''@;'; put 'put ''MSw0MDcxMSw0MDcxMiwzMDM5MSw0MDcyNSw0MDczNyw0MDc0OCw0MDc2Niw0MDc3OCw0MDc4Niw0MDc4OCw0MDgwMyw0MDc5OSw0MDgwMCw0MDgwMSw0MDgwNiw0MDgwNyw0MDgxMiw0MDgxMCw0MDgyMyw0MDgxOCw0MDgyMiw0MDg1Myw0MDg2MCw0MDg2NCwyMjU3NSwyNzA3OSwzNjk1Mywy''@;'; put 'put ''OTc5NiwyMDk1NiwyOTA4MSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMzIzOTQsMzUxMDAsMzc3MDQsMzc1MTIsMzQwMTIsMjA0MjUsMjg4NTksMjYxNjEsMjY4MjQsMzc2MjUsMjYzNjMsMjQzODksMjAwMDgsMjAxOTMsMjAyMjAsMjAyMjQsMjAyMjcsMjAyODEsMjAzMTAsMjAzNzAsMjAzNjIsMjAzNzgsMjAzNzIs''@;'; put 'put ''MjA0MjksMjA1NDQsMjA1MTQsMjA0NzksMjA1MTAsMjA1NTAsMjA1OTIsMjA1NDYsMjA2MjgsMjA3MjQsMjA2OTYsMjA4MTAsMjA4MzYsMjA4OTMsMjA5MjYsMjA5NzIsMjEwMTMsMjExNDgsMjExNTgsMjExODQsMjEyMTEsMjEyNDgsMjEyNTUsMjEyODQsMjEzNjIsMjEzOTUsMjE0MjYsMjE0''@;'; put 'put ''NjksNjQwMTQsMjE2NjAsMjE2NDIsMjE2NzMsMjE3NTksMjE4OTQsMjIzNjEsMjIzNzMsMjI0NDQsMjI0NzIsMjI0NzEsNjQwMTUsNjQwMTYsMjI2ODYsMjI3MDYsMjI3OTUsMjI4NjcsMjI4NzUsMjI4NzcsMjI4ODMsMjI5NDgsMjI5NzAsMjMzODIsMjM0ODgsMjk5OTksMjM1MTIsMjM1MzIs''@;'; put 'put ''MjM1ODIsMjM3MTgsMjM3MzgsMjM3OTcsMjM4NDcsMjM4OTEsNjQwMTcsMjM4NzQsMjM5MTcsMjM5OTIsMjM5OTMsMjQwMTYsMjQzNTMsMjQzNzIsMjQ0MjMsMjQ1MDMsMjQ1NDIsMjQ2NjksMjQ3MDksMjQ3MTQsMjQ3OTgsMjQ3ODksMjQ4NjQsMjQ4MTgsMjQ4NDksMjQ4ODcsMjQ4ODAsMjQ5''@;'; put 'put ''ODQsMjUxMDcsMjUyNTQsMjU1ODksMjU2OTYsMjU3NTcsMjU4MDYsMjU5MzQsMjYxMTIsMjYxMzMsMjYxNzEsMjYxMjEsMjYxNTgsMjYxNDIsMjYxNDgsMjYyMTMsMjYxOTksMjYyMDEsNjQwMTgsMjYyMjcsMjYyNjUsMjYyNzIsMjYyOTAsMjYzMDMsMjYzNjIsMjYzODIsNjM3ODUsMjY0NzAs''@;'; put 'put ''MjY1NTUsMjY3MDYsMjY1NjAsMjY2MjUsMjY2OTIsMjY4MzEsNjQwMTksMjY5ODQsNjQwMjAsMjcwMzIsMjcxMDYsMjcxODQsMjcyNDMsMjcyMDYsMjcyNTEsMjcyNjIsMjczNjIsMjczNjQsMjc2MDYsMjc3MTEsMjc3NDAsMjc3ODIsMjc3NTksMjc4NjYsMjc5MDgsMjgwMzksMjgwMTUsMjgw''@;'; put 'put ''NTQsMjgwNzYsMjgxMTEsMjgxNTIsMjgxNDYsMjgxNTYsMjgyMTcsMjgyNTIsMjgxOTksMjgyMjAsMjgzNTEsMjg1NTIsMjg1OTcsMjg2NjEsMjg2NzcsMjg2NzksMjg3MTIsMjg4MDUsMjg4NDMsMjg5NDMsMjg5MzIsMjkwMjAsMjg5OTgsMjg5OTksNjQwMjEsMjkxMjEsMjkxODIsMjkzNjEs''@;'; put 'put ''MjkzNzQsMjk0NzYsNjQwMjIsMjk1NTksMjk2MjksMjk2NDEsMjk2NTQsMjk2NjcsMjk2NTAsMjk3MDMsMjk2ODUsMjk3MzQsMjk3MzgsMjk3MzcsMjk3NDIsMjk3OTQsMjk4MzMsMjk4NTUsMjk5NTMsMzAwNjMsMzAzMzgsMzAzNjQsMzAzNjYsMzAzNjMsMzAzNzQsNjQwMjMsMzA1MzQsMjEx''@;'; put 'put ''NjcsMzA3NTMsMzA3OTgsMzA4MjAsMzA4NDIsMzEwMjQsNjQwMjQsNjQwMjUsNjQwMjYsMzExMjQsNjQwMjcsMzExMzEsMzE0NDEsMzE0NjMsNjQwMjgsMzE0NjcsMzE2NDYsNjQwMjksMzIwNzIsMzIwOTIsMzIxODMsMzIxNjAsMzIyMTQsMzIzMzgsMzI1ODMsMzI2NzMsNjQwMzAsMzM1Mzcs''@;'; put 'put ''MzM2MzQsMzM2NjMsMzM3MzUsMzM3ODIsMzM4NjQsMzM5NzIsMzQxMzEsMzQxMzcsMzQxNTUsNjQwMzEsMzQyMjQsNjQwMzIsNjQwMzMsMzQ4MjMsMzUwNjEsMzUzNDYsMzUzODMsMzU0NDksMzU0OTUsMzU1MTgsMzU1NTEsNjQwMzQsMzU1NzQsMzU2NjcsMzU3MTEsMzYwODAsMzYwODQsMzYx''@;'; put 'put ''MTQsMzYyMTQsNjQwMzUsMzY1NTksNjQwMzYsNjQwMzcsMzY5NjcsMzcwODYsNjQwMzgsMzcxNDEsMzcxNTksMzczMzgsMzczMzUsMzczNDIsMzczNTcsMzczNTgsMzczNDgsMzczNDksMzczODIsMzczOTIsMzczODYsMzc0MzQsMzc0NDAsMzc0MzYsMzc0NTQsMzc0NjUsMzc0NTcsMzc0MzMs''@;'; put 'put ''Mzc0NzksMzc1NDMsMzc0OTUsMzc0OTYsMzc2MDcsMzc1OTEsMzc1OTMsMzc1ODQsNjQwMzksMzc1ODksMzc2MDAsMzc1ODcsMzc2NjksMzc2NjUsMzc2MjcsNjQwNDAsMzc2NjIsMzc2MzEsMzc2NjEsMzc2MzQsMzc3NDQsMzc3MTksMzc3OTYsMzc4MzAsMzc4NTQsMzc4ODAsMzc5MzcsMzc5''@;'; put 'put ''NTcsMzc5NjAsMzgyOTAsNjM5NjQsNjQwNDEsMzg1NTcsMzg1NzUsMzg3MDcsMzg3MTUsMzg3MjMsMzg3MzMsMzg3MzUsMzg3MzcsMzg3NDEsMzg5OTksMzkwMTMsNjQwNDIsNjQwNDMsMzkyMDcsNjQwNDQsMzkzMjYsMzk1MDIsMzk2NDEsMzk2NDQsMzk3OTcsMzk3OTQsMzk4MjMsMzk4NTcs''@;'; put 'put ''Mzk4NjcsMzk5MzYsNDAzMDQsNDAyOTksNjQwNDUsNDA0NzMsNDA2NTcsbnVsbCxudWxsLDg1NjAsODU2MSw4NTYyLDg1NjMsODU2NCw4NTY1LDg1NjYsODU2Nyw4NTY4LDg1NjksNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCw4NTYwLDg1NjEsODU2Miw4NTYzLDg1NjQsODU2NSw4NTY2LDg1NjcsODU2OCw4NTY5LDg1NDQsODU0NSw4NTQ2LDg1NDcsODU0OCw4NTQ5LDg1NTAsODU1MSw4NTUy''@;'; put 'put ''LDg1NTMsNjU1MDYsNjU1MDgsNjUyODcsNjUyODIsMTI4NDksODQ3MCw4NDgxLDg3NTcsMzIzOTQsMzUxMDAsMzc3MDQsMzc1MTIsMzQwMTIsMjA0MjUsMjg4NTksMjYxNjEsMjY4MjQsMzc2MjUsMjYzNjMsMjQzODksMjAwMDgsMjAxOTMsMjAyMjAsMjAyMjQsMjAyMjcsMjAyODEsMjAzMTAs''@;'; put 'put ''MjAzNzAsMjAzNjIsMjAzNzgsMjAzNzIsMjA0MjksMjA1NDQsMjA1MTQsMjA0NzksMjA1MTAsMjA1NTAsMjA1OTIsMjA1NDYsMjA2MjgsMjA3MjQsMjA2OTYsMjA4MTAsMjA4MzYsMjA4OTMsMjA5MjYsMjA5NzIsMjEwMTMsMjExNDgsMjExNTgsMjExODQsMjEyMTEsMjEyNDgsMjEyNTUsMjEy''@;'; put 'put ''ODQsMjEzNjIsMjEzOTUsMjE0MjYsMjE0NjksNjQwMTQsMjE2NjAsMjE2NDIsMjE2NzMsMjE3NTksMjE4OTQsMjIzNjEsMjIzNzMsMjI0NDQsMjI0NzIsMjI0NzEsNjQwMTUsNjQwMTYsMjI2ODYsMjI3MDYsMjI3OTUsMjI4NjcsMjI4NzUsMjI4NzcsMjI4ODMsMjI5NDgsMjI5NzAsMjMzODIs''@;'; put 'put ''MjM0ODgsMjk5OTksMjM1MTIsMjM1MzIsMjM1ODIsMjM3MTgsMjM3MzgsMjM3OTcsMjM4NDcsMjM4OTEsNjQwMTcsMjM4NzQsMjM5MTcsMjM5OTIsMjM5OTMsMjQwMTYsMjQzNTMsMjQzNzIsMjQ0MjMsMjQ1MDMsMjQ1NDIsMjQ2NjksMjQ3MDksMjQ3MTQsMjQ3OTgsMjQ3ODksMjQ4NjQsMjQ4''@;'; put 'put ''MTgsMjQ4NDksMjQ4ODcsMjQ4ODAsMjQ5ODQsMjUxMDcsMjUyNTQsMjU1ODksMjU2OTYsMjU3NTcsMjU4MDYsMjU5MzQsMjYxMTIsMjYxMzMsMjYxNzEsMjYxMjEsMjYxNTgsMjYxNDIsMjYxNDgsMjYyMTMsMjYxOTksMjYyMDEsNjQwMTgsMjYyMjcsMjYyNjUsMjYyNzIsMjYyOTAsMjYzMDMs''@;'; put 'put ''MjYzNjIsMjYzODIsNjM3ODUsMjY0NzAsMjY1NTUsMjY3MDYsMjY1NjAsMjY2MjUsMjY2OTIsMjY4MzEsNjQwMTksMjY5ODQsNjQwMjAsMjcwMzIsMjcxMDYsMjcxODQsMjcyNDMsMjcyMDYsMjcyNTEsMjcyNjIsMjczNjIsMjczNjQsMjc2MDYsMjc3MTEsMjc3NDAsMjc3ODIsMjc3NTksMjc4''@;'; put 'put ''NjYsMjc5MDgsMjgwMzksMjgwMTUsMjgwNTQsMjgwNzYsMjgxMTEsMjgxNTIsMjgxNDYsMjgxNTYsMjgyMTcsMjgyNTIsMjgxOTksMjgyMjAsMjgzNTEsMjg1NTIsMjg1OTcsMjg2NjEsMjg2NzcsMjg2NzksMjg3MTIsMjg4MDUsMjg4NDMsMjg5NDMsMjg5MzIsMjkwMjAsMjg5OTgsMjg5OTks''@;'; put 'put ''NjQwMjEsMjkxMjEsMjkxODIsMjkzNjEsMjkzNzQsMjk0NzYsNjQwMjIsMjk1NTksMjk2MjksMjk2NDEsMjk2NTQsMjk2NjcsMjk2NTAsMjk3MDMsMjk2ODUsMjk3MzQsMjk3MzgsMjk3MzcsMjk3NDIsMjk3OTQsMjk4MzMsMjk4NTUsMjk5NTMsMzAwNjMsMzAzMzgsMzAzNjQsMzAzNjYsMzAz''@;'; put 'put ''NjMsMzAzNzQsNjQwMjMsMzA1MzQsMjExNjcsMzA3NTMsMzA3OTgsMzA4MjAsMzA4NDIsMzEwMjQsNjQwMjQsNjQwMjUsNjQwMjYsMzExMjQsNjQwMjcsMzExMzEsMzE0NDEsMzE0NjMsNjQwMjgsMzE0NjcsMzE2NDYsNjQwMjksMzIwNzIsMzIwOTIsMzIxODMsMzIxNjAsMzIyMTQsMzIzMzgs''@;'; put 'put ''MzI1ODMsMzI2NzMsNjQwMzAsMzM1MzcsMzM2MzQsMzM2NjMsMzM3MzUsMzM3ODIsMzM4NjQsMzM5NzIsMzQxMzEsMzQxMzcsMzQxNTUsNjQwMzEsMzQyMjQsNjQwMzIsNjQwMzMsMzQ4MjMsMzUwNjEsMzUzNDYsMzUzODMsMzU0NDksMzU0OTUsMzU1MTgsMzU1NTEsNjQwMzQsMzU1NzQsMzU2''@;'; put 'put ''NjcsMzU3MTEsMzYwODAsMzYwODQsMzYxMTQsMzYyMTQsNjQwMzUsMzY1NTksNjQwMzYsNjQwMzcsMzY5NjcsMzcwODYsNjQwMzgsMzcxNDEsMzcxNTksMzczMzgsMzczMzUsMzczNDIsMzczNTcsMzczNTgsMzczNDgsMzczNDksMzczODIsMzczOTIsMzczODYsMzc0MzQsMzc0NDAsMzc0MzYs''@;'; put 'put ''Mzc0NTQsMzc0NjUsMzc0NTcsMzc0MzMsMzc0NzksMzc1NDMsMzc0OTUsMzc0OTYsMzc2MDcsMzc1OTEsMzc1OTMsMzc1ODQsNjQwMzksMzc1ODksMzc2MDAsMzc1ODcsMzc2NjksMzc2NjUsMzc2MjcsNjQwNDAsMzc2NjIsMzc2MzEsMzc2NjEsMzc2MzQsMzc3NDQsMzc3MTksMzc3OTYsMzc4''@;'; put 'put ''MzAsMzc4NTQsMzc4ODAsMzc5MzcsMzc5NTcsMzc5NjAsMzgyOTAsNjM5NjQsNjQwNDEsMzg1NTcsMzg1NzUsMzg3MDcsMzg3MTUsMzg3MjMsMzg3MzMsMzg3MzUsMzg3MzcsMzg3NDEsMzg5OTksMzkwMTMsNjQwNDIsNjQwNDMsMzkyMDcsNjQwNDQsMzkzMjYsMzk1MDIsMzk2NDEsMzk2NDQs''@;'; put 'put ''Mzk3OTcsMzk3OTQsMzk4MjMsMzk4NTcsMzk4NjcsMzk5MzYsNDAzMDQsNDAyOTksNjQwNDUsNDA0NzMsNDA2NTcsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSxqaXMwMjEyOltudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCw3MjgsNzExLDE4NCw3MjksNzMzLDE3NSw3MzEsNzMwLDY1Mzc0LDkwMCw5MDEsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE2MSwxNjYsMTkxLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxODYsMTcwLDE2OSwxNzQsODQ4MiwxNjQsODQ3MCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsOTAyLDkwNCw5MDUsOTA2LDkzOCxu''@;'; put 'put ''dWxsLDkwOCxudWxsLDkxMCw5MzksbnVsbCw5MTEsbnVsbCxudWxsLG51bGwsbnVsbCw5NDAsOTQxLDk0Miw5NDMsOTcwLDkxMiw5NzIsOTYyLDk3Myw5NzEsOTQ0LDk3NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTAyNiwxMDI3LDEwMjgsMTAyOSwxMDMwLDEwMzEsMTAzMiwxMDMzLDEwMzQsMTAzNSwxMDM2LDEw''@;'; put 'put ''MzgsMTAzOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsMTEwNiwxMTA3LDExMDgsMTEwOSwxMTEwLDExMTEsMTExMiwxMTEzLDExMTQsMTExNSwxMTE2LDExMTgsMTExOSxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51''@;'; put 'put ''bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE5OCwyNzIsbnVsbCwyOTQsbnVsbCwzMDYsbnVsbCwzMjEsMzE5LG51bGwsMzMwLDIxNiwzMzgsbnVsbCwzNTgsMjIyLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjMwLDI3MywyNDAsMjk1LDMwNSwzMDcsMzEyLDMyMiwzMjAsMzI5LDMzMSwyNDgsMzM5LDIyMywzNTksMjU0LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxs''@;'; put 'put ''LG51bGwsMTkzLDE5MiwxOTYsMTk0LDI1OCw0NjEsMjU2LDI2MCwxOTcsMTk1LDI2MiwyNjQsMjY4LDE5OSwyNjYsMjcwLDIwMSwyMDAsMjAzLDIwMiwyODIsMjc4LDI3NCwyODAsbnVsbCwyODQsMjg2LDI5MCwyODgsMjkyLDIwNSwyMDQsMjA3LDIwNiw0NjMsMzA0LDI5OCwzMDIsMjk2LDMw''@;'; put 'put ''OCwzMTAsMzEzLDMxNywzMTUsMzIzLDMyNywzMjUsMjA5LDIxMSwyMTAsMjE0LDIxMiw0NjUsMzM2LDMzMiwyMTMsMzQwLDM0NCwzNDIsMzQ2LDM0OCwzNTIsMzUwLDM1NiwzNTQsMjE4LDIxNywyMjAsMjE5LDM2NCw0NjcsMzY4LDM2MiwzNzAsMzY2LDM2MCw0NzEsNDc1LDQ3Myw0NjksMzcy''@;'; put 'put ''LDIyMSwzNzYsMzc0LDM3NywzODEsMzc5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMjI1LDIyNCwyMjgsMjI2LDI1OSw0NjIsMjU3LDI2MSwyMjksMjI3LDI2MywyNjUsMjY5LDIzMSwyNjcsMjcxLDIzMywyMzIsMjM1LDIzNCwyODMsMjc5LDI3NSwyODEsNTAxLDI4NSwy''@;'; put 'put ''ODcsbnVsbCwyODksMjkzLDIzNywyMzYsMjM5LDIzOCw0NjQsbnVsbCwyOTksMzAzLDI5NywzMDksMzExLDMxNCwzMTgsMzE2LDMyNCwzMjgsMzI2LDI0MSwyNDMsMjQyLDI0NiwyNDQsNDY2LDMzNywzMzMsMjQ1LDM0MSwzNDUsMzQzLDM0NywzNDksMzUzLDM1MSwzNTcsMzU1LDI1MCwyNDks''@;'; put 'put ''MjUyLDI1MSwzNjUsNDY4LDM2OSwzNjMsMzcxLDM2NywzNjEsNDcyLDQ3Niw0NzQsNDcwLDM3MywyNTMsMjU1LDM3NSwzNzgsMzgyLDM4MCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsMTk5NzAsMTk5NzIsMTk5NzMsMTk5ODAsMTk5ODYsMTk5OTksMjAwMDMsMjAwMDQsMjAwMDgsMjAwMTEsMjAwMTQsMjAwMTUsMjAwMTYsMjAwMjEsMjAwMzIsMjAwMzMsMjAwMzYsMjAwMzksMjAwNDksMjAwNTgsMjAwNjAsMjAwNjcsMjAwNzIsMjAwNzMsMjAwODQs''@;'; put 'put ''MjAwODUsMjAwODksMjAwOTUsMjAxMDksMjAxMTgsMjAxMTksMjAxMjUsMjAxNDMsMjAxNTMsMjAxNjMsMjAxNzYsMjAxODYsMjAxODcsMjAxOTIsMjAxOTMsMjAxOTQsMjAyMDAsMjAyMDcsMjAyMDksMjAyMTEsMjAyMTMsMjAyMjEsMjAyMjIsMjAyMjMsMjAyMjQsMjAyMjYsMjAyMjcsMjAy''@;'; put 'put ''MzIsMjAyMzUsMjAyMzYsMjAyNDIsMjAyNDUsMjAyNDYsMjAyNDcsMjAyNDksMjAyNzAsMjAyNzMsMjAzMjAsMjAyNzUsMjAyNzcsMjAyNzksMjAyODEsMjAyODMsMjAyODYsMjAyODgsMjAyOTAsMjAyOTYsMjAyOTcsMjAyOTksMjAzMDAsMjAzMDYsMjAzMDgsMjAzMTAsMjAzMTIsMjAzMTks''@;'; put 'put ''MjAzMjMsMjAzMzAsMjAzMzIsMjAzMzQsMjAzMzcsMjAzNDMsMjAzNDQsMjAzNDUsMjAzNDYsMjAzNDksMjAzNTAsMjAzNTMsMjAzNTQsMjAzNTYsMjAzNTcsMjAzNjEsMjAzNjIsMjAzNjQsMjAzNjYsMjAzNjgsMjAzNzAsMjAzNzEsMjAzNzIsMjAzNzUsMjAzNzcsMjAzNzgsMjAzODIsMjAz''@;'; put 'put ''ODMsMjA0MDIsMjA0MDcsMjA0MDksMjA0MTEsMjA0MTIsMjA0MTMsMjA0MTQsMjA0MTYsMjA0MTcsMjA0MjEsMjA0MjIsMjA0MjQsMjA0MjUsMjA0MjcsMjA0MjgsMjA0MjksMjA0MzEsMjA0MzQsMjA0NDQsMjA0NDgsMjA0NTAsMjA0NjQsMjA0NjYsMjA0NzYsMjA0NzcsMjA0NzksMjA0ODAs''@;'; put 'put ''MjA0ODEsMjA0ODQsMjA0ODcsMjA0OTAsMjA0OTIsMjA0OTQsMjA0OTYsMjA0OTksMjA1MDMsMjA1MDQsMjA1MDcsMjA1MDgsMjA1MDksMjA1MTAsMjA1MTQsMjA1MTksMjA1MjYsMjA1MjgsMjA1MzAsMjA1MzEsMjA1MzMsMjA1NDQsMjA1NDUsMjA1NDYsMjA1NDksMjA1NTAsMjA1NTQsMjA1''@;'; put 'put ''NTYsMjA1NTgsMjA1NjEsMjA1NjIsMjA1NjMsMjA1NjcsMjA1NjksMjA1NzUsMjA1NzYsMjA1NzgsMjA1NzksMjA1ODIsMjA1ODMsMjA1ODYsMjA1ODksMjA1OTIsMjA1OTMsMjA1MzksMjA2MDksMjA2MTEsMjA2MTIsMjA2MTQsMjA2MTgsMjA2MjIsMjA2MjMsMjA2MjQsMjA2MjYsMjA2Mjcs''@;'; put 'put ''MjA2MjgsMjA2MzAsMjA2MzUsMjA2MzYsMjA2MzgsMjA2MzksMjA2NDAsMjA2NDEsMjA2NDIsMjA2NTAsMjA2NTUsMjA2NTYsMjA2NjUsMjA2NjYsMjA2NjksMjA2NzIsMjA2NzUsMjA2NzYsMjA2NzksMjA2ODQsMjA2ODYsMjA2ODgsMjA2OTEsMjA2OTIsMjA2OTYsMjA3MDAsMjA3MDEsMjA3''@;'; put 'put ''MDMsMjA3MDYsMjA3MDgsMjA3MTAsMjA3MTIsMjA3MTMsMjA3MTksMjA3MjEsMjA3MjYsMjA3MzAsMjA3MzQsMjA3MzksMjA3NDIsMjA3NDMsMjA3NDQsMjA3NDcsMjA3NDgsMjA3NDksMjA3NTAsMjA3MjIsMjA3NTIsMjA3NTksMjA3NjEsMjA3NjMsMjA3NjQsMjA3NjUsMjA3NjYsMjA3NzEs''@;'; put 'put ''MjA3NzUsMjA3NzYsMjA3ODAsMjA3ODEsMjA3ODMsMjA3ODUsMjA3ODcsMjA3ODgsMjA3ODksMjA3OTIsMjA3OTMsMjA4MDIsMjA4MTAsMjA4MTUsMjA4MTksMjA4MjEsMjA4MjMsMjA4MjQsMjA4MzEsMjA4MzYsMjA4MzgsMjA4NjIsMjA4NjcsMjA4NjgsMjA4NzUsMjA4NzgsMjA4ODgsMjA4''@;'; put 'put ''OTMsMjA4OTcsMjA4OTksMjA5MDksMjA5MjAsMjA5MjIsMjA5MjQsMjA5MjYsMjA5MjcsMjA5MzAsMjA5MzYsMjA5NDMsMjA5NDUsMjA5NDYsMjA5NDcsMjA5NDksMjA5NTIsMjA5NTgsMjA5NjIsMjA5NjUsMjA5NzQsMjA5NzgsMjA5NzksMjA5ODAsMjA5ODMsMjA5OTMsMjA5OTQsMjA5OTcs''@;'; put 'put ''MjEwMTAsMjEwMTEsMjEwMTMsMjEwMTQsMjEwMTYsMjEwMjYsMjEwMzIsMjEwNDEsMjEwNDIsMjEwNDUsMjEwNTIsMjEwNjEsMjEwNjUsMjEwNzcsMjEwNzksMjEwODAsMjEwODIsMjEwODQsMjEwODcsMjEwODgsMjEwODksMjEwOTQsMjExMDIsMjExMTEsMjExMTIsMjExMTMsMjExMjAsMjEx''@;'; put 'put ''MjIsMjExMjUsMjExMzAsMjExMzIsMjExMzksMjExNDEsMjExNDIsMjExNDMsMjExNDQsMjExNDYsMjExNDgsMjExNTYsMjExNTcsMjExNTgsMjExNTksMjExNjcsMjExNjgsMjExNzQsMjExNzUsMjExNzYsMjExNzgsMjExNzksMjExODEsMjExODQsMjExODgsMjExOTAsMjExOTIsMjExOTYs''@;'; put 'put ''MjExOTksMjEyMDEsMjEyMDQsMjEyMDYsMjEyMTEsMjEyMTIsMjEyMTcsMjEyMjEsMjEyMjQsMjEyMjUsMjEyMjYsMjEyMjgsMjEyMzIsMjEyMzMsMjEyMzYsMjEyMzgsMjEyMzksMjEyNDgsMjEyNTEsMjEyNTgsMjEyNTksMjEyNjAsMjEyNjUsMjEyNjcsMjEyNzIsMjEyNzUsMjEyNzYsMjEy''@;'; put 'put ''NzgsMjEyNzksMjEyODUsMjEyODcsMjEyODgsMjEyODksMjEyOTEsMjEyOTIsMjEyOTMsMjEyOTYsMjEyOTgsMjEzMDEsMjEzMDgsMjEzMDksMjEzMTAsMjEzMTQsMjEzMjQsMjEzMjMsMjEzMzcsMjEzMzksMjEzNDUsMjEzNDcsMjEzNDksMjEzNTYsMjEzNTcsMjEzNjIsMjEzNjksMjEzNzQs''@;'; put 'put ''MjEzNzksMjEzODMsMjEzODQsMjEzOTAsMjEzOTUsMjEzOTYsMjE0MDEsMjE0MDUsMjE0MDksMjE0MTIsMjE0MTgsMjE0MTksMjE0MjMsMjE0MjYsMjE0MjgsMjE0MjksMjE0MzEsMjE0MzIsMjE0MzQsMjE0MzcsMjE0NDAsMjE0NDUsMjE0NTUsMjE0NTgsMjE0NTksMjE0NjEsMjE0NjYsMjE0''@;'; put 'put ''NjksMjE0NzAsMjE0NzIsMjE0NzgsMjE0NzksMjE0OTMsMjE1MDYsMjE1MjMsMjE1MzAsMjE1MzcsMjE1NDMsMjE1NDQsMjE1NDYsMjE1NTEsMjE1NTMsMjE1NTYsMjE1NTcsMjE1NzEsMjE1NzIsMjE1NzUsMjE1ODEsMjE1ODMsMjE1OTgsMjE2MDIsMjE2MDQsMjE2MDYsMjE2MDcsMjE2MDks''@;'; put 'put ''MjE2MTEsMjE2MTMsMjE2MTQsMjE2MjAsMjE2MzEsMjE2MzMsMjE2MzUsMjE2MzcsMjE2NDAsMjE2NDEsMjE2NDUsMjE2NDksMjE2NTMsMjE2NTQsMjE2NjAsMjE2NjMsMjE2NjUsMjE2NzAsMjE2NzEsMjE2NzMsMjE2NzQsMjE2NzcsMjE2NzgsMjE2ODEsMjE2ODcsMjE2ODksMjE2OTAsMjE2''@;'; put 'put ''OTEsMjE2OTUsMjE3MDIsMjE3MDYsMjE3MDksMjE3MTAsMjE3MjgsMjE3MzgsMjE3NDAsMjE3NDMsMjE3NTAsMjE3NTYsMjE3NTgsMjE3NTksMjE3NjAsMjE3NjEsMjE3NjUsMjE3NjgsMjE3NjksMjE3NzIsMjE3NzMsMjE3NzQsMjE3ODEsMjE4MDIsMjE4MDMsMjE4MTAsMjE4MTMsMjE4MTQs''@;'; put 'put ''MjE4MTksMjE4MjAsMjE4MjEsMjE4MjUsMjE4MzEsMjE4MzMsMjE4MzQsMjE4MzcsMjE4NDAsMjE4NDEsMjE4NDgsMjE4NTAsMjE4NTEsMjE4NTQsMjE4NTYsMjE4NTcsMjE4NjAsMjE4NjIsMjE4ODcsMjE4ODksMjE4OTAsMjE4OTQsMjE4OTYsMjE5MDIsMjE5MDMsMjE5MDUsMjE5MDYsMjE5''@;'; put 'put ''MDcsMjE5MDgsMjE5MTEsMjE5MjMsMjE5MjQsMjE5MzMsMjE5MzgsMjE5NTEsMjE5NTMsMjE5NTUsMjE5NTgsMjE5NjEsMjE5NjMsMjE5NjQsMjE5NjYsMjE5NjksMjE5NzAsMjE5NzEsMjE5NzUsMjE5NzYsMjE5NzksMjE5ODIsMjE5ODYsMjE5OTMsMjIwMDYsMjIwMTUsMjIwMjEsMjIwMjQs''@;'; put 'put ''MjIwMjYsMjIwMjksMjIwMzAsMjIwMzEsMjIwMzIsMjIwMzMsMjIwMzQsMjIwNDEsMjIwNjAsMjIwNjQsMjIwNjcsMjIwNjksMjIwNzEsMjIwNzMsMjIwNzUsMjIwNzYsMjIwNzcsMjIwNzksMjIwODAsMjIwODEsMjIwODMsMjIwODQsMjIwODYsMjIwODksMjIwOTEsMjIwOTMsMjIwOTUsMjIx''@;'; put 'put ''MDAsMjIxMTAsMjIxMTIsMjIxMTMsMjIxMTQsMjIxMTUsMjIxMTgsMjIxMjEsMjIxMjUsMjIxMjcsMjIxMjksMjIxMzAsMjIxMzMsMjIxNDgsMjIxNDksMjIxNTIsMjIxNTUsMjIxNTYsMjIxNjUsMjIxNjksMjIxNzAsMjIxNzMsMjIxNzQsMjIxNzUsMjIxODIsMjIxODMsMjIxODQsMjIxODUs''@;'; put 'put ''MjIxODcsMjIxODgsMjIxODksMjIxOTMsMjIxOTUsMjIxOTksMjIyMDYsMjIyMTMsMjIyMTcsMjIyMTgsMjIyMTksMjIyMjMsMjIyMjQsMjIyMjAsMjIyMjEsMjIyMzMsMjIyMzYsMjIyMzcsMjIyMzksMjIyNDEsMjIyNDQsMjIyNDUsMjIyNDYsMjIyNDcsMjIyNDgsMjIyNTcsMjIyNTEsMjIy''@;'; put 'put ''NTMsMjIyNjIsMjIyNjMsMjIyNzMsMjIyNzQsMjIyNzksMjIyODIsMjIyODQsMjIyODksMjIyOTMsMjIyOTgsMjIyOTksMjIzMDEsMjIzMDQsMjIzMDYsMjIzMDcsMjIzMDgsMjIzMDksMjIzMTMsMjIzMTQsMjIzMTYsMjIzMTgsMjIzMTksMjIzMjMsMjIzMjQsMjIzMzMsMjIzMzQsMjIzMzUs''@;'; put 'put ''MjIzNDEsMjIzNDIsMjIzNDgsMjIzNDksMjIzNTQsMjIzNzAsMjIzNzMsMjIzNzUsMjIzNzYsMjIzNzksMjIzODEsMjIzODIsMjIzODMsMjIzODQsMjIzODUsMjIzODcsMjIzODgsMjIzODksMjIzOTEsMjIzOTMsMjIzOTQsMjIzOTUsMjIzOTYsMjIzOTgsMjI0MDEsMjI0MDMsMjI0MTIsMjI0''@;'; put 'put ''MjAsMjI0MjMsMjI0MjUsMjI0MjYsMjI0MjgsMjI0MjksMjI0MzAsMjI0MzEsMjI0MzMsMjI0MjEsMjI0MzksMjI0NDAsMjI0NDEsMjI0NDQsMjI0NTYsMjI0NjEsMjI0NzEsMjI0NzIsMjI0NzYsMjI0NzksMjI0ODUsMjI0OTMsMjI0OTQsMjI1MDAsMjI1MDIsMjI1MDMsMjI1MDUsMjI1MDks''@;'; put 'put ''MjI1MTIsMjI1MTcsMjI1MTgsMjI1MjAsMjI1MjUsMjI1MjYsMjI1MjcsMjI1MzEsMjI1MzIsMjI1MzYsMjI1MzcsMjI0OTcsMjI1NDAsMjI1NDEsMjI1NTUsMjI1NTgsMjI1NTksMjI1NjAsMjI1NjYsMjI1NjcsMjI1NzMsMjI1NzgsMjI1ODUsMjI1OTEsMjI2MDEsMjI2MDQsMjI2MDUsMjI2''@;'; put 'put ''MDcsMjI2MDgsMjI2MTMsMjI2MjMsMjI2MjUsMjI2MjgsMjI2MzEsMjI2MzIsMjI2NDgsMjI2NTIsMjI2NTUsMjI2NTYsMjI2NTcsMjI2NjMsMjI2NjQsMjI2NjUsMjI2NjYsMjI2NjgsMjI2NjksMjI2NzEsMjI2NzIsMjI2NzYsMjI2NzgsMjI2ODUsMjI2ODgsMjI2ODksMjI2OTAsMjI2OTQs''@;'; put 'put ''MjI2OTcsMjI3MDUsMjI3MDYsMjI3MjQsMjI3MTYsMjI3MjIsMjI3MjgsMjI3MzMsMjI3MzQsMjI3MzYsMjI3MzgsMjI3NDAsMjI3NDIsMjI3NDYsMjI3NDksMjI3NTMsMjI3NTQsMjI3NjEsMjI3NzEsMjI3ODksMjI3OTAsMjI3OTUsMjI3OTYsMjI4MDIsMjI4MDMsMjI4MDQsMzQzNjksMjI4''@;'; put 'put ''MTMsMjI4MTcsMjI4MTksMjI4MjAsMjI4MjQsMjI4MzEsMjI4MzIsMjI4MzUsMjI4MzcsMjI4MzgsMjI4NDcsMjI4NTEsMjI4NTQsMjI4NjYsMjI4NjcsMjI4NzMsMjI4NzUsMjI4NzcsMjI4NzgsMjI4NzksMjI4ODEsMjI4ODMsMjI4OTEsMjI4OTMsMjI4OTUsMjI4OTgsMjI5MDEsMjI5MDIs''@;'; put 'put ''MjI5MDUsMjI5MDcsMjI5MDgsMjI5MjMsMjI5MjQsMjI5MjYsMjI5MzAsMjI5MzMsMjI5MzUsMjI5NDMsMjI5NDgsMjI5NTEsMjI5NTcsMjI5NTgsMjI5NTksMjI5NjAsMjI5NjMsMjI5NjcsMjI5NzAsMjI5NzIsMjI5NzcsMjI5NzksMjI5ODAsMjI5ODQsMjI5ODYsMjI5ODksMjI5OTQsMjMw''@;'; put 'put ''MDUsMjMwMDYsMjMwMDcsMjMwMTEsMjMwMTIsMjMwMTUsMjMwMjIsMjMwMjMsMjMwMjUsMjMwMjYsMjMwMjgsMjMwMzEsMjMwNDAsMjMwNDQsMjMwNTIsMjMwNTMsMjMwNTQsMjMwNTgsMjMwNTksMjMwNzAsMjMwNzUsMjMwNzYsMjMwNzksMjMwODAsMjMwODIsMjMwODUsMjMwODgsMjMxMDgs''@;'; put 'put ''MjMxMDksMjMxMTEsMjMxMTIsMjMxMTYsMjMxMjAsMjMxMjUsMjMxMzQsMjMxMzksMjMxNDEsMjMxNDMsMjMxNDksMjMxNTksMjMxNjIsMjMxNjMsMjMxNjYsMjMxNzksMjMxODQsMjMxODcsMjMxOTAsMjMxOTMsMjMxOTYsMjMxOTgsMjMxOTksMjMyMDAsMjMyMDIsMjMyMDcsMjMyMTIsMjMy''@;'; put 'put ''MTcsMjMyMTgsMjMyMTksMjMyMjEsMjMyMjQsMjMyMjYsMjMyMjcsMjMyMzEsMjMyMzYsMjMyMzgsMjMyNDAsMjMyNDcsMjMyNTgsMjMyNjAsMjMyNjQsMjMyNjksMjMyNzQsMjMyNzgsMjMyODUsMjMyODYsMjMyOTMsMjMyOTYsMjMyOTcsMjMzMDQsMjMzMTksMjMzNDgsMjMzMjEsMjMzMjMs''@;'; put 'put ''MjMzMjUsMjMzMjksMjMzMzMsMjMzNDEsMjMzNTIsMjMzNjEsMjMzNzEsMjMzNzIsMjMzNzgsMjMzODIsMjMzOTAsMjM0MDAsMjM0MDYsMjM0MDcsMjM0MjAsMjM0MjEsMjM0MjIsMjM0MjMsMjM0MjUsMjM0MjgsMjM0MzAsMjM0MzQsMjM0MzgsMjM0NDAsMjM0NDEsMjM0NDMsMjM0NDQsMjM0''@;'; put 'put ''NDYsMjM0NjQsMjM0NjUsMjM0NjgsMjM0NjksMjM0NzEsMjM0NzMsMjM0NzQsMjM0NzksMjM0ODIsMjM0ODQsMjM0ODgsMjM0ODksMjM1MDEsMjM1MDMsMjM1MTAsMjM1MTEsMjM1MTIsMjM1MTMsMjM1MTQsMjM1MjAsMjM1MzUsMjM1MzcsMjM1NDAsMjM1NDksMjM1NjQsMjM1NzUsMjM1ODIs''@;'; put 'put ''MjM1ODMsMjM1ODcsMjM1OTAsMjM1OTMsMjM1OTUsMjM1OTYsMjM1OTgsMjM2MDAsMjM2MDIsMjM2MDUsMjM2MDYsMjM2NDEsMjM2NDIsMjM2NDQsMjM2NTAsMjM2NTEsMjM2NTUsMjM2NTYsMjM2NTcsMjM2NjEsMjM2NjQsMjM2NjgsMjM2NjksMjM2NzQsMjM2NzUsMjM2NzYsMjM2NzcsMjM2''@;'; put 'put ''ODcsMjM2ODgsMjM2OTAsMjM2OTUsMjM2OTgsMjM3MDksMjM3MTEsMjM3MTIsMjM3MTQsMjM3MTUsMjM3MTgsMjM3MjIsMjM3MzAsMjM3MzIsMjM3MzMsMjM3MzgsMjM3NTMsMjM3NTUsMjM3NjIsMjM3NzMsMjM3NjcsMjM3OTAsMjM3OTMsMjM3OTQsMjM3OTYsMjM4MDksMjM4MTQsMjM4MjEs''@;'; put 'put ''MjM4MjYsMjM4NTEsMjM4NDMsMjM4NDQsMjM4NDYsMjM4NDcsMjM4NTcsMjM4NjAsMjM4NjUsMjM4NjksMjM4NzEsMjM4NzQsMjM4NzUsMjM4NzgsMjM4ODAsMjM4OTMsMjM4ODksMjM4OTcsMjM4ODIsMjM5MDMsMjM5MDQsMjM5MDUsMjM5MDYsMjM5MDgsMjM5MTQsMjM5MTcsMjM5MjAsMjM5''@;'; put 'put ''MjksMjM5MzAsMjM5MzQsMjM5MzUsMjM5MzcsMjM5MzksMjM5NDQsMjM5NDYsMjM5NTQsMjM5NTUsMjM5NTYsMjM5NTcsMjM5NjEsMjM5NjMsMjM5NjcsMjM5NjgsMjM5NzUsMjM5NzksMjM5ODQsMjM5ODgsMjM5OTIsMjM5OTMsMjQwMDMsMjQwMDcsMjQwMTEsMjQwMTYsMjQwMTQsMjQwMjQs''@;'; put 'put ''MjQwMjUsMjQwMzIsMjQwMzYsMjQwNDEsMjQwNTYsMjQwNTcsMjQwNjQsMjQwNzEsMjQwNzcsMjQwODIsMjQwODQsMjQwODUsMjQwODgsMjQwOTUsMjQwOTYsMjQxMTAsMjQxMDQsMjQxMTQsMjQxMTcsMjQxMjYsMjQxMzksMjQxNDQsMjQxMzcsMjQxNDUsMjQxNTAsMjQxNTIsMjQxNTUsMjQx''@;'; put 'put ''NTYsMjQxNTgsMjQxNjgsMjQxNzAsMjQxNzEsMjQxNzIsMjQxNzMsMjQxNzQsMjQxNzYsMjQxOTIsMjQyMDMsMjQyMDYsMjQyMjYsMjQyMjgsMjQyMjksMjQyMzIsMjQyMzQsMjQyMzYsMjQyNDEsMjQyNDMsMjQyNTMsMjQyNTQsMjQyNTUsMjQyNjIsMjQyNjgsMjQyNjcsMjQyNzAsMjQyNzMs''@;'; put 'put ''MjQyNzQsMjQyNzYsMjQyNzcsMjQyODQsMjQyODYsMjQyOTMsMjQyOTksMjQzMjIsMjQzMjYsMjQzMjcsMjQzMjgsMjQzMzQsMjQzNDUsMjQzNDgsMjQzNDksMjQzNTMsMjQzNTQsMjQzNTUsMjQzNTYsMjQzNjAsMjQzNjMsMjQzNjQsMjQzNjYsMjQzNjgsMjQzNzIsMjQzNzQsMjQzNzksMjQz''@;'; put 'put ''ODEsMjQzODMsMjQzODQsMjQzODgsMjQzODksMjQzOTEsMjQzOTcsMjQ0MDAsMjQ0MDQsMjQ0MDgsMjQ0MTEsMjQ0MTYsMjQ0MTksMjQ0MjAsMjQ0MjMsMjQ0MzEsMjQ0MzQsMjQ0MzYsMjQ0MzcsMjQ0NDAsMjQ0NDIsMjQ0NDUsMjQ0NDYsMjQ0NTcsMjQ0NjEsMjQ0NjMsMjQ0NzAsMjQ0NzYs''@;'; put 'put ''MjQ0NzcsMjQ0ODIsMjQ0ODcsMjQ0OTEsMjQ0ODQsMjQ0OTIsMjQ0OTUsMjQ0OTYsMjQ0OTcsMjQ1MDQsMjQ1MTYsMjQ1MTksMjQ1MjAsMjQ1MjEsMjQ1MjMsMjQ1MjgsMjQ1MjksMjQ1MzAsMjQ1MzEsMjQ1MzIsMjQ1NDIsMjQ1NDUsMjQ1NDYsMjQ1NTIsMjQ1NTMsMjQ1NTQsMjQ1NTYsMjQ1''@;'; put 'put ''NTcsMjQ1NTgsMjQ1NTksMjQ1NjIsMjQ1NjMsMjQ1NjYsMjQ1NzAsMjQ1NzIsMjQ1ODMsMjQ1ODYsMjQ1ODksMjQ1OTUsMjQ1OTYsMjQ1OTksMjQ2MDAsMjQ2MDIsMjQ2MDcsMjQ2MTIsMjQ2MjEsMjQ2MjcsMjQ2MjksMjQ2NDAsMjQ2NDcsMjQ2NDgsMjQ2NDksMjQ2NTIsMjQ2NTcsMjQ2NjAs''@;'; put 'put ''MjQ2NjIsMjQ2NjMsMjQ2NjksMjQ2NzMsMjQ2NzksMjQ2ODksMjQ3MDIsMjQ3MDMsMjQ3MDYsMjQ3MTAsMjQ3MTIsMjQ3MTQsMjQ3MTgsMjQ3MjEsMjQ3MjMsMjQ3MjUsMjQ3MjgsMjQ3MzMsMjQ3MzQsMjQ3MzgsMjQ3NDAsMjQ3NDEsMjQ3NDQsMjQ3NTIsMjQ3NTMsMjQ3NTksMjQ3NjMsMjQ3''@;'; put 'put ''NjYsMjQ3NzAsMjQ3NzIsMjQ3NzYsMjQ3NzcsMjQ3NzgsMjQ3NzksMjQ3ODIsMjQ3ODMsMjQ3ODgsMjQ3ODksMjQ3OTMsMjQ3OTUsMjQ3OTcsMjQ3OTgsMjQ4MDIsMjQ4MDUsMjQ4MTgsMjQ4MjEsMjQ4MjQsMjQ4MjgsMjQ4MjksMjQ4MzQsMjQ4MzksMjQ4NDIsMjQ4NDQsMjQ4NDgsMjQ4NDks''@;'; put 'put ''MjQ4NTAsMjQ4NTEsMjQ4NTIsMjQ4NTQsMjQ4NTUsMjQ4NTcsMjQ4NjAsMjQ4NjIsMjQ4NjYsMjQ4NzQsMjQ4NzUsMjQ4ODAsMjQ4ODEsMjQ4ODUsMjQ4ODYsMjQ4ODcsMjQ4ODksMjQ4OTcsMjQ5MDEsMjQ5MDIsMjQ5MDUsMjQ5MjYsMjQ5MjgsMjQ5NDAsMjQ5NDYsMjQ5NTIsMjQ5NTUsMjQ5''@;'; put 'put ''NTYsMjQ5NTksMjQ5NjAsMjQ5NjEsMjQ5NjMsMjQ5NjQsMjQ5NzEsMjQ5NzMsMjQ5NzgsMjQ5NzksMjQ5ODMsMjQ5ODQsMjQ5ODgsMjQ5ODksMjQ5OTEsMjQ5OTIsMjQ5OTcsMjVlMywyNTAwMiwyNTAwNSwyNTAxNiwyNTAxNywyNTAyMCwyNTAyNCwyNTAyNSwyNTAyNiwyNTAzOCwyNTAzOSwy''@;'; put 'put ''NTA0NSwyNTA1MiwyNTA1MywyNTA1NCwyNTA1NSwyNTA1NywyNTA1OCwyNTA2MywyNTA2NSwyNTA2MSwyNTA2OCwyNTA2OSwyNTA3MSwyNTA4OSwyNTA5MSwyNTA5MiwyNTA5NSwyNTEwNywyNTEwOSwyNTExNiwyNTEyMCwyNTEyMiwyNTEyMywyNTEyNywyNTEyOSwyNTEzMSwyNTE0NSwyNTE0''@;'; put 'put ''OSwyNTE1NCwyNTE1NSwyNTE1NiwyNTE1OCwyNTE2NCwyNTE2OCwyNTE2OSwyNTE3MCwyNTE3MiwyNTE3NCwyNTE3OCwyNTE4MCwyNTE4OCwyNTE5NywyNTE5OSwyNTIwMywyNTIxMCwyNTIxMywyNTIyOSwyNTIzMCwyNTIzMSwyNTIzMiwyNTI1NCwyNTI1NiwyNTI2NywyNTI3MCwyNTI3MSwy''@;'; put 'put ''NTI3NCwyNTI3OCwyNTI3OSwyNTI4NCwyNTI5NCwyNTMwMSwyNTMwMiwyNTMwNiwyNTMyMiwyNTMzMCwyNTMzMiwyNTM0MCwyNTM0MSwyNTM0NywyNTM0OCwyNTM1NCwyNTM1NSwyNTM1NywyNTM2MCwyNTM2MywyNTM2NiwyNTM2OCwyNTM4NSwyNTM4NiwyNTM4OSwyNTM5NywyNTM5OCwyNTQw''@;'; put 'put ''MSwyNTQwNCwyNTQwOSwyNTQxMCwyNTQxMSwyNTQxMiwyNTQxNCwyNTQxOCwyNTQxOSwyNTQyMiwyNTQyNiwyNTQyNywyNTQyOCwyNTQzMiwyNTQzNSwyNTQ0NSwyNTQ0NiwyNTQ1MiwyNTQ1MywyNTQ1NywyNTQ2MCwyNTQ2MSwyNTQ2NCwyNTQ2OCwyNTQ2OSwyNTQ3MSwyNTQ3NCwyNTQ3Niwy''@;'; put 'put ''NTQ3OSwyNTQ4MiwyNTQ4OCwyNTQ5MiwyNTQ5MywyNTQ5NywyNTQ5OCwyNTUwMiwyNTUwOCwyNTUxMCwyNTUxNywyNTUxOCwyNTUxOSwyNTUzMywyNTUzNywyNTU0MSwyNTU0NCwyNTU1MCwyNTU1MywyNTU1NSwyNTU1NiwyNTU1NywyNTU2NCwyNTU2OCwyNTU3MywyNTU3OCwyNTU4MCwyNTU4''@;'; put 'put ''NiwyNTU4NywyNTU4OSwyNTU5MiwyNTU5MywyNTYwOSwyNTYxMCwyNTYxNiwyNTYxOCwyNTYyMCwyNTYyNCwyNTYzMCwyNTYzMiwyNTYzNCwyNTYzNiwyNTYzNywyNTY0MSwyNTY0MiwyNTY0NywyNTY0OCwyNTY1MywyNTY2MSwyNTY2MywyNTY3NSwyNTY3OSwyNTY4MSwyNTY4MiwyNTY4Mywy''@;'; put 'put ''NTY4NCwyNTY5MCwyNTY5MSwyNTY5MiwyNTY5MywyNTY5NSwyNTY5NiwyNTY5NywyNTY5OSwyNTcwOSwyNTcxNSwyNTcxNiwyNTcyMywyNTcyNSwyNTczMywyNTczNSwyNTc0MywyNTc0NCwyNTc0NSwyNTc1MiwyNTc1MywyNTc1NSwyNTc1NywyNTc1OSwyNTc2MSwyNTc2MywyNTc2NiwyNTc2''@;'; put 'put ''OCwyNTc3MiwyNTc3OSwyNTc4OSwyNTc5MCwyNTc5MSwyNTc5NiwyNTgwMSwyNTgwMiwyNTgwMywyNTgwNCwyNTgwNiwyNTgwOCwyNTgwOSwyNTgxMywyNTgxNSwyNTgyOCwyNTgyOSwyNTgzMywyNTgzNCwyNTgzNywyNTg0MCwyNTg0NSwyNTg0NywyNTg1MSwyNTg1NSwyNTg1NywyNTg2MCwy''@;'; put 'put ''NTg2NCwyNTg2NSwyNTg2NiwyNTg3MSwyNTg3NSwyNTg3NiwyNTg3OCwyNTg4MSwyNTg4MywyNTg4NiwyNTg4NywyNTg5MCwyNTg5NCwyNTg5NywyNTkwMiwyNTkwNSwyNTkxNCwyNTkxNiwyNTkxNywyNTkyMywyNTkyNywyNTkyOSwyNTkzNiwyNTkzOCwyNTk0MCwyNTk1MSwyNTk1MiwyNTk1''@;'; put 'put ''OSwyNTk2MywyNTk3OCwyNTk4MSwyNTk4NSwyNTk4OSwyNTk5NCwyNjAwMiwyNjAwNSwyNjAwOCwyNjAxMywyNjAxNiwyNjAxOSwyNjAyMiwyNjAzMCwyNjAzNCwyNjAzNSwyNjAzNiwyNjA0NywyNjA1MCwyNjA1NiwyNjA1NywyNjA2MiwyNjA2NCwyNjA2OCwyNjA3MCwyNjA3MiwyNjA3OSwy''@;'; put 'put ''NjA5NiwyNjA5OCwyNjEwMCwyNjEwMSwyNjEwNSwyNjExMCwyNjExMSwyNjExMiwyNjExNiwyNjEyMCwyNjEyMSwyNjEyNSwyNjEyOSwyNjEzMCwyNjEzMywyNjEzNCwyNjE0MSwyNjE0MiwyNjE0NSwyNjE0NiwyNjE0NywyNjE0OCwyNjE1MCwyNjE1MywyNjE1NCwyNjE1NSwyNjE1NiwyNjE1''@;'; put 'put ''OCwyNjE2MCwyNjE2MSwyNjE2MywyNjE2OSwyNjE2NywyNjE3NiwyNjE4MSwyNjE4MiwyNjE4NiwyNjE4OCwyNjE5MywyNjE5MCwyNjE5OSwyNjIwMCwyNjIwMSwyNjIwMywyNjIwNCwyNjIwOCwyNjIwOSwyNjM2MywyNjIxOCwyNjIxOSwyNjIyMCwyNjIzOCwyNjIyNywyNjIyOSwyNjIzOSwy''@;'; put 'put ''NjIzMSwyNjIzMiwyNjIzMywyNjIzNSwyNjI0MCwyNjIzNiwyNjI1MSwyNjI1MiwyNjI1MywyNjI1NiwyNjI1OCwyNjI2NSwyNjI2NiwyNjI2NywyNjI2OCwyNjI3MSwyNjI3MiwyNjI3NiwyNjI4NSwyNjI4OSwyNjI5MCwyNjI5MywyNjI5OSwyNjMwMywyNjMwNCwyNjMwNiwyNjMwNywyNjMx''@;'; put 'put ''MiwyNjMxNiwyNjMxOCwyNjMxOSwyNjMyNCwyNjMzMSwyNjMzNSwyNjM0NCwyNjM0NywyNjM0OCwyNjM1MCwyNjM2MiwyNjM3MywyNjM3NSwyNjM4MiwyNjM4NywyNjM5MywyNjM5NiwyNjQwMCwyNjQwMiwyNjQxOSwyNjQzMCwyNjQzNywyNjQzOSwyNjQ0MCwyNjQ0NCwyNjQ1MiwyNjQ1Mywy''@;'; put 'put ''NjQ2MSwyNjQ3MCwyNjQ3NiwyNjQ3OCwyNjQ4NCwyNjQ4NiwyNjQ5MSwyNjQ5NywyNjUwMCwyNjUxMCwyNjUxMSwyNjUxMywyNjUxNSwyNjUxOCwyNjUyMCwyNjUyMSwyNjUyMywyNjU0NCwyNjU0NSwyNjU0NiwyNjU0OSwyNjU1NSwyNjU1NiwyNjU1NywyNjYxNywyNjU2MCwyNjU2MiwyNjU2''@;'; put 'put ''MywyNjU2NSwyNjU2OCwyNjU2OSwyNjU3OCwyNjU4MywyNjU4NSwyNjU4OCwyNjU5MywyNjU5OCwyNjYwOCwyNjYxMCwyNjYxNCwyNjYxNSwyNjcwNiwyNjY0NCwyNjY0OSwyNjY1MywyNjY1NSwyNjY2NCwyNjY2MywyNjY2OCwyNjY2OSwyNjY3MSwyNjY3MiwyNjY3MywyNjY3NSwyNjY4Mywy''@;'; put 'put ''NjY4NywyNjY5MiwyNjY5MywyNjY5OCwyNjcwMCwyNjcwOSwyNjcxMSwyNjcxMiwyNjcxNSwyNjczMSwyNjczNCwyNjczNSwyNjczNiwyNjczNywyNjczOCwyNjc0MSwyNjc0NSwyNjc0NiwyNjc0NywyNjc0OCwyNjc1NCwyNjc1NiwyNjc1OCwyNjc2MCwyNjc3NCwyNjc3NiwyNjc3OCwyNjc4''@;'; put 'put ''MCwyNjc4NSwyNjc4NywyNjc4OSwyNjc5MywyNjc5NCwyNjc5OCwyNjgwMiwyNjgxMSwyNjgyMSwyNjgyNCwyNjgyOCwyNjgzMSwyNjgzMiwyNjgzMywyNjgzNSwyNjgzOCwyNjg0MSwyNjg0NCwyNjg0NSwyNjg1MywyNjg1NiwyNjg1OCwyNjg1OSwyNjg2MCwyNjg2MSwyNjg2NCwyNjg2NSwy''@;'; put 'put ''Njg2OSwyNjg3MCwyNjg3NSwyNjg3NiwyNjg3NywyNjg4NiwyNjg4OSwyNjg5MCwyNjg5NiwyNjg5NywyNjg5OSwyNjkwMiwyNjkwMywyNjkyOSwyNjkzMSwyNjkzMywyNjkzNiwyNjkzOSwyNjk0NiwyNjk0OSwyNjk1MywyNjk1OCwyNjk2NywyNjk3MSwyNjk3OSwyNjk4MCwyNjk4MSwyNjk4''@;'; put 'put ''MiwyNjk4NCwyNjk4NSwyNjk4OCwyNjk5MiwyNjk5MywyNjk5NCwyNzAwMiwyNzAwMywyNzAwNywyNzAwOCwyNzAyMSwyNzAyNiwyNzAzMCwyNzAzMiwyNzA0MSwyNzA0NSwyNzA0NiwyNzA0OCwyNzA1MSwyNzA1MywyNzA1NSwyNzA2MywyNzA2NCwyNzA2NiwyNzA2OCwyNzA3NywyNzA4MCwy''@;'; put 'put ''NzA4OSwyNzA5NCwyNzA5NSwyNzEwNiwyNzEwOSwyNzExOCwyNzExOSwyNzEyMSwyNzEyMywyNzEyNSwyNzEzNCwyNzEzNiwyNzEzNywyNzEzOSwyNzE1MSwyNzE1MywyNzE1NywyNzE2MiwyNzE2NSwyNzE2OCwyNzE3MiwyNzE3NiwyNzE4NCwyNzE4NiwyNzE4OCwyNzE5MSwyNzE5NSwyNzE5''@;'; put 'put ''OCwyNzE5OSwyNzIwNSwyNzIwNiwyNzIwOSwyNzIxMCwyNzIxNCwyNzIxNiwyNzIxNywyNzIxOCwyNzIyMSwyNzIyMiwyNzIyNywyNzIzNiwyNzIzOSwyNzI0MiwyNzI0OSwyNzI1MSwyNzI2MiwyNzI2NSwyNzI2NywyNzI3MCwyNzI3MSwyNzI3MywyNzI3NSwyNzI4MSwyNzI5MSwyNzI5Mywy''@;'; put 'put ''NzI5NCwyNzI5NSwyNzMwMSwyNzMwNywyNzMxMSwyNzMxMiwyNzMxMywyNzMxNiwyNzMyNSwyNzMyNiwyNzMyNywyNzMzNCwyNzMzNywyNzMzNiwyNzM0MCwyNzM0NCwyNzM0OCwyNzM0OSwyNzM1MCwyNzM1NiwyNzM1NywyNzM2NCwyNzM2NywyNzM3MiwyNzM3NiwyNzM3NywyNzM3OCwyNzM4''@;'; put 'put ''OCwyNzM4OSwyNzM5NCwyNzM5NSwyNzM5OCwyNzM5OSwyNzQwMSwyNzQwNywyNzQwOCwyNzQwOSwyNzQxNSwyNzQxOSwyNzQyMiwyNzQyOCwyNzQzMiwyNzQzNSwyNzQzNiwyNzQzOSwyNzQ0NSwyNzQ0NiwyNzQ1MSwyNzQ1NSwyNzQ2MiwyNzQ2NiwyNzQ2OSwyNzQ3NCwyNzQ3OCwyNzQ4MCwy''@;'; put 'put ''NzQ4NSwyNzQ4OCwyNzQ5NSwyNzQ5OSwyNzUwMiwyNzUwNCwyNzUwOSwyNzUxNywyNzUxOCwyNzUyMiwyNzUyNSwyNzU0MywyNzU0NywyNzU1MSwyNzU1MiwyNzU1NCwyNzU1NSwyNzU2MCwyNzU2MSwyNzU2NCwyNzU2NSwyNzU2NiwyNzU2OCwyNzU3NiwyNzU3NywyNzU4MSwyNzU4MiwyNzU4''@;'; put 'put ''NywyNzU4OCwyNzU5MywyNzU5NiwyNzYwNiwyNzYxMCwyNzYxNywyNzYxOSwyNzYyMiwyNzYyMywyNzYzMCwyNzYzMywyNzYzOSwyNzY0MSwyNzY0NywyNzY1MCwyNzY1MiwyNzY1MywyNzY1NywyNzY2MSwyNzY2MiwyNzY2NCwyNzY2NiwyNzY3MywyNzY3OSwyNzY4NiwyNzY4NywyNzY4OCwy''@;'; put 'put ''NzY5MiwyNzY5NCwyNzY5OSwyNzcwMSwyNzcwMiwyNzcwNiwyNzcwNywyNzcxMSwyNzcyMiwyNzcyMywyNzcyNSwyNzcyNywyNzczMCwyNzczMiwyNzczNywyNzczOSwyNzc0MCwyNzc1NSwyNzc1NywyNzc1OSwyNzc2NCwyNzc2NiwyNzc2OCwyNzc2OSwyNzc3MSwyNzc4MSwyNzc4MiwyNzc4''@;'; put 'put ''MywyNzc4NSwyNzc5NiwyNzc5NywyNzc5OSwyNzgwMCwyNzgwNCwyNzgwNywyNzgyNCwyNzgyNiwyNzgyOCwyNzg0MiwyNzg0NiwyNzg1MywyNzg1NSwyNzg1NiwyNzg1NywyNzg1OCwyNzg2MCwyNzg2MiwyNzg2NiwyNzg2OCwyNzg3MiwyNzg3OSwyNzg4MSwyNzg4MywyNzg4NCwyNzg4Niwy''@;'; put 'put ''Nzg5MCwyNzg5MiwyNzkwOCwyNzkxMSwyNzkxNCwyNzkxOCwyNzkxOSwyNzkyMSwyNzkyMywyNzkzMCwyNzk0MiwyNzk0MywyNzk0NCwyNzc1MSwyNzk1MCwyNzk1MSwyNzk1MywyNzk2MSwyNzk2NCwyNzk2NywyNzk5MSwyNzk5OCwyNzk5OSwyODAwMSwyODAwNSwyODAwNywyODAxNSwyODAx''@;'; put 'put ''NiwyODAyOCwyODAzNCwyODAzOSwyODA0OSwyODA1MCwyODA1MiwyODA1NCwyODA1NSwyODA1NiwyODA3NCwyODA3NiwyODA4NCwyODA4NywyODA4OSwyODA5MywyODA5NSwyODEwMCwyODEwNCwyODEwNiwyODExMCwyODExMSwyODExOCwyODEyMywyODEyNSwyODEyNywyODEyOCwyODEzMCwy''@;'; put 'put ''ODEzMywyODEzNywyODE0MywyODE0NCwyODE0OCwyODE1MCwyODE1NiwyODE2MCwyODE2NCwyODE5MCwyODE5NCwyODE5OSwyODIxMCwyODIxNCwyODIxNywyODIxOSwyODIyMCwyODIyOCwyODIyOSwyODIzMiwyODIzMywyODIzNSwyODIzOSwyODI0MSwyODI0MiwyODI0MywyODI0NCwyODI0''@;'; put 'put ''NywyODI1MiwyODI1MywyODI1NCwyODI1OCwyODI1OSwyODI2NCwyODI3NSwyODI4MywyODI4NSwyODMwMSwyODMwNywyODMxMywyODMyMCwyODMyNywyODMzMywyODMzNCwyODMzNywyODMzOSwyODM0NywyODM1MSwyODM1MiwyODM1MywyODM1NSwyODM1OSwyODM2MCwyODM2MiwyODM2NSwy''@;'; put 'put ''ODM2NiwyODM2NywyODM5NSwyODM5NywyODM5OCwyODQwOSwyODQxMSwyODQxMywyODQyMCwyODQyNCwyODQyNiwyODQyOCwyODQyOSwyODQzOCwyODQ0MCwyODQ0MiwyODQ0MywyODQ1NCwyODQ1NywyODQ1OCwyODQ2MywyODQ2NCwyODQ2NywyODQ3MCwyODQ3NSwyODQ3NiwyODQ2MSwyODQ5''@;'; put 'put ''NSwyODQ5NywyODQ5OCwyODQ5OSwyODUwMywyODUwNSwyODUwNiwyODUwOSwyODUxMCwyODUxMywyODUxNCwyODUyMCwyODUyNCwyODU0MSwyODU0MiwyODU0NywyODU1MSwyODU1MiwyODU1NSwyODU1NiwyODU1NywyODU2MCwyODU2MiwyODU2MywyODU2NCwyODU2NiwyODU3MCwyODU3NSwy''@;'; put 'put ''ODU3NiwyODU4MSwyODU4MiwyODU4MywyODU4NCwyODU5MCwyODU5MSwyODU5MiwyODU5NywyODU5OCwyODYwNCwyODYxMywyODYxNSwyODYxNiwyODYxOCwyODYzNCwyODYzOCwyODY0OCwyODY0OSwyODY1NiwyODY2MSwyODY2NSwyODY2OCwyODY2OSwyODY3MiwyODY3NywyODY3OCwyODY3''@;'; put 'put ''OSwyODY4NSwyODY5NSwyODcwNCwyODcwNywyODcxOSwyODcyNCwyODcyNywyODcyOSwyODczMiwyODczOSwyODc0MCwyODc0NCwyODc0NSwyODc0NiwyODc0NywyODc1NiwyODc1NywyODc2NSwyODc2NiwyODc1MCwyODc3MiwyODc3MywyODc4MCwyODc4MiwyODc4OSwyODc5MCwyODc5OCwy''@;'; put 'put ''ODgwMSwyODgwNSwyODgwNiwyODgyMCwyODgyMSwyODgyMiwyODgyMywyODgyNCwyODgyNywyODgzNiwyODg0MywyODg0OCwyODg0OSwyODg1MiwyODg1NSwyODg3NCwyODg4MSwyODg4MywyODg4NCwyODg4NSwyODg4NiwyODg4OCwyODg5MiwyODkwMCwyODkyMiwyODkzMSwyODkzMiwyODkz''@;'; put 'put ''MywyODkzNCwyODkzNSwyODkzOSwyODk0MCwyODk0MywyODk1OCwyODk2MCwyODk3MSwyODk3MywyODk3NSwyODk3NiwyODk3NywyODk4NCwyODk5MywyODk5NywyODk5OCwyODk5OSwyOTAwMiwyOTAwMywyOTAwOCwyOTAxMCwyOTAxNSwyOTAxOCwyOTAyMCwyOTAyMiwyOTAyNCwyOTAzMiwy''@;'; put 'put ''OTA0OSwyOTA1NiwyOTA2MSwyOTA2MywyOTA2OCwyOTA3NCwyOTA4MiwyOTA4MywyOTA4OCwyOTA5MCwyOTEwMywyOTEwNCwyOTEwNiwyOTEwNywyOTExNCwyOTExOSwyOTEyMCwyOTEyMSwyOTEyNCwyOTEzMSwyOTEzMiwyOTEzOSwyOTE0MiwyOTE0NSwyOTE0NiwyOTE0OCwyOTE3NiwyOTE4''@;'; put 'put ''MiwyOTE4NCwyOTE5MSwyOTE5MiwyOTE5MywyOTIwMywyOTIwNywyOTIxMCwyOTIxMywyOTIxNSwyOTIyMCwyOTIyNywyOTIzMSwyOTIzNiwyOTI0MCwyOTI0MSwyOTI0OSwyOTI1MCwyOTI1MSwyOTI1MywyOTI2MiwyOTI2MywyOTI2NCwyOTI2NywyOTI2OSwyOTI3MCwyOTI3NCwyOTI3Niwy''@;'; put 'put ''OTI3OCwyOTI4MCwyOTI4MywyOTI4OCwyOTI5MSwyOTI5NCwyOTI5NSwyOTI5NywyOTMwMywyOTMwNCwyOTMwNywyOTMwOCwyOTMxMSwyOTMxNiwyOTMyMSwyOTMyNSwyOTMyNiwyOTMzMSwyOTMzOSwyOTM1MiwyOTM1NywyOTM1OCwyOTM2MSwyOTM2NCwyOTM3NCwyOTM3NywyOTM4MywyOTM4''@;'; put 'put ''NSwyOTM4OCwyOTM5NywyOTM5OCwyOTQwMCwyOTQwNywyOTQxMywyOTQyNywyOTQyOCwyOTQzNCwyOTQzNSwyOTQzOCwyOTQ0MiwyOTQ0NCwyOTQ0NSwyOTQ0NywyOTQ1MSwyOTQ1MywyOTQ1OCwyOTQ1OSwyOTQ2NCwyOTQ2NSwyOTQ3MCwyOTQ3NCwyOTQ3NiwyOTQ3OSwyOTQ4MCwyOTQ4NCwy''@;'; put 'put ''OTQ4OSwyOTQ5MCwyOTQ5MywyOTQ5OCwyOTQ5OSwyOTUwMSwyOTUwNywyOTUxNywyOTUyMCwyOTUyMiwyOTUyNiwyOTUyOCwyOTUzMywyOTUzNCwyOTUzNSwyOTUzNiwyOTU0MiwyOTU0MywyOTU0NSwyOTU0NywyOTU0OCwyOTU1MCwyOTU1MSwyOTU1MywyOTU1OSwyOTU2MSwyOTU2NCwyOTU2''@;'; put 'put ''OCwyOTU2OSwyOTU3MSwyOTU3MywyOTU3NCwyOTU4MiwyOTU4NCwyOTU4NywyOTU4OSwyOTU5MSwyOTU5MiwyOTU5NiwyOTU5OCwyOTU5OSwyOTYwMCwyOTYwMiwyOTYwNSwyOTYwNiwyOTYxMCwyOTYxMSwyOTYxMywyOTYyMSwyOTYyMywyOTYyNSwyOTYyOCwyOTYyOSwyOTYzMSwyOTYzNywy''@;'; put 'put ''OTYzOCwyOTY0MSwyOTY0MywyOTY0NCwyOTY0NywyOTY1MCwyOTY1MSwyOTY1NCwyOTY1NywyOTY2MSwyOTY2NSwyOTY2NywyOTY3MCwyOTY3MSwyOTY3MywyOTY4NCwyOTY4NSwyOTY4NywyOTY4OSwyOTY5MCwyOTY5MSwyOTY5MywyOTY5NSwyOTY5NiwyOTY5NywyOTcwMCwyOTcwMywyOTcw''@;'; put 'put ''NiwyOTcxMywyOTcyMiwyOTcyMywyOTczMiwyOTczNCwyOTczNiwyOTczNywyOTczOCwyOTczOSwyOTc0MCwyOTc0MSwyOTc0MiwyOTc0MywyOTc0NCwyOTc0NSwyOTc1MywyOTc2MCwyOTc2MywyOTc2NCwyOTc2NiwyOTc2NywyOTc3MSwyOTc3MywyOTc3NywyOTc3OCwyOTc4MywyOTc4OSwy''@;'; put 'put ''OTc5NCwyOTc5OCwyOTc5OSwyOTgwMCwyOTgwMywyOTgwNSwyOTgwNiwyOTgwOSwyOTgxMCwyOTgyNCwyOTgyNSwyOTgyOSwyOTgzMCwyOTgzMSwyOTgzMywyOTgzOSwyOTg0MCwyOTg0MSwyOTg0MiwyOTg0OCwyOTg0OSwyOTg1MCwyOTg1MiwyOTg1NSwyOTg1NiwyOTg1NywyOTg1OSwyOTg2''@;'; put 'put ''MiwyOTg2NCwyOTg2NSwyOTg2NiwyOTg2NywyOTg3MCwyOTg3MSwyOTg3MywyOTg3NCwyOTg3NywyOTg4MSwyOTg4MywyOTg4NywyOTg5NiwyOTg5NywyOTkwMCwyOTkwNCwyOTkwNywyOTkxMiwyOTkxNCwyOTkxNSwyOTkxOCwyOTkxOSwyOTkyNCwyOTkyOCwyOTkzMCwyOTkzMSwyOTkzNSwy''@;'; put 'put ''OTk0MCwyOTk0NiwyOTk0NywyOTk0OCwyOTk1MSwyOTk1OCwyOTk3MCwyOTk3NCwyOTk3NSwyOTk4NCwyOTk4NSwyOTk4OCwyOTk5MSwyOTk5MywyOTk5NCwyOTk5OSwzMDAwNiwzMDAwOSwzMDAxMywzMDAxNCwzMDAxNSwzMDAxNiwzMDAxOSwzMDAyMywzMDAyNCwzMDAzMCwzMDAzMiwzMDAz''@;'; put 'put ''NCwzMDAzOSwzMDA0NiwzMDA0NywzMDA0OSwzMDA2MywzMDA2NSwzMDA3MywzMDA3NCwzMDA3NSwzMDA3NiwzMDA3NywzMDA3OCwzMDA4MSwzMDA4NSwzMDA5NiwzMDA5OCwzMDA5OSwzMDEwMSwzMDEwNSwzMDEwOCwzMDExNCwzMDExNiwzMDEzMiwzMDEzOCwzMDE0MywzMDE0NCwzMDE0NSwz''@;'; put 'put ''MDE0OCwzMDE1MCwzMDE1NiwzMDE1OCwzMDE1OSwzMDE2NywzMDE3MiwzMDE3NSwzMDE3NiwzMDE3NywzMDE4MCwzMDE4MywzMDE4OCwzMDE5MCwzMDE5MSwzMDE5MywzMDIwMSwzMDIwOCwzMDIxMCwzMDIxMSwzMDIxMiwzMDIxNSwzMDIxNiwzMDIxOCwzMDIyMCwzMDIyMywzMDIyNiwzMDIy''@;'; put 'put ''NywzMDIyOSwzMDIzMCwzMDIzMywzMDIzNSwzMDIzNiwzMDIzNywzMDIzOCwzMDI0MywzMDI0NSwzMDI0NiwzMDI0OSwzMDI1MywzMDI1OCwzMDI1OSwzMDI2MSwzMDI2NCwzMDI2NSwzMDI2NiwzMDI2OCwzMDI4MiwzMDI3MiwzMDI3MywzMDI3NSwzMDI3NiwzMDI3NywzMDI4MSwzMDI4Mywz''@;'; put 'put ''MDI5MywzMDI5NywzMDMwMywzMDMwOCwzMDMwOSwzMDMxNywzMDMxOCwzMDMxOSwzMDMyMSwzMDMyNCwzMDMzNywzMDM0MSwzMDM0OCwzMDM0OSwzMDM1NywzMDM2MywzMDM2NCwzMDM2NSwzMDM2NywzMDM2OCwzMDM3MCwzMDM3MSwzMDM3MiwzMDM3MywzMDM3NCwzMDM3NSwzMDM3NiwzMDM3''@;'; put 'put ''OCwzMDM4MSwzMDM5NywzMDQwMSwzMDQwNSwzMDQwOSwzMDQxMSwzMDQxMiwzMDQxNCwzMDQyMCwzMDQyNSwzMDQzMiwzMDQzOCwzMDQ0MCwzMDQ0NCwzMDQ0OCwzMDQ0OSwzMDQ1NCwzMDQ1NywzMDQ2MCwzMDQ2NCwzMDQ3MCwzMDQ3NCwzMDQ3OCwzMDQ4MiwzMDQ4NCwzMDQ4NSwzMDQ4Nywz''@;'; put 'put ''MDQ4OSwzMDQ5MCwzMDQ5MiwzMDQ5OCwzMDUwNCwzMDUwOSwzMDUxMCwzMDUxMSwzMDUxNiwzMDUxNywzMDUxOCwzMDUyMSwzMDUyNSwzMDUyNiwzMDUzMCwzMDUzMywzMDUzNCwzMDUzOCwzMDU0MSwzMDU0MiwzMDU0MywzMDU0NiwzMDU1MCwzMDU1MSwzMDU1NiwzMDU1OCwzMDU1OSwzMDU2''@;'; put 'put ''MCwzMDU2MiwzMDU2NCwzMDU2NywzMDU3MCwzMDU3MiwzMDU3NiwzMDU3OCwzMDU3OSwzMDU4MCwzMDU4NiwzMDU4OSwzMDU5MiwzMDU5NiwzMDYwNCwzMDYwNSwzMDYxMiwzMDYxMywzMDYxNCwzMDYxOCwzMDYyMywzMDYyNiwzMDYzMSwzMDYzNCwzMDYzOCwzMDYzOSwzMDY0MSwzMDY0NSwz''@;'; put 'put ''MDY1NCwzMDY1OSwzMDY2NSwzMDY3MywzMDY3NCwzMDY3NywzMDY4MSwzMDY4NiwzMDY4NywzMDY4OCwzMDY5MiwzMDY5NCwzMDY5OCwzMDcwMCwzMDcwNCwzMDcwNSwzMDcwOCwzMDcxMiwzMDcxNSwzMDcyNSwzMDcyNiwzMDcyOSwzMDczMywzMDczNCwzMDczNywzMDc0OSwzMDc1MywzMDc1''@;'; put 'put ''NCwzMDc1NSwzMDc2NSwzMDc2NiwzMDc2OCwzMDc3MywzMDc3NSwzMDc4NywzMDc4OCwzMDc5MSwzMDc5MiwzMDc5NiwzMDc5OCwzMDgwMiwzMDgxMiwzMDgxNCwzMDgxNiwzMDgxNywzMDgxOSwzMDgyMCwzMDgyNCwzMDgyNiwzMDgzMCwzMDg0MiwzMDg0NiwzMDg1OCwzMDg2MywzMDg2OCwz''@;'; put 'put ''MDg3MiwzMDg4MSwzMDg3NywzMDg3OCwzMDg3OSwzMDg4NCwzMDg4OCwzMDg5MiwzMDg5MywzMDg5NiwzMDg5NywzMDg5OCwzMDg5OSwzMDkwNywzMDkwOSwzMDkxMSwzMDkxOSwzMDkyMCwzMDkyMSwzMDkyNCwzMDkyNiwzMDkzMCwzMDkzMSwzMDkzMywzMDkzNCwzMDk0OCwzMDkzOSwzMDk0''@;'; put 'put ''MywzMDk0NCwzMDk0NSwzMDk1MCwzMDk1NCwzMDk2MiwzMDk2MywzMDk3NiwzMDk2NiwzMDk2NywzMDk3MCwzMDk3MSwzMDk3NSwzMDk4MiwzMDk4OCwzMDk5MiwzMTAwMiwzMTAwNCwzMTAwNiwzMTAwNywzMTAwOCwzMTAxMywzMTAxNSwzMTAxNywzMTAyMSwzMTAyNSwzMTAyOCwzMTAyOSwz''@;'; put 'put ''MTAzNSwzMTAzNywzMTAzOSwzMTA0NCwzMTA0NSwzMTA0NiwzMTA1MCwzMTA1MSwzMTA1NSwzMTA1NywzMTA2MCwzMTA2NCwzMTA2NywzMTA2OCwzMTA3OSwzMTA4MSwzMTA4MywzMTA5MCwzMTA5NywzMTA5OSwzMTEwMCwzMTEwMiwzMTExNSwzMTExNiwzMTEyMSwzMTEyMywzMTEyNCwzMTEy''@;'; put 'put ''NSwzMTEyNiwzMTEyOCwzMTEzMSwzMTEzMiwzMTEzNywzMTE0NCwzMTE0NSwzMTE0NywzMTE1MSwzMTE1MywzMTE1NiwzMTE2MCwzMTE2MywzMTE3MCwzMTE3MiwzMTE3NSwzMTE3NiwzMTE3OCwzMTE4MywzMTE4OCwzMTE5MCwzMTE5NCwzMTE5NywzMTE5OCwzMTIwMCwzMTIwMiwzMTIwNSwz''@;'; put 'put ''MTIxMCwzMTIxMSwzMTIxMywzMTIxNywzMTIyNCwzMTIyOCwzMTIzNCwzMTIzNSwzMTIzOSwzMTI0MSwzMTI0MiwzMTI0NCwzMTI0OSwzMTI1MywzMTI1OSwzMTI2MiwzMTI2NSwzMTI3MSwzMTI3NSwzMTI3NywzMTI3OSwzMTI4MCwzMTI4NCwzMTI4NSwzMTI4OCwzMTI4OSwzMTI5MCwzMTMw''@;'; put 'put ''MCwzMTMwMSwzMTMwMywzMTMwNCwzMTMwOCwzMTMxNywzMTMxOCwzMTMyMSwzMTMyNCwzMTMyNSwzMTMyNywzMTMyOCwzMTMzMywzMTMzNSwzMTMzOCwzMTM0MSwzMTM0OSwzMTM1MiwzMTM1OCwzMTM2MCwzMTM2MiwzMTM2NSwzMTM2NiwzMTM3MCwzMTM3MSwzMTM3NiwzMTM3NywzMTM4MCwz''@;'; put 'put ''MTM5MCwzMTM5MiwzMTM5NSwzMTQwNCwzMTQxMSwzMTQxMywzMTQxNywzMTQxOSwzMTQyMCwzMTQzMCwzMTQzMywzMTQzNiwzMTQzOCwzMTQ0MSwzMTQ1MSwzMTQ2NCwzMTQ2NSwzMTQ2NywzMTQ2OCwzMTQ3MywzMTQ3NiwzMTQ4MywzMTQ4NSwzMTQ4NiwzMTQ5NSwzMTUwOCwzMTUxOSwzMTUy''@;'; put 'put ''MywzMTUyNywzMTUyOSwzMTUzMCwzMTUzMSwzMTUzMywzMTUzNCwzMTUzNSwzMTUzNiwzMTUzNywzMTU0MCwzMTU0OSwzMTU1MSwzMTU1MiwzMTU1MywzMTU1OSwzMTU2NiwzMTU3MywzMTU4NCwzMTU4OCwzMTU5MCwzMTU5MywzMTU5NCwzMTU5NywzMTU5OSwzMTYwMiwzMTYwMywzMTYwNywz''@;'; put 'put ''MTYyMCwzMTYyNSwzMTYzMCwzMTYzMiwzMTYzMywzMTYzOCwzMTY0MywzMTY0NiwzMTY0OCwzMTY1MywzMTY2MCwzMTY2MywzMTY2NCwzMTY2NiwzMTY2OSwzMTY3MCwzMTY3NCwzMTY3NSwzMTY3NiwzMTY3NywzMTY4MiwzMTY4NSwzMTY4OCwzMTY5MCwzMTcwMCwzMTcwMiwzMTcwMywzMTcw''@;'; put 'put ''NSwzMTcwNiwzMTcwNywzMTcyMCwzMTcyMiwzMTczMCwzMTczMiwzMTczMywzMTczNiwzMTczNywzMTczOCwzMTc0MCwzMTc0MiwzMTc0NSwzMTc0NiwzMTc0NywzMTc0OCwzMTc1MCwzMTc1MywzMTc1NSwzMTc1NiwzMTc1OCwzMTc1OSwzMTc2OSwzMTc3MSwzMTc3NiwzMTc4MSwzMTc4Miwz''@;'; put 'put ''MTc4NCwzMTc4OCwzMTc5MywzMTc5NSwzMTc5NiwzMTc5OCwzMTgwMSwzMTgwMiwzMTgxNCwzMTgxOCwzMTgyOSwzMTgyNSwzMTgyNiwzMTgyNywzMTgzMywzMTgzNCwzMTgzNSwzMTgzNiwzMTgzNywzMTgzOCwzMTg0MSwzMTg0MywzMTg0NywzMTg0OSwzMTg1MywzMTg1NCwzMTg1NiwzMTg1''@;'; put 'put ''OCwzMTg2NSwzMTg2OCwzMTg2OSwzMTg3OCwzMTg3OSwzMTg4NywzMTg5MiwzMTkwMiwzMTkwNCwzMTkxMCwzMTkyMCwzMTkyNiwzMTkyNywzMTkzMCwzMTkzMSwzMTkzMiwzMTkzNSwzMTk0MCwzMTk0MywzMTk0NCwzMTk0NSwzMTk0OSwzMTk1MSwzMTk1NSwzMTk1NiwzMTk1NywzMTk1OSwz''@;'; put 'put ''MTk2MSwzMTk2MiwzMTk2NSwzMTk3NCwzMTk3NywzMTk3OSwzMTk4OSwzMjAwMywzMjAwNywzMjAwOCwzMjAwOSwzMjAxNSwzMjAxNywzMjAxOCwzMjAxOSwzMjAyMiwzMjAyOSwzMjAzMCwzMjAzNSwzMjAzOCwzMjA0MiwzMjA0NSwzMjA0OSwzMjA2MCwzMjA2MSwzMjA2MiwzMjA2NCwzMjA2''@;'; put 'put ''NSwzMjA3MSwzMjA3MiwzMjA3NywzMjA4MSwzMjA4MywzMjA4NywzMjA4OSwzMjA5MCwzMjA5MiwzMjA5MywzMjEwMSwzMjEwMywzMjEwNiwzMjExMiwzMjEyMCwzMjEyMiwzMjEyMywzMjEyNywzMjEyOSwzMjEzMCwzMjEzMSwzMjEzMywzMjEzNCwzMjEzNiwzMjEzOSwzMjE0MCwzMjE0MSwz''@;'; put 'put ''MjE0NSwzMjE1MCwzMjE1MSwzMjE1NywzMjE1OCwzMjE2NiwzMjE2NywzMjE3MCwzMjE3OSwzMjE4MiwzMjE4MywzMjE4NSwzMjE5NCwzMjE5NSwzMjE5NiwzMjE5NywzMjE5OCwzMjIwNCwzMjIwNSwzMjIwNiwzMjIxNSwzMjIxNywzMjI1NiwzMjIyNiwzMjIyOSwzMjIzMCwzMjIzNCwzMjIz''@;'; put 'put ''NSwzMjIzNywzMjI0MSwzMjI0NSwzMjI0NiwzMjI0OSwzMjI1MCwzMjI2NCwzMjI3MiwzMjI3MywzMjI3NywzMjI3OSwzMjI4NCwzMjI4NSwzMjI4OCwzMjI5NSwzMjI5NiwzMjMwMCwzMjMwMSwzMjMwMywzMjMwNywzMjMxMCwzMjMxOSwzMjMyNCwzMjMyNSwzMjMyNywzMjMzNCwzMjMzNiwz''@;'; put 'put ''MjMzOCwzMjM0NCwzMjM1MSwzMjM1MywzMjM1NCwzMjM1NywzMjM2MywzMjM2NiwzMjM2NywzMjM3MSwzMjM3NiwzMjM4MiwzMjM4NSwzMjM5MCwzMjM5MSwzMjM5NCwzMjM5NywzMjQwMSwzMjQwNSwzMjQwOCwzMjQxMCwzMjQxMywzMjQxNCwzMjU3MiwzMjU3MSwzMjU3MywzMjU3NCwzMjU3''@;'; put 'put ''NSwzMjU3OSwzMjU4MCwzMjU4MywzMjU5MSwzMjU5NCwzMjU5NSwzMjYwMywzMjYwNCwzMjYwNSwzMjYwOSwzMjYxMSwzMjYxMiwzMjYxMywzMjYxNCwzMjYyMSwzMjYyNSwzMjYzNywzMjYzOCwzMjYzOSwzMjY0MCwzMjY1MSwzMjY1MywzMjY1NSwzMjY1NiwzMjY1NywzMjY2MiwzMjY2Mywz''@;'; put 'put ''MjY2OCwzMjY3MywzMjY3NCwzMjY3OCwzMjY4MiwzMjY4NSwzMjY5MiwzMjcwMCwzMjcwMywzMjcwNCwzMjcwNywzMjcxMiwzMjcxOCwzMjcxOSwzMjczMSwzMjczNSwzMjczOSwzMjc0MSwzMjc0NCwzMjc0OCwzMjc1MCwzMjc1MSwzMjc1NCwzMjc2MiwzMjc2NSwzMjc2NiwzMjc2NywzMjc3''@;'; put 'put ''NSwzMjc3NiwzMjc3OCwzMjc4MSwzMjc4MiwzMjc4MywzMjc4NSwzMjc4NywzMjc4OCwzMjc5MCwzMjc5NywzMjc5OCwzMjc5OSwzMjgwMCwzMjgwNCwzMjgwNiwzMjgxMiwzMjgxNCwzMjgxNiwzMjgyMCwzMjgyMSwzMjgyMywzMjgyNSwzMjgyNiwzMjgyOCwzMjgzMCwzMjgzMiwzMjgzNiwz''@;'; put 'put ''Mjg2NCwzMjg2OCwzMjg3MCwzMjg3NywzMjg4MSwzMjg4NSwzMjg5NywzMjkwNCwzMjkxMCwzMjkyNCwzMjkyNiwzMjkzNCwzMjkzNSwzMjkzOSwzMjk1MiwzMjk1MywzMjk2OCwzMjk3MywzMjk3NSwzMjk3OCwzMjk4MCwzMjk4MSwzMjk4MywzMjk4NCwzMjk5MiwzMzAwNSwzMzAwNiwzMzAw''@;'; put 'put ''OCwzMzAxMCwzMzAxMSwzMzAxNCwzMzAxNywzMzAxOCwzMzAyMiwzMzAyNywzMzAzNSwzMzA0NiwzMzA0NywzMzA0OCwzMzA1MiwzMzA1NCwzMzA1NiwzMzA2MCwzMzA2MywzMzA2OCwzMzA3MiwzMzA3NywzMzA4MiwzMzA4NCwzMzA5MywzMzA5NSwzMzA5OCwzMzEwMCwzMzEwNiwzMzExMSwz''@;'; put 'put ''MzEyMCwzMzEyMSwzMzEyNywzMzEyOCwzMzEyOSwzMzEzMywzMzEzNSwzMzE0MywzMzE1MywzMzE2OCwzMzE1NiwzMzE1NywzMzE1OCwzMzE2MywzMzE2NiwzMzE3NCwzMzE3NiwzMzE3OSwzMzE4MiwzMzE4NiwzMzE5OCwzMzIwMiwzMzIwNCwzMzIxMSwzMzIyNywzMzIxOSwzMzIyMSwzMzIy''@;'; put 'put ''NiwzMzIzMCwzMzIzMSwzMzIzNywzMzIzOSwzMzI0MywzMzI0NSwzMzI0NiwzMzI0OSwzMzI1MiwzMzI1OSwzMzI2MCwzMzI2NCwzMzI2NSwzMzI2NiwzMzI2OSwzMzI3MCwzMzI3MiwzMzI3MywzMzI3NywzMzI3OSwzMzI4MCwzMzI4MywzMzI5NSwzMzI5OSwzMzMwMCwzMzMwNSwzMzMwNiwz''@;'; put 'put ''MzMwOSwzMzMxMywzMzMxNCwzMzMyMCwzMzMzMCwzMzMzMiwzMzMzOCwzMzM0NywzMzM0OCwzMzM0OSwzMzM1MCwzMzM1NSwzMzM1OCwzMzM1OSwzMzM2MSwzMzM2NiwzMzM3MiwzMzM3NiwzMzM3OSwzMzM4MywzMzM4OSwzMzM5NiwzMzQwMywzMzQwNSwzMzQwNywzMzQwOCwzMzQwOSwzMzQx''@;'; put 'put ''MSwzMzQxMiwzMzQxNSwzMzQxNywzMzQxOCwzMzQyMiwzMzQyNSwzMzQyOCwzMzQzMCwzMzQzMiwzMzQzNCwzMzQzNSwzMzQ0MCwzMzQ0MSwzMzQ0MywzMzQ0NCwzMzQ0NywzMzQ0OCwzMzQ0OSwzMzQ1MCwzMzQ1NCwzMzQ1NiwzMzQ1OCwzMzQ2MCwzMzQ2MywzMzQ2NiwzMzQ2OCwzMzQ3MCwz''@;'; put 'put ''MzQ3MSwzMzQ3OCwzMzQ4OCwzMzQ5MywzMzQ5OCwzMzUwNCwzMzUwNiwzMzUwOCwzMzUxMiwzMzUxNCwzMzUxNywzMzUxOSwzMzUyNiwzMzUyNywzMzUzMywzMzUzNCwzMzUzNiwzMzUzNywzMzU0MywzMzU0NCwzMzU0NiwzMzU0NywzMzYyMCwzMzU2MywzMzU2NSwzMzU2NiwzMzU2NywzMzU2''@;'; put 'put ''OSwzMzU3MCwzMzU4MCwzMzU4MSwzMzU4MiwzMzU4NCwzMzU4NywzMzU5MSwzMzU5NCwzMzU5NiwzMzU5NywzMzYwMiwzMzYwMywzMzYwNCwzMzYwNywzMzYxMywzMzYxNCwzMzYxNywzMzYyMSwzMzYyMiwzMzYyMywzMzY0OCwzMzY1NiwzMzY2MSwzMzY2MywzMzY2NCwzMzY2NiwzMzY2OCwz''@;'; put 'put ''MzY3MCwzMzY3NywzMzY4MiwzMzY4NCwzMzY4NSwzMzY4OCwzMzY4OSwzMzY5MSwzMzY5MiwzMzY5MywzMzcwMiwzMzcwMywzMzcwNSwzMzcwOCwzMzcyNiwzMzcyNywzMzcyOCwzMzczNSwzMzczNywzMzc0MywzMzc0NCwzMzc0NSwzMzc0OCwzMzc1NywzMzYxOSwzMzc2OCwzMzc3MCwzMzc4''@;'; put 'put ''MiwzMzc4NCwzMzc4NSwzMzc4OCwzMzc5MywzMzc5OCwzMzgwMiwzMzgwNywzMzgwOSwzMzgxMywzMzgxNywzMzcwOSwzMzgzOSwzMzg0OSwzMzg2MSwzMzg2MywzMzg2NCwzMzg2NiwzMzg2OSwzMzg3MSwzMzg3MywzMzg3NCwzMzg3OCwzMzg4MCwzMzg4MSwzMzg4MiwzMzg4NCwzMzg4OCwz''@;'; put 'put ''Mzg5MiwzMzg5MywzMzg5NSwzMzg5OCwzMzkwNCwzMzkwNywzMzkwOCwzMzkxMCwzMzkxMiwzMzkxNiwzMzkxNywzMzkyMSwzMzkyNSwzMzkzOCwzMzkzOSwzMzk0MSwzMzk1MCwzMzk1OCwzMzk2MCwzMzk2MSwzMzk2MiwzMzk2NywzMzk2OSwzMzk3MiwzMzk3OCwzMzk4MSwzMzk4MiwzMzk4''@;'; put 'put ''NCwzMzk4NiwzMzk5MSwzMzk5MiwzMzk5NiwzMzk5OSwzNDAwMywzNDAxMiwzNDAyMywzNDAyNiwzNDAzMSwzNDAzMiwzNDAzMywzNDAzNCwzNDAzOSwzNDA5OCwzNDA0MiwzNDA0MywzNDA0NSwzNDA1MCwzNDA1MSwzNDA1NSwzNDA2MCwzNDA2MiwzNDA2NCwzNDA3NiwzNDA3OCwzNDA4Miwz''@;'; put 'put ''NDA4MywzNDA4NCwzNDA4NSwzNDA4NywzNDA5MCwzNDA5MSwzNDA5NSwzNDA5OSwzNDEwMCwzNDEwMiwzNDExMSwzNDExOCwzNDEyNywzNDEyOCwzNDEyOSwzNDEzMCwzNDEzMSwzNDEzNCwzNDEzNywzNDE0MCwzNDE0MSwzNDE0MiwzNDE0MywzNDE0NCwzNDE0NSwzNDE0NiwzNDE0OCwzNDE1''@;'; put 'put ''NSwzNDE1OSwzNDE2OSwzNDE3MCwzNDE3MSwzNDE3MywzNDE3NSwzNDE3NywzNDE4MSwzNDE4MiwzNDE4NSwzNDE4NywzNDE4OCwzNDE5MSwzNDE5NSwzNDIwMCwzNDIwNSwzNDIwNywzNDIwOCwzNDIxMCwzNDIxMywzNDIxNSwzNDIyOCwzNDIzMCwzNDIzMSwzNDIzMiwzNDIzNiwzNDIzNywz''@;'; put 'put ''NDIzOCwzNDIzOSwzNDI0MiwzNDI0NywzNDI1MCwzNDI1MSwzNDI1NCwzNDIyMSwzNDI2NCwzNDI2NiwzNDI3MSwzNDI3MiwzNDI3OCwzNDI4MCwzNDI4NSwzNDI5MSwzNDI5NCwzNDMwMCwzNDMwMywzNDMwNCwzNDMwOCwzNDMwOSwzNDMxNywzNDMxOCwzNDMyMCwzNDMyMSwzNDMyMiwzNDMy''@;'; put 'put ''OCwzNDMyOSwzNDMzMSwzNDMzNCwzNDMzNywzNDM0MywzNDM0NSwzNDM1OCwzNDM2MCwzNDM2MiwzNDM2NCwzNDM2NSwzNDM2OCwzNDM3MCwzNDM3NCwzNDM4NiwzNDM4NywzNDM5MCwzNDM5MSwzNDM5MiwzNDM5MywzNDM5NywzNDQwMCwzNDQwMSwzNDQwMiwzNDQwMywzNDQwNCwzNDQwOSwz''@;'; put 'put ''NDQxMiwzNDQxNSwzNDQyMSwzNDQyMiwzNDQyMywzNDQyNiwzNDQ0NSwzNDQ0OSwzNDQ1NCwzNDQ1NiwzNDQ1OCwzNDQ2MCwzNDQ2NSwzNDQ3MCwzNDQ3MSwzNDQ3MiwzNDQ3NywzNDQ4MSwzNDQ4MywzNDQ4NCwzNDQ4NSwzNDQ4NywzNDQ4OCwzNDQ4OSwzNDQ5NSwzNDQ5NiwzNDQ5NywzNDQ5''@;'; put 'put ''OSwzNDUwMSwzNDUxMywzNDUxNCwzNDUxNywzNDUxOSwzNDUyMiwzNDUyNCwzNDUyOCwzNDUzMSwzNDUzMywzNDUzNSwzNDQ0MCwzNDU1NCwzNDU1NiwzNDU1NywzNDU2NCwzNDU2NSwzNDU2NywzNDU3MSwzNDU3NCwzNDU3NSwzNDU3NiwzNDU3OSwzNDU4MCwzNDU4NSwzNDU5MCwzNDU5MSwz''@;'; put 'put ''NDU5MywzNDU5NSwzNDYwMCwzNDYwNiwzNDYwNywzNDYwOSwzNDYxMCwzNDYxNywzNDYxOCwzNDYyMCwzNDYyMSwzNDYyMiwzNDYyNCwzNDYyNywzNDYyOSwzNDYzNywzNDY0OCwzNDY1MywzNDY1NywzNDY2MCwzNDY2MSwzNDY3MSwzNDY3MywzNDY3NCwzNDY4MywzNDY5MSwzNDY5MiwzNDY5''@;'; put 'put ''MywzNDY5NCwzNDY5NSwzNDY5NiwzNDY5NywzNDY5OSwzNDcwMCwzNDcwNCwzNDcwNywzNDcwOSwzNDcxMSwzNDcxMiwzNDcxMywzNDcxOCwzNDcyMCwzNDcyMywzNDcyNywzNDczMiwzNDczMywzNDczNCwzNDczNywzNDc0MSwzNDc1MCwzNDc1MSwzNDc1MywzNDc2MCwzNDc2MSwzNDc2Miwz''@;'; put 'put ''NDc2NiwzNDc3MywzNDc3NCwzNDc3NywzNDc3OCwzNDc4MCwzNDc4MywzNDc4NiwzNDc4NywzNDc4OCwzNDc5NCwzNDc5NSwzNDc5NywzNDgwMSwzNDgwMywzNDgwOCwzNDgxMCwzNDgxNSwzNDgxNywzNDgxOSwzNDgyMiwzNDgyNSwzNDgyNiwzNDgyNywzNDgzMiwzNDg0MSwzNDgzNCwzNDgz''@;'; put 'put ''NSwzNDgzNiwzNDg0MCwzNDg0MiwzNDg0MywzNDg0NCwzNDg0NiwzNDg0NywzNDg1NiwzNDg2MSwzNDg2MiwzNDg2NCwzNDg2NiwzNDg2OSwzNDg3NCwzNDg3NiwzNDg4MSwzNDg4MywzNDg4NSwzNDg4OCwzNDg4OSwzNDg5MCwzNDg5MSwzNDg5NCwzNDg5NywzNDkwMSwzNDkwMiwzNDkwNCwz''@;'; put 'put ''NDkwNiwzNDkwOCwzNDkxMSwzNDkxMiwzNDkxNiwzNDkyMSwzNDkyOSwzNDkzNywzNDkzOSwzNDk0NCwzNDk2OCwzNDk3MCwzNDk3MSwzNDk3MiwzNDk3NSwzNDk3NiwzNDk4NCwzNDk4NiwzNTAwMiwzNTAwNSwzNTAwNiwzNTAwOCwzNTAxOCwzNTAxOSwzNTAyMCwzNTAyMSwzNTAyMiwzNTAy''@;'; put 'put ''NSwzNTAyNiwzNTAyNywzNTAzNSwzNTAzOCwzNTA0NywzNTA1NSwzNTA1NiwzNTA1NywzNTA2MSwzNTA2MywzNTA3MywzNTA3OCwzNTA4NSwzNTA4NiwzNTA4NywzNTA5MywzNTA5NCwzNTA5NiwzNTA5NywzNTA5OCwzNTEwMCwzNTEwNCwzNTExMCwzNTExMSwzNTExMiwzNTEyMCwzNTEyMSwz''@;'; put 'put ''NTEyMiwzNTEyNSwzNTEyOSwzNTEzMCwzNTEzNCwzNTEzNiwzNTEzOCwzNTE0MSwzNTE0MiwzNTE0NSwzNTE1MSwzNTE1NCwzNTE1OSwzNTE2MiwzNTE2MywzNTE2NCwzNTE2OSwzNTE3MCwzNTE3MSwzNTE3OSwzNTE4MiwzNTE4NCwzNTE4NywzNTE4OSwzNTE5NCwzNTE5NSwzNTE5NiwzNTE5''@;'; put 'put ''NywzNTIwOSwzNTIxMywzNTIxNiwzNTIyMCwzNTIyMSwzNTIyNywzNTIyOCwzNTIzMSwzNTIzMiwzNTIzNywzNTI0OCwzNTI1MiwzNTI1MywzNTI1NCwzNTI1NSwzNTI2MCwzNTI4NCwzNTI4NSwzNTI4NiwzNTI4NywzNTI4OCwzNTMwMSwzNTMwNSwzNTMwNywzNTMwOSwzNTMxMywzNTMxNSwz''@;'; put 'put ''NTMxOCwzNTMyMSwzNTMyNSwzNTMyNywzNTMzMiwzNTMzMywzNTMzNSwzNTM0MywzNTM0NSwzNTM0NiwzNTM0OCwzNTM0OSwzNTM1OCwzNTM2MCwzNTM2MiwzNTM2NCwzNTM2NiwzNTM3MSwzNTM3MiwzNTM3NSwzNTM4MSwzNTM4MywzNTM4OSwzNTM5MCwzNTM5MiwzNTM5NSwzNTM5NywzNTM5''@;'; put 'put ''OSwzNTQwMSwzNTQwNSwzNTQwNiwzNTQxMSwzNTQxNCwzNTQxNSwzNTQxNiwzNTQyMCwzNTQyMSwzNTQyNSwzNTQyOSwzNTQzMSwzNTQ0NSwzNTQ0NiwzNTQ0NywzNTQ0OSwzNTQ1MCwzNTQ1MSwzNTQ1NCwzNTQ1NSwzNTQ1NiwzNTQ1OSwzNTQ2MiwzNTQ2NywzNTQ3MSwzNTQ3MiwzNTQ3NCwz''@;'; put 'put ''NTQ3OCwzNTQ3OSwzNTQ4MSwzNTQ4NywzNTQ5NSwzNTQ5NywzNTUwMiwzNTUwMywzNTUwNywzNTUxMCwzNTUxMSwzNTUxNSwzNTUxOCwzNTUyMywzNTUyNiwzNTUyOCwzNTUyOSwzNTUzMCwzNTUzNywzNTUzOSwzNTU0MCwzNTU0MSwzNTU0MywzNTU0OSwzNTU1MSwzNTU2NCwzNTU2OCwzNTU3''@;'; put 'put ''MiwzNTU3MywzNTU3NCwzNTU4MCwzNTU4MywzNTU4OSwzNTU5MCwzNTU5NSwzNTYwMSwzNTYxMiwzNTYxNCwzNTYxNSwzNTU5NCwzNTYyOSwzNTYzMiwzNTYzOSwzNTY0NCwzNTY1MCwzNTY1MSwzNTY1MiwzNTY1MywzNTY1NCwzNTY1NiwzNTY2NiwzNTY2NywzNTY2OCwzNTY3MywzNTY2MSwz''@;'; put 'put ''NTY3OCwzNTY4MywzNTY5MywzNTcwMiwzNTcwNCwzNTcwNSwzNTcwOCwzNTcxMCwzNTcxMywzNTcxNiwzNTcxNywzNTcyMywzNTcyNSwzNTcyNywzNTczMiwzNTczMywzNTc0MCwzNTc0MiwzNTc0MywzNTg5NiwzNTg5NywzNTkwMSwzNTkwMiwzNTkwOSwzNTkxMSwzNTkxMywzNTkxNSwzNTkx''@;'; put 'put ''OSwzNTkyMSwzNTkyMywzNTkyNCwzNTkyNywzNTkyOCwzNTkzMSwzNTkzMywzNTkyOSwzNTkzOSwzNTk0MCwzNTk0MiwzNTk0NCwzNTk0NSwzNTk0OSwzNTk1NSwzNTk1NywzNTk1OCwzNTk2MywzNTk2NiwzNTk3NCwzNTk3NSwzNTk3OSwzNTk4NCwzNTk4NiwzNTk4NywzNTk5MywzNTk5NSwz''@;'; put 'put ''NTk5NiwzNjAwNCwzNjAyNSwzNjAyNiwzNjAzNywzNjAzOCwzNjA0MSwzNjA0MywzNjA0NywzNjA1NCwzNjA1MywzNjA1NywzNjA2MSwzNjA2NSwzNjA3MiwzNjA3NiwzNjA3OSwzNjA4MCwzNjA4MiwzNjA4NSwzNjA4NywzNjA4OCwzNjA5NCwzNjA5NSwzNjA5NywzNjA5OSwzNjEwNSwzNjEx''@;'; put 'put ''NCwzNjExOSwzNjEyMywzNjE5NywzNjIwMSwzNjIwNCwzNjIwNiwzNjIyMywzNjIyNiwzNjIyOCwzNjIzMiwzNjIzNywzNjI0MCwzNjI0MSwzNjI0NSwzNjI1NCwzNjI1NSwzNjI1NiwzNjI2MiwzNjI2NywzNjI2OCwzNjI3MSwzNjI3NCwzNjI3NywzNjI3OSwzNjI4MSwzNjI4MywzNjI4OCwz''@;'; put 'put ''NjI5MywzNjI5NCwzNjI5NSwzNjI5NiwzNjI5OCwzNjMwMiwzNjMwNSwzNjMwOCwzNjMwOSwzNjMxMSwzNjMxMywzNjMyNCwzNjMyNSwzNjMyNywzNjMzMiwzNjMzNiwzNjI4NCwzNjMzNywzNjMzOCwzNjM0MCwzNjM0OSwzNjM1MywzNjM1NiwzNjM1NywzNjM1OCwzNjM2MywzNjM2OSwzNjM3''@;'; put 'put ''MiwzNjM3NCwzNjM4NCwzNjM4NSwzNjM4NiwzNjM4NywzNjM5MCwzNjM5MSwzNjQwMSwzNjQwMywzNjQwNiwzNjQwNywzNjQwOCwzNjQwOSwzNjQxMywzNjQxNiwzNjQxNywzNjQyNywzNjQyOSwzNjQzMCwzNjQzMSwzNjQzNiwzNjQ0MywzNjQ0NCwzNjQ0NSwzNjQ0NiwzNjQ0OSwzNjQ1MCwz''@;'; put 'put ''NjQ1NywzNjQ2MCwzNjQ2MSwzNjQ2MywzNjQ2NCwzNjQ2NSwzNjQ3MywzNjQ3NCwzNjQ3NSwzNjQ4MiwzNjQ4MywzNjQ4OSwzNjQ5NiwzNjQ5OCwzNjUwMSwzNjUwNiwzNjUwNywzNjUwOSwzNjUxMCwzNjUxNCwzNjUxOSwzNjUyMSwzNjUyNSwzNjUyNiwzNjUzMSwzNjUzMywzNjUzOCwzNjUz''@;'; put 'put ''OSwzNjU0NCwzNjU0NSwzNjU0NywzNjU0OCwzNjU1MSwzNjU1OSwzNjU2MSwzNjU2NCwzNjU3MiwzNjU4NCwzNjU5MCwzNjU5MiwzNjU5MywzNjU5OSwzNjYwMSwzNjYwMiwzNjU4OSwzNjYwOCwzNjYxMCwzNjYxNSwzNjYxNiwzNjYyMywzNjYyNCwzNjYzMCwzNjYzMSwzNjYzMiwzNjYzOCwz''@;'; put 'put ''NjY0MCwzNjY0MSwzNjY0MywzNjY0NSwzNjY0NywzNjY0OCwzNjY1MiwzNjY1MywzNjY1NCwzNjY2MCwzNjY2MSwzNjY2MiwzNjY2MywzNjY2NiwzNjY3MiwzNjY3MywzNjY3NSwzNjY3OSwzNjY4NywzNjY4OSwzNjY5MCwzNjY5MSwzNjY5MiwzNjY5MywzNjY5NiwzNjcwMSwzNjcwMiwzNjcw''@;'; put 'put ''OSwzNjc2NSwzNjc2OCwzNjc2OSwzNjc3MiwzNjc3MywzNjc3NCwzNjc4OSwzNjc5MCwzNjc5MiwzNjc5OCwzNjgwMCwzNjgwMSwzNjgwNiwzNjgxMCwzNjgxMSwzNjgxMywzNjgxNiwzNjgxOCwzNjgxOSwzNjgyMSwzNjgzMiwzNjgzNSwzNjgzNiwzNjg0MCwzNjg0NiwzNjg0OSwzNjg1Mywz''@;'; put 'put ''Njg1NCwzNjg1OSwzNjg2MiwzNjg2NiwzNjg2OCwzNjg3MiwzNjg3NiwzNjg4OCwzNjg5MSwzNjkwNCwzNjkwNSwzNjkxMSwzNjkwNiwzNjkwOCwzNjkwOSwzNjkxNSwzNjkxNiwzNjkxOSwzNjkyNywzNjkzMSwzNjkzMiwzNjk0MCwzNjk1NSwzNjk1NywzNjk2MiwzNjk2NiwzNjk2NywzNjk3''@;'; put 'put ''MiwzNjk3NiwzNjk4MCwzNjk4NSwzNjk5NywzN2UzLDM3MDAzLDM3MDA0LDM3MDA2LDM3MDA4LDM3MDEzLDM3MDE1LDM3MDE2LDM3MDE3LDM3MDE5LDM3MDI0LDM3MDI1LDM3MDI2LDM3MDI5LDM3MDQwLDM3MDQyLDM3MDQzLDM3MDQ0LDM3MDQ2LDM3MDUzLDM3MDY4LDM3MDU0LDM3MDU5LDM3''@;'; put 'put ''MDYwLDM3MDYxLDM3MDYzLDM3MDY0LDM3MDc3LDM3MDc5LDM3MDgwLDM3MDgxLDM3MDg0LDM3MDg1LDM3MDg3LDM3MDkzLDM3MDc0LDM3MTEwLDM3MDk5LDM3MTAzLDM3MTA0LDM3MTA4LDM3MTE4LDM3MTE5LDM3MTIwLDM3MTI0LDM3MTI1LDM3MTI2LDM3MTI4LDM3MTMzLDM3MTM2LDM3MTQw''@;'; put 'put ''LDM3MTQyLDM3MTQzLDM3MTQ0LDM3MTQ2LDM3MTQ4LDM3MTUwLDM3MTUyLDM3MTU3LDM3MTU0LDM3MTU1LDM3MTU5LDM3MTYxLDM3MTY2LDM3MTY3LDM3MTY5LDM3MTcyLDM3MTc0LDM3MTc1LDM3MTc3LDM3MTc4LDM3MTgwLDM3MTgxLDM3MTg3LDM3MTkxLDM3MTkyLDM3MTk5LDM3MjAzLDM3''@;'; put 'put ''MjA3LDM3MjA5LDM3MjEwLDM3MjExLDM3MjE3LDM3MjIwLDM3MjIzLDM3MjI5LDM3MjM2LDM3MjQxLDM3MjQyLDM3MjQzLDM3MjQ5LDM3MjUxLDM3MjUzLDM3MjU0LDM3MjU4LDM3MjYyLDM3MjY1LDM3MjY3LDM3MjY4LDM3MjY5LDM3MjcyLDM3Mjc4LDM3MjgxLDM3Mjg2LDM3Mjg4LDM3Mjky''@;'; put 'put ''LDM3MjkzLDM3Mjk0LDM3Mjk2LDM3Mjk3LDM3Mjk4LDM3Mjk5LDM3MzAyLDM3MzA3LDM3MzA4LDM3MzA5LDM3MzExLDM3MzE0LDM3MzE1LDM3MzE3LDM3MzMxLDM3MzMyLDM3MzM1LDM3MzM3LDM3MzM4LDM3MzQyLDM3MzQ4LDM3MzQ5LDM3MzUzLDM3MzU0LDM3MzU2LDM3MzU3LDM3MzU4LDM3''@;'; put 'put ''MzU5LDM3MzYwLDM3MzYxLDM3MzY3LDM3MzY5LDM3MzcxLDM3MzczLDM3Mzc2LDM3Mzc3LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg1LDM3Mzg2LDM3Mzg4LDM3MzkyLDM3Mzk0LDM3Mzk1LDM3Mzk4LDM3NDAwLDM3NDA0LDM3NDA1LDM3NDExLDM3NDEyLDM3NDEzLDM3NDE0LDM3NDE2''@;'; put 'put ''LDM3NDIyLDM3NDIzLDM3NDI0LDM3NDI3LDM3NDI5LDM3NDMwLDM3NDMyLDM3NDMzLDM3NDM0LDM3NDM2LDM3NDM4LDM3NDQwLDM3NDQyLDM3NDQzLDM3NDQ2LDM3NDQ3LDM3NDUwLDM3NDUzLDM3NDU0LDM3NDU1LDM3NDU3LDM3NDY0LDM3NDY1LDM3NDY4LDM3NDY5LDM3NDcyLDM3NDczLDM3''@;'; put 'put ''NDc3LDM3NDc5LDM3NDgwLDM3NDgxLDM3NDg2LDM3NDg3LDM3NDg4LDM3NDkzLDM3NDk0LDM3NDk1LDM3NDk2LDM3NDk3LDM3NDk5LDM3NTAwLDM3NTAxLDM3NTAzLDM3NTEyLDM3NTEzLDM3NTE0LDM3NTE3LDM3NTE4LDM3NTIyLDM3NTI3LDM3NTI5LDM3NTM1LDM3NTM2LDM3NTQwLDM3NTQx''@;'; put 'put ''LDM3NTQzLDM3NTQ0LDM3NTQ3LDM3NTUxLDM3NTU0LDM3NTU4LDM3NTYwLDM3NTYyLDM3NTYzLDM3NTY0LDM3NTY1LDM3NTY3LDM3NTY4LDM3NTY5LDM3NTcwLDM3NTcxLDM3NTczLDM3NTc0LDM3NTc1LDM3NTc2LDM3NTc5LDM3NTgwLDM3NTgxLDM3NTgyLDM3NTg0LDM3NTg3LDM3NTg5LDM3''@;'; put 'put ''NTkxLDM3NTkyLDM3NTkzLDM3NTk2LDM3NTk3LDM3NTk5LDM3NjAwLDM3NjAxLDM3NjAzLDM3NjA1LDM3NjA3LDM3NjA4LDM3NjEyLDM3NjE0LDM3NjE2LDM3NjI1LDM3NjI3LDM3NjMxLDM3NjMyLDM3NjM0LDM3NjQwLDM3NjQ1LDM3NjQ5LDM3NjUyLDM3NjUzLDM3NjYwLDM3NjYxLDM3NjYy''@;'; put 'put ''LDM3NjYzLDM3NjY1LDM3NjY4LDM3NjY5LDM3NjcxLDM3NjczLDM3Njc0LDM3NjgzLDM3Njg0LDM3Njg2LDM3Njg3LDM3NzAzLDM3NzA0LDM3NzA1LDM3NzEyLDM3NzEzLDM3NzE0LDM3NzE3LDM3NzE5LDM3NzIwLDM3NzIyLDM3NzI2LDM3NzMyLDM3NzMzLDM3NzM1LDM3NzM3LDM3NzM4LDM3''@;'; put 'put ''NzQxLDM3NzQzLDM3NzQ0LDM3NzQ1LDM3NzQ3LDM3NzQ4LDM3NzUwLDM3NzU0LDM3NzU3LDM3NzU5LDM3NzYwLDM3NzYxLDM3NzYyLDM3NzY4LDM3NzcwLDM3NzcxLDM3NzczLDM3Nzc1LDM3Nzc4LDM3NzgxLDM3Nzg0LDM3Nzg3LDM3NzkwLDM3NzkzLDM3Nzk1LDM3Nzk2LDM3Nzk4LDM3ODAw''@;'; put 'put ''LDM3ODAzLDM3ODEyLDM3ODEzLDM3ODE0LDM3ODE4LDM3ODAxLDM3ODI1LDM3ODI4LDM3ODI5LDM3ODMwLDM3ODMxLDM3ODMzLDM3ODM0LDM3ODM1LDM3ODM2LDM3ODM3LDM3ODQzLDM3ODQ5LDM3ODUyLDM3ODU0LDM3ODU1LDM3ODU4LDM3ODYyLDM3ODYzLDM3ODgxLDM3ODc5LDM3ODgwLDM3''@;'; put 'put ''ODgyLDM3ODgzLDM3ODg1LDM3ODg5LDM3ODkwLDM3ODkyLDM3ODk2LDM3ODk3LDM3OTAxLDM3OTAyLDM3OTAzLDM3OTA5LDM3OTEwLDM3OTExLDM3OTE5LDM3OTM0LDM3OTM1LDM3OTM3LDM3OTM4LDM3OTM5LDM3OTQwLDM3OTQ3LDM3OTUxLDM3OTQ5LDM3OTU1LDM3OTU3LDM3OTYwLDM3OTYy''@;'; put 'put ''LDM3OTY0LDM3OTczLDM3OTc3LDM3OTgwLDM3OTgzLDM3OTg1LDM3OTg3LDM3OTkyLDM3OTk1LDM3OTk3LDM3OTk4LDM3OTk5LDM4MDAxLDM4MDAyLDM4MDIwLDM4MDE5LDM4MjY0LDM4MjY1LDM4MjcwLDM4Mjc2LDM4MjgwLDM4Mjg0LDM4Mjg1LDM4Mjg2LDM4MzAxLDM4MzAyLDM4MzAzLDM4''@;'; put 'put ''MzA1LDM4MzEwLDM4MzEzLDM4MzE1LDM4MzE2LDM4MzI0LDM4MzI2LDM4MzMwLDM4MzMzLDM4MzM1LDM4MzQyLDM4MzQ0LDM4MzQ1LDM4MzQ3LDM4MzUyLDM4MzUzLDM4MzU0LDM4MzU1LDM4MzYxLDM4MzYyLDM4MzY1LDM4MzY2LDM4MzY3LDM4MzY4LDM4MzcyLDM4Mzc0LDM4NDI5LDM4NDMw''@;'; put 'put ''LDM4NDM0LDM4NDM2LDM4NDM3LDM4NDM4LDM4NDQ0LDM4NDQ5LDM4NDUxLDM4NDU1LDM4NDU2LDM4NDU3LDM4NDU4LDM4NDYwLDM4NDYxLDM4NDY1LDM4NDgyLDM4NDg0LDM4NDg2LDM4NDg3LDM4NDg4LDM4NDk3LDM4NTEwLDM4NTE2LDM4NTIzLDM4NTI0LDM4NTI2LDM4NTI3LDM4NTI5LDM4''@;'; put 'put ''NTMwLDM4NTMxLDM4NTMyLDM4NTM3LDM4NTQ1LDM4NTUwLDM4NTU0LDM4NTU3LDM4NTU5LDM4NTY0LDM4NTY1LDM4NTY2LDM4NTY5LDM4NTc0LDM4NTc1LDM4NTc5LDM4NTg2LDM4NjAyLDM4NjEwLDIzOTg2LDM4NjE2LDM4NjE4LDM4NjIxLDM4NjIyLDM4NjIzLDM4NjMzLDM4NjM5LDM4NjQx''@;'; put 'put ''LDM4NjUwLDM4NjU4LDM4NjU5LDM4NjYxLDM4NjY1LDM4NjgyLDM4NjgzLDM4Njg1LDM4Njg5LDM4NjkwLDM4NjkxLDM4Njk2LDM4NzA1LDM4NzA3LDM4NzIxLDM4NzIzLDM4NzMwLDM4NzM0LDM4NzM1LDM4NzQxLDM4NzQzLDM4NzQ0LDM4NzQ2LDM4NzQ3LDM4NzU1LDM4NzU5LDM4NzYyLDM4''@;'; put 'put ''NzY2LDM4NzcxLDM4Nzc0LDM4Nzc1LDM4Nzc2LDM4Nzc5LDM4NzgxLDM4NzgzLDM4Nzg0LDM4NzkzLDM4ODA1LDM4ODA2LDM4ODA3LDM4ODA5LDM4ODEwLDM4ODE0LDM4ODE1LDM4ODE4LDM4ODI4LDM4ODMwLDM4ODMzLDM4ODM0LDM4ODM3LDM4ODM4LDM4ODQwLDM4ODQxLDM4ODQyLDM4ODQ0''@;'; put 'put ''LDM4ODQ2LDM4ODQ3LDM4ODQ5LDM4ODUyLDM4ODUzLDM4ODU1LDM4ODU3LDM4ODU4LDM4ODYwLDM4ODYxLDM4ODYyLDM4ODY0LDM4ODY1LDM4ODY4LDM4ODcxLDM4ODcyLDM4ODczLDM4ODc3LDM4ODc4LDM4ODgwLDM4ODc1LDM4ODgxLDM4ODg0LDM4ODk1LDM4ODk3LDM4OTAwLDM4OTAzLDM4''@;'; put 'put ''OTA0LDM4OTA2LDM4OTE5LDM4OTIyLDM4OTM3LDM4OTI1LDM4OTI2LDM4OTMyLDM4OTM0LDM4OTQwLDM4OTQyLDM4OTQ0LDM4OTQ3LDM4OTUwLDM4OTU1LDM4OTU4LDM4OTU5LDM4OTYwLDM4OTYyLDM4OTYzLDM4OTY1LDM4OTQ5LDM4OTc0LDM4OTgwLDM4OTgzLDM4OTg2LDM4OTkzLDM4OTk0''@;'; put 'put ''LDM4OTk1LDM4OTk4LDM4OTk5LDM5MDAxLDM5MDAyLDM5MDEwLDM5MDExLDM5MDEzLDM5MDE0LDM5MDE4LDM5MDIwLDM5MDgzLDM5MDg1LDM5MDg2LDM5MDg4LDM5MDkyLDM5MDk1LDM5MDk2LDM5MDk4LDM5MDk5LDM5MTAzLDM5MTA2LDM5MTA5LDM5MTEyLDM5MTE2LDM5MTM3LDM5MTM5LDM5''@;'; put 'put ''MTQxLDM5MTQyLDM5MTQzLDM5MTQ2LDM5MTU1LDM5MTU4LDM5MTcwLDM5MTc1LDM5MTc2LDM5MTg1LDM5MTg5LDM5MTkwLDM5MTkxLDM5MTk0LDM5MTk1LDM5MTk2LDM5MTk5LDM5MjAyLDM5MjA2LDM5MjA3LDM5MjExLDM5MjE3LDM5MjE4LDM5MjE5LDM5MjIwLDM5MjIxLDM5MjI1LDM5MjI2''@;'; put 'put ''LDM5MjI3LDM5MjI4LDM5MjMyLDM5MjMzLDM5MjM4LDM5MjM5LDM5MjQwLDM5MjQ1LDM5MjQ2LDM5MjUyLDM5MjU2LDM5MjU3LDM5MjU5LDM5MjYwLDM5MjYyLDM5MjYzLDM5MjY0LDM5MzIzLDM5MzI1LDM5MzI3LDM5MzM0LDM5MzQ0LDM5MzQ1LDM5MzQ2LDM5MzQ5LDM5MzUzLDM5MzU0LDM5''@;'; put 'put ''MzU3LDM5MzU5LDM5MzYzLDM5MzY5LDM5Mzc5LDM5MzgwLDM5Mzg1LDM5Mzg2LDM5Mzg4LDM5MzkwLDM5Mzk5LDM5NDAyLDM5NDAzLDM5NDA0LDM5NDA4LDM5NDEyLDM5NDEzLDM5NDE3LDM5NDIxLDM5NDIyLDM5NDI2LDM5NDI3LDM5NDI4LDM5NDM1LDM5NDM2LDM5NDQwLDM5NDQxLDM5NDQ2''@;'; put 'put ''LDM5NDU0LDM5NDU2LDM5NDU4LDM5NDU5LDM5NDYwLDM5NDYzLDM5NDY5LDM5NDcwLDM5NDc1LDM5NDc3LDM5NDc4LDM5NDgwLDM5NDk1LDM5NDg5LDM5NDkyLDM5NDk4LDM5NDk5LDM5NTAwLDM5NTAyLDM5NTA1LDM5NTA4LDM5NTEwLDM5NTE3LDM5NTk0LDM5NTk2LDM5NTk4LDM5NTk5LDM5''@;'; put 'put ''NjAyLDM5NjA0LDM5NjA1LDM5NjA2LDM5NjA5LDM5NjExLDM5NjE0LDM5NjE1LDM5NjE3LDM5NjE5LDM5NjIyLDM5NjI0LDM5NjMwLDM5NjMyLDM5NjM0LDM5NjM3LDM5NjM4LDM5NjM5LDM5NjQzLDM5NjQ0LDM5NjQ4LDM5NjUyLDM5NjUzLDM5NjU1LDM5NjU3LDM5NjYwLDM5NjY2LDM5NjY3''@;'; put 'put ''LDM5NjY5LDM5NjczLDM5Njc0LDM5Njc3LDM5Njc5LDM5NjgwLDM5NjgxLDM5NjgyLDM5NjgzLDM5Njg0LDM5Njg1LDM5Njg4LDM5Njg5LDM5NjkxLDM5NjkyLDM5NjkzLDM5Njk0LDM5Njk2LDM5Njk4LDM5NzAyLDM5NzA1LDM5NzA3LDM5NzA4LDM5NzEyLDM5NzE4LDM5NzIzLDM5NzI1LDM5''@;'; put 'put ''NzMxLDM5NzMyLDM5NzMzLDM5NzM1LDM5NzM3LDM5NzM4LDM5NzQxLDM5NzUyLDM5NzU1LDM5NzU2LDM5NzY1LDM5NzY2LDM5NzY3LDM5NzcxLDM5Nzc0LDM5Nzc3LDM5Nzc5LDM5NzgxLDM5NzgyLDM5Nzg0LDM5Nzg2LDM5Nzg3LDM5Nzg4LDM5Nzg5LDM5NzkwLDM5Nzk1LDM5Nzk3LDM5Nzk5''@;'; put 'put ''LDM5ODAwLDM5ODAxLDM5ODA3LDM5ODA4LDM5ODEyLDM5ODEzLDM5ODE0LDM5ODE1LDM5ODE3LDM5ODE4LDM5ODE5LDM5ODIxLDM5ODIzLDM5ODI0LDM5ODI4LDM5ODM0LDM5ODM3LDM5ODM4LDM5ODQ2LDM5ODQ3LDM5ODQ5LDM5ODUyLDM5ODU2LDM5ODU3LDM5ODU4LDM5ODYzLDM5ODY0LDM5''@;'; put 'put ''ODY3LDM5ODY4LDM5ODcwLDM5ODcxLDM5ODczLDM5ODc5LDM5ODgwLDM5ODg2LDM5ODg4LDM5ODk1LDM5ODk2LDM5OTAxLDM5OTAzLDM5OTA5LDM5OTExLDM5OTE0LDM5OTE1LDM5OTE5LDM5OTIzLDM5OTI3LDM5OTI4LDM5OTI5LDM5OTMwLDM5OTMzLDM5OTM1LDM5OTM2LDM5OTM4LDM5OTQ3''@;'; put 'put ''LDM5OTUxLDM5OTUzLDM5OTU4LDM5OTYwLDM5OTYxLDM5OTYyLDM5OTY0LDM5OTY2LDM5OTcwLDM5OTcxLDM5OTc0LDM5OTc1LDM5OTc2LDM5OTc3LDM5OTc4LDM5OTg1LDM5OTg5LDM5OTkwLDM5OTkxLDM5OTk3LDQwMDAxLDQwMDAzLDQwMDA0LDQwMDA1LDQwMDA5LDQwMDEwLDQwMDE0LDQw''@;'; put 'put ''MDE1LDQwMDE2LDQwMDE5LDQwMDIwLDQwMDIyLDQwMDI0LDQwMDI3LDQwMDI5LDQwMDMwLDQwMDMxLDQwMDM1LDQwMDQxLDQwMDQyLDQwMDI4LDQwMDQzLDQwMDQwLDQwMDQ2LDQwMDQ4LDQwMDUwLDQwMDUzLDQwMDU1LDQwMDU5LDQwMTY2LDQwMTc4LDQwMTgzLDQwMTg1LDQwMjAzLDQwMTk0''@;'; put 'put ''LDQwMjA5LDQwMjE1LDQwMjE2LDQwMjIwLDQwMjIxLDQwMjIyLDQwMjM5LDQwMjQwLDQwMjQyLDQwMjQzLDQwMjQ0LDQwMjUwLDQwMjUyLDQwMjYxLDQwMjUzLDQwMjU4LDQwMjU5LDQwMjYzLDQwMjY2LDQwMjc1LDQwMjc2LDQwMjg3LDQwMjkxLDQwMjkwLDQwMjkzLDQwMjk3LDQwMjk4LDQw''@;'; put 'put ''Mjk5LDQwMzA0LDQwMzEwLDQwMzExLDQwMzE1LDQwMzE2LDQwMzE4LDQwMzIzLDQwMzI0LDQwMzI2LDQwMzMwLDQwMzMzLDQwMzM0LDQwMzM4LDQwMzM5LDQwMzQxLDQwMzQyLDQwMzQzLDQwMzQ0LDQwMzUzLDQwMzYyLDQwMzY0LDQwMzY2LDQwMzY5LDQwMzczLDQwMzc3LDQwMzgwLDQwMzgz''@;'; put 'put ''LDQwMzg3LDQwMzkxLDQwMzkzLDQwMzk0LDQwNDA0LDQwNDA1LDQwNDA2LDQwNDA3LDQwNDEwLDQwNDE0LDQwNDE1LDQwNDE2LDQwNDIxLDQwNDIzLDQwNDI1LDQwNDI3LDQwNDMwLDQwNDMyLDQwNDM1LDQwNDM2LDQwNDQ2LDQwNDU4LDQwNDUwLDQwNDU1LDQwNDYyLDQwNDY0LDQwNDY1LDQw''@;'; put 'put ''NDY2LDQwNDY5LDQwNDcwLDQwNDczLDQwNDc2LDQwNDc3LDQwNTcwLDQwNTcxLDQwNTcyLDQwNTc2LDQwNTc4LDQwNTc5LDQwNTgwLDQwNTgxLDQwNTgzLDQwNTkwLDQwNTkxLDQwNTk4LDQwNjAwLDQwNjAzLDQwNjA2LDQwNjEyLDQwNjE2LDQwNjIwLDQwNjIyLDQwNjIzLDQwNjI0LDQwNjI3''@;'; put 'put ''LDQwNjI4LDQwNjI5LDQwNjQ2LDQwNjQ4LDQwNjUxLDQwNjYxLDQwNjcxLDQwNjc2LDQwNjc5LDQwNjg0LDQwNjg1LDQwNjg2LDQwNjg4LDQwNjg5LDQwNjkwLDQwNjkzLDQwNjk2LDQwNzAzLDQwNzA2LDQwNzA3LDQwNzEzLDQwNzE5LDQwNzIwLDQwNzIxLDQwNzIyLDQwNzI0LDQwNzI2LDQw''@;'; put 'put ''NzI3LDQwNzI5LDQwNzMwLDQwNzMxLDQwNzM1LDQwNzM4LDQwNzQyLDQwNzQ2LDQwNzQ3LDQwNzUxLDQwNzUzLDQwNzU0LDQwNzU2LDQwNzU5LDQwNzYxLDQwNzYyLDQwNzY0LDQwNzY1LDQwNzY3LDQwNzY5LDQwNzcxLDQwNzcyLDQwNzczLDQwNzc0LDQwNzc1LDQwNzg3LDQwNzg5LDQwNzkw''@;'; put 'put ''LDQwNzkxLDQwNzkyLDQwNzk0LDQwNzk3LDQwNzk4LDQwODA4LDQwODA5LDQwODEzLDQwODE0LDQwODE1LDQwODE2LDQwODE3LDQwODE5LDQwODIxLDQwODI2LDQwODI5LDQwODQ3LDQwODQ4LDQwODQ5LDQwODUwLDQwODUyLDQwODU0LDQwODU1LDQwODYyLDQwODY1LDQwODY2LDQwODY3LDQw''@;'; put 'put ''ODY5LG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxu''@;'; put 'put ''dWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0saWJtODY2OlsxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEw''@;'; put 'put ''NjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEwNjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4Nyw5NjE3LDk2MTgsOTYxOSw5NDc0LDk1MDgsOTU2OSw5NTcwLDk1''@;'; put 'put ''NTgsOTU1Nyw5NTcxLDk1NTMsOTU1OSw5NTY1LDk1NjQsOTU2Myw5NDg4LDk0OTIsOTUyNCw5NTE2LDk1MDAsOTQ3Miw5NTMyLDk1NjYsOTU2Nyw5NTYyLDk1NTYsOTU3Nyw5NTc0LDk1NjgsOTU1Miw5NTgwLDk1NzUsOTU3Niw5NTcyLDk1NzMsOTU2MSw5NTYwLDk1NTQsOTU1NSw5NTc5LDk1''@;'; put 'put ''NzgsOTQ5Niw5NDg0LDk2MDgsOTYwNCw5NjEyLDk2MTYsOTYwMCwxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDExMDEsMTEwMiwxMTAzLDEwMjUsMTEwNSwxMDI4LDExMDgsMTAzMSwxMTExLDEwMzgsMTExOCwxNzYsODcy''@;'; put 'put ''OSwxODMsODczMCw4NDcwLDE2NCw5NjMyLDE2MF0sImlzby04ODU5LTIiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1Nywx''@;'; put 'put ''NTgsMTU5LDE2MCwyNjAsNzI4LDMyMSwxNjQsMzE3LDM0NiwxNjcsMTY4LDM1MiwzNTAsMzU2LDM3NywxNzMsMzgxLDM3OSwxNzYsMjYxLDczMSwzMjIsMTgwLDMxOCwzNDcsNzExLDE4NCwzNTMsMzUxLDM1NywzNzgsNzMzLDM4MiwzODAsMzQwLDE5MywxOTQsMjU4LDE5NiwzMTMsMjYyLDE5''@;'; put 'put ''OSwyNjgsMjAxLDI4MCwyMDMsMjgyLDIwNSwyMDYsMjcwLDI3MiwzMjMsMzI3LDIxMSwyMTIsMzM2LDIxNCwyMTUsMzQ0LDM2NiwyMTgsMzY4LDIyMCwyMjEsMzU0LDIyMywzNDEsMjI1LDIyNiwyNTksMjI4LDMxNCwyNjMsMjMxLDI2OSwyMzMsMjgxLDIzNSwyODMsMjM3LDIzOCwyNzEsMjcz''@;'; put 'put ''LDMyNCwzMjgsMjQzLDI0NCwzMzcsMjQ2LDI0NywzNDUsMzY3LDI1MCwzNjksMjUyLDI1MywzNTUsNzI5XSwiaXNvLTg4NTktMyI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwx''@;'; put 'put ''NTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI5NCw3MjgsMTYzLDE2NCxudWxsLDI5MiwxNjcsMTY4LDMwNCwzNTAsMjg2LDMwOCwxNzMsbnVsbCwzNzksMTc2LDI5NSwxNzgsMTc5LDE4MCwxODEsMjkzLDE4MywxODQsMzA1LDM1MSwyODcsMzA5LDE4OSxudWxs''@;'; put 'put ''LDM4MCwxOTIsMTkzLDE5NCxudWxsLDE5NiwyNjYsMjY0LDE5OSwyMDAsMjAxLDIwMiwyMDMsMjA0LDIwNSwyMDYsMjA3LG51bGwsMjA5LDIxMCwyMTEsMjEyLDI4OCwyMTQsMjE1LDI4NCwyMTcsMjE4LDIxOSwyMjAsMzY0LDM0OCwyMjMsMjI0LDIyNSwyMjYsbnVsbCwyMjgsMjY3LDI2NSwy''@;'; put 'put ''MzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSxudWxsLDI0MSwyNDIsMjQzLDI0NCwyODksMjQ2LDI0NywyODUsMjQ5LDI1MCwyNTEsMjUyLDM2NSwzNDksNzI5XSwiaXNvLTg4NTktNCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0''@;'; put 'put ''MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDI2MCwzMTIsMzQyLDE2NCwyOTYsMzE1LDE2NywxNjgsMzUyLDI3NCwyOTAsMzU4LDE3MywzODEsMTc1LDE3NiwyNjEsNzMxLDM0MywxODAsMjk3''@;'; put 'put ''LDMxNiw3MTEsMTg0LDM1MywyNzUsMjkxLDM1OSwzMzAsMzgyLDMzMSwyNTYsMTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMzAyLDI2OCwyMDEsMjgwLDIwMywyNzgsMjA1LDIwNiwyOTgsMjcyLDMyNSwzMzIsMzEwLDIxMiwyMTMsMjE0LDIxNSwyMTYsMzcwLDIxOCwyMTksMjIwLDM2MCwzNjIs''@;'; put 'put ''MjIzLDI1NywyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwzMDMsMjY5LDIzMywyODEsMjM1LDI3OSwyMzcsMjM4LDI5OSwyNzMsMzI2LDMzMywzMTEsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwzNzEsMjUwLDI1MSwyNTIsMzYxLDM2Myw3MjldLCJpc28tODg1OS01IjpbMTI4LDEyOSwxMzAsMTMxLDEz''@;'; put 'put ''MiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsMTAyNSwxMDI2LDEwMjcsMTAyOCwxMDI5LDEwMzAsMTAzMSwxMDMyLDEwMzMsMTAzNCwx''@;'; put 'put ''MDM1LDEwMzYsMTczLDEwMzgsMTAzOSwxMDQwLDEwNDEsMTA0MiwxMDQzLDEwNDQsMTA0NSwxMDQ2LDEwNDcsMTA0OCwxMDQ5LDEwNTAsMTA1MSwxMDUyLDEwNTMsMTA1NCwxMDU1LDEwNTYsMTA1NywxMDU4LDEwNTksMTA2MCwxMDYxLDEwNjIsMTA2MywxMDY0LDEwNjUsMTA2NiwxMDY3LDEw''@;'; put 'put ''NjgsMTA2OSwxMDcwLDEwNzEsMTA3MiwxMDczLDEwNzQsMTA3NSwxMDc2LDEwNzcsMTA3OCwxMDc5LDEwODAsMTA4MSwxMDgyLDEwODMsMTA4NCwxMDg1LDEwODYsMTA4NywxMDg4LDEwODksMTA5MCwxMDkxLDEwOTIsMTA5MywxMDk0LDEwOTUsMTA5NiwxMDk3LDEwOTgsMTA5OSwxMTAwLDEx''@;'; put 'put ''MDEsMTEwMiwxMTAzLDg0NzAsMTEwNSwxMTA2LDExMDcsMTEwOCwxMTA5LDExMTAsMTExMSwxMTEyLDExMTMsMTExNCwxMTE1LDExMTYsMTY3LDExMTgsMTExOV0sImlzby04ODU5LTYiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0''@;'; put 'put ''MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCxudWxsLG51bGwsbnVsbCwxNjQsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCwxNTQ4LDE3MyxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE1NjMsbnVsbCxudWxsLG51bGwsMTU2NyxudWxsLDE1NjksMTU3MCwxNTcxLDE1NzIsMTU3MywxNTc0LDE1NzUsMTU3NiwxNTc3LDE1NzgsMTU3OSwxNTgwLDE1ODEsMTU4MiwxNTgzLDE1ODQsMTU4NSwxNTg2LDE1ODcsMTU4''@;'; put 'put ''OCwxNTg5LDE1OTAsMTU5MSwxNTkyLDE1OTMsMTU5NCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsMTYwMCwxNjAxLDE2MDIsMTYwMywxNjA0LDE2MDUsMTYwNiwxNjA3LDE2MDgsMTYwOSwxNjEwLDE2MTEsMTYxMiwxNjEzLDE2MTQsMTYxNSwxNjE2LDE2MTcsMTYxOCxudWxsLG51bGwsbnVs''@;'; put 'put ''bCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsXSwiaXNvLTg4NTktNyI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1''@;'; put 'put ''MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDgyMTYsODIxNywxNjMsODM2NCw4MzY3LDE2NiwxNjcsMTY4LDE2OSw4OTAsMTcxLDE3MiwxNzMsbnVsbCw4MjEzLDE3NiwxNzcsMTc4LDE3OSw5MDAsOTAxLDkwMiwxODMsOTA0LDkwNSw5MDYsMTg3LDkwOCwxODksOTEwLDkxMSw5''@;'; put 'put ''MTIsOTEzLDkxNCw5MTUsOTE2LDkxNyw5MTgsOTE5LDkyMCw5MjEsOTIyLDkyMyw5MjQsOTI1LDkyNiw5MjcsOTI4LDkyOSxudWxsLDkzMSw5MzIsOTMzLDkzNCw5MzUsOTM2LDkzNyw5MzgsOTM5LDk0MCw5NDEsOTQyLDk0Myw5NDQsOTQ1LDk0Niw5NDcsOTQ4LDk0OSw5NTAsOTUxLDk1Miw5''@;'; put 'put ''NTMsOTU0LDk1NSw5NTYsOTU3LDk1OCw5NTksOTYwLDk2MSw5NjIsOTYzLDk2NCw5NjUsOTY2LDk2Nyw5NjgsOTY5LDk3MCw5NzEsOTcyLDk3Myw5NzQsbnVsbF0sImlzby04ODU5LTgiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0''@;'; put 'put ''MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCxudWxsLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMjE1LDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4''@;'; put 'put ''MywxODQsMTg1LDI0NywxODcsMTg4LDE4OSwxOTAsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGws''@;'; put 'put ''bnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDgyMTUsMTQ4OCwxNDg5LDE0OTAsMTQ5MSwxNDkyLDE0OTMsMTQ5NCwxNDk1LDE0OTYsMTQ5NywxNDk4LDE0OTksMTUwMCwxNTAxLDE1MDIsMTUwMywxNTA0LDE1MDUsMTUwNiwxNTA3LDE1MDgsMTUwOSwxNTEwLDE1MTEsMTUxMiwxNTEzLDE1MTQs''@;'; put 'put ''bnVsbCxudWxsLDgyMDYsODIwNyxudWxsXSwiaXNvLTg4NTktMTAiOlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgs''@;'; put 'put ''MTU5LDE2MCwyNjAsMjc0LDI5MCwyOTgsMjk2LDMxMCwxNjcsMzE1LDI3MiwzNTIsMzU4LDM4MSwxNzMsMzYyLDMzMCwxNzYsMjYxLDI3NSwyOTEsMjk5LDI5NywzMTEsMTgzLDMxNiwyNzMsMzUzLDM1OSwzODIsODIxMywzNjMsMzMxLDI1NiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwzMDIs''@;'; put 'put ''MjY4LDIwMSwyODAsMjAzLDI3OCwyMDUsMjA2LDIwNywyMDgsMzI1LDMzMiwyMTEsMjEyLDIxMywyMTQsMzYwLDIxNiwzNzAsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjU3LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDMwMywyNjksMjMzLDI4MSwyMzUsMjc5LDIzNywyMzgsMjM5LDI0MCwz''@;'; put 'put ''MjYsMzMzLDI0MywyNDQsMjQ1LDI0NiwzNjEsMjQ4LDM3MSwyNTAsMjUxLDI1MiwyNTMsMjU0LDMxMl0sImlzby04ODU5LTEzIjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1''@;'; put 'put ''MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwxNjAsODIyMSwxNjIsMTYzLDE2NCw4MjIyLDE2NiwxNjcsMjE2LDE2OSwzNDIsMTcxLDE3MiwxNzMsMTc0LDE5OCwxNzYsMTc3LDE3OCwxNzksODIyMCwxODEsMTgyLDE4MywyNDgsMTg1LDM0MywxODcsMTg4LDE4OSwxOTAs''@;'; put 'put ''MjMwLDI2MCwzMDIsMjU2LDI2MiwxOTYsMTk3LDI4MCwyNzQsMjY4LDIwMSwzNzcsMjc4LDI5MCwzMTAsMjk4LDMxNSwzNTIsMzIzLDMyNSwyMTEsMzMyLDIxMywyMTQsMjE1LDM3MCwzMjEsMzQ2LDM2MiwyMjAsMzc5LDM4MSwyMjMsMjYxLDMwMywyNTcsMjYzLDIyOCwyMjksMjgxLDI3NSwy''@;'; put 'put ''NjksMjMzLDM3OCwyNzksMjkxLDMxMSwyOTksMzE2LDM1MywzMjQsMzI2LDI0MywzMzMsMjQ1LDI0NiwyNDcsMzcxLDMyMiwzNDcsMzYzLDI1MiwzODAsMzgyLDgyMTddLCJpc28tODg1OS0xNCI6WzEyOCwxMjksMTMwLDEzMSwxMzIsMTMzLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwx''@;'; put 'put ''NDEsMTQyLDE0MywxNDQsMTQ1LDE0NiwxNDcsMTQ4LDE0OSwxNTAsMTUxLDE1MiwxNTMsMTU0LDE1NSwxNTYsMTU3LDE1OCwxNTksMTYwLDc2ODIsNzY4MywxNjMsMjY2LDI2Nyw3NjkwLDE2Nyw3ODA4LDE2OSw3ODEwLDc2OTEsNzkyMiwxNzMsMTc0LDM3Niw3NzEwLDc3MTEsMjg4LDI4OSw3''@;'; put 'put ''NzQ0LDc3NDUsMTgyLDc3NjYsNzgwOSw3NzY3LDc4MTEsNzc3Niw3OTIzLDc4MTIsNzgxMyw3Nzc3LDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywzNzIsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsNzc4NiwyMTYsMjE3LDIx''@;'; put 'put ''OCwyMTksMjIwLDIyMSwzNzQsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywyMzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwzNzMsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsNzc4NywyNDgsMjQ5LDI1MCwyNTEsMjUyLDI1MywzNzUsMjU1XSwiaXNvLTg4NTktMTUi''@;'; put 'put ''OlsxMjgsMTI5LDEzMCwxMzEsMTMyLDEzMywxMzQsMTM1LDEzNiwxMzcsMTM4LDEzOSwxNDAsMTQxLDE0MiwxNDMsMTQ0LDE0NSwxNDYsMTQ3LDE0OCwxNDksMTUwLDE1MSwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwxNjEsMTYyLDE2Myw4MzY0LDE2NSwzNTIsMTY3LDM1''@;'; put 'put ''MywxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDM4MSwxODEsMTgyLDE4MywzODIsMTg1LDE4NiwxODcsMzM4LDMzOSwzNzYsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5''@;'; put 'put ''LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAs''@;'; put 'put ''MjUxLDI1MiwyNTMsMjU0LDI1NV0sImlzby04ODU5LTE2IjpbMTI4LDEyOSwxMzAsMTMxLDEzMiwxMzMsMTM0LDEzNSwxMzYsMTM3LDEzOCwxMzksMTQwLDE0MSwxNDIsMTQzLDE0NCwxNDUsMTQ2LDE0NywxNDgsMTQ5LDE1MCwxNTEsMTUyLDE1MywxNTQsMTU1LDE1NiwxNTcsMTU4LDE1OSwx''@;'; put 'put ''NjAsMjYwLDI2MSwzMjEsODM2NCw4MjIyLDM1MiwxNjcsMzUzLDE2OSw1MzYsMTcxLDM3NywxNzMsMzc4LDM3OSwxNzYsMTc3LDI2OCwzMjIsMzgxLDgyMjEsMTgyLDE4MywzODIsMjY5LDUzNywxODcsMzM4LDMzOSwzNzYsMzgwLDE5MiwxOTMsMTk0LDI1OCwxOTYsMjYyLDE5OCwxOTksMjAw''@;'; put 'put ''LDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyNzIsMzIzLDIxMCwyMTEsMjEyLDMzNiwyMTQsMzQ2LDM2OCwyMTcsMjE4LDIxOSwyMjAsMjgwLDUzOCwyMjMsMjI0LDIyNSwyMjYsMjU5LDIyOCwyNjMsMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI3MywzMjQs''@;'; put 'put ''MjQyLDI0MywyNDQsMzM3LDI0NiwzNDcsMzY5LDI0OSwyNTAsMjUxLDI1MiwyODEsNTM5LDI1NV0sImtvaTgtciI6Wzk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksODk5''@;'; put 'put ''Miw5NjMyLDg3MjksODczMCw4Nzc2LDg4MDQsODgwNSwxNjAsODk5MywxNzYsMTc4LDE4MywyNDcsOTU1Miw5NTUzLDk1NTQsMTEwNSw5NTU1LDk1NTYsOTU1Nyw5NTU4LDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2Myw5NTY0LDk1NjUsOTU2Niw5NTY3LDk1NjgsOTU2OSwxMDI1LDk1NzAsOTU3''@;'; put 'put ''MSw5NTcyLDk1NzMsOTU3NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDk1NzksOTU4MCwxNjksMTEwMiwxMDcyLDEwNzMsMTA5NCwxMDc2LDEwNzcsMTA5MiwxMDc1LDEwOTMsMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDExMDMsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDc4''@;'; put 'put ''LDEwNzQsMTEwMCwxMDk5LDEwNzksMTA5NiwxMTAxLDEwOTcsMTA5NSwxMDk4LDEwNzAsMTA0MCwxMDQxLDEwNjIsMTA0NCwxMDQ1LDEwNjAsMTA0MywxMDYxLDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDcxLDEwNTYsMTA1NywxMDU4LDEwNTksMTA0NiwxMDQy''@;'; put 'put ''LDEwNjgsMTA2NywxMDQ3LDEwNjQsMTA2OSwxMDY1LDEwNjMsMTA2Nl0sImtvaTgtdSI6Wzk0NzIsOTQ3NCw5NDg0LDk0ODgsOTQ5Miw5NDk2LDk1MDAsOTUwOCw5NTE2LDk1MjQsOTUzMiw5NjAwLDk2MDQsOTYwOCw5NjEyLDk2MTYsOTYxNyw5NjE4LDk2MTksODk5Miw5NjMyLDg3MjksODcz''@;'; put 'put ''MCw4Nzc2LDg4MDQsODgwNSwxNjAsODk5MywxNzYsMTc4LDE4MywyNDcsOTU1Miw5NTUzLDk1NTQsMTEwNSwxMTA4LDk1NTYsMTExMCwxMTExLDk1NTksOTU2MCw5NTYxLDk1NjIsOTU2MywxMTY5LDExMTgsOTU2Niw5NTY3LDk1NjgsOTU2OSwxMDI1LDEwMjgsOTU3MSwxMDMwLDEwMzEsOTU3''@;'; put 'put ''NCw5NTc1LDk1NzYsOTU3Nyw5NTc4LDExNjgsMTAzOCwxNjksMTEwMiwxMDcyLDEwNzMsMTA5NCwxMDc2LDEwNzcsMTA5MiwxMDc1LDEwOTMsMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDExMDMsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDc4LDEwNzQsMTEwMCwxMDk5''@;'; put 'put ''LDEwNzksMTA5NiwxMTAxLDEwOTcsMTA5NSwxMDk4LDEwNzAsMTA0MCwxMDQxLDEwNjIsMTA0NCwxMDQ1LDEwNjAsMTA0MywxMDYxLDEwNDgsMTA0OSwxMDUwLDEwNTEsMTA1MiwxMDUzLDEwNTQsMTA1NSwxMDcxLDEwNTYsMTA1NywxMDU4LDEwNTksMTA0NiwxMDQyLDEwNjgsMTA2NywxMDQ3''@;'; put 'put ''LDEwNjQsMTA2OSwxMDY1LDEwNjMsMTA2Nl0sbWFjaW50b3NoOlsxOTYsMTk3LDE5OSwyMDEsMjA5LDIxNCwyMjAsMjI1LDIyNCwyMjYsMjI4LDIyNywyMjksMjMxLDIzMywyMzIsMjM0LDIzNSwyMzcsMjM2LDIzOCwyMzksMjQxLDI0MywyNDIsMjQ0LDI0NiwyNDUsMjUwLDI0OSwyNTEsMjUy''@;'; put 'put ''LDgyMjQsMTc2LDE2MiwxNjMsMTY3LDgyMjYsMTgyLDIyMywxNzQsMTY5LDg0ODIsMTgwLDE2OCw4ODAwLDE5OCwyMTYsODczNCwxNzcsODgwNCw4ODA1LDE2NSwxODEsODcwNiw4NzIxLDg3MTksOTYwLDg3NDcsMTcwLDE4Niw5MzcsMjMwLDI0OCwxOTEsMTYxLDE3Miw4NzMwLDQwMiw4Nzc2''@;'; put 'put ''LDg3MTAsMTcxLDE4Nyw4MjMwLDE2MCwxOTIsMTk1LDIxMywzMzgsMzM5LDgyMTEsODIxMiw4MjIwLDgyMjEsODIxNiw4MjE3LDI0Nyw5Njc0LDI1NSwzNzYsODI2MCw4MzY0LDgyNDksODI1MCw2NDI1Nyw2NDI1OCw4MjI1LDE4Myw4MjE4LDgyMjIsODI0MCwxOTQsMjAyLDE5MywyMDMsMjAw''@;'; put 'put ''LDIwNSwyMDYsMjA3LDIwNCwyMTEsMjEyLDYzNzQzLDIxMCwyMTgsMjE5LDIxNywzMDUsNzEwLDczMiwxNzUsNzI4LDcyOSw3MzAsMTg0LDczMyw3MzEsNzExXSwid2luZG93cy04NzQiOls4MzY0LDEyOSwxMzAsMTMxLDEzMiw4MjMwLDEzNCwxMzUsMTM2LDEzNywxMzgsMTM5LDE0MCwxNDEs''@;'; put 'put ''MTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsMTUzLDE1NCwxNTUsMTU2LDE1NywxNTgsMTU5LDE2MCwzNTg1LDM1ODYsMzU4NywzNTg4LDM1ODksMzU5MCwzNTkxLDM1OTIsMzU5MywzNTk0LDM1OTUsMzU5NiwzNTk3LDM1OTgsMzU5OSwzNjAwLDM2''@;'; put 'put ''MDEsMzYwMiwzNjAzLDM2MDQsMzYwNSwzNjA2LDM2MDcsMzYwOCwzNjA5LDM2MTAsMzYxMSwzNjEyLDM2MTMsMzYxNCwzNjE1LDM2MTYsMzYxNywzNjE4LDM2MTksMzYyMCwzNjIxLDM2MjIsMzYyMywzNjI0LDM2MjUsMzYyNiwzNjI3LDM2MjgsMzYyOSwzNjMwLDM2MzEsMzYzMiwzNjMzLDM2''@;'; put 'put ''MzQsMzYzNSwzNjM2LDM2MzcsMzYzOCwzNjM5LDM2NDAsMzY0MSwzNjQyLG51bGwsbnVsbCxudWxsLG51bGwsMzY0NywzNjQ4LDM2NDksMzY1MCwzNjUxLDM2NTIsMzY1MywzNjU0LDM2NTUsMzY1NiwzNjU3LDM2NTgsMzY1OSwzNjYwLDM2NjEsMzY2MiwzNjYzLDM2NjQsMzY2NSwzNjY2LDM2''@;'; put 'put ''NjcsMzY2OCwzNjY5LDM2NzAsMzY3MSwzNjcyLDM2NzMsMzY3NCwzNjc1LG51bGwsbnVsbCxudWxsLG51bGxdLCJ3aW5kb3dzLTEyNTAiOls4MzY0LDEyOSw4MjE4LDEzMSw4MjIyLDgyMzAsODIyNCw4MjI1LDEzNiw4MjQwLDM1Miw4MjQ5LDM0NiwzNTYsMzgxLDM3NywxNDQsODIxNiw4MjE3''@;'; put 'put ''LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwzNTMsODI1MCwzNDcsMzU3LDM4MiwzNzgsMTYwLDcxMSw3MjgsMzIxLDE2NCwyNjAsMTY2LDE2NywxNjgsMTY5LDM1MCwxNzEsMTcyLDE3MywxNzQsMzc5LDE3NiwxNzcsNzMxLDMyMiwxODAsMTgxLDE4MiwxODMsMTg0LDI2MSwz''@;'; put 'put ''NTEsMTg3LDMxNyw3MzMsMzE4LDM4MCwzNDAsMTkzLDE5NCwyNTgsMTk2LDMxMywyNjIsMTk5LDI2OCwyMDEsMjgwLDIwMywyODIsMjA1LDIwNiwyNzAsMjcyLDMyMywzMjcsMjExLDIxMiwzMzYsMjE0LDIxNSwzNDQsMzY2LDIxOCwzNjgsMjIwLDIyMSwzNTQsMjIzLDM0MSwyMjUsMjI2LDI1''@;'; put 'put ''OSwyMjgsMzE0LDI2MywyMzEsMjY5LDIzMywyODEsMjM1LDI4MywyMzcsMjM4LDI3MSwyNzMsMzI0LDMyOCwyNDMsMjQ0LDMzNywyNDYsMjQ3LDM0NSwzNjcsMjUwLDM2OSwyNTIsMjUzLDM1NSw3MjldLCJ3aW5kb3dzLTEyNTEiOlsxMDI2LDEwMjcsODIxOCwxMTA3LDgyMjIsODIzMCw4MjI0''@;'; put 'put ''LDgyMjUsODM2NCw4MjQwLDEwMzMsODI0OSwxMDM0LDEwMzYsMTAzNSwxMDM5LDExMDYsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwxMTEzLDgyNTAsMTExNCwxMTE2LDExMTUsMTExOSwxNjAsMTAzOCwxMTE4LDEwMzIsMTY0LDExNjgsMTY2LDE2NywxMDI1''@;'; put 'put ''LDE2OSwxMDI4LDE3MSwxNzIsMTczLDE3NCwxMDMxLDE3NiwxNzcsMTAzMCwxMTEwLDExNjksMTgxLDE4MiwxODMsMTEwNSw4NDcwLDExMDgsMTg3LDExMTIsMTAyOSwxMTA5LDExMTEsMTA0MCwxMDQxLDEwNDIsMTA0MywxMDQ0LDEwNDUsMTA0NiwxMDQ3LDEwNDgsMTA0OSwxMDUwLDEwNTEs''@;'; put 'put ''MTA1MiwxMDUzLDEwNTQsMTA1NSwxMDU2LDEwNTcsMTA1OCwxMDU5LDEwNjAsMTA2MSwxMDYyLDEwNjMsMTA2NCwxMDY1LDEwNjYsMTA2NywxMDY4LDEwNjksMTA3MCwxMDcxLDEwNzIsMTA3MywxMDc0LDEwNzUsMTA3NiwxMDc3LDEwNzgsMTA3OSwxMDgwLDEwODEsMTA4MiwxMDgzLDEwODQs''@;'; put 'put ''MTA4NSwxMDg2LDEwODcsMTA4OCwxMDg5LDEwOTAsMTA5MSwxMDkyLDEwOTMsMTA5NCwxMDk1LDEwOTYsMTA5NywxMDk4LDEwOTksMTEwMCwxMTAxLDExMDIsMTEwM10sIndpbmRvd3MtMTI1MiI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMzUyLDgy''@;'; put 'put ''NDksMzM4LDE0MSwzODEsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDczMiw4NDgyLDM1Myw4MjUwLDMzOSwxNTcsMzgyLDM3NiwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3Nywx''@;'; put 'put ''NzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkxLDE5MiwxOTMsMTk0LDE5NSwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDIwNCwyMDUsMjA2LDIwNywyMDgsMjA5LDIxMCwyMTEsMjEyLDIxMywyMTQsMjE1LDIxNiwyMTcsMjE4LDIx''@;'; put 'put ''OSwyMjAsMjIxLDIyMiwyMjMsMjI0LDIyNSwyMjYsMjI3LDIyOCwyMjksMjMwLDIzMSwyMzIsMjMzLDIzNCwyMzUsMjM2LDIzNywyMzgsMjM5LDI0MCwyNDEsMjQyLDI0MywyNDQsMjQ1LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1MiwyNTMsMjU0LDI1NV0sIndpbmRvd3MtMTI1MyI6Wzgz''@;'; put 'put ''NjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsMTM2LDgyNDAsMTM4LDgyNDksMTQwLDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4MjEyLDE1Miw4NDgyLDE1NCw4MjUwLDE1NiwxNTcsMTU4LDE1OSwxNjAsOTAxLDkwMiwxNjMsMTY0LDE2''@;'; put 'put ''NSwxNjYsMTY3LDE2OCwxNjksbnVsbCwxNzEsMTcyLDE3MywxNzQsODIxMywxNzYsMTc3LDE3OCwxNzksOTAwLDE4MSwxODIsMTgzLDkwNCw5MDUsOTA2LDE4Nyw5MDgsMTg5LDkxMCw5MTEsOTEyLDkxMyw5MTQsOTE1LDkxNiw5MTcsOTE4LDkxOSw5MjAsOTIxLDkyMiw5MjMsOTI0LDkyNSw5''@;'; put 'put ''MjYsOTI3LDkyOCw5MjksbnVsbCw5MzEsOTMyLDkzMyw5MzQsOTM1LDkzNiw5MzcsOTM4LDkzOSw5NDAsOTQxLDk0Miw5NDMsOTQ0LDk0NSw5NDYsOTQ3LDk0OCw5NDksOTUwLDk1MSw5NTIsOTUzLDk1NCw5NTUsOTU2LDk1Nyw5NTgsOTU5LDk2MCw5NjEsOTYyLDk2Myw5NjQsOTY1LDk2Niw5''@;'; put 'put ''NjcsOTY4LDk2OSw5NzAsOTcxLDk3Miw5NzMsOTc0LG51bGxdLCJ3aW5kb3dzLTEyNTQiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDM1Miw4MjQ5LDMzOCwxNDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiw3''@;'; put 'put ''MzIsODQ4MiwzNTMsODI1MCwzMzksMTU3LDE1OCwzNzYsMTYwLDE2MSwxNjIsMTYzLDE2NCwxNjUsMTY2LDE2NywxNjgsMTY5LDE3MCwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxODYsMTg3LDE4OCwxODksMTkwLDE5MSwxOTIs''@;'; put 'put ''MTkzLDE5NCwxOTUsMTk2LDE5NywxOTgsMTk5LDIwMCwyMDEsMjAyLDIwMywyMDQsMjA1LDIwNiwyMDcsMjg2LDIwOSwyMTAsMjExLDIxMiwyMTMsMjE0LDIxNSwyMTYsMjE3LDIxOCwyMTksMjIwLDMwNCwzNTAsMjIzLDIyNCwyMjUsMjI2LDIyNywyMjgsMjI5LDIzMCwyMzEsMjMyLDIzMywy''@;'; put 'put ''MzQsMjM1LDIzNiwyMzcsMjM4LDIzOSwyODcsMjQxLDI0MiwyNDMsMjQ0LDI0NSwyNDYsMjQ3LDI0OCwyNDksMjUwLDI1MSwyNTIsMzA1LDM1MSwyNTVdLCJ3aW5kb3dzLTEyNTUiOls4MzY0LDEyOSw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDEzOCw4MjQ5LDE0MCwx''@;'; put 'put ''NDEsMTQyLDE0MywxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiw3MzIsODQ4MiwxNTQsODI1MCwxNTYsMTU3LDE1OCwxNTksMTYwLDE2MSwxNjIsMTYzLDgzNjIsMTY1LDE2NiwxNjcsMTY4LDE2OSwyMTUsMTcxLDE3MiwxNzMsMTc0LDE3NSwxNzYsMTc3LDE3OCwxNzks''@;'; put 'put ''MTgwLDE4MSwxODIsMTgzLDE4NCwxODUsMjQ3LDE4NywxODgsMTg5LDE5MCwxOTEsMTQ1NiwxNDU3LDE0NTgsMTQ1OSwxNDYwLDE0NjEsMTQ2MiwxNDYzLDE0NjQsMTQ2NSwxNDY2LDE0NjcsMTQ2OCwxNDY5LDE0NzAsMTQ3MSwxNDcyLDE0NzMsMTQ3NCwxNDc1LDE1MjAsMTUyMSwxNTIyLDE1''@;'; put 'put ''MjMsMTUyNCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLDE0ODgsMTQ4OSwxNDkwLDE0OTEsMTQ5MiwxNDkzLDE0OTQsMTQ5NSwxNDk2LDE0OTcsMTQ5OCwxNDk5LDE1MDAsMTUwMSwxNTAyLDE1MDMsMTUwNCwxNTA1LDE1MDYsMTUwNywxNTA4LDE1MDksMTUxMCwxNTExLDE1''@;'; put 'put ''MTIsMTUxMywxNTE0LG51bGwsbnVsbCw4MjA2LDgyMDcsbnVsbF0sIndpbmRvd3MtMTI1NiI6WzgzNjQsMTY2Miw4MjE4LDQwMiw4MjIyLDgyMzAsODIyNCw4MjI1LDcxMCw4MjQwLDE2NTcsODI0OSwzMzgsMTY3MCwxNjg4LDE2NzIsMTcxMSw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIx''@;'; put 'put ''MSw4MjEyLDE3MDUsODQ4MiwxNjgxLDgyNTAsMzM5LDgyMDQsODIwNSwxNzIyLDE2MCwxNTQ4LDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcyNiwxNzEsMTcyLDE3MywxNzQsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgxLDE4MiwxODMsMTg0LDE4NSwxNTYzLDE4NywxODgs''@;'; put 'put ''MTg5LDE5MCwxNTY3LDE3MjksMTU2OSwxNTcwLDE1NzEsMTU3MiwxNTczLDE1NzQsMTU3NSwxNTc2LDE1NzcsMTU3OCwxNTc5LDE1ODAsMTU4MSwxNTgyLDE1ODMsMTU4NCwxNTg1LDE1ODYsMTU4NywxNTg4LDE1ODksMTU5MCwyMTUsMTU5MSwxNTkyLDE1OTMsMTU5NCwxNjAwLDE2MDEsMTYw''@;'; put 'put ''MiwxNjAzLDIyNCwxNjA0LDIyNiwxNjA1LDE2MDYsMTYwNywxNjA4LDIzMSwyMzIsMjMzLDIzNCwyMzUsMTYwOSwxNjEwLDIzOCwyMzksMTYxMSwxNjEyLDE2MTMsMTYxNCwyNDQsMTYxNSwxNjE2LDI0NywxNjE3LDI0OSwxNjE4LDI1MSwyNTIsODIwNiw4MjA3LDE3NDZdLCJ3aW5kb3dzLTEy''@;'; put 'put ''NTciOls4MzY0LDEyOSw4MjE4LDEzMSw4MjIyLDgyMzAsODIyNCw4MjI1LDEzNiw4MjQwLDEzOCw4MjQ5LDE0MCwxNjgsNzExLDE4NCwxNDQsODIxNiw4MjE3LDgyMjAsODIyMSw4MjI2LDgyMTEsODIxMiwxNTIsODQ4MiwxNTQsODI1MCwxNTYsMTc1LDczMSwxNTksMTYwLG51bGwsMTYyLDE2''@;'; put 'put ''MywxNjQsbnVsbCwxNjYsMTY3LDIxNiwxNjksMzQyLDE3MSwxNzIsMTczLDE3NCwxOTgsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywyNDgsMTg1LDM0MywxODcsMTg4LDE4OSwxOTAsMjMwLDI2MCwzMDIsMjU2LDI2MiwxOTYsMTk3LDI4MCwyNzQsMjY4LDIwMSwzNzcsMjc4LDI5''@;'; put 'put ''MCwzMTAsMjk4LDMxNSwzNTIsMzIzLDMyNSwyMTEsMzMyLDIxMywyMTQsMjE1LDM3MCwzMjEsMzQ2LDM2MiwyMjAsMzc5LDM4MSwyMjMsMjYxLDMwMywyNTcsMjYzLDIyOCwyMjksMjgxLDI3NSwyNjksMjMzLDM3OCwyNzksMjkxLDMxMSwyOTksMzE2LDM1MywzMjQsMzI2LDI0MywzMzMsMjQ1''@;'; put 'put ''LDI0NiwyNDcsMzcxLDMyMiwzNDcsMzYzLDI1MiwzODAsMzgyLDcyOV0sIndpbmRvd3MtMTI1OCI6WzgzNjQsMTI5LDgyMTgsNDAyLDgyMjIsODIzMCw4MjI0LDgyMjUsNzEwLDgyNDAsMTM4LDgyNDksMzM4LDE0MSwxNDIsMTQzLDE0NCw4MjE2LDgyMTcsODIyMCw4MjIxLDgyMjYsODIxMSw4''@;'; put 'put ''MjEyLDczMiw4NDgyLDE1NCw4MjUwLDMzOSwxNTcsMTU4LDM3NiwxNjAsMTYxLDE2MiwxNjMsMTY0LDE2NSwxNjYsMTY3LDE2OCwxNjksMTcwLDE3MSwxNzIsMTczLDE3NCwxNzUsMTc2LDE3NywxNzgsMTc5LDE4MCwxODEsMTgyLDE4MywxODQsMTg1LDE4NiwxODcsMTg4LDE4OSwxOTAsMTkx''@;'; put 'put ''LDE5MiwxOTMsMTk0LDI1OCwxOTYsMTk3LDE5OCwxOTksMjAwLDIwMSwyMDIsMjAzLDc2OCwyMDUsMjA2LDIwNywyNzIsMjA5LDc3NywyMTEsMjEyLDQxNiwyMTQsMjE1LDIxNiwyMTcsMjE4LDIxOSwyMjAsNDMxLDc3MSwyMjMsMjI0LDIyNSwyMjYsMjU5LDIyOCwyMjksMjMwLDIzMSwyMzIs''@;'; put 'put ''MjMzLDIzNCwyMzUsNzY5LDIzNywyMzgsMjM5LDI3MywyNDEsODAzLDI0MywyNDQsNDE3LDI0NiwyNDcsMjQ4LDI0OSwyNTAsMjUxLDI1Miw0MzIsODM2MywyNTVdLCJ4LW1hYy1jeXJpbGxpYyI6WzEwNDAsMTA0MSwxMDQyLDEwNDMsMTA0NCwxMDQ1LDEwNDYsMTA0NywxMDQ4LDEwNDksMTA1''@;'; put 'put ''MCwxMDUxLDEwNTIsMTA1MywxMDU0LDEwNTUsMTA1NiwxMDU3LDEwNTgsMTA1OSwxMDYwLDEwNjEsMTA2MiwxMDYzLDEwNjQsMTA2NSwxMDY2LDEwNjcsMTA2OCwxMDY5LDEwNzAsMTA3MSw4MjI0LDE3NiwxMTY4LDE2MywxNjcsODIyNiwxODIsMTAzMCwxNzQsMTY5LDg0ODIsMTAyNiwxMTA2''@;'; put 'put ''LDg4MDAsMTAyNywxMTA3LDg3MzQsMTc3LDg4MDQsODgwNSwxMTEwLDE4MSwxMTY5LDEwMzIsMTAyOCwxMTA4LDEwMzEsMTExMSwxMDMzLDExMTMsMTAzNCwxMTE0LDExMTIsMTAyOSwxNzIsODczMCw0MDIsODc3Niw4NzEwLDE3MSwxODcsODIzMCwxNjAsMTAzNSwxMTE1LDEwMzYsMTExNiwx''@;'; put 'put ''MTA5LDgyMTEsODIxMiw4MjIwLDgyMjEsODIxNiw4MjE3LDI0Nyw4MjIyLDEwMzgsMTExOCwxMDM5LDExMTksODQ3MCwxMDI1LDExMDUsMTEwMywxMDcyLDEwNzMsMTA3NCwxMDc1LDEwNzYsMTA3NywxMDc4LDEwNzksMTA4MCwxMDgxLDEwODIsMTA4MywxMDg0LDEwODUsMTA4NiwxMDg3LDEw''@;'; put 'put ''ODgsMTA4OSwxMDkwLDEwOTEsMTA5MiwxMDkzLDEwOTQsMTA5NSwxMDk2LDEwOTcsMTA5OCwxMDk5LDExMDAsMTEwMSwxMTAyLDgzNjRdfX0odGhpc3x8e30pfSw5OTU2NTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBCKGx0LEx0LEN0KXty''@;'; put 'put ''ZXR1cm4gTHQ8PWx0JiZsdDw9Q3R9WGUuZXhwb3J0cyYmIW1lWyJlbmNvZGluZy1pbmRleGVzIl0mJihtZVsiZW5jb2RpbmctaW5kZXhlcyJdPUwoODYzODkpWyJlbmNvZGluZy1pbmRleGVzIl0pO3ZhciBFZT1NYXRoLmZsb29yO2Z1bmN0aW9uIFUobHQpe2lmKHZvaWQgMD09PWx0KXJldHVy''@;'; put 'put ''bnt9O2lmKGx0PT09T2JqZWN0KGx0KSlyZXR1cm4gbHQ7dGhyb3cgVHlwZUVycm9yKCJDb3VsZCBub3QgY29udmVydCBhcmd1bWVudCB0byBkaWN0aW9uYXJ5Iil9ZnVuY3Rpb24gcmUobHQpe3JldHVybiAwPD1sdCYmbHQ8PTEyN312YXIgYWU9cmUsWT0tMTtmdW5jdGlvbiBXKGx0KXt0aGlz''@;'; put 'put ''LnRva2Vucz1bXS5zbGljZS5jYWxsKGx0KSx0aGlzLnRva2Vucy5yZXZlcnNlKCl9Vy5wcm90b3R5cGU9e2VuZE9mU3RyZWFtOmZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudG9rZW5zLmxlbmd0aH0scmVhZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRva2Vucy5sZW5ndGg/dGhpcy50b2tlbnMu''@;'; put 'put ''cG9wKCk6WX0scHJlcGVuZDpmdW5jdGlvbihsdCl7aWYoQXJyYXkuaXNBcnJheShsdCkpZm9yKHZhciBMdD1sdDtMdC5sZW5ndGg7KXRoaXMudG9rZW5zLnB1c2goTHQucG9wKCkpO2Vsc2UgdGhpcy50b2tlbnMucHVzaChsdCl9LHB1c2g6ZnVuY3Rpb24obHQpe2lmKEFycmF5LmlzQXJyYXko''@;'; put 'put ''bHQpKWZvcih2YXIgTHQ9bHQ7THQubGVuZ3RoOyl0aGlzLnRva2Vucy51bnNoaWZ0KEx0LnNoaWZ0KCkpO2Vsc2UgdGhpcy50b2tlbnMudW5zaGlmdChsdCl9fTt2YXIgTj0tMTtmdW5jdGlvbiB0ZShsdCxMdCl7aWYobHQpdGhyb3cgVHlwZUVycm9yKCJEZWNvZGVyIGVycm9yIik7cmV0dXJu''@;'; put 'put ''IEx0fHw2NTUzM31mdW5jdGlvbiBLKGx0KXt0aHJvdyBUeXBlRXJyb3IoIlRoZSBjb2RlIHBvaW50ICIrbHQrIiBjb3VsZCBub3QgYmUgZW5jb2RlZC4iKX1mdW5jdGlvbiBvZShsdCl7cmV0dXJuIGx0PVN0cmluZyhsdCkudHJpbSgpLnRvTG93ZXJDYXNlKCksT2JqZWN0LnByb3RvdHlwZS5o''@;'; put 'put ''YXNPd25Qcm9wZXJ0eS5jYWxsKGRlLGx0KT9kZVtsdF06bnVsbH12YXIgY2U9W3tlbmNvZGluZ3M6W3tsYWJlbHM6WyJ1bmljb2RlLTEtMS11dGYtOCIsInV0Zi04IiwidXRmOCJdLG5hbWU6IlVURi04In1dLGhlYWRpbmc6IlRoZSBFbmNvZGluZyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyI4''@;'; put 'put ''NjYiLCJjcDg2NiIsImNzaWJtODY2IiwiaWJtODY2Il0sbmFtZToiSUJNODY2In0se2xhYmVsczpbImNzaXNvbGF0aW4yIiwiaXNvLTg4NTktMiIsImlzby1pci0xMDEiLCJpc284ODU5LTIiLCJpc284ODU5MiIsImlzb184ODU5LTIiLCJpc29fODg1OS0yOjE5ODciLCJsMiIsImxhdGluMiJd''@;'; put 'put ''LG5hbWU6IklTTy04ODU5LTIifSx7bGFiZWxzOlsiY3Npc29sYXRpbjMiLCJpc28tODg1OS0zIiwiaXNvLWlyLTEwOSIsImlzbzg4NTktMyIsImlzbzg4NTkzIiwiaXNvXzg4NTktMyIsImlzb184ODU5LTM6MTk4OCIsImwzIiwibGF0aW4zIl0sbmFtZToiSVNPLTg4NTktMyJ9LHtsYWJlbHM6''@;'; put 'put ''WyJjc2lzb2xhdGluNCIsImlzby04ODU5LTQiLCJpc28taXItMTEwIiwiaXNvODg1OS00IiwiaXNvODg1OTQiLCJpc29fODg1OS00IiwiaXNvXzg4NTktNDoxOTg4IiwibDQiLCJsYXRpbjQiXSxuYW1lOiJJU08tODg1OS00In0se2xhYmVsczpbImNzaXNvbGF0aW5jeXJpbGxpYyIsImN5cmls''@;'; put 'put ''bGljIiwiaXNvLTg4NTktNSIsImlzby1pci0xNDQiLCJpc284ODU5LTUiLCJpc284ODU5NSIsImlzb184ODU5LTUiLCJpc29fODg1OS01OjE5ODgiXSxuYW1lOiJJU08tODg1OS01In0se2xhYmVsczpbImFyYWJpYyIsImFzbW8tNzA4IiwiY3Npc284ODU5NmUiLCJjc2lzbzg4NTk2aSIsImNz''@;'; put 'put ''aXNvbGF0aW5hcmFiaWMiLCJlY21hLTExNCIsImlzby04ODU5LTYiLCJpc28tODg1OS02LWUiLCJpc28tODg1OS02LWkiLCJpc28taXItMTI3IiwiaXNvODg1OS02IiwiaXNvODg1OTYiLCJpc29fODg1OS02IiwiaXNvXzg4NTktNjoxOTg3Il0sbmFtZToiSVNPLTg4NTktNiJ9LHtsYWJlbHM6''@;'; put 'put ''WyJjc2lzb2xhdGluZ3JlZWsiLCJlY21hLTExOCIsImVsb3RfOTI4IiwiZ3JlZWsiLCJncmVlazgiLCJpc28tODg1OS03IiwiaXNvLWlyLTEyNiIsImlzbzg4NTktNyIsImlzbzg4NTk3IiwiaXNvXzg4NTktNyIsImlzb184ODU5LTc6MTk4NyIsInN1bl9ldV9ncmVlayJdLG5hbWU6IklTTy04''@;'; put 'put ''ODU5LTcifSx7bGFiZWxzOlsiY3Npc284ODU5OGUiLCJjc2lzb2xhdGluaGVicmV3IiwiaGVicmV3IiwiaXNvLTg4NTktOCIsImlzby04ODU5LTgtZSIsImlzby1pci0xMzgiLCJpc284ODU5LTgiLCJpc284ODU5OCIsImlzb184ODU5LTgiLCJpc29fODg1OS04OjE5ODgiLCJ2aXN1YWwiXSxu''@;'; put 'put ''YW1lOiJJU08tODg1OS04In0se2xhYmVsczpbImNzaXNvODg1OThpIiwiaXNvLTg4NTktOC1pIiwibG9naWNhbCJdLG5hbWU6IklTTy04ODU5LTgtSSJ9LHtsYWJlbHM6WyJjc2lzb2xhdGluNiIsImlzby04ODU5LTEwIiwiaXNvLWlyLTE1NyIsImlzbzg4NTktMTAiLCJpc284ODU5MTAiLCJs''@;'; put 'put ''NiIsImxhdGluNiJdLG5hbWU6IklTTy04ODU5LTEwIn0se2xhYmVsczpbImlzby04ODU5LTEzIiwiaXNvODg1OS0xMyIsImlzbzg4NTkxMyJdLG5hbWU6IklTTy04ODU5LTEzIn0se2xhYmVsczpbImlzby04ODU5LTE0IiwiaXNvODg1OS0xNCIsImlzbzg4NTkxNCJdLG5hbWU6IklTTy04ODU5''@;'; put 'put ''LTE0In0se2xhYmVsczpbImNzaXNvbGF0aW45IiwiaXNvLTg4NTktMTUiLCJpc284ODU5LTE1IiwiaXNvODg1OTE1IiwiaXNvXzg4NTktMTUiLCJsOSJdLG5hbWU6IklTTy04ODU5LTE1In0se2xhYmVsczpbImlzby04ODU5LTE2Il0sbmFtZToiSVNPLTg4NTktMTYifSx7bGFiZWxzOlsiY3Nr''@;'; put 'put ''b2k4ciIsImtvaSIsImtvaTgiLCJrb2k4LXIiLCJrb2k4X3IiXSxuYW1lOiJLT0k4LVIifSx7bGFiZWxzOlsia29pOC1ydSIsImtvaTgtdSJdLG5hbWU6IktPSTgtVSJ9LHtsYWJlbHM6WyJjc21hY2ludG9zaCIsIm1hYyIsIm1hY2ludG9zaCIsIngtbWFjLXJvbWFuIl0sbmFtZToibWFjaW50''@;'; put 'put ''b3NoIn0se2xhYmVsczpbImRvcy04NzQiLCJpc28tODg1OS0xMSIsImlzbzg4NTktMTEiLCJpc284ODU5MTEiLCJ0aXMtNjIwIiwid2luZG93cy04NzQiXSxuYW1lOiJ3aW5kb3dzLTg3NCJ9LHtsYWJlbHM6WyJjcDEyNTAiLCJ3aW5kb3dzLTEyNTAiLCJ4LWNwMTI1MCJdLG5hbWU6IndpbmRv''@;'; put 'put ''d3MtMTI1MCJ9LHtsYWJlbHM6WyJjcDEyNTEiLCJ3aW5kb3dzLTEyNTEiLCJ4LWNwMTI1MSJdLG5hbWU6IndpbmRvd3MtMTI1MSJ9LHtsYWJlbHM6WyJhbnNpX3gzLjQtMTk2OCIsImFzY2lpIiwiY3AxMjUyIiwiY3A4MTkiLCJjc2lzb2xhdGluMSIsImlibTgxOSIsImlzby04ODU5LTEiLCJp''@;'; put 'put ''c28taXItMTAwIiwiaXNvODg1OS0xIiwiaXNvODg1OTEiLCJpc29fODg1OS0xIiwiaXNvXzg4NTktMToxOTg3IiwibDEiLCJsYXRpbjEiLCJ1cy1hc2NpaSIsIndpbmRvd3MtMTI1MiIsIngtY3AxMjUyIl0sbmFtZToid2luZG93cy0xMjUyIn0se2xhYmVsczpbImNwMTI1MyIsIndpbmRvd3Mt''@;'; put 'put ''MTI1MyIsIngtY3AxMjUzIl0sbmFtZToid2luZG93cy0xMjUzIn0se2xhYmVsczpbImNwMTI1NCIsImNzaXNvbGF0aW41IiwiaXNvLTg4NTktOSIsImlzby1pci0xNDgiLCJpc284ODU5LTkiLCJpc284ODU5OSIsImlzb184ODU5LTkiLCJpc29fODg1OS05OjE5ODkiLCJsNSIsImxhdGluNSIs''@;'; put 'put ''IndpbmRvd3MtMTI1NCIsIngtY3AxMjU0Il0sbmFtZToid2luZG93cy0xMjU0In0se2xhYmVsczpbImNwMTI1NSIsIndpbmRvd3MtMTI1NSIsIngtY3AxMjU1Il0sbmFtZToid2luZG93cy0xMjU1In0se2xhYmVsczpbImNwMTI1NiIsIndpbmRvd3MtMTI1NiIsIngtY3AxMjU2Il0sbmFtZToi''@;'; put 'put ''d2luZG93cy0xMjU2In0se2xhYmVsczpbImNwMTI1NyIsIndpbmRvd3MtMTI1NyIsIngtY3AxMjU3Il0sbmFtZToid2luZG93cy0xMjU3In0se2xhYmVsczpbImNwMTI1OCIsIndpbmRvd3MtMTI1OCIsIngtY3AxMjU4Il0sbmFtZToid2luZG93cy0xMjU4In0se2xhYmVsczpbIngtbWFjLWN5''@;'; put 'put ''cmlsbGljIiwieC1tYWMtdWtyYWluaWFuIl0sbmFtZToieC1tYWMtY3lyaWxsaWMifV0saGVhZGluZzoiTGVnYWN5IHNpbmdsZS1ieXRlIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjaGluZXNlIiwiY3NnYjIzMTIiLCJjc2lzbzU4Z2IyMzEyODAiLCJnYjIzMTIiLCJnYl8y''@;'; put 'put ''MzEyIiwiZ2JfMjMxMi04MCIsImdiayIsImlzby1pci01OCIsIngtZ2JrIl0sbmFtZToiR0JLIn0se2xhYmVsczpbImdiMTgwMzAiXSxuYW1lOiJnYjE4MDMwIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIENoaW5lc2UgKHNpbXBsaWZpZWQpIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6''@;'; put 'put ''W3tsYWJlbHM6WyJiaWc1IiwiYmlnNS1oa3NjcyIsImNuLWJpZzUiLCJjc2JpZzUiLCJ4LXgtYmlnNSJdLG5hbWU6IkJpZzUifV0saGVhZGluZzoiTGVnYWN5IG11bHRpLWJ5dGUgQ2hpbmVzZSAodHJhZGl0aW9uYWwpIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2V1Y3Br''@;'; put 'put ''ZGZtdGphcGFuZXNlIiwiZXVjLWpwIiwieC1ldWMtanAiXSxuYW1lOiJFVUMtSlAifSx7bGFiZWxzOlsiY3Npc28yMDIyanAiLCJpc28tMjAyMi1qcCJdLG5hbWU6IklTTy0yMDIyLUpQIn0se2xhYmVsczpbImNzc2hpZnRqaXMiLCJtczkzMiIsIm1zX2thbmppIiwic2hpZnQtamlzIiwic2hp''@;'; put 'put ''ZnRfamlzIiwic2ppcyIsIndpbmRvd3MtMzFqIiwieC1zamlzIl0sbmFtZToiU2hpZnRfSklTIn1dLGhlYWRpbmc6IkxlZ2FjeSBtdWx0aS1ieXRlIEphcGFuZXNlIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3tsYWJlbHM6WyJjc2V1Y2tyIiwiY3Nrc2M1NjAxMTk4NyIsImV1Yy1rciIsImlz''@;'; put 'put ''by1pci0xNDkiLCJrb3JlYW4iLCJrc19jXzU2MDEtMTk4NyIsImtzX2NfNTYwMS0xOTg5Iiwia3NjNTYwMSIsImtzY181NjAxIiwid2luZG93cy05NDkiXSxuYW1lOiJFVUMtS1IifV0saGVhZGluZzoiTGVnYWN5IG11bHRpLWJ5dGUgS29yZWFuIGVuY29kaW5ncyJ9LHtlbmNvZGluZ3M6W3ts''@;'; put 'put ''YWJlbHM6WyJjc2lzbzIwMjJrciIsImh6LWdiLTIzMTIiLCJpc28tMjAyMi1jbiIsImlzby0yMDIyLWNuLWV4dCIsImlzby0yMDIyLWtyIl0sbmFtZToicmVwbGFjZW1lbnQifSx7bGFiZWxzOlsidXRmLTE2YmUiXSxuYW1lOiJVVEYtMTZCRSJ9LHtsYWJlbHM6WyJ1dGYtMTYiLCJ1dGYtMTZs''@;'; put 'put ''ZSJdLG5hbWU6IlVURi0xNkxFIn0se2xhYmVsczpbIngtdXNlci1kZWZpbmVkIl0sbmFtZToieC11c2VyLWRlZmluZWQifV0saGVhZGluZzoiTGVnYWN5IG1pc2NlbGxhbmVvdXMgZW5jb2RpbmdzIn1dLGRlPXt9O2NlLmZvckVhY2goZnVuY3Rpb24obHQpe2x0LmVuY29kaW5ncy5mb3JFYWNo''@;'; put 'put ''KGZ1bmN0aW9uKEx0KXtMdC5sYWJlbHMuZm9yRWFjaChmdW5jdGlvbihDdCl7ZGVbQ3RdPUx0fSl9KX0pO3ZhciBPLGVlLHZlPXt9LEFlPXt9O2Z1bmN0aW9uIGtlKGx0LEx0KXtyZXR1cm4gTHQmJkx0W2x0XXx8bnVsbH1mdW5jdGlvbiBTZShsdCxMdCl7dmFyIEN0PUx0LmluZGV4T2YobHQp''@;'; put 'put ''O3JldHVybi0xPT09Q3Q/bnVsbDpDdH1mdW5jdGlvbiBJZShsdCl7aWYoISgiZW5jb2RpbmctaW5kZXhlcyJpbiBtZSkpdGhyb3cgRXJyb3IoIkluZGV4ZXMgbWlzc2luZy4gRGlkIHlvdSBmb3JnZXQgdG8gaW5jbHVkZSBlbmNvZGluZy1pbmRleGVzLmpzIGZpcnN0PyIpO3JldHVybiBtZVsi''@;'; put 'put ''ZW5jb2RpbmctaW5kZXhlcyJdW2x0XX1mdW5jdGlvbiB4KGx0LEx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiB4KSl0aHJvdyBUeXBlRXJyb3IoIkNhbGxlZCBhcyBhIGZ1bmN0aW9uLiBEaWQgeW91IGZvcmdldCAnbmV3Jz8iKTtsdD12b2lkIDAhPT1sdD9TdHJpbmcobHQpOiJ1dGYtOCIsTHQ9''@;'; put 'put ''VShMdCksdGhpcy5fZW5jb2Rpbmc9bnVsbCx0aGlzLl9kZWNvZGVyPW51bGwsdGhpcy5faWdub3JlQk9NPSExLHRoaXMuX0JPTXNlZW49ITEsdGhpcy5fZXJyb3JfbW9kZT0icmVwbGFjZW1lbnQiLHRoaXMuX2RvX25vdF9mbHVzaD0hMTt2YXIgQ3Q9b2UobHQpO2lmKG51bGw9PT1DdHx8InJl''@;'; put 'put ''cGxhY2VtZW50Ij09PUN0Lm5hbWUpdGhyb3cgUmFuZ2VFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitsdCk7aWYoIUFlW0N0Lm5hbWVdKXRocm93IEVycm9yKCJEZWNvZGVyIG5vdCBwcmVzZW50LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGVuY29kaW5nLWluZGV4ZXMuanMgZmlyc3Q/''@;'; put 'put ''Iik7dmFyIGZ0PXRoaXM7cmV0dXJuIGZ0Ll9lbmNvZGluZz1DdCxCb29sZWFuKEx0LmZhdGFsKSYmKGZ0Ll9lcnJvcl9tb2RlPSJmYXRhbCIpLEJvb2xlYW4oTHQuaWdub3JlQk9NKSYmKGZ0Ll9pZ25vcmVCT009ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8KHRoaXMuZW5jb2Rpbmc9ZnQu''@;'; put 'put ''X2VuY29kaW5nLm5hbWUudG9Mb3dlckNhc2UoKSx0aGlzLmZhdGFsPSJmYXRhbCI9PT1mdC5fZXJyb3JfbW9kZSx0aGlzLmlnbm9yZUJPTT1mdC5faWdub3JlQk9NKSxmdH1mdW5jdGlvbiBQKGx0LEx0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBQKSl0aHJvdyBUeXBlRXJyb3IoIkNhbGxlZCBh''@;'; put 'put ''cyBhIGZ1bmN0aW9uLiBEaWQgeW91IGZvcmdldCAnbmV3Jz8iKTtpZihMdD1VKEx0KSx0aGlzLl9lbmNvZGluZz1udWxsLHRoaXMuX2VuY29kZXI9bnVsbCx0aGlzLl9kb19ub3RfZmx1c2g9ITEsdGhpcy5fZmF0YWw9Qm9vbGVhbihMdC5mYXRhbCk/ImZhdGFsIjoicmVwbGFjZW1lbnQiLEJv''@;'; put 'put ''b2xlYW4oTHQuTk9OU1RBTkRBUkRfYWxsb3dMZWdhY3lFbmNvZGluZykpe3ZhciBmdD1vZShsdD12b2lkIDAhPT1sdD9TdHJpbmcobHQpOiJ1dGYtOCIpO2lmKG51bGw9PT1mdHx8InJlcGxhY2VtZW50Ij09PWZ0Lm5hbWUpdGhyb3cgUmFuZ2VFcnJvcigiVW5rbm93biBlbmNvZGluZzogIits''@;'; put 'put ''dCk7aWYoIXZlW2Z0Lm5hbWVdKXRocm93IEVycm9yKCJFbmNvZGVyIG5vdCBwcmVzZW50LiBEaWQgeW91IGZvcmdldCB0byBpbmNsdWRlIGVuY29kaW5nLWluZGV4ZXMuanMgZmlyc3Q/Iik7dGhpcy5fZW5jb2Rpbmc9ZnR9ZWxzZSB0aGlzLl9lbmNvZGluZz1vZSgidXRmLTgiKSx2b2lkIDAh''@;'; put 'put ''PT1sdCYmImNvbnNvbGUiaW4gbWUmJmNvbnNvbGUud2FybigiVGV4dEVuY29kZXIgY29uc3RydWN0b3IgY2FsbGVkIHdpdGggZW5jb2RpbmcgbGFiZWwsIHdoaWNoIGlzIGlnbm9yZWQuIik7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eXx8KHRoaXMuZW5jb2Rpbmc9dGhpcy5fZW5jb2Rp''@;'; put 'put ''bmcubmFtZS50b0xvd2VyQ2FzZSgpKSx0aGlzfWZ1bmN0aW9uIFYobHQpe3ZhciBMdD1sdC5mYXRhbCxDdD0wLGZ0PTAsSHQ9MCxHZT0xMjgsVWU9MTkxO3RoaXMuaGFuZGxlcj1mdW5jdGlvbih5dCxqdCl7aWYoanQ9PT1ZJiYwIT09SHQpcmV0dXJuIEh0PTAsdGUoTHQpO2lmKGp0PT09WSly''@;'; put 'put ''ZXR1cm4gTjtpZigwPT09SHQpe2lmKEIoanQsMCwxMjcpKXJldHVybiBqdDtpZihCKGp0LDE5NCwyMjMpKUh0PTEsQ3Q9MzEmanQ7ZWxzZSBpZihCKGp0LDIyNCwyMzkpKTIyND09PWp0JiYoR2U9MTYwKSwyMzc9PT1qdCYmKFVlPTE1OSksSHQ9MixDdD0xNSZqdDtlbHNle2lmKCFCKGp0LDI0''@;'; put 'put ''MCwyNDQpKXJldHVybiB0ZShMdCk7MjQwPT09anQmJihHZT0xNDQpLDI0ND09PWp0JiYoVWU9MTQzKSxIdD0zLEN0PTcmanR9cmV0dXJuIG51bGx9aWYoIUIoanQsR2UsVWUpKXJldHVybiBDdD1IdD1mdD0wLEdlPTEyOCxVZT0xOTEseXQucHJlcGVuZChqdCksdGUoTHQpO2lmKEdlPTEyOCxV''@;'; put 'put ''ZT0xOTEsQ3Q9Q3Q8PDZ8NjMmanQsKGZ0Kz0xKSE9PUh0KXJldHVybiBudWxsO3ZhciBKdD1DdDtyZXR1cm4gQ3Q9SHQ9ZnQ9MCxKdH19ZnVuY3Rpb24gVChsdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtpZihmdD09PVkpcmV0dXJuIE47aWYoYWUoZnQpKXJldHVybiBmdDt2YXIg''@;'; put 'put ''SHQsR2U7QihmdCwxMjgsMjA0Nyk/KEh0PTEsR2U9MTkyKTpCKGZ0LDIwNDgsNjU1MzUpPyhIdD0yLEdlPTIyNCk6QihmdCw2NTUzNiwxMTE0MTExKSYmKEh0PTMsR2U9MjQwKTtmb3IodmFyIFVlPVsoZnQ+PjYqSHQpK0dlXTtIdD4wOylVZS5wdXNoKDEyOHw2MyZmdD4+NiooSHQtMSkpLEh0''@;'; put 'put ''LT0xO3JldHVybiBVZX19ZnVuY3Rpb24gUyhsdCxMdCl7dmFyIEN0PUx0LmZhdGFsO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZKXJldHVybiBOO2lmKHJlKEh0KSlyZXR1cm4gSHQ7dmFyIEdlPWx0W0h0LTEyOF07cmV0dXJuIG51bGw9PT1HZT90ZShDdCk6R2V9fWZ1''@;'; put 'put ''bmN0aW9uIEYobHQsTHQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZKXJldHVybiBOO2lmKGFlKEh0KSlyZXR1cm4gSHQ7dmFyIEdlPVNlKEh0LGx0KTtyZXR1cm4gbnVsbD09PUdlJiZLKEh0KSxHZSsxMjh9fWZ1bmN0aW9uIHllKGx0KXt2YXIgTHQ9bHQuZmF0YWws''@;'; put 'put ''Q3Q9MCxmdD0wLEh0PTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEdlLFVlKXtpZihVZT09PVkmJjA9PT1DdCYmMD09PWZ0JiYwPT09SHQpcmV0dXJuIE47dmFyIHl0O2lmKFVlPT09WSYmKDAhPT1DdHx8MCE9PWZ0fHwwIT09SHQpJiYoQ3Q9MCxmdD0wLEh0PTAsdGUoTHQpKSwwIT09SHQpe3l0''@;'; put 'put ''PW51bGwsQihVZSw0OCw1NykmJih5dD1mdW5jdGlvbiBUZShsdCl7aWYobHQ+Mzk0MTkmJmx0PDE4OWUzfHxsdD4xMjM3NTc1KXJldHVybiBudWxsO2lmKDc0NTc9PT1sdClyZXR1cm4gNTkzMzU7dmFyIEh0LEx0PTAsQ3Q9MCxmdD1JZSgiZ2IxODAzMC1yYW5nZXMiKTtmb3IoSHQ9MDtIdDxm''@;'; put 'put ''dC5sZW5ndGg7KytIdCl7dmFyIEdlPWZ0W0h0XTtpZighKEdlWzBdPD1sdCkpYnJlYWs7THQ9R2VbMF0sQ3Q9R2VbMV19cmV0dXJuIEN0K2x0LUx0fSgxMCooMTI2KigxMCooQ3QtMTI5KStmdC00OCkrSHQtMTI5KStVZS00OCkpO3ZhciBqdD1bZnQsSHQsVWVdO3JldHVybiBDdD0wLGZ0PTAs''@;'; put 'put ''SHQ9MCxudWxsPT09eXQ/KEdlLnByZXBlbmQoanQpLHRlKEx0KSk6eXR9aWYoMCE9PWZ0KXJldHVybiBCKFVlLDEyOSwyNTQpPyhIdD1VZSxudWxsKTooR2UucHJlcGVuZChbZnQsVWVdKSxDdD0wLGZ0PTAsdGUoTHQpKTtpZigwIT09Q3Qpe2lmKEIoVWUsNDgsNTcpKXJldHVybiBmdD1VZSxu''@;'; put 'put ''dWxsO3ZhciBKdD1DdCxnbj1udWxsO0N0PTA7dmFyIGRuPVVlPDEyNz82NDo2NTtyZXR1cm4oQihVZSw2NCwxMjYpfHxCKFVlLDEyOCwyNTQpKSYmKGduPTE5MCooSnQtMTI5KSsoVWUtZG4pKSxudWxsPT09KHl0PW51bGw9PT1nbj9udWxsOmtlKGduLEllKCJnYjE4MDMwIikpKSYmcmUoVWUp''@;'; put 'put ''JiZHZS5wcmVwZW5kKFVlKSxudWxsPT09eXQ/dGUoTHQpOnl0fXJldHVybiByZShVZSk/VWU6MTI4PT09VWU/ODM2NDpCKFVlLDEyOSwyNTQpPyhDdD1VZSxudWxsKTp0ZShMdCl9fWZ1bmN0aW9uIENlKGx0LEx0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSlyZXR1''@;'; put 'put ''cm4gTjtpZihhZShIdCkpcmV0dXJuIEh0O2lmKDU4ODUzPT09SHQpcmV0dXJuIEsoSHQpO2lmKEx0JiY4MzY0PT09SHQpcmV0dXJuIDEyODt2YXIgR2U9U2UoSHQsSWUoImdiMTgwMzAiKSk7aWYobnVsbCE9PUdlKXt2YXIgeXQ9R2UlMTkwO3JldHVybltFZShHZS8xOTApKzEyOSx5dCsoeXQ8''@;'; put 'put ''NjM/NjQ6NjUpXX1pZihMdClyZXR1cm4gSyhIdCk7R2U9ZnVuY3Rpb24gTWUobHQpe2lmKDU5MzM1PT09bHQpcmV0dXJuIDc0NTc7dmFyIEh0LEx0PTAsQ3Q9MCxmdD1JZSgiZ2IxODAzMC1yYW5nZXMiKTtmb3IoSHQ9MDtIdDxmdC5sZW5ndGg7KytIdCl7dmFyIEdlPWZ0W0h0XTtpZighKEdl''@;'; put 'put ''WzFdPD1sdCkpYnJlYWs7THQ9R2VbMV0sQ3Q9R2VbMF19cmV0dXJuIEN0K2x0LUx0fShIdCk7dmFyIEp0PUVlKEdlLzEwLzEyNi8xMCksZ249RWUoKEdlLT0xMCpKdCoxMjYqMTApLzEwLzEyNiksZG49RWUoKEdlLT0xMCpnbioxMjYpLzEwKTtyZXR1cm5bSnQrMTI5LGduKzQ4LGRuKzEyOSxH''@;'; put 'put ''ZS0xMCpkbis0OF19fWZ1bmN0aW9uIERlKGx0KXt2YXIgTHQ9bHQuZmF0YWwsQ3Q9MDt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oZnQsSHQpe2lmKEh0PT09WSYmMCE9PUN0KXJldHVybiBDdD0wLHRlKEx0KTtpZihIdD09PVkmJjA9PT1DdClyZXR1cm4gTjtpZigwIT09Q3Qpe3ZhciBHZT1DdCxV''@;'; put 'put ''ZT1udWxsO0N0PTA7dmFyIHl0PUh0PDEyNz82NDo5ODtzd2l0Y2goKEIoSHQsNjQsMTI2KXx8QihIdCwxNjEsMjU0KSkmJihVZT0xNTcqKEdlLTEyOSkrKEh0LXl0KSksVWUpe2Nhc2UgMTEzMzpyZXR1cm5bMjAyLDc3Ml07Y2FzZSAxMTM1OnJldHVyblsyMDIsNzgwXTtjYXNlIDExNjQ6cmV0''@;'; put 'put ''dXJuWzIzNCw3NzJdO2Nhc2UgMTE2NjpyZXR1cm5bMjM0LDc4MF19dmFyIGp0PW51bGw9PT1VZT9udWxsOmtlKFVlLEllKCJiaWc1IikpO3JldHVybiBudWxsPT09anQmJnJlKEh0KSYmZnQucHJlcGVuZChIdCksbnVsbD09PWp0P3RlKEx0KTpqdH1yZXR1cm4gcmUoSHQpP0h0OkIoSHQsMTI5''@;'; put 'put ''LDI1NCk/KEN0PUh0LG51bGwpOnRlKEx0KX19ZnVuY3Rpb24gUGUobHQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihDdCxmdCl7aWYoZnQ9PT1ZKXJldHVybiBOO2lmKGFlKGZ0KSlyZXR1cm4gZnQ7dmFyIEh0PWZ1bmN0aW9uIHoobHQpe3ZhciBMdD1lZT1lZXx8SWUoImJpZzUiKS5tYXAoZnVu''@;'; put 'put ''Y3Rpb24oQ3QsZnQpe3JldHVybiBmdDw1MDI0P251bGw6Q3R9KTtyZXR1cm4gOTU1Mj09PWx0fHw5NTY2PT09bHR8fDk1Njk9PT1sdHx8OTU3OD09PWx0fHwyMTMxMz09PWx0fHwyMTMxNz09PWx0P0x0Lmxhc3RJbmRleE9mKGx0KTpTZShsdCxMdCl9KGZ0KTtpZihudWxsPT09SHQpcmV0dXJu''@;'; put 'put ''IEsoZnQpO3ZhciBHZT1FZShIdC8xNTcpKzEyOTtpZihHZTwxNjEpcmV0dXJuIEsoZnQpO3ZhciBVZT1IdCUxNTc7cmV0dXJuW0dlLFVlKyhVZTw2Mz82NDo5OCldfX1mdW5jdGlvbiBRZShsdCl7dmFyIEx0PWx0LmZhdGFsLEN0PSExLGZ0PTA7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEh0LEdl''@;'; put 'put ''KXtpZihHZT09PVkmJjAhPT1mdClyZXR1cm4gZnQ9MCx0ZShMdCk7aWYoR2U9PT1ZJiYwPT09ZnQpcmV0dXJuIE47aWYoMTQyPT09ZnQmJkIoR2UsMTYxLDIyMykpcmV0dXJuIGZ0PTAsNjUyMTYrR2U7aWYoMTQzPT09ZnQmJkIoR2UsMTYxLDI1NCkpcmV0dXJuIEN0PSEwLGZ0PUdlLG51bGw7''@;'; put 'put ''aWYoMCE9PWZ0KXt2YXIgVWU9ZnQ7ZnQ9MDt2YXIgeXQ9bnVsbDtyZXR1cm4gQihVZSwxNjEsMjU0KSYmQihHZSwxNjEsMjU0KSYmKHl0PWtlKDk0KihVZS0xNjEpKyhHZS0xNjEpLEllKEN0PyJqaXMwMjEyIjoiamlzMDIwOCIpKSksQ3Q9ITEsQihHZSwxNjEsMjU0KXx8SHQucHJlcGVuZChH''@;'; put 'put ''ZSksbnVsbD09PXl0P3RlKEx0KTp5dH1yZXR1cm4gcmUoR2UpP0dlOjE0Mj09PUdlfHwxNDM9PT1HZXx8QihHZSwxNjEsMjU0KT8oZnQ9R2UsbnVsbCk6dGUoTHQpfX1mdW5jdGlvbiAkZShsdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtpZihmdD09PVkpcmV0dXJuIE47aWYoYWUo''@;'; put 'put ''ZnQpKXJldHVybiBmdDtpZigxNjU9PT1mdClyZXR1cm4gOTI7aWYoODI1ND09PWZ0KXJldHVybiAxMjY7aWYoQihmdCw2NTM3Nyw2NTQzOSkpcmV0dXJuWzE0MixmdC02NTM3NysxNjFdOzg3MjI9PT1mdCYmKGZ0PTY1MjkzKTt2YXIgSHQ9U2UoZnQsSWUoImppczAyMDgiKSk7cmV0dXJuIG51''@;'; put 'put ''bGw9PT1IdD9LKGZ0KTpbRWUoSHQvOTQpKzE2MSxIdCU5NCsxNjFdfX1mdW5jdGlvbiBndChsdCl7dmFyIEx0PWx0LmZhdGFsLGZ0PTAsR2U9MCxVZT0hMTt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oeXQsanQpe3N3aXRjaChmdCl7ZGVmYXVsdDpjYXNlIDA6cmV0dXJuIDI3PT09anQ/KGZ0PTUs''@;'; put 'put ''bnVsbCk6QihqdCwwLDEyNykmJjE0IT09anQmJjE1IT09anQmJjI3IT09anQ/KFVlPSExLGp0KTpqdD09PVk/TjooVWU9ITEsdGUoTHQpKTtjYXNlIDE6cmV0dXJuIDI3PT09anQ/KGZ0PTUsbnVsbCk6OTI9PT1qdD8oVWU9ITEsMTY1KToxMjY9PT1qdD8oVWU9ITEsODI1NCk6QihqdCwwLDEy''@;'; put 'put ''NykmJjE0IT09anQmJjE1IT09anQmJjI3IT09anQmJjkyIT09anQmJjEyNiE9PWp0PyhVZT0hMSxqdCk6anQ9PT1ZP046KFVlPSExLHRlKEx0KSk7Y2FzZSAyOnJldHVybiAyNz09PWp0PyhmdD01LG51bGwpOkIoanQsMzMsOTUpPyhVZT0hMSw2NTM0NCtqdCk6anQ9PT1ZP046KFVlPSExLHRl''@;'; put 'put ''KEx0KSk7Y2FzZSAzOnJldHVybiAyNz09PWp0PyhmdD01LG51bGwpOkIoanQsMzMsMTI2KT8oVWU9ITEsR2U9anQsZnQ9NCxudWxsKTpqdD09PVk/TjooVWU9ITEsdGUoTHQpKTtjYXNlIDQ6aWYoMjc9PT1qdClyZXR1cm4gZnQ9NSx0ZShMdCk7aWYoQihqdCwzMywxMjYpKXtmdD0zO3ZhciBn''@;'; put 'put ''bj1rZSg5NCooR2UtMzMpK2p0LTMzLEllKCJqaXMwMjA4IikpO3JldHVybiBudWxsPT09Z24/dGUoTHQpOmdufXJldHVybiBqdD09PVk/KGZ0PTMseXQucHJlcGVuZChqdCksdGUoTHQpKTooZnQ9Myx0ZShMdCkpO2Nhc2UgNTpyZXR1cm4gMzY9PT1qdHx8NDA9PT1qdD8oR2U9anQsZnQ9Nixu''@;'; put 'put ''dWxsKTooeXQucHJlcGVuZChqdCksVWU9ITEsZnQ9MCx0ZShMdCkpO2Nhc2UgNjp2YXIgZG49R2U7R2U9MDt2YXIgeW49bnVsbDtpZig0MD09PWRuJiY2Nj09PWp0JiYoeW49MCksNDA9PT1kbiYmNzQ9PT1qdCYmKHluPTEpLDQwPT09ZG4mJjczPT09anQmJih5bj0yKSwzNj09PWRuJiYoNjQ9''@;'; put 'put ''PT1qdHx8NjY9PT1qdCkmJih5bj0zKSxudWxsIT09eW4pe2Z0PWZ0PXluO3ZhciBsbj1VZTtyZXR1cm4gVWU9ITAsbG4/dGUoTHQpOm51bGx9cmV0dXJuIHl0LnByZXBlbmQoW2RuLGp0XSksVWU9ITEsZnQ9MCx0ZShMdCl9fX1mdW5jdGlvbiB3dChsdCl7dmFyIGZ0PTA7dGhpcy5oYW5kbGVy''@;'; put 'put ''PWZ1bmN0aW9uKEh0LEdlKXtpZihHZT09PVkmJjAhPT1mdClyZXR1cm4gSHQucHJlcGVuZChHZSksZnQ9MCxbMjcsNDAsNjZdO2lmKEdlPT09WSYmMD09PWZ0KXJldHVybiBOO2lmKCEoMCE9PWZ0JiYxIT09ZnR8fDE0IT09R2UmJjE1IT09R2UmJjI3IT09R2UpKXJldHVybiBLKDY1NTMzKTtp''@;'; put 'put ''ZigwPT09ZnQmJmFlKEdlKSlyZXR1cm4gR2U7aWYoMT09PWZ0JiYoYWUoR2UpJiY5MiE9PUdlJiYxMjYhPT1HZXx8MTY1PT1HZXx8ODI1ND09R2UpKXtpZihhZShHZSkpcmV0dXJuIEdlO2lmKDE2NT09PUdlKXJldHVybiA5MjtpZig4MjU0PT09R2UpcmV0dXJuIDEyNn1pZihhZShHZSkmJjAh''@;'; put 'put ''PT1mdClyZXR1cm4gSHQucHJlcGVuZChHZSksZnQ9MCxbMjcsNDAsNjZdO2lmKCgxNjU9PT1HZXx8ODI1ND09PUdlKSYmMSE9PWZ0KXJldHVybiBIdC5wcmVwZW5kKEdlKSxmdD0xLFsyNyw0MCw3NF07ODcyMj09PUdlJiYoR2U9NjUyOTMpO3ZhciBVZT1TZShHZSxJZSgiamlzMDIwOCIpKTty''@;'; put 'put ''ZXR1cm4gbnVsbD09PVVlP0soR2UpOjIhPT1mdD8oSHQucHJlcGVuZChHZSksZnQ9MixbMjcsMzYsNjZdKTpbRWUoVWUvOTQpKzMzLFVlJTk0KzMzXX19ZnVuY3Rpb24gbXQobHQpe3ZhciBMdD1sdC5mYXRhbCxDdD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZJiYw''@;'; put 'put ''IT09Q3QpcmV0dXJuIEN0PTAsdGUoTHQpO2lmKEh0PT09WSYmMD09PUN0KXJldHVybiBOO2lmKDAhPT1DdCl7dmFyIEdlPUN0LFVlPW51bGw7Q3Q9MDt2YXIgeXQ9SHQ8MTI3PzY0OjY1LGp0PUdlPDE2MD8xMjk6MTkzO2lmKChCKEh0LDY0LDEyNil8fEIoSHQsMTI4LDI1MikpJiYoVWU9MTg4''@;'; put 'put ''KihHZS1qdCkrSHQteXQpLEIoVWUsODgzNiwxMDcxNSkpcmV0dXJuIDQ4NTA4K1VlO3ZhciBKdD1udWxsPT09VWU/bnVsbDprZShVZSxJZSgiamlzMDIwOCIpKTtyZXR1cm4gbnVsbD09PUp0JiZyZShIdCkmJmZ0LnByZXBlbmQoSHQpLG51bGw9PT1KdD90ZShMdCk6SnR9cmV0dXJuIHJlKEh0''@;'; put 'put ''KXx8MTI4PT09SHQ/SHQ6QihIdCwxNjEsMjIzKT82NTIxNitIdDpCKEh0LDEyOSwxNTkpfHxCKEh0LDIyNCwyNTIpPyhDdD1IdCxudWxsKTp0ZShMdCl9fWZ1bmN0aW9uIHZ0KGx0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oQ3QsZnQpe2lmKGZ0PT09WSlyZXR1cm4gTjtpZihhZShmdCl8fDEy''@;'; put 'put ''OD09PWZ0KXJldHVybiBmdDtpZigxNjU9PT1mdClyZXR1cm4gOTI7aWYoODI1ND09PWZ0KXJldHVybiAxMjY7aWYoQihmdCw2NTM3Nyw2NTQzOSkpcmV0dXJuIGZ0LTY1Mzc3KzE2MTs4NzIyPT09ZnQmJihmdD02NTI5Myk7dmFyIEh0PWZ1bmN0aW9uIGhlKGx0KXtyZXR1cm4oTz1PfHxJZSgi''@;'; put 'put ''amlzMDIwOCIpLm1hcChmdW5jdGlvbihDdCxmdCl7cmV0dXJuIEIoZnQsODI3Miw4ODM1KT9udWxsOkN0fSkpLmluZGV4T2YobHQpfShmdCk7aWYobnVsbD09PUh0KXJldHVybiBLKGZ0KTt2YXIgR2U9RWUoSHQvMTg4KSx5dD1IdCUxODg7cmV0dXJuW0dlKyhHZTwzMT8xMjk6MTkzKSx5dCso''@;'; put 'put ''eXQ8NjM/NjQ6NjUpXX19ZnVuY3Rpb24gQXQobHQpe3ZhciBMdD1sdC5mYXRhbCxDdD0wO3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZJiYwIT09Q3QpcmV0dXJuIEN0PTAsdGUoTHQpO2lmKEh0PT09WSYmMD09PUN0KXJldHVybiBOO2lmKDAhPT1DdCl7dmFyIEdlPUN0''@;'; put 'put ''LFVlPW51bGw7Q3Q9MCxCKEh0LDY1LDI1NCkmJihVZT0xOTAqKEdlLTEyOSkrKEh0LTY1KSk7dmFyIHl0PW51bGw9PT1VZT9udWxsOmtlKFVlLEllKCJldWMta3IiKSk7cmV0dXJuIG51bGw9PT1VZSYmcmUoSHQpJiZmdC5wcmVwZW5kKEh0KSxudWxsPT09eXQ/dGUoTHQpOnl0fXJldHVybiBy''@;'; put 'put ''ZShIdCk/SHQ6QihIdCwxMjksMjU0KT8oQ3Q9SHQsbnVsbCk6dGUoTHQpfX1mdW5jdGlvbiBodChsdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtpZihmdD09PVkpcmV0dXJuIE47aWYoYWUoZnQpKXJldHVybiBmdDt2YXIgSHQ9U2UoZnQsSWUoImV1Yy1rciIpKTtyZXR1cm4gbnVs''@;'; put 'put ''bD09PUh0P0soZnQpOltFZShIdC8xOTApKzEyOSxIdCUxOTArNjVdfX1mdW5jdGlvbiBCdChsdCxMdCl7dmFyIEN0PWx0Pj44LGZ0PTI1NSZsdDtyZXR1cm4gTHQ/W0N0LGZ0XTpbZnQsQ3RdfWZ1bmN0aW9uIG9uKGx0LEx0KXt2YXIgQ3Q9THQuZmF0YWwsZnQ9bnVsbCxIdD1udWxsO3RoaXMu''@;'; put 'put ''aGFuZGxlcj1mdW5jdGlvbihHZSxVZSl7aWYoVWU9PT1ZJiYobnVsbCE9PWZ0fHxudWxsIT09SHQpKXJldHVybiB0ZShDdCk7aWYoVWU9PT1ZJiZudWxsPT09ZnQmJm51bGw9PT1IdClyZXR1cm4gTjtpZihudWxsPT09ZnQpcmV0dXJuIGZ0PVVlLG51bGw7dmFyIHl0O2lmKHl0PWx0PyhmdDw8''@;'; put 'put ''OCkrVWU6KFVlPDw4KStmdCxmdD1udWxsLG51bGwhPT1IdCl7dmFyIGp0PUh0O3JldHVybiBIdD1udWxsLEIoeXQsNTYzMjAsNTczNDMpPzY1NTM2KzEwMjQqKGp0LTU1Mjk2KSsoeXQtNTYzMjApOihHZS5wcmVwZW5kKEJ0KHl0LGx0KSksdGUoQ3QpKX1yZXR1cm4gQih5dCw1NTI5Niw1NjMx''@;'; put 'put ''OSk/KEh0PXl0LG51bGwpOkIoeXQsNTYzMjAsNTczNDMpP3RlKEN0KTp5dH19ZnVuY3Rpb24gX3QobHQsTHQpe3RoaXMuaGFuZGxlcj1mdW5jdGlvbihmdCxIdCl7aWYoSHQ9PT1ZKXJldHVybiBOO2lmKEIoSHQsMCw2NTUzNSkpcmV0dXJuIEJ0KEh0LGx0KTt2YXIgR2U9QnQoNTUyOTYrKEh0''@;'; put 'put ''LTY1NTM2Pj4xMCksbHQpLFVlPUJ0KDU2MzIwKyhIdC02NTUzNiYxMDIzKSxsdCk7cmV0dXJuIEdlLmNvbmNhdChVZSl9fWZ1bmN0aW9uIHR0KGx0KXt0aGlzLmhhbmRsZXI9ZnVuY3Rpb24oQ3QsZnQpe3JldHVybiBmdD09PVk/TjpyZShmdCk/ZnQ6NjMzNjArZnQtMTI4fX1mdW5jdGlvbiBl''@;'; put 'put ''dChsdCl7dGhpcy5oYW5kbGVyPWZ1bmN0aW9uKEN0LGZ0KXtyZXR1cm4gZnQ9PT1ZP046YWUoZnQpP2Z0OkIoZnQsNjMzNjAsNjM0ODcpP2Z0LTYzMzYwKzEyODpLKGZ0KX19T2JqZWN0LmRlZmluZVByb3BlcnR5JiYoT2JqZWN0LmRlZmluZVByb3BlcnR5KHgucHJvdG90eXBlLCJlbmNvZGlu''@;'; put 'put ''ZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmNvZGluZy5uYW1lLnRvTG93ZXJDYXNlKCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHgucHJvdG90eXBlLCJmYXRhbCIse2dldDpmdW5jdGlvbigpe3JldHVybiJmYXRhbCI9PT10aGlzLl9lcnJvcl9tb2RlfX0pLE9iamVjdC5k''@;'; put 'put ''ZWZpbmVQcm9wZXJ0eSh4LnByb3RvdHlwZSwiaWdub3JlQk9NIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lnbm9yZUJPTX19KSkseC5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKEx0LEN0KXt2YXIgZnQ7ZnQ9Im9iamVjdCI9PXR5cGVvZiBMdCYmTHQgaW5zdGFuY2VvZiBBcnJh''@;'; put 'put ''eUJ1ZmZlcj9uZXcgVWludDhBcnJheShMdCk6Im9iamVjdCI9PXR5cGVvZiBMdCYmImJ1ZmZlciJpbiBMdCYmTHQuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXI/bmV3IFVpbnQ4QXJyYXkoTHQuYnVmZmVyLEx0LmJ5dGVPZmZzZXQsTHQuYnl0ZUxlbmd0aCk6bmV3IFVpbnQ4QXJyYXko''@;'; put 'put ''MCksQ3Q9VShDdCksdGhpcy5fZG9fbm90X2ZsdXNofHwodGhpcy5fZGVjb2Rlcj1BZVt0aGlzLl9lbmNvZGluZy5uYW1lXSh7ZmF0YWw6ImZhdGFsIj09PXRoaXMuX2Vycm9yX21vZGV9KSx0aGlzLl9CT01zZWVuPSExKSx0aGlzLl9kb19ub3RfZmx1c2g9Qm9vbGVhbihDdC5zdHJlYW0pO2Zv''@;'; put 'put ''cih2YXIgVWUsSHQ9bmV3IFcoZnQpLEdlPVtdOzspe3ZhciB5dD1IdC5yZWFkKCk7aWYoeXQ9PT1ZfHwoVWU9dGhpcy5fZGVjb2Rlci5oYW5kbGVyKEh0LHl0KSk9PT1OKWJyZWFrO251bGwhPT1VZSYmKEFycmF5LmlzQXJyYXkoVWUpP0dlLnB1c2guYXBwbHkoR2UsVWUpOkdlLnB1c2goVWUp''@;'; put 'put ''KX1pZighdGhpcy5fZG9fbm90X2ZsdXNoKXtkb3tpZigoVWU9dGhpcy5fZGVjb2Rlci5oYW5kbGVyKEh0LEh0LnJlYWQoKSkpPT09TilicmVhaztudWxsIT09VWUmJihBcnJheS5pc0FycmF5KFVlKT9HZS5wdXNoLmFwcGx5KEdlLFVlKTpHZS5wdXNoKFVlKSl9d2hpbGUoIUh0LmVuZE9mU3Ry''@;'; put 'put ''ZWFtKCkpO3RoaXMuX2RlY29kZXI9bnVsbH1yZXR1cm4gZnVuY3Rpb24ganQoSnQpe3JldHVybiBmdW5jdGlvbiBFKGx0LEx0KXtyZXR1cm4tMSE9PWx0LmluZGV4T2YoTHQpfShbIlVURi04IiwiVVRGLTE2TEUiLCJVVEYtMTZCRSJdLHRoaXMuX2VuY29kaW5nLm5hbWUpJiYhdGhpcy5faWdu''@;'; put 'put ''b3JlQk9NJiYhdGhpcy5fQk9Nc2VlbiYmKEp0Lmxlbmd0aD4wJiY2NTI3OT09PUp0WzBdPyh0aGlzLl9CT01zZWVuPSEwLEp0LnNoaWZ0KCkpOkp0Lmxlbmd0aD4wJiYodGhpcy5fQk9Nc2Vlbj0hMCkpLGZ1bmN0aW9uIGoobHQpe2Zvcih2YXIgTHQ9IiIsQ3Q9MDtDdDxsdC5sZW5ndGg7KytD''@;'; put 'put ''dCl7dmFyIGZ0PWx0W0N0XTtmdDw9NjU1MzU/THQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZnQpOihmdC09NjU1MzYsTHQrPVN0cmluZy5mcm9tQ2hhckNvZGUoNTUyOTYrKGZ0Pj4xMCksNTYzMjArKDEwMjMmZnQpKSl9cmV0dXJuIEx0fShKdCl9LmNhbGwodGhpcyxHZSl9LE9iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KFAucHJvdG90eXBlLCJlbmNvZGluZyIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmNvZGluZy5uYW1lLnRvTG93ZXJDYXNlKCl9fSksUC5wcm90b3R5cGUuZW5jb2RlPWZ1bmN0aW9uKEx0LEN0KXtMdD12b2lkIDA9PT1M''@;'; put 'put ''dD8iIjpTdHJpbmcoTHQpLEN0PVUoQ3QpLHRoaXMuX2RvX25vdF9mbHVzaHx8KHRoaXMuX2VuY29kZXI9dmVbdGhpcy5fZW5jb2RpbmcubmFtZV0oe2ZhdGFsOiJmYXRhbCI9PT10aGlzLl9mYXRhbH0pKSx0aGlzLl9kb19ub3RfZmx1c2g9Qm9vbGVhbihDdC5zdHJlYW0pO2Zvcih2YXIgR2Us''@;'; put 'put ''ZnQ9bmV3IFcoZnVuY3Rpb24gUShsdCl7Zm9yKHZhciBMdD1TdHJpbmcobHQpLEN0PUx0Lmxlbmd0aCxmdD0wLEh0PVtdO2Z0PEN0Oyl7dmFyIEdlPUx0LmNoYXJDb2RlQXQoZnQpO2lmKEdlPDU1Mjk2fHxHZT41NzM0MylIdC5wdXNoKEdlKTtlbHNlIGlmKDU2MzIwPD1HZSYmR2U8PTU3MzQz''@;'; put 'put ''KUh0LnB1c2goNjU1MzMpO2Vsc2UgaWYoNTUyOTY8PUdlJiZHZTw9NTYzMTkpaWYoZnQ9PT1DdC0xKUh0LnB1c2goNjU1MzMpO2Vsc2V7dmFyIFVlPUx0LmNoYXJDb2RlQXQoZnQrMSk7NTYzMjA8PVVlJiZVZTw9NTczNDM/KEh0LnB1c2goNjU1MzYrKCgxMDIzJkdlKTw8MTApKygxMDIzJlVl''@;'; put 'put ''KSksZnQrPTEpOkh0LnB1c2goNjU1MzMpfWZ0Kz0xfXJldHVybiBIdH0oTHQpKSxIdD1bXTs7KXt2YXIgVWU9ZnQucmVhZCgpO2lmKFVlPT09WXx8KEdlPXRoaXMuX2VuY29kZXIuaGFuZGxlcihmdCxVZSkpPT09TilicmVhaztBcnJheS5pc0FycmF5KEdlKT9IdC5wdXNoLmFwcGx5KEh0LEdl''@;'; put 'put ''KTpIdC5wdXNoKEdlKX1pZighdGhpcy5fZG9fbm90X2ZsdXNoKXtmb3IoOyhHZT10aGlzLl9lbmNvZGVyLmhhbmRsZXIoZnQsZnQucmVhZCgpKSkhPT1OOylBcnJheS5pc0FycmF5KEdlKT9IdC5wdXNoLmFwcGx5KEh0LEdlKTpIdC5wdXNoKEdlKTt0aGlzLl9lbmNvZGVyPW51bGx9cmV0dXJu''@;'; put 'put ''IG5ldyBVaW50OEFycmF5KEh0KX0sdmVbIlVURi04Il09ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgVChsdCl9LEFlWyJVVEYtOCJdPWZ1bmN0aW9uKGx0KXtyZXR1cm4gbmV3IFYobHQpfSwiZW5jb2RpbmctaW5kZXhlcyJpbiBtZSYmY2UuZm9yRWFjaChmdW5jdGlvbihsdCl7IkxlZ2FjeSBz''@;'; put 'put ''aW5nbGUtYnl0ZSBlbmNvZGluZ3MiPT09bHQuaGVhZGluZyYmbHQuZW5jb2RpbmdzLmZvckVhY2goZnVuY3Rpb24oTHQpe3ZhciBDdD1MdC5uYW1lLGZ0PUllKEN0LnRvTG93ZXJDYXNlKCkpO0FlW0N0XT1mdW5jdGlvbihIdCl7cmV0dXJuIG5ldyBTKGZ0LEh0KX0sdmVbQ3RdPWZ1bmN0aW9u''@;'; put 'put ''KEh0KXtyZXR1cm4gbmV3IEYoZnQsSHQpfX0pfSksQWUuR0JLPWZ1bmN0aW9uKGx0KXtyZXR1cm4gbmV3IHllKGx0KX0sdmUuR0JLPWZ1bmN0aW9uKGx0KXtyZXR1cm4gbmV3IENlKGx0LCEwKX0sdmUuZ2IxODAzMD1mdW5jdGlvbihsdCl7cmV0dXJuIG5ldyBDZShsdCl9LEFlLmdiMTgwMzA9''@;'; put 'put ''ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgeWUobHQpfSx2ZS5CaWc1PWZ1bmN0aW9uKGx0KXtyZXR1cm4gbmV3IFBlKGx0KX0sQWUuQmlnNT1mdW5jdGlvbihsdCl7cmV0dXJuIG5ldyBEZShsdCl9LHZlWyJFVUMtSlAiXT1mdW5jdGlvbihsdCl7cmV0dXJuIG5ldyAkZShsdCl9LEFlWyJFVUMt''@;'; put 'put ''SlAiXT1mdW5jdGlvbihsdCl7cmV0dXJuIG5ldyBRZShsdCl9LHZlWyJJU08tMjAyMi1KUCJdPWZ1bmN0aW9uKGx0KXtyZXR1cm4gbmV3IHd0KGx0KX0sQWVbIklTTy0yMDIyLUpQIl09ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgZ3QobHQpfSx2ZS5TaGlmdF9KSVM9ZnVuY3Rpb24obHQpe3Jl''@;'; put 'put ''dHVybiBuZXcgdnQobHQpfSxBZS5TaGlmdF9KSVM9ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgbXQobHQpfSx2ZVsiRVVDLUtSIl09ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgaHQobHQpfSxBZVsiRVVDLUtSIl09ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgQXQobHQpfSx2ZVsiVVRGLTE2QkUi''@;'; put 'put ''XT1mdW5jdGlvbihsdCl7cmV0dXJuIG5ldyBfdCghMCxsdCl9LEFlWyJVVEYtMTZCRSJdPWZ1bmN0aW9uKGx0KXtyZXR1cm4gbmV3IG9uKCEwLGx0KX0sdmVbIlVURi0xNkxFIl09ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgX3QoITEsbHQpfSxBZVsiVVRGLTE2TEUiXT1mdW5jdGlvbihsdCl7''@;'; put 'put ''cmV0dXJuIG5ldyBvbighMSxsdCl9LHZlWyJ4LXVzZXItZGVmaW5lZCJdPWZ1bmN0aW9uKGx0KXtyZXR1cm4gbmV3IGV0KGx0KX0sQWVbIngtdXNlci1kZWZpbmVkIl09ZnVuY3Rpb24obHQpe3JldHVybiBuZXcgdHQobHQpfSxtZS5UZXh0RW5jb2Rlcnx8KG1lLlRleHRFbmNvZGVyPVApLG1l''@;'; put 'put ''LlRleHREZWNvZGVyfHwobWUuVGV4dERlY29kZXI9eCksWGUuZXhwb3J0cyYmKFhlLmV4cG9ydHM9e1RleHRFbmNvZGVyOm1lLlRleHRFbmNvZGVyLFRleHREZWNvZGVyOm1lLlRleHREZWNvZGVyLEVuY29kaW5nSW5kZXhlczptZVsiZW5jb2RpbmctaW5kZXhlcyJdfSl9KHRoaXN8fHt9KX0s''@;'; put 'put ''MjM1MzI6WGU9PntmdW5jdGlvbiBMKG1lKXt0cnl7aWYoIWdsb2JhbC5sb2NhbFN0b3JhZ2UpcmV0dXJuITF9Y2F0Y2goRSl7cmV0dXJuITF9dmFyIEI9Z2xvYmFsLmxvY2FsU3RvcmFnZVttZV07cmV0dXJuIG51bGwhPUImJiJ0cnVlIj09PVN0cmluZyhCKS50b0xvd2VyQ2FzZSgpfVhlLmV4''@;'; put 'put ''cG9ydHM9ZnVuY3Rpb24gSmUobWUsQil7aWYoTCgibm9EZXByZWNhdGlvbiIpKXJldHVybiBtZTt2YXIgRT0hMTtyZXR1cm4gZnVuY3Rpb24gRWUoKXtpZighRSl7aWYoTCgidGhyb3dEZXByZWNhdGlvbiIpKXRocm93IG5ldyBFcnJvcihCKTtMKCJ0cmFjZURlcHJlY2F0aW9uIik/Y29uc29s''@;'; put 'put ''ZS50cmFjZShCKTpjb25zb2xlLndhcm4oQiksRT0hMH1yZXR1cm4gbWUuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LDczMzkzOihYZSxKZSxMKT0+eyFmdW5jdGlvbihtZSl7InVzZSBzdHJpY3QiO21lLmV4cG9ydHMuaXNfdXJpPUUsbWUuZXhwb3J0cy5pc19odHRwX3VyaT1FZSxtZS5leHBv''@;'; put 'put ''cnRzLmlzX2h0dHBzX3VyaT1VLG1lLmV4cG9ydHMuaXNfd2ViX3VyaT1RLG1lLmV4cG9ydHMuaXNVcmk9RSxtZS5leHBvcnRzLmlzSHR0cFVyaT1FZSxtZS5leHBvcnRzLmlzSHR0cHNVcmk9VSxtZS5leHBvcnRzLmlzV2ViVXJpPVE7dmFyIEI9ZnVuY3Rpb24oail7cmV0dXJuIGoubWF0Y2go''@;'; put 'put ''Lyg/OihbXjpcLz8jXSspOik/KD86XC9cLyhbXlwvPyNdKikpPyhbXj8jXSopKD86XD8oW14jXSopKT8oPzojKC4qKSk/Lyl9O2Z1bmN0aW9uIEUoail7aWYoaiYmIS9bXmEtejAtOVw6XC9cP1wjXFtcXVxAXCFcJFwmXCdcKFwpXCpcK1wsXDtcPVwuXC1cX1x+XCVdL2kudGVzdChqKSYmIS8l''@;'; put 'put ''W14wLTlhLWZdL2kudGVzdChqKSYmIS8lWzAtOWEtZl0oOj9bXjAtOWEtZl18JCkvaS50ZXN0KGopKXt2YXIgcmUsWSxXLE4sdGUsYWU9IiIsSz0iIjtpZihZPShyZT1CKGopKVsyXSxXPXJlWzNdLE49cmVbNF0sdGU9cmVbNV0sKGFlPXJlWzFdKSYmYWUubGVuZ3RoJiZXLmxlbmd0aD49MCl7''@;'; put 'put ''aWYoWSYmWS5sZW5ndGgpe2lmKDAhPT1XLmxlbmd0aCYmIS9eXC8vLnRlc3QoVykpcmV0dXJufWVsc2UgaWYoL15cL1wvLy50ZXN0KFcpKXJldHVybjtpZigvXlthLXpdW2EtejAtOVwrXC1cLl0qJC8udGVzdChhZS50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gSys9YWUrIjoiLFkmJlkubGVuZ3Ro''@;'; put 'put ''JiYoSys9Ii8vIitZKSxLKz1XLE4mJk4ubGVuZ3RoJiYoSys9Ij8iK04pLHRlJiZ0ZS5sZW5ndGgmJihLKz0iIyIrdGUpLEt9fX1mdW5jdGlvbiBFZShqLHJlKXtpZihFKGopKXt2YXIgYWUsTixLLEosWT0iIixXPSIiLHRlPSIiLHNlPSIiO2lmKFc9KGFlPUIoaikpWzJdLE49YWVbM10sSz1h''@;'; put 'put ''ZVs0XSxKPWFlWzVdLFk9YWVbMV0pe2lmKHJlKXtpZigiaHR0cHMiIT1ZLnRvTG93ZXJDYXNlKCkpcmV0dXJufWVsc2UgaWYoImh0dHAiIT1ZLnRvTG93ZXJDYXNlKCkpcmV0dXJuO2lmKFcpcmV0dXJuLzooXGQrKSQvLnRlc3QoVykmJih0ZT1XLm1hdGNoKC86KFxkKykkLylbMF0sVz1XLnJl''@;'; put 'put ''cGxhY2UoLzpcZCskLywiIikpLHNlKz1ZKyI6IixzZSs9Ii8vIitXLHRlJiYoc2UrPXRlKSxzZSs9TixLJiZLLmxlbmd0aCYmKHNlKz0iPyIrSyksSiYmSi5sZW5ndGgmJihzZSs9IiMiK0opLHNlfX19ZnVuY3Rpb24gVShqKXtyZXR1cm4gRWUoaiwhMCl9ZnVuY3Rpb24gUShqKXtyZXR1cm4g''@;'; put 'put ''RWUoail8fFUoail9fShYZT1MLm5tZChYZSkpfSwyOTAzNTpmdW5jdGlvbihYZSxKZSxMKXshZnVuY3Rpb24obWUpe3ZhciBCPWZ1bmN0aW9uKGope2o9dm9pZCAwIT09KGo9anx8e30pP2o6e307dmFyIGFlLHJlPXt9O2ZvcihhZSBpbiBqKWouaGFzT3duUHJvcGVydHkoYWUpJiYocmVbYWVd''@;'; put 'put ''PWpbYWVdKTtqLmFyZ3VtZW50cz1bXSxqLnRoaXNQcm9ncmFtPSIuL3RoaXMucHJvZ3JhbSIsai5xdWl0PWZ1bmN0aW9uKGR0LEl0KXt0aHJvdyBJdH0sai5wcmVSdW49W10sai5wb3N0UnVuPVtdO3ZhciBLLEosWT0hMSxXPSExLE49ITEsdGU9ITE7aWYoai5FTlZJUk9OTUVOVClpZigiV0VC''@;'; put 'put ''Ij09PWouRU5WSVJPTk1FTlQpWT0hMDtlbHNlIGlmKCJXT1JLRVIiPT09ai5FTlZJUk9OTUVOVClXPSEwO2Vsc2UgaWYoIk5PREUiPT09ai5FTlZJUk9OTUVOVClOPSEwO2Vsc2V7aWYoIlNIRUxMIiE9PWouRU5WSVJPTk1FTlQpdGhyb3cgbmV3IEVycm9yKCJNb2R1bGVbJ0VOVklST05NRU5U''@;'; put 'put ''J10gdmFsdWUgaXMgbm90IHZhbGlkLiBtdXN0IGJlIG9uZSBvZjogV0VCfFdPUktFUnxOT0RFfFNIRUxMLiIpO3RlPSEwfWVsc2UgWT0ib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyxXPSJmdW5jdGlvbiI9PXR5cGVvZiBpbXBvcnRTY3JpcHRzLE49Im9iamVjdCI9PXR5cGVvZiBwcm9jZXNzJiYh''@;'; put 'put ''WSYmIVcsdGU9IVkmJiFOJiYhVztmb3IoYWUgaW4gTj8oai5yZWFkPWZ1bmN0aW9uKEl0LFB0KXt2YXIgZmU7cmV0dXJuKGZlPVV1KEl0KSl8fChLfHwoSz1MKDM1MTU5KSksSnx8KEo9TCg3NTcwMSkpLEl0PUoubm9ybWFsaXplKEl0KSxmZT1LLnJlYWRGaWxlU3luYyhJdCkpLFB0P2ZlOmZl''@;'; put 'put ''LnRvU3RyaW5nKCl9LGoucmVhZEJpbmFyeT1mdW5jdGlvbihJdCl7dmFyIFB0PWoucmVhZChJdCwhMCk7cmV0dXJuIFB0LmJ1ZmZlcnx8KFB0PW5ldyBVaW50OEFycmF5KFB0KSksTyhQdC5idWZmZXIpLFB0fSxwcm9jZXNzLmFyZ3YubGVuZ3RoPjEmJihqLnRoaXNQcm9ncmFtPXByb2Nlc3Mu''@;'; put 'put ''YXJndlsxXS5yZXBsYWNlKC9cXC9nLCIvIikpLGouYXJndW1lbnRzPXByb2Nlc3MuYXJndi5zbGljZSgyKSxYZS5leHBvcnRzPWoscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKGR0KXtpZighKGR0IGluc3RhbmNlb2YgQ2EpKXRocm93IGR0fSkscHJvY2Vzcy5vbigi''@;'; put 'put ''dW5oYW5kbGVkUmVqZWN0aW9uIixmdW5jdGlvbihkdCxJdCl7cHJvY2Vzcy5leGl0KDEpfSksai5pbnNwZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIltFbXNjcmlwdGVuIE1vZHVsZSBvYmplY3RdIn0pOnRlPygidW5kZWZpbmVkIiE9dHlwZW9mIHJlYWQmJihqLnJlYWQ9ZnVuY3Rpb24oSXQpe3Zh''@;'; put 'put ''ciBQdD1VdShJdCk7cmV0dXJuIFB0P1lhKFB0KTpyZWFkKEl0KX0pLGoucmVhZEJpbmFyeT1mdW5jdGlvbihJdCl7dmFyIFB0O3JldHVybihQdD1VdShJdCkpfHwoImZ1bmN0aW9uIj09dHlwZW9mIHJlYWRidWZmZXI/bmV3IFVpbnQ4QXJyYXkocmVhZGJ1ZmZlcihJdCkpOihPKCJvYmplY3Qi''@;'; put 'put ''PT10eXBlb2YoUHQ9cmVhZChJdCwiYmluYXJ5IikpKSxQdCkpfSwidW5kZWZpbmVkIiE9dHlwZW9mIHNjcmlwdEFyZ3M/ai5hcmd1bWVudHM9c2NyaXB0QXJnczp2b2lkIDAhPT1hcmd1bWVudHMmJihqLmFyZ3VtZW50cz1hcmd1bWVudHMpLCJmdW5jdGlvbiI9PXR5cGVvZiBxdWl0JiYoai5x''@;'; put 'put ''dWl0PWZ1bmN0aW9uKGR0LEl0KXtxdWl0KGR0KX0pKTooWXx8VykmJihqLnJlYWQ9ZnVuY3Rpb24oSXQpe3RyeXt2YXIgUHQ9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBQdC5vcGVuKCJHRVQiLEl0LCExKSxQdC5zZW5kKG51bGwpLFB0LnJlc3BvbnNlVGV4dH1jYXRjaChpdCl7dmFyIGZl''@;'; put 'put ''PVV1KEl0KTtpZihmZSlyZXR1cm4gWWEoZmUpO3Rocm93IGl0fX0sVyYmKGoucmVhZEJpbmFyeT1mdW5jdGlvbihJdCl7dHJ5e3ZhciBQdD1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIFB0Lm9wZW4oIkdFVCIsSXQsITEpLFB0LnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLFB0LnNlbmQo''@;'; put 'put ''bnVsbCksbmV3IFVpbnQ4QXJyYXkoUHQucmVzcG9uc2UpfWNhdGNoKGl0KXt2YXIgZmU9VXUoSXQpO2lmKGZlKXJldHVybiBmZTt0aHJvdyBpdH19KSxqLnJlYWRBc3luYz1mdW5jdGlvbihJdCxQdCxmZSl7dmFyIGl0PW5ldyBYTUxIdHRwUmVxdWVzdDtpdC5vcGVuKCJHRVQiLEl0LCEwKSxp''@;'; put 'put ''dC5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixpdC5vbmxvYWQ9ZnVuY3Rpb24oKXtpZigyMDA9PWl0LnN0YXR1c3x8MD09aXQuc3RhdHVzJiZpdC5yZXNwb25zZSlQdChpdC5yZXNwb25zZSk7ZWxzZXt2YXIgWHQ9VXUoSXQpO1h0P1B0KFh0LmJ1ZmZlcik6ZmUoKX19LGl0Lm9uZXJyb3I9''@;'; put 'put ''ZmUsaXQuc2VuZChudWxsKX0sdm9pZCAwIT09YXJndW1lbnRzJiYoai5hcmd1bWVudHM9YXJndW1lbnRzKSxqLnNldFdpbmRvd1RpdGxlPWZ1bmN0aW9uKGR0KXtkb2N1bWVudC50aXRsZT1kdH0pLGoucHJpbnQ9InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlP2NvbnNvbGUubG9nOiJ1bmRl''@;'; put 'put ''ZmluZWQiIT10eXBlb2YgcHJpbnQ/cHJpbnQ6bnVsbCxqLnByaW50RXJyPSJ1bmRlZmluZWQiIT10eXBlb2YgcHJpbnRFcnI/cHJpbnRFcnI6InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlLndhcm58fGoucHJpbnQsai5wcmludD1qLnByaW50LGoucHJpbnRFcnI9ai5wcmlu''@;'; put 'put ''dEVycixyZSlyZS5oYXNPd25Qcm9wZXJ0eShhZSkmJihqW2FlXT1yZVthZV0pO3JlPXZvaWQgMDt2YXIgc2U9MTY7ZnVuY3Rpb24gb2UoZHQpe08oIWp0KTt2YXIgSXQ9eXQ7cmV0dXJuIHl0PXl0K2R0KzE1Ji0xNixJdH1mdW5jdGlvbiBjZShkdCl7Tyhsbik7dmFyIEl0PUx0W2xuPj4yXSxQ''@;'; put 'put ''dD1JdCtkdCsxNSYtMTY7cmV0dXJuIEx0W2xuPj4yXT1QdCxQdD49c3ImJiFibigpPyhMdFtsbj4+Ml09SXQsMCk6SXR9ZnVuY3Rpb24gZGUoZHQsSXQpe3JldHVybiBJdHx8KEl0PXNlKSxNYXRoLmNlaWwoZHQvSXQpKkl0fWZ1bmN0aW9uIHZlKGR0KXtzd2l0Y2goZHQpe2Nhc2UiaTEiOmNh''@;'; put 'put ''c2UiaTgiOnJldHVybiAxO2Nhc2UiaTE2IjpyZXR1cm4gMjtjYXNlImkzMiI6Y2FzZSJmbG9hdCI6cmV0dXJuIDQ7Y2FzZSJpNjQiOmNhc2UiZG91YmxlIjpyZXR1cm4gODtkZWZhdWx0OmlmKCIqIj09PWR0W2R0Lmxlbmd0aC0xXSlyZXR1cm4gNDtpZigiaSI9PT1kdFswXSl7dmFyIEl0PXBh''@;'; put 'put ''cnNlSW50KGR0LnN1YnN0cigxKSk7cmV0dXJuIE8oSXQlOD09MCksSXQvOH1yZXR1cm4gMH19bmV3IEFycmF5KDApO3ZhciBUZT04LE1lPTA7ZnVuY3Rpb24gTyhkdCxJdCl7ZHR8fGYyKCJBc3NlcnRpb24gZmFpbGVkOiAiK0l0KX1mdW5jdGlvbiB6KGR0KXt2YXIgSXQ9alsiXyIrZHRdO3Jl''@;'; put 'put ''dHVybiBPKEl0LCJDYW5ub3QgY2FsbCB1bmtub3duIGZ1bmN0aW9uICIrZHQrIiwgbWFrZSBzdXJlIGl0IGlzIGV4cG9ydGVkIiksSXR9dmFyIGVlPXtzdGFja1NhdmU6ZnVuY3Rpb24oKXtRcygpfSxzdGFja1Jlc3RvcmU6ZnVuY3Rpb24oKXtXcCgpfSxhcnJheVRvQzpmdW5jdGlvbihkdCl7''@;'; put 'put ''dmFyIEl0PVFnKGR0Lmxlbmd0aCk7cmV0dXJuIHpuKGR0LEl0KSxJdH0sc3RyaW5nVG9DOmZ1bmN0aW9uKGR0KXt2YXIgSXQ9MDtpZihudWxsIT1kdCYmMCE9PWR0KXt2YXIgUHQ9MSsoZHQubGVuZ3RoPDwyKTtRZShkdCxJdD1RZyhQdCksUHQpfXJldHVybiBJdH19LG5lPXtzdHJpbmc6ZWUu''@;'; put 'put ''c3RyaW5nVG9DLGFycmF5OmVlLmFycmF5VG9DfTtmdW5jdGlvbiB4KGR0LEl0LFB0LGZlLGl0KXt2YXIgYT16KGR0KSxYdD1bXSxocj0wO2lmKGZlKWZvcih2YXIgUGk9MDtQaTxmZS5sZW5ndGg7UGkrKyl7dmFyIGpuPW5lW1B0W1BpXV07am4/KDA9PT1ociYmKGhyPVFzKCkpLFh0W1BpXT1q''@;'; put 'put ''bihmZVtQaV0pKTpYdFtQaV09ZmVbUGldfXZhciBfPWEuYXBwbHkobnVsbCxYdCk7cmV0dXJuInN0cmluZyI9PT1JdCYmKF89RihfKSksMCE9PWhyJiZXcChociksX31mdW5jdGlvbiBQKGR0LEl0LFB0LGZlKXtzd2l0Y2goIioiPT09KFB0PVB0fHwiaTgiKS5jaGFyQXQoUHQubGVuZ3RoLTEp''@;'; put 'put ''JiYoUHQ9ImkzMiIpLFB0KXtjYXNlImkxIjpjYXNlImk4IjpfdFtkdD4+MF09SXQ7YnJlYWs7Y2FzZSJpMTYiOmV0W2R0Pj4xXT1JdDticmVhaztjYXNlImkzMiI6THRbZHQ+PjJdPUl0O2JyZWFrO2Nhc2UiaTY0Ijp0ZW1wSTY0PVtJdD4+PjAsKHRlbXBEb3VibGU9SXQsK0JuKHRlbXBEb3Vi''@;'; put 'put ''bGUpPj0xP3RlbXBEb3VibGU+MD8oMHxScigrb3IodGVtcERvdWJsZS80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1KSk+Pj4wOn5+K0puKCh0ZW1wRG91YmxlLSsofn50ZW1wRG91YmxlPj4+MCkpLzQyOTQ5NjcyOTYpPj4+MDowKV0sTHRbZHQ+PjJdPXRlbXBJNjRbMF0sTHRbZHQrND4+Ml09dGVt''@;'; put 'put ''cEk2NFsxXTticmVhaztjYXNlImZsb2F0IjpmdFtkdD4+Ml09SXQ7YnJlYWs7Y2FzZSJkb3VibGUiOkh0W2R0Pj4zXT1JdDticmVhaztkZWZhdWx0OmYyKCJpbnZhbGlkIHR5cGUgZm9yIHNldFZhbHVlOiAiK1B0KX19dmFyIFY9MixUPTQ7ZnVuY3Rpb24gUyhkdCxJdCxQdCxmZSl7dmFyIGl0''@;'; put 'put ''LGE7Im51bWJlciI9PXR5cGVvZiBkdD8oaXQ9ITAsYT1kdCk6KGl0PSExLGE9ZHQubGVuZ3RoKTt2YXIgaHIsWHQ9InN0cmluZyI9PXR5cGVvZiBJdD9JdDpudWxsO2lmKGhyPVB0PT1UP2ZlOlsiZnVuY3Rpb24iPT10eXBlb2YgenA/enA6b2UsUWcsb2UsY2VdW3ZvaWQgMD09PVB0P1Y6UHRd''@;'; put 'put ''KE1hdGgubWF4KGEsWHQ/MTpJdC5sZW5ndGgpKSxpdCl7dmFyIFBpO2ZvcihmZT1ocixPKDA9PSgzJmhyKSksUGk9aHIrKC00JmEpO2ZlPFBpO2ZlKz00KUx0W2ZlPj4yXT0wO2ZvcihQaT1ocithO2ZlPFBpOylfdFtmZSsrPj4wXT0wO3JldHVybiBocn1pZigiaTgiPT09WHQpcmV0dXJuIHR0''@;'; put 'put ''LnNldChkdC5zdWJhcnJheXx8ZHQuc2xpY2U/ZHQ6bmV3IFVpbnQ4QXJyYXkoZHQpLGhyKSxocjtmb3IodmFyIF8sQW8sU2ksam49MDtqbjxhOykwIT09KF89WHR8fEl0W2puXSk/KCJpNjQiPT1fJiYoXz0iaTMyIiksUChocitqbixkdFtqbl0sXyksU2khPT1fJiYoQW89dmUoXyksU2k9Xyks''@;'; put 'put ''am4rPUFvKTpqbisrO3JldHVybiBocn1mdW5jdGlvbiBGKGR0LEl0KXtpZigwPT09SXR8fCFkdClyZXR1cm4iIjtmb3IodmFyIGZlLFB0PTAsaXQ9MDtQdHw9ZmU9dHRbZHQraXQ+PjBdLCgwIT1mZXx8SXQpJiYoaXQrKywhSXR8fGl0IT1JdCk7KTtJdHx8KEl0PWl0KTt2YXIgYT0iIjtpZihQ''@;'; put 'put ''dDwxMjgpe2Zvcih2YXIgaHI7SXQ+MDspaHI9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShTdHJpbmcsdHQuc3ViYXJyYXkoZHQsZHQrTWF0aC5taW4oSXQsMTAyNCkpKSxhPWE/YStocjpocixkdCs9MTAyNCxJdC09MTAyNDtyZXR1cm4gYX1yZXR1cm4gRGUoZHQpfXZhciB5ZT0idW5kZWZp''@;'; put 'put ''bmVkIiE9dHlwZW9mIFRleHREZWNvZGVyP25ldyBUZXh0RGVjb2RlcigidXRmOCIpOnZvaWQgMDtmdW5jdGlvbiBDZShkdCxJdCl7Zm9yKHZhciBQdD1JdDtkdFtQdF07KSsrUHQ7aWYoUHQtSXQ+MTYmJmR0LnN1YmFycmF5JiZ5ZSlyZXR1cm4geWUuZGVjb2RlKGR0LnN1YmFycmF5KEl0LFB0''@;'; put 'put ''KSk7Zm9yKHZhciBmZSxpdCxhLFh0LGhyLGpuPSIiOzspe2lmKCEoZmU9ZHRbSXQrK10pKXJldHVybiBqbjtpZigxMjgmZmUpaWYoaXQ9NjMmZHRbSXQrK10sMTkyIT0oMjI0JmZlKSlpZihhPTYzJmR0W0l0KytdLDIyND09KDI0MCZmZSk/ZmU9KDE1JmZlKTw8MTJ8aXQ8PDZ8YTooWHQ9NjMm''@;'; put 'put ''ZHRbSXQrK10sMjQwPT0oMjQ4JmZlKT9mZT0oNyZmZSk8PDE4fGl0PDwxMnxhPDw2fFh0Oihocj02MyZkdFtJdCsrXSxmZT0yNDg9PSgyNTImZmUpPygzJmZlKTw8MjR8aXQ8PDE4fGE8PDEyfFh0PDw2fGhyOigxJmZlKTw8MzB8aXQ8PDI0fGE8PDE4fFh0PDwxMnxocjw8Nnw2MyZkdFtJdCsr''@;'; put 'put ''XSkpLGZlPDY1NTM2KWpuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGZlKTtlbHNle3ZhciBfPWZlLTY1NTM2O2puKz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fF8+PjEwLDU2MzIwfDEwMjMmXyl9ZWxzZSBqbis9U3RyaW5nLmZyb21DaGFyQ29kZSgoMzEmZmUpPDw2fGl0KTtlbHNlIGpuKz1T''@;'; put 'put ''dHJpbmcuZnJvbUNoYXJDb2RlKGZlKX19ZnVuY3Rpb24gRGUoZHQpe3JldHVybiBDZSh0dCxkdCl9ZnVuY3Rpb24gUGUoZHQsSXQsUHQsZmUpe2lmKCEoZmU+MCkpcmV0dXJuIDA7Zm9yKHZhciBpdD1QdCxhPVB0K2ZlLTEsWHQ9MDtYdDxkdC5sZW5ndGg7KytYdCl7dmFyIGhyPWR0LmNoYXJD''@;'; put 'put ''b2RlQXQoWHQpO2lmKGhyPj01NTI5NiYmaHI8PTU3MzQzJiYoaHI9NjU1MzYrKCgxMDIzJmhyKTw8MTApfDEwMjMmZHQuY2hhckNvZGVBdCgrK1h0KSksaHI8PTEyNyl7aWYoUHQ+PWEpYnJlYWs7SXRbUHQrK109aHJ9ZWxzZSBpZihocjw9MjA0Nyl7aWYoUHQrMT49YSlicmVhaztJdFtQdCsr''@;'; put 'put ''XT0xOTJ8aHI+PjYsSXRbUHQrK109MTI4fDYzJmhyfWVsc2UgaWYoaHI8PTY1NTM1KXtpZihQdCsyPj1hKWJyZWFrO0l0W1B0KytdPTIyNHxocj4+MTIsSXRbUHQrK109MTI4fGhyPj42JjYzLEl0W1B0KytdPTEyOHw2MyZocn1lbHNlIGlmKGhyPD0yMDk3MTUxKXtpZihQdCszPj1hKWJyZWFr''@;'; put 'put ''O0l0W1B0KytdPTI0MHxocj4+MTgsSXRbUHQrK109MTI4fGhyPj4xMiY2MyxJdFtQdCsrXT0xMjh8aHI+PjYmNjMsSXRbUHQrK109MTI4fDYzJmhyfWVsc2UgaWYoaHI8PTY3MTA4ODYzKXtpZihQdCs0Pj1hKWJyZWFrO0l0W1B0KytdPTI0OHxocj4+MjQsSXRbUHQrK109MTI4fGhyPj4xOCY2''@;'; put 'put ''MyxJdFtQdCsrXT0xMjh8aHI+PjEyJjYzLEl0W1B0KytdPTEyOHxocj4+NiY2MyxJdFtQdCsrXT0xMjh8NjMmaHJ9ZWxzZXtpZihQdCs1Pj1hKWJyZWFrO0l0W1B0KytdPTI1Mnxocj4+MzAsSXRbUHQrK109MTI4fGhyPj4yNCY2MyxJdFtQdCsrXT0xMjh8aHI+PjE4JjYzLEl0W1B0KytdPTEy''@;'; put 'put ''OHxocj4+MTImNjMsSXRbUHQrK109MTI4fGhyPj42JjYzLEl0W1B0KytdPTEyOHw2MyZocn19cmV0dXJuIEl0W1B0XT0wLFB0LWl0fWZ1bmN0aW9uIFFlKGR0LEl0LFB0KXtyZXR1cm4gUGUoZHQsdHQsSXQsUHQpfWZ1bmN0aW9uICRlKGR0KXtmb3IodmFyIEl0PTAsUHQ9MDtQdDxkdC5sZW5n''@;'; put 'put ''dGg7KytQdCl7dmFyIGZlPWR0LmNoYXJDb2RlQXQoUHQpO2ZlPj01NTI5NiYmZmU8PTU3MzQzJiYoZmU9NjU1MzYrKCgxMDIzJmZlKTw8MTApfDEwMjMmZHQuY2hhckNvZGVBdCgrK1B0KSksZmU8PTEyNz8rK0l0Okl0Kz1mZTw9MjA0Nz8yOmZlPD02NTUzNT8zOmZlPD0yMDk3MTUxPzQ6ZmU8''@;'; put 'put ''PTY3MTA4ODYzPzU6Nn1yZXR1cm4gSXR9ZnVuY3Rpb24gd3QoZHQpe3ZhciBJdD0kZShkdCkrMSxQdD16cChJdCk7cmV0dXJuIFB0JiZQZShkdCxfdCxQdCxJdCksUHR9ZnVuY3Rpb24gdnQoZHQpe3JldHVybiBkdC5yZXBsYWNlKC9fX1pbXHdcZF9dKy9nLGZ1bmN0aW9uKFB0KXtyZXR1cm4g''@;'; put 'put ''UHQ9PVB0P1B0OlB0KyIgWyIrUHQrIl0ifSl9ZnVuY3Rpb24gQXQoKXt2YXIgZHQ9bmV3IEVycm9yO2lmKCFkdC5zdGFjayl7dHJ5e3Rocm93IG5ldyBFcnJvcigwKX1jYXRjaChJdCl7ZHQ9SXR9aWYoIWR0LnN0YWNrKXJldHVybiIobm8gc3RhY2sgdHJhY2UgYXZhaWxhYmxlKSJ9cmV0dXJu''@;'; put 'put ''IGR0LnN0YWNrLnRvU3RyaW5nKCl9ZnVuY3Rpb24gaHQoKXt2YXIgZHQ9QXQoKTtyZXR1cm4gai5leHRyYVN0YWNrVHJhY2UmJihkdCs9IlxuIitqLmV4dHJhU3RhY2tUcmFjZSgpKSx2dChkdCl9InVuZGVmaW5lZCIhPXR5cGVvZiBUZXh0RGVjb2RlciYmbmV3IFRleHREZWNvZGVyKCJ1dGYt''@;'; put 'put ''MTZsZSIpO3ZhciBvbixfdCx0dCxldCxMdCxmdCxIdCx5dCxqdCxKdCxnbixkbix5bixsbixCdD0xNjM4NDtmdW5jdGlvbiBHZSgpe2ouSEVBUDg9X3Q9bmV3IEludDhBcnJheShvbiksai5IRUFQMTY9ZXQ9bmV3IEludDE2QXJyYXkob24pLGouSEVBUDMyPUx0PW5ldyBJbnQzMkFycmF5KG9u''@;'; put 'put ''KSxqLkhFQVBVOD10dD1uZXcgVWludDhBcnJheShvbiksai5IRUFQVTE2PW5ldyBVaW50MTZBcnJheShvbiksai5IRUFQVTMyPW5ldyBVaW50MzJBcnJheShvbiksai5IRUFQRjMyPWZ0PW5ldyBGbG9hdDMyQXJyYXkob24pLGouSEVBUEY2ND1IdD1uZXcgRmxvYXQ2NEFycmF5KG9uKX1mdW5j''@;'; put 'put ''dGlvbiBObigpe2YyKCJDYW5ub3QgZW5sYXJnZSBtZW1vcnkgYXJyYXlzLiBFaXRoZXIgKDEpIGNvbXBpbGUgd2l0aCAgLXMgVE9UQUxfTUVNT1JZPVggIHdpdGggWCBoaWdoZXIgdGhhbiB0aGUgY3VycmVudCB2YWx1ZSAiK3NyKyIsICgyKSBjb21waWxlIHdpdGggIC1zIEFMTE9XX01FTU9S''@;'; put 'put ''WV9HUk9XVEg9MSAgd2hpY2ggYWxsb3dzIGluY3JlYXNpbmcgdGhlIHNpemUgYXQgcnVudGltZSBidXQgcHJldmVudHMgc29tZSBvcHRpbWl6YXRpb25zLCAoMykgc2V0IE1vZHVsZS5UT1RBTF9NRU1PUlkgdG8gYSBoaWdoZXIgdmFsdWUgYmVmb3JlIHRoZSBwcm9ncmFtIHJ1bnMsIG9yICg0''@;'; put 'put ''KSBpZiB5b3Ugd2FudCBtYWxsb2MgdG8gcmV0dXJuIE5VTEwgKDApIGluc3RlYWQgb2YgdGhpcyBhYm9ydCwgY29tcGlsZSB3aXRoICAtcyBBQk9SVElOR19NQUxMT0M9MCAiKX1mdW5jdGlvbiBibigpe05uKCl9eXQ9SnQ9Z249ZG49eW49bG49MCxqdD0hMTt2YXIgZXI9ai5UT1RBTF9TVEFD''@;'; put 'put ''S3x8NTI0Mjg4MCxzcj1qLlRPVEFMX01FTU9SWXx8MTY3NzcyMTY7ZnVuY3Rpb24gWG4oKXtyZXR1cm4gc3J9aWYoc3I8ZXImJmoucHJpbnRFcnIoIlRPVEFMX01FTU9SWSBzaG91bGQgYmUgbGFyZ2VyIHRoYW4gVE9UQUxfU1RBQ0ssIHdhcyAiK3NyKyIhIChUT1RBTF9TVEFDSz0iK2VyKyIp''@;'; put 'put ''Iiksai5idWZmZXI/b249ai5idWZmZXI6KG9uPW5ldyBBcnJheUJ1ZmZlcihzciksai5idWZmZXI9b24pLEdlKCksTHRbMF09MTY2ODUwOTAyOSxldFsxXT0yNTQ1OSwxMTUhPT10dFsyXXx8OTkhPT10dFszXSl0aHJvdyJSdW50aW1lIGVycm9yOiBleHBlY3RlZCB0aGUgc3lzdGVtIHRvIGJl''@;'; put 'put ''IGxpdHRsZS1lbmRpYW4hIjtmdW5jdGlvbiBGcihkdCl7Zm9yKDtkdC5sZW5ndGg+MDspe3ZhciBJdD1kdC5zaGlmdCgpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBJdCl7dmFyIFB0PUl0LmZ1bmM7Im51bWJlciI9PXR5cGVvZiBQdD92b2lkIDA9PT1JdC5hcmc/ai5keW5DYWxsX3YoUHQpOmou''@;'; put 'put ''ZHluQ2FsbF92aShQdCxJdC5hcmcpOlB0KHZvaWQgMD09PUl0LmFyZz9udWxsOkl0LmFyZyl9ZWxzZSBJdCgpfX12YXIgeHI9W10scXQ9W10scHI9W10sbnI9W10sQW49W10scW49ITE7ZnVuY3Rpb24gcG4oKXtpZihqLnByZVJ1bilmb3IoImZ1bmN0aW9uIj09dHlwZW9mIGoucHJlUnVuJiYo''@;'; put 'put ''ai5wcmVSdW49W2oucHJlUnVuXSk7ai5wcmVSdW4ubGVuZ3RoOyl3bihqLnByZVJ1bi5zaGlmdCgpKTtGcih4cil9ZnVuY3Rpb24gS24oKXtxbnx8KHFuPSEwLEZyKHF0KSl9ZnVuY3Rpb24gTnQoKXtGcihwcil9ZnVuY3Rpb24gc24oKXtGcihucil9ZnVuY3Rpb24gVW4oKXtpZihqLnBvc3RS''@;'; put 'put ''dW4pZm9yKCJmdW5jdGlvbiI9PXR5cGVvZiBqLnBvc3RSdW4mJihqLnBvc3RSdW49W2oucG9zdFJ1bl0pO2oucG9zdFJ1bi5sZW5ndGg7KXRuKGoucG9zdFJ1bi5zaGlmdCgpKTtGcihBbil9ZnVuY3Rpb24gd24oZHQpe3hyLnVuc2hpZnQoZHQpfWZ1bmN0aW9uIHRuKGR0KXtBbi51bnNoaWZ0''@;'; put 'put ''KGR0KX1mdW5jdGlvbiB6bihkdCxJdCl7X3Quc2V0KGR0LEl0KX1mdW5jdGlvbiBUcihkdCxJdCxQdCl7Zm9yKHZhciBmZT0wO2ZlPGR0Lmxlbmd0aDsrK2ZlKV90W0l0Kys+PjBdPWR0LmNoYXJDb2RlQXQoZmUpO1B0fHwoX3RbSXQ+PjBdPTApfSghTWF0aC5pbXVsfHwtNSE9PU1hdGguaW11''@;'; put 'put ''bCg0Mjk0OTY3Mjk1LDUpKSYmKE1hdGguaW11bD1mdW5jdGlvbihJdCxQdCl7dmFyIGl0PTY1NTM1Jkl0LFh0PTY1NTM1JlB0O3JldHVybiBpdCpYdCsoKEl0Pj4+MTYpKlh0K2l0KihQdD4+PjE2KTw8MTYpfDB9KSxNYXRoLmltdWw9TWF0aC5pbXVsLE1hdGguY2x6MzJ8fChNYXRoLmNsejMy''@;'; put 'put ''PWZ1bmN0aW9uKGR0KXtkdD4+Pj0wO2Zvcih2YXIgSXQ9MDtJdDwzMjtJdCsrKWlmKGR0JjE8PDMxLUl0KXJldHVybiBJdDtyZXR1cm4gMzJ9KSxNYXRoLmNsejMyPU1hdGguY2x6MzIsTWF0aC50cnVuY3x8KE1hdGgudHJ1bmM9ZnVuY3Rpb24oZHQpe3JldHVybiBkdDwwP01hdGguY2VpbChk''@;'; put 'put ''dCk6TWF0aC5mbG9vcihkdCl9KSxNYXRoLnRydW5jPU1hdGgudHJ1bmM7dmFyIEJuPU1hdGguYWJzLEluPShNYXRoLE1hdGgsTWF0aCxNYXRoLE1hdGgsTWF0aCxNYXRoLE1hdGgsTWF0aCxNYXRoLnNxcnQpLEpuPU1hdGguY2VpbCxvcj1NYXRoLmZsb29yLGdyPU1hdGgucG93LFJyPShNYXRo''@;'; put 'put ''LE1hdGgsTWF0aCxNYXRoLm1pbiksbjA9KE1hdGgsTWF0aCxNYXRoLDApLGQwPW51bGwsbTA9bnVsbDtmdW5jdGlvbiBEaShkdCl7bjArKyxqLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJmoubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhuMCl9ZnVuY3Rpb24gVzAoZHQpe2lmKG4wLS0sai5tb25p''@;'; put 'put ''dG9yUnVuRGVwZW5kZW5jaWVzJiZqLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMobjApLDA9PW4wJiYobnVsbCE9PWQwJiYoY2xlYXJJbnRlcnZhbChkMCksZDA9bnVsbCksbTApKXt2YXIgSXQ9bTA7bTA9bnVsbCxJdCgpfX1qLnByZWxvYWRlZEltYWdlcz17fSxqLnByZWxvYWRlZEF1ZGlvcz17''@;'; put 'put ''fTt2YXIgRW89bnVsbCxxbz0iZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCI7ZnVuY3Rpb24gY2EoZHQpe3JldHVybiBTdHJpbmcucHJvdG90eXBlLnN0YXJ0c1dpdGg/ZHQuc3RhcnRzV2l0aChxbyk6MD09PWR0LmluZGV4T2YocW8pfXZhciBsbD1bZnVuY3Rpb24oZHQs''@;'; put 'put ''SXQpe3ZhciBQdD1GKGR0KSxmZT1GKEl0KTt2bi5jcmVhdGVQYXRoKCIvIixVMC5kaXJuYW1lKFB0KSksdm4ud3JpdGVGaWxlKFUwLmpvaW4oIi8iLFB0KSxmZSl9XTtmdW5jdGlvbiBRaShkdCxJdCxQdCl7cmV0dXJuIGxsW2R0XShJdCxQdCl9eXQ9VGUrMTk3MjMyLHF0LnB1c2goKSxFbz0i''@;'; put 'put ''ZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LEFBQUFBQUFBOEQ4QUFBQUFBQUR3UHdBQUFBQUFBUEEvQUFBQUFBQUE4RDhBQUFBQUFBRHdQd0FBQUFBQUFQQS9BQUFBQUFBQThEOEFBQUFBQUFEd1B3QUFBQUFBQVBBL0FBQUFBQUFBOEQ4QUFBQUFBQUR3UHdBQUFBQUFBUEEv''@;'; put 'put ''QUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCUUFBQUFBQUFBQUFJTUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCU1FBQUFBQUFBQUZKQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGSkFBQUFBQUFBQVVrQUFJTUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkFBQUFBQUFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFCU1FBQUFBQUFBQUZKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGSkFBQUFBQUFBQVVrQUNFQUFBQUFBQUFBQUFBQUFBQUJCQW9DOEFBQWdBQUFBQkFBQUFBQUFBQUFJUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlDV1FBQUFBQUFBZ0paQUJKRERBQUFBQUFBQUFBQUFBQUFRUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBV0VBQUFBQUFBQUJZ''@;'; put 'put ''UUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCWVFBQUFBQUFBQUZoQUFBQUFBQUFBQUFBQUFBQUFBQUFRUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBVWtBQUFBQUFBQUJTUUFBZ0F3SUFBQUFBQUFBQUFBQUFFRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUFBQUFBQUFBQUFBQUFCQ1FBQUFBQUFBQUVKQUFBQUFBQUFnZzBBQUFBQUFBTUNJUUFBQUFBQUFBRkpBQUFBQUFBQUFVa0FBQUFBQUFBQUFBQUFBQUFBQUFF''@;'; put 'put ''SkFBQUFBQUFBQVFrQUFBQUFBQUNDRFFBQUFBQUFBd0loQUFBQUFBQUFBVWtBQUFBQUFBQUJTUUFDd3dRQUFBQUFBQUFBQUFBQUFFRUJBTmdBQWt3QUFBQUVBQUFBQUFBQUFRQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRkpBQUFB''@;'; put 'put ''QUFBQUFVa0FBRUFBQ0FBQUFBQUFBQUFBQUFCQkFBQUFBQUFBQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQllRQUFBQUFBQUFGaEFBTERCQUFBQUFBQUFBQUFBQUFBQUFCdzZBQUFRQUFBQUFRQUFBQUFB''@;'; put 'put ''QUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVdFQUFBQUFBQUFCWVFFQWdQZ01BQUFBQUFBQUFBQUFBRUVBa093QUFlZ0FBQUFFQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUZKQUFBQUFBQUFBVWtBQUFBQUFBQUFBQUFBQUFBQUFBQkJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJTUUFBQUFBQUFBRkpBLy8vLy8vLy83My8vLy8vLy8v''@;'; put 'put ''L3ZmLy8vLy8vLy8rLy8vLy8vLy8vLzcvOEFBQUFBQUFENFB6TXpNek16TTlNL1BBQUFBQUFBQUFDYW1abVptWm1wUHdFQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBRHdQd0VBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFEd1B3SUFBQUFBQUFBQUF3QUFBQUFBQUFBQUFBQUFBQURnUHdN''@;'; put 'put ''QUFBQUFBQUFBQkFBQUFBQUFBQUFBQUFBQUFBRHdQd1FBQUFBQUFBQUFCUUFBQUFBQUFBQXpNek16TXpQelB3VUFBQUFBQUFBQUJnQUFBQUFBQUFDYW1abVptWm5wUHdZQUFBQUFBQUFBQndBQUFBQUFBQUFBQUFBQUFBRHdQd2NBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFEZ1B3Z0FBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUVBQUFBQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQU16TXpNek16MDc4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''RUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBZ0VaQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFtcG1abVptWjJiOEFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF6TXpNek16UGpQd0FBQUFBQUFBQUFBQUFBQUFFQUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQWV4U3VSK0Y2NUw4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFGQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBR0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBRUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1BQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFB''@;'; put 'put ''QUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVUFBQUFBQUFBQUFBRUFBQUFUQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQnI0VlFBQUFRQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUUFBQUFJQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1BQUFBSUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQURBQUFBQUFBQUFBQUFBQUFBZ0daQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQWdHWkFtcG1abVptWjJiOEFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUVBQUFBRkFBQUFBQUFBQUFBQUFBQUFnR1pBZXhTdVIrRjY1TDhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQWdFWkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFRQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFBUUFBQUFFQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJnQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWtBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJFQUFBQUFBQUFBQUFF''@;'; put 'put ''QUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCSUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQk1BQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUJRQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCVUFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW9BQUFBQUFBQUFBQUVBQUFBRUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFzQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBd0FBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQTBBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOEFBQUFBQUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJZQUFBQUFBQUFBQUFFQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCZ0FBQUFB''@;'; put 'put ''QUFBQUFBRUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmNBQUFBQUFBQUFBQUVBQUFBRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJrQUFBQUFBQUFBQUFFQUFBQUtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBRHdWUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQQy9BQUFBQUFBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBE''@;'; put 'put ''OEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFB''@;'; put 'put ''QUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQMWlvTmMwN1R0VS9KWFVDbWdnYjJqOEFBQUFBQUFEZ1B3QUFBQUFBQU9BL0xOU2E1aDJuNmo5cTNuR0tqdVRv''@;'; put 'put ''UDFpb05jMDdUdFUvV0tnMXpUdE8xVDlZcURYTk8wN1ZQd0FBQUFBQUFPQS9YZHhHQTNnTDRqOEFBQUFBQUFEUVAxaW9OYzA3VHRVL0FBQUFBQUFBMEQvVHZPTVVIY25SUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQd0FBQUFBQUFPQS9BQUFBQUFBQTREOEFBQUFBQUFEZ1B3QUFB''@;'; put 'put ''QUFBQU9BL0FBQUFBQUFBNEQ4QUFBQUFBQURnUHdBQUFBQUFBT0EvMDd6akZCM0owVC9Udk9NVUhjblJQMTNjUmdONEMrSS9YZHhHQTNnTDRqOWQzRVlEZUF2aVB3MXhySXZiYU53L1pGM2NSZ040N1QvU2IxOEh6aG5uUHhCNk5xcytWK1UvRUhvMnF6NVg1VC9TYjE4SHpobm5QM2dMSkNoK2pP''@;'; put 'put ''TS90Ulg3eSs3SjRUL1NiMThIemhublA5SnZYd2ZPR2VjL1dLZzF6VHRPMVQrSWhWclR2T1BZUDlKdlh3Zk9HZWMvZUFza0tINk00ei9FUXExcDNuSHNQOUp2WHdmT0dlYy8wbTlmQjg0WjV6KzFGZnZMN3NuaFA5SnZYd2ZPR2VjL0VIbzJxejVYNVQrMUZmdkw3c25oUDNnTEpDaCtqT00vMG05''@;'; put 'put ''ZkI4NFo1ei9TYjE4SHpobm5QNFk0MXNWdE5PNC8wbTlmQjg0WjV6L1NiMThIemhublAzZ0xKQ2grak9NL1dLZzF6VHRPMVQvVHZPTVVIY25SUDFpb05jMDdUdFUvcGdwR0pYVUMzajhBQUFBQUFBRGdQMWlvTmMwN1R0VS9EWEdzaTl0bzNEOEFBQUFBQUFEZ1B3MXhySXZiYU53L0FBQUFBQUFB''@;'; put 'put ''NEQ4TmNheUwyMmpjUDFpb05jMDdUdFUvQUFBQUFBQUE0RDhBQUFBQUFBRGdQOU84NHhRZHlkRS8wN3pqRkIzSjBUOEFBQUFBQUFEZ1A5Tzg0eFFkeWRFL2F0NXhpbzdrNkQ4QUFBQUFBQURnUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQMWlvTmMwN1R0VS9pSVZhMDd6ajJEL1R2''@;'; put 'put ''T01VSGNuUlB3QUFBQUFBQU9BL0FBQUFBQUFBNEQvU2IxOEh6aG5uUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhOY2F5TDIyamNQL1JzVm4ydXR0NC9FVFk4dlZLV3lULzBiRlo5cnJiZVB6c0JUWVFOVCtFL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFB''@;'; put 'put ''RFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdB''@;'; put 'put ''QUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOVlxRFhOTzA3VlB3QUFBQUFB''@;'; put 'put ''QU9BL0FBQUFBQUFBNEQ4KzZObXMrbHpGUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhBQUFBQUFBRGdQd0FBQUFBQUFPQS9nbk5HbFBZR3h6OE5jYXlMMjJqY1B3QUFBQUFBQU9BL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUDdVVis4dnV5ZUUvdFJYN3krN0o0VDhBQUFBQUFBRFFQd0FBQUFBQUFPQS9B''@;'; put 'put ''QUFBQUFBQTREOEFBQUFBQUFEZ1B3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4SDhCWklVUHpjUDZLME4vakNaTlkvV0tnMXpUdE8xVDhOY2F5TDIyamNQdzF4ckl2YmFOdy9BQUFBQUFBQTREOEFBQUFBQUFEd1B3QUFBQUFBQVBBL0FBQUFBQUFBMEQ4TmNheUwyMmpjUHdBQUFBQUFBTkEvV0tnMXpU''@;'; put 'put ''dE8xVDlZcURYTk8wN1ZQMWlvTmMwN1R0VS9XS2cxelR0TzFUOVlxRFhOTzA3VlAxaW9OYzA3VHRVL1dLZzF6VHRPMVQ5WXFEWE5PMDdWUHdBQUFBQUFBTkEvV0tnMXpUdE8xVDlZcURYTk8wN1ZQd0FBQUFBQUFOQS9XS2cxelR0TzFUOVlxRFhOTzA3VlAxaW9OYzA3VHRVL0FBQUFBQUFBOEQ4''@;'; put 'put ''QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9BQUFBQUFBQTBEOEFBQUFB''@;'; put 'put ''QUFEUVA4UkNyV25lY2V3L0FBQUFBQUFBMEQ5LzJUMTVXS2pSUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQd0FBQUFBQUFOQS9lQXNrS0g2TTR6L1NiMThIemhublA4UkNyV25lY2V3L0UvSkJ6MmJWMHo4QUFBQUFBQURRUHdBQUFBQUFBTkEvQUFBQUFBQUEwRDhBQUFBQUFBRFFQ''@;'; put 'put ''d0FBQUFBQUFOQS9FSG8ycXo1WDVUOEFBQUFBQUFEUVB3QUFBQUFBQU5BL0FBQUFBQUFBMEQvVHZPTVVIY25SUHdBQUFBQUFBTkEvQUFBQUFBQUEwRC9Udk9NVUhjblJQd0FBQUFBQUFPQS8wbTlmQjg0WjV6OEFBQUFBQUFEZ1B3QUFBQUFBQU5BL0FBQUFBQUFBMEQ4QUFBQUFBQURRUHdBQUFB''@;'; put 'put ''QUFBTkEvVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVN''@;'; put 'put ''L1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9i''@;'; put 'put ''ZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0''@;'; put 'put ''ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJo''@;'; put 'put ''dDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRM''@;'; put 'put ''alAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhh''@;'; put 'put ''RzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhN''@;'; put 'put ''dU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vk''@;'; put 'put ''b2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdF''@;'; put 'put ''eTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlS''@;'; put 'put ''Mmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZ''@;'; put 'put ''VExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAx''@;'; put 'put ''SGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4''@;'; put 'put ''aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0v''@;'; put 'put ''VWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2Jm''@;'; put 'put ''R0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6''@;'; put 'put ''OVIyaHQ4WVRMalAxSGFHM3hoTXVNL1Vkb2JmR0V5NHo5UjJodDhZVExqUDFIYUczeGhNdU0vVWRvYmZHRXk0ejlSMmh0OFlUTGpQMUhhRzN4aE11TS9VZG9iZkdFeTR6L1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9N''@;'; put 'put ''VUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25S''@;'; put 'put ''UDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQL1JzVm4ydXR0WS90Ulg3eSs3SjRUKzFGZnZMN3NuaFA4UkNy''@;'; put 'put ''V25lY2V3L0VIbzJxejVYNVQvMTI5ZUJjMGJNUDFpb05jMDdUdFUvV0tnMXpUdE8xVCtJaFZyVHZPUFlQd0ZOaEExUHIrSS8wN3pqRkIzSjBUOVlxRFhOTzA3VlA5Tzg0eFFkeWRFLzA3empGQjNKMFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VCsxRmZ2TDdzbmhQN1VWKzh2dXll''@;'; put 'put ''RS90Ulg3eSs3SjRUKzFGZnZMN3NuaFA3VVYrOHZ1eWVFL3RSWDd5KzdKNFQrMUZmdkw3c25oUDlPODR4UWR5ZEUvMDd6akZCM0owVDhCVFlRTlQ2L2lQd0ZOaEExUHIrSS9BVTJFRFUrdjRqKzFGZnZMN3NuaFA4eGRTOGdIUGZBL0VIbzJxejVYNVQ4UWVqYXJQbGZsUDlKdlh3Zk9HZWMvMG05''@;'; put 'put ''ZkI4NFo1ejhRZWphclBsZmxQM2dMSkNoK2pPTS9hdDV4aW83azZEL1NiMThIemhublA5Tzg0eFFkeWRFL0FBQUFBQUFBNEQ4UWVqYXJQbGZsUDdVVis4dnV5ZUUvTE5TYTVoMm42ai9TYjE4SHpobm5QMnJlY1lxTzVPZy9FSG8ycXo1WDVUOXEzbkdLanVUb1A5SnZYd2ZPR2VjL0VIbzJxejVY''@;'; put 'put ''NVQ5NEN5UW9mb3pqUDlKdlh3Zk9HZWMvRUhvMnF6NVg1VCtHT05iRmJUVHVQeEI2TnFzK1YrVS9FSG8ycXo1WDVUOTRDeVFvZm96alA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDZZS1JpVjFBdDQvdFJYN3krN0o0VDlJdjMwZE9HZk1QN1VWKzh2dXllRS90Ulg3eSs3SjRUOEFB''@;'; put 'put ''QUFBQUFEZ1A3VVYrOHZ1eWVFL3RSWDd5KzdKNFQvVHZPTVVIY25SUDdVVis4dnV5ZUUvdFJYN3krN0o0VDlJdjMwZE9HZk1QMGkvZlIwNFo4dy9BQUFBQUFBQTREOUl2MzBkT0dmTVB5elVtdVlkcCtvL3RSWDd5KzdKNFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VDlZcURYTk8w''@;'; put 'put ''N1ZQd0FBQUFBQUFPQS8wN3pqRkIzSjBUKzFGZnZMN3NuaFB3QUFBQUFBQU9BLzBtOWZCODRaNXo4QUFBQUFBQURnUHdBQUFBQUFBT0EvQUFBQUFBQUE0RDhDbWdnYm5sN1ZQK0MrRHB3em90QS9BcG9JRzU1ZTFUOEJUWVFOVDYvaVA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlP''@;'; put 'put ''ODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFk''@;'; put 'put ''eWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS9X''@;'; put 'put ''S2cxelR0TzFUKzFGZnZMN3NuaFA3VVYrOHZ1eWVFL1B1alpyUHBjeFQrMUZmdkw3c25oUDdVVis4dnV5ZUUvdFJYN3krN0o0VCsxRmZ2TDdzbmhQeDA0WjBScGI4Zy9XS2cxelR0TzFUKzFGZnZMN3NuaFAxaW9OYzA3VHRVL1dLZzF6VHRPMVQ4QUFBQUFBQURnUHdBQUFBQUFBT0EvMDd6akZC''@;'; put 'put ''M0owVCsxRmZ2TDdzbmhQN1VWKzh2dXllRS90Ulg3eSs3SjRUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzV4Mm42RWd1NFQraXREZjR3bVRXUDBpL2ZSMDRaOHcvV0tnMXpUdE8xVDlZcURYTk8wN1ZQN1VWKzh2dXllRS9BQUFBQUFBQThEOEFBQUFBQUFEd1A5Tzg0eFFkeWRFL2VBc2tLSDZNNHov''@;'; put 'put ''VHZPTVVIY25SUDFpb05jMDdUdFUvV0tnMXpUdE8xVDlZcURYTk8wN1ZQMWlvTmMwN1R0VS9XS2cxelR0TzFUOVlxRFhOTzA3VlAxaW9OYzA3VHRVL1dLZzF6VHRPMVQvVHZPTVVIY25SUDFpb05jMDdUdFUvV0tnMXpUdE8xVC9Udk9NVUhjblJQMWlvTmMwN1R0VS9XS2cxelR0TzFUOVlxRFhO''@;'; put 'put ''TzA3VlB3QUFBQUFBQVBBLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOU84NHhRZHlkRS8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQ''@;'; put 'put ''OU84NHhRZHlkRS8wN3pqRkIzSjBUOEFBQUFBQUFEd1A5Tzg0eFFkeWRFLzZwV3lESEdzMXovVHZPTVVIY25SUDlPODR4UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQN1VWKzh2dXllRS9hdDV4aW83azZEOEFBQUFBQUFEd1A1amRrNGVGV3RjLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4''@;'; put 'put ''UWR5ZEUvMDd6akZCM0owVC9Udk9NVUhjblJQOFJDclduZWNldy8wN3pqRkIzSjBUL1R2T01VSGNuUlA5Tzg0eFFkeWRFLzA3empGQjNKMFQvVHZPTVVIY25SUDlPODR4UWR5ZEUvU0w5OUhUaG56RDk0Q3lRb2ZvempQNFk0MXNWdE5PNC9lQXNrS0g2TTR6L1R2T01VSGNuUlA5Tzg0eFFkeWRF''@;'; put 'put ''LzA3empGQjNKMFQvVHZPTVVIY25SUDFHZ1QrUkowZzVBdE1oMnZwODZOY0E2SXQrbDFDWFZ2L09DUGtlYUxvby9uK1Y1Y0hmVytiOSsvUkFiTEp6bVA1YnMyQWpFNjh3L3pjNmlkeXJnMEQrdzQ3OUFFQ0R0djYyaDFGNUUyOWcvTzZGODVsR1dkai9UYm5ENWVvUjdQNEhNenFKM0t1Uy8wYTNY''@;'; put 'put ''OUtDZ3lEOXEzemNac0QrRVA3N0trQmxlLzRRL0hKWUdmbFREeEwrbFNTbm85dUlqUUtuWkE2M0FrTUUvQ01TUVFaTnBpVC82Uko0a1hUUFF2d0h3bVRZdHdsNC9EWng5TDgrVWx6K0p0ZmdVQU9PSlArV3BXRVkweTdHL2p3REp6NkZucHI5Y3RjYjd6TFNJUDAya2oxUTZzNUEvNXNjRW9XSFdv''@;'; put 'put ''TC9IYVdjY0UvZUN2eXAvYStVdGNGeS81RmRpVkFpYWRUL1I4WWRWY2dTM1A1WFVDV2dpUERQQVpDTVFyK3QzRU1DbklhcndaM2pIUDlyL0FHdlZyc0UvVGloRXdDRlU5NytxU0lXeGhTRDFQNTFvVnlIbEovWS9UUzdHd0RxT3pUOVpheWkxRjlIY3Z3TS9xbUcvSjh3L3BrZFRQWmwvMmorMmdU''@;'; put 'put ''dFFwenl1UDFGTTNnQXozN20vOVhhVi85b0xwai9VcFRXOEQvYVVQeCt0SUx3czNKQS9LQ3p4Z0xMSkkwQWpXdUZNQW9xM1AwaWpaVkdXS1g4L3U3U0c5OEdla3o4WHFIdFRSMzJndnlFcnJ1QnRsSXMvTTNQY2hOWWV0YitnZUlTSjlmeVBQMmsxSk82eDlKRy91TTB6ZWw2L2FqK1NQcTJpUHpU''@;'; put 'put ''TnYzNnc1OFpQUHBpL0J5T2JVQzNIcEQ4K0dNSjdXTG1SdnkxOGZhMUxqY1kvQUFBQVFQc2grVDhBQUFBQUxVUjBQZ0FBQUlDWVJ2ZzhBQUFBWUZITWVEc0FBQUNBZ3h2d09RQUFBRUFnSlhvNEFBQUFnQ0tDNHpZQUFBQUFIZk5wTlFBQUFBQUFBUEMvdkFRQkFPZ3FBQUFEQUFBQUVDMEFBQU1B''@;'; put 'put ''QUFEb0x3QUFBd0FBQUxBd0FBQURBQUFBQURJQUFBTUFBQUI0TlFBQUF3QUFBTFE0QUFBREFBQUF4QzRBQUFNQUFBQjhPUUFBQXdBQUFJUTZBQUFEQUFBQUVEOEFBQU1BQUFBMFBRQUFBQUFBQU5Rc0FBQUFBQUFBd0M4QUFBQUFBQUFRTUFBQUFBQUFBTmd4QUFBQUFBQUFLRElBQUFBQUFBQ01P''@;'; put 'put ''QUFBQUFBQUFHQXVBQUFBQUFBQVZEa0FBQUFBQUFCY09nQUFBQUFBQU9nK0FBQUFBQUFBREQwQUFBUUFBQUE0UHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFBQUFBQUFV''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBQUFBQUFBQ0FBQUFBUUFBQUFFQUFBQURBQUFBQUFBQUFBQUFBQUFJMlFJQUdOa0NBQ2paQWdBNDJRSUFTTmtDQUZqWkFnQm8yUUlBZU5rQ0FCalpBZ0FZMlFJQVdOa0NBRmpaQWdBZkFBQUFQd0FBQUg4QUFBQUFBQUFBb29VQkFBRUFBQUNv''@;'; put 'put ''S3dBQWFBQUFBQVFBQUFEVkNBRUFBUUFBQUNBc0FBQ0lBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFjQVVCQUFFQUFBQUFBQUFBNEFBQUFBQUFBQUI0QlFFQUFRQUFBQUFBQUFEZ0FBQUFBUUFBQUg4RkFRQUJBQUFBQUFBQUFLZ0FBQUFDQUFBQWlRVUJBQUVBQUFBQUFBQUE0''@;'; put 'put ''QUFBQUFNQUFBQ1RCUUVBQVFBQUFBQUFBQURnQUFBQUJBQUFBS0VGQVFBQkFBQUFBQUFBQU9BQUFBQUZBQUFBcXdVQkFBRUFBQUFBQUFBQTRBQUFBQVlBQUFDNEJRRUFBUUFBQUFBQUFBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZQUFBQUhBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBLy8vLy93QUFBQUFBQUFBQUJBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBMmdnQkFBRUFBQURFTFFBQUdBRUFBQUVBQUFEZkNBRUFBUUFBQU1RdEFBQVlBUUFBQWdBQUFPVUlBUUFCQUFBQXhDMEFBQmdCQUFBREFBQUE3Z2dCQUFFQUFBREVMUUFBR0FFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVBnSUFRQUJBQUFB''@;'; put 'put ''QUFBQUFIQUJBQUFCQUFBQUFna0JBQUVBQUFBQUFBQUFjQUVBQUFJQUFBQU5DUUVBQVFBQUFBQUFBQUE0QVFBQUF3QUFBQnNKQVFBQkFBQUFBQUFBQURnQkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFrQUFBQUFBQUFBQUFBQUFBb0FBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ3dBQUFBd0FBQUFOQUFBQURnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZBQUFBQVFBQUFBWUFBQUFDQUFBQUFnQUFBQWNBQUFBQ0FBQUFBQUFBQUdJWUFnQm5BUUlBK0FJQ0FEZ0pBZ0F2RUFJQWJoUUNBTzRYQWdEL0Z3SUFBQUFBQUdJSkFR''@;'; put 'put ''QUJBQUFBS0M4QUFLZ0JBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQm1DUUVBQVFBQUFBQUFBQURJQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBQUFBYmdrQkFBRUFBQUE0TUFBQUFBSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFEd0FBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRQUFBS1lLQVFBQkFBQUFBQUFB''@;'; put 'put ''QUNBQ0FBQUNBQUFBc0FvQkFBRUFBQUFBQUFBQVdBSUFBQUFBQUFDNUNnRUFBUUFBQUFBQUFBQllBZ0FBQXdBQUFNSUtBUUFCQUFBQUFBQUFBRmdDQUFBQUFBQUF6QW9CQUFFQUFBQUFBQUFBSUFJQUFBTUFBQURZQ2dFQUFRQUFBQUFBQUFBZ0FnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQkVBQUFBU0FBQUFBQUFBQUFBQUFBQVRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJRQUFBQVZBQUFBRmdBQUFCY0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDQUFBQUFNQUFBQUpBQUFBQXdBQUFBTUFBQUFLQUFBQUJBQUFBQUFBQUFCaUdB''@;'; put 'put ''SUFad0VDQURnSkFnRDRBZ0lBYmhRQ0FDOFFBZ0QvRndJQTdoY0NBQUFBQUFBQUFBQUFsUXdCQVAvLy8vODhNUUFBa0FJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUpnTUFRRC8vLy8vQUFBQUFMQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ29qUUVBQVFB''@;'; put 'put ''QUFGQXlBQURvQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVlBQUFBR1FBQUFCb0FBQUFBQUFBQUJBQUFBQUFBQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQjhBQUFBZ0FBQUFJUUFBQUNJQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFBQUN3QUFBQUFB''@;'; put 'put ''QUFBTUFBQUFCUUFBQUFRQUFBQU5BQUFBQlFBQUFBTUFBQUNWRUFFQW94QUJBTGtRQVFEeitRSUF4eEFCQU5ZUUFRRGJFQUVBK1JBQkFQUDVBZ0FMRVFFQU94RUJBUFA1QWdCWkVRRUFnUkVCQUk4UkFRQytFUUVBOGhFQkFBTVNBUUFvRWdFQVN4SUJBRkVTQVFCdEVnRUFpaElCQUtVU0FRREdF''@;'; put 'put ''Z0VBNEJJQkFBSVRBUUFoRXdFQVJ4TUJBRjhUQVFCL0V3RUFuQk1CQU1BVEFRRE1Fd0VBOC9rQ0FOY1RBUUQ5RXdFQUlSUUJBRWNVQVFEeitRSUFmUlFCQUpVVUFRQ2lGQUVBMFJRQkFNd1RBUUR6K1FJQTNoUUJBT2NVQVFBSUZRRUFReFVCQUk0VkFRRGlGUUVBQkJZQkFCa1dBUUF3RmdFQVJo''@;'; put 'put ''WUJBRjRXQVFEeitRSUFkQllCQUk4V0FRQ3pGZ0VBMXhZQkFQd1dBUUR6K1FJQUhSY0JBRGNYQVFCSkZ3RUFWaGNCQUdNWEFRQjNGd0VBaGhjQkFJNFhBUUNqRndFQXNSY0JBTzhYQVFENkZ3RUF6Qk1CQVBQNUFnQUFHQUVBREJnQkFCc1lBUUJMRWdFQTgva0NBQzRZQVFCWEdBRUFkUmdCQUlV''@;'; put 'put ''WUFRQ1dHQUVBblJnQkFLd1lBUUM4R0FFQUFCa0JBQWNaQVFCTEVnRUE4L2tDQUJFWkFRQTlHUUVBU0JrQkFGRVpBUUJhR1FFQWF4a0JBSHdaQVFDUUdRRUF6Qk1CQVBQNUFnQ2NHUUVBckJrQkFMb1pBUURJR1FFQTFSa0JBT0laQVFENEdRRUFBUm9CQUJBYUFRQWRHZ0VBTGhvQkFNd1RBUUR6''@;'; put 'put ''K1FJQU9Sb0JBRmdhQVFEeitRSUFhaG9CQUhrYUFRQ3BHZ0VBc3hvQkFNQWFBUUROR2dFQTJob0JBT2NhQVFEcUdnRUE4L2tDQU80YUFRRHorUUlBRVJzQkFFSWJBUUJ4R3dFQWlCc0JBS01iQVFDK0d3RUF6Qk1CQVBQNUFnRGFHd0VBOC9rQ0FBSWNBUUFPSEFFQUlSd0JBRFFjQVFCSkhBRUFY''@;'; put 'put ''aHdCQUdJY0FRQkxFZ0VBOC9rQ0FHNGNBUUR6K1FJQWZod0JBSXdjQVFDWUhBRUFwUndCQU1VY0FRRGJIQUVBOC9rQ0FPOGNBUUE0SFFFQWZoMEJBSzRkQVFEaEhRRUE2QjBCQUE4ZUFRQTJIZ0VBOC9rQ0FEc2VBUUFBQUFBQUFBQUFBUEJIQVFBQkFBQUFBQUFBQUFnREFBQUJBQUFBcng0QkFB''@;'; put 'put ''RUFBQUFBQUFBQUNBTUFBQUlBQUFEcFJ3RUFBUUFBQUFBQUFBQkFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBakFBQUFBQUFBQUNRQUFBQWxBQUFBQmdBQUFDWUFBQUFuQUFBQUtBQUFBQ2tBQUFBcUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDc0FBQUFzQUFBQUxRQUFBQzRBQUFB''@;'; put 'put ''RUFBQUFMd0FBQUFBQUFBQUFBQUFBRGdBQUFBQUFBQUFQQUFBQUJ3QUFBQVVBQUFBUUFBQUFCZ0FBQUFBQUFBQi9BQUlBaVFBQ0FIa3hBUURPQUFJQUNRRUNBQ3NCQWdBeEFRSUFZaGdDQUZnQkFnQm5BUUlBaEFFQ0FJOEJBZ0N4QVFJQTV3RUNBQjBDQWdCWUFnSUFqZ0lDQUxBQ0FnQy9BZ0lB''@;'; put 'put ''OEFJQ0FQZ0NBZ0EvSlFFQVNDVUJBQlVEQWdCUkpRRUFYd01DQUZvbEFRQnBBd0lBWXlVQkFITURBZ0RDQXdJQS9RTUNBRzhsQVFBNEJBSUFRd1FDQUlnRUFnQ1dCQUlBNEFRQ0FPNEVBZ0Q4QkFJQUJ3VUNBRGdGQWdCNEJRSUFnQVVDQUlnRkFnRERCUUlBK1FVQ0FBVUdBZ0IrTVFFQUVRWUNB''@;'; put 'put ''QnNHQWdBbUJnSUFRd1lDQUhrR0FnQTRDUUlBV2drQ0FHWUpBZ0FsREFJQVZnd0NBSUlNQWdDNERBSUF4UXdDQU9jTUFnQUpEUUlBRWcwQ0FGd05BZ0JtRFFJQXF3MENBT0VOQWdEc0RRSUFjUTRDQUlZT0FnQjNKUUVBa0E0Q0FKb09BZ0RRRGdJQUVBOENBQjRQQWdCeUR3SUFnUThDQUpBUEFn''@;'; put 'put ''RGZEd0lBaGpFQkFCOFFBZ0FwRUFJQUx4QUNBRnNRQWdDQ0VBSUFreEFDQUo0UUFnRGpFQUlBS0JFQ0FEY1JBZ0JIRVFJQVdSRUNBR2tSQWdCNUVRSUFoaEVDQUpBUkFnREdFUUlBenhFQ0FBOFNBZ0FpRWdJQWl6RUJBQ29TQWdCZ0VnSUFoeElDQUwwU0FnRGtFZ0lBOGhJQ0FDZ1RBZ0J5RXdJ''@;'; put 'put ''QXZCTUNBTWNUQWdEOUV3SUFBaFFDQUI4VUFnQThGQUlBUnhRQ0FHNFVBZ0NHRkFJQXZCUUNBUElVQWdEK0ZBSUFKUlVDQURBVkFnQmhGUUlBa2hVQ0FIZzhBUUM1RlFJQTVSVUNBQnNXQWdCUkZnSUFXeFlDQUhnV0FnQzRGZ0lBN2hZQ0FKRXhBUUFHRndJQU1oY0NBRmtYQWdDUEZ3SUF6QmND''@;'; put 'put ''QU80WEFnRDBGd0lBL3hjQ0FDWVlBZ0FBQUFBQXE0MEJBQUVBQUFESU5RQUFlQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWRJQVFBQkFBQUFBQUFBQUpnREFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFBQUFBQUFBQUFNUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTWdBQUFBQUFBQUF6QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVJBQUFBQUFBQUFCSUFBQUFJQUFBQUJnQUFBQk1BQUFBSEFBQUFBQUFBQUFBQUFBQ3RKZ0VBQVFBQUFOdzRBQURRQXdBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBc0NZQkFBRUFBQUFBQUFBQThBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTkFBQUFBQUFBQUExQUFBQU5nQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlFB''@;'; put 'put ''QUFEY0FBQUFBQUFBQUFBQUFBQlFBQUFBQUFBQUFGUUFBQUFrQUFBQUhBQUFBRmdBQUFBZ0FBQUFBQUFBQWVURUJBR0lZQWdCbkFRSUFmakVCQUhrR0FnQTRDUUlBaGpFQkFGc1FBZ0FQRWdJQWl6RUJBRWNVQWdCdUZBSUFlRHdCQUpFeEFRRHVGd0lBL3hjQ0FBQUFBQUNXTVFFQUFRQUFBS1E1''@;'; put 'put ''QUFBb0JBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW1qRUJBQUVBQUFBQUFBQUFTQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBQUFBQUFBNUFBQUFPZ0FBQUFvQUFBQTdBQUFBUEFBQUFEMEFBQUErQUFBQVB3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFB''@;'; put 'put ''QUFBUVFBQUFFSUFBQUJEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJjQUFBQUFBQUFBR0FBQUFBc0FBQUFJQUFBQUdRQUFBQWtBQUFBQUFBQUF6Z0FDQUE0N0FRQmlHQUlBWndFQ0FJUUJBZ0FaT3dFQUh6c0JBQ283QVFBeE93RUFqd0VDQU9jQkFnQTVPd0VBUHpzQkFFbzdBUUNPQWdJQXNB''@;'; put 'put ''SUNBUGdDQWdCUk93RUFYd01DQUhNREFnRDlBd0lBV3pzQkFJZ0VBZ0NXQkFJQTRBUUNBR1k3QVFEdUJBSUFianNCQUhjN0FRQ0ZPd0VBanpzQkFNTUZBZ0NZT3dFQUJRWUNBQ1lHQWdCREJnSUFuanNCQUlvR0FnQzFCZ0lBM2dZQ0FBRUhBZ0FxQndJQVRRY0NBSFlIQWdDWkJ3SUF3Z2NDQU9V''@;'; put 'put ''SEFnQU9DQUlBTVFnQ0FGb0lBZ0I5Q0FJQXBnZ0NBTWtJQWdEeUNBSUFGUWtDQURnSkFnQ2xPd0VBV2drQ0FMRTdBUUNDREFJQTV3d0NBS3NOQWdDK093RUFrQThDQU1zN0FRQWZFQUlBTHhBQ0FOVTdBUUJiRUFJQWdoQUNBSk1RQWdEa093RUE5anNCQUo0UUFnQW9FUUlBTnhFQ0FFY1JBZ0Ja''@;'; put 'put ''RVFJQWFSRUNBQVk4QVFBUlBBRUFIRHdCQUhrUkFnQVBFZ0lBRkJJQ0FDRThBUUFxUEFFQU16d0JBRU04QVFCS1BBRUFZQklDQUljU0FnQzlFZ0lBOGhJQ0FBSVVBZ0FmRkFJQVVqd0JBRzRVQWdCWlBBRUEvaFFDQUdJOEFRQXdGUUlBYWp3QkFKSVZBZ0I0UEFFQXVSVUNBT1VWQWdCL1BBRUFl''@;'; put 'put ''QllDQUxnV0FnQ0pQQUVBN2hZQ0FBWVhBZ0JaRndJQWt6d0JBS0U4QVFDUEZ3SUFsaGNDQU13WEFnRHVGd0lBL3hjQ0FDWVlBZ0FBQUFBQXN6d0JBQUVBQUFDc09nQUFnQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBTGM4QVFBQkFBQUFBQUFBQUtBRUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSQUFBQUVVQUFBQUFBQUFBQUFBQUFFWUFBQUJIQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWFBQUFBQUFBQUFCc0FBQUFNQUFBQUNRQUFBQndBQUFB''@;'; put 'put ''S0FBQUFBQUFBQUVGQ0FBQ3dvUUVBUVVrQUFJcWhBUUJCVWdBQVhhRUJBRUZZQUFERm9RRUFRaUFBQUFHa0FRQkNTUUFBRXFRQkFFTkNBQUJLb2dFQVEwOEFBRGlpQVFCRFdBQUFWNklCQUVnZ0FBQjdvZ0VBU0VJQUFJV2lBUUJJU1FBQUVhTUJBRWhZQUFDVW9nRUFTR0lBQU1XaUFRQklhUUFB''@;'; put 'put ''K0tJQkFFaHlBQUNxb2dFQVNIZ0FBTnVpQVFCSklBQUFJNlFCQUV0Q0FBRGNvUUVBUzBrQUFDU2lBUUJMVWdBQUVLSUJBRXRZQUFEOW9RRUFUa0lBQUNPakFRQk9TUUFBYXFNQkFFNVNBQUNDb3dFQVRsZ0FBRTZqQVFCUVFRQUE0Nk1CQUZCQ0FBQ2Zvd0VBVUVrQUFOT2pBUUJRV0FBQXY2TUJB''@;'; put 'put ''RklnQUFEYXBRRUFVeUFBQVBLakFRQmFSQUFBWUtRQkFBQUFBQUFBQUFBQUFRQUFBQUFBQUFCZFJ3RUEvLy8vLzF3OUFBRFlCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZVWNCQVAvLy8vOEFBQUFBK0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEd0FBQUdsSEFR''@;'; put 'put ''QUJBQUFBSUVNQUFBQUFBQUFRQUFBQWNVY0JBQUVBQUFBZ1F3QUFBQUFBQUJFQUFBQjVSd0VBQVFBQUFDQkRBQUFBQUFBQUVRQUFBSUpIQVFBQkFBQUFJRU1BQUFBQUFBQVJBQUFBaWtjQkFBRUFBQUFnUXdBQUFBQUFBQk1BQUFDU1J3RUFBUUFBQUNSREFBQUFBQUFBRkFBQUFKcEhBUUFCQUFB''@;'; put 'put ''QUpFTUFBQUFBQUFBVkFBQUFva2NCQUFFQUFBQWtRd0FBQUFBQUFCVUFBQUNyUndFQUFRQUFBQ1JEQUFBQUFBQUFGUUFBQUxOSEFRQUJBQUFBSkVNQUFBQUFBQUFXQUFBQXUwY0JBQUVBQUFBb1F3QUFBQUFBQUJjQUFBREVSd0VBQVFBQUFDaERBQUFBQUFBQUdBQUFBTTFIQVFBQkFBQUFLRU1B''@;'; put 'put ''QUFBQUFBQVlBQUFBMTBjQkFBRUFBQUFvUXdBQUFBQUFBQmdBQUFEZ1J3RUFBUUFBQUNoREFBQUFBQUFBR1FBQUFPbEhBUUFCQUFBQUxFTUFBQUFBQUFBWkFBQUE4RWNCQUFFQUFBQXNRd0FBQUFBQUFCb0FBQUQyUndFQUFRQUFBREJEQUFBQUFBQUFDZ0FBQVA5SEFRQUJBQUFBTkVNQUFBQUFB''@;'; put 'put ''QUFMQUFBQUIwZ0JBQUVBQUFBMFF3QUFBQUFBQUF3QUFBQVBTQUVBQVFBQUFEUkRBQUFBQUFBQURBQUFBQmhJQVFBQkFBQUFORU1BQUFBQUFBQU1BQUFBSUVnQkFBRUFBQUEwUXdBQUFBQUFBQTRBQUFBb1NBRUFBUUFBQURSREFBQUFBQUFBRGdBQUFDOUlBUUFCQUFBQU5FTUFBQUFBQUFBTkFB''@;'; put 'put ''QUFOMGdCQUFFQUFBQTBRd0FBQUFBQUFBVUFBQUEvU0FFQUFRQUFBRFJEQUFBQUFBQUFCZ0FBQUVkSUFRQUJBQUFBTkVNQUFBQUFBQUFIQUFBQVQwZ0JBQUVBQUFBMFF3QUFBQUFBQUFjQUFBQllTQUVBQVFBQUFEUkRBQUFBQUFBQUJ3QUFBR0JJQVFBQkFBQUFORU1BQUFBQUFBQUpBQUFBYUVn''@;'; put 'put ''QkFBRUFBQUEwUXdBQUFBQUFBQWtBQUFCdlNBRUFBUUFBQURSREFBQUFBQUFBQ0FBQUFIZElBUUFCQUFBQU5FTUFBQUFBQUFBQUFBQUFmMGdCQUFFQUFBQTRRd0FBQUFBQUFBRUFBQUNJU0FFQUFRQUFBRGhEQUFBQUFBQUFBZ0FBQUpGSUFRQUJBQUFBT0VNQUFBQUFBQUFDQUFBQW0wZ0JBQUVB''@;'; put 'put ''QUFBNFF3QUFBQUFBQUFJQUFBQ2tTQUVBQVFBQUFEaERBQUFBQUFBQUJBQUFBSzFJQVFBQkFBQUFPRU1BQUFBQUFBQUVBQUFBdFVnQkFBRUFBQUE0UXdBQUFBQUFBQU1BQUFDK1NBRUFBUUFBQURoREFBQUFBQUFBRWdBQUFNZElBUUFCQUFBQUlFTUFBQUFBQUFBYkFBQUF6MGdCQUFFQUFBQThR''@;'; put 'put ''d0FBQUFBQUFCd0FBQURYU0FFQUFRQUFBRHhEQUFBQUFBQUFIUUFBQU45SUFRQUJBQUFBUEVNQUFBQUFBQUFkQUFBQTZFZ0JBQUVBQUFBOFF3QUFBQUFBQUIwQUFBRHdTQUVBQVFBQUFEeERBQUFBQUFBQUhnQUFBUGhJQVFBQkFBQUFRRU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBR05NQVFCTVF3QUFBUUFBQUdoREFBQUFBQUFBQUFBQUFFZ0FBQUJKQUFBQUFRQUFBQUFBQUFDaWhRRUFBQUFBQUZ4REFBQmtRd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkFBQUFBZ0FBQUFB''@;'; put 'put ''QUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFnQUFBQUlBQUFBQkFBQUFBZ0FBQUFRQUFBQVlBUUFBTUFFQUFMQUFBQUNJVkFFQWpWUUJBSkZVQVFDWVZBRUFuRlFCQUFBQUFBQUJBQUFBQWdBQUFBTUFBQUFFQUFBQUJRQUFBQUFBQUFBZEFBQUFBQUFBQUFBQUFBQWVBQUFBQUFBQUFBQUFBQUFm''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFDUldRRUFLRVFBQUFFQUFBQ0FSQUFBQUFBQUFBQUFBQUJLQUFBQVN3QUFBRXdBQUFCTkFBQUFUZ0FBQUU4QUFBQlFBQUFBVVFBQUFGSUFBQUJUQUFBQVZBQUFBRXNBQUFCVkFBQUFTd0FBQUZZQUFBQlhBQUFBV0FBQUFGa0FBQUFBQUFBQW5sa0JBQUFBQUFBNFJBQUFL''@;'; put 'put ''TnNDQUFFQUFBQ2tXUUVBQUFBQUFFQkVBQUFvMndJQUFnQUFBS2haQVFBQUFBQUFTRVFBQUNqYkFnQURBQUFBclZrQkFBQUFBQUJRUkFBQUtOc0NBQVFBQUFDeldRRUFBQUFBQUZoRUFBQW8yd0lBQlFBQUFMbFpBUUFBQUFBQWNFUUFBQ2piQWdBR0FBQUF3MWtCQUFBQUFBQjRSQUFBS05zQ0FB''@;'; put 'put ''Y0FBQURKV1FFQUFBQUFBR0JFQUFBbzJ3SUFCd0FBQU0xWkFRQUFBQUFBWUVRQUFDamJBZ0FIQUFBQTBsa0JBQUFBQUFCb1JBQUFLTnNDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBREFBQUFBQUFBQUFBUUFBQUNBQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUF3QUFBQVFBQUFB''@;'; put 'put ''QUFBQUFQR2NCQUZSbkFRQnpad0VBa0djQkFLOW5BUUMyWndFQXYyY0JBRHhuQVFCQlp3RUFTR2NCQUUxbkFRRGVaZ0VBOEdZQkFQNW1BUUFNWndFQUdtY0JBQ0ZuQVFBd1p3RUFQR2NCQUFBQUFBRHorUUlBQUFBQUFCMFNBZ0FCQUFBQStHa0JBQWNBQUFDOGFRRUFBd0FBQU1ZbEFnQUZBQUFB''@;'; put 'put ''QUdvQkFBOEFBQUNRalFFQUNBQUFBSkNOQVFBUUFBQUFDR29CQUFRQUFBQUlhZ0VBRVFBQUFBMXFBUUFGQUFBQURXb0JBQUlBQUFBVGFnRUFCZ0FBQUJwcUFRQUVBQUFBSm1vQkFBY0FBQUF1YWdFQUJ3QUFBRDVxQVFBRkFBQUFSR29CQUFnQUFBQmJhZ0VBQ0FBQUFFUnFBUUFKQUFBQVpHb0JB''@;'; put 'put ''QWNBQUFCc2FnRUFDZ0FBQUlacUFRQUhBQUFBam1vQkFBc0FBQUNvYWdFQUJnQUFBSzlxQVFBTUFBQUF6V29CQUFrQUFBQ3ZhZ0VBRFFBQUFOZHFBUUFJQUFBQTRHb0JBQTRBQUFBQmF3RUFDQUFBQUFwckFRQVNBQUFBSzJzQkFBVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFB''@;'; put 'put ''QUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBREFBQUFBSUFBQUFBQUFBQUF3QUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUVBQUFBQUFBQUFBTUFBQUFoQUFBQUJBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQUFBQUVBQUFBQUFBQUFBUUFBQUFpQUFB''@;'; put 'put ''QUJRQUFBQUFBQUFBQUFBQUFBQUFBQUFVQUFBQkFBQUFBaUVjQUFKaEhBQUFHQUFBQUJBQUFBS1JIQUFBR0FBQUFDQUFBQUFZQUFBQUVBQUFBckVjQUFBQUVBQUFJQUFBQS8vLy8vd0FBQUFBQUFBQUFJd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUExQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUdBQUFBQUFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9BQUFBQUFBQUFBQUdBQUFBQUFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFBWUFBQUFBQUFBQUFBQUFBQUlBQUFBQUFBQUFBY0FBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9BQUFBQUFBQUFBQUlBQUFBQUFBQUFBY0FB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBY0FBQUFBQUFBQUFBQUFBQUpBQUFBQUFBQUFBY0FBQUFBQUFBQUNRQUFBQXNBQUFBSUFBQUFDZ0FBQURCSkFBQzBTQUFBR0VrQUFBRUFBQUFCQUFBQUNnQUFBQllBQUFBTEFBQUFXZ0FBQUNRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdBQUFBQUFB''@;'; put 'put ''QUFCd0FBQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQTBBQUFBQUFBQUFCd0FBQUFBQUFBQUhBQUFBQWdBQUFBVUFBQUFJQUFBQUFBQUFBQUFBQUFBR0FBQUFBd0FBQUE0QUFBQUxBQUFBQUFBQUFBQUFBQUFBQUFBQUNBQUFBQUFBQUFBQUFBQUFEd0FBQUFBQUFBQUhBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBbEFBQUFFQUFBQUFBQUFBQUhBQUFBQUFBQUFBZ0FBQUFJQUFBQUFBQUFBQUFBQUFBbUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCQUFBQUQvLy8vL0FBQUFBQUFBQUFBbkFBQUFBQUFBQUFBQUFBQUhBQUFBQUFBQUFBRUFBQUFBQUFBQUFRQUFBQUVB''@;'; put 'put ''QUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUF3QUFBQUVBQUFBQkFBQUFBZ0FBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUJBQUFBQVFBQUFBRUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFJQUFBQUJB''@;'; put 'put ''QUFBQkFBQUFBVUFBQUFCQUFBQUFRQUFBQUVBQUFBQkFBQUFBUUFBQUFFQUFBQUdBQUFBQVFBQUFBRUFBQUFIQUFBQUNBQUFBQWtBQUFBS0FBQUFDZ0FBQUFvQUFBQUtBQUFBQ2dBQUFBb0FBQUFLQUFBQUNnQUFBQW9BQUFBS0FBQUFBUUFBQUFFQUFBQUxBQUFBQVFBQUFBd0FBQUFCQUFBQURR''@;'; put 'put ''QUFBQTRBQUFBUEFBQUFFQUFBQUJFQUFBQVNBQUFBRXdBQUFCUUFBQUFWQUFBQUZnQUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVhBQUFBR0FBQUFCa0FBQUFUQUFBQUdnQUFBQnNBQUFBY0FBQUFIUUFBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUFRQUFBQjRBQUFBQkFBQUFBUUFBQUJN''@;'; put 'put ''QUFBQUJBQUFBSHdBQUFDQUFBQUFoQUFBQUlnQUFBQ01BQUFBVEFBQUFKQUFBQUNVQUFBQW1BQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQ2NBQUFBb0FBQUFLUUFBQUJNQUFBQXFBQUFBS3dBQUFDd0FBQUF0QUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQUJBQUFBQVFBQUFBRUFBQUFC''@;'; put 'put ''QUFBQUFRQUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFF''@;'; put 'put ''d0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBTGdBQUFC''@;'; put 'put ''TUFBQUFUQUFBQUV3QUFBQzhBQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFB''@;'; put 'put ''VEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQURBQUFBQVRBQUFBRXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFFd0FBQUJNQUFBQVRBQUFB''@;'; put 'put ''RXdBQUFCTUFBQUFUQUFBQUV3QUFBQk1BQUFBVEFBQUFBQUFBQUFFQUFBQUJBQUFBQWdBQUFBTUFBQUFCQUFBQUJBQUFBQUVBQUFBRkFBQUFBUUFBQUFZQUFBQUhBQUFBQndBQUFBRUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUJnQUFB''@;'; put 'put ''QVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQXdBQUFBWUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFBWUFBQUFHQUFBQUJnQUFBQVlBQUFBR0FBQUFCZ0FBQUFZQUFBQUdBQUFBQmdBQUFJQUFBQUI1c3dFQVdyTUJBQ0I4QVFDR3N3RUFmck1CQUl5ekFR''@;'; put 'put ''QUFBQUFBSm9BQkFDK0FBUUEyZ0FFQVJJQUJBSHF5QVFDaXN3RUFTNEFCQUZLQUFRQUJBQUFBQ0FBQUFQLy8vLzhBQUFBQUFBQUFBQ2dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOElFQkFBZ0FBQUFEQUFBQStZRUJBUDJCQVFBTEFBQUFCZ0FBQUtpTkFRQUpnZ0VBQWdBQUFBRUFBQUFNZ2dF''@;'; put 'put ''QUVJSUJBQVFBQUFBQ0FBQUFGWUlCQUJtQ0FRQUVBQUFBQkFBQUFCNkNBUUFqZ2dFQUJRQUFBQVVBQUFBcGdnRUFMWUlCQUFRQUFBQUhBQUFBTW9JQkFEYUNBUUFGQUFBQUNRQUFBRHlDQVFCQWdnRUFCQUFBQUFvQUFBQkZnZ0VBU29JQkFBUUFBQUFNQUFBQVQ0SUJBT0tHQVFBQUFBQUFBUUFB''@;'; put 'put ''QU9xR0FRQUJBQUFBQUFBQUFIV3lBUUFCQUFBQUFRQUFBQjBTQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNdUZBUUF4QUFBQUFBQUFBQUFBQUFDanJRRUFFQUFBQUVVZUFnQ0FBQUFBeElVQkFFQUFBQUFPb0FFQUVBQUFBTWFGQVFCQUFBQUFBQUFBQUFBQUFBQ1NoUUVBQVFBQUFKbUZB''@;'; put 'put ''UUFDQUFBQW5vVUJBQU1BQUFETXBnRUFCQUFBQURDZEFRQUZBQUFBb29VQkFBWUFBQUFkRWdJQUNBQUFBS2FGQVFBaEFBQUFxb1VCQUNJQUFBQ3VoUUVBSWdBQUFMS0ZBUUFCQUFBQXQ0VUJBQWNBQUFDOWhRRUFKd0FBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQS8vLy8vd0FBQUFBcEFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQMktBUUFFaXdFQUFBQUFBS1dOQVFDb2pRRUFxNDBCQUFBQUFBQUFBQUFBQVFBQUFBSUFBQUQvLy8vL2FJMEJBRzZOQVFBZEVnSUFBQUFBQUdRQUFBQmxBQUFBWmdBQUFHUUFBQUFJQUFBQUNBQUFBQUFBQUFBQUFBQUFLZ0FBQUJFQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFJQUFBQUNBQUFBQUFBQUFBSkFBQUFLd0FBQUJFQUFBQUFBQUFBQUFBQUFBQUFBQUFJQUFBQS8vLy8vd0FBQUFBQUFBQUFMQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQURNcGdFQVlGVUFBSUFHQUFBQUFBQUErWndCQUdCVkFBQ3dCZ0FBQUFBQUFOS2xBUUJnVlFBQTRBWUFBQUFB''@;'; put 'put ''QUFBQm5RRUFZRlVBQU9BR0FBQUFBQUFBQnAwQkFHQlZBQUFRQndBQUFBQUFBQTJkQVFCNFZRQUFFQWNBQUFBQUFBQVRuUUVBWUZVQUFFQUhBQUFBQUFBQUY1MEJBR0JWQUFCd0J3QUFBQUFBQUIwU0FnQmdWUUFBb0FjQUFBQUFBQUFnblFFQVlGVUFBS0FIQUFBQUFBQUFLcDBCQUdCVkFBQlFC''@;'; put 'put ''Z0FBQUFBQUFEQ2RBUUJnVlFBQTBBY0FBQUFBQUFBNG5RRUFZRlVBQUFBSUFBQUFBQUFBUXAwQkFHQlZBQUF3Q0FBQUFBQUFBRkNkQVFCZ1ZRQUFZQWdBQUFBQUFBQlduUUVBWUZVQUFKQUlBQUFBQUFBQVg1MEJBR0JWQUFEQUNBQUFBQUFBQUdlZEFRQmdWUUFBOEFnQUFBQUFBQUJ3blFFQVlG''@;'; put 'put ''VUFBQ0FKQUFBQUFBQUFlSjBCQUdCVkFBQlFDUUFBQUFBQUFIMmRBUUJnVlFBQWdBa0FBQUFBQUFDQm5RRUFZRlVBQUxBSkFBQUFBQUFBaUowQkFHQlZBQURnQ1FBQUFBQUFBSTZkQVFCZ1ZRQUFFQW9BQUFBQUFBQ1luUUVBa0ZVQUFFQUtBQUFBQUFBQW9aMEJBR0JWQUFDQUJnQUFBQUFBQUth''@;'; put 'put ''ZEFRQmdWUUFBZ0FZQUFBQUFBQUN3blFFQVlGVUFBSEFLQUFBQUFBQUF0NTBCQUdCVkFBQ2dDZ0FBQUFBQUFNU2RBUUJnVlFBQTBBb0FBQUFBQUFEU25RRUFZRlVBQUFBTEFBQUFBQUFBNEowQkFHQlZBQUF3Q3dBQUFBQUFBT3lkQVFCZ1ZRQUFZQXNBQUFBQUFBRDVuUUVBWUZVQUFKQUxBQUFB''@;'; put 'put ''QUFBQUFwNEJBR0JWQUFEQUN3QUFBQUFBQUF5ZUFRQmdWUUFBOEFzQUFBQUFBQUFWbmdFQVlGVUFBQ0FNQUFBQUFBQUFIWjRCQUdCVkFBQlFEQUFBQUFBQUFDV2VBUUJnVlFBQWdBd0FBQUFBQUFBdW5nRUFZRlVBQUxBTUFBQUFBQUFBTXA0QkFHQlZBQURnREFBQUFBQUFBRDJlQVFCZ1ZRQUFF''@;'; put 'put ''QTBBQUFBQUFBQkJuZ0VBWUZVQUFFQU5BQUFBQUFBQVM1NEJBR0JWQUFCd0RRQUFBQUFBQUZTZUFRQmdWUUFBb0EwQUFBQUFBQUJjbmdFQVlGVUFBTkFOQUFBQUFBQUFhWjRCQUdCVkFBQUFEZ0FBQUFBQUFIV2VBUUJnVlFBQU1BNEFBQUFBQUFDQW5nRUFZRlVBQUdBT0FBQUFBQUFBa0o0QkFH''@;'; put 'put ''QlZBQUNRRGdBQUFBQUFBSjZlQVFCZ1ZRQUF3QTRBQUFBQUFBQ3RuZ0VBWUZVQUFQQU9BQUFBQUFBQXQ1NEJBR0JWQUFBZ0R3QUFBQUFBQU1DZUFRQmdWUUFBVUE4QUFBQUFBQURLbmdFQVlGVUFBSUFQQUFBQUFBQUExSjRCQUdCVkFBQ3dEd0FBQUFBQUFOdWVBUUJnVlFBQTRBOEFBQUFBQUFE''@;'; put 'put ''aW5nRUFZRlVBQUJBUUFBQUFBQUFBN0o0QkFLaFZBQUFBQUFBQUFBQUFBUE9lQVFDb1ZRQUFBQUFBQUFBQUFBRFZuQUVBd0ZVQUFBQUFBQUFBQUFBQSs1NEJBTmhWQUFCQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJiQUFBQVhBQUFBQmNBQUFBRUFBQUFBZ0FBQUF3QUFBQmRBQUFB''@;'; put 'put ''WEFBQUFCY0FBQUFGQUFBQUFBQUFBQTBBQUFCYkFBQUFYQUFBQUJjQUFBQUVBQUFBQWdBQUFBd0FBQUJlQUFBQVh3QUFBQmdBQUFBR0FBQUFBd0FBQUE0QUFBQmdBQUFBWVFBQUFCY0FBQUFIQUFBQUFBQUFBQThBQUFCYkFBQUFYQUFBQUJjQUFBQUlBQUFBQWdBQUFBd0FBQUFRQUFBQUVRQUFB''@;'; put 'put ''QklBQUFBVEFBQUEvWjhCQUFTZ0FRQUFBQUFBREtBQkFBNmdBUUIvSGdJQUVLQUJBQXdBQUFBRUFBQUFCZ0FBQUFJQUFBQURBQUFBQVFBQUFBa0FBQUFJQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QUFBQVFBQUFBRVFBQUFCSUFBQUFWQUFBQUZnQUFBQmNBQUFBWUFBQUFHUUFBQUJvQUFB''@;'; put 'put ''QWJBQUFBSEFBQUFCOEFBQUFnQUFBQUlRQUFBQ0lBQUFBakFBQUFKQUFBQUNVQUFBQW1BQUFBS1FBQUFDb0FBQUFyQUFBQUxBQUFBQzBBQUFBdUFBQUFMd0FBQURBQUFBQXpBQUFBTkFBQUFEVUFBQUEyQUFBQU53QUFBRGdBQUFBNUFBQUFPZ0FBQUQwQUFBQStBQUFBUHdBQUFFQUFBQUJCQUFB''@;'; put 'put ''QVFnQUFBRU1BQUFCRUFBQUFSd0FBQUVnQUFBQkpBQUFBU2dBQUFFc0FBQUJNQUFBQVRRQUFBRTRBQUFCUkFBQUFVZ0FBQUZNQUFBQlVBQUFBVlFBQUFGWUFBQUJYQUFBQVdBQUFBRjJoQVFCdG9RRUFlcUVCQUFBQUFBQUFBQUFBQkFBQUFIK2hBUUFBQUFBQUFBQUFBSXFoQVFCdG9RRUFlcUVC''@;'; put 'put ''QUFBQUFBQ2hvUUVBQlFBQUFIK2hBUUFBQUFBQXFhRUJBTENoQVFCdG9RRUF3S0VCQUFBQUFBQUFBQUFBQmdBQUFIK2hBUURyc1FFQUFBQUFBTVdoQVFCdG9RRUF3S0VCQUFBQUFBQ2hvUUVBQndBQUFIK2hBUURyc1FFQXFhRUJBTnloQVFEcG9RRUF3S0VCQUFBQUFBQUFBQUFBQ2dBQUFQZWhB''@;'; put 'put ''UURyc1FFQUFBQUFBUDJoQVFEcG9RRUF3S0VCQUFBQUFBQ3BvUUVBQ3dBQUFQZWhBUURyc1FFQXFhRUJBQkNpQVFEcG9RRUFIcUlCQUFBQUFBQUFBQUFBQ0FBQUFQZWhBUUFBQUFBQUFBQUFBQ1NpQVFEcG9RRUFIcUlCQUFBQUFBQ3BvUUVBQ1FBQUFQZWhBUUFBQUFBQXFhRUJBRGlpQVFBNG9n''@;'; put 'put ''RUFBQUFBQUFBQUFBQUFBQUFBREFBQUFFQ2lBUUFBQUFBQUFBQUFBRXFpQVFBNG9nRUE2N0VCQUFBQUFBQUFBQUFBRGdBQUFFQ2lBUURyc1FFQUFBQUFBRmVpQVFBNG9nRUE2N0VCQUFBQUFBQ2hvUUVBRHdBQUFFQ2lBUURyc1FFQXFhRUJBR3VpQVFBNG9nRUFBQUFBQUFBQUFBQ2hvUUVBRFFB''@;'; put 'put ''QUFFQ2lBUUFBQUFBQXFhRUJBSHVpQVFCN29nRUFBQUFBQUFBQUFBQUFBQUFBRUFBQUFIK2hBUUFBQUFBQUFBQUFBSVdpQVFCN29nRUE2N0VCQUFBQUFBQUFBQUFBRWdBQUFIK2hBUURyc1FFQUFBQUFBSlNpQVFCN29nRUE2N0VCQUFBQUFBQ2hvUUVBRXdBQUFIK2hBUURyc1FFQXFhRUJBS3Fp''@;'; put 'put ''QVFCN29nRUFBQUFBQUx1aUFRQUFBQUFBRkFBQUFIK2hBUUFBQUFBQUFBQUFBTVdpQVFCN29nRUE2N0VCQUx1aUFRQUFBQUFBRmdBQUFIK2hBUURyc1FFQUFBQUFBTnVpQVFCN29nRUE2N0VCQUx1aUFRQ2hvUUVBRndBQUFIK2hBUURyc1FFQXFhRUJBUGlpQVFCN29nRUFBQUFBQUx1aUFRQ2hv''@;'; put 'put ''UUVBRlFBQUFIK2hBUUFBQUFBQXFhRUJBQkdqQVFCN29nRUFBQUFBQUFBQUFBQ2hvUUVBRVFBQUFIK2hBUUFBQUFBQXFhRUJBQ09qQVFBNW93RUE2N0VCQUFBQUFBQUFBQUFBR2dBQUFQZWhBUURyc1FFQUFBQUFBRTZqQVFBNW93RUE2N0VCQUFBQUFBQ3BvUUVBR3dBQUFQZWhBUURyc1FFQXFh''@;'; put 'put ''RUJBR3FqQVFBNW93RUFBQUFBQUFBQUFBQ3BvUUVBR1FBQUFQZWhBUUFBQUFBQXFhRUJBSUtqQVFBNW93RUFtYU1CQUFBQUFBQUFBQUFBR0FBQUFQZWhBUUFBQUFBQUFBQUFBSitqQVFDdG93RUE2N0VCQUFBQUFBQUFBQUFBSGdBQUFQZWhBUURyc1FFQUFBQUFBTCtqQVFDdG93RUE2N0VCQUFB''@;'; put 'put ''QUFBQ3BvUUVBSHdBQUFQZWhBUURyc1FFQXFhRUJBTk9qQVFDdG93RUFBQUFBQUFBQUFBQ3BvUUVBSFFBQUFQZWhBUUFBQUFBQXFhRUJBT09qQVFDdG93RUFtYU1CQUFBQUFBQUFBQUFBSEFBQUFQZWhBUUFBQUFBQUFBQUFBUEtqQVFEeW93RUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFQbWpBUUFB''@;'; put 'put ''QUFBQUFBQUFBQUdrQVFBTXBBRUE2N0VCQUFBQUFBQUFBQUFBQWdBQUFQZWhBUURyc1FFQUFBQUFBQktrQVFBTXBBRUE2N0VCQUFBQUFBQ3BvUUVBQXdBQUFQZWhBUURyc1FFQXFhRUJBQ09rQVFBTXBBRUFBQUFBQUFBQUFBQ3BvUUVBQVFBQUFQZWhBUUFBQUFBQXFhRUJBTnFsQVFBTXBBRUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFQZWhBUUFBQUFBQUFBQUFBRENrQVFCS3BBRUFXYVFCQUFBQUFBQ3BvUUVBSVFBQUFQZWhBUUFBQUFBQXFhRUJBR0NrQVFCdHBBRUFBQUFBQUFBQUFBQUFBQUFBSWdBQUFQbWpBUUFBQUFBQUFBQUFBQWdBQUFBRUFBQUFBQUFBQUFvQUFBQXRBQUFBRWdBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQWdBQUFELy8vLy9BQUFBQUFBQUFBQXVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQW1uQVFER0FBQUFENmNCQU1FQUFBQVdwd0VBd2dBQUFCeW5BUURBQUFBQUk2Y0JBSkVEQUFBcHB3RUF4UUFBQUMrbkFRRERBQUFBTnFjQkFNUUFBQUE3cHdFQWtnTUFBRUNuQVFE''@;'; put 'put ''SEFBQUFSNmNCQUtjREFBQkxwd0VBSVNBQUFGS25BUUNVQXdBQVdLY0JBTkFBQUFCY3B3RUF5UUFBQUdPbkFRREtBQUFBYWFjQkFNZ0FBQUJ3cHdFQWxRTUFBSGluQVFDWEF3QUFmS2NCQU1zQUFBQ0Jwd0VBa3dNQUFJZW5BUUROQUFBQWpxY0JBTTRBQUFDVXB3RUF6QUFBQUp1bkFRQ1pBd0FB''@;'; put 'put ''b0tjQkFNOEFBQUNscHdFQW1nTUFBS3VuQVFDYkF3QUFzcWNCQUp3REFBQzFwd0VBMFFBQUFMeW5BUUNkQXdBQXY2Y0JBRklCQUFERnB3RUEwd0FBQU15bkFRRFVBQUFBMHFjQkFOSUFBQURacHdFQXFRTUFBTituQVFDZkF3QUE1NmNCQU5nQUFBRHVwd0VBMVFBQUFQV25BUURXQUFBQStxY0JB''@;'; put 'put ''S1lEQUFEK3B3RUFvQU1BQUFHb0FRQXpJQUFBQjZnQkFLZ0RBQUFMcUFFQW9RTUFBQStvQVFCZ0FRQUFGcWdCQUtNREFBQWNxQUVBM2dBQUFDS29BUUNrQXdBQUpxZ0JBSmdEQUFBc3FBRUEyZ0FBQURPb0FRRGJBQUFBT2FnQkFOa0FBQUJBcUFFQXBRTUFBRWlvQVFEY0FBQUFUYWdCQUo0REFB''@;'; put 'put ''QlFxQUVBM1FBQUFGZW9BUUI0QVFBQVhLZ0JBSllEQUFCaHFBRUE0UUFBQUdpb0FRRGlBQUFBYnFnQkFMUUFBQUIwcUFFQTVnQUFBSHFvQVFEZ0FBQUFnYWdCQURVaEFBQ0pxQUVBc1FNQUFJK29BUUFtQUFBQWs2Z0JBQ2NpQUFDWHFBRUFJQ0lBQUp1b0FRRGxBQUFBb2FnQkFFZ2lBQUNucUFF''@;'; put 'put ''QTR3QUFBSzZvQVFEa0FBQUFzNmdCQUI0Z0FBQzVxQUVBc2dNQUFMNm9BUUNtQUFBQXhhZ0JBQ0lnQUFES3FBRUFLU0lBQU02b0FRRG5BQUFBMWFnQkFMZ0FBQURicUFFQW9nQUFBT0NvQVFESEF3QUE1S2dCQU1ZQ0FBRHBxQUVBWXlZQUFPK29BUUJGSWdBQTlLZ0JBS2tBQUFENXFBRUF0U0VB''@;'; put 'put ''QVArb0FRQXFJZ0FBQTZrQkFLUUFBQUFLcVFFQTB5RUFBQStwQVFBZ0lBQUFGcWtCQUpNaEFBQWJxUUVBc0FBQUFCK3BBUUMwQXdBQUpha0JBR1ltQUFBcnFRRUE5d0FBQURLcEFRRHBBQUFBT2FrQkFPb0FBQUEvcVFFQTZBQUFBRWFwQVFBRklnQUFUS2tCQUFNZ0FBQlJxUUVBQWlBQUFGYXBB''@;'; put 'put ''UUMxQXdBQVhxa0JBR0VpQUFCa3FRRUF0d01BQUdpcEFRRHdBQUFBYktrQkFPc0FBQUJ4cVFFQXJDQUFBSGFwQVFBRElnQUFmS2tCQUpJQkFBQ0JxUUVBQUNJQUFJaXBBUUM5QUFBQWo2a0JBTHdBQUFDV3FRRUF2Z0FBQUoycEFRQkVJQUFBbzZrQkFMTURBQUNwcVFFQVpTSUFBS3lwQVFBK0FB''@;'; put 'put ''QUFyNmtCQU5RaEFBQzBxUUVBbENFQUFMbXBBUUJsSmdBQXdLa0JBQ1lnQUFESHFRRUE3UUFBQU02cEFRRHVBQUFBMUtrQkFLRUFBQURhcVFFQTdBQUFBT0dwQVFBUklRQUE1NmtCQUI0aUFBRHRxUUVBS3lJQUFQR3BBUUM1QXdBQTlxa0JBTDhBQUFEOXFRRUFDQ0lBQUFLcUFRRHZBQUFBQjZv''@;'; put 'put ''QkFMb0RBQUFOcWdFQTBDRUFBQktxQVFDN0F3QUFHYW9CQUNrakFBQWVxZ0VBcXdBQUFDU3FBUUNRSVFBQUthb0JBQWdqQUFBdnFnRUFIQ0FBQURXcUFRQmtJZ0FBT0tvQkFBb2pBQUEvcWdFQUZ5SUFBRWFxQVFES0pRQUFTcW9CQUE0Z0FBQk9xZ0VBT1NBQUFGV3FBUUFZSUFBQVc2b0JBRHdB''@;'; put 'put ''QUFCZXFnRUFyd0FBQUdPcUFRQVVJQUFBYWFvQkFMVUFBQUJ2cWdFQXR3QUFBRWF6QVFBU0lnQUFkcW9CQUx3REFBQjVxZ0VBQnlJQUFIK3FBUUNnQUFBQWhLb0JBQk1nQUFDS3FnRUFZQ0lBQUkycUFRQUxJZ0FBa0tvQkFLd0FBQUNVcWdFQUNTSUFBSnFxQVFDRUlnQUFuNm9CQVBFQUFBQ21x''@;'; put 'put ''Z0VBdlFNQUFLbXFBUUR6QUFBQXNLb0JBUFFBQUFDMnFnRUFVd0VBQUx5cUFRRHlBQUFBdzZvQkFENGdBQURKcWdFQXlRTUFBTStxQVFDL0F3QUExNm9CQUpVaUFBRGRxZ0VBS0NJQUFPQ3FBUUNxQUFBQTVhb0JBTG9BQUFEcXFnRUErQUFBQVBHcUFRRDFBQUFBK0tvQkFKY2lBQUQvcWdFQTln''@;'; put 'put ''QUFBQVNyQVFDMkFBQUFDYXNCQUFJaUFBQU9xd0VBTUNBQUFCV3JBUUNsSWdBQUdxc0JBTVlEQUFBZXF3RUF3QU1BQUNHckFRRFdBd0FBSmFzQkFMRUFBQUFzcXdFQW93QUFBREtyQVFBeUlBQUFPS3NCQUE4aUFBQTlxd0VBSFNJQUFFS3JBUURJQXdBQVJxc0JBQ0lBQUFCTHF3RUEwaUVBQUZD''@;'; put 'put ''ckFRQWFJZ0FBVnFzQkFDb2pBQUJicXdFQXV3QUFBR0dyQVFDU0lRQUFacXNCQUFrakFBQnNxd0VBSFNBQUFIS3JBUUFjSVFBQWQ2c0JBSzRBQUFCN3F3RUFDeU1BQUlLckFRREJBd0FBaHFzQkFBOGdBQUNLcXdFQU9pQUFBSkdyQVFBWklBQUFsNnNCQUJvZ0FBQ2Rxd0VBWVFFQUFLU3JBUURG''@;'; put 'put ''SWdBQXFhc0JBS2NBQUFDdXF3RUFyUUFBQUxLckFRRERBd0FBdUtzQkFNSURBQUMvcXdFQVBDSUFBTU9yQVFCZ0pnQUF5cXNCQUlJaUFBRE9xd0VBaGlJQUFOT3JBUUFSSWdBQTE2c0JBSU1pQUFEYnF3RUF1UUFBQU9DckFRQ3lBQUFBNWFzQkFMTUFBQURxcXdFQWh5SUFBTytyQVFEZkFBQUE5''@;'; put 'put ''YXNCQU1RREFBRDVxd0VBTkNJQUFBQ3NBUUM0QXdBQUJxd0JBTkVEQUFBUHJBRUFDU0FBQUJhc0FRRCtBQUFBSEt3QkFOd0NBQUFpckFFQTF3QUFBQ2lzQVFBaUlRQUFMcXdCQU5FaEFBQXpyQUVBK2dBQUFEcXNBUUNSSVFBQVA2d0JBUHNBQUFCRnJBRUErUUFBQUV5c0FRQ29BQUFBVUt3QkFO''@;'; put 'put ''SURBQUJXckFFQXhRTUFBRjZzQVFEOEFBQUFZNndCQUJnaEFBQnFyQUVBdmdNQUFHMnNBUUQ5QUFBQWRLd0JBS1VBQUFCNHJBRUEvd0FBQUgyc0FRQzJBd0FBZ3F3QkFBMGdBQUNHckFFQURDQUFBQWNBQUFBSUFBQUFBUUVBQUFnQUFBQUlBQUFBQUFBQUFBQUFBQUF2QUFBQUV3QUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFnQUFBQVFBQUFBQUFBQUFBQUFBQUF3QUFBQUZBQUFBQUFBQUFBQUFBQUFBQUFBQUFhekFRQUpBQUFBQ0xNQkFBb0FBQUFOc3dFQUNnQUFBQld6QVFBTEFBQUFHN01CQUFzQUFBQWtzd0VBREFBQUFDZXpBUUFNQUFBQUxiTUJBQTBBQUFBeXN3RUFEUUFBQURxekFRQU9BQUFB''@;'; put 'put ''UDdNQkFBNEFBQUJHc3dFQUR3QUFBRXl6QVFBUEFBQUFXTE1CQUJBQUFBQmlBQUFBTVFBQUFESUFBQUFVQUFBQU13QUFBR01BQUFBMEFBQUFGUUFBQURVQUFBQUlBQUFBQkFBQUFQLy8vLzhBQUFBQUFBQUFBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQ2p0QUVBVlYzSmY4bC8vd0N1dEFFQXV5M1V2''@;'; put 'put ''cTdVL3dDNXRBRUFGSGY5L2NDRy93REV0QUVBVlYzSmY4bC8vd0RQdEFFQXV5M1V2cTdVL3dEYXRBRUFGSGY5L2NDRy93RGx0QUVBS21iLy8vK1ovd0R3dEFFQVZWM0pmOGwvL3dEN3RBRUF1eTNVdnE3VS93QUd0UUVBRkhmOS9jQ0cvd0FSdFFFQUttYi8vLytaL3dBY3RRRUFsNjJ3T0d5dy93''@;'; put 'put ''QW50UUVBVlYzSmY4bC8vd0F5dFFFQXV5M1V2cTdVL3dBOXRRRUFGSGY5L2NDRy93Qkl0UUVBS21iLy8vK1ovd0JUdFFFQWw2MndPR3l3L3dCZXRRRUE2UHp3OEFKLy93QnB0UUVBVlYzSmY4bC8vd0IwdFFFQXV5M1V2cTdVL3dCL3RRRUFGSGY5L2NDRy93Q0t0UUVBS21iLy8vK1ovd0NWdFFF''@;'; put 'put ''QWw2MndPR3l3L3dDZ3RRRUE2UHp3OEFKLy93Q3J0UUVBRWVDL3Yxc1gvd0MydFFFQVZWM0pmOGwvL3dEQnRRRUF1eTNVdnE3VS93RE10UUVBRkhmOS9jQ0cvd0RYdFFFQUttYi8vLytaL3dEaXRRRUFsNjJ3T0d5dy93RHR0UUVBNlB6dzhBSi8vd0Q0dFFFQUVlQy92MXNYL3dBRHRnRUFBQUJt''@;'; put 'put ''Wm1abS93QU90Z0VBa3huMzN1djMvd0FZdGdFQWprdmhuc3JoL3dBaXRnRUFrYnk5TVlLOS93QXN0Z0VBbnhELzcvUC8vd0EydGdFQWp5N252ZGZuL3dCQXRnRUFqMy9XYTY3Vy93Qkt0Z0VBazlDMUlYRzEvd0JVdGdFQW54RC83L1AvL3dCZXRnRUFqeTdudmRmbi93Qm90Z0VBajMvV2E2N1cv''@;'; put 'put ''d0J5dGdFQWtieTlNWUs5L3dCOHRnRUFsZkdjQ0ZHYy93Q0d0Z0VBbnhELzcvUC8vd0NRdGdFQWxDdnZ4dHZ2L3dDYXRnRUFqa3ZobnNyaC93Q2t0Z0VBajMvV2E2N1cvd0N1dGdFQWtieTlNWUs5L3dDNHRnRUFsZkdjQ0ZHYy93REN0Z0VBbnhELzcvUC8vd0RNdGdFQWxDdnZ4dHZ2L3dEV3Rn''@;'; put 'put ''RUFqa3ZobnNyaC93RGd0Z0VBajMvV2E2N1cvd0RxdGdFQWtLbkdRcExHL3dEMHRnRUFrOUMxSVhHMS93RCt0Z0VBbC9HVUNFV1Uvd0FJdHdFQWxBai85L3YvL3dBU3R3RUFreG4zM3V2My93QWN0d0VBbEN2dnh0dnYvd0FtdHdFQWprdmhuc3JoL3dBd3R3RUFqMy9XYTY3Vy93QTZ0d0VBa0tu''@;'; put 'put ''R1FwTEcvd0JFdHdFQWs5QzFJWEcxL3dCT3R3RUFsL0dVQ0VXVS93Qll0d0VBbEFqLzkvdi8vd0JpdHdFQWt4bjMzdXYzL3dCc3R3RUFsQ3Z2eHR2di93QjJ0d0VBamt2aG5zcmgvd0NBdHdFQWozL1dhNjdXL3dDS3R3RUFrS25HUXBMRy93Q1V0d0VBazlDMUlYRzEvd0NldHdFQWxmR2NDRkdj''@;'; put 'put ''L3dDb3R3RUFtT3RyQ0RCci93Q3l0d0VBRis5VVZEQUYvd0M4dHdFQWQvODhBRHd3L3dESHR3RUFGK3lNakZFSy93RFJ0d0VBR01LL3Y0RXQvd0RidHdFQUhYRGYzOEo5L3dEbHR3RUFIalQyOXVqRC93RHZ0d0VBZVNicXgrcmwvd0Q1dHdFQWVGL05nTTNCL3dBRHVBRUFmS1dYTlplUC93QU51''@;'; put 'put ''QUVBZlB4bUFXWmUvd0FYdUFFQUYrOVVWREFGL3dBaHVBRUFmUHhtQVdaZS93QXN1QUVBZC84OEFEd3cvd0EzdUFFQUYreU1qRkVLL3dCQnVBRUFHTUsvdjRFdC93Qkx1QUVBSFhEZjM4Sjkvd0JWdUFFQUhqVDI5dWpEL3dCZnVBRUFBQUQxOWZYMS93QnB1QUVBZVNicXgrcmwvd0J6dUFFQWVG''@;'; put 'put ''L05nTTNCL3dCOXVBRUFmS1dYTlplUC93Q0h1QUVBSElmWTJMTmwvd0NRdUFFQUFBRDE5ZlgxL3dDWnVBRUFlMyswV3JTcy93Q2l1QUVBRmRlbXBtRWEvd0NydUFFQUhYRGYzOEo5L3dDMHVBRUFlRi9OZ00zQi93Qzl1QUVBZWYyRkFZVngvd0RHdUFFQUZkZW1wbUVhL3dEUHVBRUFIWERmMzhK''@;'; put 'put ''OS93RFl1QUVBQUFEMTlmWDEvd0RodUFFQWVGL05nTTNCL3dEcXVBRUFlZjJGQVlWeC93RHp1QUVBRit5TWpGRUsvd0Q4dUFFQUhJZlkyTE5sL3dBRnVRRUFIalQyOXVqRC93QU91UUVBZVNicXgrcmwvd0FYdVFFQWUzKzBXclNzL3dBZ3VRRUFmUHhtQVdaZS93QXB1UUVBRit5TWpGRUsvd0F5''@;'; put 'put ''dVFFQUhJZlkyTE5sL3dBN3VRRUFIalQyOXVqRC93QkV1UUVBQUFEMTlmWDEvd0JOdVFFQWVTYnF4K3JsL3dCV3VRRUFlMyswV3JTcy93QmZ1UUVBZlB4bUFXWmUvd0JvdVFFQUYreU1qRkVLL3dCeHVRRUFHTUsvdjRFdC93QjZ1UUVBSFhEZjM4Sjkvd0NEdVFFQUhqVDI5dWpEL3dDTXVRRUFl''@;'; put 'put ''U2JxeCtybC93Q1Z1UUVBZUYvTmdNM0Ivd0NldVFFQWZLV1hOWmVQL3dDbnVRRUFmUHhtQVdaZS93Q3d1UUVBRit5TWpGRUsvd0M1dVFFQUdNSy92NEV0L3dEQ3VRRUFIWERmMzhKOS93REx1UUVBSGpUMjl1akQvd0RVdVFFQUFBRDE5ZlgxL3dEZHVRRUFlU2JxeCtybC93RG11UUVBZUYvTmdN''@;'; put 'put ''M0Ivd0R2dVFFQWZLV1hOWmVQL3dENHVRRUFmUHhtQVdaZS93QUJ1Z0VBaHhUNTVmWDUvd0FLdWdFQWRVclltZGpKL3dBVHVnRUFaN21pTEtKZi93QWN1Z0VBaUE3Nzdmajcvd0FsdWdFQWZ6YmlzdUxpL3dBdXVnRUFjWGpDWnNLay93QTN1Z0VBWXI2TEk0dEYvd0JBdWdFQWlBNzc3Zmo3L3dC''@;'; put 'put ''SnVnRUFmemJpc3VMaS93QlN1Z0VBY1hqQ1pzS2svd0JidWdFQVo3bWlMS0pmL3dCa3VnRUFadjl0QUcwcy93QnR1Z0VBaUE3Nzdmajcvd0IydWdFQWR5THN6T3ptL3dCL3VnRUFkVXJZbWRqSi93Q0l1Z0VBY1hqQ1pzS2svd0NSdWdFQVo3bWlMS0pmL3dDYXVnRUFadjl0QUcwcy93Q2p1Z0VB''@;'; put 'put ''aUE3Nzdmajcvd0NzdWdFQWR5THN6T3ptL3dDMXVnRUFkVXJZbWRqSi93Qyt1Z0VBY1hqQ1pzS2svd0RIdWdFQWFaK3VRYTUyL3dEUXVnRUFZcjZMSTR0Ri93RFp1Z0VBWnY5WUFGZ2svd0RpdWdFQWhnYjk5L3o5L3dEcnVnRUFoeFQ1NWZYNS93RDB1Z0VBZHlMc3pPem0vd0Q5dWdFQWRVcllt''@;'; put 'put ''ZGpKL3dBR3V3RUFjWGpDWnNLay93QVB1d0VBYVordVFhNTIvd0FZdXdFQVlyNkxJNHRGL3dBaHV3RUFadjlZQUZnay93QXF1d0VBaGdiOTkvejkvd0F6dXdFQWh4VDU1Zlg1L3dBOHV3RUFkeUxzek96bS93QkZ1d0VBZFVyWW1kakovd0JPdXdFQWNYakNac0trL3dCWHV3RUFhWit1UWE1Mi93''@;'; put 'put ''Qmd1d0VBWXI2TEk0dEYvd0JwdXdFQVp2OXRBRzBzL3dCeXV3RUFaZjlFQUVRYi93Qjd1d0VBa0JUMDRPejAvd0NFdXdFQWxFYmFucnphL3dDTnV3RUF4SHVuaUZhbi93Q1d1d0VBaUE3Nzdmajcvd0NmdXdFQWtqWGpzODNqL3dDb3V3RUFva3JHakpiRy93Q3h1d0VBeXBXZGlFR2Qvd0M2dXdF''@;'; put 'put ''QWlBNzc3Zmo3L3dERHV3RUFralhqczgzai93RE11d0VBb2tyR2pKYkcvd0RWdXdFQXhIdW5pRmFuL3dEZXV3RUExdUdCZ1E5OC93RG51d0VBaUE3Nzdmajcvd0R3dXdFQWxDdm12OVBtL3dENXV3RUFsRWJhbnJ6YS93QUN2QUVBb2tyR2pKYkcvd0FMdkFFQXhIdW5pRmFuL3dBVXZBRUExdUdC''@;'; put 'put ''Z1E5OC93QWR2QUVBaUE3Nzdmajcvd0FtdkFFQWxDdm12OVBtL3dBdnZBRUFsRWJhbnJ6YS93QTR2QUVBb2tyR2pKYkcvd0JCdkFFQXZtU3hqR3V4L3dCS3ZBRUF5cFdkaUVHZC93QlR2QUVBMWZ4dWJnRnIvd0JjdkFFQWhnYjk5L3o5L3dCbHZBRUFrQlQwNE96MC93QnV2QUVBbEN2bXY5UG0v''@;'; put 'put ''d0IzdkFFQWxFYmFucnphL3dDQXZBRUFva3JHakpiRy93Q0p2QUVBdm1TeGpHdXgvd0NTdkFFQXlwV2RpRUdkL3dDYnZBRUExZnh1YmdGci93Q2t2QUVBaGdiOTkvejkvd0N0dkFFQWtCVDA0T3owL3dDMnZBRUFsQ3ZtdjlQbS93Qy92QUVBbEViYW5yemEvd0RJdkFFQW9rckdqSmJHL3dEUnZB''@;'; put 'put ''RUF2bVN4akd1eC93RGF2QUVBeXBXZGlFR2Qvd0RqdkFFQTF1R0JnUTk4L3dEc3ZBRUExZjlOVFFCTC93RDF2QUVBY3RPZUc1NTMvd0QvdkFFQUV2eloyVjhDL3dBSnZRRUFyVit6ZFhDei93QVR2UUVBY3RPZUc1NTMvd0FkdlFFQUV2eloyVjhDL3dBbnZRRUFyVit6ZFhDei93QXh2UUVBNmRI''@;'; put 'put ''bjV5bUsvd0E3dlFFQWN0T2VHNTUzL3dCRnZRRUFFdnpaMlY4Qy93QlB2UUVBclYremRYQ3ovd0JadlFFQTZkSG41eW1LL3dCanZRRUFQdENtWnFZZS93QnR2UUVBY3RPZUc1NTMvd0IzdlFFQUV2eloyVjhDL3dDQnZRRUFyVit6ZFhDei93Q0x2UUVBNmRIbjV5bUsvd0NWdlFFQVB0Q21acVll''@;'; put 'put ''L3dDZnZRRUFIL3ptNXFzQy93Q3B2UUVBY3RPZUc1NTMvd0N6dlFFQUV2eloyVjhDL3dDOXZRRUFyVit6ZFhDei93REh2UUVBNmRIbjV5bUsvd0RSdlFFQVB0Q21acVllL3dEYnZRRUFIL3ptNXFzQy93RGx2UUVBRzlLbXBuWWQvd0R2dlFFQWN0T2VHNTUzL3dENXZRRUFFdnpaMlY4Qy93QUR2''@;'; put 'put ''Z0VBclYremRYQ3ovd0FOdmdFQTZkSG41eW1LL3dBWHZnRUFQdENtWnFZZS93QWh2Z0VBSC96bTVxc0Mvd0FydmdFQUc5S21wbllkL3dBMXZnRUFBQUJtWm1abS93QS92Z0VBVEJuejRQUGIvd0JJdmdFQVh6M2RxTjIxL3dCUnZnRUFqS3JLUTZMSy93QmF2Z0VBUVJINThQbm8vd0JqdmdFQVZ5''@;'; put 'put ''N2t1dVM4L3dCc3ZnRUFlMlhNZTh6RS93QjF2Z0VBamNXK0s0eSsvd0IrdmdFQVFSSDU4UG5vL3dDSHZnRUFWeTdrdXVTOC93Q1F2Z0VBZTJYTWU4ekUvd0NadmdFQWpLcktRNkxLL3dDaXZnRUFrZk9zQ0dpcy93Q3J2Z0VBUVJINThQbm8vd0MwdmdFQVRTbnJ6T3ZGL3dDOXZnRUFYejNkcU4y''@;'; put 'put ''MS93REd2Z0VBZTJYTWU4ekUvd0RQdmdFQWpLcktRNkxLL3dEWXZnRUFrZk9zQ0dpcy93RGh2Z0VBUVJINThQbm8vd0RxdmdFQVRTbnJ6T3ZGL3dEenZnRUFYejNkcU4yMS93RDh2Z0VBZTJYTWU4ekUvd0FGdndFQWlhRFRUclBUL3dBT3Z3RUFqY1crSzR5Ky93QVh2d0VBay9LZUNGaWUvd0Fn''@;'; put 'put ''dndFQVBBejg5L3p3L3dBcHZ3RUFUQm56NFBQYi93QXl2d0VBVFNucnpPdkYvd0E3dndFQVh6M2RxTjIxL3dCRXZ3RUFlMlhNZTh6RS93Qk52d0VBaWFEVFRyUFQvd0JXdndFQWpjVytLNHkrL3dCZnZ3RUFrL0tlQ0ZpZS93Qm92d0VBUEF6ODkvencvd0J4dndFQVRCbno0UFBiL3dCNnZ3RUFU''@;'; put 'put ''U25yek92Ri93Q0R2d0VBWHozZHFOMjEvd0NNdndFQWUyWE1lOHpFL3dDVnZ3RUFpYURUVHJQVC93Q2V2d0VBamNXK0s0eSsvd0NudndFQWtmT3NDR2lzL3dDd3Z3RUFsdStCQ0VDQi93QzV2d0VBU2hYMTVmWGcvd0RFdndFQVVFalpvZG1iL3dEUHZ3RUFZcktqTWFOVS93RGF2d0VBU1EvNDdm''@;'; put 'put ''anAvd0RsdndFQVRqYmt1dVN6L3dEd3Z3RUFWbWpFZE1SMi93RDd2d0VBWXI2TEk0dEYvd0FHd0FFQVNRLzQ3ZmpwL3dBUndBRUFUamJrdXVTei93QWN3QUVBVm1qRWRNUjIvd0Fud0FFQVlyS2pNYU5VL3dBeXdBRUFadjl0QUcwcy93QTl3QUVBU1EvNDdmanAvd0JJd0FFQVRTenB4K25BL3dC''@;'; put 'put ''VHdBRUFVRWpab2RtYi93QmV3QUVBVm1qRWRNUjIvd0Jwd0FFQVlyS2pNYU5VL3dCMHdBRUFadjl0QUcwcy93Qi93QUVBU1EvNDdmanAvd0NLd0FFQVRTenB4K25BL3dDVndBRUFVRWpab2RtYi93Q2d3QUVBVm1qRWRNUjIvd0Nyd0FFQVlKNnJRYXRkL3dDMndBRUFZcjZMSTR0Ri93REJ3QUVB''@;'; put 'put ''YlA5YUFGb3kvd0RNd0FFQVNBZjg5L3oxL3dEWHdBRUFTaFgxNWZYZy93RGl3QUVBVFN6cHgrbkEvd0R0d0FFQVVFalpvZG1iL3dENHdBRUFWbWpFZE1SMi93QUR3UUVBWUo2clFhdGQvd0FPd1FFQVlyNkxJNHRGL3dBWndRRUFiUDlhQUZveS93QWt3UUVBU0FmODkvejEvd0F2d1FFQVNoWDE1''@;'; put 'put ''ZlhnL3dBNndRRUFUU3pweCtuQS93QkZ3UUVBVUVqWm9kbWIvd0JRd1FFQVZtakVkTVIyL3dCYndRRUFZSjZyUWF0ZC93Qm13UUVBWXI2TEk0dEYvd0J4d1FFQVp2OXRBRzBzL3dCOHdRRUFaZjlFQUVRYi93Q0h3UUVBQUFEdzhQRHcvd0NSd1FFQUFBQzl2YjI5L3dDYndRRUFBQUJqWTJOai93''@;'; put 'put ''Q2x3UUVBQUFEMzkvZjMvd0N2d1FFQUFBRE16TXpNL3dDNXdRRUFBQUNXbHBhVy93RER3UUVBQUFCU1VsSlMvd0ROd1FFQUFBRDM5L2YzL3dEWHdRRUFBQURNek16TS93RGh3UUVBQUFDV2xwYVcvd0Ryd1FFQUFBQmpZMk5qL3dEMXdRRUFBQUFsSlNVbC93RC93UUVBQUFEMzkvZjMvd0FKd2dF''@;'; put 'put ''QUFBRFoyZG5aL3dBVHdnRUFBQUM5dmIyOS93QWR3Z0VBQUFDV2xwYVcvd0Fud2dFQUFBQmpZMk5qL3dBeHdnRUFBQUFsSlNVbC93QTd3Z0VBQUFEMzkvZjMvd0JGd2dFQUFBRFoyZG5aL3dCUHdnRUFBQUM5dmIyOS93Qlp3Z0VBQUFDV2xwYVcvd0Jqd2dFQUFBQnpjM056L3dCdHdnRUFBQUJT''@;'; put 'put ''VWxKUy93QjN3Z0VBQUFBbEpTVWwvd0NCd2dFQUFBRC8vLy8vL3dDTHdnRUFBQUR3OFBEdy93Q1Z3Z0VBQUFEWjJkblovd0Nmd2dFQUFBQzl2YjI5L3dDcHdnRUFBQUNXbHBhVy93Q3p3Z0VBQUFCemMzTnovd0M5d2dFQUFBQlNVbEpTL3dESHdnRUFBQUFsSlNVbC93RFJ3Z0VBQUFELy8vLy8v''@;'; put 'put ''d0Rid2dFQUFBRHc4UER3L3dEbHdnRUFBQURaMmRuWi93RHZ3Z0VBQUFDOXZiMjkvd0Q1d2dFQUFBQ1dscGFXL3dBRHd3RUFBQUJ6YzNOei93QU53d0VBQUFCU1VsSlMvd0FYd3dFQUFBQWxKU1VsL3dBaHd3RUFBQUFBQUFBQS93QXJ3d0VBRlREKy91Yk8vd0Ezd3dFQUU1UDkvYTVyL3dCRHd3''@;'; put 'put ''RUFEdkRtNWxVTi93QlB3d0VBRXlEKy91M2Uvd0Jid3dFQUZIajkvYjZGL3dCbnd3RUFFY0w5L1kwOC93Qnp3d0VBRGYzWjJVY0Ivd0Ivd3dFQUV5RCsvdTNlL3dDTHd3RUFGSGo5L2I2Ri93Q1h3d0VBRWNMOS9ZMDgvd0Nqd3dFQUR2RG01bFVOL3dDdnd3RUFEZnFtcGpZRC93Qzd3d0VBRXlE''@;'; put 'put ''Ky91M2Uvd0RId3dFQUZWdjkvZENpL3dEVHd3RUFFNVA5L2E1ci93RGZ3d0VBRWNMOS9ZMDgvd0Ryd3dFQUR2RG01bFVOL3dEM3d3RUFEZnFtcGpZRC93QUR4QUVBRXlEKy91M2Uvd0FQeEFFQUZWdjkvZENpL3dBYnhBRUFFNVA5L2E1ci93QW54QUVBRWNMOS9ZMDgvd0F6eEFFQUVPcng4V2tU''@;'; put 'put ''L3dBL3hBRUFEZjNaMlVnQi93Qkx4QUVBRFBlTWpDMEUvd0JYeEFFQUZSVC8vL1hyL3dCanhBRUFGVEQrL3ViTy93QnZ4QUVBRlZ2OS9kQ2kvd0I3eEFFQUU1UDkvYTVyL3dDSHhBRUFFY0w5L1kwOC93Q1R4QUVBRU9yeDhXa1Qvd0NmeEFFQURmM1oyVWdCL3dDcnhBRUFEUGVNakMwRS93QzN4''@;'; put 'put ''QUVBRlJULy8vWHIvd0REeEFFQUZURCsvdWJPL3dEUHhBRUFGVnY5L2RDaS93RGJ4QUVBRTVQOS9hNXIvd0RueEFFQUVjTDkvWTA4L3dEenhBRUFFT3J4OFdrVC93RC94QUVBRGYzWjJVZ0Ivd0FMeFFFQURmcW1wallEL3dBWHhRRUFEUFovZnljRS93QWp4UUVBR1RiKy91akkvd0FzeFFFQUUz''@;'; put 'put ''bjkvYnVFL3dBMXhRRUFCY1hqNDBvei93QSt4UUVBR2lYKy92RFovd0JIeFFFQUdIUDkvY3lLL3dCUXhRRUFEYVQ4L0kxWi93Qlp4UUVBQTlyWDF6QWYvd0JpeFFFQUdpWCsvdkRaL3dCcnhRRUFHSFA5L2N5Sy93QjB4UUVBRGFUOC9JMVovd0I5eFFFQUJjWGo0MG96L3dDR3hRRUFBUCt6c3dB''@;'; put 'put ''QS93Q1B4UUVBR2lYKy92RFovd0NZeFFFQUdGLzkvZFNlL3dDaHhRRUFFM245L2J1RS93Q3F4UUVBRGFUOC9JMVovd0N6eFFFQUJjWGo0MG96L3dDOHhRRUFBUCt6c3dBQS93REZ4UUVBR2lYKy92RFovd0RPeFFFQUdGLzkvZFNlL3dEWHhRRUFFM245L2J1RS93RGd4UUVBRGFUOC9JMVovd0Rw''@;'; put 'put ''eFFFQUI3THY3MlZJL3dEeXhRRUFBOXJYMXpBZi93RDd4UUVBQVArWm1RQUEvd0FFeGdFQUdCTC8vL2ZzL3dBTnhnRUFHVGIrL3VqSS93QVd4Z0VBR0YvOS9kU2Uvd0FmeGdFQUUzbjkvYnVFL3dBb3hnRUFEYVQ4L0kxWi93QXh4Z0VBQjdMdjcyVkkvd0E2eGdFQUE5clgxekFmL3dCRHhnRUFB''@;'; put 'put ''UCtabVFBQS93Qk14Z0VBR0JMLy8vZnMvd0JWeGdFQUdUYisvdWpJL3dCZXhnRUFHRi85L2RTZS93Qm54Z0VBRTNuOS9idUUvd0J3eGdFQURhVDgvSTFaL3dCNXhnRUFCN0x2NzJWSS93Q0N4Z0VBQTlyWDF6QWYvd0NMeGdFQUFQK3pzd0FBL3dDVXhnRUFBUDkvZndBQS93Q2R4Z0VBamtUanBz''@;'; put 'put ''N2ovd0NweGdFQXZwbWFhajJhL3dDMnhnRUFrTk8wSDNpMC93REN4Z0VBUVdIZnN0K0svd0RPeGdFQVVyaWdNNkFzL3dEYXhnRUFBR1A3KzVxWi93RG14Z0VBL3VIajR4b2Mvd0R5eGdFQUY0LzkvYjl2L3dEK3hnRUFGZi8vLzM4QS93QUt4d0VBeGlyV3lyTFcvd0FXeHdFQWprVGpwczdqL3dB''@;'; put 'put ''aXh3RUF2cG1hYWoyYS93QXZ4d0VBS21iLy8vK1ovd0E4eHdFQWtOTzBIM2kwL3dCSXh3RUFRV0hmc3QrSy93QlV4d0VBVXJpZ002QXMvd0JneHdFQUFHUDcrNXFaL3dCc3h3RUEvdUhqNHhvYy93QjR4d0VBRjQvOS9iOXYvd0NFeHdFQUZmLy8vMzhBL3dDUXh3RUF4aXJXeXJMVy93Q2N4d0VB''@;'; put 'put ''amtUanBzN2ovd0NveHdFQXZwbWFhajJhL3dDMXh3RUFLbWIvLy8rWi93REN4d0VBRDhXeHNWa28vd0RQeHdFQWtOTzBIM2kwL3dEYnh3RUFRV0hmc3QrSy93RG54d0VBVXJpZ002QXMvd0R6eHdFQUFHUDcrNXFaL3dEL3h3RUEvdUhqNHhvYy93QUx5QUVBRjQvOS9iOXYvd0FYeUFFQUZmLy8v''@;'; put 'put ''MzhBL3dBanlBRUF4aXJXeXJMVy93QXZ5QUVBamtUanBzN2ovd0E2eUFFQWtOTzBIM2kwL3dCRnlBRUFRV0hmc3QrSy93QlF5QUVBamtUanBzN2ovd0JieUFFQWtOTzBIM2kwL3dCbXlBRUFRV0hmc3QrSy93Qnh5QUVBVXJpZ002QXMvd0I4eUFFQWprVGpwczdqL3dDSHlBRUFrTk8wSDNpMC93''@;'; put 'put ''Q1N5QUVBUVdIZnN0K0svd0NkeUFFQVVyaWdNNkFzL3dDb3lBRUFBR1A3KzVxWi93Q3p5QUVBamtUanBzN2ovd0MreUFFQWtOTzBIM2kwL3dESnlBRUFRV0hmc3QrSy93RFV5QUVBVXJpZ002QXMvd0RmeUFFQUFHUDcrNXFaL3dEcXlBRUEvdUhqNHhvYy93RDF5QUVBamtUanBzN2ovd0FBeVFF''@;'; put 'put ''QWtOTzBIM2kwL3dBTHlRRUFRV0hmc3QrSy93QVd5UUVBVXJpZ002QXMvd0FoeVFFQUFHUDcrNXFaL3dBc3lRRUEvdUhqNHhvYy93QTN5UUVBRjQvOS9iOXYvd0JDeVFFQWprVGpwczdqL3dCTnlRRUFrTk8wSDNpMC93Qll5UUVBUVdIZnN0K0svd0JqeVFFQVVyaWdNNkFzL3dCdXlRRUFBR1A3''@;'; put 'put ''KzVxWi93QjV5UUVBL3VIajR4b2Mvd0NFeVFFQUY0LzkvYjl2L3dDUHlRRUFGZi8vLzM4QS93Q2F5UUVBamtUanBzN2ovd0NseVFFQWtOTzBIM2kwL3dDd3lRRUFRV0hmc3QrSy93Qzd5UUVBVXJpZ002QXMvd0RHeVFFQUFHUDcrNXFaL3dEUnlRRUEvdUhqNHhvYy93RGN5UUVBRjQvOS9iOXYv''@;'; put 'put ''d0RueVFFQUZmLy8vMzhBL3dEeXlRRUF4aXJXeXJMVy93RDl5UUVBQTA3Nys3U3Uvd0FKeWdFQWtqWGpzODNqL3dBVnlnRUFUU25yek92Ri93QWh5Z0VBQTA3Nys3U3Uvd0F0eWdFQWtqWGpzODNqL3dBNXlnRUFUU25yek92Ri93QkZ5Z0VBeWh2azNzdmsvd0JSeWdFQUEwNzcrN1N1L3dCZHln''@;'; put 'put ''RUFralhqczgzai93QnB5Z0VBVFNucnpPdkYvd0IxeWdFQXlodmszc3ZrL3dDQnlnRUFHRmorL3RtbS93Q055Z0VBQTA3Nys3U3Uvd0NaeWdFQWtqWGpzODNqL3dDbHlnRUFUU25yek92Ri93Q3h5Z0VBeWh2azNzdmsvd0M5eWdFQUdGaisvdG1tL3dESnlnRUFLakwvLy8vTS93RFZ5Z0VBQTA3''@;'; put 'put ''Nys3U3Uvd0RoeWdFQWtqWGpzODNqL3dEdHlnRUFUU25yek92Ri93RDV5Z0VBeWh2azNzdmsvd0FGeXdFQUdGaisvdG1tL3dBUnl3RUFLakwvLy8vTS93QWR5d0VBSEN6bDVkaTkvd0FweXdFQUEwNzcrN1N1L3dBMXl3RUFralhqczgzai93QkJ5d0VBVFNucnpPdkYvd0JOeXdFQXlodmszc3Zr''@;'; put 'put ''L3dCWnl3RUFHRmorL3RtbS93Qmx5d0VBS2pMLy8vL00vd0J4eXdFQUhDemw1ZGk5L3dCOXl3RUE2U1A5L2Rycy93Q0p5d0VBQTA3Nys3U3Uvd0NWeXdFQWtqWGpzODNqL3dDaHl3RUFUU25yek92Ri93Q3R5d0VBeWh2azNzdmsvd0M1eXdFQUdGaisvdG1tL3dERnl3RUFLakwvLy8vTS93RFJ5''@;'; put 'put ''d0VBSEN6bDVkaTkvd0RkeXdFQTZTUDkvZHJzL3dEcHl3RUFBQUR5OHZMeS93RDF5d0VBYkRYaXMrTE4vd0FCekFFQUVWSDkvYzJzL3dBTnpBRUFteC9veTlYby93QVp6QUVBYkRYaXMrTE4vd0FsekFFQUVWSDkvYzJzL3dBeHpBRUFteC9veTlYby93QTl6QUVBNUN2MDlNcmsvd0JKekFFQWJE''@;'; put 'put ''WGlzK0xOL3dCVnpBRUFFVkg5L2Mycy93Qmh6QUVBbXgvb3k5WG8vd0J0ekFFQTVDdjA5TXJrL3dCNXpBRUFPQzMxNXZYSi93Q0Z6QUVBYkRYaXMrTE4vd0NSekFFQUVWSDkvYzJzL3dDZHpBRUFteC9veTlYby93Q3B6QUVBNUN2MDlNcmsvd0MxekFFQU9DMzE1dlhKL3dEQnpBRUFJMUgvLy9L''@;'; put 'put ''dS93RE56QUVBYkRYaXMrTE4vd0RaekFFQUVWSDkvYzJzL3dEbHpBRUFteC9veTlYby93RHh6QUVBNUN2MDlNcmsvd0Q5ekFFQU9DMzE1dlhKL3dBSnpRRUFJMUgvLy9LdS93QVZ6UUVBR1NmeDhlTE0vd0FoelFFQWJEWGlzK0xOL3dBdHpRRUFFVkg5L2Mycy93QTV6UUVBbXgvb3k5WG8vd0JG''@;'; put 'put ''elFFQTVDdjA5TXJrL3dCUnpRRUFPQzMxNXZYSi93QmR6UUVBSTFILy8vS3Uvd0JwelFFQUdTZng4ZUxNL3dCMXpRRUFBQURNek16TS93Q0J6UUVBNXYyT2pnRlMvd0NMelFFQVRiOWtKMlFaL3dDV3pRRUE1dHpGeFJ0OS93Q2d6UUVBNkhiZTNuZXUvd0NxelFFQTVUN3g4YmJhL3dDMHpRRUE2''@;'; put 'put ''UjM5L2VEdi93Qyt6UUVBT3liMTV2WFEvd0RJelFFQVBXZmh1T0dHL3dEU3pRRUFQNmE4Zjd4Qi93RGN6UUVBUk1XU1RaSWgvd0RtelFFQTV2Mk9qZ0ZTL3dEd3pRRUFSTVdTVFpJaC93RDd6UUVBVGI5a0oyUVovd0FHemdFQTV0ekZ4UnQ5L3dBUXpnRUE2SGJlM25ldS93QWF6Z0VBNVQ3eDhi''@;'; put 'put ''YmEvd0FremdFQTZSMzkvZUR2L3dBdXpnRUFBQUQzOS9mMy93QTR6Z0VBT3liMTV2WFEvd0JDemdFQVBXZmh1T0dHL3dCTXpnRUFQNmE4Zjd4Qi93Qld6Z0VBNTB6cDZhUEovd0JmemdFQUFBRDM5L2YzL3dCb3pnRUFQNEhYb2RkcS93Qnh6Z0VBNU56UTBCeUwvd0I2emdFQTVUN3g4YmJhL3dD''@;'; put 'put ''RHpnRUFQV2ZodU9HRy93Q016Z0VBU01hc1Rhd20vd0NWemdFQTVOelEwQnlML3dDZXpnRUE1VDd4OGJiYS93Q256Z0VBQUFEMzkvZjMvd0N3emdFQVBXZmh1T0dHL3dDNXpnRUFTTWFzVGF3bS93REN6Z0VBNXR6RnhSdDkvd0RMemdFQTUwenA2YVBKL3dEVXpnRUE2UjM5L2VEdi93RGR6Z0VB''@;'; put 'put ''T3liMTV2WFEvd0RtemdFQVA0SFhvZGRxL3dEdnpnRUFSTVdTVFpJaC93RDR6Z0VBNXR6RnhSdDkvd0FCendFQTUwenA2YVBKL3dBS3p3RUE2UjM5L2VEdi93QVR6d0VBQUFEMzkvZjMvd0FjendFQU95YjE1dlhRL3dBbHp3RUFQNEhYb2RkcS93QXV6d0VBUk1XU1RaSWgvd0EzendFQTV0ekZ4''@;'; put 'put ''UnQ5L3dCQXp3RUE2SGJlM25ldS93Qkp6d0VBNVQ3eDhiYmEvd0JTendFQTZSMzkvZUR2L3dCYnp3RUFPeWIxNXZYUS93Qmt6d0VBUFdmaHVPR0cvd0J0endFQVA2YThmN3hCL3dCMnp3RUFSTVdTVFpJaC93Qi96d0VBNXR6RnhSdDkvd0NJendFQTZIYmUzbmV1L3dDUnp3RUE1VDd4OGJiYS93''@;'; put 'put ''Q2F6d0VBNlIzOS9lRHYvd0NqendFQUFBRDM5L2YzL3dDc3p3RUFPeWIxNXZYUS93QzF6d0VBUFdmaHVPR0cvd0MrendFQVA2YThmN3hCL3dESHp3RUFSTVdTVFpJaC93RFF6d0VBenY5TFFBQkwvd0RhendFQVpmOUVBRVFiL3dEbHp3RUF6cTJEZGlxRC93RHZ6d0VBeDFlcm1YQ3Ivd0Q1endF''@;'; put 'put ''QXh6UFB3cVhQL3dBRDBBRUEwaFhvNTlUby93QU4wQUVBVEI3dzJmRFQvd0FYMEFFQVVFVGJwdHVnL3dBaDBBRUFXSHV1V3E1aC93QXIwQUVBWWNWNEczZzMvd0ExMEFFQXp2OUxRQUJML3dBLzBBRUFZY1Y0RzNnMy93QkswQUVBWmY5RUFFUWIvd0JWMEFFQXpxMkRkaXFEL3dCZjBBRUF4MWVy''@;'; put 'put ''bVhDci93QnAwQUVBeHpQUHdxWFAvd0J6MEFFQTBoWG81OVRvL3dCOTBBRUFBQUQzOS9mMy93Q0gwQUVBVEI3dzJmRFQvd0NSMEFFQVVFVGJwdHVnL3dDYjBBRUFXSHV1V3E1aC93Q2wwQUVBeEViRHI0M0Qvd0N1MEFFQUFBRDM5L2YzL3dDMzBBRUFVbHEvZjc5Ny93REEwQUVBeWFpVWV6S1Uv''@;'; put 'put ''d0RKMEFFQXh6UFB3cVhQL3dEUzBBRUFVRVRicHR1Zy93RGIwQUVBWnYrSUFJZzMvd0RrMEFFQXlhaVVlektVL3dEdDBBRUF4elBQd3FYUC93RDIwQUVBQUFEMzkvZjMvd0QvMEFFQVVFVGJwdHVnL3dBSTBRRUFaditJQUlnMy93QVIwUUVBenEyRGRpcUQvd0FhMFFFQXhFYkRyNDNEL3dBajBR''@;'; put 'put ''RUEwaFhvNTlUby93QXMwUUVBVEI3dzJmRFQvd0ExMFFFQVVscS9mNzk3L3dBKzBRRUFZY1Y0RzNnMy93QkgwUUVBenEyRGRpcUQvd0JRMFFFQXhFYkRyNDNEL3dCWjBRRUEwaFhvNTlUby93QmkwUUVBQUFEMzkvZjMvd0JyMFFFQVRCN3cyZkRUL3dCMDBRRUFVbHEvZjc5Ny93QjkwUUVBWWNW''@;'; put 'put ''NEczZzMvd0NHMFFFQXpxMkRkaXFEL3dDUDBRRUF4MWVybVhDci93Q1kwUUVBeHpQUHdxWFAvd0NoMFFFQTBoWG81OVRvL3dDcTBRRUFUQjd3MmZEVC93Q3owUUVBVUVUYnB0dWcvd0M4MFFFQVdIdXVXcTVoL3dERjBRRUFZY1Y0RzNnMy93RE8wUUVBenEyRGRpcUQvd0RYMFFFQXgxZXJtWENy''@;'; put 'put ''L3dEZzBRRUF4elBQd3FYUC93RHAwUUVBMGhYbzU5VG8vd0R5MFFFQUFBRDM5L2YzL3dENzBRRUFUQjd3MmZEVC93QUUwZ0VBVUVUYnB0dWcvd0FOMGdFQVdIdXVXcTVoL3dBVzBnRUFZY1Y0RzNnMy93QWYwZ0VBdlF2eTdPZnkvd0FvMGdFQWx6M2JwcjNiL3dBeDBnRUFqY1crSzR5Ky93QTYw''@;'; put 'put ''Z0VBdVFqMjhlNzIvd0JEMGdFQW15amh2Y25oL3dCTTBnRUFrWERQZEtuUC93QlYwZ0VBai9ld0JYQ3cvd0JlMGdFQXVRajI4ZTcyL3dCbjBnRUFteWpodmNuaC93QncwZ0VBa1hEUGRLblAvd0I1MGdFQWpjVytLNHkrL3dDQzBnRUFqL2VOQkZxTi93Q0wwZ0VBdVFqMjhlNzIvd0NVMGdFQXFC''@;'; put 'put ''am0wTkhtL3dDZDBnRUFsejNicHIzYi93Q20wZ0VBa1hEUGRLblAvd0N2MGdFQWpjVytLNHkrL3dDNDBnRUFqL2VOQkZxTi93REIwZ0VBdVFqMjhlNzIvd0RLMGdFQXFCam0wTkhtL3dEVDBnRUFsejNicHIzYi93RGMwZ0VBa1hEUGRLblAvd0RsMGdFQWpyZkFOcERBL3dEdTBnRUFqL2V3QlhD''@;'; put 'put ''dy93RDMwZ0VBai9oN0EwNTcvd0FBMHdFQTZRai8vL2Y3L3dBSjB3RUF2UXZ5N09meS93QVMwd0VBcUJqbTBOSG0vd0FiMHdFQWx6M2JwcjNiL3dBazB3RUFrWERQZEtuUC93QXQwd0VBanJmQU5wREEvd0EyMHdFQWovZXdCWEN3L3dBLzB3RUFqL2g3QTA1Ny93Qkkwd0VBNlFqLy8vZjcvd0JS''@;'; put 'put ''MHdFQXZRdnk3T2Z5L3dCYTB3RUFxQmptME5IbS93Qmowd0VBbHozYnByM2Ivd0JzMHdFQWtYRFBkS25QL3dCMTB3RUFqcmZBTnBEQS93Qiswd0VBai9ld0JYQ3cvd0NIMHdFQWovZU5CRnFOL3dDUTB3RUFqL2xZQWpoWS93Q1owd0VBeUE3dzdPTHcvd0NrMHdFQWx6M2JwcjNiL3dDdjB3RUFn''@;'; put 'put ''dENaSEpDWi93QzYwd0VBendqMzl1LzMvd0RGMHdFQW15amh2Y25oL3dEUTB3RUFqNERQWjZuUC93RGIwd0VBZ3Z1S0FvR0svd0RtMHdFQXp3ajM5dS8zL3dEeDB3RUFteWpodmNuaC93RDgwd0VBajREUFo2blAvd0FIMUFFQWd0Q1pISkNaL3dBUzFBRUFkL3hzQVd4Wi93QWQxQUVBendqMzl1''@;'; put 'put ''LzMvd0FvMUFFQXFCam0wTkhtL3dBejFBRUFsejNicHIzYi93QSsxQUVBajREUFo2blAvd0JKMUFFQWd0Q1pISkNaL3dCVTFBRUFkL3hzQVd4Wi93QmYxQUVBendqMzl1LzMvd0JxMUFFQXFCam0wTkhtL3dCMTFBRUFsejNicHIzYi93Q0ExQUVBajREUFo2blAvd0NMMUFFQWpyZkFOcERBL3dD''@;'; put 'put ''VzFBRUFndnVLQW9HSy93Q2gxQUVBZHZ4a0FXUlEvd0NzMUFFQTZRai8vL2Y3L3dDMzFBRUF5QTd3N09Mdy93REMxQUVBcUJqbTBOSG0vd0ROMUFFQWx6M2JwcjNiL3dEWTFBRUFqNERQWjZuUC93RGoxQUVBanJmQU5wREEvd0R1MUFFQWd2dUtBb0dLL3dENTFBRUFkdnhrQVdSUS93QUUxUUVB''@;'; put 'put ''NlFqLy8vZjcvd0FQMVFFQXlBN3c3T0x3L3dBYTFRRUFxQmptME5IbS93QWwxUUVBbHozYnByM2Ivd0F3MVFFQWo0RFBaNm5QL3dBNzFRRUFqcmZBTnBEQS93QkcxUUVBZ3Z1S0FvR0svd0JSMVFFQWQveHNBV3haL3dCYzFRRUFkZnRHQVVZMi93Qm4xUUVBRXU1L2Z6c0kvd0J4MVFFQXcvOUxM''@;'; put 'put ''UUJML3dCODFRRUFGUGF6czFnRy93Q0cxUUVBRnVqZzRJSVUvd0NRMVFFQUY1djkvYmhqL3dDYTFRRUFHRWorL3VDMi93Q2sxUUVBcFJUcjJOcnIvd0N1MVFFQXNTL1NzcXZTL3dDNDFRRUFzMVNzZ0hPcy93REMxUUVBdmJXSVZDZUkvd0RNMVFFQUV1NS9menNJL3dEVzFRRUF2YldJVkNlSS93''@;'; put 'put ''RGgxUUVBdy85TExRQkwvd0RzMVFFQUZQYXpzMWdHL3dEMjFRRUFGdWpnNElJVS93QUExZ0VBRjV2OS9iaGovd0FLMWdFQUdFaisvdUMyL3dBVTFnRUFBQUQzOS9mMy93QWUxZ0VBcFJUcjJOcnIvd0FvMWdFQXNTL1NzcXZTL3dBeTFnRUFzMVNzZ0hPcy93QTgxZ0VBRjd2eDhhTkEvd0JGMWdF''@;'; put 'put ''QUFBRDM5L2YzL3dCTzFnRUFza1hEbVk3RC93QlgxZ0VBRWYzbTVtRUIvd0JnMWdFQUY1djkvYmhqL3dCcDFnRUFzUy9Tc3F2Uy93QnkxZ0VBdVp1WlhqeVovd0I3MWdFQUVmM201bUVCL3dDRTFnRUFGNXY5L2Joai93Q04xZ0VBQUFEMzkvZjMvd0NXMWdFQXNTL1NzcXZTL3dDZjFnRUF1WnVa''@;'; put 'put ''WGp5Wi93Q28xZ0VBRlBhenMxZ0cvd0N4MWdFQUY3dng4YU5BL3dDNjFnRUFHRWorL3VDMi93REQxZ0VBcFJUcjJOcnIvd0RNMWdFQXNrWERtWTdEL3dEVjFnRUF2YldJVkNlSS93RGUxZ0VBRlBhenMxZ0cvd0RuMWdFQUY3dng4YU5BL3dEdzFnRUFHRWorL3VDMi93RDUxZ0VBQUFEMzkvZjMv''@;'; put 'put ''d0FDMXdFQXBSVHIyTnJyL3dBTDF3RUFza1hEbVk3RC93QVUxd0VBdmJXSVZDZUkvd0FkMXdFQUZQYXpzMWdHL3dBbTF3RUFGdWpnNElJVS93QXYxd0VBRjV2OS9iaGovd0E0MXdFQUdFaisvdUMyL3dCQjF3RUFwUlRyMk5yci93Qksxd0VBc1MvU3NxdlMvd0JUMXdFQXMxU3NnSE9zL3dCYzF3''@;'; put 'put ''RUF2YldJVkNlSS93Qmwxd0VBRlBhenMxZ0cvd0J1MXdFQUZ1amc0SUlVL3dCMzF3RUFGNXY5L2Joai93Q0Exd0VBR0VqKy91QzIvd0NKMXdFQUFBRDM5L2YzL3dDUzF3RUFwUlRyMk5yci93Q2Ixd0VBc1MvU3NxdlMvd0NrMXdFQXMxU3NnSE9zL3dDdDF3RUF2YldJVkNlSS93QzIxd0VBdkE3''@;'; put 'put ''djUrSHYvd0MvMXdFQTFrUEp5WlRIL3dESTF3RUE2dDdkM1J4My93RFIxd0VBdVFqMjhlNzIvd0RhMXdFQTB5blkxN1hZL3dEajF3RUE1SXZmMzJXdy93RHMxd0VBNytqT3poSlcvd0QxMXdFQXVRajI4ZTcyL3dEKzF3RUEweW5ZMTdYWS93QUgyQUVBNUl2ZjMyV3cvd0FRMkFFQTZ0N2QzUngz''@;'; put 'put ''L3dBWjJBRUE3UCtZbUFCRC93QWkyQUVBdVFqMjhlNzIvd0FyMkFFQXpDYmExTG5hL3dBMDJBRUExa1BKeVpUSC93QTkyQUVBNUl2ZjMyV3cvd0JHMkFFQTZ0N2QzUngzL3dCUDJBRUE3UCtZbUFCRC93QlkyQUVBdVFqMjhlNzIvd0JoMkFFQXpDYmExTG5hL3dCcTJBRUExa1BKeVpUSC93Qnoy''@;'; put 'put ''QUVBNUl2ZjMyV3cvd0I4MkFFQTZkSG41eW1LL3dDRjJBRUE3K2pPemhKVy93Q08yQUVBN1ArUmtRQS8vd0NYMkFFQXd3WDU5L1Q1L3dDZzJBRUF2QTd2NStIdi93Q3AyQUVBekNiYTFMbmEvd0N5MkFFQTFrUEp5WlRIL3dDNzJBRUE1SXZmMzJXdy93REUyQUVBNmRIbjV5bUsvd0ROMkFFQTcr''@;'; put 'put ''ak96aEpXL3dEVzJBRUE3UCtSa1FBLy93RGYyQUVBd3dYNTkvVDUvd0RvMkFFQXZBN3Y1K0h2L3dEeDJBRUF6Q2JhMUxuYS93RDYyQUVBMWtQSnlaVEgvd0FEMlFFQTVJdmYzMld3L3dBTTJRRUE2ZEhuNXltSy93QVYyUUVBNytqT3poSlcvd0FlMlFFQTdQK1ltQUJEL3dBbjJRRUE4djluWndB''@;'; put 'put ''Zi93QXcyUUVBdEFqMTcrMzEvd0E4MlFFQXFDWGN2TDNjL3dCSTJRRUFzR1N4ZFd1eC93QlUyUUVBdGdmMzh2RDMvd0JnMlFFQXJSeml5OG5pL3dCczJRRUFyVHJJbnBySS93QjQyUUVBdG9DamFsR2ovd0NFMlFFQXRnZjM4dkQzL3dDUTJRRUFyUnppeThuaS93Q2MyUUVBclRySW5wckkvd0Nv''@;'; put 'put ''MlFFQXNHU3hkV3V4L3dDMDJRRUF2TG1QVkNlUC93REEyUUVBdGdmMzh2RDMvd0RNMlFFQXFoTHIydHJyL3dEWTJRRUFxQ1hjdkwzYy93RGsyUUVBclRySW5wckkvd0R3MlFFQXNHU3hkV3V4L3dEODJRRUF2TG1QVkNlUC93QUkyZ0VBdGdmMzh2RDMvd0FVMmdFQXFoTHIydHJyL3dBZzJnRUFx''@;'; put 'put ''Q1hjdkwzYy93QXMyZ0VBclRySW5wckkvd0E0MmdFQXJGTzZnSDI2L3dCRTJnRUF0b0NqYWxHai93QlEyZ0VBdnRpR1NoU0cvd0JjMmdFQXZ3TDkvUHY5L3dCbzJnRUF0QWoxNyszMS93QjAyZ0VBcWhMcjJ0cnIvd0NBMmdFQXFDWGN2TDNjL3dDTTJnRUFyVHJJbnBySS93Q1kyZ0VBckZPNmdI''@;'; put 'put ''MjYvd0NrMmdFQXRvQ2phbEdqL3dDdzJnRUF2dGlHU2hTRy93QzgyZ0VBdndMOS9Qdjkvd0RJMmdFQXRBajE3KzMxL3dEVTJnRUFxaExyMnRyci93RGcyZ0VBcUNYY3ZMM2Mvd0RzMmdFQXJUcklucHJJL3dENDJnRUFyRk82Z0gyNi93QUUyd0VBdG9DamFsR2ovd0FRMndFQXZMbVBWQ2VQL3dB''@;'; put 'put ''YzJ3RUF2Lzk5UHdCOS93QW8yd0VBOHY5blp3QWYvd0F5MndFQWx2RmhCVEJoL3dBOTJ3RUErZHl5c2hnci93Qkgyd0VBQmFQVzFtQk4vd0JSMndFQURYZjA5S1dDL3dCYjJ3RUFEemI5L2R2SC93Qmwyd0VBamlEdzBlWHcvd0J2MndFQWpWZmVrc1hlL3dCNTJ3RUFqNmZEUTVQRC93Q0Qyd0VB''@;'; put 'put ''bE02c0lXYXMvd0NOMndFQTh2OW5ad0FmL3dDWDJ3RUFsTTZzSVdhcy93Q2kyd0VBbHZGaEJUQmgvd0N0MndFQStkeXlzaGdyL3dDMzJ3RUFCYVBXMW1CTi93REIyd0VBRFhmMDlLV0Mvd0RMMndFQUR6YjkvZHZIL3dEVjJ3RUFBQUQzOS9mMy93RGYyd0VBamlEdzBlWHcvd0RwMndFQWpWZmVr''@;'; put 'put ''c1hlL3dEejJ3RUFqNmZEUTVQRC93RDkyd0VBREpidjc0cGkvd0FHM0FFQUFBRDM5L2YzL3dBUDNBRUFqNERQWjZuUC93QVkzQUVBK1AvS3lnQWcvd0FoM0FFQURYZjA5S1dDL3dBcTNBRUFqVmZla3NYZS93QXozQUVBai9ld0JYR3cvd0E4M0FFQStQL0t5Z0FnL3dCRjNBRUFEWGYwOUtXQy93''@;'; put 'put ''Qk8zQUVBQUFEMzkvZjMvd0JYM0FFQWpWZmVrc1hlL3dCZzNBRUFqL2V3QlhHdy93QnAzQUVBK2R5eXNoZ3Ivd0J5M0FFQURKYnY3NHBpL3dCNzNBRUFEemI5L2R2SC93Q0UzQUVBamlEdzBlWHcvd0NOM0FFQWo0RFBaNm5QL3dDVzNBRUFsTTZzSVdhcy93Q2YzQUVBK2R5eXNoZ3Ivd0NvM0FF''@;'; put 'put ''QURKYnY3NHBpL3dDeDNBRUFEemI5L2R2SC93QzYzQUVBQUFEMzkvZjMvd0REM0FFQWppRHcwZVh3L3dETTNBRUFqNERQWjZuUC93RFYzQUVBbE02c0lXYXMvd0RlM0FFQStkeXlzaGdyL3dEbjNBRUFCYVBXMW1CTi93RHczQUVBRFhmMDlLV0Mvd0Q1M0FFQUR6YjkvZHZIL3dBQzNRRUFqaUR3''@;'; put 'put ''MGVYdy93QUwzUUVBalZmZWtzWGUvd0FVM1FFQWo2ZkRRNVBEL3dBZDNRRUFsTTZzSVdhcy93QW0zUUVBK2R5eXNoZ3Ivd0F2M1FFQUJhUFcxbUJOL3dBNDNRRUFEWGYwOUtXQy93QkIzUUVBRHpiOS9kdkgvd0JLM1FFQUFBRDM5L2YzL3dCVDNRRUFqaUR3MGVYdy93QmMzUUVBalZmZWtzWGUv''@;'; put 'put ''d0JsM1FFQWo2ZkRRNVBEL3dCdTNRRUFsTTZzSVdhcy93QjMzUUVBOHY5blp3QWYvd0NCM1FFQUFBQWFHaG9hL3dDTTNRRUErZHl5c2hnci93Q1czUUVBQmFQVzFtQk4vd0NnM1FFQURYZjA5S1dDL3dDcTNRRUFEemI5L2R2SC93QzAzUUVBQUFEZzRPRGcvd0MrM1FFQUFBQzZ1cnE2L3dESTNR''@;'; put 'put ''RUFBQUNIaDRlSC93RFMzUUVBQUFCTlRVMU4vd0RjM1FFQTh2OW5ad0FmL3dEbTNRRUFBQUJOVFUxTi93RHgzUUVBQUFBYUdob2Evd0Q4M1FFQStkeXlzaGdyL3dBRzNnRUFCYVBXMW1CTi93QVEzZ0VBRFhmMDlLV0Mvd0FhM2dFQUR6YjkvZHZIL3dBazNnRUFBQUQvLy8vLy93QXUzZ0VBQUFE''@;'; put 'put ''ZzRPRGcvd0E0M2dFQUFBQzZ1cnE2L3dCQzNnRUFBQUNIaDRlSC93Qk0zZ0VBREpidjc0cGkvd0JWM2dFQUFBRC8vLy8vL3dCZTNnRUFBQUNabVptWi93Qm4zZ0VBK1AvS3lnQWcvd0J3M2dFQURYZjA5S1dDL3dCNTNnRUFBQUM2dXJxNi93Q0MzZ0VBQUFCQVFFQkEvd0NMM2dFQStQL0t5Z0Fn''@;'; put 'put ''L3dDVTNnRUFEWGYwOUtXQy93Q2QzZ0VBQUFELy8vLy8vd0NtM2dFQUFBQzZ1cnE2L3dDdjNnRUFBQUJBUUVCQS93QzQzZ0VBK2R5eXNoZ3Ivd0RCM2dFQURKYnY3NHBpL3dESzNnRUFEemI5L2R2SC93RFQzZ0VBQUFEZzRPRGcvd0RjM2dFQUFBQ1ptWm1aL3dEbDNnRUFBQUJOVFUxTi93RHUz''@;'; put 'put ''Z0VBK2R5eXNoZ3Ivd0QzM2dFQURKYnY3NHBpL3dBQTN3RUFEemI5L2R2SC93QUozd0VBQUFELy8vLy8vd0FTM3dFQUFBRGc0T0RnL3dBYjN3RUFBQUNabVptWi93QWszd0VBQUFCTlRVMU4vd0F0M3dFQStkeXlzaGdyL3dBMjN3RUFCYVBXMW1CTi93QS8zd0VBRFhmMDlLV0Mvd0JJM3dFQUR6''@;'; put 'put ''YjkvZHZIL3dCUjN3RUFBQURnNE9EZy93QmEzd0VBQUFDNnVycTYvd0JqM3dFQUFBQ0hoNGVIL3dCczN3RUFBQUJOVFUxTi93QjEzd0VBK2R5eXNoZ3Ivd0IrM3dFQUJhUFcxbUJOL3dDSDN3RUFEWGYwOUtXQy93Q1Ezd0VBRHpiOS9kdkgvd0NaM3dFQUFBRC8vLy8vL3dDaTN3RUFBQURnNE9E''@;'; put 'put ''Zy93Q3Izd0VBQUFDNnVycTYvd0MwM3dFQUFBQ0hoNGVIL3dDOTN3RUFBQUJOVFUxTi93REczd0VBQXlEOS9lRGQvd0RQM3dFQTlGejYrcCsxL3dEWTN3RUE0OXpGeFJ1Sy93RGgzd0VBRFJ6Ky91dmkvd0RxM3dFQS9FajcrN1M1L3dEejN3RUE3cFAzOTJpaC93RDgzd0VBNFAydXJnRisvd0FG''@;'; put 'put ''NEFFQURSeisvdXZpL3dBTzRBRUEvRWo3KzdTNS93QVg0QUVBN3BQMzkyaWgvd0FnNEFFQTQ5ekZ4UnVLL3dBcDRBRUExZng2ZWdGMy93QXk0QUVBRFJ6Ky91dmkvd0E3NEFFQUF6ejgvTVhBL3dCRTRBRUE5Rno2K3ArMS93Qk40QUVBN3BQMzkyaWgvd0JXNEFFQTQ5ekZ4UnVLL3dCZjRBRUEx''@;'; put 'put ''Zng2ZWdGMy93Qm80QUVBRFJ6Ky91dmkvd0J4NEFFQUF6ejgvTVhBL3dCNjRBRUE5Rno2K3ArMS93Q0Q0QUVBN3BQMzkyaWgvd0NNNEFFQTVzUGQzVFNYL3dDVjRBRUE0UDJ1cmdGKy93Q2U0QUVBMWZ4NmVnRjMvd0NuNEFFQURnei8vL2Z6L3dDdzRBRUFBeUQ5L2VEZC93QzU0QUVBQXp6OC9N''@;'; put 'put ''WEEvd0RDNEFFQTlGejYrcCsxL3dETDRBRUE3cFAzOTJpaC93RFU0QUVBNXNQZDNUU1gvd0RkNEFFQTRQMnVyZ0YrL3dEbTRBRUExZng2ZWdGMy93RHY0QUVBRGd6Ly8vZnovd0Q0NEFFQUF5RDkvZURkL3dBQjRRRUFBeno4L01YQS93QUs0UUVBOUZ6NitwKzEvd0FUNFFFQTdwUDM5MmloL3dB''@;'; put 'put ''YzRRRUE1c1BkM1RTWC93QWw0UUVBNFAydXJnRisvd0F1NFFFQTFmeDZlZ0YzL3dBMzRRRUF4LzlxU1FCcS93QkE0UUVBOWYrbHBRQW0vd0JNNFFFQXA2dVZNVGFWL3dCWjRRRUFBdERYMXpBbi93Qmw0UUVBQ3JqMDlHMUQvd0J4NFFFQUZKMzkvYTVoL3dCOTRRRUFIbTcrL3VDUS93Q0o0UUVB''@;'; put 'put ''aUJqNDRQUDQvd0NWNFFFQWlrUHBxOW5wL3dDaDRRRUFqM0hSZEszUi93Q3Q0UUVBbDUyMFJYVzAvd0M1NFFFQTlmK2xwUUFtL3dERjRRRUFsNTIwUlhXMC93RFM0UUVBcDZ1Vk1UYVYvd0RmNFFFQUF0RFgxekFuL3dEcjRRRUFDcmowOUcxRC93RDM0UUVBRkozOS9hNWgvd0FENGdFQUhtNysv''@;'; put 'put ''dUNRL3dBUDRnRUFLa0QvLy8rLy93QWI0Z0VBaUJqNDRQUDQvd0FuNGdFQWlrUHBxOW5wL3dBejRnRUFqM0hSZEszUi93QS80Z0VBRGFUOC9JMVovd0JLNGdFQUtrRC8vLysvL3dCVjRnRUFqMWJia2IvYi93Qmc0Z0VBL3VIWDF4a2Mvd0JyNGdFQUZKMzkvYTVoL3dCMjRnRUFpa1BwcTlucC93''@;'; put 'put ''Q0I0Z0VBa2NHMkxIdTIvd0NNNGdFQS91SFgxeGtjL3dDWDRnRUFGSjM5L2E1aC93Q2k0Z0VBS2tELy8vKy8vd0N0NGdFQWlrUHBxOW5wL3dDNDRnRUFrY0cyTEh1Mi93REQ0Z0VBQXREWDF6QW4vd0RPNGdFQURhVDgvSTFaL3dEWjRnRUFIbTcrL3VDUS93RGs0Z0VBaUJqNDRQUDQvd0R2NGdF''@;'; put 'put ''QWoxYmJrYi9iL3dENjRnRUFsNTIwUlhXMC93QUY0d0VBQXREWDF6QW4vd0FRNHdFQURhVDgvSTFaL3dBYjR3RUFIbTcrL3VDUS93QW00d0VBS2tELy8vKy8vd0F4NHdFQWlCajQ0UFA0L3dBODR3RUFqMWJia2IvYi93Qkg0d0VBbDUyMFJYVzAvd0JTNHdFQUF0RFgxekFuL3dCZDR3RUFDcmow''@;'; put 'put ''OUcxRC93Qm80d0VBRkozOS9hNWgvd0J6NHdFQUhtNysvdUNRL3dCKzR3RUFpQmo0NFBQNC93Q0o0d0VBaWtQcHE5bnAvd0NVNHdFQWozSFJkSzNSL3dDZjR3RUFsNTIwUlhXMC93Q3E0d0VBQXREWDF6QW4vd0MxNHdFQUNyajA5RzFEL3dEQTR3RUFGSjM5L2E1aC93REw0d0VBSG03Ky91Q1Ev''@;'; put 'put ''d0RXNHdFQUtrRC8vLysvL3dEaDR3RUFpQmo0NFBQNC93RHM0d0VBaWtQcHE5bnAvd0QzNHdFQWozSFJkSzNSL3dBQzVBRUFsNTIwUlhXMC93QU41QUVBOWYrbHBRQW0vd0FaNUFFQWEvOW9BR2czL3dBbTVBRUFBdERYMXpBbi93QXk1QUVBQ3JqMDlHMUQvd0ErNUFFQUZKMzkvYTVoL3dCSzVB''@;'; put 'put ''RUFIM1ArL3VDTC93Qlc1QUVBTTJydjJlK0wvd0JpNUFFQVBvTFpwdGxxL3dCdTVBRUFVM205WnIxai93QjY1QUVBWjlPWUdwaFEvd0NHNUFFQTlmK2xwUUFtL3dDUzVBRUFaOU9ZR3BoUS93Q2Y1QUVBYS85b0FHZzMvd0NzNUFFQUF0RFgxekFuL3dDNDVBRUFDcmowOUcxRC93REU1QUVBRkoz''@;'; put 'put ''OS9hNWgvd0RRNUFFQUgzUCsvdUNML3dEYzVBRUFLa0QvLy8rLy93RG81QUVBTTJydjJlK0wvd0QwNUFFQVBvTFpwdGxxL3dBQTVRRUFVM205WnIxai93QU01UUVBRGFUOC9JMVovd0FYNVFFQUtrRC8vLysvL3dBaTVRRUFRb2pQa2M5Zy93QXQ1UUVBL3VIWDF4a2Mvd0E0NVFFQUZKMzkvYTVo''@;'; put 'put ''L3dCRDVRRUFQb0xacHRscS93Qk81UUVBWXRLV0dwWkIvd0JaNVFFQS91SFgxeGtjL3dCazVRRUFGSjM5L2E1aC93QnY1UUVBS2tELy8vKy8vd0I2NVFFQVBvTFpwdGxxL3dDRjVRRUFZdEtXR3BaQi93Q1E1UUVBQXREWDF6QW4vd0NiNVFFQURhVDgvSTFaL3dDbTVRRUFIM1ArL3VDTC93Q3g1''@;'; put 'put ''UUVBTTJydjJlK0wvd0M4NVFFQVFvalBrYzlnL3dESDVRRUFaOU9ZR3BoUS93RFM1UUVBQXREWDF6QW4vd0RkNVFFQURhVDgvSTFaL3dEbzVRRUFIM1ArL3VDTC93RHo1UUVBS2tELy8vKy8vd0QrNVFFQU0ycnYyZStML3dBSjVnRUFRb2pQa2M5Zy93QVU1Z0VBWjlPWUdwaFEvd0FmNWdFQUF0''@;'; put 'put ''RFgxekFuL3dBcTVnRUFDcmowOUcxRC93QTE1Z0VBRkozOS9hNWgvd0JBNWdFQUgzUCsvdUNML3dCTDVnRUFNMnJ2MmUrTC93Qlc1Z0VBUG9MWnB0bHEvd0JoNWdFQVUzbTlacjFqL3dCczVnRUFaOU9ZR3BoUS93QjM1Z0VBQXREWDF6QW4vd0NDNWdFQUNyajA5RzFEL3dDTjVnRUFGSjM5L2E1''@;'; put 'put ''aC93Q1k1Z0VBSDNQKy91Q0wvd0NqNWdFQUtrRC8vLysvL3dDdTVnRUFNMnJ2MmUrTC93QzU1Z0VBUG9MWnB0bHEvd0RFNWdFQVUzbTlacjFqL3dEUDVnRUFaOU9ZR3BoUS93RGE1Z0VBRFN6Ky91RFMvd0RqNWdFQUNZdjgvSkp5L3dEczVnRUFBZFBlM2kwbS93RDE1Z0VBRFNYKy91WFovd0Qr''@;'; put 'put ''NWdFQUMyejgvSzZSL3dBSDV3RUFCN1A3KzJwSy93QVE1d0VBL2VETHl4Z2Qvd0FaNXdFQURTWCsvdVhaL3dBaTV3RUFDMno4L0s2Ui93QXI1d0VBQjdQNysycEsvd0EwNXdFQUFkUGUzaTBtL3dBOTV3RUEvZWVscFE4Vi93Qkc1d0VBRFNYKy91WFovd0JQNXdFQURGejgvTHVoL3dCWTV3RUFD''@;'; put 'put ''WXY4L0pKeS93Qmg1d0VBQjdQNysycEsvd0JxNXdFQUFkUGUzaTBtL3dCejV3RUEvZWVscFE4Vi93Qjg1d0VBRFNYKy91WFovd0NGNXdFQURGejgvTHVoL3dDTzV3RUFDWXY4L0pKeS93Q1g1d0VBQjdQNysycEsvd0NnNXdFQUE5RHY3enNzL3dDcDV3RUEvZURMeXhnZC93Q3k1d0VBKy8rWm1R''@;'; put 'put ''QU4vd0M3NXdFQURnLy8vL1h3L3dERTV3RUFEU3orL3VEUy93RE41d0VBREZ6OC9MdWgvd0RXNXdFQUNZdjgvSkp5L3dEZjV3RUFCN1A3KzJwSy93RG81d0VBQTlEdjd6c3Mvd0R4NXdFQS9lREx5eGdkL3dENjV3RUErLytabVFBTi93QUQ2QUVBRGcvLy8vWHcvd0FNNkFFQURTeisvdURTL3dB''@;'; put 'put ''VjZBRUFERno4L0x1aC93QWU2QUVBQ1l2OC9KSnkvd0FuNkFFQUI3UDcrMnBLL3dBdzZBRUFBOUR2N3pzcy93QTU2QUVBL2VETHl4Z2Qvd0JDNkFFQS9lZWxwUThWL3dCTDZBRUErZjluWndBTi93QlU2QUVBL3VIazVCb2Mvd0JkNkFFQWtySzROMzY0L3dCbTZBRUFVNU92VGE5Sy93QnY2QUVB''@;'; put 'put ''L3VIazVCb2Mvd0I0NkFFQWtySzROMzY0L3dDQjZBRUFVNU92VGE5Sy93Q0s2QUVBejRTam1FNmovd0NUNkFFQS91SGs1Qm9jL3dDYzZBRUFrcks0TjM2NC93Q2w2QUVBVTVPdlRhOUsvd0N1NkFFQXo0U2ptRTZqL3dDMzZBRUFGZi8vLzM4QS93REE2QUVBL3VIazVCb2Mvd0RKNkFFQWtySzRO''@;'; put 'put ''MzY0L3dEUzZBRUFVNU92VGE5Sy93RGI2QUVBejRTam1FNmovd0RrNkFFQUZmLy8vMzhBL3dEdDZBRUFLc3ovLy84ei93RDI2QUVBL3VIazVCb2Mvd0QvNkFFQWtySzROMzY0L3dBSTZRRUFVNU92VGE5Sy93QVI2UUVBejRTam1FNmovd0FhNlFFQUZmLy8vMzhBL3dBajZRRUFLc3ovLy84ei93''@;'; put 'put ''QXM2UUVBRDhHbXBsWW8vd0ExNlFFQS91SGs1Qm9jL3dBKzZRRUFrcks0TjM2NC93Qkg2UUVBVTVPdlRhOUsvd0JRNlFFQXo0U2ptRTZqL3dCWjZRRUFGZi8vLzM4QS93Qmk2UUVBS3N6Ly8vOHovd0JyNlFFQUQ4R21wbFlvL3dCMDZRRUE2SG4zOTRHLy93Qjk2UUVBL3VIazVCb2Mvd0NHNlFF''@;'; put 'put ''QWtySzROMzY0L3dDUDZRRUFVNU92VGE5Sy93Q1k2UUVBejRTam1FNmovd0NoNlFFQUZmLy8vMzhBL3dDcTZRRUFLc3ovLy84ei93Q3o2UUVBRDhHbXBsWW8vd0M4NlFFQTZIbjM5NEcvL3dERjZRRUFBQUNabVptWi93RE82UUVBY25qQ1pzS2wvd0RYNlFFQUM1djgvSTFpL3dEZzZRRUFuRTNM''@;'; put 'put ''amFETC93RHA2UUVBY25qQ1pzS2wvd0R5NlFFQUM1djgvSTFpL3dENzZRRUFuRTNMamFETC93QUU2Z0VBNUdibjU0ckQvd0FONmdFQWNuakNac0tsL3dBVzZnRUFDNXY4L0kxaS93QWY2Z0VBbkUzTGphREwvd0FvNmdFQTVHYm41NHJEL3dBeDZnRUFPcHZZcHRoVS93QTY2Z0VBY25qQ1pzS2wv''@;'; put 'put ''d0JENmdFQUM1djgvSTFpL3dCTTZnRUFuRTNMamFETC93QlY2Z0VBNUdibjU0ckQvd0JlNmdFQU9wdllwdGhVL3dCbjZnRUFJdEQvLzlrdi93Qnc2Z0VBY25qQ1pzS2wvd0I1NmdFQUM1djgvSTFpL3dDQzZnRUFuRTNMamFETC93Q0w2Z0VBNUdibjU0ckQvd0NVNmdFQU9wdllwdGhVL3dDZDZn''@;'; put 'put ''RUFJdEQvLzlrdi93Q202Z0VBR1ZybDVjU1Uvd0N2NmdFQWNuakNac0tsL3dDNDZnRUFDNXY4L0kxaS93REI2Z0VBbkUzTGphREwvd0RLNmdFQTVHYm41NHJEL3dEVDZnRUFPcHZZcHRoVS93RGM2Z0VBSXRELy85a3Yvd0RsNmdFQUdWcmw1Y1NVL3dEdTZnRUFBQUN6czdPei93RDM2Z0VBZUZU''@;'; put 'put ''VGpkUEgvd0FCNndFQTAxSzl2SUM5L3dBTTZ3RUFLa3ovLy8rei93QVc2d0VBcnlYYXZycmEvd0FnNndFQUJJdjcrNEJ5L3dBcTZ3RUFrR1RUZ0xIVC93QTA2d0VBRnB6OS9iUmkvd0ErNndFQU9vYmVzOTVwL3dCSTZ3RUE2Uy84L00zbC93QlM2d0VBQUFEWjJkblovd0JjNndFQWVGVFRqZFBI''@;'; put 'put ''L3dCbTZ3RUEwMUs5dklDOS93Qng2d0VBVFNucnpPdkYvd0I4NndFQUtrei8vLyt6L3dDRzZ3RUFyeVhhdnJyYS93Q1E2d0VBQkl2Nys0Qnkvd0NhNndFQWtHVFRnTEhUL3dDazZ3RUFGcHo5L2JSaS93Q3U2d0VBT29iZXM5NXAvd0M0NndFQTZTLzgvTTNsL3dEQzZ3RUFBQURaMmRuWi93RE02''@;'; put 'put ''d0VBZUZUVGpkUEgvd0RXNndFQTAxSzl2SUM5L3dEaDZ3RUFUU25yek92Ri93RHM2d0VBSlpELy8rMXYvd0QzNndFQUtrei8vLyt6L3dBQjdBRUFyeVhhdnJyYS93QUw3QUVBQkl2Nys0Qnkvd0FWN0FFQWtHVFRnTEhUL3dBZjdBRUFGcHo5L2JSaS93QXA3QUVBT29iZXM5NXAvd0F6N0FFQTZT''@;'; put 'put ''LzgvTTNsL3dBOTdBRUFBQURaMmRuWi93Qkg3QUVBZUZUVGpkUEgvd0JRN0FFQUtrei8vLyt6L3dCWjdBRUFyeVhhdnJyYS93Qmk3QUVBZUZUVGpkUEgvd0JyN0FFQUtrei8vLyt6L3dCMDdBRUFyeVhhdnJyYS93Qjk3QUVBQkl2Nys0Qnkvd0NHN0FFQWVGVFRqZFBIL3dDUDdBRUFLa3ovLy8r''@;'; put 'put ''ei93Q1k3QUVBcnlYYXZycmEvd0NoN0FFQUJJdjcrNEJ5L3dDcTdBRUFrR1RUZ0xIVC93Q3o3QUVBZUZUVGpkUEgvd0M4N0FFQUtrei8vLyt6L3dERjdBRUFyeVhhdnJyYS93RE83QUVBQkl2Nys0Qnkvd0RYN0FFQWtHVFRnTEhUL3dEZzdBRUFGcHo5L2JSaS93RHA3QUVBZUZUVGpkUEgvd0R5''@;'; put 'put ''N0FFQUtrei8vLyt6L3dENzdBRUFyeVhhdnJyYS93QUU3UUVBQkl2Nys0Qnkvd0FON1FFQWtHVFRnTEhUL3dBVzdRRUFGcHo5L2JSaS93QWY3UUVBT29iZXM5NXAvd0FvN1FFQWVGVFRqZFBIL3dBeDdRRUFLa3ovLy8rei93QTY3UUVBcnlYYXZycmEvd0JEN1FFQUJJdjcrNEJ5L3dCTTdRRUFr''@;'; put 'put ''R1RUZ0xIVC93QlY3UUVBRnB6OS9iUmkvd0JlN1FFQU9vYmVzOTVwL3dCbjdRRUE2Uy84L00zbC93Qnc3UUVBZUZUVGpkUEgvd0I1N1FFQUtrei8vLyt6L3dDQzdRRUFyeVhhdnJyYS93Q0w3UUVBQkl2Nys0Qnkvd0NVN1FFQWtHVFRnTEhUL3dDZDdRRUFGcHo5L2JSaS93Q203UUVBT29iZXM5''@;'; put 'put ''NXAvd0N2N1FFQTZTLzgvTTNsL3dDNDdRRUFBQURaMmRuWi93REI3UUVBN2YyZW5nRkMvd0RQN1FFQXNZS2lYaytpL3dEZTdRRUErclRWMVQ1UC93RHM3UUVBQ3JqMDlHMUQvd0Q2N1FFQUZKMzkvYTVoL3dBSTdnRUFIM1ArL3VDTC93QVc3Z0VBTVdEMTV2V1kvd0FrN2dFQVQwSGRxOTJrL3dB''@;'; put 'put ''eTdnRUFjbmpDWnNLbC93QkE3Z0VBajd1OU1vaTkvd0JPN2dFQTdmMmVuZ0ZDL3dCYzdnRUFqN3U5TW9pOS93QnI3Z0VBc1lLaVhrK2kvd0I2N2dFQStyVFYxVDVQL3dDSTdnRUFDcmowOUcxRC93Q1c3Z0VBRkozOS9hNWgvd0NrN2dFQUgzUCsvdUNML3dDeTdnRUFLa0QvLy8rLy93REE3Z0VB''@;'; put 'put ''TVdEMTV2V1kvd0RPN2dFQVQwSGRxOTJrL3dEYzdnRUFjbmpDWnNLbC93RHE3Z0VBRGFUOC9JMVovd0QzN2dFQUtrRC8vLysvL3dBRTd3RUFVVTNWbWRXVS93QVI3d0VBL3VIWDF4a2Mvd0FlN3dFQUZKMzkvYTVoL3dBcjd3RUFUMEhkcTkyay93QTQ3d0VBajhTNks0TzYvd0JGN3dFQS91SFgx''@;'; put 'put ''eGtjL3dCUzd3RUFGSjM5L2E1aC93QmY3d0VBS2tELy8vKy8vd0JzN3dFQVQwSGRxOTJrL3dCNTd3RUFqOFM2SzRPNi93Q0c3d0VBK3JUVjFUNVAvd0NUN3dFQURhVDgvSTFaL3dDZzd3RUFIM1ArL3VDTC93Q3Q3d0VBTVdEMTV2V1kvd0M2N3dFQVVVM1ZtZFdVL3dESDd3RUFqN3U5TW9pOS93''@;'; put 'put ''RFU3d0VBK3JUVjFUNVAvd0RoN3dFQURhVDgvSTFaL3dEdTd3RUFIM1ArL3VDTC93RDc3d0VBS2tELy8vKy8vd0FJOEFFQU1XRDE1dldZL3dBVjhBRUFVVTNWbWRXVS93QWk4QUVBajd1OU1vaTkvd0F2OEFFQStyVFYxVDVQL3dBODhBRUFDcmowOUcxRC93Qko4QUVBRkozOS9hNWgvd0JXOEFF''@;'; put 'put ''QUgzUCsvdUNML3dCajhBRUFNV0QxNXZXWS93Qnc4QUVBVDBIZHE5Mmsvd0I5OEFFQWNuakNac0tsL3dDSzhBRUFqN3U5TW9pOS93Q1g4QUVBK3JUVjFUNVAvd0NrOEFFQUNyajA5RzFEL3dDeDhBRUFGSjM5L2E1aC93Qys4QUVBSDNQKy91Q0wvd0RMOEFFQUtrRC8vLysvL3dEWThBRUFNV0Qx''@;'; put 'put ''NXZXWS93RGw4QUVBVDBIZHE5Mmsvd0R5OEFFQWNuakNac0tsL3dELzhBRUFqN3U5TW9pOS93QU04UUVBa3cvLzhQai8vd0FiOFFFQUdDUDYrdXZYL3dBdDhRRUFmLy8vQVAvLy93QTM4UUVBY1lEL2YvL1Uvd0JIOFFFQWZ3Ly84UC8vL3dCUzhRRUFLaHIxOWZYYy93QmQ4UUVBRnpyLy8rVEUv''@;'; put 'put ''d0JwOFFFQUFBQUFBQUFBL3dCMDhRRUFHVEgvLyt2Ti93Q0k4UUVBcXYvL0FBRC8vd0NTOFFFQXdNN2lpaXZpL3dDaThRRUFBTDZscFNvcS93Q3Q4UUVBRjJQZTNyaUgvd0M4OFFFQWdHZWdYNTZnL3dETDhRRUFQLy8vZi84QS93RGI4UUVBRWRyUzBta2Uvd0RxOFFFQUM2Ly8vMzlRL3dEMThR''@;'; put 'put ''RUFtcFB0WkpYdC93QUo4Z0VBSVNMLy8vamMvd0FYOGdFQTl1ZmMzQlE4L3dBazhnRUFmLy8vQVAvLy93QXU4Z0VBcXYrTEFBQ0wvd0E4OGdFQWYvK0xBSXVML3dCSzhnRUFIdSs0dUlZTC93QmQ4Z0VBQUFDcHFhbXAvd0JyOGdFQVZmOWtBR1FBL3dCNjhnRUFBQUNwcWFtcC93Q0k4Z0VBSjI2''@;'; put 'put ''OXZiZHIvd0NYOGdFQTFQK0xpd0NML3dDbzhnRUFPbzVyVldzdi93Qzg4Z0VBRi8vLy80d0Evd0RNOGdFQXhzRE1tVExNL3dEYzhnRUFBUCtMaXdBQS93RHA4Z0VBQ25ucDZaWjYvd0Q1OGdFQVZUMjhqN3lQL3dBTDh3RUFyNCtMU0QyTC93QWU4d0VBZjJkUEwwOVAvd0F4OHdFQWYyZFBMMDlQ''@;'; put 'put ''L3dCRTh3RUFnUC9SQU03Ui93Qlg4d0VBeC8vVGxBRFQvd0JuOHdFQTZPdi8veFNUL3dCMTh3RUFpdi8vQUwvLy93Q0c4d0VBQUFCcGFXbHAvd0NUOHdFQUFBQnBhV2xwL3dDZzh3RUFsT0gvSHBELy93Q3c4d0VBQU02eXNpSWkvd0MvOHdFQUhBLy8vL3J3L3dEUTh3RUFWY0NMSW9zaS93RGg4''@;'; put 'put ''d0VBMVAvLy93RC8vd0R1OHdFQUFBRGMzTnpjL3dEOTh3RUFxZ2YvK1BqLy93QU45QUVBSS8vLy85Y0Evd0FYOUFFQUh0bmEycVVnL3dBbTlBRUFBQUNBZ0lDQS93QXc5QUVBVmYrQUFJQUEvd0E3OUFFQU85RC9yZjh2L3dCTTlBRUFBQUNBZ0lDQS93Qlc5QUVBVlEvLzhQL3cvd0JrOUFFQTZa''@;'; put 'put ''Yi8vMm0wL3dCeDlBRUFBSXpOelZ4Yy93Q0E5QUVBd3YrQ1N3Q0Mvd0NNOUFFQUtnLy8vLy93L3dDWDlBRUFKbXJ3OE9hTS93Q2k5QUVBcWhUNjV1YjYvd0N3OUFFQThBLy8vL0QxL3dERDlBRUFRUC84ZlB3QS93RFM5QUVBSmpILy8vck4vd0RrOUFFQWlUL21yZGptL3dEejlBRUFBSGZ3OElD''@;'; put 'put ''QS93QUQ5UUVBZngvLzRQLy8vd0FTOVFFQUtpajYrdnJTL3dBczlRRUFBQURUMDlQVC93QTc5UUVBVldUdWtPNlEvd0JMOVFFQUFBRFQwOVBUL3dCYTlRRUErRW4vLzdiQi93QnA5UUVBRElULy82QjYvd0I2OVFFQWZkR3lJTEtxL3dDTjlRRUFqM1g2aDg3Ni93Q2Y5UUVBbERpWmQ0aVovd0N6''@;'; put 'put ''OVFFQWxEaVpkNGlaL3dESDlRRUFselRlc01UZS93RGI5UUVBS2gvLy8vL2cvd0RzOVFFQVZmLy9BUDhBL3dEMjlRRUFWY0ROTXMweS93QUY5Z0VBRlJUNit2RG0vd0FROWdFQTFQLy8vd0QvL3dBZDlnRUFBUCtBZ0FBQS93QXA5Z0VBY1lETlpzMnEvd0EvOWdFQXF2L05BQUROL3dCUDlnRUF6''@;'; put 'put ''SmpUdWxYVC93Qmg5Z0VBdDN6YmszRGIvd0J6OWdFQVo2bXpQTE54L3dDSDlnRUFzSS91ZTJqdS93Q2M5Z0VBYi8vNkFQcWEvd0N6OWdFQWZhZlJTTkhNL3dESTlnRUE1T1RIeHhXRi93RGQ5Z0VBcXNad0dSbHcvd0R2OWdFQWFnbi85Zi82L3dEKzlnRUFCQjcvLytUaC93QU45d0VBR2tuLy8r''@;'; put 'put ''UzEvd0FiOXdFQUdWSC8vOTZ0L3dBczl3RUFxditBQUFDQS93QTI5d0VBR3hmOS9mWG0vd0JEOXdFQUt2K0FnSUFBL3dCTzl3RUFPTUNPYTQ0ai93QmQ5d0VBRy8vLy82VUEvd0JwOXdFQUMvLy8vMFVBL3dCNDl3RUExbnZhMm5EVy93Q0U5d0VBSmtqdTd1aXEvd0NYOXdFQVZXVDdtUHVZL3dD''@;'; put 'put ''bTl3RUFmMFB1cis3dS93QzU5d0VBOFh6YjIzQ1Qvd0RNOXdFQUdpbi8vKy9WL3dEYzl3RUFGRWIvLzlxNS93RHI5d0VBRkxETnpZVS8vd0QxOXdFQTl6Ly8vOERML3dELzl3RUExRWJkM2FEZC93QUorQUVBaER2bXNPRG0vd0FaK0FFQTFQK0FnQUNBL3dBbCtBRUFBUC8vL3dBQS93QXUrQUVB''@;'; put 'put ''QUQyOHZJK1Avd0E5K0FFQW43WGhRV25oL3dCTStBRUFFZHlMaTBVVC93QmQrQUVBQklyNitvQnkvd0JwK0FFQUU1cjA5S1JnL3dCNStBRUFaNnFMTG90WC93Q0grQUVBRVJELy8vWHUvd0NWK0FFQURiZWdvRkl0L3dDaCtBRUFBQURBd01EQS93Q3QrQUVBaTJ6cmg4N3Ivd0M2K0FFQXI0L05h''@;'; put 'put ''bHJOL3dESitBRUFsRGlRY0lDUS93RFkrQUVBbERpUWNJQ1Evd0RuK0FFQUFBWC8vL3I2L3dEeCtBRUFhdi8vQVA5Ly93QUMrUUVBa3B1MFJvSzAvd0FSK1FFQUdGVFMwclNNL3dBYStRRUFmLytBQUlDQS93QWsrUUVBMUIzWTJML1kvd0F4K1FFQUJyai8vMk5IL3dBOStRRUFlN2JnUU9EUS93''@;'; put 'put ''Qk0rUUVBMUhQdTdvTHUvd0JZK1FFQUcwVDE5ZDZ6L3dCaitRRUFBQUQvLy8vLy93QnUrUUVBQUFEMTlmWDEvd0IrK1FFQUt2Ly8vLzhBL3dDSytRRUFPTURObXMweS93Q2IrUUVBTFVQODkveTUvd0NrK1FFQVJGdmRyZDJPL3dDdCtRRUFZcktqTWFOVS93QzIrUUVBS2pMLy8vL00vd0MvK1FF''@;'; put 'put ''QVBsWG13dWFaL3dESStRRUFWV1RHZU1aNS93RFIrUUVBWTd1RUk0UkQvd0RhK1FFQUtqTC8vLy9NL3dEaitRRUFQbFhtd3VhWi93RHMrUUVBVldUR2VNWjUvd0QxK1FFQVlyS2pNYU5VL3dEKytRRUFhLzlvQUdnMy93QUgrZ0VBS2pMLy8vL00vd0FRK2dFQU4xSHcyZkNqL3dBWitnRUFSRnZk''@;'; put 'put ''cmQyTy93QWkrZ0VBVldUR2VNWjUvd0FyK2dFQVlyS2pNYU5VL3dBMCtnRUFhLzlvQUdnMy93QTkrZ0VBS2pMLy8vL00vd0JHK2dFQU4xSHcyZkNqL3dCUCtnRUFSRnZkcmQyTy93QlkrZ0VBVldUR2VNWjUvd0JoK2dFQVlKNnJRYXRkL3dCcStnRUFZN3VFSTRSRC93QnorZ0VBYlA5YUFGb3kv''@;'; put 'put ''d0I4K2dFQUtobi8vLy9sL3dDRitnRUFMVVA4OS95NS93Q08rZ0VBTjFIdzJmQ2ovd0NYK2dFQVJGdmRyZDJPL3dDZytnRUFWV1RHZU1aNS93Q3ArZ0VBWUo2clFhdGQvd0N5K2dFQVk3dUVJNFJEL3dDNytnRUFiUDlhQUZveS93REUrZ0VBS2huLy8vL2wvd0ROK2dFQUxVUDg5L3k1L3dEVytn''@;'; put 'put ''RUFOMUh3MmZDai93RGYrZ0VBUkZ2ZHJkMk8vd0RvK2dFQVZXVEdlTVo1L3dEeCtnRUFZSjZyUWF0ZC93RDYrZ0VBWTd1RUk0UkQvd0FEK3dFQWEvOW9BR2czL3dBTSt3RUFidjlGQUVVcC93QVYrd0VBTVVuNDdmaXgvd0FnK3dFQWRXSE5mODI3L3dBcit3RUFrTUs0TEgrNC93QTIrd0VBS2pM''@;'; put 'put ''Ly8vL00vd0JCK3dFQVkwTGFvZHEwL3dCTSt3RUFoS3JFUWJiRS93Qlgrd0VBbHN1b0lsNm8vd0JpK3dFQUtqTC8vLy9NL3dCdCt3RUFZMExhb2RxMC93QjQrd0VBaEtyRVFiYkUvd0NEK3dFQWtNSzRMSCs0L3dDTyt3RUFwTCtVSlRTVS93Q1ord0VBS2pMLy8vL00vd0NrK3dFQVJUcnB4K20w''@;'; put 'put ''L3dDdit3RUFkV0hOZjgyNy93QzYrd0VBaEtyRVFiYkUvd0RGK3dFQWtNSzRMSCs0L3dEUSt3RUFwTCtVSlRTVS93RGIrd0VBS2pMLy8vL00vd0RtK3dFQVJUcnB4K20wL3dEeCt3RUFkV0hOZjgyNy93RDgrd0VBaEtyRVFiYkUvd0FIL0FFQWk5akFIWkhBL3dBUy9BRUFsc3VvSWw2by93QWQv''@;'; put 'put ''QUVBbnVlRURDeUUvd0FvL0FFQUtpYi8vLy9aL3dBei9BRUFNVW40N2ZpeC93QSsvQUVBUlRycHgrbTAvd0JKL0FFQWRXSE5mODI3L3dCVS9BRUFoS3JFUWJiRS93QmYvQUVBaTlqQUhaSEEvd0JxL0FFQWxzdW9JbDZvL3dCMS9BRUFudWVFREN5RS93Q0EvQUVBS2liLy8vL1ovd0NML0FFQU1V''@;'; put 'put ''bjQ3Zml4L3dDVy9BRUFSVHJweCttMC93Q2gvQUVBZFdITmY4Mjcvd0NzL0FFQWhLckVRYmJFL3dDMy9BRUFpOWpBSFpIQS93REMvQUVBbHN1b0lsNm8vd0ROL0FFQXBMK1VKVFNVL3dEWS9BRUFudWRZQ0IxWS93RGovQUVBSlVMLy8vZTgvd0R1L0FFQUhLLysvc1JQL3dENS9BRUFFTzdaMlY4''@;'; put 'put ''Ty93QUUvUUVBS2lyLy8vL1Uvd0FQL1FFQUhIRCsvdG1PL3dBYS9RRUFGdFgrL3BrcC93QWwvUUVBRC96TXpFd0Mvd0F3L1FFQUtpci8vLy9VL3dBNy9RRUFISEQrL3RtTy93QkcvUUVBRnRYKy9wa3Avd0JSL1FFQUVPN1oyVjhPL3dCYy9RRUFEZmlabVRRRS93Qm4vUUVBS2lyLy8vL1Uvd0J5''@;'; put 'put ''L1FFQUgyMysvdU9SL3dCOS9RRUFISy8rL3NSUC93Q0kvUUVBRnRYKy9wa3Avd0NUL1FFQUVPN1oyVjhPL3dDZS9RRUFEZmlabVRRRS93Q3AvUUVBS2lyLy8vL1Uvd0MwL1FFQUgyMysvdU9SL3dDLy9RRUFISy8rL3NSUC93REsvUUVBRnRYKy9wa3Avd0RWL1FFQUV1bnM3SEFVL3dEZy9RRUFE''@;'; put 'put ''L3pNekV3Qy93RHIvUUVBRFBlTWpDMEUvd0QyL1FFQUtobi8vLy9sL3dBQi9nRUFKVUwvLy9lOC93QU0vZ0VBSDIzKy91T1Ivd0FYL2dFQUhLLysvc1JQL3dBaS9nRUFGdFgrL3BrcC93QXQvZ0VBRXVuczdIQVUvd0E0L2dFQUQvek16RXdDL3dCRC9nRUFEUGVNakMwRS93Qk8vZ0VBS2huLy8v''@;'; put 'put ''L2wvd0JaL2dFQUpVTC8vL2U4L3dCay9nRUFIMjMrL3VPUi93QnYvZ0VBSEsvKy9zUlAvd0I2L2dFQUZ0WCsvcGtwL3dDRi9nRUFFdW5zN0hBVS93Q1EvZ0VBRC96TXpFd0Mvd0NiL2dFQURmaVptVFFFL3dDbS9nRUFEZkJtWmlVRy93Q3gvZ0VBSWwvLy8rMmcvd0M4L2dFQUdMTCsvckpNL3dE''@;'; put 'put ''SC9nRUFCZDN3OERzZy93RFMvZ0VBS2szLy8vK3kvd0RkL2dFQUhhTCsvc3hjL3dEby9nRUFFY0w5L1kwOC93RHovZ0VBL3VIajR4b2Mvd0QrL2dFQUtrMy8vLyt5L3dBSi93RUFIYUwrL3N4Yy93QVUvd0VBRWNMOS9ZMDgvd0FmL3dFQUJkM3c4RHNnL3dBcS93RUE5dis5dlFBbS93QTEvd0VB''@;'; put 'put ''S2szLy8vK3kvd0JBL3dFQUhvaisvdGwyL3dCTC93RUFHTEwrL3JKTS93Qlcvd0VBRWNMOS9ZMDgvd0JoL3dFQUJkM3c4RHNnL3dCcy93RUE5dis5dlFBbS93QjMvd0VBS2szLy8vK3kvd0NDL3dFQUhvaisvdGwyL3dDTi93RUFHTEwrL3JKTS93Q1kvd0VBRWNMOS9ZMDgvd0NqL3dFQUI5VDgv''@;'; put 'put ''RTRxL3dDdS93RUEvdUhqNHhvYy93QzUvd0VBOWYreHNRQW0vd0RFL3dFQUtqTC8vLy9NL3dEUC93RUFJbC8vLysyZy93RGEvd0VBSG9qKy90bDIvd0RsL3dFQUdMTCsvckpNL3dEdy93RUFFY0w5L1kwOC93RDcvd0VBQjlUOC9FNHEvd0FHQUFJQS91SGo0eG9jL3dBUkFBSUE5Zit4c1FBbS93''@;'; put 'put ''QWNBQUlBS2pMLy8vL00vd0FuQUFJQUlsLy8vKzJnL3dBeUFBSUFIb2orL3RsMi93QTlBQUlBR0xMKy9ySk0vd0JJQUFJQUVjTDkvWTA4L3dCVEFBSUFCOVQ4L0U0cS93QmVBQUlBL3VIajR4b2Mvd0JwQUFJQTl2Kzl2UUFtL3dCMEFBSUE4ditBZ0FBbS93Qi9BQUlBa3cvLzhQai8vd0NKQUFJ''@;'; put 'put ''QUdDUDYrdXZYL3dDV0FBSUFGeVQvLysvYi93Q2tBQUlBRnlUdTd0L00vd0N5QUFJQUZ5VE56Y0N3L3dEQUFBSUFHQ0tMaTRONC93RE9BQUlBY1lEL2YvL1Uvd0RaQUFJQWNZRC9mLy9VL3dEbEFBSUFjWUR1ZHU3Ry93RHhBQUlBY1lETlpzMnEvd0Q5QUFJQWNZQ0xSWXQwL3dBSkFRSUFmdy8v''@;'; put 'put ''OFAvLy93QVBBUUlBZncvLzhQLy8vd0FXQVFJQWZ3L3U0Tzd1L3dBZEFRSUFmdzdOd2MzTi93QWtBUUlBZnc2TGc0dUwvd0FyQVFJQUtocjE5ZlhjL3dBeEFRSUFGenIvLytURS93QTRBUUlBRnpyLy8rVEUvd0JBQVFJQUZ6cnU3dFczL3dCSUFRSUFGanJOemJlZS93QlFBUUlBRnpxTGkzMXIv''@;'; put 'put ''d0JpR0FJQUFBQUFBQUFBL3dCWUFRSUFHVEgvLyt2Ti93Qm5BUUlBcXYvL0FBRC8vd0JzQVFJQXF2Ly9BQUQvL3dCeUFRSUFxdi91QUFEdS93QjRBUUlBcXYvTkFBRE4vd0IrQVFJQXF2K0xBQUNML3dDRUFRSUF3TTdpaWl2aS93Q1BBUUlBQUw2bHBTb3Evd0NWQVFJQUFMLy8vMEJBL3dDY0FR''@;'; put 'put ''SUFBTC91N2pzNy93Q2pBUUlBQUwvTnpUTXovd0NxQVFJQUFMNkxpeU1qL3dDeEFRSUFGMlBlM3JpSC93QzdBUUlBRjJULy85T2Ivd0RHQVFJQUYyUHU3c1dSL3dEUkFRSUFGMlBOemFwOS93RGNBUUlBRjJPTGkzTlYvd0RuQVFJQWdHZWdYNTZnL3dEeEFRSUFnMmYvbVBYLy93RDhBUUlBZzJi''@;'; put 'put ''dWp1WHUvd0FIQWdJQWcyZk5lc1hOL3dBU0FnSUFnMmFMVTRhTC93QWRBZ0lBUC8vL2YvOEEvd0FvQWdJQVAvLy9mLzhBL3dBMEFnSUFQLy91ZHU0QS93QkFBZ0lBUC8vTlpzMEEvd0JNQWdJQVAvK0xSWXNBL3dCWUFnSUFFZHJTMG1rZS93QmlBZ0lBRWR2Ly8zOGsvd0J0QWdJQUVkdnU3bllo''@;'; put 'put ''L3dCNEFnSUFFZHJOeldZZC93Q0RBZ0lBRWR5TGkwVVQvd0NPQWdJQUM2Ly8vMzlRL3dDVUFnSUFCNm4vLzNKVy93Q2JBZ0lBQnFudTdtcFEvd0NpQWdJQUJxbk56VnRGL3dDcEFnSUFCcWlMaXo0di93Q3dBZ0lBbXBQdFpKWHQvd0MvQWdJQUlTTC8vL2pjL3dESUFnSUFJU0wvLy9qYy93RFNB''@;'; put 'put ''Z0lBSWlQdTd1ak4vd0RjQWdJQUlpTE56Y2l4L3dEbUFnSUFJeUtMaTRoNC93RHdBZ0lBOXVmYzNCUTgvd0Q0QWdJQWYvLy9BUC8vL3dEOUFnSUFmLy8vQVAvLy93QURBd0lBZi8vdUFPN3Uvd0FKQXdJQWYvL05BTTNOL3dBUEF3SUFmLytMQUl1TC93QVZBd0lBSHUrNHVJWUwvd0FqQXdJQUh2''@;'; put 'put ''RC8vN2tQL3dBeUF3SUFIdkR1N3EwTy93QkJBd0lBSHZETnpaVU0vd0JRQXdJQUh2Q0xpMlVJL3dCZkF3SUFWZjlrQUdRQS93QnBBd0lBSjI2OXZiZHIvd0J6QXdJQU9vNXJWV3N2L3dDQ0F3SUFPby8veXY5dy93Q1NBd0lBT28vdXZPNW8vd0NpQXdJQU9vL05vczFhL3dDeUF3SUFPbytMYm9z''@;'; put 'put ''OS93RENBd0lBRi8vLy80d0Evd0ROQXdJQUZmLy8vMzhBL3dEWkF3SUFGZi91N25ZQS93RGxBd0lBRmYvTnpXWUEvd0R4QXdJQUZmK0xpMFVBL3dEOUF3SUF4c0RNbVRMTS93QUlCQUlBeHNIL3Z6Ny8vd0FVQkFJQXhzRHVzanJ1L3dBZ0JBSUF4c0RObWpMTi93QXNCQUlBeHNDTGFDS0wvd0E0''@;'; put 'put ''QkFJQUNubnA2Wlo2L3dCREJBSUFWVDI4ajd5UC93QlFCQUlBVlQ3L3dmL0Ivd0JlQkFJQVZUN3V0TzYwL3dCc0JBSUFWVDdObTgyYi93QjZCQUlBVlQ2TGFZdHAvd0NJQkFJQXI0K0xTRDJML3dDV0JBSUFmMmRQTDA5UC93Q2tCQUlBZjJqL2wvLy8vd0N6QkFJQWYyZnVqZTd1L3dEQ0JBSUFm''@;'; put 'put ''MmpOZWMzTi93RFJCQUlBZjJpTFVvdUwvd0RnQkFJQWYyZFBMMDlQL3dEdUJBSUFnUC9SQU03Ui93RDhCQUlBeC8vVGxBRFQvd0FIQlFJQTZPdi8veFNUL3dBUUJRSUE2T3YvL3hTVC93QWFCUUlBNk92dTdoS0ovd0FrQlFJQTZPdk56UkIyL3dBdUJRSUE1K3lMaXdwUS93QTRCUUlBaXYvL0FM''@;'; put 'put ''Ly8vd0JFQlFJQWl2Ly9BTC8vL3dCUkJRSUFpdi91QUxMdS93QmVCUUlBaXYvTkFKck4vd0JyQlFJQWl2K0xBR2lML3dCNEJRSUFBQUJwYVdscC93Q0FCUUlBQUFCcGFXbHAvd0NJQlFJQWxPSC9IcEQvL3dDVEJRSUFsT0gvSHBELy93Q2ZCUUlBbE9IdUhJYnUvd0NyQlFJQWxPSE5HSFROL3dD''@;'; put 'put ''M0JRSUFsT0dMRUU2TC93RERCUUlBQU02eXNpSWkvd0ROQlFJQUFNLy8vekF3L3dEWUJRSUFBTS91N2l3cy93RGpCUUlBQU0vTnpTWW0vd0R1QlFJQUFNK0xpeG9hL3dENUJRSUFIQS8vLy9ydy93QUZCZ0lBVmNDTElvc2kvd0FSQmdJQUFBRGMzTnpjL3dBYkJnSUFxZ2YvK1BqLy93QW1CZ0lB''@;'; put 'put ''SS8vLy85Y0Evd0FyQmdJQUkvLy8vOWNBL3dBeEJnSUFJLy91N3NrQS93QTNCZ0lBSS8vTnphMEEvd0E5QmdJQUkvK0xpM1VBL3dCREJnSUFIdG5hMnFVZy93Qk5CZ0lBSHRyLy84RWwvd0JZQmdJQUh0cnU3clFpL3dCakJnSUFIdHJOelpzZC93QnVCZ0lBSHRxTGkya1Uvd0I1QmdJQUFBREF3''@;'; put 'put ''TURBL3dCK0JnSUFBQUFBQUFBQS93Q0VCZ0lBQUFBREF3TUQvd0NLQmdJQUFBQWFHaG9hL3dDUkJnSUFBQUQvLy8vLy93Q1pCZ0lBQUFBY0hCd2Mvd0NnQmdJQUFBQWZIeDhmL3dDbkJnSUFBQUFoSVNFaC93Q3VCZ0lBQUFBa0pDUWsvd0MxQmdJQUFBQW1KaVltL3dDOEJnSUFBQUFwS1NrcC93''@;'; put 'put ''RERCZ0lBQUFBckt5c3Ivd0RLQmdJQUFBQXVMaTR1L3dEUkJnSUFBQUF3TURBdy93RFlCZ0lBQUFBRkJRVUYvd0RlQmdJQUFBQXpNek16L3dEbEJnSUFBQUEyTmpZMi93RHNCZ0lBQUFBNE9EZzQvd0R6QmdJQUFBQTdPenM3L3dENkJnSUFBQUE5UFQwOS93QUJCd0lBQUFCQVFFQkEvd0FJQndJ''@;'; put 'put ''QUFBQkNRa0pDL3dBUEJ3SUFBQUJGUlVWRi93QVdCd0lBQUFCSFIwZEgvd0FkQndJQUFBQktTa3BLL3dBa0J3SUFBQUFJQ0FnSS93QXFCd0lBQUFCTlRVMU4vd0F4QndJQUFBQlBUMDlQL3dBNEJ3SUFBQUJTVWxKUy93QS9Cd0lBQUFCVVZGUlUvd0JHQndJQUFBQlhWMWRYL3dCTkJ3SUFBQUJa''@;'; put 'put ''V1ZsWi93QlVCd0lBQUFCY1hGeGMvd0JiQndJQUFBQmVYbDVlL3dCaUJ3SUFBQUJoWVdGaC93QnBCd0lBQUFCalkyTmovd0J3QndJQUFBQUtDZ29LL3dCMkJ3SUFBQUJtWm1abS93QjlCd0lBQUFCcGFXbHAvd0NFQndJQUFBQnJhMnRyL3dDTEJ3SUFBQUJ1Ym01dS93Q1NCd0lBQUFCd2NIQncv''@;'; put 'put ''d0NaQndJQUFBQnpjM056L3dDZ0J3SUFBQUIxZFhWMS93Q25Cd0lBQUFCNGVIaDQvd0N1QndJQUFBQjZlbnA2L3dDMUJ3SUFBQUI5ZlgxOS93QzhCd0lBQUFBTkRRME4vd0RDQndJQUFBQi9mMzkvL3dESkJ3SUFBQUNDZ29LQy93RFFCd0lBQUFDRmhZV0Yvd0RYQndJQUFBQ0hoNGVIL3dEZUJ3''@;'; put 'put ''SUFBQUNLaW9xSy93RGxCd0lBQUFDTWpJeU0vd0RzQndJQUFBQ1BqNCtQL3dEekJ3SUFBQUNSa1pHUi93RDZCd0lBQUFDVWxKU1Uvd0FCQ0FJQUFBQ1dscGFXL3dBSUNBSUFBQUFQRHc4UC93QU9DQUlBQUFDWm1abVovd0FWQ0FJQUFBQ2NuSnljL3dBY0NBSUFBQUNlbnA2ZS93QWpDQUlBQUFD''@;'; put 'put ''aG9hR2gvd0FxQ0FJQUFBQ2pvNk9qL3dBeENBSUFBQUNtcHFhbS93QTRDQUlBQUFDb3FLaW8vd0EvQ0FJQUFBQ3JxNnVyL3dCR0NBSUFBQUN0cmEydC93Qk5DQUlBQUFDd3NMQ3cvd0JVQ0FJQUFBQVNFaElTL3dCYUNBSUFBQUN6czdPei93QmhDQUlBQUFDMXRiVzEvd0JvQ0FJQUFBQzR1TGk0''@;'; put 'put ''L3dCdkNBSUFBQUM2dXJxNi93QjJDQUlBQUFDOXZiMjkvd0I5Q0FJQUFBQy92NysvL3dDRUNBSUFBQURDd3NMQy93Q0xDQUlBQUFERXhNVEUvd0NTQ0FJQUFBREh4OGZIL3dDWkNBSUFBQURKeWNuSi93Q2dDQUlBQUFBVUZCUVUvd0NtQ0FJQUFBRE16TXpNL3dDdENBSUFBQURQejgvUC93QzBD''@;'; put 'put ''QUlBQUFEUjBkSFIvd0M3Q0FJQUFBRFUxTlRVL3dEQ0NBSUFBQURXMXRiVy93REpDQUlBQUFEWjJkblovd0RRQ0FJQUFBRGIyOXZiL3dEWENBSUFBQURlM3Q3ZS93RGVDQUlBQUFEZzRPRGcvd0RsQ0FJQUFBRGo0K1BqL3dEc0NBSUFBQUFYRnhjWC93RHlDQUlBQUFEbDVlWGwvd0Q1Q0FJQUFB''@;'; put 'put ''RG82T2pvL3dBQUNRSUFBQURyNit2ci93QUhDUUlBQUFEdDdlM3Qvd0FPQ1FJQUFBRHc4UER3L3dBVkNRSUFBQUR5OHZMeS93QWNDUUlBQUFEMTlmWDEvd0FqQ1FJQUFBRDM5L2YzL3dBcUNRSUFBQUQ2K3ZyNi93QXhDUUlBQUFEOC9Qejgvd0E0Q1FJQVZmLy9BUDhBL3dBK0NRSUFWZi8vQVA4''@;'; put 'put ''QS93QkZDUUlBVmYvdUFPNEEvd0JNQ1FJQVZmL05BTTBBL3dCVENRSUFWZitMQUlzQS93QmFDUUlBTzlEL3JmOHYvd0JtQ1FJQUFBREF3TURBL3dCckNRSUFBQUFBQUFBQS93QnhDUUlBQUFBREF3TUQvd0IzQ1FJQUFBQWFHaG9hL3dCK0NRSUFBQUQvLy8vLy93Q0dDUUlBQUFBY0hCd2Mvd0NO''@;'; put 'put ''Q1FJQUFBQWZIeDhmL3dDVUNRSUFBQUFoSVNFaC93Q2JDUUlBQUFBa0pDUWsvd0NpQ1FJQUFBQW1KaVltL3dDcENRSUFBQUFwS1NrcC93Q3dDUUlBQUFBckt5c3Ivd0MzQ1FJQUFBQXVMaTR1L3dDK0NRSUFBQUF3TURBdy93REZDUUlBQUFBRkJRVUYvd0RMQ1FJQUFBQXpNek16L3dEU0NRSUFB''@;'; put 'put ''QUEyTmpZMi93RFpDUUlBQUFBNE9EZzQvd0RnQ1FJQUFBQTdPenM3L3dEbkNRSUFBQUE5UFQwOS93RHVDUUlBQUFCQVFFQkEvd0QxQ1FJQUFBQkNRa0pDL3dEOENRSUFBQUJGUlVWRi93QURDZ0lBQUFCSFIwZEgvd0FLQ2dJQUFBQktTa3BLL3dBUkNnSUFBQUFJQ0FnSS93QVhDZ0lBQUFCTlRV''@;'; put 'put ''MU4vd0FlQ2dJQUFBQlBUMDlQL3dBbENnSUFBQUJTVWxKUy93QXNDZ0lBQUFCVVZGUlUvd0F6Q2dJQUFBQlhWMWRYL3dBNkNnSUFBQUJaV1ZsWi93QkJDZ0lBQUFCY1hGeGMvd0JJQ2dJQUFBQmVYbDVlL3dCUENnSUFBQUJoWVdGaC93QldDZ0lBQUFCalkyTmovd0JkQ2dJQUFBQUtDZ29LL3dC''@;'; put 'put ''akNnSUFBQUJtWm1abS93QnFDZ0lBQUFCcGFXbHAvd0J4Q2dJQUFBQnJhMnRyL3dCNENnSUFBQUJ1Ym01dS93Qi9DZ0lBQUFCd2NIQncvd0NHQ2dJQUFBQnpjM056L3dDTkNnSUFBQUIxZFhWMS93Q1VDZ0lBQUFCNGVIaDQvd0NiQ2dJQUFBQjZlbnA2L3dDaUNnSUFBQUI5ZlgxOS93Q3BDZ0lB''@;'; put 'put ''QUFBTkRRME4vd0N2Q2dJQUFBQi9mMzkvL3dDMkNnSUFBQUNDZ29LQy93QzlDZ0lBQUFDRmhZV0Yvd0RFQ2dJQUFBQ0hoNGVIL3dETENnSUFBQUNLaW9xSy93RFNDZ0lBQUFDTWpJeU0vd0RaQ2dJQUFBQ1BqNCtQL3dEZ0NnSUFBQUNSa1pHUi93RG5DZ0lBQUFDVWxKU1Uvd0R1Q2dJQUFBQ1ds''@;'; put 'put ''cGFXL3dEMUNnSUFBQUFQRHc4UC93RDdDZ0lBQUFDWm1abVovd0FDQ3dJQUFBQ2NuSnljL3dBSkN3SUFBQUNlbnA2ZS93QVFDd0lBQUFDaG9hR2gvd0FYQ3dJQUFBQ2pvNk9qL3dBZUN3SUFBQUNtcHFhbS93QWxDd0lBQUFDb3FLaW8vd0FzQ3dJQUFBQ3JxNnVyL3dBekN3SUFBQUN0cmEydC93''@;'; put 'put ''QTZDd0lBQUFDd3NMQ3cvd0JCQ3dJQUFBQVNFaElTL3dCSEN3SUFBQUN6czdPei93Qk9Dd0lBQUFDMXRiVzEvd0JWQ3dJQUFBQzR1TGk0L3dCY0N3SUFBQUM2dXJxNi93QmpDd0lBQUFDOXZiMjkvd0JxQ3dJQUFBQy92NysvL3dCeEN3SUFBQURDd3NMQy93QjRDd0lBQUFERXhNVEUvd0IvQ3dJ''@;'; put 'put ''QUFBREh4OGZIL3dDR0N3SUFBQURKeWNuSi93Q05Dd0lBQUFBVUZCUVUvd0NUQ3dJQUFBRE16TXpNL3dDYUN3SUFBQURQejgvUC93Q2hDd0lBQUFEUjBkSFIvd0NvQ3dJQUFBRFUxTlRVL3dDdkN3SUFBQURXMXRiVy93QzJDd0lBQUFEWjJkblovd0M5Q3dJQUFBRGIyOXZiL3dERUN3SUFBQURl''@;'; put 'put ''M3Q3ZS93RExDd0lBQUFEZzRPRGcvd0RTQ3dJQUFBRGo0K1BqL3dEWkN3SUFBQUFYRnhjWC93RGZDd0lBQUFEbDVlWGwvd0RtQ3dJQUFBRG82T2pvL3dEdEN3SUFBQURyNit2ci93RDBDd0lBQUFEdDdlM3Qvd0Q3Q3dJQUFBRHc4UER3L3dBQ0RBSUFBQUR5OHZMeS93QUpEQUlBQUFEMTlmWDEv''@;'; put 'put ''d0FRREFJQUFBRDM5L2YzL3dBWERBSUFBQUQ2K3ZyNi93QWVEQUlBQUFEOC9Qejgvd0FsREFJQVZRLy84UC93L3dBdURBSUFWUS8vOFAvdy93QTREQUlBVlEvdTRPN2cvd0JDREFJQVZRN053YzNCL3dCTURBSUFWUTZMZzR1RC93QldEQUlBNlpiLy8ybTAvd0JlREFJQTZwSC8vMjYwL3dCbkRB''@;'; put 'put ''SUE2NDN1N21xbi93QndEQUlBN0lmTnpXQ1Evd0I1REFJQTZwU0xpenBpL3dDQ0RBSUFBSXpOelZ4Yy93Q01EQUlBQUpULy8ycHEvd0NYREFJQUFKVHU3bU5qL3dDaURBSUFBSlhOelZWVi93Q3REQUlBQUpTTGl6bzYvd0M0REFJQXd2K0NTd0NDL3dDL0RBSUFLZ0QvLy8vK0FBREZEQUlBS2cv''@;'; put 'put ''Ly8vL3cvd0RMREFJQUtnLy8vLy93L3dEU0RBSUFLZy91N3U3Zy93RFpEQUlBS2c3TnpjM0Ivd0RnREFJQUtnNkxpNHVEL3dEbkRBSUFKbXJ3OE9hTS93RHREQUlBSjNELy8vYVAvd0QwREFJQUozRHU3dWFGL3dEN0RBSUFKMi9OemNaei93QUNEUUlBSjIrTGk0Wk8vd0FKRFFJQXFoVDY1dWI2''@;'; put 'put ''L3dBU0RRSUE4QS8vLy9EMS93QWdEUUlBOEEvLy8vRDEvd0F2RFFJQTd3L3U3dURsL3dBK0RRSUE4QTdOemNIRi93Qk5EUUlBN3c2TGk0T0cvd0JjRFFJQVFQLzhmUHdBL3dCbURRSUFKakgvLy9yTi93QnpEUUlBSmpILy8vck4vd0NCRFFJQUpUTHU3dW0vL3dDUERRSUFKakhOemNtbC93Q2RE''@;'; put 'put ''UUlBSnpHTGk0bHcvd0NyRFFJQWlUL21yZGptL3dDMURRSUFpa0QvdisvLy93REFEUUlBaWtEdXN0L3Uvd0RMRFFJQWlqL05tc0ROL3dEV0RRSUFpVUNMYUlPTC93RGhEUUlBQUhmdzhJQ0Evd0RzRFFJQWZ4Ly80UC8vL3dEMkRRSUFmeC8vNFAvLy93QUJEZ0lBZngvdTBlN3Uvd0FNRGdJQWZ4''@;'; put 'put ''L050TTNOL3dBWERnSUFmeCtMZW91TC93QWlEZ0lBSTNQdTd0MkMvd0F4RGdJQUkzVC8vK3lML3dCQkRnSUFJM1B1N3R5Qy93QlJEZ0lBSTNQTnpiNXcvd0JoRGdJQUkzT0xpNEZNL3dCeERnSUFLaWo2K3ZyUy93Q0dEZ0lBQUFEVDA5UFQvd0NRRGdJQUFBRFQwOVBUL3dDYURnSUErRW4vLzdi''@;'; put 'put ''Qi93Q2tEZ0lBK1ZILy82NjUvd0N2RGdJQStGSHU3cUt0L3dDNkRnSUErVkROell5Vi93REZEZ0lBK1ZDTGkxOWwvd0RRRGdJQURJVC8vNkI2L3dEY0RnSUFESVQvLzZCNi93RHBEZ0lBQzRUdTdwVnkvd0QyRGdJQURJWE56WUZpL3dBRER3SUFESVdMaTFkQy93QVFEd0lBZmRHeUlMS3Evd0Fl''@;'; put 'put ''RHdJQWozWDZoODc2L3dBckR3SUFqMC8vc09MLy93QTVEd0lBajAvdXBOUHUvd0JIRHdJQWprL05qYmJOL3dCVkR3SUFqMDZMWUh1TC93QmpEd0lBcjQvL2hIRC8vd0J5RHdJQWxEaVpkNGlaL3dDQkR3SUFsRGlaZDRpWi93Q1FEd0lBbHpUZXNNVGUvd0NmRHdJQWx6WC95dUgvL3dDdkR3SUFs''@;'; put 'put ''elh1dk5MdS93Qy9Ed0lBbHpYTm9yWE4vd0RQRHdJQWxqV0xibnVML3dEZkR3SUFLaC8vLy8vZy93RHJEd0lBS2gvLy8vL2cvd0Q0RHdJQUtoL3U3dTdSL3dBRkVBSUFLaC9OemMyMC93QVNFQUlBS2grTGk0dDYvd0FmRUFJQVZjRE5NczB5L3dBcEVBSUFGUlQ2K3ZEbS93QXZFQUlBMVAvLy93''@;'; put 'put ''RC8vd0EzRUFJQTFQLy8vd0QvL3dCQUVBSUExUC91N2dEdS93QkpFQUlBMVAvTnpRRE4vd0JTRUFJQTFQK0xpd0NML3dCYkVBSUE3N213c0RCZy93QmlFQUlBNU12Ly96U3ovd0JxRUFJQTVNdnU3akNuL3dCeUVBSUE1TXpOelNtUS93QjZFQUlBNU11TGl4eGkvd0NDRUFJQWNZRE5aczJxL3dD''@;'; put 'put ''VEVBSUFxdi9OQUFETi93Q2VFQUlBekpqVHVsWFQvd0NyRUFJQXk1bi80R2IvL3dDNUVBSUF5NW51MFYvdS93REhFQUlBeTVuTnRGTE4vd0RWRUFJQXk1cUxlamVML3dEakVBSUF0M3piazNEYi93RHdFQUlBdDMzL3E0TC8vd0QrRUFJQXQzM3VuM251L3dBTUVRSUF0MzNOaVdqTi93QWFFUUlB''@;'; put 'put ''dDN5TFhVZUwvd0FvRVFJQVo2bXpQTE54L3dBM0VRSUFzSS91ZTJqdS93QkhFUUlBYi8vNkFQcWEvd0JaRVFJQWZhZlJTTkhNL3dCcEVRSUE1T1RIeHhXRi93QjVFUUlBcXNad0dSbHcvd0NHRVFJQWFnbi85Zi82L3dDUUVRSUFCQjcvLytUaC93Q2FFUUlBQkI3Ly8rVGgvd0NsRVFJQUJCN3U3''@;'; put 'put ''dFhTL3dDd0VRSUFBeDNOemJlMS93QzdFUUlBQlIyTGkzMTcvd0RHRVFJQUdrbi8vK1MxL3dEUEVRSUFHVkgvLzk2dC93RGJFUUlBR1ZILy85NnQvd0RvRVFJQUdWTHU3cytoL3dEMUVRSUFHVkxOemJPTC93QUNFZ0lBR1ZLTGkzbGUvd0FQRWdJQXF2K0FBQUNBL3dBVUVnSUFxditBQUFDQS93''@;'; put 'put ''QWRFZ0lBS2dELy8vLytBQUFpRWdJQUd4ZjkvZlhtL3dBcUVnSUFPTUNPYTQ0ai93QTBFZ0lBT01IL3dQOCsvd0EvRWdJQU9NRHVzKzQ2L3dCS0VnSUFPTURObXMweS93QlZFZ0lBT01DTGFZc2kvd0JnRWdJQUcvLy8vNlVBL3dCbkVnSUFHLy8vLzZVQS93QnZFZ0lBRy8vdTdwb0Evd0IzRWdJ''@;'; put 'put ''QUcvL056WVVBL3dCL0VnSUFHLytMaTFvQS93Q0hFZ0lBQy8vLy8wVUEvd0NSRWdJQUMvLy8vMFVBL3dDY0VnSUFDLy91N2tBQS93Q25FZ0lBQy8vTnpUY0Evd0N5RWdJQUMvK0xpeVVBL3dDOUVnSUExbnZhMm5EVy93REVFZ0lBMW56Ly80UDYvd0RNRWdJQTFuenU3bnJwL3dEVUVnSUExbnpO''@;'; put 'put ''elduSi93RGNFZ0lBMVh5TGkwZUovd0RrRWdJQUpranU3dWlxL3dEeUVnSUFWV1Q3bVB1WS93RDhFZ0lBVldYL212K2Evd0FIRXdJQVZXVHVrTzZRL3dBU0V3SUFWV1ROZk0xOC93QWRFd0lBVldTTFZJdFUvd0FvRXdJQWYwUHVyKzd1L3dBMkV3SUFmMFQvdS8vLy93QkZFd0lBZjBUdXJ1N3Uv''@;'; put 'put ''d0JVRXdJQWYwVE5sczNOL3dCakV3SUFmME9MWm91TC93QnlFd0lBOFh6YjIzQ1Qvd0NBRXdJQThYMy8vNEtyL3dDUEV3SUE4WDN1N25tZi93Q2VFd0lBOFgzTnpXaUovd0N0RXdJQThYeUxpMGRkL3dDOEV3SUFHaW4vLysvVi93REhFd0lBRkViLy85cTUvd0RSRXdJQUZFYi8vOXE1L3dEY0V3''@;'; put 'put ''SUFFMFh1N3N1dC93RG5Fd0lBRTBYTnphK1Yvd0R5RXdJQUZFV0xpM2RsL3dEOUV3SUFGTEROellVLy93QUNGQUlBOXovLy84REwvd0FIRkFJQTlVbi8vN1hGL3dBTkZBSUE5VW51N3FtNC93QVRGQUlBOVVyTnpaR2Uvd0FaRkFJQTlVbUxpMk5zL3dBZkZBSUExRWJkM2FEZC93QWtGQUlBMUVU''@;'; put 'put ''Ly83di8vd0FxRkFJQTFFVHU3cTd1L3dBd0ZBSUExRVROelpiTi93QTJGQUlBMUVPTGkyYUwvd0E4RkFJQWhEdm1zT0RtL3dCSEZBSUF4TjN3b0NEdy93Qk9GQUlBdjgvL216RC8vd0JXRkFJQXdNL3VrU3p1L3dCZUZBSUF3TS9OZlNiTi93Qm1GQUlBd00rTFZScUwvd0J1RkFJQUFQLy8vd0FB''@;'; put 'put ''L3dCeUZBSUFBUC8vL3dBQS93QjNGQUlBQVAvdTdnQUEvd0I4RkFJQUFQL056UUFBL3dDQkZBSUFBUCtMaXdBQS93Q0dGQUlBQUQyOHZJK1Avd0NRRkFJQUFENy8vOEhCL3dDYkZBSUFBRDd1N3JTMC93Q21GQUlBQUQ3TnpadWIvd0N4RkFJQUFENkxpMmxwL3dDOEZBSUFuN1hoUVduaC93REdG''@;'; put 'put ''QUlBbjdmL1NIYi8vd0RSRkFJQW43ZnVRMjd1L3dEY0ZBSUFuN2JOT2wvTi93RG5GQUlBbjdlTEowQ0wvd0R5RkFJQUVkeUxpMFVUL3dEK0ZBSUFCSXI2K29CeS93QUZGUUlBQ1piLy80eHAvd0FORlFJQUNaYnU3b0ppL3dBVkZRSUFDWmJOelhCVS93QWRGUUlBQ1phTGkwdzUvd0FsRlFJQUU1''@;'; put 'put ''cjA5S1JnL3dBd0ZRSUFaNnFMTG90WC93QTVGUUlBWjZ2L1ZQK2Yvd0JERlFJQVo2dnVUdTZVL3dCTkZRSUFaNnZOUTgyQS93QlhGUUlBWjZxTExvdFgvd0JoRlFJQUVSRC8vL1h1L3dCcUZRSUFFUkQvLy9YdS93QjBGUUlBRWhIdTd1WGUvd0IrRlFJQUVoSE56Y1cvL3dDSUZRSUFFaENMaTRh''@;'; put 'put ''Qy93Q1NGUUlBRGJlZ29GSXQvd0NaRlFJQURiai8vNEpIL3dDaEZRSUFEYmp1N25sQy93Q3BGUUlBRGJqTnpXZzUvd0N4RlFJQURibUxpMGNtL3dDNUZRSUFpMnpyaDg3ci93REJGUUlBa0hqL2g4Ny8vd0RLRlFJQWtIanVmc0R1L3dEVEZRSUFrSGpOYktiTi93RGNGUUlBa1hlTFNuQ0wvd0Rs''@;'; put 'put ''RlFJQXI0L05hbHJOL3dEdkZRSUFyNUQvZzIvLy93RDZGUUlBcjVEdWVtZnUvd0FGRmdJQXI1RE5hVm5OL3dBUUZnSUFyNUNMUnp5TC93QWJGZ0lBbERpUWNJQ1Evd0FsRmdJQWxUai94dUwvL3dBd0ZnSUFsVGp1dWRQdS93QTdGZ0lBbERuTm43Yk4vd0JHRmdJQWxUaUxiSHVML3dCUkZnSUFs''@;'; put 'put ''RGlRY0lDUS93QmJGZ0lBQUFYLy8vcjYvd0JnRmdJQUFBWC8vL3I2L3dCbUZnSUFBQVh1N3VucC93QnNGZ0lBQUFUTnpjbkovd0J5RmdJQUFBT0xpNG1KL3dCNEZnSUFhdi8vQVA5Ly93Q0VGZ0lBYXYvL0FQOS8vd0NSRmdJQWF2L3VBTzUyL3dDZUZnSUFhdi9OQU0xbS93Q3JGZ0lBYXYrTEFJ''@;'; put 'put ''dEYvd0M0RmdJQWtwdTBSb0swL3dEQ0ZnSUFrcHovWTdqLy93RE5GZ0lBa3B6dVhLenUvd0RZRmdJQWtwek5UNVROL3dEakZnSUFrNXVMTm1TTC93RHVGZ0lBR0ZUUzByU00vd0R5RmdJQUZMRC8vNlZQL3dEM0ZnSUFGTER1N3BwSi93RDhGZ0lBRkxETnpZVS8vd0FCRndJQUZMQ0xpMW9yL3dB''@;'; put 'put ''R0Z3SUExQjNZMkwvWS93QU9Gd0lBMUI3Ly8rSC8vd0FYRndJQTFCN3U3dEx1L3dBZ0Z3SUExQjNOemJYTi93QXBGd0lBMUIyTGkzdUwvd0F5RndJQUJyai8vMk5IL3dBNUZ3SUFCcmovLzJOSC93QkJGd0lBQnJqdTdseEMvd0JKRndJQUJyak56VTg1L3dCUkZ3SUFCcm1MaXpZbS93Q2pHQUlB''@;'; put 'put ''S2dELy8vLytBQUJaRndJQWU3YmdRT0RRL3dCakZ3SUFnZi8vQVBYLy93QnVGd0lBZ2YvdUFPWHUvd0I1RndJQWdmL05BTVhOL3dDRUZ3SUFnZitMQUlhTC93Q1BGd0lBMUhQdTdvTHUvd0NXRndJQTQ5ZlEwQ0NRL3dDZ0Z3SUE2OEgvL3o2Vy93Q3JGd0lBNjhEdTdqcU0vd0MyRndJQTY4RE56''@;'; put 'put ''VEo0L3dEQkZ3SUE2OENMaXlKUy93RE1Gd0lBRzBUMTlkNnovd0RTRndJQUcwWC8vK2U2L3dEWkZ3SUFHMFR1N3RpdS93RGdGd0lBRzBUTnpicVcvd0RuRndJQUcwT0xpMzVtL3dEdUZ3SUFBQUQvLy8vLy93RDBGd0lBQUFEMTlmWDEvd0QvRndJQUt2Ly8vLzhBL3dBR0dBSUFLdi8vLy84QS93''@;'; put 'put ''QU9HQUlBS3YvdTd1NEEvd0FXR0FJQUt2L056YzBBL3dBZUdBSUFLditMaTRzQS93QW1HQUlBT01ETm1zMHkvd0NhSEFJQWZ5d0NBTFlZQWdDNEdBSUF1aGdDQUx3WUFnQytHQUlBd0JnQ0FNSVlBZ0RFR0FJQXhoZ0NBTWtZQWdETUdBSUF6eGdDQU5JWUFnRFZHQUlBMkJnQ0FOc1lBZ0RlR0FJ''@;'; put 'put ''QTRSZ0NBT1FZQWdBQUFBQUFCQUFBQUFRQUFBQUxBQUFBTmdBQUFCWUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFFQUFBQUJnQUFBQUFBQUFBQUFBQUFCY0FBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFFQUFBQUJnQUFBQUFBQUFBQUFBQUFCZ0FBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFCQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBTndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFCQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFER0pRSUFDUUFBQU13bEFnQUtBQUFBMVNVQ0FBc0FBQUFYSmdJQURBQUFBQjBtQWdBTkFBQUFJaVlDQUE0QUFBRFZKUUlBRHdBQUFLb21BZ0FRQUFBQXNTWUNBQkVBQUFDNUpnSUFFZ0FBQU1BbUFnQVRBQUFBekNZQ0FCUUFBQUFYSmdJQUZRQUFBTmdtQWdBV0FB''@;'; put 'put ''QUE0Q1lDQUJjQUFBRHFKZ0lBR0FBQUFQZ21BZ0FaQUFBQS95WUNBQm9BQUFBRUp3SUFHd0FBQUFjbkFnQWNBQUFBRENjQ0FCMEFBQUFVSndJQUhnQUFBQm9uQWdBZkFBQUFJQ2NDQUNBQUFBQW5Kd0lBSVFBQUFDMG5BZ0FoQUFBQU5TY0NBQ0lBQUFBOEp3SUFJd0FBQU5VbEFnQWtBQUFBc1NZ''@;'; put 'put ''Q0FCRUFBQUM1SmdJQUVnQUFBRE1wQWdBbEFBQUF3Q1lDQUJNQUFBRE1KZ0lBRkFBQUFCY21BZ0FWQUFBQVBpa0NBQ1lBQUFEZ0pnSUFGd0FBQU9vbUFnQVlBQUFBK0NZQ0FCa0FBQUQvSmdJQUdnQUFBQVFuQWdBYkFBQUFCeWNDQUJ3QUFBQkdLUUlBSndBQUFCUW5BZ0FlQUFBQUdpY0NBQjhB''@;'; put 'put ''QUFBZ0p3SUFJQUFBQUNjbkFnQWhBQUFBTFNjQ0FDRUFBQUExSndJQUlnQUFBRHduQWdBakFBQUFHUUFBQUJvQUFBQWJBQUFBSEFBQUFCMEFBQUFlQUFBQUh3QUFBQ2dBQUFBcEFBQUFJQUFBQUNvQUFBQU1BQUFBR1FBQUFDRUFBQUFFQUFBQUJRQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFG''@;'; put 'put ''UW9BQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JZU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFFjQkJ3V0hCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0hDUWNIQndjSEJ3Y0hC''@;'; put 'put ''d2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd1dIQndjSEJ3Y0hCd2NIQlljR2h3Y0Zod2NIQndjRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWWNGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdGaFlXRmdB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84QUFBQUFBQUFBQlA3Ly80ZisvLzhIQUFBQUFBQUFBQUQv''@;'; put 'put ''LzMvLy8vOS8vLy8vLy8vLy8vTi8vdjMvLy8vLy8zLy8vLy8vLy8vLy93L2cvLy8vL3pIOC8vLy9BQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy9BUUQ0QXdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFRTmYvLy92Ly8vLy9mMzlVL2Y4UEFQN2YvLy8vLy8vLy8vLyszLy8vLy84REFQLy8v''@;'; put 'put ''Ly8vLzU4Wi8vLy96ejhEQUFBQUFBQUEvdi8vLzM4Qy92Ly8vMzhBQUFBQUFBQUFBQUQvLy84SEJ3QUFBQUFBL3YvL0IvNEhBQUFBQVA3Ly8vLy8vLy8vLzN6L2Z5OEFZQUFBQU9ELy8vLy8vLzhqQUFBQS93TUFBQURnbi9uLy8vM0ZBd0FBQUxBREFBTUE0SWY1Ly8vOWJRTUFBQUJlQUFBY0FP''@;'; put 'put ''Q3YrLy8vL2UwakFBQUFBQUVBQUFEZ24vbi8vLzNOSXdBQUFMQURBQUFBNE1jOTFoakh2d01BQUFBQUFBQUFBT0RmL2YvLy9lOERBQUFBQUFNQUFBRGczLzMvLy8zdkF3QUFBRUFEQUFBQTROLzkvLy85L3dNQUFBQUFBd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQrLy8vLy8zOE5BRDhBQUFB''@;'; put 'put ''QUFBQUFsaVh3L3E1c0RTQWZBQUFBQUFBQUFBQUFBQUFBQUFBQS8vNy8vLzhEQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9Qd0QvLy8vL2Z3RHQyZ2NBQUFBQVVBRlFNWUtyWWl3QUFBQUFRQURKZ1BVSEFBQUFBQWdCQXYvLy8vLy8vLy8v''@;'; put 'put ''Ly8vLy8vLy8vLy8vLy84UC8vLy8vLy8vLy8vLy8vOEQvLzgvUC8vLy8vOC9QLytxLy8vL1AvLy8vLy8vLzk5ZjNCL1BELzhmM0I4QUFBQUFRRXdBQUFBQUFBQUFBQUFBQndBQUFBQUFBQUFBQUFBQUFBQUFBSUFBQUFEK0F3QUEvdi8vLy8vLy8vLy8veDhBL3YvLy8vLy8vLy8vLy84SDRQLy8v''@;'; put 'put ''LzhmQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3o4QUFBQUFBQUFBQUFBQUFQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9Ed0FBQUFBQUFBQUFBQUFBQUFBQUFBQmcvd2YrLy8rSC92Ly9Cd0FBQUFBQUFJQUEvLzkvLy8vL2Yv''@;'; put 'put ''Ly8vLzhBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLzhCQVBnREFBTUFBQUFBQVAvLy8vLy8vLy8vUHdBQUFBTUFBQURBMS8vLysvLy8vLzkvZjFUOS93OEEvdC8vLy8vLy8vLy8vLzdmLy8vLy8zc0EvLy8vLy8vL254bi8vLy9QUHdNQUFBQUFBQUQrLy8vL2Z3TCsvLy8vZndEKy8vdi8vN3NXQVAv''@;'; put 'put ''Ly93Y0hBQUFBQUFEKy8vOEgvLzhIQVA4RC8vLy8vLy8vLy8vL2ZQOS83Ly8vUGY4RDd2Ly8vLy8vLy9QL1B4Ny96LzhBQU82ZitmLy8vY1hUbnptQXNNLy9Bd0RraC9uLy8vMXQwNGM1QUY3QS94OEE3cS83Ly8vOTdmTy9Pd0FBd2Y4QUFPNmYrZi8vL2Mzemp6bkFzTVAvQUFEc3h6M1dHTWUv''@;'; put 'put ''dzhjOWdBQ0Evd0FBN3QvOS8vLzk3OFBmUFdBQXcvOEFBT3pmL2YvLy9lL0QzejFnUU1QL0FBRHMzLzMvLy8zL3c4ODlnQUREL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA3Ly8vLy9mLzhILzMvL0F3QUFBQUNXSmZEK3Jtei9PMTgvL3dNQUFBQUFBQUFBQS84RG9NTC8vdi8vL3dQKy85OFB2''@;'; put 'put ''LzcvUC80Q0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVA4ZkFnQUFBS0FBQUFEKy96NEEvdi8vLy8vLy8vLy8veDltL3YvLy8vLy8vLy8vLy85M0dRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDZ0FBQUFwQUFBQUlBQUFBQ29BQUFBTUFB''@;'; put 'put ''QUFHUUFBQUNFQUFBQUdBQUFBQndBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUllTQWc0TER4d1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoUWNCQndXSEJn''@;'; put 'put ''WUdCZ1lHQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSENRY0hCd0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVG''@;'; put 'put ''QlFVR0JnWUdCZ1lHQmdZR0JnWUdCZ1lHQndjSEJ3Y0FBQUFBQUFBQUFBQUJBU3NBQUFBc0FBQUFMUUFBQUM0QUFBQXZBQUFBTFFBQUFEQUFBQUF4QUFBQU1nQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFCOEFBQUFvQUFBQUtRQUFBQ0FBQUFBcUFBQUFEQUFBQUJrQUFBQWhB''@;'; put 'put ''QUFBQmdBQUFBY0FBQUFCQUFBQUFRQUFBQUFBQUFBQUFBQUFBQlVLQUFBSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZSQU1FeHdlQXcwZklDRWlJeHNhRVJrWkdSa1pHUmtaR1JrV0VnSU9DdzhjR0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlVSEFRY0Zod1lHQmdZR0JnV0Zo''@;'; put 'put ''WVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod2tIQndjQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCZ1lHQmdZ''@;'; put 'put ''R0JnWUdCZ1lHQmdZR0JnY0hCd2NIQUFBQUFBQUFBQUFBQVFFckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFDMEFBQUF3QUFBQU1RQUFBRElBQUFBQTNRQUFZT1lBQU5qa0FBRE01d0FBek9jQUFEanBBQURZNUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDZ0FBQUFw''@;'; put 'put ''QUFBQUlBQUFBQ29BQUFBTUFBQUFHUUFBQUNFQUFBQUlBQUFBQlFBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUllTQWc0TER4d1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdG''@;'; put 'put ''aFlXRmhZV0ZoUWNCQndXSEJnWUdCZ1lHQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSENRY0hCd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0lBQUFBakFBQUFKQUFBQUNVQUFBQW1BQUFBSndBQUFDZ0FBQUF6QUFBQU5BQUFBQ2tBQUFB''@;'; put 'put ''MUFBQUFEUUFBQUJvQUFBQXFBQUFBQ1FBQUFBb0FBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVLQUFBSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZSQU1FeHdlQXcwZklDRWlJeHNhRVJrWkdSa1pHUmtaR1JrV0VnSU9DdzhjR0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlV''@;'; put 'put ''SEFRY0Zod1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod2tIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NGaHdjSEJ3Y0hCd2NIQndXSEJvY0hCWWNIQndjSEJZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdI''@;'; put 'put ''QllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZY0ZoWVdGaFlXRmhZQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFEQUFBQUF4QUFBQU5nQUFBRGNBQUFBeUFBQUFPQUFBQUE0QUFB''@;'; put 'put ''QWJBQUFBTXdBQUFBc0FBQUFNQUFBQUFnQUFBQUFCQUFBQUFBQUFBQUFBQUFBVkNnQUFDUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVRREJNY0hnTU5IeUFoSWlNYkdoRVpHUmtaR1JrWkdSa1pGaElDRGdzUEhCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZCd0VIQlljR0Jn''@;'; put 'put ''WUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFljSkJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJZY0hCd2NIQndjSEJ3Y0Zod2FIQndXSEJ3Y0hCd1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdGaFlX''@;'; put 'put ''RmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdIQllXRmhZV0ZoWVdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF6NDBCQUxJekFnQlRqZ0VBdXpNQ0FNSXpBZ0RMTXdJQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIwQUFBQWVBQUFBSHdBQUFDZ0FB''@;'; put 'put ''QUFwQUFBQUlBQUFBQ29BQUFBTUFBQUFHUUFBQUNFQUFBQUdBQUFBQndBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQlVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUmNTQWc0TER4d1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0Zo''@;'; put 'put ''WVdGaFlXRmhZV0ZoUWNCQndXSEJnWUdCZ1lHQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSENRY0hCd0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lCUVVGQlFVRkJRVUZCUVVGQlFV''@;'; put 'put ''RkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVR0JnWUdCZ1lHQmdZR0JnWUdCZ1lHQndjSEJ3Y0FBQUFBQUFBQUFBQUJBU3NBQUFBc0FBQUFMUUFBQUM0QUFBQXZBQUFBTFFBQUFEQUFBQUF4QUFBQU1nQUFBRVRzQUFDdzdRQUFITzhBQUlqd0FBQ0k4QUFBOVBFQUFCenZBQUFaQUFBQUdnQUFBQnNB''@;'; put 'put ''QUFBY0FBQUFIUUFBQUI0QUFBQWZBQUFBS0FBQUFDa0FBQUFnQUFBQUtnQUFBQXdBQUFBWkFBQUFJUUFBQUFRQUFBQUZBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWQ2dBQUNRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCVVFEQk1jSGdNTkh5QWhJaU1iR2hFWkdSa1pHUmtaR1JrWkZ4SUNE''@;'; put 'put ''Z3NQSEJnWUdCZ1lHQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRkJ3RUhCWWNHQmdZR0JnWUZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWWNKQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQlljSEJ3Y0hCd2NIQndjRmh3YUhC''@;'; put 'put ''d1dIQndjSEJ3V0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaHdXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0hCWVdGaFlXRmhZV0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdRQUFBQm9BQUFBYkFBQUFIQUFBQUIw''@;'; put 'put ''QUFBQWVBQUFBSHdBQUFDZ0FBQUFwQUFBQUlBQUFBQ29BQUFBTUFBQUFHUUFBQUNFQUFBQUlBQUFBQlFBQUFBRUFBQUFCQUFBQUFBQUFBQUFBQUFBQUZRb0FBQWtBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFWRUF3VEhCNEREUjhnSVNJakd4b1JHUmtaR1JrWkdSa1pHUmNTQWc0TER4d1lHQmdZ''@;'; put 'put ''R0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoUWNCQndXSEJnWUdCZ1lHQllXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXSENRY0hCd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQmtBQUFBYUFBQUFHd0FBQUJ3QUFBQWRBQUFBSGdBQUFC''@;'; put 'put ''OEFBQUFvQUFBQUtRQUFBQ0FBQUFBcUFBQUFEQUFBQUJrQUFBQWhBQUFBQmdBQUFBY0FBQUFCQUFBQUFRQUFBQUFBQUFBQUFBQUFBQlVLQUFBSkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZSQU1FeHdlQXcwZklDRWlJeHNhRVJrWkdSa1pHUmtaR1JrWEVnSU9DdzhjR0JnWUdCZ1lGaFlXRmhZ''@;'; put 'put ''V0ZoWVdGaFlXRmhZV0ZoWVdGaFlVSEFRY0Zod1lHQmdZR0JnV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zod2tIQndjQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FVRkJRVUZCUVVG''@;'; put 'put ''QlFVRkJRVUZCUVVGQlFVRkJRVUZCUVVGQlFVRkJRVUZCZ1lHQmdZR0JnWUdCZ1lHQmdZR0JnY0hCd2NIQUFBQUFBQUFBQUFBQVFFckFBQUFMQUFBQUMwQUFBQXVBQUFBTHdBQUFDMEFBQUF3QUFBQU1RQUFBRElBQUFBaUFBQUFJd0FBQUNRQUFBQWxBQUFBSmdBQUFDY0FBQUFvQUFBQU13QUFB''@;'; put 'put ''RFFBQUFBcEFBQUFOUUFBQUEwQUFBQWFBQUFBS2dBQUFBa0FBQUFLQUFBQUFnQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkNnQUFDUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlVRREJNY0hnTU5IeUFoSWlNYkdoRVpHUmtaR1JrWkdSa1pGeElDRGdzUEhCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0Zo''@;'; put 'put ''WVdGaFlXRmhZV0ZCd0VIQlljR0JnWUdCZ1lGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFljSkJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJZY0hCd2NIQndjSEJ3Y0Zod2FIQndXSEJ3Y0hCd1dGaFlXRmhZV0ZoWVdGaFlXRmhZ''@;'; put 'put ''V0ZoWVdGaFlXRmh3V0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdIQllXRmhZV0ZoWVdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFLd0FBQUN3QUFBQXRBQUFBTGdBQUFDOEFBQUF3QUFBQU1RQUFBRFlBQUFBM0FBQUFNZ0FB''@;'; put 'put ''QURnQUFBQU9BQUFBR3dBQUFETUFBQUFMQUFBQURBQUFBQUlBQUFBQUFRQUFBQUFBQUFBQUFBQUFGUW9BQUFrQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVkVBd1RIQjRERFI4Z0lTSWpHeG9SR1JrWkdSa1pHUmtaR1JjU0FnNExEeHdZR0JnWUdCZ1dGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdG''@;'; put 'put ''aFFjQkJ3V0hCZ1lHQmdZR0JZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0hDUWNIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd2NIQndjSEJ3Y0hCd1dIQndjSEJ3Y0hCd2NIQlljR2h3Y0Zod2NIQndjRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0Zo''@;'; put 'put ''WWNGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmhZV0ZoWVdGaFlXRmh3V0ZoWVdGaFlXRmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUYwMEFnQmpOQUlBWmpRQ0FHdzBBZ0FHTkFJQWN6UUNBSHcwQWdDRU5BSUFuUE1BQUJRQUFBQkRMbFZVUmkw''@;'; put 'put ''NEFBQUFBQUFBQUFBQUFBQUFBTjRTQkpVQUFBQUEvLy8vLy8vLy8vLy8vLy8vQWdBQXdBTUFBTUFFQUFEQUJRQUF3QVlBQU1BSEFBREFDQUFBd0FrQUFNQUtBQURBQ3dBQXdBd0FBTUFOQUFEQURnQUF3QThBQU1BUUFBREFFUUFBd0JJQUFNQVRBQURBRkFBQXdCVUFBTUFXQUFEQUZ3QUF3QmdB''@;'; put 'put ''QU1BWkFBREFHZ0FBd0JzQUFNQWNBQURBSFFBQXdCNEFBTUFmQUFEQUFBQUFzd0VBQU1NQ0FBRERBd0FBd3dRQUFNTUZBQUREQmdBQXd3Y0FBTU1JQUFERENRQUF3d29BQU1NTEFBREREQUFBd3cwQUFOTU9BQURERHdBQXd3QUFETHNCQUF6REFnQU13d01BRE1NRUFBelRnUFFBQUFrQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFCRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEd0FBQUFBQUFBQVFBQUFBL1BrQ0FBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBOVFBQUJR''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFFUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVRQUFBQkFBQUFBRS9nSUFBQVFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFBQUFDdi8vLy84QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFE''@;'; put 'put ''MUFBQ0U5UUFBQlFBQUFBQUFBQUFBQUFBQUVRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWdBQUFCQUFBQUFNQWdNQUFBQUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFtT2dDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFEQUFBQUJBQUFBQVFBQUFBR0FBQUFnL21pQUVST2JnRDhLUlVBMFZjbkFOMDA5UUJpMjhBQVBKbVZBRUdRUXdCalVmNEF1OTZyQUxkaHhRQTZiaVFBMGsxQ0FFa0c0QUFKNmk0QUhKTFJBT3NkL2dBcHNSd0E2RDZuQVBVMWdnQkV1eTRBbk9tRUFMUW1jQUJCZmw4QTFwRTVBRk9ET1FD''@;'; put 'put ''YzlEa0FpMStFQUNqNXZRRDRIenNBM3YrWEFBK1lCUUFSTCs4QUNscUxBRzBmYlFEUGZqWUFDY3NuQUVaUHR3Q2VaajhBTGVwZkFMb25kUURsNjhjQVBYdnhBUGM1QndDU1Vvb0ErMnZxQUIreFh3QUlYWTBBTUFOV0FIdjhSZ0R3cTJzQUlMelBBRGIwbWdEanFSMEFYbUdSQUFnYjVnQ0ZtV1VB''@;'; put 'put ''b0JSZkFJMUFhQUNBMlA4QUozTk5BQVlHTVFES1ZoVUF5YWh6QUh2aVlBQnJqTUFBSUFBQUFBa0FBQUFLQUFBQURRQUFBQXNBQUFBTUFBQUFoUUFBQUFBZ0FBQUJJQUFBQWlBQUFBTWdBQUFFSUFBQUJTQUFBQVlnQUFBSUlBQUFDU0FBQUFvZ0FBQW9JQUFBS1NBQUFGOGdBQUFBTUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQk1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUtBQUFBWkFBQUFPZ0RBQUFRSndBQW9JWUJBRUJDRHdDQWxwZ0FBT0gxQlY5d2lRRC9DUzhQZEFBQUFQMVhBZ0J1QUFBQS8xY0NBSElBQUFBQldBSUFaZ0FBQUFOWUFnQmhBQUFBQlZnQ0FHVUFBQUFIV0FJQWR3QUFBQWxZQWdCWEFBQUFGbGdDQUhNQUFBQWtXQUlBVXdBQUFEQllBZ0JrQUFB''@;'; put 'put ''QVBWZ0NBRVFBQUFCSldBSUFBQUFBQUFBQUFBQUFBQUFBQUFBRUFBUUFHd0FiQUNBQUlBQWpBQ0VBQ2dBQ0FCWUFDUUFoQUNFQUlRQVZBQndBQVFBVUFCUUFGQUFVQUJRQUZBQVVBQWdBQkFBRkFCc0FBZ0FYQUJzQUlBQWZBQjRBSFFBSkFCTUFBQUFWQUJJQUZRQURBQWNBRlFBVkFCUUFGQUFV''@;'; put 'put ''QUJRQUZBQVVBQlFBRkFBSUFBUUFCUUFGQUFZQUd3QWFBQmdBR1FBZ0FBY0FGUUFVQUJRQUZBQVVBQlFBRkFBTEFCUUFEUUFVQUF3QUZBQVVBQlFBRGdBVUFCUUFGQUFRQUJRQUR3QVVBQkVBQUFBQUFBQUFyZ0F1QUM4QU13QTFBREFBTndDcUFOc0Eyd0RiQU5zQUFBQTlBSWNBTndBM0FOc0Ey''@;'; put 'put ''d0FBQUNnQU5RQXVBRElBTHdCaUFBQUFBQUJIQUFBQUFBRGJBRkVBQUFEYkFOc0Eyd0FBQU5zQWhBQlZBTnNBZ2dEYkFBQUFnUURiQUFBQVBnQkNBRUVBU0FCRUFGSUFXd0FBQUFBQVhnQmZBTnNBQUFEYkFOc0Eyd0FBQUFBQWV3QkpBRmNBVWdCYUFGb0FYUUFBQUY4QUFBQmZBQUFBWlFCZEFG''@;'; put 'put ''OEFBQUJkQUc0QWFnQUFBR2tBQUFCdUFBQUEyd0NUQUpvQW9RQ29BS3NBY0FDeEFMZ0F2d0RHQU0wQTB3QUFBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFB''@;'; put 'put ''QkFBRUFBUUFCQUFFQUFRQUJBQUVBQVFBQkFBTUFCQUFIQUFNQUJBQUZBQVVBQmdBR0FBZ0FCd0FIQUJFQUZnQVNBQkVBRWdBSUFBZ0FEd0FQQUJjQUR3QVlBQThBR1FBYUFCb0FIZ0FXQURRQUhnQUZBRElBQmdBaUFDSUFNd0FYQUJnQU5RQVpBQm9BR2dBcUFEWUFLZ0EwQURjQU1nQkZBRHNB''@;'; put 'put ''UEFBekFEc0FQQUJHQURVQVJ3QklBRXdBTmdBaUFFa0FTZ0EzQUVVQVRnQlFBR0lBVVFCU0FGUUFSZ0JIQUZVQVNBQk1BRllBU1FCS0FGZ0FXZ0JPQUVRQVVBQlJBRklBVkFBNEFDOEFMQUJWQUNrQVZnQWJBQkFBV0FCYUFGMEFYUUJkQUYwQVhRQmRBRjBBWGdCZUFGNEFYZ0JlQUY0QVhnQmZB''@;'; put 'put ''RjhBWHdCZkFGOEFYd0JmQUdBQUNRQmdBR0FBWUFCZ0FHQUFZUUJoQUdNQUFnQmpBR01BWXdCakFHTUFaQUFBQUdRQUFBQmtBR1FBWkFCbEFBQUFaUUJsQUdVQVpRQmxBR1lBWmdBQUFHWUFaZ0JtQUdZQVp3QUFBR2NBWndCbkFHY0FhQUFBQUdnQWFBQm9BR2dBYUFCY0FGd0FYQUJjQUZ3QVhB''@;'; put 'put ''QmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUFBQVhBQUJBRjBBWFFCZUFGNEFYd0JmQUZ3QVhBQmNBRndBWEFCZ0FGd0FYQUJjQUdF''@;'; put 'put ''QVhBQmNBR0lBWWdCaUFHSUFZZ0JpQUdJQVl3QmtBR1VBWmdCbUFGd0FYQUJuQUZ3QVhBQmNBR0FBWEFCY0FHRUFYQUJoQUZ3QWFBQmhBRndBWWdCaUFHSUFZZ0JpQUdJQVlnQmlBR01BWkFCbEFHVUFYQUJtQUZ3QVhBQmNBR2NBYUFCaEFHSUFZZ0JpQUdJQVlnQmlBR0lBWWdCaUFHSUFZZ0Jp''@;'; put 'put ''QUdJQVlnQmlBR0lBWWdCaUFHSUFZZ0JpQUdJQVlnQUFBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FBQUFDZ0FMQUF3QURRQU9BQW9BRHdBUUFCRUFFZ0FUQUFvQUZBQVZBQlVBRlFBV0FCY0FGUUFZQUJVQUZRQVpBQlVBRlFBVkFCb0FGUUFWQUFvQUZRQVZBQlVBRmdBWEFCZ0FG''@;'; put 'put ''UUFWQUJrQUZRQVZBQlVBR2dBVkFCVUFGUUFWQUJzQURBQU1BQ1FBSGdBZUFDQUFJUUFnQUNFQUpBQWxBQ1lBTFFBeUFDOEFMZ0FxQUNVQUpnQW9BQ2tBTXdBcUFEUUFLd0ExQURZQU53QThBRElBUndBOUFDSUFSUUFpQUQ4QVFBQkdBRE1BTkFCSUFEVUFOZ0EzQUM4QVNRQXFBRWNBU2dCRkFF''@;'; put 'put ''d0FYQUE4QUVZQVhBQTlBRTBBU0FCT0FFOEFVZ0JKQUVFQVVBQlJBRW9BVEFCVEFGUUFNUUJWQUZZQVZ3Qk5BRTRBV0FCUEFGSUFXUUJRQUZFQVdnQmJBRk1BUkFCVUFGVUFWZ0JYQUVzQVJBQXNBRmdBTEFCWkFEZ0FMQUJhQUZzQUhRQWRBQjBBSFFBZEFCMEFIUUFmQUI4QUh3QWZBQjhBSHdB''@;'; put 'put ''ZkFDTUFJd0FqQUNNQUl3QWpBQ01BSndCY0FDY0FKd0FuQUNjQUp3QXdBREFBT1FBY0FEa0FPUUE1QURrQU9RQTZBRndBT2dCY0FEb0FPZ0E2QURzQVhBQTdBRHNBT3dBN0FEc0FQZ0ErQUZ3QVBnQStBRDRBUGdCQ0FGd0FRZ0JDQUVJQVFnQkRBRndBUXdCREFFTUFRd0JEQUFrQVhBQmNBRndB''@;'; put 'put ''WEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBWEFCY0FGd0FYQUJjQUZ3QVhBQmNBRndBQ0FDdS85RUFDZ0N1LzY3L0N3Q3UvNjcvcnYrdS82Ny9ydit1LzY3L0JRRFJB''@;'; put 'put ''SzcvMFFEUkFORUEwUURSQU5FQTBRRFJBSzcvKy8rdS93NEE3UCt1LzY3L3J2K3UvOUVBMFFEUkFORUEwUUFOQUNVQURBQkNBQkFBVUFBVEFHMEFld0FVQUpnQUR3Q21BTU1BcnYrdS82Ny9ydit1LzY3L3J2K3UvNjcvcnYrdS82Ny9ydit1LzY3L3J2K3UvNjcvcnYrdS82Ny9ydit1LzY3L0Z3''@;'; put 'put ''Q3UvM2NBcnY4SEFDNEFydjhtQUs3L0Z3QVJBQ01BcnY4TkFLNy9ydit1LzY3L09nQ3UvNjcvTlFDdS82Ny9ydjhvQUs3L0J3Q3UvenNBUlFDdS8wZ0Fydit1LzY3L3J2K3UvNjcvcnYvOC8rZ0E5di8vL3hvQUFBQW5BQUVBTWdDdS82Ny9BZ0FrQUFNQUx3Q3UvNjcvcnYrdS82Ny8vditVQUs3''@;'; put 'put ''L0NRQWJBSzcvdlArdS82Ny9yLyt1LzY3L3J2K3UvNjcvcnYrdS93QUFBQUFBQUczbTdONEZBQXNBU1FBeEFWTUFmd0V3QVdrQWVBSC9BSUVCVXdLQ0FZTUJoQUdGQVlZQlZBS0hBWWdCaVFGV0Fvb0JWd0tMQVl3QmpnSGRBWThCV1FLUUFWc0NrUUdTQVpNQllBS1VBV01DbGdGcEFwY0JhQUtZ''@;'; put 'put ''QVprQm5BRnZBcDBCY2dLZkFYVUNwZ0dBQXFjQnFBR3BBWU1DckFHdEFhNEJpQUt2QWJBQnNRR0tBcklCaXdLM0FaSUN1QUc1QWJ3QnZRSEVBY1lCeEFIRkFjVUJ4Z0hIQWNrQnh3SElBY2dCeVFIS0Fjd0J5Z0hMQWNzQnpBSHhBZk1COFFIeUFmSUI4d0gwQWZVQjlnR1ZBZmNCdndFZ0FwNEJo''@;'; put 'put ''Z09zQTRnRHJRT0pBNjREaWdPdkE0d0R6QU9PQTgwRGp3UE9BNWtEUlFPWkE3NGZvd1BDQS9jRCtBUDZBL3NEWUI2YkhwNGUzd0JaSDFFZld4OVRIMTBmVlI5ZkgxY2Z2Qit6SDh3Znd4L3NIK1VmL0Ivekh6b0NaU3c3QWp3Q1BRS2FBVDRDWml4QkFrSUNRd0tBQVVRQ2lRSkZBb3dDOUFPNEEv''@;'; put 'put ''a0Q4Z1A5QTNzRC9nTjhBLzhEZlFQQUJNOEVKaUhKQXlvaGF3QXJJZVVBTWlGT0lZTWhoQ0ZnTEdFc1lpeHJBbU1zZlIxa0xIMENiU3hSQW00c2NRSnZMRkFDY0N4U0FuSXNjeXgxTEhZc2Zpdy9BbjhzUUFMeUxQTXNmYWQ1SFl1bmpLZU5wMlVDcXFkbUFzY1FKeTNORUMwdGRnTjNBNXdEdFFD''@;'; put 'put ''U0E5QURtQVBSQTZZRDFRT2dBOVlEbWdQd0E2RUQ4UU9WQS9VRHp3UFhBd0FBQUFCQkFDQWF3QUFnSHdBQkFTOHlBUUVGT1FFQkQwb0JBUzE1QVFFRmNBTUJBNUVESUJHakF5QUpBQVJRRUJBRUlDQmdCQUVoaWdRQk5jRUVBUTNRQkFFL0ZBVUJFekVGTUNhZ0FRRUZzd0VCQTgwQkFRL2VBUUVS''@;'; put 'put ''K0FFQkp5SUNBUkhZQXdFWEFCNEJsYUFlQVY4SUgvZ0lHQi80QmlnZitBZzRIL2dJU0IvNEJtZ2YrQWlJSC9nSW1CLzRDS2dmK0FpNEgvZ0N1aCsyQXNnZnFnVFlIL2dDMmgrY0F1Z2YrQUxxSDVBQytCK0FBdm9mZ2dKR0FnRUpFQVVCQTJBaEVCQUFMREF2Wnl3QkJZQXNBV1ByTEFFRFFLWUJM''@;'; put 'put ''WUNtQVJjaXB3RU5NcWNCUFhtbkFRTitwd0VKa0tjQkE2Q25BUWtoL3lBYUFBQUFBSHNnZG1GeUlIQmhkR2dnUFNCUWIybHVkR1Z5WDNOMGNtbHVaMmxtZVNna01DazdJSFpoY2lCa1lYUmhJRDBnVUc5cGJuUmxjbDl6ZEhKcGJtZHBabmtvSkRFcE95QkdVeTVqY21WaGRHVlFZWFJvS0NJdklp''@;'; put 'put ''d2dVRUZVU0M1a2FYSnVZVzFsS0hCaGRHZ3BLVHNnUmxNdWQzSnBkR1ZHYVd4bEtGQkJWRWd1YW05cGJpZ2lMeUlzSUhCaGRHZ3BMQ0JrWVhSaEtUc2dmUUJqYjNKbEFIaGtiM1IyWlhKemFXOXVBREV1TndBeExqUUFNUzR5QUY5c1pISmhkMThBWDJoa2NtRjNYd0JmZEdSeVlYZGZBRjlvYkdS''@;'; put 'put ''eVlYZGZBRjkwYkdSeVlYZGZBSGhrYjNRZ2RtVnljMmx2YmlBaUpYTWlJSFJ2YnlCc2IyNW5BQ0FsWkNBQUpTNHdNbVlBSlhNbFpDQXRBQ01sTURKNEpUQXllQ1V3TW5nbE1ESjRBSE5sZEd4cGJtVjNhV1IwYUNnQUpTNHpaZ0JUSUFCRElBQXlJQUJGSUFCbElBQkdJQUIwSUNWMUlBQlVJQUJr''@;'; put 'put ''YjNRNlpHOTBBR2QyT21SdmRBQmpZVzV2Ympwa2IzUUFjR3hoYVc0NlpHOTBBSEJzWVdsdUxXVjRkRHBrYjNRQWVHUnZkRHA0Wkc5MEFIaGtiM1F4TGpJNmVHUnZkQUI0Wkc5ME1TNDBPbmhrYjNRQVNTQUFJbDl6ZFdKbmNtRndhRjlqYm5RaU9pQWxaQUFpWDJkMmFXUWlPaUFsWkFBaVpXUm5a''@;'; put 'put ''WE1pT2lCYkNnQWlYMmQyYVdRaU9pQWxaQ3dLQUNKMFlXbHNJam9nSldRc0NnQWlhR1ZoWkNJNklDVmtBQ0p2WW1wbFkzUnpJam9nV3dvQUltNXZaR1Z6SWpvZ1d3b0FJbTVoYldVaU9pQWlKWE1pQUZ3aUFGd3ZBRnhpQUZ4bUFGeHVBRnh5QUZ4MEFDSnpkV0puY21Gd2FITWlPaUJiQ2dBaUpY''@;'; put 'put ''TWlPaUFBSWlWeklnQkRiM1ZzWkNCdWIzUWdjR0Z5YzJVZ2VHUnZkQ0FpSlhNaUNnQmJDZ0FpYjNBaU9pQWlKV01pTEFvQUluSmxZM1FpT2lCYkpTNHdNMllzSlM0d00yWXNKUzR3TTJZc0pTNHdNMlpkQ2dBaWIzQWlPaUFpVENJc0NnQWliM0FpT2lBaVZDSXNDZ0FpY0hRaU9pQmJKUzR3TTJZ''@;'; put 'put ''c0pTNHdNMlpkTEFvQUltRnNhV2R1SWpvZ0lpVmpJaXdLQUNKM2FXUjBhQ0k2SUNVdU1ETm1MQW9BSW5SbGVIUWlPaUFpSlhNaUNnQWlaM0poWkNJNklDSnViMjVsSWl3S0FDSmpiMnh2Y2lJNklDSWxjeUlLQUNKbmNtRmtJam9nSW14cGJtVmhjaUlzQ2dBaVozSmhaQ0k2SUNKeVlXUnBZV3dp''@;'; put 'put ''TEFvQUltOXdJam9nSWtZaUxBb0FJbk5wZW1VaU9pQWxMakF6Wml3S0FDSm1ZV05sSWpvZ0lpVnpJZ29BSW05d0lqb2dJbE1pTEFvQUluTjBlV3hsSWpvZ0lpVnpJZ29BSW05d0lqb2dJblFpTEFvQUltWnZiblJqYUdGeUlqb2dKV1FLQUNKd01DSTZJRnNsTGpBelppd2xMakF6Wml3bExqQXpa''@;'; put 'put ''bDBzQ2dBaWNERWlPaUJiSlM0d00yWXNKUzR3TTJZc0pTNHdNMlpkTEFvQUluTjBiM0J6SWpvZ1d3QjdJbVp5WVdNaU9pQWxMakF6Wml3Z0ltTnZiRzl5SWpvZ0lpVnpJbjBBWFFvQUluQXdJam9nV3lVdU1ETm1MQ1V1TURObVhTd0tBQ0p3TVNJNklGc2xMakF6Wml3bExqQXpabDBzQ2dBaWNH''@;'; put 'put ''OXBiblJ6SWpvZ1d3QmJKUzR3TTJZc0pTNHdNMlpkQUdSeVlYZGZBR3hrY21GM1h3Qm9aSEpoZDE4QWRHUnlZWGRmQUdoc1pISmhkMThBZEd4a2NtRjNYd0FpWkdseVpXTjBaV1FpT2lBbGN5d0tBQ0p6ZEhKcFkzUWlPaUFsY3dCRWRYQnNhV05oZEdVZ1kyeDFjM1JsY2lCdVlXMWxJQ0lsY3lJ''@;'; put 'put ''S0FIaGtiM1FBYW5OdmJnQnFjMjl1TUFCa2IzUmZhbk52YmdCNFpHOTBYMnB6YjI0QWFuTnZianBxYzI5dUFHcHpiMjR3T21wemIyNEFaRzkwWDJwemIyNDZhbk52YmdCNFpHOTBYMnB6YjI0NmFuTnZiZ0J1SUQ0OUlEUUFaM1p5Wlc1a1pYSmZZMjl5WlY5bWFXY3VZd0JtYVdkZlltVjZhV1Z5''@;'; put 'put ''QUdacFoxOXlaWE52YkhabFgyTnZiRzl5QUdacFp3Qm1hV2M2Wm1sbkFHMWhjQUJ5WldOMElDVnpJQ1ZrTENWa0lDVmtMQ1ZrQ2dCamFYSmpiR1VnSlhNZ0pXUXNKV1FzSldRS0FIQnZiSGtnSlhNQUlDVmtMQ1ZrQUdkMmNtVnVaR1Z5WDJOdmNtVmZiV0Z3TG1NQWJXRndYMjkxZEhCMWRGOXph''@;'; put 'put ''R0Z3WlFCeVpXTjBZVzVuYkdVZ0tDVmtMQ1ZrS1NBb0pXUXNKV1FwSUNWeklDVnpDZ0E4WVhKbFlTQnphR0Z3WlQwaVkybHlZMnhsSWdBOFlYSmxZU0J6YUdGd1pUMGljbVZqZENJQVBHRnlaV0VnYzJoaGNHVTlJbkJ2YkhraUFDQm9jbVZtUFNJQUlIUnBkR3hsUFNJQUlHRnNkRDBpSWdBZ1ky''@;'; put 'put ''OXZjbVJ6UFNJQUpXUXNKV1FzSldRQUpXUXNKV1FzSldRc0pXUUFKV1FzSldRQUxDVmtMQ1ZrQUNJK0NnQThMMjFoY0Q0S0FHSmhjMlVnY21WbVpYSmxjZ29BWkdWbVlYVnNkQ0FBUEcxaGNDQnBaRDBpQUNJZ2JtRnRaVDBpQUdsemJXRndPbTFoY0FCamJXRndPbTFoY0FCcGJXRndPbTFoY0FC''@;'; put 'put ''amJXRndlRHB0WVhBQWFXMWhjRjl1Y0RwdFlYQUFZMjFoY0hoZmJuQTZiV0Z3QUNNZ0pYTUtBQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1V1TVdZZ0pXUWdKV1FnSldRZ0pXUWdKV1FnSldRS0FDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVXVNV1ln''@;'; put 'put ''SldRZ0pXUWdKV1FnSldRS0FDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVmtJQ1ZrSUNWa0lDVXVNMllnSldRZ0pTNDBaaUFsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkNBbFpBb0FKV1FnSldRZ0l5VXdNbmdsTURKNEpUQXllQW9BWjNaeVpXNWtaWEpmWTI5eVpWOXRjQzVqQUcxd1gzSmxj''@;'; put 'put ''MjlzZG1WZlkyOXNiM0lBSldRZ0pXUWdKV1FnSldRZ0pXUWdKV1FnSlM0eFppQWxMalJtSUNWa0lDVXVNV1lnSlM0eFppQWxaQ0FsWkNBbGMxd3dNREVLQUNNZ1pXNWtJRzltSUVaSlJ5Qm1hV3hsQ2dBalJrbEhJRE11TWdvQUl5QkhaVzVsY21GMFpXUWdZbmtnSlhNZ2RtVnljMmx2YmlBbGN5''@;'; put 'put ''QW9KWE1wQ2dBaklGUnBkR3hsT2lBbGN3b0FJeUJRWVdkbGN6b2dKV1FLQUZCdmNuUnlZV2wwQ2dCRFpXNTBaWElLQUVsdVkyaGxjd29BVEdWMGRHVnlDZ0F4TURBdU1EQUtBRk5wYm1kc1pRb0FMVElLQURFeU1EQUFJRElLQUcxd0FHMXdPbTF3QUNCZElDQWxaQ0IwY25WbElDVnpDZ0FnWFNB''@;'; put 'put ''Z0pXUWdabUZzYzJVZ0pYTUtBQ0J6WlhSc2FXNWxkMmxrZEdnS0FDVnpJQUJ6WlhSb2MySUFKUzQxWnlBbExqVm5JQ1V1TldjZ0pYTmpiMnh2Y2dvQUpTQUFibVYzY0dGMGFDQUFJRzF2ZG1WMGJ3b0FJR3hwYm1WMGJ3b0FjM1J5YjJ0bENnQWdZM1Z5ZG1WMGJ3b0FZMnh2YzJWd1lYUm9JR1pw''@;'; put 'put ''Ykd3S0FHTnNiM05sY0dGMGFDQnpkSEp2YTJVS0FDQmxiR3hwY0hObFgzQmhkR2dnWm1sc2JBb0FJR1ZzYkdsd2MyVmZjR0YwYUNCemRISnZhMlVLQUNBdkpYTWdjMlYwWDJadmJuUUtBQ0J0YjNabGRHOGdBQ0FsY3lCaGJHbG5ibVZrZEdWNGRBb0FXeUF2VW1WamRDQmJJQUFnWFFvQUlDQXZR''@;'; put 'put ''bTl5WkdWeUlGc2dNQ0F3SURBZ1hRb2dJQzlCWTNScGIyNGdQRHdnTDFOMVluUjVjR1VnTDFWU1NTQXZWVkpKSUNWeklENCtDaUFnTDFOMVluUjVjR1VnTDB4cGJtc0tMMEZPVGlCd1pHWnRZWEpyQ2dCbmMyRjJaUW9BSlNVZ0pYTUtBREFnTUNBd0lHVmtaMlZqYjJ4dmNnb0FaVzVrY0dGblpR''@;'; put 'put ''cHphRzkzY0dGblpRcG5jbVZ6ZEc5eVpRb0FKU1ZRWVdkbFZISmhhV3hsY2dvQUpTVWxKVVZ1WkZCaFoyVTZJQ1ZrQ2dBbEpTVWxVR0ZuWlRvZ0pXUWdKV1FLQUNVbEpTVlFZV2RsUW05MWJtUnBibWRDYjNnNklDVmtJQ1ZrSUNWa0lDVmtDZ0JNWVc1a2MyTmhjR1VBVUc5eWRISmhhWFFBSlNV''@;'; put 'put ''bEpWQmhaMlZQY21sbGJuUmhkR2x2YmpvZ0pYTUtBRHc4SUM5UVlXZGxVMmw2WlNCYkpXUWdKV1JkSUQ0K0lITmxkSEJoWjJWa1pYWnBZMlVLQUNWa0lDVmtJQ1ZrSUdKbFoybHVjR0ZuWlFvQVozTmhkbVVLSldRZ0pXUWdKV1FnSldRZ1ltOTRjSEpwYlNCamJHbHdJRzVsZDNCaGRHZ0tBQ1Zu''@;'; put 'put ''SUNWbklITmxkRjl6WTJGc1pTQWxaQ0J5YjNSaGRHVWdKV2NnSldjZ2RISmhibk5zWVhSbENnQmpZVzUyWVhNZ2MybDZaU0FvSldRc0pXUXBJR1Y0WTJWbFpITWdVRVJHSUd4cGJXbDBJQ2dsWkNrS0NTaHpkV2RuWlhOMElITmxkSFJwYm1jZ1lTQmliM1Z1WkdsdVp5QmliM2dnYzJsNlpTd2dj''@;'; put 'put ''MlZsSUdSdmRDZ3hLU2tLQUZzZ0wwTnliM0JDYjNnZ1d5VmtJQ1ZrSUNWa0lDVmtYU0F2VUVGSFJWTWdjR1JtYldGeWF3b0FKV1FnSldRZ2MyVjBiR0Y1WlhJS0FDVWxKU1ZVYVhSc1pUb2dKWE1LQUNVbFVHRm5aWE02SUNoaGRHVnVaQ2tLQUNVbFVHRm5aWE02SURFS0FDVWxRbTkxYm1ScGJt''@;'; put 'put ''ZENiM2c2SUNoaGRHVnVaQ2tLQUNVbEpTVkNiM1Z1WkdsdVowSnZlRG9nSldRZ0pXUWdKV1FnSldRS0FDVWxSVzVrUTI5dGJXVnVkSE1LYzJGMlpRb0FjMlYwZFhCTVlYUnBiakVLQUZzZ2UwTmhkR0ZzYjJkOUlEdzhJQzlWVWtrZ1BEd2dMMEpoYzJVZ0pYTWdQajRnUGo0S0wxQlZWQ0J3Wkda''@;'; put 'put ''dFlYSnJDZ0FsSlVKbFoybHVVSEp2Ykc5bkFDOUViM1JFYVdOMElESXdNQ0JrYVdOMElHUmxaZ0JFYjNSRWFXTjBJR0psWjJsdUFDOXpaWFIxY0V4aGRHbHVNU0I3QUcxaGNtc0FMMFZ1WTI5a2FXNW5WbVZqZEc5eUlESTFOaUJoY25KaGVTQmtaV1lBSUVWdVkyOWthVzVuVm1WamRHOXlJREFB''@;'; put 'put ''U1ZOUFRHRjBhVzR4Ulc1amIyUnBibWNnTUNBeU5UVWdaMlYwYVc1MFpYSjJZV3dnY0hWMGFXNTBaWEoyWVd3QVJXNWpiMlJwYm1kV1pXTjBiM0lnTkRVZ0wyaDVjR2hsYmlCd2RYUUFKU0JUWlhRZ2RYQWdTVk5QSUV4aGRHbHVJREVnWTJoaGNtRmpkR1Z5SUdWdVkyOWthVzVuQUM5emRHRnli''@;'; put 'put ''bVYwU1ZOUElIc0FJQ0FnSUNBZ0lDQmtkWEFnWkhWd0lHWnBibVJtYjI1MElHUjFjQ0JzWlc1bmRHZ2daR2xqZENCaVpXZHBiZ0FnSUNBZ0lDQWdJSHNnTVNCcGJtUmxlQ0F2UmtsRUlHNWxJSHNnWkdWbUlIMTdJSEJ2Y0NCd2IzQWdmU0JwWm1Wc2MyVUFJQ0FnSUNBZ0lDQjlJR1p2Y21Gc2JB''@;'; put 'put ''QWdJQ0FnSUNBZ0lDOUZibU52WkdsdVp5QkZibU52WkdsdVoxWmxZM1J2Y2lCa1pXWUFJQ0FnSUNBZ0lDQmpkWEp5Wlc1MFpHbGpkQ0JsYm1RZ1pHVm1hVzVsWm05dWRBQjlJR1JsWmdBdlZHbHRaWE10VW05dFlXNGdjM1JoY201bGRFbFRUeUJrWldZQUwxUnBiV1Z6TFVsMFlXeHBZeUJ6ZEdG''@;'; put 'put ''eWJtVjBTVk5QSUdSbFpnQXZWR2x0WlhNdFFtOXNaQ0J6ZEdGeWJtVjBTVk5QSUdSbFpnQXZWR2x0WlhNdFFtOXNaRWwwWVd4cFl5QnpkR0Z5Ym1WMFNWTlBJR1JsWmdBdlNHVnNkbVYwYVdOaElITjBZWEp1WlhSSlUwOGdaR1ZtQUM5SVpXeDJaWFJwWTJFdFQySnNhWEYxWlNCemRHRnlibVYw''@;'; put 'put ''U1ZOUElHUmxaZ0F2U0dWc2RtVjBhV05oTFVKdmJHUWdjM1JoY201bGRFbFRUeUJrWldZQUwwaGxiSFpsZEdsallTMUNiMnhrVDJKc2FYRjFaU0J6ZEdGeWJtVjBTVk5QSUdSbFpnQXZRMjkxY21sbGNpQnpkR0Z5Ym1WMFNWTlBJR1JsWmdBdlEyOTFjbWxsY2kxUFlteHBjWFZsSUhOMFlYSnVa''@;'; put 'put ''WFJKVTA4Z1pHVm1BQzlEYjNWeWFXVnlMVUp2YkdRZ2MzUmhjbTVsZEVsVFR5QmtaV1lBTDBOdmRYSnBaWEl0UW05c1pFOWliR2x4ZFdVZ2MzUmhjbTVsZEVsVFR5QmtaV1lBWTJ4bFlYSjBiMjFoY21zQWZTQmlhVzVrSUdSbFpnQWxKVUpsWjJsdVVtVnpiM1Z5WTJVNklIQnliMk56WlhRZ1oz''@;'; put 'put ''SmhjR2gyYVhvZ01DQXdBQzlqYjI5eVpDMW1iMjUwTFdaaGJXbHNlU0F2VkdsdFpYTXRVbTl0WVc0Z1pHVm1BQzlrWldaaGRXeDBMV1p2Ym5RdFptRnRhV3g1SUM5VWFXMWxjeTFTYjIxaGJpQmtaV1lBTDJOdmIzSmtabTl1ZENCamIyOXlaQzFtYjI1MExXWmhiV2xzZVNCbWFXNWtabTl1ZENB''@;'; put 'put ''NElITmpZV3hsWm05dWRDQmtaV1lBTDBsdWRsTmpZV3hsUm1GamRHOXlJREV1TUNCa1pXWUFMM05sZEY5elkyRnNaU0I3QUNBZ0lDQWdJQ0JrZFhBZ01TQmxlR05vSUdScGRpQXZTVzUyVTJOaGJHVkdZV04wYjNJZ1pYaGphQ0JrWldZQUlDQWdJQ0FnSUhOallXeGxBQ1VnYzNSNWJHVnpBQzl6''@;'; put 'put ''YjJ4cFpDQjdJRnRkSURBZ2MyVjBaR0Z6YUNCOUlHSnBibVFnWkdWbUFDOWtZWE5vWldRZ2V5QmJPU0JKYm5aVFkyRnNaVVpoWTNSdmNpQnRkV3dnWkhWd0lGMGdNQ0J6WlhSa1lYTm9JSDBnWW1sdVpDQmtaV1lBTDJSdmRIUmxaQ0I3SUZzeElFbHVkbE5qWVd4bFJtRmpkRzl5SUcxMWJDQTJJ''@;'; put 'put ''RWx1ZGxOallXeGxSbUZqZEc5eUlHMTFiRjBnTUNCelpYUmtZWE5vSUgwZ1ltbHVaQ0JrWldZQUwybHVkbWx6SUhzdlptbHNiQ0I3Ym1WM2NHRjBhSDBnWkdWbUlDOXpkSEp2YTJVZ2UyNWxkM0JoZEdoOUlHUmxaaUF2YzJodmR5QjdjRzl3SUc1bGQzQmhkR2g5SUdSbFpuMGdZbWx1WkNCa1pX''@;'; put 'put ''WUFMMkp2YkdRZ2V5QXlJSE5sZEd4cGJtVjNhV1IwYUNCOUlHSnBibVFnWkdWbUFDOW1hV3hzWldRZ2V5QjlJR0pwYm1RZ1pHVm1BQzkxYm1acGJHeGxaQ0I3SUgwZ1ltbHVaQ0JrWldZQUwzSnZkVzVrWldRZ2V5QjlJR0pwYm1RZ1pHVm1BQzlrYVdGbmIyNWhiSE1nZXlCOUlHSnBibVFnWkdW''@;'; put 'put ''bUFDOTBZWEJsY21Wa0lIc2dmU0JpYVc1a0lHUmxaZ0FsSUdodmIydHpJR1p2Y2lCelpYUjBhVzVuSUdOdmJHOXlJQUF2Ym05a1pXTnZiRzl5SUhzZ2MyVjBhSE5pWTI5c2IzSWdmU0JpYVc1a0lHUmxaZ0F2WldSblpXTnZiRzl5SUhzZ2MyVjBhSE5pWTI5c2IzSWdmU0JpYVc1a0lHUmxaZ0F2''@;'; put 'put ''WjNKaGNHaGpiMnh2Y2lCN0lITmxkR2h6WW1OdmJHOXlJSDBnWW1sdVpDQmtaV1lBTDI1dmNHTnZiRzl5SUh0d2IzQWdjRzl3SUhCdmNIMGdZbWx1WkNCa1pXWUFMMkpsWjJsdWNHRm5aU0I3Q1NVZ2FTQnFJRzV3WVdkbGN3QUpMMjV3WVdkbGN5QmxlR05vSUdSbFpnQUpMMm9nWlhoamFDQmta''@;'; put 'put ''V1lBQ1M5cElHVjRZMmdnWkdWbUFBa3ZjM1J5SURFd0lITjBjbWx1WnlCa1pXWUFDVzV3WVdkbGN5QXhJR2QwSUhzQUNRbG5jMkYyWlFBSkNRbGpiMjl5WkdadmJuUWdjMlYwWm05dWRBQUpDUWt3SURBZ2JXOTJaWFJ2QUFrSkNTaGNLQ2tnYzJodmR5QnBJSE4wY2lCamRuTWdjMmh2ZHlBb0xD''@;'; put 'put ''a2djMmh2ZHlCcUlITjBjaUJqZG5NZ2MyaHZkeUFvWENrcElITm9iM2NBQ1FsbmNtVnpkRzl5WlFBSmZTQnBaZ0F2YzJWMFgyWnZiblFnZXdBSlptbHVaR1p2Ym5RZ1pYaGphQUFKYzJOaGJHVm1iMjUwSUhObGRHWnZiblFBSlNCa2NtRjNJSFJsZUhRZ1ptbDBkR1ZrSUhSdklHbDBjeUJsZUhC''@;'; put 'put ''bFkzUmxaQ0IzYVdSMGFBQXZZV3hwWjI1bFpIUmxlSFFnZXdrSkNTVWdkMmxrZEdnZ2RHVjRkQUFKTDNSbGVIUWdaWGhqYUNCa1pXWUFDUzkzYVdSMGFDQmxlR05vSUdSbFpnQUpaM05oZG1VQUNRbDNhV1IwYUNBd0lHZDBJSHNBQ1FrSlcxMGdNQ0J6WlhSa1lYTm9BQWtKQ1hSbGVIUWdjM1J5''@;'; put 'put ''YVc1bmQybGtkR2dnY0c5d0lIZHBaSFJvSUdWNFkyZ2djM1ZpSUhSbGVIUWdiR1Z1WjNSb0lHUnBkaUF3SUhSbGVIUWdZWE5vYjNjQUNRbDlJR2xtQUFsbmNtVnpkRzl5WlFBdlltOTRjSEpwYlNCN0NRa0pDU1VnZUdOdmNtNWxjaUI1WTI5eWJtVnlJSGh6YVhwbElIbHphWHBsQUFrSk5DQXlJ''@;'; put 'put ''SEp2Ykd3QUNRbHRiM1psZEc4QUNRa3lJR052Y0hrQUNRbGxlR05vSURBZ2NteHBibVYwYndBSkNUQWdaWGhqYUNCeWJHbHVaWFJ2QUFrSmNHOXdJRzVsWnlBd0lISnNhVzVsZEc4QUNRbGpiRzl6WlhCaGRHZ0FMMlZzYkdsd2MyVmZjR0YwYUNCN0FBa3ZjbmtnWlhoamFDQmtaV1lBQ1M5eWVD''@;'; put 'put ''QmxlR05vSUdSbFpnQUpMM2tnWlhoamFDQmtaV1lBQ1M5NElHVjRZMmdnWkdWbUFBbHRZWFJ5YVhnZ1kzVnljbVZ1ZEcxaGRISnBlQUFKYm1WM2NHRjBhQUFKZUNCNUlIUnlZVzV6YkdGMFpRQUpjbmdnY25rZ2MyTmhiR1VBQ1RBZ01DQXhJREFnTXpZd0lHRnlZd0FKYzJWMGJXRjBjbWw0QUM5''@;'; put 'put ''bGJtUndZV2RsSUhzZ2MyaHZkM0JoWjJVZ2ZTQmlhVzVrSUdSbFpnQXZjMmh2ZDNCaFoyVWdleUI5SUdSbFpnQXZiR0Y1WlhKamIyeHZjbk5sY1FBSld3a2xJR3hoZVdWeUlHTnZiRzl5SUhObGNYVmxibU5sSUMwZ1pHRnlhMlZ6ZENCMGJ5QnNhV2RvZEdWemRBQUpDVnN3SURBZ01GMEFDUWxi''@;'; put 'put ''TGpJZ0xqZ2dMamhkQUFrSld5NDBJQzQ0SUM0NFhRQUpDVnN1TmlBdU9DQXVPRjBBQ1FsYkxqZ2dMamdnTGpoZEFBbGRBR1JsWmdBdmJHRjVaWEpzWlc0Z2JHRjVaWEpqYjJ4dmNuTmxjU0JzWlc1bmRHZ2daR1ZtQUM5elpYUnNZWGxsY2lCN0wyMWhlR3hoZVdWeUlHVjRZMmdnWkdWbUlDOWpk''@;'; put 'put ''WEpzWVhsbGNpQmxlR05vSUdSbFpnQUpiR0Y1WlhKamIyeHZjbk5sY1NCamRYSnNZWGxsY2lBeElITjFZaUJzWVhsbGNteGxiaUJ0YjJRZ1oyVjBBQWxoYkc5aFpDQndiM0FnYzJWMGFITmlZMjlzYjNJQUNTOXViMlJsWTI5c2IzSWdlMjV2Y0dOdmJHOXlmU0JrWldZQUNTOWxaR2RsWTI5c2Iz''@;'; put 'put ''SWdlMjV2Y0dOdmJHOXlmU0JrWldZQUNTOW5jbUZ3YUdOdmJHOXlJSHR1YjNCamIyeHZjbjBnWkdWbUFDOXZibXhoZVdWeUlIc2dZM1Z5YkdGNVpYSWdibVVnZTJsdWRtbHpmU0JwWmlCOUlHUmxaZ0F2YjI1c1lYbGxjbk1nZXdBSkwyMTVkWEJ3WlhJZ1pYaGphQ0JrWldZQUNTOXRlV3h2ZDJW''@;'; put 'put ''eUlHVjRZMmdnWkdWbUFBbGpkWEpzWVhsbGNpQnRlV3h2ZDJWeUlHeDBBQWxqZFhKc1lYbGxjaUJ0ZVhWd2NHVnlJR2QwQUFsdmNnQUplMmx1ZG1semZTQnBaZ0F2WTNWeWJHRjVaWElnTUNCa1pXWUFKU1ZGYm1SU1pYTnZkWEpqWlFBbEpVVnVaRkJ5YjJ4dlp3QWxKVUpsWjJsdVUyVjBkWEFB''@;'; put 'put ''TVRRZ1pHVm1ZWFZzZEMxbWIyNTBMV1poYldsc2VTQnpaWFJmWm05dWRBQWxJQzloY25KdmQyeGxibWQwYUNBeE1DQmtaV1lBSlNBdllYSnliM2QzYVdSMGFDQTFJR1JsWmdBbElHMWhhMlVnYzNWeVpTQndaR1p0WVhKcklHbHpJR2hoY20xc1pYTnpJR1p2Y2lCUVV5MXBiblJsY25CeVpYUmxj''@;'; put 'put ''bk1nYjNSb1pYSWdkR2hoYmlCRWFYTjBhV3hzWlhJQUwzQmtabTFoY21zZ2QyaGxjbVVnZTNCdmNIMGdlM1Z6WlhKa2FXTjBJQzl3WkdadFlYSnJJQzlqYkdWaGNuUnZiV0Z5YXlCc2IyRmtJSEIxZEgwZ2FXWmxiSE5sQUNVZ2JXRnJaU0FuUER3bklHRnVaQ0FuUGo0bklITmhabVVnYjI0Z1VG''@;'; put 'put ''TWdUR1YyWld3Z01TQmtaWFpwWTJWekFDOXNZVzVuZFdGblpXeGxkbVZzSUhkb1pYSmxJSHR3YjNBZ2JHRnVaM1ZoWjJWc1pYWmxiSDE3TVgwZ2FXWmxiSE5sQURJZ2JIUWdld0FnSUNBZ2RYTmxjbVJwWTNRZ0tEdzhLU0JqZG00Z0tGc3BJR04yYmlCc2IyRmtJSEIxZEFBZ0lDQWdkWE5sY21S''@;'; put 'put ''cFkzUWdLRDQrS1NCamRtNGdLRnNwSUdOMmJpQnNiMkZrSUhCMWRBQjlJR2xtQUNVbFJXNWtVMlYwZFhBQUpTVlVjbUZwYkdWeUNnQWxKU1VsVUdGblpYTTZJQ1ZrQ2dCbGJtUUtjbVZ6ZEc5eVpRb0FKU1ZGVDBZS0FDVWhVRk10UVdSdlltVXRNeTR3QUNCRlVGTkdMVE11TUFvQUpTVWxKVU55''@;'; put 'put ''WldGMGIzSTZJQ1Z6SUhabGNuTnBiMjRnSlhNZ0tDVnpLUW9BY0hNeU9uQnpBRHdoTFMwZ0FEeHdiMng1YkdsdVpRQWdjRzlwYm5SelBTSUFJaTgrQ2dBZ1ptbHNiRDBpQUhWeWJDZ2piRjhsWkNrQWRYSnNLQ055WHlWa0tRQWlJR1pwYkd3dGIzQmhZMmwwZVQwaUpXWUFJaUJ6ZEhKdmEyVTlJ''@;'; put 'put ''Z0FpSUhOMGNtOXJaUzEzYVdSMGFEMGlBQ0lnYzNSeWIydGxMV1JoYzJoaGNuSmhlVDBpSlhNQU5Td3lBREVzTlFBaUlITjBjbTlyWlMxdmNHRmphWFI1UFNJbFpnQm5kbkpsYm1SbGNsOWpiM0psWDNOMlp5NWpBSE4yWjE5d2NtbHVkRjlqYjJ4dmNnQThjR0YwYUFBZ2FXUTlJZ0JmY0NJZ0FD''@;'; put 'put ''QmtQU0lBSldNQVBHUmxabk0rQ2p4eVlXUnBZV3hIY21Ga2FXVnVkQ0JwWkQwaWNsOGxaQ0lnWTNnOUlqVXdKU1VpSUdONVBTSTFNQ1VsSWlCeVBTSTNOU1VsSWlCbWVEMGlKV1FsSlNJZ1puazlJaVZrSlNVaVBnb0FQSE4wYjNBZ2IyWm1jMlYwUFNJd0lpQnpkSGxzWlQwaWMzUnZjQzFqYjJ4''@;'; put 'put ''dmNqb0FPM04wYjNBdGIzQmhZMmwwZVRvQU1TNEFPeUl2UGdvQVBITjBiM0FnYjJabWMyVjBQU0l4SWlCemRIbHNaVDBpYzNSdmNDMWpiMnh2Y2pvQU95SXZQZ284TDNKaFpHbGhiRWR5WVdScFpXNTBQZ284TDJSbFpuTStDZ0E4WkdWbWN6NEtQR3hwYm1WaGNrZHlZV1JwWlc1MElHbGtQU0pz''@;'; put 'put ''WHlWa0lpQm5jbUZrYVdWdWRGVnVhWFJ6UFNKMWMyVnlVM0JoWTJWUGJsVnpaU0lnQUhneFBTSUFJaUI1TVQwaUFDSWdlREk5SWdBaUlIa3lQU0lBSWlBK0NnQThjM1J2Y0NCdlptWnpaWFE5SWlVdU1ETm1JaUJ6ZEhsc1pUMGljM1J2Y0MxamIyeHZjam9BT3lJdlBnbzhMMnhwYm1WaGNrZHlZ''@;'; put 'put ''V1JwWlc1MFBnbzhMMlJsWm5NK0NnQThjRzlzZVdkdmJnQThaV3hzYVhCelpRQWdZM2c5SWdBaUlHTjVQU0lBSWlCeWVEMGlBQ0lnY25rOUlnQThkR1Y0ZEFBZ2RHVjRkQzFoYm1Ob2IzSTlJbk4wWVhKMElnQWdkR1Y0ZEMxaGJtTm9iM0k5SW1WdVpDSUFJSFJsZUhRdFlXNWphRzl5UFNKdGFX''@;'; put 'put ''UmtiR1VpQUNCNFBTSUFJaUI1UFNJQUlHWnZiblF0Wm1GdGFXeDVQU0lsY3dBc0pYTUFJR1p2Ym5RdGQyVnBaMmgwUFNJbGN5SUFJR1p2Ym5RdGMzUnlaWFJqYUQwaUpYTWlBQ0JtYjI1MExYTjBlV3hsUFNJbGN5SUFJR1p2Ym5RdFptRnRhV3g1UFNJbGN5SUFJR1p2Ym5RdGQyVnBaMmgwUFNK''@;'; put 'put ''aWIyeGtJZ0FnWm05dWRDMXpkSGxzWlQwaWFYUmhiR2xqSWdBZ2RHVjRkQzFrWldOdmNtRjBhVzl1UFNJQUpYTnZkbVZ5YkdsdVpRQWxjMnhwYm1VdGRHaHliM1ZuYUFBZ1ltRnpaV3hwYm1VdGMyaHBablE5SW5OMWNHVnlJZ0FnWW1GelpXeHBibVV0YzJocFpuUTlJbk4xWWlJQUlHWnZiblF0''@;'; put 'put ''YzJsNlpUMGlKUzR5WmlJQUlHWnBiR3c5SWlWeklnQWdabWxzYkQwaUl5VXdNbmdsTURKNEpUQXllQ0lBYzNablgzUmxlSFJ6Y0dGdUFENEFQSFJsZUhSUVlYUm9JSGhzYVc1ck9taHlaV1k5SWlNbGMxOXdJaUJ6ZEdGeWRFOW1abk5sZEQwaU5UQWxKU0krQUR4MGMzQmhiaUI0UFNJd0lpQmtl''@;'; put 'put ''VDBpQUNJK0FEd3ZkSE53WVc0K1BDOTBaWGgwVUdGMGFENEFQQzkwWlhoMFBnb0FQQzluUGdvQVBHY0FJR2xrUFNKaFh3QWdlR3hwYm1zNmFISmxaajBpQUNCNGJHbHVhenAwYVhSc1pUMGlBQ0IwWVhKblpYUTlJZ0E4ZEdsMGJHVStBRHd2ZEdsMGJHVStDZ0E4WnlCcFpEMGlBRjhsY3dBaUlH''@;'; put 'put ''TnNZWE56UFNJbGN3QmpiR0Z6Y3dBZ2RISmhibk5tYjNKdFBTSnpZMkZzWlNnQUtTQnliM1JoZEdVb0pXUXBJSFJ5WVc1emJHRjBaU2dBS1NJK0NnQThMM04yWno0S0FEd2hMUzBBSUZCaFoyVnpPaUFsWkNBdExUNEtBRHh6ZG1jZ2QybGtkR2c5SWlWa2NIUWlJR2hsYVdkb2REMGlKV1J3ZENJ''@;'; put 'put ''S0FDQjJhV1YzUW05NFBTSWxMakptSUNVdU1tWWdKUzR5WmlBbExqSm1JZ0FnZUcxc2JuTTlJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5Mekl3TURBdmMzWm5JZ0FnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lBRHcvZUcxc0lIWmxjbk5w''@;'; put 'put ''YjI0OUlqRXVNQ0lnWlc1amIyUnBibWM5SWxWVVJpMDRJaUJ6ZEdGdVpHRnNiMjVsUFNKdWJ5SS9QZ29BYzNSNWJHVnphR1ZsZEFBOFAzaHRiQzF6ZEhsc1pYTm9aV1YwSUdoeVpXWTlJZ0FpSUhSNWNHVTlJblJsZUhRdlkzTnpJajgrQ2dBOElVUlBRMVJaVUVVZ2MzWm5JRkJWUWt4SlF5QWlM''@;'; put 'put ''Uzh2VnpOREx5OUVWRVFnVTFaSElERXVNUzh2UlU0aUNnQWdJbWgwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMGR5WVhCb2FXTnpMMU5XUnk4eExqRXZSRlJFTDNOMlp6RXhMbVIwWkNJK0NnQThJUzB0SUVkbGJtVnlZWFJsWkNCaWVTQUFaR0Z5YTJKc2RXVUFaR0Z5YTJONVlXNEFaR0Z5YTJkeVlY''@;'; put 'put ''a0FaR0Z5YTJkeVpYa0FaR0Z5YTIxaFoyVnVkR0VBWkdGeWEzSmxaQUJzYVdkb2RHZHlaV1Z1QUNNZ0FDQmpjbVZoZEdVZ2JHbHVaU0FBSUMxbWFXeHNJQUFnTFdSaGMyZ2dOUUFnTFdSaGMyZ2dNZ0JuZG5KbGJtUmxjbDlqYjNKbFgzUnJMbU1BZEd0blpXNWZjSEpwYm5SZmRHRm5jd0JuY21G''@;'; put 'put ''d2FDQnNZV0psYkFBZ0xYUmhaM01nZXlWa0pYTWxjSDBBZEd0blpXNWZjSEpwYm5SZlkyOXNiM0lBSkdNQUlDMTNhV1IwYUNBQUlDMXpiVzl2ZEdnZ1ltVjZhV1Z5SUFBZ1kzSmxZWFJsSUhCdmJIbG5iMjRnQUNBdGIzVjBiR2x1WlNBQUlHTnlaV0YwWlNCdmRtRnNJQUFnWTNKbFlYUmxJSFJs''@;'; put 'put ''ZUhRZ0FDQXRkR1Y0ZENCN0FIMEFJQzFtYjI1MElIc0FJQ1ZrZlFBZ0xXRnVZMmh2Y2lCM0FDQXRZVzVqYUc5eUlHVUFJd0FnVkdsMGJHVTZJQUFnVUdGblpYTTZJQ1ZrQ2dBaklFZGxibVZ5WVhSbFpDQmllU0FBS1FvQWRHc0FkR3M2ZEdzQUlDQWdJQ0FnUENFdExTQUFJQzB0UGdvQVJYSnli''@;'; put 'put ''M0lnWkhWeWFXNW5JR052Ym5abGNuTnBiMjRnZEc4Z0lsVlVSaTA0SWk0Z0lGRjFhWFJwYm1jdUNnQWdQSFk2YzJoaGNHVWdjM1I1YkdVOUluQnZjMmwwYVc5dU9tRmljMjlzZFhSbE95QUFJSGRwWkhSb09pQWxaRHNnYUdWcFoyaDBPaUFsWkNJZ1ptbHNiR1ZrUFNKbVlXeHpaU0krQUR4Mk9u''@;'; put 'put ''QmhkR2dnZGowaUFDQnRJQUFsTGpCbUxDVXVNR1lnQUNCc0lBQWdaU0FBSWk4K0FEd3ZkanB6YUdGd1pUNEtBRHgyT25OMGNtOXJaU0JqYjJ4dmNqMGlBQ0lnZDJWcFoyaDBQU0lsTGpCbWNIUUFJaUJrWVhOb2MzUjViR1U5SW1SaGMyZ0FJaUJrWVhOb2MzUjViR1U5SW1SdmRBQWlJQzgrQUNN''@;'; put 'put ''bE1ESjRKVEF5ZUNVd01uZ0FaM1p5Wlc1a1pYSmZZMjl5WlY5MmJXd3VZd0IyYld4ZmNISnBiblJmWTI5c2IzSUFJSGRwWkhSb09pQWxaRHNnYUdWcFoyaDBPaUFsWkNJQUlENEFQSFk2Y0dGMGFDQWdkajBpQUM4K1BDOTJPbk5vWVhCbFBnb0FiU0FBSlhNbExqQm1MQ1V1TUdZZ0FHTWdBQ0Jt''@;'; put 'put ''YVd4c1pXUTlJblJ5ZFdVaUlHWnBiR3hqYjJ4dmNqMGlBQ0lnQUNCbWFXeHNaV1E5SW1aaGJITmxJaUFBSlM0d1ppQWxMakJtSUFCc0lBQjRJR1VnSWk4K0FDQWdQSFk2YjNaaGJDQnpkSGxzWlQwaWNHOXphWFJwYjI0NllXSnpiMngxZEdVN0FDQnNaV1owT2lBbExqSm1PeUIwYjNBNklDVXVN''@;'; put 'put ''bVk3QUNCM2FXUjBhRG9nSlM0eVpqc2dhR1ZwWjJoME9pQWxMakptSWdBOEwzWTZiM1poYkQ0S0FEeDJPbkpsWTNRZ2MzUjViR1U5SW5CdmMybDBhVzl1T21GaWMyOXNkWFJsT3lBQUlITjBjbTlyWldROUltWmhiSE5sSWlCbWFXeHNaV1E5SW1aaGJITmxJajRLQUR4Mk9uUmxlSFJpYjNnZ2FX''@;'; put 'put ''NXpaWFE5SWpBc01Dd3dMREFpSUhOMGVXeGxQU0p3YjNOcGRHbHZianBoWW5OdmJIVjBaVHNnZGkxMFpYaDBMWGR5WVhCd2FXNW5PaWRtWVd4elpTYzdjR0ZrWkdsdVp6b25NQ2M3QUdadmJuUXRabUZ0YVd4NU9pQW5KWE1uT3dCbWIyNTBMWGRsYVdkb2REb2dKWE03QUdadmJuUXRjM1J5WlhS''@;'; put 'put ''amFEb2dKWE03QUdadmJuUXRjM1I1YkdVNklDVnpPd0FnWm05dWRDMXphWHBsT2lBbExqSm1jSFE3QUdOdmJHOXlPaVZ6T3dCamIyeHZjam9qSlRBeWVDVXdNbmdsTURKNE93QjJiV3hmZEdWNGRITndZVzRBSWo0OFkyVnVkR1Z5UGdBOEwyTmxiblJsY2o0OEwzWTZkR1Y0ZEdKdmVENEtBRHd2''@;'; put 'put ''ZGpweVpXTjBQZ29BUEM5aFBnb0FQR0VBSUdoeVpXWTlJaVZ6SWdBZ2RHbDBiR1U5SWlWeklnQWdkR0Z5WjJWMFBTSWxjeUlBUGdvQVBDOTJPbWR5YjNWd1Bnb0FQQzlFU1ZZK0NnQThSRWxXSUdsa1BTZGZWazFNTWw4bklITjBlV3hsUFNKd2IzTnBkR2x2YmpweVpXeGhkR2wyWlR0MmFYTnBZ''@;'; put 'put ''bWxzYVhSNU9taHBaR1JsYmlJK0NnQThJUzB0SUdsdWMyVnlkQ0JoYm5rZ2IzUm9aWElnYUhSdGJDQmpiMjUwWlc1MElHaGxjbVVnTFMwK0NnQThSRWxXSUdsa1BTZGZibTkwVmsxTU1WOG5JSE4wZVd4bFBTSndiM05wZEdsdmJqcHlaV3hoZEdsMlpUc2lQZ29BUENFdExTQjBhR2x6SUhOb2Iz''@;'; put 'put ''VnNaQ0J2Ym14NUlHUnBjM0JzWVhrZ2IyNGdUazlPTFVsRklHSnliM2R6WlhKeklDMHRQZ29BUEVneVBsTnZjbko1TENCMGFHbHpJR1JwWVdkeVlXMGdkMmxzYkNCdmJteDVJR1JwYzNCc1lYa2dZMjl5Y21WamRHeDVJRzl1SUVsdWRHVnlibVYwSUVWNGNHeHZjbVZ5SURVZ0tHRnVaQ0IxY0Nr''@;'; put 'put ''Z1luSnZkM05sY25NdVBDOUlNajRLQUR4RVNWWWdhV1E5SjE5dWIzUldUVXd5WHljZ2MzUjViR1U5SW5CdmMybDBhVzl1T25KbGJHRjBhWFpsT3lJK0NnQThJUzB0SUdsdWMyVnlkQ0JoYm5rZ2IzUm9aWElnVGs5T0xVbEZJR2gwYld3Z1kyOXVkR1Z1ZENCb1pYSmxJQzB0UGdvQVBDOUNUMFJa''@;'; put 'put ''UGdvOEwwaFVUVXcrQ2dBOFNFVkJSRDRBUEUxRlZFRWdhSFIwY0MxbGNYVnBkajBpUTI5dWRHVnVkQzFVZVhCbElpQmpiMjUwWlc1MFBTSjBaWGgwTDJoMGJXdzdJR05vWVhKelpYUTlWVlJHTFRnaVBnb0FQRlJKVkV4RlBnQThMMVJKVkV4RlBnQThJUzB0SUZCaFoyVnpPaUFsWkNBdExUNEtB''@;'; put 'put ''Q0FnSUR4VFExSkpVRlFnVEVGT1IxVkJSMFU5SjBwaGRtRnpZM0pwY0hRblBnb0FJQ0FnWm5WdVkzUnBiMjRnWW5KdmQzTmxjbU5vWldOcktDa0tBQ0FnSUhzS0FDQWdJQ0FnSUhaaGNpQjFZU0E5SUhkcGJtUnZkeTV1WVhacFoyRjBiM0l1ZFhObGNrRm5aVzUwQ2dBZ0lDQWdJQ0IyWVhJZ2JY''@;'; put 'put ''TnBaU0E5SUhWaExtbHVaR1Y0VDJZZ0tDQW5UVk5KUlNBbklDa0tBQ0FnSUNBZ0lIWmhjaUJwWlhabGNuTTdDZ0FnSUNBZ0lDQjJZWElnYVhSbGJUc0tBQ0FnSUNBZ0lIWmhjaUJXVFV4NVpYTTlibVYzSUVGeWNtRjVLQ2RmVmsxTU1WOG5MQ2RmVmsxTU1sOG5LVHNLQUNBZ0lDQWdJSFpoY2lC''@;'; put 'put ''V1RVeHViejF1WlhjZ1FYSnlZWGtvSjE5dWIzUldUVXd4WHljc0oxOXViM1JXVFV3eVh5Y3BPd29BSUNBZ0lDQWdhV1lnS0NCdGMybGxJRDRnTUNBcGV5QWdJQ0FnSUM4dklFbG1JRWx1ZEdWeWJtVjBJRVY0Y0d4dmNtVnlMQ0J5WlhSMWNtNGdkbVZ5YzJsdmJpQnVkVzFpWlhJS0FDQWdJQ0Fn''@;'; put 'put ''SUNBZ0lHbGxkbVZ5Y3owZ2NHRnljMlZKYm5RZ0tIVmhMbk4xWW5OMGNtbHVaeUFvYlhOcFpTczFMQ0IxWVM1cGJtUmxlRTltSUNnbkxpY3NJRzF6YVdVZ0tTa3BDZ0FnSUNBZ0lDQjlDZ0FnSUNBZ0lDQnBaaUFvYVdWMlpYSnpQajAxS1hzS0FDQWdJQ0FnSUNCbWIzSWdLSGdnYVc0Z1ZrMU1l''@;'; put 'put ''V1Z6S1hzS0FDQWdJQ0FnSUNBZ0lHbDBaVzBnUFNCa2IyTjFiV1Z1ZEM1blpYUkZiR1Z0Wlc1MFFubEpaQ2hXVFV4NVpYTmJlRjBwT3dvQUlDQWdJQ0FnSUNBZ2FXWWdLR2wwWlcwcElIc0tBQ0FnSUNBZ0lDQWdJQ0FnYVhSbGJTNXpkSGxzWlM1MmFYTnBZbWxzYVhSNVBTZDJhWE5wWW14bEp6''@;'; put 'put ''c0tBQ0FnSUNBZ0lDQWdJSDBLQUNBZ0lDQWdJQ0I5Q2dBZ0lDQWdJQ0FnWm05eUlDaDRJR2x1SUZaTlRHNXZLWHNLQUNBZ0lDQWdJQ0FnSUdsMFpXMGdQU0JrYjJOMWJXVnVkQzVuWlhSRmJHVnRaVzUwUW5sSlpDaFdUVXh1YjF0NFhTazdDZ0FnSUNBZ0lDQWdJQ0FnSUdsMFpXMHVjM1I1YkdV''@;'; put 'put ''dWRtbHphV0pwYkdsMGVUMG5hR2xrWkdWdUp6c0tBQ0FnSUNBZ2ZXVnNjMlY3Q2dBZ0lDQWdJSDBLQUNBZ0lIMEtBQ0FnSUR3dlUwTlNTVkJVUGdvQVBDOUlSVUZFUGdBOFFrOUVXU0J2Ym14dllXUTlKMkp5YjNkelpYSmphR1ZqYXlncE95YytDZ0E4UkVsV0lHbGtQU2RmVmsxTU1WOG5JSE4w''@;'; put 'put ''ZVd4bFBTSndiM05wZEdsdmJqcHlaV3hoZEdsMlpUc2daR2x6Y0d4aGVUcHBibXhwYm1VN0lIWnBjMmxpYVd4cGRIazZhR2xrWkdWdUFDQjNhV1IwYURvZ0pXUndkRHNnYUdWcFoyaDBPaUFsWkhCMElqNEtBRHhUVkZsTVJUNEtBSFpjT2lvZ2V5QmlaV2hoZG1sdmNqb2dkWEpzS0NOa1pXWmhk''@;'; put 'put ''V3gwSTFaTlRDazdaR2x6Y0d4aGVUcHBibXhwYm1VdFlteHZZMnQ5Q2dBOEwxTlVXVXhGUGdvQVBIaHRiRHB1WVcxbGMzQmhZMlVnYm5NOUluVnlianB6WTJobGJXRnpMVzFwWTNKdmMyOW1kQzFqYjIwNmRtMXNJaUJ3Y21WbWFYZzlJbllpSUM4K0NnQWdQSFk2WjNKdmRYQWdjM1I1YkdVOUlu''@;'; put 'put ''QnZjMmwwYVc5dU9uSmxiR0YwYVhabE95QUFJSGRwWkhSb09pQWxaSEIwT3lCb1pXbG5hSFE2SUNWa2NIUWlBQ0JqYjI5eVpHOXlhV2RwYmowaU1Dd3dJaUJqYjI5eVpITnBlbVU5SWlWa0xDVmtJaUErQUR4SVZFMU1QZ29BQ2p3aExTMGdSMlZ1WlhKaGRHVmtJR0o1SUFBZ2RtVnljMmx2YmlB''@;'; put 'put ''QUlDZ0FLUW90TFQ0S0FHRnhkV0VBWm5WamFITnBZUUJzYVcxbEFHOXNhWFpsQUhSbFlXd0FkbTFzQUhadGJEcDJiV3dBTHk4cUtpb2dZMjl0YldWdWREb2dKWE1LQUM4dktpb3FJSEJ2Ykhsc2FXNWxDZ0J6WTJGc1pTQWdJQ0E4SlRrdU0yWXNJQ1U1TGpObUxDQWxPUzR6Wmo0S0FISnZkR0Yw''@;'; put 'put ''WlNBZ0lEd2xPUzR6Wml3Z0pUa3VNMllzSUNVNUxqTm1QZ29BZEhKaGJuTnNZWFJsUENVNUxqTm1MQ0FsT1M0elppd2dKVGt1TTJZK0NnQnpjR2hsY21WZmMzZGxaWEFnZXdvZ0lDQWdKWE1LSUNBZ0lDVmtMQW9BYkdsdVpXRnlYM053YkdsdVpRQThKVGt1TTJZc0lDVTVMak5tTENBbE9TNHpa''@;'; put 'put ''ajRzSUNVdU0yWUtBQ1Z6SUNBZ0lDVnpBQ0FnSUNCMGIyeGxjbUZ1WTJVZ01DNHdNUW9nSUNBZ0pYTWdJQ0FnSlhNZ0lDQWdKWE1nSUNBZ0pYTjlDZ0FsY3lWekFDVnpJSFJ5WVc1emJXbDBJQ1V1TTJZQVVtVmtBRWR5WldWdUFFSnNkV1VBY21kaVBDVTVMak5tTENBbE9TNHpaaXdnSlRrdU0y''@;'; put 'put ''WStJSFJ5WVc1emJXbDBJQ1V1TTJZQWIyOXdjeXdnYVc1MFpYSnVZV3dnWlhKeWIzSTZJSFZ1YUdGdVpHeGxaQ0JqYjJ4dmNpQjBlWEJsUFNWa0lDVnpDZ0JuZG5KbGJtUmxjbDlqYjNKbFgzQnZkaTVqQUhCdmRsOWpiMnh2Y2w5aGMxOXpkSElBY0dsbmJXVnVkQ0I3SUdOdmJHOXlJQ1Z6SUgw''@;'; put 'put ''S0FIQnZkaUJ5Wlc1a1pYSmxjanBsYkNBdElDVnpDZ0F2THlvcUtpQmlaWHBwWlhJS0FHSmZjM0JzYVc1bEFDQWdJQ0FnSUNBZ2RHOXNaWEpoYm1ObElEQXVNREVLSUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpmUW9BTHk4cUtpb2djRzlzZVdkdmJnb0FJQ0FnSUhSdmJHVnlZVzVq''@;'; put 'put ''WlNBd0xqRUtJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpJQ0FnSUNWemZRb0FjRzlzZVdkdmJpQjdJQ1ZrTEFvQVBDVTVMak5tTENBbE9TNHpaaXdnSlRrdU0yWStBQ1Z6Q2lBZ0lDQWxjd0FLSUNBZ0lDVnpJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpmUW9BTHk4cUtpb2daV3hzYVhCelpRb0Fk''@;'; put 'put ''Rzl5ZFhNZ2V5QWxMak5tTENBbExqTm1DaUFnSUNBbGN5QWdJQ0FsY3lBZ0lDQWxjeUFnSUNBbGMzMEtBSE53YUdWeVpTQjdQQ1U1TGpObUxDQWxPUzR6Wml3Z0pUa3VNMlkrTENBeExqQUtJQ0FnSUNWeklDQWdJQ1Z6SUNBZ0lDVnpJQ0FnSUNWemZRb0FMeThxS2lvZ2RHVjRkSE53WVc0NklD''@;'; put 'put ''VnpMQ0JtYjI1MGMybDZaU0E5SUNVdU0yWXNJR1p2Ym5SdVlXMWxJRDBnSlhNS0FITmpZV3hsSUNVdU0yWUtBSFJsZUhRZ2V3b2dJQ0FnZEhSbUlDSWxjeUlzQ2lBZ0lDQWlKWE1pTENBbExqTm1MQ0FsTGpObUNpQWdJQ0FsY3lBZ0lDQWxjeUFnSUNBbGN5QWdJQ0FsY3lBZ0lDQWxjMzBLQUNB''@;'; put 'put ''Z0lDQnViMTl6YUdGa2IzY0tBQzh2S2lvcUlHVnVaRjlsWkdkbENnQXZMeW9xS2lCaVpXZHBibDlsWkdkbENnQXZMeW9xS2lCbGJtUmZibTlrWlFvQUx5OHFLaW9nWW1WbmFXNWZibTlrWlRvZ0pYTUtBQzh2S2lvcUlHVnVaRjlqYkhWemRHVnlDZ0F2THlvcUtpQmlaV2RwYmw5amJIVnpkR1Z5''@;'; put 'put ''Q2dBdkx5b3FLaUJsYm1SZmNHRm5aUW9BTHk4cUtpb2dZbVZuYVc1ZmNHRm5aUW9BTHk4cUtpb2daVzVrWDJ4aGVXVnlDZ0F2THlvcUtpQmlaV2RwYmw5c1lYbGxjam9nSlhNc0lDVmtMeVZrQ2dBdkx5b3FLaUJsYm1SZlozSmhjR2dLQUM4dktpb3FJR0psWjJsdVgyZHlZWEJvSUNWekNnQmpZ''@;'; put 'put ''VzFsY21FZ2V5QnNiMk5oZEdsdmJpQThKUzR6WmlBc0lDVXVNMllnTENBbExqTm1QZ29nSUNBZ0lDQWdJQ0JzYjI5clgyRjBJQ0E4SlM0elppQXNJQ1V1TTJZZ0xDQWxMak5tUGdvZ0lDQWdJQ0FnSUNCeWFXZG9kQ0I0SUNvZ2FXMWhaMlZmZDJsa2RHZ2dMeUJwYldGblpWOW9aV2xuYUhRS0lD''@;'; put 'put ''QWdJQ0FnSUNBZ1lXNW5iR1VnSlM0elpncDlDZ0F2TDNOcmVRcHdiR0Z1WlNCN0lEd3dMQ0F4TENBd1Bpd2dNU0JvYjJ4c2IzY0tJQ0FnSUhSbGVIUjFjbVVnZXdvZ0lDQWdJQ0FnSUhCcFoyMWxiblFnZXlCaWIzcHZJSFIxY21KMWJHVnVZMlVnTUM0NU5Rb2dJQ0FnSUNBZ0lDQWdJQ0JqYjJ4''@;'; put 'put ''dmNsOXRZWEFnZXdvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnV3pBdU1EQWdjbWRpSUR3d0xqQTFMQ0F3TGpJd0xDQXdMalV3UGwwS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZzd0xqVXdJSEpuWWlBOE1DNHdOU3dnTUM0eU1Dd2dNQzQxTUQ1ZENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCYk1DNDNOU0J5''@;'; put 'put ''WjJJZ1BERXVNREFzSURFdU1EQXNJREV1TURBK1hRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1d6QXVOelVnY21kaUlEd3dMakkxTENBd0xqSTFMQ0F3TGpJMVBsMEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGc3hMakF3SUhKbllpQThNQzQxTUN3Z01DNDFNQ3dnTUM0MU1ENWRDaUFnSUNBZ0lDQWdJ''@;'; put 'put ''Q0FnSUgwS0lDQWdJQ0FnSUNBZ0lDQWdjMk5oYkdVZ1BERXVNREFzSURFdU1EQXNJREV1TlRBK0lDb2dNaTQxTUFvZ0lDQWdJQ0FnSUNBZ0lDQjBjbUZ1YzJ4aGRHVWdQREF1TURBc0lEQXVNREFzSURBdU1EQStDaUFnSUNBZ0lDQWdmUW9nSUNBZ0lDQWdJR1pwYm1semFDQjdJR0Z0WW1sbGJu''@;'; put 'put ''UWdNU0JrYVdabWRYTmxJREFnZlFvZ0lDQWdmUW9nSUNBZ2MyTmhiR1VnTVRBd01EQUtmUW92TDIxcGMzUUtabTluSUhzZ1ptOW5YM1I1Y0dVZ01nb2dJQ0FnWkdsemRHRnVZMlVnTlRBS0lDQWdJR052Ykc5eUlISm5ZaUE4TVM0d01Dd2dNUzR3TUN3Z01TNHdNRDRnS2lBd0xqYzFDaUFnSUNC''@;'; put 'put ''bWIyZGZiMlptYzJWMElEQXVNVEFLSUNBZ0lHWnZaMTloYkhRZ01TNDFNQW9nSUNBZ2RIVnlZblZzWlc1alpTQXhMamMxQ24wS0x5OW5ibVFLY0d4aGJtVWdleUE4TUM0d01Dd2dNUzR3TUN3Z01DNHdNRDRzSURBS0lDQWdJSFJsZUhSMWNtVWdld29nSUNBZ0lDQWdJSEJwWjIxbGJuUjdJR052''@;'; put 'put ''Ykc5eUlISm5ZaUE4TUM0eU5Td2dNQzQwTlN3Z01DNHdNRDRnZlFvZ0lDQWdJQ0FnSUc1dmNtMWhiQ0I3SUdKMWJYQnpJREF1TnpVZ2MyTmhiR1VnTUM0d01TQjlDaUFnSUNBZ0lDQWdabWx1YVhOb0lIc2djR2h2Ym1jZ01DNHhNQ0I5Q2lBZ0lDQjlDbjBLQUd4cFoyaDBYM052ZFhKalpTQjdJ''@;'; put 'put ''RHd4TlRBd0xETXdNREFzTFRJMU1EQStJR052Ykc5eUlGZG9hWFJsSUgwS0FDTjJaWEp6YVc5dUlETXVOanNLQUdkc2IySmhiRjl6WlhSMGFXNW5jeUI3SUdGemMzVnRaV1JmWjJGdGJXRWdNUzR3SUgwS0FDTmtaV1poZFd4MElIc2dabWx1YVhOb0lIc2dZVzFpYVdWdWRDQXdMakVnWkdsbVpu''@;'; put 'put ''VnpaU0F3TGprZ2ZTQjlDZ0FqYVc1amJIVmtaU0FpWTI5c2IzSnpMbWx1WXlJS0kybHVZMngxWkdVZ0luUmxlSFIxY21WekxtbHVZeUlLSTJsdVkyeDFaR1VnSW5Ob1lYQmxjeTVwYm1NaUNnQWpaR1ZqYkdGeVpTQWxjeUE5SUNWek93b0FRbXhoWTJzQVYyaHBkR1VBWW1GclpYSnpZMmh2WXdC''@;'; put 'put ''aWNtRnpjd0JpY21sbmFIUm5iMnhrQUdKeWIyNTZaUUJpY205dWVtVXlBR05zWldGeUFHTnZiMnhqYjNCd1pYSUFZMjl3Y0dWeUFHUmhjbXRpY205M2JnQmtZWEpyY0hWeWNHeGxBR1JoY210MFlXNEFaR0Z5YTNkdmIyUUFaR3RuY21WbGJtTnZjSEJsY2dCa2RYTjBlWEp2YzJVQVptVnNaSE53''@;'; put 'put ''WVhJQVpteGxjMmdBWjNKaGVUQTFBR2R5WldWdVkyOXdjR1Z5QUdoMWJuUmxjbk5uY21WbGJnQnNhV2RvZEY5d2RYSndiR1VBYkdsbmFIUjNiMjlrQUcxaGJtUmhjbWx1YjNKaGJtZGxBRzFsWkdsMWJXWnZjbVZ6ZEdkeVpXVnVBRzFsWkdsMWJXZHZiR1JsYm5KdlpBQnRaV1JwZFcxM2IyOWtB''@;'; put 'put ''RzFsWkY5d2RYSndiR1VBYldsallRQnVaVzl1WW14MVpRQnVaVzl1Y0dsdWF3QnVaWGR0YVdSdWFXZG9kR0pzZFdVQWJtVjNkR0Z1QUc5c1pHZHZiR1FBY1hWaGNuUjZBSEpwWTJoaWJIVmxBSE5qWVhKc1pYUUFjMlZ0YVZOM1pXVjBRMmh2WXdCemFXeDJaWElBYzNCcFkzbHdhVzVyQUhOMWJX''@;'; put 'put ''MWxjbk5yZVFCMlpYSjVaR0Z5YTJKeWIzZHVBSFpsY25sZmJHbG5hSFJmY0hWeWNHeGxBSEJ2ZGdCd2IzWTZjRzkyQUNWeklDVnpDZ0F1WENJZ0FDQWxaQ0FsWkFBZ0pYTUtBQ0FsWkFCbWFXeHNJQUJsYkd4cGNITmxJR0YwZEhKekpXUWdKWE4zYVdRZ0pTNDFaaUJvZENBbExqVm1JR0YwSUNn''@;'; put 'put ''bExqVm1MQ1V1TldZcE93b0FMbVowSUNWekNnQXVjSE1nSldRcVhHNG9VMFoxTHlVdU1HWjFDZ0FpSlhNaUlHRjBJQ2dsTGpWbUxDVXVOV1lwT3dvQUpUQXpid0FsY3lWeklHbHpJRzV2ZENCaElIUnliMlptSUdadmJuUUtBR1J2ZENCd2FXTWdjR3gxWjJsdU9pQUFVZ0JkQ2k1UVJRb0FMbEJU''@;'; put 'put ''SUNVdU5XWWdKUzQxWmdvQUpYTWdkRzhnWTJoaGJtZGxJR1J5WVhkcGJtY2djMmw2WlN3Z2JYVnNkR2x3YkhrZ2RHaGxJSGRwWkhSb0lHRnVaQ0JvWldsbmFIUWdiMjRnZEdobElDNVFVeUJzYVc1bElHRmliM1psSUdGdVpDQjBhR1VnYm5WdFltVnlJRzl1SUhSb1pTQjBkMjhnYkdsdVpYTWdZ''@;'; put 'put ''bVZzYjNjZ0tISnZkVzVrWldRZ2RHOGdkR2hsSUc1bFlYSmxjM1FnYVc1MFpXZGxjaWtnWW5rZ1lTQnpZMkZzWlNCbVlXTjBiM0lLQUM1dWNpQlRSaUFsTGpCbUNuTmpZV3hsZEdocFkydHVaWE56SUQwZ0pTNHdaZ29BSlhNZ1pHOXVKM1FnWTJoaGJtZGxJR0Z1ZVhSb2FXNW5JR0psYkc5M0lI''@;'; put 'put ''Um9hWE1nYkdsdVpTQnBiaUIwYUdseklHUnlZWGRwYm1jS0FDVnpJRzV2YmkxbVlYUmhiQ0J5ZFc0dGRHbHRaU0J3YVdNZ2RtVnljMmx2YmlCa1pYUmxjbTFwYm1GMGFXOXVMQ0IyWlhKemFXOXVJRElLQUdKdmVISmhaRDB5TGpBZ0pYTWdkMmxzYkNCaVpTQnlaWE5sZENCMGJ5QXdMakFnWW5r''@;'; put 'put ''Z1ozQnBZeUJ2Ym14NUNnQnpZMkZzWlQweExqQWdKWE1nY21WeGRXbHlaV1FnWm05eUlHTnZiWEJoY21semIyNXpDZ0FsY3lCaWIzaHlZV1FnYVhNZ2JtOTNJREF1TUNCcGJpQm5jR2xqTENCbGJITmxJR2wwSUhKbGJXRnBibk1nTWk0d0NnQWxjeUJrWVhOb2QybGtJR2x6SURBdU1TQnBiaUF4''@;'; put 'put ''TUhSb0lFVmthWFJwYjI0c0lEQXVNRFVnYVc0Z1JGZENJRElnWVc1a0lHbHVJR2R3YVdNS0FDVnpJR1pwYkd4MllXd2dhWE1nTUM0eklHbHVJREV3ZEdnZ1JXUnBkR2x2YmlBb1ptbHNiQ0F3SUcxbFlXNXpJR0pzWVdOcktTd2dNQzQxSUdsdUlHZHdhV01nS0dacGJHd2dNQ0J0WldGdWN5QjNh''@;'; put 'put ''R2wwWlNrc0lIVnVaR1ZtYVc1bFpDQnBiaUJFVjBJZ01nb0FKWE1nWm1sc2JDQm9ZWE1nYm04Z2JXVmhibWx1WnlCcGJpQkVWMElnTWl3Z1ozQnBZeUJqWVc0Z2RYTmxJR1pwYkd3Z2IzSWdabWxzYkdWa0xDQXhNSFJvSUVWa2FYUnBiMjRnZFhObGN5Qm1hV3hzSUc5dWJIa0tBQ1Z6SUVSWFFp''@;'; put 'put ''QXlJR1J2WlhOdUozUWdkWE5sSUdacGJHd2dZVzVrSUdSdlpYTnVKM1FnWkdWbWFXNWxJR1pwYkd4MllXd0tBQ1Z6SUhKbGMyVjBJSGR2Y210eklHbHVJR2R3YVdNZ1lXNWtJREV3ZEdnZ1pXUnBkR2x2Yml3Z1luVjBJR2x6YmlkMElHUmxabWx1WldRZ2FXNGdSRmRDSURJS0FDVnpJRVJYUWlB''@;'; put 'put ''eUlHTnZiWEJoZEdsaWFXeHBkSGtnWkdWbWFXNXBkR2x2Ym5NS0FHbG1JR0p2ZUhKaFpDQStJREV1TUNBbUppQmtZWE5vZDJsa0lEd2dNQzR3TnpVZ2RHaGxiaUJZQ2dsbWFXeHNkbUZzSUQwZ01Uc0tDV1JsWm1sdVpTQm1hV3hzSUZrZ1dUc0tDV1JsWm1sdVpTQnpiMnhwWkNCWklGazdDZ2xr''@;'; put 'put ''WldacGJtVWdjbVZ6WlhRZ1dTQnpZMkZzWlQweExqQWdXVHNLV0FvQWNtVnpaWFFnSlhNZ2MyVjBJSFJ2SUd0dWIzZHVJSE4wWVhSbENnQWxjeUJIVGxVZ2NHbGpJSFp6TGlBeE1IUm9JRVZrYVhScGIyNGdaRndvWlNkMFpXNTBaUW9BYVdZZ1ptbHNiSFpoYkNBK0lEQXVOQ0IwYUdWdUlGZ0tD''@;'; put 'put ''V1JsWm1sdVpTQnpaWFJtYVd4c2RtRnNJRmtnWm1sc2JIWmhiQ0E5SURFZ0xTQlpPd29KWkdWbWFXNWxJR0p2YkdRZ1dTQjBhR2xqYTI1bGMzTWdNaUJaT3dvQUNTVnpJR2xtSUhsdmRTQjFjMlVnWjNCcFl5QmhibVFnYVhRZ1ltRnlabk1nYjI0Z1pXNWpiM1Z1ZEdWeWFXNW5JQ0p6YjJ4cFpD''@;'; put 'put ''SXNDZ0FKSlhNSmFXNXpkR0ZzYkNCaElHMXZjbVVnY21WalpXNTBJSFpsY25OcGIyNGdiMllnWjNCcFl5QnZjaUJ6ZDJsMFkyZ2dkRzhnUkZkQ0lHOXlJREV3ZEdnZ1JXUnBkR2x2YmlCd2FXTTdDZ0FKSlhNSmMyOXljbmtzSUhSb1pTQm5jbTltWmlCbWIyeHJjeUJqYUdGdVoyVmtJR2R3YVdN''@;'; put 'put ''N0lITmxibVFnWVc1NUlHTnZiWEJzWVdsdWRDQjBieUIwYUdWdE93b0FXQ0JsYkhObElGb0tDV1JsWm1sdVpTQnpaWFJtYVd4c2RtRnNJRmtnWm1sc2JIWmhiQ0E5SUZrN0NnbGtaV1pwYm1VZ1ltOXNaQ0JaSUZrN0NnbGtaV1pwYm1VZ1ptbHNiR1ZrSUZrZ1ptbHNiQ0JaT3dwYUNnQWxjeUJo''@;'; put 'put ''Y25KdmQyaGxZV1FnYUdGeklHNXZJRzFsWVc1cGJtY2dhVzRnUkZkQ0lESXNJR0Z5Y205M2FHVmhaQ0E5SURjZ2JXRnJaWE1nWm1sc2JHVmtJR0Z5Y205M2FHVmhaSE1nYVc0Z1ozQnBZeUJoYm1RZ2FXNGdNVEIwYUNCRlpHbDBhVzl1Q2dBbGN5Qmhjbkp2ZDJobFlXUWdhWE1nZFc1a1pXWnBi''@;'; put 'put ''bVZrSUdsdUlFUlhRaUF5TENCcGJtbDBhV0ZzYkhrZ01TQnBiaUJuY0dsakxDQXlJR2x1SURFd2RHZ2dSV1JwZEdsdmJnb0FZWEp5YjNkb1pXRmtJRDBnTnlBbGN5QnViM1FnZFhObFpDQmllU0JuY21Gd2FIWnBlZ29BSlhNZ1IwNVZJSEJwWXlCemRYQndiM0owY3lCaElHSnZlSEpoWkNCMllY''@;'; put 'put ''SnBZV0pzWlNCMGJ5QmtjbUYzSUdKdmVHVnpJSGRwZEdnZ2NtOTFibVJsWkNCamIzSnVaWEp6T3lCRVYwSWdZVzVrSURFd2RHZ2dSV1F1SUdSdklHNXZkQW9BWW05NGNtRmtJRDBnTUNBbGN5QnVieUJ5YjNWdVpHVmtJR052Y201bGNuTWdhVzRnWjNKaGNHaDJhWG9LQUNWeklFZE9WU0J3YVdN''@;'; put 'put ''Z2MzVndjRzl5ZEhNZ1lTQnNhVzVsZEdocFkyc2dkbUZ5YVdGaWJHVWdkRzhnYzJWMElHeHBibVVnZEdocFkydHVaWE56T3lCRVYwSWdZVzVrSURFd2RHZ2dSV1F1SUdSdklHNXZkQW9BYkdsdVpYUm9hV05ySUQwZ01Ec2diMnhrYkdsdVpYUm9hV05ySUQwZ2JHbHVaWFJvYVdOckNnQWxjeUF1''@;'; put 'put ''VUZNZ2R5OXZJR0Z5WjNNZ1kyRjFjMlZ6SUVkT1ZTQndhV01nZEc4Z2MyTmhiR1VnWkhKaGQybHVaeUIwYnlCbWFYUWdPQzQxZURFeElIQmhjR1Z5T3lCRVYwSWdaRzlsY3lCdWIzUUtBQ1Z6SUcxaGVIQnphSFFnWVc1a0lHMWhlSEJ6ZDJsa0lHaGhkbVVnYm04Z2JXVmhibWx1WnlCcGJpQkVW''@;'; put 'put ''MElnTWk0d0xDQnpaWFFnY0dGblpTQmliM1Z1WkdGeWFXVnpJR2x1SUdkd2FXTWdZVzVrSUdsdUlERXdkR2dnUldScGRHbHZiZ29BSlhNZ2JXRjRjSE5vZENCaGJtUWdiV0Y0Y0hOM2FXUWdZWEpsSUhCeVpXUmxabWx1WldRZ2RHOGdNVEV1TUNCaGJtUWdPQzQxSUdsdUlHZHdhV01LQUcxaGVI''@;'; put 'put ''QnphSFFnUFNBbFpncHRZWGh3YzNkcFpDQTlJQ1ZtQ2dCRWIzUTZJRnNLQUdSbFptbHVaU0JoZEhSeWN6QWdKU1VnSlNVN0lHUmxabWx1WlNCMWJtWnBiR3hsWkNBbEpTQWxKVHNnWkdWbWFXNWxJSEp2ZFc1a1pXUWdKU1VnSlNVN0lHUmxabWx1WlNCa2FXRm5iMjVoYkhNZ0pTVWdKU1VLQUNW''@;'; put 'put ''ekpYTWdkVzV6ZFhCd2IzSjBaV1FLQUNWeklISmxjM1J2Y21VZ2NHOXBiblFnYzJsNlpTQmhibVFnWm05dWRBb3VjSE1nWEc0b0xsTUtMbVowSUZ4dUtFUkdDZ0FsY3lCRGNtVmhkRzl5T2lBbGN5QjJaWEp6YVc5dUlDVnpJQ2dsY3lrS0FDVnpJRlJwZEd4bE9pQWxjd29BSlhNZ2MyRjJaU0J3''@;'; put 'put ''YjJsdWRDQnphWHBsSUdGdVpDQm1iMjUwQ2k1dWNpQXVVeUJjYmlndWN3b3VibklnUkVZZ1hHNG9MbVlLQUhCcFl3QndhV002Y0dsakFIQnVaenB6ZG1jQVoybG1Pbk4yWndCcWNHVm5Pbk4yWndCcWNHVTZjM1puQUdwd1p6cHpkbWNBY0c1bk9tWnBad0JuYVdZNlptbG5BR3B3WldjNlptbG5B''@;'; put 'put ''R3B3WlRwbWFXY0FhbkJuT21acFp3QndibWM2ZG5KdGJBQm5hV1k2ZG5KdGJBQnFjR1ZuT25aeWJXd0FhbkJsT25aeWJXd0FhbkJuT25aeWJXd0FaWEJ6T25CekFIQnpPbkJ6QUNoc2FXSXBPbkJ6QUhCdVp6cHRZWEFBWjJsbU9tMWhjQUJxY0dWbk9tMWhjQUJxY0dVNmJXRndBR3B3WnpwdFlY''@;'; put 'put ''QUFjSE02YldGd0FHVndjenB0WVhBQWMzWm5PbTFoY0FCd2JtYzZaRzkwQUdkcFpqcGtiM1FBYW5CbFp6cGtiM1FBYW5CbE9tUnZkQUJxY0djNlpHOTBBSEJ6T21SdmRBQmxjSE02Wkc5MEFITjJaenBrYjNRQWNHNW5PbmhrYjNRQVoybG1PbmhrYjNRQWFuQmxaenA0Wkc5MEFHcHdaVHA0Wkc5''@;'; put 'put ''MEFHcHdaenA0Wkc5MEFIQnpPbmhrYjNRQVpYQnpPbmhrYjNRQWMzWm5PbmhrYjNRQWMzWm5Pbk4yWndCd2JtYzZkbTFzQUdkcFpqcDJiV3dBYW5CbFp6cDJiV3dBYW5CbE9uWnRiQUJxY0djNmRtMXNBR2RwWmpwMGF3QnBiV0ZuWlNCamNtVmhkR1VnY0dodmRHOGdJbkJvYjNSdlh5VnpJaUF0''@;'; put 'put ''Wm1sc1pTQWlKWE1pQ2dBa1l5QmpjbVZoZEdVZ2FXMWhaMlVnSlM0eVppQWxMakptSUMxcGJXRm5aU0FpY0dodmRHOWZKWE1pQ2dBOGRqcHBiV0ZuWlNCemNtTTlJaVZ6SWlCemRIbHNaVDBpSUhCdmMybDBhVzl1T21GaWMyOXNkWFJsT3lCM2FXUjBhRG9sTGpKbU95Qm9aV2xuYUhRNkpTNHla''@;'; put 'put ''anNnYkdWbWREb2xMakptSURzZ2RHOXdPaVV1TW1ZaUFDQXZQZ29BWjNac2IyRmthVzFoWjJWZlkyOXlaUzVqQUdOdmNtVmZiRzloWkdsdFlXZGxYM0J6YkdsaUFGc2dBQ1ZuSUNWbklBQmRJQ0FsWkNCMGNuVmxJQ1Z6Q2dCZElDQWxaQ0JtWVd4elpTQWxjd29BWTI5eVpWOXNiMkZrYVcxaFoy''@;'; put 'put ''VmZjSE1BWjNOaGRtVWdKV2NnSldjZ2RISmhibk5zWVhSbElHNWxkM0JoZEdnS0FIVnpaWEpmYzJoaGNHVmZKV1FLQUdkeVpYTjBiM0psQ2dCamIzSmxYMnh2WVdScGJXRm5aVjkyY20xc0FGTm9ZWEJsSUhzS0FDQWdZWEJ3WldGeVlXNWpaU0JCY0hCbFlYSmhibU5sSUhzS0FDQWdJQ0J0WVhS''@;'; put 'put ''bGNtbGhiQ0JOWVhSbGNtbGhiQ0I3Q2dBZ0lDQWdJQ0JoYldKcFpXNTBTVzUwWlc1emFYUjVJREF1TXpNS0FDQWdJQ0FnSUNBZ1pHbG1ablZ6WlVOdmJHOXlJREVnTVNBeENnQWdJQ0FnZlFvQUlDQWdJSFJsZUhSMWNtVWdTVzFoWjJWVVpYaDBkWEpsSUhzZ2RYSnNJQ0lsY3lJZ2ZRb0FJQ0I5''@;'; put 'put ''Q2dCamIzSmxYMnh2WVdScGJXRm5aVjltYVdjQUpXUWdKV1FnSldRZ0pXUWdKV1FnSldRZ0pXUWdKV1FnSldRZ0pTNHhaaUFsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQW9nSldRZ0pYTUtBQ0FsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkNBbFpDQWxaQ0FsWkFvQVkyOXlaVjlzYjJGa2FXMWha''@;'; put 'put ''MlZmYzNabkFEeHBiV0ZuWlNCNGJHbHVhenBvY21WbVBTSUFJaUIzYVdSMGFEMGlKV2R3ZUNJZ2FHVnBaMmgwUFNJbFozQjRJaUJ3Y21WelpYSjJaVUZ6Y0dWamRGSmhkR2x2UFNKNFRXbGtXVTFwWkNCdFpXVjBJaUI0UFNJbFp5SWdlVDBpSldjaUFDQjBjbUZ1YzJadmNtMDlJbkp2ZEdGMFpT''@;'; put 'put ''Z2xaQ0FsWnlBbFp5a2lBQ0lnZDJsa2RHZzlJaVZuY0hnaUlHaGxhV2RvZEQwaUpXZHdlQ0lnY0hKbGMyVnlkbVZCYzNCbFkzUlNZWFJwYnowaWVFMXBibGxOYVc0Z2JXVmxkQ0lnZUQwaUpXY2lJSGs5SWlWbklnQXZQZ29BWkc5MFgyeGhlVzkxZEFCd2FHRnpaUUJrYjNRZ1pHOWxjeUJ1YjNR''@;'; put 'put ''Z2MzVndjRzl5ZENCMGFHVWdZWE53WldOMElHRjBkSEpwWW5WMFpTQm1iM0lnWkdselkyOXVibVZqZEdWa0lHZHlZWEJvY3lCdmNpQm5jbUZ3YUhNZ2QybDBhQ0JqYkhWemRHVnljd29BWTI5dGNHOTFibVFBZGlBOVBTQnVBR1J2ZEdsdWFYUXVZd0J5WlcxdmRtVmZabkp2YlY5eVlXNXJBRzl5''@;'; put 'put ''WkdWeUFHVmtaMlVnYkdGaVpXeHpJSGRwZEdnZ2MzQnNhVzVsY3oxamRYSjJaV1FnYm05MElITjFjSEJ2Y25SbFpDQnBiaUJrYjNRZ0xTQjFjMlVnZUd4aFltVnNjd29BUlVSZmJHRmlaV3dvWm1VcEFHUnZkSE53YkdsdVpYTXVZd0JmWkc5MFgzTndiR2x1WlhNQVpteGhkQ0JsWkdkbElHSmxk''@;'; put 'put ''SGRsWlc0Z1lXUnFZV05sYm5RZ2JtOWtaWE1nYjI1bElHOW1JSGRvYVdOb0lHaGhjeUJoSUhKbFkyOXlaQ0J6YUdGd1pTQXRJSEpsY0d4aFkyVWdjbVZqYjNKa2N5QjNhWFJvSUVoVVRVd3RiR2xyWlNCc1lXSmxiSE1LQUNBZ1JXUm5aU0FsY3lBbGN5QWxjd29BZUhoNEFERXdNREF3QUhzbGMz''@;'; put 'put ''MEFZWFY0WndCc1lXSmxiRjltYkc5aGRBQm1hWGhsWkFBb2JDQTlJRVZFWDJ4aFltVnNLR1psS1NrQWMyVjBSV1JuWlV4aFltVnNVRzl6QUdVZ0lUMGdUbFZNVEFCbVlYTjBaM0l1WXdCa1pXeGxkR1ZmWm1GemRGOWxaR2RsQUc0Z0lUMGdUa1JmYm1WNGRDaHVLUUJtWVhOMFgyNXZaR1VBZFNB''@;'; put 'put ''aFBTQjJBR1poYzNSZmJtOWtaV0Z3Y0FCT1JGOXVaWGgwS0hZcElEMDlJRTVWVEV3QVptbHVaRjltWVhOMFgyNXZaR1VvWnl3Z2Jpa0FaR1ZzWlhSbFgyWmhjM1JmYm05a1pRQmtaV3hsZEdWZlpteGhkRjlsWkdkbEFHMWxjbWRsWDI5dVpYZGhlU0JuYkdsMFkyZ0tBRzFsY21kbFgyOXVaWGRo''@;'; put 'put ''ZVFCellXWmxYMlJsYkdWMFpWOW1ZWE4wWDJWa1oyVUFiR2NBWTI5dGNBQmpiblFnUFQwZ2Mzb0FiV2x1WTNKdmMzTXVZd0JtYVhoTVlXSmxiRTl5WkdWeUFISmxiV2x1WTNKdmMzTUFiV2x1WTNKdmMzTWdKWE02SUNWa0lHTnliM056YVc1bmN5d2dKUzR5WmlCelpXTnpMZ29BZGdCdVpXbG5h''@;'; put 'put ''R0p2Y2dBb2NuWWdQVDBnTUNrZ2ZId2dLRTVFWDI5eVpHVnlLSEoyS1MxT1JGOXZjbVJsY2loMktTa3FaR2x5SUQ0Z01BQmpiMjV6ZEhKaGFXNXBibWRmWm14aGRGOWxaR2RsS0djc2RpeGxLU0E5UFNCR1FVeFRSUUJtYkdGMFgzSmxiM0prWlhJQVRrUmZjbUZ1YXloMktTQTlQU0J5QUhCdmMz''@;'; put 'put ''UnZjbVJsY2dCbWJHRjBhVzVrWlhnb1lXZG9aV0ZrS0dVcEtTQThJRTB0UG01eWIzZHpBR1pzWVhSZmMyVmhjbU5vQUdac1lYUnBibVJsZUNoaFozUmhhV3dvWlNrcElEd2dUUzArYm1OdmJITUFiM1YwQUc5eVpHVnlhVzVuSUNjbGN5Y2dibTkwSUhKbFkyOW5ibWw2WldRdUNnQnZjbVJsY21s''@;'; put 'put ''dVp5QW5KWE1uSUc1dmRDQnlaV052WjI1cGVtVmtJR1p2Y2lCdWIyUmxJQ2NsY3ljdUNnQnRaWEpuWlRJNklHZHlZWEJvSUNWekxDQnlZVzVySUNWa0lHaGhjeUJ2Ym14NUlDVmtJRHdnSldRZ2JtOWtaWE1LQUcxcGJtTnliM056T2lCd1lYTnpJQ1ZrSUdsMFpYSWdKV1FnZEhKNWFXNW5JQ1Zr''@;'; put 'put ''SUdOMWNsOWpjbTl6Y3lBbFpDQmlaWE4wWDJOeWIzTnpJQ1ZrQ2dCT1JGOXZjbVJsY2loMktTQThJRTVFWDI5eVpHVnlLSGNwQUdKaGJHRnVZMlVBZEhKaGJuTndiM05sWDNOMFpYQUFjM1Z5Y0hKcGMyVUtBR2x1YzNSaGJHeGZhVzVmY21GdWF5d2diR2x1WlNBbFpEb2dKWE1nSlhNZ2NtRnVh''@;'; put 'put ''eUFsWkNCcElEMGdKV1FnWVc0Z1BTQXdDZ0JIUkY5eVlXNXJLR2NwVzNKZExtNGdQRDBnUjBSZmNtRnVheWhuS1Z0eVhTNWhiZ0JwYm5OMFlXeHNYMmx1WDNKaGJtc0FhVzV6ZEdGc2JGOXBibDl5WVc1ckxDQnNhVzVsSUNWa09pQk9SRjl2Y21SbGNpZ2xjeWtnV3lWa1hTQStJRWRFWDNKaGJt''@;'; put 'put ''c29VbTl2ZENsYkpXUmRMbUZ1SUZzbFpGMEtBR2x1YzNSaGJHeGZhVzVmY21GdWF5d2diR2x1WlNBbFpEb2djbUZ1YXlBbFpDQnViM1FnYVc0Z2NtRnVheUJ5WVc1blpTQmJKV1FzSldSZENnQnBibk4wWVd4c1gybHVYM0poYm1zc0lHeHBibVVnSldRNklFZEVYM0poYm1zb1p5bGJKV1JkTG5Z''@;'; put 'put ''Z0t5Qk9SRjl2Y21SbGNpZ2xjeWtnV3lWa1hTQStJRWRFWDNKaGJtc29aeWxiSldSZExtRjJJQ3NnUjBSZmNtRnVheWhTYjI5MEtWc2xaRjB1WVc0Z1d5VmtYUW9BWDI1bGQxOXlZVzVyQUcxamJHbHRhWFFBY21GdWF5aG5MQ0F5TENCdWMybDBaWEl5S0djcEtTQTlQU0F3QUhCdmMybDBhVzl1''@;'; put 'put ''TG1NQVpHOTBYM0J2YzJsMGFXOXVBRUZTUFNVd0xqUnNaZ2tnUVhKbFlUMGdKVEF1Tkd4bUNRQkVkVzF0ZVQwbFpBb0FSMjlwYm1jZ2RHOGdZWEJ3YkhrZ1lXNXZkR2hsY2lCbGVIQmhibk5wYjI0dUNnQnVaWGgwSTJsMFpYSTlKV1FLQUdod0FHTnZibTVsWTNSSGNtRndhQUJGWkdkbElHeGxi''@;'; put 'put ''bWQwYUNBbFppQnNZWEpuWlhJZ2RHaGhiaUJ0WVhocGJYVnRJQ1YxSUdGc2JHOTNaV1F1Q2tOb1pXTnJJR1p2Y2lCdmRtVnlkMmxrWlNCdWIyUmxLSE1wTGdvQWJuTnNhVzFwZEFCamIyNTBZV2x1WDI1dlpHVnpJR05zZFhOMElDVnpJSEpoYm1zZ0pXUWdiV2x6YzJsdVp5QnViMlJsQ2dCdWMy''@;'; put 'put ''eHBiV2wwTVFCdVpYZHlZVzVyQUUxaGVISmhibXNnUFNBbFpDd2diV2x1Y21GdWF5QTlJQ1ZrQ2dCc1pXRmtaWElnSVQwZ1RsVk1UQUJ5WVc1ckxtTUFZMngxYzNSbGNsOXNaV0ZrWlhJQUtFNUVYMVZHWDNOcGVtVW9iaWtnUEQwZ01Ta2dmSHdnS0c0Z1BUMGdiR1ZoWkdWeUtRQmhaMmhsWVdR''@;'; put 'put ''b1pTa2dQVDBnVlVaZlptbHVaQ2hoWjJobFlXUW9aU2twQUcxcGJtMWhlRjlsWkdkbGN3QmhaM1JoYVd3b1pTa2dQVDBnVlVaZlptbHVaQ2hoWjNSaGFXd29aU2twQUhKaGJtc0FjMkZ0WlFCdGFXNEFjMjkxY21ObEFHMWhlQUJ6YVc1ckFHeGxkbVZzSUdGemMybG5ibTFsYm5RZ1kyOXVjM1J5''@;'; put 'put ''WVdsdWRITUFiR1YyWld3Z1ozSmhjR2dnY21WakFIOXliMjkwQUg5MGIzQUFmMkp2ZEFCamIyMXdZV04wQUY5M1pXRnJYeVZrQUhKaGJtdHBibWM2SUdaaGFXeDFjbVVnZEc4Z1kzSmxZWFJsSUhOMGNtOXVaeUJqYjI1emRISmhhVzUwSUdWa1oyVWdZbVYwZDJWbGJpQnViMlJsY3lBbGN5Qmhi''@;'; put 'put ''bVFnSlhNS0FDVnpJR2hoY3lCMWJuSmxZMjluYm1sNlpXUWdjbUZ1YXowbGN3QnNaWFpsYkNCbFpHZGxJSEpsWXdCc1pYWmxiQ0J1YjJSbElISmxZd0J6WVcxbGFHVmhaQUJ6WVcxbGRHRnBiQUIwYjI4Z2JXRnVlU0FvUGlBbFpDa2djMkZ0Wlh0b1pXRmtMSFJoYVd4OUlHZHliM1Z3Y3lCbWIz''@;'; put 'put ''SWdibTlrWlNBbGN3b0FZMjl0WW1sQlVpQTlJQ1ZzWmdvQUpXeG1MQ1ZrQUhSb1pTQmhjM0JsWTNRZ1lYUjBjbWxpZFhSbElHaGhjeUJpWldWdUlHUnBjMkZpYkdWa0lHUjFaU0IwYnlCcGJYQnNaVzFsYm5SaGRHbHZiaUJtYkdGM2N5QXRJR0YwZEhKcFluVjBaU0JwWjI1dmNtVmtMZ29BUlVS''@;'; put 'put ''ZmRHOWZkbWx5ZENobEtTQTlQU0JPVlV4TUFHTnNZWE56TWk1akFHMWxjbWRsWDJOb1lXbHVBRVZFWDNSdlgzWnBjblFvYjNKcFp5a2dQVDBnVGxWTVRBQnRZV3RsWDJOb1lXbHVBRVZFWDNSdlgzWnBjblFvYjNKcFp5a2dJVDBnVGxWTVRBQk9SRjl5WVc1cktHWnliMjBwSUR3Z1RrUmZjbUZ1''@;'; put 'put ''YXloMGJ5a0FZMngxYzNSbGNpNWpBRzFoY0Y5d1lYUm9BQ1Z6SUhkaGN5QmhiSEpsWVdSNUlHbHVJR0VnY21GdWEzTmxkQ3dnWkdWc1pYUmxaQ0JtY205dElHTnNkWE4wWlhJZ0pYTUtBR3hvWldGa0FHeDBZV2xzQUNWeklDMCtJQ1Z6T2lCemNHeHBibVVnYzJsNlpTQStJREVnYm05MElITjFj''@;'; put 'put ''SEJ2Y25SbFpBb0FKWE1nTFQ0Z0pYTTZJR2hsWVdRZ2JtOTBJR2x1YzJsa1pTQm9aV0ZrSUdOc2RYTjBaWElnSlhNS0FDVnpJQzArSUNWek9pQjBZV2xzSUdseklHbHVjMmxrWlNCb1pXRmtJR05zZFhOMFpYSWdKWE1LQUdKbGVpMCtjMlpzWVdjQVkyOXRjRzkxYm1RdVl3QnRZV3RsUTI5dGNH''@;'; put 'put ''OTFibVJGWkdkbEFHSmxlaTArWldac1lXY0FKWE1nTFQ0Z0pYTTZJSFJoYVd3Z2JtOTBJR2x1YzJsa1pTQjBZV2xzSUdOc2RYTjBaWElnSlhNS0FDVnpJQzArSUNWek9pQm9aV0ZrSUdseklHbHVjMmxrWlNCMFlXbHNJR05zZFhOMFpYSWdKWE1LQUhObFoyMWxiblFnV3lWekxDVnpYU0JrYjJW''@;'; put 'put ''eklHNXZkQ0JwYm5SbGNuTmxZM1FnWW05NElHeHNQU1Z6TEhWeVBTVnpDZ0JpYjNoSmJuUmxjbk5sWTNSbUFDZ2xMalZuTENVdU5XY3BBR05zZFhOMFpYSWdibUZ0WldRZ0pYTWdibTkwSUdadmRXNWtDZ0JqYjI1alpXNTBjbUYwWlQxMGNuVmxJRzFoZVNCdWIzUWdkMjl5YXlCamIzSnlaV04w''@;'; put 'put ''YkhrdUNnQnlaV0oxYVd4MFpGOTJiR2x6ZEhNNklISmhibXNnYkdWaFpDQWxjeUJ1YjNRZ2FXNGdiM0prWlhJZ0pXUWdiMllnY21GdWF5QWxaQW9BWkdWblpXNWxjbUYwWlNCamIyNWpaVzUwY21GMFpXUWdjbUZ1YXlBbGN5d2xaQW9BVGtSZmFXNG9jbWxuYUhRcExuTnBlbVVnS3lCT1JGOXZk''@;'; put 'put ''WFFvY21sbmFIUXBMbk5wZW1VZ1BUMGdNQUJqYjI1akxtTUFiV1Z5WjJWMmFYSjBkV0ZzQUdSdmREb2dUM1YwSUc5bUlHMWxiVzl5ZVFvQVRrUmZiM1YwS0hZcExuTnBlbVVnUFQwZ01nQm1iR0YwTG1NQWMyVjBZbTkxYm1SekFFZEVYMjFwYm5KaGJtc29aeWtnUFQwZ01BQmhZbTl0YVc1aGRH''@;'; put 'put ''bHZiZ0J1WldGMGIxOXNZWGx2ZFhRQWJtVmhkRzhBWm1Sd0FITm1aSEFBZEhkdmNHa0FZMmx5WTI4QWNHRjBZMmgzYjNKckFHOXpZV2RsQUc1dmNBQnViM0F4QUc1dmNESUFKV3htTENWc1ppd2xiR1lsWXdCdWIyUmxJQ1Z6TENCd2IzTnBkR2x2YmlBbGN5d2daWGh3WldOMFpXUWdkSGR2SUdS''@;'; put 'put ''dmRXSnNaWE1LQUc1dmRISmhibk5zWVhSbEFHNXZaR1VnSlhNZ2FXNGdaM0poY0dnZ0pYTWdhR0Z6SUc1dklIQnZjMmwwYVc5dUNnQnpMQ1ZzWml3bGJHWWxiZ0FnWlN3bGJHWXNKV3htSlc0QWNHOXpJR0YwZEhKcFluVjBaU0JtYjNJZ1pXUm5aU0FvSlhNc0pYTXBJR1J2WlhOdUozUWdhR0Yy''@;'; put 'put ''WlNBemJpc3hJSEJ2YVc1MGN3b0FKV3htTENWc1ppVnVBSE41Ym5SaGVDQmxjbkp2Y2lCcGJpQndiM01nWVhSMGNtbGlkWFJsSUdadmNpQmxaR2RsSUNnbGN5d2xjeWtLQUNWc1ppd2xiR1lzSld4bUxDVnNaZ0J6ZEdGeWRBQnpaV3htQUhKaGJtUnZiUUJ1YjJSbElIQnZjMmwwYVc5dWN5Qmhj''@;'; put 'put ''bVVnYVdkdWIzSmxaQ0IxYm14bGMzTWdjM1JoY25ROWNtRnVaRzl0Q2dCaGN5QnlaWEYxYVhKbFpDQmllU0IwYUdVZ0xXNGdabXhoWndvQVgyNWxZWFJ2WDJOakFHZHlZWEJvSUNWeklHbHpJR1JwYzJOdmJtNWxZM1JsWkM0Z1NHVnVZMlVzSUhSb1pTQmphWEpqZFdsMElHMXZaR1ZzQ2dCQmJI''@;'; put 'put ''UmxjbTVoZEdsMlpXeDVMQ0JqYjI1emFXUmxjaUJ5ZFc1dWFXNW5JRzVsWVhSdklIVnphVzVuSUMxSGNHRmphejEwY25WbElHOXlJR1JsWTI5dGNHOXphVzVuQ2dCMGFHVWdaM0poY0dnZ2FXNTBieUJqYjI1dVpXTjBaV1FnWTI5dGNHOXVaVzUwY3k0S0FGTnZiSFpwYm1jZ2JXOWtaV3dnSldR''@;'; put 'put ''Z2FYUmxjbUYwYVc5dWN5QWxaQ0IwYjJ3Z0pXWUtBRTVFWDJsa0tHNXdLU0E5UFNCcEFHNWxZWFJ2YVc1cGRDNWpBRzFoYTJWSGNtRndhRVJoZEdFQVppQThJR2R5WVhCb1cycGRMbTVsWkdkbGN3Qmtabk5EZVdOc1pRQnRiMlJsYkNBbFpDQnpiV0Z5ZEY5cGJtbDBJQ1ZrSUhOMGNtVnpjM2Qw''@;'; put 'put ''SUNWa0lHbDBaWEpoZEdsdmJuTWdKV1FnZEc5c0lDVm1DZ0JqYjI1MlpYSjBJR2R5WVhCb09pQUFiV0ZxYjNKcGVtRjBhVzl1Q2dBbFpDQnViMlJsY3lBbExqSm1JSE5sWXdvQWJHVjJaV3h6WjJGd0FHeGhlVzkxZENCaFltOXlkR1ZrQ2dCemRISmxjM04zZEFBbGN5QmhkSFJ5YVdKMWRHVWdk''@;'; put 'put ''bUZzZFdVZ2JYVnpkQ0JpWlNBeElHOXlJRElnTFNCcFoyNXZjbWx1WndvQWJXOWtaV3dBWTJseVkzVnBkQUJ6ZFdKelpYUUFjMmh2Y25Sd1lYUm9BRzFrY3dCbFpHZGxjeUJwYmlCbmNtRndhQ0FsY3lCb1lYWmxJRzV2SUd4bGJpQmhkSFJ5YVdKMWRHVXVJRWhsYm1ObExDQjBhR1VnYldSeklH''@;'; put 'put ''MXZaR1ZzQ2dCcGN5QnBibUZ3Y0hKdmNISnBZWFJsTGlCU1pYWmxjblJwYm1jZ2RHOGdkR2hsSUhOb2IzSjBaWE4wSUhCaGRHZ2diVzlrWld3dUNnQlZibXR1YjNkdUlIWmhiSFZsSUNWeklHWnZjaUJoZEhSeWFXSjFkR1VnSW0xdlpHVnNJaUJwYmlCbmNtRndhQ0FsY3lBdElHbG5ibTl5WldR''@;'; put 'put ''S0FHMXZaR1VBUzBzQWJXRnFiM0lBYUdsbGNnQkpiR3hsWjJGc0lIWmhiSFZsSUNWeklHWnZjaUJoZEhSeWFXSjFkR1VnSW0xdlpHVWlJR2x1SUdkeVlYQm9JQ1Z6SUMwZ2FXZHViM0psWkFvQWJXRnJaVk53YkdsdVpUb2dabUZwYkdWa0lIUnZJRzFoYTJVZ2MzQnNhVzVsSUdWa1oyVWdLQ1Z6''@;'; put 'put ''TENWektRb0FjM0JzYVc1bElDVnpJQ1Z6Q2dCaUlEMDlJRzRBYm1WaGRHOXpjR3hwYm1WekxtTUFiV0ZyWlY5aVlYSnlhV1Z5Y3dCMGFHVWdZbTkxYm1ScGJtY2dZbTk0WlhNZ2IyWWdjMjl0WlNCdWIyUmxjeUIwYjNWamFDQXRJR1poYkd4cGJtY2dZbUZqYXlCMGJ5QnpkSEpoYVdkb2RDQnNh''@;'; put 'put ''VzVsSUdWa1oyVnpDZ0J6YjIxbElHNXZaR1Z6SUhkcGRHZ2diV0Z5WjJsdUlDZ2xMakF5Wml3bExqQXlaaWtnZEc5MVkyZ2dMU0JtWVd4c2FXNW5JR0poWTJzZ2RHOGdjM1J5WVdsbmFIUWdiR2x1WlNCbFpHZGxjd29BY0c5c2VXeHBibVZ6QUd4cGJtVWdjMlZuYldWdWRITUFiM0owYUc5bmIy''@;'; put 'put ''NWhiQ0JzYVc1bGN3QkRjbVZoZEdsdVp5QmxaR2RsY3lCMWMybHVaeUFsY3dvQWNHOXNlV3hwYm1VZ0pYTWdKWE1LQUcxa2MwMXZaR1ZzT2lCa1pXeDBZU0E5SUNWbUNnQlRaWFIwYVc1bklIVndJSE4wY21WemN5Qm1kVzVqZEdsdmJnQlRiMngyYVc1bklHMXZaR1ZzT2lBQUNtWnBibUZzSUdV''@;'; put 'put ''Z1BTQWxaaUFsWkNCcGRHVnlZWFJwYjI1eklDVXVNbVlnYzJWakNnQkVZVzF3YVc1bkFHUmxabUYxYkhSa2FYTjBBQ0JwYmlBbGN5QXRJSE5sZEhScGJtY2dkRzhnSlM0d01tWUtBR0poWkNCbFpHZGxJR3hsYmlBaUpYTWlBRk5sZEhScGJtY2dhVzVwZEdsaGJDQndiM05wZEdsdmJuTUtBSE4w''@;'; put 'put ''WVhKMFBTVnpJRzV2ZENCemRYQndiM0owWldRZ2QybDBhQ0J0YjJSbFBYTmxiR1lnTFNCcFoyNXZjbVZrQ2dCVFpYUjBhVzVuSUhWd0lITndjbWx1WnlCdGIyUmxiRG9nQUNVdU1tWWdjMlZqQ2dBS1ptbHVZV3dnWlNBOUlDVm1BQ0VBSUNWa0pYTWdhWFJsY21GMGFXOXVjeUFsTGpKbUlITmxZ''@;'; put 'put ''d29BVFdGNExpQnBkR1Z5WVhScGIyNXpJQ2dsWkNrZ2NtVmhZMmhsWkNCdmJpQm5jbUZ3YUNBbGN3b0FKWE1nSlM0elpnb0FKUzR6WmlBQVRrUmZhR1ZoY0dsdVpHVjRLSFlwSUR3Z01BQnpkSFZtWmk1akFHNWxZWFJ2WDJWdWNYVmxkV1VBUTJGc1kzVnNZWFJwYm1jZ2MyaHZjblJsYzNRZ2NH''@;'; put 'put ''RjBhSE02SUFCemNHVmphV1pwWldRZ2NtOXZkQ0J1YjJSbElDSWxjeUlnZDJGeklHNXZkQ0JtYjNWdVpDNEFWWE5wYm1jZ1pHVm1ZWFZzZENCallXeGpkV3hoZEdsdmJpQm1iM0lnY205dmRDQnViMlJsQ2dCeVpYQnZjMmwwYVc5dUlDVnpDZ0FsY3lBNklDVm1JQ1ZtQ2dBbGN5QTZJQ1ZtSUNW''@;'; put 'put ''bUlDVm1JQ1ZtQ2dBZ0lBQkhjbUZ3YUNBbGN5Qm9ZWE1nWVhKeVlYa2djR0ZqYTJsdVp5QjNhWFJvSUhWelpYSWdkbUZzZFdWeklHSjFkQ0J1YnlBaWMyOXlkSFlpSUdGMGRISnBZblYwWlhNZ1lYSmxJR1JsWm1sdVpXUXVBSEJwYmdCWFlYSnVhVzVuT2lCdWIyUmxJQ1Z6TENCd2IzTnBkR2x2''@;'; put 'put ''YmlBbGN5d2daWGh3WldOMFpXUWdkSGR2SUdac2IyRjBjd29BWTI5dmNtUnpBR3hoZVc5MWRDQWxjd29BWlc1a0lDVnpDZ0JwWkhnZ1BUMGdjM29BYkdGNWIzVjBMbU1BWlhod1lXNWtRMngxYzNSbGNnQnBJRDA5SUdSbFp3Qm5aWFJGWkdkbFRHbHpkQUJmWkdkZkpXUUFaR1Z5YVhabElHZHlZ''@;'; put 'put ''WEJvSUNWeklHOW1JQ1Z6Q2dCdWIyUmxJQ0lsY3lJZ2FYTWdZMjl1ZEdGcGJtVmtJR2x1SUhSM2J5QnViMjR0WTI5dGNHRnlZV0pzWlNCamJIVnpkR1Z5Y3lBaUpYTWlJR0Z1WkNBaUpYTWlDZ0JmY0c5eWRGOGxjMThsYzE4bGMxOGxiR1FBWDNCdmNuUmZKWE5mS0NWa0tWOG9KV1FwWHlWc1pB''@;'; put 'put ''QWxiR1lzSld4bUxDVnNaaXdsYkdZbFl3Qm5jbUZ3YUNBbGN5d2dZMjl2Y21RZ0pYTXNJR1Y0Y0dWamRHVmtJR1p2ZFhJZ1pHOTFZbXhsY3dvQWMzQnNhVzVsY3lCaGJtUWdZMngxYzNSbGNpQmxaR2RsY3lCdWIzUWdjM1Z3Y0c5eWRHVmtJQzBnZFhOcGJtY2diR2x1WlNCelpXZHRaVzUwY3dv''@;'; put 'put ''QWJXRjRhWFJsY2dCVU1BQm1aSEFnWkc5bGN5QnViM1FnYzNWd2NHOXlkQ0J6ZEdGeWREMXpaV3htSUMwZ2FXZHViM0pwYm1jS0FIaE1ZWGx2ZFhRZ0FEazZjSEpwYzIwQWRISnBaWE1nUFNBbFpDd2diVzlrWlNBOUlDVnpDZ0JrWlhKcGRtVmtBR2x1Wm04QWMyWmtjQ0J2Ym14NUlITjFjSEJ2''@;'; put 'put ''Y25SeklITjBZWEowUFhKaGJtUnZiUW9BU3dCeVpYQjFiSE5wZG1WbWIzSmpaUUJzWlhabGJITUFjMjF2YjNSb2FXNW5BSEYxWVdSMGNtVmxBR0psWVhWMGFXWjVBRzkyWlhKc1lYQmZjMmh5YVc1ckFISnZkR0YwYVc5dUFHeGhZbVZzWDNOamFHVnRaUUJzWVdKbGJGOXpZMmhsYldVZ1BTQWxa''@;'; put 'put ''Q0ErSURRZ09pQnBaMjV2Y21sdVp3b0FabUZ6ZEFCaGRtZGZaR2x6ZEFCbmNtRndhRjlrYVhOMEFIQnZkMlZ5WDJScGMzUUFjM0J5YVc1bkFHUnBiV1Z1QUdScGJRQnpjSEpwYm1kZlpXeGxZM1J5YVdOaGJGOWpiMjUwY205c09nb0FJQ0J5WlhCMWJITnBkbVVnWVc1a0lHRjBkSEpoWTNScGRt''@;'; put 'put ''VWdaWGh3YjI1bGJuUnpPaUFsTGpBelppQWxMakF6WmdvQUlDQnlZVzVrYjIwZ2MzUmhjblFnSldRZ2MyVmxaQ0FsWkFvQUlDQkxJRG9nSlM0d00yWWdReUE2SUNVdU1ETm1DZ0FnSUcxaGVDQnNaWFpsYkhNZ0pXUWdZMjloY25ObGJsOXpZMmhsYldVZ0pXUWdZMjloY25ObGJsOXViMlJsSUNW''@;'; put 'put ''a0NnQWdJSEYxWVdSMGNtVmxJSE5wZW1VZ0pXUWdiV0Y0WDJ4bGRtVnNJQ1ZrQ2dBZ0lFSmhjbTVsY3kxSWRYUjBJR052Ym5OMFlXNTBJQ1V1TURObUlIUnZiR1Z5WVc1alpTQWdKUzR3TTJZZ2JXRjRhWFJsY2lBbFpBb0FJQ0JqYjI5c2FXNW5JQ1V1TURObUlITjBaWEFnYzJsNlpTQWdKUzR3''@;'; put 'put ''TTJZZ1lXUmhjSFJwZG1VZ0pXUUtBQ0FnWW1WaGRYUnBabmxmYkdWaGRtVnpJQ1ZrSUc1dlpHVWdkMlZwWjJoMGN5QWxaQ0J5YjNSaGRHbHZiaUFsTGpBelpnb0FJQ0J6Ylc5dmRHaHBibWNnSlhNZ2IzWmxjbXhoY0NBbFpDQnBibWwwYVdGc1gzTmpZV3hwYm1jZ0pTNHdNMllnWkc5ZmMyaHlh''@;'; put 'put ''VzVyYVc1bklDVmtDZ0FnSUc5amRISmxaU0J6WTJobGJXVWdKWE1nYldWMGFHOWtJQ1Z6Q2dBZ0lHVmtaMlZmYkdGaVpXeHBibWRmYzJOb1pXMWxJQ1ZrQ2dCVFVGSkpUa2RmUlV4RlExUlNTVU5CVEFCVFVGSkpUa2RmVFVGWVJVNVVBRk5VVWtWVFUxOU5RVmhGVGxRQVUxUlNSVk5UWDBGUVVG''@;'; put 'put ''SlBXQUJUVkZKRlUxTUFWVTVKUms5U1RWOVRWRkpGVTFNQVJsVk1URjlUVkZKRlUxTUFUazlPUlFCT1QxSk5RVXdBUmtGVFZBQklXVUpTU1VRQVUxUlNSVk5UWDAxQlNrOVNTVnBCVkVsUFRsOUhVa0ZRU0Y5RVNWTlVBRk5VVWtWVFUxOU5RVXBQVWtsYVFWUkpUMDVmUVZaSFgwUkpVMVFBVTFS''@;'; put 'put ''U1JWTlRYMDFCU2s5U1NWcEJWRWxQVGw5UVQxZEZVbDlFU1ZOVUFGTlFVa2xPUndCVVVrbEJUa2RNUlFCU1RrY0FEU0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQnBkR1Z5SUQwZ0pXUXNJSE4wWlhBZ1BTQWxaaUJHYm05eWJTQTlJQ1ZtSUc1NklEMGdKV1FnSUVzZ1BTQWxaaUFnSUNBZ0lDQWdJQ0Fn''@;'; put 'put ''SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQUFjM0J5YVc1blgyVnNaV04wY21sallXeGZaVzFpWldSa2FXNW5YM05zYjNjQVpHMWxZVzRnUFNBbFppd2djbWh2SUQwZ0pXWUtBSE5sYm1RZ2NtRnVaRzl0SUdOdmIzSmthVzVoZEdWekNnQnpZMkZzYVc1bklHWmhZM1J2Y2lBOUlDVm1D''@;'; put 'put ''Z0JSVlVGRVgxUlNSVVZmU0ZsQ1VrbEVMQ0J6YVhwbElHeGhjbWRsY2lCMGFHRnVJQ1ZrTENCemQybDBZMmdnZEc4Z1ptRnpkQ0J4ZFdGa2RISmxaUUJqZEhKc0xUNXZkbVZ5YkdGd1BTVmtDZ0FsWkNBbFpBb0FkVzVwWm05eWJWOXpkSEpsYzNNdVl3QlZibWxtYjNKdFUzUnlaWE56VTIxdmIz''@;'; put 'put ''Um9aWEpmYm1WM0FGTndZWEp6WlUxaGRISnBlRjlwYzE5emVXMXRaWFJ5YVdNb1Fpd2dSa0ZNVTBVcEFIVnVhV1p2Y20xZmMzUnlaWE56QUh4bFpHZGxiR0ZpWld4OEFHeGxiZ0J1YjNKdFlXeHBlbVVBYjNabGNteGhjQUJQZG1WeWJHRndJSFpoYkhWbElDSWxjeUlnZFc1emRYQndiM0owWldR''@;'; put 'put ''Z0xTQnBaMjV2Y21Wa0NnQlZibkpsWTI5bmJtbDZaV1FnYjNabGNteGhjQ0IyWVd4MVpTQWlKWE1pSUMwZ2RYTnBibWNnWm1Gc2MyVUtBRlp2Y205dWIya0FiM1psY214aGNEb2dKWE1nZG1Gc2RXVWdKV1FnYzJOaGJHbHVaeUFsTGpBMFpnb0FiM1psY214aGNGOXpZMkZzYVc1bkFIWnZjbTl1''@;'; put 'put ''YjJrQWMyTmhiR2x1WndCMmNITmpBR2x3YzJWd0FHOXpZMkZzWlFCdmJHUWdjMk5oYkdsdVp3QnpZMkZzWlhoNUFIZ2dZVzVrSUhrZ2MyTmhiR2x1WndCdmNuUm9id0J2Y25Sb2IyZHZibUZzSUdOdmJuTjBjbUZwYm5SekFHOXlkR2h2WDNsNEFHOXlkR2h2ZUhrQWVIa2diM0owYUc5bmIyNWhi''@;'; put 'put ''Q0JqYjI1emRISmhhVzUwY3dCdmNuUm9iM2w0QUhsNElHOXlkR2h2WjI5dVlXd2dZMjl1YzNSeVlXbHVkSE1BY0c5eWRHaHZBSEJ6WlhWa2J5MXZjblJvYjJkdmJtRnNJR052Ym5OMGNtRnBiblJ6QUhCdmNuUm9iMTk1ZUFCd2IzSjBhRzk0ZVFCNGVTQndjMlYxWkc4dGIzSjBhRzluYjI1aGJD''@;'; put 'put ''QmpiMjV6ZEhKaGFXNTBjd0J3YjNKMGFHOTVlQUI1ZUNCd2MyVjFaRzh0YjNKMGFHOW5iMjVoYkNCamIyNXpkSEpoYVc1MGN3QndjbWx6YlFCQlpHcDFjM1JwYm1jZ0pYTWdkWE5wYm1jZ0pYTUtBRlZ1YUdGdVpHeGxaQ0JoWkdwMWMzUWdiM0IwYVc5dUlDVnpDZ0JPZFcxaVpYSWdiMllnYVhS''@;'; put 'put ''bGNtRjBhVzl1Y3lBOUlDVmtDZ0JPZFcxaVpYSWdiMllnYVc1amNtVmhjMlZ6SUQwZ0pXUUtBRzkyWlhKc1lYQWdXeVZrWFNBNklDVmtDZ0IyYjNKdlgyMWhjbWRwYmdCelpYQUFaWE5sY0FCT2IyUmxJSE5sY0dGeVlYUnBiMjQ2SUdGa1pEMGxaQ0FvSldZc0pXWXBDZ0FsWml3bFpnQnpZMkZz''@;'; put 'put ''WlNBOUlDZ2xMakF6Wml3bExqQXpaaWtLQUVWa1oyVWdjMlZ3WVhKaGRHbHZiam9nWVdSa1BTVmtJQ2dsWml3bFppa0tBRU5oYkdOMWJHRjBhVzVuSUdOcGNtTjFhWFFnYlc5a1pXd0FZMjl1YW5WbllYUmxYMmR5WVdScFpXNTBPaUIxYm1WNGNHVmpkR1ZrSUd4bGJtZDBhQ0F3SUhabFkzUnZj''@;'; put 'put ''Z29BUTJGc1kzVnNZWFJwYm1jZ2MzVmljMlYwSUcxdlpHVnNBR2R5WVhCb0lHbHpJR1JwYzJOdmJtNWxZM1JsWkM0Z1NHVnVZMlVzSUhSb1pTQmphWEpqZFdsMElHMXZaR1ZzQ2dCcGN5QjFibVJsWm1sdVpXUXVJRkpsZG1WeWRHbHVaeUIwYnlCMGFHVWdjMmh2Y25SbGMzUWdjR0YwYUNCdGIy''@;'; put 'put ''UmxiQzRLQUVOaGJHTjFiR0YwYVc1bklFMUVVeUJ0YjJSbGJBQkRZV3hqZFd4aGRHbHVaeUJ6YUc5eWRHVnpkQ0J3WVhSb2N3QTZJQ1V1TW1ZZ2MyVmpDZ0JUWlhSMGFXNW5JR2x1YVhScFlXd2djRzl6YVhScGIyNXpBRG9nSlM0eVppQnpaV01BWTJjQVpHVnNkR0VnUEQwZ01IaEdSa1pHQUdO''@;'; put 'put ''dmJuTjBjbUZwYm5RdVl3QnRhMDVEYjI1emRISmhhVzUwUndCMlp3QmpiMjF3Y21WemN5QWxaeUFLQUhOallXeGxJR0o1SUNWbkxDVm5JQW9BWW1WemRHTnZjM1FnUENCSVZVZEZYMVpCVEFCamIyMXdkWFJsVTJOaGJHVllXUUJIY21Gd2FIWnBlaUJpZFdsc2RDQjNhWFJvYjNWMElHRnVlU0Iw''@;'; put 'put ''Y21saGJtZDFiR0YwYVc5dUlHeHBZbkpoY25rS0FHUmxiR0YxYm1GNVgzUnlhV0Z1WjNWc1lYUnBiMjQ2SUNWekNnQmtaV3hoZFc1aGVWOTBjbWs2SUNWekNnQjBjbmxwYm1jZ2RHOGdaR1ZzWlhSbElHRWdibTl1TFd4cGJtVUtBQXBwYm5SbGNuTmxZM1JwYjI0Z1lYUWdKUzR6WmlBbExqTm1D''@;'; put 'put ''Z0J6WldjakpXUWdPaUFvSlM0elppd2dKUzR6WmlrZ0tDVXVNMllzSUNVdU0yWXBDZ0J5WlcxdmRtVmZiM1psY214aGNEb2dSM0poY0doMmFYb2dibTkwSUdKMWFXeDBJSGRwZEdnZ2RISnBZVzVuZFd4aGRHbHZiaUJzYVdKeVlYSjVDZ0J0WVd0bFFXUmtVRzlzZVRvZ2RXNXJibTkzYmlCemFH''@;'; put 'put ''RndaU0IwZVhCbElDVnpDZ0J0WVd0bFVHOXNlVG9nZFc1cmJtOTNiaUJ6YUdGd1pTQjBlWEJsSUNWekNnQjRJVDFPVlV4TUFITnRZWEowWDJsdWFWOTRMbU1BU1UxRVUxOW5hWFpsYmw5a2FXMEFhV3hzTFdOdmJtUnBkR2x2Ym1Wa0FISnZiM1FnUFNBbGN5QnRZWGdnYzNSbGNITWdkRzhnY205''@;'; put 'put ''dmRDQTlJQ1ZrQ2dCMGQyOXdhVG9nZFhObElHOW1JSGRsYVdkb2REMHdJR055WldGMFpYTWdaR2x6WTI5dWJtVmpkR1ZrSUdOdmJYQnZibVZ1ZEM0S0FGSmhibXNnYzJWd1lYSmhkR2x2YmlBOUlBQWxMakF6YkdZZ0FHRnlaV0VBYVc1elpYUUFKWE1nWTI5dmNtUWdKUzQxWnlBbExqVm5JR2gw''@;'; put 'put ''SUNWbUlIZHBaSFJvSUNWbUNnQWxMakF6WmdCeVpXTWdKV1lnSldZZ0pXWWdKV1lLQUNWbUlDMGdKV1lnSldZZ0pXWWdKV1lnUFNBbFppQW9KV1lnSldZZ0pXWWdKV1lwQ2dCMGNubHBibWNnZEc4Z1lXUmtJSFJ2SUhKbFkzUWdleVZtSUNzdkxTQWxaaXdnSldZZ0t5OHRJQ1ZtZlFvQWRHOTBZ''@;'; put 'put ''V3dnWVdSa1pXUWdjMjhnWm1GeUlEMGdKV1FLQUdGa1pHbHVaeUFsWkNCcGRHVnRjeXdnZEc5MFlXd2dZWEpsWVNBOUlDVm1MQ0IzSUQwZ0pXWXNJR0Z5WldFdmR6MGxaZ29BWTI5dGNHOTFibVJGWkdkbGN6b2dZMjkxYkdRZ2JtOTBJR052Ym5OMGNuVmpkQ0J2WW5OMFlXTnNaWE1nTFNCbVlX''@;'; put 'put ''eHNhVzVuSUdKaFkyc2dkRzhnYzNSeVlXbG5hSFFnYkdsdVpTQmxaR2RsY3dvQVkyOXRjRzkxYm1SRlpHZGxjem9nYm05a1pYTWdkRzkxWTJnZ0xTQm1ZV3hzYVc1bklHSmhZMnNnZEc4Z2MzUnlZV2xuYUhRZ2JHbHVaU0JsWkdkbGN3b0FjR0ZqYXlCMllXeDFaU0FsWkNCcGN5QnpiV0ZzYkdW''@;'; put 'put ''eUlIUm9ZVzRnWlhObGNDQW9KUzR3TTJZc0pTNHdNMllwQ2dCelpYQWdkbUZzZFdVZ0tDVXVNRE5tTENVdU1ETm1LU0JwY3lCemJXRnNiR1Z5SUhSb1lXNGdaWE5sY0NBb0pTNHdNMllzSlM0d00yWXBDZ0JqWXlWelh5VmtBR05qSlhNckpXUUFZMTlqYm5RZ1BUMGdNQUJqYjIxd0xtTUFabWx1''@;'; put 'put ''WkVORGIyMXdBR2R5YVdRb0pXUXNKV1FwT2lBbGN3b0FkMmQwSUQ0Z01BQlJkV0ZrVkhKbFpTNWpBRkYxWVdSVWNtVmxYM0psY0hWc2MybDJaVjltYjNKalpWOWhZMk4xYlhWc1lYUmxBSEYwTWkwK2JpQStJREFBY1hReExUNXVJRDRnTUNBbUppQnhkREl0UG00Z1BpQXdBRkYxWVdSVWNtVmxY''@;'; put 'put ''M0psY0hWc2MybDJaVjltYjNKalpWOXBiblJsY21GamRBQmthWE4wSUQ0Z01BQWhLSEV0UG13cEFGRjFZV1JVY21WbFgyRmtaRjlwYm5SbGNtNWhiQUJwYVNBOElERThQR1JwYlNBbUppQnBhU0ErUFNBd0FIRXRQbkYwYzF0cGFWMEFjUzArYmlBOVBTQXhBQ0VvY1MwK2NYUnpLUUJ4TFQ1c0FI''@;'; put 'put ''ZHBaSFJvSUQ0Z01BQlJkV0ZrVkhKbFpWOXVaWGNBUVMwK1ptOXliV0YwSUQwOUlFWlBVazFCVkY5RFUxSUFVM0JoY25ObFRXRjBjbWw0TG1NQVUzQmhjbk5sVFdGMGNtbDRYM1J5WVc1emNHOXpaUUJCSUNZbUlFSUFVM0JoY25ObFRXRjBjbWw0WDJGa1pBQkJMVDVtYjNKdFlYUWdQVDBnUWkw''@;'; put 'put ''K1ptOXliV0YwSUNZbUlFRXRQbVp2Y20xaGRDQTlQU0JHVDFKTlFWUmZRMU5TQUVFdFBuUjVjR1VnUFQwZ1FpMCtkSGx3WlFCVGNHRnljMlZOWVhSeWFYaGZhWE5mYzNsdGJXVjBjbWxqQUVFdFBtWnZjbTFoZENBOVBTQkdUMUpOUVZSZlEwOVBVa1FBVTNCaGNuTmxUV0YwY21sNFgyWnliMjFm''@;'; put 'put ''WTI5dmNtUnBibUYwWlY5bWIzSnRZWFFBYlNBK0lEQWdKaVlnYmlBK0lEQWdKaVlnYm5vZ1BqMGdNQUJUY0dGeWMyVk5ZWFJ5YVhoZlpuSnZiVjlqYjI5eVpHbHVZWFJsWDJGeWNtRjVjMTlwYm5SbGNtNWhiQUJCQUdwaFcyMWhjMnRiYW1GYmFsMWRYU0E5UFNCcVlWdHFYUUJUY0dGeWMyVk5Z''@;'; put 'put ''WFJ5YVhoZmMzVnRYM0psY0dWaGRGOWxiblJ5YVdWekFHbGtJRHdnYmlvb2VXMWhlQzE1YldsdUt6RXBBR3BoVzIxaGMydGJhV1JkWFNBOVBTQnFZVnRxWFFCVGNHRnljMlZOWVhSeWFYaGZiWFZzZEdsd2JIbGZaR1Z1YzJVeUFFRXRQblI1Y0dVZ1BUMGdUVUZVVWtsWVgxUlpVRVZmVWtWQlRB''@;'; put 'put ''QlRjR0Z5YzJWTllYUnlhWGhmYlhWc2RHbHdiSGxmZG1WamRHOXlBRUV0UG5SNWNHVWdQVDBnVFVGVVVrbFlYMVJaVUVWZlVrVkJUQ0I4ZkNCQkxUNTBlWEJsSUQwOUlFMUJWRkpKV0Y5VVdWQkZYMGxPVkVWSFJWSUFVM0JoY25ObFRXRjBjbWw0WDIxMWJIUnBjR3g1WDJSbGJuTmxNUUJUY0dG''@;'; put 'put ''eWMyVk5ZWFJ5YVhoZmJYVnNkR2x3YkhrQWFtTmJiV0Z6YTF0cVlsdHJYVjFkSUQwOUlHcGlXMnRkQUZOd1lYSnpaVTFoZEhKcGVGOXRkV3gwYVhCc2VUTUFhbVJiYldGemExdHFZMXRyWFYxZElEMDlJR3BqVzJ0ZEFGTndZWEp6WlUxaGRISnBlRjlqYjI5eVpHbHVZWFJsWDJadmNtMWZZV1Jr''@;'; put 'put ''WDJWdWRISnBaWE1BVTNCaGNuTmxUV0YwY21sNFgyUnBkbWxrWlY5eWIzZGZZbmxmWkdWbmNtVmxBRzRnUGlBeEFHZGxibVZ5WVd3dVl3QnBjbUZ1WkFCdmJtVmliRzlqYXdCdGFXNWthWE4wQUdGeWRHbGpkV3hoZEdsdmJsOXdiM01BY205dmRBQlFjbWx2Y21sMGVWRjFaWFZsTG1NQVVISnBi''@;'; put 'put ''M0pwZEhsUmRXVjFaVjl3ZFhOb0FHZGhhVzRnUEQwZ2NTMCtibWRoYVc0QVUzQmhjbk5sVFdGMGNtbDRYMmx6WDNONWJXMWxkSEpwWXloQkxDQkdRVXhUUlNrQWNHOXpkRjl3Y205alpYTnpMbU1BYVdSbFlXeGZaR2x6ZEdGdVkyVmZiV0YwY21sNEFHeGxiaUErSURBQVUzUnlaWE56VFdGcWIz''@;'; put 'put ''SnBlbUYwYVc5dVUyMXZiM1JvWlhJeVgyNWxkd0J1ZWlBK0lEQUFhV1JsWVd4ZlpHbHpkRjl6WTJobGJXVWdkbUZzZFdVZ2QzSnZibWNBVTNCaGNuTmxUV0YwY21sNFgybHpYM041YlcxbGRISnBZeWhCTENCR1FVeFRSU2tnSmlZZ1FTMCtkSGx3WlNBOVBTQk5RVlJTU1ZoZlZGbFFSVjlTUlVG''@;'; put 'put ''TUFGTndZWEp6WlZOMGNtVnpjMDFoYW05eWFYcGhkR2x2YmxOdGIyOTBhR1Z5WDI1bGR3QnBaR2xoWnlBK1BTQXdBRk4wY21WemMwMWhhbTl5YVhwaGRHbHZibE50YjI5MGFHVnlYM050YjI5MGFBQW9JV3BqYmlrZ0ppWWdLQ0YyWVd3cEFHZGxkRjlsWkdkbFgyeGhZbVZzWDIxaGRISnBlQUJV''@;'; put 'put ''Y21saGJtZHNaVk50YjI5MGFHVnlYMjVsZHdCcVpHbGhaeUErUFNBd0FGTndjbWx1WjFOdGIyOTBhR1Z5WDI1bGR3QWhabXhoWndCVGNISnBibWRUYlc5dmRHaGxjbDl6Ylc5dmRHZ0FibVZwWjJoaVBTVmtDZ0J5YjI5MElEMGdKWE1LQUY5aWJHOWphMThsWkFCekxUNXplaUErSURBQVlteHZZ''@;'; put 'put ''MnQwY21WbExtTUFjRzl3QUdGamRIVmhiQUJ1YjJSbGJHbHpkQzVqQUdsdWMyVnlkRTV2WkdWc2FYTjBBRjl6Y0dGdVh5VmtBRjlqYkc5dVpWOGxaQUJwY0FCa1pXZHNhWE4wTG1NQWNtVnRiM1psUkdWbmJHbHpkQUJGY25KdmNnQlhZWEp1YVc1bkFDVnpPaUFBZFhObGNtOTFkRG9nWTI5MWJH''@;'; put 'put ''UWdibTkwSUdGc2JHOWpZWFJsSUcxbGJXOXllUW9BWDBGSFgzTjBjbVJoZEdFQVgwRkhYMlJoZEdGa2FXTjBBR0ZuWkdsamRHOW1PaUIxYm10dWIzZHVJR3RwYm1RZ0pXUUtBQ1ZqSld4a0FHMWxiVzl5ZVNCaGJHeHZZMkYwYVc5dUlHWmhhV3gxY21VQVlXZGtaV3hsZEdVZ2IyNGdkM0p2Ym1j''@;'; put 'put ''Z1ozSmhjR2dBWDBGSFgzQmxibVJwYm1jQVlXZHlaV052Y21SZlkyRnNiR0poWTJzZ2IyWWdZU0JpWVdRZ2IySnFaV04wQUhCbGJtUWdaR2xqZEc5bUlHRWdZbUZrSUc5aWFtVmpkQUJ0YjNabElIUnZJR1p5YjI1MElHeHZZMnNnYVc1amIyNXphWE4wWlc1amVRQmNYQUJtWVhSaGJDQm1iR1Y0''@;'; put 'put ''SUhOallXNXVaWElnYVc1MFpYSnVZV3dnWlhKeWIzSXRMVzV2SUdGamRHbHZiaUJtYjNWdVpBQWxjd29BWm1GMFlXd2dabXhsZUNCelkyRnVibVZ5SUdsdWRHVnlibUZzSUdWeWNtOXlMUzFsYm1RZ2IyWWdZblZtWm1WeUlHMXBjM05sWkFCbVlYUmhiQ0JsY25KdmNpQXRJSE5qWVc1dVpYSWdh''@;'; put 'put ''VzV3ZFhRZ1luVm1abVZ5SUc5MlpYSm1iRzkzQUc5MWRDQnZaaUJrZVc1aGJXbGpJRzFsYlc5eWVTQnBiaUJoWVdkZloyVjBYMjVsZUhSZlluVm1abVZ5S0NrQWFXNXdkWFFBYzNsdWRHRjRJR0Z0WW1sbmRXbDBlU0F0SUdKaFpHeDVJR1JsYkdsdGFYUmxaQ0J1ZFcxaVpYSWdKd0FuSUdsdUlH''@;'; put 'put ''eHBibVVnSldRZ2IyWWdBQ0J6Y0d4cGRITWdhVzUwYnlCMGQyOGdkRzlyWlc1ekNnQWxjd0JzYVc1bEFDVmtJQ1V4V3lKZEpXNEFiM1YwSUc5bUlHUjVibUZ0YVdNZ2JXVnRiM0o1SUdsdUlHRmhaMTlqY21WaGRHVmZZblZtWm1WeUtDa0FiM1YwSUc5bUlHUjVibUZ0YVdNZ2JXVnRiM0o1SUds''@;'; put 'put ''dUlHRmhaMlZ1YzNWeVpWOWlkV1ptWlhKZmMzUmhZMnNvS1FBNklBQWdhVzRnYkdsdVpTQWxaQUFnYm1WaGNpQW5BQ0J6WTJGdWJtbHVaeUJoSUhGMWIzUmxaQ0J6ZEhKcGJtY2dLRzFwYzNOcGJtY2daVzVrY1hWdmRHVS9JR3h2Ym1kbGNpQjBhR0Z1SUNWa1B5a0FDbE4wY21sdVp5QnpkR0Z5''@;'; put 'put ''ZEdsdVp6b2lBQ0J6WTJGdWJtbHVaeUJoSUVoVVRVd2djM1J5YVc1bklDaHRhWE56YVc1bklDYytKejhnWW1Ga0lHNWxjM1JwYm1jL0lHeHZibWRsY2lCMGFHRnVJQ1ZrUHlrQUNsTjBjbWx1WnlCemRHRnlkR2x1WnpvOEFDQnpZMkZ1Ym1sdVp5QmhJQzhxTGk0dUtpOGdZMjl0YldWdWRDQW9i''@;'; put 'put ''V2x6YzJsdVp5QW5LaTgvSUd4dmJtZGxjaUIwYUdGdUlDVmtQeWtBWm14bGVDQnpZMkZ1Ym1WeUlIQjFjMmd0WW1GamF5QnZkbVZ5Wm14dmR3QWlJZ0J6ZEhKcFkzUUFiR2x1Wld4bGJtZDBhQUE3Q2dBZ1cydGxlVDBBWFFBZ1d3QXNDZ0E5QUY4bGJHUmZVMVZUVUVWRFZBQmthUUJ6ZEhKcFkz''@;'; put 'put ''UWdBSHNLQUYwN0NnQVM3dTRVQ1FQdS91N3U3Z0h1N3U0Qjd1NEsvdTRUR1JYdUV3SHU3dTd1Q3hIdTd1N3U3dTd1N3U0Qjd1NFdDUUVCSFE4WDd1NGFGeHZ1N2h6dTd1N3VBUm43N3U3dUFlNFE3dTRlN3U3dTdnQUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJ''@;'; put 'put ''Q0FnSUNBZ0lDQWdJWEVRSUNBZ0lDQWdJQ0FnSUNBZ0lTRUFJVEFnSVdBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSVVBaFVDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWc0Q0R3SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lD''@;'; put 'put ''QWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lCQWdNRUJRWUhDQWtLQ3d3TkN3TUVCUThIQXd3TkJnd05E''@;'; put 'put ''Z3dOR2hVV0FBRUFBd2NPQmc4SURBMFNFeW9RRVFrUUx6QVJNaGNURFJRU0xoSVVRUk15RXl4QUtrSVpMRUpHSWd3TkRpTVBDUkFSQ2hBUnlSQVJMVVZHL0FFRzlnOEg5aVFDRUJFdk1EWk5UaWdtT3p3cU5qRTVQVDh2T2tEWVJEQStKVGRETlVzck9FbE1BQU1KQUFBQUFRNENDd3dJSXlRbE5q''@;'; put 'put ''czlBQTBRRWhzV0hCSW5NaUlYTXg0OEJnYzFCUThSRkJncEFCTXBBQUFBQUFBM0ZTZ2RIZ0FoSmpRZk1ENFpMQUFiQUNBYUtnQXJPaTR2QURFNE9TMEFBZ0lCQUFNREFRQUJBQUVCQVFBQ0FRRUFBZ0lEQVFFQUFBVUFBUU1CQXdVREFRRUJBUUlBQVFBRUFnQUNBUUVEQWdFQUF3SUJBQUVCQUFF''@;'; put 'put ''QkFRTUFHQmtaR1JvYkhCd2RIUjRlSHg4Z0lDRWhJaUlqSkNRbUp5VWxLQ2dwS1NrcUtpc3JLeXdzTFMwdUx5OHdNVEV5TXpRMk5UYzNOemc0T0RrNU9qcnU3di91N3U3dTd1NGZJTzRBNys3dTdnenU3dTRJRGU3dTd2anU3dTd1N3U3MTd2OERDQVFoQlFzU0V5Y1VGUllwTWtFWEdCa2FMRE0w''@;'; put 'put ''UWtkSUcwb2NIUzRlVHg4Z2EyVjVBR0YwZEhKcFluVjBaU0J0WVdOeWIzTWdibTkwSUdsdGNHeGxiV1Z1ZEdWa0FDVnpPaVZ6QUVOdmRXeGtJRzV2ZENCdmNHVnVJQ0lsY3lJZ1ptOXlJSGR5YVhScGJtY2dPaUFsY3dvQVRtOGdiR2xpZWlCemRYQndiM0owTGdvQUxpVmtBRzV2Ym1GdFpTNW5k''@;'; put 'put ''Z0JuZG5keWFYUmxYMjV2WDNvZ2NISnZZbXhsYlNBbFpBb0FiV1Z0YjNKNUlHRnNiRzlqWVhScGIyNGdabUZwYkhWeVpRb0FUbThnYkdsaWVpQnpkWEJ3YjNKMENnQm5kbkJ5YVc1MFpqb2dKWE1LQUMwNU9UazVPVGs1T1RrNU9UazVPVGt1T1RrQVozSmhjR2gyYVhvQU1pNDBNQzR4QURJd01U''@;'; put 'put ''WXhNakkxTGpBek1EUUFjbVZ1WkdWeUFHUmxkbWxqWlFCc2IyRmthVzFoWjJVQVpIbHVZVzFwWXlCc2IyRmthVzVuSUc1dmRDQmhkbUZwYkdGaWJHVUtBRlZ6YVc1bklDVnpPaUFsY3pvbGN3b0FaM1oxYzJWeWMyaGhjR1V1WXdCbmRuVnpaWEp6YUdGd1pWOW1hVzVrQUdkMmRYTmxjbk5vWVhC''@;'; put 'put ''bFgyWnBiR1ZmWVdOalpYTnpBRVpwYkdWdVlXMWxJQ0lsY3lJZ2FYTWdkVzV6WVdabENnQWxjeUIzYUdsc1pTQnZjR1Z1YVc1bklDVnpDZ0IxY3kwK1pnQm5kblZ6WlhKemFHRndaVjl2Y0dWdUFDSWxjeUlnZDJGeklHNXZkQ0JtYjNWdVpDQmhjeUJoSUdacGJHVWdiM0lnWVhNZ1lTQnphR0Z3''@;'; put 'put ''WlNCc2FXSnlZWEo1SUcxbGJXSmxjZ29BTDAxbFpHbGhRbTk0QUNoYllTMTZYVnRoTFhwQkxWcGRLaWs5SWloYlhpSmRLaWtpQUdOaGJtNXZkQ0JqYjIxd2FXeGxJSEpsWjNWc1lYSWdaWGh3Y21WemMybHZiaUFsY3dBbGJHWWxNbk1BY0hRQWRtbGxkMEp2ZUFBbGJHWWdKV3htSUNWc1ppQWxi''@;'; put 'put ''R1lBYVc0QWNIZ0FjR01BSWdCamJRQnRiUUFsSlVKdmRXNWthVzVuUW05NE9nQUIwTkhTMDlUVjF0ZlkyUUE4YzNabkFGZEZRbEFBZDJWaWNBQW9iR2xpS1FDSlVFNUhEUW9hQ2dCd2JtY0FKU0ZRVXkxQlpHOWlaUzBBUWswQVltMXdBRWRKUmpnQVoybG1BUC9ZLytBQWFuQmxad0FsVUVSR0xR''@;'; put 'put ''QndaR1lBeGREVHhnQmxjSE1BUEQ5NGJXd0FlRzFzQUZKSlJrWUFjbWxtWmdBQUFBRUFBR2xqYndBbFpDQWxaQ0FsWkNBbFpBQk1ZWGx2ZFhRZ2QyRnpJRzV2ZENCa2IyNWxDZ0JtWVdsc2RYSmxJRzFoYkd4dll5ZHBibWNnWm05eUlISmxjM1ZzZENCemRISnBibWNBWjJNNklFOTFkQ0J2WmlC''@;'; put 'put ''dFpXMXZjbmtLQUY5alkxOEFiM0pwWndCdmNBQmpZMjl0Y0hNdVl3QnRZWEJEYkhWemRBQmpZMmR5WVhCb2FXNW1id0JqWTJkdWIyUmxhVzVtYndBb0pUUnNaQ2tnSlRkc1pDQnViMlJsY3lBbE4yeGtJR1ZrWjJWekNnQWdJQ0FnSUNBZ0pUZGtJRzV2WkdWeklDVTNaQ0JsWkdkbGN5QWxOMnhr''@;'; put 'put ''SUdOdmJYQnZibVZ1ZEhNZ0pYTUtBR1JuQUVWeWNtOXlPaUJ1YjJSbElDSWxjeUlnWW1Wc2IyNW5jeUIwYnlCMGQyOGdibTl1TFc1bGMzUmxaQ0JqYkhWemRHVnljeUFpSlhNaUlHRnVaQ0FpSlhNaUNnQnpiM0owZGdCeWIzY2diV0ZxYjNJQVkyOXNkVzF1SUcxaGFtOXlBR0Z5Y21GNUlIQmhZ''@;'; put 'put ''MnRwYm1jNklDVnpJQ1ZrSUhKdmQzTWdKV1FnWTI5c2RXMXVjd29BWW1KYkpYTmRJQ1V1TldjZ0pTNDFaeUFsTGpWbklDVXVOV2NLQUhOMFpYQWdjMmw2WlNBOUlDVmtDZ0J3YjNOYkpXUmRJQ1ZrSUNWa0NnQmpZeUFvSldRZ1kyVnNiSE1wSUdGMElDZ2xaQ3dsWkNrZ0tDVmtMQ1ZrS1FvQVky''@;'; put 'put ''TWdLQ1ZrSUdObGJHeHpLU0JoZENBb0pXUXNKV1FwQ2dBbGN5QnVieTRnWTJWc2JITWdKV1FnVnlBbFpDQklJQ1ZrQ2dBZ0lDVmtJQ1ZrSUdObGJHd0tBR3hwWW5CaFkyczZJR1JwYzJNZ1BTQWxaaUFvSUR3Z01Da0tBRkJoWTJ0cGJtYzZJR052YlhCMWRHVWdaM0pwWkNCemFYcGxDZ0JoSUNW''@;'; put 'put ''bUlHSWdKV1lnWXlBbFppQmtJQ1ZtSUhJZ0pXWUtBSEp2YjNRZ0pXUWdLQ1ZtS1NBbFpDQW9KV1lwQ2dBZ2NqRWdKV1lnY2pJZ0pXWUtBSEJwYm1adkFIQmhZMnN1WXdCblpYUlFZV05yU1c1bWJ3QWdJRzFoY21kcGJpQWxaQW9BY0dGamEyMXZaR1VBY0dGeWMyVlFZV05yVFc5a1pVbHVabThB''@;'; put 'put ''WVhKeVlYa0FZWE53WldOMEFDVm1BSEJoWTJzZ2FXNW1iem9LQUNBZ2JXOWtaU0FnSUNWekNnQWdJR0Z6Y0dWamRDQWxaZ29BSUNCemFYcGxJQ0FnSldRS0FDQWdabXhoWjNNZ0lDVmtDZ0IxYm1SbFptbHVaV1FBY0dGamF3QkJjbkp2ZHlCMGVYQmxJQ0lsY3lJZ2RXNXJibTkzYmlBdElHbG5i''@;'; put 'put ''bTl5YVc1bkNnQnViM0p0WVd3QVkzSnZkd0IwWldVQVpHOTBBR2x1ZGdCMlpXVUFjR1Z1QUcxd2RIa0FZM1Z5ZG1VQWFXTjFjblpsQUd3QWFHRnNaZ0JwYm5abGJYQjBlUUJmWW1GamEyZHliM1Z1WkFCZlpISmhkMThBUTI5MWJHUWdibTkwSUhCaGNuTmxJQ0pmWW1GamEyZHliM1Z1WkNJZ1lY''@;'; put 'put ''UjBjbWxpZFhSbElHbHVJR2R5WVhCb0lDVnpDZ0FnSUNJbGN5SUtBRzV2SUcxbGJXOXllU0JtY205dElIcHRZV3hzYjJNb0tRb0FiMkpxQUdWdGFYUXVZd0J3YjNCZmIySnFYM04wWVhSbEFHTnNkWE4wQUNWc1pBQndZV2RsSldRc0pXUmZBRlJ2ZEdGc0lITnBlbVVnUGlBeElHbHVJQ0lsY3lJ''@;'; put 'put ''Z1kyOXNiM0lnYzNCbFl5QUFTV3hzWldkaGJDQnNaVzVuZEdnZ2RtRnNkV1VnYVc0Z0lpVnpJaUJqYjJ4dmNpQmhkSFJ5YVdKMWRHVWdBR3h1Y21OdmJHOXljMk5vWlcxbEFHVnRhWFJmWldSblpWOXNZV0psYkFBbGN5MGxjd0JtYjNKM1lYSmtBR0poWTJzQUlDMCtJQUFnTFMwZ0FHbHVJR1Zr''@;'; put 'put ''WjJVZ0pYTWxjeVZ6Q2dCc1lXSmxiR0ZzYVdkdVpXUUFaV1JuWldoeVpXWUFaV1JuWlZWU1RBQnNZV0psYkdoeVpXWUFiR0ZpWld4VlVrd0FkR0ZwYkdoeVpXWUFkR0ZwYkZWU1RBQm9aV0ZrYUhKbFpnQm9aV0ZrVlZKTUFHVmtaMlYwWVhKblpYUUFiR0ZpWld4MFlYSm5aWFFBZEdGcGJIUmhj''@;'; put 'put ''bWRsZEFCb1pXRmtkR0Z5WjJWMEFHVmtaMlYwYjI5c2RHbHdBR3hoWW1Wc2RHOXZiSFJwY0FCMFlXbHNkRzl2YkhScGNBQm9aV0ZrZEc5dmJIUnBjQUFCYm1WemRHbHVaeUJ1YjNRZ1lXeHNiM2RsWkNCcGJpQnpkSGxzWlRvZ0pYTUtBSFZ1YldGMFkyaGxaQ0FuS1NjZ2FXNGdjM1I1YkdVNklD''@;'; put 'put ''VnpDZ0IwY25WdVkyRjBhVzVuSUhOMGVXeGxJQ2NsY3ljS0FIVnViV0YwWTJobFpDQW5LQ2NnYVc0Z2MzUjViR1U2SUNWekNnQmhiR3dBYVc0Z1kyeDFjM1JsY2lBbGN3b0FUVzl5WlNCMGFHRnVJRElnWTI5c2IzSnpJSE53WldOcFptbGxaQ0JtYjNJZ1lTQm5jbUZrYVdWdWRDQXRJR2xuYm05''@;'; put 'put ''eWFXNW5JSEpsYldGcGJtbHVad29BWjNKaFpHbGxiblFnY0dWdUlHTnZiRzl5Y3lCdWIzUWdlV1YwSUhOMWNIQnZjblJsWkM0S0FFbHRZV2RsY3lCMWJuTjFjSEJ2Y25SbFpDQnBiaUFpWW1GamEyZHliM1Z1WkNJZ1lYUjBjbWxpZFhSbENnQnNZWGxsY25NZ2JtOTBJSE4xY0hCdmNuUmxaQ0Jw''@;'; put 'put ''YmlBbGN5QnZkWFJ3ZFhRS0FFeGhlVzkxZENCM1lYTWdibTkwSUdSdmJtVXVJQ0JOYVhOemFXNW5JR3hoZVc5MWRDQndiSFZuYVc1elB5QUtBR2QyVW1WdVpHVnlTbTlpY3lBbGN6b2dKUzR5WmlCelpXTnpMZ29BYkdGNWIzVjBJSGRoY3lCdWIzUWdaRzl1WlFvQWNtVnVaR1Z5WlhJZ1ptOXlJ''@;'; put 'put ''Q1Z6SUdseklIVnVZWFpoYVd4aFlteGxDZ0J3WVdkbFpHbHlQU1Z6SUdsbmJtOXlaV1FLQUhacFpYZHdiM0owQUNWc1ppd2xiR1lzSld4bUxDY2xXMTRuWFNjQUpXeG1MQ1ZzWml3bGJHWXNKVnRlTEYwbGN3QWxiR1lzSld4bUxDVnNaaXdsYkdZc0pXeG1BRzkxZEhCMWRHOXlaR1Z5QUc5a1pY''@;'; put 'put ''Tm1hWEp6ZEFCa1oyVnpabWx5YzNRQWJHRjVaWEp6QUd4aGVXVnljMlZzWldOMEFGUm9aU0JzWVhsbGNuTmxiR1ZqZENCaGRIUnlhV0oxZEdVZ0lpVnpJaUJrYjJWeklHNXZkQ0J0WVhSamFDQmhibmtnYkdGNVpYSWdjM0JsWTJsbVpXUWdZbmtnZEdobElHeGhlV1Z5Y3lCaGRIUnlhV0oxZEdV''@;'; put 'put ''Z0xTQnBaMjV2Y21Wa0xnb0FiR0Y1WlhKelpYQUFPZ2tnQUd4aGVXVnliR2x6ZEhObGNBQXNBRlJvWlNCamFHRnlZV04wWlhJZ0p5VmpKeUJoY0hCbFlYSnpJR2x1SUdKdmRHZ2dkR2hsSUd4aGVXVnljMlZ3SUdGdVpDQnNZWGxsY214cGMzUnpaWEFnWVhSMGNtbGlkWFJsY3lBdElHeGhlV1Z5''@;'; put 'put ''YkdsemRITmxjQ0JwWjI1dmNtVmtMZ29BY0dGa0FFSk1BSEJoWjJWa2FYSUFjMjlzYVdRQUFITmxkR3hwYm1WM2FXUjBhQUF4QUFCemNHd3RQbk5wZW1VZ1BpQXdBR2x1YVhSZmMzQnNhVzVsYzE5aVlnQmllaTV6YVhwbElENGdNQUJpWlhwcFpYSmZZbUlBWW5vdWMybDZaU0FsSURNZ1BUMGdN''@;'; put 'put ''UUFsYkdZQVptOXVkSEJoZEdnQVJFOVVSazlPVkZCQlZFZ0FSMFJHVDA1VVVFRlVTQUJwYldGblpYQmhkR2dBY1hWaGJuUjFiUUJ5WVc1clpHbHlBRXhTQUVKVUFGSk1BRzV2WkdWelpYQUFjbUZ1YTNObGNBQmxjWFZoYkd4NUFITm9iM2RpYjNobGN3Qm1iMjUwYm1GdFpYTUFjMmw2WlFCd1lX''@;'; put 'put ''ZGxBR05sYm5SbGNnQnliM1JoZEdVQWIzSnBaVzUwWVhScGIyNEFiR0Z1WkhOallYQmxBR05zZFhOMFpYSnlZVzVyQUdOdmJtTmxiblJ5WVhSbEFHUndhUUJ5WlhOdmJIVjBhVzl1QUc5eVpHVnlhVzVuQUdacGJHeGpiMnh2Y2dCbWIyNTBjMmw2WlFCbWIyNTBibUZ0WlFCbWIyNTBZMjlzYjNJ''@;'; put 'put ''QWVHeGhZbVZzQUhCbGJuZHBaSFJvQUhCbGNtbHdhR1Z5YVdWekFITnJaWGNBWkdsemRHOXlkR2x2YmdCdWIycDFjM1JwWm5rQWJHRjVaWElBWjNKdmRYQUFZMjl0YldWdWRBQjJaWEowYVdObGN3QjZBSGRsYVdkb2RBQnNZV0psYkdac2IyRjBBR1JwY2dCaGNuSnZkMmhsWVdRQVlYSnliM2Qw''@;'; put 'put ''WVdsc0FHaGxZV1JzWVdKbGJBQjBZV2xzYkdGaVpXd0FiR0ZpWld4bWIyNTBjMmw2WlFCc1lXSmxiR1p2Ym5SdVlXMWxBR3hoWW1Wc1ptOXVkR052Ykc5eUFHeGhZbVZzWkdsemRHRnVZMlVBYkdGaVpXeGhibWRzWlFCdGFXNXNaVzRBWkdWamIzSmhkR1VBWVhKeWIzZHphWHBsQUdOdmJuTjBj''@;'; put 'put ''bUZwYm5RQWRHRnBiR05zYVhBQWFHVmhaR05zYVhBQWJHRmlaV3hxZFhOMEFHeHZZMkZzQUdkc2IySmhiQUFsYkdZc0pXeG1KV01BSld4bUpXTUFjbUYwYVc4QVlYVjBid0JqYjIxd2NtVnpjd0JsZUhCaGJtUUFabWxzYkFCblpBQndjd0J6ZG1jQVkyaGhjbk5sZEFCMWRHWXRPQUJzWVhScGJp''@;'; put 'put ''MHhBR3hoZEdsdU1RQnNNUUJKVTA4dE9EZzFPUzB4QUVsVFQxODRPRFU1TFRFQVNWTlBPRGcxT1MweEFFbFRUeTFKVWkweE1EQUFZbWxuTFRVQVltbG5OUUIxZEdZNEFGVnVjM1Z3Y0c5eWRHVmtJR05vWVhKelpYUWdJaVZ6SWlBdElHRnpjM1Z0YVc1bklIVjBaaTA0Q2dCVmJuTjFjSEJ2Y25S''@;'; put 'put ''bFpDQmphR0Z5YzJWMElIWmhiSFZsSUNWa0NnQlZWRVl0T0FCQ1NVY3ROUUJwYmlCc1lXSmxiQ0J2WmlCbmNtRndhQ0FsY3dvQWFXNGdiR0ZpWld3Z2IyWWdibTlrWlNBbGN3b0FhVzRnYkdGaVpXd2diMllnWldSblpTQWxjeUFsY3lBbGN3b0FhMmx1WkNBOVBTQk1WRjlPVDA1RkFHeGhZbVZz''@;'; put 'put ''Y3k1akFHMWhhMlZmYkdGaVpXd0FYRXdBWEVjQVhFVUFYRWdBWEZRQUppTXhNenNBSmlNeE1Ec0FKbkYxYjNRN0FDWWpNVFl3T3dBbVlXMXdPd0FtWjNRN0FDWWpNems3QUNZak5EVTdBQ1pzZERzQUpYTWdKV1FnYm05a1pYTWdKV1FnWldSblpYTWdiV0Y0YVhSbGNqMGxaQ0JpWVd4aGJtTmxQ''@;'; put 'put ''U1ZrQ2dCdVpYUjNiM0pySUhOcGJYQnNaWGc2SUFBbFpDQUFKWE1sWkNCdWIyUmxjeUFsWkNCbFpHZGxjeUFsWkNCcGRHVnlJQ1V1TW1ZZ2MyVmpDZ0IxY0dSaGRHVTZJRzFwYzIxaGRHTm9aV1FnYkdOaElHbHVJSFJ5WldWMWNHUmhkR1Z6Q2dCVWNtVmxYMlZrWjJVdWMybDZaU0E5UFNCT1gy''@;'; put 'put ''NXZaR1Z6SUMwZ01RQnVjeTVqQUdabFlYTnBZbXhsWDNSeVpXVUFJVlJTUlVWZlJVUkhSU2hsS1FCdFpYSm5aVjkwY21WbGN3QW9jakF0UG1obFlYQmZhVzVrWlhnZ1BpQXRNU2tnZkh3Z0tISXhMVDVvWldGd1gybHVaR1Y0SUQ0Z0xURXBBRk5VYzJWMFZXNXBiMjRBY2kwK2FHVmhjRjlwYm1S''@;'; put 'put ''bGVDQStQU0F3QUdGa1pGOTBjbVZsWDJWa1oyVTZJRzFwYzNOcGJtY2dkSEpsWlNCbFpHZGxDZ0JoWkdSZmRISmxaVjlsWkdkbE9pQmxiWEIwZVNCdmRYUmxaR2RsSUd4cGMzUUtBR0ZrWkY5MGNtVmxYMlZrWjJVNklHVnRjSFI1SUdsdVpXUm5aU0JzYVhOMENnQjBjbTkxWW14bElHbHVJR2x1''@;'; put 'put ''YVhSZmNtRnVhd29BQ1NWeklDVmtDZ0J6WldGeVkyaHphWHBsQUdkeVlYQm9JQUFnQUc1dlpHVWdBSE4wYjNBS0FDVXVOV2NBY0c5ekFISmxZM1J6QUhoc2NBQnNjQUJvWldGa1gyeHdBSFJoYVd4ZmJIQUFiSGRwWkhSb0FHeG9aV2xuYUhRQVltSUFKUzQxWnl3bExqVm5MQ1V1TldjQUxDVXVO''@;'; put 'put ''V2NBSlM0MVp5d2xMalZuQUhOaGJYQnNaWEJ2YVc1MGN3QWxMalZuSUNVdU5XY0FjeXdsTGpWbkxDVXVOV2NnQUdVc0pTNDFaeXdsTGpWbklBQWxMalZuTENVdU5XY3NKUzQxWnl3bExqVm5BQ1V1TW1ZQUpTNDFaeXdsTGpWbkxDVXVOV2NzSlM0MVp5QUFMM0JoZEdoaWIzZ2dld29nSUNBZ0wx''@;'; put 'put ''Z2daWGhqYUNCdVpXY2dKUzQxWnlCemRXSWdaR1ZtQ2lBZ0lDQXZXU0JsZUdOb0lDVXVOV2NnYzNWaUlHUmxaZ29nSUNBZ0wzZ2daWGhqYUNCdVpXY2dKUzQxWnlCemRXSWdaR1ZtQ2lBZ0lDQXZlU0JsZUdOb0lDVXVOV2NnYzNWaUlHUmxaZ29nSUNBZ2JtVjNjR0YwYUNCNElIa2diVzkyWlhS''@;'; put 'put ''dkNpQWdJQ0JZSUhrZ2JHbHVaWFJ2Q2lBZ0lDQllJRmtnYkdsdVpYUnZDaUFnSUNCNElGa2diR2x1WlhSdkNpQWdJQ0JqYkc5elpYQmhkR2dnYzNSeWIydGxDbjBnWkdWbUNnQXZjR0YwYUdKdmVDQjdDaUFnSUNBdldTQmxlR05vSUNVdU5XY2djM1ZpSUdSbFpnb2dJQ0FnTDFnZ1pYaGphQ0Fs''@;'; put 'put ''TGpWbklITjFZaUJrWldZS0lDQWdJQzk1SUdWNFkyZ2dKUzQxWnlCemRXSWdaR1ZtQ2lBZ0lDQXZlQ0JsZUdOb0lDVXVOV2NnYzNWaUlHUmxaZ29nSUNBZ2JtVjNjR0YwYUNCNElIa2diVzkyWlhSdkNpQWdJQ0JZSUhrZ2JHbHVaWFJ2Q2lBZ0lDQllJRmtnYkdsdVpYUnZDaUFnSUNCNElGa2di''@;'; put 'put ''R2x1WlhSdkNpQWdJQ0JqYkc5elpYQmhkR2dnYzNSeWIydGxDaUI5SUdSbFpnb3ZaR0puYzNSaGNuUWdleUJuYzJGMlpTQWxMalZuSUNVdU5XY2dkSEpoYm5Oc1lYUmxJSDBnWkdWbUNpOWhjbkp2ZDJ4bGJtZDBhQ0F4TUNCa1pXWUtMMkZ5Y205M2QybGtkR2dnWVhKeWIzZHNaVzVuZEdnZ01p''@;'; put 'put ''QmthWFlnWkdWbUNpOWhjbkp2ZDJobFlXUWdld29nSUNBZ1ozTmhkbVVLSUNBZ0lISnZkR0YwWlFvZ0lDQWdZM1Z5Y21WdWRIQnZhVzUwQ2lBZ0lDQnVaWGR3WVhSb0NpQWdJQ0J0YjNabGRHOEtJQ0FnSUdGeWNtOTNiR1Z1WjNSb0lHRnljbTkzZDJsa2RHZ2dNaUJrYVhZZ2NteHBibVYwYndv''@;'; put 'put ''Z0lDQWdNQ0JoY25KdmQzZHBaSFJvSUc1bFp5QnliR2x1WlhSdkNpQWdJQ0JqYkc5elpYQmhkR2dnWm1sc2JBb2dJQ0FnWjNKbGMzUnZjbVVLZlNCaWFXNWtJR1JsWmdvdmJXRnJaV0Z5Y205M0lIc0tJQ0FnSUdOMWNuSmxiblJ3YjJsdWRDQmxlR05vSUhCdmNDQnpkV0lnWlhoamFDQmpkWEp5''@;'; put 'put ''Wlc1MGNHOXBiblFnY0c5d0lITjFZaUJoZEdGdUNpQWdJQ0JoY25KdmQyaGxZV1FLZlNCaWFXNWtJR1JsWmdvdmNHOXBiblFnZXlBZ0lDQnVaWGR3WVhSb0lDQWdJRElnTUNBek5qQWdZWEpqSUdacGJHeDlJR1JsWmk5dFlXdGxkbVZqSUhzS0lDQWdJQzlaSUdWNFkyZ2daR1ZtQ2lBZ0lDQXZX''@;'; put 'put ''Q0JsZUdOb0lHUmxaZ29nSUNBZ0wza2daWGhqYUNCa1pXWUtJQ0FnSUM5NElHVjRZMmdnWkdWbUNpQWdJQ0J1Wlhkd1lYUm9JSGdnZVNCdGIzWmxkRzhLSUNBZ0lGZ2dXU0JzYVc1bGRHOGdjM1J5YjJ0bENpQWdJQ0JZSUZrZ2JXOTJaWFJ2Q2lBZ0lDQjRJSGtnYldGclpXRnljbTkzQ24wZ1pH''@;'; put 'put ''Vm1DZ0JzYjNOMElDVnpJQ1Z6SUdWa1oyVUtBRzV2SUhCdmMybDBhVzl1SUdadmNpQmxaR2RsSUhkcGRHZ2diR0ZpWld3Z0pYTUFibThnY0c5emFYUnBiMjRnWm05eUlHVmtaMlVnZDJsMGFDQjBZV2xzSUd4aFltVnNJQ1Z6QUc1dklIQnZjMmwwYVc5dUlHWnZjaUJsWkdkbElIZHBkR2dnYUdW''@;'; put 'put ''aFpDQnNZV0psYkNBbGN3QnVieUJ3YjNOcGRHbHZiaUJtYjNJZ1pXUm5aU0IzYVhSb0lIaHNZV0psYkNBbGN3Qm1iM0pqWld4aFltVnNjd0FsWkNCdmRYUWdiMllnSldRZ2JHRmlaV3h6SUhCdmMybDBhVzl1WldRdUNnQWxaQ0J2ZFhRZ2IyWWdKV1FnWlhoMFpYSnBiM0lnYkdGaVpXeHpJSEJ2''@;'; put 'put ''YzJsMGFXOXVaV1F1Q2dBbFpDQnZZbXB6SUNWa0lIaHNZV0psYkhNZ1ptOXlZMlU5SldRZ1ltSTlLQ1V1TURKbUxDVXVNREptS1NBb0pTNHdNbVlzSlM0d01tWXBDZ0J2WW1wbFkzUnpDZ0FnV3lWa1hTQW9KUzR3TW1Zc0pTNHdNbVlwSUNnbExqQXlaaXdsTGpBeVppa2dKWEFnSWlWeklnb0Fl''@;'; put 'put ''R3hoWW1Wc2N3b0FJRnNsWkYwZ0pYQWdjMlYwSUNWa0lDZ2xMakF5Wml3bExqQXlaaWtnS0NVdU1ESm1MQ1V1TURKbUtTQWxjd29BYzJoaGNHVm1hV3hsSUc1dmRDQnpaWFFnYjNJZ2JtOTBJR1p2ZFc1a0lHWnZjaUJsY0hObUlHNXZaR1VnSlhNS0FHTnZkV3hrYmlkMElHOXdaVzRnWlhCelpp''@;'; put 'put ''Qm1hV3hsSUNWekNnQWxKU1VsUW05MWJtUnBibWRDYjNnNklDVmtJQ1ZrSUNWa0lDVmtBSEpsWVdRQVFtOTFibVJwYm1kQ2IzZ2dibTkwSUdadmRXNWtJR2x1SUdWd2MyWWdabWxzWlNBbGN3b0FZMkZ1SjNRZ1ptbHVaQ0JzYVdKeVlYSjVJR1pwYkdVZ0pYTUtBR05oYmlkMElHOXdaVzRnYkds''@;'; put 'put ''aWNtRnllU0JtYVd4bElDVnpDZ0JGVDBZQVFrVkhTVTRBUlU1RUFGUlNRVWxNUlZJQUwzVnpaWEpmYzJoaGNHVmZKV1FnZXdvQUpTVkNaV2RwYmtSdlkzVnRaVzUwT2dvQUpTVkZibVJFYjJOMWJXVnVkQW9BZlNCaWFXNWtJR1JsWmdvQVZWUkdMVGdnYVc1d2RYUWdkWE5sY3lCdWIyNHRUR0Yw''@;'; put 'put ''YVc0eElHTm9ZWEpoWTNSbGNuTWdkMmhwWTJnZ1kyRnVibTkwSUdKbElHaGhibVJzWldRZ1lua2dkR2hwY3lCUWIzTjBVMk55YVhCMElHUnlhWFpsY2dvQVkyRnVibTkwSUhKbExXRnNiRzlqWVhSbElIQnpDZ0J5YjNWMFpYTndiR2x1WlhOcGJtbDBPaUJqWVc1dWIzUWdZV3hzYjJOaGRHVWdj''@;'; put 'put ''SE1LQUhKdmRYUmxjM0JzYVc1bGN6b2dKV1FnWldSblpYTXNJQ1ZrSUdKdmVHVnpJQ1V1TW1ZZ2MyVmpDZ0JwYmlCeWIzVjBaWE53YkdsdVpYTXNJR05oYm01dmRDQm1hVzVrSUU1UFVrMUJUQ0JsWkdkbENnQnBiaUJ5YjNWMFpYTndiR2x1WlhNc0lHbHNiR1ZuWVd3Z2RtRnNkV1Z6SUc5bUlI''@;'; put 'put ''QnlaWFlnSldRZ1lXNWtJRzVsZUhRZ0pXUXNJR3hwYm1VZ0pXUUtBR2x1SUhKdmRYUmxjM0JzYVc1bGN5d2daV1JuWlNCcGN5QmhJR3h2YjNBZ1lYUWdKWE1LQUdsdUlISnZkWFJsYzNCc2FXNWxjeXdnVUhOb2IzSjBaWE4wY0dGMGFDQm1ZV2xzWldRS0FHbHVJSEp2ZFhSbGMzQnNhVzVsY3l3''@;'; put 'put ''Z1VISnZkWFJsYzNCc2FXNWxJR1poYVd4bFpBb0FWVzVoWW14bElIUnZJSEpsWTJ4aGFXMGdZbTk0SUhOd1lXTmxJR2x1SUhOd2JHbHVaU0J5YjNWMGFXNW5JR1p2Y2lCbFpHZGxJQ0lsY3lJZ0xUNGdJaVZ6SWk0Z1UyOXRaWFJvYVc1bklHbHpJSEJ5YjJKaFlteDVJSE5sY21sdmRYTnNlU0Iz''@;'; put 'put ''Y205dVp5NEtBR2x1SUdOb1pXTnJjR0YwYUN3Z1ltOTRJREFnYUdGeklFeE1JR052YjNKa0lENGdWVklnWTI5dmNtUUtBR2x1SUdOb1pXTnJjR0YwYUN3Z1ltOTRJQ1ZrSUdoaGN5Qk1UQ0JqYjI5eVpDQStJRlZTSUdOdmIzSmtDZ0JwYmlCamFHVmphM0JoZEdnc0lHSnZlR1Z6SUNWa0lHRnVa''@;'; put 'put ''Q0FsWkNCa2IyNG5kQ0IwYjNWamFBb0FhVzRnWTJobFkydHdZWFJvTENCemRHRnlkQ0J3YjNKMElHNXZkQ0JwYmlCbWFYSnpkQ0JpYjNnS0FHbHVJR05vWldOcmNHRjBhQ3dnWlc1a0lIQnZjblFnYm05MElHbHVJR3hoYzNRZ1ltOTRDZ0FsWkNCaWIzaGxjem9LQUNWa0lDZ2xMalZuTENBbExq''@;'; put 'put ''Vm5LU3dnS0NVdU5XY3NJQ1V1TldjcENnQmpiMjV6ZEhKaGFXNWxaQUJ1YjNRZ1kyOXVjM1J5WVdsdVpXUUFjM1JoY25RZ2NHOXlkRG9nS0NVdU5XY3NJQ1V1TldjcExDQjBZVzVuWlc1MElHRnVaMnhsT2lBbExqVm5MQ0FsY3dvQVpXNWtJSEJ2Y25RNklDZ2xMalZuTENBbExqVm5LU3dnZEdG''@;'; put 'put ''dVoyVnVkQ0JoYm1kc1pUb2dKUzQxWnl3Z0pYTUtBSE5wWkdWeklEMDlJRFFBYzJoaGNHVnpMbU1BY205MWJtUmZZMjl5Ym1WeWN3QmlZV1FnYkdGaVpXd2dabTl5YldGMElDVnpDZ0JjVGdCdFlYSm5hVzRBSld4bUxDVnNaZ0J5WldkMWJHRnlBR04xYzNSdmJRQnphR0Z3WldacGJHVUFQRzVw''@;'; put 'put ''YkQ0QVRtOGdiM0lnYVcxd2NtOXdaWElnYzJoaGNHVm1hV3hsUFNJbGN5SWdabTl5SUc1dlpHVWdJaVZ6SWdvQVRtOGdiM0lnYVcxd2NtOXdaWElnYVcxaFoyVTlJaVZ6SWlCbWIzSWdibTlrWlNBaUpYTWlDZ0JzWVdKbGJHeHZZd0J1YjJSbElDY2xjeWNzSUdkeVlYQm9JQ2NsY3ljZ2MybDZa''@;'; put 'put ''U0IwYjI4Z2MyMWhiR3dnWm05eUlHeGhZbVZzQ2dCbGNITm1BSFZ6YVc1bklDVnpJR1p2Y2lCMWJtdHViM2R1SUhOb1lYQmxJQ1Z6Q2dCd2IyeDVaMjl1QUc5MllXd0FZMmx5WTJ4bEFIQnZhVzUwQUdWblp3QjBjbWxoYm1kc1pRQndiR0ZwYm5SbGVIUUFjR3hoYVc0QVpHbGhiVzl1WkFCMGNt''@;'; put 'put ''RndaWHBwZFcwQWNHRnlZV3hzWld4dlozSmhiUUJvYjNWelpRQndaVzUwWVdkdmJnQm9aWGhoWjI5dUFITmxjSFJoWjI5dUFHOWpkR0ZuYjI0QWJtOTBaUUIwWVdJQVptOXNaR1Z5QUdKdmVETmtBR052YlhCdmJtVnVkQUJqZVd4cGJtUmxjZ0J5WldOMEFISmxZM1JoYm1kc1pRQnpjWFZoY21V''@;'; put 'put ''QVpHOTFZbXhsWTJseVkyeGxBR1J2ZFdKc1pXOWpkR0ZuYjI0QWRISnBjR3hsYjJOMFlXZHZiZ0JwYm5aMGNtbGhibWRzWlFCcGJuWjBjbUZ3WlhwcGRXMEFhVzUyYUc5MWMyVUFkVzVrWlhKc2FXNWxBRTFrYVdGdGIyNWtBRTF6Y1hWaGNtVUFUV05wY21Oc1pRQndjbTl0YjNSbGNnQmpaSE1B''@;'; put 'put ''ZEdWeWJXbHVZWFJ2Y2dCMWRISUFhVzV6ZFd4aGRHOXlBSEpwWW05emFYUmxBSEp1WVhOMFlXSUFjSEp2ZEdWaGMyVnphWFJsQUhCeWIzUmxhVzV6ZEdGaUFIQnlhVzFsY25OcGRHVUFjbVZ6ZEhKcFkzUnBiMjV6YVhSbEFHWnBkbVZ3YjNabGNtaGhibWNBZEdoeVpXVndiM1psY21oaGJtY0Fi''@;'; put 'put ''bTkyWlhKb1lXNW5BR0Z6YzJWdFlteDVBSE5wWjI1aGRIVnlaUUJ5Y0hKdmJXOTBaWElBYkdGeWNtOTNBSEpoY25KdmR3QnNjSEp2Ylc5MFpYSUFjbVZqYjNKa0FFMXlaV052Y21RQWMzUmhjZ0FqT0RBNE1EZ3dBQ05tWTJaalptTUFJek13TXpBek1BQWpaVGhsT0dVNEFDTmxNR1V3WlRBQUky''@;'; put 'put ''WXdaakJtTUFBak1UQXhNREV3QUNObU9HWTRaamdBYVc0Z2JtOWtaU0FsY3dvQWNtOTFibVJsWkFCa2FXRm5iMjVoYkhNQWNtRmthV0ZzQUhOMGNtbHdaV1FBZDJWa1oyVmtBRjhBYm05a1pTQWxjeXdnY0c5eWRDQWxjeXdnZFc1eVpXTnZaMjVwZW1Wa0lHTnZiWEJoYzNNZ2NHOXBiblFnSnlW''@;'; put 'put ''ekp5QXRJR2xuYm05eVpXUUtBRzV2WkdVZ0pYTXNJSEJ2Y25RZ0pYTWdkVzV5WldOdloyNXBlbVZrQ2dBbExqVm5JQ1V1TldjZ2RISmhibk5zWVhSbElHNWxkM0JoZEdnZ2RYTmxjbDl6YUdGd1pWOGxaQW9BYVc1MmFYTUFBR1pwYkd4bFpBQUFjd0JsQUhjQWMzQnNhVzVsY3k1akFHSmxaMmx1''@;'; put 'put ''Y0dGMGFBQlFMVDVsYm1RdWRHaGxkR0VnUENBeUlDb2dUVjlRU1FCbGJtUndZWFJvQUcxaGEyVlRaV3htUldSblpRQm5aWFJ6Y0d4cGJtVndiMmx1ZEhNNklHNXZJSE53YkdsdVpTQndiMmx1ZEhNZ1lYWmhhV3hoWW14bElHWnZjaUJsWkdkbElDZ2xjeXdsY3lrS0FIQnZiSGxzYVc1bFRXbGtj''@;'; put 'put ''RzlwYm5RQWMzQmhiaTArWm05dWRBQjBaWGgwYzNCaGJpNWpBSFJsZUhSemNHRnVYM05wZW1VQVptOXVkQzArYm1GdFpRQm1iMjUwYm1GdFpUb2dJaVZ6SWlCeVpYTnZiSFpsWkNCMGJ6b2dKWE1LQUdadmJuUnVZVzFsT2lCMWJtRmliR1VnZEc4Z2NtVnpiMngyWlNBaUpYTWlDZ0JqYjNWeUFH''@;'; put 'put ''RnlhV0ZzQUdobGJIWmxkR2xqWVFCYmFXNTBaWEp1WVd3Z2RHbHRaWE5kQUZ0cGJuUmxjbTVoYkNCamIzVnlhV1Z5WFFCYmFXNTBaWEp1WVd3Z1lYSnBZV3hkQUVGMllXNTBSMkZ5WkdVdFFtOXZhd0JWVWxjZ1IyOTBhR2xqSUV3QVltOXZhd0J6WVc1ekxWTmxjbWxtQUVGMllXNTBSMkZ5WkdV''@;'; put 'put ''dFFtOXZhMDlpYkdseGRXVUFiMkpzYVhGMVpRQnBkR0ZzYVdNQVFYWmhiblJIWVhKa1pTMUVaVzFwQUdSbGJXa0FRWFpoYm5SSFlYSmtaUzFFWlcxcFQySnNhWEYxWlFCQ2IyOXJiV0Z1TFVSbGJXa0FWVkpYSUVKdmIydHRZVzRnVEFCelpYSnBaZ0JDYjI5cmJXRnVMVVJsYldsSmRHRnNhV01B''@;'; put 'put ''UW05dmEyMWhiaTFNYVdkb2RBQnNhV2RvZEFCQ2IyOXJiV0Z1TFV4cFoyaDBTWFJoYkdsakFFTnZkWEpwWlhJQWJXOXViM053WVdObEFFTnZkWEpwWlhJdFFtOXNaQUJEYjNWeWFXVnlMVUp2YkdSUFlteHBjWFZsQUVOdmRYSnBaWEl0VDJKc2FYRjFaUUJJWld4MlpYUnBZMkVBU0dWc2RtVjBh''@;'; put 'put ''V05oTFVKdmJHUUFTR1ZzZG1WMGFXTmhMVUp2YkdSUFlteHBjWFZsQUVobGJIWmxkR2xqWVMxT1lYSnliM2NBWTI5dVpHVnVjMlZrQUVobGJIWmxkR2xqWVMxT1lYSnliM2N0UW05c1pBQklaV3gyWlhScFkyRXRUbUZ5Y205M0xVSnZiR1JQWW14cGNYVmxBRWhsYkhabGRHbGpZUzFPWVhKeWIz''@;'; put 'put ''Y3RUMkpzYVhGMVpRQklaV3gyWlhScFkyRXRUMkpzYVhGMVpRQk9aWGREWlc1MGRYSjVVMk5vYkdKckxVSnZiR1FBUTJWdWRIVnllU0JUWTJodmIyeGliMjlySUV3QVRtVjNRMlZ1ZEhWeWVWTmphR3hpYXkxQ2IyeGtTWFJoYkdsakFFNWxkME5sYm5SMWNubFRZMmhzWW1zdFNYUmhiR2xqQUU1''@;'; put 'put ''bGQwTmxiblIxY25sVFkyaHNZbXN0VW05dFlXNEFjbTl0WVc0QVVHRnNZWFJwYm04dFFtOXNaQUJRWVd4aGRHbHVieUJNYVc1dmRIbHdaUUJRWVd4aGRHbHVieTFDYjJ4a1NYUmhiR2xqQUZCaGJHRjBhVzV2TFVsMFlXeHBZd0JRWVd4aGRHbHVieTFTYjIxaGJnQlRlVzFpYjJ3QVptRnVkR0Z6''@;'; put 'put ''ZVFCVWFXMWxjeTFDYjJ4a0FGUnBiV1Z6QUZScGJXVnpMVUp2YkdSSmRHRnNhV01BVkdsdFpYTXRTWFJoYkdsakFGcGhjR1pEYUdGdVkyVnllUzFOWldScGRXMUpkR0ZzYVdNQVZWSlhJRU5vWVc1alpYSjVJRXdBYldWa2FYVnRBRnBoY0daRWFXNW5ZbUYwY3dCRWFXNW5ZbUYwY3dCcGJuQjFk''@;'; put 'put ''SE5qWVd4bEFHNXZBSFJ5ZFdVQWVXVnpBSFYwYVd4ekxtTUFkU0E5UFNCVlJsOW1hVzVrS0hVcEFGVkdYM05sZEc1aGJXVUFBV1pwYkdVZ2JHOWhaR2x1WnlCcGN5QmthWE5oWW14bFpDQmlaV05oZFhObElIUm9aU0JsYm5acGNtOXViV1Z1ZENCamIyNTBZV2x1Y3lCVFJWSldSVkpmVGtGTlJU''@;'; put 'put ''MGlKWE1pQ21GdVpDQjBhR1VnUjFaZlJrbE1SVjlRUVZSSUlIWmhjbWxoWW14bElHbHpJSFZ1YzJWMElHOXlJR1Z0Y0hSNUxnb0FVR0YwYUNCd2NtOTJhV1JsWkNCMGJ5Qm1hV3hsT2lBaUpYTWlJR2hoY3lCaVpXVnVJR2xuYm05eVpXUWdZbVZqWVhWelpTQm1hV3hsY3lCaGNtVWdiMjVzZVNC''@;'; put 'put ''d1pYSnRhWFIwWldRZ2RHOGdZbVVnYkc5aFpHVmtJR1p5YjIwZ2RHaGxJR1JwY21WamRHOXlhV1Z6SUdsdUlDSWxjeUlnZDJobGJpQnlkVzV1YVc1bklHbHVJR0Z1SUdoMGRIQWdjMlZ5ZG1WeUxnb0FKWE1sY3lWekFDOEFPZ0JsYkd4cGNITmxBRlJwYldWekxWSnZiV0Z1QUdOc2RYTjBaWElB''@;'; put 'put ''WDE5amJIVnpkR1Z5Ym05a1pYTUFZMngxYzNSbGNpQmplV05zWlNBbGN5QXRMU0FsY3lCdWIzUWdjM1Z3Y0c5eWRHVmtDZ0IwWVdsc0lHTnNkWE4wWlhJZ0pYTWdhVzV6YVdSbElHaGxZV1FnWTJ4MWMzUmxjaUFsY3dvQWFHVmhaQ0JqYkhWemRHVnlJQ1Z6SUdsdWMybGtaU0IwWVdsc0lHTnNk''@;'; put 'put ''WE4wWlhJZ0pYTUtBSFJoYVd3Z2JtOWtaU0FsY3lCcGJuTnBaR1VnYUdWaFpDQmpiSFZ6ZEdWeUlDVnpDZ0JvWldGa0lHNXZaR1VnSlhNZ2FXNXphV1JsSUhSaGFXd2dZMngxYzNSbGNpQWxjd29BWDE4QWJHRmlaV3dBYzJoaGNHVUFZbTk0QUZSM2J5QmpiSFZ6ZEdWeWN5QnVZVzFsWkNBbGN5''@;'; put 'put ''QXRJSFJvWlNCelpXTnZibVFnZDJsc2JDQmlaU0JwWjI1dmNtVmtDZ0J0WVhCT0FFRkZiR2xuQUVGaFkzVjBaUUJCWTJseVl3QkJaM0poZG1VQVFXeHdhR0VBUVhKcGJtY0FRWFJwYkdSbEFFRjFiV3dBUW1WMFlRQkRZMlZrYVd3QVEyaHBBRVJoWjJkbGNnQkVaV3gwWVFCRlZFZ0FSV0ZqZFhS''@;'; put 'put ''bEFFVmphWEpqQUVWbmNtRjJaUUJGY0hOcGJHOXVBRVYwWVFCRmRXMXNBRWRoYlcxaEFFbGhZM1YwWlFCSlkybHlZd0JKWjNKaGRtVUFTVzkwWVFCSmRXMXNBRXRoY0hCaEFFeGhiV0prWVFCTmRRQk9kR2xzWkdVQVRuVUFUMFZzYVdjQVQyRmpkWFJsQUU5amFYSmpBRTluY21GMlpRQlBiV1Zu''@;'; put 'put ''WVFCUGJXbGpjbTl1QUU5emJHRnphQUJQZEdsc1pHVUFUM1Z0YkFCUWFHa0FVR2tBVUhKcGJXVUFVSE5wQUZKb2J3QlRZMkZ5YjI0QVUybG5iV0VBVkVoUFVrNEFWR0YxQUZSb1pYUmhBRlZoWTNWMFpRQlZZMmx5WXdCVlozSmhkbVVBVlhCemFXeHZiZ0JWZFcxc0FGaHBBRmxoWTNWMFpRQlpk''@;'; put 'put ''VzFzQUZwbGRHRUFZV0ZqZFhSbEFHRmphWEpqQUdGamRYUmxBR0ZsYkdsbkFHRm5jbUYyWlFCaGJHVm1jM2x0QUdGc2NHaGhBR0Z0Y0FCaGJtUUFZVzVuQUdGeWFXNW5BR0Z6ZVcxd0FHRjBhV3hrWlFCaGRXMXNBR0prY1hWdkFHSmxkR0VBWW5KMlltRnlBR0oxYkd3QVkyRndBR05qWldScGJB''@;'; put 'put ''QmpaV1JwYkFCalpXNTBBR05vYVFCamFYSmpBR05zZFdKekFHTnZibWNBWTI5d2VRQmpjbUZ5Y2dCamRYQUFZM1Z5Y21WdUFHUkJjbklBWkdGbloyVnlBR1JoY25JQVpHVm5BR1JsYkhSaEFHUnBZVzF6QUdScGRtbGtaUUJsWVdOMWRHVUFaV05wY21NQVpXZHlZWFpsQUdWdGNIUjVBR1Z0YzNB''@;'; put 'put ''QVpXNXpjQUJsY0hOcGJHOXVBR1Z4ZFdsMkFHVjBZUUJsZEdnQVpYVnRiQUJsZFhKdkFHVjRhWE4wQUdadWIyWUFabTl5WVd4c0FHWnlZV014TWdCbWNtRmpNVFFBWm5KaFl6TTBBR1p5WVhOc0FHZGhiVzFoQUdkbEFHZDBBR2hCY25JQWFHRnljZ0JvWldGeWRITUFhR1ZzYkdsd0FHbGhZM1Yw''@;'; put 'put ''WlFCcFkybHlZd0JwWlhoamJBQnBaM0poZG1VQWFXMWhaMlVBYVc1bWFXNEFhVzUwQUdsdmRHRUFhWEYxWlhOMEFHbHphVzRBYVhWdGJBQnJZWEJ3WVFCc1FYSnlBR3hoYldKa1lRQnNZVzVuQUd4aGNYVnZBR3hoY25JQWJHTmxhV3dBYkdSeGRXOEFiR1VBYkdac2IyOXlBR3h2ZDJGemRBQnNi''@;'; put 'put ''M29BYkhKdEFHeHpZWEYxYndCc2MzRjFid0JzZEFCdFlXTnlBRzFrWVhOb0FHMXBZM0p2QUcxcFpHUnZkQUJ0ZFFCdVlXSnNZUUJ1WW5Od0FHNWtZWE5vQUc1bEFHNXBBRzV2ZEFCdWIzUnBiZ0J1YzNWaUFHNTBhV3hrWlFCdWRRQnZZV04xZEdVQWIyTnBjbU1BYjJWc2FXY0FiMmR5WVhabEFH''@;'; put 'put ''OXNhVzVsQUc5dFpXZGhBRzl0YVdOeWIyNEFiM0JzZFhNQWIzSUFiM0prWmdCdmNtUnRBRzl6YkdGemFBQnZkR2xzWkdVQWIzUnBiV1Z6QUc5MWJXd0FjR0Z5WVFCd1lYSjBBSEJsY20xcGJBQndaWEp3QUhCb2FRQndhUUJ3YVhZQWNHeDFjMjF1QUhCdmRXNWtBSEJ5YVcxbEFIQnliMlFBY0hK''@;'; put 'put ''dmNBQndjMmtBY1hWdmRBQnlRWEp5QUhKaFpHbGpBSEpoYm1jQWNtRnhkVzhBY21GeWNnQnlZMlZwYkFCeVpIRjFid0J5WldGc0FISmxad0J5Wm14dmIzSUFjbWh2QUhKc2JRQnljMkZ4ZFc4QWNuTnhkVzhBYzJKeGRXOEFjMk5oY205dUFITmtiM1FBYzJWamRBQnphSGtBYzJsbmJXRUFjMmxu''@;'; put 'put ''YldGbUFITnBiUUJ6Y0dGa1pYTUFjM1ZpQUhOMVltVUFjM1Z0QUhOMWNBQnpkWEF4QUhOMWNESUFjM1Z3TXdCemRYQmxBSE42YkdsbkFIUmhkUUIwYUdWeVpUUUFkR2hsZEdFQWRHaGxkR0Z6ZVcwQWRHaHBibk53QUhSb2IzSnVBSFJwYkdSbEFIUnBiV1Z6QUhSeVlXUmxBSFZCY25JQWRXRmpk''@;'; put 'put ''WFJsQUhWaGNuSUFkV05wY21NQWRXZHlZWFpsQUhWdGJBQjFjSE5wYUFCMWNITnBiRzl1QUhWMWJXd0FkMlZwWlhKd0FIaHBBSGxoWTNWMFpRQjVaVzRBZVhWdGJBQjZaWFJoQUhwM2FnQjZkMjVxQUZWVVJqZ2dZMjlrWlhNZ1BpQTBJR0o1ZEdWeklHRnlaU0J1YjNRZ1kzVnljbVZ1ZEd4NUlI''@;'; put 'put ''TjFjSEJ2Y25SbFpDQW9aM0poY0dnZ0pYTXBJQzBnZEhKbFlYUmxaQ0JoY3lCTVlYUnBiaTB4TGlCUVpYSm9ZWEJ6SUNJdFIyTm9ZWEp6WlhROWJHRjBhVzR4SWlCcGN5QnVaV1ZrWldRL0NnQkpiblpoYkdsa0lDVmtMV0o1ZEdVZ1ZWUkdPQ0JtYjNWdVpDQnBiaUJwYm5CMWRDQnZaaUJuY21G''@;'; put 'put ''d2FDQWxjeUF0SUhSeVpXRjBaV1FnWVhNZ1RHRjBhVzR0TVM0Z1VHVnlhR0Z3Y3lBaUxVZGphR0Z5YzJWMFBXeGhkR2x1TVNJZ2FYTWdibVZsWkdWa1B3b0FZbm91YzJsNlpRQnZkbVZ5YkdGd1gySmxlbWxsY2dCMWNuWmxaQUJ2YlhCdmRXNWtBR0ZzYzJVQWFXNWxBRzl1WlFCdkFISjBhRzhB''@;'; put 'put ''YjJ4NWJHbHVaUUJ3YkdsdVpRQnlkV1VBWlhNQVZXNXJibTkzYmlBaWMzQnNhVzVsY3lJZ2RtRnNkV1U2SUNJbGN5SWdMU0JwWjI1dmNtVmtDZ0J6Y0d4cGJtVnpBRzlrWWdCUGNuUm9iMmR2Ym1Gc0lHVmtaMlZ6SUdSdklHNXZkQ0JqZFhKeVpXNTBiSGtnYUdGdVpHeGxJR1ZrWjJVZ2JHRmla''@;'; put 'put ''V3h6TGlCVWNua2dkWE5wYm1jZ2VHeGhZbVZzY3k0S0FHOXlkR2h2SUNWeklDVnpDZ0JqYUdGdWFRQnZjblJvYnk1akFHTm9ZVzVUWldGeVkyZ0FZM0FBSlNVaFVGTXRRV1J2WW1VdE1pNHdDaVVsSlNWQ2IzVnVaR2x1WjBKdmVEb2dLR0YwWlc1a0tRb3ZjRzlwYm5RZ2V3b2dJQzlaSUdWNFky''@;'; put 'put ''Z2daR1ZtQ2lBZ0wxZ2daWGhqYUNCa1pXWUtJQ0J1Wlhkd1lYUm9DaUFnV0NCWklETWdNQ0F6TmpBZ1lYSmpJR1pwYkd3S2ZTQmtaV1lLTDJObGJHd2dld29nSUM5WklHVjRZMmdnWkdWbUNpQWdMMWdnWlhoamFDQmtaV1lLSUNBdmVTQmxlR05vSUdSbFpnb2dJQzk0SUdWNFkyZ2daR1ZtQ2lB''@;'; put 'put ''Z2JtVjNjR0YwYUFvZ0lIZ2dlU0J0YjNabGRHOEtJQ0I0SUZrZ2JHbHVaWFJ2Q2lBZ1dDQlpJR3hwYm1WMGJ3b2dJRmdnZVNCc2FXNWxkRzhLSUNCamJHOXpaWEJoZEdnZ2MzUnliMnRsQ24wZ1pHVm1DaTl1YjJSbElIc0tJQzkxSUdWNFkyZ2daR1ZtQ2lBdmNpQmxlR05vSUdSbFpnb2dMMlFn''@;'; put 'put ''WlhoamFDQmtaV1lLSUM5c0lHVjRZMmdnWkdWbUNpQnVaWGR3WVhSb0lHd2daQ0J0YjNabGRHOEtJSElnWkNCc2FXNWxkRzhnY2lCMUlHeHBibVYwYnlCc0lIVWdiR2x1WlhSdkNpQmpiRzl6WlhCaGRHZ2dabWxzYkFwOUlHUmxaZ29LQUNWa0lDVmtJSFJ5WVc1emJHRjBaUW9BTUM0NElEQXVP''@;'; put 'put ''Q0F3TGpnZ2MyVjBjbWRpWTI5c2IzSUtBSE5vYjNkd1lXZGxDaVVsSlNWVWNtRnBiR1Z5Q2lVbEpTVkNiM1Z1WkdsdVowSnZlRG9nSldRZ0pXUWdKV1FnSldRS0FHNWxkM0JoZEdnZ0pXUWdKV1FnYlc5MlpYUnZDZ0FsWkNBbFpDQnNhVzVsZEc4S0FDVmtJQ1ZrSUd4cGJtVjBieUJ6ZEhKdmEy''@;'; put 'put ''VUtBR05vWVc1dVpXd2dKV1FnS0NWbUxDVm1LUW9BSUMwK0NnQWdJQ0FnSUFBb0tDVm1MQ1ZtS1N3b0pXWXNKV1lwS1NBbGN5QWxjd0JDWDFKSlIwaFVBRUpmUkU5WFRnQkNYMHhGUmxRQVFsOVZVQUJDWDA1UFJFVUFjMlZuQUc1bGVIUmZjMlZuQUdSbFkybGtaVjl3YjJsdWRBQnBibU52YlhC''@;'; put 'put ''aGNtRmliR1VnYzJWbmJXVnVkSE1nSVNFZ0xTMGdRV0p2Y25ScGJtY0tBSE14TFQ1amIyMXRYMk52YjNKa1BUMXpNaTArWTI5dGJWOWpiMjl5WkFCcGMxOXdZWEpoYkd4bGJBQm5jbUZ3YUNCSElIc0tBQ0J1YjJSbFczTm9ZWEJsUFhCdmFXNTBYUW9BSUNBbFpDQmJjRzl6UFNJbFpDd2xaQ0pk''@;'; put 'put ''Q2dBZ0lDVmtJQzB0SUNWa1cyeGxiajBpSldZaVhRb0FmUW9BWTI5c2IzSWdKWE1BSlhNZ2FYTWdibTkwSUdFZ2EyNXZkMjRnWTI5c2IzSXVDZ0JsY25KdmNpQnBiaUJqYjJ4NGJHRjBaU2dwQ2dCemIyeHBaQUJwYm5acGMybGliR1VBWW05c1pBQnpaWFJzYVc1bGQybGtkR2dBWm1sc2JHVmtB''@;'; put 'put ''SFZ1Wm1sc2JHVmtBSFJoY0dWeVpXUUFaM1p5Wlc1a1pYSmZjMlYwWDNOMGVXeGxPaUIxYm5OMWNIQnZjblJsWkNCemRIbHNaU0FsY3lBdElHbG5ibTl5YVc1bkNnQm5kbkpsYm1SbGNpNWpBR2QyY21WdVpHVnlYM1Z6WlhKemFHRndaUUJ1WVcxbEFHNWhiV1ZiTUYwQVltOTBhQUJzWVhsdmRY''@;'; put 'put ''UUFUR0Y1YjNWMElIUjVjR1U2SUNJbGN5SWdibTkwSUhKbFkyOW5ibWw2WldRdUlGVnpaU0J2Ym1VZ2IyWTZKWE1LQUdwdllnQm5kbXh2WVdScGJXRm5aUzVqQUdkMmJHOWhaR2x0WVdkbEFIVnpBSFZ6TFQ1dVlXMWxBSFZ6TFQ1dVlXMWxXekJkQUU1dklHeHZZV1JwYldGblpTQndiSFZuYVc0''@;'; put 'put ''Z1ptOXlJQ0lsY3lJS0FGRUFUR1ZtZEFCTFVGOU1aV1owQUZKcFoyaDBBRXRRWDFKcFoyaDBBRlZ3QUV0UVgxVndBRVJ2ZDI0QVMxQmZSRzkzYmdCd2JIVnpBRXRRWDBGa1pBQnRhVzUxY3dCTFVGOVRkV0owY21GamRBQkdBR1ZrWjJVQWRHRnBiSEJ2Y25RQWFHVmhaSEJ2Y25RQWEyVjVBRlZT''@;'; put 'put ''VEFCdWIyUmxBR1JwWjNKaGNHZ0FaM0poY0dnQWMzVmlaM0poY0dnQVgweFVXRjlzYVdKeVlYSjVBSFJsZUhSc1lYbHZkWFFBYjJKcWNDMCtiR0pzQUhoc1lXSmxiSE11WXdCNGJHRmthblZ6ZEFCNGJHbHVkR1Z5YzJWamRHbHZibk1BYkhBZ0lUMGdZMnh3QUdkbGRHbHVkSEp6ZUdrQWIySnFj''@;'; put 'put ''REV0UG5ONkxuZ2dQVDBnTUNBbUppQnZZbXB3TVMwK2Mzb3VlU0E5UFNBd0FHeGliR1Z1WTJ4dmMybHVad0IyY0FCNGJHaGtlSFZ1Ykc5aFpBQnphWHBsUFQxbWNtVmxaQUJ5WldOMExtSnZkVzVrWVhKNVd6SmRJRHdnU1U1VVgwMUJXQUJ2WW1wd2JIQnRhM01BY21WamRDNWliM1Z1WkdGeWVW''@;'; put 'put ''c3pYU0E4SUVsT1ZGOU5RVmdBYjNWMElHOW1JRzFsYlc5eWVRb0FJeVV5ZUNVeWVDVXllQ1V5ZUFBbGJHWWxiR1lsYkdZQUwyRmpZMlZ1ZERNdk1RQXZZV05qWlc1ME15OHlBQzloWTJObGJuUXpMek1BTDJGalkyVnVkRFF2TVFBdllXTmpaVzUwTkM4eUFDOWhZMk5sYm5RMEx6TUFMMkZqWTJW''@;'; put 'put ''dWREUXZOQUF2WVdOalpXNTBOUzh4QUM5aFkyTmxiblExTHpJQUwyRmpZMlZ1ZERVdk13QXZZV05qWlc1ME5TODBBQzloWTJObGJuUTFMelVBTDJGalkyVnVkRFl2TVFBdllXTmpaVzUwTmk4eUFDOWhZMk5sYm5RMkx6TUFMMkZqWTJWdWREWXZOQUF2WVdOalpXNTBOaTgxQUM5aFkyTmxiblEy''@;'; put 'put ''THpZQUwyRmpZMlZ1ZERjdk1RQXZZV05qWlc1ME55OHlBQzloWTJObGJuUTNMek1BTDJGalkyVnVkRGN2TkFBdllXTmpaVzUwTnk4MUFDOWhZMk5sYm5RM0x6WUFMMkZqWTJWdWREY3ZOd0F2WVdOalpXNTBPQzh4QUM5aFkyTmxiblE0THpJQUwyRmpZMlZ1ZERndk13QXZZV05qWlc1ME9DODBB''@;'; put 'put ''QzloWTJObGJuUTRMelVBTDJGalkyVnVkRGd2TmdBdllXTmpaVzUwT0M4M0FDOWhZMk5sYm5RNEx6Z0FMMkpzZFdWek15OHhBQzlpYkhWbGN6TXZNZ0F2WW14MVpYTXpMek1BTDJKc2RXVnpOQzh4QUM5aWJIVmxjelF2TWdBdllteDFaWE0wTHpNQUwySnNkV1Z6TkM4MEFDOWliSFZsY3pVdk1R''@;'; put 'put ''QXZZbXgxWlhNMUx6SUFMMkpzZFdWek5TOHpBQzlpYkhWbGN6VXZOQUF2WW14MVpYTTFMelVBTDJKc2RXVnpOaTh4QUM5aWJIVmxjell2TWdBdllteDFaWE0yTHpNQUwySnNkV1Z6Tmk4MEFDOWliSFZsY3pZdk5RQXZZbXgxWlhNMkx6WUFMMkpzZFdWek55OHhBQzlpYkhWbGN6Y3ZNZ0F2WW14''@;'; put 'put ''MVpYTTNMek1BTDJKc2RXVnpOeTgwQUM5aWJIVmxjemN2TlFBdllteDFaWE0zTHpZQUwySnNkV1Z6Tnk4M0FDOWliSFZsY3pndk1RQXZZbXgxWlhNNEx6SUFMMkpzZFdWek9DOHpBQzlpYkhWbGN6Z3ZOQUF2WW14MVpYTTRMelVBTDJKc2RXVnpPQzgyQUM5aWJIVmxjemd2TndBdllteDFaWE00''@;'; put 'put ''THpnQUwySnNkV1Z6T1M4eEFDOWliSFZsY3prdk1nQXZZbXgxWlhNNUx6TUFMMkpzZFdWek9TODBBQzlpYkhWbGN6a3ZOUUF2WW14MVpYTTVMellBTDJKc2RXVnpPUzgzQUM5aWJIVmxjemt2T0FBdllteDFaWE01THprQUwySnlZbWN4TUM4eEFDOWljbUpuTVRBdk1UQUFMMkp5WW1jeE1DOHlB''@;'; put 'put ''QzlpY21Kbk1UQXZNd0F2WW5KaVp6RXdMelFBTDJKeVltY3hNQzgxQUM5aWNtSm5NVEF2TmdBdlluSmlaekV3THpjQUwySnlZbWN4TUM4NEFDOWljbUpuTVRBdk9RQXZZbkppWnpFeEx6RUFMMkp5WW1jeE1TOHhNQUF2WW5KaVp6RXhMekV4QUM5aWNtSm5NVEV2TWdBdlluSmlaekV4THpNQUwy''@;'; put 'put ''SnlZbWN4TVM4MEFDOWljbUpuTVRFdk5RQXZZbkppWnpFeEx6WUFMMkp5WW1jeE1TODNBQzlpY21Kbk1URXZPQUF2WW5KaVp6RXhMemtBTDJKeVltY3pMekVBTDJKeVltY3pMeklBTDJKeVltY3pMek1BTDJKeVltYzBMekVBTDJKeVltYzBMeklBTDJKeVltYzBMek1BTDJKeVltYzBMelFBTDJK''@;'; put 'put ''eVltYzFMekVBTDJKeVltYzFMeklBTDJKeVltYzFMek1BTDJKeVltYzFMelFBTDJKeVltYzFMelVBTDJKeVltYzJMekVBTDJKeVltYzJMeklBTDJKeVltYzJMek1BTDJKeVltYzJMelFBTDJKeVltYzJMelVBTDJKeVltYzJMellBTDJKeVltYzNMekVBTDJKeVltYzNMeklBTDJKeVltYzNMek1B''@;'; put 'put ''TDJKeVltYzNMelFBTDJKeVltYzNMelVBTDJKeVltYzNMellBTDJKeVltYzNMemNBTDJKeVltYzRMekVBTDJKeVltYzRMeklBTDJKeVltYzRMek1BTDJKeVltYzRMelFBTDJKeVltYzRMelVBTDJKeVltYzRMellBTDJKeVltYzRMemNBTDJKeVltYzRMemdBTDJKeVltYzVMekVBTDJKeVltYzVM''@;'; put 'put ''eklBTDJKeVltYzVMek1BTDJKeVltYzVMelFBTDJKeVltYzVMelVBTDJKeVltYzVMellBTDJKeVltYzVMemNBTDJKeVltYzVMemdBTDJKeVltYzVMemtBTDJKMVoyNHpMekVBTDJKMVoyNHpMeklBTDJKMVoyNHpMek1BTDJKMVoyNDBMekVBTDJKMVoyNDBMeklBTDJKMVoyNDBMek1BTDJKMVoy''@;'; put 'put ''NDBMelFBTDJKMVoyNDFMekVBTDJKMVoyNDFMeklBTDJKMVoyNDFMek1BTDJKMVoyNDFMelFBTDJKMVoyNDFMelVBTDJKMVoyNDJMekVBTDJKMVoyNDJMeklBTDJKMVoyNDJMek1BTDJKMVoyNDJMelFBTDJKMVoyNDJMelVBTDJKMVoyNDJMellBTDJKMVoyNDNMekVBTDJKMVoyNDNMeklBTDJK''@;'; put 'put ''MVoyNDNMek1BTDJKMVoyNDNMelFBTDJKMVoyNDNMelVBTDJKMVoyNDNMellBTDJKMVoyNDNMemNBTDJKMVoyNDRMekVBTDJKMVoyNDRMeklBTDJKMVoyNDRMek1BTDJKMVoyNDRMelFBTDJKMVoyNDRMelVBTDJKMVoyNDRMellBTDJKMVoyNDRMemNBTDJKMVoyNDRMemdBTDJKMVoyNDVMekVB''@;'; put 'put ''TDJKMVoyNDVMeklBTDJKMVoyNDVMek1BTDJKMVoyNDVMelFBTDJKMVoyNDVMelVBTDJKMVoyNDVMellBTDJKMVoyNDVMemNBTDJKMVoyNDVMemdBTDJKMVoyNDVMemtBTDJKMWNIVXpMekVBTDJKMWNIVXpMeklBTDJKMWNIVXpMek1BTDJKMWNIVTBMekVBTDJKMWNIVTBMeklBTDJKMWNIVTBM''@;'; put 'put ''ek1BTDJKMWNIVTBMelFBTDJKMWNIVTFMekVBTDJKMWNIVTFMeklBTDJKMWNIVTFMek1BTDJKMWNIVTFMelFBTDJKMWNIVTFMelVBTDJKMWNIVTJMekVBTDJKMWNIVTJMeklBTDJKMWNIVTJMek1BTDJKMWNIVTJMelFBTDJKMWNIVTJMelVBTDJKMWNIVTJMellBTDJKMWNIVTNMekVBTDJKMWNI''@;'; put 'put ''VTNMeklBTDJKMWNIVTNMek1BTDJKMWNIVTNMelFBTDJKMWNIVTNMelVBTDJKMWNIVTNMellBTDJKMWNIVTNMemNBTDJKMWNIVTRMekVBTDJKMWNIVTRMeklBTDJKMWNIVTRMek1BTDJKMWNIVTRMelFBTDJKMWNIVTRMelVBTDJKMWNIVTRMellBTDJKMWNIVTRMemNBTDJKMWNIVTRMemdBTDJK''@;'; put 'put ''MWNIVTVMekVBTDJKMWNIVTVMeklBTDJKMWNIVTVMek1BTDJKMWNIVTVMelFBTDJKMWNIVTVMelVBTDJKMWNIVTVMellBTDJKMWNIVTVMemNBTDJKMWNIVTVMemdBTDJKMWNIVTVMemtBTDJSaGNtc3lNeTh4QUM5a1lYSnJNak12TWdBdlpHRnlhekl6THpNQUwyUmhjbXN5TkM4eEFDOWtZWEpy''@;'; put 'put ''TWpRdk1nQXZaR0Z5YXpJMEx6TUFMMlJoY21zeU5DODBBQzlrWVhKck1qVXZNUUF2WkdGeWF6STFMeklBTDJSaGNtc3lOUzh6QUM5a1lYSnJNalV2TkFBdlpHRnlhekkxTHpVQUwyUmhjbXN5Tmk4eEFDOWtZWEpyTWpZdk1nQXZaR0Z5YXpJMkx6TUFMMlJoY21zeU5pODBBQzlrWVhKck1qWXZO''@;'; put 'put ''UUF2WkdGeWF6STJMellBTDJSaGNtc3lOeTh4QUM5a1lYSnJNamN2TWdBdlpHRnlhekkzTHpNQUwyUmhjbXN5Tnk4MEFDOWtZWEpyTWpjdk5RQXZaR0Z5YXpJM0x6WUFMMlJoY21zeU55ODNBQzlrWVhKck1qZ3ZNUUF2WkdGeWF6STRMeklBTDJSaGNtc3lPQzh6QUM5a1lYSnJNamd2TkFBdlpH''@;'; put 'put ''Rnlhekk0THpVQUwyUmhjbXN5T0M4MkFDOWtZWEpyTWpndk53QXZaR0Z5YXpJNEx6Z0FMMmR1WW5Vekx6RUFMMmR1WW5Vekx6SUFMMmR1WW5Vekx6TUFMMmR1WW5VMEx6RUFMMmR1WW5VMEx6SUFMMmR1WW5VMEx6TUFMMmR1WW5VMEx6UUFMMmR1WW5VMUx6RUFMMmR1WW5VMUx6SUFMMmR1WW5V''@;'; put 'put ''MUx6TUFMMmR1WW5VMUx6UUFMMmR1WW5VMUx6VUFMMmR1WW5VMkx6RUFMMmR1WW5VMkx6SUFMMmR1WW5VMkx6TUFMMmR1WW5VMkx6UUFMMmR1WW5VMkx6VUFMMmR1WW5VMkx6WUFMMmR1WW5VM0x6RUFMMmR1WW5VM0x6SUFMMmR1WW5VM0x6TUFMMmR1WW5VM0x6UUFMMmR1WW5VM0x6VUFMMmR1''@;'; put 'put ''WW5VM0x6WUFMMmR1WW5VM0x6Y0FMMmR1WW5VNEx6RUFMMmR1WW5VNEx6SUFMMmR1WW5VNEx6TUFMMmR1WW5VNEx6UUFMMmR1WW5VNEx6VUFMMmR1WW5VNEx6WUFMMmR1WW5VNEx6Y0FMMmR1WW5VNEx6Z0FMMmR1WW5VNUx6RUFMMmR1WW5VNUx6SUFMMmR1WW5VNUx6TUFMMmR1WW5VNUx6UUFM''@;'; put 'put ''MmR1WW5VNUx6VUFMMmR1WW5VNUx6WUFMMmR1WW5VNUx6Y0FMMmR1WW5VNUx6Z0FMMmR1WW5VNUx6a0FMMmR5WldWdWN6TXZNUUF2WjNKbFpXNXpNeTh5QUM5bmNtVmxibk16THpNQUwyZHlaV1Z1Y3pRdk1RQXZaM0psWlc1ek5DOHlBQzluY21WbGJuTTBMek1BTDJkeVpXVnVjelF2TkFBdloz''@;'; put 'put ''SmxaVzV6TlM4eEFDOW5jbVZsYm5NMUx6SUFMMmR5WldWdWN6VXZNd0F2WjNKbFpXNXpOUzgwQUM5bmNtVmxibk0xTHpVQUwyZHlaV1Z1Y3pZdk1RQXZaM0psWlc1ek5pOHlBQzluY21WbGJuTTJMek1BTDJkeVpXVnVjell2TkFBdlozSmxaVzV6Tmk4MUFDOW5jbVZsYm5NMkx6WUFMMmR5WldW''@;'; put 'put ''dWN6Y3ZNUUF2WjNKbFpXNXpOeTh5QUM5bmNtVmxibk0zTHpNQUwyZHlaV1Z1Y3pjdk5BQXZaM0psWlc1ek55ODFBQzluY21WbGJuTTNMellBTDJkeVpXVnVjemN2TndBdlozSmxaVzV6T0M4eEFDOW5jbVZsYm5NNEx6SUFMMmR5WldWdWN6Z3ZNd0F2WjNKbFpXNXpPQzgwQUM5bmNtVmxibk00''@;'; put 'put ''THpVQUwyZHlaV1Z1Y3pndk5nQXZaM0psWlc1ek9DODNBQzluY21WbGJuTTRMemdBTDJkeVpXVnVjemt2TVFBdlozSmxaVzV6T1M4eUFDOW5jbVZsYm5NNUx6TUFMMmR5WldWdWN6a3ZOQUF2WjNKbFpXNXpPUzgxQUM5bmNtVmxibk01THpZQUwyZHlaV1Z1Y3prdk53QXZaM0psWlc1ek9TODRB''@;'; put 'put ''QzluY21WbGJuTTVMemtBTDJkeVpYbHpNeTh4QUM5bmNtVjVjek12TWdBdlozSmxlWE16THpNQUwyZHlaWGx6TkM4eEFDOW5jbVY1Y3pRdk1nQXZaM0psZVhNMEx6TUFMMmR5Wlhsek5DODBBQzluY21WNWN6VXZNUUF2WjNKbGVYTTFMeklBTDJkeVpYbHpOUzh6QUM5bmNtVjVjelV2TkFBdloz''@;'; put 'put ''SmxlWE0xTHpVQUwyZHlaWGx6Tmk4eEFDOW5jbVY1Y3pZdk1nQXZaM0psZVhNMkx6TUFMMmR5Wlhsek5pODBBQzluY21WNWN6WXZOUUF2WjNKbGVYTTJMellBTDJkeVpYbHpOeTh4QUM5bmNtVjVjemN2TWdBdlozSmxlWE0zTHpNQUwyZHlaWGx6Tnk4MEFDOW5jbVY1Y3pjdk5RQXZaM0psZVhN''@;'; put 'put ''M0x6WUFMMmR5Wlhsek55ODNBQzluY21WNWN6Z3ZNUUF2WjNKbGVYTTRMeklBTDJkeVpYbHpPQzh6QUM5bmNtVjVjemd2TkFBdlozSmxlWE00THpVQUwyZHlaWGx6T0M4MkFDOW5jbVY1Y3pndk53QXZaM0psZVhNNEx6Z0FMMmR5Wlhsek9TOHhBQzluY21WNWN6a3ZNZ0F2WjNKbGVYTTVMek1B''@;'; put 'put ''TDJkeVpYbHpPUzgwQUM5bmNtVjVjemt2TlFBdlozSmxlWE01THpZQUwyZHlaWGx6T1M4M0FDOW5jbVY1Y3prdk9BQXZaM0psZVhNNUx6a0FMMjl5WVc1blpYTXpMekVBTDI5eVlXNW5aWE16THpJQUwyOXlZVzVuWlhNekx6TUFMMjl5WVc1blpYTTBMekVBTDI5eVlXNW5aWE0wTHpJQUwyOXlZ''@;'; put 'put ''VzVuWlhNMEx6TUFMMjl5WVc1blpYTTBMelFBTDI5eVlXNW5aWE0xTHpFQUwyOXlZVzVuWlhNMUx6SUFMMjl5WVc1blpYTTFMek1BTDI5eVlXNW5aWE0xTHpRQUwyOXlZVzVuWlhNMUx6VUFMMjl5WVc1blpYTTJMekVBTDI5eVlXNW5aWE0yTHpJQUwyOXlZVzVuWlhNMkx6TUFMMjl5WVc1blpY''@;'; put 'put ''TTJMelFBTDI5eVlXNW5aWE0yTHpVQUwyOXlZVzVuWlhNMkx6WUFMMjl5WVc1blpYTTNMekVBTDI5eVlXNW5aWE0zTHpJQUwyOXlZVzVuWlhNM0x6TUFMMjl5WVc1blpYTTNMelFBTDI5eVlXNW5aWE0zTHpVQUwyOXlZVzVuWlhNM0x6WUFMMjl5WVc1blpYTTNMemNBTDI5eVlXNW5aWE00THpF''@;'; put 'put ''QUwyOXlZVzVuWlhNNEx6SUFMMjl5WVc1blpYTTRMek1BTDI5eVlXNW5aWE00THpRQUwyOXlZVzVuWlhNNEx6VUFMMjl5WVc1blpYTTRMellBTDI5eVlXNW5aWE00THpjQUwyOXlZVzVuWlhNNEx6Z0FMMjl5WVc1blpYTTVMekVBTDI5eVlXNW5aWE01THpJQUwyOXlZVzVuWlhNNUx6TUFMMjl5''@;'; put 'put ''WVc1blpYTTVMelFBTDI5eVlXNW5aWE01THpVQUwyOXlZVzVuWlhNNUx6WUFMMjl5WVc1blpYTTVMemNBTDI5eVlXNW5aWE01THpnQUwyOXlZVzVuWlhNNUx6a0FMMjl5Y21Rekx6RUFMMjl5Y21Rekx6SUFMMjl5Y21Rekx6TUFMMjl5Y21RMEx6RUFMMjl5Y21RMEx6SUFMMjl5Y21RMEx6TUFM''@;'; put 'put ''Mjl5Y21RMEx6UUFMMjl5Y21RMUx6RUFMMjl5Y21RMUx6SUFMMjl5Y21RMUx6TUFMMjl5Y21RMUx6UUFMMjl5Y21RMUx6VUFMMjl5Y21RMkx6RUFMMjl5Y21RMkx6SUFMMjl5Y21RMkx6TUFMMjl5Y21RMkx6UUFMMjl5Y21RMkx6VUFMMjl5Y21RMkx6WUFMMjl5Y21RM0x6RUFMMjl5Y21RM0x6''@;'; put 'put ''SUFMMjl5Y21RM0x6TUFMMjl5Y21RM0x6UUFMMjl5Y21RM0x6VUFMMjl5Y21RM0x6WUFMMjl5Y21RM0x6Y0FMMjl5Y21RNEx6RUFMMjl5Y21RNEx6SUFMMjl5Y21RNEx6TUFMMjl5Y21RNEx6UUFMMjl5Y21RNEx6VUFMMjl5Y21RNEx6WUFMMjl5Y21RNEx6Y0FMMjl5Y21RNEx6Z0FMMjl5Y21R''@;'; put 'put ''NUx6RUFMMjl5Y21RNUx6SUFMMjl5Y21RNUx6TUFMMjl5Y21RNUx6UUFMMjl5Y21RNUx6VUFMMjl5Y21RNUx6WUFMMjl5Y21RNUx6Y0FMMjl5Y21RNUx6Z0FMMjl5Y21RNUx6a0FMM0JoYVhKbFpERXdMekVBTDNCaGFYSmxaREV3THpFd0FDOXdZV2x5WldReE1DOHlBQzl3WVdseVpXUXhNQzh6''@;'; put 'put ''QUM5d1lXbHlaV1F4TUM4MEFDOXdZV2x5WldReE1DODFBQzl3WVdseVpXUXhNQzgyQUM5d1lXbHlaV1F4TUM4M0FDOXdZV2x5WldReE1DODRBQzl3WVdseVpXUXhNQzg1QUM5d1lXbHlaV1F4TVM4eEFDOXdZV2x5WldReE1TOHhNQUF2Y0dGcGNtVmtNVEV2TVRFQUwzQmhhWEpsWkRFeEx6SUFM''@;'; put 'put ''M0JoYVhKbFpERXhMek1BTDNCaGFYSmxaREV4THpRQUwzQmhhWEpsWkRFeEx6VUFMM0JoYVhKbFpERXhMellBTDNCaGFYSmxaREV4THpjQUwzQmhhWEpsWkRFeEx6Z0FMM0JoYVhKbFpERXhMemtBTDNCaGFYSmxaREV5THpFQUwzQmhhWEpsWkRFeUx6RXdBQzl3WVdseVpXUXhNaTh4TVFBdmNH''@;'; put 'put ''RnBjbVZrTVRJdk1USUFMM0JoYVhKbFpERXlMeklBTDNCaGFYSmxaREV5THpNQUwzQmhhWEpsWkRFeUx6UUFMM0JoYVhKbFpERXlMelVBTDNCaGFYSmxaREV5THpZQUwzQmhhWEpsWkRFeUx6Y0FMM0JoYVhKbFpERXlMemdBTDNCaGFYSmxaREV5THprQUwzQmhhWEpsWkRNdk1RQXZjR0ZwY21W''@;'; put 'put ''a015OHlBQzl3WVdseVpXUXpMek1BTDNCaGFYSmxaRFF2TVFBdmNHRnBjbVZrTkM4eUFDOXdZV2x5WldRMEx6TUFMM0JoYVhKbFpEUXZOQUF2Y0dGcGNtVmtOUzh4QUM5d1lXbHlaV1ExTHpJQUwzQmhhWEpsWkRVdk13QXZjR0ZwY21Wa05TODBBQzl3WVdseVpXUTFMelVBTDNCaGFYSmxaRFl2''@;'; put 'put ''TVFBdmNHRnBjbVZrTmk4eUFDOXdZV2x5WldRMkx6TUFMM0JoYVhKbFpEWXZOQUF2Y0dGcGNtVmtOaTgxQUM5d1lXbHlaV1EyTHpZQUwzQmhhWEpsWkRjdk1RQXZjR0ZwY21Wa055OHlBQzl3WVdseVpXUTNMek1BTDNCaGFYSmxaRGN2TkFBdmNHRnBjbVZrTnk4MUFDOXdZV2x5WldRM0x6WUFM''@;'; put 'put ''M0JoYVhKbFpEY3ZOd0F2Y0dGcGNtVmtPQzh4QUM5d1lXbHlaV1E0THpJQUwzQmhhWEpsWkRndk13QXZjR0ZwY21Wa09DODBBQzl3WVdseVpXUTRMelVBTDNCaGFYSmxaRGd2TmdBdmNHRnBjbVZrT0M4M0FDOXdZV2x5WldRNEx6Z0FMM0JoYVhKbFpEa3ZNUUF2Y0dGcGNtVmtPUzh5QUM5d1lX''@;'; put 'put ''bHlaV1E1THpNQUwzQmhhWEpsWkRrdk5BQXZjR0ZwY21Wa09TODFBQzl3WVdseVpXUTVMellBTDNCaGFYSmxaRGt2TndBdmNHRnBjbVZrT1M4NEFDOXdZV2x5WldRNUx6a0FMM0JoYzNSbGJERXpMekVBTDNCaGMzUmxiREV6THpJQUwzQmhjM1JsYkRFekx6TUFMM0JoYzNSbGJERTBMekVBTDNC''@;'; put 'put ''aGMzUmxiREUwTHpJQUwzQmhjM1JsYkRFMEx6TUFMM0JoYzNSbGJERTBMelFBTDNCaGMzUmxiREUxTHpFQUwzQmhjM1JsYkRFMUx6SUFMM0JoYzNSbGJERTFMek1BTDNCaGMzUmxiREUxTHpRQUwzQmhjM1JsYkRFMUx6VUFMM0JoYzNSbGJERTJMekVBTDNCaGMzUmxiREUyTHpJQUwzQmhjM1Js''@;'; put 'put ''YkRFMkx6TUFMM0JoYzNSbGJERTJMelFBTDNCaGMzUmxiREUyTHpVQUwzQmhjM1JsYkRFMkx6WUFMM0JoYzNSbGJERTNMekVBTDNCaGMzUmxiREUzTHpJQUwzQmhjM1JsYkRFM0x6TUFMM0JoYzNSbGJERTNMelFBTDNCaGMzUmxiREUzTHpVQUwzQmhjM1JsYkRFM0x6WUFMM0JoYzNSbGJERTNM''@;'; put 'put ''emNBTDNCaGMzUmxiREU0THpFQUwzQmhjM1JsYkRFNEx6SUFMM0JoYzNSbGJERTRMek1BTDNCaGMzUmxiREU0THpRQUwzQmhjM1JsYkRFNEx6VUFMM0JoYzNSbGJERTRMellBTDNCaGMzUmxiREU0THpjQUwzQmhjM1JsYkRFNEx6Z0FMM0JoYzNSbGJERTVMekVBTDNCaGMzUmxiREU1THpJQUwz''@;'; put 'put ''QmhjM1JsYkRFNUx6TUFMM0JoYzNSbGJERTVMelFBTDNCaGMzUmxiREU1THpVQUwzQmhjM1JsYkRFNUx6WUFMM0JoYzNSbGJERTVMemNBTDNCaGMzUmxiREU1THpnQUwzQmhjM1JsYkRFNUx6a0FMM0JoYzNSbGJESXpMekVBTDNCaGMzUmxiREl6THpJQUwzQmhjM1JsYkRJekx6TUFMM0JoYzNS''@;'; put 'put ''bGJESTBMekVBTDNCaGMzUmxiREkwTHpJQUwzQmhjM1JsYkRJMEx6TUFMM0JoYzNSbGJESTBMelFBTDNCaGMzUmxiREkxTHpFQUwzQmhjM1JsYkRJMUx6SUFMM0JoYzNSbGJESTFMek1BTDNCaGMzUmxiREkxTHpRQUwzQmhjM1JsYkRJMUx6VUFMM0JoYzNSbGJESTJMekVBTDNCaGMzUmxiREky''@;'; put 'put ''THpJQUwzQmhjM1JsYkRJMkx6TUFMM0JoYzNSbGJESTJMelFBTDNCaGMzUmxiREkyTHpVQUwzQmhjM1JsYkRJMkx6WUFMM0JoYzNSbGJESTNMekVBTDNCaGMzUmxiREkzTHpJQUwzQmhjM1JsYkRJM0x6TUFMM0JoYzNSbGJESTNMelFBTDNCaGMzUmxiREkzTHpVQUwzQmhjM1JsYkRJM0x6WUFM''@;'; put 'put ''M0JoYzNSbGJESTNMemNBTDNCaGMzUmxiREk0THpFQUwzQmhjM1JsYkRJNEx6SUFMM0JoYzNSbGJESTRMek1BTDNCaGMzUmxiREk0THpRQUwzQmhjM1JsYkRJNEx6VUFMM0JoYzNSbGJESTRMellBTDNCaGMzUmxiREk0THpjQUwzQmhjM1JsYkRJNEx6Z0FMM0JwZVdjeE1DOHhBQzl3YVhsbk1U''@;'; put 'put ''QXZNVEFBTDNCcGVXY3hNQzh5QUM5d2FYbG5NVEF2TXdBdmNHbDVaekV3THpRQUwzQnBlV2N4TUM4MUFDOXdhWGxuTVRBdk5nQXZjR2w1WnpFd0x6Y0FMM0JwZVdjeE1DODRBQzl3YVhsbk1UQXZPUUF2Y0dsNVp6RXhMekVBTDNCcGVXY3hNUzh4TUFBdmNHbDVaekV4THpFeEFDOXdhWGxuTVRF''@;'; put 'put ''dk1nQXZjR2w1WnpFeEx6TUFMM0JwZVdjeE1TODBBQzl3YVhsbk1URXZOUUF2Y0dsNVp6RXhMellBTDNCcGVXY3hNUzgzQUM5d2FYbG5NVEV2T0FBdmNHbDVaekV4THprQUwzQnBlV2N6THpFQUwzQnBlV2N6THpJQUwzQnBlV2N6THpNQUwzQnBlV2MwTHpFQUwzQnBlV2MwTHpJQUwzQnBlV2Mw''@;'; put 'put ''THpNQUwzQnBlV2MwTHpRQUwzQnBlV2MxTHpFQUwzQnBlV2MxTHpJQUwzQnBlV2MxTHpNQUwzQnBlV2MxTHpRQUwzQnBlV2MxTHpVQUwzQnBlV2MyTHpFQUwzQnBlV2MyTHpJQUwzQnBlV2MyTHpNQUwzQnBlV2MyTHpRQUwzQnBlV2MyTHpVQUwzQnBlV2MyTHpZQUwzQnBlV2MzTHpFQUwzQnBl''@;'; put 'put ''V2MzTHpJQUwzQnBlV2MzTHpNQUwzQnBlV2MzTHpRQUwzQnBlV2MzTHpVQUwzQnBlV2MzTHpZQUwzQnBlV2MzTHpjQUwzQnBlV2M0THpFQUwzQnBlV2M0THpJQUwzQnBlV2M0THpNQUwzQnBlV2M0THpRQUwzQnBlV2M0THpVQUwzQnBlV2M0THpZQUwzQnBlV2M0THpjQUwzQnBlV2M0THpnQUwz''@;'; put 'put ''QnBlV2M1THpFQUwzQnBlV2M1THpJQUwzQnBlV2M1THpNQUwzQnBlV2M1THpRQUwzQnBlV2M1THpVQUwzQnBlV2M1THpZQUwzQnBlV2M1THpjQUwzQnBlV2M1THpnQUwzQnBlV2M1THprQUwzQnlaMjR4TUM4eEFDOXdjbWR1TVRBdk1UQUFMM0J5WjI0eE1DOHlBQzl3Y21kdU1UQXZNd0F2Y0hK''@;'; put 'put ''bmJqRXdMelFBTDNCeVoyNHhNQzgxQUM5d2NtZHVNVEF2TmdBdmNISm5iakV3THpjQUwzQnlaMjR4TUM4NEFDOXdjbWR1TVRBdk9RQXZjSEpuYmpFeEx6RUFMM0J5WjI0eE1TOHhNQUF2Y0hKbmJqRXhMekV4QUM5d2NtZHVNVEV2TWdBdmNISm5iakV4THpNQUwzQnlaMjR4TVM4MEFDOXdjbWR1''@;'; put 'put ''TVRFdk5RQXZjSEpuYmpFeEx6WUFMM0J5WjI0eE1TODNBQzl3Y21kdU1URXZPQUF2Y0hKbmJqRXhMemtBTDNCeVoyNHpMekVBTDNCeVoyNHpMeklBTDNCeVoyNHpMek1BTDNCeVoyNDBMekVBTDNCeVoyNDBMeklBTDNCeVoyNDBMek1BTDNCeVoyNDBMelFBTDNCeVoyNDFMekVBTDNCeVoyNDFM''@;'; put 'put ''eklBTDNCeVoyNDFMek1BTDNCeVoyNDFMelFBTDNCeVoyNDFMelVBTDNCeVoyNDJMekVBTDNCeVoyNDJMeklBTDNCeVoyNDJMek1BTDNCeVoyNDJMelFBTDNCeVoyNDJMelVBTDNCeVoyNDJMellBTDNCeVoyNDNMekVBTDNCeVoyNDNMeklBTDNCeVoyNDNMek1BTDNCeVoyNDNMelFBTDNCeVoy''@;'; put 'put ''NDNMelVBTDNCeVoyNDNMellBTDNCeVoyNDNMemNBTDNCeVoyNDRMekVBTDNCeVoyNDRMeklBTDNCeVoyNDRMek1BTDNCeVoyNDRMelFBTDNCeVoyNDRMelVBTDNCeVoyNDRMellBTDNCeVoyNDRMemNBTDNCeVoyNDRMemdBTDNCeVoyNDVMekVBTDNCeVoyNDVMeklBTDNCeVoyNDVMek1BTDNC''@;'; put 'put ''eVoyNDVMelFBTDNCeVoyNDVMelVBTDNCeVoyNDVMellBTDNCeVoyNDVMemNBTDNCeVoyNDVMemdBTDNCeVoyNDVMemtBTDNCMVluVXpMekVBTDNCMVluVXpMeklBTDNCMVluVXpMek1BTDNCMVluVTBMekVBTDNCMVluVTBMeklBTDNCMVluVTBMek1BTDNCMVluVTBMelFBTDNCMVluVTFMekVB''@;'; put 'put ''TDNCMVluVTFMeklBTDNCMVluVTFMek1BTDNCMVluVTFMelFBTDNCMVluVTFMelVBTDNCMVluVTJMekVBTDNCMVluVTJMeklBTDNCMVluVTJMek1BTDNCMVluVTJMelFBTDNCMVluVTJMelVBTDNCMVluVTJMellBTDNCMVluVTNMekVBTDNCMVluVTNMeklBTDNCMVluVTNMek1BTDNCMVluVTNM''@;'; put 'put ''elFBTDNCMVluVTNMelVBTDNCMVluVTNMellBTDNCMVluVTNMemNBTDNCMVluVTRMekVBTDNCMVluVTRMeklBTDNCMVluVTRMek1BTDNCMVluVTRMelFBTDNCMVluVTRMelVBTDNCMVluVTRMellBTDNCMVluVTRMemNBTDNCMVluVTRMemdBTDNCMVluVTVMekVBTDNCMVluVTVMeklBTDNCMVlu''@;'; put 'put ''VTVMek1BTDNCMVluVTVMelFBTDNCMVluVTVMelVBTDNCMVluVTVMellBTDNCMVluVTVMemNBTDNCMVluVTVMemdBTDNCMVluVTVMemtBTDNCMVluVm5iak12TVFBdmNIVmlkV2R1TXk4eUFDOXdkV0oxWjI0ekx6TUFMM0IxWW5WbmJqUXZNUUF2Y0hWaWRXZHVOQzh5QUM5d2RXSjFaMjQwTHpN''@;'; put 'put ''QUwzQjFZblZuYmpRdk5BQXZjSFZpZFdkdU5TOHhBQzl3ZFdKMVoyNDFMeklBTDNCMVluVm5ialV2TXdBdmNIVmlkV2R1TlM4MEFDOXdkV0oxWjI0MUx6VUFMM0IxWW5WbmJqWXZNUUF2Y0hWaWRXZHVOaTh5QUM5d2RXSjFaMjQyTHpNQUwzQjFZblZuYmpZdk5BQXZjSFZpZFdkdU5pODFBQzl3''@;'; put 'put ''ZFdKMVoyNDJMellBTDNCMVluVm5iamN2TVFBdmNIVmlkV2R1Tnk4eUFDOXdkV0oxWjI0M0x6TUFMM0IxWW5WbmJqY3ZOQUF2Y0hWaWRXZHVOeTgxQUM5d2RXSjFaMjQzTHpZQUwzQjFZblZuYmpjdk53QXZjSFZpZFdkdU9DOHhBQzl3ZFdKMVoyNDRMeklBTDNCMVluVm5iamd2TXdBdmNIVmlk''@;'; put 'put ''V2R1T0M4MEFDOXdkV0oxWjI0NEx6VUFMM0IxWW5WbmJqZ3ZOZ0F2Y0hWaWRXZHVPQzgzQUM5d2RXSjFaMjQ0THpnQUwzQjFZblZuYmprdk1RQXZjSFZpZFdkdU9TOHlBQzl3ZFdKMVoyNDVMek1BTDNCMVluVm5iamt2TkFBdmNIVmlkV2R1T1M4MUFDOXdkV0oxWjI0NUx6WUFMM0IxWW5WbmJq''@;'; put 'put ''a3ZOd0F2Y0hWaWRXZHVPUzg0QUM5d2RXSjFaMjQ1THprQUwzQjFiM0l4TUM4eEFDOXdkVzl5TVRBdk1UQUFMM0IxYjNJeE1DOHlBQzl3ZFc5eU1UQXZNd0F2Y0hWdmNqRXdMelFBTDNCMWIzSXhNQzgxQUM5d2RXOXlNVEF2TmdBdmNIVnZjakV3THpjQUwzQjFiM0l4TUM4NEFDOXdkVzl5TVRB''@;'; put 'put ''dk9RQXZjSFZ2Y2pFeEx6RUFMM0IxYjNJeE1TOHhNQUF2Y0hWdmNqRXhMekV4QUM5d2RXOXlNVEV2TWdBdmNIVnZjakV4THpNQUwzQjFiM0l4TVM4MEFDOXdkVzl5TVRFdk5RQXZjSFZ2Y2pFeEx6WUFMM0IxYjNJeE1TODNBQzl3ZFc5eU1URXZPQUF2Y0hWdmNqRXhMemtBTDNCMWIzSXpMekVB''@;'; put 'put ''TDNCMWIzSXpMeklBTDNCMWIzSXpMek1BTDNCMWIzSTBMekVBTDNCMWIzSTBMeklBTDNCMWIzSTBMek1BTDNCMWIzSTBMelFBTDNCMWIzSTFMekVBTDNCMWIzSTFMeklBTDNCMWIzSTFMek1BTDNCMWIzSTFMelFBTDNCMWIzSTFMelVBTDNCMWIzSTJMekVBTDNCMWIzSTJMeklBTDNCMWIzSTJM''@;'; put 'put ''ek1BTDNCMWIzSTJMelFBTDNCMWIzSTJMelVBTDNCMWIzSTJMellBTDNCMWIzSTNMekVBTDNCMWIzSTNMeklBTDNCMWIzSTNMek1BTDNCMWIzSTNMelFBTDNCMWIzSTNMelVBTDNCMWIzSTNMellBTDNCMWIzSTNMemNBTDNCMWIzSTRMekVBTDNCMWIzSTRMeklBTDNCMWIzSTRMek1BTDNCMWIz''@;'; put 'put ''STRMelFBTDNCMWIzSTRMelVBTDNCMWIzSTRMellBTDNCMWIzSTRMemNBTDNCMWIzSTRMemdBTDNCMWIzSTVMekVBTDNCMWIzSTVMeklBTDNCMWIzSTVMek1BTDNCMWIzSTVMelFBTDNCMWIzSTVMelVBTDNCMWIzSTVMellBTDNCMWIzSTVMemNBTDNCMWIzSTVMemdBTDNCMWIzSTVMemtBTDNC''@;'; put 'put ''MWNtUXpMekVBTDNCMWNtUXpMeklBTDNCMWNtUXpMek1BTDNCMWNtUTBMekVBTDNCMWNtUTBMeklBTDNCMWNtUTBMek1BTDNCMWNtUTBMelFBTDNCMWNtUTFMekVBTDNCMWNtUTFMeklBTDNCMWNtUTFMek1BTDNCMWNtUTFMelFBTDNCMWNtUTFMelVBTDNCMWNtUTJMekVBTDNCMWNtUTJMeklB''@;'; put 'put ''TDNCMWNtUTJMek1BTDNCMWNtUTJMelFBTDNCMWNtUTJMelVBTDNCMWNtUTJMellBTDNCMWNtUTNMekVBTDNCMWNtUTNMeklBTDNCMWNtUTNMek1BTDNCMWNtUTNMelFBTDNCMWNtUTNMelVBTDNCMWNtUTNMellBTDNCMWNtUTNMemNBTDNCMWNtUTRMekVBTDNCMWNtUTRMeklBTDNCMWNtUTRM''@;'; put 'put ''ek1BTDNCMWNtUTRMelFBTDNCMWNtUTRMelVBTDNCMWNtUTRMellBTDNCMWNtUTRMemNBTDNCMWNtUTRMemdBTDNCMWNtUTVMekVBTDNCMWNtUTVMeklBTDNCMWNtUTVMek1BTDNCMWNtUTVMelFBTDNCMWNtUTVMelVBTDNCMWNtUTVMellBTDNCMWNtUTVMemNBTDNCMWNtUTVMemdBTDNCMWNt''@;'; put 'put ''UTVMemtBTDNCMWNuQnNaWE16THpFQUwzQjFjbkJzWlhNekx6SUFMM0IxY25Cc1pYTXpMek1BTDNCMWNuQnNaWE0wTHpFQUwzQjFjbkJzWlhNMEx6SUFMM0IxY25Cc1pYTTBMek1BTDNCMWNuQnNaWE0wTHpRQUwzQjFjbkJzWlhNMUx6RUFMM0IxY25Cc1pYTTFMeklBTDNCMWNuQnNaWE0xTHpN''@;'; put 'put ''QUwzQjFjbkJzWlhNMUx6UUFMM0IxY25Cc1pYTTFMelVBTDNCMWNuQnNaWE0yTHpFQUwzQjFjbkJzWlhNMkx6SUFMM0IxY25Cc1pYTTJMek1BTDNCMWNuQnNaWE0yTHpRQUwzQjFjbkJzWlhNMkx6VUFMM0IxY25Cc1pYTTJMellBTDNCMWNuQnNaWE0zTHpFQUwzQjFjbkJzWlhNM0x6SUFMM0Ix''@;'; put 'put ''Y25Cc1pYTTNMek1BTDNCMWNuQnNaWE0zTHpRQUwzQjFjbkJzWlhNM0x6VUFMM0IxY25Cc1pYTTNMellBTDNCMWNuQnNaWE0zTHpjQUwzQjFjbkJzWlhNNEx6RUFMM0IxY25Cc1pYTTRMeklBTDNCMWNuQnNaWE00THpNQUwzQjFjbkJzWlhNNEx6UUFMM0IxY25Cc1pYTTRMelVBTDNCMWNuQnNa''@;'; put 'put ''WE00THpZQUwzQjFjbkJzWlhNNEx6Y0FMM0IxY25Cc1pYTTRMemdBTDNCMWNuQnNaWE01THpFQUwzQjFjbkJzWlhNNUx6SUFMM0IxY25Cc1pYTTVMek1BTDNCMWNuQnNaWE01THpRQUwzQjFjbkJzWlhNNUx6VUFMM0IxY25Cc1pYTTVMellBTDNCMWNuQnNaWE01THpjQUwzQjFjbkJzWlhNNUx6''@;'; put 'put ''Z0FMM0IxY25Cc1pYTTVMemtBTDNKa1luVXhNQzh4QUM5eVpHSjFNVEF2TVRBQUwzSmtZblV4TUM4eUFDOXlaR0oxTVRBdk13QXZjbVJpZFRFd0x6UUFMM0prWW5VeE1DODFBQzl5WkdKMU1UQXZOZ0F2Y21SaWRURXdMemNBTDNKa1luVXhNQzg0QUM5eVpHSjFNVEF2T1FBdmNtUmlkVEV4THpF''@;'; put 'put ''QUwzSmtZblV4TVM4eE1BQXZjbVJpZFRFeEx6RXhBQzl5WkdKMU1URXZNZ0F2Y21SaWRURXhMek1BTDNKa1luVXhNUzgwQUM5eVpHSjFNVEV2TlFBdmNtUmlkVEV4THpZQUwzSmtZblV4TVM4M0FDOXlaR0oxTVRFdk9BQXZjbVJpZFRFeEx6a0FMM0prWW5Vekx6RUFMM0prWW5Vekx6SUFMM0pr''@;'; put 'put ''WW5Vekx6TUFMM0prWW5VMEx6RUFMM0prWW5VMEx6SUFMM0prWW5VMEx6TUFMM0prWW5VMEx6UUFMM0prWW5VMUx6RUFMM0prWW5VMUx6SUFMM0prWW5VMUx6TUFMM0prWW5VMUx6UUFMM0prWW5VMUx6VUFMM0prWW5VMkx6RUFMM0prWW5VMkx6SUFMM0prWW5VMkx6TUFMM0prWW5VMkx6UUFM''@;'; put 'put ''M0prWW5VMkx6VUFMM0prWW5VMkx6WUFMM0prWW5VM0x6RUFMM0prWW5VM0x6SUFMM0prWW5VM0x6TUFMM0prWW5VM0x6UUFMM0prWW5VM0x6VUFMM0prWW5VM0x6WUFMM0prWW5VM0x6Y0FMM0prWW5VNEx6RUFMM0prWW5VNEx6SUFMM0prWW5VNEx6TUFMM0prWW5VNEx6UUFMM0prWW5VNEx6''@;'; put 'put ''VUFMM0prWW5VNEx6WUFMM0prWW5VNEx6Y0FMM0prWW5VNEx6Z0FMM0prWW5VNUx6RUFMM0prWW5VNUx6SUFMM0prWW5VNUx6TUFMM0prWW5VNUx6UUFMM0prWW5VNUx6VUFMM0prWW5VNUx6WUFMM0prWW5VNUx6Y0FMM0prWW5VNUx6Z0FMM0prWW5VNUx6a0FMM0prWjNreE1DOHhBQzl5Wkdk''@;'; put 'put ''NU1UQXZNVEFBTDNKa1oza3hNQzh5QUM5eVpHZDVNVEF2TXdBdmNtUm5lVEV3THpRQUwzSmtaM2t4TUM4MUFDOXlaR2Q1TVRBdk5nQXZjbVJuZVRFd0x6Y0FMM0prWjNreE1DODRBQzl5WkdkNU1UQXZPUUF2Y21SbmVURXhMekVBTDNKa1oza3hNUzh4TUFBdmNtUm5lVEV4THpFeEFDOXlaR2Q1''@;'; put 'put ''TVRFdk1nQXZjbVJuZVRFeEx6TUFMM0prWjNreE1TODBBQzl5WkdkNU1URXZOUUF2Y21SbmVURXhMellBTDNKa1oza3hNUzgzQUM5eVpHZDVNVEV2T0FBdmNtUm5lVEV4THprQUwzSmtaM2t6THpFQUwzSmtaM2t6THpJQUwzSmtaM2t6THpNQUwzSmtaM2swTHpFQUwzSmtaM2swTHpJQUwzSmta''@;'; put 'put ''M2swTHpNQUwzSmtaM2swTHpRQUwzSmtaM2sxTHpFQUwzSmtaM2sxTHpJQUwzSmtaM2sxTHpNQUwzSmtaM2sxTHpRQUwzSmtaM2sxTHpVQUwzSmtaM2syTHpFQUwzSmtaM2syTHpJQUwzSmtaM2syTHpNQUwzSmtaM2syTHpRQUwzSmtaM2syTHpVQUwzSmtaM2syTHpZQUwzSmtaM2szTHpFQUwz''@;'; put 'put ''SmtaM2szTHpJQUwzSmtaM2szTHpNQUwzSmtaM2szTHpRQUwzSmtaM2szTHpVQUwzSmtaM2szTHpZQUwzSmtaM2szTHpjQUwzSmtaM2s0THpFQUwzSmtaM2s0THpJQUwzSmtaM2s0THpNQUwzSmtaM2s0THpRQUwzSmtaM2s0THpVQUwzSmtaM2s0THpZQUwzSmtaM2s0THpjQUwzSmtaM2s0THpn''@;'; put 'put ''QUwzSmtaM2s1THpFQUwzSmtaM2s1THpJQUwzSmtaM2s1THpNQUwzSmtaM2s1THpRQUwzSmtaM2s1THpVQUwzSmtaM2s1THpZQUwzSmtaM2s1THpjQUwzSmtaM2s1THpnQUwzSmtaM2s1THprQUwzSmtjSFV6THpFQUwzSmtjSFV6THpJQUwzSmtjSFV6THpNQUwzSmtjSFUwTHpFQUwzSmtjSFUw''@;'; put 'put ''THpJQUwzSmtjSFUwTHpNQUwzSmtjSFUwTHpRQUwzSmtjSFUxTHpFQUwzSmtjSFUxTHpJQUwzSmtjSFUxTHpNQUwzSmtjSFUxTHpRQUwzSmtjSFUxTHpVQUwzSmtjSFUyTHpFQUwzSmtjSFUyTHpJQUwzSmtjSFUyTHpNQUwzSmtjSFUyTHpRQUwzSmtjSFUyTHpVQUwzSmtjSFUyTHpZQUwzSmtj''@;'; put 'put ''SFUzTHpFQUwzSmtjSFUzTHpJQUwzSmtjSFUzTHpNQUwzSmtjSFUzTHpRQUwzSmtjSFUzTHpVQUwzSmtjSFUzTHpZQUwzSmtjSFUzTHpjQUwzSmtjSFU0THpFQUwzSmtjSFU0THpJQUwzSmtjSFU0THpNQUwzSmtjSFU0THpRQUwzSmtjSFU0THpVQUwzSmtjSFU0THpZQUwzSmtjSFU0THpjQUwz''@;'; put 'put ''SmtjSFU0THpnQUwzSmtjSFU1THpFQUwzSmtjSFU1THpJQUwzSmtjSFU1THpNQUwzSmtjSFU1THpRQUwzSmtjSFU1THpVQUwzSmtjSFU1THpZQUwzSmtjSFU1THpjQUwzSmtjSFU1THpnQUwzSmtjSFU1THprQUwzSmtlV3hpZFRFd0x6RUFMM0prZVd4aWRURXdMekV3QUM5eVpIbHNZblV4TUM4''@;'; put 'put ''eUFDOXlaSGxzWW5VeE1DOHpBQzl5Wkhsc1luVXhNQzgwQUM5eVpIbHNZblV4TUM4MUFDOXlaSGxzWW5VeE1DODJBQzl5Wkhsc1luVXhNQzgzQUM5eVpIbHNZblV4TUM4NEFDOXlaSGxzWW5VeE1DODVBQzl5Wkhsc1luVXhNUzh4QUM5eVpIbHNZblV4TVM4eE1BQXZjbVI1YkdKMU1URXZNVEVB''@;'; put 'put ''TDNKa2VXeGlkVEV4THpJQUwzSmtlV3hpZFRFeEx6TUFMM0prZVd4aWRURXhMelFBTDNKa2VXeGlkVEV4THpVQUwzSmtlV3hpZFRFeEx6WUFMM0prZVd4aWRURXhMemNBTDNKa2VXeGlkVEV4THpnQUwzSmtlV3hpZFRFeEx6a0FMM0prZVd4aWRUTXZNUUF2Y21SNWJHSjFNeTh5QUM5eVpIbHNZ''@;'; put 'put ''blV6THpNQUwzSmtlV3hpZFRRdk1RQXZjbVI1YkdKMU5DOHlBQzl5Wkhsc1luVTBMek1BTDNKa2VXeGlkVFF2TkFBdmNtUjViR0oxTlM4eEFDOXlaSGxzWW5VMUx6SUFMM0prZVd4aWRUVXZNd0F2Y21SNWJHSjFOUzgwQUM5eVpIbHNZblUxTHpVQUwzSmtlV3hpZFRZdk1RQXZjbVI1YkdKMU5p''@;'; put 'put ''OHlBQzl5Wkhsc1luVTJMek1BTDNKa2VXeGlkVFl2TkFBdmNtUjViR0oxTmk4MUFDOXlaSGxzWW5VMkx6WUFMM0prZVd4aWRUY3ZNUUF2Y21SNWJHSjFOeTh5QUM5eVpIbHNZblUzTHpNQUwzSmtlV3hpZFRjdk5BQXZjbVI1YkdKMU55ODFBQzl5Wkhsc1luVTNMellBTDNKa2VXeGlkVGN2TndB''@;'; put 'put ''dmNtUjViR0oxT0M4eEFDOXlaSGxzWW5VNEx6SUFMM0prZVd4aWRUZ3ZNd0F2Y21SNWJHSjFPQzgwQUM5eVpIbHNZblU0THpVQUwzSmtlV3hpZFRndk5nQXZjbVI1YkdKMU9DODNBQzl5Wkhsc1luVTRMemdBTDNKa2VXeGlkVGt2TVFBdmNtUjViR0oxT1M4eUFDOXlaSGxzWW5VNUx6TUFMM0pr''@;'; put 'put ''ZVd4aWRUa3ZOQUF2Y21SNWJHSjFPUzgxQUM5eVpIbHNZblU1THpZQUwzSmtlV3hpZFRrdk53QXZjbVI1YkdKMU9TODRBQzl5Wkhsc1luVTVMemtBTDNKa2VXeG5iakV3THpFQUwzSmtlV3huYmpFd0x6RXdBQzl5Wkhsc1oyNHhNQzh5QUM5eVpIbHNaMjR4TUM4ekFDOXlaSGxzWjI0eE1DODBB''@;'; put 'put ''Qzl5Wkhsc1oyNHhNQzgxQUM5eVpIbHNaMjR4TUM4MkFDOXlaSGxzWjI0eE1DODNBQzl5Wkhsc1oyNHhNQzg0QUM5eVpIbHNaMjR4TUM4NUFDOXlaSGxzWjI0eE1TOHhBQzl5Wkhsc1oyNHhNUzh4TUFBdmNtUjViR2R1TVRFdk1URUFMM0prZVd4bmJqRXhMeklBTDNKa2VXeG5iakV4THpNQUwz''@;'; put 'put ''SmtlV3huYmpFeEx6UUFMM0prZVd4bmJqRXhMelVBTDNKa2VXeG5iakV4THpZQUwzSmtlV3huYmpFeEx6Y0FMM0prZVd4bmJqRXhMemdBTDNKa2VXeG5iakV4THprQUwzSmtlV3huYmpNdk1RQXZjbVI1YkdkdU15OHlBQzl5Wkhsc1oyNHpMek1BTDNKa2VXeG5ialF2TVFBdmNtUjViR2R1TkM4''@;'; put 'put ''eUFDOXlaSGxzWjI0MEx6TUFMM0prZVd4bmJqUXZOQUF2Y21SNWJHZHVOUzh4QUM5eVpIbHNaMjQxTHpJQUwzSmtlV3huYmpVdk13QXZjbVI1YkdkdU5TODBBQzl5Wkhsc1oyNDFMelVBTDNKa2VXeG5iall2TVFBdmNtUjViR2R1Tmk4eUFDOXlaSGxzWjI0Mkx6TUFMM0prZVd4bmJqWXZOQUF2''@;'; put 'put ''Y21SNWJHZHVOaTgxQUM5eVpIbHNaMjQyTHpZQUwzSmtlV3huYmpjdk1RQXZjbVI1YkdkdU55OHlBQzl5Wkhsc1oyNDNMek1BTDNKa2VXeG5iamN2TkFBdmNtUjViR2R1Tnk4MUFDOXlaSGxzWjI0M0x6WUFMM0prZVd4bmJqY3ZOd0F2Y21SNWJHZHVPQzh4QUM5eVpIbHNaMjQ0THpJQUwzSmtl''@;'; put 'put ''V3huYmpndk13QXZjbVI1YkdkdU9DODBBQzl5Wkhsc1oyNDRMelVBTDNKa2VXeG5iamd2TmdBdmNtUjViR2R1T0M4M0FDOXlaSGxzWjI0NEx6Z0FMM0prZVd4bmJqa3ZNUUF2Y21SNWJHZHVPUzh5QUM5eVpIbHNaMjQ1THpNQUwzSmtlV3huYmprdk5BQXZjbVI1YkdkdU9TODFBQzl5Wkhsc1oy''@;'; put 'put ''NDVMellBTDNKa2VXeG5iamt2TndBdmNtUjViR2R1T1M4NEFDOXlaSGxzWjI0NUx6a0FMM0psWkhNekx6RUFMM0psWkhNekx6SUFMM0psWkhNekx6TUFMM0psWkhNMEx6RUFMM0psWkhNMEx6SUFMM0psWkhNMEx6TUFMM0psWkhNMEx6UUFMM0psWkhNMUx6RUFMM0psWkhNMUx6SUFMM0psWkhN''@;'; put 'put ''MUx6TUFMM0psWkhNMUx6UUFMM0psWkhNMUx6VUFMM0psWkhNMkx6RUFMM0psWkhNMkx6SUFMM0psWkhNMkx6TUFMM0psWkhNMkx6UUFMM0psWkhNMkx6VUFMM0psWkhNMkx6WUFMM0psWkhNM0x6RUFMM0psWkhNM0x6SUFMM0psWkhNM0x6TUFMM0psWkhNM0x6UUFMM0psWkhNM0x6VUFMM0ps''@;'; put 'put ''WkhNM0x6WUFMM0psWkhNM0x6Y0FMM0psWkhNNEx6RUFMM0psWkhNNEx6SUFMM0psWkhNNEx6TUFMM0psWkhNNEx6UUFMM0psWkhNNEx6VUFMM0psWkhNNEx6WUFMM0psWkhNNEx6Y0FMM0psWkhNNEx6Z0FMM0psWkhNNUx6RUFMM0psWkhNNUx6SUFMM0psWkhNNUx6TUFMM0psWkhNNUx6UUFM''@;'; put 'put ''M0psWkhNNUx6VUFMM0psWkhNNUx6WUFMM0psWkhNNUx6Y0FMM0psWkhNNUx6Z0FMM0psWkhNNUx6a0FMM05sZERFekx6RUFMM05sZERFekx6SUFMM05sZERFekx6TUFMM05sZERFMEx6RUFMM05sZERFMEx6SUFMM05sZERFMEx6TUFMM05sZERFMEx6UUFMM05sZERFMUx6RUFMM05sZERFMUx6''@;'; put 'put ''SUFMM05sZERFMUx6TUFMM05sZERFMUx6UUFMM05sZERFMUx6VUFMM05sZERFMkx6RUFMM05sZERFMkx6SUFMM05sZERFMkx6TUFMM05sZERFMkx6UUFMM05sZERFMkx6VUFMM05sZERFMkx6WUFMM05sZERFM0x6RUFMM05sZERFM0x6SUFMM05sZERFM0x6TUFMM05sZERFM0x6UUFMM05sZERF''@;'; put 'put ''M0x6VUFMM05sZERFM0x6WUFMM05sZERFM0x6Y0FMM05sZERFNEx6RUFMM05sZERFNEx6SUFMM05sZERFNEx6TUFMM05sZERFNEx6UUFMM05sZERFNEx6VUFMM05sZERFNEx6WUFMM05sZERFNEx6Y0FMM05sZERFNEx6Z0FMM05sZERFNUx6RUFMM05sZERFNUx6SUFMM05sZERFNUx6TUFMM05s''@;'; put 'put ''ZERFNUx6UUFMM05sZERFNUx6VUFMM05sZERFNUx6WUFMM05sZERFNUx6Y0FMM05sZERFNUx6Z0FMM05sZERFNUx6a0FMM05sZERJekx6RUFMM05sZERJekx6SUFMM05sZERJekx6TUFMM05sZERJMEx6RUFMM05sZERJMEx6SUFMM05sZERJMEx6TUFMM05sZERJMEx6UUFMM05sZERJMUx6RUFM''@;'; put 'put ''M05sZERJMUx6SUFMM05sZERJMUx6TUFMM05sZERJMUx6UUFMM05sZERJMUx6VUFMM05sZERJMkx6RUFMM05sZERJMkx6SUFMM05sZERJMkx6TUFMM05sZERJMkx6UUFMM05sZERJMkx6VUFMM05sZERJMkx6WUFMM05sZERJM0x6RUFMM05sZERJM0x6SUFMM05sZERJM0x6TUFMM05sZERJM0x6''@;'; put 'put ''UUFMM05sZERJM0x6VUFMM05sZERJM0x6WUFMM05sZERJM0x6Y0FMM05sZERJNEx6RUFMM05sZERJNEx6SUFMM05sZERJNEx6TUFMM05sZERJNEx6UUFMM05sZERJNEx6VUFMM05sZERJNEx6WUFMM05sZERJNEx6Y0FMM05sZERJNEx6Z0FMM05sZERNeE1DOHhBQzl6WlhRek1UQXZNVEFBTDNO''@;'; put 'put ''bGRETXhNQzh5QUM5elpYUXpNVEF2TXdBdmMyVjBNekV3THpRQUwzTmxkRE14TUM4MUFDOXpaWFF6TVRBdk5nQXZjMlYwTXpFd0x6Y0FMM05sZERNeE1DODRBQzl6WlhRek1UQXZPUUF2YzJWME16RXhMekVBTDNObGRETXhNUzh4TUFBdmMyVjBNekV4THpFeEFDOXpaWFF6TVRFdk1nQXZjMlYw''@;'; put 'put ''TXpFeEx6TUFMM05sZERNeE1TODBBQzl6WlhRek1URXZOUUF2YzJWME16RXhMellBTDNObGRETXhNUzgzQUM5elpYUXpNVEV2T0FBdmMyVjBNekV4THprQUwzTmxkRE14TWk4eEFDOXpaWFF6TVRJdk1UQUFMM05sZERNeE1pOHhNUUF2YzJWME16RXlMekV5QUM5elpYUXpNVEl2TWdBdmMyVjBN''@;'; put 'put ''ekV5THpNQUwzTmxkRE14TWk4MEFDOXpaWFF6TVRJdk5RQXZjMlYwTXpFeUx6WUFMM05sZERNeE1pODNBQzl6WlhRek1USXZPQUF2YzJWME16RXlMemtBTDNObGRETXpMekVBTDNObGRETXpMeklBTDNObGRETXpMek1BTDNObGRETTBMekVBTDNObGRETTBMeklBTDNObGRETTBMek1BTDNObGRE''@;'; put 'put ''TTBMelFBTDNObGRETTFMekVBTDNObGRETTFMeklBTDNObGRETTFMek1BTDNObGRETTFMelFBTDNObGRETTFMelVBTDNObGRETTJMekVBTDNObGRETTJMeklBTDNObGRETTJMek1BTDNObGRETTJMelFBTDNObGRETTJMelVBTDNObGRETTJMellBTDNObGRETTNMekVBTDNObGRETTNMeklBTDNO''@;'; put 'put ''bGRETTNMek1BTDNObGRETTNMelFBTDNObGRETTNMelVBTDNObGRETTNMellBTDNObGRETTNMemNBTDNObGRETTRMekVBTDNObGRETTRMeklBTDNObGRETTRMek1BTDNObGRETTRMelFBTDNObGRETTRMelVBTDNObGRETTRMellBTDNObGRETTRMemNBTDNObGRETTRMemdBTDNObGRETTVMekVB''@;'; put 'put ''TDNObGRETTVMeklBTDNObGRETTVMek1BTDNObGRETTVMelFBTDNObGRETTVMelVBTDNObGRETTVMellBTDNObGRETTVMemNBTDNObGRETTVMemdBTDNObGRETTVMemtBTDNOd1pXTjBjbUZzTVRBdk1RQXZjM0JsWTNSeVlXd3hNQzh4TUFBdmMzQmxZM1J5WVd3eE1DOHlBQzl6Y0dWamRISmhi''@;'; put 'put ''REV3THpNQUwzTndaV04wY21Gc01UQXZOQUF2YzNCbFkzUnlZV3d4TUM4MUFDOXpjR1ZqZEhKaGJERXdMellBTDNOd1pXTjBjbUZzTVRBdk53QXZjM0JsWTNSeVlXd3hNQzg0QUM5emNHVmpkSEpoYkRFd0x6a0FMM053WldOMGNtRnNNVEV2TVFBdmMzQmxZM1J5WVd3eE1TOHhNQUF2YzNCbFkz''@;'; put 'put ''UnlZV3d4TVM4eE1RQXZjM0JsWTNSeVlXd3hNUzh5QUM5emNHVmpkSEpoYkRFeEx6TUFMM053WldOMGNtRnNNVEV2TkFBdmMzQmxZM1J5WVd3eE1TODFBQzl6Y0dWamRISmhiREV4THpZQUwzTndaV04wY21Gc01URXZOd0F2YzNCbFkzUnlZV3d4TVM4NEFDOXpjR1ZqZEhKaGJERXhMemtBTDNO''@;'; put 'put ''d1pXTjBjbUZzTXk4eEFDOXpjR1ZqZEhKaGJETXZNZ0F2YzNCbFkzUnlZV3d6THpNQUwzTndaV04wY21Gc05DOHhBQzl6Y0dWamRISmhiRFF2TWdBdmMzQmxZM1J5WVd3MEx6TUFMM053WldOMGNtRnNOQzgwQUM5emNHVmpkSEpoYkRVdk1RQXZjM0JsWTNSeVlXdzFMeklBTDNOd1pXTjBjbUZz''@;'; put 'put ''TlM4ekFDOXpjR1ZqZEhKaGJEVXZOQUF2YzNCbFkzUnlZV3cxTHpVQUwzTndaV04wY21Gc05pOHhBQzl6Y0dWamRISmhiRFl2TWdBdmMzQmxZM1J5WVd3Mkx6TUFMM053WldOMGNtRnNOaTgwQUM5emNHVmpkSEpoYkRZdk5RQXZjM0JsWTNSeVlXdzJMellBTDNOd1pXTjBjbUZzTnk4eEFDOXpj''@;'; put 'put ''R1ZqZEhKaGJEY3ZNZ0F2YzNCbFkzUnlZV3czTHpNQUwzTndaV04wY21Gc055ODBBQzl6Y0dWamRISmhiRGN2TlFBdmMzQmxZM1J5WVd3M0x6WUFMM053WldOMGNtRnNOeTgzQUM5emNHVmpkSEpoYkRndk1RQXZjM0JsWTNSeVlXdzRMeklBTDNOd1pXTjBjbUZzT0M4ekFDOXpjR1ZqZEhKaGJE''@;'; put 'put ''Z3ZOQUF2YzNCbFkzUnlZV3c0THpVQUwzTndaV04wY21Gc09DODJBQzl6Y0dWamRISmhiRGd2TndBdmMzQmxZM1J5WVd3NEx6Z0FMM053WldOMGNtRnNPUzh4QUM5emNHVmpkSEpoYkRrdk1nQXZjM0JsWTNSeVlXdzVMek1BTDNOd1pXTjBjbUZzT1M4MEFDOXpjR1ZqZEhKaGJEa3ZOUUF2YzNC''@;'; put 'put ''bFkzUnlZV3c1THpZQUwzTndaV04wY21Gc09TODNBQzl6Y0dWamRISmhiRGt2T0FBdmMzQmxZM1J5WVd3NUx6a0FMM04yWnk5aGJHbGpaV0pzZFdVQUwzTjJaeTloYm5ScGNYVmxkMmhwZEdVQUwzTjJaeTloY1hWaEFDOXpkbWN2WVhGMVlXMWhjbWx1WlFBdmMzWm5MMkY2ZFhKbEFDOXpkbWN2''@;'; put 'put ''WW1WcFoyVUFMM04yWnk5aWFYTnhkV1VBTDNOMlp5OWliR0ZqYXdBdmMzWm5MMkpzWVc1amFHVmtZV3h0YjI1a0FDOXpkbWN2WW14MVpRQXZjM1puTDJKc2RXVjJhVzlzWlhRQUwzTjJaeTlpY205M2JnQXZjM1puTDJKMWNteDVkMjl2WkFBdmMzWm5MMk5oWkdWMFlteDFaUUF2YzNabkwyTm9Z''@;'; put 'put ''WEowY21WMWMyVUFMM04yWnk5amFHOWpiMnhoZEdVQUwzTjJaeTlqYjNKaGJBQXZjM1puTDJOdmNtNW1iRzkzWlhKaWJIVmxBQzl6ZG1jdlkyOXlibk5wYkdzQUwzTjJaeTlqY21sdGMyOXVBQzl6ZG1jdlkzbGhiZ0F2YzNabkwyUmhjbXRpYkhWbEFDOXpkbWN2WkdGeWEyTjVZVzRBTDNOMlp5''@;'; put 'put ''OWtZWEpyWjI5c1pHVnVjbTlrQUM5emRtY3ZaR0Z5YTJkeVlYa0FMM04yWnk5a1lYSnJaM0psWlc0QUwzTjJaeTlrWVhKclozSmxlUUF2YzNabkwyUmhjbXRyYUdGcmFRQXZjM1puTDJSaGNtdHRZV2RsYm5SaEFDOXpkbWN2WkdGeWEyOXNhWFpsWjNKbFpXNEFMM04yWnk5a1lYSnJiM0poYm1k''@;'; put 'put ''bEFDOXpkbWN2WkdGeWEyOXlZMmhwWkFBdmMzWm5MMlJoY210eVpXUUFMM04yWnk5a1lYSnJjMkZzYlc5dUFDOXpkbWN2WkdGeWEzTmxZV2R5WldWdUFDOXpkbWN2WkdGeWEzTnNZWFJsWW14MVpRQXZjM1puTDJSaGNtdHpiR0YwWldkeVlYa0FMM04yWnk5a1lYSnJjMnhoZEdWbmNtVjVBQzl6''@;'; put 'put ''ZG1jdlpHRnlhM1IxY25GMWIybHpaUUF2YzNabkwyUmhjbXQyYVc5c1pYUUFMM04yWnk5a1pXVndjR2x1YXdBdmMzWm5MMlJsWlhCemEzbGliSFZsQUM5emRtY3ZaR2x0WjNKaGVRQXZjM1puTDJScGJXZHlaWGtBTDNOMlp5OWtiMlJuWlhKaWJIVmxBQzl6ZG1jdlptbHlaV0p5YVdOckFDOXpk''@;'; put 'put ''bWN2Wm14dmNtRnNkMmhwZEdVQUwzTjJaeTltYjNKbGMzUm5jbVZsYmdBdmMzWm5MMloxWTJoemFXRUFMM04yWnk5bllXbHVjMkp2Y204QUwzTjJaeTluYUc5emRIZG9hWFJsQUM5emRtY3ZaMjlzWkFBdmMzWm5MMmR2YkdSbGJuSnZaQUF2YzNabkwyZHlZWGtBTDNOMlp5OW5jbVZsYmdBdmMz''@;'; put 'put ''Wm5MMmR5WldWdWVXVnNiRzkzQUM5emRtY3ZaM0psZVFBdmMzWm5MMmh2Ym1WNVpHVjNBQzl6ZG1jdmFHOTBjR2x1YXdBdmMzWm5MMmx1WkdsaGJuSmxaQUF2YzNabkwybHVaR2xuYndBdmMzWm5MMmwyYjNKNUFDOXpkbWN2YTJoaGEya0FMM04yWnk5c1lYWmxibVJsY2dBdmMzWm5MMnhoZG1W''@;'; put 'put ''dVpHVnlZbXgxYzJnQUwzTjJaeTlzWVhkdVozSmxaVzRBTDNOMlp5OXNaVzF2Ym1Ob2FXWm1iMjRBTDNOMlp5OXNhV2RvZEdKc2RXVUFMM04yWnk5c2FXZG9kR052Y21Gc0FDOXpkbWN2YkdsbmFIUmplV0Z1QUM5emRtY3ZiR2xuYUhSbmIyeGtaVzV5YjJSNVpXeHNiM2NBTDNOMlp5OXNhV2Rv''@;'; put 'put ''ZEdkeVlYa0FMM04yWnk5c2FXZG9kR2R5WldWdUFDOXpkbWN2YkdsbmFIUm5jbVY1QUM5emRtY3ZiR2xuYUhSd2FXNXJBQzl6ZG1jdmJHbG5hSFJ6WVd4dGIyNEFMM04yWnk5c2FXZG9kSE5sWVdkeVpXVnVBQzl6ZG1jdmJHbG5hSFJ6YTNsaWJIVmxBQzl6ZG1jdmJHbG5hSFJ6YkdGMFpXZHlZ''@;'; put 'put ''WGtBTDNOMlp5OXNhV2RvZEhOc1lYUmxaM0psZVFBdmMzWm5MMnhwWjJoMGMzUmxaV3hpYkhWbEFDOXpkbWN2YkdsbmFIUjVaV3hzYjNjQUwzTjJaeTlzYVcxbEFDOXpkbWN2YkdsdFpXZHlaV1Z1QUM5emRtY3ZiR2x1Wlc0QUwzTjJaeTl0WVdkbGJuUmhBQzl6ZG1jdmJXRnliMjl1QUM5emRt''@;'; put 'put ''Y3ZiV1ZrYVhWdFlYRjFZVzFoY21sdVpRQXZjM1puTDIxbFpHbDFiV0pzZFdVQUwzTjJaeTl0WldScGRXMXZjbU5vYVdRQUwzTjJaeTl0WldScGRXMXdkWEp3YkdVQUwzTjJaeTl0WldScGRXMXpaV0ZuY21WbGJnQXZjM1puTDIxbFpHbDFiWE5zWVhSbFlteDFaUUF2YzNabkwyMWxaR2wxYlhO''@;'; put 'put ''d2NtbHVaMmR5WldWdUFDOXpkbWN2YldWa2FYVnRkSFZ5Y1hWdmFYTmxBQzl6ZG1jdmJXVmthWFZ0ZG1sdmJHVjBjbVZrQUM5emRtY3ZiV2xrYm1sbmFIUmliSFZsQUM5emRtY3ZiV2x1ZEdOeVpXRnRBQzl6ZG1jdmJXbHpkSGx5YjNObEFDOXpkbWN2Ylc5alkyRnphVzRBTDNOMlp5OXVZWFpo''@;'; put 'put ''YW05M2FHbDBaUUF2YzNabkwyNWhkbmtBTDNOMlp5OXZiR1JzWVdObEFDOXpkbWN2YjJ4cGRtVUFMM04yWnk5dmJHbDJaV1J5WVdJQUwzTjJaeTl2Y21GdVoyVUFMM04yWnk5dmNtRnVaMlZ5WldRQUwzTjJaeTl2Y21Ob2FXUUFMM04yWnk5d1lXeGxaMjlzWkdWdWNtOWtBQzl6ZG1jdmNHRnNa''@;'; put 'put ''V2R5WldWdUFDOXpkbWN2Y0dGc1pYUjFjbkYxYjJselpRQXZjM1puTDNCaGJHVjJhVzlzWlhSeVpXUUFMM04yWnk5d1lYQmhlV0YzYUdsd0FDOXpkbWN2Y0dWaFkyaHdkV1ptQUM5emRtY3ZjR1Z5ZFFBdmMzWm5MM0JwYm1zQUwzTjJaeTl3YkhWdEFDOXpkbWN2Y0c5M1pHVnlZbXgxWlFBdmMz''@;'; put 'put ''Wm5MM0IxY25Cc1pRQXZjM1puTDNKbFpBQXZjM1puTDNKdmMzbGljbTkzYmdBdmMzWm5MM0p2ZVdGc1lteDFaUUF2YzNabkwzTmhaR1JzWldKeWIzZHVBQzl6ZG1jdmMyRnNiVzl1QUM5emRtY3ZjMkZ1WkhsaWNtOTNiZ0F2YzNabkwzTmxZV2R5WldWdUFDOXpkbWN2YzJWaGMyaGxiR3dBTDNO''@;'; put 'put ''Mlp5OXphV1Z1Ym1FQUwzTjJaeTl6YVd4MlpYSUFMM04yWnk5emEzbGliSFZsQUM5emRtY3ZjMnhoZEdWaWJIVmxBQzl6ZG1jdmMyeGhkR1ZuY21GNUFDOXpkbWN2YzJ4aGRHVm5jbVY1QUM5emRtY3ZjMjV2ZHdBdmMzWm5MM053Y21sdVoyZHlaV1Z1QUM5emRtY3ZjM1JsWld4aWJIVmxBQzl6''@;'; put 'put ''ZG1jdmRHRnVBQzl6ZG1jdmRHVmhiQUF2YzNabkwzUm9hWE4wYkdVQUwzTjJaeTkwYjIxaGRHOEFMM04yWnk5MGRYSnhkVzlwYzJVQUwzTjJaeTkyYVc5c1pYUUFMM04yWnk5M2FHVmhkQUF2YzNabkwzZG9hWFJsQUM5emRtY3ZkMmhwZEdWemJXOXJaUUF2YzNabkwzbGxiR3h2ZHdBdmMzWm5M''@;'; put 'put ''M2xsYkd4dmQyZHlaV1Z1QUM5NWJHZHVNeTh4QUM5NWJHZHVNeTh5QUM5NWJHZHVNeTh6QUM5NWJHZHVOQzh4QUM5NWJHZHVOQzh5QUM5NWJHZHVOQzh6QUM5NWJHZHVOQzgwQUM5NWJHZHVOUzh4QUM5NWJHZHVOUzh5QUM5NWJHZHVOUzh6QUM5NWJHZHVOUzgwQUM5NWJHZHVOUzgxQUM5NWJH''@;'; put 'put ''ZHVOaTh4QUM5NWJHZHVOaTh5QUM5NWJHZHVOaTh6QUM5NWJHZHVOaTgwQUM5NWJHZHVOaTgxQUM5NWJHZHVOaTgyQUM5NWJHZHVOeTh4QUM5NWJHZHVOeTh5QUM5NWJHZHVOeTh6QUM5NWJHZHVOeTgwQUM5NWJHZHVOeTgxQUM5NWJHZHVOeTgyQUM5NWJHZHVOeTgzQUM5NWJHZHVPQzh4QUM5''@;'; put 'put ''NWJHZHVPQzh5QUM5NWJHZHVPQzh6QUM5NWJHZHVPQzgwQUM5NWJHZHVPQzgxQUM5NWJHZHVPQzgyQUM5NWJHZHVPQzgzQUM5NWJHZHVPQzg0QUM5NWJHZHVPUzh4QUM5NWJHZHVPUzh5QUM5NWJHZHVPUzh6QUM5NWJHZHVPUzgwQUM5NWJHZHVPUzgxQUM5NWJHZHVPUzgyQUM5NWJHZHVPUzgz''@;'; put 'put ''QUM5NWJHZHVPUzg0QUM5NWJHZHVPUzg1QUM5NWJHZHVZblV6THpFQUwzbHNaMjVpZFRNdk1nQXZlV3huYm1KMU15OHpBQzk1YkdkdVluVTBMekVBTDNsc1oyNWlkVFF2TWdBdmVXeG5ibUoxTkM4ekFDOTViR2R1WW5VMEx6UUFMM2xzWjI1aWRUVXZNUUF2ZVd4bmJtSjFOUzh5QUM5NWJHZHVZ''@;'; put 'put ''blUxTHpNQUwzbHNaMjVpZFRVdk5BQXZlV3huYm1KMU5TODFBQzk1YkdkdVluVTJMekVBTDNsc1oyNWlkVFl2TWdBdmVXeG5ibUoxTmk4ekFDOTViR2R1WW5VMkx6UUFMM2xzWjI1aWRUWXZOUUF2ZVd4bmJtSjFOaTgyQUM5NWJHZHVZblUzTHpFQUwzbHNaMjVpZFRjdk1nQXZlV3huYm1KMU55''@;'; put 'put ''OHpBQzk1YkdkdVluVTNMelFBTDNsc1oyNWlkVGN2TlFBdmVXeG5ibUoxTnk4MkFDOTViR2R1WW5VM0x6Y0FMM2xzWjI1aWRUZ3ZNUUF2ZVd4bmJtSjFPQzh5QUM5NWJHZHVZblU0THpNQUwzbHNaMjVpZFRndk5BQXZlV3huYm1KMU9DODFBQzk1YkdkdVluVTRMellBTDNsc1oyNWlkVGd2TndB''@;'; put 'put ''dmVXeG5ibUoxT0M4NEFDOTViR2R1WW5VNUx6RUFMM2xzWjI1aWRUa3ZNZ0F2ZVd4bmJtSjFPUzh6QUM5NWJHZHVZblU1THpRQUwzbHNaMjVpZFRrdk5RQXZlV3huYm1KMU9TODJBQzk1YkdkdVluVTVMemNBTDNsc1oyNWlkVGt2T0FBdmVXeG5ibUoxT1M4NUFDOTViRzl5WW5Jekx6RUFMM2xz''@;'; put 'put ''YjNKaWNqTXZNZ0F2ZVd4dmNtSnlNeTh6QUM5NWJHOXlZbkkwTHpFQUwzbHNiM0ppY2pRdk1nQXZlV3h2Y21KeU5DOHpBQzk1Ykc5eVluSTBMelFBTDNsc2IzSmljalV2TVFBdmVXeHZjbUp5TlM4eUFDOTViRzl5WW5JMUx6TUFMM2xzYjNKaWNqVXZOQUF2ZVd4dmNtSnlOUzgxQUM5NWJHOXlZ''@;'; put 'put ''bkkyTHpFQUwzbHNiM0ppY2pZdk1nQXZlV3h2Y21KeU5pOHpBQzk1Ykc5eVluSTJMelFBTDNsc2IzSmljall2TlFBdmVXeHZjbUp5Tmk4MkFDOTViRzl5WW5JM0x6RUFMM2xzYjNKaWNqY3ZNZ0F2ZVd4dmNtSnlOeTh6QUM5NWJHOXlZbkkzTHpRQUwzbHNiM0ppY2pjdk5RQXZlV3h2Y21KeU55''@;'; put 'put ''ODJBQzk1Ykc5eVluSTNMemNBTDNsc2IzSmljamd2TVFBdmVXeHZjbUp5T0M4eUFDOTViRzl5WW5JNEx6TUFMM2xzYjNKaWNqZ3ZOQUF2ZVd4dmNtSnlPQzgxQUM5NWJHOXlZbkk0THpZQUwzbHNiM0ppY2pndk53QXZlV3h2Y21KeU9DODRBQzk1Ykc5eVluSTVMekVBTDNsc2IzSmljamt2TWdB''@;'; put 'put ''dmVXeHZjbUp5T1M4ekFDOTViRzl5WW5JNUx6UUFMM2xzYjNKaWNqa3ZOUUF2ZVd4dmNtSnlPUzgyQUM5NWJHOXlZbkk1THpjQUwzbHNiM0ppY2prdk9BQXZlV3h2Y21KeU9TODVBQzk1Ykc5eWNtUXpMekVBTDNsc2IzSnlaRE12TWdBdmVXeHZjbkprTXk4ekFDOTViRzl5Y21RMEx6RUFMM2xz''@;'; put 'put ''YjNKeVpEUXZNZ0F2ZVd4dmNuSmtOQzh6QUM5NWJHOXljbVEwTHpRQUwzbHNiM0p5WkRVdk1RQXZlV3h2Y25Ka05TOHlBQzk1Ykc5eWNtUTFMek1BTDNsc2IzSnlaRFV2TkFBdmVXeHZjbkprTlM4MUFDOTViRzl5Y21RMkx6RUFMM2xzYjNKeVpEWXZNZ0F2ZVd4dmNuSmtOaTh6QUM5NWJHOXlj''@;'; put 'put ''bVEyTHpRQUwzbHNiM0p5WkRZdk5RQXZlV3h2Y25Ka05pODJBQzk1Ykc5eWNtUTNMekVBTDNsc2IzSnlaRGN2TWdBdmVXeHZjbkprTnk4ekFDOTViRzl5Y21RM0x6UUFMM2xzYjNKeVpEY3ZOUUF2ZVd4dmNuSmtOeTgyQUM5NWJHOXljbVEzTHpjQUwzbHNiM0p5WkRndk1RQXZlV3h2Y25Ka09D''@;'; put 'put ''OHlBQzk1Ykc5eWNtUTRMek1BTDNsc2IzSnlaRGd2TkFBdmVXeHZjbkprT0M4MUFDOTViRzl5Y21RNEx6WUFMM2xzYjNKeVpEZ3ZOd0F2ZVd4dmNuSmtPQzg0QUM5NWJHOXljbVE1THpFQUwzbHNiM0p5WkRrdk1nQXZlV3h2Y25Ka09TOHpBQzk1Ykc5eWNtUTVMelFBTDNsc2IzSnlaRGt2TlFB''@;'; put 'put ''dmVXeHZjbkprT1M4MkFDOTViRzl5Y21RNUx6Y0FMM2xzYjNKeVpEa3ZPQUF2ZVd4dmNuSmtPUzg1QUdGc2FXTmxZbXgxWlFCaGJuUnBjWFZsZDJocGRHVUFZVzUwYVhGMVpYZG9hWFJsTVFCaGJuUnBjWFZsZDJocGRHVXlBR0Z1ZEdseGRXVjNhR2wwWlRNQVlXNTBhWEYxWlhkb2FYUmxOQUJo''@;'; put 'put ''Y1hWaGJXRnlhVzVsQUdGeGRXRnRZWEpwYm1VeEFHRnhkV0Z0WVhKcGJtVXlBR0Z4ZFdGdFlYSnBibVV6QUdGeGRXRnRZWEpwYm1VMEFHRjZkWEpsQUdGNmRYSmxNUUJoZW5WeVpUSUFZWHAxY21VekFHRjZkWEpsTkFCaVpXbG5aUUJpYVhOeGRXVUFZbWx6Y1hWbE1RQmlhWE54ZFdVeUFHSnBj''@;'; put 'put ''M0YxWlRNQVltbHpjWFZsTkFCaWJHRnVZMmhsWkdGc2JXOXVaQUJpYkhWbEFHSnNkV1V4QUdKc2RXVXlBR0pzZFdVekFHSnNkV1UwQUdKc2RXVjJhVzlzWlhRQVluSnZkMjRBWW5KdmQyNHhBR0p5YjNkdU1nQmljbTkzYmpNQVluSnZkMjQwQUdKMWNteDVkMjl2WkFCaWRYSnNlWGR2YjJReEFH''@;'; put 'put ''SjFjbXg1ZDI5dlpESUFZblZ5YkhsM2IyOWtNd0JpZFhKc2VYZHZiMlEwQUdOaFpHVjBZbXgxWlFCallXUmxkR0pzZFdVeEFHTmhaR1YwWW14MVpUSUFZMkZrWlhSaWJIVmxNd0JqWVdSbGRHSnNkV1UwQUdOb1lYSjBjbVYxYzJVQVkyaGhjblJ5WlhWelpURUFZMmhoY25SeVpYVnpaVElBWTJo''@;'; put 'put ''aGNuUnlaWFZ6WlRNQVkyaGhjblJ5WlhWelpUUUFZMmh2WTI5c1lYUmxBR05vYjJOdmJHRjBaVEVBWTJodlkyOXNZWFJsTWdCamFHOWpiMnhoZEdVekFHTm9iMk52YkdGMFpUUUFZMjl5WVd3QVkyOXlZV3d4QUdOdmNtRnNNZ0JqYjNKaGJETUFZMjl5WVd3MEFHTnZjbTVtYkc5M1pYSmliSFZs''@;'; put 'put ''QUdOdmNtNXphV3hyQUdOdmNtNXphV3hyTVFCamIzSnVjMmxzYXpJQVkyOXlibk5wYkdzekFHTnZjbTV6YVd4ck5BQmpjbWx0YzI5dUFHTjVZVzRBWTNsaGJqRUFZM2xoYmpJQVkzbGhiak1BWTNsaGJqUUFaR0Z5YTJkdmJHUmxibkp2WkFCa1lYSnJaMjlzWkdWdWNtOWtNUUJrWVhKcloyOXNa''@;'; put 'put ''R1Z1Y205a01nQmtZWEpyWjI5c1pHVnVjbTlrTXdCa1lYSnJaMjlzWkdWdWNtOWtOQUJrWVhKclozSmxaVzRBWkdGeWEydG9ZV3RwQUdSaGNtdHZiR2wyWldkeVpXVnVBR1JoY210dmJHbDJaV2R5WldWdU1RQmtZWEpyYjJ4cGRtVm5jbVZsYmpJQVpHRnlhMjlzYVhabFozSmxaVzR6QUdSaGNt''@;'; put 'put ''dHZiR2wyWldkeVpXVnVOQUJrWVhKcmIzSmhibWRsQUdSaGNtdHZjbUZ1WjJVeEFHUmhjbXR2Y21GdVoyVXlBR1JoY210dmNtRnVaMlV6QUdSaGNtdHZjbUZ1WjJVMEFHUmhjbXR2Y21Ob2FXUUFaR0Z5YTI5eVkyaHBaREVBWkdGeWEyOXlZMmhwWkRJQVpHRnlhMjl5WTJocFpETUFaR0Z5YTI5''@;'; put 'put ''eVkyaHBaRFFBWkdGeWEzTmhiRzF2YmdCa1lYSnJjMlZoWjNKbFpXNEFaR0Z5YTNObFlXZHlaV1Z1TVFCa1lYSnJjMlZoWjNKbFpXNHlBR1JoY210elpXRm5jbVZsYmpNQVpHRnlhM05sWVdkeVpXVnVOQUJrWVhKcmMyeGhkR1ZpYkhWbEFHUmhjbXR6YkdGMFpXZHlZWGtBWkdGeWEzTnNZWFJs''@;'; put 'put ''WjNKaGVURUFaR0Z5YTNOc1lYUmxaM0poZVRJQVpHRnlhM05zWVhSbFozSmhlVE1BWkdGeWEzTnNZWFJsWjNKaGVUUUFaR0Z5YTNOc1lYUmxaM0psZVFCa1lYSnJkSFZ5Y1hWdmFYTmxBR1JoY210MmFXOXNaWFFBWkdWbGNIQnBibXNBWkdWbGNIQnBibXN4QUdSbFpYQndhVzVyTWdCa1pXVndj''@;'; put 'put ''R2x1YXpNQVpHVmxjSEJwYm1zMEFHUmxaWEJ6YTNsaWJIVmxBR1JsWlhCemEzbGliSFZsTVFCa1pXVndjMnQ1WW14MVpUSUFaR1ZsY0hOcmVXSnNkV1V6QUdSbFpYQnphM2xpYkhWbE5BQmthVzFuY21GNUFHUnBiV2R5WlhrQVpHOWtaMlZ5WW14MVpRQmtiMlJuWlhKaWJIVmxNUUJrYjJSblpY''@;'; put 'put ''SmliSFZsTWdCa2IyUm5aWEppYkhWbE13QmtiMlJuWlhKaWJIVmxOQUJtYVhKbFluSnBZMnNBWm1seVpXSnlhV05yTVFCbWFYSmxZbkpwWTJzeUFHWnBjbVZpY21samF6TUFabWx5WldKeWFXTnJOQUJtYkc5eVlXeDNhR2wwWlFCbWIzSmxjM1JuY21WbGJnQm5ZV2x1YzJKdmNtOEFaMmh2YzNS''@;'; put 'put ''M2FHbDBaUUJuYjJ4a0FHZHZiR1F4QUdkdmJHUXlBR2R2YkdRekFHZHZiR1EwQUdkdmJHUmxibkp2WkFCbmIyeGtaVzV5YjJReEFHZHZiR1JsYm5KdlpESUFaMjlzWkdWdWNtOWtNd0JuYjJ4a1pXNXliMlEwQUdkeVlYa0FaM0poZVRBQVozSmhlVEVBWjNKaGVURXdBR2R5WVhreE1EQUFaM0po''@;'; put 'put ''ZVRFeEFHZHlZWGt4TWdCbmNtRjVNVE1BWjNKaGVURTBBR2R5WVhreE5RQm5jbUY1TVRZQVozSmhlVEUzQUdkeVlYa3hPQUJuY21GNU1Ua0FaM0poZVRJQVozSmhlVEl3QUdkeVlYa3lNUUJuY21GNU1qSUFaM0poZVRJekFHZHlZWGt5TkFCbmNtRjVNalVBWjNKaGVUSTJBR2R5WVhreU53Qm5j''@;'; put 'put ''bUY1TWpnQVozSmhlVEk1QUdkeVlYa3pBR2R5WVhrek1BQm5jbUY1TXpFQVozSmhlVE15QUdkeVlYa3pNd0JuY21GNU16UUFaM0poZVRNMUFHZHlZWGt6TmdCbmNtRjVNemNBWjNKaGVUTTRBR2R5WVhrek9RQm5jbUY1TkFCbmNtRjVOREFBWjNKaGVUUXhBR2R5WVhrME1nQm5jbUY1TkRNQVoz''@;'; put 'put ''SmhlVFEwQUdkeVlYazBOUUJuY21GNU5EWUFaM0poZVRRM0FHZHlZWGswT0FCbmNtRjVORGtBWjNKaGVUVUFaM0poZVRVd0FHZHlZWGsxTVFCbmNtRjVOVElBWjNKaGVUVXpBR2R5WVhrMU5BQm5jbUY1TlRVQVozSmhlVFUyQUdkeVlYazFOd0JuY21GNU5UZ0FaM0poZVRVNUFHZHlZWGsyQUdk''@;'; put 'put ''eVlYazJNQUJuY21GNU5qRUFaM0poZVRZeUFHZHlZWGsyTXdCbmNtRjVOalFBWjNKaGVUWTFBR2R5WVhrMk5nQm5jbUY1TmpjQVozSmhlVFk0QUdkeVlYazJPUUJuY21GNU53Qm5jbUY1TnpBQVozSmhlVGN4QUdkeVlYazNNZ0JuY21GNU56TUFaM0poZVRjMEFHZHlZWGszTlFCbmNtRjVOellB''@;'; put 'put ''WjNKaGVUYzNBR2R5WVhrM09BQm5jbUY1TnprQVozSmhlVGdBWjNKaGVUZ3dBR2R5WVhrNE1RQm5jbUY1T0RJQVozSmhlVGd6QUdkeVlYazROQUJuY21GNU9EVUFaM0poZVRnMkFHZHlZWGs0TndCbmNtRjVPRGdBWjNKaGVUZzVBR2R5WVhrNUFHZHlZWGs1TUFCbmNtRjVPVEVBWjNKaGVUa3lB''@;'; put 'put ''R2R5WVhrNU13Qm5jbUY1T1RRQVozSmhlVGsxQUdkeVlYazVOZ0JuY21GNU9UY0FaM0poZVRrNEFHZHlZWGs1T1FCbmNtVmxiZ0JuY21WbGJqRUFaM0psWlc0eUFHZHlaV1Z1TXdCbmNtVmxialFBWjNKbFpXNTVaV3hzYjNjQVozSmxlUUJuY21WNU1BQm5jbVY1TVFCbmNtVjVNVEFBWjNKbGVU''@;'; put 'put ''RXdNQUJuY21WNU1URUFaM0psZVRFeUFHZHlaWGt4TXdCbmNtVjVNVFFBWjNKbGVURTFBR2R5WlhreE5nQm5jbVY1TVRjQVozSmxlVEU0QUdkeVpYa3hPUUJuY21WNU1nQm5jbVY1TWpBQVozSmxlVEl4QUdkeVpYa3lNZ0JuY21WNU1qTUFaM0psZVRJMEFHZHlaWGt5TlFCbmNtVjVNallBWjNK''@;'; put 'put ''bGVUSTNBR2R5WlhreU9BQm5jbVY1TWprQVozSmxlVE1BWjNKbGVUTXdBR2R5Wlhrek1RQm5jbVY1TXpJQVozSmxlVE16QUdkeVpYa3pOQUJuY21WNU16VUFaM0psZVRNMkFHZHlaWGt6TndCbmNtVjVNemdBWjNKbGVUTTVBR2R5WlhrMEFHZHlaWGswTUFCbmNtVjVOREVBWjNKbGVUUXlBR2R5''@;'; put 'put ''WlhrME13Qm5jbVY1TkRRQVozSmxlVFExQUdkeVpYazBOZ0JuY21WNU5EY0FaM0psZVRRNEFHZHlaWGswT1FCbmNtVjVOUUJuY21WNU5UQUFaM0psZVRVeEFHZHlaWGsxTWdCbmNtVjVOVE1BWjNKbGVUVTBBR2R5WlhrMU5RQm5jbVY1TlRZQVozSmxlVFUzQUdkeVpYazFPQUJuY21WNU5Ua0Fa''@;'; put 'put ''M0psZVRZQVozSmxlVFl3QUdkeVpYazJNUUJuY21WNU5qSUFaM0psZVRZekFHZHlaWGsyTkFCbmNtVjVOalVBWjNKbGVUWTJBR2R5WlhrMk53Qm5jbVY1TmpnQVozSmxlVFk1QUdkeVpYazNBR2R5WlhrM01BQm5jbVY1TnpFQVozSmxlVGN5QUdkeVpYazNNd0JuY21WNU56UUFaM0psZVRjMUFH''@;'; put 'put ''ZHlaWGszTmdCbmNtVjVOemNBWjNKbGVUYzRBR2R5WlhrM09RQm5jbVY1T0FCbmNtVjVPREFBWjNKbGVUZ3hBR2R5WlhrNE1nQm5jbVY1T0RNQVozSmxlVGcwQUdkeVpYazROUUJuY21WNU9EWUFaM0psZVRnM0FHZHlaWGs0T0FCbmNtVjVPRGtBWjNKbGVUa0FaM0psZVRrd0FHZHlaWGs1TVFC''@;'; put 'put ''bmNtVjVPVElBWjNKbGVUa3pBR2R5WlhrNU5BQm5jbVY1T1RVQVozSmxlVGsyQUdkeVpYazVOd0JuY21WNU9UZ0FaM0psZVRrNUFHaHZibVY1WkdWM0FHaHZibVY1WkdWM01RQm9iMjVsZVdSbGR6SUFhRzl1Wlhsa1pYY3pBR2h2Ym1WNVpHVjNOQUJvYjNSd2FXNXJBR2h2ZEhCcGJtc3hBR2h2''@;'; put 'put ''ZEhCcGJtc3lBR2h2ZEhCcGJtc3pBR2h2ZEhCcGJtczBBR2x1WkdsaGJuSmxaQUJwYm1ScFlXNXlaV1F4QUdsdVpHbGhibkpsWkRJQWFXNWthV0Z1Y21Wa013QnBibVJwWVc1eVpXUTBBR2x1WkdsbmJ3QnBiblpwY3dCcGRtOXllUUJwZG05eWVURUFhWFp2Y25reUFHbDJiM0o1TXdCcGRtOXll''@;'; put 'put ''VFFBYTJoaGEya0FhMmhoYTJreEFHdG9ZV3RwTWdCcmFHRnJhVE1BYTJoaGEyazBBR3hoZG1WdVpHVnlBR3hoZG1WdVpHVnlZbXgxYzJnQWJHRjJaVzVrWlhKaWJIVnphREVBYkdGMlpXNWtaWEppYkhWemFESUFiR0YyWlc1a1pYSmliSFZ6YURNQWJHRjJaVzVrWlhKaWJIVnphRFFBYkdGM2Jt''@;'; put 'put ''ZHlaV1Z1QUd4bGJXOXVZMmhwWm1admJnQnNaVzF2Ym1Ob2FXWm1iMjR4QUd4bGJXOXVZMmhwWm1admJqSUFiR1Z0YjI1amFHbG1abTl1TXdCc1pXMXZibU5vYVdabWIyNDBBR3hwWjJoMFlteDFaUUJzYVdkb2RHSnNkV1V4QUd4cFoyaDBZbXgxWlRJQWJHbG5hSFJpYkhWbE13QnNhV2RvZEdK''@;'; put 'put ''c2RXVTBBR3hwWjJoMFkyOXlZV3dBYkdsbmFIUmplV0Z1QUd4cFoyaDBZM2xoYmpFQWJHbG5hSFJqZVdGdU1nQnNhV2RvZEdONVlXNHpBR3hwWjJoMFkzbGhialFBYkdsbmFIUm5iMnhrWlc1eWIyUUFiR2xuYUhSbmIyeGtaVzV5YjJReEFHeHBaMmgwWjI5c1pHVnVjbTlrTWdCc2FXZG9kR2R2''@;'; put 'put ''YkdSbGJuSnZaRE1BYkdsbmFIUm5iMnhrWlc1eWIyUTBBR3hwWjJoMFoyOXNaR1Z1Y205a2VXVnNiRzkzQUd4cFoyaDBaM0poZVFCc2FXZG9kR2R5WlhrQWJHbG5hSFJ3YVc1ckFHeHBaMmgwY0dsdWF6RUFiR2xuYUhSd2FXNXJNZ0JzYVdkb2RIQnBibXN6QUd4cFoyaDBjR2x1YXpRQWJHbG5h''@;'; put 'put ''SFJ6WVd4dGIyNEFiR2xuYUhSellXeHRiMjR4QUd4cFoyaDBjMkZzYlc5dU1nQnNhV2RvZEhOaGJHMXZiak1BYkdsbmFIUnpZV3h0YjI0MEFHeHBaMmgwYzJWaFozSmxaVzRBYkdsbmFIUnphM2xpYkhWbEFHeHBaMmgwYzJ0NVlteDFaVEVBYkdsbmFIUnphM2xpYkhWbE1nQnNhV2RvZEhOcmVX''@;'; put 'put ''SnNkV1V6QUd4cFoyaDBjMnQ1WW14MVpUUUFiR2xuYUhSemJHRjBaV0pzZFdVQWJHbG5hSFJ6YkdGMFpXZHlZWGtBYkdsbmFIUnpiR0YwWldkeVpYa0FiR2xuYUhSemRHVmxiR0pzZFdVQWJHbG5hSFJ6ZEdWbGJHSnNkV1V4QUd4cFoyaDBjM1JsWld4aWJIVmxNZ0JzYVdkb2RITjBaV1ZzWW14''@;'; put 'put ''MVpUTUFiR2xuYUhSemRHVmxiR0pzZFdVMEFHeHBaMmgwZVdWc2JHOTNBR3hwWjJoMGVXVnNiRzkzTVFCc2FXZG9kSGxsYkd4dmR6SUFiR2xuYUhSNVpXeHNiM2N6QUd4cFoyaDBlV1ZzYkc5M05BQnNhVzFsWjNKbFpXNEFiR2x1Wlc0QWJXRm5aVzUwWVFCdFlXZGxiblJoTVFCdFlXZGxiblJo''@;'; put 'put ''TWdCdFlXZGxiblJoTXdCdFlXZGxiblJoTkFCdFlYSnZiMjRBYldGeWIyOXVNUUJ0WVhKdmIyNHlBRzFoY205dmJqTUFiV0Z5YjI5dU5BQnRaV1JwZFcxaGNYVmhiV0Z5YVc1bEFHMWxaR2wxYldKc2RXVUFiV1ZrYVhWdGIzSmphR2xrQUcxbFpHbDFiVzl5WTJocFpERUFiV1ZrYVhWdGIzSmph''@;'; put 'put ''R2xrTWdCdFpXUnBkVzF2Y21Ob2FXUXpBRzFsWkdsMWJXOXlZMmhwWkRRQWJXVmthWFZ0Y0hWeWNHeGxBRzFsWkdsMWJYQjFjbkJzWlRFQWJXVmthWFZ0Y0hWeWNHeGxNZ0J0WldScGRXMXdkWEp3YkdVekFHMWxaR2wxYlhCMWNuQnNaVFFBYldWa2FYVnRjMlZoWjNKbFpXNEFiV1ZrYVhWdGMy''@;'; put 'put ''eGhkR1ZpYkhWbEFHMWxaR2wxYlhOd2NtbHVaMmR5WldWdUFHMWxaR2wxYlhSMWNuRjFiMmx6WlFCdFpXUnBkVzEyYVc5c1pYUnlaV1FBYldsa2JtbG5hSFJpYkhWbEFHMXBiblJqY21WaGJRQnRhWE4wZVhKdmMyVUFiV2x6ZEhseWIzTmxNUUJ0YVhOMGVYSnZjMlV5QUcxcGMzUjVjbTl6WlRN''@;'; put 'put ''QWJXbHpkSGx5YjNObE5BQnRiMk5qWVhOcGJnQnVZWFpoYW05M2FHbDBaUUJ1WVhaaGFtOTNhR2wwWlRFQWJtRjJZV3B2ZDJocGRHVXlBRzVoZG1GcWIzZG9hWFJsTXdCdVlYWmhhbTkzYUdsMFpUUUFibUYyZVFCdVlYWjVZbXgxWlFCdWIyNWxBRzlzWkd4aFkyVUFiMnhwZG1Wa2NtRmlBRzlz''@;'; put 'put ''YVhabFpISmhZakVBYjJ4cGRtVmtjbUZpTWdCdmJHbDJaV1J5WVdJekFHOXNhWFpsWkhKaFlqUUFiM0poYm1kbEFHOXlZVzVuWlRFQWIzSmhibWRsTWdCdmNtRnVaMlV6QUc5eVlXNW5aVFFBYjNKaGJtZGxjbVZrQUc5eVlXNW5aWEpsWkRFQWIzSmhibWRsY21Wa01nQnZjbUZ1WjJWeVpXUXpB''@;'; put 'put ''Rzl5WVc1blpYSmxaRFFBYjNKamFHbGtBRzl5WTJocFpERUFiM0pqYUdsa01nQnZjbU5vYVdRekFHOXlZMmhwWkRRQWNHRnNaV2R2YkdSbGJuSnZaQUJ3WVd4bFozSmxaVzRBY0dGc1pXZHlaV1Z1TVFCd1lXeGxaM0psWlc0eUFIQmhiR1ZuY21WbGJqTUFjR0ZzWldkeVpXVnVOQUJ3WVd4bGRI''@;'; put 'put ''VnljWFZ2YVhObEFIQmhiR1YwZFhKeGRXOXBjMlV4QUhCaGJHVjBkWEp4ZFc5cGMyVXlBSEJoYkdWMGRYSnhkVzlwYzJVekFIQmhiR1YwZFhKeGRXOXBjMlUwQUhCaGJHVjJhVzlzWlhSeVpXUUFjR0ZzWlhacGIyeGxkSEpsWkRFQWNHRnNaWFpwYjJ4bGRISmxaRElBY0dGc1pYWnBiMnhsZEhK''@;'; put 'put ''bFpETUFjR0ZzWlhacGIyeGxkSEpsWkRRQWNHRndZWGxoZDJocGNBQndaV0ZqYUhCMVptWUFjR1ZoWTJod2RXWm1NUUJ3WldGamFIQjFabVl5QUhCbFlXTm9jSFZtWmpNQWNHVmhZMmh3ZFdabU5BQndaWEoxQUhCcGJtc0FjR2x1YXpFQWNHbHVheklBY0dsdWF6TUFjR2x1YXpRQWNHeDFiUUJ3''@;'; put 'put ''YkhWdE1RQndiSFZ0TWdCd2JIVnRNd0J3YkhWdE5BQndiM2RrWlhKaWJIVmxBSEIxY25Cc1pRQndkWEp3YkdVeEFIQjFjbkJzWlRJQWNIVnljR3hsTXdCd2RYSndiR1UwQUhKbFpBQnlaV1F4QUhKbFpESUFjbVZrTXdCeVpXUTBBSEp2YzNsaWNtOTNiZ0J5YjNONVluSnZkMjR4QUhKdmMzbGlj''@;'; put 'put ''bTkzYmpJQWNtOXplV0p5YjNkdU13QnliM041WW5KdmQyNDBBSEp2ZVdGc1lteDFaUUJ5YjNsaGJHSnNkV1V4QUhKdmVXRnNZbXgxWlRJQWNtOTVZV3hpYkhWbE13QnliM2xoYkdKc2RXVTBBSE5oWkdSc1pXSnliM2R1QUhOaGJHMXZiZ0J6WVd4dGIyNHhBSE5oYkcxdmJqSUFjMkZzYlc5dU13''@;'; put 'put ''QnpZV3h0YjI0MEFITmhibVI1WW5KdmQyNEFjMlZoWjNKbFpXNEFjMlZoWjNKbFpXNHhBSE5sWVdkeVpXVnVNZ0J6WldGbmNtVmxiak1BYzJWaFozSmxaVzQwQUhObFlYTm9aV3hzQUhObFlYTm9aV3hzTVFCelpXRnphR1ZzYkRJQWMyVmhjMmhsYkd3ekFITmxZWE5vWld4c05BQnphV1Z1Ym1F''@;'; put 'put ''QWMybGxibTVoTVFCemFXVnVibUV5QUhOcFpXNXVZVE1BYzJsbGJtNWhOQUJ6YTNsaWJIVmxBSE5yZVdKc2RXVXhBSE5yZVdKc2RXVXlBSE5yZVdKc2RXVXpBSE5yZVdKc2RXVTBBSE5zWVhSbFlteDFaUUJ6YkdGMFpXSnNkV1V4QUhOc1lYUmxZbXgxWlRJQWMyeGhkR1ZpYkhWbE13QnpiR0Yw''@;'; put 'put ''WldKc2RXVTBBSE5zWVhSbFozSmhlUUJ6YkdGMFpXZHlZWGt4QUhOc1lYUmxaM0poZVRJQWMyeGhkR1ZuY21GNU13QnpiR0YwWldkeVlYazBBSE5zWVhSbFozSmxlUUJ6Ym05M0FITnViM2N4QUhOdWIzY3lBSE51YjNjekFITnViM2MwQUhOd2NtbHVaMmR5WldWdUFITndjbWx1WjJkeVpXVnVN''@;'; put 'put ''UUJ6Y0hKcGJtZG5jbVZsYmpJQWMzQnlhVzVuWjNKbFpXNHpBSE53Y21sdVoyZHlaV1Z1TkFCemRHVmxiR0pzZFdVQWMzUmxaV3hpYkhWbE1RQnpkR1ZsYkdKc2RXVXlBSE4wWldWc1lteDFaVE1BYzNSbFpXeGliSFZsTkFCMFlXNEFkR0Z1TVFCMFlXNHlBSFJoYmpNQWRHRnVOQUIwYUdsemRH''@;'; put 'put ''eGxBSFJvYVhOMGJHVXhBSFJvYVhOMGJHVXlBSFJvYVhOMGJHVXpBSFJvYVhOMGJHVTBBSFJ2YldGMGJ3QjBiMjFoZEc4eEFIUnZiV0YwYnpJQWRHOXRZWFJ2TXdCMGIyMWhkRzgwQUhSMWNuRjFiMmx6WlFCMGRYSnhkVzlwYzJVeEFIUjFjbkYxYjJselpUSUFkSFZ5Y1hWdmFYTmxNd0IwZFhK''@;'; put 'put ''eGRXOXBjMlUwQUhacGIyeGxkQUIyYVc5c1pYUnlaV1FBZG1sdmJHVjBjbVZrTVFCMmFXOXNaWFJ5WldReUFIWnBiMnhsZEhKbFpETUFkbWx2YkdWMGNtVmtOQUIzYUdWaGRBQjNhR1ZoZERFQWQyaGxZWFF5QUhkb1pXRjBNd0IzYUdWaGREUUFkMmhwZEdVQWQyaHBkR1Z6Ylc5clpRQjVaV3hz''@;'; put 'put ''YjNjQWVXVnNiRzkzTVFCNVpXeHNiM2N5QUhsbGJHeHZkek1BZVdWc2JHOTNOQUI1Wld4c2IzZG5jbVZsYmdCc1lXTnJBR2hwZEdVQWFXZG9kR2R5WlhrQVdERXhMd0F2SlhNdkpYTUFhVzFoWjJWelkyRnNaUUJtWVd4elpRQmliR0ZqYXdCa2IzUjBaV1FBWkdGemFHVmtBR053TFQ1emNtTUFh''@;'; put 'put ''SFJ0YkhSaFlteGxMbU1BWlcxcGRGOW9kRzFzWDJsdFp3QmpjQzArYzNKald6QmRBSFJ5WVc1emNHRnlaVzUwQUY4bFpBQWxaQUF5QURNQU5BQTFBRFlBTndBNEFEa0FNVEFBTVRFQU1USUFNVE1BTVRRQU1UVUFNVFlBTVRjQU1UZ0FNVGtBTWpBQVFXZHViMlJsYVc1bWIxOTBBRUZuWldSblpX''@;'; put 'put ''bHVabTlmZEFCeWIzZG5BR052YkdjQVFXZHlZWEJvYVc1bWIxOTBBR1JsYkhnZ1BqMGdNQUJ3YjNOZmFIUnRiRjkwWW13QVpHVnNlU0ErUFNBd0FIUmhZbXhsSUhOcGVtVWdkRzl2SUhOdFlXeHNJR1p2Y2lCamIyNTBaVzUwQ2dCbWFYaGxaQ0IwWVdKc1pTQnphWHBsSUhkcGRHZ2dkVzV6Y0dW''@;'; put 'put ''amFXWnBaV1FnZDJsa2RHZ2diM0lnYUdWcFoyaDBDZ0JqWld4c0lITnBlbVVnZEc5dklITnRZV3hzSUdadmNpQmpiMjUwWlc1MENnQm1hWGhsWkNCalpXeHNJSE5wZW1VZ2QybDBhQ0IxYm5Od1pXTnBabWxsWkNCM2FXUjBhQ0J2Y2lCb1pXbG5hSFFLQUU1dklHOXlJR2x0Y0hKdmNHVnlJR2x0''@;'; put 'put ''WVdkbElHWnBiR1U5SWlWeklnb0FjR1Z1WTI5c2IzSUFMVDRBWmxCUkxtTUFVRkZqYUdWamF3QklaV0Z3SUc5MlpYSm1iRzkzQ2dBbElWQlRMVUZrYjJKbExUSXVNQW92Ym05a1pTQjdDaUFnTDFrZ1pYaGphQ0JrWldZS0lDQXZXQ0JsZUdOb0lHUmxaZ29nSUM5NUlHVjRZMmdnWkdWbUNpQWdM''@;'; put 'put ''M2dnWlhoamFDQmtaV1lLSUNCdVpYZHdZWFJvQ2lBZ2VDQjVJRzF2ZG1WMGJ3b2dJSGdnV1NCc2FXNWxkRzhLSUNCWUlGa2diR2x1WlhSdkNpQWdXQ0I1SUd4cGJtVjBid29nSUdOc2IzTmxjR0YwYUNCbWFXeHNDbjBnWkdWbUNpOWpaV3hzSUhzS0lDQXZXU0JsZUdOb0lHUmxaZ29nSUM5WUlH''@;'; put 'put ''VjRZMmdnWkdWbUNpQWdMM2tnWlhoamFDQmtaV1lLSUNBdmVDQmxlR05vSUdSbFpnb2dJRzVsZDNCaGRHZ0tJQ0I0SUhrZ2JXOTJaWFJ2Q2lBZ2VDQlpJR3hwYm1WMGJ3b2dJRmdnV1NCc2FXNWxkRzhLSUNCWUlIa2diR2x1WlhSdkNpQWdZMnh2YzJWd1lYUm9JSE4wY205clpRcDlJR1JsWmdv''@;'; put 'put ''QWMyaHZkM0JoWjJVS0FHWmhhV3hsWkNCaGRDQnViMlJsSUNWa1d6QmRDZ0J1Y0MwK1kyVnNiSE5iTUYwQWJXRjZaUzVqQUdOb2ExTm5jbUZ3YUFCbVlXbHNaV1FnWVhRZ2JtOWtaU0FsWkZzeFhRb0FibkF0UG1ObGJHeHpXekZkQUdScGRHVnRjd0JtYVc1a1UxWmxjblFBSlNVbEpWQmhaMlU2''@;'; put 'put ''SURFZ01Rb2xKU1VsVUdGblpVSnZkVzVrYVc1blFtOTRPaUFsWkNBbFpDQWxaQ0FsWkFvQUpXWWdKV1lnZEhKaGJuTnNZWFJsQ2dBd0lEQWdNU0J6WlhSeVoySmpiMnh2Y2dvQUpXWWdKV1lnSldZZ0pXWWdibTlrWlFvQU1DQXdJREFnYzJWMGNtZGlZMjlzYjNJS0FDVm1JQ1ZtSUNWbUlDVm1J''@;'; put 'put ''R05sYkd3S0FERWdNQ0F3SUhObGRISm5ZbU52Ykc5eUNnQjFibVY0Y0dWamRHVmtJR05oYzJVZ2FXNGdiRzlqWVhSbFgyVnVaSEJ2YVc1MENnQXdBSFJ5WVhCbGVtOXBaQzVqQUd4dlkyRjBaVjlsYm1Sd2IybHVkQUJoWkdSZmMyVm5iV1Z1ZERvZ1pYSnliM0lLQUc1bGQyNXZaR1U2SUZGMVpY''@;'; put 'put ''SjVMWFJoWW14bElHOTJaWEptYkc5M0NnQnVaWGR1YjJSbEFHNWxkM1J5WVhBNklGUnlZWEJsZW05cFpDMTBZV0pzWlNCdmRtVnlabXh2ZHlBbFpBb0FibVYzZEhKaGNBQnBibVJsZUM1akFGSlVjbVZsVTJWaGNtTm9BRzR0UG14bGRtVnNJRDQ5SURBQVVsUnlaV1ZKYm5ObGNuUUFiR1YyWld3''@;'; put 'put ''Z1BqMGdNQ0FtSmlCc1pYWmxiQ0E4UFNBb0ttNHBMVDVzWlhabGJBQnlMVDVpYjNWdVpHRnllVnRwWFNBOFBTQnlMVDVpYjNWdVpHRnllVnRPVlUxRVNVMVRJQ3NnYVYwQWNpQW1KaUJ1SUNZbUlHNWxkd0JTVkhKbFpVbHVjMlZ5ZERJQWJHVjJaV3dnUGowZ01DQW1KaUJzWlhabGJDQThQU0J1''@;'; put 'put ''TFQ1c1pYWmxiQUJHUVV4VFJRQnViMlJsTG1NQVRtOWtaVU52ZG1WeUFISWdKaVlnYmdCUWFXTnJRbkpoYm1Ob0FFRmtaRUp5WVc1amFBQnBJRHdnVGs5RVJVTkJVa1FBYm1WM0FHNGdKaVlnYVNBK1BTQXdJQ1ltSUdrZ1BDQk9UMFJGUTBGU1JBQkVhWE5qYjI1Q2NtRnVZMmdBY2dCeVpXTjBZ''@;'; put 'put ''VzVuYkdVdVl3QlNaV04wUVhKbFlRQnlJQ1ltSUhKeUFFTnZiV0pwYm1WU1pXTjBBSElnSmlZZ2N3QlBkbVZ5YkdGd0FHNEFjM0JzYVhRdWNTNWpBRk53YkdsMFRtOWtaUUJpQUc0dFBtTnZkVzUwSUNzZ0tDcHViaWt0UG1OdmRXNTBJRDA5SUU1UFJFVkRRVkpFSUNzZ01RQk1iMkZrVG05a1pY''@;'; put 'put ''TUFjUUJ3QUhKMGNDMCtjM0JzYVhRdVVHRnlkR2wwYVc5dWMxc3dYUzV3WVhKMGFYUnBiMjViYVYwZ1BUMGdNQ0I4ZkNCeWRIQXRQbk53YkdsMExsQmhjblJwZEdsdmJuTmJNRjB1Y0dGeWRHbDBhVzl1VzJsZElEMDlJREVBY25Sd0xUNXpjR3hwZEM1UVlYSjBhWFJwYjI1eld6QmRMbU52ZFc1''@;'; put 'put ''MFd6QmRJQ3NnY25Sd0xUNXpjR3hwZEM1UVlYSjBhWFJwYjI1eld6QmRMbU52ZFc1MFd6RmRJRDA5SUU1UFJFVkRRVkpFSUNzZ01RQk5aWFJvYjJSYVpYSnZBSEowY0MwK2MzQnNhWFF1VUdGeWRHbDBhVzl1YzFzd1hTNWpiM1Z1ZEZzd1hTQStQU0J5ZEhBdFBrMXBia1pwYkd3Z0ppWWdjblJ3''@;'; put 'put ''TFQ1emNHeHBkQzVRWVhKMGFYUnBiMjV6V3pCZExtTnZkVzUwV3pGZElENDlJSEowY0MwK1RXbHVSbWxzYkFBaGNuUndMVDV6Y0d4cGRDNVFZWEowYVhScGIyNXpXekJkTG5SaGEyVnVXMmxkQUVOc1lYTnphV1o1QUVkbGRFSnlZVzVqYUdWekFHNHRQbUp5WVc1amFGdHBYUzVqYUdsc1pBQUFB''@;'; put 'put ''Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0Fn''@;'; put 'put ''SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJ''@;'; put 'put ''Q0FnSUNBZ0lDQVFJREJBVUdCd2dKQ2dzTURRNFBFQkVTRXhRVkZoY1lHUm9iSEIwZUh5QWhJaU1rSlNZbktBSUNBZ0lDQWhBTVdRRUFIMUFJQXdjU0V4UlhGaGNJQzJrTUh3b0ZEQTRwRVNzUExSQXZNQ0F5QmpRMUd4d2RIZ3NNSVNJakpDVW1KeWdNR0JrWEJBb2JIQm9nS2dvaElpTWtKU1lu''@;'; put 'put ''S0F3S0RsTUtMRmd4V0ZoWVdGaFlEQnNjRHk1WU15RWlJeVFsSmljb0d4ei9VLy8vSVNJakpDVW1KeWdNLy84Ri8vLy9DUlQvLy8vLy93d2JIUDhRRlJZaElpTWtKU1luS0JzYy8vLy8veUVpSXlRbEppY29EUDhTRXhRUkZoZi8vLy8vLy84TUd4ei8vLzhTSVNJakpDVW1KeWdiSFAvLy8vOGhJ''@;'; put 'put ''aU1rSlNZbktBei8vLy8vLy84VC8vLy8vLy8vREJzYy8vLy8veUVpSXlRbEppY29HeHovLy8vL0lTSWpKQ1VtSnlnU0V4UVZGaGNZR2YvLy8vLy8vLy8vL3lNa0pTWW5HeElURkJZWElqWm9BUjg0VmlFZ0Foc2JHMTRiR3pjNWNEYlN3azhFUENKSElqOGlSQ0lpV0NKbElpSUZCbDlnT1FRSENB''@;'; put 'put ''a0tDd3dORGdSbVoxMXFiUVVHYjFnN2NRY0lDUW9MREEwT0JISThXM00rWVVZYkVoTVVGaGNFQlFZL1FXSkpCd2dKQ2dzTURRNEZCZ0JjQUFBSENBa0tDd3dORGdRQUFFOEFBQUJUUWdBQUFBQUFCQVVHQUVSVVZRY0lDUW9MREEwT0JRWUFBQUFBQndnSkNnc01EUTRFQUNvc0xrY3hNd0FBQUFB''@;'; put 'put ''QUFBUUZCZ0FBQUVvSENBa0tDd3dORGdVR0FBQUFBQWNJQ1FvTERBME9CQUFBQUFBQUFFd0FBQUFBQUFBRUJRWUFBQUFBQndnSkNnc01EUTRGQmdBQUFBQUhDQWtLQ3d3TkRpa3JMUzh3TWpRMUFBQUFBQUFBQUFBQUtTc3RNRElBQkM4QUpDTUFFaFFXR2h3ZUlCZ0FCUWN2THk4QUx5OEFBQWtJ''@;'; put 'put ''S0FBQUFTSUNCZ0FBQUFBQUNBQUFBQUFBQUFBQUFBQUFBQUFsQXlZVENpa1ZDeW9YRGkwWkVSc01LeDBOTEI4UElSQUFNd0F3QUM5REFERUFMd0ExTGlkQ01rRUFPamdBUERSRkFEWUFRQUFBUHdCRU56czVQUUFDQXdNQkFRSUJBUUVEQXdNREF3TURBd0VCQVFFQkFRRUJBUUVCQVFFQkFRRUNB''@;'; put 'put ''UUVDQUFZQkF3TURBd01CQUFFQ0F3QUVBUUlEQUFRQUJBQUVBQU1DQVFJQkFnRlRlVzUwWVhnZ1pYSnliM0k2SUc1dmJpMXpjR0ZqWlNCemRISnBibWNnZFhObFpDQmlaV1p2Y21VZ1BGUkJRa3hGUGdCVGVXNTBZWGdnWlhKeWIzSTZJRzV2YmkxemNHRmpaU0J6ZEhKcGJtY2dkWE5sWkNCaFpu''@;'; put 'put ''UmxjaUE4TDFSQlFreEZQZ0FBS1NvcUtpc3NMQzB0TFMwdExTMHRMUzB1THpBeE1qTTBOVFkzT0RrNk96dzlQajQvUDBGQVFrSkNRa0pDUTBORVJFUkdSVWRIUjBsSVNraExTRXhJVFUxT1RrOVAvd01QRUJFak9pUTlKVUFWUXlaRkowZ1lTeGxOR2lnY1RoMGVVRkZTV1Zwc2EyNWpaRmRwYldW''@;'; put 'put ''dGIzSjVJR1Y0YUdGMWMzUmxaQUFsY3lCcGJpQnNhVzVsSUNWa0lBb0FMaTR1SUNWeklDNHVMZ29BVkVGQ1RFVUFWRklBVkVnQVZFUUFTRlJOVEFCR1QwNVVBRUlBVlFCUEFFa0FVMVZRQUZOVlFnQlRBRUpTQUVoU0FGWlNBRWxOUndCVmJtdHViM2R1SUVoVVRVd2daV3hsYldWdWRDQThKWE0r''@;'; put 'put ''SUc5dUlHeHBibVVnSldRZ0NnQThTVTFIUGdCSmJHeGxaMkZzSUdGMGRISnBZblYwWlNBbGN5QnBiaUFsY3lBdElHbG5ibTl5WldRS0FITmpZV3hsQUhOeVl3QThRbEkrQUdGc2FXZHVBRWxIU0ZRQVJVWlVBRVZPVkVWU0FFbHNiR1ZuWVd3Z2RtRnNkV1VnSlhNZ1ptOXlJRUZNU1VkT0lDMGdh''@;'; put 'put ''V2R1YjNKbFpBb0FQRVpQVGxRK0FHTnZiRzl5QUdaaFkyVUFjRzlwYm5RdGMybDZaUUJRVDBsT1ZDMVRTVnBGQUVsdGNISnZjR1Z5SUNWeklIWmhiSFZsSUNWeklDMGdhV2R1YjNKbFpBQWxjeUIyWVd4MVpTQWxjeUErSUNWa0lDMGdkRzl2SUd4aGNtZGxJQzBnYVdkdWIzSmxaQUFsY3lCMllX''@;'; put 'put ''eDFaU0FsY3lBOElDVmtJQzBnZEc5dklITnRZV3hzSUMwZ2FXZHViM0psWkFBOFZFUStBR0poYkdsbmJnQmlaMk52Ykc5eUFHSnZjbVJsY2dCalpXeHNjR0ZrWkdsdVp3QmpaV3hzYzNCaFkybHVad0JqYjJ4emNHRnVBR1pwZUdWa2MybDZaUUJuY21Ga2FXVnVkR0Z1WjJ4bEFHaGxhV2RvZEFC''@;'; put 'put ''b2NtVm1BR2xrQUhCdmNuUUFjbTkzYzNCaGJnQnphV1JsY3dCemRIbHNaUUIwWVhKblpYUUFkR2wwYkdVQWRHOXZiSFJwY0FCMllXeHBaMjRBZDJsa2RHZ0FWMGxFVkVnQVQxUlVUMDBBVDFBQVNVUkVURVVBU1d4c1pXZGhiQ0IyWVd4MVpTQWxjeUJtYjNJZ1ZrRk1TVWRPSUMwZ2FXZHViM0ps''@;'; put 'put ''WkFvQUlDd0FUMVZPUkVWRUFFRkVTVUZNQUVsc2JHVm5ZV3dnZG1Gc2RXVWdKWE1nWm05eUlGTlVXVXhGSUMwZ2FXZHViM0psWkFvQVUwOU1TVVFBU1U1V1NWTkpRa3hGQUVsT1ZrbFRBRVJQVkZSRlJBQkVRVk5JUlVRQVZXNXlaV052WjI1cGVtVmtJR05vWVhKaFkzUmxjaUFuSldNbklDZ2xa''@;'; put 'put ''Q2tnYVc0Z2MybGtaWE1nWVhSMGNtbGlkWFJsQ2dCU1QxZFRVRUZPQUZKUFYxTlFRVTRnZG1Gc2RXVWdZMkZ1Ym05MElHSmxJREFnTFNCcFoyNXZjbVZrQ2dCSVJVbEhTRlFBUjFKQlJFbEZUbFJCVGtkTVJRQlNWVVVBUVV4VFJRQkpiR3hsWjJGc0lIWmhiSFZsSUNWeklHWnZjaUJHU1ZoRlJG''@;'; put 'put ''TkpXa1VnTFNCcFoyNXZjbVZrQ2dCRFQweFRVRUZPQUVOUFRGTlFRVTRnZG1Gc2RXVWdZMkZ1Ym05MElHSmxJREFnTFNCcFoyNXZjbVZrQ2dCRFJVeE1VMUJCUTBsT1J3QkRSVXhNVUVGRVJFbE9Sd0JDVDFKRVJWSUFTV3hzWldkaGJDQjJZV3gxWlNBbGN5Qm1iM0lnUWtGTVNVZE9JR2x1SUZS''@;'; put 'put ''RUlDMGdhV2R1YjNKbFpBb0FSVmhVQUVsc2JHVm5ZV3dnZG1Gc2RXVWdKWE1nWm05eUlFRk1TVWRPSUdsdUlGUkVJQzBnYVdkdWIzSmxaQW9BUEZSQlFreEZQZ0JqWld4c1ltOXlaR1Z5QUdOdmJIVnRibk1BY205M2N3QlZibXR1YjNkdUlIWmhiSFZsSUNWeklHWnZjaUJTVDFkVElDMGdhV2R1''@;'; put 'put ''YjNKbFpBb0FWVzVyYm05M2JpQjJZV3gxWlNBbGN5Qm1iM0lnUTA5TVZVMU9VeUF0SUdsbmJtOXlaV1FLQUVORlRFeFRRazlTUkVWU0FEeElWRTFNUGdBOEwwaFVUVXcrQUMwdEFFeGhZbVZzSUdOc2IzTmxaQ0JpWldadmNtVWdaVzVrSUc5bUlFaFVUVXdnWld4bGJXVnVkQW9BVlc1amJHOXpa''@;'; put 'put ''V1FnWTI5dGJXVnVkQW9BYWlBOVBTQXdBR04yZEM1akFGQnZZbk53WVhSb0FISnZkWFJsTG1NQWJHbGljR0YwYUM4bGN6b2xaRG9nSlhNS0FITm9iM0owWlhOMExtTUFjMjkxY21ObElIQnZhVzUwSUc1dmRDQnBiaUJoYm5rZ2RISnBZVzVuYkdVQVpHVnpkR2x1WVhScGIyNGdjRzlwYm5RZ2Jt''@;'; put 'put ''OTBJR2x1SUdGdWVTQjBjbWxoYm1kc1pRQmpZVzV1YjNRZ1ptbHVaQ0IwY21saGJtZHNaU0J3WVhSb0FHTmhibTV2ZENCdFlXeHNiMk1nYjNCekFHTmhibTV2ZENCeVpXRnNiRzlqSUc5d2N3QjBjbWxoYm1kMWJHRjBhVzl1SUdaaGFXeGxaQUJqWVc1dWIzUWdiV0ZzYkc5aklIUnlhWE1BWTJG''@;'; put 'put ''dWJtOTBJSEpsWVd4c2IyTWdkSEpwY3dCallXNXViM1FnYldGc2JHOWpJR1J4TG5CdWJITUFZMkZ1Ym05MElISmxZV3hzYjJNZ1pIRXVjRzVzY3dCallXNXViM1FnYldGc2JHOWpJSEJ1YkhNQVkyRnVibTkwSUcxaGJHeHZZeUJ3Ym14d2N3QmpZVzV1YjNRZ2NtVmhiR3h2WXlCd2JteHpBR05o''@;'; put 'put ''Ym01dmRDQnlaV0ZzYkc5aklIQnViSEJ6QUVORVFWUkJBRWxFQUVsRVVrVkdBRWxFVWtWR1V3QkZUbFJKVkZrQVJVNVVTVlJKUlZNQVRrMVVUMHRGVGdCT1RWUlBTMFZPVXdCT1QxUkJWRWxQVGlnQUtBQjhBR2gwZEhBNkx5OTNkM2N1ZHpNdWIzSm5MMWhOVEM4eE9UazRMMjVoYldWemNHRmpa''@;'; put 'put ''UUJvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzaHRiRzV6THdCNGJXdzlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZXRTFNTHpFNU9UZ3ZibUZ0WlhOd1lXTmxBQzlrWlhZdmRYSmhibVJ2YlFCbVlXeHNZbUZqYXlnMEtRQm5aWFIwYVcxbGIyWmtZWGxmY21WeklEMDlJREFBZUcxc2NH''@;'; put 'put ''RnljMlV1WXdCbllYUm9aWEpmZEdsdFpWOWxiblJ5YjNCNUFFVllVRUZVWDBWT1ZGSlBVRmxmUkVWQ1ZVY0FNUUJGYm5SeWIzQjVPaUFsY3lBdExUNGdNSGdsTUNwc2VDQW9KV3gxSUdKNWRHVnpLUW9BYVc1MllXeHBaQ0JoY21kMWJXVnVkQUJ3Y21WbWFYZ2diWFZ6ZENCdWIzUWdZbVVnWW05''@;'; put 'put ''MWJtUWdkRzhnYjI1bElHOW1JSFJvWlNCeVpYTmxjblpsWkNCdVlXMWxjM0JoWTJVZ2JtRnRaWE1BY21WelpYSjJaV1FnY0hKbFptbDRJQ2g0Yld4dWN5a2diWFZ6ZENCdWIzUWdZbVVnWkdWamJHRnlaV1FnYjNJZ2RXNWtaV05zWVhKbFpBQnlaWE5sY25abFpDQndjbVZtYVhnZ0tIaHRiQ2tn''@;'; put 'put ''YlhWemRDQnViM1FnWW1VZ2RXNWtaV05zWVhKbFpDQnZjaUJpYjNWdVpDQjBieUJoYm05MGFHVnlJRzVoYldWemNHRmpaU0J1WVcxbEFHTmhibTV2ZENCemRYTndaVzVrSUdsdUlHVjRkR1Z5Ym1Gc0lIQmhjbUZ0WlhSbGNpQmxiblJwZEhrQWNHRnljMmx1WnlCbWFXNXBjMmhsWkFCd1lYSnph''@;'; put 'put ''VzVuSUdGaWIzSjBaV1FBY0dGeWMyVnlJRzV2ZENCemRYTndaVzVrWldRQWNHRnljMlZ5SUhOMWMzQmxibVJsWkFCcGJHeGxaMkZzSUdOb1lYSmhZM1JsY2loektTQnBiaUJ3ZFdKc2FXTWdhV1FBZEdWNGRDQmtaV05zWVhKaGRHbHZiaUJ1YjNRZ2QyVnNiQzFtYjNKdFpXUUFXRTFNSUdSbFky''@;'; put 'put ''eGhjbUYwYVc5dUlHNXZkQ0IzWld4c0xXWnZjbTFsWkFCcGJtTnZiWEJzWlhSbElHMWhjbXQxY0NCcGJpQndZWEpoYldWMFpYSWdaVzUwYVhSNUFHMTFjM1FnYm05MElIVnVaR1ZqYkdGeVpTQndjbVZtYVhnQWRXNWliM1Z1WkNCd2NtVm1hWGdBWTJGdWJtOTBJR05vWVc1blpTQnpaWFIwYVc1''@;'; put 'put ''bklHOXVZMlVnY0dGeWMybHVaeUJvWVhNZ1ltVm5kVzRBY21WeGRXVnpkR1ZrSUdabFlYUjFjbVVnY21WeGRXbHlaWE1nV0UxTVgwUlVSQ0J6ZFhCd2IzSjBJR2x1SUVWNGNHRjBBR1Z1ZEdsMGVTQmtaV05zWVhKbFpDQnBiaUJ3WVhKaGJXVjBaWElnWlc1MGFYUjVBSFZ1Wlhod1pXTjBaV1Fn''@;'; put 'put ''Y0dGeWMyVnlJSE4wWVhSbElDMGdjR3hsWVhObElITmxibVFnWVNCaWRXY2djbVZ3YjNKMEFHUnZZM1Z0Wlc1MElHbHpJRzV2ZENCemRHRnVaR0ZzYjI1bEFHVnljbTl5SUdsdUlIQnliMk5sYzNOcGJtY2daWGgwWlhKdVlXd2daVzUwYVhSNUlISmxabVZ5Wlc1alpRQjFibU5zYjNObFpDQkRS''@;'; put 'put ''RUZVUVNCelpXTjBhVzl1QUdWdVkyOWthVzVuSUhOd1pXTnBabWxsWkNCcGJpQllUVXdnWkdWamJHRnlZWFJwYjI0Z2FYTWdhVzVqYjNKeVpXTjBBSFZ1YTI1dmQyNGdaVzVqYjJScGJtY0FXRTFNSUc5eUlIUmxlSFFnWkdWamJHRnlZWFJwYjI0Z2JtOTBJR0YwSUhOMFlYSjBJRzltSUdWdWRH''@;'; put 'put ''bDBlUUJ5WldabGNtVnVZMlVnZEc4Z1pYaDBaWEp1WVd3Z1pXNTBhWFI1SUdsdUlHRjBkSEpwWW5WMFpRQnlaV1psY21WdVkyVWdkRzhnWW1sdVlYSjVJR1Z1ZEdsMGVRQnlaV1psY21WdVkyVWdkRzhnYVc1MllXeHBaQ0JqYUdGeVlXTjBaWElnYm5WdFltVnlBR0Z6ZVc1amFISnZibTkxY3lC''@;'; put 'put ''bGJuUnBkSGtBY21WamRYSnphWFpsSUdWdWRHbDBlU0J5WldabGNtVnVZMlVBZFc1a1pXWnBibVZrSUdWdWRHbDBlUUJwYkd4bFoyRnNJSEJoY21GdFpYUmxjaUJsYm5ScGRIa2djbVZtWlhKbGJtTmxBR3AxYm1zZ1lXWjBaWElnWkc5amRXMWxiblFnWld4bGJXVnVkQUJrZFhCc2FXTmhkR1Vn''@;'; put 'put ''WVhSMGNtbGlkWFJsQUcxcGMyMWhkR05vWldRZ2RHRm5BSEJoY25ScFlXd2dZMmhoY21GamRHVnlBSFZ1WTJ4dmMyVmtJSFJ2YTJWdUFHNXZkQ0IzWld4c0xXWnZjbTFsWkNBb2FXNTJZV3hwWkNCMGIydGxiaWtBYm04Z1pXeGxiV1Z1ZENCbWIzVnVaQUJ6ZVc1MFlYZ2daWEp5YjNJQWIzVjBJ''@;'; put 'put ''RzltSUcxbGJXOXllUUFDQXdRRkJnY0lBQUFKQ2dzTURRNFBFQkVBQUFBQUFBQUFBQUFBQUFBU0V3QVVBQUFBQUFBQUFBQUFBQUFBQUFBVkZnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFR''@;'; put 'put ''RUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRVhBQUFBQUFBQUFBQUFBQUFBQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUmdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdRTWFHeHdkSGdBQUh5QWhJaU1rSlJBUkFBQUFBQUFBQUFBQUFBQUFFaE1tRkFBQUFBQUFBQUFBQUFBQUFBQUFKeFlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVC''@;'; put 'put ''QVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCRndBQUFBQUFBQUFBQUFBQUFBRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFWUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRU5FUVZSQlcxVlRMVUZUUTBsSkFGVlVSaTB4TmdCVlZFWXRNVFpDUlFCVlZFWXRNVFpNUlFCMlpYSnphVzl1QUdWdVkyOWthVzVuQUhOMFlXNWtZV3h2Ym1VQVJFOURWRmxRUlFCVFdWTlVSVTBBVUZWQ1RFbERBRVZPVkVsVVdR''@;'; put 'put ''QkJWRlJNU1ZOVUFFVk1SVTFGVGxRQVRrOVVRVlJKVDA0QVNVNURURlZFUlFCSlIwNVBVa1VBUlUxUVZGa0FRVTVaQUZCRFJFRlVRUUJKVFZCTVNVVkVBRkpGVVZWSlVrVkVBRVpKV0VWRUFFTkVRVlJCQUVsRUFFbEVVa1ZHQUVsRVVrVkdVd0JGVGxSSlZFbEZVd0JPVFZSUFMwVk9BRTVOVkU5''@;'; put 'put ''TFJVNVRBRTVFUVZSQkFGUWhJaGtOQVFJREVVc2NEQkFFQ3gwU0hpZG9ibTl3Y1dJZ0JRWVBFeFFWR2dnV0J5Z2tGeGdKQ2c0Ykh5VWpnNEo5SmlvclBEMCtQME5IU2sxWVdWcGJYRjFlWDJCaFkyUmxabWRwYW10c2NuTjBlWHA3ZkFCSmJHeGxaMkZzSUdKNWRHVWdjMlZ4ZFdWdVkyVUFSRzl0''@;'; put 'put ''WVdsdUlHVnljbTl5QUZKbGMzVnNkQ0J1YjNRZ2NtVndjbVZ6Wlc1MFlXSnNaUUJPYjNRZ1lTQjBkSGtBVUdWeWJXbHpjMmx2YmlCa1pXNXBaV1FBVDNCbGNtRjBhVzl1SUc1dmRDQndaWEp0YVhSMFpXUUFUbThnYzNWamFDQm1hV3hsSUc5eUlHUnBjbVZqZEc5eWVRQk9ieUJ6ZFdOb0lIQnli''@;'; put 'put ''Mk5sYzNNQVJtbHNaU0JsZUdsemRITUFWbUZzZFdVZ2RHOXZJR3hoY21kbElHWnZjaUJrWVhSaElIUjVjR1VBVG04Z2MzQmhZMlVnYkdWbWRDQnZiaUJrWlhacFkyVUFUM1YwSUc5bUlHMWxiVzl5ZVFCU1pYTnZkWEpqWlNCaWRYTjVBRWx1ZEdWeWNuVndkR1ZrSUhONWMzUmxiU0JqWVd4c0FG''@;'; put 'put ''SmxjMjkxY21ObElIUmxiWEJ2Y21GeWFXeDVJSFZ1WVhaaGFXeGhZbXhsQUVsdWRtRnNhV1FnYzJWbGF3QkRjbTl6Y3kxa1pYWnBZMlVnYkdsdWF3QlNaV0ZrTFc5dWJIa2dabWxzWlNCemVYTjBaVzBBUkdseVpXTjBiM0o1SUc1dmRDQmxiWEIwZVFCRGIyNXVaV04wYVc5dUlISmxjMlYwSUdK''@;'; put 'put ''NUlIQmxaWElBVDNCbGNtRjBhVzl1SUhScGJXVmtJRzkxZEFCRGIyNXVaV04wYVc5dUlISmxablZ6WldRQVNHOXpkQ0JwY3lCa2IzZHVBRWh2YzNRZ2FYTWdkVzV5WldGamFHRmliR1VBUVdSa2NtVnpjeUJwYmlCMWMyVUFRbkp2YTJWdUlIQnBjR1VBU1M5UElHVnljbTl5QUU1dklITjFZMmdn''@;'; put 'put ''WkdWMmFXTmxJRzl5SUdGa1pISmxjM01BUW14dlkyc2daR1YyYVdObElISmxjWFZwY21Wa0FFNXZJSE4xWTJnZ1pHVjJhV05sQUU1dmRDQmhJR1JwY21WamRHOXllUUJKY3lCaElHUnBjbVZqZEc5eWVRQlVaWGgwSUdacGJHVWdZblZ6ZVFCRmVHVmpJR1p2Y20xaGRDQmxjbkp2Y2dCSmJuWmhi''@;'; put 'put ''R2xrSUdGeVozVnRaVzUwQUVGeVozVnRaVzUwSUd4cGMzUWdkRzl2SUd4dmJtY0FVM2x0WW05c2FXTWdiR2x1YXlCc2IyOXdBRVpwYkdWdVlXMWxJSFJ2YnlCc2IyNW5BRlJ2YnlCdFlXNTVJRzl3Wlc0Z1ptbHNaWE1nYVc0Z2MzbHpkR1Z0QUU1dklHWnBiR1VnWkdWelkzSnBjSFJ2Y25NZ1lY''@;'; put 'put ''WmhhV3hoWW14bEFFSmhaQ0JtYVd4bElHUmxjMk55YVhCMGIzSUFUbThnWTJocGJHUWdjSEp2WTJWemN3QkNZV1FnWVdSa2NtVnpjd0JHYVd4bElIUnZieUJzWVhKblpRQlViMjhnYldGdWVTQnNhVzVyY3dCT2J5QnNiMk5yY3lCaGRtRnBiR0ZpYkdVQVVtVnpiM1Z5WTJVZ1pHVmhaR3h2WTJz''@;'; put 'put ''Z2QyOTFiR1FnYjJOamRYSUFVM1JoZEdVZ2JtOTBJSEpsWTI5MlpYSmhZbXhsQUZCeVpYWnBiM1Z6SUc5M2JtVnlJR1JwWldRQVQzQmxjbUYwYVc5dUlHTmhibU5sYkdWa0FFWjFibU4wYVc5dUlHNXZkQ0JwYlhCc1pXMWxiblJsWkFCT2J5QnRaWE56WVdkbElHOW1JR1JsYzJseVpXUWdkSGx3''@;'; put 'put ''WlFCSlpHVnVkR2xtYVdWeUlISmxiVzkyWldRQVJHVjJhV05sSUc1dmRDQmhJSE4wY21WaGJRQk9ieUJrWVhSaElHRjJZV2xzWVdKc1pRQkVaWFpwWTJVZ2RHbHRaVzkxZEFCUGRYUWdiMllnYzNSeVpXRnRjeUJ5WlhOdmRYSmpaWE1BVEdsdWF5Qm9ZWE1nWW1WbGJpQnpaWFpsY21Wa0FGQnli''@;'; put 'put ''M1J2WTI5c0lHVnljbTl5QUVKaFpDQnRaWE56WVdkbEFFWnBiR1VnWkdWelkzSnBjSFJ2Y2lCcGJpQmlZV1FnYzNSaGRHVUFUbTkwSUdFZ2MyOWphMlYwQUVSbGMzUnBibUYwYVc5dUlHRmtaSEpsYzNNZ2NtVnhkV2x5WldRQVRXVnpjMkZuWlNCMGIyOGdiR0Z5WjJVQVVISnZkRzlqYjJ3Z2Qz''@;'; put 'put ''SnZibWNnZEhsd1pTQm1iM0lnYzI5amEyVjBBRkJ5YjNSdlkyOXNJRzV2ZENCaGRtRnBiR0ZpYkdVQVVISnZkRzlqYjJ3Z2JtOTBJSE4xY0hCdmNuUmxaQUJUYjJOclpYUWdkSGx3WlNCdWIzUWdjM1Z3Y0c5eWRHVmtBRTV2ZENCemRYQndiM0owWldRQVVISnZkRzlqYjJ3Z1ptRnRhV3g1SUc1''@;'; put 'put ''dmRDQnpkWEJ3YjNKMFpXUUFRV1JrY21WemN5Qm1ZVzFwYkhrZ2JtOTBJSE4xY0hCdmNuUmxaQ0JpZVNCd2NtOTBiMk52YkFCQlpHUnlaWE56SUc1dmRDQmhkbUZwYkdGaWJHVUFUbVYwZDI5eWF5QnBjeUJrYjNkdUFFNWxkSGR2Y21zZ2RXNXlaV0ZqYUdGaWJHVUFRMjl1Ym1WamRHbHZiaUJ5''@;'; put 'put ''WlhObGRDQmllU0J1WlhSM2IzSnJBRU52Ym01bFkzUnBiMjRnWVdKdmNuUmxaQUJPYnlCaWRXWm1aWElnYzNCaFkyVWdZWFpoYVd4aFlteGxBRk52WTJ0bGRDQnBjeUJqYjI1dVpXTjBaV1FBVTI5amEyVjBJRzV2ZENCamIyNXVaV04wWldRQVEyRnVibTkwSUhObGJtUWdZV1owWlhJZ2MyOWph''@;'; put 'put ''MlYwSUhOb2RYUmtiM2R1QUU5d1pYSmhkR2x2YmlCaGJISmxZV1I1SUdsdUlIQnliMmR5WlhOekFFOXdaWEpoZEdsdmJpQnBiaUJ3Y205bmNtVnpjd0JUZEdGc1pTQm1hV3hsSUdoaGJtUnNaUUJTWlcxdmRHVWdTUzlQSUdWeWNtOXlBRkYxYjNSaElHVjRZMlZsWkdWa0FFNXZJRzFsWkdsMWJT''@;'; put 'put ''Qm1iM1Z1WkFCWGNtOXVaeUJ0WldScGRXMGdkSGx3WlFCT2J5Qmxjbkp2Y2lCcGJtWnZjbTFoZEdsdmJnQUFFaEFURkJVV0Z4Z1pHaHNjSFI0ZklDRVFFQ0lqRUNRbEppY29LU29yRUN3dExoRXZNQkVSTVJFUkVUSXpORFUyTnpnNUVSQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJB''@;'; put 'put ''NkVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkE3RUR3OVBqOUFRUkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFR''@;'; put 'put ''RUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQkNFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJCREVCQkVFRVZHUnhCSUVFa1FFQkFRU2t0TVRSQVFUaEJQVUJBUUVCQlJFQkFRRUJBUUVCQVFFQkFRRUZJUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFF''@;'; put 'put ''QkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVGTVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVC''@;'; put 'put ''QVFFQkFRRUJBUUVCQVFFQkFRRUJCVVZWWlhFQkJZV1JBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQmFFRnRjWFY1ZllHRmlFQkFRRUJBUUVCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; put 'put ''Ly8vLy9BQUFBQVA3L0FQd0JBQUQ0QVFBQWVBQUFBQUQvKzkvN0FBQ0FBQUFBZ0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE4QVB6LzRLLy8vLy8vLy8vLy8vLy8zLy8vLy8vL0lFQ3dBQUFBQUFBQUFBQUFBQUFBQUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVB3REFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVB3QUFBQUFBSWIrLy8vL0FFQkpBQUFBQUFBWUFOLy9BTWdBQUFBQUFBQUFBUUE4QUFBQUFBQUFBQUFBQUFBQUVPQUJIZ0JnLzc4QUFBQUFBQUQvQndBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFENHp3TUFBQUFEQUNEL2Z3QUFBRTRBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBUHdBQUFBQUFBQUFBQUFRQUNBZUFEQUFBUUFBQUFBQUFBQUFFQUFnQUFBQUFQd1BBQUFBQUFBQUFCQUFJQUFBQUFBQUFBQUFBQUFBQUFBUUFDQUFBQUFBQXdBQUFBQUFBQUFBRUFBZ0FBQUFBUDBBQUFBQUFBQUFBQUFBSUFBQUFBRC9Cd0FBQUFBQUFBQUFBQ0FBQUFBQUFQ''@;'; put 'put ''OEFBQUFBQUFBQUVBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUlBQUFBQUEvQWdBQUFBQUFBQUFBQUFRQUFBQUFFQUFBQUFBQUFJQUFnTURmQUF3QUFBQUFBQUFBQUFBQUFBQUFId0FBQUFBQUFQNy8vLzhBL1AvL0FBQUFBQUFBQUFEOEFBQUFBQUFBd1AvZi93Y0FBQUFBQUFBQUFBQUFnQVlBL0FB''@;'; put 'put ''QUdENEFBSUMvQU13QUFBQUFBQUFBQUFBQUFBZ0FBQUFBQUFBQUFBQUFBR0QvLy84ZkFBRC9Bd0FBQUFBQUFBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUdBQUFBRUFBQmdBQUFBQUFBQUFBQUE0QUFBQUFCQUFBQUJ3''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBL244dkFBRC9BLzkvQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0eEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXhQLy8vLzhBQUFEQUFBQUFBQUFBQUFBQkFPQ2ZBQUFBQUg4L0FBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUJBQUVBQUEvUC8vL3g4QUFBQUFBQXdBQUFBQUFBQkFBQXp3QUFBQUFBQUF3UGdBQUFBQUFBQUF3QUFBQUFBQUFBQUEvd0QvLy84aEVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFELy8vLy9md0FBOEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFvQVBnQU9BQTRB''@;'; put 'put ''QmdnUGovLy8vOC8vLy8vLzkvSC96eGYvOS9BQUQvLy84REFBRC8vLy8vQVFCN0E5REJyMElBREIrOC8vOEFBQUFBQUFMLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3c4QS8vLy8vMzhBQUFEL0J3QUEvLy8vLy8vLy8vLy8vejhBQUFB''@;'; put 'put ''QUFBRDgvLy8rLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy94Ly9Bd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9DSEEvNEFBQUFBQUFBQUFBQUFBQUFBQUFHQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQVAvLy8vLy9mLzhQQUFBQUFBQUFBQUQvLy8vNy8vLy8vLy8vLy8vLy93OEEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOC9BQUFBL3c4ZS8vLy9BZnpCNEFBQUFBQUFBQUFBQUFBQUhnRUFBQUFBQUFBQUFBQUFDQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''UC8vQUFBQUFQLy8vLzhQQUFBQS8vLy9mLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vMzhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vLzM4QUFBQUFBQURBQU9BQUFBQUFBQUFBQUFBQUFJ''@;'; put 'put ''QVBjQUFBQUFBQUFBQUFBQUFBQUFBQS93RC8vMzhBQXdBQUFBQUFBQUFBQUFBQUFBWUFBQUFBQUFBQUFBQUFBQUFBQUVRSUFBQUFELzhEQUFBQUFBQUE4QUFBQUFBQUFBQUFBQkRBQUFELy93TUhBQUFBQUFENEFBQUFBQWlBQUFBQUFBQUFBQUFBQUFnQS96OEF3QUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFQQUFBSUFMQUFBQUFBQUFBSUFDQUFEQUFBQkRBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT0FBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFB''@;'; put 'put ''QWdBQUFBQUFBQUFBQUFBQUFBQUFBQUQ4L3dNQUFBQUFBQUFBQUFBQUFBQUFBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFERC8vLzhEZndELy8vLy85LzkvRHdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBZ1A3L0FQd0JBQUQ0QVFBQStEOEFBQUFBQUFBQUFBQUFBQUFBQUFCL2Z3QXdo''@;'; put 'put ''Ly8vLy8vL2ovOEFBQUFBQUFEZy8vOEgvdzhBQUFBQUFBRC8vLy8vL3o4QUFBQUFEd0FBQUFBQUFBQUFBQUFBQUFBQWdBQUFBQUFBQUFFQUFBQUFBQUFBQUFBQUFBQUFBQUNBL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBREFqd0FBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFoLzhBL3dFQUFBRGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEK0FBQUEvd0FBQVA4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy9md0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQS8vUDgvQUFBQUF3QUFBQUFBQVA0''@;'; put 'put ''REFBQUFBQUFBQUFBQUFBQUFBQmdBRHdBQUFBQUFBQUFBQUFBQUFBQUFBT0VCQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU1BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQThBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFnQWNB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9Qd0QvLy8vL2YvNy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzgvQUFBQUFQLy8vLy8vLy8vL1B3QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLy8vLzM4QS8vOERB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBQUlBQUFBQ0FBQUlBQUFBQ0FBQUlBQUFBQ0FBQUFBQWdBQUFBSUFBQWdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdELy8vLy8vdy8vLy8vLy8v''@;'; put 'put ''Ly8vLy8vLy84UEFQOS8vbi8rLy83L0FBQUFBUDhILy8vL2YvLy8vLy8vLy84UC8vLy8vLzhIQUFBQUFBQUFBQURBLy8vL0J3RC8vLy8vL3dmL0FRTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vL0FRQy8vLy8vLy8vLy8vOGYvLzhQQVAvLy8vL2ZCd0FBLy84QkFQLy8vLy8vLy85''@;'; put 'put ''Ly9mLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhlLy8vLy8vLy8vejhQQVAvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQai8vLy8vLy8vLy8rSC9BQUFBQUFBQS8vLy8vLy8vLy84L0FBQUFBQUFBQVAvLy8vLy8vLy8vLy8vLy8vLy9Ed0FBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8v''@;'; put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL3dBQkFnTUVCUVlIQ0FuLy8vLy8vLy8vQ2dzTURRNFBFQkVTRXhRVkZoY1lHUm9iSEIwZUh5QWhJaVAvLy8vLy8vOEtDd3dORGc4UUVSSVRGQlVXRnhnWkdoc2NIUjRmSUNFaUkvLy8v''@;'; put 'put ''Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v''@;'; put 'put ''Ly8vLy8vLy84QUFRSUVCd01HQlFBU0VSTVVGUllYR0JrYUd4d2RIaDhnSVJFaUl5UVJKU1luS0NrcUt5d1JMUzR2RUJBd0VCQVFFQkFRRURFeU14QTBOUkFRRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFVFlSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJF''@;'; put 'put ''UkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkUzRVJFUkVUZ1JPVG83UEQwK0VSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVJFUkVSRVQ4UUVCQVFFQkFRRUJBUUVCQVFFQkFR''@;'; put 'put ''RUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFSUUVFUlFrTkVSVVpIU0VrUUVCQktTMHhOVGhBUUVFOVFFQkFRRUZFUUVCQVFFQkFRRUJBUkVSRlNVeEFRRUJBUUVCQVFFQkFRRVJFUkVWUVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFF''@;'; put 'put ''QkFRRUJBUkVWVVFFQkFRVmhBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJCWEVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJBUUVCQVFFQkFRRUJCWVdWcGJFQkFRRUJBUUVC''@;'; put 'put ''QVFFQkFRRUJBUUVCQVFFQkFRRUZ3UUVCQVFFQkFRRUJBUUVCQVFFQkFRRUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84QUFBQUFBQUFBQVA3Ly93ZisvLzhIQUFBQUFBQUVJQVQvLzMv''@;'; put 'put ''Ly8vOS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy84UC9Bd0FmVUFBQUFBQUFBQUFBQUFBZ0FBQUFBQURmUEVEWC8vLzcvLy8vLy8vLy8vLy92Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy9BL3ovLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vQVA3Ly8vOS9BdjcvLy8vL0FBQUFBQUQv''@;'; put 'put ''djdZQS8vLy9Cd2NBQUFEL0IvLy8vLy8vLy8vKy84UC8vLy8vLy8vLy8vLy8vLy92SC83aC81OEFBUC8vLy8vLy93RGcvLy8vLy8vLy8vLy8vLy8vQXdELy8vLy8vd2N3QlAvLy8vei9Id0FBLy8vL0FRQUFBQUFBQUFBQS9SOEFBQUFBQUFEd0EvOS8vLy8vLy8vLy8rLy8zK0gvei8vKy91NmYr''@;'; put 'put ''Zi8vL2NYam4xbUFzTS8vQXdEdWgvbi8vLzF0dzRjWkFsN0EvejhBN3IvNy8vLzk3ZU8vR3dFQXovOEFBTzZmK2YvLy9lM2pueG5Bc00vL0FnRHN4ejNXR01mL3c4Y2RnUURBL3dBQTd0LzkvLy85NytQZkhXQUR6LzhBQU96Zi9mLy8vZS9qM3gxZ1FNLy9CZ0RzMy8zLy8vLy81OTlkZ0FEUC93''@;'; put 'put ''RDg3UDkvL1AvLyt5OS9nRi8vQUFBTUFQNy8vLy8vZi84SFB5RC9Bd0FBQUFDV0pmRCtydXovTzE4Zy8vTUFBQUFBQVFBQUFQOERBQUQvL3YvLy94Lysvd1AvLy83Ly8vOGZBQUFBQUFBQUFBRC8vLy8vLy85LytmOEQvLy9ud2YvL2YwRC9NLy8vLy8rL0lQLy8vLy8vOS8vLy8vLy8vLy8vL3ox''@;'; put 'put ''L1BmLy8vLy8vUGYvLy8vODlmejMvZi8vLy8vLy8vLzg5Ly8vLy8vLy8vLytIQUFBQUFQLy9BQUQvLy8vLy8vLy8vLy8vSHdEKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8rZi8vLysvLzhILy8vLy8vLy8vLy8veHdFQS85OFBBUC8v''@;'; put 'put ''RHdELy93OEEvOThOQVAvLy8vLy8vOC8vL3dHQUVQOERBQUFBQVA4RC8vLy8vLy8vLy8vLy8vOEEvLy8vLy84SC8vLy8vLy8vLy84L0FQLy8veC8vRC84QndQLy8vLzgvSHdELy8vLy8vdy8vLy84RC93TUFBQUFBLy8vL0QvLy8vLy8vLy85Ly92OGZBUDhEL3dPQUFBQUFBQUFBQUFBQUFBRC8v''@;'; put 'put ''Ly8vLy8vdi8rOFAvd01BQUFBQS8vLy8vLy96Ly8vLy8vLy92LzhEQVAvLy8vLy8vejhBLytQLy8vLy8vejhBQUFBQUFBQUFBQUFBQUFBQTNtOEEvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUFBQUFELy96OC8vLy8vL3o4Ly82ci8vLzgvLy8vLy8vLy8zMS9jSDg4UC94''@;'; put 'put ''L2NId0FBQUFBQUFBQUFBQUFBQUFBQUFvQUFBUDhmQUFBQUFBQUFBQUFBQUFBQWhQd3ZQbEM5Ly9QZ1F3QUEvLy8vLy84QkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQXdQLy8vLy8vL3dNQUFQLy8vLy8vZi8vLy8vLy9mLy8vLy8vLy8vLy8vLy8vLy8v''@;'; put 'put ''Ly8vOGZlQXdBLy8vLy83OGcvLy8vLy8vLy80QUFBUC8vZndCL2YzOS9mMzkvZi8vLy8vOEFBQUFBQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU9BQUFBRCtBejRmL3YvLy8vLy8vLy8vLzMvZy92Ly8vLy8vLy8vLy8vLzM0UC8vLy84Ly92Ly8vLy8vLy8vLy8vOS9BQUQv''@;'; put 'put ''Ly84SEFBQUFBQUFBLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9Qd0FBQUFBQUFBQUFBUC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vOGZBQUFBQUFBQS8vLy8vLy8vLy8vLy8vLy8vLy8vLy84ZkFBQUFBQUFBQUFELy8vLy8vei8vSC8vLy93OEFBUC8vLy8vL2YvQ1Av''@;'; put 'put ''Ly8vZ1AvLy8vLy8vLy8vLy84QUFBQUFnUC84Ly8vLy8vLy8vLy8vLy8vL2VROEEvd2NBQUFBQUFBQUFBQUQvdS9mLy8vOEFBQUQvLy8vLy8vOFBBUC8vLy8vLy8vLy9Ed0QvQXdBQS9Bai8vLy8vL3dmLy8vLy9Cd0QvLy84Zi8vLy8vLy8vOS84QWdQOERBQUFBQVAvLy8vLy8vMzhBL3ovL0Ev''@;'; put 'put ''Ly9md1QvLy8vLy8vLy9md1VBQURqLy96d0FmbjUrQUg5L0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLzhIL3dQLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy93OEEvLzkvK1AvLy8vLy9ELy8vLy8vLy8vLy8vLy8vLy84Ly8vLy8vLy8vLy8vLy8vLy8vd01BQUFBQWZ3RDQ0UC85ZjEv''@;'; put 'put ''Yi8vLy8vLy8vLy8vLy8vLy8vd01BQUFENC8vLy8vLy8vLy8vLy8vLy9Qd0FBLy8vLy8vLy8vLy84Ly8vLy8vLy9BQUFBQUFEL0R3QUFBQUFBQUFBQUFBQUFBQUFBMy8vLy8vLy8vLy8vLy8vLy8vLy8vLzhmQUFEL0EvNy8vd2YrLy84SHdQLy8vLy8vLy8vLy8vOS8vUHo4SEFBQUFBRC83Ly8v''@;'; put 'put ''Zi8vL3QvOC8vejhBQUFBQS8vLy8vLy8vLy8vLy8vLy8vLy8vQndBQUFBQUFBQUFBLy8vLy8vLy9Id0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFQLy8veC8vLy8vLy8vOEJBQUFBQUFELy8vOS9BQUQvLy84SEFBQUFBQUFBLy8vL1AvLy8vLzhQL3o0QUFBQUFB''@;'; put 'put ''UC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLzgvL3dNQUFBQUFBQUFBQUFBQVAvMy8vLy8vdjVILy96OEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvL3o4QS8vLy9Bd0FBQUFBQUFBQUEvLy8vLy8vLy84QUFBQUFBQUFBQUFHL3c3LzcvL3c4QUFBQUFBUC8vL3g4QUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBLy8vLy8vLy9Qd0QvL3o4QS8vOEhBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRC8vLy8vLy8vLy8vOEJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vUHdBQUFNRC9BQUQ4Ly8vLy8vLy9BUUFBLy8vL0FmOEQvLy8vLy8vL3gvOEFBQUFBQUFBQUFQLy8vLy8vLy8v''@;'; put 'put ''L0hnRC9Bd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy9Qd0QvQXdBQUFBQUFBUC8vLy8vLy8vLy8vLy8vLy85L0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQS8vLy8vLy8vLy8vLy8vLy9Cd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUQvLy8vLy8zOEFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFQLy8vLy8vLy84QkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBLy8vLy8vLy8vLzhmQVAvLy8vLy9md0FBK1A4QUFBQUFBQUFBQUFBQUFBQURBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVAvLy8vLy8vLy8vLy8vZi8vLy8v''@;'; put 'put ''Ly8vLy8vZlpONy82Ky8vLy8vLy8vLy92K2ZmMy8vLy8zdGYvUDMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy96Ly8vLy85Ly8vMy8vLy85Ly8vMy8vLy85Ly8vMy8vLy85Ly8vLy8vZi8vLy8zLy8vZlAvLy8vLy8vLzcvLy8vNWIrOXdxRTZw''@;'; put 'put ''YXFsdmYzWHYvNy93L3UrLzhQQUFBQUFBQUFBQUJNUTE5QlRFd0FURU5mUTFSWlVFVUFBQUFBVEVOZlRsVk5SVkpKUXdBQVRFTmZWRWxOUlFBQUFBQUFURU5mUTA5TVRFRlVSUUFBVEVOZlRVOU9SVlJCVWxrQVRFTmZUVVZUVTBGSFJWTUFURUZPUndCRExsVlVSaTA0QUZCUFUwbFlBRTFWVTB4''@;'; put 'put ''ZlRFOURVRUZVU0FBUkFBb0FFUkVSQUFBQUFBVUFBQUFBQUFBSkFBQUFBQXNBQUFBQUFBQUFBQkVBRHdvUkVSRURDZ2NBQVJNSkN3c0FBQWtHQ3dBQUN3QUdFUUFBQUJFUkVRQUFBQUFBQUFBQUFBQUFBQUFBQUFBTEFBQUFBQUFBQUFBUkFBb0tFUkVSQUFvQUFBSUFDUXNBQUFBSkFBc0FBQXNB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFEQUFBQUFBQUFBQUFBQUFBREFBQUFBQU1BQUFBQUFrTUFBQUFBQUFNQUFBTUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUE0QUFBQUFBQUFBQUFBQUFBMEFBQUFFRFFBQUFBQUpEZ0FBQUFBQURnQUFEZ0FBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBQUFBQUFBQUFBQVFBQUFBQUFBQUFBQUFBQUFQQUFBQUFBOEFBQUFBQ1JBQUFBQUFBQkFBQUJBQUFCSUFBQUFTRWhJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRWdBQUFCSVNFZ0FBQUFBQUFBa0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB''@;'; put 'put ''QUFBQUFBQUFBQUFBc0FBQUFBQUFBQUFBQUFBQW9BQUFBQUNnQUFBQUFKQ3dBQUFBQUFDd0FBQ3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNQUFBQUFBQUFBQUFBQUFBTUFBQUFBQXdBQUFBQUNRd0FBQUFBQUF3QUFBd0FBQzBySUNBZ01GZ3dlQUFvYm5Wc2JDa0FMVEJZS3pC''@;'; put 'put ''WUlEQllMVEI0S3pCNElEQjRBR2x1WmdCSlRrWUFUa0ZPQURBeE1qTTBOVFkzT0RsQlFrTkVSVVl1QUdGc2JuVnRBR0ZzY0doaEFHSnNZVzVyQUdOdWRISnNBR1JwWjJsMEFHZHlZWEJvQUd4dmQyVnlBSEJ5YVc1MEFIQjFibU4wQUhOd1lXTmxBSFZ3Y0dWeUFIaGthV2RwZEFCRExsVlVSaTA0''@;'; put 'put ''QUFBQUFBQUFBQUFBUXdBdmNISnZZeTl6Wld4bUwyWmtMd0J5ZDJFQWFXNW1hVzVwZEhrQWJtRnVBQWtBQ2dBTkFBd0FCd0FiQUZ0Yk9tRnNiblZ0T2wxZlhRQmJYbHM2WVd4dWRXMDZYVjlkQUZ0Yk9uTndZV05sT2wxZEFGdGVXenB6Y0dGalpUcGRYUUJiV3pwa2FXZHBkRHBkWFFCYlhsczZa''@;'; put 'put ''R2xuYVhRNlhWMEFMM1J0Y0M5MGJYQm1hV3hsWDFoWVdGaFlXQUIzS3c9PSI7dmFyIE1hPXl0O2Z1bmN0aW9uIG5sKGR0LEl0LFB0LGZlKXtmMigiQXNzZXJ0aW9uIGZhaWxlZDogIitGKGR0KSsiLCBhdDogIitbSXQ/RihJdCk6InVua25vd24gZmlsZW5hbWUiLFB0LGZlP0YoZmUpOiJ1bmtu''@;'; put 'put ''b3duIGZ1bmN0aW9uIl0pfWZ1bmN0aW9uIGdsKCl7ZjIoKX1mdW5jdGlvbiBBaSgpe3JldHVybiBOfHwidW5kZWZpbmVkIiE9dHlwZW9mIGRhdGVOb3d8fChZfHxXKSYmc2VsZi5wZXJmb3JtYW5jZSYmc2VsZi5wZXJmb3JtYW5jZS5ub3d9eXQrPTE2O3ZhciB2aT17RVBFUk06MSxFTk9FTlQ6''@;'; put 'put ''MixFU1JDSDozLEVJTlRSOjQsRUlPOjUsRU5YSU86NixFMkJJRzo3LEVOT0VYRUM6OCxFQkFERjo5LEVDSElMRDoxMCxFQUdBSU46MTEsRVdPVUxEQkxPQ0s6MTEsRU5PTUVNOjEyLEVBQ0NFUzoxMyxFRkFVTFQ6MTQsRU5PVEJMSzoxNSxFQlVTWToxNixFRVhJU1Q6MTcsRVhERVY6MTgsRU5P''@;'; put 'put ''REVWOjE5LEVOT1RESVI6MjAsRUlTRElSOjIxLEVJTlZBTDoyMixFTkZJTEU6MjMsRU1GSUxFOjI0LEVOT1RUWToyNSxFVFhUQlNZOjI2LEVGQklHOjI3LEVOT1NQQzoyOCxFU1BJUEU6MjksRVJPRlM6MzAsRU1MSU5LOjMxLEVQSVBFOjMyLEVET006MzMsRVJBTkdFOjM0LEVOT01TRzo0MixF''@;'; put 'put ''SURSTTo0MyxFQ0hSTkc6NDQsRUwyTlNZTkM6NDUsRUwzSExUOjQ2LEVMM1JTVDo0NyxFTE5STkc6NDgsRVVOQVRDSDo0OSxFTk9DU0k6NTAsRUwySExUOjUxLEVERUFETEs6MzUsRU5PTENLOjM3LEVCQURFOjUyLEVCQURSOjUzLEVYRlVMTDo1NCxFTk9BTk86NTUsRUJBRFJRQzo1NixFQkFE''@;'; put 'put ''U0xUOjU3LEVERUFETE9DSzozNSxFQkZPTlQ6NTksRU5PU1RSOjYwLEVOT0RBVEE6NjEsRVRJTUU6NjIsRU5PU1I6NjMsRU5PTkVUOjY0LEVOT1BLRzo2NSxFUkVNT1RFOjY2LEVOT0xJTks6NjcsRUFEVjo2OCxFU1JNTlQ6NjksRUNPTU06NzAsRVBST1RPOjcxLEVNVUxUSUhPUDo3MixFRE9U''@;'; put 'put ''RE9UOjczLEVCQURNU0c6NzQsRU5PVFVOSVE6NzYsRUJBREZEOjc3LEVSRU1DSEc6NzgsRUxJQkFDQzo3OSxFTElCQkFEOjgwLEVMSUJTQ046ODEsRUxJQk1BWDo4MixFTElCRVhFQzo4MyxFTk9TWVM6MzgsRU5PVEVNUFRZOjM5LEVOQU1FVE9PTE9ORzozNixFTE9PUDo0MCxFT1BOT1RTVVBQ''@;'; put 'put ''Ojk1LEVQRk5PU1VQUE9SVDo5NixFQ09OTlJFU0VUOjEwNCxFTk9CVUZTOjEwNSxFQUZOT1NVUFBPUlQ6OTcsRVBST1RPVFlQRTo5MSxFTk9UU09DSzo4OCxFTk9QUk9UT09QVDo5MixFU0hVVERPV046MTA4LEVDT05OUkVGVVNFRDoxMTEsRUFERFJJTlVTRTo5OCxFQ09OTkFCT1JURUQ6MTAz''@;'; put 'put ''LEVORVRVTlJFQUNIOjEwMSxFTkVURE9XTjoxMDAsRVRJTUVET1VUOjExMCxFSE9TVERPV046MTEyLEVIT1NUVU5SRUFDSDoxMTMsRUlOUFJPR1JFU1M6MTE1LEVBTFJFQURZOjExNCxFREVTVEFERFJSRVE6ODksRU1TR1NJWkU6OTAsRVBST1RPTk9TVVBQT1JUOjkzLEVTT0NLVE5PU1VQUE9S''@;'; put 'put ''VDo5NCxFQUREUk5PVEFWQUlMOjk5LEVORVRSRVNFVDoxMDIsRUlTQ09OTjoxMDYsRU5PVENPTk46MTA3LEVUT09NQU5ZUkVGUzoxMDksRVVTRVJTOjg3LEVEUVVPVDoxMjIsRVNUQUxFOjExNixFTk9UU1VQOjk1LEVOT01FRElVTToxMjMsRUlMU0VROjg0LEVPVkVSRkxPVzo3NSxFQ0FOQ0VM''@;'; put 'put ''RUQ6MTI1LEVOT1RSRUNPVkVSQUJMRToxMzEsRU9XTkVSREVBRDoxMzAsRVNUUlBJUEU6ODZ9O2Z1bmN0aW9uIGIwKGR0KXtyZXR1cm4gai5fX19lcnJub19sb2NhdGlvbiYmKEx0W2ouX19fZXJybm9fbG9jYXRpb24oKT4+Ml09ZHQpLGR0fWZ1bmN0aW9uIHNhKGR0LEl0KXt2YXIgUHQ7aWYo''@;'; put 'put ''MD09PWR0KVB0PURhdGUubm93KCk7ZWxzZXtpZigxIT09ZHR8fCFBaSgpKXJldHVybiBiMCh2aS5FSU5WQUwpLC0xO1B0PWdsKCl9cmV0dXJuIEx0W0l0Pj4yXT1QdC8xZTN8MCxMdFtJdCs0Pj4yXT1QdCUxZTMqMWUzKjFlM3wwLDB9ZnVuY3Rpb24gcmwoKXtyZXR1cm4gc2EuYXBwbHkobnVs''@;'; put 'put ''bCxhcmd1bWVudHMpfWZ1bmN0aW9uIF9pKCl7fWZ1bmN0aW9uIG91KGR0LEl0KXtyZXR1cm4gYjAodmkuRVBFUk0pLC0xfXZhciBIYz17MDoiU3VjY2VzcyIsMToiTm90IHN1cGVyLXVzZXIiLDI6Ik5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkiLDM6Ik5vIHN1Y2ggcHJvY2VzcyIsNDoiSW50''@;'; put 'put ''ZXJydXB0ZWQgc3lzdGVtIGNhbGwiLDU6IkkvTyBlcnJvciIsNjoiTm8gc3VjaCBkZXZpY2Ugb3IgYWRkcmVzcyIsNzoiQXJnIGxpc3QgdG9vIGxvbmciLDg6IkV4ZWMgZm9ybWF0IGVycm9yIiw5OiJCYWQgZmlsZSBudW1iZXIiLDEwOiJObyBjaGlsZHJlbiIsMTE6Ik5vIG1vcmUgcHJvY2Vz''@;'; put 'put ''c2VzIiwxMjoiTm90IGVub3VnaCBjb3JlIiwxMzoiUGVybWlzc2lvbiBkZW5pZWQiLDE0OiJCYWQgYWRkcmVzcyIsMTU6IkJsb2NrIGRldmljZSByZXF1aXJlZCIsMTY6Ik1vdW50IGRldmljZSBidXN5IiwxNzoiRmlsZSBleGlzdHMiLDE4OiJDcm9zcy1kZXZpY2UgbGluayIsMTk6Ik5vIHN1''@;'; put 'put ''Y2ggZGV2aWNlIiwyMDoiTm90IGEgZGlyZWN0b3J5IiwyMToiSXMgYSBkaXJlY3RvcnkiLDIyOiJJbnZhbGlkIGFyZ3VtZW50IiwyMzoiVG9vIG1hbnkgb3BlbiBmaWxlcyBpbiBzeXN0ZW0iLDI0OiJUb28gbWFueSBvcGVuIGZpbGVzIiwyNToiTm90IGEgdHlwZXdyaXRlciIsMjY6IlRleHQg''@;'; put 'put ''ZmlsZSBidXN5IiwyNzoiRmlsZSB0b28gbGFyZ2UiLDI4OiJObyBzcGFjZSBsZWZ0IG9uIGRldmljZSIsMjk6IklsbGVnYWwgc2VlayIsMzA6IlJlYWQgb25seSBmaWxlIHN5c3RlbSIsMzE6IlRvbyBtYW55IGxpbmtzIiwzMjoiQnJva2VuIHBpcGUiLDMzOiJNYXRoIGFyZyBvdXQgb2YgZG9t''@;'; put 'put ''YWluIG9mIGZ1bmMiLDM0OiJNYXRoIHJlc3VsdCBub3QgcmVwcmVzZW50YWJsZSIsMzU6IkZpbGUgbG9ja2luZyBkZWFkbG9jayBlcnJvciIsMzY6IkZpbGUgb3IgcGF0aCBuYW1lIHRvbyBsb25nIiwzNzoiTm8gcmVjb3JkIGxvY2tzIGF2YWlsYWJsZSIsMzg6IkZ1bmN0aW9uIG5vdCBpbXBs''@;'; put 'put ''ZW1lbnRlZCIsMzk6IkRpcmVjdG9yeSBub3QgZW1wdHkiLDQwOiJUb28gbWFueSBzeW1ib2xpYyBsaW5rcyIsNDI6Ik5vIG1lc3NhZ2Ugb2YgZGVzaXJlZCB0eXBlIiw0MzoiSWRlbnRpZmllciByZW1vdmVkIiw0NDoiQ2hhbm5lbCBudW1iZXIgb3V0IG9mIHJhbmdlIiw0NToiTGV2ZWwgMiBu''@;'; put 'put ''b3Qgc3luY2hyb25pemVkIiw0NjoiTGV2ZWwgMyBoYWx0ZWQiLDQ3OiJMZXZlbCAzIHJlc2V0Iiw0ODoiTGluayBudW1iZXIgb3V0IG9mIHJhbmdlIiw0OToiUHJvdG9jb2wgZHJpdmVyIG5vdCBhdHRhY2hlZCIsNTA6Ik5vIENTSSBzdHJ1Y3R1cmUgYXZhaWxhYmxlIiw1MToiTGV2ZWwgMiBo''@;'; put 'put ''YWx0ZWQiLDUyOiJJbnZhbGlkIGV4Y2hhbmdlIiw1MzoiSW52YWxpZCByZXF1ZXN0IGRlc2NyaXB0b3IiLDU0OiJFeGNoYW5nZSBmdWxsIiw1NToiTm8gYW5vZGUiLDU2OiJJbnZhbGlkIHJlcXVlc3QgY29kZSIsNTc6IkludmFsaWQgc2xvdCIsNTk6IkJhZCBmb250IGZpbGUgZm10Iiw2MDoi''@;'; put 'put ''RGV2aWNlIG5vdCBhIHN0cmVhbSIsNjE6Ik5vIGRhdGEgKGZvciBubyBkZWxheSBpbykiLDYyOiJUaW1lciBleHBpcmVkIiw2MzoiT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzIiw2NDoiTWFjaGluZSBpcyBub3Qgb24gdGhlIG5ldHdvcmsiLDY1OiJQYWNrYWdlIG5vdCBpbnN0YWxsZWQiLDY2''@;'; put 'put ''OiJUaGUgb2JqZWN0IGlzIHJlbW90ZSIsNjc6IlRoZSBsaW5rIGhhcyBiZWVuIHNldmVyZWQiLDY4OiJBZHZlcnRpc2UgZXJyb3IiLDY5OiJTcm1vdW50IGVycm9yIiw3MDoiQ29tbXVuaWNhdGlvbiBlcnJvciBvbiBzZW5kIiw3MToiUHJvdG9jb2wgZXJyb3IiLDcyOiJNdWx0aWhvcCBhdHRl''@;'; put 'put ''bXB0ZWQiLDczOiJDcm9zcyBtb3VudCBwb2ludCAobm90IHJlYWxseSBlcnJvcikiLDc0OiJUcnlpbmcgdG8gcmVhZCB1bnJlYWRhYmxlIG1lc3NhZ2UiLDc1OiJWYWx1ZSB0b28gbGFyZ2UgZm9yIGRlZmluZWQgZGF0YSB0eXBlIiw3NjoiR2l2ZW4gbG9nLiBuYW1lIG5vdCB1bmlxdWUiLDc3''@;'; put 'put ''OiJmLmQuIGludmFsaWQgZm9yIHRoaXMgb3BlcmF0aW9uIiw3ODoiUmVtb3RlIGFkZHJlc3MgY2hhbmdlZCIsNzk6IkNhbiAgIGFjY2VzcyBhIG5lZWRlZCBzaGFyZWQgbGliIiw4MDoiQWNjZXNzaW5nIGEgY29ycnVwdGVkIHNoYXJlZCBsaWIiLDgxOiIubGliIHNlY3Rpb24gaW4gYS5vdXQg''@;'; put 'put ''Y29ycnVwdGVkIiw4MjoiQXR0ZW1wdGluZyB0byBsaW5rIGluIHRvbyBtYW55IGxpYnMiLDgzOiJBdHRlbXB0aW5nIHRvIGV4ZWMgYSBzaGFyZWQgbGlicmFyeSIsODQ6IklsbGVnYWwgYnl0ZSBzZXF1ZW5jZSIsODY6IlN0cmVhbXMgcGlwZSBlcnJvciIsODc6IlRvbyBtYW55IHVzZXJzIiw4''@;'; put 'put ''ODoiU29ja2V0IG9wZXJhdGlvbiBvbiBub24tc29ja2V0Iiw4OToiRGVzdGluYXRpb24gYWRkcmVzcyByZXF1aXJlZCIsOTA6Ik1lc3NhZ2UgdG9vIGxvbmciLDkxOiJQcm90b2NvbCB3cm9uZyB0eXBlIGZvciBzb2NrZXQiLDkyOiJQcm90b2NvbCBub3QgYXZhaWxhYmxlIiw5MzoiVW5rbm93''@;'; put 'put ''biBwcm90b2NvbCIsOTQ6IlNvY2tldCB0eXBlIG5vdCBzdXBwb3J0ZWQiLDk1OiJOb3Qgc3VwcG9ydGVkIiw5NjoiUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQiLDk3OiJBZGRyZXNzIGZhbWlseSBub3Qgc3VwcG9ydGVkIGJ5IHByb3RvY29sIGZhbWlseSIsOTg6IkFkZHJlc3MgYWxy''@;'; put 'put ''ZWFkeSBpbiB1c2UiLDk5OiJBZGRyZXNzIG5vdCBhdmFpbGFibGUiLDEwMDoiTmV0d29yayBpbnRlcmZhY2UgaXMgbm90IGNvbmZpZ3VyZWQiLDEwMToiTmV0d29yayBpcyB1bnJlYWNoYWJsZSIsMTAyOiJDb25uZWN0aW9uIHJlc2V0IGJ5IG5ldHdvcmsiLDEwMzoiQ29ubmVjdGlvbiBhYm9y''@;'; put 'put ''dGVkIiwxMDQ6IkNvbm5lY3Rpb24gcmVzZXQgYnkgcGVlciIsMTA1OiJObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlIiwxMDY6IlNvY2tldCBpcyBhbHJlYWR5IGNvbm5lY3RlZCIsMTA3OiJTb2NrZXQgaXMgbm90IGNvbm5lY3RlZCIsMTA4OiJDYW4ndCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0''@;'; put 'put ''ZG93biIsMTA5OiJUb28gbWFueSByZWZlcmVuY2VzIiwxMTA6IkNvbm5lY3Rpb24gdGltZWQgb3V0IiwxMTE6IkNvbm5lY3Rpb24gcmVmdXNlZCIsMTEyOiJIb3N0IGlzIGRvd24iLDExMzoiSG9zdCBpcyB1bnJlYWNoYWJsZSIsMTE0OiJTb2NrZXQgYWxyZWFkeSBjb25uZWN0ZWQiLDExNToi''@;'; put 'put ''Q29ubmVjdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzIiwxMTY6IlN0YWxlIGZpbGUgaGFuZGxlIiwxMjI6IlF1b3RhIGV4Y2VlZGVkIiwxMjM6Ik5vIG1lZGl1bSAoaW4gdGFwZSBkcml2ZSkiLDEyNToiT3BlcmF0aW9uIGNhbmNlbGVkIiwxMzA6IlByZXZpb3VzIG93bmVyIGRpZWQiLDEzMToi''@;'; put 'put ''U3RhdGUgbm90IHJlY292ZXJhYmxlIn0sVTA9e3NwbGl0UGF0aDpmdW5jdGlvbihkdCl7cmV0dXJuL14oXC8/fCkoW1xzXFNdKj8pKCg/OlwuezEsMn18W15cL10rP3wpKFwuW14uXC9dKnwpKSg/OltcL10qKSQvLmV4ZWMoZHQpLnNsaWNlKDEpfSxub3JtYWxpemVBcnJheTpmdW5jdGlvbihk''@;'; put 'put ''dCxJdCl7Zm9yKHZhciBQdD0wLGZlPWR0Lmxlbmd0aC0xO2ZlPj0wO2ZlLS0pe3ZhciBpdD1kdFtmZV07Ii4iPT09aXQ/ZHQuc3BsaWNlKGZlLDEpOiIuLiI9PT1pdD8oZHQuc3BsaWNlKGZlLDEpLFB0KyspOlB0JiYoZHQuc3BsaWNlKGZlLDEpLFB0LS0pfWlmKEl0KWZvcig7UHQ7UHQtLSlk''@;'; put 'put ''dC51bnNoaWZ0KCIuLiIpO3JldHVybiBkdH0sbm9ybWFsaXplOmZ1bmN0aW9uKGR0KXt2YXIgSXQ9Ii8iPT09ZHQuY2hhckF0KDApLFB0PSIvIj09PWR0LnN1YnN0cigtMSk7cmV0dXJuIShkdD1VMC5ub3JtYWxpemVBcnJheShkdC5zcGxpdCgiLyIpLmZpbHRlcihmdW5jdGlvbihmZSl7cmV0''@;'; put 'put ''dXJuISFmZX0pLCFJdCkuam9pbigiLyIpKSYmIUl0JiYoZHQ9Ii4iKSxkdCYmUHQmJihkdCs9Ii8iKSwoSXQ/Ii8iOiIiKStkdH0sZGlybmFtZTpmdW5jdGlvbihkdCl7dmFyIEl0PVUwLnNwbGl0UGF0aChkdCksUHQ9SXRbMF0sZmU9SXRbMV07cmV0dXJuIFB0fHxmZT8oZmUmJihmZT1mZS5z''@;'; put 'put ''dWJzdHIoMCxmZS5sZW5ndGgtMSkpLFB0K2ZlKToiLiJ9LGJhc2VuYW1lOmZ1bmN0aW9uKGR0KXtpZigiLyI9PT1kdClyZXR1cm4iLyI7dmFyIEl0PWR0Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuLTE9PT1JdD9kdDpkdC5zdWJzdHIoSXQrMSl9LGV4dG5hbWU6ZnVuY3Rpb24oZHQpe3JldHVy''@;'; put 'put ''biBVMC5zcGxpdFBhdGgoZHQpWzNdfSxqb2luOmZ1bmN0aW9uKCl7dmFyIGR0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtyZXR1cm4gVTAubm9ybWFsaXplKGR0LmpvaW4oIi8iKSl9LGpvaW4yOmZ1bmN0aW9uKGR0LEl0KXtyZXR1cm4gVTAubm9ybWFsaXplKGR0''@;'; put 'put ''KyIvIitJdCl9LHJlc29sdmU6ZnVuY3Rpb24oKXtmb3IodmFyIGR0PSIiLEl0PSExLFB0PWFyZ3VtZW50cy5sZW5ndGgtMTtQdD49LTEmJiFJdDtQdC0tKXt2YXIgZmU9UHQ+PTA/YXJndW1lbnRzW1B0XTp2bi5jd2QoKTtpZigic3RyaW5nIiE9dHlwZW9mIGZlKXRocm93IG5ldyBUeXBlRXJy''@;'; put 'put ''b3IoIkFyZ3VtZW50cyB0byBwYXRoLnJlc29sdmUgbXVzdCBiZSBzdHJpbmdzIik7aWYoIWZlKXJldHVybiIiO2R0PWZlKyIvIitkdCxJdD0iLyI9PT1mZS5jaGFyQXQoMCl9cmV0dXJuKEl0PyIvIjoiIikrKGR0PVUwLm5vcm1hbGl6ZUFycmF5KGR0LnNwbGl0KCIvIikuZmlsdGVyKGZ1bmN0''@;'; put 'put ''aW9uKGl0KXtyZXR1cm4hIWl0fSksIUl0KS5qb2luKCIvIikpfHwiLiJ9LHJlbGF0aXZlOmZ1bmN0aW9uKGR0LEl0KXtmdW5jdGlvbiBQdChqbil7Zm9yKHZhciBfPTA7Xzxqbi5sZW5ndGgmJiIiPT09am5bX107XysrKTtmb3IodmFyIEFvPWpuLmxlbmd0aC0xO0FvPj0wJiYiIj09PWpuW0Fv''@;'; put 'put ''XTtBby0tKTtyZXR1cm4gXz5Bbz9bXTpqbi5zbGljZShfLEFvLV8rMSl9ZHQ9VTAucmVzb2x2ZShkdCkuc3Vic3RyKDEpLEl0PVUwLnJlc29sdmUoSXQpLnN1YnN0cigxKTtmb3IodmFyIGZlPVB0KGR0LnNwbGl0KCIvIikpLGl0PVB0KEl0LnNwbGl0KCIvIikpLGE9TWF0aC5taW4oZmUubGVu''@;'; put 'put ''Z3RoLGl0Lmxlbmd0aCksWHQ9YSxocj0wO2hyPGE7aHIrKylpZihmZVtocl0hPT1pdFtocl0pe1h0PWhyO2JyZWFrfXZhciBQaT1bXTtmb3IoaHI9WHQ7aHI8ZmUubGVuZ3RoO2hyKyspUGkucHVzaCgiLi4iKTtyZXR1cm4oUGk9UGkuY29uY2F0KGl0LnNsaWNlKFh0KSkpLmpvaW4oIi8iKX19''@;'; put 'put ''LEJzPXt0dHlzOltdLGluaXQ6ZnVuY3Rpb24oKXt9LHNodXRkb3duOmZ1bmN0aW9uKCl7fSxyZWdpc3RlcjpmdW5jdGlvbihkdCxJdCl7QnMudHR5c1tkdF09e2lucHV0OltdLG91dHB1dDpbXSxvcHM6SXR9LHZuLnJlZ2lzdGVyRGV2aWNlKGR0LEJzLnN0cmVhbV9vcHMpfSxzdHJlYW1fb3Bz''@;'; put 'put ''OntvcGVuOmZ1bmN0aW9uKGR0KXt2YXIgSXQ9QnMudHR5c1tkdC5ub2RlLnJkZXZdO2lmKCFJdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9ERVYpO2R0LnR0eT1JdCxkdC5zZWVrYWJsZT0hMX0sY2xvc2U6ZnVuY3Rpb24oZHQpe2R0LnR0eS5vcHMuZmx1c2goZHQudHR5KX0sZmx1''@;'; put 'put ''c2g6ZnVuY3Rpb24oZHQpe2R0LnR0eS5vcHMuZmx1c2goZHQudHR5KX0scmVhZDpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCl7aWYoIWR0LnR0eXx8IWR0LnR0eS5vcHMuZ2V0X2NoYXIpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5YSU8pO2Zvcih2YXIgYT0wLFh0PTA7WHQ8ZmU7WHQr''@;'; put 'put ''Kyl7dmFyIGhyO3RyeXtocj1kdC50dHkub3BzLmdldF9jaGFyKGR0LnR0eSl9Y2F0Y2goUGkpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyl9aWYodm9pZCAwPT09aHImJjA9PT1hKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVBR0FJTik7aWYobnVsbD09aHIpYnJlYWs7YSsr''@;'; put 'put ''LEl0W1B0K1h0XT1ocn1yZXR1cm4gYSYmKGR0Lm5vZGUudGltZXN0YW1wPURhdGUubm93KCkpLGF9LHdyaXRlOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXtpZighZHQudHR5fHwhZHQudHR5Lm9wcy5wdXRfY2hhcil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTlhJTyk7Zm9yKHZhciBh''@;'; put 'put ''PTA7YTxmZTthKyspdHJ5e2R0LnR0eS5vcHMucHV0X2NoYXIoZHQudHR5LEl0W1B0K2FdKX1jYXRjaChYdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlPKX1yZXR1cm4gZmUmJihkdC5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpKSxhfX0sZGVmYXVsdF90dHlfb3BzOntnZXRfY2hh''@;'; put 'put ''cjpmdW5jdGlvbihkdCl7aWYoIWR0LmlucHV0Lmxlbmd0aCl7dmFyIEl0PW51bGw7aWYoTil7dmFyIGZlPW5ldyBCdWZmZXIoMjU2KSxpdD0wLGE9IndpbjMyIiE9cHJvY2Vzcy5wbGF0Zm9ybSxYdD1wcm9jZXNzLnN0ZGluLmZkO2lmKGEpe3ZhciBocj0hMTt0cnl7WHQ9bWwub3BlblN5bmMo''@;'; put 'put ''Ii9kZXYvc3RkaW4iLCJyIiksaHI9ITB9Y2F0Y2goUGkpe319dHJ5e2l0PW1sLnJlYWRTeW5jKFh0LGZlLDAsMjU2LG51bGwpfWNhdGNoKFBpKXtpZigtMT09UGkudG9TdHJpbmcoKS5pbmRleE9mKCJFT0YiKSl0aHJvdyBQaTtpdD0wfWhyJiZtbC5jbG9zZVN5bmMoWHQpLEl0PWl0PjA/ZmUu''@;'; put 'put ''c2xpY2UoMCxpdCkudG9TdHJpbmcoInV0Zi04Iik6bnVsbH1lbHNlInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJiJmdW5jdGlvbiI9PXR5cGVvZiB3aW5kb3cucHJvbXB0P251bGwhPT0oSXQ9d2luZG93LnByb21wdCgiSW5wdXQ6ICIpKSYmKEl0Kz0iXG4iKToiZnVuY3Rpb24iPT10eXBl''@;'; put 'put ''b2YgcmVhZGxpbmUmJm51bGwhPT0oSXQ9cmVhZGxpbmUoKSkmJihJdCs9IlxuIik7aWYoIUl0KXJldHVybiBudWxsO2R0LmlucHV0PXNvKEl0LCEwKX1yZXR1cm4gZHQuaW5wdXQuc2hpZnQoKX0scHV0X2NoYXI6ZnVuY3Rpb24oZHQsSXQpe251bGw9PT1JdHx8MTA9PT1JdD8oai5wcmludChD''@;'; put 'put ''ZShkdC5vdXRwdXQsMCkpLGR0Lm91dHB1dD1bXSk6MCE9SXQmJmR0Lm91dHB1dC5wdXNoKEl0KX0sZmx1c2g6ZnVuY3Rpb24oZHQpe2R0Lm91dHB1dCYmZHQub3V0cHV0Lmxlbmd0aD4wJiYoai5wcmludChDZShkdC5vdXRwdXQsMCkpLGR0Lm91dHB1dD1bXSl9fSxkZWZhdWx0X3R0eTFfb3Bz''@;'; put 'put ''OntwdXRfY2hhcjpmdW5jdGlvbihkdCxJdCl7bnVsbD09PUl0fHwxMD09PUl0PyhqLnByaW50RXJyKENlKGR0Lm91dHB1dCwwKSksZHQub3V0cHV0PVtdKTowIT1JdCYmZHQub3V0cHV0LnB1c2goSXQpfSxmbHVzaDpmdW5jdGlvbihkdCl7ZHQub3V0cHV0JiZkdC5vdXRwdXQubGVuZ3RoPjAm''@;'; put 'put ''JihqLnByaW50RXJyKENlKGR0Lm91dHB1dCwwKSksZHQub3V0cHV0PVtdKX19fSxYMD17b3BzX3RhYmxlOm51bGwsbW91bnQ6ZnVuY3Rpb24oZHQpe3JldHVybiBYMC5jcmVhdGVOb2RlKG51bGwsIi8iLDE2ODk1LDApfSxjcmVhdGVOb2RlOmZ1bmN0aW9uKGR0LEl0LFB0LGZlKXtpZih2bi5p''@;'; put 'put ''c0Jsa2RldihQdCl8fHZuLmlzRklGTyhQdCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO1gwLm9wc190YWJsZXx8KFgwLm9wc190YWJsZT17ZGlyOntub2RlOntnZXRhdHRyOlgwLm5vZGVfb3BzLmdldGF0dHIsc2V0YXR0cjpYMC5ub2RlX29wcy5zZXRhdHRyLGxvb2t1cDpY''@;'; put 'put ''MC5ub2RlX29wcy5sb29rdXAsbWtub2Q6WDAubm9kZV9vcHMubWtub2QscmVuYW1lOlgwLm5vZGVfb3BzLnJlbmFtZSx1bmxpbms6WDAubm9kZV9vcHMudW5saW5rLHJtZGlyOlgwLm5vZGVfb3BzLnJtZGlyLHJlYWRkaXI6WDAubm9kZV9vcHMucmVhZGRpcixzeW1saW5rOlgwLm5vZGVfb3Bz''@;'; put 'put ''LnN5bWxpbmt9LHN0cmVhbTp7bGxzZWVrOlgwLnN0cmVhbV9vcHMubGxzZWVrfX0sZmlsZTp7bm9kZTp7Z2V0YXR0cjpYMC5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6WDAubm9kZV9vcHMuc2V0YXR0cn0sc3RyZWFtOntsbHNlZWs6WDAuc3RyZWFtX29wcy5sbHNlZWsscmVhZDpYMC5zdHJl''@;'; put 'put ''YW1fb3BzLnJlYWQsd3JpdGU6WDAuc3RyZWFtX29wcy53cml0ZSxhbGxvY2F0ZTpYMC5zdHJlYW1fb3BzLmFsbG9jYXRlLG1tYXA6WDAuc3RyZWFtX29wcy5tbWFwLG1zeW5jOlgwLnN0cmVhbV9vcHMubXN5bmN9fSxsaW5rOntub2RlOntnZXRhdHRyOlgwLm5vZGVfb3BzLmdldGF0dHIsc2V0''@;'; put 'put ''YXR0cjpYMC5ub2RlX29wcy5zZXRhdHRyLHJlYWRsaW5rOlgwLm5vZGVfb3BzLnJlYWRsaW5rfSxzdHJlYW06e319LGNocmRldjp7bm9kZTp7Z2V0YXR0cjpYMC5ub2RlX29wcy5nZXRhdHRyLHNldGF0dHI6WDAubm9kZV9vcHMuc2V0YXR0cn0sc3RyZWFtOnZuLmNocmRldl9zdHJlYW1fb3Bz''@;'; put 'put ''fX0pO3ZhciBpdD12bi5jcmVhdGVOb2RlKGR0LEl0LFB0LGZlKTtyZXR1cm4gdm4uaXNEaXIoaXQubW9kZSk/KGl0Lm5vZGVfb3BzPVgwLm9wc190YWJsZS5kaXIubm9kZSxpdC5zdHJlYW1fb3BzPVgwLm9wc190YWJsZS5kaXIuc3RyZWFtLGl0LmNvbnRlbnRzPXt9KTp2bi5pc0ZpbGUoaXQu''@;'; put 'put ''bW9kZSk/KGl0Lm5vZGVfb3BzPVgwLm9wc190YWJsZS5maWxlLm5vZGUsaXQuc3RyZWFtX29wcz1YMC5vcHNfdGFibGUuZmlsZS5zdHJlYW0saXQudXNlZEJ5dGVzPTAsaXQuY29udGVudHM9bnVsbCk6dm4uaXNMaW5rKGl0Lm1vZGUpPyhpdC5ub2RlX29wcz1YMC5vcHNfdGFibGUubGluay5u''@;'; put 'put ''b2RlLGl0LnN0cmVhbV9vcHM9WDAub3BzX3RhYmxlLmxpbmsuc3RyZWFtKTp2bi5pc0NocmRldihpdC5tb2RlKSYmKGl0Lm5vZGVfb3BzPVgwLm9wc190YWJsZS5jaHJkZXYubm9kZSxpdC5zdHJlYW1fb3BzPVgwLm9wc190YWJsZS5jaHJkZXYuc3RyZWFtKSxpdC50aW1lc3RhbXA9RGF0ZS5u''@;'; put 'put ''b3coKSxkdCYmKGR0LmNvbnRlbnRzW0l0XT1pdCksaXR9LGdldEZpbGVEYXRhQXNSZWd1bGFyQXJyYXk6ZnVuY3Rpb24oZHQpe2lmKGR0LmNvbnRlbnRzJiZkdC5jb250ZW50cy5zdWJhcnJheSl7Zm9yKHZhciBJdD1bXSxQdD0wO1B0PGR0LnVzZWRCeXRlczsrK1B0KUl0LnB1c2goZHQuY29u''@;'; put 'put ''dGVudHNbUHRdKTtyZXR1cm4gSXR9cmV0dXJuIGR0LmNvbnRlbnRzfSxnZXRGaWxlRGF0YUFzVHlwZWRBcnJheTpmdW5jdGlvbihkdCl7cmV0dXJuIGR0LmNvbnRlbnRzP2R0LmNvbnRlbnRzLnN1YmFycmF5P2R0LmNvbnRlbnRzLnN1YmFycmF5KDAsZHQudXNlZEJ5dGVzKTpuZXcgVWludDhB''@;'; put 'put ''cnJheShkdC5jb250ZW50cyk6bmV3IFVpbnQ4QXJyYXl9LGV4cGFuZEZpbGVTdG9yYWdlOmZ1bmN0aW9uKGR0LEl0KXtpZihkdC5jb250ZW50cyYmZHQuY29udGVudHMuc3ViYXJyYXkmJkl0PmR0LmNvbnRlbnRzLmxlbmd0aCYmKGR0LmNvbnRlbnRzPVgwLmdldEZpbGVEYXRhQXNSZWd1bGFy''@;'; put 'put ''QXJyYXkoZHQpLGR0LnVzZWRCeXRlcz1kdC5jb250ZW50cy5sZW5ndGgpLCFkdC5jb250ZW50c3x8ZHQuY29udGVudHMuc3ViYXJyYXkpe3ZhciBQdD1kdC5jb250ZW50cz9kdC5jb250ZW50cy5sZW5ndGg6MDtpZihQdD49SXQpcmV0dXJuO0l0PU1hdGgubWF4KEl0LFB0KihQdDwxMDQ4NTc2''@;'; put 'put ''PzI6MS4xMjUpfDApLDAhPVB0JiYoSXQ9TWF0aC5tYXgoSXQsMjU2KSk7dmFyIGl0PWR0LmNvbnRlbnRzO3JldHVybiBkdC5jb250ZW50cz1uZXcgVWludDhBcnJheShJdCksdm9pZChkdC51c2VkQnl0ZXM+MCYmZHQuY29udGVudHMuc2V0KGl0LnN1YmFycmF5KDAsZHQudXNlZEJ5dGVzKSww''@;'; put 'put ''KSl9Zm9yKCFkdC5jb250ZW50cyYmSXQ+MCYmKGR0LmNvbnRlbnRzPVtdKTtkdC5jb250ZW50cy5sZW5ndGg8SXQ7KWR0LmNvbnRlbnRzLnB1c2goMCl9LHJlc2l6ZUZpbGVTdG9yYWdlOmZ1bmN0aW9uKGR0LEl0KXtpZihkdC51c2VkQnl0ZXMhPUl0KXtpZigwPT1JdClyZXR1cm4gZHQuY29u''@;'; put 'put ''dGVudHM9bnVsbCx2b2lkKGR0LnVzZWRCeXRlcz0wKTtpZighZHQuY29udGVudHN8fGR0LmNvbnRlbnRzLnN1YmFycmF5KXt2YXIgUHQ9ZHQuY29udGVudHM7cmV0dXJuIGR0LmNvbnRlbnRzPW5ldyBVaW50OEFycmF5KG5ldyBBcnJheUJ1ZmZlcihJdCkpLFB0JiZkdC5jb250ZW50cy5zZXQo''@;'; put 'put ''UHQuc3ViYXJyYXkoMCxNYXRoLm1pbihJdCxkdC51c2VkQnl0ZXMpKSksdm9pZChkdC51c2VkQnl0ZXM9SXQpfWlmKGR0LmNvbnRlbnRzfHwoZHQuY29udGVudHM9W10pLGR0LmNvbnRlbnRzLmxlbmd0aD5JdClkdC5jb250ZW50cy5sZW5ndGg9SXQ7ZWxzZSBmb3IoO2R0LmNvbnRlbnRzLmxl''@;'; put 'put ''bmd0aDxJdDspZHQuY29udGVudHMucHVzaCgwKTtkdC51c2VkQnl0ZXM9SXR9fSxub2RlX29wczp7Z2V0YXR0cjpmdW5jdGlvbihkdCl7dmFyIEl0PXt9O3JldHVybiBJdC5kZXY9dm4uaXNDaHJkZXYoZHQubW9kZSk/ZHQuaWQ6MSxJdC5pbm89ZHQuaWQsSXQubW9kZT1kdC5tb2RlLEl0Lm5s''@;'; put 'put ''aW5rPTEsSXQudWlkPTAsSXQuZ2lkPTAsSXQucmRldj1kdC5yZGV2LEl0LnNpemU9dm4uaXNEaXIoZHQubW9kZSk/NDA5Njp2bi5pc0ZpbGUoZHQubW9kZSk/ZHQudXNlZEJ5dGVzOnZuLmlzTGluayhkdC5tb2RlKT9kdC5saW5rLmxlbmd0aDowLEl0LmF0aW1lPW5ldyBEYXRlKGR0LnRpbWVz''@;'; put 'put ''dGFtcCksSXQubXRpbWU9bmV3IERhdGUoZHQudGltZXN0YW1wKSxJdC5jdGltZT1uZXcgRGF0ZShkdC50aW1lc3RhbXApLEl0LmJsa3NpemU9NDA5NixJdC5ibG9ja3M9TWF0aC5jZWlsKEl0LnNpemUvSXQuYmxrc2l6ZSksSXR9LHNldGF0dHI6ZnVuY3Rpb24oZHQsSXQpe3ZvaWQgMCE9PUl0''@;'; put 'put ''Lm1vZGUmJihkdC5tb2RlPUl0Lm1vZGUpLHZvaWQgMCE9PUl0LnRpbWVzdGFtcCYmKGR0LnRpbWVzdGFtcD1JdC50aW1lc3RhbXApLHZvaWQgMCE9PUl0LnNpemUmJlgwLnJlc2l6ZUZpbGVTdG9yYWdlKGR0LEl0LnNpemUpfSxsb29rdXA6ZnVuY3Rpb24oZHQsSXQpe3Rocm93IHZuLmdlbmVy''@;'; put 'put ''aWNFcnJvcnNbdmkuRU5PRU5UXX0sbWtub2Q6ZnVuY3Rpb24oZHQsSXQsUHQsZmUpe3JldHVybiBYMC5jcmVhdGVOb2RlKGR0LEl0LFB0LGZlKX0scmVuYW1lOmZ1bmN0aW9uKGR0LEl0LFB0KXtpZih2bi5pc0RpcihkdC5tb2RlKSl7dmFyIGZlO3RyeXtmZT12bi5sb29rdXBOb2RlKEl0LFB0''@;'; put 'put ''KX1jYXRjaChhKXt9aWYoZmUpZm9yKHZhciBpdCBpbiBmZS5jb250ZW50cyl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URU1QVFkpfWRlbGV0ZSBkdC5wYXJlbnQuY29udGVudHNbZHQubmFtZV0sZHQubmFtZT1QdCxJdC5jb250ZW50c1tQdF09ZHQsZHQucGFyZW50PUl0fSx1bmxp''@;'; put 'put ''bms6ZnVuY3Rpb24oZHQsSXQpe2RlbGV0ZSBkdC5jb250ZW50c1tJdF19LHJtZGlyOmZ1bmN0aW9uKGR0LEl0KXt2YXIgUHQ9dm4ubG9va3VwTm9kZShkdCxJdCk7Zm9yKHZhciBmZSBpbiBQdC5jb250ZW50cyl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URU1QVFkpO2RlbGV0ZSBk''@;'; put 'put ''dC5jb250ZW50c1tJdF19LHJlYWRkaXI6ZnVuY3Rpb24oZHQpe3ZhciBJdD1bIi4iLCIuLiJdO2Zvcih2YXIgUHQgaW4gZHQuY29udGVudHMpIWR0LmNvbnRlbnRzLmhhc093blByb3BlcnR5KFB0KXx8SXQucHVzaChQdCk7cmV0dXJuIEl0fSxzeW1saW5rOmZ1bmN0aW9uKGR0LEl0LFB0KXt2''@;'; put 'put ''YXIgZmU9WDAuY3JlYXRlTm9kZShkdCxJdCw0MTQ3MSwwKTtyZXR1cm4gZmUubGluaz1QdCxmZX0scmVhZGxpbms6ZnVuY3Rpb24oZHQpe2lmKCF2bi5pc0xpbmsoZHQubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTtyZXR1cm4gZHQubGlua319LHN0cmVhbV9vcHM6''@;'; put 'put ''e3JlYWQ6ZnVuY3Rpb24oZHQsSXQsUHQsZmUsaXQpe3ZhciBhPWR0Lm5vZGUuY29udGVudHM7aWYoaXQ+PWR0Lm5vZGUudXNlZEJ5dGVzKXJldHVybiAwO3ZhciBYdD1NYXRoLm1pbihkdC5ub2RlLnVzZWRCeXRlcy1pdCxmZSk7aWYoTyhYdD49MCksWHQ+OCYmYS5zdWJhcnJheSlJdC5zZXQo''@;'; put 'put ''YS5zdWJhcnJheShpdCxpdCtYdCksUHQpO2Vsc2UgZm9yKHZhciBocj0wO2hyPFh0O2hyKyspSXRbUHQraHJdPWFbaXQraHJdO3JldHVybiBYdH0sd3JpdGU6ZnVuY3Rpb24oZHQsSXQsUHQsZmUsaXQsYSl7aWYoIWZlKXJldHVybiAwO3ZhciBYdD1kdC5ub2RlO2lmKFh0LnRpbWVzdGFtcD1E''@;'; put 'put ''YXRlLm5vdygpLEl0LnN1YmFycmF5JiYoIVh0LmNvbnRlbnRzfHxYdC5jb250ZW50cy5zdWJhcnJheSkpe2lmKGEpcmV0dXJuIFh0LmNvbnRlbnRzPUl0LnN1YmFycmF5KFB0LFB0K2ZlKSxYdC51c2VkQnl0ZXM9ZmUsZmU7aWYoMD09PVh0LnVzZWRCeXRlcyYmMD09PWl0KXJldHVybiBYdC5j''@;'; put 'put ''b250ZW50cz1uZXcgVWludDhBcnJheShJdC5zdWJhcnJheShQdCxQdCtmZSkpLFh0LnVzZWRCeXRlcz1mZSxmZTtpZihpdCtmZTw9WHQudXNlZEJ5dGVzKXJldHVybiBYdC5jb250ZW50cy5zZXQoSXQuc3ViYXJyYXkoUHQsUHQrZmUpLGl0KSxmZX1pZihYMC5leHBhbmRGaWxlU3RvcmFnZShY''@;'; put 'put ''dCxpdCtmZSksWHQuY29udGVudHMuc3ViYXJyYXkmJkl0LnN1YmFycmF5KVh0LmNvbnRlbnRzLnNldChJdC5zdWJhcnJheShQdCxQdCtmZSksaXQpO2Vsc2UgZm9yKHZhciBocj0wO2hyPGZlO2hyKyspWHQuY29udGVudHNbaXQraHJdPUl0W1B0K2hyXTtyZXR1cm4gWHQudXNlZEJ5dGVzPU1h''@;'; put 'put ''dGgubWF4KFh0LnVzZWRCeXRlcyxpdCtmZSksZmV9LGxsc2VlazpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGZlPUl0O2lmKDE9PT1QdD9mZSs9ZHQucG9zaXRpb246Mj09PVB0JiZ2bi5pc0ZpbGUoZHQubm9kZS5tb2RlKSYmKGZlKz1kdC5ub2RlLnVzZWRCeXRlcyksZmU8MCl0aHJvdyBuZXcg''@;'; put 'put ''dm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3JldHVybiBmZX0sYWxsb2NhdGU6ZnVuY3Rpb24oZHQsSXQsUHQpe1gwLmV4cGFuZEZpbGVTdG9yYWdlKGR0Lm5vZGUsSXQrUHQpLGR0Lm5vZGUudXNlZEJ5dGVzPU1hdGgubWF4KGR0Lm5vZGUudXNlZEJ5dGVzLEl0K1B0KX0sbW1hcDpmdW5jdGlv''@;'; put 'put ''bihkdCxJdCxQdCxmZSxpdCxhLFh0KXtpZighdm4uaXNGaWxlKGR0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PREVWKTt2YXIgaHIsUGksam49ZHQubm9kZS5jb250ZW50cztpZigyJlh0fHxqbi5idWZmZXIhPT1JdCYmam4uYnVmZmVyIT09SXQuYnVmZmVyKXtp''@;'; put 'put ''ZigoaXQ+MHx8aXQrZmU8ZHQubm9kZS51c2VkQnl0ZXMpJiYoam49am4uc3ViYXJyYXk/am4uc3ViYXJyYXkoaXQsaXQrZmUpOkFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGpuLGl0LGl0K2ZlKSksUGk9ITAsIShocj16cChmZSkpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT01F''@;'; put 'put ''TSk7SXQuc2V0KGpuLGhyKX1lbHNlIFBpPSExLGhyPWpuLmJ5dGVPZmZzZXQ7cmV0dXJue3B0cjpocixhbGxvY2F0ZWQ6UGl9fSxtc3luYzpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCl7aWYoIXZuLmlzRmlsZShkdC5ub2RlLm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0RF''@;'; put 'put ''Vik7cmV0dXJuIDImaXR8fFgwLnN0cmVhbV9vcHMud3JpdGUoZHQsSXQsMCxmZSxQdCwhMSksMH19fSx1YT17ZGJzOnt9LGluZGV4ZWREQjpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgaW5kZXhlZERCKXJldHVybiBpbmRleGVkREI7dmFyIGR0PW51bGw7cmV0dXJuIm9iamVj''@;'; put 'put ''dCI9PXR5cGVvZiB3aW5kb3cmJihkdD13aW5kb3cuaW5kZXhlZERCfHx3aW5kb3cubW96SW5kZXhlZERCfHx3aW5kb3cud2Via2l0SW5kZXhlZERCfHx3aW5kb3cubXNJbmRleGVkREIpLE8oZHQsIklEQkZTIHVzZWQsIGJ1dCBpbmRleGVkREIgbm90IHN1cHBvcnRlZCIpLGR0fSxEQl9WRVJT''@;'; put 'put ''SU9OOjIxLERCX1NUT1JFX05BTUU6IkZJTEVfREFUQSIsbW91bnQ6ZnVuY3Rpb24oZHQpe3JldHVybiBYMC5tb3VudC5hcHBseShudWxsLGFyZ3VtZW50cyl9LHN5bmNmczpmdW5jdGlvbihkdCxJdCxQdCl7dWEuZ2V0TG9jYWxTZXQoZHQsZnVuY3Rpb24oZmUsaXQpe2lmKGZlKXJldHVybiBQ''@;'; put 'put ''dChmZSk7dWEuZ2V0UmVtb3RlU2V0KGR0LGZ1bmN0aW9uKGEsWHQpe2lmKGEpcmV0dXJuIFB0KGEpO3VhLnJlY29uY2lsZShJdD9YdDppdCxJdD9pdDpYdCxQdCl9KX0pfSxnZXREQjpmdW5jdGlvbihkdCxJdCl7dmFyIGZlLFB0PXVhLmRic1tkdF07aWYoUHQpcmV0dXJuIEl0KG51bGwsUHQp''@;'; put 'put ''O3RyeXtmZT11YS5pbmRleGVkREIoKS5vcGVuKGR0LHVhLkRCX1ZFUlNJT04pfWNhdGNoKGl0KXtyZXR1cm4gSXQoaXQpfWlmKCFmZSlyZXR1cm4gSXQoIlVuYWJsZSB0byBjb25uZWN0IHRvIEluZGV4ZWREQiIpO2ZlLm9udXBncmFkZW5lZWRlZD1mdW5jdGlvbihpdCl7dmFyIGhyLGE9aXQu''@;'; put 'put ''dGFyZ2V0LnJlc3VsdCxYdD1pdC50YXJnZXQudHJhbnNhY3Rpb247KGhyPWEub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyh1YS5EQl9TVE9SRV9OQU1FKT9YdC5vYmplY3RTdG9yZSh1YS5EQl9TVE9SRV9OQU1FKTphLmNyZWF0ZU9iamVjdFN0b3JlKHVhLkRCX1NUT1JFX05BTUUpKS5pbmRl''@;'; put 'put ''eE5hbWVzLmNvbnRhaW5zKCJ0aW1lc3RhbXAiKXx8aHIuY3JlYXRlSW5kZXgoInRpbWVzdGFtcCIsInRpbWVzdGFtcCIse3VuaXF1ZTohMX0pfSxmZS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt1YS5kYnNbZHRdPVB0PWZlLnJlc3VsdCxJdChudWxsLFB0KX0sZmUub25lcnJvcj1mdW5jdGlvbihp''@;'; put 'put ''dCl7SXQodGhpcy5lcnJvciksaXQucHJldmVudERlZmF1bHQoKX19LGdldExvY2FsU2V0OmZ1bmN0aW9uKGR0LEl0KXt2YXIgUHQ9e307ZnVuY3Rpb24gZmUoUGkpe3JldHVybiIuIiE9PVBpJiYiLi4iIT09UGl9ZnVuY3Rpb24gaXQoUGkpe3JldHVybiBmdW5jdGlvbihqbil7cmV0dXJuIFUw''@;'; put 'put ''LmpvaW4yKFBpLGpuKX19Zm9yKHZhciBhPXZuLnJlYWRkaXIoZHQubW91bnRwb2ludCkuZmlsdGVyKGZlKS5tYXAoaXQoZHQubW91bnRwb2ludCkpO2EubGVuZ3RoOyl7dmFyIGhyLFh0PWEucG9wKCk7dHJ5e2hyPXZuLnN0YXQoWHQpfWNhdGNoKFBpKXtyZXR1cm4gSXQoUGkpfXZuLmlzRGly''@;'; put 'put ''KGhyLm1vZGUpJiZhLnB1c2guYXBwbHkoYSx2bi5yZWFkZGlyKFh0KS5maWx0ZXIoZmUpLm1hcChpdChYdCkpKSxQdFtYdF09e3RpbWVzdGFtcDpoci5tdGltZX19cmV0dXJuIEl0KG51bGwse3R5cGU6ImxvY2FsIixlbnRyaWVzOlB0fSl9LGdldFJlbW90ZVNldDpmdW5jdGlvbihkdCxJdCl7''@;'; put 'put ''dmFyIFB0PXt9O3VhLmdldERCKGR0Lm1vdW50cG9pbnQsZnVuY3Rpb24oZmUsaXQpe2lmKGZlKXJldHVybiBJdChmZSk7dHJ5e3ZhciBhPWl0LnRyYW5zYWN0aW9uKFt1YS5EQl9TVE9SRV9OQU1FXSwicmVhZG9ubHkiKTthLm9uZXJyb3I9ZnVuY3Rpb24oUGkpe0l0KHRoaXMuZXJyb3IpLFBp''@;'; put 'put ''LnByZXZlbnREZWZhdWx0KCl9LGEub2JqZWN0U3RvcmUodWEuREJfU1RPUkVfTkFNRSkuaW5kZXgoInRpbWVzdGFtcCIpLm9wZW5LZXlDdXJzb3IoKS5vbnN1Y2Nlc3M9ZnVuY3Rpb24oUGkpe3ZhciBqbj1QaS50YXJnZXQucmVzdWx0O2lmKCFqbilyZXR1cm4gSXQobnVsbCx7dHlwZToicmVt''@;'; put 'put ''b3RlIixkYjppdCxlbnRyaWVzOlB0fSk7UHRbam4ucHJpbWFyeUtleV09e3RpbWVzdGFtcDpqbi5rZXl9LGpuLmNvbnRpbnVlKCl9fWNhdGNoKFBpKXtyZXR1cm4gSXQoUGkpfX0pfSxsb2FkTG9jYWxFbnRyeTpmdW5jdGlvbihkdCxJdCl7dmFyIFB0LGZlO3RyeXtmZT12bi5sb29rdXBQYXRo''@;'; put 'put ''KGR0KS5ub2RlLFB0PXZuLnN0YXQoZHQpfWNhdGNoKGEpe3JldHVybiBJdChhKX1yZXR1cm4gdm4uaXNEaXIoUHQubW9kZSk/SXQobnVsbCx7dGltZXN0YW1wOlB0Lm10aW1lLG1vZGU6UHQubW9kZX0pOnZuLmlzRmlsZShQdC5tb2RlKT8oZmUuY29udGVudHM9WDAuZ2V0RmlsZURhdGFBc1R5''@;'; put 'put ''cGVkQXJyYXkoZmUpLEl0KG51bGwse3RpbWVzdGFtcDpQdC5tdGltZSxtb2RlOlB0Lm1vZGUsY29udGVudHM6ZmUuY29udGVudHN9KSk6SXQobmV3IEVycm9yKCJub2RlIHR5cGUgbm90IHN1cHBvcnRlZCIpKX0sc3RvcmVMb2NhbEVudHJ5OmZ1bmN0aW9uKGR0LEl0LFB0KXt0cnl7aWYodm4u''@;'; put 'put ''aXNEaXIoSXQubW9kZSkpdm4ubWtkaXIoZHQsSXQubW9kZSk7ZWxzZXtpZighdm4uaXNGaWxlKEl0Lm1vZGUpKXJldHVybiBQdChuZXcgRXJyb3IoIm5vZGUgdHlwZSBub3Qgc3VwcG9ydGVkIikpO3ZuLndyaXRlRmlsZShkdCxJdC5jb250ZW50cyx7Y2FuT3duOiEwfSl9dm4uY2htb2QoZHQs''@;'; put 'put ''SXQubW9kZSksdm4udXRpbWUoZHQsSXQudGltZXN0YW1wLEl0LnRpbWVzdGFtcCl9Y2F0Y2goZmUpe3JldHVybiBQdChmZSl9UHQobnVsbCl9LHJlbW92ZUxvY2FsRW50cnk6ZnVuY3Rpb24oZHQsSXQpe3RyeXt2bi5sb29rdXBQYXRoKGR0KTt2YXIgZmU9dm4uc3RhdChkdCk7dm4uaXNEaXIo''@;'; put 'put ''ZmUubW9kZSk/dm4ucm1kaXIoZHQpOnZuLmlzRmlsZShmZS5tb2RlKSYmdm4udW5saW5rKGR0KX1jYXRjaChpdCl7cmV0dXJuIEl0KGl0KX1JdChudWxsKX0sbG9hZFJlbW90ZUVudHJ5OmZ1bmN0aW9uKGR0LEl0LFB0KXt2YXIgZmU9ZHQuZ2V0KEl0KTtmZS5vbnN1Y2Nlc3M9ZnVuY3Rpb24o''@;'; put 'put ''aXQpe1B0KG51bGwsaXQudGFyZ2V0LnJlc3VsdCl9LGZlLm9uZXJyb3I9ZnVuY3Rpb24oaXQpe1B0KHRoaXMuZXJyb3IpLGl0LnByZXZlbnREZWZhdWx0KCl9fSxzdG9yZVJlbW90ZUVudHJ5OmZ1bmN0aW9uKGR0LEl0LFB0LGZlKXt2YXIgaXQ9ZHQucHV0KFB0LEl0KTtpdC5vbnN1Y2Nlc3M9''@;'; put 'put ''ZnVuY3Rpb24oKXtmZShudWxsKX0saXQub25lcnJvcj1mdW5jdGlvbihhKXtmZSh0aGlzLmVycm9yKSxhLnByZXZlbnREZWZhdWx0KCl9fSxyZW1vdmVSZW1vdGVFbnRyeTpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGZlPWR0LmRlbGV0ZShJdCk7ZmUub25zdWNjZXNzPWZ1bmN0aW9uKCl7UHQo''@;'; put 'put ''bnVsbCl9LGZlLm9uZXJyb3I9ZnVuY3Rpb24oaXQpe1B0KHRoaXMuZXJyb3IpLGl0LnByZXZlbnREZWZhdWx0KCl9fSxyZWNvbmNpbGU6ZnVuY3Rpb24oZHQsSXQsUHQpe3ZhciBmZT0wLGl0PVtdO09iamVjdC5rZXlzKGR0LmVudHJpZXMpLmZvckVhY2goZnVuY3Rpb24oQW8pe3ZhciAkbz1J''@;'; put 'put ''dC5lbnRyaWVzW0FvXTsoISRvfHxkdC5lbnRyaWVzW0FvXS50aW1lc3RhbXA+JG8udGltZXN0YW1wKSYmKGl0LnB1c2goQW8pLGZlKyspfSk7dmFyIGE9W107aWYoT2JqZWN0LmtleXMoSXQuZW50cmllcykuZm9yRWFjaChmdW5jdGlvbihBbyl7ZHQuZW50cmllc1tBb118fChhLnB1c2goQW8p''@;'; put 'put ''LGZlKyspfSksIWZlKXJldHVybiBQdChudWxsKTt2YXIgWHQ9MCxQaT0oInJlbW90ZSI9PT1kdC50eXBlP2R0LmRiOkl0LmRiKS50cmFuc2FjdGlvbihbdWEuREJfU1RPUkVfTkFNRV0sInJlYWR3cml0ZSIpLGpuPVBpLm9iamVjdFN0b3JlKHVhLkRCX1NUT1JFX05BTUUpO2Z1bmN0aW9uIF8o''@;'; put 'put ''QW8pe3JldHVybiBBbz9fLmVycm9yZWQ/dm9pZCAwOihfLmVycm9yZWQ9ITAsUHQoQW8pKTorK1h0Pj1mZT9QdChudWxsKTp2b2lkIDB9UGkub25lcnJvcj1mdW5jdGlvbihBbyl7Xyh0aGlzLmVycm9yKSxBby5wcmV2ZW50RGVmYXVsdCgpfSxpdC5zb3J0KCkuZm9yRWFjaChmdW5jdGlvbihB''@;'; put 'put ''byl7ImxvY2FsIj09PUl0LnR5cGU/dWEubG9hZFJlbW90ZUVudHJ5KGpuLEFvLGZ1bmN0aW9uKFNpLCRvKXtpZihTaSlyZXR1cm4gXyhTaSk7dWEuc3RvcmVMb2NhbEVudHJ5KEFvLCRvLF8pfSk6dWEubG9hZExvY2FsRW50cnkoQW8sZnVuY3Rpb24oU2ksJG8pe2lmKFNpKXJldHVybiBfKFNp''@;'; put 'put ''KTt1YS5zdG9yZVJlbW90ZUVudHJ5KGpuLEFvLCRvLF8pfSl9KSxhLnNvcnQoKS5yZXZlcnNlKCkuZm9yRWFjaChmdW5jdGlvbihBbyl7ImxvY2FsIj09PUl0LnR5cGU/dWEucmVtb3ZlTG9jYWxFbnRyeShBbyxfKTp1YS5yZW1vdmVSZW1vdGVFbnRyeShqbixBbyxfKX0pfX0sajA9e2lzV2lu''@;'; put 'put ''ZG93czohMSxzdGF0aWNJbml0OmZ1bmN0aW9uKCl7ajAuaXNXaW5kb3dzPSEhcHJvY2Vzcy5wbGF0Zm9ybS5tYXRjaCgvXndpbi8pO3ZhciBkdD1wcm9jZXNzLmJpbmRpbmcoImNvbnN0YW50cyIpO2R0LmZzJiYoZHQ9ZHQuZnMpLGowLmZsYWdzRm9yTm9kZU1hcD17MTAyNDpkdC5PX0FQUEVO''@;'; put 'put ''RCw2NDpkdC5PX0NSRUFULDEyODpkdC5PX0VYQ0wsMDpkdC5PX1JET05MWSwyOmR0Lk9fUkRXUiw0MDk2OmR0Lk9fU1lOQyw1MTI6ZHQuT19UUlVOQywxOmR0Lk9fV1JPTkxZfX0sYnVmZmVyRnJvbTpmdW5jdGlvbihkdCl7cmV0dXJuIEJ1ZmZlci5hbGxvYz9CdWZmZXIuZnJvbShkdCk6bmV3''@;'; put 'put ''IEJ1ZmZlcihkdCl9LG1vdW50OmZ1bmN0aW9uKGR0KXtyZXR1cm4gTyhOKSxqMC5jcmVhdGVOb2RlKG51bGwsIi8iLGowLmdldE1vZGUoZHQub3B0cy5yb290KSwwKX0sY3JlYXRlTm9kZTpmdW5jdGlvbihkdCxJdCxQdCxmZSl7aWYoIXZuLmlzRGlyKFB0KSYmIXZuLmlzRmlsZShQdCkmJiF2''@;'; put 'put ''bi5pc0xpbmsoUHQpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIGl0PXZuLmNyZWF0ZU5vZGUoZHQsSXQsUHQpO3JldHVybiBpdC5ub2RlX29wcz1qMC5ub2RlX29wcyxpdC5zdHJlYW1fb3BzPWowLnN0cmVhbV9vcHMsaXR9LGdldE1vZGU6ZnVuY3Rpb24oZHQpe3Zh''@;'; put 'put ''ciBJdDt0cnl7SXQ9bWwubHN0YXRTeW5jKGR0KSxqMC5pc1dpbmRvd3MmJihJdC5tb2RlPUl0Lm1vZGV8KDI5MiZJdC5tb2RlKT4+Mil9Y2F0Y2goUHQpe3Rocm93IFB0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbUHQuY29kZV0pOlB0fXJldHVybiBJdC5tb2RlfSxyZWFsUGF0aDpmdW5j''@;'; put 'put ''dGlvbihkdCl7Zm9yKHZhciBJdD1bXTtkdC5wYXJlbnQhPT1kdDspSXQucHVzaChkdC5uYW1lKSxkdD1kdC5wYXJlbnQ7cmV0dXJuIEl0LnB1c2goZHQubW91bnQub3B0cy5yb290KSxJdC5yZXZlcnNlKCksVTAuam9pbi5hcHBseShudWxsLEl0KX0sZmxhZ3NGb3JOb2RlOmZ1bmN0aW9uKGR0''@;'; put 'put ''KXtkdCY9LTIwOTcxNTMsZHQmPS0yMDQ5LGR0Jj0tMzI3NjksZHQmPS01MjQyODk7dmFyIEl0PTA7Zm9yKHZhciBQdCBpbiBqMC5mbGFnc0Zvck5vZGVNYXApZHQmUHQmJihJdHw9ajAuZmxhZ3NGb3JOb2RlTWFwW1B0XSxkdF49UHQpO2lmKGR0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZp''@;'; put 'put ''LkVJTlZBTCk7cmV0dXJuIEl0fSxub2RlX29wczp7Z2V0YXR0cjpmdW5jdGlvbihkdCl7dmFyIFB0LEl0PWowLnJlYWxQYXRoKGR0KTt0cnl7UHQ9bWwubHN0YXRTeW5jKEl0KX1jYXRjaChmZSl7dGhyb3cgZmUuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2aVtmZS5jb2RlXSk6ZmV9cmV0dXJu''@;'; put 'put ''IGowLmlzV2luZG93cyYmIVB0LmJsa3NpemUmJihQdC5ibGtzaXplPTQwOTYpLGowLmlzV2luZG93cyYmIVB0LmJsb2NrcyYmKFB0LmJsb2Nrcz0oUHQuc2l6ZStQdC5ibGtzaXplLTEpL1B0LmJsa3NpemV8MCkse2RldjpQdC5kZXYsaW5vOlB0Lmlubyxtb2RlOlB0Lm1vZGUsbmxpbms6UHQu''@;'; put 'put ''bmxpbmssdWlkOlB0LnVpZCxnaWQ6UHQuZ2lkLHJkZXY6UHQucmRldixzaXplOlB0LnNpemUsYXRpbWU6UHQuYXRpbWUsbXRpbWU6UHQubXRpbWUsY3RpbWU6UHQuY3RpbWUsYmxrc2l6ZTpQdC5ibGtzaXplLGJsb2NrczpQdC5ibG9ja3N9fSxzZXRhdHRyOmZ1bmN0aW9uKGR0LEl0KXt2YXIg''@;'; put 'put ''UHQ9ajAucmVhbFBhdGgoZHQpO3RyeXtpZih2b2lkIDAhPT1JdC5tb2RlJiYobWwuY2htb2RTeW5jKFB0LEl0Lm1vZGUpLGR0Lm1vZGU9SXQubW9kZSksdm9pZCAwIT09SXQudGltZXN0YW1wKXt2YXIgZmU9bmV3IERhdGUoSXQudGltZXN0YW1wKTttbC51dGltZXNTeW5jKFB0LGZlLGZlKX12''@;'; put 'put ''b2lkIDAhPT1JdC5zaXplJiZtbC50cnVuY2F0ZVN5bmMoUHQsSXQuc2l6ZSl9Y2F0Y2goaXQpe3Rocm93IGl0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbaXQuY29kZV0pOml0fX0sbG9va3VwOmZ1bmN0aW9uKGR0LEl0KXt2YXIgUHQ9VTAuam9pbjIoajAucmVhbFBhdGgoZHQpLEl0KSxm''@;'; put 'put ''ZT1qMC5nZXRNb2RlKFB0KTtyZXR1cm4gajAuY3JlYXRlTm9kZShkdCxJdCxmZSl9LG1rbm9kOmZ1bmN0aW9uKGR0LEl0LFB0LGZlKXt2YXIgaXQ9ajAuY3JlYXRlTm9kZShkdCxJdCxQdCxmZSksYT1qMC5yZWFsUGF0aChpdCk7dHJ5e3ZuLmlzRGlyKGl0Lm1vZGUpP21sLm1rZGlyU3luYyhh''@;'; put 'put ''LGl0Lm1vZGUpOm1sLndyaXRlRmlsZVN5bmMoYSwiIix7bW9kZTppdC5tb2RlfSl9Y2F0Y2goWHQpe3Rocm93IFh0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbWHQuY29kZV0pOlh0fXJldHVybiBpdH0scmVuYW1lOmZ1bmN0aW9uKGR0LEl0LFB0KXt2YXIgZmU9ajAucmVhbFBhdGgoZHQp''@;'; put 'put ''LGl0PVUwLmpvaW4yKGowLnJlYWxQYXRoKEl0KSxQdCk7dHJ5e21sLnJlbmFtZVN5bmMoZmUsaXQpfWNhdGNoKGEpe3Rocm93IGEuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2aVthLmNvZGVdKTphfX0sdW5saW5rOmZ1bmN0aW9uKGR0LEl0KXt2YXIgUHQ9VTAuam9pbjIoajAucmVhbFBhdGgo''@;'; put 'put ''ZHQpLEl0KTt0cnl7bWwudW5saW5rU3luYyhQdCl9Y2F0Y2goZmUpe3Rocm93IGZlLmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbZmUuY29kZV0pOmZlfX0scm1kaXI6ZnVuY3Rpb24oZHQsSXQpe3ZhciBQdD1VMC5qb2luMihqMC5yZWFsUGF0aChkdCksSXQpO3RyeXttbC5ybWRpclN5bmMo''@;'; put 'put ''UHQpfWNhdGNoKGZlKXt0aHJvdyBmZS5jb2RlP25ldyB2bi5FcnJub0Vycm9yKHZpW2ZlLmNvZGVdKTpmZX19LHJlYWRkaXI6ZnVuY3Rpb24oZHQpe3ZhciBJdD1qMC5yZWFsUGF0aChkdCk7dHJ5e3JldHVybiBtbC5yZWFkZGlyU3luYyhJdCl9Y2F0Y2goUHQpe3Rocm93IFB0LmNvZGU/bmV3''@;'; put 'put ''IHZuLkVycm5vRXJyb3IodmlbUHQuY29kZV0pOlB0fX0sc3ltbGluazpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGZlPVUwLmpvaW4yKGowLnJlYWxQYXRoKGR0KSxJdCk7dHJ5e21sLnN5bWxpbmtTeW5jKFB0LGZlKX1jYXRjaChpdCl7dGhyb3cgaXQuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2''@;'; put 'put ''aVtpdC5jb2RlXSk6aXR9fSxyZWFkbGluazpmdW5jdGlvbihkdCl7dmFyIEl0PWowLnJlYWxQYXRoKGR0KTt0cnl7cmV0dXJuIEl0PW1sLnJlYWRsaW5rU3luYyhJdCksSXQ9cDMucmVsYXRpdmUocDMucmVzb2x2ZShkdC5tb3VudC5vcHRzLnJvb3QpLEl0KX1jYXRjaChQdCl7dGhyb3cgUHQu''@;'; put 'put ''Y29kZT9uZXcgdm4uRXJybm9FcnJvcih2aVtQdC5jb2RlXSk6UHR9fX0sc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbihkdCl7dmFyIEl0PWowLnJlYWxQYXRoKGR0Lm5vZGUpO3RyeXt2bi5pc0ZpbGUoZHQubm9kZS5tb2RlKSYmKGR0Lm5mZD1tbC5vcGVuU3luYyhJdCxqMC5mbGFnc0Zvck5v''@;'; put 'put ''ZGUoZHQuZmxhZ3MpKSl9Y2F0Y2goUHQpe3Rocm93IFB0LmNvZGU/bmV3IHZuLkVycm5vRXJyb3IodmlbUHQuY29kZV0pOlB0fX0sY2xvc2U6ZnVuY3Rpb24oZHQpe3RyeXt2bi5pc0ZpbGUoZHQubm9kZS5tb2RlKSYmZHQubmZkJiZtbC5jbG9zZVN5bmMoZHQubmZkKX1jYXRjaChJdCl7dGhy''@;'; put 'put ''b3cgSXQuY29kZT9uZXcgdm4uRXJybm9FcnJvcih2aVtJdC5jb2RlXSk6SXR9fSxyZWFkOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXtpZigwPT09ZmUpcmV0dXJuIDA7dHJ5e3JldHVybiBtbC5yZWFkU3luYyhkdC5uZmQsajAuYnVmZmVyRnJvbShJdC5idWZmZXIpLFB0LGZlLGl0KX1jYXRj''@;'; put 'put ''aChhKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aVthLmNvZGVdKX19LHdyaXRlOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXt0cnl7cmV0dXJuIG1sLndyaXRlU3luYyhkdC5uZmQsajAuYnVmZmVyRnJvbShJdC5idWZmZXIpLFB0LGZlLGl0KX1jYXRjaChhKXt0aHJvdyBuZXcgdm4uRXJy''@;'; put 'put ''bm9FcnJvcih2aVthLmNvZGVdKX19LGxsc2VlazpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGZlPUl0O2lmKDE9PT1QdClmZSs9ZHQucG9zaXRpb247ZWxzZSBpZigyPT09UHQmJnZuLmlzRmlsZShkdC5ub2RlLm1vZGUpKXRyeXtmZSs9bWwuZnN0YXRTeW5jKGR0Lm5mZCkuc2l6ZX1jYXRjaChh''@;'; put 'put ''KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aVthLmNvZGVdKX1pZihmZTwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7cmV0dXJuIGZlfX19LEJsPXtESVJfTU9ERToxNjg5NSxGSUxFX01PREU6MzMyNzkscmVhZGVyOm51bGwsbW91bnQ6ZnVuY3Rpb24oZHQpe08oVyks''@;'; put 'put ''QmwucmVhZGVyfHwoQmwucmVhZGVyPW5ldyBGaWxlUmVhZGVyU3luYyk7dmFyIEl0PUJsLmNyZWF0ZU5vZGUobnVsbCwiLyIsQmwuRElSX01PREUsMCksUHQ9e307ZnVuY3Rpb24gZmUoYSl7Zm9yKHZhciBYdD1hLnNwbGl0KCIvIiksaHI9SXQsUGk9MDtQaTxYdC5sZW5ndGgtMTtQaSsrKXt2''@;'; put 'put ''YXIgam49WHQuc2xpY2UoMCxQaSsxKS5qb2luKCIvIik7UHRbam5dfHwoUHRbam5dPUJsLmNyZWF0ZU5vZGUoaHIsWHRbUGldLEJsLkRJUl9NT0RFLDApKSxocj1QdFtqbl19cmV0dXJuIGhyfWZ1bmN0aW9uIGl0KGEpe3ZhciBYdD1hLnNwbGl0KCIvIik7cmV0dXJuIFh0W1h0Lmxlbmd0aC0x''@;'; put 'put ''XX1yZXR1cm4gQXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChkdC5vcHRzLmZpbGVzfHxbXSxmdW5jdGlvbihhKXtCbC5jcmVhdGVOb2RlKGZlKGEubmFtZSksaXQoYS5uYW1lKSxCbC5GSUxFX01PREUsMCxhLGEubGFzdE1vZGlmaWVkRGF0ZSl9KSwoZHQub3B0cy5ibG9ic3x8W10pLmZv''@;'; put 'put ''ckVhY2goZnVuY3Rpb24oYSl7QmwuY3JlYXRlTm9kZShmZShhLm5hbWUpLGl0KGEubmFtZSksQmwuRklMRV9NT0RFLDAsYS5kYXRhKX0pLChkdC5vcHRzLnBhY2thZ2VzfHxbXSkuZm9yRWFjaChmdW5jdGlvbihhKXthLm1ldGFkYXRhLmZpbGVzLmZvckVhY2goZnVuY3Rpb24oWHQpe3ZhciBo''@;'; put 'put ''cj1YdC5maWxlbmFtZS5zdWJzdHIoMSk7QmwuY3JlYXRlTm9kZShmZShociksaXQoaHIpLEJsLkZJTEVfTU9ERSwwLGEuYmxvYi5zbGljZShYdC5zdGFydCxYdC5lbmQpKX0pfSksSXR9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24oZHQsSXQsUHQsZmUsaXQsYSl7dmFyIFh0PXZuLmNyZWF0ZU5vZGUo''@;'; put 'put ''ZHQsSXQsUHQpO3JldHVybiBYdC5tb2RlPVB0LFh0Lm5vZGVfb3BzPUJsLm5vZGVfb3BzLFh0LnN0cmVhbV9vcHM9Qmwuc3RyZWFtX29wcyxYdC50aW1lc3RhbXA9KGF8fG5ldyBEYXRlKS5nZXRUaW1lKCksTyhCbC5GSUxFX01PREUhPT1CbC5ESVJfTU9ERSksUHQ9PT1CbC5GSUxFX01PREU/''@;'; put 'put ''KFh0LnNpemU9aXQuc2l6ZSxYdC5jb250ZW50cz1pdCk6KFh0LnNpemU9NDA5NixYdC5jb250ZW50cz17fSksZHQmJihkdC5jb250ZW50c1tJdF09WHQpLFh0fSxub2RlX29wczp7Z2V0YXR0cjpmdW5jdGlvbihkdCl7cmV0dXJue2RldjoxLGlubzp2b2lkIDAsbW9kZTpkdC5tb2RlLG5saW5r''@;'; put 'put ''OjEsdWlkOjAsZ2lkOjAscmRldjp2b2lkIDAsc2l6ZTpkdC5zaXplLGF0aW1lOm5ldyBEYXRlKGR0LnRpbWVzdGFtcCksbXRpbWU6bmV3IERhdGUoZHQudGltZXN0YW1wKSxjdGltZTpuZXcgRGF0ZShkdC50aW1lc3RhbXApLGJsa3NpemU6NDA5NixibG9ja3M6TWF0aC5jZWlsKGR0LnNpemUv''@;'; put 'put ''NDA5Nil9fSxzZXRhdHRyOmZ1bmN0aW9uKGR0LEl0KXt2b2lkIDAhPT1JdC5tb2RlJiYoZHQubW9kZT1JdC5tb2RlKSx2b2lkIDAhPT1JdC50aW1lc3RhbXAmJihkdC50aW1lc3RhbXA9SXQudGltZXN0YW1wKX0sbG9va3VwOmZ1bmN0aW9uKGR0LEl0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJv''@;'; put 'put ''cih2aS5FTk9FTlQpfSxta25vZDpmdW5jdGlvbihkdCxJdCxQdCxmZSl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pfSxyZW5hbWU6ZnVuY3Rpb24oZHQsSXQsUHQpe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKX0sdW5saW5rOmZ1bmN0aW9uKGR0LEl0KXt0aHJv''@;'; put 'put ''dyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9LHJtZGlyOmZ1bmN0aW9uKGR0LEl0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9LHJlYWRkaXI6ZnVuY3Rpb24oZHQpe3ZhciBJdD1bIi4iLCIuLiJdO2Zvcih2YXIgUHQgaW4gZHQuY29udGVudHMpIWR0LmNvbnRlbnRz''@;'; put 'put ''Lmhhc093blByb3BlcnR5KFB0KXx8SXQucHVzaChQdCk7cmV0dXJuIEl0fSxzeW1saW5rOmZ1bmN0aW9uKGR0LEl0LFB0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9LHJlYWRsaW5rOmZ1bmN0aW9uKGR0KXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSl9fSxz''@;'; put 'put ''dHJlYW1fb3BzOntyZWFkOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXtpZihpdD49ZHQubm9kZS5zaXplKXJldHVybiAwO3ZhciBhPWR0Lm5vZGUuY29udGVudHMuc2xpY2UoaXQsaXQrZmUpLFh0PUJsLnJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihhKTtyZXR1cm4gSXQuc2V0KG5ldyBVaW50''@;'; put 'put ''OEFycmF5KFh0KSxQdCksYS5zaXplfSx3cml0ZTpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCl7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlPKX0sbGxzZWVrOmZ1bmN0aW9uKGR0LEl0LFB0KXt2YXIgZmU9SXQ7aWYoMT09PVB0P2ZlKz1kdC5wb3NpdGlvbjoyPT09UHQmJnZuLmlzRmls''@;'; put 'put ''ZShkdC5ub2RlLm1vZGUpJiYoZmUrPWR0Lm5vZGUuc2l6ZSksZmU8MCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FSU5WQUwpO3JldHVybiBmZX19fTt5dCs9MTYseXQrPTE2LHl0Kz0xNjt2YXIgdm49e3Jvb3Q6bnVsbCxtb3VudHM6W10sZGV2aWNlczp7fSxzdHJlYW1zOltdLG5leHRJ''@;'; put 'put ''bm9kZToxLG5hbWVUYWJsZTpudWxsLGN1cnJlbnRQYXRoOiIvIixpbml0aWFsaXplZDohMSxpZ25vcmVQZXJtaXNzaW9uczohMCx0cmFja2luZ0RlbGVnYXRlOnt9LHRyYWNraW5nOntvcGVuRmxhZ3M6e1JFQUQ6MSxXUklURToyfX0sRXJybm9FcnJvcjpudWxsLGdlbmVyaWNFcnJvcnM6e30s''@;'; put 'put ''ZmlsZXN5c3RlbXM6bnVsbCxzeW5jRlNSZXF1ZXN0czowLGhhbmRsZUZTRXJyb3I6ZnVuY3Rpb24oZHQpe2lmKCEoZHQgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSl0aHJvdyBkdCsiIDogIitodCgpO3JldHVybiBiMChkdC5lcnJubyl9LGxvb2t1cFBhdGg6ZnVuY3Rpb24oZHQsSXQpe2lm''@;'; put 'put ''KEl0PUl0fHx7fSwhKGR0PVUwLnJlc29sdmUodm4uY3dkKCksZHQpKSlyZXR1cm57cGF0aDoiIixub2RlOm51bGx9O3ZhciBQdD17Zm9sbG93X21vdW50OiEwLHJlY3Vyc2VfY291bnQ6MH07Zm9yKHZhciBmZSBpbiBQdCl2b2lkIDA9PT1JdFtmZV0mJihJdFtmZV09UHRbZmVdKTtpZihJdC5y''@;'; put 'put ''ZWN1cnNlX2NvdW50PjgpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUxPT1ApO2Zvcih2YXIgaXQ9VTAubm9ybWFsaXplQXJyYXkoZHQuc3BsaXQoIi8iKS5maWx0ZXIoZnVuY3Rpb24oU2kpe3JldHVybiEhU2l9KSwhMSksYT12bi5yb290LFh0PSIvIixocj0wO2hyPGl0Lmxlbmd0aDto''@;'; put 'put ''cisrKXt2YXIgUGk9aHI9PT1pdC5sZW5ndGgtMTtpZihQaSYmSXQucGFyZW50KWJyZWFrO2lmKGE9dm4ubG9va3VwTm9kZShhLGl0W2hyXSksWHQ9VTAuam9pbjIoWHQsaXRbaHJdKSx2bi5pc01vdW50cG9pbnQoYSkmJighUGl8fFBpJiZJdC5mb2xsb3dfbW91bnQpJiYoYT1hLm1vdW50ZWQu''@;'; put 'put ''cm9vdCksIVBpfHxJdC5mb2xsb3cpZm9yKHZhciBqbj0wO3ZuLmlzTGluayhhLm1vZGUpOyl7dmFyIF89dm4ucmVhZGxpbmsoWHQpO2lmKFh0PVUwLnJlc29sdmUoVTAuZGlybmFtZShYdCksXyksYT12bi5sb29rdXBQYXRoKFh0LHtyZWN1cnNlX2NvdW50Okl0LnJlY3Vyc2VfY291bnR9KS5u''@;'; put 'put ''b2RlLGpuKys+NDApdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUxPT1ApfX1yZXR1cm57cGF0aDpYdCxub2RlOmF9fSxnZXRQYXRoOmZ1bmN0aW9uKGR0KXtmb3IodmFyIEl0Ozspe2lmKHZuLmlzUm9vdChkdCkpe3ZhciBQdD1kdC5tb3VudC5tb3VudHBvaW50O3JldHVybiBJdD8iLyIh''@;'; put 'put ''PT1QdFtQdC5sZW5ndGgtMV0/UHQrIi8iK0l0OlB0K0l0OlB0fUl0PUl0P2R0Lm5hbWUrIi8iK0l0OmR0Lm5hbWUsZHQ9ZHQucGFyZW50fX0saGFzaE5hbWU6ZnVuY3Rpb24oZHQsSXQpe2Zvcih2YXIgUHQ9MCxmZT0wO2ZlPEl0Lmxlbmd0aDtmZSsrKVB0PShQdDw8NSktUHQrSXQuY2hhckNv''@;'; put 'put ''ZGVBdChmZSl8MDtyZXR1cm4oZHQrUHQ+Pj4wKSV2bi5uYW1lVGFibGUubGVuZ3RofSxoYXNoQWRkTm9kZTpmdW5jdGlvbihkdCl7dmFyIEl0PXZuLmhhc2hOYW1lKGR0LnBhcmVudC5pZCxkdC5uYW1lKTtkdC5uYW1lX25leHQ9dm4ubmFtZVRhYmxlW0l0XSx2bi5uYW1lVGFibGVbSXRdPWR0''@;'; put 'put ''fSxoYXNoUmVtb3ZlTm9kZTpmdW5jdGlvbihkdCl7dmFyIEl0PXZuLmhhc2hOYW1lKGR0LnBhcmVudC5pZCxkdC5uYW1lKTtpZih2bi5uYW1lVGFibGVbSXRdPT09ZHQpdm4ubmFtZVRhYmxlW0l0XT1kdC5uYW1lX25leHQ7ZWxzZSBmb3IodmFyIFB0PXZuLm5hbWVUYWJsZVtJdF07UHQ7KXtp''@;'; put 'put ''ZihQdC5uYW1lX25leHQ9PT1kdCl7UHQubmFtZV9uZXh0PWR0Lm5hbWVfbmV4dDticmVha31QdD1QdC5uYW1lX25leHR9fSxsb29rdXBOb2RlOmZ1bmN0aW9uKGR0LEl0KXt2YXIgUHQ9dm4ubWF5TG9va3VwKGR0KTtpZihQdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcihQdCxkdCk7Zm9yKHZh''@;'; put 'put ''ciBmZT12bi5oYXNoTmFtZShkdC5pZCxJdCksaXQ9dm4ubmFtZVRhYmxlW2ZlXTtpdDtpdD1pdC5uYW1lX25leHQpaWYoaXQucGFyZW50LmlkPT09ZHQuaWQmJml0Lm5hbWU9PT1JdClyZXR1cm4gaXQ7cmV0dXJuIHZuLmxvb2t1cChkdCxJdCl9LGNyZWF0ZU5vZGU6ZnVuY3Rpb24oZHQsSXQs''@;'; put 'put ''UHQsZmUpe2lmKCF2bi5GU05vZGUpe3ZuLkZTTm9kZT1mdW5jdGlvbihocixQaSxqbixfKXtocnx8KGhyPXRoaXMpLHRoaXMucGFyZW50PWhyLHRoaXMubW91bnQ9aHIubW91bnQsdGhpcy5tb3VudGVkPW51bGwsdGhpcy5pZD12bi5uZXh0SW5vZGUrKyx0aGlzLm5hbWU9UGksdGhpcy5tb2Rl''@;'; put 'put ''PWpuLHRoaXMubm9kZV9vcHM9e30sdGhpcy5zdHJlYW1fb3BzPXt9LHRoaXMucmRldj1ffSx2bi5GU05vZGUucHJvdG90eXBlPXt9O3ZhciBhPTE0NjtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh2bi5GU05vZGUucHJvdG90eXBlLHtyZWFkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMzY1PT0o''@;'; put 'put ''MzY1JnRoaXMubW9kZSl9LHNldDpmdW5jdGlvbihocil7aHI/dGhpcy5tb2RlfD0zNjU6dGhpcy5tb2RlJj0tMzY2fX0sd3JpdGU6e2dldDpmdW5jdGlvbigpe3JldHVybih0aGlzLm1vZGUmYSk9PT1hfSxzZXQ6ZnVuY3Rpb24oaHIpe2hyP3RoaXMubW9kZXw9YTp0aGlzLm1vZGUmPX5hfX0s''@;'; put 'put ''aXNGb2xkZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiB2bi5pc0Rpcih0aGlzLm1vZGUpfX0saXNEZXZpY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiB2bi5pc0NocmRldih0aGlzLm1vZGUpfX19KX12YXIgWHQ9bmV3IHZuLkZTTm9kZShkdCxJdCxQdCxmZSk7cmV0dXJuIHZuLmhhc2hBZGRO''@;'; put 'put ''b2RlKFh0KSxYdH0sZGVzdHJveU5vZGU6ZnVuY3Rpb24oZHQpe3ZuLmhhc2hSZW1vdmVOb2RlKGR0KX0saXNSb290OmZ1bmN0aW9uKGR0KXtyZXR1cm4gZHQ9PT1kdC5wYXJlbnR9LGlzTW91bnRwb2ludDpmdW5jdGlvbihkdCl7cmV0dXJuISFkdC5tb3VudGVkfSxpc0ZpbGU6ZnVuY3Rpb24o''@;'; put 'put ''ZHQpe3JldHVybiAzMjc2OD09KDYxNDQwJmR0KX0saXNEaXI6ZnVuY3Rpb24oZHQpe3JldHVybiAxNjM4ND09KDYxNDQwJmR0KX0saXNMaW5rOmZ1bmN0aW9uKGR0KXtyZXR1cm4gNDA5NjA9PSg2MTQ0MCZkdCl9LGlzQ2hyZGV2OmZ1bmN0aW9uKGR0KXtyZXR1cm4gODE5Mj09KDYxNDQwJmR0''@;'; put 'put ''KX0saXNCbGtkZXY6ZnVuY3Rpb24oZHQpe3JldHVybiAyNDU3Nj09KDYxNDQwJmR0KX0saXNGSUZPOmZ1bmN0aW9uKGR0KXtyZXR1cm4gNDA5Nj09KDYxNDQwJmR0KX0saXNTb2NrZXQ6ZnVuY3Rpb24oZHQpe3JldHVybiA0OTE1Mj09KDQ5MTUyJmR0KX0sZmxhZ01vZGVzOntyOjAscnM6MTA1''@;'; put 'put ''MjY3MiwicisiOjIsdzo1Nzcsd3g6NzA1LHh3OjcwNSwidysiOjU3OCwid3grIjo3MDYsInh3KyI6NzA2LGE6MTA4OSxheDoxMjE3LHhhOjEyMTcsImErIjoxMDkwLCJheCsiOjEyMTgsInhhKyI6MTIxOH0sbW9kZVN0cmluZ1RvRmxhZ3M6ZnVuY3Rpb24oZHQpe3ZhciBJdD12bi5mbGFnTW9k''@;'; put 'put ''ZXNbZHRdO2lmKHZvaWQgMD09PUl0KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBmaWxlIG9wZW4gbW9kZTogIitkdCk7cmV0dXJuIEl0fSxmbGFnc1RvUGVybWlzc2lvblN0cmluZzpmdW5jdGlvbihkdCl7dmFyIEl0PVsiciIsInciLCJydyJdWzMmZHRdO3JldHVybiA1MTImZHQmJihJdCs9''@;'; put 'put ''InciKSxJdH0sbm9kZVBlcm1pc3Npb25zOmZ1bmN0aW9uKGR0LEl0KXtyZXR1cm4gdm4uaWdub3JlUGVybWlzc2lvbnN8fCgtMT09PUl0LmluZGV4T2YoInIiKXx8MjkyJmR0Lm1vZGUpJiYoLTE9PT1JdC5pbmRleE9mKCJ3Iil8fDE0NiZkdC5tb2RlKSYmKC0xPT09SXQuaW5kZXhPZigieCIp''@;'; put 'put ''fHw3MyZkdC5tb2RlKT8wOnZpLkVBQ0NFU30sbWF5TG9va3VwOmZ1bmN0aW9uKGR0KXtyZXR1cm4gdm4ubm9kZVBlcm1pc3Npb25zKGR0LCJ4Iil8fChkdC5ub2RlX29wcy5sb29rdXA/MDp2aS5FQUNDRVMpfSxtYXlDcmVhdGU6ZnVuY3Rpb24oZHQsSXQpe3RyeXtyZXR1cm4gdm4ubG9va3Vw''@;'; put 'put ''Tm9kZShkdCxJdCksdmkuRUVYSVNUfWNhdGNoKGZlKXt9cmV0dXJuIHZuLm5vZGVQZXJtaXNzaW9ucyhkdCwid3giKX0sbWF5RGVsZXRlOmZ1bmN0aW9uKGR0LEl0LFB0KXt2YXIgZmU7dHJ5e2ZlPXZuLmxvb2t1cE5vZGUoZHQsSXQpfWNhdGNoKGEpe3JldHVybiBhLmVycm5vfXZhciBpdD12''@;'; put 'put ''bi5ub2RlUGVybWlzc2lvbnMoZHQsInd4Iik7aWYoaXQpcmV0dXJuIGl0O2lmKFB0KXtpZighdm4uaXNEaXIoZmUubW9kZSkpcmV0dXJuIHZpLkVOT1RESVI7aWYodm4uaXNSb290KGZlKXx8dm4uZ2V0UGF0aChmZSk9PT12bi5jd2QoKSlyZXR1cm4gdmkuRUJVU1l9ZWxzZSBpZih2bi5pc0Rp''@;'; put 'put ''cihmZS5tb2RlKSlyZXR1cm4gdmkuRUlTRElSO3JldHVybiAwfSxtYXlPcGVuOmZ1bmN0aW9uKGR0LEl0KXtyZXR1cm4gZHQ/dm4uaXNMaW5rKGR0Lm1vZGUpP3ZpLkVMT09QOnZuLmlzRGlyKGR0Lm1vZGUpJiYoInIiIT09dm4uZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoSXQpfHw1MTImSXQp''@;'; put 'put ''P3ZpLkVJU0RJUjp2bi5ub2RlUGVybWlzc2lvbnMoZHQsdm4uZmxhZ3NUb1Blcm1pc3Npb25TdHJpbmcoSXQpKTp2aS5FTk9FTlR9LE1BWF9PUEVOX0ZEUzo0MDk2LG5leHRmZDpmdW5jdGlvbihkdCxJdCl7SXQ9SXR8fHZuLk1BWF9PUEVOX0ZEUztmb3IodmFyIFB0PWR0PWR0fHwwO1B0PD1J''@;'; put 'put ''dDtQdCsrKWlmKCF2bi5zdHJlYW1zW1B0XSlyZXR1cm4gUHQ7dGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU1GSUxFKX0sZ2V0U3RyZWFtOmZ1bmN0aW9uKGR0KXtyZXR1cm4gdm4uc3RyZWFtc1tkdF19LGNyZWF0ZVN0cmVhbTpmdW5jdGlvbihkdCxJdCxQdCl7dm4uRlNTdHJlYW18fCh2''@;'; put 'put ''bi5GU1N0cmVhbT1mdW5jdGlvbigpe30sdm4uRlNTdHJlYW0ucHJvdG90eXBlPXt9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHZuLkZTU3RyZWFtLnByb3RvdHlwZSx7b2JqZWN0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlfSxzZXQ6ZnVuY3Rpb24oWHQpe3RoaXMubm9kZT1Y''@;'; put 'put ''dH19LGlzUmVhZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDEhPSgyMDk3MTU1JnRoaXMuZmxhZ3MpfX0saXNXcml0ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDAhPSgyMDk3MTU1JnRoaXMuZmxhZ3MpfX0saXNBcHBlbmQ6e2dldDpmdW5jdGlvbigpe3JldHVybiAxMDI0JnRoaXMuZmxhZ3N9''@;'; put 'put ''fX0pKTt2YXIgZmU9bmV3IHZuLkZTU3RyZWFtO2Zvcih2YXIgaXQgaW4gZHQpZmVbaXRdPWR0W2l0XTtkdD1mZTt2YXIgYT12bi5uZXh0ZmQoSXQsUHQpO3JldHVybiBkdC5mZD1hLHZuLnN0cmVhbXNbYV09ZHQsZHR9LGNsb3NlU3RyZWFtOmZ1bmN0aW9uKGR0KXt2bi5zdHJlYW1zW2R0XT1u''@;'; put 'put ''dWxsfSxjaHJkZXZfc3RyZWFtX29wczp7b3BlbjpmdW5jdGlvbihkdCl7dmFyIEl0PXZuLmdldERldmljZShkdC5ub2RlLnJkZXYpO2R0LnN0cmVhbV9vcHM9SXQuc3RyZWFtX29wcyxkdC5zdHJlYW1fb3BzLm9wZW4mJmR0LnN0cmVhbV9vcHMub3BlbihkdCl9LGxsc2VlazpmdW5jdGlvbigp''@;'; put 'put ''e3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVTUElQRSl9fSxtYWpvcjpmdW5jdGlvbihkdCl7cmV0dXJuIGR0Pj44fSxtaW5vcjpmdW5jdGlvbihkdCl7cmV0dXJuIDI1NSZkdH0sbWFrZWRldjpmdW5jdGlvbihkdCxJdCl7cmV0dXJuIGR0PDw4fEl0fSxyZWdpc3RlckRldmljZTpmdW5j''@;'; put 'put ''dGlvbihkdCxJdCl7dm4uZGV2aWNlc1tkdF09e3N0cmVhbV9vcHM6SXR9fSxnZXREZXZpY2U6ZnVuY3Rpb24oZHQpe3JldHVybiB2bi5kZXZpY2VzW2R0XX0sZ2V0TW91bnRzOmZ1bmN0aW9uKGR0KXtmb3IodmFyIEl0PVtdLFB0PVtkdF07UHQubGVuZ3RoOyl7dmFyIGZlPVB0LnBvcCgpO0l0''@;'; put 'put ''LnB1c2goZmUpLFB0LnB1c2guYXBwbHkoUHQsZmUubW91bnRzKX1yZXR1cm4gSXR9LHN5bmNmczpmdW5jdGlvbihkdCxJdCl7ImZ1bmN0aW9uIj09dHlwZW9mIGR0JiYoSXQ9ZHQsZHQ9ITEpLHZuLnN5bmNGU1JlcXVlc3RzKyssdm4uc3luY0ZTUmVxdWVzdHM+MSYmY29uc29sZS5sb2coIndh''@;'; put 'put ''cm5pbmc6ICIrdm4uc3luY0ZTUmVxdWVzdHMrIiBGUy5zeW5jZnMgb3BlcmF0aW9ucyBpbiBmbGlnaHQgYXQgb25jZSwgcHJvYmFibHkganVzdCBkb2luZyBleHRyYSB3b3JrIik7dmFyIFB0PXZuLmdldE1vdW50cyh2bi5yb290Lm1vdW50KSxmZT0wO2Z1bmN0aW9uIGl0KFh0KXtyZXR1cm4g''@;'; put 'put ''Tyh2bi5zeW5jRlNSZXF1ZXN0cz4wKSx2bi5zeW5jRlNSZXF1ZXN0cy0tLEl0KFh0KX1mdW5jdGlvbiBhKFh0KXtpZihYdClyZXR1cm4gYS5lcnJvcmVkP3ZvaWQgMDooYS5lcnJvcmVkPSEwLGl0KFh0KSk7KytmZT49UHQubGVuZ3RoJiZpdChudWxsKX1QdC5mb3JFYWNoKGZ1bmN0aW9uKFh0''@;'; put 'put ''KXtpZighWHQudHlwZS5zeW5jZnMpcmV0dXJuIGEobnVsbCk7WHQudHlwZS5zeW5jZnMoWHQsZHQsYSl9KX0sbW91bnQ6ZnVuY3Rpb24oZHQsSXQsUHQpe3ZhciBhLGZlPSIvIj09PVB0LGl0PSFQdDtpZihmZSYmdm4ucm9vdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQlVTWSk7aWYo''@;'; put 'put ''IWZlJiYhaXQpe3ZhciBYdD12bi5sb29rdXBQYXRoKFB0LHtmb2xsb3dfbW91bnQ6ITF9KTtpZihQdD1YdC5wYXRoLHZuLmlzTW91bnRwb2ludChhPVh0Lm5vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCVVNZKTtpZighdm4uaXNEaXIoYS5tb2RlKSl0aHJvdyBuZXcgdm4uRXJy''@;'; put 'put ''bm9FcnJvcih2aS5FTk9URElSKX12YXIgaHI9e3R5cGU6ZHQsb3B0czpJdCxtb3VudHBvaW50OlB0LG1vdW50czpbXX0sUGk9ZHQubW91bnQoaHIpO3JldHVybiBQaS5tb3VudD1ocixoci5yb290PVBpLGZlP3ZuLnJvb3Q9UGk6YSYmKGEubW91bnRlZD1ocixhLm1vdW50JiZhLm1vdW50Lm1v''@;'; put 'put ''dW50cy5wdXNoKGhyKSksUGl9LHVubW91bnQ6ZnVuY3Rpb24oZHQpe3ZhciBJdD12bi5sb29rdXBQYXRoKGR0LHtmb2xsb3dfbW91bnQ6ITF9KTtpZighdm4uaXNNb3VudHBvaW50KEl0Lm5vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIFB0PUl0Lm5vZGUsZmU9''@;'; put 'put ''UHQubW91bnRlZCxpdD12bi5nZXRNb3VudHMoZmUpO09iamVjdC5rZXlzKHZuLm5hbWVUYWJsZSkuZm9yRWFjaChmdW5jdGlvbihYdCl7Zm9yKHZhciBocj12bi5uYW1lVGFibGVbWHRdO2hyOyl7dmFyIFBpPWhyLm5hbWVfbmV4dDstMSE9PWl0LmluZGV4T2YoaHIubW91bnQpJiZ2bi5kZXN0''@;'; put 'put ''cm95Tm9kZShociksaHI9UGl9fSksUHQubW91bnRlZD1udWxsO3ZhciBhPVB0Lm1vdW50Lm1vdW50cy5pbmRleE9mKGZlKTtPKC0xIT09YSksUHQubW91bnQubW91bnRzLnNwbGljZShhLDEpfSxsb29rdXA6ZnVuY3Rpb24oZHQsSXQpe3JldHVybiBkdC5ub2RlX29wcy5sb29rdXAoZHQsSXQp''@;'; put 'put ''fSxta25vZDpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGl0PXZuLmxvb2t1cFBhdGgoZHQse3BhcmVudDohMH0pLm5vZGUsYT1VMC5iYXNlbmFtZShkdCk7aWYoIWF8fCIuIj09PWF8fCIuLiI9PT1hKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7dmFyIFh0PXZuLm1heUNyZWF0''@;'; put 'put ''ZShpdCxhKTtpZihYdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcihYdCk7aWYoIWl0Lm5vZGVfb3BzLm1rbm9kKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtyZXR1cm4gaXQubm9kZV9vcHMubWtub2QoaXQsYSxJdCxQdCl9LGNyZWF0ZTpmdW5jdGlvbihkdCxJdCl7cmV0dXJu''@;'; put 'put ''IEl0PXZvaWQgMCE9PUl0P0l0OjQzOCxJdCY9NDA5NSx2bi5ta25vZChkdCxJdHw9MzI3NjgsMCl9LG1rZGlyOmZ1bmN0aW9uKGR0LEl0KXtyZXR1cm4gSXQ9dm9pZCAwIT09SXQ/SXQ6NTExLEl0Jj0xMDIzLHZuLm1rbm9kKGR0LEl0fD0xNjM4NCwwKX0sbWtkaXJUcmVlOmZ1bmN0aW9uKGR0''@;'; put 'put ''LEl0KXtmb3IodmFyIFB0PWR0LnNwbGl0KCIvIiksZmU9IiIsaXQ9MDtpdDxQdC5sZW5ndGg7KytpdClpZihQdFtpdF0pe2ZlKz0iLyIrUHRbaXRdO3RyeXt2bi5ta2RpcihmZSxJdCl9Y2F0Y2goYSl7aWYoYS5lcnJubyE9dmkuRUVYSVNUKXRocm93IGF9fX0sbWtkZXY6ZnVuY3Rpb24oZHQs''@;'; put 'put ''SXQsUHQpe3JldHVybiB2b2lkIDA9PT1QdCYmKFB0PUl0LEl0PTQzOCksdm4ubWtub2QoZHQsSXR8PTgxOTIsUHQpfSxzeW1saW5rOmZ1bmN0aW9uKGR0LEl0KXtpZighVTAucmVzb2x2ZShkdCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTt2YXIgZmU9dm4ubG9va3VwUGF0''@;'; put 'put ''aChJdCx7cGFyZW50OiEwfSkubm9kZTtpZighZmUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTt2YXIgaXQ9VTAuYmFzZW5hbWUoSXQpLGE9dm4ubWF5Q3JlYXRlKGZlLGl0KTtpZihhKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKGEpO2lmKCFmZS5ub2RlX29wcy5zeW1saW5r''@;'; put 'put ''KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtyZXR1cm4gZmUubm9kZV9vcHMuc3ltbGluayhmZSxpdCxkdCl9LHJlbmFtZTpmdW5jdGlvbihkdCxJdCl7dmFyIGhyLFBpLFB0PVUwLmRpcm5hbWUoZHQpLGZlPVUwLmRpcm5hbWUoSXQpLGl0PVUwLmJhc2VuYW1lKGR0KSxhPVUw''@;'; put 'put ''LmJhc2VuYW1lKEl0KTt0cnl7aHI9dm4ubG9va3VwUGF0aChkdCx7cGFyZW50OiEwfSkubm9kZSxQaT12bi5sb29rdXBQYXRoKEl0LHtwYXJlbnQ6ITB9KS5ub2RlfWNhdGNoKGxlKXt0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQlVTWSl9aWYoIWhyfHwhUGkpdGhyb3cgbmV3IHZuLkVy''@;'; put 'put ''cm5vRXJyb3IodmkuRU5PRU5UKTtpZihoci5tb3VudCE9PVBpLm1vdW50KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVYREVWKTt2YXIgQW8sam49dm4ubG9va3VwTm9kZShocixpdCksXz1VMC5yZWxhdGl2ZShkdCxmZSk7aWYoIi4iIT09Xy5jaGFyQXQoMCkpdGhyb3cgbmV3IHZuLkVy''@;'; put 'put ''cm5vRXJyb3IodmkuRUlOVkFMKTtpZigiLiIhPT0oXz1VMC5yZWxhdGl2ZShJdCxQdCkpLmNoYXJBdCgwKSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URU1QVFkpO3RyeXtBbz12bi5sb29rdXBOb2RlKFBpLGEpfWNhdGNoKGxlKXt9aWYoam4hPT1Bbyl7dmFyIFNpPXZuLmlzRGly''@;'; put 'put ''KGpuLm1vZGUpLCRvPXZuLm1heURlbGV0ZShocixpdCxTaSk7aWYoJG8pdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoJG8pO2lmKCRvPUFvP3ZuLm1heURlbGV0ZShQaSxhLFNpKTp2bi5tYXlDcmVhdGUoUGksYSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoJG8pO2lmKCFoci5ub2RlX29wcy5y''@;'; put 'put ''ZW5hbWUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO2lmKHZuLmlzTW91bnRwb2ludChqbil8fEFvJiZ2bi5pc01vdW50cG9pbnQoQW8pKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCVVNZKTtpZihQaSE9PWhyJiYoJG89dm4ubm9kZVBlcm1pc3Npb25zKGhyLCJ3Iikp''@;'; put 'put ''KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKCRvKTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS53aWxsTW92ZVBhdGgmJnZuLnRyYWNraW5nRGVsZWdhdGUud2lsbE1vdmVQYXRoKGR0LEl0KX1jYXRjaChsZSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ3dpbGxNb3ZlUGF0aCdd''@;'; put 'put ''KCciK2R0KyInLCAnIitJdCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK2xlLm1lc3NhZ2UpfXZuLmhhc2hSZW1vdmVOb2RlKGpuKTt0cnl7aHIubm9kZV9vcHMucmVuYW1lKGpuLFBpLGEpfWNhdGNoKGxlKXt0aHJvdyBsZX1maW5hbGx5e3ZuLmhhc2hBZGROb2RlKGpuKX10cnl7dm4udHJh''@;'; put 'put ''Y2tpbmdEZWxlZ2F0ZS5vbk1vdmVQYXRoJiZ2bi50cmFja2luZ0RlbGVnYXRlLm9uTW92ZVBhdGgoZHQsSXQpfWNhdGNoKGxlKXtjb25zb2xlLmxvZygiRlMudHJhY2tpbmdEZWxlZ2F0ZVsnb25Nb3ZlUGF0aCddKCciK2R0KyInLCAnIitJdCsiJykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK2xl''@;'; put 'put ''Lm1lc3NhZ2UpfX19LHJtZGlyOmZ1bmN0aW9uKGR0KXt2YXIgUHQ9dm4ubG9va3VwUGF0aChkdCx7cGFyZW50OiEwfSkubm9kZSxmZT1VMC5iYXNlbmFtZShkdCksaXQ9dm4ubG9va3VwTm9kZShQdCxmZSksYT12bi5tYXlEZWxldGUoUHQsZmUsITApO2lmKGEpdGhyb3cgbmV3IHZuLkVycm5v''@;'; put 'put ''RXJyb3IoYSk7aWYoIVB0Lm5vZGVfb3BzLnJtZGlyKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtpZih2bi5pc01vdW50cG9pbnQoaXQpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCVVNZKTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS53aWxsRGVsZXRlUGF0aCYmdm4u''@;'; put 'put ''dHJhY2tpbmdEZWxlZ2F0ZS53aWxsRGVsZXRlUGF0aChkdCl9Y2F0Y2goWHQpe2NvbnNvbGUubG9nKCJGUy50cmFja2luZ0RlbGVnYXRlWyd3aWxsRGVsZXRlUGF0aCddKCciK2R0KyInKSB0aHJldyBhbiBleGNlcHRpb246ICIrWHQubWVzc2FnZSl9UHQubm9kZV9vcHMucm1kaXIoUHQsZmUp''@;'; put 'put ''LHZuLmRlc3Ryb3lOb2RlKGl0KTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS5vbkRlbGV0ZVBhdGgmJnZuLnRyYWNraW5nRGVsZWdhdGUub25EZWxldGVQYXRoKGR0KX1jYXRjaChYdCl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uRGVsZXRlUGF0aCddKCciK2R0KyInKSB0''@;'; put 'put ''aHJldyBhbiBleGNlcHRpb246ICIrWHQubWVzc2FnZSl9fSxyZWFkZGlyOmZ1bmN0aW9uKGR0KXt2YXIgUHQ9dm4ubG9va3VwUGF0aChkdCx7Zm9sbG93OiEwfSkubm9kZTtpZighUHQubm9kZV9vcHMucmVhZGRpcil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9URElSKTtyZXR1cm4g''@;'; put 'put ''UHQubm9kZV9vcHMucmVhZGRpcihQdCl9LHVubGluazpmdW5jdGlvbihkdCl7dmFyIFB0PXZuLmxvb2t1cFBhdGgoZHQse3BhcmVudDohMH0pLm5vZGUsZmU9VTAuYmFzZW5hbWUoZHQpLGl0PXZuLmxvb2t1cE5vZGUoUHQsZmUpLGE9dm4ubWF5RGVsZXRlKFB0LGZlLCExKTtpZihhKXRocm93''@;'; put 'put ''IG5ldyB2bi5FcnJub0Vycm9yKGEpO2lmKCFQdC5ub2RlX29wcy51bmxpbmspdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO2lmKHZuLmlzTW91bnRwb2ludChpdCkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJVU1kpO3RyeXt2bi50cmFja2luZ0RlbGVnYXRlLndpbGxE''@;'; put 'put ''ZWxldGVQYXRoJiZ2bi50cmFja2luZ0RlbGVnYXRlLndpbGxEZWxldGVQYXRoKGR0KX1jYXRjaChYdCl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ3dpbGxEZWxldGVQYXRoJ10oJyIrZHQrIicpIHRocmV3IGFuIGV4Y2VwdGlvbjogIitYdC5tZXNzYWdlKX1QdC5ub2RlX29w''@;'; put 'put ''cy51bmxpbmsoUHQsZmUpLHZuLmRlc3Ryb3lOb2RlKGl0KTt0cnl7dm4udHJhY2tpbmdEZWxlZ2F0ZS5vbkRlbGV0ZVBhdGgmJnZuLnRyYWNraW5nRGVsZWdhdGUub25EZWxldGVQYXRoKGR0KX1jYXRjaChYdCl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uRGVsZXRlUGF0''@;'; put 'put ''aCddKCciK2R0KyInKSB0aHJldyBhbiBleGNlcHRpb246ICIrWHQubWVzc2FnZSl9fSxyZWFkbGluazpmdW5jdGlvbihkdCl7dmFyIFB0PXZuLmxvb2t1cFBhdGgoZHQpLm5vZGU7aWYoIVB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0VOVCk7aWYoIVB0Lm5vZGVfb3BzLnJlYWRs''@;'; put 'put ''aW5rKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7cmV0dXJuIFUwLnJlc29sdmUodm4uZ2V0UGF0aChQdC5wYXJlbnQpLFB0Lm5vZGVfb3BzLnJlYWRsaW5rKFB0KSl9LHN0YXQ6ZnVuY3Rpb24oZHQsSXQpe3ZhciBmZT12bi5sb29rdXBQYXRoKGR0LHtmb2xsb3c6IUl0fSku''@;'; put 'put ''bm9kZTtpZighZmUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PRU5UKTtpZighZmUubm9kZV9vcHMuZ2V0YXR0cil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSk7cmV0dXJuIGZlLm5vZGVfb3BzLmdldGF0dHIoZmUpfSxsc3RhdDpmdW5jdGlvbihkdCl7cmV0dXJuIHZu''@;'; put 'put ''LnN0YXQoZHQsITApfSxjaG1vZDpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGZlO2lmKCEoZmU9InN0cmluZyI9PXR5cGVvZiBkdD92bi5sb29rdXBQYXRoKGR0LHtmb2xsb3c6IVB0fSkubm9kZTpkdCkubm9kZV9vcHMuc2V0YXR0cil0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FUEVSTSk7''@;'; put 'put ''ZmUubm9kZV9vcHMuc2V0YXR0cihmZSx7bW9kZTo0MDk1Jkl0fC00MDk2JmZlLm1vZGUsdGltZXN0YW1wOkRhdGUubm93KCl9KX0sbGNobW9kOmZ1bmN0aW9uKGR0LEl0KXt2bi5jaG1vZChkdCxJdCwhMCl9LGZjaG1vZDpmdW5jdGlvbihkdCxJdCl7dmFyIFB0PXZuLmdldFN0cmVhbShkdCk7''@;'; put 'put ''aWYoIVB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTt2bi5jaG1vZChQdC5ub2RlLEl0KX0sY2hvd246ZnVuY3Rpb24oZHQsSXQsUHQsZmUpe3ZhciBpdDtpZighKGl0PSJzdHJpbmciPT10eXBlb2YgZHQ/dm4ubG9va3VwUGF0aChkdCx7Zm9sbG93OiFmZX0pLm5vZGU6ZHQp''@;'; put 'put ''Lm5vZGVfb3BzLnNldGF0dHIpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRVBFUk0pO2l0Lm5vZGVfb3BzLnNldGF0dHIoaXQse3RpbWVzdGFtcDpEYXRlLm5vdygpfSl9LGxjaG93bjpmdW5jdGlvbihkdCxJdCxQdCl7dm4uY2hvd24oZHQsSXQsUHQsITApfSxmY2hvd246ZnVuY3Rpb24o''@;'; put 'put ''ZHQsSXQsUHQpe3ZhciBmZT12bi5nZXRTdHJlYW0oZHQpO2lmKCFmZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FQkFERik7dm4uY2hvd24oZmUubm9kZSxJdCxQdCl9LHRydW5jYXRlOmZ1bmN0aW9uKGR0LEl0KXtpZihJdDwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZB''@;'; put 'put ''TCk7dmFyIFB0O2lmKCEoUHQ9InN0cmluZyI9PXR5cGVvZiBkdD92bi5sb29rdXBQYXRoKGR0LHtmb2xsb3c6ITB9KS5ub2RlOmR0KS5ub2RlX29wcy5zZXRhdHRyKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVQRVJNKTtpZih2bi5pc0RpcihQdC5tb2RlKSl0aHJvdyBuZXcgdm4uRXJy''@;'; put 'put ''bm9FcnJvcih2aS5FSVNESVIpO2lmKCF2bi5pc0ZpbGUoUHQubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTt2YXIgaXQ9dm4ubm9kZVBlcm1pc3Npb25zKFB0LCJ3Iik7aWYoaXQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoaXQpO1B0Lm5vZGVfb3BzLnNldGF0dHIo''@;'; put 'put ''UHQse3NpemU6SXQsdGltZXN0YW1wOkRhdGUubm93KCl9KX0sZnRydW5jYXRlOmZ1bmN0aW9uKGR0LEl0KXt2YXIgUHQ9dm4uZ2V0U3RyZWFtKGR0KTtpZighUHQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO2lmKDA9PSgyMDk3MTU1JlB0LmZsYWdzKSl0aHJvdyBuZXcgdm4u''@;'; put 'put ''RXJybm9FcnJvcih2aS5FSU5WQUwpO3ZuLnRydW5jYXRlKFB0Lm5vZGUsSXQpfSx1dGltZTpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGl0PXZuLmxvb2t1cFBhdGgoZHQse2ZvbGxvdzohMH0pLm5vZGU7aXQubm9kZV9vcHMuc2V0YXR0cihpdCx7dGltZXN0YW1wOk1hdGgubWF4KEl0LFB0KX0p''@;'; put 'put ''fSxvcGVuOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXtpZigiIj09PWR0KXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT0VOVCk7dmFyIGE7aWYoUHQ9dm9pZCAwPT09UHQ/NDM4OlB0LFB0PTY0JihJdD0ic3RyaW5nIj09dHlwZW9mIEl0P3ZuLm1vZGVTdHJpbmdUb0ZsYWdzKEl0KTpJ''@;'; put 'put ''dCk/NDA5NSZQdHwzMjc2ODowLCJvYmplY3QiPT10eXBlb2YgZHQpYT1kdDtlbHNle2R0PVUwLm5vcm1hbGl6ZShkdCk7dHJ5e2E9dm4ubG9va3VwUGF0aChkdCx7Zm9sbG93OiEoMTMxMDcyJkl0KX0pLm5vZGV9Y2F0Y2goQW8pe319dmFyIGhyPSExO2lmKDY0Jkl0KWlmKGEpe2lmKDEyOCZJ''@;'; put 'put ''dCl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FRVhJU1QpfWVsc2UgYT12bi5ta25vZChkdCxQdCwwKSxocj0hMDtpZighYSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9FTlQpO2lmKHZuLmlzQ2hyZGV2KGEubW9kZSkmJihJdCY9LTUxMyksNjU1MzYmSXQmJiF2bi5pc0Rpcihh''@;'; put 'put ''Lm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT1RESVIpO2lmKCFocil7dmFyIFBpPXZuLm1heU9wZW4oYSxJdCk7aWYoUGkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IoUGkpfTUxMiZJdCYmdm4udHJ1bmNhdGUoYSwwKSxJdCY9LTY0MTt2YXIgam49dm4uY3JlYXRlU3RyZWFt''@;'; put 'put ''KHtub2RlOmEscGF0aDp2bi5nZXRQYXRoKGEpLGZsYWdzOkl0LHNlZWthYmxlOiEwLHBvc2l0aW9uOjAsc3RyZWFtX29wczphLnN0cmVhbV9vcHMsdW5nb3R0ZW46W10sZXJyb3I6ITF9LGZlLGl0KTtqbi5zdHJlYW1fb3BzLm9wZW4mJmpuLnN0cmVhbV9vcHMub3Blbihqbiksai5sb2dSZWFk''@;'; put 'put ''RmlsZXMmJiEoMSZJdCkmJih2bi5yZWFkRmlsZXN8fCh2bi5yZWFkRmlsZXM9e30pLGR0IGluIHZuLnJlYWRGaWxlc3x8KHZuLnJlYWRGaWxlc1tkdF09MSxqLnByaW50RXJyKCJyZWFkIGZpbGU6ICIrZHQpKSk7dHJ5e2lmKHZuLnRyYWNraW5nRGVsZWdhdGUub25PcGVuRmlsZSl7dmFyIF89''@;'; put 'put ''MDsxIT0oMjA5NzE1NSZJdCkmJihffD12bi50cmFja2luZy5vcGVuRmxhZ3MuUkVBRCksMCE9KDIwOTcxNTUmSXQpJiYoX3w9dm4udHJhY2tpbmcub3BlbkZsYWdzLldSSVRFKSx2bi50cmFja2luZ0RlbGVnYXRlLm9uT3BlbkZpbGUoZHQsXyl9fWNhdGNoKEFvKXtjb25zb2xlLmxvZygiRlMu''@;'; put 'put ''dHJhY2tpbmdEZWxlZ2F0ZVsnb25PcGVuRmlsZSddKCciK2R0KyInLCBmbGFncykgdGhyZXcgYW4gZXhjZXB0aW9uOiAiK0FvLm1lc3NhZ2UpfXJldHVybiBqbn0sY2xvc2U6ZnVuY3Rpb24oZHQpe2R0LmdldGRlbnRzJiYoZHQuZ2V0ZGVudHM9bnVsbCk7dHJ5e2R0LnN0cmVhbV9vcHMuY2xv''@;'; put 'put ''c2UmJmR0LnN0cmVhbV9vcHMuY2xvc2UoZHQpfWNhdGNoKEl0KXt0aHJvdyBJdH1maW5hbGx5e3ZuLmNsb3NlU3RyZWFtKGR0LmZkKX19LGxsc2VlazpmdW5jdGlvbihkdCxJdCxQdCl7aWYoIWR0LnNlZWthYmxlfHwhZHQuc3RyZWFtX29wcy5sbHNlZWspdGhyb3cgbmV3IHZuLkVycm5vRXJy''@;'; put 'put ''b3IodmkuRVNQSVBFKTtyZXR1cm4gZHQucG9zaXRpb249ZHQuc3RyZWFtX29wcy5sbHNlZWsoZHQsSXQsUHQpLGR0LnVuZ290dGVuPVtdLGR0LnBvc2l0aW9ufSxyZWFkOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXtpZihmZTwwfHxpdDwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJ''@;'; put 'put ''TlZBTCk7aWYoMT09KDIwOTcxNTUmZHQuZmxhZ3MpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtpZih2bi5pc0RpcihkdC5ub2RlLm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJU0RJUik7aWYoIWR0LnN0cmVhbV9vcHMucmVhZCl0aHJvdyBuZXcgdm4uRXJy''@;'; put 'put ''bm9FcnJvcih2aS5FSU5WQUwpO3ZhciBhPXZvaWQgMCE9PWl0O2lmKGEpe2lmKCFkdC5zZWVrYWJsZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FU1BJUEUpfWVsc2UgaXQ9ZHQucG9zaXRpb247dmFyIFh0PWR0LnN0cmVhbV9vcHMucmVhZChkdCxJdCxQdCxmZSxpdCk7cmV0dXJuIGF8''@;'; put 'put ''fChkdC5wb3NpdGlvbis9WHQpLFh0fSx3cml0ZTpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCxhKXtpZihmZTwwfHxpdDwwKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTlZBTCk7aWYoMD09KDIwOTcxNTUmZHQuZmxhZ3MpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtp''@;'; put 'put ''Zih2bi5pc0RpcihkdC5ub2RlLm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJU0RJUik7aWYoIWR0LnN0cmVhbV9vcHMud3JpdGUpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTsxMDI0JmR0LmZsYWdzJiZ2bi5sbHNlZWsoZHQsMCwyKTt2YXIgWHQ9dm9pZCAw''@;'; put 'put ''IT09aXQ7aWYoWHQpe2lmKCFkdC5zZWVrYWJsZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FU1BJUEUpfWVsc2UgaXQ9ZHQucG9zaXRpb247dmFyIGhyPWR0LnN0cmVhbV9vcHMud3JpdGUoZHQsSXQsUHQsZmUsaXQsYSk7WHR8fChkdC5wb3NpdGlvbis9aHIpO3RyeXtkdC5wYXRoJiZ2''@;'; put 'put ''bi50cmFja2luZ0RlbGVnYXRlLm9uV3JpdGVUb0ZpbGUmJnZuLnRyYWNraW5nRGVsZWdhdGUub25Xcml0ZVRvRmlsZShkdC5wYXRoKX1jYXRjaChQaSl7Y29uc29sZS5sb2coIkZTLnRyYWNraW5nRGVsZWdhdGVbJ29uV3JpdGVUb0ZpbGUnXSgnIitwYXRoKyInKSB0aHJldyBhbiBleGNlcHRp''@;'; put 'put ''b246ICIrUGkubWVzc2FnZSl9cmV0dXJuIGhyfSxhbGxvY2F0ZTpmdW5jdGlvbihkdCxJdCxQdCl7aWYoSXQ8MHx8UHQ8PTApdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUlOVkFMKTtpZigwPT0oMjA5NzE1NSZkdC5mbGFncykpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYp''@;'; put 'put ''O2lmKCF2bi5pc0ZpbGUoZHQubm9kZS5tb2RlKSYmIXZuLmlzRGlyKGR0Lm5vZGUubW9kZSkpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PREVWKTtpZighZHQuc3RyZWFtX29wcy5hbGxvY2F0ZSl0aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FT1BOT1RTVVBQKTtkdC5zdHJlYW1f''@;'; put 'put ''b3BzLmFsbG9jYXRlKGR0LEl0LFB0KX0sbW1hcDpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCxhLFh0KXtpZigxPT0oMjA5NzE1NSZkdC5mbGFncykpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUFDQ0VTKTtpZighZHQuc3RyZWFtX29wcy5tbWFwKXRocm93IG5ldyB2bi5FcnJub0Vycm9y''@;'; put 'put ''KHZpLkVOT0RFVik7cmV0dXJuIGR0LnN0cmVhbV9vcHMubW1hcChkdCxJdCxQdCxmZSxpdCxhLFh0KX0sbXN5bmM6ZnVuY3Rpb24oZHQsSXQsUHQsZmUsaXQpe3JldHVybiBkdCYmZHQuc3RyZWFtX29wcy5tc3luYz9kdC5zdHJlYW1fb3BzLm1zeW5jKGR0LEl0LFB0LGZlLGl0KTowfSxtdW5t''@;'; put 'put ''YXA6ZnVuY3Rpb24oZHQpe3JldHVybiAwfSxpb2N0bDpmdW5jdGlvbihkdCxJdCxQdCl7aWYoIWR0LnN0cmVhbV9vcHMuaW9jdGwpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRU5PVFRZKTtyZXR1cm4gZHQuc3RyZWFtX29wcy5pb2N0bChkdCxJdCxQdCl9LHJlYWRGaWxlOmZ1bmN0aW9u''@;'; put 'put ''KGR0LEl0KXtpZigoSXQ9SXR8fHt9KS5mbGFncz1JdC5mbGFnc3x8InIiLEl0LmVuY29kaW5nPUl0LmVuY29kaW5nfHwiYmluYXJ5IiwidXRmOCIhPT1JdC5lbmNvZGluZyYmImJpbmFyeSIhPT1JdC5lbmNvZGluZyl0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZW5jb2RpbmcgdHlwZSAiJytJ''@;'; put 'put ''dC5lbmNvZGluZysnIicpO3ZhciBQdCxmZT12bi5vcGVuKGR0LEl0LmZsYWdzKSxhPXZuLnN0YXQoZHQpLnNpemUsWHQ9bmV3IFVpbnQ4QXJyYXkoYSk7cmV0dXJuIHZuLnJlYWQoZmUsWHQsMCxhLDApLCJ1dGY4Ij09PUl0LmVuY29kaW5nP1B0PUNlKFh0LDApOiJiaW5hcnkiPT09SXQuZW5j''@;'; put 'put ''b2RpbmcmJihQdD1YdCksdm4uY2xvc2UoZmUpLFB0fSx3cml0ZUZpbGU6ZnVuY3Rpb24oZHQsSXQsUHQpeyhQdD1QdHx8e30pLmZsYWdzPVB0LmZsYWdzfHwidyI7dmFyIGZlPXZuLm9wZW4oZHQsUHQuZmxhZ3MsUHQubW9kZSk7aWYoInN0cmluZyI9PXR5cGVvZiBJdCl7dmFyIGl0PW5ldyBV''@;'; put 'put ''aW50OEFycmF5KCRlKEl0KSsxKSxhPVBlKEl0LGl0LDAsaXQubGVuZ3RoKTt2bi53cml0ZShmZSxpdCwwLGEsdm9pZCAwLFB0LmNhbk93bil9ZWxzZXtpZighQXJyYXlCdWZmZXIuaXNWaWV3KEl0KSl0aHJvdyBuZXcgRXJyb3IoIlVuc3VwcG9ydGVkIGRhdGEgdHlwZSIpO3ZuLndyaXRlKGZl''@;'; put 'put ''LEl0LDAsSXQuYnl0ZUxlbmd0aCx2b2lkIDAsUHQuY2FuT3duKX12bi5jbG9zZShmZSl9LGN3ZDpmdW5jdGlvbigpe3JldHVybiB2bi5jdXJyZW50UGF0aH0sY2hkaXI6ZnVuY3Rpb24oZHQpe3ZhciBJdD12bi5sb29rdXBQYXRoKGR0LHtmb2xsb3c6ITB9KTtpZihudWxsPT09SXQubm9kZSl0''@;'; put 'put ''aHJvdyBuZXcgdm4uRXJybm9FcnJvcih2aS5FTk9FTlQpO2lmKCF2bi5pc0RpcihJdC5ub2RlLm1vZGUpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVOT1RESVIpO3ZhciBQdD12bi5ub2RlUGVybWlzc2lvbnMoSXQubm9kZSwieCIpO2lmKFB0KXRocm93IG5ldyB2bi5FcnJub0Vycm9y''@;'; put 'put ''KFB0KTt2bi5jdXJyZW50UGF0aD1JdC5wYXRofSxjcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXM6ZnVuY3Rpb24oKXt2bi5ta2RpcigiL3RtcCIpLHZuLm1rZGlyKCIvaG9tZSIpLHZuLm1rZGlyKCIvaG9tZS93ZWJfdXNlciIpfSxjcmVhdGVEZWZhdWx0RGV2aWNlczpmdW5jdGlvbigpe3ZhciBk''@;'; put 'put ''dDtpZih2bi5ta2RpcigiL2RldiIpLHZuLnJlZ2lzdGVyRGV2aWNlKHZuLm1ha2VkZXYoMSwzKSx7cmVhZDpmdW5jdGlvbigpe3JldHVybiAwfSx3cml0ZTpmdW5jdGlvbihQdCxmZSxpdCxhLFh0KXtyZXR1cm4gYX19KSx2bi5ta2RldigiL2Rldi9udWxsIix2bi5tYWtlZGV2KDEsMykpLEJz''@;'; put 'put ''LnJlZ2lzdGVyKHZuLm1ha2VkZXYoNSwwKSxCcy5kZWZhdWx0X3R0eV9vcHMpLEJzLnJlZ2lzdGVyKHZuLm1ha2VkZXYoNiwwKSxCcy5kZWZhdWx0X3R0eTFfb3BzKSx2bi5ta2RldigiL2Rldi90dHkiLHZuLm1ha2VkZXYoNSwwKSksdm4ubWtkZXYoIi9kZXYvdHR5MSIsdm4ubWFrZWRldig2''@;'; put 'put ''LDApKSwidW5kZWZpbmVkIiE9dHlwZW9mIGNyeXB0byl7dmFyIEl0PW5ldyBVaW50OEFycmF5KDEpO2R0PWZ1bmN0aW9uKCl7cmV0dXJuIGNyeXB0by5nZXRSYW5kb21WYWx1ZXMoSXQpLEl0WzBdfX1lbHNlIGR0PU4/ZnVuY3Rpb24oKXtyZXR1cm4gTCg0MTM0OCkucmFuZG9tQnl0ZXMoMSlb''@;'; put 'put ''MF19OmZ1bmN0aW9uKCl7cmV0dXJuIDI1NipNYXRoLnJhbmRvbSgpfDB9O3ZuLmNyZWF0ZURldmljZSgiL2RldiIsInJhbmRvbSIsZHQpLHZuLmNyZWF0ZURldmljZSgiL2RldiIsInVyYW5kb20iLGR0KSx2bi5ta2RpcigiL2Rldi9zaG0iKSx2bi5ta2RpcigiL2Rldi9zaG0vdG1wIil9LGNy''@;'; put 'put ''ZWF0ZVNwZWNpYWxEaXJlY3RvcmllczpmdW5jdGlvbigpe3ZuLm1rZGlyKCIvcHJvYyIpLHZuLm1rZGlyKCIvcHJvYy9zZWxmIiksdm4ubWtkaXIoIi9wcm9jL3NlbGYvZmQiKSx2bi5tb3VudCh7bW91bnQ6ZnVuY3Rpb24oKXt2YXIgZHQ9dm4uY3JlYXRlTm9kZSgiL3Byb2Mvc2VsZiIsImZk''@;'; put 'put ''IiwxNjg5NSw3Myk7cmV0dXJuIGR0Lm5vZGVfb3BzPXtsb29rdXA6ZnVuY3Rpb24oSXQsUHQpe3ZhciBpdD12bi5nZXRTdHJlYW0oK1B0KTtpZighaXQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO3ZhciBhPXtwYXJlbnQ6bnVsbCxtb3VudDp7bW91bnRwb2ludDoiZmFrZSJ9''@;'; put 'put ''LG5vZGVfb3BzOntyZWFkbGluazpmdW5jdGlvbigpe3JldHVybiBpdC5wYXRofX19O3JldHVybiBhLnBhcmVudD1hLGF9fSxkdH19LHt9LCIvcHJvYy9zZWxmL2ZkIil9LGNyZWF0ZVN0YW5kYXJkU3RyZWFtczpmdW5jdGlvbigpe2ouc3RkaW4/dm4uY3JlYXRlRGV2aWNlKCIvZGV2Iiwic3Rk''@;'; put 'put ''aW4iLGouc3RkaW4pOnZuLnN5bWxpbmsoIi9kZXYvdHR5IiwiL2Rldi9zdGRpbiIpLGouc3Rkb3V0P3ZuLmNyZWF0ZURldmljZSgiL2RldiIsInN0ZG91dCIsbnVsbCxqLnN0ZG91dCk6dm4uc3ltbGluaygiL2Rldi90dHkiLCIvZGV2L3N0ZG91dCIpLGouc3RkZXJyP3ZuLmNyZWF0ZURldmlj''@;'; put 'put ''ZSgiL2RldiIsInN0ZGVyciIsbnVsbCxqLnN0ZGVycik6dm4uc3ltbGluaygiL2Rldi90dHkxIiwiL2Rldi9zdGRlcnIiKTt2YXIgZHQ9dm4ub3BlbigiL2Rldi9zdGRpbiIsInIiKTtPKDA9PT1kdC5mZCwiaW52YWxpZCBoYW5kbGUgZm9yIHN0ZGluICgiK2R0LmZkKyIpIik7dmFyIEl0PXZu''@;'; put 'put ''Lm9wZW4oIi9kZXYvc3Rkb3V0IiwidyIpO08oMT09PUl0LmZkLCJpbnZhbGlkIGhhbmRsZSBmb3Igc3Rkb3V0ICgiK0l0LmZkKyIpIik7dmFyIFB0PXZuLm9wZW4oIi9kZXYvc3RkZXJyIiwidyIpO08oMj09PVB0LmZkLCJpbnZhbGlkIGhhbmRsZSBmb3Igc3RkZXJyICgiK1B0LmZkKyIpIil9''@;'; put 'put ''LGVuc3VyZUVycm5vRXJyb3I6ZnVuY3Rpb24oKXt2bi5FcnJub0Vycm9yfHwodm4uRXJybm9FcnJvcj1mdW5jdGlvbihJdCxQdCl7dGhpcy5ub2RlPVB0LHRoaXMuc2V0RXJybm89ZnVuY3Rpb24oZmUpe2Zvcih2YXIgaXQgaW4gdGhpcy5lcnJubz1mZSx2aSlpZih2aVtpdF09PT1mZSl7dGhp''@;'; put 'put ''cy5jb2RlPWl0O2JyZWFrfX0sdGhpcy5zZXRFcnJubyhJdCksdGhpcy5tZXNzYWdlPUhjW0l0XSx0aGlzLnN0YWNrJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic3RhY2siLHt2YWx1ZToobmV3IEVycm9yKS5zdGFjayx3cml0YWJsZTohMH0pfSx2bi5FcnJub0Vycm9yLnByb3RvdHlw''@;'; put 'put ''ZT1uZXcgRXJyb3Isdm4uRXJybm9FcnJvci5wcm90b3R5cGUuY29uc3RydWN0b3I9dm4uRXJybm9FcnJvcixbdmkuRU5PRU5UXS5mb3JFYWNoKGZ1bmN0aW9uKGR0KXt2bi5nZW5lcmljRXJyb3JzW2R0XT1uZXcgdm4uRXJybm9FcnJvcihkdCksdm4uZ2VuZXJpY0Vycm9yc1tkdF0uc3RhY2s9''@;'; put 'put ''IjxnZW5lcmljIGVycm9yLCBubyBzdGFjaz4ifSkpfSxzdGF0aWNJbml0OmZ1bmN0aW9uKCl7dm4uZW5zdXJlRXJybm9FcnJvcigpLHZuLm5hbWVUYWJsZT1uZXcgQXJyYXkoNDA5Niksdm4ubW91bnQoWDAse30sIi8iKSx2bi5jcmVhdGVEZWZhdWx0RGlyZWN0b3JpZXMoKSx2bi5jcmVhdGVE''@;'; put 'put ''ZWZhdWx0RGV2aWNlcygpLHZuLmNyZWF0ZVNwZWNpYWxEaXJlY3RvcmllcygpLHZuLmZpbGVzeXN0ZW1zPXtNRU1GUzpYMCxJREJGUzp1YSxOT0RFRlM6ajAsV09SS0VSRlM6Qmx9fSxpbml0OmZ1bmN0aW9uKGR0LEl0LFB0KXtPKCF2bi5pbml0LmluaXRpYWxpemVkLCJGUy5pbml0IHdhcyBw''@;'; put 'put ''cmV2aW91c2x5IGNhbGxlZC4gSWYgeW91IHdhbnQgdG8gaW5pdGlhbGl6ZSBsYXRlciB3aXRoIGN1c3RvbSBwYXJhbWV0ZXJzLCByZW1vdmUgYW55IGVhcmxpZXIgY2FsbHMgKG5vdGUgdGhhdCBvbmUgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byB0aGUgZ2VuZXJhdGVkIGNvZGUpIiksdm4u''@;'; put 'put ''aW5pdC5pbml0aWFsaXplZD0hMCx2bi5lbnN1cmVFcnJub0Vycm9yKCksai5zdGRpbj1kdHx8ai5zdGRpbixqLnN0ZG91dD1JdHx8ai5zdGRvdXQsai5zdGRlcnI9UHR8fGouc3RkZXJyLHZuLmNyZWF0ZVN0YW5kYXJkU3RyZWFtcygpfSxxdWl0OmZ1bmN0aW9uKCl7dm4uaW5pdC5pbml0aWFs''@;'; put 'put ''aXplZD0hMTt2YXIgZHQ9ai5fZmZsdXNoO2R0JiZkdCgwKTtmb3IodmFyIEl0PTA7SXQ8dm4uc3RyZWFtcy5sZW5ndGg7SXQrKyl7dmFyIFB0PXZuLnN0cmVhbXNbSXRdOyFQdHx8dm4uY2xvc2UoUHQpfX0sZ2V0TW9kZTpmdW5jdGlvbihkdCxJdCl7dmFyIFB0PTA7cmV0dXJuIGR0JiYoUHR8''@;'; put 'put ''PTM2NSksSXQmJihQdHw9MTQ2KSxQdH0sam9pblBhdGg6ZnVuY3Rpb24oZHQsSXQpe3ZhciBQdD1VMC5qb2luLmFwcGx5KG51bGwsZHQpO3JldHVybiBJdCYmIi8iPT1QdFswXSYmKFB0PVB0LnN1YnN0cigxKSksUHR9LGFic29sdXRlUGF0aDpmdW5jdGlvbihkdCxJdCl7cmV0dXJuIFUwLnJl''@;'; put 'put ''c29sdmUoSXQsZHQpfSxzdGFuZGFyZGl6ZVBhdGg6ZnVuY3Rpb24oZHQpe3JldHVybiBVMC5ub3JtYWxpemUoZHQpfSxmaW5kT2JqZWN0OmZ1bmN0aW9uKGR0LEl0KXt2YXIgUHQ9dm4uYW5hbHl6ZVBhdGgoZHQsSXQpO3JldHVybiBQdC5leGlzdHM/UHQub2JqZWN0OihiMChQdC5lcnJvciks''@;'; put 'put ''bnVsbCl9LGFuYWx5emVQYXRoOmZ1bmN0aW9uKGR0LEl0KXt0cnl7ZHQ9KFB0PXZuLmxvb2t1cFBhdGgoZHQse2ZvbGxvdzohSXR9KSkucGF0aH1jYXRjaChpdCl7fXZhciBmZT17aXNSb290OiExLGV4aXN0czohMSxlcnJvcjowLG5hbWU6bnVsbCxwYXRoOm51bGwsb2JqZWN0Om51bGwscGFy''@;'; put 'put ''ZW50RXhpc3RzOiExLHBhcmVudFBhdGg6bnVsbCxwYXJlbnRPYmplY3Q6bnVsbH07dHJ5e3ZhciBQdD12bi5sb29rdXBQYXRoKGR0LHtwYXJlbnQ6ITB9KTtmZS5wYXJlbnRFeGlzdHM9ITAsZmUucGFyZW50UGF0aD1QdC5wYXRoLGZlLnBhcmVudE9iamVjdD1QdC5ub2RlLGZlLm5hbWU9VTAu''@;'; put 'put ''YmFzZW5hbWUoZHQpLFB0PXZuLmxvb2t1cFBhdGgoZHQse2ZvbGxvdzohSXR9KSxmZS5leGlzdHM9ITAsZmUucGF0aD1QdC5wYXRoLGZlLm9iamVjdD1QdC5ub2RlLGZlLm5hbWU9UHQubm9kZS5uYW1lLGZlLmlzUm9vdD0iLyI9PT1QdC5wYXRofWNhdGNoKGl0KXtmZS5lcnJvcj1pdC5lcnJu''@;'; put 'put ''b31yZXR1cm4gZmV9LGNyZWF0ZUZvbGRlcjpmdW5jdGlvbihkdCxJdCxQdCxmZSl7dmFyIGl0PVUwLmpvaW4yKCJzdHJpbmciPT10eXBlb2YgZHQ/ZHQ6dm4uZ2V0UGF0aChkdCksSXQpLGE9dm4uZ2V0TW9kZShQdCxmZSk7cmV0dXJuIHZuLm1rZGlyKGl0LGEpfSxjcmVhdGVQYXRoOmZ1bmN0''@;'; put 'put ''aW9uKGR0LEl0LFB0LGZlKXtkdD0ic3RyaW5nIj09dHlwZW9mIGR0P2R0OnZuLmdldFBhdGgoZHQpO2Zvcih2YXIgaXQ9SXQuc3BsaXQoIi8iKS5yZXZlcnNlKCk7aXQubGVuZ3RoOyl7dmFyIGE9aXQucG9wKCk7aWYoYSl7dmFyIFh0PVUwLmpvaW4yKGR0LGEpO3RyeXt2bi5ta2RpcihYdCl9''@;'; put 'put ''Y2F0Y2goaHIpe31kdD1YdH19cmV0dXJuIFh0fSxjcmVhdGVGaWxlOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXt2YXIgYT1VMC5qb2luMigic3RyaW5nIj09dHlwZW9mIGR0P2R0OnZuLmdldFBhdGgoZHQpLEl0KSxYdD12bi5nZXRNb2RlKGZlLGl0KTtyZXR1cm4gdm4uY3JlYXRlKGEsWHQp''@;'; put 'put ''fSxjcmVhdGVEYXRhRmlsZTpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCxhKXt2YXIgWHQ9SXQ/VTAuam9pbjIoInN0cmluZyI9PXR5cGVvZiBkdD9kdDp2bi5nZXRQYXRoKGR0KSxJdCk6ZHQsaHI9dm4uZ2V0TW9kZShmZSxpdCksUGk9dm4uY3JlYXRlKFh0LGhyKTtpZihQdCl7aWYoInN0cmlu''@;'; put 'put ''ZyI9PXR5cGVvZiBQdCl7Zm9yKHZhciBqbj1uZXcgQXJyYXkoUHQubGVuZ3RoKSxfPTAsQW89UHQubGVuZ3RoO188QW87KytfKWpuW19dPVB0LmNoYXJDb2RlQXQoXyk7UHQ9am59dm4uY2htb2QoUGksMTQ2fGhyKTt2YXIgU2k9dm4ub3BlbihQaSwidyIpO3ZuLndyaXRlKFNpLFB0LDAsUHQu''@;'; put 'put ''bGVuZ3RoLDAsYSksdm4uY2xvc2UoU2kpLHZuLmNobW9kKFBpLGhyKX1yZXR1cm4gUGl9LGNyZWF0ZURldmljZTpmdW5jdGlvbihkdCxJdCxQdCxmZSl7dmFyIGl0PVUwLmpvaW4yKCJzdHJpbmciPT10eXBlb2YgZHQ/ZHQ6dm4uZ2V0UGF0aChkdCksSXQpLGE9dm4uZ2V0TW9kZSghIVB0LCEh''@;'; put 'put ''ZmUpO3ZuLmNyZWF0ZURldmljZS5tYWpvcnx8KHZuLmNyZWF0ZURldmljZS5tYWpvcj02NCk7dmFyIFh0PXZuLm1ha2VkZXYodm4uY3JlYXRlRGV2aWNlLm1ham9yKyssMCk7cmV0dXJuIHZuLnJlZ2lzdGVyRGV2aWNlKFh0LHtvcGVuOmZ1bmN0aW9uKGhyKXtoci5zZWVrYWJsZT0hMX0sY2xv''@;'; put 'put ''c2U6ZnVuY3Rpb24oaHIpe2ZlJiZmZS5idWZmZXImJmZlLmJ1ZmZlci5sZW5ndGgmJmZlKDEwKX0scmVhZDpmdW5jdGlvbihocixQaSxqbixfLEFvKXtmb3IodmFyIFNpPTAsJG89MDskbzxfOyRvKyspe3ZhciBsZTt0cnl7bGU9UHQoKX1jYXRjaChWMSl7dGhyb3cgbmV3IHZuLkVycm5vRXJy''@;'; put 'put ''b3IodmkuRUlPKX1pZih2b2lkIDA9PT1sZSYmMD09PVNpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVBR0FJTik7aWYobnVsbD09bGUpYnJlYWs7U2krKyxQaVtqbiskb109bGV9cmV0dXJuIFNpJiYoaHIubm9kZS50aW1lc3RhbXA9RGF0ZS5ub3coKSksU2l9LHdyaXRlOmZ1bmN0aW9u''@;'; put 'put ''KGhyLFBpLGpuLF8sQW8pe2Zvcih2YXIgU2k9MDtTaTxfO1NpKyspdHJ5e2ZlKFBpW2puK1NpXSl9Y2F0Y2goJG8pe3Rocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyl9cmV0dXJuIF8mJihoci5ub2RlLnRpbWVzdGFtcD1EYXRlLm5vdygpKSxTaX19KSx2bi5ta2RldihpdCxhLFh0KX0s''@;'; put 'put ''Y3JlYXRlTGluazpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCl7dmFyIGE9VTAuam9pbjIoInN0cmluZyI9PXR5cGVvZiBkdD9kdDp2bi5nZXRQYXRoKGR0KSxJdCk7cmV0dXJuIHZuLnN5bWxpbmsoUHQsYSl9LGZvcmNlTG9hZEZpbGU6ZnVuY3Rpb24oZHQpe2lmKGR0LmlzRGV2aWNlfHxkdC5p''@;'; put 'put ''c0ZvbGRlcnx8ZHQubGlua3x8ZHQuY29udGVudHMpcmV0dXJuITA7dmFyIEl0PSEwO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgWE1MSHR0cFJlcXVlc3QpdGhyb3cgbmV3IEVycm9yKCJMYXp5IGxvYWRpbmcgc2hvdWxkIGhhdmUgYmVlbiBwZXJmb3JtZWQgKGNvbnRlbnRzIHNldCkgaW4gY3Jl''@;'; put 'put ''YXRlTGF6eUZpbGUsIGJ1dCBpdCB3YXMgbm90LiBMYXp5IGxvYWRpbmcgb25seSB3b3JrcyBpbiB3ZWIgd29ya2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIG9uIHRoZSBtYWluIHRocmVhZC4iKTtpZighai5yZWFkKXRocm93IG5ldyBFcnJvcigiQ2Fu''@;'; put 'put ''bm90IGxvYWQgd2l0aG91dCByZWFkKCkgb3IgWE1MSHR0cFJlcXVlc3QuIik7dHJ5e2R0LmNvbnRlbnRzPXNvKGoucmVhZChkdC51cmwpLCEwKSxkdC51c2VkQnl0ZXM9ZHQuY29udGVudHMubGVuZ3RofWNhdGNoKFB0KXtJdD0hMX1yZXR1cm4gSXR8fGIwKHZpLkVJTyksSXR9LGNyZWF0ZUxh''@;'; put 'put ''enlGaWxlOmZ1bmN0aW9uKGR0LEl0LFB0LGZlLGl0KXtmdW5jdGlvbiBhKCl7dGhpcy5sZW5ndGhLbm93bj0hMSx0aGlzLmNodW5rcz1bXX1pZihhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oU2kpe2lmKCEoU2k+dGhpcy5sZW5ndGgtMXx8U2k8MCkpe3ZhciAkbz1TaSV0aGlzLmNodW5rU2l6''@;'; put 'put ''ZTtyZXR1cm4gdGhpcy5nZXR0ZXIoU2kvdGhpcy5jaHVua1NpemV8MClbJG9dfX0sYS5wcm90b3R5cGUuc2V0RGF0YUdldHRlcj1mdW5jdGlvbihTaSl7dGhpcy5nZXR0ZXI9U2l9LGEucHJvdG90eXBlLmNhY2hlTGVuZ3RoPWZ1bmN0aW9uKCl7dmFyIFNpPW5ldyBYTUxIdHRwUmVxdWVzdDtp''@;'; put 'put ''ZihTaS5vcGVuKCJIRUFEIixQdCwhMSksU2kuc2VuZChudWxsKSwhKFNpLnN0YXR1cz49MjAwJiZTaS5zdGF0dXM8MzAwfHwzMDQ9PT1TaS5zdGF0dXMpKXRocm93IG5ldyBFcnJvcigiQ291bGRuJ3QgbG9hZCAiK1B0KyIuIFN0YXR1czogIitTaS5zdGF0dXMpO3ZhciBsZSwkbz1OdW1iZXIo''@;'; put 'put ''U2kuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtbGVuZ3RoIikpLFYxPShsZT1TaS5nZXRSZXNwb25zZUhlYWRlcigiQWNjZXB0LVJhbmdlcyIpKSYmImJ5dGVzIj09PWxlLGxzPShsZT1TaS5nZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1FbmNvZGluZyIpKSYmImd6aXAiPT09bGUsTW49''@;'; put 'put ''MTA0ODU3NjtWMXx8KE1uPSRvKTt2YXIgaTI9dGhpcztpMi5zZXREYXRhR2V0dGVyKGZ1bmN0aW9uKG8yKXt2YXIgamM9bzIqTW4seXM9KG8yKzEpKk1uLTE7aWYoeXM9TWF0aC5taW4oeXMsJG8tMSksdm9pZCAwPT09aTIuY2h1bmtzW28yXSYmKGkyLmNodW5rc1tvMl09ZnVuY3Rpb24obzIs''@;'; put 'put ''amMpe2lmKG8yPmpjKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCByYW5nZSAoIitvMisiLCAiK2pjKyIpIG9yIG5vIGJ5dGVzIHJlcXVlc3RlZCEiKTtpZihqYz4kby0xKXRocm93IG5ldyBFcnJvcigib25seSAiKyRvKyIgYnl0ZXMgYXZhaWxhYmxlISBwcm9ncmFtbWVyIGVycm9yISIpO3Zh''@;'; put 'put ''ciB5cz1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoeXMub3BlbigiR0VUIixQdCwhMSksJG8hPT1NbiYmeXMuc2V0UmVxdWVzdEhlYWRlcigiUmFuZ2UiLCJieXRlcz0iK28yKyItIitqYyksInVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5JiYoeXMucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZl''@;'; put 'put ''ciIpLHlzLm92ZXJyaWRlTWltZVR5cGUmJnlzLm92ZXJyaWRlTWltZVR5cGUoInRleHQvcGxhaW47IGNoYXJzZXQ9eC11c2VyLWRlZmluZWQiKSx5cy5zZW5kKG51bGwpLCEoeXMuc3RhdHVzPj0yMDAmJnlzLnN0YXR1czwzMDB8fDMwND09PXlzLnN0YXR1cykpdGhyb3cgbmV3IEVycm9yKCJD''@;'; put 'put ''b3VsZG4ndCBsb2FkICIrUHQrIi4gU3RhdHVzOiAiK3lzLnN0YXR1cyk7cmV0dXJuIHZvaWQgMCE9PXlzLnJlc3BvbnNlP25ldyBVaW50OEFycmF5KHlzLnJlc3BvbnNlfHxbXSk6c28oeXMucmVzcG9uc2VUZXh0fHwiIiwhMCl9KGpjLHlzKSksdm9pZCAwPT09aTIuY2h1bmtzW28yXSl0aHJv''@;'; put 'put ''dyBuZXcgRXJyb3IoImRvWEhSIGZhaWxlZCEiKTtyZXR1cm4gaTIuY2h1bmtzW28yXX0pLChsc3x8ISRvKSYmKE1uPSRvPTEsJG89dGhpcy5nZXR0ZXIoMCkubGVuZ3RoLE1uPSRvLGNvbnNvbGUubG9nKCJMYXp5RmlsZXMgb24gZ3ppcCBmb3JjZXMgZG93bmxvYWQgb2YgdGhlIHdob2xlIGZp''@;'; put 'put ''bGUgd2hlbiBsZW5ndGggaXMgYWNjZXNzZWQiKSksdGhpcy5fbGVuZ3RoPSRvLHRoaXMuX2NodW5rU2l6ZT1Nbix0aGlzLmxlbmd0aEtub3duPSEwfSwidW5kZWZpbmVkIiE9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0KXtpZighVyl0aHJvdyJDYW5ub3QgZG8gc3luY2hyb25vdXMgYmluYXJ5IFhI''@;'; put 'put ''UnMgb3V0c2lkZSB3ZWJ3b3JrZXJzIGluIG1vZGVybiBicm93c2Vycy4gVXNlIC0tZW1iZWQtZmlsZSBvciAtLXByZWxvYWQtZmlsZSBpbiBlbWNjIjt2YXIgWHQ9bmV3IGE7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWHQse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVu''@;'; put 'put ''Z3RoS25vd258fHRoaXMuY2FjaGVMZW5ndGgoKSx0aGlzLl9sZW5ndGh9fSxjaHVua1NpemU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aEtub3dufHx0aGlzLmNhY2hlTGVuZ3RoKCksdGhpcy5fY2h1bmtTaXplfX19KTt2YXIgaHI9e2lzRGV2aWNlOiExLGNvbnRlbnRzOlh0''@;'; put 'put ''fX1lbHNlIGhyPXtpc0RldmljZTohMSx1cmw6UHR9O3ZhciBQaT12bi5jcmVhdGVGaWxlKGR0LEl0LGhyLGZlLGl0KTtoci5jb250ZW50cz9QaS5jb250ZW50cz1oci5jb250ZW50czpoci51cmwmJihQaS5jb250ZW50cz1udWxsLFBpLnVybD1oci51cmwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0''@;'; put 'put ''aWVzKFBpLHt1c2VkQnl0ZXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbnRlbnRzLmxlbmd0aH19fSk7dmFyIGpuPXt9O3JldHVybiBPYmplY3Qua2V5cyhQaS5zdHJlYW1fb3BzKS5mb3JFYWNoKGZ1bmN0aW9uKEFvKXt2YXIgU2k9UGkuc3RyZWFtX29wc1tBb107am5bQW9dPWZ1''@;'; put 'put ''bmN0aW9uKCl7aWYoIXZuLmZvcmNlTG9hZEZpbGUoUGkpKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVJTyk7cmV0dXJuIFNpLmFwcGx5KG51bGwsYXJndW1lbnRzKX19KSxqbi5yZWFkPWZ1bmN0aW9uKFNpLCRvLGxlLFYxLGxzKXtpZighdm4uZm9yY2VMb2FkRmlsZShQaSkpdGhyb3cg''@;'; put 'put ''bmV3IHZuLkVycm5vRXJyb3IodmkuRUlPKTt2YXIgTW49U2kubm9kZS5jb250ZW50cztpZihscz49TW4ubGVuZ3RoKXJldHVybiAwO3ZhciB4bj1NYXRoLm1pbihNbi5sZW5ndGgtbHMsVjEpO2lmKE8oeG4+PTApLE1uLnNsaWNlKWZvcih2YXIgaTI9MDtpMjx4bjtpMisrKSRvW2xlK2kyXT1N''@;'; put 'put ''bltscytpMl07ZWxzZSBmb3IoaTI9MDtpMjx4bjtpMisrKSRvW2xlK2kyXT1Nbi5nZXQobHMraTIpO3JldHVybiB4bn0sUGkuc3RyZWFtX29wcz1qbixQaX0sY3JlYXRlUHJlbG9hZGVkRmlsZTpmdW5jdGlvbihkdCxJdCxQdCxmZSxpdCxhLFh0LGhyLFBpLGpuKXtCcm93c2VyLmluaXQoKTt2''@;'; put 'put ''YXIgXz1JdD9VMC5yZXNvbHZlKFUwLmpvaW4yKGR0LEl0KSk6ZHQ7ZnVuY3Rpb24gU2koJG8pe2Z1bmN0aW9uIGxlKGxzKXtqbiYmam4oKSxocnx8dm4uY3JlYXRlRGF0YUZpbGUoZHQsSXQsbHMsZmUsaXQsUGkpLGEmJmEoKSxXMCgpfXZhciBWMT0hMTtqLnByZWxvYWRQbHVnaW5zLmZvckVh''@;'; put 'put ''Y2goZnVuY3Rpb24obHMpe1YxfHxscy5jYW5IYW5kbGUoXykmJihscy5oYW5kbGUoJG8sXyxsZSxmdW5jdGlvbigpe1h0JiZYdCgpLFcwKCl9KSxWMT0hMCl9KSxWMXx8bGUoJG8pfURpKCksInN0cmluZyI9PXR5cGVvZiBQdD9Ccm93c2VyLmFzeW5jTG9hZChQdCxmdW5jdGlvbigkbyl7U2ko''@;'; put 'put ''JG8pfSxYdCk6U2koUHQpfSxpbmRleGVkREI6ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LmluZGV4ZWREQnx8d2luZG93Lm1vekluZGV4ZWREQnx8d2luZG93LndlYmtpdEluZGV4ZWREQnx8d2luZG93Lm1zSW5kZXhlZERCfSxEQl9OQU1FOmZ1bmN0aW9uKCl7cmV0dXJuIkVNX0ZTXyIrd2lu''@;'; put 'put ''ZG93LmxvY2F0aW9uLnBhdGhuYW1lfSxEQl9WRVJTSU9OOjIwLERCX1NUT1JFX05BTUU6IkZJTEVfREFUQSIsc2F2ZUZpbGVzVG9EQjpmdW5jdGlvbihkdCxJdCxQdCl7SXQ9SXR8fGZ1bmN0aW9uKCl7fSxQdD1QdHx8ZnVuY3Rpb24oKXt9O3ZhciBmZT12bi5pbmRleGVkREIoKTt0cnl7dmFy''@;'; put 'put ''IGl0PWZlLm9wZW4odm4uREJfTkFNRSgpLHZuLkRCX1ZFUlNJT04pfWNhdGNoKGEpe3JldHVybiBQdChhKX1pdC5vbnVwZ3JhZGVuZWVkZWQ9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiY3JlYXRpbmcgZGIiKSxpdC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUodm4uREJfU1RPUkVfTkFNRSl9''@;'; put 'put ''LGl0Lm9uc3VjY2Vzcz1mdW5jdGlvbigpe3ZhciBocj1pdC5yZXN1bHQudHJhbnNhY3Rpb24oW3ZuLkRCX1NUT1JFX05BTUVdLCJyZWFkd3JpdGUiKSxQaT1oci5vYmplY3RTdG9yZSh2bi5EQl9TVE9SRV9OQU1FKSxqbj0wLF89MCxBbz1kdC5sZW5ndGg7ZnVuY3Rpb24gU2koKXswPT1fP0l0''@;'; put 'put ''KCk6UHQoKX1kdC5mb3JFYWNoKGZ1bmN0aW9uKCRvKXt2YXIgbGU9UGkucHV0KHZuLmFuYWx5emVQYXRoKCRvKS5vYmplY3QuY29udGVudHMsJG8pO2xlLm9uc3VjY2Vzcz1mdW5jdGlvbigpeysram4rXz09QW8mJlNpKCl9LGxlLm9uZXJyb3I9ZnVuY3Rpb24oKXtfKyssam4rXz09QW8mJlNp''@;'; put 'put ''KCl9fSksaHIub25lcnJvcj1QdH0saXQub25lcnJvcj1QdH0sbG9hZEZpbGVzRnJvbURCOmZ1bmN0aW9uKGR0LEl0LFB0KXtJdD1JdHx8ZnVuY3Rpb24oKXt9LFB0PVB0fHxmdW5jdGlvbigpe307dmFyIGZlPXZuLmluZGV4ZWREQigpO3RyeXt2YXIgaXQ9ZmUub3Blbih2bi5EQl9OQU1FKCks''@;'; put 'put ''dm4uREJfVkVSU0lPTil9Y2F0Y2goYSl7cmV0dXJuIFB0KGEpfWl0Lm9udXBncmFkZW5lZWRlZD1QdCxpdC5vbnN1Y2Nlc3M9ZnVuY3Rpb24oKXt2YXIgWHQ9aXQucmVzdWx0O3RyeXt2YXIgaHI9WHQudHJhbnNhY3Rpb24oW3ZuLkRCX1NUT1JFX05BTUVdLCJyZWFkb25seSIpfWNhdGNoKCRv''@;'; put 'put ''KXtyZXR1cm4gdm9pZCBQdCgkbyl9dmFyIFBpPWhyLm9iamVjdFN0b3JlKHZuLkRCX1NUT1JFX05BTUUpLGpuPTAsXz0wLEFvPWR0Lmxlbmd0aDtmdW5jdGlvbiBTaSgpezA9PV8/SXQoKTpQdCgpfWR0LmZvckVhY2goZnVuY3Rpb24oJG8pe3ZhciBsZT1QaS5nZXQoJG8pO2xlLm9uc3VjY2Vz''@;'; put 'put ''cz1mdW5jdGlvbigpe3ZuLmFuYWx5emVQYXRoKCRvKS5leGlzdHMmJnZuLnVubGluaygkbyksdm4uY3JlYXRlRGF0YUZpbGUoVTAuZGlybmFtZSgkbyksVTAuYmFzZW5hbWUoJG8pLGxlLnJlc3VsdCwhMCwhMCwhMCksKytqbitfPT1BbyYmU2koKX0sbGUub25lcnJvcj1mdW5jdGlvbigpe18r''@;'; put 'put ''KyxqbitfPT1BbyYmU2koKX19KSxoci5vbmVycm9yPVB0fSxpdC5vbmVycm9yPVB0fX0sXzA9e0RFRkFVTFRfUE9MTE1BU0s6NSxtYXBwaW5nczp7fSx1bWFzazo1MTEsY2FsY3VsYXRlQXQ6ZnVuY3Rpb24oZHQsSXQpe2lmKCIvIiE9PUl0WzBdKXt2YXIgUHQ7aWYoLTEwMD09PWR0KVB0PXZu''@;'; put 'put ''LmN3ZCgpO2Vsc2V7dmFyIGZlPXZuLmdldFN0cmVhbShkdCk7aWYoIWZlKXRocm93IG5ldyB2bi5FcnJub0Vycm9yKHZpLkVCQURGKTtQdD1mZS5wYXRofUl0PVUwLmpvaW4yKFB0LEl0KX1yZXR1cm4gSXR9LGRvU3RhdDpmdW5jdGlvbihkdCxJdCxQdCl7dHJ5e3ZhciBmZT1kdChJdCl9Y2F0''@;'; put 'put ''Y2goaXQpe2lmKGl0JiZpdC5ub2RlJiZVMC5ub3JtYWxpemUoSXQpIT09VTAubm9ybWFsaXplKHZuLmdldFBhdGgoaXQubm9kZSkpKXJldHVybi12aS5FTk9URElSO3Rocm93IGl0fXJldHVybiBMdFtQdD4+Ml09ZmUuZGV2LEx0W1B0KzQ+PjJdPTAsTHRbUHQrOD4+Ml09ZmUuaW5vLEx0W1B0''@;'; put 'put ''KzEyPj4yXT1mZS5tb2RlLEx0W1B0KzE2Pj4yXT1mZS5ubGluayxMdFtQdCsyMD4+Ml09ZmUudWlkLEx0W1B0KzI0Pj4yXT1mZS5naWQsTHRbUHQrMjg+PjJdPWZlLnJkZXYsTHRbUHQrMzI+PjJdPTAsTHRbUHQrMzY+PjJdPWZlLnNpemUsTHRbUHQrNDA+PjJdPTQwOTYsTHRbUHQrNDQ+PjJd''@;'; put 'put ''PWZlLmJsb2NrcyxMdFtQdCs0OD4+Ml09ZmUuYXRpbWUuZ2V0VGltZSgpLzFlM3wwLEx0W1B0KzUyPj4yXT0wLEx0W1B0KzU2Pj4yXT1mZS5tdGltZS5nZXRUaW1lKCkvMWUzfDAsTHRbUHQrNjA+PjJdPTAsTHRbUHQrNjQ+PjJdPWZlLmN0aW1lLmdldFRpbWUoKS8xZTN8MCxMdFtQdCs2OD4+''@;'; put 'put ''Ml09MCxMdFtQdCs3Mj4+Ml09ZmUuaW5vLDB9LGRvTXN5bmM6ZnVuY3Rpb24oZHQsSXQsUHQsZmUpe3ZhciBpdD1uZXcgVWludDhBcnJheSh0dC5zdWJhcnJheShkdCxkdCtQdCkpO3ZuLm1zeW5jKEl0LGl0LDAsUHQsZmUpfSxkb01rZGlyOmZ1bmN0aW9uKGR0LEl0KXtyZXR1cm4iLyI9PT0o''@;'; put 'put ''ZHQ9VTAubm9ybWFsaXplKGR0KSlbZHQubGVuZ3RoLTFdJiYoZHQ9ZHQuc3Vic3RyKDAsZHQubGVuZ3RoLTEpKSx2bi5ta2RpcihkdCxJdCwwKSwwfSxkb01rbm9kOmZ1bmN0aW9uKGR0LEl0LFB0KXtzd2l0Y2goNjE0NDAmSXQpe2Nhc2UgMzI3Njg6Y2FzZSA4MTkyOmNhc2UgMjQ1NzY6Y2Fz''@;'; put 'put ''ZSA0MDk2OmNhc2UgNDkxNTI6YnJlYWs7ZGVmYXVsdDpyZXR1cm4tdmkuRUlOVkFMfXJldHVybiB2bi5ta25vZChkdCxJdCxQdCksMH0sZG9SZWFkbGluazpmdW5jdGlvbihkdCxJdCxQdCl7aWYoUHQ8PTApcmV0dXJuLXZpLkVJTlZBTDt2YXIgZmU9dm4ucmVhZGxpbmsoZHQpLGl0PU1hdGgu''@;'; put 'put ''bWluKFB0LCRlKGZlKSksYT1fdFtJdCtpdF07cmV0dXJuIFFlKGZlLEl0LFB0KzEpLF90W0l0K2l0XT1hLGl0fSxkb0FjY2VzczpmdW5jdGlvbihkdCxJdCl7aWYoLTgmSXQpcmV0dXJuLXZpLkVJTlZBTDt2YXIgZmU9dm4ubG9va3VwUGF0aChkdCx7Zm9sbG93OiEwfSksaXQ9IiI7cmV0dXJu''@;'; put 'put ''IDQmSXQmJihpdCs9InIiKSwyJkl0JiYoaXQrPSJ3IiksMSZJdCYmKGl0Kz0ieCIpLGl0JiZ2bi5ub2RlUGVybWlzc2lvbnMoZmUubm9kZSxpdCk/LXZpLkVBQ0NFUzowfSxkb0R1cDpmdW5jdGlvbihkdCxJdCxQdCl7dmFyIGZlPXZuLmdldFN0cmVhbShQdCk7cmV0dXJuIGZlJiZ2bi5jbG9z''@;'; put 'put ''ZShmZSksdm4ub3BlbihkdCxJdCwwLFB0LFB0KS5mZH0sZG9SZWFkdjpmdW5jdGlvbihkdCxJdCxQdCxmZSl7Zm9yKHZhciBpdD0wLGE9MDthPFB0O2ErKyl7dmFyIGhyPUx0W0l0Kyg4KmErNCk+PjJdLFBpPXZuLnJlYWQoZHQsX3QsTHRbSXQrOCphPj4yXSxocixmZSk7aWYoUGk8MClyZXR1''@;'; put 'put ''cm4tMTtpZihpdCs9UGksUGk8aHIpYnJlYWt9cmV0dXJuIGl0fSxkb1dyaXRldjpmdW5jdGlvbihkdCxJdCxQdCxmZSl7Zm9yKHZhciBpdD0wLGE9MDthPFB0O2ErKyl7dmFyIFBpPXZuLndyaXRlKGR0LF90LEx0W0l0KzgqYT4+Ml0sTHRbSXQrKDgqYSs0KT4+Ml0sZmUpO2lmKFBpPDApcmV0''@;'; put 'put ''dXJuLTE7aXQrPVBpfXJldHVybiBpdH0sdmFyYXJnczowLGdldDpmdW5jdGlvbihkdCl7cmV0dXJuIF8wLnZhcmFyZ3MrPTQsTHRbXzAudmFyYXJncy00Pj4yXX0sZ2V0U3RyOmZ1bmN0aW9uKCl7cmV0dXJuIEYoXzAuZ2V0KCkpfSxnZXRTdHJlYW1Gcm9tRkQ6ZnVuY3Rpb24oKXt2YXIgZHQ9''@;'; put 'put ''dm4uZ2V0U3RyZWFtKF8wLmdldCgpKTtpZighZHQpdGhyb3cgbmV3IHZuLkVycm5vRXJyb3IodmkuRUJBREYpO3JldHVybiBkdH0sZ2V0U29ja2V0RnJvbUZEOmZ1bmN0aW9uKCl7dmFyIGR0PVNPQ0tGUy5nZXRTb2NrZXQoXzAuZ2V0KCkpO2lmKCFkdCl0aHJvdyBuZXcgdm4uRXJybm9FcnJv''@;'; put 'put ''cih2aS5FQkFERik7cmV0dXJuIGR0fSxnZXRTb2NrZXRBZGRyZXNzOmZ1bmN0aW9uKGR0KXt2YXIgSXQ9XzAuZ2V0KCksUHQ9XzAuZ2V0KCk7aWYoZHQmJjA9PT1JdClyZXR1cm4gbnVsbDt2YXIgZmU9X19yZWFkX3NvY2thZGRyKEl0LFB0KTtpZihmZS5lcnJubyl0aHJvdyBuZXcgdm4uRXJy''@;'; put 'put ''bm9FcnJvcihmZS5lcnJubyk7cmV0dXJuIGZlLmFkZHI9RE5TLmxvb2t1cF9hZGRyKGZlLmFkZHIpfHxmZS5hZGRyLGZlfSxnZXQ2NDpmdW5jdGlvbigpe3ZhciBkdD1fMC5nZXQoKSxJdD1fMC5nZXQoKTtyZXR1cm4gTyhkdD49MD8wPT09SXQ6LTE9PT1JdCksZHR9LGdldFplcm86ZnVuY3Rp''@;'; put 'put ''b24oKXtPKDA9PT1fMC5nZXQoKSl9fTtmdW5jdGlvbiBnYyhkdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cigpO3JldHVybiB2bi51bmxpbmsoUHQpLDB9Y2F0Y2goZmUpe3JldHVybih2b2lkIDA9PT12bnx8IShmZSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYm''@;'; put 'put ''ZjIoZmUpLC1mZS5lcnJub319ZnVuY3Rpb24gcGQoZHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQoKSxpdD0oXzAuZ2V0KCksXzAuZ2V0KCkpLGE9XzAuZ2V0KCksWHQ9XzAuZ2V0KCksaHI9aXQ7cmV0dXJuIHZuLmxsc2VlayhQdCxocixYdCksTHRb''@;'; put 'put ''YT4+Ml09UHQucG9zaXRpb24sUHQuZ2V0ZGVudHMmJjA9PT1ociYmMD09PVh0JiYoUHQuZ2V0ZGVudHM9bnVsbCksMH1jYXRjaChQaSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKFBpIGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihQaSksLVBpLmVycm5vfX1mdW5jdGlvbiBCMShkdCxJ''@;'; put 'put ''dCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpLGZlPV8wLmdldCgpLGl0PV8wLmdldCgpO3JldHVybiBfMC5kb1JlYWR2KFB0LGZlLGl0KX1jYXRjaChhKXtyZXR1cm4odm9pZCAwPT09dm58fCEoYSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIo''@;'; put 'put ''YSksLWEuZXJybm99fWZ1bmN0aW9uIGF1KGR0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0U3RyZWFtRnJvbUZEKCksZmU9XzAuZ2V0KCksaXQ9XzAuZ2V0KCk7cmV0dXJuIF8wLmRvV3JpdGV2KFB0LGZlLGl0KX1jYXRjaChhKXtyZXR1cm4odm9pZCAwPT09dm58fCEoYSBp''@;'; put 'put ''bnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoYSksLWEuZXJybm99fWZ1bmN0aW9uIFAxKGR0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0KCksZmU9XzAuZ2V0KCksaXQ9XzAuZ2V0KCksYT1fMC5nZXQoKSxYdD1fMC5nZXQoKSxocj1fMC5nZXQoKTtocjw8PTEyO3Zh''@;'; put 'put ''ciBQaSxqbj0hMTtpZigtMT09PVh0KXtpZighKFBpPVdnKEJ0LGZlKSkpcmV0dXJuLXZpLkVOT01FTTtZZyhQaSwwLGZlKSxqbj0hMH1lbHNle3ZhciBfPXZuLmdldFN0cmVhbShYdCk7aWYoIV8pcmV0dXJuLXZpLkVCQURGO3ZhciBBbz12bi5tbWFwKF8sdHQsUHQsZmUsaHIsaXQsYSk7UGk9''@;'; put 'put ''QW8ucHRyLGpuPUFvLmFsbG9jYXRlZH1yZXR1cm4gXzAubWFwcGluZ3NbUGldPXttYWxsb2M6UGksbGVuOmZlLGFsbG9jYXRlZDpqbixmZDpYdCxmbGFnczphfSxQaX1jYXRjaChTaSl7cmV0dXJuKHZvaWQgMD09PXZufHwhKFNpIGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihTaSks''@;'; put 'put ''LVNpLmVycm5vfX1mdW5jdGlvbiBtYyhkdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cigpLGZlPV8wLmdldCgpO3JldHVybiBfMC5kb1N0YXQodm4uc3RhdCxQdCxmZSl9Y2F0Y2goaXQpe3JldHVybih2b2lkIDA9PT12bnx8IShpdCBpbnN0YW5jZW9mIHZuLkVycm5v''@;'; put 'put ''RXJyb3IpKSYmZjIoaXQpLC1pdC5lcnJub319ZnVuY3Rpb24geDIoZHQsSXQpe18wLnZhcmFyZ3M9SXQ7dHJ5e3ZhciBQdD1fMC5nZXRTdHJlYW1Gcm9tRkQoKSxmZT1fMC5nZXQoKTtyZXR1cm4gXzAuZG9TdGF0KHZuLnN0YXQsUHQucGF0aCxmZSl9Y2F0Y2goaXQpe3JldHVybih2b2lkIDA9''@;'; put 'put ''PT12bnx8IShpdCBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoaXQpLC1pdC5lcnJub319dmFyIFBsPXtwcGlkOjEscGlkOjQyLHNpZDo0MixwZ2lkOjQyfTtmdW5jdGlvbiBkMyhkdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7cmV0dXJuIFBsLnBpZH1jYXRjaChQdCl7cmV0dXJuKHZv''@;'; put 'put ''aWQgMD09PXZufHwhKFB0IGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihQdCksLVB0LmVycm5vfX1mdW5jdGlvbiBRMihkdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpO3N3aXRjaChfMC5nZXQoKSl7Y2FzZSAwOnJldHVybihpdD1fMC5n''@;'; put 'put ''ZXQoKSk8MD8tdmkuRUlOVkFMOnZuLm9wZW4oUHQucGF0aCxQdC5mbGFncywwLGl0KS5mZDtjYXNlIDE6Y2FzZSAyOmNhc2UgMTM6Y2FzZSAxNDpjYXNlIDEzOmNhc2UgMTQ6cmV0dXJuIDA7Y2FzZSAzOnJldHVybiBQdC5mbGFncztjYXNlIDQ6dmFyIGl0PV8wLmdldCgpO3JldHVybiBQdC5m''@;'; put 'put ''bGFnc3w9aXQsMDtjYXNlIDEyOmNhc2UgMTI6cmV0dXJuIGl0PV8wLmdldCgpLGV0W2l0KzA+PjFdPTIsMDtjYXNlIDE2OmNhc2UgODpkZWZhdWx0OnJldHVybi12aS5FSU5WQUw7Y2FzZSA5OnJldHVybiBiMCh2aS5FSU5WQUwpLC0xfX1jYXRjaChocil7cmV0dXJuKHZvaWQgMD09PXZufHwh''@;'; put 'put ''KGhyIGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihociksLWhyLmVycm5vfX1mdW5jdGlvbiBzMShkdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cmVhbUZyb21GRCgpLGZlPV8wLmdldCgpLGl0PV8wLmdldCgpO3JldHVybiB2bi5yZWFkKFB0LF90LGZlLGl0''@;'; put 'put ''KX1jYXRjaChhKXtyZXR1cm4odm9pZCAwPT09dm58fCEoYSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoYSksLWEuZXJybm99fWZ1bmN0aW9uIFowKGR0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAuZ2V0U3RyKCksZmU9XzAuZ2V0KCk7cmV0dXJuIF8wLmRvQWNjZXNz''@;'; put 'put ''KFB0LGZlKX1jYXRjaChpdCl7cmV0dXJuKHZvaWQgMD09PXZufHwhKGl0IGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihpdCksLWl0LmVycm5vfX1mdW5jdGlvbiBmaShkdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0cigpLGZlPV8wLmdldCgpLGl0PV8wLmdl''@;'; put 'put ''dCgpO3JldHVybiB2bi5vcGVuKFB0LGZlLGl0KS5mZH1jYXRjaChYdCl7cmV0dXJuKHZvaWQgMD09PXZufHwhKFh0IGluc3RhbmNlb2Ygdm4uRXJybm9FcnJvcikpJiZmMihYdCksLVh0LmVycm5vfX1mdW5jdGlvbiBSMChkdCxJdCl7XzAudmFyYXJncz1JdDt0cnl7dmFyIFB0PV8wLmdldFN0''@;'; put 'put ''cmVhbUZyb21GRCgpLGZlPV8wLmdldCgpO3N3aXRjaChmZSl7Y2FzZSAyMTUwOTpjYXNlIDIxNTA1OmNhc2UgMjE1MTA6Y2FzZSAyMTUxMTpjYXNlIDIxNTEyOmNhc2UgMjE1MDY6Y2FzZSAyMTUwNzpjYXNlIDIxNTA4OmNhc2UgMjE1MjM6cmV0dXJuIFB0LnR0eT8wOi12aS5FTk9UVFk7Y2Fz''@;'; put 'put ''ZSAyMTUxOTppZighUHQudHR5KXJldHVybi12aS5FTk9UVFk7dmFyIGl0PV8wLmdldCgpO3JldHVybiBMdFtpdD4+Ml09MCwwO2Nhc2UgMjE1MjA6cmV0dXJuIFB0LnR0eT8tdmkuRUlOVkFMOi12aS5FTk9UVFk7Y2FzZSAyMTUzMTpyZXR1cm4gaXQ9XzAuZ2V0KCksdm4uaW9jdGwoUHQsZmUs''@;'; put 'put ''aXQpO2RlZmF1bHQ6ZjIoImJhZCBpb2N0bCBzeXNjYWxsICIrZmUpfX1jYXRjaChhKXtyZXR1cm4odm9pZCAwPT09dm58fCEoYSBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoYSksLWEuZXJybm99fWZ1bmN0aW9uIG1vKGR0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9XzAu''@;'; put 'put ''Z2V0U3RyZWFtRnJvbUZEKCk7cmV0dXJuIHZuLmNsb3NlKFB0KSwwfWNhdGNoKGZlKXtyZXR1cm4odm9pZCAwPT09dm58fCEoZmUgaW5zdGFuY2VvZiB2bi5FcnJub0Vycm9yKSkmJmYyKGZlKSwtZmUuZXJybm99fWZ1bmN0aW9uIHJzKGR0LEl0KXtfMC52YXJhcmdzPUl0O3RyeXt2YXIgUHQ9''@;'; put 'put ''XzAuZ2V0KCksZmU9XzAuZ2V0KCksaXQ9XzAubWFwcGluZ3NbUHRdO2lmKCFpdClyZXR1cm4gMDtpZihmZT09PWl0Lmxlbil7dmFyIGE9dm4uZ2V0U3RyZWFtKGl0LmZkKTtfMC5kb01zeW5jKFB0LGEsZmUsaXQuZmxhZ3MpLHZuLm11bm1hcChhKSxfMC5tYXBwaW5nc1tQdF09bnVsbCxpdC5h''@;'; put 'put ''bGxvY2F0ZWQmJmViKGl0Lm1hbGxvYyl9cmV0dXJuIDB9Y2F0Y2goWHQpe3JldHVybih2b2lkIDA9PT12bnx8IShYdCBpbnN0YW5jZW9mIHZuLkVycm5vRXJyb3IpKSYmZjIoWHQpLC1YdC5lcnJub319dmFyIGRzPVMoWzgsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwy''@;'; put 'put ''LDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNiwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDUsMCwxLDAsMiwwLDEs''@;'; put 'put ''MCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw3LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNSwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw0LDAsMSwwLDIsMCwxLDAsMyww''@;'; put 'put ''LDEsMCwyLDAsMSwwLDYsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDAsNCwwLDEsMCwyLDAsMSwwLDMsMCwxLDAsMiwwLDEsMCw1LDAsMSwwLDIsMCwxLDAsMywwLDEsMCwyLDAsMSwwLDQsMCwxLDAsMiwwLDEsMCwzLDAsMSwwLDIsMCwxLDBdLCJpOCIsVik7ZnVuY3Rpb24gbjIoKXt9''@;'; put 'put ''ZnVuY3Rpb24gVDIoZHQpe2ouZXhpdChkdCl9ZnVuY3Rpb24gVGkoZHQpe1QyKGR0KX12YXIgUHM9eXQ7ZnVuY3Rpb24gTmYoZHQpe3ZhciBmZSxpdDtOZi5jYWxsZWQ/ZmU9THRbKGl0PUx0W1BzPj4yXSk+PjJdOihOZi5jYWxsZWQ9ITAsWWwuVVNFUj1ZbC5MT0dOQU1FPSJ3ZWJfdXNlciIs''@;'; put 'put ''WWwuUEFUSD0iLyIsWWwuUFdEPSIvIixZbC5IT01FPSIvaG9tZS93ZWJfdXNlciIsWWwuTEFORz0iQy5VVEYtOCIsWWwuXz1qLnRoaXNQcm9ncmFtLGZlPW9lKDEwMjQpLGl0PW9lKDI1NiksTHRbaXQ+PjJdPWZlLEx0W1BzPj4yXT1pdCk7dmFyIGE9W10sWHQ9MDtmb3IodmFyIGhyIGluIGR0''@;'; put 'put ''KSJzdHJpbmciPT10eXBlb2YgZHRbaHJdJiYoYS5wdXNoKFBpPWhyKyI9IitkdFtocl0pLFh0Kz1QaS5sZW5ndGgpO2lmKFh0PjEwMjQpdGhyb3cgbmV3IEVycm9yKCJFbnZpcm9ubWVudCBzaXplIGV4Y2VlZGVkIFRPVEFMX0VOVl9TSVpFISIpO2Zvcih2YXIgXz0wO188YS5sZW5ndGg7Xysr''@;'; put 'put ''KXt2YXIgUGk7VHIoUGk9YVtfXSxmZSksTHRbaXQrNCpfPj4yXT1mZSxmZSs9UGkubGVuZ3RoKzF9THRbaXQrNCphLmxlbmd0aD4+Ml09MH15dCs9MTY7dmFyIFlsPXt9O2Z1bmN0aW9uIE5jKGR0KXtyZXR1cm4gMCE9PWR0JiYoZHQ9RihkdCksWWwuaGFzT3duUHJvcGVydHkoZHQpKT8oTmMu''@;'; put 'put ''cmV0JiZlYihOYy5yZXQpLE5jLnJldD13dChZbFtkdF0pKTowfWZ1bmN0aW9uIGNvKGR0KXt2YXIgSXQ9RGF0ZS5ub3coKTtyZXR1cm4gTHRbZHQ+PjJdPUl0LzFlM3wwLEx0W2R0KzQ+PjJdPUl0JTFlMyoxZTN8MCwwfXZhciBDND1KbixyMj1CbixXaT1CbixVcz1vcix2cz1ncixGMT1JbixL''@;'; put 'put ''bD1JbjtmdW5jdGlvbiBDcygpe2YyKCJ0cmFwISIpfWZ1bmN0aW9uIFJpKGR0LEl0KXt0aHJvdyBqLnNldFRocmV3KGR0LEl0fHwxKSwibG9uZ2ptcCJ9ZnVuY3Rpb24gSDEoZHQsSXQsUHQpe3JldHVybiB0dC5zZXQodHQuc3ViYXJyYXkoSXQsSXQrUHQpLGR0KSxkdH1mdW5jdGlvbiBKMihk''@;'; put 'put ''dCxJdCxQdCl7aWYoMD09PWR0KXJldHVybiBiMCh2aS5FSU5WQUwpLC0xO3ZhciBmZT1GKGR0KSxpdD1GKEl0KTtyZXR1cm4iIj09PWZlfHwtMSE9PWZlLmluZGV4T2YoIj0iKT8oYjAodmkuRUlOVkFMKSwtMSk6KFlsLmhhc093blByb3BlcnR5KGZlKSYmIVB0fHwoWWxbZmVdPWl0LE5mKFls''@;'; put 'put ''KSksMCl9ZnVuY3Rpb24gQzAoZHQpe3ZhciBJdD1EYXRlLm5vdygpLzFlM3wwO3JldHVybiBkdCYmKEx0W2R0Pj4yXT1JdCksSXR9ZnVuY3Rpb24gdTEoZHQpe3JldHVybiAwIT09ZHQmJllnKGR0LDAsMTYpLDB9aWYoZ2w9Tj9mdW5jdGlvbigpe3ZhciBJdD1wcm9jZXNzLmhydGltZSgpO3Jl''@;'; put 'put ''dHVybiAxZTMqSXRbMF0rSXRbMV0vMWU2fToidW5kZWZpbmVkIiE9dHlwZW9mIGRhdGVOb3c/ZGF0ZU5vdzoib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYucGVyZm9ybWFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBzZWxmLnBlcmZvcm1hbmNlLm5vdz9mdW5jdGlvbigpe3JldHVybiBzZWxm''@;'; put 'put ''LnBlcmZvcm1hbmNlLm5vdygpfToib2JqZWN0Ij09dHlwZW9mIHBlcmZvcm1hbmNlJiYiZnVuY3Rpb24iPT10eXBlb2YgcGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpEYXRlLm5vdyx2bi5zdGF0aWNJbml0KCkscXQudW5zaGlmdChmdW5jdGlv''@;'; put 'put ''bigpeyFqLm5vRlNJbml0JiYhdm4uaW5pdC5pbml0aWFsaXplZCYmdm4uaW5pdCgpfSkscHIucHVzaChmdW5jdGlvbigpe3ZuLmlnbm9yZVBlcm1pc3Npb25zPSExfSksbnIucHVzaChmdW5jdGlvbigpe3ZuLnF1aXQoKX0pLHF0LnVuc2hpZnQoZnVuY3Rpb24oKXtCcy5pbml0KCl9KSxuci5w''@;'; put 'put ''dXNoKGZ1bmN0aW9uKCl7QnMuc2h1dGRvd24oKX0pLE4pe3ZhciBtbD1MKDM1MTU5KSxwMz1MKDc1NzAxKTtqMC5zdGF0aWNJbml0KCl9TmYoWWwpLGxuPW9lKDQpLEp0PWduPWRlKHl0KSx5bj1kZShkbj1KdCtlciksTHRbbG4+PjJdPXluLGp0PSEwO3ZhciBZdT0hMTtmdW5jdGlvbiBzbyhk''@;'; put 'put ''dCxJdCxQdCl7dmFyIGZlPVB0PjA/UHQ6JGUoZHQpKzEsaXQ9bmV3IEFycmF5KGZlKSxhPVBlKGR0LGl0LDAsaXQubGVuZ3RoKTtyZXR1cm4gSXQmJihpdC5sZW5ndGg9YSksaXR9ZnVuY3Rpb24gWWEoZHQpe2Zvcih2YXIgSXQ9W10sUHQ9MDtQdDxkdC5sZW5ndGg7UHQrKyl7dmFyIGZlPWR0''@;'; put 'put ''W1B0XTtmZT4yNTUmJihZdSYmTyghMSwiQ2hhcmFjdGVyIGNvZGUgIitmZSsiICgiK1N0cmluZy5mcm9tQ2hhckNvZGUoZmUpKyIpICBhdCBvZmZzZXQgIitQdCsiIG5vdCBpbiAweDAwLTB4RkYuIiksZmUmPTI1NSksSXQucHVzaChTdHJpbmcuZnJvbUNoYXJDb2RlKGZlKSl9cmV0dXJuIEl0''@;'; put 'put ''LmpvaW4oIiIpfXZhciBhcz0iZnVuY3Rpb24iPT10eXBlb2YgYXRvYj9hdG9iOmZ1bmN0aW9uKGR0KXt2YXIgaXQsYSxYdCxocixQaSxqbixJdD0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLFB0PSIiLF89MDtkdD1k''@;'; put 'put ''dC5yZXBsYWNlKC9bXkEtWmEtejAtOVwrXC9cPV0vZywiIik7ZG97WHQ9SXQuaW5kZXhPZihkdC5jaGFyQXQoXysrKSksaXQ9KDE1Jihocj1JdC5pbmRleE9mKGR0LmNoYXJBdChfKyspKSkpPDw0fChQaT1JdC5pbmRleE9mKGR0LmNoYXJBdChfKyspKSk+PjIsYT0oMyZQaSk8PDZ8KGpuPUl0''@;'; put 'put ''LmluZGV4T2YoZHQuY2hhckF0KF8rKykpKSxQdCs9U3RyaW5nLmZyb21DaGFyQ29kZShYdDw8Mnxocj4+NCksNjQhPT1QaSYmKFB0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGl0KSksNjQhPT1qbiYmKFB0Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEpKX13aGlsZShfPGR0Lmxlbmd0aCk7cmV0dXJu''@;'; put 'put ''IFB0fTtmdW5jdGlvbiBYYShkdCl7aWYoImJvb2xlYW4iPT10eXBlb2YgTiYmTil7dmFyIEl0O3RyeXtJdD1CdWZmZXIuZnJvbShkdCwiYmFzZTY0Iil9Y2F0Y2goYSl7SXQ9bmV3IEJ1ZmZlcihkdCwiYmFzZTY0Iil9cmV0dXJuIG5ldyBVaW50OEFycmF5KEl0LmJ1ZmZlcixJdC5ieXRlT2Zm''@;'; put 'put ''c2V0LEl0LmJ5dGVMZW5ndGgpfXRyeXtmb3IodmFyIFB0PWFzKGR0KSxmZT1uZXcgVWludDhBcnJheShQdC5sZW5ndGgpLGl0PTA7aXQ8UHQubGVuZ3RoOysraXQpZmVbaXRdPVB0LmNoYXJDb2RlQXQoaXQpO3JldHVybiBmZX1jYXRjaChhKXt0aHJvdyBuZXcgRXJyb3IoIkNvbnZlcnRpbmcg''@;'; put 'put ''YmFzZTY0IHN0cmluZyB0byBieXRlcyBmYWlsZWQuIil9fWZ1bmN0aW9uIFV1KGR0KXtpZihjYShkdCkpcmV0dXJuIFhhKGR0LnNsaWNlKHFvLmxlbmd0aCkpfWZ1bmN0aW9uIEExKGR0KXt0cnl7cmV0dXJuIGouZHluQ2FsbF9kKGR0KX1jYXRjaChJdCl7aWYoIm51bWJlciIhPXR5cGVvZiBJ''@;'; put 'put ''dCYmImxvbmdqbXAiIT09SXQpdGhyb3cgSXQ7ai5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBtaChkdCxJdCxQdCxmZSl7dHJ5e3JldHVybiBqLmR5bkNhbGxfZGRkZChkdCxJdCxQdCxmZSl9Y2F0Y2goaXQpe2lmKCJudW1iZXIiIT10eXBlb2YgaXQmJiJsb25nam1wIiE9PWl0KXRocm93IGl0''@;'; put 'put ''O2ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gX2EoZHQsSXQpe3RyeXtyZXR1cm4gai5keW5DYWxsX2RpKGR0LEl0KX1jYXRjaChQdCl7aWYoIm51bWJlciIhPXR5cGVvZiBQdCYmImxvbmdqbXAiIT09UHQpdGhyb3cgUHQ7ai5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBqcChkdCl7dHJ5e3Jl''@;'; put 'put ''dHVybiBqLmR5bkNhbGxfaShkdCl9Y2F0Y2goSXQpe2lmKCJudW1iZXIiIT10eXBlb2YgSXQmJiJsb25nam1wIiE9PUl0KXRocm93IEl0O2ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gazQoZHQsSXQpe3RyeXtyZXR1cm4gai5keW5DYWxsX2lpKGR0LEl0KX1jYXRjaChQdCl7aWYoIm51bWJl''@;'; put 'put ''ciIhPXR5cGVvZiBQdCYmImxvbmdqbXAiIT09UHQpdGhyb3cgUHQ7ai5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBzbChkdCxJdCxQdCl7dHJ5e3JldHVybiBqLmR5bkNhbGxfaWlpKGR0LEl0LFB0KX1jYXRjaChmZSl7aWYoIm51bWJlciIhPXR5cGVvZiBmZSYmImxvbmdqbXAiIT09ZmUpdGhy''@;'; put 'put ''b3cgZmU7ai5zZXRUaHJldygxLDApfX1mdW5jdGlvbiB1bChkdCxJdCxQdCxmZSxpdCl7dHJ5e3JldHVybiBqLmR5bkNhbGxfaWlpZGQoZHQsSXQsUHQsZmUsaXQpfWNhdGNoKGEpe2lmKCJudW1iZXIiIT10eXBlb2YgYSYmImxvbmdqbXAiIT09YSl0aHJvdyBhO2ouc2V0VGhyZXcoMSwwKX19''@;'; put 'put ''ZnVuY3Rpb24gWTAoZHQsSXQsUHQsZmUpe3RyeXtyZXR1cm4gai5keW5DYWxsX2lpaWkoZHQsSXQsUHQsZmUpfWNhdGNoKGl0KXtpZigibnVtYmVyIiE9dHlwZW9mIGl0JiYibG9uZ2ptcCIhPT1pdCl0aHJvdyBpdDtqLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIEFzKGR0LEl0LFB0LGZlLGl0''@;'; put 'put ''KXt0cnl7cmV0dXJuIGouZHluQ2FsbF9paWlpaShkdCxJdCxQdCxmZSxpdCl9Y2F0Y2goYSl7aWYoIm51bWJlciIhPXR5cGVvZiBhJiYibG9uZ2ptcCIhPT1hKXRocm93IGE7ai5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBmYShkdCxJdCxQdCxmZSxpdCxhKXt0cnl7cmV0dXJuIGouZHluQ2Fs''@;'; put 'put ''bF9paWlpaWkoZHQsSXQsUHQsZmUsaXQsYSl9Y2F0Y2goWHQpe2lmKCJudW1iZXIiIT10eXBlb2YgWHQmJiJsb25nam1wIiE9PVh0KXRocm93IFh0O2ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gRm8oZHQsSXQsUHQsZmUsaXQsYSxYdCl7dHJ5e3JldHVybiBqLmR5bkNhbGxfaWlpaWlpaShk''@;'; put 'put ''dCxJdCxQdCxmZSxpdCxhLFh0KX1jYXRjaChocil7aWYoIm51bWJlciIhPXR5cGVvZiBociYmImxvbmdqbXAiIT09aHIpdGhyb3cgaHI7ai5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBnZChkdCxJdCxQdCxmZSxpdCxhLFh0LGhyLFBpLGpuLF8pe3RyeXtyZXR1cm4gai5keW5DYWxsX2lpaWlp''@;'; put 'put ''aWlpaWlpKGR0LEl0LFB0LGZlLGl0LGEsWHQsaHIsUGksam4sXyl9Y2F0Y2goQW8pe2lmKCJudW1iZXIiIT10eXBlb2YgQW8mJiJsb25nam1wIiE9PUFvKXRocm93IEFvO2ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24geTEoZHQpe3RyeXtqLmR5bkNhbGxfdihkdCl9Y2F0Y2goSXQpe2lmKCJu''@;'; put 'put ''dW1iZXIiIT10eXBlb2YgSXQmJiJsb25nam1wIiE9PUl0KXRocm93IEl0O2ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gdzEoZHQsSXQpe3RyeXtqLmR5bkNhbGxfdmkoZHQsSXQpfWNhdGNoKFB0KXtpZigibnVtYmVyIiE9dHlwZW9mIFB0JiYibG9uZ2ptcCIhPT1QdCl0aHJvdyBQdDtqLnNl''@;'; put 'put ''dFRocmV3KDEsMCl9fWZ1bmN0aW9uIGxmKGR0LEl0LFB0KXt0cnl7ai5keW5DYWxsX3ZpaShkdCxJdCxQdCl9Y2F0Y2goZmUpe2lmKCJudW1iZXIiIT10eXBlb2YgZmUmJiJsb25nam1wIiE9PWZlKXRocm93IGZlO2ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gbWQoZHQsSXQsUHQsZmUpe3Ry''@;'; put 'put ''eXtqLmR5bkNhbGxfdmlpaShkdCxJdCxQdCxmZSl9Y2F0Y2goaXQpe2lmKCJudW1iZXIiIT10eXBlb2YgaXQmJiJsb25nam1wIiE9PWl0KXRocm93IGl0O2ouc2V0VGhyZXcoMSwwKX19ZnVuY3Rpb24gJGwoZHQsSXQsUHQsZmUsaXQsYSxYdCl7dHJ5e2ouZHluQ2FsbF92aWlpZGRpKGR0LEl0''@;'; put 'put ''LFB0LGZlLGl0LGEsWHQpfWNhdGNoKGhyKXtpZigibnVtYmVyIiE9dHlwZW9mIGhyJiYibG9uZ2ptcCIhPT1ocil0aHJvdyBocjtqLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIHh1KGR0LEl0LFB0LGZlLGl0KXt0cnl7ai5keW5DYWxsX3ZpaWlpKGR0LEl0LFB0LGZlLGl0KX1jYXRjaChhKXtp''@;'; put 'put ''ZigibnVtYmVyIiE9dHlwZW9mIGEmJiJsb25nam1wIiE9PWEpdGhyb3cgYTtqLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIGx1KGR0LEl0LFB0LGZlLGl0LGEpe3RyeXtqLmR5bkNhbGxfdmlpaWlpKGR0LEl0LFB0LGZlLGl0LGEpfWNhdGNoKFh0KXtpZigibnVtYmVyIiE9dHlwZW9mIFh0JiYi''@;'; put 'put ''bG9uZ2ptcCIhPT1YdCl0aHJvdyBYdDtqLnNldFRocmV3KDEsMCl9fWZ1bmN0aW9uIFR1KGR0LEl0LFB0LGZlLGl0LGEsWHQpe3RyeXtqLmR5bkNhbGxfdmlpaWlpaShkdCxJdCxQdCxmZSxpdCxhLFh0KX1jYXRjaChocil7aWYoIm51bWJlciIhPXR5cGVvZiBociYmImxvbmdqbXAiIT09aHIp''@;'; put 'put ''dGhyb3cgaHI7ai5zZXRUaHJldygxLDApfX1mdW5jdGlvbiBzZihkdCxJdCxQdCxmZSxpdCxhLFh0LGhyLFBpLGpuKXt0cnl7ai5keW5DYWxsX3ZpaWlpaWlpaWkoZHQsSXQsUHQsZmUsaXQsYSxYdCxocixQaSxqbil9Y2F0Y2goXyl7aWYoIm51bWJlciIhPXR5cGVvZiBfJiYibG9uZ2ptcCIh''@;'; put 'put ''PT1fKXRocm93IF87ai5zZXRUaHJldygxLDApfX1qLmFzbUdsb2JhbEFyZz17TWF0aCxJbnQ4QXJyYXksSW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQ4QXJyYXksVWludDE2QXJyYXksVWludDMyQXJyYXksRmxvYXQzMkFycmF5LEZsb2F0NjRBcnJheSxOYU46TmFOLEluZmluaXR5OjEvMH0s''@;'; put 'put ''ai5hc21MaWJyYXJ5QXJnPXthYm9ydDpmMixhc3NlcnQ6TyxlbmxhcmdlTWVtb3J5OmJuLGdldFRvdGFsTWVtb3J5OlhuLGFib3J0T25DYW5ub3RHcm93TWVtb3J5Ok5uLGludm9rZV9kOkExLGludm9rZV9kZGRkOm1oLGludm9rZV9kaTpfYSxpbnZva2VfaTpqcCxpbnZva2VfaWk6azQsaW52''@;'; put 'put ''b2tlX2lpaTpzbCxpbnZva2VfaWlpZGQ6dWwsaW52b2tlX2lpaWk6WTAsaW52b2tlX2lpaWlpOkFzLGludm9rZV9paWlpaWk6ZmEsaW52b2tlX2lpaWlpaWk6Rm8saW52b2tlX2lpaWlpaWlpaWlpOmdkLGludm9rZV92OnkxLGludm9rZV92aTp3MSxpbnZva2VfdmlpOmxmLGludm9rZV92aWlp''@;'; put 'put ''Om1kLGludm9rZV92aWlpZGRpOiRsLGludm9rZV92aWlpaTp4dSxpbnZva2VfdmlpaWlpOmx1LGludm9rZV92aWlpaWlpOlR1LGludm9rZV92aWlpaWlpaWlpOnNmLF9fX2Fzc2VydF9mYWlsOm5sLF9fX2J1aWxkRW52aXJvbm1lbnQ6TmYsX19fY2xvY2tfZ2V0dGltZTpybCxfX19sb2NrOl9p''@;'; put 'put ''LF9fX21hcF9maWxlOm91LF9fX3NldEVyck5vOmIwLF9fX3N5c2NhbGwxMDpnYyxfX19zeXNjYWxsMTQwOnBkLF9fX3N5c2NhbGwxNDU6QjEsX19fc3lzY2FsbDE0NjphdSxfX19zeXNjYWxsMTkyOlAxLF9fX3N5c2NhbGwxOTU6bWMsX19fc3lzY2FsbDE5Nzp4MixfX19zeXNjYWxsMjA6ZDMs''@;'; put 'put ''X19fc3lzY2FsbDIyMTpRMixfX19zeXNjYWxsMzpzMSxfX19zeXNjYWxsMzM6WjAsX19fc3lzY2FsbDU6ZmksX19fc3lzY2FsbDU0OlIwLF9fX3N5c2NhbGw2Om1vLF9fX3N5c2NhbGw5MTpycyxfX191bmxvY2s6bjIsX19leGl0OlQyLF9jbG9ja19nZXR0aW1lOnNhLF9lbXNjcmlwdGVuX2Fz''@;'; put 'put ''bV9jb25zdF9paWk6UWksX2Vtc2NyaXB0ZW5fZ2V0X25vdzpnbCxfZW1zY3JpcHRlbl9nZXRfbm93X2lzX21vbm90b25pYzpBaSxfZW1zY3JpcHRlbl9tZW1jcHlfYmlnOkgxLF9leGl0OlRpLF9nZXRlbnY6TmMsX2dldHRpbWVvZmRheTpjbyxfbGx2bV9jZWlsX2Y2NDpDNCxfbGx2bV9mYWJz''@;'; put 'put ''X2YzMjpyMixfbGx2bV9mYWJzX2Y2NDpXaSxfbGx2bV9mbG9vcl9mNjQ6VXMsX2xsdm1fcG93X2Y2NDp2cyxfbGx2bV9zcXJ0X2YzMjpGMSxfbGx2bV9zcXJ0X2Y2NDpLbCxfbGx2bV90cmFwOkNzLF9sb25nam1wOlJpLF9zZXRlbnY6SjIsX3RpbWU6QzAsX3RpbWVzOnUxLERZTkFNSUNUT1Bf''@;'; put 'put ''UFRSOmxuLHRlbXBEb3VibGVQdHI6TWEsQUJPUlQ6TWUsU1RBQ0tUT1A6Z24sU1RBQ0tfTUFYOmRuLGN0dHpfaTg6ZHN9O3ZhciAkZyxLbz1mdW5jdGlvbihkdCxJdCxQdCl7dmFyIGZlPW5ldyBkdC5JbnQ4QXJyYXkoUHQpLGl0PW5ldyBkdC5JbnQxNkFycmF5KFB0KSxhPW5ldyBkdC5JbnQz''@;'; put 'put ''MkFycmF5KFB0KSxYdD1uZXcgZHQuVWludDhBcnJheShQdCksaHI9bmV3IGR0LlVpbnQxNkFycmF5KFB0KSxqbj0obmV3IGR0LlVpbnQzMkFycmF5KFB0KSxuZXcgZHQuRmxvYXQzMkFycmF5KFB0KSksXz1uZXcgZHQuRmxvYXQ2NEFycmF5KFB0KSxBbz0wfEl0LkRZTkFNSUNUT1BfUFRSLFNp''@;'; put 'put ''PTB8SXQudGVtcERvdWJsZVB0cixsZT0wfEl0LlNUQUNLVE9QLGxzPTB8SXQuY3R0el9pOCxNbj0wLHhuPTAsaTI9MCxqYz1kdC5OYU4seXM9ZHQuSW5maW5pdHksRG49MCxjZj1kdC5NYXRoLmZsb29yLGVvPWR0Lk1hdGguYWJzLEQwPWR0Lk1hdGguc3FydCxxbD1kdC5NYXRoLnBvdyxoYT1k''@;'; put 'put ''dC5NYXRoLmNvcyxEYT1kdC5NYXRoLnNpbixUOD1kdC5NYXRoLnRhbixKcD1kdC5NYXRoLmFjb3MsWHA9ZHQuTWF0aC5hc2luLFpmPWR0Lk1hdGguYXRhbixVbD1kdC5NYXRoLmF0YW4yLHpmPWR0Lk1hdGguZXhwLEl1PWR0Lk1hdGguY2VpbCxBcj1kdC5NYXRoLmltdWwsQWQ9ZHQuTWF0aC5j''@;'; put 'put ''bHozMix3Mj1JdC5hYm9ydCx5ZD1JdC5lbmxhcmdlTWVtb3J5LEtwPUl0LmdldFRvdGFsTWVtb3J5LGZmPUl0LmFib3J0T25DYW5ub3RHcm93TWVtb3J5LENoPUl0Lmludm9rZV9kaSx3ZD1JdC5pbnZva2VfaSxhMD1JdC5pbnZva2VfaWksRmw9SXQuaW52b2tlX2lpaSxKcz1JdC5pbnZva2Vf''@;'; put 'put ''aWlpaSx0YT1JdC5pbnZva2VfaWlpaWksYzE9SXQuaW52b2tlX2lpaWlpaWksWmM9SXQuaW52b2tlX3Ysc3M9SXQuaW52b2tlX3ZpLFoxPUl0Lmludm9rZV92aWksemM9SXQuaW52b2tlX3ZpaWksR2M9SXQuaW52b2tlX3ZpaWlpLGN1PUl0Lmludm9rZV92aWlpaWkseDQ9SXQuaW52b2tlX3Zp''@;'; put 'put ''aWlpaWksUHI9SXQuX19fYXNzZXJ0X2ZhaWwsTk09SXQuX19fY2xvY2tfZ2V0dGltZSwkcD1JdC5fX19sb2NrLE84PUl0Ll9fX21hcF9maWxlLHFwPUl0Ll9fX3NldEVyck5vLHBmPUl0Ll9fX3N5c2NhbGwxMCxraD1JdC5fX19zeXNjYWxsMTQwLGU2PUl0Ll9fX3N5c2NhbGwxNDUsdDY9SXQu''@;'; put 'put ''X19fc3lzY2FsbDE0NixSOD1JdC5fX19zeXNjYWxsMTkyLEFjPUl0Ll9fX3N5c2NhbGwxOTUsR2Y9SXQuX19fc3lzY2FsbDE5NyxzYj1JdC5fX19zeXNjYWxsMjAsYmQ9SXQuX19fc3lzY2FsbDIyMSx2OT1JdC5fX19zeXNjYWxsMyx0bT1JdC5fX19zeXNjYWxsMzMsQjg9SXQuX19fc3lzY2Fs''@;'; put 'put ''bDUsbjY9SXQuX19fc3lzY2FsbDU0LEp1PUl0Ll9fX3N5c2NhbGw2LFQ0PUl0Ll9fX3N5c2NhbGw5MSxyNj1JdC5fX191bmxvY2ssSTQ9SXQuX2Vtc2NyaXB0ZW5fYXNtX2NvbnN0X2lpaSxubT1JdC5fZW1zY3JpcHRlbl9tZW1jcHlfYmlnLFh1PUl0Ll9leGl0LER1PUl0Ll9nZXRlbnYsZzM9''@;'; put 'put ''SXQuX2dldHRpbWVvZmRheSxibD1JdC5fbGx2bV90cmFwLHplPUl0Ll9sb25nam1wLFZ0PUl0Ll9zZXRlbnYsaG49SXQuX3RpbWUsUm49SXQuX3RpbWVzO2Z1bmN0aW9uIGVpKGwsYyl7bHw9MCxjfD0wO3ZhciBSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0w''@;'; put 'put ''LHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTA7UmU9bGUsbGU9bGUrMTZ8MCxiPVJlKzh8MCxMZT00LE9lPTB8RjAoNDApLGFbT2U+PjJdPTAscT1SZSxNbj0wLGY9MHxhMCgyOSwwfGwpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxM''@;'; put 'put ''ZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTE7ZTpkb3tpZigxIT0oMHxtKSlpZihNbj0wLGJlPTB8YTAoMjMsZjw8M3wwKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPyhmPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSksZnx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgw''@;'; put 'put ''fGYpKXtpZigwfGZlWzE5NDk1NF0pe2lmKE1uPTAsZj0wfHdkKDMpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe0Q9MCxrPTAsTT0wLGI9MCx3PTAsYz1iZSxBPWJl''@;'; put 'put ''LGY9RG4sbT0wLGdlPTc0O2JyZWFrfXBlPWZ9ZWxzZSBwZT0wO2lmKE1uPTAsZj0wfEZsKDk3LDB8bCwxMTAwNjQpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSkpe2Fb''@;'; put 'put ''NDczMjNdPTA7dDpkb3tpZigwfGYmJih3PTB8ZmVbZj4+MF0sdzw8MjQ+PjI0KSlmb3IoQT1mLHA9dyxtPTA7Oyl7aWYodz1BKzF8MCwhKHA8PDI0Pj4yNCkpYnJlYWsgdDtzd2l0Y2gocDw8MjQ+PjI0fDApe2Nhc2UgOTk6Zj04LGdlPTE2O2JyZWFrO2Nhc2UgMTA1OmY9MTgsZ2U9MTY7YnJl''@;'; put 'put ''YWs7Y2FzZSAxMDk6Zj0xLGdlPTE2O2JyZWFrO2Nhc2UgMTE0OmY9NCxnZT0xNjticmVhaztjYXNlIDExNTpmPTIsZ2U9MTY7YnJlYWs7ZGVmYXVsdDpmPW19MTY9PSgwfGdlKSYmKGdlPTAsYVs0NzMyM109Znw9bSksQT13LHA9MHxmZVt3Pj4wXSxtPWZ9fXdoaWxlKDApO2lmKDB8YyYmKE1u''@;'; put 'put ''PTAsSnMoMjAsMCwxMTAwNjgsMHxiKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKSl7RD0wLGs9cGUsTT0wLGI9MCx3PTAsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0''@;'; put 'put ''O2JyZWFrfWlmKE1uPTAsRz0wfEZsKDk4LDB8bCwwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKXtpZihNPTB8YVtHKzE2Pj4yXSwyJmFbNDczMjNdfDAmJihNbj0w''@;'; put 'put ''LFoxKDI2LDB8YVsxNTcxMl0sMHxNKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKSl7RD0wLGs9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0''@;'; put 'put ''O2JyZWFrfWlmKE1uPTAsbT0wfGEwKDI1LDB8bCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSl7Zm9yKEQ9MDttOyl7aWYoTW49MCxmPTB8RmwoOTksMHxsLDB8bSks''@;'; put 'put ''cD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7az1wZSxNPTAsYj0wLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7YnJlYWsgZX1mb3Iodz1EO2Y7KXsyPT0oMHxh''@;'; put 'put ''WzQ3MTM0XSkmJjAhPSgwfGFbOCsoMHxhW2YrMTY+PjJdKT4+Ml0pfHwoZ2U9MzIpO3Q6ZG97aWYoMzI9PSgwfGdlKSl7Z2U9MDtkb3tpZigwfGZlWzE5NDk1NF0pe2lmKChiPSgwfGFbYVsoMz09KDB8KGs9MyZhW2Y+PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXT4+Ml0pPj4+NCk+Pj4wPihrPSgw''@;'; put 'put ''fGFbYVsoMj09KDB8ayk/ZjpmKy00OHwwKSs0MD4+Ml0+PjJdKT4+PjQpPj4+MCl7aWYoTW49MCxwPTB8SnMoMzQsMHxwZSwwfGssMHxiKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYz0wfGdpKDB8YVtBPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpjPS0x''@;'; put 'put ''LDE9PSgwfGMpKXtrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVhayBlfWlmKDB8cClicmVhayB0O2lmKE1uPTAsemMoNjQsMHxwZSwwfGssMHxiKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8''@;'; put 'put ''emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtrPXBlLE09MCxiPTAsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDticmVhayBlfWJyZWFrfWlmKE1uPTAscD0wfEpzKDM0LDB8cGUsMHxiLDB8ayksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGM9MHxnaSgwfGFb''@;'; put 'put ''QT4+Ml0sMHxPZSwwfExlKSl8fHplKDB8QSwwfHhuKSxEbj14bik6Yz0tMSwxPT0oMHxjKSl7az1wZSxNPTAsYj0wLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7YnJlYWsgZX1pZigwfHApYnJlYWsgdDtpZihNbj0wLHpjKDY0LDB8cGUsMHxiLDB8aykscD1NbixNbj0wLDAhPSgwfHAp''@;'; put 'put ''JjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfExlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7az1wZSxNPTAsYj0wLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7YnJlYWsgZX1icmVha319d2hpbGUoMCk7aWYoYVtiZSsodzw8MykrND4+Ml09''@;'; put 'put ''ZixNbj0wLGM9MHxhMCgzMCwwfGYpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe2s9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFr''@;'; put 'put ''IGV9YVtiZSsodzw8Myk+PjJdPWMsdz13KzF8MH19d2hpbGUoMCk7aWYoTW49MCxmPTB8RmwoMTAwLDB8bCwwfGYpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe2s9''@;'; put 'put ''cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9fWlmKE1uPTAsbT0wfEZsKDg2LDB8bCwwfG0pLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09''@;'; put 'put ''KDB8cCkpe2s9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0O2JyZWFrIGV9RD13fWlmKE1uPTAsYj0wfGEwKDMxLEQ8PDN8MCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14''@;'; put 'put ''bik6cD0tMSwxIT0oMHxwKSlpZihNbj0wLEdjKDI4LDB8YmUsMHxELDgsMTAxKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKWlmKE1uPTAsc3MoMTEwLDIrKG09MHxh''@;'; put 'put ''W00+PjJdKXwwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKXtmb3IoYz0odz0wfGFbTSsxNj4+Ml0pKyg0MCptfDApfDAsdz13Kyg0MCoobSsxfDApfDApfDAsUj0w''@;'; put 'put ''fGFbMTU3MTJdLEE9MDshKCgwfEEpPj0oMHxEKSk7KXtpZigoMHxBKT4wJiYxNiZhWzQ3MzIzXXwwJiYoTW49MCxaMSgyNiwwfFIsMHxNKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0x''@;'; put 'put ''LDE9PSgwfHApKSl7az1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfWlmKCgwfChtPTB8YVsxMTIrKDB8YVsxNisoMHxhWygzPT0oMHwoaz0zJmFbKGY9MHxhW2JlKyhBPDwzKSs0Pj4yXSk+PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT09KDB8''@;'; put 'put ''KGY9MHxhWzExMisoMHxhWzE2KygwfGFbKDI9PSgwfGspP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpKXtpZihNbj0wLEdjKDI5LDB8TSwwfG0sMHx3LDB8YyksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8Ziww''@;'; put 'put ''fHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7az1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfX1lbHNle2lmKE1uPTAsemMoNjUsMHxNLDB8ZiwwfHcpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkp''@;'; put 'put ''fHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2s9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQ7YnJlYWsgZX1pZihNbj0wLHpjKDY1LDB8TSwwfG0sMHxjKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8''@;'; put 'put ''TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0O2JyZWFrIGV9fWlmKE1uPTAsZj0wfEpzKDM1LDB8TSwwfHcsMHxjKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4y''@;'; put 'put ''XSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0O2JyZWFrIGV9aWYoMHxmKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlO2JyZWFrIGV9aWYoZj1iKyhBPDwzKXwwLE1uPTAsR2MoMzAsMHxx''@;'; put 'put ''LDB8TSwwfGMsMHx3KSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0O2JyZWFrIGV9aWYoaz0wfGFb''@;'; put 'put ''KG09cSkrND4+Ml0sYVtmPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1rLE1uPTAsc3MoMTExLDB8TSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7az1wZSxNPWIsdz1H''@;'; put 'put ''LGM9YmUsQT1iZSxmPURuLG09UixnZT03NDticmVhayBlfUE9QSsxfDB9TW49MCxaYyg4KSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApPyhNbj0wLGY9MHxhMCgzMiww''@;'; put 'put ''fEcpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSk/KGFbRysyMD4+Ml09ZixNbj0wLGY9MHxhMCgzMywwfEcpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KCht''@;'; put 'put ''PTB8Z2koMHxhW3A+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSk/KGFbRysyND4+Ml09ZixNbj0wLHpjKDY2LDB8RCwwfGIsMHxHKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUo''@;'; put 'put ''MHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApPyhPZT0wfFBmKDE4OTI5NiwxLDB8T2UsMHxMZSksTGU9RG4sZj1Nbj0wLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApPyhr''@;'; put 'put ''PXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9MCxtPVIsZ2U9NzQpOihrPXBlLE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0KSk6KGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQpKTooaz1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09UixnZT03NCkpOihrPXBl''@;'; put 'put ''LE09Yix3PUcsYz1iZSxBPWJlLGY9RG4sbT1SLGdlPTc0KSk6KGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPVIsZ2U9NzQpfWVsc2Ugaz1wZSxNPWIsdz1HLGM9YmUsQT1iZSxmPURuLG09MCxnZT03NDtlbHNlIGs9cGUsTT1iLHc9RyxjPWJlLEE9YmUsZj1EbixtPTAsZ2U9NzQ7ZWxz''@;'; put 'put ''ZSBrPXBlLE09MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0fWVsc2UgRD0wLGs9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0fWVsc2UgRD0wLGs9cGUsTT0wLGI9MCx3PUcsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0fWVsc2UgRD0wLGs9cGUsTT0wLGI9MCx3''@;'; put 'put ''PTAsYz1iZSxBPWJlLGY9RG4sbT0wLGdlPTc0fWVsc2UgRD0wLGs9MCxNPTAsYj0wLHc9MCxjPTAsQT1iZSxmPURuLG09MCxnZT03NDtlbHNlIEQ9MCxrPTAsTT0wLGI9MCx3PTAsYz0wLEE9MCxmPURuLG09MCxnZT03NH13aGlsZSgwKTtlOmZvcig7Oyl7aWYoNzQ9PSgwfGdlKSl7aWYoZ2U9''@;'; put 'put ''MCwwfGYpe1I9bTtjb250aW51ZX1pZihNbj0wLHNzKDExMiwwfHcpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMT09KDB8cCkpe2Y9RG4sQT1wPUEsYz1SPWMsdz1HPXcsYj1xPWIs''@;'; put 'put ''TT1wZT1NLGs9YmU9ayxEPWdlPUQsZ2U9NzQ7Y29udGludWV9aWYoNCZhWzQ3MzIzXXwwJiYoTW49MCxjdSg4LDB8bSwwfHcsMHxELDB8TSwwfGMpLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8T2UsMHxMZSkpfHx6ZSgwfGYsMHx4biksRG49eG4p''@;'; put 'put ''OnA9LTEsMT09KDB8cCkpKXtmPURuLG09cD1tLEE9Uj1BLGM9Rz1jLHc9cT13LGI9cGU9YixNPWJlPU0sRD1nZT1ELGdlPTc0O2NvbnRpbnVlfWlmKE1uPTAseDQoMTAsMHxsLDB8dywwfEQsMHxNLDB8YywwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4y''@;'; put 'put ''XSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtmPURuLG09cD1tLEE9Uj1BLGM9Rz1jLHc9cT13LGI9cGU9YixNPWJlPU0sRD1nZT1ELGdlPTc0O2NvbnRpbnVlfVI9bX1pZigwfGZlWzE5NDk1NF0pe2lmKE1uPTAsc3MoMTEzLDB8ayksZj1NbixNbj0w''@;'; put 'put ''LDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxPT0oMHxwKSl7Zj1EbixtPVIsZ2U9NzQ7Y29udGludWV9Zj0wfWVsc2UgZj0wO2Zvcig7ISgoMHxmKT49KDB8RCkpOyl7aWYoTW49MCxzcygxMDUsMHxh''@;'; put 'put ''W00rKGY8PDMpKzQ+PjJdKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtmPURuLG09UixnZT03NDtjb250aW51ZSBlfWY9ZisxfDB9aWYoTW49MCxzcygxMDUsMHxi''@;'; put 'put ''KSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKWlmKE1uPTAsc3MoMTE0LDB8dyksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0s''@;'; put 'put ''MHxPZSwwfExlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSl7aWYoTW49MCxzcygxMDUsMHxBKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8TGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDEhPSgwfHApKWJy''@;'; put 'put ''ZWFrO2Y9RG4sbT1SLGdlPTc0fWVsc2UgZj1EbixtPVIsZ2U9NzQ7ZWxzZSBmPURuLG09UixnZT03NH1GdCgwfE9lKSxsZT1SZX1mdW5jdGlvbiBmYihsLGMsZil7dmFyIHA7bHw9MCxfWyhjfD0wKT4+M109K19bYz4+M10rICtfWyhmfD0wKT4+M10sX1socD1jKzh8MCk+PjNdPStfW3A+PjNd''@;'; put 'put ''KyArX1tmKzg+PjNdLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdfWZ1bmN0aW9uIENkKGwsYyl7dmFyIGYscDtyZXR1cm4gYz0wfGw2KDB8YVsyNCsoY3w9MCk+PjJdLGx8PTApLCsoKygwfGFbbCs0''@;'; put 'put ''ND4+Ml0pLysoMSsoMHxhW2MrMjQ+PjJdKXwwKSooK19bNTYrKHA9MHxhW2MrMzY+PjJdKT4+M10tKGY9K19bcCs0MD4+M10pKStmKX1mdW5jdGlvbiBtMyhsLGMpe3ZhciBmLHA7cmV0dXJuIHA9MHxsNigwfGFbMjArKGN8PTApPj4yXSxsfD0wKSwwfH5+KCgxLSsoMHxhW2wrNDQ+PjJdKS8r''@;'; put 'put ''KDErKDB8YVtwKzI0Pj4yXSl8MCkpKigrX1s2NCsoYz0wfGFbcCszNj4+Ml0pPj4zXS0oZj0rX1tjKzQ4Pj4zXSkpK2YpfWZ1bmN0aW9uIGw2KGwsYyl7cmV0dXJuKGw9MHxtaVs2MyZhWyhsfD0wKT4+Ml1dKGwsOCsoY3w9MCl8MCw1MTIpKXx8UHIoMTEwMTU1LDExMDE2MSw0MjMsMTEwMTY5''@;'; put 'put ''KSwobD0wfG1pWzYzJmFbKGw9MHxhW2wrMTY+PjJdKT4+Ml1dKGwsYysxNnwwLDUxMikpPzB8bDooUHIoMTEwMTgwLDExMDE2MSw0MjUsMTEwMTY5KSwwKX1mdW5jdGlvbiBZeihsLGMsZixwLG0sQSl7bHw9MCxjfD0wLG18PTAsQXw9MDt2YXIgRCxnZSxiZSxPZSxMZSxSZSxIZSxWZSx3PTAs''@;'; put 'put ''Yj0wLGs9MCxNPTAsUj0wLEc9MCxxPTAscGU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wO2ZvcihWZT1sZSxsZT1sZSszMnwwLEhlPVZlKzE2fDAsYmU9VmUrOHwwLGs9VmUsdz0wfGFbMTEyKygwfGFbMTYrKDB8YVsoMz09KDMmYVsoZnw9MCk+PjJdfDApP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+''@;'; put 'put ''PjJdLDB8ZmVbKGdlPTB8YVs0KyhwfD0wKT4+Ml0pPj4wXT8odz1+figuNSooKHBlPStfW3crNDg+PjNdKSsoYj0rX1t3KzY0Pj4zXSkpKSxiPStDZChnZSxtKSk6KGI9K19bdys1Nj4+M10scGU9K19bdys0MD4+M10sdz0wfG0zKGdlLG0pLGI9LjUqKHBlK2IpKSxfW0E+PjNdPVI9KFI9K19b''@;'; put 'put ''QT4+M10pPChxPSsoMHwocWU9fn5iKSkpP1I6cSxfWyhPZT1BKzh8MCk+PjNdPUc9KEc9K19bT2U+PjNdKTwocGU9KygwfHcpKT9HOnBlLF9bKExlPUErMTZ8MCk+PjNdPXE9KGI9K19bTGU+PjNdKT5xP2I6cSxfWyhSZT1BKzI0fDApPj4zXT1wZT0oYj0rX1tSZT4+M10pPnBlP2I6cGUsYVtr''@;'; put 'put ''Pj4yXT1xZSxhW2srND4+Ml09dyxUMChjLDExMDY4MixrKSxEPTB8YVtwPj4yXSxrPWdlLE09MSxwPXFlOyEoKDB8TSk+PSgwfEQpKTspMHxmZVsoaz1nZSsoNTYqTXwwKXwwKT4+MF0/cD1+fitDZChrLG0pOnc9MHxtMyhrLG0pLF9bQT4+M109YXQ9UjwocnQ9KygwfHApKT9SOnJ0LF9bT2U+''@;'; put 'put ''PjNdPVdlPUc8KGI9KygwfHcpKT9HOmIsX1tMZT4+M109cnQ9cT5ydD9xOnJ0LF9bUmU+PjNdPWI9cGU+Yj9wZTpiLGFbYmU+PjJdPXAsYVtiZSs0Pj4yXT13LFQwKGMsMTEwNzA0LGJlKSxNPU0rMXwwLFI9YXQsRz1XZSxxPXJ0LHBlPWI7dz0wfGFbMTEyKygwfGFbMTYrKDB8YVsoMj09KDMm''@;'; put 'put ''YVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0sMHxmZVtrPj4wXT8odz1+figuNSooKGF0PStfW3crNDg+PjNdKSsoYj0rX1t3KzY0Pj4zXSkpKSxiPStDZChrLG0pKTooYj0rX1t3KzU2Pj4zXSxhdD0rX1t3KzQwPj4zXSx3PTB8bTMoayxtKSxiPS41KihhdCtiKSksX1tB''@;'; put 'put ''Pj4zXT1SPChXZT0rKDB8KHFlPX5+YikpKT9SOldlLF9bT2U+PjNdPUc8KGF0PSsoMHx3KSk/RzphdCxfW0xlPj4zXT1xPldlP3E6V2UsX1tSZT4+M109cGU+YXQ/cGU6YXQsYVtIZT4+Ml09cWUsYVtIZSs0Pj4yXT13LFQwKGMsMTEwNzE4LEhlKSxhW2w+PjJdPWFbQT4+Ml0sYVtsKzQ+PjJd''@;'; put 'put ''PWFbQSs0Pj4yXSxhW2wrOD4+Ml09YVtBKzg+PjJdLGFbbCsxMj4+Ml09YVtBKzEyPj4yXSxhW2wrMTY+PjJdPWFbQSsxNj4+Ml0sYVtsKzIwPj4yXT1hW0ErMjA+PjJdLGFbbCsyND4+Ml09YVtBKzI0Pj4yXSxhW2wrMjg+PjJdPWFbQSsyOD4+Ml0sbGU9VmV9ZnVuY3Rpb24gdlIobCl7dmFy''@;'; put 'put ''IGM9MDtmb3IobD0wfHMwKGx8PTApO2w7KXtmb3IoYz0wfHMwKDB8YVtsKzE2Pj4yXSk7YzspYVtjKzMyPj4yXT0wfENSKDB8YVtjKzI0Pj4yXSksYz0wfGFbYz4+Ml07bD0wfGFbbD4+Ml19fWZ1bmN0aW9uIGhiKGwpe3ZhciBjPTA7Zm9yKGw9MHxzMChsfD0wKTtsOyl7Zm9yKGM9MHxzMCgw''@;'; put 'put ''fGFbbCsxNj4+Ml0pO2M7KTB8YVtjKzI0Pj4yXSYmYlIoYyksYz0wfGFbYz4+Ml07bD0wfGFbbD4+Ml19fWZ1bmN0aW9uIFljKGwsYyl7Y3w9MDt2YXIgZj0wO2ZvcihmPTB8czAobHw9MCk7Zjspe2ZvcihsPTB8czAoMHxhW2YrMTY+PjJdKTtsOyl5UihsLGMpLGw9MHxhW2w+PjJdO2Y9MHxh''@;'; put 'put ''W2Y+PjJdfX1mdW5jdGlvbiBpbShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKHA9MHxzMChsfD0wKTtwOyl7Zm9yKHc9cCs4fDAsbT0wfHMwKDB8YVtwKzE2Pj4yXSk7bTspe2w9bSsyNHwwO2U6ZG97aWYoMHxhW2w+PjJdKWZvcig4JmFbNDczMjNdfDAmJkY4KG0sfn4rX1t3''@;'; put 'put ''Pj4zXSksQT1tKzMyfDAsWU0oMHxhW0E+PjJdKSxjPTB8YVtsPj4yXSxmPW0rMjh8MCxsPTA7Oyl7aWYoKDB8bCk+PSgwfGMpKWJyZWFrIGU7YVs0NCsoMHxhWygwfGFbZj4+Ml0pKyhsPDwyKT4+Ml0pPj4yXT0xKygwfGFbKDB8YVs0KygwfGFbQT4+Ml0pPj4yXSkrKDEyKmx8MCkrND4+Ml0p''@;'; put 'put ''LGw9bCsxfDB9fXdoaWxlKDApO209MHxhW20+PjJdfXA9MHxhW3A+PjJdfX1mdW5jdGlvbiBGOChsLGMpe2N8PTA7dmFyIEEsYixmPTAscD0wLG09MCx3PTAsaz0wLE09MDtiPWxlLGxlPWxlKzMyfDAsZj1iLEE9MjQrKGx8PTApfDA7ZTpkb3tpZigoMHxhW0E+PjJdKT49Milmb3Iodz0wfGFb''@;'; put 'put ''MTU3MTJdLE09K19bbCs4Pj4zXSxrPStfW2wrMTY+PjNdLGFbZj4+Ml09YyxfW2YrOD4+M109TSxfW2YrMTY+PjNdPWssVDAodywxMTA3MzksZiksbT1sKzMyfDAsbD1sKzI4fDAsYz0wOzspe2lmKCgwfGMpPj0oMHxhW0E+PjJdKSlicmVhayBlO3A9MHxhWygwfGFbNCsoMHxhW20+PjJdKT4+''@;'; put 'put ''Ml0pKygxMipjfDApKzg+PjJdO3Q6ZG97aWYoMHxwdShwKSlmb3IoQVIodywwfGFbKDB8YVtsPj4yXSkrKGM8PDIpPj4yXSksX3UoMTEwNzU5LHcpLGY9MHxtaVs2MyZhW3A+PjJdXShwLDAsMTI4KTs7KXtpZighZilicmVhayB0O191KDExMDc2NCx3KSxBUih3LDB8YVsoMHxhW2w+PjJdKSso''@;'; put 'put ''YVtmPj4yXTw8Mik+PjJdKSxfdSgxNTM1OTksdyksZj0wfG1pWzYzJmFbcD4+Ml1dKHAsZiw4KX19d2hpbGUoMCk7Yz1jKzF8MH19d2hpbGUoMCk7bGU9Yn1mdW5jdGlvbiBBUihsLGMpe2x8PTA7dmFyIG0sZj0wLHA9MCxBPTAsdz0wLGI9MCxrPTA7bT1sZSxsZT1sZSs4MHwwLHA9bSs0MHww''@;'; put 'put ''LGY9bSwwfGZlWyhjfD0wKT4+MF0/KGI9K19bYys4Pj4zXSx3PStfW2MrMTY+PjNdLGs9K19bYysyND4+M10scD0wfG9tKDB8YVtjKzMyPj4yXSksQT0wfG9tKDB8YVtjKzM2Pj4yXSksX1tmPj4zXT1iLF9bZis4Pj4zXT13LF9bZisxNj4+M109YixfW2YrMjQ+PjNdPWssYVtmKzMyPj4yXT1w''@;'; put 'put ''LGFbZiszNj4+Ml09QSxUMChsLDExMDc3MCxmKSk6KGs9K19bYysxNj4+M10sdz0rX1tjKzg+PjNdLGI9K19bYysyND4+M10sQT0wfG9tKDB8YVtjKzMyPj4yXSksZj0wfG9tKDB8YVtjKzM2Pj4yXSksX1twPj4zXT1rLF9bcCs4Pj4zXT13LF9bcCsxNj4+M109YixfW3ArMjQ+PjNdPXcsYVtw''@;'; put 'put ''KzMyPj4yXT1BLGFbcCszNj4+Ml09ZixUMChsLDExMDc3MCxwKSksbGU9bX1mdW5jdGlvbiBvbShsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgMDpsPTExMDgyMTticmVhaztjYXNlIDE6bD0xMTA4MTY7YnJlYWs7Y2FzZSAyOmw9MTEwODA5O2JyZWFrO2Nhc2UgMzpsPTExMDgwMjticmVhaztj''@;'; put 'put ''YXNlIDQ6bD0xMTA3OTQ7YnJlYWs7ZGVmYXVsdDpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiB5UihsLGMpe2N8PTA7dmFyIE0sRCxHLHBlLGJlLE9lLExlLFJlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxSPTAscT0wLGdlPTA7UmU9bGUsbGU9bGUrMTZ8MCxPZT0wfGFbMzIrKGx8PTAp''@;'; put 'put ''Pj4yXSxMZT0wfGFbbCsyOD4+Ml0sTT00KyhwZT1SZSs4fDApfDAsRD0oYmU9UmUpKzR8MCxiPTAsbD0wfGFbKEc9bCsyNHwwKT4+Ml07ZTpmb3IoO3E9YisxfDAsISgoMHxxKT49KDB8bCkpOylmb3IoUj1MZSsoYjw8Mil8MCxrPXE7Oyl7aWYoKDB8ayk+PSgwfGwpKXtiPXE7Y29udGludWUg''@;'; put 'put ''ZX10OmRve2lmKDA9PSgwfG1mKE9lLGIsaykpJiYwPT0oMHxtZihPZSxrLGIpKSYmKGdlPUxlKyhrPDwyKXwwLDB8ZGIoMHxhW1I+PjJdLDB8YVtnZT4+Ml0pKSlzd2l0Y2gobT0wfGFbUj4+Ml0sbD0wfGFbbSs0OD4+Ml0sdz0wfGFbZ2U+PjJdLGY9MHxhW3crNDg+PjJdLHA9MD09KDB8Ziks''@;'; put 'put ''bD1sP3A/MTorX1tsKzg+PjNdIT0rX1tmKzg+PjNdOjFecCxBPTEmbCxaTShwZSxtLHcsMCxBKSxsPTB8YVtwZT4+Ml0sdz0wfGFbTT4+Ml0sbT0xXkEsWk0oYmUsMHxhW1I+PjJdLDB8YVtnZT4+Ml0sMSxtKSxmPTB8YVtiZT4+Ml0scD0wfGFbRD4+Ml0sMHx3KXtjYXNlLTE6aWYoU2goMHxh''@;'; put 'put ''W2dlPj4yXSwwfGFbUj4+Ml0sQSwwLGwsYyksU2goMHxhW2dlPj4yXSwwfGFbUj4+Ml0sbSwxLGYsYyksMSE9KDB8cCkpYnJlYWsgdDt6TSgwfGFbUj4+Ml0sMHxhW2dlPj4yXSxtLGMpO2JyZWFrIHQ7Y2FzZSAwOnN3aXRjaCgwfHApe2Nhc2UtMTpTaCgwfGFbZ2U+PjJdLDB8YVtSPj4yXSxB''@;'; put 'put ''LDAsbCxjKSxTaCgwfGFbZ2U+PjJdLDB8YVtSPj4yXSxtLDEsZixjKTticmVhayB0O2Nhc2UgMDpjYXNlIDE6U2goMHxhW1I+PjJdLDB8YVtnZT4+Ml0sMCxBLGwsYyksU2goMHxhW1I+PjJdLDB8YVtnZT4+Ml0sMSxtLGYsYyk7YnJlYWsgdDtkZWZhdWx0OmJyZWFrIHR9Y2FzZSAxOmlmKFNo''@;'; put 'put ''KDB8YVtSPj4yXSwwfGFbZ2U+PjJdLDAsQSxsLGMpLFNoKDB8YVtSPj4yXSwwfGFbZ2U+PjJdLDEsbSxmLGMpLC0xIT0oMHxwKSlicmVhayB0O3pNKDB8YVtSPj4yXSwwfGFbZ2U+PjJdLG0sYyk7YnJlYWsgdDtkZWZhdWx0OmJyZWFrIHR9fXdoaWxlKDApO2s9aysxfDAsbD0wfGFbRz4+Ml19''@;'; put 'put ''bGU9UmV9ZnVuY3Rpb24gZGIobCxjKXtyZXR1cm4rX1s4KyhsfD0wKT4+M10hPStfWzgrKGN8PTApPj4zXSYmUHIoMTEwODkyLDExMDE2MSw4NDMsMTEwOTIzKSwwfCgrX1tsKzE2Pj4zXT09K19bYysxNj4+M10mJitfW2wrMjQ+PjNdPT0rX1tjKzI0Pj4zXSYmKDB8YVtsKzMyPj4yXSk9PSgw''@;'; put 'put ''fGFbYyszMj4+Ml0pPygwfGFbbCszNj4+Ml0pPT0oMHxhW2MrMzY+PjJdKSYxOjApfWZ1bmN0aW9uIFpNKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtmb3IoQT0wOzspe2lmKCEoYz0wfHM2KGMscCkpKXt3PTA7YnJlYWt9aWYoIShmPTB8czYo''@;'; put 'put ''ZixtKSkpe2I9NjticmVha31pZighKDB8ZGIoYyxmKSkpe2I9NzticmVha31BPUErMXwwfTY9PSgwfGIpP1ByKDEzODM5NCwxMTAxNjEsODcxLDExMDg0MSk6Nz09KDB8YikmJih3PTB8ZnVuY3Rpb24gYW0obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7Zm9y''@;'; put 'put ''KHc9MTshKCgwfHcpPigwfGYpKTspe0E9MHxzNihsLHApLG09K19bQSs4Pj4zXT09K19bbCsxNj4+M107ZG97aWYoMHxmZVtsPj4wXSl7aWYobSl7bT00PT0oMHxhW2wrMzI+PjJdKTticmVha31tPTI9PSgwfGFbbCszNj4+Ml0pO2JyZWFrfWlmKG0pe209MT09KDB8YVtsKzMyPj4yXSk7YnJl''@;'; put 'put ''YWt9bT0zPT0oMHxhW2wrMzY+PjJdKTticmVha313aGlsZSgwKTtsPUEsdz13KzF8MCxjPW0/MC1jfDA6Y31yZXR1cm4gMHxjfShjLDB8dzkoYyxmKSxBKzF8MCwxLXB8MCkpLGFbbD4+Ml09QSxhW2wrND4+Ml09d31mdW5jdGlvbiBTaChsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9''@;'; put 'put ''MDt2YXIgRCxSLHc9MCxiPTAsaz0wLE09MCxHPTA7Zm9yKFI9MjArKEF8PTApfDAsRD1BKzI0fDAsQT0wfGw2KDB8YVsoMD09KDB8ZmVbKGx8PTApPj4wXSk/UjpEKT4+Ml0sbCksejEoMHxhW0ErMzI+PjJdLDB8YVtsKzQwPj4yXSwwfGFbYys0MD4+Ml0pLGI9MTshKCgwfGIpPigwfG0pKTsp''@;'; put 'put ''e2s9MHxzNihsLGYpLE09MHxzNihjLHApO2Rve2lmKDB8ZmVbbD4+MF0pe2lmKHc9MHxsNigwfGFbUj4+Ml0sayksK19bays4Pj4zXT09K19bbCsxNj4+M10pe2lmKEc9Mj09KDB8YVtsKzMyPj4yXSksQT0wIT0oMHxtZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSkp''@;'; put 'put ''LGw9MHxhW3crMzI+PjJdLEcpe2lmKEEpe3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxh''@;'; put 'put ''W2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfWlmKEc9Mj09KDB8YVtsKzM2Pj4yXSksQT0wIT0oMHxtZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSkpLGw9MHxhW3crMzI+PjJdLEcpe2lmKEEpe3oxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSks''@;'; put 'put ''QT13O2JyZWFrfXoxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKHc9MHxsNigwfGFbRD4+Ml0sayks''@;'; put 'put ''K19bays4Pj4zXT09K19bbCsxNj4+M10pe2lmKEc9MT09KDB8YVtsKzMyPj4yXSksQT0wIT0oMHxtZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSkpLGw9MHxhW3crMzI+PjJdLEcpe2lmKEEpe3oxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFr''@;'; put 'put ''fXoxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKEc9MT09KDB8YVtsKzM2Pj4yXSksQT0wIT0oMHxt''@;'; put 'put ''ZigwfGFbQSszMj4+Ml0sMHxhW2wrNDA+PjJdLDB8YVtjKzQwPj4yXSkpLGw9MHxhW3crMzI+PjJdLEcpe2lmKEEpe3oxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfWlmKEEpe3oxKGwsMHxh''@;'; put 'put ''W00rNDA+PjJdLDB8YVtrKzQwPj4yXSksQT13O2JyZWFrfXoxKGwsMHxhW2srNDA+PjJdLDB8YVtNKzQwPj4yXSksQT13O2JyZWFrfXdoaWxlKDApO2w9ayxjPU0sYj1iKzF8MH19ZnVuY3Rpb24gek0obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtmb3IodmFyIG09MDswfGRiKGwsYyk7''@;'; put 'put ''KW09MHxzNihsLDEpLGM9MHxzNihjLGYpLGw9bTshZnVuY3Rpb24gXzkobCxjLGYpe2x8PTAsY3w9MDt2YXIgcCxtLEE7cD1sZSxsZT1sZSsxNnwwLGFbKG09cCk+PjJdPWZ8PTAsbWlbNjMmYVsoQT0wfGFbKDB8YVsobD1sKzR8MCk+PjJdKSsoMTIqY3wwKSs4Pj4yXSk+PjJdXShBLG0sMiks''@;'; put 'put ''YVttPj4yXT1jLG1pWzYzJmFbKGY9MHxhWygwfGFbbD4+Ml0pKygxMipmfDApKzg+PjJdKT4+Ml1dKGYsbSwyKSxsZT1wfShtPTB8YVszMisoMHxsNigwfGFbKDA9PSgwfGZlW2w+PjBdKT9wKzIwfDA6cCsyNHwwKT4+Ml0sbCkpPj4yXSwwfGFbbCs0MD4+Ml0sMHxhW2MrNDA+PjJdKX1mdW5j''@;'; put 'put ''dGlvbiBzNihsLGMpe3JldHVybihsfD0wKT8wfGFbKDA9PSgwfChjfD0wKSk/bCs0OHwwOmwrNTJ8MCk+PjJdOihQcigxMTA4MjgsMTEwMTYxLDc5OCwxMTA4MzIpLDApfWZ1bmN0aW9uIHc5KGwsYyl7dmFyIGYscCxtO3JldHVybiBtPWxlLGxlPWxlKzE2fDAscD1tLChmPTB8ZmVbKGx8PTAp''@;'; put 'put ''Pj4wXSk8PDI0Pj4yND09KDB8ZmVbKGN8PTApPj4wXSkmJitfW2wrOD4+M109PStfW2MrOD4+M10/KGw9Zjw8MjQ+PjI0PzB8d1IobCxjLDQsMik6MHx3UihsLGMsMywxKSxsZT1tLDB8bCk6KCRyKDEsMTEwODU0LHApLHplKDE4OTI5NiwxKSwwKX1mdW5jdGlvbiB3UihsLGMsZixwKXtmfD0w''@;'; put 'put ''LHB8PTA7dmFyIGIsayxtPTAsQT0wLHc9MCxNPTAsRD0wLFI9MCxHPTA7Yj0rX1syNCsobHw9MCk+PjNdLGs9K19bMTYrKGN8PTApPj4zXTtkb3tpZighKGI8a3x8KEE9K19bbCsxNj4+M10sdz0rX1tjKzI0Pj4zXSxBPncpKSl7aWYoazxiJkE8ayl7Yz0wfEg4KGwsYyxmLHApO2JyZWFrfWlm''@;'; put 'put ''KGs8QSZBPHcpe2M9MC0oMHxIOChjLGwsZixwKSl8MDticmVha31pZihBIT1rKXtpZihiPT1rKXJldHVybiAwfCgoMHwoZj0wfGFbbCszNj4+Ml0pKT09KDB8YVtjKzMyPj4yXSk/MDooMHxmKT09KDB8cCk/MTotMSk7Yz0oMHwoZj0wfGFbbCszMj4+Ml0pKT09KDB8YVtjKzM2Pj4yXSk/MDoo''@;'; put 'put ''MHxmKT09KDB8cCk/MTotMTticmVha31pZihiIT13KXtpZihiPHcpcmV0dXJuIEc9KDB8YVtsKzM2Pj4yXSk9PSgwfGYpLGY9MHxENCgwfGFbYyszMj4+Ml0sMHxhW2wrMzI+PjJdLGYscCksMHwoRz9mOjAtZnwwKTtHPSgwfGFbYyszNj4+Ml0pPT0oMHxwKSxjPTB8RDQoMHxhW2wrMzI+PjJd''@;'; put 'put ''LDB8YVtjKzMyPj4yXSxmLHApLGM9Rz9jOjAtY3wwO2JyZWFrfWlmKCgwfChHPTB8YVtsKzMyPj4yXSkpPT0oMHwoUj0wfGFbYyszMj4+Ml0pKSl7aWYoKDB8YVtsKzM2Pj4yXSk9PSgwfChjPTB8YVtjKzM2Pj4yXSkpKXtjPTA7YnJlYWt9fWVsc2UgYz0wfGFbYyszNj4+Ml07aWYoRD0oMHxS''@;'; put 'put ''KT09KDB8ZiksKDB8Uik9PSgwfGMpKXtpZihEKXtjPTE7YnJlYWt9aWYoKDB8Uik9PSgwfHApKXtjPS0xO2JyZWFrfWlmKCgwfEcpIT0oMHxmKSYmKDB8YVtsKzM2Pj4yXSkhPSgwfGYpKXtjPTE7YnJlYWt9aWYoKDB8RykhPSgwfHApJiYoMHxhW2wrMzY+PjJdKSE9KDB8cCkpe2M9LTE7YnJl''@;'; put 'put ''YWt9Yz0wO2JyZWFrfWlmKEQmKG09KDB8Yyk9PSgwfHApKSl7aWYoYz0oMHxhW2wrMzY+PjJdKT09KDB8cCksKDB8Ryk9PSgwfGYpKXtpZighYyl7Yz0tMTticmVha319ZWxzZSBpZihjKXtjPTE7YnJlYWt9Yz0wO2JyZWFrfWlmKCgwfFIpPT0oMHxwKSYoTT0oMHxjKT09KDB8ZikpKXtpZihj''@;'; put 'put ''PSgwfEcpPT0oMHxwKSwoMHxhW2wrMzY+PjJdKT09KDB8Zikpe2lmKCFjKXtjPS0xO2JyZWFrfX1lbHNlIGlmKGMpe2M9MTticmVha31jPTA7YnJlYWt9aWYoIVIpe2lmKE0pe2M9MHxOOChHLDB8YVtsKzM2Pj4yXSxmKTticmVha31pZihtKXtjPTAtKDB8TjgoRywwfGFbbCszNj4+Ml0scCkp''@;'; put 'put ''fDA7YnJlYWt9fWlmKG09MHxhW2wrMzY+PjJdLEQmMD09KDB8Yykpe2M9MHxOOChtLEcsZik7YnJlYWt9Yz0wLSgwfE44KG0sRyxwKSl8MDticmVha31jPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBIOChsLGMsZixwKXtmfD0wLHB8PTA7dmFyIHcsYixtPTAsQT0wO3c9K19bMjQr''@;'; put 'put ''KGx8PTApPj4zXSxiPStfWzI0KyhjfD0wKT4+M107ZG97aWYodzxiKXtpZigoMHwobD0wfGFbbCszNj4+Ml0pKT09KDB8ZikmJigwfGFbYyszMj4+Ml0pPT0oMHxwKSl7bD0tMTticmVha31pZigoMHxsKT09KDB8cCkmJigwfGFbYyszMj4+Ml0pPT0oMHxmKSl7bD0xO2JyZWFrfWw9MH1lbHNl''@;'; put 'put ''e2lmKEE9KDB8KG09MHxhW2MrMzI+PjJdKSk9PSgwfHApLHc9PWIpe2lmKEEpe2w9MHxENCgwfGFbbCszNj4+Ml0sMHxhW2MrMzY+PjJdLGYscCk7YnJlYWt9bD0wLSgwfEQ0KDB8YVtjKzM2Pj4yXSwwfGFbbCszNj4+Ml0sZixwKSl8MDticmVha31pZihBJiYoMHxhW2MrMzY+PjJdKT09KDB8''@;'; put 'put ''cCkpe2w9LTE7YnJlYWt9aWYoKDB8bSk9PSgwfGYpJiYoMHxhW2MrMzY+PjJdKT09KDB8Zikpe2w9MTticmVha31sPTB9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gTjgobCxjLGYpe3JldHVybiAwfCgoMHwobHw9MCkpPT0oMHwoZnw9MCkpPygoMHwoY3w9MCkpPT0oMHxmKSk8PDMx''@;'; put 'put ''Pj4zMToxKX1mdW5jdGlvbiBENChsLGMsZixwKXtpZihjfD0wLCgwfChsfD0wKSk9PSgwfChwfD0wKSkpe2lmKGM9MD09KDB8bCkpcmV0dXJuIDA7YyY9MX1yZXR1cm4oMCE9KDB8bCl8KDB8YykhPSgwfChmfD0wKSkpPDwzMT4+MzF8MH1mdW5jdGlvbiBiUihsKXt2YXIgZixBLHcsYz0wLHA9''@;'; put 'put ''MCxtPTA7QT0wfGFbMjgrKGx8PTApPj4yXSx3PTB8YVtsKzI0Pj4yXSxmPTB8YVtsKzMyPj4yXSxsPTA7ZTpmb3IoO3A9bCsxfDAsISgoMHxwKT49KDB8dykpOylmb3IobT1BKyhsPDwyKXwwLGM9cDs7KXtpZigoMHxjKT09KDB8dykpe2w9cDtjb250aW51ZSBlfXN3aXRjaCgwfHc5KDB8YVtt''@;'; put 'put ''Pj4yXSwwfGFbQSsoYzw8Mik+PjJdKSl7Y2FzZSAxOnoxKGYsbCxjKTticmVhaztjYXNlLTE6ejEoZixjLGwpfWM9YysxfDB9fWZ1bmN0aW9uIEdNKGwsYyl7Y3w9MDt2YXIgZixtLHA9MDthWyhtPTI0KyhsfD0wKXwwKT4+Ml09Zj0xKyhwPTB8YVttPj4yXSl8MCxhW2MrNDA+PjJdPXAsbD0o''@;'; put 'put ''bD0wfGFbKHA9bCsyOHwwKT4+Ml0pPzB8VjAobCxmPDwyKTowfFFuKGY8PDIpLGFbcD4+Ml09bCxhW2wrKCgwfGFbbT4+Ml0pLTE8PDIpPj4yXT1jfWZ1bmN0aW9uIFdNKGwsYyxmKXtsfD0wLGN8PTA7dmFyIEEscD0wLG09MDtBPWxlLGxlPWxlKzE2fDAsX1sobT1BKT4+M109Zj0rZiwocD0w''@;'; put 'put ''fG1pWzYzJmFbbD4+Ml1dKGwsbSw1MTIpKXx8KHA9MHx2cigyNCksX1twKzg+PjNdPStfW20+PjNdLGFbcCsxNj4+Ml09MHxpcygyNTcyOCwwfGFbNDU4MV0pLG1pWzYzJmFbbD4+Ml1dKGwscCwxKSksbWlbNjMmYVsobT0wfGFbcCsxNj4+Ml0pPj4yXV0obSxjLDEpLGxlPUF9ZnVuY3Rpb24g''@;'; put 'put ''Q2kobCxjLGYpe2x8PTA7dmFyIEEsdyxwPTAsbT0wO0E9MCE9KDB8ZmVbMzYrKGN8PTApPj4wXSksdz00MCsoZnw9MCl8MDtkb3tpZigoMHxhW2MrMjQ+PjJdKT09KDB8Zikpe2lmKHA9K19bdz4+M10sQSl7bT0uNSooK19bZis2ND4+M10rICtfW2YrNDg+PjNdKTticmVha31tPStfW2YrNDg+''@;'; put 'put ''PjNdLHA9LjUqKCtfW2YrNTY+PjNdK3ApO2JyZWFrfWlmKEEpe209LjUqKCtfW2YrNjQ+PjNdKyArX1tmKzQ4Pj4zXSkscD0rX1tmKzU2Pj4zXTticmVha31tPStfW2YrNjQ+PjNdLHA9LjUqKCtfW2YrNTY+PjNdKyArX1t3Pj4zXSk7YnJlYWt9d2hpbGUoMCk7X1tsPj4zXT1wLF9bbCs4Pj4z''@;'; put 'put ''XT1tfWZ1bmN0aW9uIGdiKGwsYyl7dmFyIGY9MDtyZXR1cm4oMHwoZj0wfGFbMjArKGx8PTApPj4yXSkpIT0oMHxhWzIwKyhjfD0wKT4+Ml0pJiYoMHxmKSE9KDB8YVtjKzI0Pj4yXSkmJihmPTB8YVtsKzI0Pj4yXSksMHxmfWZ1bmN0aW9uIGgyKGwsYyl7dmFyIGY7Zj0uNSooK19bNjQrKGN8''@;'; put 'put ''PTApPj4zXSsgK19bYys0OD4+M10pLF9bKGx8PTApPj4zXT0uNSooK19bYys1Nj4+M10rICtfW2MrNDA+PjNdKSxfW2wrOD4+M109Zn1mdW5jdGlvbiBiOShsLGMsZixwLG0sQSx3KXtmPStmLHA9K3AsbT0rbSxBfD0wLHd8PTA7dmFyIGI9MCxrPTA7ZmVbKGx8PTApPj4wXT1jfD0wLF9bbCs4''@;'; put 'put ''Pj4zXT1mLHA8bT8oYj0wLGs9QSxjPXcsZj1wLHA9bSk6KGI9MSxrPXcsYz1BLGY9bSksX1tsKzI0Pj4zXT1wLF9bbCsxNj4+M109ZixhW2wrMzY+PjJdPWMsYVtsKzMyPj4yXT1rLGZlW2wrMT4+MF09Yn1mdW5jdGlvbiBsbShsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTA7cD0wfGFbMzYrKGN8''@;'; put 'put ''PTApPj4yXTtkb3tpZigoMHxhW3ArND4+Ml0pIT0oMHxmKSl7aWYoKDB8YVtwKzEyPj4yXSk9PSgwfGYpKXtwPX5+KC41KigrX1tjKzU2Pj4zXSsgK19bYys0MD4+M10pKSxmPX5+K19bYys0OD4+M107YnJlYWt9aWYoKDB8YVtwKzg+PjJdKT09KDB8Zikpe3A9fn4rX1tjKzQwPj4zXSxmPX5+''@;'; put 'put ''KC41KigrX1tjKzY0Pj4zXSsgK19bYys0OD4+M10pKTticmVha30oMHxhW3A+PjJdKT09KDB8Zik/KHA9fn4rX1tjKzU2Pj4zXSxmPX5+KC41KigrX1tjKzY0Pj4zXSsgK19bYys0OD4+M10pKSk6KHA9MCxmPTApfWVsc2UgcD1+figuNSooK19bYys1Nj4+M10rICtfW2MrNDA+PjNdKSksZj1+''@;'; put 'put ''fitfW2MrNjQ+PjNdfXdoaWxlKDApO2FbbD4+Ml09cCxhW2wrND4+Ml09Zn1mdW5jdGlvbiBDUihsKXtsfD0wO3ZhciBmLHAsYz0wLG09MCxBPTA7Zm9yKGY9MHx2cig4KSxhW2Y+PjJdPWwsYVsocD1mKzR8MCk+PjJdPTB8dnIoMTIqbHwwKSxjPTA7ISgoMHxjKT49KDB8bCkpOylBPTB8TUUo''@;'; put 'put ''KSxhWyhtPTB8YVtwPj4yXSkrKDEyKmN8MCkrOD4+Ml09QSxhW20rKDEyKmN8MCk+PjJdPTAsYz1jKzF8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIHoxKGwsYyxmKXt2YXIgcCxtO2x8PTAsY3w9MCxwPWxlLGxlPWxlKzE2fDAsYVsobT1wKT4+Ml09Znw9MCxtaVs2MyZhWyhmPTB8YVsoMHxhW2wr''@;'; put 'put ''ND4+Ml0pKygxMipjfDApKzg+PjJdKT4+Ml1dKGYsbSwxKSxsZT1wfWZ1bmN0aW9uIG1mKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAscD1sZSxsZT1sZSsxNnwwLGFbKG09cCk+PjJdPWZ8PTAsZj0wIT0oMHxtaVs2MyZhWyhmPTB8YVsoMHxhW2wrND4+Ml0pKygxMipjfDApKzg+''@;'; put 'put ''PjJdKT4+Ml1dKGYsbSw1MTIpKSYxLGxlPXAsMHxmfWZ1bmN0aW9uIFlNKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7c3dpdGNoKDB8KGM9MHxhWyhsfD0wKT4+Ml0pKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOmFbNCsoMHxhW2wrND4+Ml0pPj4yXT0wO2JyZWFrO2RlZmF1bHQ6Zm9yKHA9MHxmdW5j''@;'; put 'put ''dGlvbiBMNChsKXtsfD0wO3ZhciBjO3JldHVybiBjPTB8dnIoOCksYVtjKzQ+PjJdPTB8dnIobDw8MiksYVtjPj4yXT0tMSwwfGN9KGMpLG09bCs0fDAsZj0wLGM9MDs7KXtpZigoMHxmKT49KDB8YVtsPj4yXSkpe2M9MDticmVha30wfGFbKDB8YVttPj4yXSkrKDEyKmZ8MCk+PjJdfHwoYz0w''@;'; put 'put ''fFVNKGwsZixjLHApKSxmPWYrMXwwfWZvcig7ISgoMHwoZj0wfFFNKHApKSk8PS0xKTspYVsoMHxhW20+PjJdKSsoMTIqZnwwKSs0Pj4yXT1jLGM9YysxfDA7IWZ1bmN0aW9uIHNtKGwpe0Z0KDB8YVs0KyhsfD0wKT4+Ml0pLEZ0KGwpfShwKX19ZnVuY3Rpb24gVU0obCxjLGYscCl7Znw9MCxw''@;'; put 'put ''fD0wO3ZhciB3LGIsayxtPTAsQT0wO2ZvcihhWyhrPShBPTB8YVsoYj00KyhsfD0wKXwwKT4+Ml0pKygxMiooY3w9MCl8MCl8MCk+PjJdPTEsdz00KyhBPTB8YVtBKygxMipjfDApKzg+PjJdKXwwLGY9ZisxfDAsQT0wfHMwKEEpO0E7KTB8YVsoMHxhW2I+PjJdKSsoMTIqKG09MHxhWyhtPSgw''@;'; put 'put ''fChtPTB8YVs4KygwfGFbdz4+Ml0pPj4yXSkpPDA/MHxhW0ErOD4+Ml06QSsoMC1tKXwwKT4+Ml0pfDApPj4yXXx8KGY9MHxVTShsLG0sZixwKSksQT0wfGFbQT4+Ml07cmV0dXJuIGFbaz4+Ml09MixmdW5jdGlvbiBDOShsLGMpe2N8PTA7dmFyIGY7YVsobHw9MCk+PjJdPWY9MSsoMHxhW2w+''@;'; put 'put ''PjJdKXwwLGFbKDB8YVtsKzQ+PjJdKSsoZjw8Mik+PjJdPWN9KHAsYyksZisxfDB9ZnVuY3Rpb24gUU0obCl7dmFyIGMsZj0wO3JldHVybi0xPT0oMHwoYz0wfGFbKGx8PTApPj4yXSkpP2w9LTE6KGY9MHxhWygwfGFbbCs0Pj4yXSkrKGM8PDIpPj4yXSxhW2w+PjJdPWMrLTEsbD1mKSwwfGx9''@;'; put 'put ''ZnVuY3Rpb24gdW0obCl7dmFyIGMsZjtyZXR1cm4gYVsoZj0wfGFbMTYrKGx8PTApPj4yXSkrKDQwKihjPTB8YVtsPj4yXSl8MCkrMzI+PjJdPWMsYVtsPj4yXT1jKzEsZisoNDAqY3wwKXwwfWZ1bmN0aW9uIHYzKGwsYyxmLHApe2N8PTAsZnw9MCxwPStwO3ZhciBtLEE9MDtyZXR1cm4gYVso''@;'; put 'put ''QT00KyhsfD0wKXwwKT4+Ml09MSsobT0wfGFbQT4+Ml0pLGw9KEE9MHxhW2wrMjA+PjJdKSsoMjQqbXwwKXwwLGFbQSsoMjQqbXwwKSsxMj4+Ml09YVtjKzMyPj4yXSxhW0ErKDI0Km18MCkrMTY+PjJdPWFbZiszMj4+Ml0sX1tsPj4zXT1wLGFbQSsoMjQqbXwwKSs4Pj4yXT0wLEVSKGMsbSks''@;'; put 'put ''RVIoZixtKSwwfGx9ZnVuY3Rpb24gRVIobCxjKXt2YXIgZixwO2FbKDB8YVsyOCsobHw9MCk+PjJdKSsoKHA9MHxpdFsoZj1sKzE2fDApPj4xXSk8PDE2Pj4xNjw8Mik+PjJdPWN8PTAsaXRbZj4+MV09cCsxPDwxNj4+MTZ9ZnVuY3Rpb24gVXoobCxjLGYpe3ZhciBwPTA7cmV0dXJuKDB8KHA9''@;'; put 'put ''MHxhWzEyKyhjfD0wKT4+Ml0pKT09KDB8YVszMisoZnw9MCk+PjJdKSYmKHA9MHxhW2MrMTY+PjJdKSwoMHxhWzE2KyhsfD0wKT4+Ml0pKyg0MCpwfDApfDB9ZnVuY3Rpb24gazkobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7QkEoQT0wfGFbKGx8PTApPj4yXSwzLGN8PTApLGM9''@;'; put 'put ''MHxhW0ErOTI+PjJdO2Rve2lmKGMpe2lmKGFbbCs3Nj4+Ml09dz0wfGFbMTIrKGY9MHxhW2MrMTY+PjJdKT4+Ml0sYVtsKzg0Pj4yXT1wPTB8YVtmKzE2Pj4yXSxhWyhtPWwrODB8MCk+PjJdPWFbZj4+Ml0sYVtsKzg4Pj4yXT1hW2MrND4+Ml0sYVsoZj1sKzE1MnwwKT4+Ml09cD1hW2Y+PjJd''@;'; put 'put ''fGFbcD4+Ml0sYz0wfGFbQSs4MD4+Ml0pe2FbbCs2MD4+Ml09YVsxMisoQT0wfGFbYysxNj4+Ml0pPj4yXSxhW2wrNjg+PjJdPWI9MHxhW0ErMTY+PjJdLGFbbCs3Mj4+Ml09YVtjKzQ+PjJdLGFbZj4+Ml09cHxhW2I+PjJdLGFbbCs2ND4+Ml09YVsoMD09KDB8dyk/bTpBKT4+Ml0sYz0zMDA7''@;'; put 'put ''YnJlYWt9YVtsKzYwPj4yXT0wLGM9OTk5O2JyZWFrfWM9OTk5fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gVFIobCl7dmFyIGMsZj0wO3JldHVybiBjPTB8YVs2MCsobHw9MCk+PjJdLDB8ZnVuY3Rpb24gTkcobCl7dmFyIHcsayxjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MDtrPWxlLGxl''@;'; put 'put ''PWxlKzE2fDAsYj1rKzh8MCx3PWsscD0wfGFbKGx8PTApPj4yXSwwIT0oMHwoYz0wfGFbbCs3Nj4+Ml0pKSYmMCE9KDB8KGY9MHxhW2M+PjJdKSk/KENvWzEyNyZmXShsKSxtPTEyKTptPTQ7ZG97aWYoND09KDB8bSkpaWYoMD09KDB8YVtsKzQwPj4yXSkmJjA9PSgwfGFbKEE9bCszNnwwKT4+''@;'; put 'put ''Ml0pKXtpZigwfGZlW3ArMTM+PjBdJiZjcmUobCksIShmPTB8YVsoYz1sKzMyfDApPj4yXSkpe2FbQT4+Ml09YVsxNTY3OV0sbT0xMjticmVha31wPTB8blMoZiwxMDY1MTIpLGFbQT4+Ml09cCxwP209MTI6KGI9MHxhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXSxBPTB8YVtjPj4yXSxjPTB8JGso''@;'; put 'put ''MHxhWzQ3NjQzXSksYVt3Pj4yXT1BLGFbdys0Pj4yXT1jLEdzWzYzJmJdKDk4MTY5LHcpLGM9MSl9ZWxzZSBtPTEyfXdoaWxlKDApO3JldHVybiAxMj09KDB8bSkmJigxMDI0JmFbbCsxNTI+PjJdPyhHc1s2MyZhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXV0oOTgyMDcsYiksYz0xKTpjPTApLGxl''@;'; put 'put ''PWssMHxjfShsKT9sPTE6KDAhPSgwfGMpJiYwIT0oMHwoZj0wfGFbYz4+Ml0pKSYmQ29bMTI3JmZdKGwpLGw9MCksMHxsfWZ1bmN0aW9uIFM5KGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys0Pj4yXSkmJkNvWzEyNyZmXShsKSxhWzI0KygwfGFbbD4+''@;'; put 'put ''Ml0pPj4yXT0wLGZyZShsKX1mdW5jdGlvbiB6OChsLGMsZil7Znw9MDt2YXIgdyxwPTAsbT0wLEE9MDtwPStfWzUwNCsoY3w9MCk+PjNdLG09K19bYys1MTI+PjNdLDB8YVtjKzM2MD4+Ml0/QT0tKG0rICtfW2YrOD4+M10pOihBPStfW2Y+PjNdK3AsZj1mKzh8MCxwPW0pLG09K19bYys1Mjg+''@;'; put 'put ''PjNdKih3PStfW2MrMzUyPj4zXSkqKCtfW2Y+PjNdK3ApLF9bKGx8PTApPj4zXT0rX1tjKzUyMD4+M10qdypBLF9bbCs4Pj4zXT1tfWZ1bmN0aW9uIE1oKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtLEEsYix3PTAsaz0wO209K19bNTA0KyhsfD0wKT4+M10sQT0rX1tsKzUxMj4+M10s''@;'; put 'put ''Yj0rX1tsKzUyMD4+M10qKHc9K19bbCszNTI+PjNdKSx3Kj0rX1tsKzUyOD4+M107ZTpkb3tpZigwfGFbbCszNjA+PjJdKWZvcihsPTA7Oyl7aWYoKDB8bCk+PSgwfHApKWJyZWFrIGU7az0tYiooK19bYysobDw8NCkrOD4+M10rQSksX1tmKyhsPDw0KSs4Pj4zXT0oK19bYysobDw8NCk+PjNd''@;'; put 'put ''K20pKncsX1tmKyhsPDw0KT4+M109ayxsPWwrMXwwfWVsc2UgZm9yKGw9MDs7KXtpZigoMHxsKT49KDB8cCkpYnJlYWsgZTtfW2YrKGw8PDQpPj4zXT0oK19bYysobDw8NCk+PjNdK20pKmIsX1tmKyhsPDw0KSs4Pj4zXT0oK19bYysobDw8NCkrOD4+M10rQSkqdyxsPWwrMXwwfX13aGlsZSgw''@;'; put 'put ''KTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEp6KGwpe3ZhciBjPTAsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzE2Pj4yXSkmJlJjWzMxJmZdKGwsMHxhWygwfGFbMzA4KygwfGFbbD4+Ml0pPj4yXSkrKChjPTB8YVtsKzE2MD4+Ml0pPDwyKT4+Ml0sYywwfGFbbCsxNTY+''@;'; put 'put ''PjJdKX1mdW5jdGlvbiBtYihsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrMjA+PjJdKSYmQ29bMTI3JmZdKGwpfWZ1bmN0aW9uIEc4KGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys0MD4+Ml0pJiZDb1sxMjcm''@;'; put 'put ''Zl0obCl9ZnVuY3Rpb24gY20obCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzQ0Pj4yXSkmJkNvWzEyNyZmXShsKX1mdW5jdGlvbiBZZihsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNDg+PjJdKSYmQ29bMTI3''@;'; put 'put ''JmZdKGwpfWZ1bmN0aW9uIGZtKGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys1Mj4+Ml0pJiZDb1sxMjcmZl0obCl9ZnVuY3Rpb24gRzEobCxjLGYscCxtKXt2YXIgQSx3PTA7MHwoQT0wfGFbNjArKGx8PTApPj4yXSkmJjB8KHc9MHxhW0ErNzI+PjJd''@;'; put 'put ''KSYmcDhbMTUmd10obCxjfD0wLGZ8PTAscHw9MCxtfD0wKX1mdW5jdGlvbiBFaChsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNzY+PjJdKSYmQ29bMTI3JmZdKGwpfWZ1bmN0aW9uIFc4KGwsYyl7dmFyIGYscD0wOzB8KGY9MHxhWzYwKyhsfD0wKT4+''@;'; put 'put ''Ml0pJiYwfChwPTB8YVtmKzgwPj4yXSkmJkdzWzYzJnBdKGwsY3w9MCl9ZnVuY3Rpb24gTzQobCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzg0Pj4yXSkmJkNvWzEyNyZmXShsKX1mdW5jdGlvbiBobShsLGMsZil7Y3w9MDt2YXIgcCxBLHcsYixrLG09''@;'; put 'put ''MCxNPTA7az1sZSxsZT1sZSs0OHwwLHA9ayszMnwwLEE9ayx3PWsrMTZ8MCxiPTB8YVs2MCsobHw9MCk+PjJdLE09MHxhWyhmfD0wKT4+Ml07ZG97aWYoMHxNJiYwfGZlW00+PjBdKXtpZigwfChNPTB8YVtsKzE2Pj4yXSkmJjA9PSgwfGFbTSsxNDQ+PjJdKSlicmVhazs4MTkyJmFbbCsxNTI+''@;'; put 'put ''PjJdPyhhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSk6KGFbcD4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLHo4''@;'; put 'put ''KHcsbCxwKSxhW0E+PjJdPWFbdz4+Ml0sYVtBKzQ+PjJdPWFbdys0Pj4yXSxhW0ErOD4+Ml09YVt3Kzg+PjJdLGFbQSsxMj4+Ml09YVt3KzEyPj4yXSksMHxiJiYwfChtPTB8YVtiKzg4Pj4yXSkmJihhW3A+PjJdPWFbQT4+Ml0sYVtwKzQ+PjJdPWFbQSs0Pj4yXSxhW3ArOD4+Ml09YVtBKzg+''@;'; put 'put ''PjJdLGFbcCsxMj4+Ml09YVtBKzEyPj4yXSxkbFsxMjcmbV0obCxwLGYpKX19d2hpbGUoMCk7bGU9a31mdW5jdGlvbiBtYShsLGMpe3ZhciBwLG0sQSx3LGY9MDtwPTB8YVs2MCsobHw9MCk+PjJdLG09MTYrKDB8YVtsKzE2Pj4yXSl8MCwoQT0wIT0oMHwodz0wfCRzKGN8PTAsNTgpKSkpJiYo''@;'; put 'put ''ZmVbdz4+MF09MCksMHxwJiYodTYoMHxhW2wrNjg+PjJdLGMsbSksMHwoZj0wfGFbcCs5Mj4+Ml0pKSYmR3NbNjMmZl0obCxtKSxBJiYoZmVbdz4+MF09NTgpfWZ1bmN0aW9uIHU2KGwsYyxmKXtsfD0wO3ZhciBwLG0sQSxiLGssTSx3PTA7TT1sZSxsZT1sZSszMnwwLEE9TSsxNnwwLGs9TSs4''@;'; put 'put ''fDAsYj1NLGFbKGZ8PTApPj4yXT1jfD0wLGFbZiszMj4+Ml09NSxwPTB8dm0oYyksMCE9KDB8KG09MHxhW2wrMTY+PjJdKSkmJjAhPSgwfG53KHAsbSwwfGFbbCsyMD4+Ml0sNCwxMDIpKXx8KHc9Myk7ZTpkb3tpZigzPT0oMHx3KSl7c3dpdGNoKDB8UzMoYyxmLDB8YVtsKzI0Pj4yXSkpe2Nh''@;'; put 'put ''c2UgMDpicmVhayBlO2Nhc2UgMTpicmVhaztkZWZhdWx0OiRyKDEsMTExMDQ2LEEpO2JyZWFrIGV9bD0wfFFuKDE2KygwfFVvKGMpKXwwKSxhW2I+PjJdPWMsb28obCwxMTEwMTEsYiksMHxndmUobCkmJihhW2s+PjJdPWMsJHIoMCwxMTEwMjAsaykpLEZ0KGwpfX13aGlsZSgwKTtsZT1NfWZ1''@;'; put 'put ''bmN0aW9uIGhsKGwsYyl7dmFyIHAsbSxBLHcsZj0wO3A9MHxhWzYwKyhsfD0wKT4+Ml0sbT01NisoMHxhW2wrMTY+PjJdKXwwLChBPTAhPSgwfCh3PTB8JHMoY3w9MCw1OCkpKSkmJihmZVt3Pj4wXT0wKSwwfHAmJih1NigwfGFbbCs2OD4+Ml0sYyxtKSwwfChmPTB8YVtwKzkyPj4yXSkpJiZH''@;'; put 'put ''c1s2MyZmXShsLG0pLEEmJihmZVt3Pj4wXT01OCl9ZnVuY3Rpb24gVWYobCxjLGYscCl7Znw9MCxwPStwO3ZhciBBLHcsbT0wLGI9MDtiPTk2KygwfGFbKHc9MTYrKGx8PTApfDApPj4yXSl8MCwwfChBPTB8YVtsKzYwPj4yXSkmJih1NigwfGFbbCs2OD4+Ml0sY3w9MCxiKSwwfChtPTB8YVtB''@;'; put 'put ''KzkyPj4yXSkpJiZHc1s2MyZtXShsLGIpLGFbMTM2KyhiPTB8YVt3Pj4yXSk+PjJdPWYsam5bYisxNDA+PjJdPXB9ZnVuY3Rpb24gZDIobCxjKXt2YXIgYixrLGY9MCxwPTAsbT0wLEE9MCx3PTA7az1sZSxsZT1sZSsxNnwwLGI9ayx3PTB8YVs2MCsobHw9MCk+PjJdLGFbMTYwKyhsPTB8YVts''@;'; put 'put ''KzE2Pj4yXSk+PjJdPWN8PTA7ZTpkb3tpZigwIT0oMHxjKSYwIT0oMHx3KSl7dz1sKzE0NHwwLEE9bCsxNTJ8MCxtPWwrMTQ4fDAsbD1jO3Q6Zm9yKDs7KXtpZihwPWwrNHwwLCEobD0wfGFbbD4+Ml0pKWJyZWFrIGU7bjpkb3tzd2l0Y2goMHxmZVtsPj4wXSl7Y2FzZSAxMTU6aWYoISgwfFpp''@;'; put 'put ''KGwsMTExMDY3KSkpe2Fbdz4+Ml09MyxsPXA7Y29udGludWUgdH1pZighKDB8WmkobCwxMTEwODgpKSl7Zm9yKGY9MTE1O2M9bCsxfDAsZjw8MjQ+PjI0OylsPWMsZj0wfGZlW2M+PjBdO19bQT4+M109K2twKGMpLGw9cDtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTAwOmlmKCEoMHxaaShsLDEz''@;'; put 'put ''NzMyNykpKXthW3c+PjJdPTEsbD1wO2NvbnRpbnVlIHR9aWYoISgwfFppKGwsMTM3MzIwKSkpe2Fbdz4+Ml09MixsPXA7Y29udGludWUgdH1icmVhaztjYXNlIDEwNTppZigwfFppKGwsMTM0MzM1KSYmMHxaaShsLDExMTA3MykpYnJlYWsgbjthW3c+PjJdPTAsbD1wO2NvbnRpbnVlIHQ7Y2Fz''@;'; put 'put ''ZSA5ODppZighKDB8WmkobCwxMTEwODMpKSl7X1tBPj4zXT0yLGw9cDtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTAyOmlmKCEoMHxaaShsLDExMTEwMSkpKXthW20+PjJdPTEsbD1wO2NvbnRpbnVlIHR9YnJlYWs7Y2FzZSAxMTc6aWYoISgwfFppKGwsMTExMTA4KSkpe2FbbT4+Ml09MCxsPXA7''@;'; put 'put ''Y29udGludWUgdH1icmVhaztjYXNlIDExNjppZighKDB8WmkobCwxMTExMTcpKSl7bD1wO2NvbnRpbnVlIHR9fX13aGlsZSgwKTthW2I+PjJdPWwsJHIoMCwxMTExMjUsYiksbD1wfX19d2hpbGUoMCk7bGU9a31mdW5jdGlvbiAkdShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSxiLG09''@;'; put 'put ''MCx3PTA7Yj1sZSxsZT1sZSszMnwwLEE9YiwwfChmPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwobT0wfGFbKHc9Zis5NnwwKT4+Ml0pJiYwfGFbMTQ0KygwfGFbbCsxNj4+Ml0pPj4yXSYmKF9bQT4+M109LjUqKCtfWyhmPWMrMTZ8MCk+PjNdKyArX1tjPj4zXSksX1tBKzg+PjNdPS41KigrX1tj''@;'; put 'put ''KzI0Pj4zXSsgK19bYys4Pj4zXSksYVsoYz1BKzE2fDApPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sODE5MiZhW2wrMTUyPj4yXXx8KE1oKGwsQSxBLDIpLG09MHxhW3c+PjJdKSxkbFsxMjcmbV0obCxB''@;'; put 'put ''LHApKSxsZT1ifWZ1bmN0aW9uIGthKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBELEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wO2lmKEc9bGUsbGU9bGUrNDh8MCxEPUcsMHwobT0wfGFbNjArKGx8PTApPj4yXSkmJjB8YVsoUj1tKzEwMHwwKT4+Ml0mJjB8YVsxNDQrKGs9MHxh''@;'; put 'put ''WyhNPWwrMTZ8MCk+PjJdKT4+Ml0pe2lmKDQmcCl7bT0tNSZwLHc9cD1rKzE2fDAsYj0oQT1EKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO3c9ays1NnwwLGI9KEE9cCkrNDB8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3''@;'; put 'put ''PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTtBPTF9ZWxzZSBtPXAsQT0wO2lmKDgxOTImYVtsKzE1Mj4+Ml0/UmNbMzEmYVtSPj4yXV0obCxjLGYsbSk6KHA9ZisxMHwwLCgwfGFbNDczNjNdKTwoMHxmKT8oYVs0NzM2M109cCxwPTB8VjAoMHxhWzQ3MzY0XSxwPDw0KSxhWzQ3MzY0XT1wKTpw''@;'; put 'put ''PTB8YVs0NzM2NF0sTWgobCxjLHAsZiksUmNbMzEmYVtSPj4yXV0obCxwLGYsbSkpLDB8QSl7dz1ELGI9NDArKEE9MTYrKDB8YVtNPj4yXSl8MCl8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKX19bGU9R31mdW5jdGlvbiB5MyhsLGMsZil7''@;'; put 'put ''dmFyIHAsbSxBO2x8PTAsZnw9MCxwPWxlLGxlPWxlKzY0fDAsYVsobT1wKT4+Ml09YVsoY3w9MCk+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sYVsoQT1tKzMyfDApPj4yXT1hWyhjPWMrMTZ8MCk+PjJdLGFbQSs0Pj4y''@;'; put 'put ''XT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sX1ttKzE2Pj4zXT0rX1ttPj4zXSxfW20rMjQ+PjNdPStfW20rNDA+PjNdLF9bbSs0OD4+M109K19bQT4+M10sX1ttKzU2Pj4zXT0rX1ttKzg+PjNdLGthKGwsbSw0LGYpLGxlPXB9ZnVuY3Rpb24g''@;'; put 'put ''UWYobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgYix3PTAsaz0wO2I9MHxhWzYwKyhsfD0wKT4+Ml07ZG97aWYoMHxiJiYwfCh3PTB8YVsoaz1iKzEwNHwwKT4+Ml0pJiYwfGFbMTQ0KygwfGFbbCsxNj4+Ml0pPj4yXSl7aWYoODE5MiZhW2wrMTUyPj4yXXwwKXto''@;'; put 'put ''dlsxNSZ3XShsLGMsZixwLG0sMjU1JkEpO2JyZWFrfXc9ZisxMHwwLCgwfGFbNDczNjNdKTwoMHxmKT8oYVs0NzM2M109dyx3PTB8VjAoMHxhWzQ3MzY0XSx3PDw0KSxhWzQ3MzY0XT13KTp3PTB8YVs0NzM2NF0sTWgobCxjLHcsZiksaHZbMTUmYVtrPj4yXV0obCx3LGYscCxtLDI1NSZBKX19''@;'; put 'put ''d2hpbGUoMCl9ZnVuY3Rpb24gV28obCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7cD0wfGFbNjArKGx8PTApPj4yXTtkb3tpZigwfHAmJjB8KG09MHxhWyhBPXArMTA4fDApPj4yXSkmJjB8YVsxNDQrKDB8YVtsKzE2Pj4yXSk+PjJdKXtpZig4MTkyJmFbbCsxNTI+PjJdfDApe2Rs''@;'; put 'put ''WzEyNyZtXShsLGMsZik7YnJlYWt9cD1mKzEwfDAsKDB8YVs0NzM2M10pPCgwfGYpPyhhWzQ3MzYzXT1wLHA9MHxWMCgwfGFbNDczNjRdLHA8PDQpLGFbNDczNjRdPXApOnA9MHxhWzQ3MzY0XSxNaChsLGMscCxmKSxkbFsxMjcmYVtBPj4yXV0obCxwLGYpfX13aGlsZSgwKX1mdW5jdGlvbiBk''@;'; put 'put ''bShsLGMpe3ZhciBmLHA9MDtmPTB8YVs2MCsobHw9MCk+PjJdLDB8KGN8PTApJiYhKDA9PSgwfGYpfDA9PSgwfGZlW2M+PjBdKSkmJjB8KHA9MHxhW2YrMTEyPj4yXSkmJkdzWzYzJnBdKGwsYyl9ZnVuY3Rpb24gdEUobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIg''@;'; put 'put ''UmUsSGUscnQsV2UsYXQsU3Qsa3Qsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsVmU9MCxxZT0wLHN0PTA7aWYoa3Q9bGUsbGU9bGUrMTEyfDAscnQ9a3QrNjR8MCxTdD1rdCxNPWt0Kzk2fDAsUmU9a3QrNDh8MCxIZT1rdCszMnwwLFdl''@;'; put 'put ''PTB8YVs2MCsobHw9MCk+PjJdLGx8fFByKDExMTI4MiwxMTExNzgsNjkxLDExMTE4OSksY3x8UHIoMTExMjA4LDExMTE3OCw2OTIsMTExMTg5KSwwfGZlW2M+PjBdfHxQcigxMTEyMTMsMTExMTc4LDY5MywxMTExODkpLGF0PTB8cHJlKGMpKXtpZihhW3J0Pj4yXT1hWyhwZT1sKzQzMnwwKT4+''@;'; put 'put ''Ml0sYVtydCs0Pj4yXT1hW3BlKzQ+PjJdLGFbcnQrOD4+Ml09YVtwZSs4Pj4yXSxhW3J0KzEyPj4yXT1hW3BlKzEyPj4yXSxtcmUoTSxhdCxydCksISgoMHwocGU9MHxhW00+PjJdKSk8MSYoMHwoaz0wfGFbTSs0Pj4yXSkpPDEpKXtmb3IoYVsoTT1TdCsxNnwwKT4+Ml09YVtmPj4yXSxhW00r''@;'; put 'put ''ND4+Ml09YVtmKzQ+PjJdLGFbTSs4Pj4yXT1hW2YrOD4+Ml0sYVtNKzEyPj4yXT1hW2YrMTI+PjJdLGFbU3Q+PjJdPWFbZj4+Ml0sYVtTdCs0Pj4yXT1hW2YrND4+Ml0sYVtTdCs4Pj4yXT1hW2YrOD4+Ml0sYVtTdCsxMj4+Ml09YVtmKzEyPj4yXSxWZT1TdCs4fDAscWU9U3QrMjR8MCxjPTE7''@;'; put 'put ''ISgoMHxjKT49KDB8cCkpOylfW1N0Pj4zXT0rX1soK19bU3Q+PjNdPChPZT0rX1soc3Q9ZisoYzw8NCl8MCk+PjNdKT9TdDpzdCk+PjNdLF9bVmU+PjNdPStfWygrX1tWZT4+M108KExlPStfW2YrKGM8PDQpKzg+PjNdKT9TdDpzdCkrOD4+M10sX1tNPj4zXT0rX1soK19bTT4+M10+T2U/TTpz''@;'; put 'put ''dCk+PjNdLF9bcWU+PjNdPStfWygrX1txZT4+M10+TGU/TTpzdCkrOD4+M10sYz1jKzF8MDtHPShnZT0oYj0rX1tNPj4zXSktKHc9K19bU3Q+PjNdKSkvKFI9KygwfHBlKSkscT0oTGU9KGJlPStfW3FlPj4zXSktKE9lPStfW1ZlPj4zXSkpLyhEPSsoMHxrKSk7ZTpkb3tzd2l0Y2goMHxuRShB''@;'; put 'put ''KSl7Y2FzZSAxOmlmKEc8cSl7Uio9RyxEKj1HO2JyZWFrIGV9Uio9cSxEKj1xO2JyZWFrIGU7Y2FzZSAyOlIqPUc7YnJlYWs7Y2FzZSAzOkQqPXE7YnJlYWs7Y2FzZSA0OlIqPUcsRCo9cX19d2hpbGUoMCk7UjxnZSYmKF9bU3Q+PjNdPXcrPWdlPS41KihnZS1SKSxfW00+PjNdPWItPWdlKSxE''@;'; put 'put ''PExlJiYoX1tWZT4+M109T2UrKExlPS41KihMZS1EKSksX1txZT4+M109YmUtTGUpLDgxOTImYVtsKzE1Mj4+Ml18fChhW3J0Pj4yXT1hW1N0Pj4yXSxhW3J0KzQ+PjJdPWFbU3QrND4+Ml0sYVtydCs4Pj4yXT1hW1N0Kzg+PjJdLGFbcnQrMTI+PjJdPWFbU3QrMTI+PjJdLHo4KFJlLGwscnQp''@;'; put 'put ''LGFbU3Q+PjJdPWFbUmU+PjJdLGFbU3QrND4+Ml09YVtSZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbUmUrOD4+Ml0sYVtTdCsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtydD4+Ml09YVtNPj4yXSxhW3J0KzQ+PjJdPWFbTSs0Pj4yXSxhW3J0Kzg+PjJdPWFbTSs4Pj4yXSxhW3J0KzEyPj4yXT1hW00rMTI+''@;'; put 'put ''PjJdLHo4KEhlLGwscnQpLGFbTT4+Ml09YVtIZT4+Ml0sYVtNKzQ+PjJdPWFbSGUrND4+Ml0sYVtNKzg+PjJdPWFbSGUrOD4+Ml0sYVtNKzEyPj4yXT1hW0hlKzEyPj4yXSxiPStfW00+PjNdLHc9K19bU3Q+PjNdKSx3PmImJihfW1N0Pj4zXT1iLF9bTT4+M109dyksKHc9K19bVmU+PjNdKT4o''@;'; put 'put ''Yj0rX1txZT4+M10pJiYoX1tWZT4+M109YixfW3FlPj4zXT13KSwwfFdlJiYoc3Q9MHxhW2wrNzI+PjJdLGFbcnQ+PjJdPWFbU3Q+PjJdLGFbcnQrND4+Ml09YVtTdCs0Pj4yXSxhW3J0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtydCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtydCsxNj4+Ml09YVtTdCsx''@;'; put 'put ''Nj4+Ml0sYVtydCsyMD4+Ml09YVtTdCsyMD4+Ml0sYVtydCsyND4+Ml09YVtTdCsyND4+Ml0sYVtydCsyOD4+Ml09YVtTdCsyOD4+Ml0sZnVuY3Rpb24gT1IobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBLGIsayxELHc9MCxNPTA7RD1sZSxsZT1sZSsxNzZ8MCxrPUQrOHww''@;'; put 'put ''LGI9RCxBPUQrNDB8MCwobHw9MCl8fFByKDExMTI4MiwxMTEyODYsNTIsMTExMzAwKSxjfHxQcigxMTEzMTIsMTExMjg2LDUzLDExMTMwMCksKHc9MHxhW2MrOD4+Ml0pfHxQcigxMTEzMTUsMTExMjg2LDU0LDExMTMwMCksMHxmZVt3Pj4wXXx8UHIoMTExMzI0LDExMTI4Niw1NSwxMTEzMDAp''@;'; put 'put ''LHJkKEEsMHxhW2MrMjg+PjJdKSx3PUErKDB8VW8oQSkpfDAsZmVbdz4+MF09NTgsZmVbdysxPj4wXT0wLHN2KEEsbSksOTk5PT0oMHxmdW5jdGlvbiBYeihsLGMpe3JldHVybihjPTB8QkEoMHxhWyhsfD0wKT4+Ml0sNCxjfD0wKSk/KGFbbCs5Mj4+Ml09YVsxMisoYz0wfGFbYysxNj4+Ml0p''@;'; put 'put ''Pj4yXSxhW2wrOTY+PjJdPWFbYz4+Ml0sYz0zMDApOmM9OTk5LDB8Y30obCxBKSkmJihhW2I+PjJdPUEsJHIoMCwxMTEzMzYsYikpLDB8KG09MHxhW2wrOTI+PjJdKSYmMHwoTT0wfGFbbT4+Ml0pJiYoYVtrPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4''@;'; put 'put ''Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2Pj4yXT1hW2YrMTY+PjJdLGFbaysyMD4+Ml09YVtmKzIwPj4yXSxhW2srMjQ+PjJdPWFbZisyND4+Ml0sYVtrKzI4Pj4yXT1hW2YrMjg+PjJdLFJjWzMxJk1dKGwsYyxrLHApKSxsZT1EfShsLGF0LHJ0LG0sc3QpKX19ZWxzZSAwIT0o''@;'; put 'put ''MHxXZSkmMCE9KDB8bE4oYykpJiYwfChrPTB8YVtXZSsxMTY+PjJdKSYmcDhbMTUma10obCxjLGYscCwyNTUmbSk7bGU9a3R9ZnVuY3Rpb24gbkUobCl7cmV0dXJuIDB8KDB8ZmVbKGx8PTApPj4wXT8wfHkwKGwsMTQxMTE2KT8wfHkwKGwsMTQxMDQ4KT8wfHkwKGwsMTExMjIxKT8oMHx0MShs''@;'; put 'put ''KSk8PDI0Pj4yNCE9MCYxOjQ6MzoyOjApfWZ1bmN0aW9uIHhoKGwsYyl7Yz0rYywwfGFbNjArKGx8PTApPj4yXSYmKF9bMTUyKygwfGFbbCsxNj4+Ml0pPj4zXT1jKX1mdW5jdGlvbiByRShsLGMpe3JldHVybihjPTB8QkEobHw9MCwxLGN8PTApKT8oYVtsKzE4ND4+Ml09YVs0KyhjPTB8YVtj''@;'; put 'put ''KzE2Pj4yXSk+PjJdLGFbbCsxNzI+PjJdPWFbYysxMj4+Ml0sYVtsKzE3Nj4+Ml09YVtjPj4yXSxhW2wrMTgwPj4yXT1hW2MrMTY+PjJdLGM9MzAwKTpjPTk5OSwwfGN9ZnVuY3Rpb24gRTkobCxjKXtsfD0wO3ZhciBwLG0sQSx3LGIsayxmPTA7cD1sZSxsZT1sZSs4MHwwLG09cCxrPXArMzJ8''@;'; put 'put ''MCxhWyhmPXArNDh8MCk+PjJdPWFbKGN8PTApPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLGZ1bmN0aW9uIFBSKGwsYyxmKXtmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTA7MHxhWzM2MCsoY3w9MCk+PjJdPyhtPS0rX1tm''@;'; put 'put ''Pj4zXSxBPXA9K19bYyszNTI+PjNdLHc9Yys1MjB8MCxwPStfW2YrOD4+M10vKCtfW2MrNTI4Pj4zXSpwKS0rX1tjKzUwND4+M10pOihtPStfW2YrOD4+M10sQT1wPStfW2MrMzUyPj4zXSx3PWMrNTI4fDAscD0rX1tmPj4zXS8oK19bYys1MjA+PjNdKnApLStfW2MrNTA0Pj4zXSksQT1tLygr''@;'; put 'put ''X1t3Pj4zXSpBKS0rX1tjKzUxMj4+M10sX1sobHw9MCk+PjNdPXAsX1tsKzg+PjNdPUF9KGssbCxmKSx3PStfW2srOD4+M10sX1ttKzE2Pj4zXT0oQT0xLytfW2wrMzUyPj4zXSkrKGI9K19baz4+M10pLF9bbSsyND4+M109QSt3LF9bbT4+M109Yi1BLF9bbSs4Pj4zXT13LUEsYz0wfGFbMTY4''@;'; put 'put ''KygwfGFbbD4+Ml0pPj4yXSxhW2Y+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxhW2YrMTY+PjJdPWFbbSsxNj4+Ml0sYVtmKzIwPj4yXT1hW20rMjA+PjJdLGFbZisyND4+Ml09YVttKzI0Pj4yXSxhW2Yr''@;'; put 'put ''Mjg+PjJdPWFbbSsyOD4+Ml0sYz0wfGZ1bmN0aW9uIEZSKGwsYyl7Y3w9MDt2YXIgbSxBLGY9MCxwPTA7QT1sZSxsZT1sZSszMnwwLG09QSxwPTB8RHQobHw9MCk7ZTpmb3IoOzspe2lmKCFwKXtwPTk7YnJlYWt9Zm9yKGY9MHx3MChsLHApO2Y7KXtpZihhW20+PjJdPWFbYz4+Ml0sYVttKzQ+''@;'; put 'put ''PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxhW20rMTY+PjJdPWFbYysxNj4+Ml0sYVttKzIwPj4yXT1hW2MrMjA+PjJdLGFbbSsyND4+Ml09YVtjKzI0Pj4yXSxhW20rMjg+PjJdPWFbYysyOD4+Ml0sKDB8a0ooZixtKSk8PDI0Pj4yNCl7''@;'; put 'put ''cD02O2JyZWFrIGV9Zj0wfFMwKGwsZil9cD0wfHp0KGwscCl9ZG97aWYoNiE9KDB8cCkmJjk9PSgwfHApKXtmb3IoZj0wfFBuKGwpO2Y7KXtpZihhW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxhW20r''@;'; put 'put ''MTY+PjJdPWFbYysxNj4+Ml0sYVttKzIwPj4yXT1hW2MrMjA+PjJdLGFbbSsyND4+Ml09YVtjKzI0Pj4yXSxhW20rMjg+PjJdPWFbYysyOD4+Ml0sKDB8QmxlKGYsbSkpPDwyND4+MjQpe3A9MTI7YnJlYWt9Zj0wfFRuKGwsZil9aWYoMTI9PSgwfHApfHwoYVttPj4yXT1hW2M+PjJdLGFbbSs0''@;'; put 'put ''Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sYVttKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbSsyMD4+Ml09YVtjKzIwPj4yXSxhW20rMjQ+PjJdPWFbYysyND4+Ml0sYVttKzI4Pj4yXT1hW2MrMjg+PjJdLGY9MHxnbShsLG0pKSlicmVhaztm''@;'; put 'put ''PWw7YnJlYWt9fXdoaWxlKDApO3JldHVybiBsZT1BLDB8Zn0oYyxmKSwoMHxjKSE9KDB8YVsoZj1sKzU3NnwwKT4+Ml0pJiYoZnVuY3Rpb24gSFIobCl7dmFyIGM9MDtjPTB8YVs1NzYrKGx8PTApPj4yXTtlOmRve2lmKDB8Yylzd2l0Y2goMHxraShjKSl7Y2FzZSAwOmZlWyhjPTExMisoMHxh''@;'; put 'put ''W2MrMTY+PjJdKXwwKT4+MF09LTImZmVbYz4+MF07YnJlYWsgZTtjYXNlIDE6ZmVbKGM9MTE3KygwfGFbYysxNj4+Ml0pfDApPj4wXT0tMiZmZVtjPj4wXTticmVhayBlO2Nhc2UgMjpmZVsoYz0xMTUrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPS0yJmZlW2M+PjBdO2JyZWFrIGU7ZGVmYXVsdDpi''@;'; put 'put ''cmVhayBlfX13aGlsZSgwKTthW2wrNTg0Pj4yXT0wfShsKSxhW2Y+PjJdPWMsZnVuY3Rpb24gdUUobCl7dmFyIGYsYz0wOzB8KGM9MHxhWyhmPTU4NCsobHw9MCl8MCk+PjJdKSYmKEZ0KGMpLGFbZj4+Ml09MCksYz0wfGFbbCs1NzY+PjJdO2U6ZG97aWYoMHxjKXN3aXRjaCgwfGtpKGMpKXtj''@;'; put 'put ''YXNlIDA6aWYoZmVbKGw9MTEyKygwfGFbYysxNj4+Ml0pfDApPj4wXT0xfGZlW2w+PjBdLCEobD0wfHNpKGMsMCwxNDExMDEsMCkpKWJyZWFrIGU7YVtmPj4yXT0wfG0yKDB8SG8oYyxsKSxjKTticmVhayBlO2Nhc2UgMTppZihmZVsobD0xMTcrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPTF8ZmVb''@;'; put 'put ''bD4+MF0sIShsPTB8c2koMHxjcihjKSwxLDE0MTEwMSwwKSkpYnJlYWsgZTthW2Y+PjJdPTB8bTIoMHxIbyhjLGwpLGMpO2JyZWFrIGU7Y2FzZSAyOmlmKGZlWyhsPTExNSsoMHxhW2MrMTY+PjJdKXwwKT4+MF09MXxmZVtsPj4wXSwhKGw9MHxzaSgwfGNyKDB8YVsoMj09KDMmYVtjPj4yXXww''@;'; put 'put ''KT9jOmMrLTQ4fDApKzQwPj4yXSksMiwxNDExMDEsMCkpKWJyZWFrIGU7YVtmPj4yXT0wfG0yKDB8SG8oYyxsKSxjKTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCl9KGwpLGZlW2wrNTM3Pj4wXT0xKSxsZT1wfWZ1bmN0aW9uIGdtKGwsYyl7Y3w9MDt2YXIgcCxBLHcsYixNLGY9''@;'; put 'put ''MCxtPTAsaz0wO2ZvcihNPWxlLGxlPWxlKzMyfDAscD1NLHc9MHxhWzE4MCsoQT0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLGI9QSsxODR8MCxmPTE7Oyl7aWYoKDB8Zik+KDB8dykpe2s9NDticmVha31pZihtPTB8YVsoMHxhW2I+PjJdKSsoZjw8Mik+PjJdLGFbcD4+Ml09YVtjPj4yXSxhW3Ar''@;'; put 'put ''ND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLGFbcCsxNj4+Ml09YVtjKzE2Pj4yXSxhW3ArMjA+PjJdPWFbYysyMD4+Ml0sYVtwKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbcCsyOD4+Ml09YVtjKzI4Pj4yXSxtPTB8Z20obSxwKSl7bD1tO2Jy''@;'; put 'put ''ZWFrfWY9ZisxfDB9ZG97aWYoND09KDB8aykpe2lmKCtfW2MrMTY+PjNdPj0rX1tBKzE2Pj4zXSYmK19bQSszMj4+M10+PStfW2M+PjNdJiYrX1tjKzI0Pj4zXT49K19bQSsyND4+M10mJitfW0ErNDA+PjNdPj0rX1tjKzg+PjNdKWJyZWFrO2w9MH19d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxs''@;'; put 'put ''fWZ1bmN0aW9uIFk4KGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wLEE9MDtmPTU5MisobHw9MCl8MDtkb3tpZigoMHxkaShjKSk9PSgwfGMpKXtpZigwfFNjKGMpKXtndShmLDAsMTExNDg2KTticmVha31ndShmLDAsMTExNDk0KTticmVha31ndShmLDAsMTExNTAwKX13aGlsZSgwKTtmb3IoZ3Uo''@;'; put 'put ''ZiwxLDB8dGkoYykpLGFbbCs1OTY+PjJdPTIsbT1sKzYwNHwwLGY9MCxwPTI7Zj0wfE5zKGMsMCxmKTspZ3UobSxwLDB8YVtmKzg+PjJdKSxndShtLHArMXwwLDB8SG8oYyxmKSksZ3UobSxwKzJ8MCwwKSxwPXArM3wwO2FbbCs2MDg+PjJdPXAsKChmPTB8c2koYywwLDE0MTA1NSwwKSl8fDB8''@;'; put 'put ''KGY9MHxzaShjLDAsMTExNDc3LDApKSkmJihBPTExKSwxMT09KDB8QSkmJihhW2wrNTg4Pj4yXT0wfG0yKDB8SG8oYyxmKSxjKSl9ZnVuY3Rpb24gYjMobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MDtmb3IoZ3UobT01OTIrKGx8PTApfDAsMCwxMTE0ODEpLGd1KG0sMSwwfHRpKGMp''@;'; put 'put ''KSxhW2wrNTk2Pj4yXT0yLG09bCs2MDR8MCxBPTB8ZGkoMHxjcihjKSkscD0yLGY9MDtmPTB8TnMoQSwxLGYpOylndShtLHAsMHxhW2YrOD4+Ml0pLGd1KG0sMXxwLDB8SG8oYyxmKSkscD1wKzJ8MDthW2wrNjA4Pj4yXT1wLCgoZj0wfHNpKDB8Y3IoYyksMSwxNDEwNTUsMCkpfHwwfChmPTB8''@;'; put 'put ''c2koMHxjcihjKSwxLDExMTQ3NywwKSkpJiYodz02KSw2PT0oMHx3KSYmKGFbbCs1ODg+PjJdPTB8bTIoMHxIbyhjLGYpLGMpKX1mdW5jdGlvbiBhMihsLGMpe2N8PTA7dmFyIHcsYixrLGY9MCxwPTAsbT0wLEE9MCxNPTAsRD0wO2d1KHc9NTkyKyhsfD0wKXwwLDAsMTExNDUwKSxNPWMrNDh8''@;'; put 'put ''MCxndSh3LDEsMHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pKSxndSh3LDMsKE09MCE9KDB8U2MoMHxjcigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pKSkpPzEzNzczODoxNDE3NDcpLE09YystNDh8MCxndSh3LDQsMHx0aSgwfGFbKDI9PSgzJmFbYz4+''@;'; put 'put ''Ml18MCk/YzpNKSs0MD4+Ml0pKSxhW2wrNTk2Pj4yXT03LGI9bCs2MDR8MCxrPTB8ZGkoMHxjcigwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pKSxBPTcsZj0wO2U6Zm9yKDs7KXtmb3IoOzspe2lmKCEoZj0wfE5zKGssMixmKSkpYnJlYWsgZTtpZighKDB8WmkobT0wfGFbKHA9''@;'; put 'put ''Zis4fDApPj4yXSwxMTE0NTUpKSl7RD01O2JyZWFrfWlmKCEoMHxaaShtLDExMTQ2NCkpKXtEPTc7YnJlYWt9aWYoMHxaaShtLDExMTQ3MykpYnJlYWs7Z3Uodyw2LDB8SG8oYyxmKSl9NT09KDB8RCk/KEQ9MCxndSh3LDIsMHxIbyhjLGYpKSk6Nz09KDB8RCkmJihEPTAsZ3Uodyw1LDB8SG8o''@;'; put 'put ''YyxmKSkpLGd1KGIsQSwwfGFbcD4+Ml0pLGd1KGIsQSsxfDAsMHxIbyhjLGYpKSxBPUErMnwwfWFbbCs2MDg+PjJdPUEsKChmPTB8c2koMHxjcigwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pLDIsMTQxMDU1LDApKXx8MHwoZj0wfHNpKDB8Y3IoMHxhWygyPT0oMyZhW2M+PjJd''@;'; put 'put ''fDApP2M6TSkrNDA+PjJdKSwyLDExMTQ3NywwKSkpJiYoRD0xMyksMTM9PSgwfEQpJiYoYVtsKzU4OD4+Ml09MHxtMigwfEhvKGMsZiksYykpfWZ1bmN0aW9uIFU4KGwsYyxmKXt2YXIgQSxwPTAsbT0wO2ZvcihBPTB8ZnVuY3Rpb24gXzMobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwO3Jl''@;'; put 'put ''dHVybiBwPTB8UW4oMTIpLGM9Yz8wfHJhKGMpOjAsYVtwKzQ+PjJdPWMsYVtwKzg+PjJdPTB8cmEoZiksYVtwPj4yXT1hWyhmPWwrMTAwfDApPj4yXSxhW2Y+PjJdPXAsMHxwfShsfD0wLGN8PTAsMHxhWyhmfD0wKT4+Ml0pLGY9MHxhW2YrND4+Ml07bT0wfGFbZis0Pj4yXTspe2ZvcihjPTA7''@;'; put 'put ''cD0wfGFbbSsoMjAqY3wwKSs0Pj4yXTspR0cobCwwfGFbZj4+Ml0scCwwfGFbbSsoMjAqY3wwKSs4Pj4yXSxBLG0rKDIwKmN8MCl8MCksYz1jKzF8MDtmPWYrOHwwfX1mdW5jdGlvbiBmRShsLGMsZil7bHw9MCxjfD0wO3ZhciBMZSxIZSxWZSxxZSxydCxXZSxhdCxTdCxrdCxzdCxFdCxadCxj''@;'; put 'put ''dCxidCxhbixTbixIbixwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsUmU9MDtIbj1sZSxsZT1sZSs0NjR8MCxidD1Ibis0MTZ8MCxTbj1Ibis0MDB8MCxFdD1IbiszODR8MCxNPUhuKzM1MnwwLEQ9SG4rMzIwfDAsUj1Ibisy''@;'; put 'put ''ODh8MCxHPUhuKzI1NnwwLHBlPUhuKzIyNHwwLGdlPUhuKzE5MnwwLGJlPUhuKzE2MHwwLE9lPUhuKzEyOHwwLExlPUhuKzk2fDAsSGU9SG4rNjR8MCxWZT1IbiszMnwwLFp0PUhuLHJ0PS4xMjUqKDIqKHA9K19bKHFlPTB8YVszMisoZnw9MCk+PjJdKT4+M10pKyArX1soYXQ9ZisxNnwwKT4+''@;'; put 'put ''M10pLGFuPS41KigyKitfWyhTdD1xZSs4fDApPj4zXSsodz0rX1soY3Q9ZisyNHwwKT4+M10pKSxxZXx8UHIoMTExNTMzLDExMTU0Myw0NDUsMTExNTUzKSxBPShtPWJ0KSszNnwwO2Rve2FbbT4+Ml09MCxtPW0rNHwwfXdoaWxlKCgwfG0pPCgwfEEpKTtfWyhXZT1xZSsxNnwwKT4+M109K19b''@;'; put 'put ''Zj4+M10tcCxfWyhzdD1xZSsyNHwwKT4+M109dysgK19bKGt0PWYrOHwwKT4+M10sd2MoTSxjLGYsYnQpLGI9MHxhW00+PjJdLG09MHxhW00rND4+Ml0scD0rX1tNKzg+PjNdLGFbU24+PjJdPWFbKE09TSsxNnwwKT4+Ml0sYVtTbis0Pj4yXT1hW00rND4+Ml0sYVtTbis4Pj4yXT1hW00rOD4+''@;'; put 'put ''Ml0sYVtTbisxMj4+Ml09YVtNKzEyPj4yXTtlOmRve2lmKGIpe2lmKF9bc3Q+PjNdPStfW2t0Pj4zXSx3YyhELGMsZixidCksQT0wfGFbRD4+Ml0sTT0wfGFbRCs0Pj4yXSx3PStfW0QrOD4+M10sYVtFdD4+Ml09YVsoRD1EKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbRCs0Pj4yXSxhW0V0Kzg+''@;'; put 'put ''PjJdPWFbRCs4Pj4yXSxhW0V0KzEyPj4yXT1hW0QrMTI+PjJdLCFBKXthW2w+PjJdPTAsYVtsKzQ+PjJdPU0sX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJd''@;'; put 'put ''O2JyZWFrfWlmKHc8cD8oYVtTbj4+Ml09YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxtPU0scD13KTpBPWIsX1tzdD4+M109K19ba3Q+PjNdLStfW1N0Pj4zXSx3YyhSLGMsZixidCksTT0wfGFbUj4+''@;'; put 'put ''Ml0sYj0wfGFbUis0Pj4yXSx3PStfW1IrOD4+M10sYVtFdD4+Ml09YVsoUj1SKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbUis0Pj4yXSxhW0V0Kzg+PjJdPWFbUis4Pj4yXSxhW0V0KzEyPj4yXT1hW1IrMTI+PjJdLCFNKXthW2w+PjJdPTAsYVtsKzQ+PjJdPWIsX1tsKzg+PjNdPXcsYVsobD1s''@;'; put 'put ''KzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrfWlmKHc8cD8oYVtTbj4+Ml09YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1Nu''@;'; put 'put ''KzEyPj4yXT1hW0V0KzEyPj4yXSxtPWIscD13KTpNPUEsX1tXZT4+M109K19bZj4+M10sX1tzdD4+M109K19bY3Q+PjNdKyArX1trdD4+M10sd2MoRyxjLGYsYnQpLEE9MHxhW0c+PjJdLGI9MHxhW0crND4+Ml0sdz0rX1tHKzg+PjNdLGFbRXQ+PjJdPWFbKEc9RysxNnwwKT4+Ml0sYVtFdCs0''@;'; put 'put ''Pj4yXT1hW0crND4+Ml0sYVtFdCs4Pj4yXT1hW0crOD4+Ml0sYVtFdCsxMj4+Ml09YVtHKzEyPj4yXSwhQSl7YVtsPj4yXT0wLGFbbCs0Pj4yXT1iLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0s''@;'; put 'put ''YVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVha31pZih3PHAmJihhW1NuPj4yXT1hW0V0Pj4yXSxhW1NuKzQ+PjJdPWFbRXQrND4+Ml0sYVtTbis4Pj4yXT1hW0V0Kzg+PjJdLGFbU24rMTI+PjJdPWFbRXQrMTI+PjJdLE09QSxtPWIscD13KSxfW3N0Pj4zXT0rX1trdD4+M10tK19bU3Q+PjNd''@;'; put 'put ''LHdjKHBlLGMsZixidCksQT0wfGFbcGU+PjJdLGI9MHxhW3BlKzQ+PjJdLHc9K19bcGUrOD4+M10sYVtFdD4+Ml09YVsocGU9cGUrMTZ8MCk+PjJdLGFbRXQrND4+Ml09YVtwZSs0Pj4yXSxhW0V0Kzg+PjJdPWFbcGUrOD4+Ml0sYVtFdCsxMj4+Ml09YVtwZSsxMj4+Ml0sIUEpe2FbbD4+Ml09''@;'; put 'put ''MCxhW2wrND4+Ml09YixfW2wrOD4+M109dyxhWyhsPWwrMTZ8MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4yXT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWt9aWYodzxwJiYoYVtTbj4+Ml09YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0''@;'; put 'put ''KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxNPUEsbT1iLHA9dyksX1tXZT4+M109K19bYXQ+PjNdKyArX1tmPj4zXSxfW3N0Pj4zXT0rX1tjdD4+M10rICtfW2t0Pj4zXSx3YyhnZSxjLGYsYnQpLEE9MHxhW2dlPj4yXSxiPTB8YVtnZSs0Pj4y''@;'; put 'put ''XSx3PStfW2dlKzg+PjNdLGFbRXQ+PjJdPWFbKGdlPWdlKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbZ2UrND4+Ml0sYVtFdCs4Pj4yXT1hW2dlKzg+PjJdLGFbRXQrMTI+PjJdPWFbZ2UrMTI+PjJdLCFBKXthW2w+PjJdPTAsYVtsKzQ+PjJdPWIsX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4y''@;'; put 'put ''XT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFrfWlmKHc8cCYmKGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09''@;'; put 'put ''YVtFdCsxMj4+Ml0sTT1BLG09YixwPXcpLF9bc3Q+PjNdPStfW2t0Pj4zXSx3YyhiZSxjLGYsYnQpLEE9MHxhW2JlPj4yXSxiPTB8YVtiZSs0Pj4yXSx3PStfW2JlKzg+PjNdLGFbRXQ+PjJdPWFbKGJlPWJlKzE2fDApPj4yXSxhW0V0KzQ+PjJdPWFbYmUrND4+Ml0sYVtFdCs4Pj4yXT1hW2Jl''@;'; put 'put ''Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYmUrMTI+PjJdLCFBKXthW2w+PjJdPTAsYVtsKzQ+PjJdPWIsX1tsKzg+PjNdPXcsYVsobD1sKzE2fDApPj4yXT1hW0V0Pj4yXSxhW2wrND4+Ml09YVtFdCs0Pj4yXSxhW2wrOD4+Ml09YVtFdCs4Pj4yXSxhW2wrMTI+PjJdPWFbRXQrMTI+PjJdO2JyZWFr''@;'; put 'put ''fWlmKHc8cCYmKGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sTT1BLG09YixwPXcpLF9bc3Q+PjNdPStfW2t0Pj4zXS0rX1tTdD4+M10sd2MoT2UsYyxmLGJ0KSxBPTB8YVtPZT4+Ml0s''@;'; put 'put ''Yj0wfGFbT2UrND4+Ml0sdz0rX1tPZSs4Pj4zXSxhW0V0Pj4yXT1hWyhPZT1PZSsxNnwwKT4+Ml0sYVtFdCs0Pj4yXT1hW09lKzQ+PjJdLGFbRXQrOD4+Ml09YVtPZSs4Pj4yXSxhW0V0KzEyPj4yXT1hW09lKzEyPj4yXSwhQSl7YVtsPj4yXT0wLGFbbCs0Pj4yXT1iLF9bbCs4Pj4zXT13LGFb''@;'; put 'put ''KGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVha313PHA/KGFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtT''@;'; put 'put ''bisxMj4+Ml09YVtFdCsxMj4+Ml0sbT1iLHA9dyk6QT1NLGI9MD09KDB8YVtidCsyOD4+Ml0pO2Rve2lmKDB8YVtidCsyND4+Ml0pUmU9Yj8zODo0NjtlbHNlIGlmKGIpe2lmKDB8YVtidCszMj4+Ml0pe1JlPTM4O2JyZWFrfTA9PSgwfGFbYnQrMTI+PjJdKSYwPT0oMHxhW2J0Pj4yXSl8fChS''@;'; put 'put ''ZT0zOCl9ZWxzZSBSZT00Nn13aGlsZSgwKTt0OmRve2lmKDM4PT0oMHxSZSkpe2lmKCEoMHxhW2J0KzMyPj4yXSkpe19bV2U+PjNdPStfW2Y+PjNdLStfW3FlPj4zXSxHPUxlKzR8MCxwZT1MZSs4fDAsZ2U9TGUrMTZ8MCxNPXN0LGI9a3Qsdz0rX1tjdD4+M107bjpmb3IoOzspe2Zvcig7Oyl7''@;'; put 'put ''aWYoX1tNPj4zXT0rX1tiPj4zXSt3LCEoK19bV2U+PjNdPD0rX1thdD4+M10rICtfW2Y+PjNdKSl7UmU9NDY7YnJlYWsgdH1pZih3YyhMZSxjLGYsYnQpLEQ9MHxhW0xlPj4yXSxSPTB8YVtHPj4yXSxrPStfW3BlPj4zXSxhW0V0Pj4yXT1hW2dlPj4yXSxhW0V0KzQ+PjJdPWFbZ2UrND4+Ml0s''@;'; put 'put ''YVtFdCs4Pj4yXT1hW2dlKzg+PjJdLGFbRXQrMTI+PjJdPWFbZ2UrMTI+PjJdLCFEKWJyZWFrIG47aWYoazxwKWJyZWFrO009V2UsYj1XZSx3PXJ0fWFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsx''@;'; put 'put ''Mj4+Ml0sTT1XZSxiPVdlLHc9cnQsQT1ELG09UixwPWt9YVtsPj4yXT0wLGFbbCs0Pj4yXT1SLF9bbCs4Pj4zXT1rLGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVhayBl''@;'; put 'put ''fVJlPTQ2fX13aGlsZSgwKTt0OmRve2lmKDQ2PT0oMHxSZSkmJjA9PSgwfGFbYnQrMTI+PjJdKSYwPT0oMHxhW2J0Pj4yXSkpe2ZvcihfW1dlPj4zXT0rX1tmPj4zXS0rX1txZT4+M10sRD1IZSs0fDAsUj1IZSs4fDAsRz1IZSsxNnwwLHc9az0rX1trdD4+M10saz0rX1tjdD4+M10razs7KXtp''@;'; put 'put ''ZihfW3N0Pj4zXT1rLCEoaz49dy0rX1tTdD4+M10pKWJyZWFrIHQ7aWYod2MoSGUsYyxmLGJ0KSxiPTB8YVtIZT4+Ml0sTT0wfGFbRD4+Ml0sdz0rX1tSPj4zXSxhW0V0Pj4yXT1hW0c+PjJdLGFbRXQrND4+Ml09YVtHKzQ+PjJdLGFbRXQrOD4+Ml09YVtHKzg+PjJdLGFbRXQrMTI+PjJdPWFb''@;'; put 'put ''RysxMj4+Ml0sIWIpYnJlYWs7dzxwJiYoYVtTbj4+Ml09YVtFdD4+Ml0sYVtTbis0Pj4yXT1hW0V0KzQ+PjJdLGFbU24rOD4+Ml09YVtFdCs4Pj4yXSxhW1NuKzEyPj4yXT1hW0V0KzEyPj4yXSxBPWIsbT1NLHA9dyksdz0rX1trdD4+M10saz0rX1tzdD4+M10tYW59YVtsPj4yXT0wLGFbbCs0''@;'; put 'put ''Pj4yXT1NLF9bbCs4Pj4zXT13LGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVhayBlfX13aGlsZSgwKTtfW1dlPj4zXT1rPStfW2F0Pj4zXSsodz0rX1tmPj4zXSksX1tz''@;'; put 'put ''dD4+M109K19ba3Q+PjNdLShxPStfW1N0Pj4zXSksYj0wfGFbYnQrND4+Ml07ZG97aWYoMHxhW2J0Kzg+PjJdKU09MHxhW2J0Pj4yXSxSZT01OTtlbHNle2lmKCEoMD09KDB8YikmMD09KDB8KE09MHxhW2J0Pj4yXSkpKSl7UmU9NTk7YnJlYWt9aWYoMHxhW2J0KzIwPj4yXSl7Yj0wLE09MCxS''@;'; put 'put ''ZT01OTticmVha30wfGFbYnQrMzI+PjJdJiYoYj0wLE09MCxSZT01OSl9fXdoaWxlKDApO3Q6ZG97aWYoNTk9PSgwfFJlKSl7bjpkb3tpZigwPT0oMHxiKSYwPT0oMHxNKSl7X1tXZT4+M109ayxHPVZlKzR8MCxwZT1WZSs4fDAsZ2U9VmUrMTZ8MCxNPXN0LGI9a3Qsdz1xO3I6Zm9yKDs7KXtm''@;'; put 'put ''b3IoOzspe2lmKF9bTT4+M109K19bYj4+M10tdywhKCtfW1dlPj4zXT49KHc9K19bZj4+M10pLStfW3FlPj4zXSkpYnJlYWsgbjtpZih3YyhWZSxjLGYsYnQpLEQ9MHxhW1ZlPj4yXSxSPTB8YVtHPj4yXSxrPStfW3BlPj4zXSxhW0V0Pj4yXT1hW2dlPj4yXSxhW0V0KzQ+PjJdPWFbZ2UrND4+''@;'; put 'put ''Ml0sYVtFdCs4Pj4yXT1hW2dlKzg+PjJdLGFbRXQrMTI+PjJdPWFbZ2UrMTI+PjJdLCFEKWJyZWFrIHI7aWYoazxwKWJyZWFrO009V2UsYj1XZSx3PXJ0fWFbU24+PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtF''@;'; put 'put ''dCsxMj4+Ml0sTT1XZSxiPVdlLHc9cnQsQT1ELG09UixwPWt9YVtsPj4yXT0wLGFbbCs0Pj4yXT1SLF9bbCs4Pj4zXT1rLGFbKGw9bCsxNnwwKT4+Ml09YVtFdD4+Ml0sYVtsKzQ+PjJdPWFbRXQrND4+Ml0sYVtsKzg+PjJdPWFbRXQrOD4+Ml0sYVtsKzEyPj4yXT1hW0V0KzEyPj4yXTticmVh''@;'; put 'put ''ayBlfX13aGlsZSgwKTtpZigwfGFbYnQrMjA+PjJdfHwwfGFbYnQrMzI+PjJdKWJyZWFrO2ZvcihfW1dlPj4zXT0rX1thdD4+M10rdyxEPVp0KzR8MCxSPVp0Kzh8MCxHPVp0KzE2fDAsaz13PStfW2t0Pj4zXSx3LT0rX1tTdD4+M107Oyl7aWYoX1tzdD4+M109dywhKHc8PStfW2N0Pj4zXStr''@;'; put 'put ''KSlicmVhayB0O2lmKHdjKFp0LGMsZixidCksYj0wfGFbWnQ+PjJdLE09MHxhW0Q+PjJdLHc9K19bUj4+M10sYVtFdD4+Ml09YVtHPj4yXSxhW0V0KzQ+PjJdPWFbRys0Pj4yXSxhW0V0Kzg+PjJdPWFbRys4Pj4yXSxhW0V0KzEyPj4yXT1hW0crMTI+PjJdLCFiKWJyZWFrO3c8cCYmKGFbU24+''@;'; put 'put ''PjJdPWFbRXQ+PjJdLGFbU24rND4+Ml09YVtFdCs0Pj4yXSxhW1NuKzg+PjJdPWFbRXQrOD4+Ml0sYVtTbisxMj4+Ml09YVtFdCsxMj4+Ml0sQT1iLG09TSxwPXcpLGs9K19ba3Q+PjNdLHc9K19bc3Q+PjNdK2FufWFbbD4+Ml09MCxhW2wrND4+Ml09TSxfW2wrOD4+M109dyxhWyhsPWwrMTZ8''@;'; put 'put ''MCk+PjJdPWFbRXQ+PjJdLGFbbCs0Pj4yXT1hW0V0KzQ+PjJdLGFbbCs4Pj4yXT1hW0V0Kzg+PjJdLGFbbCsxMj4+Ml09YVtFdCsxMj4+Ml07YnJlYWsgZX19d2hpbGUoMCk7YVtsPj4yXT1BLGFbbCs0Pj4yXT1tLF9bbCs4Pj4zXT1wLGFbKGw9bCsxNnwwKT4+Ml09YVtTbj4+Ml0sYVtsKzQ+''@;'; put 'put ''PjJdPWFbU24rND4+Ml0sYVtsKzg+PjJdPWFbU24rOD4+Ml0sYVtsKzEyPj4yXT1hW1NuKzEyPj4yXX1lbHNlIGFbbD4+Ml09MCxhW2wrND4+Ml09bSxfW2wrOD4+M109cCxsPWwrMTZ8MCxhW2w+PjJdPWFbU24+PjJdLGFbbCs0Pj4yXT1hW1NuKzQ+PjJdLGFbbCs4Pj4yXT1hW1NuKzg+PjJd''@;'; put 'put ''LGFbbCsxMj4+Ml09YVtTbisxMj4+Ml19d2hpbGUoMCk7bGU9SG59ZnVuY3Rpb24gd2MobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIFIsRyxnZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAscT0wLHBlPTA7Zm9yKGdlPWxlLGxlPWxlKzQ4fDAsRz1nZSszMnwwLHBlPWdlKzE2fDAs''@;'; put 'put ''Uj1nZSwobT0wfGFbMzIrKGZ8PTApPj4yXSl8fFByKDExMTUzMywxMTE1NDMsMzgyLDExMTU2MiksYVtSPj4yXT1hWyhEPW0rMTZ8MCk+PjJdLGFbUis0Pj4yXT1hW0QrND4+Ml0sYVtSKzg+PjJdPWFbRCs4Pj4yXSxhW1IrMTI+PjJdPWFbRCsxMj4+Ml0sRD1jKzR8MCxrPTAsbT0wOyEoKDB8''@;'; put 'put ''ayk+PSgwfGFbRD4+Ml0pKTspe2I9KHc9MHxhW2M+PjJdKSsoNDAqa3wwKXwwO2Rve2lmKCgwfGIpIT0oMHxmKSl7aWYoK19bdysoNDAqa3wwKSsxNj4+M10+MCYmK19bdysoNDAqa3wwKSsyND4+M10+MClicmVhazttPW0rKDAhPSgwfFI0KGYsYikpJjEpfDB9fXdoaWxlKDApO2s9aysxfDB9''@;'; put 'put ''aWYoVGgoZixHKSxrPTB8TjQoaz0wfGFbYysyND4+Ml0sMHxhW2s+PjJdLEcpKXtmb3IoYj1rLEE9MDtiOykoMHwodz0wfGFbMTYrKDB8YVtiKzQ+PjJdKT4+Ml0pKSE9KDB8ZikmJihBZih3LHBlKSwoTT0rQzMoRyxwZSkpPjAmJihtPW0rMXwwLEE9K0o4KGYsdyxHLE0scCkrQSksMCE9KDB8''@;'; put 'put ''KGM9MHxhW3crMzI+PjJdKSkmJjAhPSgwfGZlW2MrMzY+PjBdKSYmKFRoKHcscGUpLChxPStDMyhHLHBlKSk+MCkmJihtPW0rMXwwLEE9K2pSKGYsdyxHLHEscCkrQSkpLGI9MHxhW2I+PjJdOyhmdW5jdGlvbiB6OShsKXtsfD0wO3ZhciBjPTA7ZG97Yz1sLGw9MHxhW2w+PjJdLEZ0KGMpfXdo''@;'; put 'put ''aWxlKDAhPSgwfGwpKX0pKGspLGFbbD4+Ml09bSxfW2wrOD4+M109QSxhWyhwZT1sKzE2fDApPj4yXT1hW1I+PjJdLGFbcGUrND4+Ml09YVtSKzQ+PjJdLGFbcGUrOD4+Ml09YVtSKzg+PjJdLGFbcGUrMTI+PjJdPWFbUisxMj4+Ml19ZWxzZSBhW2w+PjJdPW0sX1tsKzg+PjNdPTAsYVsocGU9''@;'; put 'put ''bCsxNnwwKT4+Ml09YVtSPj4yXSxhW3BlKzQ+PjJdPWFbUis0Pj4yXSxhW3BlKzg+PjJdPWFbUis4Pj4yXSxhW3BlKzEyPj4yXT1hW1IrMTI+PjJdO2xlPWdlfWZ1bmN0aW9uIFI0KGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4gbD0wfGFbMzIrKGx8PTApPj4yXSwwPT0rX1sxNiso''@;'; put 'put ''Y3w9MCk+PjNdJiYwPT0rX1tjKzI0Pj4zXT8wfChsPTAhPSgwfGwpJiYoZj0rX1tjPj4zXSk+KHA9K19bbCsxNj4+M10pJiZmPCtfW2w+PjNdK3AmJihtPStfW2MrOD4+M10pPihBPStfW2wrMjQ+PjNdKT9tPCtfW2wrOD4+M10rQSYxOjApOihQcigxMTE1OTksMTExNTQzLDIxOSwxMTE2MzYp''@;'; put 'put ''LDApfWZ1bmN0aW9uIFRoKGwsYyl7dmFyIGYscDthWyhjfD0wKT4+Ml09fn4ocD0rX1sxNisobD0wfGFbMzIrKGx8PTApPj4yXSk+PjNdKSxhW2MrND4+Ml09fn4oZj0rX1tsKzI0Pj4zXSksYVtjKzg+PjJdPX5+KCtfW2w+PjNdK3ApLGFbYysxMj4+Ml09fn4oK19bbCs4Pj4zXStmKX1mdW5j''@;'; put 'put ''dGlvbiBBZihsLGMpe3ZhciBmLHA7YVsoY3w9MCk+PjJdPX5+KHA9K19bKGx8PTApPj4zXSksYVtjKzQ+PjJdPX5+KGY9K19bbCs4Pj4zXSksYVtjKzg+PjJdPX5+KCtfW2wrMTY+PjNdK3ApLGFbYysxMj4+Ml09fn4oK19bbCsyND4+M10rZil9ZnVuY3Rpb24gQzMobCxjKXt2YXIgYixrLHA9''@;'; put 'put ''MCxtPTAsQT0wLHc9MCxNPTAsRD0wO3JldHVybisoKDB8KGI9MHxhWzgrKGx8PTApPj4yXSkpPj0oMHwoaz0wfGFbKGN8PTApPj4yXSkpJiYoMHwoTT0wfGFbbD4+Ml0pKTw9KDB8KEQ9MHxhW2MrOD4+Ml0pKSYmKDB8KHA9MHxhW2wrMTI+PjJdKSk+PSgwfChtPTB8YVtjKzQ+PjJdKSkmJigw''@;'; put 'put ''fChBPTB8YVtsKzQ+PjJdKSk8PSgwfCh3PTB8YVtjKzEyPj4yXSkpPygrKDB8YVsoKDB8cCk8KDB8dyk/bDpjKSsxMj4+Ml0pLSsoMHxhWygoMHxBKT4oMHxtKT9sOmMpKzQ+PjJdKSkqKCsoMHxhWygoMHxiKTwoMHxEKT9sOmMpKzg+PjJdKS0rKDB8YVsoKDB8TSk+KDB8ayk/bDpjKT4+Ml0p''@;'; put 'put ''KTowKX1mdW5jdGlvbiBKOChsLGMsZixwLG0pe2Z8PTAscD0rcCxtfD0wO3ZhciBiLGssQT0wLHc9MDtyZXR1cm4gaz1sZSxsZT1sZSsxNnwwLGI9ayxsPTB8aEUobHw9MCxjfD0wKSwobD0wfGFbKG09bSsoKCgwfGwpPDA/NTpsKTw8Mil8MCk+PjJdKT8oQWYobCxiKSxBPShBPStDMyhmLGIp''@;'; put 'put ''KT5wP0E6MCwwIT0oMHxhWzMyKyhsPTB8YVttPj4yXSk+PjJdKSYmKFRoKGwsYiksKHc9K0MzKGYsYikpPnApJiYoQT13PkE/dzpBKSxBPjB8fChhW20+PjJdPWMsQT1wKSk6KGFbbT4+Ml09YyxBPXApLGxlPWssK0F9ZnVuY3Rpb24galIobCxjLGYscCxtKXtmfD0wLHA9K3AsbXw9MDt2YXIg''@;'; put 'put ''YixrLEE9MCx3PTA7cmV0dXJuIGs9bGUsbGU9bGUrMTZ8MCxiPWssbD0wfGhFKGx8PTAsY3w9MCksKGw9MHxhWyhtPW0rKCgoMHxsKTwwPzU6bCk8PDIpfDApPj4yXSk/KEFmKGwsYiksQT0oQT0rQzMoZixiKSk+cD9BOjAsMCE9KDB8YVszMisobD0wfGFbbT4+Ml0pPj4yXSkmJihUaChsLGIp''@;'; put 'put ''LCh3PStDMyhmLGIpKT5wKSYmKEE9dz5BP3c6QSksQT4wfHwoYVttPj4yXT1jLEE9cCkpOihhW20+PjJdPWMsQT1wKSxsZT1rLCtBfWZ1bmN0aW9uIGhFKGwsYyl7dmFyIHAsZj0wLG09MCxBPTAsdz0wLGI9MDsoMHwoZj0wfGFbMzIrKGx8PTApPj4yXSkpPT0oMHwocD0wfGFbMzIrKGN8PTAp''@;'; put 'put ''Pj4yXSkpJiZQcigxMTE1NzgsMTExNTQzLDI3NiwxMTE1ODgpO2Rve2lmKDAhPSgwfGZlW2YrMzY+PjBdKSYmMCE9KDB8ZmVbcCszNj4+MF0pKXtpZigwPT0odz0rX1tsPj4zXSkmJjA9PStfW2wrOD4+M10pe2Y9LTE7YnJlYWt9aWYoMD09KGI9K19bYz4+M10pJjA9PShBPStfW2MrOD4+M10p''@;'; put 'put ''KWY9LTE7ZWxzZXtpZihBPChtPStfW2wrOD4+M10pKXtpZihiPHcpe2Y9MDticmVha31mPWI+dz8yOjE7YnJlYWt9aWYoZj1iPHcsQT5tKXtpZihmKXtmPTY7YnJlYWt9Zj1iPnc/ODo3O2JyZWFrfWY9Zj8zOmI+dz81Oi0xfX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlv''@;'; put 'put ''biBrMyhsLGMpe2x8PTA7dmFyIEEsdyxiLGssTSxmPTAscD0wLG09MDtpZigoZj0wfGFbMzIrKGN8PTApPj4yXSk/KHA9K19bZj4+M10sbT0rX1tmKzg+PjNdKToocD0wLG09MCksaz1+fitjZigrKChNPStfW2M+PjNdKS1wKSksYj1+fitjZigrKChBPStfW2MrOD4+M10pLW0pKSwyMTQ3NDgz''@;'; put 'put ''NjQ3PT0oMHwodz1+fitJdSgrKE0rcCsgK19bYysxNj4+M10pKSkpJiZQcigxMTE2NzYsMTExNTQzLDI2NCwxMTE3MDMpLDIxNDc0ODM2NDchPSgwfChmPX5+K0l1KCsoQSttKyArX1tjKzI0Pj4zXSkpKSkpcmV0dXJuIGFbbD4+Ml09ayxhW2wrND4+Ml09YixhW2wrOD4+Ml09dyx2b2lkKGFb''@;'; put 'put ''bCsxMj4+Ml09Zik7UHIoMTExNzEzLDExMTU0MywyNjYsMTExNzAzKX1mdW5jdGlvbiBDYihsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihtPTAscD0wfGFbKGx8PTApPj4yXSxmPTB8YVtsKzQ+PjJdO2w9YystMXwwLCEoKDB8Yyk8PTApOylBPShjPWY+Pj5sJjEp''@;'; put 'put ''LTF8MCxtPShiPXA+Pj5sJjEpPDwxfG08PDJ8Yl5jLGM9bCxwPSh3PUEmKHBeZikpXnBeKEEmPTAtYiksZj13XmZeQTtyZXR1cm4gMHxtfWZ1bmN0aW9uIHZtKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7aWYoKGM9MHxVbyhsfD0wKSk+Pj4wPj0oMHxhWzQ3MzY1XSk+Pj4wPyhhWzQ3MzY1XT1j''@;'; put 'put ''PWMrMTF8MCxjPTB8VjAoMHxhWzQ3MzY2XSxjKSxhWzQ3MzY2XT1jLGM/Zj00OmM9MCk6KGM9MHxhWzQ3MzY2XSxmPTQpLDQ9PSgwfGYpKXtmb3IobT1jOyhmPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KTB8UXVlKHA9MjU1JmYpJiYoZj0yNTUmKDB8Q3AocCkpKSxmZVttPj4wXT1mLG09bSsxfDAs''@;'; put 'put ''bD1sKzF8MDtmZVttPj4wXT0wfXJldHVybiAwfGN9ZnVuY3Rpb24gUzMobCxjLGYpe2x8PTA7dmFyIE0sRCxxLHBlLGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLGF0LFN0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLFI9MCxHPTAsZ2U9MCxrdD0wO2ZvcihTdD1sZSxsZT1sZSsxNDR8MCxx''@;'; put 'put ''PVN0Kzk2fDAsRD1TdCs4MHwwLGJlPVN0KzEyNHwwLHBlPVN0KzcyfDAsT2U9U3QrNjR8MCxMZT1TdCs1NnwwLHJ0PVN0KzQ4fDAsV2U9U3QrNDB8MCxhdD1TdCszMnwwLFJlPVN0KzI0fDAsSGU9U3QrMTZ8MCxWZT1TdCs4fDAscWU9U3QsbT1TdCsxMjB8MCxiPVN0KzExNnwwLGs9U3QrMTEy''@;'; put 'put ''fDAsTT1TdCsxMDh8MCxhWzMyKyhjfD0wKT4+Ml09Znw9MCxHPWw7MzI9PSgwfGZlW0c+PjBdKTspRz1HKzF8MDthW00+PjJdPTI1NSxsPTB8ZmVbRz4+MF07ZTpkb3tpZihsPDwyND4+MjQ9PTM1KXtpZihhW0Q+PjJdPW0sYVtEKzQ+PjJdPWIsYVtEKzg+PjJdPWssYVtEKzEyPj4yXT1NLCgw''@;'; put 'put ''fGlsKEcsMTExNzU1LEQpKTw9Mil7bD0wfGZlW0c+PjBdLFI9MTI7YnJlYWt9c3dpdGNoKDB8Zil7Y2FzZSAwOl9bcnQ+PjNdPWt0PS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbbT4+Ml0pPj4+MCksX1tXZT4+M109cD0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW2I+PjJdKT4+PjApLF9b''@;'; put 'put ''YXQ+PjNdPUE9LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVtrPj4yXSk+Pj4wKSx3PS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbTT4+Ml0pPj4+MCksWlIoa3QscCxBLHBlLE9lLExlKSxfW2M+PjNdPStfW3BlPj4zXSxfW2MrOD4+M109K19bT2U+PjNdLF9bYysxNj4+M109K19bTGU+PjNd''@;'; put 'put ''LF9bYysyND4+M109dyxsPTA7YnJlYWsgZTtjYXNlIDE6ZmVbYz4+MF09YVttPj4yXSxmZVtjKzE+PjBdPWFbYj4+Ml0sZmVbYysyPj4wXT1hW2s+PjJdLGZlW2MrMz4+MF09YVtNPj4yXSxsPTA7YnJlYWsgZTtjYXNlIDM6X1tydD4+M109QT0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW20+''@;'; put 'put ''PjJdKT4+PjApLF9bV2U+PjNdPXc9LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVtiPj4yXSk+Pj4wKSxfW2F0Pj4zXT1rdD0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW2s+PjJdKT4+PjApLGg2KEEsdyxrdCxSZSxIZSxWZSxxZSksZmVbYz4+MF09MjU1Kn5+K19bUmU+PjNdLGZlW2MrMT4+''@;'; put 'put ''MF09MjU1Kn5+K19bSGU+PjNdLGZlW2MrMj4+MF09MjU1Kn5+K19bVmU+PjNdLGZlW2MrMz4+MF09MjU1Kn5+K19bcWU+PjNdLGw9MDticmVhayBlO2Nhc2UgMjphW2M+PjJdPSgoNjU1MzUqKDB8YVttPj4yXSl8MCk+Pj4wKS8yNTV8MCxhW2MrND4+Ml09KCg2NTUzNSooMHxhW2I+PjJdKXww''@;'; put 'put ''KT4+PjApLzI1NXwwLGFbYys4Pj4yXT0oKDY1NTM1KigwfGFbaz4+Ml0pfDApPj4+MCkvMjU1fDAsYVtjKzEyPj4yXT0oKDY1NTM1KigwfGFbTT4+Ml0pfDApPj4+MCkvMjU1fDAsbD0wO2JyZWFrIGU7Y2FzZSA0Ol9bYz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVttPj4yXSk+Pj4w''@;'; put 'put ''KSxfW2MrOD4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoKDB8YVtiPj4yXSk+Pj4wKSxfW2MrMTY+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKCgwfGFbaz4+Ml0pPj4+MCksX1tjKzI0Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygoMHxhW00+PjJdKT4+PjApLGw9MDticmVhayBlO2RlZmF1''@;'; put 'put ''bHQ6bD0wO2JyZWFrIGV9fWVsc2UgUj0xMn13aGlsZSgwKTtlOmRve2lmKDEyPT0oMHxSKSl7aWYoIShsPDwyND4+MjQhPTQ2JiYoKDI1NSZsKS00OHwwKT4+PjA+PTEwKSl7aWYoKGw9MHxVbyhHKSk+Pj4wPj0oMHxhWzQ3MzY3XSk+Pj4wKXtpZihhWzQ3MzY3XT1sPWwrMTF8MCxsPTB8VjAo''@;'; put 'put ''MHxhWzQ3MzY4XSxsKSxhWzQ3MzY4XT1sLCFsKXtsPS0xO2JyZWFrfX1lbHNlIGw9MHxhWzQ3MzY4XTtiPWwsbT1HO3Q6Zm9yKDs7KXtzd2l0Y2goaz1tKzF8MCwobT0wfGZlW20+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgdDtjYXNlIDQ0Om09MzJ9ZmVbYj4+MF09bSxiPWIrMXwwLG09''@;'; put 'put ''a31pZihmZVtiPj4wXT0wLGFbcT4+Ml09cGUsYVtxKzQ+PjJdPU9lLGFbcSs4Pj4yXT1MZSwzPT0oMHxpbChsLDExMTc2OSxxKSkpc3dpdGNoKHc9K19bcGU+PjNdLHc9dzwxP3c6MSx3PXc+MD93OjAsX1twZT4+M109dyxBPStfW09lPj4zXSxBPUE8MT9BOjEsQT1BPjA/QTowLF9bT2U+PjNd''@;'; put 'put ''PUEscD0rX1tMZT4+M10scD1wPDE/cDoxLHA9cD4wP3A6MCxfW0xlPj4zXT1wLDB8Zil7Y2FzZSAwOl9bYz4+M109dyxfW2MrOD4+M109QSxfW2MrMTY+PjNdPXAsX1tjKzI0Pj4zXT0xLGw9MDticmVhayBlO2Nhc2UgMTpNMyh3LEEscCxydCxXZSxhdCksZmVbYz4+MF09fn4oMjU1KitfW3J0''@;'; put 'put ''Pj4zXSksZmVbYysxPj4wXT1+figyNTUqK19bV2U+PjNdKSxmZVtjKzI+PjBdPX5+KDI1NSorX1thdD4+M10pLGZlW2MrMz4+MF09LTEsbD0wO2JyZWFrIGU7Y2FzZSAzOk0zKHcsQSxwLHJ0LFdlLGF0KSxoNigrX1tydD4+M10sK19bV2U+PjNdLCtfW2F0Pj4zXSxSZSxIZSxWZSxxZSksZmVb''@;'; put 'put ''Yz4+MF09MjU1Kn5+K19bUmU+PjNdLGZlW2MrMT4+MF09MjU1Kn5+K19bSGU+PjNdLGZlW2MrMj4+MF09MjU1Kn5+K19bVmU+PjNdLGZlW2MrMz4+MF09MjU1Kn5+K19bcWU+PjNdLGw9MDticmVhayBlO2Nhc2UgMjpNMyh3LEEscCxydCxXZSxhdCksYVtjPj4yXT1+fig2NTUzNSorX1tydD4+''@;'; put 'put ''M10pLGFbYys0Pj4yXT1+fig2NTUzNSorX1tXZT4+M10pLGFbYys4Pj4yXT1+fig2NTUzNSorX1thdD4+M10pLGFbYysxMj4+Ml09NjU1MzUsbD0wO2JyZWFrIGU7Y2FzZSA0Ok0zKHcsQSxwLHJ0LFdlLGF0KSxfW2M+PjNdPStfW3J0Pj4zXSxfW2MrOD4+M109K19bV2U+PjNdLF9bYysxNj4+''@;'; put 'put ''M109K19bYXQ+PjNdLF9bYysyND4+M109MSxsPTA7YnJlYWsgZTtkZWZhdWx0Omw9MDticmVhayBlfX1pZihtPTB8RTMoRyksYVtiZT4+Ml09bSxtKXtpZigoMD09KDB8KGw9MHxhWzQ3MzY5XSkpfHwoMHxmZVsoZ2U9MHxhW2w+PjJdKT4+MF0pIT0oMHxmZVttPj4wXSl8fDAhPSgwfFppKGdl''@;'; put 'put ''LG0pKSkmJihsPTB8bncoYmUsMjU5NDgsMjQ5MSwxMiwxMDMpLGFbNDczNjldPWwsIWwpKXN3aXRjaCgwfGYpe2Nhc2UgMDpjYXNlIDQ6YVtjPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2MrMTY+PjJdPTAsYVtjKzIwPj4yXT0wLF9bYysyND4+M109MSxs''@;'; put 'put ''PTE7YnJlYWsgZTtjYXNlIDE6ZmVbYysyPj4wXT0wLGZlW2MrMT4+MF09MCxmZVtjPj4wXT0wLGZlW2MrMz4+MF09LTEsbD0xO2JyZWFrIGU7Y2FzZSAzOmFbYz4+Ml09MCxsPTE7YnJlYWsgZTtjYXNlIDI6YVtjKzg+PjJdPTAsYVtjKzQ+PjJdPTAsYVtjPj4yXT0wLGFbYysxMj4+Ml09NjU1''@;'; put 'put ''MzUsbD0xO2JyZWFrIGU7ZGVmYXVsdDpsPTE7YnJlYWsgZX1zd2l0Y2goMHxmKXtjYXNlIDA6X1tjPj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrND4+MF0pLF9bYys4Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrNT4+MF0pLF9bYysxNj4+M109LjAwMzkyMTU2ODYy''@;'; put 'put ''NzQ1MDk4KisoMHxYdFtsKzY+PjBdKSxfW2MrMjQ+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8WHRbbCsxMD4+MF0pLGw9MDticmVhayBlO2Nhc2UgMTpmZVtjPj4wXT0wfGZlW2wrNz4+MF0sZmVbYysxPj4wXT0wfGZlW2wrOD4+MF0sZmVbYysyPj4wXT0wfGZlW2wrOT4+MF0sZmVbYysz''@;'; put 'put ''Pj4wXT0wfGZlW2wrMTA+PjBdLGw9MDticmVhayBlO2Nhc2UgMzpfW3J0Pj4zXT1BPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8WHRbbCs3Pj4wXSksX1tXZT4+M109dz0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrOD4+MF0pLF9bYXQ+PjNdPWt0PS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8''@;'; put 'put ''WHRbbCs5Pj4wXSksaDYoQSx3LGt0LFJlLEhlLFZlLHFlKSxmZVtjPj4wXT0yNTUqfn4rX1tSZT4+M10sZmVbYysxPj4wXT0yNTUqfn4rX1tIZT4+M10sZmVbYysyPj4wXT0yNTUqfn4rX1tWZT4+M10sZmVbYyszPj4wXT0yNTUqfn4rX1txZT4+M10sbD0wO2JyZWFrIGU7Y2FzZSAyOmFbYz4+''@;'; put 'put ''Ml09MjU3KigwfFh0W2wrNz4+MF0pLGFbYys0Pj4yXT0yNTcqKDB8WHRbbCs4Pj4wXSksYVtjKzg+PjJdPTI1NyooMHxYdFtsKzk+PjBdKSxhW2MrMTI+PjJdPTI1NyooMHxYdFtsKzEwPj4wXSksbD0wO2JyZWFrIGU7Y2FzZSA0Ol9bYz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxYdFts''@;'; put 'put ''Kzc+PjBdKSxfW2MrOD4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMHxYdFtsKzg+PjBdKSxfW2MrMTY+PjNdPS4wMDM5MjE1Njg2Mjc0NTA5OCorKDB8WHRbbCs5Pj4wXSksX1tjKzI0Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygwfFh0W2wrMTA+PjBdKSxsPTA7YnJlYWsgZTtkZWZhdWx0''@;'; put 'put ''Omw9MDticmVhayBlfX1lbHNlIGw9LTF9fXdoaWxlKDApO3JldHVybiBsZT1TdCwwfGx9ZnVuY3Rpb24gWlIobCxjLGYscCxtLEEpe3B8PTAsbXw9MCxBfD0wO3ZhciB3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtpZih3PShiPShSPShSPShjPStjKT4oZj0rZik/YzpmKTwobD0rbCk/bDpSKS0o''@;'; put 'put ''KGI9YzxmP2M6Zik+bD9sOmIpKS9SLFI+MClpZih3PjApe2s9KFItbCkvYixNPShSLWMpL2IsRD0oUi1mKS9iO2Rve2lmKFIhPWwpe2lmKFI9PWMpe2w9aysyLUQ7YnJlYWt9bD1SPT1mP00rNC1rOjB9ZWxzZSBsPShjLWYpL2J9d2hpbGUoMCk7KGwqPTYwKTwwJiYobCs9MzYwKX1lbHNlIGw9''@;'; put 'put ''MDtlbHNlIHc9MCxsPTA7X1twPj4zXT0uMDAyNzc3Nzc3Nzc3Nzc3Nzc4KmwsX1tBPj4zXT1SLF9bbT4+M109d31mdW5jdGlvbiBoNihsLGMsZixwLG0sQSx3KXtjPStjLGY9K2YsbXw9MCxBfD0wLHd8PTAsX1socHw9MCk+PjNdPTEtKGw9K2wpLF9bbT4+M109MS1jLF9bQT4+M109MS1mLF9b''@;'; put 'put ''dz4+M109Zj0oYz0rX1twPj4zXSk8KGY9K19bbT4+M10pP2M6ZixfW3c+PjNdPWY9KGM9K19bQT4+M10pPGY/YzpmLF9bcD4+M109K19bcD4+M10tZixfW20+PjNdPStfW20+PjNdLStfW3c+PjNdLF9bQT4+M109K19bQT4+M10tK19bdz4+M119ZnVuY3Rpb24gTTMobCxjLGYscCxtLEEpe2w9''@;'; put 'put ''K2wsYz0rYyxmPStmLHB8PTAsbXw9MCxBfD0wO3ZhciB3PTAsYj0wLGs9MCxNPTAsRD0wO2U6ZG97aWYoYzw9MCl3PWYsYj1mLGw9ZixNPTg7ZWxzZSBzd2l0Y2goYj1sPj0xPzA6NipsLEQ9fn5iLGItPSsoMHxEKSxsPSgxLWMpKmYsaz0oMS1iKmMpKmYsYz0oMS0oMS1iKSpjKSpmLDB8RCl7''@;'; put 'put ''Y2FzZSAwOnc9bCxiPWMsbD1mLE09ODticmVhayBlO2Nhc2UgMTp3PWwsYj1mLGw9ayxNPTg7YnJlYWsgZTtjYXNlIDI6dz1jLGI9ZixNPTg7YnJlYWsgZTtjYXNlIDM6dz1mLGI9ayxNPTg7YnJlYWsgZTtjYXNlIDQ6dz1mLGI9bCxsPWMsTT04O2JyZWFrIGU7Y2FzZSA1Onc9ayxiPWwsbD1m''@;'; put 'put ''LE09ODticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCk7OD09KDB8TSkmJihfW3A+PjNdPWwsX1ttPj4zXT1iLF9bQT4+M109dyl9ZnVuY3Rpb24gRTMobCl7dmFyIGM9MCxmPTA7aWYoISgoYz0wfGZlWyhsfD0wKT4+MF0pPDwyND4+MjQ9PTk4fHwoZj1sKzF8MCxjPDwyND4+MjQ9''@;'; put 'put ''PTExOXwwPT0oMHxzMihmLDEzNzI2Niw0KSkpfHxjPDwyND4+MjQ9PTEwOHwwPT0oMHxzMihmLDEzNzI3MSw0KSl8fDA9PSgwfHMyKGYsMTM3Mjc2LDgpKSkpe2Rve2lmKGM8PDI0Pj4yND09NDcpaWYoYz0wfCRzKGYsNDcpKXtpZig0NyE9KDB8ZmVbZj4+MF0pKXtsPShmPTA9PSgwfGw0KDEz''@;'; put 'put ''NzI4NSxmLDQpKSk/YysxfDA6bDticmVha31pZigwfChjPTB8YVs0NzM3MF0pJiYwfGZlW2M+PjBdJiYwfGw0KDEzNzI4NSxjLDMpKXtsPTB8a2QoYyxsKzJ8MCk7YnJlYWt9bD1sKzJ8MH1lbHNlIGw9ZjtlbHNlIDAhPSgwfChjPTB8YVs0NzM3MF0pKSYmMCE9KDB8ZmVbYz4+MF0pJiYwIT0o''@;'; put 'put ''MHxsNCgxMzcyODUsYywzKSkmJihsPTB8a2QoYyxsKSl9d2hpbGUoMCk7bD0wfHZtKGwpfXJldHVybiAwfGx9ZnVuY3Rpb24ga2QobCxjKXtjfD0wO3ZhciBwLG0sZj0wLEE9MDtyZXR1cm4gbT1sZSxsZT1sZSsxNnwwLHA9bSxBPTB8VW8obHw9MCksZj0xMysoQT0oMHxVbyhjKSkrQXwwKXww''@;'; put 'put ''LChBKzN8MCk+Pj4wPCgwfGFbNDczNzFdKT4+PjA/Zj0wfGFbNDczNzJdOihhWzQ3MzcxXT1mLGY9MHxWMCgwfGFbNDczNzJdLGYpLGFbNDczNzJdPWYpLGFbcD4+Ml09bCxhW3ArND4+Ml09YyxvbyhmLDEzNzI5MCxwKSxsZT1tLDB8YVs0NzM3Ml19ZnVuY3Rpb24gTDkobCl7YVs0NzM3MF09''@;'; put 'put ''bHw9MH1mdW5jdGlvbiBkRShsLGMsZixwLG0pe3ZhciBBLHc7cmV0dXJuIEE9bGUsbGU9bGUrMjA4fDAsZnVuY3Rpb24gcEUobCxjLGYscCxtLEEsdyl7Zj0rZixwPStwLG09K20sQT0rQSx3PSt3O3ZhciBiLGs7X1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWYsX1soaz1sKzE2fDApPj4z''@;'; put 'put ''XT1wLF9bKGI9bCsyNHwwKT4+M109bSxfW2wrMzI+PjNdPTAsZj0rVWwoKyArRGEoK0EpL20sKyAraGEoK0EpL3ApLF9bbCs1Nj4+M109ZixtPStVbCgrICtEYSgrdykvbSwrICtoYSgrdykvcCksX1tsKzQwPj4zXT0xLF9bbCs0OD4+M109MCxtLT02LjI4MzE4NTMwNzE3OTU4NiorY2YoLjE1''@;'; put 'put ''OTE1NDk0MzA5MTg5NTM1KihtLWYpKSxfW2wrNjQ+PjNdPXctQT4zLjE0MTU5MjY1MzU4OTc5MyZtLWY8My4xNDE1OTI2NTM1ODk3OTM/bSs2LjI4MzE4NTMwNzE3OTU4NjptLGZ1bmN0aW9uIEI0KGwpe3ZhciBmLG0sYz0wLHA9MDtjPStEMCgrKChwPStfWzE2KyhsfD0wKT4+M10pKnAtKGM9''@;'; put 'put ''K19bbCsyND4+M10pKmMpKSxwPWMqK19bbCs0MD4+M10sYyo9K19bbCs0OD4+M10sX1tsKzEwND4+M109KG09K19bbD4+M10pLXAsX1tsKzExMj4+M109KGY9K19bbCs4Pj4zXSktYyxfW2wrMTIwPj4zXT1tK3AsX1tsKzEyOD4+M109ZitjfShsKSxmdW5jdGlvbiB2RShsKXt2YXIgZixtLEEs''@;'; put 'put ''ayxjPTAscD0wLHc9MCxiPTA7cD0rX1sxNisobHw9MCk+PjNdLGs9K2hhKCsoYj0rX1tsKzU2Pj4zXSkpKnAsYz0rX1tsKzI0Pj4zXSxiPStEYSgrYikqYyxwPStoYSgrKHc9K19bbCs2ND4+M10pKSpwLGM9K0RhKCt3KSpjLF9bbCs3Mj4+M109KGY9K19bbCs0MD4+M10pKmsrKHc9K19bbD4+''@;'; put 'put ''M10pLShtPStfW2wrNDg+PjNdKSpiLF9bbCs4MD4+M109bSprKyhBPStfW2wrOD4+M10pK2YqYixfW2wrODg+PjNdPXcrZipwLW0qYyxfW2wrOTY+PjNdPUErbSpwK2YqY30obCksZnVuY3Rpb24gR1IobCl7dmFyIGIsayxNLEQsRyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxSPTA7bT0oTT0r''@;'; put 'put ''X1syNCsobHw9MCk+PjNdKS8oRD0rX1tsKzE2Pj4zXSksRz0rZW8oKyhSPStfW2wrNDg+PjNdKSk8LjEsaz0rX1tsKzQwPj4zXTtkb3tpZihHKXtpZihwPS0oZj0rWmYoKyhjPVIvaykqbSkpLGs8MCl7Yz0rWmYoK2MvbSksbT1wLHA9My4xNDE1OTI2NTM1ODk3OTMtZixmPTQuNzEyMzg4OTgw''@;'; put 'put ''Mzg0NjktYyxjPTEuNTcwNzk2MzI2Nzk0ODk2Ni1jO2JyZWFrfWM9K1pmKCtjL20pLG09LTMuMTQxNTkyNjUzNTg5NzkzLWYsZj0xLjU3MDc5NjMyNjc5NDg5NjYtYyxjPS0xLjU3MDc5NjMyNjc5NDg5NjYtYzticmVha31pZihwPTEuNTcwNzk2MzI2Nzk0ODk2NisoZj0rWmYoKyhjPWsvUikv''@;'; put 'put ''bSkpLFI8MCl7Yz0rWmYoK2MqbSksbT1mKy0xLjU3MDc5NjMyNjc5NDg5NjYsZj1jKzMuMTQxNTkyNjUzNTg5NzkzO2JyZWFrfWM9K1pmKCtjKm0pLG09cCxwPWYrNC43MTIzODg5ODAzODQ2OSxmPWMsYys9LTMuMTQxNTkyNjUzNTg5NzkzO2JyZWFrfXdoaWxlKDApO20tPTYuMjgzMTg1MzA3''@;'; put 'put ''MTc5NTg2KitjZiguMTU5MTU0OTQzMDkxODk1MzUqKG0tKHc9K19bbCs1Nj4+M10pKSksYy09Ni4yODMxODUzMDcxNzk1ODYqK2NmKC4xNTkxNTQ5NDMwOTE4OTUzNSooYy13KSksQT1wLTYuMjgzMTg1MzA3MTc5NTg2KitjZiguMTU5MTU0OTQzMDkxODk1MzUqKHAtdykpLHc9Zi02LjI4MzE4''@;'; put 'put ''NTMwNzE3OTU4NiorY2YoLjE1OTE1NDk0MzA5MTg5NTM1KihmLXcpKSxmPW08PShiPStfW2wrNjQ+PjNdKT8raGEoK20pKkQqaysgK19bbD4+M10tTSorRGEoK20pKlI6KG09K19bbCs3Mj4+M10pPChmPStfW2wrODg+PjNdKT9tOmYsX1tsKzEzNj4+M109ZixwPWM8PWI/K2hhKCtjKSpEKlIr''@;'; put 'put ''ICtfW2wrOD4+M10rICtEYSgrYykqTSprOihtPStfW2wrODA+PjNdKTwocD0rX1tsKzk2Pj4zXSk/bTpwLF9bbCsxNDQ+PjNdPXAsYz1BPD1iPytoYSgrQSkqRCprKyArX1tsPj4zXS1NKitEYSgrQSkqUjooQT0rX1tsKzcyPj4zXSk+KGM9K19bbCs4OD4+M10pP0E6YyxfW2wrMTUyPj4zXT1j''@;'; put 'put ''LWYsYz13PD1iPytoYSgrdykqRCpSKyArX1tsKzg+PjNdKyArRGEoK3cpKk0qazooUj0rX1tsKzgwPj4zXSk+KGM9K19bbCs5Nj4+M10pP1I6YyxfW2wrMTYwPj4zXT1jLXB9KGwpLF9bbCsxNjg+PjNdPXc9KCh3PStfW2s+PjNdKS0rX1tiPj4zXSkvdyxfW2wrMTc2Pj4zXT0oMi13KSp3LF9b''@;'; put 'put ''bCsxODQ+PjNdPXc9MS13LF9bbCsxOTI+PjNdPXcqd30odz1BLCtfWyhsfD0wKT4+M10sK19bbCs4Pj4zXSxjPStjLGY9K2YscD0rcCxtPSttKSxsPTB8ZnVuY3Rpb24gZDYobCl7bHw9MDt2YXIgayxNLEQsUixnZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRz0wLHE9MCxwZT0wLGJl''@;'; put 'put ''PTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wO2ZvcihnZT0wfHZyKDgpLG09K19bbCs2ND4+M10tKEE9K19bbCs1Nj4+M10pLHBlPTEsYz0wO3E9bS8rKDB8cGUpLGM8PDI0Pj4yND09MCYoMHxwZSk8MTAyNDspe2U6ZG97aWYocTw9MS41NzA3OTYzMjY3OTQ4OTY2''@;'; put 'put ''KWZvcihmPUEscD0wLGM9MTs7KXtpZighKGM8PDI0Pj4yNCE9MCYoMHxwKTwoMHxwZSkpKWJyZWFrIGU7Yz0rTzkobCxmLEc9ZitxKTw9MWUtNSYxLGY9RyxwPXArMXwwfWVsc2UgYz0wfXdoaWxlKDApO3BlPDw9MX1mb3IoYj0raGEoK0EpLFJlPStEYSgrQSksSGU9KE9lPStfWyhwPWwrMTZ8''@;'; put 'put ''MCk+PjNdKSpiLHc9KGY9K19bKGs9bCsyNHwwKT4+M10pKlJlLGIqPWYsbT0oTGU9K19bKE09bCs0MHwwKT4+M10pKkhlKyhmPStfW2w+PjNdKS0oYmU9K19bKEQ9bCs0OHwwKT4+M10pKncsdz1iZSpIZStMZSp3KyhHPStfWyhSPWwrOHwwKT4+M10pLE9lKj0tUmUsZnVuY3Rpb24gelIobCxj''@;'; put 'put ''LGYpe2x8PTAsYz0rYyxmPStmO3ZhciBwO2FbNDczNzNdPTEwMCxwPTB8dnIoMTYwMCksYVtsPj4yXT1wLF9bcD4+M109YyxfW3ArOD4+M109ZixhW2wrND4+Ml09MX0oZ2UsZixHKSxnRShnZSxtLHcpLEc9K1Q4KC41KnEpLEc9LjMzMzMzMzMzMzMzMzMzMzMqK0RhKCtxKSooK0QwKCsoRypH''@;'; put 'put ''KjMrNCkpLTEpLGY9QSxBPXcsdz1iZSpPZStMZSpiLGI9TGUqT2UtYmUqYixjPTA7ISgoMHxjKT49KDB8cGUpKTspUmU9K2hhKCsoYmU9ZitxKSksSGU9K0RhKCtiZSksV2U9KHFlPStfW3A+PjNdKSpSZSxMZT0oVmU9K19baz4+M10pKkhlLFJlKj1WZSxtRShnZSxtK2IqRyxBK3cqRywoT2U9''@;'; put 'put ''KFZlPStfW00+PjNdKSpXZSsgK19bbD4+M10tKHJ0PStfW0Q+PjNdKSpMZSktKEhlPVZlKihxZSo9LUhlKS1ydCpSZSkqRywoTGU9cnQqV2UrVmUqTGUrICtfW1I+PjNdKS0oUmU9cnQqcWUrVmUqUmUpKkcsT2UsTGUpLGY9YmUsbT1PZSxBPUxlLHc9UmUsYj1IZSxjPWMrMXwwO3JldHVybiBm''@;'; put 'put ''dW5jdGlvbiB4MyhsKXt2YXIgYztnRShsfD0wLCtfWyhjPTB8YVtsPj4yXSk+PjNdLCtfW2MrOD4+M10pLGFbbD4+Ml09MHxVYSgwfGFbbD4+Ml0sYVtsKzQ+PjJdPDw0KSxhWzQ3MzczXT0wfShnZSksMHxnZX0odyksbGU9QSwwfGx9ZnVuY3Rpb24gTzkobCxjLGYpe3ZhciBtLEEsdyxiLHA9''@;'; put 'put ''MDtyZXR1cm4gbT0rX1syNCsobHw9MCk+PjNdLyhiPStfW2wrMTY+PjNdKSx3PStoYSgrKHA9KGY9K2YpKyhjPStjKSkpLEE9K2hhKDIqcCkscD0raGEoMypwKSwrKCguMDAxKm0rNC45OCkqbSsuMjA3KS8obSsuMDA2NykqYioremYoKygoKCtfWzMyKyhsPW08LjI1PzEwMzkyOjEwNjQ4KT4+''@;'; put 'put ''M10qbSsgK19bbCs0MD4+M10pKm0rICtfW2wrNDg+PjNdKS8oK19bbCs1Nj4+M10rbSkqdysoKCtfW2w+PjNdKm0rICtfW2wrOD4+M10pKm0rICtfW2wrMTY+PjNdKS8oK19bbCsyND4+M10rbSkrKCgrX1tsKzY0Pj4zXSptKyArX1tsKzcyPj4zXSkqbSsgK19bbCs4MD4+M10pLygrX1tsKzg4''@;'; put 'put ''Pj4zXSttKSpBKygoK19bbCs5Nj4+M10qbSsgK19bbCsxMDQ+PjNdKSptKyArX1tsKzExMj4+M10pLygrX1tsKzEyMD4+M10rbSkqcCsoKCgrX1tsKzE2MD4+M10qbSsgK19bbCsxNjg+PjNdKSptKyArX1tsKzE3Nj4+M10pLygrX1tsKzE4ND4+M10rbSkqdysoKCtfW2wrMTI4Pj4zXSptKyAr''@;'; put 'put ''X1tsKzEzNj4+M10pKm0rICtfW2wrMTQ0Pj4zXSkvKCtfW2wrMTUyPj4zXSttKSsoKCtfW2wrMTkyPj4zXSptKyArX1tsKzIwMD4+M10pKm0rICtfW2wrMjA4Pj4zXSkvKCtfW2wrMjE2Pj4zXSttKSpBKygoK19bbCsyMjQ+PjNdKm0rICtfW2wrMjMyPj4zXSkqbSsgK19bbCsyNDA+PjNdKS8o''@;'; put 'put ''K19bbCsyNDg+PjNdK20pKnApKihmLWMpKSl9ZnVuY3Rpb24gZ0UobCxjLGYpe3ZhciBwLG07bUUobHw9MCwrX1sobT0wfGFbbD4+Ml0pKygocD0oMHxhW2wrND4+Ml0pLTF8MCk8PDQpPj4zXSwrX1ttKyhwPDw0KSs4Pj4zXSxjPStjLGY9K2YsYyxmKX1mdW5jdGlvbiBtRShsLGMsZixwLG0s''@;'; put 'put ''QSx3KXtjPStjLGY9K2YscD0rcCxtPSttLEE9K0Esdz0rdzt2YXIgTSxELGI9MCxrPTA7KDMrKGI9MHxhWyhNPTQrKGx8PTApfDApPj4yXSl8MCk8KDB8KGs9MHxhWzQ3MzczXSkpP2w9MHxhW2w+PjJdOihhWzQ3MzczXT1rPDwxLGI9MHxVYSgwfGFbbD4+Ml0sazw8NSksYVtsPj4yXT1iLGw9''@;'; put 'put ''YixiPTB8YVtNPj4yXSksX1tsKyhiPDw0KT4+M109YyxEPWIrMXwwLF9bbCsoYjw8NCkrOD4+M109ZixfW2wrKEQ8PDQpPj4zXT1wLGs9YisyfDAsX1tsKyhEPDw0KSs4Pj4zXT1tLF9bbCsoazw8NCk+PjNdPUEsYVtNPj4yXT1iKzMsX1tsKyhrPDw0KSs4Pj4zXT13fWZ1bmN0aW9uIHlFKGwp''@;'; put 'put ''e3ZhciBjPTAsZj0wLHA9MDtzd2l0Y2goMHxmZVs0KyhsfD0wKT4+MF0pe2Nhc2UgMTpsPTcyKyhmPTB8YVtsPj4yXSl8MCxmPWYrNTZ8MCxwPTU7YnJlYWs7Y2FzZSAzOmw9MjQrKGY9MHxhW2w+PjJdKXwwLGY9Zis4fDAscD01O2JyZWFrO2Nhc2UgMjpsPTMyKyhmPTB8YVtsPj4yXSl8MCxm''@;'; put 'put ''PWYrMTZ8MCxwPTU7YnJlYWs7ZGVmYXVsdDpjPTB9cmV0dXJuIDU9PSgwfHApJiYoYz0rX1tsPj4zXS0rX1tmPj4zXSksK2N9ZnVuY3Rpb24gU2QobCxjLGYpe2x8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLGssTT0wLEQ9MCxSPTAsRz0wLHE9MDtrPWxlLGxlPWxlKzk2fDAsQT1rKzY0fDAsbT1r''@;'; put 'put ''KzMyfDAscD1rKzE2fDAsdz1rLChiPTB8aXRbNCsoY3w9MCk+PjFdKTw8MTY+PjE2Pj0xJiYoX1t3Pj4zXT0uNSooKE09K19bKEc9Yys4fDApPj4zXSkrKEQ9K19bYysyND4+M10pKSsgK19bZj4+M10sX1t3Kzg+PjNdPS41KigrX1tjKzE2Pj4zXSsgK19bYyszMj4+M10pKyArX1tmKzg+PjNd''@;'; put 'put ''LFI9MHxhW2M+PjJdLHE9ZisxNnwwLGY9MHxmZVtjKzY+PjBdLGFbcD4+Ml09YVt3Pj4yXSxhW3ArND4+Ml09YVt3KzQ+PjJdLGFbcCs4Pj4yXT1hW3crOD4+Ml0sYVtwKzEyPj4yXT1hW3crMTI+PjJdLGFbbT4+Ml09YVtxPj4yXSxhW20rND4+Ml09YVtxKzQ+PjJdLGFbbSs4Pj4yXT1hW3Er''@;'; put 'put ''OD4+Ml0sYVttKzEyPj4yXT1hW3ErMTI+PjJdLGFbbSsxNj4+Ml09YVtxKzE2Pj4yXSxhW20rMjA+PjJdPWFbcSsyMD4+Ml0sYVttKzI0Pj4yXT1hW3ErMjQ+PjJdLGFbbSsyOD4+Ml09YVtxKzI4Pj4yXSxhW0E+PjJdPWFbRz4+Ml0sYVtBKzQ+PjJdPWFbRys0Pj4yXSxhW0ErOD4+Ml09YVtH''@;'; put 'put ''Kzg+PjJdLGFbQSsxMj4+Ml09YVtHKzEyPj4yXSxhW0ErMTY+PjJdPWFbRysxNj4+Ml0sYVtBKzIwPj4yXT1hW0crMjA+PjJdLGFbQSsyND4+Ml09YVtHKzI0Pj4yXSxhW0ErMjg+PjJdPWFbRysyOD4+Ml0sZnVuY3Rpb24gUVIobCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsZnw9MCxwfD0w''@;'; put 'put ''LG09K20sQXw9MCx3fD0wLGJ8PTA7dmFyIHEscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUsV2UsYXQsU3Qsa3Qsc3QsRXQsY3QsYnQsYW4sU24sSG4sdXIsRXIsaz0wLE09MCxEPTAsUj0wLEc9MCxxZT0wLHJ0PTAsWnQ9MCxIcj0wO2ZvcihFcj1sZSxsZT1sZSsxMjh8MCxjdD1FcisxMDR8MCxI''@;'; put 'put ''bj1Fcis0OHwwLHVyPUVyKzE2fDAsYVsoWnQ9YnQ9RXIpPj4yXT0wLGFbWnQrND4+Ml09MCxTbj0oYW49K19bcD4+M10pLW0sRXQ9YW4rbSxfWyhadD1idCs4fDApPj4zXT0uNSooK19bdysyND4+M10tK19bdys4Pj4zXSkrICtfW3ArOD4+M10sVzgobCwxKSxXZT11cisxNnwwLGF0PXVyKzR8''@;'; put 'put ''MCxTdD11cisyNHwwLGt0PUhuKzR8MCxzdD1IbisxNnwwLHE9MD09KDB8YikscGU9SG4rMjR8MCxnZT1Ibis4fDAsYmU9SG4rMzJ8MCxPZT1Ibis0MHwwLExlPUhuKzQ4fDAsUmU9QSsxNnwwLEhlPUErNHwwLFZlPXVyKzh8MCxSPTA7ISgoMHxSKT49KDB8YykpOyl7c3dpdGNoKDB8ZmVbZiso''@;'; put 'put ''MjQqUnwwKSs2Pj4wXSl7Y2FzZSAxMDg6bT1TbjticmVhaztjYXNlIDExNDptPUV0LStfW2YrKDI0KlJ8MCkrOD4+M107YnJlYWs7ZGVmYXVsdDptPWFuLS41KitfW2YrKDI0KlJ8MCkrOD4+M119Zm9yKF9bcD4+M109bSxfW1p0Pj4zXT0rX1tadD4+M10tK19bKHFlPWYrKDI0KlJ8MCkrMTZ8''@;'; put 'put ''MCk+PjNdLHJ0PWYrKDI0KlJ8MCkrNHwwLEQ9MHxhW2YrKDI0KlJ8MCk+PjJdLEc9MDshKCgwfEcpPj0oMHxpdFtydD4+MV0pKTspKGI9MHxhWyhNPUQrNHwwKT4+Ml0pPyhfW1dlPj4zXT0rX1soK19bYisxNj4+M10+MD9iOkEpKzE2Pj4zXSxhW3VyPj4yXT1hWygwPT0oMHxhW2I+PjJdKT9B''@;'; put 'put ''OmIpPj4yXSxhW2F0Pj4yXT13PTB8YVsoMD09KDB8YVtiKzQ+PjJdKT9BOmIpKzQ+PjJdLChiPTEyNyZhW2IrMjQ+PjJdKT9ifD0tMTI4JmFbU3Q+PjJdOkhyPTEyKTooX1tXZT4+M109K19bUmU+PjNdLGFbdXI+PjJdPWFbQT4+Ml0sYVthdD4+Ml09dz0wfGFbSGU+PjJdLEhyPTEyKSwxMj09''@;'; put 'put ''KDB8SHIpJiYoSHI9MCxiPS0xMjgmYVtTdD4+Ml0pLGFbU3Q+PjJdPWIsbWEobCx3KSxhW0huPj4yXT1hW0Q+PjJdLGFba3Q+PjJdPXVyLF9bc3Q+PjNdPStfW0QrMTY+PjNdLF9bcGU+PjNdPWs9cT8xOitfW0QrMjQ+PjNdLGFbVmU+PjJdPWFbOCsoMHxhW00+PjJdKT4+Ml0sYVtnZT4+Ml09''@;'; put 'put ''YVtEKzg+PjJdLF9bYmU+PjNdPStfWyhNPUQrMzJ8MCk+PjNdLF9bT2U+PjNdPStfW3FlPj4zXSxmZVtMZT4+MF09MTA4LF9bYnQ+PjNdPW0sYVtjdD4+Ml09YVtidD4+Ml0sYVtjdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbY3QrOD4+Ml09YVtidCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2J0KzEyPj4y''@;'; put 'put ''XSxobShsLGN0LEhuKSxfW3A+PjNdPWs9K19bTT4+M10rbSxEPUQrNTZ8MCxHPUcrMXwwLG09aztSPVIrMXwwfU80KGwpLGxlPUVyfShsLGI8PDE2Pj4xNixSLHAsLjUqKEQtTSksbSxBLGYpKSxsZT1rfWZ1bmN0aW9uIHdFKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHcsYixNLEQscSxwZSxnZSxi''@;'; put 'put ''ZSxMZSxPZSxwPTAsbT0wLEE9MCxrPTAsUj0wLEc9MDtpZihMZT1sZSxsZT1sZSsxNzZ8MCxxPUxlKzk2fDAsYmU9TGUrMTM2fDAsTT1MZSxEPUxlKzEyOHwwLGFbKGdlPUxlKzY0fDApPj4yXT1hWyhSPTQ4KyhjfD0wKXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW1IrND4+Ml0sYVtnZSs4Pj4yXT1h''@;'; put 'put ''W1IrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSKzEyPj4yXSxhW2dlKzE2Pj4yXT1hW1IrMTY+PjJdLGFbZ2UrMjA+PjJdPWFbUisyMD4+Ml0sYVtnZSsyND4+Ml09YVtSKzI0Pj4yXSxhW2dlKzI4Pj4yXT1hW1IrMjg+PjJdLHc9K19bZj4+M10sYj0rX1tmKzg+PjNdLHA9MHxhWyhSPWMrODR8MCk+''@;'; put 'put ''PjJdLE9lPTB8YVtjPj4yXT8xOjAhPSgwfGFbYys4Pj4yXSksMHwobT0wfGFbKHBlPWMrMTA4fDApPj4yXSkmJmJvKGYsbSwxODY1NDQpLF9bZ2U+PjNdPStfW2dlPj4zXSt3LF9bKEc9Z2UrMTZ8MCk+PjNdPStfW0c+PjNdK3csX1soRz1nZSs4fDApPj4zXT0rX1tHPj4zXStiLF9bKEc9Z2Ur''@;'; put 'put ''MjR8MCk+PjNdPStfW0c+PjNdK2IsT2UmJjA9PSg0JmFbbCsxNTI+PjJdfDApPyhhW3E+PjJdPWFbZ2U+PjJdLGFbcSs0Pj4yXT1hW2dlKzQ+PjJdLGFbcSs4Pj4yXT1hW2dlKzg+PjJdLGFbcSsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtxKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW3ErMjA+PjJdPWFb''@;'; put 'put ''Z2UrMjA+PjJdLGFbcSsyND4+Ml09YVtnZSsyND4+Ml0sYVtxKzI4Pj4yXT1hW2dlKzI4Pj4yXSxHPTB8UjkobCxmLGMscSxiZSkpOkc9MCwhKDMyJihtPTB8aXRbKGs9Yys0MnwwKT4+MV0pKSl7Zm9yKChBPTB8YVtjKzIwPj4yXSkmJihtPTB8V1IobCxBLDB8YVtjKzI4Pj4yXSw2NTUzNSZt''@;'; put 'put ''LEQpLDQmaXRbaz4+MV0/KGs9MHxYdFtjKzMzPj4wXSxhW3E+PjJdPWFbZ2U+PjJdLGFbcSs0Pj4yXT1hW2dlKzQ+PjJdLGFbcSs4Pj4yXT1hW2dlKzg+PjJdLGFbcSsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtxKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW3ErMjA+PjJdPWFbZ2UrMjA+PjJdLGFbcSsy''@;'; put 'put ''ND4+Ml09YVtnZSsyND4+Ml0sYVtxKzI4Pj4yXT1hW2dlKzI4Pj4yXSxLNShsLDB8TWQoTSxxLGspLDQsNCxtKSk6KGFbcT4+Ml09YVtnZT4+Ml0sYVtxKzQ+PjJdPWFbZ2UrND4+Ml0sYVtxKzg+PjJdPWFbZ2UrOD4+Ml0sYVtxKzEyPj4yXT1hW2dlKzEyPj4yXSxhW3ErMTY+PjJdPWFbZ2Ur''@;'; put 'put ''MTY+PjJdLGFbcSsyMD4+Ml09YVtnZSsyMD4+Ml0sYVtxKzI0Pj4yXT1hW2dlKzI0Pj4yXSxhW3ErMjg+PjJdPWFbZ2UrMjg+PjJdLHkzKGwscSxtKSksRnQoMHxhW0Q+PjJdKSk7bT0wfGFbcD4+Ml07KUdhKGwsbSxmKSxwPXArNHwwO2ZvcihwPTB8YVtSPj4yXSx4aChsLDEpLG09YysyNHww''@;'; put 'put ''O0E9cCs0fDAscD0wfGFbcD4+Ml07KTB8ZmVbcCsxMDA+PjBdPyhZUihsLHAsZiwwfGFbbT4+Ml0sMHxhW0E+PjJdKSxwPUEpOnA9QTswfGZlW2MrMzM+PjBdJiYoYVtxPj4yXT1hW2dlPj4yXSxhW3ErND4+Ml09YVtnZSs0Pj4yXSxhW3ErOD4+Ml09YVtnZSs4Pj4yXSxhW3ErMTI+PjJdPWFb''@;'; put 'put ''Z2UrMTI+PjJdLGFbcSsxNj4+Ml09YVtnZSsxNj4+Ml0sYVtxKzIwPj4yXT1hW2dlKzIwPj4yXSxhW3ErMjQ+PjJdPWFbZ2UrMjQ+PjJdLGFbcSsyOD4+Ml09YVtnZSsyOD4+Ml0sYkUobCxjLHEpKX0wfEcmJlA0KGwsYmUpLE9lJiY0JmFbbCsxNTI+PjJdfDAmJihhW3E+PjJdPWFbZ2U+PjJd''@;'; put 'put ''LGFbcSs0Pj4yXT1hW2dlKzQ+PjJdLGFbcSs4Pj4yXT1hW2dlKzg+PjJdLGFbcSsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtxKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW3ErMjA+PjJdPWFbZ2UrMjA+PjJdLGFbcSsyND4+Ml09YVtnZSsyND4+Ml0sYVtxKzI4Pj4yXT1hW2dlKzI4Pj4yXSwwfFI5KGws''@;'; put 'put ''ZixjLHEsYmUpKSYmUDQobCxiZSksMHxhW3BlPj4yXSYmX0UoZiwxODY1NDQpLGxlPUxlfWZ1bmN0aW9uIGJvKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHcscD0wLG09MCxBPTA7MHwobT0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSkmJigwfGFbYz4+Ml0/KGFbZj4+Ml09bSxtPTB8YVtjPj4yXSxB''@;'; put 'put ''PXcpOihtPTAsQT1mKSxhW0E+PjJdPW0pLDB8KG09MHxhW2wrMjA+PjJdKSYmKDB8YVsoQT1jKzR8MCk+PjJdPyhhW2YrND4+Ml09bSxtPTB8YVtBPj4yXSxBPXcpOihtPTAsQT1mKSxhW0ErND4+Ml09bSksKHA9K19bbCszMj4+M10pPj0wJiYoK19bKG09YysxNnwwKT4+M10+PTA/KF9bZisx''@;'; put 'put ''Nj4+M109cCxwPStfW20+PjNdLGY9dyk6cD0tMSxfW2YrMTY+PjNdPXApfWZ1bmN0aW9uIFI5KGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTA7dmFyIHcsYixrLE0sRCxSLEcscSxwZSxnZSxiZSxBPTA7YmU9bGUsbGU9bGUrMjI0fDAsTT1iZSs4fDAsYj1iZSxnZT1iZSs0MHwwLHc9YmUrMTg0''@;'; put 'put ''fDAsQT1iZSs1NnwwLGFbKG18PTApPj4yXT1hWyhEPTIwOCsoaz0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hWyhSPWsrMjI4fDApPj4yXSxhW20rOD4+Ml09YVsoRz1rKzI0NHwwKT4+Ml0sYVttKzEyPj4yXT1hWyhxPWsrMjEyfDApPj4yXSxmZVttKzE2Pj4wXT0oaXRb''@;'; put 'put ''KHBlPWsrMjYwfDApPj4xXTw8MTUmNjU1MzUpPDwxNj4+MTY+PjE1LDAhPSgwfChtPTB8YVtmKzE2Pj4yXSkpJiYwIT0oMHxmZVttPj4wXSk/QT0wOih1cyhnZSwxMjgsQSksKG09MHxhWyhBPWMrNjB8MCk+PjJdKXx8KG09MHxyYSgwfHdGKGwsMHxhW2srOD4+Ml0sZ2UpKSxhW0E+PjJdPW0s''@;'; put 'put ''ZmVbYys2ND4+MF09MSksdW8oZ2UsbSksYVs0NzM3NF09MSsoQT0wfGFbNDczNzRdKSxhW2I+PjJdPUEsb28odywxMzczOTEsYiksdW8oZ2UsdyksKG09MHxhWyhBPWdlKzR8MCk+PjJdKT4+PjA+PSgwfGFbZ2UrOD4+Ml0pPj4+MCYmKFEwKGdlLDEpLG09MHxhW0E+PjJdKSxmZVttPj4wXT0w''@;'; put 'put ''LGFbQT4+Ml09bT0wfGFbZ2U+PjJdLEE9MSksbT0wfFExKGwsMCwwfGFbZj4+Ml0sMHxhW2YrMTI+PjJdLDB8YVtmKzg+PjJdLG0sMHxhW2srOD4+Ml0pLEEmJkMyKGdlKTtkb3tpZigwfG0pe2lmKDA9PSgwfGFbRD4+Ml0pJiYwPT0oMSZpdFtwZT4+MV0pKWJyZWFrO2FbTT4+Ml09YVtwPj4y''@;'; put 'put ''XSxhW00rND4+Ml09YVtwKzQ+PjJdLGFbTSs4Pj4yXT1hW3ArOD4+Ml0sYVtNKzEyPj4yXT1hW3ArMTI+PjJdLGFbTSsxNj4+Ml09YVtwKzE2Pj4yXSxhW00rMjA+PjJdPWFbcCsyMD4+Ml0sYVtNKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbTSsyOD4+Ml09YVtwKzI4Pj4yXSxSQyhsLE0pLEcxKGws''@;'; put 'put ''MHxhW0Q+PjJdLDB8YVtSPj4yXSwwfGFbRz4+Ml0sMHxhW3E+PjJdKX19d2hpbGUoMCk7cmV0dXJuIGxlPWJlLDB8bX1mdW5jdGlvbiBXUihsLGMsZixwLG0pe3ZhciB3LGI7cmV0dXJuIGx8PTAsZnw9MCxwfD0wLGI9bGUsbGU9bGUrMTZ8MCwoMHx1ayhjfD0wLG18PTAsdz1iKSk8PDI0Pj4y''@;'; put 'put ''ND8oaGwobCwwfGFbbT4+Ml0pLFVmKGwsKGM9MHxhW20rND4+Ml0pfHwxMzczMTQsZiwram5bdz4+Ml0pLGM9cD4+PjEmMXwyKTooaGwobCxjKSxjPTEpLG1hKGwsMTM3Mzc5KSxsZT1iLDB8Y31mdW5jdGlvbiBNZChsLGMsZil7Znw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MDtyZXR1cm4g''@;'; put 'put ''YVsobHw9MCk+PjJdPWFbKGN8PTApPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdLGFbKHA9bCszMnwwKT4+Ml09YVsoYz1jKzE2fDApPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtw''@;'; put 'put ''KzEyPj4yXT1hW2MrMTI+PjJdLCgwfGYpPjE/KF9bbD4+M109dz0rX1tsPj4zXSsoYj0uNSorKDB8ZikpLF9bKGY9bCs4fDApPj4zXT1BPStfW2Y+PjNdK2IsX1twPj4zXT1tPStfW3A+PjNdLWIsX1socD1sKzQwfDApPj4zXT1iPStfW3A+PjNdLWIpOihtPStfW3A+PjNdLEE9K19bbCs4Pj4z''@;'; put 'put ''XSx3PStfW2w+PjNdLGI9K19bbCs0MD4+M10pLF9bbCsxNj4+M109bSxfW2wrMjQ+PjNdPUEsX1tsKzQ4Pj4zXT13LF9bbCs1Nj4+M109YiwwfGx9ZnVuY3Rpb24gR2EobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLE0sRCxSLEcscSxnZSxwPTAsdz0wLGI9MCxrPTAscGU9MDtnZT1sZSxsZT1s''@;'; put 'put ''ZSsxNzZ8MCxSPWdlKzk2fDAsRz1nZSsxMzZ8MCxNPWdlLEQ9Z2UrMTI4fDAsYVsocT1nZSs2NHwwKT4+Ml09YVsocGU9NDgrKGN8PTApfDApPj4yXSxhW3ErND4+Ml09YVtwZSs0Pj4yXSxhW3ErOD4+Ml09YVtwZSs4Pj4yXSxhW3ErMTI+PjJdPWFbcGUrMTI+PjJdLGFbcSsxNj4+Ml09YVtw''@;'; put 'put ''ZSsxNj4+Ml0sYVtxKzIwPj4yXT1hW3BlKzIwPj4yXSxhW3ErMjQ+PjJdPWFbcGUrMjQ+PjJdLGFbcSsyOD4+Ml09YVtwZSsyOD4+Ml0sQT0rX1tmKzg+PjNdLHBlPTB8YVtjPj4yXT8xOjAhPSgwfGFbYys4Pj4yXSksX1txPj4zXT0rX1txPj4zXSsobT0rX1tmPj4zXSksX1soaz1xKzE2fDAp''@;'; put 'put ''Pj4zXT0rX1trPj4zXSttLF9bKGs9cSs4fDApPj4zXT0rX1trPj4zXStBLF9bKGs9cSsyNHwwKT4+M109K19baz4+M10rQSxwZSYmMD09KDQmYVtsKzE1Mj4+Ml18MCk/KGFbUj4+Ml09YVtxPj4yXSxhW1IrND4+Ml09YVtxKzQ+PjJdLGFbUis4Pj4yXT1hW3ErOD4+Ml0sYVtSKzEyPj4yXT1h''@;'; put 'put ''W3ErMTI+PjJdLGFbUisxNj4+Ml09YVtxKzE2Pj4yXSxhW1IrMjA+PjJdPWFbcSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW3ErMjQ+PjJdLGFbUisyOD4+Ml09YVtxKzI4Pj4yXSxrPTB8UjkobCxmLGMsUixHKSk6az0wLHA9MHxpdFsoYj1jKzQyfDApPj4xXTtlOmRve2lmKCEoMzImcCkpc3dpdGNo''@;'; put 'put ''KHc9MHxhW2MrMjA+PjJdLDB8dyYmKHA9MHxXUihsLHcsMHxhW2MrMjg+PjJdLDY1NTM1JnAsRCksNCZpdFtiPj4xXT8oYj0wfFh0W2MrMzM+PjBdLGFbUj4+Ml09YVtxPj4yXSxhW1IrND4+Ml09YVtxKzQ+PjJdLGFbUis4Pj4yXT1hW3ErOD4+Ml0sYVtSKzEyPj4yXT1hW3ErMTI+PjJdLGFb''@;'; put 'put ''UisxNj4+Ml09YVtxKzE2Pj4yXSxhW1IrMjA+PjJdPWFbcSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW3ErMjQ+PjJdLGFbUisyOD4+Ml09YVtxKzI4Pj4yXSxLNShsLDB8TWQoTSxSLGIpLDQsNCxwKSk6KGFbUj4+Ml09YVtxPj4yXSxhW1IrND4+Ml09YVtxKzQ+PjJdLGFbUis4Pj4yXT1hW3ErOD4+''@;'; put 'put ''Ml0sYVtSKzEyPj4yXT1hW3ErMTI+PjJdLGFbUisxNj4+Ml09YVtxKzE2Pj4yXSxhW1IrMjA+PjJdPWFbcSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW3ErMjQ+PjJdLGFbUisyOD4+Ml09YVtxKzI4Pj4yXSx5MyhsLFIscCkpLEZ0KDB8YVtEPj4yXSkpLDB8ZmVbYyszMz4+MF0mJihhW1I+PjJdPWFb''@;'; put 'put ''cT4+Ml0sYVtSKzQ+PjJdPWFbcSs0Pj4yXSxhW1IrOD4+Ml09YVtxKzg+PjJdLGFbUisxMj4+Ml09YVtxKzEyPj4yXSxhW1IrMTY+PjJdPWFbcSsxNj4+Ml0sYVtSKzIwPj4yXT1hW3ErMjA+PjJdLGFbUisyND4+Ml09YVtxKzI0Pj4yXSxhW1IrMjg+PjJdPWFbcSsyOD4+Ml0sYkUobCxjLFIp''@;'; put 'put ''KSxwPWMrODh8MCwwfGZlW2MrOTI+PjBdKXtjYXNlIDE6d0UobCwwfGFbcD4+Ml0sZik7YnJlYWsgZTtjYXNlIDM6VVIobCwwfGFbcD4+Ml0sZik7YnJlYWsgZTtkZWZhdWx0OlNkKGwsMHxhW3A+PjJdLGYpO2JyZWFrIGV9fXdoaWxlKDApOzB8ayYmUDQobCxHKSxwZSYmNCZhW2wrMTUyPj4y''@;'; put 'put ''XXwwJiYoYVtSPj4yXT1hW3E+PjJdLGFbUis0Pj4yXT1hW3ErND4+Ml0sYVtSKzg+PjJdPWFbcSs4Pj4yXSxhW1IrMTI+PjJdPWFbcSsxMj4+Ml0sYVtSKzE2Pj4yXT1hW3ErMTY+PjJdLGFbUisyMD4+Ml09YVtxKzIwPj4yXSxhW1IrMjQ+PjJdPWFbcSsyND4+Ml0sYVtSKzI4Pj4yXT1hW3Er''@;'; put 'put ''Mjg+PjJdLDB8UjkobCxmLGMsUixHKSkmJlA0KGwsRyksbGU9Z2V9ZnVuY3Rpb24gWVIobCxjLGYscCxtKXtjfD0wLG18PTA7dmFyIGIsayxSLEcscSxPZSxMZSxSZSxBPTAsdz0wLE09MCxEPTAscGU9MCxnZT0wLGJlPTAsSGU9MCxWZT0wO2lmKFJlPWxlLGxlPWxlKzMyfDAsT2U9UmUrMTZ8''@;'; put 'put ''MCxMZT1SZSxEPStfWyhmfD0wKT4+M10sYmU9K19bZis4Pj4zXSxobChsfD0wLE09MD09KDB8KHB8PTApKT8xMzczMTQ6cCksbWEobCxNKSxrPStfW2MrNzI+PjNdLFI9KEc9K19bYys0OD4+M10pK0QsRD0ocT0rX1tjKzY0Pj4zXSkrRCxiZT0oYj0rX1tjKzU2Pj4zXSkrYmUsMCE9KDEmKGY9''@;'; put 'put ''MHxmZVsoTT1jKzEwMHwwKT4+MF0pKSYmKCgwfGhyW2MrODA+PjFdKSsoMHxocltjKzg0Pj4xXSl8MCk8KDB8YVsxMDQrKHc9MHxhW2MrOTY+PjJdKT4+Ml0pKXtmPTB8aXRbYys4Nj4+MV07ZG97aWYoZjw8MTY+PjE2KXtpZigoKDB8aHJbYys4Mj4+MV0pKyg2NTUzNSZmKXwwKT09KDB8YVt3''@;'; put 'put ''KzEwMD4+Ml0pKXtmPXA9KChWZT0oKEhlPTB8ZmVbdyszMj4+MF0pPDwyND4+MjQpLzJ8MCk8PDI0Pj4yNCkrKDB8WHRbdyszMz4+MF0pfDAscCY9MjU1LEE9YmUtKyhWZTw8MjQ+PjI0KSx3PUhlO2JyZWFrfWY9MCxwPSgoKHc9MHxmZVt3KzMyPj4wXSk8PDI0Pj4yNCkvMnwwKTw8MjQ+PjI0''@;'; put 'put ''LEE9YmU7YnJlYWt9Zj0ocD0oKChWZT0wfGZlW3crMzI+PjBdKTw8MjQ+PjI0KS8yfDApPDwyND4+MjQpKygwfFh0W3crMzM+PjBdKXwwLEE9YmUsdz1WZX13aGlsZSgwKTtfW0xlKzg+PjNdPUEtKygwfHApLF9bTGU+PjNdPUQrICsoKCh3PDwyND4+MjQpLzJ8MCk8PDI0Pj4yNCksYVtPZT4+''@;'; put 'put ''Ml09YVtMZT4+Ml0sYVtPZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbT2UrOD4+Ml09YVtMZSs4Pj4yXSxhW09lKzEyPj4yXT1hW0xlKzEyPj4yXSxCOShsLE9lLDAsay1iKyArKDI1NSZmfDApKyArKHc8PDI0Pj4yNCkpLGY9MHxmZVtNPj4wXX1pZigyJmYmJigoMHxocltjKzgyPj4xXSkrKDY1NTM1''@;'; put 'put ''JihwZT0wfGl0W2MrODY+PjFdKSl8MCk8KDB8YVsxMDArKGdlPTB8YVtjKzk2Pj4yXSk+PjJdKSl7Zj0wfGl0W2MrODQ+PjFdO2Rve2lmKGY8PDE2Pj4xNil7aWYoKCgwfGhyW2MrODA+PjFdKSsoNjU1MzUmZil8MCk9PSgwfGFbZ2UrMTA0Pj4yXSkpe3A9KDI1NSYoVmU9KChmPTB8ZmVbZ2Ur''@;'; put 'put ''MzI+PjBdKTw8MjQ+PjI0KS8yfDApKSsoMHxYdFtnZSszMz4+MF0pJjI1NSxfW0xlPj4zXT1SLSsoVmU8PDI0Pj4yNCk7YnJlYWt9X1tMZT4+M109Ui0oQT0rKCgoKGY9MHxmZVtnZSszMj4+MF0pPDwyND4+MjQpLzJ8MCk8PDI0Pj4yNCkpLHA9MCE9KDB8bSkmJigwfGl0W20rODY+PjFdKSE9''@;'; put 'put ''cGU8PDE2Pj4xNj8yNTUmfn4oK19bZ2UrNjQ+PjNdLXEtQSk6MH1lbHNle2lmKHA9MjU1Jih3PSgoVmU9KChmPTB8ZmVbZ2UrMzI+PjBdKTw8MjQ+PjI0KS8yfDApPDwyND4+MjQpKygwfFh0W2dlKzMzPj4wXSl8MCksX1tMZT4+M109Ui0oQT0rKFZlPDwyND4+MjQpKS0rKDB8KHcmPTI1NSkp''@;'; put 'put ''LCgwfGFbZ2UrMTA0Pj4yXSk9PSgwfGhyW2MrODA+PjFdKSl7cD13PDwxJjI1NTticmVha30wIT0oMHxtKSYmKDB8aXRbbSs4Nj4+MV0pIT1wZTw8MTY+PjE2JiYocD0yNTUmfn4oKygyNTUmcCktcSsgK19bZ2UrNjQ+PjNdLUEpKX19d2hpbGUoMCk7X1tMZSs4Pj4zXT1iZS0rKCgoZjw8MjQ+''@;'; put 'put ''PjI0KS8yfDApPDwyND4+MjQpLGFbT2U+PjJdPWFbTGU+PjJdLGFbT2UrND4+Ml09YVtMZSs0Pj4yXSxhW09lKzg+PjJdPWFbTGUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtMZSsxMj4+Ml0sQjkobCxPZSxxLUcrICsoMjU1JnApKyArKGY8PDI0Pj4yNCksMCl9bGU9UmV9ZnVuY3Rpb24gYkUobCxj''@;'; put 'put ''LGYpe2Z8PTA7dmFyIE0scD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO009bGUsbGU9bGUrMTYwfDAsaz1NKzExMnwwLGI9TSxtPU0rMTQ0fDAsbWEobHw9MCwwPT0oMHwodz0wfGFbMjQrKGN8PTApPj4yXSkpPzEzNzMxNDp3KSwzODQmKHA9MHxpdFsodz1jKzQyfDApPj4xXSk/KGFbbSs0''@;'; put 'put ''Pj4yXT0wLGFbbT4+Ml09MCwyNTYmKHAmPTY1NTM1KT8ocD0xMzczMjcsQT00KToxMjgmcHwwJiYocD0xMzczMjAsQT00KSw0PT0oMHxBKSYmKGFbbT4+Ml09cCksZDIobCxtKSk6ZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSkseGgobCwrKDB8WHRbKEE9YyszM3wwKT4+MF0pKTtlOmRv''@;'; put 'put ''e2lmKDQmaXRbdz4+MV0pdz0wfFh0W0E+PjBdLGFbaz4+Ml09YVtmPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1hW2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2YrMTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4yXSxhW2srMjA+PjJdPWFbZisyMD4+Ml0sYVtrKzI0Pj4yXT1hW2Yr''@;'; put 'put ''MjQ+PjJdLGFbaysyOD4+Ml09YVtmKzI4Pj4yXSxLNShsLDB8TWQoYixrLHcpLDQsNCwwKTtlbHNle2lmKCEoKHA9MTUzNjAmaXRbYyszNj4+MV0pPDwxNj4+MTYpKXsoMjU1JihwPTB8ZmVbQT4+MF0pKT4xJiYoX1tmPj4zXT0rX1tmPj4zXSsoRD0uNSorKDI1NSZwKSksX1soYj1mKzh8MCk+''@;'; put 'put ''PjNdPStfW2I+PjNdK0QsX1soYj1mKzE2fDApPj4zXT0rX1tiPj4zXS1ELF9bKGI9ZisyNHwwKT4+M109K19bYj4+M10tRCksYVtrPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2Pj4yXT1hW2Yr''@;'; put 'put ''MTY+PjJdLGFbaysyMD4+Ml09YVtmKzIwPj4yXSxhW2srMjQ+PjJdPWFbZisyND4+Ml0sYVtrKzI4Pj4yXT1hW2YrMjg+PjJdLHkzKGwsaywwKTticmVha31zd2l0Y2gobT1iKzE2fDAsdz0wfFh0W0E+PjBdLGFbaz4+Ml09YVtmPj4yXSxhW2srND4+Ml09YVtmKzQ+PjJdLGFbays4Pj4yXT1h''@;'; put 'put ''W2YrOD4+Ml0sYVtrKzEyPj4yXT1hW2YrMTI+PjJdLGFbaysxNj4+Ml09YVtmKzE2Pj4yXSxhW2srMjA+PjJdPWFbZisyMD4+Ml0sYVtrKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbaysyOD4+Ml09YVtmKzI4Pj4yXSxNZChtLGssdyksKCg2NTUzNSZwKS0xMDI0fDApPj4+MTAmNDE5NDMwM3wwKXtj''@;'; put 'put ''YXNlIDc6V28obCxtLDIpO2JyZWFrIGU7Y2FzZSAzOldvKGwsYiszMnwwLDIpO2JyZWFrIGU7Y2FzZSAxOldvKGwsYis0OHwwLDIpO2JyZWFrIGU7Y2FzZSAwOmFbYj4+Ml09YVsoZj1iKzY0fDApPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4y''@;'; put 'put ''XT1hW2YrMTI+PjJdLFdvKGwsYiwyKTticmVhayBlO2Nhc2UgMTE6V28obCxtLDMpO2JyZWFrIGU7Y2FzZSA1OldvKGwsYiszMnwwLDMpO2JyZWFrIGU7Y2FzZSAyOmFbKGY9Yis4MHwwKT4+Ml09YVttPj4yXSxhW2YrND4+Ml09YVttKzQ+PjJdLGFbZis4Pj4yXT1hW20rOD4+Ml0sYVtmKzEy''@;'; put 'put ''Pj4yXT1hW20rMTI+PjJdLFdvKGwsYis0OHwwLDMpO2JyZWFrIGU7Y2FzZSA4OmFbYj4+Ml09YVsoZj1iKzY0fDApPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLFdvKGwsYiwzKTticmVhayBlO2Nhc2UgMTM6V28obCxt''@;'; put 'put ''LDQpO2JyZWFrIGU7Y2FzZSA2OmFbKGY9Yis4MHwwKT4+Ml09YVttPj4yXSxhW2YrND4+Ml09YVttKzQ+PjJdLGFbZis4Pj4yXT1hW20rOD4+Ml0sYVtmKzEyPj4yXT1hW20rMTI+PjJdLFdvKGwsYiszMnwwLDQpO2JyZWFrIGU7Y2FzZSAxMDphWyhmPWIrODB8MCk+PjJdPWFbbT4+Ml0sYVtm''@;'; put 'put ''KzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSxhWyhmPWIrOTZ8MCk+PjJdPWFbKGs9YiszMnwwKT4+Ml0sYVtmKzQ+PjJdPWFbays0Pj4yXSxhW2YrOD4+Ml09YVtrKzg+PjJdLGFbZisxMj4+Ml09YVtrKzEyPj4yXSxXbyhsLGIrNDh8''@;'; put 'put ''MCw0KTticmVhayBlO2Nhc2UgMTI6YVtiPj4yXT1hWyhmPWIrNjR8MCk+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0sV28obCxiLDQpO2JyZWFrIGU7Y2FzZSA5OldvKGwsbSwyKSxXbyhsLGIrNDh8MCwyKTticmVhayBl''@;'; put 'put ''O2Nhc2UgNDphW2I+PjJdPWFbKGY9Yis2NHwwKT4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSxXbyhsLGIsMiksV28obCxiKzMyfDAsMik7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fX13aGlsZSgwKTtsZT1NfWZ1bmN0''@;'; put 'put ''aW9uIFA0KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7MD09KDB8YVsoZj0yMDgrKG09MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSkmJjA9PSgxJml0W20rMjYwPj4xXSk/bD0wOihFaChsKSxsPTB8YVtmPj4yXSksKDB8bCkhPSgwfGFbYz4+Ml0pJiYoRnQobCksYVtmPj4yXT1hW2M+PjJd''@;'; put 'put ''KSwoMHwoZj0wfGFbKGw9bSsyMjh8MCk+PjJdKSkhPSgwfGFbKHA9Yys0fDApPj4yXSkmJihGdChmKSxhW2w+PjJdPWFbcD4+Ml0pLCgwfChmPTB8YVsobD1tKzI0NHwwKT4+Ml0pKSE9KDB8YVsocD1jKzh8MCk+PjJdKSYmKEZ0KGYpLGFbbD4+Ml09YVtwPj4yXSksKDB8KGY9MHxhWyhsPW0r''@;'; put 'put ''MjEyfDApPj4yXSkpIT0oMHxhWyhwPWMrMTJ8MCk+PjJdKSYmKEZ0KGYpLGFbbD4+Ml09YVtwPj4yXSksaXRbKG09bSsyNjB8MCk+PjFdPS0yJml0W20+PjFdfDEmZmVbYysxNj4+MF19ZnVuY3Rpb24gX0UobCxjKXtsfD0wO3ZhciBmLHA9MDswfChwPTB8YVsoY3w9MCk+PjJdKSYmKGFbbCsx''@;'; put 'put ''Nj4+Ml09cCksMHwocD0wfGFbYys0Pj4yXSkmJihhW2wrMjA+PjJdPXApLChmPStfW2MrMTY+PjNdKT49MCYmKF9bbCszMj4+M109Zil9ZnVuY3Rpb24gQjkobCxjLGYscCl7dmFyIG0sQSx3O2x8PTAsZj0rZixwPStwLG09bGUsbGU9bGUrNjR8MCxBPW0rMzJ8MCxhWyh3PW0pPj4yXT1hWyhj''@;'; put 'put ''fD0wKT4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxfW3crMTY+PjNdPStfW2M+PjNdK2YsX1t3KzI0Pj4zXT0rX1tjKzg+PjNdK3AsYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sYVtBKzg+PjJdPWFb''@;'; put 'put ''dys4Pj4yXSxhW0ErMTI+PjJdPWFbdysxMj4+Ml0sYVtBKzE2Pj4yXT1hW3crMTY+PjJdLGFbQSsyMD4+Ml09YVt3KzIwPj4yXSxhW0ErMjQ+PjJdPWFbdysyND4+Ml0sYVtBKzI4Pj4yXT1hW3crMjg+PjJdLHkzKGwsQSwxKSxsZT1tfWZ1bmN0aW9uIFVSKGwsYyxmKXtsfD0wO3ZhciBtLEEs''@;'; put 'put ''dyxNLHA9MCxiPTAsaz0wO2lmKEE9bGUsbGU9bGUrNjR8MCxNPShiPStfWyhmfD0wKT4+M10pKyArX1soY3w9MCk+PjNdLHc9KGs9K19bZis4Pj4zXSkrICtfW2MrOD4+M10says9K19bYysyND4+M10sX1sobT1BKT4+M109Yis9K19bYysxNj4+M10sX1ttKzg+PjNdPWssX1ttKzMyPj4zXT1N''@;'; put 'put ''LF9bbSs0MD4+M109dyxfW20rMTY+PjNdPU0sX1ttKzI0Pj4zXT1rLF9bbSs0OD4+M109YixfW20rNTY+PjNdPXcsKHA9MHxhW2MrMzY+PjJdKXx8KHA9MHxhW2YrNTY+PjJdKSwoZj0wfGFbYyszMj4+Ml0pfHxQcigxMzczMzQsMTM3MzQyLDYyMywxMzczNTQpLDB8ZmVbZj4+MF0pcmV0dXJu''@;'; put 'put ''IHRFKGwsZixtLDQsMSxwKSx2b2lkKGxlPUEpO1ByKDEzNzM2OCwxMzczNDIsNjI0LDEzNzM1NCl9ZnVuY3Rpb24gSzgobCl7RnQoMHxhWyhsfD0wKT4+Ml0pLEZ0KDB8YVtsKzQ+PjJdKSxGdCgwfGFbbCs4Pj4yXSksRnQoMHxhW2wrMTY+PjJdKSxGdCgwfGFbbCsxMj4+Ml0pLEZ0KDB8YVts''@;'; put 'put ''KzIwPj4yXSksRnQoMHxhW2wrMjQ+PjJdKX1mdW5jdGlvbiBKUihsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtpZigwfChsfD0wKSl7Zm9yKGI9bCs0fDAsZj0wLG09MHxhW2w+PjJdOyEoKDB8Zik+PSgwfGl0W2I+PjFdKSk7KXtmb3Ioaz1tKzR8MCxjPTAscD0wfGFb''@;'; put 'put ''bT4+Ml07ISgoMHxjKT49KDB8aXRbaz4+MV0pKTspRnQoMHxhW3A+PjJdKSwwfChBPTB8YVtwKzg+PjJdKSYmMHwodz0wfGFbcCsxMj4+Ml0pJiZDb1sxMjcmd10oQSksYz1jKzF8MCxwPXArNTZ8MDtmPWYrMXwwLG09bSsyNHwwfTB8KGM9MHxhW2w+PjJdKSYmRnQoYyksRnQobCl9fWZ1bmN0''@;'; put 'put ''aW9uIEFtKGwsYyl7c3dpdGNoKGN8PTAsMHxmZVs0KyhsfD0wKT4+MF0pe2Nhc2UgMTohZnVuY3Rpb24gbkcobCl7dmFyIHAsYz0wLGY9MDtpZihwPTg0KyhsfD0wKXwwLC0xPT0oMHxhW2wrMTAwPj4yXSkpTmwoMHxhW3A+PjJdKTtlbHNle2ZvcihjPTB8YVtwPj4yXSxGdCgwfGFbbCs5Mj4+''@;'; put 'put ''Ml0pLEZ0KDB8YVtsKzk2Pj4yXSk7Zj0wfGFbYz4+Ml07KVhSKGYpLGM9Yys0fDA7RnQoMHxhW3A+PjJdKX1LOChsKSxGdChsKX0oMHxhW2w+PjJdKTticmVhaztjYXNlIDM6IWZ1bmN0aW9uIHRHKGwpe0Z0KDB8YVszMisobHw9MCk+PjJdKSxGdChsKX0oMHxhW2w+PjJdKTticmVhaztkZWZh''@;'; put 'put ''dWx0OkpSKDB8YVtsPj4yXSl9MHxjJiZGdChsKX1mdW5jdGlvbiBYUihsKXtBbSg4OCsobHw9MCl8MCwwKSxLOChsKSxGdChsKX1mdW5jdGlvbiByRyhsLGMsZil7Znw9MDt2YXIgcD0wO3JldHVybiAyIT0oMHxmZVs0KyhsPTB8YVs3MisoMHxhWzEwNCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4y''@;'; put 'put ''XSk+PjJdKT4+MF0pJiYwIT0oMHwocD0wfEtSKDB8YVtsPj4yXSxjfD0wKSkpPyhhW2Y+PjJdPVh0W3ArMzU+PjBdLGw9cCs0OHwwKTpsPTAsMHxsfWZ1bmN0aW9uIEtSKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDswIT0oMHwoZj0wfGFbNCsobHw9MCk+PjJdKSkmJjA9PSgwfHkwKGYsYykpfHwo''@;'; put 'put ''cD0zKTtlOmRve2lmKDM9PSgwfHApKWZvcihmPTB8YVtsKzg0Pj4yXTs7KXtpZighKGw9MHxhW2Y+PjJdKSl7bD0wO2JyZWFrIGV9aWYobD0wfGlHKGwsYykpYnJlYWs7Zj1mKzR8MH19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBpRyhsLGMpe3ZhciBmO3JldHVybiBjfD0wLDAhPSgw''@;'; put 'put ''fChmPTB8YVs0KyhsfD0wKT4+Ml0pKSYmMD09KDB8eTAoZixjKSl8fChsPTE9PSgwfGZlW2wrOTI+PjBdKT8wfEtSKDB8YVtsKzg4Pj4yXSxjKTowKSwwfGx9ZnVuY3Rpb24gRjQobCl7dmFyIGMsZjtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLGM9ZiwobHw9MCk+Pj4wPDIxP2w9MHxhWzU1ODQw''@;'; put 'put ''KyhsPDwyKT4+Ml06KGFbYz4+Ml09bCxvbygxOTQ5NTksMTM3Mzk1LGMpLGw9MTk0OTU5KSxsZT1mLDB8bH1mdW5jdGlvbiBUMyhsLGMsZixwKXtwfD0wO3ZhciBtPTAsQT0wOyhtPTB8S2EobHw9MCxjfD0wLGZ8PTAsMCwwKSk/aXRbKEE9MTcwKygwfGFbbSsxNj4+Ml0pfDApPj4xXT0oMHwo''@;'; put 'put ''Zj0wfGhyW0E+PjFdKSk+KDB8cCk/ZjpwOihoMChBPTB8S2EobCxjLGYsMCwxKSwxMzc0NjAsMTc2LDEpLGl0WzE3MCsoMHxhW0ErMTY+PjJdKT4+MV09cCxsPShtPTB8YVsxODArKGw9MHxhWyhjPWMrMTZ8MCk+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW2wrMTg0Pj4yXTw8Mil8MCk6MHxRbig4''@;'; put 'put ''KyhhW2wrMTg0Pj4yXTw8Mil8MCksYVsxODArKHA9MHxhW2M+PjJdKT4+Ml09bCxhWyhwPXArMTg0fDApPj4yXT0xKyhtPTB8YVtwPj4yXSksYVtsKyhtPDwyKT4+Ml09QSxhWygwfGFbMTgwKyhjPTB8YVtjPj4yXSk+PjJdKSsoYVtjKzE4ND4+Ml08PDIpPj4yXT0wLGw9KG09MHxhWzE3Miso''@;'; put 'put ''bD0wfGFbKGM9ZisxNnwwKT4+Ml0pPj4yXSk/MHxWMChtLDgrKGFbbCsxNzY+PjJdPDwyKXwwKTowfFFuKDgrKGFbbCsxNzY+PjJdPDwyKXwwKSxhWzE3MisocD0wfGFbYz4+Ml0pPj4yXT1sLGFbKHA9cCsxNzZ8MCk+PjJdPTErKGY9MHxhW3A+PjJdKSxhW2wrKGY8PDIpPj4yXT1BLGFbKDB8''@;'; put 'put ''YVsxNzIrKEE9MHxhW2M+PjJdKT4+Ml0pKyhhW0ErMTc2Pj4yXTw8Mik+PjJdPTApfWZ1bmN0aW9uIGc2KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoYz0wfGFbMTkyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdO0E9MHxhWzE2NCsoMHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml07''@;'; put 'put ''KTB8S2EobCxjLEEsMCwwKXx8KGgwKG09MHxLYShsLGMsQSwwLDEpLDEzNzQ2MCwxNzYsMSksaXRbMTcwKygwfGFbbSsxNj4+Ml0pPj4xXT0wLGM9KGY9MHxhWzE4MCsoYz0wfGFbcD4+Ml0pPj4yXSk/MHxWMChmLDgrKGFbYysxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbYysxODQ+PjJdPDwy''@;'; put 'put ''KXwwKSxhWzE4MCsodz0wfGFbcD4+Ml0pPj4yXT1jLGFbKHc9dysxODR8MCk+PjJdPTErKGY9MHxhW3c+PjJdKSxhW2MrKGY8PDIpPj4yXT1tLGFbKDB8YVsxODArKHA9MHxhW3A+PjJdKT4+Ml0pKyhhW3ArMTg0Pj4yXTw8Mik+PjJdPTAsYz0oZj0wfGFbMTcyKyhjPTB8YVsocD1BKzE2fDAp''@;'; put 'put ''Pj4yXSk+PjJdKT8wfFYwKGYsOCsoYVtjKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtjKzE3Nj4+Ml08PDIpfDApLGFbMTcyKyhmPTB8YVtwPj4yXSk+PjJdPWMsYVsoZj1mKzE3NnwwKT4+Ml09MSsodz0wfGFbZj4+Ml0pLGFbYysodzw8Mik+PjJdPW0sYVsoMHxhWzE3MisoYz0wfGFbcD4+''@;'; put 'put ''Ml0pPj4yXSkrKGFbYysxNzY+PjJdPDwyKT4+Ml09MCksYz1BfWZ1bmN0aW9uIHY2KGwsYyl7Y3w9MDt2YXIgcCxtLHcsYixELFIsZj0wLEE9MCxrPTAsTT0wLEc9MCxxPTA7c3dpdGNoKFI9bGUsbGU9bGUrMjcyfDAsTT1SKzEwNHwwLEQ9UisxMzZ8MCx3PVIrNzJ8MCxtPVIrMTQ0fDAsYVso''@;'; put 'put ''Yj1SKSs0OD4+Ml09bHw9MCwwfGtpKGwpKXtjYXNlIDA6Zj0wfGFbbCs2MD4+Ml07YnJlYWs7Y2FzZSAxOmY9MHxjcihsKTticmVhaztjYXNlIDI6Zj0wfGNyKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSl9cmV0dXJuIGFbKEE9Yis1MnwwKT4+Ml09ZixrPTB8YVtm''@;'; put 'put ''KzYwPj4yXSxfW2IrMzI+PjNdPStfW2MrMTY+PjNdLGFbYisxNj4+Ml09YVtjKzQ+PjJdLGFbYisyMD4+Ml09YVtjKzg+PjJdLGFbYis0MD4+Ml09MCxwPTB8ZnVuY3Rpb24gX0IobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwLG0sQTtyZXR1cm4gbT1sZSxsZT1sZSsxNjB8MCxwPW0rOHww''@;'; put 'put ''LGFbKEE9bSk+PjJdPTAsYVtBKzQ+PjJdPTAsYVs0NzQwM109QSxhWzQ3NDAyXT0wLGFbNDc0MDBdPTAsYVs0NzQwNF09YVsxNDQrKDB8YVsxNisoMHxhW2YrNTI+PjJdKT4+Ml0pPj4yXSxhWzQ3NDA1XT0wfGlzKDU2MTA0LDB8YVs0NTgwXSksYVs0NzQwNl09MHxpcyg1NjE0MCwwfGFbNDU4''@;'; put 'put ''MF0pLHVzKHAsMTI4LG0rMjR8MCksYVs0NzQwMV09cCwwfGZ1bmN0aW9uIEdFKGwsYyxmKXtyZXR1cm4gbHw9MCxmfD0wLGFbNDc0MTBdPWN8PTAsdXMoMTg5NjQ0LDEyOCwwKSxhWzQ3NDA4XT1sLGZlWzE4OTY2M109MCxmZVsxODk2NjBdPTAsZmVbMTg5NjYxXT0wLGFbNDc0MThdPTAsYVs0''@;'; put 'put ''NzQxOV09MCxmZVsxODk2NjJdPTEsYz0wfGZ1bmN0aW9uIHN4KGwpe3JldHVybiAwfGZ1bmN0aW9uIG1fKGwsYyxmKXtyZXR1cm4gMHxmdW5jdGlvbiBHQihsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wOyhjfD0wKT8obT0wfF9vWzYzJmFbYz4+Ml1dKDQ5Nikp''@;'; put 'put ''PyhhW20rMTI+PjJdPUE9MHxhW2M+PjJdLGFbbSsxNj4+Ml09YVtjKzQ+PjJdLGFbbSsyMD4+Ml09YVtjKzg+PjJdLGM9QSxBPTYpOm09MDoobT0wfEYwKDQ5NikpPyhhW20rMTI+PjJdPTM1LGFbbSsxNj4+Ml09MTA3LGFbbSsyMD4+Ml09MTA1LGM9MzUsQT02KTptPTA7ZG97aWYoNj09KDB8''@;'; put 'put ''QSkpe2lmKGFbbSs4Pj4yXT0wLGFbbSszMj4+Ml09MCxhW20rMzc2Pj4yXT0xNixiPW0rMTJ8MCx3PTB8X29bNjMmY10oMjU2KSxhWyhjPW0rMzg4fDApPj4yXT13LCF3KXtDb1sxMjcmYVttKzIwPj4yXV0obSksbT0wO2JyZWFrfWlmKEE9MHxfb1s2MyZhW2I+PjJdXSgxMDI0KSxhWyh3PW0r''@;'; put 'put ''NDR8MCk+PjJdPUEsIUEpe0NvWzEyNyZhWyhmPW0rMjB8MCk+PjJdXSgwfGFbYz4+Ml0pLENvWzEyNyZhW2Y+PjJdXShtKSxtPTA7YnJlYWt9aWYoYVttKzQ4Pj4yXT1BKzEwMjQscClhW20rMzUyPj4yXT1wO2Vsc2UgaWYocD0wfHZHKGIpLGFbbSszNTI+PjJdPXAsIXApe0NvWzEyNyZhWyhm''@;'; put 'put ''PW0rMjB8MCk+PjJdXSgwfGFbdz4+Ml0pLENvWzEyNyZhW2Y+PjJdXSgwfGFbYz4+Ml0pLENvWzEyNyZhW2Y+PjJdXShtKSxtPTA7YnJlYWt9aWYoYVttKzM3Mj4+Ml09MCxhW20rMzY0Pj4yXT0wLGFbbSszMDA+PjJdPTAsYVttKzQ2ND4+Ml09MCxhW20rNDYwPj4yXT0wLGFbbSsxMjQ+PjJd''@;'; put 'put ''PTAsYVttKzI0ND4+Ml09MCxmZVsoYz1tKzQ2OHwwKT4+MF09MzMsZmVbKEE9bSsyMzJ8MCk+PjBdPTAsZmVbbSsyMzM+PjBdPTAsYVttKzM5Mj4+Ml09MCxhW20rMzk2Pj4yXT0wLGZlW20rNDAwPj4wXT0wLGFbKHA9bSsyMjh8MCk+PjJdPTAsYUEobSs0MTJ8MCxiKSxhQShtKzQzNnwwLGIp''@;'; put 'put ''LHZfKG0sbCksMHxsJiYwPT0oMHxhW3A+PjJdKSl7QV8obSksbT0wO2JyZWFrfWlmKGYpe2ZlW0E+PjBdPTEsYVttKzIyND4+Ml09NjAwOTIsZmVbYz4+MF09MHxmZVtmPj4wXTticmVha31hW20rMjI0Pj4yXT01ODIyMDticmVha319d2hpbGUoMCk7cmV0dXJuIDB8bX0obHw9MCxjfD0wLGZ8''@;'; put 'put ''PTAsMCl9KGx8PTAsMCwwKX0oMHxmdW5jdGlvbiBVb2UobCl7dmFyIGMsZjtzd2l0Y2goZj1sZSxsZT1sZSsxNnwwLGM9ZiwwfChsfD0wKSl7Y2FzZSAwOmw9MTAxOTcxO2JyZWFrO2Nhc2UgMTpsPTEwMTgzOTticmVhaztjYXNlIDI6bD0xMDE5Nzc7YnJlYWs7ZGVmYXVsdDphW2M+PjJdPWws''@;'; put 'put ''JHIoMSwxMDE5NDEsYyksbD0xMDE5NzF9cmV0dXJuIGxlPWYsMHxsfSgwfFh0WzExNSsoMHxhWzE2KygwfGFbKGY9Zis1MnwwKT4+Ml0pPj4yXSk+PjBdKSksYVs0NzQwN109YyxmdW5jdGlvbiB3RyhsLGMpe2N8PTA7dmFyIGY9MCxwPTA7MHwobHw9MCkmJihwPSgwfGFbKGY9bCs0fDApPj4y''@;'; put 'put ''XSk9PSgwfGFbbD4+Ml0pLGFbbD4+Ml09YyxwKSYmKGFbZj4+Ml09Yyl9KGMsMHxhWzE0NCsoMHxhWzE2KygwfGFbZj4+Ml0pPj4yXSk+PjJdKSxmdW5jdGlvbiBneChsLGMsZil7Znw9MCwwfChsfD0wKSYmKGFbbCs1Mj4+Ml09Y3w9MCxhW2wrNTY+PjJdPWYpfSgwfGFbNDc0MDddLDcwLDI3''@;'; put 'put ''KSxmdW5jdGlvbiBKQihsLGMpezB8KGx8PTApJiYoYVtsKzYwPj4yXT1jfD0wKX0oMHxhWzQ3NDA3XSw3MSksMH0obCxwLGYpPyhhW2M+PjJdPTIsbD0wKTooZnVuY3Rpb24gdkIoKXt2YXIgRyxwZSxsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxxPTA7''@;'; put 'put ''cGU9bGUsbGU9bGUrMTIwMHwwLEc9cGUrODAwfDAsZj1wZSxhWzQ3Mzk3XT0wLGFbNDczOThdPS0yLGM9RyxtPTIwMCxrPWYsRD0wLFI9MCxNPUc7ZTpmb3IoOzspe2lmKGl0W00+PjFdPUQsKGMrKG08PDEpKy0yfDApPj4+MD5NPj4+MCl3PW07ZWxzZXtpZihsPTErKGI9TS1jPj4xKXwwLG0+''@;'; put 'put ''Pj4wPjk5OTkpe3E9OTU7YnJlYWt9c3dpdGNoKChwPTB8RjAoNioodz0odz1tPDwxKT4+PjA8MWU0P3c6MWU0KXwzKSk/KGdvKDB8cCwwfGMsbDw8MXwwKSxnbygwfChtPXArKHc+Pj4xPDwyKXwwKSwwfGssbDw8MnwwKSwoMHxjKT09KDB8Ryk/KGw9MCxjPXApOihGdChjKSxsPTAsYz1wKSk6''@;'; put 'put ''KGw9NCxtPWspLHA9YysoYjw8MSl8MCwxNSYoKEE9MD09KDB8bCkpPyhjKyh3PDwxKSstMnwwKT4+PjA+cD4+PjA/MDo5OmwpKXtjYXNlIDk6bD0xLHE9OTY7YnJlYWsgZTtjYXNlIDQ6cT05NTticmVhayBlO2Nhc2UgMDpmPUE/bSsoYjw8Mil8MDpmLGs9bSxNPUE/cDpNO2JyZWFrO2RlZmF1''@;'; put 'put ''bHQ6bD0wO2JyZWFrIGV9fWlmKDMxPT0oMHxEKSl7bD0wLHE9OTY7YnJlYWt9QT0obD0wfGl0WzY1NTM0KyhEPDwxKT4+MV0pPDwxNj4+MTY7ZG97aWYobDw8MTY+PjE2IT0tODIpe2lmKC0yPT0oMHwocD0wfGFbNDczOThdKSkmJihwPTB8cUUoKSxhWzQ3Mzk4XT1wKSwoMHxwKT49MT9tPXA+''@;'; put 'put ''Pj4wPDI5Nj8wfFh0WzEzOTMyMStwPj4wXToyOihhWzQ3Mzk4XT0wLG09MCksKHA9bStBfDApPj4+MDw9MjcxJiYoMHxtKT09KDB8ZmVbMTM5NjE3K3A+PjBdKSl7aWYobD0oRD0wfGZlWzEzOTg4OStwPj4wXSk8PDI0Pj4yNCxEPDwyND4+MjQ8MSl7cD0wLWx8MCxxPTIzO2JyZWFrfWFbNDcz''@;'; put 'put ''OThdPS0yLGFbKGY9Zis0fDApPj4yXT1hWzQ3Mzk5XSxBPTA9PSgwfFIpPzA6UistMXwwLHA9TTticmVha31xPTIyfWVsc2UgcT0yMn13aGlsZSgwKTtpZigyMj09KDB8cSkpaWYocT0wLHA9MjU1JihEPTB8ZmVbMTQwMTYxK0Q+PjBdKSxEPDwyND4+MjQpcT0yMztlbHNle3A9MHxhWzQ3Mzk4''@;'; put 'put ''XTt0OmRve3N3aXRjaCgwfFIpe2Nhc2UgMDphWzQ3Mzk3XT0xKygwfGFbNDczOTddKSxOYSgxNDM3NjEpLHA9TTticmVhaztjYXNlIDM6aWYoKDB8cCk8MSl7aWYocCl7cD1NO2JyZWFrIHR9bD0xLHE9OTY7YnJlYWsgZX1hWzQ3Mzk4XT0tMixwPU07YnJlYWsgdDtkZWZhdWx0OnA9TX19d2hp''@;'; put 'put ''bGUoMCk7Zm9yKDtsPDwxNj4+MTYhPTg7KXtpZigoMHxwKT09KDB8Yykpe2w9MSxxPTk2O2JyZWFrIGV9Zj1mKy00fDAscD1sPXArLTJ8MCxsPTB8aXRbNjU1MzQrKGl0W2w+PjFdPDwxKT4+MV19YVsoZj1mKzR8MCk+PjJdPWFbNDczOTldLGw9MSxBPTN9ZG97aWYoMjM9PSgwfHEpKXtzd2l0''@;'; put 'put ''Y2gocT0wLGw9MHxhW2YrKDEtKEE9MHxYdFsxNDAyNzcrcD4+MF0pPDwyKT4+Ml0sMHxwKXtjYXNlIDQ6cT0yNjticmVhayBlO2Nhc2UgMjphWzQ3NDAwXT0wfEpiKDB8YVtmKy00Pj4yXSwyKTticmVhaztjYXNlIDM6YVs0NzQwMF09MHxKYigwfGFbZistND4+Ml0sMSk7YnJlYWs7Y2FzZSA1''@;'; put 'put ''Omw9MHxTbSgpO2JyZWFrO2Nhc2UgODpWRSgwfGFbNDc0MDFdKTticmVhaztjYXNlIDk6UTkoMHxhW2Y+PjJdKTticmVhaztjYXNlIDE4OmNhc2UgMjA6Y2FzZSAyMjpjYXNlIDI0OmNhc2UgMjY6Y2FzZSAyODpjYXNlIDMwOmNhc2UgMzI6VjQoMHxhW2Y+PjJdKTticmVhaztjYXNlIDE5OmNh''@;'; put 'put ''c2UgMjE6Y2FzZSAyMzpjYXNlIDI1OmNhc2UgMjc6Y2FzZSAyOTpjYXNlIDMxOmNhc2UgMzM6eGQoKTticmVhaztjYXNlIDM0OmNhc2UgNDE6Y2FzZSA0MjpjYXNlIDQzOmNhc2UgNDQ6Y2FzZSA0NTpjYXNlIDY0Omw9MHxhW2YrLTQ+PjJdO2JyZWFrO2Nhc2UgMzU6Y2FzZSA0MDpjYXNlIDQ4''@;'; put 'put ''OmNhc2UgNDk6Y2FzZSA1MzpjYXNlIDU0OmNhc2UgNjU6bD0wfGFbZj4+Ml07YnJlYWs7Y2FzZSAzODppZigobT0wfGFbNCsobD0wfGFbNDc0MDFdKT4+Ml0pPj4+MD49KDB8YVtsKzg+PjJdKT4+PjAmJihRMChsLDEpLGw9bT0wfGFbNDc0MDFdLG09MHxhW20rND4+Ml0pLGZlW20+PjBdPTAs''@;'; put 'put ''YVtsKzQ+PjJdPUQ9MHxhW2w+PjJdLDB8WGIoRCkpe3E9NTE7YnJlYWsgZX1hWzgwKygwfGFbZj4+Ml0pPj4yXT1hWzQ3NDAyXSxsPTB8aXMoNTYwMzIsMHxhWzQ1ODBdKSxhWzg0KygwfGFbZj4+Ml0pPj4yXT1sLGFbNDc0MDJdPWFbZj4+Ml0sYVsxMDgrKDB8YVtmPj4yXSk+PjJdPWFbYVs0''@;'; put 'put ''NzQwM10+PjJdLGw9MHxhW2Y+PjJdO2JyZWFrO2Nhc2UgMzk6aWYoKG09MHxhWzQrKGw9MHxhWzQ3NDAxXSk+PjJdKT4+PjA+PSgwfGFbbCs4Pj4yXSk+Pj4wJiYoUTAobCwxKSxsPW09MHxhWzQ3NDAxXSxtPTB8YVttKzQ+PjJdKSxmZVttPj4wXT0wLGFbbCs0Pj4yXT1EPTB8YVtsPj4yXSww''@;'; put 'put ''fFhiKEQpKXtxPTU2O2JyZWFrIGV9YVs0NzQwMl09YVs4MCsobD0wfGFbNDc0MDJdKT4+Ml07YnJlYWs7Y2FzZSA1MDpmZVsxMisoMHxhW2YrLTg+PjJdKT4+MF09MSxsPTB8YVtmPj4yXTticmVhaztjYXNlIDUxOmIxKCk7YnJlYWs7Y2FzZSA1MjpsPTB8aHUoKTticmVhaztjYXNlIDU1OmZl''@;'; put 'put ''WyhsPTEwMCsoMHxhW2YrLTg+PjJdKXwwKT4+MF09MXxmZVtsPj4wXSxsPTB8YVtmPj4yXTticmVhaztjYXNlIDU2Ok1tKDB8YVtmKy00Pj4yXSwwfGFbZj4+Ml0sMSk7YnJlYWs7Y2FzZSA1NzpjYXNlIDU5OmNhc2UgNjE6bD0wfGFbZistMTI+PjJdO2JyZWFrO2Nhc2UgNTg6TW0oMHxhW2Yr''@;'; put 'put ''LTQ+PjJdLDB8YVtmPj4yXSwyKTticmVhaztjYXNlIDYwOk1tKDB8YVtmKy00Pj4yXSwwfGFbZj4+Ml0sMyk7YnJlYWs7Y2FzZSA2MjpNbSgwfGFbZj4+Ml0sMHxTbSgpLDIpO2JyZWFrO2Nhc2UgNjM6bD0wfGFbZistOD4+Ml19aWYoRD1mKygobT0wLUF8MCk8PDIpfDAsbT1NKyhtPDwxKXww''@;'; put 'put ''LGY9RCs0fDAsYVtEKzQ+PjJdPWwsKHA9KEQ9MHxpdFttPj4xXSkrKDB8aXRbNjU3NjYrKChsPSgwfFh0WzE0MDQ0OStwPj4wXSktNDF8MCk8PDEpPj4xXSl8MCk+Pj4wPDI3MiYmKDB8ZmVbMTM5NjE3K3A+PjBdKT09KDB8RCkpe2w9MHxmZVsxMzk4ODkrcD4+MF0sQT1SLHA9bTticmVha31s''@;'; put 'put ''PTB8ZmVbMTQwNTE5K2w+PjBdLEE9UixwPW19fXdoaWxlKDApO209dyxEPWwsUj1BLE09cCsyfDB9MjY9PSgwfHEpPyhEMygpLGw9MSxxPTk2KTo1MT09KDB8cSk/KE5hKDE0MDM0NyksRDMoKSxsPTEscT05Nik6NTY9PSgwfHEpPyhOYSgxNDAzOTgpLEQzKCksbD0xLHE9OTYpOjk1PT0oMHxx''@;'; put 'put ''KSYmKE5hKDE0MDU1OCksbD0yLHE9OTYpLDk2PT0oMHxxKSYmKDB8YykhPSgwfEcpJiZGdChjKSxsZT1wZX0oKSxhW2M+PjJdPTB8ZnVuY3Rpb24gSzkoKXt2YXIgbDtyZXR1cm4gbD0oZmVbMTg5NjYxXXxmZVsxODk2NjBdKTw8MjQ+PjI0LEFfKDB8YVs0NzQwN10pLEMyKDE4OTY0NCksMHxs''@;'; put 'put ''fSgpLGw9MHxhWzQ3NDAwXSksTmwoMHxhWzQ3NDA1XSksTmwoMHxhWzQ3NDA2XSksYVs0NzQwNV09MCxhWzQ3NDA2XT0wLGFbNDc0MDNdPTAsQzIocCksbGU9bSwwfGx9KDB8YVtjPj4yXSxELGIpLHA/KDE9PSgwfGZlWyhmPXArNHwwKT4+MF0pPygwPT0oMHxhWzI0KygwfGFbcD4+Ml0pPj4y''@;'; put 'put ''XSkmJjB8d20obCkmJihBPTB8cmEoMHx3bShsKSksYVsyNCsoMHxhW3A+PjJdKT4+Ml09QSksaz0wfENFKGssMHxhW3A+PjJdLDAsYiksYVtEPj4yXT1hW0Q+PjJdfGssTWIodywtKHE9LjUqK19bNjQrKGs9MHxhW3A+PjJdKT4+M10pLC0oRz0uNSorX1trKzcyPj4zXSkscSxHKSxrPTB8YVtw''@;'; put 'put ''Pj4yXSxhW00+PjJdPWFbdz4+Ml0sYVtNKzQ+PjJdPWFbdys0Pj4yXSxhW00rOD4+Ml09YVt3Kzg+PjJdLGFbTSsxMj4+Ml09YVt3KzEyPj4yXSxhW00rMTY+PjJdPWFbdysxNj4+Ml0sYVtNKzIwPj4yXT1hW3crMjA+PjJdLGFbTSsyND4+Ml09YVt3KzI0Pj4yXSxhW00rMjg+PjJdPWFbdysy''@;'; put 'put ''OD4+Ml0sa0UoayxNLDE1KSk6KFNFKDB8YVsxNDQrKDB8YVtrKzE2Pj4yXSk+PjJdLDB8YVtwPj4yXSxiKSxNYih3LC0oRz0uNSorX1syNCsoTT0wfGFbcD4+Ml0pPj4zXSksLShxPS41KitfW00rMzI+PjNdKSxHLHEpLGFbKE09OCsoMHxhW3A+PjJdKXwwKT4+Ml09YVt3Pj4yXSxhW00rND4+''@;'; put 'put ''Ml09YVt3KzQ+PjJdLGFbTSs4Pj4yXT1hW3crOD4+Ml0sYVtNKzEyPj4yXT1hW3crMTI+PjJdLGFbTSsxNj4+Ml09YVt3KzE2Pj4yXSxhW00rMjA+PjJdPWFbdysyMD4+Ml0sYVtNKzI0Pj4yXT1hW3crMjQ+PjJdLGFbTSsyOD4+Ml09YVt3KzI4Pj4yXSksX1tjKzI0Pj4zXT0rX1t3KzE2Pj4z''@;'; put 'put ''XS0rX1t3Pj4zXSxfW2MrMzI+PjNdPStfW3crMjQ+PjNdLStfW3crOD4+M10sYVtjKzcyPj4yXT1wLDE9PSgwfGZlW2Y+PjBdKSYmKEZ0KDB8YVtjPj4yXSksYVtjPj4yXT0wfHJhKDE0MTYxMSkpLGY9MHxhW0Q+PjJdKToodXMoTSwxMjgsbSksZmVbYys4Mj4+MF09MCxmPTB8cmEoMHxmdW5j''@;'; put 'put ''dGlvbiBxUihsLGMpe2x8PTAsY3w9MDt2YXIgZj0wO2U6ZG97c3dpdGNoKDB8a2kobCkpe2Nhc2UgMDpjYXNlIDE6dW8oYywwfHRpKGwpKTticmVhaztjYXNlIDI6aWYodW8oYywwfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSksZj1sKy00OHwwLHVvKGMsMHx0''@;'; put 'put ''aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpmKSs0MD4+Ml0pKSwwfFNjKDB8Y3IoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdKSkpe3VvKGMsMTM3NzM4KTticmVhayBlfXVvKGMsMTQxNzQ3KTticmVhayBlfX13aGlsZSgwKTtyZXR1cm4obD0wfGFbKGY9Yys0fDApPj4yXSk+''@;'; put 'put ''Pj4wPj0oMHxhW2MrOD4+Ml0pPj4+MCYmKFEwKGMsMSksbD0wfGFbZj4+Ml0pLGZlW2w+PjBdPTAsYVtmPj4yXT1jPTB8YVtjPj4yXSwwfGN9KGwsTSkpLGFbYz4+Ml09ZixmPTE9PSgwfGFbYysxMj4+Ml0pPzB8eWsoZik6MHxSTihmLDB8YVtBPj4yXSksRnQoMHxhW2M+PjJdKSxhW2M+PjJd''@;'; put 'put ''PWYsdzcoMHxhWzE0NCsoMHxhW2srMTY+PjJdKT4+Ml0sYyksQzIoTSksZj0wfGFbRD4+Ml0pLGxlPVIsMHxmfWZ1bmN0aW9uIHdtKGwpe3ZhciBjPTAsZj0wOzAhPSgwfChjPTB8TGkobHw9MCwxMzc3MjkpKSkmJjAhPSgwfGZlW2M+PjBdKXx8KGY9Myk7ZG97aWYoMz09KDB8Zikpe2lmKDB8''@;'; put 'put ''KGM9MHxMaShsLDE0MDgyMykpJiYwfGZlW2M+PjBdKWJyZWFrO2M9MH19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBDRShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgYixNLEcscGUsZ2UsbT0wLEE9MCx3PTAsaz0wLEQ9MCxSPTAscT0wO2ZvcihnZT1sZSxsZT1sZSsxNnwwLHE9''@;'; put 'put ''Z2UrOHwwLEc9Z2UsMHwobT0wfGFbKHBlPTEwOCsoY3w9MCl8MCk+PjJdKSYmYm8ocCxtLDE4NjU3NiksYVtjKzgwPj4yXT1mLG09MHxmdW5jdGlvbiBuQihsLGMsZil7bHw9MCxmfD0wO3ZhciBnZSxiZSxPZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBl''@;'; put 'put ''PTA7Zm9yKGdlPTB8YVsoYj04NCsoY3w9MCl8MCk+PjJdLGJlPTB8eDcoKSxPZT0wfE1FKCksbT0wLHA9MCx3PTB8czAoZ2UpO3c7KXtmb3IoQT0wfHMwKDB8YVt3Kzg+PjJdKTtBOylBPTB8YVtBPj4yXSxtPW0rMXwwO3A9cCsxfDAsMHxmZVt3KzEyPj4wXSYmRUUoT2UscCksdz0wfGFbdz4+''@;'; put 'put ''Ml19Zm9yKHA9MHx2cig0KyhtPDwyKXwwKSxhW2I+PjJdPXAsbT0wLEE9MCx3PTAsRz0wLHE9MHxzMChnZSk7cTspe2ZvcihwZT02NTUzNSZHLFI9MCxEPTB8czAoMHxhW3ErOD4+Ml0pO0Q7KWFbcD4+Ml09TT0wfGFbRCs4Pj4yXSx3PTB8ckIobCxNLGMsZil8dyxiPTB8aUIoYmUsRyxSLE0p''@;'; put 'put ''LGl0W00rODY+PjFdPXBlLGl0W00rODQ+PjFdPWIsYj1iKygwfGhyW00rODA+PjFdKXwwLDB8VGIoT2Usaz1HKygwfGhyW00rODI+PjFdKXwwKSYmKGZlWyhSPU0rMTAwfDApPj4wXT0yfGZlW1I+PjBdKSxSPWIscD1wKzR8MCxEPTB8YVtEPj4yXSxtPSgwfGIpPigwfG0pP2I6bSxBPSgwfGsp''@;'; put 'put ''PigwfEEpP2s6QTtHPUcrMXwwLHE9MHxhW3E+PjJdfXJldHVybiBhW2MrMTAwPj4yXT1BLGFbYysxMDQ+PjJdPW0sTmwoZ2UpLE5sKE9lKSx5eShiZSksMHx3fShsLGMscCksMTI4JihsPTB8aXRbKEQ9YyszNnwwKT4+MV0pfHwoZmVbYyszMj4+MF09MiksZj1jKzMzfDAsMzImbHx8KGZlW2Y+''@;'; put 'put ''PjBdPTEpLGZ1bmN0aW9uICRSKGwpe2x8PTA7dmFyIGMsZixBLHA9MCxtPTA7QT1sZSxsZT1sZSsxNnwwLG09QSs0fDAsYVsoYz1BKT4+Ml09YVs0NjQ3XSwxIT0oMHwoZj0wfGFbbCsxMDA+PjJdKSkmJjEhPSgwfGFbKHA9bCsxMDR8MCk+PjJdKT8oYVtsKzkyPj4yXT0wfHZyKDQrKGY8PDIp''@;'; put 'put ''fDApLGFbbCs5Nj4+Ml09MHx2cig0KyhhW3A+PjJdPDwyKXwwKSxmZVttPj4wXT0wfGZlW2M+PjBdLGZlW20rMT4+MF09MHxmZVtjKzE+PjBdLGZlW20rMj4+MF09MHxmZVtjKzI+PjBdLGZlW20rMz4+MF09MHxmZVtjKzM+PjBdLHA9MHxvYygxMzc0NzMsbSwwKSxmZVttPj4wXT0wfGZlW2M+''@;'; put 'put ''PjBdLGZlW20rMT4+MF09MHxmZVtjKzE+PjBdLGZlW20rMj4+MF09MHxmZVtjKzI+PjBdLGZlW20rMz4+MF09MHxmZVtjKzM+PjBdLG09MHxvYygxMzc0NzgsbSwwKSxoMChwLDEzNzQ4MywyODAsMSksaDAobSwxMzc0ODMsMjgwLDEpLGZ1bmN0aW9uIEY5KGwsYyxmKXtjfD0wO3ZhciBiLGss''@;'; put 'put ''cD0wLG09MCxBPTAsdz0wLE09MCxEPTAsUj0wO2ZvcihiPTEwNCsobHw9MCl8MCxrPWwrMTAwfDAsdz0xNisoZnw9MCl8MCxwPTAsbT0wOyEoKDB8cCk+KDB8YVtiPj4yXSkpOyloMChBPTB8R3IoZiwwfEY0KHApLDEpLDEzNzQ0NywzMDQsMSksYVsxNzYrKDB8YVsoTT1BKzE2fDApPj4yXSk+''@;'; put 'put ''PjJdPTAsUj0wfHZyKDQrKGFbaz4+Ml08PDIpfDApLGFbMTcyKyhEPTB8YVtNPj4yXSk+PjJdPVIsYVtEKzE4ND4+Ml09MCxEPTB8dnIoNCsoYVtrPj4yXTw8Mil8MCksYVsxODArKDB8YVtNPj4yXSk+PjJdPUQsbT9hWzE2NCsoMHxhW20rMTY+PjJdKT4+Ml09QTphWzE5MisoMHxhW3c+PjJd''@;'; put 'put ''KT4+Ml09QSxwPXArMXwwLG09QTtmb3Iodz1jKzE2fDAscD0wLG09MDshKCgwfHApPigwfGFbaz4+Ml0pKTspaDAoQT0wfEdyKGMsMHxGNChwKSwxKSwxMzc0NDcsMzA0LDEpLGFbMTc2KygwfGFbKFI9QSsxNnwwKT4+Ml0pPj4yXT0wLE09MHx2cig0KyhhW2I+PjJdPDwyKXwwKSxhWzE3Miso''@;'; put 'put ''RD0wfGFbUj4+Ml0pPj4yXT1NLGFbRCsxODQ+PjJdPTAsRD0wfHZyKDQrKGFbYj4+Ml08PDIpfDApLGFbMTgwKygwfGFbUj4+Ml0pPj4yXT1ELG0/YVsxNjQrKDB8YVttKzE2Pj4yXSk+PjJdPUE6YVsxOTIrKDB8YVt3Pj4yXSk+PjJdPUEscD1wKzF8MCxtPUE7Zm9yKHA9MHxhW2wrODQ+PjJd''@;'; put 'put ''O209MHxhW3A+PjJdOylUMyhmLEQ9MHxHcihmLDB8RjQoMHxoclsoUj1tKzg0fDApPj4xXSksMCksUj0wfEdyKGYsMHxGNCgoMHxoclttKzgwPj4xXSkrKDB8aHJbUj4+MV0pfDApLDApLH5+K19bbSs2ND4+M10pLFQzKGMsRD0wfEdyKGMsMHxGNCgwfGhyWyhSPW0rODZ8MCk+PjFdKSwwKSxS''@;'; put 'put ''PTB8R3IoYywwfEY0KCgwfGhyW20rODI+PjFdKSsoMHxocltSPj4xXSl8MCksMCksfn4rX1ttKzcyPj4zXSkscD1wKzR8MDtnNihmKSxnNihjKX0obCxwLG0pLGs3KHAsMiwyMTQ3NDgzNjQ3KSxrNyhtLDIsMjE0NzQ4MzY0NyksZnVuY3Rpb24gbTYobCxjLGYpe2Z8PTA7dmFyIEEscD0wLG09''@;'; put 'put ''MCx3PTA7Zm9yKEE9OTIrKGx8PTApfDAscD0wLG09MCxjPTB8YVsxNisoMHxhWzE5MisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjJdO2M9MHxhW2MrMTY0Pj4yXTspYVsoMHxhW0E+PjJdKSsobTw8Mik+PjJdPSgwfGFbKHc9MjMyKyhjPTB8YVtjKzE2Pj4yXSl8MCk+PjJdKS1wLHA9MHxh''@;'; put 'put ''W3c+PjJdLG09bSsxfDA7Zm9yKGw9bCs5NnwwLHA9MCxtPTAsYz0wfGFbMTYrKDB8YVsxOTIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml07Yz0wfGFbYysxNjQ+PjJdOylhWygwfGFbbD4+Ml0pKyhtPDwyKT4+Ml09KDB8YVsodz0yMzIrKGM9MHxhW2MrMTY+PjJdKXwwKT4+Ml0pLXAscD0wfGFb''@;'; put 'put ''dz4+Ml0sbT1tKzF8MH0obCxwLG0pLGZ1bmN0aW9uIFNiKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTA7Zm9yKGY9MTkyKygwfGFbMTYrKGN8PTApPj4yXSl8MDtmPTB8YVtmPj4yXTspKHA9MHxhWzE3MisoZj0wfGFbKG09ZisxNnwwKT4+Ml0pPj4yXSkmJihGdChwKSxmPTB8YVttPj4yXSks''@;'; put 'put ''KHA9MHxhW2YrMTgwPj4yXSkmJihGdChwKSxmPTB8YVttPj4yXSksZj1mKzE2NHwwO0MxKGwpLEMxKGMpfShwLG0pKTpmdW5jdGlvbiB5bShsKXt2YXIgayxNLEQsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLFI9MCxHPTA7Zm9yKGFbKEQ9OTIrKGx8PTApfDApPj4yXT0wfHZyKDQrKGFb''@;'; put 'put ''bCsxMDA+PjJdPDwyKXwwKSxrPTB8dnIoNCsoYVtsKzEwND4+Ml08PDIpfDApLGFbbCs5Nj4+Ml09ayxNPWwrMzJ8MCxiPTB8YVtsKzg0Pj4yXTt3PTB8YVtiPj4yXTspe2ZvcihjPStfW3crNzI+PjNdLHA9KGw9MHxpdFt3KzgyPj4xXSk8PDE2Pj4xNj09MT9+fmM6KDB8KHA9fn4oKGMtKygw''@;'; put 'put ''fEFyKCgwfGZlW00+PjBdKS0xfDAsKDY1NTM1JmwpLTF8MCkpKS8rKDY1NTM1JmwpKSkpPjE/cDoxLGM9K19bdys2ND4+M10sQT0obT0wfGl0W3crODA+PjFdKTw8MTY+PjE2PT0xP35+YzooMHwoQT1+figoYy0rKDB8QXIoKDB8ZmVbTT4+MF0pLTF8MCwoNjU1MzUmbSktMXwwKSkpLysoNjU1''@;'; put 'put ''MzUmbSkpKSk+MT9BOjEsZj0oNjU1MzUmbCkrKFI9MHxoclt3Kzg2Pj4xXSl8MCxsPVI7ISgoMHxsKT49KDB8ZikpOylhWyhSPSgwfGFbRD4+Ml0pKyhsPDwyKXwwKT4+Ml09KDB8KEc9MHxhW1I+PjJdKSk+KDB8cCk/RzpwLGw9bCsxfDA7Zm9yKGY9KDY1NTM1Jm0pKyhsPTB8aHJbdys4ND4+''@;'; put 'put ''MV0pfDA7ISgoMHxsKT49KDB8ZikpOylhWyhHPWsrKGw8PDIpfDApPj4yXT0oMHwoUj0wfGFbRz4+Ml0pKT4oMHxBKT9SOkEsbD1sKzF8MDtiPWIrNHwwfX0obCksbGU9QX0oYyksbD0wfEFyKDErKHc9MHxhW2MrMTA0Pj4yXSl8MCxrPTB8ZmVbYyszMj4+MF0pLGI9WHRbZj4+MF08PDEsaz0w''@;'; put 'put ''fEFyKDErKE09MHxhW2MrMTAwPj4yXSl8MCxrKSxBPWMrOTZ8MCxsPWIrbHwwLGY9MDshKCgwfGYpPj0oMHx3KSk7KWw9KDB8YVsoMHxhW0E+PjJdKSsoZjw8Mik+PjJdKStsfDAsZj1mKzF8MDtmb3Iodz1jKzkyfDAsZj1rK2J8MCxBPTA7ISgoMHxBKT49KDB8TSkpOylmPSgwfGFbKDB8YVt3''@;'; put 'put ''Pj4yXSkrKEE8PDIpPj4yXSkrZnwwLEE9QSsxfDA7dz1jKzM4fDA7ZG97aWYoMSZpdFtEPj4xXSl7aWYoQT02NTUzNSYoRD0wfGl0W3c+PjFdKSxEPDwxNj4+MTYmJihSPTB8aXRbYys0MD4+MV0pPDwxNj4+MTYpe2lmKCEoKDB8bCk+KDB8QSl8KDB8Zik+KDY1NTM1JlJ8MCkpKXtmPTAsbD0w''@;'; put 'put ''O2JyZWFrfSRyKDAsMTM3NTI5LEcpLG09MSxmPTAsbD0wO2JyZWFrfSRyKDAsMTM3NTYzLHEpLG09MX19d2hpbGUoMCk7cmV0dXJuIF9bYys2ND4+M109KygwfCgoMHxsKT4oMHwocT0wfGhyW3c+PjFdKSk/bDpxKSksX1tjKzcyPj4zXT0rKDB8KCgwfGYpPigwfChxPTB8aHJbYys0MD4+MV0p''@;'; put 'put ''KT9mOnEpKSwwfGFbcGU+PjJdJiZfRShwLDE4NjU3NiksbGU9Z2UsMHxtfWZ1bmN0aW9uIE1iKGwsYyxmLHAsbSl7Zj0rZixwPStwLG09K20sX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWYsX1tsKzE2Pj4zXT1wLF9bbCsyND4+M109bX1mdW5jdGlvbiBrRShsLGMsZil7Y3w9MCxmfD0w''@;'; put 'put ''O3ZhciBSLGdlLGJlLFJlLFZlLHFlLHJ0LGF0LFN0LGt0LHN0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLHE9MCxwZT0wLE9lPTAsTGU9MCxIZT0wLFdlPTAsRXQ9MCxadD0wO3N0PWxlLGxlPWxlKzY0fDAsU3Q9c3QrMzJ8MCxrdD1zdCxXZT0wfGFbODQrKGx8PTApPj4y''@;'; put 'put ''XSwwfChBPTB8YVtsKzgwPj4yXSkmJjB8KHA9MHxhW0ErMjQ+PjJdKSYmMD09KDB8YVsobT1sKzI0fDApPj4yXSkmJihhW20+PjJdPTB8cmEocCkpLGF0PWwrNDh8MCwoMHwoQT1+figoYj0rX1socD1jKzE2fDApPj4zXSktKHc9K19bYz4+M10pLSsoMHx+fitfW2wrNjQ+PjNdKSkpKTw9LTEm''@;'; put 'put ''JlByKDEzNzQ5NiwxMzczNDIsMTc2MSwxMzc1MDYpLCgwfChHPX5+KChMZT0rX1soaz1jKzI0fDApPj4zXSktKEQ9K19bKE09Yys4fDApPj4zXSktKFI9KygwfH5+K19bbCs3Mj4+M10pKSkpKTw9LTEmJlByKDEzNzUxOSwxMzczNDIsMTc2NCwxMzc1MDYpLG09NjU1MzUmKHE9MHxpdFtsKzM2''@;'; put 'put ''Pj4xXSk7ZTpkb3tpZigxJm0pe3Q6ZG97aWYoKDB8QSk+MClzd2l0Y2goNiZtKXtjYXNlIDQ6X1twPj4zXT13K1I7YnJlYWsgdDtjYXNlIDI6X1twPj4zXT1iKyhFdD0rKDB8QSkpLF9bYz4+M109dys9RXQ7YnJlYWsgdDtkZWZhdWx0Ol9bYz4+M109dys9RXQ9KyhBPj4+MXwwKSxfW3A+PjNd''@;'; put 'put ''PWItRXQ7YnJlYWsgdH19d2hpbGUoMCk7aWYoKDB8Ryk+MClzd2l0Y2goMjQmcSl7Y2FzZSAxNjpfW2s+PjNdPUxlPUQrUixHPTAscD0wO2JyZWFrIGU7Y2FzZSA4Ol9baz4+M109TGUrPUV0PSsoMHxHKSxfW00+PjNdPUQrRXQsRz0wLHA9MDticmVhayBlO2RlZmF1bHQ6X1tNPj4zXT1EKyhF''@;'; put 'put ''dD0rKEc+Pj4xfDApKSxfW2s+PjNdPUxlLT1FdCxHPTAscD0wO2JyZWFrIGV9ZWxzZSBHPTAscD0wfWVsc2UgcD1BfXdoaWxlKDApO2ZvcihiPSsoMHxYdFtsKzMzPj4wXSksRD0rKChwZT0wfGZlWyhxZT1sKzMyfDApPj4wXSk8PDI0Pj4yNCksaz1+figrKDB8KGs9cC0oMHxBcihxPSgwfHAp''@;'; put 'put ''LygwfChBPTB8YVsocnQ9bCsxMDR8MCk+PjJdKSl8MCxBKSl8MCkpKygoMHxrKT4tMT8uNTotLjUpKSxWZT1sKzk2fDAsTT1wZTw8MjQ+PjI0LHA9fn4odytiK0QpLG09MDshKCgwfG0pPigwfEEpKTspQT0wfGFbKEhlPSgwfGFbVmU+PjJdKSsobTw8Mil8MCk+PjJdLGFbSGU+PjJdPXAscD1w''@;'; put 'put ''K3ErKCgwfG0pPCgwfGspJjEpK0ErTXwwLG09bSsxfDAsQT0wfGFbcnQ+PjJdO2ZvcihNPX5+KCsoMHwoTT1HLSgwfEFyKHE9KDB8RykvKDB8KEE9MHxhWyhIZT1sKzEwMHwwKT4+Ml0pKXwwLEEpKXwwKSkrKCgwfE0pPi0xPy41Oi0uNSkpLFJlPWwrOTJ8MCxrPXBlPDwyND4+MjQscD1+fihM''@;'; put 'put ''ZS1iLUQpLG09MDshKCgwfG0pPigwfEEpKTspQT0wfGFbKE9lPSgwfGFbUmU+PjJdKSsobTw8Mil8MCk+PjJdLGFbT2U+PjJdPXAscD1wLXErKCgoMHxtKTwoMHxNKSk8PDMxPj4zMSktQS1rfDAsbT1tKzF8MCxBPTB8YVtIZT4+Ml07Zm9yKHBlPTA9PSgwfGYpLGdlPWt0KzE2fDAsYmU9a3Qr''@;'; put 'put ''MjR8MCxPZT1rdCs4fDAscD1XZTtrPTB8YVtwPj4yXTspQT0wfGl0W2srODQ+PjFdLHBlPyhtPTAsTT0wfGl0W2srODA+PjFdLEc9MHxpdFtrKzg2Pj4xXSxxPTB8aXRbays4Mj4+MV0pOihtPUE8PDE2Pj4xNj09MD84OjAsbT0oRz0wfGl0W2srODY+PjFdKTw8MTY+PjE2PT0wPzR8bTptLG09''@;'; put 'put ''KCgoNjU1MzUmKE09MHxpdFtrKzgwPj4xXSkpKyg2NTUzNSZBKXwwKT09KDB8YVtydD4+Ml0pPzJ8bTptKXwoKDY1NTM1JihxPTB8aXRbays4Mj4+MV0pKSsoNjU1MzUmRyl8MCk9PSgwfGFbSGU+PjJdKSksX1trdD4+M109KygwfGFbKFp0PTB8YVtWZT4+Ml0pKygoQSY9NjU1MzUpPDwyKT4+''@;'; put 'put ''Ml0pLF9bZ2U+PjNdPSsoKDB8YVtadCsoKDY1NTM1Jk0pK0E8PDIpPj4yXSktKFdlPTB8ZmVbcWU+PjBdKXwwKSxfW2JlPj4zXT0rKDB8YVsoTT0wfGFbUmU+PjJdKSsoKDY1NTM1JkcpPDwyKT4+Ml0pLF9bT2U+PjNdPSsoKDB8YVtNKygoNjU1MzUmcSkrKDY1NTM1JkcpPDwyKT4+Ml0pK1dl''@;'; put 'put ''fDApLGFbU3Q+PjJdPWFba3Q+PjJdLGFbU3QrND4+Ml09YVtrdCs0Pj4yXSxhW1N0Kzg+PjJdPWFba3QrOD4+Ml0sYVtTdCsxMj4+Ml09YVtrdCsxMj4+Ml0sYVtTdCsxNj4+Ml09YVtrdCsxNj4+Ml0sYVtTdCsyMD4+Ml09YVtrdCsyMD4+Ml0sYVtTdCsyND4+Ml09YVtrdCsyND4+Ml0sYVtT''@;'; put 'put ''dCsyOD4+Ml09YVtrdCsyOD4+Ml0sZUIoayxTdCxtJmYpLHA9cCs0fDA7ZmVbbCszNT4+MF09ZixhW2F0Pj4yXT1hW2M+PjJdLGFbYXQrND4+Ml09YVtjKzQ+PjJdLGFbYXQrOD4+Ml09YVtjKzg+PjJdLGFbYXQrMTI+PjJdPWFbYysxMj4+Ml0sYVthdCsxNj4+Ml09YVtjKzE2Pj4yXSxhW2F0''@;'; put 'put ''KzIwPj4yXT1hW2MrMjA+PjJdLGFbYXQrMjQ+PjJdPWFbYysyND4+Ml0sYVthdCsyOD4+Ml09YVtjKzI4Pj4yXSxsZT1zdH1mdW5jdGlvbiBTRShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNu''@;'; put 'put ''LEhuLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLHVyPTAsSHI9MCxFcj0wO2ZvcihIbj1sZSxsZT1sZSsxMTJ8MCxzdD1Ibis0OHwwLFp0PUhuLGFbKEV0PUhuKzE2fDApPj4yXT0wLGFbRXQrND4+Ml09MCxhW0V0Kzg+PjJdPTAsYVtFdCsx''@;'; put 'put ''Mj4+Ml09MCxhW0V0KzE2Pj4yXT0wLGFbRXQrMjA+PjJdPTAsYVtFdCsyND4+Ml09MCxhW0V0KzI4Pj4yXT0wLGJ0PWYrMTZ8MCxhbj1mKzMyfDAsU249RXQrMTZ8MCxrPShHPTB8aXRbKGN0PWMrNHwwKT4+MV0pPDwxNj4+MTYscD0wLEE9LTEsYj0wOzspe2lmKCgwfGIpPj0oMHxrKSl7cD0x''@;'; put 'put ''O2JyZWFrfWlmKCgwfGl0WyhtPTB8YVtjPj4yXSkrKDI0KmJ8MCkrND4+MV0pPjEpe3A9MDticmVha31pZihtPTB8YVs0KygwfGFbbSsoMjQqYnwwKT4+Ml0pPj4yXSl7aWYoMTI3JmFbbSsyND4+Ml18MCl7cD0wO2JyZWFrfV9bU24+PjNdPXc9K19bKCtfW20rMTY+PjNdPjA/bTpidCkrMTY+''@;'; put 'put ''PjNdLG09MD09KDB8YVttPj4yXSk/YnQ6bX1lbHNlIF9bU24+PjNdPXc9K19bYW4+PjNdLG09YnQ7aWYoYVtFdD4+Ml09bT0wfGFbbT4+Ml0sLTEhPUEpe2lmKHchPUEpe3A9MDticmVha319ZWxzZSBBPXc7aWYocCl7aWYoMHxaaShtLHApKXtwPTA7YnJlYWt9fWVsc2UgcD1tO2I9YisxfDB9''@;'; put 'put ''Zm9yKGZlW2MrNj4+MF09cCxhdD1mKzQ4fDAsU3Q9ZisyMHwwLGt0PUV0KzR8MCxPZT1mKzQwfDAsTGU9RXQrMjR8MCxSZT1sKzE0NHwwLEhlPXN0KzR8MCxiZT1adCs4fDAsVmU9c3QrMTZ8MCxxZT1zdCsyNHwwLHJ0PXN0Kzh8MCxXZT1zdCsxMnwwLGY9MD09KDB8cCksQT0wLHE9MCxwZT0w''@;'; put 'put ''LGdlPTAsaz0wLHA9RzshKCgwfGspPj0ocDw8MTY+PjE2fDApKTspe2Zvcih3PTAsUj0wLGI9MCxEPTAsQT0wLG09MHxhW2M+PjJdOyEoKDB8Yik+PSgwfGl0W20rKDI0Kmt8MCkrND4+MV0pKTspYVtzdD4+Ml09MHxtMigwfGFbKDB8YVttKygyNCprfDApPj4yXSkrKDU2KmJ8MCk+PjJdLDB8''@;'; put 'put ''YVthdD4+Ml0pLChwPTB8YVsoMHxhWyhtPSgwfGFbYz4+Ml0pKygyNCprfDApfDApPj4yXSkrKDU2KmJ8MCkrND4+Ml0pPygocD0xMjcmYVtwKzI0Pj4yXSl8fChwPTEyNyZhW09lPj4yXSksYVtMZT4+Ml09LTEyOCZhW0xlPj4yXXxwLF9bU24+PjNdPStfWygrX1sxNisoRz0wfGFbKDB8YVtt''@;'; put 'put ''Pj4yXSkrKDU2KmJ8MCkrND4+Ml0pPj4zXT4wP0c6YnQpKzE2Pj4zXSxhW0V0Pj4yXT1hWygwPT0oMHxhW0c+PjJdKT9idDpHKT4+Ml0sYVtrdD4+Ml09YVsoMD09KDB8YVtHKzQ+PjJdKT9idDpHKSs0Pj4yXSk6KF9bU24+PjNdPStfW2FuPj4zXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW2t0Pj4y''@;'; put 'put ''XT1hW1N0Pj4yXSxhW0xlPj4yXT0tMTI4JmFbTGU+PjJdfDEyNyZhW09lPj4yXSksYVtIZT4+Ml09MHxtaVs2MyZhWyhtPTB8YVtSZT4+Ml0pPj4yXV0obSxFdCwxKSxsRChadCxsLHN0KSxIcj0rX1tadD4+M10sTT0rX1tiZT4+M10sRnQoMHxhWygwfGFbKDB8YVtjPj4yXSkrKDI0Kmt8MCk+''@;'; put 'put ''PjJdKSsoNTYqYnwwKT4+Ml0pLGFbKEc9MHxhWyhtPTB8YVtjPj4yXSkrKDI0Kmt8MCk+PjJdKSsoNTYqYnwwKT4+Ml09YVtzdD4+Ml0sX1tHKyg1NipifDApKzMyPj4zXT1IcixfW0crKDU2KmJ8MCkrMTY+PjNdPStfW1ZlPj4zXSxfW0crKDU2KmJ8MCkrMjQ+PjNdPStfW3FlPj4zXSxhW0cr''@;'; put 'put ''KDU2KmJ8MCkrND4+Ml09YVtIZT4+Ml0sYVtHKyg1NipifDApKzg+PjJdPWFbcnQ+PjJdLGFbRysoNTYqYnwwKSsxMj4+Ml09YVtXZT4+Ml0sdz0oRXI9K19bcWU+PjNdKT53P0VyOncsUj1IcitSLGI9YisxfDAsRD0odXI9K19bU24+PjNdKT5EP3VyOkQsQT1NPkE/TTpBO19bbSsoMjQqa3ww''@;'; put 'put ''KSs4Pj4zXT1SLHA9MD09KDB8ayk7ZG97aWYoZil7aWYocCl7TT1ELHc9RC13LHA9bTticmVha31NPUQsdz1wZS1nZStELXcscD1tKygyNCprfDApfDA7YnJlYWt9TT1BLHc9cD9EOkEscD1tKygyNCprfDApfDB9d2hpbGUoMCk7X1twKzE2Pj4zXT13LHE9Uj5xP1I6cSxwZT1NK3BlLGdlPStf''@;'; put 'put ''W20rKDI0Kmt8MCkrMTY+PjNdK2dlLGs9aysxfDAscD0wfGl0W2N0Pj4xXX1fW2MrMjQ+PjNdPXEsX1tjKzMyPj4zXT1wPDwxNj4+MTY9PTE/QTpwZSxsZT1Ibn1mdW5jdGlvbiBlQihsLGMsZil7Y3w9MCxmfD0wO3ZhciBSLHEsZ2UsTGUsUmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0w''@;'; put 'put ''LEQ9MCxHPTAscGU9MCxiZT0wLE9lPTAsSGU9MDtMZT1sZSxsZT1sZSs2NHwwLGdlPUxlKzMyfDAsT2U9TGUsMD09KDB8YVsobT0yNCsobHw9MCl8MCk+PjJdKSYmMHwocD0wfGFbMjQrKDB8YVtsKzk2Pj4yXSk+PjJdKSYmKGFbbT4+Ml09MHxyYShwKSkscD02NTUzNSYoYmU9MHxpdFsocT1s''@;'; put 'put ''KzM2fDApPj4xXSk7ZTpkb3tpZigxJnApe0Q9K19bbCs3Mj4+M10sYj0odz0rX1sobT1jKzE2fDApPj4zXSktKGs9K19bYz4+M10pLShBPStfW2wrNjQ+PjNdKTt0OmRve2lmKGI+MClzd2l0Y2goNiZwKXtjYXNlIDQ6X1ttPj4zXT13PWsrQSxBPWs7YnJlYWsgdDtjYXNlIDI6X1ttPj4zXT13''@;'; put 'put ''PWIrdyxfW2M+PjNdPUE9aytiO2JyZWFrIHQ7ZGVmYXVsdDpfW2M+PjNdPUE9KE09LjUqYikrayxfW20+PjNdPXctPU07YnJlYWsgdH1lbHNlIEE9a313aGlsZSgwKTtpZigoaz0oTT0rX1socD1jKzI0fDApPj4zXSktKGI9K19bKG09Yys4fDApPj4zXSktRCk+MClzd2l0Y2goMjQmYmUpe2Nh''@;'; put 'put ''c2UgMTY6X1twPj4zXT1rPWIrRDticmVhayBlO2Nhc2UgODpfW3A+PjNdPUQ9aytNLF9bbT4+M109Yis9ayxrPUQ7YnJlYWsgZTtkZWZhdWx0Ol9bbT4+M109Yj0oayo9LjUpK2IsX1twPj4zXT1rPU0tazticmVhayBlfWVsc2Ugaz1NfWVsc2UgQT0rX1tjPj4zXSxiPStfW2MrOD4+M10sdz0r''@;'; put 'put ''X1tjKzE2Pj4zXSxrPStfW2MrMjQ+PjNdfXdoaWxlKDApO3N3aXRjaChhWyhHPWwrNDh8MCk+PjJdPWFbYz4+Ml0sYVtHKzQ+PjJdPWFbYys0Pj4yXSxhW0crOD4+Ml09YVtjKzg+PjJdLGFbRysxMj4+Ml09YVtjKzEyPj4yXSxhW0crMTY+PjJdPWFbYysxNj4+Ml0sYVtHKzIwPj4yXT1hW2Mr''@;'; put 'put ''MjA+PjJdLGFbRysyND4+Ml09YVtjKzI0Pj4yXSxhW0crMjg+PjJdPWFbYysyOD4+Ml0sZmVbbCszNT4+MF09ZixfW09lPj4zXT1NPUErKEhlPSsoMHxYdFtsKzMzPj4wXSkpKyhSZT0rKDB8WHRbbCszND4+MF0pKSxfWyhHPU9lKzh8MCk+PjNdPUQ9YitIZStSZSxfWyhjPU9lKzE2fDApPj4z''@;'; put 'put ''XT1iPXctSGUtUmUsX1soUj1PZSsyNHwwKT4+M109az1rLUhlLVJlLG09bCs4OHwwLDB8ZmVbbCs5Mj4+MF0pe2Nhc2UgMTpiZT0wfGFbbT4+Ml0sYVtnZT4+Ml09YVtPZT4+Ml0sYVtnZSs0Pj4yXT1hW09lKzQ+PjJdLGFbZ2UrOD4+Ml09YVtPZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW09lKzEy''@;'; put 'put ''Pj4yXSxhW2dlKzE2Pj4yXT1hW09lKzE2Pj4yXSxhW2dlKzIwPj4yXT1hW09lKzIwPj4yXSxhW2dlKzI0Pj4yXT1hW09lKzI0Pj4yXSxhW2dlKzI4Pj4yXT1hW09lKzI4Pj4yXSxrRShiZSxnZSxmKTticmVhaztjYXNlIDM6QT0rX1syNCsocD0wfGFbbT4+Ml0pPj4zXSx3PWItTS0rX1twKzE2''@;'; put 'put ''Pj4zXTtlOmRve2lmKHc+MClzd2l0Y2goNiZiZSl7Y2FzZSA0Ol9bYz4+M109Yi13O2JyZWFrIGU7Y2FzZSAyOl9bT2U+PjNdPXcrTTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCk7QT1rLUQtQTtlOmRve2lmKEE+MClzd2l0Y2goMjQmYmUpe2Nhc2UgMTY6X1tSPj4zXT1rLUE7''@;'; put 'put ''YnJlYWsgZTtjYXNlIDg6X1tHPj4zXT1BK0Q7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApO2FbZ2U+PjJdPWFbT2U+PjJdLGFbZ2UrND4+Ml09YVtPZSs0Pj4yXSxhW2dlKzg+PjJdPWFbT2UrOD4+Ml0sYVtnZSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVtnZSsxNj4+Ml09YVtPZSsx''@;'; put 'put ''Nj4+Ml0sYVtnZSsyMD4+Ml09YVtPZSsyMD4+Ml0sYVtnZSsyND4+Ml09YVtPZSsyND4+Ml0sYVtnZSsyOD4+Ml09YVtPZSsyOD4+Ml0sZnVuY3Rpb24gdEIobCxjKXthWyhsfD0wKT4+Ml09YVsoY3w9MCk+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wr''@;'; put 'put ''MTI+PjJdPWFbYysxMj4+Ml0sYVtsKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbCsyMD4+Ml09YVtjKzIwPj4yXSxhW2wrMjQ+PjJdPWFbYysyND4+Ml0sYVtsKzI4Pj4yXT1hW2MrMjg+PjJdfShwLGdlKTticmVhaztkZWZhdWx0OkE9K19bMzIrKHA9MHxhW20+PjJdKT4+M10sdz1iLU0tK19bcCsy''@;'; put 'put ''ND4+M107ZTpkb3tpZih3PjAmJihwZT02JmJlLHBlPDwxNj4+MTYhPTYpKXN3aXRjaCg3JnBlKXtjYXNlIDQ6X1tjPj4zXT1iLXc7YnJlYWsgZTtjYXNlIDI6X1tPZT4+M109dytNO2JyZWFrIGU7ZGVmYXVsdDpfW09lPj4zXT0oSGU9LjUqdykrTSxfW2M+PjNdPWItSGU7YnJlYWsgZX19d2hp''@;'; put 'put ''bGUoMCk7QT1rLUQtQTtlOmRve2lmKEE+MClzd2l0Y2goMjQmYmUpe2Nhc2UgMTY6X1tSPj4zXT1rLUE7YnJlYWsgZTtjYXNlIDg6X1tHPj4zXT1BK0Q7YnJlYWsgZTtkZWZhdWx0Ol9bRz4+M109KEhlPS41KkEpK0QsX1tSPj4zXT1rLUhlO2JyZWFrIGV9fXdoaWxlKDApO2FbKGJlPXArOHww''@;'; put 'put ''KT4+Ml09YVtPZT4+Ml0sYVtiZSs0Pj4yXT1hW09lKzQ+PjJdLGFbYmUrOD4+Ml09YVtPZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW09lKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW09lKzE2Pj4yXSxhW2JlKzIwPj4yXT1hW09lKzIwPj4yXSxhW2JlKzI0Pj4yXT1hW09lKzI0Pj4yXSxhW2JlKzI4Pj4y''@;'; put 'put ''XT1hW09lKzI4Pj4yXSxmdW5jdGlvbiBFYihsLGMpe2N8PTA7dmFyIHAsZj0wLG09MDtmb3IocD0wfGl0WzQrKGx8PTApPj4xXSxmPTA7ISgoMHxmKT49KDB8cCkpOykwfGZlWyhtPSgwfGFbbD4+Ml0pKygyNCpmfDApKzZ8MCk+PjBdfHwoZmVbbT4+MF09YyksZj1mKzF8MH0oMHxhW20+PjJd''@;'; put 'put ''LDUxMj09KDEwMjMmKE9lPTc2OCZpdFtxPj4xXSkpPzEwODoyNTY9PSgxMDIzJk9lKT8xMTQ6MTEwKX1sZT1MZX1mdW5jdGlvbiByQihsLGMsZixwKXtsfD0wLHB8PTA7dmFyIGssTSxSLEcscSxwZSxtPTAsQT0wLHc9MCxiPTAsRD0wO3N3aXRjaChxPWxlLGxlPWxlKzE2fDAsRz1xKzh8MCxS''@;'; put 'put ''PXEsYVs5NisoY3w9MCk+PjJdPWZ8PTAsNjQmKGI9MHxpdFsoTT1jKzM2fDApPj4xXSl8fChmZVtjKzM0Pj4wXT13PTY0Jml0W2YrMzY+PjFdPzB8ZmVbZiszND4+MF06MiksMzImYnx8KCh3PTB8ZmVbZis4OD4+MF0pPDwyND4+MjQ8PS0xJiYodz0zMiZpdFtmKzM2Pj4xXT8wfGZlW2YrMzM+''@;'; put 'put ''PjBdOjEpLGZlW2MrMzM+PjBdPXcpLHc9Yys4OHwwLDB8ZmVbKGs9Yys5MnwwKT4+MF0pe2Nhc2UgMTpiPTB8Q0UobCwwfGFbdz4+Ml0sYyxwKSxmPTB8YVt3Pj4yXSx3PWIsYj1mKzY0fDAsZj1mKzcyfDA7YnJlYWs7Y2FzZSAzOmI9MHxmdW5jdGlvbiBvQihsLGMpe3ZhciBtLHcsYixrLGY9''@;'; put 'put ''MCxwPTAsQT0wO3JldHVybiBrPWxlLGxlPWxlKzE2fDAsdz1rLFVHKEE9ays4fDAsMHxhWyhjPTUyKyhjfD0wKXwwKT4+Ml0sMHxhWyhtPTMyKyhsfD0wKXwwKT4+Ml0pLGI9MHxhW0E+PjJdLC0xPT0oKEE9MHxhW0ErND4+Ml0pJmJ8MCk/KGFbdz4+Ml09YVttPj4yXSwkcigxLDEzNzY5Nyx3''@;'; put 'put ''KSxjPTEscD0wLGY9MCk6KGZlWzExNCsoMHxhWzE2KygwfGFbYz4+Ml0pPj4yXSk+PjBdPTEsYz0wLHA9KygwfEEpLGY9KygwfGIpKSxhW2w+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLF9bbCsxNj4+M109ZixfW2wrMjQ+PjNdPXAsbGU9aywwfGN9KDB8YVt3''@;'; put 'put ''Pj4yXSxwKSxmPTB8YVt3Pj4yXSx3PWIsYj1mKzE2fDAsZj1mKzI0fDA7YnJlYWs7ZGVmYXVsdDpTRSgwfGFbMTQ0KygwfGFbbCsxNj4+Ml0pPj4yXSwwfGFbdz4+Ml0scCksZj0wfGFbdz4+Ml0sdz0wLGI9ZisyNHwwLGY9ZiszMnwwfUE9K19bYj4+M10rKG09KygoMHxYdFtjKzMzPj4wXSkr''@;'; put 'put ''KDB8WHRbYyszND4+MF0pPDwxfDApKSxtPStfW2Y+PjNdK20sZj1jKzM4fDA7ZG97aWYoMSZpdFtNPj4xXSl7aWYoKGI9MHxpdFtmPj4xXSk8PDE2Pj4xNiYmKEQ9MHxpdFtjKzQwPj4xXSk8PDE2Pj4xNil7aWYoIShBPisoNjU1MzUmYil8bT4rKDY1NTM1JkQpKSl7QT0wLG09MDticmVha31p''@;'; put 'put ''ZigzPT0oMHxmZVtrPj4wXSkpe0E9MCxtPTA7YnJlYWt9JHIoMCwxMzc2MTQsUiksdz0xLEE9MCxtPTA7YnJlYWt9JHIoMCwxMzc2NDcsRyksdz0xfX13aGlsZSgwKTtyZXR1cm4gX1tjKzY0Pj4zXT1BPihwZT0rKDB8aHJbZj4+MV0pKT9BOnBlLF9bYys3Mj4+M109bT4oQT0rKDB8aHJbYys0''@;'; put 'put ''MD4+MV0pKT9tOkEsbGU9cSwwfHd9ZnVuY3Rpb24gaUIobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTA7dmFyIGIsayxtPTAsQT0wLHc9MDtiPSgwfGhyWyhrPTgwKyhwfD0wKXwwKT4+MV0pLTF8MCx3PTA7ZTpmb3IoOzspZm9yKG09Zjs7KXtpZih3KWJyZWFrIGU7Zm9yKEE9YittfDA7Oyl7aWYo''@;'; put 'put ''KDB8QSk8KDB8bSkpe2Y9bSx3PTE7Y29udGludWUgZX1pZigwfHhRKGwsQSxjKSlicmVhaztBPUErLTF8MH1tPUErMXwwfWZvcih3PXArODJ8MCxtPWY7KDB8bSk8KGYrKDB8aHJbaz4+MV0pfDApOyl7Zm9yKEE9YzshKCgwfEEpPj0oKDB8aHJbdz4+MV0pK2N8MCkpOyllNChsLG0sQSksQT1B''@;'; put 'put ''KzF8MDttPW0rMXwwfXJldHVybiAwfGZ9ZnVuY3Rpb24gTUUoKXtyZXR1cm4gMHxpcyg1NTkyNCwwfGFbNDU4MV0pfWZ1bmN0aW9uIEVFKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9bGUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0wLG1pWzYzJmFbbD4+Ml1dKGwscCwxKSxsZT1mfWZ1bmN0aW9u''@;'; put 'put ''IFRiKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09Y3w9MCxjPTAhPSgwfG1pWzYzJmFbbD4+Ml1dKGwscCw1MTIpKSYxLGxlPWYsMHxjfWZ1bmN0aW9uIERiKCl7dmFyIGMsZixsPTA7Zm9yKGM9MHxhWzQ3Mzg3XSxmPTB8YVs0NzM3NV0sbD0x''@;'; put 'put ''Ozspe2lmKCgwfGwpPigwfGMpKXtsPTU7YnJlYWt9aWYoKDB8YVs0KygwfGFbZisobDw8Mik+PjJdKT4+Ml0pIT0oMHxsKSl7bD00O2JyZWFrfWw9bCsxfDB9aWYoND09KDB8bCkpUHIoMTM4Mzk0LDEzNzc0MSw1OSwxMzc3NDcpO2Vsc2UgaWYoNT09KDB8bCkpcmV0dXJufWZ1bmN0aW9uIEg5''@;'; put 'put ''KGwpe3ZhciBtLEEsdyxjPTAsZj0wLHA9MDtmb3Iodz0wfGFbKEE9MHxhWyhtPTB8YVs0NzM3NV0pKygobHw9MCk8PDIpPj4yXSk+PjJdO3A9bSsobDw8Mil8MCwhKCgwfGFbKGY9MHxhW20rKChjPSgwfGwpLzJ8MCk8PDIpPj4yXSk+PjJdKT49KDB8dykpOylhW3A+PjJdPWYsYVtmKzQ+PjJd''@;'; put 'put ''PWwsbD1jO2FbcD4+Ml09QSxhW0ErND4+Ml09bH1mdW5jdGlvbiBOOShsKXtsfD0wO3ZhciBmLGM9MDtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLCgwfChjPTB8YVs0NzM4N10pKT09KDB8YVs0NzM4Nl0pPygkcigxLDEzNzc1NSxmKSxsPTEpOihhWzQ3Mzg3XT1jPWMrMXwwLGFbKDB8YVs0NzM3''@;'; put 'put ''NV0pKyhjPDwyKT4+Ml09bCxIOShjKSxEYigpLGw9MCksbGU9ZiwwfGx9ZnVuY3Rpb24geEUoKXt2YXIgbD0wLGM9MCxmPTAscD0wO3JldHVybihjPTB8YVs0NzM4N10pPyhsPTB8YVsoZj00KyhwPTB8YVs0NzM3NV0pfDApPj4yXSxhW2Y+PjJdPWFbcCsoYzw8Mik+PjJdLGFbNDczODddPWM9''@;'; put 'put ''YystMXwwLDB8YyYmZnVuY3Rpb24gbEIobCl7dmFyIHAsbSxBLHcsYixjPTAsZj0wLGs9MCxNPTAsRD0wO2ZvcihBPTB8YVsobT0wfGFbKHA9MHxhWzQ3Mzc1XSkrKChsfD0wKTw8Mik+PjJdKT4+Ml0sYj0oMHwodz0wfGFbNDczODddKSkvMnwwOyEoKDB8bCk+KDB8Yil8fChmPWw8PDEsYz0w''@;'; put 'put ''fGFbcCsoZjw8Mik+PjJdLCgwfGYpPCgwfHcpJiYoRD0xfGYsaz0wfGFbcCsoRDw8Mik+PjJdLE09KDB8YVtjPj4yXSk8KDB8YVtrPj4yXSksZj1NP0Q6ZixjPU0/azpjKSwoMHxBKT49KDB8YVtjPj4yXSkpKTspYVtwKyhsPDwyKT4+Ml09YyxhW2MrND4+Ml09bCxsPWY7YVtwKyhsPDwyKT4+''@;'; put 'put ''Ml09bSxhW20rND4+Ml09bH0oMSksRGIoKSk6bD0wLDB8bH1mdW5jdGlvbiBzQihsLGMpe2FbKGx8PTApPj4yXT1jfD0wLEg5KDB8YVtsKzQ+PjJdKSxEYigpfWZ1bmN0aW9uIFRFKGwsYyxmKXt2YXIgYixrLE0sRCxwPTAsbT0wLEE9MCx3PTAsUj0wO2Zvcih3PSgwfGZlWyh3PTB8YVsoTT0x''@;'; put 'put ''NisobHw9MCl8MCk+PjJdKSsoNDAqKDB8YVsxMisoZnw9MCk+PjJdKXwwKSszNj4+MF0pIT0oMHxmZVt3Kyg0MCooMHxhW2YrMTY+PjJdKXwwKSszNj4+MF0pLG09KDB8KGI9fn4oLjUqKCtfWzY0KyhjfD0wKT4+M10tMy0rX1tjKzQ4Pj4zXSkpKSk8KDB8KGs9fn4oLjUqKCtfW2MrNTY+PjNd''@;'; put 'put ''LTMtK19bYys0MD4+M10pKSkpP2I6ayxEPWMrNHwwLHA9MDs7KXtpZigoMHxwKT49KDB8KGw9MHxhW0Q+PjJdKSkpe209cDticmVha31pZigoMHxmZVsoUj0wfGFbTT4+Ml0pKyg0MCooMHxhWzEyKyhBPTB8YVtjKzgrKHA8PDIpPj4yXSk+PjJdKXwwKSszNj4+MF0pPT0oMHxmZVtSKyg0MCoo''@;'; put 'put ''MHxhW0ErMTY+PjJdKXwwKSszNj4+MF0pKXttPXA7YnJlYWt9SUUoQSxtKSxwPXArMXwwfWZvcig7ISgoMHxtKT49KDB8bCkpOyl3fCgwfChwPTB8YVtjKzgrKG08PDIpPj4yXSkpPT0oMHxmKSYmKElFKHAsMHxmZVsoMHxhW00+PjJdKSsoNDAqKDB8YVtwKzEyPj4yXSl8MCkrMzY+PjBdP2I6''@;'; put 'put ''ayksbD0wfGFbRD4+Ml0pLG09bSsxfDB9ZnVuY3Rpb24gSUUobCxjKXt2YXIgZixwO2N8PTAsYVsoZj04KyhsfD0wKXwwKT4+Ml09MSsocD0wfGFbZj4+Ml0pLCgwfHApPj0oMHxjKSYmKGFbZj4+Ml09MCxfW2w+PjNdPStfW2w+PjNdKzE2Mzg0KX1mdW5jdGlvbiBIbChsLGMsZixwLG0pe2x8''@;'; put 'put ''PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wO0E9MHxtaVs2MyZhWyhjfD0wKT4+Ml1dKGMsZnw9MCw1MTIpO2Rve2lmKEEpdz1BO2Vsc2V7aWYobD0wfHVtKGwpLHApe3c9cCsoKEE9MHxhW2wrMzI+PjJdKTw8NSl8MCxhWyhwPXArKEE8PDUpKzh8MCk+PjJdPWFbZj4+Ml0sYVtwKzQ+PjJdPWFb''@;'; put 'put ''Zis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+PjJdLGFbcCsxMj4+Ml09YVtmKzEyPj4yXSxhW3c+PjJdPWwsZmVbbCszNj4+MF09bSxtaVs2MyZhW2M+PjJdXShjLHcsMSk7YnJlYWt9UHIoMTM4MTgzLDEzODEzMSwyOTEsMTM4MTkwKX19d2hpbGUoMCk7cmV0dXJuIDB8YVt3Pj4yXX1mdW5jdGlv''@;'; put 'put ''biBmQihsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtlOmRve2lmKC41KigrX1tsKzY0Pj4zXS0zLStfW2wrNDg+PjNdKTwyKWZvcihBPTB8YVtsKzMyPj4yXSx3PWwrMzZ8MCxtPTA7Oyl7aWYoKDB8bSk+PSgwfEEpKWJyZWFrIGU7Yz0wfGFbKDB8YVt3Pj4yXSkrKG08PDIp''@;'; put 'put ''Pj4yXTt0OmRve2lmKDB8ZmVbYyszNj4+MF0paWYocD0wfGFbYysyMD4+Ml0sKDB8cCk9PSgwfGwpKXtjPWY9MHxhW2MrMjQ+PjJdLGY9MHxhW2Y+PjJdO2Rve2lmKGFbYz4+Ml09OHxmLCEoYz0wfGFbYVtjKzM2Pj4yXT4+Ml0pKWJyZWFrIHQ7Zj0wfGFbKGM9MHxhW2MrMjQ+PjJdKT4+Ml19''@;'; put 'put ''d2hpbGUoISgxJmZ8MCkpfWVsc2V7Zj1wLGM9MHxhW3A+PjJdO2Rve2lmKGFbZj4+Ml09OHxjLCEoYz0wfGFbOCsoMHxhW2YrMzY+PjJdKT4+Ml0pKWJyZWFrIHQ7Yz0wfGFbKGY9MHxhW2MrMjA+PjJdKT4+Ml19d2hpbGUoISgxJmN8MCkpfX13aGlsZSgwKTttPW0rMXwwfX13aGlsZSgwKTtl''@;'; put 'put ''OmRve2lmKC41KigrX1tsKzU2Pj4zXS0zLStfW2wrNDA+PjNdKTwyKWZvcihBPTB8YVtsKzMyPj4yXSx3PWwrMzZ8MCxtPTA7Oyl7aWYoKDB8bSk+PSgwfEEpKWJyZWFrIGU7Yz0wfGFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXTt0OmRve2lmKCEoMHxmZVtjKzM2Pj4wXSkpaWYocD0wfGFbYysy''@;'; put 'put ''MD4+Ml0sKDB8cCk9PSgwfGwpKXtjPWY9MHxhW2MrMjQ+PjJdLGY9MHxhW2Y+PjJdO2Rve2lmKGFbYz4+Ml09MTZ8ZiwhKGM9MHxhWzQrKDB8YVtjKzM2Pj4yXSk+PjJdKSlicmVhayB0O2Y9MHxhWyhjPTB8YVtjKzI0Pj4yXSk+PjJdfXdoaWxlKCEoMSZmfDApKX1lbHNle2Y9cCxjPTB8YVtw''@;'; put 'put ''Pj4yXTtkb3tpZihhW2Y+PjJdPTE2fGMsIShjPTB8YVsxMisoMHxhW2YrMzY+PjJdKT4+Ml0pKWJyZWFrIHQ7Yz0wfGFbKGY9MHxhW2MrMjA+PjJdKT4+Ml19d2hpbGUoISgxJmN8MCkpfX13aGlsZSgwKTttPW0rMXwwfX13aGlsZSgwKX1mdW5jdGlvbiAkOChsLGMpe2N8PTA7dmFyIEEsZj0w''@;'; put 'put ''LHA9MCxtPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wO209LjUqKCh3PStfWzY0KyhsfD0wKT4+M10tK19bbCs0OD4+M10pKyhBPStfW2wrNTY+PjNdLStfW2wrNDA+PjNdKSkrNTAwLC41Kih3Ky0zKTwyPyhtPShNPTA9PSg4JmFbbD4+Ml18MCkpPzE2Mzg0Om0scT1N''@;'; put 'put ''PzE2Mzg0OkEpOnE9QSwuNSooQSstMyk8MiYmKHc9KE09MD09KDE2JmFbbD4+Ml18MCkpPzE2Mzg0OncsbT1NPzE2Mzg0Om0pLDAhPSgwfChwPTB8YVs4KyhmPTB8YVsoTT1sKzM2fDApPj4yXSk+PjJdKSkmJjAhPSgwfChiPTB8YVtmKzQ+PjJdKSkmJihiPTB8djMoYyxwLGIsbSksYVsocD1s''@;'; put 'put ''KzR8MCk+PjJdPTErKGY9MHxhW3A+PjJdKSxhW2wrOCsoZjw8Mik+PjJdPWIsZj0wfGFbTT4+Ml0pLDAhPSgwfChwPTB8YVtmKzQ+PjJdKSkmJjAhPSgwfChrPTB8YVtmPj4yXSkpJiYoaz0wfHYzKGMscCxrLG0pLGFbKGI9bCs0fDApPj4yXT0xKyhmPTB8YVtiPj4yXSksYVtsKzgrKGY8PDIp''@;'; put 'put ''Pj4yXT1rLGY9MHxhW00+PjJdKSwwIT0oMHwocD0wfGFbZis4Pj4yXSkpJiYwIT0oMHwoRD0wfGFbZisxMj4+Ml0pKSYmKEQ9MHx2MyhjLHAsRCxtKSxhWyhrPWwrNHwwKT4+Ml09MSsoZj0wfGFbaz4+Ml0pLGFbbCs4KyhmPDwyKT4+Ml09RCxmPTB8YVtNPj4yXSksMCE9KDB8KHA9MHxhW2Yr''@;'; put 'put ''MTI+PjJdKSkmJjAhPSgwfChSPTB8YVtmPj4yXSkpJiYoUj0wfHYzKGMscCxSLG0pLGFbKEQ9bCs0fDApPj4yXT0xKyhmPTB8YVtEPj4yXSksYVtsKzgrKGY8PDIpPj4yXT1SLGY9MHxhW00+PjJdKSwwIT0oMHwocD0wfGFbZis0Pj4yXSkpJiYwIT0oMHwoRz0wfGFbZisxMj4+Ml0pKSYmKEc9''@;'; put 'put ''MHx2MyhjLHAsRyx3KSxhWyhSPWwrNHwwKT4+Ml09MSsoZj0wfGFbUj4+Ml0pLGFbbCs4KyhmPDwyKT4+Ml09RyxmPTB8YVtNPj4yXSksMHwocD0wfGFbZis4Pj4yXSkmJjB8KHBlPTB8YVtmPj4yXSkmJihjPTB8djMoYyxwLHBlLHEpLGFbKEc9bCs0fDApPj4yXT0xKyhwZT0wfGFbRz4+Ml0p''@;'; put 'put ''LGFbbCs4KyhwZTw8Mik+PjJdPWMpfWZ1bmN0aW9uIHE4KGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgdyxiLGssQT0wLE09MDtmb3Ioaz1sZSxsZT1sZSs5NnwwLGI9ayxhWyh3PWsrNjR8MCk+PjJdPWFbKGZ8PTApPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4y''@;'; put 'put ''XT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLGFbdysxNj4+Ml09YVtmKzE2Pj4yXSxhW3crMjA+PjJdPWFbZisyMD4+Ml0sYVt3KzI0Pj4yXT1hW2YrMjQ+PjJdLGFbdysyOD4+Ml09YVtmKzI4Pj4yXSxJMyh3LG0sMSxiKSxmPTB8QmIocCwxLGIpLEE9MDshKCgwfEEpPj0oMHxj''@;'; put 'put ''KSk7KWFbdz4+Ml09YVsoTT1sKyg3MipBfDApKzQwfDApPj4yXSxhW3crND4+Ml09YVtNKzQ+PjJdLGFbdys4Pj4yXT1hW00rOD4+Ml0sYVt3KzEyPj4yXT1hW00rMTI+PjJdLGFbdysxNj4+Ml09YVtNKzE2Pj4yXSxhW3crMjA+PjJdPWFbTSsyMD4+Ml0sYVt3KzI0Pj4yXT1hW00rMjQ+PjJd''@;'; put 'put ''LGFbdysyOD4+Ml09YVtNKzI4Pj4yXSxJMyh3LG0sMCxiKSxmPTB8QmIocCxmLGIpLEE9QSsxfDA7bGU9a31mdW5jdGlvbiBWOShsLGMpe2x8PTAsY3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTA7Zm9yKGY9MDshKCgwfGYpPigwfGwpKTspYVtjKyhmPDwyKT4+Ml09ZixmPWYrMXwwO2ZvcihB''@;'; put 'put ''PWwrMXwwLGY9MTshKCgwfGYpPigwfGwpKTspcD1jKyhmPDwyKXwwLG09YysoKHc9fn4oK3FjKCkqKyhBLWZ8MCkrICsoMHxmKSkpPDwyKXwwLCgwfGYpIT0oMHx3KSYmKHc9MHxhW3A+PjJdLGFbcD4+Ml09YVttPj4yXSxhW20+PjJdPXcpLGY9ZisxfDB9ZnVuY3Rpb24gZnUobCxjLGYscCxt''@;'; put 'put ''KXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3LGIsRCxBPTAsaz0wLE09MCxSPTAsRz0wLHE9MDtmb3IoRD0wfHZyKChrPTErKEE9NSoobHw9MCl8MCl8MCk8PDIpLGFbNDczODhdPTB8dnIoazw8NCksYVs0NzM4OV09MHx2cig1NisoNTYqbHwwKXwwKSxrPTB8dnIobDw8MiksYVs0NzM5MF09''@;'; put 'put ''ayxNPTA7ISgoMHxNKT4oMHxBKXx8MHxfbShmKyg3MipNfDApfDAsYykpOylNPU0rMXwwO2Zvcih3PTB8YVs0NzM4OF0sYj0wfGFbNDczODldLEE9MTshKCgwfEEpPigwfGwpKTspYVt3KyhBPDw0KSs4Pj4yXT1hW2MrKDU2KkF8MCkrNDg+PjJdLGFbdysoQTw8NCkrND4+Ml09YVsoUj1jKyg1''@;'; put 'put ''NipBfDApKzQ0fDApPj4yXSxhW3crKEE8PDQpPj4yXT1BLGFbKEc9YisoNTYqQXwwKXwwKT4+Ml09YVsocT1jKyg1NipBfDApfDApPj4yXSxhW0crND4+Ml09YVtxKzQ+PjJdLGFbRys4Pj4yXT1hW3ErOD4+Ml0sYVtHKzEyPj4yXT1hW3ErMTI+PjJdLGFbYisoNTYqQXwwKSsxNj4+Ml09YVtS''@;'; put 'put ''Pj4yXSxhW2IrKDU2KkF8MCkrMzI+PjJdPUEsYVtiKyg1NipBfDApKzQ4Pj4yXT0xLEE9QSsxfDA7cmV0dXJuIGFbNDczOTFdPWwsYVs0NzM5Ml09MCxhW2s+PjJdPTEsQT0oMHwoQT0wfGFbZisoNzIqTXwwKSs0MD4+Ml0pKTw9MD8oMHwoQT0wfGFbZisoNzIqTXwwKSs0OD4+Ml0pKT4wPzB8''@;'; put 'put ''TG8oRCxtLDAsYyxmLDAsTSxBLHAsMik6MDowfExvKEQsbSwwLGMsZiwwLE0sQSxwLDEpLEZ0KEQpLEZ0KDB8YVs0NzM4OF0pLEZ0KDB8YVs0NzM4OV0pLEZ0KDB8YVs0NzM5MF0pLDB8QX1mdW5jdGlvbiBFZChsLGMsZil7dmFyIHAsbSxBLHc7cmV0dXJuIHc9K19bKCtfWyhjfD0wKT4+M10+''@;'; put 'put ''K19bKGZ8PTApPj4zXT9jOmYpPj4zXSxfWzE2KyhsfD0wKT4+M109QT0rX1soK19bYysxNj4+M108K19bZisxNj4+M10/YzpmKSsxNj4+M10sX1tsPj4zXT13LG09K19bKCtfW2MrOD4+M10+K19bZis4Pj4zXT9jOmYpKzg+PjNdLF9bbCsyND4+M109cD0rX1soK19bYysyND4+M108K19bZisy''@;'; put 'put ''ND4+M10/YzpmKSsyND4+M10sX1tsKzg+PjNdPW0sISh3Pj1BKSYhKG0+PXApJjF8MH1mdW5jdGlvbiBfbShsLGMpe2N8PTA7dmFyIG0sZj0wLHA9MDttPTB8YVs0KyhsfD0wKT4+Ml07ZG97aWYoMj09KDB8YVtsKzY4Pj4yXSl8fCgwfG0pPDF8KDB8YVtsPj4yXSk8MSlsPTA7ZWxzZXtpZigh''@;'; put 'put ''KCgwfGFbbCs0MD4+Ml0pPDEmJigwfGFbbCs0ND4+Ml0pPDEpKXtpZigoMHxhW2wrNDg+PjJdKT49MSl7bD0wO2JyZWFrfWlmKCgwfGFbbCs1Mj4+Ml0pPj0xKXtsPTA7YnJlYWt9fWw9KGY9K19bYysoNTYqbXwwKSsyND4+M10pPjFlLTcrKHA9K19bYysoNTYqbXwwKSs4Pj4zXSk/MTpmPHAr''@;'; put 'put ''LTFlLTc/MDorX1tjKyg1NiptfDApKzE2Pj4zXT4rX1tjKyg1NiptfDApPj4zXSYxfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIExvKGwsYyxmLHAsbSxBLHcsYixrLE0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLGJ8PTAsTXw9MDt2YXIgU3QsRD0wLFI9MCxHPTAscT0w''@;'; put 'put ''LHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wLHVyPTAsSHI9MCxFcj0wO1N0PTA9PSgwfChrfD0wKSksYXQ9d3w9MDtlOmZvcig7cWU9bSsoNzIqYXR8''@;'; put 'put ''MCl8MCwhKCgwfGF0KTwxfHwodz1sKyhhdDw8Mil8MCwwfGFbdz4+Ml0pKTspe2Fbdz4+Ml09MSxSZT1tKyg3MiphdHwwKSs4fDAsSGU9bSsoNzIqYXR8MCkrMjR8MCwocT0rX1soT2U9bSsoNzIqYXR8MCkrMTZ8MCk+PjNdKT4oRz0rX1soVmU9bSsoNzIqYXR8MCkrMzJ8MCk+PjNdKSYmKGN0''@;'; put 'put ''PStfW3ArKDU2KihXZT0wfGFbcWU+PjJdKXwwKT4+M10pPT0rX1twKyg1NipXZXwwKSsxNj4+M10mJihhbj0rX1twKyg1NiooV2U9MHxhW20rKDcyKmF0fDApKzQ+PjJdKXwwKT4+M10pPT0rX1twKyg1NipXZXwwKSsxNj4+M10mJih3PWMrKGY8PDUpfDAsU3Q/KF9bdz4+M109Y3QscGU9cSxx''@;'; put 'put ''PWFuKTooX1t3Pj4zXT1HLHBlPS1jdCxHPS1hbiksX1tjKyhmPDw1KSs4Pj4zXT1HLF9bYysoZjw8NSkrMTY+PjNdPXEsX1tjKyhmPDw1KSsyND4+M109cGUsZj1mKzF8MCkscnQ9MHxhWyh3PW0rKDcyKmF0fDApKzQwfDApPj4yXTtkb3tpZigoMHxydCk8MSYmKDB8YVsoU249bSsoNzIqYXR8''@;'; put 'put ''MCkrNDR8MCk+PjJdKTwxKXtpZihSPW0rKDcyKmF0fDApKzUyfDAsKDB8YVsodz1tKyg3MiphdHwwKSs0OHwwKT4+Ml0pPjAmJigwfChIbj0wfGFbUj4+Ml0pKT4wKXtpZihEPTB8YVttKyg3MipIbnwwKT4+Ml0sTT0wfGFbcWU+PjJdLCgwfEhuKT09KDB8Yikpe009MHxYcyhBLE0sRCksZj0w''@;'; put 'put ''fExvKGwsYyxmLHAsbSxBLDB8YVtSPj4yXSxhdCxrLDEpLEE9TSxNPTE7YnJlYWt9TT0wfFhzKEEsRCxNKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLGF0LGssMSksQT1NLHc9UixNPTE7YnJlYWt9Zj0wfExvKGwsYyxmLHAsbSxBLHJ0LGF0LGssMiksZj0wfExvKGwsYyxmLHAsbSxB''@;'; put 'put ''LDB8YVtTbj4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLGF0LGssMSksdz1SLE09MX1lbHNlIEVyPTE5fXdoaWxlKDApO2Rve2lmKDE5PT0oMHxFcikpe2lmKEVyPTAsKDB8KGdlPTB8YVsoV2U9bSsoNzIqYXR8MCkrNDh8MCk+PjJdKSk8MSYmKDB8YVsodXI9bSso''@;'; put 'put ''NzIqYXR8MCkrNTJ8MCk+PjJdKTwxKXtpZihSPW0rKDcyKmF0fDApKzQ0fDAsKDB8cnQpPjAmJigwfChIcj0wfGFbUj4+Ml0pKT4wKXtpZihEPTB8YVttKyg3MiphdHwwKSs0Pj4yXSxNPTB8YVttKyg3MipydHwwKSs0Pj4yXSwoMHxIcik9PSgwfGIpKXtNPTB8WHMoQSxNLEQpLGY9MHxMbyhs''@;'; put 'put ''LGMsZixwLG0sQSwwfGFbUj4+Ml0sYXQsaywyKSxBPU0sTT0yO2JyZWFrfU09MHxYcyhBLEQsTSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxhdCxrLDIpLEE9TSx3PVIsTT0yO2JyZWFrfWY9MHxMbyhsLGMsZixwLG0sQSxydCxhdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFb''@;'; put 'put ''Uj4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW1dlPj4yXSxhdCxrLDEpLHc9dXIsTT0xO2JyZWFrfWlmKEQ9KDB8KGJlPTB8YVsoTGU9bSsoNzIqYXR8MCkrNDR8MCk+PjJdKSk+MCwoMHxydCk+MCl7aWYoRCl7aWYoKDB8Z2UpPjAmJigwfChzdD0wfGFbKGt0PW0rKDcyKmF0''@;'; put 'put ''fDApKzUyfDApPj4yXSkpPjApe2lmKFI9MHxhW20rKDcyKnN0fDApPj4yXSxEPTB8YVttKyg3MipydHwwKSs0Pj4yXSwhKDI9PSgwfE0pJigwfHN0KT09KDB8Yil8fDE9PSgwfE0pJigwfGJlKT09KDB8YikpKXtNPTB8WHMoQSxSLEQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sYXQs''@;'; put 'put ''aywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW1dlPj4yXSxhdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbTGU+PjJdLGF0LGssMiksQT1NLHc9a3QsTT0xO2JyZWFrfU09MHxYcyhBLEQsUiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtMZT4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYs''@;'; put 'put ''cCxtLEEsMHxhW2t0Pj4yXSxhdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbdz4+Ml0sYXQsaywyKSxBPU0sdz1XZSxNPTE7YnJlYWt9aWYoK2VvKCsoK19bVmU+PjNdLStfW3ArKDU2KihEPTB8YVtxZT4+Ml0pfDApKzI0Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tIZT4+M10tK19bcCso''@;'; put 'put ''NTYqRHwwKSsxNj4+M10pKTw9MWUtNyl7aWYoUj0wfGFbbSsoNzIqcnR8MCkrND4+Ml0sRD0wfGFbcCsoNTYqRHwwKSs0ND4+Ml0sMT09KDB8TSkmKDB8cnQpPT0oMHxiKSl7TT0wfFhzKEEsRCxSKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLGF0LGssMiksZj0wfExvKGwsYyxmLHAs''@;'; put 'put ''bSxNLDB8YVtXZT4+Ml0sYXQsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW0xlPj4yXSxhdCxrLDIpLEE9TSx3PW0rKDcyKmF0fDApKzUyfDAsTT0xO2JyZWFrfU09MHxYcyhBLFIsRCksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtMZT4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYscCxtLEEs''@;'; put 'put ''MHxhW1dlPj4yXSxhdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbbSsoNzIqYXR8MCkrNTI+PjJdLGF0LGssMSksQT1NLE09MjticmVha31pZihSPTB8YVttKyg3MiphdHwwKSs0Pj4yXSxEPTB8YVttKyg3MipydHwwKSs0Pj4yXSwxPT0oMHxNKSYoMHxiZSk9PSgwfGIpKXtNPTB8WHMo''@;'; put 'put ''QSxELFIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbTGU+PjJdLGF0LGssMiksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVttKyg3MiphdHwwKSs1Mj4+Ml0sYXQsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW1dlPj4yXSxhdCxrLDEpLEE9TSxNPTI7YnJlYWt9TT0wfFhzKEEsUixEKSxmPTB8''@;'; put 'put ''TG8obCxjLGYscCxtLEEsMHxhW3c+PjJdLGF0LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sYXQsaywxKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcyKmF0fDApKzUyPj4yXSxhdCxrLDEpLEE9TSx3PUxlLE09MjticmVha319ZWxzZSBpZighRClicmVhayBlO2lmKCgw''@;'; put 'put ''fGdlKT4wJiYoMHwoWnQ9MHxhWyhFdD1tKyg3MiphdHwwKSs1MnwwKT4+Ml0pKT4wKXtpZigrZW8oKygrX1tPZT4+M10tK19bcCsoNTYqKFI9MHxhW3FlPj4yXSl8MCkrOD4+M10pKTw9MWUtNyYmK2VvKCsoK19bUmU+PjNdLStfW3ArKDU2KlJ8MCk+PjNdKSk8PTFlLTcpe2lmKEQ9MHxhW20r''@;'; put 'put ''KDcyKlp0fDApPj4yXSwyPT0oMHxNKSYoMHxnZSk9PSgwfGIpKXtNPTB8WHMoQSxELFIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbV2U+PjJdLGF0LGssMSksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVt3Pj4yXSxhdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbbSsoNzIqYXR8MCkrNDQ+''@;'; put 'put ''PjJdLGF0LGssMiksQT1NLHc9RXQsTT0xO2JyZWFrfU09MHxYcyhBLFIsRCksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVttKyg3MiphdHwwKSs0ND4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW0V0Pj4yXSxhdCxrLDEpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sYXQs''@;'; put 'put ''aywyKSxBPU0sdz1XZSxNPTE7YnJlYWt9aWYoRD0wfGFbbSsoNzIqWnR8MCk+PjJdLFI9MHxhW3ArKDU2KigwfGFbbSsoNzIqYXR8MCkrND4+Ml0pfDApKzQ0Pj4yXSwyPT0oMHxNKSYoMHxadCk9PSgwfGIpKXtNPTB8WHMoQSxSLEQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbRXQ+PjJdLGF0''@;'; put 'put ''LGssMSksZj0wfExvKGwsYyxmLHAsbSxNLDB8YVttKyg3MiphdHwwKSs0ND4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW3c+PjJdLGF0LGssMiksQT1NLHc9V2UsTT0xO2JyZWFrfU09MHxYcyhBLEQsUiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVt3Pj4yXSxhdCxrLDIpLGY9''@;'; put 'put ''MHxMbyhsLGMsZixwLG0sQSwwfGFbV2U+PjJdLGF0LGssMSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVttKyg3MiphdHwwKSs0ND4+Ml0sYXQsaywyKSxBPU0sdz1FdCxNPTE7YnJlYWt9aWYoK2VvKCsoKEc9K19bT2U+PjNdKS0rX1twKyg1NiooUj0wfGFbcWU+PjJdKXwwKSs4Pj4zXSkpPD0x''@;'; put 'put ''ZS03JiYrZW8oKygrX1tSZT4+M10tK19bcCsoNTYqUnwwKT4+M10pKTw9MWUtNyYmK2VvKCsoK19bVmU+PjNdLStfW3ArKDU2KihidD0wfGFbbSsoNzIqYXR8MCkrND4+Ml0pfDApKzg+PjNdKSk8PTFlLTcmJitlbygrKCtfW0hlPj4zXS0rX1twKyg1NipidHwwKT4+M10pKTw9MWUtNyl7aWYo''@;'; put 'put ''MT09KDB8TSkpe009MHxYcyhBLFIsYnQpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbdz4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcyKmF0fDApKzQ0Pj4yXSxhdCxrLDIpLGY9MHxMbyhsLGMsZixwLG0sTSwwfGFbbSsoNzIqYXR8MCkrNTI+PjJdLGF0LGssMSksQT1N''@;'; put 'put ''LHc9V2UsTT0xO2JyZWFrfU09MHxYcyhBLGJ0LFIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFbbSsoNzIqYXR8MCkrNTI+PjJdLGF0LGssMSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sYXQsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW3c+PjJdLGF0LGssMiksQT1NLHc9bSso''@;'; put 'put ''NzIqYXR8MCkrNDR8MCxNPTI7YnJlYWt9aWYoK2VvKCsoRy0rX1twKyg1NiooYj0wfGFbbSsoNzIqYXR8MCkrND4+Ml0pfDApKzI0Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tSZT4+M10tK19bcCsoNTYqYnwwKSsxNj4+M10pKTw9MWUtNyYmK2VvKCsoK19bVmU+PjNdLStfW3ArKDU2KlJ8MCkr''@;'; put 'put ''MjQ+PjNdKSk8PTFlLTcmJitlbygrKCtfW0hlPj4zXS0rX1twKyg1NipSfDApKzE2Pj4zXSkpPD0xZS03KXtpZihEPTB8YVtwKyg1NipifDApKzQ0Pj4yXSxiPTB8YVtwKyg1NipSfDApKzQ0Pj4yXSwxPT0oMHxNKSl7TT0wfFhzKEEsYixEKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW3c+PjJd''@;'; put 'put ''LGF0LGssMiksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVttKyg3MiphdHwwKSs0ND4+Ml0sYXQsaywyKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW20rKDcyKmF0fDApKzUyPj4yXSxhdCxrLDEpLEE9TSx3PVdlLE09MTticmVha31NPTB8WHMoQSxELGIpLGY9MHxMbyhsLGMsZixwLG0sQSwwfGFb''@;'; put 'put ''bSsoNzIqYXR8MCkrNTI+PjJdLGF0LGssMSksZj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sYXQsaywxKSxmPTB8TG8obCxjLGYscCxtLE0sMHxhW3c+PjJdLGF0LGssMiksQT1NLHc9bSsoNzIqYXR8MCkrNDR8MCxNPTI7YnJlYWt9Zj0wfExvKGwsYyxmLHAsbSxBLHJ0LGF0LGssMiks''@;'; put 'put ''Zj0wfExvKGwsYyxmLHAsbSxBLDB8YVtXZT4+Ml0sYXQsaywxKSxmPTB8TG8obCxjLGYscCxtLEEsMHxhW20rKDcyKmF0fDApKzQ0Pj4yXSxhdCxrLDIpLHc9bSsoNzIqYXR8MCkrNTJ8MCxNPTF9fXdoaWxlKDApO2I9YXQsYXQ9MHxhW3c+PjJdfXJldHVybiAwfGZ9ZnVuY3Rpb24gWHMobCxj''@;'; put 'put ''LGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwLG0sQSx3LE0sRCxxLHBlLGI9MCxrPTAsUj0wLEc9MCxnZT0wO3JldHVybiBtPWxlLGxlPWxlKzE2fDAsZ2U9bSs0fDAsYj1tLGFbNDczOTJdPXA9MSsoMHxhWzQ3MzkyXSl8MCxEPTB8YVs0NzM4OV0sZnVuY3Rpb24gUmIobCxjLGYscCl7Znw9MCxw''@;'; put 'put ''fD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoUj0oRD0wfGFbNDczODldKSsoNTYqKGx8PTApfDApfDAsRz1EKyg1NiooY3w9MCl8MCl8MCxtPTAsQT0tNCxiPTA7NCE9KDB8Yik7KSgwfCh3PTB8YVtEKyg1NipsfDApKzE2KyhiPDwyKT4+Ml0pKT49MSYmKGs9K2U1''@;'; put 'put ''KFIsRCsoNTYqd3wwKXwwLEcpKT5BJiYobT1iLEE9ayksYj1iKzF8MDtmb3IoYVtmPj4yXT1tLG09MCxiPTAsQT0tNDs0IT0oMHxiKTspKDB8KHc9MHxhW0QrKDU2KmN8MCkrMTYrKGI8PDIpPj4yXSkpPj0xJiYoTT0rZTUoRyxEKyg1Nip3fDApfDAsUikpPkEmJihtPWIsQT1NKSxiPWIrMXww''@;'; put 'put ''O2FbcD4+Ml09bX0oYyxmLGdlLGIpLHc9MHxhW0QrKDU2KmN8MCkrMzIrKChnZT0wfGFbZ2U+PjJdKTw8Mik+PjJdLGI9MHxhW0QrKDU2KmZ8MCkrMzIrKGFbYj4+Ml08PDIpPj4yXSxBPTErKFI9MHxhWzQ3MzkxXSl8MCxhWzQ3MzkxXT1SPVIrMnwwLGFbKHBlPTB8YVs0NzM4OF0pKyhBPDw0''@;'; put 'put ''KT4+Ml09YyxhW3BlKyhSPDw0KT4+Ml09ZixhWyhxPXBlKyhBPDw0KSs0fDApPj4yXT1hWyhHPXBlKyh3PDw0KSs0fDApPj4yXSxhW3BlKyhhW0c+PjJdPDw0KSs4Pj4yXT1BLGFbcGUrKEE8PDQpKzg+PjJdPVIsYVtwZSsoUjw8NCkrND4+Ml09QSxhW3BlKyhSPDw0KSs4Pj4yXT1hWyhrPXBl''@;'; put 'put ''KyhiPDw0KSs4fDApPj4yXSxhW3BlKyhhW2s+PjJdPDw0KSs0Pj4yXT1SLGFbRz4+Ml09YixhW2s+PjJdPXcsRz0wfGFbKGs9RCsoNTYqY3wwKSs0OHwwKT4+Ml0sTT0wfGFbKGI9RCsoNTYqZnwwKSs0OHwwKT4+Ml0sYVtEKyg1NipjfDApKzE2KyhnZTw8Mik+PjJdPWYsYVtEKyg1NipjfDAp''@;'; put 'put ''KzMyKyhHPDwyKT4+Ml09QSxhW0QrKDU2KmN8MCkrMTYrKEc8PDIpPj4yXT1hW3BlKyhhW3E+PjJdPDw0KT4+Ml0sYVtEKyg1NipmfDApKzMyKyhNPDwyKT4+Ml09UixhW0QrKDU2KmZ8MCkrMTYrKE08PDIpPj4yXT1jLGFbaz4+Ml09MSsoMHxhW2s+PjJdKSxhW2I+PjJdPTErKDB8YVtiPj4y''@;'; put 'put ''XSksYVsoZj0wfGFbNDczOTBdKSsobDw8Mik+PjJdPXcsYVtmKyhwPDwyKT4+Ml09QSxsZT1tLDB8cH1mdW5jdGlvbiBlNShsLGMsZil7dmFyIG0sQSxiLHA9MCx3PTA7cmV0dXJuIGI9K19bKGN8PTApPj4zXS0odz0rX1sobHw9MCk+PjNdKSxBPStfW2MrOD4+M10tKHA9K19bbCs4Pj4zXSks''@;'; put 'put ''bT0ocD0rX1s4KyhmfD0wKT4+M10tcCkqQSsodz0rX1tmPj4zXS13KSpiLCsocD1wKmItdypBPj0wP20vKCtEMCgrKHAqcCt3KncpKSorRDAoKyhBKkErYipiKSkpOi1tLygrRDAoKyhwKnArdyp3KSkqK0QwKCsoQSpBK2IqYikpKS0yKX1mdW5jdGlvbiBJMyhsLGMsZixwKXtjfD0wLGZ8PTA7''@;'; put 'put ''dmFyIGssbT0wLEE9MCx3PTAsYj0wLE09MDthWyhwfD0wKT4+Ml09YVsobHw9MCk+PjJdLGFbcCs0Pj4yXT1hW2wrND4+Ml0sYVtwKzg+PjJdPWFbbCs4Pj4yXSxhW3ArMTI+PjJdPWFbbCsxMj4+Ml0sYVsodz1wKzMyfDApPj4yXT1hWyhiPWwrMTZ8MCk+PjJdLGFbdys0Pj4yXT1hW2IrND4+''@;'; put 'put ''Ml0sYVt3Kzg+PjJdPWFbYis4Pj4yXSxhW3crMTI+PjJdPWFbYisxMj4+Ml0sZj8obT1sKzI0fDAsQT1sLHc9bCs4fDAsZj1iKToobT1sKzh8MCxBPWIsdz1sKzI0fDAsZj1sKSxrPStfW0E+PjNdLE09K19bdz4+M10sX1twKzE2Pj4zXT0rX1tmPj4zXSxfW3ArMjQ+PjNdPU0sX1twKzQ4Pj4z''@;'; put 'put ''XT1rLF9bcCs1Nj4+M109K19bbT4+M107ZTpkb3tpZigwfGMpZm9yKGY9MDs7KXtpZig0PT0oMHxmKSlicmVhayBlO009K19bKGI9cCsoZjw8NCkrOHwwKT4+M10sX1tiPj4zXT0rX1soYz1wKyhmPDw0KXwwKT4+M10sX1tjPj4zXT0tTSxmPWYrMXwwfX13aGlsZSgwKX1mdW5jdGlvbiBCYihs''@;'; put 'put ''LGMsZil7Znw9MDt2YXIgdyxiLGssTSxELHA9MCxtPTAsQT0wLFI9MCxHPTA7Zm9yKGI9MSsoY3w9MCl8MCxrPWMrMnwwLE09KGx8PTApKyg1NipjfDApKzQ0fDAsRD1sKyg1Nioodz1jKzN8MCl8MCkrNDR8MCxwPTAsbT1jOyEoKDB8bSk+KDB8dykpOyl7ZG97aWYoKDB8bSkhPSgwfGMpKXtp''@;'; put 'put ''ZigoMHxtKT09KDB8dykpe2FbRD4+Ml09YyxBPWs7YnJlYWt9YVtsKyg1NiptfDApKzQ0Pj4yXT1tKzEsQT1tKy0xfDA7YnJlYWt9YVtNPj4yXT1iLEE9d313aGlsZSgwKTthW2wrKDU2Km18MCkrNDg+PjJdPUEsYVtsKyg1NiptfDApKzMyPj4yXT0wLGFbKEc9bCsoNTYqbXwwKXwwKT4+Ml09''@;'; put 'put ''YVsoUj1mKyhwPDw0KXwwKT4+Ml0sYVtHKzQ+PjJdPWFbUis0Pj4yXSxhW0crOD4+Ml09YVtSKzg+PjJdLGFbRysxMj4+Ml09YVtSKzEyPj4yXSxyMShsKyg1NipBfDApKzE2fDAsMHxSLDE2KSxwPXArMXwwLG09bSsxfDB9cmV0dXJuIGMrNHwwfWZ1bmN0aW9uIGo5KGwsYyxmLHAsbSl7bHw9''@;'; put 'put ''MCxjfD0wLGZ8PTAsbXw9MDt2YXIgayxNLEE9MCx3PTAsYj0wO2ZvcihhWzQ3MzkzXT0ocHw9MCk8PDEsYVs0NzM5NF09cCxNPTB8dnIoODAqcHwwKSxhWzQ3Mzk1XT0xLGFbNDczOTZdPTEsdTIoMHxtLDAsNzIqcHwwKSxBPTB8ZnVuY3Rpb24gWjkobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAs''@;'; put 'put ''cHw9MDt2YXIgbSxBLHcsRCxSLEcsZ2UsT2UsYj0wLGs9MCxNPTAscT0wLHBlPTAsYmU9MDtyZXR1cm4gbT0wfHdmKCksYVtwKyg0MCptfDApPj4yXT0yLGZ1bmN0aW9uIGFHKGwsYyxmKXtsfD0wO3ZhciBwLG07cD0rX1s4KyhjfD0wKT4+M10sbT0rX1s4KyhmfD0wKT4+M107ZG97aWYoIShw''@;'; put 'put ''Pm0rMWUtNykpe2lmKCEoK2VvKCsocC1tKSk8PTFlLTcpKXthW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXTticmVha31pZigrX1tjPj4zXT4rX1tmPj4zXSsxZS03KXthW2w+PjJdPWFbYz4+Ml0sYVts''@;'; put 'put ''KzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXTticmVha31hW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXTticmVha31hW2w+PjJdPWFbYz4+Ml0s''@;'; put 'put ''YVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXX13aGlsZSgwKX0oYmU9cCsoNDAqbXwwKSs4fDAsaz1jKyg1NipsfDApfDAsTT1jKyg1NipsfDApKzE2fDApLFI9MHx3ZigpLGFbcCsoNDAqbXwwKSszNj4+Ml09UixhW3ArKDQwKlJ8''@;'; put 'put ''MCk+PjJdPTMsYVtwKyg0MCpSfDApKzI4Pj4yXT1tLGI9MHx3ZigpLGFbcCsoNDAqbXwwKSszMj4+Ml09YixhW3ArKDQwKmJ8MCk+PjJdPTIsZnVuY3Rpb24gUkUobCxjLGYpe2x8PTA7dmFyIHAsbTtwPStfWzgrKGN8PTApPj4zXSxtPStfWzgrKGZ8PTApPj4zXTtkb3tpZighKHA8bSstMWUt''@;'; put 'put ''Nykpe2lmKCEoK2VvKCsocC1tKSk8PTFlLTcpKXthW2w+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXTticmVha31pZigrX1tjPj4zXTwrX1tmPj4zXSl7YVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2Mr''@;'; put 'put ''ND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml07YnJlYWt9YVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07YnJlYWt9YVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1h''@;'; put 'put ''W2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19d2hpbGUoMCl9KGdlPXArKDQwKmJ8MCkrOHwwLGssTSksYVtwKyg0MCpifDApKzI4Pj4yXT1tLE09MHx3ZigpLGFbcCsoNDAqYnwwKSszMj4+Ml09TSxhW3ArKDQwKk18MCk+PjJdPTMsYVtwKyg0MCpN''@;'; put 'put ''fDApKzI4Pj4yXT1iLGs9MHx3ZigpLGFbcCsoNDAqYnwwKSszNj4+Ml09ayxhW3ArKDQwKmt8MCk+PjJdPTEsYVtwKyg0MCprfDApKzQ+PjJdPWwsYVtwKyg0MCprfDApKzI4Pj4yXT1iLGI9MHx3ZigpLGFbcCsoNDAqa3wwKSszMj4+Ml09YixhW3ArKDQwKmJ8MCk+PjJdPTMsYVtwKyg0MCpi''@;'; put 'put ''fDApKzI4Pj4yXT1rLEE9MHx3ZigpLGFbcCsoNDAqa3wwKSszNj4+Ml09QSxhW3ArKDQwKkF8MCk+PjJdPTMsYVtwKyg0MCpBfDApKzI4Pj4yXT1rLGs9MHx3NihmKSx3PTB8dzYoZiksRD0wfHc2KGYpLEc9MHx3NihmKSxxPWYrKDcyKmt8MCkrOHwwLHBlPWYrKDcyKnd8MCkrOHwwLGFbKE9l''@;'; put 'put ''PWYrKDcyKkd8MCkrMjR8MCk+PjJdPWFbYmU+PjJdLGFbT2UrND4+Ml09YVtiZSs0Pj4yXSxhW09lKzg+PjJdPWFbYmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtiZSsxMj4+Ml0scjEoMHxwZSwwfGJlLDE2KSxhW3E+PjJdPWFbcGU+PjJdLGFbcSs0Pj4yXT1hW3BlKzQ+PjJdLGFbcSs4Pj4yXT1h''@;'; put 'put ''W3BlKzg+PjJdLGFbcSsxMj4+Ml09YVtwZSsxMj4+Ml0scT1mKyg3MiprfDApKzI0fDAscGU9ZisoNzIqd3wwKSsyNHwwLGFbKGJlPWYrKDcyKkR8MCkrOHwwKT4+Ml09YVtnZT4+Ml0sYVtiZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbYmUrOD4+Ml09YVtnZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW2dl''@;'; put 'put ''KzEyPj4yXSxyMSgwfHBlLDB8Z2UsMTYpLGFbcT4+Ml09YVtwZT4+Ml0sYVtxKzQ+PjJdPWFbcGUrND4+Ml0sYVtxKzg+PjJdPWFbcGUrOD4+Ml0sYVtxKzEyPj4yXT1hW3BlKzEyPj4yXSxfW2YrKDcyKkd8MCkrMTY+PjNdPTEwNzM3NDE4MjQsX1tmKyg3MipHfDApKzg+PjNdPTEwNzM3NDE4''@;'; put 'put ''MjQsX1tmKyg3MipEfDApKzMyPj4zXT0tMTA3Mzc0MTgyNCxfW2YrKDcyKkR8MCkrMjQ+PjNdPS0xMDczNzQxODI0LGFbZisoNzIqd3wwKT4+Ml09bCxhW2YrKDcyKmt8MCkrND4+Ml09bCxhW2YrKDcyKnd8MCkrNDA+PjJdPUcsYVtmKyg3MiprfDApKzQwPj4yXT1HLGFbZisoNzIqd3wwKSs0''@;'; put 'put ''OD4+Ml09RCxhW2YrKDcyKmt8MCkrNDg+PjJdPUQsYVtmKyg3MipEfDApKzQwPj4yXT1rLGFbZisoNzIqR3wwKSs0OD4+Ml09ayxhW2YrKDcyKkR8MCkrNDQ+PjJdPXcsYVtmKyg3MipHfDApKzUyPj4yXT13LGFbZisoNzIqa3wwKSs1Nj4+Ml09YixhW2YrKDcyKnd8MCkrNTY+PjJdPUEsYVtm''@;'; put 'put ''Kyg3MipEfDApKzU2Pj4yXT1NLGFbZisoNzIqR3wwKSs1Nj4+Ml09UixhW2YrKDcyKnd8MCkrNjg+PjJdPTEsYVtmKyg3MiprfDApKzY4Pj4yXT0xLGFbZisoNzIqR3wwKSs2OD4+Ml09MSxhW2YrKDcyKkR8MCkrNjg+PjJdPTEsYVtwKyg0MCpSfDApKzI0Pj4yXT1HLGFbcCsoNDAqTXwwKSsy''@;'; put 'put ''ND4+Ml09RCxhW3ArKDQwKmJ8MCkrMjQ+PjJdPWssYVtwKyg0MCpBfDApKzI0Pj4yXT13LGFbYysoNTYqbHwwKSszMj4+Ml09MSwwfG19KDB8YVtmKzQ+PjJdLGMsbSxNKSxwPTE7ISgoMHxwKT4oMHxsKSk7KWFbYysoNTYqcHwwKSs0MD4+Ml09QSxhW2MrKDU2KnB8MCkrMzY+PjJdPUEscD1w''@;'; put 'put ''KzF8MDtmb3Ioaz0wfGZ1bmN0aW9uIFBiKGwpe3ZhciBjPTA7Zm9yKGM9KygwfChsfD0wKSksbD0wO2M+PTE7KWM9K28kKGMpLGw9bCsxfDA7cmV0dXJuIGwrLTF8MH0obCksQT0yLGI9MTshKCgwfGIpPigwfGspKTspe2ZvcihwPTB8TEUobCxiKy0xfDApLHc9MHxMRShsLGIpOzspe2lmKCgw''@;'; put 'put ''fHApPj0oMHx3KSl7cD0xO2JyZWFrfUE2KDB8YVtmKyhBPDwyKT4+Ml0sYyxtLE0pLHA9cCsxfDAsQT1BKzF8MH1mb3IoOyEoKDB8cCk+KDB8bCkpOylGYihwLGMsbSxNKSxwPXArMXwwO2I9YisxfDB9Zm9yKHA9MHxMRShsLGspOyEoKDB8cCk+PSgwfGwpKTspQTYoMHxhW2YrKEE8PDIpPj4y''@;'; put 'put ''XSxjLG0sTSksQT1BKzF8MCxwPXArMXwwO3JldHVybiBGdChNKSwwfGFbNDczOTVdfWZ1bmN0aW9uIExFKGwsYyl7Y3w9MDt2YXIgcCxmPTA7Zm9yKGY9cD0rKDB8KGx8PTApKSxsPTA7ISgoMHxsKT49KDB8YykpOylmPStvJChmKSxsPWwrMXwwO3JldHVybiAwfH5+K0l1KCtwL2YpfWZ1bmN0''@;'; put 'put ''aW9uIEE2KGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgRXQsRHIsSnIsTHIsbDAsVmksbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsa3Q9MCxzdD0wLFp0''@;'; put 'put ''PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wLHVyPTAsSHI9MCxFcj0wLGZyPTAsT2k9MDtWaT1sZSxsZT1sZSs5NnwwLG09VmkrMTZ8MCxKcj1WaSxrPShjfD0wKSsoNTYqKGx8PTApfDApfDAscGU9NTYrKGdlPURyPVZpKzMyfDApfDA7ZG97YVtnZT4+Ml09YVtrPj4yXSxnZT1nZSs0fDAs''@;'; put 'put ''az1rKzR8MH13aGlsZSgoMHxnZSk8KDB8cGUpKTtMcj1EcisxNnwwLHc9K19bKGwwPURyKzI0fDApPj4zXSxiPStfWyhFdD1Ecis4fDApPj4zXTtkb3tpZih3PmIrMWUtNylzdD00O2Vsc2V7aWYoISh3PGIrLTFlLTcpJiYrX1tMcj4+M10+K19bRHI+PjNdKXtzdD00O2JyZWFrfXN0PTA9PSgw''@;'; put 'put ''fHQ1KGwsYywxKSksbT0wfGFbRHIrMzY+PjJdLHN0PyhEPTAsc3Q9Nyk6KG09MHxINChEcixMcixtLGMscCksc3Q9MjApfX13aGlsZSgwKTtpZig0PT0oMHxzdCkmJihhW20+PjJdPWFbRHI+PjJdLGFbbSs0Pj4yXT1hW0RyKzQ+PjJdLGFbbSs4Pj4yXT1hW0RyKzg+PjJdLGFbbSsxMj4+Ml09''@;'; put 'put ''YVtEcisxMj4+Ml0sYVtEcj4+Ml09YVtMcj4+Ml0sYVtEcis0Pj4yXT1hW0xyKzQ+PjJdLGFbRHIrOD4+Ml09YVtMcis4Pj4yXSxhW0RyKzEyPj4yXT1hW0xyKzEyPj4yXSxhW0xyPj4yXT1hW20+PjJdLGFbTHIrND4+Ml09YVttKzQ+PjJdLGFbTHIrOD4+Ml09YVttKzg+PjJdLGFbTHIrMTI+''@;'; put 'put ''PjJdPWFbbSsxMj4+Ml0sa3Q9MHxhWyhTdD1EciszNnwwKT4+Ml0sYVtTdD4+Ml09bT0wfGFbKHN0PURyKzQwfDApPj4yXSxhW3N0Pj4yXT1rdCwwfHQ1KGwsYywyKT8obT0wfEg0KERyLExyLG0sYyxwKSxzdD0xOSk6KEQ9MSxzdD03KSksNz09KDB8c3QpKXtNPTB8SDQoRHIsTHIsbSxjLHAp''@;'; put 'put ''LG09MHx3NihmKSxhW2YrKDcyKm18MCkrNjg+PjJdPTEsaz1mKyg3MipNfDApfDAscGU9NzIrKGdlPWYrKDcyKm18MCl8MCl8MDtkb3thW2dlPj4yXT1hW2s+PjJdLGdlPWdlKzR8MCxrPWsrNHwwfXdoaWxlKCgwfGdlKTwoMHxwZSkpO19bZisoNzIqbXwwKSsxNj4+M109cT0rX1tFdD4+M10s''@;'; put 'put ''X1tmKyg3MipNfDApKzMyPj4zXT1xLF9bZisoNzIqbXwwKSs4Pj4zXT1xPStfW0RyPj4zXSxfW2YrKDcyKk18MCkrMjQ+PjNdPXEsYVtmKyg3MipNfDApKzQ4Pj4yXT1tLGFbZisoNzIqTXwwKSs1Mj4+Ml09MCxhW2YrKDcyKm18MCkrNDA+PjJdPU0sYVtmKyg3MiptfDApKzQ0Pj4yXT0wLCgw''@;'; put 'put ''fChBPTB8YVtmKyg3MiptfDApKzQ4Pj4yXSkpPjAmJigoMHxhWyhrPWYrKDcyKkF8MCkrNDB8MCk+PjJdKT09KDB8TSkmJihhW2s+PjJdPW0pLCgwfGFbKEE9ZisoNzIqQXwwKSs0NHwwKT4+Ml0pPT0oMHxNKSYmKGFbQT4+Ml09bSkpLCgwfChBPTB8YVtmKyg3MiptfDApKzUyPj4yXSkpPjAm''@;'; put 'put ''JigoMHxhWyhrPWYrKDcyKkF8MCkrNDB8MCk+PjJdKT09KDB8TSkmJihhW2s+PjJdPW0pLCgwfGFbKEE9ZisoNzIqQXwwKSs0NHwwKT4+Ml0pPT0oMHxNKSYmKGFbQT4+Ml09bSkpLFN0PTB8d2YoKSxzdD0wfHdmKCksYVtwKyg0MCooYXQ9MHxhWyhrdD1mKyg3MipNfDApKzU2fDApPj4yXSl8''@;'; put 'put ''MCk+PjJdPTIsYVsoV2U9cCsoNDAqYXR8MCkrOHwwKT4+Ml09YVtEcj4+Ml0sYVtXZSs0Pj4yXT1hW0RyKzQ+PjJdLGFbV2UrOD4+Ml09YVtEcis4Pj4yXSxhW1dlKzEyPj4yXT1hW0RyKzEyPj4yXSxhW3ArKDQwKmF0fDApKzQ+PjJdPWwsYVtwKyg0MCphdHwwKSszMj4+Ml09c3QsYVtwKyg0''@;'; put 'put ''MCphdHwwKSszNj4+Ml09U3QsYVtwKyg0MCpTdHwwKT4+Ml09MyxhW3ArKDQwKlN0fDApKzI0Pj4yXT1NLGFbcCsoNDAqU3R8MCkrMjg+PjJdPWF0LGFbcCsoNDAqc3R8MCk+PjJdPTMsYVtwKyg0MCpzdHwwKSsyND4+Ml09bSxhW3ArKDQwKnN0fDApKzI4Pj4yXT1hdCxhW2t0Pj4yXT1TdCxh''@;'; put 'put ''W2YrKDcyKm18MCkrNTY+PjJdPXN0LHN0PUQ/MTk6MjB9aWYoMTk9PSgwfHN0KT8wfHQ1KGwsYywxKT8oQT0xLHN0PTMyKTooQT0xLHN0PTIxKToyMD09KDB8c3QpJiYoMHx0NShsLGMsMik/KEE9MCxzdD0zMik6KEE9MCxzdD0yMSkpLDIxPT0oMHxzdCkpe1I9MHxINChMcixEciwwfGFbRHIr''@;'; put 'put ''NDA+PjJdLGMscCksRD0wfHc2KGYpLGFbZisoNzIqRHwwKSs2OD4+Ml09MSxrPWYrKDcyKlJ8MCl8MCxwZT03MisoZ2U9ZisoNzIqRHwwKXwwKXwwO2Rve2FbZ2U+PjJdPWFbaz4+Ml0sZ2U9Z2UrNHwwLGs9ays0fDB9d2hpbGUoKDB8Z2UpPCgwfHBlKSk7X1tmKyg3MipEfDApKzE2Pj4zXT1x''@;'; put 'put ''PStfW2wwPj4zXSxfW2YrKDcyKlJ8MCkrMzI+PjNdPXEsX1tmKyg3MipEfDApKzg+PjNdPXE9K19bTHI+PjNdLF9bZisoNzIqUnwwKSsyND4+M109cSxhW2YrKDcyKlJ8MCkrNDg+PjJdPUQsYVtmKyg3MipSfDApKzUyPj4yXT0wLGFbZisoNzIqRHwwKSs0MD4+Ml09UixhW2YrKDcyKkR8MCkr''@;'; put 'put ''NDQ+PjJdPTAsKDB8KGs9MHxhW2YrKDcyKkR8MCkrNDg+PjJdKSk+MCYmKCgwfGFbKE09ZisoNzIqa3wwKSs0MHwwKT4+Ml0pPT0oMHxSKSYmKGFbTT4+Ml09RCksKDB8YVsoaz1mKyg3MiprfDApKzQ0fDApPj4yXSk9PSgwfFIpJiYoYVtrPj4yXT1EKSksKDB8KGs9MHxhW2YrKDcyKkR8MCkr''@;'; put 'put ''NTI+PjJdKSk+MCYmKCgwfGFbKE09ZisoNzIqa3wwKSs0MHwwKT4+Ml0pPT0oMHxSKSYmKGFbTT4+Ml09RCksKDB8YVsoaz1mKyg3MiprfDApKzQ0fDApPj4yXSk9PSgwfFIpJiYoYVtrPj4yXT1EKSksYXQ9MHx3ZigpLGt0PTB8d2YoKSxhW3ArKDQwKihXZT0wfGFbKFN0PWYrKDcyKlJ8MCkr''@;'; put 'put ''NTZ8MCk+PjJdKXwwKT4+Ml09MixhWyhydD1wKyg0MCpXZXwwKSs4fDApPj4yXT1hW0xyPj4yXSxhW3J0KzQ+PjJdPWFbTHIrND4+Ml0sYVtydCs4Pj4yXT1hW0xyKzg+PjJdLGFbcnQrMTI+PjJdPWFbTHIrMTI+PjJdLGFbcCsoNDAqV2V8MCkrND4+Ml09bCxhW3ArKDQwKldlfDApKzMyPj4y''@;'; put 'put ''XT1rdCxhW3ArKDQwKldlfDApKzM2Pj4yXT1hdCxhW3ArKDQwKmF0fDApPj4yXT0zLGFbcCsoNDAqYXR8MCkrMjQ+PjJdPVIsYVtwKyg0MCphdHwwKSsyOD4+Ml09V2UsYVtwKyg0MCprdHwwKT4+Ml09MyxhW3ArKDQwKmt0fDApKzI0Pj4yXT1ELGFbcCsoNDAqa3R8MCkrMjg+PjJdPVdlLGFb''@;'; put 'put ''U3Q+PjJdPWF0LGFbZisoNzIqRHwwKSs1Nj4+Ml09a3Qsa3Q9bSxtPTB9ZWxzZSAzMj09KDB8c3QpJiYoa3Q9bSxSPTB8SDQoTHIsRHIsMHxhW0RyKzQwPj4yXSxjLHApLG09MSk7ZTpkb3tpZigoMHxrdCk+MCl7YXQ9ZisoNzIqUnwwKSsyNHwwLFN0PWYrKDcyKlJ8MCkrMzJ8MCxXZT0wIT0o''@;'; put 'put ''MHxtKSxWZT1BP2MrKDU2Kmx8MCkrNDh8MDpjKyg1NipsfDApKzQ0fDAscWU9SnIrOHwwLEE9MCxtPTAsSGU9a3Q7dDpmb3IoOzspe2lmKGs9ZisoNzIqSGV8MCl8MCwhKDB8T0UoTGU9ZisoNzIqSGV8MCkrMjR8MCxhdCkpKWJyZWFrIGU7T2U9MHxhWyhNPWYrKDcyKkhlfDApKzU2fDApPj4y''@;'; put 'put ''XSxEPTB8d2YoKSxHPTB8d2YoKSxhW3ArKDQwKk9lfDApPj4yXT0xLGFbcCsoNDAqT2V8MCkrND4+Ml09bCxhW3ArKDQwKk9lfDApKzMyPj4yXT1ELGFbcCsoNDAqT2V8MCkrMzY+PjJdPUcsYVtwKyg0MCpEfDApPj4yXT0zLGFbcCsoNDAqRHwwKSsyND4+Ml09SGUsYVtwKyg0MCpEfDApKzI4''@;'; put 'put ''Pj4yXT1PZSxhW3ArKDQwKkd8MCk+PjJdPTMsUmU9MHx3NihmKSxhW3ArKDQwKkd8MCkrMjQ+PjJdPVJlLHJ0PWYrKDcyKlJlfDApfDAsYVtmKyg3MipSZXwwKSs2OD4+Ml09MSxhW3ArKDQwKkd8MCkrMjg+PjJdPU9lLEE9KDB8SGUpPT0oMHxrdCk/UmU6QSwrZW8oKygrX1soT2U9ZisoNzIq''@;'; put 'put ''SGV8MCkrMzJ8MCk+PjNdLStfW1N0Pj4zXSkpPD0xZS03JiYrZW8oKygrX1tMZT4+M10tK19bYXQ+PjNdKSk8PTFlLTcmJihtPVJlKSxwZT0oZ2U9cnQpKzcyfDA7ZG97YVtnZT4+Ml09YVtrPj4yXSxnZT1nZSs0fDAsaz1rKzR8MH13aGlsZSgoMHxnZSk8KDB8cGUpKTthW00+PjJdPUQsYVtm''@;'; put 'put ''Kyg3MipSZXwwKSs1Nj4+Ml09RyxiZT1mKyg3MipIZXwwKSs0OHwwLGs9KDB8YVsoTT1mKyg3MipIZXwwKSs1MnwwKT4+Ml0pPDE7ZG97aWYoKDB8YVtiZT4+Ml0pPDEpe2lmKGspYnJlYWsgdDtrPTB8YVsoZ2U9ZisoNzIqSGV8MCkrNDB8MCk+PjJdO2Rve2lmKCgwfGspPjAmJigwfChIbj0w''@;'; put 'put ''fGFbKFNuPWYrKDcyKkhlfDApKzQ0fDApPj4yXSkpPjApe2lmKCgwfChrPTB8YVsocGU9ZisoNzIqSGV8MCkrNjB8MCk+PjJdKSk8PTApe2FbZisoNzIqUmV8MCkrNDA+PjJdPUhuLGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbU24+PjJdPS0xLGFbZisoNzIqSG58MCkrNDg+PjJdPVJlO2Jy''@;'; put 'put ''ZWFrfTE9PSgwfGFbZisoNzIqSGV8MCkrNjQ+PjJdKT8oYVtmKyg3MipSZXwwKSs0MD4+Ml09SG4sYVtTbj4+Ml09LTEsYVtmKyg3MipSZXwwKSs0ND4+Ml09ayxhW2YrKDcyKigwfGFbZ2U+PjJdKXwwKSs0OD4+Ml09SGUsRz1SZSxEPUhuKTooYVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVso''@;'; put 'put ''YmU9ZisoNzIqUmV8MCkrNDB8MCk+PjJdPWFbU24+PjJdLGFbU24+PjJdPUQ9MHxhW2dlPj4yXSxhW2dlPj4yXT1rLGFbZisoNzIqa3wwKSs0OD4+Ml09SGUsRz1IZSxrPTB8YVtiZT4+Ml0pLGFbZisoNzIqRHwwKSs0OD4+Ml09RyxhW2YrKDcyKmt8MCkrNDg+PjJdPVJlLGFbZisoNzIqUmV8''@;'; put 'put ''MCkrNjA+PjJdPTAsYVtwZT4+Ml09MH1lbHNlIHN0PTc3fXdoaWxlKDApO2Rve2lmKDc3PT0oMHxzdCkpe2lmKHN0PTAsRD1mKyg3MiprfDApKzQ4fDAsaz1mKyg3MiprfDApKzUyfDAsKDB8KEc9MHxhW0Q+PjJdKSk+MCYmKDB8YVtrPj4yXSk+MCl7aWYoKDB8KGs9MHxhW2YrKDcyKkd8MCkr''@;'; put 'put ''ND4+Ml0pKT4wJiYwPT0oMHx5NihrLGMsTHIpKSl7YVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVtmKyg3MipIZXwwKSs0ND4+Ml09LTEsYVtnZT4+Ml09LTEsYVtmKyg3MiooMHxhW2YrKDcyKlJlfDApKzQwPj4yXSl8MCkrNTI+PjJdPVJlO2JyZWFrfWFbZisoNzIqSGV8MCkrNDQ+PjJdPS0x''@;'; put 'put ''LGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbZisoNzIqUmV8MCkrNDA+PjJdPS0xLGFbZisoNzIqKDB8YVtnZT4+Ml0pfDApKzQ4Pj4yXT1IZTticmVha31hW0Q+PjJdPUhlLGFbaz4+Ml09UmV9fXdoaWxlKDApO2lmKCtlbygrKCtfW09lPj4zXS0rX1tTdD4+M10pKTw9MWUtNyYmV2UmK2Vv''@;'; put 'put ''KCsoK19bTGU+PjNdLStfW2F0Pj4zXSkpPD0xZS03KXsoMHwoaz0wfGFbVmU+PjJdKSk+MCYmMCE9KDB8eTYoayxjLERyKSk/KGFbZisoNzIqKDB8YVtNPj4yXSl8MCkrNDA+PjJdPUhlLEQ9ZisoNzIqUmV8MCkrNTJ8MCxrPVJlKTooYVtmKyg3MiooMHxhW2YrKDcyKlJlfDApKzUyPj4yXSl8''@;'; put 'put ''MCkrNDQ+PjJdPVJlLEQ9TSxrPUhlKSxhW0Q+PjJdPS0xLGFbZisoNzIqa3wwKSs0OD4+Ml09LTEsaz0wfGFbTT4+Ml07YnJlYWt9Rz1mKyg3Miooaz0wfGFbTT4+Ml0pfDApKzQ0fDAsKDB8KEQ9MHxhWyhNPWYrKDcyKmt8MCkrNDB8MCk+PjJdKSk+MCYmKEhyPSgwfEQpPT0oMHxIZSksKDB8''@;'; put 'put ''KHVyPTB8YVtHPj4yXSkpPjApJiYoYVtmKyg3MiprfDApKzYwPj4yXT1Icj91cjpELGFbZisoNzIqa3wwKSs2ND4+Ml09SHI/MToyKSxhW00+PjJdPUhlLGFbRz4+Ml09UmV9ZWxzZXtpZighayl7K2VvKCsocT0odz0rX1tPZT4+M10pLShiPStfW0V0Pj4zXSkpKTw9MWUtNz9nZT0rX1tMZT4+''@;'; put 'put ''M10+K19bRHI+PjNdOihfW3FlPj4zXT13LF9bSnI+PjNdPXEvKCtfW2wwPj4zXS1iKSooK19bTHI+PjNdLSh3PStfW0RyPj4zXSkpK3csZ2U9MCE9KDB8b0coSnIsTGUpKSksaz0wfGFbKHBlPWYrKDcyKkhlfDApKzQwfDApPj4yXTtkb3tpZigoMHxrKT4wJiYoMHwoZnI9MHxhWyhFcj1mKyg3''@;'; put 'put ''MipIZXwwKSs0NHwwKT4+Ml0pKT4wKXtpZigoMHwoaz0wfGFbKEc9ZisoNzIqSGV8MCkrNjB8MCk+PjJdKSk8PTApe2FbZisoNzIqUmV8MCkrNDA+PjJdPWZyLGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbRXI+PjJdPS0xLGFbZisoNzIqZnJ8MCkrNDg+PjJdPVJlO2JyZWFrfTE9PSgwfGFb''@;'; put 'put ''ZisoNzIqSGV8MCkrNjQ+PjJdKT8oYVtmKyg3MipSZXwwKSs0MD4+Ml09ZnIsYVtFcj4+Ml09LTEsYVtmKyg3MipSZXwwKSs0ND4+Ml09ayxhW2YrKDcyKigwfGFbcGU+PjJdKXwwKSs0OD4+Ml09SGUsRD1SZSxNPWZyKTooYVtmKyg3MipSZXwwKSs0ND4+Ml09LTEsYVsoT2k9ZisoNzIqUmV8''@;'; put 'put ''MCkrNDB8MCk+PjJdPWFbRXI+PjJdLGFbRXI+PjJdPU09MHxhW3BlPj4yXSxhW3BlPj4yXT1rLGFbZisoNzIqa3wwKSs0OD4+Ml09SGUsRD1IZSxrPTB8YVtPaT4+Ml0pLGFbZisoNzIqTXwwKSs0OD4+Ml09RCxhW2YrKDcyKmt8MCkrNDg+PjJdPVJlLGFbZisoNzIqUmV8MCkrNjA+PjJdPTAs''@;'; put 'put ''YVtHPj4yXT0wfWVsc2Ugc3Q9MTA2fXdoaWxlKDApO2Rve2lmKDEwNj09KDB8c3QpKXtpZihzdD0wLE09ZisoNzIqa3wwKSs0OHwwLGs9ZisoNzIqa3wwKSs1MnwwLCgwfChEPTB8YVtNPj4yXSkpPjAmJigwfGFbaz4+Ml0pPjApe2lmKCgwfChrPTB8YVtmKyg3MipEfDApKzQ+PjJdKSk+MCYm''@;'; put 'put ''MD09KDB8eTYoayxjLExyKSkpe2FbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbZisoNzIqSGV8MCkrNDQ+PjJdPS0xLGFbcGU+PjJdPS0xLGFbZisoNzIqKDB8YVtmKyg3MipSZXwwKSs0MD4+Ml0pfDApKzUyPj4yXT1SZTticmVha31hW2YrKDcyKkhlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJl''@;'; put 'put ''fDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJlfDApKzQwPj4yXT0tMSxhW2YrKDcyKigwfGFbcGU+PjJdKXwwKSs0OD4+Ml09SGU7YnJlYWt9YVtNPj4yXT1IZSxhW2s+PjJdPVJlfX13aGlsZSgwKTsrZW8oKygrX1tPZT4+M10tK19bU3Q+PjNdKSk8PTFlLTcmJldlJitlbygrKCtfW0xlPj4zXS0r''@;'; put 'put ''X1thdD4+M10pKTw9MWUtNz8oYVtmKyg3Miooaz0wfGFbYmU+PjJdKXwwKSs0MD4+Ml09SGUsYVtmKyg3MiprfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKihPaT0wfGFbKGs9ZisoNzIqSGV8MCkrNTJ8MCk+PjJdKXwwKSs0MD4+Ml09UmUsYVtmKyg3MipPaXwwKSs0ND4+Ml09LTEsYVtmKyg3MipS''@;'; put 'put ''ZXwwKSs0OD4+Ml09T2ksYVtmKyg3MipSZXwwKSs1Mj4+Ml09LTEsYVtrPj4yXT0tMSxrPS0xKTpzdD0xMTY7ZG97aWYoMTE2PT0oMHxzdCkpe2lmKHN0PTAsYVtmKyg3Miooaz0wfGFbYmU+PjJdKXwwKSs0MD4+Ml09SGUsTT1mKyg3MiprfDApKzQ0fDAsZ2Upe2FbTT4+Ml09UmUsYVtmKyg3''@;'; put 'put ''MiooTGU9MHxhWyhPaT1mKyg3MipIZXwwKSs1MnwwKT4+Ml0pfDApKzQwPj4yXT1SZSxhW2YrKDcyKkxlfDApKzQ0Pj4yXT0tMSxhW09pPj4yXT0tMTticmVha31hW00+PjJdPS0xLGFbZisoNzIqKE9pPTB8YVsoaz1mKyg3MipIZXwwKSs1MnwwKT4+Ml0pfDApKzQwPj4yXT1IZSxhW2YrKDcy''@;'; put 'put ''Kk9pfDApKzQ0Pj4yXT1SZSxhW2YrKDcyKlJlfDApKzQ4Pj4yXT1PaSxhW2YrKDcyKlJlfDApKzUyPj4yXT0tMSxrPTB8YVtrPj4yXTticmVha319d2hpbGUoMCk7YnJlYWt9az0wfGFbKGdlPWYrKDcyKkhlfDApKzQwfDApPj4yXTtkb3tpZigoMHxrKT4wJiYoMHwoY3Q9MHxhWyhadD1mKyg3''@;'; put 'put ''MipIZXwwKSs0NHwwKT4+Ml0pKT4wKXtpZigoMHwoaz0wfGFbKHBlPWYrKDcyKkhlfDApKzYwfDApPj4yXSkpPD0wKXthW2YrKDcyKlJlfDApKzQwPj4yXT1jdCxhW2YrKDcyKlJlfDApKzQ0Pj4yXT0tMSxhW1p0Pj4yXT0tMSxhW2YrKDcyKmN0fDApKzQ4Pj4yXT1SZTticmVha30xPT0oMHxh''@;'; put 'put ''W2YrKDcyKkhlfDApKzY0Pj4yXSk/KGFbZisoNzIqUmV8MCkrNDA+PjJdPWN0LGFbWnQ+PjJdPS0xLGFbZisoNzIqUmV8MCkrNDQ+PjJdPWssYVtmKyg3MiooMHxhW2dlPj4yXSl8MCkrNDg+PjJdPUhlLEc9UmUsRD1jdCk6KGFbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbKE9pPWYrKDcyKlJl''@;'; put 'put ''fDApKzQwfDApPj4yXT1hW1p0Pj4yXSxhW1p0Pj4yXT1EPTB8YVtnZT4+Ml0sYVtnZT4+Ml09ayxhW2YrKDcyKmt8MCkrNDg+PjJdPUhlLEc9SGUsaz0wfGFbT2k+PjJdKSxhW2YrKDcyKkR8MCkrNDg+PjJdPUcsYVtmKyg3MiprfDApKzQ4Pj4yXT1SZSxhW2YrKDcyKlJlfDApKzYwPj4yXT0w''@;'; put 'put ''LGFbcGU+PjJdPTB9ZWxzZSBzdD01MX13aGlsZSgwKTtkb3tpZig1MT09KDB8c3QpKXtpZihzdD0wLEQ9ZisoNzIqa3wwKSs0OHwwLGs9ZisoNzIqa3wwKSs1MnwwLCgwfChHPTB8YVtEPj4yXSkpPjAmJigwfGFbaz4+Ml0pPjApe2lmKCgwfChrPTB8YVtmKyg3MipHfDApKzQ+PjJdKSk+MCYm''@;'; put 'put ''MD09KDB8eTYoayxjLExyKSkpe2FbZisoNzIqUmV8MCkrNDQ+PjJdPS0xLGFbZisoNzIqSGV8MCkrNDQ+PjJdPS0xLGFbZ2U+PjJdPS0xLGFbZisoNzIqKDB8YVtmKyg3MipSZXwwKSs0MD4+Ml0pfDApKzUyPj4yXT1SZTticmVha31hW2YrKDcyKkhlfDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJl''@;'; put 'put ''fDApKzQ0Pj4yXT0tMSxhW2YrKDcyKlJlfDApKzQwPj4yXT0tMSxhW2YrKDcyKigwfGFbZ2U+PjJdKXwwKSs0OD4+Ml09SGU7YnJlYWt9YVtEPj4yXT1IZSxhW2s+PjJdPVJlfX13aGlsZSgwKTtpZigrZW8oKygrX1tPZT4+M10tK19bU3Q+PjNdKSk8PTFlLTcmJldlJitlbygrKCtfW0xlPj4z''@;'; put 'put ''XS0rX1thdD4+M10pKTw9MWUtNyl7KDB8KGs9MHxhW1ZlPj4yXSkpPjAmJjAhPSgwfHk2KGssYyxEcikpPyhhW2YrKDcyKigwfGFbYmU+PjJdKXwwKSs0MD4+Ml09SGUsTT1mKyg3MipSZXwwKSs1MnwwLGs9UmUpOihhW2YrKDcyKigwfGFbZisoNzIqUmV8MCkrNDg+PjJdKXwwKSs0ND4+Ml09''@;'; put 'put ''UmUsaz1IZSksYVtNPj4yXT0tMSxhW2YrKDcyKmt8MCkrNDg+PjJdPS0xLGs9MHxhW2JlPj4yXTticmVha31HPWYrKDcyKihrPTB8YVtiZT4+Ml0pfDApKzQ0fDAsKDB8KEQ9MHxhWyhNPWYrKDcyKmt8MCkrNDB8MCk+PjJdKSk+MCYmKGFuPSgwfEQpPT0oMHxIZSksKDB8KGJ0PTB8YVtHPj4y''@;'; put 'put ''XSkpPjApJiYoYVtmKyg3MiprfDApKzYwPj4yXT1hbj9idDpELGFbZisoNzIqa3wwKSs2ND4+Ml09YW4/MToyKSxhW00+PjJdPUhlLGFbRz4+Ml09UmV9fXdoaWxlKDApO2lmKGFbcnQ+PjJdPWwsYVtmKyg3MipIZXwwKSs0Pj4yXT1sLCEoKDB8ayk+MCkpYnJlYWsgZTtIZT1rfUN1KDEzODQy''@;'; put 'put ''NCwxOSwxLDB8YVsxNTcxMl0pfWVsc2UgQT0wLG09MH13aGlsZSgwKTtIYihsLGt0LFIsMSxmLHApLEhiKGwsQSxtLDIsZixwKSxhW2MrKDU2Kmx8MCkrMzI+PjJdPTEsbGU9Vml9ZnVuY3Rpb24gRmIobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MDswfGFbKGN8PTApKyg1Nioo''@;'; put 'put ''bHw9MCl8MCkrMzI+PjJdfHwoYVsodz1jKyg1NipsfDApKzM2fDApPj4yXT1hW2YrKDcyKigwfEg0KG09YysoNTYqbHwwKXwwLEE9YysoNTYqbHwwKSsxNnwwLDB8YVt3Pj4yXSxjLHApKXwwKSs1Nj4+Ml0sYVsobD1jKyg1NipsfDApKzQwfDApPj4yXT1hW2YrKDcyKigwfEg0KEEsbSwwfGFb''@;'; put 'put ''bD4+Ml0sYyxwKSl8MCkrNTY+PjJdKX1mdW5jdGlvbiBINChsLGMsZixwLG0pe2Z8PTAscHw9MCxtfD0wO3ZhciBHLHBlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxxPTAsZ2U9MDtHPTgrKGx8PTApfDAscGU9OCsoY3w9MCl8MDtlOmZvcig7Oyl7dDpkb3tzd2l0Y2goMHxhW20rKDQw''@;'; put 'put ''KmZ8MCk+PjJdKXtjYXNlIDM6Z2U9MzticmVhayBlO2Nhc2UgMjpBPStfW0c+PjNdLHc9bSsoNDAqZnwwKSs4fDAsaz0xZS03KyhiPStfW20rKDQwKmZ8MCkrMTY+PjNdKTtkb3tpZighKEE+aykpe2lmKCEoQTwoTT1iKy0xZS03KSkmJitfW2w+PjNdPitfW3c+PjNdKWJyZWFrO2lmKCtlbygr''@;'; put 'put ''KEEtYikpPD0xZS03JiYrZW8oKygrX1tsPj4zXS0oRD0rX1t3Pj4zXSkpKTw9MWUtNyl7QT0rX1twZT4+M107ZG97aWYoIShBPmspKXtpZighKEE8TSkmJitfW2M+PjNdPkQpYnJlYWs7Zj1tKyg0MCpmfDApKzMyfDA7YnJlYWsgdH19d2hpbGUoMCk7Zj1tKyg0MCpmfDApKzM2fDA7YnJlYWsg''@;'; put 'put ''dH1mPW0rKDQwKmZ8MCkrMzJ8MDticmVhayB0fX13aGlsZSgwKTtmPW0rKDQwKmZ8MCkrMzZ8MDticmVhaztjYXNlIDE6K2VvKCsoKEE9K19bRz4+M10pLStfW3ArKDU2Kih3PTB8YVttKyg0MCpmfDApKzQ+PjJdKXwwKSs4Pj4zXSkpPD0xZS03JiYrZW8oKygoUj0rX1tsPj4zXSktK19bcCso''@;'; put 'put ''NTYqd3wwKT4+M10pKTw9MWUtNz9iPVI6Z2U9MTk7ZG97aWYoMTk9PSgwfGdlKSl7aWYoZ2U9MCwrZW8oKyhBLStfW3ArKDU2Knd8MCkrMjQ+PjNdKSk8PTFlLTcmJitlbygrKChxPStfW2w+PjNdKS0rX1twKyg1Nip3fDApKzE2Pj4zXSkpPD0xZS03KXtiPXE7YnJlYWt9aWYoMHx5Nih3LHAs''@;'; put 'put ''bCkpe2Y9bSsoNDAqZnwwKSszMnwwO2JyZWFrIHR9Zj1tKyg0MCpmfDApKzM2fDA7YnJlYWsgdH19d2hpbGUoMCk7aWYoK2VvKCsoQS0rX1twZT4+M10pKTw9MWUtNyl7aWYoK19bYz4+M108Yil7Zj1tKyg0MCpmfDApKzMyfDA7YnJlYWsgdH1mPW0rKDQwKmZ8MCkrMzZ8MDticmVhayB0fWlm''@;'; put 'put ''KDB8eTYodyxwLGMpKXtmPW0rKDQwKmZ8MCkrMzJ8MDticmVhayB0fWY9bSsoNDAqZnwwKSszNnwwO2JyZWFrIHQ7ZGVmYXVsdDpnZT0zMTticmVhayBlfX13aGlsZSgwKTtmPTB8YVtmPj4yXX1yZXR1cm4gMz09KDB8Z2UpPzB8YVttKyg0MCpmfDApKzI0Pj4yXTooMzE9PSgwfGdlKSYmKEN1''@;'; put 'put ''KDEzODM1OCwzNSwxLDB8YVsxNTcxMl0pLFByKDEzODM5NCwxMzgzOTYsMzQ5LDEzODQwOCkpLDApfWZ1bmN0aW9uIHk2KGwsYyxmKXtmfD0wO3ZhciBtLEEsdyxiLHA9MCxrPTAsTT0wO0E9KGN8PTApKyg1NioobHw9MCl8MCkrMTZ8MCx3PStfW2MrKDU2Kmx8MCkrMjQ+PjNdLGI9YysoNTYq''@;'; put 'put ''bHwwKXwwLG09K19bYysoNTYqbHwwKSs4Pj4zXTtkb3tpZighKHc+bSsxZS03KSl7aWYoISh3PG0rLTFlLTcpJiYrX1tBPj4zXT4rX1tiPj4zXSl7az00O2JyZWFrfWlmKCtlbygrKHctKHA9K19bZis4Pj4zXSkpKTw9MWUtNyl7cD0rX1tmPj4zXTwrX1tBPj4zXT8xOi0xO2JyZWFrfWlmKCtl''@;'; put 'put ''bygrKG0tcCkpPD0xZS03KXtwPStfW2Y+PjNdPCtfW2I+PjNdPzE6LTE7YnJlYWt9cD0oK19bYj4+M10tKE09K19bQT4+M10pKSoocC13KS0oK19bZj4+M10tTSkqKG0tdyk7YnJlYWt9az00fXdoaWxlKDApO2Rve2lmKDQ9PSgwfGspKXtpZigrZW8oKyh3LShwPStfW2YrOD4+M10pKSk8PTFl''@;'; put 'put ''LTcpe3A9K19bZj4+M108K19bQT4+M10/MTotMTticmVha31pZigrZW8oKyhtLXApKTw9MWUtNyl7cD0rX1tmPj4zXTwrX1tiPj4zXT8xOi0xO2JyZWFrfXA9KCtfW0E+PjNdLShNPStfW2I+PjNdKSkqKHAtbSktKCtfW2Y+PjNdLU0pKih3LW0pO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gcD4w''@;'; put 'put ''fDB9ZnVuY3Rpb24gdDUobCxjLGYpe3JldHVybiBsfD0wLDB8YVsoY3w9MCkrKDU2KigwfGFbKDE9PSgwfChmfD0wKSk/YysoNTYqbHwwKSs0OHwwOmMrKDU2Kmx8MCkrNDR8MCk+PjJdKXwwKSszMj4+Ml19ZnVuY3Rpb24gdzYobCl7bHw9MDt2YXIgYyxmLHA9MDtyZXR1cm4gcD1sZSxsZT1s''@;'; put 'put ''ZSsxNnwwLGY9cCwoMHwoYz0wfGFbNDczOTVdKSk8KDB8YVs0NzM5NF0pPyhhW2wrKDcyKmN8MCk+PjJdPS0xLGFbbCsoNzIqY3wwKSs0Pj4yXT0tMSxhW2wrKDcyKmN8MCkrNjg+PjJdPTEsYVs0NzM5NV09YysxLGxlPXAsMHxjKToocD0wfGFbMTU3MTJdLGFbZj4+Ml09YyxUMChwLDEzODQ4''@;'; put 'put ''MyxmKSxQcigxMzgzOTQsMTM4Mzk2LDg4LDEzODUyMSksMCl9ZnVuY3Rpb24gd2YoKXt2YXIgbDtyZXR1cm4oMHwobD0wfGFbNDczOTZdKSk8KDB8YVs0NzM5M10pPyhhWzQ3Mzk2XT1sKzEsMHxsKTooQ3UoMTM4NDQ0LDMwLDEsMHxhWzE1NzEyXSksUHIoMTM4Mzk0LDEzODM5Niw3MiwxMzg0''@;'; put 'put ''NzUpLDApfWZ1bmN0aW9uIE9FKGwsYyl7dmFyIGYscDtyZXR1cm4gMHwoKGY9K19bOCsobHw9MCk+PjNdKT4xZS03KyhwPStfWzgrKGN8PTApPj4zXSk/MTpmPHArLTFlLTc/MDorX1tsPj4zXT49K19bYz4+M10mMSl9ZnVuY3Rpb24gb0cobCxjKXt2YXIgZixwO3JldHVybiAwfCgoZj0rX1s4''@;'; put 'put ''KyhsfD0wKT4+M10pPChwPStfWzgrKGN8PTApPj4zXSktMWUtNz8xOmY+cCsxZS03PzA6K19bbD4+M108K19bYz4+M10mMSl9ZnVuY3Rpb24gSGIobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxBfD0wO3ZhciBwZSxnZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLGJlPTA7Z2U9KG18''@;'; put 'put ''PTApKyg3MiooZnw9MCl8MCkrMjR8MCxwZT0xPT0oMHwocHw9MCkpO2U6Zm9yKDtxPW0rKDcyKmN8MCkrMjR8MCxrPW0rKDcyKmN8MCkrNDh8MCxNPW0rKDcyKmN8MCkrNTJ8MCxEPW0rKDcyKmN8MCl8MCxSPW0rKDcyKmN8MCkrNHwwLEc9bSsoNzIqY3wwKSs1NnwwLCEoKDB8Yyk8PTApOylm''@;'; put 'put ''b3IoOzspe2lmKCEoMHxPRShxLGdlKSkpYnJlYWsgZTtwPSgwfChmPTB8YVtrPj4yXSkpPjA7ZG97aWYocGUpe2lmKHAmJigwfGFbbSsoNzIqZnwwKSs0Pj4yXSk9PSgwfGwpKWJyZWFrO2lmKCgwfChmPTB8YVtNPj4yXSkpPD0wKXtjPWY7Y29udGludWUgZX1pZigoMHxhW20rKDcyKmZ8MCkr''@;'; put 'put ''ND4+Ml0pIT0oMHxsKSl7Yz1mO2NvbnRpbnVlIGV9fWVsc2V7aWYocCYmKDB8YVttKyg3MipmfDApPj4yXSk9PSgwfGwpKWJyZWFrO2lmKCgwfChmPTB8YVtNPj4yXSkpPD0wKXtjPWY7Y29udGludWUgZX1pZigoMHxhW20rKDcyKmZ8MCk+PjJdKSE9KDB8bCkpe2M9Zjtjb250aW51ZSBlfX19''@;'; put 'put ''d2hpbGUoMCk7aWYoKDB8YVtEPj4yXSkhPSgwfGFbbSsoNzIqZnwwKT4+Ml0pKXtjPWY7Y29udGludWUgZX1pZigoMHxhW1I+PjJdKSE9KDB8YVttKyg3MipmfDApKzQ+PjJdKSl7Yz1mO2NvbnRpbnVlIGV9Yj0wfGFbRz4+Ml0sKDB8YVsodz1BKyg0MCoocD0wfGFbQSsoNDAqKGJlPTB8YVtt''@;'; put 'put ''Kyg3MipmfDApKzU2Pj4yXSl8MCkrMjg+PjJdKXwwKSszMnwwKT4+Ml0pPT0oMHxiZSk/YVt3Pj4yXT1iOmFbQSsoNDAqcHwwKSszNj4+Ml09YixhW2s+PjJdPXA9MHxhW20rKDcyKmZ8MCkrNDg+PjJdO2Rve2lmKCgwfHApPjApe2lmKCgwfGFbKHc9bSsoNzIqcHwwKSs0MHwwKT4+Ml0pPT0o''@;'; put 'put ''MHxmKSl7YVt3Pj4yXT1jO2JyZWFrfSgwfGFbKHA9bSsoNzIqcHwwKSs0NHwwKT4+Ml0pPT0oMHxmKSYmKGFbcD4+Ml09Yyl9fXdoaWxlKDApO2FbTT4+Ml09cD0wfGFbbSsoNzIqZnwwKSs1Mj4+Ml07ZG97aWYoKDB8cCk+MCl7aWYoKDB8YVsodz1tKyg3MipwfDApKzQwfDApPj4yXSk9PSgw''@;'; put 'put ''fGYpKXthW3c+PjJdPWM7YnJlYWt9KDB8YVsocD1tKyg3MipwfDApKzQ0fDApPj4yXSk9PSgwfGYpJiYoYVtwPj4yXT1jKX19d2hpbGUoMCk7YVtxPj4yXT1hWyhiZT1tKyg3MipmfDApKzI0fDApPj4yXSxhW3ErND4+Ml09YVtiZSs0Pj4yXSxhW3ErOD4+Ml09YVtiZSs4Pj4yXSxhW3ErMTI+''@;'; put 'put ''PjJdPWFbYmUrMTI+PjJdLGFbbSsoNzIqZnwwKSs2OD4+Ml09Mn19ZnVuY3Rpb24gQkUobCxjKXtyZXR1cm4gbHw9MCwoY3w9MCkmJihjPTB8ZnVuY3Rpb24gTmIobCl7dmFyIGM7cmV0dXJuIGx8PTAsMHwoYz0wfHZyKDgpKSYmKGFbYys0Pj4yXT1sLGFbYz4+Ml09MCksMHxjfShjKSxhW2M+''@;'; put 'put ''PjJdPWwsbD1jKSwwfGx9ZnVuY3Rpb24gVmIoKXt2YXIgbDtyZXR1cm4gMHwobD0wfHZyKDE5OTIpKSYmKGFbbD4+Ml09MHxmdW5jdGlvbiBwQihsKXt2YXIgYztyZXR1cm4gYz0wfEc5KGx8PTApLGFbYys0Pj4yXT0wLGFbKGw9bCsxOTcyfDApPj4yXT0xKygwfGFbbD4+Ml0pLDB8Y30obCkp''@;'; put 'put ''LDB8bH1mdW5jdGlvbiBqYihsKXtyZXR1cm4gWmIobHw9MCwwfGFbbD4+Ml0pLEZ0KDB8YVtsPj4yXSksRnQobCksMH1mdW5jdGlvbiBaYihsLGMpe2N8PTA7dmFyIEEsdyxiLGY9MCxwPTAsbT0wO0E9MTk4MCsobHw9MCl8MCx3PWwrMTkxMnwwLGI9bCsxOTM2fDA7ZTpkb3tpZigoMHxhW2Mr''@;'; put 'put ''ND4+Ml0pPjApZm9yKGY9MDs7KXtpZig2ND09KDB8ZikpYnJlYWsgZTswfChtPTB8YVsocD1jKzgrKDIwKmZ8MCkrMTZ8MCk+PjJdKSYmKFpiKGwsbSksRnQoMHxhW3A+PjJdKSxXYihjLGYpLGFbQT4+Ml09KDB8YVtBPj4yXSktMSwwfGFbdz4+Ml0pJiYoYVtiPj4yXT0xKygwfGFbYj4+Ml0p''@;'; put 'put ''KSxmPWYrMXwwfWVsc2UgZm9yKGY9MDs7KXtpZig2ND09KDB8ZikpYnJlYWsgZTswfGFbYys4KygyMCpmfDApKzE2Pj4yXSYmKFdiKGMsZiksYVtBPj4yXT0oMHxhW0E+PjJdKS0xLDB8YVt3Pj4yXSkmJihhW2I+PjJdPTErKDB8YVtiPj4yXSkpLGY9ZisxfDB9fXdoaWxlKDApfWZ1bmN0aW9u''@;'; put 'put ''IE40KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTA7KGN8PTApfHxQcigxMzg4NzksMTM4NTI5LDE5NCwxMzg1MzcpLCgwfChwPTB8YVtjKzQ+PjJdKSk8PS0xJiZQcigxMzg1NDksMTM4NTI5LDE5NSwxMzg1MzcpLGZ8fFByKDEzODgyMSwxMzg1MjksMTk2LDEzODUz''@;'; put 'put ''NyksYVsoYj1sKzE5NTJ8MCk+PjJdPTErKDB8YVtiPj4yXSk7ZTpkb3tpZigoMHxwKT4wKWZvcihiPTAscD0wOzspe2lmKDY0PT0oMHxiKSlicmVhayBlO2lmKDAhPSgwfGFbKG09Yys4KygyMCpifDApKzE2fDApPj4yXSkmJjAhPSgwfFliKGYsYys4KygyMCpifDApfDApKSlpZihBPTB8TjQo''@;'; put 'put ''bCwwfGFbbT4+Ml0sZikscCl7Zm9yKG09cDt3PTB8YVttPj4yXTspbT13O2FbbT4+Ml09QX1lbHNlIHA9QTtiPWIrMXwwfWVsc2UgZm9yKEE9MCxwPTA7Oyl7aWYoNjQ9PSgwfEEpKWJyZWFrIGU7bT1jKzgrKDIwKkF8MCl8MCwwIT0oMHxhW2MrOCsoMjAqQXwwKSsxNj4+Ml0pJiYwIT0oMHxZ''@;'; put 'put ''YihmLG0pKSYmKHA9MHxCRShwLG0pKSxBPUErMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIHpiKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBNLEQsUixHLHEsQT0wLHc9MCxiPTAsaz0wLHBlPTA7aWYocT1sZSxsZT1sZSs2NHwwLEQ9cSszMnwwLFI9''@;'; put 'put ''cSsxNnwwLEc9cSxhWyhNPXErNTJ8MCk+PjJdPTAsMCE9KDB8YykmMCE9KDB8cCl8fFByKDEzODczNSwxMzg1MjksMjQ3LDEzODU2MyksKDB8bSk+LTEmJigwfGFbNCsoaz0wfGFbcD4+Ml0pPj4yXSk+PSgwfG0pKXtmb3IoQT0wOyEoKDB8QSk+PTIpOyl7aWYoKDB8YVtjKyhBPDwyKT4+Ml0p''@;'; put 'put ''PigwfGFbYysoQSsyPDwyKT4+Ml0pKXt3PTg7YnJlYWt9QT1BKzF8MH1yZXR1cm4gOD09KDB8dykmJlByKDEzODYxMCwxMzg1MjksMjUwLDEzODU2Myksdz0wfGFbKEE9bCsxOTA4fDApPj4yXSwwfGFbKGI9bCsxOTEyfDApPj4yXSYmKGFbKHBlPTB8dz9sKzE5MjR8MDpsKzE5MTZ8MCk+PjJd''@;'; put 'put ''PTErKDB8YVtwZT4+Ml0pKSx3fHwoYVsocGU9bCsxOTY0fDApPj4yXT0xKygwfGFbcGU+PjJdKSksMHxHYihsLGMsZixrLE0sbSk/KDB8YVtiPj4yXSYmKGFbKHBlPTB8YVtBPj4yXT9sKzE5NDh8MDpsKzE5NDR8MCk+PjJdPTErKDB8YVtwZT4+Ml0pKSxBPTB8RzkobCksYVsocGU9bCsxOTc2''@;'; put 'put ''fDApPj4yXT0xKygwfGFbcGU+PjJdKSxhW0ErND4+Ml09MSsoMHxhWzQrKHBlPTB8YVtwPj4yXSk+PjJdKSxXOShSLHBlKSxhW0Q+PjJdPWFbUj4+Ml0sYVtEKzQ+PjJdPWFbUis0Pj4yXSxhW0QrOD4+Ml09YVtSKzg+PjJdLGFbRCsxMj4+Ml09YVtSKzEyPj4yXSxhWyhwZT1EKzE2fDApPj4y''@;'; put 'put ''XT1hW3A+PjJdLGI2KGwsRCxBLDApLFc5KEcsMHxhW00+PjJdKSxhW0Q+PjJdPWFbRz4+Ml0sYVtEKzQ+PjJdPWFbRys0Pj4yXSxhW0QrOD4+Ml09YVtHKzg+PjJdLGFbRCsxMj4+Ml09YVtHKzEyPj4yXSxhW3BlPj4yXT1hW00+PjJdLGI2KGwsRCxBLDApLGFbcD4+Ml09QSxhWyhBPWwrMTk4''@;'; put 'put ''MHwwKT4+Ml09MisoMHxhW0E+PjJdKSxBPTEpOkE9MCxsZT1xLDB8QX1yZXR1cm4gUHIoMTM4NTc1LDEzODUyOSwyNDgsMTM4NTYzKSwwfWZ1bmN0aW9uIEdiKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgTSxELFIsRyxxLHBlLHc9MCxiPTAsaz0wO2lm''@;'; put 'put ''KHBlPWxlLGxlPWxlKzgwfDAsRD1wZSs1MnwwLEc9cGUrMzJ8MCxxPXBlKzE2fDAsTT1wZSxhWyhSPXBlKzQ4fDApPj4yXT0wLDAhPSgwfGMpJjAhPSgwfHApJjAhPSgwfG0pfHxQcigxMzg2NTMsMTM4NTI5LDMxMSwxMzg2NjcpLCgwfEEpPi0xJiYoMHwodz0wfGFbKGI9cCs0fDApPj4yXSkp''@;'; put 'put ''Pj0oMHxBKSl7MHxhW2wrMTkxMj4+Ml0mJihhWyh3PTB8YVtsKzE5MDg+PjJdP2wrMTk0OHwwOmwrMTk0NHwwKT4+Ml09MSsoMHxhW3c+PjJdKSx3PTB8YVtiPj4yXSk7ZG97aWYoKDB8dyk+KDB8QSkpe2lmKHc9cCs4KygyMCooYj0wfFBFKGMscCkpfDApKzE2fDAsYj1wKzgrKDIwKmJ8MCl8''@;'; put 'put ''MCwwfEdiKGwsYyxmLDB8YVt3Pj4yXSxSLEEpKXtXOShxLDB8YVt3Pj4yXSksYVtiPj4yXT1hW3E+PjJdLGFbYis0Pj4yXT1hW3ErND4+Ml0sYVtiKzg+PjJdPWFbcSs4Pj4yXSxhW2IrMTI+PjJdPWFbcSsxMj4+Ml0sYVtEKzE2Pj4yXT1rPTB8YVtSPj4yXSxXOShNLGspLGFbRD4+Ml09YVtN''@;'; put 'put ''Pj4yXSxhW0QrND4+Ml09YVtNKzQ+PjJdLGFbRCs4Pj4yXT1hW00rOD4+Ml0sYVtEKzEyPj4yXT1hW00rMTI+PjJdLGFbKGs9bCsxOTgwfDApPj4yXT0xKygwfGFbaz4+Ml0pLGs9MHxiNihsLEQscCxtKTticmVha31JaChHLGMsYiksYVtiPj4yXT1hW0c+PjJdLGFbYis0Pj4yXT1hW0crND4+''@;'; put 'put ''Ml0sYVtiKzg+PjJdPWFbRys4Pj4yXSxhW2IrMTI+PjJdPWFbRysxMj4+Ml0saz0wO2JyZWFrfWlmKCgwfHcpPT0oMHxBKSl7YVtEPj4yXT1hW2M+PjJdLGFbRCs0Pj4yXT1hW2MrND4+Ml0sYVtEKzg+PjJdPWFbYys4Pj4yXSxhW0QrMTI+PjJdPWFbYysxMj4+Ml0sYVtEKzE2Pj4yXT1mLGFb''@;'; put 'put ''KGs9bCsxOTgwfDApPj4yXT0xKygwfGFbaz4+Ml0pLGs9MHxiNihsLEQscCxtKTticmVha31QcigxMzg3MTIsMTM4NTI5LDM0MSwxMzg2NjcpfXdoaWxlKDApO3JldHVybiBsZT1wZSwwfGt9cmV0dXJuIFByKDEzODY4MCwxMzg1MjksMzEyLDEzODY2NyksMH1mdW5jdGlvbiBHOShsKXtyZXR1''@;'; put 'put ''cm4gYVsobD0xOTY4KyhsfD0wKXwwKT4+Ml09MSsoMHxhW2w+PjJdKSxnQihsPTB8RjAoMTI4OCkpLDB8bH1mdW5jdGlvbiBnQihsKXt2YXIgYz0wO2ZvcihhWyhsfD0wKT4+Ml09MCxhW2wrND4+Ml09LTEsYz0wOzY0IT0oMHxjKTspQ20obCs4KygyMCpjfDApfDApLGM9YysxfDB9ZnVuY3Rp''@;'; put 'put ''b24gQ20obCl7WTkobHw9MCksYVtsKzE2Pj4yXT0wfWZ1bmN0aW9uIFc5KGwsYyl7bHw9MDt2YXIgQSx3LGIsZj0wLHA9MCxtPTA7Zm9yKGI9bGUsbGU9bGUrMzJ8MCxBPWIrMTZ8MCx3PWIsKGN8PTApfHxQcigxMzg4NzksMTM4NzE4LDk5LDEzODcyNSksWTkoQSksZj0xLG09MDs2NCE9KDB8''@;'; put 'put ''bSk7KXtkb3tpZigwfGFbYys4KygyMCptfDApKzE2Pj4yXSl7aWYocD1jKzgrKDIwKm18MCl8MCxmKXthW0E+PjJdPWFbcD4+Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxhW0ErOD4+Ml09YVtwKzg+PjJdLGFbQSsxMj4+Ml09YVtwKzEyPj4yXSxmPTA7YnJlYWt9SWgodyxBLHApLGFbQT4+Ml09''@;'; put 'put ''YVt3Pj4yXSxhW0ErND4+Ml09YVt3KzQ+PjJdLGFbQSs4Pj4yXT1hW3crOD4+Ml0sYVtBKzEyPj4yXT1hW3crMTI+PjJdLGY9MDticmVha319d2hpbGUoMCk7bT1tKzF8MH1hW2w+PjJdPWFbQT4+Ml0sYVtsKzQ+PjJdPWFbQSs0Pj4yXSxhW2wrOD4+Ml09YVtBKzg+PjJdLGFbbCsxMj4+Ml09''@;'; put 'put ''YVtBKzEyPj4yXSxsZT1ifWZ1bmN0aW9uIFBFKGwsYyl7dmFyIGIsayxNLGY9MCxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MCxHPTAscT0wO2ZvcihNPWxlLGxlPWxlKzMyfDAsYj1NKzE2fDAsaz1NLDAhPSgwfChsfD0wKSkmMCE9KDB8KGN8PTApKXx8UHIoMTM4NzM1LDEzODcxOCwxMjUsMTM4''@;'; put 'put ''NzQyKSxmPTAscD0wLG09MCxBPTEsdz0wOzY0IT0oMHx3KTspMHxhW2MrOCsoMjAqd3wwKSsxNj4+Ml0mJihxPTB8YmYoUj1jKzgrKDIwKnd8MCl8MCksSWgoayxsLFIpLGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1h''@;'; put 'put ''W2srMTI+PjJdLGY9KEc9KEQ9MCE9KDB8QSl8KDB8KFI9KDB8YmYoYikpLXF8MCkpPCgwfG0pKXwoMHxxKTwoMHxwKSYoMHxSKT09KDB8bSkpP3c6ZixwPUc/cTpwLG09Rz9SOm0sQT1EPzA6QSksdz13KzF8MDtyZXR1cm4gbGU9TSwwfGZ9ZnVuY3Rpb24gYjYobCxjLGYscCl7bHw9MCxmfD0w''@;'; put 'put ''LHB8PTA7dmFyIG09MCxBPTAsdz0wOyhjfD0wKXx8UHIoMTM4OTAxLDEzODcxOCwxNjcsMTM4NzUzKSxmfHxQcigxMzg4NzksMTM4NzE4LDE2OCwxMzg3NTMpO2Rve2lmKCgwfGFbZj4+Ml0pPDY0KXtmb3IobD0wOzspe2lmKCgwfGwpPj02NCl7cD0xMDticmVha31pZighKDB8YVtmKzgrKDIw''@;'; put 'put ''Kmx8MCkrMTY+PjJdKSl7cD04O2JyZWFrfWw9bCsxfDB9aWYoOD09KDB8cCkpe2FbKG09Zis4KygyMCpsfDApfDApPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sYVttKzE2Pj4yXT1hW2MrMTY+PjJdLG09''@;'; put 'put ''MCxBPWY7YnJlYWt9MTA9PSgwfHApJiZQcigxMzg3NjMsMTM4NzE4LDE3OCwxMzg3NTMpfWVsc2V7aWYoMHxhW2wrMTkxMj4+Ml0mJihhWyh3PTB8YVtsKzE5MDg+PjJdP2wrMTk0OHwwOmwrMTk0NHwwKT4+Ml09MSsoMHxhW3c+PjJdKSkscCl7VWIobCxmLGMscCksbT0xLEE9MD09KDB8YVtm''@;'; put 'put ''KzQ+PjJdKT9sKzE5NzJ8MDpsKzE5NzZ8MDticmVha31QcigxMzg3NzYsMTM4NzE4LDE4NywxMzg3NTMpfX13aGlsZSgwKTtyZXR1cm4gYVtBPj4yXT0xKygwfGFbQT4+Ml0pLDB8bX1mdW5jdGlvbiBXYihsLGMpe2lmKDAhPSgwfChsfD0wKSkmKGN8PTApPj4+MDw2NHx8UHIoMTM4NzgwLDEz''@;'; put 'put ''ODcxOCwyMDEsMTM4ODA4KSwwfGFbbCs4KygyMCpjfDApKzE2Pj4yXSlyZXR1cm4gQ20obCs4KygyMCpjfDApfDApLHZvaWQoYVtsPj4yXT0oMHxhW2w+PjJdKS0xKTtQcigxMzkzMDIsMTM4NzE4LDIwMiwxMzg4MDgpfWZ1bmN0aW9uIFk5KGwpe2x8PTA7dmFyIGM9MDtmb3IoYz0wOzQhPSgw''@;'; put 'put ''fGMpOylhW2wrKGM8PDIpPj4yXT0wLGM9YysxfDB9ZnVuY3Rpb24gYmYobCl7dmFyIGM9MCxmPTA7KGx8PTApfHxQcigxMzg4MjEsMTM4ODIzLDEyOCwxMzg4MzUpO2U6ZG97aWYoKDB8YVtsPj4yXSk+KDB8YVtsKzg+PjJdKSljPTA7ZWxzZSBmb3IoYz0xLGY9MDs7KXtpZigyPT0oMHxmKSli''@;'; put 'put ''cmVhayBlO2M9KDB8QXIoMHxhW2wrKGYrMjw8Mik+PjJdLGMpKS0oMHxhW2wrKGY8PDIpPj4yXSl8MCxmPWYrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEloKGwsYyxmKXtsfD0wO3ZhciBtLEEscD0wLHc9MCxiPTAsaz0wO0E9bGUsbGU9bGUrMTZ8MCxtPUEsMCE9KDB8KGN8''@;'; put 'put ''PTApKSYwIT0oMHwoZnw9MCkpfHxQcigxMzg4NDQsMTM4ODIzLDE5NSwxMzg4NTIpO2Rve2lmKCgwfGFbYz4+Ml0pPigwfGFbYys4Pj4yXSkpYVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07ZWxzZXtp''@;'; put 'put ''ZigoMHxhW2Y+PjJdKT4oMHxhW2YrOD4+Ml0pKXthW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXTticmVha31mb3IocD0wOzIhPSgwfHApOylhW20rKHA8PDIpPj4yXT0oMHwoaz0wfGFbYysocDw8Mik+''@;'; put 'put ''PjJdKSk8KDB8KHc9MHxhW2YrKHA8PDIpPj4yXSkpP2s6dyxhW20rKCh3PXArMnwwKTw8Mik+PjJdPSgwfChrPTB8YVtjKyh3PDwyKT4+Ml0pKT4oMHwoYj0wfGFbZisodzw8Mik+PjJdKSk/azpiLHA9cCsxfDA7YVtsPj4yXT1hW20+PjJdLGFbbCs0Pj4yXT1hW20rND4+Ml0sYVtsKzg+PjJd''@;'; put 'put ''PWFbbSs4Pj4yXSxhW2wrMTI+PjJdPWFbbSsxMj4+Ml19fXdoaWxlKDApO2xlPUF9ZnVuY3Rpb24gWWIobCxjKXt2YXIgZj0wLHA9MDtmb3IoMCE9KDB8KGx8PTApKSYwIT0oMHwoY3w9MCkpP2Y9MDpQcigxMzg4NjQsMTM4ODIzLDIxNiwxMzg4NzEpOzspe2lmKCgwfGYpPj0yKXtmPTE7YnJl''@;'; put 'put ''YWt9aWYoKDB8YVtsKyhmPDwyKT4+Ml0pPigwfGFbYysoKHA9ZisyfDApPDwyKT4+Ml0pKXtmPTA7YnJlYWt9aWYoKDB8YVtjKyhmPDwyKT4+Ml0pPigwfGFbbCsocDw8Mik+PjJdKSl7Zj0wO2JyZWFrfWY9ZisxfDB9cmV0dXJuIDB8Zn1mdW5jdGlvbiBVYihsLGMsZixwKXtsfD0wLGZ8PTAs''@;'; put 'put ''cHw9MDt2YXIgQSxtPTAsdz0wLGI9MDsoY3w9MCl8fFByKDEzODg3OSwxMzg4ODEsNDAsMTM4ODkxKSxmfHxQcigxMzg5MDEsMTM4ODgxLDQxLDEzODg5MSksMHxhWyhiPWwrMTkxMnwwKT4+Ml0mJihhWyh3PTB8YVtsKzE5MDg+PjJdP2wrMTkzMnwwOmwrMTkyOHwwKT4+Ml09MSsoMHxhW3c+''@;'; put 'put ''PjJdKSksdz0wfGFbKEE9Yys0fDApPj4yXSxmdW5jdGlvbiBIRShsLGMsZil7bHw9MCxmfD0wO3ZhciBBLHcscD0wLG09MCxiPTAsaz0wO2Zvcih3PWxlLGxlPWxlKzE2fDAsQT13LChjfD0wKXx8UHIoMTM4ODc5LDEzODg4MSwxMDYsMTM5MjkwKSxmP3A9MDpQcigxMzg5MDEsMTM4ODgxLDEw''@;'; put 'put ''NywxMzkyOTApOyEoKDB8cCk+PTY0KTspe2lmKCEoMHxhW2MrOCsoMjAqcHwwKSsxNj4+Ml0pKXttPTc7YnJlYWt9YVsoYj1sKzQrKDIwKnB8MCl8MCk+PjJdPWFbKGs9Yys4KygyMCpwfDApfDApPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4y''@;'; put 'put ''XT1hW2srMTI+PjJdLGFbYisxNj4+Ml09YVtrKzE2Pj4yXSxwPXArMXwwfWZvcig3PT0oMHxtKSYmUHIoMTM5MzAyLDEzODg4MSwxMTEsMTM5MjkwKSxwPWwrNHwwLGFbKGs9bCsxMjg0fDApPj4yXT1hW2Y+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2sr''@;'; put 'put ''MTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2Pj4yXT1hW2YrMTY+PjJdLGFbKGY9bCsxMzA0fDApPj4yXT1hW3A+PjJdLGFbZis0Pj4yXT1hW3ArND4+Ml0sYVtmKzg+PjJdPWFbcCs4Pj4yXSxhW2YrMTI+PjJdPWFbcCsxMj4+Ml0scD0xOzY1IT0oMHxwKTspSWgoQSxmLGwrNCsoMjAqcHwwKXww''@;'; put 'put ''KSxhW2Y+PjJdPWFbQT4+Ml0sYVtmKzQ+PjJdPWFbQSs0Pj4yXSxhW2YrOD4+Ml09YVtBKzg+PjJdLGFbZisxMj4+Ml09YVtBKzEyPj4yXSxwPXArMXwwO2FbbCsxMzIwPj4yXT0wfGJmKGYpLGdCKGMpLGxlPXd9KGwsYyxmKSxmPWwrMTMyNHwwLGZ1bmN0aW9uIFFiKGwpe3ZhciBiLGssTSxE''@;'; put 'put ''LFIsRyxxLHBlLGJlLE9lLExlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGdlPTAsUmU9MDtmb3IoTGU9bGUsbGU9bGUrNDh8MCxiPUxlKzMyfDAsTT1MZSsxNnwwLEQ9TGUsZnVuY3Rpb24gbUIobCl7dmFyIGYscCxtLGM9MDtmb3IoZj1sZSxsZT1sZSsxNnwwLHA9ZixhWzE4NDgrKGx8PTAp''@;'; put 'put ''Pj4yXT0wLGFbbCsxODQ0Pj4yXT0wLGM9bCsxODUyfDAsbT1sKzE4Njh8MCxmdW5jdGlvbiBGRShsKXtsfD0wO3ZhciBmLHAsYz0wO2ZvcihwPWxlLGxlPWxlKzE2fDAsYVsoZj1wKT4+Ml09MSxhW2YrOD4+Ml09LTEsYz0xOzIhPSgwfGMpOylhW2YrKGMrMjw8Mik+PjJdPTAsYVtmKyhjPDwy''@;'; put 'put ''KT4+Ml09MCxjPWMrMXwwO2FbbD4+Ml09YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdLGxlPXB9KHApLGFbbT4+Ml09YVtwPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLGFbbSs4Pj4yXT1hW3ArOD4+Ml0sYVttKzEy''@;'; put 'put ''Pj4yXT1hW3ArMTI+PjJdLGFbYz4+Ml09YVtwPj4yXSxhW2MrND4+Ml09YVtwKzQ+PjJdLGFbYys4Pj4yXT1hW3ArOD4+Ml0sYVtjKzEyPj4yXT1hW3ArMTI+PjJdLGFbbCsxODg4Pj4yXT0wLGFbbCsxODg0Pj4yXT0wLGM9MDs2NSE9KDB8Yyk7KWFbbCsxNTg0KyhjPDwyKT4+Ml09MCxhW2wr''@;'; put 'put ''MTMyNCsoYzw8Mik+PjJdPS0xLGM9YysxfDA7bGU9Zn0obHw9MCksZnVuY3Rpb24gTkUobCl7bHw9MDt2YXIgTSxELFIsRyxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLHE9MCxwZT0wLGdlPTA7Zm9yKEc9bGUsbGU9bGUrMzA0fDAsTT1HKzMyfDAsRD1HKzE2fDAsUj1HLGM9MDs2''@;'; put 'put ''NSE9KDB8Yyk7KWFbTSsoYzw8Mik+PjJdPTB8YmYobCs0KygyMCpjfDApfDApLGM9YysxfDA7Yz0wLGY9MCxwPTAsQT0wO2U6Zm9yKDs2NCE9KDB8QSk7KWZvcihiPUErMXwwLGs9bCs0KygyMCpBfDApfDAsdz1NKyhBPDwyKXwwLG09Yjs7KXtpZig2NT09KDB8bSkpe0E9Yjtjb250aW51ZSBl''@;'; put 'put ''fUloKFIsayxsKzQrKDIwKm18MCl8MCksYVtEPj4yXT1hW1I+PjJdLGFbRCs0Pj4yXT1hW1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+Ml0sZ2U9KHBlPShxPShxPTB8YmYoRCkpLSgwfGFbdz4+Ml0pLSgwfGFbTSsobTw8Mik+PjJdKXwwKT4+PjA+cD4+''@;'; put 'put ''PjApP206YyxtPW0rMXwwLGM9Z2UsZj1wZT9BOmYscD1wZT9xOnB9VTkobCxmLDApLFU5KGwsYywxKSxsZT1HfShsKSxwZT1sKzE4NDR8MCxiZT1sKzE4NDh8MCxPZT1sKzE4OTJ8MCxSPWwrMTg1MnwwLEc9bCsxODg0fDAscT1sKzE4Njh8MCxrPWwrMTg4OHwwLG09MCxwPTA7ISgoKGM9MHxh''@;'; put 'put ''W2JlPj4yXSkrKGY9MHxhW3BlPj4yXSl8MCk+PTY1KTspe2lmKCEoKDB8Zik8KDB8KHc9NjUtKDB8YVtPZT4+Ml0pfDApKSYoMHxjKTwoMHx3KSkpe2dlPTEyO2JyZWFrfWZvcihBPS0xLHc9MDs2NSE9KDB8dyk7KTB8YVtsKzE1ODQrKHc8PDIpPj4yXT8oYz1BLGY9bSk6KEloKE0sUmU9bCs0''@;'; put 'put ''KygyMCp3fDApfDAsUiksYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0sYz0wfGJmKGIpLGY9MHxhW0c+PjJdLEloKEQsUmUscSksYVtiPj4yXT1hW0Q+PjJdLGFbYis0Pj4yXT1hW0QrND4+Ml0sYVti''@;'; put 'put ''Kzg+PjJdPWFbRCs4Pj4yXSxhW2IrMTI+PjJdPWFbRCsxMj4+Ml0sYz0oZj0oMHwoYz0oUmU9MHxiZihiKSktKDB8YVtrPj4yXSkrKGYtYyl8MCkpPi0xKT9jOjAtY3wwLGY9MSYoMV5mKSwoMHxjKTw9KDB8QSk/KDB8Yyk9PSgwfEEpPyhjPUEsZj0oUmU9KDB8YVtsKzE4NDQrKGY8PDIpPj4y''@;'; put 'put ''XSk8KDB8YVtsKzE4NDQrKG08PDIpPj4yXSkpP2Y6bSxwPVJlP3c6cCk6KGM9QSxmPW0pOnA9dyksQT1jLHc9dysxfDAsbT1mO1U5KGwscCxtKX1pZigxMj09KDB8Z2UpKXtmb3IoYz0oMHxmKT49KDY1LSgwfGFbT2U+PjJdKXwwKSYxLGY9MDs2NSE9KDB8Zik7KTB8YVtsKzE1ODQrKGY8PDIp''@;'; put 'put ''Pj4yXXx8VTkobCxmLGMpLGY9ZisxfDA7Zj0wfGFbcGU+PjJdLGM9MHxhW2JlPj4yXX02NSE9KGMrZnwwKSYmUHIoMTM5MDQ2LDEzODg4MSwyMTAsMTM5MTMyKSwoMHxmKTwoMHwoUmU9MHxhW09lPj4yXSkpfCgwfGMpPCgwfFJlKT9QcigxMzkxNDMsMTM4ODgxLDIxMiwxMzkxMzIpOmxlPUxl''@;'; put 'put ''fShsKSxtPTB8YmYobCsxODUyfDApLG09KDB8YmYobCsxODY4fDApKSttfDAsMHxhW2I+PjJdJiYwIT0oMHxtKSYwPT0oMHxhW2wrMTkwOD4+Ml0pJiYoam5bKGI9bCsxOTYwfDApPj4yXT0rKCgwfGFbbCsxMzIwPj4yXSk+Pj4wKS8rKDB8bSkrICtqbltiPj4yXSksYj0wfEc5KGwpLGFbcD4+''@;'; put 'put ''Ml09YixhW0E+PjJdPXcsYVtiKzQ+PjJdPXcsZnVuY3Rpb24ga20obCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG09MDtmb3IoKGN8PTApfHxQcigxMzg4NzksMTM4ODgxLDI5NywxMzg5NDMpLGZ8fFByKDEzODk1MywxMzg4ODEsMjk4LDEzODk0MykscD9tPTA6UHIoMTM4OTU1LDEzODg4''@;'; put 'put ''MSwyOTksMTM4OTQzKTs7KXtpZigoMHxtKT49NjUpe3A9MTQ7YnJlYWt9aWYoKHA9MHxhW2wrMTMyNCsobTw8Mik+PjJdKT4+PjA+PTIpe3A9OTticmVha31zd2l0Y2goMHxwKXtjYXNlIDA6YjYobCxsKzQrKDIwKm18MCl8MCxjLDApO2JyZWFrO2Nhc2UgMTpiNihsLGwrNCsoMjAqbXwwKXww''@;'; put 'put ''LGYsMCl9bT1tKzF8MH1pZig5PT0oMHxwKSlQcigxMzg5NTcsMTM4ODgxLDMwMywxMzg5NDMpO2Vsc2UgaWYoMTQ9PSgwfHApKTt9KGwsYyxiLGYpLDY1IT0oKDB8YVthW3A+PjJdPj4yXSkrKDB8YVtjPj4yXSl8MCkmJlByKDEzODkwMywxMzg4ODEsODYsMTM4ODkxKX1mdW5jdGlvbiBVOShs''@;'; put 'put ''LGMsZil7Znw9MDt2YXIgbSxBLHcsYixwPTA7Yj1sZSxsZT1sZSsxNnwwLHc9YiwwfGFbKHA9MTU4NCsobHw9MCkrKChjfD0wKTw8Mil8MCk+PjJdJiZQcigxMzkyNDYsMTM4ODgxLDI1NywxMzkyODEpLGFbbCsxMzI0KyhjPDwyKT4+Ml09ZixhW3A+PjJdPTEsbT1sKzE4NTIrKGY8PDQpfDAs''@;'; put 'put ''cD1sKzQrKDIwKmN8MCl8MCwwfGFbKEE9bCsxODQ0KyhmPDwyKXwwKT4+Ml0/KEloKHcscCxtKSxhW20+PjJdPWFbdz4+Ml0sYVttKzQ+PjJdPWFbdys0Pj4yXSxhW20rOD4+Ml09YVt3Kzg+PjJdLGFbbSsxMj4+Ml09YVt3KzEyPj4yXSk6KGFbbT4+Ml09YVtwPj4yXSxhW20rND4+Ml09YVtw''@;'; put 'put ''KzQ+PjJdLGFbbSs4Pj4yXT1hW3ArOD4+Ml0sYVttKzEyPj4yXT1hW3ArMTI+PjJdKSxhW2wrMTg4NCsoZjw8Mik+PjJdPTB8YmYobSksYVtBPj4yXT0xKygwfGFbQT4+Ml0pLGxlPWJ9ZnVuY3Rpb24gSmIobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHx2cig4KSxmZVtmKzQ+PjBd''@;'; put 'put ''PWMsYVtmPj4yXT1sLDB8Zn1mdW5jdGlvbiBEMygpe3ZhciBsPTAsYz0wO2ZvcihsPTB8YVs0NzQwMl0sMHwoYz0wfGFbNDc0MDBdKSYmKEFtKGMsMSksYVs0NzQwMF09MCksYVsxNDAyMV09Njc7bDspYz0wfGFbbCs4MD4+Ml0sWkUobCksbD1jO2FbMTQwMjFdPTU2LGFbMTQwMzBdPTY4LG1p''@;'; put 'put ''WzYzJmFbKGM9MHxhWzQ3NDA1XSk+PjJdXShjLDAsNjQpLGFbMTQwMzBdPTU2LGFbMTQwMzldPTY5LG1pWzYzJmFbKGM9MHxhWzQ3NDA2XSk+PjJdXShjLDAsNjQpLGFbMTQwMzldPTU2LGZ1bmN0aW9uIHdCKCl7dmFyIGw9MCxjPTA7Zm9yKGw9MHxhWzQ3NDAzXTtjPTB8YVtsKzQ+PjJdOylG''@;'; put 'put ''dChsKSxsPWN9KCl9ZnVuY3Rpb24gU20oKXt2YXIgZixwLGw9MCxjPTAsbT0wLEE9MDtmPTB8YVs0NzQwNl0scD0wfHZyKDQwKSwwfHB1KDB8YVs0NzQwNV0pJiZROSgwKSxsPTB8cHUoZiksaXRbcCs0Pj4xXT1sO2U6ZG97aWYobClmb3IoYVtwPj4yXT0wfHZyKDI0Kmx8MCksbD0wLGM9MHxt''@;'; put 'put ''aVs2MyZhW2Y+PjJdXShmLDAsMTI4KTs7KXtpZighYyl7bD1mO2JyZWFrIGV9YVsobT0oMHxhW3A+PjJdKSsoMjQqbHwwKXwwKT4+Ml09YVsoQT1jKzh8MCk+PjJdLGFbbSs0Pj4yXT1hW0ErND4+Ml0sYVttKzg+PjJdPWFbQSs4Pj4yXSxhW20rMTI+PjJdPWFbQSsxMj4+Ml0sYVttKzE2Pj4y''@;'; put 'put ''XT1hW0ErMTY+PjJdLGFbbSsyMD4+Ml09YVtBKzIwPj4yXSxsPWwrMXwwLGM9MHxtaVs2MyZhW2Y+PjJdXShmLGMsOCl9ZWxzZSBsPWZ9d2hpbGUoMCk7cmV0dXJuIG1pWzYzJmFbbD4+Ml1dKGYsMCw2NCksMHxwfWZ1bmN0aW9uIFZFKGwpe2x8PTA7dmFyIGYsYz0wLHA9MDtmPTB8dnIoNjQp''@;'; put 'put ''LChjPTB8YVsocD1sKzR8MCk+PjJdKT4+PjA+PSgwfGFbbCs4Pj4yXSk+Pj4wJiYoUTAobCwxKSxjPTB8YVtwPj4yXSksZmVbYz4+MF09MCxhW3A+PjJdPWw9MHxhW2w+PjJdLGFbZis4Pj4yXT0wfHJhKGwpLGFbZisxMj4+Ml09YVthWzQ3NDAzXT4+Ml0sbWlbNjMmYVsocD0wfGFbNDc0MDVd''@;'; put 'put ''KT4+Ml1dKHAsZiwxKX1mdW5jdGlvbiBROShsKXtsfD0wO3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wLGI9MDtBPTB8dnIoMzIpLGM9MHxwdSh3PTB8YVs0NzQwNV0pLGI9QSs4fDAsZmVbQSsxND4+MF09bDtlOmRve2lmKGMpZm9yKGl0W0ErMTI+PjFdPWMsYVtiPj4yXT0wfHZyKDU2KmN8MCks''@;'; put 'put ''bD0wLGM9MHxzMCh3KTs7KXtpZighYylicmVhayBlO3A9Yys4fDAsbT01NisoZj0oMHxhW2I+PjJdKSsoNTYqbHwwKXwwKXwwO2Rve2FbZj4+Ml09YVtwPj4yXSxmPWYrNHwwLHA9cCs0fDB9d2hpbGUoKDB8Zik8KDB8bSkpO2w9bCsxfDAsYz0wfGFbYz4+Ml19ZWxzZSBhW2I+PjJdPTB8dnIo''@;'; put 'put ''NTYpLGl0W0ErMTI+PjFdPTEsbT0wfHJhKDE5NTA1OSksYj0wfGFbYj4+Ml0sYVtiPj4yXT1tLGFbYis0Pj4yXT1hW2FbNDc0MDNdPj4yXX13aGlsZSgwKTttaVs2MyZhW3c+PjJdXSh3LDAsNjQpLG1pWzYzJmFbKGI9MHxhWzQ3NDA2XSk+PjJdXShiLEEsMSl9ZnVuY3Rpb24gVjQobCl7bHw9''@;'; put 'put ''MDt2YXIgQSx3LGIsYz0wLGY9MCxwPTAsbT0wO2I9bGUsbGU9bGUrMzJ8MCxBPWIsdz0wfHZyKDgpLG09MHxhW2FbNDc0MDNdPj4yXSxhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW0ErMTY+PjJd''@;'; put 'put ''PWFbbCsxNj4+Ml0sYVtBKzIwPj4yXT1hW2wrMjA+PjJdLGFbQSsyND4+Ml09YVtsKzI0Pj4yXSxhW0ErMjg+PjJdPWFbbCsyOD4+Ml0sMHxtJiYoMD09KDB8YVsobD1BKzR8MCk+PjJdKSYmMHwoYz0wfGFbbSs0Pj4yXSkmJihhW2w+PjJdPWMpLCtfWyhsPUErMTZ8MCk+PjNdPDAmJihmPStf''@;'; put 'put ''W20rMTY+PjNdKT49MCYmKF9bbD4+M109ZiksMD09KDB8YVtBPj4yXSkmJjB8KHA9MHxhW20+PjJdKSYmKGFbQT4+Ml09cCksMHwobD0xMjcmYVttKzI0Pj4yXSkmJihhWyhtPUErMjR8MCk+PjJdPTEyNyYocD0wfGFbbT4+Ml0pfGx8LTEyOCZwKSksYVt3Pj4yXT0wfG1pWzYzJmFbKG09MHxh''@;'; put 'put ''WzE0NCsoMHxhWzQ3NDA0XSk+PjJdKT4+Ml1dKG0sQSwxKSxhW3crND4+Ml09YVs0NzQwM10sYVs0NzQwM109dyxsZT1ifWZ1bmN0aW9uIHhkKCl7dmFyIGwsYztsPTB8YVs0KyhjPTB8YVs0NzQwM10pPj4yXSxGdChjKSxhWzQ3NDAzXT1sfWZ1bmN0aW9uIFhiKGwpe2x8PTA7Zm9yKHZhciBj''@;'; put 'put ''PTA7Oyl7aWYoISgoYz0wfGZlW2w+PjBdKTw8MjQ+PjI0KSl7bD0wO2JyZWFrfWlmKGM8PDI0Pj4yNCE9MzIpe2w9MTticmVha31sPWwrMXwwfXJldHVybiAwfGx9ZnVuY3Rpb24gYjEoKXt2YXIgbCxjLGY9MDtmPTB8aXMoNTYwNjgsMHxhWzQ1ODBdKSxsPTB8YVs0NzQwMl0sYz0wfHZyKDE2''@;'; put 'put ''KSxhW2MrOD4+Ml09ZiwyJmZlW2wrMTEyPj4wXSYmKGZlW2MrMTI+PjBdPTEpLG1pWzYzJmFbKGY9MHxhW2wrODQ+PjJdKT4+Ml1dKGYsYywxKX1mdW5jdGlvbiBodSgpe3ZhciBsO3JldHVybiAwfG1pWzYzJmFbKGw9MHxhWzg0KygwfGFbNDc0MDJdKT4+Ml0pPj4yXV0obCwwLDI1Nil9ZnVu''@;'; put 'put ''Y3Rpb24gTW0obCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwLG0sQT0wO209MHx2cigxNiksQT0wfGFbOCsoMHxtaVs2MyZhWyhBPTB8YVs4NCsocD0wfGFbNDc0MDJdKT4+Ml0pPj4yXV0oQSwwLDI1NikpPj4yXSxhW20rOD4+Ml09bCxtaVs2MyZhW0E+PjJdXShBLG0sMSksZmVbbCs5Mj4+''@;'; put 'put ''MF09ZiwxJmZlW3ArMTEyPj4wXSYmKGZlW2wrMTAwPj4wXT0xKSxhW2wrODg+PjJdPWN9ZnVuY3Rpb24gWkUobCl7TmwoMHxhWzg0KyhsfD0wKT4+Ml0pLEs4KGwpLEZ0KGwpfWZ1bmN0aW9uIE5hKGwpe2x8PTA7dmFyIGMsZixwPTA7Zj1sZSxsZT1sZSsxNnwwLGM9ZiwwfGZlWzE4OTY2MV18''@;'; put 'put ''fChmZVsxODk2NjFdPTEscD0wfHV0KCksYVtjPj4yXT1sLGFbYys0Pj4yXT1wLCRyKDEsMTQwNTc1LGMpLCRiKCkpLGxlPWZ9ZnVuY3Rpb24gdXQoKXtyZXR1cm4gMHxmdW5jdGlvbiBxQihsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4obHw9MCk/KDB8KGY9MHxhWyhjPWwrMjg0''@;'; put 'put ''fDApPj4yXSkmJmY+Pj4wPj0obT0wfGFbKHA9bCsyOTJ8MCk+PjJdKT4+PjAmJihSY1szMSZhWzQ4KyhBPTB8YVtsKzE0ND4+Ml0pPj4yXV0oQSxtLGYsbCs0MDR8MCksYVtwPj4yXT1hW2M+PjJdKSxsPTErKDB8YVtsKzQwND4+Ml0pfDApOmw9MCwwfGx9KDB8YVs0NzQwN10pfWZ1bmN0aW9u''@;'; put 'put ''ICRiKCl7dmFyIGYscCxsPTAsYz0wO3A9bGUsbGU9bGUrMTZ8MCxmPXAsYVs0KyhsPTB8YVs0NzQxMF0pPj4yXT1hW2w+PjJdLCgwfChjPTB8YVs0NzQxOV0pKT4wJiYoZFQobCwwfGFbNDc0MTddLGMpLGw9MHxhWzQ3NDEwXSksZFQobCwwfGFbNDc0MTZdLDB8YVs0NzQxOF0pLChsPTB8YVs0''@;'; put 'put ''KyhjPTB8YVs0NzQxMF0pPj4yXSk+Pj4wPj0oMHxhW2MrOD4+Ml0pPj4+MCYmKFEwKGMsMSksYz1sPTB8YVs0NzQxMF0sbD0wfGFbbCs0Pj4yXSksYVtjKzQ+PjJdPWwrMSxmZVtsPj4wXT0wLGFbNCsobD0wfGFbNDc0MTBdKT4+Ml09Yz0wfGFbbD4+Ml0sYVtmPj4yXT1jLCRyKDMsMTQwNTkx''@;'; put 'put ''LGYpLGxlPXB9ZnVuY3Rpb24gWUUobCl7dmFyIGMsZixwO2x8PTAsYz1sZSxsZT1sZSsxNnwwLGY9YyxhWzQ3NDA5XT0yNjgsZmVbMTg5NjYxXT0xLHA9MHx1dCgpLGFbZj4+Ml09bCxhW2YrND4+Ml09cCwkcigxLDE0MDY1OSxmKSxsZT1jfWZ1bmN0aW9uIFVFKGwpe3ZhciBjO3JldHVybiBs''@;'; put 'put ''fD0wLGM9MHx2cigxMjApLGFbYysxMDA+PjJdPS0xLGZlW2MrODg+PjBdPS0xLG41KGMsNTY0MDAsMjIsbCwxNDE2MTEpLDB8Y31mdW5jdGlvbiBTQihsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8dnIoMTA0KSxpdFtjKzgwPj4xXT0xLGl0W2MrODI+PjFdPTEsbjUoYyw1NjIyNCwyMixsLDE0''@;'; put 'put ''MDk2NSksMHxjfWZ1bmN0aW9uIFRkKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgbSxwPTA7cmV0dXJuIG09bGUsbGU9bGUrMzJ8MCxhWyhwPW0pPj4yXT0wLGFbcCs0Pj4yXT0wLGFbcCs4Pj4yXT0wLGFbcCsxMj4+Ml09MCxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbcCsyND4+Ml09''@;'; put 'put ''MCxhW3ArMjg+PjJdPTAsX1twKzE2Pj4zXT0tMSxhW3ArMjQ+PjJdPTEyNyZmLDB8YyYmbjUocCw1NjIwMCwzLGMsMTQwODE2KSxwPTB8bWlbNjMmYVsoZj0wfGFbbCsxNDQ+PjJdKT4+Ml1dKGYscCwxKSxsZT1tLDB8cH1mdW5jdGlvbiBsRyhsKXtsfD0wLGFbNDczOTldPTAsbjUoMTg5NTk2''@;'; put 'put ''LDU2MTkyLDEsbCwxNDA3NTIpfWZ1bmN0aW9uIFFFKGwpe3ZhciBjO3JldHVybiBsfD0wLG41KGM9MHx2cig0MCksNTYxNzYsMixsLDE0MDY5OCksMHxjfWZ1bmN0aW9uIG41KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0sRCxBPTAsdz0wLGI9MDtmb3IoRD1s''@;'; put 'put ''ZSxsZT1sZSsxNnwwLE09RCxrPUQrOHwwO2I9MHxhW3A+PjJdOylBPTB8YVtwKzQ+PjJdLGFbaz4+Ml09Yiwodz0wfG53KGssYyxmLDgsMTA0KSk/QT0yNTUmKDB8KEE9MHxCaVsxMjcmYVt3KzQ+PjJdXShsLEEpKXxYdFsxODk2NjBdKTooYVtNPj4yXT1iLGFbTSs0Pj4yXT1tLCRyKDAsMTQw''@;'; put 'put ''NzA0LE0pLEE9MSksZmVbMTg5NjYwXT1BLHA9cCs4fDA7bGU9RH1mdW5jdGlvbiBJZChsLGMsZixwLG0pe3ZhciBBLHcsYixrLE0sRDtjfD0wLGZ8PTAscHw9MCxtfD0wLE09bGUsbGU9bGUrNDh8MCxrPU0rMjR8MCxiPU0rOHwwLHc9TSxBPTB8a0wobHw9MCxEPU0rMzZ8MCwxMCk7ZG97aWYo''@;'; put 'put ''KDB8YVtEPj4yXSkhPSgwfGwpKXtpZigoMHxBKT4oMHxwKSl7YVtiPj4yXT1jLGFbYis0Pj4yXT1sLGFbYis4Pj4yXT1wLCRyKDAsMTQwODg3LGIpLGw9MTticmVha31pZigoMHxBKTwoMHxmKSl7YVtrPj4yXT1jLGFbays0Pj4yXT1sLGFbays4Pj4yXT1mLCRyKDAsMTQwOTI2LGspLGw9MTti''@;'; put 'put ''cmVha31hW20+PjJdPUEsbD0wO2JyZWFrfWFbdz4+Ml09YyxhW3crND4+Ml09bCwkcigwLDE0MDg1Nix3KSxsPTF9d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxsfWZ1bmN0aW9uIHFFKCl7dmFyIHcsYixsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MDtiPWxlLGxlPWxlKzE2fDAsdz1iLGFbNDc0MDld''@;'; put 'put ''PTAsYz0wO2U6ZG97dDpkb3tzd2l0Y2goMHxmZVsxODk2NjNdKXtjYXNlIDI6bD0tMTticmVhayBlO2Nhc2UgMDpmZVsxODk2NjNdPTEsQT02LGw9MTQxNzMyLGM9MDticmVhaztkZWZhdWx0OmlmKDB8ZmVbKGw9MHxhWzQ3NDA4XSk+PjBdKXtBPShjPTB8JDkobCkpLWx8MDticmVhayB0fWZl''@;'; put 'put ''WzE4OTY2M109MixBPTcsbD0xNDE3Mzk7YnJlYWsgdH19d2hpbGUoMCk7YVs0NzQxN109YVs0NzQxNl0sYVs0NzQxOV09YVs0NzQxOF0sYVs0NzQxNl09bCxhWzQ3NDE4XT1BLG09MHxhWzQ3NDA3XSwocD0oZj0wfGFbNDc0MTJdKS0oMHxhWzQ3NDExXSl8MCk/KGY+Pj4wPCgwfGFbNDc0MTNd''@;'; put 'put ''KT4+PjA/bD1mOihRMCgxODk2NDQsMSksbD0wfGFbNDc0MTJdKSxmZVtsPj4wXT0wLGFbNDc0MTJdPWw9MHxhWzQ3NDExXSxsPTB8bXgobSxsLHAsMCkpOmw9MHxteChtLGwsQSwwPT0oMHxBKSYxKSwwIT0oMHxsKXwwIT0oMHxmZVsxODk2NjFdKXx8KG09MHxlUCgwfCRCKDB8YVs0NzQwN10p''@;'; put 'put ''KSxBPTB8dXQoKSxhW3c+PjJdPW0sYVt3KzQ+PjJdPUEsJHIoMSwxNDA1NzUsdyksJGIoKSxmZVsxODk2NjFdPTEsYVs0NzQwOV09MjY4KSwwfGMmJihhWzQ3NDA4XT1jKSxsPTB8YVs0NzQwOV19d2hpbGUoMD09KDB8bCkpO3JldHVybiBsZT1iLDB8bH1mdW5jdGlvbiAkOShsKXt2YXIgcCxB''@;'; put 'put ''LGM9MCxmPTAsbT0wO0E9bGUsbGU9bGUrMTZ8MCxwPUEsYz0xKyhsfD0wKXwwLGY9MHxmZVtsPj4wXTtlOmRve2lmKGY8PDI0Pj4yND09NjApeyhmPTB8ZmVbYz4+MF0pPDwyND4+MjQ9PTMzPzB8czIobCsyfDAsMTQxNzQ3LDIpPyhmPWMsbT01KTooYz1mPTB8RGgobCs0fDApLGY9MHxmZVtm''@;'; put 'put ''Pj4wXSxtPTgpOm09Njt0OmZvcig7OylpZig1IT0oMHxtKSlpZig2IT0oMHxtKSl7aWYoOD09KDB8bSkpe2lmKGY8PDI0Pj4yND09NjIpe209MTA7YnJlYWt9bT05O2JyZWFrfX1lbHNle3N3aXRjaChmPDwyND4+MjQpe2Nhc2UgNjI6Y2FzZSAwOm09ODtjb250aW51ZSB0fWY9YysxfDAsbT01''@;'; put 'put ''fWVsc2UgYz1mLGY9MHxmZVtmPj4wXSxtPTY7aWYoOT09KDB8bSkpeyRyKDAsMTQxNzUwLHApLGZlWzE4OTY2MF09MTticmVha31pZigxMD09KDB8bSkpe2M9YysxfDA7YnJlYWt9fWVsc2UgZm9yKGM9bCxsPWY7Oyl7c3dpdGNoKGw8PDI0Pj4yNCl7Y2FzZSA2MDpjYXNlIDA6YnJlYWsgZTtj''@;'; put 'put ''YXNlIDM4OjM1PT0oMHxmZVsoZj1jKzF8MCk+PjBdKT9tPTE1OmY9MHxPbGUoZiwxODk2NDQpO2JyZWFrO2RlZmF1bHQ6bT0xNX0xNT09KDB8bSkmJihtPTAsKGY9MHxhWzQ3NDEyXSk+Pj4wPj0oMHxhWzQ3NDEzXSk+Pj4wJiYoUTAoMTg5NjQ0LDEpLGY9MHxhWzQ3NDEyXSksYVs0NzQxMl09''@;'; put 'put ''ZisxLGZlW2Y+PjBdPWwsZj1jKzF8MCksYz1mLGw9MHxmZVtmPj4wXX19d2hpbGUoMCk7cmV0dXJuIGxlPUEsMHxjfWZ1bmN0aW9uIERoKGwpe3ZhciBiLGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7az1sZSxsZT1sZSsxNnwwLGI9ayxtPTEsYz1sfD0wO2U6Zm9yKDs7KXtwPTA9PSgwfG0p''@;'; put 'put ''LGY9Yzt0OmZvcig7Oyl7aWYocClicmVhayBlO3N3aXRjaChBPWYrMXwwLDB8ZmVbZj4+MF0pe2Nhc2UgMDpjPUE7YnJlYWsgZTtjYXNlIDYwOnc9NTticmVhayB0O2Nhc2UgNjI6Yz0tMTticmVhayB0O2RlZmF1bHQ6Zj1BfX01PT0oMHx3KSYmKHc9MCxjPTEpLG09bStjfDAsYz1BfWY9Yyst''@;'; put 'put ''MXwwO2Rve2lmKDB8ZmVbZj4+MF0pe2lmKChjPWMrLTN8MCk+Pj4wPj1sPj4+MCYmMD09KDB8czIoYywxNDE3NDcsMikpKWJyZWFrOyRyKDAsMTQxNzkxLGIpLGZlWzE4OTY2MF09MX19d2hpbGUoMCk7cmV0dXJuIGxlPWssMHxmfWZ1bmN0aW9uIHJfKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAs''@;'; put 'put ''cD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO2lmKGY9MHxGMCgyOCkpe2ZvcihwPTAsbT0wOyEoKDB8cCk+PSgwfGMpKTspYmU9KDB8YVs0KygwfGFbbCsocDw8Mik+PjJdKT4+Ml0pK218MCxwPXArMXwwLG09YmU7Zm9yKGFb''@;'; put 'put ''KHE9Zis4fDApPj4yXT0wfHE5KG08PDQpLGFbKHBlPWYrMTJ8MCk+PjJdPTB8cTkoNCsoYzw8Mil8MCksYVsoZ2U9ZisxNnwwKT4+Ml09MHxxOShwPW08PDIpLHA9MHxxOShwKSxhWyhiZT1mKzIwfDApPj4yXT1wLGFbZis0Pj4yXT1tLGFbZj4+Ml09YyxtPTAsdz0wO2FbKDB8YVtwZT4+Ml0p''@;'; put 'put ''Kyh3PDwyKT4+Ml09bSwhKCgwfHcpPj0oMHxjKSk7KXtmb3IoRD1tKy0xfDAsQT0wLGI9bSxSPU09MHxhWzQrKEc9MHxhWyhrPWwrKHc8PDIpfDApPj4yXSk+PjJdOyEoKDB8QSk+PSgwfFIpKTspYVsoUj0oMHxhW3E+PjJdKSsoYjw8NCl8MCk+PjJdPWFbKHA9KDB8YVtHPj4yXSkrKEE8PDQp''@;'; put 'put ''fDApPj4yXSxhW1IrND4+Ml09YVtwKzQ+PjJdLGFbUis4Pj4yXT1hW3ArOD4+Ml0sYVtSKzEyPj4yXT1hW3ArMTI+PjJdLGFbKDB8YVtnZT4+Ml0pKyhiPDwyKT4+Ml09Uj1iKzF8MCxhWyhwPTB8YVtiZT4+Ml0pKyhiPDwyKT4+Ml09YistMSxBPUErMXwwLGI9UixSPTB8YVs0KyhPZT0wfGFb''@;'; put 'put ''az4+Ml0pPj4yXSxHPU9lO2FbKDB8YVtnZT4+Ml0pKygoT2U9RCtNfDApPDwyKT4+Ml09bSxhW3ArKG08PDIpPj4yXT1PZSxtPWIsdz13KzF8MH0hZnVuY3Rpb24gUzYobCl7YVsyNCsobHw9MCk+PjJdPTB8ZnVuY3Rpb24gUmQobCl7dmFyIHAsbSxjPTAsZj0wO2ZvcihtPTB8RjAoKHA9Miso''@;'; put 'put ''bHw9MCl8MCk8PDIpLGM9MHxzaCgwfEFyKGwsbCksOCksZj0wOyEoKDB8Zik+PSgwfGwpKTspYVttKyhmPDwyKT4+Ml09YyxjPWMrKGw8PDMpfDAsZj1mKzF8MDtmb3IoOyEoKDB8bCk+PSgwfHApKTspYVttKyhsPDwyKT4+Ml09MCxsPWwrMXwwO3JldHVybiAwfG19KDB8YVtsKzQ+PjJdKSxm''@;'; put 'put ''dW5jdGlvbiBoNShsKXt2YXIgZixBLHcsYixNLEQsUixHLGM9MCxwPTAsbT0wLGs9MCxxPTAscGU9MDtmb3IoRz1sZSxsZT1sZSszMnwwLHc9RysxNnwwLEE9RyxiPTB8YVs0KyhsfD0wKT4+Ml0sTT0wfGFbbCs4Pj4yXSxEPTB8YVtsKzE2Pj4yXSxSPTB8YVtsKzIwPj4yXSxmPTB8YVtsKzI0''@;'; put 'put ''Pj4yXSxjPTA7ISgoMHxjKT49KDB8YikpOyl7Zm9yKG09TSsoKHE9MHxhW1IrKGM8PDIpPj4yXSk8PDQpfDAsYVtBPj4yXT1hWyhwPU0rKGM8PDQpfDApPj4yXSxhW0ErND4+Ml09YVtwKzQ+PjJdLGFbQSs4Pj4yXT1hW3ArOD4+Ml0sYVtBKzEyPj4yXT1hW3ArMTI+PjJdLGFbdz4+Ml09YVtt''@;'; put 'put ''Pj4yXSxhW3crND4+Ml09YVttKzQ+PjJdLGFbdys4Pj4yXT1hW20rOD4+Ml0sYVt3KzEyPj4yXT1hW20rMTI+PjJdLHBlPSt6NChBLHcpLF9bKG09MHxhW2YrKGM8PDIpPj4yXSkrKHE8PDMpPj4zXT1wZSxfWygwfGFbZisocTw8Mik+PjJdKSsoYzw8Myk+PjNdPXBlLGw9KDB8cSk9PSgwfChs''@;'; put 'put ''PWMrLTF8MCkpP2MrLTJ8MDpsOyEoKDB8bCk8PS0xKTspMHxZMShjLGwsTSxELFIpJiYwfFkxKGwsYyxNLEQsUikmJihrPU0rKGw8PDQpfDAsYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sYVt3Pj4y''@;'; put 'put ''XT1hW2s+PjJdLGFbdys0Pj4yXT1hW2srND4+Ml0sYVt3Kzg+PjJdPWFbays4Pj4yXSxhW3crMTI+PjJdPWFbaysxMj4+Ml0sMHxkNShBLHcsYixiLGIsTSxEKSkmJihhW0E+PjJdPWFbcD4+Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxhW0ErOD4+Ml09YVtwKzg+PjJdLGFbQSsxMj4+Ml09YVtw''@;'; put 'put ''KzEyPj4yXSxhW3c+PjJdPWFbaz4+Ml0sYVt3KzQ+PjJdPWFbays0Pj4yXSxhW3crOD4+Ml09YVtrKzg+PjJdLGFbdysxMj4+Ml09YVtrKzEyPj4yXSxwZT0rejQoQSx3KSxfW20rKGw8PDMpPj4zXT1wZSxfWygwfGFbZisobDw8Mik+PjJdKSsoYzw8Myk+PjNdPXBlKSxsPWwrLTF8MDtjPWMr''@;'; put 'put ''MXwwfWxlPUd9KGwpfShmKX1lbHNlIGY9MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIHE5KGwpe3JldHVybiAwfCgobHw9MCk/MHxGMChsKTowKX1mdW5jdGlvbiBfNihsLGMpe2N8PTA7dmFyIGYscCxtLEEsdyxiLGssTT0wLEQ9MDtmb3Ioaz1sZSxsZT1sZSs0OHwwLHc9ayszMnwwLEE9aysxNnww''@;'; put 'put ''LG09ayxiPTB8YVsobHw9MCk+PjJdLHA9KGY9MHxhW2wrND4+Ml0pLTF8MCxsPTA7Oyl7aWYoKDB8bCk+PSgwfGYpKXtsPTE7YnJlYWt9aWYoTT1iKyhsPDw0KXwwLGFbbT4+Ml09YVsoRD1iKygoKHArbHwwKSUoMHxmKXwwKTw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW0QrND4+Ml0sYVttKzg+''@;'; put 'put ''PjJdPWFbRCs4Pj4yXSxhW20rMTI+PjJdPWFbRCsxMj4+Ml0sYVtBPj4yXT1hW00+PjJdLGFbQSs0Pj4yXT1hW00rND4+Ml0sYVtBKzg+PjJdPWFbTSs4Pj4yXSxhW0ErMTI+PjJdPWFbTSsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4''@;'; put 'put ''Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sMT09KDB8VWMobSxBLHcpKSl7bD0wO2JyZWFrfWw9bCsxfDB9cmV0dXJuIGxlPWssMHxsfWZ1bmN0aW9uIGVBKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLE0sRCxSLEcscSxiZSxBPTAsdz0wLGs9MCxwZT0wLGdl''@;'; put 'put ''PTA7Zm9yKGJlPWxlLGxlPWxlKzY0fDAsRD1iZSs0OHwwLE09YmUrMzJ8MCxwZT00LGs9MHxGMCg0MCksYVtrPj4yXT0wLFI9YmUrMTZ8MCxHPWJlLHE9MHxhW2Y+PjJdLGI9MHxhW2YrND4+Ml0scGU9MHxQZigxODk2ODAsMSwwfGssMHxwZSksaz1EbixmPU1uPTAsTW49MCwwIT0oMHxmKSYw''@;'; put 'put ''IT0oMHx4bik/KChBPTB8Z2koMHxhW2Y+PjJdLDB8cGUsMHxrKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSxmPTE9PSgwfEEpP0RuOjA7Oyl7aWYoMHxmKXtmPS0xO2JyZWFrfWlmKE1uPTAsYVtEPj4yXT1hW3A+PjJdLGFbRCs0Pj4yXT1hW3ArND4+Ml0sYVtEKzg+PjJdPWFbcCs4Pj4y''@;'; put 'put ''XSxhW0QrMTI+PjJdPWFbcCsxMj4+Ml0sWjEoMjgsMHxSLDB8RCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxwZSwwfGspKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKWlmKGFbcD4+Ml09YVtSPj4yXSxhW3ArND4+Ml09YVtS''@;'; put 'put ''KzQ+PjJdLGFbcCs4Pj4yXT1hW1IrOD4+Ml0sYVtwKzEyPj4yXT1hW1IrMTI+PjJdLE1uPTAsYVtEPj4yXT1hWyh3PXArMTZ8MCk+PjJdLGFbRCs0Pj4yXT1hW3crND4+Ml0sYVtEKzg+PjJdPWFbdys4Pj4yXSxhW0QrMTI+PjJdPWFbdysxMj4+Ml0sWjEoMjgsMHxHLDB8RCksZj1NbixNbj0w''@;'; put 'put ''LDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxwZSwwfGspKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKWlmKGFbdz4+Ml09YVtHPj4yXSxhW3crND4+Ml09YVtHKzQ+PjJdLGFbdys4Pj4yXT1hW0crOD4+Ml0sYVt3KzEyPj4yXT1hW0crMTI+PjJd''@;'; put 'put ''LGFbNDc0NTldPTAsTW49MCxzcygxMTUsNCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxwZSwwfGspKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKXtpZihBPTB8YVs0NzQ2MF0sYVs0NzQ1OV09MSsoZj0wfGFbNDc0NTldKSxh''@;'; put 'put ''WyhmPUErKGY8PDQpfDApPj4yXT1hW3E+PjJdLGFbZis0Pj4yXT1hW3ErND4+Ml0sYVtmKzg+PjJdPWFbcSs4Pj4yXSxhW2YrMTI+PjJdPWFbcSsxMj4+Ml0sTW49MCxhW00+PjJdPWFbcD4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtw''@;'; put 'put ''KzEyPj4yXSxhW0Q+PjJdPWFbdz4+Ml0sYVtEKzQ+PjJdPWFbdys0Pj4yXSxhW0QrOD4+Ml09YVt3Kzg+PjJdLGFbRCsxMj4+Ml09YVt3KzEyPj4yXSxmPTB8YzEoMSwwfGwsMHxjLDB8cSwwfGIsMHxNLDB8RCksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHc9MHxnaSgwfGFbQT4+''@;'; put 'put ''Ml0sMHxwZSwwfGspKXx8emUoMHxBLDB8eG4pLERuPXhuKTp3PS0xLDEhPSgwfHcpKXtnZT04O2JyZWFrfWY9RG59ZWxzZSBmPURuO2Vsc2UgZj1EbjtlbHNlIGY9RG59cmV0dXJuIDg9PSgwfGdlKSYmKC0xPT0oMHxmKT9mPS0xOihhW20rND4+Ml09YVs0NzQ1OV0sYVttPj4yXT1hWzQ3NDYw''@;'; put 'put ''XSxmPTApKSxGdCgwfHBlKSxsZT1iZSwwfGZ9ZnVuY3Rpb24gYTUobCxjKXt2YXIgZixwLG0sQSx3O2x8PTAsQT0rRDAoKyh3PShtPStfWyhwPTgrKGN8PTApfDApPj4zXSkqbSsoZj0rX1tjPj4zXSkqZikpLHc+MWUtNiYmKF9bYz4+M109Zi9BLF9bcD4+M109bS9BKSxhW2w+PjJdPWFbYz4+''@;'; put 'put ''Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXX1mdW5jdGlvbiBleChsKXt2YXIgbSxjPTAsZj0wLHA9MDttPWxlLGxlPWxlKzMyfDAscD1tKzE2fDAsZj1tLCgwfGFbNDc0NjNdKTwoMHwobHw9MCkpJiYoKGM9MHxhWzQ3NDYw''@;'; put 'put ''XSk/KGY9MHxVYShjLGw8PDQpLGFbNDc0NjBdPWYsZnx8KGY9MHxhWzE1NzEyXSxhW3A+PjJdPTE0MTgzMSxhW3ArND4+Ml09NTM3LGFbcCs4Pj4yXT0xNDE5ODQsVDAoZiwxNDE4MzkscCksemUoMTg5NjgwLDEpKSk6KHA9MHxGMChsPDw0KSxhWzQ3NDYwXT1wLHB8fChwPTB8YVsxNTcxMl0s''@;'; put 'put ''YVtmPj4yXT0xNDE4MzEsYVtmKzQ+PjJdPTUzMSxhW2YrOD4+Ml09MTQxOTY2LFQwKHAsMTQxODM5LGYpLHplKDE4OTY4MCwxKSkpLGFbNDc0NjNdPWwpLGxlPW19ZnVuY3Rpb24gb18obCxjKXt2YXIgZixwO3JldHVybisgK0QwKCsoKHA9K19bOCsoY3w9MCk+PjNdLStfWzgrKGx8PTApPj4z''@;'; put 'put ''XSkqcCsoZj0rX1tjPj4zXS0rX1tsPj4zXSkqZikpfWZ1bmN0aW9uIEVtKGwpe3ZhciBjO3JldHVybisoYz0xLShsPStsKSkqYyooMypsKX1mdW5jdGlvbiBfZihsLGMsZil7dmFyIHA7bHw9MCxfWyhjfD0wKT4+M109K19bYz4+M10qKGY9K2YpLF9bKHA9Yys4fDApPj4zXT0rX1twPj4zXSpm''@;'; put 'put ''LGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdfWZ1bmN0aW9uIExkKGwpe3JldHVybisobD0rbCkqbCozKigxLWwpfWZ1bmN0aW9uIHR4KGwsYyxmKXt2YXIgcDtsfD0wLF9bKGN8PTApPj4zXT0rX1tj''@;'; put 'put ''Pj4zXSsgK19bKGZ8PTApPj4zXSxfWyhwPWMrOHwwKT4+M109K19bcD4+M10rICtfW2YrOD4+M10sYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19ZnVuY3Rpb24gdEEobCxjLGYpe3ZhciBwO2x8PTAs''@;'; put 'put ''X1soY3w9MCk+PjNdPStfW2M+PjNdLStfWyhmfD0wKT4+M10sX1socD1jKzh8MCk+PjNdPStfW3A+PjNdLStfW2YrOD4+M10sYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19ZnVuY3Rpb24gVkIobCl7''@;'; put 'put ''cmV0dXJuKyhsPTEtKGw9K2wpKSpsKmx9ZnVuY3Rpb24gbngobCl7cmV0dXJuKyhsPStsKSpsKmx9ZnVuY3Rpb24gbF8obCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGY9MCxwPTE7ISgoMHxwKT49KDB8YykpOylmPStEMCgrKChBPStfW2wrKHA8PDQpKzg+PjNd''@;'; put 'put ''LStfW2wrKCh3PXArLTF8MCk8PDQpKzg+PjNdKSpBKyhtPStfW2wrKHA8PDQpPj4zXS0rX1tsKyh3PDw0KT4+M10pKm0pKStmLHA9cCsxfDA7cmV0dXJuK2Z9ZnVuY3Rpb24gVzEobCxjLGYpe2x8PTAsY3w9MDt2YXIgQSx3LGIsayxNLGJlLE9lLFJlLFZlLHFlLHJ0LFdlLGF0LHA9MCxtPTAs''@;'; put 'put ''RD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxMZT0wLEhlPTAsU3Q9MCxrdD0wO2F0PWxlLGxlPWxlKzY0fDAsYmU9YXQrMzJ8MCxSZT0oT2U9YXQpKzE2fDAsVmU9MTYrKGZ8PTApfDAscWU9ZiszMnwwLHJ0PWYrNDh8MCxXZT1mKzh8MCxBPWYrMjR8MCx3PWYrNDB8MCxiPWYrNTZ8MCxrPU9l''@;'; put 'put ''Kzh8MCxNPU9lKzI0fDAsbT0wO2U6Zm9yKDs7KXtpZigoMHxtKT49KDB8Yykpe3A9MTticmVha31hW09lPj4yXT1hWyhEPWwrKG08PDUpfDApPj4yXSxhW09lKzQ+PjJdPWFbRCs0Pj4yXSxhW09lKzg+PjJdPWFbRCs4Pj4yXSxhW09lKzEyPj4yXT1hW0QrMTI+PjJdLGFbUmU+PjJdPWFbKEQ9''@;'; put 'put ''bCsobTw8NSkrMTZ8MCk+PjJdLGFbUmUrND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sRD0wfGhHKGYsT2UsYmUpO3Q6ZG97aWYoNCE9KDB8RCkpZm9yKFI9K19bT2U+PjNdLEc9K19baz4+M10scT0rX1tSZT4+M10scGU9K19bTT4+''@;'; put 'put ''M10scD0wOzspe2lmKCgwfHApPj0oMHxEKSlicmVhayB0O2lmKCEoKGdlPStfW2JlKyhwPDwzKT4+M10pPDFlLTZ8Z2U+Ljk5OTk5OXx8KEhlPWdlKmdlKmdlLGt0PTMqZ2UsU3Q9MS1nZSxnZT1rdCpnZSpTdCxMZT1TdCpTdCxrdCo9TGUsU3QqPUxlLExlPStfW1ZlPj4zXSprdCsgK19bZj4+''@;'; put 'put ''M10qU3QrICtfW3FlPj4zXSpnZSsgK19bcnQ+PjNdKkhlLEhlPStfW0E+PjNdKmt0KyArX1tXZT4+M10qU3QrICtfW3c+PjNdKmdlKyArX1tiPj4zXSpIZSxnZT1MZS1SLFN0PUhlLUcsU3QqU3QrZ2UqZ2U8LjAwMSl8fChrdD1MZS1xLFN0PUhlLXBlLFN0KlN0K2t0Kmt0PC4wMDEpKSl7cD0w''@;'; put 'put ''O2JyZWFrIGV9cD1wKzF8MH19d2hpbGUoMCk7bT1tKzF8MH1yZXR1cm4gbGU9YXQsMHxwfWZ1bmN0aW9uIGhHKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGdlLGJlLE9lLExlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MDtMZT1sZSxsZT1sZSs5NnwwLGdl''@;'; put 'put ''PUxlKzQ4fDAsYmU9TGUrMjR8MCxrPUxlLEE9K19bMTYrKGN8PTApPj4zXS0oRz0rX1tjPj4zXSksYj0rX1tjKzI0Pj4zXS0ocT0rX1tjKzg+PjNdKSxhWyhPZT1MZSs4MHwwKT4+Ml09MDtlOmRve2lmKDAhPUEpaWYoYi89QSxNPWwrMTZ8MCxEPWwrMzJ8MCxSPWwrNDh8MCx4bSgrX1tsKzg+''@;'; put 'put ''PjNdLStfW2w+PjNdKmIsK19bbCsyND4+M10tK19bTT4+M10qYiwrX1tsKzQwPj4zXS0rX1tEPj4zXSpiLCtfW2wrNTY+PjNdLStfW1I+PjNdKmIsZ2UpLF9bZ2U+PjNdPWIqRy1xKyArX1tnZT4+M10scD0wfExoKGdlLGJlKSw0PT0oMHxwKSljPTQ7ZWxzZXtmb3IobT1nZSs4fDAsdz1nZSsx''@;'; put 'put ''NnwwLGs9Z2UrMjR8MCxBPTEvQSxjPTA7ISgoMHxjKT49KDB8cCkpOykoYj0rX1tiZSsoYzw8Myk+PjNdKT49MCZiPD0xJiYoeG0oK19bbD4+M10sK19bTT4+M10sK19bRD4+M10sK19bUj4+M10sZ2UpLChxPSgrX1tnZT4+M10tRysoKCtfW2s+PjNdKmIrICtfW3c+PjNdKSpiKyArX1ttPj4z''@;'; put 'put ''XSkqYikqQSk+PTAmcTw9MSkmJm5BKGIsZixPZSksYz1jKzF8MDtjPTB8YVtPZT4+Ml19ZWxzZXtpZih4bSgrX1tsPj4zXSwrX1tsKzE2Pj4zXSwrX1tsKzMyPj4zXSwrX1tsKzQ4Pj4zXSxnZSksX1tnZT4+M109K19bZ2U+PjNdLUcscGU9MHxMaChnZSxiZSksMCE9Yil7aWYoND09KDB8cGUp''@;'; put 'put ''KXtjPTQ7YnJlYWt9Zm9yKE09bCs4fDAsRD1sKzI0fDAsUj1sKzQwfDAscD1sKzU2fDAsbT1nZSs4fDAsdz1nZSsxNnwwLGs9Z2UrMjR8MCxBPTEvYixjPTA7ISgoMHxjKT49KDB8cGUpKTspKGI9K19bYmUrKGM8PDMpPj4zXSk+PTAmYjw9MSYmKHhtKCtfW00+PjNdLCtfW0Q+PjNdLCtfW1I+''@;'; put 'put ''PjNdLCtfW3A+PjNdLGdlKSwoRz0oK19bZ2U+PjNdLXErKCgrX1trPj4zXSpiKyArX1t3Pj4zXSkqYisgK19bbT4+M10pKmIpKkEpPj0wJkc8PTEpJiZuQShiLGYsT2UpLGM9YysxfDA7Yz0wfGFbT2U+PjJdO2JyZWFrfXhtKCtfW2wrOD4+M10sK19bbCsyND4+M10sK19bbCs0MD4+M10sK19b''@;'; put 'put ''bCs1Nj4+M10sZ2UpLF9bZ2U+PjNdPStfW2dlPj4zXS1xLGM9ND09KDB8KHc9MHxMaChnZSxrKSkpO3Q6ZG97aWYoND09KDB8cGUpKXtpZihjKXtjPTQ7YnJlYWsgZX1mb3IoYz0wOzspe2lmKCgwfGMpPj0oMHx3KSlicmVhayB0O25BKCtfW2srKGM8PDMpPj4zXSxmLE9lKSxjPWMrMXwwfX1l''@;'; put 'put ''bHNle2lmKGMpZm9yKGM9MDs7KXtpZigoMHxjKT49KDB8cGUpKWJyZWFrIHQ7bkEoK19bYmUrKGM8PDMpPj4zXSxmLE9lKSxjPWMrMXwwfWVsc2UgcD0wO2Zvcig7Oyl7aWYoKDB8cCk+PSgwfHBlKSlicmVhayB0O2ZvcihtPWJlKyhwPDwzKXwwLGM9MDshKCgwfGMpPj0oMHx3KSk7KShBPStf''@;'; put 'put ''W20+PjNdKT09K19baysoYzw8Myk+PjNdJiZuQShBLGYsT2UpLGM9YysxfDA7cD1wKzF8MH19fXdoaWxlKDApO2M9MHxhW09lPj4yXX19d2hpbGUoMCk7cmV0dXJuIGxlPUxlLDB8Y31mdW5jdGlvbiB4bShsLGMsZixwLG0pe19bMjQrKG18PTApPj4zXT0ocD0rcCktKGw9K2wpKzMqKChjPStj''@;'; put 'put ''KS0oZj0rZikpLF9bbSsxNj4+M109MyooZitsKS02KmMsX1ttKzg+PjNdPTMqKGMtbCksX1ttPj4zXT1sfWZ1bmN0aW9uIG5BKGwsYyxmKXtmfD0wO3ZhciBwPTA7KGw9K2wpPj0wJmw8PTEmJihfWyhjfD0wKSsoKHA9MHxhW2Y+PjJdKTw8Myk+PjNdPWwsYVtmPj4yXT1wKzEpfWZ1bmN0aW9u''@;'; put 'put ''IHM1KGwsYyl7cmV0dXJuKygrX1s4KyhjfD0wKT4+M10qK19bOCsobHw9MCk+PjNdKyArX1tjPj4zXSorX1tsPj4zXSl9ZnVuY3Rpb24gcngobCl7dmFyIGM7cmV0dXJuKyhjPTEtKGw9K2wpKSpjKihjKzMqbCl9ZnVuY3Rpb24gakIobCl7cmV0dXJuKyhsPStsKSpsKigzKigxLWwpK2wpfWZ1''@;'; put 'put ''bmN0aW9uIHU1KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgYmUsT2UsTGUsUmUsVmUscWUsU3QscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsSGU9MCxydD0wLFdlPTAsYXQ9MCxrdD0wO1N0PWxlLGxlPWxlKzExMnwwLHJ0PVN0KzgwfDAs''@;'; put 'put ''cWU9U3QrNjR8MCxWZT1TdCs0OHwwLGF0PTQsV2U9MHxGMCg0MCksYVtXZT4+Ml09MCxiZT1TdCszMnwwLE9lPVN0KzE2fDAsTGU9U3QsUmU9U3QrOTZ8MCxhdD0wfFBmKDE4OTg1NiwxLDB8V2UsMHxhdCksV2U9RG4scD1Nbj0wLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8''@;'; put 'put ''YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLHA9MT09KDB8bSk/RG46MDtlOmZvcig7Oyl7aWYoMHxwKXtwPS0yO2JyZWFrfWlmKE1uPTAsc3MoMTE2LDB8YVsoQT1sKzR8MCk+PjJdKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8''@;'; put 'put ''YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKWlmKGFbNDc1MDNdPTAsYVs0NzUwNF09MCxNbj0wLHNzKDExNyxhW0E+PjJdPDwxfDApLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8YXQsMHxXZSkp''@;'; put 'put ''fHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSkpe2ZvcihhWzQ3NTA3XT1NPSgwfGFbNDc1MDZdKS8yfDAsYVs0NzUwOF09TSstMSxNPTB8YVtBPj4yXSxBPTB8YVtsPj4yXSxwPTAsbT0tMSx3PXlzOyEoKDB8cCk+PSgwfE0pKTspcGU9KGdlPXc+KGt0PStfW0ErKHA8PDQpPj4z''@;'; put 'put ''XSkpP3A6bSxwPXArMXwwLG09cGUsdz1nZT9rdDp3O2FbT2U+PjJdPWFbKGdlPUErKG08PDQpfDApPj4yXSxhW09lKzQ+PjJdPWFbZ2UrND4+Ml0sYVtPZSs4Pj4yXT1hW2dlKzg+PjJdLGFbT2UrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbYmU+PjJdPWFbKGdlPUErKCgwPT0oMHxtKT9NOm0pKy0x''@;'; put 'put ''PDw0KXwwKT4+Ml0sYVtiZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbYmUrOD4+Ml09YVtnZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW2dlKzEyPj4yXSxhW0xlPj4yXT1hWyhnZT1BKygoKDB8bSk9PShNKy0xfDApPzA6bSsxfDApPDw0KXwwKT4+Ml0sYVtMZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbTGUrOD4+''@;'; put 'put ''Ml09YVtnZSs4Pj4yXSxhW0xlKzEyPj4yXT1hW2dlKzEyPj4yXSxnZT0rX1tiZT4+M109PShrdD0rX1tPZT4+M10pJiZrdD09K19bTGU+PjNdJiYrX1tMZSs4Pj4zXT4rX1tPZSs4Pj4zXT8xNToxMjt0OmRve2lmKDEyPT0oMHxnZSkpe2lmKGdlPTAsTW49MCxwPTB8SnMoMzYsMHxiZSwwfE9l''@;'; put 'put ''LDB8TGUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8YXQsMHxXZSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZigxPT0oMHxwKSlmb3IoQT0wfGFbNDc1MTBdLHA9MHxhWzQ3NTExXSxtPTA7''@;'; put 'put ''Oyl7aWYoKDB8bSk+PSgwfE0pKWJyZWFrIHQ7Yj0wfGFbbD4+Ml0sKDB8bSk+MCYmK19bYisobTw8NCk+PjNdPT0rX1tiKygoSGU9bSstMXwwKTw8NCk+PjNdJiYrX1tiKyhtPDw0KSs4Pj4zXT09K19bYisoSGU8PDQpKzg+PjNdfHwoYVtBKygocGU9MHxhWzQ3NTAzXSk8PDMpPj4yXT1iKyht''@;'; put 'put ''PDw0KSxhW0ErKHBlPDwzKSs0Pj4yXT1BKygoKDB8cGUpJSgwfE0pfDApPDwzKSxhW3ArKHBlPDwyKT4+Ml09QSsocGU8PDMpLGFbNDc1MDNdPXBlKzEpLG09bSsxfDB9ZWxzZSBnZT0xNX19d2hpbGUoMCk7dDpkb3tpZigxNT09KDB8Z2UpKWZvcihnZT0wLGI9MHxhWzQ3NTEwXSxwPTB8YVs0''@;'; put 'put ''NzUxMV0sQT1NOzspe2lmKG09QSstMXwwLCgwfEEpPD0wKWJyZWFrIHQ7az0wfGFbbD4+Ml0sKDB8QSk8KDB8TSkmJitfW2srKG08PDQpPj4zXT09K19baysoQTw8NCk+PjNdJiYrX1trKyhtPDw0KSs4Pj4zXT09K19baysoQTw8NCkrOD4+M118fChhW2IrKChBPTB8YVs0NzUwM10pPDwzKT4+''@;'; put 'put ''Ml09aysobTw8NCksYVtiKyhBPDwzKSs0Pj4yXT1iKygoKDB8QSklKDB8TSl8MCk8PDMpLGFbcCsoQTw8Mik+PjJdPWIrKEE8PDMpLGFbNDc1MDNdPUErMSksQT1tfX13aGlsZSgwKTtpZihNbj0wLFoxKDI5LDB8cCwwfGFbNDc1MDNdKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygo''@;'; put 'put ''bT0wfGdpKDB8YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKXtiPTAscD0wfGFbNDc1MDRdO3Q6Zm9yKDs7KXtpZigoMHxiKT49KDB8cCkpe3E9MDticmVha31mb3IoQT1rPWIrMXwwOzspe2lmKCgwfEEpPj0oMHxwKSl7Yj1rO2NvbnRpbnVl''@;'; put 'put ''IHR9aWYoTW49MCxaMSgzMCwwfGIsMHxBKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtwPURuO2NvbnRpbnVlIGV9QT1BKzF8MCxwPTB8YVs0NzUwNF19fWZvcig7''@;'; put 'put ''ISgoMHxxKT49KDB8cCkpOyl7aWYoTW49MCxtPTB8RmwoMTA1LDB8cSwwfGMpLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChiPTB8Z2koMHxhW0E+PjJdLDB8YXQsMHxXZSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmI9LTEsMT09KDB8Yikpe3A9RG47Y29udGludWUgZX1pZigwfG0p''@;'; put 'put ''YnJlYWs7cT1xKzF8MH1pZigoMHxxKT09KDB8cCkpe2lmKHA9MHxhWzE1NzEyXSxNbj0wLGFbVmU+PjJdPTE0MTg1OCxhW1ZlKzQ+PjJdPTE5MixhW1ZlKzg+PjJdPTE0MTg2OSxKcygzMiwwfHAsMTQxODM5LDB8VmUpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxh''@;'; put 'put ''W3A+PjJdLDB8YXQsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe3A9RG47Y29udGludWV9Z2U9NDE7YnJlYWt9Zm9yKHBlPWMrMTZ8MCxrPTA7ISgoMHxrKT49KDB8cCkpOyl7aWYoTW49MCxtPTB8RmwoMTA1LDB8aywwfHBlKSxBPU1uLE1uPTAsMCE9KDB8QSkm''@;'; put 'put ''MCE9KDB8eG4pPygoYj0wfGdpKDB8YVtBPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuO2NvbnRpbnVlIGV9aWYoMHxtKWJyZWFrO2s9aysxfDB9aWYoKDB8ayk9PSgwfHApKXtpZihwPTB8YVsxNTcxMl0sTW49MCxhW3FlPj4yXT0xNDE4''@;'; put 'put ''NTgsYVtxZSs0Pj4yXT0yMDAsYVtxZSs4Pj4yXT0xNDE5MDIsSnMoMzIsMHxwLDE0MTgzOSwwfHFlKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtwPURuO2NvbnRp''@;'; put 'put ''bnVlfWdlPTQ4O2JyZWFrfWlmKE1uPTAscD0wfEZsKDEwNiwwfHEsMHxrKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKXtpZighcCl7aWYocD0wfGFbMTU3MTJdLE1u''@;'; put 'put ''PTAsYVtydD4+Ml09MTQxODU4LGFbcnQrND4+Ml09MjA3LGFbcnQrOD4+Ml09MTQxOTQwLEpzKDMyLDB8cCwxNDE4MzksMHxydCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxhdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0o''@;'; put 'put ''MHxtKSl7cD1Ebjtjb250aW51ZX1pZihNbj0wLHNzKDExOCwyKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtwPURuO2NvbnRpbnVlfWdlPTUzO2JyZWFrfWlmKCgw''@;'; put 'put ''fHEpPT0oMHxrKSl7aWYoTW49MCxzcygxMTgsMikscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxhdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7cD1Ebjtjb250aW51ZX1nZT01NjticmVha31pZihhW1JlPj4yXT1j''@;'; put 'put ''LGFbUmUrND4+Ml09MCxhWyhtPVJlKzh8MCk+PjJdPXBlLGFbUmUrMTI+PjJdPTAsTW49MCxaMSgzMSwxLDB8UmUpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8YXQsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe2Fb''@;'; put 'put ''NDc1MDldPWFbNDc1MDddLFI9cTt0OmZvcig7Oyl7aWYoLTE9PSgwfFIpKXtBPW0scD0wO2JyZWFrfWZvcihhWyhHPTB8YVs0NzUxM10pKyg1MipSfDApPj4yXT0yLHA9MDs7KXtpZigoMHxwKT49Myl7Z2U9NjU7YnJlYWt9aWYoMHwoZ2U9MHxhW0crKDUyKlJ8MCkrNCsocDw8NCkrMTI+PjJd''@;'; put 'put ''KSYmMT09KDB8YVtnZT4+Ml0pKXtnZT02ODticmVha31wPXArMXwwfWlmKDY1PT0oMHxnZSkpaWYoZ2U9MCwzPT0oMHxwKSl7aWYoTW49MCxwPTB8SnMoMzYsMHxwZSwwfGFbYVsocD0wfGFbNDc1MDVdKSsoYVs0NzUwN108PDIpPj4yXT4+Ml0sMHxhWyhrPTB8YVtwKyhhWzQ3NTA4XTw8Mik+''@;'; put 'put ''PjJdKT4+Ml0pLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChiPTB8Z2koMHxhW0E+PjJdLDB8YXQsMHxXZSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmI9LTEsMT09KDB8Yikpe3A9RG47Y29udGludWUgZX1EPShiPTE9PSgwfHApKT9tOmssYj1iP2s6bX1lbHNlIGdlPTY4O2lmKDY4''@;'; put 'put ''PT0oMHxnZSkpe2lmKGdlPTAsTW49MCxwPTB8SnMoMzYsMHxhWyhrPTB8YVtHKyg1MipSfDApKzQrKHA8PDQpPj4yXSk+PjJdLDB8YVthW0crKDUyKlJ8MCkrNCsoKChwKzF8MCklM3wwKTw8NCkrND4+Ml0+PjJdLDB8YVsoTT0wfGFbRysoNTIqUnwwKSs0KyhwPDw0KSs0Pj4yXSk+PjJdKSxB''@;'; put 'put ''PU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0wfGdpKDB8YVtBPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuO2NvbnRpbnVlIGV9RD0oYj0xPT0oMHxwKSk/azpNLGI9Yj9NOmt9ZG97aWYoKDB8Uik9PSgwfHEpKXtpZihNbj0w''@;'; put 'put ''LFoxKDMxLDIsMHxiKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoTW49MCxaMSgzMSwxLDB8RCkscD1NbixNbj0wLDAhPSgwfHAp''@;'; put 'put ''JjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxhdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfXA9MH1lbHNle2lmKCgwfGFbKE09MHxhWzQ3NTA1XSkrKGFbNDc1MDddPDwyKT4+Ml0pIT0oMHxEKSYmKDB8YVtNKyhhWzQ3''@;'; put 'put ''NTA4XTw8Mik+PjJdKSE9KDB8RCkpe2lmKE1uPTAsYj0wfGEwKDM0LDB8RCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxhdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfWlmKE1uPTAs''@;'; put 'put ''WjEoMzIsMiwwfGIpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8YXQsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZihNbj0wLFoxKDMxLDEsMHxEKSxwPU1uLE1uPTAsMCE9KDB8cCkm''@;'; put 'put ''MCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoKDB8Yik8PSgwfGFbNDc1MDldKSl7cD0wO2JyZWFrfWFbNDc1MDldPWIscD0wO2JyZWFrfWlmKE1uPTAsaz0wfGEwKDM0''@;'; put 'put ''LDB8YikscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbcD4+Ml0sMHxhdCwwfFdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1Ebjtjb250aW51ZSBlfWlmKE1uPTAsWjEoMzIsMSwwfGspLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4''@;'; put 'put ''bik/KChBPTB8Z2koMHxhW3A+PjJdLDB8YXQsMHxXZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe3A9RG47Y29udGludWUgZX1pZihNbj0wLFoxKDMxLDIsMHxiKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtwPj4yXSwwfGF0LDB8V2Up''@;'; put 'put ''KXx8emUoMHxwLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuO2NvbnRpbnVlIGV9aWYoKDB8ayk+PSgwfGFbNDc1MDldKSl7cD0wO2JyZWFrfWFbNDc1MDldPWsscD0wfX13aGlsZSgwKTtmb3IoOzspe2lmKCgwfHApPj0zKXtSPS0xO2NvbnRpbnVlIHR9aWYoMHwoQT0wfGFbRyso''@;'; put 'put ''NTIqUnwwKSs0KyhwPDw0KSsxMj4+Ml0pJiYxPT0oMHxhW0E+PjJdKSlicmVhaztwPXArMXwwfVI9KEEtKDB8YVs0NzUxM10pfDApLzUyfDB9Zm9yKDtBOylBPTB8YVtBKzQ+PjJdLHA9cCsxfDA7aWYoTW49MCxzcygxMTgsMHxwKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0w''@;'; put 'put ''fGdpKDB8YVtBPj4yXSwwfGF0LDB8V2UpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDEhPSgwfGIpKXtnZT05NDticmVha31wPURufWVsc2UgcD1Ebn1lbHNlIHA9RG59ZWxzZSBwPURufWVsc2UgcD1EbjtlbHNlIHA9RG59aWYoNDE9PSgwfGdlKSlwPS0xO2Vsc2UgaWYoNDg9PSgwfGdl''@;'; put 'put ''KSlwPS0xO2Vsc2UgaWYoNTM9PSgwfGdlKSlhW2YrND4+Ml09MixhWyhwPTB8YVs0NzUxMl0pPj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sYVsoV2U9cCsxNnwwKT4+Ml09YVtwZT4+Ml0sYVtXZSs0Pj4y''@;'; put 'put ''XT1hW3BlKzQ+PjJdLGFbV2UrOD4+Ml09YVtwZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW3BlKzEyPj4yXSxhW2Y+PjJdPXAscD0wO2Vsc2UgaWYoNTY9PSgwfGdlKSlhW2YrND4+Ml09MixhWyhwPTB8YVs0NzUxMl0pPj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFb''@;'; put 'put ''Yys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sYVsoV2U9cCsxNnwwKT4+Ml09YVtwZT4+Ml0sYVtXZSs0Pj4yXT1hW3BlKzQ+PjJdLGFbV2UrOD4+Ml09YVtwZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW3BlKzEyPj4yXSxhW2Y+PjJdPXAscD0wO2Vsc2UgaWYoOTQ9PSgwfGdlKSl7Zm9yKGFb''@;'; put 'put ''Zis0Pj4yXT1wLEE9MHxhWzQ3NTEyXTtwPXArLTF8MCxtOylhWyhXZT1BKyhwPDw0KXwwKT4+Ml09YVsocnQ9MHxhW20+PjJdKT4+Ml0sYVtXZSs0Pj4yXT1hW3J0KzQ+PjJdLGFbV2UrOD4+Ml09YVtydCs4Pj4yXSxhW1dlKzEyPj4yXT1hW3J0KzEyPj4yXSxtPTB8YVttKzQ+PjJdO2FbZj4+''@;'; put 'put ''Ml09QSxwPTB9cmV0dXJuIEZ0KDB8YXQpLGxlPVN0LDB8cH1mdW5jdGlvbiBKZihsLGMsZil7dmFyIG0scD0wO3JldHVybiAwfCgocD0oK19bKGZ8PTApPj4zXS0obT0rX1soY3w9MCk+PjNdKSkqKCtfWzgrKGx8PTApPj4zXS0ocD0rX1tjKzg+PjNdKSktKCtfW2w+PjNdLW0pKigrX1tmKzg+''@;'; put 'put ''PjNdLXApKT4wPzE6cDwwPzI6Myl9ZnVuY3Rpb24gaUEobCxjLGYscCl7Y3w9MDt2YXIgYixrLE0sbT0wLEE9MCx3PTA7TT0xPT0oMHxKZihtPTB8YVthWyhmfD0wKSsoKCgobHw9MCktMSsocHw9MCl8MCklKDB8cCl8MCk8PDIpPj4yXT4+Ml0sYj0wfGFbYVtmKyhsPDwyKT4+Ml0+PjJdLEE9''@;'; put 'put ''MHxhW2FbZisoKChsKzF8MCklKDB8cCl8MCk8PDIpPj4yXT4+Ml0pKSxrPTB8YVthW2YrKGM8PDIpPj4yXT4+Ml0sTT8xPT0oMHxKZihiLGssbSkpPyhtPTB8SmYoayxiLEEpLEE9MSx3PTUpOm09MDoobT0wfEpmKGIsayxBKSxBPTIsdz01KTtlOmRve2lmKDU9PSgwfHcpKWlmKCgwfG0pPT0o''@;'; put 'put ''MHxBKSlmb3IobT0wOzspe2lmKCgwfG0pPj0oMHxwKSl7bT0xO2JyZWFrIGV9aWYoQT1tLCEoKDB8KHc9KDB8KG09bSsxfDApKSUoMHxwKXwwKSk9PSgwfGMpfCgwfEEpPT0oMHxjKXwoMHxBKT09KDB8bCl8KDB8dyk9PSgwfGwpKSYmMHx1XyhiLGssMHxhW2FbZisoQTw8Mik+PjJdPj4yXSww''@;'; put 'put ''fGFbYVtmKyh3PDwyKT4+Ml0+PjJdKSl7bT0wO2JyZWFrfX1lbHNlIG09MH13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIG94KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxwPTAsbT0wLHc9MDtmb3IoKDB8KHA9MHxhWzQ3NTA0XSkpPCgwfChtPTB8YVs0NzUxNV0pKT93PXA6KGZ1''@;'; put 'put ''bmN0aW9uIFRtKGwpe3ZhciBtLGM9MCxmPTAscD0wO209bGUsbGU9bGUrMzJ8MCxwPW0rMTZ8MCxmPW0sKDB8YVs0NzUxNV0pPCgwfChsfD0wKSkmJigoYz0wfGFbNDc1MTNdKT8oZj0wfFVhKGMsNTIqbHwwKSxhWzQ3NTEzXT1mLGZ8fChmPTB8YVsxNTcxMl0sYVtwPj4yXT0xNDE4NTgsYVtw''@;'; put 'put ''KzQ+PjJdPTU1OCxhW3ArOD4+Ml09MTQyMDQzLFQwKGYsMTQxODM5LHApLHplKDE4OTg1NiwxKSkpOihwPTB8RjAoNTIqbHwwKSxhWzQ3NTEzXT1wLHB8fChwPTB8YVsxNTcxMl0sYVtmPj4yXT0xNDE4NTgsYVtmKzQ+PjJdPTU1MixhW2YrOD4+Ml09MTQyMDI0LFQwKHAsMTQxODM5LGYpLHpl''@;'; put 'put ''KDE4OTg1NiwxKSkpLGFbNDc1MTVdPWwpLGxlPW19KG0rMjB8MCksdz0wfGFbNDc1MDRdKSxBPTB8YVs0NzUxM10sYVs0NzUwNF09dysxLGFbKG09QSsoNTIqd3wwKXwwKT4+Ml09MCxhW0ErKDUyKnd8MCkrND4+Ml09bCxhW0ErKDUyKnd8MCkrOD4+Ml09YyxhW0ErKDUyKnd8MCkrMTY+PjJd''@;'; put 'put ''PTAsYVtBKyg1Mip3fDApKzIwPj4yXT1jLGFbQSsoNTIqd3wwKSsyND4+Ml09ZixhW0ErKDUyKnd8MCkrMzI+PjJdPTAsYVtBKyg1Mip3fDApKzM2Pj4yXT1mLGFbQSsoNTIqd3wwKSs0MD4+Ml09bCxhW0ErKDUyKnd8MCkrNDg+PjJdPTAscD0wOzMhPSgwfHApOylhW0ErKDUyKnd8MCkrNCso''@;'; put 'put ''cDw8NCkrOD4+Ml09bSxwPXArMXwwfWZ1bmN0aW9uIHVfKGwsYyxmLHApe3B8PTA7dmFyIEEsbT0wLHc9MCxiPTA7cmV0dXJuIDMhPSgwfChBPTB8SmYobHw9MCxjfD0wLGZ8PTApKSkmJjMhPSgwfCh3PTB8SmYobCxjLHApKSkmJjMhPSgwfChiPTB8SmYoZixwLGwpKSkmJjMhPSgwfChtPTB8''@;'; put 'put ''SmYoZixwLGMpKSk/KDE9PSgwfEEpXjE9PSgwfHcpKSYoMT09KDB8YileMT09KDB8bSkpJjF8MDowPT0oMHxjNShsLGMsZikpJiYwPT0oMHxjNShsLGMscCkpJiYwPT0oMHxjNShmLHAsbCkpPzAhPSgwfGM1KGYscCxjKSl8MDoxfWZ1bmN0aW9uIGM1KGwsYyxmKXt2YXIgcCx3LG09MCxBPTA7''@;'; put 'put ''cmV0dXJuIHc9K19bKGN8PTApPj4zXS0obT0rX1sobHw9MCk+PjNdKSxwPStfW2MrOD4+M10tKEE9K19bbCs4Pj4zXSksbT0rX1soZnw9MCk+PjNdLW0sQT0rX1tmKzg+PjNdLUEsMHwoMz09KDB8SmYobCxjLGYpKSYmQSpwK20qdz49MD9BKkErbSptPD1wKnArdyp3JjE6MCl9ZnVuY3Rpb24g''@;'; put 'put ''TGgobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7cD0rX1syNCsobHw9MCk+PjNdO2U6ZG97aWYocDwxZS03JnA+LTFlLTcpbD0wfGx4KGwsYyk7ZWxzZSBmb3Iodz0rX1tsKzE2Pj4zXS8oMypwKSxBPStfW2wrOD4+M10vcCxtPXcqdyxwPTIqdyptLXcqQSsgK19b''@;'; put 'put ''bD4+M10vcCxtPS4zMzMzMzMzMzMzMzMzMzMzKkEtbSxtKj1tKm0qNCxBPXAqcCttLEE8MD8oYj0rVWwoKyArRDAoKy1BKSwrLXApLHA9MiorU2ooLjUqK0QwKCstbSkpLF9bYz4+M109cCoraGEoLjMzMzMzMzMzMzMzMzMzMzMqYiksX1tjKzg+PjNdPStoYSguMzMzMzMzMzMzMzMzMzMzMyoo''@;'; put 'put ''Yis2LjI4MzE4NTMwNzE3OTU4NikpKnAscD0raGEoLjMzMzMzMzMzMzMzMzMzMzMqKGIrLTYuMjgzMTg1MzA3MTc5NTg2KSkqcCxsPTIsZj03KTooYj0uNSooK0QwKCtBKS1wKSxtPStTaihiKSxwPStTaigtcC1iKSttLF9bYz4+M109cCxBPjA/bD0xOihwKj0tLjUsX1tjKzE2Pj4zXT1wLGw9''@;'; put 'put ''MSxmPTcpKSw3PT0oMHxmKSYmKF9bYysobDw8Myk+PjNdPXAsbD0zKSxmPTA7Oyl7aWYoKDB8Zik+PSgwfGwpKWJyZWFrIGU7X1soaz1jKyhmPDwzKXwwKT4+M109K19baz4+M10tdyxmPWYrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIGx4KGwsYyl7Y3w9MDt2YXIgZj0wLHA9''@;'; put 'put ''MDtmPStfWzE2KyhsfD0wKT4+M107ZG97aWYoZjwxZS03JmY+LTFlLTcpbD0wfGZfKGwsYyk7ZWxzZXtpZighKChmPShwPStfW2wrOD4+M10vKDIqZikpKnAtK19bbD4+M10vZik8MCkpe2lmKDA9PWYpe19bYz4+M109LXAsbD0xO2JyZWFrfWY9K0QwKCtmKS1wLF9bYz4+M109ZixfW2MrOD4+''@;'; put 'put ''M109LTIqcC1mLGw9MjticmVha31sPTB9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gZl8obCxjKXt2YXIgZixwO3JldHVybiBmPStfWyhsfD0wKT4+M10sKHA9K19bbCs4Pj4zXSk8MWUtNyZwPi0xZS03P2w9ZjwxZS03JmY+LTFlLTc/NDowOihfWyhjfD0wKT4+M109LWYvcCxsPTEp''@;'; put 'put ''LDB8bH1mdW5jdGlvbiBoXyhsKXtGdCgwfGFbKGx8PTApPj4yXSksRnQobCl9ZnVuY3Rpb24gT2QobCxjKXtjfD0wO3ZhciBtLGIsZj0wLHA9MCxBPTAsdz0wLGs9MCxNPTAsRD0wLFI9MDtmb3IoZj0wfGFbNDc1MThdLCgwfChiPSgzKihwPTB8YVs0KyhsfD0wKT4+Ml0pfDApLTJ8MCkpPigw''@;'; put 'put ''fGFbNDc1MTddKT8oZj1mPzB8VWEoZixiPDw0KTowfEYwKGI8PDQpLGFbNDc1MThdPWYsYVs0NzUxN109Yix3PWYsQT1mKToodz1mLEE9ZiksYVt3Pj4yXT1hWyhtPTB8YVtsPj4yXSk+PjJdLGFbdys0Pj4yXT1hW20rND4+Ml0sYVt3Kzg+PjJdPWFbbSs4Pj4yXSxhW3crMTI+PjJdPWFbbSsx''@;'; put 'put ''Mj4+Ml0scjEodysxNnwwLDB8bSwxNikscD1wKy0xfDAsZj0xLGw9MjshKCgwfGYpPj0oMHxwKSk7KWs9dysobCsyPDw0KXwwLE09dysobCsxPDw0KXwwLGFbKFI9dysobDw8NCl8MCk+PjJdPWFbKEQ9bSsoZjw8NCl8MCk+PjJdLGFbUis0Pj4yXT1hW0QrND4+Ml0sYVtSKzg+PjJdPWFbRCs4''@;'; put 'put ''Pj4yXSxhW1IrMTI+PjJdPWFbRCsxMj4+Ml0scjEoMHxNLDB8RCwxNiksYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsxMj4+Ml0sZj1mKzF8MCxsPWwrM3wwO2FbKEQ9dysobDw8NCl8MCk+PjJdPWFbKFI9bSso''@;'; put 'put ''Zjw8NCl8MCk+PjJdLGFbRCs0Pj4yXT1hW1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+Ml0scjEodysobCsxPDw0KXwwLDB8UiwxNiksYVtjKzQ+PjJdPWIsYVtjPj4yXT1BfWZ1bmN0aW9uIFVjKGwsYyxmKXt2YXIgbSxwPTA7cmV0dXJuIDB8KChwPSgr''@;'; put 'put ''X1soZnw9MCk+PjNdLShtPStfWyhjfD0wKT4+M10pKSooK19bOCsobHw9MCk+PjNdLShwPStfW2MrOD4+M10pKS0oK19bbD4+M10tbSkqKCtfW2YrOD4+M10tcCkpPjFlLTQ/MToocDwtMWUtNCk8PDMxPj4zMSl9ZnVuY3Rpb24gZjUobCxjLGYpe2Z8PTA7dmFyIHA9MCxtPTAsQT0wO3JldHVy''@;'; put 'put ''biAxJihsPShtPStfWyhsfD0wKT4+M10pIT0oQT0rX1soY3w9MCk+PjNdKT9tPChwPStfW2Y+PjNdKSZwPEE/MTpBPHA/cDxtOjA6KEE9K19bbCs4Pj4zXSk8KG09K19bZis4Pj4zXSkmbTwocD0rX1tjKzg+PjNdKT8xOnA8bT9tPEE6MCl8MH1mdW5jdGlvbiBDNihsLGMsZixwKXtjfD0wLGZ8''@;'; put 'put ''PTAscHw9MDt2YXIgQSx3LGIsayxELG09MCxNPTA7RD1sZSxsZT1sZSs0OHwwLGI9RCszMnwwLHc9RCsxNnwwLGFbKEE9RCk+PjJdPWFbKGx8PTApPj4yXSxhW0ErND4+Ml09YVtsKzQ+PjJdLGFbQSs4Pj4yXT1hW2wrOD4+Ml0sYVtBKzEyPj4yXT1hW2wrMTI+PjJdLGFbdz4+Ml09YVtjPj4y''@;'; put 'put ''XSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLGFbYj4+Ml09YVtmPj4yXSxhW2IrND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLDA9PSgwfChrPTB8VWMoQSx3LGIpKSkm''@;'; put 'put ''JihhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxhW2I+PjJd''@;'; put 'put ''PWFbZj4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSwwIT0oMHxmNShBLHcsYikpKT9tPTE6TT0zO2Rve2lmKDM9PSgwfE0pKXtpZihhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVts''@;'; put 'put ''Kzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxhW2I+PjJdPWFbcD4+Ml0sYVtiKzQ+PjJdPWFbcCs0Pj4yXSxhW2IrOD4+Ml09YVtwKzg+PjJdLGFb''@;'; put 'put ''YisxMj4+Ml09YVtwKzEyPj4yXSwwPT0oMHwobT0wfFVjKEEsdyxiKSkpJiYoYVtBPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+''@;'; put 'put ''PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVtiPj4yXT1hW3A+PjJdLGFbYis0Pj4yXT1hW3ArND4+Ml0sYVtiKzg+PjJdPWFbcCs4Pj4yXSxhW2IrMTI+PjJdPWFbcCsxMj4+Ml0sMHxmNShBLHcsYikpKXttPTE7YnJlYWt9YVtBPj4yXT1hW2Y+PjJdLGFbQSs0Pj4yXT1h''@;'; put 'put ''W2YrND4+Ml0sYVtBKzg+PjJdPWFbZis4Pj4yXSxhW0ErMTI+PjJdPWFbZisxMj4+Ml0sYVt3Pj4yXT1hW3A+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml0sYVtiPj4yXT1hW2w+PjJdLGFbYis0Pj4yXT1hW2wrND4+Ml0s''@;'; put 'put ''YVtiKzg+PjJdPWFbbCs4Pj4yXSxhW2IrMTI+PjJdPWFbbCsxMj4+Ml0sbD0wfFVjKEEsdyxiKSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsxMj4+Ml09YVtmKzEyPj4yXSxhW3c+PjJdPWFbcD4+Ml0sYVt3KzQ+PjJdPWFbcCs0''@;'; put 'put ''Pj4yXSxhW3crOD4+Ml09YVtwKzg+PjJdLGFbdysxMj4+Ml09YVtwKzEyPj4yXSxhW2I+PjJdPWFbYz4+Ml0sYVtiKzQ+PjJdPWFbYys0Pj4yXSxhW2IrOD4+Ml09YVtjKzg+PjJdLGFbYisxMj4+Ml09YVtjKzEyPj4yXSxNPSgwfEFyKG0saykpPDAsbT0oMHxBcigwfFVjKEEsdyxiKSxsKSk+''@;'; put 'put ''Pj4zMSxtPU0/bTowfX13aGlsZSgwKTtyZXR1cm4gbGU9RCwwfG19ZnVuY3Rpb24gejQobCxjKXt2YXIgZixwLG0sQTtyZXR1cm4gY3w9MCxwPWxlLGxlPWxlKzMyfDAsbT1wKzE2fDAsYVsoQT1wKT4+Ml09YVsobHw9MCk+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+PjJdPWFbbCs4''@;'; put 'put ''Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sZj0rRDAoKyArZnVuY3Rpb24gazYobCxjKXt2YXIgZixwO3JldHVybisoKHA9K19bOCsobHw9MCk+PjNd''@;'; put 'put ''LStfWzgrKGN8PTApPj4zXSkqcCsoZj0rX1tsPj4zXS0rX1tjPj4zXSkqZil9KEEsbSkpLGxlPXAsK2Z9ZnVuY3Rpb24gWTEobCxjLGYscCxtKXt2YXIgQSx3LGIsayxNLEQsUjtyZXR1cm4gQT1sZSxsZT1sZSs2NHwwLHc9QSs0OHwwLGI9QSszMnwwLGs9QSsxNnwwLFI9KGZ8PTApKyhhWyht''@;'; put 'put ''fD0wKSsoKGx8PTApPDwyKT4+Ml08PDQpfDAsRD1mKyhsPDw0KXwwLHA9ZisoYVsocHw9MCkrKGw8PDIpPj4yXTw8NCl8MCxtPWYrKChjfD0wKTw8NCl8MCxhWyhNPUEpPj4yXT1hW1I+PjJdLGFbTSs0Pj4yXT1hW1IrND4+Ml0sYVtNKzg+PjJdPWFbUis4Pj4yXSxhW00rMTI+PjJdPWFbUisx''@;'; put 'put ''Mj4+Ml0sYVtrPj4yXT1hW0Q+PjJdLGFbays0Pj4yXT1hW0QrND4+Ml0sYVtrKzg+PjJdPWFbRCs4Pj4yXSxhW2srMTI+PjJdPWFbRCsxMj4+Ml0sYVtiPj4yXT1hW3A+PjJdLGFbYis0Pj4yXT1hW3ArND4+Ml0sYVtiKzg+PjJdPWFbcCs4Pj4yXSxhW2IrMTI+PjJdPWFbcCsxMj4+Ml0sYVt3''@;'; put 'put ''Pj4yXT1hW20+PjJdLGFbdys0Pj4yXT1hW20rND4+Ml0sYVt3Kzg+PjJdPWFbbSs4Pj4yXSxhW3crMTI+PjJdPWFbbSsxMj4+Ml0sbT0wfG9BKE0sayxiLHcpLGxlPUEsMHxtfWZ1bmN0aW9uIGQ1KGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTA7dmFy''@;'; put 'put ''IGssTSxELFIscSxiPTAsRz0wLHBlPTAsZ2U9MDtmb3IocT1sZSxsZT1sZSs2NHwwLFI9cSs0OHwwLEQ9cSszMnwwLE09cSsxNnwwLGs9cSxiPTA7Oyl7aWYoKDB8Yik+PSgwfGYpKXtHPTQ7YnJlYWt9aWYoZ2U9QSsoYjw8NCl8MCxwZT1BKyhhW3crKGI8PDIpPj4yXTw8NCl8MCxhW2s+PjJd''@;'; put 'put ''PWFbbD4+Ml0sYVtrKzQ+PjJdPWFbbCs0Pj4yXSxhW2srOD4+Ml09YVtsKzg+PjJdLGFbaysxMj4+Ml09YVtsKzEyPj4yXSxhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW0Q+PjJdPWFbZ2U+PjJd''@;'; put 'put ''LGFbRCs0Pj4yXT1hW2dlKzQ+PjJdLGFbRCs4Pj4yXT1hW2dlKzg+PjJdLGFbRCsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtSPj4yXT1hW3BlPj4yXSxhW1IrND4+Ml09YVtwZSs0Pj4yXSxhW1IrOD4+Ml09YVtwZSs4Pj4yXSxhW1IrMTI+PjJdPWFbcGUrMTI+PjJdLDB8QzYoayxNLEQsUikpe3A9''@;'; put 'put ''MDticmVha31iPWIrMXwwfWU6ZG97aWYoND09KDB8RykpZm9yKDs7KXtpZigoMHxwKT49KDB8bSkpe3A9MTticmVhayBlfWlmKHBlPUErKHA8PDQpfDAsZ2U9QSsoYVt3KyhwPDwyKT4+Ml08PDQpfDAsYVtrPj4yXT1hW2w+PjJdLGFbays0Pj4yXT1hW2wrND4+Ml0sYVtrKzg+PjJdPWFbbCs4''@;'; put 'put ''Pj4yXSxhW2srMTI+PjJdPWFbbCsxMj4+Ml0sYVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sYVtEPj4yXT1hW3BlPj4yXSxhW0QrND4+Ml09YVtwZSs0Pj4yXSxhW0QrOD4+Ml09YVtwZSs4Pj4yXSxh''@;'; put 'put ''W0QrMTI+PjJdPWFbcGUrMTI+PjJdLGFbUj4+Ml09YVtnZT4+Ml0sYVtSKzQ+PjJdPWFbZ2UrND4+Ml0sYVtSKzg+PjJdPWFbZ2UrOD4+Ml0sYVtSKzEyPj4yXT1hW2dlKzEyPj4yXSwwfEM2KGssTSxELFIpKXtwPTA7YnJlYWt9cD1wKzF8MCxHPTR9fXdoaWxlKDApO3JldHVybiBsZT1xLDB8''@;'; put 'put ''cH1mdW5jdGlvbiBvQShsLGMsZixwKXt2YXIgbSxBLHcsYixrO3JldHVybiBsfD0wLGN8PTAsZnw9MCxBPWxlLGxlPWxlKzQ4fDAsdz1BKzMyfDAsYj1BKzE2fDAsYVsoaz1BKT4+Ml09YVsocHw9MCk+PjJdLGFbays0Pj4yXT1hW3ArND4+Ml0sYVtrKzg+PjJdPWFbcCs4Pj4yXSxhW2srMTI+''@;'; put 'put ''PjJdPWFbcCsxMj4+Ml0sYVtiPj4yXT1hW2w+PjJdLGFbYis0Pj4yXT1hW2wrND4+Ml0sYVtiKzg+PjJdPWFbbCs4Pj4yXSxhW2IrMTI+PjJdPWFbbCsxMj4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysx''@;'; put 'put ''Mj4+Ml0sbT0wfFVjKGssYix3KSxhW2s+PjJdPWFbcD4+Ml0sYVtrKzQ+PjJdPWFbcCs0Pj4yXSxhW2srOD4+Ml09YVtwKzg+PjJdLGFbaysxMj4+Ml09YVtwKzEyPj4yXSxhW2I+PjJdPWFbYz4+Ml0sYVtiKzQ+PjJdPWFbYys0Pj4yXSxhW2IrOD4+Ml09YVtjKzg+PjJdLGFbYisxMj4+Ml09''@;'; put 'put ''YVtjKzEyPj4yXSxhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxwPTB8VWMoayxiLHcpLGFbaz4+Ml09YVtsPj4yXSxhW2srND4+Ml09YVtsKzQ+PjJdLGFbays4Pj4yXT1hW2wrOD4+Ml0sYVtrKzEy''@;'; put 'put ''Pj4yXT1hW2wrMTI+PjJdLGFbYj4+Ml09YVtjPj4yXSxhW2IrND4+Ml09YVtjKzQ+PjJdLGFbYis4Pj4yXT1hW2MrOD4+Ml0sYVtiKzEyPj4yXT1hW2MrMTI+PjJdLGFbdz4+Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2Yr''@;'; put 'put ''MTI+PjJdLGY9KDB8VWMoayxiLHcpKT4wLGxlPUEsKGY/cHxtOnAmbSk+Pj4zMV4xfDB9ZnVuY3Rpb24gZF8obCxjLGYpe2N8PTAsZnw9MDt2YXIgQSx3LGIsayxNLEQsUixHLHEscGUsZ2UscD0wLG09MCxiZT0wLE9lPTA7Zm9yKGdlPWxlLGxlPWxlKzgwfDAsYj1nZSs2NHwwLHc9Z2UrNDh8''@;'; put 'put ''MCxBPWdlKzMyfDAsaz1nZSsxNnwwLFI9Z2UscT0wfGFbOCsobHw9MCk+PjJdLHBlPTB8YVtsKzE2Pj4yXSxNPTB8YVtsKzIwPj4yXSxEPTB8RjAoMTYrKChHPTB8YVtsKzQ+PjJdKTw8Myl8MCksLTIyMjI9PSgwfGMpJiYoYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVti''@;'; put 'put ''Kzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0sYz0wfGZ1bmN0aW9uIHBfKGwsYyl7Y3w9MDt2YXIgcCxtLHcsYixrLE0sRCxmPTAsQT0wLFI9MCxHPTA7Zm9yKEQ9bGUsbGU9bGUrMzJ8MCxtPUQrOHwwLHA9RCxiPTgrKGx8PTApfDAsaz1sKzEyfDAsTT00Kyh3PUQrMjR8''@;'; put 'put ''MCl8MCxmPTA7Oyl7aWYoKDB8Zik+PSgwfGFbbD4+Ml0pKXtmPS0xMTExO2JyZWFrfWlmKGFbdz4+Ml09KDB8YVtiPj4yXSkrKChSPTB8YVsoRz0wfGFbaz4+Ml0pKyhmPDwyKT4+Ml0pPDw0KSxhW00+PjJdPSgwfGFbRysoKEE9ZisxfDApPDwyKT4+Ml0pLVIsYVtwPj4yXT1hW3c+PjJdLGFb''@;'; put 'put ''cCs0Pj4yXT1hW3crND4+Ml0sYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sMHxfNihwLG0pKWJyZWFrO2Y9QX1yZXR1cm4gbGU9RCwwfGZ9KGwsYikpLCgwfGMpPi0xPyhtPTB8YVsobD0wfGFbbCsx''@;'; put 'put ''Mj4+Ml0pKyhjKzE8PDIpPj4yXSxsPTB8YVtsKyhjPDwyKT4+Ml0pOihtPUcsbD1HKSxjPTA7Oyl7aWYoKDB8Yyk+PSgwfGwpKXtjPWw7YnJlYWt9YVtSPj4yXT1hWyhPZT1xKyhjPDw0KXwwKT4+Ml0sYVtSKzQ+PjJdPWFbT2UrND4+Ml0sYVtSKzg+PjJdPWFbT2UrOD4+Ml0sYVtSKzEyPj4y''@;'; put 'put ''XT1hW09lKzEyPj4yXSxiZT1xKyhhW3BlKyhjPDwyKT4+Ml08PDQpfDAsYVtrPj4yXT1hWyhPZT1xKyhhW00rKGM8PDIpPj4yXTw8NCl8MCk+PjJdLGFbays0Pj4yXT1hW09lKzQ+PjJdLGFbays4Pj4yXT1hW09lKzg+PjJdLGFbaysxMj4+Ml09YVtPZSsxMj4+Ml0sYVtBPj4yXT1hW1I+PjJd''@;'; put 'put ''LGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtBKzg+PjJdPWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVt3Pj4yXT1hW2JlPj4yXSxhW3crND4+Ml09YVtiZSs0Pj4yXSxhW3crOD4+Ml09YVtiZSs4Pj4yXSxhW3crMTI+PjJdPWFbYmUrMTI+PjJdLGFbYj4+Ml09YVtmPj4yXSxhW2Ir''@;'; put 'put ''ND4+Ml09YVtmKzQ+PjJdLGFbYis4Pj4yXT1hW2YrOD4+Ml0sYVtiKzEyPj4yXT1hW2YrMTI+PjJdLDAhPSgwfG9BKGssQSx3LGIpKSYmKGFbdz4+Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLGFbYj4+Ml09''@;'; put 'put ''YVtSPj4yXSxhW2IrND4+Ml09YVtSKzQ+PjJdLGFbYis4Pj4yXT1hW1IrOD4+Ml0sYVtiKzEyPj4yXT1hW1IrMTI+PjJdLDAhPSgwfGQ1KHcsYixsLG0sRyxxLHBlKSkpPyhhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09''@;'; put 'put ''YVtmKzEyPj4yXSxhW2I+PjJdPWFbUj4+Ml0sYVtiKzQ+PjJdPWFbUis0Pj4yXSxhW2IrOD4+Ml09YVtSKzg+PjJdLGFbYisxMj4+Ml09YVtSKzEyPj4yXSxwPSt6NCh3LGIpKTpwPTAsX1tEKyhjPDwzKT4+M109cCxjPWMrMXwwfWZvcig7Oyl7aWYoKDB8Yyk+PSgwfG0pKXtjPW07YnJlYWt9''@;'; put 'put ''X1tEKyhjPDwzKT4+M109MCxjPWMrMXwwfWZvcig7ISgoMHxjKT49KDB8RykpOylhW1I+PjJdPWFbKGJlPXErKGM8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLE9lPXErKGFbcGUrKGM8PDIpPj4yXTw8''@;'; put 'put ''NCl8MCxhW2s+PjJdPWFbKGJlPXErKGFbTSsoYzw8Mik+PjJdPDw0KXwwKT4+Ml0sYVtrKzQ+PjJdPWFbYmUrND4+Ml0sYVtrKzg+PjJdPWFbYmUrOD4+Ml0sYVtrKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0E+PjJdPWFbUj4+Ml0sYVtBKzQ+PjJdPWFbUis0Pj4yXSxhW0ErOD4+Ml09YVtSKzg+''@;'; put 'put ''PjJdLGFbQSsxMj4+Ml09YVtSKzEyPj4yXSxhW3c+PjJdPWFbT2U+PjJdLGFbdys0Pj4yXT1hW09lKzQ+PjJdLGFbdys4Pj4yXT1hW09lKzg+PjJdLGFbdysxMj4+Ml09YVtPZSsxMj4+Ml0sYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxh''@;'; put 'put ''W2IrMTI+PjJdPWFbZisxMj4+Ml0sMCE9KDB8b0EoayxBLHcsYikpJiYoYVt3Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0sYVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisxMj4+Ml0sYVtiPj4yXT1hW1I+PjJdLGFbYis0Pj4yXT1hW1IrND4+Ml0sYVtiKzg+PjJd''@;'; put 'put ''PWFbUis4Pj4yXSxhW2IrMTI+PjJdPWFbUisxMj4+Ml0sMCE9KDB8ZDUodyxiLGwsbSxHLHEscGUpKSk/KGFbdz4+Ml09YVtmPj4yXSxhW3crND4+Ml09YVtmKzQ+PjJdLGFbdys4Pj4yXT1hW2YrOD4+Ml0sYVt3KzEyPj4yXT1hW2YrMTI+PjJdLGFbYj4+Ml09YVtSPj4yXSxhW2IrND4+Ml09''@;'; put 'put ''YVtSKzQ+PjJdLGFbYis4Pj4yXT1hW1IrOD4+Ml0sYVtiKzEyPj4yXT1hW1IrMTI+PjJdLHA9K3o0KHcsYikpOnA9MCxfW0QrKGM8PDMpPj4zXT1wLGM9YysxfDA7cmV0dXJuIF9bRCsoRzw8Myk+PjNdPTAsX1tEKyhHKzE8PDMpPj4zXT0wLGxlPWdlLDB8RH1mdW5jdGlvbiB2RyhsKXt2YXIg''@;'; put 'put ''YztyZXR1cm4gMHwoYz0wfF9vWzYzJmFbKGx8PTApPj4yXV0oMTg4KSkmJihhQShjKzgwfDAsbCksYUEoYysxMDR8MCxsKSxCZChjLGwpLEJkKGMrMjB8MCxsKSxCZChjKzQwfDAsbCksQmQoYys2MHwwLGwpLGZlW2MrMTMxPj4wXT0wLEJkKGMrMTMyfDAsbCksYVtjKzE1Mj4+Ml09MCxhW2Mr''@;'; put 'put ''MTU2Pj4yXT0wLGZlW2MrMTYwPj4wXT0wLGFbKGw9YysxNjR8MCk+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLGFbbCsxNj4+Ml09MCxhW2wrMjA+PjJdPTAsZmVbYysxMjg+PjBdPTEsZmVbYysxMjk+PjBdPTAsZmVbYysxMzA+PjBdPTApLDB8Y31mdW5jdGlv''@;'; put 'put ''biBhQShsLGMpe2N8PTAsYVsobHw9MCk+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLGFbbCsxNj4+Ml09MCxhW2wrMjA+PjJdPWN9ZnVuY3Rpb24gdl8obCxjKXtjfD0wO3ZhciBmLHA9MCxtPTA7YVsyNzYrKGx8PTApPj4yXT01NixmdW5jdGlvbiBxSyhsKXth''@;'; put 'put ''WyhsfD0wKT4+Ml09MTUsYVtsKzE2Pj4yXT0xLGFbbCsxMj4+Ml09MCxhW2wrMjA+PjJdPTB9KGwrMjUyfDApLDB8YyYmKGFbbCsyMjg+PjJdPTB8ZnVuY3Rpb24gWUIobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTA7Zj0wO2Rve3A9ZixmPWYrMXwwfXdoaWxlKDAhPSgwfGZlW2wrcD4+MF0p''@;'; put 'put ''KTtyZXR1cm4oYz0wfF9vWzYzJmFbYz4+Ml1dKGYpKT9nbygwfGMsMHxsLDB8Zik6Yz0wLDB8Y30oYyxsKzEyfDApKSxhW2wrMzU2Pj4yXT0wLFVLKGwrMTQ4fDAsbCsxNDR8MCwwKSxhW2w+PjJdPTAsYVtsKzQ+PjJdPTAsYz1sKzExNnwwLG09NjQrKHA9bCs1MnwwKXwwO2Rve2FbcD4+Ml09''@;'; put 'put ''MCxwPXArNHwwfXdoaWxlKCgwfHApPCgwfG0pKTthW2M+PjJdPWwsYVtsKzEyMD4+Ml09MCxhWyhjPWwrMTI4fDApPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2wrMjQ+PjJdPWM9MHxhW2wrOD4+Ml0sYVtsKzI4Pj4yXT1jLGFbbCszNj4+Ml09MCxhW2wr''@;'; put 'put ''NDA+PjJdPTAsYz1sKzMxMnwwLGFbKHA9bCs0MDR8MCk+PjJdPTAsYVtwKzQ+PjJdPTAsZj1sKzMwNHwwLGFbKHA9bCsyODB8MCk+PjJdPTAsYVtwKzQ+PjJdPTAsYVtwKzg+PjJdPTAsYVtwKzEyPj4yXT0wLGFbcCsxNj4+Ml09MCxtPShwPWMpKzM2fDA7ZG97YVtwPj4yXT0wLHA9cCs0fDB9''@;'; put 'put ''d2hpbGUoKDB8cCk8KDB8bSkpO2l0W2MrMzY+PjFdPTAsZmVbZj4+MF09MSxhW2wrMzA4Pj4yXT0wLGFbbCszNjA+PjJdPTAsYVtsKzM2OD4+Ml09MCxhW2wrMzgwPj4yXT0wLGFbbCsyMzY+PjJdPTAsYVtsKzI0OD4+Ml09MCxhW2wrMjQwPj4yXT0wLGFbbCs0NzI+PjJdPTAsYVtsKzQ3Nj4+''@;'; put 'put ''Ml09MCxmZVtsKzQ4ND4+MF09MCxmZVtsKzQ4NT4+MF09MCxhW2wrNDg4Pj4yXT0wLGFbbCs0OTI+PjJdPTB9ZnVuY3Rpb24gQV8obCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMHwobHw9MCkpe2ZvcihmPWwrMzY0fDAsbT1sKzIwfDAsYz0wfGFbbCszNjA+PjJdOzspe2lmKCFjKXtp''@;'; put 'put ''ZighKGM9MHxhW2Y+PjJdKSlicmVhazthW2Y+PjJdPTB9QT0wfGFbYz4+Ml0sQ29bMTI3JmFbbT4+Ml1dKDB8YVtjKzM2Pj4yXSksbEEoMHxhW2MrNDQ+PjJdLGwpLENvWzEyNyZhW20+PjJdXShjKSxjPUF9Zm9yKGY9bCszMDB8MCxjPTB8YVtsKzI5Nj4+Ml07Oyl7aWYoIWMpe2lmKCEoYz0w''@;'; put 'put ''fGFbZj4+Ml0pKWJyZWFrO2FbZj4+Ml09MH1BPTB8YVtjKzg+PjJdLENvWzEyNyZhW20+PjJdXShjKSxjPUF9bEEoMHxhW2wrMzcyPj4yXSxsKSxsQSgwfGFbbCszNjg+PjJdLGwpLEltKGwrNDEyfDApLEltKGwrNDM2fDApLGM9bCsxMnwwLENvWzEyNyZhW20+PjJdXSgwfGFbbCsyMjg+PjJd''@;'; put 'put ''KSwwPT0oMHxmZVtsKzQ4ND4+MF0pJiYwfChwPTB8YVtsKzM1Mj4+Ml0pJiZmdW5jdGlvbiBXQihsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLEEsdyxwPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxlYyhtPXcsQT0yMCsobHw9MCl8MCksZj1mKzh8MDtwPTB8RG0obSk7KSEoMHxhW3ArMTY+PjJdKXx8''@;'; put 'put ''Q29bMTI3JmFbZj4+Ml1dKDB8YVtwKzIwPj4yXSk7TG0obCksTG0obCsxMzJ8MCksTG0oQSksTG0obCs0MHwwKSxMbShsKzYwfDApLEltKGwrODB8MCksSW0obCsxMDR8MCksYzw8MjQ+PjI0JiYoQ29bMTI3JmFbZj4+Ml1dKDB8YVtsKzE4ND4+Ml0pLENvWzEyNyZhW2Y+PjJdXSgwfGFbbCsx''@;'; put 'put ''NjQ+PjJdKSksQ29bMTI3JmFbZj4+Ml1dKGwpLGxlPXd9KHAsMD09KDB8YVtsKzQ3Mj4+Ml0pJjEsYyksQ29bMTI3JmFbbT4+Ml1dKDB8YVtsKzM4OD4+Ml0pLENvWzEyNyZhW20+PjJdXSgwfGFbbCs0NjA+PjJdKSxDb1sxMjcmYVttPj4yXV0oMHxhW2wrOD4+Ml0pLENvWzEyNyZhW20+PjJd''@;'; put 'put ''XSgwfGFbbCs0ND4+Ml0pLENvWzEyNyZhW20+PjJdXSgwfGFbbCszOTI+PjJdKSxDb1sxMjcmYVttPj4yXV0oMHxhW2wrMjM2Pj4yXSksMHwoYz0wfGFbbCsyNDg+PjJdKSYmQ29bMTI3JmNdKDB8YVtsKzI0MD4+Ml0pLENvWzEyNyZhW20+PjJdXShsKX19ZnVuY3Rpb24gbEEobCxjKXtsfD0w''@;'; put 'put ''O3ZhciBmPTA7Zm9yKGM9MjArKGN8PTApfDA7bDspZj0wfGFbbCs0Pj4yXSxDb1sxMjcmYVtjPj4yXV0oMHxhW2wrMTY+PjJdKSxDb1sxMjcmYVtjPj4yXV0obCksbD1mfWZ1bmN0aW9uIEltKGwpe3ZhciBmLGM9MCxwPTA7Zm9yKGY9MjArKGx8PTApfDAsYz0wfGFbbD4+Ml07YzspcD0wfGFb''@;'; put 'put ''Yz4+Ml0sQ29bMTI3JmFbOCsoMHxhW2Y+PjJdKT4+Ml1dKGMpLGM9cDtmb3IoYz0wfGFbbCs0Pj4yXTtjOylwPTB8YVtjPj4yXSxDb1sxMjcmYVs4KygwfGFbZj4+Ml0pPj4yXV0oYyksYz1wfWZ1bmN0aW9uIGVjKGwsYyl7dmFyIGY7YVsobHw9MCk+PjJdPWY9MHxhWyhjfD0wKT4+Ml0sYVts''@;'; put 'put ''KzQ+PjJdPWYrKGFbYys4Pj4yXTw8Mil9ZnVuY3Rpb24gRG0obCl7dmFyIGYsYz0wLHA9MDtmPTB8YVs0KyhsfD0wKT4+Ml0scD0wfGFbbD4+Ml07ZG97aWYoKDB8cCk9PSgwfGYpKXtjPTA7YnJlYWt9Yz1wLGFbbD4+Ml09cD1wKzR8MCxjPTB8YVtjPj4yXX13aGlsZSghKDB8YykpO3JldHVy''@;'; put 'put ''biAwfGN9ZnVuY3Rpb24gTG0obCl7dmFyIGYscCxjPTAsbT0wLEE9MDtmb3IoZj04KyhsfD0wKXwwLHA9bCsxNnwwLGM9MDttPTB8YVs4KygwfGFbcD4+Ml0pPj4yXSxBPTB8YVtsPj4yXSwhKGM+Pj4wPj0oMHxhW2Y+PjJdKT4+PjApOylDb1sxMjcmbV0oMHxhW0ErKGM8PDIpPj4yXSksYz1j''@;'; put 'put ''KzF8MDtDb1sxMjcmbV0oQSl9ZnVuY3Rpb24gc0EobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIG0sQSxiLHc9MDtyZXR1cm4gbT1sZSxsZT1sZSsxNnwwLGFbKEE9bSk+PjJdPWN8PTAsdz0wfHEwWzEyNyZhWyh3PTB8YVsoYj1sKzE0NHwwKT4+Ml0pPj4yXV0odyxjLGYsQSkscD0wfHVB''@;'; put 'put ''KGwsMHxhW2I+PjJdLGMsZix3LDB8YVtBPj4yXSxwLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSksbGU9bSwwfHB9ZnVuY3Rpb24gdUEobCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsd3w9MCxifD0wO3ZhciBxLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdl''@;'; put 'put ''LGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLGwwLFZpLE9pLFJvLGxvLFRhLFphLGdhLHhpLERsLG9zLG9sLEwwLHhhLHoyLEcyLEZmLFBhLFcyLHFhLEVwLGhjLHRmLHExLHhwLEJMLGc4LGR2LG04LGFxLGs9MCxNPTAsRD0wLFI9MCxHPTAs''@;'; put 'put ''djE9MCxfcz0wLCRqPTAsZnc9MCxzUz0wLHVTPTAsY1M9MCxMbD0wLENmZT0wLG9xPTA7YXE9bGUsbGU9bGUrMTZ8MCxhWyhMbD1hcSk+PjJdPUF8PTAsKDB8YVsocGU9bCsxNDR8MCk+PjJdKT09KDB8Yyk/KFI9bCsyODR8MCxHPWwrMjg4fDAsdjE9bCsyOTZ8MCk6KFI9Rz0wfGFbKHYxPWwr''@;'; put 'put ''Mjk2fDApPj4yXSxHPUcrNHwwKSxnZT1iPDwyND4+MjQhPTAsRXA9bCsyNTJ8MCxiZT1sKzgwfDAsT2U9bCs0NzZ8MCxMZT1sKzg0fDAsUmU9bCszMjB8MCxIZT1sKzQxMnwwLFZlPWwrMzE2fDAscWU9bCs0MjR8MCxydD1sKzQyOHwwLFdlPWwrMzI0fDAsaGM9bCs0fDAsYXQ9bCs0ODV8MCxT''@;'; put 'put ''dD0xMzIrKHE9MHxhW2wrMzUyPj4yXSl8MCxrdD1sKzMxMnwwLHRmPXErMTI5fDAsc3Q9cSsxMjh8MCxFdD1xKzgwfDAsWnQ9cSs5MnwwLGN0PXErOTZ8MCxidD1sKzEzNnwwLGFuPWwrODh8MCxTbj1sKzQ4OHwwLHExPWwrMTEyfDAseHA9cSsxMzF8MCxCTD1sKzExNnwwLGc4PXErMTMwfDAs''@;'; put 'put ''ZHY9bCsxMDh8MCxtOD1sKzM1NnwwLEhuPWwrMzQwfDAsdXI9bCsxMzJ8MCxIcj1sKzM0NHwwLEVyPWwrMzQ4fDAsZnI9bCszMjh8MCxEcj1sKzM0OXwwLEpyPWwrNDIwfDAsTHI9cSsxMjB8MCxsMD1xKzExNnwwLFZpPWwrOTJ8MCxPaT1sKzQ3MnwwLFJvPWwrMzM2fDAsbG89bCszMzJ8MCxU''@;'; put 'put ''YT1sKzk2fDAsWmE9bCsyNTZ8MCxnYT1sKzQ2NHwwLHhpPWwrNDYwfDAsRGw9cSsxNjB8MCxvcz1xKzE4NHwwLG9sPXErMTgwfDAsTDA9cSsxNjR8MCx4YT1sKzEyOHwwLHoyPWwrMTJ8MCxHMj1sKzE2fDAsRmY9bCsyNjh8MCxQYT1sKzEyMHwwLFcyPXErMTc2fDAscWE9cSsxNjh8MCxEPWMs''@;'; put 'put ''TT1mLGM9bTtlOmZvcig7Oyl7YVtSPj4yXT1NLGFbRz4+Ml09Zj0wfGFbTGw+PjJdLEE9Zjt0OmRve2lmKCgwfGMpPDEpe2lmKGdlJjAhPSgwfGMpKXtrPTc7YnJlYWsgZX1zd2l0Y2goMHxjKXtjYXNlLTE6QT01LGs9MjgwO2JyZWFrIGU7Y2FzZSAwOms9OTticmVhayBlO2Nhc2UtMjpBPTY7''@;'; put 'put ''YnJlYWsgZTtjYXNlLTQ6az0xMDticmVhayBlO2Nhc2UtMTU6Yz0xNTticmVhayB0fWFbTGw+PjJdPXAsYz0wLWN8MCxBPXB9fXdoaWxlKDApO209MHxSMlsxMjcmYVtFcD4+Ml1dKEVwLGMsTSxBLEQpO3Q6ZG97c3dpdGNoKDB8bSl7Y2FzZSAyOms9NTg7YnJlYWsgZTtjYXNlLTE6az0xODQ7''@;'; put 'put ''YnJlYWsgZTtjYXNlIDE6aWYoMHwoQT0wfHV4KGwsMCxNLDB8YVtMbD4+Ml0pKSl7az0yODA7YnJlYWsgZX1BPTB8YVtwZT4+Ml07YnJlYWs7Y2FzZSA0OmlmKDB8YVtMZT4+Ml0pe2lmKGs9MHxiMihIZSxELE0sMHxhW0xsPj4yXSksYVtWZT4+Ml09aywhayl7QT0xLGs9MjgwO2JyZWFrIGV9''@;'; put 'put ''YVtydD4+Ml09YVtxZT4+Ml0sYVtXZT4+Ml09MCxBPTB9ZWxzZSBBPTE7YVtSZT4+Ml09MCxrPTI3NDticmVhaztjYXNlIDc6KEE9MHxhW0xlPj4yXSk/KHA4WzE1JkFdKDB8YVtoYz4+Ml0sMHxhW1ZlPj4yXSwwfGFbUmU+PjJdLDB8YVtXZT4+Ml0sMSksYVtWZT4+Ml09MCxDZihIZSksQT1E''@;'; put 'put ''KTprPTI3NTticmVhaztjYXNlIDU3OmlmKDB8KEE9MHx1eChsLDEsTSwwfGFbTGw+PjJdKSkpe2s9MjgwO2JyZWFrIGV9QT0wfGFbcGU+PjJdO2JyZWFrO2Nhc2UgNjppZihmZVthdD4+MF09MCxrPTB8XzEobCxTdCw3NTM5NSwzNiksYVtrdD4+Ml09aywhayl7QT0xLGs9MjgwO2JyZWFrIGV9''@;'; put 'put ''aWYoZmVbdGY+PjBdPTEsMHxhW0xlPj4yXSl7aWYoISgwfHEwWzEyNyZhW0QrNTI+PjJdXShELE0sMHxhW0xsPj4yXSxSKSkpe0E9MzIsaz0yODA7YnJlYWsgZX1pZighKEE9MHxiMihIZSxELE0rKEE9MHxhW0QrNjQ+PjJdKXwwLDAtQSsoMHxhW0xsPj4yXSl8MCkpKXtBPTEsaz0yODA7YnJl''@;'; put 'put ''YWsgZX1jQShBKSxhW3J0Pj4yXT1hW3FlPj4yXSxhW1dlPj4yXT1BLEE9MCxrPTM0fWVsc2Ugaz0zMzticmVhaztjYXNlIDE0Oms9MzM7YnJlYWs7Y2FzZSA4OmlmKChBPTB8YVtWZT4+Ml0pPyhwOFsxNSZhW0xlPj4yXV0oMHxhW2hjPj4yXSxBLDB8YVtSZT4+Ml0sMHxhW1dlPj4yXSwwKSxD''@;'; put 'put ''ZihIZSksQT0wKTpBPTEsMCE9KDB8YVtSZT4+Ml0pfHwwfGZlW2F0Pj4wXSl7Zj0wfGZlW3RmPj4wXSxmZVt0Zj4+MF09MTtkb3tpZigwfGFbU24+PjJdJiYwfGFbcTE+PjJdKXtpZighKG09MHxfMShsLFN0LDc1Mzk1LDM2KSkpe0E9MSxrPTI4MDticmVhayBlfWlmKDB8ZmVbYXQ+PjBdP2Fb''@;'; put 'put ''KGM9bSsyMHwwKT4+Ml09YVttOD4+Ml06Yz1tKzIwfDAsZmVbeHA+PjBdPTAsISgwfFIyWzEyNyZhW3ExPj4yXV0oMHxhW0JMPj4yXSwwLDB8YVtjPj4yXSwwfGFbbSsxNj4+Ml0sMHxhW20rMjQ+PjJdKSkpe0E9MjEsaz0yODA7YnJlYWsgZX1pZighKDB8ZmVbeHA+PjBdKSl7aWYoMHxhW1Jl''@;'; put 'put ''Pj4yXSlicmVhaztmZVt0Zj4+MF09ZjticmVha31pZigwPT0oMHxmZVtnOD4+MF0pJiYwfChfcz0wfGFbZHY+PjJdKSYmMD09KDB8X29bNjMmX3NdKDB8YVtoYz4+Ml0pKSl7QT0yMixrPTI4MDticmVhayBlfX19d2hpbGUoMCk7ZmVbYXQ+PjBdPTB9KGM9MHxhW2FuPj4yXSk/KENvWzEyNyZj''@;'; put 'put ''XSgwfGFbaGM+PjJdKSxBPUQpOms9Mjc0O2JyZWFrO2Nhc2UgMzQ6aWYoaz0wfE9tKGwsRCxNLDB8YVtMbD4+Ml0pLGFbSG4+PjJdPWssIWspe0E9MSxrPTI4MDticmVhayBlfWs9ODA7YnJlYWs7Y2FzZSAyMjppZihrPTB8Yl8obCxELE0sMHxhW0xsPj4yXSksYVtIcj4+Ml09aywhayl7QT0x''@;'; put 'put ''LGs9MjgwO2JyZWFrIGV9ZmVbRXI+PjBdPTAsYVtmcj4+Ml09MCxmZVtEcj4+MF09MCxrPTgwO2JyZWFrO2Nhc2UgMjM6ZmVbRXI+PjBdPTEsYVtmcj4+Ml09MTQyMTg4LGs9ODA7YnJlYWs7Y2FzZSAyNDpmZVtEcj4+MF09MSxhW2ZyPj4yXT0xNDIxOTQsaz04MDticmVhaztjYXNlIDI1OmFb''@;'; put 'put ''ZnI+PjJdPTE0MjE5NyxrPTgwO2JyZWFrO2Nhc2UgMjY6YVtmcj4+Ml09MTQyMjAzLGs9ODA7YnJlYWs7Y2FzZSAyNzphW2ZyPj4yXT0xNDIyMTAsaz04MDticmVhaztjYXNlIDI4OmFbZnI+PjJdPTE0MjIxNyxrPTgwO2JyZWFrO2Nhc2UgMjk6YVtmcj4+Ml09MTQyMjI2LGs9ODA7YnJlYWs7''@;'; put 'put ''Y2FzZSAzMDphW2ZyPj4yXT0xNDIyMzQsaz04MDticmVhaztjYXNlIDMyOmNhc2UgMzE6aWYoMCE9KDB8ZmVbc3Q+PjBdKSYmMCE9KDB8YVt1cj4+Ml0pKXtpZighKDB8Y3goSGUsMD09KDB8YVtmcj4+Ml0pPzMyPT0oMHxtKT8xNDIyNDM6MTQyMjUzOjE0MjI1NSkpKXtBPTEsaz0yODA7YnJl''@;'; put 'put ''YWsgZX1pZighKDB8ZkEoSGUsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9YVtmcj4+Ml09YVtydD4+Ml0sQT1EfWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSAzNjpjYXNlIDM1OmlmKDB8ZmVbc3Q+PjBdKXtpZighKDB8T2goMHxhW0huPj4yXSwwfGFbSHI+PjJdLDB8ZmVbRXI+''@;'; put 'put ''PjBdLDB8ZmVbRHI+PjBdLDAsbCkpKXtBPTEsaz0yODA7YnJlYWsgZX1pZigwIT0oMHxhW3VyPj4yXSkmJjAhPSgwfCgkaj0wfGFbZnI+PjJdKSkpe3N3aXRjaCgwfGZlWyRqPj4wXSl7Y2FzZSA0MDprPTkzO2JyZWFrO2Nhc2UgNzg6Nzk9PSgwfGZlWyRqKzE+PjBdKSYmKGs9OTMpfWlmKDkz''@;'; put 'put ''PT0oMHxrKSl7aWYoaz0wLCgwfChBPTB8YVtxZT4+Ml0pKT09KDB8YVtKcj4+Ml0pKXtpZighKCgwfHZsKEhlKSk8PDI0Pj4yNCkpe0E9MSxrPTI4MDticmVhayBlfUE9MHxhW3FlPj4yXX1pZihhW3FlPj4yXT1BKzEsZmVbQT4+MF09NDEsKDB8KEE9MHxhW3FlPj4yXSkpPT0oMHxhW0pyPj4y''@;'; put 'put ''XSkpe2lmKCEoKDB8dmwoSGUpKTw8MjQ+PjI0KSl7QT0xLGs9MjgwO2JyZWFrIGV9QT0wfGFbcWU+PjJdfWFbcWU+PjJdPUErMSxmZVtBPj4wXT0wLGFbZnI+PjJdPWFbcnQ+PjJdLGFbcnQ+PjJdPWFbcWU+PjJdfWFbRz4+Ml09TSxodlsxNSZhW3VyPj4yXV0oMHxhW2hjPj4yXSwwfGFbYVtI''@;'; put 'put ''bj4+Ml0+PjJdLDB8YVthW0hyPj4yXT4+Ml0sMHxhW2ZyPj4yXSwwLDM2PT0oMHxtKSYxKSxDZihIZSksQT1EfWVsc2Ugaz0yNzV9ZWxzZSBrPTI3NTticmVhaztjYXNlIDM4OmNhc2UgMzc6aWYoMHxmZVtzdD4+MF0pe2lmKDB8KEE9MHxfXyhsLEQsMHxmZVtFcj4+MF0sTSsoQT0wfGFbRCs2''@;'; put 'put ''ND4+Ml0pfDAsMC1BKygwfGFbTGw+PjJdKXwwLEV0KSkpe2s9MjgwO2JyZWFrIGV9aWYoYz0wfGFbY3Q+PjJdLGFbY3Q+PjJdPWFbWnQ+PjJdLCEoMHxPaCgwfGFbSG4+PjJdLDB8YVtIcj4+Ml0sMHxmZVtFcj4+MF0sMCxjLGwpKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoMCE9KDB8YVt1cj4+''@;'; put 'put ''Ml0pJiYwIT0oMHwoZnc9MHxhW2ZyPj4yXSkpKXtzd2l0Y2goMHxmZVtmdz4+MF0pe2Nhc2UgNDA6az0xMDg7YnJlYWs7Y2FzZSA3ODo3OT09KDB8ZmVbZncrMT4+MF0pJiYoaz0xMDgpfWlmKDEwOD09KDB8aykpe2lmKGs9MCwoMHwoQT0wfGFbcWU+PjJdKSk9PSgwfGFbSnI+PjJdKSl7aWYo''@;'; put 'put ''ISgoMHx2bChIZSkpPDwyND4+MjQpKXtBPTEsaz0yODA7YnJlYWsgZX1BPTB8YVtxZT4+Ml19aWYoYVtxZT4+Ml09QSsxLGZlW0E+PjBdPTQxLCgwfChBPTB8YVtxZT4+Ml0pKT09KDB8YVtKcj4+Ml0pKXtpZighKCgwfHZsKEhlKSk8PDI0Pj4yNCkpe0E9MSxrPTI4MDticmVhayBlfUE9MHxh''@;'; put 'put ''W3FlPj4yXX1hW3FlPj4yXT1BKzEsZmVbQT4+MF09MCxhW2ZyPj4yXT1hW3J0Pj4yXSxhW3J0Pj4yXT1hW3FlPj4yXX1hW0c+PjJdPU0saHZbMTUmYVt1cj4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2FbSG4+PjJdPj4yXSwwfGFbYVtIcj4+Ml0+PjJdLDB8YVtmcj4+Ml0sYywzOD09KDB8bSkmMSks''@;'; put 'put ''Q2YoSGUpLEE9RH1lbHNlIGs9Mjc1fWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSAxMjppZigwfGZlW3N0Pj4wXSl7aWYoQT0wfENfKGwsRCxNKyhBPTB8YVtEKzY0Pj4yXSl8MCwwLUErKDB8YVtMbD4+Ml0pfDApLGY9MHxhW0xyPj4yXSwoYz0wfGFba3Q+PjJdKT8oYVtjKzQ+PjJdPWYsYVs4Kygw''@;'; put 'put ''fGFba3Q+PjJdKT4+Ml09KDB8YVtsMD4+Ml0pLSgwfGFbTHI+PjJdKSxhW0xyPj4yXT1hW2wwPj4yXSwwfGFbYnQ+PjJdPyhhW0c+PjJdPU0sbFNbMCZhW2J0Pj4yXV0oMHxhW2hjPj4yXSwwfGFbKGM9MHxhW2t0Pj4yXSk+PjJdLDB8WHRbYyszMz4+MF0sMHxhW2MrND4+Ml0sMHxhW2MrOD4+''@;'; put 'put ''Ml0sMHxhW204Pj4yXSwwLDAsMCksYz0wKTpjPTEpOihhW2wwPj4yXT1mLGM9MSksQSl7az0yODA7YnJlYWsgZX1BPWMsaz0yNzR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDU6aWYoZmVbYXQ+PjBdPTAsZmVbdGY+PjBdPTEsMHxhW0xlPj4yXSl7aWYoaz0wfGIyKEhlLEQsTSsoaz0wfGFbRCs2''@;'; put 'put ''ND4+Ml0pfDAsMC1rKygwfGFbTGw+PjJdKXwwKSxhW1JlPj4yXT1rLCFrKXtBPTEsaz0yODA7YnJlYWsgZX1hW3J0Pj4yXT1hW3FlPj4yXSxBPTB9ZWxzZSBhW1JlPj4yXT03NTM5NSxBPTE7aWYoMD09KDB8ZmVbZzg+PjBdKSYmMD09KDB8YVtTbj4+Ml0pJiYwfChzUz0wfGFbZHY+PjJdKSYm''@;'; put 'put ''MD09KDB8X29bNjMmc1NdKDB8YVtoYz4+Ml0pKSl7QT0yMixrPTI4MDticmVhayBlfWlmKDB8YVtrdD4+Ml0paz0xMzM7ZWxzZXtpZihjPTB8XzEobCxTdCw3NTM5NSwzNiksYVtrdD4+Ml09YywhYyl7QT0xLGs9MjgwO2JyZWFrIGV9YVtjKzI0Pj4yXT0wLGs9MTMzfWJyZWFrO2Nhc2UgMTM6''@;'; put 'put ''QT0xLGs9MTMzO2JyZWFrO2Nhc2UgMTU6MCE9KDB8ZmVbc3Q+PjBdKSYmMCE9KDB8YVtrdD4+Ml0pJiYwIT0oMHxhW2J0Pj4yXSk/KGFbRz4+Ml09TSxsU1swJmFbYnQ+PjJdXSgwfGFbaGM+PjJdLDB8YVsoQT0wfGFba3Q+PjJdKT4+Ml0sMHxYdFtBKzMzPj4wXSwwLDAsMHxhW0ErMjA+PjJd''@;'; put 'put ''LDB8YVtBKzE2Pj4yXSwwfGFbQSsyND4+Ml0sMCksQT1EKTprPTI3NTticmVhaztjYXNlIDE2OmlmKDAhPSgwfGZlW3N0Pj4wXSkmJjAhPSgwfGFba3Q+PjJdKSl7aWYobT0wfGIyKEV0LEQsTSwwfGFbTGw+PjJdKSxhWzI4KygwfGFba3Q+PjJdKT4+Ml09bSwhKDB8YVsyOCsoMHxhW2t0Pj4y''@;'; put 'put ''XSk+PjJdKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoYVtjdD4+Ml09YVtadD4+Ml0sMHxhW1ZpPj4yXSl7YVtHPj4yXT1NLGh2WzE1JmFbVmk+PjJdXSgwfGFbaGM+PjJdLDB8YVsoQT0wfGFba3Q+PjJdKT4+Ml0sMHxhW0ErMjA+PjJdLDB8YVtBKzE2Pj4yXSwwfGFbQSsyND4+Ml0sMHxhW0Er''@;'; put 'put ''Mjg+PjJdKSxBPUQ7YnJlYWsgdH0wfGFbYnQ+PjJdPyhhW0c+PjJdPU0sbFNbMCZhW2J0Pj4yXV0oMHxhW2hjPj4yXSwwfGFbKEE9MHxhW2t0Pj4yXSk+PjJdLDAsMCwwLDB8YVtBKzIwPj4yXSwwfGFbQSsxNj4+Ml0sMHxhW0ErMjQ+PjJdLDB8YVtBKzI4Pj4yXSksQT1EKTprPTI3NX1lbHNl''@;'; put 'put ''IGs9Mjc1O2JyZWFrO2Nhc2UgOTppZigwfG1pWzYzJmFbRCs0ND4+Ml1dKEQsTSwwfGFbTGw+PjJdKSl7YVtrdD4+Ml09MCxrPTI3NTticmVhayB0fWlmKCEoMHxmZVtzdD4+MF0pKXthW1p0Pj4yXT1hW2N0Pj4yXSxhW2t0Pj4yXT0wLGs9Mjc1O2JyZWFrIHR9aWYoIShBPTB8YjIoRXQsRCxN''@;'; put 'put ''LDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoYz0wfF8xKGwscSxBLDM2KSxhW2t0Pj4yXT1jLCFjKXtBPTEsaz0yODA7YnJlYWsgZX1pZigoMHxhW2M+PjJdKSE9KDB8QSkpe2FbWnQ+PjJdPWFbY3Q+PjJdLGFba3Q+PjJdPTAsaz0yNzU7YnJlYWsgdH1hW2N0Pj4yXT1hW1p0''@;'; put 'put ''Pj4yXSxhWzI0KygwfGFba3Q+PjJdKT4+Ml09MCxmZVszMysoMHxhW2t0Pj4yXSk+PjBdPTAsZmVbMzQrKDB8YVtrdD4+Ml0pPj4wXT0xJigxXihBPTB8YVtPaT4+Ml0/MTowIT0oMHxhW3YxPj4yXSkpKSwwfGFbYnQ+PjJdP0E9RDprPTI3NTticmVhaztjYXNlIDEwOmlmKCEoMHxmZVtzdD4+''@;'; put 'put ''MF0pKXthW1p0Pj4yXT1hW2N0Pj4yXSxhW2t0Pj4yXT0wLGs9Mjc1O2JyZWFrIHR9aWYoIShBPTB8YjIoRXQsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoYz0wfF8xKGwsU3QsQSwzNiksYVtrdD4+Ml09YywhYyl7QT0xLGs9MjgwO2JyZWFrIGV9aWYoKDB8YVtjPj4y''@;'; put 'put ''XSkhPSgwfEEpKXthW1p0Pj4yXT1hW2N0Pj4yXSxhW2t0Pj4yXT0wLGs9Mjc1O2JyZWFrIHR9YVtjdD4+Ml09YVtadD4+Ml0sYVsyNCsoMHxhW2t0Pj4yXSk+PjJdPTAsZmVbMzMrKDB8YVtrdD4+Ml0pPj4wXT0xLGZlWzM0KygwfGFba3Q+PjJdKT4+MF09MSYoMV4oQT0wfGFbT2k+PjJdPzE6''@;'; put 'put ''MCE9KDB8YVt2MT4+Ml0pKSksMHxhW2J0Pj4yXT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSAxODppZihhW1JvPj4yXT0wLGFbbG8+PjJdPTAsMHxhW1RhPj4yXSl7aWYoTT0wfGIyKEhlLEQsTSwwfGFbTGw+PjJdKSxhW2xvPj4yXT1NLCFNKXtBPTEsaz0yODA7YnJlYWsgZX1hW3J0Pj4yXT1hW3Fl''@;'; put 'put ''Pj4yXSxBPUR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDIxOmlmKCEoMHxxMFsxMjcmYVtEKzUyPj4yXV0oRCxNLDB8YVtMbD4+Ml0sUikpKXtBPTMyLGs9MjgwO2JyZWFrIGV9aWYoMHxhW2xvPj4yXSl7aWYoIShBPTB8YjIoSGUsRCxNKyhBPTB8YVtEKzY0Pj4yXSl8MCwwLUErKDB8YVtMbD4+''@;'; put 'put ''Ml0pfDApKSl7QT0xLGs9MjgwO2JyZWFrIGV9Y0EoQSksYVtSbz4+Ml09QSxhW3J0Pj4yXT1hW3FlPj4yXSxBPUR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDE5OmlmKDAhPSgwfGFbbG8+PjJdKSYmMCE9KDB8YVtUYT4+Ml0pKXtpZighKEE9MHxiMihIZSxELE0rKEE9MHxhW0QrNjQ+PjJdKXww''@;'; put 'put ''LDAtQSsoMHxhW0xsPj4yXSl8MCkpKXtBPTEsaz0yODA7YnJlYWsgZX1hW0c+PjJdPU0scDhbMTUmYVtUYT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2xvPj4yXSwwfGFbbTg+PjJdLEEsMHxhW1JvPj4yXSksQT0wfWVsc2UgQT0xO0NmKEhlKSxrPTI3NDticmVhaztjYXNlIDIwOjAhPSgwfGFbUm8+''@;'; put 'put ''PjJdKSYmMCE9KDB8YVtUYT4+Ml0pPyhhW0c+PjJdPU0scDhbMTUmYVtUYT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2xvPj4yXSwwfGFbbTg+PjJdLDAsMHxhW1JvPj4yXSksQT0wKTpBPTEsQ2YoSGUpLGs9Mjc0O2JyZWFrO2Nhc2UgNTg6aWYoMHxhW2JlPj4yXSYmXzIobCxELE0sMHxhW0xsPj4y''@;'; put 'put ''XSksMHwoQT0wfGhBKGwsRCxMbCxwLHcsYikpKXtrPTI4MDticmVhayBlfWlmKCEoMHxhW0xsPj4yXSkpe2s9MTg5O2JyZWFrIGV9QT1EO2JyZWFrO2Nhc2UgNDQ6QT0wfGFbZ2E+PjJdO2Rve2lmKCgwfGFbWmE+PjJdKT4+PjA+PUE+Pj4wKXtpZighQSl7aWYobT0wfGFbejI+PjJdLGFbZ2E+''@;'; put 'put ''PjJdPTMyLG09MHxfb1s2MyZtXSgzMiksYVt4aT4+Ml09bSxtKWJyZWFrO2s9MTk4O2JyZWFrIGV9aWYoZj0wfGFbRzI+PjJdLG09MHxhW3hpPj4yXSxhW2dhPj4yXT1BPDw9MSwhKEE9MHxCaVsxMjcmZl0obSxBKSkpe2s9MTkzO2JyZWFrIGV9aWYoYVt4aT4+Ml09QSwwfChBPTB8YVtvcz4+''@;'; put 'put ''Ml0pKXtpZighKEE9MHxCaVsxMjcmYVtHMj4+Ml1dKEEsYVtnYT4+Ml08PDIpKSl7QT0xLGs9MjgwO2JyZWFrIGV9YVtvcz4+Ml09QX19fXdoaWxlKDApO2lmKGZlWygwfGFbeGk+PjJdKSsoMHxhW1phPj4yXSk+PjBdPTAsMHxmZVtEbD4+MF0pe2lmKCgwfChBPTB8ZngobCkpKTwwKXtBPTEs''@;'; put 'put ''az0yODA7YnJlYWsgZX1hWygwfGFbb3M+PjJdKSsoYVtvbD4+Ml08PDIpPj4yXT1BLGFbb2w+PjJdPTErKDB8YVtvbD4+Ml0pLGFbKDB8YVtMMD4+Ml0pKygyOCpBfDApPj4yXT02LDB8YVt4YT4+Ml0/QT1EOms9Mjc1fWVsc2Ugaz0yNzU7YnJlYWs7Y2FzZSA1MDppZigxMjQ9PSgwfGZlWyhB''@;'; put 'put ''PSgwfGFbeGk+PjJdKSsoMHxhW1phPj4yXSl8MCk+PjBdKSl7QT0yLGs9MjgwO2JyZWFrIGV9ZmVbQT4+MF09NDQsMCE9KDB8ZmVbRGw+PjBdKSYmMCE9KDB8YVt4YT4+Ml0pP0E9RDprPTI3NTticmVhaztjYXNlIDQ5OmlmKChBPTB8ZmVbKGY9MHxhW3hpPj4yXSkrKGM9MHxhW1phPj4yXSk+''@;'; put 'put ''PjBdKTw8MjQ+PjI0PT00NCl7QT0yLGs9MjgwO2JyZWFrIGV9QTw8MjQ+PjI0PT0wJjAhPSgwfGZlW0RsPj4wXSkmJjMhPSgwfGFbKHVTPSgwfGFbTDA+PjJdKSsoMjgqKDB8YVsoMHxhW29zPj4yXSkrKCgwfGFbb2w+PjJdKS0xPDwyKT4+Ml0pfDApfDApPj4yXSk/KGFbdVM+PjJdPTUsQT0w''@;'; put 'put ''PT0oMHxhW3hhPj4yXSkmMSxmPTB8YVt4aT4+Ml0sYz0wfGFbWmE+PjJdKTpBPTEsZmVbZitjPj4wXT0xMjQsaz0yNzQ7YnJlYWs7Y2FzZSA1OTpjYXNlIDYwOmlmKGZlW3RmPj4wXT0xLDB8YVtTbj4+Ml0pe2lmKCEoYz0wfGIyKEV0LEQsTSsoYz0wfGFbRCs2ND4+Ml0pfDAsMC1jKygwfGFb''@;'; put 'put ''TGw+PjJdKXwwKSkpe0E9MSxrPTI4MDticmVhayBlfWY9MHxfMShsLFN0LGMsMCksYVtadD4+Ml09YVtjdD4+Ml07ZG97aWYoMHxhW0ZmPj4yXSl7aWYoMHxmZVtnOD4+MF0pe2lmKDB8YVt2MT4+Ml0pe2s9MjE5O2JyZWFrfX1lbHNlIGlmKDB8ZmVbdGY+PjBdKXtrPTIxOTticmVha31pZigh''@;'; put 'put ''Zil7QT0xMSxrPTI4MDticmVhayBlfWlmKCEoMHxmZVtmKzM0Pj4wXSkpe0E9MjQsaz0yODA7YnJlYWsgZX19ZWxzZSBrPTIxOX13aGlsZSgwKTtpZigyMTk9PSgwfGspJiYoaz0wLDA9PSgwfGYpKSl7aWYoZmVbc3Q+PjBdPTB8ZmVbZzg+PjBdLDYwIT0oMHxtKSl7az0yNzU7YnJlYWsgdH1p''@;'; put 'put ''ZighKEE9MHxhW1BhPj4yXSkpe2s9Mjc1O2JyZWFrIHR9ZGxbMTI3JkFdKDB8YVtoYz4+Ml0sYywxKSxBPUQ7YnJlYWsgdH1pZigwfGZlWyhBPWYrMzJ8MCk+PjBdKXtBPTEyLGs9MjgwO2JyZWFrIGV9aWYoMHxhW2YrND4+Ml0pe2lmKGM9MD09KDB8KEE9MHxoeChsLGYsNjA9PSgwfG0pJjEp''@;'; put 'put ''KSkpe0E9MSYoMV5jKSxrPTI3NDticmVhayB0fWs9MjgwO2JyZWFrIGV9aWYoISgwfGFbcTE+PjJdKSl7ZmVbc3Q+PjBdPTB8ZmVbZzg+PjBdLGs9Mjc1O2JyZWFrIHR9aWYoZmVbeHA+PjBdPTAsZmVbQT4+MF09MSxtPTA9PSgwfFIyWzEyNyZhW3ExPj4yXV0oMHxhW0JMPj4yXSwwLDB8YVtm''@;'; put 'put ''KzIwPj4yXSwwfGFbZisxNj4+Ml0sMHxhW2YrMjQ+PjJdKSksZmVbQT4+MF09MCxtKXtBPTIxLGs9MjgwO2JyZWFrIGV9aWYoYz0wfGZlW2c4Pj4wXSwhKDB8ZmVbeHA+PjBdKSl7ZmVbc3Q+PjBdPWMsQT1EO2JyZWFrIHR9QT0wfWVsc2UgZmVbc3Q+PjBdPWM9MHxmZVtnOD4+MF0sQT0xO2lm''@;'; put 'put ''KGM8PDI0Pj4yND09MCYmMCE9KDB8KGNTPTB8YVtkdj4+Ml0pKSYmMD09KDB8X29bNjMmY1NdKDB8YVtoYz4+Ml0pKSl7QT0yMixrPTI4MDticmVhayBlfWs9Mjc0O2JyZWFrO2Nhc2UgNDA6aWYoMHxhW3hhPj4yXSl7aWYoTT0wfE9tKGwsRCxNLDB8YVtMbD4+Ml0pLGFbSG4+PjJdPU0sIU0p''@;'; put 'put ''e0E9MSxrPTI4MDticmVhayBlfWFbb2w+PjJdPTAsYVtXMj4+Ml09MCxmZVtEbD4+MF09MSxBPUR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDQyOmNhc2UgNDE6aWYoMHxmZVtEbD4+MF0pe2lmKDB8YVt4YT4+Ml0pe2lmKCEoQT0wfF9vWzYzJmFbejI+PjJdXSgyMCkpKXtBPTEsaz0yODA7YnJl''@;'; put 'put ''YWsgZX1hWyhrPUErNHwwKT4+Ml09MCxhW2srND4+Ml09MCxhW2srOD4+Ml09MCxhW2srMTI+PjJdPTAsYVtBPj4yXT00MT09KDB8bSk/MjoxLGFbRz4+Ml09TSxkbFsxMjcmYVt4YT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2FbSG4+PjJdPj4yXSxBKSxBPTB9ZWxzZSBBPTE7ZmVbRGw+PjBdPTAs''@;'; put 'put ''az0yNzR9ZWxzZSBrPTI3NTticmVhaztjYXNlIDQzOjAhPSgwfGZlW0RsPj4wXSkmJihhWygwfGFbTDA+PjJdKSsoMjgqKDB8YVsoMHxhW29zPj4yXSkrKCgwfGFbb2w+PjJdKS0xPDwyKT4+Ml0pfDApPj4yXT0zLDAhPSgwfGFbeGE+PjJdKSk/QT1EOms9Mjc1O2JyZWFrO2Nhc2UgNTE6Yz0w''@;'; put 'put ''LGs9MjQ3O2JyZWFrO2Nhc2UgNTM6Yz0xLGs9MjQ3O2JyZWFrO2Nhc2UgNTI6Yz0yLGs9MjQ3O2JyZWFrO2Nhc2UgNTQ6Yz0zLGs9MjQ3O2JyZWFrO2Nhc2UgNDU6Zj0wLGs9MjU4O2JyZWFrO2Nhc2UgNDc6Zj0xLGs9MjU4O2JyZWFrO2Nhc2UgNDY6Zj0yLGs9MjU4O2JyZWFrO2Nhc2UgNDg6''@;'; put 'put ''Zj0zLGs9MjU4O2JyZWFrO2Nhc2UgNTU6aWYoISgwfGRBKGwsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9QT1EO2JyZWFrO2Nhc2UgNTY6aWYoISgwfFNfKGwsRCxNLDB8YVtMbD4+Ml0pKSl7QT0xLGs9MjgwO2JyZWFrIGV9QT1EO2JyZWFrO2Nhc2UgMDoxND09KDB8Yyk/''@;'; put 'put ''QT1EOms9Mjc1O2JyZWFrO2Nhc2UgMzowfGFbTGU+PjJdP0E9RDprPTI3NTticmVhaztjYXNlIDExOjAhPSgwfGZlW3N0Pj4wXSkmJjAhPSgwfGFbYnQ+PjJdKT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSAxNzowfGFbVGE+PjJdP0E9RDprPTI3NTticmVhaztjYXNlIDMzOjAhPSgwfGZlW3N0Pj4w''@;'; put 'put ''XSkmJjAhPSgwfGFbdXI+PjJdKT9BPUQ6az0yNzU7YnJlYWs7Y2FzZSAzOTowfGFbeGE+PjJdP0E9RDprPTI3NTticmVhaztkZWZhdWx0Oms9Mjc1fX13aGlsZSgwKTtpZigzMz09KDB8aykpe2lmKCEoMHxxMFsxMjcmYVtEKzUyPj4yXV0oRCxNLDB8YVtMbD4+Ml0sUikpKXtBPTMyLGs9Mjgw''@;'; put 'put ''O2JyZWFrfUE9MSxrPTM0fWVsc2UgaWYoODA9PSgwfGspKWs9MCwwIT0oMHxmZVtzdD4+MF0pJiYwIT0oMHxhW3VyPj4yXSk/QT1EOms9Mjc1O2Vsc2UgaWYoMTMzPT0oMHxrKSlpZihrPTAsMCE9KDB8ZmVbc3Q+PjBdKSYmMCE9KDB8YVtrdD4+Ml0pKXtpZihjPTB8YjIoRXQsRCxNKyhjPTB8''@;'; put 'put ''YVtEKzY0Pj4yXSl8MCwwLWMrKDB8YVtMbD4+Ml0pfDApLGFbMTYrKDB8YVtrdD4+Ml0pPj4yXT1jLCEoMHxhWzE2KyhjPTB8YVtrdD4+Ml0pPj4yXSkpe0E9MSxrPTI4MDticmVha31hW2MrMjA+PjJdPWFbbTg+PjJdLGFbY3Q+PjJdPWFbWnQ+PjJdLDEzPT0oMHxtKSYwIT0oMHxhW2J0Pj4y''@;'; put 'put ''XSk/QT1EOms9Mjc0fWVsc2Ugaz0yNzQ7ZWxzZSBpZigyNDc9PSgwfGspKWlmKGs9MCwwfGZlW0RsPj4wXSl7aWYoQT0wfGFbTGw+PjJdLGMmJihBPUErKDAtKDB8YVtEKzY0Pj4yXSkpfDApLCgwfChmPTB8ZngobCkpKTwwKXtBPTEsaz0yODA7YnJlYWt9aWYoYVsoMHxhW0wwPj4yXSkrKDI4''@;'; put 'put ''KmZ8MCk+PjJdPTQsYVsoMHxhW0wwPj4yXSkrKDI4KmZ8MCkrND4+Ml09YywhKEE9MHxPbShsLEQsTSxBKSkpe0E9MSxrPTI4MDticmVha31hWygwfGFbTDA+PjJdKSsoMjgqZnwwKSs4Pj4yXT1jPTB8YVtBPj4yXSxBPTA7ZG97bT1BLEE9QSsxfDB9d2hpbGUoMCE9KDB8ZmVbYyttPj4wXSkp''@;'; put 'put ''O2FbcWE+PjJdPSgwfGFbcWE+PjJdKStBLDB8YVt4YT4+Ml0/QT1EOms9Mjc1fWVsc2Ugaz0yNzU7ZWxzZSBpZigyNTg9PSgwfGspKWlmKDB8ZmVbRGw+PjBdKWlmKEE9MSYoYz0wPT0oMHxhW3hhPj4yXSkpLGFbb2w+PjJdPWs9KDB8YVtvbD4+Ml0pLTF8MCxhWygwfGFbTDA+PjJdKSsoMjgq''@;'; put 'put ''KDB8YVsoMHxhW29zPj4yXSkrKGs8PDIpPj4yXSl8MCkrND4+Ml09ZiwwfGFbb2w+PjJdKWs9Mjc0O2Vsc2V7aWYoIWMpe2lmKCEoYz0wfGtfKGwpKSl7QT0xLGs9MjgwO2JyZWFrfWFbRz4+Ml09TSxkbFsxMjcmYVt4YT4+Ml1dKDB8YVtoYz4+Ml0sMHxhW2FbSG4+PjJdPj4yXSxjKX1mZVtE''@;'; put 'put ''bD4+MF09MCxhW3FhPj4yXT0wLGs9Mjc0fWVsc2Ugaz0yNzU7aWYoMzQ9PSgwfGspKWlmKGs9MCwwIT0oMHxmZVtzdD4+MF0pJiYwIT0oMHxhW2t0Pj4yXSkpe2lmKCEoYz0wfGIyKEV0LEQsTSsoYz0wfGFbRCs2ND4+Ml0pfDAsMC1jKygwfGFbTGw+PjJdKXwwKSkpe0E9MSxrPTI4MDticmVh''@;'; put 'put ''a31jQShjKSxhWzI0KygwfGFba3Q+PjJdKT4+Ml09YyxhW2N0Pj4yXT1hW1p0Pj4yXSwxND09KDB8bSkmMCE9KDB8YVtidD4+Ml0pP0E9RDprPTI3NH1lbHNlIGs9Mjc0O3N3aXRjaCgyNzQ9PSgwfGspJiYoaz0wLEE8PDI0Pj4yND9rPTI3NTpBPUQpLDI3NT09KDB8aykmJihrPTAsMHxhW2Jl''@;'; put 'put ''Pj4yXSYmXzIobCxELE0sMHxhW0xsPj4yXSksQT1EKSwwfGFbT2U+PjJdKXtjYXNlIDM6az0yNzg7YnJlYWsgZTtjYXNlIDI6QT0zNSxrPTI4MDticmVhayBlfUQ9QSxNPWM9MHxhW0xsPj4yXSxjPTB8cTBbMTI3JmFbQT4+Ml1dKEEsYyxwLExsKX1lOnN3aXRjaCgwfGspe2Nhc2UgNzphW3c+''@;'; put 'put ''PjJdPU0sQT0wO2JyZWFrO2Nhc2UgOTphW1I+PjJdPWYsQT00O2JyZWFrO2Nhc2UgMTA6aWYoIShBPSgwfEQpPT0oMHxhW3BlPj4yXSkpJiYwPT0oMHxmZVsyMCsoMHxhW3YxPj4yXSk+PjBdKSl7YVt3Pj4yXT1NLEE9MDticmVha30wIT0oMHxmZVtsKzQ4ND4+MF0pfDFeQT8tMT09KDB8UjJb''@;'; put 'put ''MTI3JmFbRXA+PjJdXShFcCwtNCxwLHAsRCkpP0E9Mjk6KGFbdz4+Ml09TSxBPTApOkE9MzticmVhaztjYXNlIDU4OmRve2lmKDB8ZmVbYXQ+PjBdJiYoQ2ZlPTB8ZmVbdGY+PjBdLGZlW3RmPj4wXT0xLDB8YVtTbj4+Ml0pJiYwfGFbcTE+PjJdKXtpZighKEE9MHxfMShsLFN0LDc1Mzk1LDM2''@;'; put 'put ''KSkpe0E9MTticmVhayBlfWlmKGFbKExsPUErMjB8MCk+PjJdPWFbbTg+PjJdLGZlW3hwPj4wXT0wLCEoMHxSMlsxMjcmYVtxMT4+Ml1dKDB8YVtCTD4+Ml0sMCwwfGFbTGw+PjJdLDB8YVtBKzE2Pj4yXSwwfGFbQSsyND4+Ml0pKSl7QT0yMTticmVhayBlfWlmKCEoMHxmZVt4cD4+MF0pKXtm''@;'; put 'put ''ZVt0Zj4+MF09Q2ZlO2JyZWFrfWlmKDA9PSgwfGZlW2c4Pj4wXSkmJjB8KG9xPTB8YVtkdj4+Ml0pJiYwPT0oMHxfb1s2MyZvcV0oMHxhW2hjPj4yXSkpKXtBPTIyO2JyZWFrIGV9fX13aGlsZSgwKTthW2wrMjc2Pj4yXT01OCxBPTB8d18obCxNLHAsdyk7YnJlYWs7Y2FzZSAxODQ6QT0yOD09''@;'; put 'put ''KDB8Yyk/MTA6MTI9PSgwfGMpPzE3OjI7YnJlYWs7Y2FzZSAxODk6YVtsKzI3Nj4+Ml09NTksQT0wO2JyZWFrO2Nhc2UgMTkzOmFbZ2E+PjJdPSgwfGFbZ2E+PjJdKT4+PjEsQT0xO2JyZWFrO2Nhc2UgMTk4OmFbZ2E+PjJdPTAsQT0xO2JyZWFrO2Nhc2UgMjc4OmFbdz4+Ml09YVtMbD4+Ml0s''@;'; put 'put ''QT0wfXJldHVybiBsZT1hcSwwfEF9ZnVuY3Rpb24gdXgobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgYixELFIsRyxxLG09MCxBPTAsdz0wLGs9MCxNPTA7cT1sZSxsZT1sZSszMnwwLE09cSsxMnwwLHc9cSs4fDAsYj1xKzR8MCxrPXEsYVsoRz1xKzE2fDApPj4yXT0wLGFbTT4+''@;'; put 'put ''Ml09MCxhW3c+PjJdPTAsYVtrPj4yXT0tMSxEPWwrMTQ0fDAsUj1sKzI4NHwwLG09MCE9KDB8Yyk7ZTpkb3tpZigwfEtqWzMmKGZlW2wrMjMyPj4wXTw8MjQ+PjI0PzI6MSldKGMsMHxhW0Q+PjJdLGYscCxSLHcsYixHLE0saykpe2lmKDE9PSgwfGFbaz4+Ml0pJigxXm0pJiYoZmVbMTMwKygw''@;'; put 'put ''fGFbbCszNTI+PjJdKT4+MF09MSwxPT0oMHxhWyhBPWwrNDg4fDApPj4yXSkpJiYoYVtBPj4yXT0wKSwwfGFbKEE9bCsxNDB8MCk+PjJdKXtpZihjPTB8YVtHPj4yXSl7aWYoIShjPTB8YjIobCs0MzZ8MCxwPTB8YVtEPj4yXSxjLGMrKDB8QmlbMTI3JmFbcCsyOD4+Ml1dKHAsYykpfDApKSl7''@;'; put 'put ''Yz0xO2JyZWFrfWFbbCs0NTI+PjJdPWFbbCs0NDg+PjJdfWVsc2UgYz0wO2lmKG09MHxhW3c+PjJdKXtpZighKG09MHxiMihsKzQzNnwwLHc9MHxhW0Q+PjJdLG0sMC0oMHxhW3crNjQ+PjJdKSsoMHxhW2I+PjJdKXwwKSkpe2M9MTticmVha319ZWxzZSBtPTA7UmNbMzEmYVtBPj4yXV0oMHxh''@;'; put 'put ''W2wrND4+Ml0sbSxjLDB8YVtrPj4yXSksZj1tfWVsc2UgMHxhW2wrODA+PjJdPyhfMihsLDB8YVtEPj4yXSxmLHApLGY9MCxjPTApOihmPTAsYz0wKTtkb3tpZighKDB8YVtsKzIyOD4+Ml0pKXtpZihBPW09MHxhW00+PjJdLDB8bSl7aWYoKDB8KGs9MHxhW20rNjQ+PjJdKSk9PSgwfGFbNjQr''@;'; put 'put ''KE09MHxhW0Q+PjJdKT4+Ml0pJiYyIT0oMHxrKXwoMHxtKT09KDB8TSkpe2FbRD4+Ml09QTticmVha31hW1I+PjJdPWFbRz4+Ml0sYz0xOTticmVhayBlfWlmKDB8KG09MHxhW0c+PjJdKSl7aWYoQT1sKzQzNnwwLCFjJiYhKGM9MHxiMihBLGM9MHxhW0Q+PjJdLG0sbSsoMHxCaVsxMjcmYVtj''@;'; put 'put ''KzI4Pj4yXV0oYyxtKSl8MCkpKXtjPTE7YnJlYWsgZX1pZihjPTB8SG0obCxjKSxDZihBKSwxOCE9KDB8YykpYnJlYWsgZTthW1I+PjJdPWFbRz4+Ml0sYz0xODticmVhayBlfX19d2hpbGUoMCk7MCE9KDB8Yyl8MCE9KDB8ZikmJkNmKGwrNDM2fDApLGM9MH1lbHNlIGM9bT8zMTozMH13aGls''@;'; put 'put ''ZSgwKTtyZXR1cm4gbGU9cSwwfGN9ZnVuY3Rpb24gYjIobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtkb3tpZigwfGZBKGwsYyxmLHApKXtpZigoMHwoYz0wfGFbKGY9bCsxMnwwKT4+Ml0pKT09KDB8YVtsKzg+PjJdKSl7aWYoISgoMHx2bChsKSk8PDI0Pj4yNCkpe2M9MDticmVha31j''@;'; put 'put ''PTB8YVtmPj4yXX1hW2Y+PjJdPWMrMSxmZVtjPj4wXT0wLGM9MHxhW2wrMTY+PjJdfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gQ2YobCl7dmFyIHAsYz0wLGY9MCxtPTAsQT0wO2M9MHxhWyhwPTQrKGx8PTApfDApPj4yXTtlOmRve2lmKGMpZm9yKGY9MHxhW2w+PjJd''@;'; put 'put ''Ozspe2lmKCFmKXtjPWw7YnJlYWsgZX1BPTB8YVtmPj4yXSxhW2Y+PjJdPWMsYVtwPj4yXT1mLG09ZixmPUEsYz1tfWVsc2UgYVtwPj4yXT1hW2w+PjJdLGM9bH13aGlsZSgwKTthW2M+PjJdPTAsYVtsKzE2Pj4yXT0wLGFbbCsxMj4+Ml09MCxhW2wrOD4+Ml09MH1mdW5jdGlvbiBfMShsLGMs''@;'; put 'put ''ZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTA7UmU9OCsoY3w9MCl8MDtlOmRve2lmKDB8YVtSZT4+Ml0pe2ZvcihMZT0wfHdBKGwsZiksaz0wfGFbYz4+Ml0sTT1M''@;'; put 'put ''ZSYwLShiPTB8YVtSZT4+Ml0pLE9lPWMrNHwwLEQ9KHc9YistMXwwKT4+PjIsQT0wLHcmPUxlO209MHxhW2srKHc8PDIpPj4yXTspe2lmKCgwfEZtKGYsMHxhW20+PjJdKSk8PDI0Pj4yNClicmVhayBlO0E9bT1BPDwyND4+MjQ/QToyNTUmKE0+Pj4oKDB8WHRbT2U+PjBdKS0xfDApJkR8MSks''@;'; put 'put ''dz13LShiZT0yNTUmbSkrKHc+Pj4wPGJlPj4+MD9iOjApfDB9aWYocCl7aWYoISgoMHxhW2MrMTI+PjJdKT4+PigobT0yNTUmKEE9MHxmZVtPZT4+MF0pKS0xfDApKSl7bT1jKzE2fDAsQT1jLFI9Mjc7YnJlYWt9aWYocT1tKzEmMjU1LHBlPShnZT0xPDwodz1BKzEmMjU1KSktMXwwLGJlPTB8''@;'; put 'put ''X29bNjMmYVthWyhtPWMrMTZ8MCk+PjJdPj4yXV0oQT1nZTw8Mikpe2Zvcih1MigwfGJlLDAsMHxBKSxHPTAtZ2V8MCxEPXcrLTF8MCxSPXBlPj4+MixNPTA7IShNPj4+MD49KDB8YVtSZT4+Ml0pPj4+MCk7KXtpZigwfChBPTB8YVsoMHxhW2M+PjJdKSsoTTw8Mik+PjJdKSl7Zm9yKGI9MjU1''@;'; put 'put ''JigoKEE9MHx3QShsLDB8YVtBPj4yXSkpJkcpPj4+RCZSfDEpLEEmPXBlLHc9MDswfGFbKGs9YmUrKEE8PDIpfDApPj4yXTspQT1BKyhBPj4+MDwoSGU9MjU1JihrPXc8PDI0Pj4yND09MD9iOncpKT4+PjA/Z2U6MCktSGV8MCx3PWs7YVtrPj4yXT1hWygwfGFbYz4+Ml0pKyhNPDwyKT4+Ml19''@;'; put 'put ''TT1NKzF8MH1mb3IoQ29bMTI3JmFbOCsoMHxhW20+PjJdKT4+Ml1dKDB8YVtjPj4yXSksYVtjPj4yXT1iZSxmZVtPZT4+MF09cSxhW1JlPj4yXT1nZSxiPTI1NSYoKExlJkcpPj4+RCZSfDEpLEE9cGUmTGUsdz0wOzspe2lmKCEoMHxhW2JlKyhBPDwyKT4+Ml0pKXt3PUEsQT1jLFI9Mjc7YnJl''@;'; put 'put ''YWsgZX1BPUErKEE+Pj4wPChSZT0yNTUmKEhlPXc8PDI0Pj4yND09MD9iOncpKT4+PjA/Z2U6MCktUmV8MCx3PUhlfX1lbHNlIG09MH1lbHNlIG09MH1lbHNle2lmKHApe2lmKGZlW2MrND4+MF09NixhW1JlPj4yXT02NCxBPTB8X29bNjMmYVthWyhtPWMrMTZ8MCk+PjJdPj4yXV0oMjU2KSxh''@;'; put 'put ''W2M+PjJdPUEsQSl7dTIoMHxBLDAsMjU2KSx3PTB8d0EobCxmKSx3Jj0oMHxhW1JlPj4yXSktMSxBPWMsUj0yNzticmVha31hW1JlPj4yXT0wLG09MDticmVha31tPTB9fXdoaWxlKDApO3JldHVybiAyNz09KDB8UikmJihtPTB8X29bNjMmYVthW20+PjJdPj4yXV0ocCksYVsoMHxhW0E+PjJd''@;'; put 'put ''KSsodzw8Mik+PjJdPW0sKG09MHxhWygwfGFbQT4+Ml0pKyh3PDwyKT4+Ml0pPyh1MigwfG0sMCwwfHApLGFbYVsoMHxhW0E+PjJdKSsodzw8Mik+PjJdPj4yXT1mLGFbKG09YysxMnwwKT4+Ml09MSsoMHxhW20+PjJdKSxtPTB8YVsoMHxhW0E+PjJdKSsodzw8Mik+PjJdKTptPTApLDB8bX1m''@;'; put 'put ''dW5jdGlvbiBjQShsKXt2YXIgYz0wLGY9MCxwPTA7Zm9yKHA9bHw9MCxjPWw7KGY9MHxmZVtwPj4wXSk8PDI0Pj4yNDspe3N3aXRjaChmPDwyND4+MjR8MCl7Y2FzZSAxMDpjYXNlIDEzOmNhc2UgMzI6KDB8YykhPSgwfGwpPzMyIT0oMHxmZVtjKy0xPj4wXSkmJihmZVtjPj4wXT0zMixjPWMr''@;'; put 'put ''MXwwKTpjPWw7YnJlYWs7ZGVmYXVsdDpmZVtjPj4wXT1mLGM9YysxfDB9cD1wKzF8MH0oMHxjKSE9KDB8bCkmJihsPTMyPT0oMHxmZVsobD1jKy0xfDApPj4wXSk/bDpjKSxmZVtsPj4wXT0wfWZ1bmN0aW9uIHdfKGwsYyxmLHApe3JldHVybiAwPT0oMHwoYz0wfEJtKGx8PTAsMCwwfGFbbCsx''@;'; put 'put ''NDQ+PjJdLGN8PTAsZnw9MCxwfD0wLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSkpKSYmKDB8eF8obCkpPDwyND4+MjQ9PTAmJihjPTEpLDB8Y31mdW5jdGlvbiBPbShsLGMsZixwKXt2YXIgQSxtPTA7Yz0wfGIyKDgwKyhBPTB8YVszNTIrKGx8PTApPj4yXSl8MCxjfD0wLGZ8PTAscHw9MCk7ZG97''@;'; put 'put ''aWYoMCE9KDB8YykmJjAhPSgwfChtPTB8XzEobCxBKzIwfDAsYywyNCkpKSlpZigoMHxhW20+PjJdKT09KDB8Yykpe2lmKGFbQSs5Nj4+Ml09YVtBKzkyPj4yXSwhKDB8SV8obCxtKSkpe209MDticmVha319ZWxzZSBhW0ErOTI+PjJdPWFbQSs5Nj4+Ml07ZWxzZSBtPTB9d2hpbGUoMCk7cmV0''@;'; put 'put ''dXJuIDB8bX1mdW5jdGlvbiBiXyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgayxNLEQsUixtPTAsQT0wLHc9MCxiPTA7az04MCsoRD0wfGFbMzUyKyhsfD0wKT4+Ml0pfDAsKDB8KEE9MHxhWyhSPUQrOTJ8MCk+PjJdKSk9PSgwfGFbKE09RCs4OHwwKT4+Ml0pPygwfHZsKGspKTw8MjQ+''@;'; put 'put ''PjI0PyhBPTB8YVtSPj4yXSx3PTQpOm09MDp3PTQ7ZTpkb3tpZig0PT0oMHx3KSlpZihhW1I+PjJdPUErMSxmZVtBPj4wXT0wLGM9MHxiMihrLGMsZixwKSwwIT0oMHxjKSYmKGI9YysxfDAsbT0wfF8xKGwsRCs0MHwwLGIsMTIpLDAhPSgwfG0pKSl7aWYoKDB8YVttPj4yXSkhPSgwfGIpKXth''@;'; put 'put ''W1I+PjJdPWFbRCs5Nj4+Ml07YnJlYWt9aWYoYVsodz1EKzk2fDApPj4yXT1BPTB8YVtSPj4yXSwwfGZlW2wrMjMyPj4wXSl7Zj0wfGZlW2I+PjBdO3Q6ZG97aWYoZjw8MjQ+PjI0PT0xMjApe2lmKDEwOT09KDB8ZmVbYysyPj4wXSkmJjEwOD09KDB8ZmVbYyszPj4wXSkmJjExMD09KDB8ZmVb''@;'; put 'put ''Yys0Pj4wXSkmJjExNT09KDB8ZmVbYys1Pj4wXSkpe3N3aXRjaCgwfGZlW2MrNj4+MF0pe2Nhc2UgMDpBPUQrMTUyfDA7YnJlYWs7Y2FzZSA1ODpBPTB8XzEobCxEKzYwfDAsYys3fDAsOCk7YnJlYWs7ZGVmYXVsdDpwPTAsYz0xMjA7YnJlYWsgdH1hW20rND4+Ml09QSxmZVttKzk+PjBdPTE7''@;'; put 'put ''YnJlYWsgZX1wPTAsYz0xMjB9ZWxzZSBwPTAsYz1mfXdoaWxlKDApO3Q6Zm9yKDs7KXtzd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDU4OmY9MDticmVhayB0fXA9Yz1wKzF8MCxjPTB8ZmVbYitjPj4wXX1mb3IoO2M9KDB8QSk9PSgwfGFbTT4+Ml0pLCEoKDB8Zik+PSgw''@;'; put 'put ''fHApKTspe2lmKGMpe2lmKCEoKDB8dmwoaykpPDwyND4+MjQpKXttPTA7YnJlYWsgZX1BPTB8YVtSPj4yXX1jPTB8ZmVbYitmPj4wXSxhW1I+PjJdPUErMSxmZVtBPj4wXT1jLGY9ZisxfDAsQT0wfGFbUj4+Ml19aWYoYyl7aWYoISgoMHx2bChrKSk8PDI0Pj4yNCkpe209MDticmVha31BPTB8''@;'; put 'put ''YVtSPj4yXX1pZihhW1I+PjJdPUErMSxmZVtBPj4wXT0wLEE9MHxfMShsLEQrNjB8MCwwfGFbdz4+Ml0sOCksYVttKzQ+PjJdPUEsQSl7aWYoKDB8YVtBPj4yXSk9PSgwfChjPTB8YVt3Pj4yXSkpKXthW3c+PjJdPWFbUj4+Ml07YnJlYWt9YVtSPj4yXT1jO2JyZWFrfW09MH19ZWxzZSBtPTB9''@;'; put 'put ''d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBjeChsLGMpe2N8PTA7dmFyIG0sQSxmPTAscD0wLHc9MDtmb3IobT0xMisobHw9MCl8MCxBPWwrOHwwOzspe2lmKCEoKGY9MHxmZVtjPj4wXSk8PDI0Pj4yNCkpe3c9NzticmVha31pZigoMHwocD0wfGFbbT4+Ml0pKT09KDB8YVtBPj4yXSkp''@;'; put 'put ''e2lmKCEoKDB8dmwobCkpPDwyND4+MjQpKXtjPTA7YnJlYWt9cD0wfGFbbT4+Ml0sZj0wfGZlW2M+PjBdfWFbbT4+Ml09cCsxLGZlW3A+PjBdPWYsYz1jKzF8MH1yZXR1cm4gNz09KDB8dykmJihjPTB8YVtsKzE2Pj4yXSksMHxjfWZ1bmN0aW9uIGZBKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0w''@;'; put 'put ''O3ZhciBBLHcsYixtPTA7Yj1sZSxsZT1sZSsxNnwwLGFbKHc9Yik+PjJdPWZ8PTAsMD09KDB8YVsoQT1sKzEyfDApPj4yXSkmJigwfHZsKGwpKTw8MjQ+PjI0PT0wP2Y9MDptPTM7ZTpkb3tpZigzPT0oMHxtKSl7Zm9yKGY9Yys1NnwwLG09bCs4fDA7ISgoMHxSMlsxMjcmYVtmPj4yXV0oYyx3''@;'; put 'put ''LHAsQSwwfGFbbT4+Ml0pKT4+PjA8Mik7KWlmKCEoKDB8dmwobCkpPDwyND4+MjQpKXtmPTA7YnJlYWsgZX1mPTB8YVtsKzE2Pj4yXX19d2hpbGUoMCk7cmV0dXJuIGxlPWIsMHxmfWZ1bmN0aW9uIE9oKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAsbXw9MCxBfD0wO3ZhciBELFIsdz0wLGI9MCxr''@;'; put 'put ''PTAsTT0wO3c9KHB8PTApPDwyND4+MjQ9PTAsRD0wfGFbKFI9MTIrKGx8PTApfDApPj4yXTtlOmRve2lmKHcmMD09KDB8bSkpTT05O2Vsc2V7Zm9yKGI9bCsyMHwwLHA9MDshKCgwfHApPj0oMHxEKSk7KXtpZigoMHxhWygwfGFbYj4+Ml0pKygxMipwfDApPj4yXSk9PSgwfGMpKXtwPTE7YnJl''@;'; put 'put ''YWsgZX1wPXArMXwwfSF3JiYwPT0oMHxhWyhrPWwrOHwwKT4+Ml0pJiYwPT0oMHxmZVtjKzk+PjBdKSYmKGFbaz4+Ml09YyksTT05fX13aGlsZSgwKTtlOmRve2lmKDk9PSgwfE0pKXtiPWwrMTZ8MDtkb3tpZigoMHxEKT09KDB8YVtiPj4yXSkpe2lmKEQpe2lmKCEocD0wfEJpWzEyNyZhW0Er''@;'; put 'put ''MTY+PjJdXSgwfGFbKHc9bCsyMHwwKT4+Ml0sMjQqRHwwKSkpe3A9MDticmVhayBlfWFbYj4+Ml09RDw8MSxhW3c+PjJdPXA7YnJlYWt9aWYoYVtiPj4yXT04LHA9MHxfb1s2MyZhW0ErMTI+PjJdXSg5NiksYVtsKzIwPj4yXT1wLDB8cClicmVhazthW2I+PjJdPTAscD0wO2JyZWFrIGV9cD0w''@;'; put 'put ''fGFbbCsyMD4+Ml19d2hpbGUoMCk7YVtwKygxMiooQT0wfGFbUj4+Ml0pfDApPj4yXT1jLGFbcCsoMTIqQXwwKSs4Pj4yXT1tLGZlW3ArKDEyKkF8MCkrND4+MF09ZixmPDwyND4+MjR8fChmZVtjKzg+PjBdPTEpLGFbUj4+Ml09MSsoMHxhW1I+PjJdKSxwPTF9fXdoaWxlKDApO3JldHVybiAw''@;'; put 'put ''fHB9ZnVuY3Rpb24gdmwobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtwPTB8YVsoYz00KyhsfD0wKXwwKT4+Ml07ZG97aWYocCl7aWYoIShBPTB8YVsobT1sKzE2fDApPj4yXSkpe2FbbD4+Ml09cCxhW2M+PjJdPWFbcD4+Ml0sYVtwPj4yXT0wLGFbbT4+''@;'; put 'put ''Ml09Yz04KyhEPTB8YVtsPj4yXSl8MCxhW2wrOD4+Ml09KDB8YVtEKzQ+PjJdKSsoRCs4KSxhW2wrMTI+PjJdPWMsYz0xO2JyZWFrfSgoMHxhWyhmPWwrOHwwKT4+Ml0pLUF8MCk8KDB8YVtwKzQ+PjJdKT8oTT0wfGFbcD4+Ml0sYVtwPj4yXT1hW2w+PjJdLGFbbD4+Ml09RD0wfGFbYz4+Ml0s''@;'; put 'put ''YVtjPj4yXT1NLGdvKEQrOHwwLDB8KGM9MHxhW20+PjJdKSwoMHxhW2Y+PjJdKS1jfDApLGFbKEQ9bCsxMnwwKT4+Ml09KDB8YVtEPj4yXSktKDB8YVttPj4yXSkrKDgrKGM9MHxhW2w+PjJdKSksYVttPj4yXT1jKzgsYVtmPj4yXT0oMHxhW2MrND4+Ml0pKyhjKzgpLGM9MSk6dz02fWVsc2Ug''@;'; put 'put ''dz02fXdoaWxlKDApO2U6ZG97aWYoNj09KDB8dykpe3A9MHxhW2w+PjJdLE09bCsxNnwwO2Rve2lmKHApe2lmKGM9az0wfGFbTT4+Ml0sKDB8aykhPShwKzh8MCkpe2I9TTticmVha31pZihmPSgwfGFbKHc9bCsxMnwwKT4+Ml0pLWN8MCwoMHwoQT0oMHxhWyhtPWwrOHwwKT4+Ml0pLWM8PDEp''@;'; put 'put ''KTwwKXtjPTA7YnJlYWsgZX1pZighKGM9MHxMXyhBKSkpe2M9MDticmVhayBlfWlmKCEoYz0wfEJpWzEyNyZhWzQrKDB8YVtsKzIwPj4yXSk+PjJdXShwLGMpKSl7Yz0wO2JyZWFrIGV9YVtsPj4yXT1jLGFbYys0Pj4yXT1BLGFbdz4+Ml09OCsoYz0wfGFbbD4+Ml0pK2YsYVtNPj4yXT1jKzgs''@;'; put 'put ''YVttPj4yXT1jKzgrQSxjPTE7YnJlYWsgZX1iPU0sYz0wfGFbTT4+Ml19d2hpbGUoMCk7aWYoKDB8KGM9KDB8YVsoaz1sKzh8MCk+PjJdKS1jfDApKT49MCl7aWYoKDB8Yyk+PTEwMjQpe2lmKCgwfChjPDw9MSkpPDApe2M9MDticmVha319ZWxzZSBjPTEwMjQ7MCE9KDB8KGY9MHxMXyhjKSkp''@;'; put 'put ''JiYwIT0oMHwoRD0wfF9vWzYzJmFbYVtsKzIwPj4yXT4+Ml1dKGYpKSk/KGFbRCs0Pj4yXT1jLGFbRD4+Ml09YVtsPj4yXSxhW2w+PjJdPUQsZj1sPTB8YVsodz1sKzEyfDApPj4yXSxtPXA9MHxhW00+PjJdLCgwfGwpPT0oMHxwKT8oQT1EKzh8MCxwPW0pOihnbygwfChBPUQrOHwwKSwwfHAs''@;'; put 'put ''Zi1tfDApLHA9MHxhW2I+PjJdLGY9MHxhW3c+PjJdKSxhW3c+PjJdPUQrOCsoZi1wKSxhW00+PjJdPUEsYVtrPj4yXT1EKzgrYyxjPTEpOmM9MH1lbHNlIGM9MH19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBfXyhsLGMsZixwLG0sQSl7dmFyIHc9MDtsPTB8eUEobHw9MCxjfD0wLGZ8''@;'; put 'put ''PTAscHw9MCxtfD0wLEF8PTApO2Rve2lmKCFsKXtpZihsPTB8YVsoYz1BKzEyfDApPj4yXSxmPDwyND4+MjQ9PTAmJigwfGFbQSsxNj4+Ml0pIT0oMHxsKSYmMzI9PSgwfGZlWyh3PWwrLTF8MCk+PjBdKSYmKGFbYz4+Ml09dyxsPXcpLCgwfGwpPT0oMHxhW0ErOD4+Ml0pKXtpZighKCgwfHZs''@;'; put 'put ''KEEpKTw8MjQ+PjI0KSl7bD0xO2JyZWFrfWw9MHxhW2M+PjJdfWFbYz4+Ml09bCsxLGZlW2w+PjBdPTAsbD0wfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIENfKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBXZSxhdCxTdCxrdCxzdCxadCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09''@;'; put 'put ''MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxFdD0wO2lmKFp0PWxlLGxlPWxlKzE2fDAsV2U9WnQsYXQ9WnQrNHwwLFN0PTEwNCsobT0wfGFbMzUyKyhsfD0wKT4+Ml0pfDAsa3Q9MHxhWyhzdD1sKzI3MnwwKT4+Ml0s''@;'; put 'put ''YVtzdD4+Ml09MSwwPT0oMHxhW1N0Pj4yXSkmJigwfHZsKFN0KSk8PDI0Pj4yND09MCltPTE7ZWxzZXtEPWMrMjB8MCxSPWwrNDg0fDAsRz1sKzE0NHwwLHE9bCs0MTJ8MCxwZT1jKzY0fDAsZ2U9bSsxMzJ8MCxiZT1sKzQyOHwwLE9lPWwrNDI0fDAsTGU9bCsyMjR8MCxSZT1sKzExMnwwLE09''@;'; put 'put ''bSsxMzB8MCxIZT1tKzEyOHwwLFZlPW0rMTMxfDAscWU9bCsxMTZ8MCxydD1tKzExMnwwLGI9bSsxMTZ8MCxrPWMrNDB8MDtlOmZvcig7Oyl7dDpkb3tzd2l0Y2goMHxxMFsxMjcmYVtEPj4yXV0oYyxmLHAsV2UpKXtjYXNlLTQ6bT0wO2JyZWFrIGU7Y2FzZS0xOkV0PTM3O2JyZWFrIGU7Y2Fz''@;'; put 'put ''ZSAwOkV0PTM5O2JyZWFrIGU7Y2FzZSAyODppZigwPT0oMHxmZVtSPj4wXSkmJigwfGFbRz4+Ml0pPT0oMHxjKSl7RXQ9MTk7YnJlYWsgZX1pZighKG09MHxiMihxLGMsZisobT0wfGFbcGU+PjJdKXwwLDAtbSsoMHxhW1dlPj4yXSl8MCkpKXttPTE7YnJlYWsgZX1pZihBPTB8XzEobCxnZSxt''@;'; put 'put ''LDApLGFbT2U+PjJdPWFbYmU+PjJdLCFBKXtFdD05O2JyZWFrIGV9aWYoMHxmZVsodz1BKzMyfDApPj4wXSl7RXQ9MTE7YnJlYWsgZX1pZighKDB8YVsobT1BKzE2fDApPj4yXSkpe2lmKGZlW3c+PjBdPTEsbT0wfENfKGwsMHxhW0xlPj4yXSxtPTB8YVtBKzQ+PjJdLG0rKDB8YVtBKzg+PjJd''@;'; put 'put ''KXwwKSxmZVt3Pj4wXT0wLG0pYnJlYWsgZTticmVhayB0fWlmKDB8YVtSZT4+Ml0pe2lmKGZlW1ZlPj4wXT0wLGZlW3c+PjBdPTEsQT0wPT0oMHxSMlsxMjcmYVtSZT4+Ml1dKDB8YVtxZT4+Ml0sMCwwfGFbQSsyMD4+Ml0sMHxhW20+PjJdLDB8YVtBKzI0Pj4yXSkpLGZlW3c+PjBdPTAsQSl7''@;'; put 'put ''bT0yMTticmVhayBlfWlmKDB8ZmVbVmU+PjBdKWJyZWFrIHR9ZmVbSGU+PjBdPTB8ZmVbTT4+MF07YnJlYWs7Y2FzZSA2OmNhc2UgOTppZighKDB8ZkEoU3QsYyxmLDB8YVtXZT4+Ml0pKSl7bT0xO2JyZWFrIGV9YnJlYWs7Y2FzZS0zOmFbV2U+PjJdPWYrKDB8YVtwZT4+Ml0pLEV0PTIyO2Jy''@;'; put 'put ''ZWFrO2Nhc2UgNzpFdD0yMjticmVhaztjYXNlIDEwOmlmKCgwfChtPTB8QmlbMTI3JmFbaz4+Ml1dKGMsZikpKTwwKXtFdD0yNzticmVhayBlfWZvcihBPTB8VzQobSxhdCksZj0wOyEoKDB8Zik+PSgwfEEpKTspe2lmKCgwfGFbcnQ+PjJdKT09KDB8KG09MHxhW2I+PjJdKSkpe2lmKCEoKDB8''@;'; put 'put ''dmwoU3QpKTw8MjQ+PjI0KSl7bT0xLEV0PTM1O2JyZWFrIGV9bT0wfGFbYj4+Ml19dz0wfGZlW2F0K2Y+PjBdLGFbYj4+Ml09bSsxLGZlW20+PjBdPXcsZj1mKzF8MH1icmVhaztkZWZhdWx0OkV0PTQxO2JyZWFrIGV9fXdoaWxlKDApO2lmKDIyPT0oMHxFdCkpe2lmKEV0PTAsKDB8YVtydD4+''@;'; put 'put ''Ml0pPT0oMHwobT0wfGFbYj4+Ml0pKSl7aWYoISgoMHx2bChTdCkpPDwyND4+MjQpKXttPTE7YnJlYWt9bT0wfGFbYj4+Ml19YVtiPj4yXT1tKzEsZmVbbT4+MF09MTB9Zj0wfGFbV2U+PjJdfTk9PSgwfEV0KT8oZmVbSGU+PjBdPTB8ZmVbTT4+MF0sbT0wKToxMT09KDB8RXQpPygoMHxhW0c+''@;'; put 'put ''PjJdKT09KDB8YykmJihhW2wrMjg0Pj4yXT1mKSxtPTEyKToxOT09KDB8RXQpPyhhW2wrMjg0Pj4yXT1mLG09MTApOjI3PT0oMHxFdCk/KDB8YVtHPj4yXSk9PSgwfGMpPyhhW2wrMjg0Pj4yXT1mLG09MTQsRXQ9MzUpOihtPTE0LEV0PTM1KTozNz09KDB8RXQpPygoMHxhW0c+PjJdKT09KDB8''@;'; put 'put ''YykmJihhW2wrMjg0Pj4yXT1mKSxtPTQpOjM5PT0oMHxFdCk/KCgwfGFbRz4+Ml0pPT0oMHxjKSYmKGFbbCsyODQ+PjJdPWFbV2U+PjJdKSxtPTQpOjQxPT0oMHxFdCkmJigoMHxhW0c+PjJdKT09KDB8YykmJihhW2wrMjg0Pj4yXT1mKSxtPTIzKSxhW3N0Pj4yXT1rdH1yZXR1cm4gbGU9WnQs''@;'; put 'put ''MHxtfWZ1bmN0aW9uIF8yKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxxPTA7aWYoRz1sZSxsZT1sZSsxNnwwLFI9Rys0fDAsYVsoRD1HKT4+Ml09Znw9MCwwfGZlW2MrNjg+PjBdKWRsWzEyNyZhW2wrODA+PjJdXSgwfGFbbCs0Pj4y''@;'; put 'put ''XSxmLHAtZnwwKTtlbHNleygwfGFbbCsxNDQ+PjJdKT09KDB8Yyk/KG09bCsyODh8MCxBPWwrMjg0fDApOm09NCsoQT0wfGFbbCsyOTY+PjJdKXwwLHc9bCs0NHwwLGI9Yys1NnwwLGs9bCs0OHwwLE09bCs4MHwwLGY9bCs0fDA7ZG97YVtSPj4yXT1hW3c+PjJdLGw9MHxSMlsxMjcmYVtiPj4y''@;'; put 'put ''XV0oYyxELHAsUiwwfGFbaz4+Ml0pLGFbbT4+Ml09YVtEPj4yXSxkbFsxMjcmYVtNPj4yXV0oMHxhW2Y+PjJdLHE9MHxhW3c+PjJdLCgwfGFbUj4+Ml0pLXF8MCksYVtBPj4yXT1hW0Q+PjJdfXdoaWxlKGw+Pj4wPjEpfWxlPUd9ZnVuY3Rpb24gaEEobCxjLGYscCxtLEEpe3B8PTAsbXw9MCxB''@;'; put 'put ''fD0wO3ZhciBrLE0sRCxSLHc9MCxiPTA7c3dpdGNoKEQ9bGUsbGU9bGUrMTZ8MCxrPUQsTT0wfGFbKGZ8PTApPj4yXSwoMHxhWzE0NCsobHw9MCk+PjJdKT09KDB8KGN8PTApKT8oYVsoYj1sKzI4NHwwKT4+Ml09TSx3PWwrMjg4fDApOnc9NCsoYj0wfGFbbCsyOTY+PjJdKXwwLGFbYj4+Ml09''@;'; put 'put ''TSxhW2Y+PjJdPTAsUj0wfHEwWzEyNyZhW2MrMTI+PjJdXShjLE0scCxrKSxhW3c+PjJdPXA9MHxhW2s+PjJdLDB8Uil7Y2FzZSA0MjowfGFbbCs4MD4+Ml0mJihfMihsLGMsTSxwKSxwPTB8YVtrPj4yXSksYVtmPj4yXT1wLGFbbT4+Ml09cCxwPTI9PSgwfGFbbCs0NzY+PjJdKT8zNTowO2Jy''@;'; put 'put ''ZWFrO2Nhc2UgMDphW2I+PjJdPXAscD00O2JyZWFrO2Nhc2UtMjpBPDwyND4+MjQ/KGFbbT4+Ml09TSxwPTApOnA9NjticmVhaztjYXNlLTQ6Y2FzZS0xOkE8PDI0Pj4yND8oYVttPj4yXT1NLHA9MCk6cD0yO2JyZWFrO2RlZmF1bHQ6YVtiPj4yXT1wLHA9MjN9cmV0dXJuIGxlPUQsMHxwfWZ1''@;'; put 'put ''bmN0aW9uIGZ4KGwpe3ZhciBiLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGs9MDswfGFbKGs9MTg0KyhiPTB8YVszNTIrKGx8PTApPj4yXSl8MCk+PjJdP2Y9NDooYz0wfF9vWzYzJmFbbCsxMj4+Ml1dKGFbbCs0NjQ+PjJdPDwyKSxhW2s+PjJdPWMsYz8oYVtjPj4yXT0wLGY9NCk6Yz0tMSk7''@;'; put 'put ''ZG97aWYoND09KDB8Zikpe2lmKHA9MHxhWyhtPWIrMTY0fDApPj4yXSwoYz0wfGFbKHc9YisxNzZ8MCk+PjJdKT4+PjA8KGY9MHxhWyhBPWIrMTcyfDApPj4yXSk+Pj4wKUE9cDtlbHNle2lmKHApe2lmKCEoYz0wfEJpWzEyNyZhW2wrMTY+PjJdXShwLDU2KmZ8MCkpKXtjPS0xO2JyZWFrfWY9''@;'; put 'put ''YyxjPWFbQT4+Ml08PDF9ZWxzZXtpZighKGM9MHxfb1s2MyZhW2wrMTI+PjJdXSg4OTYpKSl7Yz0tMTticmVha31mPWMsYz0zMn1hW0E+PjJdPWMsYVttPj4yXT1mLGM9MHxhW3c+PjJdLEE9Zn1hW3c+PjJdPWMrMSwwfChmPTB8YVtiKzE4MD4+Ml0pJiYoMHwoZj0wfGFbKG09QSsoMjgqKGw9''@;'; put 'put ''MHxhWygwfGFbaz4+Ml0pKyhmKy0xPDwyKT4+Ml0pfDApKzE2fDApPj4yXSkmJihhW0ErKDI4KmZ8MCkrMjQ+PjJdPWMpLChwPTB8YVsoZj1BKygyOCpsfDApKzIwfDApPj4yXSl8fChhW0ErKDI4Kmx8MCkrMTI+PjJdPWMpLGFbbT4+Ml09YyxhW2Y+PjJdPXArMSksYVsoaz1BKygyOCpjfDAp''@;'; put 'put ''KzEyfDApPj4yXT0wLGFbays0Pj4yXT0wLGFbays4Pj4yXT0wLGFbaysxMj4+Ml09MH19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBoeChsLGMsZil7Y3w9MCxmfD0wO3ZhciBELFIsRyxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Rz1sZSxsZT1sZSsxNnwwLEQ9RywocD0wfGFb''@;'; put 'put ''KFI9MzAwKyhsfD0wKXwwKT4+Ml0pPyhhW1I+PjJdPWFbcCs4Pj4yXSxNPXAsbT00KToocD0wfF9vWzYzJmFbbCsxMj4+Ml1dKDI0KSk/KE09cCxtPTQpOnA9MTtkb3tpZig0PT0oMHxtKSYmKGZlWyhBPWMrMzJ8MCk+PjBdPTEsYVsodz1jKzEyfDApPj4yXT0wLGFbKGs9TSs4fDApPj4yXT1h''@;'; put 'put ''WyhiPWwrMjk2fDApPj4yXSxhW2I+PjJdPU0sYVtNKzEyPj4yXT1jLGFbTSsxNj4+Ml09YVsocD1sKzMwOHwwKT4+Ml0sZmVbTSsyMD4+MF09ZixhW00+PjJdPTAsYVtNKzQ+PjJdPTAsZj0obT0wfGFbYys0Pj4yXSkrKDB8YVtjKzg+PjJdKXwwLGFbRD4+Ml09bSwwfGZlW2MrMzM+PjBdPyhw''@;'; put 'put ''PTB8cTBbMTI3JmFbKHA9MHxhWyhjPWwrMjI0fDApPj4yXSk+PjJdXShwLG0sZixEKSxwPTB8dUEobCwwfGFbYz4+Ml0sbSxmLHAsMHxhW0Q+PjJdLEQsMCkpOnA9MHxCbShsLDB8YVtwPj4yXSwwfGFbbCsyMjQ+PjJdLG0sZixELDApLCFwKSl7aWYoKDB8ZikhPSgwfChwPTB8YVtEPj4yXSkp''@;'; put 'put ''JiYzPT0oMHxhW2wrNDc2Pj4yXSkpe2Fbdz4+Ml09cC1tLGFbbCsyNzY+PjJdPTYwLHA9MDticmVha31mZVtBPj4wXT0wLGFbYj4+Ml09YVtrPj4yXSxhW2s+PjJdPWFbUj4+Ml0sYVtSPj4yXT1NLHA9MH19d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxwfWZ1bmN0aW9uIGtfKGwpe3ZhciBmLHAs''@;'; put 'put ''bSxBLGM9MDtyZXR1cm4gQT1sZSxsZT1sZSsxNnwwLGY9QSs0fDAscD1BLChjPTB8X29bNjMmYVsxMisobHw9MCk+PjJdXSgoMjAqKDB8YVsobT0xNzYrKGM9MHxhW2wrMzUyPj4yXSl8MCk+PjJdKXwwKSsoMHxhW2MrMTY4Pj4yXSl8MCkpPyhhW3A+PjJdPWMrKDIwKigwfGFbbT4+Ml0pfDAp''@;'; put 'put ''LGFbZj4+Ml09YysyMCxwQShsLDAsYyxmLHApKTpjPTAsbGU9QSwwfGN9ZnVuY3Rpb24gZEEobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wO3JldHVybiAwfGFbKGs9NjQrKGx8PTApfDApPj4yXT8wIT0oMHwoQT0wfGIyKG09bCs0MTJ8MCxjLEE9ZisoYVso''@;'; put 'put ''dz1jKzY0fDApPj4yXTw8MSl8MCxmPUErKDB8QmlbMTI3JmFbYysyOD4+Ml1dKGMsQSkpfDApKSkmJihhW2wrNDI4Pj4yXT1hW2wrNDI0Pj4yXSwwIT0oMHwoYj0wfGIyKG0sYyxiPTB8QmlbMTI3JmFbYyszMj4+Ml1dKGMsZikscCsoMC0oYVt3Pj4yXTw8MSkpfDApKSkpPyhSbShiKSxkbFsx''@;'; put 'put ''MjcmYVtrPj4yXV0oMHxhW2wrND4+Ml0sQSxiKSxDZihtKSxmPTEpOmY9MDooMHxhW2wrODA+PjJdJiZfMihsLGMsZixwKSxmPTEpLDB8Zn1mdW5jdGlvbiBTXyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgQSxtPTAsdz0wO3JldHVybiAwfGFbKEE9NjgrKGx8PTApfDApPj4yXT8oYz0w''@;'; put 'put ''fGIyKG09bCs0MTJ8MCxjLGYrKCh3PTB8YVtjKzY0Pj4yXSk8PDIpfDAscCsoMHxBcih3LC0zKSl8MCkpPyhSbShjKSxHc1s2MyZhW0E+PjJdXSgwfGFbbCs0Pj4yXSxjKSxDZihtKSxjPTEpOmM9MDooMHxhW2wrODA+PjJdJiZfMihsLGMsZixwKSxjPTEpLDB8Y31mdW5jdGlvbiBSbShsKXts''@;'; put 'put ''fD0wO3ZhciBjPTAsZj0wLHA9MDtlOmZvcig7Oyl7c3dpdGNoKDB8ZmVbbD4+MF0pe2Nhc2UgMDpicmVhayBlO2Nhc2UgMTM6Zj1sLGM9MTMscD00O2JyZWFrIGV9bD1sKzF8MH1pZig0PT0oMHxwKSl7Zm9yKDtjPDwyND4+MjQ9PTEzPyhmZVtmPj4wXT0xMCxsPTEwPT0oMHxmZVsocD1sKzF8''@;'; put 'put ''MCk+PjBdKT9sKzJ8MDpwKTooZmVbZj4+MF09YyxsPWwrMXwwKSxmPWYrMXwwLChjPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KXA9NDtmZVtmPj4wXT0wfX1mdW5jdGlvbiBwQShsLGMsZixwLG0pe3B8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wO2lmKGFbKGZ8PTApPj4yXT1iPTB8YVsoMHxh''@;'; put 'put ''WyhrPTE2NCsoMHxhWzM1MisobHw9MCk+PjJdKXwwKT4+Ml0pKygyOCooY3w9MCl8MCk+PjJdLGFbZis0Pj4yXT1hWygwfGFbaz4+Ml0pKygyOCpjfDApKzQ+PjJdLDQ9PSgwfGIpKXtmb3IoYVtmKzg+PjJdPWFbbT4+Ml0sYz0wfGFbKDB8YVtrPj4yXSkrKDI4KmN8MCkrOD4+Ml07Yj0wfGZl''@;'; put 'put ''W2M+PjBdLGFbbT4+Ml09MSsoaz0wfGFbbT4+Ml0pLGZlW2s+PjBdPWIsMHxmZVtjPj4wXTspYz1jKzF8MDthW2YrMTI+PjJdPTAsYVtmKzE2Pj4yXT0wfWVsc2V7Zm9yKGFbKHc9ZisxMnwwKT4+Ml09QT0wfGFbKDB8YVtrPj4yXSkrKDI4KmN8MCkrMjA+PjJdLGFbKGI9ZisxNnwwKT4+Ml09''@;'; put 'put ''YVtwPj4yXSxhW3A+PjJdPSgwfGFbcD4+Ml0pKygyMCpBfDApLGM9KDB8YVtrPj4yXSkrKDI4KmN8MCkrMTJ8MCxBPTA7Yz0wfGFbYz4+Ml0sIShBPj4+MD49KDB8YVt3Pj4yXSk+Pj4wKTspcEEobCxjLCgwfGFbYj4+Ml0pKygyMCpBfDApfDAscCxtKSxjPSgwfGFbaz4+Ml0pKygyOCpjfDAp''@;'; put 'put ''KzI0fDAsQT1BKzF8MDthW2YrOD4+Ml09MH19ZnVuY3Rpb24gQm0obCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpy''@;'; put 'put ''LExyLGwwLFZpLE9pLFJvLFRhLFphLGdhLHhpLERsLG9zLG9sLEwwLHoyLEcyLEZmLFBhLFcyLHYxLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsbG89MCx4YT0wLHFhPTAsX3M9MDt2MT1sZSxsZT1sZSs0OHwwLEwwPXYxKzMyfDAsVzI9djErMjR8MCxUYT12MSxhWyhQ''@;'; put 'put ''YT12MSsyOHwwKT4+Ml09cHw9MCxaYT0wfGFbbCszNTI+PjJdLCgwfGFbbCsxNDQ+PjJdKT09KDB8Zik/KHhhPWwrMjg0fDAsbG89bCsyODh8MCk6KHhhPWxvPTB8YVtsKzI5Nj4+Ml0sbG89bG8rNHwwKSxhW3hhPj4yXT1wLGJlPWYrNHwwLHoyPWwrODB8MCxPZT1sKzQ3NnwwLExlPWYrNDR8''@;'; put 'put ''MCxSZT1mKzY0fDAsSGU9WmErODB8MCxWZT1aYSs5NnwwLHFlPVphKzkyfDAscnQ9WmErMTI5fDAsV2U9bCsxMTJ8MCxhdD1sKzExNnwwLFN0PWwrNDI4fDAsa3Q9bCs0MjR8MCxzdD1sKzMwNHwwLEV0PWwrMTIwfDAsRzI9bCs0fDAsWnQ9WmErMTMwfDAsZ2E9bCs2MHwwLGN0PWwrMzY0fDAs''@;'; put 'put ''YnQ9bCsxMnwwLGFuPWwrMzYwfDAsU249ZisyOHwwLEZmPWwrMzA4fDAseGk9Zis1NnwwLEhuPWwrMTZ8MCx1cj1sKzUyfDAsSHI9bCs0MTJ8MCxFcj1sKzM4OHwwLGZyPWwrNTZ8MCxEcj1sKzIzMnwwLEpyPWwrMjMzfDAsTHI9bCs0Njh8MCxsMD1sKzEwNHwwLFZpPWwrMzcyfDAsT2k9Zis0''@;'; put 'put ''MHwwLFJvPWwrNzJ8MCxEbD1mKzY4fDAsb3M9bCs0NHwwLG9sPWwrNDh8MDtlOmZvcig7Oyl7YVtMMD4+Ml09Z2U9MHxhW1BhPj4yXSxnZT0wfHEwWzEyNyZhW2JlPj4yXV0oZixnZSxtLEwwKSxhW2xvPj4yXT1wPTB8YVtMMD4+Ml0saz1wO3Q6ZG97c3dpdGNoKDB8Z2Upe2Nhc2UtMzpxYT02''@;'; put 'put ''O2JyZWFrIGU7Y2FzZS00OnFhPTE1O2JyZWFrIGU7Y2FzZSAwOnFhPTIwO2JyZWFrIGU7Y2FzZS0xOnFhPTIxO2JyZWFrIGU7Y2FzZS0yOnFhPTIzO2JyZWFrIGU7Y2FzZSAxMjpwPTE3O2JyZWFrIGU7Y2FzZS01OnFhPTEzNDticmVhayBlO2Nhc2UgOTpnZT0yNTUmKDB8bWlbNjMmYVtMZT4+''@;'; put 'put ''Ml1dKGYsKDB8YVtQYT4+Ml0pKyhnZT0wfGFbUmU+PjJdKXwwLGsrKDAtZ2UpfDApKSxmZVtXMj4+MF09Z2U7ZG97aWYoIShnZTw8MjQ+PjI0KSl7aWYoIShiPTB8YjIoSGUsZiwoMHxhW1BhPj4yXSkrKGI9MHxhW1JlPj4yXSl8MCwwLWIrKDB8YVtMMD4+Ml0pfDApKSl7cD0xLHFhPTU2O2Jy''@;'; put 'put ''ZWFrIGV9aWYoaz0wfF8xKGwsWmEsYiwwKSxhW3FlPj4yXT1hW1ZlPj4yXSwwIT0oMHxmZVtydD4+MF0pJiYwPT0oMHxmZVtadD4+MF0pKXtpZighayl7aWYoMHwocD0wfGFbRXQ+PjJdKSl7ZGxbMTI3JnBdKDB8YVtHMj4+Ml0sYiwwKTticmVha31pZighKDB8YVt6Mj4+Ml0pKWJyZWFrO18y''@;'; put 'put ''KGwsZiwwfGFbUGE+PjJdLDB8YVtMMD4+Ml0pO2JyZWFrfX1lbHNle2lmKCFrKXtwPTExLHFhPTU2O2JyZWFrIGV9aWYoISgwfGZlW2srMzQ+PjBdKSl7cD0yNCxxYT01NjticmVhayBlfX1pZigwfGZlWyhwPWsrMzJ8MCk+PjBdKXtwPTEyLHFhPTU2O2JyZWFrIGV9aWYoMHxhW2srMjg+PjJd''@;'; put 'put ''KXtwPTE1LHFhPTU2O2JyZWFrIGV9aWYoISgwfGFbays0Pj4yXSkpe2lmKCEoMHxhW1dlPj4yXSkpe2lmKCEoMHxhW3oyPj4yXSkpYnJlYWs7XzIobCxmLDB8YVtQYT4+Ml0sMHxhW0wwPj4yXSk7YnJlYWt9aWYoZmVbcD4+MF09MSxiPTB8Z0EobCksZmVbcD4+MF09MCwhYil7cD0xLHFhPTU2''@;'; put 'put ''O2JyZWFrIGV9aWYoISgwfFIyWzEyNyZhW1dlPj4yXV0oMHxhW2F0Pj4yXSxiLDB8YVtrKzIwPj4yXSwwfGFbaysxNj4+Ml0sMHxhW2srMjQ+PjJdKSkpe3A9MjEscWE9NTY7YnJlYWsgZX1hW2t0Pj4yXT1hW1N0Pj4yXTticmVha31pZigwfGZlW3N0Pj4wXSl7aWYocD0wfGh4KGwsaywwKSl7''@;'; put 'put ''cWE9NTg7YnJlYWsgZX1icmVha30ocD0wfGFbRXQ+PjJdKT9kbFsxMjcmcF0oMHxhW0cyPj4yXSwwfGFbaz4+Ml0sMCk6MHxhW3oyPj4yXSYmXzIobCxmLDB8YVtQYT4+Ml0sMHxhW0wwPj4yXSk7YnJlYWsgdH1pZigwfChwPTB8YVtnYT4+Ml0pKXtkbFsxMjcmcF0oMHxhW0cyPj4yXSxXMiwx''@;'; put 'put ''KTticmVha30wfGFbejI+PjJdJiZfMihsLGYsMHxhW1BhPj4yXSwwfGFbTDA+PjJdKX13aGlsZSgwKTticmVhaztjYXNlIDE6Y2FzZSAyOmlmKHA9MHxhW2N0Pj4yXSlhW2N0Pj4yXT1hW3A+PjJdO2Vsc2V7aWYoIShwPTB8X29bNjMmYVtidD4+Ml1dKDQ4KSkpe3A9MSxxYT03NTticmVhayBl''@;'; put 'put ''fWlmKGI9MHxfb1s2MyZhW2J0Pj4yXV0oMzIpLGFbcCszNj4+Ml09YiwhYil7cWE9NjM7YnJlYWsgZX1hW3ArNDA+PjJdPWIrMzJ9Zm9yKGFbKFI9cCs0NHwwKT4+Ml09MCxhW3A+PjJdPWFbYW4+PjJdLGFbYW4+PjJdPXAsZ2U9cCsxMnwwLGFbcCsxNj4+Ml09MCxhW3ArMjA+PjJdPTAsYVso''@;'; put 'put ''cT1wKzR8MCk+PjJdPXBlPSgwfGFbUGE+PjJdKSsoMHxhW1JlPj4yXSl8MCxhWyhHPXArOHwwKT4+Ml09MHxCaVsxMjcmYVtTbj4+Ml1dKGYscGUpLGFbRmY+PjJdPTErKDB8YVtGZj4+Ml0pLEc9KHE9MHxhW3E+PjJdKSsoMHxhW0c+PjJdKXwwLGFbVGE+PjJdPXEsYVtXMj4+Ml09YVsocT1w''@;'; put 'put ''KzM2fDApPj4yXSxiPTB8YVsocGU9cCs0MHwwKT4+Ml07X3M9MHxSMlsxMjcmYVt4aT4+Ml1dKGYsVGEsRyxXMixiKy0xfDApLEQ9KGI9MHxhW1cyPj4yXSktKGs9TT0wfGFbcT4+Ml0pfDAsISgxPT0oMHxfcyl8fCgwfGFbVGE+PjJdKT4+PjA+PUc+Pj4wKTspe2lmKCEoYj0wfEJpWzEyNyZh''@;'; put 'put ''W0huPj4yXV0oTSxrPSgwfGFbcGU+PjJdKS1rPDwxKSkpe3FhPTY5O2JyZWFrIGV9YVtxPj4yXT1iLGFbcGU+PjJdPV9zPWIra3wwLGFbVzI+PjJdPWIrRCxiPV9zfWlmKGFbcCsyND4+Ml09RCxhW2dlPj4yXT1rLGZlW2I+PjBdPTAsMHwocD0wfEVfKGwsZiwwfGFbUGE+PjJdLGdlLFIpKSl7''@;'; put 'put ''cWE9NzU7YnJlYWsgZX0ocD0wfGFbdXI+PjJdKT9kbFsxMjcmcF0oMHxhW0cyPj4yXSwwfGFbZ2U+PjJdLDB8YVtFcj4+Ml0pOjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbUGE+PjJdLDB8YVtMMD4+Ml0pLENmKEhyKTticmVhaztjYXNlIDM6Y2FzZSA0OmlmKF9zPSgwfGFbUGE+PjJdKSsoMHxh''@;'; put 'put ''W1JlPj4yXSl8MCxhW1cyPj4yXT0wLF9zPTB8YjIoSHIsZixfcyxfcysoMHxCaVsxMjcmYVtTbj4+Ml1dKGYsX3MpKXwwKSxhW1RhPj4yXT1fcywhX3Mpe3A9MSxxYT04OTticmVhayBlfWlmKGFbU3Q+PjJdPWFba3Q+PjJdLDB8KHA9MHxFXyhsLGYsMHxhW1BhPj4yXSxUYSxXMikpKXtxYT03''@;'; put 'put ''OTticmVhayBlfWlmKGFbU3Q+PjJdPWFba3Q+PjJdLChwPTB8YVt1cj4+Ml0pPyhkbFsxMjcmcF0oMHxhW0cyPj4yXSwwfGFbVGE+PjJdLDB8YVtFcj4+Ml0pLGI9MCk6Yj0xLChwPTB8YVtmcj4+Ml0pPygwfGFbdXI+PjJdJiYoYVt4YT4+Ml09YVtsbz4+Ml0scD0wfGFbZnI+PjJdKSxHc1s2''@;'; put 'put ''MyZwXSgwfGFbRzI+PjJdLDB8YVtUYT4+Ml0pKTowfGImJjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbUGE+PjJdLDB8YVtMMD4+Ml0pLENmKEhyKSxRQihsLDB8YVtXMj4+Ml0pLDA9PSgwfGFbRmY+PjJdKSYmMiE9KC0yJmFbT2U+PjJdfDApKXtxYT05MjticmVhayBlfWJyZWFrO2Nhc2UgNTpp''@;'; put 'put ''ZigoMHxhW0ZmPj4yXSk9PSgwfGMpKXtwPTEzO2JyZWFrIGV9aWYoYVthbj4+Ml09YVsoRD0wfGFbYW4+PjJdKT4+Ml0sYVtEPj4yXT1hW2N0Pj4yXSxhW2N0Pj4yXT1ELCgwfChiPTB8QmlbMTI3JmFbU24+PjJdXShmLHA9KDB8YVtQYT4+Ml0pKyhhW1JlPj4yXTw8MSl8MCkpKSE9KDB8YVtE''@;'; put 'put ''Kzg+PjJdKSl7cWE9OTY7YnJlYWsgZX1pZigwfHQzKDB8YVtEKzQ+PjJdLHAsYikpe3FhPTk2O2JyZWFrIGV9aWYoYVtGZj4+Ml09KDB8YVtGZj4+Ml0pLTEscD0wfGFbZnI+PjJdKXtpZihNPUQrMTJ8MCwwIT0oMHwoYj0wfGFbRCsxNj4+Ml0pKSYwIT0oMHxmZVtEcj4+MF0pKXtmb3IocD0o''@;'; put 'put ''MHxhW00+PjJdKSsoMHxhW0QrMjg+PjJdKXwwOyhrPTB8ZmVbYj4+MF0pPDwyND4+MjQ7KWZlW3A+PjBdPWsscD1wKzF8MCxiPWIrMXwwO2I9MHxhW0QrMjA+PjJdO246ZG97aWYoMCE9KDB8YikmMCE9KDB8ZmVbSnI+PjBdKSlmb3IoZmVbcD4+MF09MHxmZVtMcj4+MF07Oyl7aWYocD1wKzF8''@;'; put 'put ''MCwhKChrPTB8ZmVbYj4+MF0pPDwyND4+MjQpKWJyZWFrIG47ZmVbcD4+MF09ayxiPWIrMXwwfX13aGlsZSgwKTtmZVtwPj4wXT0wLHA9MHxhW2ZyPj4yXX1Hc1s2MyZwXSgwfGFbRzI+PjJdLDB8YVtNPj4yXSl9ZWxzZSAwfGFbejI+PjJdJiZfMihsLGYsMHxhW1BhPj4yXSwwfGFbTDA+PjJd''@;'; put 'put ''KTtmb3Ioaz1EKzQ0fDA7TT0wfGFbaz4+Ml07KShwPTB8YVtsMD4+Ml0pPyhHc1s2MyZwXSgwfGFbRzI+PjJdLDB8YVthW00+PjJdPj4yXSkscD1NLGI9MHxhW2s+PjJdKToocD1NLGI9TSksYVtrPj4yXT1hW2IrND4+Ml0sYVtNKzQ+PjJdPWFbVmk+PjJdLGFbVmk+PjJdPU0sYVs0KygwfGFb''@;'; put 'put ''cD4+Ml0pPj4yXT1hW00rOD4+Ml07aWYoISgwfGFbRmY+PjJdKSl7cWE9MTE3O2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDppZigoMHwocD0wfEJpWzEyNyZhW09pPj4yXV0oZiwwfGFbUGE+PjJdKSkpPDApe3A9MTQ7YnJlYWsgZX1pZigwfChiPTB8YVtnYT4+Ml0pKXtnZT0wfGFbRzI+PjJdLF9z''@;'; put 'put ''PTB8VzQocCxXMiksZGxbMTI3JmJdKGdlLFcyLF9zKTticmVhayB0fTB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbUGE+PjJdLDB8YVtMMD4+Ml0pO2JyZWFrO2Nhc2UgNzppZigwfChwPTB8YVtnYT4+Ml0pKXtmZVtXMj4+MF09MTAsZGxbMTI3JnBdKDB8YVtHMj4+Ml0sVzIsMSk7YnJlYWsgdH0w''@;'; put 'put ''fGFbejI+PjJdJiZfMihsLGYsMHxhW1BhPj4yXSxrKTticmVhaztjYXNlIDg6aWYoKHA9MHxhW1JvPj4yXSk/Q29bMTI3JnBdKDB8YVtHMj4+Ml0pOjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbUGE+PjJdLGspLDB8KHA9MHxQbShsLGYsTDAsbSxBLHcpKSlicmVhayBlO2lmKCEoMHxhW0wwPj4y''@;'; put 'put ''XSkpe3FhPTEzMzticmVhayBlfWJyZWFrO2Nhc2UgNjppZighKGI9MHxhW2dhPj4yXSkpe2lmKCEoMHxhW3oyPj4yXSkpYnJlYWsgdDtfMihsLGYsMHxhW1BhPj4yXSxrKTticmVhayB0fWlmKDB8ZmVbRGw+PjBdKXtkbFsxMjcmYl0oMHxhW0cyPj4yXSxfcz0wfGFbUGE+PjJdLHAtX3N8MCk7''@;'; put 'put ''YnJlYWsgdH1mb3IocD1rO2FbVzI+PjJdPWFbb3M+PjJdLF9zPTB8UjJbMTI3JmFbeGk+PjJdXShmLFBhLHAsVzIsMHxhW29sPj4yXSksYVtsbz4+Ml09YVtQYT4+Ml0sZGxbMTI3JmJdKDB8YVtHMj4+Ml0sZ2U9MHxhW29zPj4yXSwoMHxhW1cyPj4yXSktZ2V8MCksIShfcz4+PjA8Mik7KWFb''@;'; put 'put ''eGE+PjJdPWFbUGE+PjJdLHA9MHxhW0wwPj4yXTticmVhaztjYXNlIDExOmlmKCEoMHxkQShsLGYsMHxhW1BhPj4yXSxrKSkpe3A9MTticmVhayBlfWJyZWFrO2Nhc2UgMTM6aWYoISgwfFNfKGwsZiwwfGFbUGE+PjJdLGspKSl7cD0xO2JyZWFrIGV9YnJlYWs7ZGVmYXVsdDowfGFbejI+PjJd''@;'; put 'put ''JiZfMihsLGYsMHxhW1BhPj4yXSxrKX19d2hpbGUoMCk7c3dpdGNoKGFbUGE+PjJdPV9zPTB8YVtMMD4+Ml0sYVt4YT4+Ml09X3MsMHxhW09lPj4yXSl7Y2FzZSAyOnA9MzU7YnJlYWsgZTtjYXNlIDM6cWE9MTYwO2JyZWFrIGV9fXN3aXRjaCgwfHFhKXtjYXNlIDY6aWYodzw8MjQ+PjI0KXth''@;'; put 'put ''W0E+PjJdPWFbUGE+PjJdLHA9MDticmVha31hW2xvPj4yXT1tLChwPTB8YVtnYT4+Ml0pPyhmZVtXMj4+MF09MTAsZGxbMTI3JnBdKDB8YVtHMj4+Ml0sVzIsMSkpOjB8YVt6Mj4+Ml0mJl8yKGwsZiwwfGFbUGE+PjJdLG0pLGM/KDB8YVtGZj4+Ml0pPT0oMHxjKT8oYVtBPj4yXT1tLHA9MCk6''@;'; put 'put ''cD0xMzpwPTM7YnJlYWs7Y2FzZSAxNTppZih3PDwyND4+MjQpe2FbQT4+Ml09YVtQYT4+Ml0scD0wO2JyZWFrfSgwfGMpPjA/KDB8YVtGZj4+Ml0pPT0oMHxjKT8oYVtBPj4yXT1hW1BhPj4yXSxwPTApOnA9MTM6cD0zO2JyZWFrO2Nhc2UgMjA6YVt4YT4+Ml09cCxwPTQ7YnJlYWs7Y2FzZSAy''@;'; put 'put ''MTp3PDwyND4+MjQ/KGFbQT4+Ml09YVtQYT4+Ml0scD0wKTpwPTU7YnJlYWs7Y2FzZSAyMzp3PDwyND4+MjQ/KGFbQT4+Ml09YVtQYT4+Ml0scD0wKTpwPTY7YnJlYWs7Y2FzZSA1NjpjYXNlIDU4OmJyZWFrO2Nhc2UgNjM6Q29bMTI3JmFbbCsyMD4+Ml1dKHApLHA9MSxxYT03NTticmVhaztj''@;'; put 'put ''YXNlIDY5OnA9MSxxYT03NTticmVhaztjYXNlIDc5OlFCKGwsMHxhW1cyPj4yXSkscWE9ODk7YnJlYWs7Y2FzZSA5MjpjYXNlIDExNzpwPTB8ZHgobCwwfGFbTDA+PjJdLG0sQSk7YnJlYWs7Y2FzZSA5NjphW3hhPj4yXT1wLHA9NzticmVhaztjYXNlIDEzMzphW2wrMjc2Pj4yXT02MSxwPTA7''@;'; put 'put ''YnJlYWs7Y2FzZSAxMzQ6aWYodzw8MjQ+PjI0KXthW0E+PjJdPWFbUGE+PjJdLHA9MDticmVha31wPTB8YVtnYT4+Ml07ZG97aWYocCl7aWYoMHxmZVtEbD4+MF0pe2RsWzEyNyZwXSgwfGFbRzI+PjJdLF9zPTB8YVtQYT4+Ml0sbS1fc3wwKTticmVha31hW1cyPj4yXT1hW29zPj4yXSxSMlsx''@;'; put 'put ''MjcmYVt4aT4+Ml1dKGYsUGEsbSxXMiwwfGFbb2w+PjJdKSxkbFsxMjcmYVtnYT4+Ml1dKDB8YVtHMj4+Ml0sX3M9MHxhW29zPj4yXSwoMHxhW1cyPj4yXSktX3N8MCk7YnJlYWt9MHxhW3oyPj4yXSYmXzIobCxmLDB8YVtQYT4+Ml0sbSl9d2hpbGUoMCk7aWYoIWMpe2FbeGE+PjJdPW0scD0z''@;'; put 'put ''O2JyZWFrfWlmKCgwfGFbRmY+PjJdKT09KDB8Yykpe2FbQT4+Ml09bSxwPTA7YnJlYWt9YVt4YT4+Ml09bSxwPTEzO2JyZWFrO2Nhc2UgMTYwOmFbQT4+Ml09YVtMMD4+Ml0scD0wfXJldHVybiBsZT12MSwwfHB9ZnVuY3Rpb24gZ0EobCl7dmFyIE0sRCxSLEcscSxjPTAsZj0wLHA9MCxtPTAs''@;'; put 'put ''QT0wLHc9MCxiPTAsaz0wO3E9bGUsbGU9bGUrMTZ8MCxEPXEsQT0xNTYrKE09MHxhWzM1MisobHw9MCk+PjJdKXwwLFI9bCs0MTJ8MCxHPWwrNDI0fDA7ZTpkb3tpZigwfGFbQT4+Ml0pe2lmKCgwfChjPTB8YVtHPj4yXSkpPT0oMHxhWyh3PWwrNDIwfDApPj4yXSkpe2lmKCEoKDB8dmwoUikp''@;'; put 'put ''PDwyND4+MjQpKXtjPTA7YnJlYWt9Yz0wfGFbRz4+Ml19Zm9yKGFbRz4+Ml09YysxLGZlW2M+PjBdPTYxLGY9KDB8YVsyMCsoMHxhW0E+PjJdKT4+Ml0pKygoMCE9KDB8ZmVbKG09bCs0Njh8MCk+PjBdKSk8PDMxPj4zMSl8MCxwPTA7Oyl7aWYoKDB8cCk+PSgwfGYpKXtjPTEsaz1tLGI9MTI7''@;'; put 'put ''YnJlYWsgZX1pZigoMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVt3Pj4yXSkpe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1jPTB8YVtHPj4yXX1rPTB8ZmVbKDB8YVsxNisoMHxhW0E+PjJdKT4+Ml0pK3A+PjBdLGFbRz4+Ml09YysxLGZlW2M+PjBdPWsscD1wKzF8MH19ZWxz''@;'; put 'put ''ZSBjPTAsdz1sKzQyMHwwLGs9bCs0Njh8MCxiPTEyfXdoaWxlKDApO2U6ZG97aWYoMTI9PSgwfGIpKXtlYyhELE0rNjB8MCk7dDpmb3IoOzspe2Rve2lmKCEoZj0wfERtKEQpKSlicmVhayB0O0E9Zis0fDB9d2hpbGUoISgwfGFbQT4+Ml0pKTtpZihjPDwyND4+MjQpe2lmKCgwfChjPTB8YVtH''@;'; put 'put ''Pj4yXSkpPT0oMHxhW3c+PjJdKSl7aWYoISgoMHx2bChSKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxhW0c+PjJdfWFbRz4+Ml09YysxLGZlW2M+PjBdPTEyfWZvcihtPTB8YVtmPj4yXTtwPSgwfChjPTB8YVtHPj4yXSkpPT0oMHxhW3c+PjJdKSwoZj0wfGZlW20+PjBdKTw8MjQ+PjI0''@;'; put 'put ''Oyl7aWYocCl7aWYoISgoMHx2bChSKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxhW0c+PjJdLGY9MHxmZVttPj4wXX1hW0c+PjJdPWMrMSxmZVtjPj4wXT1mLG09bSsxfDB9aWYocCl7aWYoISgoMHx2bChSKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWM9MHxhW0c+PjJdfWZvcihhW0c+''@;'; put 'put ''PjJdPWMrMSxmZVtjPj4wXT02MSxwPSgwfGFbMjArKDB8YVtBPj4yXSk+PjJdKSsoKDAhPSgwfGZlW2s+PjBdKSk8PDMxPj4zMSl8MCxmPTA7Oyl7aWYoKDB8Zik+PSgwfHApKXtjPTE7Y29udGludWUgdH1pZigoMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVt3Pj4yXSkpe2lmKCEoKDB8dmwoUikp''@;'; put 'put ''PDwyND4+MjQpKXtjPTA7YnJlYWsgZX1jPTB8YVtHPj4yXX1iPTB8ZmVbKDB8YVsxNisoMHxhW0E+PjJdKT4+Ml0pK2Y+PjBdLGFbRz4+Ml09YysxLGZlW2M+PjBdPWIsZj1mKzF8MH19ZWMoRCxNKTt0OmZvcig7Oyl7ZG97aWYoIShmPTB8RG0oRCkpKWJyZWFrIHR9d2hpbGUoISgwfGZlW2Yr''@;'; put 'put ''MzI+PjBdKSk7aWYoYzw8MjQ+PjI0KXtpZigoMHwoYz0wfGFbRz4+Ml0pKT09KDB8YVt3Pj4yXSkpe2lmKCEoKDB8dmwoUikpPDwyND4+MjQpKXtjPTA7YnJlYWsgZX1jPTB8YVtHPj4yXX1hW0c+PjJdPWMrMSxmZVtjPj4wXT0xMn1mb3IocD0wfGFbZj4+Ml07Oyl7aWYoISgoZj0wfGZlW3A+''@;'; put 'put ''PjBdKTw8MjQ+PjI0KSl7Yz0xO2NvbnRpbnVlIHR9aWYoKDB8KGM9MHxhW0c+PjJdKSk9PSgwfGFbdz4+Ml0pKXtpZighKCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrIGV9Yz0wfGFbRz4+Ml0sZj0wfGZlW3A+PjBdfWFbRz4+Ml09YysxLGZlW2M+PjBdPWYscD1wKzF8MH19aWYoKDB8''@;'; put 'put ''KGM9MHxhW0c+PjJdKSk9PSgwfGFbdz4+Ml0pKXtpZighKCgwfHZsKFIpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrfWM9MHxhW0c+PjJdfWFbRz4+Ml09YysxLGZlW2M+PjBdPTAsYz0wfGFbbCs0Mjg+PjJdfX13aGlsZSgwKTtyZXR1cm4gbGU9cSwwfGN9ZnVuY3Rpb24gRV8obCxjLGYscCxtKXtj''@;'; put 'put ''fD0wLGZ8PTAsbXw9MDt2YXIgYnQsYW4sU24sdXIsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsSG49MCxIcj0w''@;'; put 'put ''O3VyPWxlLGxlPWxlKzgwfDAsYnQ9dXIrMTZ8MCxhbj11ciwoQT0wfF8xKGx8PTAsYj0yMCsoU249MHxhW2wrMzUyPj4yXSl8MCwwfGFbKHB8PTApPj4yXSwwKSk/KHc9QSxxZT02KTowIT0oMHwoQT0wfFRfKFNuKzgwfDAsMHxhW3A+PjJdKSkpJiYwIT0oMHwodz0wfF8xKGwsYixBLDI0KSkp''@;'; put 'put ''PzAhPSgwfGZlW2wrMjMyPj4wXSkmJjA9PSgwfElfKGwsdykpP0E9MTpxZT02OkE9MTtlOmRve2lmKDY9PSgwfHFlKSl7aWYoUmU9MHxhW3crMTI+PjJdLCgwfChBPShiZT0wfHEwWzEyNyZhWyhiPWMrMzZ8MCk+PjJdXShjLGYsMHxhWyhrPWwrMzc2fDApPj4yXSwwfGFbKGdlPWwrMzg4fDAp''@;'; put 'put ''Pj4yXSkpK1JlfDApKT4oMHwoTT0wfGFbaz4+Ml0pKSl7aWYoYVtrPj4yXT1BPUErMTZ8MCwhKEE9MHxCaVsxMjcmYVtsKzE2Pj4yXV0oMHxhW2dlPj4yXSxBPDw0KSkpe2Fbaz4+Ml09TSxBPTE7YnJlYWt9YVtnZT4+Ml09QSwoMHxiZSk+KDB8TSkmJnEwWzEyNyZhW2I+PjJdXShjLGYsYmUs''@;'; put 'put ''QSl9Zm9yKGN0PTB8YVtnZT4+Ml0scT1jKzI4fDAsRXQ9bCs0MTJ8MCxadD1sKzQyOHwwLExlPXcrMjB8MCxHPWwrNDI0fDAscGU9MCxSPTAsYj0wOyEoKDB8Uik+PSgwfGJlKSk7KXtpZighKEQ9MHxiXyhsLGMsRD0wfGFbKDB8YVtnZT4+Ml0pKyhSPDw0KT4+Ml0sRCsoMHxCaVsxMjcmYVtx''@;'; put 'put ''Pj4yXV0oYyxEKSl8MCkpKXtBPTE7YnJlYWsgZX1pZigwfGZlWyhBPSgwfGFbRD4+Ml0pLTF8MCk+PjBdKXtxZT0xNTticmVha31pZihmZVtBPj4wXT0xLGY9cGUrMXwwLGFbY3QrKHBlPDwyKT4+Ml09YVtEPj4yXSwwfGZlWyhNPTB8YVtnZT4+Ml0pKyhSPDw0KSsxMj4+MF0pe2lmKHN0PTB8''@;'; put 'put ''YjIoRXQsYywwfGFbTSsoUjw8NCkrND4+Ml0sMHxhW00rKFI8PDQpKzg+PjJdKSxhW2N0KyhmPDwyKT4+Ml09c3QsIXN0KXtBPTE7YnJlYWsgZX19ZWxzZXt0OmRve2lmKDB8ZmVbRCs4Pj4wXSl7Zm9yKEE9MDs7KXtpZigoMHxBKT49KDB8UmUpKXtBPTE7YnJlYWsgdH1pZigoMHxEKT09KDB8''@;'; put 'put ''YVsoaz0wfGFbTGU+PjJdKSsoMTIqQXwwKT4+Ml0pKWJyZWFrO0E9QSsxfDB9QT0wfGZlW2srKDEyKkF8MCkrND4+MF19ZWxzZSBBPTF9d2hpbGUoMCk7aWYoMHwoQT0wfF9fKGwsYyxBLDB8YVtNKyhSPDw0KSs0Pj4yXSwwfGFbTSsoUjw8NCkrOD4+Ml0sRXQpKSlicmVhayBlO2FbY3QrKGY8''@;'; put 'put ''PDIpPj4yXT1hW1p0Pj4yXX1hW1p0Pj4yXT1hW0c+PjJdLEE9MHxhW0QrND4+Ml07ZG97aWYoQSl7aWYoMHxmZVtEKzk+PjBdKXtpZihBPTB8bUEobCxBLEQsMHxhW2N0KyhmPDwyKT4+Ml0sbSkpYnJlYWsgZTtBPXBlO2JyZWFrfWZlWygwfGFbRD4+Ml0pLTE+PjBdPTIsYj1iKzF8MCxBPXBl''@;'; put 'put ''KzJ8MDticmVha31BPXBlKzJ8MH13aGlsZSgwKTtwZT1BLFI9UisxfDB9aWYoMTU9PSgwfHFlKSl7aWYoKDB8YVtsKzE0ND4+Ml0pIT0oMHxjKSl7QT04O2JyZWFrfWFbbCsyODQ+PjJdPWFbKDB8YVtnZT4+Ml0pKyhSPDw0KT4+Ml0sQT04O2JyZWFrfWFbbCszODA+PjJdPXBlLEE9MHxhW3cr''@;'; put 'put ''OD4+Ml07dDpkb3tpZigwIT0oMHxBKSYmKE9lPTB8YVtBPj4yXSwwIT0oMHxmZVtPZSstMT4+MF0pKSlmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxwZSkpe2Y9MCxSPWIsc3Q9cGU7YnJlYWsgdH1pZigoMHxhW2N0KyhBPDwyKT4+Ml0pPT0oMHxPZSkpe3FlPTM3O2JyZWFrIHR9QT1BKzJ8MH1l''@;'; put 'put ''bHNlIEE9LTEscWU9Mzd9d2hpbGUoMCk7Zm9yKDM3PT0oMHxxZSkmJihhW2wrMzg0Pj4yXT1BLGY9MCxSPWIsc3Q9cGUpOyEoKDB8Zik+PSgwfFJlKSk7KXtrPSgwfGFbKGI9MHxhWyhNPShBPTB8YVtMZT4+Ml0pKygxMipmfDApfDApPj4yXSk+PjJdKS0xfDA7dDpkb3tpZigwPT0oMHxmZVtr''@;'; put 'put ''Pj4wXSkmJihIZT1BKygxMipmfDApKzh8MCxWZT0wfGFbSGU+PjJdLDAhPSgwfFZlKSkpe0E9MHxhW2IrND4+Ml07ZG97aWYoQSl7aWYoMHxmZVtiKzk+PjBdKXtpZihBPTB8bUEobCxBLGIsVmUsbSkpYnJlYWsgZTtBPVIsYj1zdDticmVhayB0fWZlW2s+PjBdPTIsQT1SKzF8MDticmVha31m''@;'; put 'put ''ZVtrPj4wXT0xLEE9Un13aGlsZSgwKTthW2N0KyhzdDw8Mik+PjJdPWFbYVtNPj4yXT4+Ml0sYVtjdCsoc3QrMTw8Mik+PjJdPWFbSGU+PjJdLGI9c3QrMnwwfWVsc2UgQT1SLGI9c3R9d2hpbGUoMCk7Zj1mKzF8MCxSPUEsc3Q9Yn1hW2N0KyhzdDw8Mik+PjJdPTA7dDpkb3tpZihSKXtNPTB8''@;'; put 'put ''YVsoRD1sKzM5NnwwKT4+Ml0sQT0yNTUmKGY9MHxmZVsoa3Q9bCs0MDB8MCk+PjBdKTtkb3tpZihSPDwxPj5BKXtBPWY7ZG97U3Q9QSxBPUErMTw8MjQ+PjI0fXdoaWxlKDAhPShSPj4oMjU1JlN0KXwwKSk7aWYoZmVba3Q+PjBdPUE9KDI1NSZBKT4zP0E6MyxiPTB8QmlbMTI3JmFbbCsxNj4+''@;'; put 'put ''Ml1dKDB8YVsoaz1sKzM5MnwwKT4+Ml0sMTI8PChBJj0yNTUpKSl7YVtrPj4yXT1iLGI9MTw8QSxxZT01NTticmVha31mZVtrdD4+MF09ZixBPTE7YnJlYWsgZX1BPTE8PEEsaz1sKzM5MnwwLE0/KGI9QSxBPU0pOihiPUEscWU9NTUpfXdoaWxlKDApO246ZG97aWYoNTU9PSgwfHFlKSlmb3Io''@;'; put 'put ''QT1iOzspe2lmKCFBKXtBPS0xO2JyZWFrIG59YVsoMHxhW2s+PjJdKSsoMTIqKFN0PUErLTF8MCl8MCk+PjJdPS0xLEE9U3R9fXdoaWxlKDApO2FbRD4+Ml09U3Q9QSstMXwwLExlPVNuKzQwfDAsUmU9bCs0MjR8MCxIZT1sKzQyMHwwLHFlPTAtYnwwLHJ0PShWZT1iKy0xfDApPj4+MixXZT1s''@;'; put 'put ''KzIzM3wwLGF0PWwrNDY4fDAsQT0wLE9lPVI7bjpmb3IoOzspe2Zvcig7Oyl7aWYoKDB8QSk+PSgwfHN0KSlicmVhayB0O2lmKDI9PSgwfGZlWyhmPShNPTB8YVsoYz1jdCsoQTw8Mil8MCk+PjJdKS0xfDApPj4wXSkpYnJlYWs7ZmVbZj4+MF09MCxBPUErMnwwfWlmKHZBKGwsYW4pLFJoKGJ0''@;'; put 'put ''LGFuKSxmZVtmPj4wXT0wLCEoZj0wfF8xKGwsTGUsTSwwKSkpe0E9MTticmVha31pZighKGY9MHxhW2YrND4+Ml0pKXtBPTE7YnJlYWt9aWYoIShiZT0wfGFbZis0Pj4yXSkpe0E9Mjc7YnJlYWt9Zm9yKEc9YmUrMjB8MCxxPWJlKzE2fDAsUj0wO0Q9MHxhW3E+PjJdLCEoKDB8Uik+PSgwfChm''@;'; put 'put ''PTB8YVtHPj4yXSkpKTspe2lmKEQ9MHxmZVtEK1I+PjBdLCgwfChmPTB8YVtSZT4+Ml0pKT09KDB8YVtIZT4+Ml0pKXtpZighKCgwfHZsKEV0KSk8PDI0Pj4yNCkpe0E9MTticmVhayBufWY9MHxhW1JlPj4yXX1hW1JlPj4yXT1mKzEsZmVbZj4+MF09RCxSPVIrMXwwfXA1KGJ0LEQsZik7ZG97''@;'; put 'put ''Z2U9TSxNPU0rMXwwfXdoaWxlKDU4IT0oMHxmZVtnZT4+MF0pKTtmb3IocDUoYnQsTSwwfEc0KE0pKTs7KXtpZigoMHwoZj0wfGFbUmU+PjJdKSk9PSgwfGFbSGU+PjJdKSl7aWYoISgoMHx2bChFdCkpPDwyND4+MjQpKXtBPTE7YnJlYWsgbn1mPTB8YVtSZT4+Ml19aWYoZ2U9MHxmZVtNPj4w''@;'; put 'put ''XSxhW1JlPj4yXT1mKzEsZmVbZj4+MF09Z2UsISgwfGZlW00+PjBdKSlicmVhaztNPU0rMXwwfWZvcihnZT0wfE02KGJ0KSxHPTB8YVtrPj4yXSxxPWdlJnFlLE09MCxwZT1WZSZnZTsoMHxhW0crKDEyKnBlfDApPj4yXSk9PSgwfFN0KTspe2lmKCgwfGFbRysoMTIqcGV8MCkrND4+Ml0pPT0o''@;'; put 'put ''MHxnZSkpe2ZvcihmPTB8YVtHKygxMipwZXwwKSs4Pj4yXSxEPTB8YVtadD4+Ml07ISgoUj0oSHI9MHxmZVtEPj4wXSk8PDI0Pj4yND09MCl8SHI8PDI0Pj4yNCE9KDB8ZmVbZj4+MF0pKTspZj1mKzF8MCxEPUQrMXwwO2lmKFIpe0E9ODticmVhayBufX1NPDwyND4+MjR8fChNPTI1NSYocT4+''@;'; put 'put ''PigoMHxYdFtrdD4+MF0pLTF8MCkmcnR8MSkpLHBlPXBlKygoMHxwZSk8KDB8KEhyPTI1NSZNKSk/YjowKS1IcnwwfWlmKDB8ZmVbV2U+PjBdKWZvcihmZVsoMHxhW1JlPj4yXSktMT4+MF09MHxmZVthdD4+MF0sZj0wfGFbYVtiZT4+Ml0+PjJdOzspe2lmKCgwfChNPTB8YVtSZT4+Ml0pKT09''@;'; put 'put ''KDB8YVtIZT4+Ml0pKXtpZighKCgwfHZsKEV0KSk8PDI0Pj4yNCkpe0E9MTticmVhayBufU09MHxhW1JlPj4yXX1pZihIcj0wfGZlW2Y+PjBdLGFbUmU+PjJdPU0rMSxmZVtNPj4wXT1IciwhKDB8ZmVbZj4+MF0pKWJyZWFrO2Y9ZisxfDB9aWYoSHI9MHxhW1p0Pj4yXSxhW1p0Pj4yXT1hW1Jl''@;'; put 'put ''Pj4yXSxhW2M+PjJdPUhyLGFbKDB8YVtrPj4yXSkrKDEyKnBlfDApPj4yXT1TdCxhWygwfGFbaz4+Ml0pKygxMipwZXwwKSs0Pj4yXT1nZSxhWygwfGFbaz4+Ml0pKygxMipwZXwwKSs4Pj4yXT1IcixBPUErMnwwLCEoT2U9T2UrLTF8MCkpYnJlYWsgdH1icmVhayBlfUE9MH13aGlsZSgwKTtm''@;'; put 'put ''b3IoOzspe2lmKCgwfEEpPj0oMHxzdCkpe0E9bTticmVha31mZVsoMHxhW2N0KyhBPDwyKT4+Ml0pLTE+PjBdPTAsQT1BKzJ8MH1mb3IoO0E9MHxhW0E+PjJdOylmZVsoMHxhW2FbQSsxMj4+Ml0+PjJdKS0xPj4wXT0wLEE9QSs0fDA7aWYoMHxmZVtsKzIzMj4+MF0pe2lmKEE9MHxhW3crND4+''@;'; put 'put ''Ml0pe2lmKCEoQT0wfGFbQSs0Pj4yXSkpe0E9Mjc7YnJlYWt9Zm9yKHc9MHxhW3A+PjJdO2I9dysxfDAsNTghPSgwfGZlW3c+PjBdKTspdz1ifWVsc2V7aWYoIShBPTB8YVtTbisxNTY+PjJdKSl7QT0wO2JyZWFrfWI9MHxhW3A+PjJdfWlmKDAhPSgwfGZlW2wrMjMzPj4wXSkmJjAhPSgwfChI''@;'; put 'put ''bj0wfGFbYVtBPj4yXT4+Ml0pKSlmb3Iodz0wO2s9dysxfDAsMHxmZVtIbit3Pj4wXTspdz1rO2Vsc2Ugaz0wO2ZvcihhW3ArND4+Ml09YixhW3ArMTY+PjJdPWFbKFI9QSsyMHwwKT4+Ml0sYVtwKzg+PjJdPWFbYVtBPj4yXT4+Ml0sYVtwKzIwPj4yXT1rLEc9MDtxPUcrMXwwLDB8ZmVbYitH''@;'; put 'put ''Pj4wXTspRz1xO2lmKCgwfChNPXEraysodz0wfGFbUj4+Ml0pfDApKT4oMHxhWyhmPUErMjR8MCk+PjJdKSl7aWYoIShEPTB8X29bNjMmYVtsKzEyPj4yXV0odz1NKzI0fDApKSl7QT0xO2JyZWFrfWZvcihhW2Y+PjJdPXcsZ28oMHxELDB8YVsoZj1BKzE2fDApPj4yXSwwfGFbUj4+Ml0pLHc9''@;'; put 'put ''bCszNjB8MDt3PTB8YVt3Pj4yXTspKDB8YVsoTT13KzEyfDApPj4yXSk9PSgwfGFbZj4+Ml0pJiYoYVtNPj4yXT1EKTtDb1sxMjcmYVtsKzIwPj4yXV0oMHxhW2Y+PjJdKSxhW2Y+PjJdPUQsTT1ELHc9MHxhW1I+PjJdfWVsc2UgZj1NPUErMTZ8MCxNPTB8YVtNPj4yXTtnbygwfCh3PU0rd3ww''@;'; put 'put ''KSwwfGIsMHxxKSwwfGsmJihmZVsoSHI9dytHfDApPj4wXT0wfGZlW2wrNDY4Pj4wXSxnbyhIcisxfDAsMHxhW2FbQT4+Ml0+PjJdLDB8aykpLGFbcD4+Ml09YVtmPj4yXSxBPTB9ZWxzZSBBPTB9fXdoaWxlKDApO3JldHVybiBsZT11ciwwfEF9ZnVuY3Rpb24gUUIobCxjKXtjfD0wO3ZhciBm''@;'; put 'put ''LHAsbSxBPTAsdz0wO2ZvcihwPTEwNCsobHw9MCl8MCxtPWwrMzcyfDAsZj1sKzR8MDtjOykobD0wfGFbcD4+Ml0pJiZHc1s2MyZsXSgwfGFbZj4+Ml0sMHxhW2FbYz4+Ml0+PjJdKSxsPWMsQT0wfGFbKHc9Yys0fDApPj4yXSxhW3c+PjJdPWFbbT4+Ml0sYVttPj4yXT1jLGFbNCsoMHxhW2w+''@;'; put 'put ''PjJdKT4+Ml09YVtjKzg+PjJdLGM9QX1mdW5jdGlvbiBkeChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssTSxELFIscSxtPTAsQT0wLEc9MCxwZT0wO3E9bGUsbGU9bGUrMTZ8MCxiPXEsYVsyNzYrKGx8PTApPj4yXT02MixhWyhrPWwrMjg0fDApPj4yXT1jLE09bCsxNDR8MCxE''@;'; put 'put ''PWwrMjg4fDAsUj1sKzgwfDAsdz1sKzQ3NnwwLG09YztlOmZvcig7Oyl7c3dpdGNoKGFbYj4+Ml09MCxwZT0wfHEwWzEyNyZhWyhwZT0wfGFbTT4+Ml0pPj4yXV0ocGUsbSxmLGIpLGFbRD4+Ml09Yz0wfGFbYj4+Ml0sQT1jLDB8cGUpe2Nhc2UtMTU6Rz0zO2JyZWFrIGU7Y2FzZS00Okc9Nzti''@;'; put 'put ''cmVhayBlO2Nhc2UgMDpHPTEyO2JyZWFrIGU7Y2FzZS0xOkc9MTM7YnJlYWsgZTtjYXNlLTI6Rz0xNTticmVhayBlO2Nhc2UgMTU6MHxhW1I+PjJdJiZfMihsLDB8YVtNPj4yXSxtLEEpO2JyZWFrO2Nhc2UgMTE6aWYoISgwfGRBKGwsMHxhW00+PjJdLG0sQSkpKXtjPTE7YnJlYWsgZX1icmVh''@;'; put 'put ''aztjYXNlIDEzOmlmKCEoMHxTXyhsLDB8YVtNPj4yXSxtLEEpKSl7Yz0xO2JyZWFrIGV9YnJlYWs7ZGVmYXVsdDpjPTk7YnJlYWsgZX1zd2l0Y2goYVtrPj4yXT1jPTB8YVtiPj4yXSwwfGFbdz4+Ml0pe2Nhc2UgMjpjPTM1O2JyZWFrIGU7Y2FzZSAzOkc9MTg7YnJlYWsgZX1tPWN9ZG97aWYo''@;'; put 'put ''Mz09KDB8Rykpe2lmKDB8YVtSPj4yXSl7aWYoXzIobCwwfGFbTT4+Ml0sbSxBKSwyPT0oMHxhW3c+PjJdKSl7Yz0zNTticmVha31jPTB8YVtiPj4yXX1hW3A+PjJdPWMsYz0wfWVsc2UgNz09KDB8Ryk/KGFbcD4+Ml09bSxjPTApOjEyPT0oMHxHKT8oYVtrPj4yXT1jLGM9NCk6MTM9PSgwfEcp''@;'; put 'put ''PzB8ZmVbbCs0ODA+PjBdP2M9NTooYVtwPj4yXT1tLGM9MCk6MTU9PSgwfEcpPzB8ZmVbbCs0ODA+PjBdP2M9NjooYVtwPj4yXT1tLGM9MCk6MTg9PSgwfEcpJiYoYVtwPj4yXT1jLGM9MCl9d2hpbGUoMCk7cmV0dXJuIGxlPXEsMHxjfWZ1bmN0aW9uIFBtKGwsYyxmLHAsbSxBKXtsfD0wLGN8''@;'; put 'put ''PTAscHw9MCxtfD0wLEF8PTA7dmFyIGssTSxELFIsRyxxLE9lLExlLFJlLEhlLFZlLHFlLFdlLHc9MCxiPTAscGU9MCxnZT0wLGJlPTAscnQ9MDtXZT1sZSxsZT1sZSsxNnwwLHFlPVdlKzR8MCxIZT1XZSxhWyhWZT1XZSs4fDApPj4yXT13PTB8YVsoZnw9MCk+PjJdLCgwfGFbbCsxNDQ+PjJd''@;'; put 'put ''KT09KDB8Yyk/KGFbKGdlPWwrMjg0fDApPj4yXT13LGJlPWwrMjg4fDApOihnZT1iZT0wfGFbbCsyOTY+PjJdLGJlPWJlKzR8MCksYVtnZT4+Ml09dyxhW2Y+PjJdPTAsaz1jKzh8MCxNPWwrNjB8MCxPZT1sKzgwfDAsTGU9bCs0fDAsUmU9bCs0NzZ8MCxEPWMrNjh8MCxSPWwrNDR8MCxHPWMr''@;'; put 'put ''NTZ8MCxxPWwrNDh8MDtlOmZvcig7Oyl7Yj0wfHEwWzEyNyZhW2s+PjJdXShjLDB8YVtWZT4+Ml0scCxxZSksYVtiZT4+Ml09dz0wfGFbcWU+PjJdLHBlPXc7dDpkb3tzd2l0Y2goMHxiKXtjYXNlIDQwOnJ0PTY7YnJlYWsgZTtjYXNlIDA6cnQ9MjM7YnJlYWsgZTtjYXNlLTI6cnQ9MjQ7YnJl''@;'; put 'put ''YWsgZTtjYXNlLTQ6Y2FzZS0xOnJ0PTI2O2JyZWFrIGU7Y2FzZSA3OmlmKDB8KHc9MHxhW00+PjJdKSl7ZmVbSGU+PjBdPTEwLGRsWzEyNyZ3XSgwfGFbTGU+PjJdLEhlLDEpO2JyZWFrIHR9MHxhW09lPj4yXSYmXzIobCxjLDB8YVtWZT4+Ml0scGUpO2JyZWFrO2Nhc2UgNjppZighKGI9MHxh''@;'; put 'put ''W00+PjJdKSl7aWYoISgwfGFbT2U+PjJdKSlicmVhayB0O18yKGwsYywwfGFbVmU+PjJdLHBlKTticmVhayB0fWlmKDB8ZmVbRD4+MF0pe2RsWzEyNyZiXSgwfGFbTGU+PjJdLHBlPTB8YVtWZT4+Ml0sdy1wZXwwKTticmVhayB0fWZvcih3PXBlO2FbSGU+PjJdPWFbUj4+Ml0scGU9MHxSMlsx''@;'; put 'put ''MjcmYVtHPj4yXV0oYyxWZSx3LEhlLDB8YVtxPj4yXSksYVtiZT4+Ml09YVtxZT4+Ml0sZGxbMTI3JmJdKDB8YVtMZT4+Ml0sdz0wfGFbUj4+Ml0sKDB8YVtIZT4+Ml0pLXd8MCksIShwZT4+PjA8Mik7KWFbZ2U+PjJdPWFbVmU+PjJdLHc9MHxhW3FlPj4yXTticmVhaztkZWZhdWx0OnJ0PTI4''@;'; put 'put ''O2JyZWFrIGV9fXdoaWxlKDApO3N3aXRjaChhW1ZlPj4yXT1wZT0wfGFbcWU+PjJdLGFbZ2U+PjJdPXBlLDB8YVtSZT4+Ml0pe2Nhc2UgMzpydD0zMDticmVhayBlO2Nhc2UgMjp3PTM1O2JyZWFrIGV9fXJldHVybiA2PT0oMHxydCk/KCh3PTB8YVtsKzc2Pj4yXSk/Q29bMTI3JnddKDB8YVtM''@;'; put 'put ''ZT4+Ml0pOjB8YVtPZT4+Ml0mJl8yKGwsYywwfGFbVmU+PjJdLHBlKSxhW2Y+PjJdPXc9MHxhW3FlPj4yXSxhW20+PjJdPXcsdz0yPT0oMHxhW1JlPj4yXSk/MzU6MCk6MjM9PSgwfHJ0KT8oYVtnZT4+Ml09dyx3PTQpOjI0PT0oMHxydCk/QTw8MjQ+PjI0PyhhW20+PjJdPWFbVmU+PjJdLHc9''@;'; put 'put ''MCk6dz02OjI2PT0oMHxydCk/QTw8MjQ+PjI0PyhhW20+PjJdPWFbVmU+PjJdLHc9MCk6dz0yMDoyOD09KDB8cnQpPyhhW2dlPj4yXT13LHc9MjMpOjMwPT0oMHxydCkmJihhW20+PjJdPWFbcWU+PjJdLHc9MCksbGU9V2UsMHx3fWZ1bmN0aW9uIHB4KGwsYyxmLHApe3JldHVybiAwPT0oMHwo''@;'; put 'put ''Yz0wfEJtKGx8PTAsMSwwfGFbbCsxNDQ+PjJdLGN8PTAsZnw9MCxwfD0wLDA9PSgwfGZlW2wrNDgwPj4wXSkmMSkpKSYmKDB8eF8obCkpPDwyND4+MjQ9PTAmJihjPTEpLDB8Y31mdW5jdGlvbiB4XyhsKXt2YXIgUixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9y''@;'; put 'put ''KFI9MTYrKGx8PTApfDAsbD1sKzM2MHwwOzspe2lmKCEobD0wfGFbbD4+Ml0pKXtsPTE7YnJlYWt9aWYoKDB8KGY9MHxhWyhEPWwrNHwwKT4+Ml0pKT09KDB8KHA9KG09MHxhWyhrPWwrMzZ8MCk+PjJdKSsoYj0xKygwfGFbbCsyND4+Ml0pfDApfDApKSl7bD0xO2JyZWFrfWlmKCgwfChBPShj''@;'; put 'put ''PTB8YVsoTT1sKzh8MCk+PjJdKStifDApKT4oKDB8YVsodz1sKzQwfDApPj4yXSktbXwwKSl7aWYoIShwPTB8QmlbMTI3JmFbUj4+Ml1dKG0sQSkpKXtsPTA7YnJlYWt9KDB8YVsoYz1sKzEyfDApPj4yXSk9PSgwfChtPTB8YVtrPj4yXSkpJiYoYVtjPj4yXT1wKSwwfChmPTB8YVsoYz1sKzE2''@;'; put 'put ''fDApPj4yXSkmJihhW2M+PjJdPXArKGYtbSkpLGFbaz4+Ml09cCxhW3c+PjJdPXArQSxwPXArYnwwLGY9MHxhW0Q+PjJdLGM9MHxhW00+PjJdfWdvKDB8cCwwfGYsMHxjKSxhW0Q+PjJdPXB9cmV0dXJuIDB8bH1mdW5jdGlvbiBUXyhsLGMpe2N8PTA7dmFyIHAsbSxmPTAsQT0wLHc9MDtmb3Io''@;'; put 'put ''cD0xMisobHw9MCl8MCxtPWwrOHwwOzspe2lmKCgwfChmPTB8YVtwPj4yXSkpPT0oMHxhW20+PjJdKSl7aWYoISgoMHx2bChsKSk8PDI0Pj4yNCkpe2M9MDticmVha31mPTB8YVtwPj4yXX1pZih3PTB8ZmVbYz4+MF0sYVtwPj4yXT1mKzEsZmVbZj4+MF09dywhKDB8ZmVbYz4+MF0pKXtBPTY7''@;'; put 'put ''YnJlYWt9Yz1jKzF8MH1yZXR1cm4gNj09KDB8QSkmJihjPTB8YVsodz1sKzE2fDApPj4yXSxhW3c+PjJdPWFbcD4+Ml0pLDB8Y31mdW5jdGlvbiBJXyhsLGMpe3ZhciB3LGIsayxNLEQsZj0wLHA9MCxtPTAsQT0wLFI9MDtiPTgwKyhSPTB8YVszNTIrKGx8PTApPj4yXSl8MCxrPVIrOTJ8MCxN''@;'; put 'put ''PVIrODh8MCxEPVIrNjB8MCxSPVIrOTZ8MCx3PTQrKGN8PTApfDAsQT0wfGFbYz4+Ml07ZTpmb3IoOzspe3N3aXRjaCgwfGZlW0E+PjBdKXtjYXNlIDA6Zj0xO2JyZWFrIGU7Y2FzZSA1ODpmb3IobT0wfGFbYz4+Ml07cD0oMHwoZj0wfGFbaz4+Ml0pKT09KDB8YVtNPj4yXSksKDB8bSkhPSgw''@;'; put 'put ''fEEpOyl7aWYocCl7aWYoISgoMHx2bChiKSk8PDI0Pj4yNCkpe2Y9MDticmVhayBlfWY9MHxhW2s+PjJdfXA9MHxmZVttPj4wXSxhW2s+PjJdPWYrMSxmZVtmPj4wXT1wLG09bSsxfDB9aWYocCl7aWYoISgoMHx2bChiKSk8PDI0Pj4yNCkpe2Y9MDticmVhayBlfWY9MHxhW2s+PjJdfWlmKGFb''@;'; put 'put ''az4+Ml09ZisxLGZlW2Y+PjBdPTAsIShmPTB8XzEobCxELDB8YVtSPj4yXSw4KSkpe2Y9MDticmVhayBlfSgwfGFbZj4+Ml0pPT0oMHwocD0wfGFbUj4+Ml0pKT9hW1I+PjJdPWFbaz4+Ml06YVtrPj4yXT1wLGFbdz4+Ml09Zn1BPUErMXwwfXJldHVybiAwfGZ9ZnVuY3Rpb24gbUEobCxjLGYs''@;'; put 'put ''cCxtKXtsfD0wLGZ8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTA7az0wfGZlWyhwfD0wKT4+MF0sQT0wPT0oMHwodz0wfGFbKGN8PTApPj4yXSkpO2Rve2lmKGs8PDI0Pj4yNClpZihBfHwxMjAhPSgwfGZlW3c+PjBdKXx8MTA5IT0oMHxmZVt3KzE+PjBd''@;'; put 'put ''KXx8MTA4IT0oMHxmZVt3KzI+PjBdKSlEPTAsYj0xMTtlbHNle2lmKChBPTB8ZmVbdyszPj4wXSk8PDI0Pj4yND09MTEwJiYxMTU9PSgwfGZlW3crND4+MF0pJiYwPT0oMHxmZVt3KzU+PjBdKSl7QT0zOTticmVha31EPUE8PDI0Pj4yND09MCYxLGI9MTF9ZWxzZSBBPyhEPTAsYj0xMSk6QT0y''@;'; put 'put ''OH13aGlsZSgwKTtlOmRve2lmKDExPT0oMHxiKSl7Zm9yKE09RDw8MjQ+PjI0IT0wLEE9MSx3PTEsUj0wO2I9dzw8MjQ+PjI0IT0wLGs8PDI0Pj4yNDspe2Rve2lmKGIpe2lmKCgwfFIpPD0zNiYmazw8MjQ+PjI0PT0oMHxmZVsxNDIyNTcrUj4+MF0pKWJyZWFrO3c9MH1lbHNlIHc9MH13aGls''@;'; put 'put ''ZSgwKTtkb3tpZighKE18QTw8MjQ+PjI0PT0wKSl7aWYoKDB8Uik8PTI5JiZrPDwyND4+MjQ9PSgwfGZlWzE0MjI5NCtSPj4wXSkpYnJlYWs7QT0wfX13aGlsZSgwKTtSPWs9UisxfDAsaz0wfGZlW3Araz4+MF19aWYoKDI1NSZEfDApIT0oYiYzNj09KDB8UikmMXwwKSl7QT1NPzM4OjQwO2Jy''@;'; put 'put ''ZWFrfWlmKEE8PDI0Pj4yNCE9MCYyOT09KDB8UikpQT00MDtlbHNle1I9UisoMCE9KDB8ZmVbKEc9bCs0Njh8MCk+PjBdKSYxKXwwLGI9MHxhWyhBPWwrMzcyfDApPj4yXTtkb3tpZighYil7aWYoISh3PTB8X29bNjMmYVsoQT1sKzEyfDApPj4yXV0oMjgpKSl7QT0xO2JyZWFrIGV9aWYoRD0w''@;'; put 'put ''fF9vWzYzJmFbQT4+Ml1dKGI9UisyNHwwKSxhW3crMTY+PjJdPUQsRCl7YVt3KzI0Pj4yXT1iLGI9dzticmVha31Db1sxMjcmYVtsKzIwPj4yXV0odyksQT0xO2JyZWFrIGV9aWYoKDB8Uik+KDB8YVsodz1iKzI0fDApPj4yXSkpe2lmKCEoRD0wfEJpWzEyNyZhW2wrMTY+PjJdXSgwfGFbKGs9''@;'; put 'put ''YisxNnwwKT4+Ml0sTT1SKzI0fDApKSl7QT0xO2JyZWFrIGV9YVtrPj4yXT1ELGFbdz4+Ml09TX1hW0E+PjJdPWFbYis0Pj4yXX13aGlsZSgwKTthW2IrMjA+PjJdPVIsZ28oMHxhWyh3PWIrMTZ8MCk+PjJdLDB8cCwwfFIpLChBPTB8ZmVbRz4+MF0pPDwyND4+MjQmJihmZVsoMHxhW3c+PjJd''@;'; put 'put ''KSsoUistMSk+PjBdPUEpLGFbYj4+Ml09YyxhW2IrMTI+PjJdPWYsYVtiKzg+PjJdPWFbKHc9Yys0fDApPj4yXSxhW3c+PjJdPUE9MD09KDB8ZmVbcD4+MF0pJiYoMTUyKygwfGFbbCszNTI+PjJdKXwwKT09KDB8Yyk/MDpiLGFbYis0Pj4yXT1hW20+PjJdLGFbbT4+Ml09YiwwIT0oMHxmKSYm''@;'; put 'put ''MCE9KDB8KHE9MHxhW2wrMTAwPj4yXSkpJiZkbFsxMjcmcV0oMHxhW2wrND4+Ml0sMHxhW2M+PjJdLDB8YVt3Pj4yXT9wOjApLEE9MH19fXdoaWxlKDApO3JldHVybiAwfEF9ZnVuY3Rpb24gdkEobCxjKXt2YXIgZjtsfD0wLGFbKGY9Y3w9MCk+PjJdPTAsYVtmKzQ+PjJdPTAsYVsoYz1jKzh8''@;'; put 'put ''MCk+PjJdPTB8ZnVuY3Rpb24gRF8obCl7bHw9MDtmb3IodmFyIGM9MDtjPTB8YVtsKzQ3Mj4+Ml07KWw9YztyZXR1cm4gMHxhW2wrNDkyPj4yXX0obCksYVtjKzQ+PjJdPTB9ZnVuY3Rpb24gUmgobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wO0E9MTkzNjY4MjM0MV5hWzQrKGY9Y3w9MCk+PjJd''@;'; put 'put ''LGFbKHA9bHw9MCk+PjJdPTE4ODY2MTA4MDVeYVtmPj4yXSxhW3ArND4+Ml09QSxmPTE2ODUwMjUzNzdeYVs0KyhBPXA9Yys4fDApPj4yXSxhWyhtPWwrOHwwKT4+Ml09MTg1MjA3NTg4NV5hW0E+PjJdLGFbbSs0Pj4yXT1mLGM9MTgxOTg5NTY1M15hWyhtPWMpKzQ+PjJdLGFbKGY9bCsxNnww''@;'; put 'put ''KT4+Ml09MTg1MjE0MjE3N15hW20+PjJdLGFbZis0Pj4yXT1jLGY9MTk1MjgwMTg5MF5hW3ArND4+Ml0sYVsoYz1sKzI0fDApPj4yXT0yMDM3NjcxMjgzXmFbcD4+Ml0sYVtjKzQ+PjJdPWYsYVtsKzQwPj4yXT1sKzMyLGFbKGM9bCs0OHwwKT4+Ml09MCxhW2MrND4+Ml09MH1mdW5jdGlvbiBw''@;'; put 'put ''NShsLGMsZil7dmFyIG0sQSx3LGIsayxNLEQsUixHLHEscGUsZ2UsYmUscD0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTA7RD0oY3w9MCkrKGZ8PTApfDAsUj00MCsobHw9MCl8MCxHPWwrNDB8MCxxPWwrMzJ8MCxwZT1sKzMzfDAsZ2U9bCszNHwwLGJlPWwrMzV8MCxtPWwr''@;'; put 'put ''MzZ8MCxBPWwrMzd8MCx3PWwrMzh8MCxiPWwrMzl8MCxrPWwrMjR8MCxNPWwrNDh8MCxmPWM7ZG97Zm9yKDs7KXtpZihwPTB8YVtSPj4yXSxmPj4+MD49RD4+PjApe2M9MDticmVha31pZihwPj4+MD49Rz4+PjApe2M9MTticmVha31jPTB8ZmVbZj4+MF0sYVtSPj4yXT1wKzEsZmVbcD4+MF09''@;'; put 'put ''YyxmPWYrMXwwfWlmKHA+Pj4wPEc+Pj4wKWJyZWFrO3FlPTB8WHRbcT4+MF0scnQ9MHxabygwfFh0W3BlPj4wXSwwLDgpLHA9RG4sVmU9MHxabygwfFh0W2dlPj4wXSwwLDE2KSxwfD1EbixSZT0wfFpvKDB8WHRbYmU+PjBdLDAsMjQpLHA9cHxEbnwwfFh0W20+PjBdLE9lPTB8Wm8oMHxYdFtB''@;'; put 'put ''Pj4wXSwwLDQwKSxwfD1EbixIZT0wfFpvKDB8WHRbdz4+MF0sMCw0OCkscHw9RG4sTGU9MHxabygwfFh0W2I+PjBdLDAsNTYpLExlfD1ydHxxZXxWZXxSZXxPZXxIZSxPZT0ocHw9RG4pXmFbKEhlPWspKzQ+PjJdLGFbKFJlPWspPj4yXT1MZV5hW0hlPj4yXSxhW1JlKzQ+PjJdPU9lLEFBKGws''@;'; put 'put ''MikscF49YVsoUmU9bCkrND4+Ml0sYVsoT2U9bCk+PjJdPWFbUmU+PjJdXkxlLGFbT2UrND4+Ml09cCxhW1I+PjJdPXEsT2U9MHx6bCgwfGFbKE9lPU0pPj4yXSwwfGFbT2UrND4+Ml0sOCwwKSxhWyhwPU0pPj4yXT1PZSxhW3ArND4+Ml09RG59d2hpbGUoYyl9ZnVuY3Rpb24gRzQobCl7bHw9''@;'; put 'put ''MDt2YXIgYz0wO2ZvcihjPTA7MHxmZVtsPj4wXTspYz1jKzF8MCxsPWwrMXwwO3JldHVybiAwfGN9ZnVuY3Rpb24gTTYobCl7dmFyIHcsYz0wLGY9MCxwPTAsbT0wLEE9MDtzd2l0Y2goZj0wfFpvKDB8KGY9MHx6bCgwfGFbKGY9NDgrKGx8PTApfDApPj4yXSwwfGFbZis0Pj4yXSwwfChBPSgw''@;'; put 'put ''fGFbbCs0MD4+Ml0pLShwPWwrMzJ8MCl8MCksMCkpLDB8RG4sNTYpLGM9RG4sQTw8MjQ+PjI0fDApe2Nhc2UgNzpmPTB8Wm8oMHxYdFtsKzM4Pj4wXSwwLDQ4KXxmLGN8PURuLG09MzticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNTptPTQ7YnJlYWs7Y2FzZSA0Om09NTticmVhaztjYXNl''@;'; put 'put ''IDM6bT02O2JyZWFrO2Nhc2UgMjptPTc7YnJlYWs7Y2FzZSAxOm09OH1yZXR1cm4gMz09KDB8bSkmJihmfD1BPTB8Wm8oMHxYdFtsKzM3Pj4wXSwwLDQwKSxjfD1EbixtPTQpLDQ9PSgwfG0pJiYoY3w9MHxYdFtsKzM2Pj4wXSxtPTUpLDU9PSgwfG0pJiYoZnw9QT0wfFpvKDB8WHRbbCszNT4+''@;'; put 'put ''MF0sMCwyNCksY3w9RG4sbT02KSw2PT0oMHxtKSYmKGZ8PUE9MHxabygwfFh0W2wrMzQ+PjBdLDAsMTYpLGN8PURuLG09NyksNz09KDB8bSkmJihBPTB8Wm8oMHxYdFtsKzMzPj4wXSwwLDgpLGN8PURuLGZ8PUEsbT04KSw4PT0oMHxtKSYmKGY9MHxmfFh0W3A+PjBdKSxtPWFbNCsodz1BPWwr''@;'; put 'put ''MjR8MCk+PjJdXmMsYVsocD1BKT4+Ml09YVt3Pj4yXV5mLGFbcCs0Pj4yXT1tLEFBKGwsMiksY149YVsocD1sKSs0Pj4yXSxhWyhtPWwpPj4yXT1hW3A+PjJdXmYsYVttKzQ+PjJdPWMsZj0wfGFbNCsoYz1tPWwrMTZ8MCk+PjJdLGFbKHA9bSk+PjJdPTI1NV5hW2M+PjJdLGFbcCs0Pj4yXT1m''@;'; put 'put ''LEFBKGwsNCkscD1sLERuPWFbNCsobD1sKzh8MCk+PjJdXmFbcCs0Pj4yXV5hW20rND4+Ml1eYVtBKzQ+PjJdLGFbbD4+Ml1eYVtwPj4yXV5hW20+PjJdXmFbQT4+Ml18MH1mdW5jdGlvbiBBQShsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0w''@;'; put 'put ''LHBlPTAsZ2U9MDtmb3IocD04KyhsfD0wKXwwLG09bCsyNHwwLEE9bCsxNnwwLGY9MDshKCgwfGYpPj0oMHxjKSk7KXE9MHx6bCgwfGFbKHE9bCk+PjJdLDB8YVtxKzQ+PjJdLDB8KEc9MHxhWyh3PXApPj4yXSksMHwodz0wfGFbdys0Pj4yXSkpLE09RG4sUj0wfFpvKDB8RywwfHcsMTMpLEQ9''@;'; put 'put ''RG4sdz0oUnwodz0wfHdsKDB8RywwfHcsNTEpKSlecSxEPShEfERuKV5NLGs9MHx6bCgwfGFbKGs9QSk+PjJdLDB8YVtrKzQ+PjJdLDB8KEc9MHxhWyhSPW0pPj4yXSksMHwoUj0wfGFbUis0Pj4yXSkpLGI9RG4sZ2U9MHxabygwfEcsMHxSLDE2KSxwZT1EbixxPTB8emwoMHxNLDB8cSwwfChS''@;'; put 'put ''PShnZXwoUj0wfHdsKDB8RywwfFIsNDgpKSleayksMHwocGU9KHBlfERuKV5iKSksTT1EbixhWyhnZT1sKT4+Ml09cSxhW2dlKzQ+PjJdPU0sZ2U9MHxabygwfFIsMHxwZSwyMSksRz1EbixwZT0wfHdsKDB8UiwwfHBlLDQzKSxhWyhSPW0pPj4yXT0oZ2V8cGUpXnEsYVtSKzQ+PjJdPShHfERu''@;'; put 'put ''KV5NLGI9MHx6bCgwfGssMHxiLDB8dywwfEQpLGs9RG4sUj0wfFpvKDB8dywwfEQsMTcpLE09RG4sRD0wfHdsKDB8dywwfEQsNDcpLGFbKHc9cCk+PjJdPShSfEQpXmIsYVt3KzQ+PjJdPShNfERuKV5rLGFbKHc9QSk+PjJdPWssYVt3KzQ+PjJdPWIsZj1mKzF8MH1mdW5jdGlvbiB5QShsLGMs''@;'; put 'put ''ZixwLG0sQSl7cHw9MCxtfD0wO3ZhciBSLEcscSxwZSxnZSxiZSxMZSxSZSxIZSxWZSxxZSxydCxXZSxhdCxTdCxrdCxzdCxFdCxadCxjdCxidCxhbixTbix3PTAsYj0wLGs9MCxNPTAsRD0wLE9lPTAsSG49MDtTbj1sZSxsZT1sZSsxNnwwLGN0PVNuLGJ0PVNuKzR8MCxSPTE2KyhjfD0wKXww''@;'; put 'put ''LEc9Yys0MHwwLHE9MTQ0KyhsfD0wKXwwLHBlPWwrMjg0fDAsZ2U9KGZ8PTApPDwyND4+MjQ9PTAsYmU9MTIrKEF8PTApfDAsTGU9QSsxNnwwLFJlPUErOHwwLEhlPWMrNDR8MCxWZT1jKzY0fDAscWU9bCs0MzZ8MCxydD1sKzQ1MnwwLFdlPWwrNDQ4fDAsYXQ9KDgwKyhhbj0wfGFbbCszNTI+''@;'; put 'put ''PjJdKXwwKT09KDB8QSksU3Q9bCsyNjh8MCxrdD1hbisxMzB8MCxzdD1hbisxMjl8MCxFdD1sKzI5NnwwLFp0PWwrMjI0fDAsdz0wO2U6Zm9yKDs7KXt0OmZvcig7Oyl7c3dpdGNoKDB8cTBbMTI3JmFbUj4+Ml1dKGMscCxtLGN0KSl7Y2FzZS00Onc9MCxEPTYxO2JyZWFrIGU7Y2FzZSAwOkQ9''@;'; put 'put ''NDticmVhayBlO2Nhc2UtMTpEPTY7YnJlYWsgZTtjYXNlIDY6RD0yMTticmVhayB0O2Nhc2UtMzpEPTIyO2JyZWFrIHQ7Y2FzZSA3OmNhc2UgMzk6RD0yMzticmVhayB0O2Nhc2UgMTA6Yj0wfEJpWzEyNyZhW0c+PjJdXShjLHApO246ZG97aWYoKDB8Yik8MCkoMHxhW3E+PjJdKT09KDB8Yyk/''@;'; put 'put ''KGFbcGU+PjJdPXAsYj0xLHc9MTQpOihiPTEsdz0xNCk7ZWxzZXtpZihnZSYzMj09KDB8Yikpe2lmKCgwfGFbTGU+PjJdKT09KDB8KGs9MHxhW2JlPj4yXSkpKXtiPTQ7YnJlYWt9aWYoMzI9PSgwfGZlW2srLTE+PjBdKSl7Yj00O2JyZWFrfX1mb3IoTT0wfFc0KGIsYnQpLGs9MDs7KXtpZigo''@;'; put 'put ''MHxrKT49KDB8TSkpe2I9MDticmVhayBufWlmKCgwfChiPTB8YVtiZT4+Ml0pKT09KDB8YVtSZT4+Ml0pKXtpZighKCgwfHZsKEEpKTw8MjQ+PjI0KSl7Yj0xLHc9MTticmVhayBufWI9MHxhW2JlPj4yXX1Ibj0wfGZlW2J0K2s+PjBdLGFbYmU+PjJdPWIrMSxmZVtiPj4wXT1IbixrPWsrMXww''@;'; put 'put ''fX19d2hpbGUoMCk7c3dpdGNoKDcmYil7Y2FzZSA0OmNhc2UgMDpicmVhayB0fWJyZWFrO2Nhc2UgOTppZigoYj0yNTUmKDB8bWlbNjMmYVtIZT4+Ml1dKGMscCsoYj0wfGFbVmU+PjJdKXwwLDAtYisoMHxhW2N0Pj4yXSl8MCkpKTw8MjQ+PjI0KXtEPTMxO2JyZWFrIHR9aWYoIShiPTB8YjIo''@;'; put 'put ''cWUsYyxwKyhiPTB8YVtWZT4+Ml0pfDAsMC1iKygwfGFbY3Q+PjJdKXwwKSkpe3c9MSxEPTYxO2JyZWFrIGV9TT0wfF8xKGwsYW4sYiwwKSxhW1dlPj4yXT1hW3J0Pj4yXTtkb3tpZihhdCl7aWYoISgwfGFbU3Q+PjJdKSl7aWYoTSlicmVhazticmVhayB0fWlmKDB8ZmVba3Q+PjBdKXtpZihi''@;'; put 'put ''PTAhPSgwfE0pLDB8YVtFdD4+Ml0pe09lPWIsRD00NzticmVha31EPTQ1O2JyZWFrfWlmKGI9MCE9KDB8TSksMHxmZVtzdD4+MF0pe09lPWIsRD00NzticmVha31EPTQ1O2JyZWFrfWlmKDB8ZmVbc3Q+PjBdKXtpZihiPTAhPSgwfE0pLDB8ZmVba3Q+PjBdKXtEPTQ1O2JyZWFrfU9lPWIsRD00''@;'; put 'put ''NzticmVha31pZihNKXtEPTQ2O2JyZWFrfXc9MTEsRD02MTticmVhayBlfXdoaWxlKDApO2lmKDQ1PT0oMHxEKSl7aWYoIWIpe3c9MTEsRD02MTticmVhayBlfUQ9NDZ9ZWxzZSBpZig0Nz09KDB8RCkmJihEPTAsIU9lKSlicmVhayB0O2lmKDQ2PT0oMHxEKSYmKEQ9MCwwPT0oMHxmZVtNKzM0''@;'; put 'put ''Pj4wXSkpKXt3PTI0LEQ9NjE7YnJlYWsgZX1pZigwfGZlWyhrPU0rMzJ8MCk+PjBdKXtEPTQ5O2JyZWFrIGV9aWYoMHxhW00rMjg+PjJdKXtEPTUyO2JyZWFrIGV9aWYoIShiPTB8YVtNKzQ+PjJdKSl7RD01NTticmVhayBlfWlmKE09YisoMHxhW00rOD4+Ml0pfDAsZmVbaz4+MF09MSxNPTB8''@;'; put 'put ''eUEobCwwfGFbWnQ+PjJdLGYsYixNLEEpLGZlW2s+PjBdPTAsYj0wPT0oMHxNKSlicmVhayB0O2I9MSYoMV5iKSx3PU07YnJlYWs7ZGVmYXVsdDpEPTU4O2JyZWFrIGV9aWYoYilicmVhayBlfWlmKDIxPT0oMHxEKSl7aWYoRD0wLCEoMHxmQShBLGMscCwwfGFbY3Q+PjJdKSkpe3c9MSxEPTYx''@;'; put 'put ''O2JyZWFrfX1lbHNlIGlmKDIyPT0oMHxEKSlhW2N0Pj4yXT1wKygwfGFbVmU+PjJdKSxEPTIzO2Vsc2UgaWYoMzE9PSgwfEQpKXtpZihEPTAsKDB8KHA9MHxhW2JlPj4yXSkpPT0oMHxhW1JlPj4yXSkpe2lmKCEoKDB8dmwoQSkpPDwyND4+MjQpKXt3PTEsRD02MTticmVha31wPTB8YVtiZT4+''@;'; put 'put ''Ml19YVtiZT4+Ml09cCsxLGZlW3A+PjBdPWJ9ZG97aWYoMjM9PSgwfEQpKXtpZihEPTAscD0wfGFbYmU+PjJdLGdlJiYoKDB8YVtMZT4+Ml0pPT0oMHxwKXx8MzI9PSgwfGZlW3ArLTE+PjBdKSkpYnJlYWs7aWYoKDB8cCk9PSgwfGFbUmU+PjJdKSl7aWYoISgoMHx2bChBKSk8PDI0Pj4yNCkp''@;'; put 'put ''e3c9MSxEPTYxO2JyZWFrIGV9cD0wfGFbYmU+PjJdfWFbYmU+PjJdPXArMSxmZVtwPj4wXT0zMn19d2hpbGUoMCk7cD0wfGFbY3Q+PjJdfXJldHVybiA0PT0oMHxEKT8oMHxhW3E+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPWFbY3Q+PjJdLHc9NCxEPTYxKToodz00LEQ9NjEpOjY9PSgwfEQpPygw''@;'; put 'put ''fGFbcT4+Ml0pPT0oMHxjKT8oYVtwZT4+Ml09cCx3PTQsRD02MSk6KHc9NCxEPTYxKTo0OT09KDB8RCk/KDB8YVtxPj4yXSk9PSgwfGMpPyhhW3BlPj4yXT1wLHc9MTIsRD02MSk6KHc9MTIsRD02MSk6NTI9PSgwfEQpPygwfGFbcT4+Ml0pPT0oMHxjKT8oYVtwZT4+Ml09cCx3PTE1LEQ9NjEp''@;'; put 'put ''Oih3PTE1LEQ9NjEpOjU1PT0oMHxEKT8oMHxhW3E+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPXAsdz0xNixEPTYxKToodz0xNixEPTYxKTo1OD09KDB8RCkmJigoMHxhW3E+PjJdKT09KDB8Yyk/KGFbcGU+PjJdPXAsdz0yMyxEPTYxKToodz0yMyxEPTYxKSksbGU9U24sMHx3fWZ1bmN0aW9uIExf''@;'; put 'put ''KGwpe3ZhciBjO3JldHVybiBjPTgrKGx8PTApfDAsMHwoKDB8bCk8MT8wOigwfGMpPjA/YzowKX1mdW5jdGlvbiB3QShsLGMpe3ZhciBmLHAsbTtyZXR1cm4gY3w9MCxmPWxlLGxlPWxlKzgwfDAscD1mKzE2fDAsdkEobHw9MCxtPWYpLFJoKHAsbSkscDUocCxjLDB8RzQoYykpLGM9MHxNNihw''@;'; put 'put ''KSxsZT1mLDB8Y31mdW5jdGlvbiBGbShsLGMpe2x8PTAsY3w9MDtmb3IodmFyIGY9MDs7KXtpZigoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0IT0oMHxmZVtjPj4wXSkpe2M9MDticmVha31pZighKGY8PDI0Pj4yNCkpe2M9MTticmVha31jPWMrMXwwLGw9bCsxfDB9cmV0dXJuIDB8Y31mdW5jdGlv''@;'; put 'put ''biBIbShsLGMpe2N8PTA7dmFyIHcsayxmPTAscD0wLG09MCxBPTAsYj0wO2s9bGUsbGU9bGUrMTA0MHwwLHc9ayxwPTB8YVsxMjQrKGx8PTApPj4yXTtlOmRve2lmKHApe2ZvcihmPTA7MjU2IT0oMHxmKTspYVt3KyhmPDwyKT4+Ml09LTEsZj1mKzF8MDthWyhtPXcrMTAyOHwwKT4+Ml09MCxh''@;'; put 'put ''WyhiPXcrMTAyNHwwKT4+Ml09MCxhWyhBPXcrMTAzMnwwKT4+Ml09MDtkb3tpZigwfG1pWzYzJnBdKDB8YVtsKzI0ND4+Ml0sYyx3KSl7aWYoZj0wfF9vWzYzJihwPTB8YVtsKzEyPj4yXSldKGY9MTkwOCksYVtsKzIzNj4+Ml09ZixmKXtpZighKGY9MHxxMFsxMjcmKGZlW2wrMjMyPj4wXTw8''@;'; put 'put ''MjQ+PjI0PzY1OjY0KV0oZix3LDB8YVttPj4yXSwwfGFbYj4+Ml0pKSlicmVhazthW2wrMjQwPj4yXT1hW2I+PjJdLGFbbCsyNDg+PjJdPWFbQT4+Ml0sYVtsKzE0ND4+Ml09ZixmPTB9ZWxzZShmPTB8YVtBPj4yXSkmJkNvWzEyNyZmXSgwfGFbYj4+Ml0pLGY9MTticmVhayBlfX13aGlsZSgw''@;'; put 'put ''KTswfChmPTB8YVtBPj4yXSkmJkNvWzEyNyZmXSgwfGFbYj4+Ml0pLGY9MTh9ZWxzZSBmPTE4fXdoaWxlKDApO3JldHVybiBsZT1rLDB8Zn1mdW5jdGlvbiBCZChsLGMpe2N8PTAsZmVbNCsobHw9MCk+PjBdPTAsYVtsKzg+PjJdPTAsYVtsKzEyPj4yXT0wLGFbbD4+Ml09MCxhW2wrMTY+PjJd''@;'; put 'put ''PWN9ZnVuY3Rpb24gbXgobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDttPTA9PSgwfChsfD0wKSk7ZTpkb3tpZihtfCgwfGYpPDB8fDA9PSgwfGMpJjAhPSgwfGYpKXc9MztlbHNle3N3aXRjaCgwfGFbKEE9bCs0NzZ8MCk+PjJdKXtjYXNlIDM6YVtsKzI4MD4+''@;'; put 'put ''Ml09MzMsbT0wO2JyZWFrIGU7Y2FzZSAyOmFbbCsyODA+PjJdPTM2LG09MDticmVhayBlO2Nhc2UgMDppZigwPT0oMHxhW2wrNDcyPj4yXSkmJigwfHZ4KGwpKTw8MjQ+PjI0PT0wKXthW2wrMjgwPj4yXT0xLG09MDticmVhayBlfX1pZihhW0E+PjJdPTEsMHxmKXtpZighKG09MHxBeChsLGYp''@;'; put 'put ''KSl7bT0wO2JyZWFrfWdvKDB8bSwwfGMsMHxmKSxtPTB8RG8obCxmLHApO2JyZWFrfWlmKGZlW2wrNDgwPj4wXT1wLHApe2lmKGFbKGM9bCsyOTJ8MCk+PjJdPWI9MHxhWyhtPWwrMjR8MCk+PjJdLGFbbCs0MD4+Ml09cD0wfGFbbCsyOD4+Ml0scD0wfHEwWzEyNyZhWyhmPWwrMjc2fDApPj4y''@;'; put 'put ''XV0obCxiLHAsbSksYVtsKzI4MD4+Ml09cCwwfHApe2FbbCsyODg+PjJdPWFbbCsyODQ+PjJdLGFbZj4+Ml09NjYsbT0wO2JyZWFrfXN3aXRjaCgwfGFbQT4+Ml0pe2Nhc2UgMzpSY1szMSZhWzQ4KyhiPTB8YVtsKzE0ND4+Ml0pPj4yXV0oYiwwfGFbYz4+Ml0sMHxhW20+PjJdLGwrNDA0fDAp''@;'; put 'put ''LGFbYz4+Ml09YVttPj4yXSxtPTI7YnJlYWsgZTtjYXNlIDE6Y2FzZSAwOmFbQT4+Ml09MixtPTE7YnJlYWsgZTtkZWZhdWx0Om09MTticmVhayBlfX1lbHNlIG09MX19d2hpbGUoMCk7cmV0dXJuIDM9PSgwfHcpJiYobXx8KGFbbCsyODA+PjJdPTQxKSxtPTApLDB8bX1mdW5jdGlvbiB2eChs''@;'; put 'put ''KXt2YXIgYztyZXR1cm4gMHxhWyhjPTQ5MisobHw9MCl8MCk+PjJdfHwoYVtjPj4yXT0wfGZ1bmN0aW9uIFhCKCl7dmFyIGMsbD0wLGY9MDtyZXR1cm4gYz1sZSxsZT1sZSsxNnwwLDB8ZnVuY3Rpb24gUl8obCl7bHw9MDt2YXIgcCxtLGM9MCxmPTAsQT0wO2lmKG09bGUsbGU9bGUrMTZ8MCwo''@;'; put 'put ''MHwocD0wfGZ1bmN0aW9uIGtBZShsLGMsZil7bHw9MCxmfD0wO3ZhciBtLEEsdyxwPTAsYj0wO3JldHVybiB3PWxlLGxlPWxlKzQ4fDAsQT13KzE2fDAsbT13LHA9dyszMnwwLDQxOTQzNjgmKGN8PTApPyhhW3A+PjJdPWYsZj0wfGFbKGI9MysoMHxhW3A+PjJdKSYtNCk+PjJdLGFbcD4+Ml09''@;'; put 'put ''Yis0LHA9Zik6cD0wLGFbbT4+Ml09bCxhW20rND4+Ml09MzI3Njh8YyxhW20rOD4+Ml09cCwwPT0oNTI0Mjg4JmN8MCl8KDB8KHA9MHxCOCg1LDB8bSkpKTwwfHwoYVtBPj4yXT1wLGFbQSs0Pj4yXT0yLGFbQSs4Pj4yXT0xLGJkKDIyMSwwfEEpKSxiPTB8dWgocCksbGU9dywwfGJ9KDE0MjM2''@;'; put 'put ''NSwwLG0pKSk8MCljPTA7ZWxzZXtmb3IoYz0wOzspe2lmKGY9KEE9MHxJY2UocCxsK2N8MCw0LWN8MCkpK2N8MCwoMHxBKT4wKXtpZighKGY+Pj4wPDQpKXtjPTE7YnJlYWt9Yz1mfWlmKDQhPSgwfGFbNDc2NDNdKSl7Yz0wO2JyZWFrfX0hZnVuY3Rpb24gX2NlKGwpe3ZhciBjLGY7Yz1sZSxs''@;'; put 'put ''ZT1sZSsxNnwwLGFbKGY9Yyk+PjJdPTB8dCQobHw9MCksbD0wfHVoKC00PT0oMHwobD0wfEp1KDYsMHxmKSkpPzA6bCksbGU9Y30ocCl9cmV0dXJuIGxlPW0sMHxjfShsPWMpP2w9MHx5eCgxNDIzNjUsMHxhW2w+PjJdKTooZj0wfGZ1bmN0aW9uIEtCKCl7dmFyIGwsYztyZXR1cm4gYz1sZSxs''@;'; put 'put ''ZT1sZSsxNnwwLDB8ZzMoMHwobD1jKSwwKT8oUHIoMTQyMzkwLDE0MjQxMiw4MTksMTQyNDIzKSwwKToobGU9YywwfGFbbCs0Pj4yXSl9KCksZj0oMHxIaigpKV5mLGFbbD4+Ml09ZixsPTB8eXgoMTQyMzc4LDB8QXIoZiwyMTQ3NDgzNjQ3KSkpLGxlPWMsMHxsfSgpKSxsPTB8ZmVbbCsyMzI+''@;'; put 'put ''PjBdPzB8ZnVuY3Rpb24gT18obCxjKXtjfD0wO3ZhciBiLGssTSxELFIsRyxxLHBlLGdlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYmU9MDtEPTQyNCsobHw9MCl8MCxSPWwrNDIwfDAsRz1sKzQxMnwwLHE9bCs0Mjh8MCxwZT0xNTIrKE09MHxhW2wrMzUyPj4yXSl8MCxnZT1sKzM2OHwwLGI9TSs2''@;'; put 'put ''MHwwLGs9TSs4MHwwO2U6Zm9yKDs7KXtBPWM7dDpmb3IoOzspe2lmKCEoMHxmZVtjPj4wXSkpe2M9MTticmVhayBlfXN3aXRjaCgocD0wfGZlW0E+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6Y2FzZSAxMjpiZT01O2JyZWFrIHQ7Y2FzZSA2MTpicmVhayB0fWlmKCgwfChmPTB8YVtEPj4yXSkpPT0o''@;'; put 'put ''MHxhW1I+PjJdKSl7aWYoISgoMHx2bChHKSk8PDI0Pj4yNCkpe2M9MDticmVhayBlfWY9MHxhW0Q+PjJdLHA9MHxmZVtBPj4wXX1hW0Q+PjJdPWYrMSxmZVtmPj4wXT1wLEE9QSsxfDB9aWYoNSE9KDB8YmUpKXtpZigoMHxhW3E+PjJdKT09KDB8KGM9MHxhW0Q+PjJdKSkpcD1wZTtlbHNle2lm''@;'; put 'put ''KCgwfGMpPT0oMHxhW1I+PjJdKSl7aWYoISgoMHx2bChHKSk8PDI0Pj4yNCkpe2M9MDticmVha31jPTB8YVtEPj4yXX1pZihhW0Q+PjJdPWMrMSxmZVtjPj4wXT0wLCEocD0wfF8xKGwsYiwwfGFbcT4+Ml0sOCkpKXtjPTA7YnJlYWt9aWYoYz13PTB8YVtxPj4yXSwoMHwoZj0wfGFbcD4+Ml0p''@;'; put 'put ''KT09KDB8dykpe2lmKHc9MHxUXyhrLGYpLGFbcD4+Ml09dywhdyl7Yz0wO2JyZWFrfWM9MHxhW3E+PjJdfWFbRD4+Ml09Y310OmZvcig7Oyl7c3dpdGNoKG09KDB8Yyk9PSgwfGFbUj4+Ml0pLChmPTB8ZmVbKHc9QSsxfDApPj4wXSk8PDI0Pj4yNCl7Y2FzZSAwOmNhc2UgMTI6YnJlYWsgdH1p''@;'; put 'put ''ZihtKXtpZighKCgwfHZsKEcpKTw8MjQ+PjI0KSl7Yz0wO2JyZWFrIGV9Yz0wfGFbRD4+Ml0sZj0wfGZlW3c+PjBdfWFbRD4+Ml09YysxLGZlW2M+PjBdPWYsQT13LGM9MHxhW0Q+PjJdfWlmKG0pe2lmKCEoKDB8dmwoRykpPDwyND4+MjQpKXtjPTA7YnJlYWt9Yz0wfGFbRD4+Ml19aWYoYVtE''@;'; put 'put ''Pj4yXT1jKzEsZmVbYz4+MF09MCwwfG1BKGwscCwwLDB8YVtxPj4yXSxnZSkpe2M9MDticmVha31hW0Q+PjJdPWFbcT4+Ml0sYz0wPT0oMHxmZVt3Pj4wXSk/dzpBKzJ8MH1lbHNle2lmKGJlPTAsKDB8KGM9MHxhW0Q+PjJdKSk9PSgwfGFbUj4+Ml0pKXtpZighKCgwfHZsKEcpKTw8MjQ+PjI0''@;'; put 'put ''KSl7Yz0wO2JyZWFrfWM9MHxhW0Q+PjJdfWFbRD4+Ml09YysxLGZlW2M+PjBdPTAsMHwoYz0wfF8xKGwsTSwwfGFbcT4+Ml0sMCkpJiYoZmVbYyszMj4+MF09MSksYz0wPT0oMHxmZVtBPj4wXSk/QTpBKzF8MCxhW0Q+PjJdPWFbcT4+Ml19fXJldHVybiAwfGN9KGwsMTQyMzI0KToxLDB8bH1m''@;'; put 'put ''dW5jdGlvbiBBeChsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wO2U6ZG97aWYobCl7aWYoKDB8Yyk8MCl7YVtsKzI4MD4+Ml09MSxmPTA7YnJlYWt9c3dpdGNoKDB8YVtsKzQ3Nj4+Ml0pe2Nhc2UgMzph''@;'; put 'put ''W2wrMjgwPj4yXT0zMyxmPTA7YnJlYWsgZTtjYXNlIDI6YVtsKzI4MD4+Ml09MzYsZj0wO2JyZWFrIGU7ZGVmYXVsdDppZihmPXA9MHxhWyhHPWwrMjh8MCk+PjJdLCgoaz0wfGFbKFI9bCszMnwwKT4+Ml0pLXB8MCk+PSgwfGMpKWJyZWFrIGU7aWYoKDB8KHA9KGI9cC0oTT0wfGFbKHBlPWwr''@;'; put 'put ''MjR8MCk+PjJdKXwwKStjfDApKTwwKXthW2wrMjgwPj4yXT0xLGY9MDticmVhayBlfXA9KGM9KHc9KDB8KEE9TS0oZ2U9bT0wfGFbKEQ9bCs4fDApPj4yXSl8MCkpPjEwMjQpPzEwMjQ6QSkrcHwwO2Rve2lmKCgwfHApPihrLWdlfDApKXtmPTA9PSgwfChmPWstTXwwKSk/MTAyNDpmO2Rve2Y8''@;'; put 'put ''PD0xfXdoaWxlKCgwfGYpPCgwfHApJigwfGYpPjApO2lmKCgwfGYpPDEpe2FbbCsyODA+PjJdPTEsZj0wO2JyZWFrIGV9aWYoIShwPTB8X29bNjMmYVtsKzEyPj4yXV0oZikpKXthW2wrMjgwPj4yXT0xLGY9MDticmVhayBlfWlmKGFbUj4+Ml09cCtmLGY9MHxhW3BlPj4yXSl7Z28oMHxwLGYr''@;'; put 'put ''KDAtKHE9KDB8KHE9KGdlPWYpLSgwfGFbRD4+Ml0pfDApKTwxMDI0P3E6MTAyNCkpfDAsKDB8YVtHPj4yXSktZ2UrcXwwKSxDb1sxMjcmYVtsKzIwPj4yXV0oMHxhW0Q+PjJdKSxhW0Q+PjJdPXAsYVtHPj4yXT1mPXArKCgwfGFbRz4+Ml0pLSgwfGFbcGU+PjJdKSkrcXwwLHA9cCtxfDAscT0y''@;'; put 'put ''MjticmVha31hW0c+PjJdPWY9cCsoMHxhW0c+PjJdKXwwLGFbRD4+Ml09cCxxPTIyO2JyZWFrfXcmJihyMSgwfG0sbSsocD1BLWN8MCl8MCxjK2J8MCksYVtHPj4yXT1mPSgwfGFbRz4+Ml0pKyhwPTAtcHwwKXwwLHA9KDB8YVtwZT4+Ml0pK3B8MCxxPTIyKX13aGlsZSgwKTsyMj09KDB8cSkm''@;'; put 'put ''JihhW3BlPj4yXT1wKSxhW2wrMjg4Pj4yXT0wLGFbbCsyODQ+PjJdPTAsYVtsKzI5Mj4+Ml09MDticmVhayBlfX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIERvKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7ZTpkb3tpZihs''@;'; put 'put ''KXtzd2l0Y2goMHxhWyhwPWwrNDc2fDApPj4yXSl7Y2FzZSAzOmFbbCsyODA+PjJdPTMzLGM9MDticmVhayBlO2Nhc2UgMjphW2wrMjgwPj4yXT0zNixjPTA7YnJlYWsgZTtjYXNlIDA6aWYoMD09KDB8YVtsKzQ3Mj4+Ml0pJiYoMHx2eChsKSk8PDI0Pj4yND09MCl7YVtsKzI4MD4+Ml09MSxj''@;'; put 'put ''PTA7YnJlYWsgZX19aWYoYVtwPj4yXT0xLGFbKEE9bCsyOTJ8MCk+PjJdPWI9MHxhWyhtPWwrMjR8MCk+PjJdLGFbKGs9bCsyOHwwKT4+Ml09dz0oMHxhW2s+PjJdKStjfDAsYVtsKzQwPj4yXT13LGFbKGs9bCszNnwwKT4+Ml09KDB8YVtrPj4yXSkrYyxmZVtsKzQ4MD4+MF09Zix3PTB8cTBb''@;'; put 'put ''MTI3JmFbKGM9bCsyNzZ8MCk+PjJdXShsLGIsdyxtKSxhW2wrMjgwPj4yXT13LDB8dyl7YVtsKzI4OD4+Ml09YVtsKzI4ND4+Ml0sYVtjPj4yXT02NixjPTA7YnJlYWt9c3dpdGNoKDB8YVtwPj4yXSl7Y2FzZSAzOmM9MjticmVhaztjYXNlIDE6Y2FzZSAwOmlmKGYpe2FbcD4+Ml09MixjPTE7''@;'; put 'put ''YnJlYWsgZX1jPTE7YnJlYWs7ZGVmYXVsdDpjPTF9UmNbMzEmYVs0OCsoaz0wfGFbbCsxNDQ+PjJdKT4+Ml1dKGssMHxhW0E+PjJdLDB8YVttPj4yXSxsKzQwNHwwKSxhW0E+PjJdPWFbbT4+Ml19ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiB5eChsLGMpe2x8PTAsY3w9''@;'; put 'put ''MDt2YXIgcCxtLGY9MDtyZXR1cm4gbT1sZSxsZT1sZSsxNnwwLHA9bSwwfChmPTB8RHUoMTQyNDQzKSkmJjA9PSgwfFppKGYsMTQyNDYzKSkmJihmPTB8YVsxNTcxMl0sYVtwPj4yXT1sLGFbcCs0Pj4yXT04LGFbcCs4Pj4yXT1jLGFbcCsxMj4+Ml09NCxUMChmLDE0MjQ2NSxwKSksbGU9bSww''@;'; put 'put ''fGN9ZnVuY3Rpb24gJEIobCl7cmV0dXJuIDB8KChsfD0wKT8wfGFbbCsyODA+PjJdOjQxKX1mdW5jdGlvbiBlUChsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgNDE6bD0xNDI1MDI7YnJlYWs7Y2FzZSAxOmw9MTQzNzc0O2JyZWFrO2Nhc2UgMjpsPTE0Mzc2MTticmVhaztjYXNlIDM6bD0xNDM3''@;'; put 'put ''NDQ7YnJlYWs7Y2FzZSA0Omw9MTQzNzEyO2JyZWFrO2Nhc2UgNTpsPTE0MzY5NzticmVhaztjYXNlIDY6bD0xNDM2Nzk7YnJlYWs7Y2FzZSA3Omw9MTQzNjY0O2JyZWFrO2Nhc2UgODpsPTE0MzY0NDticmVhaztjYXNlIDk6bD0xNDM2MTY7YnJlYWs7Y2FzZSAxMDpsPTE0MzU4MTticmVhaztj''@;'; put 'put ''YXNlIDExOmw9MTQzNTY0O2JyZWFrO2Nhc2UgMTI6bD0xNDM1Mzc7YnJlYWs7Y2FzZSAxMzpsPTE0MzUxNzticmVhaztjYXNlIDE0Omw9MTQzNDc5O2JyZWFrO2Nhc2UgMTU6bD0xNDM0NTI7YnJlYWs7Y2FzZSAxNjpsPTE0MzQxMDticmVhaztjYXNlIDE3Omw9MTQzMzYzO2JyZWFrO2Nhc2Ug''@;'; put 'put ''MTg6bD0xNDMzNDY7YnJlYWs7Y2FzZSAxOTpsPTE0MzI5NTticmVhaztjYXNlIDIwOmw9MTQzMjcyO2JyZWFrO2Nhc2UgMjE6bD0xNDMyMjY7YnJlYWs7Y2FzZSAyMjpsPTE0MzE5OTticmVhaztjYXNlIDIzOmw9MTQzMTQ4O2JyZWFrO2Nhc2UgMjQ6bD0xNDMxMTI7YnJlYWs7Y2FzZSAyNTps''@;'; put 'put ''PTE0MzA2MDticmVhaztjYXNlIDI2Omw9MTQzMDE1O2JyZWFrO2Nhc2UgMjc6bD0xNDNlMzticmVhaztjYXNlIDI4Omw9MTQyOTc0O2JyZWFrO2Nhc2UgMjk6bD0xNDI5MzY7YnJlYWs7Y2FzZSAzMDpsPTE0MjkwNDticmVhaztjYXNlIDMxOmw9MTQyODcxO2JyZWFrO2Nhc2UgMzI6bD0xNDI4''@;'; put 'put ''Mzc7YnJlYWs7Y2FzZSAzMzpsPTE0MjgyMDticmVhaztjYXNlIDM0Omw9MTQyNzk5O2JyZWFrO2Nhc2UgMzU6bD0xNDI3ODM7YnJlYWs7Y2FzZSAzNjpsPTE0Mjc2NjticmVhaztjYXNlIDM3Omw9MTQyNzIyO2JyZWFrO2Nhc2UgMzg6bD0xNDI2NDI7YnJlYWs7Y2FzZSAzOTpsPTE0MjU4Mzti''@;'; put 'put ''cmVhaztjYXNlIDQwOmw9MTQyNTE5O2JyZWFrO2RlZmF1bHQ6bD0wfXJldHVybiAwfGx9ZnVuY3Rpb24gVzQobCxjKXtsfD0wLGN8PTA7ZG97aWYoKDB8bCk+PTApe2lmKCgwfGwpPDEyOCl7ZmVbYz4+MF09bCxsPTE7YnJlYWt9aWYoKDB8bCk8MjA0OCl7ZmVbYz4+MF09bD4+PjZ8MTkyLGZl''@;'; put 'put ''W2MrMT4+MF09NjMmbHwxMjgsbD0yO2JyZWFrfWlmKCgwfGwpPDY1NTM2KXtmZVtjPj4wXT1sPj4+MTJ8MjI0LGZlW2MrMT4+MF09bD4+PjYmNjN8MTI4LGZlW2MrMj4+MF09NjMmbHwxMjgsbD0zO2JyZWFrfSgwfGwpPDExMTQxMTI/KGZlW2M+PjBdPWw+Pj4xOHwyNDAsZmVbYysxPj4wXT1s''@;'; put 'put ''Pj4+MTImNjN8MTI4LGZlW2MrMj4+MF09bD4+PjYmNjN8MTI4LGZlW2MrMz4+MF09NjMmbHwxMjgsbD00KTpsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBuUChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxE''@;'; put 'put ''PTAsUj0wLEc9MDtmb3IobT0wOzspe2lmKDM2ND09KDB8bSkpe209MDticmVha31mZVtsK20+PjBdPTB8ZmVbNTY1NzYrbT4+MF0sbT1tKzF8MH1lOmZvcig7Oyl7aWYoKDB8bSk+PTEyOCl7QT01O2JyZWFrfXN3aXRjaCgwfGZlWzU2NjQ4K20+PjBdKXtjYXNlIDA6Y2FzZSAyODpicmVhaztk''@;'; put 'put ''ZWZhdWx0OmlmKCgwfGFbYysobTw8Mik+PjJdKSE9KDB8bSkpe2w9MDticmVhayBlfX1tPW0rMXwwfWU6ZG97aWYoNT09KDB8QSkpe2ZvcihHPWwrNzJ8MCxrPWwrMzcyfDAsTT1sKzg4NHwwLEQ9MD09KDB8ZiksYj0wOyEoKDB8Yik+PTI1Nik7KXtSPTB8YVtjKyhiPDwyKT4+Ml07ZG97aWYo''@;'; put 'put ''LTE9PSgwfFIpKWZlW0crYj4+MF09MSxpdFtrKyhiPDwxKT4+MV09LTEsZmVbTSsoYjw8Mik+PjBdPTEsZmVbTSsoYjw8MikrMT4+MF09MDtlbHNle2lmKCgwfFIpPDApe2lmKER8KDB8Uik8LTQpe2w9MDticmVhayBlfWZlW0crYj4+MF09My1SLGZlW00rKGI8PDIpPj4wXT0wLGl0W2srKGI8''@;'; put 'put ''PDEpPj4xXT0wO2JyZWFrfWlmKCgwfFIpPDEyOCl7c3dpdGNoKChtPTB8ZmVbNTY2NDgrUj4+MF0pPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDI4OmJyZWFrO2RlZmF1bHQ6aWYoKDB8UikhPSgwfGIpKXtsPTA7YnJlYWsgZX19ZmVbRytiPj4wXT1tLGZlW00rKGI8PDIpPj4wXT0xLGZlW00rKGI8''@;'; put 'put ''PDIpKzE+PjBdPVIsaXRbaysoYjw8MSk+PjFdPTA9PSgwfFIpPy0xOjY1NTM1JlI7YnJlYWt9aWYoKDB8UGQoUikpPDApe2ZlW0crYj4+MF09MCxpdFtrKyhiPDwxKT4+MV09LTEsZmVbTSsoYjw8Mik+PjBdPTEsZmVbTSsoYjw8MikrMT4+MF09MDticmVha31pZigoMHxSKT42NTUzNSl7bD0w''@;'; put 'put ''O2JyZWFrIGV9ZmVbRytiPj4wXT1hWzU2OTQwKygoWHRbMTQzNzg4KyhtPVI+Pj44KT4+MF08PDN8KEE9Uj4+PjUmNykpPDwyKT4+Ml0mKHc9MTw8KDMxJlIpKT8yMjphWzU2OTQwKygoWHRbMTQ0MDQ0K20+PjBdPDwzfEEpPDwyKT4+Ml0md3wwPzI2OjI4LGZlW00rKGI8PDIpPj4wXT0wfFc0''@;'; put 'put ''KFIsTSsoYjw8MikrMXwwKSxpdFtrKyhiPDwxKT4+MV09Un19d2hpbGUoMCk7Yj1iKzF8MH1hW2wrMzY4Pj4yXT1wLGFbbCszNjQ+PjJdPWYsRHx8KGFbbCszMjg+PjJdPTEwOCxhW2wrMzMyPj4yXT0xMDgsYVtsKzMzNj4+Ml09MTA4LGFbbCszNDA+PjJdPTEwOSxhW2wrMzQ0Pj4yXT0xMDks''@;'; put 'put ''YVtsKzM0OD4+Ml09MTA5LGFbbCszNTI+PjJdPTExMCxhW2wrMzU2Pj4yXT0xMTAsYVtsKzM2MD4+Ml09MTEwKSxhW2wrNTY+PjJdPTEzLGFbbCs2MD4+Ml09MTR9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gUGQobCl7c3dpdGNoKChsfD0wKT4+OHwwKXtjYXNlIDIyMzpjYXNlIDIy''@;'; put 'put ''MjpjYXNlIDIyMTpjYXNlIDIyMDpjYXNlIDIxOTpjYXNlIDIxODpjYXNlIDIxNzpjYXNlIDIxNjpsPS0xO2JyZWFrO2Nhc2UgMDowfGZlWzU2NjQ4K2w+PjBdfHwobD0tMSk7YnJlYWs7Y2FzZSAyNTU6NjU1MzUhPSgxfGwpfHwobD0tMSl9cmV0dXJuIDB8bH1mdW5jdGlvbiBHaShsLGMsZixw''@;'; put 'put ''LG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxtfD0wLEF8PTAsd3w9MCwocHw9MCk/ZnVuY3Rpb24gbTUobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgayxNLEQsUix3PTAsYj0wO2lmKFI9bGUsbGU9bGUrMTZ8MCxEPVIsMSE9KDB8YVszMisobHw9MCk+PjJdKSYmUHIo''@;'; put 'put ''OTQ5MTksOTQ5NDMsMTE2Myw5NTMzNSksMSE9KDB8YVtsKzE2Pj4yXSkmJlByKDk1MzY0LDk0OTQzLDExNjQsOTUzMzUpLGs9MHxhW2w+PjJdLE09MHxhW2wrND4+Ml0sYj0wIT0oMHwodz0wfGFbZj4+Ml0pKSxtKXtmb3IoYnx8KHc9MHxRbigwfEFyKHA8PDMsTSkpKSxiPTA7ISgoMHxiKT49''@;'; put 'put ''KDB8cCkpOylhW0Q+PjJdPXcrKCgwfEFyKGIsTSkpPDwzKSxLZihsLGMrKCgwfEFyKGIsaykpPDwzKXwwLEQsbSksYj1iKzF8MDtBfHxGZCh3LHAsTSl9ZWxzZXtmb3IoYnx8KHc9MHxRbigwfEFyKHA8PDMsaykpKSxiPTA7ISgoMHxiKT49KDB8cCkpOylhW0Q+PjJdPXcrKCgwfEFyKGIsaykp''@;'; put 'put ''PDwzKSxLZihsLGMrKCgwfEFyKGIsTSkpPDwzKXwwLEQsMCksYj1iKzF8MDtBfHxGZCh3LHAsayl9YVtmPj4yXT13LGxlPVJ9KGwsZixtLHcsYyxBKTpmdW5jdGlvbiBnNShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBxLHBlLGdlLGJlLHc9MCxiPTAsaz0wLE09''@;'; put 'put ''MCxEPTAsUj0wLEc9MCxPZT0wLExlPTA7aWYoMSE9KDB8YVszMisobHw9MCk+PjJdKSYmUHIoOTQ5MTksOTQ5NDMsMTEyMSw5NTQ4MyksMSE9KDB8YVtsKzE2Pj4yXSkmJlByKDk1MzY0LDk0OTQzLDExMjIsOTU0ODMpLHE9MHxhW2wrMjg+PjJdLHBlPTB8YVtsKzIwPj4yXSxnZT0wfGFbbCsy''@;'; put 'put ''ND4+Ml0sYmU9MHxhW2w+PjJdLEc9MHxhW2wrND4+Ml0sdz0wIT0oMHwobD0wfGFbZj4+Ml0pKSxtKXtmb3Iod3x8KGw9MHxRbigwfEFyKHA8PDMsRykpKSxtPTB8QXIoRyxwKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfG0pKXt3PTA7YnJlYWt9X1tsKyh3PDwzKT4+M109MCx3PXcrMXwwfWU6Zm9y''@;'; put 'put ''KDshKCgwfHcpPj0oMHxiZSkpOylmb3IoTT13KzF8MCxEPTB8YVtwZSsoTTw8Mik+PjJdLFI9MHxBcih3LHApLHc9MHxhW3BlKyh3PDwyKT4+Ml07Oyl7aWYoKDB8dyk+PSgwfEQpKXt3PU07Y29udGludWUgZX1mb3IoYj1xKyh3PDwzKXwwLGs9Z2UrKHc8PDIpfDAsbT0wOyEoKDB8bSk+PSgw''@;'; put 'put ''fHApKTspTGU9bCsoKDB8QXIoMHxhW2s+PjJdLHApKSttPDwzKXwwLF9bTGU+PjNdPStfW0xlPj4zXSsgK19bYysobStSPDwzKT4+M10qK19bYj4+M10sbT1tKzF8MDt3PXcrMXwwfUEmJkZkKGwsRyxwKX1lbHNle3d8fChsPTB8UW4oMHxBcihwPDwzLGJlKSkpLG09MDtlOmZvcig7ISgoMHxt''@;'; put 'put ''KT49KDB8YmUpKTspe2ZvcihSPTB8QXIobSxwKSx3PTA7ISgoMHx3KT49KDB8cCkpOylfW2wrKHcrUjw8Myk+PjNdPTAsdz13KzF8MDtmb3IoRD0wfGFbcGUrKChNPW0rMXwwKTw8Mik+PjJdLHc9MHxhW3BlKyhtPDwyKT4+Ml07Oyl7aWYoKDB8dyk+PSgwfEQpKXttPU07Y29udGludWUgZX1m''@;'; put 'put ''b3IoYj1xKyh3PDwzKXwwLGs9Z2UrKHc8PDIpfDAsbT0wOyEoKDB8bSk+PSgwfHApKTspT2U9K19bYysoKDB8QXIoMHxhW2s+PjJdLHApKSttPDwzKT4+M10qK19bYj4+M10sX1soRz1sKyhtK1I8PDMpfDApPj4zXT0rX1tHPj4zXStPZSxtPW0rMXwwO3c9dysxfDB9fUEmJkZkKGwsYmUscCl9''@;'; put 'put ''YVtmPj4yXT1sfShsLGYsbSx3LGMsQSl9ZnVuY3Rpb24gS2YobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEQsUixHLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLHE9MDtzd2l0Y2goMSE9KDB8YVszMisobHw9MCk+PjJdKSYmUHIoOTQ5MTksOTQ5NDMsMTIyMiw5NTM5MiksMHwodz0wfGFb''@;'; put 'put ''bCsxNj4+Ml0pKXtjYXNlIDQ6Y2FzZSAxOmJyZWFrO2RlZmF1bHQ6UHIoOTU0MjEsOTQ5NDMsMTIyMyw5NTM5Mil9Uj0wfGFbbCsyMD4+Ml0sRD0wfGFbbCsyND4+Ml0sRz0wfGFbbD4+Ml0saz0wfGFbbCs0Pj4yXSxiPTB8YVtmPj4yXTtlOmRve3N3aXRjaCgwfHcpe2Nhc2UgMTppZihNPTB8''@;'; put 'put ''YVtsKzI4Pj4yXSxsPTAhPSgwfHApLG09MCE9KDB8YiksYyl7aWYoIWwpe209bT9iOjB8UW4oRzw8MyksbD0wO3Q6Zm9yKDs7KXtpZigoMHxsKT49KDB8RykpYnJlYWsgZTtmb3IoX1sodz1tKyhsPDwzKXwwKT4+M109MCxwPTB8YVtSKygoYj1sKzF8MCk8PDIpPj4yXSxsPTB8YVtSKyhsPDwy''@;'; put 'put ''KT4+Ml0sQT0wOzspe2lmKCgwfGwpPj0oMHxwKSl7bD1iO2NvbnRpbnVlIHR9X1t3Pj4zXT1xPUErICtfW2MrKGFbRCsobDw8Mik+PjJdPDwzKT4+M10qK19bTSsobDw8Myk+PjNdLGw9bCsxfDAsQT1xfX19Zm9yKG09bT9iOjB8UW4oazw8MyksbD0wOzspe2lmKCgwfGwpPj0oMHxrKSl7bD0w''@;'; put 'put ''O2JyZWFrfV9bbSsobDw8Myk+PjNdPTAsbD1sKzF8MH10OmZvcig7Oyl7aWYoKDB8bCk+PSgwfEcpKWJyZWFrIGU7Zm9yKGI9MHxhW1IrKCh3PWwrMXwwKTw8Mik+PjJdLHA9YysobDw8Myl8MCxsPTB8YVtSKyhsPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGIpKXtsPXc7Y29udGludWUgdH1f''@;'; put 'put ''WyhrPW0rKGFbRCsobDw8Mik+PjJdPDwzKXwwKT4+M109K19baz4+M10rICtfW3A+PjNdKitfW00rKGw8PDMpPj4zXSxsPWwrMXwwfX19ZWxzZXtpZighbCl7bT1tP2I6MHxRbihHPDwzKSxsPTA7dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSlicmVhayBlO2ZvcihfWyh3PW0rKGw8PDMpfDAp''@;'; put 'put ''Pj4zXT0wLHA9MHxhW1IrKChiPWwrMXwwKTw8Mik+PjJdLGw9MHxhW1IrKGw8PDIpPj4yXSxBPTA7Oyl7aWYoKDB8bCk+PSgwfHApKXtsPWI7Y29udGludWUgdH1fW3c+PjNdPXE9QSsgK19bTSsobDw8Myk+PjNdLGw9bCsxfDAsQT1xfX19Zm9yKG18fChiPTB8UW4oazw8MykpLGw9MDs7KXtp''@;'; put 'put ''ZigoMHxsKT49KDB8aykpe2w9MDticmVha31fW2IrKGw8PDMpPj4zXT0wLGw9bCsxfDB9dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSl7bT1iO2JyZWFrIGV9Zm9yKHc9MHxhW1IrKChtPWwrMXwwKTw8Mik+PjJdLGw9MHxhW1IrKGw8PDIpPj4yXTs7KXtpZigoMHxsKT49KDB8dykpe2w9bTtj''@;'; put 'put ''b250aW51ZSB0fV9bKGM9YisoYVtEKyhsPDwyKT4+Ml08PDMpfDApPj4zXT0rX1tjPj4zXSsgK19bTSsobDw8Myk+PjNdLGw9bCsxfDB9fX1jYXNlIDQ6aWYoTT0wfGFbbCsyOD4+Ml0sbD0wIT0oMHxwKSxtPTAhPSgwfGIpLGMpe2lmKCFsKXttPW0/YjowfFFuKEc8PDMpLGw9MDt0OmZvcig7''@;'; put 'put ''Oyl7aWYoKDB8bCk+PSgwfEcpKWJyZWFrIGU7Zm9yKF9bKHc9bSsobDw8Myl8MCk+PjNdPTAscD0wfGFbUisoKGI9bCsxfDApPDwyKT4+Ml0sbD0wfGFbUisobDw8Mik+PjJdLEE9MDs7KXtpZigoMHxsKT49KDB8cCkpe2w9Yjtjb250aW51ZSB0fV9bdz4+M109cT1BKyArX1tjKyhhW0QrKGw8''@;'; put 'put ''PDIpPj4yXTw8Myk+PjNdKisoMHxhW00rKGw8PDIpPj4yXSksbD1sKzF8MCxBPXF9fX1mb3IobT1tP2I6MHxRbihrPDwzKSxsPTA7Oyl7aWYoKDB8bCk+PSgwfGspKXtsPTA7YnJlYWt9X1ttKyhsPDwzKT4+M109MCxsPWwrMXwwfXQ6Zm9yKDs7KXtpZigoMHxsKT49KDB8RykpYnJlYWsgZTtm''@;'; put 'put ''b3IoYj0wfGFbUisoKHc9bCsxfDApPDwyKT4+Ml0scD1jKyhsPDwzKXwwLGw9MHxhW1IrKGw8PDIpPj4yXTs7KXtpZigoMHxsKT49KDB8Yikpe2w9dztjb250aW51ZSB0fV9bKGs9bSsoYVtEKyhsPDwyKT4+Ml08PDMpfDApPj4zXT0rX1trPj4zXSsgK19bcD4+M10qKygwfGFbTSsobDw8Mik+''@;'; put 'put ''PjJdKSxsPWwrMXwwfX19ZWxzZXtpZighbCl7bT1tP2I6MHxRbihHPDwzKSxsPTA7dDpmb3IoOzspe2lmKCgwfGwpPj0oMHxHKSlicmVhayBlO2ZvcihfWyh3PW0rKGw8PDMpfDApPj4zXT0wLHA9MHxhW1IrKChiPWwrMXwwKTw8Mik+PjJdLGw9MHxhW1IrKGw8PDIpPj4yXSxBPTA7Oyl7aWYo''@;'; put 'put ''KDB8bCk+PSgwfHApKXtsPWI7Y29udGludWUgdH1fW3c+PjNdPXE9QSsgKygwfGFbTSsobDw8Mik+PjJdKSxsPWwrMXwwLEE9cX19fWZvcihtfHwoYj0wfFFuKGs8PDMpKSxsPTA7Oyl7aWYoKDB8bCk+PSgwfGspKXtsPTA7YnJlYWt9X1tiKyhsPDwzKT4+M109MCxsPWwrMXwwfXQ6Zm9yKDs7''@;'; put 'put ''KXtpZigoMHxsKT49KDB8Rykpe209YjticmVhayBlfWZvcih3PTB8YVtSKygobT1sKzF8MCk8PDIpPj4yXSxsPTB8YVtSKyhsPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfHcpKXtsPW07Y29udGludWUgdH1fWyhjPWIrKGFbRCsobDw8Mik+PjJdPDwzKXwwKT4+M109K19bYz4+M10rICsoMHxh''@;'; put 'put ''W00rKGw8PDIpPj4yXSksbD1sKzF8MH19fWRlZmF1bHQ6UHIoMTM4Mzk0LDk0OTQzLDEzMTUsOTUzOTIpfX13aGlsZSgwKTthW2Y+PjJdPW19ZnVuY3Rpb24gRmQobCxjLGYpe2x8PTA7dmFyIEEscD0wLG09MCx3PTA7Zm9yKGdvKDB8KEE9MHxRbihwPTB8QXIoKGN8PTApPDwzLGZ8PTApKSks''@;'; put 'put ''MHxsLDB8cCkscD0wOyEoKDB8cCk+PSgwfGMpKTspe2Zvcih3PTB8QXIocCxmKSxtPTA7ISgoMHxtKT49KDB8ZikpOylfW2wrKCgwfEFyKG0sYykpK3A8PDMpPj4zXT0rX1tBKyhtK3c8PDMpPj4zXSxtPW0rMXwwO3A9cCsxfDB9RnQoQSl9ZnVuY3Rpb24gVDYobCxjKXt2YXIgVmUscWUscnQs''@;'; put 'put ''V2UsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxhdD0wO2lmKFZlPTB8YVsyMCsobHw9MCk+PjJdLHFlPTB8YVtsKzI0Pj4yXSxydD0wfGFbMjArKGN8PTApPj4yXSxXZT0wfGFbYysyND4+''@;'; put 'put ''Ml0sMT09KDB8KEhlPTB8YVtsKzMyPj4yXSkpJiYoMHxIZSk9PSgwfGFbYyszMj4+Ml0pfHxQcig5NTAwNSw5NDk0MywxNDA4LDk1NTEyKSxIZT0wfGFbbD4+Ml0sKDB8YVtsKzQ+PjJdKT09KDB8YVtjPj4yXSkmJigwfChSPTB8YVtsKzE2Pj4yXSkpPT0oMHxhW2MrMTY+PjJdKSYmMCE9KDB8''@;'; put 'put ''KGF0PTB8UW4oYVsoRD1jKzR8MCk+PjJdPDwyKSkpKXtmb3IoZj0wOzspe2lmKCgwfGYpPj0oMHxhW0Q+PjJdKSl7cD0wLGY9MDticmVha31hW2F0KyhmPDwyKT4+Ml09LTEsZj1mKzF8MH1lOmZvcig7ISgoMHxmKT49KDB8SGUpKTspZm9yKGI9ZisxfDAsaz1WZSsoYjw8Mil8MCxNPS0yLWZ8''@;'; put 'put ''MCx3PTB8YVtWZSsoZjw8Mik+PjJdOzspe2lmKCgwfHcpPj0oMHxhW2s+PjJdKSl7Zj1iO2NvbnRpbnVlIGV9Zm9yKEE9cnQrKDErKG09MHxhW3FlKyh3PDwyKT4+Ml0pPDwyKXwwLG09MHxhW3J0KyhtPDwyKT4+Ml07ISgoMHxtKT49KDB8YVtBPj4yXSkpOykoMHxhWyhmPWF0KyhhW1dlKyht''@;'; put 'put ''PDwyKT4+Ml08PDIpfDApPj4yXSkhPSgwfE0pJiYoYVtmPj4yXT1NLHA9cCsxfDApLG09bSsxfDA7dz13KzF8MH1mPTB8dWMoSGUsMHxhW0Q+PjJdLHAsUiwxKTtlOmRve2lmKGYpe09lPTB8YVtmKzIwPj4yXSxMZT0wfGFbZisyND4+Ml07dDpkb3tzd2l0Y2goMHxSKXtjYXNlIDE6Z2U9MHxh''@;'; put 'put ''W2wrMjg+PjJdLFI9MHxhW2MrMjg+PjJdLGM9MHxhW2YrMjg+PjJdLGFbT2U+PjJdPTAscD0wLG09MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfEhlKSl7UmU9bTticmVhayB0fWZvcihxPVZlKygoRz1wKzF8MCk8PDIpfDAscGU9T2UrKHA8PDIpfDAsbD0wfGFbVmUrKHA8PDIpPj4yXTshKCgw''@;'; put 'put ''fGwpPj0oMHxhW3E+PjJdKSk7KXtmb3IoTT1ydCsoMSsoaz0wfGFbcWUrKGw8PDIpPj4yXSk8PDIpfDAsRD1nZSsobDw8Myl8MCxrPTB8YVtydCsoazw8Mik+PjJdOyEoKDB8ayk+PSgwfGFbTT4+Ml0pKTspe2lmKCgwfChiPTB8YVsodz1hdCsoKEE9MHxhWyhwPVdlKyhrPDwyKXwwKT4+Ml0p''@;'; put 'put ''PDwyKXwwKT4+Ml0pKTwoMHxhW3BlPj4yXSkpYVt3Pj4yXT1tLGFbTGUrKG08PDIpPj4yXT1hW3A+PjJdLF9bYysobTw8Myk+PjNdPStfW1IrKGs8PDMpPj4zXSorX1tEPj4zXSxtPW0rMXwwO2Vsc2V7aWYoKDB8YVtMZSsoYjw8Mik+PjJdKSE9KDB8QSkpYnJlYWsgbjtfWyhiZT1jKyhiPDwz''@;'; put 'put ''KXwwKT4+M109K19bYmU+PjNdKyArX1tSKyhrPDwzKT4+M10qK19bRD4+M119az1rKzF8MH1sPWwrMXwwfWFbT2UrKEc8PDIpPj4yXT1tLHA9R31Qcig5NTUzNCw5NDk0MywxNDY4LDk1NTEyKTticmVhaztjYXNlIDI6YmU9MHxhW2wrMjg+PjJdLGM9MHxhW2MrMjg+PjJdLEc9MHxhW2YrMjg+''@;'; put 'put ''PjJdLGFbT2U+PjJdPTAscD0wLG09MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfEhlKSl7UmU9bTticmVhayB0fWZvcihwZT1WZSsoKHE9cCsxfDApPDwyKXwwLGdlPU9lKyhwPDwyKXwwLFI9MHxhW1ZlKyhwPDwyKT4+Ml07ISgoMHxSKT49KDB8YVtwZT4+Ml0pKTspe2ZvcihNPXJ0KygxKyhr''@;'; put 'put ''PTB8YVtxZSsoUjw8Mik+PjJdKTw8Mil8MCxEPWJlKygobD1SPDwxKTw8Myl8MCxsPWJlKygoMXxsKTw8Myl8MCxrPTB8YVtydCsoazw8Mik+PjJdOyEoKDB8ayk+PSgwfGFbTT4+Ml0pKTspe2lmKCgwfChiPTB8YVsodz1hdCsoKEE9MHxhWyhwPVdlKyhrPDwyKXwwKT4+Ml0pPDwyKXwwKT4+''@;'; put 'put ''Ml0pKTwoMHxhW2dlPj4yXSkpYVt3Pj4yXT1tLGFbTGUrKG08PDIpPj4yXT1hW3A+PjJdLF9bRysoKGI9bTw8MSk8PDMpPj4zXT0rX1soQT1jKygodz1rPDwxKTw8Myl8MCk+PjNdKitfW0Q+PjNdLStfWyh3PWMrKCgxfHcpPDwzKXwwKT4+M10qK19bbD4+M10sX1tHKygoMXxiKTw8Myk+PjNd''@;'; put 'put ''PStfW0E+PjNdKitfW2w+PjNdKyArX1t3Pj4zXSorX1tEPj4zXSxtPW0rMXwwO2Vsc2V7aWYoKDB8YVtMZSsoYjw8Mik+PjJdKSE9KDB8QSkpYnJlYWsgbjtfWyhwPUcrKChiPDw9MSk8PDMpfDApPj4zXT0rX1twPj4zXSsgK19bKEE9YysoKHc9azw8MSk8PDMpfDApPj4zXSorX1tEPj4zXS0r''@;'; put 'put ''X1sodz1jKygoMXx3KTw8Myl8MCk+PjNdKitfW2w+PjNdLF9bKGI9RysoKDF8Yik8PDMpfDApPj4zXT0rX1tBPj4zXSorX1tsPj4zXSsgK19bdz4+M10qK19bRD4+M10rICtfW2I+PjNdfWs9aysxfDB9Uj1SKzF8MH1hW09lKyhxPDwyKT4+Ml09bSxwPXF9UHIoOTU1MzQsOTQ5NDMsMTQ5Nyw5''@;'; put 'put ''NTUxMik7YnJlYWs7Y2FzZSA0OmdlPTB8YVtsKzI4Pj4yXSxSPTB8YVtjKzI4Pj4yXSxjPTB8YVtmKzI4Pj4yXSxhW09lPj4yXT0wLHA9MCxtPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxIZSkpe1JlPXA7YnJlYWsgdH1mb3IocT1WZSsoKEc9bSsxfDApPDwyKXwwLHBlPU9lKyhtPDwyKXww''@;'; put 'put ''LE09MHxhW1ZlKyhtPDwyKT4+Ml07ISgoMHxNKT49KDB8YVtxPj4yXSkpOyl7Zm9yKEQ9cnQrKDErKGs9MHxhW3FlKyhNPDwyKT4+Ml0pPDwyKXwwLGw9Z2UrKE08PDIpfDAsaz0wfGFbcnQrKGs8PDIpPj4yXTshKCgwfGspPj0oMHxhW0Q+PjJdKSk7KXtpZigoMHwoYj0wfGFbKHc9YXQrKChB''@;'; put 'put ''PTB8YVsobT1XZSsoazw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk8KDB8YVtwZT4+Ml0pKWFbdz4+Ml09cCxhW0xlKyhwPDwyKT4+Ml09YVttPj4yXSxhW2MrKHA8PDIpPj4yXT0wfEFyKDB8YVtSKyhrPDwyKT4+Ml0sMHxhW2w+PjJdKSxwPXArMXwwO2Vsc2V7aWYoKDB8YVtMZSsoYjw8Mik+''@;'; put 'put ''PjJdKSE9KDB8QSkpYnJlYWsgbjt3PTB8QXIoMHxhW1IrKGs8PDIpPj4yXSwwfGFbbD4+Ml0pLGFbKGJlPWMrKGI8PDIpfDApPj4yXT0oMHxhW2JlPj4yXSkrd31rPWsrMXwwfU09TSsxfDB9YVtPZSsoRzw8Mik+PjJdPXAsbT1HfVByKDk1NTM0LDk0OTQzLDE1MjMsOTU1MTIpO2JyZWFrO2Nh''@;'; put 'put ''c2UgODphW09lPj4yXT0wLHA9MCxtPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxIZSkpe1JlPXA7YnJlYWsgdH1mb3IoUj1WZSsoKGw9bSsxfDApPDwyKXwwLGM9T2UrKG08PDIpfDAsTT0wfGFbVmUrKG08PDIpPj4yXTshKCgwfE0pPj0oMHxhW1I+PjJdKSk7KXtmb3IoRD1ydCsoMSsoaz0w''@;'; put 'put ''fGFbcWUrKE08PDIpPj4yXSk8PDIpfDAsaz0wfGFbcnQrKGs8PDIpPj4yXTshKCgwfGspPj0oMHxhW0Q+PjJdKSk7KXtpZigoMHwoYj0wfGFbKHc9YXQrKChBPTB8YVsobT1XZSsoazw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk+PSgwfGFbYz4+Ml0pKXtpZigoMHxhW0xlKyhiPDwyKT4+Ml0p''@;'; put 'put ''IT0oMHxBKSlicmVhayBufWVsc2UgYVt3Pj4yXT1wLGFbTGUrKHA8PDIpPj4yXT1hW20+PjJdLHA9cCsxfDA7az1rKzF8MH1NPU0rMXwwfWFbT2UrKGw8PDIpPj4yXT1wLG09bH1Qcig5NTUzNCw5NDk0MywxNTQzLDk1NTEyKTticmVhaztkZWZhdWx0OlJhKGYpLGY9MDticmVhayBlfX13aGls''@;'; put 'put ''ZSgwKTthW2YrOD4+Ml09UmV9ZWxzZSBmPTB9d2hpbGUoMCk7RnQoYXQpfWVsc2UgZj0wO3JldHVybiAwfGZ9ZnVuY3Rpb24gWTQobCxjLGYpe3ZhciBhdCxTdCxrdCxFdCxadCxjdCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9l''@;'; put 'put ''PTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxzdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAsdXI9MDtpZihFdD0wfGFbMjArKGx8PTApPj4yXSxadD0wfGFbbCsyND4+Ml0sY3Q9MHxhWzIwKyhjfD0wKT4+Ml0sYXQ9MHxhW2MrMjQ+PjJdLFN0PTB8YVsyMCsoZnw9MCk+PjJd''@;'; put 'put ''LGt0PTB8YVtmKzI0Pj4yXSwxPT0oMHwoc3Q9MHxhW2wrMzI+PjJdKSkmJigwfHN0KT09KDB8YVtjKzMyPj4yXSl8fFByKDk1MDA1LDk0OTQzLDE1NzQsOTU1NTkpLHN0PTB8YVtsPj4yXSwoMHxhW2wrND4+Ml0pPT0oMHxhW2M+PjJdKSYmKDB8YVtjKzQ+PjJdKT09KDB8YVtmPj4yXSkmJigw''@;'; put 'put ''fChwZT0wfGFbbCsxNj4+Ml0pKT09KDB8YVtjKzE2Pj4yXSkmJigwfHBlKT09KDB8YVtmKzE2Pj4yXSkmJjAhPSgwfChidD0wfFFuKGFbKHE9Zis0fDApPj4yXTw8MikpKSl7Zm9yKHA9MDs7KXtpZigoMHxwKT49KDB8YVtxPj4yXSkpe209MCxwPTA7YnJlYWt9YVtidCsocDw8Mik+PjJdPS0x''@;'; put 'put ''LHA9cCsxfDB9ZTpmb3IoOyEoKDB8cCk+PSgwfHN0KSk7KWZvcihEPXArMXwwLFI9RXQrKEQ8PDIpfDAsRz0tMi1wfDAsTT0wfGFbRXQrKHA8PDIpPj4yXTs7KXtpZigoMHxNKT49KDB8YVtSPj4yXSkpe3A9RDtjb250aW51ZSBlfWZvcihrPWN0KygxKyhiPTB8YVtadCsoTTw8Mik+PjJdKTw8''@;'; put 'put ''Mil8MCxiPTB8YVtjdCsoYjw8Mik+PjJdOyEoKDB8Yik+PSgwfGFbaz4+Ml0pKTspe2Zvcih3PVN0KygxKyhBPTB8YVthdCsoYjw8Mik+PjJdKTw8Mil8MCxBPTB8YVtTdCsoQTw8Mik+PjJdOyEoKDB8QSk+PSgwfGFbdz4+Ml0pKTspKDB8YVsocD1idCsoYVtrdCsoQTw8Mik+PjJdPDwyKXww''@;'; put 'put ''KT4+Ml0pIT0oMHxHKSYmKGFbcD4+Ml09RyxtPW0rMXwwKSxBPUErMXwwO2I9YisxfDB9TT1NKzF8MH1wPTB8dWMoc3QsMHxhW3E+PjJdLG0scGUsMSk7ZTpkb3tpZihwKXtxZT0wfGFbcCsyMD4+Ml0scnQ9MHxhW3ArMjQ+PjJdO3Q6ZG97c3dpdGNoKDB8cGUpe2Nhc2UgMTpSZT0wfGFbbCsy''@;'; put 'put ''OD4+Ml0sTGU9MHxhW2MrMjg+PjJdLGY9MHxhW2YrMjg+PjJdLGdlPTB8YVtwKzI4Pj4yXSxhW3FlPj4yXT0wLG09MCxBPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxzdCkpe1dlPUE7YnJlYWsgdH1mb3IoT2U9RXQrKChiZT1tKzF8MCk8PDIpfDAsYz1xZSsobTw8Mil8MCxwZT0wfGFbRXQr''@;'; put 'put ''KG08PDIpPj4yXTshKCgwfHBlKT49KDB8YVtPZT4+Ml0pKTspe2ZvcihxPWN0KygxKyhHPTB8YVtadCsocGU8PDIpPj4yXSk8PDIpfDAsbD1SZSsocGU8PDMpfDAsRz0wfGFbY3QrKEc8PDIpPj4yXTshKCgwfEcpPj0oMHxhW3E+PjJdKSk7KXtmb3IoRD1TdCsoMSsoTT0wfGFbYXQrKEc8PDIp''@;'; put 'put ''Pj4yXSk8PDIpfDAsUj1MZSsoRzw8Myl8MCxNPTB8YVtTdCsoTTw8Mik+PjJdOyEoKDB8TSk+PSgwfGFbRD4+Ml0pKTspe2lmKCgwfChrPTB8YVsoYj1idCsoKHc9MHxhWyhtPWt0KyhNPDwyKXwwKT4+Ml0pPDwyKXwwKT4+Ml0pKTwoMHxhW2M+PjJdKSlhW2I+PjJdPUEsYVtydCsoQTw8Mik+''@;'; put 'put ''PjJdPWFbbT4+Ml0sX1tnZSsoQTw8Myk+PjNdPStfW1I+PjNdKitfW2w+PjNdKitfW2YrKE08PDMpPj4zXSxBPUErMXwwO2Vsc2V7aWYoKDB8YVtydCsoazw8Mik+PjJdKSE9KDB8dykpYnJlYWsgbjtfWyhWZT1nZSsoazw8Myl8MCk+PjNdPStfW1ZlPj4zXSsgK19bUj4+M10qK19bbD4+M10q''@;'; put 'put ''K19bZisoTTw8Myk+PjNdfU09TSsxfDB9Rz1HKzF8MH1wZT1wZSsxfDB9YVtxZSsoYmU8PDIpPj4yXT1BLG09YmV9UHIoOTU1ODIsOTQ5NDMsMTY0Miw5NTU1OSk7YnJlYWs7Y2FzZSAyOlZlPTB8YVtsKzI4Pj4yXSxIZT0wfGFbYysyOD4+Ml0sZ2U9MHxhW2YrMjg+PjJdLGJlPTB8YVtwKzI4''@;'; put 'put ''Pj4yXSxhW3FlPj4yXT0wLG09MCxBPTA7bjpmb3IoOzspe2lmKCgwfEEpPj0oMHxzdCkpe1dlPW07YnJlYWsgdH1mb3IoTGU9RXQrKChPZT1BKzF8MCk8PDIpfDAsUmU9cWUrKEE8PDIpfDAsbD0wfGFbRXQrKEE8PDIpPj4yXTshKCgwfGwpPj0oMHxhW0xlPj4yXSkpOyl7Zm9yKHBlPWN0Kygx''@;'; put 'put ''KyhEPTB8YVtadCsobDw8Mik+PjJdKTw8Mil8MCxjPVZlKygoZj1sPDwxKTw8Myl8MCxmPVZlKygoMXxmKTw8Myl8MCxEPTB8YVtjdCsoRDw8Mik+PjJdOyEoKDB8RCk+PSgwfGFbcGU+PjJdKSk7KXtmb3IoUj1TdCsoMSsoTT0wfGFbYXQrKEQ8PDIpPj4yXSk8PDIpfDAsRz1IZSsoKHE9RDw8''@;'; put 'put ''MSk8PDMpfDAscT1IZSsoKDF8cSk8PDMpfDAsTT0wfGFbU3QrKE08PDIpPj4yXTshKCgwfE0pPj0oMHxhW1I+PjJdKSk7KXtpZigoMHwoaz0wfGFbKGI9YnQrKCh3PTB8YVsoQT1rdCsoTTw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKSk8KDB8YVtSZT4+Ml0pKWFbYj4+Ml09bSxhW3J0KyhtPDwy''@;'; put 'put ''KT4+Ml09YVtBPj4yXSxfW2JlKygoaz1tPDwxKTw8Myk+PjNdPSgoSG49K19bRz4+M10pKihTbj0rX1tjPj4zXSktKHVyPStfW3E+PjNdKSooYW49K19bZj4+M10pKSorX1sodz1nZSsoKGI9TTw8MSk8PDMpfDApPj4zXS0odXIqU24rYW4qSG4pKitfWyhiPWdlKygoMXxiKTw8Myl8MCk+PjNd''@;'; put 'put ''LF9bYmUrKCgxfGspPDwzKT4+M109KCh1cj0rX1tHPj4zXSkqKFNuPStfW2Y+PjNdKSsoYW49K19bcT4+M10pKihIbj0rX1tjPj4zXSkpKitfW3c+PjNdKyh1cipIbi1TbiphbikqK19bYj4+M10sbT1tKzF8MDtlbHNle2lmKCgwfGFbcnQrKGs8PDIpPj4yXSkhPSgwfHcpKWJyZWFrIG47X1so''@;'; put 'put ''QT1iZSsoKGs8PD0xKTw8Myl8MCk+PjNdPStfW0E+PjNdKygoU249K19bRz4+M10pKihIbj0rX1tjPj4zXSktKGFuPStfW3E+PjNdKSoodXI9K19bZj4+M10pKSorX1sodz1nZSsoKGI9TTw8MSk8PDMpfDApPj4zXS0oYW4qSG4rdXIqU24pKitfWyhiPWdlKygoMXxiKTw8Myl8MCk+PjNdLF9b''@;'; put 'put ''KGs9YmUrKCgxfGspPDwzKXwwKT4+M109KChhbj0rX1tHPj4zXSkqKEhuPStfW2Y+PjNdKSsodXI9K19bcT4+M10pKihTbj0rX1tjPj4zXSkpKitfW3c+PjNdKyhhbipTbi1Ibip1cikqK19bYj4+M10rICtfW2s+PjNdfU09TSsxfDB9RD1EKzF8MH1sPWwrMXwwfWFbcWUrKE9lPDwyKT4+Ml09''@;'; put 'put ''bSxBPU9lfVByKDk1NTgyLDk0OTQzLDE2NzQsOTU1NTkpO2JyZWFrO2Nhc2UgNDpSZT0wfGFbbCsyOD4+Ml0sTGU9MHxhW2MrMjg+PjJdLGM9MHxhW2YrMjg+PjJdLGY9MHxhW3ArMjg+PjJdLGFbcWU+PjJdPTAsbT0wLEE9MDtuOmZvcig7Oyl7aWYoKDB8QSk+PSgwfHN0KSl7V2U9bTticmVh''@;'; put 'put ''ayB0fWZvcihiZT1FdCsoKGdlPUErMXwwKTw8Mil8MCxPZT1xZSsoQTw8Mil8MCxxPTB8YVtFdCsoQTw8Mik+PjJdOyEoKDB8cSk+PSgwfGFbYmU+PjJdKSk7KXtmb3IobD1jdCsoMSsoRD0wfGFbWnQrKHE8PDIpPj4yXSk8PDIpfDAscGU9UmUrKHE8PDIpfDAsRD0wfGFbY3QrKEQ8PDIpPj4y''@;'; put 'put ''XTshKCgwfEQpPj0oMHxhW2w+PjJdKSk7KXtmb3IoUj1TdCsoMSsoTT0wfGFbYXQrKEQ8PDIpPj4yXSk8PDIpfDAsRz1MZSsoRDw8Mil8MCxNPTB8YVtTdCsoTTw8Mik+PjJdOyEoKDB8TSk+PSgwfGFbUj4+Ml0pKTspe2lmKCgwfChrPTB8YVsoYj1idCsoKHc9MHxhWyhBPWt0KyhNPDwyKXww''@;'; put 'put ''KT4+Ml0pPDwyKXwwKT4+Ml0pKTwoMHxhW09lPj4yXSkpYVtiPj4yXT1tLGFbcnQrKG08PDIpPj4yXT1hW0E+PjJdLEhlPTB8QXIoMHxhW0c+PjJdLDB8YVtwZT4+Ml0pLEhlPTB8QXIoSGUsMHxhW2MrKE08PDIpPj4yXSksYVsoVmU9ZisobTw8Mil8MCk+PjJdPSgwfGFbVmU+PjJdKStIZSxt''@;'; put 'put ''PW0rMXwwO2Vsc2V7aWYoKDB8YVtydCsoazw8Mik+PjJdKSE9KDB8dykpYnJlYWsgbjtIZT0wfEFyKDB8YVtHPj4yXSwwfGFbcGU+PjJdKSxIZT0wfEFyKEhlLDB8YVtjKyhNPDwyKT4+Ml0pLGFbKFZlPWYrKGs8PDIpfDApPj4yXT0oMHxhW1ZlPj4yXSkrSGV9TT1NKzF8MH1EPUQrMXwwfXE9''@;'; put 'put ''cSsxfDB9YVtxZSsoZ2U8PDIpPj4yXT1tLEE9Z2V9UHIoOTU1ODIsOTQ5NDMsMTcwNiw5NTU1OSk7YnJlYWs7Y2FzZSA4OmFbcWU+PjJdPTAsbT0wLEE9MDtuOmZvcig7Oyl7aWYoKDB8QSk+PSgwfHN0KSl7V2U9bTticmVhayB0fWZvcihwZT1FdCsoKGw9QSsxfDApPDwyKXwwLGM9cWUrKEE8''@;'; put 'put ''PDIpfDAsRz0wfGFbRXQrKEE8PDIpPj4yXTshKCgwfEcpPj0oMHxhW3BlPj4yXSkpOyl7Zm9yKHE9Y3QrKDErKEQ9MHxhW1p0KyhHPDwyKT4+Ml0pPDwyKXwwLEQ9MHxhW2N0KyhEPDwyKT4+Ml07ISgoMHxEKT49KDB8YVtxPj4yXSkpOyl7Zm9yKFI9U3QrKDErKE09MHxhW2F0KyhEPDwyKT4+''@;'; put 'put ''Ml0pPDwyKXwwLE09MHxhW1N0KyhNPDwyKT4+Ml07ISgoMHxNKT49KDB8YVtSPj4yXSkpOyl7aWYoKDB8KGs9MHxhWyhiPWJ0Kygodz0wfGFbKEE9a3QrKE08PDIpfDApPj4yXSk8PDIpfDApPj4yXSkpPj0oMHxhW2M+PjJdKSl7aWYoKDB8YVtydCsoazw8Mik+PjJdKSE9KDB8dykpYnJlYWsg''@;'; put 'put ''bn1lbHNlIGFbYj4+Ml09bSxhW3J0KyhtPDwyKT4+Ml09YVtBPj4yXSxtPW0rMXwwO009TSsxfDB9RD1EKzF8MH1HPUcrMXwwfWFbcWUrKGw8PDIpPj4yXT1tLEE9bH1Qcig5NTU4Miw5NDk0MywxNzI5LDk1NTU5KTticmVhaztkZWZhdWx0OlJhKHApLHA9MDticmVhayBlfX13aGlsZSgwKTth''@;'; put 'put ''W3ArOD4+Ml09V2V9ZWxzZSBwPTB9d2hpbGUoMCk7RnQoYnQpfWVsc2UgcD0wO3JldHVybiAwfHB9ZnVuY3Rpb24gTzMobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtpZigyIT0oMHxhWzMyKyhsfD0wKT4+Ml0pJiZQcig5NTEwMCw5NDk0MywxOTcxLDk1''@;'; put 'put ''NjA3KSwoMHxjKT49MSl7Zm9yKCgwfChBPSh3PTB8YVtsKzg+PjJdKStjfDApKT49KDB8YVtsKzEyPj4yXSkmJmZ1bmN0aW9uIHY1KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7Mj09KDB8YVszMisobHw9MCk+PjJdKT8oYVsoZj1sKzIwfDApPj4yXT0wfFYwKDB8YVtmPj4yXSxtPWM8PDIp''@;'; put 'put ''LGFbKGY9bCsyNHwwKT4+Ml09MHxWMCgwfGFbZj4+Ml0sbSksKDB8KGY9MHxhW2wrNDA+PjJdKSk+MCYmKHA9MHxhWyhtPWwrMjh8MCk+PjJdLGY9MHxBcihmLGMpLGY9cD8wfFYwKHAsZik6MHxRbihmKSxhW20+PjJdPWYpKTooYVsoZj1sKzI0fDApPj4yXT0wfFYwKDB8YVtmPj4yXSxjPDwy''@;'; put 'put ''KSwoMHwoZj0wfGFbbCs0MD4+Ml0pKT4wJiYocD0wfGFbKG09bCsyOHwwKT4+Ml0sZj0wfEFyKGYsYyksZj1wPzB8VjAocCxmKTowfFFuKGYpLGFbbT4+Ml09ZikpLGFbbCsxMj4+Ml09Y30obCxBKzEwfDApLGdvKCgwfGFbbCsyMD4+Ml0pKyhiPXc8PDIpfDAsMHxmLDB8KEE9Yzw8MikpLGdv''@;'; put 'put ''KCgwfGFbbCsyND4+Ml0pK2J8MCwwfHAsMHxBKSwwfChBPTB8YVtsKzQwPj4yXSkmJihiPTB8QXIoQSxjKSx3PTB8QXIoQSx3KSxnbygoMHxhW2wrMjg+PjJdKSt3fDAsMHxtLDB8YikpLG09bCs0fDAsdz0wOyEoKDB8dyk+PSgwfGMpKTspKDB8KEE9MHxhW2YrKHc8PDIpPj4yXSkpPj0oMHxh''@;'; put 'put ''W2w+PjJdKSYmKGFbbD4+Ml09QSsxKSwoMHwoQT0wfGFbcCsodzw8Mik+PjJdKSk+PSgwfGFbbT4+Ml0pJiYoYVttPj4yXT1BKzEpLHc9dysxfDA7YVsoYj1sKzh8MCk+PjJdPSgwfGFbYj4+Ml0pK2N9cmV0dXJuIDB8bH1mdW5jdGlvbiBVNChsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAs''@;'; put 'put ''QT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2U6ZG97aWYobCl7TT0wfGFbbCsyMD4+Ml0saz0wfGFbbCsyND4+Ml07dDpkb3tzd2l0Y2goMHxhW2wrMTY+PjJdKXtjYXNlIDE6dz0wfGFbbCsyOD4+Ml0scD0wfGFbbD4+Ml0sYz0wO246Zm9yKDs7KXtpZigoMHxjKT49KDB8cCkpYnJlYWsg''@;'; put 'put ''dDtmb3IoZj0xLysoKEE9MHxhW00rKChtPWMrMXwwKTw8Mik+PjJdKS0oYz0wfGFbTSsoYzw8Mik+PjJdKXwwKTs7KXtpZigoMHxjKT49KDB8QSkpe2M9bTtjb250aW51ZSBufV9bKGs9dysoYzw8Myl8MCk+PjNdPStfW2s+PjNdKmYsYz1jKzF8MH19Y2FzZSAyOm09MHxhW2wrMjg+PjJdLEE9''@;'; put 'put ''MHxhW2w+PjJdLGM9MDtuOmZvcig7Oyl7aWYoKDB8Yyk+PSgwfEEpKWJyZWFrIHQ7Zm9yKGY9MS8rKChiPTB8YVtNKygodz1jKzF8MCk8PDIpPj4yXSktKHA9MHxhW00rKGM8PDIpPj4yXSl8MCk7Oyl7aWYoKDB8cCk+PSgwfGIpKXtjPXc7Y29udGludWUgbn0oMHxhW2srKHA8PDIpPj4yXSkh''@;'; put 'put ''PSgwfGMpJiYoX1soUj1tKygoRD1wPDwxKTw8Myl8MCk+PjNdPStfW1I+PjNdKmYsX1soRD1tKygoMXxEKTw8Myl8MCk+PjNdPStfW0Q+PjNdKmYpLHA9cCsxfDB9fWNhc2UgNDpQcigxMzgzOTQsOTQ5NDMsMjE5Miw5NTY0OCk7YnJlYWs7Y2FzZSA4OmJyZWFrO2RlZmF1bHQ6bD0wO2JyZWFr''@;'; put 'put ''IGV9fXdoaWxlKDApfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gQTUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMCE9KDB8KGx8PTApKSYmKGY9MHxhWyhjPWwrOHwwKT4+Ml0sKDB8KHA9MHxhW2wrND4+Ml0pKT09KDB8YVtsPj4yXSkpKXtmb3IoQT0wfGFb''@;'; put 'put ''bCsyND4+Ml0sbD0wfGFbbCsyMD4+Ml0sbT0wfHVjKHAscCxmLDgsMSksZ28oMHxhW20rMjA+PjJdLDB8bCw0KyhwPDwyKXwwKSxnbygwfGFbbSsyND4+Ml0sMHxBLGY8PDJ8MCksYVttKzg+PjJdPWFbYz4+Ml0sbD0wfGFoKG0sMSksUmEobSksbD0wfHdwKGwpLGY9MHxRbihhWyhwPWwrOHww''@;'; put 'put ''KT4+Ml08PDMpLGFbbCsyOD4+Ml09ZixwPTB8YVtwPj4yXSxjPTA7ISgoMHxjKT49KDB8cCkpOylfW2YrKGM8PDMpPj4zXT0xLGM9YysxfDA7YVtsKzE2Pj4yXT0xLGFbbCs0MD4+Ml09OH1lbHNlIGw9MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIEJoKCl7cmV0dXJuIDQuNjU2NjEyODc1MjQ1Nzk3''@;'; put 'put ''ZS0xMCorKDB8VDEoKSl9ZnVuY3Rpb24gYngobCl7cmV0dXJuKDB8KGx8PTApKT4xPzB8KDB8VDEoKSklKDB8bCk6KFByKDk1NjgyLDk1Njg4LDU4LDk1Njk4KSwwKX1mdW5jdGlvbiBIZChsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2U6ZG97aWYoKDB8bCk8MSljPTA7ZWxzZXtm''@;'; put 'put ''b3IoYz0wfFFuKGw8PDIpLGY9MDsoMHxmKSE9KDB8bCk7KWFbYysoZjw8Mik+PjJdPWYsZj1mKzF8MDtmb3IoOzspe2lmKCgwfGwpPD0xKWJyZWFrIGU7cD0wfGJ4KGwpLG09MHxhWyhBPWMrKChmPWwrLTF8MCk8PDIpfDApPj4yXSxhW0E+PjJdPWFbKHA9YysocDw8Mil8MCk+PjJdLGFbcD4+''@;'; put 'put ''Ml09bSxsPWZ9fX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIHk1KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKHA9MCxtPTA7ISgoMHxwKT49KDB8bCkpOylBPStfW2YrKHA8PDMpPj4zXSorX1tjKyhwPDwzKT4+M10rbSxwPXArMXwwLG09QTtyZXR1cm4r''@;'; put 'put ''bX1mdW5jdGlvbiBDeChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwPStwO3ZhciBtPTAsQT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylfWyhBPWYrKG08PDMpfDApPj4zXT0rX1tBPj4zXSpwKyArX1tjKyhtPDwzKT4+M10sbT1tKzF8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIFBfKGwsYyxm''@;'; put 'put ''LHApe2x8PTAsY3w9MCxmfD0wLHA9K3A7dmFyIG09MCxBPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxsKSk7KV9bKEE9YysobTw8Myl8MCk+PjNdPStfW2YrKG08PDMpPj4zXSpwKyArX1tBPj4zXSxtPW0rMXwwO3JldHVybiAwfGN9ZnVuY3Rpb24gZHUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBB''@;'; put 'put ''LG09MCx3PTA7Zm9yKEE9MHxBcihmfD0wLGN8PTApLHA9MHxBcihwLGMpLG09MCxmPTA7ISgoMHxmKT49KDB8YykpOyltPSh3PStfW2wrKGYrQTw8Myk+PjNdLStfW2wrKGYrcDw8Myk+PjNdKSp3K20sZj1mKzF8MDtyZXR1cm4rKCh3PStEMCgrbSkpPjFlLTE1P3c6MWUtMTUpfWZ1bmN0aW9u''@;'; put 'put ''IF9jKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgQSxtPTAsdz0wO2ZvcihBPTB8QXIoZnw9MCxjfD0wKSxwPTB8QXIocCxjKSxtPTAsZj0wOyEoKDB8Zik+PSgwfGMpKTspbT0odz0rX1tsKyhmK0E8PDMpPj4zXS0rX1tsKyhmK3A8PDMpPj4zXSkqdyttLGY9ZisxfDA7cmV0dXJuKyArRDAoK20p''@;'; put 'put ''fWZ1bmN0aW9uIF9BKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKHA9MCxtPTA7ISgoMHxtKT49KDB8ZikpOylwPShBPStfW2wrKG08PDMpPj4zXS0rX1tjKyhtPDwzKT4+M10pKkErcCxtPW0rMXwwO3JldHVybisgK0QwKCtwKX1mdW5jdGlvbiBreChsLGMpe2N8''@;'; put 'put ''PTAsMT09KDB8R28obHw9MCkpPyhsPTB8YVsxMzIrKDB8YVsxNisoMHxEdChsKSk+PjJdKT4+Ml0sYVtsPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0wLGFbbCsxMj4+Ml09MCk6KGZ1bmN0aW9uIHZhKGwpe3ZhciBjOygwfChjPTB8Y3IoMHxhW2FbMTEyKygwfGFbMTYrKDB8RHQobHw9''@;'; put 'put ''MCkpPj4yXSk+PjJdPj4yXSkpKSE9KDB8KGw9MHxhWzQ2OTI1XSkpJiYoYVs0NjU1NV09MCxhWzQ2OTI1XT1jLGFbNDY5MjZdPTB8c2koYywwLDk1NzEzLDApLGFbNDY5MjddPTB8c2koMHxhWzQ2OTI1XSwxLDk1NzIxLDApLGFbNDY5MjhdPTB8c2koMHxhWzQ2OTI1XSwxLDk1NzM4LDApLGw9''@;'; put 'put ''MHxhWzQ2OTI1XSksYVs0NjkyOV09MHxMaShsLDk1NzM4KSxTQSgxODYyMDgpLGFbNDY1NTRdPTEsX1syMzI4MF09K01sKDB8YVs0NjkyNV0sMHxhWzQ2OTI2XSwxLDApLGFbNDY1NTZdPWFbNDY5MjddLGFbNDY1NTddPWFbNDY5MjhdLGFbNDY1NThdPWFbNDY5MjldfShsKSxjPSgwfHQxKDB8''@;'; put 'put ''TGkoYyw5NTcwNCkpKTw8MjQ+PjI0PzB8ZnVuY3Rpb24gVHQobCl7bHw9MDt2YXIgbSxjPTAsZj0wLHA9MDtmb3IobT1sZSxsZT1sZSsxNDR8MCxwPW0sZj1tKzh8MCxhWzQ2NTU1XT0xKyhjPTB8YVs0NjU1NV0pLGFbcD4+Ml09YyxvbyhmLDk2MjM0LHApLHA9KGY9MHxZXygwfHBzKGwsZiwx''@;'; put 'put ''KSkpKzh8MCxjPTB8RHQobCk7YzspWW4oMHxhW3A+PjJdLGMsMSksYVsxMisoMHxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXT1mLGM9MHx6dChsLGMpO3JldHVybiBsZT1tLDB8Zn0obCk6MHxmdW5jdGlvbiBiUChsLGMpe3ZhciBrLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtm''@;'; put 'put ''b3IoZnVuY3Rpb24gX1AobCxjKXtsfD0wO3ZhciBBLGIsZj0wLHA9MCxtPTA7Yj1sZSxsZT1sZSsxNnwwLEE9Yis4fDAsMCE9KDB8KHA9MHxhWzI0KyhjfD0wKT4+Ml0pKSYmMCE9KDB8KGY9MHxHcihsLHAsMCkpKXx8KG09Myk7ZTpkb3tpZigzPT0oMHxtKSl7cD1jKzIwfDA7dDpkb3tpZigw''@;'; put 'put ''fGFbcD4+Ml0pZm9yKGY9MHxEdChsKTs7KXtpZighZilicmVhayB0O2lmKCgwfHBKKDB8YVthWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0+PjJdLDB8YVtwPj4yXSwwKSk8PDI0Pj4yNClicmVhayBlO2Y9MHx6dChsLGYpfX13aGlsZSgwKTtmPTB8RHQobCl9fXdoaWxlKDApO2FbQSs0Pj4yXT0w''@;'; put 'put ''LGFbQT4+Ml09MCxReChsLGYsYywxLEEpLGxlPWJ9KGx8PTAsY3w9MCksdz0wfGFbNCsoaz0wfGFbYz4+Ml0pPj4yXTt3Oyl7Zm9yKGI9MHxEdChNPTB8YVt3Kzg+PjJdKSxsPTB8YVsxNisoZj0wfGFbMTEyKygwfGFbYisxNj4+Ml0pPj4yXSkrND4+Ml0sZj0wfGFbZis4Pj4yXSxtPWIsYj0w''@;'; put 'put ''fHp0KE0sYik7YjspKDB8KEE9MHxhWzE2KyhwPTB8YVsxMTIrKDB8YVtiKzE2Pj4yXSk+PjJdKSs0Pj4yXSkpPCgwfGwpJiYobT1iLGY9MHxhW3ArOD4+Ml0sbD1BKSxiPTB8enQoTSxiKTthWyhNPTQrKGI9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXT04fGFbTT4+Ml0sYVt3''@;'; put 'put ''Pj4yXT1tLE09MHxhW3crND4+Ml0sVV8oMzYrKDB8YVtiKzEyPj4yXSl8MCx3KSx3PU19cmV0dXJuIFNBKGMpLDB8a30obCwxODYyMDgpLGZ1bmN0aW9uIE1QKGwsYyxmKXtLeChsfD0wLGN8PTAsK19bMzIrKGZ8PTApPj4zXSl9KGwsYywxODYyMDgpLGZ1bmN0aW9uIEZfKGwpe1h4KGx8PTAp''@;'; put 'put ''fShjKSl9ZnVuY3Rpb24gYVAobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHxRbigzMiksYVtmPj4yXT00LF9bZis4Pj4zXT0uNzUsYVtmKzE2Pj4yXT0xMDczNzQxODI0LGFbZisyMD4+Ml09MSxhW2YrMjQ+PjJdPWwsYVtmKzI4Pj4yXT1jLDB8Zn1mdW5jdGlvbiBudChsKXtGdChs''@;'; put 'put ''fD0wKX1mdW5jdGlvbiBvdChsKXt2YXIgYz0wLGY9MDtpZihsfD0wKXtmPTB8YVtsKzg+PjJdO2Rve2lmKDB8Zil7aWYoMHxhW2w+PjJdKXtpZihSYShmKSwhKGM9MHxhW2wrMTI+PjJdKSlicmVhaztSYShjKTticmVha30wfGFbbCszNj4+Ml0mJihSYShmKSwwfChjPTB8YVtsKzEyPj4yXSkp''@;'; put 'put ''JiZSYShjKX19d2hpbGUoMCk7UmEoMHxhW2wrMTY+PjJdKSxSYSgwfGFbbCsyMD4+Ml0pLDB8KGM9MHxhW2wrMjQ+PjJdKSYmKDB8YVtsPj4yXSk+MCYmRnQoYyksb3QoMHxhW2wrMjg+PjJdKSxGdChsKX19ZnVuY3Rpb24gdzUobCxjLGYscCxtLEEsdyxiLGssTSl7bHw9MCxjfD0wLGZ8PTAs''@;'; put 'put ''cHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTAsTXw9MDt2YXIgV2UsU3Qsa3Qsc3QsRXQsWnQsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsYXQ9MDtadD1sZSxsZT1sZSszMnwwLHE9WnQrMjR8MCxXZT1adCsyMHww''@;'; put 'put ''LGt0PVp0KzE2fDAsUj1adCsxMnwwLHN0PVp0Kzh8MCxFdD1adCs0fDAsTGU9WnQsYVsoU3Q9WnQrMjh8MCk+PjJdPTAsYVtxPj4yXT0wLGFba3Q+PjJdPTAsYVtzdD4+Ml09MCxhW0V0Pj4yXT0wLGFbYz4+Ml09MCxhW3A+PjJdPTAsYVt3Pj4yXT0wLGFbYj4+Ml09MCxhdD0wfGFbbD4+Ml0s''@;'; put 'put ''YVtNPj4yXT1hWyhHPWsrMjR8MCk+PjJdLEQ9MHxhW0c+PjJdO2U6ZG97c3dpdGNoKDB8RCl7Y2FzZSAxMjphW0c+PjJdPTMsYVtNPj4yXT0zLHc1KGwsYyxmLHAsbSxBLHcsYixrLE0pLDA9PSgwfGFbYz4+Ml0pJiYoYVtHPj4yXT00LGFbTT4+Ml09NCx3NShsLGMsZixwLG0sQSx3LGIsayxN''@;'; put 'put ''KSwwPT0oMHxhW2M+PjJdKSkmJihhW0c+PjJdPTYsYVtNPj4yXT02LHc1KGwsYyxmLHAsbSxBLHcsYixrLE0pLDA9PSgwfGFbYz4+Ml0pKSYmKGFbRz4+Ml09OSxhW00+PjJdPTksdzUobCxjLGYscCxtLEEsdyxiLGssTSksMD09KDB8YVtjPj4yXSkpJiYoYVtHPj4yXT0yLGFbTT4+Ml09Mix3''@;'; put 'put ''NShsLGMsZixwLG0sQSx3LGIsayxNKSksYVtHPj4yXT0xMixHPTAscT0wLGs9MCxSPTAsRD0wLE09MDticmVhaztjYXNlIDk6Y2FzZSAxMDppZihmPTB8YVtrKzIwPj4yXSw5PT0oMHxEKT9IXyhsLGYsa3QsUixXZSk6R24obCxmLGt0LFIsV2UpLE9lPTB8YVtsKzIwPj4yXSxMZT0wfGFbbCsy''@;'; put 'put ''ND4+Ml0sYmU9MHxhW1I+PjJdLDB8YVtrKzI4Pj4yXSl7aWYoKDB8YmUpPT0oMHxhdCkpe0c9MCxxPTAsaz0wLFI9MCxEPTAsTT0wO2JyZWFrIGV9fWVsc2UgaWYoKDB8YmUpPT0oMHxhdCl8fCtfW2srOD4+M10qKygwfGF0KTwrKDB8YmUpKXtHPTAscT0wLGs9MCxSPTAsRD0wLE09MDticmVh''@;'; put 'put ''ayBlfWlmKCgwfGJlKT49KDB8YVtrPj4yXSkpe0hlPTB8UW4oVmU9KHFlPTB8YVtXZT4+Ml0pPDwyKSxWZT0wfFFuKFZlKSxxZT0wfFFuKHFlPDwzKSxhW1dlPj4yXT0wLGdlPTB8YVtrdD4+Ml0scGU9MCxSPTA7dDpmb3IoOyEoKDB8cGUpPj0oMHxhdCkpOylpZigtMT09KDB8YVsoZj1nZSso''@;'; put 'put ''cGU8PDIpfDApPj4yXSkpe2ZvcihHPTB8YVsoaz1PZSsoKHE9cGUrMXwwKTw8Mil8MCk+PjJdLGY9MCxNPUQ9MHxhW09lKyhwZTw8Mik+PjJdOyEoKDB8TSk+PSgwfEcpKTspZj0oKDB8YVtnZSsoYVtMZSsoTTw8Mik+PjJdPDwyKT4+Ml0pPj4+MzFeMSkrZnwwLE09TSsxfDA7Zm9yKFJlPTEv''@;'; put 'put ''KygwfGYpLGY9Rzs7KXtpZigoMHxEKT49KDB8Zikpe3BlPXE7Y29udGludWUgdH0oMHxhW2dlKyhhWyhNPUxlKyhEPDwyKXwwKT4+Ml08PDIpPj4yXSk+LTE/KGFbSGUrKFI8PDIpPj4yXT1wZSxhW1ZlKyhhW1dlPj4yXTw8Mik+PjJdPWFbZ2UrKGFbTT4+Ml08PDIpPj4yXSxhW1dlPj4yXT1N''@;'; put 'put ''PTErKGY9MHxhW1dlPj4yXSl8MCxfW3FlKyhmPDwzKT4+M109UmUsZj0wfGFbaz4+Ml0pOk09UixEPUQrMXwwLFI9TX19ZWxzZSBhW0hlKyhSPDwyKT4+Ml09cGUsYVtWZSsoYVtXZT4+Ml08PDIpPj4yXT1hW2Y+PjJdLGFbV2U+PjJdPWs9MSsocT0wfGFbV2U+PjJdKXwwLF9bcWUrKHE8PDMp''@;'; put 'put ''Pj4zXT0xLHBlPXBlKzF8MCxSPWs7YXQ9MHxvNChSLGF0LGJlLEhlLFZlLHFlLDEsOCksYVt3Pj4yXT1hdCxhdD0wfFl5KGF0KSxhW2I+PjJdPWF0LHc9MHxZNChhdCxsLDB8YVt3Pj4yXSksYVtjPj4yXT13LHc/KEtmKDB8YVtiPj4yXSxtLEEsMCksYVsocT0zNisoRz0wfGFbYz4+Ml0pfDAp''@;'; put 'put ''Pj4yXT0zfGFbcT4+Ml0sYVtjPj4yXT0wfHdwKEcpLGFbcD4+Ml09MCxHPXFlLHE9VmUsaz1IZSxSPUhlLEQ9VmUsTT1xZSk6KEc9cWUscT1WZSxrPUhlLFI9SGUsRD1WZSxNPXFlKX1lbHNlIEc9MCxxPTAsaz0wLFI9MCxEPTAsTT0wO2JyZWFrO2Nhc2UgNTpydD0yNjticmVhaztjYXNlIDE6''@;'; put 'put ''d2kobCwwfGFbKE09aysyMHwwKT4+Ml0sU3QscSksMj09KDB8KGY9MHxhW0c+PjJdKSk/KGY9TSxydD0yNCk6cnQ9MjU7YnJlYWs7Y2FzZSAyOmY9aysyMHwwLHJ0PTI0O2JyZWFrO2Nhc2UgMzpCMChsLDB8YVtrKzIwPj4yXSxzdCxFdCxMZSkscnQ9MTI7YnJlYWs7Y2FzZSA0OlAwKGwsMHxh''@;'; put 'put ''W2srMjA+PjJdLHN0LEV0LExlKSxydD0xMjticmVhaztjYXNlIDY6ZjEobCxzdCxFdCxMZSkscnQ9MTI7YnJlYWs7ZGVmYXVsdDpHPTAscT0wLGs9MCxSPTAsRD0wLE09MH19d2hpbGUoMCk7ZG97aWYoMTI9PSgwfHJ0KSl7aWYocGU9MHxhW0xlPj4yXSwwfGFbaysyOD4+Ml0pe2lmKCgwfHBl''@;'; put 'put ''KT09KDB8YXQpKXtHPTAscT0wLGs9MCxSPTAsRD0wLE09MDticmVha319ZWxzZSBpZigoMHxwZSk9PSgwfGF0KXx8K19bays4Pj4zXSorKDB8YXQpPCsoMHxwZSkpe0c9MCxxPTAsaz0wLFI9MCxEPTAsTT0wO2JyZWFrfWlmKCgwfHBlKT49KDB8YVtrPj4yXSkpe2dlPTB8UW4oYmU9YXQ8PDIp''@;'; put 'put ''LGJlPTB8UW4oYmUpLE9lPTB8UW4oYXQ8PDMpLGFbV2U+PjJdPTAsUj0wfGFbRXQ+PjJdLEc9MHxhW3N0Pj4yXSxEPTAsZj0wO2U6Zm9yKDshKCgwfEQpPj0oMHxhW0xlPj4yXSkpOylmb3IocT1EKzF8MCxrPVIrKHE8PDIpfDAsTT0wfGFbUisoRDw8Mik+PjJdOzspe2lmKCgwfE0pPj0oMHxh''@;'; put 'put ''W2s+PjJdKSl7RD1xO2NvbnRpbnVlIGV9YVtnZSsoZjw8Mik+PjJdPWFbRysoTTw8Mik+PjJdLGFbYmUrKGFbV2U+PjJdPDwyKT4+Ml09RCxhW1dlPj4yXT1xZT0xKyhWZT0wfGFbV2U+PjJdKXwwLF9bT2UrKFZlPDwzKT4+M109MSxNPU0rMXwwLGY9cWV9YXQ9MHxvNChmLGF0LHBlLGdlLGJl''@;'; put 'put ''LE9lLDEsOCksYVt3Pj4yXT1hdCxhW2I+PjJdPTB8WXkoYXQpLGFbcD4+Ml09MCx3PTB8WTQoMHxhW2I+PjJdLGwsMHxhW3c+PjJdKSxhW2M+PjJdPXcsdz8oS2YoMHxhW2I+PjJdLG0sQSwwKSxhW2I+PjJdPTB8VTQoMHxhW2I+PjJdKSxhWyhxPTM2KyhHPTB8YVtjPj4yXSl8MCk+PjJdPTN8''@;'; put 'put ''YVtxPj4yXSxhW2M+PjJdPTB8d3AoRyksRz1PZSxxPWJlLGs9Z2UsUj1nZSxEPWJlLE09T2UpOihHPU9lLHE9YmUsaz1nZSxSPWdlLEQ9YmUsTT1PZSl9ZWxzZSBHPTAscT0wLGs9MCxSPTAsRD0wLE09MH1lbHNlIDI0PT0oMHxydCkmJihWbShsLDB8YVtmPj4yXSxTdCxxKSxmPTB8YVtHPj4y''@;'; put 'put ''XSxydD0yNSl9d2hpbGUoMCk7MjU9PSgwfHJ0KSYmKHJ0PTU9PSgwfGYpPzI2OjI3KSwyNj09KDB8cnQpJiYoZnVuY3Rpb24gU3gobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGdlLGJlLE9lLExlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wO2Zvcihi''@;'; put 'put ''ZT0wfGFbMjArKGx8PTApPj4yXSxPZT0wfGFbbCsyND4+Ml0sQT0wfGFbbCs0Pj4yXSxxPTB8UW4oKExlPTB8YVtsPj4yXSk8PDIpLGFbZj4+Ml09cSxtPTA7ISgoMHxtKT49KDB8TGUpKTspYVtxKyhtPDwyKT4+Ml09bSxtPW0rMXwwO2FbcD4+Ml09QSxnZT0wfGFbbCsyOD4+Ml07ZTpkb3tp''@;'; put 'put ''ZihjKXtmb3IocGU9MHxIZChMZSkscT0wLG09MCx3PTA7ISgoMHxxKT49KDB8TGUpKTspe2lmKCgwfGFbKEQ9KE09MHxhW2Y+PjJdKSsoKGs9MHxhW3BlKyhxPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pPT0oMHxrKSl7Zm9yKEc9KygoUj0wfGFbYmUrKGsrMTw8Mik+PjJdKS0oYz0wfGFbYmUrKGs8''@;'; put 'put ''PDIpPj4yXSl8MCksQT0xOyEoKDB8Yyk+PSgwfFIpKTspKDB8aykhPSgwfChsPTB8YVtPZSsoYzw8Mik+PjJdKSkmJigwfGFbTSsobDw8Mik+PjJdKT09KDB8bCkmJihiPStfW2dlKyhjPDwzKT4+M10vKCsoKDB8YVtiZSsobCsxPDwyKT4+Ml0pLSgwfGFbYmUrKGw8PDIpPj4yXSl8MCkqRyks''@;'; put 'put ''MCE9KDB8QSl8fGI+dz8oQT0wLG09bCx3PWIpOkE9MCksYz1jKzF8MDtBfHwoYVtNKyhtPDwyKT4+Ml09ayxhW0Q+PjJdPW0sYVtwPj4yXT0oMHxhW3A+PjJdKS0xKX1xPXErMXwwfUZ0KHBlKX1lbHNlIGZvcihtPTAsdz0wLGs9MDs7KXtpZigoMHxrKT49KDB8TGUpKWJyZWFrIGU7Zm9yKFI9''@;'; put 'put ''cSsoazw8Mil8MCxHPSsoKEQ9MHxhW2JlKygoTT1rKzF8MCk8PDIpPj4yXSktKGM9MHxhW2JlKyhrPDwyKT4+Ml0pfDApLEE9MTshKCgwfGMpPj0oMHxEKSk7KSgwfGspIT0oMHwobD0wfGFbT2UrKGM8PDIpPj4yXSkpJiYoMHxhW3ErKGw8PDIpPj4yXSk9PSgwfGwpJiYoMHxhW1I+PjJdKT09''@;'; put 'put ''KDB8aykmJihiPStfW2dlKyhjPDwzKT4+M10vKCsoKDB8YVtiZSsobCsxPDwyKT4+Ml0pLSgwfGFbYmUrKGw8PDIpPj4yXSl8MCkqRyksMCE9KDB8QSl8fGI+dz8oQT0wLG09bCx3PWIpOkE9MCksYz1jKzF8MDswfEF8fChhW3ErKG08PDIpPj4yXT1rLGFbcSsoazw8Mik+PjJdPW0sYVtwPj4y''@;'; put 'put ''XT0oMHxhW3A+PjJdKS0xKSxrPU19fXdoaWxlKDApfShsLDB8YVtrKzIwPj4yXSxTdCxxKSxydD0yNyk7ZG97aWYoMjc9PSgwfHJ0KSl7aWYoZj0wfGFbcT4+Ml0sMHxhW2srMjg+PjJdKXtpZigoMHxmKT09KDB8YXQpKXtHPTAscT0wLGs9MCxSPTAsRD0wLE09MDticmVha319ZWxzZSBpZigo''@;'; put 'put ''MHxmKT09KDB8YXQpfHwrX1trKzg+PjNdKisoMHxhdCk8KygwfGYpKXtHPTAscT0wLGs9MCxSPTAsRD0wLE09MDticmVha31pZigoMHxmKT49KDB8YVtrPj4yXSkpe2ZvcihwZT0wfFFuKGdlPWF0PDwyKSxnZT0wfFFuKGdlKSxiZT0wfFFuKGF0PDwzKSxhW1dlPj4yXT0wLHE9MHxhW1N0Pj4y''@;'; put 'put ''XSxmPTAsRz0wOyEoKDB8Ryk+PSgwfGF0KSk7KSgwfChEPTB8YVsoTT1xKyhHPDwyKXwwKT4+Ml0pKT4tMSYmKGFbcGUrKGFbV2U+PjJdPDwyKT4+Ml09RyxhW2dlKyhhW1dlPj4yXTw8Mik+PjJdPWYsYVtXZT4+Ml09Uj0xKyhydD0wfGFbV2U+PjJdKXwwLF9bYmUrKHJ0PDwzKT4+M109MSwo''@;'; put 'put ''MHxEKSE9KDB8RykmJihhW3BlKyhSPDwyKT4+Ml09YVtNPj4yXSxhW2dlKyhhW1dlPj4yXTw8Mik+PjJdPWYsYVtXZT4+Ml09MSsocnQ9MHxhW1dlPj4yXSksX1tiZSsocnQ8PDMpPj4zXT0xLGFbcSsoYVtNPj4yXTw8Mik+PjJdPS0xKSxhW00+PjJdPS0xLGY9ZisxfDApLEc9RysxfDA7YXQ9''@;'; put 'put ''MHxvNCgwfGFbV2U+PjJdLGF0LGYscGUsZ2UsYmUsMSw4KSxhW3c+PjJdPWF0LGF0PTB8WXkoYXQpLGFbYj4+Ml09YXQsdz0wfFk0KGF0LGwsMHxhW3c+PjJdKSxhW2M+PjJdPXcsdz8oS2YoMHxhW2I+PjJdLG0sQSwwKSxhW2I+PjJdPTB8VTQoMHxhW2I+PjJdKSxhWyhxPTM2KyhHPTB8YVtj''@;'; put 'put ''Pj4yXSl8MCk+PjJdPTN8YVtxPj4yXSxhW2M+PjJdPTB8d3AoRyksYVtwPj4yXT0wLEc9YmUscT1nZSxrPXBlLFI9cGUsRD1nZSxNPWJlKTooRz1iZSxxPWdlLGs9cGUsUj1wZSxEPWdlLE09YmUpfWVsc2UgRz0wLHE9MCxrPTAsUj0wLEQ9MCxNPTB9fXdoaWxlKDApOzB8KGY9MHxhW1N0Pj4y''@;'; put 'put ''XSkmJkZ0KGYpLDB8KGY9MHxhW2t0Pj4yXSkmJkZ0KGYpLDB8ayYmRnQoUiksMHxxJiZGdChEKSwwfEcmJkZ0KE0pLDB8KGY9MHxhW3N0Pj4yXSkmJkZ0KGYpLDB8KGY9MHxhW0V0Pj4yXSkmJkZ0KGYpLGxlPVp0fWZ1bmN0aW9uIEIwKGwsYyxmLHAsbSl7Y3w9MCxwfD0wLG18PTA7dmFyIGJl''@;'; put 'put ''LEhlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxPZT0wLExlPTAsUmU9MDtmb3IoT2U9MHxhWzIwKyhsfD0wKT4+Ml0sTGU9MHxhW2wrMjQ+PjJdLGFbKGZ8PTApPj4yXT0wfFFuKFJlPShIZT0wfGFbbD4+Ml0pPDwyKSxhW3A+PjJdPTB8UW4oUmUrNHww''@;'; put 'put ''KSxSZT0wfFFuKFJlKSxBPTA7ISgoMHxBKT49KDB8SGUpKTspYVtSZSsoQTw8Mik+PjJdPUEsQT1BKzF8MDthW20+PjJdPTAsYVsoZ2U9MHxhW3A+PjJdKT4+Ml09MCxiZT0wfGFbbCsyOD4+Ml07ZTpkb3tpZihjKXtmb3IoZ2U9MHxIZChIZSksUj0wLEE9MDs7KXtpZigoMHxSKT49KDB8SGUp''@;'; put 'put ''KXtwZT0wLGw9MCxiPTA7YnJlYWt9bD0wfGFbZ2UrKFI8PDIpPj4yXTt0OmRve2lmKC0xIT0oMHxhW1JlKyhsPDwyKT4+Ml0pJiYocT0wfGFbT2UrKGw8PDIpPj4yXSwxPT0oKDB8YVtPZSsobCsxPDwyKT4+Ml0pLXF8MCkpKXtmb3IoYVtSZSsoKGs9MHxhW0xlKyhxPDwyKT4+Ml0pPDwyKT4+''@;'; put 'put ''Ml09LTEsYVsoTT0wfGFbZj4+Ml0pKyhBPDwyKT4+Ml09ayxEPU9lKyhrKzE8PDIpfDAsdz0wfGFbT2UrKGs8PDIpPj4yXSxBPUErMXwwOyEoKDB8dyk+PSgwfGFbRD4+Ml0pKTspKDB8aykhPSgwfChjPTB8YVsobD1MZSsodzw8Mil8MCk+PjJdKSkmJjE9PSgoMHxhW09lKyhjKzE8PDIpPj4y''@;'; put 'put ''XSktKDB8YVtPZSsoYzw8Mik+PjJdKXwwKSYmKGFbUmUrKGM8PDIpPj4yXT0tMSxhW00rKEE8PDIpPj4yXT1hW2w+PjJdLEE9QSsxfDApLHc9dysxfDA7aWYoKEEtKGM9MHxhWyh3PTB8YVtwPj4yXSkrKChsPTB8YVttPj4yXSk8PDIpPj4yXSl8MCk8NSl7YVttPj4yXT1wZT1sKzF8MCxhW3cr''@;'; put 'put ''KHBlPDwyKT4+Ml09QTticmVha31mb3IoYz1jKzF8MCxhW20+PjJdPWw9bCsxfDAsYVt3KyhsPDwyKT4+Ml09YyxsPWM7Oyl7aWYoISgoMHxjKTwoMHxBKSYoMHxsKTwoMHxBKSkpYnJlYWsgdDtwZT0oMHxBKTwoMHwocGU9YyszfDApKT9BOnBlLGFbbT4+Ml09RD0xKygwfGFbbT4+Ml0pfDAs''@;'; put 'put ''YVt3KyhEPDwyKT4+Ml09cGUsbD1sKzF8MCxjPXBlfX19d2hpbGUoMCk7Uj1SKzF8MH1mb3IoOzspe2lmKCgwfHBlKT49KDB8SGUpKXtsPTA7YnJlYWt9aWYoLTEhPSgwfChjPTB8YVsoUj1SZSsoKEQ9MHxhW2dlKyhwZTw8Mik+PjJdKTw8Mil8MCk+PjJdKSkpe2ZvcihxPTB8YVtPZSsoRCsx''@;'; put 'put ''PDwyKT4+Ml0saz0xLE09MHxhW09lKyhEPDwyKT4+Ml07ISgoMHxNKT49KDB8cSkpOykoMHxEKSE9KDB8KHc9MHxhW0xlKyhNPDwyKT4+Ml0pKSYmLTEhPSgwfGFbUmUrKHc8PDIpPj4yXSkmJigtMSE9KDB8Yyk/KEc9K19bYmUrKE08PDMpPj4zXSwwIT0oMHxrKXx8Rz5iPyhrPTAsbD13LGI9''@;'; put 'put ''Ryk6az0wKTpjPS0xKSxNPU0rMXwwO2t8fChhW1JlKyhsPDwyKT4+Ml09LTEsYVtSPj4yXT0tMSxhWyhSPTB8YVtmPj4yXSkrKEE8PDIpPj4yXT1ELHE9QSsyfDAsYVtSKyhBKzE8PDIpPj4yXT1sLFI9MHxhW3A+PjJdLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtSKyhBPDwyKT4+Ml09''@;'; put 'put ''cSxBPXEpfXBlPXBlKzF8MH1mb3IoOyEoKDB8bCk+PSgwfEhlKSk7KSgwfGFbUmUrKGw8PDIpPj4yXSk9PSgwfGwpJiYoTGU9QSsxfDAsYVsoMHxhW2Y+PjJdKSsoQTw8Mik+PjJdPWwsT2U9MHxhW3A+PjJdLGFbbT4+Ml09QT0xKygwfGFbbT4+Ml0pfDAsYVtPZSsoQTw8Mik+PjJdPUxlLEE9''@;'; put 'put ''TGUpLGw9bCsxfDA7RnQoZ2UpfWVsc2V7QT0wLGw9MDt0OmZvcig7Oyl7Zm9yKDs7KXtpZigoMHxsKT49KDB8SGUpKXtsPTAsYj0wLGM9MDticmVhayB0fWlmKGM9bCxsPWwrMXwwLC0xIT0oMHxhW1JlKyhjPDwyKT4+Ml0pJiYxPT0oKDB8YVtPZSsobDw8Mik+PjJdKS0oYz0wfGFbT2UrKGM8''@;'; put 'put ''PDIpPj4yXSl8MCkpYnJlYWt9Zm9yKGFbUmUrKChNPTB8YVtMZSsoYzw8Mik+PjJdKTw8Mik+PjJdPS0xLGFbKEQ9MHxhW2Y+PjJdKSsoQTw8Mik+PjJdPU0sUj1PZSsoTSsxPDwyKXwwLGs9MHxhW09lKyhNPDwyKT4+Ml0sQT1BKzF8MDshKCgwfGspPj0oMHxhW1I+PjJdKSk7KSgwfE0pIT0o''@;'; put 'put ''MHwodz0wfGFbKGM9TGUrKGs8PDIpfDApPj4yXSkpJiYxPT0oKDB8YVtPZSsodysxPDwyKT4+Ml0pLSgwfGFbT2UrKHc8PDIpPj4yXSl8MCkmJihhW1JlKyh3PDwyKT4+Ml09LTEsYVtEKyhBPDwyKT4+Ml09YVtjPj4yXSxBPUErMXwwKSxrPWsrMXwwO2lmKChBLSh3PTB8YVtnZSsoKGM9MHxh''@;'; put 'put ''W20+PjJdKTw8Mik+PjJdKXwwKTw1KWFbbT4+Ml09cD1jKzF8MCxhW2dlKyhwPDwyKT4+Ml09QTtlbHNlIGZvcih3PXcrMXwwLGFbbT4+Ml09Yz1jKzF8MCxhW2dlKyhjPDwyKT4+Ml09dyxjPXc7Oyl7aWYoISgoMHx3KTwoMHxBKSYoMHxjKTwoMHxBKSkpY29udGludWUgdDtwPSgwfEEpPCgw''@;'; put 'put ''fChwPXcrM3wwKSk/QTpwLGFbbT4+Ml09cGU9MSsoMHxhW20+PjJdKXwwLGFbZ2UrKHBlPDwyKT4+Ml09cCxjPWMrMXwwLHc9cH19dDpmb3IoOzspe2Rve2ZvcihSPWM7Oyl7aWYoKDB8Uik+PSgwfEhlKSl7bD0wO2JyZWFrIHR9aWYoLTEhPSgwfCh3PTB8YVsocT1SZSsoUjw8Mil8MCk+PjJd''@;'; put 'put ''KSkpYnJlYWs7Uj1SKzF8MH1mb3IocGU9MHxhW09lKygoYz1SKzF8MCk8PDIpPj4yXSxNPTEsRD0wfGFbT2UrKFI8PDIpPj4yXTshKCgwfEQpPj0oMHxwZSkpOykoMHxSKSE9KDB8KGs9MHxhW0xlKyhEPDwyKT4+Ml0pKSYmLTEhPSgwfGFbUmUrKGs8PDIpPj4yXSkmJigtMSE9KDB8dyk/KEc9''@;'; put 'put ''K19bYmUrKEQ8PDMpPj4zXSwwIT0oMHxNKXx8Rz5iPyhNPTAsbD1rLGI9Ryk6TT0wKTp3PS0xKSxEPUQrMXwwfXdoaWxlKDAhPSgwfE0pKTthW1JlKyhsPDwyKT4+Ml09LTEsYVtxPj4yXT0tMSxhWyhwZT0wfGFbZj4+Ml0pKyhBPDwyKT4+Ml09UixwPUErMnwwLGFbcGUrKEErMTw8Mik+PjJd''@;'; put 'put ''PWwsYVttPj4yXT1wZT0xKygwfGFbbT4+Ml0pfDAsYVtnZSsocGU8PDIpPj4yXT1wLEE9cH1mb3IoOzspe2lmKCgwfGwpPj0oMHxIZSkpYnJlYWsgZTsoMHxhW1JlKyhsPDwyKT4+Ml0pPT0oMHxsKSYmKExlPUErMXwwLGFbKDB8YVtmPj4yXSkrKEE8PDIpPj4yXT1sLGFbbT4+Ml09QT0xKygw''@;'; put 'put ''fGFbbT4+Ml0pfDAsYVtnZSsoQTw8Mik+PjJdPUxlLEE9TGUpLGw9bCsxfDB9fX13aGlsZSgwKTtGdChSZSl9ZnVuY3Rpb24gUDAobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGJlLFJlLFZlLHFlLHJ0LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0w''@;'; put 'put ''LHBlPTAsZ2U9MCxPZT0wLExlPTAsSGU9MDtmb3IocnQ9bGUsbGU9bGUrMTZ8MCxxPXJ0Kzh8MCxxZT1ydCxhWyhWZT1ydCs0fDApPj4yXT0wLGFbcWU+PjJdPTAsTGU9MHxhW2wrMjA+PjJdLE9lPTB8YVtsKzI0Pj4yXSxhW2Y+PjJdPTB8UW4oSGU9KFJlPTB8YVtsPj4yXSk8PDIpLGFbcD4+''@;'; put 'put ''Ml09MHxRbihIZSs0fDApLEhlPTB8UW4oSGUpLEE9MDshKCgwfEEpPj0oMHxSZSkpOylhW0hlKyhBPDwyKT4+Ml09QSxBPUErMXwwOyhmdW5jdGlvbiB3eChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgRyxPZSxMZSxSZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLHE9MCxw''@;'; put 'put ''ZT0wLGdlPTAsYmU9MCxIZT0wO2ZvcihwZT0wfGFbMjArKGx8PTApPj4yXSxnZT0wfGFbbCsyND4+Ml0sRz0wfGFbbD4+Ml0sT2U9MHxRbihiZT0oSGU9MHxhW2wrND4+Ml0pPDwyKSxMZT0wfFFuKGJlKzR8MCksUmU9MHxRbihiZSksYmU9MHxRbihiZSkscT1MZSs0fDAsbD0wOyEoKDB8bCk+''@;'; put 'put ''PSgwfEhlKSk7KWFbT2UrKGw8PDIpPj4yXT0wLGw9bCsxfDA7Zm9yKGFbcT4+Ml09SGUsbD0wOzspe2lmKCgwfGwpPj0oMHxIZSkpe3c9MSxNPTA7YnJlYWt9YVtSZSsobDw8Mik+PjJdPS0xLGw9bCsxfDB9ZTpmb3IoOyEoKDB8TSk+PSgwfEcpKTspe2ZvcihSPXBlKygoRD1NKzF8MCk8PDIp''@;'; put 'put ''fDAsbD0wfGFbKEE9cGUrKE08PDIpfDApPj4yXTshKCgwfGwpPj0oMHwobT0wfGFbUj4+Ml0pKSk7KWFbKGs9cSsoYVtPZSsoYVtnZSsobDw8Mik+PjJdPDwyKT4+Ml08PDIpfDApPj4yXT0oMHxhW2s+PjJdKS0xLGw9bCsxfDA7Zm9yKGw9dyxrPTB8YVtBPj4yXTs7KXtpZigoMHxrKT49KDB8''@;'; put 'put ''bSkpe3c9bCxNPUQ7Y29udGludWUgZX0oMHxhWyhBPVJlKygoYj0wfGFbKG09T2UrKGFbKHc9Z2UrKGs8PDIpfDApPj4yXTw8Mil8MCk+PjJdKTw8Mil8MCk+PjJdKTwoMHxNKT8oYVtBPj4yXT1NLDB8YVsobT1xKyhiPDwyKXwwKT4+Ml0/KGFbYmUrKGI8PDIpPj4yXT1sLGFbcSsobDw8Mik+''@;'; put 'put ''PjJdPTEsQT1sKzF8MCxtPU9lKyhhW3c+PjJdPDwyKXwwKTooYVttPj4yXT0xLEE9bCxsPWIsbT1iZSsoYjw8Mil8MCksYVttPj4yXT1sLGw9QSk6KGFbbT4+Ml09YVsoYj1iZSsoYjw8Mil8MCk+PjJdLGFbKGI9cSsoYVtiPj4yXTw8Mil8MCk+PjJdPTErKDB8YVtiPj4yXSkpLGs9aysxfDAs''@;'; put 'put ''bT0wfGFbUj4+Ml19fWZvcihhW0xlPj4yXT0wLGw9MCxtPTA7ISgoMHxsKT49KDB8dykpOylhWyhxPUxlKygocGU9bCsxfDApPDwyKXwwKT4+Ml09Z2U9KDB8YVtxPj4yXSkrbXwwLGw9cGUsbT1nZTtmb3IoYVtmPj4yXT1iZSxsPTA7Oyl7aWYoKDB8bCk+PSgwfEhlKSl7bD13O2JyZWFrfWFb''@;'; put 'put ''KGdlPUxlKyhhW09lKyhsPDwyKT4+Ml08PDIpfDApPj4yXT0xKyhmPTB8YVtnZT4+Ml0pLGFbYmUrKGY8PDIpPj4yXT1sLGw9bCsxfDB9Zm9yKDshKCgwfGwpPD0wKTspYVtMZSsobDw8Mik+PjJdPWFbTGUrKChIZT1sKy0xfDApPDwyKT4+Ml0sbD1IZTthW0xlPj4yXT0wLGFbcD4+Ml09TGUs''@;'; put 'put ''YVtjPj4yXT13LEZ0KFJlKSxGdChPZSl9KShsLHEsVmUscWUpLGFbbT4+Ml09MCxhWyhnZT0wfGFbcD4+Ml0pPj4yXT0wLGJlPTB8YVtsKzI4Pj4yXSxBPTAsbD0wO2U6Zm9yKDs7KXtrPTB8YVtxPj4yXSxNPTB8YVtxZT4+Ml07ZG97aWYoKDB8bCk+PSgwfGspKWJyZWFrIGU7RD1sLGI9MHxh''@;'; put 'put ''WyhHPU0rKChsPWwrMXwwKTw8Mil8MCk+PjJdLEQ9MHxhW00rKEQ8PDIpPj4yXX13aGlsZSgoYi1EfDApPDIpO2ZvcihNPTB8YVtWZT4+Ml0saz0wfGFbZ2UrKGFbbT4+Ml08PDIpPj4yXTshKCgwfEQpPj0oMHxiKSk7KWFbSGUrKGFbKHBlPU0rKEQ8PDIpfDApPj4yXTw8Mik+PjJdPS0xLGI9''@;'; put 'put ''QSsxfDAsYVsoMHxhW2Y+PjJdKSsoQTw8Mik+PjJdPWFbcGU+PjJdLChiLWt8MCk+Mz8oYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxhW2dlKyhBPDwyKT4+Ml09YixBPWIpOkE9ayxrPUEsRD1EKzF8MCxBPWIsYj0wfGFbRz4+Ml07KDB8QSk8PSgwfGspfHwoYVttPj4yXT1wZT0xKygwfGFb''@;'; put 'put ''bT4+Ml0pfDAsYVtnZSsocGU8PDIpPj4yXT1BKX1lOmRve2lmKGMpe2ZvcihnZT0wfEhkKFJlKSxwZT0wLGw9MCx3PTA7Oyl7aWYoKDB8cGUpPj0oMHxSZSkpe2w9MDticmVha31pZigtMSE9KDB8KGI9MHxhWyhjPUhlKygoRz0wfGFbZ2UrKHBlPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pKSl7Zm9y''@;'; put 'put ''KHE9MHxhW0xlKyhHKzE8PDIpPj4yXSxNPTEsRD0wfGFbTGUrKEc8PDIpPj4yXTshKCgwfEQpPj0oMHxxKSk7KSgwfEcpIT0oMHwoaz0wfGFbT2UrKEQ8PDIpPj4yXSkpJiYtMSE9KDB8YVtIZSsoazw8Mik+PjJdKSYmKC0xIT0oMHxiKT8oUj0rX1tiZSsoRDw8Myk+PjNdLDAhPSgwfE0pfHxS''@;'; put 'put ''Pnc/KE09MCxsPWssdz1SKTpNPTApOmI9LTEpLEQ9RCsxfDA7TXx8KGFbSGUrKGw8PDIpPj4yXT0tMSxhW2M+PjJdPS0xLGFbKGM9MHxhW2Y+PjJdKSsoQTw8Mik+PjJdPUcscT1BKzJ8MCxhW2MrKEErMTw8Mik+PjJdPWwsYz0wfGFbcD4+Ml0sYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxh''@;'; put 'put ''W2MrKEE8PDIpPj4yXT1xLEE9cSl9cGU9cGUrMXwwfWZvcig7ISgoMHxsKT49KDB8UmUpKTspKDB8YVtIZSsobDw8Mik+PjJdKT09KDB8bCkmJihMZT1BKzF8MCxhWygwfGFbZj4+Ml0pKyhBPDwyKT4+Ml09bCxPZT0wfGFbcD4+Ml0sYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxhW09lKyhB''@;'; put 'put ''PDwyKT4+Ml09TGUsQT1MZSksbD1sKzF8MDtGdChnZSl9ZWxzZXtsPTAsdz0wLGI9MDt0OmZvcig7Oyl7ZG97Zm9yKGM9Yjs7KXtpZigoMHxjKT49KDB8UmUpKXtsPTA7YnJlYWsgdH1pZigtMSE9KDB8KGs9MHxhWyhxPUhlKyhjPDwyKXwwKT4+Ml0pKSlicmVhaztjPWMrMXwwfWZvcihwZT0w''@;'; put 'put ''fGFbTGUrKChiPWMrMXwwKTw8Mik+PjJdLEQ9MSxHPTB8YVtMZSsoYzw8Mik+PjJdOyEoKDB8Ryk+PSgwfHBlKSk7KSgwfGMpIT0oMHwoTT0wfGFbT2UrKEc8PDIpPj4yXSkpJiYtMSE9KDB8YVtIZSsoTTw8Mik+PjJdKSYmKC0xIT0oMHxrKT8oUj0rX1tiZSsoRzw8Myk+PjNdLDAhPSgwfEQp''@;'; put 'put ''fHxSPnc/KEQ9MCxsPU0sdz1SKTpEPTApOms9LTEpLEc9RysxfDB9d2hpbGUoMCE9KDB8RCkpO2FbSGUrKGw8PDIpPj4yXT0tMSxhW3E+PjJdPS0xLGFbKHBlPTB8YVtmPj4yXSkrKEE8PDIpPj4yXT1jLHA9QSsyfDAsYVtwZSsoQSsxPDwyKT4+Ml09bCxhW20+PjJdPXBlPTErKDB8YVttPj4y''@;'; put 'put ''XSl8MCxhW2dlKyhwZTw8Mik+PjJdPXAsQT1wfWZvcig7Oyl7aWYoKDB8bCk+PSgwfFJlKSlicmVhayBlOygwfGFbSGUrKGw8PDIpPj4yXSk9PSgwfGwpJiYoTGU9QSsxfDAsYVsoMHxhW2Y+PjJdKSsoQTw8Mik+PjJdPWwsYVttPj4yXT1BPTErKDB8YVttPj4yXSl8MCxhW2dlKyhBPDwyKT4+''@;'; put 'put ''Ml09TGUsQT1MZSksbD1sKzF8MH19fXdoaWxlKDApO0Z0KDB8YVtWZT4+Ml0pLEZ0KDB8YVtxZT4+Ml0pLEZ0KEhlKSxsZT1ydH1mdW5jdGlvbiBmMShsLGMsZixwKXtmfD0wLHB8PTA7dmFyIHEscGUsT2UsUmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsZ2U9MCxiZT0w''@;'; put 'put ''LExlPTA7Zm9yKGdlPTB8YVsyMCsobHw9MCk+PjJdLGJlPTB8YVtsKzI0Pj4yXSxhWyhjfD0wKT4+Ml09MHxRbihMZT0oUmU9MHxhW2w+PjJdKTw8MiksYVtmPj4yXT0wfFFuKExlKzR8MCksTGU9MHxRbihMZSkscGU9MHxRbihSZTw8NCksbT0wOyEoKDB8bSk+PSgwfFJlKSk7KWFbTGUrKG08''@;'; put 'put ''PDIpPj4yXT1tLG09bSsxfDA7Zm9yKGFbcD4+Ml09MCxhW2FbZj4+Ml0+PjJdPTAscT0wfGFbbCsyOD4+Ml0sT2U9MHxIZChSZSksbT0wLEQ9MDs7KXtpZigoMHxEKT49KDB8UmUpKXtHPTA7YnJlYWt9bD0wfGFbT2UrKEQ8PDIpPj4yXTtlOmRve2lmKC0xIT0oMHxhW0xlKyhsPDwyKT4+Ml0p''@;'; put 'put ''JiYoUj0wfGFbZ2UrKGw8PDIpPj4yXSwxPT0oKDB8YVtnZSsobCsxPDwyKT4+Ml0pLVJ8MCkpKXtmb3IoYVtMZSsoKGI9MHxhW2JlKyhSPDwyKT4+Ml0pPDwyKT4+Ml09LTEsYVsoaz0wfGFbYz4+Ml0pKyhtPDwyKT4+Ml09YixNPWdlKyhiKzE8PDIpfDAsdz0wfGFbZ2UrKGI8PDIpPj4yXSxt''@;'; put 'put ''PW0rMXwwOyEoKDB8dyk+PSgwfGFbTT4+Ml0pKTspKDB8YikhPSgwfChBPTB8YVsobD1iZSsodzw8Mil8MCk+PjJdKSkmJjE9PSgoMHxhW2dlKyhBKzE8PDIpPj4yXSktKDB8YVtnZSsoQTw8Mik+PjJdKXwwKSYmKGFbTGUrKEE8PDIpPj4yXT0tMSxhW2srKG08PDIpPj4yXT1hW2w+PjJdLG09''@;'; put 'put ''bSsxfDApLHc9dysxfDA7aWYoKG0tKEE9MHxhWyh3PTB8YVtmPj4yXSkrKChsPTB8YVtwPj4yXSk8PDIpPj4yXSl8MCk8NSl7YVtwPj4yXT1HPWwrMXwwLGFbdysoRzw8Mik+PjJdPW07YnJlYWt9Zm9yKEE9QSsxfDAsYVtwPj4yXT1sPWwrMXwwLGFbdysobDw8Mik+PjJdPUEsbD1BOzspe2lm''@;'; put 'put ''KCEoKDB8QSk8KDB8bSkmKDB8bCk8KDB8bSkpKWJyZWFrIGU7Rz0oMHxtKTwoMHwoRz1BKzN8MCkpP206RyxhW3A+PjJdPU09MSsoMHxhW3A+PjJdKXwwLGFbdysoTTw8Mik+PjJdPUcsbD1sKzF8MCxBPUd9fX13aGlsZSgwKTtEPUQrMXwwfWZvcig7Oyl7aWYoKDB8Ryk+PSgwfFJlKSl7bD0w''@;'; put 'put ''O2JyZWFrfWlmKC0xIT0oMHwobD0wfGFbKFI9TGUrKChEPTB8YVtPZSsoRzw8Mik+PjJdKTw8Mil8MCk+PjJdKSkpe2ZvcihNPTB8YVtnZSsoRCsxPDwyKT4+Ml0sQT0wLGs9MHxhW2dlKyhEPDwyKT4+Ml07ISgoMHxrKT49KDB8TSkpOykoMHxEKSE9KDB8KGI9MHxhW2JlKyhrPDwyKT4+Ml0p''@;'; put 'put ''KSYmLTEhPSgwfGFbTGUrKGI8PDIpPj4yXSkmJih3PUE8PDEsLTE9PSgwfGwpP2w9LTE6KF9bcGUrKHc8PDMpPj4zXT0rKDB8YiksX1twZSsoKDF8dyk8PDMpPj4zXT0rX1txKyhrPDwzKT4+M10sQT1BKzF8MCkpLGs9aysxfDA7aWYoKDB8QSk+MCl7Zm9yKHgxKHBlLEEsMTYsODEpLEE9KDB8''@;'; put 'put ''QSk8Mz9BOjMsbD0wOyEoKDB8bCk+PSgwfEEpKTspYVtMZSsoKE09fn4rX1twZSsobDw8MTw8Myk+PjNdKTw8Mik+PjJdPS0xLGFbKDB8YVtjPj4yXSkrKG08PDIpPj4yXT1NLGw9bCsxfDAsbT1tKzF8MDthW1I+PjJdPS0xLFI9bSsxfDAsYVsoMHxhW2M+PjJdKSsobTw8Mik+PjJdPUQsRD0w''@;'; put 'put ''fGFbZj4+Ml0sYVtwPj4yXT1tPTErKDB8YVtwPj4yXSl8MCxhW0QrKG08PDIpPj4yXT1SLG09Un19Rz1HKzF8MH1mb3IoOyEoKDB8bCk+PSgwfFJlKSk7KSgwfGFbTGUrKGw8PDIpPj4yXSk9PSgwfGwpJiYoYmU9bSsxfDAsYVsoMHxhW2M+PjJdKSsobTw8Mik+PjJdPWwsZ2U9MHxhW2Y+PjJd''@;'; put 'put ''LGFbcD4+Ml09bT0xKygwfGFbcD4+Ml0pfDAsYVtnZSsobTw8Mik+PjJdPWJlLG09YmUpLGw9bCsxfDA7RnQoT2UpLEZ0KExlKX1mdW5jdGlvbiB3aShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgTSxwZSxnZSxiZSxtPTAsQT0wLHc9MCxiPTAsaz0wLEQ9MCxSPTAsRz0wLHE9MDtmb3Io''@;'; put 'put ''cGU9MHxhWzIwKyhsfD0wKT4+Ml0sZ2U9MHxhW2wrMjQ+PjJdLG09MHxhW2wrND4+Ml0sTT0wfFFuKChiZT0wfGFbbD4+Ml0pPDwyKSxhW2Y+PjJdPU0sbD0wOyEoKDB8bCk+PSgwfGJlKSk7KWFbTSsobDw8Mik+PjJdPWwsbD1sKzF8MDthW3A+PjJdPW07ZTpkb3tpZihjKXtmb3IoYz0wfEhk''@;'; put 'put ''KGJlKSxsPTA7ISgoMHxsKT49KDB8YmUpKTspe2Zvcih3PXBlKygxKyhBPTB8YVtjKyhsPDwyKT4+Ml0pPDwyKXwwLG09MHxhW3BlKyhBPDwyKT4+Ml07ISgoMHxtKT49KDB8YVt3Pj4yXSkpOykoMHxBKSE9KDB8KGs9MHxhWyhiPWdlKyhtPDwyKXwwKT4+Ml0pKSYmKDB8YVsoUj0oRD0wfGFb''@;'; put 'put ''Zj4+Ml0pKyhrPDwyKXwwKT4+Ml0pPT0oMHxrKSYmKDB8YVsoRz1EKyhBPDwyKXwwKT4+Ml0pPT0oMHxBKSYmKGFbUj4+Ml09QSxhW0c+PjJdPWFbYj4+Ml0sYVtwPj4yXT0oMHxhW3A+PjJdKS0xKSxtPW0rMXwwO2w9bCsxfDB9RnQoYyl9ZWxzZXttPTA7dDpmb3IoOzspe2lmKCgwfG0pPj0o''@;'; put 'put ''MHxiZSkpYnJlYWsgZTtmb3IoQT1wZSsoKGM9bSsxfDApPDwyKXwwLHc9TSsobTw8Mil8MCxiPU0rKG08PDIpfDAsbD0wfGFbcGUrKG08PDIpPj4yXTs7KXtpZigoMHxsKT49KDB8YVtBPj4yXSkpe209Yztjb250aW51ZSB0fSgwfG0pIT0oMHwoZj0wfGFbKGs9Z2UrKGw8PDIpfDApPj4yXSkp''@;'; put 'put ''JiYoMHxhWyhxPU0rKGY8PDIpfDApPj4yXSk9PSgwfGYpJiYoMHxhW3c+PjJdKT09KDB8bSkmJihhW3E+PjJdPW0sYVtiPj4yXT1hW2s+PjJdLGFbcD4+Ml09KDB8YVtwPj4yXSktMSksbD1sKzF8MH19fX13aGlsZSgwKX1mdW5jdGlvbiBWbShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIg''@;'; put 'put ''cGUsZ2UsYmUsT2UsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wO2ZvcihnZT0wfGFbMjArKGx8PTApPj4yXSxiZT0wfGFbbCsyND4+Ml0sQT0wfGFbbCs0Pj4yXSxHPTB8UW4oKE9lPTB8YVtsPj4yXSk8PDIpLGFbZj4+Ml09RyxtPTA7ISgoMHxtKT49KDB8T2UpKTsp''@;'; put 'put ''YVtHKyhtPDwyKT4+Ml09bSxtPW0rMXwwO2FbcD4+Ml09QSxwZT0wfGFbbCsyOD4+Ml07ZTpkb3tpZihjKXtmb3IocT0wfEhkKE9lKSxHPTAsbT0wLHc9MDshKCgwfEcpPj0oMHxPZSkpOyl7aWYoKDB8YVsoRD0oTT0wfGFbZj4+Ml0pKygoaz0wfGFbcSsoRzw8Mik+PjJdKTw8Mil8MCk+PjJd''@;'; put 'put ''KT09KDB8aykpe2ZvcihSPTB8YVtnZSsoaysxPDwyKT4+Ml0sYz0wfGFbZ2UrKGs8PDIpPj4yXSxBPTE7ISgoMHxjKT49KDB8UikpOykoMHxrKSE9KDB8KGw9MHxhW2JlKyhjPDwyKT4+Ml0pKSYmKDB8YVtNKyhsPDwyKT4+Ml0pPT0oMHxsKSYmKGI9K19bcGUrKGM8PDMpPj4zXSwwIT0oMHxB''@;'; put 'put ''KXx8Yj53PyhBPTAsbT1sLHc9Yik6QT0wKSxjPWMrMXwwO0F8fChhW00rKG08PDIpPj4yXT1rLGFbRD4+Ml09bSxhW3A+PjJdPSgwfGFbcD4+Ml0pLTEpfUc9RysxfDB9RnQocSl9ZWxzZSBmb3IobT0wLHc9MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfE9lKSlicmVhayBlO2ZvcihEPTB8YVtnZSso''@;'; put 'put ''KE09aysxfDApPDwyKT4+Ml0sUj1HKyhrPDwyKXwwLEE9MSxjPTB8YVtnZSsoazw8Mik+PjJdOyEoKDB8Yyk+PSgwfEQpKTspKDB8aykhPSgwfChsPTB8YVtiZSsoYzw8Mik+PjJdKSkmJigwfGFbRysobDw8Mik+PjJdKT09KDB8bCkmJigwfGFbUj4+Ml0pPT0oMHxrKSYmKGI9K19bcGUrKGM8''@;'; put 'put ''PDMpPj4zXSwwIT0oMHxBKXx8Yj53PyhBPTAsbT1sLHc9Yik6QT0wKSxjPWMrMXwwOzB8QXx8KGFbRysobTw8Mik+PjJdPWssYVtHKyhrPDwyKT4+Ml09bSxhW3A+PjJdPSgwfGFbcD4+Ml0pLTEpLGs9TX19d2hpbGUoMCl9ZnVuY3Rpb24gSF8obCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxt''@;'; put 'put ''fD0wO3ZhciBELFIsRyxBPTAsdz0wLGI9MCxrPTAsTT0wO2ZvcihSPTB8YVsyMCsobHw9MCk+PjJdLEc9MHxhW2wrMjQ+PjJdLGs9MHxRbigoRD0wfGFbbD4+Ml0pPDwyKSxhW2Y+PjJdPWssbD0wOyEoKDB8bCk+PSgwfEQpKTspYVtrKyhsPDwyKT4+Ml09LTEwMCxsPWwrMXwwO2FbcD4+Ml09''@;'; put 'put ''MCxhW20+PjJdPTA7ZTpkb3tpZihjKXtmb3IoYj0wfEhkKEQpLHc9MDshKCgwfHcpPj0oMHxEKSk7KXtsPShNPTB8YVtmPj4yXSkrKChrPTB8YVtiKyh3PDwyKT4+Ml0pPDwyKXwwO3Q6ZG97aWYoLTEwMD09KDB8YVtsPj4yXSkpZm9yKGM9MHxhW3A+PjJdLGFbcD4+Ml09YysxLGFbbD4+Ml09''@;'; put 'put ''YyxjPVIrKGsrMTw8Mil8MCxsPTB8YVtSKyhrPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGFbYz4+Ml0pKWJyZWFrIHQ7KDB8aykhPSgwfChBPTB8YVtHKyhsPDwyKT4+Ml0pKSYmKGFbTSsoQTw8Mik+PjJdPS0xLGFbbT4+Ml09MSsoMHxhW20+PjJdKSksbD1sKzF8MH19d2hpbGUoMCk7dz13''@;'; put 'put ''KzF8MH1GdChiKX1lbHNle2M9MDt0OmZvcig7Oyl7aWYoKDB8Yyk+PSgwfEQpKWJyZWFrIGU7aWYoLTEwMD09KDB8YVtrKyhjPDwyKT4+Ml0pKWZvcihhW3A+PjJdPTErKEE9MHxhW3A+PjJdKSxhW2srKGM8PDIpPj4yXT1BLHc9UisoKEE9YysxfDApPDwyKXwwLGw9MHxhW1IrKGM8PDIpPj4y''@;'; put 'put ''XTs7KXtpZigoMHxsKT49KDB8YVt3Pj4yXSkpe2M9QTtjb250aW51ZSB0fSgwfGMpIT0oMHwoYj0wfGFbRysobDw8Mik+PjJdKSkmJihhW2srKGI8PDIpPj4yXT0tMSxhW20+PjJdPTErKDB8YVttPj4yXSkpLGw9bCsxfDB9ZWxzZSBjPWMrMXwwfX19d2hpbGUoMCk7YVttPj4yXT0oMHxhW20+''@;'; put 'put ''PjJdKSsoMHxhW3A+PjJdKX1mdW5jdGlvbiBHbihsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIE0sRCxSLEcscSxwZSxBPTAsdz0wLGI9MCxrPTA7Zm9yKHBlPWxlLGxlPWxlKzE2fDAsUj1wZSs0fDAsRz1wZSxxPTB8YVsyMCsobHw9MCk+PjJdLEQ9MHxhW2wrMjQ+PjJdLGw9''@;'; put 'put ''MHxRbigodz0wfGFbbD4+Ml0pPDwyKSxhW2Y+PjJdPWwsQT0wO2FbUj4+Ml09QSwhKCgwfEEpPj0oMHx3KSk7KWFbbCsoQTw8Mik+PjJdPS0xMDAsQT0xKygwfGFbUj4+Ml0pfDA7YVtwPj4yXT0wLGFbbT4+Ml09MCxNPTB8ZnVuY3Rpb24gUXQobCxjKXtsfD0wLGN8PTA7dmFyIG0sZj0wLHA9''@;'; put 'put ''MDtmb3IobT0wfFFuKDI4KSxhW20+PjJdPTAsYVttKzQ+PjJdPWwsYVttKzg+PjJdPWMsYVttKzEyPj4yXT0tMSxhWyhwPW0rMTZ8MCk+PjJdPTB8UW4oNCsoYzw8Mil8MCksZj0wOyEoKDB8Zik+KDB8YykpOylhWygwfGFbcD4+Ml0pKyhmPDwyKT4+Ml09MCxmPWYrMXwwO2ZvcihhWyhwPW0r''@;'; put 'put ''MjB8MCk+PjJdPTB8UW4oYz00KyhsPDwyKXwwKSxmPTA7ISgoMHxmKT4oMHxsKSk7KWFbKDB8YVtwPj4yXSkrKGY8PDIpPj4yXT0wLGY9ZisxfDA7Zm9yKGM9MHxRbihjKSxhW20rMjQ+PjJdPWMsZj0wOyEoKDB8Zik+KDB8bCkpOylhW2MrKGY8PDIpPj4yXT0tOTk5LGY9ZisxfDA7cmV0dXJu''@;'; put 'put ''IDB8bX0odywodzw8MSktMnwwKTtlOmRve2lmKGMpe2ZvcihBPTB8SGQodyksbD0wOyEoKDB8bCk+PSgwfHcpKTspYVtSPj4yXT1rPTB8YVtBKyhsPDwyKT4+Ml0sSzAoTSxrLCgwfGFbcSsoaysxPDwyKT4+Ml0pLSgwfGFbcSsoazw8Mik+PjJdKXwwKSxsPWwrMXwwO0Z0KEEpfWVsc2UgZm9y''@;'; put 'put ''KGw9MDs7KXtpZihhW1I+PjJdPWwsKDB8bCk+PSgwfHcpKWJyZWFrIGU7SzAoTSxsLCgwfGFbcSsoKGs9bCsxfDApPDwyKT4+Ml0pLSgwfGFbcSsobDw8Mik+PjJdKXwwKSxsPWt9fXdoaWxlKDApO2U6Zm9yKDtrPTA9PSgwfE5pKE0sUixHKSksbD0wfGFbcD4+Ml0sIWs7KWZvcihhW3A+PjJd''@;'; put 'put ''PWwrMSxhWygwfGFbZj4+Ml0pKyhhW1I+PjJdPDwyKT4+Ml09bCxsPTB8YVtSPj4yXSxrPTB8YVtxKyhsPDwyKT4+Ml07Oyl7aWYoKDB8ayk+PSgwfGFbcSsobCsxPDwyKT4+Ml0pKWNvbnRpbnVlIGU7aWYoKDB8bCkhPSgwfChiPTB8YVtEKyhrPDwyKT4+Ml0pKSl7dDpkb3tpZigtMTAwPT0o''@;'; put 'put ''MHxhWygwfGFbZj4+Ml0pKyhiPDwyKT4+Ml0pKWZvcihabShNLGIpLGFbKDB8YVtmPj4yXSkrKGI8PDIpPj4yXT0tMSxBPXErKGIrMTw8Mil8MCxsPTB8YVtxKyhiPDwyKT4+Ml07Oyl7aWYoKDB8bCk+PSgwfGFbQT4+Ml0pKWJyZWFrIHQ7KDB8YikhPSgwfCh3PTB8YVsoYz1EKyhsPDwyKXww''@;'; put 'put ''KT4+Ml0pKSYmLTEwMD09KDB8YVsoMHxhW2Y+PjJdKSsodzw8Mik+PjJdKSYmKHc9MHxJNihNLHcpLGFbRz4+Ml09dyxLMChNLDB8YVtjPj4yXSx3KzF8MCkpLGw9bCsxfDB9fXdoaWxlKDApO2FbbT4+Ml09MSsoMHxhW20+PjJdKSxsPTB8YVtSPj4yXX1rPWsrMXwwfWFbbT4+Ml09KDB8YVtt''@;'; put 'put ''Pj4yXSkrbCxmdW5jdGlvbiBzUChsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2lmKDB8KGx8PTApKXtpZigwfChjPTB8YVsocD1sKzE2fDApPj4yXSkpe2ZvcihtPWwrOHwwLGY9MDshKCgwfGYpPigwfGFbbT4+Ml0pKTspamkoMHxhW2MrKGY8PDIpPj4yXSwxMDUpLGY9ZisxfDAsYz0wfGFbcD4+''@;'; put 'put ''Ml07RnQoYyl9MHwoYz0wfGFbbCsyMD4+Ml0pJiZGdChjKSxGdCgwfGFbbCsyND4+Ml0pLEZ0KGwpfX0oTSksbGU9cGV9ZnVuY3Rpb24gbFAobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG07bT0wIT0oMHxsaChsfD0wLDApKSYmMT09KDB8YVtsKzE2Pj4yXSk/bDowfEE1KGwpO2Rve2lm''@;'; put 'put ''KGMpe2lmKDB8bGgoYywwKSYmMT09KDB8YVtjKzE2Pj4yXSkpYnJlYWs7Yz0wfEprKGMsMCl9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIGM9MHxqbShmPTB8Vl8obSxjLGYpLHApLCgwfG0pIT0oMHxsKSYmKGFbZiszNj4+Ml09MSksMHxjfWZ1bmN0aW9uIFZfKGwsYyxmKXtjfD0wLGZ8PTA7''@;'; put 'put ''dmFyIHA9MDtyZXR1cm4obHw9MCk/KHA9MHxRbig0NCksYVtwPj4yXT0wLGFbcCs0Pj4yXT1hW2wrND4+Ml0sYVtwKzg+PjJdPWwsYVtwKzEyPj4yXT1jLGFbcCsxNj4+Ml09MCxhW3ArMjA+PjJdPTAsYVtwKzI0Pj4yXT1mLGFbcCsyOD4+Ml09MCxhW3ArMzI+PjJdPTAsYVtwKzM2Pj4yXT0w''@;'; put 'put ''LGw9cCk6bD0wLDB8bH1mdW5jdGlvbiBqbShsLGMpe2x8PTAsY3w9MDt2YXIgcCxtLEEsdyxNLGY9MCxiPTAsaz0wO3JldHVybiBNPWxlLGxlPWxlKzMyfDAscD1NKzIwfDAsQT1NKzEyfDAsdz1NKzh8MCxiPU0rNHwwLGs9TSxhWyhtPU0rMTZ8MCk+PjJdPTAsKDB8YVtsPj4yXSk8KCgwfGFb''@;'; put 'put ''YysxNj4+Ml0pLTF8MCkmJihmdW5jdGlvbiBDcihsLGMsZixwLG0sQSx3LGIsayxNKXt2YXIgRCxSLEcscSxwZSxnZSxiZSxPZSxMZTtjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTAsTXw9MCxMZT1sZSxsZT1sZSszMnwwLFI9TGUrMTJ8MCxHPUxlKzh8MCxxPUxlKzR8''@;'; put 'put ''MCxwZT1MZSxhWyhEPUxlKzE2fDApPj4yXT1sfD0wLGFbUj4+Ml09MCxhW0c+PjJdPTAsYVtxPj4yXT0wLGFbcGU+PjJdPTAsYVt3Pj4yXT0wLGFbYj4+Ml09MCxhW2M+PjJdPTAsYVtBPj4yXT0wLGFbcD4+Ml09MCxnZT1rKzI4fDAsYmU9ays4fDAsT2U9KygwfGFbbCs0Pj4yXSksbT1mO2Rv''@;'; put 'put ''e2lmKHc1KGwsRCxtLFIsMCxwZSxHLHEsayxNKSwhKChtPTB8YVtEPj4yXSkmJihmPTB8YVttKzQ+PjJdLG09MHxhW3c+PjJdLG0/KGw9MHxUNihtLDB8YVtHPj4yXSksUmEoMHxhW3c+PjJdKSxSYSgwfGFbRz4+Ml0pLGFbdz4+Ml09bCxsPTB8VDYoMHxhW3E+PjJdLDB8YVtiPj4yXSksUmEo''@;'; put 'put ''MHxhW2I+PjJdKSxSYSgwfGFbcT4+Ml0pLGFbYj4+Ml09bCk6KGFbdz4+Ml09YVtHPj4yXSxhW2I+PjJdPWFbcT4+Ml0pLG09MHxhW2M+PjJdLDB8bSYmUmEobSksYVtjPj4yXT1hW0Q+PjJdLG09MHxhW3A+PjJdLDB8bSYmUmEobSksbT0wfGFbUj4+Ml0sYVtwPj4yXT1tLGw9MHxhW0E+PjJd''@;'; put 'put ''LGwmJihGdChsKSxtPTB8YVtSPj4yXSksYVtBPj4yXT1hW3BlPj4yXSxsPTB8YVtEPj4yXSxhW3BlPj4yXT0wLCtfW2JlPj4zXSpPZTwrKDB8ZikpKSlicmVha313aGlsZSgxPT0oMHxhW2dlPj4yXSkpO2xlPUxlfSgwfGFbbCs4Pj4yXSxiLDB8YVtsKzEyPj4yXSxrLDAsbSxBLHcsYyxwKSww''@;'; put 'put ''fChmPTB8YVtiPj4yXSkpJiYoaz0wfFZfKGYsYj0wfGFbaz4+Ml0sMHxhW20+PjJdKSxhW2wrMjg+PjJdPWssYVtrKzQwPj4yXT1hW3A+PjJdLGFbaz4+Ml09MSsoMHxhW2w+PjJdKSxhW2srND4+Ml09YVtmPj4yXSxhW2srOD4+Ml09ZixhW2srMTI+PjJdPWIsYVtrKzE2Pj4yXT1hW0E+PjJd''@;'; put 'put ''LGFbbCsyMD4+Ml09YVt3Pj4yXSxhW2srMzI+PjJdPWwsam0oayxjKSksbGU9TSwwfGx9ZnVuY3Rpb24gQ0EobCl7bHw9MDtmb3IodmFyIGM9MDtjPTB8YVtsKzI4Pj4yXTspbD1jO3JldHVybiAwfGx9ZnVuY3Rpb24gSzAobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxiLGssTSxwPTAsbT0wLHc9''@;'; put 'put ''MCxEPTA7Zm9yKEE9OCsobHw9MCl8MCxrPWwrMjB8MCxiPWwrMjR8MCxNPWwrMTZ8MCxsfHxQcigxMzg5NTMsOTU3NDMsNjksOTU3NTkpOzspe2lmKCgwfGFbQT4+Ml0pPCgwfGYpKXt3PTQ7YnJlYWt9aWYoIShtPTB8YVsocD0oMHxhW2s+PjJdKSsoYzw8Mil8MCk+PjJdKSlicmVhaztEPTB8''@;'; put 'put ''YVsoMHxhW2I+PjJdKSsoYzw8Mik+PjJdLGFbcD4+Ml09MCxhW2w+PjJdPSgwfGFbbD4+Ml0pLTEsa2YobSwxMDUsKDB8YVtNPj4yXSkrKEQ8PDIpfDApfXJldHVybiA0PT0oMHx3KSYmUHIoOTU3NzgsOTU3NDMsNzAsOTU3NTkpLGFbbD4+Ml09MSsoMHxhW2w+PjJdKSwoMHxhWyhwPWwrMTJ8''@;'; put 'put ''MCk+PjJdKTwoMHxmKSYmKGFbcD4+Ml09ZiksYVsoMHxhW2I+PjJdKSsoYzw8Mik+PjJdPWYscD0wfFFuKDQpLGFbcD4+Ml09YyxwPShtPTB8YVsoMHxhW00+PjJdKSsoZjw8Mik+PjJdKT8wfGZ1bmN0aW9uIEppKGwsYyl7cmV0dXJuIGx8PTAsYz0wfFl0KGN8PTApLDB8bCYmKGFbYys0Pj4y''@;'; put 'put ''XT1sLGFbbCs4Pj4yXT1jKSwwfGN9KG0scCk6MHxZdChwKSxhWygwfGFbaz4+Ml0pKyhjPDwyKT4+Ml09cCxhWygwfGFbTT4+Ml0pKyhmPDwyKT4+Ml09cCwwfGx9ZnVuY3Rpb24gTmkobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7aWYoMCE9KDB8KGx8PTApKSYmKDB8YVtsPj4y''@;'; put 'put ''XSk+PTEpe2lmKGFbZj4+Ml09cD0wfGFbKG09bCsxMnwwKT4+Ml0sYVtsPj4yXT0oMHxhW2w+PjJdKS0xLGFbYz4+Ml09YVsoMHxmdW5jdGlvbiBGaChsKXtyZXR1cm4gMHxhWyhsfD0wKT4+Ml19KEE9MHxhWygwfGFbKGY9bCsxNnwwKT4+Ml0pKyhwPDwyKT4+Ml0pKT4+Ml0sa2YoQSwxMDUs''@;'; put 'put ''KDB8YVtmPj4yXSkrKHA8PDIpfDApLCEoMHxhWyhmPTB8YVtmPj4yXSkrKHA8PDIpPj4yXSkpe2Zvcig7ISgoMHxwKTw9LTF8fDB8YVtmKyhwPDwyKT4+Ml0pOylwPXArLTF8MDthW20+PjJdPXB9YVsoMHxhW2wrMjA+PjJdKSsoKHA9MHxhW2M+PjJdKTw8Mik+PjJdPTAsYVsoMHxhW2wrMjQ+''@;'; put 'put ''PjJdKSsocDw8Mik+PjJdPS05OTkscD0xfWVsc2UgcD0wO3JldHVybiAwfHB9ZnVuY3Rpb24gSTYobCxjKXtyZXR1cm4gMHxhWygwfGFbMjQrKGx8PTApPj4yXSkrKChjfD0wKTw8Mik+PjJdfWZ1bmN0aW9uIFptKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtpZigwIT0oMHwo''@;'; put 'put ''bHw9MCkpJiYoMHwocD0wfGFbbD4+Ml0pKT49MSl7aWYoZj0wfGFbKDB8YVsodz1sKzI0fDApPj4yXSkrKGM8PDIpPj4yXSxhW2w+PjJdPXArLTEsa2YoMHxhWygwfGFbKG09bCsyMHwwKT4+Ml0pKyhjPDwyKT4+Ml0sMTA1LCgwfGFbKHA9bCsxNnwwKT4+Ml0pKyhmPDwyKXwwKSwoMHxmKT09''@;'; put 'put ''KDB8YVsobD1sKzEyfDApPj4yXSkmJjA9PSgwfGFbKEE9MHxhW3A+PjJdKSsoZjw8Mik+PjJdKSl7Zm9yKDshKCgwfGYpPD0tMXx8MHxhW0ErKGY8PDIpPj4yXSk7KWY9ZistMXwwO2FbbD4+Ml09Zn1hWygwfGFbbT4+Ml0pKyhjPDwyKT4+Ml09MCxhWygwfGFbdz4+Ml0pKyhjPDwyKT4+Ml09''@;'; put 'put ''LTk5OSxmPTF9ZWxzZSBmPTA7cmV0dXJuIDB8Zn1mdW5jdGlvbiBqXyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBnZSxIZSxWZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsYmU9MCxPZT0wLExlPTAsUmU9MDtmb3IoMHxsaChsfD0wLDApfHxQcig5''@;'; put 'put ''NTc5NSw5NTgzMSwyNjAsOTU4NDYpLEhlPTB8dHYobCksVmU9MHxhW0hlKzIwPj4yXSxxZT0wfGFbSGUrMjQ+PjJdLGw9SGUrMjh8MCwxPT0oMHxhWyhwPUhlKzE2fDApPj4yXSk/UmU9MHxhW2w+PjJdOihGdCgwfGFbbD4+Ml0pLGFbcD4+Ml09MSxSZT0wfFFuKGFbSGUrOD4+Ml08PDMpLGFb''@;'; put 'put ''bD4+Ml09UmUpLGdlPTB8UW4oYVtIZT4+Ml08PDIpLGw9MDs7KXtpZigoMHxsKT49KDB8KHA9MHxhW0hlPj4yXSkpKXtwZT0wLGw9cDticmVha31hW2dlKyhsPDwyKT4+Ml09LTEsbD1sKzF8MH1lOmZvcig7Oyl7aWYoKDB8cGUpPj0oMHxsKSl7QT0wLGs9MCxtPTAsTGU9MCxPZT1sO2JyZWFr''@;'; put 'put ''fWZvcihiPSgwfGFbKHc9VmUrKChxPXBlKzF8MCk8PDIpfDApPj4yXSktKDB8YVsoRD1WZSsocGU8PDIpfDApPj4yXSl8MCxhW2dlKyhwZTw8Mik+PjJdPXBlLHA9MHxhW0Q+PjJdOyEoKDB8cCk+PSgwfChHPTB8YVt3Pj4yXSkpKTspKDB8cGUpIT0oMHwobD0wfGFbcWUrKHA8PDIpPj4yXSkp''@;'; put 'put ''JiYoYVtnZSsobDw8Mik+PjJdPXBlKSxwPXArMXwwO2ZvcihSPSsoMHxiKSxwPTB8YVtEPj4yXTshKCgwfHApPj0oMHxHKSk7KXtpZigoMHxwZSkhPSgwfChsPTB8YVtxZSsocDw8Mik+PjJdKSkpe2ZvcihNPSsoKHc9MHxhW1ZlKyhsKzE8PDIpPj4yXSktKGw9MHxhW1ZlKyhsPDwyKT4+Ml0p''@;'; put 'put ''fDApK1I7ISgoMHxsKT49KDB8dykpOylNPSgwfGFbZ2UrKGFbcWUrKGw8PDIpPj4yXTw8Mik+PjJdKT09KDB8cGUpP00rLTE6TSxsPWwrMXwwO2lmKF9bUmUrKHA8PDMpPj4zXT1NLCEoTT4wKSl7YmU9MjM7YnJlYWsgZX19cD1wKzF8MH1wZT1xLGw9MHxhW0hlPj4yXX1mb3IoMjM9PSgwfGJl''@;'; put 'put ''KSYmUHIoOTU4NjgsOTU4MzEsMjkwLDk1ODQ2KTshKCgwfExlKT49KDB8T2UpKTspe2ZvcihiPVZlKygodz1MZSsxfDApPDwyKXwwLHA9MHxhW1ZlKyhMZTw8Mik+PjJdOyEoKDB8cCk+PSgwfGFbYj4+Ml0pKTspKDB8TGUpPT0oMHwobD0wfGFbcWUrKHA8PDIpPj4yXSkpP2w9bTooaz0rX2Mo''@;'; put 'put ''ZixjLExlLGwpK2ssQT0rX1tSZSsocDw8Myk+PjNdK0EsbD1tKzF8MCksbT1sLHA9cCsxfDA7TGU9dyxPZT0wfGFbSGU+PjJdfUE9ay8oQS8oUj0rKDB8bSkpKlIpLGw9MDtlOmZvcig7ISgoMHxsKT49KDB8T2UpKTspZm9yKHc9bCsxfDAsYj0wfGFbVmUrKHc8PDIpPj4yXSxwPTB8YVtWZSso''@;'; put 'put ''bDw8Mik+PjJdOzspe2lmKCgwfHApPj0oMHxiKSl7bD13O2NvbnRpbnVlIGV9bT1SZSsocDw8Myl8MCwoMHxsKSE9KDB8YVtxZSsocDw8Mik+PjJdKSYmKF9bbT4+M109K19bbT4+M10qQSkscD1wKzF8MH1yZXR1cm4gMHxIZX1mdW5jdGlvbiBNeChsLGMsZixwLG0pe2N8PTAsZj0rZixwfD0w''@;'; put 'put ''LG18PTA7dmFyIGt0LHN0LEV0LFp0LGN0LGFuLFNuLHVyLEhyLEVyLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsYnQ9MCxIbj0wLGZyPTAsRHI9MDtmb3Io''@;'; put 'put ''YW49MHxhWyhsfD0wKT4+Ml0sU249MHxhW2wrMjA+PjJdLEhuPTB8YVtsKzI0Pj4yXSwwfGxoKGwsMCl8fFByKDk1Nzk1LDk1ODMxLDMzMyw5NTg3NiksdXI9MHxqXyhsLGMscCksSHI9MHxRbig1NiksX1soRXI9SHIrMzJ8MCk+PjNdPTEsYVtIcisyMD4+Ml09MCxhW0hyKzI0Pj4yXT0wLF9b''@;'; put 'put ''SHIrNDA+PjNdPS4wMSxhW0hyKzQ4Pj4yXT1+fitEMCgrICsoMHxhW2w+PjJdKSksWnQ9MHxRbihBPWFuPDwzKSxhW0hyKzEyPj4yXT1adCxsPTA7ISgoMHxsKT49KDB8YW4pKTspX1tadCsobDw8Myk+PjNdPWYsbD1sKzF8MDtmb3IoY3Q9MHxRbihhbjw8MiksRXQ9MHxRbihBKSxiPTA7Oyl7''@;'; put 'put ''aWYoKDB8Yik+PSgwfGFuKSl7Uj0wO2JyZWFrfWZvcihfWyhrPUV0KyhiPDwzKXwwKT4+M109MCxEPVNuKygoTT1iKzF8MCk8PDIpfDAsdz0wfGFbU24rKGI8PDIpPj4yXSxsPTAsZj0wOyEoKDB8dyk+PSgwfGFbRD4+Ml0pKTspKDB8YikhPSgwfChBPTB8YVtIbisodzw8Mik+PjJdKSkmJihm''@;'; put 'put ''PStfYyhwLGMsYixBKSxfW2s+PjNdPWY9K19baz4+M10rZixsPWwrMXwwKSx3PXcrMXwwO2lmKCgwfGwpPD0wKXtxPTE0O2JyZWFrfV9baz4+M109Zi8rKDB8bCksYj1NfWZvcigxND09KDB8cSkmJlByKDk1OTA4LDk1ODMxLDM1OCw5NTg3Nik7Oyl7aWYoKDB8Uik+PSgwfGFuKSl7bD0wLE09''@;'; put 'put ''MDticmVha31hW2N0KyhSPDwyKT4+Ml09LTEsUj1SKzF8MH1lOmZvcig7ISgoMHxNKT49KDB8YW4pKTspe2ZvcihhW2N0KyhNPDwyKT4+Ml09TSxSPVNuKygoRD1NKzF8MCk8PDIpfDAsdz0wfGFbKGI9U24rKE08PDIpfDApPj4yXTshKCgwfHcpPj0oMHwoQT0wfGFbUj4+Ml0pKSk7KSgwfGFb''@;'; put 'put ''KEE9Y3QrKGFbSG4rKHc8PDIpPj4yXTw8Mil8MCk+PjJdKSE9KDB8TSkmJihhW0E+PjJdPU0sbD1sKzF8MCksdz13KzF8MDtmb3Ioaz0wfGFbYj4+Ml07Oyl7aWYoKDB8ayk+PSgwfEEpKXtNPUQ7Y29udGludWUgZX1mb3IoYj1TbisoMSsodz0wfGFbSG4rKGs8PDIpPj4yXSk8PDIpfDAsdz0w''@;'; put 'put ''fGFbU24rKHc8PDIpPj4yXTshKCgwfHcpPj0oMHxhW2I+PjJdKSk7KSgwfGFbKEE9Y3QrKGFbSG4rKHc8PDIpPj4yXTw8Mil8MCk+PjJdKSE9KDB8TSkmJihhW0E+PjJdPU0sbD1sKzF8MCksdz13KzF8MDtrPWsrMXwwLEE9MHxhW1I+PjJdfX1hWyhrdD1Icis0fDApPj4yXT0wfHVjKGFuLGFu''@;'; put 'put ''LEE9bCthbnwwLDEsMSksQT0wfHVjKGFuLGFuLEEsMSwxKSxhWyhzdD1Icis4fDApPj4yXT1BLGw9MHxhW2t0Pj4yXTtkb3tpZigwPT0oMHxBKXwwPT0oMHxsKSlRNChIciksYnQ9MDtlbHNle2F0PTB8YVtsKzIwPj4yXSxXZT0wfGFbbCsyND4+Ml0scWU9MHxhW2wrMjg+PjJdLFN0PTB8YVtB''@;'; put 'put ''KzI4Pj4yXSxPZT0wfGFbQSsyND4+Ml0sYVsocnQ9MHxhW0ErMjA+PjJdKT4+Ml09MCxhW2F0Pj4yXT0wLGY9MCxHPTAscT0wLHc9MDtlOmZvcig7Oyl7aWYoKDB8cSk+PSgwfGFuKSl7cT01ODticmVha31mb3IoYVtjdCsocTw8Mik+PjJdPUxlPXErYW58MCxIZT1TbisoKFJlPXErMXwwKTw8''@;'; put 'put ''Mil8MCxWZT1FdCsocTw8Myl8MCxwZT0wLGdlPTAsYj0wfGFbKGs9U24rKHE8PDIpfDApPj4yXTshKCgwfGIpPj0oMHwobD0wfGFbSGU+PjJdKSkpOyl7aWYoKDB8YVsobD1jdCsoKEE9MHxhW0huKyhiPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pIT0oMHxMZSkpe3N3aXRjaChhW2w+PjJdPUxlLGFb''@;'; put 'put ''V2UrKHc8PDIpPj4yXT1BLDB8bSl7Y2FzZSAwOmJlPTE7YnJlYWs7Y2FzZSAxOmJlPS41KigrX1tFdCsoQTw8Myk+PjNdKyArX1tWZT4+M10pO2JyZWFrO2Nhc2UgMjpiZT0rcWwoKyArZHUocCxjLHEsQSksLjQpO2JyZWFrO2RlZmF1bHQ6cT00MjticmVhayBlfV9bcWUrKHc8PDMpPj4zXT1E''@;'; put 'put ''cj0tMS8oYmUqYmUpLGFbT2UrKHc8PDIpPj4yXT1BLF9bKFI9U3QrKHc8PDMpfDApPj4zXT1mcj1EcipiZSxHPStfYyhwLGMscSxBKSpmcitHLHc9dysxfDAscGU9RHIrcGUsZ2U9KGZyPStfW1I+PjNdKStnZSxmPWZyKmJlK2Z9Yj1iKzF8MH1mb3IoUj0wfGFbaz4+Ml07ISgoMHxSKT49KDB8''@;'; put 'put ''bCkpOyl7Zm9yKE09U24rKDErKGs9MHxhW0huKyhSPDwyKT4+Ml0pPDwyKXwwLEQ9RXQrKGs8PDMpfDAsYj0wfGFbU24rKGs8PDIpPj4yXTshKCgwfGIpPj0oMHxhW00+PjJdKSk7KXtpZigoMHxhWyhsPWN0KyhhWyhBPUhuKyhiPDwyKXwwKT4+Ml08PDIpfDApPj4yXSkhPSgwfExlKSl7c3dp''@;'; put 'put ''dGNoKGFbbD4+Ml09TGUsMHxtKXtjYXNlIDA6YmU9MjticmVhaztjYXNlIDE6YmU9LjUqKDIqK19bRD4+M10rICtfW1ZlPj4zXSsgK19bRXQrKGFbQT4+Ml08PDMpPj4zXSk7YnJlYWs7Y2FzZSAyOmJlPStxbCgrICtkdShwLGMscSwwfGFbQT4+Ml0pLC40KTticmVhaztkZWZhdWx0OnE9NTM7''@;'; put 'put ''YnJlYWsgZX1hW1dlKyh3PDwyKT4+Ml09YVtBPj4yXSxfW3FlKyh3PDwzKT4+M109ZnI9LTEvKGJlKmJlKSxhW09lKyh3PDwyKT4+Ml09YVtBPj4yXSxfWyhsPVN0Kyh3PDwzKXwwKT4+M109RHI9ZnIqYmUsRz0rX2MocCxjLDB8YVtBPj4yXSxrKSpEcitHLHc9dysxfDAscGU9ZnIrcGUsZ2U9''@;'; put 'put ''KERyPStfW2w+PjNdKStnZSxmPURyKmJlK2Z9Yj1iKzF8MH1SPVIrMXwwLGw9MHxhW0hlPj4yXX1hW1dlKyh3PDwyKT4+Ml09cSxfWyhWZT1adCsocTw8Myl8MCk+PjNdPURyPS1wZSorX1tWZT4+M10sX1txZSsodzw8Myk+PjNdPURyLXBlLGFbT2UrKHc8PDIpPj4yXT1xLF9bU3QrKHc8PDMp''@;'; put 'put ''Pj4zXT0tZ2UsYVthdCsoUmU8PDIpPj4yXT13PXcrMXwwLGFbcnQrKFJlPDwyKT4+Ml09dyxxPVJlfWlmKDQyPT0oMHxxKSlDdSg5NTkxNSwyOSwxLDB8YVsxNTcxMl0pLFByKDEzODM5NCw5NTgzMSw0MTgsOTU4NzYpO2Vsc2UgaWYoNTM9PSgwfHEpKUN1KDk1OTE1LDI5LDEsMHxhWzE1NzEy''@;'; put 'put ''XSksUHIoMTM4Mzk0LDk1ODMxLDQ2MCw5NTg3Nik7ZWxzZSBpZig1OD09KDB8cSkpe2ZvcihmPUcvZixsPTA7ISgoMHxsKT49KDB8dykpOylfWyhIbj1TdCsobDw8Myl8MCk+PjNdPStfW0huPj4zXSpmLGw9bCsxfDA7X1tFcj4+M109ZixhWzgrKDB8YVtrdD4+Ml0pPj4yXT13LGFbOCsoMHxh''@;'; put 'put ''W3N0Pj4yXSk+PjJdPXcsRnQoY3QpLEZ0KEV0KSxSYSh1ciksYnQ9SHI7YnJlYWt9fX13aGlsZSgwKTtyZXR1cm4gMHxidH1mdW5jdGlvbiBRNChsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbCs0Pj4yXSkmJlJhKGMpLDB8KGM9MHxhW2wrOD4+Ml0pJiZSYShjKSwwfChjPTB8YVts''@;'; put 'put ''KzEyPj4yXSkmJkZ0KGMpLDB8KGM9MHxhW2wrMjA+PjJdKSYmQ29bMTI3JmFbbCsxNj4+Ml1dKGMpLEZ0KGwpKX1mdW5jdGlvbiB6bShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG09K207dmFyIGJ0LGFuLFNuLEhuLEhyLEVyLGZyLERyLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxH''@;'; put 'put ''PTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsa3Q9MCxzdD0wLEV0PTAsWnQ9MCxjdD0wLHVyPTAsSnI9MDtpZihEcj1sZSxsZT1sZSsxNnwwLGZyPURyKzh8MCxEPURyKzR8MCxrPURyLE09MHxhWzQrKGx8PTAp''@;'; put 'put ''Pj4yXSx3PTB8YVtsKzg+PjJdLGFbKEhyPURyKzEyfDApPj4yXT0wLGFbZnI+PjJdPTAsYVtEPj4yXT0wLGJ0PTB8YVtsKzEyPj4yXSxhW2s+PjJdPTAsYW49MHx0dih3KSwwIT0oMHwoRXI9MHxRbihBPShIbj0wfEFyKFNuPTB8YVtNPj4yXSxjKSk8PDMpKSkmJihnbygwfEVyLDB8ZiwwfCh1''@;'; put 'put ''cj0wfEFyKGM8PDMsU24pKSksY3Q9MHxRbihBKSxhW2ZyPj4yXT1jdCwwIT0oMHxjdCkpKXtzd2l0Y2goWnQ9MHxhW3crMjA+PjJdLGN0PTB8YVt3KzI0Pj4yXSxTdD0wfGFbdysyOD4+Ml0sa3Q9MHxhW2FuKzI4Pj4yXSxzdD0wfGFbTSsyOD4+Ml0sMHxhWyhFdD1sKzI0fDApPj4yXSl7Y2Fz''@;'; put 'put ''ZSAxOihmdW5jdGlvbiBJeChsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBIZSxWZSxxZSxXZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLHJ0PTAsYXQ9MDtxPTB8YVs4KyhsfD0wKT4+Ml0sV2U9''@;'; put 'put ''MHxhW2wrMTI+PjJdLFZlPTB8YVtsKzE2Pj4yXSxxZT0wfGFbMjArKHJ0PTB8YVtsKzMyPj4yXSk+PjJdLHJ0PTB8YVtydCsyND4+Ml0sZ2U9MHxhWyhNPWwrMjB8MCk+PjJdLHBlPTB8YVsoRD1sKzI0fDApPj4yXSxHPTB8YVsoUj1sKzI4fDApPj4yXSxIZT0rX1tsPj4zXTtlOmRve2lmKDM9''@;'; put 'put ''PSgyfHEpKXtpZighZ2Upe2ZvcigwIT0oMHxwZSl8MCE9KDB8Ryk/UHIoOTYwOTQsOTU4MzEsNjkyLDk2MTExKToodz0wLGI9MCk7ISgoMHx3KT49KDB8V2UpKTspUmU9MHxhW1ZlKyh3PDwyKT4+Ml0sdz13KzF8MCxiPWIrfn4oKGJlPSsoKDB8YVtxZSsoUmUrMTw8Mik+PjJdKS0oMHxhW3Fl''@;'; put 'put ''KyhSZTw8Mik+PjJdKXwwKSsxKSpiZSl8MDtnZT0wfFFuKHBlPWI8PDIpLGFbTT4+Ml09Z2UscGU9MHxRbihwZSksYVtEPj4yXT1wZSxHPTB8UW4oYjw8MyksYVtSPj4yXT1HfWZvcihMZT0wLGw9MDshKCgwfExlKT49KDB8V2UpKTspe3c9MHxhW3J0KygoYj0wfGFbKE9lPXFlKygocT0wfGFb''@;'; put 'put ''VmUrKExlPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pPDwyKT4+Ml0sYj0wfGFbcnQrKGIrMTw8Mik+PjJdO3Q6ZG97aWYoKDB8dykhPSgwfGIpKXtmb3IoYXQ9K2R1KHAsZix3LGIpLGF0Kj1hdCxiZT0rKCgwfGFbKFI9cWUrKHErMTw8Mil8MCk+PjJdKS0oMHxhW09lPj4yXSl8MCksYVtnZSsobDw8''@;'; put 'put ''Mik+PjJdPXEsYVtwZSsobDw8Mik+PjJdPXEsX1tHKyhsPDwzKT4+M109SGUvYXQsaz1iZSpiZSphdCxiZT0tSGUvKGF0KmJlKSxiPTB8YVtPZT4+Ml07bD1sKzF8MCwhKCgwfGIpPj0oMHwodz0wfGFbUj4+Ml0pKSk7KWFbZ2UrKGw8PDIpPj4yXT1xLGFbcGUrKGw8PDIpPj4yXT1hW3J0Kyhi''@;'; put 'put ''PDwyKT4+Ml0sX1tHKyhsPDwzKT4+M109YmUsYj1iKzF8MDtmb3Ioaz1IZS9rLEQ9MHxhW09lPj4yXTs7KXtpZigoMHxEKT49KDB8dykpYnJlYWsgdDtmb3IoYVtnZSsobDw8Mik+PjJdPU09MHxhW3J0KyhEPDwyKT4+Ml0sYVtwZSsobDw8Mik+PjJdPXEsX1tHKyhsPDwzKT4+M109YmUsYj0w''@;'; put 'put ''fGFbT2U+PjJdO2w9bCsxfDAsISgoMHxiKT49KDB8KHc9MHxhW1I+PjJdKSkpOylSZT0wfGFbcnQrKGI8PDIpPj4yXSxhW2dlKyhsPDwyKT4+Ml09TSxhW3BlKyhsPDwyKT4+Ml09UmUsX1tHKyhsPDwzKT4+M109ayxiPWIrMXwwO0Q9RCsxfDB9fX13aGlsZSgwKTtMZT1MZSsxfDB9dz0wfG80''@;'; put 'put ''KGwsYyxjLGdlLHBlLEcsMSw4KSxsPTB9ZWxzZXtzd2l0Y2goMHxxKXtjYXNlIDI6Y2FzZSA0OmJyZWFrO2RlZmF1bHQ6dz0wLGw9MDticmVhayBlfWRve2lmKGdlKU9lPUcsTGU9cGUsUmU9Z2U7ZWxzZXtpZighKDAhPSgwfHBlKXwwIT0oMHxHKSkpe1JlPTB8UW4oTGU9V2U8PDIpLGFbTT4+''@;'; put 'put ''Ml09UmUsTGU9MHxRbihMZSksYVtEPj4yXT1MZSxPZT0wfFFuKFdlPDwzKSxhW1I+PjJdPU9lO2JyZWFrfVByKDk2MDk0LDk1ODMxLDczNCw5NjExMSl9fXdoaWxlKDApO2ZvcihsPTB8UW4oMHxBcihjPDwzLGYpKSxiPTB8QXIoZixjKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGIpKXtHPTA7YnJl''@;'; put 'put ''YWt9X1tsKyh3PDwzKT4+M109MCx3PXcrMXwwfWZvcig7ISgoMHxHKT49KDB8V2UpKTspe2ZvcihrPStkdShwLGYsMHxhW3J0KygoRD0wfGFbKE09cWUrKChxPTB8YVtWZSsoRzw8Mik+PjJdKTw8Mil8MCk+PjJdKTw8Mik+PjJdLDB8YVtydCsoRCsxPDwyKT4+Ml0pLGFbUmUrKEc8PDIpPj4y''@;'; put 'put ''XT1xLGFbTGUrKEc8PDIpPj4yXT1xLF9bT2UrKEc8PDMpPj4zXT1rPUhlL2ssTT0wfGFbTT4+Ml0sRD0wfGFbcWUrKHErMTw8Mik+PjJdLHE9MHxBcihxLGYpLGI9TTshKCgwfGIpPj0oMHxEKSk7KXtmb3IoUj0wfEFyKDB8YVtydCsoYjw8Mik+PjJdLGYpLHc9MDshKCgwfHcpPj0oMHxmKSk7''@;'; put 'put ''KV9bKGdlPWwrKHcrcTw8Myl8MCk+PjNdPStfW2dlPj4zXSsgK19bcCsodytSPDwzKT4+M10sdz13KzF8MDtiPWIrMXwwfWZvcihrKj0xLysoRC1NfDApLHc9MDshKCgwfHcpPj0oMHxmKSk7KV9bKGdlPWwrKHcrcTw8Myl8MCk+PjNdPWsqK19bZ2U+PjNdLHc9dysxfDA7Rz1HKzF8MH13PTB8''@;'; put 'put ''bzQoRyxjLGMsUmUsTGUsT2UsMSw4KX19d2hpbGUoMCk7YVttPj4yXT13LGFbQT4+Ml09bH0pKDB8YVtsKzIwPj4yXSxTbixjLGYsayxEKSwoQT0wfGFbaz4+Ml0pPyhNPTB8eXAoTSxBKSxydD0wLFdlPTApOihydD0wLFdlPTAsQT0wKTticmVhaztjYXNlIDI6cnQ9K19bOCsoQT0wfGFbbCsy''@;'; put 'put ''MD4+Ml0pPj4zXSxXZT0rX1tBPj4zXSxBPTA7YnJlYWs7ZGVmYXVsdDpydD0wLFdlPTAsQT0wfVZlPTA9PSgwfGJ0KSxxZT1sKzQwfDAsSGU9bCs0OHwwLHc9MHxhW0Q+PjJdLGI9MSxrPTA7ZTpmb3IoO1JlPWsrMXwwLCgwfGspPCgwfHApJmI+bTspe3Q6ZG97aWYoND09KDB8YVtFdD4+Ml0p''@;'; put 'put ''KWZvcihEPTB8YVtmcj4+Ml0saz0wOzspe2lmKCgwfGspPj0oMHxTbikpYnJlYWsgdDtmb3IoUj0wfEFyKGssYyksbD0wOyEoKDB8bCk+PSgwfGMpKTspX1tEKyhsK1I8PDMpPj4zXT0wLGw9bCsxfDA7az1rKzF8MH1lbHNle2ZvcihxPTA7ISgoMHxxKT49KDB8U24pKTspe2ZvcihMZT1adCso''@;'; put 'put ''KE9lPXErMXwwKTw8Mil8MCxHPTAsYmU9MHxhW1p0KyhxPDwyKT4+Ml0saz0tMTshKCgwfGJlKT49KDB8YVtMZT4+Ml0pKTspe2lmKCgwfHEpPT0oMHwobD0wfGFbKEQ9Y3QrKGJlPDwyKXwwKT4+Ml0pKSlrPWJlO2Vsc2V7aWYoZ2U9K19jKGYsYyxxLGwpLDA9PShwZT0rX1soUj1TdCsoYmU8''@;'; put 'put ''PDMpfDApPj4zXSkpcGU9MDtlbHNle2lmKDA9PWdlKXtmb3IocGU9cGUvK19bc3QrKGJlPDwzKT4+M10qMWUtNCxsPTA7ISgoMHxsKT49KDB8YykpOylnZT1wZSooK0JoKCkrMWUtNCksSnI9ZisoKDB8QXIoMHxhW0Q+PjJdLGMpKStsPDwzKXwwLF9bSnI+PjNdPWdlKyArX1tKcj4+M10sbD1s''@;'; put 'put ''KzF8MDtnZT0rX2MoZixjLHEsMHxhW0Q+PjJdKSxwZT0rX1tSPj4zXX1wZS89Z2V9X1trdCsoYmU8PDMpPj4zXT1wZSxHPXBlK0d9YmU9YmUrMXwwfWlmKCgwfGspPD0tMSl7YXQ9MjU7YnJlYWsgZX1fW2t0KyhrPDwzKT4+M109LUcscT1PZX1HaShhbiwwLGYsMCxmciwwLGMpfX13aGlsZSgw''@;'; put 'put ''KTt0OmRve2lmKCFWZSlmb3IoRD0wfGFbZnI+PjJdLGs9MDs7KXtpZigoMHxrKT49KDB8U24pKWJyZWFrIHQ7Zm9yKFI9YnQrKGs8PDMpfDAscT0wfEFyKGssYyksbD0wOyEoKDB8bCk+PSgwfGMpKTspX1soSnI9RCsoKExlPWwrcXwwKTw8Myl8MCk+PjNdPStfW0pyPj4zXSsgK19bRXIrKExl''@;'; put 'put ''PDwzKT4+M10qK19bUj4+M10sbD1sKzF8MDtrPWsrMXwwfX13aGlsZSgwKTt0OmRve3N3aXRjaCgwfGFbRXQ+PjJdKXtjYXNlIDE6Zm9yKGs9MHxhW2ZyPj4yXSxsPTA7Oyl7aWYoKDB8bCk+PSgwfFNuKSl7YXQ9NTA7YnJlYWsgdH1mb3IoUj0wfEFyKGwsYyksRD0wOyEoKDB8RCk+PSgwfGMp''@;'; put 'put ''KTspX1soSnI9aysoKGF0PUQrUnwwKTw8Myl8MCk+PjNdPStfW0pyPj4zXSsgK19bdysoYXQ8PDMpPj4zXSxEPUQrMXwwO2w9bCsxfDB9Y2FzZSAyOlluZShTbixjLGYsMHxhW2ZyPj4yXSxXZSxydCksaz0wfGFbZnI+PjJdLEc9K19bcWU+PjNdLGw9MHxhW0hlPj4yXSwyPT0oMHxhW0V0Pj4y''@;'; put 'put ''XSk/dVAoTSxXZSxjLGYsayxHLGwsSHIpOmF0PTUxO2JyZWFrO2RlZmF1bHQ6az0wfGFbZnI+PjJdLGF0PTUwfX13aGlsZSgwKTtpZig1MD09KDB8YXQpJiYoRz0rX1txZT4+M10sbD0wfGFbSGU+PjJdLGF0PTUxKSw1MT09KDB8YXQpJiYoYXQ9MCxSMyhNLGMsZixrLEcsbCwwLEhyKSksMHxh''@;'; put 'put ''W0hyPj4yXSlicmVhaztiPStjUChTbixjLGYsMHxhW2ZyPj4yXSksYi89K0QwKCsgK3k1KEhuLGYsZikpLGdvKDB8ZiwwfGFbZnI+PjJdLDB8dXIpLGs9UmV9MjU9PSgwfGF0KSYmUHIoOTYwNDksOTU4MzEsODk1LDk2MDYwKSxSYShhbiksQSYmKFJhKEEpLFJhKE0pKX1lbHNlIFJhKGFuKSxi''@;'; put 'put ''PTEsdz0wO3JldHVybiBGdChFciksMHwoQT0wfGFbZnI+PjJdKSYmRnQoQSksMHx3JiZGdCh3KSxsZT1EciwrYn1mdW5jdGlvbiBZbmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsQT0rQTt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wO0EqPW09K20s''@;'; put 'put ''dz0wO2U6Zm9yKDshKCgwfHcpPj0oMHxsKSk7KWZvcihEPXcrMXwwLFI9MHxBcih3LGMpLGI9RDs7KXtpZigoMHxiKT09KDB8bCkpe3c9RDtjb250aW51ZSBlfWZvcihNPTB8QXIoYixjKSxtPTEvK2R1KGYsYyx3LGIpLGs9MDshKCgwfGspPj0oMHxjKSk7KXE9QSooKCtfW2YrKChwZT1rK1J8''@;'; put 'put ''MCk8PDMpPj4zXS0rX1tmKygoRz1rK018MCk8PDMpPj4zXSkqbSksX1socGU9cCsocGU8PDMpfDApPj4zXT1xKyArX1twZT4+M10sX1soRz1wKyhHPDwzKXwwKT4+M109K19bRz4+M10tcSxrPWsrMXwwO2I9YisxfDB9fWZ1bmN0aW9uIHVQKGwsYyxmLHAsbSxBLHcsYil7dmFyIGssTTtmfD0w''@;'; put 'put ''LHB8PTAsbXw9MCxBPStBLHd8PTAsYnw9MCxNPTB8ZnVuY3Rpb24gQngobCxjKXtsfD0wLGM9K2M7dmFyIGYscDtyZXR1cm4gZj0wfFFuKDgpLHA9MHxRbigxNiksYVtmPj4yXT1wLF9bcD4+M109YyxhW3ArOD4+Ml09bCxhW2YrND4+Ml09MjUsMHxmfShsfD0wLGM9K2MpLGs9MHxmdW5jdGlv''@;'; put 'put ''biBGeChsLGMpe2M9K2M7dmFyIGIsayxNLEQsRyxxLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsUj0wO0Q9MHxhWyhsfD0wKT4+Ml0sRz0wfGFbbCsyMD4+Ml0scT0wfGFbbCsyND4+Ml0saz0wfGFbbCsyOD4+Ml0sTT0wfFFuKDgpLHc9MHxRbig4KyhEPDwzKXwwKSxhW00+PjJdPXcsX1t3Pj4z''@;'; put 'put ''XT0rKDB8RCksdz13Kzh8MCxiPTEvKHBlPSsoRCstMXwwKSksYyo9cGUsbD0wO2U6Zm9yKDshKCgwfGwpPj0oMHxEKSk7KWZvcihwPXcrKGw8PDMpfDAsX1twPj4zXT1iLG09bCsxfDAsQT0wfGFbRysobTw8Mik+PjJdLGY9MHxhW0crKGw8PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8QSkpe2w9''@;'; put 'put ''bTtjb250aW51ZSBlfSgwfGwpPT0oMHxhW3ErKGY8PDIpPj4yXSkmJigoUj0rX1trKyhmPDwzKT4+M10pPj0wP1I6LVIpPjAmJihfW3A+PjNdPTEvKFIrYykpLGY9ZisxfDB9cmV0dXJuIGFbTSs0Pj4yXT0yNywwfE19KGwsYyksbVAoTSxrLDB8YVtsPj4yXSxmLHAsbSxBLHcsYil9ZnVuY3Rp''@;'; put 'put ''b24gY1AobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihBPTAsYj0wOyEoKDB8QSk+PSgwfGwpKTspe2ZvcihrPTB8QXIoQSxjKSxtPTAsdz0wOyEoKDB8bSk+PSgwfGMpKTspRD1tK2t8MCxtPW0rMXwwLHc9KE09K19bcCso''@;'; put 'put ''RDw8Myk+PjNdLStfW2YrKEQ8PDMpPj4zXSkqTSt3O0E9QSsxfDAsYj0rRDAoK3cpK2J9cmV0dXJuK2J9ZnVuY3Rpb24gRHgobCxjLGYscCxtKXtjfD0wLGY9K2YscHw9MCxtfD0wO3ZhciBWZSxxZSxhdCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9''@;'; put 'put ''MCxPZT0wLExlPTAsUmU9MCxIZT0wLHJ0PTAsV2U9MCxTdD0wLGt0PTA7Zm9yKFdlPTB8YVsobHw9MCk+PjJdLHE9MHxhW2wrMjA+PjJdLHBlPTB8YVtsKzI0Pj4yXSwwfGxoKGwsMCl8fFByKDk1Nzk1LDk1ODMxLDEwMzQsOTYxMzMpLGF0PTB8UW4oZ2U9V2U8PDMpLGI9MDshKCgwfGIpPj0o''@;'; put 'put ''MHxXZSkpOyl7Zm9yKF9bKEQ9YXQrKGI8PDMpfDApPj4zXT0wLEc9cSsoKFI9YisxfDApPDwyKXwwLE09MHxhW3ErKGI8PDIpPj4yXSxBPTAsaz0wOyEoKDB8TSk+PSgwfGFbRz4+Ml0pKTspKDB8YikhPSgwfCh3PTB8YVtwZSsoTTw8Mik+PjJdKSkmJihrPStfYyhwLGMsYix3KSxfW0Q+PjNd''@;'; put 'put ''PWs9K19bRD4+M10rayxBPUErMXwwKSxNPU0rMXwwO2lmKCgwfEEpPD0wKXtydD0xMTticmVha31fW0Q+PjNdPWsvKygwfEEpLGI9Un1mb3IoMTE9PSgwfHJ0KSYmUHIoOTU5MDgsOTU4MzEsMTA0Niw5NjEzMyksQT0wfFFuKDU2KSxfWyhxZT1BKzMyfDApPj4zXT0xLGFbQSsyMD4+Ml09MCxh''@;'; put 'put ''W0ErMjQ+PjJdPTAsX1tBKzQwPj4zXT0uMDEsYVtBKzQ4Pj4yXT1+fitEMCgrICsoMHxhW2w+PjJdKSksVmU9MHxRbihnZSksYVtBKzEyPj4yXT1WZSx3PTA7ISgoMHx3KT49KDB8V2UpKTspX1tWZSsodzw8Myk+PjNdPWYsdz13KzF8MDtkb3tpZigoMHxXZSk+Mil7aWYobSl7dz0wfHZQKFdl''@;'; put 'put ''LGMscCk7YnJlYWt9dz0wfE54KFdlLGMscCk7YnJlYWt9dz0wfHR2KGwpfXdoaWxlKDApO2lmKGFbKG09QSs0fDApPj4yXT0wfHlwKGwsdyksUmEodyksYj0wfHR2KDB8YVttPj4yXSksYVtBKzg+PjJdPWIsMD09KDB8Yil8MD09KDB8KHc9MHxhW20+PjJdKSkpWl8oQSksQT0wO2Vsc2V7Zm9y''@;'; put 'put ''KGdlPTB8YVt3KzIwPj4yXSxwZT0wfGFbdysyND4+Ml0scT0wfGFbdysyOD4+Ml0sbT0wfGFbYisyOD4+Ml0sUmU9MCxIZT0wLEQ9MDshKCgwfEQpPj0oMHxXZSkpOyl7Zm9yKFI9Z2UrKChHPUQrMXwwKTw8Mil8MCxMZT0wLGY9MCxiPS0xLGJlPVJlLE9lPUhlLE09MHxhW2dlKyhEPDwyKT4+''@;'; put 'put ''Ml07ISgoMHxNKT49KDB8YVtSPj4yXSkpOykoMHwodz0wfGFbcGUrKE08PDIpPj4yXSkpPT0oMHxEKT8oaz1MZSx3PU0pOihTdD0rcWwoKyArZHUocCxjLEQsdyksLjYpLF9bcSsoTTw8Myk+PjNdPWs9MS8oU3QqU3QpLF9bKGw9bSsoTTw8Myl8MCk+PjNdPWt0PWsqU3QsT2U9a3QqK19jKHAs''@;'; put 'put ''YyxELHcpK09lLGsrPUxlLGY9KGt0PStfW2w+PjNdKStmLHc9YixiZT1rdCpTdCtiZSksTGU9ayxiPXcsTT1NKzF8MDtpZihfWyhsPVZlKyhEPDwzKXwwKT4+M109az0tTGUqK19bbD4+M10sKDB8Yik8PS0xKXtydD0zMTticmVha31fW3ErKGI8PDMpPj4zXT1rLUxlLF9bbSsoYjw8Myk+PjNd''@;'; put 'put ''PS1mLFJlPWJlLEhlPU9lLEQ9R31mb3IoMzE9PSgwfHJ0KSYmUHIoOTYxNTQsOTU4MzEsMTExMiw5NjEzMyksaz1IZS9SZSxiPTB8YVtnZSsoV2U8PDIpPj4yXSx3PTA7ISgoMHx3KT49KDB8YikpOylfWyhXZT1tKyh3PDwzKXwwKT4+M109K19bV2U+PjNdKmssdz13KzF8MDtfW3FlPj4zXT1r''@;'; put 'put ''LEZ0KGF0KX1yZXR1cm4gMHxBfWZ1bmN0aW9uIFpfKGwpe1E0KGx8PTApfWZ1bmN0aW9uIFUxKGwsYyxmKXt6bShsfD0wLGN8PTAsZnw9MCw1MCwuMDAxKX1mdW5jdGlvbiBMeChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgUmUsSGUsVmUscWUscnQsbT0wLEE9MCx3PTAsYj0wLGs9MCxN''@;'; put 'put ''PTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxXZT0wLGF0PTA7Zm9yKHJ0PTB8YVsobHw9MCk+PjJdLFdlPTB8YVtsKzIwPj4yXSxhdD0wfGFbbCsyND4+Ml0sMHxsaChsLDApfHxQcig5NTc5NSw5NTgzMSwxMTQ5LDk2MTY1KSxSZT0wfGpfKGwsYyxwKSxIZT0w''@;'; put 'put ''fGFbUmUrMjg+PjJdLGw9MHxRbig4KSxWZT0wfFFuKHJ0PDwyKSxxZT0wfFFuKHJ0PDwzKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfHJ0KSl7Rz0wO2JyZWFrfWZvcihfWyhNPXFlKyh3PDwzKXwwKT4+M109MCxSPVdlKygoRD13KzF8MCk8PDIpfDAsYj0wfGFbV2UrKHc8PDIpPj4yXSxtPTAsaz0w''@;'; put 'put ''OyEoKDB8Yik+PSgwfGFbUj4+Ml0pKTspKDB8dykhPSgwfChBPTB8YVthdCsoYjw8Mik+PjJdKSkmJihrPStfYyhwLGMsdyxBKSxfW00+PjNdPWs9K19bTT4+M10rayxtPW0rMXwwKSxiPWIrMXwwO2lmKCgwfG0pPD0wKXtxPTExO2JyZWFrfV9bTT4+M109ay8rKDB8bSksdz1EfWZvcigxMT09''@;'; put 'put ''KDB8cSkmJlByKDk1OTA4LDk1ODMxLDExNjcsOTYxNjUpOzspe2lmKCgwfEcpPj0oMHxydCkpe0Q9MCxtPTA7YnJlYWt9YVtWZSsoRzw8Mik+PjJdPS0xLEc9RysxfDB9ZTpmb3IoOyEoKDB8RCk+PSgwfHJ0KSk7KXtmb3IoYVtWZSsoRDw8Mik+PjJdPUQsRz1XZSsoKFI9RCsxfDApPDwyKXww''@;'; put 'put ''LHc9MHxhWyhiPVdlKyhEPDwyKXwwKT4+Ml07ISgoMHx3KT49KDB8KEE9MHxhW0c+PjJdKSkpOykoMHxhWyhBPVZlKyhhW2F0Kyh3PDwyKT4+Ml08PDIpfDApPj4yXSkhPSgwfEQpJiYoYVtBPj4yXT1ELG09bSsxfDApLHc9dysxfDA7Zm9yKE09MHxhW2I+PjJdOzspe2lmKCgwfE0pPj0oMHxB''@;'; put 'put ''KSl7RD1SO2NvbnRpbnVlIGV9Zm9yKGI9V2UrKDErKHc9MHxhW2F0KyhNPDwyKT4+Ml0pPDwyKXwwLHc9MHxhW1dlKyh3PDwyKT4+Ml07ISgoMHx3KT49KDB8YVtiPj4yXSkpOykoMHxhWyhBPVZlKyhhW2F0Kyh3PDwyKT4+Ml08PDIpfDApPj4yXSkhPSgwfEQpJiYoYVtBPj4yXT1ELG09bSsx''@;'; put 'put ''fDApLHc9dysxfDA7TT1NKzF8MCxBPTB8YVtHPj4yXX19aWYocD0wfHVjKHJ0LHJ0LG0sMSwxKSxhW2w+PjJdPXAscCl7Zm9yKHBlPTB8YVtwKzI0Pj4yXSxnZT0wfGFbcCsyOD4+Ml0sYVsocT0wfGFbcCsyMD4+Ml0pPj4yXT0wLEE9MCxtPTA7ISgoMHxBKT49KDB8cnQpKTspe2ZvcihhW1Zl''@;'; put 'put ''KyhBPDwyKT4+Ml09YmU9QStydHwwLExlPVdlKygoT2U9QSsxfDApPDwyKXwwLGM9cWUrKEE8PDMpfDAsYj0wfGFbKE09V2UrKEE8PDIpfDApPj4yXTshKCgwfGIpPj0oMHwoQT0wfGFbTGU+PjJdKSkpOykoMHxhWyh3PVZlKygoQT0wfGFbYXQrKGI8PDIpPj4yXSk8PDIpfDApPj4yXSkhPSgw''@;'; put 'put ''fGJlKSYmKGFbdz4+Ml09YmUsYVtwZSsobTw8Mik+PjJdPUEsX1soRz1nZSsobTw8Myl8MCk+PjNdPS41KigrX1txZSsoQTw8Myk+PjNdKyArX1tjPj4zXSksX1tHPj4zXT0rX1tIZSsoYjw8Myk+PjNdLG09bSsxfDApLGI9YisxfDA7Zm9yKEc9MHxhW00+PjJdOyEoKDB8Ryk+PSgwfEEpKTsp''@;'; put 'put ''e2ZvcihNPVdlKygxKyhiPTB8YVthdCsoRzw8Mik+PjJdKTw8Mil8MCxEPXFlKyhiPDwzKXwwLFI9SGUrKEc8PDMpfDAsYj0wfGFbV2UrKGI8PDIpPj4yXTshKCgwfGIpPj0oMHxhW00+PjJdKSk7KSgwfGFbKHc9VmUrKGFbKEE9YXQrKGI8PDIpfDApPj4yXTw8Mil8MCk+PjJdKSE9KDB8YmUp''@;'; put 'put ''JiYoYVt3Pj4yXT1iZSxhW3BlKyhtPDwyKT4+Ml09YVtBPj4yXSxfWyh3PWdlKyhtPDwzKXwwKT4+M109LjUqKDIqK19bRD4+M10rICtfW2M+PjNdKyArX1txZSsoYVtBPj4yXTw8Myk+PjNdKSxfW3c+PjNdPStfW0hlKyhiPDwzKT4+M10rICtfW1I+PjNdLG09bSsxfDApLGI9YisxfDA7Rz1H''@;'; put 'put ''KzF8MCxBPTB8YVtMZT4+Ml19YVtxKyhPZTw8Mik+PjJdPW0sQT1PZX1hW3ArOD4+Ml09bSxXZT0wfEtzZSgpLGFbKGF0PWwrNHwwKT4+Ml09V2UsZ28oMHxXZSwwfGYsMTY4KSxhWzE2KyhhdD0wfGFbYXQ+PjJdKT4+Ml09MCxhW2F0KzQwPj4yXT0xLF9bKFdlPWF0Kzk2fDApPj4zXT0uNSor''@;'; put 'put ''X1tXZT4+M10sYVthdCs4MD4+Ml09MjAsRnQoVmUpLEZ0KHFlKSxSYShSZSl9ZWxzZSBPeChsKSxsPTA7cmV0dXJuIDB8bH1mdW5jdGlvbiBPeChsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbD4+Ml0pJiZSYShjKSwwfChsPTB8YVtsKzQ+PjJdKSYmcFYobCkpfWZ1bmN0aW9uIGZQ''@;'; put 'put ''KGwsYyxmLHAsbSl7dmFyIEEsdztsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQT1sZSxsZT1sZSsxNnwwLGFbKHc9QSk+PjJdPTAsZnVuY3Rpb24gJHZlKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBKcixMcixsMCxWaSxPaSxsbyxUYSxaYSx4aSxE''@;'; put 'put ''bCxvcyxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wLERy''@;'; put 'put ''PTAsUm89MCxnYT0wLG9sPTAsTDA9MCx4YT0wO2lmKG9zPWxlLGxlPWxlKzMyfDAsVGE9b3MrMjB8MCxaYT1vcysxNnwwLHhpPW9zKzEyfDAsRGw9b3MrOHwwLEpyPW9zLHBlPStfWyhwfD0wKT4+M10sUj0rX1soRz1wKzI0fDApPj4zXSxEPStfWyhxPXArMzJ8MCk+PjNdLExyPStfW3ArNzI+''@;'; put 'put ''PjNdLGwwPTB8YVtwKzgwPj4yXSxWaT0rX1twKzg4Pj4zXSxMZT0rX1twKzk2Pj4zXSxPaT0wfGFbcCsxMDQ+PjJdLGFbKGxvPW9zKzI0fDApPj4yXT0wLGFbVGE+PjJdPTEwLGFbWmE+PjJdPTAsYVt4aT4+Ml09MCxhW0RsPj4yXT0wLF9bSnI+PjNdPTAsISgwPT0oMHxjKXwoMHxsMCk8MXx8''@;'; put 'put ''KFJvPTB8YVtjPj4yXSwoMHxsKTwxfCgwfChNPTB8YVtjKzQ+PjJdKSk8MSkpKXtpZigoMHxNKTwoMHxhW3ArNTI+PjJdKT8oZ2U9MCxiPTAsaz0wKTooaz0wfFFuKDgwKmx8MCksYVtaYT4+Ml09ayxhW3hpPj4yXT0wfFFuKDgwKSxhW0RsPj4yXT0wfFFuKDgwKSxnZT0xLGI9ayksYVt3Pj4y''@;'; put 'put ''XT0wLCgwfFJvKT09KDB8TSkpe3VyPTB8YWgoYywxKSxIcj0wfGFbdXIrMjA+PjJdLEVyPTB8YVt1cisyND4+Ml0sZnI9MHxhW2YrMjA+PjJdLERyPTB8YVtmKzI0Pj4yXSxIbj0wfGFbZisyOD4+Ml07ZTpkb3tpZigwfGFbcCsxNj4+Ml0pZm9yKHJ3KDB8YVtwKzEwOD4+Ml0pLGs9MHxBcihS''@;'; put 'put ''byxsKSxiPTA7Oyl7aWYoKDB8Yik+PSgwfGspKWJyZWFrIGU7X1tBKyhiPDwzKT4+M109K0JoKCksYj1iKzF8MH19d2hpbGUoMCk7UjwwJiYoUj0rTEQodXIsbCxBKSxfW0c+PjNdPVIpLEQ8MCYmKF9bcT4+M109LjIsRD0uMikscGU+PTAmJihfW3A+PjNdPS0xLHBlPS0xKSxTbj0rcWwoK1Is''@;'; put 'put ''Kyhhbj0xLXBlKSksRXQ9K3FsKCtELC4zMzMzMzMzMzMzMzMzMzMzKigyLXBlKSkvUixadD0wfFFuKGN0PWw8PDMpLGJ0PTB8UW4oY3Q9MHxBcihSbyxjdCkpLGF0PTAhPSgwfGdlKSxTdD1wKzExNnwwLGt0PS4yKkV0LHN0PXArNjR8MCxydD0tMT09cGUsV2U9MCE9KDB8bSksYj0wLFZlPTAs''@;'; put 'put ''cWU9MDtlOmZvcig7Oyl7VmU9VmUrMXwwLGdvKDB8YnQsMHxBLDB8Y3QpLGF0JiYoYj0wfFlrKGwsUm8sMTAsQSwwPT0oMHxhW1N0Pj4yXSk/MDptKSksZ2U9MCxSPTA7dDpmb3IoOygwfGdlKTwoMHxSbyk7KXtmb3Ioaz0wOyEoKDB8ayk+PSgwfGwpKTspX1tadCsoazw8Myk+PjNdPTAsaz1r''@;'; put 'put ''KzF8MDtmb3IoZj1IcisoKFJlPWdlKzF8MCk8PDIpfDAsSGU9MHxBcihnZSxsKSxNPTB8YVtIcisoZ2U8PDIpPj4yXTshKCgwfE0pPj0oMHxhW2Y+PjJdKSk7KXtrPTB8YVsoRz1FcisoTTw8Mil8MCk+PjJdO246ZG97aWYoKDB8aykhPSgwfGdlKSlmb3IoRD0rX2MoQSxsLGdlLGspKkV0LGs9''@;'; put 'put ''MDs7KXtpZigoMHxrKT49KDB8bCkpYnJlYWsgbjtwZT1EKigrX1tBKyhrK0hlPDwzKT4+M10tK19bQSsoKDB8QXIoMHxhW0c+PjJdLGwpKStrPDwzKT4+M10pLF9bKE9lPVp0KyhrPDwzKXwwKT4+M109K19bT2U+PjNdLXBlLGs9aysxfDB9fXdoaWxlKDApO009TSsxfDB9Zm9yKEc9ZnIrKFJl''@;'; put 'put ''PDwyKXwwLGY9MHxhW2ZyKyhnZTw8Mik+PjJdOyEoKDB8Zik+PSgwfGFbRz4+Ml0pKTspe2s9MHxhWyhxPURyKyhmPDwyKXwwKT4+Ml07bjpkb3tpZigoMHxrKSE9KDB8Z2UpKWZvcihEPStkdShBLGwsZ2UsayksTT1IbisoZjw8Myl8MCxwZT0xL0Qsaz0wOzspe2lmKCgwfGspPj0oMHxsKSli''@;'; put 'put ''cmVhayBuO29sPShvbD1ELShMMD0rX1tNPj4zXSkpKm9sKmt0KigrX1tBKyhrK0hlPDwzKT4+M10tK19bQSsoKDB8QXIoMHxhW3E+PjJdLGwpKStrPDwzKT4+M10pKnBlLF9bKE9lPVp0KyhrPDwzKXwwKT4+M109KEQ8TDA/b2w6LW9sKSsgK19bT2U+PjNdLGs9aysxfDB9fXdoaWxlKDApO2Y9''@;'; put 'put ''ZisxfDB9bjpkb3tpZihhdCl7aWYob0woYiwrX1tzdD4+M10sQSsoSGU8PDMpfDAsZ2UsbG8sVGEsWmEseGksRGwsSnIsdyksZj0wfGFbbG8+PjJdLDB8YVt3Pj4yXSlicmVhayBlO2ZvcihHPTB8YVtEbD4+Ml0scT0wfGFbeGk+PjJdLGdlPTB8YVtaYT4+Ml0saz0wOzspe2lmKCgwfGspPj0o''@;'; put 'put ''MHxmKSl7RD0wLGs9MDticmVhayBufWZvcihMMD0oTDA9K19bRysoazw8Myk+PjNdKT4xZS0xNT9MMDoxZS0xNSxiZT1xKyhrPDwzKXwwLE9lPTB8QXIoayxsKSxEPStxbCgrTDAsK2FuKSxEPTEvKHJ0P0wwKkwwOkQpLE09MDshKCgwfE0pPj0oMHxsKSk7KV9bKHhhPVp0KyhNPDwzKXwwKT4+''@;'; put 'put ''M109K19bYmU+PjNdKlNuKigrX1tBKyhNK0hlPDwzKT4+M10tK19bZ2UrKE0rT2U8PDMpPj4zXSkqRCsgK19beGE+PjNdLE09TSsxfDA7az1rKzF8MH19ZWxzZSBpZihXZSYwIT0oMHxhW1N0Pj4yXSkpZm9yKGs9MDs7KXtpZigoMHxrKT09KDB8Um8pKXtEPTAsaz0wO2JyZWFrIG59cjpkb3tp''@;'; put 'put ''ZigoMHxrKSE9KDB8Z2UpKWZvcihMMD0rZHUoQSxsLGdlLGspLGY9bSsoazw8Myl8MCxHPTB8QXIoayxsKSxEPStxbCgrTDAsK2FuKSxEPTEvKHJ0P0wwKkwwOkQpLE09MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgcjtfWyhPZT1adCsoTTw8Myl8MCk+PjNdPStfW2Y+PjNdKlNuKigrX1tB''@;'; put 'put ''KyhNK0hlPDwzKT4+M10tK19bQSsoTStHPDwzKT4+M10pKkQrICtfW09lPj4zXSxNPU0rMXwwfX13aGlsZSgwKTtrPWsrMXwwfWVsc2UgZm9yKGs9MDs7KXtpZigoMHxrKT09KDB8Um8pKXtEPTAsaz0wO2JyZWFrIG59cjpkb3tpZigoMHxrKSE9KDB8Z2UpKWZvcihMMD0rZHUoQSxsLGdlLGsp''@;'; put 'put ''LGY9MHxBcihrLGwpLEQ9K3FsKCtMMCwrYW4pLEQ9MS8ocnQ/TDAqTDA6RCksTT0wOzspe2lmKCgwfE0pPj0oMHxsKSlicmVhayByO19bKE9lPVp0KyhNPDwzKXwwKT4+M109KCtfW0ErKE0rSGU8PDMpPj4zXS0rX1tBKyhNK2Y8PDMpPj4zXSkqU24qRCsgK19bT2U+PjNdLE09TSsxfDB9fXdo''@;'; put 'put ''aWxlKDApO2s9aysxfDB9fXdoaWxlKDApO2Zvcig7ISgoMHxrKT49KDB8bCkpOylEPShMMD0rX1tadCsoazw8Myk+PjNdKSpMMCtELGs9aysxfDA7Uj0oRD0rRDAoK0QpKStSO246ZG97aWYoRD4wKWZvcihEPTEvRCxrPTA7Oyl7aWYoKDB8ayk+PSgwfGwpKXtrPTA7YnJlYWsgbn1fWyh4YT1a''@;'; put 'put ''dCsoazw8Myl8MCk+PjNdPStfW3hhPj4zXSpELGs9aysxfDB9ZWxzZSBrPTB9d2hpbGUoMCk7Zm9yKDs7KXtpZigoMHxrKT49KDB8bCkpe2dlPVJlO2NvbnRpbnVlIHR9X1soeGE9QSsoaytIZTw8Myl8MCk+PjNdPStfW3hhPj4zXSsgK19bWnQrKGs8PDMpPj4zXSpMZSxrPWsrMXwwfX1pZigw''@;'; put 'put ''fGImJmV2KGIpLCEoKDB8VmUpPCgwfGwwKSYoTGU9K01rKE9pLExlLFIscWUsVmkpKT5Mcikpe2dhPTcwO2JyZWFrfXFlPVJ9NzA9PSgwfGdhKSYmMHxhW3ArMTEyPj4yXSYmRWsobCx1cixBKSxGdChidCksKDB8dXIpIT0oMHxjKSYmUmEodXIpLEZ0KFp0KSxrPWI9MHxhW1phPj4yXX1lbHNl''@;'; put 'put ''IGFbdz4+Ml09LTEwMDswfGsmJkZ0KGIpLDB8KGI9MHxhW3hpPj4yXSkmJkZ0KGIpLDB8KGI9MHxhW0RsPj4yXSkmJkZ0KGIpfWxlPW9zfShwLGMsMHxhW2w+PjJdLDB8YVtsKzQ+PjJdLGYsbSx3KSwwfGFbdz4+Ml0/UHIoOTYxODQsOTU4MzEsMTI2Miw5NjE5MCk6bGU9QX1mdW5jdGlvbiBS''@;'; put 'put ''eChsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3PTAsYj0wO2FbKEF8PTApPj4yXT0wLEE9MHxhW2YrMTIwPj4yXTtlOmRve3N3aXRjaCgwfEEpe2Nhc2UgNTpjYXNlIDY6KDB8YVtjPj4yXSk+MiYmKFUxKGM9MHxEeChjLGwsMCxtLDYhPSgwfEEpJjEpLGwsbSks''@;'; put 'put ''Wl8oYykpO2JyZWFrO2Nhc2UgNDpmb3IoQT0wOzspe2lmKDE9PSgwfEEpKWJyZWFrIGU7ZlAoYj0wfEx4KGMsbCxmLG0pLGMscCxsLG0pLE94KGIpLEE9QSsxfDB9Y2FzZSAxOmY9MCx3PTY7YnJlYWs7Y2FzZSAyOmY9MSx3PTY7YnJlYWs7Y2FzZSAzOmY9Mix3PTZ9fXdoaWxlKDApO2U6ZG97''@;'; put 'put ''aWYoNj09KDB8dykpZm9yKEE9MDs7KXtpZigxPT0oMHxBKSlicmVhayBlO3ptKGI9MHxNeChjLGwsLjA1LG0sZiksbCxtLDUwLC4wMDEpLFE0KGIpLEE9QSsxfDB9fXdoaWxlKDApfWZ1bmN0aW9uIG1QKGwsYyxmLHAsbSxBLHcsYixrKXtsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTAsdz0rdyxi''@;'; put 'put ''fD0wLGt8PTA7dmFyIEcsTT0wLEQ9MCxSPTAscT0wLHBlPTA7Zm9yKEc9MHxRbihxPShmfD0wKTw8MykscT0wfFFuKHEpLEQ9MCxSPTA7KDB8RCk8KDB8cCk7KXtmb3Ioaz0wOyEoKDB8ayk+PSgwfGYpKTspcGU9KDB8QXIoayxwKSkrRHwwLF9bRysoazw8Myk+PjNdPStfW20rKHBlPDwzKT4+''@;'; put 'put ''M10sX1txKyhrPDwzKT4+M109K19bQSsocGU8PDMpPj4zXSxrPWsrMXwwO2ZvcihNPStOZChsLGMsZixHLHEsdyxiKSxrPTA7ISgoMHxrKT49KDB8ZikpOylfW0ErKCgwfEFyKGsscCkpK0Q8PDMpPj4zXT0rX1tHKyhrPDwzKT4+M10saz1rKzF8MDtEPUQrMXwwLFI9TStSfXJldHVybiBGdChH''@;'; put 'put ''KSxGdChxKSwrUn1mdW5jdGlvbiBOZChsLGMsZixwLG0sQSx3KXtwfD0wLG18PTAsQT0rQSx3fD0wO3ZhciBHLHBlLGdlLGJlLE9lLGI9MCxrPTAsTT0wLEQ9MCxSPTAscT0wLExlPTAsUmU9MDtmb3IoYmU9MHxhWzQrKGx8PTApPj4yXSxwZT0wfGFbNCsoY3w9MCk+PjJdLGI9MHxRbihnZT0o''@;'; put 'put ''Znw9MCk8PDMpLE09MHxRbihnZSksTGU9MHxRbihnZSksRD0wfFFuKGdlKSxSPTB8ZnVuY3Rpb24gX3gobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylfWyhtPWYrKHA8PDMpfDApPj4zXT0rX1tjKyhwPDwzKT4+M10tK19bbT4+M10s''@;'; put 'put ''cD1wKzF8MDtyZXR1cm4gMHxmfShmLG0sTT0wfG1pWzYzJmJlXShsLHAsTSkpLHE9KygwfGYpLEc9KE9lPStEMCgrICt5NShmLFIsUikpL3EpKkEscT0xL3EsUj0wLG09TGUsaz0xLEE9T2U7QT5HJigwfFIpPCgwfHcpOylBPSt5NShmLE0sYj0wfG1pWzYzJnBlXShjLE0sYikpLCgwfFIpPjA/''@;'; put 'put ''Q3goZixiLG0sQS9rKTpnbygwfG0sMHxiLDB8Z2UpLFBfKGYscCxtLGs9QS8reTUoZixtLFJlPTB8bWlbNjMmYmVdKGwsbSxEKSkpLExlPTB8UF8oZixNLFJlLC1rKSxSPVIrMXwwLGs9QSxEPVJlLEE9K0QwKCsgK3k1KGYsTGUsTGUpKSpxO3JldHVybiBGdChiKSxGdChNKSxGdChtKSxGdChE''@;'; put 'put ''KSwrQX1mdW5jdGlvbiBSMyhsLGMsZixwLG0sQSx3LGIpe3ZhciBrO3N3aXRjaChjfD0wLGZ8PTAscHw9MCxtPSttLEF8PTAsd3w9MCxrPTB8YVsobHw9MCk+PjJdLGFbKGJ8PTApPj4yXT0wLDB8dyl7Y2FzZSAwOnc9MHxmdW5jdGlvbiBiNShsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8UW4o''@;'; put 'put ''OCksYVtjPj4yXT1sLGFbYys0Pj4yXT0yNiwwfGN9KGwpLGI9MHxmdW5jdGlvbiBnUChsKXt2YXIgdyxrLE0sRCxSLGM9MCxmPTAscD0wLG09MCxBPTAsYj0wO3c9MHxhWyhsfD0wKT4+Ml0saz0wfGFbbCsyMD4+Ml0sTT0wfGFbbCsyND4+Ml0sRD0wfGFbbCsyOD4+Ml0sUj0wfFFuKDgpLGY9''@;'; put 'put ''MHxRbig4KyhhW2w+PjJdPDwzKXwwKSxhW1I+PjJdPWYsX1tmPj4zXT0rKDB8dyksZj1mKzh8MCxsPTA7ZTpmb3IoOyEoKDB8bCk+PSgwfHcpKTspZm9yKHA9ZisobDw8Myl8MCxfW3A+PjNdPTEsbT1sKzF8MCxBPTB8YVtrKyhtPDwyKT4+Ml0sYz0wfGFbaysobDw8Mik+PjJdOzspe2lmKCgw''@;'; put 'put ''fGMpPj0oMHxBKSl7bD1tO2NvbnRpbnVlIGV9KDB8bCk9PSgwfGFbTSsoYzw8Mik+PjJdKSYmKChiPStfW0QrKGM8PDMpPj4zXSk+PTA/YjotYik+MCYmKF9bcD4+M109MS9iKSxjPWMrMXwwfXJldHVybiBhW1IrND4+Ml09MjcsMHxSfShsKSxtPSttUCh3LGIsayxjLGYscCxtLEEsMCksZnVu''@;'; put 'put ''Y3Rpb24gZFAobCl7MHwobHw9MCkmJkZ0KGwpfSh3KSxmdW5jdGlvbiBIeChsKXtGdCgwfGFbKGx8PTApPj4yXSksMHxsJiZGdChsKX0oYik7YnJlYWs7Y2FzZSAxOihmdW5jdGlvbiBGaShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBnZSxiZSxPZSxMZSxSZSxI''@;'; put 'put ''ZSxWZSxxZSxydCxXZSxhdCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTA7Zm9yKGF0PWxlLGxlPWxlKzE2fDAsV2U9YXQscnQ9MHxRbihxZT0oVmU9MHxhWzQrKGx8PTApPj4yXSk8PDMpLE9lPTB8UW4ocWUpLExlPTB8UW4ocWUpLFJlPTB8YVtsKzIwPj4yXSxIZT0wfGFb''@;'; put 'put ''bCsyND4+Ml0sZ2U9MHxhW2wrMjg+PjJdLGJlPTB8YVsxNTcxMl0scGU9MDsoMHxwZSk8KDB8Yyk7KXtmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxWZSkpe2w9MDticmVha31xPSgwfEFyKEEsYykpK3BlfDAsX1tydCsoQTw8Myk+PjNdPStfW2YrKHE8PDMpPj4zXSxfW0xlKyhBPDwzKT4+M109''@;'; put 'put ''K19bcCsocTw8Myk+PjNdLEE9QSsxfDB9Zm9yKDs7KXtpZighKCgwfGwpPCgwfG0pKSl7QT0wO2JyZWFrfWZvcihEPTA7ISgoMHxEKT49KDB8VmUpKTspe2ZvcihxPTB8YVtSZSsoKEc9RCsxfDApPDwyKT4+Ml0sTT1SPTB8YVtSZSsoRDw8Mik+PjJdLGI9MCx3PTA7ISgoMHxNKT49KDB8cSkp''@;'; put 'put ''OylrPStfW2dlKyhNPDwzKT4+M10sKDB8KEE9MHxhW0hlKyhNPDwyKT4+Ml0pKT09KDB8RCk/dz1rOmI9K19bcnQrKEE8PDMpPj4zXSprK2IsTT1NKzF8MDswPT1iJiYoYVtXZT4+Ml09cS1SLFQwKGJlLDk2MjEyLFdlKSksX1tPZSsoRDw8Myk+PjNdPSgrX1tMZSsoRDw8Myk+PjNdLWIpL3cs''@;'; put 'put ''RD1HfWdvKDB8cnQsMHxPZSwwfHFlKSxsPWwrMXwwfWZvcig7ISgoMHxBKT49KDB8VmUpKTspX1twKygoMHxBcihBLGMpKStwZTw8Myk+PjNdPStfW3J0KyhBPDwzKT4+M10sQT1BKzF8MDtwZT1wZSsxfDB9RnQocnQpLEZ0KE9lKSxGdChMZSksbGU9YXR9KShsLGMsZixwLEEsMCksbT0wO2Jy''@;'; put 'put ''ZWFrO2RlZmF1bHQ6bT0wfXJldHVybittfWZ1bmN0aW9uIHZQKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgbSxBLHcsayxNLEQsUixwPTAsYj0wLEc9MDtmb3IoUj1sZSxsZT1sZSszMnwwLE09UisyMHwwLG09UisxNnwwLEE9UisxMnwwLHc9Uis4fDAsX1soaz1SKT4+M109MSxEPTB8UW4o''@;'; put 'put ''Yj1sPDwzKSxiPTB8UW4oYiksYz0wOyEoKDB8Yyk+PSgwfGwpKTspX1tEKyhjPDwzKT4+M109K19bZisoKHA9Yzw8MSk8PDMpPj4zXSxfW2IrKGM8PDMpPj4zXT0rX1tmKygoMXxwKTw8Myk+PjNdLGM9YysxfDA7Zm9yKGFbTT4+Ml09YywoMHxsKT4yP2Y9MHxmdW5jdGlvbiBhOWUobCxjLGYs''@;'; put 'put ''cCl7cmV0dXJuIGZ8PTAscHw9MCxwPWxlLGxlPWxlKzE2fDAsYVsoZj1wKT4+Ml09OTM2MzEsJHIoMSw5MzcwOSxmKSxsZT1wLDB9KDAsMCxsLHcpOihhW3c+PjJdPTAsZj0wKSxwPTB8dWMobCxsLDEsMSwyKSxjPTA7YVtNPj4yXT1jLCEoKDB8Yyk+PSgwfGFbdz4+Ml0pKTspYVttPj4yXT1h''@;'; put 'put ''W2YrKChHPWM8PDEpPDwyKT4+Ml0sYVtBPj4yXT1hW2YrKCgxfEcpPDwyKT4+Ml0sTzMocCwxLG0sQSxrKSxjPTErKDB8YVtNPj4yXSl8MDtmb3IoMj09KDB8bCkmJihhW20+PjJdPTAsYVtBPj4yXT0xLE8zKHAsMSxtLEEsaykpLGM9MDthW00+PjJdPWMsISgoMHxjKT49KDB8bCkpOylPMyhw''@;'; put 'put ''LDEsTSxNLGspLGM9MSsoMHxhW00+PjJdKXwwO3JldHVybiBsPTB8ZmoocCksUmEocCksRz0wfGFoKGwsMCksUmEobCksRnQoZiksRnQoRCksRnQoYiksbGU9UiwwfEd9ZnVuY3Rpb24gTngobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBBLGIsTSxwPTAsbT0wLHc9MCxrPTA7Zm9yKE09bGUs''@;'; put 'put ''bGU9bGUrMTZ8MCxBPU0rOHwwLF9bKHc9TSk+PjNdPTEsYj0wfFFuKGs9bDw8Myksaz0wfFFuKGspLHA9MDshKCgwfHApPj0oMHxsKSk7KW09MHxBcihwLGMpLF9bYisocDw8Myk+PjNdPStfW2YrKG08PDMpPj4zXSxfW2srKHA8PDMpPj4zXT0rX1tmKyhtKzE8PDMpPj4zXSxwPXArMXwwO2Zv''@;'; put 'put ''cihhW0E+PjJdPXAscD0wfGZ1bmN0aW9uIGw5ZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2U6ZG97c3dpdGNoKDB8Zil7Y2FzZSAyOnA9MHxRbigxNiksbT0wfFFuKDI0KSxhW20rOD4+Ml09MCxhW20rND4+Ml09cCxhW20+PjJdPTIsYVtwPj4yXT0wLGFbcCs0Pj4yXT0xLGFb''@;'; put 'put ''bSsxNj4+Ml09Zj1wKzh8MCxhW20rMjA+PjJdPTAsYVttKzEyPj4yXT0yLGFbZj4+Ml09MSxhW3ArMTI+PjJdPTA7YnJlYWs7Y2FzZSAxOnA9MHxRbig0KSxtPTB8UW4oMTIpLGFbbSs4Pj4yXT0wLGFbbSs0Pj4yXT1wLGFbbT4+Ml09MSxhW3A+PjJdPTA7YnJlYWs7ZGVmYXVsdDppZihvOWUo''@;'; put 'put ''MCwwLDApLGw9KDB8Zik+MCxwKXtpZighbCl7bT0wO2JyZWFrIGV9YmwoKX1lbHNle2lmKCFsKXttPTA7YnJlYWsgZX1ibCgpfX19d2hpbGUoMCk7cmV0dXJuIDB8bX0oYiwwLGwsMCksbT0wfHVjKGwsbCwxLDEsMiksYz0wOzspe2lmKGFbQT4+Ml09YywhKCgwfGMpPCgwfGwpKSl7Yz0wO2Jy''@;'; put 'put ''ZWFrfWZvcihmPTE7ISgoMHxmKT49KDB8YVtwKygxMipjfDApPj4yXSkpOylPMyhtLDEsQSwoMHxhW3ArKDEyKmN8MCkrND4+Ml0pKyhmPDwyKXwwLHcpLGY9ZisxfDAsYz0wfGFbQT4+Ml07Yz1jKzF8MH1mb3IoO2FbQT4+Ml09YywhKCgwfGMpPj0oMHxsKSk7KU8zKG0sMSxBLEEsdyksYz0x''@;'; put 'put ''KygwfGFbQT4+Ml0pfDA7cmV0dXJuIHc9MHxhaCgwfGZqKG0pLDApLFJhKG0pLEZ0KGIpLEZ0KGspLGZ1bmN0aW9uIHM5ZShsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbCs0Pj4yXSkmJkZ0KGMpLDB8KGM9MHxhW2wrOD4+Ml0pJiZGdChjKSxGdChsKSl9KHApLGxlPU0sMHx3fWZ1''@;'; put 'put ''bmN0aW9uIFp4KGwsYyxmKXtmfD0wO3ZhciBtLHA9MCxBPTAsdz0wLGI9MDtmb3IoQT0wfGFbKG09KGx8PTApKygyMCooY3w9MCl8MCl8MCk+PjJdLHc9MHxhW2wrKDIwKmN8MCkrND4+Ml0scD0wOzspe2lmKCgwfHApPj0oMHxBKSl7Yj00O2JyZWFrfWlmKCgwfGFbdysocDw8Mik+PjJdKT09''@;'; put 'put ''KDB8ZikpYnJlYWs7cD1wKzF8MH00PT0oMHxiKSYmKGFbbT4+Ml09QSsxLGFbdysoQTw8Mik+PjJdPWYsdz0wfGFbbCsoMjAqZnwwKSs0Pj4yXSxhWyhBPWwrKDIwKmZ8MCl8MCk+PjJdPTErKGI9MHxhW0E+PjJdKSxhW3crKGI8PDIpPj4yXT1jLDB8YVtsKzg+PjJdKSYmKGpuWyhiPTB8YVts''@;'; put 'put ''KygyMCpjfDApKzg+PjJdKT4+Ml09K2puW2I+PjJdLTEsam5bKGI9MHxhW2wrKDIwKmZ8MCkrOD4+Ml0pPj4yXT0ram5bYj4+Ml0tMSl9ZnVuY3Rpb24geVAobCxjKXtjfD0wO3ZhciBmLHA9MDtyZXR1cm4gMHxhWyhmPTQrKGx8PTApfDApPj4yXT8oYVtjPj4yXT1hWyhwPTB8YVtsPj4yXSk+''@;'; put 'put ''PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0sYVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJdPWFbcCsxMj4+Ml0sYVsoYz0wfGFbbD4+Ml0pPj4yXT1hWyhwPWMrKCgwfGFbZj4+Ml0pLTE8PDQpfDApPj4yXSxhW2MrND4+Ml09YVtwKzQ+PjJdLGFbYys4Pj4yXT1hW3ArOD4+Ml0sYVtjKzEy''@;'; put 'put ''Pj4yXT1hW3ArMTI+PjJdLGFbZj4+Ml09KDB8YVtmPj4yXSktMSxfNShsLDApLGw9MSk6bD0wLDB8bH1mdW5jdGlvbiB6eChsLGMpe2N8PTA7dmFyIE0sRCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKEQ9bGUsbGU9bGUrMTZ8MCxNPUQsKDB8KEE9MHxhWyhiPTQrKGx8PTApfDAp''@;'; put 'put ''Pj4yXSkpPT0oMHxhWyhmPWwrOHwwKT4+Ml0pPyhhW2Y+PjJdPUE8PDEsZj0wfFVhKDB8YVtsPj4yXSxBPDw1KSxhW2w+PjJdPWYsaz1sLHc9MHxhW2I+PjJdKTooaz1sLHc9QSxmPTB8YVtsPj4yXSksYVtiPj4yXT13KzEsYVsoYj1mKyhBPDw0KXwwKT4+Ml09YVtjPj4yXSxhW2IrND4+Ml09''@;'; put 'put ''YVtjKzQ+PjJdLGFbYis4Pj4yXT1hW2MrOD4+Ml0sYVtiKzEyPj4yXT1hW2MrMTI+PjJdOyEoKDB8QSk8PTApOyl7aWYoISgocD0rX1soZj0wfGFbaz4+Ml0pKyhBPDw0KSs4Pj4zXSk8KG09K19bZisoKGw9QT4+PjEpPDw0KSs4Pj4zXSkpKXtpZihwIT1tfHwhKDEmKDB8VDEoKSkpKWJyZWFr''@;'; put 'put ''O2Y9MHxhW2s+PjJdfWFbTT4+Ml09YVsoYj1mKyhBPDw0KXwwKT4+Ml0sYVtNKzQ+PjJdPWFbYis0Pj4yXSxhW00rOD4+Ml09YVtiKzg+PjJdLGFbTSsxMj4+Ml09YVtiKzEyPj4yXSxhW2I+PjJdPWFbKGM9ZisobDw8NCl8MCk+PjJdLGFbYis0Pj4yXT1hW2MrND4+Ml0sYVtiKzg+PjJdPWFb''@;'; put 'put ''Yys4Pj4yXSxhW2IrMTI+PjJdPWFbYysxMj4+Ml0sYVsoYj0oMHxhW2s+PjJdKSsobDw8NCl8MCk+PjJdPWFbTT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSxBPWx9bGU9RH1mdW5jdGlvbiBfNShsLGMpe2N8PTA7dmFy''@;'; put 'put ''IHcsYixNLGY9MCxwPTAsbT0wLEE9MCxrPTAsRD0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsdz1NLGI9NCsobHw9MCl8MDs7KXtBPTF8KGY9Yzw8MSksKDB8Zik8KDB8YVtiPj4yXSkmJigocD0rX1soRD0wfGFbbD4+Ml0pKyhmPDw0KSs4Pj4zXSk8KG09K19bRCsoYzw8NCkrOD4+M10pfHxwPT1t''@;'; put 'put ''JiYwIT0oMSYoMHxUMSgpKXwwKSl8fChrPTYpLDY9PSgwfGspJiYoaz0wLGY9Yyk7ZG97aWYoKDB8QSk8KDB8YVtiPj4yXSkpe2lmKCEoKHA9K19bKEQ9MHxhW2w+PjJdKSsoQTw8NCkrOD4+M10pPChtPStfW0QrKGY8PDQpKzg+PjNdKXx8cD09bSYmMSYoMHxUMSgpKSkpYnJlYWs7Zj1BfX13''@;'; put 'put ''aGlsZSgwKTtpZigoMHxmKT09KDB8YykpYnJlYWs7YVt3Pj4yXT1hWyhEPShBPTB8YVtsPj4yXSkrKGY8PDQpfDApPj4yXSxhW3crND4+Ml09YVtEKzQ+PjJdLGFbdys4Pj4yXT1hW0QrOD4+Ml0sYVt3KzEyPj4yXT1hW0QrMTI+PjJdLGFbRD4+Ml09YVsoQT1BKyhjPDw0KXwwKT4+Ml0sYVtE''@;'; put 'put ''KzQ+PjJdPWFbQSs0Pj4yXSxhW0QrOD4+Ml09YVtBKzg+PjJdLGFbRCsxMj4+Ml09YVtBKzEyPj4yXSxhWyhEPSgwfGFbbD4+Ml0pKyhjPDw0KXwwKT4+Ml09YVt3Pj4yXSxhW0QrND4+Ml09YVt3KzQ+PjJdLGFbRCs4Pj4yXT1hW3crOD4+Ml0sYVtEKzEyPj4yXT1hW3crMTI+PjJdLGM9Zn1s''@;'; put 'put ''ZT1NfWZ1bmN0aW9uIEd4KGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLGY9K2YscD0rcCxBfD0wLHd8PTAsYnw9MDt2YXIgTSxrPTAsRD0wLFI9MDtpZigoTT0wIT0oMHwobXw9MCkpKT9EPTM6MHxCMmUobCxjLG09MHxRbihjPDwzKSxjKT8obD0xLEQ9MTcpOkQ9MywzPT0oMHxEKSl7Zm9y''@;'; put 'put ''KGs9MHx2cihjPDwyKSxhW0E+PjJdPWssbD0wOyEoKDB8bCk+PSgwfGMpKTspYVtrKyhsPDwyKT4+Ml09bCxsPWwrMXwwO2ZvcihRNyhtLGssMCxsPWMrLTF8MCkscD0ocD0oK19bbSsoYVtrKyhsPDwyKT4+Ml08PDMpPj4zXS0oUj0rX1ttKyhhW2s+PjJdPDwzKT4+M10pKSpwLysoMHxsKSk8''@;'; put 'put ''Zj9mOnAsbD0wLEE9MSxmPVI7ISgoMHxBKT49KDB8YykpOylsPWwrKChSPStfW20rKGFbaysoQTw8Mik+PjJdPDwzKT4+M10pLWY+cCYxKXwwLEE9QSsxfDAsZj1SO2FbYj4+Ml09bDtlOmRve2lmKGwpZm9yKGI9MHxRbihsPDwyKSxhW3c+PjJdPWIsbD0wLEE9MTs7KXtpZigoMHxBKT49KDB8''@;'; put 'put ''YykpYnJlYWsgZTsrX1ttKyhhW2srKEE8PDIpPj4yXTw8Myk+PjNdLStfW20rKGFbaysoQSstMTw8Mik+PjJdPDwzKT4+M10+cCYmKGFbYisobDw8Mik+PjJdPUEsbD1sKzF8MCksQT1BKzF8MH1lbHNlIGs9MHxRbig0KSxhW3c+PjJdPWssYVtrPj4yXT1jfXdoaWxlKDApO00/bD0wOihsPTAs''@;'; put 'put ''RD0xNyl9cmV0dXJuIDE3PT0oMHxEKSYmRnQobSksMHxsfWZ1bmN0aW9uIFd4KGwsYyl7bHw9MCxjfD0wO3ZhciBSLEcscSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxwZT0wO2ZvcigwfChmPTB8YVs0NjkzMF0pJiZCNyhmKSxhWzQ2OTMwXT0wfGNnKGMsYywwKSwwfChm''@;'; put 'put ''PTB8YVs0NjkzMV0pJiZGdChmKSxhWzQ2OTMxXT0wfHZyKGM8PDIpLDB8KGY9MHxhWzQ2OTMyXSkmJkZ0KGYpLFI9MHx2cihjPDwzKSxhWzQ2OTMyXT1SLEc9MHxhWzQ2OTMwXSxxPTB8YVs0NjkzMV0sdz0wOzspe2lmKCgwfHcpPj0oMHxjKSl7cD0xMDticmVha31mb3IocD1sKyh3PDwyKXww''@;'; put 'put ''LEE9Rysodzw8Mil8MCxtPTAsZj0wOygwfGYpIT0oMHxjKTspX1soMHxhW0E+PjJdKSsoZjw8Myk+PjNdPWI9K19bKDB8YVtwPj4yXSkrKGY8PDMpPj4zXSxtPW08KGI9K2VvKCtiKSk/YjptLGY9ZisxfDA7aWYoMD09bSl7cD0xNTticmVha31fW1IrKHc8PDMpPj4zXT0xL20sYVtxKyh3PDwy''@;'; put 'put ''KT4+Ml09dyx3PXcrMXwwfWU6ZG97aWYoMTA9PSgwfHApKXtEPWMrLTF8MCxmPTAsTT0wO3Q6Zm9yKDsoMHxNKTwoMHxEKTspe2ZvcihwPU0saz1mLG09MDshKCgwfHApPj0oMHxjKSk7KWI9K2VvKCsgK19bKDB8YVtHKygobD0wfGFbcSsocDw8Mik+PjJdKTw8Mik+PjJdKSsoTTw8Myk+PjNd''@;'; put 'put ''KSx3PShsPW08KGIqPStfW1IrKGw8PDMpPj4zXSkpP3A6ayxwPXArMXwwLGs9dyxtPWw/YjptO2lmKDA9PW0pe2Y9MDticmVhayBlfWZvcihmPXErKE08PDIpfDAsKDB8aykhPSgwfE0pJiYodz0wfGFbZj4+Ml0sYVtmPj4yXT1hWyhsPXErKGs8PDIpfDApPj4yXSxhW2w+PjJdPXcpLG09MS8r''@;'; put 'put ''X1soQT0wfGFbRysoYVtmPj4yXTw8Mik+PjJdKSsoTTw8Myk+PjNdLHA9bD1NKzF8MDs7KXtpZigoMHxwKT49KDB8Yykpe2Y9ayxNPWw7Y29udGludWUgdH1fWyhmPSh3PTB8YVtHKyhhW3ErKHA8PDIpPj4yXTw8Mik+PjJdKSsoTTw8Myl8MCk+PjNdPWI9K19bZj4+M10qbTtuOmRve2lmKDAh''@;'; put 'put ''PWIpZm9yKGY9bDs7KXtpZigoMHxmKT49KDB8YykpYnJlYWsgbjtfWyhwZT13KyhmPDwzKXwwKT4+M109K19bcGU+PjNdLStfW0ErKGY8PDMpPj4zXSpiLGY9ZisxfDB9fXdoaWxlKDApO3A9cCsxfDB9fWY9MCE9K19bKDB8YVtHKyhhW3ErKEQ8PDIpPj4yXTw8Mik+PjJdKSsoRDw8Myk+PjNd''@;'; put 'put ''JjF9ZWxzZSAxNT09KDB8cCkmJihfW1IrKHc8PDMpPj4zXT0wLGY9MCl9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiB3UChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGssTSxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihrPTB8YVs0NjkzMF0sTT0wfGFbNDY5MzFdLGI9MDs7KXtpZigo''@;'; put 'put ''MHxiKT49KDB8Zikpe3A9ZjticmVha31mb3Iodz1rKygoQT0wfGFbTSsoYjw8Mik+PjJdKTw8Mil8MCxtPTAscD0wOygwfHApIT0oMHxiKTspbT0rX1tsKyhwPDwzKT4+M10qK19bKDB8YVt3Pj4yXSkrKHA8PDMpPj4zXSttLHA9cCsxfDA7X1tsKyhiPDwzKT4+M109K19bYysoQTw8Myk+PjNd''@;'; put 'put ''LW0sYj1iKzF8MH1mb3IoO2M9cCstMXwwLCEoKDB8cCk8PTApOyl7Zm9yKEE9TSsoYzw8Mil8MCxtPTA7ISgoMHxwKT49KDB8ZikpOyltPStfW2wrKHA8PDMpPj4zXSorX1soMHxhW2srKGFbQT4+Ml08PDIpPj4yXSkrKHA8PDMpPj4zXSttLHA9cCsxfDA7X1socD1sKyhjPDwzKXwwKT4+M109''@;'; put 'put ''KCtfW3A+PjNdLW0pLytfWygwfGFbaysoYVtBPj4yXTw8Mik+PjJdKSsoYzw8Myk+PjNdLHA9Y319ZnVuY3Rpb24gR18obCl7dmFyIGM7cmV0dXJuIGx8PTAsYz0wfFFuKDgpLGFbYz4+Ml09bCxhW2MrND4+Ml09MCwwfGN9ZnVuY3Rpb24gV18obCxjKXtjfD0wO3ZhciBmPTAscD0wO2lmKDB8''@;'; put 'put ''KGx8PTApKWRve2Y9bCxsPTB8YVtsKzQ+PjJdLDB8KHA9MHxhW2Y+PjJdKSYmQ29bMTI3JmNdKHApLEZ0KGYpfXdoaWxlKDAhPSgwfGwpKX1mdW5jdGlvbiBrQShsLGMpe3JldHVybiBsfD0wLGM9MHxHXyhjfD0wKSxhW2MrND4+Ml09bCwwfGN9ZnVuY3Rpb24gTHUobCl7cmV0dXJuIDB8YVso''@;'; put 'put ''bHw9MCk+PjJdfWZ1bmN0aW9uIEdtKGwpe3JldHVybiAwfGFbNCsobHw9MCk+PjJdfWZ1bmN0aW9uIFl0KGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHxRbigxMiksYVtjPj4yXT1sLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLDB8Y31mdW5jdGlvbiBqaShsLGMpe2N8PTA7dmFyIGY9MCxwPTA7''@;'; put 'put ''aWYoMHwobHw9MCkpZG97Zj1sLGw9MHxhW2wrND4+Ml0sMHwocD0wfGFbZj4+Ml0pJiZDb1sxMjcmY10ocCksRnQoZil9d2hpbGUoMCE9KDB8bCkpfWZ1bmN0aW9uIGtmKGwsYyxmKXtmfD0wO3ZhciBwPTAsbT0wLEE9MDswfChsfD0wKSYmKHA9MHxhW2wrND4+Ml0sbT0wfGFbbCs4Pj4yXSww''@;'; put 'put ''fChBPTB8YVtsPj4yXSkmJkNvWzEyNyYoY3w9MCldKEEpLEZ0KGwpLDB8cCYmKGFbcCs4Pj4yXT1tKSxhWygwfG0/bSs0fDA6Zik+PjJdPXApfWZ1bmN0aW9uIFNBKGwpe2FbKGx8PTApPj4yXT0wLGFbbCs0Pj4yXT0wfWZ1bmN0aW9uIFlfKGwpe3ZhciBjO3JldHVybiBsfD0wLFNBKDM2Kyhj''@;'; put 'put ''PTB8dnIoNjQpKXwwKSxhW2MrOD4+Ml09bCwwfGN9ZnVuY3Rpb24gVXgobCl7cmV0dXJuIDB8R28oMHxhWzgrKGx8PTApPj4yXSl9ZnVuY3Rpb24gVV8obCxjKXt2YXIgZixwO2x8PTAsYVs0KyhjfD0wKT4+Ml09MCxhWygwPT0oMHwocD0wfGFbKGY9bCs0fDApPj4yXSkpP2w6cCs0fDApPj4y''@;'; put 'put ''XT1jLGFbZj4+Ml09Y31mdW5jdGlvbiBRXyhsLGMpe3ZhciBmO2N8PTAsKGY9MHxhWyhsfD0wKT4+Ml0pP2FbYys0Pj4yXT1mOihhW2w+PjJdPWMsbD1sKzR8MCksYVtsPj4yXT1jfWZ1bmN0aW9uIFF4KGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0w''@;'; put 'put ''LE09MCxEPTA7Zm9yKGFbKEQ9OCsoZnw9MCl8MCk+PjJdPTErKE09MHxhW0Q+PjJdKSxhWzE2KygwfGFbMTEyKygwfGFbKEQ9YysxNnwwKT4+Ml0pPj4yXSkrND4+Ml09TSxhWzI0KygwfGFbMTEyKygwfGFbRD4+Ml0pPj4yXSk+PjJdPU0sTT0wPT0oMHxwKSxrPTB8TXMobCxjKTtrOyl7KDB8''@;'; put 'put ''KEE9MHxhWygyPT0oMHwocD0zJmFbaz4+Ml0pKT9rOmsrLTQ4fDApKzQwPj4yXSkpPT0oMHxjKT8ocD0wfGFbKDM9PSgwfHApP2s6ays0OHwwKSs0MD4+Ml0sMHxhWyhBPTB8YVsxMjArKDB8YVtrKzE2Pj4yXSk+PjJdKT4+Ml18fChhW0E+PjJdPS0xKSk6KDB8YVsocD0wfGFbMTIwKygwfGFb''@;'; put 'put ''aysxNj4+Ml0pPj4yXSk+PjJdfHwoYVtwPj4yXT0xKSxwPUEpLGI9MHxhWzE2Kyh3PTB8YVsxMTIrKDB8YVsoQT1wKzE2fDApPj4yXSk+PjJdKSs0Pj4yXTtkb3tpZihiKSgwfGFbOCsoQT0wfGFbMTEyKygwfGFbRD4+Ml0pPj4yXSk+PjJdKSE9KDB8cCkmJihhWyh3PUErMjR8MCk+PjJdPSgw''@;'; put 'put ''fChBPTB8YVt3Pj4yXSkpPCgwfGIpP0E6Yik7ZWxzZSBpZihhW3crOD4+Ml09YyxDUChtLGspLFF4KGwscCxmLDAsbSksYVsoYj0yNCsoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pfDApPj4yXT1hWzI0KygwfGFbMTEyKygwfGFbKCgwfGFbYj4+Ml0pPCgwfGFbMjQrKDB8YVsxMTIrKDB8YVtB''@;'; put 'put ''Pj4yXSk+PjJdKT4+Ml0pP2M6cCkrMTY+PjJdKT4+Ml0pPj4yXSwoMHxhWzI0KygwfGFbMTEyKygwfGFbQT4+Ml0pPj4yXSk+PjJdKT49KDB8YVsxNisoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pKzQ+PjJdKSl7cD0wO2Rve3c9MHxrUChtKSwwfGFbMTIrKDB8YVsxMTIrKDB8YVsxNisoQT0w''@;'; put 'put ''fGFbKCgzJmFbdz4+Ml18MCk9PSgwfCgoQT0xPT0oMHxhW2FbMTIwKygwfGFbdysxNj4+Ml0pPj4yXT4+Ml0pKT8yOjMpKT93OncrKDQ4KihBPy0xOjEpfDApfDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4yXXx8KHB8fChwPTB8SngobCxmKSksSl8ocCxBKSl9d2hpbGUoKDB8dykhPSgwfGspKTtp''@;'; put 'put ''ZigwfHApe2lmKDA9PSgwfGFbMTIrKDB8YVsxMTIrKDB8YVtEPj4yXSk+PjJdKT4+Ml0pJiYoMHxVeChwKSk+MSYmSl8ocCxjKSwhTSYmKDB8YVsxMisoMHxhWzExMisoMHxhW0Q+PjJdKT4+Ml0pPj4yXSk9PSgwfHApKXtRXyhmLHApO2JyZWFrfVVfKGYscCl9fX13aGlsZSgwKTtrPTB8VnMo''@;'; put 'put ''bCxrLGMpfSFNJiYwPT0oMHxhWzEyKygwfGFbMTEyKygwfGFbRD4+Ml0pPj4yXSk+PjJdKSYmKEpfKEQ9MHxKeChsLGYpLGMpLFFfKGYsRCkpfWZ1bmN0aW9uIENQKGwsYyl7YVs0KygwfGFbMTIwKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+Ml09YVsobHw9MCk+PjJdLGFbbD4+Ml09Yyxh''@;'; put 'put ''WyhjPWwrNHwwKT4+Ml09MSsoMHxhW2M+PjJdKX1mdW5jdGlvbiBrUChsKXt2YXIgYyxmLHA7cmV0dXJuKGM9MHxhWyhsfD0wKT4+Ml0pfHxQcigxMzgzOTQsOTYyNTQsNjUsOTYyNjYpLCgwfChwPTB8YVsoZj1sKzR8MCk+PjJdKSk+MD8oYVtsPj4yXT1hWzQrKDB8YVsxMjArKDB8YVtjKzE2''@;'; put 'put ''Pj4yXSk+PjJdKT4+Ml0sYVtmPj4yXT1wKy0xLDB8Yyk6KFByKDk2MjQ0LDk2MjU0LDYxLDk2MjY2KSwwKX1mdW5jdGlvbiBKeChsLGMpe3JldHVybiAwfFlfKDB8ZnVuY3Rpb24gU1AobCxjKXtsfD0wO3ZhciBmLHAsbSxBO3JldHVybiBmPWxlLGxlPWxlKzE0NHwwLG09ZixwPWYrOHwwLGFb''@;'; put 'put ''KEE9MTIrKGN8PTApfDApPj4yXT0xKyhjPTB8YVtBPj4yXSksYVttPj4yXT1jLG9vKHAsOTYyMzQsbSksaDAoYz0wfHBzKGwscCwxKSwxMzc0ODMsMjgwLDEpLGxlPWYsMHxjfShsfD0wLGN8PTApKX1mdW5jdGlvbiBKXyhsLGMpe1luKDB8YVs4KyhsfD0wKT4+Ml0sY3w9MCwxKSxhWzEyKygw''@;'; put 'put ''fGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjJdPWx9ZnVuY3Rpb24gWHgobCl7dmFyIGM9MCxmPTA7Zm9yKGM9MHxhWzM2KyhsfD0wKT4+Ml07YzspZj0wfGFbYys0Pj4yXSxYeChjKSxjPWY7IWZ1bmN0aW9uIFl4KGwpezB8KGx8PTApJiYoWW0oMHxhW2wrMzI+PjJdKSxGdChsKSl9KGwp''@;'; put 'put ''fWZ1bmN0aW9uIEt4KGwsYyxmKXtsfD0wLGY9K2Y7dmFyIHA9MCxtPTAsQT0wLHc9MDtmb3IocD0zNisoY3w9MCl8MCxtPTA7cD0wfGFbcD4+Ml07KUt4KGwscCxmKSxwPXArNHwwLG09bSsxfDA7cD0wfGZ1bmN0aW9uIEM1KGwsYyxmKXtmPStmO3ZhciBBLHcsYixrLE0scD0wLG09MCxEPTAs''@;'; put 'put ''Uj0wLEc9MDtmb3IoRD0wfGFbOCsoY3w9MCk+PjJdLGZ1bmN0aW9uIE5oKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wO2ZvcihmPTB8RHQobT0wfGFbOCsoY3w9MCk+PjJdKTtmOyl7Zm9yKHA9MHx3MChsLGYpO3A7KSgwfGFbMTIrKDB8YVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW3A+PjJd''@;'; put 'put ''fDApP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJdKT09KDB8YykmJlpkKG0scCwxKSxwPTB8UzAobCxwKTtmPTB8enQobSxmKX19KGx8PTAsYyksTT0wfGZ1bmN0aW9uIHFfKGwpe3ZhciBtLHcsTSxjPTAsZj0wLHA9MCxBPTAsYj0wLGs9MDtmb3IoTT1sZSxsZT1sZSsxNnwwLG09''@;'; put 'put ''MHxmdW5jdGlvbiBEUChsLGMpe2x8PTAsY3w9MDt2YXIgayxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wO2ZvcihrPWxlLGxlPWxlKzE0NHwwLGI9ays4fDAsdz1rLGY9aysxNnwwLGFbNDY5MzRdPTErKEE9MHxhWzQ2OTM0XSksYVt3Pj4yXT1BLG9vKGYsOTYzMTIsdyksaDAodz0w''@;'; put 'put ''fHBzKGwsZiwxKSwxMzc0ODMsMjgwLDEpLGFbNDY5MzRdPTErKEE9MHxhWzQ2OTM0XSksYVtiPj4yXT1BLG9vKGYsOTYzMTIsYiksZmVbYj4+MF09MHxmZVsoQT1sKzI0fDApPj4wXSxmZVtiKzE+PjBdPTB8ZmVbQSsxPj4wXSxmZVtiKzI+PjBdPTB8ZmVbQSsyPj4wXSxmZVtiKzM+PjBdPTB8''@;'; put 'put ''ZmVbQSszPj4wXSxiPTB8b2MoZixiLDApLGY9MHxEdChsKTtmOylZbih3LGYsMSksaDAoQT0wfEdyKGIsMHx0aShmKSwxKSwxMzc0NDcsMzA0LDEpLGFbMTYrKDB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml09QSxmPTB8enQobCxmKTtmb3IocD0wfER0KGwpO3A7KXtmb3IoQT0xNiso''@;'; put 'put ''bT0wfGFbMTYrKDB8YVsxMTIrKDB8YVtwKzE2Pj4yXSk+PjJdKT4+Ml0pfDAsZj0wfHcwKGwscCk7ZjspWmQodyxmLDEpLGgwKEQ9MHxLYShiLG0sTT0wfGFbMTYrKDB8YVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjJd''@;'; put 'put ''LDAsMSksMTM3NDYwLDE3NiwxKSxhWzExNisoMHxhW0QrMTY+PjJdKT4+Ml09ZixhWyhEPTIzNisoMHxhW0E+PjJdKXwwKT4+Ml09MSsoMHxhW0Q+PjJdKSxhWyhNPTIzNisoMHxhW00rMTY+PjJdKXwwKT4+Ml09MSsoMHxhW00+PjJdKSxmPTB8UzAobCxmKTtwPTB8enQobCxwKX1yZXR1cm4g''@;'; put 'put ''YVtjPj4yXT1iLGxlPWssMHx3fShsfD0wLEE9TSksYj0wfEdvKEE9MHxhW0E+PjJdKSx3PTB8ZnVuY3Rpb24gTFAobCl7bHw9MDt2YXIgZixjPTA7Zm9yKGY9MHxmdW5jdGlvbiBPUCgpe3JldHVybiAwfGlzKDE4MjQwLDB8YVs0NTgxXSl9KCksYz0wfER0KGwpO2M7KU01KGYsYyksYz0wfHp0''@;'; put 'put ''KGwsYyk7cmV0dXJuIDB8Zn0oQSksYj1iKy0zfDAscD0wOyEoKDB8cCk+PSgwfGIpKTspe2ZvcihmPTB8TXMoQSxrPTB8UlAodykpO2Y7KSgwfGspPT0oMHwobD0wfGFbKDI9PSgwfChjPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKSkmJihsPTB8YVsoMz09KDB8Yyk/ZjpmKzQ4fDAp''@;'; put 'put ''KzQwPj4yXSksYVQodyxsKSxmPTB8VnMoQSxmLGspO2ZvcihTNShBLGssbSksZj0wfE1zKEEsayk7ZjspKDB8ayk9PSgwfChsPTB8YVsoMj09KDB8KGM9MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0MD4+Ml0pKSYmKGw9MHxhWygzPT0oMHxjKT9mOmYrNDh8MCkrNDA+PjJdKSxhWyhjPTIzNiso''@;'; put 'put ''MHxhW2wrMTY+PjJdKXwwKT4+Ml09KDB8YVtjPj4yXSktMSxNNSh3LGwpLGY9MHxWcyhBLGYsayk7b2koQSxrKSxwPXArMXwwfXJldHVybiBDMShBKSxmdW5jdGlvbiBWZChsKXtObChsfD0wKX0odyksbGU9TSwwfG19KEQpLGw9MHxmdW5jdGlvbiBrNShsKXt2YXIgYz0wLGY9MCxwPTAsbT0w''@;'; put 'put ''LEE9MDtpZigxIT0oMHxHbyhsfD0wKSkpe2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTAscD0wfE1zKGwsZik7cDspYz1jKzF8MCxwPTB8VnMobCxwLGYpOzE9PSgwfGMpJiZNbyhmLGYsMCwwKSxmPTB8enQobCxmKX1mb3IoYz0wLG09MCxmPTB8RHQobCk7ZjspYz0ocD0oMHwoQT0oMHxhWzMy''@;'; put 'put ''KyhBPTB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml0pKygwfGFbQSsxNisxMj4+Ml0pfDApKT4oMHxjKSk/QTpjLG09cD9mOm0sZj0wfHp0KGwsZik7Zm9yKGM9MHxXbSgpLGY9MTYrKDB8YVsxMTIrKDB8YVsocD1tKzE2fDApPj4yXSk+PjJdKSs0fDA7KDB8KGY9MHxhW2Y+PjJdKSkh''@;'; put 'put ''PSgwfG0pOylIaChjLDAsZiksYVsoQT00KyhmPTB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MTZ8YVtBPj4yXSxmPWYrMTZ8MDtpZihIaChjLDAsbSksYVsobD00KyhBPTB8YVsxMTIrKDB8YVtwPj4yXSk+PjJdKXwwKT4+Ml09MTZ8YVtsPj4yXSwwfGFbQSszMj4+Ml0pe2Zv''@;'; put 'put ''cihsPTB8V20oKSxmPTI0KygwfGFbMTEyKygwfGFbcD4+Ml0pPj4yXSl8MDsoMHwoZj0wfGFbZj4+Ml0pKSE9KDB8bSk7KUhoKGwsMCxmKSxhWyhBPTQrKGY9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXT0xNnxhW0E+PjJdLGY9ZisxNnwwOyFmdW5jdGlvbiAkXyhsLGMpeyhm''@;'; put 'put ''dW5jdGlvbiBCMyhsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wOzB8KGY9MHxhWyhjfD0wKT4+Ml0pJiYoYVs0KyhtPTB8YVsocD1sKzR8MCk+PjJdKT4+Ml09ZixhW2YrOD4+Ml09bSxhW3A+PjJdPWFbYys0Pj4yXSxhWyhmPWwrOHwwKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtjKzg+PjJdKSl9''@;'; put 'put ''KShsfD0wLDB8ZnVuY3Rpb24gS18obCl7dmFyIGYsYz0wLHA9MCxtPTAsQT0wO2ZvcihmPWM9MHxhWyhsfD0wKT4+Ml07YzspcD0wfGFbKEE9Yys0fDApPj4yXSxhW0E+PjJdPWFbKG09Yys4fDApPj4yXSxhW20+PjJdPXAsYz1wO3JldHVybiBBPTB8YVsobT1sKzR8MCk+PjJdLGFbbT4+Ml09''@;'; put 'put ''ZixhW2w+PjJdPUEsMHxsfShjfD0wKSksRnQoYyl9KGMsbCl9fWVsc2UgSGgoYz0wfFdtKCksMCxBPTB8RHQobCkpLGFbKEE9NCsoMHxhWzExMisoMHxhW0ErMTY+PjJdKT4+Ml0pfDApPj4yXT0xNnxhW0E+PjJdO3JldHVybiAwfGN9KDB8ZnVuY3Rpb24gZUMobCl7bHw9MDt2YXIgbSxjPTAs''@;'; put 'put ''Zj0wLHA9MDtmb3IobT1sZSxsZT1sZSsxNDR8MCxjPW0scD1tKzh8MCxhWzQ2OTMzXT0xKyhmPTB8YVs0NjkzM10pLGFbYz4+Ml09ZixvbyhwLDk2MzAzLGMpLGgwKHA9MHxwcyhsLHAsMSksMTM3NDgzLDI4MCwxKSxjPTB8RHQobCk7YzspWW4ocCxjLDEpLGFbMTYrKDB8YVsxMTIrKDB8YVso''@;'; put 'put ''Zj1jKzE2fDApPj4yXSk+PjJdKSsxMj4+Ml09MCxhWzMyKygwfGFbMTEyKygwfGFbZj4+Ml0pPj4yXSk+PjJdPTAsYVsoZj00KygwfGFbMTEyKygwfGFbZj4+Ml0pPj4yXSl8MCk+PjJdPS0yJmFbZj4+Ml0sYz0wfHp0KGwsYyk7Zm9yKGM9MHxEdChsKTtjOykxJmFbNCsoZj0wfGFbMTEyKygw''@;'; put 'put ''fGFbYysxNj4+Ml0pPj4yXSk+PjJdfHwoYVtmKzE2Pj4yXT0wLG9UKGwsYyxwKSksYz0wfHp0KGwsYyk7cmV0dXJuIGxlPW0sMHxwfShNKSksZnVuY3Rpb24gVFAobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOykxNiZhWzQrKDB8YVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJd''@;'; put 'put ''KT4+Ml18fF9HKGwsZixjKSxmPTB8enQobCxmKX0oRCxsKSxEPTB8ZnVuY3Rpb24gcmMobCxjKXt2YXIgbSxBLGY9MCxwPTA7QT1sZSxsZT1sZSsxNnwwLG09QSxmPTB8dEMobHw9MCxjfD0wKSxhW20+PjJdPWY7ZTpkb3tpZihmKWZvcihwPTA7Oyl7aWYoKDB8cCk+PTEwKWJyZWFrIGU7aWYo''@;'; put 'put ''bD0wfGlUKGwsYyxtKSwoMHxmKT09KDB8KGY9MHxhW20+PjJdKSl8MD09KDB8ZikpYnJlYWs7cD1wKzF8MH19d2hpbGUoMCk7cmV0dXJuIGxlPUEsMHxsfShsLEQpLGw9MHxENihEKSxiPStmdW5jdGlvbiBJUChsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MCxtPTA7Zm9yKGM9MDtsPTB8YVtsPj4y''@;'; put 'put ''XTspYz0ocD0rX1s0MCsobT0wfGFbMTYrKDB8YVthWzExMisoMHxhWzE2KygwfGFbbD4+Ml0pPj4yXSk+PjJdPj4yXSk+PjJdKT4+M10pPihmPShmPStfW20rMzI+PjNdKT5jP2Y6Yyk/cDpmLGw9bCs0fDA7cmV0dXJuK2N9KEQpLHc9LjE1OTE1NDk0MzA5MTg5NTM1KihtPSsoMHxsKSkqKGIr''@;'; put 'put ''ZiksQT0oaz0xPT0oMHxsKSk/MDp3LGw9RDtsPTB8YVtsPj4yXTspe2lmKDgmYVs0KygwfGFbMTEyKygwfGFbMTYrKDB8YVtsPj4yXSk+PjJdKT4+Ml0pPj4yXXwwKXtwPTQ7YnJlYWt9bD1sKzR8MH1mb3IoND09KDB8cCkmJmZ1bmN0aW9uIHRUKGwsYyl7dmFyIGYscD0wLG09MDsoMHwoZj0w''@;'; put 'put ''fGFbKGx8PTApPj4yXSkpIT0oMHwoY3w9MCkpJiYocD0wfGFbKG09Yys4fDApPj4yXSxhW2w+PjJdPWMsYVttPj4yXT0wLGFbNCsobD0wfGFbKGM9bCs0fDApPj4yXSk+PjJdPWYsYVtmKzg+PjJdPWwsYVtjPj4yXT1wLGFbcCs0Pj4yXT0wKX0oRCxsKSxmPTEvbSxwPTAsbD1EO2w9MHxhW2w+''@;'; put 'put ''PjJdOylhWzE2KygwfGFbMTEyKygwfGFbKFI9MTYrKDB8YVtsPj4yXSl8MCk+PjJdKT4+Ml0pPj4yXT1wLF9bMjQrKDB8YVsxMTIrKDB8YVtSPj4yXSk+PjJdKT4+M109MCxHPStoYSgrKG09Ni4yODMxODUzMDcxNzk1ODYqZiorKDB8cCkpKSpBLF9bKFI9MHxhWzEzMisoMHxhW1I+PjJdKT4+''@;'; put 'put ''Ml0pPj4zXT1HLF9bUis4Pj4zXT0rRGEoK20pKkEscD1wKzF8MCxsPWwrNHwwO3JldHVybiBfW2MrMTY+PjNdPUc9az8uNSpiOncsX1tjKzI0Pj4zXT1HLF9bYys0OD4+M109LTEsQzEoTSksMHxEfShsLGMsZiksYVtjKzMyPj4yXT1wLGw9MHxENihwKSxmPSgwfG0pPjA/K2Z1bmN0aW9uIEVQ''@;'; put 'put ''KGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbT0rbTt2YXIgRyxxLHBlLGdlLGJlLExlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxPZT0wO2ZvcihMZT1sZSxsZT1sZSs0OHwwLGJlPUxlLE9lPTB8dnIoNTYqKGx8PTApfDApLGFbYmUrNDA+PjJdPWFbcCszNj4+Ml0sX1socT1iZSs4''@;'; put 'put ''fDApPj4zXT1iPStfWyhHPXArMTZ8MCk+PjNdLF9bYmU+PjNdPWIsYVtiZSs0ND4+Ml09YVtwPj4yXSxfW2JlKzE2Pj4zXT1iPTYuMjgzMTg1MzA3MTc5NTg2LysoMHxjKSxfWyhwZT1iZSsyNHwwKT4+M109LTEsX1soZ2U9YmUrMzJ8MCk+PjNdPS0xLGs9MCxSPTAsQT0wO3c9MHxhW2Y+PjJd''@;'; put 'put ''Oyk4JmFbNCsoMHxhWzExMisoMHxhWzE2KyhmPTB8YVt3Pj4yXSk+PjJdKT4+Ml0pPj4yXT8oYVsoRD1PZSsoNTYqUnwwKXwwKT4+Ml09ZixfW09lKyg1NipSfDApKzg+PjNdPWIqKygwfGspLGY9UisxfDAsQT0reFAoRCxiZSxtKSk6Zj1SLGs9aysxfDAsUj1mLGY9dys0fDA7ZTpkb3tzd2l0''@;'; put 'put ''Y2goMHxSKXtjYXNlIDE6X1tPZSs0MD4+M109MSxmPTA7YnJlYWs7Y2FzZSAyOlhfKE9lLE9lKzU2fDAsKGI9K19bT2UrNjQ+PjNdLStfW09lKzg+PjNdKT4zLjE0MTU5MjY1MzU4OTc5Mz82LjI4MzE4NTMwNzE3OTU4Ni1iOmIpLGY9MDticmVhaztkZWZhdWx0OmZvcihEPU9lKzh8MCxNPU9l''@;'; put 'put ''LGY9MDs7KXtpZigoMHxmKT49KDB8Uikpe2Y9MDticmVhayBlfSgwfChmPWYrMXwwKSk9PSgwfFIpPyh3PU9lLGI9K19bRD4+M10rNi4yODMxODUzMDcxNzk1ODYtK19bTSs4Pj4zXSxrPU0rNTZ8MCk6KHc9az1NKzU2fDAsYj0rX1tNKzY0Pj4zXS0rX1tNKzg+PjNdKSxYXyhNLHcsYiksTT1r''@;'; put 'put ''fX19d2hpbGUoMCk7Zm9yKDshKCgwfGYpPj0oMHxSKSk7KSR4KE9lKyg1NipmfDApfDAsYmUsYyxtKSxmPWYrMXwwO3JldHVybiBGdChPZSksMT09KDB8bCk/KG5jKHAsLShtPUErLjUqbSksMCwwKSxfW0c+PjNdPStfW0c+PjNdK20sYVsoT2U9cCs1NnwwKT4+Ml09MXxhW09lPj4yXSk6X1tH''@;'; put 'put ''Pj4zXT0rX1txPj4zXSxsZT1MZSwrKC41KigrX1tnZT4+M10rICtfW3BlPj4zXSktMy4xNDE1OTI2NTM1ODk3OTMpfShtLGwscCxjLGYpOjMuMTQxNTkyNjUzNTg5NzkzLDE9PSgwfGwpJiYwfChBPTB8YVtjPj4yXSkmJjB8YVs4KygwfGFbMTEyKygwfGFbQSsxNj4+Ml0pPj4yXSk+PjJdJiYo''@;'; put 'put ''X1sodz1jKzQ4fDApPj4zXT1mLGY8MCkmJihfW3c+PjNdPWYrNi4yODMxODUzMDcxNzk1ODYpfWZ1bmN0aW9uIHhQKGwsYyxmKXtsfD0wLGY9K2Y7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2Zvcih3PTAsbT0wLEE9MCxwPTQwKyhjfD0wKXwwO2I9MHxhW3A+PjJdOykoMHwocD0ocD0w''@;'; put 'put ''fGFbYj4+Ml0pPzB8YVs4KygwfGFbMTEyKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdOjApKT09KDB8YVtsPj4yXSk/KHA9dysxfDAsbT1tK2YrMiooaz0rX1tiKzE2Pj4zXSksQT1BPGs/azpBKTpwPXcsdz1wLHA9Yis0fDA7cmV0dXJuIF9bbCszMj4+M109bSxhW2wrNDg+PjJdPXcsX1tsKzE2''@;'; put 'put ''Pj4zXT1BK2YrICtfW2M+PjNdLF9bbCsyND4+M109QSwrQX1mdW5jdGlvbiBYXyhsLGMsZil7dmFyIHAsbTsoZj0oZj0oKHA9K19bMTYrKGx8PTApPj4zXSkqK19bMzIrKGN8PTApPj4zXSsobT0rX1tjKzE2Pj4zXSkqK19bbCszMj4+M10pLygyKihmPStmKSptKnApKTwxPzE6Zik+K19bKGw9''@;'; put 'put ''bCs0MHwwKT4+M10mJihfW2w+PjNdPWYpLGY+K19bKGw9Yys0MHwwKT4+M10mJihfW2w+PjNdPWYpfWZ1bmN0aW9uICR4KGwsYyxmLHApe3A9K3A7dmFyIHBlLGdlLGJlLE9lLExlLEhlLFZlLHFlLHJ0LFdlLGF0LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxSZT0w''@;'; put 'put ''LFN0PTAsa3Q9MCxzdD0wO2ZvcihrPStfWyhXZT0yNCsoY3w9MCl8MCk+PjNdLGI9K19bKGF0PWMrMzJ8MCk+PjNdLG09K19bMTYrKGx8PTApPj4zXSorX1tsKzQwPj4zXSwoVmU9MT09KDB8KGZ8PTApKSk/KG09Ni4yODMxODUzMDcxNzk1ODYqKEE9bT4oQT0uMTU5MTU0OTQzMDkxODk1MzUq''@;'; put 'put ''KFJlPStfW2wrMzI+PjNdKSk/bTpBKS1SZSk+MD8ocD1tLysoMHxhW2wrNDg+PjJdKStwLE09MCxtPUEpOihNPTAsbT1BKTpNPStfW2wrOD4+M10tK19bbCszMj4+M10vKDIqbSksZ2U9KHBlPStfW2wrMjQ+PjNdK20pPihxZT0rX1socnQ9Yys4fDApPj4zXSksT2U9KDErKDB8YVsoYmU9bCs0''@;'; put 'put ''OHwwKT4+Ml0pfDApLzJ8MCxMZT0xL20sUmU9cC9tKi41LEhlPWwrOHwwLFI9Yys0MHwwLEc9MCxxPTAsQT1NO1I9MHxhW1I+PjJdOyl7aWYoKDB8KHc9KHc9MHxhW1I+PjJdKT8wfGFbOCsoMHxhWzExMisoMHxhW3crMTY+PjJdKT4+Ml0pPj4yXTowKSk9PSgwfGFbbD4+Ml0pJiYoMHxENigw''@;'; put 'put ''fGFbUiszMj4+Ml0pKT49MSl7RD0oTT0rX1tSKzE2Pj4zXSkqTGU7ZG97aWYoIVZlKXtpZigxPT0oMHxhW2JlPj4yXSkpe0E9K19bSGU+PjNdO2JyZWFrfUE9QStSZStEO2JyZWFrfTAhPUEmJihBPTI9PSgwfGFbYmU+PjJdKT8zLjE0MTU5MjY1MzU4OTc5MzpEK0EpLGI9QSxrPWs8MD9BOmt9''@;'; put 'put ''d2hpbGUoMCk7bmMoUixzdD0raGEoK0EpKm0sa3Q9K0RhKCtBKSptLCtxeChSLHN0LGt0LEEpKSxBPShWZT8oTStwKSpMZTpEK1JlKStBLHc9Rz1HKzF8MCxNPSgwfEcpPT0oMHxPZSk/QTpxfWVsc2Ugdz1HLE09cTtSPVIrNHwwLEc9dyxxPU19bT1nZT9wZTpxZSwoMHxmKT4xJiYoMHwoU3Q9''@;'; put 'put ''MHxhW2w+PjJdKSk9PSgwfGFbYys0ND4+Ml0pJiYoX1syNCsoMHxhWzExMisoMHxhW1N0KzE2Pj4yXSk+PjJdKT4+M109cSksX1tydD4+M109bSxfW1dlPj4zXT1rLF9bYXQ+PjNdPWJ9ZnVuY3Rpb24gbmMobCxjLGYscCl7Yz0rYyxmPStmO3ZhciBELFIsbT0wLEE9MCx3PTAsYj0wLGs9MCxN''@;'; put 'put ''PTAsRz0wLHE9MDtmb3IoUj0wIT0ocD0rcCksbT0wfER0KEQ9MHxhWzgrKGx8PTApPj4yXSk7bTspdz0rX1soaz0wfGFbMTMyKygwfGFbbSsxNj4+Ml0pPj4yXSk+PjNdLEE9K19bKE09ays4fDApPj4zXSxSPyhiPShHPStoYSgrcCkpKnctKHE9K0RhKCtwKSkqQSxBPXEqdytHKkEpOmI9dyxf''@;'; put 'put ''W2s+PjNdPWIrYyxfW00+PjNdPUErZixtPTB8enQoRCxtKTtmb3IobT1sKzM2fDA7bT0wfGFbbT4+Ml07KW5jKG0sYyxmLHApLG09bSs0fDB9ZnVuY3Rpb24gcXgobCxjLGYscCl7Yz0rYyxmPStmLHA9K3A7dmFyIEQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wLEc9MDtEPTB8YVs4Kyhs''@;'; put 'put ''fD0wKT4+Ml0sbT0rX1tsKzQ4Pj4zXTtkb3tpZihtPj0wKW09KG09My4xNDE1OTI2NTM1ODk3OTMtbStwKTwwP20rNi4yODMxODUzMDcxNzk1ODY6bTtlbHNle2lmKDI9PSgwfEQ2KDB8YVtsKzMyPj4yXSkpKXttPXArLTEuNTcwNzk2MzI2Nzk0ODk2NjticmVha31mb3IobT0oaz0rX1s4Kyh3''@;'; put 'put ''PTB8YVsxMzIrKDB8YVsoUj0xNisoTT0wfGFbbD4+Ml0pfDApPj4yXSk+PjJdKT4+M10rZikqaysobT0rX1t3Pj4zXStjKSptLHc9MHxEdChEKSxBPU07dzspKDB8dykhPSgwfE0pJiYoYj0oaz0rX1s4KyhHPTB8YVsxMzIrKDB8YVt3KzE2Pj4yXSk+PjJdKT4+M10rZikqaysoYj0rX1tHPj4z''@;'; put 'put ''XStjKSpiKTxtJiYobT1iLEE9dyksdz0wfHp0KEQsdyk7aWYoKDB8TSkhPSgwfEEpKXtpZigobT0rX1sodz0wfGFbMTMyKyhBPTB8YVtSPj4yXSk+PjJdKT4+M10pPi0oaz0rX1tsKzE2Pj4zXS0oYj0rX1tsKzI0Pj4zXSkpJiYwIT0oMSZhW2wrNTY+PjJdfDApKXtmPStEMCgrKGYqZitjKmMp''@;'; put 'put ''KSxjPStVbCgrICtfW3crOD4+M10sKyhtK2spKSxtPStoYSgrYyksbT1wKzEuNTcwNzk2MzI2Nzk0ODk2Ni1jLStYcCgrKGstYi9tKS9mKm0pO2JyZWFrfW09KG09cCszLjE0MTU5MjY1MzU4OTc5My0obT0rVWwoKyArX1t3Kzg+PjNdLCttKSktK19bMjQrKDB8YVtBKzExMj4+Ml0pPj4zXSk+''@;'; put 'put ''Ni4yODMxODUzMDcxNzk1ODY/bSstNi4yODMxODUzMDcxNzk1ODY6bTticmVha31tPTB9fXdoaWxlKDApO3JldHVybittfWZ1bmN0aW9uIFdtKCl7cmV0dXJuIDB8dnIoMTIpfWZ1bmN0aW9uIFltKGwpe3ZhciBjPTAsZj0wO2lmKDB8KGx8PTApKXtmb3IoYz0wfGFbbD4+Ml07YzspZj0wfGFb''@;'; put 'put ''Yys0Pj4yXSxGdChjKSxjPWY7RnQobCl9fWZ1bmN0aW9uIEhoKGwsYyxmKXtsfD0wLGN8PTA7dmFyIG0scD0wO209MHxmdW5jdGlvbiBlVChsKXtsfD0wO3ZhciBjO3JldHVybiBjPTB8dnIoMTIpLGFbYz4+Ml09bCwwfGN9KGZ8PTApLGFbKGY9bCs4fDApPj4yXT0xKygwfGFbZj4+Ml0pLDA9''@;'; put 'put ''PSgwfGMpfCgwfChwPTB8YVsoZj1sKzR8MCk+PjJdKSk9PSgwfGMpPyhhWygwfHA/cCs0fDA6bCk+PjJdPW0sYVttKzg+PjJdPXAscD0wKTooZj0wfGFbKHA9Yys0fDApPj4yXSxhW3A+PjJdPW0sYVttKzg+PjJdPWMscD1mLGY9Zis4fDApLGFbZj4+Ml09bSxhW20rND4+Ml09cH1mdW5jdGlv''@;'; put 'put ''biBuVChsKXtsfD0wO3ZhciBmLHAsYz0wO2ZvcihwPTQrKGY9MHxXbSgpKXwwLGM9MDtsPTB8YVtsPj4yXTspSGgoZixjLDB8YVtsPj4yXSksYz0wfGFbcD4+Ml0sbD1sKzR8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIHJUKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBBLHcsYixtPTAsaz0w''@;'; put 'put ''LE09MDtmb3IobT1sfD0wOzspe2lmKCEoaz0wfGFbbT4+Ml0pKXtNPTY7YnJlYWt9aWYoKDB8YVtrPj4yXSk9PSgwfGMpKWJyZWFrO209ays0fDB9Zm9yKDY9PSgwfE0pJiZQcig5NjI3MCw5NjI3NywyMTcsOTYyODgpLGFbKDB8KG09MHxhWyhiPWsrOHwwKT4+Ml0pP20rNHwwOmwpPj4yXT1j''@;'; put 'put ''PTB8YVsoQT1rKzR8MCk+PjJdLHc9bCs0fDAsYVsoMHxjP2MrOHwwOncpPj4yXT1tLGM9MCxtPWw7bT0wfGFbbT4+Ml07KXtpZigoMHxhW20+PjJdKT09KDB8Zikpe009OTticmVha31jPW0sbT1tKzR8MH1pZig5PT0oMHxNKSl7ZG97aWYocCl7aWYoKDB8bSk9PSgwfGFbdz4+Ml0pKXthW3c+''@;'; put 'put ''PjJdPWssYVtBPj4yXT0wLGFbYj4+Ml09bSxtPW0rNHwwO2JyZWFrfWFbYj4+Ml09bSxhW0E+PjJdPWFbKG09bSs0fDApPj4yXSxhWzgrKDB8YVttPj4yXSk+PjJdPWs7YnJlYWt9aWYoKDB8bSk9PSgwfGFbbD4+Ml0pKXthW2w+PjJdPWssYVtBPj4yXT1tLGFbYj4+Ml09MCxtPW0rOHwwO2Jy''@;'; put 'put ''ZWFrfWFbYys0Pj4yXT1rLGFbYj4+Ml09YyxhW0E+PjJdPW0sbT1tKzh8MDticmVha313aGlsZSgwKTthW20+PjJdPWt9fWZ1bmN0aW9uIEQ2KGwpe3JldHVybiAwfGFbOCsobHw9MCk+PjJdfWZ1bmN0aW9uIHRDKGwsYyl7bHw9MCxjfD0wO3ZhciBNLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0w''@;'; put 'put ''LGs9MCxEPTA7Zm9yKE09MHxmdW5jdGlvbiBFNSgpe3JldHVybiAwfGlzKDE4Mjc2LDB8YVs0NTgxXSl9KCkscD0wfER0KGMpO3A7KXtmb3IoZj0wfHcwKGMscCk7ZjspYVthWzEyMCsoMHxhW2YrMTY+PjJdKT4+Ml0+PjJdPTAsZj0wfFMwKGMsZik7cD0wfHp0KGMscCl9Zm9yKGs9MSxmPTA7''@;'; put 'put ''dz0wfGFbbD4+Ml07KXtmb3IoQT0wfE1zKGMsYj0wfGFbdz4+Ml0pO0E7KXtpZigoMHxhW2FbMTIwKygwfGFbKG09QSsxNnwwKT4+Ml0pPj4yXT4+Ml0pPjApe2ZvcihsPTB8bWlbNjMmYVtNPj4yXV0oTSwwLDEyOCk7bDspKDB8YVthWzEyMCsoMHxhWzE2KyhwPTB8YVtsKzg+PjJdKT4+Ml0p''@;'; put 'put ''Pj4yXT4+Ml0pPigwfGFbYVsxMjArKDB8YVttPj4yXSk+PjJdPj4yXSkmJigwfGFbKDI9PSgwfChEPTMmYVtwPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdKSE9KDB8YikmJihmPWYrKCgwfGFbKDM9PSgwfEQpP3A6cCs0OHwwKSs0MD4+Ml0pIT0oMHxiKSYxKXwwKSxsPTB8bWlbNjMmYVtNPj4y''@;'; put 'put ''XV0oTSxsLDgpO3VUKE0sQSl9QT0wfFZzKGMsQSxiKX1mb3IocD0wfE1zKGMsYik7cDspMHxhWyhsPTB8YVsxMjArKDB8YVtwKzE2Pj4yXSk+PjJdKT4+Ml18fChhW2w+PjJdPWsseDUoTSxwKSkscD0wfFZzKGMscCxiKTtsPXcrNHwwLGs9aysxfDB9cmV0dXJuIGZ1bmN0aW9uIEJQKGwpe05s''@;'; put 'put ''KGx8PTApfShNKSwwfGZ9ZnVuY3Rpb24gaVQobCxjLGYpe2x8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtwPTB8YVsoZnw9MCk+PjJdLE09MHxEdChjfD0wKTtlOmZvcig7TTspe2ZvcihrPTB8TXMoYyxNKTtrOyl7Zm9yKCgwfChtPTB8YVsoMz09KDB8KEE9MyZhW2s+PjJd''@;'; put 'put ''KSk/azprKzQ4fDApKzQwPj4yXSkpPT0oMHxNKSYmKG09MHxhWygyPT0oMHxBKT9rOmsrLTQ4fDApKzQwPj4yXSksYj0wOyEoKDB8Yik+PTIpOyl7aWYodz0wfG5UKGwpLHJUKGwsTSxtLGIpLCgwfChBPTB8dEMobCxjKSkpPCgwfHApKXtpZihZbSh3KSwhQSl7cD0wO2JyZWFrIGV9cD1BfWVs''@;'; put 'put ''c2UgWW0obCksbD13O2I9YisxfDB9az0wfFZzKGMsayxNKX1NPTB8enQoYyxNKX1yZXR1cm4gYVtmPj4yXT1wLDB8bH1mdW5jdGlvbiBfRyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHcscD0wLG09MCxBPTA7Zm9yKHc9MHxXbSgpLHA9MHx3MChsLGMpO3A7KW09cCstNDh8MCxIaCh3LDAs''@;'; put 'put ''MHxhWygyPT0oMyZhW3A+PjJdfDApP3A6bSkrNDA+PjJdKSxhWyhtPTQrKDB8YVsxMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6bSkrNDA+PjJdKT4+Ml0pPj4yXSl8MCk+PjJdPTMyfGFbbT4+Ml0scD0wfFMwKGwscCk7Zm9yKHA9MHxNZihsLGMpO3A7KW09cCs0OHwwLEho''@;'; put 'put ''KHcsMCwwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDptKSs0MD4+Ml0pLGFbKG09NCsoMHxhWzExMisoMHxhWzE2KygwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDptKSs0MD4+Ml0pPj4yXSk+PjJdKXwwKT4+Ml09MzJ8YVttPj4yXSxwPTB8RjMobCxwKTtlOmRve2lmKCgwfEQ2KHcpKT4xKXtmb3Io''@;'; put 'put ''bT1mKzR8MCxsPWY7Oyl7aWYoIShwPTB8YVtsPj4yXSkpe0E9MTM7YnJlYWsgZX1pZihsPXArNHwwLDMyJmFbNCsoMHxhWzExMisoMHxhWzE2KygwfGFbcD4+Ml0pPj4yXSk+PjJdKT4+Ml0mJjMyJmFbNCsoMHxhWzExMisoMHxhWzE2KygwfGFbYVsoKDB8cCk9PSgwfGFbbT4+Ml0pP2Y6bCk+''@;'; put 'put ''PjJdPj4yXSk+PjJdKT4+Ml0pPj4yXXwwKWJyZWFrfUhoKGYscCxjKX1lbHNlIEE9MTN9d2hpbGUoMCk7ZTpkb3tpZigxMz09KDB8QSkpe3Q6ZG97aWYoKDB8RDYodykpPjApe2ZvcihwPWY7Oyl7aWYoIShwPTB8YVtwPj4yXSkpYnJlYWsgdDtpZigzMiZhWzQrKDB8YVsxMTIrKDB8YVsxNiso''@;'; put 'put ''MHxhW3A+PjJdKT4+Ml0pPj4yXSk+PjJdfDApYnJlYWs7cD1wKzR8MH1IaChmLHAsYyk7YnJlYWsgZX19d2hpbGUoMCk7SGgoZiwwLGMpfX13aGlsZSgwKTtmb3IocD13O3A9MHxhW3A+PjJdOylhWyhmPTQrKDB8YVsxMTIrKDB8YVsxNisoMHxhW3A+PjJdKT4+Ml0pPj4yXSl8MCk+PjJdPS0z''@;'; put 'put ''MyZhW2Y+PjJdLHA9cCs0fDA7WW0odyl9ZnVuY3Rpb24gTW8obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtmb3IodmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO0E9MHxhWzE2KygwfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjJdOyl7aWYodz1mKzF8MCxtPTB8YVsxMisoYz0x''@;'; put 'put ''Nisoaz0wfGFbMTEyKygwfGFbKGI9QSsxNnwwKT4+Ml0pPj4yXSl8MCk+PjJdKXtpZigoMHxtKT4oMHxmKSl7TT0xMTticmVha31tPWM9MHxhW2MrND4+Ml0sKDB8Yyk9PSgwfHApP2M9azooZj1rKzI0fDAsMCE9KDB8YVtrKzMyPj4yXSkmJigwfGFbZj4+Ml0pPT0oMHxwKXx8KHA9YyksYVtm''@;'; put 'put ''Pj4yXT1tLGFbMzIrKGM9MHxhWzExMisoMHxhW2I+PjJdKT4+Ml0pPj4yXT1hW2MrMTYrMTI+PjJdLGM9MHxhWzExMisoMHxhW2I+PjJdKT4+Ml0pLGM9YysxNnwwfWFbYys0Pj4yXT1sLGFbMTYrKDB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKSsxMj4+Ml09dyxjPUEsZj13fTExPT0oMHxNKSYm''@;'; put 'put ''KDB8YVtrKzMyPj4yXSk8PSgwfGYpJiYoYVtrKzI0Pj4yXT1sLGFbMzIrKDB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKT4+Ml09dyl9ZnVuY3Rpb24gb1QobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7Zm9yKGFbKEE9NCsoMHxhWzExMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSl8''@;'; put 'put ''MCk+PjJdPTF8YVtBPj4yXSxBPTB8TXMobCxjKTtBOykoMHwocD0wfGFbKDI9PSgwfChtPTMmYVtBPj4yXSkpP0E6QSstNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYocD0wfGFbKDM9PSgwfG0pP0E6QSs0OHwwKSs0MD4+Ml0pLDEmYVs0KygwfGFbMTEyKygwfGFbKG09cCsxNnwwKT4+Ml0pPj4y''@;'; put 'put ''XSk+PjJdfHwoWmQoZixBLDEpLGFbMTYrKDB8YVsxMTIrKDB8YVttPj4yXSk+PjJdKT4+Ml09YyxvVChsLHAsZikpLEE9MHxWcyhsLEEsYyl9ZnVuY3Rpb24gUzUobCxjLGYpe2x8PTAsZnw9MDt2YXIgcSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscGU9MDtmb3Io''@;'; put 'put ''cT0wfFFuKHBlPShSPTB8YVsyMzYrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPDwyKSxwZT0wfFFuKHBlKSxiPTAsRD0wfE1zKGwsYyksRz0wLG09MDtEOyl7Zm9yKCgwfChBPTB8YVsoMj09KDB8KHA9MyZhW0Q+PjJdKSk/RDpEKy00OHwwKSs0MD4+Ml0pKT09KDB8YykmJihBPTB8YVsoMz09''@;'; put 'put ''KDB8cCk/RDpEKzQ4fDApKzQwPj4yXSksdz0wLE09MHxNcyhsLGMpLGs9YjtNOykoMHxNKSE9KDB8RCk/KCgwfChwPTB8YVsoMj09KDB8KGI9MyZhW00+PjJdKSk/TTpNKy00OHwwKSs0MD4+Ml0pKT09KDB8YykmJihwPTB8YVsoMz09KDB8Yik/TTpNKzQ4fDApKzQwPj4yXSksKGI9MHxLYShs''@;'; put 'put ''LEEscCwwLDApKT9BPj4+MDxwPj4+MD8ocD1rKzF8MCwoYj0wfGFbMTE2KygwfGFbKHc9YisxNnwwKT4+Ml0pPj4yXSkmJihvaShmLGIpLGFbMTE2KygwfGFbdz4+Ml0pPj4yXT0wKSx3PTEpOih3PTEscD1rKTpwPWspOnA9ayxNPTB8VnMobCxNLGMpLGs9cDt3PyhhW3ErKG08PDIpPj4yXT1B''@;'; put 'put ''LHA9RyxtPW0rMXwwKTooYVtwZSsoRzw8Mik+PjJdPUEscD1HKzF8MCksYj1rLEQ9MHxWcyhsLEQsYyksRz1wfXA9UistMS1ifDA7ZTpkb3tpZigoMHxwKT4wKXtpZigoMHxwKTwoMHxHKSlBPTA7ZWxzZXtpZigoMHxwKSE9KDB8RykpYnJlYWs7Zm9yKEE9MTYrKG09MHxhW3E+PjJdKXwwLHA9''@;'; put 'put ''MDs7KXtpZigoMHxwKT49KDB8RykpYnJlYWsgZTtoMCgwfEthKGwsbSxSPTB8YVtwZSsocDw8Mik+PjJdLDAsMSksMTM3NDYwLDE3NiwxKSxhWyhmPTIzNisoMHxhW0E+PjJdKXwwKT4+Ml09MSsoMHxhW2Y+PjJdKSxhWyhSPTIzNisoMHxhW1IrMTY+PjJdKXwwKT4+Ml09MSsoMHxhW1I+PjJd''@;'; put 'put ''KSxwPXArMXwwfX1mb3IoOzspe2lmKCgwfEEpPj0oMHxHKSl7bT0yO2JyZWFrfWlmKCgwfChtPTF8QSkpPj0oMHxHKSl7bT0yO2JyZWFrfWgwKDB8S2EobCxmPTB8YVtwZSsoQTw8Mik+PjJdLFI9MHxhW3BlKyhtPDwyKT4+Ml0sMCwxKSwxMzc0NjAsMTc2LDEpLGFbKGY9MjM2KygwfGFbZisx''@;'; put 'put ''Nj4+Ml0pfDApPj4yXT0xKygwfGFbZj4+Ml0pLGFbKFI9MjM2KygwfGFbUisxNj4+Ml0pfDApPj4yXT0xKygwfGFbUj4+Ml0pLEE9QSsyfDAscD1wKy0xfDB9Zm9yKDs7KXtpZigoMHxwKTw9MClicmVhayBlO2gwKDB8S2EobCxSPTB8YVtwZT4+Ml0sRz0wfGFbcGUrKG08PDIpPj4yXSwwLDEp''@;'; put 'put ''LDEzNzQ2MCwxNzYsMSksYVsoUj0yMzYrKDB8YVtSKzE2Pj4yXSl8MCk+PjJdPTErKDB8YVtSPj4yXSksYVsoRz0yMzYrKDB8YVtHKzE2Pj4yXSl8MCk+PjJdPTErKDB8YVtHPj4yXSksbT1tKzF8MCxwPXArLTF8MH19fXdoaWxlKDApO0Z0KHBlKSxGdChxKX1mdW5jdGlvbiBNNShsLGMpe3Zh''@;'; put 'put ''ciBmLHAsbTtsfD0wLGY9bGUsbGU9bGUrMTZ8MCxhWyhtPWYpKzg+PjJdPWFbMjM2KygwfGFbKHA9MTYrKGN8PTApfDApPj4yXSk+PjJdLGw9MTIrKDB8bWlbNjMmYVtsPj4yXV0obCxtLDEpKXwwLGFbMTY0KygwfGFbcD4+Ml0pPj4yXT1hW2w+PjJdLGFbbD4+Ml09YyxsZT1mfWZ1bmN0aW9u''@;'; put 'put ''IGFUKGwsYyl7bHw9MDt2YXIgbSx3LGY9MCxwPTAsQT0wO2lmKHc9bGUsbGU9bGUrMTZ8MCxhWyhBPXcpKzg+PjJdPWFbMjM2KygwfGFbKG09MTYrKGN8PTApfDApPj4yXSk+PjJdLChBPTB8bWlbNjMmYVtsPj4yXV0obCxBLDQpKXx8UHIoOTYzMjIsOTYzMjUsMTA3LDk2MzM1KSwoMHwoZj0w''@;'; put 'put ''fGFbKHA9QSsxMnwwKT4+Ml0pKT09KDB8YykpYVtwPj4yXT1jPTB8YVsxNjQrKDB8YVttPj4yXSk+PjJdLGN8fG1pWzYzJmFbbD4+Ml1dKGwsQSwyKTtlbHNle2Rve3A9MCE9KDB8KGY9MHxhWyhsPTE2NCsoMHxhW2YrMTY+PjJdKXwwKT4+Ml0pKX13aGlsZShwJigwfGYpIT0oMHxjKSk7cCYm''@;'; put 'put ''KGFbbD4+Ml09YVsxNjQrKDB8YVtmKzE2Pj4yXSk+PjJdKX1sZT13fWZ1bmN0aW9uIFJQKGwpe3ZhciBmLGM9MCxwPTAsbT0wO3JldHVybihmPTB8bWlbNjMmYVsobHw9MCk+PjJdXShsLDAsMTI4KSk/KGFbKG09ZisxMnwwKT4+Ml09cD0wfGFbMTY0KygwfGFbMTYrKGM9MHxhW20+PjJdKT4+''@;'; put 'put ''Ml0pPj4yXSxwfHxtaVs2MyZhW2w+PjJdXShsLGYsMikpOmM9MCwwfGN9ZnVuY3Rpb24geDUobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9ZikrOD4+Ml09Y3w9MCxtaVs2MyZhW2w+PjJdXShsLHAsMSksbGU9Zn1mdW5jdGlvbiB1VChsLGMpe3ZhciBmLHA7bHw9MCxm''@;'; put 'put ''PWxlLGxlPWxlKzE2fDAsYVsocD1mKSs4Pj4yXT1jfD0wLG1pWzYzJmFbbD4+Ml1dKGwscCwyKSxsZT1mfWZ1bmN0aW9uIE5sKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wO2Rve2lmKDAhPSgwfGwpJiYoMHxhW2wrMjQ+PjJdKTw9MCl7aWYoYz0wfGFbKEE9MzIrKHc9MHxh''@;'; put 'put ''W2wrND4+Ml0pfDApPj4yXSl7aWYoKDB8KGM9MHxxMFsxMjcmY10obCwyLDAsdykpKTwwKXtjPS0xO2JyZWFrfX1lbHNlIGM9MDtpZigwfGFbbCsyOD4+Ml0mJmVoKGwsMCksbT0wPT0oMHxjKSl7aWYobWlbNjMmYVthW2wrMTY+PjJdPj4yXV0obCwwLDY0KSwoMHxwdShsKSk+MCl7Yz0tMTti''@;'; put 'put ''cmVha30oMHxhWzEyKyhjPTB8YVsoZj1sKzh8MCk+PjJdKT4+Ml0pPjA/KHEwWzEyNyZhWyhwPWwrMTJ8MCk+PjJdXShsLDB8YVtjKzg+PjJdLDAsdyksYz0wfGFbZj4+Ml0pOnA9bCsxMnwwLHEwWzEyNyZhW3A+PjJdXShsLGMsMCx3KX0oYz0wfGFbbCsyMD4+Ml0pP20mMT09KDB8YykmJnEw''@;'; put 'put ''WzEyNyZhW2wrMTI+PjJdXShsLGwsMCx3KTpGdChsKSwoYz0wfGFbQT4+Ml0pJiZxMFsxMjcmY10obCw2LDAsdyksYz0wfWVsc2UgYz0tMX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIFAzKGwpe3ZhciBjPTAsZj0wLHA9MDtmPTB8YVsoYz0wfGFbKHA9OCsobHw9MCl8MCk+PjJdKT4+''@;'; put 'put ''Ml07ZTpkb3tpZigxMiZmKWw9MHxhW2MrND4+Ml07ZWxzZXtpZighKDMmZikpe2w9MHxhWyhmPWMrOHwwKT4+Ml0sYVtmPj4yXT0wO2JyZWFrfWZvcihsPTB8czAobCksZj0oYz0wfGFbOCsoZj0wfGFbcD4+Ml0pPj4yXSkrKGFbZisxMj4+Ml08PDIpfDA7Oyl7aWYoYz4+PjA+PWY+Pj4wKWJy''@;'; put 'put ''ZWFrIGU7YVtjPj4yXT0wLGM9Yys0fDB9fX13aGlsZSgwKTtyZXR1cm4gYVsocD0wfGFbcD4+Ml0pPj4yXT0tNDA5NyZhW3A+PjJdLGFbcCsxNj4+Ml09MCxhW3ArND4+Ml09MCwwfGx9ZnVuY3Rpb24gczAobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7aWYoNDA5NiYoYz0wfGFbKGw9MHxh''@;'; put 'put ''WyhBPTgrKGx8PTApfDApPj4yXSk+PjJdKSlsPTB8YVtsKzQ+PjJdO2Vsc2V7ZTpkb3tpZigzJmMpZm9yKHA9MHxhW2wrOD4+Ml0sbT1wKyhhW2wrMTI+PjJdPDwyKXwwLGM9MCxsPTA7Oyl7aWYocD4+PjA+PW0+Pj4wKWJyZWFrIGU7aWYoZj0wfGFbcD4+Ml0pe2ZvcihjP2FbYz4+Ml09Zjoo''@;'; put 'put ''Yz1mLGw9Zik7Zj0wfGFbYz4+Ml07KWM9ZjthW3A+PjJdPWN9cD1wKzR8MH1lbHNle2lmKDExMiZjfDApe2w9MHxhW2wrOD4+Ml07YnJlYWt9aWYobD0wfGFbbCs0Pj4yXSl7Zm9yKDs7KXtpZighKGY9MHxhWyhjPWwrNHwwKT4+Ml0pKXtwPWw7YnJlYWt9YVtjPj4yXT1hW2Y+PjJdLGFbZj4+''@;'; put 'put ''Ml09bCxsPWZ9Zm9yKDs7KXtpZighKGM9MHxhW3A+PjJdKSlicmVhayBlO2lmKGY9MHxhW2MrND4+Ml0pe2Zvcig7YVtjKzQ+PjJdPWFbZj4+Ml0sYVtmPj4yXT1jLGM9MHxhW2YrND4+Ml07KW09ZixmPWMsYz1tO2FbcD4+Ml09ZixwPWZ9ZWxzZSBwPWN9fWVsc2UgbD0wfX13aGlsZSgwKTth''@;'; put 'put ''WzQrKEE9MHxhW0E+PjJdKT4+Ml09bCxhW0E+PjJdPTQwOTZ8YVtBPj4yXX1yZXR1cm4gMHxsfWZ1bmN0aW9uIGlzKGwsYyl7bHw9MCxjfD0wO3ZhciBrLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2s9bGUsbGU9bGUrMTZ8MCxBPWs7ZTpkb3tpZigwIT0oMHxsKSYwIT0oMHxjKSYmKG09MHxG''@;'; put 'put ''MCg0MCksMCE9KDB8bSkpKXthW20+PjJdPTAsYVttKzE2Pj4yXT0wLGFbbSs0Pj4yXT0wLEptKG0sbCwwKSxiPWwrMzJ8MCxhWyhmPW0rMjB8MCk+PjJdPTAsYVtmKzQ+PjJdPTAsYVtmKzg+PjJdPTAsYVtmKzEyPj4yXT0wLGFbZisxNj4+Ml09MCxmPTB8YVtiPj4yXTtkb3tpZihmKWlmKGFb''@;'; put 'put ''QT4+Ml09MCwoMHwoZj0wfHEwWzEyNyZmXShtLDEsQSxsKSkpPj0wKWlmKGYpe2lmKDB8KHA9MHxhW0E+PjJdKSl7aWYoYVtjKzQ+PjJdJmFbcD4+Ml0pe2Y9bTticmVha31mPW0sdz0xMjticmVha31pZigwfGFbKGY9bCsyOHwwKT4+Ml0pe2lmKEZ0KG0pLCEocD0wfHEwWzEyNyZhW2Y+PjJd''@;'; put 'put ''XSgwLDAsNDAsbCkpKXtmPTA7YnJlYWsgZX1hW3A+PjJdPTAsYVtwKzE2Pj4yXT0wLGFbcCs0Pj4yXT0wLEptKHAsbCwwKSxhW3ArMjA+PjJdPTEsYVtwKzI0Pj4yXT0wLGFbcCszMj4+Ml09MCxhW3ArMjg+PjJdPTAsZj1wLG09cCx3PTExfWVsc2UgZj1tLHc9MTJ9ZWxzZSBmPW0sdz0xMTtl''@;'; put 'put ''bHNlIGY9bSx3PTEyO2Vsc2UgZj1tLHc9MTF9d2hpbGUoMCk7aWYoMTE9PSgwfHcpJiYocD0wfHEwWzEyNyZhW2YrMTI+PjJdXShmLDAsMjgsbCksYVtBPj4yXT1wLHA/KGFbcD4+Ml09YVtjKzQ+PjJdLGFbKEE9cCs0fDApPj4yXT0wLGFbQSs0Pj4yXT0wLGFbQSs4Pj4yXT0wLGFbQSsxMj4+''@;'; put 'put ''Ml09MCxhW0ErMTY+PjJdPTAsYVtBKzIwPj4yXT0wKTooZj1tLHc9MTIpKSwxMj09KDB8dykpe0Z0KGYpLGY9MDticmVha31hW2YrOD4+Ml09cCxhW2Y+PjJdPWFbYz4+Ml0sYVtmKzE2Pj4yXT1jLChwPTB8YVtiPj4yXSkmJnEwWzEyNyZwXShmLDUsbSxsKX1lbHNlIGY9MH13aGlsZSgwKTty''@;'; put 'put ''ZXR1cm4gbGU9aywwfGZ9ZnVuY3Rpb24gQ2MobCxjKXt2YXIgbSxBLHcsZj0wLHA9MCxiPTAsaz0wO209MHxhW2FbMTYrKGx8PTApPj4yXT4+Ml0sZj00MDk2Jih3PTB8YVsoQT0wfGFbKGs9bCs4fDApPj4yXSk+PjJdKSwoY3w9MCk/MHxhW0ErMTY+PjJdP2M9LTE6KHA9MCxiPTUpOmY/KHA9''@;'; put 'put ''ZixjPTB8YVtBKzQ+PjJdLGI9NSk6Yz0tMTtlOmRve2lmKDU9PSgwfGIpKXtpZihhW0E+PjJdPS00MDk3JncsISgzJncpKXtpZihmPUErNHwwLDEyJnd8fChhW2Y+PjJdPTAsZj1BKzh8MCksYVtmPj4yXT1jLDB8cCl7Yz0wO2JyZWFrfWFbMTYrKDB8YVtrPj4yXSk+PjJdPS0xLGM9MDticmVh''@;'; put 'put ''a31pZihhW0ErND4+Ml09MCwhcClmb3IoYVtBKzE2Pj4yXT0wOzspe2lmKCFjKXtjPTA7YnJlYWsgZX1rPTB8YVtjPj4yXSxtaVs2MyZtXShsLGMsMzIpLGM9a31mb3IobD0ocD0wfGFbQSs4Pj4yXSkrKGFbQSsxMj4+Ml08PDIpfDA7Oyl7aWYocD4+PjA+PWw+Pj4wKXtjPTA7YnJlYWsgZX0o''@;'; put 'put ''Zj0wfGFbcD4+Ml0pJiYoYVtwPj4yXT1jLGM9MHxhW2Y+PjJdLGFbZj4+Ml09MCkscD1wKzR8MH19fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gcHUobCl7dmFyIHAsYz0wLGY9MDs0MDk2JmFbKGY9MHxhWyhjPTgrKGx8PTApfDApPj4yXSk+PjJdJiYoQ2MobCwwKSxmPTB8YVtjPj4y''@;'; put 'put ''XSksbD0wfGFbKHA9ZisxNnwwKT4+Ml07ZG97aWYoKDB8bCk8MCl7aWYoMTImKGM9MHxhW2Y+PjJdKXwwKXtsPTB8eEEoMHxhW2YrND4+Ml0pLGFbcD4+Ml09bDticmVha31pZigxMTImYyl7Zm9yKGw9MCxjPWYrOHwwO2M9MHxhW2M+PjJdOylsPWwrMXwwO2FbcD4+Ml09bH19fXdoaWxlKDAp''@;'; put 'put ''O3JldHVybiAwfGx9ZnVuY3Rpb24geEEobCl7cmV0dXJuKGx8PTApPzErKDB8eEEoMHxhW2wrND4+Ml0pKSsoMHx4QSgwfGFbbD4+Ml0pKXwwOjB9ZnVuY3Rpb24gZWgobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wOzQwOTYmYVthWzgrKGx8PTApPj4yXT4+Ml18MCYmQ2MobCwwKSwobT0w''@;'; put 'put ''IT0oMHxjKSk/KDQwOTYmYVthW2MrOD4+Ml0+PjJdfDAmJkNjKGMsMCksKDB8YVtjKzE2Pj4yXSk9PSgwfGFbbCsxNj4+Ml0pPyhmPWMscD03KTpjPTApOihmPTAscD03KTtlOmRve2lmKDc9PSgwfHApKXtmb3IoO2Y7KXtpZigoMHxmKT09KDB8bCkpe2M9MDticmVhayBlfWY9MHxhW2YrMjg+''@;'; put 'put ''PjJdLHA9N31pZigwfChwPTB8YVsoZj1sKzI4fDApPj4yXSkmJihhWyhBPXArMjR8MCk+PjJdPSgwfGFbQT4+Ml0pLTEpLGFbbCszMj4+Ml09MCxhW2Y+PjJdPTAsbSl7YVtmPj4yXT1jLGFbbD4+Ml09MjgsYVsoQT1jKzI0fDApPj4yXT0xKygwfGFbQT4+Ml0pO2JyZWFrfWFbbD4+Ml09YVth''@;'; put 'put ''W2wrMTY+PjJdPj4yXSxjPXA7YnJlYWt9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gSm0obCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO0c9MHxhWyhtPTQrKGx8PTApfDApPj4yXTtlOmRve2lmKEcpaWYoYyl7aWYoUj0w''@;'; put 'put ''fGFbYVtsKzE2Pj4yXT4+Ml0sNDA5NiZhW2FbKEE9bCs4fDApPj4yXT4+Ml18MCYmQ2MobCwwKSwwfChwPTB8YVtHKzMyPj4yXSkmJigwfHEwWzEyNyZwXShsLDMsYyxHKSk8MCl7Yz0wO2JyZWFrfWlmKGFbbT4+Ml09YyxhW2wrMTI+PjJdPTA9PSgwfChwPTB8YVtjKzI4Pj4yXSkpPzUyOnAs''@;'; put 'put ''MTEyJihwPTB8YVthW0E+PjJdPj4yXSkpYz1HO2Vsc2V7ZG97aWYoISgyJnApKXtpZigzJnApe2lmKDM9PSgzJmZ8MCkpe2M9RzticmVhayBlfWJyZWFrfWlmKDEmZil7Yz1HO2JyZWFrIGV9YnJlYWt9aWYoMiZmfDApe2M9RzticmVhayBlfX13aGlsZSgwKTt3PTB8czAobCksYVsocD0wfGFb''@;'; put 'put ''QT4+Ml0pPj4yXT0tNDA5NyYoRD0wfGFbcD4+Ml0pLGFbcCs0Pj4yXT0wLGFbcCsxNj4+Ml09MDt0OmRve2lmKDMmRHwwKWZvcihEPTB8YVtwKzg+PjJdLG09RCsoYVtwKzEyPj4yXTw8Mil8MCxwPUQ7Oyl7aWYocD4+PjA+PW0+Pj4wKWJyZWFrIHQ7YVtwPj4yXT0wLHA9cCs0fDB9fXdoaWxl''@;'; put 'put ''KDApO2ZvcihiPTA9PSgyJmZ8MCksaz1jKzh8MCxNPWMrNHwwLEQ9YysyNHwwOzspe2lmKCF3KXtjPUc7YnJlYWsgZX1mPTB8YVt3Pj4yXSxiJiYocD0ocD0oMHwocD0wfGFbaz4+Ml0pKTwwPzB8YVt3Kzg+PjJdOncrKDAtcCl8MCkrKDB8YVtjPj4yXSl8MCwoMHwoQT0wfGFbTT4+Ml0pKTww''@;'; put 'put ''JiYocD0wfGFbcD4+Ml0pLHA9KG09MHxhW0Q+PjJdKT8wfG1pWzYzJm1dKGwscCxjKTowfGNUKDAscCxBKSxhW3crND4+Ml09cCksbWlbNjMmUl0obCx3LDMyKSx3PWZ9fX1lbHNlIGM9RztlbHNlIGFbbT4+Ml09YyxHPTB8YVtjKzI4Pj4yXSxhW2wrMTI+PjJdPTA9PSgwfEcpPzUyOkd9d2hp''@;'; put 'put ''bGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBjVChsLGMsZil7bHw9MDt2YXIgcD0wLG09MCxBPTA7aWYobT1jfD0wLCgwfChmfD0wKSk+PTEpe2ZvcihtPSgoQT1jK2YrLTF8MCk+Pj4wPGM+Pj4wP2M6QSkrKDEtbSkmLTIscD1jOyEocD4+PjA+PUE+Pj4wKTspbD0wfEFyKCgoMHxYdFtwPj4w''@;'; put 'put ''XSk8PDgpK2wrKDB8WHRbcCsxPj4wXSl8MCwxNzEwOTgxMSkscD1wKzJ8MDsocD1jK218MCk+Pj4wPkE+Pj4wP2M9ZjooYz1mLGw9MHxBcigoKDB8WHRbcD4+MF0pPDw4KStsfDAsMTcxMDk4MTEpKX1lbHNle2Zvcig7KHA9MHxmZVtjPj4wXSk8PDI0Pj4yNDspbD1mPTB8QXIoKCgyNTUmcCk8''@;'; put 'put ''PDgpK2wrKDI1NSYoQT0wfGZlW2MrMT4+MF0pKXwwLDE3MTA5ODExKSxjPWMrKEE8PDI0Pj4yND8yOjEpfDA7Yz1jLW18MH1yZXR1cm4gMHxBcihsK2N8MCwxNzEwOTgxMSl9ZnVuY3Rpb24gJHIobCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCxwPWxlLGxlPWxlKzE2fDAsYVsobT1w''@;'; put 'put ''KT4+Ml09Znw9MCxmPTB8bkMobCxjLG0pLGxlPXAsMHxmfWZ1bmN0aW9uIG5DKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYj0wO0E9bGUsbGU9bGUrMTZ8MCxwPUEsYVs0NjkzOF09dz0obT0zPT0oMHwobHw9MCkpKT8wfGFbNDY5MzhdOjI9PSgwfGwpPzE6bCxhWzQ2OTM5XT0oYj0w''@;'; put 'put ''fGFbNDY5MzldKT4+PjA+dz4+PjA/Yjp3O2Rve2lmKHc+Pj4wPCgwfGFbNDY5MzZdKT4+PjApe2lmKCEobD0wfGFbNDY5MzddKSYmKGw9MHxoZmUoKSxhWzQ2OTM3XT1sLCFsKSl7bD0xO2JyZWFrfW18fChkZmUobCksbD0wfGFbNDY5MzddKSx5TChsLGMsZiksbD0wfWVsc2V7aWYoMHxhWzQ2''@;'; put 'put ''OTM1XSl7VlAobCxjLGYpLGw9MDticmVha31tP2w9MHxhWzE1NzEyXTooYj0wfGFbMTU3MTJdLGFbcD4+Ml09MT09KDB8bCk/OTYzNDk6OTYzNTUsVDAoYiw5NjM2MyxwKSxsPWIpLHlMKGwsYyxmKSxsPTB9fXdoaWxlKDApO3JldHVybiBsZT1BLDB8bH1mdW5jdGlvbiBWUChsLGMsZil7bHw9''@;'; put 'put ''MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7MD09KDB8YVs0Njk0MF0pJiYobT0wfEYwKDB8YVs0NTkwXSksYVs0Njk0MF09bSwwPT0oMHxtKSk/X3UoOTYzNjgsMHxhWzE1NzEyXSk6cD00O2Rve2lmKDQ9PSgwfHApKXtmb3IoMyE9KDB8bCkmJihfb1s2MyZhWzQ2OTM1XV0oMT09KDB8bCk/OTYz''@;'; put 'put ''NDk6OTYzNTUpLF9vWzYzJmFbNDY5MzVdXSg5NzAyNykpOzspe2lmKCgwfChsPTB8QUwoMHxhWzQ2OTQwXSwwfGFbNDU5MF0sYyxmKSkpPi0xJigwfGwpPCgwfChwPTB8YVs0NTkwXSkpKXtwPTc7YnJlYWt9aWYoYVs0NTkwXT1tPSgwfChwPDw9MSkpPigwfChtPWwrMXwwKSk/cDptLCEoMHxV''@;'; put 'put ''YSgwfGFbNDY5NDBdLG0pKSl7cD05O2JyZWFrfX1pZig3PT0oMHxwKSl7X29bNjMmYVs0NjkzNV1dKDB8YVs0Njk0MF0pO2JyZWFrfWlmKDk9PSgwfHApKXtfdSg5NjM2OCwwfGFbMTU3MTJdKTticmVha319fXdoaWxlKDApfWZ1bmN0aW9uIFhtKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9''@;'; put 'put ''bGUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0wLG5DKDEsbCxwKSxsZT1mfWZ1bmN0aW9uIHVzKGwsYyxmKXtsfD0wLGN8PTA7dmFyIHA9MDsoZnw9MCk/cD0wOihjPWY9MD09KDB8Yyk/MTAyNDpjLGY9MHxGMChmKSxwPTEpLGFbbCsxMj4+Ml09cCxhW2w+PjJdPWYsYVtsKzg+PjJdPWYrYyxhW2wr''@;'; put 'put ''ND4+Ml09ZixmZVtmPj4wXT0wfWZ1bmN0aW9uIFEwKGwsYyl7dmFyIGYsdyxwPTAsbT0wLEE9MCxiPTA7cmV0dXJuIHA9KEE9KDB8YVsodz04KyhsfD0wKXwwKT4+Ml0pLShtPTB8YVtsPj4yXSl8MCk8PDEscD0oQT1BKyhjfD0wKXwwKT4+PjA+cD4+PjA/QTpwLGM9bSxtPSgwfGFbKEE9bCs0''@;'; put 'put ''fDApPj4yXSktbXwwLDB8YVsoZj1sKzEyfDApPj4yXT9jPTB8VWEoYyxwKTooZ28oMHwoYj0wfEYwKHApKSwwfGMsMHxtKSxhW2Y+PjJdPTEsYz1iKSxhW2w+PjJdPWMsYVtBPj4yXT1jK20sYVt3Pj4yXT1jK3AsMH1mdW5jdGlvbiBkVChsLGMsZil7Y3w9MDt2YXIgbSxwPTA7cmV0dXJuKChw''@;'; put 'put ''PTB8YVsobT00KyhsfD0wKXwwKT4+Ml0pKyhmfD0wKXwwKT4+PjA+KDB8YVtsKzg+PjJdKT4+PjAmJihRMChsLGYpLHA9MHxhW20+PjJdKSxnbygwfHAsMHxjLDB8ZiksYVttPj4yXT0oMHxhW20+PjJdKStmLDB8Zn1mdW5jdGlvbiB1byhsLGMpe3JldHVybiAwfGRUKGx8PTAsY3w9MCwwfFVv''@;'; put 'put ''KGMpKX1mdW5jdGlvbiBDMihsKXswfGFbMTIrKGx8PTApPj4yXSYmRnQoMHxhW2w+PjJdKX1mdW5jdGlvbiBMNihsKXt2YXIgYyxmO3JldHVybihmPTB8YVsoYz00KyhsfD0wKXwwKT4+Ml0pPj4+MD4oMHxhW2w+PjJdKT4+PjA/KGFbYz4+Ml09ZistMSxsPTB8WHRbZj4+MF0pOmw9LTEsMHxs''@;'; put 'put ''fWZ1bmN0aW9uIFZoKGwsYyl7dmFyIGY9MDtyZXR1cm4gMCE9KDB8KGN8PTApKSYwPT0oMHwoZj0wfGFvKGx8PTAsOTY0MTYsMCkpKSYmKGZ1bmN0aW9uIHJDKGwpe3ZhciBwLGM9MCxmPTA7Zm9yKGJDKHA9MHxkaShsfD0wKSxwLDEwNywwLDEpLGY9MHxEdChwKTtmOyl7Zm9yKGlDKGwsZiks''@;'; put 'put ''Yz0wfHcwKHAsZik7Yzspb0MobCxjKSxjPTB8UzAocCxjKTtmPTB8enQocCxmKX19KGwpLGY9MHxhbyhsLDk2NDE2LDApKSwwfGZ9ZnVuY3Rpb24gVDUobCl7dmFyIGM9MDtmZVsoYz0yNCsobHw9MCl8MCk+PjBdPTY0fGZlW2M+PjBdLGZ1bmN0aW9uIFpQKGwpe3ZhciBwLG0sYz0wLGY9MDtm''@;'; put 'put ''PTB8aDAobHw9MCw5NjQxNiwyMCwwKSxhWyhwPWYrOHwwKT4+Ml09MHxaaChsLDE4MzY0LDB8YVs0NTg5XSksYVsobT1mKzEyfDApPj4yXT0wfFpoKGwsMTgzNjQsMHxhWzQ1ODldKSxhWyhmPWYrMTZ8MCk+PjJdPTB8WmgobCwxODM2NCwwfGFbNDU4OV0pLChjPTB8azEobCkpPyhsPTB8Vmgo''@;'; put 'put ''YywwKSxlaCgwfGFbcD4+Ml0sMHxhW2wrOD4+Ml0pLGVoKDB8YVttPj4yXSwwfGFbbCsxMj4+Ml0pLGVoKDB8YVtmPj4yXSwwfGFbbCsxNj4+Ml0pKTowPT0oMHwoYz0wfGFbNDY5NDFdKSl8KDB8Yyk9PSgwfGwpfHwoYz0wfFZoKGMsMCksamgoMHxhW2MrOD4+Ml0sMHxhW3A+PjJdLGwsMSks''@;'; put 'put ''amgoMHxhW2MrMTI+PjJdLDB8YVttPj4yXSxsLDIpLGpoKDB8YVtjKzE2Pj4yXSwwfGFbZj4+Ml0sbCwwKSl9KGwpLGFDKDA9PSgwfChjPTB8azEobCkpKT9sOmMsbCl9ZnVuY3Rpb24gaUMobCxjKXt2YXIgZjtsfD0wLDAhPSgwfChmPTB8aWMoY3w9MCkpKSYmMCE9KDB8YVtmKzg+PjJdKXx8''@;'; put 'put ''YUMobCxjKX1mdW5jdGlvbiBvQyhsLGMpe3ZhciBmO2x8PTAsMCE9KDB8KGY9MHxpYyhjfD0wKSkpJiYwIT0oMHxhW2YrOD4+Ml0pfHxhQyhsLGMpfWZ1bmN0aW9uIGljKGwpe3JldHVybiAwfGFvKGx8PTAsOTY0MDQsMCl9ZnVuY3Rpb24gYUMobCxjKXtsfD0wO3ZhciBtLGY9MCxwPTA7Zj0w''@;'; put 'put ''fGgwKGN8PTAsOTY0MDQsMTYsMCksbT0wfEo0KGwsMyZhW2M+PjJdKSxwPWYrOHwwO2U6ZG97aWYoISgwfGFbcD4+Ml0pKWZvcihsPTB8ZGkobCksYVtwPj4yXT0wfEo0KGwsMyZhW2M+PjJdKSxsPTB8VEEoYyksZj1mKzEyfDAsYVtmPj4yXT0wfE10KDB8Y3IoYyksKCgwfGwpPjQ/bDo0KTw8''@;'; put 'put ''MiksbD0wfG1pWzYzJmFbbT4+Ml1dKG0sMCwxMjgpOzspe2lmKCFsKWJyZWFrIGU7cD0wfHIwKHA9MHxjcihjKSwwfGFbbCsxMj4+Ml0pLGFbKDB8YVtmPj4yXSkrKGFbbCsxNj4+Ml08PDIpPj4yXT1wLGw9MHxtaVs2MyZhW20+PjJdXShtLGwsOCl9fXdoaWxlKDApfWZ1bmN0aW9uIEo0KGws''@;'; put 'put ''Yyl7dmFyIGYscDtjfD0wLHA9bGUsbGU9bGUrMTZ8MCxmPXAsbD0wfFZoKGx8PTAsMCk7ZTpkb3tpZihsKXN3aXRjaCgwfGMpe2Nhc2UgMDpsPTB8YVtsKzE2Pj4yXTticmVhayBlO2Nhc2UgMTpsPTB8YVtsKzg+PjJdO2JyZWFrIGU7Y2FzZSAyOmNhc2UgMzpsPTB8YVtsKzEyPj4yXTticmVh''@;'; put 'put ''ayBlO2RlZmF1bHQ6YVtmPj4yXT1jLCRyKDEsOTY0MjksZiksbD0wO2JyZWFrIGV9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXAsMHxsfWZ1bmN0aW9uIFRBKGwpe3JldHVybiAwfCgobD0wfEo0KDB8ZGkoMHxjcihsfD0wKSksMyZhW2w+PjJdKSk/MHxwdShsKTowKX1mdW5jdGlvbiBq''@;'; put 'put ''aChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MDtmb3IobT0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCwwLDEyOCk7bTspQT0wfGpkKGYsMHxhW20rOD4+Ml0sMHxhW20rMTI+PjJdLDB8YVttKzE2Pj4yXSxwKSxmZVtBKzIyPj4wXT0wfGZlW20rMjI+PjBdLGZlW0ErMjE+PjBd''@;'; put 'put ''PTB8ZmVbbSsyMT4+MF0sbWlbNjMmYVtjPj4yXV0oYyxBLDEpLG09MHxtaVs2MyZhW2w+PjJdXShsLG0sOCl9ZnVuY3Rpb24gamQobCxjLGYscCxtKXt2YXIgQTtyZXR1cm4gY3w9MCxmfD0wLHB8PTAsbXw9MCxBPTB8TXQobHw9MCwyNCksZmVbQSsyMD4+MF09bSxhW0ErOD4+Ml09MHxyMChs''@;'; put 'put ''LGMpLGFbQSsxMj4+Ml09MHxyMChsLGYpLGFbQSsxNj4+Ml09cCwwfEF9ZnVuY3Rpb24gSUEobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLGY9bGUsbGU9bGUrMzJ8MCxhWyhwPWYpKzg+PjJdPWN8PTAsYz0wfG1pWzYzJmFbbD4+Ml1dKGwscCw0KSxsZT1mLDB8Y31mdW5jdGlvbiBsQyhsLGMp''@;'; put 'put ''e3ZhciBmO3JldHVybiBjfD0wLGY9MHxlaChsfD0wLDApLGM9MHxJQShsLGMpLGVoKGwsZiksMHxjfWZ1bmN0aW9uIHNDKGwsYyl7cmV0dXJuIGN8PTAsMHwoKGw9MHxpYyhsfD0wKSk/MHxJQSgwfGFbbCs4Pj4yXSxjKTowKX1mdW5jdGlvbiBzaShsLGMsZixwKXt2YXIgbSxBO3JldHVybiBj''@;'; put 'put ''fD0wLGZ8PTAscHw9MCxBPWxlLGxlPWxlKzE2fDAsbT1BLChsfD0wKXx8KGw9MHxhWzQ2OTQxXSl8fChmZVttPj4wXT0wfGZlWzE4NDAwXSxmZVttKzE+PjBdPTB8ZmVbMTg0MDFdLGZlW20rMj4+MF09MHxmZVsxODQwMl0sZmVbbSszPj4wXT0wfGZlWzE4NDAzXSxsPTB8b2MoMCxtLDApLGFb''@;'; put 'put ''NDY5NDFdPWwpLGw9cD8wfGZ1bmN0aW9uIHpQKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wO2I9MHxkaShsfD0wKSxWaChsLDEpLG09MHxsQyhBPTB8SjQobCxjKSxmKTtlOmRve2lmKG0pdz1tKzEyfDAsZTAobCwwfGFbdz4+Ml0pLGFbdz4+Ml09MHxyMChsLHAp''@;'; put 'put ''LHc9MTY7ZWxzZXtpZigwfChtPTB8SUEoQSxmKSkpe209MHxqZChsLGYscCwwfGFbbSsxNj4+Ml0sYyksbWlbNjMmYVtBPj4yXV0oQSxtLDEpLHc9MTY7YnJlYWt9c3dpdGNoKG09MHxqZChsLGYscCwwfHB1KEE9MHxKNChiLGMpKSxjKSxtaVs2MyZhW0E+PjJdXShBLG0sMSksMHxjKXtjYXNl''@;'; put 'put ''IDA6YkMoYixiLDU3LG0sMSksdz0xNjticmVhayBlO2Nhc2UgMTpmb3IoZj0wfER0KGIpOzspe2lmKCFmKXt3PTE2O2JyZWFrIGV9dUMobCxmLG0pLGY9MHx6dChiLGYpfWNhc2UgMjpjYXNlIDM6Zm9yKEE9MHxEdChiKTs7KXtpZighQSl7dz0xNjticmVhayBlfWZvcihmPTB8dzAoYixBKTtm''@;'; put 'put ''Oyl1QyhsLGYsbSksZj0wfFMwKGIsZik7QT0wfHp0KGIsQSl9ZGVmYXVsdDpicmVhayBlfX19d2hpbGUoMCk7cmV0dXJuIDE2PT0oMHx3KSYmMD09KDB8YykmMCE9KDB8bSkmJlZsKGwsbSxwKSx0byhsLGwsbSksMHxtfShsLGMsZixwKTowfGZ1bmN0aW9uIHBUKGwsYyxmKXtyZXR1cm4gZnw9''@;'; put 'put ''MCwwfChsPShsPTB8SjQobHw9MCxjfD0wKSk/MHxJQShsLGYpOjApfShsLGMsZiksbGU9QSwwfGx9ZnVuY3Rpb24gdUMobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxwPTAsQT0wO2M9MHxpYyhjfD0wKSwoMHwocD0wfGFbKG09ZisxNnwwKT4+Ml0pKT4zP2FbKGM9YysxMnwwKT4+Ml09MHxxMFsx''@;'; put 'put ''MjcmYVs4KygwfGFbKEE9MHxhW2wrNjQ+PjJdKT4+Ml0pPj4yXV0oMHxhW0ErMTI+PjJdLDB8YVtjPj4yXSxwPDw9MixwKzR8MCk6Yz1jKzEyfDAsQT0wfHIwKGwsMHxhW2YrMTI+PjJdKSxhWygwfGFbYz4+Ml0pKyhhW20+PjJdPDwyKT4+Ml09QX1mdW5jdGlvbiBWbChsLGMsZil7Y3w9MCxm''@;'; put 'put ''fD0wO3ZhciB3LHA9MCxtPTAsQT0wLGI9MDt3PTB8Y3IobHw9MCksQT0xMisoMHxpYyhsKSl8MCxlMCh3LDB8YVsoMHxhW0E+PjJdKSsoYVsoYj1jKzE2fDApPj4yXTw8Mik+PjJdKSxtPTB8cjAodyxmKSxhWygwfGFbQT4+Ml0pKyhhW2I+PjJdPDwyKT4+Ml09bTtkb3tpZighKDMmYVtsPj4y''@;'; put 'put ''XSkpe2lmKEE9MHxsQyhwPTB8YVsxNisoMHxWaCh3LDApKT4+Ml0sMHxhWyhtPWMrOHwwKT4+Ml0pKXtlMCh3LDB8YVsoYj1BKzEyfDApPj4yXSksYVtiPj4yXT0wfHIwKHcsZik7YnJlYWt9Yj0wfGpkKHcsMHxhW20+PjJdLGYsMHxhW2I+PjJdLDMmYVtsPj4yXSksbWlbNjMmYVtwPj4yXV0o''@;'; put 'put ''cCxiLDEpO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gdG8odyxsLGMpLDB9ZnVuY3Rpb24gTnMobCxjLGYpe2Z8PTAsbD0wfEo0KGx8PTAsY3w9MCk7ZG97aWYobCl7aWYoYz0wfGFbbD4+Ml0sZil7bD0wfG1pWzYzJmNdKGwsZiw4KTticmVha31sPTB8bWlbNjMmY10obCwwLDEyOCk7YnJlYWt9''@;'; put 'put ''bD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gY0MobCl7dmFyIGM9MDtyZXR1cm4gYVs0Njk0Ml09bHw9MCwwfChjPTB8aWMobCkpJiYoazIobCxjKSxIaShsLDB8YVtjPj4yXSkpLChjPTB8VmgobCwwKSk/MD09KDB8JDQobCwwfGFbYys4Pj4yXSkpJiYwPT0oMHwkNChsLDB8YVtj''@;'; put 'put ''KzEyPj4yXSkpJiYwPT0oMHwkNChsLDB8YVtjKzE2Pj4yXSkpPyhIaShsLDB8YVtjPj4yXSksYz0wKTpjPTE6Yz0wLDB8Y31mdW5jdGlvbiBrMihsLGMpe2N8PTA7dmFyIHAsbSxmPTA7Zm9yKG09MHxjcihsfD0wKSxwPTB8VEEobCksYz1jKzEyfDAsbD0wO2Y9MHxhW2M+PjJdLCEoKDB8bCk+''@;'; put 'put ''PSgwfHApKTspZTAobSwwfGFbZisobDw8Mik+PjJdKSxsPWwrMXwwO3h0KG0sZil9ZnVuY3Rpb24gTGkobCxjKXtyZXR1cm4oYz0wfHNDKGx8PTAsY3w9MCkpPyhsPTB8YVsxMisoMHxpYyhsKSk+PjJdLGM9MHxhW2wrKGFbYysxNj4+Ml08PDIpPj4yXSk6Yz0wLDB8Y31mdW5jdGlvbiBIbyhs''@;'; put 'put ''LGMpe3JldHVybiBjfD0wLGw9MHxhWzEyKygwfGljKGx8PTApKT4+Ml0sMHxhW2wrKGFbYysxNj4+Ml08PDIpPj4yXX1mdW5jdGlvbiBrYyhsLGMsZil7cmV0dXJuIGZ8PTAsKGM9MHxzQyhsfD0wLGN8PTApKT8oVmwobCxjLGYpLGM9MCk6Yz0tMSwwfGN9ZnVuY3Rpb24gSTUobCxjLGYscCl7''@;'; put 'put ''Y3w9MCxmfD0wLHB8PTA7dmFyIG09MDtyZXR1cm4obT0wfHNpKG09MHxjcihsfD0wKSwzJmFbbD4+Ml0sYywwKSl8fChtPTB8c2kobT0wfGNyKGwpLDMmYVtsPj4yXSxjLHApKSxWbChsLG0sZiksMH1mdW5jdGlvbiBSNihsLGMpe2N8PTA7dmFyIEEsZj0wLHA9MCxtPTA7QT0wfGNyKGx8PTAp''@;'; put 'put ''LG09MHxhW2w+PjJdO2U6ZG97aWYoMyYoYVtjPj4yXV5tKSlmPTE7ZWxzZSBmb3IoZj0xLHA9MDs7KXtpZighKHA9MHxOcyhBLDMmbSxwKSkpYnJlYWsgZTtpZighKGY9MHxzQyhjLDB8YVtwKzg+PjJdKSkpe2Y9MTticmVhayBlfVZsKGMsZixtPTB8SG8obCxwKSksMHxPbyhtKSYmazAoMHxI''@;'; put 'put ''byhjLGYpKSxmPTAsbT0wfGFbbD4+Ml19fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gdzAobCxjKXt2YXIgZj0wO3JldHVybihjPTB8U2YobHw9MCxjfD0wKSk/KENjKDB8YVsoZj1sKzQ0fDApPj4yXSwwfGFbKGw9YyszMnwwKT4+Ml0pLGM9MHxtaVs2MyZhWyhjPTB8YVtmPj4yXSk+''@;'; put 'put ''PjJdXShjLDAsMTI4KSxhW2w+PjJdPTB8UDMoMHxhW2Y+PjJdKSk6Yz0wLDB8Y31mdW5jdGlvbiBTZihsLGMpe3ZhciBmLHA7cmV0dXJuIHA9bGUsbGU9bGUrNDh8MCxmPXAsKDB8YVsyNCsoY3w9MCk+PjJdKT09KDB8KGx8PTApKT9sPWMrMjh8MDooYVtmKzE2Pj4yXT1jLGw9MHxtaVs2MyZh''@;'; put 'put ''WyhsPTB8YVtsKzQwPj4yXSk+PjJdXShsLGYsNCkpLGxlPXAsMHxsfWZ1bmN0aW9uIFMwKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuKGY9MHxTZihsfD0wLDB8YVsoMz09KDMmYVsoY3w9MCk+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pKT8oQ2MoMHxhWyhwPWwrNDR8MCk+PjJdLDB8YVsoZj1m''@;'; put 'put ''KzMyfDApPj4yXSksbD0wfG1pWzYzJmFbKGw9MHxhW3A+PjJdKT4+Ml1dKGwsYyw4KSxhW2Y+PjJdPTB8UDMoMHxhW3A+PjJdKSk6bD0wLDB8bH1mdW5jdGlvbiBNZihsLGMpe3ZhciBmPTA7cmV0dXJuKGM9MHxTZihsfD0wLGN8PTApKT8oQ2MoMHxhWyhmPWwrNDR8MCk+PjJdLDB8YVsobD1j''@;'; put 'put ''KzI4fDApPj4yXSksYz0wfG1pWzYzJmFbKGM9MHxhW2Y+PjJdKT4+Ml1dKGMsMCwxMjgpLGFbbD4+Ml09MHxQMygwfGFbZj4+Ml0pKTpjPTAsMHxjfWZ1bmN0aW9uIEYzKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuKGY9MHxTZihsfD0wLDB8YVsoMj09KDMmYVsoY3w9MCk+PjJdfDApP2M6Yyst''@;'; put 'put ''NDh8MCkrNDA+PjJdKSk/KENjKDB8YVsocD1sKzQ0fDApPj4yXSwwfGFbKGY9ZisyOHwwKT4+Ml0pLGw9MHxtaVs2MyZhWyhsPTB8YVtwPj4yXSk+PjJdXShsLGMsOCksYVtmPj4yXT0wfFAzKDB8YVtwPj4yXSkpOmw9MCwwfGx9ZnVuY3Rpb24gTXMobCxjKXt2YXIgZj0wO3JldHVybihmPTB8''@;'; put 'put ''dzAobHw9MCxjfD0wKSl8fChmPTB8TWYobCxjKSksMHxmfWZ1bmN0aW9uIFZzKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtlOmRve2lmKDI9PSgzJmFbYz4+Ml18MCkpe2lmKCEoYz0wfFMwKGwsYykpKXtjPTA7ZG97aWYoIShjPWM/MHxGMyhsLGMpOjB8TWYobCxmKSkpe2M9MDticmVhayBlfX13''@;'; put 'put ''aGlsZSgoMHxhW2MrNDA+PjJdKT09KDB8ZikpfX1lbHNlIGRve2lmKGM9MHxGMyhsLGMpLCFjKXtjPTA7YnJlYWsgZX19d2hpbGUoKDB8YVtjKzQwPj4yXSk9PSgwfGYpKX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIFlQKGwsYyl7RDUobHw9MCxjfD0wKX1mdW5jdGlvbiBENShsLGMp''@;'; put 'put ''e2x8PTA7dmFyIGYscCxtLEEsYix3PTAsaz0wLE09MCxEPTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxmPWIsQT0yPT0oMHwodz0zJmFbKGN8PTApPj4yXSkpP2M6YystNDh8MCxwPTB8YVsodz0zPT0oMHx3KT9jOmMrNDh8MCkrNDA+PjJdLG09MHxhW0ErNDA+PjJdO2wmJihhW2Y+PjJdPWFbYz4+''@;'; put 'put ''Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSwhKDB8WDQobCxwLG0sZikpKTspaz0wfFNmKGwscCksaDEoMHxhWyhEPWwrNDR8MCk+PjJdLGsrMzJ8MCxBKSxoMSgwfGFbKE09bCs0OHwwKT4+Ml0saysyNHwwLEEpLGs9MHxT''@;'; put 'put ''ZihsLG0pLGgxKDB8YVtEPj4yXSxrKzI4fDAsdyksaDEoMHxhW00+PjJdLGsrMjB8MCx3KSxsPTB8azEobCk7bGU9Yn1mdW5jdGlvbiBYNChsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG0sdyxBPTA7cmV0dXJuIHc9bGUsbGU9bGUrNDh8MCxtPXcsMD09KDB8KGN8PTApKXwwPT0oMHwoZnw9MCkp''@;'; put 'put ''fHwoYVttPj4yXT1hW3A+PjJdLGFbbSs0Pj4yXT1hW3ArND4+Ml0sYVttKzg+PjJdPWFbcCs4Pj4yXSxhW20rMTI+PjJdPWFbcCsxMj4+Ml0sYVttKzQwPj4yXT1jLDA9PSgwfChBPTB8U2YobCxmKSkpKT9sPTA6KENjKDB8YVsocD1sKzQ4fDApPj4yXSwwfGFbKEE9QSsyMHwwKT4+Ml0pLGw9''@;'; put 'put ''MHxtaVs2MyZhWyhsPTB8YVtwPj4yXSk+PjJdXShsLG0sNCksYVtBPj4yXT0wfFAzKDB8YVtwPj4yXSkpLGxlPXcsMHxsfWZ1bmN0aW9uIGgxKGwsYyxmKXtmfD0wLENjKGx8PTAsMHxhWyhjfD0wKT4+Ml0pLG1pWzYzJmFbbD4+Ml1dKGwsZiwxKSxhW2M+PjJdPTB8UDMobCl9ZnVuY3Rpb24g''@;'; put 'put ''S2EobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsayxNLFIsQT0wLHc9MCxEPTAsRz0wO1I9bGUsbGU9bGUrNDh8MCxiPVIrMjR8MCxNPVIrMTZ8MCxrPVI7ZG97aWYoMHxLNChsLDIscCxNLDApKWFbKEc9ayk+PjJdPTAsYVtHKzQ+PjJdPTAsQT0wfGFbKEc9TSkr''@;'; put 'put ''ND4+Ml0sYVsoRD1rKzh8MCk+PjJdPWFbRz4+Ml0sYVtEKzQ+PjJdPUEsYVtrPj4yXT0yLEQ9NztlbHNlIGlmKHApRD0xNztlbHNle2lmKDB8bSYmMD09KDB8TEEobCkpKXtEPTE4O2JyZWFrfWFbaz4+Ml09MCxhW2srND4+Ml09MCxhW2srOD4+Ml09MCxhW2srMTI+PjJdPTAsRD03fX13aGls''@;'; put 'put ''ZSgwKTtlOmRve2lmKDc9PSgwfEQpKXthW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxBPTB8WDQobCxjLGYsYik7dDpkb3tpZighQSl7aWYoMHx0NyhsKSYmKGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+''@;'; put 'put ''Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0sYVtiKzEyPj4yXT1hW2srMTI+PjJdLDB8KHc9MHxYNChsLGYsYyxiKSkpKXtBPXc7YnJlYWt9ZG97aWYoMHxtKXtpZihBPTB8ZGkobCksYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4y''@;'; put 'put ''XSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sISgoQT0wfFg0KEEsYyxmLGIpKXx8MHx0NyhsKSYmKEE9MHxkaShsKSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxBPTB8WDQoQSxmLGMsYiksQSkpKWJy''@;'; put 'put ''ZWFrO1lQKGwsQSk7YnJlYWsgdH19d2hpbGUoMCk7RD0xNzticmVhayBlfX13aGlsZSgwKX19d2hpbGUoMCk7cmV0dXJuIDE3PT0oMHxEKSYmKG0/RD0xODpBPTApLDE4PT0oMHxEKSYmKDAhPSgwfGZ1bmN0aW9uIFdQKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSxwPTA7cmV0dXJuIEE9bGUs''@;'; put 'put ''bGU9bGUrMzJ8MCxwPUErMTZ8MCxtPUEscD0wIT0oMHxMQShsfD0wKSkmJihhW20+PjJdPTAsYVttKzQ+PjJdPTAsYVttKzg+PjJdPTAsYVttKzEyPj4yXT0wLGFbcD4+Ml09YVttPj4yXSxhW3ArND4+Ml09YVttKzQ+PjJdLGFbcCs4Pj4yXT1hW20rOD4+Ml0sYVtwKzEyPj4yXT1hW20rMTI+''@;'; put 'put ''PjJdLDAhPSgwfFg0KGwsYyxmLHApKSk/MDoyNTUmKCgwfFh0W2wrMjQ+PjBdKT4+PjImMV4xKXwoMHxjKSE9KDB8ZiksbGU9QSwwfHB9KGwsYyxmKSkmJjAhPSgwfEs0KGwsMixwLE0sMSkpPyhBPTB8ZnVuY3Rpb24gbVQobCxjLGYscCxtKXtmfD0wLHB8PTAsbXw9MDt2YXIgQSx3LGIsayxN''@;'; put 'put ''LEQ9MDtyZXR1cm4gWW4obHw9MCxjfD0wLDEpLFluKGwsZiwxKSx3PTQ4KyhBPTB8TXQobCw5NikpfDAsTT0wfEgzKGwsMiksYj0wfGFbdz4+Ml0saz0wfGFbQT4+Ml0sYVsoRD1BKzh8MCk+PjJdPXAsYVtEKzQ+PjJdPW0sYVsoRD1BKzU2fDApPj4yXT1wLGFbRCs0Pj4yXT1tLGFbQT4+Ml09''@;'; put 'put ''MTIma3wobT1NPDw0KXwyLGFbdz4+Ml09MTImYnxtfDMsYVtBKzg4Pj4yXT1jLGFbQSs0MD4+Ml09ZixENShsLEEpLDY0JmZlW2wrMjQ+PjBdJiYoaDAoQSw5NjQwNCwxNiwwKSxvQyhsLEEpKSx2MChsLEEpLDB8QX0obCxjLGYsMHxhWyhBPU0pPj4yXSwwfGFbQSs0Pj4yXSksTDUobCwyLEEp''@;'; put 'put ''KTpBPTApLGxlPVIsMHxBfWZ1bmN0aW9uIEttKGwsYyxmKXt2YXIgcCxtLEEsdztmfD0wLEE9KGY9Mz09KDMmYVsoY3w9MCk+PjJdfDApKT9jKy00OHwwOmMsZj1mP2M6Yys0OHwwLGM9MHxhW0ErNDA+PjJdLHc9MHxTZihsfD0wLDB8YVtmKzQwPj4yXSksJG0oMHxhWyhtPWwrNDR8MCk+PjJd''@;'; put 'put ''LHcrMzJ8MCxBKSwkbSgwfGFbKHA9bCs0OHwwKT4+Ml0sdysyNHwwLEEpLGM9MHxTZihsLGMpLCRtKDB8YVttPj4yXSxjKzI4fDAsZiksJG0oMHxhW3A+PjJdLGMrMjB8MCxmKX1mdW5jdGlvbiAkbShsLGMsZil7Znw9MCxDYyhsfD0wLDB8YVsoY3w9MCk+PjJdKSxtaVs2MyZhW2w+PjJdXShs''@;'; put 'put ''LGYsMiksYVtjPj4yXT0wfFAzKGwpfWZ1bmN0aW9uIHFtKGwsYyl7bHw9MDt2YXIgZixwLG09MCxBPTA7cmV0dXJuIGY9bGUsbGU9bGUrMTZ8MCxBPTB8YVsoMz09KDB8KG09MyZhWyhjPTI9PSgzJmFbKGN8PTApPj4yXXwwKT9jOmMrLTQ4fDApPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0sbT0w''@;'; put 'put ''fGFbKDI9PSgwfG0pP2M6YystNDh8MCkrNDA+PjJdLGFbKHA9Zik+PjJdPWFbYz4+Ml0sYVtwKzQ+PjJdPWFbYys0Pj4yXSxhW3ArOD4+Ml09YVtjKzg+PjJdLGFbcCsxMj4+Ml09YVtjKzEyPj4yXSwwfFg0KGwsQSxtLHApPygoMHxkaShsKSk9PSgwfGwpJiYoNjQmZmVbbCsyND4+MF0mJmZ1''@;'; put 'put ''bmN0aW9uIGdUKGwpe3ZhciBjOzB8KGM9MHxpYyhsfD0wKSkmJihrMihsLGMpLEhpKGwsOTY0MDQpKX0oYyksYmkobCxjKSxwMihjKSxCNihsLDIsMHxhWyhBPWMrOHwwKT4+Ml0sMHxhW0ErND4+Ml0pKSwwfGJDKGwsYyw1OCwwLDApP2M9LTE6KCgwfGRpKGwpKT09KDB8bCkmJnh0KGwsYyks''@;'; put 'put ''Yz0wKSk6Yz0tMSxsZT1mLDB8Y31mdW5jdGlvbiBaZChsLGMsZil7dmFyIEEsdyxwPTAsbT0wO3c9bGUsbGU9bGUrMTZ8MCxwPXcsbT0wfFluKGx8PTAsMHxhWygzPT0oMyZhWyhjfD0wKT4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSxmfD0wKSxBPTB8WW4obCwwfGFbKDI9PSgzJmFbYz4+Ml18''@;'; put 'put ''MCk/YzpjKy00OHwwKSs0MD4+Ml0sZik7ZG97aWYoMCE9KDB8bSkmMCE9KDB8QSkpe2lmKGFbcD4+Ml09YVtjPj4yXSxhW3ArND4+Ml09YVtjKzQ+PjJdLGFbcCs4Pj4yXT1hW2MrOD4+Ml0sYVtwKzEyPj4yXT1hW2MrMTI+PjJdLDAhPSgwfGYpJihtPTA9PSgwfChwPTB8WDQobCxtLEEscCkp''@;'; put 'put ''KSkpRDUobCxjKSxwPWM7ZWxzZSBpZihtKWJyZWFrO3JldHVybiBsZT13LDB8KCgwfChmPTMmYVtwPj4yXSkpPT0oMyZhW2M+PjJdfDApP3A6cCsoNDgqKDM9PSgwfGYpPy0xOjEpfDApfDApfX13aGlsZSgwKTtyZXR1cm4gbGU9dywwfWZ1bmN0aW9uIG9jKGwsYyxmKXtsfD0wLGN8PTA7dmFy''@;'; put 'put ''IHAsbSxBLHc9MCxiPTAsaz0wO3JldHVybiBBPWxlLGxlPWxlKzE2fDAsbT1BLGI9MHxmdW5jdGlvbiBVUChsKXt2YXIgYyxwLGY9MCxtPTA7cmV0dXJuIGY9KGM9MCE9KDB8KGx8PTApKSk/MD09KDB8KGY9MHxhW2w+PjJdKSk/MTg3MzY6ZjoxODczNixtPTB8X29bNjMmYVtmPj4yXV0obCks''@;'; put 'put ''cD0wfEJpWzEyNyZhW2YrND4+Ml1dKG0sODApLGFbcD4+Ml09ZixhW3ArMTI+PjJdPW0sYz8oYVtwKzQ+PjJdPTA9PSgwfChtPTB8YVtsKzQ+PjJdKSk/MTg2MTI6bSxsPTA9PSgwfChsPTB8YVtsKzg+PjJdKSk/MTg3MTI6bCk6KGFbcCs0Pj4yXT0xODYxMixsPTE4NzEyKSxhW3ArOD4+Ml09''@;'; put 'put ''bCxmZVtwKzUyPj4wXT0xLDB8cH0oZnw9MCkscD0wfEJpWzEyNyZhWzQrKDB8YVtiPj4yXSk+PjJdXSgwfGFbYisxMj4+Ml0sNzIpLGFbcD4+Ml09LTQmYVtwPj4yXSxhWyh3PXArNjR8MCk+PjJdPWIsYVsoaz1wKzI0fDApPj4yXT1jPTB8YVtjPj4yXSxmZVtrPj4wXT0yNTUmY3w4LGFbcCs2''@;'; put 'put ''MD4+Ml09cCxmPTB8QmlbMTI3JmFbYVtiKzQ+PjJdPj4yXV0ocCxmKSxhWzE2KygwfGFbdz4+Ml0pPj4yXT1mLDB8SzQocCwwLGwsbSwxKSYmKGI9MHxhWyh3PW0pKzQ+PjJdLGFbKGs9cCs4fDApPj4yXT1hW3c+PjJdLGFbays0Pj4yXT1iKSxMNShrPTB8aG8ocCksMCxwKSxsZT1BLDB8a31m''@;'; put 'put ''dW5jdGlvbiBobyhsKXt2YXIgYz0wLGY9MDtyZXR1cm4gYVszNisobHw9MCk+PjJdPTB8WmgobCwxODc5MiwwfGFbNDU4OV0pLGFbbCs0MD4+Ml09MHxaaChsLDE4NzU2LDB8YVs0NTg5XSksYz0oMHxkaShsKSk9PSgwfGwpLGFbbCs0ND4+Ml09MHxaaChsLGM/MTg0MDQ6MTg0NDAsMHxhWzQ1''@;'; put 'put ''ODldKSxjPSgwfGRpKGwpKT09KDB8bCksYVtsKzQ4Pj4yXT0wfFpoKGwsYz8xODQ3NjoxODUxMiwwfGFbNDU4OV0pLGFbbCs1Mj4+Ml09MHxaaChsLDE4NTQ4LDB8YVs0NTg5XSksMCE9KDB8KGM9MHxrMShsKSkpJiYoZj0wfEgzKGMsMCksYVtsPj4yXT0xNSZhW2w+PjJdfGY8PDQsbWlbNjMm''@;'; put 'put ''YVsoZj0wfGFbYys1Mj4+Ml0pPj4yXV0oZixsLDEpLCEoNjQmZmVbYysyND4+MF0pKXx8VDUobCksdjAobCxsKSwwfGx9ZnVuY3Rpb24gSDMobCxjKXt2YXIgZjtyZXR1cm4gYz0wfHpsKDB8YVsoYz1mPTI0KygwfGFbNjQrKGx8PTApPj4yXSkrKChjfD0wKTw8Myl8MCk+PjJdLDB8YVtjKzQ+''@;'; put 'put ''PjJdLDEsMCksbD1EbixhW2Y+PjJdPWMsYVtmKzQ+PjJdPWwsRG49bCwwfGN9ZnVuY3Rpb24gQzEobCl7dmFyIGM9MCxmPTAscD0wLG09MDsobT0wPT0oMHwocD0wfGsxKGx8PTApKSkpJiYwIT0oMHxhWzE2KygwfGFbYVsoYz1sKzY0fDApPj4yXT4+Ml0pPj4yXSk/KGJpKGwsbCksQjYobCww''@;'; put 'put ''LDB8YVsobT1sKzh8MCk+PjJdLDB8YVttKzQ+PjJdKSxDb1sxMjcmYVsxNisoMHxhWyhjPTB8YVtjPj4yXSk+PjJdKT4+Ml1dKDB8YVtjKzEyPj4yXSksYz0wKTpmPTQ7ZG97aWYoND09KDB8Zikpe2ZvcihjPTB8d3MobCk7YzspZj0wfEVzKGMpLEMxKGMpLGM9Zjtmb3IoYz0wfER0KGwpO2M7''@;'; put 'put ''KWY9MHx6dChsLGMpLHFyKGwsYyksYz1mO2lmKEdkKGwpLGJpKGwsbCksMD09KDB8JDQobCwwfGFbbCs0MD4+Ml0pKSYmMD09KDB8JDQobCwwfGFbbCszNj4+Ml0pKSYmMD09KDB8JDQobCwwfGFbbCs0OD4+Ml0pKSYmMD09KDB8JDQobCwwfGFbbCs0ND4+Ml0pKSYmMD09KDB8JDQobCwwfGFb''@;'; put 'put ''bCs1Mj4+Ml0pKSl7aWYoNjQmZmVbbCsyND4+MF0mJjB8Y0MobCkpe2M9LTE7YnJlYWt9aWYocDIobCksQjYobCwwLDB8YVsoZj1sKzh8MCk+PjJdLDB8YVtmKzQ+PjJdKSwhbSl7cjcocCxsKSx4dChwLGwpLGM9MDticmVha31mb3IoYz1sKzY0fDA7cD0wfGFbNDgrKGY9MHxhW2M+PjJdKT4+''@;'; put 'put ''Ml07KWhpKGwsMHxhW3A+PjJdKTtDb1sxMjcmYVsyMCsoMHxhW2YrND4+Ml0pPj4yXV0oMHxhW2YrMTY+PjJdKSwwfHJyKGwpP2M9LTE6KEdzWzYzJmFbKHA9MTIrKDB8YVsoYz0wfGFbYz4+Ml0pPj4yXSl8MCk+PjJdXShtPTB8YVtjKzEyPj4yXSxsKSxHc1s2MyZhW3A+PjJdXShtLGMpLGM9''@;'; put 'put ''MCl9ZWxzZSBjPS0xfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEdvKGwpe3JldHVybiAwfHB1KDB8YVs0MCsobHw9MCk+PjJdKX1mdW5jdGlvbiBOMyhsKXt2YXIgYz0wLGY9MDtmb3IoYz0wLGY9MHxEdChsfD0wKTtmOyljPSgwfHpkKGwsZiwwLDEpKStjfDAsZj0wfHp0KGwsZik7''@;'; put 'put ''cmV0dXJuIDB8Y31mdW5jdGlvbiB6ZChsLGMsZixwKXt2YXIgbTtyZXR1cm4gZnw9MCxwfD0wLChtPTB8U2YobHw9MCxjfD0wKSk/KGM9cD8wfGU3KDB8YVtsKzQ0Pj4yXSxtKzMyfDApOjAsZiYmKGM9KDB8ZTcoMHxhW2wrNDQ+PjJdLG0rMjh8MCkpK2N8MCkpOmM9MCwwfGN9ZnVuY3Rpb24g''@;'; put 'put ''ZTcobCxjKXt2YXIgZjtyZXR1cm4gQ2MobHw9MCwwfGFbKGN8PTApPj4yXSksZj0wfHB1KGwpLGFbYz4+Ml09MHxQMyhsKSwwfGZ9ZnVuY3Rpb24gU2MobCl7cmV0dXJuIDEmZmVbMjQrKGx8PTApPj4wXXwwfWZ1bmN0aW9uIHQ3KGwpe3JldHVybiAwPT0oMHxTYyhsfD0wKSl8MH1mdW5jdGlv''@;'; put 'put ''biBMQShsKXtyZXR1cm4oMHxYdFsyNCsobHw9MCk+PjBdKT4+PjEmMXwwfWZ1bmN0aW9uIEs0KGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgdyxBPTAsYj0wO3c9MCE9KDB8KGZ8PTApKTtkb3tpZih3KXtpZigzNyE9KDB8ZmVbZj4+MF0pJiYwfChBPTB8UjJbMTI3JmFbNCso''@;'; put 'put ''MHxhWzQrKEE9MHxhW2wrNjQ+PjJdKT4+Ml0pPj4yXV0oMHxhW0ErMTY+PjJdLGMsZixwLG0pKSlicmVhazsoQT0wfG1DKGwsYyxmLHApKXx8KGI9NSl9ZWxzZSBiPTV9d2hpbGUoMCk7cmV0dXJuIDU9PSgwfGIpJiYobT93JjAhPSgwfChBPTB8UjJbMTI3JmFbNCsoMHxhWzQrKEE9MHxhW2wr''@;'; put 'put ''NjQ+PjJdKT4+Ml0pPj4yXV0oMHxhW0ErMTY+PjJdLGMsMCxwLG0pKSkmJmZ1bmN0aW9uIHZDKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdyxBPTA7dz0wfE10KGx8PTAsMzIpLGFbKEE9dysxNnwwKT4+Ml09cCxhW0ErND4+Ml09bSxhW3crMjQ+PjJdPTB8cjAobCxmKSwo''@;'; put 'put ''Yz0wfGFbNTYrKGY9MHxhWyhBPWwrNjR8MCk+PjJdKSsoKHA9Mz09KDB8Yyk/MjpjKTw8Mik+PjJdKT8obT1jLGM9Zik6KG09MHxaaChsLDE4NjQwLDB8YVs0NTg5XSksYVs1NisoMHxhW0E+PjJdKSsocDw8Mik+PjJdPW0sYz0wfGFbQT4+Ml0pLChjPTB8YVtjKzY4KyhwPDwyKT4+Ml0pfHwo''@;'; put 'put ''Yz0wfFpoKGwsMTg2NzYsMHxhWzQ1ODldKSxhWzY4KygwfGFbQT4+Ml0pKyhwPDwyKT4+Ml09YyksbWlbNjMmYVttPj4yXV0obSx3LDEpLG1pWzYzJmFbYz4+Ml1dKGMsdywxKX0obCxjLGYsMHxhWyhiPXApPj4yXSwwfGFbYis0Pj4yXSk6QT0wKSwwfEF9ZnVuY3Rpb24gT0EobCxjLGYscCl7''@;'; put 'put ''cmV0dXJuIDB8cTBbMTI3JmFbOCsoMHxhWzQrKGw9MHxhWzY0KyhsfD0wKT4+Ml0pPj4yXSk+PjJdXSgwfGFbbCsxNj4+Ml0sY3w9MCxmfD0wLHB8PTApfWZ1bmN0aW9uIEI2KGwsYyxmLHApe3lUKGx8PTAsY3w9MCxmfD0wLHB8PTApLFJjWzMxJmFbMTIrKDB8YVs0KyhsPTB8YVtsKzY0Pj4y''@;'; put 'put ''XSk+PjJdKT4+Ml1dKDB8YVtsKzE2Pj4yXSxjLGYscCl9ZnVuY3Rpb24gdGkobCl7dmFyIEEsdyxjPTAsZj0wLHA9MCxtPTA7dz1sZSxsZT1sZSsxNnwwLEE9dyxjPTB8ZnVuY3Rpb24gYWMobCxjLGYscCl7cmV0dXJuIDB8KGw9KGw9MHxBVChsfD0wLGN8PTAsZnw9MCxwfD0wKSk/MHxhW2wr''@;'; put 'put ''MjQ+PjJdOjApfShmPTB8Y3IobHw9MCksMyZhW2w+PjJdLDB8YVsoYz1tPWwrOHwwKT4+Ml0sMHxhW2MrND4+Ml0pO2Rve2lmKCFjKXtpZigwfChmPTB8YVsxNisoMHxhWzQrKGM9MHxhW2YrNjQ+PjJdKT4+Ml0pPj4yXSkmJjB8KHA9MHxxMFsxMjcmZl0oMHxhW2MrMTY+PjJdLDMmYVtsPj4y''@;'; put 'put ''XSwwfGFbKHA9bSk+PjJdLDB8YVtwKzQ+PjJdKSkpe2M9cDticmVha30yPT0oMyZhW2w+PjJdfDApP2M9MDoocD0wfGFbbT4+Ml0sbT0wfGFbbSs0Pj4yXSxhW0E+PjJdPTM3LGFbKGM9QSs4fDApPj4yXT1wLGFbYys0Pj4yXT1tLG9vKDE5NDc3Myw5NjQ1NixBKSxjPTE5NDc3Myl9fXdoaWxl''@;'; put 'put ''KDApO3JldHVybiBsZT13LDB8Y31mdW5jdGlvbiBMNShsLGMsZil7ZGxbMTI3JmFbMjQrKDB8YVs0KyhsPTB8YVs2NCsobHw9MCk+PjJdKT4+Ml0pPj4yXV0oMHxhW2wrMTY+PjJdLGN8PTAsZnw9MCl9ZnVuY3Rpb24gbUMobCxjLGYscCl7Znw9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wO3Jl''@;'; put 'put ''dHVybiBiPWxlLGxlPWxlKzMyfDAsdz1iLDAhPSgwfChjPTB8YVs1NisoMHxhWzY0KyhsfD0wKT4+Ml0pKygoMz09KDB8KGN8PTApKT8yOmMpPDwyKT4+Ml0pKSYmMCE9KDB8KG09MHxacihsLGYpKSkmJihhW3crMjQ+PjJdPW0sMCE9KDB8KEE9MHxtaVs2MyZhW2M+PjJdXShjLHcsNCkpKSk/''@;'; put 'put ''KHc9MHxhWzQrKGY9QSsxNnwwKT4+Ml0sYVsoYz1wKT4+Ml09YVtmPj4yXSxhW2MrND4+Ml09dyxjPTEpOmM9MCxsZT1iLDB8Y31mdW5jdGlvbiBBVChsLGMsZixwKXt2YXIgbSxBO3JldHVybiBwfD0wLEE9bGUsbGU9bGUrMzJ8MCxtPUEsKGw9MHxhWzY4KygwfGFbNjQrKGx8PTApPj4yXSkr''@;'; put 'put ''KCgzPT0oMHwoY3w9MCkpPzI6Yyk8PDIpPj4yXSk/KGFbKGM9bSsxNnwwKT4+Ml09Znw9MCxhW2MrND4+Ml09cCxsPTB8bWlbNjMmYVtsPj4yXV0obCxtLDQpKTpsPTAsbGU9QSwwfGx9ZnVuY3Rpb24geVQobCxjLGYscCl7dmFyIG07cmV0dXJuKGM9MHxBVChsfD0wLG09Mz09KDB8KGN8PTAp''@;'; put 'put ''KT8yOmMsZnw9MCxwfD0wKSk/KG1pWzYzJmFbKGY9MHxhWzU2KygwfGFbKHA9bCs2NHwwKT4+Ml0pKyhtPDwyKT4+Ml0pPj4yXV0oZixjLDIpLG1pWzYzJmFbKHA9MHxhWzY4KygwfGFbcD4+Ml0pKyhtPDwyKT4+Ml0pPj4yXV0ocCxjLDIpLGUwKGwsMHxhW2MrMjQ+PjJdKSx4dChsLGMpLGM9''@;'; put 'put ''MSk6Yz0wLDB8Y31mdW5jdGlvbiBHZChsKXthWzQ2OTQyXT1sfD0wLGozKDU2KygwfGFbKGw9bCs2NHwwKT4+Ml0pfDApLGozKDY4KygwfGFbbD4+Ml0pfDApfWZ1bmN0aW9uIGozKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTA7MyE9KDB8Yyk7KTB8KHA9MHxhWyhmPWwrKGM8PDIp''@;'; put 'put ''fDApPj4yXSkmJihObChwKSxhW2Y+PjJdPTApLGM9YysxfDB9ZnVuY3Rpb24gd2UobCl7dmFyIGMsZixwO3JldHVybiBsfD0wLGM9bGUsbGU9bGUrMzJ8MCxwPWMrMTJ8MCxmPWMsYVs0NjgyXT1hWzQ2NzldLGFbNDY4M109YVs0NjgwXSxhW3A+PjJdPWwsYVtwKzQ+PjJdPTB8VW8obCksYVtw''@;'; put 'put ''Kzg+PjJdPTAsYVtmPj4yXT0xODczNixhW2YrND4+Ml09MTg2MTIsYVtmKzg+PjJdPTE4NzI0LGw9MHxyRihwLGYpLGZ1bmN0aW9uIHBvKGwpe2FbNDY5NjZdPWx8PTAsYVs0NzI1XT0xfSgwKSxsZT1jLDB8bH1mdW5jdGlvbiBNdChsLGMpe3ZhciBmO3JldHVybiBmPWxlLGxlPWxlKzE2fDAs''@;'; put 'put ''KGw9MHxCaVsxMjcmYVs0KygwfGFbKGw9MHxhWzY0KyhsfD0wKT4+Ml0pPj4yXSk+PjJdXSgwfGFbbCsxMj4+Ml0sY3w9MCkpfHwkcigxLDk2NDYyLGYpLGxlPWYsMHxsfWZ1bmN0aW9uIHh0KGwsYyl7bHw9MCwwfChjfD0wKSYmR3NbNjMmYVsxMisoMHxhWyhsPTB8YVtsKzY0Pj4yXSk+PjJd''@;'; put 'put ''KT4+Ml1dKDB8YVtsKzEyPj4yXSxjKX1mdW5jdGlvbiBDbihsLGMsZil7cmV0dXJuIGx8PTAsZnw9MCxhWzQ2NTY0XT1jfD0wLGFbNDY1NjVdPWYsYVs0Njk0N109MTg2MjQ4LDB8KChsPTB8bWlbNjMmYVsobD0wfGFbbCs0MD4+Ml0pPj4yXV0obCwxODc3NzIsNCkpPzB8YVtsKzE2Pj4yXTow''@;'; put 'put ''KX1mdW5jdGlvbiBEdChsKXtyZXR1cm4gMHwoKGw9MHxtaVs2MyZhWyhsPTB8YVszNisobHw9MCk+PjJdKT4+Ml1dKGwsMCwxMjgpKT8wfGFbbCsxNj4+Ml06MCl9ZnVuY3Rpb24genQobCxjKXt2YXIgZj0wO3JldHVybiAwfCgwIT0oMHwoYz0wfFNmKGx8PTAsY3w9MCkpKSYmMCE9KDB8KGY9''@;'; put 'put ''MHxtaVs2MyZhWyhmPTB8YVtsKzM2Pj4yXSk+PjJdXShmLGMsOCkpKT8wfGFbZisxNj4+Ml06MCl9ZnVuY3Rpb24gUG4obCl7cmV0dXJuIDB8KChsPTB8bWlbNjMmYVsobD0wfGFbMzYrKGx8PTApPj4yXSk+PjJdXShsLDAsMjU2KSk/MHxhW2wrMTY+PjJdOjApfWZ1bmN0aW9uIFRuKGwsYyl7''@;'; put 'put ''dmFyIGY9MDtyZXR1cm4gMHwoMCE9KDB8KGM9MHxTZihsfD0wLGN8PTApKSkmJjAhPSgwfChmPTB8bWlbNjMmYVsoZj0wfGFbbCszNj4+Ml0pPj4yXV0oZixjLDE2KSkpPzB8YVtmKzE2Pj4yXTowKX1mdW5jdGlvbiBPbihsLGMsZixwKXtwfD0wO3ZhciBtPTAsQT0wO209MHxDbihsfD0wLGN8''@;'; put 'put ''PTAsZnw9MCk7ZG97aWYoMCE9KDB8cCkmMD09KDB8bSkpe2lmKCgwfChtPTB8ZGkobCkpKSE9KDB8bCkmJjB8KEE9MHxDbihtLGMsZikpKXtZbihsLEEsMSksbT1BO2JyZWFrfTB8T0EobCwxLGMsZik/KGFpKGwsbT0wfE1yKGwsYyxmLG09MHxIMyhsLDEpLERuKSkseXIobCxtKSk6bT0wfX13''@;'; put 'put ''aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIFluKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtpZigoMHwocD0wfGRpKGx8PTApKSk9PSgwfGFbYysyND4+Ml0pKXtpZigwIT0oMHxmKSYwPT0oMHwocD0wfENuKGwsMHxhWyhwPWMrOHwwKT4+Ml0sMHxhW3ArND4+Ml0pKSkpe2lmKHA9MHxr''@;'; put 'put ''MShsKSlyZXR1cm4gYXIobCxmPTB8WW4ocCxjLGYpKSwwfGY7cD0wfX1lbHNlIHA9MDtyZXR1cm4gMHxwfWZ1bmN0aW9uIE1yKGwsYyxmLHAsbSl7dmFyIEEsdztyZXR1cm4gY3w9MCxmfD0wLHB8PTAsbXw9MCxtPTB8TXQobHw9MCw2NCksQT0wfGFbbT4+Ml0sYVsodz1tKzh8MCk+PjJdPWMs''@;'; put 'put ''YVt3KzQ+PjJdPWYsYVttPj4yXT0xMiZBfHA8PDR8MSxhW20rMjQ+PjJdPTB8ZGkobCksNjQmZmVbMjQrKDB8ZGkobCkpPj4wXSYmaDAobSw5NjQwNCwxNiwwKSwwfG19ZnVuY3Rpb24gYWkobCxjKXtsfD0wLGN8PTA7ZG97YXIobCxjKSxsPTB8azEobCl9d2hpbGUoMCE9KDB8bCkpfWZ1bmN0''@;'; put 'put ''aW9uIHlyKGwsYyl7Y3w9MCw2NCZmZVsyNCsoMHxkaShsfD0wKSk+PjBdJiZpQyhsLGMpLHYwKGwsYyl9ZnVuY3Rpb24gYXIobCxjKXtjfD0wO3ZhciBmLHA9MDtwdSgwfGFbKHA9NDArKGx8PTApfDApPj4yXSksZj0oMHxkaShsKSk9PSgwfGwpP2MrMjh8MDowfE10KGwsMzYpLGFbZisxNj4+''@;'; put 'put ''Ml09YyxtaVs2MyZhWyhwPTB8YVtwPj4yXSk+PjJdXShwLGYsMSksbWlbNjMmYVsocD0wfGFbbCszNj4+Ml0pPj4yXV0ocCxmLDEpfWZ1bmN0aW9uIEdyKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEsayxwPTAsbT0wLHc9MCxiPTA7cmV0dXJuIGs9bGUsbGU9bGUrMTZ8MCxBPWssdz0wfGRpKGx8''@;'; put 'put ''PTApLDB8SzQobCwxLGMsQSwwKT8ocD0wfENuKGwsMHxhWyhwPUEpPj4yXSwwfGFbcCs0Pj4yXSkpfHwoMD09KDB8Zil8KDB8dyk9PSgwfGwpfHwwPT0oMHwobT0wfENuKHcsMHxhWyhtPUEpPj4yXSwwfGFbbSs0Pj4yXSkpKT9iPTY6cD0wfFluKGwsbSwxKSk6Yj02LDY9PSgwfGIpJiYoMCE9''@;'; put 'put ''KDB8ZikmJjAhPSgwfEs0KGwsMSxjLEEsMSkpPyhhaShsLHA9MHxNcihsLHc9MHxhWyhiPUEpPj4yXSxiPTB8YVtiKzQ+PjJdLHA9MHxIMyhsLDEpLERuKSkseXIobCxwKSxMNShsLDEscCkpOnA9MCksbGU9aywwfHB9ZnVuY3Rpb24gcXIobCxjKXt2YXIgcCxmPTAsbT0wO2lmKDB8Q24obHw9''@;'; put 'put ''MCwwfGFbKGY9cD04KyhjfD0wKXwwKT4+Ml0sMHxhW2YrND4+Ml0pKXtpZigoMHxkaShsKSk9PSgwfGwpKXtmb3IoZj0wfE1zKGwsYyk7ZjspbT0wfFZzKGwsZixjKSxxbShsLGYpLGY9bTs2NCZmZVtsKzI0Pj4wXSYmZnVuY3Rpb24gTzYobCl7dmFyIGM7MHwoYz0wfGljKGx8PTApKSYmKGsy''@;'; put 'put ''KGwsYyksSGkobCw5NjQwNCkpfShjKSxiaShsLGMpLHAyKGMpLEI2KGwsMSwwfGFbKG09cCk+PjJdLDB8YVttKzQ+PjJdKX0wfGJDKGwsYyw1OSwwLDApP2Y9LTE6KCgwfGRpKGwpKT09KDB8bCkmJnh0KGwsYyksZj0wKX1lbHNlIGY9LTE7cmV0dXJuIDB8Zn1mdW5jdGlvbiBvaShsLGMpe2x8''@;'; put 'put ''PTA7dmFyIHAsdyxmPTAsbT0wLEE9MDt3PWxlLGxlPWxlKzE2fDAscD13LGY9MHxhWyhjfD0wKT4+Ml07ZG97aWYoISgzJmYpKXtpZigoMHxrMShjKSk9PSgwfGwpKXtmPTB8YVtjPj4yXSxBPTU7YnJlYWt9JHIoMSw5NjQ4OCxwKSxtPS0xO2JyZWFrfUE9NX13aGlsZSgwKTtlOmRve2lmKDU9''@;'; put 'put ''PSgwfEEpKXN3aXRjaCgzJmYpe2Nhc2UgMTptPTB8cXIobCxjKTticmVhayBlO2Nhc2UgMjpjYXNlIDM6bT0wfHFtKGwsYyk7YnJlYWsgZTtjYXNlIDA6bT0wfEMxKGMpO2JyZWFrIGV9fXdoaWxlKDApO3JldHVybiBsZT13LDB8bX1mdW5jdGlvbiBjcihsKXt2YXIgYz0wO3N3aXRjaCgzJmFb''@;'; put 'put ''KGx8PTApPj4yXSl7Y2FzZSAyOmNhc2UgMzpjPTB8YVsyNCsoMHxhW2wrNDA+PjJdKT4+Ml07YnJlYWs7Y2FzZSAxOmM9MHxhW2wrMjQ+PjJdO2JyZWFrO2Nhc2UgMDpjPWx9cmV0dXJuIDB8Y31mdW5jdGlvbiBkaShsKXt2YXIgYz0wO3N3aXRjaCgzJmFbKGx8PTApPj4yXSl7Y2FzZSAyOmNh''@;'; put 'put ''c2UgMzpjPTI0KygwfGFbbCs0MD4+Ml0pfDA7YnJlYWs7Y2FzZSAxOmM9bCsyNHwwO2JyZWFrO2Nhc2UgMDpjPWwrNjB8MH1yZXR1cm4gMHxhW2M+PjJdfWZ1bmN0aW9uIHYwKGwsYyl7dmFyIGY7Y3w9MCwwfGZlWzUyKyhmPTB8YVs2NCsobHw9MCk+PjJdKT4+MF0/VWkobCxjLDB8YVtmKzQ4''@;'; put 'put ''Pj4yXSk6TjAobCxjLDEwMCwwKX1mdW5jdGlvbiBVaShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MDtlOmRve2lmKDB8Zil7c3dpdGNoKFVpKGwsYywwfGFbZis4Pj4yXSksMyZhW2M+PjJdKXtjYXNlIDA6cD0wfGFbZj4+Ml07YnJlYWs7Y2FzZSAxOnA9MTIrKDB8YVtmPj4yXSl8MDti''@;'; put 'put ''cmVhaztjYXNlIDI6cD0yNCsoMHxhW2Y+PjJdKXwwO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX0wfChwPTB8YVtwPj4yXSkmJmRsWzEyNyZwXShsLGMsMHxhW2YrND4+Ml0pfX13aGlsZSgwKX1mdW5jdGlvbiB0byhsLGMsZil7dmFyIHA7Y3w9MCxmfD0wLDB8ZmVbNTIrKHA9MHxhWzY0KyhsfD0w''@;'; put 'put ''KT4+Ml0pPj4wXT9BMChsLGMsZiwwfGFbcCs0OD4+Ml0pOk4wKGwsYywxMDEsZil9ZnVuY3Rpb24gQTAobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2U6ZG97aWYoMHxwKXtzd2l0Y2goQTAobCxjLGYsMHxhW3ArOD4+Ml0pLDMmYVtjPj4yXSl7Y2FzZSAwOm09NCsoMHxh''@;'; put 'put ''W3A+PjJdKXwwO2JyZWFrO2Nhc2UgMTptPTE2KygwfGFbcD4+Ml0pfDA7YnJlYWs7Y2FzZSAyOm09MjgrKDB8YVtwPj4yXSl8MDticmVhaztkZWZhdWx0OmJyZWFrIGV9MHwobT0wfGFbbT4+Ml0pJiZSY1szMSZtXShsLGMsMHxhW3ArND4+Ml0sZil9fXdoaWxlKDApfWZ1bmN0aW9uIGJpKGws''@;'; put 'put ''Yyl7dmFyIGY7Y3w9MCwwfGZlWzUyKyhmPTB8YVs2NCsobHw9MCk+PjJdKT4+MF0/WXIobCxjLDB8YVtmKzQ4Pj4yXSk6TjAobCxjLDEwMiwwKX1mdW5jdGlvbiBZcihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MDtlOmRve2lmKDB8Zil7c3dpdGNoKFlyKGwsYywwfGFbZis4Pj4yXSks''@;'; put 'put ''MyZhW2M+PjJdKXtjYXNlIDA6cD04KygwfGFbZj4+Ml0pfDA7YnJlYWs7Y2FzZSAxOnA9MjArKDB8YVtmPj4yXSl8MDticmVhaztjYXNlIDI6cD0zMisoMHxhW2Y+PjJdKXwwO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX0wfChwPTB8YVtwPj4yXSkmJmRsWzEyNyZwXShsLGMsMHxhW2YrND4+Ml0p''@;'; put 'put ''fX13aGlsZSgwKX1mdW5jdGlvbiBoaShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2Y9MHxhWyhwPTQ4KygwfGFbNjQrKGx8PTApPj4yXSl8MCk+PjJdO2U6ZG97aWYoZil7aWYoKDB8YVtmPj4yXSkhPSgwfGMpKXtmb3IoOzspe2lmKCFmKXtmPS0xO2JyZWFrIGV9aWYoKDB8YVsobT0wfGFb''@;'; put 'put ''KHA9Zis4fDApPj4yXSk+PjJdKT09KDB8YykpYnJlYWs7Zj1tfW0mJihhW3A+PjJdPWFbbSs4Pj4yXSl9ZWxzZSBhW3A+PjJdPWFbZis4Pj4yXTt4dChsLGYpLGY9MH1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBOcihsLGMpe3ZhciBmO2N8PTAsZj0wfGRpKGx8PTAp''@;'; put 'put ''O2U6ZG97aWYoKDB8Zik9PSgwfGRpKGMpKSlzd2l0Y2goMyZhW2M+PjJdKXtjYXNlIDA6Zm9yKDs7KXtpZigoMHxjKT09KDB8bCkpe2M9MTticmVhayBlfWlmKCEoYz0wfGsxKGMpKSl7Yz0wO2JyZWFrfX1icmVhaztjYXNlIDE6Yz0wIT0oMHxPbihsLDB8YVsoYz1jKzh8MCk+PjJdLDB8YVtj''@;'; put 'put ''KzQ+PjJdLDApKTticmVhayBlO2RlZmF1bHQ6Yz0wIT0oMHxaZChsLGMsMCkpO2JyZWFrIGV9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDEmY3wwfWZ1bmN0aW9uIGtpKGwpe3JldHVybiAzJmFbKGx8PTApPj4yXXwwfWZ1bmN0aW9uIE4wKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBB''@;'; put 'put ''LHcsYixtPTA7c3dpdGNoKGI9bGUsbGU9bGUrMTZ8MCx3PWIsQT0wfGgwKGx8PTAsOTY1MTIsNDQsMCksMHxmKXtjYXNlIDEwMDowfGlvKG09MHx0MChBLGMsMTAwKSxjKXx8b2EobSxsLGMscCk7YnJlYWs7Y2FzZSAxMDE6MD09KDB8aW8oMHx0MChBLGMsMTAwKSxjKSkmJjA9PSgwfGlvKDB8''@;'; put 'put ''dDAoQSxjLDEwMiksYykpJiYwPT0oMHxpbyhtPTB8dDAoQSxjLDEwMSksYykpJiZvYShtLGwsYyxwKTticmVhaztjYXNlIDEwMjokMCgwfHQwKEEsYywxMDApLGMpLCQwKDB8dDAoQSxjLDEwMSksYyksMHxpbyhtPTB8dDAoQSxjLDEwMiksYyl8fG9hKG0sbCxjLHApO2JyZWFrO2RlZmF1bHQ6''@;'; put 'put ''JHIoMSw5NjUyNCx3KX1sZT1ifWZ1bmN0aW9uIHQwKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcCxBLG09MDtBPWxlLGxlPWxlKzE2fDAscD1BO2U6ZG97c3dpdGNoKDMmYVtjPj4yXSl7Y2FzZSAwOnN3aXRjaCgwfGYpe2Nhc2UgMTAwOmY9bCs4fDA7YnJlYWsgZTtjYXNlIDEwMTpmPWwr''@;'; put 'put ''MjB8MDticmVhayBlO2Nhc2UgMTAyOmY9bCszMnwwO2JyZWFrIGU7ZGVmYXVsdDptPTE0O2JyZWFrIGV9Y2FzZSAxOnN3aXRjaCgwfGYpe2Nhc2UgMTAwOmY9bCsxMnwwO2JyZWFrIGU7Y2FzZSAxMDE6Zj1sKzI0fDA7YnJlYWsgZTtjYXNlIDEwMjpmPWwrMzZ8MDticmVhayBlO2RlZmF1bHQ6''@;'; put 'put ''bT0xNDticmVhayBlfWNhc2UgMjpzd2l0Y2goMHxmKXtjYXNlIDEwMDpmPWwrMTZ8MDticmVhayBlO2Nhc2UgMTAxOmY9bCsyOHwwO2JyZWFrIGU7Y2FzZSAxMDI6Zj1sKzQwfDA7YnJlYWsgZTtkZWZhdWx0Om09MTQ7YnJlYWsgZX1kZWZhdWx0Om09MTR9fXdoaWxlKDApO3JldHVybiAxND09''@;'; put 'put ''KDB8bSkmJigkcigxLDk2NTU4LHApLGY9MCksKGw9MHxhW2Y+PjJdKXx8KGw9MHxaaChsPTB8Y3IoYyksMTg4MjgsMHxhWzQ1ODldKSxhW2Y+PjJdPWwpLGxlPUEsMHxsfWZ1bmN0aW9uIGlvKGwsYyl7dmFyIGYscCxtO3JldHVybiBsfD0wLGY9bGUsbGU9bGUrMzJ8MCxwPWYsbT0wfFZhKGN8''@;'; put 'put ''PTApLGFbKGM9cCs4fDApPj4yXT1tLGFbYys0Pj4yXT1EbixjPTB8bWlbNjMmYVtsPj4yXV0obCxwLDQpLGxlPWYsMHxjfWZ1bmN0aW9uIG9hKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtLEE9MDtyZXR1cm4gbT0wfE10KDB8Y3IoZnw9MCksMzIpLGFbbSsyMD4+Ml09ZixBPTB8VmEo''@;'; put 'put ''ZiksYVsoZj1tKzh8MCk+PjJdPUEsYVtmKzQ+PjJdPURuLGFbbSsxNj4+Ml09YywwfHAmJihBPTB8TXQoYyw4KSxhW20rMjQ+PjJdPUEsYVtBPj4yXT1wKSxtaVs2MyZhW2w+PjJdXShsLG0sMSksMHxtfWZ1bmN0aW9uICQwKGwsYyl7MHwoYz0wfGlvKGx8PTAsY3w9MCkpJiZtaVs2MyZhW2w+''@;'; put 'put ''PjJdXShsLGMsMil9ZnVuY3Rpb24gVmEobCl7cmV0dXJuIERuPTB8YVs0KyhsPTgrKGx8PTApfDApPj4yXSwwfGFbbD4+Ml19ZnVuY3Rpb24gYW8obCxjLGYpe2N8PTAsZnw9MDt2YXIgQSx3LGsscD0wLG09MCxiPTA7Zm9yKGs9bGUsbGU9bGUrMTZ8MCx3PWsscD1BPTB8YVsxNisobHw9MCk+''@;'; put 'put ''PjJdOzspe2lmKCFwKXtwPTA7YnJlYWt9aWYoKDB8KG09MHxhW3A+PjJdKSk9PSgwfGMpKXtiPTc7YnJlYWt9aWYoKDB8ZmVbYz4+MF0pPT0oMHxmZVttPj4wXSkmJjA9PSgwfFppKGMsbSkpKXtiPTc7YnJlYWt9aWYoKDB8KHA9MHxhW3ArND4+Ml0pKT09KDB8QSkpe3A9MDticmVha319ZG97''@;'; put 'put ''aWYoNz09KDB8Yikpe2lmKCEoNCZhW2w+PjJdKSl7aWYoKDB8cCk9PSgwfEEpJjA9PSgwfGYpKXtwPUE7YnJlYWt9eDAobCxwLGYpO2JyZWFrfWYmJigoMHxBKT09KDB8cCk/cD1BOiRyKDEsOTY1ODMsdykpfX13aGlsZSgwKTtyZXR1cm4gbGU9aywwfHB9ZnVuY3Rpb24geDAobCxjLGYpe2Z8''@;'; put 'put ''PTA7dmFyIHA9MDthWzE2KyhsfD0wKT4+Ml09Y3w9MCxhW2w+PjJdPS01JihwPTB8YVtsPj4yXSl8KGY9Zjw8MiY0KSwyJnB8MCYmKGFbbCsoNDgqKHA9Mz09KDMmcHwwKT8tMToxKXwwKSsxNj4+Ml09YyxhWyhwPWwrKDQ4KnB8MCl8MCk+PjJdPS01JmFbcD4+Ml18Zil9ZnVuY3Rpb24gaDAo''@;'; put 'put ''bCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sdyxBPTA7dz0wfGNyKGx8PTApLG09MHxhbyhsLGMsMCk7ZTpkb3tpZigwIT0oMHxmKSYwPT0oMHxtKSlzd2l0Y2goZj0wfE10KHcsZiksYVtmPj4yXT0wfHIwKHcsYyksMyZhW2w+PjJdKXtjYXNlIDA6Y2FzZSAxOmNhc2UgMjpjYXNlIDM6''@;'; put 'put ''anIobCxmKSxBPWY7YnJlYWsgZX1lbHNlIEE9bX13aGlsZSgwKTtyZXR1cm4gMHxwJiZhbyhsLGMsMSksMHxBfWZ1bmN0aW9uIGpyKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7Zj0wfGFbMTYrKGx8PTApPj4yXTtkb3tpZihmKXtpZigoMHwobT0wfGFbKHA9Zis0fDApPj4yXSkpPT0oMHxm''@;'; put 'put ''KSl7YVtwPj4yXT1jLHA9ZixmPWM7YnJlYWt9YVtjKzQ+PjJdPW0scD1jO2JyZWFrfXA9YyxmPWN9d2hpbGUoMCk7YVtmKzQ+PjJdPXAsNCZhW2w+PjJdfHx4MChsLGMsMCl9ZnVuY3Rpb24gSGkobCxjKXt2YXIgZixwO3JldHVybiBjfD0wLHA9MHxjcihsfD0wKSwoZj0wfGFvKGwsYywwKSk/''@;'; put 'put ''KGZ1bmN0aW9uIHZvKGwsYyl7Y3w9MDt2YXIgZj0wO2w9MHxhWzE2KyhsfD0wKT4+Ml07ZG97bD0wfGFbKGY9bCs0fDApPj4yXX13aGlsZSgoMHxsKSE9KDB8YykpO2FbZj4+Ml09YVtjKzQ+PjJdfShsLGYpLDMmYVtsPj4yXT8oYkMoMHxkaShwKSxsLDYwLGYsMCksYz1mKTooeG8ocCxsLGYp''@;'; put 'put ''LGM9ZiksZTAocCwwfGFbZj4+Ml0pLHh0KHAsYyksYz0wKTpjPS0xLDB8Y31mdW5jdGlvbiB4byhsLGMsZil7bHw9MCwoMHxhWzE2KyhjfD0wKT4+Ml0pPT0oMHwoZnw9MCkpJiZ4MChjLCgwfChsPTB8YVtmKzQ+PjJdKSk9PSgwfGYpPzA6bCwwKX1mdW5jdGlvbiAkaShsLGMsZixwLG0pe2x8''@;'; put 'put ''PTAsY3w9MCxmfD0wLG18PTA7dmFyIHcsQT0wO3c9KEE9KDB8KHB8PTApKT4tMSk/cDowLXB8MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMDppZihoMChsLGYsdyxtKSwhQSlmb3IoYz0wfHdzKGwpOzspe2lmKCFjKWJyZWFrIGU7JGkoYywwLGYscCxtKSxjPTB8RXMoYyl9YnJlYWs7Y2FzZSAz''@;'; put 'put ''OmNhc2UgMjpjYXNlIDE6Zm9yKHA9MT09KDB8YyksYz0wfER0KGwpOzspe2lmKCFjKWJyZWFrIGU7dDpkb3tpZihwKWgwKGMsZix3LG0pO2Vsc2UgZm9yKEE9MHx3MChsLGMpOzspe2lmKCFBKWJyZWFrIHQ7aDAoQSxmLHcsbSksQT0wfFMwKGwsQSl9fXdoaWxlKDApO2M9MHx6dChsLGMpfX19''@;'; put 'put ''d2hpbGUoMCl9ZnVuY3Rpb24gbDIobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2U6ZG97c3dpdGNoKDB8Yyl7Y2FzZSAwOmJDKGwsbCw2MSxmLDEpO2JyZWFrO2Nhc2UgMzpjYXNlIDI6Y2FzZSAxOmZvcihtPTE9PSgwfGMpLHA9MHxEdChsKTs7KXtpZighcClicmVhayBlO3Q6''@;'; put 'put ''ZG97aWYobSlIaShwLGYpO2Vsc2UgZm9yKGM9MHx3MChsLHApOzspe2lmKCFjKWJyZWFrIHQ7SGkoYyxmKSxjPTB8UzAobCxjKX19d2hpbGUoMCk7cD0wfHp0KGwscCl9fX13aGlsZSgwKX1mdW5jdGlvbiBwMihsKXt2YXIgYyxmLHA9MDtpZihmPTB8Y3IobHw9MCksMHwobD0wfGFbKGM9bCsx''@;'; put 'put ''NnwwKT4+Ml0pKWRve3A9bCxsPTB8YVtsKzQ+PjJdLGUwKGYsMHxhW3A+PjJdKSx4dChmLHApfXdoaWxlKCgwfGwpIT0oMHxhW2M+PjJdKSk7YVtjPj4yXT0wfWZ1bmN0aW9uIHJyKGwpe3JldHVybiAwfCQ0KGx8PTAsMHxJcihsKSl9ZnVuY3Rpb24gSXIobCl7dmFyIGYsYz0wO3JldHVybihj''@;'; put 'put ''PTB8YVsoZj0obHw9MCk/MjArKDB8YVtsKzY0Pj4yXSl8MDoxODc4NDQpPj4yXSl8fChjPTB8WmgobCwxODg2NCwwfGFbNDU4OV0pLGFbZj4+Ml09YyxhWyhsPTE4NjMxMik+PjJdPS0yMTQ3NDgzNjQ4LGFbbCs0Pj4yXT0wLGFbKGw9MTg2MzIwKT4+Ml09MjE0NzQ4MzY0NyxhW2wrND4+Ml09''@;'; put 'put ''LTEpLDB8Y31mdW5jdGlvbiBacihsLGMpe3JldHVybiBjfD0wLDB8ZnVuY3Rpb24gcWkobCxjKXtyZXR1cm4gMHwobD0obD0wfHJpKGx8PTAsY3w9MCkpPzB8YVtsKzE2Pj4yXTowKX0oMHxJcihsfD0wKSxjKX1mdW5jdGlvbiByaShsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAsZj1sZSxsZT1s''@;'; put 'put ''ZSszMnwwLGFbKHA9ZikrMTY+PjJdPWN8PTAsYz0wfG1pWzYzJmFbbD4+Ml1dKGwscCw0KSxsZT1mLDB8Y31mdW5jdGlvbiByMChsLGMpe2x8PTA7dmFyIGY9MCxwPTA7cmV0dXJuKGN8PTApPygoZj0wfHJpKHA9MHxJcihsKSxjKSk/KGM9MHx6bCgwfGFbKGM9cD1mKzh8MCk+PjJdLDB8YVtj''@;'; put 'put ''KzQ+PjJdLDEsMCksYVtwPj4yXT1jLGFbcCs0Pj4yXT1Ebik6KGY9MjQrKDB8VW8oYykpfDAsZj1sPzB8TXQobCxmKTowfEYwKGYpLGFbKGw9Zis4fDApPj4yXT0xLGFbbCs0Pj4yXT0wLHJkKGw9ZisyMHwwLGMpLGFbZisxNj4+Ml09bCxtaVs2MyZhW3A+PjJdXShwLGYsMSkpLGY9MHxhW2Yr''@;'; put 'put ''MTY+PjJdKTpmPTAsMHxmfWZ1bmN0aW9uIGUwKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO3JldHVybiAwIT0oMHwoY3w9MCkpJiYwIT0oMHwocD0wfHJpKGY9MHxJcihsKSxjKSkpPygoMHxhW3ArMTY+PjJdKT09KDB8YykmJihBPTB8emwoMHxhWyhBPWM9cCs4fDApPj4yXSwwfGFb''@;'; put 'put ''QSs0Pj4yXSwtMSwtMSksbT1EbixhW2M+PjJdPUEsYVtjKzQ+PjJdPW0sMD09KDB8QSkmMD09KDB8bSl8MD09KDB8YVsoYz0xODYzMjApPj4yXSkmMD09KDB8YVtjKzQ+PjJdKSkmJmZ1bmN0aW9uIFFuZShsLGMsZil7Y3w9MCxmfD0wLGFbNDY5ODRdPWx8PTAsbWlbNjMmYVtjPj4yXV0oYyxm''@;'; put 'put ''LDIpfShsLGYscCksbD0wKTpsPS0xLDB8bH1mdW5jdGlvbiBPbyhsKXtyZXR1cm4gMHwobD0obHw9MCk/YVs0NjU3OF0mYVsobD1sKy0xMnwwKT4+Ml06MCl9ZnVuY3Rpb24gazAobCl7dmFyIGM9MCxmPTAscD0wOzB8KGx8PTApJiYoYz1hWzQrKHA9bD1sKy0xMnwwKT4+Ml18YVs0KyhmPTE4''@;'; put 'put ''NjMxMik+PjJdLGFbbD4+Ml09YVtwPj4yXXxhW2Y+PjJdLGFbbCs0Pj4yXT1jKX1mdW5jdGlvbiBRbCgpe3ZhciBsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7MHxhWzQ2OTcwXXx8KGFbNDY5NzBdPTEsMHxhWzQ2OTcxXXx8KGFbNDY5NzFdPTEpLDB8YVs0Njk2Ml18''@;'; put 'put ''fChhWzQ2OTYyXT1hWzE1NjQ3XSksMHxhWzQ2OTYzXXx8KGFbNDY5NjNdPWFbMTU2NzldKSwwIT0oMHwodz0wfGFbNDY5NzJdKSkmJjAhPSgwfGFbdz4+Ml0pfHwoQWwoKSx3PTB8cTIoMHxhWzQ2OTYyXSwxNjM4NCksYVthWzQ2OTcyXT4+Ml09dyksZTEoKSk7ZTpmb3IoOzspe2ZlWyhBPTB8''@;'; put 'put ''YVs0Njk3M10pPj4wXT0wfGZlWzE5NDgwNV0sbD0oMHxhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml0pKygwfGFbNDY5NzFdKXwwLGM9QTt0OmZvcig7Oyl7Zm9yKHA9Yzs7KXtjPTB8YVsxODkwNCsoWHRbcD4+MF08PDIpPj4yXSwwfGl0WzYzODU2KyhsPDwxKT4+MV0mJihhWzQ2OTc0XT1s''@;'; put 'put ''LGFbNDY5NzVdPXApO246Zm9yKDs7KXtmPTI1NSZjO2Rve2lmKCgwfGwpPT0oMHxpdFs2NDI1MisoKGM9ZisoMHxpdFs2NDA0MisobDw8MSk+PjFdKXwwKTw8MSk+PjFdKSlicmVhayBuO2w9KHc9MHxpdFs2NDc4OCsobDw8MSk+PjFdKTw8MTY+PjE2fXdoaWxlKHc8PDE2Pj4xNjw9OTIpO2M9''@;'; put 'put ''MHxhWzE5OTI4KyhmPDwyKT4+Ml19aWYobD0wfGl0WzY0OTk4KyhjPDwxKT4+MV0sYz1wKzF8MCwyMTk9PSgwfGl0WzY0MDQyKyhsPDwxKT4+MV0pKWJyZWFrO3A9Y31uOmZvcig7Oyl7dz1BO3I6Zm9yKDs7KXsobD0wfGl0WzYzODU2KyhsPDwxKT4+MV0pPDwxNj4+MTY/bD1sPDwxNj4+MTY6''@;'; put 'put ''KGw9MHxpdFs2Mzg1NisoYVs0Njk3NF08PDEpPj4xXSxjPTB8YVs0Njk3NV0pLGFbNDY5NjRdPUEsYVs0Njk2NV09KG09YyktdyxmZVsxOTQ4MDVdPTB8ZmVbYz4+MF0sZmVbYz4+MF09MCxhWzQ2OTczXT1jO2k6Zm9yKDs7KXtzd2l0Y2goMHxsKXtjYXNlIDE6az0yNzticmVhayBlO2Nhc2Ug''@;'; put 'put ''MTI6az01MzticmVhayBlO2Nhc2UgMTM6az01NTticmVhayBlO2Nhc2UgMTQ6az01NzticmVhayBlO2Nhc2UgMTU6az02MTticmVhayBlO2Nhc2UgMTY6az02NTticmVhayBlO2Nhc2UgMTc6az02NzticmVhayBlO2Nhc2UgMTg6az02OTticmVhayBlO2Nhc2UgMTk6az03MjticmVhayBlO2Nh''@;'; put 'put ''c2UgMjA6az03NTticmVhayBlO2Nhc2UgMjE6az03ODticmVhayBlO2Nhc2UgMjM6az04NjticmVhayBlO2Nhc2UgMzM6az0xMTg7YnJlYWsgZTtjYXNlIDM5OmNhc2UgMzg6Y2FzZSAzNzpjYXNlIDM2OmI9MDticmVhayBlO2Nhc2UgMjprPTI5O2JyZWFrIHQ7Y2FzZSAzOms9MzI7YnJlYWsg''@;'; put 'put ''dDtjYXNlIDQ6az0zNTticmVhayB0O2Nhc2UgNTprPTM3O2JyZWFrIHQ7Y2FzZSA2Oms9Mzk7YnJlYWsgdDtjYXNlIDc6az00MjticmVhayB0O2Nhc2UgODprPTQ0O2JyZWFrIHQ7Y2FzZSA5Oms9NDc7YnJlYWsgdDtjYXNlIDEwOms9NDk7YnJlYWsgdDtjYXNlIDExOms9NTE7YnJlYWsgdDtj''@;'; put 'put ''YXNlIDIyOms9ODM7YnJlYWsgdDtjYXNlIDI0Oms9ODk7YnJlYWsgdDtjYXNlIDI1Oms9OTI7YnJlYWsgdDtjYXNlIDI2Oms9OTU7YnJlYWsgdDtjYXNlIDI3Oms9OTg7YnJlYWsgdDtjYXNlIDI4Oms9MTAxO2JyZWFrIHQ7Y2FzZSAyOTprPTEwNDticmVhayB0O2Nhc2UgMzA6az0xMDk7YnJl''@;'; put 'put ''YWsgdDtjYXNlIDMxOms9MTEyO2JyZWFrIHQ7Y2FzZSAzMjprPTExNTticmVhayB0O2Nhc2UgMzQ6az0xMjE7YnJlYWsgdDtjYXNlIDA6YnJlYWsgaTtjYXNlIDM1OmJyZWFrO2RlZmF1bHQ6az0xMzQ7YnJlYWsgZX1pZihwPTB8YVs0Njk2NF0sZmVbYz4+MF09MHxmZVsxOTQ4MDVdLDB8YVs0''@;'; put 'put ''NCsoZj0wfGFbKGw9MHxhWzQ2OTcyXSk+PjJdKT4+Ml0/bD0wfGFbNDY5NzddOihhWzQ2OTc3XT1NPTB8YVtmKzE2Pj4yXSxhW2Y+PjJdPWFbNDY5NjJdLGFbNDQrKGY9MHxhW2w+PjJdKT4+Ml09MSxsPU0pLCgwfGFbNDY5NzNdKT4+PjA8PSgoMHxhW2YrND4+Ml0pK2x8MCk+Pj4wKXtrPTEy''@;'; put 'put ''ODticmVhayByfXN3aXRjaCgwfGJyKCkpe2Nhc2UgMDprPTEzMjticmVhayBuO2Nhc2UgMjprPTEzMzticmVhayByO2Nhc2UgMTpicmVhaztkZWZhdWx0OmNvbnRpbnVlIGV9YVs0Njk3M109YVs0Njk2NF0sbD0zNisoKCgwfGFbNDY5NzFdKS0xfDApLzJ8MCl8MH1mZVtjPj4wXT0wfGZlWzE5''@;'; put 'put ''NDgwNV0sYz0wfGFbNDY5NzVdLGw9MHxhWzQ2OTc0XX1pZigxMjghPSgwfGspKTEzMyE9KDB8ayl8fChrPTAsYVs0Njk3M109Yz0oMHxhWzQrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXSkrKDB8YVs0Njk3N10pfDAsbD0wfFduKCksQT0wfGFbNDY5NjRdKTtlbHNlIGlmKGs9MCxmPW0tcHwwLGFb''@;'; put 'put ''NDY5NzNdPWM9KHA9MHxhWzQ2OTY0XSkrKGYrLTEpfDAsbT0wfCRuKGw9MHxXbigpKSxBPTB8YVs0Njk2NF0sbSl7az0xMjk7YnJlYWt9fTEyOSE9KDB8ayk/MTMyIT0oMHxrKXx8KGs9MCxhWzQ2OTczXT1jPW0tcC0xKygwfGFbNDY5NjRdKXwwLGw9MHxXbigpLEE9MHxhWzQ2OTY0XSk6KGs9''@;'; put 'put ''MCxhWzQ2OTczXT1jPXArZnwwLGw9bSl9c3dpdGNoKDB8ayl7Y2FzZSAyOTpjYXNlIDk1Oms9MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYVs0NzI1XT0xKygwfGFbNDcyNV0pO2Nv''@;'; put 'put ''bnRpbnVlIGU7Y2FzZSAzMjprPTAsMHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGFbNDY5NzFdPTM7Y29udGludWUgZTtjYXNlIDM1OmNhc2UgMzc6Y2FzZSA0MjpjYXNlIDQ3OmNhc2Ug''@;'; put 'put ''NDk6Y2FzZSA1MTppZihrPTAsIShsPTB8YVs0Njk2NV0pKWNvbnRpbnVlIGU7YVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMTtjb250aW51ZSBlO2Nhc2UgMzk6az0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0''@;'; put 'put ''Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxhWzQ2OTcxXT0xO2NvbnRpbnVlIGU7Y2FzZSA0NDprPTAsMHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+''@;'; put 'put ''MF0pJjEpLEtzKCk7Y29udGludWUgZTtjYXNlIDgzOms9MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYVs0Njk3MV09NSx0aCgpO2NvbnRpbnVlIGU7Y2FzZSA4OTprPTAsMHwobD0w''@;'; put 'put ''fGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLEJyKDk4NzQ0KTtjb250aW51ZSBlO2Nhc2UgOTI6az0wLDB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgw''@;'; put 'put ''fGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxCcig5NjYxNik7Y29udGludWUgZTtjYXNlIDk4OmNhc2UgMTE1Oms9MCxsPTB8YVs0Njk2NF0sMHwoYz0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbbCsoYystMSk+PjBdKSYxKSxCcihs''@;'; put 'put ''KTtjb250aW51ZSBlO2Nhc2UgMTAxOms9MCwwfChsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYVs0Njk3MV09NyxhWzQ2OTc2XT0xLHRoKCk7Y29udGludWUgZTtjYXNlIDEwNDppZihrPTAs''@;'; put 'put ''MHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGFbNDY5NzZdPU09KDB8YVs0Njk3Nl0pLTF8MCwhTSl7az0xMDg7YnJlYWsgZX1CcigwfGFbNDY5NjRdKTtjb250aW51ZSBlO2Nhc2UgMTA5''@;'; put 'put ''Oms9MCxsPTB8YVs0Njk2NF0sMHwoYz0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbbCsoYystMSk+PjBdKSYxKSxhWzQ2OTc2XT0xKygwfGFbNDY5NzZdKSxCcihsKTtjb250aW51ZSBlO2Nhc2UgMTEyOms9MCxsPTB8YVs0Njk2NF0sMHwoYz0w''@;'; put 'put ''fGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbbCsoYystMSk+PjBdKSYxKSxCcihsKSxhWzQ3MjVdPTErKDB8YVs0NzI1XSk7Y29udGludWUgZTtjYXNlIDEyMTprPTAsbD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0''@;'; put 'put ''Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlW2wrKGMrLTEpPj4wXSkmMSksQ3UobCxjLDEsMHxhWzQ2OTYzXSk7Y29udGludWUgZX19c3dpdGNoKDB8ayl7Y2FzZSAyNzoobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhs''@;'; put 'put ''Ky0xKT4+MF0pJjEpLGI9LTE7YnJlYWs7Y2FzZSA1MzoobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjU5O2JyZWFrO2Nhc2UgNTU6KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0''@;'; put 'put ''Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxiPTI2MDticmVhaztjYXNlIDU3OjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSwwfGFbNDY5''@;'; put 'put ''NjldfHwoYVs0Njk2OV09MjU4KSxiPTI1ODticmVhaztjYXNlIDYxOjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSwwfGFbNDY5NjldfHwoYVs0Njk2OV09MjYxKSxiPTI2MTticmVhaztj''@;'; put 'put ''YXNlIDY1OihsPTB8YVs0Njk2NV0pJiYoYVsyOCsoMHxhW2FbNDY5NzJdPj4yXSk+PjJdPTEwPT0oMHxmZVsoMHxhWzQ2OTY0XSkrKGwrLTEpPj4wXSkmMSksYj0yNjM7YnJlYWs7Y2FzZSA2NzoobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVb''@;'; put 'put ''KDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjYyO2JyZWFrO2Nhc2UgNjk6MHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjYxPT0oMHxhWzQ2OTY5XSk/MjY0OjQ1O2JyZWFr''@;'; put 'put ''O2Nhc2UgNzI6MHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLGI9MjU4PT0oMHxhWzQ2OTY5XSk/MjY0OjQ1O2JyZWFrO2Nhc2UgNzU6bD0wfGFbNDY5NjRdLDB8KGM9MHxhWzQ2OTY1XSkm''@;'; put 'put ''JihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlW2wrKGMrLTEpPj4wXSkmMSksYVs0Njk5Ml09MHxyMCgwfGFbNDY5NDJdLGwpLGI9MjY3O2JyZWFrO2Nhc2UgNzg6MHwobD0wfGFbNDY5NjVdKSYmKGFbMjgrKDB8YVthWzQ2OTcyXT4+Ml0pPj4yXT0xMD09KDB8ZmVbKDB8''@;'; put 'put ''YVs0Njk2NF0pKyhsKy0xKT4+MF0pJjEpLDB8ZnVuY3Rpb24gUDYoKXt2YXIgZixwLEEsdyxiLGw9MCxjPTAsbT0wLGs9MDtyZXR1cm4gYj1sZSxsZT1sZSsyMDgwfDAsdz1iKzh8MCxwPWIsbD1iKzEwNTZ8MCxjPWIrMzJ8MCxBPWIrMTZ8MCwoZj0oaz0wfGZlWygwfGFbNDY5NjVdKS0xKygw''@;'; put 'put ''fGFbNDY5NjRdKT4+MF0pPDwyND4+MjQ9PTQ2KXwoKDI1NSZrKS00OHwwKT4+PjA8MTA/ZiYmMCE9KDB8ZnVuY3Rpb24gSjAoKXt2YXIgYyxsPTA7Zm9yKGM9MHxhWzQ2OTY0XSxsPSgwfGFbNDY5NjVdKS0yfDA7Oyl7aWYoKDB8bCk8PS0xKXtsPTA7YnJlYWt9aWYoNDY9PSgwfGZlW2MrbD4+''@;'; put 'put ''MF0pKXtsPTE7YnJlYWt9bD1sKy0xfDB9cmV0dXJuIDB8bH0oKSk/bT00Omw9MDptPTQsND09KDB8bSkmJihrPTB8YVs0Njk2Nl0sdXMoQSwxMDI0LGwpLHVvKEEsOTY4MjcpLHVvKEEsMHxhWzQ2OTY0XSksYVtwPj4yXT1hWzQ3MjVdLG9vKGMsOTY4NzEscCksdW8oQSxjKSx1byhBLDA9PSgw''@;'; put 'put ''fGspPzk2ODIxOmspLHVvKEEsOTY4ODgpLChsPTB8YVsoYz1BKzR8MCk+PjJdKT4+PjA+PSgwfGFbQSs4Pj4yXSk+Pj4wJiYoUTAoQSwxKSxsPTB8YVtjPj4yXSksZmVbbD4+MF09MCxhW2M+PjJdPWw9MHxhW0E+PjJdLGFbdz4+Ml09bCwkcigwLDk2OTEzLHcpLEMyKEEpLGw9MSksbGU9Yiww''@;'; put 'put ''fGx9KCkmJihrPSgwfGFbNDY5NjVdKS0xfDAsZmVbYz4+MF09MHxmZVsxOTQ4MDVdLGFbNDY5NzNdPU09QStrfDAsYVs0Njk2NF09QSxhWzQ2OTY1XT1rLGZlWzE5NDgwNV09MHxmZVtNPj4wXSxmZVtNPj4wXT0wLGFbNDY5NzNdPU0pLGFbNDY5OTJdPTB8cjAoMHxhWzQ2OTQyXSwwfGFbNDY5''@;'; put 'put ''NjRdKSxiPTI2NzticmVhaztjYXNlIDg2OjB8KGw9MHxhWzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlWygwfGFbNDY5NjRdKSsobCstMSk+PjBdKSYxKSxhWzQ2OTcxXT0xLGZ1bmN0aW9uIGxyKCl7YVs0Njk5Ml09MHxyMCgwfGFbNDY5NDJdLDB8YVs0''@;'; put 'put ''Njk3OF0pLGZlW2FbNDY5NzhdPj4wXT0wfSgpLGI9MjY4O2JyZWFrO2Nhc2UgMTA4OmFbNDY5NzFdPTEsZnVuY3Rpb24gZHIoKXthWzQ2OTkyXT0wfGZ1bmN0aW9uIHBpKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO3JldHVybihjfD0wKT8oKGY9MHxyaShwPTB8SXIobCksYykpPyht''@;'; put 'put ''PTB8emwoMHxhWyhtPUE9Zis4fDApPj4yXSwwfGFbbSs0Pj4yXSwxLDApLGFbQT4+Ml09bSxhW0ErND4+Ml09RG4pOihmPTI0KygwfFVvKGMpKXwwLGY9bD8wfE10KGwsZik6MHxGMChmKSxtPTB8YVs0KyhBPTE4NjMxMik+PjJdLGFbKGw9Zis4fDApPj4yXT0xfGFbQT4+Ml0sYVtsKzQ+PjJd''@;'; put 'put ''PW0scmQobD1mKzIwfDAsYyksYVtmKzE2Pj4yXT1sLG1pWzYzJmFbcD4+Ml1dKHAsZiwxKSksZj0wfGFbZisxNj4+Ml0pOmY9MCwwfGZ9KDB8YVs0Njk0Ml0sMHxhWzQ2OTc4XSksZmVbYVs0Njk3OF0+PjBdPTB9KCksYj0yNjg7YnJlYWs7Y2FzZSAxMTg6bD0wfGFbNDY5NjRdLDB8KGM9MHxh''@;'; put 'put ''WzQ2OTY1XSkmJihhWzI4KygwfGFbYVs0Njk3Ml0+PjJdKT4+Ml09MTA9PSgwfGZlW2wrKGMrLTEpPj4wXSkmMSksYj0wfGZlW2w+PjBdO2JyZWFrO2Nhc2UgMTM0OldyKDk2NjE5KX1yZXR1cm4gMHxifWZ1bmN0aW9uIEFsKCl7dmFyIGw9MCxjPTAsZj0wO2M9MHxhWzQ2OTcyXTtkb3tpZihj''@;'; put 'put ''KXtpZigwPj0oKGw9MHxhWzQ2OTgzXSktMXwwKT4+PjApe2lmKGM9MHx1aShjLChsPWwrOHwwKTw8MiksYVs0Njk3Ml09YyxjKXthWyhmPWMrKGFbNDY5ODNdPDwyKXwwKT4+Ml09MCxhW2YrND4+Ml09MCxhW2YrOD4+Ml09MCxhW2YrMTI+PjJdPTAsYVtmKzE2Pj4yXT0wLGFbZisyMD4+Ml09''@;'; put 'put ''MCxhW2YrMjQ+PjJdPTAsYVtmKzI4Pj4yXT0wLGY9OTticmVha31Xcig5Njk3Nyl9fWVsc2V7aWYobD0wfGVhKDQpLGFbNDY5NzJdPWwsbCl7YVtsPj4yXT0wLGw9MSxmPTk7YnJlYWt9V3IoOTY5NzcpfX13aGlsZSgwKTs5PT0oMHxmKSYmKGFbNDY5ODNdPWwpfWZ1bmN0aW9uIHEyKGwsYyl7''@;'; put 'put ''dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCwoZj0wfGVhKDQ4KSl8fFdyKDk2OTMyKSxhW2YrMTI+PjJdPWMsYz0wfGVhKGMrMnwwKSxhW2YrND4+Ml09YyxjPyhhW2YrMjA+PjJdPTEsdTAoZixsKSwwfGYpOihXcig5NjkzMiksMCl9ZnVuY3Rpb24gZTEoKXt2YXIgYyxsPTA7YVs0Njk3N109YVsx''@;'; put 'put ''NisobD0wfGFbKGM9MHxhWzQ2OTcyXSk+PjJdKT4+Ml0sYVs0Njk3M109bD0wfGFbbCs4Pj4yXSxhWzQ2OTY0XT1sLGFbNDY5NjJdPWFbYVtjPj4yXT4+Ml0sZmVbMTk0ODA1XT0wfGZlW2w+PjBdfWZ1bmN0aW9uIEtzKCl7dmFyIG0sQSxsPTAsYz0wLGY9MCxwPTA7aWYobT1sZSxsZT1sZSsz''@;'; put 'put ''MnwwLHA9bSxjPW0rMTZ8MCxmPW0rMTJ8MCxsPTA9PSgwfHMyKGw9MSsoQT0wfGFbNDY5NjRdKXwwLDk2OTE2LDQpKT9BKzV8MDpsLGFbcD4+Ml09ZixhW3ArND4+Ml09bSsyMCxhW3ArOD4+Ml09YywoMHwocD0wfGlsKGwsOTY5MjEscCkpKT4wJiYoYVs0NzI1XT0oMHxhW2Y+PjJdKS0xLDEh''@;'; put 'put ''PSgwfHApKSl7bD1jPWwrKDB8YVtjPj4yXSl8MDtlOmZvcig7Oyl7c3dpdGNoKChmPTB8ZmVbbD4+MF0pPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDM0OmJyZWFrIGV9bD1sKzF8MH0oMHxsKSE9KDB8YykmZjw8MjQ+PjI0PT0zNCYmKGZlW2w+PjBdPTAsZnVuY3Rpb24gSTAobCxjKXtsfD0wO3Zh''@;'; put 'put ''ciBmPTA7KDB8KGY9MHxhWzQ2OTgxXSkpPCgwfChjfD0wKSk/KGY9Zj8wfFVhKDB8YVs0Njk4Ml0sYysxfDApOjB8RjAoYysxfDApLGFbNDY5ODJdPWYsYVs0Njk4MV09Yyk6Zj0wfGFbNDY5ODJdLHJkKGYsbCksYVs0Njk2Nl09YVs0Njk4Ml19KGMsbC1jfDApKX1sZT1tfWZ1bmN0aW9uIHRo''@;'; put 'put ''KCl7dmFyIGw9MDsobD0wfGFbNDY5NzhdKXx8KGw9MHxGMCgxMDI0KSxhWzQ2OTc4XT1sLGFbNDY5ODBdPWwrMTAyNCksYVs0Njk3OV09bCxmZVtsPj4wXT0wfWZ1bmN0aW9uIEJyKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wOyhmPTB8YVs0Njk3OV0pPj4+MD4oYz0wfGFb''@;'; put 'put ''NDY5NzhdKT4+PjAmJihmPWYrLTF8MCxwPTMpO2U6Zm9yKDs7KXszPT0oMHxwKSYmKGFbNDY5NzldPWYpLG09cD0wfGFbNDY5ODBdO2Rve2lmKEE9bCxsPWwrMXwwLHc9ZixmPWYrMXwwLGZlW3c+PjBdPUE9MHxmZVtBPj4wXSwhKEE8PDI0Pj4yNCkpYnJlYWsgZX13aGlsZShmPj4+MDxwPj4+''@;'; put 'put ''MCk7YVs0Njk3OV09ZixjPTB8VWEoYyx3PW0tKHA9Yyk8PDEpLGFbNDY5NzhdPWMsYVs0Njk4MF09Yyt3LGY9YysoZi1wKXwwLHA9M31hWzQ2OTc5XT1mfWZ1bmN0aW9uIFduKCl7dmFyIG0sbD0wLGM9MCxmPTAscD0wO2ZvcihtPTB8YVs0Njk3M10scD0wfGFbNDY5NjRdLGM9KDB8YVsyOCso''@;'; put 'put ''MHxhW2FbNDY5NzJdPj4yXSk+PjJdKSsoMHxhWzQ2OTcxXSl8MDshKHA+Pj4wPj1tPj4+MCk7KXtsPShsPTB8ZmVbcD4+MF0pPDwyND4+MjQ/MHxhWzE4OTA0KygoMjU1JmwpPDwyKT4+Ml06MSwwfGl0WzYzODU2KyhjPDwxKT4+MV0mJihhWzQ2OTc0XT1jLGFbNDY5NzVdPXApO2U6Zm9yKDs7''@;'; put 'put ''KXtmPTI1NSZsO2Rve2lmKCgwfGMpPT0oMHxpdFs2NDI1MisoKGw9ZisoMHxpdFs2NDA0MisoYzw8MSk+PjFdKXwwKTw8MSk+PjFdKSlicmVhayBlO2M9KGw9MHxpdFs2NDc4OCsoYzw8MSk+PjFdKTw8MTY+PjE2fXdoaWxlKGw8PDE2Pj4xNjw9OTIpO2w9MHxhWzE5OTI4KyhmPDwyKT4+Ml19''@;'; put 'put ''cD1wKzF8MCxjPTB8aXRbNjQ5OTgrKGw8PDEpPj4xXX1yZXR1cm4gMHxjfWZ1bmN0aW9uICRuKGwpe3ZhciBjPTA7Zm9yKDB8aXRbNjM4NTYrKChsfD0wKTw8MSk+PjFdJiYoYz0wfGFbNDY5NzNdLGFbNDY5NzRdPWwsYVs0Njk3NV09Yyk7KDB8bCkhPSgwfGl0WzY0MjUyKygoYz0xKygwfGl0''@;'; put 'put ''WzY0MDQyKyhsPDwxKT4+MV0pfDApPDwxKT4+MV0pOylsPTB8aXRbNjQ3ODgrKGw8PDEpPj4xXTtyZXR1cm4gMHwoKGM9MHxpdFs2NDk5OCsoYzw8MSk+PjFdKTw8MTY+PjE2PT05Mj8wOmM8PDE2Pj4xNil9ZnVuY3Rpb24gYnIoKXt2YXIgbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9''@;'; put 'put ''MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO2lmKHA9MHxhWzQ2OTY0XSxrPU09MHxhWzQ2OTczXSxNPj4+MD4oKHc9MHxhWzQrKG09MHxhWyhiPTB8YVs0Njk3Ml0pPj4yXSk+PjJdKSsoMSsoMHxhWzQ2OTc3XSkpfDApPj4+MCYmV3IoOTY2NzQpLEE9ay1wfDAsMHxhW20rNDA+PjJdKXtmb3IoTT1B''@;'; put 'put ''Ky0xfDAsQT13LG09MDshKCgwfG0pPj0oMHxNKSk7KWZlW0E+PjBdPTB8ZmVbcD4+MF0sQT1BKzF8MCxwPXArMXwwLG09bSsxfDA7cD0wfGFbYj4+Ml07ZG97aWYoMj09KDB8YVtwKzQ0Pj4yXSkpYVs0Njk3N109MCxhW3ArMTY+PjJdPTAsZj1wLEQ9MTc7ZWxzZXtmb3IoOzspe2lmKDB8KG09''@;'; put 'put ''KEE9MHxhWyh3PXArMTJ8MCk+PjJdKS1NLTF8MCkpe0Q9MTY7YnJlYWt9aWYoYj0wfGFbKG09cCs0fDApPj4yXSwhKDB8YVtwKzIwPj4yXSkpe0Q9MTI7YnJlYWt9aWYoYVt3Pj4yXT1wPTA9PSgwfChwPUE8PDEpKT8oQT4+PjMpK0F8MDpwLHA9MHx1aShiLHArMnwwKSxhW20+PjJdPXAsIXAp''@;'; put 'put ''YnJlYWs7YVs0Njk3M109Yj1wKyhrLWIpfDAscD0wfGFbYVs0Njk3Ml0+PjJdLGs9Yn1pZigxMj09KDB8RCkpYVttPj4yXT0wO2Vsc2UgaWYoMTY9PSgwfEQpKXtpZihjPTB8bWlbNjMmYVthWzgrKDB8YVs0Njk2N10pPj4yXT4+Ml1dKDB8YVs0Njk2OF0sKDB8YVtwKzQ+PjJdKStNfDAsbT4+''@;'; put 'put ''PjA8ODE5Mj9tOjgxOTIpLGY9MHxhW2FbNDY5NzJdPj4yXSxhWzQ2OTc3XT1jLGFbZisxNj4+Ml09YyxjKXtsPTA7YnJlYWt9RD0xNzticmVha31Xcig5NjczMCl9fXdoaWxlKDApO2Rve2lmKDE3PT0oMHxEKSl7aWYoTSl7YVtmKzQ0Pj4yXT0yLGw9MixjPTA7YnJlYWt9SWkoMHxhWzQ2OTYy''@;'; put 'put ''XSksbD0xLGM9MHxhWzQ2OTc3XSxmPTB8YVthWzQ2OTcyXT4+Ml07YnJlYWt9fXdoaWxlKDApO3A9YytNfDA7ZG97aWYocD4+PjA+KDB8YVtmKzEyPj4yXSk+Pj4wKXtpZihEPTB8dWkoMHxhW2YrND4+Ml0scCsoYz4+PjEpfDApLGFbNCsoMHxhWyhjPTB8YVs0Njk3Ml0pPj4yXSk+PjJdPUQs''@;'; put 'put ''Yz0wfGFbNCsoMHxhW2M+PjJdKT4+Ml0pe1I9MHxhWzQ2OTc3XSxHPWM7YnJlYWt9V3IoOTY3NzQpfWVsc2UgUj1jLEc9MHxhW2YrND4+Ml19d2hpbGUoMCk7YVs0Njk3N109Uj1SK018MCxmZVtHK1I+PjBdPTAsZmVbMSsoMHxhWzQ2OTc3XSkrKDB8YVs0KygwfGFbKEc9MHxhWzQ2OTcyXSk+''@;'; put 'put ''PjJdKT4+Ml0pPj4wXT0wLGFbNDY5NjRdPWFbNCsoMHxhW0c+PjJdKT4+Ml19ZWxzZSBsPTE9PSgwfEEpPzE6MjtyZXR1cm4gMHxsfWZ1bmN0aW9uIFdyKGwpe3ZhciBjLGY7Yz1sZSxsZT1sZSsxNnwwLGY9MHxhWzE1NzEyXSxhW2M+PjJdPWx8PTAsVDAoZiw5NjY3MCxjKSxYdSgyKX1mdW5j''@;'; put 'put ''dGlvbiB1aShsLGMpe3JldHVybiAwfFVhKGx8PTAsY3w9MCl9ZnVuY3Rpb24gSWkobCl7bHw9MDt2YXIgYz0wLGY9MDswIT0oMHwoZj0wfGFbNDY5NzJdKSkmJjAhPSgwfChjPTB8YVtmPj4yXSkpfHwoQWwoKSxjPTB8cTIoMHxhWzQ2OTYyXSwxNjM4NCksYVsoZj0wfGFbNDY5NzJdKT4+Ml09''@;'; put 'put ''YyxmfHwoYz0wKSksdTAoYyxsKSxlMSgpfWZ1bmN0aW9uIHUwKGwsYyl7dmFyIGY7Y3w9MCxmPTB8YVs0NzY0M10semkobHw9MCksYVtsPj4yXT1jLGFbbCs0MD4+Ml09MSwoMHwoYz0oYz0wfGFbNDY5NzJdKT8wfGFbYz4+Ml06MCkpIT0oMHxsKSYmKGFbbCszMj4+Ml09MSxhW2wrMzY+PjJd''@;'; put 'put ''PTApLGFbbCsyND4+Ml09MCxhWzQ3NjQzXT1mfWZ1bmN0aW9uIHppKGwpe3ZhciBjPTA7MHwobHw9MCkmJihhW2wrMTY+PjJdPTAsZmVbYVsoYz1sKzR8MCk+PjJdPj4wXT0wLGZlWzErKDB8YVtjPj4yXSk+PjBdPTAsYVtsKzg+PjJdPWFbYz4+Ml0sYVtsKzI4Pj4yXT0xLGFbbCs0ND4+Ml09''@;'; put 'put ''MCwoMHwoYz0oYz0wfGFbNDY5NzJdKT8wfGFbYz4+Ml06MCkpPT0oMHxsKSYmZTEoKSl9ZnVuY3Rpb24gZWEobCl7cmV0dXJuIDB8RjAobHw9MCl9ZnVuY3Rpb24gWW8obCl7bHw9MDt2YXIgcCxtLEEsYixrLE0sYz0wLGY9MCx3PTA7TT1sZSxsZT1sZSsyMTEyfDAsaz1NKzMyfDAsdz1NKzI0''@;'; put 'put ''fDAsQT1NKzE2fDAsbT1NKzh8MCxwPU0sYz1NKzU2fDAsdXMoYj1NKzQwfDAsMTAyNCxNKzEwODB8MCksMHwoZj0wfGFbNDY5NjZdKSYmKHVvKGIsZiksdW8oYiw5NzAyNykpLHVvKGIsbCksYVtwPj4yXT1hWzQ3MjVdLG9vKGMsOTcwMzAscCksdW8oYixjKTtlOmRve2lmKDB8ZmVbYVs0Njk2''@;'; put 'put ''NF0+PjBdKXVvKGIsOTcwNDIpLHVvKGIsMHxhWzQ2OTY0XSksYz1iKzR8MCxsPTB8YVtjPj4yXSxsPj4+MD49KDB8YVtiKzg+PjJdKT4+PjAmJihRMChiLDEpLGw9MHxhW2M+PjJdKSxhW2M+PjJdPWwrMSxmZVtsPj4wXT0zOTtlbHNlIHN3aXRjaCgwfCgoMHxhWzQ2OTcxXSktMXwwKS8yKXtj''@;'; put 'put ''YXNlIDI6aWYoYVttPj4yXT0xNjM4NCxvbyhjLDk3MDUwLG0pLHVvKGIsYyksISgwfGZlWyhsPTB8YVs0Njk3OF0pPj4wXSkpYnJlYWsgZTt3PTB8VW8obCksdW8oYiw5NzExMiksbD0wfGFbNDY5NzhdLCgwfHcpPjgwJiYoZmVbbCs4MD4+MF09MCksdW8oYixsKTticmVhayBlO2Nhc2UgMzpp''@;'; put 'put ''ZihhW0E+PjJdPTE2Mzg0LG9vKGMsOTcxMzEsQSksdW8oYixjKSwhKDB8ZmVbKGw9MHxhWzQ2OTc4XSk+PjBdKSlicmVhayBlO3c9MHxVbyhsKSx1byhiLDk3MTk5KSxsPTB8YVs0Njk3OF0sKDB8dyk+ODAmJihmZVtsKzgwPj4wXT0wKSx1byhiLGwpO2JyZWFrIGU7Y2FzZSAxOmFbdz4+Ml09''@;'; put 'put ''MTYzODQsb28oYyw5NzIxOCx3KSx1byhiLGMpO2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13aGlsZSgwKTsobD0wfGFbKGY9Yis0fDApPj4yXSk+Pj4wPj0oMHxhWyhjPWIrOHwwKT4+Ml0pPj4+MCYmKFEwKGIsMSksbD0wfGFbZj4+Ml0pLGFbZj4+Ml09bCsxLGZlW2w+PjBdPTEwLChsPTB8''@;'; put 'put ''YVtmPj4yXSk+Pj4wPj0oMHxhW2M+PjJdKT4+PjAmJihRMChiLDEpLGw9MHxhW2Y+PjJdKSxmZVtsPj4wXT0wLGFbZj4+Ml09dz0wfGFbYj4+Ml0sYVtrPj4yXT13LCRyKDEsOTY5MTMsayksQzIoYiksbGU9TX1mdW5jdGlvbiBFYyhsLGMsZil7dmFyIHAsbSxBO3JldHVybiBjfD0wLGZ8PTAs''@;'; put 'put ''cD1sZSxsZT1sZSs4MHwwLG09cCxmdW5jdGlvbiBrRyhsLGMsZil7Y3w9MCwwfChmfD0wKSYmKDB8Sm0oYywwLDApKSE9KDB8ZikmJkptKGMsZiwwKX0oMCwwfGFbKEE9NTIrKGx8PTApfDApPj4yXSwxODU0OCksYVsobD1tKzh8MCk+PjJdPWMsYVtsKzQ+PjJdPWYsZj0wfG1pWzYzJmFbKGY9''@;'; put 'put ''MHxhW0E+PjJdKT4+Ml1dKGYsbSw0KSxsZT1wLDB8Zn1mdW5jdGlvbiBwcyhsLGMsZil7bHw9MCxmfD0wO3ZhciBtLEEscD0wO3JldHVybiBBPWxlLGxlPWxlKzE2fDAsbT1BLDAhPSgwfChjfD0wKSkmJjAhPSgwfEs0KGwsMCxjLG0sMCkpJiYwIT0oMHwocD0wfEVjKGwsMHxhWyhwPW0pPj4y''@;'; put 'put ''XSwwfGFbcCs0Pj4yXSkpKXx8KDAhPSgwfGYpJiYwIT0oMHxLNChsLDAsYyxtLDEpKT8ocD0wfGZ1bmN0aW9uIE91KGwsYyxmKXt2YXIgcD0wLG09MCxBPTA7cmV0dXJuKHA9MHxFYyhsfD0wLGN8PTAsZnw9MCkpfHwocD0wfE10KGwsNzIpLGFbcCs2ND4+Ml09YVtsKzY0Pj4yXSxhWyhtPXAr''@;'; put 'put ''MjR8MCk+PjJdPUE9MHxhW2wrMjQ+PjJdLGZlW20+PjBdPTI1NSZBJi05LGFbcCs1Nj4+Ml09bCxhW3ArNjA+PjJdPWFbbCs2MD4+Ml0sYVsobD1wKzh8MCk+PjJdPWMsYVtsKzQ+PjJdPWYsaG8ocCkpLDB8cH0obCwwfGFbKHA9bSk+PjJdLDB8YVtwKzQ+PjJdKSxMNShsLDAscCkpOnA9MCks''@;'; put 'put ''bGU9QSwwfHB9ZnVuY3Rpb24gd3MobCl7cmV0dXJuIDB8bWlbNjMmYVsobD0wfGFbNTIrKGx8PTApPj4yXSk+PjJdXShsLDAsMTI4KX1mdW5jdGlvbiBFcyhsKXt2YXIgYz0wO3JldHVybiAwfChsPShjPTB8azEobHw9MCkpPzB8bWlbNjMmYVsoYz0wfGFbYys1Mj4+Ml0pPj4yXV0oYyxsLDgp''@;'; put 'put ''OjApfWZ1bmN0aW9uIGsxKGwpe3JldHVybiAwfGFbNTYrKGx8PTApPj4yXX1mdW5jdGlvbiByNyhsLGMpe3JldHVybiAwfG1pWzYzJmFbKGw9MHxhWzUyKyhsfD0wKT4+Ml0pPj4yXV0obCxjfD0wLDIpfWZ1bmN0aW9uIFpoKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGZ8PTAsbT0wfGFb''@;'; put 'put ''KHA9MjgrKGN8PTApfDApPj4yXSxhW3A+PjJdPTcsYVs0Njk4NF09bCxmPTB8aXMoYyxmKSxhW3A+PjJdPW0sYVs0Njk4NF09MCwwfGZ9ZnVuY3Rpb24gJDQobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLGY9MjgrKDB8Sm0oY3w9MCwwLDApKXwwLHA9MHxhW2Y+PjJdLGFbZj4+Ml09NyxhWzQ2''@;'; put 'put ''OTg0XT1sLDB8TmwoYyk/bD0xOihhW2Y+PjJdPXAsYVs0Njk4NF09MCxsPTApLDB8bH1mdW5jdGlvbiBFRyhsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MDtlOmRve2lmKDAhPSgwfGwpJiYwIT0oMHxmZVtsPj4w''@;'; put 'put ''XSkpe2ZlW2M+PjBdPTM0LHBlPTAsbT0xJigoKE09MHxmZVtsPj4wXSktNDUmMjU1KTwyfCgoMjU1Jk0pLTQ4fDApPj4+MDwxMCksQT0wLHc9MCxiPTAsZj1jKzF8MCxwPWwrMXwwO3Q6Zm9yKDs7KXtmb3Ioaz1mOzspe2lmKCEoTTw8MjQ+PjI0KSlicmVhayB0O2Y9MjU1Jk07bjpkb3tpZihN''@;'; put 'put ''PDwyND4+MjQ9PTM0KWZlW2s+PjBdPTkyLEQ9bSxSPTEsaz1rKzF8MDtlbHNle2lmKCFtKXtEPTAsUj0oUj1NPDwyND4+MjQ+LTEmTTw8MjQ+PjI0IT05NSYwPT0oMHxpdihmKSkpPzE6QTticmVha31zd2l0Y2goTTw8MjQ+PjI0KXtjYXNlIDQ1OkQ9KFI9MD09KDB8YikpP206MCxSPVI/QTox''@;'; put 'put ''O2JyZWFrIG47Y2FzZSA0NjpEPShSPTA9PSgwfHcpKT9tOjAsUj1SP0E6MSx3PXcrMXwwO2JyZWFrIG47ZGVmYXVsdDpEPShSPShmKy00OHwwKT4+PjA8MTApP206MCxSPVI/QToxO2JyZWFrIG59fX13aGlsZSgwKTtpZihmPWsrMXwwLGZlW2s+PjBdPU0scT1wKzF8MCxHPTB8ZmVbcD4+MF0s''@;'; put 'put ''Yj1iKzF8MCxwPTB8YVs1MDMxXSl7aWYobT0yNTUmRyxwZSYoQT1HPDwyND4+MjQhPTApJiYhKE08PDI0Pj4yND09OTJ8TTw8MjQ+PjI0Pi0xJihNKy00NSYyNTUpPjEmMD09KDB8aXYoTTw8MjQ+PjI0KSleMSkmJiEoRzw8MjQ+PjI0Pi0xJihHKy00NSYyNTUpPjEmMD09KDB8aXYobSkpKSli''@;'; put 'put ''cmVhaztpZigoMHxiKTwoMHxwKXwxXkEpbT1ELEE9UixrPWYscD1xLE09RztlbHNle2lmKE08PDI0Pj4yND09OTJ8TTw8MjQ+PjI0Pi0xJjA9PSgwfGl2KE08PDI0Pj4yNCkpJihNKy00NSYyNTUpPjFeMSl7cGU9MSxtPUQsQT1SLE09RyxwPXE7Y29udGludWUgdH1pZihHPDwyND4+MjQ+LTEm''@;'; put 'put ''KEcrLTQ1JjI1NSk+MSYwPT0oMHxpdihtKSkpe3BlPTEsbT1ELEE9UixNPUcscD1xO2NvbnRpbnVlIHR9ZmVbZj4+MF09OTIsZmVbaysyPj4wXT0xMCxtPUQsQT0xLGI9MCxrPWsrM3wwLHA9cSxNPUd9fWVsc2UgbT1ELEE9UixrPWYscD1xLE09R31mZVtmPj4wXT05MixmZVtrKzI+PjBdPTEw''@;'; put 'put ''LHBlPTAsbT1ELEE9MSxiPTAsTT1HLGY9ayszfDAscD1xfWlmKGZlW2s+PjBdPTM0LGZlW2srMT4+MF09MCxBKWw9YztlbHNle2lmKDE9PSgwfGIpJiYoKDB8ZmVbbD4+MF0pLTQ1JjI1NSk8Mil7bD1jO2JyZWFrfWZvcihmPTIwMTI4Ozspe2lmKCEocD0wfGFbZj4+Ml0pKWJyZWFrIGU7aWYo''@;'; put 'put ''ISgwfHkwKHAsbCkpKXtsPWM7YnJlYWt9Zj1mKzR8MH19fWVsc2UgbD05NzMwOX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFJBKGwpe3JldHVybiAwfGZ1bmN0aW9uIFNHKGwsYyl7cmV0dXJuIGN8PTAsMHxPbyhsfD0wKT9mdW5jdGlvbiBNRyhsLGMpe2x8PTA7dmFyIGY9MCxwPTAs''@;'; put 'put ''bT0wO2ZvcihmZVsoY3w9MCk+PjBdPTYwLHA9YztmPXArMXwwLChtPTB8ZmVbbD4+MF0pPDwyND4+MjQ7KWZlW2Y+PjBdPW0sbD1sKzF8MCxwPWY7ZmVbZj4+MF09NjIsZmVbcCsyPj4wXT0wfShsLGMpOmM9MHxFRyhsLGMpLDB8Y30obHw9MCwwfEpuZShsKSl9ZnVuY3Rpb24gSm5lKGwpe3Zh''@;'; put 'put ''ciBjPTA7cmV0dXJuIGM9MisoKDB8VW8obHw9MCkpPDwxKXwwLGw9MHxhWzQ2OTg2XSwoYz1jPj4+MD4xMDI0P2M6MTAyNCk+Pj4wPigwfGFbNDY5ODVdKT4+PjAmJihsPWw/MHxVYShsLGMpOjB8RjAoYyksYVs0Njk4Nl09bCxhWzQ2OTg1XT1jKSwwfGx9ZnVuY3Rpb24gVEcobCl7dmFyIGM9''@;'; put 'put ''MCxmPTAscD0wLG09MCxBPTAsdz0wOzAhPSgwfChBPTB8dGkobHw9MCkpKSYmMzchPSgwfGZlW0E+PjBdKT9jPTA6Zj0zO2U6ZG97aWYoMz09KDB8Zikpe2M9MHxpYyhsKTt0OmRve2lmKDB8YyYmKHA9MHxpYygwfGsxKGwpKSwwfHApKWZvcihBPTB8cHUoMHxhWzgrKDB8aWMoMHxkaShsKSkp''@;'; put 'put ''Pj4yXSksbT1jKzEyfDAsZj1wKzEyfDAsYz0wOzspe2lmKCgwfGMpPj0oMHxBKSlicmVhayB0O2lmKDB8KHA9MHxhWygwfGFbbT4+Ml0pKyhjPDwyKT4+Ml0pJiYwfCh3PTB8YVsoMHxhW2Y+PjJdKSsoYzw8Mik+PjJdKSYmMHxaaShwLHcpKXtjPTA7YnJlYWsgZX1jPWMrMXwwfX13aGlsZSgw''@;'; put 'put ''KTtpZihjPTB8VmgobCwwKSl7aWYoISgoMHxwdSgwfGFbYys4Pj4yXSkpPjApKXJldHVybigwfHB1KDB8YVtjKzEyPj4yXSkpPDF8MDtjPTB9ZWxzZSBjPTF9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gWG5lKGwsYyl7bHw9MCxjfD0wO3ZhciBmLHA9MDtyZXR1cm4gYVs0Njk4N109''@;'; put 'put ''MCwwfChmPTB8TGkobCw5NzMxOSkpJiYoKDB8ZmVbZj4+MF0pLTQ4fDApPj4+MDwxMCYmMD09KDB8KHA9MHxrTChmLDAsMTApKSl8KDB8cCk+NTkmJihhWzUwMzFdPXApLEtuZShsLDEpLC0xIT0oMHwkbmUobCxjLDEpKSYmLTEhPSgwfHFuZShsLGMpKSYmLTEhPSgwfGVyZShsLGMpKT8oYVs1''@;'; put 'put ''MDMxXT0xMjgsbD0wfF9vWzYzJmFbOCsoMHxhWzgrKDB8YVtsKzY0Pj4yXSk+PjJdKT4+Ml1dKGMpKTpsPS0xLDB8bH1mdW5jdGlvbiBLbmUobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGFbKGx8PTApPj4yXT0tOSZhW2w+PjJdLGY9MHx3cyhsKTtmOylLbmUoZiwwKSxmPTB8RXMoZik7ZTpkb3tp''@;'; put 'put ''ZigwfGMpZm9yKGM9MHxEdChsKTs7KXtpZighYylicmVhayBlO2ZvcihhW2M+PjJdPS05JmFbYz4+Ml0sZj0wfHcwKGwsYyk7ZjspYVtmPj4yXT0tOSZhW2Y+PjJdLGY9MHxTMChsLGYpO2M9MHx6dChsLGMpfX13aGlsZSgwKX1mdW5jdGlvbiAkbmUobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0w''@;'; put 'put ''LG09MCxBPTAsdz0wLGI9MCxrPTA7MD09KDB8KGZ8PTApKSYmMCE9KDB8azEobCkpPyh3PTAsbT0xOTUwNTksaz0xMDk1MTQpOihrPTA9PSgxJmZlW2wrMjQ+PjBdKT8xOTUwNTk6OTczNjMsbT0wPT0oMHxMQShsKSksYVs0Njk4OF09MHxzaShsLDIsMTExNDU1LDApLGFbNDY5ODldPTB8c2ko''@;'; put 'put ''bCwyLDExMTQ2NCwwKSx3PTEsbT1tPzE5NTA1OTo5NzM2NiksMCE9KDB8KHA9MHx0aShsKSkpJiYzNyE9KDB8ZmVbcD4+MF0pPyhBPTEsYj0xMDI2MDQpOihBPTAsYj0xOTUwNTkscD0xOTUwNTkpO2Rve2lmKC0xIT0oMHxPNShsLGMpKSYmLTEhPSgwfEgyKGwsYyxtKSkpe2lmKG09MD09KDB8''@;'; put 'put ''QSksQXx3fDApe2lmKC0xPT0oMHxIMihsLGMsaykpKXtwPS0xO2JyZWFrfWlmKC0xPT0oMHxIMihsLGMsMTAyNTk3KSkpe3A9LTE7YnJlYWt9fWlmKCFtJiYtMT09KDB8RjYobCxjLHApKSl7cD0tMTticmVha30tMSE9KDB8SDIobCxjLGIpKSYmLTEhPSgwfEgyKGwsYyw5NzM3NCkpJiYoYVs0''@;'; put 'put ''Njk4N109MSsoMHxhWzQ2OTg3XSksLTEhPSgwfFlkKGwsYyxmKSkpPyhhW2w+PjJdPTh8YVtsPj4yXSxwPTApOnA9LTF9ZWxzZSBwPS0xfXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24gcW5lKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2U6''@;'; put 'put ''ZG97aWYoLTE9PSgwfEFDKGwsYykpKWY9LTE7ZWxzZSBmb3IoTT0wfFZoKDB8ZGkobCksMCksYj0wPT0oMHxNKSxrPU0rMTJ8MCxNPU0rOHwwLHc9MHxEdChsKTs7KXtpZighdyl7Zj0wO2JyZWFrIGV9aWYoMHx0cmUobCx3LCgwfGFbdz4+Ml0pPj4+NCwwKSYmLTE9PSgwfHlDKHcsYyxmPWI/''@;'; put 'put ''MDowfGFbTT4+Ml0pKSl7Zj0tMTticmVhayBlfWZvcihBPTB8dzAobCx3KSxmPXc7QTspe2lmKG09QSstNDh8MCwoMHxmKSE9KDB8KHA9MHxhWygyPT0oMyZhW0E+PjJdfDApP0E6bSkrNDA+PjJdKSkmJjAhPSgwfHRyZShsLHAsKDB8YVt3Pj4yXSk+Pj40LDApKSl7aWYoLTE9PSgwfHlDKDB8''@;'; put 'put ''YVsoMj09KDMmYVtBPj4yXXwwKT9BOm0pKzQwPj4yXSxjLGY9Yj8wOjB8YVtNPj4yXSkpKXtmPS0xO2JyZWFrIGV9Zj0wfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTptKSs0MD4+Ml19aWYoMHx3VChsLEEpJiYtMT09KDB8d0MoQSxjLHA9Yj8wOjB8YVtrPj4yXSkpKXtmPS0xO2JyZWFrIGV9QT0w''@;'; put 'put ''fFMwKGwsQSl9dz0wfHp0KGwsdyl9fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gZXJlKGwsYyl7cmV0dXJuIGx8PTAsY3w9MCxhWzQ2OTg3XT0oMHxhWzQ2OTg3XSktMSwwfCgtMT09KDB8TzUobCxjKSk/LTE6KC0xPT0oMHxIMihsLGMsMTExMDA4KSkpPDwzMT4+MzEpfWZ1bmN0aW9u''@;'; put 'put ''IE81KGwsYyl7bHw9MCxjfD0wO3ZhciBmPTA7Zm9yKGY9MHxhWzQ2OTg3XTs7KXtpZigoMHxmKTw9MCl7Zj0wO2JyZWFrfWlmKC0xPT0oMHxIMihsLGMsMTUzNTk3KSkpe2Y9LTE7YnJlYWt9Zj1mKy0xfDB9cmV0dXJuIDB8Zn1mdW5jdGlvbiBIMihsLGMsZil7cmV0dXJuIDB8QmlbMTI3JmFb''@;'; put 'put ''NCsoMHxhWzgrKDB8YVs2NCsobHw9MCk+PjJdKT4+Ml0pPj4yXV0oY3w9MCxmfD0wKX1mdW5jdGlvbiBBQyhsLGMpe2ZvcihjfD0wLGw9MHx3cyhsfD0wKTs7KXtpZighbCl7bD0wO2JyZWFrfWlmKDB8VEcobCkpQUMobCxjKTtlbHNle2lmKC0xPT0oMHwkbmUobCxjLDApKSl7bD0tMTticmVh''@;'; put 'put ''a31pZigtMT09KDB8cW5lKGwsYykpKXtsPS0xO2JyZWFrfWlmKC0xPT0oMHxlcmUobCxjKSkpe2w9LTE7YnJlYWt9fWw9MHxFcyhsKX1yZXR1cm4gMHxsfWZ1bmN0aW9uIHRyZShsLGMsZixwKXtmfD0wLHB8PTA7dmFyIG09MDtyZXR1cm4gMD09KDB8ZnVuY3Rpb24geEcobCxjKXtmb3IoY3w9''@;'; put 'put ''MCxsPTB8d3MobHw9MCk7Oyl7aWYoIWwpe2w9MDticmVha31pZigwPT0oMHxURyhsKSkmJjB8WW4obCxjLDApKXtsPTE7YnJlYWt9bD0wfEVzKGwpfXJldHVybiAwfGx9KGx8PTAsY3w9MCkpJiYwIT0oMHxmdW5jdGlvbiBJRyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO2U6ZG97aWYo''@;'; put 'put ''MDxwPj4+MHwoMD09KDB8cCk/KDB8YVtjPj4yXSk+Pj40Pj4+MDxmPj4+MDowKSljPTA7ZWxzZSBmb3IoYz0wfE1mKGwsYyk7Oyl7aWYoIWMpe2M9MTticmVhayBlfWlmKDA8cD4+PjB8KDA9PSgwfHApPygwfGFbYVtjKzQwPj4yXT4+Ml0pPj4+ND4+PjA8Zj4+PjA6MCkpe2M9MDticmVhayBl''@;'; put 'put ''fWM9MHxGMyhsLGMpfX13aGlsZSgwKTtyZXR1cm4gMHxjfShsLGMsZixwKSk/MD09KDB8ZnVuY3Rpb24gcnJlKGwsYyl7cmV0dXJuIDB8KGw9MHxNZihsfD0wLGN8PTApPzA6MD09KDB8dzAobCxjKSkmMSl9KGwsYykpJiYwPT0oMHxmdW5jdGlvbiBpcmUobCl7dmFyIGM9MCxmPTAscD0wO2w9''@;'; put 'put ''MHxpYyhsfD0wKTtlOmRve2lmKGwpZm9yKGY9bCs4fDAscD0wfGFbZj4+Ml0sYz1sKzEyfDAsbD0wfG1pWzYzJmFbcD4+Ml1dKHAsMCwxMjgpOzspe2lmKCFsKXtsPTA7YnJlYWsgZX1pZigoMHxhWygwfGFbYz4+Ml0pKyhhW2wrMTY+PjJdPDwyKT4+Ml0pIT0oMHxhW2wrMTI+PjJdKSl7bD0x''@;'; put 'put ''O2JyZWFrIGV9bD0wfG1pWzYzJmFbKHA9MHxhW2Y+PjJdKT4+Ml1dKHAsbCw4KX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfShjKSk/bT01Omw9MTptPTUsNT09KDB8bSkmJihsPTApLDB8bH1mdW5jdGlvbiB5QyhsLGMsZil7dmFyIHA7Y3w9MCxmfD0wLHA9MHxjcihsfD0wKTtkb3tp''@;'; put 'put ''ZigtMSE9KDB8TzUocCxjKSkmJi0xIT0oMHxiVChsLGMpKSl7aWYoMD09KDB8X1QobCkpJiYtMT09KDB8SlAobCxjLGYpKSl7bD0tMTticmVha31sPTB8SDIocCxjLDk3MzMwKX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiB3VChsLGMpe2ZvcihjfD0wLGw9MHx3cyhs''@;'; put 'put ''fD0wKTs7KXtpZighbCl7bD0xO2JyZWFrfWlmKDA9PSgwfFRHKGwpKSYmMHxaZChsLGMsMCkpe2w9MDticmVha31sPTB8RXMobCl9cmV0dXJuIDB8bH1mdW5jdGlvbiB3QyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLHA9MCxBPTA7QT0wfGFbKDM9PSgwfChwPTMmYVsobHw9MCk+PjJdKSk/bDps''@;'; put 'put ''KzQ4fDApKzQwPj4yXSxwPTB8YVsoMj09KDB8cCk/bDpsKy00OHwwKSs0MD4+Ml0sbT0wfGNyKEEpO2Rve2lmKC0xIT0oMHxPNShtLGMpKSYmLTEhPSgwfGJUKEEsYykpJiYtMSE9KDB8bnJlKGwsYywwfGFbNDY5ODhdKSkmJi0xIT0oMHxIMihtLGMsKEE9MCE9KDB8U2MoMHxjcihBKSkpKT8x''@;'; put 'put ''MDAwNzk6MTAwMDg0KSkmJi0xIT0oMHxiVChwLGMpKSYmLTEhPSgwfG5yZShsLGMsMHxhWzQ2OTg5XSkpKXtpZigwfF9UKGwpKXtpZigtMT09KDB8TDIobCxjLDEpKSl7bD0tMTticmVha319ZWxzZSBpZigtMT09KDB8SlAobCxjLGYpKSl7bD0tMTticmVha31sPTB8SDIobSxjLDk3MzMwKX1l''@;'; put 'put ''bHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBiVChsLGMpe2N8PTA7dmFyIGYsbSxBLGIscD0wLHc9MCxrPTA7cmV0dXJuIGI9bGUsbGU9bGUrMzJ8MCxBPWIsZj1iKzh8MCxwPTB8dGkobHw9MCksbT0wfGNyKGwpLHA/LTE9PSgwfEY2KG0sYyxwKSk/bD0tMTp3PTQ6KGw9''@;'; put 'put ''MHxhWzQrKGs9bCs4fDApPj4yXSxhWyhwPUEpPj4yXT1hW2s+PjJdLGFbcCs0Pj4yXT1sLG9vKGYsOTczNTAsQSksLTE9PSgwfEgyKG0sYyxmKSk/bD0tMTp3PTQpLDQ9PSgwfHcpJiYobD0wKSxsZT1iLDB8bH1mdW5jdGlvbiBucmUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0w''@;'; put 'put ''O2U6ZG97aWYoMCE9KDB8ZikmJihwPTB8Y3IobCksbT0wfEhvKGwsZiksMCE9KDB8ZmVbbT4+MF0pKSlpZigtMT09KDB8SDIocCxjLDEwNzk4NCkpKWw9LTE7ZWxzZXtkb3tpZigwfE9vKG0pKXtpZigtMT09KDB8RjYocCxjLG0pKSl7bD0tMTticmVhayBlfX1lbHNle2lmKCEobD0wfCRzKG0s''@;'; put 'put ''NTgpKSl7aWYoLTE9PSgwfFhQKHAsYyxtLDApKSl7bD0tMTticmVhayBlfWJyZWFrfWlmKGZlW2w+PjBdPTAsLTE9PSgwfFhQKHAsYyxtLDApKSl7bD0tMTticmVhayBlfWlmKC0xPT0oMHxIMihwLGMsMTA3OTg0KSkpe2w9LTE7YnJlYWsgZX1pZigtMT09KDB8WFAocCxjLGwrMXwwLDApKSl7''@;'; put 'put ''bD0tMTticmVhayBlfWZlW2w+PjBdPTU4fX13aGlsZSgwKTtsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBfVChsKXtyZXR1cm4oMHxhWyhsfD0wKT4+Ml0pPj4+MyYxfDB9ZnVuY3Rpb24gSlAobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3''@;'; put 'put ''PTAsYj0wLGs9MCxNPTA7ZTpkb3tpZigyJmFbbD4+Ml0pe3N3aXRjaCgwfEwyKGwsYywwKSl7Y2FzZS0xOnA9LTE7YnJlYWsgZTtjYXNlIDA6cD0wLE09NDticmVhayBlfXA9MSxNPTR9ZWxzZSBwPTAsTT00fXdoaWxlKDApO2U6ZG97aWYoND09KDB8TSkpe209MHxpYyhsKSxrPTB8Y3IobCk7''@;'; put 'put ''dDpkb3tpZihtKWZvcihiPW0rMTJ8MCx3PTB8bWlbNjMmYVtmPj4yXV0oZiwwLDEyOCk7Oyl7aWYoIXcpYnJlYWsgdDtkb3tpZigyJmFbbD4+Ml0pe2lmKDB8KEE9MHxhWzQ2OTg4XSkmJigwfGFbdysxNj4+Ml0pPT0oMHxhW0ErMTY+PjJdKSlicmVhazswIT0oMHwoQT0wfGFbNDY5ODldKSkm''@;'; put 'put ''JigwfGFbdysxNj4+Ml0pPT0oMHxhW0ErMTY+PjJdKXx8KE09MTIpfWVsc2UgTT0xMn13aGlsZSgwKTtpZigxMj09KDB8TSkmJihNPTAsKDB8YVsoMHxhW2I+PjJdKSsoYVsobT13KzE2fDApPj4yXTw8Mik+PjJdKSE9KDB8YVt3KzEyPj4yXSkpKXtpZihBPXArMXwwLHApe2lmKC0xPT0oMHxI''@;'; put 'put ''MihrLGMsOTczNDUpKSl7cD0tMTticmVhayBlfWlmKC0xPT0oMHxPNShrLGMpKSl7cD0tMTticmVhayBlfX1lbHNle2lmKC0xPT0oMHxPNShrLGMpKSl7cD0tMTticmVhayBlfWlmKC0xPT0oMHxIMihrLGMsOTczNDIpKSl7cD0tMTticmVhayBlfWFbNDY5ODddPTErKDB8YVs0Njk4N10pfWlm''@;'; put 'put ''KC0xPT0oMHxGNihrLGMsMHxhW3crOD4+Ml0pKSl7cD0tMTticmVhayBlfWlmKC0xPT0oMHxIMihrLGMsOTczNDgpKSl7cD0tMTticmVhayBlfWlmKC0xPT0oMHxGNihrLGMsMHxhWygwfGFbYj4+Ml0pKyhhW20+PjJdPDwyKT4+Ml0pKSl7cD0tMTticmVhayBlfXA9QX13PTB8bWlbNjMmYVtm''@;'; put 'put ''Pj4yXV0oZix3LDgpfX13aGlsZSgwKTtpZigoMHxwKT4wKXtpZigtMT09KDB8SDIoayxjLDk3MzQwKSkpe3A9LTE7YnJlYWt9YVs0Njk4N109KDB8YVs0Njk4N10pLTF9YVtsPj4yXT04fGFbbD4+Ml0scD0wfX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIEwyKGwsYyxmKXt2YXIgcDty''@;'; put 'put ''ZXR1cm4gY3w9MCxmfD0wLHA9MHx0aShsfD0wKSxsPTB8Y3IobCksMHwobD0wIT0oMHxwKSYmMCE9KDB8ZmVbcD4+MF0pPy0xIT0oMHxIMihsLGMsOTczMzMpKSYmLTEhPSgwfEY2KGwsYyxwKSk/MCE9KDB8ZikmJi0xPT0oMHxIMihsLGMsOTczNDApKT8tMToxOi0xOjApfWZ1bmN0aW9uIEY2''@;'; put 'put ''KGwsYyxmKXtyZXR1cm4gMHxYUChsfD0wLGN8PTAsZnw9MCwxKX1mdW5jdGlvbiBYUChsLGMsZixwKXtyZXR1cm4gZnw9MCwwfEgyKGx8PTAsY3w9MCxmPShwfD0wKT8wfFJBKGYpOjB8RUcoZiwwfEpuZShmKSkpfWZ1bmN0aW9uIFlkKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbT0wO3JldHVy''@;'; put 'put ''bihwPTB8VmgobHw9MCwwKSk/LTEhPSgwfEtQKGwsYywxMTE0OTQsMHxhW3ArMTY+PjJdLGYpKSYmLTEhPSgwfEtQKGwsYywxMTE0ODEsMHxhW3ArOD4+Ml0sZikpJiYtMSE9KDB8S1AobCxjLDExMTQ1MCwwfGFbcCsxMj4+Ml0sZikpP209NTpsPS0xOm09NSw1PT0oMHxtKSYmKGw9MCksMHxs''@;'; put 'put ''fWZ1bmN0aW9uIEtQKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgayxELE0sQT0wLHc9MCxiPTAsUj0wLEc9MDtmb3Ioaz0wPT0oMHwoTT0oRD0wIT0oMHwobXw9MCkpKT8wOjB8ZWgocCwwKSkpLGI9MHxtaVs2MyZhW3A+PjJdXShwLDAsMTI4KSxtPTA7Oyl7aWYoIWIpe1I9''@;'; put 'put ''MjM7YnJlYWt9Uj0wIT0oMHwoUj0wfGFbKHc9YisxMnwwKT4+Ml0pKSYmMCE9KDB8ZmVbUj4+MF0pPzEyOjc7ZG97aWYoNz09KDB8UikpaWYoUj0wLDB8ZmVbYisyMj4+MF0pUj0xMjtlbHNlIGlmKCFrKXtpZihBPTB8bWlbNjMmYVtNPj4yXV0oTSxiLDQpLDB8KEc9MHxhW0ErMTI+PjJdKSYm''@;'; put 'put ''MHxmZVtHPj4wXSl7Uj0xMjticmVha30wfGZlW0ErMjI+PjBdfHwoUj0xMil9fXdoaWxlKDApO2lmKDEyPT0oMHxSKSl7aWYoUj0wLEE9bSsxfDAsbSl7aWYoLTE9PSgwfEgyKGwsYyw5NzM0NSkpKXttPS0xO2JyZWFrfWlmKC0xPT0oMHxPNShsLGMpKSl7bT0tMTticmVha319ZWxzZXtpZigt''@;'; put 'put ''MT09KDB8TzUobCxjKSkpe209LTE7YnJlYWt9aWYoLTE9PSgwfEgyKGwsYyxmKSkpe209LTE7YnJlYWt9aWYoLTE9PSgwfEgyKGwsYyw5NzM0MikpKXttPS0xO2JyZWFrfWFbNDY5ODddPTErKDB8YVs0Njk4N10pfWlmKC0xPT0oMHxGNihsLGMsMHxhW2IrOD4+Ml0pKSl7bT0tMTticmVha31p''@;'; put 'put ''ZigtMT09KDB8SDIobCxjLDk3MzQ4KSkpe209LTE7YnJlYWt9aWYoLTE9PSgwfEY2KGwsYywwfGFbdz4+Ml0pKSl7bT0tMTticmVha31tPUF9Yj0wfG1pWzYzJmFbcD4+Ml1dKHAsYiw4KX1kb3tpZigyMz09KDB8Uikpe2lmKCgwfG0pPjApe2lmKGFbNDY5ODddPSgwfGFbNDY5ODddKS0xLDEh''@;'; put 'put ''PSgwfG0pKXtpZigtMT09KDB8SDIobCxjLDE1MzU5OSkpKXttPS0xO2JyZWFrfWlmKC0xPT0oMHxPNShsLGMpKSl7bT0tMTticmVha319aWYoRHwobT0tMT09KDB8SDIobCxjLDk3Mzc3KSkpKXttPW08PDMxPj4zMTticmVha319ZWxzZSBpZihEKXttPTA7YnJlYWt9ZWgocCxNKSxtPTB9fXdo''@;'; put 'put ''aWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24gYkMobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDMmYVsoY3w9MCk+PjJdKXtjYXNlIDA6QT04MjticmVhaztjYXNlIDE6QT04MzticmVhaztjYXNlIDM6Y2FzZSAyOkE9ODR9cmV0dXJuKGM9MHxCaVsxMjcm''@;'; put 'put ''QV0obCxjKSk/KENUKGwsYyxmLHAsQSxtKSxjPTApOmM9LTEsMHxjfWZ1bmN0aW9uIENUKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsdz0wLGs9MDtmb3IoKGI9MCE9KDB8KEF8PTApKSkmJmRsWzEyNyZmXShsLGMscCksdz0wfHdzKGwpO3c7KTB8KGs9MHxC''@;'; put 'put ''aVsxMjcmbV0odyxjKSkmJkNUKHcsayxmLHAsbSxBKSx3PTB8RXModyk7Ynx8ZGxbMTI3JmZdKGwsYyxwKX1mdW5jdGlvbiBscmUoKXt2YXIgbD0wLGM9MDtmb3IobD0wfGFbNDY5OTRdO2w7KXpoKGwrOHwwKSx6aCgyNCsoMHxhWzQ2OTk0XSl8MCksemgoMTYrKDB8YVs0Njk5NF0pfDApLGM9''@;'; put 'put ''MHxCRygwfGFbNDY5OTRdKSxhWzQ2OTk0XT1jLGw9Y31mdW5jdGlvbiBERygpeyhmdW5jdGlvbiB5bygpeyFmdW5jdGlvbiAkYShsKXtsfD0wO3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTAsYj0wLGs9MCxNPTAsRD0wO2lmKGZlWyhiPTB8YVs0Njk3M10pPj4wXT0wfGZlWzE5NDgwNV0sYj4+''@;'; put 'put ''PjA8KDIrKGM9MHxhWzQrKGY9MHxhWyh3PTB8YVs0Njk3Ml0pPj4yXSk+PjJdKXwwKT4+PjApe2ZvcihwPWMrKDIrKDB8YVs0Njk3N10pKXwwLG09YysoMisoMHxhW2YrMTI+PjJdKSl8MCxrPWMsQT1mOyEocD4+PjA8PWs+Pj4wKTspZmVbKGs9bSstMXwwKT4+MF09MHxmZVsoZj1wKy0xfDAp''@;'; put 'put ''Pj4wXSxwPWYsbT1rLGs9MHxhWzQrKEE9MHxhW3c+PjJdKT4+Ml07Yz1iKyhmPW0tcHwwKXwwLGFbNDY5NzddPWI9MHxhW0ErMTI+PjJdLGFbQSsxNj4+Ml09YixjPj4+MDwoaysyfDApPj4+MD9Xcig5NzI3Nyk6KE09bCtmfDAsRD1jKX1lbHNlIE09bCxEPWI7ZmVbKGw9RCstMXwwKT4+MF09''@;'; put 'put ''NjQsYVs0Njk2NF09TSxmZVsxOTQ4MDVdPTB8ZmVbbD4+MF0sYVs0Njk3M109bH0oMHxhWzQ2OTY0XSl9KSgpLGZ1bmN0aW9uIGNzKGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MCx3PTA7Zm9yKGFbNDY5NDJdPWx8PTAsbT0wfGFbbCs2ND4+Ml0scD0wOzMhPSgwfHApOyl7Yz0wfGFbKEE9bSs1''@;'; put 'put ''NisocDw8Mil8MCk+PjJdO2U6ZG97aWYoMHxjKWZvcihjPTB8bWlbNjMmYVtjPj4yXV0oYywwLDEyOCk7Oyl7aWYoIWMpYnJlYWsgZTtmPTB8bWlbNjMmYVsoZj0wfGFbQT4+Ml0pPj4yXV0oZixjLDgpLDM3PT0oMHxmZVthW2MrMjQ+PjJdPj4wXSk/KHlUKGwscCwwfGFbKHc9YysxNnwwKT4+''@;'; put 'put ''Ml0sMHxhW3crND4+Ml0pLGM9Zik6Yz1mfX13aGlsZSgwKTtwPXArMXwwfX0oMHxhWzQ2OTkzXSl9ZnVuY3Rpb24gTEcobCxjLGYpe2x8PTA7dmFyIG0sQSxwPTA7QT1sZSxsZT1sZSsxNnwwLG09QSwocD0wfGFbNDY5OTNdKXx8KGZlWzE4Nzk4MF09MSYoY3w9MCl8KDI1NSYoZnw9MCkpPDwx''@;'; put 'put ''JjJ8LTEyJmZlWzE4Nzk4MF18OCxwPTB8YVs0Njk5Nl0sZmVbbT4+MF09MHxmZVsxODc5ODBdLGZlW20rMT4+MF09MHxmZVsxODc5ODFdLGZlW20rMj4+MF09MHxmZVsxODc5ODJdLGZlW20rMz4+MF09MHxmZVsxODc5ODNdLHA9MHxvYyhsLG0scCksYVs0Njk5M109cCksYVs0Njk0Ml09cCxh''@;'; put 'put ''WzQ2OTk0XT0wfFBHKDB8YVs0Njk5NF0scCksZTAoMCxsKSxsZT1BfWZ1bmN0aW9uIE9HKCl7dmFyIHAsbD0wLGM9MCxmPTAsbT0wLEE9MDtmb3IoTVQoMikscD0wfGZlWzk4MTI2XSxBPTAsbD0yNCsoZj0wfGFbNDY5OTRdKXwwO2M9MHxhW2w+PjJdOylBPWw9MjY3PT0oMHxhW2M+PjJdKSYm''@;'; put 'put ''KDB8ZmVbKG09MHxhW2MrND4+Ml0pPj4wXSk9PXA8PDI0Pj4yNCYmMD09KDB8WmkobSw5ODEyNikpPzB8YVtjKzg+PjJdOkEsbD1jKzEyfDA7bD1mKzE2fDA7ZTpmb3IoO2Y9MHxhW2w+PjJdLGw9ZisxMnwwLDB8YVtsPj4yXTspaWYoYz1mKzR8MCwyNjI9PSgwfGFbZj4+Ml0pKWZvcihmPTB8''@;'; put 'put ''YVtjPj4yXSxjPTB8RHQoZik7Oyl7aWYoIWMpY29udGludWUgZTt4VChtPTB8WW4oMHxhW2FbNDY5OTRdPj4yXSxjLDApLDAsMHxhW2w+PjJdLEEpLGM9MHx6dChmLGMpfWVsc2UgZm9yKDs7KXtpZighKGM9MHxhW2M+PjJdKSljb250aW51ZSBlO3hUKDB8YVtjKzQ+PjJdLDB8YVtjKzg+PjJd''@;'; put 'put ''LDB8YVtsPj4yXSxBKSxjPWMrMTJ8MH16aCg4KygwfGFbNDY5OTRdKXwwKSx6aCgxNisoMHxhWzQ2OTk0XSl8MCksemgoMjQrKDB8YVs0Njk5NF0pfDApLGFbNCsoMHxhWzQ2OTk0XSk+PjJdPTB9ZnVuY3Rpb24gSG1lKCl7dmFyIGw9MDtmb3IoTVQoMSksbD04KygwfGFbNDY5OTRdKXwwO2w9''@;'; put 'put ''MHxhW2w+PjJdOyluRigwfGFbbCs0Pj4yXSksbD1sKzEyfDA7emgoOCsoMHxhWzQ2OTk0XSl8MCksemgoMjQrKDB8YVs0Njk5NF0pfDApLHpoKDE2KygwfGFbNDY5OTRdKXwwKSxhWzQrKDB8YVs0Njk5NF0pPj4yXT0wfWZ1bmN0aW9uIFozKCl7dmFyIGw9MCxjPTA7KGM9MHxhWzgrKGw9MHxh''@;'; put 'put ''WzQ2OTk0XSk+PjJdKT8oYz0wfGZ1bmN0aW9uIENDKGwpe3JldHVybiAwfF9DKDI2NSxsfD0wLDApfShjKSxhWzEyKyhsPTB8YVs0Njk5NF0pPj4yXT0wLGFbbCs4Pj4yXT0wKTooKGM9MHxhW2wrND4+Ml0pPyhjPTB8ZnVuY3Rpb24gcTQobCl7cmV0dXJuIDB8X0MoMjYyLGx8PTAsMCl9KGMp''@;'; put 'put ''LGw9MHxhWzQ2OTk0XSk6Yz0wLGFbbCs0Pj4yXT0wKSwwfGMmJlNUKGwrMTZ8MCxjKX1mdW5jdGlvbiAkUChsLGMsZil7bHw9MCxjfD0wLChmfD0wKSYmKGM9MHxmdW5jdGlvbiB0RihsLGMpe2N8PTA7dmFyIHAsbSxBLHcsZj0wO3JldHVybiB3PWxlLGxlPWxlKzEwNDB8MCxtPXcsQT13Kzh8''@;'; put 'put ''MCxwPShmPTIrKGY9MHxVbyhsfD0wKSkrKDB8VW8oYykpfDApPj4+MDwxMDI1P0E6MHxGMChmKSxhW20+PjJdPWwsYVttKzQ+PjJdPWMsb28ocCw5ODE2MyxtKSxmPTB8cjAoMHxhWzQ2OTkzXSxwKSxlMCgwfGFbNDY5OTNdLGwpLGUwKDB8YVs0Njk5M10sYyksKDB8cCkhPSgwfEEpJiZGdChw''@;'; put 'put ''KSxsZT13LDB8Zn0oYyxmKSksZj0wfGZ1bmN0aW9uIHVyZShsLGMpe3JldHVybiAwfF9DKDI1OSxsfD0wLGN8PTApfSgwfEdyKDB8YVthWzQ2OTk0XT4+Ml0sbCwxKSxjKSxTVCg4KygwfGFbNDY5OTRdKXwwLGYpLGUwKDB8YVs0Njk5M10sbCl9ZnVuY3Rpb24ga1QobCxjKXtsfD0wO3ZhciBt''@;'; put 'put ''LGY9MCxwPTA7Zm9yKDB8KGN8PTApJiZGRygpLGM9MjQrKDB8YVs0Njk5NF0pfDA7Yz0wfGFbYz4+Ml07KTB8YVtjKzg+PjJdfHxGRygpLGM9YysxMnwwO2ZvcihNVChtPTI2MD09KDB8bCk/MjoyNTk9PSgwfGwpJjEpLGM9MjQrKGw9MHxhWzQ2OTk0XSl8MDtwPTB8YVtjPj4yXTspe2Rve2lm''@;'; put 'put ''KDI2NyE9KDB8YVtwPj4yXSkpe2lmKCEoMCE9KDB8ZmVbMjErKGM9MHxhW3ArND4+Ml0pPj4wXSkmKDB8KGY9MHxhW2w+PjJdKSk9PSgwfGFbNDY5OTNdKSkmJihjPTB8c2koZixtLDB8YVtjKzg+PjJdLDB8YVtwKzg+PjJdKSwoMHxhWyhsPTB8YVs0Njk5NF0pPj4yXSkhPSgwfGFbNDY5OTNd''@;'; put 'put ''KSkpYnJlYWs7ZmVbYysyMj4+MF09MX19d2hpbGUoMCk7Yz1wKzEyfDB9emgobCsyNHwwKX1mdW5jdGlvbiBSRyhsLGMpe2M9MHxmdW5jdGlvbiBlRihsLGMpe3JldHVybiAwfF9DKDI2NyxsfD0wLGN8PTApfShsfD0wLGN8PTApLFNUKDI0KygwfGFbNDY5OTRdKXwwLGMpfWZ1bmN0aW9uIF9s''@;'; put 'put ''KGwpe3ZhciBjO2FbNDY5OTRdPTB8UEcoYz0wfGFbNDY5OTRdLDB8cHMoMHxhW2M+PjJdLGx8PTAsMSkpLGUwKDB8YVs0Njk5M10sbCl9ZnVuY3Rpb24gc3JlKCl7dmFyIGMsbD0wO2M9MHxhWyhsPTB8YVs0Njk5NF0pPj4yXSxsPTB8QkcobCksYVs0Njk5NF09bCxhW2wrND4+Ml09Y31mdW5j''@;'; put 'put ''dGlvbiBxUChsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MDtyZXR1cm4gQT1sZSxsZT1sZSsxMDI0fDAsbT1BLHJkKGY9KGY9MSsoZj0wfFVvKGx8PTApKSsoMHxVbyhjKSl8MCk+Pj4wPDEwMjU/bTowfEYwKGYpLGwpLHN2KGYsYykscD0wfHIwKDB8YVs0Njk5M10sZiksZTAoMHxhWzQ2OTkzXSxs''@;'; put 'put ''KSxlMCgwfGFbNDY5OTNdLGMpLCgwfGYpIT0oMHxtKSYmRnQoZiksbGU9QSwwfHB9ZnVuY3Rpb24gQkcobCl7dmFyIGM7cmV0dXJuIGM9MHxhWzMyKygwfGFbNDY5OTRdKT4+Ml0seHQoMHxhWzQ2OTkzXSxsfD0wKSwwfGN9ZnVuY3Rpb24gUEcobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0w''@;'; put 'put ''LGY9MHxNdCgwfGFbNDY5OTNdLDM2KSxhW2YrMzI+PjJdPWwsYVtmPj4yXT1jLDB8Zn1mdW5jdGlvbiBTVChsLGMpe3ZhciBmLHA7Y3w9MCwwfChwPTB8YVsoZj00KyhsfD0wKXwwKT4+Ml0pJiYoYVtwKzEyPj4yXT1jKSxhW2Y+PjJdPWMsMHxhW2w+PjJdfHwoYVtsPj4yXT1jKX1mdW5jdGlv''@;'; put 'put ''biBfQyhsLGMsZil7dmFyIHA7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLHA9MHxNdCgwfGFbNDY5OTNdLDE2KSxhW3A+PjJdPWwsYVtwKzQ+PjJdPWMsYVtwKzg+PjJdPWYsMHxwfWZ1bmN0aW9uIEZHKCl7dmFyIGw7bD1sZSxsZT1sZSsxNnwwLCRyKDAsOTgxMzAsbCksbGU9bH1mdW5jdGlvbiBN''@;'; put 'put ''VChsKXt2YXIgbSxjPTAsZj0wLHA9MCxBPTA7Zm9yKG09Mj09KDB8KGx8PTApKSxjPTI0KygwfGFbNDY5OTRdKXwwO2M9MHxhW2M+PjJdOylwPTB8YVsoZj1jKzR8MCk+PjJdLG0mJigwfGZlW3A+PjBdKT09KDB8ZmVbOTgxMjZdKSYmISgwfFppKHAsOTgxMjYpKXx8KEE9MHxzaSgwfGFbYVs0''@;'; put 'put ''Njk5NF0+PjJdLGwscCwwKSxhW2Y+PjJdPUEsQXx8KGFbZj4+Ml09MHxzaSgwfGFbYVs0Njk5NF0+PjJdLGwscCwxOTUwNTkpKSxhW2M+PjJdPTI2NixlMCgwfGFbNDY5OTNdLHApKSxjPWMrMTJ8MH1mdW5jdGlvbiB6aChsKXtFVCgwfGFbKGx8PTApPj4yXSksYVtsKzQ+PjJdPTAsYVtsPj4y''@;'; put 'put ''XT0wfWZ1bmN0aW9uIEVUKGwpe2x8PTA7Zm9yKHZhciBjPTA7bDspe3N3aXRjaChjPTB8YVtsKzEyPj4yXSwwfGFbbD4+Ml0pe2Nhc2UgMjY1OkVUKDB8YVtsKzQ+PjJdKTticmVhaztjYXNlIDI2NjpjYXNlIDI2NzplMCgwfGFbNDY5OTNdLDB8YVtsKzg+PjJdKX14dCgwfGFbNDY5OTNdLGwp''@;'; put 'put ''LGw9Y319ZnVuY3Rpb24gbkYobCl7bHw9MDt2YXIgYz0wLGY9MDtmb3IoYz0yNCsoMHxhWzQ2OTk0XSl8MDtjPTB8YVtjPj4yXTspMjY2PT0oMHxhW2M+PjJdKSYmMHwoZj0wfGFbYys0Pj4yXSkmJlZsKGwsZiwwfGFbYys4Pj4yXSksYz1jKzEyfDB9ZnVuY3Rpb24geFQobCxjLGYscCl7bHw9''@;'; put 'put ''MCxjfD0wLHB8PTA7dmFyIG09MDttPTQrKGZ8PTApfDA7ZTpkb3tpZigyNjI9PSgwfGFbZj4+Ml0pKWZvcihmPTB8YVttPj4yXSxtPTB8RHQoZik7Oyl7aWYoIW0pYnJlYWsgZTtlcChsLGMsMHxZbigwfGFbYVs0Njk5NF0+PjJdLG0sMCksMCxwKSxtPTB8enQoZixtKX1lbHNlIGZvcig7Oyl7''@;'; put 'put ''aWYoIShtPTB8YVttPj4yXSkpYnJlYWsgZTtlcChsLGMsZj0wfFluKDB8YVthWzQ2OTk0XT4+Ml0sMHxhW20rND4+Ml0sMCksMHxhW20rOD4+Ml0scCksbT1tKzEyfDB9fXdoaWxlKDApfWZ1bmN0aW9uIGVwKGwsYyxmLHAsbSl7Y3w9MCxwfD0wO3ZhciBBPTA7MHwoZj0wfEthKDB8YVthWzQ2''@;'; put 'put ''OTk0XT4+Ml0sbHw9MCxmfD0wLG18PTAsMSkpJiYoSEcoZiwxMTE0NTUsKGw9KDB8KG09MHxhWygyPT0oMHwoQT0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSkpPT0oMHxsKT8oMHxhWygzPT0oMHxBKT9mOmYrNDh8MCkrNDA+PjJdKSE9KDB8bSk6MCk/cDpjKSxIRyhmLDExMTQ2NCxs''@;'; put 'put ''P2M6cCksbkYoZikpfWZ1bmN0aW9uIEhHKGwsYyxmKXtsfD0wLGN8PTA7dmFyIHA9MDswfChmfD0wKSYmKChwPTB8c2koMHxhW2FbNDY5OTRdPj4yXSwyLGMsMCkpfHwocD0wfHNpKDB8YVthWzQ2OTk0XT4+Ml0sMixjLDE5NTA1OSkpLFZsKGwscCxmKSl9ZnVuY3Rpb24gckYobCxjKXtyZXR1''@;'; put 'put ''cm4gMHxmdW5jdGlvbiBObWUobCxjLGYpe3JldHVybiBsfD0wLGZ8PTAsYVs0Njk2Ml09Y3w9MCxhWzQ2OTkzXT1sLGFbNDY5NDJdPTAsYVs0Njk5Nl09bD0wfGY/ZjoxODYwMCxmdW5jdGlvbiBwMChsLGMpe2N8PTAsYVs0Njk2N109bHw9MCxhWzQ2OTY4XT1jLGFbNDY5NjldPTB9KGwsYyks''@;'; put 'put ''ZnVuY3Rpb24gYXJlKCl7dmFyIEcscGUsbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscT0wO3BlPWxlLGxlPWxlKzEyMDB8MCxHPXBlKzgwMHwwLGY9cGUsYVs0Njk5MF09MCxhWzQ2OTkxXT0tMixjPUcsbT0yMDAsaz1mLEQ9MCxSPTAsTT1HO2U6Zm9y''@;'; put 'put ''KDs7KXtpZihpdFtNPj4xXT1ELChjKyhtPDwxKSstMnwwKT4+PjA+TT4+PjApdz1tO2Vsc2V7aWYobD0xKyhiPU0tYz4+MSl8MCxtPj4+MD45OTk5KXtxPTc1O2JyZWFrfXN3aXRjaCgocD0wfEYwKDYqKHc9KHc9bTw8MSk+Pj4wPDFlND93OjFlNCl8MykpPyhnbygwfHAsMHxjLGw8PDF8MCks''@;'; put 'put ''Z28oMHwobT1wKyh3Pj4+MTw8Mil8MCksMHxrLGw8PDJ8MCksKDB8Yyk9PSgwfEcpPyhsPTAsYz1wKTooRnQoYyksbD0wLGM9cCkpOihsPTQsbT1rKSxwPWMrKGI8PDEpfDAsMTUmKChBPTA9PSgwfGwpKT8oYysodzw8MSkrLTJ8MCk+Pj4wPnA+Pj4wPzA6OTpsKSl7Y2FzZSA5Omw9MSxxPTc2''@;'; put 'put ''O2JyZWFrIGU7Y2FzZSA0OnE9NzU7YnJlYWsgZTtjYXNlIDA6Zj1BP20rKGI8PDIpfDA6ZixrPW0sTT1BP3A6TTticmVhaztkZWZhdWx0Omw9MDticmVhayBlfX1pZig2PT0oMHxEKSl7bD0wLHE9NzY7YnJlYWt9QT0obD0wfGZlWzk3MzgxK0Q+PjBdKTw8MjQ+PjI0O2Rve2lmKGw8PDI0Pj4y''@;'; put 'put ''NCE9LTE4KXtpZigtMj09KDB8KHA9MHxhWzQ2OTkxXSkpJiYocD0wfFFsKCksYVs0Njk5MV09cCksKDB8cCk+PTE/bT1wPj4+MDwyNjk/MHxYdFs5NzQ2MStwPj4wXToyOihhWzQ2OTkxXT0wLG09MCksKHA9bStBfDApPj4+MDw9NTkmJigwfG0pPT0oMHxYdFs5NzczMCtwPj4wXSkpe2lmKGw9''@;'; put 'put ''KEQ9MHxmZVs5Nzc5MCtwPj4wXSk8PDI0Pj4yNCxEPDwyND4+MjQ8MSl7cD0wLWx8MCxxPTIzO2JyZWFrfWFbNDY5OTFdPS0yLGFbKGY9Zis0fDApPj4yXT1hWzQ2OTkyXSxBPTA9PSgwfFIpPzA6UistMXwwLHA9TTticmVha31xPTIyfWVsc2UgcT0yMn13aGlsZSgwKTtpZigyMj09KDB8cSkp''@;'; put 'put ''aWYocT0wLHA9MjU1JihEPTB8ZmVbOTc4NTArRD4+MF0pLEQ8PDI0Pj4yNClxPTIzO2Vsc2V7cD0wfGFbNDY5OTFdO3Q6ZG97c3dpdGNoKDB8Uil7Y2FzZSAwOmFbNDY5OTBdPTErKDB8YVs0Njk5MF0pLFlvKDE0Mzc2MSkscD1NO2JyZWFrO2Nhc2UgMzppZigoMHxwKTwxKXtpZihwKXtwPU07''@;'; put 'put ''YnJlYWsgdH1sPTEscT03NjticmVhayBlfWFbNDY5OTFdPS0yLHA9TTticmVhayB0O2RlZmF1bHQ6cD1NfX13aGlsZSgwKTtmb3IoO2w8PDI0Pj4yNCE9MTg7KXtpZigoMHxwKT09KDB8Yykpe2w9MSxxPTc2O2JyZWFrIGV9Zj1mKy00fDAscD1sPXArLTJ8MCxsPTB8ZmVbOTczODErKDB8aXRb''@;'; put 'put ''bD4+MV0pPj4wXX1hWyhmPWYrNHwwKT4+Ml09YVs0Njk5Ml0sbD0xLEE9M31kb3tpZigyMz09KDB8cSkpe3E9MCxsPTB8YVtmKygxLShtPTB8WHRbOTc5MzArcD4+MF0pPDwyKT4+Ml07dDpkb3tzd2l0Y2goMHxwKXtjYXNlIDI6bHJlKCksREcoKTticmVhaztjYXNlIDM6MHxhWzQ2OTkzXSYm''@;'; put 'put ''KGxyZSgpLERHKCksQzEoMHxhWzQ2OTkzXSksYVs0Njk0Ml09MCxhWzQ2OTkzXT0wKTticmVhaztjYXNlIDY6TEcoMHxhW2Y+PjJdLDB8YVtmKy00Pj4yXSwwfGFbZistOD4+Ml0pO2JyZWFrO2Nhc2UgNzpjYXNlIDUzOmNhc2UgNTk6Y2FzZSA2MDpjYXNlIDYxOmw9MHxhW2Y+PjJdO2JyZWFr''@;'; put 'put ''O2Nhc2UgODpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAyNzpjYXNlIDM5OmNhc2UgNTQ6Y2FzZSA1NTpsPTA7YnJlYWs7Y2FzZSA5OmNhc2UgMTI6Y2FzZSAyNjpsPTE7YnJlYWs7Y2FzZSAyMTppZigwfGFbZistND4+Ml0pe09HKCk7YnJlYWsgdH1IbWUoKTticmVhayB0O2Nhc2UgMjQ6Y2FzZSAy''@;'; put 'put ''NTpaMygpO2JyZWFrO2Nhc2UgMzA6JFAoMHxhW2Y+PjJdLDAsMCk7YnJlYWs7Y2FzZSAzMTokUCgwfGFbZistOD4+Ml0sMHxhW2Y+PjJdLDApO2JyZWFrO2Nhc2UgMzI6JFAoMHxhW2YrLTE2Pj4yXSwwfGFbZistOD4+Ml0sMHxhW2Y+PjJdKTticmVhaztjYXNlIDMzOmtUKDB8YVtmKy04Pj4y''@;'; put 'put ''XSwwfGFbZistND4+Ml0pO2JyZWFrO2Nhc2UgMzQ6a1QoMjU4LDApO2JyZWFrO2Nhc2UgMzU6bD0yNTg7YnJlYWs7Y2FzZSAzNjpsPTI1OTticmVhaztjYXNlIDM3Omw9MjYwO2JyZWFrO2Nhc2UgMzg6bD0wfGFbZistND4+Ml07YnJlYWs7Y2FzZSA0ODpSRygwfGFbZistOD4+Ml0sMHxhW2Y+''@;'; put 'put ''PjJdKTticmVhaztjYXNlIDQ5OlJHKDB8YVtmPj4yXSwwKTticmVhaztjYXNlIDUxOl9sKDB8YVtmPj4yXSk7YnJlYWs7Y2FzZSA1MjpzcmUoKTticmVhaztjYXNlIDYyOmw9MHxxUCgwfGFbZistOD4+Ml0sMHxhW2Y+PjJdKX19d2hpbGUoMCk7aWYoRD1mKygobT0wLW18MCk8PDIpfDAsbT1N''@;'; put 'put ''KyhtPDwxKXwwLGY9RCs0fDAsYVtEKzQ+PjJdPWwsKHA9KEQ9MHxpdFttPj4xXSkrKDB8ZmVbOTgwNTYrKGw9KDB8WHRbOTc5OTMrcD4+MF0pLTI0fDApPj4wXSl8MCk+Pj4wPDYwJiYoMHxYdFs5NzczMCtwPj4wXSk9PSgwfEQpKXtsPTB8ZmVbOTc3OTArcD4+MF0sQT1SLHA9bTticmVha31s''@;'; put 'put ''PTB8ZmVbOTgwOTErbD4+MF0sQT1SLHA9bX19d2hpbGUoMCk7bT13LEQ9bCxSPUEsTT1wKzJ8MH03NT09KDB8cSkmJihZbygxNDA1NTgpLGw9MixxPTc2KSw3Nj09KDB8cSkmJigwfGMpIT0oMHxHKSYmRnQoYyksbGU9cGV9KCksKGw9MHxhWzQ2OTQyXSl8fChmdW5jdGlvbiBqcygpe3ZhciBs''@;'; put 'put ''PTA7emkobD0obD0wfGFbNDY5NzJdKT8wfGFbbD4+Ml06MCl9KCksbD0wfGFbNDY5NDJdKSwwfGx9KDAsbHw9MCxjfD0wKX1mdW5jdGlvbiBjcmUobCl7dmFyIEEsYz0wLGY9MCxwPTAsbT0wLHc9MDtmb3IoQT1sZSxsZT1sZSsxMTJ8MCxmPUEsbT1BKzR8MCwoYz0wfGFbMjQrKGx8PTApPj4y''@;'; put 'put ''XSk/KGFbZj4+Ml09YysxLG9vKG0sOTgyMjUsZikpOmZlW20+PjBdPTAsYz0xMSsodz0xKyhjPTB8VW8oZj0wfChmPTB8YVtsKzIwPj4yXSk/Zjo5ODIyOSkpKyh3PTB8VW8obSkpKygwfFVvKDB8YVsocD1sKzUyfDApPj4yXSkpfDApfDAsKDB8YVs0Njk5N10pPj4+MDwodysxfDApPj4+MD8o''@;'; put 'put ''YVs0Njk5N109YyxjPTB8VWEoMHxhWzQ2OTk4XSxjKSxhWzQ2OTk4XT1jKTpjPTB8YVs0Njk5OF0scmQoYyxmKSxzdigwfGFbNDY5OThdLG0pLGM9KGM9MHxhWzQ2OTk4XSkrKDB8VW8oYykpfDAsZmVbYz4+MF09NDYsZmVbYysxPj4wXT0wLGM9MHxyYSgwfGFbcD4+Ml0pLHA9MHxhWzQ2OTk4''@;'; put 'put ''XTtmPTB8TSQoYyw1OCk7KXN2KHAsZisxfDApLG09KHc9MHxhWzQ2OTk4XSkrKDB8VW8odykpfDAsZmVbbT4+MF09NDYsZmVbbSsxPj4wXT0wLGZlW2Y+PjBdPTAscD13O3N2KHAsYyksRnQoYyksYVtsKzMyPj4yXT1hWzQ2OTk4XSxsZT1BfWZ1bmN0aW9uIFI1KGwsYyxmKXtsfD0wO3ZhciBB''@;'; put 'put ''LHcscD0wLG09MDtyZXR1cm4gdz1sZSxsZT1sZSsxNnwwLEE9dys4fDAsbT13LDAhPSgwfChjfD0wKSkmMCE9KDB8KGZ8PTApKT8oMTAyNCZhW2wrMTUyPj4yXXwwJiYoR3NbNjMmYVsxNisoMHxhW2wrMTI+PjJdKT4+Ml1dKDk4MjA3LG0pLFh1KDEpKSwoMHxmdW5jdGlvbiBWRyhsLGMsZil7''@;'; put 'put ''Y3w9MCxmfD0wO3ZhciBSLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Uj1sZSxsZT1sZSsxNnwwLEQ9UixwPTB8YVsxMDQrKDB8YVsobHw9MCk+PjJdKT4+Ml07ZG97aWYocClmPTB8bWlbNjMmcF0obCxjLGYpO2Vsc2V7aWYoIShBPTB8YVsoYj1sKzQwfDApPj4yXSkpe2Y9MHxD''@;'; put 'put ''dShjLDEsZiwwfGFbbCszNj4+Ml0pO2JyZWFrfXA9bCs0NHwwLG09MHxhWyh3PWwrNDh8MCk+PjJdO2Rve2lmKCgoMHxhW3A+PjJdKS0xLW18MCk+Pj4wPGY+Pj4wKXtpZihhW3A+PjJdPW09Zis0MDk2K20mLTQwOTYscD0wfFVhKEEsbSksYVtiPj4yXT1wLHApe2s9cCxNPTB8YVt3Pj4yXTti''@;'; put 'put ''cmVha31Hc1s2MyZhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXV0oOTgyNjQsRCksWHUoMSl9ZWxzZSBrPUEsTT1tfXdoaWxlKDApO2dvKGsrTXwwLDB8YywwfGYpLGFbdz4+Ml09RD0oMHxhW3c+PjJdKStmfDAsZmVbKDB8YVtiPj4yXSkrRD4+MF09MH19d2hpbGUoMCk7cmV0dXJuIGxlPVIsMHxm''@;'; put 'put ''fShsLGMsZikpPT0oMHxmKT9wPWY6KG09MHxhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXSxhW0E+PjJdPWYsR3NbNjMmbV0oOTgyMzksQSksWHUoMSkpKTpwPTAsbGU9dywwfHB9ZnVuY3Rpb24gRW4obCxjKXt2YXIgZjtyZXR1cm4gMHwoKGM9KDB8UjUobHw9MCxjfD0wLGY9MHxVbyhjKSkpPT0o''@;'; put 'put ''MHxmKSk/MTotMSl9ZnVuY3Rpb24gaUYobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLGY9bGUsbGU9bGUrMTZ8MCxmZVsocD1mKT4+MF09Y3w9MCxsPTE9PSgwfFI1KGwscCwxKSksbGU9ZiwwfChsP2M6LTEpfWZ1bmN0aW9uIG9GKGwpe3ZhciBjO3JldHVybiAwfCgwIT0oMHwoYz0wfGFbMzYr''@;'; put 'put ''KGx8PTApPj4yXSkpJiYwPT0oMHxmZVtsKzE0ND4+MF0pJiYwPT0oMHxhWzEwNCsoMHxhW2w+PjJdKT4+Ml0pPzB8U0woYyk6MCl9ZnVuY3Rpb24gZnJlKGwpe3ZhciBmLHAsYz0wO3A9bGUsbGU9bGUrMTZ8MCxmPTB8YVs3NisobHw9MCk+PjJdLDEwMjQmYVtsKzE1Mj4+Ml18MCYmKEdzWzYz''@;'; put 'put ''JmFbMTYrKDB8YVtsKzEyPj4yXSk+PjJdXSg5ODI5MSxwKSxYdSgxKSksMCE9KDB8ZikmJjAhPSgwfChjPTB8YVtmKzg+PjJdKSk/Q29bMTI3JmNdKGwpOihvRihsKSxmdW5jdGlvbiBhRihsKXt2YXIgYyxmPTAscD0wOzB8YVsoYz0zMisobHw9MCl8MCk+PjJdJiYoMHwocD0wfGFbKGY9bCsz''@;'; put 'put ''NnwwKT4+Ml0pKSE9KDB8YVsxNTY3OV0pJiYwPT0oMHxmZVtsKzE0ND4+MF0pJiYoMHxwJiYodHcocCksYVtmPj4yXT0wKSxhW2M+PjJdPTApfShsKSksbGU9cH1mdW5jdGlvbiBPcihsLGMsZil7bHw9MCxjfD0wO3ZhciBBLHcsYixwPTAsbT0wO2I9bGUsbGU9bGUrMTA1NnwwLG09Yix3PWIr''@;'; put 'put ''MjR8MCxhWyhBPWIrOHwwKT4+Ml09Znw9MCwoMHwocD0wfEFMKHcsMTAyNCxjLEEpKSk+PTA/KCgwfHApPjEwMjM/KHA9MHxRbihwKzF8MCksYVtBPj4yXT1mLG09cCxwPTB8RGoocCxjLEEpKTptPXcsUjUobCxtLHApLCgwfG0pIT0oMHx3KSYmRnQobSkpOihhW20+PjJdPTB8JGsoMHxhWzQ3''@;'; put 'put ''NjQzXSksJHIoMSw5ODMwOCxtKSksbGU9Yn1mdW5jdGlvbiBacyhsLGMpe3ZhciBmLHA7Zj1sZSxsZT1sZSsxNnwwLFI1KGx8PTAsMHxsRihwPWYsYz0rYyksMHxhW3A+PjJdKSxsZT1mfWZ1bmN0aW9uIGxGKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtp''@;'; put 'put ''ZigoYz0rYyk8LTFlMTUpcD05ODMyMixmPTE5O2Vsc2UgaWYoYz4xZTE1KXA9OTgzMjMsZj0xODtlbHNlIGlmKHA9fn4oKChjKj0xZTQpPDA/LS41Oi41KStjKSl7Zm9yKGs9NCx3PTAsZj0xOTQ4MjYscD0oTT0oMHxwKTwwKT8wLXB8MDpwOzAhPSgwfHApfCgwfGspPjA7KWI9KDB8cCkvMTB8''@;'; put 'put ''MCxBPWYrLTF8MCwwPT0oMHwobT0oMHxwKSUxMHwwKSkmdzw8MjQ+PjI0PT0wP3A9MDooZmVbQT4+MF09NDh8bSxwPTEsZj1BKSwxPT0oMHxrKSYmKHA8PDI0Pj4yNCYmKGZlWyhmPWYrLTF8MCk+PjBdPTQ2KSxwPTEpLGs9aystMXwwLHc9cCxwPWI7TSYmKGZlWyhmPWYrLTF8MCk+PjBdPTQ1''@;'; put 'put ''KSxwPWYsZj0xOTQ4MjYtZnwwfWVsc2UgcD0xMzgzOTQsZj0xO3JldHVybiBhW2w+PjJdPWYsMHxwfWZ1bmN0aW9uIG5oKGwsYyl7dmFyIGYscDtmPWxlLGxlPWxlKzE2fDAsUjUobHw9MCwwfGxGKHA9ZiwrX1soY3w9MCk+PjNdKSwwfGFbcD4+Ml0pLFI1KGwsMTAyNjA0LDEpLFI1KGwsYz0w''@;'; put 'put ''fGxGKHAsK19bYys4Pj4zXSksMHxhW3A+PjJdKSxsZT1mfWZ1bmN0aW9uIHozKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgbSxBLHA9MCx3PTA7Zm9yKEE9bGUsbGU9bGUrMTZ8MCxtPUEscD0wO2FbbT4+Ml09YVsodz1jKyhwPDw0KXwwKT4+Ml0sYVttKzQ+PjJdPWFbdys0Pj4yXSxhW20r''@;'; put 'put ''OD4+Ml09YVt3Kzg+PjJdLGFbbSsxMj4+Ml09YVt3KzEyPj4yXSxuaChsLG0pLCEoKDB8KHA9cCsxfDApKT49KDB8ZikpOylSNShsLDEwMjYwNCwxKTtsZT1BfWZ1bmN0aW9uIElUKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtyZXR1cm4oZj0wfGFbKHA9MTYwKyhsfD0wKXwwKT4+Ml0pPyhwPTB8''@;'; put 'put ''YVs0N2UzXSkmJigoZj0wfGFbcCs0Pj4yXSl8fChmPTB8dnIoNjMyKSxhWzQrKDB8YVs0N2UzXSk+PjJdPWYpKTooZj0wfHZyKDYzMiksYVtwPj4yXT1mLGFbbCsxNjQ+PjJdPWYpLGFbNDdlM109ZixhW2YrNTI+PjJdPWMsYVtmPj4yXT1sLDAhPSgwfEJBKGwsMyxjKSl8MH1mdW5jdGlvbiB6''@;'; put 'put ''RyhsKXt2YXIgYztyZXR1cm4gYVsxNjQrKGx8PTApPj4yXT1jPTB8YVtsKzE2MD4+Ml0sMHxjfWZ1bmN0aW9uIFZtZShsKXt2YXIgYyxmLHA9MDtyZXR1cm4gMHwoZj0wfGFbNCsoYz0wfGFbKGw9MTY0KyhsfD0wKXwwKT4+Ml0pPj4yXSkmJjA9PSgwfGFbKHA9Zis1MnwwKT4+Ml0pJiYoYVtw''@;'; put 'put ''Pj4yXT1hW2MrNTI+PjJdKSxhW2w+PjJdPWYsMHxmfWZ1bmN0aW9uIGd1KGwsYyxmKXtmfD0wO3ZhciBwLG09MDttPTEwKyhjfD0wKXwwLCgwfGFbKHA9OCsobHw9MCl8MCk+PjJdKT4oMHxjKT9sPTB8YVtsPj4yXTooYVtwPj4yXT1tLG09MHxWMCgwfGFbbD4+Ml0sbTw8MiksYVtsPj4yXT1t''@;'; put 'put ''LGw9bSksYVtsKyhjPDwyKT4+Ml09Zn1mdW5jdGlvbiBkcmUobCl7dmFyIGM7MHwoYz0wfGFbKGx8PTApPj4yXSkmJkZ0KGMpLGFbbD4+Ml09MCxhW2wrOD4+Ml09MCxhW2wrND4+Ml09MH1mdW5jdGlvbiBzRihsKXt2YXIgZixjPTAscD0wO2ZvcihjPTB8YVsoZj0xNjArKGx8PTApfDApPj4y''@;'; put 'put ''XTtjOylwPTB8YVtjKzQ+PjJdLGRyZShjKzYwNHwwKSxkcmUoYys1OTJ8MCksRnQoMHxhW2MrNTg0Pj4yXSksRnQoMHxhW2MrNTg4Pj4yXSksRnQoYyksYz1wO2FbNDdlM109MCxhWzQ2OTk5XT0wLGFbbCsxOTI+PjJdPTAsYVtsKzE2ND4+Ml09MCxhW2Y+PjJdPTAsYVtsKzI4Pj4yXT0wfWZ1''@;'; put 'put ''bmN0aW9uIEdHKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTA7dmFyIHcsayxELGI9MCxNPTA7Zm9yKEQ9bGUsbGU9bGUrMTI4fDAsTT1ELGV3KGs9RCs2NHwwLGZ8PTAsNjMpLDB8KHc9MHwkcyhrLDU4KSkmJihmZVt3Pj4wXT0wKSxsPWwrNjArKGM8PDIpfDA7Oyl7aWYo''@;'; put 'put ''IShjPTB8YVtsPj4yXSkpe2M9bCxsPTA7YnJlYWt9aWYoZXcoTSwwfGFbYys0Pj4yXSw2MyksMHwoYz0wfCRzKE0sNTgpKSYmKGZlW2M+PjBdPTApLCgwfFppKGssTSkpPDEpe2I9OTticmVha31sPTB8YVtsPj4yXX1mb3IoOzk9PSgwfGIpJiYoYz1sLGw9MHxhW2w+PjJdKSwhKCFsfHwoZXco''@;'; put 'put ''TSwwfGFbbCs0Pj4yXSw2MyksbD0wfCRzKE0sNTgpLDB8bCYmKGZlW2w+PjBdPTApLDB8WmkoayxNKSl8fChsPTB8YVtjPj4yXSwoMHxhW2wrOD4+Ml0pPD0oMHxwKSkpOyliPTk7cmV0dXJuIE09MHxRbigyMCksYVtNPj4yXT1hW2M+PjJdLGFbYz4+Ml09TSxhW00rND4+Ml09ZixhW00rOD4+''@;'; put 'put ''Ml09cCxhW00rMTI+PjJdPW0sYVtNKzE2Pj4yXT1BLGxlPUQsMX1mdW5jdGlvbiBkMShsLGMpe3JldHVybiBjfD0wLGM9bGUsbGU9bGUrMTZ8MCwkcigxLDk4Mzk2LGMpLGxlPWMsMH1mdW5jdGlvbiBCQShsLGMsZil7bHw9MDt2YXIgdyxiLGssRCxwZSxnZSxwPTAsbT0wLEE9MCxNPTAsUj0w''@;'; put 'put ''LEc9MCxxPTA7Z2U9bGUsbGU9bGUrMTQ0fDAscGU9Z2UsRz1nZSsxNnwwLEQ9KChjfD0wKS0zfDApPj4+MDwyPzA6YyxldyhSPWdlKzgwfDAsZnw9MCw2MyksKGY9MHwkcyhSLDU4KSk/KHA9ZisxfDAsZmVbZj4+MF09MCwoZj0wfCRzKHAsNTgpKT8oZmVbZj4+MF09MCxNPWYrMXwwKTpNPTAp''@;'; put 'put ''OihNPTAscD0wKSx3PTAhPSgwfHApLGI9MD09KDB8TSksaz0oMHxEKT09KDB8YyksQT1sKzYwKyhjPDwyKXwwO2U6Zm9yKDs7KXtpZighKGY9MHxhW0E+PjJdKSl7Zj0wO2JyZWFrfWV3KEcsMHxhW2YrND4+Ml0sNjMpLChmPTB8JHMoRyw1OCkpPyhmZVtmPj4wXT0wLGY9ZisxfDApOmY9MDtk''@;'; put 'put ''b3tpZighKDB8WmkoRyxSKSkpe2lmKHcmKG09MCE9KDB8ZikpJiYwfFppKGYscCl8fCFiJiYwfFppKE0sMHxhWzgrKDB8YVsxMisoMHxhW0E+PjJdKT4+Ml0pPj4yXSkpYnJlYWs7aWYoa3wxXm0pe3E9MTY7YnJlYWsgZX1pZigwfEJBKGwsRCxmKSl7cT0xNjticmVhayBlfX19d2hpbGUoMCk7''@;'; put 'put ''QT0wfGFbQT4+Ml19ZG97aWYoMTY9PSgwfHEpKWlmKGY9MHxhW0E+PjJdKXtpZigwPT0oMHxhWyhwPWYrMTZ8MCk+PjJdKSYmKGQxKDAsMCksMD09KDB8YVtwPj4yXSkpKXtmPTA7YnJlYWt9KDB8YVtsKzg+PjJdKT4wJiYocT0wfGFbMTU3MTJdLFI9MHxhW2YrND4+Ml0sRz0wfGFbOCsoMHxh''@;'; put 'put ''W2YrMTI+PjJdKT4+Ml0sYVtwZT4+Ml09YVsyMDE2OCsoYzw8Mik+PjJdLGFbcGUrND4+Ml09UixhW3BlKzg+PjJdPUcsVDAocSw5ODQyNyxwZSkpfWVsc2UgZj0wfXdoaWxlKDApO3JldHVybiBhW2wrODArKGM8PDIpPj4yXT1mLGxlPWdlLDB8Zn1mdW5jdGlvbiBXRyhsLGMsZil7bHw9MCxj''@;'; put 'put ''fD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MDtkb3tpZihmKXtpZigwfGFbNTA0N10mJih1cygxODgwMDQsMCwwKSxhWzUwNDddPTApLGY9MHwkcyhBPTB8cmEoZiksNTgpKXtmb3IoZmVbZj4+MF09MCxmPTEsbT1wPWwrNjArKGM8PDIpfDA7bD0wfGFbbT4+Ml07KTB8KGw9MHwkcyhjPTB8''@;'; put 'put ''cmEoMHxhW2wrND4+Ml0pLDU4KSkmJihmZVtsPj4wXT0wKSwwIT0oMHxmZVtBPj4wXSkmJjAhPSgwfHkwKEEsYykpfHwoKGY9MHxhWzQ3MDAyXSk+Pj4wPj0oMHxhWzQ3MDAzXSk+Pj4wJiYoUTAoMTg4MDA0LDEpLGY9MHxhWzQ3MDAyXSksYVs0NzAwMl09ZisxLGZlW2Y+PjBdPTMyLHVvKDE4''@;'; put 'put ''ODAwNCwwfGFbNCsoMHxhW20+PjJdKT4+Ml0pLChmPTB8YVs0NzAwMl0pPj4+MD49KDB8YVs0NzAwM10pPj4+MCYmKFEwKDE4ODAwNCwxKSxmPTB8YVs0NzAwMl0pLGFbNDcwMDJdPWYrMSxmZVtmPj4wXT01OCx1bygxODgwMDQsMHxhWzgrKDB8YVsxMisoMHxhW20+PjJdKT4+Ml0pPj4yXSks''@;'; put 'put ''Zj0wKSxGdChjKSxtPTB8YVttPj4yXTtGdChBKSxmPDwyND4+MjQmJihtPTAsdz0xOSl9ZWxzZSBGdChBKSxtPTAscD1sKzYwKyhjPDwyKXwwLGY9MSx3PTE5O2lmKDE5PT0oMHx3KSl7Zm9yKDtsPTB8YVtwPj4yXTspMHwobD0wfCRzKGM9MHxyYSgwfGFbbCs0Pj4yXSksNTgpKSYmKGZlW2w+''@;'; put 'put ''PjBdPTApLDAhPSgwfG0pJiYwPT0oMHx5MChtLGMpKXx8KChmPTB8YVs0NzAwMl0pPj4+MD49KDB8YVs0NzAwM10pPj4+MCYmKFEwKDE4ODAwNCwxKSxmPTB8YVs0NzAwMl0pLGFbNDcwMDJdPWYrMSxmZVtmPj4wXT0zMix1bygxODgwMDQsYyksZj0wKSxtPWMscD0wfGFbcD4+Ml0sdz0xOTtp''@;'; put 'put ''ZihmPDwyND4+MjQpe2Y9MTk1MDU5O2JyZWFrfX0oZj0wfGFbNDcwMDJdKT4+PjA+PSgwfGFbNDcwMDNdKT4+PjAmJihRMCgxODgwMDQsMSksZj0wfGFbNDcwMDJdKSxmZVtmPj4wXT0wLGFbNDcwMDJdPWY9MHxhWzQ3MDAxXX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9u''@;'; put 'put ''IHByZShsKXt2YXIgYztyZXR1cm4obHw9MCl8fFByKDExMTIwOCw5ODQ0NCw1NzMsOTg0NTgpLDB8ZmVbbD4+MF18fFByKDExMTIxMyw5ODQ0NCw1NzQsOTg0NTgpLDB8KChjPTB8YVs0NzAwNV0pPzB8bWlbNjMmYVtjPj4yXV0oYyxsLDUxMik6MCl9ZnVuY3Rpb24gZ3JlKGwpe3ZhciBmLHAs''@;'; put 'put ''bSxBLGIsayxjPTAsdz0wO2s9bGUsbGU9bGUrMTZ8MCxiPWsrOHwwLHc9aywobHw9MCl8fFByKDExMTMxMiw5ODQ0NCw1ODksOTg0NzUpLChmPTB8YVsobT1sKzh8MCk+PjJdKXx8UHIoMTExMzE1LDk4NDQ0LDU5MCw5ODQ3NSksMHxmZVtmPj4wXXx8UHIoMTExMzI0LDk4NDQ0LDU5MSw5ODQ3''@;'; put 'put ''NSkscD0wfGFbKEE9bCsyMHwwKT4+Ml07ZG97aWYoIXApe2lmKCEoYz0wfGREKGYpKSl7YVt3Pj4yXT1hW20+PjJdLCRyKDAsOTg0OTksdyksYz0wO2JyZWFrfWlmKHc9MHxuUyhjLDEzODgyMSksYVtBPj4yXT13LCF3KXthW2I+PjJdPTB8JGsoMHxhWzQ3NjQzXSksYVtiKzQ+PjJdPWMsJHIo''@;'; put 'put ''MCw5ODUyNCxiKSxjPTA7YnJlYWt9aWYoKDB8KGM9MHxhWzQ3MDA2XSkpPjQ5KXtmZVtsKzE3Pj4wXT0xLGM9MTticmVha31hWzQ3MDA2XT1jKzEsYz0xO2JyZWFrfW4zKHAsMCwwKSwwfGFbQT4+Ml0/Yz0xOlByKDk4NTQ1LDk4NDQ0LDYxNCw5ODQ3NSl9d2hpbGUoMCk7cmV0dXJuIGxlPWss''@;'; put 'put ''MHxjfWZ1bmN0aW9uIFlHKGwpe3ZhciBjPTAsZj0wOzB8ZmVbMTcrKGx8PTApPj4wXSYmMHwoZj0wfGFbKGM9bCsyMHwwKT4+Ml0pJiYodHcoZiksYVtjPj4yXT0wKX1mdW5jdGlvbiBtcmUobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7KGN8PTApPyhtPSsoMHwocD0wfGFbYys0''@;'; put 'put ''OD4+Ml0pKSxwPyhfW2YrOD4+M109bSxfW2Y+PjNdPW0sQT1tKTooQT0rX1tmPj4zXSxtPStfW2YrOD4+M10pLHA9fn4oKyg3MiooMHxhW2MrNDA+PjJdKXwwKS9BKSxmPX5+KCsoNzIqKDB8YVtjKzQ0Pj4yXSl8MCkvbSkpOihwPS0xLGY9LTEpLGFbbD4+Ml09cCxhW2wrND4+Ml09Zn1mdW5j''@;'; put 'put ''dGlvbiBVRyhsLGMsZil7bHw9MCxjfD0wO3ZhciB3LGIsayxwPTAsbT0wLEE9MCxNPTA7az1sZSxsZT1sZSs0OHwwLHA9aysxNnwwLHc9ayxiPWsrMzJ8MCwwIT0oMHwoZnw9MCkpJiYwIT0oMHxmZVtmPj4wXSk/KCgwfGFbNDcwMDddKSE9KDB8KG09MHxhWzQ3MTMzXSkpJiYoYVs0NzAwN109''@;'; put 'put ''bSwwfChBPTB8YVs0NzAwNV0pKSYmKE5sKEEpLGFbNDcwMDVdPTApLF9bdys4Pj4zXT1NPShNPStfWzI0KygwfGFbOCsoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXSk+PTE/TTo5NixfW3c+PjNdPU0sYz0wfGZ1bmN0aW9uIHZyZShsKXt2YXIgbSxjPTAsZj0wLHA9MDttPWxlLGxlPWxlKzE2fDAs''@;'; put 'put ''cD1tLChsfD0wKXx8UHIoMTExMjA4LDk4NDQ0LDYzOCw5ODU1MSksMHxhWzQ3MDA1XXx8KGFbNDcwMDVdPTB8aXMoMjAxOTIsMHxhWzQ1ODldKSksYz0wfHByZShsKTtlOmRve2lmKGMpWUcoYyk7ZWxzZSBpZihjPTB8dnIoNjQpLGMpe2lmKGFbKGY9Yys4fDApPj4yXT0wfHIwKDAsbCksISgo''@;'; put 'put ''MHxncmUoYykpPDwyND4+MjQpKXtTQyhjKSxjPTA7YnJlYWt9c3dpdGNoKDB8YVtjKzIwPj4yXXx8UHIoOTg1NDUsOTg0NDQsNjUzLDk4NTUxKSwwfEFyZShjKSl7Y2FzZSAwOmlmKGw9MHxsTigwfGFbZj4+Ml0pLGFbYys1Mj4+Ml09bCwhbCl7YVtwPj4yXT1hW2Y+PjJdLCRyKDAsOTg1Njgs''@;'; put 'put ''cCksU0MoYyksYz0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyOnlyZShjKTticmVhaztjYXNlIDM6UUcoYyk7YnJlYWs7Y2FzZSAxOmk3KGMpO2JyZWFrO2Nhc2UgNDpKRyhjKTticmVhaztjYXNlIDY6dUYoYyk7YnJlYWs7Y2FzZSAxMTpjRihjKTticmVhaztjYXNlIDg6d3JlKGMpO2JyZWFrO2Nh''@;'; put 'put ''c2UgNTpmRihjKTticmVhaztjYXNlIDEyOmhGKGMpfVlHKGMpLG1pWzYzJmFbKHA9MHxhWzQ3MDA1XSk+PjJdXShwLGMsMSl9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIGxlPW0sMHxjfShmKSxhW3A+PjJdPWFbdz4+Ml0sYVtwKzQ+PjJdPWFbdys0Pj4yXSxhW3ArOD4+Ml09YVt3Kzg+PjJd''@;'; put 'put ''LGFbcCsxMj4+Ml09YVt3KzEyPj4yXSxtcmUoYixjLHApLGM9MHxhW2I+PjJdLHA9MHxhW2IrND4+Ml0pOihjPS0xLHA9LTEpLGFbbD4+Ml09YyxhW2wrND4+Ml09cCxsZT1rfWZ1bmN0aW9uIFNDKGwpe3ZhciBjOzB8KGM9MHxhWzgrKGx8PTApPj4yXSkmJmUwKDAsYyksRnQobCl9ZnVuY3Rp''@;'; put 'put ''b24gQXJlKGwpe3ZhciBtLEEsdyxrLGM9MCxmPTAscD0wLGI9MDtrPWxlLGxlPWxlKzIyNHwwLG09aysyMDB8MCxBPWssYz0wfGFbKHc9MjArKGx8PTApfDApPj4yXTtlOmRve2lmKDAhPSgwfGMpJiYyMD09KDB8RyQobSwxLDIwLGMpKSl7Zm9yKGY9MDs7KXtpZihmPj4+MD49MTApe2I9MTM7''@;'; put 'put ''YnJlYWsgZX1pZighKDB8dDMobSwwfGFbMjAyMjgrKGY8PDQpPj4yXSwwfGFbMjAyMjgrKGY8PDQpKzQ+PjJdKSkpYnJlYWs7Zj1mKzF8MH1zd2l0Y2goYVsocD1sKzI4fDApPj4yXT1hWzIwMjI4KyhmPDw0KSsxMj4+Ml0sYVsobD1sKzI0fDApPj4yXT1jPTB8YVsyMDIyOCsoZjw8NCkrOD4+''@;'; put 'put ''Ml0sMHxmKXtjYXNlIDc6YnJlYWs7Y2FzZSA4OmlmKDB8dDMobSs4fDAsOTg3ODQsNCkpYnJlYWsgZTthW3A+PjJdPTk4Nzg5LGFbbD4+Ml09MTEsYz0xMTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX1mb3IoOzspe2lmKCEoMHx5ZyhBLDIwMCwwfGFbdz4+Ml0pKSl7Yj0xMTticmVha31pZigh''@;'; put 'put ''KDB8dDMoQSw5ODc3OSw0KSkpe2I9ODticmVha319aWYoOD09KDB8Yikpe2FbcD4+Ml09MTAxODAzLGFbbD4+Ml09OCxjPTg7YnJlYWt9aWYoMTE9PSgwfGIpKXtjPTB8YVtsPj4yXTticmVha319ZWxzZSBiPTEzfXdoaWxlKDApO3JldHVybiAxMz09KDB8YikmJihhW2wrMjg+PjJdPTk4Nzk0''@;'; put 'put ''LGFbbCsyND4+Ml09MCxjPTApLGxlPWssMHxjfWZ1bmN0aW9uIHlyZShsKXt2YXIgYyxmLHAsbTttPWxlLGxlPWxlKzE2fDAsYz1tKzR8MCxmPW0sYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDYsMCksKDB8dHAoMHxhW3A+PjJdLDIsYykpPDwyND4+MjQmJigwfHRw''@;'; put 'put ''KDB8YVtwPj4yXSwyLGYpKTw8MjQ+PjI0JiYoYVtsKzQwPj4yXT1hW2M+PjJdLGFbbCs0ND4+Ml09YVtmPj4yXSksbGU9bX1mdW5jdGlvbiBRRyhsKXt2YXIgYyxmLHAsbTttPWxlLGxlPWxlKzE2fDAsYz1tKzR8MCxmPW0sYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJd''@;'; put 'put ''LDE2LDApLCgwfEVmKDB8YVtwPj4yXSw0LGMpKTw8MjQ+PjI0JiYoMHxFZigwfGFbcD4+Ml0sNCxmKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXSxhW2wrNDQ+PjJdPWFbZj4+Ml0pLGxlPW19ZnVuY3Rpb24gaTcobCl7dmFyIGMsZixwLG0sQSx3O3c9bGUsbGU9bGUrMTZ8MCxjPXcr''@;'; put 'put ''MTJ8MCxmPXcrOHwwLHA9dys0fDAsbT13LGFbNDgrKGx8PTApPj4yXT0wLG4zKDB8YVsoQT1sKzIwfDApPj4yXSwxNiwwKSwoMHx0cCgwfGFbQT4+Ml0sMixjKSk8PDI0Pj4yNCYmKDB8dHAoMHxhW0E+PjJdLDIsZikpPDwyND4+MjQmJigwfHRwKDB8YVtBPj4yXSwyLHApKTw8MjQ+PjI0JiYo''@;'; put 'put ''MHx0cCgwfGFbQT4+Ml0sMixtKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXTw8MTZ8YVtmPj4yXSxhW2wrNDQ+PjJdPWFbcD4+Ml08PDE2fGFbbT4+Ml0pLGxlPXd9ZnVuY3Rpb24gSkcobCl7dmFyIGMscCxtLHcsYixrLEQsZj0wLEE9MCxNPTA7Zm9yKEQ9bGUsbGU9bGUrMzJ8MCxj''@;'; put 'put ''PUQrMTZ8MCxwPUQrMTJ8MCxtPUQrOHwwLHc9RCs0fDAsYj1ELGFbNDgrKGx8PTApPj4yXT0wLGs9bCsyMHwwOygwfEVmKDB8YVtrPj4yXSwxLGMpKTw8MjQ+PjI0OylpZigyNTUhPSgwfChmPTB8YVtjPj4yXSkpJiYhKDB8JHMoOTg3NjcsZikpKXtpZigxOTI9PSgwfGYpKXtNPTY7YnJlYWt9''@;'; put 'put ''aWYoQT0wfGFbaz4+Ml0sMTk0PT0oMHxmKSl7TT0xMTticmVha31pZighKCgwfEVmKEEsMixwKSk8PDI0Pj4yNCkpYnJlYWs7bjMoMHxhW2s+PjJdLCgwfGFbcD4+Ml0pLTJ8MCwxKX02PT0oMHxNKT8oMHxFZigwfGFbaz4+Ml0sMyxiKSk8PDI0Pj4yNCYmKDB8RWYoMHxhW2s+PjJdLDIsbSkp''@;'; put 'put ''PDwyND4+MjQmJigwfEVmKDB8YVtrPj4yXSwyLHcpKTw8MjQ+PjI0JiYoYVtsKzQ0Pj4yXT1hW20+PjJdLGFbbCs0MD4+Ml09YVt3Pj4yXSk6MTE9PSgwfE0pJiYoMHxFZihBLDMsYikpPDwyND4+MjQmJigwfEVmKDB8YVtrPj4yXSwyLG0pKTw8MjQ+PjI0JiYoMHxFZigwfGFbaz4+Ml0sMix3''@;'; put 'put ''KSk8PDI0Pj4yNCYmKGFbbCs0ND4+Ml09YVttPj4yXSxhW2wrNDA+PjJdPWFbdz4+Ml0pLGxlPUR9ZnVuY3Rpb24gdUYobCl7dmFyIGMscCxtLEEsdyxiLEQsZj0wLGs9MCxNPTA7Zm9yKEQ9bGUsbGU9bGUrMTA1NnwwLGs9RCxjPUQrMzJ8MCxwPUQrMjh8MCxtPUQrMjR8MCxBPUQrMjB8MCx3''@;'; put 'put ''PUQrMTZ8MCxhWzQ4KyhsfD0wKT4+Ml09NzIsbjMoMHxhWyhiPWwrMjB8MCk+PjJdLDAsMCk7MHx5ZyhjLDEwMjQsMHxhW2I+PjJdKTspaWYoKGY9MHx0UyhjLDk4NzUyKSkmJihhW2s+PjJdPXAsYVtrKzQ+PjJdPW0sYVtrKzg+PjJdPUEsYVtrKzEyPj4yXT13LDQ9PSgwfGlsKGYsMTA0MzEx''@;'; put 'put ''LGspKSkpe009NTticmVha301PT0oMHxNKSYmKGFbbCszMj4+Ml09az0wfGFbcD4+Ml0sYVtsKzM2Pj4yXT1NPTB8YVttPj4yXSxhW2wrNDA+PjJdPSgwfGFbQT4+Ml0pLWssYVtsKzQ0Pj4yXT0oMHxhW3c+PjJdKS1NKSxsZT1EfWZ1bmN0aW9uIGNGKGwpe3ZhciBjLGYscCxtLEEsdztBPWxl''@;'; put 'put ''LGxlPWxlKzE2fDAsYz1BKzR8MCxmPUEsYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDE1LDApLHc9ODg9PSgwfFdqKDB8YVtwPj4yXSkpLG09MHxhW3A+PjJdLHc/KG4zKG0sMjQsMCksKDB8dHAoMHxhW3A+PjJdLDQsYykpPDwyND4+MjQmJigwfHRwKDB8YVtwPj4y''@;'; put 'put ''XSw0LGYpKTw8MjQ+PjI0JiYoYVtsKzQwPj4yXT1hW2M+PjJdLGFbbCs0ND4+Ml09YVtmPj4yXSkpOihuMyhtLDI2LDApLCgwfHRwKDB8YVtwPj4yXSwyLGMpKTw8MjQ+PjI0JiYoMHx0cCgwfGFbcD4+Ml0sMixmKSk8PDI0Pj4yNCYmKGFbbCs0MD4+Ml09YVtjPj4yXSxhW2wrNDQ+PjJdPWFb''@;'; put 'put ''Zj4+Ml0pKSxsZT1BfWZ1bmN0aW9uIHdyZShsKXtsfD0wO3ZhciBrLE0sRCxSLEcscSxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxydCxXZSxhdCxTdCxrdCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7a3Q9bGUsbGU9bGUrMzUyfDAsV2U9a3QrODB8MCxydD1rdCs3MnwwLFN0PWt0''@;'; put 'put ''KzY0fDAsYXQ9a3QrNTZ8MCxxZT1rdCs0OHwwLGM9a3QrNDB8MCxwZT1rdCszMnwwLGdlPWt0KzI0fDAsYmU9a3QrMTZ8MCxPZT1rdCs4fDAsTGU9a3QsUmU9a3QrMzI4fDAsSGU9a3QrMTI4fDAsVmU9a3QrOTZ8MCwwfGFbNDcwMDhdfHwoMHxmdW5jdGlvbiBVY2UobCxjLGYpe2x8PTAsY3w9''@;'; put 'put ''MCxmfD0wO3ZhciBPZSxSZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLExlPTAsSGU9MDtSZT1sZSxsZT1sZSs0OHwwLGI9UmUsT2U9MHxmdW5jdGlvbiBRY2UoKXt2YXIgbD0wLGM9MDtsPTB8RjAoMjApO2Rve2lmKGwpe2lmKGM9''@;'; put 'put ''MHxGMCgyMDQ4KSxhW2wrMTY+PjJdPWMsYyl7YVtsPj4yXT01MTIsYVtsKzQ+PjJdPTEwMjRlMyxhW2wrOD4+Ml09MTI4LGFbbCsxMj4+Ml09MDticmVha31GdChsKSxsPTA7YnJlYWt9fXdoaWxlKDApO3JldHVybiAwfGx9KCk7ZTpkb3tpZihPZSl7aWYoIShMZT0wfFIkKDAsMCkpKXtWaihP''@;'; put 'put ''ZSksYz0xMjticmVha31hWyhwPWIrOHwwKT4+Ml09MCxhW3ArND4+Ml09MCxhW3ArOD4+Ml09MCxhW3ArMTI+PjJdPTAsYVtwKzE2Pj4yXT0wLGFbYj4+Ml09TGUsYVtiKzQ+PjJdPU9lLGFbYisxNj4+Ml09YyxhW2IrMzI+PjJdPWYsYVsocD1iKzI4fDApPj4yXT0tMSxjPTB8SmNlKGIpO3Q6''@;'; put 'put ''ZG97aWYoYylBPTAsdz0wLGI9MCxtPTAscD0wO2Vsc2UgaWYodz1iKzIwfDAsbT0wfGFbdz4+Ml0sYVtsPj4yXT1tKy0xLGs9MHxhW2IrOD4+Ml0sYz0wfGFbcD4+Ml0sKDB8Yyk8KDB8bSkpaWYoQT0wfHNoKDEsNjgpLEEpe2lmKGFbQSs2MD4+Ml09Z2U9Yz4+PjMxXjEsYVtBKzI4Pj4yXT1t''@;'; put 'put ''LDA9PSg4JmZ8MCl8MCE9KDB8Z2UpKXtpZigwfChjPTB8QiQoMCxPZSxrLEEpKSl7dz0wLGI9MCxtPTAscD0wO2JyZWFrfWlmKCgwfChtPTB8YVtBKzQwPj4yXSkpPjApe2lmKCEocD0wfEYwKGM9NCsobTw8Mil8MCkpKXt3PTAsYj0wLGM9MTIsbT0wLHA9MDticmVha31hW0ErMzI+PjJdPXAs''@;'; put 'put ''dTIoMHxwLC0xLDB8Yyl9ZWxzZSBwPTA7aWYoZ2U9MHxzaChtPDwxfDEsNCksYVtBKzM2Pj4yXT1nZSwhZ2Upe3c9MCxiPTAsYz0xMixtPTAscD0wO2JyZWFrfWlmKCEoYz0wfHNoKDB8YVt3Pj4yXSwxMikpKXt3PTAsYj0wLGM9MTIsbT0wLHA9MDticmVha31pZihhW0ErMTY+PjJdPWMsYz0w''@;'; put 'put ''fEIkKExlLE9lLGssQSkpe3c9MCxiPTAsbT0wLHA9MDticmVha31jPXB9ZWxzZSBjPTA7aWYoYz0wfFhjZShMZSxPZSxrLGdlPWIrMjR8MCxjKSl3PTAsYj0wLG09MCxwPTA7ZWxzZSBpZihhW2dlPj4yXT0xKyhjPTB8YVtnZT4+Ml0pLDAhPSgwfChjPTB8bjEoTGUsMCwwLGMpKSkmJjAhPSgw''@;'; put 'put ''fChiZT0wfHV2KExlLGssYykpKSlpZihjPTB8S2NlKExlLE9lLGJlKSl3PTAsYj0wLG09MCxwPTA7ZWxzZSBpZihxPTB8RjAoYz0ocD0wfGFbZ2U+PjJdKTw8MikpaWYocGU9MHxGMChjKSl7aWYoKDB8cCk+MCYmdTIoMHxxLDAscDw8MnwwKSxNTChiZSwwLHEsMCksKDB8KG09MHxhW2dlPj4y''@;'; put 'put ''XSkpPjApe2M9MCxwPTA7ZG97YVtwZSsocDw8Mik+PjJdPWMsYz1jKzErKDB8YVsoRz1xKyhwPDwyKXwwKT4+Ml0pfDAsYVtHPj4yXT0wLHA9cCsxfDB9d2hpbGUoKDB8cCk8KDB8bSkpO0Q9Y31lbHNlIEQ9MDtpZihSPTB8c2goRCsxfDAsMzIpKWlmKGFbQT4+Ml09UixhWyhHPUErNHwwKT4+''@;'; put 'put ''Ml09RCxjPTB8TUwoYmUsUixxLHBlKSl3PXEsYj1wZSxtPXEscD1wZTtlbHNle2ZvcihhW0ErMjA+PjJdPTAsYz0wfGFbKG09YmUrMjR8MCk+PjJdLHA9MDtwPXArMXwwLCEoKDB8YVtjPj4yXSk8PS0xKTspYz1jKzMyfDA7aWYoTT0wfHNoKHAsMzIpKXtpZihhW0ErOD4+Ml09TSwoMHwobT0w''@;'; put 'put ''fGFbKHA9MHxhW20+PjJdKT4+Ml0pKT4tMSl7Yz0wO2Rve2lmKGFbTSsoYzw8NSkrOD4+Ml09UisoYVtwZSsobTw8Mik+PjJdPDw1KSxhW00rKGM8PDUpKzEyPj4yXT1tLGFbKGI9TSsoYzw8NSkrMTZ8MCk+PjJdPTAsMHwodz0wfGFbKGs9cCsxMnwwKT4+Ml0pKXttPTA7ZG97SGU9bSxtPW0r''@;'; put 'put ''MXwwfXdoaWxlKCgwfGFbdysoSGU8PDIpPj4yXSk+LTEpO2lmKHc9MHxGMChtPDw9MiksYVtiPj4yXT13LCF3KXt3PXEsYj1wZSxjPTEyLG09cSxwPXBlO2JyZWFrIHR9Z28oMHx3LDB8YVtrPj4yXSwwfG0pfWFbTSsoYzw8NSkrMjA+PjJdPWFbcCsxNj4+Ml0sYz1jKzF8MCxtPTB8YVsocD1w''@;'; put 'put ''KzMyfDApPj4yXX13aGlsZSgoMHxtKT4tMSl9ZWxzZSBjPTA7YVtNKyhjPDw1KSs4Pj4yXT0wLGFbRz4+Ml09RCxhW0ErMTI+PjJdPVIrKGFbcGUrKGFbYVtiZSsyOD4+Ml0+PjJdPDwyKT4+Ml08PDUpLGFbQSs1Mj4+Ml09YVtnZT4+Ml0sYVtBKzU2Pj4yXT1mLHdnKExlKSxWaihPZSksRnQo''@;'; put 'put ''cSksRnQocGUpLGFbbCs0Pj4yXT1BLGM9MDticmVhayBlfXc9cSxiPXBlLGM9MTIsbT1xLHA9cGV9ZWxzZSB3PXEsYj1wZSxjPTEyLG09cSxwPXBlfWVsc2Ugdz1xLGI9cGUsYz0xMixtPXEscD0wO2Vsc2Ugdz1xLGI9MCxjPTEyLG09MCxwPTA7ZWxzZSB3PTAsYj0wLGM9MTIsbT0wLHA9MH1l''@;'; put 'put ''bHNlIHc9MCxiPTAsYz0xMixtPTAscD0wO2Vsc2UgQT0wLHc9MCxiPTAsYz02LG09MCxwPTB9d2hpbGUoMCk7d2coTGUpLFZqKE9lKSwwfHcmJkZ0KG0pLDB8YiYmRnQocCksYVtsKzQ+PjJdPUEsJGNlKGwpfWVsc2UgYz0xMn13aGlsZSgwKTtyZXR1cm4gbGU9UmUsMHxjfSgxODgwMzYsOTg2''@;'; put 'put ''MzcsMSkmJihhW2M+PjJdPTk4NjM3LCRyKDEsOTg2NjQsYykpLGFbNDcwMDhdPTE4ODAzNiksbjMoMHxhWyhrPWwrMjB8MCk+PjJdLDAsMCksTT1WZSsxMnwwLEQ9VmUrMjB8MCxSPVZlKzh8MCxHPVZlKzE2fDAscT1WZSs0fDAsYz0wLG09MCxwPTAsZj0wO2U6Zm9yKDswfHlnKEhlLDIwMCww''@;'; put 'put ''fGFbaz4+Ml0pJiZtPDwyND4+MjQ9PTB8Yzw8MjQ+PjI0PT0wOyl7QT1IZSxiPWY7dDpmb3IoOzspe3c9cDtuOmZvcig7Oyl7Zm9yKDs7KXtpZigwfGxmZSgxODgwMzYsQSw0LFZlLDApKXtwPXcsZj1iO2NvbnRpbnVlIGV9aWYoZmVbQSsoMHxhW00+PjJdKT4+MF09MCxmZVtBKygwfGFbRD4+''@;'; put 'put ''Ml0pPj4wXT0wLGY9QSsoMHxhW1I+PjJdKXwwLHA9QSsoMHxhW0c+PjJdKXwwLEE9QSsoMSsoMHxhW3E+PjJdKSl8MCwhKDB8WmkoZiwxNDExMTYpKSlicmVhaztpZighKDB8WmkoZiwxNDEwNDgpKSlicmVhayBuO2lmKCEoMHxaaShmLDk4NzExKSkmJihhW1dlPj4yXT1nZSxhW1dlKzQ+PjJd''@;'; put 'put ''PWJlLGFbV2UrOD4+Ml09T2UsYVtXZSsxMj4+Ml09TGUsND09KDB8aWwocCw5ODcxOSxXZSkpKSlicmVhayB0fWlmKGFbcWU+PjJdPXBlLGFbcWUrND4+Ml09UmUsMiE9KDB8aWwocCw5ODcwMSxxZSkpPyhhW2F0Pj4yXT1wZSwxPT0oMHxpbChwLDEwMTIwOSxhdCkpPyhmPTEscD0wfExUKCtf''@;'; put 'put ''W3BlPj4zXSw5ODcwOCkpOihmPW0scD13KSk6KGY9MSxwPTB8TFQoK19bcGU+PjNdLFJlKSksYzw8MjQ+PjI0KXttPWYsZj1iO2NvbnRpbnVlIGV9Yz0wLG09Zix3PXB9aWYoYVtTdD4+Ml09cGUsYVtTdCs0Pj4yXT1SZSwyIT0oMHxpbChwLDk4NzAxLFN0KSk/KGFbcnQ+PjJdPXBlLDE9PSgw''@;'; put 'put ''fGlsKHAsMTAxMjA5LHJ0KSk/KGM9MSxmPTB8TFQoK19bcGU+PjNdLDk4NzA4KSk6Zj1iKTooYz0xLGY9MHxMVCgrX1twZT4+M10sUmUpKSxtPDwyND4+MjQpe3A9dztjb250aW51ZSBlfW09MCxwPXcsYj1mfWM9MSxtPTEscD1+figrX1tPZT4+M10rMS0rX1tnZT4+M10pPj4+MCxmPX5+KCtf''@;'; put 'put ''W0xlPj4zXSsxLStfW2JlPj4zXSk+Pj4wfWFbbCs0OD4+Ml09MCxhW2wrNDA+PjJdPXAsYVtsKzQ0Pj4yXT1mLGxlPWt0fWZ1bmN0aW9uIGZGKGwpe3ZhciBjLGYscCxtPTAsQT0wO2Y9bGUsbGU9bGUrMzJ8MCxjPWYsYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDAs''@;'; put 'put ''MCksMHxmdW5jdGlvbiBqbWUobCxjKXtsfD0wLGN8PTA7dmFyIGYscCx3LG09MCxBPTA7Zm9yKHc9bGUsbGU9bGUrMTA0MHwwLGY9dyxwPXcrMTZ8MDs7KXtpZighKDB8eWcocCwxMDI0LGwpKSl7bD0xO2JyZWFrfWlmKDB8KG09MHx0UyhwLDk4NjI3KSkpe0E9NDticmVha319cmV0dXJuIDQ9''@;'; put 'put ''PSgwfEEpJiYoYVtmKzQ+PjJdPXAsYVtmPj4yXT1tKzksYVtmKzg+PjJdPWwsbD0wfGZ1bmN0aW9uIFptZShsLGMpe2N8PTA7dmFyIHAsbSxmPTA7cmV0dXJuIG09bGUsbGU9bGUrMTAyNHwwLHA9bSxicmUobHw9MCksOTE9PSgwfChmPShmPTB8ZmVbYVtsPj4yXT4+MF0pPDwyND4+MjQ/Zjw8''@;'; put 'put ''MjQ+PjI0OjI1NSYoMHxYRyhsKSkpKSYmKGFbbD4+Ml09MSsoMHxhW2w+PjJdKSxNQyhsLHApLDA9PSgwfERUKHAsYykpKSYmKE1DKGwscCksMD09KDB8RFQocCxjKzh8MCkpKSYmKE1DKGwscCksMD09KDB8RFQocCxjKzE2fDApKSk/KE1DKGwscCksZj0wIT0oMHxEVChwLGMrMjR8MCkpJjEp''@;'; put 'put ''OmY9MSxsZT1tLDB8Zn0oZixjKSksbGU9dywwfGx9KDB8YVtwPj4yXSxjKXx8KGFbbCszMj4+Ml09fn4oQT0rX1tjPj4zXSksYVtsKzM2Pj4yXT1+fihtPStfW2MrOD4+M10pLGFbbCs0MD4+Ml09fn4oK19bYysxNj4+M10tQSksYVtsKzQ0Pj4yXT1+figrX1tjKzI0Pj4zXS1tKSksbGU9Zn1m''@;'; put 'put ''dW5jdGlvbiBoRihsKXt2YXIgYyxmLHAsbTttPWxlLGxlPWxlKzE2fDAsYz1tKzR8MCxmPW0sYVs0OCsobHw9MCk+PjJdPTAsbjMoMHxhWyhwPWwrMjB8MCk+PjJdLDYsMCksKDB8RWYoMHxhW3A+PjJdLDEsYykpPDwyND4+MjQmJigwfEVmKDB8YVtwPj4yXSwxLGYpKTw8MjQ+PjI0JiYoYVts''@;'; put 'put ''KzQwPj4yXT1hW2M+PjJdLGFbbCs0ND4+Ml09YVtmPj4yXSksbGU9bX1mdW5jdGlvbiBFZihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wO2ZvcihhWyhmfD0wKT4+Ml09MCxwPTA7Oyl7aWYocD4+PjA+PWM+Pj4wKXtwPTE7YnJlYWt9aWYobT0wfFdqKGwpLDB8RSQobCkpe3A9MDticmVh''@;'; put 'put ''a31hW2Y+PjJdPWFbZj4+Ml08PDh8bSxwPXArMXwwfXJldHVybiAwfHB9ZnVuY3Rpb24gYnJlKGwpe3ZhciBjPTA7Zm9yKGM9MHxhWyhsfD0wKT4+Ml07KDI1NSYoYz0oYz0wfGZlW2M+PjBdKTw8MjQ+PjI0P2M8PDI0Pj4yNDoyNTUmKDB8WEcobCkpKSk8PDI0Pj4yNCYmMHwkYygyNTUmYyk7''@;'; put 'put ''KWFbbD4+Ml09Yz0xKygwfGFbbD4+Ml0pfDB9ZnVuY3Rpb24gWEcobCl7dmFyIGM9MDtyZXR1cm4gMHx5ZygwfGFbKGM9NCsobHw9MCl8MCk+PjJdLDEwMjQsMHxhW2wrOD4+Ml0pPyhhW2w+PjJdPWM9MHxhW2M+PjJdLGw9MHxmZVtjPj4wXSk6bD0wLDB8bH1mdW5jdGlvbiBNQyhsLGMpe2N8''@;'; put 'put ''PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihicmUobHw9MCksZj0wLHA9MHxhW2w+PjJdOyhwPShtPShwPTB8ZmVbcD4+MF0pPDwyND4+MjQ/cDw8MjQ+PjI0OjI1NSYoMHxYRyhsKSkpPDwyND4+MjQpJiY0Nj09KDB8cCl8KHArLTQ4fDApPj4+MDwxMDspaWYoZmVbYytmPj4wXT1tLGY9ZisxfDAs''@;'; put 'put ''YVtsPj4yXT1wPTErKDB8YVtsPj4yXSl8MCwxMDIzPT0oMHxmKSl7Zj0xMDIzO2JyZWFrfWZlW2MrZj4+MF09MH1mdW5jdGlvbiBEVChsLGMpe3ZhciBmLHAsbTtyZXR1cm4gY3w9MCxwPWxlLGxlPWxlKzE2fDAsZj0raTMobHw9MCxtPXApLCgwfGFbbT4+Ml0pPT0oMHxsKT9sPTE6KF9bYz4+''@;'; put 'put ''M109ZixsPTApLGxlPXAsMHxsfWZ1bmN0aW9uIExUKGwsYyl7bD0rbCxjfD0wO3ZhciBmPTA7ZG97aWYoMHxaaShjLDk4NzM1KSl7aWYoISgwfFppKGMsOTg3MzgpKSl7Zj1sKj0uNzUsbD1sPj0wPy41Oi0uNTticmVha31pZighKDB8WmkoYyw5ODc0MSkpKXtmPWwqPTEyLGw9bD49MD8uNTot''@;'; put 'put ''LjU7YnJlYWt9aWYoMHxaaShjLDk4NzA4KSYmMHxaaShjLDk4NzQ0KSl7aWYoMHxaaShjLDk4NzQ2KSlyZXR1cm4gZj0yLjgzNDY0NTY2NjM5OTk5OTcqbCwwfCgoYz0wPT0oMHxaaShjLDk4NzQ5KSkpP35+KGYrKGY+PTA/LjU6LS41KSk6MCk7Zj1sKj0yOC4zNDY0NTY2NjQsbD1sPj0wPy41''@;'; put 'put ''Oi0uNTticmVha31mPWw+PTA/LjU6LS41fWVsc2UgZj1sKj03MixsPWw+PTA/LjU6LS41fXdoaWxlKDApO3JldHVybiAwfH5+KGwrZil9ZnVuY3Rpb24gdHAobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MDtmb3IoYVsoZnw9MCk+PjJdPTAscD0wOzspe2lmKHA+Pj4wPj1jPj4+MCl7cD0x''@;'; put 'put ''O2JyZWFrfWlmKG09MHxXaihsKSwwfEUkKGwpKXtwPTA7YnJlYWt9YVtmPj4yXT1hW2Y+PjJdfG08PChwPDwzKSxwPXArMXwwfXJldHVybiAwfHB9ZnVuY3Rpb24gS0coKXt2YXIgbDtyZXR1cm4gc2koMCwxLDEwODIyNCwxMDU0OTMpLGZ1bmN0aW9uIFQ5KGwsYyl7KGZ1bmN0aW9uIFE4KGwp''@;'; put 'put ''e3ZhciBjPTAsZj0wO2M9MHxhWzMyKyhsfD0wKT4+Ml07ZTpkb3tpZigwfGMpZm9yKDs7KXtpZighKGY9MHxhW2M+PjJdKSlicmVhayBlOzEwMz09KDB8ZmVbZj4+MF0pJiYwfHRTKGYsMTExNTA5KSYmVTgobCwwLDB8YVtjKzQ+PjJdKSxjPWMrOHwwfX13aGlsZSgwKX0pKGx8PTApLGZlW2wr''@;'; put 'put ''NDQ+PjBdPTAsZnVuY3Rpb24gY0UobCl7dmFyIGM7KGM9MHxCQShsfD0wLDIsMTExNTIyKSk/KGFbbCsxNDg+PjJdPWFbMTIrKDB8YVtjKzE2Pj4yXSk+PjJdLGw9MzAwKTpsPTk5OX0obCksZnVuY3Rpb24geWxlKGwpe3ZhciBjPTA7YVsoYz0xMDgrKGx8PTApfDApPj4yXT0wLGFbbCsxMTI+''@;'; put 'put ''PjJdPTMyLGFbbCsxMTY+PjJdPS0xLGFbbCsxMjA+PjJdPTMzLGFbbCsxMjQ+PjJdPTYzLGFbbCsxMjg+PjJdPTU1LGFbbCsxMzI+PjJdPTAsYVtsKzEzNj4+Ml09MCxhW2wrMTQwPj4yXT0wLGM9MHxpcyhjLDB8YVs0NTgxXSksYVtsKzE0ND4+Ml09Y30obCl9KGw9MHxmdW5jdGlvbiBrQyhs''@;'; put 'put ''LGMpe3ZhciBmO3JldHVybiBsfD0wLGN8PTAsMHwoZj0wfHZyKDM5MikpJiYoYVtmPj4yXT0yMDE1NixhW2YrMTY+PjJdPTIzLGFbZiszMj4+Ml09bCxhW2YrMzY+PjJdPWMpLDB8Zn0oMCwxKSksMHxsfWZ1bmN0aW9uIE9UKGwsYyxmKXtjfD0wO3ZhciBwLG0sQSx3LGIsaz0wLE09MCxEPTAs''@;'; put 'put ''Uj0wO3JldHVybiBiPWxlLGxlPWxlKzMwNHwwLHc9YisyNHwwLEE9Yis4fDAscD1iLG09Yis0MHwwLDk5OSE9KDB8ckUobHw9MCxmfD0wKSk/LTE9PSgwfGZ1bmN0aW9uIExSKGwsYyl7bHw9MDt2YXIgbSxBLGIsZj0wLHA9MCx3PTA7cmV0dXJuIGI9bGUsbGU9bGUrMTZ8MCxtPWIsaDAoY3w9''@;'; put 'put ''MCwxMzc0ODMsMjgwLDEpLGFbMTQ0KygwfGFbKEE9YysxNnwwKT4+Ml0pPj4yXT1sLCgwfGRpKGMpKSE9KDB8YykmJihhWzE0NCsoMHxhWzE2KygwfGRpKGMpKT4+Ml0pPj4yXT1sKSxmPWwrMTcyfDAsMCE9KDB8KHA9MHxMaShjLDExMTIyNikpKSYmKGFbZj4+Ml09MCw5OTk9PSgwfHJFKGws''@;'; put 'put ''cCkpKT8oZj0wfFdHKGwsMSxwKSxhW20+PjJdPXAsYVttKzQ+PjJdPWYsJHIoMSwxMTEyMzMsbSksZj0tMSk6KHA9MHxhW2Y+PjJdKT8oc2MoMSksZnVuY3Rpb24gV29lKGwsYyl7bHw9MCxjfD0wO3ZhciBtLGssTSxmPTAscD0wLEE9MCx3PTAsYj0wO009bGUsbGU9bGUrMTZ8MCxtPU0rOHww''@;'; put 'put ''LEE9TSxmPTB8dnIoOTYpLGFbOCsoMHxhWyhrPWwrMTZ8MCk+PjJdKT4+Ml09ZiwoKGY9MHxMaShsLDEwMTIxMykpfHwwfChmPTB8RHUoMTAxMjIyKSkpJiYoYj0zKSwzPT0oMHxiKSYmVnQoMTAxMjM0LDB8ZiwxKSxmPTI1NSYoMHxmdW5jdGlvbiBZb2UobCl7dmFyIGMsZjtyZXR1cm4gZj1s''@;'; put 'put ''ZSxsZT1sZSsxNnwwLGM9ZiwwIT0oMHx5MChsPTB8QmEobHw9MCwwfHNpKGwsMCwxMDE4MDcsMCksMTAxODE1KSwxMDE4MjEpKSYmMCE9KDB8eTAobCwxMDE4MjkpKSYmMCE9KDB8eTAobCwxMDE4MzYpKSYmMCE9KDB8eTAobCwxMDE4MzkpKSYmMCE9KDB8eTAobCwxMDE4NTApKSYmMCE9KDB8''@;'; put 'put ''eTAobCwxMDE4NjEpKSYmMCE9KDB8eTAobCwxMDE4NzEpKT8wIT0oMHx5MChsLDEwMTg4MikpJiYwIT0oMHx5MChsLDEwMTg4OCkpPygwIT0oMHx5MChsLDEwMTgxNSkpJiYwIT0oMHx5MChsLDEwMTg5MykpJiYoYVtjPj4yXT1sLCRyKDAsMTAxODk4LGMpKSxsPTApOmw9MjpsPTEsbGU9Ziww''@;'; put 'put ''fGx9KGwpKSxmZVsxMTUrKDB8YVtrPj4yXSk+PjBdPWYsZj0wfExpKGwsMTAxMjQ1KSxhWzQ3MTMzXT1mLDA9PSgwfGYpJiYoYVs0NzEzM109YVs0NzEzMl0pLHA9K01sKGwsMHxzaShsLDAsMTAxMjU1LDApLDAsMCksX1thWzgrKDB8YVtrPj4yXSk+PjJdPj4zXT1wLGY9MHxMaShsLDEwMTI2''@;'; put 'put ''Myk7ZTpkb3tpZihmKXtzd2l0Y2goMHxmZVtmPj4wXSl7Y2FzZSA3NjppZighKDB8WmkoZiwxMDEyNzEpKSl7Zj0xO2JyZWFrIGV9YnJlYWs7Y2FzZSA2NjppZighKDB8WmkoZiwxMDEyNzQpKSl7Zj0yO2JyZWFrIGV9YnJlYWs7Y2FzZSA4MjpmPShmPTA9PSgwfFppKGYsMTAxMjc3KSkpPzM6''@;'; put 'put ''MDticmVhayBlO2RlZmF1bHQ6Zj0wO2JyZWFrIGV9Zj0wfWVsc2UgZj0wfXdoaWxlKDApO2FbMTE2KygwfGFbaz4+Ml0pPj4yXT1mPDwyfChjPDwyND4+MjQ9PTA/MDpmKSxwPStNbChsLDB8c2kobCwwLDEwMTI4MCwwKSwuMjUsLjAyKSxfW0E+PjNdPXAsYVsyNDgrKDB8YVtrPj4yXSk+PjJd''@;'; put 'put ''PX5+KChwKj03MikrKHA+PTA/LjU6LS41KSksKGY9MHx2MihsLDB8c2kobCwwLDEwMTI4OCwwKSwwKSk/KGFbbT4+Ml09QSwwfGlsKGYsMTAxMjA5LG0pPyhwPStfW0E+PjNdKTwuMDImJihfW0E+PjNdPS4wMixwPS4wMik6KF9bQT4+M109LjUscD0uNSksMHx0UyhmLDEwMTI5NikmJihmZVsy''@;'; put 'put ''NzYrKDB8YVtrPj4yXSk+PjBdPTEpKTooX1tBPj4zXT0uNSxwPS41KSxhWzI1MisoMHxhW2s+PjJdKT4+Ml09fn4oKHAqPTcyKSsocD49MD8uNTotLjUpKSxBPTI1NSYoMHxlcyhsLDB8c2kobCwwLDEwMTMwNCwwKSwwLDApKSxmZVsyNDMrKDB8YVtrPj4yXSk+PjBdPUEsQT0wfFNOKDB8djIo''@;'; put 'put ''bCwwfHNpKGwsMCwxMDEzMTQsMCksMCksMjA2NzYsMjA2OTIpLGFbMjQ0KygwfGFbaz4+Ml0pPj4yXT1BLGZ1bmN0aW9uIHVRKGwpe3ZhciBmLGM9MCxwPTA7Zj0wfExpKGx8PTAsMTAxNzY1KTtlOmRve2lmKDB8ZiYmKHA9MHxmZVtmPj4wXSxwPDwyND4+MjQpKXN3aXRjaChwPDwyND4+MjR8''@;'; put 'put ''MCl7Y2FzZSA5NzppZihwPDwyND4+MjQhPTk3fHwwfFppKGYsMTAxNzcxKSlicmVhayBlO2FbODQrKDB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdPTQ7YnJlYWsgZTtjYXNlIDk5OmlmKHA8PDI0Pj4yNCE9OTl8fDB8WmkoZiwxMDE3NzYpKWJyZWFrIGU7YVs4NCsoMHxhWzgrKDB8YVts''@;'; put 'put ''KzE2Pj4yXSk+PjJdKT4+Ml09MzticmVhayBlO2Nhc2UgMTAxOmlmKHA8PDI0Pj4yNCE9MTAxfHwwfFppKGYsMTAxNzg1KSlicmVhayBlO2FbODQrKDB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdPTU7YnJlYWsgZTtjYXNlIDEwMjppZihwPDwyND4+MjQhPTEwMnx8MHxaaShmLDEwMTc5''@;'; put 'put ''MikpYnJlYWsgZTthWzg0KygwfGFbOCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXT0yO2JyZWFrIGU7ZGVmYXVsdDppZighKChjPStrcChmKSk+MCkpYnJlYWsgZTthWzg0KyhsPTB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdPTEsX1tsKzE2Pj4zXT1jO2JyZWFrIGV9fXdoaWxlKDApfShs''@;'; put 'put ''KSxBPTB8Y1EobCwxMDEzMjQsNjQrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSl8MCksZmVbODArKGY9MHxhWzgrKDB8YVtrPj4yXSk+PjJdKT4+MF09QSxjUShsLDEwMTMyOSxmKzQ4fDApLGY9MHx0MSgwfExpKGwsMTAxMzM0KSksZmVbODIrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjBdPWYs''@;'; put 'put ''Zj0wfExpKGwsMTAxMzQxKTtkb3tpZihmKWY9OTA9PSgwfHIzKGYpKSYxLGI9Mjc7ZWxzZXtpZigwfChmPTB8TGkobCwxMDEzNDgpKSl7Zj0oMzJ8ZmVbZj4+MF0pPDwyND4+MjQ9PTEwOCYxLGI9Mjc7YnJlYWt9MHwoZj0wfExpKGwsMTAxMzYwKSkmJihmPTB8dDEoZiksYj0yNyl9fXdoaWxl''@;'; put 'put ''KDApOzI3PT0oMHxiKSYmKGZlWzgxKygwfGFbOCsoMHxhW2s+PjJdKT4+Ml0pPj4wXT1mKSxhWzQ3MTM1XT0wfFNOKDB8TGkobCwxMDEzNzApLDIwNzA4LDIwNzI0KSxmZVsxOTQ5NTRdPTB8dDEoMHxMaShsLDEwMTM4MikpLGFbNDcxMzhdPTAsYVs0NzEzOV09MCxfWzI0KygwfGFbOCsoMHxh''@;'; put 'put ''W2s+PjJdKT4+Ml0pPj4zXT0wLDMwPT0oMHwoYj0wIT0oMHwoZj0wfExpKGwsMTAxMzk0KSkpJiYwIT0oMHxmZVtmPj4wXSk/MzI6MzApKSYmMHwodz0wfExpKGwsMTAxMzk4KSkmJjB8ZmVbdz4+MF0mJihmPXcsYj0zMiksMzI9PSgwfGIpJiYocD0ra3AoZiksX1syNCsoMHxhWzgrKDB8YVtr''@;'; put 'put ''Pj4yXSk+PjJdKT4+M109cCksZmsobCksX1syMzI5NV09MWUzNyxhWzQ3MTQwXT0wfHNpKGwsMCwxMDE0MDksMCksYVs0NzE0M109MHxzaShsLDAsMTQxMDM0LDApLGFbNDcxNDRdPTB8c2kobCwwLDEwNTQ5NiwwKSxhWzQ3MTQ1XT0wfHNpKGwsMSwxNDEwNDgsMCksYVs0NzE0Nl09MHxzaShs''@;'; put 'put ''LDEsMTQxMTE2LDApLGFbNDcxNDddPTB8c2kobCwxLDEwODIzMCwwKSxhWzQ3MTQ4XT0wfHNpKGwsMSwxNDA4MjMsMCksYVs0NzE0OV09MHxzaShsLDEsMTAxNDE4LDApLGFbNDcxNTddPTB8c2kobCwxLDE0MTA4MiwwKSxhWzQ3MTUwXT0wfHNpKGwsMSwxMDE0MjgsMCksYVs0NzE1MV09MHxz''@;'; put 'put ''aShsLDEsMTAxNDM3LDApLGFbNDcxNTJdPTB8c2kobCwxLDEwMTQ0NiwwKSxiPTB8c2kobCwxLDEwODIyNCwwKSxhWzQ3MTU0XT1iLGJ8fChhWzQ3MTU0XT0wfHNpKGwsMSwxMDgyMjQsMTA1NDkzKSksYVs0NzE1NV09MHxzaShsLDEsMTAxNDU2LDApLGFbNDcxNThdPTB8c2kobCwxLDEwMTMw''@;'; put 'put ''NCwwKSxhWzQ3MTcyXT0wfHNpKGwsMSwxMDE0NjMsMCksYVs0NzE2MV09MHxzaShsLDEsMTAxNDA5LDApLGFbNDcxNTNdPTB8c2kobCwxLDEwNTQ5NiwwKSxhWzQ3MTU5XT0wfHNpKGwsMSwxNDEwNzYsMCksYVs0NzE2MF09MHxzaShsLDEsMTAxNDcyLDApLGFbNDcxNjNdPTB8c2kobCwxLDEw''@;'; put 'put ''MTQ4NCwwKSxhWzQ3MTYyXT0wfHNpKGwsMSwxMDEzNDgsMCksYVs0NzE2NF09MHxzaShsLDEsMTAxNDg5LDApLGFbNDcxNjVdPTB8c2kobCwxLDE0MTAyNCwwKSxhWzQ3MTY2XT0wfHNpKGwsMSwxMzcyOTcsMCksYVs0NzE1Nl09MHxzaShsLDEsMTAxNTAwLDApLGFbNDcxNjddPTB8c2kobCwx''@;'; put 'put ''LDEwMTUxMCwwKSxhWzQ3MTY4XT0wfHNpKGwsMSwxMDE1MTYsMCksYVs0NzE2OV09MHxzaShsLDEsMTAxNTIyLDApLGFbNDcxNzBdPTB8c2kobCwxLDEwMTUzMCwwKSxhWzQ3MTcxXT0wfHNpKGwsMSwxMDE1MzksMCksYVs0NzE3M109MHxzaShsLDEsMTQxMDM0LDApLGFbNDcxNzRdPTB8c2ko''@;'; put 'put ''bCwyLDEwMTU0MSwwKSxhWzQ3MTc2XT0wfHNpKGwsMiwxNDA4MjMsMCksYVs0NzE3N109MHxzaShsLDIsMTAxNDE4LDApLGFbNDcxNzldPTB8c2kobCwyLDEwMTQyOCwwKSxhWzQ3MTgwXT0wfHNpKGwsMiwxMDE0MzcsMCksYVs0NzE4MV09MHxzaShsLDIsMTAxNDQ2LDApLGFbNDcxODJdPTB8''@;'; put 'put ''c2kobCwyLDEwODIyNCwwKSxhWzQ3MTgzXT0wfHNpKGwsMiwxMDE0NTYsMCksYVs0NzE5Ml09MHxzaShsLDIsMTAxNTQ4LDApLGFbNDcxODRdPTB8c2kobCwyLDEwMTU1OSwwKSxhWzQ3MTk1XT0wfHNpKGwsMiwxMDE1NjMsMCksYVs0NzE5Nl09MHxzaShsLDIsMTAxNTczLDApLGFbNDcxOTdd''@;'; put 'put ''PTB8c2kobCwyLDEwMTU4MywwKSxhWzQ3MTk4XT0wfHNpKGwsMiwxMDE1OTMsMCksYVs0NzE5OV09MHxzaShsLDIsMTAxNjAzLDApLGFbNDcyMDBdPTB8c2kobCwyLDEwMTYxNywwKSxhWzQ3MjAxXT0wfHNpKGwsMiwxMDE2MzEsMCksYVs0NzIwMl09MHxzaShsLDIsMTAxNjQ2LDApLGFbNDcy''@;'; put 'put ''MDNdPTB8c2kobCwyLDEwMTY2MCwwKSxhWzQ3MTc1XT0wfHNpKGwsMiwxMDE2NzEsMCksYVs0NzE4N109MHxzaShsLDIsMTAxMzA0LDApLGFbNDcxODVdPTB8c2kobCwyLDE0MTA4MiwwKSxhWzQ3MTg2XT0wfHNpKGwsMiwxMDE2NzgsMCksYVs0NzE4OF09MHxzaShsLDIsMTAxNjg3LDApLGFb''@;'; put 'put ''NDcxODldPTB8c2kobCwyLDEwMTY5NywwKSxhWzQ3MTkwXT0wfHNpKGwsMiwxMDE1MTAsMCksYVs0NzE5MV09MHxzaShsLDIsMTAxNTIyLDApLGFbNDcyMDRdPTB8c2kobCwyLDEwMTcwOCwwKSxhWzQ3MjA1XT0wfHNpKGwsMiwxMDE3MTcsMCksYVs0NzIwNl09MHxzaShsLDIsMTAxNDYzLDAp''@;'; put 'put ''LGY9MHxmdW5jdGlvbiBOVChsKXt2YXIgcCxtLHcsYz0wLGY9MCxBPTA7cmV0dXJuIHc9bGUsbGU9bGUrMTZ8MCxtPXcrOHwwLHA9dywwIT0oMHwoYz0wfExpKGx8PTAsOTk3OTYpKSkmJjAhPSgwfGZlW2M+PjBdKXx8MCE9KDB8KGM9MHxMaShsLDk5ODA4KSkpJiYwIT0oMHxmZVtjPj4wXSk/''@;'; put 'put ''KGY9YyxBPTUpOmM9MCw1PT0oMHxBKSYmKChjPTB8R2goZiwwLDEyMCkpfHwoYVtwPj4yXT0wfHRpKGwpLCRyKDAsOTk4MTUscCksYVttPj4yXT1mLCRyKDMsOTk4NjgsbSkpKSxsZT13LDB8Y30obCksYVs4OCsoMHxhWzgrKDB8YVtrPj4yXSk+PjJdKT4+Ml09ZiwwfChmPTB8TGkobCwxNDEw''@;'; put 'put ''NjApKSYmMHxmZVtmPj4wXSYmKGw9MHxtMihmLGwpLGFbOTIrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjJdPWwpLGxlPU19KGMsMSZhW2FbbCsxODA+PjJdPj4yXSksZj0wfGFbOCsoMHxhW0E+PjJdKT4+Ml0sYVs4KygwfGFbMTYrKDB8ZGkoYykpPj4yXSk+PjJdPWYsZnVuY3Rpb24gb2xl''@;'; put 'put ''KCl7dmFyIGwsYyxmO2w9bGUsbGU9bGUrMzJ8MCxjPWwrMTZ8MCxhWyhmPWwpPj4yXT0wLGFbZis0Pj4yXT0wLGFbZis4Pj4yXT0wLGFbZisxMj4+Ml09MCxhW2M+PjJdPWFbZj4+Ml0sYVtjKzQ+PjJdPWFbZis0Pj4yXSxhW2MrOD4+Ml09YVtmKzg+PjJdLGFbYysxMj4+Ml09YVtmKzEyPj4y''@;'; put 'put ''XSxvSigwLGMpLGFbYz4+Ml09YVtmPj4yXSxhW2MrND4+Ml09YVtmKzQ+PjJdLGFbYys4Pj4yXT1hW2YrOD4+Ml0sYVtjKzEyPj4yXT1hW2YrMTI+PjJdLGZOKDAsYyksYVtjPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFb''@;'; put 'put ''ZisxMj4+Ml0sS1EoMCxjKSxsZT1sfSgpLDB8KGY9MHxhW3A+PjJdKSYmKENvWzEyNyZmXShjKSwwfCh3PTB8YVtwKzQ+PjJdKSkmJihhWzE0OCsoMHxhW0E+PjJdKT4+Ml09dyksc2MoMCksZj0wKTpmPS0xLGxlPWIsMHxmfShsLGMpKT9sPS0xOihmPTE2KyhsPTB8YVtjKzE2Pj4yXSl8MCww''@;'; put 'put ''fGZlWzgxKygwfGFbbCs4Pj4yXSk+PjBdPyhNPStfW2Y+PjNdLEQ9K19bbCs0MD4+M10sUj0rX1tsKzMyPj4zXSxhW0E+PjJdPX5+KChrPStfW2wrMjQ+PjNdKSsoaz49MD8uNTotLjUpKSxhW0ErND4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxhW0ErOD4+Ml09fn4oRCsoRD49MD8uNTotLjUp''@;'; put 'put ''KSxhW0ErMTI+PjJdPX5+KFIrKFI+PTA/LjU6LS41KSksb28obSw5ODg5OSxBKSk6KEQ9K19bbCsyND4+M10sTT0rX1tsKzMyPj4zXSxrPStfW2wrNDA+PjNdLGFbdz4+Ml09fn4oKFI9K19bZj4+M10pKyhSPj0wPy41Oi0uNSkpLGFbdys0Pj4yXT1+fihEKyhEPj0wPy41Oi0uNSkpLGFbdys4''@;'; put 'put ''Pj4yXT1+fihNKyhNPj0wPy41Oi0uNSkpLGFbdysxMj4+Ml09fn4oaysoaz49MD8uNTotLjUpKSxvbyhtLDk4ODk5LHcpKSxJNShjLDEwMjY3MSxtLDE5NTA1OSksbD0wKToobD0wfFdHKGwsMSxmKSxhW3A+PjJdPWYsYVtwKzQ+PjJdPWwsJHIoMSwxMTEyMzMscCksbD0tMSksbGU9YiwwfGx9''@;'; put 'put ''ZnVuY3Rpb24ga3JlKGwsYyxmLHAsbSl7cHw9MCxtfD0wO3ZhciB3LGssRCxBPTAsYj0wLE09MDtEPWxlLGxlPWxlKzE2fDAsdz1EKzh8MCxBPUQsYz0wfGFbNjArKGN8PTApPj4yXSxJVChsfD0wLGZ8PTApLGFbNTYrKGs9MHxhW2wrMTY0Pj4yXSk+PjJdPTB8azkoaywwfGFbays1Mj4+Ml0p''@;'; put 'put ''LDAhPSgwfGgwKGMsMTM3NDgzLDAsMSkpJiYwIT0oMHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdKXx8NjcxMDg4NjQmYVtrKzE1Mj4+Ml0/TT01OihYbSg5ODkxMSxBKSxjPS0xKTtkb3tpZig1PT0oMHxNKSl7aWYoMHxwJiYoYj0wfEYwKDQwOTYpLGFbcD4+Ml09YiwwfGIpKXthWyhBPWsrNDB8''@;'; put 'put ''MCk+PjJdPWIsYVtrKzQ0Pj4yXT00MDk2LGFbKGY9ays0OHwwKT4+Ml09MCxjPTB8ZzIobCxjKSxTOShrKSxjfHwoYVtwPj4yXT1hW0E+PjJdLGFbbT4+Ml09YVtmPj4yXSksc0YobCk7YnJlYWt9JHIoMSw5ODkzMix3KSxjPS0xfX13aGlsZSgwKTtyZXR1cm4gbGU9RCwwfGN9ZnVuY3Rpb24g''@;'; put 'put ''UlQobCxjKXtVOChsfD0wLDAsY3w9MCl9ZnVuY3Rpb24gUEEobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgSGUsVmUscWUscnQsV2Usa3QsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLGF0PTAsU3Q9''@;'; put 'put ''MDtrdD1sZSxsZT1sZSs0Mjg4fDAsV2U9a3QrOHwwLHJ0PWt0LGF0PTQsU3Q9MHxGMCg0MCksYVtTdD4+Ml09MCxIZT1rdCs0MTUyfDAsVmU9a3QrNDE0OHwwLHFlPWt0KzQxMjh8MCxiPWt0KzQxMTJ8MCxrPWt0KzE2fDAsTW49MCx3PTB8YTAoMjQsMHxsKSxtPU1uLE1uPTAsMCE9KDB8bSkm''@;'; put 'put ''MCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xO2U6ZG97aWYoMSE9KDB8QSkpe2lmKCF3KXthW2M+PjJdPTAsbT0wO2JyZWFrfWlmKE1uPTAsRD0wfEpzKDI5LDB8ZiwwfFZlLDB8SGUpLG09TW4sTW49MCwwIT0oMHxtKSYw''@;'; put 'put ''IT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxhdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpaWYoTW49MCxNPTB8YTAoMjMsNDApLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxhdCkpfHx6ZSgwfG0s''@;'; put 'put ''MHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpaWYoTW49MCxjdSg3LDB8cWUsMHxiLDB8aywyNCw4NSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSlpZihNbj0wLGY9''@;'; put 'put ''MHxhMCgyNSwwfGwpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxhdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe2Zvcih3PTB8YVsoYj1xZSsxNnwwKT4+Ml0sbT1mO207KXtpZihNbj0wLEZsKDB8dywwfG0sMCks''@;'; put 'put ''QT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbQT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8QSwwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7UmU9MCxMZT1iLE9lPU0sYmU9RCxtPURuLE09MTU7YnJlYWsgZX1pZihNbj0wLG09MHxGbCg4NiwwfGwsMHxtKSxBPU1u''@;'; put 'put ''LE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtBPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtSZT0wLExlPWIsT2U9TSxiZT1ELG09RG4sTT0xNTticmVhayBlfX1TdD0wfFBmKDE4ODA2OCwxLDB8U3QsMHxhdCksYXQ9RG4s''@;'; put 'put ''bT1Nbj0wLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpPyhSZT1NLExlPWIsT2U9TSxiZT1ELG09RG4sTT0xNSk6KFJlPU0sTGU9YixPZT1NLGJlPUQsbT0wLE09MTUpfWVsc2Ug''@;'; put 'put ''UmU9MCxMZT0wLE9lPU0sYmU9RCxtPURuLE09MTU7ZWxzZSBSZT0wLExlPTAsT2U9TSxiZT1ELG09RG4sTT0xNTtlbHNlIFJlPTAsTGU9MCxPZT1NLGJlPUQsbT1EbixNPTE1O2Vsc2UgUmU9MCxMZT0wLE9lPTAsYmU9RCxtPURuLE09MTV9ZWxzZSBSZT0wLExlPTAsT2U9MCxiZT0wLG09RG4s''@;'; put 'put ''TT0xNX13aGlsZSgwKTtkb3tpZigxNT09KDB8TSkpe2U6Zm9yKDs7KXt0OmRve2lmKG0pTT0xLGs9MCxEPVJlLGI9MCx3PU9lLGY9T2U7ZWxzZXtpZihNbj0wLGY9MHxhMCgyNSwwfGwpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxhdCkp''@;'; put 'put ''fHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYmU9cT1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1mb3IoZ2U9YmUrKDB8YVtWZT4+Ml0pfDAsaz0wLE09MCxiPTA7Zjspe2lmKE1uPTAsbT0wfEZsKDB8YVtMZT4+Ml0sMHxmLC0x''@;'; put 'put ''KSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygodz0wfGdpKDB8YVtBPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxBLDB8eG4pLERuPXhuKTp3PS0xLDE9PSgwfHcpKXttPURuLGJlPXE9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9aWYoMD09KDB8bSkm''@;'; put 'put ''JjM9PSgwfGZlWzExOSsoMHxhW2YrMTY+PjJdKT4+MF0pKXtpZihNKXc9TTtlbHNle2lmKE1uPTAsYVtydD4+Ml09YixKcygzMCwwfGdlLDEzNzM5NSwwfHJ0KSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxtLDB8eG4p''@;'; put 'put ''LERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPXE9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9aWYoTW49MCx3PTB8SnMoMzEsMHxsLDB8YmUsMSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfGF0''@;'; put 'put ''KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1xPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKE1uPTAsdGEoNTMsMHx3LDEzNzQ4MywyODAsMSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgw''@;'; put 'put ''fGFbbT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1xPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWFbUmUrKGI8PDIpPj4yXT13LGs9MSxiPWIrMXwwfWlmKE1uPTAsdGEoNTQsMHxsLDB8Ziww''@;'; put 'put ''fHcsMHxxZSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1xPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfX1lbHNl''@;'; put 'put ''IHc9TTtpZihNbj0wLGY9MHxGbCg4NiwwfGwsMHxmKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPXE9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1S''@;'; put 'put ''ZSxNPTE1O2NvbnRpbnVlIGV9TT13fWlmKE1uPTAsZj0wfGEwKDI1LDB8bCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1xPWJlLE9lPXBlPU9lLExl''@;'; put 'put ''PWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWZvcih3PTEwLEQ9UmUsUj1PZSxHPU9lLHBlPU9lOzspe2lmKCFmKXtNPTAsdz1HLGY9cGU7YnJlYWsgdH1pZihNbj0wLG09MHxGbCgwfGFbTGU+PjJdLDB8ZiwtMSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKE09MHxnaSgw''@;'; put 'put ''fGFbQT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8QSwwfHhuKSxEbj14bik6TT0tMSwxPT0oMHxNKSl7bT1EbixiZT1xPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKG0pTT1wZTtlbHNle2lmKE1uPTAsYVtXZT4+Ml09YixKcygzMCwwfGdlLDEzNzM5NSww''@;'; put 'put ''fFdlKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPXE9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9aWYoTW49MCxx''@;'; put 'put ''PTB8SnMoMzEsMHxsLDB8YmUsMSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1xPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250''@;'; put 'put ''aW51ZSBlfWlmKE1uPTAsdGEoNTMsMHxxLDEzNzQ4MywyODAsMSksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbQT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8QSwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7bT1EbixiZT1xPWJlLE9lPXBlPU9lLExlPWdlPUxl''@;'; put 'put ''LFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKE1uPTAsdGEoNTQsMHxsLDB8ZiwwfHEsMHxxZSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiZT1xPWJl''@;'; put 'put ''LE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtjb250aW51ZSBlfWlmKCgwfGIpPT0oMHx3KSl7aWYodz1iPDwxLE1uPTAsTT0wfEZsKDg3LDB8UixiPDwzfDApLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxhdCkpfHx6ZSgwfG0s''@;'; put 'put ''MHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYmU9cT1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWUgZX1tPU0sUj1NLEc9TSxBPU19ZWxzZSBtPUQsQT1wZTthW20rKGI8PDIpPj4yXT1xLEQ9bSxiPWIrMXwwLE09QX1pZihNbj0wLGY9MHxGbCg4Niww''@;'; put 'put ''fGwsMHxmKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGJlPXE9YmUsT2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1O2NvbnRpbnVlIGV9cGU9TX19''@;'; put 'put ''fXdoaWxlKDApO2lmKE1uPTAsc3MoMTA4LDB8cWUpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8U3QsMHxhdCkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpaWYoKDB8YmUpPT0oMHxIZSl8fChNbj0wLHNzKDEwNSwwfGJlKSxt''@;'; put 'put ''PU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfFN0LDB8YXQpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDEhPSgwfEEpKSl7aWYoIU0pe2lmKE1uPTAsbT0wfEZsKDg3LDB8ZixiPDwyfDApLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChm''@;'; put 'put ''PTB8Z2koMHxhW0E+PjJdLDB8U3QsMHxhdCkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe209RG4sYmU9cT1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTU7Y29udGludWV9TT01ODticmVha31mb3IoYVtjPj4yXT0wLG09MDshKCgwfG0pPj0oMHxiKSk7KXtp''@;'; put 'put ''ZihNbj0wLGEwKDI2LDB8YVtEKyhtPDwyKT4+Ml0pLEE9TW4sTW49MCwwIT0oMHxBKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW0E+PjJdLDB8U3QsMHxhdCkpfHx6ZSgwfEEsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe209RG4sYmU9cT1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJl''@;'; put 'put ''LE09MTU7Y29udGludWUgZX1tPW0rMXwwfWlmKE1uPTAsc3MoMTA1LDB8dyksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxTdCwwfGF0KSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSl7TT01NjticmVha31tPURuLGJlPXE9YmUs''@;'; put 'put ''T2U9cGU9T2UsTGU9Z2U9TGUsUmU9TT1SZSxNPTE1fWVsc2UgbT1EbixiZT1xPWJlLE9lPXBlPU9lLExlPWdlPUxlLFJlPU09UmUsTT0xNTtlbHNlIG09RG4sYmU9cT1iZSxPZT1wZT1PZSxMZT1nZT1MZSxSZT1NPVJlLE09MTV9aWYoNTY9PSgwfE0pKXttPTA7YnJlYWt9aWYoNTg9PSgwfE0p''@;'; put 'put ''KXthW2M+PjJdPWIsZmVbcD4+MF09azticmVha319fXdoaWxlKDApO3JldHVybiBGdCgwfFN0KSxsZT1rdCwwfG19ZnVuY3Rpb24gU3JlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbT0wO3JldHVybiAwIT0oMHwobHw9MCkpJiYwIT0oMHxmdW5jdGlvbiBINihsKXtsfD0wO3ZhciBjPTA7ZTpm''@;'; put 'put ''b3IoOzspe3N3aXRjaChjPWwsbD1sKzF8MCwoYz0wfGZlW2M+PjBdKTw8MjQ+PjI0KXtjYXNlIDk1OmNvbnRpbnVlIGU7Y2FzZSAwOmw9MTticmVhayBlfWlmKCEoMHxpdigyNTUmYykpKXtsPTA7YnJlYWt9fXJldHVybiAwfGx9KGwpKXx8KGw9OTg5ODgpLCgwfChwPTB8VW8obCkpKT49MTA0''@;'; put 'put ''PyhmPTB8UW4ocCsyNXwwKSk/bT02OmY9MDptPTYsNj09KDB8bSkmJihyZChmLGwpLGFbYz4+Ml09cCksMHxmfWZ1bmN0aW9uIGVXKGwsYyxmLHAsbSl7bHw9MCxwfD0wLG18PTAsYVsoY3w9MCk+PjJdPWZ8PTAsYVtjKzQ+PjJdPWYrNDA5NixhW2MrMTI+PjJdPTAsYVtjKzg+PjJdPTAsYVts''@;'; put 'put ''Pj4yXT1jLGFbbCs0Pj4yXT1jLGFbbCs4Pj4yXT1mLGFbbCsxMj4+Ml09cCxhW2wrMTY+PjJdPW19ZnVuY3Rpb24gdFcobCxjLGYscCl7bHw9MCxmfD0wO3ZhciBiLGssbT0wLEE9MCx3PTAsTT0wO25XKHB8PTAsY3w9MCksYj1wKzEyfDAsaz1wKzE2fDAsYz0wO2U6Zm9yKDtNPTB8RXJlKHAp''@;'; put 'put ''LE07KWZvcihjPWMrMXwwLG09MHxhW2I+PjJdLDB8bSYmR3NbNjMmbV0oTSxmKSx3PTB8TXMobCxNKTs7KXtpZighdyljb250aW51ZSBlOygwfChtPTB8YVsoMz09KDB8KEE9MyZhW3c+PjJdKSk/dzp3KzQ4fDApKzQwPj4yXSkpPT0oMHxNKSYmKG09MHxhWygyPT0oMHxBKT93OncrLTQ4fDAp''@;'; put 'put ''KzQwPj4yXSksMHxCaVsxMjcmYVtrPj4yXV0obSwtMSl8fG5XKHAsbSksdz0wfFZzKGwsdyxNKX1yZXR1cm4gMHxjfWZ1bmN0aW9uIE1yZShsKXt2YXIgYz0wO2ZvcihsPTB8YVsxMisoMHxhWyhsfD0wKT4+Ml0pPj4yXTtsOyljPTB8YVtsKzEyPj4yXSx6bWUobCksbD1jfWZ1bmN0aW9uIHpt''@;'; put 'put ''ZShsKXtGdCgwfGFbKGx8PTApPj4yXSksRnQobCl9ZnVuY3Rpb24gblcobCxjKXtjfD0wO3ZhciBtLEEsYixNLGY9MCxwPTAsdz0wLGs9MDtpZihNPWxlLGxlPWxlKzE2fDAsaz1NKzh8MCxtPU0sKDB8YVsoQT04KyhsfD0wKXwwKT4+Ml0pPT0oMHxhWzQrKGY9MHxhWyhiPWwrNHwwKT4+Ml0p''@;'; put 'put ''Pj4yXSkpe2Y9MHxhW2YrMTI+PjJdO2Rve2lmKGYpdz1mO2Vsc2V7aWYoKHA9MHxRbigxNikpfHwoJHIoMSw5ODk2OSxtKSx6ZSgxODgwNjgsMSkpLGFbcCs4Pj4yXT1hW2I+PjJdLGFbcCsxMj4+Ml09MCxmPTB8UW4oNGU2KSxhW3A+PjJdPWYsZil7YVtwKzQ+PjJdPWYrNGU2LGFbMTIrKDB8''@;'; put 'put ''YVtiPj4yXSk+PjJdPXAsdz1wO2JyZWFrfSRyKDEsOTg5NjksayksemUoMTg4MDY4LDEpfX13aGlsZSgwKTthW2I+PjJdPXcsYVtBPj4yXT1hW3c+PjJdfUJpWzEyNyZhW2wrMTY+PjJdXShjLDEpLGFbQT4+Ml09NCsoaz0wfGFbQT4+Ml0pLGFbaz4+Ml09YyxsZT1NfWZ1bmN0aW9uIEVyZShs''@;'; put 'put ''KXt2YXIgZixwLG0sYz0wLEE9MDtyZXR1cm4oMHwoYz0wfGFbKG09OCsobHw9MCl8MCk+PjJdKSk9PSgwfGFbKHA9MHxhWyhmPWwrNHwwKT4+Ml0pPj4yXSk/KDB8cCk9PSgwfGFbbD4+Ml0pP2M9MDooYVtmPj4yXT1jPTB8YVtwKzg+PjJdLGFbbT4+Ml09Yz0wfGFbYys0Pj4yXSxBPTQpOkE9''@;'; put 'put ''NCw0PT0oMHxBKSYmKGFbbT4+Ml09Yz1jKy00fDAsYz0wfGFbYz4+Ml0pLDB8Y31mdW5jdGlvbiByVyhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGJlLE9lLExlLFJlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLEhlPTAsVmU9MDtx''@;'; put 'put ''ZT1sZSxsZT1sZSs0MjcyfDAsUmU9cWUsSGU9NCxWZT0wfEYwKDQwKSxhW1ZlPj4yXT0wLGJlPXFlKzQxNDR8MCxPZT1xZSs0MTQwfDAsTGU9cWUrNDEyMHwwLHc9cWUrNDEwNHwwLGI9cWUrOHwwLE1uPTAsbT0wfGEwKDI0LDB8bCksQT1NbixNbj0wLDAhPSgwfEEpJjAhPSgwfHhuKT8oKHA9''@;'; put 'put ''MHxnaSgwfGFbQT4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8QSwwfHhuKSxEbj14bik6cD0tMTtlOmRve2lmKDEhPSgwfHApKWlmKG0paWYoTW49MCxNPTB8SnMoMjksMHxmLDB8T2UsMHxiZSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUp''@;'; put 'put ''LGZ8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSlpZihNbj0wLGs9MHxhMCgyMyw0MCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpLGZ8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSlpZihNbj0wLGN1''@;'; put 'put ''KDcsMHxMZSwwfHcsMHxiLDI0LDg1KSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPyhmPTB8Z2koMHxhW3A+PjJdLDB8VmUsMHxIZSksZnx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpKWlmKE1uPTAsbT0wfGEwKDI1LDB8bCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgw''@;'; put 'put ''fHhuKT8oZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpLGZ8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKSl7Zm9yKEE9MHxhWyh3PUxlKzE2fDApPj4yXSxwPW07cDspe2lmKE1uPTAsRmwoMHxBLDB8cCwwKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygobT0wfGdp''@;'; put 'put ''KDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTptPS0xLDE9PSgwfG0pKXtnZT13LHBlPWsscT1NLHA9RG4saz0xNDticmVhayBlfWlmKE1uPTAscD0wfEZsKDg2LDB8bCwwfHApLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW2Y+PjJd''@;'; put 'put ''LDB8VmUsMHxIZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe2dlPXcscGU9ayxxPU0scD1EbixrPTE0O2JyZWFrIGV9fVZlPTB8UGYoMTg4MDY4LDEsMHxWZSwwfEhlKSxIZT1EbixwPU1uPTAsTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW3A+PjJd''@;'; put 'put ''LDB8VmUsMHxIZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zik/KGdlPXcscGU9ayxxPU0scD1EbixrPTE0KTooZ2U9dyxwZT1rLHE9TSxwPTAsaz0xNCl9ZWxzZSBnZT0wLHBlPWsscT1NLHA9RG4saz0xNDtlbHNlIGdlPTAscGU9ayxxPU0scD1EbixrPTE0O2Vsc2UgZ2U9''@;'; put 'put ''MCxwZT1rLHE9TSxwPURuLGs9MTQ7ZWxzZSBnZT0wLHBlPTAscT1NLHA9RG4saz0xNDtlbHNlIGY9MCxwPTA7ZWxzZSBnZT0wLHBlPTAscT0wLHA9RG4saz0xNH13aGlsZSgwKTtlOmRve2lmKDE0PT0oMHxrKSl7dDpmb3IoOzspe2lmKDB8cCl7aWYoTW49MCxzcygxMDgsMHxMZSkscD1NbixN''@;'; put 'put ''bj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbcD4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSl7cD1EbixxPVI9cSxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZX1pZihNbj0wLHNzKDEwNSwwfHBlKSxwPU1uLE1uPTAsMCE9''@;'; put 'put ''KDB8cCkmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtwPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtwPURuLHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlfWlmKCgwfHEpPT0oMHxiZSkpe2Y9MCxwPTA7YnJlYWsgZX1pZihNbj0w''@;'; put 'put ''LHNzKDEwNSwwfHEpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW3A+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMT09KDB8Zikpe3A9RG4scT1SPXEscGU9Rz1wZSxnZT1rPWdlLGs9MTQ7Y29udGludWV9az0xOTticmVha31pZihN''@;'; put 'put ''bj0wLG09MHxhMCgyNSwwfGwpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW3A+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfHAsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8Zikpe2ZvcihHPXErKDB8YVtPZT4+Ml0pfDAsdz0xMCxNPXBlLHA9MCxrPXBlLFI9cGU7bTsp''@;'; put 'put ''e2lmKE1uPTAsZj0wfEZsKDB8YVtnZT4+Ml0sMHxtLC0xKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygoYj0wfGdpKDB8YVtBPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxBLDB8eG4pLERuPXhuKTpiPS0xLDE9PSgwfGIpKXtwPURuLHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2Nv''@;'; put 'put ''bnRpbnVlIHR9aWYoZiliPVI7ZWxzZXtpZihNbj0wLGFbUmU+PjJdPXAsSnMoMzAsMHxHLDEzNzM5NSwwfFJlKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURu''@;'; put 'put ''LHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9aWYoTW49MCxEPTB8SnMoMzEsMHxsLDB8cSwxKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtw''@;'; put 'put ''PURuLHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9aWYoTW49MCx0YSg1MywwfEQsMTM3NDgzLDI4MCwxKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgw''@;'; put 'put ''fEEpKXtwPURuLHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9aWYoTW49MCx0YSg1NCwwfGwsMHxtLDB8RCwwfExlKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0x''@;'; put 'put ''LDE9PSgwfEEpKXtwPURuLHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9aWYoKDB8cCk9PSgwfHcpKXtpZih3PXA8PDEsTW49MCxiPTB8RmwoODcsMHxrLHA8PDN8MCksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbZj4+Ml0sMHxWZSwwfEhl''@;'; put 'put ''KSl8fHplKDB8ZiwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7cD1EbixxPVI9cSxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtjb250aW51ZSB0fUE9YixrPWIsZj1ifWVsc2UgQT1NLGY9UjthW0ErKHA8PDIpPj4yXT1ELHA9cCsxfDAsTT1BLGI9Zn1pZihNbj0wLG09MHxGbCg4NiwwfGwsMHxt''@;'; put 'put ''KSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVtmPj4yXSwwfFZlLDB8SGUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXtwPURuLHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0O2NvbnRpbnVlIHR9Uj1ifWlmKE1uPTAsc3MoMTA4LDB8TGUp''@;'; put 'put ''LGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW2Y+PjJdLDB8VmUsMHxIZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOm09LTEsMSE9KDB8bSkpaWYoTW49MCxmPTB8RmwoODcsMHxSLHA8PDJ8MCksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgw''@;'; put 'put ''fGFbbT4+Ml0sMHxWZSwwfEhlKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSl7aWYoKDB8cSk9PSgwfGJlKSlicmVhayBlO2lmKE1uPTAsc3MoMTA1LDB8cSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxWZSwwfEhlKSl8fHpl''@;'; put 'put ''KDB8bSwwfHhuKSxEbj14bik6QT0tMSwxIT0oMHxBKSl7az0zOTticmVha31wPURuLHE9Uj1xLHBlPUc9cGUsZ2U9az1nZSxrPTE0fWVsc2UgcD1EbixxPVI9cSxwZT1HPXBlLGdlPWs9Z2Usaz0xNDtlbHNlIHA9RG4scT1SPXEscGU9Rz1wZSxnZT1rPWdlLGs9MTR9ZWxzZSBwPURuLHE9Uj1x''@;'; put 'put ''LHBlPUc9cGUsZ2U9az1nZSxrPTE0fWlmKDE5PT0oMHxrKSl7Zj0wLHA9MDticmVha31pZigzOT09KDB8aykpYnJlYWt9fXdoaWxlKDApO3JldHVybiBhW2M+PjJdPXAsRnQoMHxWZSksbGU9cWUsMHxmfWZ1bmN0aW9uIHhyZShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTAsbT0w''@;'; put 'put ''fER0KGx8PTApO207KXtmb3IocD0wfHcwKGMsbSk7cDspMHxZbihsLDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSwwKSYmKFpkKGwscCwxKSxmPWYrMXwwKSxwPTB8UzAoYyxwKTttPTB8enQobCxtKX1yZXR1cm4gMHxmfWZ1bmN0aW9uIFRyZShsKXtyZXR1cm4obD0w''@;'; put 'put ''fGFvKGx8PTAsOTg5OTMsMCkpPzB8YVtsKzg+PjJdOihQcig5ODk5OCw5OTAwMSw1MjksOTkwMTApLDApfWZ1bmN0aW9uIEdtZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBHLHEsYmUsT2UscD0wLEE9MCx3PTAsaz0wLE09MCxEPTAsUj0wLExlPTAsUmU9MDtpZihPZT1sZSxsZT1sZSs0MzIwfDAs''@;'; put 'put ''cT1PZSxiZT1PZSs0MTg0fDAsRz1PZSs0MTYwfDAscD1PZSs0MHwwLDB8R28obHw9MCkpe2ZvcigkaShsLDAsOTkwMTksLTEyLDApLCRpKGwsMSw5OTAzMSwxNiwwKSxSPTB8U3JlKGYscCxiZSksaz0wfGZ1bmN0aW9uIFdtZShsKXtsfD0wO3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTA7Zm9y''@;'; put 'put ''KHc9bGUsbGU9bGUrMTZ8MCxmZVsoQT13KT4+MF09MHxmZVsxODU5Nl0sZmVbQSsxPj4wXT0wfGZlWzE4NTk3XSxmZVtBKzI+PjBdPTB8ZmVbMTg1OThdLGZlW0ErMz4+MF09MHxmZVsxODU5OV0sTHJlKEE9MHxvYyg5OTEyMCxBLDApLGwpLGM9MHxEdChsKTtjOykwfGFbMTIrKDB8YW8oYyw5''@;'; put 'put ''OTAzMSwwKSk+PjJdfHwoaDAobT0wfEdyKEEsMHx0aShjKSwxKSw5OTAzMSwxNiwxKSxhWzEyKygwfGFbbSsxNj4+Ml0pPj4yXT1jLGFbMTIrKDB8YW8oYyw5OTAzMSwwKSk+PjJdPW0pLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihwPTB8YVsxMisoMHxhbyhmLDk5MDMxLDAp''@;'; put 'put ''KT4+Ml0sYz0wfHcwKGwsZik7Yzspe209MHxhWzEyKygwfGFvKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSw5OTAzMSwwKSk+PjJdO2Rve2lmKCgwfG0pIT0oMHxwKSl7aWYobT4+PjA+cD4+PjApe0thKEEscCxtLDAsMSk7YnJlYWt9S2EoQSxtLHAsMCwxKTticmVh''@;'; put 'put ''a319d2hpbGUoMCk7Yz0wfFMwKGwsYyl9Zj0wfHp0KGwsZil9cmV0dXJuIGxlPXcsMHxBfShsKSxNPTB8UW4oKDB8R28oaykpPDwyKSxlVyhHLE9lKzQxNDR8MCxPZSs0OHwwLDI0LDg4KSxBPTB8RHQoayksRD1HKzE2fDAsdz1SKygwfGFbcD4+Ml0pfDAsZj0wO0E7KTB8QmlbMTI3JmFbRD4+''@;'; put 'put ''Ml1dKEEsLTEpfHwoYVtxPj4yXT1mLG9vKHcsOTk5MzMscSksTGU9MHxwcyhrLFIsMSksaDAoUmU9MHxwcyhsLFIsMSksOTkwMTksMTIsMCksZmVbOCsoMHxhbyhSZSw5OTAxOSwwKSk+PjBdPTEscD0wfHRXKGssQSxMZSxHKSxZbWUoTGUsUmUpLHhDKFJlKSxVbWUobCxSZSksYVtNKyhmPDwy''@;'; put 'put ''KT4+Ml09UmUsb2koayxMZSksZj1mKzF8MCksQT0wfHp0KGssQSk7QzEoayksbDIobCwwLDk5MDE5KSxsMihsLDEsOTkwMzEpLE1yZShHKSxwPTB8VjAoTSxmPDwyKSwoMHxSKSE9KDB8YmUpJiZGdChSKX1lbHNlIHA9MCxmPTA7cmV0dXJuIGFbYz4+Ml09ZixsZT1PZSwwfHB9ZnVuY3Rpb24g''@;'; put 'put ''WW1lKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7Zm9yKHA9MHxEdChsfD0wKTtwOyl7bT0wfGFbMTIrKDB8YVtwKzE2Pj4yXSk+PjJdO2U6ZG97aWYoMT09KDMmYVttPj4yXXwwKSlZbihjLG0sMSk7ZWxzZSBmb3IoZj0wfER0KG0pOzspe2lmKCFmKWJyZWFrIGU7WW4oYyxmLDEpLGY9MHx6''@;'; put 'put ''dChtLGYpfX13aGlsZSgwKTtwPTB8enQobCxwKX19ZnVuY3Rpb24geEMobCl7cmV0dXJuIDB8eHJlKGx8PTAsMHxhW2wrNjA+PjJdKX1mdW5jdGlvbiBVbWUobCxjKXtEcmUobHw9MCxjfD0wLDApfWZ1bmN0aW9uIERyZShsLGMsZil7Y3w9MDt2YXIgQSxtPTA7Zm9yKEE9MD09KDB8KGZ8PTAp''@;'; put 'put ''KSxsPTB8d3MobHw9MCk7bDspMD09KDB8ZmVbOCsoMHxhbyhsLDk5MDE5LDApKT4+MF0pJiYwfChtPTB8UW1lKGwsYyxmKSkmJkRyZShsLG0sMSYoQT8wPT0oMHxzMigwfHRpKGwpLDEwODAwNiw3KSk6MSkpLGw9MHxFcyhsKX1mdW5jdGlvbiBRbWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0w''@;'; put 'put ''LG09MCxBPTA7Zm9yKHA9MCxBPTB8RHQobHw9MCk7QTspKG09MHxHcihjLDB8dGkoQSksMCkpJiYocHx8KHA9MHxwcyhjLDB8dGkobCksMSkpLFluKHAsbSwxKSksQT0wfHp0KGwsQSk7cmV0dXJuIDAhPSgwfGYpJjA9PSgwfHApJiYocD0wfHBzKGMsMHx0aShsKSwxKSksMHxwJiYoeHJlKHAs''@;'; put 'put ''bCksUjYobCxwKSwwPT0oMHxzMigwfHRpKHApLDEwODAwNiw3KSkpJiYoYVs4KygwfGgwKHAsOTg5OTMsMTIsMCkpPj4yXT1sKSwwfHB9ZnVuY3Rpb24gTHJlKGwsYyl7bHw9MDt2YXIgcCxBLHcsZj0wLG09MCxiPTAsaz0wLE09MDtmb3Iodz1sZSxsZT1sZSsxNnwwLEE9dyxmPTB8d3MoY3w9''@;'; put 'put ''MCkscD0wfGFbMTU3MTJdO2Y7KXtlOmRve2lmKDB8czIoMHx0aShmKSwxMDgwMDYsNykpTHJlKGwsZik7ZWxzZSBmb3IobT0wfEdyKGwsMHx0aShmKSwxKSxoMChtLDk5MDMxLDE2LDEpLGFbMTIrKDB8YVttKzE2Pj4yXSk+PjJdPWYsYz0wfER0KGYpOzspe2lmKCFjKWJyZWFrIGU7MHxhWzEy''@;'; put 'put ''KygwfGFvKGMsOTkwMzEsMCkpPj4yXSYmKE09MHx0aShjKSxrPTB8dGkoZiksYj0wfHRpKDB8YVsxMisoMHxhbyhjLDk5MDMxLDApKT4+Ml0pLGFbQT4+Ml09TSxhW0ErND4+Ml09ayxhW0ErOD4+Ml09YixUMChwLDk5MTIzLEEpKSxhWzEyKygwfGFvKGMsOTkwMzEsMCkpPj4yXT1tLGM9MHx6''@;'; put 'put ''dChmLGMpfX13aGlsZSgwKTtmPTB8RXMoZil9bGU9d31mdW5jdGlvbiBvNyhsLGMsZil7Znw9MDt2YXIgQSx3LGIscD0wLG09MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO2s9fn4oKEc9K19bKGx8PTApPj4zXSkrKEc+PTA/LjU6LS41KSksbD1+figoRz0rX1tsKzg+PjNdKSsoRz49MD8uNTotLjUp''@;'; put 'put ''KSxiPSgoMHwoRD0odz1+figoRz0rX1soY3w9MCk+PjNdKSsoRz49MD8uNTotLjUpKSkta3wwKSk+LTE/RDowLUR8MCk8PDEsRD1EPj4zMXwxLE09KCgwfChSPShBPX5+KChHPStfW2MrOD4+M10pKyhHPj0wPy41Oi0uNSkpKS1sfDApKT4tMT9SOjAtUnwwKTw8MSxSPVI+PjMxfDE7ZTpkb3tp''@;'; put 'put ''ZigoMHxiKT4oMHxNKSlmb3IobT0wLWJ8MCxwPU0tKGI+PjEpfDAsYz1rOzspe2lmKGU0KGYsYyxsKSwoMHxjKT09KDB8dykpYnJlYWsgZTtwPXArTSsoKGs9KDB8cCk+LTEpP206MCl8MCxjPWMrRHwwLGw9KGs/UjowKStsfDB9ZWxzZSBmb3IobT0wLU18MCxwPWssYz1iLShNPj4xKXwwOzsp''@;'; put 'put ''e2lmKGU0KGYscCxsKSwoMHxsKT09KDB8QSkpYnJlYWsgZTtwPSgoTT0oMHxjKT4tMSk/RDowKStwfDAsYz1jK2IrKE0/bTowKXwwLGw9bCtSfDB9fXdoaWxlKDApfWZ1bmN0aW9uIFVkKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIGssTSxSLG09MCxBPTAsdz0wLGI9MCxEPTA7''@;'; put 'put ''Uj1sZSxsZT1sZSsxNnwwLE09UixrPVIrNHwwO2Rve2lmKCgwfGwpPDEpZj0wO2Vsc2V7aWYoKDB8YVsobT1wKzE2fDApPj4yXSk+Pj4wPDQpe2Y9MHxKbWUobCxjLGYscCk7YnJlYWt9Zm9yKEQ9MHxRbihsPDw1KSxmPTA7KDB8ZikhPSgwfGwpOylpZyhBPTB8YVtjKyhmPDwyKT4+Ml0pLGFb''@;'; put 'put ''KHc9RCsoZjw8NSl8MCk+PjJdPWFbKEE9MTYrKDB8YVtBKzE2Pj4yXSl8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0sYVt3KzE2Pj4yXT1hW0ErMTY+PjJdLGFbdysyMD4+Ml09YVtBKzIwPj4yXSxhW3crMjQ+PjJd''@;'; put 'put ''PWFbQSsyND4+Ml0sYVt3KzI4Pj4yXT1hW0ErMjg+PjJdLGY9ZisxfDA7aWYoND09KDB8YVttPj4yXSkpe3c9cCsyOHwwO2U6ZG97aWYoMiZhW3c+PjJdfDApZm9yKG09cCsyNHwwLGFbbT4+Ml09MHx2cihsPDwyKSxmPTA7Oyl7aWYoKDB8Zik9PSgwfGwpKWJyZWFrIGU7MHwoQT0wfExpKDB8''@;'; put 'put ''YVtjKyhmPDwyKT4+Ml0sOTkxOTApKSYmKGFbTT4+Ml09aywoQT0oMHxpbChBLDEzNzM5NSxNKSk+MCkmKDB8KGI9MHxhW2s+PjJdKSk+LTEpJiYoYVsoMHxhW20+PjJdKSsoZjw8Mik+PjJdPWIpLGY9ZisxfDB9fXdoaWxlKDApO2Y9MHxpVyhsLEQscCksMiZhW3c+PjJdJiZGdCgwfGFbcCsy''@;'; put 'put ''ND4+Ml0pfWVsc2UgZj0wO0Z0KEQpfX13aGlsZSgwKTtyZXR1cm4gbGU9UiwwfGZ9ZnVuY3Rpb24gSm1lKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBxZSxydCxzdCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsTGU9MCxSZT0wLEhl''@;'; put 'put ''PTAsVmU9MCxXZT0wLGF0PTAsRXQ9MDtpZihzdD1sZSxsZT1sZSsxNDR8MCxydD1zdCsxMzZ8MCxxZT1zdCs2NHwwLGJlPXN0LGdlPXN0KzEyMHwwLFdlPXN0Kzk2fDAsYXQ9MHxhWzIwKyhwfD0wKT4+Ml0sYVsoUmU9c3QrMTA0fDApPj4yXT0wLGFbUmUrND4+Ml09MCxhW1JlKzg+PjJdPTAs''@;'; put 'put ''YVtSZSsxMj4+Ml09MCwoMHxsKT49MSl7Zm9yKEQ9MD09KDB8YXQpLFI9Z2UrNHwwLEc9Z2UrOHwwLHE9Z2UrMTJ8MCxIZT1SZSs0fDAsTGU9UmUrOHwwLFZlPVJlKzEyfDAsTT0wLG09MDsoMHxNKSE9KDB8bCk7KWlnKHBlPTB8YVtjKyhNPDwyKT4+Ml0pLCFEJiYwIT0oMHxmZVthdCtNPj4w''@;'; put 'put ''XSkmJihhW2dlPj4yXT1BPX5+KChFdD0rX1sxNisoaz0wfGFbcGUrMTY+PjJdKT4+M10pKyhFdD49MD8uNTotLjUpKSxhW1I+PjJdPXc9fn4oKEV0PStfW2srMjQ+PjNdKSsoRXQ+PTA/LjU6LS41KSksYVtHPj4yXT1iPX5+KChFdD0rX1trKzMyPj4zXSkrKEV0Pj0wPy41Oi0uNSkpLGFbcT4+''@;'; put 'put ''Ml09az1+figoRXQ9K19bays0MD4+M10pKyhFdD49MD8uNTotLjUpKSxtPyhhW1JlPj4yXT1hWygoMHxhW1JlPj4yXSk+KDB8QSk/Z2U6UmUpPj4yXSxhW0hlPj4yXT1hWygoMHxhW0hlPj4yXSk+KDB8dyk/Z2U6UmUpKzQ+PjJdLGFbTGU+PjJdPWFbKCgwfGFbTGU+PjJdKTwoMHxiKT9nZTpS''@;'; put 'put ''ZSkrOD4+Ml0sYVtWZT4+Ml09YVsoKDB8YVtWZT4+Ml0pPCgwfGspP2dlOlJlKSsxMj4+Ml0pOihhW1JlPj4yXT1hW2dlPj4yXSxhW1JlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtSZSs4Pj4yXT1hW2dlKzg+PjJdLGFbUmUrMTI+PjJdPWFbZ2UrMTI+PjJdKSxtPW0rMXwwKSxNPU0rMXwwO2ZvcihH''@;'; put 'put ''PTB8UW4obDw8NSksbT0wOygwfG0pIT0oMHxsKTspYVsoYmU9RysobTw8NSl8MCk+PjJdPWFbKGdlPTE2KygwfGFbMTYrKDB8YVtjKyhtPDwyKT4+Ml0pPj4yXSl8MCk+PjJdLGFbYmUrND4+Ml09YVtnZSs0Pj4yXSxhW2JlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtnZSsxMj4+''@;'; put 'put ''Ml0sYVtiZSsxNj4+Ml09YVtnZSsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtnZSsyMD4+Ml0sYVtiZSsyND4+Ml09YVtnZSsyND4+Ml0sYVtiZSsyOD4+Ml09YVtnZSsyOD4+Ml0sbT1tKzF8MDtpZigoMHwoUj0wfEJUKGwsRywwfGFbKEQ9cCs4fDApPj4yXSkpKT49MSl7Zm9yKChNPTAhPSgwfGF0''@;'; put 'put ''KSk/KEE9KCgwfGFbTGU+PjJdKSsoMHxhW1JlPj4yXSl8MCkvMnwwLG09KCgwfGFbVmU+PjJdKSsoMHxhW0hlPj4yXSl8MCkvMnwwKTooQT0wLG09MCksYVtXZSs0Pj4yXT1tLGFbV2U+PjJdPUEsaz0wfHZyKGw8PDQpLGI9cCsxNnwwLG09MDshKCgwfG0pPj0oMHxsKSk7KUE9MHxhW2MrKG08''@;'; put 'put ''PDIpPj4yXSx3PWsrKG08PDQpfDAsYVtrKyhtPDw0KSsxMj4+Ml09bSwzPT0oMHxhW2I+PjJdKT8oUmU9MTYrKDB8YVtBKzE2Pj4yXSl8MCxIZT0wfGFbRD4+Ml0sVmU9MHx0aShBKSxhW3FlPj4yXT1hW1JlPj4yXSxhW3FlKzQ+PjJdPWFbUmUrND4+Ml0sYVtxZSs4Pj4yXT1hW1JlKzg+PjJd''@;'; put 'put ''LGFbcWUrMTI+PjJdPWFbUmUrMTI+PjJdLGFbcWUrMTY+PjJdPWFbUmUrMTY+PjJdLGFbcWUrMjA+PjJdPWFbUmUrMjA+PjJdLGFbcWUrMjQ+PjJdPWFbUmUrMjQ+PjJdLGFbcWUrMjg+PjJdPWFbUmUrMjg+PjJdLGFbcnQ+PjJdPWFbV2U+PjJdLGFbcnQrND4+Ml09YVtXZSs0Pj4yXSxvVyhx''@;'; put 'put ''ZSx3LFIsSGUscnQpKTooYVtydD4+Ml09YVtXZT4+Ml0sYVtydCs0Pj4yXT1hW1dlKzQ+PjJdLFJyZShmLEEsdyxSLHAscnQpKSxtPW0rMXwwO2Zvcih3PTB8dnIobDw8MiksbT0wOyEoKDB8bSk+PSgwfGwpKTspYVt3KyhtPDwyKT4+Ml09aysobTw8NCksbT1tKzF8MDt4MSh3LGwsNCw4OSks''@;'; put 'put ''Yj0wfHg3KCksbT0wfHZyKGw8PDMpO3Q6ZG97aWYoTSl7Zm9yKEE9MDs7KXtpZigoMHxBKT49KDB8bCkpe0E9MDticmVha30wfGZlW2F0K0E+PjBdJiYocD1tKyhhWzEyKyhmPTB8YVt3KyhBPDwyKT4+Ml0pPj4yXTw8Myl8MCxhW3J0Pj4yXT1hW1dlPj4yXSxhW3J0KzQ+PjJdPWFbV2UrND4+''@;'; put 'put ''Ml0sbFcoZixiLHAscnQpKSxBPUErMXwwfWZvcig7Oyl7aWYoKDB8QSk+PSgwfGwpKWJyZWFrIHQ7MHxmZVthdCtBPj4wXXx8ZEYoQSxXZT0wfGFbdysoQTw8Mik+PjJdLGIsbSsoYVtXZSsxMj4+Ml08PDMpfDAsUiwwfGFbRD4+Ml0sRyksQT1BKzF8MH19ZWxzZSBmb3IoQT0wOzspe2lmKCgw''@;'; put 'put ''fEEpPj0oMHxsKSlicmVhayB0O2RGKEEsYXQ9MHxhW3crKEE8PDIpPj4yXSxiLG0rKGFbYXQrMTI+PjJdPDwzKXwwLFIsMHxhW0Q+PjJdLEcpLEE9QSsxfDB9fXdoaWxlKDApO2ZvcihGdCh3KSxBPTA7ISgoMHxBKT49KDB8bCkpOylGdCgwfGFbaysoQTw8NCkrND4+Ml0pLEE9QSsxfDA7RnQo''@;'; put 'put ''aykseXkoYiksRnQoRyl9ZWxzZSBtPTB9ZWxzZSBtPTA7cmV0dXJuIGxlPXN0LDB8bX1mdW5jdGlvbiBpVyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBwZSxnZSxiZSxPZSxMZSxIZSxWZSxxZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLFJlPTA7cWU9bGUsbGU9''@;'; put 'put ''bGUrMTZ8MCxBPXFlLEhlPTB8dnIoKGx8PTApPDwzKSxWZT1mKzI4fDAscD0oMHwobT0wfGFbZis0Pj4yXSkpPjA7ZG97aWYoMSZhW1ZlPj4yXSl7aWYocCl7az0wLFJlPW0sbT0obCstMSttfDApLygwfG0pfDA7YnJlYWt9az0wLFJlPW09fn4rSXUoKyArRDAoKyArKDB8bCkpKSxtPShsKy0x''@;'; put 'put ''K218MCkvKDB8bSl8MDticmVha31pZihwKXtrPTEsUmU9KGwrLTErbXwwKS8oMHxtKXwwO2JyZWFrfWs9MSxSZT0obCstMSsobT1+fitJdSgrICtEMCgrICsoMHxsKSkpKXwwKS8oMHxtKXwwO2JyZWFrfXdoaWxlKDApO2ZvcihiZT0wfHZyKDgrKG08PDMpfDApLE9lPTB8dnIoOCsoUmU8PDMp''@;'; put 'put ''fDApLGI9Zis4fDAscD0wLEE9TGU9MHx2cigyNCpsfDApOyEoKDB8cCk+PSgwfGwpKTspRz0rX1tjKyhwPDw1KSs4Pj4zXSxSPStfW2MrKHA8PDUpKzI0Pj4zXSxfW0E+PjNdPStfW2MrKHA8PDUpKzE2Pj4zXS0rX1tjKyhwPDw1KT4+M10rKHE9KygoMHxhW2I+PjJdKT4+PjApKSxfW0ErOD4+''@;'; put 'put ''M109Ui1HK3EsYVtBKzE2Pj4yXT1wLHA9cCsxfDAsQT1BKzI0fDA7Zm9yKGdlPTB8dnIobDw8MikscD0wOyEoKDB8cCk+PSgwfGwpKTspYVtnZSsocDw8Mik+PjJdPUxlKygyNCpwfDApLHA9cCsxfDA7Zm9yKChwPTB8YVtmKzI0Pj4yXSk/KGFbNDcwNTZdPXAseDEoZ2UsbCw0LDkwKSk6NjQm''@;'; put 'put ''YVtWZT4+Ml18fHgxKGdlLGwsNCw5MSkscGU9MD09KDB8aykscD0wLEE9MCxiPTA7Oyl7aWYoKDB8Yik+PSgwfGwpKXt3PTAscD0wO2JyZWFrfV9bKGY9YmUrKEE8PDMpfDApPj4zXT0ocT0rX1tmPj4zXSk+KEc9K19bKGs9MHxhW2dlKyhiPDwyKT4+Ml0pPj4zXSk/cTpHLF9bKGY9T2UrKHA8''@;'; put 'put ''PDMpfDApPj4zXT0oRz0rX1tmPj4zXSk+KHE9K19bays4Pj4zXSk/RzpxLHBlPyhwPShmPSgwfChwPXArMXwwKSk9PSgwfFJlKSk/MDpwLEE9QSsoMSZmKXwwKToocD1wKygxJihmPSgwfChBPUErMXwwKSk9PSgwfG0pKSl8MCxBPWY/MDpBKSxiPWIrMXwwfWZvcig7Oyl7aWYoKDB8cCk+KDB8''@;'; put 'put ''bSkpe3c9MCxwPVJlO2JyZWFrfXE9K19bKGY9YmUrKHA8PDMpfDApPj4zXSxfW2Y+PjNdPXcsdz1xK3cscD1wKzF8MH1mb3IoOyEoKDB8cCk8PTApOylxPStfW09lKygoZj1wKy0xfDApPDwzKT4+M10sX1tPZSsocDw8Myk+PjNdPXcsdz1xK3cscD1mO2ZvcihfW09lPj4zXT13LHA9MCxBPTAs''@;'; put 'put ''Zj0wOyEoKDB8Zik+PSgwfGwpKTspe009LSh3PStfW2MrKChrPTB8YVsxNisoMHxhW2dlKyhmPDwyKT4+Ml0pPj4yXSk8PDUpPj4zXSkscT0tKEc9K19bYysoazw8NSkrOD4+M10pLEQ9K19bYysoazw8NSkrMTY+PjNdLFI9K19bYysoazw8NSkrMjQ+PjNdLGI9MHxhW1ZlPj4yXTtkb3tpZigh''@;'; put 'put ''KDQmYikpe2lmKDgmYil7dz13LUQrICtfW2JlKyhBKzE8PDMpPj4zXTticmVha313PS41KihNLUQrICtfW2JlKyhBPDwzKT4+M10rICtfW2JlKyhBKzE8PDMpPj4zXSk7YnJlYWt9dz0rX1tiZSsoQTw8Myk+PjNdfXdoaWxlKDApO2FbSGUrKGs8PDMpPj4yXT1+fnc7ZG97aWYoISgxNiZiKSl7''@;'; put 'put ''aWYoMzImYil7dz0rX1tPZSsocCsxPDwzKT4+M107YnJlYWt9dz0uNSoocS1SKyArX1tPZSsocDw8Myk+PjNdKyArX1tPZSsocCsxPDwzKT4+M10pO2JyZWFrfXc9Ry1SKyArX1tPZSsocDw8Myk+PjNdfXdoaWxlKDApO2FbSGUrKGs8PDMpKzQ+PjJdPX5+dyxwZT8ocD0oaz0oMHwocD1wKzF8''@;'; put 'put ''MCkpPT0oMHxSZSkpPzA6cCxBPUErKDEmayl8MCk6KHA9cCsoMSYoaz0oMHwoQT1BKzF8MCkpPT0oMHxtKSkpfDAsQT1rPzA6QSksZj1mKzF8MH1yZXR1cm4gRnQoTGUpLEZ0KGdlKSxGdChiZSksRnQoT2UpLGxlPXFlLDB8SGV9ZnVuY3Rpb24gQlQobCxjLGYpe2N8PTA7dmFyIGssZ2UsTSxw''@;'; put 'put ''PTAsbT0wLEE9MCx3PTAsYj0wLEQ9MCxSPTA7Zm9yKGdlPWxlLGxlPWxlKzk2fDAsTT1nZSxrPSgxMDAqKGx8PTApfDApLTF8MCxwPSsoKGZ8PTApPDwxfDApLEQ9MCxSPTAsZj0wOyEoKDB8Zik+PSgwfGwpKTspRD1ELShiPStfW2MrKGY8PDUpKzE2Pj4zXS0rX1tjKyhmPDw1KT4+M10rcCkt''@;'; put 'put ''KHc9K19bYysoZjw8NSkrMjQ+PjNdLStfW2MrKGY8PDUpKzg+PjNdK3ApLFItPXcqYixmPWYrMXwwO3JldHVybihiPUQqRC00Kih3PSsoMHxrKSkqUik8MD8oX1tNPj4zXT1iLCRyKDEsOTk0MTcsTSksZj0tMSk6KG09KChwPStEMCgrYikpLUQpLyhBPTIqdyksQT0oLUQtcCkvQSxmPTA9PSgw''@;'; put 'put ''fChmPX5+bSkpPzE6ZiksbGU9Z2UsMHxmfWZ1bmN0aW9uIG9XKGwsYyxmLHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBELFIsRyxxLHBlLE9lLExlLFJlLHc9MCxiPTAsaz0wLE09MDtmb3IoT2U9bGUsbGU9bGUrMzJ8MCxHPStfWyhsfD0wKT4+M10scT0rX1tsKzg+PjNdLEQ9K19b''@;'; put 'put ''bCsxNj4+M10sUj0rX1tsKzI0Pj4zXSxwZT0wfHg3KCksaz0wfGFbbSs0Pj4yXSxtPSgwfChsPShiPTB8YVttPj4yXSktcHwwKSk+LTE/KDB8bCkvKDB8Zil8MDooKGwrMXwwKS8oMHxmKXwwKS0xfDAsTT0oMHwodz1rLXB8MCkpPi0xPygwfHcpLygwfGYpfDA6KCh3KzF8MCkvKDB8Zil8MCkt''@;'; put 'put ''MXwwLGI9KDB8KGI9cC1+fihHKyhHPj0wPy41Oi0uNSkpK2Irfn4oRCsoRD49MD8uNTotLjUpKXwwKSk+LTE/KDB8YikvKDB8Zil8MDooKGIrMXwwKS8oMHxmKXwwKS0xfDAsdz0oMHwoaz1wLX5+KHErKHE+PTA/LjU6LS41KSkrayt+fihSKyhSPj0wPy41Oi0uNSkpfDApKT4tMT8oMHxrKS8o''@;'; put 'put ''MHxmKXwwOigoaysxfDApLygwfGYpfDApLTF8MDshKCgwfG0pPigwfGIpKTspe2ZvcihsPU07ISgoMHxsKT4oMHx3KSk7KWU0KHBlLG0sbCksbD1sKzF8MDttPW0rMXwwfWFbKGs9Yys0fDApPj4yXT0wfElRKHBlKSxiPTB8VFEocGUpLGFbKE09Yys4fDApPj4yXT1iLHc9fn4rSXUoKyhEKyhS''@;'; put 'put ''ZT0rKHA8PDF8MCkpLUcpLyhMZT0rKDB8ZikpKSxsPX5+K0l1KCsoUitSZS1xKS9MZSksYVtjPj4yXT1sK3cseXkocGUpLGxlPU9lfWZ1bmN0aW9uIFJyZShsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsQXw9MDt2YXIgUmUsVmUscWUscnQsYXQsU3Qsa3Qsc3QsRXQsWnQsY3QsYnQsYW4s''@;'; put 'put ''U24sSHIsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsSGU9MCxXZT0wLEVyPTAsZnI9MDtIcj1sZSxsZT1sZSsxMjh8MCxzdD1IcisxMTJ8MCxrdD1IcisxMDR8MCxadD1Icis2NHwwLGN0PUhyKzU2fDAscWU9SHIrNDB8MCxydD1Icis5''@;'; put 'put ''NnwwLFZlPUhyKzg4fDAsTGU9SHIrMjR8MCxSZT1Icis4MHwwLEhlPUhyKzcyfDAsYW49MHxhWzgrKG18PTApPj4yXSxFdD0wfGFbbSsxMj4+Ml0sYXQ9MD09KDB8KGx8PTApKT9jOmwsU249MHx4NygpLFN0PSgwfGFbQT4+Ml0pLX5+KChiZT0rX1sxNisoV2U9MHxhWyhidD1jKzE2fDApPj4y''@;'; put 'put ''XSk+PjNdKSsoYmU+PTA/LjU6LS41KSl8MCxXZT0oMHxhW0ErND4+Ml0pLX5+KChiZT0rX1tXZSsyND4+M10pKyhiZT49MD8uNTotLjUpKXwwO2U6ZG97aWYoMT09KDB8YVttKzE2Pj4yXSkpe2ZvcihMZT0wfFFuKCgwfEdvKGMpKTw8MiksbD0wLEE9MHxEdChjKTtBOylhW0xlKyhsPDwyKT4+''@;'; put 'put ''Ml09YVsxMTIrKDB8YVsoSGU9QSsxNnwwKT4+Ml0pPj4yXSxhWzExMisoMHxhW0hlPj4yXSk+PjJdPTAsbD1sKzF8MCxBPTB8enQoYyxBKTtmb3IoUj1TdC1hbnwwLEc9V2UtYW58MCxxPVN0K2FufDAscGU9V2UrYW58MCxEPTE7ISgoMHxEKT4oMHxhWzE4MCsobD0wfGFbYnQ+PjJdKT4+Ml0p''@;'; put 'put ''KTspe2w9fn4oKGJlPStfWzE2Kyh3PTB8YVsxNisoTT0wfGFbKDB8YVtsKzE4ND4+Ml0pKyhEPDwyKT4+Ml0pPj4yXSk+PjNdKSsoYmU+PTA/LjU6LS41KSksQT1+figoYmU9K19bdysyND4+M10pKyhiZT49MD8uNTotLjUpKSxtPX5+KChiZT0rX1t3KzMyPj4zXSkrKGJlPj0wPy41Oi0uNSkp''@;'; put 'put ''LHc9fn4oKGJlPStfW3crNDA+PjNdKSsoYmU+PTA/LjU6LS41KSk7dDpkb3tpZigoMHxtKT4oMHxsKSYoMHx3KT4oMHxBKSl7Zm9yKGI9RytBfDAsaz1wZSt3fDAsQT0oMHwobD1SK2x8MCkpPi0xPygwfGwpLygwfHApfDA6KChsKzF8MCkvKDB8cCl8MCktMXwwLGI9KDB8Yik+LTE/KDB8Yikv''@;'; put 'put ''KDB8cCl8MDooKGIrMXwwKS8oMHxwKXwwKS0xfDAsdz0oMHwobT1xK218MCkpPi0xPygwfG0pLygwfHApfDA6KChtKzF8MCkvKDB8cCl8MCktMXwwLG09KDB8ayk+LTE/KDB8aykvKDB8cCl8MDooKGsrMXwwKS8oMHxwKXwwKS0xfDA7ISgoMHxBKT4oMHx3KSk7KXtmb3IobD1iOyEoKDB8bCk+''@;'; put 'put ''KDB8bSkpOyllNChTbixBLGwpLGw9bCsxfDA7QT1BKzF8MH1mb3IobD0wfER0KE0pOzspe2lmKCFsKWJyZWFrIHQ7YVsyMTIrKDB8YVtsKzE2Pj4yXSk+PjJdPU0sbD0wfHp0KE0sbCl9fX13aGlsZSgwKTtEPUQrMXwwfWZvcihwZT1xZSs4fDAsZ2U9WnQrNHwwLGJlPSsoMHxhbiksT2U9Y3Qr''@;'; put 'put ''NHwwLHE9cnQrNHwwLEc9VmUrNHwwLFI9MHxEdChjKTtSOyl7aEQocWUsUiksRXI9K19bcGU+PjNdLGFbWnQ+PjJdPU09U3Qrfn4oKGZyPStfW3FlPj4zXSkrKGZyPj0wPy41Oi0uNSkpfDAsYVtnZT4+Ml09RD1XZSt+fihFcisoRXI+PTA/LjU6LS41KSl8MCxsPTB8YVsoQT1SKzE2fDApPj4y''@;'; put 'put ''XTt0OmRve2lmKDB8YVtsKzIxMj4+Ml0pZm9yKGw9KDB8TSk+LTE/KDB8TSkvKDB8cCl8MDooKE0rMXwwKS8oMHxwKXwwKS0xfDAsYVtadD4+Ml09bCxsPSgwfEQpPi0xPygwfEQpLygwfHApfDA6KChEKzF8MCkvKDB8cCl8MCktMXwwLGFbZ2U+PjJdPWwsbD0wfHcwKGF0LFIpOzspe2lmKCFs''@;'; put 'put ''KWJyZWFrIHQ7KDB8YVsyMTIrKDB8YVtBPj4yXSk+PjJdKSE9KDB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkmJihhW3N0Pj4yXT1hW1p0Pj4yXSxhW3N0KzQ+PjJdPWFbWnQrND4+Ml0sTjYobCxzdCxTbixTdCxXZSxw''@;'; put 'put ''LEV0KSksbD0wfFMwKGF0LGwpfWVsc2V7Zm9yKGFbY3Q+PjJdPX5+KC41KigrX1tsKzk2Pj4zXSsgK19bbCs4OD4+M10pK2JlKSxhW09lPj4yXT1+figuNSorX1tsKzgwPj4zXStiZSksYVtrdD4+Ml09YVtadD4+Ml0sYVtrdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbc3Q+PjJdPWFbY3Q+PjJdLGFb''@;'; put 'put ''c3QrND4+Ml09YVtjdCs0Pj4yXSxwRihydCxrdCxzdCksbD0wfGFbcnQ+PjJdLG09MHxhW3E+PjJdLGFba3Q+PjJdPWFbWnQ+PjJdLGFba3QrND4+Ml09YVtadCs0Pj4yXSxhW3N0Pj4yXT1hW2N0Pj4yXSxhW3N0KzQ+PjJdPWFbY3QrND4+Ml0sbnAoVmUsa3Qsc3QpLEE9KDB8bCk+LTE/KDB8''@;'; put 'put ''bCkvKDB8cCl8MDooKGwrMXwwKS8oMHxwKXwwKS0xfDAsaz0oMHxtKT4tMT8oMHxtKS8oMHxwKXwwOigobSsxfDApLygwfHApfDApLTF8MCx3PSgwfCh3PTB8YVtWZT4+Ml0pKT4tMT8oMHx3KS8oMHxwKXwwOigodysxfDApLygwfHApfDApLTF8MCxtPSgwfChiPTB8YVtHPj4yXSkpPi0xPygw''@;'; put 'put ''fGIpLygwfHApfDA6KChiKzF8MCkvKDB8cCl8MCktMXwwOyEoKDB8QSk+KDB8dykpOyl7Zm9yKGw9azshKCgwfGwpPigwfG0pKTspZTQoU24sQSxsKSxsPWwrMXwwO0E9QSsxfDB9Zm9yKGFbWnQ+PjJdPWw9KDB8TSk+LTE/KDB8TSkvKDB8cCl8MDooKE0rMXwwKS8oMHxwKXwwKS0xfDAsYVtn''@;'; put 'put ''ZT4+Ml09bD0oMHxEKT4tMT8oMHxEKS8oMHxwKXwwOigoRCsxfDApLygwfHApfDApLTF8MCxsPTB8dzAoYXQsUik7Oyl7aWYoIWwpYnJlYWsgdDthW3N0Pj4yXT1hW1p0Pj4yXSxhW3N0KzQ+PjJdPWFbWnQrND4+Ml0sTjYobCxzdCxTbixTdCxXZSxwLEV0KSxsPTB8UzAoYXQsbCl9fX13aGls''@;'; put 'put ''ZSgwKTtSPTB8enQoYyxSKX1mb3IobD0wLEE9MHxEdChjKTtBOylhWzExMisoMHxhW0ErMTY+PjJdKT4+Ml09YVtMZSsobDw8Mik+PjJdLGw9bCsxfDAsQT0wfHp0KGMsQSk7RnQoTGUpfWVsc2UgZm9yKHBlPUxlKzh8MCxnZT1adCs0fDAsYmU9KygwfGFuKSxPZT1jdCs0fDAscT1SZSs0fDAs''@;'; put 'put ''Rz1IZSs0fDAsUj0wfER0KGMpOzspe2lmKCFSKWJyZWFrIGU7Zm9yKGhEKExlLFIpLGZyPStfW3BlPj4zXSxhW1p0Pj4yXT1NPVN0K35+KChFcj0rX1tMZT4+M10pKyhFcj49MD8uNTotLjUpKXwwLGFbZ2U+PjJdPUQ9V2Urfn4oZnIrKGZyPj0wPy41Oi0uNSkpfDAsYVtjdD4+Ml09fn4oLjUq''@;'; put 'put ''KCtfWzk2KyhsPTB8YVtSKzE2Pj4yXSk+PjNdKyArX1tsKzg4Pj4zXSkrYmUpLGFbT2U+PjJdPX5+KC41KitfW2wrODA+PjNdK2JlKSxhW2t0Pj4yXT1hW1p0Pj4yXSxhW2t0KzQ+PjJdPWFbWnQrND4+Ml0sYVtzdD4+Ml09YVtjdD4+Ml0sYVtzdCs0Pj4yXT1hW2N0KzQ+PjJdLHBGKFJlLGt0''@;'; put 'put ''LHN0KSxsPTB8YVtSZT4+Ml0sbT0wfGFbcT4+Ml0sYVtrdD4+Ml09YVtadD4+Ml0sYVtrdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbc3Q+PjJdPWFbY3Q+PjJdLGFbc3QrND4+Ml09YVtjdCs0Pj4yXSxucChIZSxrdCxzdCksQT0oMHxsKT4tMT8oMHxsKS8oMHxwKXwwOigobCsxfDApLygwfHApfDAp''@;'; put 'put ''LTF8MCxrPSgwfG0pPi0xPygwfG0pLygwfHApfDA6KChtKzF8MCkvKDB8cCl8MCktMXwwLHc9KDB8KHc9MHxhW0hlPj4yXSkpPi0xPygwfHcpLygwfHApfDA6KCh3KzF8MCkvKDB8cCl8MCktMXwwLG09KDB8KGI9MHxhW0c+PjJdKSk+LTE/KDB8YikvKDB8cCl8MDooKGIrMXwwKS8oMHxwKXww''@;'; put 'put ''KS0xfDA7ISgoMHxBKT4oMHx3KSk7KXtmb3IobD1rOyEoKDB8bCk+KDB8bSkpOyllNChTbixBLGwpLGw9bCsxfDA7QT1BKzF8MH1mb3IoYVtadD4+Ml09bD0oMHxNKT4tMT8oMHxNKS8oMHxwKXwwOigoTSsxfDApLygwfHApfDApLTF8MCxhW2dlPj4yXT1sPSgwfEQpPi0xPygwfEQpLygwfHAp''@;'; put 'put ''fDA6KChEKzF8MCkvKDB8cCl8MCktMXwwLGw9MHx3MChhdCxSKTtsOylhW3N0Pj4yXT1hW1p0Pj4yXSxhW3N0KzQ+PjJdPWFbWnQrND4+Ml0sTjYobCxzdCxTbixTdCxXZSxwLEV0KSxsPTB8UzAoYXQsbCk7Uj0wfHp0KGMsUil9fXdoaWxlKDApO2FbKHc9Zis0fDApPj4yXT0wfElRKFNuKSxh''@;'; put 'put ''WyhiPWYrOHwwKT4+Ml09MHxUUShTbiksbD1+fitJdSgrKCtfWzMyKyhBPTB8YVtidD4+Ml0pPj4zXSsoRXI9Kyhhbjw8MXwwKSktK19bQSsxNj4+M10pLyhmcj0rKDB8cCkpKSxBPX5+K0l1KCsoK19bQSs0MD4+M10rRXItK19bQSsyND4+M10pL2ZyKSxhW2Y+PjJdPUErbCx5eShTbiksbGU9''@;'; put 'put ''SHJ9ZnVuY3Rpb24gbFcobCxjLGYscCl7Y3w9MDt2YXIgQSx3LGssTTtmb3Ioaz1sZSxsZT1sZSszMnwwLHc9aysxNnwwLE09MHxhWzQrKGx8PTApPj4yXSxBPTB8YVtsKzg+PjJdLGFbKGZ8PTApPj4yXT0wLSgwfGFbKHB8PTApPj4yXSksYVsoZis0fDApPj4yXT0wLSgwfGFbcCs0Pj4yXSks''@;'; put 'put ''bD0wLHA9TTshKCgwfGwpPj0oMHxBKSk7KWFbdz4+Ml09YVtwPj4yXSxhW3crND4+Ml09YVtwKzQ+PjJdLE1RKGMsdyksbD1sKzF8MCxwPXArOHwwO2xlPWt9ZnVuY3Rpb24gZEYobCxjLGYscCxtLEEsdyl7Znw9MCxwfD0wLG18PTAsQXw9MDt2YXIgTSxELFIsRyxiPTAsaz0wLHE9MCxwZT0w''@;'; put 'put ''O009K19bKHd8PTApKygoaz0wfGFbMTIrKGN8PTApPj4yXSk8PDUpPj4zXSxEPStfW3crKGs8PDUpKzg+PjNdLFI9K19bdysoazw8NSkrMTY+PjNdLEc9K19bdysoazw8NSkrMjQ+PjNdLDA9PSgwfChsfD0wKSkmJjAhPSgwfHJoKCgwfH5+K0l1KCsoKHBlPSsoQTw8MXwwKSktTStSKS8ocT0r''@;'; put 'put ''KDB8bSkpKSkvLTJ8MCwoMHx+fitJdSgrKHBlLUQrRykvcSkpLy0yfDAsYyxmLHAsbSx3KSl8fChiPTMpO2U6ZG97aWYoMz09KDB8YikmJjA9PSgwfHJoKDAsMCxjLGYscCxtLHcpKSlpZigoMHx+fitJdSgrKFItTSkpKTwoMHx+fitJdSgrKEctRCkpKSlmb3Ioaz0xOzspe2ZvcihiPTAta3ww''@;'; put 'put ''LGw9MDs7KXtpZigoMHxsKTw9KDB8Yikpe0E9YjticmVha31pZigwfHJoKGIsbCxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKy0xfDB9Zm9yKDshKCgwfEEpPj0oMHxrKSk7KXtpZigwfHJoKEEsbCxjLGYscCxtLHcpKWJyZWFrIGU7QT1BKzF8MH1mb3IoOyEoKDB8bCk+PSgwfGspKTspe2lmKDB8''@;'; put 'put ''cmgoQSxsLGMsZixwLG0sdykpYnJlYWsgZTtsPWwrMXwwfWZvcig7ISgoMHxBKTw9KDB8YikpOyl7aWYoMHxyaChBLGwsYyxmLHAsbSx3KSlicmVhayBlO0E9QSstMXwwfWZvcig7ISgoMHxsKTw9MCk7KXtpZigwfHJoKEEsbCxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKy0xfDB9az1rKzF8MH1l''@;'; put 'put ''bHNlIGZvcihrPTE7Oyl7Zm9yKGI9MC1rfDAsbD0wOzspe2lmKCgwfGwpPj0oMHxrKSl7QT1iO2JyZWFrfWlmKDB8cmgobCxiLGMsZixwLG0sdykpYnJlYWsgZTtsPWwrMXwwfWZvcig7ISgoMHxBKT49KDB8aykpOyl7aWYoMHxyaChsLEEsYyxmLHAsbSx3KSlicmVhayBlO0E9QSsxfDB9Zm9y''@;'; put 'put ''KDshKCgwfGwpPD0oMHxiKSk7KXtpZigwfHJoKGwsQSxjLGYscCxtLHcpKWJyZWFrIGU7bD1sKy0xfDB9Zm9yKDshKCgwfEEpPD0oMHxiKSk7KXtpZigwfHJoKGwsQSxjLGYscCxtLHcpKWJyZWFrIGU7QT1BKy0xfDB9Zm9yKDshKCgwfGwpPj0wKTspe2lmKDB8cmgobCxBLGMsZixwLG0sdykp''@;'; put 'put ''YnJlYWsgZTtsPWwrMXwwfWs9aysxfDB9fXdoaWxlKDApfWZ1bmN0aW9uIHJoKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxwfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBNLFIsRyxxLHBlLGJlLGI9MCxrPTAsRD0wLE9lPTAsTGU9MCxSZT0wLEhlPTA7Zm9yKGJlPWxlLGxlPWxlKzQ4fDAscGU9''@;'; put 'put ''YmUrMzJ8MCxSPTB8YVs4KyhmfD0wKT4+Ml0sRz0ocT1iZSkrNHwwLGI9MHxhWyhNPWYrNHwwKT4+Ml0saz0wOzspe2lmKCgwfGspPj0oMHxSKSl7RD01O2JyZWFrfWlmKE9lPTB8YVsoTGU9YikrND4+Ml0sYVtxPj4yXT0oMHxhW0xlPj4yXSkrbCxhW0c+PjJdPU9lK2MsYVtwZT4+Ml09YVtx''@;'; put 'put ''Pj4yXSxhW3BlKzQ+PjJdPWFbcSs0Pj4yXSwwfGRhZShwLHBlKSl7Yj0wO2JyZWFrfWI9Yis4fDAsaz1rKzF8MH1pZig1PT0oMHxEKSl7Zm9yKEhlPStfW3crKChmPTB8YVtmKzEyPj4yXSk8PDUpPj4zXSxSZT0rX1t3KyhmPDw1KSs4Pj4zXSxhW20+PjJdPSgwfEFyKEEsbCkpLX5+KEhlKyhI''@;'; put 'put ''ZT49MD8uNTotLjUpKSxhWyhmPW0rNHwwKT4+Ml09KDB8QXIoQSxjKSktfn4oUmUrKFJlPj0wPy41Oi0uNSkpLGI9MHxhW00+PjJdLGs9MDshKCgwfGspPj0oMHxSKSk7KUxlPTB8YVsoT2U9YikrND4+Ml0sYVtxPj4yXT0oMHxhW09lPj4yXSkrbCxhW0c+PjJdPUxlK2MsYVtwZT4+Ml09YVtx''@;'; put 'put ''Pj4yXSxhW3BlKzQ+PjJdPWFbcSs0Pj4yXSxNUShwLHBlKSxiPWIrOHwwLGs9aysxfDA7Yj0xfXJldHVybiBsZT1iZSwwfGJ9ZnVuY3Rpb24gcEYobCxjLGYpe3ZhciBwO3A9KDB8YVs0KyhjfD0wKT4+Ml0pLSgwfGFbNCsoZnw9MCk+PjJdKXwwLGFbKGx8PTApPj4yXT0oMHxhW2M+PjJdKS0o''@;'; put 'put ''MHxhW2Y+PjJdKSxhW2wrND4+Ml09cH1mdW5jdGlvbiBucChsLGMsZil7dmFyIHA7cD0oMHxhWzQrKGZ8PTApPj4yXSkrKDB8YVs0KyhjfD0wKT4+Ml0pfDAsYVsobHw9MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbYz4+Ml0pLGFbbCs0Pj4yXT1wfWZ1bmN0aW9uIE42KGwsYyxmLHAsbSxBLHcp''@;'; put 'put ''e2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBwZSxnZSxiZSxSZSxIZSxWZSxxZSxydCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAsT2U9MCxMZT0wO3J0PWxlLGxlPWxlKzExMnwwLEhlPXJ0Kzk2fDAsUmU9cnQrODB8MCxwZT1ydCs0OHwwLGdlPXJ0KzMyfDAscWU9cnQs''@;'; put 'put ''RD1ydCs2NHwwLF9bKFZlPXJ0KzE2fDApPj4zXT0rKDB8YVsoY3w9MCk+PjJdKSxfWyhiZT1WZSs4fDApPj4zXT0rKDB8YVtjKzQ+PjJdKTtlOmRve2lmKDAhPSgwfHcpJiYoT2U9bCsxNnwwLE09MHxhWzgrKDB8YVtPZT4+Ml0pPj4yXSwwIT0oMHxNKSkpZm9yKHE9KygwfHApLEc9KygwfG0p''@;'; put 'put ''LFI9MS8rKDB8QSksRD1xZSs4fDAsdz0wOzspe2lmKCgwfHcpPj0oMHxhW00rND4+Ml0pKWJyZWFrIGU7Zm9yKGw9MHxhWyhtPTB8YVtNPj4yXSkrKDQ4Knd8MCk+PjJdLGM9MHxhW20rKDQ4Knd8MCkrND4+Ml0sQT0wfGFbbSsoNDgqd3wwKSs4Pj4yXSxwPTB8YVttKyg0OCp3fDApKzEyPj4y''@;'; put 'put ''XSxhW3BlPj4yXT1hWyhNPW0rKDQ4Knd8MCkrMTZ8MCk+PjJdLGFbcGUrND4+Ml09YVtNKzQ+PjJdLGFbcGUrOD4+Ml09YVtNKzg+PjJdLGFbcGUrMTI+PjJdPWFbTSsxMj4+Ml0sYVtnZT4+Ml09YVsobT1tKyg0OCp3fDApKzMyfDApPj4yXSxhW2dlKzQ+PjJdPWFbbSs0Pj4yXSxhW2dlKzg+''@;'; put 'put ''PjJdPWFbbSs4Pj4yXSxhW2dlKzEyPj4yXT1hW20rMTI+PjJdLEE/KGFbVmU+PjJdPWFbcGU+PjJdLGFbVmUrND4+Ml09YVtwZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbcGUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtwZSsxMj4+Ml0sYVtxZT4+Ml09YVtsPj4yXSxhW3FlKzQ+PjJdPWFbbCs0Pj4yXSxh''@;'; put 'put ''W3FlKzg+PjJdPWFbbCs4Pj4yXSxhW3FlKzEyPj4yXT1hW2wrMTI+PjJdLE09MSk6KGFbVmU+PjJdPWFbbD4+Ml0sYVtWZSs0Pj4yXT1hW2wrND4+Ml0sYVtWZSs4Pj4yXT1hW2wrOD4+Ml0sYVtWZSsxMj4+Ml09YVtsKzEyPj4yXSxhW3FlPj4yXT1hWyhNPWwrMTZ8MCk+PjJdLGFbcWUrND4+''@;'; put 'put ''Ml09YVtNKzQ+PjJdLGFbcWUrOD4+Ml09YVtNKzg+PjJdLGFbcWUrMTI+PjJdPWFbTSsxMj4+Ml0sTT0yKSxfW1ZlPj4zXT1iPStfW1ZlPj4zXStxLF9bYmU+PjNdPWs9K19bYmU+PjNdK0csYj49MD9iKj1SOmI9KGIrMSkqUi0xLF9bVmU+PjNdPWIsX1tiZT4+M109Yj1rPj0wP2sqUjooaysx''@;'; put 'put ''KSpSLTEsX1txZT4+M109Yj0rX1txZT4+M10rcSxfW0Q+PjNdPWs9K19bRD4+M10rRyxiPj0wP2IqPVI6Yj0oYisxKSpSLTEsX1txZT4+M109YixfW0Q+PjNdPWI9az49MD9rKlI6KGsrMSkqUi0xLGFbUmU+PjJdPWFbVmU+PjJdLGFbUmUrND4+Ml09YVtWZSs0Pj4yXSxhW1JlKzg+PjJdPWFb''@;'; put 'put ''VmUrOD4+Ml0sYVtSZSsxMj4+Ml09YVtWZSsxMj4+Ml0sYVtIZT4+Ml09YVtxZT4+Ml0sYVtIZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbSGUrOD4+Ml09YVtxZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW3FlKzEyPj4yXSxvNyhSZSxIZSxmKTshKCgwfE0pPj0oMHxjKSk7KWFbVmU+PjJdPWFbcWU+PjJd''@;'; put 'put ''LGFbVmUrND4+Ml09YVtxZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbcWUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtxZT4+Ml09YVsoQT1sKyhNPDw0KXwwKT4+Ml0sYVtxZSs0Pj4yXT1hW0ErND4+Ml0sYVtxZSs4Pj4yXT1hW0ErOD4+Ml0sYVtxZSsxMj4+Ml09YVtBKzEyPj4yXSxf''@;'; put 'put ''W3FlPj4zXT1iPStfW3FlPj4zXStxLF9bRD4+M109az0rX1tEPj4zXStHLGI+PTA/Yio9UjpiPShiKzEpKlItMSxfW3FlPj4zXT1iLF9bRD4+M109Yj1rPj0wP2sqUjooaysxKSpSLTEsYVtSZT4+Ml09YVtWZT4+Ml0sYVtSZSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbUmUrOD4+Ml09YVtWZSs4Pj4y''@;'; put 'put ''XSxhW1JlKzEyPj4yXT1hW1ZlKzEyPj4yXSxhW0hlPj4yXT1hW3FlPj4yXSxhW0hlKzQ+PjJdPWFbcWUrND4+Ml0sYVtIZSs4Pj4yXT1hW3FlKzg+PjJdLGFbSGUrMTI+PjJdPWFbcWUrMTI+PjJdLG83KFJlLEhlLGYpLE09TSsxfDA7MHxwJiYoYVtWZT4+Ml09YVtxZT4+Ml0sYVtWZSs0Pj4y''@;'; put 'put ''XT1hW3FlKzQ+PjJdLGFbVmUrOD4+Ml09YVtxZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW3FlKzEyPj4yXSxhW3FlPj4yXT1hW2dlPj4yXSxhW3FlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtxZSs4Pj4yXT1hW2dlKzg+PjJdLGFbcWUrMTI+PjJdPWFbZ2UrMTI+PjJdLF9bcWU+PjNdPWI9K19bcWU+PjNd''@;'; put 'put ''K3EsX1tEPj4zXT1rPStfW0Q+PjNdK0csYj49MD9iKj1SOmI9KGIrMSkqUi0xLF9bcWU+PjNdPWIsX1tEPj4zXT1iPWs+PTA/aypSOihrKzEpKlItMSxhW1JlPj4yXT1hW1ZlPj4yXSxhW1JlKzQ+PjJdPWFbVmUrND4+Ml0sYVtSZSs4Pj4yXT1hW1ZlKzg+PjJdLGFbUmUrMTI+PjJdPWFbVmUr''@;'; put 'put ''MTI+PjJdLGFbSGU+PjJdPWFbcWU+PjJdLGFbSGUrND4+Ml09YVtxZSs0Pj4yXSxhW0hlKzg+PjJdPWFbcWUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtxZSsxMj4+Ml0sbzcoUmUsSGUsZikpLHc9dysxfDAsTT0wfGFbOCsoMHxhW09lPj4yXSk+PjJdfWVsc2UgTGU9NH13aGlsZSgwKTs0PT0oMHxM''@;'; put 'put ''ZSkmJihoRChELDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSksYVtxZT4+Ml09YVtEPj4yXSxhW3FlKzQ+PjJdPWFbRCs0Pj4yXSxhW3FlKzg+PjJdPWFbRCs4Pj4yXSxhW3FlKzEyPj4yXT1hW0QrMTI+PjJdLF9bcWU+PjNdPWI9K19bcWU+PjNdKyArKDB8cCksX1so''@;'; put 'put ''TT1xZSs4fDApPj4zXT1rPStfW00+PjNdKyArKDB8bSksYj49MD9iLz0rKDB8QSk6Yj0oYisxKS8rKDB8QSktMSxfW3FlPj4zXT1iLF9bTT4+M109Yj1rPj0wP2svKygwfEEpOihrKzEpLysoMHxBKS0xLGFbUmU+PjJdPWFbVmU+PjJdLGFbUmUrND4+Ml09YVtWZSs0Pj4yXSxhW1JlKzg+PjJd''@;'; put 'put ''PWFbVmUrOD4+Ml0sYVtSZSsxMj4+Ml09YVtWZSsxMj4+Ml0sYVtIZT4+Ml09YVtxZT4+Ml0sYVtIZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbSGUrOD4+Ml09YVtxZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW3FlKzEyPj4yXSxvNyhSZSxIZSxmKSksbGU9cnR9ZnVuY3Rpb24gdVcobCxjLGYpe3ZhciB3''@;'; put 'put ''LGssTSxSLHA9MCxtPTAsQT0wLGI9MCxHPTA7aWYoUj1sZSxsZT1sZSs4MHwwLEE9Uis2NHwwLG09UisyNHwwLHA9Uix3PVIrNTZ8MCwoMHwoTT0wfEJUKGx8PTAsY3w9MCwwfGFbKGs9OCsoZnw9MCl8MCk+PjJdKSkpPj0xKXtmb3IoYVt3KzQ+PjJdPTAsYVt3Pj4yXT0wLGI9MHx2cihsPDw0''@;'; put 'put ''KSxmPTA7ISgoMHxmKT49KDB8bCkpOylhW2IrKGY8PDQpKzEyPj4yXT1mLHA9MHxhW2s+PjJdLGFbbT4+Ml09YVsoRz1jKyhmPDw1KXwwKT4+Ml0sYVttKzQ+PjJdPWFbRys0Pj4yXSxhW20rOD4+Ml09YVtHKzg+PjJdLGFbbSsxMj4+Ml09YVtHKzEyPj4yXSxhW20rMTY+PjJdPWFbRysxNj4+''@;'; put 'put ''Ml0sYVttKzIwPj4yXT1hW0crMjA+PjJdLGFbbSsyND4+Ml09YVtHKzI0Pj4yXSxhW20rMjg+PjJdPWFbRysyOD4+Ml0sYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sb1cobSxiKyhmPDw0KXwwLE0scCxBKSxmPWYrMXwwO2ZvcihtPTB8dnIobDw8MiksZj0wOyEoKDB8Zik+''@;'; put 'put ''PSgwfGwpKTspYVttKyhmPDwyKT4+Ml09YisoZjw8NCksZj1mKzF8MDtmb3IoeDEobSxsLDQsODkpLEE9MHx4NygpLGY9MHx2cihsPDwzKSxwPTA7ISgoMHxwKT49KDB8bCkpOylkRihwLEc9MHxhW20rKHA8PDIpPj4yXSxBLGYrKGFbRysxMj4+Ml08PDMpfDAsTSwwfGFbaz4+Ml0sYykscD1w''@;'; put 'put ''KzF8MDtmb3IoRnQobSkscD0wOyEoKDB8cCk+PSgwfGwpKTspRnQoMHxhW2IrKHA8PDQpKzQ+PjJdKSxwPXArMXwwO0Z0KGIpLHl5KEEpfWVsc2UgZj0wO3JldHVybiBsZT1SLDB8Zn1mdW5jdGlvbiBWNihsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAs''@;'; put 'put ''RD0wLFI9MDswfChsPTB8YVs5NisocD0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKSYmKF9bKEQ9bCs1NnwwKT4+M109K19bRD4+M10rICsoMHxjKSxfWyhEPWwrNjR8MCk+PjNdPStfW0Q+PjNdKyArKDB8ZikpLDB8KGw9MHxhW3ArMTA4Pj4yXSkmJihfWyhEPWwrNTZ8MCk+PjNdPStfW0Q+PjNd''@;'; put 'put ''KyArKDB8YyksX1soRD1sKzY0fDApPj4zXT0rX1tEPj4zXSsgKygwfGYpKSwwfChsPTB8YVtwKzEwMD4+Ml0pJiYoX1soRD1sKzU2fDApPj4zXT0rX1tEPj4zXSsgKygwfGMpLF9bKEQ9bCs2NHwwKT4+M109K19bRD4+M10rICsoMHxmKSksMHwobD0wfGFbcCsxMDQ+PjJdKSYmKF9bKEQ9bCs1''@;'; put 'put ''NnwwKT4+M109K19bRD4+M10rICsoMHxjKSxfWyhEPWwrNjR8MCk+PjNdPStfW0Q+PjNdKyArKDB8ZikpLEQ9MHxhW3ArOD4+Ml07ZTpkb3tpZigwfEQpZm9yKE09KygwfGMpLGI9KygwfGYpLGM9MHxhW0QrND4+Ml0sbD0wOzspe2lmKCgwfGwpPj0oMHxjKSlicmVhayBlO2ZvcihmPTB8YVso''@;'; put 'put ''az0wfGFbRD4+Ml0pKyg0OCpsfDApPj4yXSxtPTB8YVtrKyg0OCpsfDApKzQ+PjJdLEE9MHxhW2srKDQ4Kmx8MCkrOD4+Ml0sdz0wfGFbaysoNDgqbHwwKSsxMj4+Ml0scD0wOyEoKDB8cCk+PSgwfG0pKTspX1soUj1mKyhwPDw0KXwwKT4+M109K19bUj4+M10rTSxfWyhSPWYrKHA8PDQpKzh8''@;'; put 'put ''MCk+PjNdPStfW1I+PjNdK2IscD1wKzF8MDswfEEmJihfWyhSPWsrKDQ4Kmx8MCkrMTZ8MCk+PjNdPStfW1I+PjNdK00sX1soUj1rKyg0OCpsfDApKzI0fDApPj4zXT0rX1tSPj4zXStiKSwwfHcmJihfWyhSPWsrKDQ4Kmx8MCkrMzJ8MCk+PjNdPStfW1I+PjNdK00sX1soUj1rKyg0OCpsfDAp''@;'; put 'put ''KzQwfDApPj4zXT0rX1tSPj4zXStiKSxsPWwrMXwwfX13aGlsZSgwKX1mdW5jdGlvbiBjVyhsLGMsZil7dmFyIG0sQSx3LGIsayxNLEQscD0wLFI9MDtmb3IoUj0xNisobD0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSl8MCxrPStfWyhwPWwrMzJ8MCk+PjNdKyhtPSsoMHwoY3w9MCkpKSxEPStf''@;'; put 'put ''WyhNPWwrMjR8MCk+PjNdKyhBPSsoMHwoZnw9MCkpKSxiPStfWyhsPWwrNDB8MCk+PjNdK0EsX1tSPj4zXT0rX1tSPj4zXSttLF9bTT4+M109RCxfW3A+PjNdPWssX1tsPj4zXT1iLDAhPSgwfChwPTB8YVsxMisobD0wfGFbdz4+Ml0pPj4yXSkpJiYwIT0oMHxmZVtwKzgxPj4wXSkmJihfWyhS''@;'; put 'put ''PXArNTZ8MCk+PjNdPStfW1I+PjNdK20sX1socD1wKzY0fDApPj4zXT0rX1twPj4zXStBKSxwPTE7ISgoMHxwKT4oMHxhW2wrMTgwPj4yXSkpOyljVygwfGFbKDB8YVtsKzE4ND4+Ml0pKyhwPDwyKT4+Ml0sYyxmKSxwPXArMXwwLGw9MHxhW3c+PjJdfWZ1bmN0aW9uIGZXKGwsYyxmLHApe3Zh''@;'; put 'put ''ciBtO3JldHVybihtPTB8VWQobHw9MCxjfD0wLGZ8PTAscHw9MCkpPyhsPTB8ZnVuY3Rpb24gQnJlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO2U6ZG97aWYoKDB8''@;'; put 'put ''bCk8MSltPTAtbHwwO2Vsc2UgZm9yKGJlPTA9PSgwfHApLHBlPTA9PSgwfG0pLGI9MDs7KXtpZigoMHxiKT09KDB8bCkpe209MDticmVhayBlfWZvcihnZT0wfGFbYysoYjw8Mik+PjJdLEE9YmU/Z2U6cCxSPS4wMTM4ODg4ODg4ODg4ODg4ODgqKEQ9KygwfChrPTB8YVtmKyhiPDwzKT4+Ml0p''@;'; put 'put ''KSkscT0uMDEzODg4ODg4ODg4ODg4ODg4KihHPSsoMHwoTT0wfGFbZisoYjw8MykrND4+Ml0pKSksdz0wfER0KGdlKTt3Oyl7X1soT2U9MHxhWzEzMisobT0wfGFbdysxNj4+Ml0pPj4yXSk+PjNdPStfW09lPj4zXStSLF9bKE9lPU9lKzh8MCk+PjNdPStfW09lPj4zXStxLF9bKE9lPW0rMTZ8''@;'; put 'put ''MCk+PjNdPStfW09lPj4zXStELF9bKE9lPW0rMjR8MCk+PjNdPStfW09lPj4zXStHLDB8KG09MHxhW20rMTA4Pj4yXSkmJihfWyhPZT1tKzU2fDApPj4zXT0rX1tPZT4+M10rRCxfWyhPZT1tKzY0fDApPj4zXT0rX1tPZT4+M10rRyk7dDpkb3tpZighcGUpZm9yKG09MHx3MChBLHcpOzspe2lm''@;'; put 'put ''KCFtKWJyZWFrIHQ7VjYobSxrLE0pLG09MHxTMChBLG0pfX13aGlsZSgwKTt3PTB8enQoZ2Usdyl9Y1coZ2UsayxNKSxiPWIrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxtfShsLGMsbSxmLDB8YVtwKzEyPj4yXSksRnQobSkpOmw9MSwwfGx9ZnVuY3Rpb24gVEMobCxjLGYscCl7dmFyIEQsUixH''@;'; put 'put ''LG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLHE9MCxwZT0wO2lmKEc9bGUsbGU9bGUrMzJ8MCxSPUcsIShEPTB8ZlcobHw9MCxjfD0wLGZ8PTAscHw9MCkpKXtmb3IoaWcoZiksYVtSPj4yXT1hWyhNPTE2KygwfGFbZisxNj4+Ml0pfDApPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4y''@;'; put 'put ''XT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLGFbUisxNj4+Ml09YVtNKzE2Pj4yXSxhW1IrMjA+PjJdPWFbTSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW00rMjQ+PjJdLGFbUisyOD4+Ml09YVtNKzI4Pj4yXSxtPVIrOHwwLEE9UisxNnwwLHc9UisyNHwwLHA9MDshKCgwfHApPj0oMHxs''@;'; put 'put ''KSk7KXtmb3IoYj0wfGFbMTgwKyhrPTB8YVsxNisoMHxhW2MrKHA8PDIpPj4yXSk+PjJdKT4+Ml0saz1rKzE4NHwwLGY9MTshKCgwfGYpPigwfGIpKTspX1tSPj4zXT0rX1soK19bUj4+M108K19bKHBlPTE2KygwfGFbMTYrKDB8YVsoMHxhW2s+PjJdKSsoZjw8Mik+PjJdKT4+Ml0pfDApPj4z''@;'; put 'put ''XT9SOnBlKT4+M10scT0xNisocGU9MHxhWzE2KygwfGFbKDB8YVtrPj4yXSkrKGY8PDIpPj4yXSk+PjJdKXwwLF9bbT4+M109K19bKCtfW20+PjNdPCtfW3BlKzI0Pj4zXT9SOnEpKzg+PjNdLF9bQT4+M109K19bKCtfW0E+PjNdPitfW3BlKzMyPj4zXT9SOnEpKzE2Pj4zXSxfW3c+PjNdPStf''@;'; put 'put ''WygrX1t3Pj4zXT4rX1twZSs0MD4+M10/UjpxKSsyND4+M10sZj1mKzF8MDtwPXArMXwwfWFbTT4+Ml09YVtSPj4yXSxhW00rND4+Ml09YVtSKzQ+PjJdLGFbTSs4Pj4yXT1hW1IrOD4+Ml0sYVtNKzEyPj4yXT1hW1IrMTI+PjJdLGFbTSsxNj4+Ml09YVtSKzE2Pj4yXSxhW00rMjA+PjJdPWFb''@;'; put 'put ''UisyMD4+Ml0sYVtNKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbTSsyOD4+Ml09YVtSKzI4Pj4yXX1yZXR1cm4gbGU9RywwfER9ZnVuY3Rpb24gYTcobCxjLGYscCl7dmFyIEE7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLEE9bGUsbGU9bGUrMTZ8MCwocHw9MCl8fFByKDk5NTM0LDk5NTQwLDE0MDAsOTk1''@;'; put 'put ''NDcpLGY9MHx4YyhsLGYsZiksYVtwKzg+PjJdPWYsYVtwKzEyPj4yXT0wLGFbcCsyMD4+Ml09MCxTMShsLGMscCksbGU9QSwwfGFbcCsxNj4+Ml19ZnVuY3Rpb24geGMobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLHcsQT0wO3c9bGUsbGU9bGUrMTZ8MCxBPXcscD13KzR8MCxtPTB8TGkobHw9''@;'; put 'put ''MCw5OTY4OSk7ZTpkb3tpZihtKWlmKGFbQT4+Ml09cCxBPTE9PSgwfGlsKG0sMTM3Mzk1LEEpKSxsPTB8YVtwPj4yXSxBJigwfGwpPi0xKWM9bDtlbHNle3N3aXRjaCgwfGZlW20+PjBdKXtjYXNlIDg0OmNhc2UgMTE2OmJyZWFrO2RlZmF1bHQ6YnJlYWsgZX1jPWZ9fXdoaWxlKDApO3JldHVy''@;'; put 'put ''biBsZT13LDB8Y31mdW5jdGlvbiBTMShsLGMsZil7cmV0dXJuIGN8PTAsZnw9MCwwfGZ1bmN0aW9uIE4yKGwsYyxmKXtsfD0wLGN8PTA7dmFyIG0sQSx3LGssRCxnZSxwPTAsYj0wLGJlPTA7Z2U9bGUsbGU9bGUrNjR8MCxiPWdlKzh8MCx3PWdlLG09Z2UrNDh8MCxBPWdlKzQ0fDAsKGZ8PTAp''@;'; put 'put ''fHxQcig5OTUzNCw5OTU0MCwxMjkyLDk5NTgxKSxhWyhmKzI4fDApPj4yXT0wLGFbKEQ9ZisxNnwwKT4+Ml09YyxhWyhrPWYrNHwwKT4+Ml09MCxhW2YrMjQ+PjJdPTA7ZTpkb3tpZigwfGwmJihwPTB8ZmVbbD4+MF0scDw8MjQ+PjI0KSlzd2l0Y2gocDw8MjQ+PjI0fDApe2Nhc2UgOTc6aWYo''@;'; put 'put ''MHxzMihsLDk5NTk5LDUpKXtpZigwfHMyKGwsOTk2MDUsNikpYnJlYWsgZTthW0Q+PjJdPTUsYVtiPj4yXT1tLGI9KDB8aWwobCs1fDAsOTk2MTIsYikpPjAsam5bZj4+Ml09YiYoYmU9K2puW20+PjJdKT4wP2JlOjE7YnJlYWsgZX1pZihhW0Q+PjJdPTQsYj0wfENsKGwrNXwwLGYpLGFbdz4+''@;'; put 'put ''Ml09QSwhKChiPSgwfGlsKGIsMTM3Mzk1LHcpKT4wKSYoMHwoYz0wfGFbQT4+Ml0pKT4wKSlicmVhayBlO2Fbaz4+Ml09YzticmVhayBlO2Nhc2UgOTk6aWYocDw8MjQ+PjI0IT05OXx8MHxaaShsLDEwODAwNikpYnJlYWsgZTthW0Q+PjJdPTE7YnJlYWsgZTtjYXNlIDEwMzppZihwPDwyND4+''@;'; put 'put ''MjQhPTEwM3x8MHxaaShsLDExMTQ5NCkpYnJlYWsgZTthW0Q+PjJdPTM7YnJlYWsgZTtjYXNlIDExMDppZihwPDwyND4+MjQhPTExMHx8MHxaaShsLDExMTQ4MSkpYnJlYWsgZTthW0Q+PjJdPTI7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApO3JldHVybiBsZT1nZSwwfGFbRD4+''@;'; put 'put ''Ml19KDB8TGkobHw9MCw5OTU3MiksYyxmKX1mdW5jdGlvbiBDbChsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTA7ZTpkb3tpZig5NT09KDB8ZmVbbD4+MF0pKWZvcihwPWMrMjh8MCxmPTE7Oyl7bD1sKzF8MDt0OmZvcig7Oyl7aWYoIShmJiYoYz0wfGZlW2w+PjBdLGM8PDI0Pj4yNCkp''@;'; put 'put ''KWJyZWFrIGU7c3dpdGNoKGM8PDI0Pj4yNHwwKXtjYXNlIDk5Om09MTA7YnJlYWsgdDtjYXNlIDEwNTptPTk7YnJlYWsgdDtjYXNlIDExNzptPTExO2JyZWFrIHQ7Y2FzZSAxMTY6bT0xMjticmVhayB0O2Nhc2UgOTg6Yz0zMjticmVhayB0O2Nhc2UgMTA4Om09NzticmVhayB0O2Nhc2UgMTE0''@;'; put 'put ''Om09ODticmVhayB0O2RlZmF1bHQ6Zj0wfX03PT0oMHxtKT8obT0wLGM9NCk6OD09KDB8bSk/KG09MCxjPTgpOjk9PSgwfG0pPyhtPTAsYz02NCk6MTA9PSgwfG0pPyhtPTAsYz0xKToxMT09KDB8bSk/KG09MCxjPTIpOjEyPT0oMHxtKSYmKG09MCxjPTE2KSxhW3A+PjJdPWFbcD4+Ml18Y319''@;'; put 'put ''d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBYbWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTA7dmFyIHcsYixtPTAsQT0wO2I9bGUsbGU9bGUrODB8MCxBPWIrNjR8MCx3PWIsYVsocHw9MCk+PjJdPTA7ZG97bT0wfGZlW2M+PjBdLGM9YysxfDB9d2hpbGUoMCE9KDB8JGMobSkpKTtlOmRv''@;'; put 'put ''e3N3aXRjaCgwfG0pe2Nhc2UgNjk6aWYoYVtsPj4yXT0wLCEoYz0wfGdGKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZj4+Ml0pO2JyZWFrO2Nhc2UgMTAxOmlmKGFbbD4+Ml09MSwhKGM9MHxnRihjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJl''@;'; put 'put ''YWsgZX1mJiYoYVtsKzcyPj4yXT1hW2Y+PjJdKTticmVhaztjYXNlIDgwOmlmKGFbbD4+Ml09MiwhKGM9MHxJQyhjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrND4+Ml0pO2JyZWFrO2Nhc2UgMTEyOmlmKGFbbD4+Ml09MywhKGM9MHxJQyhjLGwr''@;'; put 'put ''OHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrND4+Ml0pO2JyZWFrO2Nhc2UgOTg6aWYoYVtsPj4yXT00LCEoYz0wfElDKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZis4Pj4yXSk7YnJlYWs7Y2FzZSA2Njpp''@;'; put 'put ''ZihhW2w+PjJdPTUsIShjPTB8SUMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmKzg+PjJdKTticmVhaztjYXNlIDk5OmlmKCEoYz0wfHJwKGMsQSkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYobT0wfFBUKDB8YVtBPj4yXSx3KSxhW0E+PjJd''@;'; put 'put ''PW0sIW0pe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1pZigwfGFbdz4+Ml0pe2FbbD4+Ml09MTQsbT13LEE9NjQrKHA9bCs4fDApfDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7aWYoIWYpYnJlYWsgZTthW2wrNzI+PjJdPWFbZis0MD4+Ml07''@;'; put 'put ''YnJlYWsgZX1pZihhW2w+PjJdPTksYVtsKzg+PjJdPWFbdys4Pj4yXSwhZilicmVhayBlO2FbbCs3Mj4+Ml09YVtmKzI0Pj4yXTticmVhayBlO2Nhc2UgNjc6aWYoIShjPTB8cnAoYyxBKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1pZihtPTB8UFQoMHxhW0E+PjJdLHcpLGFbQT4+Ml09bSwh''@;'; put 'put ''bSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKDB8YVt3Pj4yXSl7YVtsPj4yXT0xMyxtPXcsQT02NCsocD1sKzh8MCl8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtpZighZilicmVhayBlO2FbbCs3Mj4+Ml09YVtmKzQwPj4yXTticmVh''@;'; put 'put ''ayBlfWlmKGFbbD4+Ml09OCxhW2wrOD4+Ml09YVt3Kzg+PjJdLCFmKWJyZWFrIGU7YVtsKzcyPj4yXT1hW2YrMjA+PjJdO2JyZWFrIGU7Y2FzZSA3NjppZihhW2w+PjJdPTYsIShjPTB8SUMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9ZiYmKGFbbCs3Mj4+Ml09YVtmKzEyPj4y''@;'; put 'put ''XSk7YnJlYWs7Y2FzZSA4NDppZihhW2w+PjJdPTcsIShjPTB8UWMoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYoIShjPTB8UWMoYyxsKzE2fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfFByZShjLGwrMjR8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9''@;'; put 'put ''aWYoIShjPTB8UWMoYyxsKzMyfDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWlmKCEoYz0wfHJwKGMsbCs0MHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsgZX1mJiYoYVtsKzcyPj4yXT1hW2YrMTY+PjJdKTticmVhaztjYXNlIDcwOmlmKGFbbD4+Ml09MTAsIShjPTB8UWMoYyxsKzh8MCkp''@;'; put 'put ''KXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYoIShjPTB8cnAoYyxsKzE2fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZisyOD4+Ml0pO2JyZWFrO2Nhc2UgODM6aWYoYVtsPj4yXT0xMSwhKGM9MHxycChjLGwrOHwwKSkpe2FbcD4+Ml09MSxjPTA7YnJlYWsg''@;'; put 'put ''ZX1mJiYoYVtsKzcyPj4yXT1hW2YrMzI+PjJdKTticmVhaztjYXNlIDczOmlmKGFbbD4+Ml09MTIsIShjPTB8Z0YoYyxsKzh8MCkpKXthW3A+PjJdPTEsYz0wO2JyZWFrIGV9aWYoIShjPTB8cnAoYyxsKzQwfDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZisz''@;'; put 'put ''Nj4+Ml0pO2JyZWFrO2Nhc2UgMTE2OmlmKGFbbD4+Ml09MTUsIShjPTB8S21lKGMsbCs4fDApKSl7YVtwPj4yXT0xLGM9MDticmVhayBlfWYmJihhW2wrNzI+PjJdPWFbZis0ND4+Ml0pO2JyZWFrO2Nhc2UgMDpjPTA7YnJlYWs7ZGVmYXVsdDphW3A+PjJdPTEsYz0wfX13aGlsZSgwKTtyZXR1''@;'; put 'put ''cm4gbGU9YiwwfGN9ZnVuY3Rpb24gZ0YobCxjKXt2YXIgcCxtLHcsZj0wLEE9MDtyZXR1cm4gdz1sZSxsZT1sZSsxNnwwLF9bKGN8PTApPj4zXT0raTMobHw9MCxwPXcpLCgwfChtPTB8YVtwPj4yXSkpIT0oMHxsKSYmKF9bYys4Pj4zXT0raTMobSxwKSwoMHxtKSE9KDB8KEE9MHxhW3A+PjJd''@;'; put 'put ''KSkpJiYoX1tjKzE2Pj4zXT0raTMoQSxwKSwoMHxBKSE9KDB8KGY9MHxhW3A+PjJdKSkpPyhfW2MrMjQ+PjNdPStpMyhmLHApLGw9KDB8Zik9PSgwfChsPTB8YVtwPj4yXSkpPzA6bCk6bD0wLGxlPXcsMHxsfWZ1bmN0aW9uIElDKGwsYyl7Y3w9MDt2YXIgQSxiLGssZj0wLHA9MCxtPTAsdz0w''@;'; put 'put ''O2s9bGUsbGU9bGUrMTZ8MCxBPWssbD0wfGo2KGx8PTAsYj1rKzR8MCk7ZG97aWYobCl7Zm9yKHc9MHxzaChmPTB8YVtiPj4yXSwyNCksYVtjPj4yXT1mLHA9dyxtPTA7Oyl7aWYoKDB8bSk+PSgwfGYpKXtmPTk7YnJlYWt9aWYoX1twPj4zXT0raTMobCxBKSwoMHxsKT09KDB8KGY9MHxhW0E+''@;'; put 'put ''PjJdKSkpe2Y9NTticmVha31pZihfW3ArOD4+M109K2kzKGYsQSksKDB8Zik9PSgwfChsPTB8YVtBPj4yXSkpKXtmPTc7YnJlYWt9X1twKzE2Pj4zXT0wLHA9cCsyNHwwLGY9MHxhW2M+PjJdLG09bSsxfDB9aWYoNT09KDB8Zikpe2FbYj4+Ml09bSxGdCh3KSxsPTA7YnJlYWt9aWYoNz09KDB8''@;'; put 'put ''Zikpe2FbYj4+Ml09bSxGdCh3KSxsPTA7YnJlYWt9aWYoOT09KDB8Zikpe2FbYj4+Ml09bSxhW2MrND4+Ml09dzticmVha319ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPWssMHxsfWZ1bmN0aW9uIHJwKGwsYyl7Y3w9MDt2YXIgcCx3LGIsZj0wLG09MCxBPTA7Yj1sZSxsZT1sZSsxNnww''@;'; put 'put ''LGw9MHxqNihsfD0wLHc9YikscD0wfGFbdz4+Ml07ZG97aWYoMD09KDB8bCl8KDB8cCk8MSlsPTA7ZWxzZXtmb3IoOyhmPShBPTB8ZmVbbD4+MF0pPDwyND4+MjQ9PTApXkE8PDI0Pj4yNCE9NDU7KWw9bCsxfDA7aWYoZilsPTA7ZWxzZXtmb3IobT1BPTB8c2gocCsxfDAsMSksZj1wOzspe2lm''@;'; put 'put ''KGw9bCsxfDAsKDB8Zik8PTApe2Y9OTticmVha31pZighKChmPTB8ZmVbbD4+MF0pPDwyND4+MjQpKXtmPTg7YnJlYWt9ZmVbbT4+MF09ZixhW3c+PjJdPWY9KDB8YVt3Pj4yXSktMXwwLG09bSsxfDB9aWYoOD09KDB8Zikpe0Z0KEEpLGw9MDticmVha31pZig5PT0oMHxmKSl7ZmVbbT4+MF09''@;'; put 'put ''MCxhW2M+PjJdPUE7YnJlYWt9fX19d2hpbGUoMCk7cmV0dXJuIGxlPWIsMHxsfWZ1bmN0aW9uIFBUKGwsYyl7dmFyIGY7c3dpdGNoKGN8PTAsMHwoZj0wfGZlWyhsfD0wKT4+MF0pKXtjYXNlIDkxOmw9MHxmdW5jdGlvbiBGVChsLGMpe2x8PTA7dmFyIEEsayxNLEQsZj0wLHA9MCxtPTAsdz0w''@;'; put 'put ''LGI9MDtEPWxlLGxlPWxlKzE2fDAsaz1ELGFbKGN8PTApPj4yXT0xLEE9MHxRYyhsLE09Yys4fDApO2Rve2lmKDAhPSgwfEEpJiYwIT0oMHwodz0wfFFjKEEsYysxNnwwKSkpJiYwIT0oMHwocD0wfFFjKHcsYysyNHwwKSkpJiYwIT0oMHwobT0wfFFjKHAsYyszMnwwKSkpJiYwIT0oMHwoZj0w''@;'; put 'put ''fGo2KG0sYj1jKzQwfDApKSkpe2ZvcihtPTB8c2goYz0wfGFbYj4+Ml0sOCkscD0wOzspe2lmKCgwfHApPj0oMHxjKSl7Zj0xMzticmVha31pZighKGY9MHxRYyhmLGspKSl7Zj05O2JyZWFrfWlmKGpuW20rKHA8PDMpPj4yXT0rX1trPj4zXSwhKGY9MHxycChmLG0rKHA8PDMpKzR8MCkpKXtm''@;'; put 'put ''PTEyO2JyZWFrfXA9cCsxfDAsYz0wfGFbYj4+Ml19aWYoOT09KDB8Zikpe0Z0KG0pLGw9MDticmVha31pZigxMj09KDB8Zikpe0Z0KG0pLGw9MDticmVha31pZigxMz09KDB8Zikpe2FbTSszNj4+Ml09bTticmVha319ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPUQsMHxsfShsKzF8MCxj''@;'; put 'put ''KTticmVhaztjYXNlIDQwOmw9MHxmdW5jdGlvbiBIVChsLGMpe2x8PTA7dmFyIGIsTSxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsaz0wLEQ9MDtSPWxlLGxlPWxlKzE2fDAsTT1SLGFbKGN8PTApPj4yXT0yLGI9MHxRYyhsLGMrOHwwKTtkb3tpZigwIT0oMHxiKSYmMCE9KDB8KGs9MHxRYyhiLGMr''@;'; put 'put ''MTZ8MCkpKSYmMCE9KDB8KHA9MHxRYyhrLGMrMjR8MCkpKSYmMCE9KDB8KG09MHxRYyhwLGMrMzJ8MCkpKSYmMCE9KDB8KEE9MHxRYyhtLGMrNDB8MCkpKSYmMCE9KDB8KHc9MHxRYyhBLGMrNDh8MCkpKSYmMCE9KDB8KGY9MHxqNih3LEQ9Yys1NnwwKSkpKXtmb3IoQT0wfHNoKHA9MHxhW0Q+''@;'; put 'put ''PjJdLDgpLG09MDs7KXtpZigoMHxtKT49KDB8cCkpe2Y9MTU7YnJlYWt9aWYoIShmPTB8UWMoZixNKSkpe2Y9MTE7YnJlYWt9aWYoam5bQSsobTw8Myk+PjJdPStfW00+PjNdLCEoZj0wfHJwKGYsQSsobTw8MykrNHwwKSkpe2Y9MTQ7YnJlYWt9bT1tKzF8MCxwPTB8YVtEPj4yXX1pZigxMT09''@;'; put 'put ''KDB8Zikpe0Z0KEEpLGw9MDticmVha31pZigxND09KDB8Zikpe0Z0KEEpLGw9MDticmVha31pZigxNT09KDB8Zikpe2FbYys2MD4+Ml09QTticmVha319ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPVIsMHxsfShsKzF8MCxjKTticmVhaztjYXNlIDQ3OmNhc2UgMzU6YVtjPj4yXT0wLGFb''@;'; put 'put ''Yys4Pj4yXT1sO2JyZWFrO2RlZmF1bHQ6MHxpdihmKT8oYVtjPj4yXT0wLGFbYys4Pj4yXT1sKTpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiBRYyhsLGMpe2N8PTA7dmFyIHAsbSxmPTA7cmV0dXJuIG09bGUsbGU9bGUrMTZ8MCxwPStpMyhsfD0wLGY9bSksKDB8KGY9MHxhW2Y+PjJdKSk9PSgw''@;'; put 'put ''fGwpP2Y9MDpfW2M+PjNdPXAsbGU9bSwwfGZ9ZnVuY3Rpb24gUHJlKGwsYyl7Y3w9MDt2YXIgZixwPTA7cmV0dXJuIGY9bGUsbGU9bGUrMTZ8MCxsPTB8ajYobHw9MCxwPWYpLGFbYz4+Ml09KDB8KHA9MHxhW3A+PjJdKSk8MD8wOjB8cD8yOjEsbGU9ZiwwfGx9ZnVuY3Rpb24gS21lKGwsYyl7''@;'; put 'put ''dmFyIGYscDtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLGFbKGN8PTApPj4yXT0wfGZ1bmN0aW9uIERBZShsLGMsZil7cmV0dXJuIDB8ZiQobHw9MCxjfD0wLGZ8PTAsLTEsMCl9KGx8PTAscD1mLDEwKSxsZT1mLDB8KCgwfChjPTB8YVtwPj4yXSkpPT0oMHxsKT8wOmMpfWZ1bmN0aW9uIGo2KGws''@;'; put 'put ''Yyl7dmFyIGYscDtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLGFbKGN8PTApPj4yXT0wfGtMKGx8PTAscD1mLDEwKSxsZT1mLDB8KCgwfChjPTB8YVtwPj4yXSkpPT0oMHxsKT8wOmMpfWZ1bmN0aW9uIEdoKGwsYyxmKXtyZXR1cm4gMHxmdW5jdGlvbiBMYShsLGMsZixwKXtsfD0wLGN8PTAsZnw9''@;'; put 'put ''MCxwfD0wO3ZhciBNLFIsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTA7Uj1sZSxsZT1sZSs5NnwwLE09UixEPVIrODB8MDtkb3tpZihsKXtmb3IocHx8KHA9MHxzaCgxLDIwKSxhW3ArND4+Ml09Zj4+PjA+ODA/Zjo4MCksaz0wfGFbcCs0Pj4yXSwoZj0wfGFbcD4+Ml0pPyh1MigoYj0wfFVhKDB8''@;'; put 'put ''YVtwKzg+PjJdLDB8QXIodz1mKzEwMHwwLGspKSkrKDB8QXIoayxmKSl8MCwwLDEwMCprfDApLGY9bCk6KHc9MTAwLGY9bCxiPTB8c2goMTAwLGspKTtmPTB8WG1lKE0sZixjLEQpOyl7bD0wfGFbcD4+Ml0sbT13PDwxLEE9MHxBcih3LGspLCgwfGwpPT0oMHx3KT8odTIoKGI9MHxVYShiLDB8''@;'; put 'put ''QXIobSxrKSkpK0F8MCwwLDB8QSksbD0wfGFbcD4+Ml0pOm09dyxBPU0sdz04MCsobD1iKygwfEFyKGwsaykpfDApfDA7ZG97YVtsPj4yXT1hW0E+PjJdLGw9bCs0fDAsQT1BKzR8MH13aGlsZSgoMHxsKTwoMHx3KSk7YVtwPj4yXT0xKygwfGFbcD4+Ml0pLHc9bX1pZigwfGFbRD4+Ml0mJihh''@;'; put 'put ''WyhEPXArMTZ8MCk+PjJdPTF8YVtEPj4yXSksZj0wfGFbcD4+Ml0pe2FbcCs4Pj4yXT0wfFVhKGIsMHxBcihmLGspKTticmVha31GdChiKSxGdChwKSxwPTA7YnJlYWt9fXdoaWxlKDApO3JldHVybiBsZT1SLDB8cH0obHw9MCxjfD0wLGZ8PTAsMCl9ZnVuY3Rpb24gbUYobCl7cmV0dXJuIDB8''@;'; put 'put ''R2gobHw9MCwwLDApfWZ1bmN0aW9uIEZyZShsKXt2YXIgcCxjPTAsZj0wLG09MCxBPTAsdz0wO2lmKHA9MHxhWzEyKyhsfD0wKT4+Ml0sMHxsKXtmb3IobT0wfGFbbCs4Pj4yXSxBPWwrNHwwLHc9MD09KDB8cCksYz0wOyEoKDB8Yyk+PSgwfGFbbD4+Ml0pKTspZj1tKygwfEFyKDB8YVtBPj4y''@;'; put 'put ''XSxjKSl8MCx3fHxDb1sxMjcmcF0oZiksJG1lKGYpLGM9YysxfDA7RnQobSksRnQobCl9fWZ1bmN0aW9uICRtZShsKXtzd2l0Y2goMHxhWyhsfD0wKT4+Ml0pe2Nhc2UgMzpjYXNlIDI6Y2FzZSA1OmNhc2UgNDpjYXNlIDY6RnQoMHxhW2wrOCs0Pj4yXSk7YnJlYWs7Y2FzZSA3OmNhc2UgMTI6''@;'; put 'put ''RnQoMHxhW2wrNDA+PjJdKTticmVhaztjYXNlIDk6Y2FzZSA4OmNhc2UgMTE6RnQoMHxhW2wrOD4+Ml0pO2JyZWFrO2Nhc2UgMTQ6Y2FzZSAxMzohZnVuY3Rpb24gcW1lKGwpe3ZhciBjPTAsZj0wLHA9MDtzd2l0Y2goMHxhWyhsfD0wKT4+Ml0pe2Nhc2UgMTpmb3IocD1sKzQwfDAsYz1sKzgr''@;'; put 'put ''MzZ8MCxsPTA7Zj0wfGFbYz4+Ml0sISgoMHxsKT49KDB8YVtwPj4yXSkpOylGdCgwfGFbZisobDw8MykrND4+Ml0pLGw9bCsxfDA7RnQoZik7YnJlYWs7Y2FzZSAyOmZvcihwPWwrNTZ8MCxmPWwrNjB8MCxsPTA7Yz0wfGFbZj4+Ml0sISgoMHxsKT49KDB8YVtwPj4yXSkpOylGdCgwfGFbYyso''@;'; put 'put ''bDw8MykrND4+Ml0pLGw9bCsxfDA7RnQoYyl9fShsKzh8MCk7YnJlYWs7Y2FzZSAxMDpGdCgwfGFbbCsxNj4+Ml0pfX1mdW5jdGlvbiBEQyhsLGMsZil7bHw9MCxmfD0wO3ZhciBrLEQsUixwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtSPWxlLGxlPWxlKzE2fDAsaz1SKzR8MCxEPVIsYVsoY3w9''@;'; put 'put ''MCk+PjJdPTAsYVtmPj4yXT0wIT0oMHxTYygwfGNyKGwpKSkmMSxwPTB8YVs0NzE4NF07ZTpkb3tpZigwfHAmJihBPTB8SG8obCxwKSx3PTB8ZmVbQT4+MF0sdzw8MjQ+PjI0KSl7Zm9yKHA9MjAzODg7Oyl7aWYoIShtPTB8YVtwPj4yXSkpYnJlYWsgZTtpZih3PDwyND4+MjQ9PSgwfGZlW20+''@;'; put 'put ''PjBdKSYmMD09KDB8WmkoQSxtKSkpYnJlYWs7cD1wKzEyfDB9YVtjPj4yXT1hW3ArND4+Ml0sYVtmPj4yXT1hW3ArOD4+Ml19fXdoaWxlKDApOzB8KHA9MHxhWzQ3MTk1XSkmJjE9PSgwfGFbZj4+Ml0pJiYoYj0wfEhvKGwscCksMHxmZVtiPj4wXSkmJmhXKGIsZiksMHwocD0wfGFbNDcxOTZd''@;'; put 'put ''KSYmMT09KDB8YVtjPj4yXSkmJihNPTB8SG8obCxwKSwwfGZlW00+PjBdKSYmaFcoTSxjKSwwfGZlWzE1MysoMHxhW2wrMTY+PjJdKT4+MF0mJihiPWwrLTQ4fDAsREMoMHxLYSh3PTB8Y3IoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6YikrNDA+PjJdKSwwfGFbKDI9PSgwfChNPTMmYVtsPj4y''@;'; put 'put ''XSkpP2w6YikrNDA+PjJdLDB8YVsoMz09KDB8TSk/bDpsKzQ4fDApKzQwPj4yXSwwLDApLGssRCksYVtmPj4yXT1hW2s+PjJdfGFbZj4+Ml0sYVtjPj4yXT1hW0Q+PjJdfGFbYz4+Ml0pLGxlPVJ9ZnVuY3Rpb24gaFcobCxjKXtsfD0wLGN8PTA7dmFyIGssTSxSLGY9MCxwPTAsbT0wLEE9MCx3''@;'; put 'put ''PTAsYj0wLEQ9MDtSPWxlLGxlPWxlKzE2fDAsTT1SLGs9Uis0fDAsYj0wLGY9MDtlOmZvcig7Oyl7Zm9yKGFbYz4+Ml09ZixtPSgwfGIpPDQsQT0zPT0oMHxiKSx3PTA9PSgwfGIpOzspe2lmKCEobSYwIT0oMHxmZVtsPj4wXSkpKWJyZWFrIGU7aWYoYVtrPj4yXT0wLHA9MHxkVyhsLGspLCEo''@;'; put 'put ''Zj0wfGFbaz4+Ml0pKXtEPTU7YnJlYWsgZX1pZighKEEmKGw9OD09KDB8ZikpKSYmKCEodyZsKXx8MHxmZVtwPj4wXSkpYnJlYWs7YVtrPj4yXT0wLGw9cH1mPWFbYz4+Ml18Zjw8KGI8PDMpLGI9YisxfDAsbD1wfTU9PSgwfEQpJiYoYVtNPj4yXT1sLCRyKDAsOTk2OTQsTSkpLGxlPVJ9ZnVu''@;'; put 'put ''Y3Rpb24gZFcobCxjKXtsfD0wLGN8PTA7dmFyIHAsbSxmPTA7aWYobT1sZSxsZT1sZSsxNnwwLGFbKHA9bSk+PjJdPTAsKDB8KGY9MHx2RihsLDIwNDQ4LHApKSk9PSgwfGwpKXtmb3IoOygwfGwpIT0oMHwoZj0wfHZGKGwsMjA0NjQscCkpKTspbD1mO2Y9MHx2RihsLDIwNTEyLHApfXJldHVy''@;'; put 'put ''biAwIT0oMHwobD0wfGFbcD4+Ml0pKSYwPT0oMTUmbHwwKSYmKGFbcD4+Ml09bHw9MSksYVtjPj4yXT1hW2M+PjJdfGwsbGU9bSwwfGZ9ZnVuY3Rpb24gdkYobCxjLGYpe2x8PTAsY3w9MCxmfD0wO2Zvcih2YXIgcD0wLG09MCxBPTA7cD0wfGFbYz4+Ml07KXtpZighKDB8czIobCxwLG09MHxV''@;'; put 'put ''byhwKSkpKXtBPTQ7YnJlYWt9Yz1jKzh8MH1yZXR1cm4gND09KDB8QSkmJihhW2Y+PjJdPWFbZj4+Ml18YVtjKzQ+PjJdLGw9bCttfDApLDB8bH1mdW5jdGlvbiBsNyhsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoQT0wLGY9MDs0IT0oMHxBKTspe2ZvcihtPWM+''@;'; put 'put ''PihBPDwzKSYxNSxwPTE0MDA7MHxhW3ArMTY+PjJdOyl7aWYoKDB8bSk9PSgwfGFbcD4+Ml0pKXt3PTY7YnJlYWt9cD1wKzI0fDB9Nj09KDB8dykmJih3PTAsZj0rX1twKzg+PjNdK2YpLEE9QSsxfDB9cmV0dXJuIDEwKmYqK01sKGwsMHxhWzQ3MTg4XSwxLDApfWZ1bmN0aW9uIHlGKGwsYyxm''@;'; put 'put ''LHAsbSxBKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLGssRCxxLHBlLGdlLHc9MCxNPTAsUj0wLEc9MDtyZXR1cm4gRD1sZSxsZT1sZSs4MHwwLGI9RCs3MnwwLGs9RCs4fDAsTT1ELHc9K2w3KGx8PTAsQXw9MCksX1tNPj4zXT13Kj13LGFbbSsxMj4+Ml09QSxhWyhBPW0rMzJ8MCk+PjJd''@;'; put 'put ''PWFbKG09YysoKGw9cCszfDApPDw0KXwwKT4+Ml0sYVtBKzQ+PjJdPWFbbSs0Pj4yXSxhW0ErOD4+Ml09YVttKzg+PjJdLGFbQSsxMj4+Ml09YVttKzEyPj4yXSwoMHxwKT4oMHxmKSYmKEc9K19bYysocDw8NCkrOD4+M10tK19bYysobDw8NCkrOD4+M10pKkcrKFI9K19bYysocDw8NCk+PjNd''@;'; put 'put ''LStfW20+PjNdKSpSPHcmJihwPXArLTN8MCksYVsoZ2U9ays0OHwwKT4+Ml09YVsocGU9YysocDw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtwZSs0Pj4yXSxhW2dlKzg+PjJdPWFbcGUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtwZSsxMj4+Ml0sYVsocT1rKzMyfDApPj4yXT1hWyhsPWMrKHArMTw8''@;'; put 'put ''NCl8MCk+PjJdLGFbcSs0Pj4yXT1hW2wrND4+Ml0sYVtxKzg+PjJdPWFbbCs4Pj4yXSxhW3ErMTI+PjJdPWFbbCsxMj4+Ml0sYVsobT1rKzE2fDApPj4yXT1hWyhmPWMrKHArMjw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW2YrND4+Ml0sYVttKzg+PjJdPWFbZis4Pj4yXSxhW20rMTI+PjJdPWFb''@;'; put 'put ''ZisxMj4+Ml0sYVtrPj4yXT1hW0E+PjJdLGFbays0Pj4yXT1hW0ErND4+Ml0sYVtrKzg+PjJdPWFbQSs4Pj4yXSxhW2srMTI+PjJdPWFbQSsxMj4+Ml0sYVtiPj4yXT1rLGFbYis0Pj4yXT1NLHREKGIsOTIsaywxKSxhW3BlPj4yXT1hW2dlPj4yXSxhW3BlKzQ+PjJdPWFbZ2UrND4+Ml0sYVtw''@;'; put 'put ''ZSs4Pj4yXT1hW2dlKzg+PjJdLGFbcGUrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbbD4+Ml09YVtxPj4yXSxhW2wrND4+Ml09YVtxKzQ+PjJdLGFbbCs4Pj4yXT1hW3ErOD4+Ml0sYVtsKzEyPj4yXT1hW3ErMTI+PjJdLGFbZj4+Ml09YVttPj4yXSxhW2YrND4+Ml09YVttKzQ+PjJdLGFbZis4Pj4y''@;'; put 'put ''XT1hW20rOD4+Ml0sYVtmKzEyPj4yXT1hW20rMTI+PjJdLGFbKE09YysocCszPDw0KXwwKT4+Ml09YVtrPj4yXSxhW00rND4+Ml09YVtrKzQ+PjJdLGFbTSs4Pj4yXT1hW2srOD4+Ml0sYVtNKzEyPj4yXT1hW2srMTI+PjJdLGxlPUQsMHxwfWZ1bmN0aW9uIE9hKGwsYyxmLHAsbSxBKXtjfD0w''@;'; put 'put ''LGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0sUixwZSxnZSx3PTAsYj0wLEQ9MCxHPTAscT0wO3JldHVybiBSPWxlLGxlPWxlKzgwfDAsaz1SKzcyfDAsTT1SKzh8MCxEPVIsYj0rbDcobHw9MCxBfD0wKSxfW0Q+PjNdPWIqPWIsYVttKzg+PjJdPUEsYVsobT1tKzE2fDApPj4yXT1hWyhsPWMrKGY8''@;'; put 'put ''PDQpfDApPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEyPj4yXT1hW2wrMTI+PjJdLCgwfHApPigwfGYpJiYocT0rX1tjKyhmPDw0KSs4Pj4zXS0rX1tjKygodz1mKzN8MCk8PDQpKzg+PjNdKSpxKyhHPStfW2w+PjNdLStfW2MrKHc8PDQpPj4zXSkq''@;'; put 'put ''RzxifHwodz1mKSxhW00+PjJdPWFbKHA9YysodyszPDw0KXwwKT4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtwKzEyPj4yXSxhWyhBPU0rMTZ8MCk+PjJdPWFbKGY9YysodysyPDw0KXwwKT4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxh''@;'; put 'put ''W0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsxMj4+Ml09YVtmKzEyPj4yXSxhWyhwZT1NKzMyfDApPj4yXT1hWyhsPWMrKHcrMTw8NCl8MCk+PjJdLGFbcGUrND4+Ml09YVtsKzQ+PjJdLGFbcGUrOD4+Ml09YVtsKzg+PjJdLGFbcGUrMTI+PjJdPWFbbCsxMj4+Ml0sYVsoZ2U9TSs0OHwwKT4+Ml09''@;'; put 'put ''YVttPj4yXSxhW2dlKzQ+PjJdPWFbbSs0Pj4yXSxhW2dlKzg+PjJdPWFbbSs4Pj4yXSxhW2dlKzEyPj4yXT1hW20rMTI+PjJdLGFbaz4+Ml09Z2UsYVtrKzQ+PjJdPUQsdEQoayw5MixNLDApLGFbKEQ9Yysodzw8NCl8MCk+PjJdPWFbZ2U+PjJdLGFbRCs0Pj4yXT1hW2dlKzQ+PjJdLGFbRCs4''@;'; put 'put ''Pj4yXT1hW2dlKzg+PjJdLGFbRCsxMj4+Ml09YVtnZSsxMj4+Ml0sYVtsPj4yXT1hW3BlPj4yXSxhW2wrND4+Ml09YVtwZSs0Pj4yXSxhW2wrOD4+Ml09YVtwZSs4Pj4yXSxhW2wrMTI+PjJdPWFbcGUrMTI+PjJdLGFbZj4+Ml09YVtBPj4yXSxhW2YrND4+Ml09YVtBKzQ+PjJdLGFbZis4Pj4y''@;'; put 'put ''XT1hW0ErOD4+Ml0sYVtmKzEyPj4yXT1hW0ErMTI+PjJdLGFbcD4+Ml09YVtNPj4yXSxhW3ArND4+Ml09YVtNKzQ+PjJdLGFbcCs4Pj4yXT1hW00rOD4+Ml0sYVtwKzEyPj4yXT1hW00rMTI+PjJdLGxlPVIsMHx3fWZ1bmN0aW9uIEZBKGwsYyxmLHAsbSl7bHw9MDt2YXIgQSxiLHc9MCxrPTAs''@;'; put 'put ''TT0wLEQ9MCxSPTAsRz0wLHE9MDtNPShrPTEwKihwPStwKS8oK0QwKCsoKE09K19bKGZ8PTApPj4zXS0oRz0rX1soY3w9MCk+PjNdKSkqTSsoRD0rX1tmKzg+PjNdLShxPStfW2MrOD4+M10pKSpEKSkrMWUtNCkpKigoTT49MD8xZS00Oi0xZS00KStNKSxiPUctKFI9LjUqKGsqPShEPj0wPzFl''@;'; put 'put ''LTQ6LTFlLTQpK0QpKSxBPXEtKEQ9LjUqTSksRD1xK0Qsdz0oRz1SK0cpPih3PShxPWIrTSk+KE09RytNKT9xOk0pP0c6dyxwPUQ+KHA9KFI9QStrKT4oaz1EK2spP1I6ayk/RDpwLGs9RDwoaz1SPGs/UjprKT9EOmssX1tsPj4zXT1iPChNPUc8KE09cTxNP3E6TSk/RzpNKT9iOk0sX1tsKzg+''@;'; put 'put ''PjNdPUE8az9BOmssX1tsKzE2Pj4zXT1iPnc/Yjp3LF9bbCsyND4+M109QT5wP0E6cH1mdW5jdGlvbiBRZChsLGMsZixwLG0sQSx3KXtmfD0wLHB8PTAsbT0rbSxBPStBLHd8PTA7dmFyIGssTSxELFIsRyxxLHBlLGdlLGJlLGI9MDtmb3IocT1sZSxsZT1sZSs0OHwwLE09cSszMnwwLGs9cSsx''@;'; put 'put ''NnwwLEc9cSxSPTB8YVsoRD0xMisoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxhW0Q+PjJdPWN8PTAsZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSkseGgobCxBKSxwZT0xMC8oK0QwKCsoKGJlPStfW3A+PjNdLStfW2Y+PjNdKSpiZSsoZ2U9K19bKGM9cCs4fDApPj4zXS0rX1tmKzg+''@;'; put 'put ''PjNdKSpnZSkpKzFlLTQpLF9bcD4+M109cGUqKChiZT49MD8xZS00Oi0xZS00KStiZSksX1tjPj4zXT0oKGdlPj0wPzFlLTQ6LTFlLTQpK2dlKSpwZSxjPTA7ISgoMHxjKT49NCkmJihiPXc+PihjPDwzKSYyNTUpOylhW2s+PjJdPWFbZj4+Ml0sYVtrKzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+''@;'; put 'put ''Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09YVtmKzEyPj4yXSxhW00+PjJdPWFbcD4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtwKzEyPj4yXSxaNihHLGwsayxNLG0sQSxiKSxhW2Y+PjJdPWFbRz4+Ml0sYVtmKzQ+PjJdPWFbRys0Pj4y''@;'; put 'put ''XSxhW2YrOD4+Ml09YVtHKzg+PjJdLGFbZisxMj4+Ml09YVtHKzEyPj4yXSxjPWMrMXwwO2FbRD4+Ml09UixsZT1xfWZ1bmN0aW9uIFo2KGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbT0rbSxBPStBO3ZhciBrLE0sRCxxLGI9MCxSPTAsRz0wLHBlPTA7Zm9yKHE9bGUsbGU9''@;'; put 'put ''bGUrMzJ8MCxNPXErMTZ8MCxrPXEsRD0xNSYod3w9MCksYj0xNDAwO1I9MHxhW2I+PjJdOyl7aWYoKDB8RCk9PSgwfFIpKXtHPTQ7YnJlYWt9Yj1iKzI0fDB9ND09KDB8RykmJihfW3A+PjNdPShwZT0rX1tiKzg+PjNdKm0pKitfW3A+PjNdLF9bKFI9cCs4fDApPj4zXT1wZSorX1tSPj4zXSxH''@;'; put 'put ''PTB8YVtiKzE2Pj4yXSxhW2s+PjJdPWFbZj4+Ml0sYVtrKzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09YVtmKzEyPj4yXSxhW00+PjJdPWFbcD4+Ml0sYVtNKzQ+PjJdPWFbcCs0Pj4yXSxhW00rOD4+Ml09YVtwKzg+PjJdLGFbTSsxMj4+Ml09YVtwKzEy''@;'; put 'put ''Pj4yXSxjd1sxNSZHXShjLGssTSxtLEEsdyksX1tmPj4zXT0rX1twPj4zXSsgK19bZj4+M10sX1soRz1mKzh8MCk+PjNdPStfW1I+PjNdKyArX1tHPj4zXSksYVtsPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+''@;'; put 'put ''Ml0sbGU9cX1mdW5jdGlvbiB4ZihsKXtsfD0wO3ZhciBtLEEsYz0wLGY9MCxwPTA7aWYoQT1sZSxsZT1sZSsxNnwwLChtPTB8dnIoMzA0KSl8fCRyKDEsOTk4NzYsQSksYVttPj4yXT1sPTB8YVsocD1sKzE2fDApPj4yXSxhW3A+PjJdPW0sbCl7Zj1sKzE2fDAscD00MCsoYz1tKzE2fDApfDA7''@;'; put 'put ''ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7Zj1sKzU2fDAscD00MCsoYz1tKzU2fDApfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7YVttKzE0ND4+Ml09YVtsKzE0ND4+Ml0sYVttKzE0''@;'; put 'put ''OD4+Ml09YVtsKzE0OD4+Ml0sX1ttKzE1Mj4+M109K19bbCsxNTI+PjNdLGFbbSsxMzY+PjJdPWFbbCsxMzY+PjJdLGY9bCs5NnwwLHA9NDArKGM9bSs5NnwwKXwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpfWVsc2UgYVttKzE0ND4+Ml09''@;'; put 'put ''MyxhW20rMTQ4Pj4yXT0wLF9bbSsxNTI+PjNdPTE7cmV0dXJuIGxlPUEsMHxtfWZ1bmN0aW9uIE9DKGwpe3ZhciBjO2lmKGM9MHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pcmV0dXJuIEZ0KDB8YVtjKzIxMj4+Ml0pLEZ0KDB8YVtjKzIwOD4+Ml0pLEZ0KDB8YVtjKzIxNj4+Ml0pLEZ0KDB8YVtj''@;'; put 'put ''KzIyMD4+Ml0pLEZ0KDB8YVtjKzIyND4+Ml0pLEZ0KDB8YVtjKzIyOD4+Ml0pLEZ0KDB8YVtjKzIzMj4+Ml0pLEZ0KDB8YVtjKzIzNj4+Ml0pLEZ0KDB8YVtjKzI0MD4+Ml0pLEZ0KDB8YVtjKzI0ND4+Ml0pLEZ0KDB8YVtjKzI0OD4+Ml0pLEZ0KDB8YVtjKzI1Mj4+Ml0pLEZ0KDB8YVtjKzI1''@;'; put 'put ''Nj4+Ml0pLEZ0KDB8YVtjKzI3Mj4+Ml0pLEZ0KDB8YVtjKzI4ND4+Ml0pLEZ0KDB8YVtjKzI4MD4+Ml0pLGFbbD4+Ml09YVtjPj4yXSx2b2lkIEZ0KGMpO1ByKDk5OTAyLDk5OTA2LDExNyw5OTkxMyl9ZnVuY3Rpb24gUTEobCxjLGYscCxtLEEsdyl7dmFyIGIsaztmfD0wLHB8PTAsbXw9MCxB''@;'; put 'put ''fD0wLHd8PTAsaz0wfGFbMTYrKGx8PTApPj4yXSwwIT0oMHwoY3w9MCkpJjAhPSgzMjc2OCYoYj0wfGFbbCsxNTI+PjJdKXwwKSYmKGFbaysxOTI+PjJdPWMpLDAhPSg2NTUzNiZifDApJiYoYVtrKzIxMj4+Ml09MHxtMihBLHcpLDAhPSgwfGYpKSYmMCE9KDB8ZmVbZj4+MF0pPyhhW2srMjA4''@;'; put 'put ''Pj4yXT0wfG0yKGYsdyksbD0xKTpsPTA7ZG97aWYoNDE5NDMwNCZiKXtpZigwfHAmJjB8ZmVbcD4+MF0pe2FbaysyMjg+PjJdPTB8bTIocCx3KSxpdFsobD1rKzI2MHwwKT4+MV09MXxpdFtsPj4xXSxsPTE7YnJlYWt9KGM9MHxhW2srMTkyPj4yXSkmJihhW2srMjI4Pj4yXT0wfHJhKGMpLGw9''@;'; put 'put ''MSl9fXdoaWxlKDApO3JldHVybiAwIT0oMHxtKSYwIT0oODM4ODYwOCZifDApJiYwIT0oMHxmZVttPj4wXSkmJihhW2srMjQ0Pj4yXT0wfG0yKG0sdyksbD0xKSwwfGx9ZnVuY3Rpb24gd0YobCxjLGYpe2N8PTA7dmFyIG0sQSx3LGIscD0wO2lmKGI9bGUsbGU9bGUrODB8MCx3PWIsQT1iKzh8''@;'; put 'put ''MCxwPTB8YVs5MisoMHxhWzgrKDB8YVsxNisobT0wfGFbMTY4KygwfGFbKGx8PTApPj4yXSk+PjJdKT4+Ml0pPj4yXSk+PjJdLFMyKGwsZnw9MCksMCE9KDB8KGw9MHxMaShjLDE0MTA2MCkpKSYmMCE9KDB8ZmVbbD4+MF0pKXVvKGYsbCksKGw9MHxhWyhwPWYrNHwwKT4+Ml0pPj4+MD49KDB8''@;'; put 'put ''YVtmKzg+PjJdKT4+PjAmJihRMChmLDEpLGw9MHxhW3A+PjJdKSxmZVtsPj4wXT0wLGFbcD4+Ml09bD0wfGFbZj4+Ml07ZWxzZXtzd2l0Y2goKDB8bSkhPSgwfGMpJjAhPSgwfHApJiYodW8oZixwKSwobD0wfGFbKHA9Zis0fDApPj4yXSk+Pj4wPj0oMHxhW2YrOD4+Ml0pPj4+MCYmKFEwKGYs''@;'; put 'put ''MSksbD0wfGFbcD4+Ml0pLGFbcD4+Ml09bCsxLGZlW2w+PjBdPTk1KSwwfGtpKGMpKXtjYXNlIDA6cD0oMHxtKT09KDB8Yyk/MTExNDk0Ojk5OTI3LGw9KDB8YVtjPj4yXSk+Pj40O2JyZWFrO2Nhc2UgMTpwPTExMTQ4MSxsPSgwfGFbYz4+Ml0pPj4+NDticmVhaztjYXNlIDI6cD0xMTE0NTAs''@;'; put 'put ''bD0oMHxhW2M+PjJdKT4+PjQ7YnJlYWs7ZGVmYXVsdDpwPTAsbD0wfXVvKGYscCksYVt3Pj4yXT1sLG9vKEEsOTk5MzMsdyksdW8oZixBKSwobD0wfGFbKHA9Zis0fDApPj4yXSk+Pj4wPj0oMHxhW2YrOD4+Ml0pPj4+MCYmKFEwKGYsMSksbD0wfGFbcD4+Ml0pLGZlW2w+PjBdPTAsYVtwPj4y''@;'; put 'put ''XT1sPTB8YVtmPj4yXX1yZXR1cm4gbGU9YiwwfGx9ZnVuY3Rpb24gUzIobCxjKXtjfD0wO3ZhciBtLEEsdyxmPTAscD0wO3c9bGUsbGU9bGUrMTQ0fDAsQT13LG09dys4fDAsKDB8KGY9MHxhWzE2MCsobHw9MCk+PjJdKSk+MSYmNjQmYVtsKzE1Mj4+Ml18MCYmKHVvKGMsMHxhWygwfGFbMzA4''@;'; put 'put ''KygwfGFbbD4+Ml0pPj4yXSkrKGY8PDIpPj4yXSksKGY9MHxhWyhwPWMrNHwwKT4+Ml0pPj4+MD49KDB8YVtjKzg+PjJdKT4+PjAmJihRMChjLDEpLGY9MHxhW3A+PjJdKSxhW3A+PjJdPWYrMSxmZVtmPj4wXT05NSksKDB8KHA9MHxhW2wrMTk2Pj4yXSkpPjB8KDB8KGY9MHxhW2wrMjAwPj4y''@;'; put 'put ''XSkpPjAmJihhW0E+PjJdPXAsYVtBKzQ+PjJdPWYsb28obSw5OTkzNyxBKSx1byhjLG0pKSxsZT13fWZ1bmN0aW9uIHBXKGwsYyxmKXtjfD0wO3ZhciBELFIsRyxxLHBlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtpZihwZT1sZSxsZT1sZSs0OHwwLFI9cGUrMTZ8MCxHPXBlLHE9K19b''@;'; put 'put ''MTUyKygwfGFbMTYrKGx8PTApPj4yXSk+PjNdLCgoRD0wfHM3KGZ8PTAsMCxtPXBlKzMyfDApKS0xfDApPj4+MD49Mil7Zm9yKF9bRz4+M109Yj0uNSooKHA9K19bYysxNj4+M10pKyArX1tjPj4zXSksX1tHKzg+PjNdPWs9LjUqKChBPStfW2MrMjQ+PjNdKSsgK19bYys4Pj4zXSksYj1wLWIs''@;'; put 'put ''az1BLWssKE09cT4uNSkmJnhoKGwsLjUpLEE9MCxtPTB8YVs4Kyh3PTB8YVttPj4yXSk+PjJdO2Y9MHxhW20+PjJdOykwPT0ram5bKGM9bSs0fDApPj4yXT9wPUE6KGhsKGwsZikscD0wfGFbbSsxMj4+Ml0/Ni4yODMxODUzMDcxNzk1ODYqK2puW2M+PjJdK0E6Ni4yODMxODUzMDcxNzk1ODYs''@;'; put 'put ''YVtSPj4yXT1hW0c+PjJdLGFbUis0Pj4yXT1hW0crND4+Ml0sYVtSKzg+PjJdPWFbRys4Pj4yXSxhW1IrMTI+PjJdPWFbRysxMj4+Ml0sYz0wfGRFKFIsYixrLEEscCksUWYobCwwfGFbYz4+Ml0sMHxhW2MrND4+Ml0sMCwwLDEpLGhfKGMpKSxBPXAsbT1tKzEyfDA7TSYmeGgobCxxKSxIQSh3''@;'; put 'put ''KX1yZXR1cm4gbGU9cGUsMHxEfWZ1bmN0aW9uIHM3KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgTSxSLEcscSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTA7cT1sZSxsZT1sZSsxNnwwLEQ9cSs4fDAsTT1xLEc9MHx2cigxMiksQT0wfHJhKGwpO2U6ZG97aWYoIWMpZm9yKGM9MSxwPUE7''@;'; put 'put ''Oyl7c3dpdGNoKDB8ZmVbcD4+MF0pe2Nhc2UgMDpicmVhayBlO2Nhc2UgNTg6Yz1jKzF8MH1wPXArMXwwfX13aGlsZSgwKTtmb3IoYVtHKzQ+PjJdPUEsUj0wfHZyKDEyKygxMipjfDApfDApLGFbRys4Pj4yXT1SLGs9MSxtPTAsYz0wLHA9QTs7KXtpZighKHA9MHxsdihwLDEwNzk4NCkpKXtw''@;'; put 'put ''PTIwO2JyZWFrfWlmKCEoKHc9K1ZUKHApKT49MCkpe3A9MTc7YnJlYWt9aWYoKGI9dy1rKT4wJiYoMD09KDB8YVs1MTU2XSl8fGI8MWUtNSZiPi0xZS01P3c9azooYVtNPj4yXT1sLCRyKDAsOTk5NDgsTSksYVs1MTU2XT0wLHc9ayxjPTMpKSxiPWstdyx3PjAmJihmZVtSKygxMiptfDApKzg+''@;'; put 'put ''PjBdPTEpLDB8ZmVbcD4+MF0mJihhW1IrKDEyKm18MCk+PjJdPXApLHA9bSsxfDAsam5bUisoMTIqbXwwKSs0Pj4yXT13LGI8MWUtNSZiPi0xZS01KXttPXAscD0zMDticmVha31rPWIsbT1wLHA9MH1lOmRve2lmKDE3PT0oMHxwKSkwfGFbNTE1Nl0/KGFbRD4+Ml09bCwkcigxLDk5OTgzLEQp''@;'; put 'put ''LGFbNTE1Nl09MCxjPTIpOmM9MSxIQShHKTtlbHNlIGlmKDIwPT0oMHxwKSlpZihrPjApe2ZvcihwPTAsQT0wOyEoKDB8cCk+PSgwfG0pKTspRD1BKygwPT0ram5bUisoMTIqcHwwKSs0Pj4yXSYxKXwwLHA9cCsxfDAsQT1EO2lmKCgwfEEpPD0wKXtqblsocD1SKygxMioobSstMXwwKXwwKSs0''@;'; put 'put ''fDApPj4yXT1rKyAram5bcD4+Ml0scD0zMDticmVha31mb3Iodz1rLysoMHxBKSxwPTA7Oyl7aWYoKDB8cCk+PSgwfG0pKXtwPTMwO2JyZWFrIGV9MD09K2puWyhBPVIrKDEyKnB8MCkrNHwwKT4+Ml0mJihqbltBPj4yXT13KSxwPXArMXwwfX1lbHNlIHA9MzB9d2hpbGUoMCk7aWYoMzA9PSgw''@;'; put 'put ''fHApKXtmb3IoO3A9bSstMXwwLCEoKDB8bSk8PTB8fCtqbltSKygxMipwfDApKzQ+PjJdPjApOyltPXA7YVtSKygxMiptfDApPj4yXT0wLGFbRz4+Ml09bSxhW2Y+PjJdPUd9cmV0dXJuIGxlPXEsMHxjfWZ1bmN0aW9uIEhBKGwpe0Z0KDB8YVs0KyhsfD0wKT4+Ml0pLEZ0KDB8YVtsKzg+PjJd''@;'; put 'put ''KSxGdChsKX1mdW5jdGlvbiBWVChsKXt2YXIgZixwLGM9MCxtPTA7cmV0dXJuIHA9bGUsbGU9bGUrMTZ8MCxmPXAsKGw9MHwkcyhsfD0wLDU5KSk/KG09bCsxfDAsZmVbbD4+MF09MCxjPShjPStpMyhtLGYpKT49MCYmKDB8YVtmPj4yXSkhPSgwfG0pP2M6LTEpOmM9MCxsZT1wLCtjfWZ1bmN0''@;'; put 'put ''aW9uIGJGKGwsYyxmLHApe2N8PTAscHw9MDt2YXIgRyxxLHBlLGdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7aWYoZ2U9bGUsbGU9bGUrODB8MCxxPWdlLHBlPStfWzE1MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSwoKEc9MHxzNyhmfD0wLDAsQT1nZSs2NHwwKSktMXwwKT4+''@;'; put 'put ''PjA+PTIpe2ZvcihwPyhhW3E+PjJdPWFbKFI9YyszMnwwKT4+Ml0sYVtxKzQ+PjJdPWFbUis0Pj4yXSxhW3ErOD4+Ml09YVtSKzg+PjJdLGFbcSsxMj4+Ml09YVtSKzEyPj4yXSxhWyhSPXErMTZ8MCk+PjJdPWFbKEQ9Yys0OHwwKT4+Ml0sYVtSKzQ+PjJdPWFbRCs0Pj4yXSxhW1IrOD4+Ml09''@;'; put 'put ''YVtEKzg+PjJdLGFbUisxMj4+Ml09YVtEKzEyPj4yXSxhWyhSPXErMzJ8MCk+PjJdPWFbYz4+Ml0sYVtSKzQ+PjJdPWFbYys0Pj4yXSxhW1IrOD4+Ml09YVtjKzg+PjJdLGFbUisxMj4+Ml09YVtjKzEyPj4yXSxhWyhSPXErNDh8MCk+PjJdPWFbKEQ9YysxNnwwKT4+Ml0sYVtSKzQ+PjJdPWFb''@;'; put 'put ''RCs0Pj4yXSxhW1IrOD4+Ml09YVtEKzg+PjJdLGFbUisxMj4+Ml09YVtEKzEyPj4yXSk6KGFbcT4+Ml09YVtjPj4yXSxhW3ErND4+Ml09YVtjKzQ+PjJdLGFbcSs4Pj4yXT1hW2MrOD4+Ml0sYVtxKzEyPj4yXT1hW2MrMTI+PjJdLGFbKFI9cSsxNnwwKT4+Ml09YVsoRD1jKzE2fDApPj4yXSxh''@;'; put 'put ''W1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdLGFbKFI9cSszMnwwKT4+Ml09YVsoRD1jKzMyfDApPj4yXSxhW1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdLGFbKFI9cSs0''@;'; put 'put ''OHwwKT4+Ml09YVsoRD1jKzQ4fDApPj4yXSxhW1IrND4+Ml09YVtEKzQ+PjJdLGFbUis4Pj4yXT1hW0QrOD4+Ml0sYVtSKzEyPj4yXT1hW0QrMTI+PjJdKSxNPShrPStfWyhiPXErMTZ8MCk+PjNdKS0obT0rX1txPj4zXSksX1soRD1xKzMyfDApPj4zXT1tLF9bYj4+M109bSwoUj1wZT4uNSkm''@;'; put 'put ''JnhoKGwsLjUpLHc9cSs0OHwwLHA9MHxhWzgrKEE9MHxhW0E+PjJdKT4+Ml07Zj0wfGFbcD4+Ml07KTAhPStqblsoYz1wKzR8MCk+PjJdJiYoaGwobCxmKSxfW0Q+PjNdPW09MHxhW3ArMTI+PjJdP00qK2puW2M+PjJdKyArX1txPj4zXTprLF9bYj4+M109bSxrYShsLHEsNCwxKSxfW3c+PjNd''@;'; put 'put ''PW09K19bYj4+M10sX1txPj4zXT1tKSxwPXArMTJ8MDtSJiZ4aChsLHBlKSxIQShBKX1yZXR1cm4gbGU9Z2UsMHxHfWZ1bmN0aW9uIFJDKGwsYyl7Y3w9MDt2YXIgcCxmPTAsbT0wLEE9MCx3PTA7Zj0wfGFbMTYrKGx8PTApPj4yXSw0MjU5ODQwJihwPTB8YVtsKzE1Mj4+Ml0pfDAmJihhW2Yr''@;'; put 'put ''MjY0Pj4yXT1BPShtPTEzMTA3MiZwKT4+PjE2XjIsYVsodz1mKzI2OHwwKT4+Ml09QSsyLEZ0KDB8YVsoQT1mKzI3MnwwKT4+Ml0pLGY9MHx2cihhW3c+PjJdPDw0KSxhW0E+PjJdPWYsYVtmPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2Yr''@;'; put 'put ''MTI+PjJdPWFbYysxMj4+Ml0sYVsoQT1mKzE2fDApPj4yXT1hWyhjPWMrMTZ8MCk+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sODE5MiZwfHxNaChsLGYsZiwyKSxtfHxVSShmKSl9ZnVuY3Rpb24gTkEobCxjKXt2YXIg''@;'; put 'put ''RCxHLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wLHE9MDtwZT1sZSxsZT1sZSsxNDR8MCxmPXBlKzgwfDAsbT1wZSsxNnwwLEE9cGUsISgoTT0rX1soY3w9MCk+PjNdKT4oRD0rX1soRz0xNisobHw9MCl8MCk+PjNdKSkmJiEoTTwoUj0rX1tsPj4zXSkpJiYhKChwPStf''@;'; put 'put ''W2MrOD4+M10pPihiPStfW2wrMjQ+PjNdKSkmJiEocDwoaz0rX1tsKzg+PjNdKSkmJiEoKE09K19bYysxNj4+M10pPkR8TTxSKSYmISgoTT0rX1tjKzI0Pj4zXSk+YnxNPGspJiYhKChNPStfW2MrMzI+PjNdKT5EfE08UikmJiEoKE09K19bYys0MD4+M10pPmJ8TTxrKSYmISgoTT0rX1tjKzQ4''@;'; put 'put ''Pj4zXSk+RHxNPFIpJiYhKChSPStfW2MrNTY+PjNdKT5ifFI8ayl8fChxPTExKTtlOmRve2lmKDExPT0oMHxxKSl7aWYoISgwfEJDKGMpKSl7d3UoQSxjLDMsLjUsZixtKSxOQShsLGYpLE5BKGwsbSk7YnJlYWt9Zm9yKEE9bCsyNHwwLHc9bCs4fDAsbT0wOzspe2lmKDQ9PSgwfG0pKWJyZWFr''@;'; put 'put ''IGU7KHA9K19bYysobTw8NCk+PjNdKT4rX1tHPj4zXT8oZj1HLHE9MTYpOnA8K19bbD4+M10mJihmPWwscT0xNiksMTY9PSgwfHEpJiYocT0wLF9bZj4+M109cCksKHA9K19bYysobTw8NCkrOD4+M10pPitfW0E+PjNdPyhmPUcscT0xOSk6cDwrX1t3Pj4zXSYmKGY9bCxxPTE5KSwxOT09KDB8''@;'; put 'put ''cSkmJihxPTAsX1tmKzg+PjNdPXApLG09bSsxfDB9fX13aGlsZSgwKTtsZT1wZX1mdW5jdGlvbiBCQyhsKXt2YXIgYyxmLHAsbSxBLGIsdz0wO3JldHVybiBjPWxlLGxlPWxlKzQ4fDAsZj1jKzMyfDAscD1jKzE2fDAsYj00OCsobHw9MCl8MCx3PWwrMTZ8MCxhWyhtPWMpPj4yXT1hW2w+PjJd''@;'; put 'put ''LGFbbSs0Pj4yXT1hW2wrND4+Ml0sYVttKzg+PjJdPWFbbCs4Pj4yXSxhW20rMTI+PjJdPWFbbCsxMj4+Ml0sYVtwPj4yXT1hW2I+PjJdLGFbcCs0Pj4yXT1hW2IrND4+Ml0sYVtwKzg+PjJdPWFbYis4Pj4yXSxhW3ArMTI+PjJdPWFbYisxMj4+Ml0sYVtmPj4yXT1hW3c+PjJdLGFbZis0Pj4y''@;'; put 'put ''XT1hW3crND4+Ml0sYVtmKzg+PjJdPWFbdys4Pj4yXSxhW2YrMTI+PjJdPWFbdysxMj4+Ml0sQT0rbFEobSxwLGYpLHc9bCszMnwwLGFbbT4+Ml09YVtsPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEyPj4yXT1hW2wrMTI+PjJdLGFbcD4+Ml09YVti''@;'; put 'put ''Pj4yXSxhW3ArND4+Ml09YVtiKzQ+PjJdLGFbcCs4Pj4yXT1hW2IrOD4+Ml0sYVtwKzEyPj4yXT1hW2IrMTI+PjJdLGFbZj4+Ml09YVt3Pj4yXSxhW2YrND4+Ml09YVt3KzQ+PjJdLGFbZis4Pj4yXT1hW3crOD4+Ml0sYVtmKzEyPj4yXT1hW3crMTI+PjJdLGw9QTw0JitsUShtLHAsZik8NCYx''@;'; put 'put ''LGxlPWMsMHxsfWZ1bmN0aW9uIF9GKGwsYyl7bHw9MDt2YXIgcGUsYmUsT2UsTGUsUmUsSGUsVmUscWUscnQsV2UsYXQsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAsZ2U9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wO2lmKGF0PWxl''@;'; put 'put ''LGxlPWxlKzI3MnwwLGJlPWF0KzI1NnwwLE9lPWF0KzIyNHwwLExlPWF0KzE5MnwwLEhlPWF0KzY0fDAsVmU9YXQscWU9YXQrMTYwfDAscnQ9YXQrOTZ8MCxXZT1hdCszMnwwLHBlPTB8YVsxNDQrKGdlPTB8YVsxNisoY3w9MCk+PjJdKT4+Ml0sYVsoUmU9YXQrMTI4fDApPj4yXT1hWyhxPWdl''@;'; put 'put ''KzE2fDApPj4yXSxhW1JlKzQ+PjJdPWFbcSs0Pj4yXSxhW1JlKzg+PjJdPWFbcSs4Pj4yXSxhW1JlKzEyPj4yXT1hW3ErMTI+PjJdLGFbUmUrMTY+PjJdPWFbcSsxNj4+Ml0sYVtSZSsyMD4+Ml09YVtxKzIwPj4yXSxhW1JlKzI0Pj4yXT1hW3ErMjQ+PjJdLGFbUmUrMjg+PjJdPWFbcSsyOD4+''@;'; put 'put ''Ml0sZ2U9MHxhWzg4KygwfGFbZ2UrOD4+Ml0pPj4yXSxhW1ZlPj4yXT0wLGFbVmUrND4+Ml09MCxhW1ZlKzg+PjJdPTAsYVtWZSsxMj4+Ml09MCxhW1ZlKzE2Pj4yXT0wLGFbVmUrMjA+PjJdPTAsYVtWZSsyND4+Ml09MCxhW1ZlKzI4Pj4yXT0wLGdlKXtmb3IoK19bUmU+PjNdPT0rX1soYz1S''@;'; put 'put ''ZSsxNnwwKT4+M10mJitfWyhmPVJlKzh8MCk+PjNdPT0rX1socD1SZSsyNHwwKT4+M10mJihfW2Y+PjNdPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfW1JlPj4zXT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1twPj4zXT0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyLF9bYz4+M109LTE3OTc2OTMxMzQ4''@;'; put 'put ''NjIzMTU3ZTI5Miksdz1PZSs4fDAsYj1PZSsxNnwwLGs9T2UrMjR8MCxNPUhlKzE2fDAsRD1IZSsyNHwwLFI9cGUrMTQ0fDAsRz1MZSsxNnwwLHE9Z2UrMTJ8MCxjPTAscD0wfGFbZ2UrOD4+Ml0sZj0wLG09MCxBPTA7ISgoMHxBKT49KDB8YVtnZT4+Ml0pKTspe3N3aXRjaChhW0hlPj4yXT1h''@;'; put 'put ''W1ZlPj4yXSxhW0hlKzQ+PjJdPWFbVmUrND4+Ml0sYVtIZSs4Pj4yXT1hW1ZlKzg+PjJdLGFbSGUrMTI+PjJdPWFbVmUrMTI+PjJdLGFbSGUrMTY+PjJdPWFbVmUrMTY+PjJdLGFbSGUrMjA+PjJdPWFbVmUrMjA+PjJdLGFbSGUrMjQ+PjJdPWFbVmUrMjQ+PjJdLGFbSGUrMjg+PjJdPWFbVmUr''@;'; put 'put ''Mjg+PjJdLDB8YVtwPj4yXSl7Y2FzZSAxOmNhc2UgMDpfW09lPj4zXT0oRXQ9K19bcCs4Pj4zXSktKFp0PStfW3ArMjQ+PjNdKSxfW3c+PjNdPShrdD0rX1twKzE2Pj4zXSktKHN0PStfW3ArMzI+PjNdKSxfW2I+PjNdPVp0K0V0LF9baz4+M109c3Qra3QsYVsoU3Q9cCs4MHwwKT4+Ml09YVtP''@;'; put 'put ''ZT4+Ml0sYVtTdCs0Pj4yXT1hW09lKzQ+PjJdLGFbU3QrOD4+Ml09YVtPZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW09lKzEyPj4yXSxhWyhTdD1wKzk2fDApPj4yXT1hW2I+PjJdLGFbU3QrND4+Ml09YVtiKzQ+PjJdLGFbU3QrOD4+Ml09YVtiKzg+PjJdLGFbU3QrMTI+PjJdPWFbYisxMj4+Ml0s''@;'; put 'put ''YVtiZT4+Ml09YVtPZT4+Ml0sYVtiZSs0Pj4yXT1hW09lKzQ+PjJdLGFbYmUrOD4+Ml09YVtPZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW09lKzEyPj4yXSxWQShSZSxiZSksYVtiZT4+Ml09YVtiPj4yXSxhW2JlKzQ+PjJdPWFbYis0Pj4yXSxhW2JlKzg+PjJdPWFbYis4Pj4yXSxhW2JlKzEyPj4y''@;'; put 'put ''XT1hW2IrMTI+PjJdLFZBKFJlLGJlKTticmVhaztjYXNlIDM6Y2FzZSAyOlN0PXArODB8MCxqVChxZSwwfGFbNCsoY3Q9cCs4fDApPj4yXSwwfGFbY3Q+PjJdLFJlKSxhW1N0Pj4yXT1hW3FlPj4yXSxhW1N0KzQ+PjJdPWFbcWUrND4+Ml0sYVtTdCs4Pj4yXT1hW3FlKzg+PjJdLGFbU3QrMTI+''@;'; put 'put ''PjJdPWFbcWUrMTI+PjJdLGFbU3QrMTY+PjJdPWFbcWUrMTY+PjJdLGFbU3QrMjA+PjJdPWFbcWUrMjA+PjJdLGFbU3QrMjQ+PjJdPWFbcWUrMjQ+PjJdLGFbU3QrMjg+PjJdPWFbcWUrMjg+PjJdO2JyZWFrO2Nhc2UgNTpjYXNlIDQ6Y3Q9cCs4MHwwLGpUKHJ0LDB8YVs0KyhTdD1wKzh8MCk+''@;'; put 'put ''PjJdLDB8YVtTdD4+Ml0sUmUpLGFbY3Q+PjJdPWFbcnQ+PjJdLGFbY3QrND4+Ml09YVtydCs0Pj4yXSxhW2N0Kzg+PjJdPWFbcnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtydCsxMj4+Ml0sYVtjdCsxNj4+Ml09YVtydCsxNj4+Ml0sYVtjdCsyMD4+Ml09YVtydCsyMD4+Ml0sYVtjdCsyND4+Ml09''@;'; put 'put ''YVtydCsyND4+Ml0sYVtjdCsyOD4+Ml09YVtydCsyOD4+Ml07YnJlYWs7Y2FzZSA2OmN0PXArODB8MCxqVChXZSwwfGFbNCsoU3Q9cCs4fDApPj4yXSwwfGFbU3Q+PjJdLFJlKSxhW2N0Pj4yXT1hW1dlPj4yXSxhW2N0KzQ+PjJdPWFbV2UrND4+Ml0sYVtjdCs4Pj4yXT1hW1dlKzg+PjJdLGFb''@;'; put 'put ''Y3QrMTI+PjJdPWFbV2UrMTI+PjJdLGFbY3QrMTY+PjJdPWFbV2UrMTY+PjJdLGFbY3QrMjA+PjJdPWFbV2UrMjA+PjJdLGFbY3QrMjQ+PjJdPWFbV2UrMjQ+PjJdLGFbY3QrMjg+PjJdPWFbV2UrMjg+PjJdO2JyZWFrO2Nhc2UgNzphWyhjdD1wKzExMnwwKT4+Ml09MHx2cig1NiksU3Q9MHxy''@;'; put 'put ''YSgwfGFbcCs0MD4+Ml0pLGFbKGJ0PTB8YVtjdD4+Ml0pPj4yXT1TdCxmZVtidCs0OD4+MF09MHxmZVsxMDAwMjkrKDB8YVtwKzI0Pj4yXSk+PjBdLGFbSGU+PjJdPWYsX1tNPj4zXT1tLGFbRD4+Ml09LTEyOCZhW0Q+PjJdfDEyNyZjLGJ0PTB8bWlbNjMmYVsoYnQ9MHxhW1I+PjJdKT4+Ml1d''@;'; put 'put ''KGJ0LEhlLDEpLGFbNCsoU3Q9MHxhW2N0Pj4yXSk+PjJdPWJ0LGxEKGJlLHBlLFN0KSxacmUoTGUsK19bcCs4Pj4zXSwrX1twKzE2Pj4zXSwwfGFbY3Q+PjJdKSxhWyhjdD1wKzgwfDApPj4yXT1hW0xlPj4yXSxhW2N0KzQ+PjJdPWFbTGUrND4+Ml0sYVtjdCs4Pj4yXT1hW0xlKzg+PjJdLGFb''@;'; put 'put ''Y3QrMTI+PjJdPWFbTGUrMTI+PjJdLGFbY3QrMTY+PjJdPWFbTGUrMTY+PjJdLGFbY3QrMjA+PjJdPWFbTGUrMjA+PjJdLGFbY3QrMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbY3QrMjg+PjJdPWFbTGUrMjg+PjJdLGFbYmU+PjJdPWFbTGU+PjJdLGFbYmUrND4+Ml09YVtMZSs0Pj4yXSxhW2JlKzg+''@;'; put 'put ''PjJdPWFbTGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtMZSsxMj4+Ml0sVkEoUmUsYmUpLGFbYmU+PjJdPWFbRz4+Ml0sYVtiZSs0Pj4yXT1hW0crND4+Ml0sYVtiZSs4Pj4yXT1hW0crOD4+Ml0sYVtiZSsxMj4+Ml09YVtHKzEyPj4yXSxWQShSZSxiZSksMHxhW3E+PjJdfHwoYVtxPj4yXT0xMDkp''@;'; put 'put ''O2JyZWFrO2Nhc2UgMTA6Zj0wfGFbcCsxNj4+Ml0sbT0rX1twKzg+PjNdO2JyZWFrO2Nhc2UgMTU6Yz0wfGFbcCs4Pj4yXX1wPXArMTIwfDAsQT1BKzF8MH1hW2w+PjJdPWFbUmU+PjJdLGFbbCs0Pj4yXT1hW1JlKzQ+PjJdLGFbbCs4Pj4yXT1hW1JlKzg+PjJdLGFbbCsxMj4+Ml09YVtSZSsx''@;'; put 'put ''Mj4+Ml0sYVtsKzE2Pj4yXT1hW1JlKzE2Pj4yXSxhW2wrMjA+PjJdPWFbUmUrMjA+PjJdLGFbbCsyND4+Ml09YVtSZSsyND4+Ml0sYVtsKzI4Pj4yXT1hW1JlKzI4Pj4yXX1lbHNlIGFbbD4+Ml09YVtSZT4+Ml0sYVtsKzQ+PjJdPWFbUmUrND4+Ml0sYVtsKzg+PjJdPWFbUmUrOD4+Ml0sYVts''@;'; put 'put ''KzEyPj4yXT1hW1JlKzEyPj4yXSxhW2wrMTY+PjJdPWFbUmUrMTY+PjJdLGFbbCsyMD4+Ml09YVtSZSsyMD4+Ml0sYVtsKzI0Pj4yXT1hW1JlKzI0Pj4yXSxhW2wrMjg+PjJdPWFbUmUrMjg+PjJdO2xlPWF0fWZ1bmN0aW9uIFZBKGwsYyl7dmFyIHAsZj0wOyhmPStfWyhjfD0wKT4+M10pPitf''@;'; put 'put ''WyhwPTE2KyhsfD0wKXwwKT4+M10mJihfW3A+PjNdPWYpLGY8K19bbD4+M10mJihfW2w+PjNdPWYpLChmPStfW2MrOD4+M10pPitfWyhjPWwrMjR8MCk+PjNdJiYoX1tjPj4zXT1mKSxmPCtfWyhjPWwrOHwwKT4+M10mJihfW2M+PjNdPWYpfWZ1bmN0aW9uIGpUKGwsYyxmLHApe2x8PTAsZnw9''@;'; put 'put ''MCxwfD0wO3ZhciBrLE0sRCxSLEcscGUsbT0wLEE9MCx3PTAsYj0wLHE9MDtmb3IocGU9bGUsbGU9bGUrNDh8MCxrPXBlKzMyfDAsX1soUj0oRD1wZSkrMTZ8MCk+PjNdPW09K19bKGN8PTApPj4zXSxfW0Q+PjNdPW0sX1soRz1EKzI0fDApPj4zXT1tPStfW2MrOD4+M10sX1soTT1EKzh8MCk+''@;'; put 'put ''PjNdPW0sYj0xOyEoKDB8Yik+PSgwfGYpKTspKG09K19bKHc9YysyNHwwKT4+M10pPCtfW0Q+PjNdPyhBPUQscT01KTptPitfW1I+PjNdJiYoQT1SLHE9NSksNT09KDB8cSkmJihxPTAsX1tBPj4zXT1tKSwobT0rX1tjKzMyPj4zXSk8K19bTT4+M10/KGM9RCxxPTgpOm0+K19bRz4+M10mJihj''@;'; put 'put ''PVIscT04KSw4PT0oMHxxKSYmKHE9MCxfW2MrOD4+M109bSksYj1iKzF8MCxjPXc7YVtrPj4yXT1hW0Q+PjJdLGFbays0Pj4yXT1hW0QrND4+Ml0sYVtrKzg+PjJdPWFbRCs4Pj4yXSxhW2srMTI+PjJdPWFbRCsxMj4+Ml0sVkEocCxrKSxhW2s+PjJdPWFbUj4+Ml0sYVtrKzQ+PjJdPWFbUis0''@;'; put 'put ''Pj4yXSxhW2srOD4+Ml09YVtSKzg+PjJdLGFbaysxMj4+Ml09YVtSKzEyPj4yXSxWQShwLGspLGFbbD4+Ml09YVtEPj4yXSxhW2wrND4+Ml09YVtEKzQ+PjJdLGFbbCs4Pj4yXT1hW0QrOD4+Ml0sYVtsKzEyPj4yXT1hW0QrMTI+PjJdLGFbbCsxNj4+Ml09YVtEKzE2Pj4yXSxhW2wrMjA+PjJd''@;'; put 'put ''PWFbRCsyMD4+Ml0sYVtsKzI0Pj4yXT1hW0QrMjQ+PjJdLGFbbCsyOD4+Ml09YVtEKzI4Pj4yXSxsZT1wZX1mdW5jdGlvbiBacmUobCxjLGYscCl7bHw9MCxjPStjLGY9K2Y7dmFyIHcsYixrLEQsbT0wLEE9MCxNPTA7c3dpdGNoKEQ9bGUsbGU9bGUrMTZ8MCx3PUQrOHwwLGI9RCxtPStfWzMy''@;'; put 'put ''KyhwfD0wKT4+M10saz0rX1twKzQwPj4zXSwwfGZlW3ArNDg+PjBdKXtjYXNlIDEwODpfW3c+PjNdPWMsbSs9YyxBPWIsTT01O2JyZWFrO2Nhc2UgMTEwOl9bdz4+M109Yy0obSo9LjUpLG0rPWMsQT1iLE09NTticmVhaztjYXNlIDExNDpfW2I+PjNdPWMsbT1jLW0sQT13LE09NTticmVhaztk''@;'; put 'put ''ZWZhdWx0OmM9MCxtPTB9NT09KDB8TSkmJihfW0E+PjNdPW0sYz0rX1t3Pj4zXSxtPStfW2I+PjNdKSxmPStfW3ArMTY+PjNdK2YsX1tsPj4zXT1jLF9bbCs4Pj4zXT1mLWssX1tsKzE2Pj4zXT1tLF9bbCsyND4+M109ZixsZT1EfWZ1bmN0aW9uIGdXKGwsYyl7Y3w9MDt2YXIgcCx3LGIsayxm''@;'; put 'put ''PTAsbT0wLEE9MCxNPTA7Zm9yKGs9bGUsbGU9bGUrMTZ8MCxiPWssdz0wfGFbMTUyKyhsfD0wKT4+Ml0sX1tsKzQ4OD4+M109cD0oQT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW2wrMzUyPj4zXSkqKE09K19bbCs0MzI+PjNdKSxfW2wrNDk2Pj4zXT1BKj1tPStfW2wrNDQwPj4zXSxfW2wrNTIw''@;'; put 'put ''Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4Kk0sX1soZj1sKzUyOHwwKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCptLDQwOTYmd3wwJiYoX1tmPj4zXT0tLjAxMzg4ODg4ODg4ODg4ODg4OCptKSxNPSsoKDB8YVtsKzQ0OD4+Ml0pPj4+MCksbT0rKCgwfGFbbCs0NTI+PjJdKT4+PjApLF9bbCsz''@;'; put 'put ''Njg+PjNdPSgoZj0wPT0oMHxhW2wrMzYwPj4yXSkpP006bSkvcCxfW2wrMzc2Pj4zXT0oZj9tOk0pL0EsZG0obCwwfHYyKGMsMHxzaShjLDAsMTAxNTIyLDApLDE5NTA1OSkpLGFbbCsxNjA+PjJdPTAsZnVuY3Rpb24gR3JlKGwsYyl7Y3w9MDt2YXIgZjtmPTB8eGYobHw9MCksYVtmKzQ+PjJd''@;'; put 'put ''PTAsYVtmKzg+PjJdPWMsYVtmKzEyPj4yXT0wLE5IKGwsMHxhWzEyKygwfGFbYysxNj4+Ml0pPj4yXSxjKSxmdW5jdGlvbiBJUihsLGMpe2N8PTA7dmFyIGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys4Pj4yXSkmJkNvWzEyNyZmXShsKX0obCxjKX0obCxjKSwyJnd8''@;'; put 'put ''MCYmZnVuY3Rpb24gbVcobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTA7Zm9yKGhsKGx8PTAsMTM0ODAwKSwwfChmPTB8TGkoYywxNDA5NzcpKSYmMHxmZVtmPj4wXSYmaGwobCxmKSwwfChmPTB8TGkoYywxMDE0NDYpKSYmMHxmZVtmPj4wXSYmbWEobCxmKSxEb2UobCxjKSxBPTB8RHQo''@;'; put 'put ''Yyk7QTspezB8KGY9MHxMaShBLDE0MDgyMykpJiYwfGZlW2Y+PjBdJiZtYShsLGYpLDB8KGY9MHxMaShBLDEzNzcyOSkpJiYwfGZlW2Y+PjBdJiZobChsLGYpLGY9MHxMaShBLDEwMTQxOCk7ZG97aWYoMHxmJiYwfGZlW2Y+PjBdKXtpZighKDB8JHMoZiw1OCkpKXttYShsLGYpO2JyZWFrfWZv''@;'; put 'put ''cihmPXA9MHxyYShmKTtmPTB8bHYoZiwxMDc5ODQpOykwfGZlW2Y+PjBdPyhtYShsLGYpLGY9MCk6Zj0wO0Z0KHApfX13aGlsZSgwKTtmb3IoMHwoZj0wfExpKEEsMTAxNDQ2KSkmJjB8ZmVbZj4+MF0mJm1hKGwsZiksbT0wfHcwKGMsQSk7bTspe2Y9MHxMaShtLDE0MDgyMyk7ZG97aWYoMHxm''@;'; put 'put ''JiYwfGZlW2Y+PjBdKXtpZighKDB8JHMoZiw1OCkpKXttYShsLGYpO2JyZWFrfWZvcihmPXA9MHxyYShmKTtmPTB8bHYoZiwxMDc5ODQpOykwfGZlW2Y+PjBdPyhtYShsLGYpLGY9MCk6Zj0wO0Z0KHApfX13aGlsZSgwKTswfChmPTB8TGkobSwxMDE0NDYpKSYmMHxmZVtmPj4wXSYmbWEobCxm''@;'; put 'put ''KSxtPTB8UzAoYyxtKX1BPTB8enQoYyxBKX19KGwsYyksZj0wfER0KGMpO2Y7KWZlWzExNisoMHxhW2YrMTY+PjJdKT4+MF09MCxmPTB8enQoYyxmKTtmb3IoZnVuY3Rpb24gV3JlKGwsYyl7Y3w9MDt2YXIgbSxBLGIsZj0wLHA9MCx3PTA7Yj1sZSxsZT1sZSsxNnwwLHA9Yis4fDAsQT1iLGFb''@;'; put 'put ''KG09MTU2KyhsfD0wKXwwKT4+Ml09Zj0wfGFbMzEyKyh3PTB8YVtsPj4yXSk+PjJdLCh3PTB8YVt3KzMxNj4+Ml0pPyhmPXcrNHwwLCgwfGFbdz4+Ml0pPjEmJjA9PSg2NCZhW2wrMTUyPj4yXXwwKSYmKGFbQT4+Ml09YVtsKzUyPj4yXSwkcigwLDEwMDU2NyxBKSxhW3crOD4+Ml09MSsoMHxh''@;'; put 'put ''W20+PjJdKSkscD0wfGFbZj4+Ml0sZj13Kzh8MCk6KDB8Zik+MSYmMD09KDY0JmFbbCsxNTI+PjJdfDApPyhhW3A+PjJdPWFbbCs1Mj4+Ml0sJHIoMCwxMDA1NjcscCksYVttPj4yXT0xLHA9MSxmPTApOihwPTEsZj0wKSxhW2wrMTYwPj4yXT1wLGFbYz4+Ml09ZixsZT1ifShsLGIpOygwfHZX''@;'; put 'put ''KGwpKTw8MjQ+PjI0Oyl7Zm9yKCgwfFBDKGwpKT4xJiZKeihsKSxGQyhsKTsoMHxBVyhsKSk8PDI0Pj4yNDspWXJlKGwsYyksQ0YobCk7KDB8UEMobCkpPjEmJm1iKGwpLHlXKGwsYil9KGZ1bmN0aW9uIFVyZShsKXsoZnVuY3Rpb24gS00obCl7dmFyIGMsZj0wOzB8KGM9MHxhWzYwKyhsfD0w''@;'; put 'put ''KT4+Ml0pJiYwfChmPTB8YVtjKzEyPj4yXSkmJkNvWzEyNyZmXShsKSxmdW5jdGlvbiBqRyhsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNzYrKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrND4+Ml0pJiZDb1sxMjcmZl0obCksb0YobCl9KGwpfSkobHw9MCksT0MobCl9KShsKSxsZT1rfWZ1bmN0aW9u''@;'; put 'put ''IHZXKGwpe3JldHVybigwfGFbMTYwKyhsfD0wKT4+Ml0pPD0oMHxhW2wrMTU2Pj4yXSl8MH1mdW5jdGlvbiBQQyhsKXt2YXIgYztyZXR1cm4gMHxhWygwPT0oMHwoYz0wfGFbMzE2KygwfGFbKGx8PTApPj4yXSk+PjJdKSk/bCsxNTZ8MDpjKT4+Ml19ZnVuY3Rpb24gRkMobCl7dmFyIGMsZjtj''@;'; put 'put ''PTB8YVs0KyhmPTE3MisobHw9MCl8MCk+PjJdLGFbKGw9bCsxOTZ8MCk+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPWN9ZnVuY3Rpb24gQVcobCl7dmFyIGYsYz0wO3JldHVybiAwfCgoMHwoZj0wfGFbMTk2KyhsfD0wKT4+Ml0pKT4tMSYmKDB8Zik8KDB8YVtsKzE2ND4+Ml0pJiYoMHwoYz0wfGFb''@;'; put 'put ''bCsyMDA+PjJdKSk+LTE/KDB8Yyk8KDB8YVtsKzE2OD4+Ml0pJjE6MCl9ZnVuY3Rpb24gWXJlKGwsYyl7Y3w9MDt2YXIgYixrLE0sRCxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsRz0wO1I9bGUsbGU9bGUrMTc2fDAsYj1SLGY9Uis0OHwwLGs9UiszMnwwLE09MHxhWzE2KyhsfD0wKT4+Ml0sRD0w''@;'; put 'put ''fGFbbCsxNTI+PjJdLCgwfGFbbCsxNjA+PjJdKTw9MSYmKDB8YVtsKzE5Nj4+Ml0pPD0wP209MDoodXMoaywxMjgsZiksbT0wfGFbKHA9TSsyMTJ8MCk+PjJdLFMyKGwsayksdW8oayxtKSwoZj0wfGFbKEE9ays0fDApPj4yXSk+Pj4wPj0oMHxhW2srOD4+Ml0pPj4+MCYmKFEwKGssMSksZj0w''@;'; put 'put ''fGFbQT4+Ml0pLGZlW2Y+PjBdPTAsYVtBPj4yXT1mPTB8YVtrPj4yXSxhW3A+PjJdPWYpLEw5KDB8TGkoYywxMDAwMzIpKSxmdW5jdGlvbiBRcmUobCl7dmFyIEQsYmUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLE9lPTA7YmU9bGUs''@;'; put 'put ''bGU9bGUrNDh8MCxEPWJlKzMyfDAsYj1iZSs4fDAsaz1iZSsxNnwwLE09YmUscT0wfGFbKHBlPTE5NisobHw9MCl8MCk+PjJdLHBlPTB8YVtwZSs0Pj4yXSxhWyhHPW09YmUrMjR8MCk+PjJdPXEsYVtHKzQ+PjJdPXBlLHc9MHxhWyhHPWwrMTY0fDApPj4yXSxHPTB8YVtHKzQ+PjJdLGFbKGdl''@;'; put 'put ''PWIpPj4yXT13LGFbZ2UrND4+Ml09RywwfGFbKGdlPWwrMzYwfDApPj4yXT8oYVtEPj4yXT1hW20+PjJdLGFbRCs0Pj4yXT1hW20rND4+Ml0sekkoayxEKSxrPTB8YVsocGU9ayk+PjJdLHBlPTB8YVtwZSs0Pj4yXSxhWyhHPW0pPj4yXT1rLGFbRys0Pj4yXT1wZSxhW0Q+PjJdPWFbYj4+Ml0s''@;'; put 'put ''YVtEKzQ+PjJdPWFbYis0Pj4yXSx6SShNLEQpLHc9MHxhWyhHPU0pPj4yXSxHPTB8YVtHKzQ+PjJdLGFbYj4+Ml09dyxhW2IrND4+Ml09RyxiPXBlKTooaz1xLGI9cGUpLF9bbCsyODg+PjNdPUE9KGY9K19bbCszMjA+PjNdKSorKDB8ayktK19bbCsyNDA+PjNdLF9bbCsyOTY+PjNdPVI9KHA9''@;'; put 'put ''K19bbCszMjg+PjNdKSorKDB8YiktK19bbCsyNDg+PjNdLF9bbCszMDQ+PjNdPWYrQSxfW2wrMzEyPj4zXT1wK1IsbT1sKzQ3MnwwLDB8YVsyOCsoMHxhW2wrMTI+PjJdKT4+Ml0/KGFbbT4+Ml09YVsoKDB8YVttPj4yXSk8KDB8YVsocT1sKzQ1NnwwKT4+Ml0pP206cSk+PjJdLGFbKHBlPWwr''@;'; put 'put ''NDc2fDApPj4yXT1hWygoMHxhW3BlPj4yXSk8KDB8YVtsKzQ2MD4+Ml0pP206cSkrND4+Ml0sYVsocGU9bCs0ODB8MCk+PjJdPWFbKCgwfGFbcGU+PjJdKT4oMHxhW2wrNDY0Pj4yXSk/bTpxKSs4Pj4yXSxhWyhwZT1sKzQ4NHwwKT4+Ml09YVsoKDB8YVtwZT4+Ml0pPigwfGFbbCs0Njg+PjJd''@;'; put 'put ''KT9tOnEpKzEyPj4yXSk6KGFbbT4+Ml09YVsocGU9bCs0NTZ8MCk+PjJdLGFbbSs0Pj4yXT1hW3BlKzQ+PjJdLGFbbSs4Pj4yXT1hW3BlKzg+PjJdLGFbbSsxMj4+Ml09YVtwZSsxMj4+Ml0pLGM9K19bbCszMzY+PjNdLDEyOCYoTT0wfGFbbCsxNTI+PjJdKT8oX1tsKzI1Nj4+M109cD1jLShm''@;'; put 'put ''PS41KitfW2wrMzY4Pj4zXSksUj0oQT0rX1tsKzM0ND4+M10pLShPZT0uNSorX1tsKzM3Nj4+M10pLGYrPWMsQT1PZStBLGM9cCk6KF9bbCsyNTY+PjNdPWM9KCsoMHxrKS0uNSorKDB8dykpKmYrYyxSPUE9KCsoMHxiKS0uNSorKDB8RykpKnArICtfW2wrMzQ0Pj4zXSxmKz1jLEErPXApLF9b''@;'; put 'put ''bCsyNjQ+PjNdPVIsX1tsKzI3Mj4+M109ZixfW2wrMjgwPj4zXT1BLDB8YVtnZT4+Ml0/KG09bCszODR8MCxfW2wrNTEyPj4zXT0tQS0rX1tsKzM5Mj4+M10vKHA9K19bbCszNTI+PjNdKSw0MDk2Jk0/KGY9LWYsYz0rX1ttPj4zXS9wKTpmPStfW20+PjNdL3AsX1tsKzUwND4+M109Zi1jKToo''@;'; put 'put ''X1tsKzUwND4+M109K19bbCszODQ+PjNdLyhwPStfW2wrMzUyPj4zXSktYyw0MDk2Jk0/KGY9LUEsYz0rX1tsKzM5Mj4+M10vcCk6KGY9K19bbCszOTI+PjNdL3AsYz1SKSxfW2wrNTEyPj4zXT1mLWMpLGxlPWJlfShsKSxmdW5jdGlvbiBReihsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8''@;'; put 'put ''PTApPj4yXSkmJjB8KGY9MHxhW2MrMjQ+PjJdKSYmQ29bMTI3JmZdKGwpfShsKSxtYShsLDEzNzMxNCksaGwobCwxMzQ4MDApO2Rve2lmKDQyNTk4NDAmRHwwKXtpZigwPT0oMHxhW00rMjA4Pj4yXSkmJjA9PSgxJml0W00rMjYwPj4xXSkpYnJlYWs7NjU1MzYwJkQ/KGFbTSsyNjQ+PjJdPShB''@;'; put 'put ''PTEzMTA3MiZEKT4+PjE2XjIsZj0wfHZyKDMyKyhBPj4+MTJeMzIpfDApLGFbZj4+Ml09YVsocD1sKzI4OHwwKT4+Ml0sYVtmKzQ+PjJdPWFbcCs0Pj4yXSxhW2YrOD4+Ml09YVtwKzg+PjJdLGFbZisxMj4+Ml09YVtwKzEyPj4yXSxhWyhwPWYrMTZ8MCk+PjJdPWFbKEc9bCszMDR8MCk+PjJd''@;'; put 'put ''LGFbcCs0Pj4yXT1hW0crND4+Ml0sYVtwKzg+PjJdPWFbRys4Pj4yXSxhW3ArMTI+PjJdPWFbRysxMj4+Ml0sQT9wPTI6KFVJKGYpLHA9NCkpOihmPTAscD0wKSw4MTkyJkR8fE1oKGwsZixmLHApLGFbTSsyNzI+PjJdPWYsYVtNKzI2OD4+Ml09cH19d2hpbGUoMCk7MzI3NjgmRHwwJiYwfCh3''@;'; put 'put ''PTB8YVsxMisoMHxhW2MrMTY+PjJdKT4+Ml0pJiYoYVtNKzE5Mj4+Ml09YVt3Pj4yXSkscD0wIT0oNCZEfDApO2Rve2lmKCFwKXtpZigwPT0oMHxhWyhmPU0rMjA4fDApPj4yXSkmJjA9PSgxJml0W00rMjYwPj4xXSkpYnJlYWs7YVtiPj4yXT1hWyhHPWwrMjU2fDApPj4yXSxhW2IrND4+Ml09''@;'; put 'put ''YVtHKzQ+PjJdLGFbYis4Pj4yXT1hW0crOD4+Ml0sYVtiKzEyPj4yXT1hW0crMTI+PjJdLGFbYisxNj4+Ml09YVtHKzE2Pj4yXSxhW2IrMjA+PjJdPWFbRysyMD4+Ml0sYVtiKzI0Pj4yXT1hW0crMjQ+PjJdLGFbYisyOD4+Ml09YVtHKzI4Pj4yXSxSQyhsLGIpLEcxKGwsMHxhW2Y+PjJdLDB8''@;'; put 'put ''YVtNKzIyOD4+Ml0sMHxhW00rMjQ0Pj4yXSwwfGFbTSsyMTI+PjJdKX19d2hpbGUoMCk7KGZ1bmN0aW9uIEpyZShsLGMpe2x8PTA7dmFyIEQsRyxwZSxmPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wLHE9MDtwZT1sZSxsZT1sZSs0OHwwLEc9cGUsRD1wZSs0MHwwLFI9cGUrMzZ8MCxx''@;'; put 'put ''PXBlKzMyfDAsKGY9MHxMaShjfD0wLDE0MDk3NykpPyh3PTEmKEE9MD09KDB8ZmVbZj4+MF0pKSxmPUE/MTM3MTk4OmYpOih3PTEsZj0xMzcxOTgpLEE9MTE2PT0oMHxmZVtmPj4wXSksMjU2JihtPTB8YVtsKzE1Mj4+Ml0pP0EmJiEoMHxaaShmLDEzNzM3OSkpfHwoYj1mLGs9dyxNPTgpOkE/''@;'; put 'put ''KGI9KGs9MD09KDB8WmkoZiwxMzczNzkpKSk/MTM3MTk4OmYsaz1rPzE6dyxNPTgpOihiPWYsaz13LE09OCksOD09KDB8TSkmJiEoMCE9KDB8aykmMCE9KDMzNTU0NDMyJm18MCkpJiYoKDB8dWsoYixELFIpKTw8MjQ+PjI0PyhhW3E+PjJdPTAsaGwobCxBPTB8YVtEPj4yXSksbWEobCwxMzcz''@;'; put 'put ''NzkpLFpJKGMscSksVWYobCwoZj0wfGFbRCs0Pj4yXSl8fDEzNzMxNCxtPTB8ZXMoYywwfGFbNDcxNDNdLDAsMCksK2puW1I+PjJdKSxxPSgwfGFbcT4+Ml0pPj4+MSYxfDIsYVtHPj4yXT1hWyhSPWwrMjU2fDApPj4yXSxhW0crND4+Ml09YVtSKzQ+PjJdLGFbRys4Pj4yXT1hW1IrOD4+Ml0s''@;'; put 'put ''YVtHKzEyPj4yXT1hW1IrMTI+PjJdLGFbRysxNj4+Ml09YVtSKzE2Pj4yXSxhW0crMjA+PjJdPWFbUisyMD4+Ml0sYVtHKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbRysyOD4+Ml09YVtSKzI4Pj4yXSx5MyhsLEcscSksRnQoQSkpOihobChsLGIpLG1hKGwsMTM3Mzc5KSxhW0c+PjJdPWFbKHE9bCsy''@;'; put 'put ''NTZ8MCk+PjJdLGFbRys0Pj4yXT1hW3ErND4+Ml0sYVtHKzg+PjJdPWFbcSs4Pj4yXSxhW0crMTI+PjJdPWFbcSsxMj4+Ml0sYVtHKzE2Pj4yXT1hW3ErMTY+PjJdLGFbRysyMD4+Ml09YVtxKzIwPj4yXSxhW0crMjQ+PjJdPWFbcSsyND4+Ml0sYVtHKzI4Pj4yXT1hW3ErMjg+PjJdLHkzKGws''@;'; put 'put ''RywxKSkpLDB8KGY9MHxhWzg4KygwfGFbOCsoMHxhW2MrMTY+PjJdKT4+Ml0pPj4yXSkmJmZ1bmN0aW9uIHB2ZShsLGMpe2x8PTAsY3w9MDt2YXIgUixwZSxnZSxiZSxPZSxMZSxSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAscT0wLEhlPTAsVmU9MCxxZT0wO2Zv''@;'; put 'put ''cihSZT1sZSxsZT1sZSs5NnwwLFI9UmUrNDh8MCxwZT1SZSsxNnwwLExlPVJlKzh8MCxPZT1SZSxhWyhnZT1SZSs4MHwwKT4+Ml09MWUzLG09MHxRbigxNmUzKSxiZT1sKzI1NnwwLHA9MSx3PTEsQT0wLEc9MCxxPTB8YVtjKzg+PjJdOyEoKDB8Ryk+PSgwfGFbYz4+Ml0pKTspe2Y9MHxhW3E+''@;'; put 'put ''PjJdO2U6ZG97c3dpdGNoKDB8Zil7Y2FzZSAxOmNhc2UgMDphW3BlPj4yXT1hWyhNPXErODB8MCk+PjJdLGFbcGUrND4+Ml09YVtNKzQ+PjJdLGFbcGUrOD4+Ml09YVtNKzg+PjJdLGFbcGUrMTI+PjJdPWFbTSsxMj4+Ml0sYVtwZSsxNj4+Ml09YVtNKzE2Pj4yXSxhW3BlKzIwPj4yXT1hW00r''@;'; put 'put ''MjA+PjJdLGFbcGUrMjQ+PjJdPWFbTSsyND4+Ml0sYVtwZSsyOD4+Ml09YVtNKzI4Pj4yXSxhW1I+PjJdPWFbYmU+PjJdLGFbUis0Pj4yXT1hW2JlKzQ+PjJdLGFbUis4Pj4yXT1hW2JlKzg+PjJdLGFbUisxMj4+Ml09YVtiZSsxMj4+Ml0sYVtSKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW1IrMjA+''@;'; put 'put ''PjJdPWFbYmUrMjA+PjJdLGFbUisyND4+Ml09YVtiZSsyND4+Ml0sYVtSKzI4Pj4yXT1hW2JlKzI4Pj4yXSwwfHZ5KHBlLFIpJiYoX1ttPj4zXT0rX1soVmU9cSs4fDApPj4zXS0rX1socWU9cSsyNHwwKT4+M10sX1ttKzg+PjNdPStfWyhNPXErMTZ8MCk+PjNdLStfWyhIZT1xKzMyfDApPj4z''@;'; put 'put ''XSxfW20rMTY+PjNdPStfW3FlPj4zXSsgK19bVmU+PjNdLF9bbSsyND4+M109K19bSGU+PjNdKyArX1tNPj4zXSwkdShsLG0sMiwwPT0oMHxmKT93OjApKSxmPXc7YnJlYWs7Y2FzZSAzOmNhc2UgMjphW3BlPj4yXT1hWyhxZT1xKzgwfDApPj4yXSxhW3BlKzQ+PjJdPWFbcWUrND4+Ml0sYVtw''@;'; put 'put ''ZSs4Pj4yXT1hW3FlKzg+PjJdLGFbcGUrMTI+PjJdPWFbcWUrMTI+PjJdLGFbcGUrMTY+PjJdPWFbcWUrMTY+PjJdLGFbcGUrMjA+PjJdPWFbcWUrMjA+PjJdLGFbcGUrMjQ+PjJdPWFbcWUrMjQ+PjJdLGFbcGUrMjg+PjJdPWFbcWUrMjg+PjJdLGFbUj4+Ml09YVtiZT4+Ml0sYVtSKzQ+PjJd''@;'; put 'put ''PWFbYmUrND4+Ml0sYVtSKzg+PjJdPWFbYmUrOD4+Ml0sYVtSKzEyPj4yXT1hW2JlKzEyPj4yXSxhW1IrMTY+PjJdPWFbYmUrMTY+PjJdLGFbUisyMD4+Ml09YVtiZSsyMD4+Ml0sYVtSKzI0Pj4yXT1hW2JlKzI0Pj4yXSxhW1IrMjg+PjJdPWFbYmUrMjg+PjJdLDB8dnkocGUsUikmJmthKGws''@;'; put 'put ''bT0wfFpIKG0sZ2UsMHxhWzQrKGY9cSs4fDApPj4yXSwwfGFbZj4+Ml0pLDB8YVtmPj4yXSwyPT0oMHxhW3E+PjJdKT93OjApLGY9dzticmVhaztjYXNlIDU6Y2FzZSA0OmFbcGU+PjJdPWFbKHFlPXErODB8MCk+PjJdLGFbcGUrND4+Ml09YVtxZSs0Pj4yXSxhW3BlKzg+PjJdPWFbcWUrOD4+''@;'; put 'put ''Ml0sYVtwZSsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtwZSsxNj4+Ml09YVtxZSsxNj4+Ml0sYVtwZSsyMD4+Ml09YVtxZSsyMD4+Ml0sYVtwZSsyND4+Ml09YVtxZSsyND4+Ml0sYVtwZSsyOD4+Ml09YVtxZSsyOD4+Ml0sYVtSPj4yXT1hW2JlPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1Ir''@;'; put 'put ''OD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLGFbUisxNj4+Ml09YVtiZSsxNj4+Ml0sYVtSKzIwPj4yXT1hW2JlKzIwPj4yXSxhW1IrMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbUisyOD4+Ml09YVtiZSsyOD4+Ml0sMHx2eShwZSxSKSYmUWYobCxtPTB8WkgobSxnZSwwfGFb''@;'; put 'put ''NCsoZj1xKzh8MCk+PjJdLDB8YVtmPj4yXSksMHxhW2Y+PjJdLDAsMCw0PT0oMHxhW3E+PjJdKT8yNTUmdzowKSxmPXc7YnJlYWs7Y2FzZSA2OmFbcGU+PjJdPWFbKHFlPXErODB8MCk+PjJdLGFbcGUrND4+Ml09YVtxZSs0Pj4yXSxhW3BlKzg+PjJdPWFbcWUrOD4+Ml0sYVtwZSsxMj4+Ml09''@;'; put 'put ''YVtxZSsxMj4+Ml0sYVtwZSsxNj4+Ml09YVtxZSsxNj4+Ml0sYVtwZSsyMD4+Ml09YVtxZSsyMD4+Ml0sYVtwZSsyND4+Ml09YVtxZSsyND4+Ml0sYVtwZSsyOD4+Ml09YVtxZSsyOD4+Ml0sYVtSPj4yXT1hW2JlPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4y''@;'; put 'put ''XSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLGFbUisxNj4+Ml09YVtiZSsxNj4+Ml0sYVtSKzIwPj4yXT1hW2JlKzIwPj4yXSxhW1IrMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbUisyOD4+Ml09YVtiZSsyOD4+Ml0sMHx2eShwZSxSKSYmV28obCxtPTB8WkgobSxnZSwwfGFbNCsoZj1xKzh8MCk+PjJd''@;'; put 'put ''LDB8YVtmPj4yXSksMHxhW2Y+PjJdKSxmPXc7YnJlYWs7Y2FzZSA3OmFbcGU+PjJdPWFbKHFlPXErODB8MCk+PjJdLGFbcGUrND4+Ml09YVtxZSs0Pj4yXSxhW3BlKzg+PjJdPWFbcWUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtwZSsxNj4+Ml09YVtxZSsxNj4+Ml0sYVtwZSsy''@;'; put 'put ''MD4+Ml09YVtxZSsyMD4+Ml0sYVtwZSsyND4+Ml09YVtxZSsyND4+Ml0sYVtwZSsyOD4+Ml09YVtxZSsyOD4+Ml0sYVtSPj4yXT1hW2JlPj4yXSxhW1IrND4+Ml09YVtiZSs0Pj4yXSxhW1IrOD4+Ml09YVtiZSs4Pj4yXSxhW1IrMTI+PjJdPWFbYmUrMTI+PjJdLGFbUisxNj4+Ml09YVtiZSsx''@;'; put 'put ''Nj4+Ml0sYVtSKzIwPj4yXT1hW2JlKzIwPj4yXSxhW1IrMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbUisyOD4+Ml09YVtiZSsyOD4+Ml0sMHx2eShwZSxSKSYmKF9bbT4+M109K19bcSs4Pj4zXSxfW20rOD4+M109K19bcSsxNj4+M10sZj0wfGFbcSsxMTI+PjJdLGFbUj4+Ml09YVttPj4yXSxhW1Ir''@;'; put 'put ''ND4+Ml09YVttKzQ+PjJdLGFbUis4Pj4yXT1hW20rOD4+Ml0sYVtSKzEyPj4yXT1hW20rMTI+PjJdLGhtKGwsUixmKSksZj13O2JyZWFrO2Nhc2UgODpobChsLDB8YVtxKzg+PjJdKSxmPTE7YnJlYWs7Y2FzZSA5Om1hKGwsMHxhW3ErOD4+Ml0pLGY9MTticmVhaztjYXNlIDEzOmlmKDIhPSgw''@;'; put 'put ''fGFbcSs4Pj4yXSkpe3FlPTB8YVsxMisoVmU9MHxhWzM2KyhmPXErMTZ8MCk+PjJdKT4+Ml0sRD0ram5bVmUrOD4+Ml0sZj1+fig1Ny4yOTU3Nzk1MTMwODIzMiorVWwoKygrX1txKzQwPj4zXS0rX1txKzI0Pj4zXSksKygrX1txKzMyPj4zXS0rX1tmPj4zXSkpKSxobChsLDB8YVtWZSs0Pj4y''@;'; put 'put ''XSksVWYobCxxZSxmLEQpLGY9MjticmVhayBlfXc9MHxhWzQrKHFlPTB8YVtxKzY4Pj4yXSk+PjJdLE09MHxhW3FlKzEyPj4yXSxEPStqbltxZSs4Pj4yXSxmPShiPStfW3ErNDA+PjNdKT09KGs9K19bcSsxNj4+M10pJiYrX1txKzQ4Pj4zXT09K19bcSsyND4+M10/MDp+fig1Ny4yOTU3Nzk1''@;'; put 'put ''MTMwODIzMiorSnAoKyhrLWIpLytfW3ErMzI+PjNdKSksaGwobCx3KSxVZihsLE0sZixEKSxmPTM7YnJlYWs7Y2FzZSAxNDokcigwLDEwMDQ4MSxPZSksZj13O2JyZWFrO2Nhc2UgMTI6cD8oJHIoMCwxMDA1MjEsTGUpLHA9MCxmPXcpOihwPTAsZj13KTticmVhaztjYXNlIDExOnpBKDB8YVtx''@;'; put 'put ''Kzg+PjJdKSxkMihsLDE4ODIyOCksQT0xODgyMjgsZj13O2JyZWFrO2RlZmF1bHQ6Zj13fX13aGlsZSgwKTt3PWYsRz1HKzF8MCxxPXErMTIwfDB9MHxBJiZkMihsLDB8YVszMzYrKDB8YVtsPj4yXSk+PjJdKSxGdChtKSxsZT1SZX0obCxmKSxsZT1wZX0pKGwsYyksMHwoZj0wfGFbMTIrKDB8''@;'; put 'put ''YVtjKzE2Pj4yXSk+PjJdKSYmYjcobCw0LGYpO2Rve2lmKCFwKXtpZigwPT0oMHxhW00rMjA4Pj4yXSkmJjA9PSgxJml0W00rMjYwPj4xXSkpYnJlYWs7RWgobCl9fXdoaWxlKDApOyhmdW5jdGlvbiBYcmUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7YVsoQT0yOCsoMHxhWyhs''@;'; put 'put ''fD0wKT4+Ml0pfDApPj4yXT0xKygwfGFbQT4+Ml0pLChBPTAhPSg0JmZ8MCkpfHxqQShsLGMsZik7ZTpkb3tpZigxJmYpe2ZvcihHOChsKSxwPTB8RHQoYyk7cDspWkEobCxwKSxwPTB8enQoYyxwKTtmb3IoY20obCksWWYobCksbT0wfER0KGMpO207KXtmb3IocD0wfHcwKGMsbSk7cDspSEMo''@;'; put 'put ''bCxwKSxwPTB8UzAoYyxwKTttPTB8enQoYyxtKX1mbShsKX1lbHNle2lmKDE2JmZ8MCl7Zm9yKFlmKGwpLG09MHxEdChjKTttOyl7Zm9yKHA9MHx3MChjLG0pO3A7KUhDKGwscCkscD0wfFMwKGMscCk7bT0wfHp0KGMsbSl9Zm9yKGZtKGwpLEc4KGwpLHA9MHxEdChjKTtwOylaQShsLHApLHA9''@;'; put 'put ''MHx6dChjLHApO2NtKGwpO2JyZWFrfWlmKCEoOCZmKSlmb3IobT0wfER0KGMpOzspe2lmKCFtKWJyZWFrIGU7Zm9yKFpBKGwsbSkscD0wfHcwKGMsbSk7cDspWkEobCwwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pLEhDKGwscCkscD0wfFMwKGMscCk7bT0wfHp0KGMs''@;'; put 'put ''bSl9Zm9yKEc4KGwpLHA9MHxEdChjKTtwOykoMHxLcmUoYyxwKSk8PDI0Pj4yNCYmWkEobCxwKSxwPTB8enQoYyxwKTtmb3IoY20obCksWWYobCksbT0wfER0KGMpO207KXtmb3IocD0wfHcwKGMsbSk7cDspKDB8a0YoYyxwKSk8PDI0Pj4yNCYmSEMobCxwKSxwPTB8UzAoYyxwKTttPTB8enQo''@;'; put 'put ''YyxtKX1mbShsKX19d2hpbGUoMCk7QSYmakEobCxjLGYpfSkobCxjLEQpLGZ1bmN0aW9uICRNKGwpe3ZhciBjLGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYysyOD4+Ml0pJiZDb1sxMjcmZl0obCl9KGwpLDB8bSYmKEMyKGspLGFbTSsyMTI+PjJdPW0pLGxlPVJ9ZnVu''@;'; put 'put ''Y3Rpb24gQ0YobCl7dmFyIGMsZixtLEEsdyxwPTAsYj0wLGs9MDt3PWxlLGxlPWxlKzMyfDAsZj13KzI0fDAsaz13Kzh8MCxtPXcsYj0xODgrKGx8PTApfDAsYVsoYz13KzE2fDApPj4yXT1hWyhBPWwrMTk2fDApPj4yXSxhW2MrND4+Ml09YVtBKzQ+PjJdLGFbZj4+Ml09YVtiPj4yXSxhW2Yr''@;'; put 'put ''ND4+Ml09YVtiKzQ+PjJdLFpUKGssYyxmKSxiPTB8YVtrKzQ+PjJdLGFbKHA9QSk+PjJdPWFbaz4+Ml0sYVtwKzQ+PjJdPWIsKDB8QVcobCkpPDwyND4+MjR8fChwPWwrMTgwfDAsMHxhW2wrMTg0Pj4yXT9hW0E+PjJdPWFbbCsxNzI+PjJdOmFbbCsyMDA+PjJdPWFbbCsxNzY+PjJdLGFbYz4+''@;'; put 'put ''Ml09YVtBPj4yXSxhW2MrND4+Ml09YVtBKzQ+PjJdLGFbZj4+Ml09YVtwPj4yXSxhW2YrND4+Ml09YVtwKzQ+PjJdLFpUKG0sYyxmKSxiPTB8YVttKzQ+PjJdLGFbKGs9QSk+PjJdPWFbbT4+Ml0sYVtrKzQ+PjJdPWIpLGxlPXd9ZnVuY3Rpb24geVcobCxjKXtsfD0wO3ZhciBmPTA7KGY9MHxh''@;'; put 'put ''WyhjfD0wKT4+Ml0pPyhhW2wrMTYwPj4yXT1hW2Y+PjJdLGFbYz4+Ml09Zis0KTphWyhmPWwrMTYwfDApPj4yXT0xKygwfGFbZj4+Ml0pfWZ1bmN0aW9uIFpUKGwsYyxmKXt2YXIgcDtwPSgwfGFbNCsoZnw9MCk+PjJdKSsoMHxhWzQrKGN8PTApPj4yXSl8MCxhWyhsfD0wKT4+Ml09KDB8YVtm''@;'; put 'put ''Pj4yXSkrKDB8YVtjPj4yXSksYVtsKzQ+PjJdPXB9ZnVuY3Rpb24gakEobCxjLGYpe3ZhciBnZSxiZSxPZSxSZSxIZSxWZSxxZSxydCxXZSxhdCxTdCxrdCxzdCxFdCxadCxjdCxidCxTbixwPTAsbT0wLEE9MCx3PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxMZT0wLGFuPTAsSG49''@;'; put 'put ''MDtmb3IoU249bGUsbGU9bGUrMTI4fDAsZ2U9U24rNzJ8MCxidD1Tbis2NHwwLFN0PVNuKzExMnwwLEV0PTE2KyhjfD0wKXwwLFp0PTAhPSg0JihmfD0wKXwwKSxjdD0xNisobHw9MCl8MCxiZT0oa3Q9U24pKzMyfDAsT2U9a3QrMTZ8MCxSZT1rdCs4fDAsSGU9a3QrMjR8MCxWZT1rdCs0OHww''@;'; put 'put ''LHFlPWt0KzQwfDAscnQ9a3QrNTZ8MCxXZT0wPT0oOCZmfDApLGF0PTQrKHN0PVNuKzEwNHwwKXwwLHBlPTE7ISgoMHxwZSk+KDB8YVsxODArKHA9MHxhW0V0Pj4yXSk+PjJdKSk7KXtpZigoMHxyUShsLHE9MHxhWygwfGFbcCsxODQ+PjJdKSsocGU8PDIpPj4yXSkpPDwyND4+MjQpe1p0JiZq''@;'; put 'put ''QShsLHEsZiksSW9lKGwscSksRz0wfGFbKFI9MjA4KyhEPTB8YVtjdD4+Ml0pfDApPj4yXT8xOjAhPSgxJml0W0QrMjYwPj4xXSksTDkoMHxMaShxLDEwMDAzMikpLFp0fDFeR3x8KGFbZ2U+PjJdPWFbKE09MTYrKDB8YVtxKzE2Pj4yXSl8MCk+PjJdLGFbZ2UrND4+Ml09YVtNKzQ+PjJdLGFb''@;'; put 'put ''Z2UrOD4+Ml09YVtNKzg+PjJdLGFbZ2UrMTI+PjJdPWFbTSsxMj4+Ml0sYVtnZSsxNj4+Ml09YVtNKzE2Pj4yXSxhW2dlKzIwPj4yXT1hW00rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbTSsyND4+Ml0sYVtnZSsyOD4+Ml09YVtNKzI4Pj4yXSxSQyhsLGdlKSxHMShsLDB8YVtSPj4yXSwwfGFbRCsy''@;'; put 'put ''Mjg+PjJdLDB8YVtEKzI0ND4+Ml0sMHxhW0QrMjEyPj4yXSkpLGFbU3Q+PjJdPTAsKHA9MHxaSShxLFN0KSk/KGQyKGwscCksaz0xJmFbU3Q+PjJdKTprPTAscD0wfFh0WzExMisoMHxhWyhNPXErMTZ8MCk+PjJdKT4+MF07ZG97aWYoMSZwKXA9MHxCYShxLDAsMTA2MjQwKSxtPTB8QmEocSww''@;'; put 'put ''LDEwNjI0OCksYW49Mjk7ZWxzZXtpZigyJnB8MCl7cD0wfEJhKHEsMCwxMDYyNTYpLG09MHxCYShxLDAsMTA2MjY0KSxhbj0yOTticmVha31pZig4JnB8MCl7cD0wfEJhKHEsMCwxMDYyNzIpLG09MHxCYShxLDAsMTA2MjgwKSxhbj0yOTticmVha31pZig0JnB8MCl7cD0wfEJhKHEsMCwxMDYy''@;'; put 'put ''ODgpLG09MHxCYShxLDAsMTA2Mjk2KSxhbj0yOTticmVha31pZihtPShwPTB8TGkocSwxNDA4MjMpKT8wPT0oMHxmZVtwPj4wXSk/MDpwOjAscD0ocD0wfExpKHEsMTM3NzI5KSk/MD09KDB8ZmVbcD4+MF0pP206cDptLChBPTB8TGkocSwxMDE0MTgpKSYmKG09MD09KDB8ZmVbQT4+MF0pP206''@;'; put 'put ''QSksMCE9KDB8aykmMCE9KDB8bSkpYW49Mjk7ZWxzZXtpZigwfChBPTB8TGkocSwxNDA5NzcpKSYmMHxmZVtBPj4wXSl7bT1BLGFuPTI5O2JyZWFrfXA9MD09KDB8cCk/MTM3MzE0OnAsdz0wPT0oMHxtKT8xMzQ4MDA6bSxhW3N0Pj4yXT0wLGs/YW49MzE6bT0wfX19d2hpbGUoMCk7Mjk9PSgw''@;'; put 'put ''fGFuKSYmKGFbc3Q+PjJdPTAscD0wPT0oMHxwKT8xMzczMTQ6cCx3PTA9PSgwfG0pPzEzNDgwMDptLGFuPTMxKSwzMT09KDB8YW4pJiYoYW49MCwoMHx1ayh3LHN0LGdlKSk8PDI0Pj4yND8oaGwobCwwfGFbc3Q+PjJdKSxVZihsLChtPTB8YVthdD4+Ml0pfHwxMzczMTQsQT0wfGVzKHEsMHxh''@;'; put 'put ''WzQ3MTQzXSwwLDApLCtqbltnZT4+Ml0pLG09KDB8YVtTdD4+Ml0pPj4+MSYxfDIpOihobChsLHcpLG09MSkpLDB8KEE9MHxhWzQ3MTQyXSkmJjB8KExlPTB8SG8ocSxBKSkmJjB8ZmVbTGU+PjBdJiZ4aChsLCtNbChxLDB8YVs0NzE0Ml0sMSwwKSksaz0wfGFbU3Q+PjJdO2Rve2lmKDQmayko''@;'; put 'put ''QT0wfGVzKHEsMHxhWzQ3MTQxXSwxLDApKXxtfDAmJihhW2t0Pj4yXT1hWyhIbj0xNisodz0wfGFbTT4+Ml0pfDApPj4yXSxhW2t0KzQ+PjJdPWFbSG4rND4+Ml0sYVtrdCs4Pj4yXT1hW0huKzg+PjJdLGFba3QrMTI+PjJdPWFbSG4rMTI+PjJdLGFbYmU+PjJdPWFbKHc9dyszMnwwKT4+Ml0s''@;'; put 'put ''YVtiZSs0Pj4yXT1hW3crND4+Ml0sYVtiZSs4Pj4yXT1hW3crOD4+Ml0sYVtiZSsxMj4+Ml09YVt3KzEyPj4yXSxfW09lPj4zXT0rX1tiZT4+M10sX1tIZT4+M109K19bUmU+PjNdLF9bVmU+PjNdPStfW2t0Pj4zXSxfW3J0Pj4zXT0rX1txZT4+M10sbWEobCxBP3A6MTM3Mzc5KSxLNShsLGt0''@;'; put 'put ''LDQsayxtKSk7ZWxzZXtpZighKDY0JmspKXtpZigwfGVzKHEsMHxhWzQ3MTQxXSwxLDApKXttYShsLHApLGFbZ2U+PjJdPWFbKEhuPTE2KygwfGFbTT4+Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFbSG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0huKzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJd''@;'; put 'put ''LGFbZ2UrMTY+PjJdPWFbSG4rMTY+PjJdLGFbZ2UrMjA+PjJdPWFbSG4rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbSG4rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbSG4rMjg+PjJdLHkzKGwsZ2UsbSk7YnJlYWt9aWYoIW0pYnJlYWs7bWEobCwxMzczNzkpLGFbZ2U+PjJdPWFbKEhuPTE2KygwfGFbTT4+''@;'; put 'put ''Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFbSG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0huKzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJdLGFbZ2UrMTY+PjJdPWFbSG4rMTY+PjJdLGFbZ2UrMjA+PjJdPWFbSG4rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbSG4rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFb''@;'; put 'put ''SG4rMjg+PjJdLHkzKGwsZ2UsbSk7YnJlYWt9YVtrdD4+Ml09YVsoaz0xNisoSG49MHxhW00+PjJdKXwwKT4+Ml0sYVtrdCs0Pj4yXT1hW2srND4+Ml0sYVtrdCs4Pj4yXT1hW2srOD4+Ml0sYVtrdCsxMj4+Ml09YVtrKzEyPj4yXSxhW2JlPj4yXT1hWyhIbj1IbiszMnwwKT4+Ml0sYVtiZSs0''@;'; put 'put ''Pj4yXT1hW0huKzQ+PjJdLGFbYmUrOD4+Ml09YVtIbis4Pj4yXSxhW2JlKzEyPj4yXT1hW0huKzEyPj4yXSxfW09lPj4zXT0rX1tiZT4+M10sX1tIZT4+M109K19bUmU+PjNdLF9bVmU+PjNdPStfW2t0Pj4zXSxfW3J0Pj4zXT0rX1txZT4+M10sMHxlcyhxLDB8YVs0NzE0MV0sMSwwKT9tYShs''@;'; put 'put ''LHApOm1hKGwsMTM3Mzc5KSwoMHxiRihsLGt0LHcsMCkpPjEmJihhW2J0Pj4yXT0wfHRpKHEpLCRyKDMsMTAwNDAwLGJ0KSksYVtnZT4+Ml09YVsoSG49MTYrKDB8YVtNPj4yXSl8MCk+PjJdLGFbZ2UrND4+Ml09YVtIbis0Pj4yXSxhW2dlKzg+PjJdPWFbSG4rOD4+Ml0sYVtnZSsxMj4+Ml09''@;'; put 'put ''YVtIbisxMj4+Ml0sYVtnZSsxNj4+Ml09YVtIbisxNj4+Ml0sYVtnZSsyMD4+Ml09YVtIbisyMD4+Ml0sYVtnZSsyND4+Ml09YVtIbisyND4+Ml0sYVtnZSsyOD4+Ml09YVtIbisyOD4+Ml0seTMobCxnZSwwKX19d2hpbGUoMCk7RnQoMHxhW3N0Pj4yXSksMHwocD0wfGFbMTIrKDB8YVtNPj4y''@;'; put 'put ''XSk+PjJdKSYmYjcobCw1LHApLEcmJihadCYmKGFbZ2U+PjJdPWFbKEhuPTE2KygwfGFbTT4+Ml0pfDApPj4yXSxhW2dlKzQ+PjJdPWFbSG4rND4+Ml0sYVtnZSs4Pj4yXT1hW0huKzg+PjJdLGFbZ2UrMTI+PjJdPWFbSG4rMTI+PjJdLGFbZ2UrMTY+PjJdPWFbSG4rMTY+PjJdLGFbZ2UrMjA+''@;'; put 'put ''PjJdPWFbSG4rMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbSG4rMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbSG4rMjg+PjJdLFJDKGwsZ2UpLEcxKGwsMHxhW1I+PjJdLDB8YVtEKzIyOD4+Ml0sMHxhW0QrMjQ0Pj4yXSwwfGFbRCsyMTI+PjJdKSksRWgobCkpO2U6ZG97aWYoIVdlKWZvcihtPTB8RHQocSk7''@;'; put 'put ''Oyl7aWYoIW0pYnJlYWsgZTtmb3IoWkEobCxtKSxwPTB8dzAocSxtKTtwOylIQyhsLHApLHA9MHxTMChxLHApO209MHx6dChxLG0pfX13aGlsZSgwKTtkdmUobCxjKSxadHx8akEobCxxLGYpfXBlPXBlKzF8MH1sZT1Tbn1mdW5jdGlvbiBaQShsLGMpe3ZhciBBLHcsYixmPTAscD0wLG09MCxr''@;'; put 'put ''PTA7Yj1sZSxsZT1sZSszMnwwLGY9YixBPTB8YVsobHw9MCk+PjJdLHc9MTYrKGN8PTApfDA7ZTpkb3tpZigwfGFbOCsoMHxhW3c+PjJdKT4+Ml0mJigwfHhvZShsLDB8Y3IoYyksYykpPDwyND4+MjQmJihrPWwrMjU2fDAsYVtmPj4yXT1hW2s+PjJdLGFbZis0Pj4yXT1hW2srND4+Ml0sYVtm''@;'; put 'put ''Kzg+PjJdPWFbays4Pj4yXSxhW2YrMTI+PjJdPWFbaysxMj4+Ml0sYVtmKzE2Pj4yXT1hW2srMTY+PjJdLGFbZisyMD4+Ml09YVtrKzIwPj4yXSxhW2YrMjQ+PjJdPWFbaysyND4+Ml0sYVtmKzI4Pj4yXT1hW2srMjg+PjJdLCgwfGZ2ZShjLGYpKTw8MjQ+PjI0KSYmKHA9MTE2KygwfGFbdz4+''@;'; put 'put ''Ml0pfDAsbT0wfGFbQSsyOD4+Ml0sKDB8bSkhPSgwfGZlW3A+PjBdKSkpe2ZlW3A+PjBdPW0sZG0obCwwfHRpKGMpKSxmPTB8djIoYywwfGFbNDcxNjldLDE5NTA1OSksMHxmZVtmPj4wXSYmZG0obCxmKSxmPTB8djIoYywwfGFbNDcxNTddLDE5NTA1OSk7dDpkb3tpZigwfGZlW2Y+PjBdKWZv''@;'; put 'put ''cih6QShmKSxmPTE4ODIyODs7KXtpZihwPWYsZj1mKzR8MCwhKHA9MHxhW3A+PjJdKSlicmVhayB0O2lmKDEwNT09KDB8ZmVbcD4+MF0pJiYhKDB8WmkocCwxMzQzMzUpKSlicmVhayBlfX13aGlsZSgwKTtodmUobCxjKSxHc1s2MyZhWzIwKygwfGFbNCsoMHxhWzgrKDB8YVt3Pj4yXSk+PjJd''@;'; put 'put ''KT4+Ml0pPj4yXV0obCxjKSwwfChmPTB8YVsxMDgrKDB8YVt3Pj4yXSk+PjJdKSYmMHxmZVtmKzgxPj4wXSYmYjcobCwxMCxmKSxUb2UobCl9fXdoaWxlKDApO2xlPWJ9ZnVuY3Rpb24gSEMobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MDtBPWxlLGxlPWxlKzMyfDAsYVsobT1BKT4+''@;'; put 'put ''Ml09YVsoZj0yNTYrKGx8PTApfDApPj4yXSxhW20rND4+Ml09YVtmKzQ+PjJdLGFbbSs4Pj4yXT1hW2YrOD4+Ml0sYVttKzEyPj4yXT1hW2YrMTI+PjJdLGFbbSsxNj4+Ml09YVtmKzE2Pj4yXSxhW20rMjA+PjJdPWFbZisyMD4+Ml0sYVttKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbbSsyOD4+Ml09''@;'; put 'put ''YVtmKzI4Pj4yXTtlOmRve2lmKCgwfFNGKGMsbSkpPDwyND4+MjQmJihwPWMrLTQ4fDAsKDB8d1cobCxjKSk8PDI0Pj4yNCkpe3c9Yys0OHwwLHJkKGY9MHxGMCgzKyhmPTB8VW8oMHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/Yzp3KSs0MD4+Ml0pKSkrKDB8VW8oMHx0aSgwfGFbKDI9PSgz''@;'; put 'put ''JmFbYz4+Ml18MCk/YzpwKSs0MD4+Ml0pKSl8MCksMHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/Yzp3KSs0MD4+Ml0pKSx3PTA9PSgwfFNjKDB8Y3IoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6cCkrNDA+PjJdKSkpLG09ZisoMHxVbyhmKSl8MCx3PyhmZVttPj4wXT0wfGZlWzE0MTc0N10s''@;'; put 'put ''ZmVbbSsxPj4wXT0wfGZlWzE0MTc0OF0sZmVbbSsyPj4wXT0wfGZlWzE0MTc0OV0pOihmZVttPj4wXT0wfGZlWzEzNzczOF0sZmVbbSsxPj4wXT0wfGZlWzEzNzczOV0sZmVbbSsyPj4wXT0wfGZlWzEzNzc0MF0pLHN2KGYsMHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpwKSs0MD4+Ml0p''@;'; put 'put ''KSxkbShsLGYpLEZ0KGYpLGY9MHx2MihjLDB8YVs0NzE5MV0sMTk1MDU5KSwwfGZlW2Y+PjBdJiZkbShsLGYpLGY9MHx2MihjLDB8YVs0NzE4NV0sMTk1MDU5KTt0OmRve2lmKDB8ZmVbZj4+MF0pZm9yKHpBKGYpLGY9MTg4MjI4Ozspe2lmKHA9ZixmPWYrNHwwLCEocD0wfGFbcD4+Ml0pKXtm''@;'; put 'put ''PTE4ODIyODticmVhayB0fWlmKDEwNT09KDB8ZmVbcD4+MF0pJiYhKDB8WmkocCwxMzQzMzUpKSlicmVhayBlfWVsc2UgZj0wfXdoaWxlKDApO09IKGwsYyxmKSxHVShsLGMsZiksV1UobCl9fXdoaWxlKDApO2xlPUF9ZnVuY3Rpb24gS3JlKGwsYyl7Y3w9MDt2YXIgZixwPTA7Zm9yKGY9MTYr''@;'; put 'put ''KGx8PTApfDAsbD0xOzspe2lmKCgwfGwpPigwfGFbMTgwKyhwPTB8YVtmPj4yXSk+PjJdKSl7bD0xO2JyZWFrfWlmKDB8TnIoMHxhWygwfGFbcCsxODQ+PjJdKSsobDw8Mik+PjJdLGMpKXtsPTA7YnJlYWt9bD1sKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIGtGKGwsYyl7Y3w9MDt2YXIgZixw''@;'; put 'put ''PTA7Zm9yKGY9MTYrKGx8PTApfDAsbD0xOzspe2lmKCgwfGwpPigwfGFbMTgwKyhwPTB8YVtmPj4yXSk+PjJdKSl7bD0xO2JyZWFrfWlmKDB8TnIoMHxhWygwfGFbcCsxODQ+PjJdKSsobDw8Mik+PjJdLGMpKXtsPTA7YnJlYWt9bD1sKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIFNGKGwsYyl7''@;'; put 'put ''Y3w9MDt2YXIgcCxtLHcsYixmPTAsQT0wO2I9bGUsbGU9bGUrNjR8MCx3PWIrMzJ8MCxwPWIsMCE9KDB8KGY9MHxhWzgrKGw9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkpJiYoYVtwPj4yXT1hWyhmPWYrOHwwKT4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+''@;'; put 'put ''PjJdLGFbcCsxMj4+Ml09YVtmKzEyPj4yXSxhW3ArMTY+PjJdPWFbZisxNj4+Ml0sYVtwKzIwPj4yXT1hW2YrMjA+PjJdLGFbcCsyND4+Ml09YVtmKzI0Pj4yXSxhW3ArMjg+PjJdPWFbZisyOD4+Ml0sYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4''@;'; put 'put ''Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVt3KzE2Pj4yXT1hW2MrMTY+PjJdLGFbdysyMD4+Ml09YVtjKzIwPj4yXSxhW3crMjQ+PjJdPWFbYysyND4+Ml0sYVt3KzI4Pj4yXT1hW2MrMjg+PjJdLDAhPSgwfHZ5KHAsdykpKT9sPTE6QT0zO2Rve2lmKDM9PSgwfEEpKXtpZihmPTB8YVts''@;'; put 'put ''Kzk2Pj4yXSl7aWYoYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sYVt3KzE2Pj4yXT1hW2MrMTY+PjJdLGFbdysyMD4+Ml09YVtjKzIwPj4yXSxhW3crMjQ+PjJdPWFbYysyND4+Ml0sYVt3KzI4Pj4y''@;'; put 'put ''XT1hW2MrMjg+PjJdLCgwfFBOKGYsdykpPDwyND4+MjQpe2w9MTticmVha31sPTB8YVttPj4yXX1pZigwfChsPTB8YVtsKzEwOD4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFb''@;'; put 'put ''YysxMj4+Ml0sYVt3KzE2Pj4yXT1hW2MrMTY+PjJdLGFbdysyMD4+Ml09YVtjKzIwPj4yXSxhW3crMjQ+PjJdPWFbYysyND4+Ml0sYVt3KzI4Pj4yXT1hW2MrMjg+PjJdLCgwfFBOKGwsdykpPDwyND4+MjQpKXtsPTE7YnJlYWt9bD0wfX13aGlsZSgwKTtyZXR1cm4gbGU9YiwwfGx9ZnVuY3Rp''@;'; put 'put ''b24gd1cobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTA7ZTpkb3tpZigoMHxhW2wrMTU2Pj4yXSk+PTImJihmPTB8djIoYywwfGFbNDcxOTBdLDE5NTA1OSksKDB8akkobCxmKSk8PDI0Pj4yND09MCkpaWYoMHxmZVtmPj4wXSlmPTA7ZWxzZSBmb3IoZj0wOzspe2lmKCgwfGYpPj0yKXtmPTA7''@;'; put 'put ''YnJlYWsgZX1pZihwPTB8djIoMHxhWygoMyZhW2M+PjJdfDApPT0oMHwoKHA9MT09KDB8ZikpPzI6MykpP2M6YysoNDgqKHA/LTE6MSl8MCl8MCkrNDA+PjJdLDB8YVs0NzE2N10sMTk1MDU5KSwhKDB8ZmVbcD4+MF0pKXtmPTE7YnJlYWsgZX1pZigoMHxqSShsLHApKTw8MjQ+PjI0KXtmPTE7''@;'; put 'put ''YnJlYWt9Zj1mKzF8MH1lbHNlIGY9MX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHpBKGwpe2x8PTA7dmFyIG0sQSx3LGIsayxNLEQsUixHLGM9MCxmPTAscD0wO0c9bGUsbGU9bGUrMTkyfDAsUj1HKzI0fDAsRD1HKzE2fDAsTT1HKzh8MCxrPUcsbT1HKzQ4fDAsYj1HKzMyfDAsMHxm''@;'; put 'put ''ZVsxMDAyODJdJiYodXMoMTg4NDkyLDEyOCwxOTQ4MjYpLGZlWzEwMDI4Ml09MCksdXMoYiwxMjgsRys1NnwwKSxhW20+PjJdPWwsQT1iKzR8MCx3PWIrOHwwLGM9MCxmPTA7ZTpmb3IoOzspe3A9Yzt0OmZvcig7Oylzd2l0Y2goMHxNb2UobSxiKSl7Y2FzZSAwOmM9MjE7YnJlYWsgZTtjYXNl''@;'; put 'put ''IDQwOmlmKHA8PDI0Pj4yNCl7Yz03O2JyZWFrIGV9cD0xO2NvbnRpbnVlIHQ7Y2FzZSA0MTppZihwPDwyND4+MjQpe3A9MDtjb250aW51ZSB0fWM9OTticmVhayBlO2RlZmF1bHQ6YnJlYWsgdH1pZighKHA8PDI0Pj4yNCkpe2lmKDYzPT0oMHxmKSl7Yz0xMjticmVha30oYz0wfGFbNDcxMjRd''@;'; put 'put ''KT4+PjA+PSgwfGFbNDcxMjVdKT4+PjAmJihRMCgxODg0OTIsMSksYz0wfGFbNDcxMjRdKSxhWzQ3MTI0XT1jKzEsZmVbYz4+MF09MCxhWzE4ODIyOCsoZjw8Mik+PjJdPWFbNDcxMjRdLGY9ZisxfDB9KGM9MHxhW0E+PjJdKT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCYmKFEwKGIsMSksYz0wfGFb''@;'; put 'put ''QT4+Ml0pLGZlW2M+PjBdPTAsYVtBPj4yXT1jPTB8YVtiPj4yXSx1bygxODg0OTIsYyksKGM9MHxhWzQ3MTI0XSk+Pj4wPj0oMHxhWzQ3MTI1XSk+Pj4wJiYoUTAoMTg4NDkyLDEpLGM9MHxhWzQ3MTI0XSksYVs0NzEyNF09YysxLGZlW2M+PjBdPTAsYz1wfWRve2lmKDc9PSgwfGMpKWFbaz4+''@;'; put 'put ''Ml09bCwkcigxLDEwMDI4MyxrKSxhWzQ3MDU3XT0wLEMyKGIpO2Vsc2UgaWYoOT09KDB8YykpYVtNPj4yXT1sLCRyKDEsMTAwMzE3LE0pLGFbNDcwNTddPTAsQzIoYik7ZWxzZSBpZigxMj09KDB8YykpYVtEPj4yXT1sLCRyKDAsMTAwMzQ1LEQpLGFbNDcxMjBdPTAsQzIoYik7ZWxzZSBpZigy''@;'; put 'put ''MT09KDB8Yykpe2lmKHA8PDI0Pj4yNCl7YVtSPj4yXT1sLCRyKDEsMTAwMzY4LFIpLGFbNDcwNTddPTAsQzIoYik7YnJlYWt9YVsxODgyMjgrKGY8PDIpPj4yXT0wLEMyKGIpLChjPTB8YVs0NzEyNF0pPj4+MD49KDB8YVs0NzEyNV0pPj4+MCYmKFEwKDE4ODQ5MiwxKSxjPTB8YVs0NzEyNF0p''@;'; put 'put ''LGZlW2M+PjBdPTAsYVs0NzEyNF09YVs0NzEyM119fXdoaWxlKDApO3JldHVybiBsZT1HLDE4ODIyOH1mdW5jdGlvbiBpcChsKXt2YXIgbSxBLGIsYz0wLGY9MCxwPTAsdz0wO2I9bGUsbGU9bGUrMTA0MHwwLEE9YixtPWIrOHwwLHA9MCxjPWx8PTA7ZTpmb3IoOzspe2Rve2lmKGY9YyxjPWMr''@;'; put 'put ''MXwwLCEoKGY9MHxmZVtmPj4wXSk8PDI0Pj4yNCkpYnJlYWsgZX13aGlsZSgoKGY8PDI0Pj4yNCktNDh8MCk+Pj4wPj0xMCk7aWYoKDB8cCk+PTEwMjMpe3c9NzticmVha31mZVttK3A+PjBdPWYscD1wKzF8MH1yZXR1cm4gNz09KDB8dykmJihhW0E+PjJdPWwsJHIoMCw2NjgxOSxBKSksZmVb''@;'; put 'put ''bStwPj4wXT0wLHc9NjU1MzUmKDB8cjMobSkpLGxlPWIsMHx3fWZ1bmN0aW9uIHpUKGwpe2x8PTA7dmFyIG0sayxNLGM9MCxmPTAscD0wLEE9MCx3PTAsYj0wO2lmKE09bGUsbGU9bGUrMTE4NHwwLEE9TSxwPU0rMjR8MCx1cyhrPU0rOHwwLDEwMjQsTSsxNTJ8MCksKG09K19bMTUyKyhjPTB8''@;'; put 'put ''YVsodz1sKzE2fDApPj4yXSk+PjNdKSE9K19bKGY9OCsoYVtjKzEyPj4yXTw8Myl8MCk+PjNdJiYoX1tmPj4zXT1tLHVvKGssNjY4ODIpLF9bQT4+M109K19bMTUyKygwfGFbdz4+Ml0pPj4zXSxvbyhwLDY2ODk2LEEpLEVGKHAsMCksdW8oayxwKSwoYz0wfGFbKHA9ays0fDApPj4yXSk+Pj4w''@;'; put 'put ''Pj0oMHxhWyhmPWsrOHwwKT4+Ml0pPj4+MCYmKFEwKGssMSksYz0wfGFbcD4+Ml0pLGFbcD4+Ml09YysxLGZlW2M+PjBdPTQxLChjPTB8YVtwPj4yXSk+Pj4wPj0oMHxhW2Y+PjJdKT4+PjAmJihRMChrLDEpLGM9MHxhW3A+PjJdKSxmZVtjPj4wXT0wLGFbcD4+Ml09Yz0wfGFbaz4+Ml0sUDUo''@;'; put 'put ''bCw2NjkwMSxjKSxjPTB8YVt3Pj4yXSksMHwoYz0wfGFbYysxNjA+PjJdKSl7dz1rKzR8MCxiPWsrOHwwO2U6Zm9yKDtBPWMrNHwwLGM9MHxhW2M+PjJdLGM7KXtzd2l0Y2goMHxmZVtjPj4wXSl7Y2FzZSAxMDI6aWYoISgwfFppKGMsMTExMTAxKSkpe2M9QTtjb250aW51ZSBlfWJyZWFrO2Nh''@;'; put 'put ''c2UgOTg6aWYoISgwfFppKGMsMTExMDgzKSkpe2M9QTtjb250aW51ZSBlfWJyZWFrO2Nhc2UgMTE1OmlmKCEoMHxaaShjLDExMTA4OCkpKXtjPUE7Y29udGludWUgZX19dW8oayxjKTtkb3twPWMsYz1jKzF8MH13aGlsZSgwIT0oMHxmZVtwPj4wXSkpO2lmKDB8ZmVbYz4+MF0pe2ZvcigoZj0w''@;'; put 'put ''fGFbdz4+Ml0pPj4+MD49KDB8YVtiPj4yXSk+Pj4wJiYoUTAoaywxKSxmPTB8YVt3Pj4yXSksYVt3Pj4yXT1mKzEsZmVbZj4+MF09NDAscD0wOzB8ZmVbYz4+MF07KXswfHAmJigoZj0wfGFbdz4+Ml0pPj4+MD49KDB8YVtiPj4yXSk+Pj4wJiYoUTAoaywxKSxmPTB8YVt3Pj4yXSksYVt3Pj4y''@;'; put 'put ''XT1mKzEsZmVbZj4+MF09NDQpLHVvKGssYyk7ZG97Zj1jLGM9YysxfDB9d2hpbGUoMCE9KDB8ZmVbZj4+MF0pKTtwPXArMXwwfShjPTB8YVt3Pj4yXSk+Pj4wPj0oMHxhW2I+PjJdKT4+PjAmJihRMChrLDEpLGM9MHxhW3c+PjJdKSxhW3c+PjJdPWMrMSxmZVtjPj4wXT00MX0oYz0wfGFbdz4+''@;'; put 'put ''Ml0pPj4+MD49KDB8YVtiPj4yXSk+Pj4wJiYoUTAoaywxKSxjPTB8YVt3Pj4yXSksZmVbYz4+MF09MCxhW3c+PjJdPWM9MHxhW2s+PjJdLFA1KGwsNjY5MDEsYyksYz1BfUMyKGspfWxlPU19ZnVuY3Rpb24gTkMobCl7eEYoMTYrKDB8YVsxNisobHw9MCk+PjJdKXwwKSxQNShsLDc1ODM0LDE5''@;'; put 'put ''Mzc1OCl9ZnVuY3Rpb24gVkMobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQSxiLGssdz0wO2ZvcihrPWxlLGxlPWxlKzEwNDB8MCxiPWssdz1rKzE2fDAsKGw9MHxhWyhtPTQrKEE9MHxhWzExNDE2KyhhWzEyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPDwyKT4+Ml0pfDApPj4yXSk+''@;'; put 'put ''Pj4wPj0oMHxhW0ErOD4+Ml0pPj4+MCYmKFEwKEEsMSksbD0wfGFbbT4+Ml0pLGFbbT4+Ml09bCsxLGZlW2w+PjBdPWMsYVtiPj4yXT1wLG9vKHcsNjY4NDYsYiksdW8oQSx3KSxsPTA7ISgoMHxsKT49KDB8cCkpOylhW2I+PjJdPWFbKHc9ZisobDw8NCl8MCk+PjJdLGFbYis0Pj4yXT1hW3cr''@;'; put 'put ''ND4+Ml0sYVtiKzg+PjJdPWFbdys4Pj4yXSxhW2IrMTI+PjJdPWFbdysxMj4+Ml0sQjUoQSxiKSxsPWwrMXwwO2xlPWt9ZnVuY3Rpb24gQjUobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxMDI0fDAsV2gocD1mLCtfWyhjfD0wKT4+M10pLHVvKGwscCksV2gocCwrZnVuY3Rpb24gdWFl''@;'; put 'put ''KGwpe3JldHVybisobD0rbCl9KCtfW2MrOD4+M10pKSx1byhsLHApLGxlPWZ9ZnVuY3Rpb24gV2gobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLF9bKHA9Zik+PjNdPShjPStjKT4tMWUtOCZjPDFlLTg/MDpjLG9vKGwsNjY4NTEscCksRUYobCwxKSxsZT1mfWZ1bmN0aW9uIEVG''@;'; put 'put ''KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtpZihmPTB8JHMobHw9MCw0Nikpe2Zvcig7MHxmZVsobD1mKzF8MCk+PjBdOylmPWw7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2Y+PjBdKXtjYXNlIDQ2OnA9NTticmVhayBlO2Nhc2UgNDg6YnJlYWs7ZGVmYXVsdDpwPTY7YnJlYWsgZX1mZVtmPj4wXT0w''@;'; put 'put ''LGY9ZistMXwwfTU9PSgwfHApP2ZlW2Y+PjBdPTA6Nj09KDB8cCkmJihmPWYrMXwwKSwwfGMmJihwPTEwKX1lbHNlIDB8YyYmKGY9bCsoMHxVbyhsKSl8MCxwPTEwKTsxMD09KDB8cCkmJihmZVtmPj4wXT0zMixmZVtmKzE+PjBdPTApfWZ1bmN0aW9uIHhGKGwpe3ZhciBjLGYscCxtLEEsdzt3''@;'; put 'put ''PWxlLGxlPWxlKzMyfDAsQT13KzE2fDAsbT13LGM9MHxmZVszKyhsfD0wKT4+MF0sZj0wfFh0W2w+PjBdLHA9MHxYdFtsKzE+PjBdLGw9MHxYdFtsKzI+PjBdLGM8PDI0Pj4yND09LTE/KGFbbT4+Ml09ZixhW20rND4+Ml09cCxhW20rOD4+Ml09bCxvbygxOTM3NTgsNzU3MTQsbSkpOihhW0E+''@;'; put 'put ''PjJdPWYsYVtBKzQ+PjJdPXAsYVtBKzg+PjJdPWwsYVtBKzEyPj4yXT0yNTUmYyxvbygxOTM3NTgsNjY4NjQsQSkpLGxlPXd9ZnVuY3Rpb24gUDUobCxjLGYpe3hXKDB8YVsxMTQxNisoYVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTw8Mik+PjJdLGN8PTAsZnw9MCl9ZnVuY3Rpb24geFco''@;'; put 'put ''bCxjLGYpe3ZhciBwLG0sQSx3O2x8PTAsY3w9MCxwPWxlLGxlPWxlKzEwNDB8MCxBPXAsbT1wKzh8MCx3PTB8VW8oZnw9MCksYVtBPj4yXT1jLGFbQSs0Pj4yXT13LG9vKG0sNjY4NTcsQSksdW8obCxtKSx1byhsLGYpLChjPTB8YVsoZj1sKzR8MCk+PjJdKT4+PjA+PSgwfGFbbCs4Pj4yXSk+''@;'; put 'put ''Pj4wJiYoUTAobCwxKSxjPTB8YVtmPj4yXSksYVtmPj4yXT1jKzEsZmVbYz4+MF09MzIsbGU9cH1mdW5jdGlvbiBURihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgUixxLHBlLGJlLE9lLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxHPTAsZ2U9MCxMZT0wO09lPWxlLGxlPWxlKzEx''@;'; put 'put ''MjB8MCxxPU9lKzY0fDAsYmU9T2UrODB8MCxBPU9lKzMyfDAsUj1PZSsxNnwwLEc9T2UsbT0uMDE3NDUzMjkyNTE5OTQzMjk1KisoMHxhWzEzNisocGU9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSksKDB8aHJbODIzMisoMHxhWzQ2NjkwXSk+PjFdKTwxND9HVChsKToodXMoYmUsMTAyNCxPZSs5''@;'; put 'put ''NnwwKSwoZ2U9Mj09KDB8YykpPyh3RChmLEEscCxtLDIpLChjPTB8YVsoZj1iZSs0fDApPj4yXSk+Pj4wPj0oMHxhW2JlKzg+PjJdKT4+PjAmJihRMChiZSwxKSxjPTB8YVtmPj4yXSksYVtmPj4yXT1jKzEsZmVbYz4+MF09OTEsYVtxPj4yXT1hW0E+PjJdLGFbcSs0Pj4yXT1hW0ErND4+Ml0s''@;'; put 'put ''YVtxKzg+PjJdPWFbQSs4Pj4yXSxhW3ErMTI+PjJdPWFbQSsxMj4+Ml0sQjUoYmUscSksYVtxPj4yXT1hWyhHPUErMTZ8MCk+PjJdLGFbcSs0Pj4yXT1hW0crND4+Ml0sYVtxKzg+PjJdPWFbRys4Pj4yXSxhW3ErMTI+PjJdPWFbRysxMj4+Ml0sQjUoYmUscSkpOih3RChmLEEscCwwLDMpLEQ9''@;'; put 'put ''K19bQSsyND4+M10saz0rX1tBPj4zXSwwPT1tPyhNPS4yNSpELG09Yj0rX1tBKzg+PjNdLHc9ayk6KExlPU09LjI1KkQsdz0raGEoK20pKkxlK2ssYj0rX1tBKzg+PjNdLG09K0RhKCttKSpMZStiKSxfW1I+PjNdPXcsX1tSKzg+PjNdPW0sX1tHPj4zXT1rLF9bRys4Pj4zXT1iLChjPTB8YVso''@;'; put 'put ''Zj1iZSs0fDApPj4yXSk+Pj4wPj0oMHxhW2JlKzg+PjJdKT4+PjAmJihRMChiZSwxKSxjPTB8YVtmPj4yXSksYVtmPj4yXT1jKzEsZmVbYz4+MF09NDAsYVtxPj4yXT1hW1I+PjJdLGFbcSs0Pj4yXT1hW1IrND4+Ml0sYVtxKzg+PjJdPWFbUis4Pj4yXSxhW3ErMTI+PjJdPWFbUisxMj4+Ml0s''@;'; put 'put ''QjUoYmUscSksVFcoYmUsTSksYVtxPj4yXT1hW0c+PjJdLGFbcSs0Pj4yXT1hW0crND4+Ml0sYVtxKzg+PjJdPWFbRys4Pj4yXSxhW3ErMTI+PjJdPWFbRysxMj4+Ml0sQjUoYmUscSksVFcoYmUsRCkpLHVvKGJlLDY2OTA3KSxmPXBlKzU2fDAsKG09K2puWyhjPXBlKzE0MHwwKT4+Ml0pPjA/''@;'; put 'put ''KFdUKGJlLG0sZiksV1QoYmUsK2puW2M+PjJdLHBlKzk2fDApKTooV1QoYmUsMCxmKSxXVChiZSwxLHBlKzk2fDApKSxMNihiZSksZj0oYz0wfGFbKEE9YmUrNHwwKT4+Ml0pPj4+MD49KDB8YVsocD1iZSs4fDApPj4yXSk+Pj4wLGdlPyhmJiYoUTAoYmUsMSksYz0wfGFbQT4+Ml0pLGFbQT4+''@;'; put 'put ''Ml09YysxLGZlW2M+PjBdPTkzKTooZiYmKFEwKGJlLDEpLGM9MHxhW0E+PjJdKSxhW0E+PjJdPWMrMSxmZVtjPj4wXT00MSksKGM9MHxhW0E+PjJdKT4+PjA+PSgwfGFbcD4+Ml0pPj4+MCYmKFEwKGJlLDEpLGM9MHxhW0E+PjJdKSxmZVtjPj4wXT0wLGFbQT4+Ml09Z2U9MHxhW2JlPj4yXSxQ''@;'; put 'put ''NShsLDY2OTA0LGdlKSxDMihiZSkpLGxlPU9lfWZ1bmN0aW9uIEdUKGwpe3hGKDU2KygwfGFbMTYrKGx8PTApPj4yXSl8MCksUDUobCw2NjkwNCwxOTM3NTgpfWZ1bmN0aW9uIFRXKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9bGUrMTAyNHwwLFdoKHA9ZixjPStjKSx1byhsLHApLGxlPWZ9''@;'; put 'put ''ZnVuY3Rpb24gV1QobCxjLGYpe3ZhciBwLG0sQTtsfD0wLGZ8PTAscD1sZSxsZT1sZSsxMDQwfDAsbT1wKzh8MCxfWyhBPXApPj4zXT1jPStjLG9vKG0sOTQxNjgsQSksRUYobSwxKSx4RihmKSx4VyhsLG0sMTkzNzU4KSxsZT1wfWZ1bmN0aW9uIFlUKGwsYyl7Y3w9MDt2YXIgZj0wO2Zvcihh''@;'; put 'put ''WyhsfD0wKT4+Ml09LTkmYVtsPj4yXSxmPTB8d3MobCk7ZjspWVQoZiwwKSxmPTB8RXMoZik7ZTpkb3tpZigwfGMpZm9yKGM9MHxEdChsKTs7KXtpZighYylicmVhayBlO2ZvcihhW2M+PjJdPS05JmFbYz4+Ml0sZj0wfHcwKGwsYyk7ZjspYVtmPj4yXT0tOSZhW2Y+PjJdLGY9MHxTMChsLGYp''@;'; put 'put ''O2M9MHx6dChsLGMpfX13aGlsZSgwKX1mdW5jdGlvbiBJRihsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgUixHLHBlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxxPTA7aWYocGU9bGUsbGU9bGUrMTZ8MCxxPXBlKzh8MCxHPXBlLFI9MCE9KDB8KGZ8PTApKSl7Zm9yKEQ9MHxpcygx''@;'; put 'put ''MTgzNiwwfGFbNDU4MV0pLCRpKGwsMSwxNDEwNjAsMTIsMCksJGkobCwyLDE0MTA2MCwxMiwwKSwkaShsLDAsMTQxMDYwLC0xMiwwKSxtPTB8RFcobCwwLEQpLGs9MHxEdChsKSxiPTAsQT0wO2s7KXtmb3IoMHxzMigwfHRpKGspLDEwODAwNiw3KT8oTT1BKzF8MCxBPUErbXwwKTooTT1BLEE9''@;'; put 'put ''MHxsaWUoRCwwfHRpKGspKSksYVs4KygwfGFvKGssMTQxMDYwLDApKT4+Ml09QSx3PTB8dzAobCxrKSxBPWI7dzspYVs4KygwfGFvKHcsMTQxMDYwLDApKT4+Ml09QSx3PTB8UzAobCx3KSxBPUErMXwwO2s9MHx6dChsLGspLGI9QSxBPU19TmwoRCl9ZWxzZSBtPTA7YVtwPj4yXT0xKyhEPTB8''@;'; put 'put ''YVtwPj4yXSksQWEoYyxEKSxFbihjLDk3Mzc0KSxmdW5jdGlvbiBERihsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsYixrPTA7dz1sZSxsZT1sZSszMnwwLEE9dysxNnwwLG09dys4fDAsYj13LGs9MHx0aShsfD0wKSxBYShjLDB8YVtwPj4yXSksYVtiPj4yXT0wfG9wKGsscCks''@;'; put 'put ''T3IoYyw2NzEyNCxiKSwwfGYmJihFbihjLDk3MzQ1KSxBYShjLDB8YVtwPj4yXSksaz0wIT0oMHxTYyhsKSksYVttPj4yXT1rPzEwNzY1MjoxMzczMDgsT3IoYyw2NzczOCxtKSxBYShjLDB8YVtwPj4yXSksaz0wIT0oMHxMQShsKSksYVtBPj4yXT1rPzEwNzY1MjoxMzczMDgsT3IoYyw2Nzc1''@;'; put 'put ''NSxBKSksbGU9d30obCxjLGYscCksakMobCxjLHApLEVuKGMsOTczNDUpLEFhKGMsMHxhW3A+PjJdKSxSPyhhW0c+PjJdPW0sT3IoYyw2NzAxNixHKSk6KGFbcT4+Ml09YVs4KygwfGFvKGwsMTQxMDYwLDApKT4+Ml0sT3IoYyw2NzAzNixxKSksZnVuY3Rpb24gcjdlKGwsYyxmLHAsbSl7Y3w9''@;'; put 'put ''MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtpZihBPTB8RHQobHw9MCkpe2ZvcihFbihjLDk3MzQ1KSwodz0wIT0oMHxmKSk/KHB8fChhW20+PjJdPTErKHA9MHxhW20+PjJdKSxBYShjLHApLEVuKGMsNjcwOTgpKSxwPTApOihhW20+PjJdPTErKHA9MHxhW20+PjJdKSxBYShjLHApLEVu''@;'; put 'put ''KGMsNjcxMTIpLEFhKGMsMHxhW20+PjJdKSxwPTApO0E7KXtpZigwfHMyKDB8dGkoQSksMTA4MDA2LDcpKXtkb3tpZihwKXtpZih3KXtFbihjLDk3MzQ1KTticmVha31FbihjLDEwMDk5OSk7YnJlYWt9cD0xfXdoaWxlKDApO3VpZShBLGMsZixtKX1BPTB8enQobCxBKX1hW20+PjJdPSgwfGFb''@;'; put 'put ''bT4+Ml0pLTEsRW4oYywxNTM1OTkpLEFhKGMsMHxhW20+PjJdKSxFbihjLDk3MzQwKX1lbHNlIDAhPSgwfGYpJjAhPSgwfHApJiYoYVttPj4yXT0oMHxhW20+PjJdKS0xLEVuKGMsMTUzNTk5KSxBYShjLDB8YVttPj4yXSksRW4oYyw5NzM0MCkpfShsLGMsZiwwfGZ1bmN0aW9uIHNpZShsLGMs''@;'; put 'put ''ZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSx3LGIsQT0wO2lmKGI9bGUsbGU9bGUrMTZ8MCx3PWIsbT0wfHdzKGx8PTApKXtmb3IoRW4oYyw5NzM0NSksYVtwPj4yXT0xKyhBPTB8YVtwPj4yXSksQWEoYyxBKSwoQT0wIT0oMHxmKSk/KEVuKGMsNjcwOTgpLGw9MCxmPW0pOihFbihjLDY3MTU4''@;'; put 'put ''KSxBYShjLDB8YVtwPj4yXSksbD0wLGY9bSk7ZjspbD9FbihjLDk3MzQ1KTpsPTEsQT9PVyhmLGMscCk6KGFbdz4+Ml09YVs4KygwfGFvKGYsMTQxMDYwLDApKT4+Ml0sT3IoYywxMzczOTUsdykpLGY9MHxFcyhmKTtBfHwoYVtwPj4yXT0oMHxhW3A+PjJdKS0xLEVuKGMsMTUzNTk5KSxBYShj''@;'; put 'put ''LDB8YVtwPj4yXSksRW4oYyw5NzM0MCkpLGw9MX1lbHNlIGw9MDtyZXR1cm4gbGU9YiwwfGx9KGwsYyxmLHApLHApLGZ1bmN0aW9uIGJhKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7bT0wfER0KGx8PTApO2U6ZG97aWYoMHxtKXtmb3IoOzspe2lmKCFtKWJy''@;'; put 'put ''ZWFrIGU7aWYoMHx3MChsLG0pKWJyZWFrO209MHx6dChsLG0pfWZvcihFbihjLDk3MzQ1KSxhW3A+PjJdPTErKGI9MHxhW3A+PjJdKSxBYShjLGIpLEVuKGMsNjcwNDgpLChiPTAhPSgwfGYpKXx8QWEoYywwfGFbcD4+Ml0pLEE9MDttOyl7Zm9yKHc9MHx3MChsLG0pO3c7KXtkb3tpZihBKXtp''@;'; put 'put ''ZihiKXtFbihjLDk3MzQ1KTticmVha31FbihjLDEwMDk5OSk7YnJlYWt9QT0xfXdoaWxlKDApO0xXKHcsYyxmLHApLHc9MHxTMChsLHcpfW09MHx6dChsLG0pfWFbcD4+Ml09KDB8YVtwPj4yXSktMSxFbihjLDE1MzU5OSksQWEoYywwfGFbcD4+Ml0pLEVuKGMsOTczNDApfX13aGlsZSgwKX0o''@;'; put 'put ''bCxjLGYscCksRW4oYywxNTM1OTkpLGFbcD4+Ml09cT0oMHxhW3A+PjJdKS0xfDAsQWEoYyxxKSxFbihjLFI/MTExMDA4Ojc1MzU3KSxsZT1wZX1mdW5jdGlvbiBEVyhsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7Zm9yKCgwfGRpKGx8PTApKSE9KDB8bCkmJihwPWMrMXwwLGFbOCsoMHxhbyhs''@;'; put 'put ''LDE0MTA2MCwwKSk+PjJdPWMsMHxzMigwfHRpKGwpLDEwODAwNiw3KXx8ZnVuY3Rpb24gUFcobCxjLGYpe2Z8PTA7dmFyIHAsQSxtPTA7QT1sZSxsZT1sZSsxNnwwLG09QSwocD0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCxjfD0wLDUxMikpPygwfGFbcCsxMj4+Ml0pIT0oMHxmKSYmKGFbbT4+''@;'; put 'put ''Ml09YywkcigwLDY3NzY4LG0pKToobT0wfHNoKDEsMTYpLGFbbSs4Pj4yXT0wfHJhKGMpLGFbbSsxMj4+Ml09ZixtaVs2MyZhW2w+PjJdXShsLG0sMSkpLGxlPUF9KGYsYz0wfHRpKGwpLDB8YVs4KygwfGFvKGwsMTQxMDYwLDApKT4+Ml0pLGM9cCkscD0wfHdzKGwpO3A7KWw9MHxEVyhwLGMs''@;'; put 'put ''ZikscD0wfEVzKHApLGM9bDtyZXR1cm4gMHxjfWZ1bmN0aW9uIGxpZShsLGMpe3JldHVybiAwfCgobD0wfG1pWzYzJmFbKGx8PTApPj4yXV0obCxjfD0wLDUxMikpPzB8YVtsKzEyPj4yXTotMSl9ZnVuY3Rpb24gQWEobCxjKXtmb3IobHw9MCxjfD0wOyEoKDB8Yyk8PTApOylFbihsLDkwNTc0''@;'; put 'put ''KSxjPWMrLTF8MH1mdW5jdGlvbiBqQyhsLGMsZil7Y3w9MCxmfD0wO3ZhciB3LGIsTSxELFIscD0wLG09MCxBPTAsaz0wO1I9bGUsbGU9bGUrMTZ8MCxEPVIrOHwwLE09UixwPTB8TnModz0wfGRpKGx8PTApLGI9MyZhW2w+PjJdLDApO2U6ZG97aWYoMHxwKWZvcihrPWYrNXwwOzspe2lmKCFw''@;'; put 'put ''KWJyZWFrIGU7bT0wfEhvKGwscCk7ZG97aWYoMHxtKXtpZihBPXArOHwwLCEoMHxmZVttPj4wXSkmJigxMDghPSgwfGZlWyhtPTB8YVtBPj4yXSk+PjBdKXx8MHxaaShtLDEwODIyNCkpKWJyZWFrO2lmKEVuKGMsOTczNDUpLEFhKGMsMHxhW2Y+PjJdKSxhW00+PjJdPTB8b3AoMHxhW0E+PjJd''@;'; put 'put ''LGYpLE9yKGMsNjcxNzQsTSksMHxmZVtrPj4wXSYmMHxTbCgwfGFbQT4+Ml0pKXtpN2UoMHxIbyhsLHApLGMsZik7YnJlYWt9YVtEPj4yXT0wfG9wKDB8SG8obCxwKSxmKSxPcihjLDY3MTgxLEQpfX13aGlsZSgwKTtwPTB8TnModyxiLHApfX13aGlsZSgwKTtsZT1SfWZ1bmN0aW9uIExXKGws''@;'; put 'put ''YyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtLEEsdyxrLGI9MDtrPWxlLGxlPWxlKzMyfDAsYj1rKzI0fDAsdz1rKzE2fDAsQT1rKzh8MCxtPWssKGZ8PTApPyhhW3A+PjJdPTErKGI9MHxhW3A+PjJdKSxBYShjLGIpLEVuKGMsOTczNzQpLEFhKGMsMHxhW3A+PjJdKSxhW20+PjJdPWFbOCso''@;'; put 'put ''MHxhbyhsLDE0MTA2MCwwKSk+PjJdLE9yKGMsNjcwNjAsbSksQWEoYywwfGFbcD4+Ml0pLGFbQT4+Ml09YVs4KygwfGFvKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdLDE0MTA2MCwwKSk+PjJdLE9yKGMsNjcwNzQsQSksQWEoYywwfGFbcD4+Ml0pLGFbdz4+Ml09YVs4''@;'; put 'put ''KygwfGFvKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSwxNDEwNjAsMCkpPj4yXSxPcihjLDY3MDg3LHcpLGpDKGwsYyxwKSxFbihjLDE1MzU5OSksYVtwPj4yXT1iPSgwfGFbcD4+Ml0pLTF8MCxBYShjLGIpLEVuKGMsNzUzNTcpKTooYVtiPj4yXT1hWzgrKDB8YW8o''@;'; put 'put ''bCwxNDEwNjAsMCkpPj4yXSxPcihjLDEzNzM5NSxiKSksbGU9a31mdW5jdGlvbiB1aWUobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIG0sQSxiLHc9MDtiPWxlLGxlPWxlKzMyfDAsdz1iKzE2fDAsQT1iKzh8MCxtPWIsKGZ8PTApPyhhW3A+PjJdPTErKHc9MHxhW3A+PjJdKSxBYShjLHcp''@;'; put 'put ''LEVuKGMsOTczNzQpLEFhKGMsMHxhW3A+PjJdKSxhW20+PjJdPWFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdLE9yKGMsNjcwNjAsbSksQWEoYywwfGFbcD4+Ml0pLGFbQT4+Ml09MHxvcCgwfHRpKGwpLHApLE9yKGMsNjcxMjQsQSksakMobCxjLHApLEVuKGMsMTUzNTk5KSxhW3A+PjJdPXc9''@;'; put 'put ''KDB8YVtwPj4yXSktMXwwLEFhKGMsdyksRW4oYyw3NTM1NykpOihhW3c+PjJdPWFbOCsoMHxhbyhsLDE0MTA2MCwwKSk+PjJdLE9yKGMsMTM3Mzk1LHcpKSxsZT1ifWZ1bmN0aW9uIG9wKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wOzB8ZmVbKG09NCsoY3w9MCl8MCk+PjBdJiYobD0wfHlrKGwp''@;'; put 'put ''KSwwfGFbNDY3MDZdfHx1cygxODY4MjQsMTAyNCwwKSxmPWw7ZTpmb3IoOzspe3N3aXRjaCgocD0wfGZlW2Y+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDM0OnVvKDE4NjgyNCw2NzEzNyk7YnJlYWs7Y2FzZSA5Mjp1bygxODY4MjQsOTY2MTYpO2JyZWFrO2Nhc2UgNDc6dW8o''@;'; put 'put ''MTg2ODI0LDY3MTQwKTticmVhaztjYXNlIDg6dW8oMTg2ODI0LDY3MTQzKTticmVhaztjYXNlIDEyOnVvKDE4NjgyNCw2NzE0Nik7YnJlYWs7Y2FzZSAxMDp1bygxODY4MjQsNjcxNDkpO2JyZWFrO2Nhc2UgMTM6dW8oMTg2ODI0LDY3MTUyKTticmVhaztjYXNlIDk6dW8oMTg2ODI0LDY3MTU1''@;'; put 'put ''KTticmVhaztkZWZhdWx0OihjPTB8YVs0NjcwN10pPj4+MD49KDB8YVs0NjcwOF0pPj4+MCYmKFEwKDE4NjgyNCwxKSxjPTB8YVs0NjcwN10pLGFbNDY3MDddPWMrMSxmZVtjPj4wXT1wfWY9ZisxfDB9cmV0dXJuKGM9MHxhWzQ2NzA3XSk+Pj4wPj0oMHxhWzQ2NzA4XSk+Pj4wJiYoUTAoMTg2''@;'; put 'put ''ODI0LDEpLGM9MHxhWzQ2NzA3XSksZmVbYz4+MF09MCxhWzQ2NzA3XT1jPTB8YVs0NjcwNl0sMHxmZVttPj4wXSYmRnQobCksMHxjfWZ1bmN0aW9uIE9XKGwsYyxmKXtmb3IoSUYobHw9MCxjfD0wLDAsZnw9MCksbD0wfHdzKGwpO2w7KUVuKGMsOTczNDUpLE9XKGwsYyxmKSxsPTB8RXMobCl9''@;'; put 'put ''ZnVuY3Rpb24gU2wobCl7dmFyIGM7Yz0xKyhsfD0wKXwwO2U6ZG97aWYoOTU9PSgwfGZlW2w+PjBdKSl7c3dpdGNoKCgoMjU1JihsPSgwfGZlW2M+PjBdKS0xMDA8PDI0Pj4yNCkpPj4+MnxsPDw2JjI1NSk8PDI0Pj4yNCl7Y2FzZSAwOmlmKCEoMHxaaShjLDY3Njk1KSkpe2w9MTticmVhayBl''@;'; put 'put ''fWJyZWFrO2Nhc2UgMjppZighKDB8WmkoYyw2NzcwMSkpKXtsPTE7YnJlYWsgZX1icmVhaztjYXNlIDE6aWYoISgwfFppKGMsNjc3MDgpKSl7bD0xO2JyZWFrIGV9cmV0dXJuIDA9PSgwfFppKGMsNjc3MjIpKXwwO2Nhc2UgNDppZighKDB8WmkoYyw2NzcxNSkpKXtsPTE7YnJlYWsgZX1sPTA9''@;'; put 'put ''PSgwfFppKGMsNjc3MzApKSYxO2JyZWFrIGU7ZGVmYXVsdDpsPTA7YnJlYWsgZX1sPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBpN2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wO3c9bGUsbGU9bGUrMTZ8MCxwPXc7ZG97aWYoMHxsJiYw''@;'; put 'put ''fGZlW2w+PjBdKXtpZighKEE9MHxtRihsKSkpe2FbcD4+Ml09bCwkcigwLDY3MTg2LHApO2JyZWFrfWZvcihFbihjLDE1MzU5OSksYVtmPj4yXT0xKyhtPTB8YVtmPj4yXSksQWEoYyxtKSxFbihjLDY3MjEzKSxtPUErOHwwLGw9MCxwPTA7ISgoMHxwKT49KDB8YVtBPj4yXSkpOylsP0VuKGMs''@;'; put 'put ''OTczNDUpOmw9MSxvN2UoKDB8YVttPj4yXSkrKDgwKnB8MCl8MCxjLGYpLHA9cCsxfDA7YVtmPj4yXT0oMHxhW2Y+PjJdKS0xLEVuKGMsMTUzNTk5KSxBYShjLDB8YVtmPj4yXSksRW4oYyw5NzM0MCksRnJlKEEpfX13aGlsZSgwKTtsZT13fWZ1bmN0aW9uIG83ZShsLGMsZil7bHw9MCxjfD0w''@;'; put 'put ''O3ZhciBtLEEsdyxiLGssTSxELFIsRyxxLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHJ0LHA9MCxxZT0wLFdlPTAsYXQ9MCxTdD0wO3J0PWxlLGxlPWxlKzI0MHwwLFZlPXJ0KzIyNHwwLEhlPXJ0KzIxNnwwLFJlPXJ0KzIwOHwwLExlPXJ0KzIwMHwwLE9lPXJ0KzE5MnwwLGJlPXJ0KzE4NHww''@;'; put 'put ''LGdlPXJ0KzE3NnwwLHBlPXJ0KzE1MnwwLHE9cnQrMTM2fDAsRz1ydCsxMjh8MCxSPXJ0KzExMnwwLEQ9cnQrMTA0fDAsTT1ydCs5NnwwLGs9cnQrODh8MCxiPXJ0KzcyfDAsdz1ydCs0OHwwLHFlPXJ0KzQwfDAsQT1ydCs4fDAsbT1ydCxhWyhmfD0wKT4+Ml09MSsocD0wfGFbZj4+Ml0pLEFh''@;'; put 'put ''KGMscCksRW4oYyw5NzM3NCksQWEoYywwfGFbZj4+Ml0pLHA9MHxhW2w+PjJdO2U6ZG97c3dpdGNoKDB8cCl7Y2FzZSAxOmNhc2UgMDphW20+PjJdPTA9PSgwfHApPzY5OjEwMSxPcihjLDY3MjE2LG0pLEFhKGMsMHxhW2Y+PjJdKSxTdD0rX1tsKzE2Pj4zXSxhdD0rX1tsKzI0Pj4zXSxXZT0r''@;'; put 'put ''X1tsKzMyPj4zXSxfW0E+PjNdPStfW2wrOD4+M10sX1tBKzg+PjNdPVN0LF9bQSsxNj4+M109YXQsX1tBKzI0Pj4zXT1XZSxPcihjLDY3MjI5LEEpO2JyZWFrO2Nhc2UgMzpjYXNlIDI6YVtxZT4+Ml09Mj09KDB8cCk/ODA6MTEyLE9yKGMsNjcyMTYscWUpLEFhKGMsMHxhW2Y+PjJdKSxSVyhj''@;'; put 'put ''LGwrOHwwKTticmVhaztjYXNlIDU6Y2FzZSA0OmFbdz4+Ml09ND09KDB8cCk/NjY6OTgsT3IoYyw2NzIxNix3KSxBYShjLDB8YVtmPj4yXSksUlcoYyxsKzh8MCk7YnJlYWs7Y2FzZSA2Ok9yKGMsNjcyNjQscnQrNTZ8MCksQWEoYywwfGFbZj4+Ml0pLFJXKGMsbCs4fDApO2JyZWFrO2Nhc2Ug''@;'; put 'put ''NzpPcihjLDY3Mjc2LHJ0KzY0fDApLEFhKGMsMHxhW2Y+PjJdKSxTdD0rX1tsKzE2Pj4zXSxfW2I+PjNdPStfW2wrOD4+M10sX1tiKzg+PjNdPVN0LE9yKGMsNjcyODgsYiksQWEoYywwfGFbZj4+Ml0pLGFbaz4+Ml09MD09KDB8KHFlPTB8YVtsKzI0Pj4yXSkpPzEwODoxPT0oMHxxZSk/OTk6''@;'; put 'put ''MTE0LE9yKGMsNjczMTAsayksQWEoYywwfGFbZj4+Ml0pLF9bTT4+M109K19bbCszMj4+M10sT3IoYyw2NzMyNixNKSxBYShjLDB8YVtmPj4yXSksYVtEPj4yXT0wfG9wKDB8YVtsKzQwPj4yXSxmKSxPcihjLDY3MzQzLEQpO2JyZWFrO2Nhc2UgOTpjYXNlIDg6YVtSPj4yXT04PT0oMHxwKT82''@;'; put 'put ''Nzo5OSxPcihjLDY3MjE2LFIpLEFhKGMsMHxhW2Y+PjJdKSxPcihjLDY3MzU3LHJ0KzEyMHwwKSxBYShjLDB8YVtmPj4yXSksYVtHPj4yXT0wfG9wKDB8YVtsKzg+PjJdLGYpLE9yKGMsNjczNzQsRyk7YnJlYWs7Y2FzZSAxMzpjYXNlIDE0OnN3aXRjaChhW3E+PjJdPTEzPT0oMHxwKT82Nzo5''@;'; put 'put ''OSxPcihjLDY3MjE2LHEpLEFhKGMsMHxhW2Y+PjJdKSwwfGFbbCs4Pj4yXSl7Y2FzZSAwOk9yKGMsNjczNTcscnQrMTQ0fDApLEFhKGMsMHxhW2Y+PjJdKSxhW3BlPj4yXT0wfG9wKDB8YVtsKzE2Pj4yXSxmKSxPcihjLDY3Mzc0LHBlKTticmVhayBlO2Nhc2UgMTpPcihjLDY3Mzg5LHJ0KzE2''@;'; put 'put ''MHwwKSxBYShjLDB8YVtmPj4yXSksYTdlKGMsbCsxNnwwLGYpO2JyZWFrIGU7ZGVmYXVsdDpPcihjLDY3NDA4LHJ0KzE2OHwwKSxBYShjLDB8YVtmPj4yXSksY2llKGMsbCsxNnwwLGYpO2JyZWFrIGV9Y2FzZSAxMDpPcihjLDY3NDI3LGdlKSxBYShjLDB8YVtmPj4yXSksX1tiZT4+M109K19b''@;'; put 'put ''bCs4Pj4zXSxPcihjLDY3NDM5LGJlKSxBYShjLDB8YVtmPj4yXSksYVtPZT4+Ml09MHxvcCgwfGFbbCsxNj4+Ml0sZiksT3IoYyw2NzQ1NSxPZSk7YnJlYWs7Y2FzZSAxMTpPcihjLDY3NDY5LExlKSxBYShjLDB8YVtmPj4yXSksYVtSZT4+Ml09MHxvcCgwfGFbbCs4Pj4yXSxmKSxPcihjLDY3''@;'; put 'put ''NDgxLFJlKTticmVhaztjYXNlIDE1Ok9yKGMsNjc0OTYsSGUpLEFhKGMsMHxhW2Y+PjJdKSxhW1ZlPj4yXT1hW2wrOD4+Ml0sT3IoYyw2NzUwOCxWZSl9fXdoaWxlKDApO2FbZj4+Ml09cWU9KDB8YVtmPj4yXSktMXwwLEFhKGMscWUpLEVuKGMsNzUzNTcpLGxlPXJ0fWZ1bmN0aW9uIFJXKGws''@;'; put 'put ''Yyl7dmFyIGYscCxtLEEsdyxiLGs9MDtmb3IoYj1sZSxsZT1sZSs0OHwwLHc9YiszMnwwLEE9YisxNnwwLG09Yis4fDAscD0wfGFbKGN8PTApPj4yXSxmPTB8YVtjKzQ+PjJdLE9yKGx8PTAsNjc2NjksYiksYz0wOyEoKDB8Yyk+PSgwfHApKTspKDB8Yyk+MCYmT3IobCwxMDA5OTksbSksaz0r''@;'; put 'put ''X1tmKygyNCpjfDApKzg+PjNdLF9bQT4+M109K19bZisoMjQqY3wwKT4+M10sX1tBKzg+PjNdPWssT3IobCw2NzY4MSxBKSxjPWMrMXwwO09yKGwsNjc2MjIsdyksbGU9Yn1mdW5jdGlvbiBhN2UobCxjLGYpe2N8PTA7dmFyIHAsbSx3LEE9MDtwPWxlLGxlPWxlKzMyfDAsbT1wKzE2fDAsdz1w''@;'; put 'put ''LEFhKGx8PTAsMHxhWyhmfD0wKT4+Ml0pLEE9K19bYys4Pj4zXSxfW3c+PjNdPStfW2M+PjNdLF9bdys4Pj4zXT1BLE9yKGwsNjc2MjUsdyksQWEobCwwfGFbZj4+Ml0pLEE9K19bYysyND4+M10sX1ttPj4zXT0rX1tjKzE2Pj4zXSxfW20rOD4+M109QSxPcihsLDY3NjQ3LG0pLEFhKGwsMHxh''@;'; put 'put ''W2Y+PjJdKSxCVyhsLDB8YVtjKzMyPj4yXSwwfGFbYyszNj4+Ml0sZiksbGU9cH1mdW5jdGlvbiBjaWUobCxjLGYpe2N8PTA7dmFyIHAsbSxiLEE9MCx3PTA7cD1sZSxsZT1sZSs0OHwwLG09cCsyNHwwLGI9cCxBYShsfD0wLDB8YVsoZnw9MCk+PjJdKSxBPStfW2MrOD4+M10sdz0rX1tjKzE2''@;'; put 'put ''Pj4zXSxfW2I+PjNdPStfW2M+PjNdLF9bYis4Pj4zXT1BLF9bYisxNj4+M109dyxPcihsLDY3NTI0LGIpLEFhKGwsMHxhW2Y+PjJdKSx3PStfW2MrMzI+PjNdLEE9K19bYys0MD4+M10sX1ttPj4zXT0rX1tjKzI0Pj4zXSxfW20rOD4+M109dyxfW20rMTY+PjNdPUEsT3IobCw2NzU1MixtKSxB''@;'; put 'put ''YShsLDB8YVtmPj4yXSksQlcobCwwfGFbYys0OD4+Ml0sMHxhW2MrNTI+PjJdLGYpLGxlPXB9ZnVuY3Rpb24gQlcobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIEEsdyxiLGssbT0wLE09MCxEPTA7Zm9yKGs9bGUsbGU9bGUrNDh8MCxiPWsrMzJ8MCx3PWsrMTZ8MCxBPWsrOHwwLE9yKGx8''@;'; put 'put ''PTAsNjc1ODAsayksbT0wOyEoKDB8bSk+PSgwfGMpKTspKDB8bSk+MCYmT3IobCwxMDA5OTksQSksRD0ram5bZisobTw8Myk+PjJdLE09MHxvcCgwfGFbZisobTw8MykrND4+Ml0scCksX1t3Pj4zXT1ELGFbdys4Pj4yXT1NLE9yKGwsNjc1OTEsdyksbT1tKzF8MDtPcihsLDY3NjIyLGIpLGxl''@;'; put 'put ''PWt9ZnVuY3Rpb24gdTcobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wO3N3aXRjaCgwfGFbMTQ0KyhsfD0wKT4+Ml0pe2Nhc2UgMTpwPTEwLGw9MTticmVhaztjYXNlIDI6cD0xMCxsPTI7YnJlYWs7ZGVmYXVsdDpwPTAsbD0wfWFbYz4+Ml09bCxfW2Y+PjNdPXB9ZnVuY3Rpb24gT0YobCxjLGYs''@;'; put 'put ''cCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgQSx3LGIsbT0wLGs9MCxNPTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCx3PWIrOHwwLEE9YixtPTA7ISgoMHxtKT49KDB8ZikpOylrPStfW2MrKG08PDQpKzg+PjNdLGFbQT4+Ml09fn4oKE09K19bYysobTw8NCk+PjNdKSsoTT49MD8uNTotLjUpKSxh''@;'; put 'put ''W0ErND4+Ml09fn4oaysoaz49MD8uNTotLjUpKSxPcihsLDgxMDk5LEEpLG09bSsxfDA7MHxwJiYoTT0rX1tjKzg+PjNdLGFbdz4+Ml09fn4oKGs9K19bYz4+M10pKyhrPj0wPy41Oi0uNSkpLGFbdys0Pj4yXT1+fihNKyhNPj0wPy41Oi0uNSkpLE9yKGwsODEwOTksdykpLEVuKGwsMTUzNTk5''@;'; put 'put ''KSxsZT1ifWZ1bmN0aW9uIE5XKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBrLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MDtmb3IoYVsobHw9MCk+PjJdPTAsaz0wfGFbNDY3MTFdLEE9MTk1MDc1LG09MCx3PS0xOzspe2lmKCgwfG0pPj0oMHxrKSl7TT02O2JyZWFrfWlmKEQ9KDB8''@;'; put 'put ''aXRbMTkwNjgwKyhtPDwxKT4+MV0pLWN8MCxiPSgwfGl0WzE5MTcwNCsobTw8MSk+PjFdKS1wfDAsKDB8KGI9KDB8QXIoUj0oMHxpdFsxOTExOTIrKG08PDEpPj4xXSktZnwwLFIpKSsoMHxBcihELEQpKSsoMHxBcihiLGIpKXwwKSk8KDB8QSkpe2lmKCFiKWJyZWFrO0E9Yix3PW19bT1tKzF8''@;'; put 'put ''MH1yZXR1cm4gNj09KDB8TSkmJihhWzQ2NzExXT1rKzEsMjU2PT0oMHxrKT9tPXc6KGl0WzE5MDY4MCsobTw8MSk+PjFdPWMsaXRbMTkxMTkyKyhtPDwxKT4+MV09ZixpdFsxOTE3MDQrKG08PDEpPj4xXT1wLGFbbD4+Ml09MSkpLDB8bX1mdW5jdGlvbiBKVChsLGMsZixwLG0sQSx3LGIpe2x8''@;'; put 'put ''PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MDt2YXIgUixHLHEscGUsZ2UsYmUsSGUsaz0wLE09MCxEPTAsT2U9MCxMZT0wLFJlPTAsVmU9MDtIZT1sZSxsZT1sZSsxMjh8MCxSZT1IZSsxMjB8MCxiZT1IZSsxMTJ8MCxnZT1IZSs5NnwwLHBlPUhlKzgwfDAscT1IZSs1Nnww''@;'; put 'put ''LExlPUhlKzQ4fDAsRz1IZSs0MHwwLE9lPUhlKzI0fDAsUj1IZTtlOmRve2lmKDAhPSgwfGYpJjAhPSgwfHApKXtmb3Ioaz1wKzEwfDAsKDB8YVs0NjcxNF0pPCgwfHApPyhhWzQ2NzE0XT1rLEQ9MHxVYSgwfGFbNDY3MTVdLGs8PDMpLGFbNDY3MTVdPUQpOkQ9MHxhWzQ2NzE1XSxrPTA7ISgo''@;'; put 'put ''MHxrKT49KDB8cCkpOylhW0QrKGs8PDMpPj4yXT1+figoVmU9K19bZisoazw8NCk+PjNdKSsoVmU+PTA/LjU6LS41KSksYVtEKyhrPDwzKSs0Pj4yXT1+figoVmU9K19bZisoazw8NCkrOD4+M10pKyhWZT49MD8uNTotLjUpKSxrPWsrMXwwO2lmKChmPTAhPSgwfG0pKSYwPT0oMHwoaz0wfGFb''@;'; put 'put ''KE09bCs2NHwwKT4+Ml0pKSl7aWYoISgwfGZlW20+PjBdKSlicmVhaztzd2l0Y2goMHxjKXtjYXNlIDA6T2U9MHxhW0Q+PjJdLExlPTB8YVtEKzEyPj4yXSxSZT0wfGFbRCs4Pj4yXSxwPTB8YVtEKzQ+PjJdLGFbUj4+Ml09bSxhW1IrND4+Ml09T2UsYVtSKzg+PjJdPUxlLGFbUisxMj4+Ml09''@;'; put 'put ''UmUsYVtSKzE2Pj4yXT1wLE9yKGwsNjc5NTQsUik7YnJlYWsgZTtjYXNlIDE6UmU9MHxhW0QrND4+Ml0scD0oMHxhW0QrOD4+Ml0pLShMZT0wfGFbRD4+Ml0pfDAsYVtPZT4+Ml09bSxhW09lKzQ+PjJdPUxlLGFbT2UrOD4+Ml09UmUsYVtPZSsxMj4+Ml09cCxPcihsLDY3OTc1LE9lKTticmVh''@;'; put 'put ''ayBlO2Nhc2UgMjpmb3IoYVtHPj4yXT1tLE9yKGwsNjc5OTUsRyksaz0wOyEoKDB8ayk+PSgwfHApKTspUmU9MHxhWyhPZT0wfGFbNDY3MTVdKSsoazw8MykrND4+Ml0sYVtMZT4+Ml09YVtPZSsoazw8Myk+PjJdLGFbTGUrND4+Ml09UmUsT3IobCw2ODAwMyxMZSksaz1rKzF8MDtFbihsLDE1''@;'; put 'put ''MzU5OSk7YnJlYWsgZTtkZWZhdWx0OlByKDEzODM5NCw2ODAxMCw2Myw2ODAzMCl9fWlmKGYmMT09KDB8aykpe2lmKCEoMHxmZVttPj4wXSkpYnJlYWs7aWYoIWMpe0xlPTB8YVtEKzEyPj4yXSxSZT0wfGFbRCs4Pj4yXSxwPTB8YVtEKzQ+PjJdLGFbcT4+Ml09YVtEPj4yXSxhW3ErND4+Ml09''@;'; put 'put ''TGUsYVtxKzg+PjJdPVJlLGFbcSsxMj4+Ml09cCxhW3ErMTY+PjJdPW0sYVtxKzIwPj4yXT1BLE9yKGwsNjgwNDcscSk7YnJlYWt9UHIoMTM4Mzk0LDY4MDEwLDc1LDY4MDMwKX1pZigyPT0oLTIma3wwKSl7c3dpdGNoKDB8Yyl7Y2FzZSAxOkVuKGwsNjgwODApO2JyZWFrO2Nhc2UgMDpFbihs''@;'; put 'put ''LDY4MTAxKTticmVhaztjYXNlIDI6RW4obCw2ODEyMCk7YnJlYWs7ZGVmYXVsdDpQcigxMzgzOTQsNjgwMTAsOTEsNjgwMzApfTB8YiYmMHxmZVtiPj4wXSYmKEVuKGwsNzM2MDApLEVuKGwsMHxkUShiKSksRW4obCw5ODc0NCkpLGYmJjB8ZmVbbT4+MF0mJihFbihsLDY4MTM5KSxFbihsLDB8''@;'; put 'put ''ZFEobSkpLEVuKGwsOTg3NDQpKSwwfHcmJjB8ZmVbdz4+MF0mJihFbihsLDc0NTU5KSxFbihsLDB8TTEodykpLEVuKGwsOTg3NDQpKSwwfEEmJjB8ZmVbQT4+MF0mJihFbihsLDY4MTQ3KSxFbihsLDB8TTEoQSkpLEVuKGwsOTg3NDQpKSxFbihsLDY4MTU2KSxFbihsLDY4MTY0KTt0OmRve3N3''@;'; put 'put ''aXRjaCgwfGMpe2Nhc2UgMTpSZT0wfGFbNCsocD0wfGFbNDY3MTVdKT4+Ml0scD0oMHxhW3ArOD4+Ml0pLShMZT0wfGFbcD4+Ml0pfDAsYVtwZT4+Ml09TGUsYVtwZSs0Pj4yXT1SZSxhW3BlKzg+PjJdPXAsT3IobCw2ODE3NCxwZSk7YnJlYWs7Y2FzZSAwOkxlPTB8YVsxMisoT2U9MHxhWzQ2''@;'; put 'put ''NzE1XSk+PjJdLFJlPTB8YVtPZSs4Pj4yXSxwPTB8YVtPZSs0Pj4yXSxhW2dlPj4yXT1hW09lPj4yXSxhW2dlKzQ+PjJdPUxlLGFbZ2UrOD4+Ml09UmUsYVtnZSsxMj4+Ml09cCxPcihsLDY4MTgzLGdlKTticmVhaztjYXNlIDI6Zm9yKGs9MHxhWzQrKExlPTB8YVs0NjcxNV0pPj4yXSxhW2Jl''@;'; put 'put ''Pj4yXT1hW0xlPj4yXSxhW2JlKzQ+PjJdPWssT3IobCw2ODE5NSxiZSksaz0xOzspe2lmKCgwfGspPj0oMHxwKSlicmVhayB0O0xlPTB8YVsoT2U9MHxhWzQ2NzE1XSkrKGs8PDMpKzQ+PjJdLGFbUmU+PjJdPWFbT2UrKGs8PDMpPj4yXSxhW1JlKzQ+PjJdPUxlLE9yKGwsNjgyMDEsUmUpLGs9''@;'; put 'put ''aysxfDB9fX13aGlsZSgwKTtpZigzPT0oMHxhW00+PjJdKSl7RW4obCw3MzQyNCk7YnJlYWt9RW4obCw2ODIwOCk7YnJlYWt9fX13aGlsZSgwKTtsZT1IZX1mdW5jdGlvbiAkVChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7c3dpdGNoKDB8YVsxNDQrKGx8PTApPj4yXSl7Y2FzZSAxOnA9MTAs''@;'; put 'put ''bD0xO2JyZWFrO2Nhc2UgMjpwPTEwLGw9MjticmVhaztkZWZhdWx0OnA9MCxsPTB9YVtjPj4yXT1sLF9bZj4+M109cH1mdW5jdGlvbiBXVyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBBLHcsYixtPTAsaz0wLE09MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9Yis4fDAsQT1iLG09''@;'; put 'put ''MDshKCgwfG0pPj0oMHxmKSk7KWs9K19bYysobTw8NCkrOD4+M10sYVtBPj4yXT1+figoTT0rX1tjKyhtPDw0KT4+M10pKyhNPj0wPy41Oi0uNSkpLGFbQSs0Pj4yXT1+fihrKyhrPj0wPy41Oi0uNSkpLE9yKGwsODEwOTksQSksbT1tKzF8MDswfHAmJihNPStfW2MrOD4+M10sYVt3Pj4yXT1+''@;'; put 'put ''figoaz0rX1tjPj4zXSkrKGs+PTA/LjU6LS41KSksYVt3KzQ+PjJdPX5+KE0rKE0+PTA/LjU6LS41KSksT3IobCw4MTA5OSx3KSksRW4obCwxNTM1OTkpLGxlPWJ9ZnVuY3Rpb24gWVcobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wLE09MCxEPTAsUj0wO2Zv''@;'; put 'put ''cihhWyhsfD0wKT4+Ml09MCxrPTB8YVs0NjcxN10sQT0xOTUwNzUsbT0wLHc9LTE7Oyl7aWYoKDB8bSk+PSgwfGspKXtNPTY7YnJlYWt9aWYoRD0oMHxpdFsxOTIyMTYrKG08PDEpPj4xXSktY3wwLGI9KDB8aXRbMTkzMjQwKyhtPDwxKT4+MV0pLXB8MCwoMHwoYj0oMHxBcihSPSgwfGl0WzE5''@;'; put 'put ''MjcyOCsobTw8MSk+PjFdKS1mfDAsUikpKygwfEFyKEQsRCkpKygwfEFyKGIsYikpfDApKTwoMHxBKSl7aWYoIWIpYnJlYWs7QT1iLHc9bX1tPW0rMXwwfXJldHVybiA2PT0oMHxNKSYmKGFbNDY3MTddPWsrMSwyNTY9PSgwfGspP209dzooaXRbMTkyMjE2KyhtPDwxKT4+MV09YyxpdFsxOTI3''@;'; put 'put ''MjgrKG08PDEpPj4xXT1mLGl0WzE5MzI0MCsobTw8MSk+PjFdPXAsYVtsPj4yXT0xKSksMHxtfWZ1bmN0aW9uIGFwKGwsYyl7bHw9MDt2YXIgcCxtLGY9MCxBPTAsdz0wO2lmKG09bGUsbGU9bGUrMzJ8MCxwPW0sMHwoY3w9MCkpe3N3aXRjaCgwfGFbNCsoMHxhW2wrMTY+PjJdKT4+Ml0pe2Nh''@;'; put 'put ''c2UgMTpjYXNlIDA6Zj0xMTE0OTQ7YnJlYWs7Y2FzZSAyOmY9MTExNDgxO2JyZWFrO2Nhc2UgMzpmPTExMTQ1MDticmVhaztkZWZhdWx0OmY9Njg4MTh9dz0rX1tjKzg+PjNdLEE9K19bYysxNj4+M10sX1twPj4zXT0rX1tjPj4zXSxfW3ArOD4+M109dyxfW3ArMTY+PjNdPUEsYVtwKzI0Pj4y''@;'; put 'put ''XT1mLE9yKGwsNjg4MjUscCl9bGU9bX1mdW5jdGlvbiBHQShsKXt2YXIgbSx3LGIsayxjPTAsZj0wLHA9MCxBPTA7Zm9yKGs9bGUsbGU9bGUrMTZ8MCxiPWsrOHwwLHc9ayxjPTB8YVsxNjArKEE9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSxacyhsLCtfW0ErMTUyPj4zXSksRW4obCw2''@;'; put 'put ''ODc5OSk7YyYmKEE9Yys0fDAscD0wfGFbYz4+Ml0pOylpZigwfFppKHAsMTExMDg4KSl7Zm9yKGY9cDtjPWYrMXwwLDB8ZmVbZj4+MF07KWY9YztlOmZvcig7MHxmZVtjPj4wXTspZm9yKGFbdz4+Ml09YyxPcihsLDY4ODE0LHcpOzspe2lmKGY9YysxfDAsISgwfGZlW2M+PjBdKSl7Yz1mO2Nv''@;'; put 'put ''bnRpbnVlIGV9Yz1mfTB8WmkocCwxMzQzMzUpfHwoX1sxNTIrKDB8YVttPj4yXSk+PjNdPTApLGFbYj4+Ml09cCxPcihsLDk2NjcwLGIpLGM9QX1lbHNlIGM9QTtsZT1rfWZ1bmN0aW9uIE5GKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHcsYixrLE0sRCxSLEcscD0wLG09MCxBPTA7Rz1sZSxsZT1s''@;'; put 'put ''ZSs5NnwwLGI9Rys0OHwwLFI9Rys0MHwwLE09RyszMnwwLEQ9RysyNHwwLHc9RysxNnwwLG09Rys4fDAscD1HLGs9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3MzQyOSk7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDI6YVtwPj4yXT1mLE9yKGwsNzM0MzcscCk7YnJlYWs7Y2FzZSAzOmFbbT4+Ml09''@;'; put 'put ''ZixPcihsLDczNDQ4LG0pO2JyZWFrO2Nhc2UgMDpFbihsLDEzNTcwOSk7YnJlYWs7ZGVmYXVsdDptPWM9ays1NnwwLEE9KHA9YikrNDB8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtpZihHQyhsLGIpLDE9PSgwfGFbays4OD4+Ml0pKXtz''@;'; put 'put ''d2l0Y2goKGM9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0KXtjYXNlLTE6Y2FzZSAwOmJyZWFrIGV9X1t3Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygyNTUmYyksT3IobCw3MzQ1OSx3KX19fXdoaWxlKDApO0VuKGwsNzM0NzgpLG09Zj1rKzE2fDAsQT0ocD1iKSs0MHwwO2Rve2FbcD4+Ml09YVtt''@;'; put 'put ''Pj4yXSxwPXArNHwwLG09bSs0fDB9d2hpbGUoKDB8cCk8KDB8QSkpO3N3aXRjaChHQyhsLGIpLDEhPStfWyhjPWsrMTUyfDApPj4zXSYmKEVuKGwsNzM0ODkpLFpzKGwsK19bYz4+M10pKSwwfGFbaysxNDQ+PjJdKXtjYXNlIDE6YVtEPj4yXT03MzUyOSxPcihsLDczNTA2LEQpO2JyZWFrO2Nh''@;'; put 'put ''c2UgMjphW00+PjJdPTczNTMzLE9yKGwsNzM1MDYsTSl9ZTpkb3tpZigxPT0oMHxhW2srNDg+PjJdKSl7c3dpdGNoKChjPTB8ZmVbZiszPj4wXSk8PDI0Pj4yNCl7Y2FzZS0xOmNhc2UgMDpicmVhayBlfV9bUj4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsNzM1MzcsUil9''@;'; put 'put ''fXdoaWxlKDApO0VuKGwsOTg3NDQpLGxlPUd9ZnVuY3Rpb24gR0MobCxjKXtsfD0wLGN8PTA7dmFyIGYscCxtPTAsQT0wO3A9bGUsbGU9bGUrMTZ8MCxmPXA7ZTpkb3tzd2l0Y2goMHxhW2MrMzI+PjJdKXtjYXNlIDU6RW4obCwwfGFbYz4+Ml0pO2JyZWFrO2Nhc2UgMTppZigwfGZlW2MrMz4+''@;'; put 'put ''MF0pe0E9MHxYdFtjKzE+PjBdLG09MHxYdFtjKzI+PjBdLGFbZj4+Ml09WHRbYz4+MF0sYVtmKzQ+PjJdPUEsYVtmKzg+PjJdPW0sT3IobCw3NTcxNCxmKTticmVhayBlfUVuKGwsMTM3Mzc5KTticmVhayBlO2RlZmF1bHQ6UHIoMTM4Mzk0LDczNTU4LDExNyw3MzU3OCl9fXdoaWxlKDApO2xl''@;'; put 'put ''PXB9ZnVuY3Rpb24gdFkobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBiLGssTSxELFIsRyxwZSxwPTAsbT0wLEE9MCx3PTAscT0wO3BlPWxlLGxlPWxlKzExMnwwLE09cGUrNjR8MCxHPXBlKzU2fDAsaz1wZSs0OHwwLGI9cGUrNDB8MCxtPXBlKzMyfDAsdz1wZSxhWzQ2NzIyXT0xKyhSPTB8''@;'; put 'put ''YVs0NjcyMl0pLHA9LjAxNzQ1MzI5MjUxOTk0MzI5NSorKDB8YVsxMzYrKEQ9MHxhW2wrMTY+PjJdKT4+Ml0pLGFbdz4+Ml09MCxhW3crND4+Ml09MCxhW3crOD4+Ml09MCxhW3crMTI+PjJdPTAsYVt3KzE2Pj4yXT0wLGFbdysyMD4+Ml09MCxhW3crMjQ+PjJdPTAsYVt3KzI4Pj4yXT0wLHdE''@;'; put 'put ''KGMsdyxmLHAsMCksYVtNPj4yXT1SLE9yKGwsNzM4MzEsTSksRW4obCw3Mzg5NiksWnMobCwrX1t3Pj4zXSksRW4obCw3MzkwMSksWnMobCwrX1t3Kzg+PjNdKSxFbihsLDczOTA4KSxacyhsLCtfW3crMTY+PjNdKSxFbihsLDczOTE1KSxacyhsLCtfW3crMjQ+PjNdKSxFbihsLDczOTIyKSwo''@;'; put 'put ''cD0ram5bKHc9RCsxNDB8MCk+PjJdKT4wPyhfW20+PjNdPXArLS4wMDEsT3IobCw3MzkyNyxtKSk6RW4obCw3MzcwMyksbT1jPUQrNTZ8MCxBPShmPU0pKzQwfDA7ZG97YVtmPj4yXT1hW20+PjJdLGY9Zis0fDAsbT1tKzR8MH13aGlsZSgoMHxmKTwoMHxBKSk7R0MobCxNKSxFbihsLDczNzM5''@;'; put 'put ''KTtlOmRve2lmKDE9PSgwfGFbRCs4OD4+Ml0pKXtzd2l0Y2goKGM9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0KXtjYXNlLTE6Y2FzZSAwOnE9NzticmVhayBlfV9bYj4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsOTk2MTIsYil9ZWxzZSBxPTd9d2hpbGUoMCk7Nz09KDB8cSkm''@;'; put 'put ''JkVuKGwsNzM3NTQpLEVuKGwsNzM3NTcpLChwPStqblt3Pj4yXSk+MD8oX1trPj4zXT1wLE9yKGwsNzM5MjcsaykpOkVuKGwsNzM3NjMpLG09Yz1EKzk2fDAsQT0oZj1NKSs0MHwwO2Rve2FbZj4+Ml09YVttPj4yXSxmPWYrNHwwLG09bSs0fDB9d2hpbGUoKDB8Zik8KDB8QSkpO0dDKGwsTSks''@;'; put 'put ''RW4obCw3MzczOSk7ZTpkb3tpZigxPT0oMHxhW0QrMTI4Pj4yXSkpe3N3aXRjaCgoYz0wfGZlW2MrMz4+MF0pPDwyND4+MjQpe2Nhc2UtMTpjYXNlIDA6cT0xNDticmVhayBlfV9bRz4+M109LjAwMzkyMTU2ODYyNzQ1MDk4KisoMjU1JmMpLE9yKGwsOTk2MTIsRyl9ZWxzZSBxPTE0fXdoaWxl''@;'; put 'put ''KDApO3JldHVybiAxND09KDB8cSkmJkVuKGwsNzM3NTQpLEVuKGwsNzM5NjcpLGxlPXBlLDB8Un1mdW5jdGlvbiBuWShsKXtsfD0wO3ZhciBmLHcsYixrLE0sRCxHLHEsYz0wLHA9MCxtPTAsQT0wLFI9MDtHPWxlLGxlPWxlKzY0fDAsYj1HKzE2fDAsRD1HKzh8MCx3PUcsYVs0NjcyMV09MSso''@;'; put 'put ''TT0wfGFbNDY3MjFdKSxmPXE9LjAxNzQ1MzI5MjUxOTk0MzI5NSorKDB8YVsxMzYrKGs9MHxhW2wrMTY+PjJdKT4+Ml0pLDA9PXE/KHA9NTAsYz01MCk6KHA9fn4oNTAqKCtoYSgrZikrMSkpLGM9fn4oNTAqKDEtK0RhKCtmKSkpKSxhW2I+PjJdPU0sYVtiKzQ+PjJdPXAsYVtiKzg+PjJdPWMs''@;'; put 'put ''T3IobCw3MzYxOSxiKSxFbihsLDczNzAzKSxtPWM9ays1NnwwLEE9KHA9YikrNDB8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtHQyhsLGIpLEVuKGwsNzM3MzkpO2U6ZG97aWYoMT09KDB8YVtrKzg4Pj4yXSkpe3N3aXRjaCgoYz0wfGZl''@;'; put 'put ''W2MrMz4+MF0pPDwyND4+MjQpe2Nhc2UtMTpjYXNlIDA6Uj02O2JyZWFrIGV9X1t3Pj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygyNTUmYyksT3IobCw5OTYxMix3KX1lbHNlIFI9Nn13aGlsZSgwKTs2PT0oMHxSKSYmRW4obCw3Mzc1NCksRW4obCw3Mzc1NyksRW4obCw3Mzc2MyksbT1jPWsr''@;'; put 'put ''OTZ8MCxBPShwPWIpKzQwfDA7ZG97YVtwPj4yXT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7R0MobCxiKSxFbihsLDczNzM5KTtlOmRve2lmKDE9PSgwfGFbaysxMjg+PjJdKSl7c3dpdGNoKChjPTB8ZmVbYyszPj4wXSk8PDI0Pj4yNCl7Y2FzZS0xOmNhc2Ug''@;'; put 'put ''MDpSPTEwO2JyZWFrIGV9X1tEPj4zXT0uMDAzOTIxNTY4NjI3NDUwOTgqKygyNTUmYyksT3IobCw5OTYxMixEKX1lbHNlIFI9MTB9d2hpbGUoMCk7cmV0dXJuIDEwPT0oMHxSKSYmRW4obCw3Mzc1NCksRW4obCw3Mzc5OSksbGU9RywwfE19ZnVuY3Rpb24gYzcobCxjLGYscCxtKXt2YXIgQSx3''@;'; put 'put ''LGI7Y3w9MCxmfD0wLHB8PTAsbXw9MCxiPWxlLGxlPWxlKzE2fDAsdz1iKzh8MCxBPWIsRW4obHw9MCw3NDU4NyksRW4obCwwfE0xKGMpKSwwfGYmJihhW0E+PjJdPTB8TTEoZiksT3IobCw3NDU5NSxBKSksYVt3Pj4yXT1wLE9yKGwsNzQ1OTksdyksMHwoYz0wfExpKG0sNzQ2MTEpKSYmMHxm''@;'; put 'put ''ZVtjPj4wXSYmKEVuKGwsMTAyNjA0KSxFbihsLDB8TTEoYykpKSxFbihsLDk4NzQ0KSxsZT1ifWZ1bmN0aW9uIHFUKGwpe3JldHVybiAwfGx9ZnVuY3Rpb24gZUkobCl7RW4obHw9MCwwfGZlW2wrMTQ0Pj4wXT8wfGFbbCsxNDg+PjJdOjc1MjYzKX1mdW5jdGlvbiBXQShsLGMpe2x8PTAsY3w9''@;'; put 'put ''MDt2YXIgZixwLG09MCxBPTA7cD1sZSxsZT1sZSsxNnwwLGY9cDtlOmRve3N3aXRjaCgwfGFbYyszMj4+Ml0pe2Nhc2UgNTpFbihsLDB8YVtjPj4yXSk7YnJlYWs7Y2FzZSAxOmlmKDB8ZmVbYyszPj4wXSl7QT0wfFh0W2MrMT4+MF0sbT0wfFh0W2MrMj4+MF0sYVtmPj4yXT1YdFtjPj4wXSxh''@;'; put 'put ''W2YrND4+Ml09QSxhW2YrOD4+Ml09bSxPcihsLDc1NzE0LGYpO2JyZWFrIGV9RW4obCw5NzMwOSk7YnJlYWsgZTtkZWZhdWx0OlByKDEzODM5NCw3NTE4MSw0OSw3NTI0NSl9fXdoaWxlKDApO2xlPXB9ZnVuY3Rpb24gdEkobCl7dmFyIEEsdyxjPTAsZj0wLHA9MCxtPTA7c3dpdGNoKHc9bGUs''@;'; put 'put ''bGU9bGUrMTZ8MCxBPXcsMHxhWzEyKyhtPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0pe2Nhc2UgODpjPTEsZj0xMTE0ODEscD1tKzh8MDticmVhaztjYXNlIDEwOmM9MCxmPTExMTQ4MSxwPW0rOHwwO2JyZWFrO2Nhc2UgMzpjYXNlIDI6Y2FzZSA5OmM9MSxmPTExMTQ1MCxwPW0rOHwwO2JyZWFr''@;'; put 'put ''O2Nhc2UgNzpjYXNlIDY6Y2FzZSAxMTpjPTAsZj0xMTE0NTAscD1tKzh8MDticmVhaztjYXNlIDA6Y2FzZSAxOmM9MSxmPTExMTQ5NCxwPW0rOHwwO2JyZWFrO2Nhc2UgNDpjPTAsZj03NTIxNyxwPW0rOHwwO2JyZWFrO2Nhc2UgNTpjPTAsZj0xMTE0OTQscD1tKzh8MDticmVhaztkZWZhdWx0''@;'; put 'put ''OlByKDEzODM5NCw3NTE4MSwxMDYsNzUyMDApfW09MHxhWzgrKDB8YVtwPj4yXSk+PjJdLGFbQT4+Ml09YyxhW0ErND4+Ml09ZixhW0ErOD4+Ml09bSxPcihsLDc1MjI5LEEpLGxlPXd9ZnVuY3Rpb24gbmkobCl7bHw9MDt2YXIgcGUsZ2UsT2UsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0w''@;'; put 'put ''LGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLGJlPTA7T2U9bGUsbGU9bGUrMTZ8MCxmPU9lLChjPTB8YVs0NjcyNF0pfHwoYVs0NjcyNV09NjQsYz0wfFFuKDY0KSxhWzQ2NzI0XT1jKSxnZT1mKzE1fDAscGU9ZisxNHwwLG09MCxxPTAsUj0wLGY9MCxwPTA7ZTpmb3IoOzspe0Q9MCE9KDB8Uiks''@;'; put 'put ''az1tLEc9bCxiPWY7dDpmb3IoOzspe2lmKCFHKXtiZT0zMjticmVhayBlfWlmKCEoKGY9MHxmZVtHPj4wXSk8PDI0Pj4yNCkpe2JlPTMyO2JyZWFrIGV9c3dpdGNoKCgwfHEpPigobD0wfGFbNDY3MjVdKS04fDApJiYoYVs0NjcyNV09Yz1sPDwxLGM9MHxWMCgwfGFbNDY3MjRdLGMpLGFbNDY3''@;'; put 'put ''MjRdPWMsYz1jK3F8MCxmPTB8ZmVbRz4+MF0pLGY8PDI0Pj4yNCl7Y2FzZSA2MDpmPTQsbD0xMDIxNTMsYmU9MjY7YnJlYWsgdDtjYXNlIDYyOmY9NCxsPTEwMjEzNixiZT0yNzticmVhayB0O2Nhc2UgMzg6YmU9MTA7YnJlYWsgdDtjYXNlIDQ1OmY9NSxsPTEwMjE0Nyx3PWI7YnJlYWsgdH1p''@;'; put 'put ''ZihEJmY8PDI0Pj4yND09MzIpe2JlPTEyO2JyZWFrfXN3aXRjaChmPDwyND4+MjQpe2Nhc2UgMzQ6Zj02LGw9MTAyMTE2LGJlPTI2O2JyZWFrIHQ7Y2FzZSAzOTpmPTUsbD0xMDIxNDEsYmU9Mjc7YnJlYWsgdH1pZighKGY8PDI0Pj4yNDwwKSl7Zj0xLGw9RyxiZT0yNjticmVha31mb3Iodz0x''@;'; put 'put ''MjcsbD0wOyEoKG09MjU1JncpPj4+MD49KEE9MjU1JmYpPj4+MCk7KWY9dyZBJjI1NSx3PW0+Pj4xLGw9bCsxfDA7aWYoKDB8bCk8PTEpe2lmKG09MHx6bCgwfChtPTB8Wm8oMHxiLDB8cCw2KSksMHxEbiwyNTUmZnwwLDApLHA9RG4sTT1rKy0xfDAsISgoMHxrKT4xKSl7YmU9MjE7YnJlYWt9''@;'; put 'put ''bD1NLGY9bX1lbHNlIGw9bCstMXwwLGYmPTI1NSxwPTA7az1sLEc9RysxfDAsYj1mfWlmKDEwPT0oMHxiZSkpYmU9MCxmPShsPTA9PSgwfFRsKEcpKSk/NToxLGw9bD8xMDIxMzA6Ryx3PWI7ZWxzZSBpZigxMj09KDB8YmUpKWJlPTAsZj0obD0zMj09KDB8ZmVbUj4+MF0pKT82OjEsbD1sPzEw''@;'; put 'put ''MjEyMzpHLHc9YjtlbHNlIGlmKDIxPT0oMHxiZSkpe2ZvcihiZT0wLGZlW2dlPj4wXT01OSxmPTMsQT1wZSx3PW0sYj1wOzspe2lmKGw9MHxpUygwfHcsMHxiLDEwLDApLG09QSstMXwwLGZlW0E+PjBdPTQ4fGwsbD13LHc9MHxvdygwfHcsMHxiLDEwLDApLHA9YixiPURuLFI9ZixmPWYrMXww''@;'; put 'put ''LCgwfFIpPjExKXtiZT0yMzticmVhayBlfWlmKCEocD4+PjA+MHwwPT0oMHxwKSZsPj4+MD45KSlicmVhaztBPW19bD1BKy0yfDAsZmVbbT4+MF09MzUsZmVbbD4+MF09Mzgsaz1NLHA9Yn1lbHNlKDI2PT0oMHxiZSl8fDI3PT0oMHxiZSkpJiYoYmU9MCx3PWIpO2ZvcihBPWMrZnwwLG09Zjtt''@;'; put 'put ''OylmZVtjPj4wXT0wfGZlW2w+PjBdLG09bSstMXwwLGw9bCsxfDAsYz1jKzF8MDttPWssbD1HKzF8MCxxPWYrcXwwLFI9RyxjPUEsZj13fWlmKDIzPT0oMHxiZSkpQ3UoNzU0NjQsNDYsMSwwfGFbMTU3MTJdKSxYdSgxKTtlbHNlIGlmKDMyPT0oMHxiZSkpcmV0dXJuIGZlW2M+PjBdPTAsbGU9''@;'; put 'put ''T2UsMHxhWzQ2NzI0XTtyZXR1cm4gMH1mdW5jdGlvbiBUbChsKXt2YXIgYz0wLGY9MDtjPTB8ZmVbKGY9MSsobHw9MCl8MCk+PjBdO2U6ZG97aWYoYzw8MjQ+PjI0PT0zNSl7c3dpdGNoKChjPTB8ZmVbKGY9bCsyfDApPj4wXSk8PDI0Pj4yNCl7Y2FzZSA4ODpjYXNlIDEyMDpicmVhaztkZWZh''@;'; put 'put ''dWx0OmZvcihsPWY7Oyl7aWYoZj1sKzF8MCwoYystNDgmMjU1KT49MTApYnJlYWsgZTtsPWYsYz0wfGZlW2Y+PjBdfX1mb3IoZj1sKzN8MDs7KXtpZigoKGM9MHxmZVtmPj4wXSktNDgmMjU1KT49MTApc3dpdGNoKGM8PDI0Pj4yNCl7Y2FzZSA2NTpjYXNlIDY2OmNhc2UgNjc6Y2FzZSA2ODpj''@;'; put 'put ''YXNlIDY5OmNhc2UgNzA6Y2FzZSA5NzpjYXNlIDk4OmNhc2UgOTk6Y2FzZSAxMDA6Y2FzZSAxMDE6Y2FzZSAxMDI6YnJlYWs7ZGVmYXVsdDpicmVhayBlfWY9ZisxfDB9fWVsc2UgZm9yKDs7KXtpZihsPWYrMXwwLCgoLTMzJmMpLTY1JjI1NSk+PTI2KWJyZWFrIGU7Zj1sLGM9MHxmZVtsPj4w''@;'; put 'put ''XX19d2hpbGUoMCk7cmV0dXJuIGM8PDI0Pj4yND09NTl8MH1mdW5jdGlvbiBuSShsKXt2YXIgYyxmLEEsdyxiLGsscD0wLG09MDtrPWxlLGxlPWxlKzQ4fDAsZj1rKzh8MCxiPWssdz0wfGFbMTYrKGx8PTApPj4yXSxFbihsLDc1NjM5KSxtPXcrMTZ8MCxBPShwPWYpKzQwfDA7ZG97YVtwPj4y''@;'; put 'put ''XT1hW20+PjJdLHA9cCs0fDAsbT1tKzR8MH13aGlsZSgoMHxwKTwoMHxBKSk7c3dpdGNoKHJJKGwsZiksMSE9KGM9K19bdysxNTI+PjNdKSYmKF9bYj4+M109YyxPcihsLDc1NjU3LGIpKSwwfGFbdysxNDQ+PjJdKXtjYXNlIDE6RW4obCw3NTY3NCk7YnJlYWs7Y2FzZSAyOkVuKGwsNzU2OTIp''@;'; put 'put ''fUVuKGwsNzU3MDkpLGxlPWt9ZnVuY3Rpb24gckkobCxjKXtsfD0wLGN8PTA7dmFyIGYscCxtPTAsQT0wO3A9bGUsbGU9bGUrMTZ8MCxmPXA7ZTpkb3tzd2l0Y2goMHxhW2MrMzI+PjJdKXtjYXNlIDU6RW4obCwwfGFbYz4+Ml0pO2JyZWFrO2Nhc2UgMTppZigwfGZlW2MrMz4+MF0pe0E9MHxY''@;'; put 'put ''dFtjKzE+PjBdLG09MHxYdFtjKzI+PjBdLGFbZj4+Ml09WHRbYz4+MF0sYVtmKzQ+PjJdPUEsYVtmKzg+PjJdPW0sT3IobCw3NTcxNCxmKTticmVhayBlfUVuKGwsMTM1NzA5KTticmVhayBlO2RlZmF1bHQ6UHIoMTM4Mzk0LDc1NzI4LDk0LDc1NzQ4KX19d2hpbGUoMCk7bGU9cH1mdW5jdGlv''@;'; put 'put ''biBpWShsLGMpe2x8PTA7dmFyIG0sQSxmPTAscD0wO2lmKEE9bGUsbGU9bGUrNDh8MCxtPUEsY3w9MCl7Zj0wfGFbbCsxNj4+Ml0sRW4obCw3NTgzNyksZj1mKzU2fDAscD0oYz1tKSs0MHwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO3JJ''@;'; put 'put ''KGwsbSksRW4obCw3NTg2NCl9ZWxzZSBFbihsLDc1ODY3KTtsZT1BfWZ1bmN0aW9uIEVhKGwsYyxmKXt2YXIgcCxtLEEsdyxiO2x8PTAsY3w9MCxiPWxlLGxlPWxlKzEwNTZ8MCx3PWIscD1iKzI0fDAsYVsobT1iKzh8MCk+PjJdPWZ8PTAsQT0wfEFMKHAsMTAyNCxjLG0pO2Rve2lmKCgwfEEp''@;'; put 'put ''Pj0wKXtpZigoMHxBKT4xMDIzKXtsPTB8RjAoQSsxfDApLGFbbT4+Ml09ZixEaihsLGMsbSk7YnJlYWt9bD0wfHJhKHApO2JyZWFrfWw9MHxhWzE2KygwfGFbbCsxMj4+Ml0pPj4yXSxhW3c+PjJdPTB8JGsoMHxhWzQ3NjQzXSksR3NbNjMmbF0oNzg2ODcsdyksbD0wfHJhKDE5NTA1OSl9d2hp''@;'; put 'put ''bGUoMCk7cmV0dXJuIGxlPWIsMHxsfWZ1bmN0aW9uIFlBKGwsYyxmKXtsfD0wLGY9K2Y7dmFyIG0sQSx3LGIsayxELEcscD0wLE09MCxSPTAscT0wLHBlPTA7Rz1sZSxsZT1sZSsxMTJ8MCxEPUcrMTA0fDAsdz1HKzk2fDAsQT1HKzY0fDAsTT1HKzQ4fDAsUj1HKzMyfDAsaz1HKzE2fDAsYj1H''@;'; put 'put ''LG09MHxhWzMyKyhjfD0wKT4+Ml07ZTpkb3tzd2l0Y2goMHxtKXtjYXNlIDU6aWYoISgwfFppKHA9MHxhW2M+PjJdLDEzNjMwMikpKXthW2I+PjJdPTc4NTI0LF9bYis4Pj4zXT1mLHA9MHxFYShsLDc4NTA3LGIpO2JyZWFrIGV9aWYoISgwfFppKHAsMTMzNDMyKSkpe2Fbaz4+Ml09Nzg1Mjgs''@;'; put 'put ''X1trKzg+PjNdPWYscD0wfEVhKGwsNzg1MDcsayk7YnJlYWsgZX1pZigwfFppKHAsMTMxNDMxKSl7YVtNPj4yXT1wLF9bTSs4Pj4zXT1mLHA9MHxFYShsLDc4NTA3LE0pO2JyZWFrIGV9YVtSPj4yXT03ODUzNCxfW1IrOD4+M109ZixwPTB8RWEobCw3ODUwNyxSKTticmVhayBlO2Nhc2UgMTpw''@;'; put 'put ''ZT0uMDAzOTA2MjUqKygwfFh0W2MrMT4+MF0pLHE9LjAwMzkwNjI1KisoMHxYdFtjKzI+PjBdKSxfW0E+PjNdPS4wMDM5MDYyNSorKDB8WHRbYz4+MF0pLF9bQSs4Pj4zXT1wZSxfW0ErMTY+PjNdPXEsX1tBKzI0Pj4zXT1mLHA9MHxFYShsLDc4NTM5LEEpO2JyZWFrO2RlZmF1bHQ6Uj0wfGFb''@;'; put 'put ''MTU3MTJdLE09MHxhW2M+PjJdLGFbdz4+Ml09bSxhW3crND4+Ml09TSxUMChSLDc4NTc4LHcpLFByKDEzODM5NCw3ODYyOCw0MzYsNzg2NDgpfX13aGlsZSgwKTtyZXR1cm4gYVtEPj4yXT1wLFI9MHxFYShsLDc4NjY1LEQpLEZ0KHApLGxlPUcsMHxSfWZ1bmN0aW9uIFZGKGwsYyxmKXtjfD0w''@;'; put 'put ''LGZ8PTA7dmFyIHA9MDtzd2l0Y2goMHxhWzE0NCsobHw9MCk+PjJdKXtjYXNlIDE6cD0xMCxsPTE7YnJlYWs7Y2FzZSAyOnA9MTAsbD0yO2JyZWFrO2RlZmF1bHQ6cD0wLGw9MH1hW2M+PjJdPWwsX1tmPj4zXT1wfWZ1bmN0aW9uIHVZKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFy''@;'; put 'put ''IEEsdyxiLG09MCxrPTAsTT0wO2ZvcihiPWxlLGxlPWxlKzE2fDAsdz1iKzh8MCxBPWIsbT0wOyEoKDB8bSk+PSgwfGYpKTspaz0rX1tjKyhtPDw0KSs4Pj4zXSxhW0E+PjJdPX5+KChNPStfW2MrKG08PDQpPj4zXSkrKE0+PTA/LjU6LS41KSksYVtBKzQ+PjJdPX5+KGsrKGs+PTA/LjU6LS41''@;'; put 'put ''KSksT3IobCw4MTA5OSxBKSxtPW0rMXwwOzB8cCYmKE09K19bYys4Pj4zXSxhW3c+PjJdPX5+KChrPStfW2M+PjNdKSsoaz49MD8uNTotLjUpKSxhW3crND4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxPcihsLDgxMDk5LHcpKSxFbihsLDE1MzU5OSksbGU9Yn1mdW5jdGlvbiBKaWUobCl7bHw9''@;'; put 'put ''MDt2YXIgcCxBLGM9MCxmPTA7QT1sZSxsZT1sZSsxNnwwLHA9QTtlOmZvcig7Oyl7Zm9yKGM9MTU4Mjg7Zj0wfGFbYys0Pj4yXTspe2lmKCEoMHxaaShmLGwpKSlicmVhayBlO2M9Yys4fDB9aWYoYVtwPj4yXT04MTI1NSxhW3ArND4+Ml09bCwkcigxLDgxMjI5LHApLCEoYz0wfE0kKGwsNDUp''@;'; put 'put ''KSl7Yz04MTI3MjticmVha31mZVtjPj4wXT0wfXJldHVybiBsZT1BLDB8Y31mdW5jdGlvbiBVQSgpe3ZhciBsLGM7bD1sZSxsZT1sZSsxNnwwLGFbKGM9bCk+PjJdPTgxMjU1LGFbYys0Pj4yXT05MTI2OSwkcigwLDgzNjM0LGMpLGxlPWx9ZnVuY3Rpb24gZlkobCl7dmFyIGM9MCxmPTA7Zm9y''@;'; put 'put ''KGM9MHxEdChsfD0wKTtjOylydmUoYyksYz0wfHp0KGwsYyk7Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWhZKGMpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX1mdW5jdGlvbiBydmUobCl7dmFyIGM9MCxmPTA7aDAobHw9MCwxMzc0NDcsMzA0LDEpLGdEKGwpLFR5KGws''@;'; put 'put ''MSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSksYVsxNzYrKDB8YVsobD1sKzE2fDApPj4yXSk+PjJdPTAsYz0wfHZyKDIwKSxhWzE3MisoZj0wfGFbbD4+Ml0pPj4yXT1jLGFbZisxODQ+PjJdPTAsZj0wfHZyKDIwKSxhWzE4MCsoYz0wfGFbbD4+Ml0pPj4yXT1mLGFbYysyMDA+''@;'; put 'put ''PjJdPTAsYz0wfHZyKDEyKSxhWzE5NisoZj0wfGFbbD4+Ml0pPj4yXT1jLGFbZisxOTI+PjJdPTAsZj0wfHZyKDEyKSxhWzE4OCsoYz0wfGFbbD4+Ml0pPj4yXT1mLGFbYysyMDg+PjJdPTAsYz0wfHZyKDEyKSxhWzIwNCsobD0wfGFbbD4+Ml0pPj4yXT1jLGFbbCsyMTY+PjJdPTF9ZnVuY3Rp''@;'; put 'put ''b24gaFkobCl7dmFyIGMsZixwLG09MCxBPTA7aDAobHw9MCwxMzc0NjAsMTc2LDEpLEw3KGwpLG09MHxlcyhsLDB8YVs0NzE3NF0sMSwwKSxhWzE1NisoMHxhWyhwPWwrMTZ8MCk+PjJdKT4+Ml09bSxtPTB8djIoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0sMHxhWzQ3''@;'; put 'put ''MTY4XSwxOTUwNTkpLEE9MHx2MigwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0sMHxhWzQ3MTY4XSwxOTUwNTkpLGl0WyhmPTE1NCsoYz0wfGFbcD4+Ml0pfDApPj4xXT0xLGl0W2MrMTY4Pj4xXT0xLCgwfG0pPT0oMHxBKSYwIT0oMHxmZVttPj4wXSkmJihpdFtmPj4x''@;'; put 'put ''XT0xZTMsYVsoQT1jKzE1NnwwKT4+Ml09MTAwKigwfGFbQT4+Ml0pKSwwfFNIKGwpJiYoaXRbMTU0KyhBPTB8YVtwPj4yXSk+PjFdPTAsYVtBKzE1Nj4+Ml09MCksQT0yNTUmKDB8ZXMobCwwfGFbNDcxODddLDAsMCkpLGZlWzE1MisoMHxhW3A+PjJdKT4+MF09QSxBPTY1NTM1JigwfGVzKGws''@;'; put 'put ''MHxhWzQ3MTc1XSwxLDApKSxpdFsxNzArKDB8YVtwPj4yXSk+PjFdPUF9ZnVuY3Rpb24gSDUobCl7dmFyIGM9MCxmPTA7Zm9yKGZ1bmN0aW9uIHFpZShsKXtsfD0wO2Zvcih2YXIgYz0wLGY9MCxwPTAsbT0wO2w7KW09MHxhWzE2NCsoMHxhWyhwPWwrMTZ8MCk+PjJdKT4+Ml0sTzIobCksMT09''@;'; put 'put ''KDB8ZmVbMTU2KyhjPTB8YVtwPj4yXSk+PjBdKT8oKGY9MHxhW2MrMTgwPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMTcyPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksRnQoYyksRnQobCksbD1tKTpsPW19KDB8YVsxOTIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLGY9''@;'; put 'put ''MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWFnKGMpLGM9MHxTMChsLGMpO2RZKGYpLGY9MHx6dChsLGYpfU41KGwpfWZ1bmN0aW9uIGRZKGwpe3ZhciBwLGM9MCxmPTA7KGY9MHxhWzE3MisoYz0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJd''@;'; put 'put ''KSwoZj0wfGFbYysxODA+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYysxODg+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYysxOTY+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSwoZj0wfGFbYysyMDQ+PjJdKSYmKEZ0KGYpLGM9MHxhW3A+PjJdKSxJYygwfGFb''@;'; put 'put ''YysxMDQ+PjJdKSxJYygwfGFbMTA4KygwfGFbcD4+Ml0pPj4yXSksMHwoYz0wfGFbOCsoMHxhW3A+PjJdKT4+Ml0pJiZDb1sxMjcmYVs0KygwfGFbYys0Pj4yXSk+PjJdXShsKSxIaShsLDEzNzQ0Nyl9ZnVuY3Rpb24gTjUobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTB8d3MobHw9MCk7Yzsp''@;'; put 'put ''TjUoYyksYz0wfEVzKGMpO2lmKDB8aDAobCwxMzc0ODMsMCwxKSl7KGY9MHxhWzE4NCsoYz0wfGFbKHA9bCsxNnwwKT4+Ml0pPj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMjY4Pj4yXSkmJihGdChmKSxjPTB8YVtwPj4yXSksKGY9MHxhW2MrMjE2Pj4yXSkmJihGdChmKSxj''@;'; put 'put ''PTB8YVtwPj4yXSk7ZG97aWYoMHxhW2MrMTk2Pj4yXSl7Zm9yKGY9MHxpdFtjKzIzNj4+MV07ISgoMHxmKT4oMHxpdFtjKzIzOD4+MV0pKTspRnQoMHxhWygwfGFbYysxOTY+PjJdKSsoZjw8NikrMTI+PjJdKSxmPWYrMXwwLGM9MHxhW3A+PjJdO2lmKGY9MHxhW2MrMTk2Pj4yXSwtMT09KDB8''@;'; put 'put ''aXRbYysyMzY+PjFdKSl7RnQoZistNjR8MCk7YnJlYWt9RnQoZik7YnJlYWt9fXdoaWxlKDApOygwfGRpKGwpKSE9KDB8bCkmJihJYygwfGFbMTIrKDB8YVtwPj4yXSk+PjJdKSxIaShsLDEzNzQ4MykpfX1mdW5jdGlvbiBPMihsKXt2YXIgcCxjPTAsZj0wO2ZvcihjPTB8YVsxNzYrKGY9MHxh''@;'; put 'put ''WyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXTtsPWMrLTF8MCwhKCgwfGMpPD0wKTspWTMoYz0wfGFbKDB8YVtmKzE3Mj4+Ml0pKyhsPDwyKT4+Ml0pLEZ0KDB8YVtjKzE2Pj4yXSksRnQoYyksYz1sLGY9MHxhW3A+PjJdO2ZvcihjPTB8YVtmKzE4ND4+Ml07bD1jKy0xfDAsISgoMHxjKTw9MCk7''@;'; put 'put ''KVkzKGM9MHxhWygwfGFbMTgwKygwfGFbcD4+Ml0pPj4yXSkrKGw8PDIpPj4yXSksRnQoMHxhW2MrMTY+PjJdKSxGdChjKSxjPWx9ZnVuY3Rpb24gaDcobCl7dmFyIHAsbSxBLGIsayxNLGM9MCxmPTAsdz0wLEQ9MDtmb3IoTT1sZSxsZT1sZSs0OHwwLGs9TSs0MHwwLGY9TSx3PTB8ZXMobHw9''@;'; put 'put ''MCwwfHNpKGwsMCw4NTEwMiwwKSwtMSwxKSxyNChsLDEwKSxjPTB8ZnVuY3Rpb24ga0gobCxjKXtsfD0wLGN8PTA7dmFyIGYscCxtLEE7cmV0dXJuIEE9bGUsbGU9bGUrMzJ8MCxtPUErMTZ8MCxwPUErOHwwLGFbKGY9QSsyMHwwKT4+Ml09NSwwfChsPTB8TGkobCw5OTYwNSkpJiYoYVtwPj4y''@;'; put 'put ''XT1BLGFbcCs0Pj4yXT1mLCgwfGlsKGwsODc0OTcscCkpPj0xKSYmJHIoMCw4NzUwNCxtKSxhW2MrMjQ+PjJdPTAsYVtjKzMyPj4yXT0wLGxlPUEsMH0obCxmKSxtWShsLGwpLGZZKGwpLHA9MT09KDB8dyksbT1mKzMyfDAsQT0yPT0oMHx3KSx3PTM9PSgwfHcpLGI9ZisyOHwwLGY9ZisyNHww''@;'; put 'put ''Ozspe2lmKGVVKGwsYykscCl7Yz0zO2JyZWFrfWlmKDB8YVttPj4yXSYmKCRyKDAsODUxMDgsayksYVtmPj4yXT0wLGM9MCkscUEobCwwIT0oMHxjKSYxKSxBKXtjPTc7YnJlYWt9aWYoa0kobCxjKSx3KXtjPTk7YnJlYWt9aWYoYVtiPj4yXT1EPSgwfGFbYj4+Ml0pLTF8MCwhKDAhPSgwfEQp''@;'; put 'put ''JjAhPSgwfGFbZj4+Ml0pKSl7Yz0xMTticmVha319Mz09KDB8Yyk/VzMobCwxKTo3PT0oMHxjKXx8OT09KDB8Yyk/VzMobCwyKToxMT09KDB8YykmJigxNiZpdFsxMzYrKDB8YVtsKzE2Pj4yXSk+PjFdJiZmdW5jdGlvbiBWNShsKXt2YXIgZixjPTAscD0wO2lmKDB8KGY9MHxwcyhsfD0wLDg2''@;'; put 'put ''Njc1LDApKSl7Zm9yKGM9MHxEdChmKTtjOylwPTB8enQoZixjKSxmSShsLGMpLGo1KGwsYyksZFkoYykscXIobCxjKSxjPXA7cjcobCxmKX19KGwpLHdIKGwpLGZ1bmN0aW9uIG8wZShsKXtaNShsfD0wLDEpfShsKSwoMHx0MSgwfExpKGwsODUxOTkpKSk8PDI0Pj4yNCYmZnVuY3Rpb24geFUo''@;'; put 'put ''bCl7dmFyIHAsYz0wLGY9MDtmb3IocD0wfHlKKGx8PTApLGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KVRVKGMscCksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9TmwocCl9KGwpKSxsZT1NfWZ1bmN0aW9uIG4wZShsLGMpe3ZhciBmLHA7Y3w9MCxoMChsfD0wLDEzNzQ4MywyODAs''@;'; put 'put ''MSksZj0wfHZyKDk2KSxhWzgrKGw9MHxhW2wrMTY+PjJdKT4+Ml09ZixfW2Y+PjNdPStfWyhwPTB8YVs4KyhjPTB8YVtjKzE2Pj4yXSk+PjJdKT4+M10sX1tmKzI0Pj4zXT0rX1twKzI0Pj4zXSxhW2wrMTQ0Pj4yXT1hW2MrMTQ0Pj4yXSxmZVtsKzExNT4+MF09MHxmZVtjKzExNT4+MF0sYVts''@;'; put 'put ''KzExNj4+Ml09YVtjKzExNj4+Ml0sYVtsKzI0OD4+Ml09YVtjKzI0OD4+Ml0sYVtsKzI1Mj4+Ml09YVtjKzI1Mj4+Ml0sYVtsKzI0ND4+Ml09YVtjKzI0ND4+Ml19ZnVuY3Rpb24gcjBlKGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoYz0wfHZyKCgwfEdvKGx8PTApKTw8NCksZj0wfER0KGwpO2Y7''@;'; put 'put ''KWFbMTMyKyhwPTB8YVtmKzE2Pj4yXSk+PjJdPWMsX1tjPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW3ArMTY+PjNdLF9bYys4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW3ArMjQ+PjNdLGM9YysxNnwwLGY9MHx6dChsLGYpfWZ1bmN0aW9uIHBZKGwpe3ZhciBwLGM9MCxmPTAsbT0w''@;'; put 'put ''O2ZvcihjPXA9MHxhWzEzMisoMHxhWzE2KygwfER0KGx8PTApKT4+Ml0pPj4yXSxmPTB8RHQobCk7ZjspYVsxMzIrKG09MHxhW2YrMTY+PjJdKT4+Ml09MCxfW20rMTY+PjNdPTcyKitfW2M+PjNdLF9bbSsyND4+M109NzIqK19bYys4Pj4zXSxjPWMrMTZ8MCxmPTB8enQobCxmKTtGdChwKX1m''@;'; put 'put ''dW5jdGlvbiBpMGUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihwPTAsbT0wOyEoKDB8cCk+PSgwfGwpKTspYj0oMHxhWzE4MCsoMHxhWzE2KygwfGFbYysocDw8Mik+PjJdKT4+Ml0pPj4yXSkrbXwwLHA9cCsxfDAsbT1iO2ZvcihhWzE4MCsoMHxh''@;'; put 'put ''WyhiPWYrMTZ8MCk+PjJdKT4+Ml09bSxBPTB8dnIoNCsobTw8Mil8MCksYVsxODQrKDB8YVtiPj4yXSk+PjJdPUEsQT0wLHA9MTshKCgwfEEpPj0oMHxsKSk7KXtmb3Iodz0xNisoMHxhW2MrKEE8PDIpPj4yXSl8MCxtPTE7ISgoMHxtKT4oMHxhWzE4MCsoZj0wfGFbdz4+Ml0pPj4yXSkpOylm''@;'; put 'put ''PTB8VHJlKDB8YVsoMHxhW2YrMTg0Pj4yXSkrKG08PDIpPj4yXSksYVsoMHxhWzE4NCsoMHxhW2I+PjJdKT4+Ml0pKyhwPDwyKT4+Ml09ZixnWSgwfGFbKDB8YVsxODQrKDB8YVt3Pj4yXSk+PjJdKSsobTw8Mik+PjJdLGYpLG09bSsxfDAscD1wKzF8MDtBPUErMXwwfX1mdW5jdGlvbiBnWShs''@;'; put 'put ''LGMpe2x8PTA7dmFyIG0sZj0wLHA9MDtoMChjfD0wLDEzNzQ4MywyODAsMSksYVsoYz0xNisoMHxhWyhtPWMrMTZ8MCk+PjJdKXwwKT4+Ml09YVsobD0xNisoMHxhWyhwPWwrMTZ8MCk+PjJdKXwwKT4+Ml0sYVtjKzQ+PjJdPWFbbCs0Pj4yXSxhW2MrOD4+Ml09YVtsKzg+PjJdLGFbYysxMj4+''@;'; put 'put ''Ml09YVtsKzEyPj4yXSxhW2MrMTY+PjJdPWFbbCsxNj4+Ml0sYVtjKzIwPj4yXT1hW2wrMjA+PjJdLGFbYysyND4+Ml09YVtsKzI0Pj4yXSxhW2MrMjg+PjJdPWFbbCsyOD4+Ml0sZmVbMjc1KyhjPTB8YVttPj4yXSk+PjBdPTB8ZmVbMjc1KyhsPTB8YVtwPj4yXSk+PjBdLGw9bCs0OHwwLGY9''@;'; put 'put ''NjQrKGM9Yys0OHwwKXwwO2Rve2FbYz4+Ml09YVtsPj4yXSxjPWMrNHwwLGw9bCs0fDB9d2hpbGUoKDB8Yyk8KDB8ZikpO2ZvcihhWzE4MCsoMHxhW20+PjJdKT4+Ml09bD0wfGFbMTgwKygwfGFbcD4+Ml0pPj4yXSxjPTB8dnIoNCsobDw8Mil8MCksYVsxODQrKDB8YVttPj4yXSk+PjJdPWMs''@;'; put 'put ''Yz0xO2Y9MHxhW3A+PjJdLCEoKDB8Yyk+KDB8bCkpOylmPTB8VHJlKDB8YVsoMHxhW2YrMTg0Pj4yXSkrKGM8PDIpPj4yXSksYVsoMHxhWzE4NCsoMHxhW20+PjJdKT4+Ml0pKyhjPDwyKT4+Ml09ZixnWSgwfGFbKDB8YVsxODQrKDB8YVtwPj4yXSk+PjJdKSsoYzw8Mik+PjJdLGYpLGM9Yysx''@;'; put 'put ''fDA7YVsxMisoMHxhW20+PjJdKT4+Ml09YVsocD1mKzEyfDApPj4yXSxhW3A+PjJdPTB9ZnVuY3Rpb24gbVkobCxjKXtmb3IoY3w9MCwoMHxkaShsfD0wKSkhPSgwfGwpJiZoMChsLDEzNzQ4MywyODAsMSksKDB8bCk9PSgwfGMpJiYoYVsxODgrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+Ml09''@;'; put 'put ''bCksbD0wfHdzKGwpO2w7KW1ZKGwsYyksbD0wfEVzKGwpfWZ1bmN0aW9uIFczKGwsYyl7Y3w9MDt2YXIgZixwLG0sQSx3LGssTSxELGI9MDtmb3IoRD1sZSxsZT1sZSsxMDQwfDAsTT1EKzh8MCxrPUQscD1EKzE2fDAsbT0wfHNpKGx8PTAsMSw4NzE3MSwxOTUwNTkpLEE9MHxzaShsLDEsODUy''@;'; put 'put ''NDIsMTk1MDU5KSx3PSgwfGMpPjAsZj0xPT0oMHxjKSxjPTB8RHQobCk7YzspdyYmKGFbaz4+Ml09YVsyMzIrKDB8YVsoYj1jKzE2fDApPj4yXSk+PjJdLG9vKHAsMTM3Mzk1LGspLFZsKGMsbSxwKSwhZikmJihhW00+PjJdPWFbMjM2KygwfGFbYj4+Ml0pPj4yXSxvbyhwLDEzNzM5NSxNKSxW''@;'; put 'put ''bChjLEEscCkpLGM9MHx6dChsLGMpO2xlPUR9ZnVuY3Rpb24gajUobCxjKXt2YXIgdyxiLGssZj0wLHA9MCxtPTAsQT0wO2ZvcihmPTB8YVsobD0wfGFbMTk2KygwfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGs9MHxhWzIzMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk8PDYpPj4y''@;'; put 'put ''XSx3PWwrKGs8PDYpKzR8MCxBPTAscD0wOzspe2lmKCgwfHApPj0oMHxmKSl7bT03O2JyZWFrfWlmKG09MHxhWygwfGFbdz4+Ml0pKyhwPDwyKT4+Ml0scD1wKzF8MCwoMHxtKT09KDB8Yykpe209NDticmVha31BPW19aWYoND09KDB8bSkpe2Zvcig7ISgoMHxwKT49KDB8ZikpOylhWyhtPTB8''@;'; put 'put ''YVtsKyhrPDw2KSs0Pj4yXSkrKHArLTE8PDIpPj4yXT1hW20rKHA8PDIpPj4yXSxwPXArMXwwLGY9MHxhWyhtPTB8YVsxOTYrKDB8YVtiPj4yXSk+PjJdKSsoazw8Nik+PjJdLGw9bSxtPTQ7YVtsKyhrPDw2KT4+Ml09ZistMX1lbHNlIDc9PSgwfG0pJiYoMHxBKSE9KDB8YykmJlByKDg1MjA4''@;'; put 'put ''LDg1MjE1LDI0OCw4NTIyNSl9ZnVuY3Rpb24geWEobCl7cmV0dXJuIDB8YVsxODgrKDB8YVsxNisoMHxkaShsfD0wKSk+PjJdKT4+Ml19ZnVuY3Rpb24gWEEobCxjKXt2YXIgZj0wO3JldHVybiBmPTB8ZmVbMjgrKGx8PTApPj4wXSwwfGZlWzI4KyhjfD0wKT4+MF0/Zjw8MjQ+PjI0PyhmPX5+''@;'; put 'put ''KCtfW2w+PjNdLStfW2M+PjNdKSl8fChmPX5+KCtfW2wrOD4+M10tK19bYys4Pj4zXSkpOmY9LTE6Zj1mPDwyND4+MjQhPTAmMSwwfGZ9ZnVuY3Rpb24gWjUobCxjKXtjfD0wO3ZhciBTbixIbix1cixIcixFcixEcixKcixMcixWaSxPaSxSbyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAs''@;'; put 'put ''TT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxydD0wLFdlPTAsYXQ9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsZnI9MCxsMD0wLGxvPTA7Um89bGUsbGU9bGUrNjU2fDAsSG49Um8rNTkyfDAs''@;'; put 'put ''U249Um8rNTUyfDAsZj1Sbys1NDR8MCxKcj1SbyxPaT1Sbys2MzJ8MCx1cj02NTUzNSYoVmk9MTQmaXRbMTM2KygwfGFbKExyPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSksYVsoSHI9MTYrKERyPVJvKzk2fDApfDApPj4yXT1SbyszNjgsYVsoRXI9SnIrMTZ8MCk+PjJdPVJvKzE5Mjtkb3tpZihW''@;'; put 'put ''aTw8MTY+PjE2KXtmcj1WaTw8MTY+PjE2PT00O2Rve2lmKGZyKXZZKGwpLDEmZmVbMTEzKygwfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKT4+MF0mJiRyKDAsODUyNDgsZiksVmU9OTtlbHNle2lmKFZpPDwxNj4+MTY9PTgpe2lmKHZZKGwpLDEmZmVbMTEzKygwfGFbMTYrKDB8YVtsKzYwPj4y''@;'; put 'put ''XSk+PjJdKT4+MF0pe2EwZShsKSxlaShsLDEpLGs9MCxiPTAsdz0wO2JyZWFrfWVpKGwsMCksaz0wLGI9MCx3PTA7YnJlYWt9VmU9OX19d2hpbGUoMCk7aWYoOT09KDB8VmUpKXtpZihmcChsKSwwfFRhZSgpKWJyZWFrO2wwPTB8dnIoOTYpLGFbT2krOD4+Ml09KDB8KGN0PTB8YVsyNDgrKDB8''@;'; put 'put ''YVtMcj4+Ml0pPj4yXSkpLzR8MCxhW09pKzEyPj4yXT1jdCx3PTB8dnIoNTEyKSxhWyhTdD1PaSs0fDApPj4yXT0wLGFbT2k+PjJdPTAscnQ9MHxpdFsyMzYrKEE9MHxhW0xyPj4yXSk+PjFdLFdlPTAsYnQ9MCxhbj13LGF0PXcsYj13LGs9dyxNPXcsc3Q9MCxFdD0wO2U6Zm9yKDshKCgwfHJ0''@;'; put 'put ''KT4oMHxpdFtBKzIzOD4+MV0pKTspe2ZvcihrdD0obT0wfGFbKEQ9MHxhW0ErMTk2Pj4yXSkrKHJ0PDw2KT4+Ml0pK1dlfDAscWU9KGY9KGY9MHxhWyhwPTB8YVtEKyhydDw8NikrND4+Ml0pPj4yXSk/fn4oKFJlPStfWzE2KyhmPTB8YVtmKzE2Pj4yXSk+PjNdLStfW2YrODg+PjNdKT4obG89''@;'; put 'put ''KygwfHN0KSk/bG86UmUpOnN0KSstMTZ8MCxIZT0ocD0wIT0oMHxtKSYmMCE9KDB8KFp0PTB8YVtwKyhtKy0xPDwyKT4+Ml0pKT9+figobG89K19bOTYrKHA9MHxhW1p0KzE2Pj4yXSk+PjNdKyArX1twKzE2Pj4zXSk8KFJlPSsoMHxFdCkpP1JlOmxvKTpFdCkrMTZ8MCxMZT0wLHBlPWJ0LEc9''@;'; put 'put ''YW4sUj1BLGdlPWF0LGJlPWIscD13LGY9RDshKCgwfExlKT49KDB8bSkpOyl7aWYobT0wfGFbMTEyKyhmPTB8YVsoT2U9MTYrKHc9MHxhWygwfGFbZisocnQ8PDYpKzQ+PjJdKSsoTGU8PDIpPj4yXSl8MCk+PjJdKT4+Ml0pe2lmKCEoQT0wfGFbOTYrKDB8YVsobT1tKzE2fDApPj4yXSk+PjJd''@;'; put 'put ''KSl7VmU9MjE7YnJlYWsgZX1hWyhxPUErNTZ8MCk+PjJdPWFbKGY9ZisxNnwwKT4+Ml0sYVtxKzQ+PjJdPWFbZis0Pj4yXSxhW3ErOD4+Ml09YVtmKzg+PjJdLGFbcSsxMj4+Ml09YVtmKzEyPj4yXSxmZVs4MSsoMHxhWzk2KygwfGFbbT4+Ml0pPj4yXSk+PjBdPTEsZj0wfGFbT2U+PjJdfTAh''@;'; put 'put ''PSgwfGZlW2YrMTU2Pj4wXSkmJigwfF9vWzYzJmFbNDMyNV1dKHcpKTw8MjQ+PjI0PT0wPyhSPXBlLGY9RyxBPWdlLHc9YmUsbT1NKToocT0wLFI9cGUsQT1nZSx3PWJlLFZlPTI1KTt0OmRve2lmKDI1PT0oMHxWZSkpe2Zvcig7VmU9MCxtPTB8YVsoMHxhWzE4MCsoRD0wfGFbT2U+PjJdKT4+''@;'; put 'put ''Ml0pKyhxPDwyKT4+Ml07KXtzd2l0Y2goMHxmZVsxMTIrKDB8YVttKzE2Pj4yXSk+PjBdKXtjYXNlIDY6Y2FzZSA0OmY9UixtPUc7YnJlYWs7ZGVmYXVsdDpsSShtLDEsMTYsNjQpLGY9UisxfDAsYVtHKyhSPDwyKT4+Ml09bSwxMjcmZj9tPUc6KG09cD0wfFYwKHAsNTE2KyhSPDwyKXwwKSxB''@;'; put 'put ''PXAsdz1wLGs9cCxNPXApfXE9cSsxfDAsUj1mLEc9bSxWZT0yNX1mPTB8YVtEKzE4OD4+Ml07bjpkb3tpZihmKWZvcihxPTAsbT1NOzspe2lmKCEoZj0wfGFbZisocTw8Mik+PjJdKSlicmVhayBuO2xJKGYsMiwwLDEyOCksTT1SKzF8MCxhW0crKFI8PDIpPj4yXT1mLDEyNyZNP2Y9RzooZj1w''@;'; put 'put ''PTB8VjAobSw1MTYrKFI8PDIpfDApLEE9cCx3PXAsaz1wLG09cCkscT1xKzF8MCxSPU0sRz1mLGY9MHxhWzE4OCsoRD0wfGFbT2U+PjJdKT4+Ml19ZWxzZSBtPU19d2hpbGUoMCk7aWYoZj0wfGFbRCsyMDQ+PjJdKWZvcigwfGZlW0QrMTU2Pj4wXT8ocT0wLEQ9Ryk6KGxvPStfWyhiZT1EKzk2''@;'; put 'put ''fDApPj4zXSxfW2JlPj4zXT0rX1socT1EKzI0MHwwKT4+M10sX1txPj4zXT1sbyxxPTAsRD1HKTs7KXtpZighKGY9MHxhW2YrKHE8PDIpPj4yXSkpe2Y9RDticmVhayB0fWxJKGYsMCwwLDEyOCksTT1SKzF8MCxhW0QrKFI8PDIpPj4yXT1mLDEyNyZNP2Y9RDooZj1wPTB8VjAoayw1MTYrKFI8''@;'; put 'put ''PDIpfDApLEE9cCx3PXAsaz1wLG09cCkscT1xKzF8MCxSPU0sRD1mLGY9MHxhWzIwNCsoMHxhW09lPj4yXSk+PjJdfWVsc2UgZj1HfX13aGlsZSgwKTtPZT0wfGFbMTk2KyhnZT0wfGFbTHI+PjJdKT4+Ml0sTGU9TGUrMXwwLHBlPVIsRz1mLFI9Z2UsZ2U9QSxiZT13LE09bSxtPTB8YVtPZSso''@;'; put 'put ''cnQ8PDYpPj4yXSxmPU9lfXJ0PXJ0KzF8MCxXZT1rdCxidD1wZSxhbj1HLGF0PWdlLEE9UixiPWJlLHc9cCxzdD1xZSxFdD1IZX0yMT09KDB8VmUpJiZQcig4NTMxNiw4NTMyOSwzMTMsODUzNDIpLGFbT2k+PjJdPXN0LGFbU3Q+PjJdPUV0LHgxKGF0LGJ0LDQsNTgpLGFbbDArODQ+PjJdPTB8''@;'; put 'put ''dnIoMTE1MjArKFdlPDw1KXwwKSxhW09pKzE2Pj4yXT0wfHZyKHJ0PDw1KTtlOmRve2lmKFZpPDwxNj4+MTY9PTIpZm9yKGY9MTkyKygwfGFbTHI+PjJdKXwwOzspe2lmKCEocD0wfGFbZj4+Ml0pKWJyZWFrIGU7MT09KDB8ZmVbMTU2KyhmPTB8YVsobT1wKzE2fDApPj4yXSk+PjBdKSYmMCE9''@;'; put 'put ''KDB8YVtmKzEwND4+Ml0pJiYoWkYocCksZj0wfGFbbT4+Ml0pLGY9ZisxNjR8MH19d2hpbGUoMCk7SGU9SnIrNDh8MCxWZT1KcistNDh8MCxxZT1Ecis0OHwwLHJ0PURyKy00OHwwLFJlPSsoMHxjdCksTGU9MDtlOmZvcig7ISgoMHxMZSk+PSgwfGJ0KSk7KXtpZihxPTB8ejUoRz0wfGFbKGJl''@;'; put 'put ''PWFuKyhMZTw8Mil8MCk+PjJdKSwwfGZlWzQ0KyhwPTB8YVsocGU9RysxNnwwKT4+Ml0pPj4wXT9mPUc6KGY9cD0wPT0oMHxmZVtwKzg0Pj4wXSk/cTpHLHA9MHxhW3ArMTY+PjJdKSxtPWYrMTZ8MCwzMiZhW3ArMTY0Pj4yXSl7Z28oMHwocD0wfGFbSHI+PjJdKSwwfGFbbT4+Ml0sMTc2KSxN''@;'; put 'put ''PWYsRD0oaz1EcikrNDh8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTthW0hyPj4yXT1wLGFbKDM9PSgwfChrPTMmYVtEcj4+Ml0pKT9EcjpxZSkrNDA+PjJdPWFbKDI9PSgwfChNPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdLGFb''@;'; put 'put ''KDI9PSgwfGspP0RyOnJ0KSs0MD4+Ml09YVsoMz09KDB8TSk/ZjpmKzQ4fDApKzQwPj4yXSxNPTU2KygwfGFbbT4+Ml0pfDAsRD00MCsoaz1wKzE2fDApfDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7TT0xNisoMHxhW20+PjJdKXwwLEQ9''@;'; put 'put ''NDArKGs9cCs1NnwwKXwwO2Rve2Fbaz4+Ml09YVtNPj4yXSxrPWsrNHwwLE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8RCkpO2ZlW3ArMTEyPj4wXT0xLGFbcCsxMTY+PjJdPWYsZj1Ecn1mb3IoUj1mKzE2fDAsT2U9MSxmPUxlOyEoKDB8KGdlPWYrMXwwKSk+PSgwfGJ0KXx8KEE9YW4rKGdlPDwy''@;'; put 'put ''KXwwLGY9MHxhW0E+PjJdLCgwfHEpIT0oMHx6NShmKSkpKTspe2lmKCEoMHxmZVsxMTMrKDB8YVtwZT4+Ml0pPj4wXSkpe2lmKDB8ZmVbNDQrKHA9MHxhWyh3PWYrMTZ8MCk+PjJdKT4+MF18fChmPXA9MD09KDB8ZmVbcCs4ND4+MF0pP3E6ZixwPTB8YVtwKzE2Pj4yXSksbT1mKzE2fDAsMzIm''@;'; put 'put ''YVtwKzE2ND4+Ml0pe2dvKDB8KHA9MHxhW0VyPj4yXSksMHxhW20+PjJdLDE3NiksTT1mLEQ9KGs9SnIpKzQ4fDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7YVtFcj4+Ml09cCxhWygzPT0oMHwoaz0zJmFbSnI+PjJdKSk/SnI6SGUpKzQw''@;'; put 'put ''Pj4yXT1hWygyPT0oMHwoTT0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSxhWygyPT0oMHxrKT9KcjpWZSkrNDA+PjJdPWFbKDM9PSgwfE0pP2Y6Zis0OHwwKSs0MD4+Ml0sTT01NisoMHxhW20+PjJdKXwwLEQ9NDArKGs9cCsxNnwwKXwwO2Rve2Fbaz4+Ml09YVtNPj4yXSxrPWsrNHww''@;'; put 'put ''LE09TSs0fDB9d2hpbGUoKDB8ayk8KDB8RCkpO009MTYrKDB8YVttPj4yXSl8MCxEPTQwKyhrPXArNTZ8MCl8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTtmZVtwKzExMj4+MF09MSxhW3ArMTE2Pj4yXT1mfWY9cCsxNnwwLE09MTYrKG09''@;'; put 'put ''MHxhW1I+PjJdKXwwLEQ9KGs9U24pKzQwfDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7TT1mLEQ9KGs9SG4pKzQwfDA7ZG97YVtrPj4yXT1hW00+PjJdLGs9ays0fDAsTT1NKzR8MH13aGlsZSgoMHxrKTwoMHxEKSk7aWYoMHxYQShTbixI''@;'; put 'put ''bikpYnJlYWs7Zj1wKzU2fDAsTT1tKzU2fDAsRD0oaz1TbikrNDB8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQpKTtNPWYsRD0oaz1IbikrNDB8MDtkb3thW2s+PjJdPWFbTT4+Ml0saz1rKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGspPCgwfEQp''@;'; put 'put ''KTtpZigwfFhBKFNuLEhuKXx8Mj09KDE1JmFbMTY0KyhjdD0wfGFbcGU+PjJdKT4+Ml18MCkmJigwfGFbY3QrOTY+PjJdKSE9KDB8YVs5NisoMHxhW3c+PjJdKT4+Ml0pfHw2NCZhWzE2NCsoMHxhWzE2KygwfGFbQT4+Ml0pPj4yXSk+PjJdfDApYnJlYWt9T2U9T2UrMXwwLGY9Z2V9aWYoZnIp''@;'; put 'put ''e2ZvcihmPTE9PSgwfE9lKT9IbjowfHZyKE9lPDwyKSxhW2Y+PjJdPTB8ejUoMHxhW2JlPj4yXSkscD0xOyEoKDB8cCk+PSgwfE9lKSk7KWFbZisocDw8Mik+PjJdPWFbYmUrKHA8PDIpPj4yXSxwPXArMXwwO1dRKGwsZixPZSx1ciwxNzI5NiksKDB8T2UpPjEmJkZ0KGYpLExlPWdlfWVsc2Ug''@;'; put 'put ''aWYobT0wfGFbMjMyKyhwPTB8YVsxNisoY3Q9MHxhWygzPT0oMHwoZj0zJmFbRz4+Ml0pKT9HOkcrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSwoMHxjdCk9PSgwfChmPTB8YVsoMj09KDB8Zik/RzpHKy00OHwwKSs0MD4+Ml0pKSl7Zj0wfGFbTHI+PjJdO2Rve2lmKCgwfG0pPT0oMHxpdFtmKzIz''@;'; put 'put ''OD4+MV0pKXtpZigoMHxtKT4wKXtmPX5+KCtfWzI0KygwfGFbMTYrKDB8YVthWygwfGFbZisxOTY+PjJdKSsobSstMTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1twKzI0Pj4zXSk7YnJlYWt9Zj1+fitfW3ArODA+PjNdO2JyZWFrfWlmKCgwfG0pPT0oMHxpdFtmKzIzNj4+MV0pKXtmPX5+''@;'; put 'put ''KCtfW3ArMjQ+PjNdLStfWzI0KygwfGFbMTYrKDB8YVthWygwfGFbZisxOTY+PjJdKSsobSsxPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdKTticmVha31mPSgwfChjdD1+figrX1syNCsoMHxhWzE2KygwfGFbYVsoZj0wfGFbZisxOTY+PjJdKSsobSstMTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4z''@;'; put 'put ''XS0obG89K19bcCsyND4+M10pKSkpPCgwfChmPX5+KGxvLStfWzI0KygwfGFbMTYrKDB8YVthW2YrKG0rMTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSkpKT9jdDpmO2JyZWFrfXdoaWxlKDApO2ZvcihpRChsMCxhbixMZSxPZSxSZSwrKDB8KDB8ZikvMiksMTcyOTYpLGY9MDs7KXtpZigoMHxm''@;'; put 'put ''KT49KDB8T2UpKXtMZT1nZTtjb250aW51ZSBlfTB8KHA9MHxhWzk2KygwfGFbMTYrKDB8YVthbisoZitMZTw8Mik+PjJdKT4+Ml0pPj4yXSkmJm40KGwscCksZj1mKzF8MH19ZWxzZXtpZigoMHxtKT09KDB8YVsyMzIrKDB8YVtmKzE2Pj4yXSk+PjJdKSl7czBlKGwsT2ksbDAsYW4sTGUsT2Us''@;'; put 'put ''dXIpLExlPWdlO2NvbnRpbnVlfXUwZShsLE9pLGwwLGFuLExlLE9lLHVyKSxMZT1nZX19Zm9yKGY9MTkyKygwfGFbTHI+PjJdKXwwO3A9MHxhW2Y+PjJdOykxPT0oMHxmZVsxNTYrKGY9MHxhWyhtPXArMTZ8MCk+PjJdKT4+MF0pJiYwIT0oMHxhW2YrMTA0Pj4yXSkmJihaRihwKSxuNChsLDB8''@;'; put 'put ''YVsxMDQrKDB8YVttPj4yXSk+PjJdKSxmPTB8YVttPj4yXSksZj1mKzE2NHwwO2M/KEFZKGwpLGs9bDAsdz1sMCk6KGs9bDAsdz1sMCl9ZTpkb3tpZigwIT0oMHxhWzQ3MTk3XSl8MCE9KDB8YVs0NzE5OF0pJiYwIT0oMHxhWzQ3MjAzXSl8MCE9KDB8YVs0NzIwMl0pKWZvcihBPTB8RHQobCk7''@;'; put 'put ''Oyl7aWYoIUEpYnJlYWsgZTt0OmRve2lmKDB8YVs0NzE5N10pZm9yKGY9MHxNZihsLEEpOzspe2lmKCFmKWJyZWFrIHQ7cD1mKy00OHwwLDB8YVsxMDArKDB8YVsobT0yPT0oMyZhW2Y+PjJdfDApP2Y6cCkrMTY+PjJdKT4+Ml0mJih2ayhtLDEpLG40KGwsMHxhWzEwMCsoMHxhWygyPT0oMyZh''@;'; put 'put ''W2Y+PjJdfDApP2Y6cCkrMTY+PjJdKT4+Ml0pKSxmPTB8RjMobCxmKX19d2hpbGUoMCk7dDpkb3tpZigwfGFbNDcxOThdKWZvcihmPTB8dzAobCxBKTs7KXtpZighZilicmVhayB0OzB8YVsxMDQrKDB8YVsocD1mKzE2fDApPj4yXSk+PjJdJiYwfHZrKGYsMCkmJm40KGwsMHxhWzEwNCsoMHxh''@;'; put 'put ''W3A+PjJdKT4+Ml0pLGY9MHxTMChsLGYpfX13aGlsZSgwKTtBPTB8enQobCxBKX19d2hpbGUoMCk7c3dpdGNoKDE1JlZpKXtjYXNlIDQ6Y2FzZSA4OmJyZWFrO2RlZmF1bHQ6RnQoYiksRnQoMHxhW2srODQ+PjJdKSxGdCh3KSxGdCgwfGFbT2krMTY+PjJdKSxqUSgpfWFbNDcxMzhdPTEsYVs0''@;'; put 'put ''NzEzOV09MX19d2hpbGUoMCk7bGU9Um99ZnVuY3Rpb24gdlkobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoYz0wfER0KGx8PTApO2M7KTB8YVsyMDQrKGY9MHxhW2MrMTY+PjJdKT4+Ml0mJihwPStfWyhtPWYrOTZ8MCk+PjNdLF9bbT4+M109K19bKGY9ZisyNDB8MCk+PjNdLF9bZj4+M109''@;'; put 'put ''cCksYz0wfHp0KGwsYyl9ZnVuY3Rpb24gYTBlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7Yz0xOTIrKDB8YVsxNisobHw9MCk+PjJdKXwwO2U6Zm9yKDs7KXtpZighKHA9MHxhW2M+PjJdKSl7Yz0xMjticmVha31jPTB8YVsobT1wKzE2fDApPj4yXTtkb3tpZigxPT0oMHxmZVtjKzE1Nj4+MF0p''@;'; put 'put ''KXtpZihmPTB8YVtjKzExMj4+Ml0pe2lmKCEoZj0wfGFbOTYrKDB8YVtmKzE2Pj4yXSk+PjJdKSl7Yz02O2JyZWFrIGV9YVsocD1mKzU2fDApPj4yXT1hWyhjPWMrMTZ8MCk+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0s''@;'; put 'put ''ZmVbZis4MT4+MF09MSxjPWZ9ZWxzZXtpZighKGY9MHxhW2MrMTA0Pj4yXSkpYnJlYWs7WkYocCksYz1mfW40KGwsYyksYz0wfGFbbT4+Ml19fXdoaWxlKDApO2M9YysxNjR8MH1pZig2PT0oMHxjKSlQcig4NTUxNiw4NTMyOSwyMzQsODU1MzUpO2Vsc2UgaWYoMTI9PSgwfGMpKXJldHVybn1m''@;'; put 'put ''dW5jdGlvbiBsSShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTA7ZG97aWYoIWMpe2lmKCgwfChjPTB8YVsoMz09KDB8KG09MyZhW2w+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSkpIT0oMHwobT0wfGFbKDI9PSgwfG0pP2w6bCstNDh8MCkrNDA+PjJdKSkpe2M9KDB8YVsyMzIr''@;'; put 'put ''KDB8YVtjKzE2Pj4yXSk+PjJdKT09KDB8YVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdKT8yOjE7YnJlYWt9Yz0wfGZlWzQ0KyhjPTB8YVtsKzE2Pj4yXSk+PjBdPzQ6MD09KDB8ZmVbYys4ND4+MF0pPzg6NH19d2hpbGUoMCk7ZTpkb3tpZighZilzd2l0Y2goMHxjKXtjYXNlIDE6Zj0oMHxhWzIz''@;'; put 'put ''MisoMHxhWzE2KygwfGFbKDM9PSgwfChmPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/MTY6MzI7YnJlYWsgZTtjYXNlIDI6Zj0oMHxhWzIzNisoMHxhWzE2''@;'; put 'put ''KygwfGFbKDM9PSgwfChmPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/MTY6MzI7YnJlYWsgZTtkZWZhdWx0OmY9MTY7YnJlYWsgZX19d2hpbGUoMCk7YVsx''@;'; put 'put ''NjQrKDB8YVtsKzE2Pj4yXSk+PjJdPWN8cHxmfWZ1bmN0aW9uIFpGKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDB8YVsxNzYrKGM9MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSl7Zm9yKGM9MHxhW2MrMTgwPj4yXTswfGZlWzExMisoZj0wfGFbKGM9MTYrKDB8YVtjPj4yXSl8''@;'; put 'put ''MCk+PjJdKT4+MF07KWM9ZisxMTZ8MDttPStfWzI0KyhmPTB8YVtmKzk2Pj4yXSk+PjNdLEE9K19bZiszMj4+M10sZj0wIT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXXwwKSxsPTB8YVtwPj4yXSxfWzU2KyhwPTB8YVs5NisoMHxhW2M+PjJdKT4+Ml0pPj4zXT0uNSooZj9B''@;'; put 'put ''Om0pKyArX1tsKzE2Pj4zXSxfW3ArNjQ+PjNdPStfW2wrMjQ+PjNdLGZlW3ArODE+PjBdPTF9fWZ1bmN0aW9uIHo1KGwpe2x8PTA7Zm9yKHZhciBjPTAsZj0wO2Y9MHxhWzE3MisoYz0wfGFbbCsxNj4+Ml0pPj4yXTspbD1mO2Zvcig7Yz0wfGFbYysxMTY+PjJdOylsPWMsYz0wfGFbYysxNj4+''@;'; put 'put ''Ml07cmV0dXJuIDB8bH1mdW5jdGlvbiBzMGUobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgUmUsSGUsVmUscnQsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxxZT0wLFdlPTAsYXQ9MCxTdD0w''@;'; put 'put ''LGt0PTAsc3Q9MDtpZihydD1sZSxsZT1sZSsxNzEyfDAsUmU9cnQrMTY2NHwwLHFlPXJ0KzE2OTZ8MCxIZT1ydCs2OTZ8MCxWZT1ydCxhWyhSPTE2KyhnZT1ydCsxMzkyfDApfDApPj4yXT1wZT1ydCsxNDg4fDAsYmU9MHxmZVsxMTMrKGI9MHxhWyhxPTE2KyhHPTB8YVtwKyhtPDwyKT4+Ml0p''@;'; put 'put ''fDApPj4yXSk+PjBdLDMyJmFbYisxNjQ+PjJdKXtnbygwfHBlLDB8YiwxNzYpLE09RyxEPShiPWdlKSs0OHwwO2Rve2FbYj4+Ml09YVtNPj4yXSxiPWIrNHwwLE09TSs0fDB9d2hpbGUoKDB8Yik8KDB8RCkpO2FbUj4+Ml09cGUsYVsoMz09KDB8KGI9MyZhW2dlPj4yXSkpP2dlOmdlKzQ4fDAp''@;'; put 'put ''KzQwPj4yXT1hWygyPT0oMyZhW0c+PjJdfDApP0c6RystNDh8MCkrNDA+PjJdLGFbKDI9PSgwfGIpP2dlOmdlKy00OHwwKSs0MD4+Ml09YVsoMz09KDMmYVtHPj4yXXwwKT9HOkcrNDh8MCkrNDA+PjJdLE09NTYrKDB8YVtxPj4yXSl8MCxEPTQwKyhiPXBlKzE2fDApfDA7ZG97YVtiPj4yXT1h''@;'; put 'put ''W00+PjJdLGI9Yis0fDAsTT1NKzR8MH13aGlsZSgoMHxiKTwoMHxEKSk7TT0xNisoMHxhW3E+PjJdKXwwLEQ9NDArKGI9cGUrNTZ8MCl8MDtkb3thW2I+PjJdPWFbTT4+Ml0sYj1iKzR8MCxNPU0rNHwwfXdoaWxlKCgwfGIpPCgwfEQpKTtmZVtwZSsxMTI+PjBdPTEsYVtwZSsxMTY+PjJdPUcs''@;'; put 'put ''Rz1nZX1mb3IoYj0xOzspe2lmKCgwfGIpPj0oMHxBKSl7TGU9NjticmVha31pZigwfGZlWzExMysoMHxhWzE2KygwfGFbcCsoYittPDwyKT4+Ml0pPj4yXSk+PjBdKXtMZT03O2JyZWFrfWI9YisxfDB9ZTpkb3tpZig2PT0oMHxMZSkpaWYoYmU8PDI0Pj4yNClMZT03O2Vsc2V7aWYoMHxhWzk2''@;'; put 'put ''KyhiPTB8YVtHKzE2Pj4yXSk+PjJdKXttMGUobCxjLGYsRyx3KTticmVha31pZigyPT0oMHx3KSl7VUYoMHxhWygzPT0oMHwocWU9MyZhW0c+PjJdKSk/RzpHKzQ4fDApKzQwPj4yXSwwfGFbKDI9PSgwfHFlKT9HOkcrLTQ4fDApKzQwPj4yXSxwLG0sQSwyKTticmVha31pZighKChnZT0wfGZl''@;'; put 'put ''W2IrNDk+PjBdKTw8MjQ+PjI0PT0xJihiZT0wfGZlW2IrODk+PjBdKTw8MjQ+PjI0IT00fHxnZTw8MjQ+PjI0IT00JmJlPDwyND4+MjQ9PTEpKWZvcihEPTB8YVsoMz09KDB8KFI9MyZhW0c+PjJdKSk/RzpHKzQ4fDApKzQwPj4yXSxSPTB8YVsoMj09KDB8Uik/RzpHKy00OHwwKSs0MD4+Ml0s''@;'; put 'put ''az0oMHwoTT0wfGFbMjMyKyhiPTB8YVtEKzE2Pj4yXSk+PjJdKSk+MD8rX1syNCsoMHxhWzE2KygwfGFbYVsoYmU9MHxhWzE5NisoMHxhW2wrMTY+PjJdKT4+Ml0pKygoZ2U9TSt+KDEmZmVbMTEzKygwfGFbMTYrKDB8YVtsKzYwPj4yXSk+PjJdKT4+MF0pfDApPDw2KSs0Pj4yXT4+Ml0pPj4y''@;'; put 'put ''XSk+PjNdLStfW2JlKyhnZTw8NikrMTY+PjNdLStfW2IrMjQ+PjNdLStfW2JlKyhNPDw2KSsyND4+M106KygwfGFbMjUyKygwfGFbbCsxNj4+Ml0pPj4yXSksT2U9KygwfGFbYysxMj4+Ml0pLyhXZT0rKEErMXwwKSksay89V2UsdUkobCxjLGYsRCxHLEhlLDEpLHVJKGwsYyxmLFIsRyxWZSww''@;'; put 'put ''KSxwZT1IZSs1MnwwLGdlPVZlKzUyfDAsUj0xMD09KDB8dyksRz1mKzgwfDAsYj0wOzspe2lmKCgwfGIpPj0oMHxBKSlicmVhayBlO2ZvcihxPTB8YVtwKyhiK208PDIpPj4yXSxrdD0rX1tIZSs1NisoKE09KEQ9MHxhW3BlPj4yXSktMXwwKTw8NSkrMTY+PjNdLFN0PStfW0hlKzU2KyhNPDw1''@;'; put 'put ''KSsyND4+M10sX1sxOTIxNV09c3Q9K19bSGUrNTYrKE08PDUpPj4zXSxfWzE5MjE2XT1TdCxfWzE5MjE3XT1rdCsoYXQ9T2UqKFdlPSsoMHwoYj1iKzF8MCkpKSksX1sxOTIxOF09V2U9U3QraypXZSxfWzE5MjE5XT1zdCxfWzE5MjIwXT1XZSxfWzE5MjIxXT1zdD0rX1tWZSs1NisoKE09KDB8''@;'; put 'put ''YVtnZT4+Ml0pLTF8MCk8PDUpKzE2Pj4zXSxfWzE5MjIyXT1XZStrLFN0PStfW1ZlKzU2KyhNPDw1KT4+M10sa3Q9K19bVmUrNTYrKE08PDUpKzI0Pj4zXSxfWzE5MjI1XT1zdCxfWzE5MjI0XT1rdCxfWzE5MjIzXT1TdC1hdCxfWzE5MjI2XT1XZSxNPTA7Oyl7aWYoKDB8TSk+PSgwfEQpKXtN''@;'; put 'put ''PTA7YnJlYWt9YVtSZT4+Ml09YVsoRD1IZSs1NisoTTw8NSl8MCk+PjJdLGFbUmUrND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sYVtSZSsxNj4+Ml09YVtEKzE2Pj4yXSxhW1JlKzIwPj4yXT1hW0QrMjA+PjJdLGFbUmUrMjQ+PjJd''@;'; put 'put ''PWFbRCsyND4+Ml0sYVtSZSsyOD4+Ml09YVtEKzI4Pj4yXSxKMyhmLFJlKSxNPU0rMXwwLEQ9MHxhW3BlPj4yXX1mb3IoOzMhPSgwfE0pOylhW1JlPj4yXT1hWyh3PTE1MzcyMCsoTTw8NSl8MCk+PjJdLGFbUmUrND4+Ml09YVt3KzQ+PjJdLGFbUmUrOD4+Ml09YVt3Kzg+PjJdLGFbUmUrMTI+''@;'; put 'put ''PjJdPWFbdysxMj4+Ml0sYVtSZSsxNj4+Ml09YVt3KzE2Pj4yXSxhW1JlKzIwPj4yXT1hW3crMjA+PjJdLGFbUmUrMjQ+PjJdPWFbdysyND4+Ml0sYVtSZSsyOD4+Ml09YVt3KzI4Pj4yXSxKMyhmLFJlKSxNPU0rMXwwO2ZvcihEPTB8YVtnZT4+Ml07TT1EKy0xfDAsISgoMHxEKTw9MCk7KWFb''@;'; put 'put ''UmU+PjJdPWFbKEQ9VmUrNTYrKE08PDUpfDApPj4yXSxhW1JlKzQ+PjJdPWFbRCs0Pj4yXSxhW1JlKzg+PjJdPWFbRCs4Pj4yXSxhW1JlKzEyPj4yXT1hW0QrMTI+PjJdLGFbUmUrMTY+PjJdPWFbRCsxNj4+Ml0sYVtSZSsyMD4+Ml09YVtEKzIwPj4yXSxhW1JlKzI0Pj4yXT1hW0QrMjQ+PjJd''@;'; put 'put ''LGFbUmUrMjg+PjJdPWFbRCsyOD4+Ml0sSjMoZixSZSksRD1NO2lmKE09Uj8wfF95KGYscWUpOjB8Z2soZixxZSksIShEPTB8YVtxZT4+Ml0pKWJyZWFrIGU7QXUocSwwfGFbKDI9PSgzJmFbcT4+Ml18MCk/cTpxKy00OHwwKSs0MD4+Ml0sTSxELDE3Mjk2KSxhW0c+PjJdPTB9Q1kobCxjLGYs''@;'; put 'put ''cCxtLEEsRywxMD09KDB8dykmMSl9fXdoaWxlKDApOzc9PSgwfExlKSYmZnVuY3Rpb24gZzBlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLEF8PTA7dmFyIFdlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLGZyLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0w''@;'; put 'put ''LEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxFcj0wLERyPTAsSnI9MDtmcj1sZSxsZT1sZSsyNTZ8MCxhdD1mcisyMzJ8MCxXZT1mcisyMTZ8MCxIcj1mcis4OHwwLHVyPWZyKzgwfDAsYnQ9ZnIrNjR8MCxhbj1mcisyMDB8MCxTbj1m''@;'; put 'put ''cisxODR8MCxIbj1mcixTdD1mcisxNjh8MCxrdD1mcisxNTJ8MCxzdD1mcisxMzZ8MCxFdD1mcisxMjB8MCxadD1mcisxMDR8MCxjdD0wfGFbKDM9PSgwfChydD0zJmFbKG18PTApPj4yXSkpP206bSs0OHwwKSs0MD4+Ml0scnQ9MHxhWygyPT0oMHxydCk/bTptKy00OHwwKSs0MD4+Ml07ZG97''@;'; put 'put ''aWYoMiE9KDB8JDUoY3QpKSYmMiE9KDB8JDUocnQpKSl7Zm9yKG09MCx3PTAsYj0wOyEoKDB8Yik+PSgwfHApKTspbT1tKygwIT0oMHxhWzk2KyhxZT0wfGFbMTYrKDB8YVtjKyhiK2Y8PDIpPj4yXSk+PjJdKT4+Ml0pJjEpfDAsMD09KDB8ZmVbcWUrNDQ+PjBdKSYmMD09KDB8ZmVbcWUrODQ+''@;'; put 'put ''PjBdKXx8KHc9MSksYj1iKzF8MDtpZighdyl7aWYobSl7a1koY3QscnQsYyxmLHAsQSxtKTticmVha31VRihjdCxydCxjLGYscCxBKTticmVha31mb3IoaDAoZ2U9MHxwcyhWZT0wfFNZKGwsSGU9MHx2cigxNTYpKSw4NTQ3OCwxKSwxMzc0ODMsMjgwLDEpLGtjKGdlLDg3MTcxLDg3MTg1KSxr''@;'; put 'put ''PStfWzE2KygwfGFbcnQrMTY+PjJdKT4+M10scGU9K19bMTYrKDB8YVtjdCsxNj4+Ml0pPj4zXSxxPShHPTA9PSgxJmFbMTE2KygwfGFbKHFlPWwrMTZ8MCk+PjJdKT4+Ml18MCkpP3J0OmN0LGdlPTB8WUMoZ2UsRz1HP2N0OnJ0KSxiZT0wfFlDKFZlLHEpLG09MCxSPTA7ISgoMHxSKT49KDB8''@;'; put 'put ''cCkpOyl7Zm9yKHc9YysoUitmPDwyKXwwOzB8ZmVbMTEyKyh3PTB8YVsoTT0xNisoRD0wfGFbdz4+Ml0pfDApPj4yXSk+PjBdOyl3PXcrMTE2fDA7Yj0oMHxhWygzPT0oMyZhW0Q+PjJdfDApP0Q6RCs0OHwwKSs0MD4+Ml0pPT0oMHxHKT8wfFk1KFZlLGdlLGJlLEQpOjB8WTUoVmUsYmUsZ2Us''@;'; put 'put ''RCksYVsxMjArKHc9MHxhW00+PjJdKT4+Ml09YixtfHwoMD09KDB8ZmVbdys0ND4+MF0pJiYwPT0oMHxmZVt3Kzg0Pj4wXSk/KGFbMTIwKygwfGFbYisxNj4+Ml0pPj4yXT1ELG09Yik6bT0wKSxSPVIrMXwwfWZvcihWbChSZT1tfHwwfEthKFZlLGdlLGJlLDAsMSksMHxhWzQ3MTc0XSw4NTQ4''@;'; put 'put ''MiksYVsxNDQrKE09MHxhWyhtPVZlKzE2fDApPj4yXSk+PjJdPWFbMTQ0KygwfGFbcWU+PjJdKT4+Ml0sYVtNKzE4OD4+Ml09VmUscjQoVmUsQSksZlkoVmUpLGVVKFZlLDApLHFBKFZlLDApLGtJKFZlLDApLE09MHxhW3ErMTY+PjJdLE9lPSsoMHx+fmspLExlPSsoMHx+figuNSooK19bMTYr''@;'; put 'put ''KDB8YVtiZSsxNj4+Ml0pPj4zXSsgK19bKFI9MTYrKEQ9MHxhWyhxPWdlKzE2fDApPj4yXSl8MCk+PjNdKSkpLGs9KygwfH5+cGUpLHBlPSsoMHx+figuNSooK19bMTYrKEE9MHxhWyhHPUcrMTZ8MCk+PjJdKT4+M10tK19bQSs5Nj4+M10rICtfW00rMTY+PjNdKyArX1tNKzg4Pj4zXSkpKSxN''@;'; put 'put ''PUQrMjR8MCxtPTE5MisoMHxhW20+PjJdKXwwO3c9MHxhW20+PjJdOyl7ZG97aWYoKDB8dykhPSgwfGdlKSl7aWYoYj0yNCsobT0wfGFbdysxNj4+Ml0pfDAsKDB8dyk9PSgwfGJlKSl7X1tiPj4zXT1rLF9bbSsxNj4+M109TGU7YnJlYWt9X1tiPj4zXT1wZTticmVha31fW00+PjNdPU9lLF9b''@;'; put 'put ''Uj4+M109TGUsbT1EfXdoaWxlKDApO209bSsxNjR8MH1mb3Iod0goVmUpLFo1KFZlLDApLHQ0KFZlKSxiPTB8YVtHPj4yXSxtPTB8YVtxPj4yXSwxJmFbMTE2KygwfGFbcWU+PjJdKT4+Ml0/KHc9bSsyNHwwLGs9K19bbSsxNj4+M10rICtfW2IrMjQ+PjNdKToodz1tKzE2fDAsaz0rX1tiKzI0''@;'; put 'put ''Pj4zXS0rX1ttKzI0Pj4zXSksX1tidD4+M109K19bYisxNj4+M10tK19bdz4+M10sX1tidCs4Pj4zXT1rLEE9SG4rMTZ8MCxnZT1IbiszMnwwLGJlPUhuKzQ4fDAscT0wOyEoKDB8cSk+PSgwfHApKTspe2ZvcihtPWMrKHErZjw8Mil8MDswfGZlWzExMisobT0wfGFbKEc9MTYrKHc9MHxhW20+''@;'; put 'put ''PjJdKXwwKT4+Ml0pPj4wXTspbT1tKzExNnwwO2lmKCEoKDB8KEQ9MHxhW20rMTIwPj4yXSkpPT0oMHxSZSkmMD09KDB8YVsxMjArKG09MHxhWyhSPUQrMTZ8MCk+PjJdKT4+Ml0pKSl7Zm9yKHc9MHxkTih3LDB8YVsoRD00KyhNPTB8YVthW20rOD4+Ml0+PjJdKXwwKT4+Ml0pLGFbdys4Pj4y''@;'; put 'put ''XT1hW00rOD4+Ml0sbT13KzE2fDAsRHI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKGI9TSsxNnwwKT4+Ml0sYVtXZSs0Pj4yXT1hW2IrND4+Ml0sYVtXZSs4Pj4yXT1hW2IrOD4+Ml0sYVtXZSsxMj4+Ml09YVtiKzEyPj4yXSxhW2F0Pj4yXT1hW2J0Pj4yXSxhW2F0KzQ+''@;'; put 'put ''PjJdPWFbYnQrND4+Ml0sYVthdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbYXQrMTI+PjJdPWFbYnQrMTI+PjJdLGNsKGFuLFdlLGF0LERyKSxhW20+PjJdPWFbYW4+PjJdLGFbbSs0Pj4yXT1hW2FuKzQ+PjJdLGFbbSs4Pj4yXT1hW2FuKzg+PjJdLGFbbSsxMj4+Ml09YVthbisxMj4+Ml0sYVt3KzEy''@;'; put 'put ''Pj4yXT1hW00rMTI+PjJdLG09dyszMnwwLGI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKERyPU0rMzJ8MCk+PjJdLGFbV2UrND4+Ml09YVtEcis0Pj4yXSxhW1dlKzg+PjJdPWFbRHIrOD4+Ml0sYVtXZSsxMj4+Ml09YVtEcisxMj4+Ml0sYVthdD4+Ml09YVtidD4+Ml0s''@;'; put 'put ''YVthdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbYXQrOD4+Ml09YVtidCs4Pj4yXSxhW2F0KzEyPj4yXT1hW2J0KzEyPj4yXSxjbChTbixXZSxhdCxiKSxhW20+PjJdPWFbU24+PjJdLGFbbSs0Pj4yXT1hW1NuKzQ+PjJdLGFbbSs4Pj4yXT1hW1NuKzg+PjJdLGFbbSsxMj4+Ml09YVtTbisxMj4+Ml0s''@;'; put 'put ''bT0wOyEoKDB8bSk+PSgwfGFbRD4+Ml0pKTspe2lmKGI9KDB8YVt3Pj4yXSkrKG08PDQpfDAsRHI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKEpyPSgwfGFbTT4+Ml0pKyhtPDw0KXwwKT4+Ml0sYVtXZSs0Pj4yXT1hW0pyKzQ+PjJdLGFbV2UrOD4+Ml09YVtKcis4Pj4y''@;'; put 'put ''XSxhW1dlKzEyPj4yXT1hW0pyKzEyPj4yXSxhW2F0Pj4yXT1hW2J0Pj4yXSxhW2F0KzQ+PjJdPWFbYnQrND4+Ml0sYVthdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbYXQrMTI+PjJdPWFbYnQrMTI+PjJdLGNsKFN0LFdlLGF0LERyKSxhW2I+PjJdPWFbU3Q+PjJdLGFbYis0Pj4yXT1hW1N0KzQ+PjJd''@;'; put 'put ''LGFbYis4Pj4yXT1hW1N0Kzg+PjJdLGFbYisxMj4+Ml09YVtTdCsxMj4+Ml0sYVtIbj4+Ml09YVtTdD4+Ml0sYVtIbis0Pj4yXT1hW1N0KzQ+PjJdLGFbSG4rOD4+Ml09YVtTdCs4Pj4yXSxhW0huKzEyPj4yXT1hW1N0KzEyPj4yXSwoMHwoYj1tKzF8MCkpPj0oMHxhW0Q+PjJdKSl7RXI9NDg7''@;'; put 'put ''YnJlYWt9RHI9KDB8YVt3Pj4yXSkrKGI8PDQpfDAsSnI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKGI9KDB8YVtNPj4yXSkrKGI8PDQpfDApPj4yXSxhW1dlKzQ+PjJdPWFbYis0Pj4yXSxhW1dlKzg+PjJdPWFbYis4Pj4yXSxhW1dlKzEyPj4yXT1hW2IrMTI+PjJdLGFb''@;'; put 'put ''YXQ+PjJdPWFbYnQ+PjJdLGFbYXQrND4+Ml09YVtidCs0Pj4yXSxhW2F0Kzg+PjJdPWFbYnQrOD4+Ml0sYVthdCsxMj4+Ml09YVtidCsxMj4+Ml0sY2woa3QsV2UsYXQsSnIpLGFbRHI+PjJdPWFba3Q+PjJdLGFbRHIrND4+Ml09YVtrdCs0Pj4yXSxhW0RyKzg+PjJdPWFba3QrOD4+Ml0sYVtE''@;'; put 'put ''cisxMj4+Ml09YVtrdCsxMj4+Ml0sYVtBPj4yXT1hW2t0Pj4yXSxhW0ErND4+Ml09YVtrdCs0Pj4yXSxhW0ErOD4+Ml09YVtrdCs4Pj4yXSxhW0ErMTI+PjJdPWFba3QrMTI+PjJdLEpyPSgwfGFbdz4+Ml0pKygoRHI9bSsyfDApPDw0KXwwLGI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFb''@;'; put 'put ''V2U+PjJdPWFbKERyPSgwfGFbTT4+Ml0pKyhEcjw8NCl8MCk+PjJdLGFbV2UrND4+Ml09YVtEcis0Pj4yXSxhW1dlKzg+PjJdPWFbRHIrOD4+Ml0sYVtXZSsxMj4+Ml09YVtEcisxMj4+Ml0sYVthdD4+Ml09YVtidD4+Ml0sYVthdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbYXQrOD4+Ml09YVtidCs4''@;'; put 'put ''Pj4yXSxhW2F0KzEyPj4yXT1hW2J0KzEyPj4yXSxjbChzdCxXZSxhdCxiKSxhW0pyPj4yXT1hW3N0Pj4yXSxhW0pyKzQ+PjJdPWFbc3QrND4+Ml0sYVtKcis4Pj4yXT1hW3N0Kzg+PjJdLGFbSnIrMTI+PjJdPWFbc3QrMTI+PjJdLGFbZ2U+PjJdPWFbc3Q+PjJdLGFbZ2UrND4+Ml09YVtzdCs0''@;'; put 'put ''Pj4yXSxhW2dlKzg+PjJdPWFbc3QrOD4+Ml0sYVtnZSsxMj4+Ml09YVtzdCsxMj4+Ml0sRHI9MSZhWzExNisoMHxhW3FlPj4yXSk+PjJdLGFbV2U+PjJdPWFbKGI9KDB8YVtNPj4yXSkrKChKcj1tKzN8MCk8PDQpfDApPj4yXSxhW1dlKzQ+PjJdPWFbYis0Pj4yXSxhW1dlKzg+PjJdPWFbYis4''@;'; put 'put ''Pj4yXSxhW1dlKzEyPj4yXT1hW2IrMTI+PjJdLGFbYXQ+PjJdPWFbYnQ+PjJdLGFbYXQrND4+Ml09YVtidCs0Pj4yXSxhW2F0Kzg+PjJdPWFbYnQrOD4+Ml0sYVthdCsxMj4+Ml09YVtidCsxMj4+Ml0sY2woRXQsV2UsYXQsRHIpLGFbYmU+PjJdPWFbRXQ+PjJdLGFbYmUrND4+Ml09YVtFdCs0''@;'; put 'put ''Pj4yXSxhW2JlKzg+PjJdPWFbRXQrOD4+Ml0sYVtiZSsxMj4+Ml09YVtFdCsxMj4+Ml0sTkEoMTYrKDB8YVtxZT4+Ml0pfDAsSG4pLG09SnJ9NDg9PSgwfEVyKSYmKEVyPTApLDB8KG09MHxhWzk2KygwfGFbRz4+Ml0pPj4yXSkmJihKcj1tKzU2fDAsRHI9MSZhWzExNisoMHxhW3FlPj4yXSk+''@;'; put 'put ''PjJdLGFbV2U+PjJdPWFbKFI9NTYrKDB8YVs5NisoMHxhW1I+PjJdKT4+Ml0pfDApPj4yXSxhW1dlKzQ+PjJdPWFbUis0Pj4yXSxhW1dlKzg+PjJdPWFbUis4Pj4yXSxhW1dlKzEyPj4yXT1hW1IrMTI+PjJdLGFbYXQ+PjJdPWFbYnQ+PjJdLGFbYXQrND4+Ml09YVtidCs0Pj4yXSxhW2F0Kzg+''@;'; put 'put ''PjJdPWFbYnQrOD4+Ml0sYVthdCsxMj4+Ml09YVtidCsxMj4+Ml0sY2woWnQsV2UsYXQsRHIpLGFbSnI+PjJdPWFbWnQ+PjJdLGFbSnIrND4+Ml09YVtadCs0Pj4yXSxhW0pyKzg+PjJdPWFbWnQrOD4+Ml0sYVtKcisxMj4+Ml09YVtadCsxMj4+Ml0sZmVbODErKEpyPTB8YVs5NisoMHxhW0c+''@;'; put 'put ''PjJdKT4+Ml0pPj4wXT0xLG40KGwsSnIpKX1xPXErMXwwfVVDKFZlLEhlKX1lbHNlIEVyPTN9d2hpbGUoMCk7Mz09KDB8RXIpJiYwPT0oMHxhWzQ2NzM4XSkmJihhWzQ2NzM4XT0xLCRyKDAsODUzNTUsdXIpLEVyPTB8dGkoY3QpLERyPTAhPSgwfFNjKGwpKSxKcj0wfHRpKHJ0KSxhW0hyPj4y''@;'; put 'put ''XT1FcixhW0hyKzQ+PjJdPURyPzEzNzczODoxNDE3NDcsYVtIcis4Pj4yXT1KciwkcigzLDg1NDYxLEhyKSksbGU9ZnJ9KGwscCxtLEEsRyx3KSxsZT1ydH1mdW5jdGlvbiB1MGUobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgRXQsYW4sU24s''@;'; put 'put ''SG4sdXIsSHIsRXIsZnIsRHIsSnIsTHIsbDAsT2ksUm8sVGEsWmEsZ2EsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsa3Q9MCxzdD0wLFp0PTAsY3Q9MCxidD0wLFZpPTAs''@;'; put 'put ''bG89MCx4aT0wO2lmKGdhPWxlLGxlPWxlKzI1NzZ8MCxmcj1nYSsyNTI4fDAsbG89Z2ErMjU2OHwwLE09Z2ErMjE3NnwwLE9pPWdhKzE4MDh8MCxUYT1nYSsxNzEyfDAsRHI9Z2ErMTAxNnwwLEpyPWdhKzMyMHwwLExyPWdhKzI1NnwwLFZpPWdhKzI1NjR8MCxSbz1nYSsyNTYwfDAsVmU9Z2Er''@;'; put 'put ''Mjg4fDAscWU9Z2ErMjI0fDAsYW49Z2ErMTkyfDAsU249Z2ErMTYwfDAsSG49Z2ErMTI4fDAsdXI9Z2ErOTZ8MCxIcj1nYSs2NHwwLEVyPWdhKzMyfDAsbDA9Z2EsYVsocGU9MTYrKGdlPWdhKzE5MDR8MCl8MCk+PjJdPWI9Z2ErMjM1MnwwLGFbKEQ9T2krMTZ8MCk+PjJdPU0sYVsoWmE9VGEr''@;'; put 'put ''MTZ8MCk+PjJdPWdhKzJlMywwfGFbNDY3MzRdfHwoYVs0NjczNF09MHxRbigzMmUzKSxhWzQ2NzM1XT0wfFFuKDMyZTMpLGFbNDY3MzZdPTJlMyxhWzQ2NzM3XT0yZTMpLFI9NDgrKGJlPTB8YVtwKyhtPDwyKT4+Ml0pfDAsRz1iZSstNDh8MCxxPWJlKzE2fDAsKDB8KCgwfChidD0oMHxhWzIz''@;'; put 'put ''MisoMHxhWzE2KygwfGFbKDM9PSgwfChidD0zJmFbYmU+PjJdKSk/YmU6UikrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxidCk/YmU6RykrNDA+PjJdKT4+Ml0pPj4yXSl8MCkpPi0xP2J0OjAtYnR8MCkpPD0xKWlmKDMyJmFbMTY0KyhiPTB8YVtxPj4y''@;'; put 'put ''XSk+PjJdKXtnbygwfChNPTB8YVtwZT4+Ml0pLDB8YiwxNzYpLFJlPWJlLEhlPShMZT1nZSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2FbcGU+PjJdPU0sYVsoMz09KDB8KExlPTMmYVtnZT4+Ml0pKT9nZTpnZSs0''@;'; put 'put ''OHwwKSs0MD4+Ml09YVsoMj09KDMmYVtiZT4+Ml18MCk/YmU6RykrNDA+PjJdLGFbKDI9PSgwfExlKT9nZTpnZSstNDh8MCkrNDA+PjJdPWFbKDM9PSgzJmFbYmU+PjJdfDApP2JlOlIpKzQwPj4yXSxSZT01NisoMHxhW3E+PjJdKXwwLEhlPTQwKyhMZT1NKzE2fDApfDA7ZG97YVtMZT4+Ml09''@;'; put 'put ''YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTtSZT0xNisoMHxhW3E+PjJdKXwwLEhlPTQwKyhMZT01NisoYj0wfGFbcGU+PjJdKXwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7''@;'; put 'put ''ZmVbYisxMTI+PjBdPTEsTT0wLGN0PTEyfWVsc2UgYnQ9YmUsTT0wO2Vsc2V7Z28oMHxiLDB8YVtxPj4yXSwxNzYpLFJlPWJlLEhlPShMZT1nZSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO1JlPVIsSGU9NDgrKExl''@;'; put 'put ''PWdlKzQ4fDApfDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTtpZihhW3BlPj4yXT1iLDMyJmFbMTY0KyhiPTB8YVtxPj4yXSk+PjJdKXtnbygwfChNPTB8YVtEPj4yXSksMHxiLDE3NiksUmU9YmUsSGU9KExlPU9pKSs0OHww''@;'; put 'put ''O2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7YVtEPj4yXT1NLGFbKDM9PSgwfChMZT0zJmFbT2k+PjJdKSk/T2k6T2krNDh8MCkrNDA+PjJdPWFbKDI9PSgzJmFbYmU+PjJdfDApP2JlOkcpKzQwPj4yXSxhWygyPT0oMHxMZSk/''@;'; put 'put ''T2k6T2krLTQ4fDApKzQwPj4yXT1hWygzPT0oMyZhW2JlPj4yXXwwKT9iZTpSKSs0MD4+Ml0sUmU9NTYrKDB8YVtxPj4yXSl8MCxIZT00MCsoTGU9TSsxNnwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7UmU9MTYrKDB8''@;'; put 'put ''YVtxPj4yXSl8MCxIZT00MCsoTGU9NTYrKGI9MHxhW0Q+PjJdKXwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7ZmVbYisxMTI+PjBdPTEsYVtiKzExNj4+Ml09YmUsYVsoMz09KDMmKEQ9MHxhW2dlPj4yXSl8MCk/Z2U6''@;'; put 'put ''Z2UrNDh8MCkrNDA+PjJdPWFbKDI9PSgzJmFbYmU+PjJdfDApP2JlOkcpKzQwPj4yXSxSZT01NisoMHxhW3E+PjJdKXwwLEhlPTQwKyhMZT0xNisoMHxhW3BlPj4yXSl8MCl8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpfWVs''@;'; put 'put ''c2V7Z28oMHxNLDB8YiwxNzYpLFJlPWJlLEhlPShMZT1PaSkrNDh8MDtkb3thW0xlPj4yXT1hW1JlPj4yXSxMZT1MZSs0fDAsUmU9UmUrNHwwfXdoaWxlKCgwfExlKTwoMHxIZSkpO2FbRD4+Ml09TSxhWygzPT0oMyYoRD0wfGFbZ2U+PjJdKXwwKT9nZTpnZSs0OHwwKSs0MD4+Ml09YVsoMz09''@;'; put 'put ''KDMmYVtiZT4+Ml18MCk/YmU6UikrNDA+PjJdLFJlPVIsSGU9NDgrKExlPU9pKzQ4fDApfDA7ZG97YVtMZT4+Ml09YVtSZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKX1mb3IoYj0wfHo1KGJlKTtNPTB8YVsxNzIrKDB8YVtiKzE2Pj4yXSk+PjJdOyliPU07''@;'; put 'put ''YVsoMj09KDMmRHwwKT9nZTpnZSstNDh8MCkrNDA+PjJdPWFbKDI9PSgzJmFbYj4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0sZmVbODQrKGI9MHxhW3BlPj4yXSk+PjBdPTAsZmVbYisxMTI+PjBdPTEsYVsoTT1iKzU2fDApPj4yXT0wLGFbTSs0Pj4yXT0wLGFbTSs4Pj4yXT0wLGFbTSsxMj4+''@;'; put 'put ''Ml09MCxNPTEsY3Q9MTJ9MTI9PSgwfGN0KSYmKGFbYisxMTY+PjJdPWJlLGJ0PWdlKSxjdD0oRXQ9Mj09KDB8dykpJiYoT2U9MHxmdW5jdGlvbiBoMGUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIE0sRCxHLHEscGUsT2UsTGUsUmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxSPTAsZ2U9MCxi''@;'; put 'put ''ZT0wLEhlPTA7Zm9yKFJlPWxlLGxlPWxlKzk2fDAsRz1SZSs4MHwwLHBlPVJlKzY0fDAscT1SZSs0OHwwLGJlPVJlKzMyfDAsT2U9UmUrMTZ8MCxMZT1SZSxrPWN8PTA7MHxmZVsxMTIrKG09MHxhWyhnZT1rKzE2fDApPj4yXSk+PjBdOylrPTB8YVttKzExNj4+Ml07c3dpdGNoKEQ9MHxhWygy''@;'; put 'put ''PT0oMHwobT0zJmFbaz4+Ml0pKT9rOmsrLTQ4fDApKzQwPj4yXSxtPTB8YVsoMz09KDB8bSk/azprKzQ4fDApKzQwPj4yXSwwfCgoMHwoSGU9KDB8YVsyMzIrKDB8YVsoaz1EKzE2fDApPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWyhNPW0rMTZ8MCk+PjJdKT4+Ml0pfDApKT4tMT9IZTowLUhl''@;'; put 'put ''fDApKXtjYXNlIDE6bT0wO2JyZWFrO2Nhc2UgMjoxJmZlWzExMysoMHxhWzE2KygwfGFbbCs2MD4+Ml0pPj4yXSk+PjBdP209MDpSPTY7YnJlYWs7ZGVmYXVsdDpSPTZ9ZG97aWYoNj09KDB8Uikpe2lmKCgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSk9PSgwfG0pPyhh''@;'; put 'put ''W3A+PjJdPUQsUj0xNisoMHxhW2dlPj4yXSl8MCxhW3BlPj4yXT1hWyhIZT0xNisoMHxhW00+PjJdKXwwKT4+Ml0sYVtwZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbcGUrOD4+Ml09YVtIZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW0hlKzEyPj4yXSxhW0c+PjJdPWFbUj4+Ml0sYVtHKzQ+PjJdPWFbUis0''@;'; put 'put ''Pj4yXSxhW0crOD4+Ml09YVtSKzg+PjJdLGFbRysxMj4+Ml09YVtSKzEyPj4yXSxCdShiZSxwZSxHKSxIZT01NisoMHxhW2dlPj4yXSl8MCxhW3BlPj4yXT1hWyhSPTE2KygwfGFbaz4+Ml0pfDApPj4yXSxhW3BlKzQ+PjJdPWFbUis0Pj4yXSxhW3BlKzg+PjJdPWFbUis4Pj4yXSxhW3BlKzEy''@;'; put 'put ''Pj4yXT1hW1IrMTI+PjJdLGFbRz4+Ml09YVtIZT4+Ml0sYVtHKzQ+PjJdPWFbSGUrND4+Ml0sYVtHKzg+PjJdPWFbSGUrOD4+Ml0sYVtHKzEyPj4yXT1hW0hlKzEyPj4yXSxCdShPZSxwZSxHKSk6KGFbcD4+Ml09bSxSPTU2KygwfGFbZ2U+PjJdKXwwLGFbcGU+PjJdPWFbKEhlPTE2KygwfGFb''@;'; put 'put ''az4+Ml0pfDApPj4yXSxhW3BlKzQ+PjJdPWFbSGUrND4+Ml0sYVtwZSs4Pj4yXT1hW0hlKzg+PjJdLGFbcGUrMTI+PjJdPWFbSGUrMTI+PjJdLGFbRz4+Ml09YVtSPj4yXSxhW0crND4+Ml09YVtSKzQ+PjJdLGFbRys4Pj4yXT1hW1IrOD4+Ml0sYVtHKzEyPj4yXT1hW1IrMTI+PjJdLEJ1KGJl''@;'; put 'put ''LHBlLEcpLEhlPTE2KygwfGFbZ2U+PjJdKXwwLGFbcGU+PjJdPWFbKFI9MTYrKDB8YVtNPj4yXSl8MCk+PjJdLGFbcGUrND4+Ml09YVtSKzQ+PjJdLGFbcGUrOD4+Ml09YVtSKzg+PjJdLGFbcGUrMTI+PjJdPWFbUisxMj4+Ml0sYVtHPj4yXT1hW0hlPj4yXSxhW0crND4+Ml09YVtIZSs0Pj4y''@;'; put 'put ''XSxhW0crOD4+Ml09YVtIZSs4Pj4yXSxhW0crMTI+PjJdPWFbSGUrMTI+PjJdLEJ1KE9lLHBlLEcpKSwhKG09MHxhWzk2KygwfGFbZ2U+PjJdKT4+Ml0pKXttPWYrMTZ8MCxhW2Y+PjJdPWFbYmU+PjJdLGFbZis0Pj4yXT1hW2JlKzQ+PjJdLGFbZis4Pj4yXT1hW2JlKzg+PjJdLGFbZisxMj4+''@;'; put 'put ''Ml09YVtiZSsxMj4+Ml0sYVttPj4yXT1hW2JlPj4yXSxhW20rND4+Ml09YVtiZSs0Pj4yXSxhW20rOD4+Ml09YVtiZSs4Pj4yXSxhW20rMTI+PjJdPWFbYmUrMTI+PjJdLG09Zis0OHwwLGFbKEhlPWYrMzJ8MCk+PjJdPWFbT2U+PjJdLGFbSGUrND4+Ml09YVtPZSs0Pj4yXSxhW0hlKzg+PjJd''@;'; put 'put ''PWFbT2UrOD4+Ml0sYVtIZSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVttPj4yXT1hW09lPj4yXSxhW20rND4+Ml09YVtPZSs0Pj4yXSxhW20rOD4+Ml09YVtPZSs4Pj4yXSxhW20rMTI+PjJdPWFbT2UrMTI+PjJdLG09NDticmVha313PStfW20rMjQ+PjNdLEE9K19bbSszMj4+M10sYj0oUj0wPT0o''@;'; put 'put ''MSZhWzExNisoMHxhWzE2KygwfGNyKEQpKT4+Ml0pPj4yXXwwKSk/QTp3LGFbTGU+PjJdPWFbKEhlPTU2KygwfGFbOTYrKDB8YVtnZT4+Ml0pPj4yXSl8MCk+PjJdLGFbTGUrND4+Ml09YVtIZSs0Pj4yXSxhW0xlKzg+PjJdPWFbSGUrOD4+Ml0sYVtMZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtx''@;'; put 'put ''Pj4yXT1hW09lPj4yXSxhW3ErND4+Ml09YVtPZSs0Pj4yXSxhW3ErOD4+Ml09YVtPZSs4Pj4yXSxhW3ErMTI+PjJdPWFbT2UrMTI+PjJdLGFbcGU+PjJdPWFbYmU+PjJdLGFbcGUrND4+Ml09YVtiZSs0Pj4yXSxhW3BlKzg+PjJdPWFbYmUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtiZSsxMj4+Ml0s''@;'; put 'put ''YVtHPj4yXT1hW0hlPj4yXSxhW0crND4+Ml09YVtIZSs0Pj4yXSxhW0crOD4+Ml09YVtIZSs4Pj4yXSxhW0crMTI+PjJdPWFbSGUrMTI+PjJdLEhlPTA9PSgwfFlGKHEscGUsRykpLEE9LjUqKFI/dzpBKSx3PStfW0xlPj4zXSxIZT8oX1tMZT4+M109dy1BLF9bKEhlPUxlKzh8MCk+PjNdPStf''@;'; put 'put ''W0hlPj4zXSsuNSpiKTooX1tMZT4+M109dytBLF9bKEhlPUxlKzh8MCk+PjNdPStfW0hlPj4zXS0uNSpiKSxtPWYrMTZ8MCxhW2Y+PjJdPWFbYmU+PjJdLGFbZis0Pj4yXT1hW2JlKzQ+PjJdLGFbZis4Pj4yXT1hW2JlKzg+PjJdLGFbZisxMj4+Ml09YVtiZSsxMj4+Ml0sYVttPj4yXT1hW2Jl''@;'; put 'put ''Pj4yXSxhW20rND4+Ml09YVtiZSs0Pj4yXSxhW20rOD4+Ml09YVtiZSs4Pj4yXSxhW20rMTI+PjJdPWFbYmUrMTI+PjJdLG09ZiszMnwwLEhlPWYrNDh8MCxhWyhiZT1mKzY0fDApPj4yXT1hW0xlPj4yXSxhW2JlKzQ+PjJdPWFbTGUrND4+Ml0sYVtiZSs4Pj4yXT1hW0xlKzg+PjJdLGFbYmUr''@;'; put 'put ''MTI+PjJdPWFbTGUrMTI+PjJdLGFbSGU+PjJdPWFbTGU+PjJdLGFbSGUrND4+Ml09YVtMZSs0Pj4yXSxhW0hlKzg+PjJdPWFbTGUrOD4+Ml0sYVtIZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVttPj4yXT1hW0xlPj4yXSxhW20rND4+Ml09YVtMZSs0Pj4yXSxhW20rOD4+Ml09YVtMZSs4Pj4yXSxh''@;'; put 'put ''W20rMTI+PjJdPWFbTGUrMTI+PjJdLG09Zis4MHwwLGFbKEhlPWYrOTZ8MCk+PjJdPWFbT2U+PjJdLGFbSGUrND4+Ml09YVtPZSs0Pj4yXSxhW0hlKzg+PjJdPWFbT2UrOD4+Ml0sYVtIZSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVttPj4yXT1hW09lPj4yXSxhW20rND4+Ml09YVtPZSs0Pj4yXSxh''@;'; put 'put ''W20rOD4+Ml09YVtPZSs4Pj4yXSxhW20rMTI+PjJdPWFbT2UrMTI+PjJdLG09N319d2hpbGUoMCk7cmV0dXJuIGxlPVJlLDB8bX0obCxidCwwfGFbNDY3MzRdLGxvKSxhW1JvPj4yXT1PZSwwIT0oMHxPZSkpPzYzOjE1O2U6ZG97aWYoMTU9PSgwfGN0KSl7c3Q9MTA9PSgwfHcpLGFbUm8+PjJd''@;'; put 'put ''PTAsYj0wfGFbKDM9PSgwfChEPTMmYVtidD4+Ml0pKT9idDpidCs0OHwwKSs0MD4+Ml0sYVtsbz4+Ml09RD0wfGFbKDI9PSgwfEQpP2J0OmJ0Ky00OHwwKSs0MD4+Ml0sRzUoVmUsbCxjLGIsMCxidCksYVtEcj4+Ml09YVtWZT4+Ml0sYVtEcis0Pj4yXT1hW1ZlKzQ+PjJdLGFbRHIrOD4+Ml09''@;'; put 'put ''YVtWZSs4Pj4yXSxhW0RyKzEyPj4yXT1hW1ZlKzEyPj4yXSxhW0RyKzE2Pj4yXT1hW1ZlKzE2Pj4yXSxhW0RyKzIwPj4yXT1hW1ZlKzIwPj4yXSxhW0RyKzI0Pj4yXT1hW1ZlKzI0Pj4yXSxhW0RyKzI4Pj4yXT1hW1ZlKzI4Pj4yXSxhW0xyPj4yXT1hW1ZlPj4yXSxhW0xyKzQ+PjJdPWFbVmUr''@;'; put 'put ''ND4+Ml0sYVtMcis4Pj4yXT1hW1ZlKzg+PjJdLGFbTHIrMTI+PjJdPWFbVmUrMTI+PjJdLGFbTHIrMTY+PjJdPWFbVmUrMTY+PjJdLGFbTHIrMjA+PjJdPWFbVmUrMjA+PjJdLG5EKGYsYnQsMSxEciwwfFdDKGIpKSxfWyhhdD1McisyNHwwKT4+M109K19bRHIrNTYrKChadD0oMHxhWyhydD1E''@;'; put 'put ''cis1MnwwKT4+Ml0pLTF8MCk8PDUpKzI0Pj4zXSxfWyhTdD1Mcis4fDApPj4zXT0rX1tEcis1NisoWnQ8PDUpKzg+PjNdLGs9K19bMjQrKFp0PTB8YVtiKzE2Pj4yXSk+PjNdLStfWygwfGFbMTk2KygwfGFbKGt0PWwrMTZ8MCk+PjJdKT4+Ml0pKyhhW1p0KzIzMj4+Ml08PDYpKzE2Pj4zXSxh''@;'; put 'put ''W2ZyPj4yXT1hW0xyPj4yXSxhW2ZyKzQ+PjJdPWFbTHIrND4+Ml0sYVtmcis4Pj4yXT1hW0xyKzg+PjJdLGFbZnIrMTI+PjJdPWFbTHIrMTI+PjJdLGFbZnIrMTY+PjJdPWFbTHIrMTY+PjJdLGFbZnIrMjA+PjJdPWFbTHIrMjA+PjJdLGFbZnIrMjQ+PjJdPWFbTHIrMjQ+PjJdLGFbZnIrMjg+''@;'; put 'put ''PjJdPWFbTHIrMjg+PjJdLEtBKHFlLGZyLDEsayksYVtMcj4+Ml09YVtxZT4+Ml0sYVtMcis0Pj4yXT1hW3FlKzQ+PjJdLGFbTHIrOD4+Ml09YVtxZSs4Pj4yXSxhW0xyKzEyPj4yXT1hW3FlKzEyPj4yXSxhW0xyKzE2Pj4yXT1hW3FlKzE2Pj4yXSxhW0xyKzIwPj4yXT1hW3FlKzIwPj4yXSxh''@;'; put 'put ''W0xyKzI0Pj4yXT1hW3FlKzI0Pj4yXSxhW0xyKzI4Pj4yXT1hW3FlKzI4Pj4yXSwrX1tMcj4+M108K19bKHFlPUxyKzE2fDApPj4zXSYmK19bU3Q+PjNdPCtfW2F0Pj4zXSYmKGFbcnQ+PjJdPTErKFp0PTB8YVtydD4+Ml0pLGFbKFp0PURyKzU2KyhadDw8NSl8MCk+PjJdPWFbTHI+PjJdLGFb''@;'; put 'put ''WnQrND4+Ml09YVtMcis0Pj4yXSxhW1p0Kzg+PjJdPWFbTHIrOD4+Ml0sYVtadCsxMj4+Ml09YVtMcisxMj4+Ml0sYVtadCsxNj4+Ml09YVtMcisxNj4+Ml0sYVtadCsyMD4+Ml09YVtMcisyMD4+Ml0sYVtadCsyND4+Ml09YVtMcisyND4+Ml0sYVtadCsyOD4+Ml09YVtMcisyOD4+Ml0pLExl''@;'; put 'put ''PWwrNjB8MCxXZT1Kcis1MnwwLFJlPWYrNTZ8MCxIZT1mKzY5fDAsdz1mKzE2fDAsVmU9ZisyOXwwLFp0PWJ0LEc9MCxxPS0xO3Q6Zm9yKDs7KXtmb3IocGU9YixnZT0wLGI9MCxiZT1adDs7KXtpZihPZT1ELDEhPSgwfGZlWzE1NisoMHxhWyhSPUQpKzE2Pj4yXSk+PjBdKXx8KDB8X29bNjMm''@;'; put 'put ''YVs0MzI1XV0oUikpPDwyND4+MjQpYnJlYWsgdDtpZihEPTF8Z2UseGk9MTUzNzIwKyhnZTw8NSl8MCxzSShhbixjLGwsMHxhWzIzMisoMHxhW3BlKzE2Pj4yXSk+PjJdKSxhW3hpPj4yXT1hW2FuPj4yXSxhW3hpKzQ+PjJdPWFbYW4rND4+Ml0sYVt4aSs4Pj4yXT1hW2FuKzg+PjJdLGFbeGkr''@;'; put 'put ''MTI+PjJdPWFbYW4rMTI+PjJdLGFbeGkrMTY+PjJdPWFbYW4rMTY+PjJdLGFbeGkrMjA+PjJdPWFbYW4rMjA+PjJdLGFbeGkrMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbeGkrMjg+PjJdPWFbYW4rMjg+PjJdLGJ8fChHPShiPSgwfChHPTB8ZDBlKFIpKSk8KDMrKGZlWzExMysoMHxhWzE2KygwfGFb''@;'; put 'put ''TGU+PjJdKT4+Ml0pPj4wXTw8MSYyKSYyNTV8MCkpP0c6RystMnwwLHE9Yj9xOjEsYj0xJigxXmIpKSwhKDA9PSgwfGIpfCgwfHEpPjApKWJyZWFrO3hpPTE1MzcyMCsoRDw8NSl8MCxHNShTbixsLGMsUixiZSwwfGFbYVsxODArKDB8YVtSKzE2Pj4yXSk+PjJdPj4yXSksYVt4aT4+Ml09YVtT''@;'; put 'put ''bj4+Ml0sYVt4aSs0Pj4yXT1hW1NuKzQ+PjJdLGFbeGkrOD4+Ml09YVtTbis4Pj4yXSxhW3hpKzEyPj4yXT1hW1NuKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW1NuKzE2Pj4yXSxhW3hpKzIwPj4yXT1hW1NuKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW1NuKzI0Pj4yXSxhW3hpKzI4Pj4yXT1hW1NuKzI4''@;'; put 'put ''Pj4yXSxwZT0wfGFbKDM9PSgwfChEPTMmYVsoeGk9MHxhW2FbMTgwKygwfGFbT2UrMTY+PjJdKT4+Ml0+PjJdKT4+Ml0pKT94aTp4aSs0OHwwKSs0MD4+Ml0sYVtsbz4+Ml09RD0wfGFbKDI9PSgwfEQpP3hpOnhpKy00OHwwKSs0MD4+Ml0sZ2U9Z2UrMnwwLHE9cSstMXwwLGJlPXhpfWlmKEc1''@;'; put 'put ''KEhuLGwsYyxSLGJlLDB8YVthWzE4MCsoMHxhW1IrMTY+PjJdKT4+Ml0+PjJdKSxhW0pyPj4yXT1hW0huPj4yXSxhW0pyKzQ+PjJdPWFbSG4rND4+Ml0sYVtKcis4Pj4yXT1hW0huKzg+PjJdLGFbSnIrMTI+PjJdPWFbSG4rMTI+PjJdLGFbSnIrMTY+PjJdPWFbSG4rMTY+PjJdLGFbSnIrMjA+''@;'; put 'put ''PjJdPWFbSG4rMjA+PjJdLGFbSnIrMjQ+PjJdPWFbSG4rMjQ+PjJdLGFbSnIrMjg+PjJdPWFbSG4rMjg+PjJdLHJEKGYsYmUsMSxKciwwfFdDKDB8YVsoMj09KDMmYVtiZT4+Ml18MCk/YmU6YmUrLTQ4fDApKzQwPj4yXSkpLGs9K19bKDB8YVsxOTYrKDB8YVtrdD4+Ml0pPj4yXSkrKGFbMjMy''@;'; put 'put ''KyhnZT0wfGFbT2UrMTY+PjJdKT4+Ml08PDYpKzI0Pj4zXSsgK19bZ2UrMjQ+PjNdLGFbZnI+PjJdPWFbKHhpPUpyKzU2KygoMHxhW1dlPj4yXSktMTw8NSl8MCk+PjJdLGFbZnIrND4+Ml09YVt4aSs0Pj4yXSxhW2ZyKzg+PjJdPWFbeGkrOD4+Ml0sYVtmcisxMj4+Ml09YVt4aSsxMj4+Ml0s''@;'; put 'put ''YVtmcisxNj4+Ml09YVt4aSsxNj4+Ml0sYVtmcisyMD4+Ml09YVt4aSsyMD4+Ml0sYVtmcisyND4+Ml09YVt4aSsyND4+Ml0sYVtmcisyOD4+Ml09YVt4aSsyOD4+Ml0sS0EoTHIsZnIsNCxrKSwrX1tMcj4+M108K19bcWU+PjNdJiYrX1tTdD4+M108K19bYXQ+PjNdJiYoYVtXZT4+Ml09MSso''@;'; put 'put ''eGk9MHxhW1dlPj4yXSksYVsoeGk9SnIrNTYrKHhpPDw1KXwwKT4+Ml09YVtMcj4+Ml0sYVt4aSs0Pj4yXT1hW0xyKzQ+PjJdLGFbeGkrOD4+Ml09YVtMcis4Pj4yXSxhW3hpKzEyPj4yXT1hW0xyKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW0xyKzE2Pj4yXSxhW3hpKzIwPj4yXT1hW0xyKzIwPj4y''@;'; put 'put ''XSxhW3hpKzI0Pj4yXT1hW0xyKzI0Pj4yXSxhW3hpKzI4Pj4yXT1hW0xyKzI4Pj4yXSksX1tSZT4+M109MS41NzA3OTYzMjY3OTQ4OTY2LGZlW0hlPj4wXT0xLHlZKGYsWnQsYmUsRHIsSnIsRCksc3Q/KGI9MHxfeShmLFZpKSxEPTB8YVtWaT4+Ml0sY3Q9MzMpOihiPTB8Z2soZixWaSksRXQm''@;'; put 'put ''KDB8KEQ9MHxhW1ZpPj4yXSkpPjQ/KGFbKHhpPWIrMTZ8MCk+PjJdPWFbYj4+Ml0sYVt4aSs0Pj4yXT1hW2IrND4+Ml0sYVt4aSs4Pj4yXT1hW2IrOD4+Ml0sYVt4aSsxMj4+Ml09YVtiKzEyPj4yXSxhWyh4aT1iKzMyfDApPj4yXT1hWyhEPWIrKEQrLTE8PDQpfDApPj4yXSxhW3hpKzQ+PjJd''@;'; put 'put ''PWFbRCs0Pj4yXSxhW3hpKzg+PjJdPWFbRCs4Pj4yXSxhW3hpKzEyPj4yXT1hW0QrMTI+PjJdLHIxKGIrNDh8MCwwfEQsMTYpLGFbVmk+PjJdPTQsRD00KTpjdD0zMyksMzM9PSgwfGN0KSYmKGN0PTAsIUQpKWJyZWFrIGU7Zm9yKCgwfChSPShiZT0wfGFbUm8+PjJdKStEfDApKT4oMHxhWzQ2''@;'; put 'put ''NzM2XSk/KGFbNDY3MzZdPVI8PDEsZ2U9MHxWMCgwfGFbNDY3MzRdLFI8PDUpLGFbNDY3MzRdPWdlLEQ9MHxhW1ZpPj4yXSk6Z2U9MHxhWzQ2NzM0XSxwZT0wLFI9YmU7ISgoMHxwZSk+PSgwfEQpKTspYVsoeGk9Z2UrKFI8PDQpfDApPj4yXT1hWyhiZT1iKyhwZTw8NCl8MCk+PjJdLGFbeGkr''@;'; put 'put ''ND4+Ml09YVtiZSs0Pj4yXSxhW3hpKzg+PjJdPWFbYmUrOD4+Ml0sYVt4aSsxMj4+Ml09YVtiZSsxMj4+Ml0scGU9cGUrMXwwLFI9UisxfDA7YVtSbz4+Ml09UixEPTB8amwoMHxhW2FbMTgwKygwfGFbT2UrMTY+PjJdKT4+Ml0+PjJdLEcsZ2UsUm8pLHdZKFp0LGYpLGI9MHxhWygzPT0oMHwo''@;'; put 'put ''Uj0zJmFbRD4+Ml0pKT9EOkQrNDh8MCkrNDA+PjJdLGFbbG8+PjJdPVI9MHxhWygyPT0oMHxSKT9EOkQrLTQ4fDApKzQwPj4yXSxHNSh1cixsLGMsYiwwfGFbYVsxNzIrKDB8YVsoWnQ9YisxNnwwKT4+Ml0pPj4yXT4+Ml0sRCksYVtEcj4+Ml09YVt1cj4+Ml0sYVtEcis0Pj4yXT1hW3VyKzQ+''@;'; put 'put ''PjJdLGFbRHIrOD4+Ml09YVt1cis4Pj4yXSxhW0RyKzEyPj4yXT1hW3VyKzEyPj4yXSxhW0RyKzE2Pj4yXT1hW3VyKzE2Pj4yXSxhW0RyKzIwPj4yXT1hW3VyKzIwPj4yXSxhW0RyKzI0Pj4yXT1hW3VyKzI0Pj4yXSxhW0RyKzI4Pj4yXT1hW3VyKzI4Pj4yXSxuRChmLEQsMSxEciwwfFdDKGIp''@;'; put 'put ''KSxrPStfWzI0KyhadD0wfGFbWnQ+PjJdKT4+M10tK19bKDB8YVsxOTYrKDB8YVtrdD4+Ml0pPj4yXSkrKGFbWnQrMjMyPj4yXTw8NikrMTY+PjNdLGFbZnI+PjJdPWFbKHhpPURyKzU2KygoMHxhW3J0Pj4yXSktMTw8NSl8MCk+PjJdLGFbZnIrND4+Ml09YVt4aSs0Pj4yXSxhW2ZyKzg+PjJd''@;'; put 'put ''PWFbeGkrOD4+Ml0sYVtmcisxMj4+Ml09YVt4aSsxMj4+Ml0sYVtmcisxNj4+Ml09YVt4aSsxNj4+Ml0sYVtmcisyMD4+Ml09YVt4aSsyMD4+Ml0sYVtmcisyND4+Ml09YVt4aSsyND4+Ml0sYVtmcisyOD4+Ml09YVt4aSsyOD4+Ml0sS0EoTHIsZnIsMSxrKSwrX1tMcj4+M108K19bcWU+PjNd''@;'; put 'put ''JiYrX1tTdD4+M108K19bYXQ+PjNdJiYoYVtydD4+Ml09MSsoeGk9MHxhW3J0Pj4yXSksYVsoeGk9RHIrNTYrKHhpPDw1KXwwKT4+Ml09YVtMcj4+Ml0sYVt4aSs0Pj4yXT1hW0xyKzQ+PjJdLGFbeGkrOD4+Ml09YVtMcis4Pj4yXSxhW3hpKzEyPj4yXT1hW0xyKzEyPj4yXSxhW3hpKzE2Pj4y''@;'; put 'put ''XT1hW0xyKzE2Pj4yXSxhW3hpKzIwPj4yXT1hW0xyKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW0xyKzI0Pj4yXSxhW3hpKzI4Pj4yXT1hW0xyKzI4Pj4yXSksX1t3Pj4zXT0tMS41NzA3OTYzMjY3OTQ4OTY2LGZlW1ZlPj4wXT0xLFp0PUQsRD1SfWlmKGI9MXxnZSxxPTE1MzcyMCsoZ2U8PDUpfDAs''@;'; put 'put ''c0koSHIsYyxsLDB8YVsyMzIrKDB8YVtwZSsxNj4+Ml0pPj4yXSksYVtxPj4yXT1hW0hyPj4yXSxhW3ErND4+Ml09YVtIcis0Pj4yXSxhW3ErOD4+Ml09YVtIcis4Pj4yXSxhW3ErMTI+PjJdPWFbSHIrMTI+PjJdLGFbcSsxNj4+Ml09YVtIcisxNj4+Ml0sYVtxKzIwPj4yXT1hW0hyKzIwPj4y''@;'; put 'put ''XSxhW3ErMjQ+PjJdPWFbSHIrMjQ+PjJdLGFbcSsyOD4+Ml09YVtIcisyOD4+Ml0sRzUoRXIsbCxjLFIsYmUsMCksYVtKcj4+Ml09YVtFcj4+Ml0sYVtKcis0Pj4yXT1hW0VyKzQ+PjJdLGFbSnIrOD4+Ml09YVtFcis4Pj4yXSxhW0pyKzEyPj4yXT1hW0VyKzEyPj4yXSxhW0pyKzE2Pj4yXT1h''@;'; put 'put ''W0VyKzE2Pj4yXSxhW0pyKzIwPj4yXT1hW0VyKzIwPj4yXSxhW0pyKzI0Pj4yXT1hW0VyKzI0Pj4yXSxhW0pyKzI4Pj4yXT1hW0VyKzI4Pj4yXSxhW0xyPj4yXT1hW0VyPj4yXSxhW0xyKzQ+PjJdPWFbRXIrND4+Ml0sYVtMcis4Pj4yXT1hW0VyKzg+PjJdLGFbTHIrMTI+PjJdPWFbRXIrMTI+''@;'; put 'put ''PjJdLGFbTHIrMTY+PjJdPWFbRXIrMTY+PjJdLGFbTHIrMjA+PjJdPWFbRXIrMjA+PjJdLGFbTHIrMjQ+PjJdPWFbRXIrMjQ+PjJdLGFbTHIrMjg+PjJdPWFbRXIrMjg+PjJdLHBlPWJlKy00OHwwLHJEKGYsKHE9MCE9KDB8TSkpP09pOmJlLDEsSnIsMHxXQygwfGFbKDI9PSgzJmFbYmU+PjJd''@;'; put 'put ''fDApP2JlOnBlKSs0MD4+Ml0pKSxfW2F0Pj4zXT0rX1tKcis1NisoKHhpPSgwfGFbV2U+PjJdKS0xfDApPDw1KSsyND4+M10sX1tTdD4+M109K19bSnIrNTYrKHhpPDw1KSs4Pj4zXSxrPStfWygwfGFbMTk2KygwfGFba3Q+PjJdKT4+Ml0pKyhhWzIzMisoeGk9MHxhW09lKzE2Pj4yXSk+PjJd''@;'; put 'put ''PDw2KSsyND4+M10rICtfW3hpKzI0Pj4zXSxhW2ZyPj4yXT1hW0xyPj4yXSxhW2ZyKzQ+PjJdPWFbTHIrND4+Ml0sYVtmcis4Pj4yXT1hW0xyKzg+PjJdLGFbZnIrMTI+PjJdPWFbTHIrMTI+PjJdLGFbZnIrMTY+PjJdPWFbTHIrMTY+PjJdLGFbZnIrMjA+PjJdPWFbTHIrMjA+PjJdLGFbZnIr''@;'; put 'put ''MjQ+PjJdPWFbTHIrMjQ+PjJdLGFbZnIrMjg+PjJdPWFbTHIrMjg+PjJdLEtBKGwwLGZyLDQsayksYVtMcj4+Ml09YVtsMD4+Ml0sYVtMcis0Pj4yXT1hW2wwKzQ+PjJdLGFbTHIrOD4+Ml09YVtsMCs4Pj4yXSxhW0xyKzEyPj4yXT1hW2wwKzEyPj4yXSxhW0xyKzE2Pj4yXT1hW2wwKzE2Pj4y''@;'; put 'put ''XSxhW0xyKzIwPj4yXT1hW2wwKzIwPj4yXSxhW0xyKzI0Pj4yXT1hW2wwKzI0Pj4yXSxhW0xyKzI4Pj4yXT1hW2wwKzI4Pj4yXSwrX1tMcj4+M108K19bcWU+PjNdJiYrX1tTdD4+M108K19bYXQ+PjNdJiYoYVtXZT4+Ml09MSsoeGk9MHxhW1dlPj4yXSksYVsoeGk9SnIrNTYrKHhpPDw1KXww''@;'; put 'put ''KT4+Ml09YVtMcj4+Ml0sYVt4aSs0Pj4yXT1hW0xyKzQ+PjJdLGFbeGkrOD4+Ml09YVtMcis4Pj4yXSxhW3hpKzEyPj4yXT1hW0xyKzEyPj4yXSxhW3hpKzE2Pj4yXT1hW0xyKzE2Pj4yXSxhW3hpKzIwPj4yXT1hW0xyKzIwPj4yXSxhW3hpKzI0Pj4yXT1hW0xyKzI0Pj4yXSxhW3hpKzI4Pj4y''@;'; put 'put ''XT1hW0xyKzI4Pj4yXSkseVkoZixadCxiZSxEcixKcixiKSxHPXN0PzB8X3koZixWaSk6MHxnayhmLFZpKSxFdCYoMHwoYj0wfGFbVmk+PjJdKSk+NClhWyh4aT1HKzE2fDApPj4yXT1hW0c+PjJdLGFbeGkrND4+Ml09YVtHKzQ+PjJdLGFbeGkrOD4+Ml09YVtHKzg+PjJdLGFbeGkrMTI+PjJd''@;'; put 'put ''PWFbRysxMj4+Ml0sYVsoeGk9RyszMnwwKT4+Ml09YVsoYj1HKyhiKy0xPDw0KXwwKT4+Ml0sYVt4aSs0Pj4yXT1hW2IrND4+Ml0sYVt4aSs4Pj4yXT1hW2IrOD4+Ml0sYVt4aSsxMj4+Ml09YVtiKzEyPj4yXSxyMShHKzQ4fDAsMHxiLDE2KSxhW1ZpPj4yXT00LGI9NDtlbHNlIGlmKCFiKWJy''@;'; put 'put ''ZWFrO2ZvcigoMHwoTT0oRD0wfGFbUm8+PjJdKStifDApKT4oMHxhWzQ2NzM2XSk/KGFbNDY3MzZdPU08PDEsUj0wfFYwKDB8YVs0NjczNF0sTTw8NSksYVs0NjczNF09UixiPTB8YVtWaT4+Ml0pOlI9MHxhWzQ2NzM0XSxNPTA7ISgoMHxNKT49KDB8YikpOylhWyh4aT1SKyhEPDw0KXwwKT4+''@;'; put 'put ''Ml09YVsoVmk9RysoTTw8NCl8MCk+PjJdLGFbeGkrND4+Ml09YVtWaSs0Pj4yXSxhW3hpKzg+PjJdPWFbVmkrOD4+Ml0sYVt4aSsxMj4+Ml09YVtWaSsxMj4+Ml0sTT1NKzF8MCxEPUQrMXwwO2FbUm8+PjJdPUQsd1koWnQsZiksYVtsbz4+Ml09YVsoYj1xPzI9PSgzJmFbT2k+PjJdfDApP09p''@;'; put 'put ''Ok9pKy00OHwwOjI9PSgzJmFbYmU+PjJdfDApP2JlOnBlKSs0MD4+Ml0sT2U9RCxjdD02M319d2hpbGUoMCk7ZTpkb3tpZig2Mz09KDB8Y3QpKXtpZigxPT0oMHxBKSl7QXUoYnQsMHxhW2xvPj4yXSwwfGFbNDY3MzRdLE9lLDE3Mjk2KTticmVha31mb3IoYmU9T2UrLTF8MCxrPSsoMHwoMHxB''@;'; put 'put ''cigwfGFbKGdlPWMrMTJ8MCk+PjJdLEErLTF8MCkpLzIpLE09MHxhWzQ2NzM0XSxiPTE7ISgoMHxiKT49KDB8YmUpKTspX1soeGk9TSsoYjw8NCl8MCk+PjNdPStfW3hpPj4zXS1rLGI9YisxfDA7Zm9yKCgwfChiPTB8YVs0NjczNl0pKT4oMHxhWzQ2NzM3XSk/KGFbNDY3MzddPWIsRD0wfFYw''@;'; put 'put ''KDB8YVs0NjczNV0sYjw8NCksYVs0NjczNV09RCxNPTB8YVs0NjczNF0pOkQ9MHxhWzQ2NzM1XSxiPTA7ISgoMHxiKT49KDB8T2UpKTspYVsoeGk9RCsoYjw8NCl8MCk+PjJdPWFbKGM9TSsoYjw8NCl8MCk+PjJdLGFbeGkrND4+Ml09YVtjKzQ+PjJdLGFbeGkrOD4+Ml09YVtjKzg+PjJdLGFb''@;'; put 'put ''eGkrMTI+PjJdPWFbYysxMj4+Ml0sYj1iKzF8MDtmb3IoQXUoYnQsMHxhW2xvPj4yXSxELE9lLDE3Mjk2KSxxPVRhKzQ4fDAscGU9VGErLTQ4fDAsRz0xOzspe2lmKCgwfEcpPj0oMHxBKSlicmVhayBlO2lmKDMyJmFbMTY0KyhiPTB8YVsoUj0xNisoRD0wfGFbcCsoRyttPDwyKT4+Ml0pfDAp''@;'; put 'put ''Pj4yXSk+PjJdKXtnbygwfChNPTB8YVtaYT4+Ml0pLDB8YiwxNzYpLFJlPUQsSGU9KExlPVRhKSs0OHwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7YVtaYT4+Ml09TSxhWygzPT0oMHwoTGU9MyZhW1RhPj4yXSkpP1RhOnEp''@;'; put 'put ''KzQwPj4yXT1hWygyPT0oMyZhW0Q+PjJdfDApP0Q6RCstNDh8MCkrNDA+PjJdLGFbKDI9PSgwfExlKT9UYTpwZSkrNDA+PjJdPWFbKDM9PSgzJmFbRD4+Ml18MCk/RDpEKzQ4fDApKzQwPj4yXSxSZT01NisoMHxhW1I+PjJdKXwwLEhlPTQwKyhMZT1NKzE2fDApfDA7ZG97YVtMZT4+Ml09YVtS''@;'; put 'put ''ZT4+Ml0sTGU9TGUrNHwwLFJlPVJlKzR8MH13aGlsZSgoMHxMZSk8KDB8SGUpKTtSZT0xNisoMHxhW1I+PjJdKXwwLEhlPTQwKyhMZT01NisoYj0wfGFbWmE+PjJdKXwwKXwwO2Rve2FbTGU+PjJdPWFbUmU+PjJdLExlPUxlKzR8MCxSZT1SZSs0fDB9d2hpbGUoKDB8TGUpPCgwfEhlKSk7ZmVb''@;'; put 'put ''YisxMTI+PjBdPTEsYVtiKzExNj4+Ml09RCxEPVRhfWZvcihSPTB8YVs0NjczNF0sYj0xOyEoKDB8Yik+PSgwfGJlKSk7KV9bKHhpPVIrKGI8PDQpfDApPj4zXT0rX1t4aT4+M10rICsoMHxhW2dlPj4yXSksYj1iKzF8MDtmb3IoTT0wfGFbNDY3MzVdLGI9MDshKCgwfGIpPj0oMHxPZSkpOylh''@;'; put 'put ''Wyh4aT1NKyhiPDw0KXwwKT4+Ml09YVsobG89UisoYjw8NCl8MCk+PjJdLGFbeGkrND4+Ml09YVtsbys0Pj4yXSxhW3hpKzg+PjJdPWFbbG8rOD4+Ml0sYVt4aSsxMj4+Ml09YVtsbysxMj4+Ml0sYj1iKzF8MDtBdShELDB8YVsoMj09KDMmYVtEPj4yXXwwKT9EOkQrLTQ4fDApKzQwPj4yXSxN''@;'; put 'put ''LE9lLDE3Mjk2KSxHPUcrMXwwfX19d2hpbGUoMCk7bGU9Z2F9ZnVuY3Rpb24gQVkobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTB8RHQobHw9MCk7Yzspe2ZvcihmPTB8dzAobCxjKTtmOykoMHxfb1s2MyZhWzQzMjRdXShmKSk8PDI0Pj4yNCYmMHwocD0wfGFbOCsoMHxhW2YrMTY+PjJdKT4+''@;'; put 'put ''Ml0pJiZjMGUocCksZj0wfFMwKGwsZik7Yz0wfHp0KGwsYyl9fWZ1bmN0aW9uIGMwZShsKXt2YXIgbSxBLGM9MCxmPTAscD0wO2ZvcihjPUE9MHxRbig0OCoobT0wfGFbNCsobHw9MCk+PjJdKXwwKSxmPTAscD0oMHxhW2w+PjJdKSsoNDgqKG0rLTF8MCl8MCl8MDs7KXtpZigoMHxmKT49KDB8''@;'; put 'put ''bSkpe2M9MDticmVha31mMGUocCxjKSxjPWMrNDh8MCxmPWYrMXwwLHA9cCstNDh8MH1mb3IoO2Y9MHxhW2w+PjJdLCEoKDB8Yyk+PSgwfG0pKTspRnQoMHxhW2YrKDQ4KmN8MCk+PjJdKSxjPWMrMXwwO0Z0KGYpLGFbbD4+Ml09QX1mdW5jdGlvbiBmMGUobCxjKXtjfD0wO3ZhciBmPTAscD0w''@;'; put 'put ''LG09MCxBPTAsdz0wO2ZvcihmPXc9MHxRbigoQT0wfGFbNCsobHw9MCk+PjJdKTw8NCkscD0wLG09KDB8YVtsPj4yXSkrKEErLTE8PDQpfDA7ISgoMHxwKT49KDB8QSkpOylhW2Y+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09''@;'; put 'put ''YVttKzEyPj4yXSxmPWYrMTZ8MCxwPXArMXwwLG09bSstMTZ8MDthW2M+PjJdPXcsYVtjKzQ+PjJdPUEsYVtjKzg+PjJdPWFbbCsxMj4+Ml0sYVtjKzEyPj4yXT1hW2wrOD4+Ml0sYVsodz1jKzE2fDApPj4yXT1hWyhBPWwrMzJ8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJd''@;'; put 'put ''PWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0sYVsodz1jKzMyfDApPj4yXT1hWyhBPWwrMTZ8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml19ZnVuY3Rpb24gRzUobCxjLGYscCxtLEEpe2x8PTAsZnw9MDt2''@;'; put 'put ''YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MDtpZihNPSh3PShHPStfWzE2KyhxPTB8YVsxNisocHw9MCk+PjJdKT4+M10pLStfW3ErODg+PjNdKS00LGs9MHxHRihjfD0wLHAsbXw9MCxBfD0wLC0xKSl7Yj0wfFdGKGMscCxrKTtkb3tpZighYil7aWYodz0rX1syNDArKEQ9MHxh''@;'; put 'put ''W2srMTY+PjJdKT4+M10rICtfW0QrMTY+PjNdLDB8ZmVbRCsxNTY+PjBdKXt3Kz0rKDB8YVtmKzg+PjJdKTticmVha313PS41KisoMHxhWzI0OCsoMHxhW2MrMTY+PjJdKT4+Ml0pK3c7YnJlYWt9dz0rX1szMisoMHxhW2IrMTY+PjJdKT4+M10rICsoMHxhW2YrOD4+Ml0pfXdoaWxlKDApO2I9''@;'; put 'put ''fn4oKFI9dzxNP3c6TSkrKFI+PTA/LjU6LS41KSl9ZWxzZSBiPSgwfChiPTB8YVtmPj4yXSkpPigwfChEPX5+KHcrKE0+PTA/LTMuNTotNC41KSkpKT9EOmI7aWYoUj0rKDB8YiksTT0oRD0xPT0oMHxmZVtxKzE1Nj4+MF0pKSYmMCE9KDB8YVtxKzEwND4+Ml0pP0crMTA6Rys0KyArX1txKzk2''@;'; put 'put ''Pj4zXSxrPTB8R0YoYyxwLG0sQSwxKSl7Yj0wfFdGKGMscCxrKTtkb3tpZighYil7aWYodz0rX1sxNisocD0wfGFbaysxNj4+Ml0pPj4zXS0rX1twKzg4Pj4zXSwwfGZlW3ArMTU2Pj4wXSl7dy09KygwfGFbZis4Pj4yXSk7YnJlYWt9dy09LjUqKygwfGFbMjQ4KygwfGFbYysxNj4+Ml0pPj4y''@;'; put 'put ''XSk7YnJlYWt9dz0rX1sxNisoMHxhW2IrMTY+PjJdKT4+M10tKygwfGFbZis4Pj4yXSl9d2hpbGUoMCk7Yj1+figoTT13Pk0/dzpNKSsoTT49MD8uNTotLjUpKX1lbHNlIGI9KDB8KGI9MHxhW2YrND4+Ml0pKTwoMHwocD1+fihNKyhNPj0wPy41Oi0uNSkpKSk/cDpiO3c9KygwfGIpLEQmJjAh''@;'; put 'put ''PSgwfGFbcSsxMDQ+PjJdKSYmKHctPStfW3ErOTY+PjNdKTxSJiYodz1HKSxNPShHPStfW3ErMjQ+PjNdKS0rX1soYz0wfGFbMTk2KygwfGFbYysxNj4+Ml0pPj4yXSkrKChxPTB8YVtxKzIzMj4+Ml0pPDw2KSsxNj4+M10sRz0rX1tjKyhxPDw2KSsyND4+M10rRyxfW2w+PjNdPVIsX1tsKzg+''@;'; put 'put ''PjNdPU0sX1tsKzE2Pj4zXT13LF9bbCsyND4+M109R31mdW5jdGlvbiBXQyhsKXtyZXR1cm4gMHwoMT09KDB8ZmVbMTU2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+MF0pPygwfGFbbCsxNzY+PjJdKT4xPzE6KDB8YVtsKzE4ND4+Ml0pPjEmMTowKX1mdW5jdGlvbiBLQShsLGMsZixwKXt2YXIg''@;'; put 'put ''bSxBO3N3aXRjaChsfD0wLGN8PTAscD0rcCxBPWxlLGxlPWxlKzMyfDAsbT1BLDB8KGZ8PTApKXtjYXNlIDE6ekYobSwrX1tjPj4zXSxwLCtfW2MrMTY+PjNdLCtfW2MrOD4+M10pO2JyZWFrO2Nhc2UgNDp6RihtLCtfW2M+PjNdLCtfW2MrMjQ+PjNdLCtfW2MrMTY+PjNdLHApfWFbbD4+Ml09''@;'; put 'put ''YVttPj4yXSxhW2wrND4+Ml09YVttKzQ+PjJdLGFbbCs4Pj4yXT1hW20rOD4+Ml0sYVtsKzEyPj4yXT1hW20rMTI+PjJdLGFbbCsxNj4+Ml09YVttKzE2Pj4yXSxhW2wrMjA+PjJdPWFbbSsyMD4+Ml0sYVtsKzI0Pj4yXT1hW20rMjQ+PjJdLGFbbCsyOD4+Ml09YVttKzI4Pj4yXSxsZT1BfWZ1''@;'; put 'put ''bmN0aW9uIHNJKGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgayxELFIsbT0wLEE9MCx3PTAsYj0wLE09MCxHPTA7az0oTT0wfGFbMTYrKGN8PTApPj4yXSkrKChwfD0wKTw8NSl8MCxBPStfWyhEPU0rKHA8PDUpKzh8MCk+PjNdLFI9TSsocDw8NSkrMTZ8MCx3PStfWyhNPU0rKHA8PDUpKzI0fDAp''@;'; put 'put ''Pj4zXSwoYj0rX1trPj4zXSk9PShtPStfW1I+PjNdKSYmKEE9K19bKGY9MHxhWzE5NisoMHxhW2YrMTY+PjJdKT4+Ml0pKygoRz1wKzF8MCk8PDYpKzI0Pj4zXSsgK19bMjQrKDB8YVsxNisoMHxhW2FbZisoRzw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSxtPSsoMHxhW2MrND4+Ml0pLHc9K19b''@;'; put 'put ''MjQrKDB8YVsxNisoMHxhW2FbZisocDw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1tmKyhwPDw2KSsxNj4+M10sX1trPj4zXT1iPSsoMHxhW2M+PjJdKSxfW0Q+PjNdPUEsX1tSPj4zXT1tLF9bTT4+M109dyksX1tsPj4zXT1iLF9bbCs4Pj4zXT1BLF9bbCsxNj4+M109bSxfW2wrMjQ+PjNd''@;'; put 'put ''PXd9ZnVuY3Rpb24gZDBlKGwpe3ZhciBmLGM9MDtmb3IoZj0xNisobD0wfGFbMTYrKGx8PTApPj4yXSl8MCxjPTA7MT09KDB8ZmVbMTU2KyhsPTB8YVsxNisoMHxhWygyPT0oMyZhWyhsPTB8YVthW2wrMTgwPj4yXT4+Ml0pPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+MF0pJiYx''@;'; put 'put ''PT0oMHxhW2wrMTg0Pj4yXSkmJjE9PSgwfGFbbCsxNzY+PjJdKSYmK19bbCsxNj4+M109PStfW2Y+PjNdOyljPWMrMXwwO3JldHVybiAwfGN9ZnVuY3Rpb24geVkobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQXw9MDt2YXIgayxNLHc9MCxiPTA7TT1sZSxsZT1sZSszMnwwLGs9''@;'; put 'put ''TSx3PTB8YlkoY3w9MCwtMSksYz0wfGJZKGMsMSksMCE9KDB8dykmJiEoMHxUNyh3KSl8fChiPTMpO2Rve2lmKDM9PSgwfGIpKXtpZigwfGMmJjA9PSgwfFQ3KGMpKXx8KHc9MHxfWShmLC0xKSxjPTB8X1koZiwxKSwwfHcmJjA9PSgwfFQ3KHcpKSl8fDB8YyYmMD09KDB8VDcoYykpKWJyZWFr''@;'; put 'put ''O2Zvcih3PXArNTJ8MCxjPTA7ISgoMHxjKT49KDB8YVt3Pj4yXSkpOylhW2s+PjJdPWFbKGY9cCs1NisoYzw8NSl8MCk+PjJdLGFbays0Pj4yXT1hW2YrND4+Ml0sYVtrKzg+PjJdPWFbZis4Pj4yXSxhW2srMTI+PjJdPWFbZisxMj4+Ml0sYVtrKzE2Pj4yXT1hW2YrMTY+PjJdLGFbaysyMD4+''@;'; put 'put ''Ml09YVtmKzIwPj4yXSxhW2srMjQ+PjJdPWFbZisyND4+Ml0sYVtrKzI4Pj4yXT1hW2YrMjg+PjJdLEozKGwsayksYz1jKzF8MDtmb3Iodz0wfGFbbCs4MD4+Ml0sYj1BKy0zfDAsYz0wOyEoKDB8Yyk+PSgwfEEpKTspYVtrPj4yXT1hWyhwPTE1MzcyMCsoYzw8NSl8MCk+PjJdLGFbays0Pj4y''@;'; put 'put ''XT1hW3ArND4+Ml0sYVtrKzg+PjJdPWFbcCs4Pj4yXSxhW2srMTI+PjJdPWFbcCsxMj4+Ml0sYVtrKzE2Pj4yXT1hW3ArMTY+PjJdLGFbaysyMD4+Ml09YVtwKzIwPj4yXSxhW2srMjQ+PjJdPWFbcCsyND4+Ml0sYVtrKzI4Pj4yXT1hW3ArMjg+PjJdLEozKGwsayksYz1jKzF8MDtmb3IoYj1i''@;'; put 'put ''KyhmPXcrMXwwKXwwLHc9MHxhW20rNTI+PjJdO2M9dystMXwwLCEoKDB8dyk8PTApOylhW2s+PjJdPWFbKHc9bSs1NisoYzw8NSl8MCk+PjJdLGFbays0Pj4yXT1hW3crND4+Ml0sYVtrKzg+PjJdPWFbdys4Pj4yXSxhW2srMTI+PjJdPWFbdysxMj4+Ml0sYVtrKzE2Pj4yXT1hW3crMTY+PjJd''@;'; put 'put ''LGFbaysyMD4+Ml09YVt3KzIwPj4yXSxhW2srMjQ+PjJdPWFbdysyND4+Ml0sYVtrKzI4Pj4yXT1hW3crMjg+PjJdLEozKGwsayksdz1jO2xwKGwsZixiKX19d2hpbGUoMCk7bGU9TX1mdW5jdGlvbiBqbChsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxtPTA7Zm9yKG09MHxhWyhwfD0w''@;'; put 'put ''KT4+Ml07YzspbD0wfGFbYVsxODArKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXT4+Ml0sYz1jKy0xfDA7cmV0dXJuIGFbcD4+Ml09bSsxLGFbKEE9ZisobTw8NCl8MCk+PjJdPWFbKGM9ZisobSstMTw8NCl8MCk+PjJdLGFbQSs0Pj4y''@;'; put 'put ''XT1hW2MrND4+Ml0sYVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sYVtwPj4yXT0xKyhtPTB8YVtwPj4yXSksYVsobT1mKyhtPDw0KXwwKT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+''@;'; put 'put ''PjJdLGFbKG09ZisoYVtwPj4yXTw8NCl8MCk+PjJdPWFbKHA9MTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW3ArND4+Ml0sYVttKzg+PjJdPWFbcCs4Pj4yXSxhW20rMTI+PjJdPWFbcCsxMj4+Ml0sMHxs''@;'; put 'put ''fWZ1bmN0aW9uIHdZKGwsYyl7dmFyIGssTSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtNPTg0KyhjfD0wKXwwLGs9Yys4MHwwLGY9MCxjPWx8PTA7ZTpmb3IoO3c9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdLGI9dysxNnwwLCEoMSE9KDB8ZmVbMTU2KygwfGFbYj4+''@;'; put 'put ''Ml0pPj4wXSl8fCgwfF9vWzYzJmFbNDMyNV1dKHcpKTw8MjQ+PjI0KTspe2ZvcihjPTB8YVtrPj4yXTs7KXtpZigoMHxmKT49KDB8YykpYnJlYWsgZTtpZighKCtfWygwfGFbTT4+Ml0pKyhmPDw1KSs4Pj4zXT4rX1syNCsoMHxhW2I+PjJdKT4+M10pKWJyZWFrO2Y9ZisxfDB9Yz0wfGFbTT4+''@;'; put 'put ''Ml0sbD0wfGFbYj4+Ml07ZG97aWYoISgrX1tjKyhmPDw1KSsyND4+M108K19bbCsyND4+M10pKXtpZihBPX5+KG09K19bYysoZjw8NSk+PjNdKSxwPStfW2MrKGY8PDUpKzE2Pj4zXSwwfGFbbCsxMDQ+PjJdKXtkNyh3LEEsfn5wLH5+KCtfW2wrOTY+PjNdK3ApKTticmVha31kNyh3LEEsfn4o''@;'; put 'put ''LjUqKHArbSkpLH5+cCk7YnJlYWt9fXdoaWxlKDApO2M9MHxhW2FbMTgwKygwfGFbYj4+Ml0pPj4yXT4+Ml19fWZ1bmN0aW9uIGQ3KGwsYyxmLHApe2N8PTAscHw9MCxfWzE2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+M109KygwfChmfD0wKSksX1tsKzg4Pj4zXT0rKGYtY3wwKSxfW2wrOTY+''@;'; put 'put ''PjNdPSsocC1mfDApfWZ1bmN0aW9uIGJZKGwsYyl7Y3w9MDt2YXIgYixmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihiPTB8YVsxODArKDB8YVsxNisoMHxhWygzPT0oMHwodz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLHc9KDI9PSgwfHcpP2w6bCstNDh8MCkr''@;'; put 'put ''NDB8MCxBPTAsbD0wO3A9MHxhW2IrKEE8PDIpPj4yXTspe209MHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdO2Rve2lmKCgwfEFyKG0tKDB8YVsyMzYrKDB8YVsxNisoMHxhW3c+PjJdKT4+Ml0pPj4yXSl8MCxjKSk+PTEp''@;'; put 'put ''e2lmKCEoMHxhWzgrKGY9MHxhW3ArMTY+PjJdKT4+Ml0pJiYhKChmPTB8YVtmKzExNj4+Ml0pJiYwfGFbOCsoMHxhW2YrMTY+PjJdKT4+Ml0pfHwwfGwmJigwfEFyKCgwfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLW18''@;'; put 'put ''MCxjKSk8PTApYnJlYWs7bD1wfX13aGlsZSgwKTtBPUErMXwwfXJldHVybiAwfGx9ZnVuY3Rpb24gX1kobCxjKXtjfD0wO3ZhciBiLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHxhWzE3MisoMHxhWzE2KygwfGFbKDI9PSgwfCh3PTMmYVsobHw9MCk+PjJdKSk/bDpsKy00OHwwKSs0MD4+''@;'; put 'put ''Ml0pPj4yXSk+PjJdLHc9KDM9PSgwfHcpP2w6bCs0OHwwKSs0MHwwLEE9MCxsPTA7cD0wfGFbYisoQTw8Mik+PjJdOyl7bT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtwPj4yXXwwKT9wOnArNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTtkb3tpZigoMHxBcihtLSgwfGFbMjM2KygwfGFb''@;'; put 'put ''MTYrKDB8YVt3Pj4yXSk+PjJdKT4+Ml0pfDAsYykpPj0xKXtpZighKDB8YVs4KyhmPTB8YVtwKzE2Pj4yXSk+PjJdKSYmISgoZj0wfGFbZisxMTY+PjJdKSYmMHxhWzgrKDB8YVtmKzE2Pj4yXSk+PjJdKXx8MHxsJiYoMHxBcigoMHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18''@;'; put 'put ''MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLW18MCxjKSk8PTApYnJlYWs7bD1wfX13aGlsZSgwKTtBPUErMXwwfXJldHVybiAwfGx9ZnVuY3Rpb24gbHAobCxjLGYpe2Z8PTA7dmFyIGssTSxwPTAsbT0wLEE9MCx3PTAsYj0wLEQ9MDtmb3IoTT04NCsobHw9MCl8MCx3PShjfD0wKS0x''@;'; put 'put ''fDA7ISgoMHx3KT4oMHxmKSk7KXA9K19bKGI9KG09MHxhW00+PjJdKSsodzw8NSl8MCk+PjNdLHctYyYxPyhBPX5+KC41KigoRD0rX1sobT1tKyh3PDw1KSsxNnwwKT4+M10pK3ApKSxwKzE2PkQmJihfW2I+PjNdPSsoQSstOHwwKSxfW20+PjNdPSsoQSs4fDApKSk6KEE9fn4oLjUqKChEPStf''@;'; put 'put ''WyhtPW0rKHc8PDUpKzE2fDApPj4zXSkrcCkpLHA+PUQmJihfW2I+PjNdPSsoQSstOHwwKSxfW20+PjNdPSsoQSs4fDApKSksdz13KzF8MDtmb3Ioaz0oMHxhW2wrODA+PjJdKS0xfDAsQT0wOyEoKDB8QSk+PSgwfGspKTspaWYobT0odz0wfGFbTT4+Ml0pKyhBPDw1KXwwLGw9dysoKGI9QSsx''@;'; put 'put ''fDApPDw1KXwwLCgwfEEpPCgwfGMpfCgwfEEpPigwfGYpfHwwIT0oQS1jJjF8MCkpKDB8QSk8KDB8ZikmKDB8Yik+PSgwfGMpP2ItYyYxfDA/QT1iOigrX1ttPj4zXSsxNj4ocD0rX1t3KyhiPDw1KSsxNj4+M10pJiYoX1ttPj4zXT1wKy0xNiksK19bKG09dysoQTw8NSkrMTZ8MCk+PjNdLTE2''@;'; put 'put ''PChwPStfW2w+PjNdKT8oX1ttPj4zXT1wKzE2LEE9Yik6QT1iKTpBPWI7ZWxzZXtpZigocD0rX1ttPj4zXSsxNik+K19bKG09dysoYjw8NSkrMTZ8MCk+PjNdJiYoX1ttPj4zXT1wKSwhKChwPStfW3crKEE8PDUpKzE2Pj4zXS0xNik8K19bbD4+M10pKXtBPWI7Y29udGludWV9X1tsPj4zXT1w''@;'; put 'put ''LEE9Yn19ZnVuY3Rpb24gekYobCxjLGYscCxtKXtmPStmLHA9K3AsbT0rbSxfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109ZixfW2wrMTY+PjNdPXAsX1tsKzI0Pj4zXT1tfWZ1bmN0aW9uIEdGKGwsYyxmLHAsbSl7Znw9MCxwfD0wLG18PTA7dmFyIHcsQT0wLGI9MCxrPTA7dz0oaz0wfGFb''@;'; put 'put ''MTk2KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSsoKGI9MHxhWzIzMisoQT0wfGFbMTYrKGN8PTApPj4yXSk+PjJdKTw8Nil8MCxiPWsrKGI8PDYpKzR8MCxBPTB8YVtBKzIzNj4+Ml07ZTpkb3tpZigoMHwoQT1BK218MCkpPD0tMSl7bD0wO2JyZWFrfWlmKCgwfEEpPj0oMHxhW3c+PjJdKSl7''@;'; put 'put ''bD0wO2JyZWFrfXN3aXRjaCgwfGZlWzE1Nisoaz0wfGFbMTYrKGw9MHxhWygwfGFbYj4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDE6aWYoMHxhW2srMTA0Pj4yXSlicmVhayBlfX13aGlsZSgoMHxUYyhsLGMsZixwKSk8PDI0Pj4yNCE9MCk7cmV0dXJu''@;'; put 'put ''IDB8bH1mdW5jdGlvbiBXRihsLGMsZil7bHw9MDt2YXIgcCxtPTAsQT0wLHc9MDtpZigwfGZlWzE1NisoYz0wfGFbMTYrKGN8PTApPj4yXSk+PjBdPyhBPTB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMHwobT0zJmFbKHc9MHxhWzExNisoMHxhWzE2KygwfGFbYVtjKzE4MD4+Ml0+PjJdKT4+''@;'; put 'put ''Ml0pPj4yXSk+PjJdKSk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLHc9MHxhWzIxMisoMHxhWzE2KygwfGFbKDM9PSgwfG0pP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTpBPXc9MHxhW2MrMjEyPj4yXSwhKDB8ZmVbMTU2KyhjPTB8YVsxNisoZnw9MCk+PjJdKT4+MF0pKXJldHVy''@;'; put 'put ''biAwfCgoMHwoZj0oMHwoZj0wfGFbYysyMTI+PjJdKSk9PSgwfGwpPzA6ZikpPT0oMHxBKXwwPT0oMHxmKXwoMHxmKT09KDB8dyk/MDpmKTtpZigoMHwoYz0oMHwoYz0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMz09KDB8KG09MyZhWyhwPTB8YVsxMTYrKDB8YVsxNisoMHxhW2FbYysxODA+PjJd''@;'; put 'put ''Pj4yXSk+PjJdKT4+Ml0pPj4yXSkpP3A6cCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk9PSgwfGwpPzA6YykpPT0oMHxBKXwwPT0oMHxjKXwoMHxjKT09KDB8dyl8fDA9PSgwfHAwZShjLGYpKSl7aWYoISgoMHwoYz0oMHwoYz0wfGFbMjEyKygwfGFbMTYrKDB8YVsoMj09KDB8bSk/cDpwKy00''@;'; put 'put ''OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk9PSgwfGwpPzA6YykpPT0oMHxBKXwwPT0oMHxjKXwoMHxjKT09KDB8dykpKXJldHVybiAwfCgoZj0wPT0oMHxwMGUoYyxmKSkpPzA6Yyk7Yz0wfXJldHVybiAwfGN9ZnVuY3Rpb24gcDBlKGwsYyl7dmFyIGYsbSxwPTA7cmV0dXJuIDB8KCtfWzE2Kyhm''@;'; put 'put ''PTB8YVsxNisobHw9MCk+PjJdKT4+M108PShtPStfWzE2KyhsPTB8YVsxNisoY3w9MCk+PjJdKT4+M10pJiZtPD0rX1tmKzMyPj4zXSYmK19bZisyND4+M108PShwPStfW2wrMjQ+PjNdKT9wPD0rX1tmKzQwPj4zXSYxOjApfWZ1bmN0aW9uIFRjKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgdyxi''@;'; put 'put ''LG09MCxBPTA7Yj0oMHxhWzIzNisodz0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4oMHxhWzIzNisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk7ZTpkb3tpZigxPT0oMHxhW3crMTg0Pj4yXSkpe3Q6ZG97aWYoMHxwKWZvcihBPTAsbD0wfGFbYVt3KzE4MD4+Ml0+PjJdOzspe2lmKCgwfEEpPj0y''@;'; put 'put ''fHwoMHwobD0wfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pKT09KDB8KGM9MHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKSkpYnJlYWsgdDtpZihiXigwfGFbMjM2KyhtPTB8YVtsKzE2Pj4yXSk+PjJdKT4oMHxhWzIzNisobD0wfGFbYysxNj4+''@;'; put 'put ''Ml0pPj4yXSkpe2w9MTticmVhayBlfWlmKCEoMT09KDB8YVttKzE4ND4+Ml0pJiYwfGZlW20rMTU2Pj4wXSYmMT09KDB8YVtsKzE4ND4+Ml0pJiYwfGZlW2wrMTU2Pj4wXSkpYnJlYWsgdDtBPUErMXwwLHA9MHxhW2FbbCsxODA+PjJdPj4yXSxsPTB8YVthW20rMTgwPj4yXT4+Ml19fXdoaWxl''@;'; put 'put ''KDApO2lmKDB8ZiYmMT09KDB8YVt3KzE3Nj4+Ml0pKWZvcihtPTAsYz1mLGw9MHxhW2FbdysxNzI+PjJdPj4yXTs7KXtpZigoMHxtKT49Mil7bD0wO2JyZWFrIGV9aWYoKDB8KGw9MHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pKT09KDB8KGM9MHxhWygzPT0oMyZhW2M+''@;'; put 'put ''PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pKSl7bD0wO2JyZWFrIGV9aWYoYl4oMHxhWzIzNisocD0wfGFbbCsxNj4+Ml0pPj4yXSk+KDB8YVsyMzYrKGw9MHxhW2MrMTY+PjJdKT4+Ml0pKXtsPTE7YnJlYWsgZX1pZigxIT0oMHxhW3ArMTc2Pj4yXSkpe2w9MDticmVhayBlfWlmKCEoMHxmZVtw''@;'; put 'put ''KzE1Nj4+MF0pKXtsPTA7YnJlYWsgZX1pZigxIT0oMHxhW2wrMTc2Pj4yXSkpe2w9MDticmVhayBlfWlmKCEoMHxmZVtsKzE1Nj4+MF0pKXtsPTA7YnJlYWsgZX1tPW0rMXwwLGM9MHxhW2FbbCsxNzI+PjJdPj4yXSxsPTB8YVthW3ArMTcyPj4yXT4+Ml19ZWxzZSBsPTB9ZWxzZSBsPTB9d2hp''@;'; put 'put ''bGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBCdShsLGMsZil7dmFyIHA7cD0rX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIFlGKGwsYyxmKXt2YXIgcCxtO3JldHVybigwfH5+KCgrX1so''@;'; put 'put ''Znw9MCk+PjNdLShtPStfWyhjfD0wKT4+M10pKSooK19bOCsobHw9MCk+PjNdLShwPStfW2MrOD4+M10pKS0oK19bbD4+M10tbSkqKCtfW2YrOD4+M10tcCkpKT4wfDB9ZnVuY3Rpb24gbTBlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbXw9MDt2YXIgTSxELFIscSxwZSxiZSxMZSxSZSxW''@;'; put 'put ''ZSxBPTAsdz0wLGI9MCxrPTAsRz0wLGdlPTAsT2U9MCxIZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9MDtmb3IoVmU9bGUsbGU9bGUrMTYwMHwwLGJlPVZlKzE1NTJ8MCxNPVZlKzE1MzZ8MCxnZT1WZSs4NDB8MCxPZT1WZSsxNDR8MCxMZT1WZSsxNTg0fDAsdz1WZSszMnwwLHBlPVZlKzE2''@;'; put 'put ''fDAsRD1WZSxSPTB8YVsoMz09KDB8KEc9MyZhWyhwfD0wKT4+Ml0pKT9wOnArNDh8MCkrNDA+PjJdLFJlPXArLTQ4fDAsRz0wfGFbKDI9PSgwfEcpP3A6UmUpKzQwPj4yXSxBPTB8YVsxNzIrKGI9MHxhWyhxPXArMTZ8MCk+PjJdKT4+Ml07az0wfGFbMTcyKygwfGFbQSsxNj4+Ml0pPj4yXTsp''@;'; put 'put ''QT1rO2lmKGFbKGI9NTYrKDB8YVtiKzk2Pj4yXSl8MCk+PjJdPWFbKGs9MTYrKDB8YVsoQT0xNisoMHxhWygzPT0oMyZhW0E+PjJdfDApP0E6QSs0OHwwKSs0MD4+Ml0pfDApPj4yXSl8MCk+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFb''@;'; put 'put ''aysxMj4+Ml0sZmVbODErKDB8YVs5NisoYj0wfGFbcT4+Ml0pPj4yXSk+PjBdPTEsMiE9KDB8bSkpe2ZvcihTdD0oV2U9K19bMTYrKGI9MHxhW0E+PjJdKT4+M10pLStfW2IrODg+PjNdLFdlPStfW2IrOTY+PjNdK1dlLHJ0PShhdD0uNSorX1tiKzgwPj4zXSsocnQ9K19bYisyND4+M10pKS0o''@;'; put 'put ''KHJ0PSsoMHx+figuMTY2NjY2NjY2NjY2NjY2NjYqKygwfH5+KHJ0LStfWyhiPTB8YVsxOTYrKDB8YVtsKzE2Pj4yXSk+PjJdKSsoKHc9MHxhWzIzMisoaz0wfGFbUisxNj4+Ml0pPj4yXSk8PDYpKzE2Pj4zXS0rX1trKzI0Pj4zXSsgK19bYisodzw8NikrMjQ+PjNdKSkpKSk8NT81OnJ0KSx1''@;'; put 'put ''SShsLGMsZixSLHAsZ2UsMSksdUkobCxjLGYsRyxwLE9lLDApLF9bMTkyMTVdPXFlPStfW2dlKzU2Kygoaz0oYj0wfGFbKHc9Z2UrNTJ8MCk+PjJdKS0xfDApPDw1KT4+M10sX1sxOTIxNl09K19bZ2UrNTYrKGs8PDUpKzI0Pj4zXSxfWzE5MjE3XT1TdCxfWzE5MjE4XT1ydCxfWzE5MjE5XT1x''@;'; put 'put ''ZSxfWzE5MjIwXT1ydCxfWzE5MjIxXT1xZT0rX1tPZSs1NisoKEE9KDB8YVsoaz1PZSs1MnwwKT4+Ml0pLTF8MCk8PDUpKzE2Pj4zXSxfWzE5MjIyXT1hdCxfWzE5MjIzXT1XZSxfWzE5MjI2XT1ydCxfWzE5MjI0XT0rX1tPZSs1NisoQTw8NSkrMjQ+PjNdLF9bMTkyMjVdPXFlLEE9MDs7KXtp''@;'; put 'put ''ZigoMHxBKT49KDB8Yikpe0E9MDticmVha31hW2JlPj4yXT1hWyhiPWdlKzU2KyhBPDw1KXwwKT4+Ml0sYVtiZSs0Pj4yXT1hW2IrND4+Ml0sYVtiZSs4Pj4yXT1hW2IrOD4+Ml0sYVtiZSsxMj4+Ml09YVtiKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW2IrMTY+PjJdLGFbYmUrMjA+PjJdPWFbYisy''@;'; put 'put ''MD4+Ml0sYVtiZSsyND4+Ml09YVtiKzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW2IrMjg+PjJdLEozKGYsYmUpLEE9QSsxfDAsYj0wfGFbdz4+Ml19Zm9yKDszIT0oMHxBKTspYVtiZT4+Ml09YVsoZ2U9MTUzNzIwKyhBPDw1KXwwKT4+Ml0sYVtiZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbYmUrOD4+Ml09''@;'; put 'put ''YVtnZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW2dlKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW2dlKzE2Pj4yXSxhW2JlKzIwPj4yXT1hW2dlKzIwPj4yXSxhW2JlKzI0Pj4yXT1hW2dlKzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW2dlKzI4Pj4yXSxKMyhmLGJlKSxBPUErMXwwO2Zvcih3PTB8YVtrPj4yXTtB''@;'; put 'put ''PXcrLTF8MCwhKCgwfHcpPD0wKTspYVtiZT4+Ml09YVsodz1PZSs1NisoQTw8NSl8MCk+PjJdLGFbYmUrND4+Ml09YVt3KzQ+PjJdLGFbYmUrOD4+Ml09YVt3Kzg+PjJdLGFbYmUrMTI+PjJdPWFbdysxMj4+Ml0sYVtiZSsxNj4+Ml09YVt3KzE2Pj4yXSxhW2JlKzIwPj4yXT1hW3crMjA+PjJd''@;'; put 'put ''LGFbYmUrMjQ+PjJdPWFbdysyND4+Ml0sYVtiZSsyOD4+Ml09YVt3KzI4Pj4yXSxKMyhmLGJlKSx3PUE7dz0xMD09KDB8bSk/MHxfeShmLExlKTowfGdrKGYsTGUpLDB8KEE9MHxhW0xlPj4yXSkmJihIZT0xNyl9ZWxzZSBPZT1iKzE2fDAsYVtNPj4yXT1hWyhBPTE2KygwfGFbUisxNj4+Ml0p''@;'; put 'put ''fDApPj4yXSxhW00rND4+Ml09YVtBKzQ+PjJdLGFbTSs4Pj4yXT1hW0ErOD4+Ml0sYVtNKzEyPj4yXT1hW0ErMTI+PjJdLGFbYmU+PjJdPWFbT2U+PjJdLGFbYmUrND4+Ml09YVtPZSs0Pj4yXSxhW2JlKzg+PjJdPWFbT2UrOD4+Ml0sYVtiZSsxMj4+Ml09YVtPZSsxMj4+Ml0sQnUocGUsTSxi''@;'; put 'put ''ZSksQT01NisoMHxhW3E+PjJdKXwwLGFbTT4+Ml09YVsoT2U9MTYrKDB8YVtHKzE2Pj4yXSl8MCk+PjJdLGFbTSs0Pj4yXT1hW09lKzQ+PjJdLGFbTSs4Pj4yXT1hW09lKzg+PjJdLGFbTSsxMj4+Ml09YVtPZSsxMj4+Ml0sYVtiZT4+Ml09YVtBPj4yXSxhW2JlKzQ+PjJdPWFbQSs0Pj4yXSxh''@;'; put 'put ''W2JlKzg+PjJdPWFbQSs4Pj4yXSxhW2JlKzEyPj4yXT1hW0ErMTI+PjJdLEJ1KEQsTSxiZSksYXQ9K19bNTYrKEE9MHxhWzk2KygwfGFbcT4+Ml0pPj4yXSk+PjNdLFN0PStfW0ErNjQ+PjNdLS41KitfW0ErMzI+PjNdLEE9dysxNnwwLGFbdz4+Ml09YVtwZT4+Ml0sYVt3KzQ+PjJdPWFbcGUr''@;'; put 'put ''ND4+Ml0sYVt3Kzg+PjJdPWFbcGUrOD4+Ml0sYVt3KzEyPj4yXT1hW3BlKzEyPj4yXSxhW0E+PjJdPWFbcGU+PjJdLGFbQSs0Pj4yXT1hW3BlKzQ+PjJdLGFbQSs4Pj4yXT1hW3BlKzg+PjJdLGFbQSsxMj4+Ml09YVtwZSsxMj4+Ml0sQT13KzMyfDAsT2U9dys0OHwwLEhlPXcrNjR8MCxfW3cr''@;'; put 'put ''NjQ+PjNdPWF0LF9bdys3Mj4+M109U3QsYVtPZT4+Ml09YVtIZT4+Ml0sYVtPZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbT2UrOD4+Ml09YVtIZSs4Pj4yXSxhW09lKzEyPj4yXT1hW0hlKzEyPj4yXSxhW0E+PjJdPWFbSGU+PjJdLGFbQSs0Pj4yXT1hW0hlKzQ+PjJdLGFbQSs4Pj4yXT1hW0hlKzg+''@;'; put 'put ''PjJdLGFbQSsxMj4+Ml09YVtIZSsxMj4+Ml0sQT13KzgwfDAsYVsoSGU9dys5NnwwKT4+Ml09YVtEPj4yXSxhW0hlKzQ+PjJdPWFbRCs0Pj4yXSxhW0hlKzg+PjJdPWFbRCs4Pj4yXSxhW0hlKzEyPj4yXT1hW0QrMTI+PjJdLGFbQT4+Ml09YVtEPj4yXSxhW0ErND4+Ml09YVtEKzQ+PjJdLGFb''@;'; put 'put ''QSs4Pj4yXT1hW0QrOD4+Ml0sYVtBKzEyPj4yXT1hW0QrMTI+PjJdLGFbTGU+PjJdPTcsQT03LEhlPTE3OzE3PT0oMHxIZSkmJkF1KHAsMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6UmUpKzQwPj4yXSx3LEEsMTcyOTYpLGxlPVZlfWZ1bmN0aW9uIFVGKGwsYyxmLHAsbSxBKXtjfD0wLG18PTAs''@;'; put 'put ''QXw9MDt2YXIgayxNLEQsUixHLHBlLGJlLHJ0LFdlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLHc9MCxiPTAscT0wLGdlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTA7Zm9yKHVyPWxlLGxlPWxlKzM1MnwwLEhlPXVyKzMzNnwwLFNuPXVyKzEyOHwwLE9lPXVy''@;'; put 'put ''KzMwNHwwLFZlPXVyKzI4OHwwLEhuPXVyKzExMnwwLGt0PXVyKzk2fDAsc3Q9dXIrODB8MCxFdD11cis2NHwwLFp0PXVyKzQ4fDAsY3Q9dXIrMzJ8MCxidD11cisxNnwwLGFuPXVyLGdlPTE2KygwfGFbKExlPTE2KygwfGFbKGZ8PTApKygocHw9MCk8PDIpPj4yXSl8MCk+PjJdKXwwLGFbKFJl''@;'; put 'put ''PXVyKzMyMHwwKT4+Ml09YVsocT0xNisoMHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4yXSxhW1JlKzQ+PjJdPWFbcSs0Pj4yXSxhW1JlKzg+PjJdPWFbcSs4Pj4yXSxhW1JlKzEyPj4yXT1hW3ErMTI+PjJdLGFbSGU+PjJdPWFbZ2U+PjJdLGFbSGUrND4+Ml09YVtnZSs0Pj4yXSxhW0hl''@;'; put 'put ''Kzg+PjJdPWFbZ2UrOD4+Ml0sYVtIZSsxMj4+Ml09YVtnZSsxMj4+Ml0sQnUoT2UsUmUsSGUpLGF0PStfW09lPj4zXSxTdD0rX1tPZSs4Pj4zXSxMZT01NisoMHxhW0xlPj4yXSl8MCxhW1JlPj4yXT1hWyhPZT0xNisoMHxhW2MrMTY+PjJdKXwwKT4+Ml0sYVtSZSs0Pj4yXT1hW09lKzQ+PjJd''@;'; put 'put ''LGFbUmUrOD4+Ml09YVtPZSs4Pj4yXSxhW1JlKzEyPj4yXT1hW09lKzEyPj4yXSxhW0hlPj4yXT1hW0xlPj4yXSxhW0hlKzQ+PjJdPWFbTGUrND4+Ml0sYVtIZSs4Pj4yXT1hW0xlKzg+PjJdLGFbSGUrMTI+PjJdPWFbTGUrMTI+PjJdLEJ1KFZlLFJlLEhlKSxXZT0rX1tWZSs4Pj4zXSwoMHxt''@;'; put 'put ''KT4xPyh3PS41KihxZT0rX1s4MCsoMHxhW2w+PjJdKT4+M10pLHFlLz0rKG0rLTF8MCkpOih3PTAscWU9MCksRz0xMD09KDh8QSksTT1Tbis4fDAscT1TbisxNnwwLHBlPS4zMzMzMzMzMzMzMzMzMzMzKigocnQ9K19bVmU+PjNdKSsyKmF0KSxnZT1TbiszMnwwLGJlPS4zMzMzMzMzMzMzMzMz''@;'; put 'put ''MzMzKigyKnJ0K2F0KSxEPVNuKzI0fDAsT2U9U24rNDh8MCxMZT1Tbis2NHwwLFJlPVNuKzgwfDAsSGU9U24rOTZ8MCxWZT1TbisxMTJ8MCxrPVNuKzEyOHwwLFI9U24rMTM2fDAsdz1TdC13LGM9MDshKCgwfGMpPj0oMHxtKSk7KWI9MHxhW2YrKGMrcDw8Mik+PjJdLF9bU24+PjNdPWF0LF9b''@;'; put 'put ''TT4+M109U3QsRz8oVzUoSG4scGUsdyksYVtxPj4yXT1hW0huPj4yXSxhW3ErND4+Ml09YVtIbis0Pj4yXSxhW3ErOD4+Ml09YVtIbis4Pj4yXSxhW3ErMTI+PjJdPWFbSG4rMTI+PjJdLFc1KGt0LGJlLHcpLGFbZ2U+PjJdPWFba3Q+PjJdLGFbZ2UrND4+Ml09YVtrdCs0Pj4yXSxhW2dlKzg+''@;'; put 'put ''PjJdPWFba3QrOD4+Ml0sYVtnZSsxMj4+Ml09YVtrdCsxMj4+Ml0sbD00LEE9Myk6KF9bcT4+M109YXQsX1tEPj4zXT1TdCxXNShzdCxwZSx3KSxhW2dlPj4yXT1hW3N0Pj4yXSxhW2dlKzQ+PjJdPWFbc3QrND4+Ml0sYVtnZSs4Pj4yXT1hW3N0Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbc3QrMTI+''@;'; put 'put ''PjJdLFc1KEV0LHBlLHcpLGFbT2U+PjJdPWFbRXQ+PjJdLGFbT2UrND4+Ml09YVtFdCs0Pj4yXSxhW09lKzg+PjJdPWFbRXQrOD4+Ml0sYVtPZSsxMj4+Ml09YVtFdCsxMj4+Ml0sVzUoWnQscGUsdyksYVtMZT4+Ml09YVtadD4+Ml0sYVtMZSs0Pj4yXT1hW1p0KzQ+PjJdLGFbTGUrOD4+Ml09''@;'; put 'put ''YVtadCs4Pj4yXSxhW0xlKzEyPj4yXT1hW1p0KzEyPj4yXSxXNShjdCxiZSx3KSxhW1JlPj4yXT1hW2N0Pj4yXSxhW1JlKzQ+PjJdPWFbY3QrND4+Ml0sYVtSZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbUmUrMTI+PjJdPWFbY3QrMTI+PjJdLFc1KGJ0LGJlLHcpLGFbSGU+PjJdPWFbYnQ+PjJdLGFb''@;'; put 'put ''SGUrND4+Ml09YVtidCs0Pj4yXSxhW0hlKzg+PjJdPWFbYnQrOD4+Ml0sYVtIZSsxMj4+Ml09YVtidCsxMj4+Ml0sVzUoYW4sYmUsdyksYVtWZT4+Ml09YVthbj4+Ml0sYVtWZSs0Pj4yXT1hW2FuKzQ+PjJdLGFbVmUrOD4+Ml09YVthbis4Pj4yXSxhW1ZlKzEyPj4yXT1hW2FuKzEyPj4yXSxf''@;'; put 'put ''W2s+PjNdPXJ0LF9bUj4+M109V2UsbD0xMCxBPTkpLF9bU24rKEE8PDQpPj4zXT1ydCxfW1NuKyhBPDw0KSs4Pj4zXT1XZSxBdShiLDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQwPj4yXSxTbixsLDE3Mjk2KSx3Kz1xZSxjPWMrMXwwO2xlPXVyfWZ1bmN0aW9uIENZKGwsYyxm''@;'; put 'put ''LHAsbSxBLHcsYil7cHw9MCxtfD0wLGJ8PTA7dmFyIHBlLGdlLGJlLE9lLExlLFJlLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wO2ZvcihSZT1sZSxsZT1sZSsxNDQwfDAsZ2U9UmUrMTM5MnwwLE9lPVJlKzE0MjR8MCxiZT1SZSxHPTB8YVso''@;'; put 'put ''Mz09KDB8KHE9MyZhWyh3fD0wKT4+Ml0pKT93OncrNDh8MCkrNDA+PjJdLHE9MHxhWygyPT0oMHxxKT93OncrLTQ4fDApKzQwPj4yXSxNPSgwfChEPTB8YVsyMzIrKGs9MHxhW0crMTY+PjJdKT4+Ml0pKTwoMHxpdFsyMzgrKFI9MHxhWzE2KyhsfD0wKT4+Ml0pPj4xXSk/K19baysyND4+M10t''@;'; put 'put ''K19bKEhlPTB8YVtSKzE5Nj4+Ml0pKyhEPDw2KSszMj4+M10tK19bMjQrKDB8YVsxNisoMHxhW2FbSGUrKChSPUQrMXwwKTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXS0rX1tIZSsoUjw8NikrNDA+PjNdOisoMHxhW1IrMjUyPj4yXSkscGU9KygwfGFbMTIrKGN8PTApPj4yXSkvKFZlPSsoMSso''@;'; put 'put ''QXw9MCl8MCkpLE0vPVZlLFFGKGwsYyxmfD0wLEcsdyxMZT1SZSs2OTZ8MCwxKSxRRihsLGMsZixxLHcsYmUsMCkscT1MZSs1MnwwLHc9YmUrNTJ8MCxsPTA9PSgwfGIpLGM9Zis4MHwwLGs9MDshKCgwfGspPj0oMHxBKSk7KXtmb3IoRz0wfGFbcCsoayttPDwyKT4+Ml0scnQ9K19bTGUrNTYr''@;'; put 'put ''KChEPShSPTB8YVtxPj4yXSktMXwwKTw8NSkrOD4+M10sV2U9K19bTGUrNTYrKEQ8PDUpKzE2Pj4zXSxfWzE5MjE1XT1hdD0rX1tMZSs1NisoRDw8NSk+PjNdLF9bMTkyMThdPXJ0LF9bMTkyMTddPVdlKyhxZT1wZSooVmU9KygwfChrPWsrMXwwKSkpKSxfWzE5MjE2XT1WZT1ydC1NKlZlLF9b''@;'; put 'put ''MTkyMTldPWF0LF9bMTkyMjJdPVZlLF9bMTkyMjFdPWF0PStfW2JlKzU2KygoRD0oMHxhW3c+PjJdKS0xfDApPDw1KSsxNj4+M10sX1sxOTIyMF09VmUtTSxydD0rX1tiZSs1NisoRDw8NSk+PjNdLFdlPStfW2JlKzU2KyhEPDw1KSs4Pj4zXSxfWzE5MjI1XT1hdCxfWzE5MjI2XT1XZSxfWzE5''@;'; put 'put ''MjIzXT1ydC1xZSxfWzE5MjI0XT1WZSxEPTA7Oyl7aWYoKDB8RCk+PSgwfFIpKXtEPTA7YnJlYWt9YVtnZT4+Ml09YVsoUj1MZSs1NisoRDw8NSl8MCk+PjJdLGFbZ2UrND4+Ml09YVtSKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUisxMj4+Ml0sYVtnZSsxNj4+''@;'; put 'put ''Ml09YVtSKzE2Pj4yXSxhW2dlKzIwPj4yXT1hW1IrMjA+PjJdLGFbZ2UrMjQ+PjJdPWFbUisyND4+Ml0sYVtnZSsyOD4+Ml09YVtSKzI4Pj4yXSxKMyhmLGdlKSxEPUQrMXwwLFI9MHxhW3E+PjJdfWZvcig7MyE9KDB8RCk7KWFbZ2U+PjJdPWFbKEhlPTE1MzcyMCsoRDw8NSl8MCk+PjJdLGFb''@;'; put 'put ''Z2UrND4+Ml09YVtIZSs0Pj4yXSxhW2dlKzg+PjJdPWFbSGUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtnZSsxNj4+Ml09YVtIZSsxNj4+Ml0sYVtnZSsyMD4+Ml09YVtIZSsyMD4+Ml0sYVtnZSsyND4+Ml09YVtIZSsyND4+Ml0sYVtnZSsyOD4+Ml09YVtIZSsyOD4+Ml0sSjMo''@;'; put 'put ''ZixnZSksRD1EKzF8MDtmb3IoUj0wfGFbdz4+Ml07RD1SKy0xfDAsISgoMHxSKTw9MCk7KWFbZ2U+PjJdPWFbKFI9YmUrNTYrKEQ8PDUpfDApPj4yXSxhW2dlKzQ+PjJdPWFbUis0Pj4yXSxhW2dlKzg+PjJdPWFbUis4Pj4yXSxhW2dlKzEyPj4yXT1hW1IrMTI+PjJdLGFbZ2UrMTY+PjJdPWFb''@;'; put 'put ''UisxNj4+Ml0sYVtnZSsyMD4+Ml09YVtSKzIwPj4yXSxhW2dlKzI0Pj4yXT1hW1IrMjQ+PjJdLGFbZ2UrMjg+PjJdPWFbUisyOD4+Ml0sSjMoZixnZSksUj1EO2lmKEQ9bD8wfGdrKGYsT2UpOjB8X3koZixPZSksIShSPTB8YVtPZT4+Ml0pKWJyZWFrO0F1KEcsMHxhWygyPT0oMyZhW0c+PjJd''@;'; put 'put ''fDApP0c6RystNDh8MCkrNDA+PjJdLEQsUiwxNzI5NiksYVtjPj4yXT0wfWxlPVJlfWZ1bmN0aW9uIHVJKGwsYyxmLHAsbSxBLHcpe2Z8PTAsQXw9MCx3fD0wO3ZhciBiLGssTSxELEcsUj0wO0Q9bGUsbGU9bGUrMTI4fDAsYj1EKzk2fDAsaz1EKzY0fDAsTT1ELEc1KFI9RCszMnwwLGx8PTAs''@;'; put 'put ''Y3w9MCxwfD0wLDAsbXw9MCksYVtBPj4yXT1hW1I+PjJdLGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtBKzg+PjJdPWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVtBKzE2Pj4yXT1hW1IrMTY+PjJdLGFbQSsyMD4+Ml09YVtSKzIwPj4yXSxhW0ErMjQ+PjJdPWFbUisyND4+Ml0sYVtB''@;'; put 'put ''KzI4Pj4yXT1hW1IrMjg+PjJdLGFbaz4+Ml09YVtSPj4yXSxhW2srND4+Ml09YVtSKzQ+PjJdLGFbays4Pj4yXT1hW1IrOD4+Ml0sYVtrKzEyPj4yXT1hW1IrMTI+PjJdLGFbaysxNj4+Ml09YVtSKzE2Pj4yXSxhW2srMjA+PjJdPWFbUisyMD4+Ml0sYVtrKzI0Pj4yXT1hW1IrMjQ+PjJdLGFb''@;'; put 'put ''aysyOD4+Ml09YVtSKzI4Pj4yXSxhW0ErNDg+PjJdPTQsdzw8MjQ+PjI0P25EKGYsbSwyLEEsMCk6ckQoZixtLDIsQSwwKSxfWyhSPWsrMjR8MCk+PjNdPStfW0ErNTYrKChtPSgwfGFbKGM9QSs1MnwwKT4+Ml0pLTF8MCk8PDUpKzI0Pj4zXSxfWyh3PWsrOHwwKT4+M109K19bQSs1NisobTw8''@;'; put 'put ''NSkrOD4+M10sRz0rX1soMHxhWzE5NisoMHxhW2wrMTY+PjJdKT4+Ml0pKyhhWzIzMisocD0wfGFbcCsxNj4+Ml0pPj4yXTw8NikrMjQ+PjNdKyArX1twKzI0Pj4zXSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtr''@;'; put 'put ''KzEyPj4yXSxhW2IrMTY+PjJdPWFbaysxNj4+Ml0sYVtiKzIwPj4yXT1hW2srMjA+PjJdLGFbYisyND4+Ml09YVtrKzI0Pj4yXSxhW2IrMjg+PjJdPWFbaysyOD4+Ml0sS0EoTSxiLDQsRyksYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxh''@;'; put 'put ''W2srMTI+PjJdPWFbTSsxMj4+Ml0sYVtrKzE2Pj4yXT1hW00rMTY+PjJdLGFbaysyMD4+Ml09YVtNKzIwPj4yXSxhW2srMjQ+PjJdPWFbTSsyND4+Ml0sYVtrKzI4Pj4yXT1hW00rMjg+PjJdLCtfW2s+PjNdPCtfW2srMTY+PjNdJiYrX1t3Pj4zXTwrX1tSPj4zXSYmKGFbYz4+Ml09MSsoUj0w''@;'; put 'put ''fGFbYz4+Ml0pLGFbKFI9QSs1NisoUjw8NSl8MCk+PjJdPWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0Pj4yXSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtrKzEyPj4yXSxhW1IrMTY+PjJdPWFbaysxNj4+Ml0sYVtSKzIwPj4yXT1hW2srMjA+PjJdLGFbUisyND4+Ml09YVtrKzI0''@;'; put 'put ''Pj4yXSxhW1IrMjg+PjJdPWFbaysyOD4+Ml0pLGxlPUR9ZnVuY3Rpb24gUUYobCxjLGYscCxtLEEsdyl7Znw9MCxBfD0wLHd8PTA7dmFyIGIsayxNLEQsRyxSPTA7RD1sZSxsZT1sZSsxMjh8MCxiPUQrOTZ8MCxrPUQrNjR8MCxNPUQsRzUoUj1EKzMyfDAsbHw9MCxjfD0wLHB8PTAsMCxtfD0w''@;'; put 'put ''KSxhW0E+PjJdPWFbUj4+Ml0sYVtBKzQ+PjJdPWFbUis0Pj4yXSxhW0ErOD4+Ml09YVtSKzg+PjJdLGFbQSsxMj4+Ml09YVtSKzEyPj4yXSxhW0ErMTY+PjJdPWFbUisxNj4+Ml0sYVtBKzIwPj4yXT1hW1IrMjA+PjJdLGFbQSsyND4+Ml09YVtSKzI0Pj4yXSxhW0ErMjg+PjJdPWFbUisyOD4+''@;'; put 'put ''Ml0sYVtrPj4yXT1hW1I+PjJdLGFbays0Pj4yXT1hW1IrND4+Ml0sYVtrKzg+PjJdPWFbUis4Pj4yXSxhW2srMTI+PjJdPWFbUisxMj4+Ml0sYVtrKzE2Pj4yXT1hW1IrMTY+PjJdLGFbaysyMD4+Ml09YVtSKzIwPj4yXSxhW2srMjQ+PjJdPWFbUisyND4+Ml0sYVtrKzI4Pj4yXT1hW1IrMjg+''@;'; put 'put ''PjJdLGFbQSs0OD4+Ml09MSx3PDwyND4+MjQ/bkQoZixtLDIsQSwwKTpyRChmLG0sMixBLDApLF9bKFI9aysyNHwwKT4+M109K19bQSs1NisoKG09KDB8YVsoYz1BKzUyfDApPj4yXSktMXwwKTw8NSkrMjQ+PjNdLF9bKHc9ays4fDApPj4zXT0rX1tBKzU2KyhtPDw1KSs4Pj4zXSxHPStfWzI0''@;'; put 'put ''KyhwPTB8YVtwKzE2Pj4yXSk+PjNdLStfWygwfGFbMTk2KygwfGFbbCsxNj4+Ml0pPj4yXSkrKGFbcCsyMzI+PjJdPDw2KSsyND4+M10sYVtiPj4yXT1hW2s+PjJdLGFbYis0Pj4yXT1hW2srND4+Ml0sYVtiKzg+PjJdPWFbays4Pj4yXSxhW2IrMTI+PjJdPWFbaysxMj4+Ml0sYVtiKzE2Pj4y''@;'; put 'put ''XT1hW2srMTY+PjJdLGFbYisyMD4+Ml09YVtrKzIwPj4yXSxhW2IrMjQ+PjJdPWFbaysyND4+Ml0sYVtiKzI4Pj4yXT1hW2srMjg+PjJdLEtBKE0sYiwxLEcpLGFbaz4+Ml09YVtNPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+''@;'; put 'put ''PjJdLGFbaysxNj4+Ml09YVtNKzE2Pj4yXSxhW2srMjA+PjJdPWFbTSsyMD4+Ml0sYVtrKzI0Pj4yXT1hW00rMjQ+PjJdLGFbaysyOD4+Ml09YVtNKzI4Pj4yXSwrX1trPj4zXTwrX1trKzE2Pj4zXSYmK19bdz4+M108K19bUj4+M10mJihhW2M+PjJdPTErKFI9MHxhW2M+PjJdKSxhWyhSPUEr''@;'; put 'put ''NTYrKFI8PDUpfDApPj4yXT1hW2s+PjJdLGFbUis0Pj4yXT1hW2srND4+Ml0sYVtSKzg+PjJdPWFbays4Pj4yXSxhW1IrMTI+PjJdPWFbaysxMj4+Ml0sYVtSKzE2Pj4yXT1hW2srMTY+PjJdLGFbUisyMD4+Ml09YVtrKzIwPj4yXSxhW1IrMjQ+PjJdPWFbaysyND4+Ml0sYVtSKzI4Pj4yXT1h''@;'; put 'put ''W2srMjg+PjJdKSxsZT1EfWZ1bmN0aW9uIFc1KGwsYyxmKXtmPStmLF9bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIGtZKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxBfD0wLHd8PTA7dmFyIExlLFJlLFZlLHFlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhu''@;'; put 'put ''LHVyLEhyLEVyLGZyLERyLEpyLExyLGwwLFZpLE9pLFJvLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLEhlPTAscnQ9MCxXZT0wLGxvPTA7Zm9yKFJvPWxlLGxlPWxlKzI4OHwwLGZyPVJvKzI1NnwwLEVyPVJvKzI0MHwwLEhyPVJvKzIyNHwwLGwwPVJv''@;'; put 'put ''KzI4MHwwLFZpPVJvKzI3MnwwLE9pPVJvKzMyfDAsRHI9Um8rMTZ8MCxKcj1SbyxrPVJvKzIwOHwwLE09Um8rMTkyfDAsRD0wfGFbKGZ8PTApKygocHw9MCk8PDIpPj4yXSxMcj0wfHZyKChtfD0wKTw8MiksYj0wOyEoKDB8Yik+PSgwfG0pKTspYVtMcisoYjw8Mik+PjJdPWFbZisoYitwPDwy''@;'; put 'put ''KT4+Ml0sYj1iKzF8MDtmb3IoeDEoTHIsbSw0LDU5KSxXZT0xNisoMHxhWyhEPUQrMTZ8MCk+PjJdKXwwLGFbRXI+PjJdPWFbKHA9MTYrKDB8YVsoZj1sKzE2fDApPj4yXSl8MCk+PjJdLGFbRXIrND4+Ml09YVtwKzQ+PjJdLGFbRXIrOD4+Ml09YVtwKzg+PjJdLGFbRXIrMTI+PjJdPWFbcCsx''@;'; put 'put ''Mj4+Ml0sYVtmcj4+Ml09YVtXZT4+Ml0sYVtmcis0Pj4yXT1hW1dlKzQ+PjJdLGFbZnIrOD4+Ml09YVtXZSs4Pj4yXSxhW2ZyKzEyPj4yXT1hW1dlKzEyPj4yXSxCdShrLEVyLGZyKSxhW0RyPj4yXT1hW2s+PjJdLGFbRHIrND4+Ml09YVtrKzQ+PjJdLGFbRHIrOD4+Ml09YVtrKzg+PjJdLGFb''@;'; put 'put ''RHIrMTI+PjJdPWFbaysxMj4+Ml0sRD01NisoMHxhW0Q+PjJdKXwwLGFbRXI+PjJdPWFbKHA9MTYrKDB8YVsoV2U9YysxNnwwKT4+Ml0pfDApPj4yXSxhW0VyKzQ+PjJdPWFbcCs0Pj4yXSxhW0VyKzg+PjJdPWFbcCs4Pj4yXSxhW0VyKzEyPj4yXT1hW3ArMTI+PjJdLGFbZnI+PjJdPWFbRD4+''@;'; put 'put ''Ml0sYVtmcis0Pj4yXT1hW0QrND4+Ml0sYVtmcis4Pj4yXT1hW0QrOD4+Ml0sYVtmcisxMj4+Ml09YVtEKzEyPj4yXSxCdShNLEVyLGZyKSxhW0pyPj4yXT1hW00+PjJdLGFbSnIrND4+Ml09YVtNKzQ+PjJdLGFbSnIrOD4+Ml09YVtNKzg+PjJdLGFbSnIrMTI+PjJdPWFbTSsxMj4+Ml0sT2U9''@;'; put 'put ''LjUqKGJlPShSZT0rX1tKcj4+M10tK19bODgrKDB8YVtXZT4+Ml0pPj4zXSkrKExlPStfWzk2KygwfGFbZj4+Ml0pPj4zXSsgK19bRHI+PjNdKSksV2U9MHxhW0xyPj4yXSxhW09pPj4yXT1hW0RyPj4yXSxhW09pKzQ+PjJdPWFbRHIrND4+Ml0sYVtPaSs4Pj4yXT1hW0RyKzg+PjJdLGFbT2kr''@;'; put 'put ''MTI+PjJdPWFbRHIrMTI+PjJdLGFbKEQ9T2krMTZ8MCk+PjJdPWFbRHI+PjJdLGFbRCs0Pj4yXT1hW0RyKzQ+PjJdLGFbRCs4Pj4yXT1hW0RyKzg+PjJdLGFbRCsxMj4+Ml09YVtEcisxMj4+Ml0sYVsoZj1PaSszMnwwKT4+Ml09YVtKcj4+Ml0sYVtmKzQ+PjJdPWFbSnIrND4+Ml0sYVtmKzg+''@;'; put 'put ''PjJdPWFbSnIrOD4+Ml0sYVtmKzEyPj4yXT1hW0pyKzEyPj4yXSxhWyhwPU9pKzQ4fDApPj4yXT1hW0pyPj4yXSxhW3ArND4+Ml09YVtKcis0Pj4yXSxhW3ArOD4+Ml09YVtKcis4Pj4yXSxhW3ArMTI+PjJdPWFbSnIrMTI+PjJdLEF1KFdlLDB8YVsoMj09KDMmYVtXZT4+Ml18MCk/V2U6V2Ur''@;'; put 'put ''LTQ4fDApKzQwPj4yXSxPaSw0LDE3Mjk2KSxfWzU2KyhXZT0wfGFbOTYrKDB8YVtXZSsxNj4+Ml0pPj4yXSk+PjNdPU9lLF9bV2UrNjQ+PjNdPS41Kig2KyhwZT0rX1tXZSszMj4+M10pKSsocT0rX1soVmU9RHIrOHwwKT4+M10pLGZlW1dlKzgxPj4wXT0xLHFlPS41KihiZS0ocnQ9K19bV2Ur''@;'; put 'put ''MjQ+PjNdKSkscnQ9LjUqKHJ0K2JlKSxXZT1PaSsyNHwwLGF0PU9pKzQwfDAsU3Q9T2krNTZ8MCxrdD1PaSs2NHwwLHN0PUpyKzh8MCxFdD1PaSs3MnwwLFp0PU9pKzgwfDAsY3Q9T2krODh8MCxidD1PaSs5NnwwLGFuPU9pKzEwNHwwLFNuPU9pKzExMnwwLEhuPU9pKzEyMHwwLHVyPWwwKzR8''@;'; put 'put ''MCxNPTY9PSgwfEEpJjEsRz0wLFI9MCxwZSs9cSs9MyxrPTE7Oyl7aWYoKDB8ayk+PSgwfHcpKXtIZT02O2JyZWFrfWlmKGM9MHxhW0xyKyhrPDwyKT4+Ml0sMSZrPyhsPTB8YVs5NisoMHxhWyhiPWMrMTZ8MCk+PjJdKT4+Ml0sMT09KDB8aykmJihHPS41KigoUj0rX1tsKzI0Pj4zXSkrYmUp''@;'; put 'put ''LFI9LjUqKGJlLVIpKSxxPXErLTYtK19bbCszMj4+M10sYVtPaT4+Ml09YVtEcj4+Ml0sYVtPaSs0Pj4yXT1hW0RyKzQ+PjJdLGFbT2krOD4+Ml09YVtEcis4Pj4yXSxhW09pKzEyPj4yXT1hW0RyKzEyPj4yXSxfW0Q+PjNdPStfW0RyPj4zXSxfW1dlPj4zXT1nZT1xKy02LF9bZj4+M109K19b''@;'; put 'put ''SnI+PjNdLF9bYXQ+PjNdPWdlLGFbcD4+Ml09YVtKcj4+Ml0sYVtwKzQ+PjJdPWFbSnIrND4+Ml0sYVtwKzg+PjJdPWFbSnIrOD4+Ml0sYVtwKzEyPj4yXT1hW0pyKzEyPj4yXSxfW2t0Pj4zXT1HLF9bRXQ+PjNdPStfW3N0Pj4zXSxfW1p0Pj4zXT1HLF9bY3Q+PjNdPXEsX1tidD4+M109Uixf''@;'; put 'put ''W2FuPj4zXT1xLF9bU24+PjNdPVIsX1tIbj4+M109K19bVmU+PjNdLGdlPS41KitfWzMyKygwfGFbOTYrKDB8YVtiPj4yXSk+PjJdKT4+M10rcSk6KGFbT2k+PjJdPWFbRHI+PjJdLGFbT2krND4+Ml09YVtEcis0Pj4yXSxhW09pKzg+PjJdPWFbRHIrOD4+Ml0sYVtPaSsxMj4+Ml09YVtEcisx''@;'; put 'put ''Mj4+Ml0sX1tEPj4zXT1xZSxfW1dlPj4zXT0rX1tWZT4+M10sX1tmPj4zXT1xZSxfW2F0Pj4zXT1wZSxfW3A+PjNdPXJ0LF9bU3Q+PjNdPXBlLF9ba3Q+PjNdPXJ0LF9bRXQ+PjNdPWdlPStfW3N0Pj4zXSxfW1p0Pj4zXT1sbz0rX1tKcj4+M10sX1tjdD4+M109Z2UsX1tidD4+M109bG8sX1th''@;'; put 'put ''bj4+M109bG89cGUrNixfW1NuPj4zXT0rX1tEcj4+M10sX1tIbj4+M109bG8sZ2U9bG8rLjUqKHBlPStfWzMyKygwfGFbOTYrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M10pLHBlPWxvK3BlKSxhW3VyPj4yXT04LGFbbDA+PjJdPU9pLGFbSHI+PjJdPWFbRHI+PjJdLGFbSHIrND4+Ml09YVtEcis0''@;'; put 'put ''Pj4yXSxhW0hyKzg+PjJdPWFbRHIrOD4+Ml0sYVtIcisxMj4+Ml09YVtEcisxMj4+Ml0sYVtFcj4+Ml09YVtKcj4+Ml0sYVtFcis0Pj4yXT1hW0pyKzQ+PjJdLGFbRXIrOD4+Ml09YVtKcis4Pj4yXSxhW0VyKzEyPj4yXT1hW0pyKzEyPj4yXSxhW2ZyPj4yXT1hW2wwPj4yXSxhW2ZyKzQ+PjJd''@;'; put 'put ''PWFbbDArND4+Ml0sYj0wfCRJKEhyLEVyLGZyLFZpLE0pLCEobD0wfGFbVmk+PjJdKSlicmVhaztfWzU2KyhBPTB8YVs5NisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXT1PZSxfW0ErNjQ+PjNdPWdlLGZlW0ErODE+PjBdPTEsQXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0''@;'; put 'put ''MD4+Ml0sYixsLDE3Mjk2KSxrPWsrMXwwfWU6ZG97aWYoNj09KDB8SGUpKXtmb3IoT2U9LjMzMzMzMzMzMzMzMzMzMzMqKFJlKzIqTGUpLGJlPS4zMzMzMzMzMzMzMzMzMzMzKigyKlJlK0xlKTshKCgwfGspPj0oMHxtKSk7KXtpZihjPTB8YVtMcisoazw8Mik+PjJdLDEmaz8oZ2U9KEhlPTE9''@;'; put 'put ''PSgwfGspKT9PZTpSLEc9SGU/YmU6RyxSPXErLTYsYVtPaT4+Ml09YVtEcj4+Ml0sYVtPaSs0Pj4yXT1hW0RyKzQ+PjJdLGFbT2krOD4+Ml09YVtEcis4Pj4yXSxhW09pKzEyPj4yXT1hW0RyKzEyPj4yXSxfW0Q+PjNdPStfW0RyPj4zXSxfW1dlPj4zXT1xKz0tMTIsX1tmPj4zXT0rX1tKcj4+''@;'; put 'put ''M10sX1thdD4+M109cSxhW3A+PjJdPWFbSnI+PjJdLGFbcCs0Pj4yXT1hW0pyKzQ+PjJdLGFbcCs4Pj4yXT1hW0pyKzg+PjJdLGFbcCsxMj4+Ml09YVtKcisxMj4+Ml0sX1trdD4+M109RyxfW0V0Pj4zXT0rX1tzdD4+M10sX1tadD4+M109RyxfW2N0Pj4zXT1SLF9bYnQ+PjNdPWdlLF9bYW4+''@;'; put 'put ''PjNdPVIsX1tTbj4+M109Z2UscT1SLFI9K19bVmU+PjNdKTooYVtPaT4+Ml09YVtEcj4+Ml0sYVtPaSs0Pj4yXT1hW0RyKzQ+PjJdLGFbT2krOD4+Ml09YVtEcis4Pj4yXSxhW09pKzEyPj4yXT1hW0RyKzEyPj4yXSxfW0Q+PjNdPXFlLF9bV2U+PjNdPStfW1ZlPj4zXSxfW2Y+PjNdPXFlLF9b''@;'; put 'put ''YXQ+PjNdPXBlLF9bcD4+M109cnQsX1tTdD4+M109cGUsX1trdD4+M109cnQsX1tFdD4+M109Z2U9K19bc3Q+PjNdLF9bWnQ+PjNdPWxvPStfW0pyPj4zXSxfW2N0Pj4zXT1nZSxfW2J0Pj4zXT1sbyxfW2FuPj4zXT1sbz1wZSs2LF9bU24+PjNdPStfW0RyPj4zXSxwZT1sbyxnZT1SLFI9bG8p''@;'; put 'put ''LF9bSG4+PjNdPVIsYVt1cj4+Ml09OCxhW2wwPj4yXT1PaSxhW0hyPj4yXT1hW0RyPj4yXSxhW0hyKzQ+PjJdPWFbRHIrND4+Ml0sYVtIcis4Pj4yXT1hW0RyKzg+PjJdLGFbSHIrMTI+PjJdPWFbRHIrMTI+PjJdLGFbRXI+PjJdPWFbSnI+PjJdLGFbRXIrND4+Ml09YVtKcis0Pj4yXSxhW0Vy''@;'; put 'put ''Kzg+PjJdPWFbSnIrOD4+Ml0sYVtFcisxMj4+Ml09YVtKcisxMj4+Ml0sYVtmcj4+Ml09YVtsMD4+Ml0sYVtmcis0Pj4yXT1hW2wwKzQ+PjJdLGI9MHwkSShIcixFcixmcixWaSxNKSwhKGw9MHxhW1ZpPj4yXSkpYnJlYWsgZTtBdShjLDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDAp''@;'; put 'put ''KzQwPj4yXSxiLGwsMTcyOTYpLGs9aysxfDAsUj1nZX1GdChMcil9fXdoaWxlKDApO2xlPVJvfWZ1bmN0aW9uIFNZKGwsYyl7Y3w9MDt2YXIgbSxBLGIsZj0wLHA9MCx3PTA7Zm9yKG09bGUsbGU9bGUrMTZ8MCxwPW0sdz0wPT0oMHxTYyhsfD0wKSksZmVbcD4+MF09MHxmZVsodz13PzE4NTky''@;'; put 'put ''OjE4NTg0KT4+MF0sZmVbcCsxPj4wXT0wfGZlW3crMT4+MF0sZmVbcCsyPj4wXT0wfGZlW3crMj4+MF0sZmVbcCszPj4wXT0wfGZlW3crMz4+MF0saDAocD0wfG9jKDg1NDkzLHAsMCksMTM3NDgzLDI4MCwxKSxzaShwLDAsODcxNzEsMTk1MDU5KSx3PTB8dnIoOTYpLGFbOCsoZj0wfGFbcCsx''@;'; put 'put ''Nj4+Ml0pPj4yXT13LF9bdz4+M109K19bKGI9MHxhWzgrKEE9MHxhW2wrMTY+PjJdKT4+Ml0pPj4zXSxfW3crMjQ+PjNdPStfW2IrMjQ+PjNdLGZlW2YrMTE1Pj4wXT0wfGZlW0ErMTE1Pj4wXSxhW2YrMTE2Pj4yXT0xJmFbQSsxMTY+PjJdXjEsYVtmKzI0OD4+Ml09YVtBKzI0OD4+Ml0sYVtm''@;'; put 'put ''KzI1Mj4+Ml09YVtBKzI1Mj4+Ml0sZj0wfE5zKDB8ZGkobCksMSwwKTtmOylzaShwLDEsMHxhW2YrOD4+Ml0sMHxhW2YrMTI+PjJdKSxmPTB8TnMoMHxkaShsKSwxLGYpO2ZvcihmPTB8TnMoMHxkaShsKSwyLDApO2Y7KXNpKHAsMiwwfGFbZis4Pj4yXSwwfGFbZisxMj4+Ml0pLGY9MHxOcygw''@;'; put 'put ''fGRpKGwpLDIsZik7cmV0dXJuIDB8c2kocCwyLDExMTQ2NCwwKXx8c2kocCwyLDExMTQ2NCwxOTUwNTkpLDB8c2kocCwyLDExMTQ1NSwwKXx8c2kocCwyLDExMTQ1NSwxOTUwNTkpLGZ1bmN0aW9uIHYwZShsLGMpe2x8PTAsYVsoY3w9MCk+PjJdPWFbNDcxODldLGFbYys0Pj4yXT1hWzQ3MTkz''@;'; put 'put ''XSxhW2MrOD4+Ml09YVs0NzE5NF0sYVtjKzEyPj4yXT1hWzQ3MTc0XSxhW2MrMTY+PjJdPWFbNDcxNzVdLGFbYysyMD4+Ml09YVs0NzE4MV0sYVtjKzI0Pj4yXT1hWzQ3MTgwXSxhW2MrMjg+PjJdPWFbNDcxNzldLGFbYyszMj4+Ml09YVs0NzIwNV0sYVtjKzM2Pj4yXT1hWzQ3MTk3XSxhW2Mr''@;'; put 'put ''NDA+PjJdPWFbNDcxODJdLGFbYys0ND4+Ml09YVs0NzE5Ml0sYVtjKzQ4Pj4yXT1hWzQ3MjAxXSxhW2MrNTI+PjJdPWFbNDcyMDBdLGFbYys1Nj4+Ml09YVs0NzE5OV0sYVtjKzYwPj4yXT1hWzQ3MjA0XSxhW2MrNjQ+PjJdPWFbNDcxOThdLGFbYys2OD4+Ml09YVs0NzE4M10sYVtjKzcyPj4y''@;'; put 'put ''XT1hWzQ3MTQ1XSxhW2MrNzY+PjJdPWFbNDcxNDZdLGFbYys4MD4+Ml09YVs0NzE0N10sYVtjKzg0Pj4yXT1hWzQ3MTU3XSxhW2MrODg+PjJdPWFbNDcxNTBdLGFbYys5Mj4+Ml09YVs0NzE1MV0sYVtjKzk2Pj4yXT1hWzQ3MTUyXSxhW2MrMTAwPj4yXT1hWzQ3MTU0XSxhW2MrMTA0Pj4yXT1h''@;'; put 'put ''WzQ3MTU1XSxhW2MrMTA4Pj4yXT1hWzQ3MTU4XSxhW2MrMTEyPj4yXT1hWzQ3MTYxXSxhW2MrMTE2Pj4yXT1hWzQ3MTU5XSxhW2MrMTIwPj4yXT1hWzQ3MTYwXSxhW2MrMTI0Pj4yXT1hWzQ3MTYzXSxhW2MrMTI4Pj4yXT1hWzQ3MTYyXSxhW2MrMTMyPj4yXT1hWzQ3MTY0XSxhW2MrMTM2Pj4y''@;'; put 'put ''XT1hWzQ3MTY1XSxhW2MrMTQwPj4yXT1hWzQ3MTU2XSxhW2MrMTQ0Pj4yXT1hWzQ3MTY4XSxhW2MrMTUyPj4yXT1hWzQ3MTM4XSxhW2MrMTQ4Pj4yXT1hWzQ3MTQwXSxhWzQ3MTg5XT0wLGFbNDcxOTNdPTB8c2kobCwyLDg3NDEyLDApLGFbNDcxOTRdPTB8c2kobCwyLDg3NDIxLDApLGM9MHxz''@;'; put 'put ''aShsLDIsMTAxNTQxLDApLGFbNDcxNzRdPWMsY3x8KGFbNDcxNzRdPTB8c2kobCwyLDEwMTU0MSwxOTUwNTkpKSxhWzQ3MTc1XT0wLGFbNDcxODFdPTAsYVs0NzE4MF09MHxzaShsLDIsMTAxNDM3LDApLGFbNDcxNzldPTB8c2kobCwyLDEwMTQyOCwwKSxhWzQ3MjA1XT0wfHNpKGwsMiwxMDE3''@;'; put 'put ''MTcsMCksYVs0NzE5N109MCxhWzQ3MTgyXT0wfHNpKGwsMiwxMDgyMjQsMCksYVs0NzE5Ml09MHxzaShsLDIsODU0OTgsMCksYVs0NzIwMV09MCxhWzQ3MjAwXT0wfHNpKGwsMiwxMDE2MTcsMCksYVs0NzE5OV09MHxzaShsLDIsMTAxNjAzLDApLGFbNDcyMDRdPTB8c2kobCwyLDEwMTcwOCww''@;'; put 'put ''KSxhWzQ3MTk4XT0wLGFbNDcxODNdPTAsYVs0NzE0NV09MHxzaShsLDEsMTQxMDQ4LDApLGFbNDcxNDZdPTB8c2kobCwxLDE0MTExNiwwKSxhWzQ3MTQ3XT0wfHNpKGwsMSwxMDgyMzAsMCksYVs0NzE1N109MCxhWzQ3MTUwXT0wfHNpKGwsMSwxMDE0MjgsMCksYVs0NzE1MV09MHxzaShsLDEs''@;'; put 'put ''MTAxNDM3LDApLGFbNDcxNTJdPTAsYVs0NzE1NF09MHxzaShsLDEsMTA4MjI0LDApLGFbNDcxNTVdPTAsYVs0NzE1OF09MCxhWzQ3MTYxXT0wfHNpKGwsMSwxMDE0MDksMCksYVs0NzE1OV09MHxzaShsLDEsMTQxMDc2LDApLGFbNDcxNjBdPTB8c2kobCwxLDEwMTQ3MiwwKSxhWzQ3MTYzXT0w''@;'; put 'put ''fHNpKGwsMSwxMDE0ODQsMCksYVs0NzE2Ml09MHxzaShsLDEsMTAxMzQ4LDApLGFbNDcxNjRdPTB8c2kobCwxLDEwMTQ4OSwwKSxhWzQ3MTY1XT0wfHNpKGwsMSw4NTUxMCwwKSxhWzQ3MTU2XT0wLGFbNDcxNjhdPTAsYVs0NzE0MF09MHxzaShsLDAsMTAxNDA5LDApfShwLGMpLGxlPW0sMHxw''@;'; put 'put ''fWZ1bmN0aW9uIFlDKGwsYyl7dmFyIGYscCxtPTA7cmV0dXJuIHA9bGUsbGU9bGUrMTZ8MCxmPXAsaDAobD0wfEdyKGx8PTAsMHx0aShjfD0wKSwxKSwxMzc0NDcsMzA0LDEpLFI2KGMsbCksMj09KDB8JDUoYykpJiYoYz0wfFFuKDMrKDB8VW8oMHxhW2FbMTA0KygwfGFbKG09YysxNnwwKT4+''@;'; put 'put ''Ml0pPj4yXT4+Ml0pKXwwKSxhW2Y+PjJdPWFbYVsxMDQrKDB8YVttPj4yXSk+PjJdPj4yXSxvbyhjLDg1NDg4LGYpLGtjKGwsMTA4MjI0LGMpKSxsZT1wLDB8bH1mdW5jdGlvbiBZNShsLGMsZixwKXtyZXR1cm4gcHw9MCxoMChmPTB8S2EobHw9MCxjfD0wLGZ8PTAsMCwxKSwxMzc0NjAsMTc2''@;'; put 'put ''LDEpLFI2KHAsZiksMHxmfWZ1bmN0aW9uIGNsKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBtLEEsdyxiPTA7dz1sZSxsZT1sZSszMnwwLEE9dysxNnwwLG09dywwfChwfD0wKSYmKGI9K19bYz4+M10sX1tjPj4zXT0rX1socD1jKzh8MCk+PjNdLF9bcD4+M109LWIpLGFbbT4+Ml09YVtj''@;'; put 'put ''Pj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFbQT4+Ml09YVtmPj4yXSxhW0ErND4+Ml09YVtmKzQ+PjJdLGFbQSs4Pj4yXT1hW2YrOD4+Ml0sYVtBKzEyPj4yXT1hW2YrMTI+PjJdLEJ1KGwsbSxBKSxsZT13fWZ1bmN0''@;'; put 'put ''aW9uIFVDKGwsYyl7bHw9MCxhWzQ3MTg5XT1hWyhjfD0wKT4+Ml0sYVs0NzE5M109YVtjKzQ+PjJdLGFbNDcxOTRdPWFbYys4Pj4yXSxhWzQ3MTc0XT1hW2MrMTI+PjJdLGFbNDcxNzVdPWFbYysxNj4+Ml0sYVs0NzE4MV09YVtjKzIwPj4yXSxhWzQ3MTgwXT1hW2MrMjQ+PjJdLGFbNDcxNzld''@;'; put 'put ''PWFbYysyOD4+Ml0sYVs0NzIwNV09YVtjKzMyPj4yXSxhWzQ3MTk3XT1hW2MrMzY+PjJdLGFbNDcxODJdPWFbYys0MD4+Ml0sYVs0NzE5Ml09YVtjKzQ0Pj4yXSxhWzQ3MjAxXT1hW2MrNDg+PjJdLGFbNDcyMDBdPWFbYys1Mj4+Ml0sYVs0NzE5OV09YVtjKzU2Pj4yXSxhWzQ3MjA0XT1hW2Mr''@;'; put 'put ''NjA+PjJdLGFbNDcxOThdPWFbYys2ND4+Ml0sYVs0NzE4M109YVtjKzY4Pj4yXSxhWzQ3MTQ1XT1hW2MrNzI+PjJdLGFbNDcxNDZdPWFbYys3Nj4+Ml0sYVs0NzE0N109YVtjKzgwPj4yXSxhWzQ3MTU3XT1hW2MrODQ+PjJdLGFbNDcxNTBdPWFbYys4OD4+Ml0sYVs0NzE1MV09YVtjKzkyPj4y''@;'; put 'put ''XSxhWzQ3MTUyXT1hW2MrOTY+PjJdLGFbNDcxNTRdPWFbYysxMDA+PjJdLGFbNDcxNTVdPWFbYysxMDQ+PjJdLGFbNDcxNThdPWFbYysxMDg+PjJdLGFbNDcxNjFdPWFbYysxMTI+PjJdLGFbNDcxNTldPWFbYysxMTY+PjJdLGFbNDcxNjBdPWFbYysxMjA+PjJdLGFbNDcxNjNdPWFbYysxMjQ+''@;'; put 'put ''PjJdLGFbNDcxNjJdPWFbYysxMjg+PjJdLGFbNDcxNjRdPWFbYysxMzI+PjJdLGFbNDcxNjVdPWFbYysxMzY+PjJdLGFbNDcxNTZdPWFbYysxNDA+PjJdLGFbNDcxNjhdPWFbYysxNDQ+PjJdLGFbNDcxNDBdPWFbYysxNDg+PjJdLGFbNDcxMzhdPWFbYysxNTI+PjJdLEZ0KGMpLEg1KGwpLEMx''@;'; put 'put ''KGwpfWZ1bmN0aW9uIFU1KGwsYyl7dmFyIGYscCxtLEEsdztyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLHA9Zis4fDAsQT0xNzIrKDB8YVsxNisoY3w9MCk+PjJdKXwwLGFbKG09Zik+PjJdPWFbKHc9MTgwKygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVtw''@;'; put 'put ''Pj4yXT1hW0E+PjJdLGFbcCs0Pj4yXT1hW0ErND4+Ml0sYz0wfEpGKGwsbSxjLHApLGxlPWYsMHxjfWZ1bmN0aW9uIEpGKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wO209MHxhWzQrKGN8PTApPj4yXTtlOmRve2lmKCgwfG0pPjAmJihBPTB8YVtwKzQ+PjJdLCgwfEEpPjAp''@;'; put 'put ''KWlmKCgwfG0pPCgwfEEpKWZvcihtPTB8YVtjPj4yXSxwPTA7Oyl7aWYoIShjPTB8YVttKyhwPDwyKT4+Ml0pKXtjPTA7YnJlYWsgZX1pZigoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT09KDB8ZikpYnJlYWs7cD1wKzF8MH1lbHNlIGZvcihtPTB8YVtwPj4yXSxw''@;'; put 'put ''PTA7Oyl7aWYoIShjPTB8YVttKyhwPDwyKT4+Ml0pKXtjPTA7YnJlYWsgZX1pZigoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pPT0oMHxsKSlicmVhaztwPXArMXwwfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gTVkobCxjKXt2YXIgZixwLG0s''@;'; put 'put ''QSx3O3JldHVybiBmPWxlLGxlPWxlKzE2fDAscD1mKzh8MCxBPTE5NisoMHxhWzE2KyhjfD0wKT4+Ml0pfDAsYVsobT1mKT4+Ml09YVsodz0xODgrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0sYVttKzQ+PjJdPWFbdys0Pj4yXSxhW3A+PjJdPWFbQT4+Ml0sYVtwKzQ+PjJdPWFbQSs0Pj4y''@;'; put 'put ''XSxjPTB8SkYobCxtLGMscCksbGU9ZiwwfGN9ZnVuY3Rpb24gUUMobCl7dmFyIGM9MCxmPTAscD0wLG09MDtyZXR1cm4gcD00OCsobHw9MCl8MCxjPShjPTB8YVsxODArKGY9MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKGMsOCsoYVtm''@;'; put 'put ''KzE4ND4+Ml08PDIpfDApOjB8UW4oOCsoYVtmKzE4ND4+Ml08PDIpfDApLGFbMTgwKygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml09YyxmPTB8YVsxODArKG09MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+''@;'; put 'put ''PjJdLGFbKG09bSsxODR8MCk+PjJdPTErKGM9MHxhW20+PjJdKSxhW2YrKGM8PDIpPj4yXT1sLGFbKDB8YVsxODArKHA9MHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVtwKzE4ND4+Ml08PDIpPj4yXT0wLHA9bCstNDh8MCxjPShmPTB8YVsx''@;'; put 'put ''NzIrKGM9MHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKGYsOCsoYVtjKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtjKzE3Nj4+Ml08PDIpfDApLGFbMTcyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+''@;'; put 'put ''PjJdKT4+Ml09YyxmPTB8YVsxNzIrKGM9MHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKGM9YysxNzZ8MCk+PjJdPTErKG09MHxhW2M+PjJdKSxhW2YrKG08PDIpPj4yXT1sLGFbKDB8YVsxNzIrKG09MHxhWzE2KygwfGFbKDI9PSgzJmFbbD4+''@;'; put 'put ''Ml18MCk/bDpwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVttKzE3Nj4+Ml08PDIpPj4yXT0wLDB8bH1mdW5jdGlvbiBzcChsLGMpe2N8PTA7dmFyIHAsbSxmPTAsQT0wLHc9MCxiPTA7Zm9yKG09MHxhWyhwPTQrKGx8PTApfDApPj4yXSxmPTA7ISgoMHxmKT49KDB8bSkpOyl7aWYoKDB8YVsodz0o''@;'; put 'put ''QT0wfGFbbD4+Ml0pKyhmPDwyKXwwKT4+Ml0pPT0oMHxjKSl7Yj00O2JyZWFrfWY9ZisxfDB9ND09KDB8YikmJihhW3A+PjJdPWI9bSstMXwwLGFbdz4+Ml09YVtBKyhiPDwyKT4+Ml0sYVsoMHxhW2w+PjJdKSsoYjw8Mik+PjJdPTApfWZ1bmN0aW9uIFkzKGwpe2lmKGx8PTApcmV0dXJuIHNw''@;'; put 'put ''KDE4MCsoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKXwwLGwpLHZvaWQgc3AoMTcyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKXwwLGwpO1ByKDg1NTUxLDg1NTYxLDExNyw4NTU3MCl9ZnVu''@;'; put 'put ''Y3Rpb24gJGQobCl7dmFyIGM9MCxmPTAscD0wLG09MDtwPTQ4KyhsfD0wKXwwLGM9KGM9MHxhWzIwNCsoZj0wfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAoYyw4KyhhW2YrMjA4Pj4yXTw8Mil8MCk6MHxRbig4KyhhW2YrMjA4Pj4yXTw8''@;'; put 'put ''Mil8MCksYVsyMDQrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4yXT1jLGM9MHxhWzIwNCsobT0wfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml0sYVsobT1tKzIwOHwwKT4+Ml09MSsoZj0wfGFbbT4+Ml0p''@;'; put 'put ''LGFbYysoZjw8Mik+PjJdPWwsYVsoMHxhWzIwNCsocD0wfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnApKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW3ArMjA4Pj4yXTw8Mik+PjJdPTB9ZnVuY3Rpb24gRVkobCl7IWZ1bmN0aW9uIFhGKGwsYyl7bHw9MDt2YXIgcCx3LGY9MCxtPTAsQT0w''@;'; put 'put ''O2ZvcihwPTB8YVsodz00KyhjfD0wKXwwKT4+Ml0sbT0wfGFbYz4+Ml0sZj0wOzspe2lmKCgwfGYpPj0oMHxwKSl7QT00O2JyZWFrfWlmKCgwfGFbbSsoZjw8Mik+PjJdKT09KDB8bCkpYnJlYWs7Zj1mKzF8MH00PT0oMHxBKSYmKGY9bT8wfFYwKG0sOCsocDw8Mil8MCk6MHxRbig4KyhwPDwy''@;'; put 'put ''KXwwKSxhW2M+PjJdPWYsYVt3Pj4yXT1BPTErKG09MHxhW3c+PjJdKXwwLGFbZisobTw8Mik+PjJdPWwsYVsoMHxhW2M+PjJdKSsoQTw8Mik+PjJdPTApfShsfD0wLDIwNCsoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKXwwKX1mdW5jdGlvbiAk''@;'; put 'put ''QShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHcsTSxELHA9MCxtPTAsQT0wLGI9MCxrPTA7aWYoRD0wfHZyKDk2KSxhWyhwPUQrNDh8MCk+PjJdPTN8YVtwPj4yXSxhW0Q+PjJdPS00JmFbRD4+Ml18MixtPTB8dnIoMTc2KSxhWyhNPUQrMTZ8MCk+PjJdPW0sYVsoMz09KDMmYVtEPj4yXXww''@;'; put 'put ''KT9EOnApKzQwPj4yXT1sLHc9RCstNDh8MCxhWygyPT0oMyZhW0Q+PjJdfDApP0Q6dykrNDA+PjJdPWMsZmVbbSsxMTI+PjBdPTEsZil7aWYoYVtEPj4yXT0xNSZhW0Q+PjJdfC0xNiZhW2Y+PjJdLGFbcD4+Ml09MTUmYVtwPj4yXXwtMTYmYVtmPj4yXSxpdFttKzE2OD4+MV09MHxpdFsxNjgr''@;'; put 'put ''KEE9MHxhWyhrPWYrMTZ8MCk+PjJdKT4+MV0saXRbbSsxNTQ+PjFdPTB8aXRbQSsxNTQ+PjFdLGFbbSsxNTY+PjJdPWFbQSsxNTY+PjJdLGl0W20rMTcwPj4xXT0wfGl0W0ErMTcwPj4xXSxiPWYrNDh8MCwoMHwobD0wfGFbKDM9PSgzJmFbRD4+Ml18MCk/RDpwKSs0MD4+Ml0pKSE9KDB8YVso''@;'; put 'put ''Mz09KDB8KGM9MyZhW2Y+PjJdKSk/ZjpiKSs0MD4+Ml0pKXtpZihwPWYrLTQ4fDAsKDB8bCk9PSgwfGFbKDI9PSgwfGMpP2Y6cCkrNDA+PjJdKSl7bD1BKzU2fDAsYz00MCsobT1tKzE2fDApfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSl9''@;'; put 'put ''fWVsc2V7bD1BKzE2fDAsYz00MCsobT1tKzE2fDApfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSk7cD1mKy00OHwwfWlmKCgwfChsPTB8YVsoMj09KDMmYVtEPj4yXXwwKT9EOncpKzQwPj4yXSkpIT0oMHxhWygyPT0oMHwoYz0zJmFbZj4+''@;'; put 'put ''Ml0pKT9mOnApKzQwPj4yXSkpe2lmKCgwfGwpPT0oMHxhWygzPT0oMHxjKT9mOmIpKzQwPj4yXSkpe2w9MTYrKDB8YVtrPj4yXSl8MCxjPTQwKyhtPTU2KygwfGFbTT4+Ml0pfDApfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSl9fWVsc2V7''@;'; put 'put ''bD01NisoMHxhW2s+PjJdKXwwLGM9NDArKG09NTYrKDB8YVtNPj4yXSl8MCl8MDtkb3thW20+PjJdPWFbbD4+Ml0sbT1tKzR8MCxsPWwrNHwwfXdoaWxlKCgwfG0pPCgwfGMpKX0wfGFbKGw9MTcyKygwfGFbaz4+Ml0pfDApPj4yXXx8KGFbbD4+Ml09RCksYVsxMTYrKDB8YVtNPj4yXSk+PjJd''@;'; put 'put ''PWZ9ZWxzZSBhW20rMTU2Pj4yXT0xLGl0W20rMTU0Pj4xXT0xLGl0W20rMTY4Pj4xXT0xLGl0W20rMTcwPj4xXT0xO3JldHVybiAwfER9ZnVuY3Rpb24gSmMobCxjLGYpe3JldHVybiAwfFFDKDB8JEEobHw9MCxjfD0wLGZ8PTApKX1mdW5jdGlvbiBjSShsLGMpe3ZhciBmLHAsbTthWzE2NCso''@;'; put 'put ''Zj0wfGFbMTYrKGN8PTApPj4yXSk+PjJdPW09MHxhWyhsPTE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxwPW0sMHxtJiYoYVsxNjgrKDB8YVtwKzE2Pj4yXSk+PjJdPWMpLGFbbD4+Ml09YyxhW2YrMTY4Pj4yXT0wLCgwfHApPT0oMHxjKSYmUHIoODU1ODcsODU1NjEsMjE1LDg1NjAz''@;'; put 'put ''KX1mdW5jdGlvbiBmSShsLGMpe3ZhciBmLHA7MHxmdW5jdGlvbiB3MGUobCxjKXtmb3IoY3w9MCxsPTE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDA7ISgwPT0oMHwobD0wfGFbbD4+Ml0pKXwoMHxsKT09KDB8YykpOylsPTE2NCsoMHxhW2wrMTY+PjJdKXwwO3JldHVybiAwfGx9KGx8PTAsY3w9''@;'; put 'put ''MCl8fFByKDg1NjUyLDg1NTYxLDIzMSw4NTY3MykscD1mPTB8YVsxNjQrKGM9MHxhW2MrMTY+PjJdKT4+Ml0sYz1jKzE2OHwwLDB8ZiYmKGFbMTY4KygwfGFbZisxNj4+Ml0pPj4yXT1hW2M+PjJdKSwoYz0wfGFbYz4+Ml0pP2FbMTY0KygwfGFbYysxNj4+Ml0pPj4yXT1wOmFbMTkyKygwfGFb''@;'; put 'put ''bCsxNj4+Ml0pPj4yXT1wfWZ1bmN0aW9uIFVoKGwpe2x8PTA7dmFyIGMsZixwPTAsbT0wO3JldHVybiBjPTB8dnIoNjQpLGFbYz4+Ml09LTQmYVtjPj4yXXwxLGFbKGY9YysxNnwwKT4+Ml09MHx2cigzMDQpLGFbYysyND4+Ml09MHxkaShsKSxmZVsxNTYrKG09MHxhW2Y+PjJdKT4+MF09MSxf''@;'; put 'put ''W20rOTY+PjNdPTEsX1ttKzg4Pj4zXT0xLF9bbSs4MD4+M109MSxhW20rMjE2Pj4yXT0xLGFbbSsxNzY+PjJdPTAsbT0wfHZyKDIwKSxhWzE3MisocD0wfGFbZj4+Ml0pPj4yXT1tLGFbcCsxODQ+PjJdPTAscD0wfHZyKDIwKSxhWzE4MCsoMHxhW2Y+PjJdKT4+Ml09cCxjSShsLGMpLGFbKGw9''@;'; put 'put ''MjMyKygwfGFbbCsxNj4+Ml0pfDApPj4yXT0xKygwfGFbbD4+Ml0pLDB8Y31mdW5jdGlvbiBoSShsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDttPTQ4KyhjfD0wKXwwLGY9KHA9MHxhWzE4OCsoZj0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+''@;'; put 'put ''Ml0pPzB8VjAocCw4KyhhW2YrMTkyPj4yXTw8Mil8MCk6MHxRbig4KyhhW2YrMTkyPj4yXTw8Mil8MCksYVsxODgrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6bSkrNDA+PjJdKT4+Ml0pPj4yXT1mLHA9MHxhWzE4OCsoQT0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9j''@;'; put 'put ''Om0pKzQwPj4yXSk+PjJdKT4+Ml0sYVsoQT1BKzE5MnwwKT4+Ml09MSsoZj0wfGFbQT4+Ml0pLGFbcCsoZjw8Mik+PjJdPWMsYVsoMHxhWzE4OCsobT0wfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW20rMTkyPj4yXTw8Mik+PjJdPTAsbT1j''@;'; put 'put ''Ky00OHwwLGY9KHA9MHxhWzE5NisoZj0wfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAocCw4KyhhW2YrMjAwPj4yXTw8Mil8MCk6MHxRbig4KyhhW2YrMjAwPj4yXTw8Mil8MCksYVsxOTYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2M+PjJd''@;'; put 'put ''fDApP2M6bSkrNDA+PjJdKT4+Ml0pPj4yXT1mLHA9MHxhWzE5NisoZj0wfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0sYVsoZj1mKzIwMHwwKT4+Ml09MSsoQT0wfGFbZj4+Ml0pLGFbcCsoQTw8Mik+PjJdPWMsYVsoMHxhWzE5NisoQT0wfGFbMTYr''@;'; put 'put ''KDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW0ErMjAwPj4yXTw8Mik+PjJdPTAsZmVbMjQwKygwfGFbbCsxNj4+Ml0pPj4wXT0xLGZlWzI0MCsoMHxhWzE2KygwfHlhKGwpKT4+Ml0pPj4wXT0xfWZ1bmN0aW9uIEtGKGwpe3ZhciBjLGY9MDsobHw9MCl8''@;'; put 'put ''fFByKDg1NTUxLDg1NTYxLDI2OSw4NTY5MCksMHwoYz0wfGFbMTE2KygwfGFbbCsxNj4+Ml0pPj4yXSkmJigwfGFbKGY9MTcyKygwfGFbYysxNj4+Ml0pfDApPj4yXSk9PSgwfGwpJiYoYVtmPj4yXT0wKSxzcCgxODgrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0''@;'; put 'put ''MD4+Ml0pPj4yXSl8MCxsKSxzcCgxOTYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pfDAsbCl9ZnVuY3Rpb24gejYobCxjKXt2YXIgZixwLG07Y3w9MCxtPWxlLGxlPWxlKzE2fDAscD0wfGFbKGY9MTcyKygwfGFbMTYrKGx8PTApPj4yXSl8''@;'; put 'put ''MCk+PjJdO2Rve2lmKCgwfHApIT0oMHxjKSl7aWYoIXApe2FbZj4+Ml09YyxiMGUobCxjKTticmVha31Qcig4NzU5Myw4NTU2MSwzNDAsODU3MjgpfWVsc2UgJHIoMCw4NTcwNyxtKX13aGlsZSgwKTtsZT1tfWZ1bmN0aW9uIGIwZShsLGMpe3ZhciBwLG0sZj0wLEE9MDtmb3IoKDB8aHJbKGY9''@;'; put 'put ''MTcwKygwfGFbMTYrKGN8PTApPj4yXSl8MCk+PjFdKTwoNjU1MzUmKGw9MHxpdFsxNzArKEE9MHxhWzE2KyhsfD0wKT4+Ml0pPj4xXSkpJiYoaXRbZj4+MV09bCkscD1BKzE2OHwwLG09QSsxNTR8MCxmPUErMTU2fDAsbD1jO2w7KWl0WyhBPTE2OCsoYz0wfGFbbCsxNj4+Ml0pfDApPj4xXT0o''@;'; put 'put ''MHxocltBPj4xXSkrKDB8aHJbcD4+MV0pLGl0WyhBPWMrMTU0fDApPj4xXT0oMHxocltBPj4xXSkrKDB8aHJbbT4+MV0pLGFbKEE9YysxNTZ8MCk+PjJdPSgwfGFbQT4+Ml0pKygwfGFbZj4+Ml0pLGw9MHxhW2MrMTcyPj4yXX1mdW5jdGlvbiB4WShsKXt2YXIgZixjPTAscD0wLG09MDtjPTB8''@;'; put 'put ''YVsxNzIrKDB8YVsoZj0xNisobHw9MCl8MCk+PjJdKT4+Ml07ZTpmb3IoO2M7KWZvcihkSShjLGwpLG09MHxhW2MrMTY+PjJdLHA9MHxhW20rMTcyPj4yXSwwfGl0W20rMTY4Pj4xXXx8cEkoYyk7Oyl7aWYoMSE9KDB8ZmVbMTEyKygwfGFbYysxNj4+Ml0pPj4wXSkpe2M9cDtjb250aW51ZSBl''@;'; put 'put ''fWlmKDEhPSgwfGZlWzE1NisoYz0wfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+MF0pKXtjPXA7Y29udGludWUgZX1pZigxIT0oMHxhW2MrMTg0Pj4yXSkpe2M9cDtjb250aW51ZSBlfWRJKGM9MHxhW2FbYysxODA+PjJdPj4yXSxsKX1hWzE3''@;'; put 'put ''MisoMHxhW2Y+PjJdKT4+Ml09MH1mdW5jdGlvbiBkSShsLGMpe3ZhciBmO2Y9MHxhWzE2KyhjfD0wKT4+Ml0saXRbKGw9MTY4KyhjPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+MV09KDB8aHJbbD4+MV0pLSgwfGhyW2YrMTY4Pj4xXSksaXRbKGw9YysxNTR8MCk+PjFdPSgwfGhyW2w+PjFdKS0o''@;'; put 'put ''MHxocltmKzE1ND4+MV0pLGFbKGM9YysxNTZ8MCk+PjJdPSgwfGFbYz4+Ml0pLSgwfGFbZisxNTY+PjJdKX1mdW5jdGlvbiBwSShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtmb3IoKGx8PTApfHxQcig4NTU1MSw4NTU2MSwxMjgsODU3NDEpLEE9bCs0OHwwLGY9MDttPTB8YVsoMHxhWyhw''@;'; put 'put ''PTE4MCsoMHxhWzE2KygwfGFbKDM9PSgzJihjPTB8YVtsPj4yXSl8MCk/bDpBKSs0MD4+Ml0pPj4yXSl8MCk+PjJdKSsoZjw8Mik+PjJdOykoMHxtKT09KDB8bCkmJnNwKHAsbCksZj1mKzF8MDtmb3IoQT1sKy00OHwwLG09MDtwPTB8YVsoMHxhWyhmPTE3MisoMHxhWzE2KygwfGFbKDI9PSgz''@;'; put 'put ''JmN8MCk/bDpBKSs0MD4+Ml0pPj4yXSl8MCk+PjJdKSsobTw8Mik+PjJdOykoMHxwKT09KDB8bCkmJihzcChmLGwpLGM9MHxhW2w+PjJdKSxtPW0rMXwwfWZ1bmN0aW9uIGc3KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtmPTAsdz0wfER0KGx8PTApO2U6''@;'; put 'put ''Zm9yKDt3Oylmb3IoYj0wfHp0KGwsdyksaz13KzE2fDAsQT1iOzspe2lmKCFBKXt3PWI7Y29udGludWUgZX0oMHxhWzE2KyhtPTB8YVtBKzE2Pj4yXSk+PjJdKT4oMHxhWzEyKyhwPTB8YVtrPj4yXSk+PjJdKT8oMHxhW3ArMTY+PjJdKTw9KDB8YVttKzEyPj4yXSkmJkthKGwsdyxBLDAsMSk6''@;'; put 'put ''KEthKGwsQSx3LDAsMSksZj0xKSxBPTB8enQobCxBKX1kb3tpZigwfGYpe3c9MHxwcyhsLDg1NzY2LDEpLGs9MHx2cigoMHxHbyhsKSk8PDIpLGI9MHx2cigoMHxHbyhsKSk8PDIpLG09Yys0fDAscD0wfER0KGwpO2U6Zm9yKDs7KXtpZighcCl7Zj0yMzticmVha31pZigwPT0oMHxhWzgrKDB8''@;'; put 'put ''YVtwKzE2Pj4yXSk+PjJdKSYmMHx6ZChsLHAsMSwxKSl7dDpkb3tpZigwfEpDKGwscCx3LGIpKXtpZihBPTB8R28odyksKDB8aXZlKGwsdyxrKSkhPSgwfEEpKXtmPTE3O2JyZWFrIGV9Zm9yKHgxKGIsQSw0LDYwKSxmPTA7Oyl7aWYoKDB8Zik+PSgwfEEpKWJyZWFrIHQ7YVsyMzYrKDB8YVsx''@;'; put 'put ''NisoTT0wfGFbaysoZjw8Mik+PjJdKT4+Ml0pPj4yXT1hWyhjPWIrKGY8PDIpfDApPj4yXSxhWygwfGFbbT4+Ml0pKyhhW2M+PjJdPDwyKT4+Ml09TSxmPWYrMXwwfX19d2hpbGUoMCk7azBlKHcpfXA9MHx6dChsLHApfWlmKDE3PT0oMHxmKSlQcig4NTc3MSw4NTc4MSwyNjUsODU3OTIpO2Vs''@;'; put 'put ''c2UgaWYoMjM9PSgwfGYpKXtGdChrKTticmVha319fXdoaWxlKDApfWZ1bmN0aW9uIEpDKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihhWzgrKHc9MHxhWzE2KyhjfD0wKT4+Ml0pPj4yXT0xLHc9MHxhWzIzNisoMHxhWzE2KygwfGFbdysyMD4+''@;'; put 'put ''Ml0pPj4yXSk+PjJdLGFbcCsoKDB8R28oZikpPDwyKT4+Ml09dyxZbihmLGMsMSksdz0wfHcwKGwsYyksbT0wO3c7KW09bSsoKDB8YVsyMzYrKDB8YVsxNisoMHxhWzIwKyhiPTB8YVsxNisoQT0wfGFbKDI9PSgwfChrPTMmYVt3Pj4yXSkpP3c6dystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+''@;'; put 'put ''PjJdKT4+Ml0pPigwfGFbMjM2KygwfGFbMTYrKDB8YVsyMCsoMHxhWzE2KygwfGFbKDM9PSgwfGspP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSkmMSl8MCwwfGFbYis4Pj4yXXx8KG09KDB8SkMobCxBLGYscCkpK218MCksdz0wfFMwKGwsdyk7Zm9yKHc9MHxNZihsLGMp''@;'; put 'put ''O3c7KW09bSsoKDB8YVsyMzYrKDB8YVsxNisoMHxhWzIwKygwfGFbMTYrKDB8YVsoMj09KDB8KGI9MyZhW3c+PjJdKSk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzYrKDB8YVsxNisoMHxhWzIwKyhrPTB8YVsxNisoQT0wfGFbKDM9PSgwfGIpP3c6dys0''@;'; put 'put ''OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSkmMSl8MCwwfGFbays4Pj4yXXx8KG09KDB8SkMobCxBLGYscCkpK218MCksdz0wfEYzKGwsdyk7cmV0dXJuIDB8bX1mdW5jdGlvbiBpdmUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MDtmb3IobT0wO3A9MHxTMGUo''@;'; put 'put ''bCxjKTspe2ZvcihhW2YrKG08PDIpPj4yXT1hWzIwKygwfGFbcCsxNj4+Ml0pPj4yXSxxcihjLHApLHA9MHx3MChsLHApO3A7KUE9MHxTMChsLHApLHFtKGwscCkscD1BO209bSsxfDB9cmV0dXJuIDB8bX1mdW5jdGlvbiBrMGUobCl7dmFyIGM9MCxmPTA7Zm9yKGM9MHxEdChsfD0wKTtjOylm''@;'; put 'put ''PTB8enQobCxjKSxxcihsLGMpLGM9Zn1mdW5jdGlvbiBTMGUobCxjKXtsfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChjfD0wKTs7KXtpZighZil7Zj0wO2JyZWFrfWlmKCEoMHx6ZChsLGYsMSwwKSkpYnJlYWs7Zj0wfHp0KGMsZil9cmV0dXJuIDB8Zn1mdW5jdGlvbiBxQShsLGMpe2N8PTA7dmFy''@;'; put 'put ''IHcsZj0wLHA9MCxtPTAsQT0wO2ZvcihmdW5jdGlvbiBYQyhsKXtsfD0wO3ZhciBjPTA7ZmVbMTkzNzY5XT0wLGFbNDY3NDFdPWwsYz00KygoMHxOMygwfHlhKGwpKSk8PDIpfDAsYVs0Njc0MF09MHx2cihjKSxhWzQ2NzM5XT0wfHZyKGMpLGZ1bmN0aW9uIFZZKGwpe2x8PTA7dmFyIGM9MCxm''@;'; put 'put ''PTA7YVs0Njc0NF09OCxhWzQ3MTM2XT0yNCxfWzIzMjE1XT0uOTk1LDB8KGw9MHxMaShsLDg2Njg1KSkmJihjPStrcChsKSk+MCYmKGFbNDY3NDRdPX5+KChmPWMqKygwfGFbNDY3NDRdKSk+MT9mOjEpLGFbNDcxMzZdPX5+KChjKj0rKDB8YVs0NzEzNl0pKT4xP2M6MSkpfShsKSwxNiZpdFsx''@;'; put 'put ''MzYrKDB8YVsoYz1sKzE2fDApPj4yXSk+PjFdJiZmdW5jdGlvbiBhSChsKXt2YXIgYyxmO2M9MHx2cigoZj0yKygwfGl0WzIzOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4xXSl8MCk8PDIpLGpZKGwsYyxmLDApLEZ0KGMpfShsKSxDVShsKSxJSChsLDEpLENJKGwpLHRIKGwpLGFbNDY3NDJdPWl0''@;'; put 'put ''WzIzNisoYz0wfGFbYz4+Ml0pPj4xXSxhWzQ2NzQzXT1pdFtjKzIzOD4+MV19KGx8PTApLHc9bCsxNnwwLHA9MCxmPTA7ISgoMHxwKT49KDB8YVsyMjArKDB8YVt3Pj4yXSk+PjJdKSk7KWV5KGwscCkscD1wKzF8MCxmPSgwfGdJKGwsMCxjKSkrZnwwO2ZvcihmdW5jdGlvbiBUWShsKXt2YXIg''@;'; put 'put ''YyxHLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLFI9MDtmb3IoRz1sZSxsZT1sZSsxNnwwLGZ1bmN0aW9uIEkwZShsKXt2YXIgcCxtLEEsYz0wLGY9MCx3PTAsYj0wO2lmKCgwfChBPTB8YVsobT0yMjArKHA9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSkpPj0yKXtmb3Iodz1wKzIxNnwwLGw9''@;'; put 'put ''MCxmPTA7ISgoMHxmKT49KDB8QSkpOyl7Zm9yKGM9MHxhWygwfGFbdz4+Ml0pKyhmPDwyKT4+Ml0sMHxsJiYoYVsxNjQrKDB8YVtsKzE2Pj4yXSk+PjJdPWMpLGFbMTY4KyhiPTB8YVtjKzE2Pj4yXSk+PjJdPWwsbD1jLGM9YjtjPTB8YVtjKzE2ND4+Ml07KWw9YyxjPTB8YVtjKzE2Pj4yXTtm''@;'; put 'put ''PWYrMXwwfWFbbT4+Ml09MSxhW3ArMTkyPj4yXT1hW2FbcCsyMTY+PjJdPj4yXSxpdFtwKzIzNj4+MV09YVs0Njc0Ml0saXRbcCsyMzg+PjFdPWFbNDY3NDNdfX0obHw9MCksYj0wfGl0WzIzNisoYz0wfGFbKGwrMTZ8MCk+PjJdKT4+MV07ISgoMHxiKT4oMHxpdFtjKzIzOD4+MV0pKTspe2Zv''@;'; put 'put ''cihhWyhmPTB8YVtjKzE5Nj4+Ml0pKyhiPDw2KT4+Ml09cD0wfGFbZisoYjw8NikrOD4+Ml0sYVtmKyhiPDw2KSs0Pj4yXT1tPTB8YVtmKyhiPDw2KSsxMj4+Ml0sdz0wOyEoKDB8dyk+PSgwfHApKTspe2lmKCEoQT0wfGFbbSsodzw8Mik+PjJdKSl7Uj02O2JyZWFrfWFbMjM2KygwfGFbQSsx''@;'; put 'put ''Nj4+Ml0pPj4yXT13LHc9dysxfDB9Nj09KDB8UikmJihSPTAsYVtmKyhiPDw2KT4+Ml09dyksYj1iKzF8MH1sZT1HfShsKSxBPTE7ISgoMHxBKT4oMHwobT0wfGFbMTgwKyhwPTB8YVt3Pj4yXSk+PjJdKSkpOyltPSgwfCRGKDB8YVsoMHxhW3ArMTg0Pj4yXSkrKEE8PDIpPj4yXSxjKSkrZnww''@;'; put 'put ''LEE9QSsxfDAsZj1tO2Rve2lmKCgwfG0pPjApe2lmKDB8KHA9MHxMaShsLDg1ODA2KSkmJigwfHQxKHApKTw8MjQ+PjI0PT0wKWJyZWFrO2ZwKGwpLGZlWzE5Mzc2OV09MSxmPTB8Z0kobCwyLGMpfX13aGlsZSgwKTshZnVuY3Rpb24gdHkobCxjKXtsfD0wO3ZhciBNLFIsZj0wLHA9MCxtPTAs''@;'; put 'put ''QT0wLHc9MCxiPTAsaz0wO2ZvcihSPWxlLGxlPWxlKzE2fDAsMHwoZj0wfGFbNDY3MzldKSYmKEZ0KGYpLGFbNDY3MzldPTApLDB8KGY9MHxhWzQ2NzQwXSkmJihGdChmKSxhWzQ2NzQwXT0wKSxNPWwrMTZ8MCxmPTE7ISgoMHxmKT4oMHxhWzE4MCsocD0wfGFbTT4+Ml0pPj4yXSkpOylxRigw''@;'; put 'put ''fGFbKDB8YVtwKzE4ND4+Ml0pKyhmPDwyKT4+Ml0pLGY9ZisxfDA7Zm9yKGs9MHxpdFtwKzIzNj4+MV0sZj1wOyEoKDB8ayk+KDB8aXRbZisyMzg+PjFdKSk7KXtmb3IoYj0wOyEoKDB8Yik+PSgwfGFbKGY9MHxhW2YrMTk2Pj4yXSkrKGs8PDYpPj4yXSkpOyl7YVsyMzYrKGY9MHxhWyh3PTE2''@;'; put 'put ''KygwfGFbKDB8YVtmKyhrPDw2KSs0Pj4yXSkrKGI8PDIpPj4yXSl8MCk+PjJdKT4+Ml09YixmPTB8YVtmKzE4OD4+Ml07ZTpkb3tpZigwfGYpZm9yKHA9MDs7KXtpZighKG09MHxhW2YrKHA8PDIpPj4yXSkpYnJlYWsgZTs0PT0oMHxmZVsxMTIrKDB8YVsoQT1tKzE2fDApPj4yXSk+PjBdKSYm''@;'; put 'put ''KEtGKG0pLEZ0KDB8YVtBPj4yXSksRnQobSkscD1wKy0xfDAsZj0wfGFbMTg4KygwfGFbdz4+Ml0pPj4yXSkscD1wKzF8MH19d2hpbGUoMCk7Yj1iKzF8MCxmPTB8YVtNPj4yXX1NMGUoMHxhW2YrKGs8PDYpKzU2Pj4yXSksaz1rKzF8MCxmPTB8YVtNPj4yXX1sZT1SfShsKX1mdW5jdGlvbiBl''@;'; put 'put ''eShsLGMpe3ZhciBmPTAscD0wLG09MDthWzE5MisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjJdPWFbKDB8YVtsKzIxNj4+Ml0pKygoY3w9MCk8PDIpPj4yXTtlOmRve2lmKCgwfGMpPjApZm9yKGM9MHxpdFtsKzIzOD4+MV0sZj1sKzE5NnwwLGw9MHxpdFtsKzIzNj4+MV07Oyl7aWYoKDB8bCk+''@;'; put 'put ''KDB8YykpYnJlYWsgZTthWyhtPShwPTB8YVtmPj4yXSkrKGw8PDYpKzR8MCk+PjJdPSgwfGFbbT4+Ml0pKyhhWyhwPXArKGw8PDYpfDApPj4yXTw8MiksYVtwPj4yXT0wLGw9bCsxfDB9fXdoaWxlKDApfWZ1bmN0aW9uIGdJKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIFIscD0wLG09MCxBPTAsdz0w''@;'; put 'put ''LGI9MCxrPTA7Zm9yKFI9bGUsbGU9bGUrMzJ8MCwoMHwoY3w9MCkpPjE/KHA9MHwkQygwKSxvSChsKSk6cD0yMTQ3NDgzNjQ3LGs9YyxtPTAsYz1wOyEoKDB8ayk+PTMpOyl7Zm9yKG09MHxhWzQ3MTM2XSwyPT0oMHxrKT8oKDB8cCk+KDB8YykmJlJZKGwpLHA9Yyk6KHA9KDB8bSk8ND9tOjQs''@;'; put 'put ''KDB8eWEobCkpPT0oMHxsKSYmT1kobCxrKSxrfHx2SShsKSxJWShsKSwoMHwoQT0wfCRDKDApKSk+KDB8Yyk/KG09cCxwPUEpOihvSChsKSxtPXAscD1BLGM9QSkpLEE9MCxiPTA7ISgoMHxiKT49KDB8bSl8fCh3PUErMXwwLDA9PSgwfHApfCgwfEEpPj0oMHxhWzQ2NzQ0XSkpKTspRDBlKGws''@;'; put 'put ''YiksKDB8KHA9MHwkQygwKSkpPigwfGMpP0E9dzoob0gobCksQT0rX1syMzIxNV0qKygwfGMpPisoMHxwKT8wOncsYz1wKSxiPWIrMXwwO2lmKCFwKXtwPTA7YnJlYWt9az1rKzF8MH0oMHxwKT4oMHxjKSYmUlkobCksKDB8Yyk+MD8od0kobCwwKSxwPTB8JEMoMCkpOnA9YztlOmRve2lmKDB8''@;'; put 'put ''Zilmb3IoYz0wOzspe2lmKCgwfGMpPj0oMHxtKSlicmVhayBlO0wwZShsKSxjPWMrMXwwfX13aGlsZSgwKTtyZXR1cm4gbGU9UiwwfHB9ZnVuY3Rpb24gJEYobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wO2ZvcihmdW5jdGlvbiBNVShsKXt2YXIgYztDVShsfD0wKSxhWzIyMCsoYz0wfGFb''@;'; put 'put ''bCsxNj4+Ml0pPj4yXT0xLGFbYVtjKzIxNj4+Ml0+PjJdPWFbYysxOTI+PjJdLENJKGwpLE9ZKGwsMCksZnVuY3Rpb24gYXZlKGwpe3ZhciBiLGssTSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoYj0wfHlhKGx8PTApLGM9KHc9MHxpdFsyMzYrKGY9MHxhWyhrPWwrMTZ8MCk+PjJdKT4+''@;'; put 'put ''MV0pPDwxNj4+MTYsTT1iKzE2fDAsdzw8MTY+PjE2PjAmJihmZVsoMHxhWzE5NisoMHxhW00+PjJdKT4+Ml0pKyhjKy0xPDw2KSs0OT4+MF09MCksdz1jOyEoKDB8dyk+KDB8aXRbZisyMzg+PjFdKSk7KXtmb3IoU1UoYix3LEE9MHxhWzIzNisoMHxhWzE2KygwfGFbKDB8YVtmKzI2OD4+Ml0p''@;'; put 'put ''Kyh3PDwyKT4+Ml0pPj4yXSk+PjJdLDB8YVsoMHxhW2YrMTk2Pj4yXSkrKHc8PDYpPj4yXSkscD0wLG09QTshKCgwfHApPj0oMHxhWyhjPTB8YVsxOTYrKGY9MHxhW2s+PjJdKT4+Ml0pKyh3PDw2KT4+Ml0pKTspYVsoMHxhWygwfGFbMTk2KygwfGFbTT4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJd''@;'; put 'put ''KSsobTw8Mik+PjJdPWM9MHxhWygwfGFbYysodzw8NikrND4+Ml0pKyhwPDwyKT4+Ml0sYVsyMzYrKGY9MHxhW2MrMTY+PjJdKT4+Ml09bSwxPT0oMHxmZVtmKzE1Nj4+MF0pJiYoYVtjKzI0Pj4yXT0wfGRpKGIpKSxmSShsLGMpLGNJKGIsYyksYVsoZj0yMzIrKDB8YVtNPj4yXSl8MCk+PjJd''@;'; put 'put ''PTErKDB8YVtmPj4yXSkscD1wKzF8MCxtPW0rMXwwO2FbYysodzw8NikrND4+Ml09KDB8YVsobT0wfGFbMTk2KygwfGFbTT4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJdKSsoQTw8MiksZmVbbSsodzw8NikrNDk+PjBdPTAsdz13KzF8MH0oMHx3KTwoMHxpdFsyMzgrKGM9MHxhW00+PjJdKT4+MV0p''@;'; put 'put ''JiYoZmVbKDB8YVtjKzE5Nj4+Ml0pKyh3PDw2KSs0OT4+MF09MCksZmVbZisyNzI+PjBdPTF9KGwpLGZ1bmN0aW9uIGdvZShsKXt2YXIgayxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wLEQ9MCxSPTA7Zm9yKGs9MHx5YShsfD0wKSx3PTB8RHQobCk7dzspe2ZvcihjPTB8TXMoayx3''@;'; put 'put ''KSxiPTA7YzspaWYoRD0wfFZzKGssYyx3KSwwfE5yKGwsYykpYz1ELGI9TT1iO2Vsc2UgaWYoUj0wPT0oMHxhayhiLE09Mj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKSxBPSgwfChmPTB8YVsyMzIrKDB8YVsxNisoYz0wfGFbKDM9PSgwfChwPTMmYVtNPj4yXSkpP006TSs0OHwwKSs0MD4+''@;'; put 'put ''Ml0pPj4yXSk+PjJdKSk9PSgwfChtPTB8YVsyMzIrKDB8YVsxNisocD0wfGFbKDI9PSgwfHApP006TSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpLFIpaWYoQSkoYz0wfE1ZKGMscCkpPygwfE0pIT0oMHxjKT8oRVkoTSksMHxhWzE3MisoMHxhW00rMTY+PjJdKT4+Ml0/KGM9RCxiPVI9Yik6''@;'; put 'put ''KHo2KE0sYyksYz1ELGI9Uj1iKSk6KGM9RCxiPVI9Yik6KGhJKGssTSksYz1ELGI9TSk7ZWxzZXtpZigoMHxtKT4oMHxmKSl7RUgoYyxwLE0pLGM9RCxiPU07Y29udGludWV9RUgocCxjLE0pLGM9RCxiPU19ZWxzZXtpZihhWzE3MisoMHxhW00rMTY+PjJdKT4+Ml09QT9iOjAsIShjPTB8YVsx''@;'; put 'put ''NzIrKDB8YVtiKzE2Pj4yXSk+PjJdKSl7Yz1ELGI9Uj1iO2NvbnRpbnVlfW9rKGwsTSxjLDApLEVZKE0pLGM9RCxiPVI9Yn13PTB8enQobCx3KX19KGwpLGZ1bmN0aW9uIGx2ZShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihBPTB8aXRbMjM2KyhjPTB8YVsodz0xNisobHw9MCl8''@;'; put 'put ''MCk+PjJdKT4+MV07ISgoMHxBKT4oMHxpdFtjKzIzOD4+MV0pKTspe2ZvcihtPTE2KyhwPTB8YVsoMHxhW2MrMjY4Pj4yXSkrKEE8PDIpPj4yXSl8MDtmPTB8YVthWzE4MCsoYz0wfGFbbT4+Ml0pPj4yXT4+Ml07KVkzKGYpO2Zvcig7Yz0wfGFbYVtjKzE3Mj4+Ml0+PjJdOylZMyhjKSxjPTB8''@;'; put 'put ''YVttPj4yXTtmSSgwfHlhKGwpLHApLGFbKDB8YVsyNjgrKDB8YVt3Pj4yXSk+PjJdKSsoQTw8Mik+PjJdPTAsQT1BKzF8MCxjPTB8YVt3Pj4yXX19KGwpfShsfD0wKSx0SChsKSx2SShsKSxJWShsKSxtPWwrMTZ8MCxmPTB8Z0kobCwyLGMpLHA9MTshKCgwfHApPigwfGFbMTgwKyhBPTB8YVtt''@;'; put 'put ''Pj4yXSk+PjJdKSk7KWY9KDB8JEYoMHxhWygwfGFbQSsxODQ+PjJdKSsocDw8Mik+PjJdLGMpKStmfDAscD1wKzF8MDtyZXR1cm4gbkgobCksMHxmfWZ1bmN0aW9uIHFGKGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MCx3PTAsYj0wLGs9MDtmb3IobT0xNisobHw9MCl8MCxjPTE7ISgoMHxjKT4o''@;'; put 'put ''MHxhWzE4MCsocD0wfGFbbT4+Ml0pPj4yXSkpOylxRigwfGFbKDB8YVtwKzE4ND4+Ml0pKyhjPDwyKT4+Ml0pLGM9YysxfDA7ZTpkb3tpZigwfGFbcCsyNjg+PjJdKWZvcihmPTB8aXRbcCsyMzY+PjFdLGM9cDs7KXtpZigoMHxmKT4oMHxpdFtjKzIzOD4+MV0pKWJyZWFrIGU7dz0wfGVIKGws''@;'; put 'put ''Yj0wfGFbKDB8YVtjKzI2OD4+Ml0pKyhmPDwyKT4+Ml0sLTEpLGI9MHxlSChsLGIsMSksYVsoMHxhWzI2OCsoMHxhW20+PjJdKT4+Ml0pKyhmPDwyKT4+Ml09dyxrPTB8YVsoMHxhWzE5NisoMHxhWzE2KygwfHlhKGwpKT4+Ml0pPj4yXSkrKGY8PDYpKzQ+PjJdLGFbKEE9MHxhWzE5NisocD0w''@;'; put 'put ''fGFbbT4+Ml0pPj4yXSkrKGY8PDYpKzQ+PjJdPWsrKCh3PTB8YVsyMzYrKDB8YVt3KzE2Pj4yXSk+PjJdKTw8MiksYVtBKyhmPDw2KT4+Ml09MSsoMHxhWzIzNisoMHxhW2IrMTY+PjJdKT4+Ml0pLXcsZj1mKzF8MCxjPXB9fXdoaWxlKDApfWZ1bmN0aW9uIE0wZShsKXswfChsfD0wKSYmKEZ0''@;'; put 'put ''KDB8YVtsKzg+PjJdKSxGdChsKSl9ZnVuY3Rpb24gZUgobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wO2ZvcihwPWN8PTA7Yz0wfEUwZShjLGYpOylwPTB8bUkobCxjKT9jOjA9PSgwfG55KGwsYykpP3A6YztyZXR1cm4gMHxwfWZ1bmN0aW9uIEUwZShsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0w''@;'; put 'put ''LEE9MDtyZXR1cm4obHw9MCl8fFByKDg1ODU2LDg1NzgxLDEwMjMsODU4NTgpLCgwfGMpPDA/KDB8KHA9MHxhWzIzNisobD0wfGFbbCsxNj4+Ml0pPj4yXSkpPjA/KGw9KDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhhW2wrMjMyPj4yXTw8NikrNHwwLGY9cCstMXww''@;'; put 'put ''LG09Nyk6QT0wOihwPTB8YVsyMzYrKGw9MHxhW2wrMTY+PjJdKT4+Ml0sbD0oMHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkrKGFbbCsyMzI+PjJdPDw2KSs0fDAsZj1wKzF8MCxtPTcpLDc9PSgwfG0pJiYoKGw9MHxhWygwfGFbbD4+Ml0pKyhmPDwyKT4+Ml0pPygwfEFy''@;'; put 'put ''KCgwfGFbMjM2KygwfGFbbCsxNj4+Ml0pPj4yXSktcHwwLGMpKT4wP0E9bDpQcig4NTg2Nyw4NTc4MSwxMDI5LDg1ODU4KTpBPTApLDB8QX1mdW5jdGlvbiBtSShsLGMpe3JldHVybiBsfD0wLDB8KDB8ZmVbMTU2KygwfGFbMTYrKGN8PTApPj4yXSk+PjBdPzA6MCE9KDB8TnIobCxjKSkmMSl9''@;'; put 'put ''ZnVuY3Rpb24gbnkobCxjKXtsfD0wO3ZhciBmPTAscD0wO2lmKDE9PSgwfGZlWzE1NisoYz0wfGFbMTYrKGN8PTApPj4yXSk+PjBdKSYmMT09KDB8YVtjKzE3Nj4+Ml0pJiYxPT0oMHxhW2MrMTg0Pj4yXSkpe2ZvcihjPTB8YVtjKzE4MD4+Ml07MHxmZVsxMTIrKGY9MHxhWzE2KyhjPTB8YVtj''@;'; put 'put ''Pj4yXSk+PjJdKT4+MF07KWM9ZisxMTZ8MDswfE5yKGwsYyk/Yz0xOnA9N31lbHNlIHA9NztyZXR1cm4gNz09KDB8cCkmJihjPTApLDB8Y31mdW5jdGlvbiB0SChsKXtsfD0wO3ZhciBmLHAsYz0wO3A9bGUsbGU9bGUrMTZ8MCxmPXAsYz0wfGFbNDcxNDBdO2U6ZG97aWYoMCE9KDB8Yyl8MCE9''@;'; put 'put ''KDB8YVs0NzE2MV0pKXtpZigwfChjPTB8djIobCxjLDApKSl7c3dpdGNoKDB8ZmVbYz4+MF0pe2Nhc2UgMDpicmVhayBlO2Nhc2UgMTExOmlmKCEoMHxaaShjLDg2MDY5KSkpe0RZKGwsMSk7YnJlYWsgZX1icmVhaztjYXNlIDEwNTppZighKDB8WmkoYyw5ODczNSkpKXtEWShsLDApO2JyZWFr''@;'; put 'put ''IGV9fWFbZj4+Ml09YywkcigxLDg2MDczLGYpO2JyZWFrfWZvcihjPTB8d3MobCk7YzspMHxtSChjKXx8dEgoYyksYz0wfEVzKGMpOzB8YVs0NzE2MV0mJngwZShsKX19d2hpbGUoMCk7bGU9cH1mdW5jdGlvbiB2SShsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3Iodz0wfGl0''@;'; put 'put ''WzIzNisoYz0wfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjFdOyEoKDB8dyk+KDB8aXRbYysyMzg+PjFdKSk7KXtmb3IoZj0wLEE9MDshKCgwfEEpPj0oMHwobT0wfGFbKHA9MHxhW2MrMTk2Pj4yXSkrKHc8PDYpPj4yXSkpKTspZmVbMTU4KyhwPTB8YVsxNisoMHxhWygwfGFbcCsodzw8Nikr''@;'; put 'put ''ND4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+PjBdPTAsZmVbcCsxNTc+PjBdPTAsYVtwKzI4ND4+Ml09QSwwPT0oMHxmKSYoMHxhW3ArMTkyPj4yXSk+MCYmKGY9MHx5SShtLG0pLGFbKDB8YVsxOTYrKGM9MHxhW2I+PjJdKT4+Ml0pKyh3PDw2KSs1Nj4+Ml09ZixmPTEpLEE9QSsxfDA7ZTpkb3tp''@;'; put 'put ''ZihmKWZvcihBPTAsZj1tOzspe2lmKCgwfEEpPj0oMHxmKSlicmVhayBlOzB8ZmVbMTU3KygwfGFbMTYrKG09MHxhWygwfGFbcCsodzw8NikrND4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+PjBdfHwockgobCxtKSxwPWY9MHxhWzE5NisoYz0wfGFbYj4+Ml0pPj4yXSxmPTB8YVtmKyh3PDw2KT4+''@;'; put 'put ''Ml0pLEE9QSsxfDB9fXdoaWxlKDApO3c9dysxfDB9fWZ1bmN0aW9uIElZKGwpe3ZhciBnZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxiZT0wO2lmKDB8ZmVbMjQwKyhjPTB8YVsoZ2U9MTYrKGx8PTApfDApPj4yXSk+PjBdKXttPTAs''@;'; put 'put ''cGU9MHxpdFtjKzIzNj4+MV0scT0wLEE9MDtlOmZvcig7ISgoMHxwZSk+KDB8aXRbYysyMzg+PjFdKSk7KXtpZihwPTB8YVsoZj0wfGFbYysxOTY+PjJdKSsocGU8PDYpPj4yXSl7Zm9yKFI9MHxhWzIzNisoMHxhWzE2KygwfGFbKGY9MHxhW2YrKHBlPDw2KSs0Pj4yXSk+PjJdKT4+Ml0pPj4y''@;'; put 'put ''XSxjPTA7ISgoMHxjKT49KDB8cCkpOylmZVsxNTcrKDB8YVsxNisoMHxhW2YrKGM8PDIpPj4yXSk+PjJdKT4+MF09MCxjPWMrMXwwO2ZvcihjPTQrKGM8PDIpfDAsRz1tPzB8VjAoQSxjKTowfFFuKGMpLE09MCxEPTA7ISgoMHwocD0wfGFbKGY9MHxhWzE5NisoYz0wfGFbZ2U+PjJdKT4+Ml0p''@;'; put 'put ''KyhwZTw8Nik+PjJdKSk8PSgwfEQpKTspe2ZvcihrPTE2Kyh3PTB8YVsoMHxhW2YrKHBlPDw2KSs0Pj4yXSkrKCgwPT0oMSZhW2MrMTE2Pj4yXXwwKT9wK35EfDA6RCk8PDIpPj4yXSl8MCxjPTAsYj0wOzspe2lmKCgwfGMpPj0oMHxhWzIwMCsoQT0wfGFbaz4+Ml0pPj4yXSkpe2Y9MCxwPTAs''@;'; put 'put ''Yz1BO2JyZWFrfUE9YisoMCE9KDB8S0MobCwwfGFbKDB8YVtBKzE5Nj4+Ml0pKyhjPDwyKT4+Ml0pKSYxKXwwLGM9YysxfDAsYj1BfWZvcig7ISgoMHxwKT49KDB8YVtjKzE5Mj4+Ml0pKTspZj1BPWYrKDAhPSgwfEtDKGwsMHxhWygwfGFbYysxODg+PjJdKSsocDw8Mik+PjJdKSkmMSl8MCxw''@;'; put 'put ''PXArMXwwLGM9MHxhW2s+PjJdO2Z8Yj9jPTA9PSgwfGIpJjA9PSgwfGZlW2MrMTU3Pj4wXSk/KDB8dXAobCx3LEcrKE08PDIpfDAscGUpKStNfDA6TTooYVtHKyhNPDwyKT4+Ml09dyxjPU0rMXwwKSxNPWMsRD1EKzF8MH10OmRve2lmKE0pe246ZG97aWYoMSZhW2MrMTE2Pj4yXSlwPTA7ZWxz''@;'; put 'put ''ZSBmb3IoZj1HLGM9RysoTTw8Mil8MDs7KXtpZihmPj4+MD49KGM9YystNHwwKT4+PjApe3A9MDticmVhayBufUQ9MHxhW2Y+PjJdLGFbZj4+Ml09YVtjPj4yXSxhW2M+PjJdPUQsZj1mKzR8MH19d2hpbGUoMCk7Zm9yKDs7KXtpZigoMHxwKT49KDB8KGY9MHxhWyhBPTB8YVsxOTYrKGM9MHxh''@;'; put 'put ''W2dlPj4yXSk+PjJdKSsocGU8PDYpPj4yXSkpKXtNPTAscD1BO2JyZWFrfWFbKDB8YVtBKyhwZTw8NikrND4+Ml0pKyhwPDwyKT4+Ml09RD0wfGFbRysocDw8Mik+PjJdLGFbMjM2KygwfGFbRCsxNj4+Ml0pPj4yXT1wK1IscD1wKzF8MH1mb3IoOzspe2lmKCgwfE0pPj0oMHxmKSlicmVhayB0''@;'; put 'put ''O2lmKEE9MHxhWzE4OCsoMHxhWyhrPTE2KygwfGFbKDB8YVtwKyhwZTw8NikrND4+Ml0pKyhNPDwyKT4+Ml0pfDApPj4yXSk+PjJdKXtmb3IoYj0wLGY9QTtjPTB8YVtnZT4+Ml0scD0wfGFbZisoYjw8Mik+PjJdOyl7aWYoQT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDB8KHc9MyZhW3A+''@;'; put 'put ''PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLHc9MHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgwfHcpP3A6cCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLDEmYVtjKzExNj4+Ml0/KDB8QSk+KDB8dyk/YmU9MzY6Yz1iOigwfEEpPCgwfHcpP2JlPTM2OmM9YiwzNj09KDB8YmUpKXtp''@;'; put 'put ''ZihiZT0wLDB8S0MobCxwKSl7YmU9Mzc7YnJlYWsgZX1LRihwKSxBSShsLHApLGM9YistMXwwLGY9MHxhWzE4OCsoMHxhW2s+PjJdKT4+Ml19Yj1jKzF8MH1wPWY9MHxhW2MrMTk2Pj4yXSxmPTB8YVtmKyhwZTw8Nik+PjJdfU09TSsxfDB9fX13aGlsZSgwKTtmZVsoMHxhWzE5NisoMHxhWzE2''@;'; put 'put ''KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkrKHBlPDw2KSs0OT4+MF09MCxtPUcscD1HLGY9R31lbHNlIHA9cSxmPUE7cGU9cGUrMXwwLHE9cCxBPWZ9Mzc9PSgwfGJlKSYmUHIoODU5MTUsODU3ODEsMTU2MSw4NTk1NCksMHxtJiZGdChxKX19ZnVuY3Rpb24gbkgobCl7dmFyIGYsYz0wO2w9MHxh''@;'; put 'put ''WyhmPTE2KyhsfD0wKXwwKT4+Ml07ZTpkb3tpZigwfGFbbCsyNjg+PjJdKWZvcihjPTB8aXRbbCsyMzY+PjFdOzspe2lmKCgwfGMpPigwfGl0W2wrMjM4Pj4xXSkpYnJlYWsgZTthWygwfGFbbCsyNjg+PjJdKSsoYzw8Mik+PjJdPWFbYVsoMHxhW2wrMTk2Pj4yXSkrKGM8PDYpKzQ+PjJdPj4y''@;'; put 'put ''XSxjPWMrMXwwLGw9MHxhW2Y+PjJdfX13aGlsZSgwKX1mdW5jdGlvbiBLQyhsLGMpe3JldHVybiBsfD0wLDB8KDAhPSgwfGFbMTU2KygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKSYmMCE9KDB8RzYobCwwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSkpPzAhPSgwfEc2KGws''@;'; put 'put ''MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSkmMTowKX1mdW5jdGlvbiB1cChsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgTSxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZlWzE1NysobT0wfGFbKE09MTYrKGN8PTApfDApPj4yXSk+PjBdPTE7ZTpkb3tpZigoMHxhW20r''@;'; put 'put ''MTkyPj4yXSk+MClmb3IoQT0wLGI9MDs7KXtpZighKHc9MHxhWygwfGFbbSsxODg+PjJdKSsoYjw8Mik+PjJdKSlicmVhayBlOzAhPSgwfEtDKGwsdykpJiYwPT0oMHxmZVsxNTcrKDB8YVsxNisoaz0wfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdKSYm''@;'; put 'put ''KEE9KDB8dXAobCxrLGYrKEE8PDIpfDAscCkpK0F8MCksYj1iKzF8MCxtPTB8YVtNPj4yXX1lbHNlIEE9MH13aGlsZSgwKTtyZXR1cm4oMHxhW20rMjMyPj4yXSk9PSgwfHApPyhhW2YrKEE8PDIpPj4yXT1jLEErMXwwKTooUHIoODU5NjcsODU3ODEsMTQ5MCw4NTk4MyksMCl9ZnVuY3Rpb24g''@;'; put 'put ''QUkobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtwPTB8YVsxODgrKDB8YVsxNisoYj0wfGFbKDI9PSgwfCh3PTMmYVsoY3w9MCk+PjJdKSk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdO2U6ZG97aWYocCl7Zm9yKE09Yys0OHwwLG09KDM9PSgw''@;'; put 'put ''fHcpP2M6TSkrNDB8MCxmPTA7Oyl7aWYoIShBPTB8YVtwKyhmPDwyKT4+Ml0pKXtmPU0sRD0xNTticmVhayBlfWlmKCgwfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTpBKy00OHwwKSs0MD4+Ml0pPT0oMHxhW20+PjJdKSlicmVhaztmPWYrMXwwfXo2KGMsQSksMHxhWyhmPTE3MisoMHxhW2MrMTY+''@;'; put 'put ''PjJdKXwwKT4+Ml18fChhW2Y+PjJdPUEpLDQ9PSgwfGZlWzExMisoZj0wfGFbQSsxNj4+Ml0pPj4wXSkmJjA9PSgwfGFbKGs9ZisxMTZ8MCk+PjJdKSYmKGFbaz4+Ml09YyksZj0ocD0wfGFbMjA0KyhmPTB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKT4+Ml0pPj4y''@;'; put 'put ''XSk/MHxWMChwLDgrKGFbZisyMDg+PjJdPDwyKXwwKTowfFFuKDgrKGFbZisyMDg+PjJdPDwyKXwwKSxhWzIwNCsoMHxhWzE2KygwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpNKSs0MD4+Ml0pPj4yXSk+PjJdPWYsYj0wfGFbMjA0Kyh3PTB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6''@;'; put 'put ''TSkrNDA+PjJdKT4+Ml0pPj4yXSxhWyh3PXcrMjA4fDApPj4yXT0xKyhrPTB8YVt3Pj4yXSksYVtiKyhrPDwyKT4+Ml09YyxhWygwfGFbMjA0KyhjPTB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6TSkrNDA+PjJdKT4+Ml0pPj4yXSkrKGFbYysyMDg+PjJdPDwyKT4+Ml09MH1lbHNl''@;'; put 'put ''IGY9Yys0OHwwLEQ9MTV9d2hpbGUoMCk7MTU9PSgwfEQpJiYoRD0wfCRBKGIsMHxhWygzPT0oMHx3KT9jOmYpKzQwPj4yXSxjKSxNPTB8YVtjKzE2Pj4yXSxmZVsxMTIrKGM9MHxhW0QrMTY+PjJdKT4+MF09ND09KDB8ZmVbTSsxMTI+PjBdKT80OjMsYVtjKzk2Pj4yXT1hW00rOTY+PjJdLGhJ''@;'; put 'put ''KGwsRCkpfWZ1bmN0aW9uIEc2KGwsYyl7dmFyIGY7cmV0dXJuIGY9MHxtSShsfD0wLGN8PTApLDB8bnkobCxjKXxmfDB9ZnVuY3Rpb24geUkobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCxjfD0wLGY9MHx2cigxMiksYVtmPj4yXT1sLGFbZis0Pj4yXT1jLGFbZis4Pj4yXT0wfHZyKDB8QXIoYyxs''@;'; put 'put ''KSksMHxmfWZ1bmN0aW9uIHJIKGwsYyl7dmFyIGssRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MCxxPTAscGU9MCxnZT0wO2s9MHxhWygwfGFbMTk2KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSsoYVsyMzIrKE09MHxhWyhHPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXTw8Nikr''@;'; put 'put ''NTY+PjJdLGZlW00rMTU3Pj4wXT0xLGZlW00rMTU4Pj4wXT0xLE09KDB8YVsxODArKDB8YVsxNisoMHx5YShsKSk+PjJdKT4+Ml0pPjAscD0wfGFbMTg4KyhmPTB8YVtHPj4yXSk+PjJdO2U6ZG97aWYocCl7RD1rKzR8MCxSPWsrOHwwLGM9MDt0OmZvcig7Oyl7aWYoIShiPTB8YVtwKyhjPDwy''@;'; put 'put ''KT4+Ml0pKXtxPWY7YnJlYWsgZX1NPzAhPSgwfE5yKGwsMHxhWygzPT0oMyZhW2I+PjJdfDApP2I6Yis0OHwwKSs0MD4+Ml0pKSYmMCE9KDB8TnIobCwwfGFbKDI9PSgzJmFbYj4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0pKSYmKHBlPTcpOnBlPTc7ZG97aWYoNz09KDB8cGUpJiYocGU9MCww''@;'; put 'put ''fGFbMTU2KygwfGFbKEE9YisxNnwwKT4+Ml0pPj4yXSkpe2lmKG09YistNDh8MCxwPSgwfCh3PTB8YVsyODQrKGdlPTB8YVsxNisoMHxhWygyPT0oMHwoZj0zJmFbYj4+Ml0pKT9iOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKTwoMHxhW2s+PjJdKSwxPT0oMHxmZVtnZSsxNTg+PjBdKSl7aWYoIXAp''@;'; put 'put ''e3BlPTEwO2JyZWFrIHR9aWYoKDB8KGY9MHxhWzI4NCsoMHxhWzE2KygwfGFbKDM9PSgwfGYpP2I6Yis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk+PSgwfChwPTB8YVtEPj4yXSkpKXtwZT0xMjticmVhayB0fWlmKGZlWygwfGFbUj4+Ml0pKygoMHxBcihwLHcpKStmKT4+MF09MSxLRihiKSxj''@;'; put 'put ''PWMrLTF8MCw0PT0oMHxmZVsxMTIrKDB8YVtBPj4yXSk+PjBdKSlicmVhaztBSShsLGIpO2JyZWFrfWlmKCFwKXtwZT0xNjticmVhayB0fWlmKCgwfChmPTB8YVsyODQrKDB8YVsxNisoMHxhWygzPT0oMHxmKT9iOmIrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPj0oMHwocD0wfGFbRD4+Ml0p''@;'; put 'put ''KSl7cGU9MTg7YnJlYWsgdH1pZihmZVsoMHxhW1I+PjJdKSsoKDB8QXIocCxmKSkrdyk+PjBdPTEsMHxmZVsxNTcrKDB8YVsxNisoZj0wfGFbKDI9PSgzJmFbYj4+Ml18MCk/YjptKSs0MD4+Ml0pPj4yXSk+PjBdKWJyZWFrO3JIKGwsZik7YnJlYWt9fXdoaWxlKDApO2M9YysxfDAsZj1wPTB8''@;'; put 'put ''YVtHPj4yXSxwPTB8YVtwKzE4OD4+Ml19MTA9PSgwfHBlKT9Qcig4NTk5Myw4NTc4MSwxMjUxLDg2MDI1KToxMj09KDB8cGUpP1ByKDg2MDM3LDg1NzgxLDEyNTIsODYwMjUpOjE2PT0oMHxwZSk/UHIoODU5OTMsODU3ODEsMTI2MCw4NjAyNSk6MTg9PSgwfHBlKSYmUHIoODYwMzcsODU3ODEs''@;'; put 'put ''MTI2MSw4NjAyNSl9ZWxzZSBxPWZ9d2hpbGUoMCk7ZmVbcSsxNTg+PjBdPTB9ZnVuY3Rpb24gRFkobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOylpSChsLGYsYyksZj0wfHp0KGwsZil9ZnVuY3Rpb24geDBlKGwpe3ZhciBwLG0sYz0wLGY9MCxBPTA7Zm9yKG09bGUsbGU9''@;'; put 'put ''bGUrMTZ8MCxwPW0sYz0wfER0KGx8PTApO2M7KXtmPTB8djIoYywwfGFbNDcxNjFdLDApO2U6ZG97aWYoMHxmKXtzd2l0Y2goMHxmZVtmPj4wXSl7Y2FzZSAwOmJyZWFrIGU7Y2FzZSAxMTE6aWYoISgwfFppKGYsODYwNjkpKSl7aUgobCxjLDEpO2JyZWFrIGV9YnJlYWs7Y2FzZSAxMDU6aWYo''@;'; put 'put ''ISgwfFppKGYsOTg3MzUpKSl7aUgobCxjLDApO2JyZWFrIGV9fUE9MHx0aShjKSxhW3A+PjJdPWYsYVtwKzQ+PjJdPUEsJHIoMSw4NjEwNCxwKX19d2hpbGUoMCk7Yz0wfHp0KGwsYyl9bGU9bX1mdW5jdGlvbiBpSChsLGMsZil7bHw9MCxmfD0wO3ZhciBiLHA9MCxtPTAsQT0wLHc9MDtiPTB8''@;'; put 'put ''YVs0Njc0MF0scD0wfGFbKEE9MTYrKGN8PTApfDApPj4yXTtlOmRve2lmKCEoMHxhW3ArMjEyPj4yXSkpe3c9MCE9KDB8Zik7dDpkb3tpZih3KWZvcihtPTAsYz0wLGY9cDs7KXtpZighKHA9MHxhWygwfGFbZisxODA+PjJdKSsobTw8Mik+PjJdKSlicmVhayB0OzB8TFkocCl8fChhW2IrKGM8''@;'; put 'put ''PDIpPj4yXT1wLGM9YysxfDAsZj0wfGFbQT4+Ml0pLG09bSsxfDB9ZWxzZSBmb3IobT0wLGM9MCxmPXA7Oyl7aWYoIShwPTB8YVsoMHxhW2YrMTcyPj4yXSkrKG08PDIpPj4yXSkpYnJlYWsgdDswfExZKHApfHwoYVtiKyhjPDwyKT4+Ml09cCxjPWMrMXwwLGY9MHxhW0E+PjJdKSxtPW0rMXww''@;'; put 'put ''fX13aGlsZSgwKTtpZigoMHxjKT49Milmb3IoYVtiKyhjPDwyKT4+Ml09MCx4MShiLGMsNCw2MSksQT13PzI6MyxtPXc/LTE6MSxwPTE7Oyl7aWYoIShjPTB8YVtiKyhwPDwyKT4+Ml0pfHwwfE1ZKGY9MHxhWygoMyZhWyhmPTB8YVtiKyhwKy0xPDwyKT4+Ml0pPj4yXXwwKT09KDB8QSk/Zjpm''@;'; put 'put ''Kyg0OCptfDApfDApKzQwPj4yXSxjPTB8YVsoKDMmYVtjPj4yXXwwKT09KDB8QSk/YzpjKyg0OCptfDApfDApKzQwPj4yXSkpYnJlYWsgZTt3PTB8JEEoZixjLDApLGZlWzExMisoMHxhW3crMTY+PjJdKT4+MF09NCxoSShsLHcpLHA9cCsxfDB9fX13aGlsZSgwKX1mdW5jdGlvbiBMWShsKXts''@;'; put 'put ''fD0wO2Zvcih2YXIgYz0wO2M9MHxhWzExNisoMHxhW2wrMTY+PjJdKT4+Ml07KWw9YztyZXR1cm4oMHxhWzIxMisoMHxhWzE2KygwfGFbKDM9PSgwfChjPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSE9KDB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMHxjKT9sOmwr''@;'; put 'put ''LTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pfDB9ZnVuY3Rpb24gJEMobCl7bHw9MDt2YXIgQSx3LGM9MCxmPTAscD0wLG09MDtmb3IocD0wLG09MHxpdFsyMzYrKGY9MHxhWyh3PTE2KyhBPTB8YVs0Njc0MV0pfDApPj4yXSk+PjFdOyEoKDB8bSk+PSgwfGl0W2YrMjM4Pj4xXSkpOykwfGZlWyhs''@;'; put 'put ''PTB8YVtmKzE5Nj4+Ml0pKyhtPDw2KSs0OT4+MF0/KGM9MHxhW2wrKG08PDYpKzUyPj4yXSxsPWYpOihjPTB8TlkoQSxtKSxhWyhmPTB8YVsxOTYrKGw9MHxhW3c+PjJdKT4+Ml0pKyhtPDw2KSs1Mj4+Ml09YyxmZVtmKyhtPDw2KSs0OT4+MF09MSkscD1jK3B8MCxtPW0rMXwwLGY9bDtyZXR1''@;'; put 'put ''cm4gMHxwfWZ1bmN0aW9uIG9IKGwpe3ZhciBtLEEsYz0wLGY9MCxwPTAsdz0wO2ZvcihtPTB8aXRbMjM4KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+MV0sQT1sKzE5NnwwLGw9MHxpdFtsKzIzNj4+MV07ISgoMHxsKT4oMHxtKSk7KXtmb3IoZj0wfGFbKHA9MHxhW0E+PjJdKSsobDw8Nik+PjJd''@;'; put 'put ''LHA9cCsobDw8NikrNHwwLGM9MDshKCgwfGMpPj0oMHxmKSk7KV9bMTYrKHc9MHxhWzE2KygwfGFbKDB8YVtwPj4yXSkrKGM8PDIpPj4yXSk+PjJdKT4+M109KygwfGFbdysyMzY+PjJdKSxjPWMrMXwwO2w9bCsxfDB9fWZ1bmN0aW9uIE9ZKGwsYyl7Y3w9MDt2YXIgayxNLEQscSxmPTAscD0w''@;'; put 'put ''LG09MCxBPTAsdz0wLGI9MCxSPTAsRz0wO2ZvcihxPWxlLGxlPWxlKzE2fDAsaz1xLEQ9MHx1RCgwfGFbMjMyKygwfGFbKE09MTYrKGx8PTApfDApPj4yXSk+PjJdKSxwPWY9MTkyKyh3PTB8YVtNPj4yXSl8MDtwPTB8YVtwPj4yXTspZmVbMTU3KyhwPTB8YVtwKzE2Pj4yXSk+PjBdPTAscD1w''@;'; put 'put ''KzE2NHwwO2ZvcihtPTB8aXRbdysyMzg+PjFdLEE9dysxOTZ8MCxwPTB8aXRbdysyMzY+PjFdOyEoKDB8cCk+KDB8bSkpOylhWygwfGFbQT4+Ml0pKyhwPDw2KT4+Ml09MCxwPXArMXwwO2ZvcihBPTA9PSgwfGMpO3A9MHxhW2Y+PjJdOyl7aWYoZj0wfGFbKG09cCsxNnwwKT4+Ml0sMD09KDB8''@;'; put 'put ''YVthWyhBP2YrMTcyfDA6ZisxODB8MCk+PjJdPj4yXSkmJjA9PSgwfGZlWyhiPWYrMTU3fDApPj4wXSkpe2ZvcihmZVtiPj4wXT0xLEQ3KEQscCk7Zj0wfGNEKEQpOyk3IT0oMHxmZVsxNTkrKDB8YVtmKzE2Pj4yXSk+PjBdKT8oSFkobCxmKSxxQyhELGYsYykpOm1vZShsLGYsYyxEKTtmPTB8''@;'; put 'put ''YVttPj4yXX1mPWYrMTY0fDB9Zm9yKDB8Y0QoRCkmJiRyKDEsODYzMTIsayksdz0wfGl0WzIzNisoZj0wfGFbTT4+Ml0pPj4xXTshKCgwfHcpPigwfGl0W2YrMjM4Pj4xXSkpOyl7aWYoZmVbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyh3PDw2KSs0OT4+MF09MCww''@;'; put 'put ''IT0oMSZhW2YrMTE2Pj4yXXwwKSYmKDB8KEc9MHxhWyhSPTB8YVtmKzE5Nj4+Ml0pKyh3PDw2KT4+Ml0pKT4wKXtmb3IocD0wfGFbUisodzw8NikrND4+Ml0sQT0oMHwobT1HKy0xfDApKS8yfDAsZj0wOyEoKDB8Zik+KDB8QSkpOyljcCgwfGFbcCsoZjw8Mik+PjJdLDB8YVtwKyhtLWY8PDIp''@;'; put 'put ''Pj4yXSksZj1mKzF8MDtmPTB8YVtNPj4yXX13PXcrMXwwfSgwfHlhKGwpKT09KDB8bCkmJigwfCRDKDApKT4wJiZ3SShsLDApLGRKKEQpLGxlPXF9ZnVuY3Rpb24gUlkobCl7dmFyIGIsayxNLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLEQ9MDtmb3IoYj0oYz0wfGl0WzIzOCsobD0wfGFbKE09''@;'; put 'put ''MTYrKGx8PTApfDApPj4yXSk+PjFdKTw8MTY+PjE2LGs9bCsxOTZ8MCxwPWY9MHxpdFtsKzIzNj4+MV07ISgoMHxwKT4oMHxiKSk7KXtmb3IoQT0wfGFbKHc9MHxhW2s+PjJdKSsocDw8Nik+PjJdLHc9dysocDw8NikrNHwwLG09MDshKCgwfG0pPj0oMHxBKSk7KWFbMjM2KyhEPTB8YVsxNiso''@;'; put 'put ''MHxhWygwfGFbdz4+Ml0pKyhtPDwyKT4+Ml0pPj4yXSk+PjJdPX5+K19bRCsxNj4+M10sbT1tKzF8MDtwPXArMXwwfWZvcig7ISgoMHxmKT4oYzw8MTY+PjE2fDApKTspZmVbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhmPDw2KSs0OT4+MF09MCx4MSgwfGFbKEQ9''@;'; put 'put ''MHxhW2wrMTk2Pj4yXSkrKGY8PDYpKzQ+PjJdLDB8YVtEKyhmPDw2KT4+Ml0sNCw2MiksZj1mKzF8MCxjPTB8aXRbMjM4KyhEPTB8YVtNPj4yXSk+PjFdLGw9RH1mdW5jdGlvbiBEMGUobCxjKXt2YXIgbSxmPTAscD0wO2ZvcihtPSgwfCgwfChjfD0wKSklNCk8MiYxLGY9MHxhWzE2KyhsfD0w''@;'; put 'put ''KT4+Ml0sMSZjPyhjPTB8aXRbZisyMzg+PjFdLHA9LTEsZj0wfGl0W2YrMjM2Pj4xXSxjPSgoYzw8MTY+PjE2Pj0oMHxpdFsyMzgrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+MV0pKTw8MzE+PjMxKSsoYzw8MTY+PjE2KXwwKTooYz0wfGl0W2YrMjM2Pj4xXSxwPTEsZj0wfGl0W2YrMjM4''@;'; put 'put ''Pj4xXSxjPShjPDwxNj4+MTY8PSgwfGl0WzIzNisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4xXSkmMSkrKGM8PDE2Pj4xNil8MCksZj1wK2Z8MDsoMHxjKSE9KDB8Zik7KU8wZShsLGMsbSwyNTUmKDB8UFkobCxjLGMtcHwwKSkpLGM9YytwfDA7d0kobCwxXm0pfWZ1bmN0aW9uIHdJKGws''@;'; put 'put ''Yyl7Y3w9MDt2YXIgQSx3LGIsZj0wLHA9MCxtPTA7Zm9yKHc9MHxpdFsyMzgrKHA9MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSxtPXArMTk2fDAsZj0oQT0wfGl0W3ArMjM2Pj4xXSk8PDE2Pj4xNjs7KXtpZigoMHxmKT4oMHx3KSl7bT1BO2JyZWFrfWZlWygwfGFbbT4+Ml0pKyhmPDw2''@;'; put 'put ''KSs0OD4+MF09MSxmPWYrMXwwfWZvcig7Oyl7Zm9yKGY9MCxtPW08PDE2Pj4xNjshKCgwfG0pPigwfGl0W3ArMjM4Pj4xXSkpOykwfGZlWygwfGFbcCsxOTY+PjJdKSsobTw8NikrNDg+PjBdJiYoZj0oMHxCWShsLG0sYykpK2Z8MCxwPTB8YVtiPj4yXSksbT1tKzF8MDtpZigoMHxmKTw9MCli''@;'; put 'put ''cmVhazttPTB8aXRbcCsyMzY+PjFdfX1mdW5jdGlvbiBMMGUobCl7dmFyIFIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxxPTA7RD0wfGl0WzIzOCsoYz0wfGFbKFI9MTYrKGx8PTApfDApPj4yXSk+PjFdO2U6Zm9yKDs7KXtpZigoMHxEKTwoMHxpdFtjKzIz''@;'; put 'put ''Nj4+MV0pKXtjPTE2O2JyZWFrfWZlWyhmPTB8YVtjKzE5Nj4+Ml0pKyhEPDw2KSs0OD4+MF09MCxHPSgwfEQpPjAscT1EKzF8MCxwPTA7dDpmb3IoOzspe2ZvcihrPSgwfGFbZisoRDw8Nik+PjJdKS0xfDAsTT1mKyhEPDw2KSs0fDAsYj1mKyhxPDw2KXwwOzspe2lmKCgwfHApPj0oMHxrKSli''@;'; put 'put ''cmVhayB0O2lmKCgwfGFbMjM2KygwfGFbMTYrKEE9MHxhWyh3PTB8YVtNPj4yXSkrKHA8PDIpPj4yXSk+PjJdKT4+Ml0pPj0oMHxhWzIzNisoMHxhWzE2Kyh3PTB8YVt3KygocD1wKzF8MCk8PDIpPj4yXSk+PjJdKT4+Ml0pKXtjPTc7YnJlYWsgZX1pZighKDB8YkkobCxBLHcpKSYmKEc/KGY9''@;'; put 'put ''MHxyeShBLHcpLG09MHxyeSh3LEEpKTooZj0wLG09MCksKDB8YVtiPj4yXSk+MCYmKGY9KDB8aXkoQSx3KSkrZnwwLG09KDB8aXkodyxBKSkrbXwwKSwoMHxtKTw9KDB8ZikpKWJyZWFrfVc2KGwsRCxBLHcpLGY9MHxhWzE5NisoYz0wfGFbUj4+Ml0pPj4yXX1EPUQrLTF8MH1pZig3PT0oMHxj''@;'; put 'put ''KSlQcig4NjI2Myw4NTc4MSw3MjEsODYyODkpO2Vsc2UgaWYoMTY9PSgwfGMpKXJldHVybn1mdW5jdGlvbiBiSShsLGMsZil7bHw9MDt2YXIgbSxBLHcscD0wLGI9MCxrPTA7QT0oMHwodz0wfGFbMjEyKyhiPTB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pKSE9KDB8KG09MHxhWzIxMisocD0wfGFb''@;'; put 'put ''MTYrKGZ8PTApPj4yXSk+PjJdKSk7ZG97aWYoMHxmZVsxOTM3NjldKUE/bD0xOms9OTtlbHNlIGlmKDA9PSgwfG0pfDA9PSgwfHcpfDFeQSlrPTk7ZWxzZXtpZig3PT0oMHxmZVtiKzE1OT4+MF0pJiYxPT0oMHxmZVtiKzE1Nj4+MF0pKXtsPTA7YnJlYWt9aWYoNz09KDB8ZmVbcCsxNTk+PjBd''@;'; put 'put ''KSYmMT09KDB8ZmVbcCsxNTY+PjBdKSl7bD0wO2JyZWFrfWw9MX19d2hpbGUoMCk7cmV0dXJuIDk9PSgwfGspJiYoKGw9MHxhWygwfGFbMTk2KyhwPTB8YVtsKzE2Pj4yXSk+PjJdKSsoYVtiKzIzMj4+Ml08PDYpKzU2Pj4yXSk/KGs9MHxBcigwfGFbbCs0Pj4yXSwwfGFbMjg0KygwfGFbKChi''@;'; put 'put ''PTA9PSgxJmFbcCsxMTY+PjJdfDApKT9jOmYpKzE2Pj4yXSk+PjJdKSxsPTB8ZmVbKDB8YVtsKzg+PjJdKSsoKDB8YVsyODQrKDB8YVsoYj9mOmMpKzE2Pj4yXSk+PjJdKStrKT4+MF0pOmw9MCksMHxsfWZ1bmN0aW9uIHJ5KGwsYyl7dmFyIGssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0w''@;'; put 'put ''LEQ9MDtmb3Ioaz0xNisobHw9MCl8MCx3PTB8YVsxNzIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0sYz0wO2w9MHxhW3c+PjJdOyl7Zm9yKGI9MHxpdFsxNTQrKEE9MHxhW2wrMTY+PjJdKT4+MV0sbT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+''@;'; put 'put ''PjJdKT4+Ml0pPj4yXSxBPUErMTZ8MCxwPTB8YVsxNzIrKDB8YVtrPj4yXSk+PjJdLGw9YztjPTB8YVtwPj4yXTspKDB8KGY9KDB8YVsyMzYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS1tfDApKTw9MD8wPT0oMHxmKSYmK19bMTYr''@;'; put 'put ''KE09MHxhW2MrMTY+PjJdKT4+M10+K19bQT4+M10mJihjPU0sRD05KTooYz0wfGFbYysxNj4+Ml0sRD05KSw5PT0oMHxEKSYmKEQ9MCxsPSgwfEFyKDB8aXRbYysxNTQ+PjFdLGIpKStsfDApLHA9cCs0fDA7dz13KzR8MCxjPWx9cmV0dXJuIDB8Y31mdW5jdGlvbiBpeShsLGMpe3ZhciBrLGY9''@;'; put 'put ''MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MCxEPTA7Zm9yKGs9MTYrKGx8PTApfDAsdz0wfGFbMTgwKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdLGM9MDtsPTB8YVt3Pj4yXTspe2ZvcihiPTB8aXRbMTU0KyhBPTB8YVtsKzE2Pj4yXSk+PjFdLG09MHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgz''@;'; put 'put ''JmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdLEE9QSs1NnwwLHA9MHxhWzE4MCsoMHxhW2s+PjJdKT4+Ml0sbD1jO2M9MHxhW3A+PjJdOykoMHwoZj0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJd''@;'; put 'put ''KS1tfDApKTw9MD8wPT0oMHxmKSYmK19bNTYrKE09MHxhW2MrMTY+PjJdKT4+M10+K19bQT4+M10mJihjPU0sRD05KTooYz0wfGFbYysxNj4+Ml0sRD05KSw5PT0oMHxEKSYmKEQ9MCxsPSgwfEFyKDB8aXRbYysxNTQ+PjFdLGIpKStsfDApLHA9cCs0fDA7dz13KzR8MCxjPWx9cmV0dXJuIDB8''@;'; put 'put ''Y31mdW5jdGlvbiBXNihsLGMsZixwKXtsfD0wLGN8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO2lmKCh3PTB8ZmVbMTU2KygwfGFbMTYrKGZ8PTApPj4yXSk+PjBdKTw8MjQ+PjI0IT0oMHxmZVsxNTYrKDB8YVsxNisocHw9MCk+PjJdKT4+MF0pKXtmb3Ioaz0w''@;'; put 'put ''fGFbKE09MHxhWzE5NisoMHxhWyhiPWwrMTZ8MCk+PjJdKT4+Ml0pKyhjPDw2KT4+Ml0sTT1NKyhjPDw2KSs0fDAsbD0wLG09MCxBPTA7ISgoMHxsKT49KDB8aykpOylHPTA9PSgwfGZlWzE1NisoMHxhWzE2KygwfGFbKDB8YVtNPj4yXSkrKGw8PDIpPj4yXSk+PjJdKT4+MF0pLGw9bCsxfDAs''@;'; put 'put ''bT1tKygxJkcpfDAsQT1BKygxJigxXkcpKXwwO2Zvcih3PXc8PDI0Pj4yND09MCxBPSgwfG0pPCgwfEEpP3c/ZjpwOnc/cDpmLHc9MCxsPTA7ISgoMHxsKT49KDB8aykpOyl3PSgwfGFbKDB8YVtNPj4yXSkrKGw8PDIpPj4yXSk9PSgwfEEpP2w6dyxsPWwrMXwwO2ZvcihHPTA9PSgwfGZlWzE1''@;'; put 'put ''NisoMHxhW0ErMTY+PjJdKT4+MF0pJjEsUj0wLG09dzs7KXtpZihsPW0rLTF8MCwoMHxtKTw9MCl7RD0wLGw9dzticmVha31pZigoMHxmZVsxNTYrKDB8YVsxNisoMHxhWygwfGFbTT4+Ml0pKyhsPDwyKT4+Ml0pPj4yXSk+PjBdKSE9KDB8Rykpe0Q9MCxsPXc7YnJlYWt9Uj1SKzF8MCxtPWx9''@;'; put 'put ''Zm9yKDshKCgwfChsPWwrMXwwKSk+PSgwfGspfHwoMHxmZVsxNTYrKDB8YVsxNisoMHxhWygwfGFbTT4+Ml0pKyhsPDwyKT4+Ml0pPj4yXSk+PjBdKSE9KDB8RykpOylEPUQrMXwwO2ZvcihjcChmLHApLGs9MHxhWyhiPTB8YVsxOTYrKDB8YVtiPj4yXSk+PjJdKSsoYzw8Nik+PjJdLGI9Yiso''@;'; put 'put ''Yzw8NikrNHwwLGw9MDs7KXtpZigoMHxsKT49KDB8aykpe0E9MCxtPXc7YnJlYWt9dz0oMHxhWygwfGFbYj4+Ml0pKyhsPDwyKT4+Ml0pPT0oMHxBKT9sOncsbD1sKzF8MH1mb3IoOzspe2lmKGw9bSstMXwwLCgwfG0pPD0wKXttPTAsbD13O2JyZWFrfWlmKCgwfGZlWzE1NisoMHxhWzE2Kygw''@;'; put 'put ''fGFbKDB8YVtiPj4yXSkrKGw8PDIpPj4yXSk+PjJdKT4+MF0pIT0oMHxHKSl7bT0wLGw9dzticmVha31BPUErMXwwLG09bH1mb3IoOyEoKDB8KGw9bCsxfDApKT49KDB8ayl8fCgwfGZlWzE1NisoMHxhWzE2KygwfGFbKDB8YVtiPj4yXSkrKGw8PDIpPj4yXSk+PjJdKT4+MF0pIT0oMHxHKSk7''@;'; put 'put ''KW09bSsxfDA7KDB8KCgwfChjPUEtbXwwKSk+LTE/YzowLWN8MCkpPigwfCgoMHwoRz1SLUR8MCkpPi0xP0c6MC1HfDApKSYmY3AoZixwKX19ZnVuY3Rpb24gY3AobCxjKXt2YXIgZixwLEEsdyxtPTA7cD0wfGFbMjMyKyhtPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sZj0wfGFbKG09bSsyMzZ8''@;'; put 'put ''MCk+PjJdLGFbbT4+Ml09dz0wfGFbMjM2KygwfGFbKEE9MTYrKGN8PTApfDApPj4yXSk+PjJdLGFbKDB8YVsoMHxhWzE5NisoMHxhWyhtPTE2KygwfGFbNDY3NDFdKXwwKT4+Ml0pPj4yXSkrKHA8PDYpKzQ+PjJdKSsodzw8Mik+PjJdPWwsYVsyMzYrKDB8YVtBPj4yXSk+PjJdPWYsYVsoMHxh''@;'; put 'put ''WygwfGFbMTk2KygwfGFbbT4+Ml0pPj4yXSkrKHA8PDYpKzQ+PjJdKSsoZjw8Mik+PjJdPWN9ZnVuY3Rpb24gQlkobCxjLGYpe2Z8PTA7dmFyIFIsRyxxLHBlLGdlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7ZmVbKEQ9MHxhWzE5NisoMHxhWyhxPTE2KyhsfD0wKXwwKT4+Ml0p''@;'; put 'put ''Pj4yXSkrKChjfD0wKTw8NikrNDg+PjBdPTAscGU9KDB8Yyk+MCxnZT1jKzF8MCxSPTAhPSgwfGYpLEc9YystMXwwLHA9MCxBPTAsZj1EO2U6Zm9yKDs7KXtmb3Ioaz0oMHxhW2YrKGM8PDYpPj4yXSktMXwwLE09ZisoYzw8NikrNHwwLG09ZisoZ2U8PDYpfDAsRD1wOzspe2lmKCgwfEQpPj0o''@;'; put 'put ''MHxrKSl7Zj0xNzticmVhayBlfWlmKCgwfGFbMjM2KygwfGFbMTYrKHc9MHxhWyhiPTB8YVtNPj4yXSkrKEQ8PDIpPj4yXSk+PjJdKT4+Ml0pPj0oMHxhWzIzNisoMHxhWzE2KyhiPTB8YVtiKygoRD1EKzF8MCk8PDIpPj4yXSk+PjJdKT4+Ml0pKXtmPTU7YnJlYWsgZX1pZighKDB8YkkobCx3''@;'; put 'put ''LGIpKSl7aWYocGU/KGY9MHxyeSh3LGIpLHA9MHxyeShiLHcpKTooZj0wLHA9MCksKDB8YVttPj4yXSk+MCYmKGY9KDB8aXkodyxiKSkrZnwwLHA9KDB8aXkoYix3KSkrcHwwKSwoMHxmKT4oMHxwKSlicmVhaztpZigoMHxmKT09KDB8cCkmUiYoMHxmKT4wKXtmPXA7YnJlYWt9fX1jcCh3LGIp''@;'; put 'put ''LEE9Zi1wK0F8MCxmZVsocD0wfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoYzw8NikrNDk+PjBdPTAsZmVbKGY9MHxhWzE5NisobT0wfGFbcT4+Ml0pPj4yXSkrKGM8PDYpKzQ4Pj4wXT0xLCgwfGl0W20rMjM2Pj4xXSk8KDB8YykmJihmZVtwKyhHPDw2KSs0OT4+MF09''@;'; put 'put ''MCxmZVtmKyhHPDw2KSs0OD4+MF09MSksKDB8aXRbbSsyMzg+PjFdKTw9KDB8Yyl8fChmZVtwKyhnZTw8NikrNDk+PjBdPTAsZmVbZisoZ2U8PDYpKzQ4Pj4wXT0xKSxwPUR9aWYoNT09KDB8ZikpUHIoODYyNjMsODU3ODEsNzcwLDg2Mjk3KTtlbHNlIGlmKDE3PT0oMHxmKSlyZXR1cm4gMHxB''@;'; put 'put ''O3JldHVybiAwfWZ1bmN0aW9uIFBZKGwsYyxmKXt2YXIgTSxELEcscSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxSPTA7Zm9yKHE9MHxhWyhsPTB8YVsxOTYrKDB8YVsoRz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKygoY3w9MCk8PDYpKzQ+PjJdLE09KDB8KGZ8PTApKT4oMHxjKSxEPTQrKFI9''@;'; put 'put ''MHxhWzQ2NzM5XSl8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfChmPTB8YVtsKyhjPDw2KT4+Ml0pKSl7bD0wLEE9MDticmVha31sPTB8YVsoYj0xNisoMHxhW3ErKGs8PDIpPj4yXSl8MCk+PjJdO2U6ZG97aWYoTSlmb3Iodz0wfGFbbCsxODA+PjJdLGw9MCxBPTA7Oyl7aWYoIShmPTB8YVt3KyhB''@;'; put 'put ''PDwyKT4+Ml0pKWJyZWFrIGU7KDB8aXRbMTU0KyhwPTB8YVtmKzE2Pj4yXSk+PjFdKT4wJiYoYVtSKyhsPDwyKT4+Ml09YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTw8OHxYdFtwKzg4Pj4wXSxsPWwrMXwwKSxBPUErMXww''@;'; put 'put ''fWVsc2UgZm9yKHc9MHxhW2wrMTcyPj4yXSxBPTAsbD0wOzspe2lmKCEoZj0wfGFbdysoQTw8Mik+PjJdKSlicmVhayBlOygwfGl0WzE1NCsocD0wfGFbZisxNj4+Ml0pPj4xXSk+MCYmKGFbUisobDw8Mik+PjJdPWFbMjM2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYrNDh8''@;'; put 'put ''MCkrNDA+PjJdKT4+Ml0pPj4yXTw8OHxYdFtwKzQ4Pj4wXSxsPWwrMXwwKSxBPUErMXwwfX13aGlsZSgwKTtlOmRve3N3aXRjaCgwfGwpe2Nhc2UgMDptPS0xO2JyZWFrO2Nhc2UgMTptPSsoMHxhW1I+PjJdKTticmVhaztjYXNlIDI6bT0rKDB8KCgwfGFbRD4+Ml0pKygwfGFbUj4+Ml0pfDAp''@;'; put 'put ''LzIpO2JyZWFrO2RlZmF1bHQ6aWYoeDEoUixsLDQsNjApLGY9KDB8bCkvMnwwLDEmbHwwKXttPSsoMHxhW1IrKGY8PDIpPj4yXSk7YnJlYWsgZX1pZihwPSgwfGFbUisobCstMTw8Mik+PjJdKS0oQT0wfGFbUisoZjw8Mik+PjJdKXwwLCgwfChmPShsPTB8YVtSKyhmKy0xPDwyKT4+Ml0pLSgw''@;'; put 'put ''fGFbUj4+Ml0pfDApKT09KDB8cCkpe209KygwfChsK0F8MCkvMik7YnJlYWsgZX1tPSsoMHwoKDB8QXIoZixBKSkrKDB8QXIobCxwKSl8MCkvKGYrcHwwKSk7YnJlYWsgZX19d2hpbGUoMCk7X1syNDArKDB8YVtiPj4yXSk+PjNdPW0saz1rKzF8MCxsPTB8YVsxOTYrKDB8YVtHPj4yXSk+PjJd''@;'; put 'put ''fWZvcig7ISgoMHxBKT49KDB8ZikpOykwPT0oMHxhWzE4NCsoUj0wfGFbMTYrKHA9MHxhW3ErKEE8PDIpPj4yXSk+PjJdKT4+Ml0pJiYwPT0oMHxhW1IrMTc2Pj4yXSkmJihsPTI1NSYoMHxQdShwKXwyNTUmbCksZj0wfGFbKDB8YVsxOTYrKDB8YVtHPj4yXSk+PjJdKSsoYzw8Nik+PjJdKSxB''@;'; put 'put ''PUErMXwwO3JldHVybiAwfGx9ZnVuY3Rpb24gTzBlKGwsYyxmLHApe3ZhciBHLHEsZ2UsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxwZT0wO2ZvcihnZT0wfGFbKFI9MHxhWzE5NisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSkrKChjfD0wKTw8NikrND4+Ml0scT0wIT0oMHwoZnw9''@;'; put 'put ''MCkpLEc9MD09KChwfD0wKXxmfDApLHA9MCxmPVI9MHxhW1IrKGM8PDYpPj4yXSxSPWdlKyhSPDwyKXwwO0Q9ZistMXwwLCgwfGYpPjA7KXtmPWdlO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYoZj4+PjA+PVI+Pj4wKWJyZWFrIGU7Zm9yKDs7KXtpZihmPj4+MD49Uj4+PjApYnJlYWsgZTtpZigh''@;'; put 'put ''KChNPStfWzI0MCsoMHxhWzE2KyhrPTB8YVtmPj4yXSk+PjJdKT4+M10pPDApKWJyZWFrO2Y9Zis0fDB9Zm9yKGI9MDs7KXtmb3IobT1iPDwyND4+MjQ9PTA7Oyl7aWYoKGY9Zis0fDApPj4+MD49Uj4+PjApYnJlYWsgZTtpZihtKXttPTExO2JyZWFrfWlmKCEoMHxhWzIxMisoMHxhWzE2KyhB''@;'; put 'put ''PTB8YVtmPj4yXSk+PjJdKT4+Ml0pKXttPTEzO2JyZWFrfX1pZigxMT09KDB8bSk/dz1BPTB8YVtmPj4yXToxMz09KDB8bSkmJih3PUEpLDB8YkkobCxrLHcpKWNvbnRpbnVlIHQ7aWYoK19bMjQwKyhtPTB8YVtBKzE2Pj4yXSk+PjNdPj0wKWJyZWFrO2I9MD09KDB8YVttKzIxMj4+Ml0pP2I6''@;'; put 'put ''MX1pZigoMHwobT1+fk0pKT4oMHwoYj1+fitfWzI0MCsoMHxhW0ErMTY+PjJdKT4+M10pKXxxJigwfG0pPT0oMHxiKSlicmVha31jcChrLHcpLHA9cCsxfDB9Zj1ELFI9Rz9SKy00fDA6Un0wfHAmJihmZVsocGU9MHxhWzE5NisoMHxhWzE2KygwfGFbNDY3NDFdKT4+Ml0pPj4yXSkrKGM8PDYp''@;'; put 'put ''KzQ5Pj4wXT0wLCgwfGMpPjApJiYoZmVbcGUrKGMrLTE8PDYpKzQ5Pj4wXT0wKX1mdW5jdGlvbiBQdShsKXt2YXIgQSxjPTAsZj0wLHA9MCxtPTA7aWYoKDB8YVsyMDArKEE9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSk+MCl7Zm9yKGw9MHxhWygzPT0oMyZhWyhsPTB8YVsobT0wfGFbQSsxOTY+''@;'; put 'put ''PjJdKT4+Ml0pPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdLGY9MTtwPTB8YVttKyhmPDwyKT4+Ml07KWw9KDB8YVsyMzYrKDB8YVsxNisocD0wfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjM2KygwfGFbbCsxNj4+Ml0pPj4yXSk/cDpsLGY9''@;'; put 'put ''ZisxfDA7KGM9K19bMjQwKygwfGFbbCsxNj4+Ml0pPj4zXSk+PTA/KF9bQSsyNDA+PjNdPWMrMSxsPTApOmw9MX1lbHNlIGlmKCgwfGFbQSsxOTI+PjJdKT4wKXtmb3IobD0xLGY9MHxhWygyPT0oMyZhWyhmPTB8YVsocD0wfGFbQSsxODg+PjJdKT4+Ml0pPj4yXXwwKT9mOmYrLTQ4fDApKzQw''@;'; put 'put ''Pj4yXTttPTB8YVtwKyhsPDwyKT4+Ml07KWw9bCsxfDAsZj0oMHxhWzIzNisoMHxhWzE2KyhtPTB8YVsoMj09KDMmYVttPj4yXXwwKT9tOm0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbMjM2KygwfGFbZisxNj4+Ml0pPj4yXSk/bTpmOyhjPStfWzI0MCsoMHxhW2YrMTY+PjJdKT4+''@;'; put 'put ''M10pPjA/KF9bQSsyNDA+PjNdPWMrLTEsbD0wKTpsPTF9ZWxzZSBsPTE7cmV0dXJuIDB8bH1mdW5jdGlvbiBIWShsLGMpe3ZhciBBLGIsayxHLGY9MCxwPTAsbT0wLHc9MCxNPTAsRD0wLFI9MDtHPWxlLGxlPWxlKzk2fDAsUj1HKzY0fDAsRD1HKzQ4fDAsQT1HKzI0fDAscD1HLHc9MHxhWyhm''@;'; put 'put ''PTB8YVsxOTYrKDB8YVsoTT0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKygoaz0wfGFbMjMyKygwfGFbKGI9MTYrKGN8PTApfDApPj4yXSk+PjJdKTw8Nik+PjJdO2Rve2lmKCgwfGFbZisoazw8NikrOD4+Ml0pPj0xKXtpZihhWygwfGFbZisoazw8NikrND4+Ml0pKyh3PDwyKT4+Ml09YyxhWzIz''@;'; put 'put ''NisoMHxhW2I+PjJdKT4+Ml09dyxhWyhmPShwPTB8YVsxOTYrKGw9MHxhW00+PjJdKT4+Ml0pKyhrPDw2KXwwKT4+Ml09MSsobT0wfGFbZj4+Ml0pLCgwfG0pPj0oMHxhW3ArKGs8PDYpKzg+PjJdKSYmUHIoODYzNzcsODU3ODEsMTM0Niw4NjQxMyksKDB8dyk+KDB8KG09MHxhWygwfGFbMTk2''@;'; put 'put ''KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoazw8NikrOD4+Ml0pKSl7TT0wfHRpKGMpLEQ9MHxhWzIzNisoMHxhW2I+PjJdKT4+Ml0sUj0wfGFbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhrPDw2KSs4Pj4yXSxhW0E+PjJdPTEzNTksYVtBKzQ+PjJd''@;'; put 'put ''PU0sYVtBKzg+PjJdPUQsYVtBKzEyPj4yXT1rLGFbQSsxNj4+Ml09UiwkcigxLDg2NDI5LEEpO2JyZWFrfWlmKCgwfGspPCgwfChmPTB8aXRbbCsyMzY+PjFdKSl8KDB8ayk+KChsPTB8aXRbbCsyMzg+PjFdKTw8MTY+PjE2fDApKXthW0Q+PjJdPTEzNjQsYVtEKzQ+PjJdPWssYVtEKzg+PjJd''@;'; put 'put ''PWYsYVtEKzEyPj4yXT1sPDwxNj4+MTYsJHIoMSw4NjUwMixEKTticmVha30oKDB8YVtwKyhrPDw2KSs0Pj4yXSkrKHc8PDIpfDApPj4+MD4oKDB8YVtwKyhrPDw2KSsxMj4+Ml0pKyhtPDwyKXwwKT4+PjAmJih3PTB8dGkoYyksTT0oMHxhWyhEPTB8YVsxOTYrKDB8YVtNPj4yXSk+PjJdKSso''@;'; put 'put ''azw8NikrND4+Ml0pKyhhWzIzNisoMHxhW2I+PjJdKT4+Ml08PDIpfDAsRD0oMHxhW0QrKGs8PDYpKzEyPj4yXSkrKGFbKDB8YVsxOTYrKDB8YVsxNisoMHxhWzQ2NzQxXSk+PjJdKT4+Ml0pKyhrPDw2KSs4Pj4yXTw8Mil8MCxhW1I+PjJdPTEzNzAsYVtSKzQ+PjJdPWssYVtSKzg+PjJdPXcs''@;'; put 'put ''YVtSKzEyPj4yXT1NLGFbUisxNj4+Ml09ayxhW1IrMjA+PjJdPWssYVtSKzI0Pj4yXT1ELCRyKDEsODY1NjMsUikpfWVsc2UgRD0wfHRpKGwpLFI9MHx0aShjKSxhW3A+PjJdPTEzMzksYVtwKzQ+PjJdPUQsYVtwKzg+PjJdPVIsYVtwKzEyPj4yXT1rLGFbcCsxNj4+Ml09dywkcigxLDg2MzIy''@;'; put 'put ''LHApfXdoaWxlKDApO2xlPUd9ZnVuY3Rpb24gcUMobCxjLGYpe2x8PTAsZnw9MDt2YXIgQSxwPTAsbT0wO0E9MTYrKGN8PTApfDA7ZTpkb3tpZihmKWZvcihtPTA7Oyl7aWYoKDB8bSk+PSgwfGFbMTc2KyhjPTB8YVtBPj4yXSk+PjJdKSlicmVhayBlO2Y9NDgrKGM9MHxhWygwfGFbYysxNzI+''@;'; put 'put ''PjJdKSsobTw8Mik+PjJdKXwwLDB8ZmVbKHA9MTU3KygwfGFbMTYrKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKXwwKT4+MF18fChmZVtwPj4wXT0xLEQ3KGwsMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKSksbT1tKzF8MH1lbHNlIGZvcihtPTA7Oyl7''@;'; put 'put ''aWYoKDB8bSk+PSgwfGFbMTg0KyhjPTB8YVtBPj4yXSk+PjJdKSlicmVhayBlO2Y9KGM9MHxhWygwfGFbYysxODA+PjJdKSsobTw8Mik+PjJdKS00OHwwLDB8ZmVbKHA9MTU3KygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKXwwKT4+MF18fChmZVtwPj4w''@;'; put 'put ''XT0xLEQ3KGwsMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKSksbT1tKzF8MH19d2hpbGUoMCl9ZnVuY3Rpb24gTlkobCxjKXt2YXIgUixxLHBlLGJlLE9lLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxnZT0wO2ZvcihPZT1sZSxsZT1sZSsxNnwwLGJl''@;'; put 'put ''PU9lLHBlPTB8YVsoZj0wfGFbMTk2KygwfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGN8PTApPDw2KSs0Pj4yXSwoMHxhWzQ2NzQ1XSk+KDB8KGw9MHxhWygwfGFbMTk2KygwfGFbMTYrKDB8YVs0Njc0MV0pPj4yXSk+PjJdKSsoKGdlPWMrMXwwKTw8Nik+PjJdKSk/Rz0wfGFbNDY3''@;'; put 'put ''NDZdOihhWzQ2NzQ1XT1sPWwrMXwwLGw9KGY9MHxhWzQ2NzQ2XSk/MHxWMChmLGw8PDIpOjB8UW4obDw8MiksYVs0Njc0Nl09bCxmPTB8YVsxOTYrKDB8YVtwPj4yXSk+PjJdLEc9bCkscT1mKyhnZTw8Nil8MCxsPTA7ISgoMHxsKT49KDB8YVtxPj4yXSkpOylhW0crKGw8PDIpPj4yXT0wLGw9''@;'; put 'put ''bCsxfDA7Zm9yKFI9ZisoYzw8Nil8MCxEPTAsbT0wLGw9MCx3PUc7ISgoMHxEKT49KDB8KGI9MHxhW1I+PjJdKSkpOyl7TT0wfGFbMTgwKygwfGFbMTYrKDB8YVtwZSsoRDw8Mik+PjJdKT4+Ml0pPj4yXTtlOmRve2lmKCgwfG0pPjApZm9yKGs9MDs7KXtpZighKHA9MHxhW00rKGs8PDIpPj4y''@;'; put 'put ''XSkpYnJlYWsgZTtmb3IoYj1wKzE2fDAsQT0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml07cD1BKzF8MCwhKCgwfEEpPj0oMHxtKSk7KUE9cCxsPSgwfEFyKDB8YVt3KyhwPDwyKT4+Ml0sMHxpdFsxNTQrKDB8YVtiPj4y''@;'; put 'put ''XSk+PjFdKSkrbHwwO2s9aysxfDB9fXdoaWxlKDApO2ZvcihBPTA7cD0wfGFbTSsoQTw8Mik+PjJdOylhWyhrPUcrKCh3PTB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8PDIpfDApPj4yXT0oMHxhW2s+PjJdKSsoMHxp''@;'; put 'put ''dFsxNTQrKDB8YVtwKzE2Pj4yXSk+PjFdKSxtPSgwfHcpPigwfG0pP3c6bSxBPUErMXwwLHc9RztEPUQrMXwwfWZvcihBPWYrKGM8PDYpKzR8MCxtPTA7ISgoMHxtKT49KDB8YikpOykwfGZlWzE0NSsocD0wfGFbMTYrKDB8YVsoMHxhW0E+PjJdKSsobTw8Mik+PjJdKT4+Ml0pPj4wXSYmKGFb''@;'; put 'put ''YmU+PjJdPWFbKGM9cCsxODB8MCk+PjJdLGFbYmUrND4+Ml09YVtjKzQ+PjJdLGw9KDB8X0koYmUsMSkpK2x8MCksbT1tKzF8MDtmb3IoQT0wfGFbcT4+Ml0sbT1mKyhnZTw8NikrNHwwLHA9MDshKCgwfHApPj0oMHxBKSk7KTB8ZmVbMTQ1KyhmPTB8YVsxNisoMHxhWygwfGFbbT4+Ml0pKyhw''@;'; put 'put ''PDwyKT4+Ml0pPj4yXSk+PjBdJiYoYVtiZT4+Ml09YVsoZ2U9ZisxNzJ8MCk+PjJdLGFbYmUrND4+Ml09YVtnZSs0Pj4yXSxsPSgwfF9JKGJlLC0xKSkrbHwwKSxwPXArMXwwO3JldHVybiBsZT1PZSwwfGx9ZnVuY3Rpb24gX0kobCxjKXt2YXIgayxELGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0w''@;'; put 'put ''LE09MDtEPSgwfChjfD0wKSk8MSxrPTB8YVsobHw9MCk+PjJdLGM9MCxsPTA7ZTpmb3IoO009MHxhW2srKGM8PDIpPj4yXSxNOylpZihjPWMrMXwwLEQpZm9yKHc9TSs0OHwwLGI9TSsxNnwwLEE9Yzs7KXtpZighKGY9MHxhW2srKEE8PDIpPj4yXSkpY29udGludWUgZTsoK19bNTYrKHA9MHxh''@;'; put 'put ''W2YrMTY+PjJdKT4+M10tK19bNTYrKG09MHxhW2I+PjJdKT4+M10pKisoKDB8YVsyMzYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2Y+PjJdfDApP2Y6Zis0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDM9PSgzJmFbTT4+Ml18MCk/TTp3KSs0MD4+Ml0pPj4y''@;'; put 'put ''XSk+PjJdKXwwKTwwJiYobD0oMHxBcigwfGl0W3ArMTU0Pj4xXSwwfGl0W20rMTU0Pj4xXSkpK2x8MCksQT1BKzF8MH1lbHNlIGZvcih3PU0rLTQ4fDAsYj1NKzE2fDAsQT1jOzspe2lmKCEoZj0wfGFbaysoQTw8Mik+PjJdKSljb250aW51ZSBlOygrX1sxNisocD0wfGFbZisxNj4+Ml0pPj4z''@;'; put 'put ''XS0rX1sxNisobT0wfGFbYj4+Ml0pPj4zXSkqKygoMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzNisoMHxhWzE2KygwfGFbKDI9PSgzJmFbTT4+Ml18MCk/TTp3KSs0MD4+Ml0pPj4yXSk+PjJdKXwwKTww''@;'; put 'put ''JiYobD0oMHxBcigwfGl0W3ArMTU0Pj4xXSwwfGl0W20rMTU0Pj4xXSkpK2x8MCksQT1BKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIENJKGwpe3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wLGI9MCxrPTA7Zm9yKHc9MHx2cig4KyhpdFsyMzgrKDB8YVsoQT0xNisobHw9MCl8MCk+PjJdKT4+MV08''@;'; put 'put ''PDIpfDApLG09MHxEdChsKTttOyl7Zm9yKGFbKHA9dysoYVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdPDwyKXwwKT4+Ml09MSsoMHxhW3A+PjJdKSxwPTB8dzAobCxtKTtwOyl7Zm9yKGY9KGs9KDB8KGM9MHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChiPTMmYVtwPj4yXSkpP3A6cCs0OHww''@;'; put 'put ''KSs0MD4+Ml0pPj4yXSk+PjJdKSk+KDB8KGI9MHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfGIpP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpKT9jOmIsYz1rP2I6YzshKCgwfChjPWMrMXwwKSk+PSgwfGYpKTspYVsoaz13KyhjPDwyKXwwKT4+Ml09MSsoMHxhW2s+PjJdKTtwPTB8''@;'; put 'put ''UzAobCxwKX1tPTB8enQobCxtKX1mb3IocD0wfHZyKDEyOCsoaXRbMjM4KygwfGFbQT4+Ml0pPj4xXTw8Nil8MCksYVsxOTYrKGY9MHxhW0E+PjJdKT4+Ml09cCxjPTB8aXRbZisyMzY+PjFdOyEoKDB8Yyk+KDB8aXRbZisyMzg+PjFdKSk7KWFbcCsoYzw8Nik+PjJdPWY9MHxhWyhiPXcrKGM8''@;'; put 'put ''PDIpfDApPj4yXSxhW3ArKGM8PDYpKzg+PjJdPWYsYj0wfHZyKDQrKGFbYj4+Ml08PDIpfDApLGFbKGs9MHxhWzE5NisoZj0wfGFbQT4+Ml0pPj4yXSkrKGM8PDYpKzQ+PjJdPWIsYVtrKyhjPDw2KSsxMj4+Ml09YixjPWMrMXwwLHA9aztGdCh3KX1mdW5jdGlvbiBqWShsLGMsZixwKXtjfD0w''@;'; put 'put ''LGZ8PTAscHw9MDt2YXIgTSxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihNPTE2KyhsfD0wKXwwLEE9MTshKCgwfEEpPigwfGFbMTgwKyhtPTB8YVtNPj4yXSk+PjJdKSk7KWs9MHxqWSgwfGFbKDB8YVttKzE4ND4+Ml0pKyhBPDwyKT4+Ml0sYyxmLHApLEE9QSsxfDAscD1rO2U6ZG97aWYoKDB8''@;'; put 'put ''eWEobCkpIT0oMHxsKSl7Zm9yKHUyKDB8YywwLGY8PDJ8MCksbT0wfER0KGwpO207KXtmb3IoYVtjKyhhWzIzMisoMHxhWyhiPW0rMTZ8MCk+PjJdKT4+Ml08PDIpPj4yXT0xLEE9MHx3MChsLG0pO0E7KXtmb3Ioaz1BKy00OHwwLHc9MHxhWzIzMisoMHxhW2I+PjJdKT4+Ml07Zj13KzF8MCwh''@;'; put 'put ''KCgwfHcpPj0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbQT4+Ml18MCk/QTprKSs0MD4+Ml0pPj4yXSk+PjJdKSk7KWFbYysoZjw8Mik+PjJdPTEsdz1mO0E9MHxTMChsLEEpfW09MHx6dChsLG0pfWZvcihBPTB8aXRbMjM2KyhtPTB8YVtNPj4yXSk+PjFdOzspe2lmKCgwfEEpPigw''@;'; put 'put ''fGl0W20rMjM4Pj4xXSkpYnJlYWsgZTswfGFbYysoQTw8Mik+PjJdfHwocHx8KHA9MHxwcygwfHlhKGwpLDg2Njc1LDEpKSxoMChtPTB8R3IocCwwLDEpLDEzNzQ0NywzMDQsMSksYVsyMzIrKHc9MHxhWyhrPW0rMTZ8MCk+PjJdKT4+Ml09QSxfW3crOTY+PjNdPS41LF9bdys4OD4+M109LjUs''@;'; put 'put ''X1t3KzgwPj4zXT0xLGFbdysyMTY+PjJdPTEsYVt3KzE3Nj4+Ml09MCx3PTB8dnIoMjApLGFbMTcyKyhiPTB8YVtrPj4yXSk+PjJdPXcsYVtiKzE4ND4+Ml09MCxiPTB8dnIoMjApLGFbMTgwKygwfGFbaz4+Ml0pPj4yXT1iLFluKGwsbSwxKSxtPTB8YVtNPj4yXSksQT1BKzF8MH19fXdoaWxl''@;'; put 'put ''KDApO3JldHVybiAwfHB9ZnVuY3Rpb24gb3kobCl7dmFyIGMsZj0wO2ZvcihuSChsfD0wKSxjPWwrMTZ8MCxsPTE7ISgoMHxsKT4oMHxhWzE4MCsoZj0wfGFbYz4+Ml0pPj4yXSkpOylveSgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhsPDwyKT4+Ml0pLGw9bCsxfDB9ZnVuY3Rpb24gUjBlKGwpe3Zh''@;'; put 'put ''ciBmLGM9MDtmPTB8WlkoMHxhWygzPT0oMHwoYz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pLGM9MHxhWzE3MzA4KygxMipmfDApKygoMHxaWSgwfGFbKDI9PSgwfGMpP2w6bCstNDh8MCkrNDA+PjJdKSk8PDIpPj4yXSxhWyhsPTE1NisoMHxhW2wrMTY+PjJdKXwwKT4+Ml09''@;'; put 'put ''MHxBcigwfGFbbD4+Ml0sYyl9ZnVuY3Rpb24gWlkobCl7cmV0dXJuIDB8KDE9PSgwfGZlWzE1NisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjBdKT8yOigwfGZlW2wrMTYwPj4wXSk8MiYxKX1mdW5jdGlvbiBrSShsLGMpe2N8PTAsMHxhWzE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSYmKGZw''@;'; put 'put ''KGwpLGxIKGwpLDB8ZmVbMTk0OTU0XSYmZnVuY3Rpb24gT1UobCl7bHw9MDt2YXIgRyxxLGJlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscGU9MCxnZT0wO2JlPWxlLGxlPWxlKzE2fDAscT1iZSxnZT00LHBlPTB8RjAoNDApLGFbcGU+PjJdPTAsZj0wfGFb''@;'; put 'put ''KEc9bCsxNnwwKT4+Ml07ZTpkb3tpZigoKDB8aXRbZisyMzg+PjFdKS0oMHxpdFtmKzIzNj4+MV0pfDApPj0yKXtNPTEsYz1mLGY9MHxhW2YrMTk2Pj4yXTt0OmZvcig7Oyl7aWYoISgwfGFbZisoKEQ9TSsxfDApPDw2KT4+Ml0pKXtSPTE1O2JyZWFrfWZvcihrPTA7Oyl7aWYoKDB8ayk+PSgw''@;'; put 'put ''fChBPTB8YVtmKyhNPDw2KT4+Ml0pKSl7TT1EO2NvbnRpbnVlIHR9aWYoTW49MCxjPTB8YTAoMjAsMHwoYj0wfGFbKDB8YVtmKyhNPDw2KSs0Pj4yXSkrKGs8PDIpPj4yXSkpLHA9TW4sTW49MCwwIT0oMHxwKSYwIT0oMHx4bik/KChtPTB8Z2koMHxhW3A+PjJdLDB8cGUsMHxnZSkpfHx6ZSgw''@;'; put 'put ''fHAsMHx4biksRG49eG4pOm09LTEsMT09KDB8bSkpe2M9RG47YnJlYWsgdH1pZihjPDwyND4+MjQpe2Zvcih3PWssYz1BOyEoKDB8KG09dysxfDApKT49KDB8YykpOyl7aWYoTW49MCxjPTB8RmwoNjUsMHxiLDB8YVsoMHxhW2YrKE08PDYpKzQ+PjJdKSsobTw8Mik+PjJdKSxmPU1uLE1uPTAs''@;'; put 'put ''MCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtjPURuO2JyZWFrIHR9aWYoIShjPDwyND4+MjQpKWJyZWFrO3c9bSxmPWM9MHxhWzE5NisoMHxhW0c+PjJdKT4+Ml0sYz0wfGFbYysoTTw8''@;'; put 'put ''Nik+PjJdfWlmKChtLWt8MCk+MSYmKE1uPTAsY3UoNiwwfGwsMHxNLDB8aywwfHcsMSksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSwxPT0oMHxmKSkpe2M9RG47YnJlYWsgdH19az1r''@;'; put 'put ''KzF8MCxjPWY9MHxhW0c+PjJdLGY9MHxhW2YrMTk2Pj4yXX19dDpkb3tpZigxNT09KDB8Uikpe2Zvcig7KDB8TSk+MDspe2ZvcihrPTA7ISgoMHxrKT49KDB8KEE9MHxhWyhmPTB8YVtjKzE5Nj4+Ml0pKyhNPDw2KT4+Ml0pKSk7KXtpZihNbj0wLGM9MHxhMCgyMSwwfChiPTB8YVsoMHxhW2Yr''@;'; put 'put ''KE08PDYpKzQ+PjJdKSsoazw8Mik+PjJdKSkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxPT0oMHxtKSl7Yz1EbjticmVhayB0fWlmKGM8PDI0Pj4yNCl7Zm9yKHc9ayxjPUE7ISgo''@;'; put 'put ''MHwobT13KzF8MCkpPj0oMHxjKSk7KXtpZihNbj0wLGM9MHxGbCg2NiwwfGIsMHxhWygwfGFbZisoTTw8NikrND4+Ml0pKyhtPDwyKT4+Ml0pLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxhW2Y+PjJdLDB8cGUsMHxnZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9''@;'; put 'put ''LTEsMT09KDB8cCkpe2M9RG47YnJlYWsgdH1pZighKGM8PDI0Pj4yNCkpYnJlYWs7dz1tLGY9Yz0wfGFbMTk2KygwfGFbRz4+Ml0pPj4yXSxjPTB8YVtjKyhNPDw2KT4+Ml19aWYoKG0ta3wwKT4xJiYoTW49MCxjdSg2LDB8bCwwfE0sMHxrLDB8dywwKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9''@;'; put 'put ''KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKSl7Yz1EbjticmVhayB0fX1rPWsrMXwwLGM9MHxhW0c+PjJdfU09TSstMXwwLFI9MTV9cGU9MHxQZigxODcwMTYsMSwwfHBlLDB8Z2UpLGdlPURuLGM9TW49MCxN''@;'; put 'put ''bj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxwZSwwfGdlKSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSxjPTE9PSgwfGYpP0RuOjB9fXdoaWxlKDApO3Q6Zm9yKDs7KXtpZihjKXtpZihNbj0wLEpzKDIwLDMsODgxNzcsMHxxKSxjPU1uLE1uPTAsMCE9KDB8''@;'; put 'put ''YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtjPURuO2NvbnRpbnVlfWJyZWFrfWZvcihwPTE7Oyl7aWYoKDB8cCk+KDB8YVsxODArKGM9MHxhW0c+PjJdKT4+Ml0pKWJyZWFrIGU7aWYoTW49MCxz''@;'; put 'put ''cygxMDEsMHxhWygwfGFbYysxODQ+PjJdKSsocDw8Mik+PjJdKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfHBlLDB8Z2UpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKXtjPURuO2NvbnRpbnVlIHR9cD1wKzF8MH19fX13aGls''@;'; put 'put ''ZSgwKTtGdCgwfHBlKSxsZT1iZX0obCksZnVuY3Rpb24gelkobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihmdW5jdGlvbiBNSShsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3Iodz0wfGl0WzIzNisobD0wfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjFdOyEoKDB8dyk+KDB8aXRb''@;'; put 'put ''bCsyMzg+PjFdKSk7KXtmb3IocD0wfGFbKG09MHxhW2wrMTk2Pj4yXSkrKHc8PDYpPj4yXSxtPW0rKHc8PDYpKzR8MCxBPTAsZj0wOyEoKDB8Zik+PSgwfHApKTspYVsyMzYrKGM9MHxhWzE2KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+PjJdKT4+Ml09QSxBPShjPTY9PSgwfGZlW2Mr''@;'; put 'put ''MTU5Pj4wXSk/MHxhW2MrMjE2Pj4yXToxKStBfDAsZj1mKzF8MDtpZigoMHxBKT4oMHxwKSl7Zm9yKGw9KGw9MHxhW20+PjJdKT8wfFYwKGwsNCsoQTw8Mil8MCk6MHxRbig0KyhBPDwyKXwwKSxhWyhmPTB8YVsxOTYrKDB8YVtiPj4yXSk+PjJdKSsodzw8NikrND4+Ml09bCxjPTB8YVtmKyh3''@;'; put 'put ''PDw2KT4+Ml07bD1jKy0xfDAsISgoMHxjKTw9MCk7KWFbKG09MHxhW2YrKHc8PDYpKzQ+PjJdKSsoYVsyMzYrKDB8YVsxNisoYz0wfGFbbSsobDw8Mik+PjJdKT4+Ml0pPj4yXTw8Mik+PjJdPWMsYz1sLGY9MHxhWzE5NisoMHxhW2I+PjJdKT4+Ml07YVtmKyh3PDw2KT4+Ml09QSxhWygwfGFb''@;'; put 'put ''Zisodzw8NikrND4+Ml0pKyhBPDwyKT4+Ml09MCxsPTB8YVtiPj4yXX13PXcrMXwwfX0obHw9MCksYz0xOTIrKDB8YVtsKzE2Pj4yXSl8MDtjPTB8YVtjPj4yXTspe2lmKChmPTB8YVsyMjQrKGM9MHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml0pJiYobHkobCxmKSxjPTB8YVtwPj4yXSksKGY9MHxh''@;'; put 'put ''W2MrMjI4Pj4yXSk/KGx5KGwsZiksZj0wfGFbcD4+Ml0pOmY9YywwfChwPTB8YVtmKzIwND4+Ml0pKWZvcihjPTA7MHxhW3ArKGM8PDIpPj4yXTspYz1jKzF8MDtjPWYrMTY0fDB9fShsKSwwfGZ1bmN0aW9uIG11KGwpe3ZhciBNLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0w''@;'; put 'put ''LFI9MDtmb3IoYz0xOTIrKDB8YVsoTT0xNisobHw9MCl8MCk+PjJdKXwwO2M9MHxhW2M+PjJdOyl7Zj0wfGFbMTg4KyhjPTB8YVsobT1jKzE2fDApPj4yXSk+PjJdO2U6ZG97aWYoZilmb3IocD0wOzspe2lmKCEoZj0wfGFbZisocDw8Mik+PjJdKSl7cD0wO2JyZWFrIGV9VTMoZikscD1wKzF8''@;'; put 'put ''MCxmPTB8YVsxODgrKGM9MHxhW20+PjJdKT4+Ml19ZWxzZSBwPTB9d2hpbGUoMCk7Zm9yKDshKCgwfHApPj0oMHxhW2MrMjA4Pj4yXSkpOykoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChrPTMmYVsoZj0wfGFbKDB8YVtjKzIwND4+Ml0pKyhwPDwyKT4+Ml0pPj4yXSkpP2Y6ZistNDh8''@;'; put 'put ''MCkrNDA+PjJdKT4+Ml0pPj4yXSk9PSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8ayk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pJiYoVTMoZiksYz0wfGFbbT4+Ml0pLHA9cCsxfDA7Yz1jKzE2NHwwfTA9PSgwfGFbNTYrKGM9MHxhWzE5Nisoaz0wfGFbTT4+Ml0pPj4yXSk+PjJd''@;'; put 'put ''KSYmKDB8YVtrKzE4MD4+Ml0pPD0wfHwoQT0xMyk7ZTpkb3tpZigxMz09KDB8QSkpe0E9MHxhW2MrND4+Ml0sbT0wO3Q6Zm9yKDs7KXtpZighKGM9MHxhW0ErKG08PDIpPj4yXSkpYnJlYWsgZTtmb3IoZj0wfGFbMTk2KygwfGFbYysxNj4+Ml0pPj4yXSxjPTA7cD0wfGFbZisoYzw8Mik+PjJd''@;'; put 'put ''Oyl7aWYoMHxhWzk2KyhrPTB8YVtwKzE2Pj4yXSk+PjJdJiYwPT0oMHxmZVtrKzExMz4+MF0pKWJyZWFrIHQ7Yz1jKzF8MH1tPW0rMXwwfXpVKGwpfX13aGlsZSgwKTtmb3Iob3kobCksZj0wLGM9MTkyKygwfGFbTT4+Ml0pfDA7Yz0wfGFbYz4+Ml07KXtwPTB8YVsxODgrKGM9MHxhWyhrPWMr''@;'; put 'put ''MTZ8MCk+PjJdKT4+Ml07ZTpkb3tpZihwKXtmb3IoYj0wOzspe2lmKCEobT0wfGFbcCsoYjw8Mik+PjJdKSl7Yj0wO2JyZWFrfXc9MHxhWzk2KyhBPTB8YVttKzE2Pj4yXSk+PjJdO2Rve2lmKHcpe2lmKDB8ZmVbQSsxMTM+PjBdKXtfW0ErMTM2Pj4zXT0rX1soMD09KDEmYVsxMTYrKDB8YVtN''@;'; put 'put ''Pj4yXSk+PjJdfDApP3crMjR8MDp3KzMyfDApPj4zXTticmVha31IdShtKSxmPTEsYz1wPTB8YVtrPj4yXSxwPTB8YVtwKzE4OD4+Ml07YnJlYWt9fXdoaWxlKDApO2I9YisxfDB9Zm9yKDs7KXtpZigoMHxiKT49KDB8YVtjKzIwOD4+Ml0pKWJyZWFrIGU7bT0wfGFbKDM9PSgwfCh3PTMmYVso''@;'; put 'put ''QT0wfGFbKDB8YVtjKzIwND4+Ml0pKyhiPDwyKT4+Ml0pPj4yXSkpP0E6QSs0OHwwKSs0MD4+Ml0sdz0wfGFbKDI9PSgwfHcpP0E6QSstNDh8MCkrNDA+PjJdO2Rve2lmKCgwfG0pIT0oMHx3KSYmKDB8YVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdKT09KDB8YVsyMzIrKDB8YVt3KzE2Pj4yXSk+''@;'; put 'put ''PjJdKSl7cD1BO2Rve3A9MHxhWzE3Misodz0wfGFbcCsxNj4+Ml0pPj4yXX13aGlsZSgwIT0oMHxwKSk7aWYoZmVbMTEzKyhtPTB8YVtBKzE2Pj4yXSk+PjBdPXA9MHxmZVt3KzExMz4+MF0sbT0wfGFbbSs5Nj4+Ml0pe2lmKHA8PDI0Pj4yNCl7X1sodz13KzEzNnwwKT4+M109KFI9K19bKDA9''@;'; put 'put ''PSgxJmFbMTE2KygwfGFbTT4+Ml0pPj4yXXwwKT9tKzI0fDA6bSszMnwwKT4+M10pPihEPStfW3c+PjNdKT9SOkQ7YnJlYWt9SHUoQSksZj0xLGM9MHxhW2s+PjJdO2JyZWFrfX19d2hpbGUoMCk7Yj1iKzF8MH19fXdoaWxlKDApO2M9YysxNjR8MH1yZXR1cm4gMHxmJiYoZnVuY3Rpb24gXzBl''@;'; put 'put ''KGwpe3ZhciBiLGssTSxELFIsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsRz0wLHE9MCxwZT0wLGdlPTA7Zm9yKFI9bGUsbGU9bGUrMTA0MHwwLE09UisxMDMyfDAsRD1SLGs9Uis4fDAsdz0wfGl0WzIzNisobD0wfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjFdOyEoKDB8dyk+KDB8aXRbbCsy''@;'; put 'put ''Mzg+PjFdKSk7KXtmb3IobT0oQT0wfGFbbCsxOTY+PjJdKSsodzw8Nil8MCxBPUErKHc8PDYpKzR8MCxwPTAsbD0wOyEoKDB8cCk+PSgwfGFbbT4+Ml0pKTspMHxhWzExMisoMHxhWyhmPTE2KyhjPTB8YVsoMHxhW0E+PjJdKSsocDw8Mik+PjJdKXwwKT4+Ml0pPj4yXSYmKGx8fChmZVtNPj4w''@;'; put 'put ''XT0wfGZlWzE4NTg4XSxmZVtNKzE+PjBdPTB8ZmVbMTg1ODldLGZlW00rMj4+MF09MHxmZVsxODU5MF0sZmVbTSszPj4wXT0wfGZlWzE4NTkxXSxsPTB8b2MoODU3NjMsTSwwKSksYVtEPj4yXT1wLG9vKGssMTM3Mzk1LEQpLGgwKGdlPTB8R3IobCxrLDEpLDkxMTY0LDI0LDEpLEc9MHxhWzE4''@;'; put 'put ''MCsoMHxhW2Y+PjJdKT4+Ml0sYVsxMisoZj0wfGFbZ2UrMTY+PjJdKT4+Ml09KHBlPSgwfChxPTB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhWyhxPTB8YVtHPj4yXSk+PjJdfDApP3E6cSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPigwfChHPTB8YVsyMzYrKDB8YVsxNisoMHxhWygy''@;'; put 'put ''PT0oMyZhWyhHPTB8YVtHKzQ+PjJdKT4+Ml18MCk/RzpHKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSkpP0c6cSxhW2YrMTY+PjJdPXBlP3E6RyxhW2YrMjA+PjJdPWMpLHA9cCsxfDA7MHxsJiYoKDB8R28obCkpPjEmJmc3KGwsbSksQzEobCkpLHc9dysxfDAsbD0wfGFbYj4+Ml19bGU9Un0o''@;'; put 'put ''bCkscUYobCkpLDB8Zn0obCkmJmxIKGwpLGZ1bmN0aW9uIEdZKGwpeyhmdW5jdGlvbiBjSChsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2ZvcihsPTE5MisoMHxhWzE2KyhsfD0wKT4+Ml0pfDA7bD0wfGFbbD4+Ml07KXtmb3IoZj0wfGFbNCsobD0xNzIrKHA9MHxhWyhtPWwrMTZ8MCk+PjJdKXww''@;'; put 'put ''KT4+Ml0sYVsocD1wKzI0OHwwKT4+Ml09YVtsPj4yXSxhW3ArND4+Ml09ZixsPTB8YVs0KyhmPTE4MCsocD0wfGFbbT4+Ml0pfDApPj4yXSxhWyhwPXArMjU2fDApPj4yXT1hW2Y+PjJdLGFbcCs0Pj4yXT1sLGw9MHxhWzE4MCsocD0wfGFbbT4+Ml0pPj4yXSxmPTA7MHxhW2wrKGY8PDIpPj4y''@;'; put 'put ''XTspZj1mKzF8MDtmb3IoYz0wfGFbcCsxNzI+PjJdLGw9MDswfGFbYysobDw8Mik+PjJdOylsPWwrMXwwO2FbcCsxNzY+PjJdPTAsbD0wfHZyKDE2KyhsK2Y8PDIpfDApLGFbMTcyKyhwPTB8YVttPj4yXSk+PjJdPWwsYVtwKzE4ND4+Ml09MCxwPTB8dnIoMTYpLGFbMTgwKyhsPTB8YVttPj4y''@;'; put 'put ''XSk+PjJdPXAsbD1sKzE2NHwwfX0pKGx8PTApLGZ1bmN0aW9uIE4wZShsKXt2YXIgYmUsT2UsTGUsUmUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxIZT0wLFZlPTA7Zm9yKFJlPWxlLGxlPWxlKzE2fDAsTGU9MHxhWzE5Niso''@;'; put 'put ''cGU9MHxhWyhPZT0xNisobHw9MCl8MCk+PjJdKT4+Ml0sbD0wIT0oMSZmZVsxMTMrKDB8YVsxNisoMHxhW2wrNjA+PjJdKT4+Ml0pPj4wXSksYVsoYmU9UmUpPj4yXT1nZT0wfGFbcGUrMjQ4Pj4yXSxhW2JlKzQ+PjJdPWw/NTpnZSxnZT0wfGl0W3BlKzIzNj4+MV0sbD1wZTshKCgwfGdlKT4o''@;'; put 'put ''MHxpdFtsKzIzOD4+MV0pKTspe2FbMjMyKygwfGFbMTYrKDB8YVthWyhSPUxlKyhnZTw8NikrNHwwKT4+Ml0+PjJdKT4+Ml0pPj4yXT0wLEc9TGUrKGdlPDw2KXwwLHE9KygwfGFbYmUrKCgxJmdlKTw8Mik+PjJdKSxNPTAsQT0wO2U6Zm9yKDshKCgwfEEpPj0oMHxhW0c+PjJdKSk7KXtpZihf''@;'; put 'put ''WzI0MCsobD0wfGFbKHBlPTE2Kyh3PTB8YVsoYz0wfGFbUj4+Ml0pKyhBPDwyKT4+Ml0pfDApPj4yXSk+PjNdPXA9K19bbCs5Nj4+M10sKDB8YVtsKzIwOD4+Ml0pPjApe2ZvcihtPTAsYz0wO2Y9MHxhWygwfGFbbCsyMDQ+PjJdKSsobTw8Mik+PjJdOykoMHxhWygzPT0oMHwoRD0zJmFbZj4+''@;'; put 'put ''Ml0pKT9mOmYrNDh8MCkrNDA+PjJdKT09KDB8YVsoMj09KDB8RCk/ZjpmKy00OHwwKSs0MD4+Ml0pJiYoYz0oMHxsSihmKSkrY3wwLGw9MHxhW3BlPj4yXSksbT1tKzF8MDtfWyhEPWwrOTZ8MCk+PjNdPXA9K19bRD4+M10rICsoMHxjKSxjPTB8YVtSPj4yXX1mb3IoKGM9MHxhW2MrKChEPUEr''@;'; put 'put ''MXwwKTw8Mik+PjJdKSYmKEZ1KHcsYyxwPXArcSsgK19bODgrKDB8YVsoaz1jKzE2fDApPj4yXSk+PjNdLDApLGFbMjMyKygwfGFbaz4+Ml0pPj4yXT1sPX5+KHArTSksTT0rKDB8bCksbD0wfGFbcGU+PjJdKSwoYz0wfGFbbCsxMTI+PjJdKT8oZj0obD0oMHxhWzIzNisoMHxhWzE2KygwfGFb''@;'; put 'put ''KDI9PSgzJmFbKEE9MHxhWyhtPTB8YVtsKzI1Nj4+Ml0pPj4yXSk+PjJdfDApP0E6QSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzYrKDB8YVsxNisoMHxhWygyPT0oMyZhWyhtPTB8YVttKzQ+PjJdKT4+Ml18MCk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk/bTpBLG09''@;'; put 'put ''bD9BOm0scD0rKDB8KDB8QXIoMHxhWzI0OCsoMHxhW09lPj4yXSk+PjJdLDB8aHJbMTcwKyhsPTB8YVsoQT1jKzE2fDApPj4yXSk+PjFdKSkvMiksYz0wfGFbKDI9PSgwfChrPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdLDB8SlkoZj0wfGFbKDM9PSgwfGspP2Y6Zis0OHwwKSs0MD4+''@;'; put 'put ''Ml0sYyl8fEZ1KGMsZiwrKDB8fn4oK19bOTYrKDB8YVtjKzE2Pj4yXSk+PjNdK3ArICtfWzg4KygwfGFbZisxNj4+Ml0pPj4zXSkpLDB8YVtsKzE1Nj4+Ml0pLGM9MHxhWygzPT0oMHwobD0zJmFbbT4+Ml0pKT9tOm0rNDh8MCkrNDA+PjJdLDB8SlkobD0wfGFbKDI9PSgwfGwpP206bSstNDh8''@;'; put 'put ''MCkrNDA+PjJdLGMpfHxGdShjLGwsKygwfH5+KCtfWzk2KygwfGFbYysxNj4+Ml0pPj4zXStwKyArX1s4OCsoMHxhW2wrMTY+PjJdKT4+M10pKSwwfGFbMTU2KygwfGFbQT4+Ml0pPj4yXSksaz0wKTprPTA7Oyl7aWYoKDB8ayk+PSgwfGFbMTkyKyhsPTB8YVtwZT4+Ml0pPj4yXSkpe0E9RDtj''@;'; put 'put ''b250aW51ZSBlfWM9KG09KDB8YVsyMzYrKDB8YVsxNisoZj0wfGFbKDM9PSgwfChBPTMmYVsodz0wfGFbKDB8YVtsKzE4OD4+Ml0pKyhrPDwyKT4+Ml0pPj4yXSkpP3c6dys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzIzNisoMHxhWzE2KyhBPTB8YVsoMj09KDB8QSk/dzp3Ky00OHww''@;'; put 'put ''KSs0MD4+Ml0pPj4yXSk+PjJdKSk/ZjpBLG09fn4oKHA9K19bODgrKDB8YVsoZj1tP0E6ZikrMTY+PjJdKT4+M10rICtfWzk2KygwfGFbYysxNj4+Ml0pPj4zXSkrICsoMHxBcigwfGFbMjQ4KygwfGFbT2U+PjJdKT4+Ml0sMHxoclsxNzArKDB8YVsoQT13KzE2fDApPj4yXSk+PjFdKSkpLChi''@;'; put 'put ''PTB8VTUoYyxmKSk/KCgwfChjPX5+KChwPXArICsoMHxhWzI0OCsoMHxhW09lPj4yXSk+PjJdKSsgKygwfH5+KChWZT0rX1sxMzYrKGw9MHxhW0E+PjJdKT4+M10pKyhWZT49MD8uNTotLjUpKSkpPChIZT0rKDB8bSkpP0hlOnApKSk+NjU1MzUmJihIMGUoKygwfGMpKSxjPTY1NTM1LGw9MHxh''@;'; put 'put ''W0E+PjJdKSxpdFsobT0xNzArKEE9MHxhW2IrMTY+PjJdKXwwKT4+MV09KDB8Yyk8KDB8KGY9MHxoclttPj4xXSkpP2Y6YyxhWyhBPUErMTU2fDApPj4yXT1hWzE1NisoMHxhWygoMHxhW0E+PjJdKT4oMHxhW2wrMTU2Pj4yXSk/Yjp3KSsxNj4+Ml0pPj4yXSk6MHxhWzk2KyhsPTB8YVtBPj4y''@;'; put 'put ''XSk+PjJdfHxGdShjLGYsKygwfG0pLDB8YVtsKzE1Nj4+Ml0pLGs9aysxfDB9fWdlPWdlKzF8MCxsPTB8YVtPZT4+Ml19bGU9UmV9KGwpLGZ1bmN0aW9uIFYwZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihjPTE5MisoMHxhWzE2KyhsfD0wKT4+''@;'; put 'put ''Ml0pfDA7Yz0wfGFbYz4+Ml07KXtmPTB8YVsyNTYrKGM9MHxhWyhtPWMrMTZ8MCk+PjJdKT4+Ml07ZTpkb3tpZihmKWZvcihwPTA7Oyl7aWYoIShmPTB8YVtmKyhwPDwyKT4+Ml0pKWJyZWFrIGU7RD0wfFVoKGwpLGZlWzE1NisoMHxhWyhjPUQrMTZ8MCk+PjJdKT4+MF09Mix3PShNPSgwfChB''@;'; put 'put ''PX5+KCtfWzU2KyhiPTB8YVsoaz1mKzE2fDApPj4yXSk+PjNdLStfW2IrMTY+PjNdKSkpPjApPzA6MC1BfDAsQT1NP0E6MCxNPWYrNDh8MCxGdShELDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOk0pKzQwPj4yXSwrKEErMXwwKSwwfGFbYisxNTY+PjJdKSxiPWYrLTQ4fDAsRnUoRCwwfGFbKDI9''@;'; put 'put ''PSgzJmFbZj4+Ml18MCk/ZjpiKSs0MD4+Ml0sKyh3KzF8MCksMHxhWzE1NisoMHxhW2s+PjJdKT4+Ml0pLGFbMjMyKygwfGFbYz4+Ml0pPj4yXT0oKDB8KEE9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHwoaz0zJmFbZj4+Ml0pKT9mOk0pKzQwPj4yXSk+PjJdKT4+Ml0pLUF8MCkpPCgw''@;'; put 'put ''fChmPSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8ayk/ZjpiKSs0MD4+Ml0pPj4yXSk+PjJdKS13fDApKT9BOmYpKy0xLHA9cCsxfDAsZj0wfGFbMjU2KyhjPTB8YVttPj4yXSk+PjJdfX13aGlsZSgwKTtjPWMrMTY0fDB9fShsKSxmdW5jdGlvbiBqMGUobCl7KDB8YVsxODArKDB8YVsx''@;'; put 'put ''NisobHw9MCk+PjJdKT4+Ml0pPjAmJihoSChsKSxVWShsKSxRWShsKSxkSChsKSl9KGwpLGZ1bmN0aW9uIGZIKGwpe3ZhciBwLGM9MCxmPTAsbT0wOzM9PSgwfGFbODQrKG09MHxhWzgrKDB8YVsocD0xNisobHw9MCl8MCk+PjJdKT4+Ml0pPj4yXSkmJiEoKGY9K19bbSs3Mj4+M10pKihjPStf''@;'; put 'put ''W20rNjQ+PjNdKTw9MSkmJihRaChsKSxGdSgwfGFbMjU2KyhtPTB8YVtwPj4yXSk+PjJdLDB8YVttKzI2MD4+Ml0sKGY9MD09KDEmYVttKzExNj4+Ml18MCk/YzpmKTw2NTUzNT9mOjY1NTM1LDFlMykpfShsKX0obCksMHxrNyhsLDIsMHxzSChsKSkmJihmdW5jdGlvbiBCMGUobCl7dmFyIHBl''@;'; put 'put ''LGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxnZT0wO2ZvcihxPTB8aXRbMjM2KyhjPTB8YVsocGU9MTYrKGx8PTApfDApPj4yXSk+PjFdOzspe2lmKCgwfHEpPigwfChHPTB8aXRbYysyMzg+PjFdKSkpe2dlPTE5O2JyZWFrfU09MHxhWyhSPShE''@;'; put 'put ''PTB8YVtjKzE5Nj4+Ml0pKyhxPDw2KXwwKT4+Ml0sRD1EKyhxPDw2KSs0fDAsaz0wLGY9MDtlOmZvcig7Oyl7aWYoKDB8ayk+PSgwfE0pKXtnZT0xNDticmVha31BPTB8YVsyNTYrKG09MHxhWzE2KyhmPTB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdKT4+Ml0pPj4yXTt0OmRve2lmKDB8QSlm''@;'; put 'put ''b3IocD0wOzspe2lmKCEodz0wfGFbQSsocDw8Mik+PjJdKSlicmVhayB0O2lmKCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8KGI9MyZhW3c+PjJdKSk/dzp3Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4oMHxxKXx8KDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxiKT93OncrNDh8''@;'; put 'put ''MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8cSkpYnJlYWsgZTtwPXArMXwwfX13aGlsZSgwKTttPTB8YVttKzI0OD4+Ml07dDpkb3tpZigwfG0pZm9yKHA9MDs7KXtpZighKEE9MHxhW20rKHA8PDIpPj4yXSkpYnJlYWsgdDtpZigoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfCh3PTMmYVtB''@;'; put 'put ''Pj4yXSkpP0E6QSs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4oMHxxKXx8KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHx3KT9BOkErLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPigwfHEpKWJyZWFrIGU7cD1wKzF8MH19d2hpbGUoMCk7az1rKzF8MH1pZigxND09KDB8Z2UpJiYoZ2U9MCxm''@;'; put 'put ''KSl7aWYoZj0wfGFbYVtEPj4yXT4+Ml0sIShjPTB8YVthW1IrKCgoMHxxKTwoMHxHKT8xOi0xKTw8NikrND4+Ml0+PjJdKSl7Z2U9MTY7YnJlYWt9Uj0wfFVoKGwpLGZlWzE1NisoMHxhWyhHPVIrMTZ8MCk+PjJdKT4+MF09MixGdShSLGYsMCwwKSxGdShSLGMsMCwwKSxhWzIzMisoMHxhW0c+''@;'; put 'put ''PjJdKT4+Ml09YVsyMzIrKDB8YVsoKDB8YVsyMzIrKDB8YVtmKzE2Pj4yXSk+PjJdKTwoMHxhWzIzMisoMHxhW2MrMTY+PjJdKT4+Ml0pP2Y6YykrMTY+PjJdKT4+Ml0sYz0wfGFbcGU+PjJdfXE9cSsxfDB9aWYoMTY9PSgwfGdlKSlQcig4NjgyOSw4NjcyMSwxMTEsODY4MzIpO2Vsc2UgaWYo''@;'; put 'put ''MTk9PSgwfGdlKSk7fShsKSwwfGs3KGwsMiwwfHNIKGwpKSkmJlByKDg2NjkzLDg2NzIxLDEzNCw4NjczMiksZnVuY3Rpb24gZWsobCl7dmFyIGYsQSxjPTAscD0wLG09MCx3PTAsYj0wO2ZvcihBPTB8YVsxOTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxmPTB8aXRbbCsyMzg+PjFdLGw9''@;'; put 'put ''MHxpdFtsKzIzNj4+MV07ISgoMHxsKT4oMHxmKSk7KXtmb3IocD0wfGFbQSsobDw8Nik+PjJdLG09QSsobDw8NikrNHwwLGM9MDshKCgwfGMpPj0oMHxwKSk7KV9bMTYrKGI9MHxhWzE2KygwfGFbKDB8YVttPj4yXSkrKGM8PDIpPj4yXSk+PjJdKT4+M109KygwfGFbKHc9YisyMzJ8MCk+PjJd''@;'; put 'put ''KSxhW3c+PjJdPWwsYz1jKzF8MDtsPWwrMXwwfX0obCksZnVuY3Rpb24gU0kobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtXWShsfD0wLGwpLGI9MHxhWyhtPWwrMTZ8MCk+PjJdO2U6ZG97aWYoKDB8aXRbYisyMzg+PjFdKT4wJiYodz0w''@;'; put 'put ''fGFbYis4Pj4yXSxmPTB8YVt3Kzg0Pj4yXSwwfGYpKXtSPX5+KCtfW2IrMzI+PjNdLStfW2IrMTY+PjNdKSxNPX5+KCtfW2IrNDA+PjNdLStfW2IrMjQ+PjNdKSxEPShHPTA9PSgxJmFbYisxMTY+PjJdfDApKT9NOlIsTT1HP1I6TSw0PT0oMHxmKT8oZj0wfFAwZShsKSx3PTB8YVs4KyhiPTB8''@;'; put 'put ''YVttPj4yXSk+PjJdKTpmPTI9PSgwfGYpJjE7dDpkb3tpZighKGY8PDI0Pj4yNCkpe3N3aXRjaCgwfGFbdys4ND4+Ml0pe2Nhc2UgNTppZigocD0rX1t3KzY0Pj4zXSk8PTApYnJlYWsgZTtpZihwPShBPXAvK19bYiszMj4+M10pPChrPStfW3crNzI+PjNdLytfW2IrNDA+PjNdKT9BOmssQT4x''@;'; put 'put ''Jms+MSl7az1wO2JyZWFrIHR9YnJlYWsgZTtjYXNlIDE6YnJlYWs7ZGVmYXVsdDpicmVhayBlfWlmKChwPSsoMHxEKS8rKDB8TSkpPChBPStfW3crMTY+PjNdKSl7az0xLHA9QS9wO2JyZWFrfWs9cC9BLHA9MTticmVha31pZigocD0rX1t3KzY0Pj4zXSk8PTApYnJlYWsgZTtpZigoQT1wLyso''@;'; put 'put ''MHxNKSk8MXwocD0rX1t3KzcyPj4zXS8rKDB8RCkpPDEpe2lmKEE8cCl7az0xLHAvPUE7YnJlYWt9az1BL3AscD0xO2JyZWFrfWs9QX13aGlsZSgwKTtmb3IoQT0oZj0wPT0oMSZhW2IrMTE2Pj4yXXwwKSk/cDprLHA9Zj9rOnAsZj1iKzE5MnwwO2Y9MHxhW2Y+PjJdOylfWyhHPTE2KyhmPTB8''@;'; put 'put ''YVtmKzE2Pj4yXSl8MCk+PjNdPSsoMHx+figoaz0rX1tHPj4zXSpwKSsoaz49MD8uNTotLjUpKSksX1soRz1mKzI0fDApPj4zXT0rKDB8fn4oKGs9K19bRz4+M10qQSkrKGs+PTA/LjU6LS41KSkpLGY9ZisxNjR8MDt1SChsLHAsQSl9fXdoaWxlKDApOzB8YyYmZnVuY3Rpb24gWVkobCxjKXt2''@;'; put 'put ''YXIgZix3LE0sRDtNPWxlLGxlPWxlKzMyfDAsdz0oK19bMzIrKEQ9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXS0rX1tEKzE2Pj4zXSkvKCtfW0QrNDA+PjNdLStfW0QrMjQ+PjNdKSxmPStfWyhjfD0wKT4+M107ZG97aWYodz4xLjEqZilhW2MrMjQ+PjJdPX5+KGYqKygoMHxhW2MrMjA+PjJdKS0o''@;'; put 'put ''MHxhW2MrMTY+PjJdKXwwKS93KTtlbHNle2lmKGw9YysyNHwwLCEodzw9LjgqZikpe2FbbD4+Ml09MDticmVha31hW2w+PjJdPS0xfX13aGlsZSgwKTtsZT1NfShsLGMpfShsLGMpLGZ1bmN0aW9uIGF5KGwpe3ZhciBBLGM9MCxmPTAscD0wLG09MDtmb3IobD0xOTIrKDB8YVsoQT0xNisobHw9''@;'; put 'put ''MCl8MCk+PjJdKXwwO2w9MHxhW2w+PjJdOyl7Zm9yKG09bCsxNnwwLGM9MDtmPTB8YVsocD0wfGFbMTgwKyhsPTB8YVttPj4yXSk+PjJdKSsoYzw8Mik+PjJdOylGdCgwfGFbZisxNj4+Ml0pLEZ0KGYpLGM9YysxfDA7cCYmKEZ0KHApLGw9MHxhW20+PjJdKSwoYz0wfGFbbCsxNzI+PjJdKSYm''@;'; put 'put ''KEZ0KGMpLGw9MHxhW20+PjJdKSxmPTB8YVs0KyhwPWwrMjU2fDApPj4yXSxhWyhsPWwrMTgwfDApPj4yXT1hW3A+PjJdLGFbbCs0Pj4yXT1mLHA9MHxhWzQrKGY9MjQ4KyhsPTB8YVttPj4yXSl8MCk+PjJdLGFbKGw9bCsxNzJ8MCk+PjJdPWFbZj4+Ml0sYVtsKzQ+PjJdPXAsbD0xNjQrKDB8''@;'; put 'put ''YVttPj4yXSl8MH1sPTAsYz0wfGFbMTkyKygwfGFbQT4+Ml0pPj4yXTtlOmZvcig7Oylmb3IobT0wPT0oMHxsKSxwPWwrMTZ8MCxsPWM7Oyl7aWYoIWwpYnJlYWsgZTtpZihjPTB8YVsxNjQrKGY9MHxhW2wrMTY+PjJdKT4+Ml0sMiE9KDB8ZmVbZisxNTY+PjBdKSljb250aW51ZSBlO20/YVsx''@;'; put 'put ''OTIrKDB8YVtBPj4yXSk+PjJdPWM6YVsxNjQrKDB8YVtwPj4yXSk+PjJdPWMsRnQoZiksRnQobCksbD1jfWFbMTY4KygwfGFbMTYrKDB8YVsxOTIrKDB8YVtBPj4yXSk+PjJdKT4+Ml0pPj4yXT0wfShsKSl9ZnVuY3Rpb24gbEgobCl7dmFyIE9lLExlLGM9MCxmPTAscD0wLG09MCxBPTAsdz0w''@;'; put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxSZT0wLEhlPTAsVmU9MDtmb3IoTGU9MHxhWzE5NisoYz0wfGFbKE9lPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSxnZT0wfGl0W2MrMjM2Pj4xXTshKCgwfGdlKT4oMHxpdFtjKzIzOD4+MV0pKTspe2ZvcihNPUxlKyhn''@;'; put 'put ''ZTw8Nil8MCxEPUxlKyhnZTw8NikrNHwwLFI9TGUrKGdlPDw2KSs0MHwwLEc9TGUrKGdlPDw2KSsyNHwwLHE9TGUrKGdlPDw2KSszMnwwLHBlPUxlKyhnZTw8NikrMTZ8MCxrPTA7ISgoMHxrKT49KDB8YVtNPj4yXSkpOyl7QT0uNSorX1s4MCsoYz0wfGFbKGI9MTYrKDB8YVsoMHxhW0Q+PjJd''@;'; put 'put ''KSsoazw8Mik+PjJdKXwwKT4+Ml0pPj4zXSxtPTB8YVtjKzIwND4+Ml07ZTpkb3tpZihtKWZvcihwPTA7Oyl7aWYoIShmPTB8YVttKyhwPDwyKT4+Ml0pKWJyZWFrIGU7KDB8YVsoMz09KDB8KFJlPTMmYVtmPj4yXSkpP2Y6Zis0OHwwKSs0MD4+Ml0pPT0oMHxhWygyPT0oMHxSZSk/ZjpmKy00''@;'; put 'put ''OHwwKSs0MD4+Ml0pJiYwIT0oMHwoYmU9MHxhWzk2KygwfGFbZisxNj4+Ml0pPj4yXSkpJiYoQT1BPih3PS41KitfW2JlKzMyPj4zXSk/QTp3KSxwPXArMXwwfX13aGlsZSgwKTsrX1tSPj4zXTxBJiYoX1tHPj4zXT1BLF9bUj4+M109QSksK19bcT4+M108QSYmKF9bcGU+PjNdPUEsX1txPj4z''@;'; put 'put ''XT1BKSwwfChmPTB8YVtjKzIxMj4+Ml0pJiYoKDB8Zik9PSgwfGwpP3A9MDoocD0wfGVzKGYsMHxhWzQ3MTQ0XSw4LDApLGM9MHxhW2I+PjJdKSxtPTB8YVtjKzIzMj4+Ml0sYz0xMjgrKGY9MHxhW2YrMTY+PjJdKXwwLEErPSsoMHxwKSwoMHxtKT09KDB8aXRbZisyMzY+PjFdKSYmKF9bYz4+''@;'; put 'put ''M109KHc9K19bYz4+M10pPkE/dzpBKSxjPWYrMTIwfDAsKDB8bSk9PSgwfGl0W2YrMjM4Pj4xXSkmJihfW2M+PjNdPSh3PStfW2M+PjNdKT5BP3c6QSkpLGs9aysxfDB9Z2U9Z2UrMXwwLGM9MHxhW09lPj4yXX1mb3Ioaz0wfHN5KGwpLF9bMjQrKDB8YVsxNisoMHxhW2FbTGUrKChjPTB8aXRb''@;'; put 'put ''MjM4KyhwPTB8YVtPZT4+Ml0pPj4xXSk8PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M109K19bTGUrKGM8PDYpKzE2Pj4zXSxmPTB8aXRbcCsyMzY+PjFdLG09cCsyNTJ8MCx3PTA7Yj1jKy0xfDAsISgoMHxjKTw9KDB8ZikpOylBPShIZT0rX1tMZSsoYjw8NikrMzI+PjNdKyArX1tMZSsoYzw8Nikr''@;'; put 'put ''NDA+PjNdKyArKDB8YVttPj4yXSkpPihBPStfW0xlKyhjPDw2KSsyND4+M10rOCsgK19bTGUrKGI8PDYpKzE2Pj4zXSk/SGU6QSwoMHxhW0xlKyhiPDw2KT4+Ml0pPjAmJihfWzI0KygwfGFbMTYrKDB8YVthW0xlKyhiPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdPStfWzI0KygwfGFbMTYrKDB8''@;'; put 'put ''YVthW0xlKyhjPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdK0EpLHc9dz5BP3c6QSxjPWI7ZTpkb3tpZigwIT0oMHxrKSYmMCE9KDEmYVtwKzExNj4+Ml18MCkmJih1eShsLDApLHA9MHxhW09lPj4yXSwwfGZlW3ArMjc2Pj4wXSkpZm9yKGM9MHxpdFtwKzIzOD4+MV0sZj0wfGl0W3ArMjM2Pj4x''@;'; put 'put ''XSxBPStfWzI0KygwfGFbMTYrKDB8YVthW0xlKyhjPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLHc9MDs7KXtpZihtPWMrLTF8MCwoMHxjKTw9KDB8ZikpYnJlYWsgZTtIZT0oVmU9K19bMjQrKDB8YVsxNisoMHxhW2FbTGUrKG08PDYpKzQ+PjJdPj4yXSk+PjJdKT4+M10pLUEsQT1WZSx3PXc+''@;'; put 'put ''SGU/dzpIZSxjPW19fXdoaWxlKDApO2U6ZG97aWYoMHxmZVtwKzI3Nj4+MF0pZm9yKG09MHxpdFtwKzIzNj4+MV0sZj0wfGl0W3ArMjM4Pj4xXTs7KXtpZihjPWYrLTF8MCwoMHxmKTw9KDB8bSkpYnJlYWsgZTsoMHxhW0xlKyhjPDw2KT4+Ml0pPD0wfHwoX1syNCsoMHxhWzE2KygwfGFbYVtM''@;'; put 'put ''ZSsoYzw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXT0rX1syNCsoMHxhWzE2KygwfGFbYVtMZSsoZjw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSt3KSxmPWN9fXdoaWxlKDApO2ZvcihjPXArMTkyfDA7Yz0wfGFbYz4+Ml07KV9bMjQrKGM9MHxhW2MrMTY+PjJdKT4+M109K19bMjQrKDB8YVsxNiso''@;'; put 'put ''MHxhW2FbTGUrKGFbYysyMzI+PjJdPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLGM9YysxNjR8MH1mdW5jdGlvbiBzSChsKXt2YXIgYztyZXR1cm4gMHwobD0oYz0wfExpKGx8PTAsODY5MjEpKT9+figra3AoYykqKygwfEdvKGwpKSk6MjE0NzQ4MzY0Nyl9ZnVuY3Rpb24gV1kobCxjKXtjfD0w''@;'; put 'put ''O3ZhciBwLGY9MCxtPTA7Zm9yKHA9MTYrKGx8PTApfDAsZj0xOyEoKDB8Zik+KDB8YVsxODArKG09MHxhW3A+PjJdKT4+Ml0pKTspV1koMHxhWygwfGFbbSsxODQ+PjJdKSsoZjw8Mik+PjJdLGMpLGY9ZisxfDA7IWZ1bmN0aW9uIG92ZShsLGMpe2N8PTA7dmFyIE9lLExlLGY9MCxwPTAsbT0w''@;'; put 'put ''LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLFJlPTA7cGU9KDB8eWEobHw9MCkpPT0oMHxsKSxMZT0wfGFbKE9lPWwrMTZ8MCk+PjJdO2U6ZG97aWYocGUpe2ZvcihHPShsPTB8aXRbTGUrMjM4Pj4xXSk8PDE2Pj4xNixxPUxlKzE5NnwwLHBlPUxl''@;'; put 'put ''KzE5NnwwLFI9KGY9MHxpdFtMZSsyMzY+PjFdKTw8MTY+PjE2LG09LTIxNDc0ODM2NDcscD0yMTQ3NDgzNjQ3OyEoKDB8Uik+KDB8RykpOyl7aWYoMCE9KDB8KEQ9MHxhWyhBPTB8YVtxPj4yXSkrKFI8PDYpPj4yXSkpJiYwIT0oMHwoYmU9MHxhWyhnZT0wfGFbQSsoUjw8NikrND4+Ml0pPj4y''@;'; put 'put ''XSkpKXtmb3IoYj0xLEE9YmU7KDB8Yik8KDB8RCkmKHc9MHxmZVsxNTYrKEE9MHxhW0ErMTY+PjJdKT4+MF0pPDwyND4+MjQhPTA7KUE9MHxhW2dlKyhiPDwyKT4+Ml0sYj1iKzF8MDtpZighKHc8PDI0Pj4yNCkpe2ZvcihNPXA8KGs9K19bQSsxNj4+M10tK19bQSs4OD4+M10pLGI9MHxhWygw''@;'; put 'put ''fGFbcGU+PjJdKSsoUjw8NikrND4+Ml0sdz1EKy0yfDAsQT1EKy0xfDA7MHxmZVsxNTYrKEE9MHxhWzE2KygwfGFbYisoQTw8Mik+PjJdKT4+Ml0pPj4wXTspQT13LHc9dystMXwwO209bT4oUmU9K19bQSs5Nj4+M10rICtfW0ErMTY+PjNdKT9tOlJlLHA9TT9wOmt9fVI9UisxfDB9Zm9yKHc9''@;'; put 'put ''MHxhW0xlKzE4MD4+Ml0sYj1MZSsxODR8MCxBPTE7Oyl7aWYoKDB8QSk+KDB8dykpYnJlYWsgZTtiZT0wfGFbMTYrKDB8YVsoMHxhW2I+PjJdKSsoQTw8Mik+PjJdKT4+Ml0sQT1BKzF8MCxtPW0+KGs9K19bYmUrMzI+PjNdKzgpP206ayxwPXA8KFJlPStfW2JlKzE2Pj4zXS04KT9wOlJlfX1l''@;'; put 'put ''bHNlIG09KygwfGFbMjMyKygwfGFbMTYrKDB8YVtMZSsyNjA+PjJdKT4+Ml0pPj4yXSkscD0rKDB8YVsyMzIrKDB8YVsxNisoMHxhW0xlKzI1Nj4+Ml0pPj4yXSk+PjJdKSxmPTB8aXRbTGUrMjM2Pj4xXSxsPTB8aXRbTGUrMjM4Pj4xXX13aGlsZSgwKTtrPStfWzI0KygwfGFbMTYrKDB8YVth''@;'; put 'put ''WyhjPTB8YVsxOTYrKDB8YVtjKzE2Pj4yXSk+PjJdKSsobDw8MTY+PjE2PDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLStfW0xlKzEyMD4+M10sUmU9K19bTGUrMTI4Pj4zXSsgK19bMjQrKDB8YVsxNisoMHxhW2FbYysoZjw8MTY+PjE2PDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdLF9bTGUrMTY+''@;'; put 'put ''PjNdPXAsX1tMZSsyND4+M109ayxfWzMyKyhjPTB8YVtPZT4+Ml0pPj4zXT1tLF9bYys0MD4+M109UmV9KGwsYyl9ZnVuY3Rpb24gUDBlKGwpe3ZhciBjLGYscCxtLE0scGUsZ2UsYmUsQT0wLHc9MCxiPTAsaz0wLEQ9MCxSPTAsRz0wLHE9MDtyZXR1cm4gZ2U9bGUsbGU9bGUrODB8MCxwPWdl''@;'; put 'put ''KzY0fDAsZj1nZSs0OHwwLE09Z2UscGU9Z2UrMzJ8MCxhWyhtPWdlKzE2fDApPj4yXT1hWyhiZT00OCsoYz0wfGFbOCsoMHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSl8MCk+PjJdLGFbbSs0Pj4yXT1hW2JlKzQ+PjJdLGFbbSs4Pj4yXT1hW2JlKzg+PjJdLGFbbSsxMj4+Ml09YVtiZSsx''@;'; put 'put ''Mj4+Ml0sK19bbT4+M108LjAwMXx8K19bKEE9bSs4fDApPj4zXTwuMDAxfHwoYVtNPj4yXT1hWyh3PWMrMzJ8MCk+PjJdLGFbTSs0Pj4yXT1hW3crND4+Ml0sYVtNKzg+PjJdPWFbdys4Pj4yXSxhW00rMTI+PjJdPWFbdysxMj4+Ml0sYVtmPj4yXT1hW20+PjJdLGFbZis0Pj4yXT1hW20rND4+''@;'; put 'put ''Ml0sYVtmKzg+PjJdPWFbbSs4Pj4yXSxhW2YrMTI+PjJdPWFbbSsxMj4+Ml0sYVtwPj4yXT1hW3c+PjJdLGFbcCs0Pj4yXT1hW3crND4+Ml0sYVtwKzg+PjJdPWFbdys4Pj4yXSxhW3ArMTI+PjJdPWFbdysxMj4+Ml0sRjBlKHBlLGYscCksYVttPj4yXT1hW3BlPj4yXSxhW20rND4+Ml09YVtw''@;'; put 'put ''ZSs0Pj4yXSxhW20rOD4+Ml09YVtwZSs4Pj4yXSxhW20rMTI+PjJdPWFbcGUrMTI+PjJdLGFbZj4+Ml09YVtwZT4+Ml0sYVtmKzQ+PjJdPWFbcGUrND4+Ml0sYVtmKzg+PjJdPWFbcGUrOD4+Ml0sYVtmKzEyPj4yXT1hW3BlKzEyPj4yXSxhW3A+PjJdPWFbTT4+Ml0sYVtwKzQ+PjJdPWFbTSs0''@;'; put 'put ''Pj4yXSxhW3ArOD4+Ml09YVtNKzg+PjJdLGFbcCsxMj4+Ml09YVtNKzEyPj4yXSxGMGUobSxmLHApLChSPShEPStfW20+PjNdKS8oYj0rX1szMisodz0wfGFbbD4+Ml0pPj4zXSkpPj0xJihxPShHPStfW0E+PjNdKS8oaz0rX1t3KzQwPj4zXSkpPj0xKT9sPTA6KHE9K0l1KCsoUj0oUj1SPHE/''@;'; put 'put ''UjpxKT4uNT9SOi41KSprL0cpKkcvayxHPStJdSgrUipiL0QpKkQvYipiLF9bNjQrKGw9MHxhW3crOD4+Ml0pPj4zXT1HLF9bbCs3Mj4+M109cSprLGw9MSksbGU9Z2UsMHxsfWZ1bmN0aW9uIHVIKGwsYyxmKXtjPStjLGY9K2Y7dmFyIHA9MCxtPTA7Zm9yKHA9MTYrKGx8PTApfDAsbD0xOyEo''@;'; put 'put ''KDB8bCk+KDB8YVsxODArKG09MHxhW3A+PjJdKT4+Ml0pKTspdUgoMHxhWygwfGFbbSsxODQ+PjJdKSsobDw8Mik+PjJdLGMsZiksbD1sKzF8MDtfWyhwPW0rMTZ8MCk+PjNdPStfW3A+PjNdKmMsX1socD1tKzI0fDApPj4zXT0rX1twPj4zXSpmLF9bKHA9bSszMnwwKT4+M109K19bcD4+M10q''@;'; put 'put ''YyxfWyhtPW0rNDB8MCk+PjNdPStfW20+PjNdKmZ9ZnVuY3Rpb24gRjBlKGwsYyxmKXt2YXIgcDtwPStfWzgrKGN8PTApPj4zXS0rX1s4KyhmfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2M+PjNdLStfW2Y+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIEZ1KGwsYyxmLHApe2x8PTAsY3w9MCxm''@;'; put 'put ''PStmLHB8PTA7dmFyIEEsdyxiLG09MDtyZXR1cm4gdz0wfHZyKDk2KSxhWyhiPXcrNDh8MCk+PjJdPTN8YVtiPj4yXSxhW3c+PjJdPS00JmFbdz4+Ml18MixtPTB8dnIoMTc2KSxhWyhBPXcrMTZ8MCk+PjJdPW0sYVsoMz09KDMmYVt3Pj4yXXwwKT93OmIpKzQwPj4yXT1sLGFbKDI9PSgzJmFb''@;'; put 'put ''dz4+Ml18MCk/dzp3Ky00OHwwKSs0MD4+Ml09YyxmPjY1NTM1JiYoSDBlKGYpLGY9NjU1MzUsbT0wfGFbQT4+Ml0pLGl0W20rMTcwPj4xXT1+fihmKyhmPj0wPy41Oi0uNSkpLGFbbSsxNTY+PjJdPXAsUUModyksMHx3fWZ1bmN0aW9uIEgwZShsKXt2YXIgYyxmO2M9bGUsbGU9bGUrMTZ8MCxf''@;'; put 'put ''WyhmPWMpPj4zXT1sPStsLGFbZis4Pj4yXT02NTUzNSwkcigxLDg2ODQ1LGYpLGxlPWN9ZnVuY3Rpb24gUWgobCl7dmFyIHAsQSx3LGIsayxNLGM9MCxmPTAsbT0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsaz1NLGY9MHxlcyhsfD0wLDB8YVs0NzE0NF0sOCwwKSx0ayhsKSx3PTB8YVsyNTYrKG09''@;'; put 'put ''MHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml0sYj0wfGFbbSsyNjA+PjJdLHA9KygwfGYpLGY9MHxpdFttKzIzNj4+MV07ISgoMHxmKT4oMHxpdFttKzIzOD4+MV0pKTspe2M9MHxhW20rMTk2Pj4yXTtkb3tpZigwfGFbYysoZjw8Nik+PjJdKXtpZihjPTB8YVthW2MrKGY8PDYpKzQ+PjJdPj4yXSl7''@;'; put 'put ''RnUodyxjLCtfWzg4KygwfGFbYysxNj4+Ml0pPj4zXStwKyArX1ttKzk2Pj4zXSwwKSxGdShjPTB8YVsoMHxhWyhjPTB8YVsxOTYrKG09MHxhW0E+PjJdKT4+Ml0pKyhmPDw2KSs0Pj4yXSkrKCgwfGFbYysoZjw8Nik+PjJdKS0xPDwyKT4+Ml0sYiwrX1s5NisoMHxhW2MrMTY+PjJdKT4+M10r''@;'; put 'put ''cCsgK19bbSs2ND4+M10sMCk7YnJlYWt9YVtrPj4yXT0wfHRpKGwpLGFbays0Pj4yXT1mLCRyKDEsODY5Mjksayk7YnJlYWt9fXdoaWxlKDApO2Y9ZisxfDAsbT0wfGFbQT4+Ml19bGU9TX1mdW5jdGlvbiB0ayhsKXt2YXIgYz0wLGY9MCxwPTA7MHxhWzI1NisoMHxhWyhjPTE2KyhsfD0wKXww''@;'; put 'put ''KT4+Ml0pPj4yXXx8KHA9MHxVaCgwfHlhKGwpKSxmZVsxNTYrKDB8YVtwKzE2Pj4yXSk+PjBdPTIsZj0wfFVoKDB8eWEobCkpLGZlWzE1NisoMHxhW2YrMTY+PjJdKT4+MF09MiwwfGFbMTIrKDB8YVtjPj4yXSk+PjJdJiYoMHx5YShsKSkhPSgwfGwpJiYwPT0oMSZhWzExNisoMHxhWzE2Kygw''@;'; put 'put ''fGRpKGwpKT4+Ml0pPj4yXXwwKSYmRnUocCxmLCsoMHx+fitfWzQ4KyhsPTB8YVtjPj4yXSkrKCgrX1tsKzQ4Pj4zXT4rX1tsKzgwPj4zXT8wOjIpPDw0KT4+M10pLDApLGFbMjU2KyhjPTB8YVtjPj4yXSk+PjJdPXAsYVtjKzI2MD4+Ml09Zil9ZnVuY3Rpb24gaEgobCl7bHw9MDt2YXIgYz0w''@;'; put 'put ''LGY9MDtkb3tpZigoMHx5YShsKSkhPSgwfGwpKXtpZihRaChsKSxjPTB8VTUoMHxhWzI1NisoYz0wfGFbKGw9bCsxNnwwKT4+Ml0pPj4yXSwwfGFbYysyNjA+PjJdKSl7YVsoZj0xNTYrKDB8YVtjKzE2Pj4yXSl8MCk+PjJdPTEyOCsoMHxhW2Y+PjJdKTticmVha31GdSgwfGFbMjU2KyhmPTB8''@;'; put 'put ''YVtsPj4yXSk+PjJdLDB8YVtmKzI2MD4+Ml0sMSwxMjgpO2JyZWFrfWw9bCsxNnwwfXdoaWxlKDApO2ZvcihjPTE7ISgoMHxjKT4oMHxhWzE4MCsoZj0wfGFbbD4+Ml0pPj4yXSkpOyloSCgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhjPDwyKT4+Ml0pLGM9YysxfDB9ZnVuY3Rpb24gVVkobCl7dmFy''@;'; put 'put ''IGssRCxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wO2ZvcihrPSsoMHwodz0wfGVzKGx8PTAsMHxhWzQ3MTQ0XSw4LDApKSksdz0wfGl0WzIzNisoYz0wfGFbKEQ9bCsxNnwwKT4+Ml0pPj4xXTs7KXtpZigoMHx3KT4oMHxpdFtjKzIzOD4+MV0pKXtmPTE7YnJlYWt9Yz0wfGFbYysx''@;'; put 'put ''OTY+PjJdO2U6ZG97aWYoMHxhW2MrKHc8PDYpPj4yXSYmKGI9MHxhW2FbYysodzw8NikrND4+Ml0+PjJdLDB8Yikpe2ZvcihmPTB8YVsyMzYrKDB8YVsobT1iKzE2fDApPj4yXSk+PjJdOyEoKDB8Zik8PTApOyl7aWYoZj1mKy0xfDAsQT0wfGFbKDB8YVsoMHxhWzE5NisoMHxhWzE2KygwfHlh''@;'; put 'put ''KGwpKT4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJdKSsoZjw8Mik+PjJdLCEoMHxmZVsxNTYrKGM9MHxhWyhwPUErMTZ8MCk+PjJdKT4+MF0pKXtNPTEwO2JyZWFrfWlmKDB8bmsobCxBKSl7TT05O2JyZWFrfX1mb3IoOT09KDB8TSkmJihjPTB8YVtwPj4yXSxNPTEwKSwxMD09KDB8TSkmJihNPTAs''@;'; put 'put ''RnUoQSwwfGFbMjU2KygwfGFbRD4+Ml0pPj4yXSwrX1tjKzk2Pj4zXStrLDApKSxmPSgwfGFbKDB8YVsxOTYrKDB8YVtEPj4yXSk+PjJdKSsodzw8Nik+PjJdKSsoMHxhWzIzNisoMHxhW20+PjJdKT4+Ml0pfDA7Oyl7aWYoKDB8Zik+PSgwfGFbKDB8YVsxOTYrKDB8YVsxNisoMHx5YShsKSk+''@;'; put 'put ''PjJdKT4+Ml0pKyh3PDw2KT4+Ml0pKWJyZWFrIGU7aWYobT0wfGFbKDB8YVsoMHxhWzE5NisoMHxhWzE2KygwfHlhKGwpKT4+Ml0pPj4yXSkrKHc8PDYpKzQ+PjJdKSsoZjw8Mik+PjJdLCEoMHxmZVsxNTYrKGM9MHxhWyhwPW0rMTZ8MCk+PjJdKT4+MF0pKWJyZWFrO2lmKDB8bmsobCxtKSl7''@;'; put 'put ''TT0xNTticmVha31mPWYrMXwwfTE1PT0oMHxNKSYmKE09MCxjPTB8YVtwPj4yXSksRnUoMHxhWzI2MCsoMHxhW0Q+PjJdKT4+Ml0sbSwrX1tjKzg4Pj4zXStrLDApfX13aGlsZSgwKTt3PXcrMXwwLGM9MHxhW0Q+PjJdfWZvcig7ISgoMHxmKT4oMHxhW2MrMTgwPj4yXSkpOylVWSgwfGFbKDB8''@;'; put 'put ''YVtjKzE4ND4+Ml0pKyhmPDwyKT4+Ml0pLGY9ZisxfDAsYz0wfGFbRD4+Ml19ZnVuY3Rpb24gUVkobCl7dmFyIGMsZixwPTAsbT0wLEE9MDtmb3IocD0wfGVzKGx8PTAsMHxhWzQ3MTQ0XSw4LDApLHRrKGwpLGM9bCsxNnwwLGY9KygwfHApLGw9MTshKCgwfGwpPigwfGFbMTgwKyhwPTB8YVtj''@;'; put 'put ''Pj4yXSk+PjJdKSk7KXRrKHA9MHxhWygwfGFbcCsxODQ+PjJdKSsobDw8Mik+PjJdKSxGdSgwfGFbMjU2KyhtPTB8YVtjPj4yXSk+PjJdLDB8YVsyNTYrKDB8YVsoQT1wKzE2fDApPj4yXSk+PjJdLCtfW20rOTY+PjNdK2YsMCksRnUoMHxhWzI2MCsoMHxhW0E+PjJdKT4+Ml0sMHxhWzI2MCso''@;'; put 'put ''bT0wfGFbYz4+Ml0pPj4yXSwrX1ttKzY0Pj4zXStmLDApLFFZKHApLGw9bCsxfDB9ZnVuY3Rpb24gZEgobCl7dmFyIEQsUixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTA7Zm9yKGM9MHxlcyhsfD0wLDB8YVs0NzE0NF0sOCwwKSxSPWwrMTZ8MCxsPTE7ISgoMHxsKT4o''@;'; put 'put ''MHwoZj0wfGFbMTgwKyhwPTB8YVtSPj4yXSk+PjJdKSkpOyl0aygwfGFbKDB8YVtwKzE4ND4+Ml0pKyhsPDwyKT4+Ml0pLGw9bCsxfDA7Zm9yKEQ9KygwfGMpLE09MSxsPWYsYz1wOyEoKDB8TSk+KDB8bCkpOyl7Zm9yKGI9az1NKzF8MDtwPTB8YVsoZj0wfGFbYysxODQ+PjJdKSsoTTw8Mik+''@;'; put 'put ''PjJdLCEoKDB8Yik+KDB8bCkpOyl3PShtPSgwfGl0WzIzNisoMHxhW3ArMTY+PjJdKT4+MV0pPigwfGl0WzIzNisoMHxhWzE2KyhmPTB8YVtmKyhiPDwyKT4+Ml0pPj4yXSk+PjFdKSk/ZjpwLEE9KEc9MHxpdFsyMzYrKG09MHxhWyhmPW0/cDpmKSsxNj4+Ml0pPj4xXSk8PDE2Pj4xNiwoMHxp''@;'; put 'put ''dFsyMzgrKHA9MHxhW3crMTY+PjJdKT4+MV0pPj1HPDwxNj4+MTYmJihGdSgwfGFbMjYwKygwfGFbKChsPSgwfGFbMjM2KygwfGFbMTYrKDB8YVthWygwfGFbcCsxOTY+PjJdKSsoQTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4yXSk8KDB8YVsyMzYrKDB8YVsxNisoMHxhW2FbKDB8YVttKzE5Nj4+''@;'; put 'put ''Ml0pKyhBPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjJdKSk/dzpmKSsxNj4+Ml0pPj4yXSwwfGFbMjU2KygwfGFbKGw/Zjp3KSsxNj4+Ml0pPj4yXSxELDApLGM9bD0wfGFbUj4+Ml0sbD0wfGFbbCsxODA+PjJdKSxiPWIrMXwwO2RIKHApLE09ayxsPTB8YVsxODArKGM9MHxhW1I+PjJdKT4+Ml19''@;'; put 'put ''fWZ1bmN0aW9uIG5rKGwsYyl7bHw9MDt2YXIgZj0wO2lmKDE9PSgwfGZlWzE1NisoYz0wfGFbMTYrKGN8PTApPj4yXSk+PjBdKSl7Zm9yKGM9MHxhW2FbYysyNTY+PjJdPj4yXTtmPTB8YVsxMTYrKDB8YVtjKzE2Pj4yXSk+PjJdOyljPWY7Yz0wfE5yKGwsMHxhWygzPT0oMyZhW2M+PjJdfDAp''@;'; put 'put ''P2M6Yys0OHwwKSs0MD4+Ml0pPzA6MD09KDB8TnIobCwwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pKSYxfWVsc2UgYz0wO3JldHVybiAwfGN9ZnVuY3Rpb24gSlkobCxjKXtyZXR1cm4gMHxYWShsfD0wLGN8PTApfWZ1bmN0aW9uIFhZKGwsYyl7bHw9MCxjfD0wO3Zh''@;'; put 'put ''ciBmPTAscD0wO2U6ZG97aWYoKDB8bCk9PSgwfGMpKWw9MTtlbHNlIGZvcihmPTB8YVsxODArKDB8YVtsKzE2Pj4yXSk+PjJdLGw9MDs7KXtpZighKHA9MHxhW2YrKGw8PDIpPj4yXSkpe2w9MDticmVhayBlfWlmKDB8WFkoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJd''@;'; put 'put ''LGMpKXtsPTE7YnJlYWt9bD1sKzF8MH19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBseShsLGMpe2x8PTA7dmFyIE0sRCxSLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxHPTA7Uj1sZSxsZT1sZSs0OHwwLEQ9UiszMnwwLE09Uis4fDAsZj1SKzI0fDAsaz1SKzE2fDAsYj1SLG09''@;'; put 'put ''MHxhWyhwPTE2KyhjfD0wKXwwKT4+Ml07ZTpkb3tpZigoMHxhW20rMjE2Pj4yXSk+PTIpaWYoYVtNPj4yXT1+figrX1ttKzE2Pj4zXS0rX1ttKzg4Pj4zXSksYVtNKzQ+PjJdPX5+K19bbSsyND4+M10sYVtEPj4yXT1hW00+PjJdLGFbRCs0Pj4yXT1hW00rND4+Ml0sS1koZixjLEQpLEE9Zix3''@;'; put 'put ''PTB8YVtBKzQ+PjJdLGY9TSxhW2Y+PjJdPWFbQT4+Ml0sYVtmKzQ+PjJdPXcsZj0wfGFbcD4+Ml0sKDB8YVtmKzE4ND4+Ml0pPjApZm9yKGI9MHxhW2FbZisxODA+PjJdPj4yXSxmPTErKDB8YVtmKzIzNj4+Ml0pfDAsYj0wfE1mKGwsMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6YistNDh8MCkr''@;'; put 'put ''NDA+PjJdKTs7KXtpZighYilicmVhayBlO3A9KHc9Mj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQ4fDAsKDB8KG09MHxhWygzPT0oMyZhW3c+PjJdfDApP3c6cCkrNDA+PjJdKSkhPSgwfGMpJiYoMHxnMShtKSk9PSgwfGMpJiYobT0wfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpwKSs0MD4+''@;'; put 'put ''Ml0sYVtEPj4yXT1hW00+PjJdLGFbRCs0Pj4yXT1hW00rND4+Ml0sJFkoayxsLG0sRCxmKSxwPTB8YVsobT1rKSs0Pj4yXSxhWyhBPU0pPj4yXT1hW20+PjJdLGFbQSs0Pj4yXT1wLHhZKHcpLEE9dystNDh8MCxwPShtPTB8YVsxNzIrKHA9MHxhWzE2KygwfGFbKDI9PSgzJmFbdz4+Ml18MCk/''@;'; put 'put ''dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE3Nj4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE3Nj4+Ml08PDIpfDApLGFbMTcyKygwfGFbMTYrKDB8YVsoMj09KDMmYVt3Pj4yXXwwKT93OkEpKzQwPj4yXSk+PjJdKT4+Ml09cCxwPTB8YVsxNzIrKEc9MHxhWzE2KygwfGFb''@;'; put 'put ''KDI9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKEc9RysxNzZ8MCk+PjJdPTErKG09MHxhW0c+PjJdKSxhW3ArKG08PDIpPj4yXT13LGFbKDB8YVsxNzIrKHc9MHxhWzE2KygwfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVt3KzE3''@;'; put 'put ''Nj4+Ml08PDIpPj4yXT0wLGY9ZisxfDApLGI9MHxGMyhsLGIpfWVsc2UgZm9yKHc9MHxhW2FbZisxNzI+PjJdPj4yXSxmPTErKDB8YVtmKzIzNj4+Ml0pfDAsdz0wfHcwKGwsMHxhWygzPT0oMyZhW3c+PjJdfDApP3c6dys0OHwwKSs0MD4+Ml0pOzspe2lmKCF3KWJyZWFrIGU7cD13Ky00OHww''@;'; put 'put ''LCgwfChtPTB8YVsoMj09KDMmYVt3Pj4yXXwwKT93OnApKzQwPj4yXSkpIT0oMHxjKSYmKDB8ZzEobSkpPT0oMHxjKSYmKG09MHxhWygyPT0oMyZhW3c+PjJdfDApP3c6cCkrNDA+PjJdLGFbRD4+Ml09YVtNPj4yXSxhW0QrND4+Ml09YVtNKzQ+PjJdLCRZKGIsbCxtLEQsZikscD0wfGFbKG09''@;'; put 'put ''YikrND4+Ml0sYVsoQT1NKT4+Ml09YVttPj4yXSxhW0ErND4+Ml09cCx4WSh3KSxBPXcrNDh8MCxwPShtPTB8YVsxODArKHA9MHxhWzE2KygwfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE4ND4+Ml08PDIpfDApOjB8UW4oOCsoYVtw''@;'; put 'put ''KzE4ND4+Ml08PDIpfDApLGFbMTgwKygwfGFbMTYrKDB8YVsoMz09KDMmYVt3Pj4yXXwwKT93OkEpKzQwPj4yXSk+PjJdKT4+Ml09cCxrPTB8YVsxODArKG09MHxhWzE2KygwfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdLGFbKG09bSsxODR8MCk+PjJdPTErKEc9''@;'; put 'put ''MHxhW20+PjJdKSxhW2srKEc8PDIpPj4yXT13LGFbKDB8YVsxODArKEc9MHxhWzE2KygwfGFbKDM9PSgzJmFbdz4+Ml18MCk/dzpBKSs0MD4+Ml0pPj4yXSk+PjJdKSsoYVtHKzE4ND4+Ml08PDIpPj4yXT0wLGY9ZisxfDApLHc9MHxTMChsLHcpfX13aGlsZSgwKTtsZT1SfWZ1bmN0aW9uIEtZ''@;'; put 'put ''KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTA7VHkoY3w9MCwxJmFbMTE2KygwfGFbMTYrKDB8Y3IoYykpPj4yXSk+PjJdKSxfWzI0KyhwPTB8YVtjKzE2Pj4yXSk+PjNdPSsoMHxhW2YrND4+Ml0pLF9bcCsxNj4+M109bT0rX1twKzg4Pj4zXSsgKygwfGFbZj4+Ml0pLGFbZj4+Ml09fn4o''@;'; put 'put ''KG0rPStfW3ArOTY+PjNdKSsgKygwfGFbMjQ4KygwfGFbMTYrKDB8Y3IoYykpPj4yXSk+PjJdKSksYz0wfGFbKHA9ZikrND4+Ml0sYVsoZj1sKT4+Ml09YVtwPj4yXSxhW2YrND4+Ml09Y31mdW5jdGlvbiAkWShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHcsYixrLEE9MDti''@;'; put 'put ''PWxlLGxlPWxlKzE2fDAsdz1iLGM9MHx5YShjfD0wKSwoMHwoQT0wfGcxKGYpKSkhPSgwfGYpJiZmdW5jdGlvbiB5MGUobCxjKXt2YXIgcCxtLGY9MDsoMHwobHw9MCkpPT0oMHwoY3w9MCkpJiZQcig4NTYxMyw4NTU2MSwyMjAsODU2MjApLDB8YVsoZj0xNjQrKG09MHxhW2MrMTY+PjJdKXww''@;'; put 'put ''KT4+Ml0mJlByKDg1NjMzLDg1NTYxLDIyMSw4NTYyMCksYVtmPj4yXT1hWyhwPTE2NCsoMHxhW2wrMTY+PjJdKXwwKT4+Ml0sMHwoZj0wfGFbcD4+Ml0pJiYoYVsxNjgrKDB8YVtmKzE2Pj4yXSk+PjJdPWMpLGFbbSsxNjg+PjJdPWwsYVtwPj4yXT1jfShBLGYpLGFbMjM2KyhrPTB8YVtmKzE2''@;'; put 'put ''Pj4yXSk+PjJdPW0sYVtrKzIzMj4+Ml09QT0wfGFbMjMyKygwfGFbQSsxNj4+Ml0pPj4yXSxhWygwfGFbKDB8YVsxOTYrKDB8YVtjKzE2Pj4yXSk+PjJdKSsoQTw8NikrND4+Ml0pKyhtPDwyKT4+Ml09ZixhW3c+PjJdPWFbcD4+Ml0sYVt3KzQ+PjJdPWFbcCs0Pj4yXSxLWShsLGYsdyksbGU9''@;'; put 'put ''Yn1mdW5jdGlvbiBzeShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MCxrPTAsTT0wLEQ9MDtmb3IoTT0wfGFbMTk2KygwfGFbMTYrKDB8eWEobHw9MCkpPj4yXSk+PjJdLHc9KDB8eWEobCkpPT0oMHxsKT84OisoMHxlcyhsLDB8YVs0NzE0NF0sOCwwKSkscD0wLGI9MSxmPStfWzEy''@;'; put 'put ''MCsobT0wfGFbKGs9bCsxNnwwKT4+Ml0pPj4zXSxjPStfW20rMTI4Pj4zXTshKCgwfGIpPigwfGFbbSsxODA+PjJdKSk7KXA9MHxzeShBPTB8YVsoMHxhW20rMTg0Pj4yXSkrKGI8PDIpPj4yXSl8cCwoMHxpdFsyMzgrKEE9MHxhW0ErMTY+PjJdKT4+MV0pPT0oMHxpdFsyMzgrKG09MHxhW2s+''@;'; put 'put ''PjJdKT4+MV0pJiYoZj1mPihEPStfW0ErMTIwPj4zXSt3KT9mOkQpLCgwfGl0W0ErMjM2Pj4xXSk9PSgwfGl0W20rMjM2Pj4xXSkmJihjPWM+KEQ9K19bQSsxMjg+PjNdK3cpP2M6RCksYj1iKzF8MDtyZXR1cm4oMHx5YShsKSkhPSgwfGwpJiYwIT0oMHxhWzEyKygwfGFbaz4+Ml0pPj4yXSkm''@;'; put 'put ''JigxJmFbMTE2KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjJdP3A9MToocD0xLGY9K19bNTYrKGI9MHxhW2s+PjJdKT4+M10rZixjPStfW2IrODg+PjNdK2MpKSxfWzEyMCsoYj0wfGFbaz4+Ml0pPj4zXT1mLF9bYisxMjg+PjNdPWMsKDB8eWEobCkpIT0oMHxsKSYmKF9bKGw9TSsoaXRbMjM2''@;'; put 'put ''KyhrPTB8YVtrPj4yXSk+PjFdPDw2KSsyNHwwKT4+M109KEQ9K19bbD4+M10pPmM/RDpjLF9bKE09TSsoaXRbaysyMzg+PjFdPDw2KSsxNnwwKT4+M109KEQ9K19bTT4+M10pPmY/RDpmKSwwfHB9ZnVuY3Rpb24gdXkobCxjKXtjfD0wO3ZhciBiLGssZj0wLHA9MCxtPTAsQT0wLHc9MCxNPTAs''@;'; put 'put ''RD0wLFI9MCxHPTAscT0wO2ZvcihSPTB8YVsxOTYrKDB8YVsxNisoMHx5YShsfD0wKSk+PjJdKT4+Ml0sTT0oZj0oMHx5YShsKSk9PSgwfGwpPzA6MHxlcyhsLDB8YVs0NzE0NF0sOCwwKSkrY3wwLGI9KygwfGYpLHc9MSxwPStfWzEyOCsoQT0wfGFbKGs9bCsxNnwwKT4+Ml0pPj4zXSxtPStf''@;'; put 'put ''W0ErMTIwPj4zXSxmPUE7ISgoMHx3KT4oMHxhW2YrMTgwPj4yXSkpOyl1eShBPTB8YVsoMHxhW2YrMTg0Pj4yXSkrKHc8PDIpPj4yXSxNKSwoMHxpdFsyMzgrKEE9MHxhW0ErMTY+PjJdKT4+MV0pPT0oMHxpdFsyMzgrKGY9MHxhW2s+PjJdKT4+MV0pJiYobT1tPihxPStfW0ErMTIwPj4zXSti''@;'; put 'put ''KT9tOnEpLCgwfGl0W0ErMjM2Pj4xXSk9PSgwfGl0W2YrMjM2Pj4xXSkmJihwPXA+KHE9K19bQSsxMjg+PjNdK2IpP3A6cSksdz13KzF8MDtfW2YrMTIwPj4zXT1tLF9bZisxMjg+PjNdPXAsKDB8eWEobCkpIT0oMHxsKSYmMHxhWzEyKyhEPTB8YVtrPj4yXSk+PjJdJiYoRz0tbS1wKyArX1tE''@;'; put 'put ''KzQ4KygoK19bRCsxMDQ+PjNdPitfW0QrNzI+PjNdPzM6MSk8PDQpKzg+PjNdLStfWzI0KygwfGFbMTYrKDB8YVthW1IrKGl0W0QrMjM2Pj4xXTw8NikrND4+Ml0+PjJdKT4+Ml0pPj4zXSsgK19bMjQrKDB8YVsxNisoMHxhW2FbUisoaXRbRCsyMzg+PjFdPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+''@;'; put 'put ''PjNdKT4wJiZmdW5jdGlvbiBaMGUobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxiLGssTSxELFIsRyxxLHA9MCxtPTAsdz0wLHBlPTA7aWYoYj0wfGFbMTYrKDB8eWEobHw9MCkpPj4yXSxwPTB8aXRbMjM2KyhHPTB8YVtsKzE2Pj4yXSk+PjFdLCgwfChmPX5+KChSPSsoMHwoaz0oYysxfDApLzJ8''@;'; put 'put ''MCkpKSsoQT0rKDB8ZikpKyhEPStfWyhNPUcrMTIwfDApPj4zXSktK19bKHE9MHxhW2IrMTk2Pj4yXSkrKChsPTB8aXRbRysyMzg+PjFdKTw8NikrMTY+PjNdKSkpPjApe2ZvcihtPSsoMHxmKTshKCgwfGwpPCgwfHApKTspKDB8YVtxKyhsPDw2KT4+Ml0pPjAmJihfWyhwZT0yNCsoMHxhWzE2''@;'; put 'put ''KygwfGFbYVtxKyhsPDw2KSs0Pj4yXT4+Ml0pPj4yXSl8MCk+PjNdPStfW3BlPj4zXSttKSxsPWwrLTF8MDtsPWYsbT0odz0rX1tHKzEyOD4+M10pKyArKGMta3wwKX1lbHNlIGw9Yy1rfDAsbT13PStfW0crMTI4Pj4zXTtsPX5+KCsoMHxsKStBK20tK19bcSsocDw8NikrMjQ+PjNdKTtlOmRv''@;'; put 'put ''e2lmKCgwfGwpPjApZm9yKGY9MHxpdFtiKzIzNj4+MV0sbT0rKDB8bCk7Oyl7aWYobD1wKy0xfDAsKDB8cCk8PSgwfGYpKWJyZWFrIGU7KDB8YVtxKyhsPDw2KT4+Ml0pPD0wfHwoX1socD0yNCsoMHxhWzE2KygwfGFbYVtxKyhsPDw2KSs0Pj4yXT4+Ml0pPj4yXSl8MCk+PjNdPStfW3A+PjNd''@;'; put 'put ''K20pLHA9bH19d2hpbGUoMCk7X1tHKzEyOD4+M109dysgKyhjLWt8MCksX1tNPj4zXT1EK1J9KGwsfn5HLGMpLCgwfHlhKGwpKSE9KDB8bCkmJihfWyhNPVIrKGl0WzIzNisoRD0wfGFbaz4+Ml0pPj4xXTw8NikrMjR8MCk+PjNdPShxPStfW00+PjNdKT4oRz0rX1tEKzEyOD4+M10pP3E6Ryxf''@;'; put 'put ''WyhSPVIrKGl0W0QrMjM4Pj4xXTw8NikrMTZ8MCk+PjNdPShHPStfW1I+PjNdKT4ocT0rX1tEKzEyMD4+M10pP0c6cSl9ZnVuY3Rpb24gcmsobCxjKXt2YXIgZixwO3A9MHxmZVs4NCsoZj0wfGFbMTYrKGx8PTApPj4yXSk+PjBdLGw9MHxhWzE2KyhjfD0wKT4+Ml07ZG97aWYocDw8MjQ+PjI0''@;'; put 'put ''PT0oMHxmZVtsKzg0Pj4wXSkpe2lmKCtfW2YrNTY+PjNdPT0rX1tsKzU2Pj4zXSl7aWYocDw8MjQ+PjI0IT0wJiYrX1tmKzY0Pj4zXSE9K19bbCs2ND4+M10pe2w9MDticmVha319ZWxzZSBpZihwPDwyND4+MjQpe2w9MDticmVha31pZigrX1tmKzE2Pj4zXT09K19bbCsxNj4+M10mJitfW2Yr''@;'; put 'put ''MjQ+PjNdPT0rX1tsKzI0Pj4zXSl7bD0xO2JyZWFrfWw9MD09KDB8ZmVbZis0ND4+MF0pJjF9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBxWShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihpdFsyMzYrKGM9MHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pPj4x''@;'; put 'put ''XT0zMjc2NyxpdFtjKzIzOD4+MV09LTEsYz0wLEE9MHxEdChsKTtmPTB8YVt3Pj4yXSxBOykoMHwobT0wfGFbMjMyKygwfGFbQSsxNj4+Ml0pPj4yXSkpPigwfGl0WyhwPWYrMjM4fDApPj4xXSkmJihpdFtwPj4xXT1tKSwoMHxtKTwoMHxpdFsoZj1mKzIzNnwwKT4+MV0pJiYoaXRbZj4+MV09''@;'; put 'put ''bSksYz1jPygwfG0pPCgwfGFbMjMyKygwfGFbYysxNj4+Ml0pPj4yXSk/QTpjOkEsQT0wfHp0KGwsQSk7YVtmKzI2ND4+Ml09Y31mdW5jdGlvbiBwSChsKXt2YXIgcCxjPTAsZj0wLG09MDtmb3IoYz0oYz0wfExpKGx8PTAsODY5NzQpKT9+figra3AoYykqKygwfEdvKGwpKSk6MjE0NzQ4MzY0''@;'; put 'put ''NyxwPWwrMTZ8MCxmPTA7ISgoMHxmKT49KDB8YVsyMjArKG09MHxhW3A+PjJdKT4+Ml0pKTspYVttKzE5Mj4+Ml09YVsoMHxhW20rMjE2Pj4yXSkrKGY8PDIpPj4yXSxrNyhsLDA9PSgwfGFbbSsxODA+PjJdKSYxLGMpLGY9ZisxfDB9ZnVuY3Rpb24gZVUobCxjKXtjfD0wO3ZhciBwLG09MDtw''@;'; put 'put ''PWxlLGxlPWxlKzE2fDAsMHxMaShsfD0wLDg2OTgzKT8oaXRbKG09MTM2KygwfGFbbCsxNj4+Ml0pfDApPj4xXT0xNnxpdFttPj4xXSxmdW5jdGlvbiB6MGUobCxjKXtsfD0wLGN8PTA7dmFyIG0sdyxmPTAscD0wLEE9MDt3PWxlLGxlPWxlKzE2fDAsQT13LGFbNDY3NDddPTAsZmVbQT4+MF09''@;'; put 'put ''MHxmZVsxODU4OF0sZmVbQSsxPj4wXT0wfGZlWzE4NTg5XSxmZVtBKzI+PjBdPTB8ZmVbMTg1OTBdLGZlW0ErMz4+MF09MHxmZVsxODU5MV0saDAoQT0wfG9jKDg3MjAxLEEsMCksODcyMzAsMjgwLDEpLGZ1bmN0aW9uIEVpKGwsYyxmKXt2YXIgcDtjfD0wLGZ8PTAscD0wfE10KGx8PTAsMTIp''@;'; put 'put ''LGFbcD4+Ml09YyxhW3ArND4+Ml09ZixhW3ArOD4+Ml09YVsoZj00OCsoMHxhW2wrNjQ+PjJdKXwwKT4+Ml0sYVtmPj4yXT1wfShBLDE3NDA0LDE3MzQ0KSx0VShsKSwoZj0wfExpKGwsODY5NzQpKT9wPX5+KCtrcChmKSorKDB8R28obCkpKTpwPTIxNDc0ODM2NDcsRUkobCwwKSxmdW5jdGlv''@;'; put 'put ''biB4SShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MDtmb3IoYVs0Njc0N109MCxmPTB8RHQobCk7ZjspKDB8SmgoZikpPT0oMHxmKSYmKHA9MHxoeShjLDB8dGkoZikpLGFbMTQ4KygwfGFbZisxNj4+Ml0pPj4yXT1wKSxmPTB8enQobCxmKTtmb3IoZj0wfER0KGwpO2Y7KTB8YVsxNDgrKDB8''@;'; put 'put ''YVsoYz1mKzE2fDApPj4yXSk+PjJdfHwocD0wfGFbMTQ4KygwfGFbMTYrKDB8SmgoZikpPj4yXSk+PjJdLGFbMTQ4KygwfGFbYz4+Ml0pPj4yXT1wKSxmPTB8enQobCxmKX0obCxBKSxmdW5jdGlvbiBYMGUobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2Zv''@;'; put 'put ''cih3PTB8RHQobHw9MCk7dzspe2ZvcihmPTB8YVsxNDgrKDB8YVt3KzE2Pj4yXSk+PjJdLGI9MHx3MChsLHcpO2I7KXtkb3tpZigwPT0oMHxxMGUoYikpJiYoaz1iKy00OHwwLCgwfGYpIT0oMHwoTT0wfGFbMTQ4KygwfGFbMTYrKDB8SmgoMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6aykrNDA+''@;'; put 'put ''PjJdKSk+PjJdKT4+Ml0pKSkpe2lmKEE9Yis0OHwwLHA9KDM9PSgwfChtPTMmYVtiPj4yXSkpP2I6QSkrNDB8MCxtPTB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMHxtKT9iOmspKzQwPj4yXSk+PjJdKT4+Ml0sMHxlb2UoYikpeygwfChtPTB8SmgoMHxhW3A+PjJdKSkpIT0oMHxhWzIxMiso''@;'; put 'put ''MHxhWzE2KygwfGFbMjEyKygwfGFbMTYrKDB8YVsoMz09KDB8KHA9MyZhW2I+PjJdKSk/YjpBKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSkmJigwfChBPTB8SmgoMHxhWygyPT0oMHxwKT9iOmspKzQwPj4yXSkpKSE9KDB8YVsyMDgrKDB8YVsxNisoMHxhWzIxMisoMHxhWzE2KygwfGFb''@;'; put 'put ''KDI9PSgzJmFbYj4+Ml18MCk/YjprKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSk/cD1NOihwPWYsZj1NKSxmVShjLGYscCxiKTticmVha31pZigwPT0oMHxBSCgwfGFbMjEyKygwfGFbMTYrKDB8YVtwPj4yXSk+PjJdKT4+Ml0pKSYmMD09KDB8QUgobSkpKXtmVShjLGYsTSxiKTticmVh''@;'; put 'put ''a31JSShjLGYsTSxiKTticmVha319d2hpbGUoMCk7Yj0wfFMwKGwsYil9dz0wfHp0KGwsdyl9fShsLEEpLHNVKGwsQSwwLDApLGZ1bmN0aW9uIEswZShsKXt2YXIgYz0wLGY9MDtmb3IoYz0wfER0KGx8PTApO2M7KWZlWzE1OCsoZj0wfGFbYysxNj4+Ml0pPj4wXT0wLGZlW2YrMTU3Pj4wXT0w''@;'; put 'put ''LGM9MHx6dChsLGMpO2ZvcihjPTB8RHQobCk7YzspZHkobCxjKSxjPTB8enQobCxjKX0oQSksbT0wfGZ1bmN0aW9uICQwZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wO2ZvcihjPTB8RHQobHw9MCk7YzspYVsxMjgrKDB8YVtjKzE2Pj4yXSk+PjJdPTAsYz0wfHp0KGwsYyk7Zm9yKGM9MCxwPTB8''@;'; put 'put ''RHQobCk7cDspZj1jKzF8MCwwfGFbMTI4KygwfGFbcCsxNj4+Ml0pPj4yXXx8KGZ5KGwscCxmKSxjPWYpLHA9MHx6dChsLHApO2U6ZG97aWYoKDB8Yyk+MSlmb3IobT0wfGh5KGwsODcyNDYpLGY9MSxwPTB8RHQobCk7Oyl7aWYoIXApYnJlYWsgZTsoMHxhWzEyOCsoMHxhW3ArMTY+PjJdKT4+''@;'; put 'put ''Ml0pPT0oMHxmKSYmKEthKGwsbSxwLDAsMSksZj1mKzF8MCkscD0wfHp0KGwscCl9fXdoaWxlKDApO3JldHVybiAwfGN9KEEpLGZ1bmN0aW9uIFRJKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKEE9MHxEdChsfD0wKTtBOyl7Zm9yKHc9QSsxNnwwLG09MHx3MChsLEEp''@;'; put 'put ''O207KWM9KGY9MHxhWzE4MCsoYz0wfGFbdz4+Ml0pPj4yXSk/MHxWMChmLDgrKGFbYysxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbYysxODQ+PjJdPDwyKXwwKSxhWzE4MCsoZj0wfGFbdz4+Ml0pPj4yXT1jLGFbKGY9ZisxODR8MCk+PjJdPTErKHA9MHxhW2Y+PjJdKSxhW2MrKHA8PDIpPj4y''@;'; put 'put ''XT1tLGFbKDB8YVsxODArKHA9MHxhW3c+PjJdKT4+Ml0pKyhhW3ArMTg0Pj4yXTw8Mik+PjJdPTAscD1tKy00OHwwLGM9KGY9MHxhWzE3MisoYz0wfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOnApKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAoZiw4KyhhW2MrMTc2Pj4yXTw8Mil8MCk6''@;'; put 'put ''MHxRbig4KyhhW2MrMTc2Pj4yXTw8Mil8MCksYVsxNzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW20+PjJdfDApP206cCkrNDA+PjJdKT4+Ml0pPj4yXT1jLGM9MHxhWzE3MisoYj0wfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOnApKzQwPj4yXSk+PjJdKT4+Ml0sYVsoYj1iKzE3Nnww''@;'; put 'put ''KT4+Ml09MSsoZj0wfGFbYj4+Ml0pLGFbYysoZjw8Mik+PjJdPW0sYVsoMHxhWzE3MisocD0wfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOnApKzQwPj4yXSk+PjJdKT4+Ml0pKyhhW3ArMTc2Pj4yXTw8Mik+PjJdPTAsbT0wfFMwKGwsbSk7QT0wfHp0KGwsQSl9fShBKSwwfGMmJihi''@;'; put 'put ''VShBKSxtVShBKSkscFEoQSwxLHAsZj0oZj0wfExpKGwsMTAyNTg2KSk/MHxyMyhmKTotMSksZnVuY3Rpb24gdVUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7aXRbMjM2KyhSPTB8YVsoRD0xNisobHw9MCl8MCk+PjJdKT4+MV09MzI3''@;'; put 'put ''NjcsaXRbUisyMzg+PjFdPS0xO2U6ZG97aWYoKDB8Zik+MSlmb3IobT0wfHZyKDQrKGY8PDIpfDApLHA9ZisxfDAsZj0xOzspe2lmKCgwfGYpPT0oMHxwKSl7TT1tLFI9bTticmVhayBlfWFbbSsoZjw8Mik+PjJdPTMyNzY3LGY9ZisxfDB9ZWxzZSBNPTAsUj0wfXdoaWxlKDApO2ZvcihBPTA9''@;'; put 'put ''PSgwfE0pLG09MHxEdChsKTttOyl3PTB8YVsxNisoMHxhWzE0OCsoMHxhWzE2KygwfEpoKG0pKT4+Ml0pPj4yXSk+PjJdLGFbMjMyKyhrPTB8YVttKzE2Pj4yXSk+PjJdPWI9MHxhW3crMjMyPj4yXSwoMHxiKT4oMHxpdFsocD0yMzgrKGY9MHxhW0Q+PjJdKXwwKT4+MV0pJiYoaXRbcD4+MV09''@;'; put 'put ''YiksKDB8Yik8KDB8aXRbKGY9ZisyMzZ8MCk+PjFdKSYmKGl0W2Y+PjFdPWIpLEF8fChhW2srMTI4Pj4yXT13PTB8YVt3KzEyOD4+Ml0sYVsoaz1NKyh3PDwyKXwwKT4+Ml09KDB8KHc9MHxhW2s+PjJdKSk8KDB8Yik/dzpiKSxtPTB8enQobCxtKTt3PTAhPSgwfE0pO2U6ZG97aWYodylmb3Io''@;'; put 'put ''Zj0wfER0KGwpOzspe2lmKCFmKXtmPTE7YnJlYWsgZX1hWyhEPTIzMisoaz0wfGFbZisxNj4+Ml0pfDApPj4yXT0oMHxhW0Q+PjJdKS0oMHxhW00rKGFbaysxMjg+PjJdPDwyKT4+Ml0pLGY9MHx6dChsLGYpfWVsc2UgaWYoTT0wfGl0WzIzNisoMHxhW0Q+PjJdKT4+MV0scD1NPDwxNj4+MTYs''@;'; put 'put ''TTw8MTY+PjE2PjApe2ZvcihmPTB8RHQobCk7ZjspYVsoTT0yMzIrKDB8YVtmKzE2Pj4yXSl8MCk+PjJdPSgwfGFbTT4+Ml0pLXAsZj0wfHp0KGwsZik7aXRbKEQ9MjM2KyhmPTB8YVtEPj4yXSl8MCk+PjFdPSgwfGhyW0Q+PjFdKS1wLGl0WyhmPWYrMjM4fDApPj4xXT0oMHxocltmPj4xXSkt''@;'; put 'put ''cCxmPTB9ZWxzZSBmPTB9d2hpbGUoMCk7Zm9yKGlrKGwsZiksQT0wfER0KGMpO0E7KShtPTB8YVsxNzIrKGY9MHxhWyhwPUErMTZ8MCk+PjJdKT4+Ml0pJiYoRnQobSksZj0wfGFbcD4+Ml0pLDB8KGY9MHxhW2YrMTgwPj4yXSkmJkZ0KGYpLEE9MHx6dChjLEEpO2ZvcihGdCgwfGFbMTEyKygw''@;'; put 'put ''fGFbMTYrKDB8RHQobCkpPj4yXSk+PjJdKSxmPTB8RHQobCk7ZjspYVsxMTIrKDB8YVtmKzE2Pj4yXSk+PjJdPTAsZj0wfHp0KGwsZik7dyYmRnQoUil9KGwsQSxtKSxDMShBKSxsZT13fShsLGMpKTpHMGUobCxjKSxsZT1wfWZ1bmN0aW9uIEcwZShsLGMpe2N8PTA7dmFyIHAsbSxBLGY9MCx3''@;'; put 'put ''PTAsYj0wO0E9bGUsbGU9bGUrMzJ8MCxtPUErMTZ8MCxwPUErOHwwLGY9QSx0VShsfD0wKTtkb3tpZihjKXtpZihiVShsKSxtVShsKSxjeShsLGwpLFJJKGwpLG03KGYsbCksZj0wfGFbKGI9ZikrND4+Ml0sYVsodz1wKT4+Ml09YVtiPj4yXSxhW3crND4+Ml09ZixJSChsLDApLCgwfGFbMjIw''@;'; put 'put ''Kyh3PTB8YVtsKzE2Pj4yXSk+PjJdKTw9MSYmKDB8YVt3KzE4MD4+Ml0pPD0wKWJyZWFrO2FbYyszMj4+Ml09MSxjPTB9ZWxzZSBjeShsLGwpLFJJKGwpLG03KGYsbCksZj0wfGFbKHc9ZikrND4+Ml0sYVsoYz1wKT4+Ml09YVt3Pj4yXSxhW2MrND4+Ml09ZixJSChsLDApLGM9MH13aGlsZSgw''@;'; put 'put ''KTsoZnVuY3Rpb24gZFUobCl7dmFyIHAsYz0wLGY9MCxtPTA7Zm9yKHA9MTYrKGx8PTApfDAsZj0wOyEoKDB8Zik+PSgwfGFbMjIwKyhsPTB8YVtwPj4yXSk+PjJdKSk7KXtmb3IoYVtsKzE5Mj4+Ml09Yz0wfGFbKDB8YVtsKzIxNj4+Ml0pKyhmPDwyKT4+Ml0sYz1sPWM7YzspZmVbMTU3Kyht''@;'; put 'put ''PTB8YVtjKzE2Pj4yXSk+PjBdPTAsYz0wfGFbbSsxNjQ+PjJdO2Zvcig7bDspcFUobCksbD0wfGFbMTY0KygwfGFbbCsxNj4+Ml0pPj4yXTtmPWYrMXwwfX0pKGwpLGFbbT4+Ml09YVtwPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLDB8ZnVuY3Rpb24gVzBlKGwsYyl7Y3w9MDt2YXIgYixmPTAs''@;'; put 'put ''cD0wLG09MCxBPTAsdz0wLGs9MCxNPTA7MD09KDB8YVsyMjgrKHc9MHxhWyhiPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkmJjA9PSgwfGFbdysyMjQ+PjJdKT9jPTA6Zj0zO2U6ZG97aWYoMz09KDB8ZikpZm9yKG09MHxEdChsKSx3PWMrNHwwLEE9NjU1MzUmYVtjPj4yXSxjPTA7Oyl7aWYoIW0p''@;'; put 'put ''YnJlYWsgZTsoMHxtKT09KDB8ZzEobSkpJiYoMD09KDB8YVsxODQrKGY9MHxhWyhwPW0rMTZ8MCk+PjJdKT4+Ml0pJiYhKDA9PSgwfChrPTB8YVsyMjgrKDB8YVtiPj4yXSk+PjJdKSl8KDB8bSk9PSgwfGspKSYmKGM9MHxKYyhtLGssMCksaXRbMTcwKyhmPTB8YVtjKzE2Pj4yXSk+PjFdPWFb''@;'; put 'put ''dz4+Ml0sYVtmKzE1Nj4+Ml09MCxmPTB8YVtwPj4yXSksMD09KDB8YVtmKzE3Nj4+Ml0pJiYhKDA9PSgwfChNPTB8YVsyMjQrKDB8YVtiPj4yXSk+PjJdKSl8KDB8bSk9PSgwfE0pKSYmKGM9MHxKYyhNLG0sMCksaXRbMTcwKyhwPTB8YVtjKzE2Pj4yXSk+PjFdPUEsYVtwKzE1Nj4+Ml09MCkp''@;'; put 'put ''LG09MHx6dChsLG0pfX13aGlsZSgwKTtyZXR1cm4gMCE9KDB8Yyl8MH0obCxtKSYmSUgobCwwKSxjP2Z1bmN0aW9uIGxvZShsLGMpe3ZhciB3LGIsayxNLHEsZj0wLHA9MCxtPTAsQT0wLEc9MDtmb3IocT1sZSxsZT1sZSsxNnwwLGI9MHxhWzI0KyhjfD0wKT4+Ml0sZnVuY3Rpb24gc29lKGwp''@;'; put 'put ''e3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2ZvcihhWzQ2NzUyXT0wfFFuKDI0KigwfEdvKGx8PTApKXwwKSxhWzQ2NzUxXT0wLGM9MHxEdChsKTtjOylhWzEyMCsoMHxhW2MrMTY+PjJdKT4+Ml09LTEsYz0wfHp0KGwsYyk7Zm9yKHc9MHxEdChsKTt3''@;'; put 'put ''Oyl7Yj13KzE2fDA7ZG97aWYoMHxhWzIxNisoMHxhW2I+PjJdKT4+Ml0pe2lmKEE9MHxnMSh3KSwoMHwoZj0wfGFbMTIwKyhjPTB8YVsoaz1BKzE2fDApPj4yXSk+PjJdKSk+LTEpe209MHxhWyhBPTB8YVs0Njc1Ml0pKygyNCpmfDApPj4yXSxhWyhwPUErKDI0KmZ8MCkrNHwwKT4+Ml09MSso''@;'; put 'put ''az0wfGFbcD4+Ml0pLGFbbSsoazw8Mik+PjJdPXcsaz0wfGFbYj4+Ml0sX1soYj1BKygyNCpmfDApKzh8MCk+PjNdPStfW2I+PjNdKyArX1trKzMyPj4zXSxfWyhiPUErKDI0KmZ8MCkrMTZ8MCk+PjNdPShNPStfW2I+PjNdKTwoRD0rX1trKzQwPj4zXSk/RDpNLGFbaysxMjA+PjJdPWY7YnJl''@;'; put 'put ''YWt9Zj0wfHZyKGFbYysyMTY+PjJdPDwyKSxhWyhjPShwPTB8YVs0Njc1Ml0pKygyNCoobT0wfGFbNDY3NTFdKXwwKXwwKT4+Ml09ZixhW2Y+PjJdPUEsKDB8QSk9PSgwfHcpPyhfW3ArKDI0Km18MCkrOD4+M109K19bMzIrKDB8YVtrPj4yXSk+PjNdLGY9MSxjPXcpOihhWzQrKDB8YVtjPj4y''@;'; put 'put ''XSk+PjJdPXcsX1twKygyNCptfDApKzg+PjNdPStfWzMyKyhjPTB8YVtiPj4yXSk+PjNdKyArX1szMisoUj0wfGFbaz4+Ml0pPj4zXSxmPTIsYz0rX1tSKzQwPj4zXTwrX1tjKzQwPj4zXT93OkEpLGFbcCsoMjQqbXwwKSs0Pj4yXT1mLF9bcCsoMjQqbXwwKSsxNj4+M109K19bNDArKDB8YVtj''@;'; put 'put ''KzE2Pj4yXSk+PjNdLGFbMTIwKygwfGFbaz4+Ml0pPj4yXT1tLGFbMTIwKygwfGFbYj4+Ml0pPj4yXT1tLGFbNDY3NTFdPW0rMX1lbHNlIG09MHx2cig0KSxhWyhBPTB8YVs0Njc1Ml0pKygyNCooaz0wfGFbNDY3NTFdKXwwKT4+Ml09bSxhW20+PjJdPXcsYVtBKygyNCprfDApKzQ+PjJdPTEs''@;'; put 'put ''X1tBKygyNCprfDApKzg+PjNdPStfWzMyKyhiPTB8YVtiPj4yXSk+PjNdLF9bQSsoMjQqa3wwKSsxNj4+M109K19bYis0MD4+M10sYVtiKzEyMD4+Ml09ayxhWzQ2NzUxXT1rKzF9d2hpbGUoMCk7dz0wfHp0KGwsdyl9fShsfD0wKSxNPWMrOHwwLHc9MV4oaz0tMT09KDB8YikpLG09MTc5NzY5''@;'; put 'put ''MzEzNDg2MjMxNTdlMjkyLEE9MDtrfCgwfEEpPCgwfGIpOyl7Zm9yKGY9MHxEdChsKTtmOylhWzIzMisoMHxhW2YrMTY+PjJdKT4+Ml09MCxmPTB8enQobCxmKTtpZihwSChsKSxwPSt2VShsKSxfW00+PjNdPXAsISghKHA8PStfW2M+PjNdKSYoIShtPD1wKXx3KSkpe0c9OTticmVha311b2Uo''@;'; put 'put ''bCksbT1wLEE9QSsxfDB9OT09KDB8RykmJihhW2MrMTY+PjJdPWFbKEc9YysyMHwwKT4+Ml0sYVtHPj4yXT1BKSxwSChsKSxPSShsKSxmdW5jdGlvbiBDSCgpe3ZhciBNLEQsbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsUj0wO2ZvcihNPTB8YVs0Njc0OV0sRD0wfGFbNDY3''@;'; put 'put ''NTBdLGs9MCxjPTAsbD0wOyEoKDB8ayk+PSgwfE0pKTspe2Y9RCsoNDAqa3wwKXwwLGI9MHxhW0QrKDQwKmt8MCkrMTI+PjJdLHA9MD09KDB8Yyk7ZTpkb3tpZihiKXtpZihwKWM9MDtlbHNlIGlmKCgwfGFbZj4+Ml0pPigwfGwpKWZvcihtPUQrKDQwKmt8MCkrNHwwLGY9MDs7KXtpZigoMHxm''@;'; put 'put ''KT49KDB8YikpYnJlYWsgZTtmb3Iodz0wfGFbNCsoQT0wfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+PjJdLHA9MDshKCgwfHApPj0oMHx3KSk7KWFbKFI9MjMyKygwfGFbMTYrKDB8YVsoMHxhW0E+PjJdKSsocDw8Mik+PjJdKT4+Ml0pfDApPj4yXT0oMHxhW1I+PjJdKS1jLHA9cCsxfDA7''@;'; put 'put ''Zj1mKzF8MH19ZWxzZSBwJiYobD0wfGFbZj4+Ml0pLGM9YysxfDB9d2hpbGUoMCk7az1rKzF8MH19KCksX1tNPj4zXT0rdlUobCksbGU9cX0obCxjKTpwSChsKSxmdW5jdGlvbiBZMGUobCxjKXtjfD0wO3ZhciBiLGY9MCxwPTAsbT0wLEE9MCx3PTA7cD0wfER0KGx8PTApLGY9MHxhWyhiPWwr''@;'; put 'put ''MTZ8MCk+PjJdO2U6ZG97aWYocCl7Zm9yKGl0W2YrMjM2Pj4xXT0zMjc2NyxpdFtmKzIzOD4+MV09LTEsdz0wPT0oMHxjKTtwOyl7Zj0wfGcxKHApLGM9MHxhWzIzMisoQT0wfGFbcCsxNj4+Ml0pPj4yXTtkb3tpZigoMHxmKSE9KDB8cCkpe2lmKCF3KXtpZihjKWJyZWFrO2M9MH1hW0ErMjMy''@;'; put 'put ''Pj4yXT1jPWMrKDB8YVsyMzIrKDB8YVtmKzE2Pj4yXSk+PjJdKXwwfX13aGlsZSgwKTtzd2l0Y2goKDB8Yyk+KDB8aXRbKG09MjM4KyhmPTB8YVtiPj4yXSl8MCk+PjFdKSYmKGl0W20+PjFdPWMpLCgwfGMpPCgwfGl0WyhmPWYrMjM2fDApPj4xXSkmJihpdFtmPj4xXT1jKSwwfGZlW0ErMTU5''@;'; put 'put ''Pj4wXSl7Y2FzZSA2OmNhc2UgMDpicmVhaztkZWZhdWx0OnJnKHApfXA9MHx6dChsLHApfWlmKCgwfHlhKGwpKT09KDB8bCkpe2lmKDEwMCE9KDB8YVs0NzEzNV0pKXtRMGUobCk7YnJlYWt9Zm9yKGM9MTs7KXtpZigoMHxjKT4oMHxhWzE4MCsoZj0wfGFbYj4+Ml0pPj4yXSkpYnJlYWsgZTty''@;'; put 'put ''VSgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhjPDwyKT4+Ml0pLGM9YysxfDB9fX1lbHNlIGl0W2YrMjM4Pj4xXT0wLGl0W2YrMjM2Pj4xXT0wfXdoaWxlKDApfShsLGMpLGZ1bmN0aW9uIFUwZShsKXt2YXIgYixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wLEQ9MDtmb3IoYj0xNisobHw9''@;'; put 'put ''MCl8MCxmPTA7ISgoMHxmKT49KDB8YVsyMjArKGM9MHxhW2I+PjJdKT4+Ml0pKTspe2ZvcihhW2MrMTkyPj4yXT13PTB8YVsoMHxhW2MrMjE2Pj4yXSkrKGY8PDIpPj4yXSxjPXc7YzspblUoMTcyKygwfGFbKHc9YysxNnwwKT4+Ml0pfDApLG5VKDE4MCsoMHxhW3c+PjJdKXwwKSxmZVsxNTcr''@;'; put 'put ''KHc9MHxhW3c+PjJdKT4+MF09MCxjPTB8YVt3KzE2ND4+Ml07Zj1mKzF8MH1mb3Iodz0wfER0KGwpO3c7KXtmb3IoQT0wfHcwKGwsdyk7QTspe2lmKDAhPSgwfChtPTB8YVsxNzIrKGM9MHxhWyhwPUErMTZ8MCk+PjJdKT4+Ml0pKSYmKDB8QSk9PSgwfGFbMTE2KygwfGFbKGs9bSsxNnwwKT4+''@;'; put 'put ''Ml0pPj4yXSkpe2ZvcihjPTB8RHQobCk7Yzspe2ZvcihmPTB8dzAobCxjKTtmOykoMHxBKSE9KDB8ZikmJjAhPSgwfChEPTB8YVsoTT0xNzIrKDB8YVtmKzE2Pj4yXSl8MCk+PjJdKSkmKDB8bSk9PSgwfEQpJiYoYVtNPj4yXT0wKSxmPTB8UzAobCxmKTtjPTB8enQobCxjKX1GdCgwfGFbaz4+''@;'; put 'put ''Ml0pLEZ0KG0pLGM9MHxhW3A+PjJdfWFbYysxNzI+PjJdPTAsQT0wfFMwKGwsQSl9dz0wfHp0KGwsdyl9RnQoMHxhWzIxNisoMHxhW2I+PjJdKT4+Ml0pLGFbMjE2KyhEPTB8YVtiPj4yXSk+PjJdPTAsYVtEKzIyMD4+Ml09MH0obCksbGU9QX1mdW5jdGlvbiB0VShsKXt2YXIgYz0wLGY9MCxw''@;'; put 'put ''PTA7aWYoMSZmZVsxMTMrKDB8YVsxNisoMHxhWzYwKyhsfD0wKT4+Ml0pPj4yXSk+PjBdKXtmb3IoZj0wfER0KGwpO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspaXRbKHA9MTcwKygwfGFbYysxNj4+Ml0pfDApPj4xXT0oMHxocltwPj4xXSk8PDEsYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9YVso''@;'; put 'put ''cD0yNTIrKDB8YVtsKzE2Pj4yXSl8MCk+PjJdPSgxKygwfGFbcD4+Ml0pfDApLzJ8MH19ZnVuY3Rpb24gY3kobCxjKXtsfD0wO3ZhciBmPTA7Zm9yKGM9MHx3cyhjfD0wKTtjOyl7Zj0wfEowZShjKTtkb3tpZihmKXtpZig3PT0oMHxmKSYxMDA9PSgwfGFbNDcxMzVdKSl7aVUobCxjKTticmVh''@;'; put 'put ''a31nSChsLGMsZik7YnJlYWt9Y3kobCxjKX13aGlsZSgwKTtjPTB8RXMoYyl9fWZ1bmN0aW9uIG03KGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2M9MHxhWzIyOCsoZj0wfGFbKHc9MTYrKGN8PTApfDApPj4yXSk+PjJdLHA9MD09KDB8KGY9MHxhW2YrMjI0Pj4y''@;'; put 'put ''XSkpLGM/bT1wPzU6NDpwPyhiPTAsaz0wKTptPTQsND09KDB8bSkmJihjPTB8ZzEoZiksYVsyMjQrKGY9MHxhW3c+PjJdKT4+Ml09YywoYz0wfGFbZisyMjg+PjJdKT9tPTU6KEE9MCxjPWYsbT0xMikpO2Rve2lmKDU9PSgwfG0pKWlmKGM9MHxnMShjKSxhWzIyOCsoZj0wfGFbdz4+Ml0pPj4y''@;'; put 'put ''XT1jLGMpe2ZvcihwPTU9PSgwfGZlWzE1OSsoYz0wfGFbKGY9YysxNnwwKT4+Ml0pPj4wXSkmMTs7KXtpZighKGM9MHxhW2FbYysxODA+PjJdPj4yXSkpe209MTE7YnJlYWt9aWYoKDB8KEE9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSkhPSgwfGcxKEEpKSl7bT05''@;'; put 'put ''O2JyZWFrfUxJKGMpLGM9MHxhW2Y+PjJdfWlmKDk9PSgwfG0pKVByKDg3MDk0LDg3MDM0LDM0Niw4NzEyNik7ZWxzZSBpZigxMT09KDB8bSkpe0E9cCxjPTB8YVt3Pj4yXSxtPTEyO2JyZWFrfX1lbHNlIEE9MCxjPWYsbT0xMn13aGlsZSgwKTtlOmRve2lmKDEyPT0oMHxtKSlpZihjPTB8YVtj''@;'; put 'put ''KzIyND4+Ml0sYyl7Zm9yKHA9Mz09KDB8ZmVbMTU5KyhjPTB8YVsoZj1jKzE2fDApPj4yXSk+PjBdKSYxOzspe2lmKCEoYz0wfGFbYVtjKzE3Mj4+Ml0+PjJdKSl7Yj1wLGs9QTticmVhayBlfWlmKCgwfCh3PTB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSkhPSgwfGcx''@;'; put 'put ''KHcpKSlicmVhaztMSShjKSxjPTB8YVtmPj4yXX1Qcig4NzEzOSw4NzAzNCwzNTMsODcxMjYpfWVsc2UgYj0wLGs9QX13aGlsZSgwKTthW2w+PjJdPWIsYVtsKzQ+PjJdPWt9ZnVuY3Rpb24gblUobCl7dmFyIGYsYz0wO2ZvcihjPTB8YVsoZj00KyhsfD0wKXwwKT4+Ml07ISgoMHxjKTw9LTEp''@;'; put 'put ''OylhWygwfGFbbD4+Ml0pKyhjPDwyKT4+Ml09MCxjPWMrLTF8MDthW2Y+PjJdPTB9ZnVuY3Rpb24gclUobCl7dmFyIGMscCxmPTA7Zm9yKGl0WyhsPTIzNisoZj0wfGFbKGM9MTYrKGx8PTApfDApPj4yXSl8MCk+PjFdPShwPTB8YVsyMzIrKDB8YVsxNisoMHxhW2YrMjY0Pj4yXSk+PjJdKT4+''@;'; put 'put ''Ml0pKygwfGhyW2w+PjFdKSxpdFsobD1mKzIzOHwwKT4+MV09cCsoMHxocltsPj4xXSksbD0xOyEoKDB8bCk+KDB8YVtmKzE4MD4+Ml0pKTspclUoMHxhWygwfGFbZisxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwLGY9MHxhW2M+PjJdfWZ1bmN0aW9uIFEwZShsKXt2YXIgYz0wO2Zvcihj''@;'; put 'put ''PTB8d3MoMHx5YShsfD0wKSk7YzspNz09KDB8ZmVbMjc0KygwfGFbYysxNj4+Ml0pPj4wXSkmJmlVKGwsYyksYz0wfEVzKGMpfWZ1bmN0aW9uIGlVKGwsYyl7dmFyIGY7bHw9MCxmPTIwMCsoMHxhWzE2KyhjfD0wKT4+Ml0pfDA7ZG97aWYoMD09KDB8YVtmPj4yXSkmJihhW2Y+PjJdPWwsb1Uo''@;'; put 'put ''bCxjKSwwfER0KGMpKSl7aWYoYVUobCxjKSwxMDA9PSgwfGFbNDcxMzVdKSl7RzBlKGMsMCksbFUoYyk7YnJlYWt9cVkoYyk7YnJlYWt9fXdoaWxlKDApfWZ1bmN0aW9uIG9VKGwsYyl7dmFyIEEsZj0wLHA9MCxtPTAsdz0wLGI9MCxrPTA7Zm9yKEE9MTYrKGx8PTApfDAsbT0wfER0KGN8PTAp''@;'; put 'put ''O207KWlmKHc9MHx6dChjLG0pLDB8ZmVbMTU5KygwfGFbKGI9bSsxNnwwKT4+Ml0pPj4wXSlvaShjLG0pLG09dztlbHNle2ZvcihwPTE7ISgoMHxwKT49KDB8KGw9MHxhWzE4MCsoZj0wfGFbQT4+Ml0pPj4yXSkpKTspe2lmKDB8TnIoMHxhWygwfGFbZisxODQ+PjJdKSsocDw8Mik+PjJdLG0p''@;'; put 'put ''KXtrPTc7YnJlYWt9cD1wKzF8MH03PT0oMHxrKSYmKGs9MCxsPTB8YVsxODArKDB8YVtBPj4yXSk+PjJdKSwoMHxwKTwoMHxsKSYmb2koYyxtKSxhWzIxMisoMHxhW2I+PjJdKT4+Ml09MCxtPXd9Zm9yKGY9MHxEdChjKTtmOyl7Zm9yKGw9MHx3MCgwfHlhKGMpLGYpO2w7KTB8TnIoYywwfGFb''@;'; put 'put ''KDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pJiZaZChjLGwsMSksbD0wfFMwKDB8eWEoYyksbCk7Zj0wfHp0KGMsZil9fWZ1bmN0aW9uIGFVKGwsYyl7Y3w9MDt2YXIgcCxtLEEsZj0wO2FbKEE9MTgwKyhmPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml09bT0xKyhs''@;'; put 'put ''PTB8YVtBPj4yXSl8MCxsPShmPTB8YVtmKzE4ND4+Ml0pPzB8R0goZixsKzJ8MCw0LG0pOjB8dnIoOCsobDw8Mil8MCksYVsxODQrKDB8YVtwPj4yXSk+PjJdPWwsYVtsKyhtPDwyKT4+Ml09YyxmayhjKX1mdW5jdGlvbiBsVShsKXt2YXIgbSxjPTAsZj0wLHA9MCxBPTA7Zm9yKGM9MTkyKyht''@;'; put 'put ''PTB8YVsxNisobHw9MCk+PjJdKXwwLEE9MDtjPTB8YVtjPj4yXTspZj0wfGFbMjMyKyhwPTB8YVtjKzE2Pj4yXSk+PjJdP0E6MD09KDB8ZmVbcCsxNTY+PjBdKT9jOkEsYz1wKzE2NHwwLEE9Zjtmb3IoQXx8UHIoODcwMTksODcwMzQsMjM4LDg3MDQxKSxhW20rMjY0Pj4yXT1BLGM9MHxEdChs''@;'; put 'put ''KTs7KXtpZighYyl7Yz0xMzticmVha31pZihmPWMrMTZ8MCwhKCgwfGMpPT0oMHxBKXx8KDB8YVsyMTYrKDB8YVtmPj4yXSk+PjJdKTwyKSl7Yz0xMTticmVha31mRChjLEEpLGZlWzE1OSsoMHxhW2Y+PjJdKT4+MF09NyxjPTB8enQobCxjKX1pZigxMT09KDB8YykpUHIoODcwNTYsODcwMzQs''@;'; put 'put ''MjQyLDg3MDQxKTtlbHNlIGlmKDEzPT0oMHxjKSlyZXR1cm59ZnVuY3Rpb24gSjBlKGwpe3ZhciBjPTA7cmV0dXJuIDB8bUgobHw9MCk/bD03OihjPTB8U04oMHxMaShsLDg3MTcxKSwxNzM1NiwxNzM4MCksZmVbMjc0KygwfGFbbCsxNj4+Ml0pPj4wXT1jLGw9YyksMHxsfWZ1bmN0aW9uIGdI''@;'; put 'put ''KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTA7bT0wfER0KGN8PTApO2U6ZG97aWYoMHxtKXtmb3Iodz1tKzE2fDAscD1tLEE9Yj0yNTUmZjtmZVsxNTkrKDB8YVtwKzE2Pj4yXSk+PjBdPUEscD0wfHp0KGMscCk7KWZEKG0scCksQT0wfGZlWzE1OSsoMHxhW3c+PjJd''@;'; put 'put ''KT4+MF07c3dpdGNoKDB8Zil7Y2FzZSAzOmNhc2UgMjooQT0wfGFbMjI0KyhwPTB8YVsobD1sKzE2fDApPj4yXSk+PjJdKSYmKG09MHxmRChBLG0pLHA9MHxhW2w+PjJdKSxhW3ArMjI0Pj4yXT1tO2JyZWFrO2Nhc2UgNTpjYXNlIDQ6KEE9MHxhWzIyOCsocD0wfGFbKGw9bCsxNnwwKT4+Ml0p''@;'; put 'put ''Pj4yXSkmJihtPTB8ZkQoQSxtKSxwPTB8YVtsPj4yXSksYVtwKzIyOD4+Ml09bTticmVhaztkZWZhdWx0OmJyZWFrIGV9c3dpdGNoKDB8Zil7Y2FzZSAzOnA9cCsyMjR8MDticmVhaztjYXNlIDU6cD1wKzIyOHwwO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1mZVsxNTkrKDB8YVsxNisoMHxhW3A+''@;'; put 'put ''PjJdKT4+Ml0pPj4wXT1ifX13aGlsZSgwKX1mdW5jdGlvbiBtSChsKXtyZXR1cm4gMD09KDB8czIoMHx0aShsfD0wKSwxMDgwMDYsNykpfDB9ZnVuY3Rpb24gRUkobCxjKXtjfD0wO3ZhciBtLE0sZj0wLHA9MCxBPTAsdz0wLGI9MCxrPTA7aWYoTT1sZSxsZT1sZSsxNnwwLG09TSwhKDB8ZnVu''@;'; put 'put ''Y3Rpb24gbm9lKGwpe3JldHVybiAwPT0oMHxEdChsfD0wKSl8MH0obHw9MCkpKXtkb3tpZigwfHZEKGwpKXtpZihjKXthWzIwNCsoMHxhW2wrMTY+PjJdKT4+Ml09MSsoMHxhWzIwNCsoMHxhW2MrMTY+PjJdKT4+Ml0pLHJvZShsLGMpLGM9bDticmVha31hWzIwNCsoMHxhW2wrMTY+PjJdKT4+''@;'; put 'put ''Ml09MCxjPWw7YnJlYWt9fXdoaWxlKDApO2ZvcihmPTB8d3MobCk7ZjspRUkoZixjKSxmPTB8RXMoZik7ZTpkb3tpZigwfHZEKGwpKWZvcihmPTB8RHQobCk7Oyl7aWYoIWYpYnJlYWsgZTswfGFbKHA9MjEyKygwfGFbZisxNj4+Ml0pfDApPj4yXXx8KGFbcD4+Ml09bCksZj0wfHp0KGwsZil9''@;'; put 'put ''fXdoaWxlKDApO3N3aXRjaCgwfGZ1bmN0aW9uIGlvZShsKXt2YXIgYz0wO3JldHVybiAwIT0oMHwobD0wfExpKGx8PTAsODcxNzEpKSkmJjAhPSgwfGZlW2w+PjBdKT8wfFppKGwsODcxODEpPzB8WmkobCw4NzE4NSk/MHxaaShsLDg3MTkyKT8wfFppKGwsODcxOTYpPzB8WmkobCw4NzE3Nik/''@;'; put 'put ''Yz04Omw9MTpsPTU6bD00Omw9MzpsPTI6Yz04LDg9PSgwfGMpJiYobD02KSwwfGx9KGwpKXtjYXNlIDM6ZmVbMjQxKygwfGFbKGM9YysxNnwwKT4+Ml0pPj4wXT0xLGs9MTk7YnJlYWs7Y2FzZSAyOmM9YysxNnwwLGs9MTk7YnJlYWs7Y2FzZSA1OmZlWzI0MisoMHxhWyhjPWMrMTZ8MCk+PjJd''@;'; put 'put ''KT4+MF09MSxrPTIxO2JyZWFrO2Nhc2UgNDpjPWMrMTZ8MCxrPTIxO2JyZWFrO2Nhc2UgMTpESShsKTticmVhaztjYXNlIDY6YnJlYWs7ZGVmYXVsdDpmPTB8dGkobCkscD0wfExpKGwsODcxNzEpLGFbbT4+Ml09ZixhW20rND4+Ml09cCwkcigwLDg3MzU0LG0pfTE5PT0oMHxrKT8oaz0wfHlI''@;'; put 'put ''KGs9MHxESShsKSwwfGFbMjA4KygwfGFbYz4+Ml0pPj4yXSksYVsyMDgrKDB8YVtjPj4yXSk+PjJdPWspOjIxPT0oMHxrKSYmKGs9MHx5SChrPTB8REkobCksMHxhWzIxMisoMHxhW2M+PjJdKT4+Ml0pLGFbMjEyKygwfGFbYz4+Ml0pPj4yXT1rKSwwfHZEKGwpJiYwfChiPTB8YVsyMDgrKHc9''@;'; put 'put ''MHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml0pJiYoMHxiKT09KDB8YVt3KzIxMj4+Ml0pJiYoYj0wfERJKGwpLGFbMjA4KyhrPTB8YVtBPj4yXSk+PjJdPWIsYVtrKzIxMj4+Ml09Yil9bGU9TX1mdW5jdGlvbiBzVShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MDtpZigwIT0oMHx2''@;'; put 'put ''RChsfD0wKSkmJjAhPSgwfEFIKGwpKSl7Zm9yKEE9MHxEdChsKTtBOykwfE1mKGwsQSl8fChtPTB8YVsxNDgrKDB8YVsxNisoMHxKaChBKSk+PjJdKT4+Ml0sZnx8KGY9MHxoeShjLDg3MjUyKSksS2EoYyxmLG0sMCwxKSksMHx3MChsLEEpfHwobT0wfGFbMTQ4KygwfGFbMTYrKDB8SmgoQSkp''@;'; put 'put ''Pj4yXSk+PjJdLHB8fChwPTB8aHkoYyw4NzI1NykpLEthKGMsbSxwLDAsMSkpLEE9MHx6dChsLEEpOzAhPSgwfHApJjAhPSgwfGYpJiZ2SCgwfEthKGMsZixwLDAsMSksMCwxZTMpLG09Zn1lbHNlIG09Zjtmb3IoZj0wfHdzKGwpO2Y7KXNVKGYsYyxtLHApLGY9MHxFcyhmKX1mdW5jdGlvbiBK''@;'; put 'put ''aChsKXt2YXIgYyxmLHA9MDtpZihwPTB8YVsoZj0xNTIrKDB8YVsoYz0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml0pe2lmKCgwfHApIT0oMHxsKSlyZXR1cm4gcD0wfEpoKHApLGFbMTUyKygwfGFbYz4+Ml0pPj4yXT1wLDB8cH1lbHNlIGFbZj4+Ml09bDtyZXR1cm4gMHxsfWZ1bmN0aW9uIGlr''@;'; put 'put ''KGwsYyl7Y3w9MDt2YXIgdyxmPTAscD0wLG09MCxBPTA7Zm9yKHc9MTYrKGx8PTApfDAsZj0xOyEoKDB8Zik+KDB8YVsxODArKHA9MHxhW3c+PjJdKT4+Ml0pKTspaWsoMHxhWygwfGFbcCsxODQ+PjJdKSsoZjw8Mik+PjJdLDApLGY9ZisxfDA7aWYoMCE9KDB8Yyl8MCE9KDB8YVtwKzIwMD4+''@;'; put 'put ''Ml0pKXtmb3IoaXRbcCsyMzY+PjFdPTMyNzY3LGl0W3ArMjM4Pj4xXT0tMSxmPTAsQT0wfER0KGwpO0E7KSgwfChtPTB8YVsyMzIrKDB8YVtBKzE2Pj4yXSk+PjJdKSk+KDB8aXRbKHA9MjM4KyhjPTB8YVt3Pj4yXSl8MCk+PjFdKSYmKGl0W3A+PjFdPW0pLCgwfG0pPCgwfGl0WyhjPWMrMjM2''@;'; put 'put ''fDApPj4xXSkmJihpdFtjPj4xXT1tLGY9QSksQT0wfHp0KGwsQSk7YVsyNjQrKDB8YVt3Pj4yXSk+PjJdPWZ9fWZ1bmN0aW9uIGZ5KGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MDtwPTEyOCsoMHxhWzE2KyhjfD0wKT4+Ml0pfDA7ZTpkb3tpZighKDB8YVtwPj4yXSkpe2ZvcihhW3A+PjJdPWYs''@;'; put 'put ''cD0wfHcwKGwsYyk7cDspZnkobCwwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0sZikscD0wfFMwKGwscCk7Zm9yKHA9MHxNZihsLGMpOzspe2lmKCFwKWJyZWFrIGU7ZnkobCwwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSxmKSxwPTB8RjMobCxw''@;'; put 'put ''KX19fXdoaWxlKDApfWZ1bmN0aW9uIGh5KGwsYyl7dmFyIG0sZj0wLHA9MDtyZXR1cm4gbT0wfEdyKGx8PTAsY3w9MCwxKSxhWzE3NisoMHxhWyhjPW0rMTZ8MCk+PjJdKT4+Ml09MCxwPTB8dnIoMjApLGFbMTcyKyhmPTB8YVtjPj4yXSk+PjJdPXAsYVtmKzE4ND4+Ml09MCxmPTB8dnIoMjAp''@;'; put 'put ''LGFbMTgwKyhjPTB8YVtjPj4yXSk+PjJdPWYscD1jKzE2OHwwLChmPTB8YVs0Njc0N10pPyhhW3A+PjJdPWYsYVsxNjQrKDB8YVtmKzE2Pj4yXSk+PjJdPW0pOihhW3A+PjJdPTAsYVsxOTIrKDB8YVtsKzE2Pj4yXSk+PjJdPW0pLGFbNDY3NDddPW0sYVtjKzE2ND4+Ml09MCwwfG19ZnVuY3Rp''@;'; put 'put ''b24gZHkobCxjKXtsfD0wO3ZhciBBLGY9MCxwPTAsbT0wO2lmKCEoMHxmZVsocD0xNTcrKGY9MHxhWyhBPTE2KyhjfD0wKXwwKT4+Ml0pfDApPj4wXSkpe2ZvcihmZVtwPj4wXT0xLGZlW2YrMTU4Pj4wXT0xLGM9MHx3MChsLGMpO2M7KWY9MHxTMChsLGMpLDB8ZmVbMTU4KyhtPTB8YVsxNiso''@;'; put 'put ''cD0wfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdPyhjVShsLGMpLGM9Zik6KDB8ZmVbbSsxNTc+PjBdfHxkeShsLHApLGM9Zik7ZmVbMTU4KygwfGFbQT4+Ml0pPj4wXT0wfX1mdW5jdGlvbiBjVShsLGMpe3ZhciBwLGY9MCxtPTA7bT0oY3w9MCktNDh8''@;'; put 'put ''MCxwPWMrNDh8MCwoZj0wfEthKGx8PTAsMHxhWygyPT0oMHwoZj0zJmFbYz4+Ml0pKT9jOm0pKzQwPj4yXSwwfGFbKDM9PSgwfGYpP2M6cCkrNDA+PjJdLDAsMCkpfHwoZj0wfEthKGwsMHxhWygyPT0oMHwoZj0zJmFbYz4+Ml0pKT9jOm0pKzQwPj4yXSwwfGFbKDM9PSgwfGYpP2M6cCkrNDA+''@;'; put 'put ''PjJdLDAsMSkpLHZIKGYsMHxoclsxNzArKG09MHxhW2MrMTY+PjJdKT4+MV0sMHxhW20rMTU2Pj4yXSksb2kobCxjKX1mdW5jdGlvbiB2SChsLGMsZil7dmFyIHAsbTtmfD0wLGl0WyhwPTE3MCsobD0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjFdPSgwfChtPTB8aHJbcD4+MV0pKT4oMHwoY3w9''@;'; put 'put ''MCkpP206YyxhWyhjPWwrMTU2fDApPj4yXT0oMHxhW2M+PjJdKStmfWZ1bmN0aW9uIEFIKGwpe3JldHVybiAyNTUmKDB8bmcoMHxMaShsfD0wLDg3MjYyKSwwKSl8MH1mdW5jdGlvbiBxMGUobCl7bHw9MDt2YXIgYyxmPTA7cmV0dXJuIDB8KDAhPSgwfChjPTB8YVs0NzE4OV0pKSYmMCE9KDB8''@;'; put 'put ''KGY9MHxIbyhsLGMpKSkmJjAhPSgwfGZlW2Y+PjBdKSYmKDB8dDEoZikpPDwyND4+MjQ9PTA/MTowKX1mdW5jdGlvbiBlb2UobCl7dmFyIGMsZj0wO3JldHVybigwfChjPTB8YVsyMTIrKDB8YVsxNisoMHxhWygzPT0oMHwoZj0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4y''@;'; put 'put ''XSk+PjJdKSk9PSgwfChsPTB8YVsyMTIrKDB8YVsxNisoMHxhWygyPT0oMHxmKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT8xOihmPTB8ZnVuY3Rpb24gdG9lKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtlOmZvcig7Oyl7Zm9yKHA9bCsxNnwwOzspe2lmKCgwfGwpPT0o''@;'; put 'put ''MHxjKSlicmVhayBlO2lmKCgwfGFbMjA0KyhtPTB8YVtwPj4yXSk+PjJdKT49KDB8YVsyMDQrKGY9MHxhW2MrMTY+PjJdKT4+Ml0pKWJyZWFrO2M9MHxhW2YrMjAwPj4yXX1sPTB8YVttKzIwMD4+Ml19cmV0dXJuIDB8bH0oYyxsKSwxJigoMHxmKT09KDB8Yyl8KDB8Zik9PSgwfGwpKXwwKX1m''@;'; put 'put ''dW5jdGlvbiBmVShsLGMsZixwKXtwfD0wO3ZhciBBLGIsbT0wLHc9MDtiPWxlLGxlPWxlKzE2fDAsQT1iLChtPTB8S2EobHw9MCxjfD0wLGZ8PTAsMCwwKSl8fChtPTB8S2EobCxmLGMsMCwwKSl8fChtPTB8S2EobCxjLGYsMCwxKSk/dz00OihjPTB8dGkoYykscD0wfHRpKGYpLGFbQT4+Ml09''@;'; put 'put ''YyxhW0ErND4+Ml09cCwkcigxLDg3Mjc5LEEpKSw0PT0oMHx3KSYmdkgobSwwfGhyWzE3MCsodz0wfGFbcCsxNj4+Ml0pPj4xXSwwfGFbdysxNTY+PjJdKSxsZT1ifWZ1bmN0aW9uIElJKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgayxtPTAsQT0wLHc9MCxiPTAsTT0wO2ZvcihrPWxlLGxlPWxl''@;'; put 'put ''KzExMnwwLHc9ayxBPWsrNHwwLG09MHxNZihsfD0wLGN8PTApOzspe2lmKCFtKXtiPTY7YnJlYWt9aWYoMHwoTT0wfHcwKGwsMHxhWygzPT0oMyZhW20+PjJdfDApP206bSs0OHwwKSs0MD4+Ml0pKSYmKDB8YVsoMj09KDMmYVtNPj4yXXwwKT9NOk0rLTQ4fDApKzQwPj4yXSk9PSgwfGYpKWJy''@;'; put 'put ''ZWFrO209MHxGMyhsLG0pfTY9PSgwfGIpJiYoYVs0Njc0OF09MSsoTT0wfGFbNDY3NDhdKSxhW3c+PjJdPU0sb28oQSw4NzI3MCx3KSxNPTB8S2EobCxBPTB8aHkobCxBKSxjLDAsMSksQT0wfEthKGwsQSxmLDAsMSksYVsoTT0xNTYrKDB8YVtNKzE2Pj4yXSl8MCk+PjJdPSgwfGFbTT4+Ml0p''@;'; put 'put ''KygxZTMqKDB8YVsoYj0xNTYrKGY9MHxhW3ArMTY+PjJdKXwwKT4+Ml0pfDApLGl0Wyh3PTE3MCsoTT0wfGFbQSsxNj4+Ml0pfDApPj4xXT0wfGl0WzE3MCsoMHxhWygoMHxoclt3Pj4xXSk+KDB8aHJbZisxNzA+PjFdKT9BOnApKzE2Pj4yXSk+PjFdLGFbKE09TSsxNTZ8MCk+PjJdPSgwfGFb''@;'; put 'put ''TT4+Ml0pKygwfGFbYj4+Ml0pKSxsZT1rfWZ1bmN0aW9uIHJvZShsLGMpe2FbMjAwKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPWN8PTAsYVUoYyxsKSxvVShjLGwpfWZ1bmN0aW9uIERJKGwpe3ZhciBjPTAsZj0wO2Y9MHxEdChsfD0wKTtlOmRve2lmKGYpZm9yKGM9MHxKaChmKTs7KXtpZigh''@;'; put 'put ''KGY9MHx6dChsLGYpKSlicmVhayBlO3lIKGMsZil9ZWxzZSBjPTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiB5SChsLGMpe3JldHVybiBsfD0wLChjfD0wKSYmKGw9MHxKaChsKSxhWzE1MisoMHxhWzE2KygwfEpoKGMpKT4+Ml0pPj4yXT1sKSwwfGx9ZnVuY3Rpb24gd0gobCl7dmFy''@;'; put 'put ''IE0sRCxHLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsUj0wO0c9bGUsbGU9bGUrMjQwfDAsTT1HKzEyMHwwLEQ9RyxhWzQ3MTkzXT0wfHNpKGx8PTAsMiw4NzQxMiwwKSxrPTB8c2kobCwyLDg3NDIxLDApLGFbNDcxOTRdPWs7ZTpkb3tpZigwIT0oMHxrKXwwIT0oMHxhWzQ3MTkz''@;'; put 'put ''XSkpZm9yKGs9MHxEdChsKTs7KXtpZighaylicmVhayBlO2ZvcihiPTAsYz0wLHc9MHxNcyhsLGspOzspe2lmKCF3KXtwPTA7YnJlYWt9cD0wfGFbKDI9PSgwfChtPTMmKGY9MHxhW3c+PjJdKSkpP3c6dystNDh8MCkrNDA+PjJdLEE9dys0OHwwO3Q6ZG97aWYoKDB8cCkhPSgwfGFbKDM9PSgw''@;'; put 'put ''fG0pP3c6QSkrNDA+PjJdKSl7bT0wfGFbNDcxOTNdO2Rve2lmKCgwfHApPT0oMHxrKSYwIT0oMHxtKSl7aWYocD0wfEhvKHcsbSksMHxmZVtwPj4wXSl7Zj1iLGM9MHxiSChNLGMsayx3LHApO2JyZWFrIHR9Zj0wfGFbdz4+Ml07YnJlYWt9fXdoaWxlKDApO2Y9MHwocD0wfGFbNDcxOTRdKSYm''@;'; put 'put ''KDB8YVsoMz09KDMmZnwwKT93OkEpKzQwPj4yXSk9PSgwfGspJiYoUj0wfEhvKHcscCksMCE9KDB8ZmVbUj4+MF0pKT8wfGJIKEQsYixrLHcsUik6Yn1lbHNlIGY9Yn13aGlsZSgwKTtiPWYsdz0wfFZzKGwsdyxrKX1mb3IoOzspe2lmKCgwfHApPj0oMHxjKSl7Zj0wO2JyZWFrfWY9TSsoMjQq''@;'; put 'put ''cHwwKSs0fDAsKDB8YVtNKygyNCpwfDApKzg+PjJdKT4xJiZfSChrLGYpLDB8KGY9MHxhW2Y+PjJdKSYmRnQoZikscD1wKzF8MH1mb3IoOyEoKDB8Zik+PSgwfGIpKTspYz1EKygyNCpmfDApKzR8MCwoMHxhW0QrKDI0KmZ8MCkrOD4+Ml0pPjEmJl9IKGssYyksMHwoYz0wfGFbYz4+Ml0pJiZG''@;'; put 'put ''dChjKSxmPWYrMXwwO2s9MHx6dChsLGspfX13aGlsZSgwKTtsZT1HfWZ1bmN0aW9uIGJIKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBrLE0sUixBPTAsdz0wLGI9MCxEPTAsRz0wLHE9MCxwZT0wO2ZvcihSPWxlLGxlPWxlKzE2fDAsYj1SLGs9UisxMnwwLE09Uis4''@;'; put 'put ''fDAsRD0wOzspe2lmKCgwfEQpPj0oMHxjKSl7dz0xMDticmVha31pZigoMHxmZVsodz0wfGFbbCsoMjQqRHwwKT4+Ml0pPj4wXSk9PSgwfGZlW20+PjBdKSYmMD09KDB8WmkodyxtKSkpe3c9NTticmVha31EPUQrMXwwfWRve2lmKDU9PSgwfHcpKSh3PTB8YVsoYj1sKygyNCpEfDApKzR8MCk+''@;'; put 'put ''PjJdKT8obT1HPWwrKDI0KkR8MCkrOHwwLHc9MHxWMCh3LDgrKGFbRz4+Ml08PDIpfDApKToobT13PWwrKDI0KkR8MCkrOHwwLHc9MHxRbig4KyhhW3c+PjJdPDwyKXwwKSksYVtiPj4yXT13LGFbbT4+Ml09Rz0xKyhxPTB8YVttPj4yXSl8MCxhW3crKHE8PDIpPj4yXT1wLGFbKDB8YVtiPj4y''@;'; put 'put ''XSkrKEc8PDIpPj4yXT0wLHc9MTM7ZWxzZSBpZigxMD09KDB8dykpe2lmKCgwfGMpPjQpe3E9MHx0aShmKSxhW2I+PjJdPTUsYVtiKzQ+PjJdPXEsJHIoMSw4NzQzMCxiKTticmVha31hWyhwZT1sKygyNCpEfDApKzh8MCk+PjJdPTAsYj0wfHZyKDgpLGFbKHE9bCsoMjQqRHwwKSs0fDApPj4y''@;'; put 'put ''XT1iLGFbcGU+PjJdPXc9MSsoRz0wfGFbcGU+PjJdKXwwLGFbYisoRzw8Mik+PjJdPXAsYVsoMHxhW3E+PjJdKSsodzw8Mik+PjJdPTAsYVtsKygyNCpEfDApPj4yXT1tLGFbbCsoMjQqRHwwKSsxMj4+Ml09MCxfW2wrKDI0KkR8MCkrMTY+PjNdPTAsYz1jKzF8MCx3PTEzO2JyZWFrfX13aGls''@;'; put 'put ''ZSgwKTtyZXR1cm4gMTM9PSgwfHcpJiYoREMocCxrLE0pLCh3PSgwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pPT0oMHxmKT8wfGFbTT4+Ml06MHxhW2s+PjJdKSYmKGFbKHE9bCsoMjQqRHwwKSsxMnwwKT4+Ml09MSsocGU9MHxhW3E+PjJdKSxBPXBlPzA6K2w3KHAs''@;'; put 'put ''dyksX1tsKygyNCpEfDApKzE2Pj4zXT1BKSksbGU9UiwwfGN9ZnVuY3Rpb24gX0gobCxjKXt2YXIgZ2UsYmUsT2UsTGUsUmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxIZT0wO2ZvcihSZT1sZSxsZT1sZSs4MHwwLGdlPVJlKzY4fDAsYmU9''@;'; put 'put ''UmUrNjR8MCxxPVJlLE09MHxhWyhPZT00KyhjfD0wKXwwKT4+Ml0sTGU9MTYrKGx8PTApfDAsQT0wLFI9MCxHPTA7ISgoMHxBKT49KDB8TSkpOykoMHwoZj0wfGFbKDI9PSgwfChtPTMmYVsocD0wfGFbKDB8YVtjPj4yXSkrKEE8PDIpPj4yXSk+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0pKT09''@;'; put 'put ''KDB8bCkmJihmPTB8YVsoMz09KDB8bSk/cDpwKzQ4fDApKzQwPj4yXSksQT1BKzF8MCxSPShiPStfWzE2KyhtPTB8YVtmKzE2Pj4yXSk+PjNdLStfWzE2KyhwZT0wfGFbTGU+PjJdKT4+M10pLyhEPSskeShiLGs9K19bbSsyND4+M10tK19bcGUrMjQ+PjNdKSkrUixHPWsvRCtHO2Zvcih3PSsk''@;'; put 'put ''eShSLEcpLGI9K19bMTYrKHBlPTB8YVtMZT4+Ml0pPj4zXSxrPStfW3BlKzI0Pj4zXSxwZT0oSGU9K19bcGUrOTY+PjNdKyArX1twZSs4OD4+M10pPihEPStfW3BlKzgwPj4zXSkrICsoMHxhWzI1MisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSksZj0wfGFbTGU+PjJdLHBlP0Q9K19bZis5''@;'; put 'put ''Nj4+M10rICtfW2YrODg+PjNdOihEPStfW2YrODA+PjNdLEQrPSsoMHxhWzI1MisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSksZj0wfGFbTGU+PjJdKSxIZT0rX1tmKzE2Pj4zXStEKihSL3cpLHc9K19bZisyND4+M10rRCooRy93KSxfW3E+PjNdPWIsX1soTT1xKzh8MCk+PjNdPWssX1tx''@;'; put 'put ''KzE2Pj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooSGUrMipiKSxfW3ErMjQ+PjNdPS4zMzMzMzMzMzMzMzMzMzMzKih3KzIqayksX1txKzMyPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooMipIZStiKSxfW3ErNDA+PjNdPS4zMzMzMzMzMzMzMzMzMzMzKigyKncrayksX1txKzQ4Pj4zXT1IZSxfW3Er''@;'; put 'put ''NTY+PjNdPXcsZnVuY3Rpb24gYWxlKGwsYyl7Y3w9MDt2YXIgZixwLG0sQSx3LGIsTSxrPTAsRD0wO009bGUsbGU9bGUrNDh8MCxmPU0rMTZ8MCxwPU0sbT1NKzMyfDAsMHwoYj0wfGFbOCsodz0wfGFbKEE9MTYrKGx8PTApfDApPj4yXSk+PjJdKSYmMHxhWzEyKygwfGFbKGs9Yis0fDApPj4y''@;'; put 'put ''XSk+PjJdJiYoYVttPj4yXT1sLGFbbSs0Pj4yXT0wLEQ9K19bdys5Nj4+M10sX1twPj4zXT0rX1tjPj4zXS0rX1t3KzE2Pj4zXSxfW3ArOD4+M109K19bYys4Pj4zXS0rX1t3KzI0Pj4zXSxrPTB8YVsxMisoMHxhW2s+PjJdKT4+Ml0sYVtmPj4yXT1hW3A+PjJdLGFbZis0Pj4yXT1hW3ArND4+''@;'; put 'put ''Ml0sYVtmKzg+PjJdPWFbcCs4Pj4yXSxhW2YrMTI+PjJdPWFbcCsxMj4+Ml0saz0wfEJpWzEyNyZrXShtLGYpLF9bOTYrKDB8YVtBPj4yXSk+PjNdPUQsaE4obSxsLGMsaykpLGxlPU19KGwscSksYj0rKDB8fn4oKGI9K19bTT4+M10tK19bMjQrKHBlPTB8YVtMZT4+Ml0pPj4zXSkrKGI+PTA/''@;'; put 'put ''LjU6LS41KSkpLHBlPTI1NSZ+figyNTYqKChIZT0rX1twZSs4OD4+M10pKyh3PSsoMHx+figodz0rX1txPj4zXS0rX1twZSsxNj4+M10pKyh3Pj0wPy41Oi0uNSkpKSkpLygrX1twZSs5Nj4+M10rSGUpKSxxPTA7ISgoMHxxKT49KDB8YVtPZT4+Ml0pKTspe2ZvcihEQyhNPTB8YVsoMHxhW2M+''@;'; put 'put ''PjJdKSsocTw8Mik+PjJdLGdlLGJlKTtNOyl7Zm9yKG09TTs7KXtpZighbSl7QT1NO2JyZWFrfUE9bSstNDh8MCwoMHxhWygyPT0oMyYoZj0wfGFbbT4+Ml0pfDApP206QSkrNDA+PjJdKT09KDB8bCkmJihfWzU2KyhmPTB8YVttKzE2Pj4yXSk+PjNdPXcsX1tmKzY0Pj4zXT1iLF9bZis3Mj4+''@;'; put 'put ''M109MCxhW2YrODA+PjJdPTAsZmVbZis4ND4+MF09MSxmZVtmKzg1Pj4wXT0wLGZlW2YrODY+PjBdPTAsZmVbZis4Nz4+MF09MCxmZVtmKzg4Pj4wXT1wZSxmZVtmKzg5Pj4wXT0wLGFbZis5Mj4+Ml09MCxmPTB8YVttPj4yXSkscD1tKzE2fDAsKDB8YVsoMz09KDMmZnwwKT9tOm0rNDh8MCkr''@;'; put 'put ''NDA+PjJdKT09KDB8bCkmJihfWzE2KyhmPTB8YVtwPj4yXSk+PjNdPXcsX1tmKzI0Pj4zXT1iLF9bZiszMj4+M109MCxhW2YrNDA+PjJdPTAsZmVbZis0ND4+MF09MSxmZVtmKzQ1Pj4wXT0wLGZlW2YrNDY+PjBdPTAsZmVbZis0Nz4+MF09MCxmZVtmKzQ4Pj4wXT1wZSxmZVtmKzQ5Pj4wXT0w''@;'; put 'put ''LGFbZis1Mj4+Ml09MCksbT0xPT0oMHxmZVsxMTIrKDB8YVtwPj4yXSk+PjBdKSYmMT09KDB8ZmVbMTU2KyhmPTB8YVsxNisoMHxhWygyPT0oMyZhW20+PjJdfDApP206QSkrNDA+PjJdKT4+Ml0pPj4wXSkmJjE9PSgwfGFbZisxODQ+PjJdKT8wfGFbYVtmKzE4MD4+Ml0+PjJdOjB9Zm9yKDtB''@;'; put 'put ''OykoMHxhWygyPT0oMyYoZj0wfGFbQT4+Ml0pfDApP0E6QSstNDh8MCkrNDA+PjJdKT09KDB8bCkmJihfWzU2KyhmPTB8YVtBKzE2Pj4yXSk+PjNdPXcsX1tmKzY0Pj4zXT1iLF9bZis3Mj4+M109MCxhW2YrODA+PjJdPTAsZmVbZis4ND4+MF09MSxmZVtmKzg1Pj4wXT0wLGZlW2YrODY+PjBd''@;'; put 'put ''PTAsZmVbZis4Nz4+MF09MCxmZVtmKzg4Pj4wXT1wZSxmZVtmKzg5Pj4wXT0wLGFbZis5Mj4+Ml09MCxmPTB8YVtBPj4yXSkscD1BKzQ4fDAsbT1BKzE2fDAsKDB8YVsoMz09KDMmZnwwKT9BOnApKzQwPj4yXSk9PSgwfGwpJiYoX1sxNisoZj0wfGFbbT4+Ml0pPj4zXT13LF9bZisyND4+M109''@;'; put 'put ''YixfW2YrMzI+PjNdPTAsYVtmKzQwPj4yXT0wLGZlW2YrNDQ+PjBdPTEsZmVbZis0NT4+MF09MCxmZVtmKzQ2Pj4wXT0wLGZlW2YrNDc+PjBdPTAsZmVbZis0OD4+MF09cGUsZmVbZis0OT4+MF09MCxhW2YrNTI+PjJdPTApLEE9MT09KDB8ZmVbMTEyKygwfGFbbT4+Ml0pPj4wXSkmJjE9PSgw''@;'; put 'put ''fGZlWzE1NisoZj0wfGFbMTYrKDB8YVsoMz09KDMmYVtBPj4yXXwwKT9BOnApKzQwPj4yXSk+PjJdKT4+MF0pJiYxPT0oMHxhW2YrMTc2Pj4yXSk/MHxhW2FbZisxNzI+PjJdPj4yXTowO009MHxhWzE3MisoMHxhW00rMTY+PjJdKT4+Ml19cT1xKzF8MH1mZVsxNDUrKDB8YVtMZT4+Ml0pPj4w''@;'; put 'put ''XT0xLGxlPVJlfWZ1bmN0aW9uIExJKGwpe3ZhciBmLHAsYz0wO1kzKGx8PTApLGY9bCstNDh8MCxwPWwrNDh8MCwoYz0wfFU1KDB8YVsoMj09KDB8KGM9MyZhW2w+PjJdKSk/bDpmKSs0MD4+Ml0sMHxhWygzPT0oMHxjKT9sOnApKzQwPj4yXSkpP3o2KGwsYyk6SmMoMHxhWygyPT0oMHwoYz0z''@;'; put 'put ''JmFbbD4+Ml0pKT9sOmYpKzQwPj4yXSwwfGFbKDM9PSgwfGMpP2w6cCkrNDA+PjJdLGwpfWZ1bmN0aW9uIHBVKGwpe3ZhciBtLGM9MCxmPTAscD0wO2lmKCEoMHxmZVsobD0xNTcrKGM9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pfDApPj4wXSkpe2ZvcihmZVtsPj4wXT0xLGZlW2MrMTU4Pj4w''@;'; put 'put ''XT0xLGw9MDtwPTB8YVsoMHxhW2MrMTgwPj4yXSkrKGw8PDIpPj4yXTspMHxmZVsxNTgrKGY9MHxhWzE2KyhjPTB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSk+PjJdKT4+MF0/KExJKHApLGw9bCstMXwwKTowfGZlW2YrMTU3Pj4wXXx8cFUoYyksbD1sKzF8MCxjPTB8''@;'; put 'put ''YVttPj4yXTtmZVtjKzE1OD4+MF09MH19ZnVuY3Rpb24gbVUobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoZj0wfER0KGx8PTApO2Y7KXtmb3IocD0wfGFbMTc2KyhtPTB8YVtmKzE2Pj4yXSk+PjJdLG09bSsxNzJ8MCxjPTA7ISgoMHxjKT49KDB8cCkpOylmZVsxMTIrKDB8YVsxNisoMHxh''@;'; put 'put ''WygwfGFbbT4+Ml0pKyhjPDwyKT4+Ml0pPj4yXSk+PjBdPTAsYz1jKzF8MDtmPTB8enQobCxmKX19ZnVuY3Rpb24gdlUobCl7dmFyIG0sQSxjPTAsZj0wLHA9MCx3PTAsYj0wO2ZvcihPSShsfD0wKSxjPSsoMHxBcigwfGFbMjUyKyhwPTB8YVtsKzE2Pj4yXSk+PjJdLChBPTB8YVs0Njc0OV0p''@;'; put 'put ''LTF8MCkpLG09MHxhWzQ2NzUwXSxwPXArMjQ4fDAsbD0wLGY9MDshKCgwfGwpPj0oMHxBKSk7KXc9K19bbSsoNDAqbHwwKSsyND4+M10rICsoMHxBcigwfGFbcD4+Ml0sMHxhW20rKDQwKmx8MCkrMTY+PjJdKSksYj0rX1ttKyg0MCpsfDApKzMyPj4zXStjLGw9bCsxfDAsYz1iLGY9Zjx3P3c6''@;'; put 'put ''ZjtyZXR1cm4rZi9jfWZ1bmN0aW9uIHVvZShsKXt2YXIgYz0wO2ZvcihhWzQ2NzUzXT0wfHZyKCgwfEdvKGx8PTApKTw8MiksYz0wOyEoKDB8Yyk+PSgwfEdvKGwpKSk7KWFbKDB8YVs0Njc1M10pKyhjPDwyKT4+Ml09YyxjPWMrMXwwO09JKGwpLGZ1bmN0aW9uIEFVKGwpe3gxKDB8YVs0Njc1''@;'; put 'put ''M10sMHxHbyhsfD0wKSw0LDYzKX0obCksZnVuY3Rpb24geVUobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MDtmb3Iodz0wfGFbNDY3NDldLGI9MHxhWzQ2NzUwXSxtPTB8YVs0Njc1M10sQT0wOzspe2lmKCgw''@;'; put 'put ''fEEpPj0oMHx3KSl7Zj0wLGM9MDticmVha31pZihwPUErMXwwLCEoKDB8YVtiKyg0MCooZj0wfGFbbSsoQTw8Mik+PjJdKXwwKSsxMj4+Ml0pPDIpKXtrPTQ7YnJlYWt9QT1wfTQ9PSgwfGspJiYoYz0oMHx3KT4oMHxwKT8rX1tiKyg0MCooMHxhW20rKHA8PDIpPj4yXSl8MCkrMjQ+PjNdOjAp''@;'; put 'put ''O2U6ZG97aWYoKDB8QSkhPSgwfHcpKWZvcih4MSgwfGFbYisoNDAqZnwwKSs0Pj4yXSwwfGFbYisoNDAqZnwwKSsxMj4+Ml0sNCw2NCksbT0wfGFbNDY3NTBdLHBlPStfW20rKDQwKmZ8MCkrMjQ+PjNdLHBlPSEoYzw9LjI1KnBlKSYhKGM+PS43NSpwZSk/YzouNSpwZSxnZT0wfGFbbSsoNDAq''@;'; put 'put ''ZnwwKSsxMj4+Ml0scT1sKzE2fDAsRD0wLFI9MCxjPTAscD0wLEc9MDs7KXtpZigoMHxHKT49KHArZ2V8MCkpYnJlYWsgZTtkb3tpZigwfGFbKDB8YVttKyg0MCpmfDApKzg+PjJdKSsoRzw8Mik+PjJdKXc9RCxBPVIscD1wKzF8MDtlbHNle2lmKCEoKEE9MCE9KDB8UikpJiEoKE09NzIqK19b''@;'; put 'put ''KGw9OCsoaz0wfGFbKDB8YVttKyg0MCpmfDApKzQ+PjJdKSsoRzw8Mik+PjJdKXwwKT4+M10rYysoYz4wPysoMHxhWzI0OCsoMHxhW3E+PjJdKT4+Ml0pOjApKTw9cGUpKSl7dz1BP0Q6ayxBPUE/UjoxLGM9TTticmVha31mb3Iodz1EKzR8MCxiPWsrNHwwLEE9MDsoMHxBKTwoMHxhW3c+PjJd''@;'; put 'put ''KTspe2ZvcihtPTA7ISgoMHxtKT49KDB8YVtiPj4yXSkpOylmZVsxMTIrKDB8YVsxNisoMHxKYygwfGFbKDB8YVtEPj4yXSkrKEE8PDIpPj4yXSwwfGFbKDB8YVtrPj4yXSkrKG08PDIpPj4yXSwwKSk+PjJdKT4+MF09MSxtPW0rMXwwO0E9QSsxfDB9YVsoMHxhWyhtPTB8YVs0Njc1MF0pKyg0''@;'; put 'put ''MCpmfDApKzg+PjJdKSsoRzw8Mik+PjJdPTEsYVsodz1tKyg0MCpmfDApKzEyfDApPj4yXT0oMHxhW3c+PjJdKS0xLGFbKHc9bSsoNDAqZnwwKSsxNnwwKT4+Ml09MSsoMHxhW3c+PjJdKSxfWyh3PW0rKDQwKmZ8MCkrMjR8MCk+PjNdPS03MiorX1tsPj4zXS0rKDB8YVsyNDgrKDB8YVtxPj4y''@;'; put 'put ''XSk+PjJdKSsgK19bdz4+M10sdz1ELEE9Un19d2hpbGUoMCk7RD13LFI9QSxHPUcrMXwwfX13aGlsZSgwKX0obCl9ZnVuY3Rpb24gT0kobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7aWYoYVs0Njc0OV09MCwwfChjPTB8YVs0Njc1MF0pKXtmb3IocD0w''@;'; put 'put ''OyEoKDB8cCk+PSgwfGFbNDY3NTFdKSk7KShmPTB8YVtjKyg0MCpwfDApKzQ+PjJdKSYmKEZ0KGYpLGM9MHxhWzQ2NzUwXSksKGY9MHxhW2MrKDQwKnB8MCkrOD4+Ml0pJiYoRnQoZiksYz0wfGFbNDY3NTBdKSxwPXArMXwwO0Z0KGMpfWZvcihhWzQ2NzUwXT0wfHZyKDQwKigwfGFbNDY3NTFd''@;'; put 'put ''KXwwKSxjPTA7ISgoMHxjKT49KDB8KGY9MHxhWzQ2NzUxXSkpKTspaz0wfHZyKGY8PDIpLGFbKDB8YVs0Njc1MF0pKyg0MCpjfDApKzQ+PjJdPWssaz0wfHZyKGFbNDY3NTFdPDwyKSxhWyhNPTB8YVs0Njc1MF0pKyg0MCpjfDApKzg+PjJdPWssYVtNKyg0MCpjfDApPj4yXT1jLGFbTSsoNDAq''@;'; put 'put ''Y3wwKSsxMj4+Ml09MCxhW00rKDQwKmN8MCkrMTY+PjJdPTAsYVsoTT1NKyg0MCpjfDApKzI0fDApPj4yXT0wLGFbTSs0Pj4yXT0wLGFbTSs4Pj4yXT0wLGFbTSsxMj4+Ml09MCxjPWMrMXwwO2ZvcihwPTB8RHQobCk7cDspe2ZvcihmPTB8dzAobCxwKTtmOyl7Zm9yKG09ZistNDh8MCxBPTB8''@;'; put 'put ''YVs0Njc1MF0sYz0wfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDMmKHc9MHxhW2Y+PjJdKXwwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXTshKCgwfChjPWMrMXwwKSk+PSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDMmd3wwKT9mOm0pKzQwPj4yXSk+PjJdKT4+Ml0pKTspYVsodz1B''@;'; put 'put ''Kyg0MCpjfDApKzE2fDApPj4yXT0xKygwfGFbdz4+Ml0pLHc9MHxhW2Y+PjJdO2Y9MHxTMChsLGYpfXA9MHx6dChsLHApfWZvcih3PTB8YVs0Njc1MV0saz0wfGFbNDY3NTJdLE09MHxhWzQ2NzUwXSxmPWwrMTZ8MCxjPTA7ISgoMHxjKT49KDB8dykpOykoMHwobT0wfGFbMjMyKygwfGFbKHA9''@;'; put 'put ''MTYrKDB8YVthW2srKDI0KmN8MCk+PjJdPj4yXSl8MCk+PjJdKT4+Ml0pKT49KDB8YVs0Njc0OV0pJiYoYVs0Njc0OV09bSsxKSxfWyhBPU0rKDQwKm18MCkrMjR8MCk+PjNdPShiPStfW0E+PjNdKSs3MiorX1trKygyNCpjfDApKzg+PjNdKyhiPjA/KygwfGFbMjQ4KygwfGFbZj4+Ml0pPj4y''@;'; put 'put ''XSk6MCksK19bKEE9TSsoNDAqbXwwKSszMnwwKT4+M108KGI9NzIqK19baysoMjQqY3wwKSsxNj4+M10pJiYoX1tBPj4zXT1iKSxhWygwfGFbTSsoNDAqbXwwKSs0Pj4yXSkrKGFbTSsoNDAqbXwwKSsxMj4+Ml08PDIpPj4yXT1rKygyNCpjfDApLGFbKGw9TSsoNDAqKDB8YVsyMzIrKDB8YVtw''@;'; put 'put ''Pj4yXSk+PjJdKXwwKSsxMnwwKT4+Ml09MSsoMHxhW2w+PjJdKSxjPWMrMXwwfWZ1bmN0aW9uIHdVKGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MDtmb3IobT00KyhsfD0wKXwwLGY9MCxjPTA7ISgoMHxmKT49KDB8YVttPj4yXSkpOyl7Zm9yKHA9MHx3MChBPTB8Y3IocD0wfGFbKDB8YVtsPj4y''@;'; put 'put ''XSkrKGY8PDIpPj4yXSkscCk7cDspcD0wfFMwKEEscCksYz1jKzF8MDtmPWYrMXwwfXJldHVybiAwfGN9ZnVuY3Rpb24gYlUobCl7dmFyIGM9MDtmb3IoYz0wfER0KGx8PTApO2M7KWFbMjE2KygwfGFbYysxNj4+Ml0pPj4yXT0wLGM9MHx6dChsLGMpfWZ1bmN0aW9uIFNIKGwpe2x8PTA7dmFy''@;'; put 'put ''IGMsZj0wO3JldHVybiAwfCgwIT0oMHwoYz0wfGFbNDcxODldKSkmJjAhPSgwfChmPTB8SG8obCxjKSkpJiYwIT0oMHxmZVtmPj4wXSkmJigwfHQxKGYpKTw8MjQ+PjI0PT0wPzE6MCl9ZnVuY3Rpb24gUkkobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoeEgobHw9MCks''@;'; put 'put ''Yz0wfER0KGwpO2M7KXtmb3IoZj0wfHcwKGwsYyk7Zjspe2Rve2lmKDA9PSgwfGFbMTcyKygwfGFbZisxNj4+Ml0pPj4yXSkmJjA9PSgwfFNIKGYpKSYmKHA9Zis0OHwwLEE9ZistNDh8MCwoMHwobT0wfGcxKDB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOnApKzQwPj4yXSkpKSE9KDB8KHc9MHxn''@;'; put 'put ''MSgwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpBKSs0MD4+Ml0pKSkpKXtpZigwPT0oMHxhWzIxMisoMHxhW20rMTY+PjJdKT4+Ml0pJiYwPT0oMHxhWzIxMisoMHxhW3crMTY+PjJdKT4+Ml0pKXtpZihiPTB8VTUobSx3KSl7ejYoZixiKTticmVha31KYyhtLHcsZik7YnJlYWt9TUgobCwwfGFb''@;'; put 'put ''KDM9PSgwfChiPTMmYVtmPj4yXSkpP2Y6cCkrNDA+PjJdLDB8YVsoMj09KDB8Yik/ZjpBKSs0MD4+Ml0sZil9fXdoaWxlKDApO2Y9MHxTMChsLGYpfWM9MHx6dChsLGMpfX1mdW5jdGlvbiBNSChsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtiPShBPTB8YVsyMTIrKG09''@;'; put 'put ''MHxhWzE2KygwfGFbKDM9PSgwfCh3PTMmYVsocHw9MCk+PjJdKSk/cDpwKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPygwfGFbbSsyMzI+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbMjY0KygwfGFbQSsxNj4+Ml0pPj4yXSk+PjJdKT4+Ml0pfDA6MCxiPShtPShBPTB8YVsyMTIrKG09MHxh''@;'; put 'put ''WzE2KygwfGFbKDI9PSgwfHcpP3A6cCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/KDB8YVsyMzIrKDB8YVsxNisoMHxhWzI2NCsoMHxhW0ErMTY+PjJdKT4+Ml0pPj4yXSk+PjJdKS0oMHxhW20rMjMyPj4yXSl8MDowKStiKygwfGhyWzE3MCsoMHxhWyh3PXArMTZ8MCk+PjJdKT4+MV0pfDAs''@;'; put 'put ''bD0wfFVoKGx8PTApLGZlWzE1NisoMHxhW2wrMTY+PjJdKT4+MF09MixBPTB8ZzEoYyksYz0wfGcxKGYpLGY9MHxGdShsLEEsKDB8Yik+MD8wOisoMC1ifDApLDEwKigwfGFbMTU2KygwfGFbdz4+Ml0pPj4yXSl8MCksYVsxMTYrKDB8YVsxNisoMHxGdShsLGMsKygwfCgoMHxiKT4wP2I6MCkp''@;'; put 'put ''LDB8YVsxNTYrKDB8YVt3Pj4yXSk+PjJdKSk+PjJdKT4+Ml09cCxhWzExNisoMHxhW2YrMTY+PjJdKT4+Ml09cH1mdW5jdGlvbiBvayhsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgbSxBPTAsdz0wLGI9MDt3PTB8YVsyMzIrKDB8YVsxNisoMHxhWygoMHxhWzIzMisoMHxhWzE2KygwfGFb''@;'; put 'put ''KEE9Mz09KDB8KHc9MyZhWyhjfD0wKT4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzIrKDB8YVsxNisoMHxhWyh3PTI9PSgwfHcpP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk/QTp3KSs0MD4+Ml0pPj4yXSk+PjJdLDB8YVsoYz0xNzIrKDB8YVsoQT1jKzE2''@;'; put 'put ''fDApPj4yXSl8MCk+PjJdJiZQcig4NzU5Myw4NzYxNSwxNDgsODc2MjQpLGFbYz4+Ml09ZixtPTA9PSgwfHApO2Rve2lmKGM9MHxhW0E+PjJdLG0/cD0wfGFbZisxNj4+Ml06aXRbKGI9MTY4KyhwPTB8YVtmKzE2Pj4yXSl8MCk+PjFdPSgwfGhyW2I+PjFdKSsoMHxocltjKzE2OD4+MV0pLGl0''@;'; put 'put ''WyhiPXArMTU0fDApPj4xXT0oMHxocltiPj4xXSkrKDB8aHJbYysxNTQ+PjFdKSxhWyhwPXArMTU2fDApPj4yXT0oMHxhW3A+PjJdKSsoMHxhW2MrMTU2Pj4yXSksYz1mKy00OHwwLCgwfGFbMjMyKygwfGFbMTYrKHA9MHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6YykrNDA+PjJdKT4+Ml0pPj4y''@;'; put 'put ''XSk9PSgwfHcpKWJyZWFrO19VKGwscCksZj0wfGFbYVsxODArKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6YykrNDA+PjJdKT4+Ml0pPj4yXT4+Ml19d2hpbGUoMCE9KDB8ZikpfWZ1bmN0aW9uIF9VKGwsYyl7dmFyIGY7Zj0rKDB8KDB8YVsyNDgrKDB8YVsxNisobHw9MCk+PjJd''@;'; put 'put ''KT4+Ml0pLzIpLF9bKGw9ODgrKGM9MHxhWzE2KyhjfD0wKT4+Ml0pfDApPj4zXT0rX1tsPj4zXStmLF9bKGM9Yys5NnwwKT4+M109K19bYz4+M10rZn1mdW5jdGlvbiBhayhsLGMpe3ZhciBmPTAscD0wO3JldHVybiAwfCgwIT0oMHwobHw9MCkpJjAhPSgwfChjfD0wKSkmJigwfGFbKDM9PSgw''@;'; put 'put ''fChwPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPT0oMHxhWygzPT0oMHwoZj0zJmFbYz4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdKSYmKDB8YVsoMj09KDB8cCk/bDpsKy00OHwwKSs0MD4+Ml0pPT0oMHxhWygyPT0oMHxmKT9jOmMrLTQ4fDApKzQwPj4yXSkmJigwfGFbOTYrKDB8YVts''@;'; put 'put ''KzE2Pj4yXSk+PjJdKT09KDB8YVs5NisoMHxhW2MrMTY+PjJdKT4+Ml0pJiYwIT0oMHxyayhsLGMpKT8xOjApfWZ1bmN0aW9uIENVKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wO2ZvcihhWzE5MisoYz0wfGFbKGdl''@;'; put 'put ''PTE2KyhsfD0wKXwwKT4+Ml0pPj4yXT0wLGFbYysyMzI+PjJdPTAseEgobCksYz0xOyEoKDB8Yyk+KDB8YVsxODArKGY9MHxhW2dlPj4yXSk+PjJdKSk7KUVVKGwsMHxhWygwfGFbZisxODQ+PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwO2ZvcihBPTB8RHQobCk7QTspe2ZvcihtPTB8dzAobCxB''@;'; put 'put ''KTttOykocD0wfGZlWyhmPTE2MCsoMHxhWzE2KygwfGFbKDI9PSgzJihjPTB8YVttPj4yXSl8MCk/bTptKy00OHwwKSs0MD4+Ml0pPj4yXSl8MCk+PjBdKTw8MjQ+PjI0PDMmJihmZVtmPj4wXT1wKzE8PDI0Pj4yNCxjPTB8YVttPj4yXSksKGY9MHxmZVsoYz0xNjArKDB8YVsxNisoMHxhWygz''@;'; put 'put ''PT0oMyZjfDApP206bSs0OHwwKSs0MD4+Ml0pPj4yXSl8MCk+PjBdKTw8MjQ+PjI0PDMmJihmZVtjPj4wXT1mKzE8PDI0Pj4yNCksbT0wfFMwKGwsbSk7QT0wfHp0KGwsQSl9Zm9yKEQ9MHxEdChsKTtEOyl7Zm9yKDA9PSgwfGFbMjEyKygwfGFbRCsxNj4+Ml0pPj4yXSkmJigwfEQpPT0oMHxn''@;'; put 'put ''MShEKSkmJihjSShsLEQpLGFbKE09MjMyKygwfGFbZ2U+PjJdKXwwKT4+Ml09MSsoMHxhW00+PjJdKSksYz0wLE09MHx3MChsLEQpO007KXtBPTB8YVsoaz1NKzE2fDApPj4yXTtlOmRve2lmKDB8YVtBKzE3Mj4+Ml0pYz1NO2Vsc2V7aWYoMHxob2UoTSkpe2lmKCEoMHxhayhjLE0pKSl7ZG9l''@;'; put 'put ''KGwsTSksYz1NO2JyZWFrfWlmKDB8KGY9MHxhWzE3MisoMHxhW2MrMTY+PjJdKT4+Ml0pKXtvayhsLE0sZiwwKSwkZChNKTticmVha31pZigoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChrPTMmYVtNPj4yXSkpP006TSs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSE9KDB8YVsyMzIrKDB8''@;'; put 'put ''YVsxNisoMHxhWygyPT0oMHxrKT9NOk0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKWJyZWFrO3o2KE0sYyksJGQoTSk7YnJlYWt9aWYoYylpZihmPU0rNDh8MCwoMHwocD0wfGFbKDM9PSgwfCh3PTMmYVtNPj4yXSkpP006ZikrNDA+PjJdKSk9PSgwfGFbKDM9PSgwfChtPTMmYVtjPj4yXSkp''@;'; put 'put ''P2M6Yys0OHwwKSs0MD4+Ml0pJiYoMHwoUj0wfGFbKDI9PSgwfHcpP006TSstNDh8MCkrNDA+PjJdKSk9PSgwfGFbKDI9PSgwfG0pP2M6YystNDh8MCkrNDA+PjJdKSl7aWYoKDB8YVsyMzIrKDB8YVtwKzE2Pj4yXSk+PjJdKT09KDB8YVsyMzIrKDB8YVtSKzE2Pj4yXSk+PjJdKSl7ejYoTSxj''@;'; put 'put ''KSwkZChNKTticmVha31pZigwPT0oMHxhW0ErOTY+PjJdKSYmMD09KDB8YVs5NisoMHxhWyhHPWMrMTZ8MCk+PjJdKT4+Ml0pJiYwIT0oMHxyayhNLGMpKSl7aWYoMHxmZVsxOTQ5NTRdKXtmZVsxMTIrKDB8YVtrPj4yXSk+PjBdPTY7YnJlYWt9b2sobCxNLDB8YVsxNzIrKDB8YVtHPj4yXSk+''@;'; put 'put ''PjJdLDEpLCRkKE0pO2JyZWFrfXc9Zn1lbHNlIHc9ZjtlbHNlIHc9TSs0OHwwO2lmKGI9TSstNDh8MCwoMHwoZj0wfGFbKDM9PSgwfChBPTMmYVtNPj4yXSkpP006dykrNDA+PjJdKSk9PSgwfGFbKDI9PSgwfEEpP006YikrNDA+PjJdKSl7JGQoTSksYz1NO2JyZWFrfWlmKGY9MHxnMShmKSxw''@;'; put 'put ''PTB8ZzEoMHxhWygyPT0oMyZhW00+PjJdfDApP006YikrNDA+PjJdKSwoMHxhWygzPT0oMHwoQT0zJmFbTT4+Ml0pKT9NOncpKzQwPj4yXSk9PSgwfGYpJiYoMHxhWygyPT0oMHxBKT9NOmIpKzQwPj4yXSk9PSgwfHApKXtpZigoMHwobT0wfGFbMjMyKygwfGFbZisxNj4+Ml0pPj4yXSkpPT0o''@;'; put 'put ''MHwoQT0wfGFbMjMyKygwfGFbcCsxNj4+Ml0pPj4yXSkpKXtoSShsLE0pLGM9TTticmVha31pZigoMHxBKT4oMHxtKSl7QkkobCxmLHAsTSksYz1NO2JyZWFrfWY9MHxLYShsLHAsZiwwLDApO2Rve2lmKDB8ZiYmKDB8KHBlPTB8YVsoMj09KDB8KHE9MyZhW2Y+PjJdKSk/ZjpmKy00OHwwKSs0''@;'; put 'put ''MD4+Ml0pKSE9KDB8YVsoMj09KDMmYVtNPj4yXXwwKT9NOmIpKzQwPj4yXSkmJigwfGFbMTcyKygwfGFbKHA9ZisxNnwwKT4+Ml0pPj4yXXx8QkkobCwwfGFbKDM9PSgwfHEpP2Y6Zis0OHwwKSs0MD4+Ml0scGUsZiksMD09KDB8YVs5NisoMHxhW2s+PjJdKT4+Ml0pJiYwPT0oMHxhWzk2Kygw''@;'; put 'put ''fGFbcD4+Ml0pPj4yXSkpKXtpZighKDB8cmsoTSxmKSkpYnJlYWs7aWYoMHxmZVsxOTQ5NTRdKXtmZVsxMTIrKDB8YVtrPj4yXSk+PjBdPTYsZmVbMTUzKygwfGFbcD4+Ml0pPj4wXT0xO2JyZWFrIGV9JGQoTSksb2sobCxNLDB8YVsxNzIrKDB8YVtwPj4yXSk+PjJdLDEpO2JyZWFrIGV9fXdo''@;'; put 'put ''aWxlKDApO0JJKGwsMHxhWygyPT0oMHwoYz0zJmFbTT4+Ml0pKT9NOmIpKzQwPj4yXSwwfGFbKDM9PSgwfGMpP006dykrNDA+PjJdLE0pLGM9TX19fXdoaWxlKDApO009MHxTMChsLE0pfUQ9MHx6dChsLEQpfSgwfHlhKGwpKSE9KDB8bCkmJihjPShjPTB8YVsyMTYrKDB8YVtnZT4+Ml0pPj4y''@;'; put 'put ''XSk/MHxWMChjLDQpOjB8UW4oNCksYVsyMTYrKGdlPTB8YVtnZT4+Ml0pPj4yXT1jLGFbYz4+Ml09YVtnZSsxOTI+PjJdKX1mdW5jdGlvbiBob2UobCl7dmFyIGM7cmV0dXJuIDB8KDc9PSgwfGZlWzE1OSsoMHxhWzE2KygwfGFbKDM9PSgwfChjPTMmYVsobHw9MCk+PjJdKSk/bDpsKzQ4fDAp''@;'; put 'put ''KzQwPj4yXSk+PjJdKT4+MF0pPzE6Nz09KDB8ZmVbMTU5KygwfGFbMTYrKDB8YVsoMj09KDB8Yyk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjBdKSYxKX1mdW5jdGlvbiBkb2UobCxjKXtsfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wO3A9MHxabCgwfGFbKDM9PSgzJmFbKGN8PTApPj4y''@;'; put 'put ''XXwwKT9jOmMrNDh8MCkrNDA+PjJdKSxtPTB8WmwoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSxmPSh3PSgwfGFbMjMyKygwfGFbcCsxNj4+Ml0pPj4yXSk+KDB8YVsyMzIrKDB8YVttKzE2Pj4yXSk+PjJdKSk/cDptLG09KHA9dz9tOnApKzE2fDAsdz1mKzE2fDA7''@;'; put 'put ''ZTpkb3tpZigoMHxhWzIxMisoMHxhW20+PjJdKT4+Ml0pIT0oMHxhWzIxMisoMHxhW3c+PjJdKT4+Ml0pKXtpZigwfChBPTB8VTUocCxmKSkpe29rKGwsYyxBLDEpO2JyZWFrfWlmKCgwfGFbMjMyKygwfGFbbT4+Ml0pPj4yXSkhPSgwfGFbMjMyKygwfGFbdz4+Ml0pPj4yXSkpZm9yKEJJKGws''@;'; put 'put ''cCxmLGMpLGY9MTcyKygwfGFbYysxNj4+Ml0pfDA7Oyl7aWYoIShmPTB8YVtmPj4yXSl8fChwPWYrLTQ4fDAsKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6cCkrNDA+PjJdKT4+Ml0pPj4yXSk+KDB8YVsyMzIrKDB8YVt3Pj4yXSk+PjJdKSkpYnJlYWsgZTtmZVsx''@;'; put 'put ''MTIrKDB8YVtmKzE2Pj4yXSk+PjBdPTUsZj0wfGFbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOnApKzQwPj4yXSk+PjJdKT4+Ml19fX13aGlsZSgwKX1mdW5jdGlvbiBCSShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgYixNLGssbT0wLEE9MCx3PTA7Zm9yKGs9MHxh''@;'; put 'put ''Wzk2KyhtPTB8YVsoTT0xNisocHw9MCl8MCk+PjJdKT4+Ml0/KCgwfGFbMjMyKygwfGFbZisxNj4+Ml0pPj4yXSkrKDB8YVsyMzIrKDB8YVtjKzE2Pj4yXSk+PjJdKXwwKS8yfDA6LTEsMHxhW20rMTcyPj4yXSYmUHIoODc2MzYsODc2MTUsODksODc2NjEpLGI9ZisxNnwwLHc9MHxhWzIzMiso''@;'; put 'put ''MHxhW2MrMTY+PjJdKT4+Ml07QT13KzF8MCwhKCgwfHcpPj0oMHwobT0wfGFbMjMyKygwfGFbYj4+Ml0pPj4yXSkpKTspKDB8QSk8KDB8bSk/KG09KDB8QSk9PSgwfGspPzB8cG9lKGwscCk6MHxrVShsKSxhWzIzMisoMHxhW20rMTY+PjJdKT4+Ml09QSk6bT1mLFIwZSgwfEpjKGMsbSxwKSks''@;'; put 'put ''dz1BLGM9bTswfGFbMTcyKygwfGFbTT4+Ml0pPj4yXXx8UHIoODc2NzIsODc2MTUsMTAzLDg3NjYxKX1mdW5jdGlvbiBwb2UobCxjKXt2YXIgZixwLHcsbT0wLEE9MDtyZXR1cm4gZj0rX1syNCsobT0wfGFbOTYrKDB8YVsoQT0xNisoY3w9MCl8MCk+PjJdKT4+Ml0pPj4zXSxwPStfW20rMzI+''@;'; put 'put ''PjNdLG09MHxVaChsfD0wKSxhWzEwNCsoMHxhWyhjPW0rMTZ8MCk+PjJdKT4+Ml09YVs5NisoMHxhW0E+PjJdKT4+Ml0sdz0rKDB8YVsyNDgrKDB8YVsxNisoMHxkaShtKSk+PjJdKT4+Ml0pLF9bODgrKDB8YVtjPj4yXSk+PjNdPXcsMHxmZVsxMTQrKDB8YVtBPj4yXSk+PjBdfHwobD0wPT0o''@;'; put 'put ''MSZhWzExNisoMHxhWzE2KygwfGRpKGwpKT4+Ml0pPj4yXXwwKSxfWzgwKyhBPTB8YVtjPj4yXSk+PjNdPWw/cDpmLF9bQSs5Nj4+M109bD9mOnApLDB8bX1mdW5jdGlvbiBrVShsKXt2YXIgYztyZXR1cm4gX1UobHw9MCxjPTB8VWgobCkpLDB8Y31mdW5jdGlvbiBabChsKXt2YXIgYztyZXR1''@;'; put 'put ''cm4gMHwoNz09KDB8ZmVbMTU5KyhjPTB8YVsxNisobHw9MCk+PjJdKT4+MF0pPzB8YVsoMHxhWzI2OCsoMHxhWzE2KygwfGFbYysyMTI+PjJdKT4+Ml0pPj4yXSkrKGFbYysyMzI+PjJdPDwyKT4+Ml06MHxnMShsKSl9ZnVuY3Rpb24gRUgobCxjLGYpe3ZhciBwLG07Y3w9MCxmfD0wLGZ1bmN0''@;'; put 'put ''aW9uIHY3KGwsYyxmLHAsbSl7Znw9MCxwfD0wLG18PTA7dmFyIFIsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7KDB8KEE9MHxhWzIzMisoMHxhWyhSPTE2KyhjfD0wKXwwKT4+Ml0pPj4yXSkpPD0oMHwoYj0wfGFbMjMyKygwfGFbKEQ9MTYrKGx8PTApfDApPj4yXSk+PjJdKSkmJlByKDg3Njk3''@;'; put 'put ''LDg3NzI1LDgxLDg3NzM1KSwoMHxhWygzPT0oMHwoTT0zJmFbcD4+Ml0pKT9wOnArNDh8MCkrNDA+PjJdKT09KDB8bCkmJigwfGFbKDI9PSgwfE0pP3A6cCstNDh8MCkrNDA+PjJdKT09KDB8Yyl8fChrPTUpO2U6ZG97aWYoNT09KDB8aykpe2lmKCgwfGl0WzE2OCsoMHxhW3ArMTY+PjJdKT4+''@;'; put 'put ''MV0pPjEpe2lmKGFbMTcyKygwfGFbZisxNj4+Ml0pPj4yXT0wLDE9PShBLWJ8MCkmJjB8KHc9MHxVNShsLGMpKSYmMHxyayhmLHcpKXtpZih6NihmLHcpLDB8ZmVbMTU2KygwfGFbRD4+Ml0pPj4wXXx8MHxmZVsxNTYrKDB8YVtSPj4yXSk+PjBdKWJyZWFrOyRkKGYpO2JyZWFrfWZvcihNPTI1''@;'; put 'put ''NSZtLG09bCxrPTB8YVsyMzIrKDB8YVtEPj4yXSk+PjJdOzspe2lmKCgwfGspPj0oMHwoQT0wfGFbMjMyKygwfGFbUj4+Ml0pPj4yXSkpKWJyZWFrIGU7KDB8ayk8KEErLTF8MCk/KHc9cCstNDh8MCxBPTB8bGsoQT0wfHlhKGwpLDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOncpKzQwPj4yXSks''@;'; put 'put ''Yj1wKTooQT1jLHc9cCstNDh8MCxiPXApLGZlWzExMisoMHxhWzE2KygwfEpjKG0sQSxmKSk+PjJdKT4+MF09TSxpdFsoRD0xNjgrKDB8YVtwKzE2Pj4yXSl8MCk+PjFdPSgwfGl0W0Q+PjFdKS0xPDwxNj4+MTYsbT1BLGs9aysxfDAscD0wfGFbYVsxODArKDB8YVsxNisoMHxhWygyPT0oMyZh''@;'; put 'put ''W2I+PjJdfDApP3A6dykrNDA+PjJdKT4+Ml0pPj4yXT4+Ml19fWRve2lmKDE9PShBLWJ8MCkpe2lmKDB8KHA9MHxVNShsLGMpKSYmMHxyayhmLHApKXtpZihhWzE3MisoMHxhW2YrMTY+PjJdKT4+Ml09cCxmZVsxMTIrKE09MHxhW3ArMTY+PjJdKT4+MF09bSxpdFsoTT1NKzE2OHwwKT4+MV09''@;'; put 'put ''MSsoMHxpdFtNPj4xXSk8PDE2Pj4xNiwwfGZlWzE1NisoMHxhW0Q+PjJdKT4+MF18fDB8ZmVbMTU2KygwfGFbUj4+Ml0pPj4wXSlicmVhazskZChmKTticmVha31hWzE3MisoMHxhW2YrMTY+PjJdKT4+Ml09MCxwPTB8SmMobCxjLGYpLGZlWzExMisoMHxhW3ArMTY+PjJdKT4+MF09bX19d2hp''@;'; put 'put ''bGUoMCk7aWYoKChBPTB8YVsyMzIrKDB8YVtSPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhW0Q+PjJdKT4+Ml0pfDApPjEpe2ZvcigoMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6cCs0OHwwKSs0MD4+Ml0pPT0oMHxsKT9rPUE6KGFbMTcyKygwfGFbKEQ9ZisxNnwwKT4+Ml0pPj4yXT0wLGs9MHxK''@;'; put 'put ''YyhsLDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4yXSxmKSxhWzE3MisoMHxhW0Q+PjJdKT4+Ml09ayxZMyhwKSxwPWssaz0wfGFbMjMyKygwfGFbUj4+Ml0pPj4yXSk7KDB8YVsyMzIrKGI9MHxhWzE2Kyh3PTB8YVsoMj09KDB8KEE9MyZhW3A+PjJdKSk/cDpwKy00OHww''@;'; put 'put ''KSs0MD4+Ml0pPj4yXSk+PjJdKSE9KDB8ayk7KXA9MHxhW2FbYisxODA+PjJdPj4yXTsoMHx3KSE9KDB8YykmJihmZVsxMTIrKDB8YVsxNisoMHxKYygwfGFbKDM9PSgwfEEpP3A6cCs0OHwwKSs0MD4+Ml0sYyxmKSk+PjJdKT4+MF09bSxZMyhwKSl9fX13aGlsZSgwKX0obT0wfFk2KGx8PTAp''@;'; put 'put ''LHA9MHxZNihjKSxmLDB8YVsxNzIrKDB8YVtmKzE2Pj4yXSk+PjJdLCgwfG0pPT0oMHxsKSYoMHxwKT09KDB8Yyk/MTo1KX1mdW5jdGlvbiBZNihsKXt2YXIgYyxmLHA9MDtyZXR1cm4gMCE9KDB8KGY9MHxhWzIxMisoYz0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKSkmJjA9PSgwfGZlWzI3Miso''@;'; put 'put ''cD0wfGFbZisxNj4+Ml0pPj4wXSkmJihsPTB8YVsoMHxhW3ArMjY4Pj4yXSkrKGFbYysyMzI+PjJdPDwyKT4+Ml0pLDB8bH1mdW5jdGlvbiBsayhsLGMpe3ZhciBwLG0sZj0wO3JldHVybiBTVShsfD0wLHA9MHxhWzIzMisoYz0wfGFbKGY9MTYrKGN8PTApfDApPj4yXSk+PjJdLDB8YVtjKzIz''@;'; put 'put ''Nj4+Ml0sMiksYz0wfFVoKGwpLF9bODgrKG09MHxhW2MrMTY+PjJdKT4+M109K19bODgrKGY9MHxhW2Y+PjJdKT4+M10sX1ttKzk2Pj4zXT0rX1tmKzk2Pj4zXSxhW20rMjMyPj4yXT1hW2YrMjMyPj4yXSxhW20rMjM2Pj4yXT1mPTErKDB8YVtmKzIzNj4+Ml0pfDAsYVsoMHxhWygwfGFbMTk2''@;'; put 'put ''KygwfGFbbCsxNj4+Ml0pPj4yXSkrKHA8PDYpKzQ+PjJdKSsoZjw8Mik+PjJdPWMsMHxjfWZ1bmN0aW9uIFNVKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgdyxiLG09MCxBPTAsaz0wO2I9MHxhWyhtPTB8YVsxOTYrKDB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pKygoY3w9MCk8PDYpKzQ+''@;'; put 'put ''PjJdO2U6ZG97aWYoKDB8cCk8MSl7Zm9yKGY9Zi1wfDA7ISgoMHwoQT1mKzF8MCkpPj0oMHwobD0wfGFbbSsoYzw8Nik+PjJdKSkpOylhWzIzNisoMHxhWzE2KyhsPTB8YVtiKyhBPDwyKT4+Ml0pPj4yXSk+PjJdPW09ZitwfDAsYVtiKyhtPDwyKT4+Ml09bCxmPUEsbT0wfGFbMTk2KygwfGFb''@;'; put 'put ''dz4+Ml0pPj4yXTtmb3IoZj0oQT1wKy0xfDApK2x8MDs7KXtpZigoMHxmKT49KDB8bCkpYnJlYWsgZTthW2IrKGY8PDIpPj4yXT0wLGY9ZisxfDAsbD0wfGFbKG09MHxhWzE5NisoMHxhW3c+PjJdKT4+Ml0pKyhjPDw2KT4+Ml19fWVsc2V7Zm9yKEE9cCstMXwwLGw9MHxhW20rKGM8PDYpPj4y''@;'; put 'put ''XTshKCgwfChsPWwrLTF8MCkpPD0oMHxmKSk7KWFbMjM2KygwfGFbMTYrKGs9MHxhW2IrKGw8PDIpPj4yXSk+PjJdKT4+Ml09bT1BK2x8MCxhW2IrKG08PDIpPj4yXT1rO2ZvcihtPXArZnwwLGw9ZjshKCgwfChsPWwrMXwwKSk+PSgwfG0pKTspYVtiKyhsPDwyKT4+Ml09MDttPWw9MHxhWzE5''@;'; put 'put ''NisoMHxhW3c+PjJdKT4+Ml0sbD0wfGFbbCsoYzw8Nik+PjJdfX13aGlsZSgwKTthW20rKGM8PDYpPj4yXT1BK2x9ZnVuY3Rpb24geEgobCl7dmFyIE0sRCxSLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKFI9bGUsbGU9bGUrMTZ8MCxEPVIscD0wfER0KGx8PTApO3A7KTc9''@;'; put 'put ''PSgwfGZlWzE1OSsoYz0wfGFbKGY9cCsxNnwwKT4+Ml0pPj4wXSkmJihyZyhwKSxjPTB8YVtmPj4yXSksYVtjKzIxMj4+Ml09MCxwPTB8enQobCxwKTtmb3IoTT1sKzE2fDAsaz0xOyEoKDB8ayk+KDB8YVsxODArKGM9MHxhW00+PjJdKT4+Ml0pKTspe3c9MTYrKEE9MHxhWygwfGFbYysxODQ+''@;'; put 'put ''PjJdKSsoazw8Mik+PjJdKXwwLGM9MHxEdChBKTtlOmZvcig7YzspaWYoYj0wfHp0KEEsYyksMHxmZVsxNTkrKDB8YVsoZj1jKzE2fDApPj4yXSk+PjBdKXA9MHx0aShjKSxtPTB8dGkobCksYVtEPj4yXT1wLGFbRCs0Pj4yXT1tLCRyKDAsODc3NDQsRCksb2koQSxjKSxjPWI7ZWxzZSBmb3Io''@;'; put 'put ''a04oYywwfGFbMjY0KygwfGFbdz4+Ml0pPj4yXSksYVsyMTIrKG09MHxhW2Y+PjJdKT4+Ml09QSxmZVttKzE1OT4+MF09NyxtPTB8dzAoQSxjKTs7KXtpZighbSl7Yz1iO2NvbnRpbnVlIGV9Yz0wfGFbMTcyKygwfGFbbSsxNj4+Ml0pPj4yXTt0OmRve2lmKDB8Yylkb3tpZihmPWMrLTQ4fDAs''@;'; put 'put ''MSE9KDB8ZmVbMTU2KyhwPTB8YVsxNisoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKT4+Ml0pPj4wXSkpYnJlYWsgdDthW3ArMjEyPj4yXT1BLGM9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKT4+Ml0+PjJdfXdoaWxl''@;'; put 'put ''KDAhPSgwfGMpKX13aGlsZSgwKTttPTB8UzAoQSxtKX1rPWsrMXwwfWxlPVJ9ZnVuY3Rpb24gRVUobCxjKXtsfD0wO3ZhciBiLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKHA9MHx2cig4KyhpdFsyMzgrKDB8YVsoYj0xNisoY3w9MCl8MCk+PjJdKT4+MV08PDIpfDApLGFbMjY4KyhmPTB8YVti''@;'; put 'put ''Pj4yXSk+PjJdPXAscD0wLG09MHxpdFtmKzIzNj4+MV07ISgoMHxtKT4oMHxpdFtmKzIzOD4+MV0pKTspZj0wfFVoKGwpLGFbKDB8YVsyNjgrKDB8YVtiPj4yXSk+PjJdKSsobTw8Mik+PjJdPWYsYVsyMzIrKHc9MHxhW2YrMTY+PjJdKT4+Ml09bSxmZVt3KzE1OT4+MF09NyxhW3crMjEyPj4y''@;'; put 'put ''XT1jLDB8cCYmKHc9MTU0KygwfGFbMTYrKDB8SmMocCxmLDApKT4+Ml0pfDAsaXRbdz4+MV09MWUzKigwfGl0W3c+PjFdKSkscD1mLG09bSsxfDAsZj0wfGFbYj4+Ml07Zm9yKHc9MHxEdChjKTtmPTB8YVtiPj4yXSx3Oyl7Zm9yKGFbKGY9MjE2KygwfGFbKG09MTYrKDB8YVsoMHxhW2YrMjY4''@;'; put 'put ''Pj4yXSkrKGFbMjMyKygwfGFbdysxNj4+Ml0pPj4yXTw8Mik+PjJdKXwwKT4+Ml0pfDApPj4yXT0xKygwfGFbZj4+Ml0pLGY9MHx3MChjLHcpO2Y7KXtmb3IobD1mKy00OHwwLHA9MHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgzJihBPTB8YVtmPj4yXSl8MCk/ZjpmKzQ4fDApKzQwPj4yXSk+''@;'; put 'put ''PjJdKT4+Ml07ISgoMHxwKT49KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMyZBfDApP2Y6bCkrNDA+PjJdKT4+Ml0pPj4yXSkpOylpdFsoQT0xNjgrKDB8YVsxNisoMHxhW2FbMTgwKygwfGFbbT4+Ml0pPj4yXT4+Ml0pPj4yXSl8MCk+PjFdPTErKDB8aXRbQT4+MV0pPDwxNj4+MTYscD1w''@;'; put 'put ''KzF8MCxBPTB8YVtmPj4yXTtmPTB8UzAoYyxmKX13PTB8enQoYyx3KX1mb3IobD0wfGl0W2YrMjM4Pj4xXSxBPWYrMjY4fDAsZj0wfGl0W2YrMjM2Pj4xXTshKCgwfGYpPigwfGwpKTspKDB8KG09MHxhWyhwPTIxNisoMHxhWzE2KygwfGFbKDB8YVtBPj4yXSkrKGY8PDIpPj4yXSk+PjJdKXww''@;'; put 'put ''KT4+Ml0pKT4xJiYoYVtwPj4yXT1tKy0xKSxmPWYrMXwwfWZ1bmN0aW9uIG1vZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIHcsYixtPTAsQT0wO2lmKCgwfCh3PTErKGZ8PTApfDApKSE9KDB8ZmVbMjczKyhjPTB8YVsoYj0xNisoMHxhWzIxMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSl8MCk+''@;'; put 'put ''PjJdKT4+MF0pKXtmb3IoQT0wfGl0W2MrMjM2Pj4xXTshKCgwfEEpPigobT0wfGl0W2MrMjM4Pj4xXSk8PDE2Pj4xNnwwKSk7KUhZKGwsMHxhWygwfGFbYysyNjg+PjJdKSsoQTw8Mik+PjJdKSxBPUErMXwwLGM9MHxhW2I+PjJdO2ZvcihBPTB8aXRbYysyMzY+PjFdOyEoKDB8QSk+KG08PDE2''@;'; put 'put ''Pj4xNnwwKSk7KXFDKHAsMHxhWygwfGFbYysyNjg+PjJdKSsoQTw8Mik+PjJdLGYpLEE9QSsxfDAsbT0wfGl0WzIzOCsobD0wfGFbYj4+Ml0pPj4xXSxjPWw7ZmVbYysyNzM+PjBdPXd9fWZ1bmN0aW9uIGZwKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2ZvcihBPTB8RHQobHw9MCk7QTsp''@;'; put 'put ''e2ZvcihhWzIxMisoMHxhW0ErMTY+PjJdKT4+Ml09MCxtPTB8dzAobCxBKTttOyl7Yz0wfGFbMTcyKygwfGFbbSsxNj4+Ml0pPj4yXTtlOmRve2lmKDB8Yylkb3tpZihmPWMrLTQ4fDAsMSE9KDB8ZmVbMTU2KyhwPTB8YVsxNisoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKT4+''@;'; put 'put ''Ml0pPj4wXSkpYnJlYWsgZTthW3ArMjEyPj4yXT0wLGM9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKT4+Ml0+PjJdfXdoaWxlKDAhPSgwfGMpKX13aGlsZSgwKTttPTB8UzAobCxtKX1BPTB8enQobCxBKX12b2UobCl9ZnVuY3Rpb24g''@;'; put 'put ''dm9lKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoZj0xNisobHw9MCl8MCxjPTE7ISgoMHxjKT4oMHxhWzE4MCsocD0wfGFbZj4+Ml0pPj4yXSkpOyl2b2UoMHxhWygwfGFbcCsxODQ+PjJdKSsoYzw8Mik+PjJdKSxjPWMrMXwwO2Zvcih3PTB8RHQobCk7dzspe2ZvcigwfGFb''@;'; put 'put ''KGM9MjEyKygwfGFbdysxNj4+Ml0pfDApPj4yXXx8KGFbYz4+Ml09bCksQT0wfHcwKGwsdyk7QTspe2M9MHxhWzE3MisoMHxhW0ErMTY+PjJdKT4+Ml07ZTpkb3tpZigwfGMpZG97aWYobT1jKy00OHwwLDEhPSgwfGZlWzE1NisocD0wfGFbMTYrKDB8YVsoMj09KDMmKGY9MHxhW2M+PjJdKXww''@;'; put 'put ''KT9jOm0pKzQwPj4yXSk+PjJdKT4+MF0pKWJyZWFrIGU7MHxhWyhwPXArMjEyfDApPj4yXXx8KGFbcD4+Ml09bCxmPTB8YVtjPj4yXSksYz0wfGFbYVsxODArKDB8YVsxNisoMHxhWygyPT0oMyZmfDApP2M6bSkrNDA+PjJdKT4+Ml0pPj4yXT4+Ml19d2hpbGUoMCE9KDB8YykpfXdoaWxlKDAp''@;'; put 'put ''O0E9MHxTMChsLEEpfXc9MHx6dChsLHcpfX1mdW5jdGlvbiBUVShsLGMpe2N8PTA7dmFyIGIsayxNLHBlLEhlLHFlLHJ0LHVyLGY9MCxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MCxHPTAscT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxWZT0wLFdlPTAsYXQ9MCxTdD0wLGt0PTAsc3Q9MCxF''@;'; put 'put ''dD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wO3VyPWxlLGxlPWxlKzMyMHwwLGN0PXVyKzI5NnwwLFp0PXVyKzI4MHwwLFZlPXVyKzEzNnwwLEhlPXVyKzEyMHwwLFI9dXIrMTA0fDAsYj11cis4OHwwLG09dXIrODB8MCxzdD11cisxNnwwLHJ0PXVyLGs9dXIrMjY0fDAsTT11cisy''@;'; put 'put ''NDh8MCxEPXVyKzIzMnwwLEc9dXIrMjE2fDAsV2U9dXIrMjAwfDAsYXQ9dXIrMTg0fDAscWU9dXIrMTY4fDAsa3Q9dXIrMTUyfDAsQT0wfElVKDB8TGkobHw9MCw4Nzc5OCksYyksZ2U9MCE9KDB8KHBlPTB8SVUoMHxMaShsLDg3ODA0KSxjKSkpLGM9MCE9KDB8QSk7ZG97aWYoY3xnZSYmMHwo''@;'; put 'put ''cD0wfGFbOCsoMHxhWyhIbj1sKzE2fDApPj4yXSk+PjJdKSl7aWYoKDB8YVtwKzQ+PjJdKT4xKXtTbj0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSxIbj0wfHRpKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSksYVttPj4yXT1Tbixh''@;'; put 'put ''W20rND4+Ml09SG4sJHIoMCw4NzgxMCxtKTticmVha31wPTB8YVs0KyhidD0wfGFbcD4+Ml0pPj4yXSxiZT1sKy00OHwwLE9lPTB8YVsoMj09KDB8KHE9MyZhW2w+PjJdKSk/bDpiZSkrNDA+PjJdLExlPWwrNDh8MCxxPTB8YVsoMz09KDB8cSk/bDpMZSkrNDA+PjJdLGFuPTB8UW4oNDgpLGFb''@;'; put 'put ''YW4rMTI+PjJdPWFbKFJlPWJ0KzEyfDApPj4yXSxhW2FuKzg+PjJdPWFbKFN0PWJ0Kzh8MCk+PjJdO2Rve2lmKGMpe2lmKHc9MTYrKDB8YVtBKzE2Pj4yXSl8MCxhW2N0Pj4yXT1hWyhBPTE2KygwfGFbT2UrMTY+PjJdKXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW0ErND4+Ml0sYVtjdCs4Pj4yXT1h''@;'; put 'put ''W0ErOD4+Ml0sYVtjdCsxMj4+Ml09YVtBKzEyPj4yXSwhKDB8cHkoY3QsdykpKXtHPTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TGUpKzQwPj4yXSksRXQ9MHx0aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpiZSkrNDA+PjJdKSxTbj0wfExpKGwsODc3OTgpLGFbYj4+Ml09RyxhW2Ir''@;'; put 'put ''ND4+Ml09RXQsYVtiKzg+PjJdPVNuLCRyKDAsODc4NTEsYiksU249MjY7YnJlYWt9aWYoYVtjdD4+Ml09YVsoYz0wfGFbYnQ+PjJdKT4+Ml0sYVtjdCs0Pj4yXT1hW2MrND4+Ml0sYVtjdCs4Pj4yXT1hW2MrOD4+Ml0sYVtjdCsxMj4+Ml09YVtjKzEyPj4yXSwwfHB5KGN0LHcpKXtpZihhW2N0''@;'; put 'put ''Pj4yXT1hWyhFdD0xNisoMHxhW3ErMTY+PjJdKXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW0V0KzQ+PjJdLGFbY3QrOD4+Ml09YVtFdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW0V0KzEyPj4yXSwwfHB5KGN0LHcpKXtHPTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TGUpKzQwPj4yXSksRXQ9MHx0''@;'; put 'put ''aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpiZSkrNDA+PjJdKSxTbj0wfExpKGwsODc3OTgpLGFbUj4+Ml09RyxhW1IrND4+Ml09RXQsYVtSKzg+PjJdPVNuLCRyKDAsODc4OTQsUiksU249MjY7YnJlYWt9aWYoMHxhW1N0Pj4yXXx8UHIoODc5MzYsODc5NDcsMzY5LDg3OTU4KSxHPWJ0KzE2''@;'; put 'put ''fDAsYVtadD4+Ml09YVtjPj4yXSxhW1p0KzQ+PjJdPWFbYys0Pj4yXSxhW1p0Kzg+PjJdPWFbYys4Pj4yXSxhW1p0KzEyPj4yXT1hW2MrMTI+PjJdLGFbY3Q+PjJdPWFbRz4+Ml0sYVtjdCs0Pj4yXT1hW0crND4+Ml0sYVtjdCs4Pj4yXT1hW0crOD4+Ml0sYVtjdCsxMj4+Ml09YVtHKzEyPj4y''@;'; put 'put ''XSxQSShydCxadCxjdCx3KSxhWyhFdD00OCsoMHxhW2J0Pj4yXSl8MCk+PjJdPWFbcnQ+PjJdLGFbRXQrND4+Ml09YVtydCs0Pj4yXSxhW0V0Kzg+PjJdPWFbcnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtydCsxMj4+Ml0sRXQ9MTYrKDB8YVtidD4+Ml0pfDAsYVtadD4+Ml09YVtydD4+Ml0sYVta''@;'; put 'put ''dCs0Pj4yXT1hW3J0KzQ+PjJdLGFbWnQrOD4+Ml09YVtydCs4Pj4yXSxhW1p0KzEyPj4yXT1hW3J0KzEyPj4yXSxhW2N0Pj4yXT1hW0c+PjJdLGFbY3QrND4+Ml09YVtHKzQ+PjJdLGFbY3QrOD4+Ml09YVtHKzg+PjJdLGFbY3QrMTI+PjJdPWFbRysxMj4+Ml0sWGgoayxadCxjdCksYVtFdD4+''@;'; put 'put ''Ml09YVtrPj4yXSxhW0V0KzQ+PjJdPWFbays0Pj4yXSxhW0V0Kzg+PjJdPWFbays4Pj4yXSxhW0V0KzEyPj4yXT1hW2srMTI+PjJdLGFbWnQ+PjJdPWFbKGM9MTYrKEV0PTB8YVtidD4+Ml0pfDApPj4yXSxhW1p0KzQ+PjJdPWFbYys0Pj4yXSxhW1p0Kzg+PjJdPWFbYys4Pj4yXSxhW1p0KzEy''@;'; put 'put ''Pj4yXT1hW2MrMTI+PjJdLGFbY3Q+PjJdPWFbRz4+Ml0sYVtjdCs0Pj4yXT1hW0crND4+Ml0sYVtjdCs4Pj4yXT1hW0crOD4+Ml0sYVtjdCsxMj4+Ml09YVtHKzEyPj4yXSxYaChNLFp0LGN0KSxhW0V0Pj4yXT1hW00+PjJdLGFbRXQrND4+Ml09YVtNKzQ+PjJdLGFbRXQrOD4+Ml09YVtNKzg+''@;'; put 'put ''PjJdLGFbRXQrMTI+PjJdPWFbTSsxMj4+Ml0sYz0zMisoRXQ9MHxhW2J0Pj4yXSl8MCxhW1p0Pj4yXT1hWyhFdD1FdCsxNnwwKT4+Ml0sYVtadCs0Pj4yXT1hW0V0KzQ+PjJdLGFbWnQrOD4+Ml09YVtFdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW0V0KzEyPj4yXSxhW2N0Pj4yXT1hW3J0Pj4yXSxh''@;'; put 'put ''W2N0KzQ+PjJdPWFbcnQrND4+Ml0sYVtjdCs4Pj4yXT1hW3J0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbcnQrMTI+PjJdLFhoKEQsWnQsY3QpLGFbYz4+Ml09YVtEPj4yXSxhW2MrND4+Ml09YVtEKzQ+PjJdLGFbYys4Pj4yXT1hW0QrOD4+Ml0sYVtjKzEyPj4yXT1hW0QrMTI+PjJdLCEoYz0wfGFb''@;'; put 'put ''UmU+PjJdKSl7RXQ9MzticmVha31FdD0zKygwfHlGKGwsMHxhW2J0Pj4yXSwwLDAsYW4sYykpfDA7YnJlYWt9Zm9yKEE9cCstMXwwLGM9MDshKCgwfGMpPj0oMHxBKXx8MHxEVSgoMHxhW2J0Pj4yXSkrKGM8PDQpfDAsdykpOyljPWMrM3wwO2lmKG09MCE9KDB8KHA9MHxhW1JlPj4yXSkpLCgw''@;'; put 'put ''fGMpIT0oMHxBKSl7bSYmKGM9MHx5RihsLDB8YVtidD4+Ml0sMCxjLGFuLHApKSxFdD1jKzN8MDticmVha31pZihtKXtFdD1hbiszMnwwLFI9KDB8YVtidD4+Ml0pKyhBPDw0KXwwLGFbWnQ+PjJdPWFbKEQ9YnQrMzJ8MCk+PjJdLGFbWnQrND4+Ml09YVtEKzQ+PjJdLGFbWnQrOD4+Ml09YVtE''@;'; put 'put ''Kzg+PjJdLGFbWnQrMTI+PjJdPWFbRCsxMj4+Ml0sYVtjdD4+Ml09YVtSPj4yXSxhW2N0KzQ+PjJdPWFbUis0Pj4yXSxhW2N0Kzg+PjJdPWFbUis4Pj4yXSxhW2N0KzEyPj4yXT1hW1IrMTI+PjJdLFBJKEcsWnQsY3QsdyksYVtFdD4+Ml09YVtHPj4yXSxhW0V0KzQ+PjJdPWFbRys0Pj4yXSxh''@;'; put 'put ''W0V0Kzg+PjJdPWFbRys4Pj4yXSxhW0V0KzEyPj4yXT1hW0crMTI+PjJdLEV0PUE7YnJlYWt9UHIoODc5NzUsODc5NDcsMzg3LDg3OTU4KX1lbHNlIFNuPTI2fXdoaWxlKDApOzI2PT0oMHxTbikmJihjPXArLTF8MCwwfGFbUmU+PjJdJiYoYVsoRXQ9YW4rMzJ8MCk+PjJdPWFbKEc9YnQrMzJ8''@;'; put 'put ''MCk+PjJdLGFbRXQrND4+Ml09YVtHKzQ+PjJdLGFbRXQrOD4+Ml09YVtHKzg+PjJdLGFbRXQrMTI+PjJdPWFbRysxMj4+Ml0pLEV0PWMpO2Rve2lmKGdlKXtpZihtPTE2KygwfGFbcGUrMTY+PjJdKXwwLGFbY3Q+PjJdPWFbKGdlPTE2KygwfGFbcSsxNj4+Ml0pfDApPj4yXSxhW2N0KzQ+PjJd''@;'; put 'put ''PWFbZ2UrND4+Ml0sYVtjdCs4Pj4yXT1hW2dlKzg+PjJdLGFbY3QrMTI+PjJdPWFbZ2UrMTI+PjJdLCEoMHxweShjdCxtKSkpe1p0PTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TGUpKzQwPj4yXSksY3Q9MHx0aSgwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpiZSkrNDA+PjJdKSxTbj0w''@;'; put 'put ''fExpKGwsODc4MDQpLGFbSGU+PjJdPVp0LGFbSGUrND4+Ml09Y3QsYVtIZSs4Pj4yXT1TbiwkcigwLDg3OTg2LEhlKSxTbj01MjticmVha31pZihhW2N0Pj4yXT1hWyhjPSgwfGFbYnQ+PjJdKSsoRXQ8PDQpfDApPj4yXSxhW2N0KzQ+PjJdPWFbYys0Pj4yXSxhW2N0Kzg+PjJdPWFbYys4Pj4y''@;'; put 'put ''XSxhW2N0KzEyPj4yXT1hW2MrMTI+PjJdLDB8cHkoY3QsbSkpe2lmKGFbY3Q+PjJdPWFbKHN0PTE2KygwfGFbT2UrMTY+PjJdKXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW3N0KzQ+PjJdLGFbY3QrOD4+Ml09YVtzdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW3N0KzEyPj4yXSwwfHB5KGN0LG0pKXtadD0w''@;'; put 'put ''fHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOkxlKSs0MD4+Ml0pLGN0PTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6YmUpKzQwPj4yXSksU249MHxMaShsLDg3ODA0KSxhW1ZlPj4yXT1adCxhW1ZlKzQ+PjJdPWN0LGFbVmUrOD4+Ml09U24sJHIoMCw4ODAyOSxWZSksU249NTI7YnJl''@;'; put 'put ''YWt9aWYoMHxhW1JlPj4yXXx8UHIoODc5NzUsODc5NDcsNDI5LDg3OTU4KSxWZT1hbiszMnwwLGFbWnQ+PjJdPWFbYz4+Ml0sYVtadCs0Pj4yXT1hW2MrND4+Ml0sYVtadCs4Pj4yXT1hW2MrOD4+Ml0sYVtadCsxMj4+Ml09YVtjKzEyPj4yXSxhW2N0Pj4yXT1hW1ZlPj4yXSxhW2N0KzQ+PjJd''@;'; put 'put ''PWFbVmUrND4+Ml0sYVtjdCs4Pj4yXT1hW1ZlKzg+PjJdLGFbY3QrMTI+PjJdPWFbVmUrMTI+PjJdLFBJKHJ0LFp0LGN0LG0pLGFbKHN0PSgwfGFbYnQ+PjJdKSsoKGY9RXQrLTN8MCk8PDQpfDApPj4yXT1hW3J0Pj4yXSxhW3N0KzQ+PjJdPWFbcnQrND4+Ml0sYVtzdCs4Pj4yXT1hW3J0Kzg+''@;'; put 'put ''PjJdLGFbc3QrMTI+PjJdPWFbcnQrMTI+PjJdLGM9KDB8YVtidD4+Ml0pKygoc3Q9RXQrLTF8MCk8PDQpfDAsYVtadD4+Ml09YVtydD4+Ml0sYVtadCs0Pj4yXT1hW3J0KzQ+PjJdLGFbWnQrOD4+Ml09YVtydCs4Pj4yXSxhW1p0KzEyPj4yXT1hW3J0KzEyPj4yXSxhW2N0Pj4yXT1hW1ZlPj4y''@;'; put 'put ''XSxhW2N0KzQ+PjJdPWFbVmUrND4+Ml0sYVtjdCs4Pj4yXT1hW1ZlKzg+PjJdLGFbY3QrMTI+PjJdPWFbVmUrMTI+PjJdLFhoKFdlLFp0LGN0KSxhW2M+PjJdPWFbV2U+PjJdLGFbYys0Pj4yXT1hW1dlKzQ+PjJdLGFbYys4Pj4yXT1hW1dlKzg+PjJdLGFbYysxMj4+Ml09YVtXZSsxMj4+Ml0s''@;'; put 'put ''a3Q9KGM9MHxhW2J0Pj4yXSkrKEV0PDw0KXwwLGFbWnQ+PjJdPWFbKGM9Yysoc3Q8PDQpfDApPj4yXSxhW1p0KzQ+PjJdPWFbYys0Pj4yXSxhW1p0Kzg+PjJdPWFbYys4Pj4yXSxhW1p0KzEyPj4yXT1hW2MrMTI+PjJdLGFbY3Q+PjJdPWFbVmU+PjJdLGFbY3QrND4+Ml09YVtWZSs0Pj4yXSxh''@;'; put 'put ''W2N0Kzg+PjJdPWFbVmUrOD4+Ml0sYVtjdCsxMj4+Ml09YVtWZSsxMj4+Ml0sWGgoYXQsWnQsY3QpLGFba3Q+PjJdPWFbYXQ+PjJdLGFba3QrND4+Ml09YVthdCs0Pj4yXSxhW2t0Kzg+PjJdPWFbYXQrOD4+Ml0sYVtrdCsxMj4+Ml09YVthdCsxMj4+Ml0sYz0oa3Q9MHxhW2J0Pj4yXSkrKEV0''@;'; put 'put ''Ky0yPDw0KXwwLGFbWnQ+PjJdPWFbKHN0PWt0KyhzdDw8NCl8MCk+PjJdLGFbWnQrND4+Ml09YVtzdCs0Pj4yXSxhW1p0Kzg+PjJdPWFbc3QrOD4+Ml0sYVtadCsxMj4+Ml09YVtzdCsxMj4+Ml0sYVtjdD4+Ml09YVtydD4+Ml0sYVtjdCs0Pj4yXT1hW3J0KzQ+PjJdLGFbY3QrOD4+Ml09YVty''@;'; put 'put ''dCs4Pj4yXSxhW2N0KzEyPj4yXT1hW3J0KzEyPj4yXSxYaChxZSxadCxjdCksYVtjPj4yXT1hW3FlPj4yXSxhW2MrND4+Ml09YVtxZSs0Pj4yXSxhW2MrOD4+Ml09YVtxZSs4Pj4yXSxhW2MrMTI+PjJdPWFbcWUrMTI+PjJdLCEoYz0wfGFbU3Q+PjJdKSlicmVhaztmPTB8T2EobCwwfGFbYnQ+''@;'; put 'put ''PjJdLGYsZixhbixjKTticmVha31mb3IocD1FdDsoMHxwKT4wOyl7Zm9yKGM9MDs0IT0oMHxjKTspYVsoYXQ9c3QrKGM8PDQpfDApPj4yXT1hWyhXZT0oMHxhW2J0Pj4yXSkrKHAtYzw8NCl8MCk+PjJdLGFbYXQrND4+Ml09YVtXZSs0Pj4yXSxhW2F0Kzg+PjJdPWFbV2UrOD4+Ml0sYVthdCsx''@;'; put 'put ''Mj4+Ml09YVtXZSsxMj4+Ml0sYz1jKzF8MDtpZigwfERVKHN0LG0pKXtjPTAsU249NDM7YnJlYWt9cD1wKy0zfDB9ZTpkb3tpZig0Mz09KDB8U24pKWZvcig7Oyl7aWYoU249MCw0PT0oMHxjKSlicmVhayBlO2FbKFNuPSgwfGFbYnQ+PjJdKSsocC1jPDw0KXwwKT4+Ml09YVsoYXQ9c3QrKGM8''@;'; put 'put ''PDQpfDApPj4yXSxhW1NuKzQ+PjJdPWFbYXQrND4+Ml0sYVtTbis4Pj4yXT1hW2F0Kzg+PjJdLGFbU24rMTI+PjJdPWFbYXQrMTI+PjJdLGM9YysxfDAsU249NDN9fXdoaWxlKDApO2lmKDB8cCl7aWYoZj1wKy0zfDAsIShjPTB8YVtTdD4+Ml0pKWJyZWFrO2Y9MHxPYShsLDB8YVtidD4+Ml0s''@;'; put 'put ''ZixFdCstM3wwLGFuLGMpO2JyZWFrfWlmKDB8YVtTdD4+Ml0pe2Y9YW4rMTZ8MCxsPTB8YVtidD4+Ml0sYVtadD4+Ml09YVsoc3Q9YnQrMTZ8MCk+PjJdLGFbWnQrND4+Ml09YVtzdCs0Pj4yXSxhW1p0Kzg+PjJdPWFbc3QrOD4+Ml0sYVtadCsxMj4+Ml09YVtzdCsxMj4+Ml0sYVtjdD4+Ml09''@;'; put 'put ''YVtsPj4yXSxhW2N0KzQ+PjJdPWFbbCs0Pj4yXSxhW2N0Kzg+PjJdPWFbbCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2wrMTI+PjJdLFBJKGt0LFp0LGN0LG0pLGFbZj4+Ml09YVtrdD4+Ml0sYVtmKzQ+PjJdPWFba3QrND4+Ml0sYVtmKzg+PjJdPWFba3QrOD4+Ml0sYVtmKzEyPj4yXT1hW2t0KzEy''@;'; put 'put ''Pj4yXSxmPTA7YnJlYWt9UHIoODc5MzYsODc5NDcsNDUyLDg3OTU4KX1lbHNlIFNuPTUyfXdoaWxlKDApO2Zvcig1Mj09KDB8U24pJiYoMHxhW1N0Pj4yXSYmKGFbKGY9YW4rMTZ8MCk+PjJdPWFbKFNuPWJ0KzE2fDApPj4yXSxhW2YrND4+Ml09YVtTbis0Pj4yXSxhW2YrOD4+Ml09YVtTbis4''@;'; put 'put ''Pj4yXSxhW2YrMTI+PjJdPWFbU24rMTI+PjJdKSxmPTApLGFbKHA9YW4rNHwwKT4+Ml09Yz1FdC1mKzF8MCxhW2FuPj4yXT0wfFFuKGM8PDQpLGM9MDshKCgwfGMpPj0oMHxhW3A+PjJdKSk7KWFbKFNuPSgwfGFbYW4+PjJdKSsoYzw8NCl8MCk+PjJdPWFbKGw9KDB8YVtidD4+Ml0pKyhmPDw0''@;'; put 'put ''KXwwKT4+Ml0sYVtTbis0Pj4yXT1hW2wrND4+Ml0sYVtTbis4Pj4yXT1hW2wrOD4+Ml0sYVtTbisxMj4+Ml09YVtsKzEyPj4yXSxmPWYrMXwwLGM9YysxfDA7RnQoMHxhW2J0Pj4yXSksRnQoYnQpLGFbYVs4KygwfGFbSG4+PjJdKT4+Ml0+PjJdPWFufX13aGlsZSgwKTtsZT11cn1mdW5jdGlv''@;'; put 'put ''biBJVShsLGMpe3ZhciBmLHA7cmV0dXJuIGN8PTAscD1sZSxsZT1sZSsxNnwwLGY9cCwwIT0oMHwobHw9MCkpJiYwIT0oMHxmZVtsPj4wXSk/KGM9MHxETihjLGwpKXx8KGFbZj4+Ml09bCwkcigwLDg4MTQ5LGYpLGM9MCk6Yz0wLGxlPXAsMHxjfWZ1bmN0aW9uIHB5KGwsYyl7dmFyIHAsZj0w''@;'; put 'put ''O3JldHVybiAwfCgrX1soY3w9MCk+PjNdPD0ocD0rX1sobHw9MCk+PjNdKSYmcDw9K19bYysxNj4+M10mJitfW2MrOD4+M108PShmPStfW2wrOD4+M10pP2Y8PStfW2MrMjQ+PjNdJjE6MCl9ZnVuY3Rpb24gUEkobCxjLGYscCl7bHw9MDt2YXIgayxELHEscGUsZ2UsYmUsT2UsTGUsV2UsYXQs''@;'; put 'put ''bT0wLEE9MCx3PTAsYj0wLE09MCxSPTAsRz0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MDthdD1sZSxsZT1sZSs0NjR8MCxEPWF0KzQ4fDAsV2U9YXQrMzJ8MCxMZT1hdCxSZT1hdCszNjR8MCxIZT1hdCsyNjR8MCxxZT1hdCsxNjR8MCxydD1hdCs2NHwwLHE9K19bKGN8PTApPj4zXSxwZT0r''@;'; put 'put ''X1tjKzg+PjNdLGdlPStfWyhmfD0wKT4+M10sYmU9K19bZis4Pj4zXSxhWyhPZT1hdCsxNnwwKT4+Ml09YVsocHw9MCk+PjJdLGFbT2UrND4+Ml09YVtwKzQ+PjJdLGFbT2UrOD4+Ml09YVtwKzg+PjJdLGFbT2UrMTI+PjJdPWFbcCsxMj4+Ml0sYVtMZT4+Ml09YVsocD1wKzE2fDApPj4yXSxh''@;'; put 'put ''W0xlKzQ+PjJdPWFbcCs0Pj4yXSxhW0xlKzg+PjJdPWFbcCs4Pj4yXSxhW0xlKzEyPj4yXT1hW3ArMTI+PjJdLGdlPChrPStfW09lPj4zXSkmJihtPXBlKyArKDB8fn4oKGstcSkqKHBlLWJlKS8ocS1nZSkpKSk+PStfW09lKzg+PjNdJiZtPD0rX1tMZSs4Pj4zXT8oUj1tLEc9ayk6dz00O2Rv''@;'; put 'put ''e2lmKDQ9PSgwfHcpKXtpZihnZT4oYj0rX1tMZT4+M10pKXtpZigoQT1wZSsgKygwfH5+KChiLXEpKihwZS1iZSkvKHEtZ2UpKSkpPj0obT0rX1tPZSs4Pj4zXSkmJkE8PStfW0xlKzg+PjNdKXtSPUEsRz1iO2JyZWFrfX1lbHNlIG09K19bT2UrOD4+M107aWYoYmU8bSYmISghKChNPXErICso''@;'; put 'put ''MHx+figobS1wZSkqKHEtZ2UpLyhwZS1iZSkpKSk+PWspfCEoTTw9YikpKXtSPW0sRz1NO2JyZWFrfWlmKGJlPihtPStfW0xlKzg+PjNdKSYmISghKChWZT1xKyArKDB8fn4oKG0tcGUpKihxLWdlKS8ocGUtYmUpKSkpPj1rKXwhKFZlPD1iKSkpe1I9bSxHPVZlO2JyZWFrfWFbRD4+Ml09YVtj''@;'; put 'put ''Pj4yXSxhW0QrND4+Ml09YVtjKzQ+PjJdLGFbRCs4Pj4yXT1hW2MrOD4+Ml0sYVtEKzEyPj4yXT1hW2MrMTI+PjJdLFJlPTB8TkkoRCxSZSksYVtEPj4yXT1hW2Y+PjJdLGFbRCs0Pj4yXT1hW2YrND4+Ml0sYVtEKzg+PjJdPWFbZis4Pj4yXSxhW0QrMTI+PjJdPWFbZisxMj4+Ml0sSGU9MHxO''@;'; put 'put ''SShELEhlKSxhW0Q+PjJdPWFbT2U+PjJdLGFbRCs0Pj4yXT1hW09lKzQ+PjJdLGFbRCs4Pj4yXT1hW09lKzg+PjJdLGFbRCsxMj4+Ml09YVtPZSsxMj4+Ml0scWU9MHxOSShELHFlKSxhW0Q+PjJdPWFbTGU+PjJdLGFbRCs0Pj4yXT1hW0xlKzQ+PjJdLGFbRCs4Pj4yXT1hW0xlKzg+PjJdLGFb''@;'; put 'put ''RCsxMj4+Ml09YVtMZSsxMj4+Ml0scnQ9MHxOSShELHJ0KSxhW1dlPj4yXT1SZSxhW1dlKzQ+PjJdPUhlLGFbV2UrOD4+Ml09cWUsYVtXZSsxMj4+Ml09cnQsJHIoMSw4ODA3MSxXZSksUHIoMTM4Mzk0LDg3OTQ3LDc4LDg4MTIzKX19d2hpbGUoMCk7X1tsPj4zXT1HLF9bbCs4Pj4zXT1SLGxl''@;'; put 'put ''PWF0fWZ1bmN0aW9uIFhoKGwsYyxmKXt2YXIgcDtwPS41KigrX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSksX1sobHw9MCk+PjNdPS41KigrX1tmPj4zXSsgK19bYz4+M10pLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIERVKGwsYyl7bHw9MCxjfD0wO3ZhciBiLGssTSxmPTAscD0wLG09''@;'; put 'put ''MCxBPTAsdz0wO2ZvcihNPWxlLGxlPWxlKzgwfDAsYj1NKzE2fDAsaz1NLHA9MDs0IT0oMHxwKTspYVsodz1iKyhwPDw0KXwwKT4+Ml09YVsoQT1sKyhwPDw0KXwwKT4+Ml0sYVt3KzQ+PjJdPWFbQSs0Pj4yXSxhW3crOD4+Ml09YVtBKzg+PjJdLGFbdysxMj4+Ml09YVtBKzEyPj4yXSxwPXAr''@;'; put 'put ''MXwwO3JldHVybihmPStGSShsLDAsMSwrX1tjPj4zXSwrX1socD1jKzh8MCk+PjNdLCtfWyh3PWMrMjR8MCk+PjNdKSk+PTAmZjwyP3d1KGssYiwzLGYsbCwwKTpmPTIsKG09K0ZJKGwsMCxmPjE/MTpmLCtfWyhBPWMrMTZ8MCk+PjNdLCtfW3A+PjNdLCtfW3c+PjNdKSk+PTAmbTxmJiYod3Uo''@;'; put 'put ''ayxiLDMsbSxsLDApLGY9bSksKG09K0hJKGwsMCxmPjE/MTpmLCtfW3A+PjNdLCtfW2M+PjNdLCtfW0E+PjNdKSk+PTAmbTxmJiYod3UoayxiLDMsbSxsLDApLGY9bSksKG09K0hJKGwsMCxmPjE/MTpmLCtfW3c+PjNdLCtfW2M+PjNdLCtfW0E+PjNdKSk+PTAmbTxmJiYod3UoayxiLDMsbSxs''@;'; put 'put ''LDApLGY9bSksbGU9TSxmPDJ8MH1mdW5jdGlvbiBGSShsLGMsZixwLG0sQSl7bHw9MCxjPStjLGY9K2YscD0rcCxtPSttLEE9K0E7dmFyIGIsayxNLEQsdz0wO0Q9bGUsbGU9bGUrMTQ0fDAsaz1EKzgwfDAsTT1EKzE2fDAsYj1EO2U6ZG97aWYoYyE9Zil7c3dpdGNoKDB8TFUobCxwKSl7Y2Fz''@;'; put 'put ''ZSAwOmM9LTE7YnJlYWsgZTtjYXNlIDE6aWYoK2VvKCsoK19bbCs0OD4+M10tcCkpPD0uMDA1KXtjPSEoKGM9K19bbCs1Nj4+M10pPj1tKXwhKGM8PUEpPy0xOmY7YnJlYWsgZX19d3UoYixsLDMsLjUsayxNKSwoYz0rRkkoayxjLHc9LjUqKGYrYykscCxtLEEpKT49MHx8KGM9K0ZJKE0sdyxm''@;'; put 'put ''LHAsbSxBKSl9fXdoaWxlKDApO3JldHVybiBsZT1ELCtjfWZ1bmN0aW9uIEhJKGwsYyxmLHAsbSxBKXtsfD0wLGM9K2MsZj0rZixwPStwLG09K20sQT0rQTt2YXIgYixrLE0sRCx3PTA7RD1sZSxsZT1sZSsxNDR8MCxrPUQrODB8MCxNPUQrMTZ8MCxiPUQ7ZTpkb3tpZihjIT1mKXtzd2l0Y2go''@;'; put 'put ''MHxBb2UobCxwKSl7Y2FzZSAwOmM9LTE7YnJlYWsgZTtjYXNlIDE6aWYoK2VvKCsoK19bbCs1Nj4+M10tcCkpPD0uMDA1KXtjPSEoKGM9K19bbCs0OD4+M10pPj1tKXwhKGM8PUEpPy0xOmY7YnJlYWsgZX19d3UoYixsLDMsLjUsayxNKSwoYz0rSEkoayxjLHc9LjUqKGYrYykscCxtLEEpKT49''@;'; put 'put ''MHx8KGM9K0hJKE0sdyxmLHAsbSxBKSl9fXdoaWxlKDApO3JldHVybiBsZT1ELCtjfWZ1bmN0aW9uIEFvZShsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoZj0xLHA9bT0oQT0rX1s4KyhsfD0wKT4+M10pPChjPStjKT8tMTpBPmMmMSxtPTA9PSgwfG0pJjE7NCE9KDB8Zik7''@;'; put 'put ''KXc9bSsoMCE9KDB8cCkmKDB8KGI9KEE9K19bbCsoZjw8NCkrOD4+M10pPGM/LTE6QT5jJjEpKSE9KDB8cCkmMSl8MCxmPWYrMXwwLHA9YixtPXc7cmV0dXJuIDB8bX1mdW5jdGlvbiBMVShsLGMpe3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoZj0xLHA9bT0oQT0rX1sobHw9MCk+''@;'; put 'put ''PjNdKTwoYz0rYyk/LTE6QT5jJjEsbT0wPT0oMHxtKSYxOzQhPSgwfGYpOyl3PW0rKDAhPSgwfHApJigwfChiPShBPStfW2wrKGY8PDQpPj4zXSk8Yz8tMTpBPmMmMSkpIT0oMHxwKSYxKXwwLGY9ZisxfDAscD1iLG09dztyZXR1cm4gMHxtfWZ1bmN0aW9uIE5JKGwsYyl7dmFyIGYscCxtO3Jl''@;'; put 'put ''dHVybiBjfD0wLGY9bGUsbGU9bGUrMTZ8MCxtPStfWzgrKGx8PTApPj4zXSxfWyhwPWYpPj4zXT0rX1tsPj4zXSxfW3ArOD4+M109bSxvbyhjLDg4MTM3LHApLGxlPWYsMHxjfWZ1bmN0aW9uIFJVKGwpe3JldHVybiAwfCgxPT0oMHxmZVsxNTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4wXSkm''@;'; put 'put ''JjE9PSgwfGFbbCsxNzY+PjJdKSYmMT09KDB8YVtsKzE4ND4+Ml0pPzA9PSgwfGFbbCsxMDQ+PjJdKSYxOjApfWZ1bmN0aW9uIFBVKGwpe3JldHVybiAwfCgxPT0oMHxmZVsxNTYrKGw9MHxhWzE2KyhsfD0wKT4+Ml0pPj4wXSkmJjE9PSgwfGFbbCsxODQ+PjJdKSYmMT09KDB8YVtsKzE3Nj4+''@;'; put 'put ''Ml0pPzA9PSgwfGFbbCsxMDQ+PjJdKSYxOjApfWZ1bmN0aW9uIEhVKGwsYyl7dmFyIGYscDswIT0oMHwocD0wfGFbKGw9KDB8YVsyNjgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pKyhhWzIzMisoZj0wfGFbMTYrKGN8PTApPj4yXSk+PjJdPDwyKXwwKT4+Ml0pKSYmKDB8YVsyMzYrKDB8YVtw''@;'; put 'put ''KzE2Pj4yXSk+PjJdKTw9KDB8YVtmKzIzNj4+Ml0pfHwoYVtsPj4yXT1jKX1mdW5jdGlvbiBOVShsLGMpe2x8PTAsY3w9MDtmb3IodmFyIGY9MCxwPTA7MHxmZVsxMTIrKHA9MHxhW2wrMTY+PjJdKT4+MF07KWw9MHxhW3ArMTE2Pj4yXTtmb3IoOzB8ZmVbMTEyKyhmPTB8YVtjKzE2Pj4yXSk+''@;'; put 'put ''PjBdOyljPTB8YVtmKzExNj4+Ml07cmV0dXJuIDB8KGw9MD09KDB8ZmVbcCsxNTM+PjBdKSYmMD09KDB8ZmVbZisxNTM+PjBdKT8oMHxBcigoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChmPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxh''@;'; put 'put ''WzE2KygwfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCwoMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfChwPTMmYVtjPj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfHApP2M6YystNDh8MCkr''@;'; put 'put ''NDA+PjJdKT4+Ml0pPj4yXSl8MCkpPjAmMTowKX1mdW5jdGlvbiBJSChsLGMpe2x8PTAsY3w9MDt2YXIgYixrLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGs9bGUsbGU9bGUrNTQ0fDAsZnVuY3Rpb24gVlUobCxjLGYpe2x8PTAsYVsoY3w9MCk+PjJdPWZ8PTAsYVtjKzQ+PjJdPWYrNTEyLGFb''@;'; put 'put ''YysxMj4+Ml09MCxhW2MrOD4+Ml09MCxhW2w+PjJdPWMsYVtsKzQ+PjJdPWMsYVtsKzg+PjJdPWZ9KGI9ays1Mjh8MCxrKzUxMnwwLGspLGZlWzE5Mzc3MF09KGY9MSsoMHxmZVsxOTM3NzBdKTw8MjQ+PjI0KTw8MjQ+PjI0PT0wPzE6ZixhWzIyMCsoZj0wfGFbbCsxNj4+Ml0pPj4yXT0wLGFb''@;'; put 'put ''ZisyMzI+PjJdPTAsZj0oMHxjKT4wLGM9MHxEdChsKTtjOylmJiYwIT0oMHwodz0wfGFbMjEyKyhBPTB8YVtjKzE2Pj4yXSk+PjJdKSk/KG09MHxhWygwfGFbMjY4KygwfGFbdysxNj4+Ml0pPj4yXSkrKGFbQSsyMzI+PjJdPDwyKT4+Ml0scD03KTpwPTYsNj09KDB8cCkmJihwPTAsKDB8Yyk9''@;'; put 'put ''PSgwfGcxKGMpKSkmJihtPWMscD03KSw3PT0oMHxwKSYmKDB8ZmVbMTU3KygwfGFbbSsxNj4+Ml0pPj4wXSkhPSgwfGZlWzE5Mzc3MF0pJiYod29lKGwpLGpVKGIsbCxtKSxib2UobCkpLGM9MHx6dChsLGMpOyhmdW5jdGlvbiBzayhsKXt2YXIgYz0wO2ZvcihsPTB8YVsxMisoMHxhWyhsfD0w''@;'; put 'put ''KT4+Ml0pPj4yXTtsOyljPTB8YVtsKzEyPj4yXSxGdCgwfGFbbD4+Ml0pLEZ0KGwpLGw9Y30pKGIpLGxlPWt9ZnVuY3Rpb24gd29lKGwpe2FbMTkyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdPTAsYVs0Njc5M109MH1mdW5jdGlvbiBqVShsLGMsZil7Y3w9MDt2YXIgayxNLEQsRyxxLHA9MCxt''@;'; put 'put ''PTAsQT0wLHc9MCxiPTAsUj0wO3E9bGUsbGU9bGUrMzJ8MCxHPXEsWlUobHw9MCxmfD0wKSxrPUcrOHwwLE09RysxNnwwLEQ9RysyNHwwO2U6Zm9yKDtSPTB8REgobCksUjspaWYoZj1SKzE2fDAsKDB8ZmVbMTU3KygwfGFbZj4+Ml0pPj4wXSkhPSgwfGZlWzE5Mzc3MF0pKWZvcihMSChjLFIp''@;'; put 'put ''LEE9MHxhW2Y+PjJdLG09QSsxODB8MCxiPTB8YVttKzQ+PjJdLHc9RyxhW3c+PjJdPWFbbT4+Ml0sYVt3KzQ+PjJdPWIsdz1BKzE3MnwwLGI9MHxhW3crND4+Ml0sbT1rLGFbbT4+Ml09YVt3Pj4yXSxhW20rND4+Ml09YixtPUErMTg4fDAsYj0wfGFbbSs0Pj4yXSx3PU0sYVt3Pj4yXT1hW20+''@;'; put 'put ''PjJdLGFbdys0Pj4yXT1iLEE9QSsxOTZ8MCx3PTB8YVtBKzQ+PjJdLGI9RCxhW2I+PjJdPWFbQT4+Ml0sYVtiKzQ+PjJdPXcsYj0zOzspe2lmKCgwfGIpPD0tMSljb250aW51ZSBlO2Y9MHxhW0crKGI8PDMpPj4yXTt0OmRve2lmKDB8Zilmb3Iodz0oMHxhW0crKGI8PDMpKzQ+PjJdKS0xfDAs''@;'; put 'put ''QT1mKyh3PDwyKXwwOzspe2lmKCgwfHcpPD0tMSlicmVhayB0OygwfChmPTB8YVsoMj09KDB8KG09MyZhWyhwPTB8YVtBPj4yXSk+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0pKT09KDB8UikmJihmPTB8YVsoMz09KDB8bSk/cDpwKzQ4fDApKzQwPj4yXSksKDB8ZmVbMTU3KygwfGFbZisxNj4+''@;'; put 'put ''Ml0pPj4wXSkhPSgwfGZlWzE5Mzc3MF0pJiYoMHxmKT09KDB8ZzEoZikpJiZaVShsLGYpLEE9QSstNHwwLHc9dystMXwwfX13aGlsZSgwKTtiPWIrLTF8MH1sZT1xfWZ1bmN0aW9uIGJvZShsKXt2YXIgZixwLGM9MCxtPTA7YVsobT0yMjArKGM9MHxhWyhmPTE2KyhsfD0wKXwwKT4+Ml0pfDAp''@;'; put 'put ''Pj4yXT1sPTErKHA9MHxhW20+PjJdKXwwLGw9KGM9MHxhW2MrMjE2Pj4yXSk/MHxWMChjLGw8PDIpOjB8UW4obDw8MiksYVsyMTYrKG09MHxhW2Y+PjJdKT4+Ml09bCxhW2wrKHA8PDIpPj4yXT1hW20rMTkyPj4yXX1mdW5jdGlvbiBaVShsLGMpe2N8PTA7dmFyIHAsbSxBLHcsYixmPTA7Yj1s''@;'; put 'put ''ZSxsZT1sZSsxNnwwLG09Yis4fDAscD1iLCgwfChmPTB8YVsodz04KyhsfD0wKXwwKT4+Ml0pKT09KDB8YVs0KyhsPTB8YVsoQT1sKzR8MCk+PjJdKT4+Ml0pJiYoKGY9MHxhW2wrMTI+PjJdKXx8KChmPTB8dnIoMTYpKXx8JHIoMSw5ODk2OSxwKSxhW2YrOD4+Ml09YVtBPj4yXSxhW2YrMTI+''@;'; put 'put ''PjJdPTAsbD0wfHZyKDRlNiksYVtmPj4yXT1sLGx8fCgkcigxLDg4Mzc3LG0pLGw9MHxhW2Y+PjJdKSxhW2YrND4+Ml09bCs0ZTYsYVsxMisoMHxhW0E+PjJdKT4+Ml09ZiksYVtBPj4yXT1mLGFbdz4+Ml09Zj0wfGFbZj4+Ml0pLGZlWzE1NysoMHxhW2MrMTY+PjJdKT4+MF09MSsoMHxYdFsx''@;'; put 'put ''OTM3NzBdKSxhW3c+PjJdPWYrNCxhW2Y+PjJdPWMsbGU9Yn1mdW5jdGlvbiBESChsKXt2YXIgZixwLG0sYz0wLEE9MDtyZXR1cm4oMHwoYz0wfGFbKG09OCsobHw9MCl8MCk+PjJdKSk9PSgwfGFbKHA9MHxhWyhmPWwrNHwwKT4+Ml0pPj4yXSk/KDB8cCk9PSgwfGFbbD4+Ml0pP2M9MDooYVtm''@;'; put 'put ''Pj4yXT1jPTB8YVtwKzg+PjJdLGFbbT4+Ml09Yz0wfGFbYys0Pj4yXSxBPTQpOkE9NCw0PT0oMHxBKSYmKGFbbT4+Ml09Yz1jKy00fDAsYz0wfGFbYz4+Ml0pLDB8Y31mdW5jdGlvbiBMSChsLGMpe2N8PTA7dmFyIGYscCxtPTA7YVsobT0yMzIrKHA9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4y''@;'; put 'put ''XT0xKygwfGFbbT4+Ml0pLGZlWzE1NysobT0wfGFbYysxNj4+Ml0pPj4wXT0wfGZlWzE5Mzc3MF0sZj1tKzE2OHwwLChsPTB8YVs0Njc5M10pPyhhW2Y+PjJdPWwsYVsxNjQrKDB8YVtsKzE2Pj4yXSk+PjJdPWMpOihhW2Y+PjJdPTAsYVtwKzE5Mj4+Ml09YyksYVs0Njc5M109YyxhW20rMTY0''@;'; put 'put ''Pj4yXT0wfWZ1bmN0aW9uIFUzKGwpe3ZhciBmLEEsYz0wLHA9MCxtPTAsdz0wO2Y9KEE9KDB8KG09MHxhWzIzNisoMHxhWyhwPTE2Kyh3PTB8YVsoMz09KDB8KGM9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKXwwKT4+Ml0pPj4yXSkpPCgwfChjPTB8YVsyMzYrKDB8YVsxNiso''@;'; put 'put ''MHxhWygyPT0oMHxjKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKSk/YzptLHA9KHc9MHxhWzE5NisoMHxhWzE2KygwfHlhKHcpKT4+Ml0pPj4yXSkrKGFbMjMyKygwfGFbcD4+Ml0pPj4yXTw8NikrNHwwLGM9QT9tOmM7ZTpmb3IoO2M9YysxfDAsISgoMHxjKT49KDB8ZikpOyl7c3dp''@;'; put 'put ''dGNoKDB8ZmVbMTU2KyhtPTB8YVsxNisoMHxhWygwfGFbcD4+Ml0pKyhjPDwyKT4+Ml0pPj4yXSk+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDE6YnJlYWs7ZGVmYXVsdDpjb250aW51ZSBlfWlmKDB8YVttKzEwND4+Ml0pYnJlYWt9aWYoKDB8Yyk9PSgwfGYpKWRve2ZlWzExMysodz0wfGFb''@;'; put 'put ''bCsxNj4+Ml0pPj4wXT0xLGw9MHxhW3crMTcyPj4yXX13aGlsZSgwIT0oMHxsKSl9ZnVuY3Rpb24gelUobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IoMHxpdFsyMzYrKGw9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSYmUHIoODg0MzQsODg0MTcsMTkwLDg4NDUzKSxjPTMrKDB8aXRb''@;'; put 'put ''bCsyMzg+PjFdKXwwLGM9NjQrKGw9KGw9MHxhW2wrMTk2Pj4yXSk/MHxWMChsLGM8PDYpOjB8UW4oYzw8NikpfDAsYVsxOTYrKGw9MHxhW20+PjJdKT4+Ml09YyxsPTB8aXRbbCsyMzg+PjFdOyEoKDB8bCk8PS0xKTspe2Y9YysobDw8Nil8MCxsPWMrKChwPWwrLTF8MCk8PDYpfDAsYz1mKzY0''@;'; put 'put ''fDA7ZG97YVtmPj4yXT1hW2w+PjJdLGY9Zis0fDAsbD1sKzR8MH13aGlsZSgoMHxmKTwoMHxjKSk7bD1wLGM9MHxhWzE5NisoMHxhW20+PjJdKT4+Ml19YVtjKyhsPDw2KSs4Pj4yXT0wLGFbYysobDw8Nik+PjJdPTAsZj0wfHZyKDgpLGFbKHA9MHxhWzE5NisobT0wfGFbbT4+Ml0pPj4yXSkr''@;'; put 'put ''KGw8PDYpKzEyPj4yXT1mLGFbcCsobDw8NikrND4+Ml09ZixhW3ArKGw8PDYpKzU2Pj4yXT0wLF9bcCsobDw8NikrMjQ+PjNdPTEsX1twKyhsPDw2KSsxNj4+M109MSxfW3ArKGw8PDYpKzQwPj4zXT0xLF9bcCsobDw8NikrMzI+PjNdPTEsaXRbKG09bSsyMzZ8MCk+PjFdPSgwfGl0W20+PjFd''@;'; put 'put ''KS0xPDwxNj4+MTZ9ZnVuY3Rpb24gSHUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wOzB8YVs5NisoMHxhWyh3PTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSYmKE09bCs0OHwwLGI9MHx5YSgwfGFbKDM9PSgzJmFbbD4+Ml18MCk/''@;'; put 'put ''bDpNKSs0MD4+Ml0pLGM9MHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpNKSs0MD4+Ml0pPj4yXSk+PjJdLGs9MHxmdW5jdGlvbiBWbGUobCxjKXt2YXIgdyxiLGssRCxSLGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKFI9bGUsbGU9bGUrMzJ8MCxtPVIrNHwwLEE9Uix3''@;'; put 'put ''PTB8YVsobD0wfGFbMTk2KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSsoKE09KDB8YVsyMzIrKDB8YVsxNisocD0wfGFbKDM9PSgwfChmPTMmYVsoY3w9MCk+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLTF8MCk8PDYpKzQ+PjJdLGw9MHxhW2wrKE08PDYpPj4yXSxhWyhNPTgr''@;'; put 'put ''KGs9Uis4fDApfDApPj4yXT0tMSxhW2s+PjJdPS0xLGFbKEQ9aysxMnwwKT4+Ml09bCxhWyhiPWsrNHwwKT4+Ml09bCxNSihwLDB8YVsoMj09KDB8Zik/YzpjKy00OHwwKSs0MD4+Ml0sbSxBKSxtPTB8YVttPj4yXSxBPTB8YVtBPj4yXSxmPTAscD1sLGM9LTE7ISgoMHxmKT49KDB8cCl8fChw''@;'; put 'put ''PXArLTF8MCxGTigwfGFbdysoZjw8Mik+PjJdLGssbSxBKSwoMHxmKSE9KDB8cCkmJkZOKDB8YVt3KyhwPDwyKT4+Ml0sayxtLEEpLGw9MHxhW2I+PjJdLGM9MHxhW2s+PjJdLChsLWN8MCk8MikpOylmPWYrMXwwO3JldHVybiBsZT1SLDB8KChsPSgwfGMpPigwfGwpPygwfGFbRD4+Ml0pKygw''@;'; put 'put ''fGFbTT4+Ml0pfDA6bCtjfDApKzF8MCkvMn0oYixsKSxwPShBPTB8YVthWyhtPTB8YVsxOTYrKGY9MHxhWyhEPWIrMTZ8MCk+PjJdKT4+Ml0pKygoUj1jKy0xfDApPDw2KSs0Pj4yXT4+Ml0pPytfWzI0KygwfGFbQSsxNj4+Ml0pPj4zXS0rX1ttKyhSPDw2KSsxNj4+M106K19bbSsoYzw8Nikr''@;'; put 'put ''MjQ+PjNdKyArX1syNCsoMHxhWzE2KygwfGFbYVttKyhjPDw2KSs0Pj4yXT4+Ml0pPj4yXSk+PjNdKyArKDB8YVtmKzI1Mj4+Ml0pLGM9MHxmdW5jdGlvbiBqbGUobCxjLGYpe2Z8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKHA9KG09MHxhWzE5NisoMHxhWyhBPTE2KyhsfD0wKXww''@;'; put 'put ''KT4+Ml0pPj4yXSkrKChjfD0wKTw8Nil8MCxtPShtPTB8YVttKyhjPDw2KSs0Pj4yXSk/MHxWMChtLDgrKGFbcD4+Ml08PDIpfDApOjB8UW4oOCsoYVtwPj4yXTw8Mil8MCksYVsocD0wfGFbMTk2KygwfGFbQT4+Ml0pPj4yXSkrKGM8PDYpKzQ+PjJdPW0scD0wfGFbcCsoYzw8Nik+PjJdOyEo''@;'; put 'put ''KDB8cCk8PSgwfGYpKTspYVttKyhwPDwyKT4+Ml09Yj0wfGFbbSsoKHc9cCstMXwwKTw8Mik+PjJdLGFbKGI9MjM2KygwfGFbYisxNj4+Ml0pfDApPj4yXT0xKygwfGFbYj4+Ml0pLHA9dztyZXR1cm4gdz0wfFVoKGwpLGFbKGI9bSsoZjw8Mil8MCk+PjJdPXcsYVsyMzYrKHc9MHxhW3crMTY+''@;'; put 'put ''PjJdKT4+Ml09ZixhW3crMjMyPj4yXT1jLGFbKEE9KDB8YVsxOTYrKDB8YVtBPj4yXSk+PjJdKSsoYzw8Nil8MCk+PjJdPXc9MSsoMHxhW0E+PjJdKXwwLGFbbSsodzw8Mik+PjJdPTAsMHxhW2I+PjJdfShiLFIsaykscT0rX1syNCsoYj0wfGFbOTYrKDB8YVt3Pj4yXSk+PjJdKT4+M10sRz0r''@;'; put 'put ''X1tiKzMyPj4zXSxfWzgwKyhmPTB8YVsobT1jKzE2fDApPj4yXSk+PjNdPXBlPSh3PTA9PSgxJmFbMTE2KygwfGFbRD4+Ml0pPj4yXXwwKSk/RzpxLGs9fn4oLjUqcGUpLF9bZis5Nj4+M109Rz0uNSoodz9xOkcpLF9bZis4OD4+M109RyxhW2YrMTA0Pj4yXT1iLF9bZisyND4+M109KyhrK35+''@;'; put 'put ''cHwwKSxmPTB8SmMoYywwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpNKSs0MD4+Ml0sbCksX1sxNisoZj0wfGFbZisxNj4+Ml0pPj4zXT0tK19bODgrKDB8YVttPj4yXSk+PjNdLF9bZis1Nj4+M109K19bOTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6TSkrNDA+PjJdKT4+Ml0p''@;'; put 'put ''Pj4zXSxmZVtmKzExMj4+MF09NCxmPWwrLTQ4fDAsYz0wfEpjKGMsMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdLGwpLF9bMTYrKGM9MHxhW2MrMTY+PjJdKT4+M109K19bOTYrKG09MHxhW20+PjJdKT4+M10sX1tjKzU2Pj4zXT0rX1s4OCsoMHxhWzE2KygwfGFbKDI9PSgzJmFb''@;'; put 'put ''bD4+Ml18MCk/bDpmKSs0MD4+Ml0pPj4yXSk+PjNdLGZlW2MrMTEyPj4wXT00LCtfWyhmPShjPTB8YVsxOTYrKDB8YVtEPj4yXSk+PjJdKSsoUjw8NikrMTZ8MCk+PjNdPChwPSsoMHxrKSkmJihfW2Y+PjNdPXApLCtfWyhjPWMrKFI8PDYpKzI0fDApPj4zXTxwJiYoX1tjPj4zXT1wKSxhW20r''@;'; put 'put ''MTEyPj4yXT1sKX1mdW5jdGlvbiBPSChsLGMsZil7Y3w9MCxmfD0wO3ZhciBrLHEsZ2UsYmUsT2UsUmUsSGUscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MCxHPTAscGU9MCxMZT0wO0hlPWxlLGxlPWxlKzE2MHwwLGJlPUhlKzIwfDAsZ2U9SGUrMTZ8MCxrPUhlLE09SGUrMzJ8MCxP''@;'; put 'put ''ZT0wfGFbMTUyKyhsfD0wKT4+Ml0sYVsoTGU9SGUrMjR8MCk+PjJdPTAsYVtiZT4+Ml09MCxhW2dlPj4yXT0wLFJlPTB8eGYobCksYVtSZSs0Pj4yXT0zLGFbUmUrOD4+Ml09YyxhW1JlKzEyPj4yXT05LDB8KGI9MHxhWzk2KygwfGFbKHE9YysxNnwwKT4+Ml0pPj4yXSkmJjA9PSgwfGZlW2Ir''@;'; put 'put ''ODI+PjBdKSYmKDB8bmcoMHxMaShjLDEwMDEwNSksMCkpPDwyND4+MjQmJihpdFsoYj1SZSsyNjB8MCk+PjFdPTUxMnxpdFtiPj4xXSksMHxmJiYwfGFbOCsoMHxhW3E+PjJdKT4+Ml0mJmQyKGwsZiksMHwoZj0wfGFbNDcyMDZdKSYmMHwocD0wfEhvKGMsZikpJiYwfGZlW3A+PjBdJiZ4aChs''@;'; put 'put ''LCtNbChjLDB8YVs0NzIwNl0sMSwwKSk7ZG97aWYoMTY3NzcyMTYmT2V8MCl7aWYoZj1jKzQ4fDAsKDB8aHJbMTc4KygwfGFbMTYrKDB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKSk+PjJdKT4+MV0pPjIpe19bUmUrMTc2Pj4zXT0rKDB8fn4oKHc9NzIqK19bMTYrKDB8''@;'; put 'put ''YVsxMzIrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6ZikrNDA+PjJdKT4+Ml0pPj4yXSk+PjNdKSsodz49MD8uNTotLjUpKSksX1tSZSsxODQ+PjNdPSsoMHx+figodz03MiorX1sxNisoMHxhWzEzMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0''@;'; put 'put ''MD4+Ml0pPj4yXSk+PjJdKT4+M10pKyh3Pj0wPy41Oi0uNSkpKTticmVha31hWyhiPVJlKzE3NnwwKT4+Ml09MCxhW2IrND4+Ml09MCxhW2IrOD4+Ml09MCxhW2IrMTI+PjJdPTA7YnJlYWt9fXdoaWxlKDApO2lmKDMyNzY4Jk9lfDAmJigoZj0wfGFbOTYrKGI9MHxhW3E+PjJdKT4+Ml0pP2Fb''@;'; put 'put ''UmUrMTkyPj4yXT1mPTB8YVtmPj4yXTpmPTB8YVtSZSsxOTI+PjJdLGFbKHA9UmUrMTk2fDApPj4yXT1mLGFbKEE9UmUrMjA0fDApPj4yXT1mLGFbKG09UmUrMjAwfDApPj4yXT1mLDB8KGY9MHxhW2IrMTA4Pj4yXSkmJihhW3A+PjJdPWFbZj4+Ml0pLDB8KGY9MHxhW2IrMTA0Pj4yXSkmJihh''@;'; put 'put ''W20+PjJdPWFbZj4+Ml0pLDB8KGY9MHxhW2IrMTAwPj4yXSkmJihhW0E+PjJdPWFbZj4+Ml0pKSw2NTUzNiZPZSl7dXMoaywxMjgsTSksYVtSZSsyMTI+PjJdPTB8bTIoMHx3RihsLGMsayksYyksQzIoayksMCE9KDB8KGY9MHxMaShjLDE0MTA1NSkpKSYmMCE9KDB8ZmVbZj4+MF0pfHwwIT0o''@;'; put 'put ''MHwoZj0wfExpKGMsMTExNDc3KSkpJiYwIT0oMHxmZVtmPj4wXSk/RD0zMTpwPTAsMzE9PSgwfEQpJiYocD0wfG0yKGYsYykpLEQ9MCE9KDB8KGY9MHxMaShjLDEwMDExOCkpKSYmMCE9KDB8ZmVbZj4+MF0pPzM2OjM0O2Rve2lmKDM0PT0oMHxEKSl7aWYoMHwoZj0wfExpKGMsMTAwMTI3KSkm''@;'; put 'put ''JjB8ZmVbZj4+MF0pe0Q9MzY7YnJlYWt9MHxwJiYoZj0wfHJhKHApLEQ9MzkpfX13aGlsZSgwKTszNj09KDB8RCkmJihmPTB8bTIoZixjKSxEPTM5KSwzOT09KDB8RCkmJihhW1JlKzIwOD4+Ml09ZiksRD0wIT0oMHwoZj0wfExpKGMsMTAwMTM1KSkpJiYwIT0oMHxmZVtmPj4wXSk/NDQ6NDI7''@;'; put 'put ''ZG97aWYoNDI9PSgwfEQpKXtpZigwfChmPTB8TGkoYywxMDAxNDUpKSYmMHxmZVtmPj4wXSl7RD00NDticmVha30wfHAmJihmPTB8cmEocCksRD00Nyl9fXdoaWxlKDApOzQ0PT0oMHxEKSYmKGY9MHxtMihmLGMpLEQ9NDcpLDQ3PT0oMHxEKSYmKGFbUmUrMjE2Pj4yXT1mKSxEPTAhPSgwfChm''@;'; put 'put ''PTB8TGkoYywxMDAxNTQpKSkmJjAhPSgwfGZlW2Y+PjBdKT81Mjo1MDtkb3tpZig1MD09KDB8RCkpe2lmKDB8KGY9MHxMaShjLDEwMDE2MykpJiYwfGZlW2Y+PjBdKXtEPTUyO2JyZWFrfTB8cCYmKGFbUmUrMjIwPj4yXT0wfHJhKHApKX19d2hpbGUoMCk7NTI9PSgwfEQpJiYoYVtSZSsyMjA+''@;'; put 'put ''PjJdPTB8bTIoZixjKSxpdFsoRD1SZSsyNjB8MCk+PjFdPTEyOHxpdFtEPj4xXSksRD0wIT0oMHwoZj0wfExpKGMsMTAwMTcxKSkpJiYwIT0oMHxmZVtmPj4wXSk/NTk6NTc7ZG97aWYoNTc9PSgwfEQpKXtpZigwfChmPTB8TGkoYywxMDAxODApKSYmMHxmZVtmPj4wXSl7RD01OTticmVha30w''@;'; put 'put ''fHAmJihhW1JlKzIyND4+Ml09MHxyYShwKSl9fXdoaWxlKDApOzU5PT0oMHxEKSYmKGFbUmUrMjI0Pj4yXT0wfG0yKGYsYyksaXRbKEQ9UmUrMjYwfDApPj4xXT0yNTZ8aXRbRD4+MV0pLG09cH1lbHNlIG09MDtkb3tpZig4Mzg4NjA4Jk9lKXtpZihwPTAhPSgwfChmPTB8TGkoYywxNDEwODgp''@;'; put 'put ''KSkmJjAhPSgwfGZlW2Y+PjBdKT8wfG0yKGYsYyk6MCwwIT0oMHwoZj0wfExpKGMsMTAwMTg4KSkpJiYwIT0oMHxmZVtmPj4wXSk/KGl0WyhEPVJlKzI2MHwwKT4+MV09NjR8aXRbRD4+MV0sZj0wfG0yKGYsYyksRD03Mik6RD03MCw3MD09KDB8RCkmJjB8cCYmKGY9MHxyYShwKSxEPTcyKSw3''@;'; put 'put ''Mj09KDB8RCkmJihhW1JlKzI0ND4+Ml09ZiksMCE9KDB8KGY9MHxMaShjLDEwMDE5OSkpKSYmMCE9KDB8ZmVbZj4+MF0pPyhmPTB8bTIoZixjKSxEPTc4KTpEPTc2LDc2PT0oMHxEKSYmMHxwJiYoZj0wfHJhKHApLEQ9NzgpLDc4PT0oMHxEKSYmKGFbUmUrMjQ4Pj4yXT1mKSwwIT0oMHwoZj0w''@;'; put 'put ''fExpKGMsMTAwMjExKSkpJiYwIT0oMHxmZVtmPj4wXSk/KGFbUmUrMjUyPj4yXT0wfG0yKGYsYyksaXRbKE09UmUrMjYwfDApPj4xXT0xNnxpdFtNPj4xXSk6RD04Miw4Mj09KDB8RCkmJjB8cCYmKGFbUmUrMjUyPj4yXT0wfHJhKHApKSwwfChmPTB8TGkoYywxMDAyMjIpKSYmMHxmZVtmPj4w''@;'; put 'put ''XSl7aXRbKEQ9UmUrMjYwfDApPj4xXT0zMnxpdFtEPj4xXSxhW1JlKzI1Nj4+Ml09MHxtMihmLGMpO2JyZWFrfXA/YVtSZSsyNTY+PjJdPTB8cmEocCk6cD0wfWVsc2UgcD0wfXdoaWxlKDApO2Rve2lmKDQxOTQzMDQmT2V8MCl7RD0wIT0oMHwoZj0wfExpKGMsMTQxMTAxKSkpJiYwIT0oMHxm''@;'; put 'put ''ZVtmPj4wXSk/OTQ6OTI7ZG97aWYoOTI9PSgwfEQpKXtpZigwfChmPTB8TGkoYywxMDAyMzMpKSYmMHxmZVtmPj4wXSl7RD05NDticmVha30wfChmPTB8YVtSZSsxOTI+PjJdKSYmKGFbUmUrMjI4Pj4yXT0wfHJhKGYpKX19d2hpbGUoMCk7aWYoOTQ9PSgwfEQpJiYoTT0wfEE3KGYsYyksYVtS''@;'; put 'put ''ZSsyMjg+PjJdPTB8bTIoTSxjKSxGdChNKSxpdFsoTT1SZSsyNjB8MCk+PjFdPTF8aXRbTT4+MV0pLDAhPSgwfChmPTB8TGkoYywxMDAyNDUpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oTT0wfEE3KGYsYyksYVtSZSsyMzI+PjJdPTB8bTIoTSxjKSxGdChNKSxpdFsoTT1SZSsyNjB8MCk+PjFdPTh8''@;'; put 'put ''aXRbTT4+MV0pOkQ9MTAwLDEwMD09KDB8RCkmJjB8KFI9MHxhW1JlKzE5Mj4+Ml0pJiYoYVtSZSsyMzI+PjJdPTB8cmEoUikpLDAhPSgwfChmPTB8TGkoYywxMDAyNTgpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oUj0wfEE3KGYsYyksYVtSZSsyMzY+PjJdPTB8bTIoUixjKSxGdChSKSxpdFsoUj1S''@;'; put 'put ''ZSsyNjB8MCk+PjFdPTJ8aXRbUj4+MV0pOkQ9MTA1LDEwNT09KDB8RCkmJjB8KEc9MHxhW1JlKzIwMD4+Ml0pJiYoYVtSZSsyMzY+PjJdPTB8cmEoRykpLDB8KGY9MHxMaShjLDEwMDI3MCkpJiYwfGZlW2Y+PjBdKXtHPTB8QTcoZixjKSxhW1JlKzI0MD4+Ml09MHxtMihHLGMpLEZ0KEcpLGl0''@;'; put 'put ''WyhHPVJlKzI2MHwwKT4+MV09NHxpdFtHPj4xXTticmVha30wfChmPTB8YVtSZSsyMDQ+PjJdKSYmKGFbUmUrMjQwPj4yXT0wfHJhKGYpKX19d2hpbGUoMCk7RnQobSksRnQocCk7ZG97aWYoNDI1OTg0MCZPZXwwJiYwfChwZT0wfGFbOCsoMHxhW3E+PjJdKT4+Ml0pKXtpZigwfGFbUmUrMjA4''@;'; put 'put ''Pj4yXSl7aWYoISg1MjQyODgmT2UpKWJyZWFrfWVsc2UgaWYoMD09KDUyNDI4OCZPZXwwKXwwPT0oMHxhW1JlKzIyOD4+Ml0pKWJyZWFrO2Zvcih3PSh3PS41KitfWzE1MisoMHxhW2wrMTY+PjJdKT4+M10pPjI/dzoyLHA9MHxhW3BlKzQ+PjJdLGY9MDshKCgwfGYpPj0oMHxwKSk7KVBIKExl''@;'; put 'put ''LGJlLGdlLCgwfGFbcGU+PjJdKSsoNDgqZnwwKXwwLHcpLGY9ZisxfDA7aWYoYVtSZSsyNzY+PjJdPW09MHxhW2dlPj4yXSxhW1JlKzI4MD4+Ml09QT0wfGFbYmU+PjJdLDgxOTImT2UpZj0wfGFbTGU+PjJdO2Vsc2V7Zm9yKGY9MCxwPTA7ISgoMHxwKT49KDB8bSkpOylmPSgwfGFbQSsocDw8''@;'; put 'put ''Mik+PjJdKStmfDAscD1wKzF8MDtNaChsLExlPTB8YVtMZT4+Ml0sTGUsZiksZj1MZX1hW1JlKzI4ND4+Ml09ZixhW1JlKzI2ND4+Ml09MixhW1JlKzI3Mj4+Ml09ZixhW1JlKzI2OD4+Ml09YVtBPj4yXX19d2hpbGUoMCk7KGZ1bmN0aW9uIEEzKGwsYyl7Y3w9MDt2YXIgZj0wOzB8KGM9MHxh''@;'; put 'put ''WzYwKyhsfD0wKT4+Ml0pJiYwfChmPTB8YVtjKzY0Pj4yXSkmJkNvWzEyNyZmXShsKX0pKGwsYyksMD09KDB8KGY9MHxhW1JlKzIwOD4+Ml0pKSYmISgxJml0W1JlKzI2MD4+MV0pfHxHMShsLGYsMHxhW1JlKzIyOD4+Ml0sMHxhW1JlKzI0ND4+Ml0sMHxhW1JlKzIxMj4+Ml0pLGxlPUhlfWZ1''@;'; put 'put ''bmN0aW9uIEdVKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgT2UsTGUsUmUscWUscnQsV2UsYXQsU3Qsa3Qsc3QsY3QsYnQsYW4sdXIscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxIZT0wLFZlPTAsRXQ9MCxadD0wLFNuPTAsSG49''@;'; put 'put ''MCxIcj0wLEVyPTAsZnI9MDt1cj1sZSxsZT1sZSsyNDB8MCxidD11cisyMjR8MCxjdD11cisyMDh8MCxMZT11cisxMjh8MCxPZT11cisxMTJ8MCxIbj11cis2NHwwLHJ0PXVyKzQ4fDAsV2U9dXIrMzJ8MCxTdD11cixrdD11cisxOTJ8MCxzdD11cisxNzZ8MCxSZT11cisxNjB8MCxxZT11cisx''@;'; put 'put ''NDR8MCxhWyhhdD11cisxNnwwKT4+Ml09MCxhW2F0KzQ+PjJdPTAsYVthdCs4Pj4yXT0wLGFbYXQrMTI+PjJdPTAsYW49K19bMTUyKygwfGFbbCsxNj4+Ml0pPj4zXSxMOSgwfExpKGMsMTAwMDMyKSksWnQ9YysxNnwwO2U6ZG97aWYoMHxhWzgrKDB8YVtadD4+Ml0pPj4yXSl7U249K01sKGMs''@;'; put 'put ''MHxhWzQ3MTg4XSwxLDApLHc9MHx2MihjLDB8YVs0NzE3Nl0sMTk1MDU5KSxiZT0wIT0oMHxmKTt0OmRve2lmKGJlKWZvcihwPWY7Oyl7aWYobT1wLHA9cCs0fDAsIShtPTB8YVttPj4yXSkpe009MDticmVhayB0fWlmKDExNj09KDB8ZmVbbT4+MF0pJiYhKDB8WmkobSwxMTExMTcpKSl7TT0x''@;'; put 'put ''O2JyZWFrfX1lbHNlIE09MH13aGlsZSgwKTtBPXcsUj0wLG09MDt0OmZvcig7Oyl7c3dpdGNoKDB8ZmVbQT4+MF0pe2Nhc2UgMDpicmVhayB0O2Nhc2UgNTg6cD1SKzF8MDticmVhaztjYXNlIDU5OnA9UixtPW0rMXwwO2JyZWFrO2RlZmF1bHQ6cD1SfUE9QSsxfDAsUj1wfWlmKDAhPSgwfG0p''@;'; put 'put ''JihrPTAhPSgwfFIpKSl7aWYoISgwfFFVKGwsYyxmLHcsUisxfDAsU24sYW4pKSlicmVhaztiPTEzNzMxNH1lbHNlIGI9dztpZigxJihwPTB8WHRbMTE1KygwfGFbWnQ+PjJdKT4+MF0pPyhBPTEwNjI0OCxwPTEwNjI0MCx3PTE4ODcxMixtPTE4ODcxMixEPTE4KToyJnA/KEE9MTA2MjY0LHA9''@;'; put 'put ''MTA2MjU2LHc9MTg4NzEyLG09MTg4NzEyLEQ9MTgpOjgmcD8oQT0xMDYyODAscD0xMDYyNzIsdz0xODg3MTIsbT0xODg3MTIsRD0xOCk6NCZwPyhBPTEwNjI5NixwPTEwNjI4OCx3PTE4ODcxMixtPTE4ODcxMixEPTE4KToobT1iLEE9MHxCYShjLDB8YVs0NzE3N10sYikpLDE4PT0oMHxEKSYm''@;'; put 'put ''KG09MHxCYShjLG09MHxhW20+PjJdLDB8VkkoYixwKSkscD0wfEJhKGMsMHxhW3c+PjJdLEEpLCgwfG0pPT0oMHxiKT8obT1iLEE9cCk6KG1hKGwsbSksQT1wKSksKDB8QSkhPSgwfGIpJiZobChsLEEpLE08PDI0Pj4yNCl7bT0wPT0oMHxmZVttPj4wXSk/MTM3MzE0Om0scD0wPT0oMHxmZVtB''@;'; put 'put ''Pj4wXSk/MTM3MzE0OkEsbWEobCwxMzczNzkpLGhsKGwsbSksRz0wfGFbYVs4KygwfGFbWnQ+PjJdKT4+Ml0+PjJdLHE9KGdlPUhuKSs0OHwwO2Rve2FbZ2U+PjJdPWFbRz4+Ml0sZ2U9Z2UrNHwwLEc9Rys0fDB9d2hpbGUoKDB8Z2UpPCgwfHEpKTtpZihadD0wfGZsZShIbiwwfFE1KGMpLGFu''@;'; put 'put ''LDAsMCksa2EobCwwfGFbWnQrOD4+Ml0sMHxhW1p0Pj4yXSwxKSxzdmUoWnQpLG1hKGwsbSksKDB8cCkhPSgwfG0pJiZobChsLHApLDB8KHA9MHxhW0huKzg+PjJdKSYmKFp0PTB8YVtIbj4+Ml0sYVtjdD4+Ml09YVsoRXQ9SG4rMTZ8MCk+PjJdLGFbY3QrND4+Ml09YVtFdCs0Pj4yXSxhW2N0''@;'; put 'put ''Kzg+PjJdPWFbRXQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtFdCsxMj4+Ml0sYVtidD4+Ml09YVtadD4+Ml0sYVtidCs0Pj4yXT1hW1p0KzQ+PjJdLGFbYnQrOD4+Ml09YVtadCs4Pj4yXSxhW2J0KzEyPj4yXT1hW1p0KzEyPj4yXSxRZChsLDIsY3QsYnQsU24sYW4scCkpLCEocD0wfGFbSG4rMTI+''@;'; put 'put ''PjJdKSlicmVhaztadD1IbiszMnwwLEhuPSgwfGFbSG4+PjJdKSsoKDB8YVtIbis0Pj4yXSktMTw8NCl8MCxhW2N0Pj4yXT1hW1p0Pj4yXSxhW2N0KzQ+PjJdPWFbWnQrND4+Ml0sYVtjdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbWnQrMTI+PjJdLGFbYnQ+PjJdPWFbSG4+PjJd''@;'; put 'put ''LGFbYnQrND4+Ml09YVtIbis0Pj4yXSxhW2J0Kzg+PjJdPWFbSG4rOD4+Ml0sYVtidCsxMj4+Ml09YVtIbisxMj4+Ml0sUWQobCwzLGN0LGJ0LFNuLGFuLHApO2JyZWFrfWlmKHA9MHxhW1p0Pj4yXSwhayl7ZG97aWYoISgzJmZlW3ArMTE1Pj4wXSkpe2lmKDB8ZmVbbT4+MF0pe21hKGwsbSks''@;'; put 'put ''aGwobCxBKTticmVha31pZihtYShsLDEzNzMxNCksMHxmZVtBPj4wXSl7aGwobCxBKTticmVha31obChsLDEzNzMxNCk7YnJlYWt9fXdoaWxlKDApO2Zvcih3PWwrMTUyfDAsYj1Ibis0fDAsaz1Ibis4fDAsTT1IbisxMnwwLEQ9SG4rMzJ8MCxSPUhuKzE2fDAsQT0wOzspe2lmKCgwfEEpPj0o''@;'; put 'put ''MHxhWzQrKHA9MHxhWzgrKDB8YVtadD4+Ml0pPj4yXSk+PjJdKSlicmVhayBlO0c9KDB8YVtwPj4yXSkrKDQ4KkF8MCl8MCxxPShnZT1IbikrNDh8MDtkb3thW2dlPj4yXT1hW0c+PjJdLGdlPWdlKzR8MCxHPUcrNHwwfXdoaWxlKCgwfGdlKTwoMHxxKSk7cD0wfGFbSG4+PjJdLG09MHxhW2I+''@;'; put 'put ''PjJdO2Rve2lmKDE2Mzg0JmFbdz4+Ml0pUWYobCxwLG0sMHxhW2s+PjJdLDB8YVtNPj4yXSwwKTtlbHNlIGlmKFFmKGwscCxtLDAsMCwwKSwwfChwPTB8YVtrPj4yXSkmJihFdD0wfGFbSG4+PjJdLGFbY3Q+PjJdPWFbUj4+Ml0sYVtjdCs0Pj4yXT1hW1IrND4+Ml0sYVtjdCs4Pj4yXT1hW1Ir''@;'; put 'put ''OD4+Ml0sYVtjdCsxMj4+Ml09YVtSKzEyPj4yXSxhW2J0Pj4yXT1hW0V0Pj4yXSxhW2J0KzQ+PjJdPWFbRXQrND4+Ml0sYVtidCs4Pj4yXT1hW0V0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbRXQrMTI+PjJdLFFkKGwsMixjdCxidCxTbixhbixwKSksMHwocD0wfGFbTT4+Ml0pJiYoRXQ9KDB8YVtI''@;'; put 'put ''bj4+Ml0pKygoMHxhW2I+PjJdKS0xPDw0KXwwLGFbY3Q+PjJdPWFbRD4+Ml0sYVtjdCs0Pj4yXT1hW0QrND4+Ml0sYVtjdCs4Pj4yXT1hW0QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtEKzEyPj4yXSxhW2J0Pj4yXT1hW0V0Pj4yXSxhW2J0KzQ+PjJdPWFbRXQrND4+Ml0sYVtidCs4Pj4yXT1hW0V0''@;'; put 'put ''Kzg+PjJdLGFbYnQrMTI+PjJdPWFbRXQrMTI+PjJdLFFkKGwsMyxjdCxidCxTbixhbixwKSksKDB8YVs0KygwfGFbOCsoMHxhW1p0Pj4yXSk+PjJdKT4+Ml0pPjEpe2lmKDB8YVtrPj4yXSl7aWYoIWJlKWJyZWFrfWVsc2UgaWYoIShiZSYwIT0oMHxhW00+PjJdKSkpYnJlYWs7ZDIobCxmKX19''@;'; put 'put ''d2hpbGUoMCk7QT1BKzF8MH19Zm9yKEhlPTB8RjAoVmU9NDgqKEV0PTB8YVs0KygwfGFbcCs4Pj4yXSk+PjJdKXwwKSxWZT0wfEYwKFZlKSxwZT0uNSorKFIrMnwwKSxiZT1Ibis0fDAsRD1ydCs4fDAsUj1XZSs4fDAsYz1hdCs4fDAsZj1TdCs4fDAsTT0wOyEoKDB8TSk+PSgwfEV0KSk7KXtH''@;'; put 'put ''PSgwfGFbYVs4KygwfGFbWnQ+PjJdKT4+Ml0+PjJdKSsoNDgqTXwwKXwwLHE9KGdlPUhuKSs0OHwwO2Rve2FbZ2U+PjJdPWFbRz4+Ml0sZ2U9Z2UrNHwwLEc9Rys0fDB9d2hpbGUoKDB8Z2UpPCgwfHEpKTtmb3IoYVtIZSsoNDgqTXwwKSs0Pj4yXT1wPTB8YVtiZT4+Ml0sYVtWZSsoNDgqTXww''@;'; put 'put ''KSs0Pj4yXT1wLGI9MHxGMChrPXA8PDQpLGFbSGUrKDQ4Kk18MCk+PjJdPWIsaz0wfEYwKGspLGFbVmUrKDQ4Kk18MCk+PjJdPWssYVtTdD4+Ml09YVsodz0wfGFbSG4+PjJdKT4+Ml0sYVtTdCs0Pj4yXT1hW3crND4+Ml0sYVtTdCs4Pj4yXT1hW3crOD4+Ml0sYVtTdCsxMj4+Ml09YVt3KzEy''@;'; put 'put ''Pj4yXSx3PTA7ISgoMHx3KT49KHArLTF8MCkpOylhW3J0Pj4yXT1hW1N0Pj4yXSxhW3J0KzQ+PjJdPWFbU3QrND4+Ml0sYVtydCs4Pj4yXT1hW1N0Kzg+PjJdLGFbcnQrMTI+PjJdPWFbU3QrMTI+PjJdLGFbV2U+PjJdPWFbKEE9KDB8YVtIbj4+Ml0pKygocD13KzF8MCk8PDQpfDApPj4yXSxh''@;'; put 'put ''W1dlKzQ+PjJdPWFbQSs0Pj4yXSxhW1dlKzg+PjJdPWFbQSs4Pj4yXSxhW1dlKzEyPj4yXT1hW0ErMTI+PjJdLEE9Yisodzw8NCl8MCx3PyhhW2N0Pj4yXT1hW2F0Pj4yXSxhW2N0KzQ+PjJdPWFbYXQrND4+Ml0sYVtjdCs4Pj4yXT1hW2F0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbYXQrMTI+PjJd''@;'; put 'put ''LGFbYnQ+PjJdPWFbV2U+PjJdLGFbYnQrND4+Ml09YVtXZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtidCsxMj4+Ml09YVtXZSsxMj4+Ml0sQkgoc3QsY3QsYnQpLGFbQT4+Ml09YVtzdD4+Ml0sYVtBKzQ+PjJdPWFbc3QrND4+Ml0sYVtBKzg+PjJdPWFbc3QrOD4+Ml0sYVtBKzEy''@;'; put 'put ''Pj4yXT1hW3N0KzEyPj4yXSk6KGFbY3Q+PjJdPWFbcnQ+PjJdLGFbY3QrND4+Ml09YVtydCs0Pj4yXSxhW2N0Kzg+PjJdPWFbcnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtydCsxMj4+Ml0sYVtidD4+Ml09YVtXZT4+Ml0sYVtidCs0Pj4yXT1hW1dlKzQ+PjJdLGFbYnQrOD4+Ml09YVtXZSs4Pj4y''@;'; put 'put ''XSxhW2J0KzEyPj4yXT1hW1dlKzEyPj4yXSxCSChrdCxjdCxidCksYVtBPj4yXT1hW2t0Pj4yXSxhW0ErND4+Ml09YVtrdCs0Pj4yXSxhW0ErOD4+Ml09YVtrdCs4Pj4yXSxhW0ErMTI+PjJdPWFba3QrMTI+PjJdKSxhW2F0Pj4yXT1hWyhmcj0oRXI9MHxhW0huPj4yXSkrKChxPXcrMnwwKTw8''@;'; put 'put ''NCl8MCk+PjJdLGFbYXQrND4+Ml09YVtmcis0Pj4yXSxhW2F0Kzg+PjJdPWFbZnIrOD4+Ml0sYVthdCsxMj4+Ml09YVtmcisxMj4+Ml0sYVtTdD4+Ml09YVsoRXI9RXIrKChnZT13KzN8MCk8PDQpfDApPj4yXSxhW1N0KzQ+PjJdPWFbRXIrND4+Ml0sYVtTdCs4Pj4yXT1hW0VyKzg+PjJdLGFb''@;'; put 'put ''U3QrMTI+PjJdPWFbRXIrMTI+PjJdLEhyPWIrKHA8PDQpfDAsRz1iKyhxPDw0KXwwLGFbT2U+PjJdPWFbcnQ+PjJdLGFbT2UrND4+Ml09YVtydCs0Pj4yXSxhW09lKzg+PjJdPWFbcnQrOD4+Ml0sYVtPZSsxMj4+Ml09YVtydCsxMj4+Ml0sYVtMZT4+Ml09YVtXZT4+Ml0sYVtMZSs0Pj4yXT1h''@;'; put 'put ''W1dlKzQ+PjJdLGFbTGUrOD4+Ml09YVtXZSs4Pj4yXSxhW0xlKzEyPj4yXT1hW1dlKzEyPj4yXSxhW2N0Pj4yXT1hW2ZyPj4yXSxhW2N0KzQ+PjJdPWFbZnIrND4+Ml0sYVtjdCs4Pj4yXT1hW2ZyKzg+PjJdLGFbY3QrMTI+PjJdPWFbZnIrMTI+PjJdLGFbYnQ+PjJdPWFbRXI+PjJdLGFbYnQr''@;'; put 'put ''ND4+Ml09YVtFcis0Pj4yXSxhW2J0Kzg+PjJdPWFbRXIrOD4+Ml0sYVtidCsxMj4+Ml09YVtFcisxMj4+Ml0sa29lKFJlLE9lLExlLGN0LGJ0KSxhW0c+PjJdPWFbUmU+PjJdLGFbRys0Pj4yXT1hW1JlKzQ+PjJdLGFbRys4Pj4yXT1hW1JlKzg+PjJdLGFbRysxMj4+Ml09YVtSZSsxMj4+Ml0s''@;'; put 'put ''YVtIcj4+Ml09YVtSZT4+Ml0sYVtIcis0Pj4yXT1hW1JlKzQ+PjJdLGFbSHIrOD4+Ml09YVtSZSs4Pj4yXSxhW0hyKzEyPj4yXT1hW1JlKzEyPj4yXSxfW2srKHc8PDQpPj4zXT0rX1tydD4+M10tK19bQT4+M10qcGUsX1trKyh3PDw0KSs4Pj4zXT0rX1tEPj4zXS0rX1tiKyh3PDw0KSs4Pj4z''@;'; put 'put ''XSpwZSxfW2srKHA8PDQpPj4zXT0rX1tXZT4+M10tK19bSHI+PjNdKnBlLF9baysocDw8NCkrOD4+M109K19bUj4+M10tK19bYisocDw8NCkrOD4+M10qcGUsX1trKyhxPDw0KT4+M109K19bYXQ+PjNdLStfW0c+PjNdKnBlLF9baysocTw8NCkrOD4+M109K19bYz4+M10tK19bYisocTw8NCkr''@;'; put 'put ''OD4+M10qcGUsdz1nZSxwPTB8YVtiZT4+Ml07ZnI9Yisodzw8NCl8MCxhW2N0Pj4yXT1hW2F0Pj4yXSxhW2N0KzQ+PjJdPWFbYXQrND4+Ml0sYVtjdCs4Pj4yXT1hW2F0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbYXQrMTI+PjJdLGFbYnQ+PjJdPWFbU3Q+PjJdLGFbYnQrND4+Ml09YVtTdCs0Pj4y''@;'; put 'put ''XSxhW2J0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtidCsxMj4+Ml09YVtTdCsxMj4+Ml0sQkgocWUsY3QsYnQpLGFbZnI+PjJdPWFbcWU+PjJdLGFbZnIrND4+Ml09YVtxZSs0Pj4yXSxhW2ZyKzg+PjJdPWFbcWUrOD4+Ml0sYVtmcisxMj4+Ml09YVtxZSsxMj4+Ml0sX1trKyh3PDw0KT4+M109K19b''@;'; put 'put ''U3Q+PjNdLStfW2ZyPj4zXSpwZSxfW2srKHc8PDQpKzg+PjNdPStfW2Y+PjNdLStfW2IrKHc8PDQpKzg+PjNdKnBlLE09TSsxfDB9Zm9yKGY9MCxHPW0scD1tLEE9bSxtPXE9MHxyYShtKTttPTB8bHYobSwxMDc5ODQpOyl7Zm9yKCgwfChjPTA9PSgwfGZlW20+PjBdKT8xMzczMTQ6bSkpIT0o''@;'; put 'put ''MHxBKSYmKDMmZmVbMTE1KygwfGFbWnQ+PjJdKT4+MF18fChtYShsLGMpLGhsKGwsYykpLEE9YyksYj0wPT0oMHxmKSxrPWY+Pj4wPDIsbT0wOyEoKDB8bSk+PSgwfEV0KSk7KXtmb3IoTT0wfGFbVmUrKDQ4Km18MCk+PjJdLEQ9MHxhW0hlKyg0OCptfDApPj4yXSxSPTB8YVtWZSsoNDgqbXww''@;'; put 'put ''KSs0Pj4yXSx3PTA7ISgoMHx3KT49KDB8UikpOylfWyhmcj1NKyh3PDw0KXwwKT4+M109K19bZnI+PjNdKyArX1tEKyh3PDw0KT4+M10sX1soZnI9TSsodzw8NCkrOHwwKT4+M109K19bZnI+PjNdKyArX1tEKyh3PDw0KSs4Pj4zXSx3PXcrMXwwO1FmKGwsTSxSLDAsMCwwKSxtPW0rMXwwfWY9''@;'; put 'put ''ZisxfDAsRz1iP2M6RyxwPWs/YzpwLG09MH1mb3IoKG09MHxhW0huKzg+PjJdKT8ocD8zJmZlWzExNSsoMHxhW1p0Pj4yXSk+PjBdfHwobWEobCxwKSxobChsLHApKTpwPTAsZnI9MHxhW0huPj4yXSxhW2N0Pj4yXT1hWyhFcj1IbisxNnwwKT4+Ml0sYVtjdCs0Pj4yXT1hW0VyKzQ+PjJdLGFb''@;'; put 'put ''Y3QrOD4+Ml09YVtFcis4Pj4yXSxhW2N0KzEyPj4yXT1hW0VyKzEyPj4yXSxhW2J0Pj4yXT1hW2ZyPj4yXSxhW2J0KzQ+PjJdPWFbZnIrND4+Ml0sYVtidCs4Pj4yXT1hW2ZyKzg+PjJdLGFbYnQrMTI+PjJdPWFbZnIrMTI+PjJdLFFkKGwsMixjdCxidCxTbixhbixtKSxtPXApOm09MCwwfChw''@;'; put 'put ''PTB8YVsoQT1IbisxMnwwKT4+Ml0pJiYoKDB8bSkhPSgwfEcpJiYwPT0oMyZmZVsxMTUrKDB8YVtadD4+Ml0pPj4wXSkmJihtYShsLEcpLGhsKGwsRykscD0wfGFbQT4+Ml0pLGZyPSgwfGFbSG4+PjJdKSsoKDB8YVtiZT4+Ml0pLTE8PDQpfDAsYVtjdD4+Ml09YVsoRXI9SG4rMzJ8MCk+PjJd''@;'; put 'put ''LGFbY3QrND4+Ml09YVtFcis0Pj4yXSxhW2N0Kzg+PjJdPWFbRXIrOD4+Ml0sYVtjdCsxMj4+Ml09YVtFcisxMj4+Ml0sYVtidD4+Ml09YVtmcj4+Ml0sYVtidCs0Pj4yXT1hW2ZyKzQ+PjJdLGFbYnQrOD4+Ml09YVtmcis4Pj4yXSxhW2J0KzEyPj4yXT1hW2ZyKzEyPj4yXSxRZChsLDMsY3Qs''@;'; put 'put ''YnQsU24sYW4scCkpLEZ0KHEpLHA9MDshKCgwfHApPj0oMHxFdCkpOylGdCgwfGFbSGUrKDQ4KnB8MCk+PjJdKSxGdCgwfGFbVmUrKDQ4KnB8MCk+PjJdKSxwPXArMXwwO0Z0KEhlKSxGdChWZSl9fXdoaWxlKDApO2xlPXVyfWZ1bmN0aW9uIFdVKGwpe3ZhciBwZSxnZSxPZSxMZSxSZSxIZSxj''@;'; put 'put ''PTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAsYmU9MCxWZT0wO0hlPWxlLGxlPWxlKzY0fDAscGU9SGUrNDh8MCxPZT1IZSszMnwwLGJlPUhlKzE2fDAsZ2U9SGUsTGU9MHxhWzgrKFJlPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sMD09KDB8YVsocT1S''@;'; put 'put ''ZSsyMDh8MCk+PjJdKSYmISgxJml0W1JlKzI2MD4+MV0pfHwoYz0zKTtlOmRve2lmKDM9PSgwfGMpJiYoRWgobCksRz1SZSsyNzZ8MCxmPTB8YVtHPj4yXSwwfGYpKWZvcihBPVJlKzI4MHwwLGM9MHxhW0E+PjJdLHc9UmUrMjY4fDAsYj1SZSsyODR8MCxrPVJlKzI3MnwwLE09UmUrMjI4fDAs''@;'; put 'put ''RD1SZSsyNDR8MCxSPVJlKzIxMnwwLHA9MHxhW2M+PjJdLG09MTs7KXtpZigoMHxtKT49KDB8ZikpYnJlYWsgZTthW3c+PjJdPWFbYysobTw8Mik+PjJdLGFbaz4+Ml09KDB8YVtiPj4yXSkrKHA8PDQpLEcxKGwsMHxhW3E+PjJdLDB8YVtNPj4yXSwwfGFbRD4+Ml0sMHxhW1I+PjJdKSxFaChs''@;'; put 'put ''KSxwPSgwfGFbKFZlPTB8YVtBPj4yXSkrKG08PDIpPj4yXSkrcHwwLG09bSsxfDAsZj0wfGFbRz4+Ml0sYz1WZX19d2hpbGUoMCk7YVtSZSsyNjg+PjJdPTAsYVtSZSsyNzI+PjJdPTAsKGY9MHxhWzgrKGM9MHxhWyhxPUxlKzE2fDApPj4yXSk+PjJdKT8oYz0wfGFbKEc9MHxhW2Y+PjJdKT4+''@;'; put 'put ''Ml0sVmU9MHxhW0crOD4+Ml0sYVtiZT4+Ml09YVsoUj1HKzE2fDApPj4yXSxhW2JlKzQ+PjJdPWFbUis0Pj4yXSxhW2JlKzg+PjJdPWFbUis4Pj4yXSxhW2JlKzEyPj4yXT1hW1IrMTI+PjJdLGFbZ2U+PjJdPWFbKEc9RyszMnwwKT4+Ml0sYVtnZSs0Pj4yXT1hW0crND4+Ml0sYVtnZSs4Pj4y''@;'; put 'put ''XT1hW0crOD4+Ml0sYVtnZSsxMj4+Ml09YVtHKzEyPj4yXSxWZT8oYVtPZT4+Ml09YVtiZT4+Ml0sYVtPZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbT2UrOD4+Ml09YVtiZSs4Pj4yXSxhW09lKzEyPj4yXT1hW2JlKzEyPj4yXSk6KGFbT2U+PjJdPWFbYz4+Ml0sYVtPZSs0Pj4yXT1hW2MrND4+Ml0s''@;'; put 'put ''YVtPZSs4Pj4yXT1hW2MrOD4+Ml0sYVtPZSsxMj4+Ml09YVtjKzEyPj4yXSksRz0wfGl0WyhwPVJlKzI2MHwwKT4+MV0sUj0wfGFbUmUrMjIwPj4yXSxhW3BlPj4yXT1hW09lPj4yXSxhW3BlKzQ+PjJdPWFbT2UrND4+Ml0sYVtwZSs4Pj4yXT1hW09lKzg+PjJdLGFbcGUrMTI+PjJdPWFbT2Ur''@;'; put 'put ''MTI+PjJdLGhwKGwscGUsKEc8PDgmNjU1MzUpPDwxNj4+MTY+PjE1JjI1NSxSLChHPDwxNCY2NTUzNSk8PDE2Pj4xNj4+MTUmMjU1KSxjPTB8YVsoUj0wfGFbKEc9MHxhWzgrKDB8YVtxPj4yXSk+PjJdKT4+Ml0pKyg0OCooRz0oMHxhW0crND4+Ml0pLTF8MCl8MCk+PjJdLGY9MHxhW1IrKDQ4''@;'; put 'put ''Kkd8MCkrND4+Ml0sVmU9MHxhW1IrKDQ4Kkd8MCkrMTI+PjJdLGFbYmU+PjJdPWFbKEQ9UisoNDgqR3wwKSsxNnwwKT4+Ml0sYVtiZSs0Pj4yXT1hW0QrND4+Ml0sYVtiZSs4Pj4yXT1hW0QrOD4+Ml0sYVtiZSsxMj4+Ml09YVtEKzEyPj4yXSxhW2dlPj4yXT1hWyhiZT1SKyg0OCpHfDApKzMy''@;'; put 'put ''fDApPj4yXSxhW2dlKzQ+PjJdPWFbYmUrND4+Ml0sYVtnZSs4Pj4yXT1hW2JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbYmUrMTI+PjJdLFZlPyhhW09lPj4yXT1hW2dlPj4yXSxhW09lKzQ+PjJdPWFbZ2UrND4+Ml0sYVtPZSs4Pj4yXT1hW2dlKzg+PjJdLGFbT2UrMTI+PjJdPWFbZ2UrMTI+PjJd''@;'; put 'put ''KTooYVtPZT4+Ml09YVsoVmU9YysoZistMTw8NCl8MCk+PjJdLGFbT2UrND4+Ml09YVtWZSs0Pj4yXSxhW09lKzg+PjJdPWFbVmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtWZSsxMj4+Ml0pLGM9MHxpdFtwPj4xXSxWZT0wfGFbUmUrMjI0Pj4yXSxhW3BlPj4yXT1hW09lPj4yXSxhW3BlKzQ+PjJd''@;'; put 'put ''PWFbT2UrND4+Ml0sYVtwZSs4Pj4yXT1hW09lKzg+PjJdLGFbcGUrMTI+PjJdPWFbT2UrMTI+PjJdLGhwKGwscGUsKGM8PDcmNjU1MzUpPDwxNj4+MTY+PjE1JjI1NSxWZSwoYzw8MTMmNjU1MzUpPDwxNj4+MTY+PjE1JjI1NSksYz0wfGFbcT4+Ml0pOnA9UmUrMjYwfDAsUkgobCxmPTB8YVtj''@;'; put 'put ''Kzk2Pj4yXSwxMSxtPShpdFtwPj4xXTw8MTImNjU1MzUpPDwxNj4+MTY+PjE1PDwxNj4+MTYsQT0wfGFbKE09UmUrMjE2fDApPj4yXSx3PTB8YVsoRD1SZSsyMzJ8MCk+PjJdLGI9MHxhWyhSPVJlKzI0OHwwKT4+Ml0saz0wfGFbKEc9UmUrMjEyfDApPj4yXSxjPSgwfHQxKDB8djIoTGUsMHxh''@;'; put 'put ''WzQ3MTg2XSwxMzczMDgpKSk8PDI0Pj4yND8wfGFbOCsoMHxhW3E+PjJdKT4+Ml06MCksUkgobCxiPTB8YVsxMDgrKDB8YVtxPj4yXSk+PjJdLDExLGs9KGl0W3A+PjFdPDwxMiY2NTUzNSk8PDE2Pj4xNj4+MTU8PDE2Pj4xNix3PTB8YVtNPj4yXSxBPTB8YVtEPj4yXSxmPTB8YVtSPj4yXSxt''@;'; put 'put ''PTB8YVtHPj4yXSxjPSgwfHQxKDB8djIoTGUsMHxhWzQ3MTg2XSwxMzczMDgpKSk8PDI0Pj4yND8wfGFbOCsoMHxhW3E+PjJdKT4+Ml06MCksUkgobCwwfGFbMTAwKygwfGFbcT4+Ml0pPj4yXSw3LChpdFtwPj4xXTw8MTMmNjU1MzUpPDwxNj4+MTY+PjE1PDwxNj4+MTYsMHxhW1JlKzIyND4+''@;'; put 'put ''Ml0sMHxhW1JlKzI0MD4+Ml0sMHxhW1JlKzI1Nj4+Ml0sMHxhW0c+PjJdLDApLFJIKGwsMHxhWzEwNCsoMHxhW3E+PjJdKT4+Ml0sNiwoaXRbcD4+MV08PDE0JjY1NTM1KTw8MTY+PjE2Pj4xNTw8MTY+PjE2LDB8YVtSZSsyMjA+PjJdLDB8YVtSZSsyMzY+PjJdLDB8YVtSZSsyNTI+PjJdLDB8''@;'; put 'put ''YVtHPj4yXSwwKSxmdW5jdGlvbiBBYihsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrNjg+PjJdKSYmQ29bMTI3JmZdKGwpfShsKSxPQyhsKSxsZT1IZX1mdW5jdGlvbiBocChsLGMsZixwLG0pe3ZhciBBLHcsYjtjfD0wLHB8PTAsYj1sZSxsZT1sZSsx''@;'; put 'put ''NnwwLEE9Yix3PTB8YVsxNisobHw9MCk+PjJdLChmfD0wKTw8MjQ+PjI0fHwocD0wfGFbdysyMDg+PjJdKSwobXw9MCk8PDI0Pj4yND09MCYmMD09KDB8cCkmJjA9PSgxJml0W3crMjYwPj4xXSl8fChhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+''@;'; put 'put ''PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxmdW5jdGlvbiBDb2UobCxjKXtjfD0wO3ZhciBwLGY9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2Y9MHxhWzE2KyhsfD0wKT4+Ml0sNDI1OTg0MCYocD0wfGFbbCsxNTI+PjJdKXwwJiYoYVtmKzI2ND4+Ml09Yj0obT0xMzEwNzImcCk+Pj4xNl4yLGFb''@;'; put 'put ''KGs9ZisyNjh8MCk+PjJdPWIrMixGdCgwfGFbKGI9ZisyNzJ8MCk+PjJdKSxmPTB8dnIoYVtrPj4yXTw8NCksYVtiPj4yXT1mLF9bZj4+M109KHc9K19bYz4+M10pLTMsX1tmKzg+PjNdPShBPStfW2MrOD4+M10pLTMsX1tmKzE2Pj4zXT13KzMsX1tmKzI0Pj4zXT1BKzMsODE5MiZwfHxNaChs''@;'; put 'put ''LGYsZiwyKSxtfHxVSShmKSl9KGwsQSkpLGxlPWJ9ZnVuY3Rpb24gUkgobCxjLGYscCxtLEEsdyxiLGspe2Z8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTA7dmFyIHEscGUsTT0wLEQ9MCxSPTAsRz0wO2lmKHBlPWxlLGxlPWxlKzE2fDAsUj1wZSxxPTB8YVsxNTIrKGx8PTApPj4y''@;'; put 'put ''XSwwfChjfD0wKSYmMHxmZVtjKzgxPj4wXSl7aWYoYil7c3dpdGNoKEQ9MHx2cigxMSsoMHxVbyhiKSl8MCksMHxmKXtjYXNlIDExOk09MTA4MjI0O2JyZWFrO2Nhc2UgNzpNPTEwMTU4MzticmVhaztjYXNlIDY6TT0xMDE1OTM7YnJlYWs7ZGVmYXVsdDpQcigxMzgzOTQsOTk5MDYsMjczMCwx''@;'; put 'put ''MDAwNDQpfWFbUj4+Ml09YixhW1IrND4+Ml09TSxvbyhELDEwMDA2MCxSKX1lbHNlIEQ9MDtHPTB8YVsoYj0xMisoMHxhWyhSPWwrMTZ8MCk+PjJdKXwwKT4+Ml0sYVtiPj4yXT1mLChiPTAhPSgwfHApfDAhPSgwfG0pKSYoTT0wPT0oNCZxfDApKSYmKFlVKGwsYyksRzEobCxtLEEsdyxEKSks''@;'; put 'put ''YjcobCxmLGMpLDB8ayYmZnVuY3Rpb24gX29lKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIG0sQSx3LGIsRCxwPTAsaz0wLE09MCxSPTA7Zm9yKEQ9bGUsbGU9bGUrOTZ8MCxtPUQrODB8MCxBPUQrMzJ8MCx3PUQrMTZ8MCxiPUQscD0wfGFbKGN8PTApPj4yXTsoaz0wfGZlW3A+PjBdKTw8MjQ+PjI0''@;'; put 'put ''Oyl7aWYoISgwfCRjKDI1NSZrKSkpe009NDticmVha31wPXArMXwwfTQ9PSgwfE0pJiYoVVUoQSwrX1soaz1jKzU2fDApPj4zXSsuNSooUj0rX1tjKzI0Pj4zXSksK19bYys2ND4+M10tLjUqK19bYyszMj4+M10pLE09QSsxNnwwLFVVKHcsK19bQT4+M10tUiwrX1tBKzg+PjNdKSxhW00+PjJd''@;'; put 'put ''PWFbdz4+Ml0sYVtNKzQ+PjJdPWFbdys0Pj4yXSxhW00rOD4+Ml09YVt3Kzg+PjJdLGFbTSsxMj4+Ml09YVt3KzEyPj4yXSxNPUErMzJ8MCxhW20+PjJdPWFbaz4+Ml0sYVttKzQ+PjJdPWFbays0Pj4yXSxhW20rOD4+Ml09YVtrKzg+PjJdLGFbbSsxMj4+Ml09YVtrKzEyPj4yXSxwRChiLGYs''@;'; put 'put ''bSksYVtNPj4yXT1hW2I+PjJdLGFbTSs0Pj4yXT1hW2IrND4+Ml0sYVtNKzg+PjJdPWFbYis4Pj4yXSxhW00rMTI+PjJdPWFbYisxMj4+Ml0sZDIobCwwfGFbMzM2KygwfGFbbD4+Ml0pPj4yXSksbWEobCwwfGFbYys4Pj4yXSksV28obCxBLDMpKSxsZT1EfShsLGMsayksYiYmKE18fChZVShs''@;'; put 'put ''LGMpLEcxKGwsbSxBLHcsRCkpLEVoKGwpKSxGdChEKSxhWzEyKygwfGFbUj4+Ml0pPj4yXT1HfWxlPXBlfWZ1bmN0aW9uIFlVKGwsYyl7Y3w9MDt2YXIgcCxmPTAsbT0wLEE9MCx3PTAsYj0wO2Y9MHxhWzE2KyhsfD0wKT4+Ml0sNDI1OTg0MCYocD0wfGFbbCsxNTI+PjJdKXwwJiYoYVtmKzI2''@;'; put 'put ''ND4+Ml09dz0obT0xMzEwNzImcCk+Pj4xNl4yLGFbKGI9ZisyNjh8MCk+PjJdPXcrMixGdCgwfGFbKHc9ZisyNzJ8MCk+PjJdKSxmPTB8dnIoYVtiPj4yXTw8NCksYVt3Pj4yXT1mLF9bZj4+M109K19bKHc9Yys1NnwwKT4+M10tLjUqK19bKGI9YysyNHwwKT4+M10sX1tmKzg+PjNdPStfWyhB''@;'; put 'put ''PWMrNjR8MCk+PjNdLS41KitfWyhjPWMrMzJ8MCk+PjNdLF9bZisxNj4+M109LjUqK19bYj4+M10rICtfW3c+PjNdLF9bZisyND4+M109LjUqK19bYz4+M10rICtfW0E+PjNdLDgxOTImcHx8TWgobCxmLGYsMiksbXx8VUkoZikpfWZ1bmN0aW9uIFVVKGwsYyxmKXtmPStmLF9bKGx8PTApPj4z''@;'; put 'put ''XT1jPStjLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIFFVKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxmfD0wLEE9K0Esdz0rdzt2YXIgYXQsU3Qsa3Qsc3QsRXQsWnQsYnQsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxx''@;'; put 'put ''ZT0wLHJ0PTAsV2U9MCxjdD0wO2lmKGJ0PWxlLGxlPWxlKzI1NnwwLFN0PWJ0KzIyNHwwLGF0PWJ0KzIwOHwwLGI9YnQrMTkyfDAsc3Q9YnQrMTQ0fDAsRXQ9YnQrOTZ8MCxadD1idCs0OHwwLGt0PWJ0LCgwfChwPTB8czcocHw9MCxtfD0wLGs9YnQrMjQwfDApKSk+MT8ocWU9Yys0OHwwLHJ0''@;'; put 'put ''PTB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6cWUpKzQwPj4yXSkscWU9MHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpxZSkrNDA+PjJdKSxydD0wIT0oMHxTYyhydCkpLFdlPTB8dGkoMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKSxhW2I+PjJdPXFlLGFb''@;'; put 'put ''Yis0Pj4yXT1ydD8xMDAwNzk6MTAwMDg0LGFbYis4Pj4yXT1XZSwkcigzLDEwMDA4OSxiKSwyPT0oMHxwKT9wPTE6Y3Q9NCk6MT09KDB8cCk/cD0xOmN0PTQsND09KDB8Y3QpKXtmb3IoV2U9YysxNnwwLGdlPTgrKHBlPTB8YVtrPj4yXSl8MCxiZT1adCs0fDAsT2U9c3QrOHwwLExlPXN0KzEy''@;'; put 'put ''fDAsUmU9MCE9KDB8ZikscT0wPT0oMHxmKSxIZT1zdCszMnwwLFZlPXN0KzR8MCxxZT1zdCsxNnwwLHJ0PWt0KzR8MCxwPTAsRz0wOyEoKDB8Ryk+PSgwfGFbNCsobT0wfGFbOCsoMHxhW1dlPj4yXSk+PjJdKT4+Ml0pKTspe209KDB8YVttPj4yXSkrKDQ4Kkd8MCl8MCxjPShiPXN0KSs0OHww''@;'; put 'put ''O2Rve2FbYj4+Ml09YVttPj4yXSxiPWIrNHwwLG09bSs0fDB9d2hpbGUoKDB8Yik8KDB8YykpO2M9MSxNPTEsUj0wfGFbZ2U+PjJdO2U6Zm9yKDttPTB8YVtSPj4yXSxtOyl7RD0ram5bKGs9Uis0fDApPj4yXTtkb3tpZihEPDFlLTUmRD4tMWUtNSltPWM7ZWxzZXtpZihtYShsLG0pLE0tPUQ9''@;'; put 'put ''K2puW2s+PjJdLHA9MHxhW1I+PjJdLDB8Yyl7aWYoZ3koc3QsRCxadCxrdCksUWYobCxrPTB8YVtadD4+Ml0sMHxhW2JlPj4yXSwwLDAsMCksRnQoayksTTwxZS01Jk0+LTFlLTUpe2N0PTExO2JyZWFrIGV9bT0wO2JyZWFrfWlmKE08MWUtNSZNPi0xZS01KXtjdD0xMzticmVhayBlfW09a3Qs''@;'; put 'put ''Yz0oYj1FdCkrNDh8MDtkb3thW2I+PjJdPWFbbT4+Ml0sYj1iKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGIpPCgwfGMpKTtneShFdCwoRD0ram5baz4+Ml0pLyhNK0QpLFp0LGt0KSxGdCgwfGFbRXQ+PjJdKSxRZihsLG09MHxhW1p0Pj4yXSwwfGFbYmU+PjJdLDAsMCwwKSxGdChtKSxtPTB9fXdo''@;'; put 'put ''aWxlKDApO2M9bSxSPVIrMTJ8MH0xMT09KDB8Y3QpPyhjdD0wLEZ0KDB8YVtrdD4+Ml0pKToxMz09KDB8Y3QpJiYoY3Q9MCxRZihsLFI9MHxhW2t0Pj4yXSwwfGFbcnQ+PjJdLDAsMCwwKSxGdChSKSksMHxhW09lPj4yXSYmKG1hKGwsMHxhW2FbZ2U+PjJdPj4yXSksaGwobCwwfGFbYVtnZT4+''@;'; put 'put ''Ml0+PjJdKSxrPTB8YVtzdD4+Ml0sUj0wfGFbT2U+PjJdLGFbYXQ+PjJdPWFbcWU+PjJdLGFbYXQrND4+Ml09YVtxZSs0Pj4yXSxhW2F0Kzg+PjJdPWFbcWUrOD4+Ml0sYVthdCsxMj4+Ml09YVtxZSsxMj4+Ml0sYVtTdD4+Ml09YVtrPj4yXSxhW1N0KzQ+PjJdPWFbays0Pj4yXSxhW1N0Kzg+''@;'; put 'put ''PjJdPWFbays4Pj4yXSxhW1N0KzEyPj4yXT1hW2srMTI+PjJdLFFkKGwsMixhdCxTdCxBLHcsUikpLDB8YVtMZT4+Ml0mJihtYShsLHApLGhsKGwscCksaz0oMHxhW3N0Pj4yXSkrKCgwfGFbVmU+PjJdKS0xPDw0KXwwLFI9MHxhW0xlPj4yXSxhW2F0Pj4yXT1hW0hlPj4yXSxhW2F0KzQ+PjJd''@;'; put 'put ''PWFbSGUrND4+Ml0sYVthdCs4Pj4yXT1hW0hlKzg+PjJdLGFbYXQrMTI+PjJdPWFbSGUrMTI+PjJdLGFbU3Q+PjJdPWFbaz4+Ml0sYVtTdCs0Pj4yXT1hW2srND4+Ml0sYVtTdCs4Pj4yXT1hW2srOD4+Ml0sYVtTdCsxMj4+Ml09YVtrKzEyPj4yXSxRZChsLDMsYXQsU3QsQSx3LFIpKTtkb3tp''@;'; put 'put ''ZigoMHxhWzQrKDB8YVs4KygwfGFbV2U+PjJdKT4+Ml0pPj4yXSk+MSl7aWYoMHxhW09lPj4yXSl7aWYocSlicmVha31lbHNlIGlmKCEoUmUmMCE9KDB8YVtMZT4+Ml0pKSlicmVhaztkMihsLGYpfX13aGlsZSgwKTtHPUcrMXwwfUhBKHBlKSxwPTB9cmV0dXJuIGxlPWJ0LDB8cH1mdW5jdGlv''@;'; put 'put ''biBWSShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MDtmPTE7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2w+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDU4OmY9ZisxfDB9bD1sKzF8MH1mb3IobD0xMCsocD0wfEFyKDErKDB8VW8oYykpfDAsZikpfDAsKDB8YVs0NzEyMV0pPCgwfHApPyhhWzQ3''@;'; put 'put ''MTIxXT1sLGw9MHxVYSgwfGFbNDcxMjJdLGwpLGFbNDcxMjJdPWwpOmw9MHxhWzQ3MTIyXSxyZChsLGMpO2w9MHxhWzQ3MTIyXSxmPWYrLTF8MDspcD1sKygwfFVvKGwpKXwwLGZlW3A+PjBdPTU4LGZlW3ArMT4+MF09MCxzdihsLGMpO3JldHVybiAwfGx9ZnVuY3Rpb24gUTUobCl7bHw9MDt2''@;'; put 'put ''YXIgYz0wLGY9MDtjPTB8YVs0NzE4NF07ZTpkb3tpZihjKXN3aXRjaChjPTB8SG8obCxjKSwwfGZlW2M+PjBdKXtjYXNlIDExMDppZigwfFppKGMsMTM1NzA5KSl7Zj03O2JyZWFrIGV9Yz0xO2JyZWFrIGU7Y2FzZSAxMDI6aWYoMHxaaShjLDEwMDA2Nikpe2Y9NzticmVhayBlfWM9MjticmVh''@;'; put 'put ''ayBlO2Nhc2UgOTg6aWYoISgwfFppKGMsMTAwMDc0KSkpe2M9MzticmVhayBlfWlmKDB8WmkoYywxMTEyMjEpKXtmPTc7YnJlYWsgZX1jPTQ7YnJlYWsgZTtkZWZhdWx0OmY9NzticmVhayBlfWVsc2UgZj03fXdoaWxlKDApO3JldHVybiA3PT0oMHxmKSYmKGM9KGM9MCE9KDB8U2MoMHxjcigw''@;'; put 'put ''fGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pKSkpPzI6MSksMHxjfWZ1bmN0aW9uIHN2ZShsKXswfChsfD0wKSYmKEZ0KDB8YVtsKzg+PjJdKSxGdChsKSl9ZnVuY3Rpb24gQkgobCxjLGYpe3ZhciBwLG0sQTtsfD0wLHA9Mi8rRDAoKygobT0rX1soY3w9MCk+PjNdLStf''@;'; put 'put ''WyhmfD0wKT4+M10pKm0rMWUtNCsoQT0rX1tjKzg+PjNdLStfW2YrOD4+M10pKkEpKSxfW2w+PjNdPXAqQSxfW2wrOD4+M109LW0qcH1mdW5jdGlvbiBrb2UobCxjLGYscCxtKXtsfD0wLGN8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wOyhBPStEMCgrKChiPStfWzgrKGZ8PTApPj4zXS0r''@;'; put 'put ''X1s4KyhwfD0wKT4+M10pKmIrKHc9K19bZj4+M10tK19bcD4+M10pKncpKSk8MWUtNCYmKGI9QT0rX1tjKzg+PjNdLStfW20rOD4+M10sdz1rPStfW2M+PjNdLStfW20+PjNdLEE9K0QwKCsoayprKzFlLTQrQSpBKSkpLF9bbD4+M109Yiooaz0yL0EpLF9bbCs4Pj4zXT0tayp3fWZ1bmN0aW9u''@;'; put 'put ''IGd5KGwsYyxmLHApe2M9K2MsZnw9MCxwfD0wO3ZhciBSLEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLHE9MCxwZT0wLGdlPTA7aWYoRz1sZSxsZT1sZSsxNnwwLFI9RyxiPSgoRD0wfGFbNCsobHw9MCk+PjJdKS0xfDApLzN8MCwoRCstNHwwKT4+PjA8MylhW2YrND4+Ml09NCxhW2Y+''@;'; put 'put ''PjJdPTB8dnIoNjQpLGFbcCs0Pj4yXT00LEQ9MHx2cig2NCksYVtwPj4yXT1ELHd1KFIsMHxhW2w+PjJdLDMsYywwfGFbZj4+Ml0sRCk7ZWxzZXtmb3IoRD0wfHZyKGI8PDMpLEE9MCx3PTB8YVtsPj4yXSxtPTA7ISgoMHxBKT49KDB8YikpOylxPSt2dSh3KSxfW0QrKEE8PDMpPj4zXT1xLEE9''@;'; put 'put ''QSsxfDAsdz13KzQ4fDAsbT1xK207Zm9yKGMqPW0sTT0wLG09MDshKCgwfGIpPD0oMHxNKXx8KG09K19bRCsoTTw8Myk+PjNdK20sbT49YykpOylNPU0rMXwwO2ZvcihhWyh3PWYrNHwwKT4+Ml09QT00KyhrPTMqTXwwKXwwLGFbZj4+Ml09MHx2cihBPDw0KSxBPTErKDMqKGItTXwwKXwwKXww''@;'; put 'put ''LGFbKGI9cCs0fDApPj4yXT1BLGFbcD4+Ml09MHx2cihBPDw0KSxBPTA7ISgoMHxBKT49KDB8YVt3Pj4yXSkpOylhWyhwZT0oMHxhW2Y+PjJdKSsoQTw8NCl8MCk+PjJdPWFbKGdlPSgwfGFbbD4+Ml0pKyhBPDw0KXwwKT4+Ml0sYVtwZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbcGUrOD4+Ml09YVtn''@;'; put 'put ''ZSs4Pj4yXSxhW3BlKzEyPj4yXT1hW2dlKzEyPj4yXSxBPUErMXwwO2ZvcihBPUErLTR8MCx3PTA7ISgoMHx3KT49KDB8YVtiPj4yXSkpOylhWyhnZT0oMHxhW3A+PjJdKSsodzw8NCl8MCk+PjJdPWFbKHBlPSgwfGFbbD4+Ml0pKyhBPDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW3BlKzQ+PjJd''@;'; put 'put ''LGFbZ2UrOD4+Ml09YVtwZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW3BlKzEyPj4yXSxBPUErMXwwLHc9dysxfDA7d3UoUiwoMHxhW2w+PjJdKSsoazw8NCl8MCwzLChjLW0rKHE9K19bRCsoTTw8Myk+PjNdKSkvcSwoMHxhW2Y+PjJdKSsoazw8NCl8MCwwfGFbcD4+Ml0pLEZ0KEQpfWxlPUd9ZnVu''@;'; put 'put ''Y3Rpb24gdnUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7cmV0dXJuIHA9K0QwKCsoKGM9K19bOCsobHw9MCk+PjNdLShBPStfW2wrMjQ+PjNdKSkqYysocD0rX1tsPj4zXS0obT0rX1tsKzE2Pj4zXSkpKnApKSwrKChwPStEMCgrKChBLT1mPStfW2wrNDA+PjNdKSpBKyhtLT1jPStfW2wr''@;'; put 'put ''MzI+PjNdKSptKSkrcCkrICtEMCgrKChmLT0rX1tsKzU2Pj4zXSkqZisoYy09K19bbCs0OD4+M10pKmMpKSl9ZnVuY3Rpb24gQTcobCxjKXtyZXR1cm4gbHw9MCxjPTB8ZGkoY3w9MCksMHxmdW5jdGlvbiBlUShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtjPWx8PTAsbT1sO2U6Zm9yKDs7''@;'; put 'put ''KXtmb3IocD0wOzspe2lmKGY9YyxjPWMrMXwwLCEoKGY9MHxmZVtmPj4wXSk8PDI0Pj4yNCkpYnJlYWsgZTtpZihwPDwyND4+MjQpe0E9NTticmVha31pZihmPDwyND4+MjQhPTkyKWJyZWFrO3A9MX10OmRve2lmKDU9PSgwfEEpKXN3aXRjaChBPTAsZjw8MjQ+PjI0fDApe2Nhc2UgMTE0OmY9''@;'; put 'put ''MTM7YnJlYWsgdDtjYXNlIDEwODpjYXNlIDExMDpmPTEwO2JyZWFrIHQ7ZGVmYXVsdDpicmVhayB0fX13aGlsZSgwKTtmZVttPj4wXT1mLG09bSsxfDB9cmV0dXJuIGZlW20+PjBdPTAsMHxsfShjPTE9PSgwfGZlWzExNSsoMHxhW2MrMTY+PjJdKT4+MF0pPzB8eWsobCk6MHxSTihsLGMpKX1m''@;'; put 'put ''dW5jdGlvbiBQSChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbT0rbTt2YXIgRCxSLEcscSxwZSxBPTAsdz0wLGI9MCxrPTAsTT0wLGdlPTAsYmU9MDtmb3IocGU9bGUsbGU9bGUrMTY2NHwwLEQ9cGUrMTYwMHwwLFI9cGUrODAwfDAsRz1wZSxxPTB8UW4oMjQpLGFbcSsxNj4+Ml09''@;'; put 'put ''MSxrPSgoMHxhW3ArND4+Ml0pLTF8MCkvM3wwLHc9MCxiPXE7ISgoMHx3KT49KDB8aykpOyl7Zm9yKE09Myp3fDAsQT0wOzQhPSgwfEEpOylhWyhnZT1EKyhBPDw0KXwwKT4+Ml09YVsoYmU9KDB8YVtwPj4yXSkrKEErTTw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtiZSs0Pj4yXSxhW2dlKzg+''@;'; put 'put ''PjJdPWFbYmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtiZSsxMj4+Ml0sQT1BKzF8MDt3PXcrMXwwLGI9MHxteShELGIpfWZvcihBPTAsdz0wLGI9cTs7KXtpZighYil7dz1xLEE9cTticmVha30kVSh3LGIsaz0wfGFbYisxNj4+Ml0sTT1SKyhBPDw0KXwwLHA9RysoQTw8NCl8MCxtKSw1MD09KDB8''@;'; put 'put ''KEE9QSsxfDApKXwwPT0oMHxrKT8oRkgobCxjLGYsQSxSLEcpLGFbUj4+Ml09YVtNPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLGFbRz4+Ml09YVtwPj4yXSxhW0crND4+Ml09YVtwKzQ+PjJdLGFbRys4Pj4yXT1hW3Ar''@;'; put 'put ''OD4+Ml0sYVtHKzEyPj4yXT1hW3ArMTI+PjJdLHc9YixBPTEsYj1rKToodz1iLGI9ayl9Zm9yKDt3OyliZT0wfGFbdysxNj4+Ml0sRnQoQSksdz1iZSxBPWJlO2xlPXBlfWZ1bmN0aW9uIG15KGwsYyl7Y3w9MDt2YXIgcCxtLEEsZj0wO3JldHVybiBBPWxlLGxlPWxlKzE0NHwwLG09QSsxMjh8''@;'; put 'put ''MCxmPUErNjR8MCxwPUEsMHxCQyhsfD0wKT8oMT09KDB8YVsoZj1jKzE2fDApPj4yXSkmJihhW2Y+PjJdPTAsYVtjPj4yXT1hW2w+PjJdLGFbYys0Pj4yXT1hW2wrND4+Ml0sYVtjKzg+PjJdPWFbbCs4Pj4yXSxhW2MrMTI+PjJdPWFbbCsxMj4+Ml0pLGFbbT4+Ml09YVsoZj1sKzQ4fDApPj4y''@;'; put 'put ''XSxhW20rND4+Ml09YVtmKzQ+PjJdLGFbbSs4Pj4yXT1hW2YrOD4+Ml0sYVttKzEyPj4yXT1hW2YrMTI+PjJdLGY9MHxmdW5jdGlvbiBxVShsLGMpe2x8PTAsY3w9MDt2YXIgZjtyZXR1cm4gZj0wfFFuKDI0KSxhW2YrMTY+PjJdPTAsYVtmPj4yXT1hW2w+PjJdLGFbZis0Pj4yXT1hW2wrND4+''@;'; put 'put ''Ml0sYVtmKzg+PjJdPWFbbCs4Pj4yXSxhW2YrMTI+PjJdPWFbbCsxMj4+Ml0sYVtjKzE2Pj4yXT1mLDB8Zn0obSxjKSk6KHd1KG0sbCwzLC41LGYscCksZj0wfG15KHAsMHxteShmLGMpKSksbGU9QSwwfGZ9ZnVuY3Rpb24gJFUobCxjLGYscCxtLEEpe2x8PTAsZnw9MCxwfD0wLG18PTAsQT0r''@;'; put 'put ''QTt2YXIgayxNLEQsUixHLHEscGUsZ2UsYmUsdz0wLGI9MDtwZT1sZSxsZT1sZSs5NnwwLEQ9cGUrODB8MCxNPXBlKzY0fDAsaz1wZSs0OHwwLEc9cGUrMTZ8MCxxPXBlLGFbKFI9cGUrMzJ8MCk+PjJdPWFbKGN8PTApPj4yXSxhW1IrND4+Ml09YVtjKzQ+PjJdLGFbUis4Pj4yXT1hW2MrOD4+''@;'; put 'put ''Ml0sYVtSKzEyPj4yXT1hW2MrMTI+PjJdO2Rve2lmKGwpe2lmKGFbRz4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLGYpe2FbcT4+Ml09YVtmPj4yXSxhW3ErND4+Ml09YVtmKzQ+PjJdLGFbcSs4Pj4yXT1h''@;'; put 'put ''W2YrOD4+Ml0sYVtxKzEyPj4yXT1hW2YrMTI+PjJdLHc9K19bUj4+M10sYj0rX1tSKzg+PjNdO2JyZWFrfV9bcT4+M109Mioodz0rX1tSPj4zXSktK19bRz4+M10sX1txKzg+PjNdPTIqKGI9K19bUis4Pj4zXSktK19bRys4Pj4zXTticmVha31hW3E+PjJdPWFbZj4+Ml0sYVtxKzQ+PjJdPWFb''@;'; put 'put ''Zis0Pj4yXSxhW3ErOD4+Ml09YVtmKzg+PjJdLGFbcSsxMj4+Ml09YVtmKzEyPj4yXSxfW0c+PjNdPTIqKHc9K19bUj4+M10pLStfW3E+PjNdLF9bRys4Pj4zXT0yKihiPStfW1IrOD4+M10pLStfW3ErOD4+M119d2hpbGUoMCk7YVtrPj4yXT1hW0c+PjJdLGFbays0Pj4yXT1hW0crND4+Ml0s''@;'; put 'put ''YVtrKzg+PjJdPWFbRys4Pj4yXSxhW2srMTI+PjJdPWFbRysxMj4+Ml0sYVtNPj4yXT1hW1I+PjJdLGFbTSs0Pj4yXT1hW1IrND4+Ml0sYVtNKzg+PjJdPWFbUis4Pj4yXSxhW00rMTI+PjJdPWFbUisxMj4+Ml0sYVtEPj4yXT1hW3E+PjJdLGFbRCs0Pj4yXT1hW3ErND4+Ml0sYVtEKzg+PjJd''@;'; put 'put ''PWFbcSs4Pj4yXSxhW0QrMTI+PjJdPWFbcSsxMj4+Ml0sYmU9K2Z1bmN0aW9uIEhIKGwsYyxmKXtsfD0wO3ZhciBBLHA9MCxtPTA7cmV0dXJuIG09K1VsKCsoK19bOCsoZnw9MCk+PjNdLShBPStfWzgrKGN8PTApPj4zXSkpLCsoK19bZj4+M10tKHA9K19bYz4+M10pKSksKyguNSooKG0tPXA9''@;'; put 'put ''K1VsKCsoK19bbCs4Pj4zXS1BKSwrKCtfW2w+PjNdLXApKSk+MD9tKy02LjI4MzE4NTMwNzE3OTU4NjptKStwKX0oayxNLEQpLGdlPStoYSgrYmUpKkEsQT0rRGEoK2JlKSpBLF9bcD4+M109dytnZSxfW3ArOD4+M109YitBLF9bbT4+M109dy1nZSxfW20rOD4+M109Yi1BLGxlPXBlfWZ1bmN0''@;'; put 'put ''aW9uIEZIKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsbXw9MCxBfD0wO3ZhciBiLHc9MCxrPTAsTT0wLEQ9MDtmb3IoYj0ocHw9MCk8PDEsaz0wfGFbKGZ8PTApPj4yXSx3PTAsTT0wOyEoKDB8dyk+PSgwfGspKTspRD0oMHxhWygwfGFbYz4+Ml0pKyh3PDwyKT4+Ml0pK018MCx3PXcrMXwwLE09''@;'; put 'put ''RDtmb3IoYVtmPj4yXT1EPWsrMXwwLEQ9MHxWMCgwfGFbYz4+Ml0sRDw8MiksYVtjPj4yXT1ELGFbRCsodzw8Mik+PjJdPWIsYVtsPj4yXT0wfFYwKDB8YVtsPj4yXSxNK2I8PDQpLGM9YistMStNfDAsdz0wOyEoKDB8dyk+PSgwfHApKTspYVsoRD0oMHxhW2w+PjJdKSsodytNPDw0KXwwKT4+''@;'; put 'put ''Ml09YVsoaz1tKyh3PDw0KXwwKT4+Ml0sYVtEKzQ+PjJdPWFbays0Pj4yXSxhW0QrOD4+Ml09YVtrKzg+PjJdLGFbRCsxMj4+Ml09YVtrKzEyPj4yXSxhWyhEPSgwfGFbbD4+Ml0pKyhjLXc8PDQpfDApPj4yXT1hWyhrPUErKHc8PDQpfDApPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4''@;'; put 'put ''Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4yXT1hW2srMTI+PjJdLHc9dysxfDB9ZnVuY3Rpb24gTW9lKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmb3IoZj0wfGFbKGx8PTApPj4yXTs7KXtpZighKChtPTB8ZmVbZj4+MF0pPDwyND4+MjQpKXtwPTA7YnJlYWt9aWYoIShtPDwy''@;'; put 'put ''ND4+MjQ9PTQ0fDAhPSgwfCRjKHA9bTw8MjQ+PjI0KSkpKXtBPTU7YnJlYWt9Zj1mKzF8MH1lOmRve2lmKDU9PSgwfEEpKXtzd2l0Y2goMHxwKXtjYXNlIDA6cD0wO2JyZWFrIGU7Y2FzZSA0MTpjYXNlIDQwOmY9ZisxfDA7YnJlYWsgZX1mb3IoQT1jKzR8MCx3PWMrOHwwOzspe2lmKCgwfHV2''@;'; put 'put ''ZShtPDwyND4+MjQpKTw8MjQ+PjI0KXtwPTE7YnJlYWsgZX0ocD0wfGFbQT4+Ml0pPj4+MD49KDB8YVt3Pj4yXSk+Pj4wJiYoUTAoYywxKSxwPTB8YVtBPj4yXSksYVtBPj4yXT1wKzEsZmVbcD4+MF09bSxmPXA9ZisxfDAsbT0wfGZlW3A+PjBdfX19d2hpbGUoMCk7cmV0dXJuIGFbbD4+Ml09''@;'; put 'put ''ZiwwfHB9ZnVuY3Rpb24gdXZlKGwpe3N3aXRjaCgwfChsfD0wKSl7Y2FzZSAwOmNhc2UgNDQ6Y2FzZSA0MTpjYXNlIDQwOmw9MTticmVhaztkZWZhdWx0Omw9MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIGpJKGwsYyl7cmV0dXJuIDB8RW9lKDB8YVsobHw9MCk+PjJdLDB8YVtsKzE2MD4+Ml0sMHxh''@;'; put 'put ''W2wrMTU2Pj4yXSxjfD0wKX1mdW5jdGlvbiBFb2UobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssTSxELFIsbT0wLEE9MDtSPWxlLGxlPWxlKzE2MHwwLE09UisxNnwwLEQ9UixhWyhrPVIrMjB8MCk+PjJdPTAsYVtNPj4yXT0wLHVzKEQsMTI4LFIrMjR8MCksdW8oRCxw''@;'; put 'put ''KSwocD0wfGFbKG09RCs0fDApPj4yXSk+Pj4wPj0oMHxhW0QrOD4+Ml0pPj4+MCYmKFEwKEQsMSkscD0wfGFbbT4+Ml0pLGZlW3A+PjBdPTAsYVttPj4yXT1BPTB8YVtEPj4yXSx3PWwrMzAwfDAsYj1sKzI5NnwwLHA9MCxtPUE7ZTpmb3IoOzspe2lmKHApe3A9MTticmVha31pZighKHA9MHxP''@;'; put 'put ''aihtLDB8YVt3Pj4yXSxrKSkpe3A9MDticmVha31zd2l0Y2goKDAhPSgwfChwPShBPTAhPSgwfChtPTB8T2oocCwwfGFbYj4+Ml0sTSkpKSk/MHxPaigwLDB8YVtiPj4yXSxNKTowKSkmMSkrKDEmQSkmMyl7Y2FzZSAyOm09MHx0UShsLG0sMCkscD0oKHA9MHx0UShsLHAsZikpJm18MCk+LTEm''@;'; put 'put ''KDB8KChBPSgwfG0pPigwfHApKT9tOnApKT49KDB8YykmKDB8KEE/cDptKSk8PSgwfGMpLG09MDtjb250aW51ZSBlO2Nhc2UgMTpwPSgwfHRRKGwsbSxjKSk9PSgwfGMpLG09MDtjb250aW51ZSBlO2RlZmF1bHQ6cD0wLG09MDtjb250aW51ZSBlfX1yZXR1cm4gQzIoRCksbGU9UiwwfHB9ZnVu''@;'; put 'put ''Y3Rpb24gdFEobCxjLGYpe2x8PTAsZnw9MDt2YXIgQSxwPTAsbT0wOyhBPTB8ZmVbKGN8PTApPj4wXSk8PDI0Pj4yND09OTcmJjA9PSgwfFppKGMsMTAwMzk2KSl8fChwPTMpO2U6ZG97aWYoMz09KDB8cCkpe2lmKCgwfGN2ZShjKSk8PDI0Pj4yNCl7Zj0wfHIzKGMpO2JyZWFrfWlmKG09MHxh''@;'; put 'put ''W2wrMzA4Pj4yXSlmb3IobD0wfGFbbCszMTI+PjJdLGY9MTs7KXtpZigoMHxmKT4oMHxsKSl7Zj0tMTticmVhayBlfWlmKEE8PDI0Pj4yND09KDB8ZmVbKHA9MHxhW20rKGY8PDIpPj4yXSk+PjBdKSYmMD09KDB8WmkoYyxwKSkpYnJlYWsgZTtmPWYrMXwwfWVsc2UgZj0tMX19d2hpbGUoMCk7''@;'; put 'put ''cmV0dXJuIDB8Zn1mdW5jdGlvbiBjdmUobCl7bHw9MDtmb3IodmFyIGM9MDs7KXtpZighKChjPTB8ZmVbbD4+MF0pPDwyND4+MjQpKXtsPTE7YnJlYWt9aWYoISgoKDI1NSZjKS00OHwwKT4+PjA8MTApKXtsPTA7YnJlYWt9bD1sKzF8MH1yZXR1cm4gMHxsfWZ1bmN0aW9uIHZ5KGwsYyl7cmV0''@;'; put 'put ''dXJuIDB8KCtfWzE2KyhsfD0wKT4+M10+PStfWyhjfD0wKT4+M10mJitfW2MrMTY+PjNdPj0rX1tsPj4zXSYmK19bbCsyND4+M10+PStfW2MrOD4+M10/K19bYysyND4+M10+PStfW2wrOD4+M10mMTowKX1mdW5jdGlvbiB4b2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wO2U6''@;'; put 'put ''ZG97aWYoKDB8YVtsKzE1Nj4+Ml0pPj0yJiYocD0wfHYyKGYsMHxhWzQ3MTY3XSwxOTUwNTkpLCgwfGpJKGwscCkpPDwyND4+MjQ9PTApKWlmKDB8ZmVbcD4+MF0pcD0wO2Vsc2UgaWYoMHxNcyhjLGYpKWZvcihwPTB8TXMoYyxmKTs7KXtpZighcCl7cD0wO2JyZWFrIGV9aWYobT0wfHYyKHAs''@;'; put 'put ''MHxhWzQ3MTkwXSwxOTUwNTkpLCEoMHxmZVttPj4wXSkpe3A9MTticmVhayBlfWlmKCgwfGpJKGwsbSkpPDwyND4+MjQpe3A9MTticmVhayBlfXA9MHxWcyhjLHAsZil9ZWxzZSBwPTE7ZWxzZSBwPTF9d2hpbGUoMCk7cmV0dXJuIDB8cH1mdW5jdGlvbiBmdmUobCxjKXt2YXIgZixwLG07cmV0''@;'; put 'put ''dXJuIGN8PTAsZj1sZSxsZT1sZSs2NHwwLHA9ZiszMnwwLGFbKG09Zik+PjJdPWFbKGw9NDgrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW20rMTY+PjJdPWFbbCsxNj4+Ml0s''@;'; put 'put ''YVttKzIwPj4yXT1hW2wrMjA+PjJdLGFbbSsyND4+Ml09YVtsKzI0Pj4yXSxhW20rMjg+PjJdPWFbbCsyOD4+Ml0sYVtwPj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sYVtwKzE2Pj4yXT1hW2MrMTY+PjJd''@;'; put 'put ''LGFbcCsyMD4+Ml09YVtjKzIwPj4yXSxhW3ArMjQ+PjJdPWFbYysyND4+Ml0sYVtwKzI4Pj4yXT1hW2MrMjg+PjJdLGM9MjU1JigwfHZ5KG0scCkpLGxlPWYsMHxjfWZ1bmN0aW9uIGh2ZShsLGMpe2N8PTA7dmFyIHEscGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0w''@;'; put 'put ''LEc9MCxnZT0wLGJlPTAsT2U9MDtxPTB8YVsxNTIrKGx8PTApPj4yXSxwZT0wfHhmKGwpLGFbcGUrND4+Ml09MixhW3BlKzg+PjJdPWMsYVtwZSsxMj4+Ml09OCwxNjc3NzIxNiZxfDAmJihmPSgwfGhyWzE3OCsoMHxhWzE2KygwfGNyKGMpKT4+Ml0pPj4xXSk+Mj8rKDB8fn4oKGY9NzIqK19b''@;'; put 'put ''MTYrKDB8YVsxMzIrKDB8YVtjKzE2Pj4yXSk+PjJdKT4+M10pKyhmPj0wPy41Oi0uNSkpKTowLF9bcGUrMTY4Pj4zXT1mKSxOSChsLDB8YVsxMDQrKDB8YVsodz1jKzE2fDApPj4yXSk+PjJdLGMpO2Rve2lmKDQyNTk4NDAmcXwwKXtpZigwPT0oMHxhW3BlKzIwOD4+Ml0pJiYwPT0oMSZpdFtw''@;'; put 'put ''ZSsyNjA+PjFdKSlicmVhaztSPTB8JDUoYyksZj0rX1sxNisoYj0wfGFbdz4+Ml0pPj4zXSxHPStfW2IrMjQ+PjNdLGI9MHxuUShjKTtlOmRve2lmKDM9PSgyfFIpKWlmKE09MHxhWzEyKygwfGFbdz4+Ml0pPj4yXSxwPSgwfFZIKE0pKTw8MjQ+PjI0PzAhPShhW00rND4+Ml18YnwwKTowLDA9''@;'; put 'put ''PSg1MjQyODgmcXwwKXwwPT0oMHxNKXxwKWdlPTMxO2Vsc2V7aWYoRD0oMHwoRD0wfGFbKG09TSs4fDApPj4yXSkpPDM/MTpELGs9KDB8KGs9MHxhWyhBPU0rNHwwKT4+Ml0pKT4xP2s6MSxSPTB8YVtNKzQ0Pj4yXSxwPSgocD0ocD0wfExpKGMsMTAyNzA1KSk/MHxyMyhwKTowKS00fDApPj4+''@;'; put 'put ''MD41Nj8yMDpwLCEoYVtBPj4yXXxiKSl7YVtwZSsyNjQ+PjJdPTAsbT0wfHZyKDMyKSxfW20+PjNdPWYtKE9lPStfWzg4KyhwPTB8YVt3Pj4yXSk+PjNdKSxfW20rOD4+M109Ry0oYmU9LjUqK19bcCs4MD4+M10pLF9bbSsxNj4+M109T2UrZixfW20rMjQ+PjNdPWJlK0cscD0yO2JyZWFrfWlm''@;'; put 'put ''KCgwfChtPTB8YVttPj4yXSkpPDMmJjA9PStfW00rMzI+PjNdJiYwPT0rX1tNKzI0Pj4zXSl7aWYobT1wZSsyNjR8MCwwfGFbTT4+Ml0pe2FbbT4+Ml09MSxtPTB8dnIoMzIpLF9bbT4+M109ZixfW20rOD4+M109RyxfW20rMTY+PjNdPStfW1IrKChwPShrPDwxKS0xfDApPDw0KT4+M10rZixf''@;'; put 'put ''W20rMjQ+PjNdPStfW1IrKHA8PDQpKzg+PjNdK0cscD0yO2JyZWFrfWZvcihhW20+PjJdPTIsbT0wfGpIKCtfW1IrKChtPShrPDwxKS0xfDApPDw0KT4+M10sK19bUisobTw8NCkrOD4+M10scCksQT0wOzspe2lmKCgwfEEpPj0oMHxwKSlicmVhayBlO19bKFI9bSsoQTw8NCl8MCk+PjNdPStf''@;'; put 'put ''W1I+PjNdK2YsX1soUj1tKyhBPDw0KSs4fDApPj4zXT0rX1tSPj4zXStHLEE9QSsxfDB9fWlmKGs9MHxBcihtLGsrLTF8MCksYVtwZSsyNjQ+PjJdPTIsKDB8bSk8KDB8cCkpZm9yKG09MHx2cihEPDw0KSxwPTA7Oyl7aWYoKDB8cCk+PSgwfEQpKXtwPUQ7YnJlYWsgZX1fW20rKHA8PDQpPj4z''@;'; put 'put ''XT0rX1tSKygoTT1wK2t8MCk8PDQpPj4zXStmLF9bbSsocDw8NCkrOD4+M109K19bUisoTTw8NCkrOD4+M10rRyxwPXArMXwwfWVsc2UgZm9yKGI9KDB8bSkvKDB8cCl8MCxtPTB8dnIocDw8NCksQT0wLHc9MDs7KXtpZigoMHxBKT49KDB8cCkpYnJlYWsgZTtfW20rKEE8PDQpPj4zXT0rX1tS''@;'; put 'put ''KygoRD13K2t8MCk8PDQpPj4zXStmLF9bbSsoQTw8NCkrOD4+M109K19bUisoRDw8NCkrOD4+M10rRyxBPUErMXwwLHc9dytifDB9fWVsc2UgZ2U9MzF9d2hpbGUoMCk7MzE9PSgwfGdlKSYmKGFbcGUrMjY0Pj4yXT0wLG09MHx2cigzMiksX1ttPj4zXT1mLStfWzg4KyhwPTB8YVt3Pj4yXSk+''@;'; put 'put ''PjNdLF9bbSs4Pj4zXT1HLShPZT0uNSorX1twKzgwPj4zXSksX1ttKzE2Pj4zXT0rX1twKzk2Pj4zXStmLF9bbSsyND4+M109T2UrRyxwPTIpLDgxOTImcXx8TWgobCxtLG0scCksYVtwZSsyNzI+PjJdPW0sYVtwZSsyNjg+PjJdPXB9fXdoaWxlKDApO0w5KDB8TGkoYywxMDAwMzIpKSxmdW5j''@;'; put 'put ''dGlvbiB2YihsLGMpe2N8PTA7dmFyIGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYys1Nj4+Ml0pJiZDb1sxMjcmZl0obCl9KGwsYyl9ZnVuY3Rpb24gVG9lKGwpeyhmdW5jdGlvbiBlRShsKXt2YXIgYyxmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxh''@;'; put 'put ''W2MrNjA+PjJdKSYmQ29bMTI3JmZdKGwpfSkobHw9MCksT0MobCl9ZnVuY3Rpb24gTkgobCxjLGYpe2x8PTAsY3w9MDt2YXIgbSx3LGIsayxNLEEscD0wO009bGUsbGU9bGUrMTQ0fDAsYj1NLHA9MHxMaShmfD0wLDE0MTA1NSksdz0wfExpKGYsMTQxMTAxKSxrPTB8TGkoZiwxNDEwODgpLHVz''@;'; put 'put ''KGIsMTI4LE0rMTZ8MCksQT1jPzB8YVtjPj4yXTowLDAhPSgwfHApJiYwIT0oMHxmZVtwPj4wXSl8fChwPTB8TGkoZiwxMTE0NzcpKSxtPTB8d0YobCxmLGIpLFExKGwsQSxwLGM9dz8wfEE3KHcsZik6MCxrLG0sZiksRnQoYyksQzIoYiksbGU9TX1mdW5jdGlvbiBuUShsKXt2YXIgYz0wLGY9''@;'; put 'put ''MDtsPTB8QmEobHw9MCwwfGFbNDcxNTddLDE5NTA1OSk7ZTpkb3tpZigwfGZlW2w+PjBdKWZvcih6QShsKSxsPTAsYz0xODgyMjg7Oyl7aWYoIShmPTB8YVtjPj4yXSkpYnJlYWsgZTtsPShmPTA9PSgwfFppKGYsMTExMTAxKSkpPzE6bCxjPWMrNHwwfWVsc2UgbD0wfXdoaWxlKDApO3JldHVy''@;'; put 'put ''biAwfGx9ZnVuY3Rpb24gVkgobCl7dmFyIGM9MDtyZXR1cm4gMHwoND09KDB8YVs4KyhsfD0wKT4+Ml0pJiYwPT0oMHwoMHx+figoYz0rX1tsKzE2Pj4zXSkrKGM+PTA/LjU6LS41KSkpJTkwKSYmMD09K19bbCsyND4+M10/MD09K19bbCszMj4+M10mMTowKX1mdW5jdGlvbiBqSChsLGMsZil7''@;'; put 'put ''bD0rbCxjPStjO3ZhciBBLHcscD0wLG09MDtmb3IoQT02LjI4MzE4NTMwNzE3OTU4Ni8rKDB8KGZ8PTApKSx3PTB8dnIoZjw8NCkscD0wLG09MDshKCgwfG0pPj0oMHxmKSk7KV9bdysobTw8NCk+PjNdPStoYSgrcCkqbCxfW3crKG08PDQpKzg+PjNdPStEYSgrcCkqYyxwKz1BLG09bSsxfDA7''@;'; put 'put ''cmV0dXJuIDB8d31mdW5jdGlvbiByUShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wO2U6ZG97aWYoKDB8YVtsKzE1Nj4+Ml0pPj0yJiYoZj0wfHYyKGMsMHxzaShjLDAsMTAxNTEwLDApLDE5NTA1OSksKDB8akkobCxmKSk8PDI0Pj4yND09MCkpaWYoMHxmZVtmPj4wXSlmPTA7ZWxzZSBmb3IoZj0w''@;'; put 'put ''fER0KGMpOzspe2lmKCFmKXtmPTA7YnJlYWsgZX1pZigoMHx4b2UobCxjLGYpKTw8MjQ+PjI0KXtmPTE7YnJlYWsgZX1mPTB8enQoYyxmKX1lbHNlIGY9MX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIElvZShsLGMpe3ZhciBmO2N8PTAsZj0wfHhmKGx8PTApLGFbZis0Pj4yXT0xLGFb''@;'; put 'put ''Zis4Pj4yXT1jLGFbZisxMj4+Ml09MSxOSChsLDB8YVsxMisoMHxhW2MrMTY+PjJdKT4+Ml0sYyksZnVuY3Rpb24gRFIobCxjKXtjfD0wO3ZhciBmPTA7MHwoYz0wfGFbNjArKGx8PTApPj4yXSkmJjB8KGY9MHxhW2MrMzI+PjJdKSYmQ29bMTI3JmZdKGwpfShsLGMpfWZ1bmN0aW9uIFpJKGws''@;'; put 'put ''Yyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO2w9MHxMaShsfD0wLDE0MTA4Mik7ZTpkb3tpZigwIT0oMHxsKSYmMCE9KDB8ZmVbbD4+MF0pKWZvcih6QShsKSxmPTE4ODIyOCxsPTA7Oyl7Zm9yKDs7KXtpZighKHA9MHxhW2Y+PjJdKSl7Zj0xODgyMjg7YnJlYWsgZX1pZighKDB8WmkocCwx''@;'; put 'put ''MTExMDEpKSl7bT0xMDticmVha31pZighKDB8WmkocCwxMDYzMzQpKSl7cD1mLG09MTI7YnJlYWt9aWYoISgwfFppKHAsMTA2MzQxKSkpe3A9ZixtPTE0O2JyZWFrfWlmKCEoMHxaaShwLDEwNjMxNikpKXtwPWYsbT0xNjticmVha31mPWYrNHwwfWlmKDEwIT0oMHxtKSlpZigxMiE9KDB8bSkp''@;'; put 'put ''aWYoMTQhPSgwfG0pKWlmKDE2IT0oMHxtKSk7ZWxzZXtmb3IoO2FbKG09cCk+PjJdPUE9MHxhWyhwPXArNHwwKT4+Ml0sQTspbT0xNjtsfD00fWVsc2V7Zm9yKDthWyhtPXApPj4yXT1BPTB8YVsocD1wKzR8MCk+PjJdLEE7KW09MTQ7bHw9NjR9ZWxzZXtmb3IoO2FbKEE9cCk+PjJdPW09MHxh''@;'; put 'put ''WyhwPXArNHwwKT4+Ml0sbTspbT0xMjtsfD0zfWVsc2UgZj1mKzR8MCxsfD0xfWVsc2UgZj0wLGw9MH13aGlsZSgwKTtyZXR1cm4gYVtjPj4yXT1sLDB8Zn1mdW5jdGlvbiB1ayhsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEsYixwPTAsbT0wLHc9MCxrPTA7aWYoYj1sZSxsZT1sZSsxNnww''@;'; put 'put ''LEE9YixhWyh3PWIrNHwwKT4+Ml09MCxrPTA9PSgwfHM3KGwsMCx3KSksdz0wfGFbdz4+Ml0sayYmKDB8KHA9MHxhW3c+PjJdKSk+PTImJjAhPSgwfGFbYVsobT13Kzh8MCk+PjJdPj4yXSkpeygwfHApPjImJiRyKDAsMTAwNDE1LEEpLGs9MHxRbigxKygwfFVvKGwpKXwwKSxhW2M+PjJdPWss''@;'; put 'put ''cmQoaywwfGFbYVttPj4yXT4+Ml0pLDB8YVsxMisoMHxhW20+PjJdKT4+Ml0/KGs9KGs9MHxhW2M+PjJdKSsoMSsoMHxVbyhrKSkpfDAsYVtjKzQ+PjJdPWsscmQoaywwfGFbMTIrKDB8YVttPj4yXSk+PjJdKSk6YVtjKzQ+PjJdPTAsbD0wfGFbbT4+Ml07ZG97aWYoISgwfGZlW2wrOD4+MF0p''@;'; put 'put ''KXtpZigwfGZlW2wrMjA+PjBdKXtqbltmPj4yXT0xLStqbltsKzE2Pj4yXTticmVha31qbltmPj4yXT0wO2JyZWFrfWFbZj4+Ml09YVtsKzQ+PjJdfXdoaWxlKDApO0hBKHcpLGw9MX1lbHNlIGFbYz4+Ml09MCxIQSh3KSxsPTA7cmV0dXJuIGxlPWIsMHxsfWZ1bmN0aW9uIGR2ZShsLGMpeyhm''@;'; put 'put ''dW5jdGlvbiBxTShsLGMpe2N8PTA7dmFyIGY9MDswfChjPTB8YVs2MCsobHw9MCk+PjJdKSYmMHwoZj0wfGFbYyszNj4+Ml0pJiZDb1sxMjcmZl0obCl9KShsfD0wLGN8PTApLE9DKGwpfWZ1bmN0aW9uIFpIKGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgQSxtPTA7Zm9yKG09KDB8KG09KEE9MHxh''@;'; put 'put ''WyhjfD0wKT4+Ml0pPDwxKSk+KDB8KHB8PTApKT9tOnAsKDB8QSk8KDB8cCkmJihsPTB8VjAobCxtPDw0KSxhW2M+PjJdPW0pLGM9MDshKCgwfGMpPj0oMHxwKSk7KV9bbCsoYzw8NCk+PjNdPStfW2YrKDI0KmN8MCk+PjNdLF9bbCsoYzw8NCkrOD4+M109K19bZisoMjQqY3wwKSs4Pj4zXSxj''@;'; put 'put ''PWMrMXwwO3JldHVybiAwfGx9ZnVuY3Rpb24gekkobCxjKXt2YXIgZjtmPTB8YVsoY3w9MCk+PjJdLGFbKGx8PTApPj4yXT1hW2MrND4+Ml0sYVtsKzQ+PjJdPWZ9ZnVuY3Rpb24gRG9lKGwsYyl7bHw9MDt2YXIgbSxmPTAscD0wO2ZvcihtPTE2KyhjfD0wKXwwLHA9MTshKCgwfHApPigwfGFb''@;'; put 'put ''MTgwKyhjPTB8YVttPj4yXSk+PjJdKSk7KURvZShsLGY9MHxhWygwfGFbYysxODQ+PjJdKSsocDw8Mik+PjJdKSwwfChjPTB8TGkoZiwxNDA4MjMpKSYmMHxmZVtjPj4wXSYmbWEobCxjKSwwfChjPTB8TGkoZiwxMzc3MjkpKSYmMHxmZVtjPj4wXSYmbWEobCxjKSwwfChjPTB8TGkoZiwxNDA5''@;'; put 'put ''NzcpKSYmMHxmZVtjPj4wXSYmbWEobCxjKSwwfChjPTB8TGkoZiwxMDE0MTgpKSYmMHxmZVtjPj4wXSYmaGwobCxjKSwwfChjPTB8TGkoZiwxMDE0NDYpKSYmMHxmZVtjPj4wXSYmbWEobCxjKSxwPXArMXwwfWZ1bmN0aW9uIGd2ZShsKXtsfD0wO3ZhciBjPTAsZj0wLHA9MDtyZXR1cm4oYz0w''@;'; put 'put ''fGFbNDcxMjddKXx8KGM9MHxpcygyMDYyOCwwfGFbNDU4MV0pLGFbNDcxMjddPWMpLDB8bWlbNjMmYVtjPj4yXV0oYyxsLDQpP2M9MDoocD0wfGFbKGY9MHxhWzQ3MTI3XSk+PjJdLGM9MHxyYShsKSxtaVs2MyZwXShmLGMsMSksYz0xKSwwfGN9ZnVuY3Rpb24gc2MobCl7dmFyIGM9MDtjPTB8''@;'; put 'put ''YVs0NzEyOF0sKGx8PTApPyhhWzQ3MTI4XT1jKzEsY3x8KGFbNDcxMjldPTB8cmEoMHxJaigxLDApKSxJaigxLDE1MzU2MykpKTooMHxjKT4wJiYoYVs0NzEyOF09Yz1jKy0xfDAsMD09KDB8YykpJiYoSWooMSwwfGFbNDcxMjldKSxGdCgwfGFbNDcxMjldKSl9ZnVuY3Rpb24gZzIobCxjKXts''@;'; put 'put ''fD0wLGN8PTA7dmFyIEcsZ2UsT2UsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO09lPWxlLGxlPWxlKzk2fDAsRz1PZSs0OHwwLGdlPU9lKzI0fDAscD1PZSs4fDAsZj1PZTtkb3tpZigwIT0oMHxoMChjLDEzNzQ4MywwLDEpKSYmMCE9KDB8YVs4KygwfGFbKFI9Yysx''@;'; put 'put ''NnwwKT4+Ml0pPj4yXSkpe0xvZShjKSxPb2UobCxjKSxSb2UobCxjKSxzYygxKSxiPWwrNTZ8MCxrPWwrMTg0fDAsTT1sKzE5MnwwLEQ9bCsyOHwwLHc9MHx6RyhsKTtlOmZvcig7Oyl7aWYoIXcpe0E9MzM7YnJlYWt9aWYoKGY9MHxhW2I+PjJdKT8oYVt3KzIwPj4yXT1hW2YrOD4+Ml0sZj0w''@;'; put 'put ''fGFbZisxMj4+Ml0pOihhW3crMjA+PjJdPTAsZj0wKSxhW3crMjQ+PjJdPWYsYVt3KzEyPj4yXT1sLGFbdysyOD4+Ml09YVtrPj4yXSxhW3crNjIwPj4yXT0yNTc2NCxhW3crNjI0Pj4yXT0xNCwhKDB8YVs4KygwfGFbUj4+Ml0pPj4yXSkpe0E9MTM7YnJlYWt9c3dpdGNoKEE9MHxrOSh3LDB8''@;'; put 'put ''YVsocD13KzUyfDApPj4yXSksYVt3KzU2Pj4yXT1BLDB8QSl7Y2FzZSA5OTk6QT0xNjticmVhayBlO2Nhc2UgMjE6Zj0xO2JyZWFrO2Nhc2UgMjQ6Zj01MjA7YnJlYWs7ZGVmYXVsdDpmPTB8b1EoYyl9YVsobT13KzE1MnwwKT4+Ml09YVttPj4yXXxmLGY9MHxhW00+PjJdO2Rve2lmKGYpe2lm''@;'; put 'put ''KDMyJmFbZisxNTI+PjJdfDAmJjA9PSgwfFppKDB8YVtwPj4yXSwwfGFbZis1Mj4+Ml0pKSl7aWYoIShmPTB8YVs0NzEzMF0pKXtBPTI3O2JyZWFrfWFbZis4Pj4yXT13LGFbdyszNj4+Ml09YVtmKzM2Pj4yXSxBPTI5O2JyZWFrfVM5KGYpLGFbTT4+Ml09MCxhW0Q+PjJdPTAsQT0yNH1lbHNl''@;'; put 'put ''IEE9MjR9d2hpbGUoMCk7MjQ9PSgwfEEpJiYoYVs0NzEzMF09MCxBPTI3KSwyNz09KDB8QSkmJihBPTAsMD09KDB8VFIodykpKSYmKGFbTT4+Ml09dyxBPTI5KSwyOT09KDB8QSkmJihhW3crOD4+Ml09MCxhW3crMTA0Pj4yXT0yNTg3NixCb2UodyksR0kodyksUG9lKHcsYyksRm9lKHcsYyks''@;'; put 'put ''SG9lKHcsYyksMTI4JmFbbT4+Ml18fGdXKHcsYyksYVs0NzEzMF09dyksdz0wfFZtZShsKX1pZigxMz09KDB8QSkpeyRyKDEsMTAwNjc5LGdlKSxzYygwKSxmPS0xO2JyZWFrfWlmKDE2PT0oMHxBKSl7YVtHPj4yXT1hW3A+PjJdLCRyKDEsMTAwNzAwLEcpLHNjKDApLGY9LTE7YnJlYWt9aWYo''@;'; put 'put ''MzM9PSgwfEEpKXtzYygwKSxmPTA7YnJlYWt9fWVsc2UgQT01fXdoaWxlKDApO3JldHVybiA1PT0oMHxBKSYmKCRyKDEsMTAwNjAyLGYpLGY9LTEpLGxlPU9lLDB8Zn1mdW5jdGlvbiBMb2UobCl7dmFyIGM9MDtmb3IoYz0wfER0KGx8PTApO2M7KWpvZShsLGMpLGM9MHx6dChsLGMpfWZ1bmN0''@;'; put 'put ''aW9uIE9vZShsLGMpe3ZhciB3LGIsRCxmPTAscD0wLG09MCxBPTAsaz0wLE09MCxSPTA7RD1sZSxsZT1sZSszMnwwLGI9RCsyNHwwLHA9RCsxNnwwLHc9RCs4fDAsTT1ELGFbMTY4KyhsfD0wKT4+Ml09Y3w9MCxmZVsobT1sKzI5M3wwKT4+MF09MCwwfChmPTB8TGkoYywxMDU0OTYpKSYmKGFb''@;'; put 'put ''cD4+Ml09dyxhW3ArND4+Ml09TSwoMHwoQT0wfGlsKGYsMTA1NTAzLHApKSk+MCkmJihfWyhmPWwrMjA4fDApPj4zXT1SPTcyKitfW3c+PjNdLF9bbCsyMDA+PjNdPVIsMSE9KDB8QSkmJihfW2Y+PjNdPTcyKitfW00+PjNdKSxmZVttPj4wXT0xKSxmZVsocD1sKzI5MnwwKT4+MF09MCwwfChm''@;'; put 'put ''PTB8TGkoYywxMDExMDIpKSYmKGFbYj4+Ml09dyxhW2IrND4+Ml09TSwoMHwoaz0wfGlsKGYsMTA1NTAzLGIpKSk+MCkmJihfWyhmPWwrMjI0fDApPj4zXT1SPTcyKitfW3c+PjNdLF9bbCsyMTY+PjNdPVIsMSE9KDB8aykmJihfW2Y+PjNdPTcyKitfW00+PjNdKSxmZVtwPj4wXT0xKSxmZVso''@;'; put 'put ''Zj1sKzI5NHwwKT4+MF09MCxhWyhwPWwrMjMyfDApPj4yXT1hWyhNPTQ4KygwfGFbOCsoMHxhWyhtPWMrMTZ8MCk+PjJdKT4+Ml0pfDApPj4yXSxhW3ArND4+Ml09YVtNKzQ+PjJdLGFbcCs4Pj4yXT1hW00rOD4+Ml0sYVtwKzEyPj4yXT1hW00rMTI+PjJdLCtfWzQ4KyhwPTB8YVs4KygwfGFb''@;'; put 'put ''bT4+Ml0pPj4yXSk+PjNdPi4wMDEmJitfW3ArNTY+PjNdPi4wMDEmJihmZVtmPj4wXT0xKSxhW2wrMjg4Pj4yXT0wfGZlW3ArODE+PjBdPzkwOjAsYVsoZj1sKzE5NnwwKT4+Ml09MTAxMTA2LDB8KHA9MHxMaShjLDEwMTEwOSkpJiYwfGZlW3A+PjBdJiYoYVtmPj4yXT1wKSxhWyhNPWwrMjU2''@;'; put 'put ''fDApPj4yXT1hWyhrPTE2KygwfGFbbT4+Ml0pfDApPj4yXSxhW00rND4+Ml09YVtrKzQ+PjJdLGFbTSs4Pj4yXT1hW2srOD4+Ml0sYVtNKzEyPj4yXT1hW2srMTI+PjJdLGFbTSsxNj4+Ml09YVtrKzE2Pj4yXSxhW00rMjA+PjJdPWFbaysyMD4+Ml0sYVtNKzI0Pj4yXT1hW2srMjQ+PjJdLGFb''@;'; put 'put ''TSsyOD4+Ml09YVtrKzI4Pj4yXSxhWzQ3MTQxXT0wfHNpKGMsMCwxMDE0NzIsMCksYVs0NzE0Ml09MHxzaShjLDAsMTAxNDYzLDApLGFbbCszMjA+PjJdPTB8QmEoMCwwfGFbNDcxNTFdLDEwNzk5NCksX1tsKzMyOD4+M109K01sKDAsMHxhWzQ3MTUwXSwxNCwxKSxhW2wrMzM2Pj4yXT0yMDY2''@;'; put 'put ''NCxhW2wrMTg4Pj4yXT0wfHRpKGMpLGxlPUR9ZnVuY3Rpb24gUm9lKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wOzB8KHA9MHxhWyhmPTMwNCsobHw9MCl8MCk+PjJdKSYmKEZ0KHApLGFbZj4+Ml09MCksMHwoZj0wfGFbKHA9bCszMDh8MCk+PjJdKSYmKEZ0KGYpLGFbcD4+Ml09MCksMHwoZj0w''@;'; put 'put ''fGFbKG09bCszMTZ8MCk+PjJdKSYmKEZ0KGYpLGFbbT4+Ml09MCksKGY9MHxMaShjLDEwMDg1MykpPyhhW2wrMzEyPj4yXT0wfGZ1bmN0aW9uIE5vZShsLGMsZil7bHw9MCxmfD0wO3ZhciBBLGIscD0wLG09MCx3PTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxtPWIscD0wfExpKGN8PTAsMTAwOTcz''@;'; put 'put ''KSxhWyh3PWwrMjk2fDApPj4yXT0wPT0oMHxwKT8xMDA5ODI6cCxjPTB8TGkoYywxMDA5ODYpLGFbKHA9bCszMDB8MCk+PjJdPWM9MD09KDB8Yyk/MTAwOTk5OmMsMHwoYz0wfGZ1bmN0aW9uIFNjZShsLGMpe3JldHVybiBjPShsfD0wKSsoMHxMaihsLGN8PTApKXwwLDB8KDB8ZmVbYz4+MF0/''@;'; put 'put ''YzowKX0oMHxhW3c+PjJdLGMpKSYmKGFbbT4+Ml09ZmVbYz4+MF0sJHIoMCwxMDEwMDEsbSksYVtwPj4yXT0xOTUwNTkpLGM9MHxyYShmKSxhW2wrMzA0Pj4yXT1jLEE9bCszMDh8MCxwPTAsbD0wO2Y9MHxsdihjLDB8YVt3Pj4yXSk7KW09bCsxfDAsKDB8bCk8KDB8cCk/Yz0wfGFbQT4+Ml06''@;'; put 'put ''KHA9cCsxMjh8MCxjPShjPTB8YVtBPj4yXSk/MHxWMChjLHA8PDIpOjB8UW4ocDw8MiksYVtBPj4yXT1jKSxhW2MrKG08PDIpPj4yXT1mLGw9bSxjPTA7cmV0dXJuIDB8bCYmKHc9MHxWMCgwfGFbQT4+Ml0sOCsobDw8Mil8MCksYVtBPj4yXT13LGFbdz4+Ml09MCxhWygwfGFbQT4+Ml0pKyhs''@;'; put 'put ''KzE8PDIpPj4yXT0wKSxsZT1iLDB8bH0obCxjLGYpLDB8KGY9MHxMaShjLDEwMDg2MCkpJiYwfGZlW2Y+PjBdJiYoYVttPj4yXT0wfGZ1bmN0aW9uIFZvZShsLGMpe2N8PTA7dmFyIGIsayxNLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKE09bGUsbGU9bGUrMTZ8MCxrPU0sZj0wfFFuKDgrKGFb''@;'; put 'put ''KGI9MzEyKyhsfD0wKXwwKT4+Ml08PDIpfDApLHA9MCx3PTE7ISgoMHx3KT4oMHwoQT0wfGFbYj4+Ml0pKSk7KW09cCsxfDAsKDB8RW9lKGwsdyxBLGMpKTw8MjQ+PjI0JiYoYVtmKyhtPDwyKT4+Ml09dyxwPW0pLHc9dysxfDA7cmV0dXJuIHA/KGFbZj4+Ml09cCxhW2YrKHArMTw8Mik+PjJd''@;'; put 'put ''PTErKDB8YVtiPj4yXSkpOihhW2s+PjJdPWMsJHIoMCwxMDA4NzIsayksRnQoZiksZj0wKSxsZT1NLDB8Zn0obCxmKSkpOihhW3A+PjJdPTAsYVtsKzMxMj4+Ml09MSl9ZnVuY3Rpb24gb1EobCl7bD0wfExpKGx8PTAsMTAwODIxKTtlOmRve2lmKGwpc3dpdGNoKDB8ZmVbbD4+MF0pe2Nhc2Ug''@;'; put 'put ''MTEwOmlmKDB8WmkobCsxfDAsMTAwODMzKSl7bD0wO2JyZWFrIGV9bD0xO2JyZWFrO2Nhc2UgMTAxOmlmKDB8WmkobCsxfDAsMTAwODQzKSl7bD0wO2JyZWFrIGV9bD0xNjticmVhaztkZWZhdWx0Omw9MDticmVhayBlfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gQm9l''@;'; put 'put ''KGwpe3ZhciBjPTAsZj0wOzB8ZmVbMjkyKyhmPTB8YVsobHw9MCk+PjJdKT4+MF0/KGFbKGw9bCsyNDB8MCk+PjJdPWFbKGY9ZisyMTZ8MCk+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml0pOihfW2wrMjQ4Pj4zXT1jPTMw''@;'; put 'put ''MD09KDB8YVtsKzU2Pj4yXSk/K19bOCsoMHxhW2wrNjg+PjJdKT4+M106NCxfW2wrMjQwPj4zXT1jKX1mdW5jdGlvbiBHSShsKXt2YXIgYz0wO2M9MHxhWyhsfD0wKT4+Ml07ZTpkb3tpZigwfGZlW2MrMjkzPj4wXSlsPWwrNDE2fDAsYz1jKzIwMHwwLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+''@;'; put 'put ''Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdO2Vsc2Ugc3dpdGNoKDB8YVtsKzU2Pj4yXSl7Y2FzZSAzMDA6YVsoYz1sKzQxNnwwKT4+Ml09YVsobD04KygwfGFbbCs4ND4+Ml0pfDApPj4yXSxhW2MrND4+Ml09YVtsKzQ+PjJdLGFbYys4Pj4y''@;'; put 'put ''XT1hW2wrOD4+Ml0sYVtjKzEyPj4yXT1hW2wrMTI+PjJdO2JyZWFrIGU7Y2FzZSAzMDpjYXNlIDIxOmNhc2UgMjI6Y2FzZSA0OmNhc2UgMzpjYXNlIDI6X1tsKzQyND4+M109MzYsX1tsKzQxNj4+M109MzY7YnJlYWsgZTtkZWZhdWx0OmFbKGM9bCs0MTZ8MCk+PjJdPTAsYVtjKzQ+PjJdPTAs''@;'; put 'put ''YVtjKzg+PjJdPTAsYVtjKzEyPj4yXT0wO2JyZWFrIGV9fXdoaWxlKDApfWZ1bmN0aW9uIFBvZShsLGMpe3ZhciBmLHA9MDtwPTB8YVsxOTIrKDB8YVsobHw9MCk+PjJdKT4+Ml0sZj0rX1syNCsoMHxhWzgrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPj4zXTtkb3tpZigwPT1mKXtpZigwfHAm''@;'; put 'put ''JjB8ZmVbcCsxMjg+PjBdKXthWyhsPWwrNDMyfDApPj4yXT1hWyhwPXArMTEyfDApPj4yXSxhW2wrND4+Ml09YVtwKzQ+PjJdLGFbbCs4Pj4yXT1hW3ArOD4+Ml0sYVtsKzEyPj4yXT1hW3ArMTI+PjJdO2JyZWFrfWlmKGM9bCs0MzJ8MCwzMDA9PSgwfGFbbCs1Nj4+Ml0pKXthW2M+PjJdPWFb''@;'; put 'put ''KGw9NDArKDB8YVtsKzg0Pj4yXSl8MCk+PjJdLGFbYys0Pj4yXT1hW2wrND4+Ml0sYVtjKzg+PjJdPWFbbCs4Pj4yXSxhW2MrMTI+PjJdPWFbbCsxMj4+Ml07YnJlYWt9X1tsKzQ0MD4+M109OTYsX1tjPj4zXT05NjticmVha31fW2wrNDQwPj4zXT1mLF9bbCs0MzI+PjNdPWZ9d2hpbGUoMCl9''@;'; put 'put ''ZnVuY3Rpb24gRm9lKGwsYyl7Y3w9MDt2YXIgRCxSLEcscSxwZSxnZSxPZSxMZSxSZSxIZSxWZSxxZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLGJlPTA7cWU9bGUsbGU9bGUrMTEyfDAsZ2U9cWUrODB8MCxiZT1xZSs1NnwwLHBlPXFlKzQwfDAsT2U9cWUrMzJ8MCxMZT1xZSsy''@;'; put 'put ''NHwwLFJlPXFlKzE2fDAsSGU9cWUrOHwwLFZlPXFlLEQ9K19bMjcyKyhrPTB8YVsobHw9MCk+PjJdKT4+M10sRz0rX1trKzI4MD4+M10scT0rX1trKzI2ND4+M10sX1tsKzIwOD4+M109Zj0oUj0rX1trKzI1Nj4+M10pLShwPStfW2wrMjQwPj4zXSksX1tsKzIxNj4+M109dz1xLShBPStfW2wr''@;'; put 'put ''MjQ4Pj4zXSksX1tsKzIyND4+M109cCs9RCxfW2wrMjMyPj4zXT1BKz1HLGY9cC1mLHc9QS13LF9bUmU+PjNdPTEsQT0rX1s2NCsobT0wfGFbOCsoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXTtkb3tpZihBPi4wMDEmJihiPStfW20rNzI+PjNdKT4uMDAxKXtpZighKEE8KGY9MD09Zj9BOmYpfGI8''@;'; put 'put ''KHA9MD09dz9iOncpfHxiPnAmQT5mJjAhPSgwfGZlW20rODA+PjBdKSkpe2I9Zix3PXAsQT0xO2JyZWFrfV9bUmU+PjNdPUE9KChNPUEvZjxiL3ApP0E6YikvKE0/ZjpwKSxiPWYsdz1wfWVsc2UgYj1mLEE9MX13aGlsZSgwKTtpZihfW0hlPj4zXT1wPS41KihSK0QpLF9bVmU+PjNdPWY9LjUq''@;'; put 'put ''KHErRyksYVtsKzM2MD4+Ml09YVtrKzI4OD4+Ml0sX1tPZT4+M109Yio9QSxfW0xlPj4zXT13Kj1BLG09MHxMaShjLDEwMDc1Mikpe2s9MHxGMCgxKygwfFVvKG0pKXwwKSxNPTB8RjAoMSsoMHxVbyhtKSl8MCksYVtwZT4+Ml09T2UsYVtwZSs0Pj4yXT1MZSxhW3BlKzg+PjJdPVJlLGFbcGUr''@;'; put 'put ''MTI+PjJdPWs7ZG97aWYoND09KDB8aWwobSwxMDA3NjEscGUpKSkwfChtPTB8R3IoMHxhW2MrNjA+PjJdLGssMCkpJiYoX1tIZT4+M109K19bMTYrKGJlPTB8YVttKzE2Pj4yXSk+PjNdLF9bVmU+PjNdPStfW2JlKzI0Pj4zXSk7ZWxzZXtpZihhW2JlPj4yXT1PZSxhW2JlKzQ+PjJdPUxlLGFb''@;'; put 'put ''YmUrOD4+Ml09UmUsYVtiZSsxMj4+Ml09ayxhW2JlKzE2Pj4yXT1NLDQhPSgwfGlsKG0sMTAwNzgxLGJlKSkpe2FbZ2U+PjJdPU9lLGFbZ2UrND4+Ml09TGUsYVtnZSs4Pj4yXT1SZSxhW2dlKzEyPj4yXT1IZSxhW2dlKzE2Pj4yXT1WZSxpbChtLDEwMDgwMSxnZSk7YnJlYWt9MHwobT0wfEdy''@;'; put 'put ''KDB8YVtjKzYwPj4yXSxrLDApKSYmKF9bSGU+PjNdPStfWzE2KyhiZT0wfGFbbSsxNj4+Ml0pPj4zXSxfW1ZlPj4zXT0rX1tiZSsyND4+M10pfX13aGlsZSgwKTtGdChrKSxGdChNKSxiPStfW09lPj4zXSx3PStfW0xlPj4zXSxBPStfW1JlPj4zXSxwPStfW0hlPj4zXSxmPStfW1ZlPj4zXX1f''@;'; put 'put ''W2wrMzY4Pj4zXT1iLF9bbCszNzY+PjNdPXcsX1tsKzM1Mj4+M109QSxfW2wrMzM2Pj4zXT1wLF9bbCszNDQ+PjNdPWYsbGU9cWV9ZnVuY3Rpb24gSG9lKGwsYyl7Y3w9MDt2YXIgRyxwZSxWZSxxZSxydCxXZSxhdCxTdCxrdCxzdCxjdCxTbixIbix1cixIcixmPTAscD0wLG09MCxBPTAsdz0w''@;'; put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAscT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLEV0PTAsWnQ9MCxidD0wLGFuPTA7U249bGUsbGU9bGUrMjI0fDAsY3Q9U24rMjAwfDAsVmU9U24rMTY4fDAsU3Q9U24rMTQ0fDAsWnQ9U24rMTIwfDAsa3Q9U24rOTZ8MCxmPVNuKzE4NHwwLE9l''@;'; put 'put ''PVNuKzE3NnwwLExlPVNuKzE2MHwwLEhlPVNuKzEzNnwwLFJlPVNuKzExMnwwLHFlPVNuKzgwfDAscnQ9U24rNDh8MCxXZT1TbiszMnwwLGF0PVNuKzE2fDAsYnQ9U24rOHwwLGFuPVNuLGJlPTB8YVsobHw9MCk+PjJdLGFbKHN0PVNuKzY0fDApPj4yXT0wLGFbc3QrND4+Ml09MCxhW3N0Kzg+''@;'; put 'put ''PjJdPTAsYVtzdCsxMj4+Ml09MCxhW1p0Pj4yXT1hWyhFdD1sKzM2OHwwKT4+Ml0sYVtadCs0Pj4yXT1hW0V0KzQ+PjJdLGFbWnQrOD4+Ml09YVtFdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW0V0KzEyPj4yXSwwfGFbKEV0PWwrMzYwfDApPj4yXSYmKGFbY3Q+PjJdPWFbWnQ+PjJdLGFbY3QrND4+''@;'; put 'put ''Ml09YVtadCs0Pj4yXSxhW2N0Kzg+PjJdPWFbWnQrOD4+Ml0sYVtjdCsxMj4+Ml09YVtadCsxMj4+Ml0sY2soZixjdCksYVtadD4+Ml09YVtmPj4yXSxhW1p0KzQ+PjJdPWFbZis0Pj4yXSxhW1p0Kzg+PjJdPWFbZis4Pj4yXSxhW1p0KzEyPj4yXT1hW2YrMTI+PjJdKSxhW2t0Pj4yXT1hWyhn''@;'; put 'put ''ZT1sKzQxNnwwKT4+Ml0sYVtrdCs0Pj4yXT1hW2dlKzQ+PjJdLGFba3QrOD4+Ml09YVtnZSs4Pj4yXSxhW2t0KzEyPj4yXT1hW2dlKzEyPj4yXSwwIT0oMHxmZVtiZSsyOTQ+PjBdKSYmMCE9KDMyJmFbbCsxNTI+PjJdfDApPyhfW1N0Pj4zXT1BPStfW2JlKzIzMj4+M10tMiorX1trdD4+M10s''@;'; put 'put ''X1soUj1TdCs4fDApPj4zXT1iPStfW2JlKzI0MD4+M10tMiorX1trdCs4Pj4zXSxBPDFlLTQ/KGFbbCsxNjQ+PjJdPTEsZj0xKTooYVsocD1sKzE2NHwwKT4+Ml09Zj1+figoRD0rX1tadD4+M10pL0EpLEQtQSorKDB8Zik+MWUtNCYmKGFbcD4+Ml09Zj1mKzF8MCkpLGI8MWUtND8oYVtsKzE2''@;'; put 'put ''OD4+Ml09MSxwPTEsbT0rX1tadCs4Pj4zXSk6KGFbKHc9bCsxNjh8MCk+PjJdPXA9fn4oKG09K19bWnQrOD4+M10pL2IpLG0tYiorKDB8cCk+MWUtNCYmKGFbdz4+Ml09cD1wKzF8MCkpLGFbbCsyMDQ+PjJdPTB8QXIocCxmKSxfW1p0Pj4zXT1EPStfWygrX1tadD4+M108QT9adDpTdCk+PjNd''@;'; put 'put ''LGY9UixwPVp0LGs9K19bKG08Yj9adDpTdCkrOD4+M10sbT1ELHc9MjEpOigwfGFbbCs2OD4+Ml0/KF9bU3Q+PjNdPUE9KEE9K19bMjQrKGY9MHxhW2wrODQ+PjJdKT4+M10tMiorX1trdD4+M10pPDA/MDpBLEQ9K19bZiszMj4+M10tMiorX1trdCs4Pj4zXSxfWyhmPVN0Kzh8MCk+PjNdPUQs''@;'; put 'put ''RDwwPyhwPVN0LHc9MTcpOmY9U3QpOihfW1N0Kzg+PjNdPTAscD1TdCxmPVN0LHc9MTcpLDE3PT0oMHx3KSYmKF9bZj4+M109MCxmPXAsQT0rX1twPj4zXSksYVtsKzIwND4+Ml09MSxhW2wrMTY4Pj4yXT0xLGFbbCsxNjQ+PjJdPTEsQTwobT0rX1tadD4+M10pJiYoX1tmPj4zXT1tLEE9bSks''@;'; put 'put ''KGI9K19bKGY9U3QrOHwwKT4+M10pPChrPStfW1p0Kzg+PjNdKT8ocD1TdCx3PTIxKToocT1mLGs9YikpLDIxPT0oMHx3KSYmKF9bcCs4Pj4zXT1rLHE9ZixrPStfW2Y+PjNdKSxhW2wrNDQ4Pj4yXT1+figoYj0uMDEzODg4ODg4ODg4ODg4ODg4KitfWyhwZT1sKzQzMnwwKT4+M10qKDIqKE09''@;'; put 'put ''K19ba3Q+PjNdKStBKSkrKGI+PTA/LjU6LS41KSksYVtsKzQ1Mj4+Ml09fn4oKEQ9LjAxMzg4ODg4ODg4ODg4ODg4OCorX1soZ2U9bCs0NDB8MCk+PjNdKigyKihiPStfWyhHPWt0Kzh8MCk+PjNdKStrKSkrKEQ+PTA/LjU6LS41KSksdz1sKzE4OHwwLFI9bCsxODB8MCxwPWJlKzE5NnwwLGFb''@;'; put 'put ''KGY9bCsxNzJ8MCk+PjJdPTAsYVtmKzQ+PjJdPTAsYVtmKzg+PjJdPTAsYVtmKzEyPj4yXT0wLGFbZisxNj4+Ml09MCxhW2YrMjA+PjJdPTAsV0koT2UsbCwwfGZlW2FbcD4+Ml0+PjBdKSxPZT0wfGFbKGJlPU9lKSs0Pj4yXSxhWyhmPVIpPj4yXT1hW2JlPj4yXSxhW2YrND4+Ml09T2UsV0ko''@;'; put 'put ''TGUsbCwwfGZlWzErKDB8YVtwPj4yXSk+PjBdKSxMZT0wfGFbKGY9TGUpPj4yXSxmPTB8YVtmKzQ+PjJdLGFbKE9lPXcpPj4yXT1MZSxhW09lKzQ+PjJdPWYsMT09KDB8KCgwfChMZT0oMHxhW1I+PjJdKStMZXwwKSk+LTE/TGU6MC1MZXwwKSkmJjE9PSgwfCgoMHwoTGU9KDB8YVtsKzE4ND4+''@;'; put 'put ''Ml0pK2Z8MCkpPi0xP0xlOjAtTGV8MCkpfHwoV0koSGUsbCw2NiksSGU9MHxhWyhPZT1IZSkrND4+Ml0sYVsoTGU9Uik+PjJdPWFbT2U+PjJdLGFbTGUrND4+Ml09SGUsV0koUmUsbCw3NiksUmU9MHxhWyhMZT1SZSkrND4+Ml0sYVsoSGU9dyk+PjJdPWFbTGU+PjJdLGFbSGUrND4+Ml09UmUs''@;'; put 'put ''YVtWZT4+Ml09YVtwPj4yXSwkcigwLDEwMDczMixWZSkpLDB8ZmVbODIrKDB8YVs4KygwfGFbYysxNj4+Ml0pPj4yXSk+PjBdPyhBPm0/X1tzdD4+M109az0uNSooQS1tKTprPTAsKEE9K19bcT4+M10pPihEPStfW1p0Kzg+PjNdKT9fW3N0Kzg+PjNdPUE9LjUqKEEtRCk6QT0wKTooQT0wLGs9''@;'; put 'put ''MCksMHxhW0V0Pj4yXT8oYVtjdD4+Ml09YVtadD4+Ml0sYVtjdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbY3QrOD4+Ml09YVtadCs4Pj4yXSxhW2N0KzEyPj4yXT1hW1p0KzEyPj4yXSxjayhxZSxjdCksYVtadD4+Ml09YVtxZT4+Ml0sYVtadCs0Pj4yXT1hW3FlKzQ+PjJdLGFbWnQrOD4+Ml09YVtx''@;'; put 'put ''ZSs4Pj4yXSxhW1p0KzEyPj4yXT1hW3FlKzEyPj4yXSxhW2N0Pj4yXT1hW1N0Pj4yXSxhW2N0KzQ+PjJdPWFbU3QrND4+Ml0sYVtjdCs4Pj4yXT1hW1N0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbU3QrMTI+PjJdLGNrKHJ0LGN0KSxhW1N0Pj4yXT1hW3J0Pj4yXSxhW1N0KzQ+PjJdPWFbcnQrND4+''@;'; put 'put ''Ml0sYVtTdCs4Pj4yXT1hW3J0Kzg+PjJdLGFbU3QrMTI+PjJdPWFbcnQrMTI+PjJdLGFbY3Q+PjJdPWFba3Q+PjJdLGFbY3QrND4+Ml09YVtrdCs0Pj4yXSxhW2N0Kzg+PjJdPWFba3QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtrdCsxMj4+Ml0sY2soV2UsY3QpLGFba3Q+PjJdPWFbV2U+PjJdLGFb''@;'; put 'put ''a3QrND4+Ml09YVtXZSs0Pj4yXSxhW2t0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtrdCsxMj4+Ml09YVtXZSsxMj4+Ml0sYVtjdD4+Ml09YVtzdD4+Ml0sYVtjdCs0Pj4yXT1hW3N0KzQ+PjJdLGFbY3QrOD4+Ml09YVtzdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW3N0KzEyPj4yXSxjayhhdCxjdCksYVtz''@;'; put 'put ''dD4+Ml09YVthdD4+Ml0sYVtzdCs0Pj4yXT1hW2F0KzQ+PjJdLGFbc3QrOD4+Ml09YVthdCs4Pj4yXSxhW3N0KzEyPj4yXT1hW2F0KzEyPj4yXSxNPStfW2t0Pj4zXSxrPStfW3N0Pj4zXSxiPStfW0c+PjNdLEE9K19bc3QrOD4+M10sbT0rX1tadD4+M10sdz0wPT0oMHxhW0V0Pj4yXSkpOnc9''@;'; put 'put ''MSxfW2wrMzg0Pj4zXT1EPWsrTSxfW2wrMzkyPj4zXT11cj1BK2IsX1tsKzQwMD4+M109SG49aytNK20sX1tsKzQwOD4+M109TT1BK2IrKEhyPStfW1p0Kzg+PjNdKSxfW2wrMzIwPj4zXT1tLyhrPStfW2wrMzUyPj4zXSksX1tsKzMyOD4+M109SHIvayxhWyhwPWwrNDU2fDApPj4yXT1+figo''@;'; put 'put ''RD0uMDEzODg4ODg4ODg4ODg4ODg4KkQqKGs9K19bcGU+PjNdKSkrKEQ+PTA/LjU6LS41KSksYVtsKzQ2MD4+Ml09fn4oKGI9LjAxMzg4ODg4ODg4ODg4ODg4OCp1ciooRD0rX1tnZT4+M10pKSsoYj49MD8uNTotLjUpKSxhWyhmPWwrNDY0fDApPj4yXT1+figoayo9LjAxMzg4ODg4ODg4ODg4''@;'; put 'put ''ODg4OCpIbikrKGs+PTA/LjU6LS41KSksYVtsKzQ2OD4+Ml09fn4oKEQqPS4wMTM4ODg4ODg4ODg4ODg4ODgqTSkrKEQ+PTA/LjU6LS41KSksd3x8KGFbY3Q+PjJdPWFbcD4+Ml0sYVtjdCs0Pj4yXT1hW3ArND4+Ml0sekkoYnQsY3QpLGJ0PTB8YVsoWnQ9YnQpKzQ+PjJdLGFbKGw9cCk+PjJd''@;'; put 'put ''PWFbWnQ+PjJdLGFbbCs0Pj4yXT1idCxhW2N0Pj4yXT1hW2Y+PjJdLGFbY3QrND4+Ml09YVtmKzQ+PjJdLHpJKGFuLGN0KSxidD0wfGFbKGw9YW4pKzQ+PjJdLGFbKGFuPWYpPj4yXT1hW2w+PjJdLGFbYW4rND4+Ml09YnQpLGxlPVNufWZ1bmN0aW9uIGNrKGwsYyl7dmFyIGY7Zj0rX1soY3w9''@;'; put 'put ''MCk+PjNdLF9bKGx8PTApPj4zXT0rX1tjKzg+PjNdLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIFdJKGwsYyxmKXtzd2l0Y2gobHw9MCxjfD0wLChmPSgoZnw9MCk8PDI0Pj4yNCktNjZ8MCk+Pj4xfGY8PDMxfDApe2Nhc2UgOTphW2MrMTc2Pj4yXT0oMHxhW2MrMTY4Pj4yXSktMSxjPTAsZj0tMTti''@;'; put 'put ''cmVhaztjYXNlIDA6Yz0wLGY9MTticmVhaztjYXNlIDU6Yz0xLGY9MDticmVhaztjYXNlIDg6YVtjKzE3Mj4+Ml09KDB8YVtjKzE2ND4+Ml0pLTEsYz0tMSxmPTA7YnJlYWs7ZGVmYXVsdDpjPTAsZj0wfWFbbD4+Ml09YyxhW2wrND4+Ml09Zn1mdW5jdGlvbiBqb2UobCxjKXt2YXIgZixwLG0s''@;'; put 'put ''QTtmb3IobHw9MCxfWzQ4KyhmPTB8YVsxNisoY3w9MCk+PjJdKT4+M109KEE9K19bZisxNj4+M10pLStfW2YrODg+PjNdLF9bZis1Nj4+M109KHA9K19bZisyND4+M10pLShtPS41KitfW2YrODA+PjNdKSxfW2YrNjQ+PjNdPStfW2YrOTY+PjNdK0EsX1tmKzcyPj4zXT1tK3AsYz0wfHcwKGws''@;'; put 'put ''Yyk7YzspWm9lKGMpLGM9MHxTMChsLGMpfWZ1bmN0aW9uIFpvZShsKXswfChsPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSYmZnVuY3Rpb24gem9lKGwpe3ZhciB3LGIsayxNLEQsUixHLHEscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUscnQsYXQsYz0wLGY9MCxwPTAsbT0wLEE9''@;'; put 'put ''MCxXZT0wO2F0PWxlLGxlPWxlKzI0MHwwLExlPWF0KzE5MnwwLE9lPWF0KzE3NnwwLFJlPWF0KzY0fDAsSGU9YXQrMzJ8MCxWZT1hdCxxZT1hdCsxNDR8MCxydD1hdCsxMTJ8MCwoMHxhWyhXZT00KyhsfD0wKXwwKT4+Ml0pPD0wJiZQcigxMDExNDAsOTk5MDYsMzk5NCwxMDExNTQpLHA9Yz0w''@;'; put 'put ''fGFbbD4+Ml0sbT0oZj1SZSkrNDh8MDtkb3thW2Y+PjJdPWFbcD4+Ml0sZj1mKzR8MCxwPXArNHwwfXdoaWxlKCgwfGYpPCgwfG0pKTtwPWMsbT0oZj1MZSkrNDh8MDtkb3thW2Y+PjJdPWFbcD4+Ml0sZj1mKzR8MCxwPXArNHwwfXdoaWxlKCgwfGYpPCgwfG0pKTtmb3IoeTcoSGUsTGUpLHc9''@;'; put 'put ''SGUrOHwwLGI9VmUrOHwwLGs9SGUrMTZ8MCxNPVZlKzE2fDAsRD1IZSsyNHwwLFI9VmUrMjR8MCxHPVJlKzh8MCxxPVJlKzEyfDAscGU9UmUrMzJ8MCxnZT1SZSs0fDAsYmU9UmUrMTZ8MCxBPTA7ISgoMHxBKT49KDB8YVtXZT4+Ml0pKTspe2lmKCgwfEEpPjApe3A9Yz0oMHxhW2w+PjJdKSso''@;'; put 'put ''NDgqQXwwKXwwLG09KGY9UmUpKzQ4fDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7cD1jLG09KGY9TGUpKzQ4fDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7eTcoVmUsTGUpLF9bSGU+''@;'; put 'put ''PjNdPStfWygrX1tIZT4+M108K19bVmU+PjNdP0hlOlZlKT4+M10sX1t3Pj4zXT0rX1soK19bdz4+M108K19bYj4+M10/SGU6VmUpKzg+PjNdLF9baz4+M109K19bKCtfW2s+PjNdPitfW00+PjNdP0hlOlZlKSsxNj4+M10sX1tEPj4zXT0rX1soK19bRD4+M10+K19bUj4+M10/SGU6VmUpKzI0''@;'; put 'put ''Pj4zXX0wfChjPTB8YVtHPj4yXSkmJihtPTB8YVtSZT4+Ml0sYVtPZT4+Ml09YVtiZT4+Ml0sYVtPZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbT2UrOD4+Ml09YVtiZSs4Pj4yXSxhW09lKzEyPj4yXT1hW2JlKzEyPj4yXSxhW0xlPj4yXT1hW20+PjJdLGFbTGUrND4+Ml09YVttKzQ+PjJdLGFbTGUr''@;'; put 'put ''OD4+Ml09YVttKzg+PjJdLGFbTGUrMTI+PjJdPWFbbSsxMj4+Ml0sRkEocWUsT2UsTGUsMSksYVtWZT4+Ml09YVtxZT4+Ml0sYVtWZSs0Pj4yXT1hW3FlKzQ+PjJdLGFbVmUrOD4+Ml09YVtxZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW3FlKzEyPj4yXSxhW1ZlKzE2Pj4yXT1hW3FlKzE2Pj4yXSxh''@;'; put 'put ''W1ZlKzIwPj4yXT1hW3FlKzIwPj4yXSxhW1ZlKzI0Pj4yXT1hW3FlKzI0Pj4yXSxhW1ZlKzI4Pj4yXT1hW3FlKzI4Pj4yXSxfW0hlPj4zXT0rX1soK19bSGU+PjNdPCtfW1ZlPj4zXT9IZTpWZSk+PjNdLF9bdz4+M109K19bKCtfW3c+PjNdPCtfW2I+PjNdP0hlOlZlKSs4Pj4zXSxfW2s+PjNd''@;'; put 'put ''PStfWygrX1trPj4zXT4rX1tNPj4zXT9IZTpWZSkrMTY+PjNdLF9bRD4+M109K19bKCtfW0Q+PjNdPitfW1I+PjNdP0hlOlZlKSsyND4+M10pLDB8KGM9MHxhW3E+PjJdKSYmKG09KDB8YVtSZT4+Ml0pKygoMHxhW2dlPj4yXSktMTw8NCl8MCxhW09lPj4yXT1hW3BlPj4yXSxhW09lKzQ+PjJd''@;'; put 'put ''PWFbcGUrND4+Ml0sYVtPZSs4Pj4yXT1hW3BlKzg+PjJdLGFbT2UrMTI+PjJdPWFbcGUrMTI+PjJdLGFbTGU+PjJdPWFbbT4+Ml0sYVtMZSs0Pj4yXT1hW20rND4+Ml0sYVtMZSs4Pj4yXT1hW20rOD4+Ml0sYVtMZSsxMj4+Ml09YVttKzEyPj4yXSxGQShydCxPZSxMZSwxKSxhW1ZlPj4yXT1h''@;'; put 'put ''W3J0Pj4yXSxhW1ZlKzQ+PjJdPWFbcnQrND4+Ml0sYVtWZSs4Pj4yXT1hW3J0Kzg+PjJdLGFbVmUrMTI+PjJdPWFbcnQrMTI+PjJdLGFbVmUrMTY+PjJdPWFbcnQrMTY+PjJdLGFbVmUrMjA+PjJdPWFbcnQrMjA+PjJdLGFbVmUrMjQ+PjJdPWFbcnQrMjQ+PjJdLGFbVmUrMjg+PjJdPWFbcnQr''@;'; put 'put ''Mjg+PjJdLF9bSGU+PjNdPStfWygrX1tIZT4+M108K19bVmU+PjNdP0hlOlZlKT4+M10sX1t3Pj4zXT0rX1soK19bdz4+M108K19bYj4+M10/SGU6VmUpKzg+PjNdLF9baz4+M109K19bKCtfW2s+PjNdPitfW00+PjNdP0hlOlZlKSsxNj4+M10sX1tEPj4zXT0rX1soK19bRD4+M10+K19bUj4+''@;'; put 'put ''M10/SGU6VmUpKzI0Pj4zXSksQT1BKzF8MH1hWyhXZT1sKzh8MCk+PjJdPWFbSGU+PjJdLGFbV2UrND4+Ml09YVtIZSs0Pj4yXSxhW1dlKzg+PjJdPWFbSGUrOD4+Ml0sYVtXZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtXZSsxNj4+Ml09YVtIZSsxNj4+Ml0sYVtXZSsyMD4+Ml09YVtIZSsyMD4+''@;'; put 'put ''Ml0sYVtXZSsyND4+Ml09YVtIZSsyND4+Ml0sYVtXZSsyOD4+Ml09YVtIZSsyOD4+Ml0sbGU9YXR9KGwpfWZ1bmN0aW9uIHk3KGwsYyl7bHw9MDt2YXIgZixwLG0sQSx3LGIsayxNLEQsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTA7Zm9yKEQ9bGUsbGU9bGUrNDh8MCx3PUQrMzJ8MCxiPUQs''@;'; put 'put ''KDB8KGs9MHxhWzQrKGN8PTApPj4yXSkpPD0wJiZQcigxMDExNzAsOTk5MDYsMzk2OCwxMDExODIpLDEhPSgwfChrPj4+MCklMykmJlByKDEwMTE5Miw5OTkwNiwzOTY5LDEwMTE4MiksYVsoTT1iKzE2fDApPj4yXT1hWyhmPTB8YVtjPj4yXSk+PjJdLGFbTSs0Pj4yXT1hW2YrND4+Ml0sYVtN''@;'; put 'put ''Kzg+PjJdPWFbZis4Pj4yXSxhW00rMTI+PjJdPWFbZisxMj4+Ml0sYVtiPj4yXT1hW2Y+PjJdLGFbYis0Pj4yXT1hW2YrND4+Ml0sYVtiKzg+PjJdPWFbZis4Pj4yXSxhW2IrMTI+PjJdPWFbZisxMj4+Ml0scD13Kzh8MCxtPWIrOHwwLEE9YisyNHwwLGM9MTshKCgwfGMpPj0oMHxrKSk7KUc9''@;'; put 'put ''K19bZisoYzw8NCkrOD4+M10sUj0rX1tmKygoYmU9YysxfDApPDw0KSs4Pj4zXSxfW3c+PjNdPXBlPS41KigrX1tmKyhiZTw8NCk+PjNdKyArX1tmKyhjPDw0KT4+M10pLF9bcD4+M109Rz0uNSooUitHKSxfW2I+PjNdPVI9K19bKCtfW2I+PjNdPHBlP2I6dyk+PjNdLF9bbT4+M109Z2U9K19b''@;'; put 'put ''KCtfW20+PjNdPEc/Yjp3KSs4Pj4zXSxfW00+PjNdPXBlPStfWygrX1tNPj4zXT5wZT9NOncpPj4zXSxfW0E+PjNdPUc9K19bKCtfW0E+PjNdPkc/TTp3KSs4Pj4zXSxhW3c+PjJdPWFbKGJlPWYrKGMrMjw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW2JlKzQ+PjJdLGFbdys4Pj4yXT1hW2JlKzg+''@;'; put 'put ''PjJdLGFbdysxMj4+Ml09YVtiZSsxMj4+Ml0sX1tiPj4zXT0rX1soUjwocT0rX1t3Pj4zXSk/Yjp3KT4+M10sX1ttPj4zXT0rX1soZ2U8KFI9K19bcD4+M10pP2I6dykrOD4+M10sX1tNPj4zXT0rX1socGU+cT9NOncpPj4zXSxfW0E+PjNdPStfWyhHPlI/TTp3KSs4Pj4zXSxjPWMrM3wwO2Fb''@;'; put 'put ''bD4+Ml09YVtiPj4yXSxhW2wrND4+Ml09YVtiKzQ+PjJdLGFbbCs4Pj4yXT1hW2IrOD4+Ml0sYVtsKzEyPj4yXT1hW2IrMTI+PjJdLGFbbCsxNj4+Ml09YVtiKzE2Pj4yXSxhW2wrMjA+PjJdPWFbYisyMD4+Ml0sYVtsKzI0Pj4yXT1hW2IrMjQ+PjJdLGFbbCsyOD4+Ml09YVtiKzI4Pj4yXSxs''@;'; put 'put ''ZT1EfWZ1bmN0aW9uIFlJKGwsYyxmKXt2YXIgTSxiLHA9MCxtPTAsQT0wLHc9MCxrPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wO2I9IShNPSEoKGdlPStfWyhsfD0wKT4+M10pPj0oYmU9K19bKGZ8PTApPj4zXSkpKSYmZ2U8PStfW2YrMTY+PjNdJiYobT0rX1tsKzg+PjNdKT49''@;'; put 'put ''K19bZis4Pj4zXT9tPD0rX1tmKzI0Pj4zXTowLChtPStfWyhjfD0wKT4+M10pPj1iZSYmbTw9K19bZisxNj4+M10mJihBPStfW2MrOD4+M10pPj0rX1tmKzg+PjNdP2JeKHA9QTw9K19bZisyND4+M10pP3A9MDpiJnA/cD0xOkQ9MTE6Yj9wPTA6RD0xMTtlOmRve2lmKDExPT0oMHxEKSl7cGU9''@;'; put 'put ''K19bbCs4Pj4zXTtkb3tpZihnZT09bSl7aWYoIShNfHBlPj0oYmU9K19bZis4Pj4zXSleK19bYys4Pj4zXT49YmVeMSkmJmdlPD0rX1tmKzE2Pj4zXSl7cD0wO2JyZWFrIGV9fWVsc2V7aWYocGU9PShrPStfW2MrOD4+M10pKXtpZighKGdlPj1iZV5tPj1iZSYmcGU+PStfW2YrOD4+M10pKWJy''@;'; put 'put ''ZWFrO2lmKHBlPD0rX1tmKzI0Pj4zXSl7cD0wO2JyZWFrIGV9YnJlYWt9aWYocT0oay1wZSkvKG0tZ2UpLCEoIShiZT49KHc9KEQ9Z2U8bSk/Z2U6bSkpfCEoYmU8PShtPUQ/bTpnZSkpfCEoKEE9KGJlLWdlKSpxK3BlKT49KFI9K19bZis4Pj4zXSkpKSYmQTw9K19bZisyND4+M10pe3A9MDti''@;'; put 'put ''cmVhayBlfWlmKChBPSgoRz0rX1tmKzE2Pj4zXSktYmUpKnErQSk+PVImJiEoIShHPD1tKXwoRz49dz8hKEE8PStfW2YrMjQ+PjNdKToxKSkpe3A9MDticmVhayBlfWlmKHc9KEQ9cGU8ayk/cGU6ayxBPUQ/azpwZSwobT0oUi1wZSkvcStnZSk+PWJlJiYhKCEoUjw9QSl8IShSPj13KXwhKG08''@;'; put 'put ''PUcpKSl7cD0wO2JyZWFrIGV9aWYoKGdlPSgocGU9K19bZisyND4+M10pLVIpL3ErbSk+PWJlJiYhKCEocGU8PUEpfCEocGU+PXcpfCEoZ2U8PUcpKSl7cD0wO2JyZWFrIGV9fX13aGlsZSgwKTtwPS0xfX13aGlsZSgwKTtyZXR1cm4gMHxwfWZ1bmN0aW9uIFVJKGwpe3ZhciBjLGY7X1szMiso''@;'; put 'put ''bHw9MCk+PjNdPWY9K19bKGM9bCsxNnwwKT4+M10sX1tsKzQ4Pj4zXT1mLF9bbCs0MD4+M109K19bbCsyND4+M10sX1tsKzU2Pj4zXT0rX1tsKzg+PjNdLF9bYz4+M109K19bbD4+M119ZnVuY3Rpb24gYVEobCxjLGYpe3ZhciBwLG0sQSx3O2x8PTAsY3w9MCwoMHxhWzQ3MTMxXSkhPSgwfChm''@;'; put 'put ''fD0wKSkmJihnTCguMTU5MTU0OTQzMDkxODk1MzUqKygwfGYpLDE4NjMyOCwxODYzMzYpLGFbNDcxMzFdPWYpLF9bbD4+M109KHA9K19bMjMyOTJdKSooQT0rX1tjPj4zXSktKHc9K19bMjMyOTFdKSoobT0rX1tjKzg+PjNdKSxfW2wrOD4+M109dypBK20qcH1mdW5jdGlvbiBRSShsLGMsZil7''@;'; put 'put ''bHw9MCxmfD0wO3ZhciBtLEEsdyxrLHA9MCxiPTA7az1sZSxsZT1sZSsxNnwwLG09ayxwPStfWyhjfD0wKT4+M10sQT0rX1sodz1jKzh8MCk+PjNdO2U6ZG97c3dpdGNoKDB8Zil7Y2FzZSAwOmI9MTE7YnJlYWs7Y2FzZSA5MDpfW2M+PjNdPUEscD0tcCxiPTEwO2JyZWFrO2Nhc2UgMTgwOnA9''@;'; put 'put ''LUEsYj0xMDticmVhaztjYXNlIDI3MDpfW2M+PjNdPUEsYj0xMDticmVhaztkZWZhdWx0OmlmKCgwfGYpPDApe2FbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFU2KGwsbSwwLWZ8MCk7YnJlYWsgZX1p''@;'; put 'put ''ZigoMHxmKT4zNjApe2FbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFFJKGwsbSwoZj4+PjApJTM2MHwwKTticmVhayBlfWFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4y''@;'; put 'put ''XT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFRKGwsbSxmKTticmVhayBlfX13aGlsZSgwKTsxMD09KDB8YikmJihfW3c+PjNdPXAsYj0xMSksMTE9PSgwfGIpJiYoYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+''@;'; put 'put ''PjJdPWFbYysxMj4+Ml0pLGxlPWt9ZnVuY3Rpb24gVTYobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLHcsayxwPTAsYj0wO2s9bGUsbGU9bGUrMTZ8MCxtPWsscD0rX1soY3w9MCk+PjNdLEE9K19bKHc9Yys4fDApPj4zXTtlOmRve3N3aXRjaCgwfGYpe2Nhc2UgMDpiPTExO2JyZWFrO2Nhc2Ug''@;'; put 'put ''OTA6X1tjPj4zXT0tQSxiPTEwO2JyZWFrO2Nhc2UgMTgwOnA9LUEsYj0xMDticmVhaztjYXNlIDI3MDpfW2M+PjNdPUEsYj0xMDticmVhaztkZWZhdWx0OmlmKCgwfGYpPDApe2FbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4y''@;'; put 'put ''XT1hW2MrMTI+PjJdLFFJKGwsbSwwLWZ8MCk7YnJlYWsgZX1pZigoMHxmKT4zNjApe2FbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFU2KGwsbSwoZj4+PjApJTM2MHwwKTticmVhayBlfWFbbT4+Ml09''@;'; put 'put ''YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLGFRKGwsbSwzNjAtZnwwKTticmVhayBlfX13aGlsZSgwKTsxMD09KDB8YikmJihfW3c+PjNdPXAsYj0xMSksMTE9PSgwfGIpJiYoYVtsPj4yXT1hW2M+PjJdLGFbbCs0''@;'; put 'put ''Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0pLGxlPWt9ZnVuY3Rpb24gR29lKGwsYyxmKXt2YXIgbSxBLHcscD0wO0E9KHA9K19bOCsoZnw9MCk+PjNdKSsgK19bKGN8PTApPj4zXSxtPSh3PStfW2Y+PjNdKSsgK19bYysyND4+M10scCs9''@;'; put 'put ''K19bYysxNj4+M10sX1sobHw9MCk+PjNdPXcrICtfW2MrOD4+M10sX1tsKzg+PjNdPUEsX1tsKzE2Pj4zXT1tLF9bbCsyND4+M109cH1mdW5jdGlvbiBsUShsLGMsZil7dmFyIHAsbSx3LEE9MDtyZXR1cm4gQT0oK19bOCsoZnw9MCk+PjNdLSh3PStfWzgrKGx8PTApPj4zXSkpKihwPStfWyhj''@;'; put 'put ''fD0wKT4+M10tKEE9K19bbD4+M10pKS0oK19bZj4+M10tQSkqKG09K19bYys4Pj4zXS13KSwrKChBKj1BKTwxZS0xMD8wOkEvKG0qbStwKnApKX1mdW5jdGlvbiBzUShsLGMsZil7dmFyIHAsbSxBO2Z8PTAsQT1sZSxsZT1sZSsxNnwwLG09QSs4fDAscD1BLDB8KGw9MHxMaShsfD0wLGN8PTAp''@;'; put 'put ''KSYmKGFbbT4+Ml09cCwoMHxpbChsLDEwMTIwOSxtKSk+MCkmJihfW2Y+PjNdPStfW3A+PjNdKSxsZT1BfWZ1bmN0aW9uIGNRKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxiLE0sRCxwPTAsbT0wLEE9MCxrPTA7RD1sZSxsZT1sZSs0OHwwLGs9RCszMnwwLEE9RCsxNnwwLGI9RCs4fDAs''@;'; put 'put ''dz1ELGZlWyhNPUQrNDB8MCk+PjBdPTAsbD0wfExpKGwsYyk7ZG97aWYobCl7aWYoYVtBPj4yXT1iLGFbQSs0Pj4yXT13LGFbQSs4Pj4yXT1NLChBPSgwfGlsKGwsMTAxNzQ5LEEpKT4xKSYobT0rX1tiPj4zXSk+MCYocD0rX1t3Pj4zXSk+MCl7X1tmPj4zXT0rKDB8fn4oKG0qPTcyKSsobT49''@;'; put 'put ''MD8uNTotLjUpKSksX1tmKzg+PjNdPSsoMHx+figobT03MipwKSsobT49MD8uNTotLjUpKSksbD0zMz09KDB8ZmVbTT4+MF0pO2JyZWFrfWZlW00+PjBdPTAsYVtrPj4yXT1iLGFbays0Pj4yXT1NLChrPSgwfGlsKGwsMTAxNzU5LGspKT4wKSYocD0rX1tiPj4zXSk+MD8oX1tmPj4zXT1tPSso''@;'; put 'put ''MHx+figobT03MipwKSsobT49MD8uNTotLjUpKSksX1tmKzg+PjNdPW0sbD0zMz09KDB8ZmVbTT4+MF0pKTpsPTB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPUQsMSZsfDB9ZnVuY3Rpb24gZmsobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7Yz0wfExpKGx8PTAsMTA4MjI0KTtkb3tp''@;'; put 'put ''ZigwfGMmJjB8ZmVbYz4+MF0pe2ZlWyhmPTExMysoMHxhWzE2KygwfGFbbCs2MD4+Ml0pPj4yXSl8MCk+PjBdPTh8ZmVbZj4+MF0sYz0wfEo1KGwsYywoZj0wIT0oMHxPbyhjKSkpPzI6MCxtPStNbChsLDB8c2kobCwwLDEwMTQyOCwwKSwxNCwxKSxBPTB8QmEobCwwfHNpKGwsMCwxMDE0Mzcs''@;'; put 'put ''MCksMTA3OTk0KSwwfEJhKGwsMHxzaShsLDAsMTAxNDQ2LDApLDEzNzMxNCkpLGFbMTIrKDB8YVsoQT1sKzE2fDApPj4yXSk+PjJdPWMsZj0wIT0oMHwoYz0wfExpKGwsMTA1NjI4KSkpO2Rve2lmKCgwfGRpKGwpKT09KDB8bCkpe2lmKGYmJjExNj09KDB8ZmVbYz4+MF0pKXtjPTE7YnJlYWt9''@;'; put 'put ''Yz0wfWVsc2V7aWYoZiYmOTg9PSgwfGZlW2M+PjBdKSl7Yz0wO2JyZWFrfWM9MX19d2hpbGUoMCk7Zj0wfExpKGwsMTAxNzI2KTtlOmRve2lmKGYpc3dpdGNoKDB8ZmVbZj4+MF0pe2Nhc2UgMTA4OmN8PTI7YnJlYWsgZTtjYXNlIDExNDpjfD00O2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX13''@;'; put 'put ''aGlsZSgwKTtpZihmZVsyNzUrKDB8YVtBPj4yXSk+PjBdPWMsKDB8ZGkobCkpIT0oMHxsKSl7aWYocD0rX1syNCsoYz0wfGFbMTIrKDB8YVtBPj4yXSk+PjJdKT4+M10rMTYsbT0rX1tjKzMyPj4zXSs4LGw9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+Ml18MCksZj1mZVsy''@;'; put 'put ''NzUrKGM9MHxhW0E+PjJdKT4+MF08PDEmMixsKXtfW2MrNDgrKChsPTI1NSZmKTw8NCk+PjNdPXAsX1tjKzQ4KyhsPDw0KSs4Pj4zXT1tO2JyZWFrfV9bYys0OCsoKGw9MjU1JigzXmYpKTw8NCk+PjNdPW0sX1tjKzQ4KyhsPDw0KSs4Pj4zXT1wO2JyZWFrfX19d2hpbGUoMCl9ZnVuY3Rpb24g''@;'; put 'put ''dzcobCxjKXtsfD0wO3ZhciBNLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtpZihwPTB8YVsoY3w9MCk+PjJdLGFbKE09YysyNHwwKT4+Ml09MCxhW00rND4+Ml09MCxhW00rOD4+Ml09MCxhW00rMTI+PjJdPTAsMHxmZVtwPj4wXSl7dz0wfFFuKDErKDB8VW8ocCkpfDApLGZlW3c+PjBd''@;'; put 'put ''PTAsYj1jKzEyfDAsZj13O2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYoQT1wKzF8MCwhKChtPTB8ZmVbcD4+MF0pPDwyND4+MjQpKWJyZWFrIGU7aWYoIShtPDwyND4+MjQ9PS0xfCgyNTUmbSk8MTYxfDIhPSgwfGFbYj4+Ml0pKSl7aWYoZmVbZj4+MF09bSxtPWYrMnwwLGZlW2YrMT4+MF09QT0w''@;'; put 'put ''fGZlW0E+PjBdLEE8PDI0Pj4yNCl7Zj1tLHA9cCsyfDA7Y29udGludWV9Zj1tO2JyZWFrIGV9c3dpdGNoKG08PDI0Pj4yNCl7Y2FzZSA5MjpicmVhayB0O2Nhc2UgMTA6az0xMjticmVhayB0fWZlW2Y+PjBdPW0sZj1mKzF8MCxwPUF9aWYoMTIhPSgwfGspKXtzd2l0Y2goKG09MHxmZVtBPj4w''@;'; put 'put ''XSk8PDI0Pj4yNHwwKXtjYXNlIDExNDpjYXNlIDEwODpjYXNlIDExMDptPWYrMXwwLGZlW2Y+PjBdPTAsSkkobCxjLHcsMHxmZVtBPj4wXSksZj1tO2JyZWFrO2RlZmF1bHQ6ZmVbZj4+MF09bSxmPWYrMXwwLG09d313PW0scD0wPT0oMHxmZVtBPj4wXSk/QTpwKzJ8MH1lbHNlIGs9MCxwPWYr''@;'; put 'put ''MXwwLGZlW2Y+PjBdPTAsSkkobCxjLHcsMTEwKSxmPXAsdz1wLHA9QX0oMHx3KSE9KDB8ZikmJihmZVtmPj4wXT0wLEpJKGwsYyx3LDExMCkpLGFbKGM9Yys0MHwwKT4+Ml09YVtNPj4yXSxhW2MrND4+Ml09YVtNKzQ+PjJdLGFbYys4Pj4yXT1hW00rOD4+Ml0sYVtjKzEyPj4yXT1hW00rMTI+''@;'; put 'put ''PjJdfX1mdW5jdGlvbiBKSShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgTSxELFIscSxrLG09MCxBPTAsdz0wLGI9MCxHPTA7cT1sZSxsZT1sZSszMnwwLFI9cSsxNnwwLEQ9cSx3PTB8aXRbKEc9NzYrKGN8PTApfDApPj4xXSxrPShiPTB8YVsoTT1jKzcyfDApPj4yXSk/MHxHSChiLHcr''@;'; put 'put ''MnwwLDU2LHcrMXwwKTowfHZyKDExMisoNTYqd3wwKXwwKSxhW00+PjJdPWssYVsoYj1rKyg1Nioodz0wfGl0W0c+PjFdKXwwKXwwKT4+Ml09ZixmZVtrKyg1Nip3fDApKzQ4Pj4wXT1wLDAhPSgwfGYpJiYwIT0oMHxmZVtmPj4wXSk/KGFbNDY1OTRdPWFbYys0Pj4yXSxfWzIzMjk5XT0rX1tj''@;'; put 'put ''KzE2Pj4zXSxhW2srKDU2Knd8MCkrND4+Ml09MHxtaVs2MyZhWyhwPTB8YVtsKzE0ND4+Ml0pPj4yXV0ocCwxODYzNzYsMSksbEQoRCxsLGIpLF9bUj4+M109QT0rX1tEPj4zXSxtPStfW0QrOD4+M10pOihfW1I+PjNdPTAsX1trKyg1Nip3fDApKzQwPj4zXT1tPSsoMHx+figxLjIqK19bYysx''@;'; put 'put ''Nj4+M10pKSxBPTApLGl0W0c+PjFdPTErKDB8aXRbRz4+MV0pPDwxNj4+MTYsX1soRz1jKzI0fDApPj4zXT0rX1soK19bRz4+M10+QT9HOlIpPj4zXSxfWyhHPWMrMzJ8MCk+PjNdPStfW0c+PjNdK20sbGU9cX1mdW5jdGlvbiBKNShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscD0rcCxt''@;'; put 'put ''fD0wLEF8PTA7dmFyIHcsRyxwZSxnZSxiPTAsaz0wLE09MCxEPTAsUj0wLHE9MDtzd2l0Y2goZ2U9bGUsbGU9bGUrMzJ8MCxHPWdlKzE2fDAsUj1nZSs4fDAsRD1nZSxwZT0wfHZyKDg4KSwwfGtpKGwpKXtjYXNlIDA6Yj0wLHE9MHxhW2wrNjA+PjJdLGs9bCxNPTA7YnJlYWs7Y2FzZSAxOmI9''@;'; put 'put ''MCxxPTB8ZGkoMHxjcihsKSksaz0wLE09bDticmVhaztjYXNlIDI6Yj1sLHE9MHxkaSgwfGNyKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSkpLGs9MCxNPTA7YnJlYWs7ZGVmYXVsdDpiPTAscT0wLGs9MCxNPTB9YVtwZSs0Pj4yXT1tLGFbcGUrOD4+Ml09QSxfW3Bl''@;'; put 'put ''KzE2Pj4zXT1wLGFbKEE9cGUrMTJ8MCk+PjJdPVh0WzExNSsoMHxhWyh3PXErMTZ8MCk+PjJdKT4+MF07ZTpkb3tpZig0JmYpYVtwZT4+Ml09MHxyYShjKSwyJmZ8MCYmKGZlW3BlKzgyPj4wXT0xKTtlbHNlIHN3aXRjaCgwfGYpe2Nhc2UgMjppZihhW3BlPj4yXT0wfHJhKGMpLGZlW3BlKzgy''@;'; put 'put ''Pj4wXT0xLCEoMHx2NihsLHBlKSkpYnJlYWsgZTtzd2l0Y2goMHxraShsKSl7Y2FzZSAwOmFbRD4+Ml09MHx0aShrKSwkcigzLDEwMTk4MyxEKTticmVhayBlO2Nhc2UgMTphW1I+PjJdPTB8dGkoTSksJHIoMywxMDIwMDUsUik7YnJlYWsgZTtjYXNlIDI6RD0wfHRpKDB8YVsoMz09KDMmYVti''@;'; put 'put ''Pj4yXXwwKT9iOmIrNDh8MCkrNDA+PjJdKSxSPTAhPSgwfFNjKHEpKSxxPTB8dGkoMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6YistNDh8MCkrNDA+PjJdKSxhW0c+PjJdPUQsYVtHKzQ+PjJdPVI/MTM3NzM4OjE0MTc0NyxhW0crOD4+Ml09cSwkcigzLDEwMjAyNixHKTticmVhayBlO2RlZmF1''@;'; put 'put ''bHQ6YnJlYWsgZX1jYXNlIDA6bT0wfGZRKGMsbCwwKSxhW3BlPj4yXT1tLG09MT09KDB8YVtBPj4yXSk/MHx5ayhtKTowfFJOKG0scSksRnQoMHxhW3BlPj4yXSksYVtwZT4+Ml09bSx3NygwfGFbMTQ0KygwfGFbdz4+Ml0pPj4yXSxwZSk7YnJlYWsgZTtkZWZhdWx0OlByKDEwMjA1MywxMDIw''@;'; put 'put ''NjksMTY2LDEwMjA3OCl9fXdoaWxlKDApO3JldHVybiBsZT1nZSwwfHBlfWZ1bmN0aW9uIGZRKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTA7''@;'; put 'put ''c3dpdGNoKDB8a2koY3w9MCkpe2Nhc2UgMDptPTB8VW8odz0wfHRpKGMpKSwocD0wfGFbMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKT8ocD0wfGFbcD4+Ml0sbD8oUmU9MCxPZT0yLExlPTIsYmU9MixBPTIscWU9MTAyMTAxLEQ9MTAyMDk4LGI9MTA1NDkzLEc9MTk1MDU5LHBlPTE5NTA1OSxxPTAs''@;'; put 'put ''Z2U9MCxSPTB8VW8ocCksSGU9cCxWZT0xMDIwOTUpOihSZT0wLE9lPTIsTGU9MixiZT0yLEE9MixxZT0xMDIxMDEsRD0xMDIwOTgsYj0xMDU0OTMsRz0xOTUwNTkscGU9MTk1MDU5LHE9MCxnZT0wLFI9MixIZT1wLFZlPTEwMjA5NSkpOihSZT0wLE9lPTIsTGU9MixiZT0yLEE9MixxZT0xMDIx''@;'; put 'put ''MDEsRD0xMDIwOTgsYj0xMDU0OTMsRz0xOTUwNTkscGU9MTk1MDU5LHE9MCxnZT0wLFI9MixIZT0xMDIwODksVmU9MTAyMDk1KTticmVhaztjYXNlIDE6bT0wfFVvKHc9MHx0aSgwfGNyKGMpKSksQT0wfFVvKGI9MHx0aShjKSksKHA9MHxhWzEwNCsoMHxhW2MrMTY+PjJdKT4+Ml0pPyhwPTB8''@;'; put 'put ''YVtwPj4yXSxsPyhSZT0wLE9lPTIsTGU9MixiZT0yLHFlPTEwMjEwMSxEPTEwMjA5OCxHPTE5NTA1OSxwZT0xOTUwNTkscT0wLGdlPTAsUj0wfFVvKHApLEhlPXAsVmU9MTAyMDk1KTooUmU9MCxPZT0yLExlPTIsYmU9MixxZT0xMDIxMDEsRD0xMDIwOTgsRz0xOTUwNTkscGU9MTk1MDU5LHE9''@;'; put 'put ''MCxnZT0wLFI9MixIZT1wLFZlPTEwMjA5NSkpOihSZT0wLE9lPTIsTGU9MixiZT0yLHFlPTEwMjEwMSxEPTEwMjA5OCxHPTE5NTA1OSxwZT0xOTUwNTkscT0wLGdlPTAsUj0yLEhlPTEwMjA4OSxWZT0xMDIwOTUpO2JyZWFrO2Nhc2UgMjpBPWMrNDh8MCxtPTB8VW8odz0wfHRpKDB8ZGkoMHxj''@;'; put 'put ''cigwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpBKSs0MD4+Ml0pKSkpLGs9MHxVbyhNPTB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6QSkrNDA+PjJdKSksZ2U9KHBlPTB8YVs1MisoMHxhWyhwPWMrMTZ8MCk+PjJdKT4+Ml0pPzB8VW8ocGUpOjAsRD0wfHRpKDB8YVsoMj09KDMmYVtjPj4y''@;'; put 'put ''XXwwKT9jOmMrLTQ4fDApKzQwPj4yXSkscT0oRz0wfGFbOTIrKHA9MHxhW3A+PjJdKT4+Ml0pPzB8VW8oRyk6MCxiPTB8VW8oRCksKHA9MHxhW3ArOTY+PjJdKT8ocD0wfGFbcD4+Ml0sUj1sPzB8VW8ocCk6Mik6KFI9MixwPTEwMjA4OSksVmU9MD09KDB8U2MoMHxkaSgwfGNyKDB8YVsoMz09''@;'; put 'put ''KDMmYVtjPj4yXXwwKT9jOkEpKzQwPj4yXSkpKSksUmU9MSxPZT1rLExlPWIsYmU9aysyKygwfGdlP2dlKzF8MDowKStiKygwfHE/cSsxfDA6MCl8MCxBPTIscWU9TSxiPTEwNTQ5MyxIZT1wLFZlPVZlPzE0MTc0NzoxMzc3Mzg7YnJlYWs7ZGVmYXVsdDpSZT0wLE9lPTIsTGU9MixiZT0yLEE9''@;'; put 'put ''MixtPTIscWU9MTAyMTAxLEQ9MTAyMDk4LGI9MTA1NDkzLHc9MTAyMDkyLEc9MTk1MDU5LHBlPTE5NTA1OSxxPTAsZ2U9MCxSPTIsSGU9MTAyMDg5LFZlPTEwMjA5NX1mPTA9PSgwfGYpLE09MCxwPWw7ZTpmb3IoOzspe2M9cCsxfDA7dDpkb3tzd2l0Y2goMHxmZVtwPj4wXSl7Y2FzZSAwOmJy''@;'; put 'put ''ZWFrIGU7Y2FzZSA5Mjpzd2l0Y2gocD1wKzJ8MCwwfGZlW2M+PjBdKXtjYXNlIDc4Oms9QTticmVhayB0O2Nhc2UgNzE6az1tO2JyZWFrIHQ7Y2FzZSA2OTprPWJlO2JyZWFrIHQ7Y2FzZSA3MjprPUxlO2JyZWFrIHQ7Y2FzZSA4NDprPU9lO2JyZWFrIHQ7Y2FzZSA3NjprPVI7YnJlYWsgdDtj''@;'; put 'put ''YXNlIDkyOmlmKCFmKXtrPTE7YnJlYWsgdH19az0yO2JyZWFrO2RlZmF1bHQ6az0xLHA9Y319d2hpbGUoMCk7TT1NK2t8MH1iZT0wfFFuKE0rMXwwKSxSPTA9PSgwfFJlKSxNPTA9PSgwfGdlKSxjPTA9PSgwfHEpLHA9YmUsbT1sO2U6Zm9yKDs7KXtzd2l0Y2goaz1tKzF8MCwoQT0wfGZlW20+''@;'; put 'put ''PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDkyOmJyZWFrO2RlZmF1bHQ6ZmVbcD4+MF09QSxwPXArMXwwLG09aztjb250aW51ZSBlfXN3aXRjaChBPW0rMnwwLChtPTB8ZmVbaz4+MF0pPDwyND4+MjR8MCl7Y2FzZSA3MTpmb3IobT13Ozspe2lmKGZlW3A+PjBdPWw9MHxmZVtt''@;'; put 'put ''Pj4wXSwhKGw8PDI0Pj4yNCkpe209QTtjb250aW51ZSBlfW09bSsxfDAscD1wKzF8MH1jYXNlIDc4OmZvcihtPWI7Oyl7aWYoZmVbcD4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9bT1tKzF8MCxwPXArMXwwfWNhc2UgNjk6aWYoUil7bT1BO2NvbnRpbnVl''@;'; put 'put ''IGV9Zm9yKG09cWU7ZmVbcD4+MF09bD0wfGZlW20+PjBdLGw8PDI0Pj4yNDspbT1tKzF8MCxwPXArMXwwO2lmKE0pbT1WZTtlbHNlIGZvcihmZVtwPj4wXT01OCxtPXBlOzspe2lmKGZlWyhwPXArMXwwKT4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1WZTticmVha31tPW0rMXww''@;'; put 'put ''fWZvcig7Oyl7aWYoZmVbcD4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1EO2JyZWFrfW09bSsxfDAscD1wKzF8MH1mb3IoO2ZlW3A+PjBdPWw9MHxmZVttPj4wXSxsPDwyND4+MjQ7KW09bSsxfDAscD1wKzF8MDtpZihjKXttPUE7Y29udGludWUgZX1mb3IoZmVbcD4+MF09NTgs''@;'; put 'put ''bT1HOzspe2lmKGZlWyhwPXArMXwwKT4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9bT1tKzF8MH1jYXNlIDg0OmZvcihtPXFlOzspe2lmKGZlW3A+PjBdPWw9MHxmZVttPj4wXSwhKGw8PDI0Pj4yNCkpe209QTtjb250aW51ZSBlfW09bSsxfDAscD1wKzF8''@;'; put 'put ''MH1jYXNlIDcyOmZvcihtPUQ7Oyl7aWYoZmVbcD4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9cD1wKzF8MCxtPW0rMXwwfWNhc2UgNzY6Zm9yKG09SGU7Oyl7aWYoZmVbcD4+MF09bD0wfGZlW20+PjBdLCEobDw8MjQ+PjI0KSl7bT1BO2NvbnRpbnVlIGV9''@;'; put 'put ''cD1wKzF8MCxtPW0rMXwwfWNhc2UgOTI6aWYoIWYpe2ZlW3A+PjBdPTkyLHA9cCsxfDAsbT1BO2NvbnRpbnVlIGV9fWZlW3A+PjBdPTkyLGZlW3ArMT4+MF09bSxwPXArMnwwLG09QX1yZXR1cm4gZmVbcD4+MF09MCwwfGJlfWZ1bmN0aW9uIEF5KGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTAs''@;'; put 'put ''QT0wO2lmKDB8KGx8PTApKXtmb3IoZj1sLHA9MDshKCgwfHApPj0oMHxjKSk7KXB8fEZ0KDB8YVtmPj4yXSksMHwoQT0wfGFbZis4Pj4yXSkmJjB8KG09MHxhW2YrMTI+PjJdKSYmQ29bMTI3Jm1dKEEpLGY9Zis1NnwwLHA9cCsxfDA7RnQobCl9fWZ1bmN0aW9uIEljKGwpe3ZhciBjPTA7MHwo''@;'; put 'put ''bHw9MCkmJihGdCgwfGFbbD4+Ml0pLGM9bCs3MnwwLDB8ZmVbbCs4Mj4+MF0/MHwoYz0wfGFbYz4+Ml0pJiZBbShjLDEpOkF5KDB8YVtjPj4yXSwwfGl0W2wrNzY+PjFdKSxGdChsKSl9ZnVuY3Rpb24gYjcobCxjLGYpe2Z8PTA7dmFyIFIsRyxxLHBlLGdlLHA9MCxtPTAsQT0wLHc9MCxiPTAs''@;'; put 'put ''az0wLE09MCxEPTA7aWYoZ2U9bGUsbGU9bGUrMzJ8MCxSPWdlKzE2fDAsRz1nZSxwZT0wfGFbKHE9MTIrKHc9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSxhW3E+PjJdPWN8PTAsMHxmZVtmKzgyPj4wXSkoZnVuY3Rpb24gQUUobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxiLGssTSxwPTAsbT0w''@;'; put 'put ''LHc9MDtzd2l0Y2goTT1sZSxsZT1sZSs4MHwwLGs9TSxmdW5jdGlvbiBlRyhsKXt2YXIgYyxmLHA9MDtzd2l0Y2goYz0wfHhmKGx8PTApLGFbYys0Pj4yXT1sPTB8YVs0KyhmPTB8YVtjPj4yXSk+PjJdLGFbYysxMj4+Ml09YVtmKzEyPj4yXSwwfGwpe2Nhc2UgMjpjYXNlIDA6Y2FzZSAxOmNh''@;'; put 'put ''c2UgMzpsPWYrOHwwLHA9Nn02PT0oMHxwKSYmKGFbYys4Pj4yXT1hW2w+PjJdKSxhW2MrMjA4Pj4yXT1hW2YrMjA4Pj4yXSxhW2MrMjI4Pj4yXT1hW2YrMjI4Pj4yXSxhW2MrMjQ0Pj4yXT1hW2YrMjQ0Pj4yXSxpdFsocD1jKzI2MHwwKT4+MV09LTImaXRbcD4+MV18MSZpdFtmKzI2MD4+MV19''@;'; put 'put ''KGx8PTApLGI9K19bZis1Nj4+M10sbT0rX1tmKzY0Pj4zXSwwfGZlW2YrODA+PjBdKXtjYXNlIDExNjptPS41KigrX1tmKzQ4Pj4zXS0reUUoYykpK20scD00O2JyZWFrO2Nhc2UgOTg6bS09LjUqKCtfW2YrNDg+PjNdLSt5RShjKSkscD00fTQ9PSgwfHApJiYobSs9LTEpLF9baz4+M109Yixf''@;'; put 'put ''W2srOD4+M109bSxhW2srMjA+PjJdPWFbZis4Pj4yXSxhW2srMTY+PjJdPWFbZis0Pj4yXSxfW2srMzI+PjNdPStfW2YrMTY+PjNdLHA9MHxMaSgwfGFbOCsoMHxhWyh3PWwrMTZ8MCk+PjJdKT4+Ml0sMTM3Mjk3KSxhWyhmPWsrNTZ8MCk+PjJdPXAsYVsoQT1rKzYwfDApPj4yXT1hWzIxMiso''@;'; put 'put ''MHxhW3c+PjJdKT4+Ml0sZmVbKHc9ays2NHwwKT4+MF09MCwwIT0oMHxwKSYmMCE9KDB8ZmVbcD4+MF0pfHwoYVtmPj4yXT0xMzczMDgpLDE9PSgwfGZlW2MrND4+MF0pPyhmPTB8YVtjPj4yXSxkMihsLDB8YVszMzYrKDB8YVtsPj4yXSk+PjJdKSxtYShsLChwPTB8YVtmKzI0Pj4yXSl8fDEz''@;'; put 'put ''NzMxNCksd0UobCxmLGspLDB8ZmVbdz4+MF0mJkZ0KDB8YVtBPj4yXSkpOlNkKGwsMHxhW2M+PjJdLGspLGZ1bmN0aW9uIHA2KGwpe3ZhciBjO2FbMjA4KyhjPTB8YVsxNisobHw9MCk+PjJdKT4+Ml09MCxhW2MrMjI4Pj4yXT0wLGFbYysyNDQ+PjJdPTAsYVtjKzIxMj4+Ml09MCxPQyhsKX0o''@;'; put 'put ''bCksbGU9TX0pKGwsMHxhW2YrNzI+PjJdLGYpLG09MTg7ZWxzZSBpZigoMHxpdFsoRD1mKzc2fDApPj4xXSk+PTEpe3N3aXRjaChXOChsLDApLG1hKGwsMHxhW2YrOD4+Ml0pLDB8ZmVbZis4MD4+MF0pe2Nhc2UgMTE2OnA9LjUqK19bZis0OD4+M10rKEE9K19bZis2ND4+M10pO2JyZWFrO2Nh''@;'; put 'put ''c2UgOTg6cD0tLjUqK19bZis0OD4+M10rKEE9K19bZis2ND4+M10pKyArX1tmKzMyPj4zXTticmVhaztkZWZhdWx0OnA9LjUqK19bZiszMj4+M10rKEE9K19bZis2ND4+M10pfWZvcihfWyhNPUcrOHwwKT4+M109cC09K19bZisxNj4+M10sNTEyJml0W3crMjYwPj4xXSYmKF9bTT4+M109cC1B''@;'; put 'put ''KSxiPWYrNzJ8MCxrPWYrNTZ8MCxtPWYrNDB8MCxjPTA7ISgoMHxjKT49KDB8aXRbRD4+MV0pKTspe3N3aXRjaCgwfGZlWyh3PTB8YVtiPj4yXSkrKDU2KmN8MCkrNDg+PjBdKXtjYXNlIDEwODpwPStfW2s+PjNdLS41KitfW20+PjNdO2JyZWFrO2Nhc2UgMTE0OnA9LjUqK19bbT4+M10rICtf''@;'; put 'put ''W2s+PjNdO2JyZWFrO2RlZmF1bHQ6cD0rX1trPj4zXX1fW0c+PjNdPXAsYVtSPj4yXT1hW0c+PjJdLGFbUis0Pj4yXT1hW0crND4+Ml0sYVtSKzg+PjJdPWFbRys4Pj4yXSxhW1IrMTI+PjJdPWFbRysxMj4+Ml0saG0obCxSLHcrKDU2KmN8MCl8MCksX1tNPj4zXT0rX1tNPj4zXS0rX1soMHxh''@;'; put 'put ''W2I+PjJdKSsoNTYqY3wwKSs0MD4+M10sYz1jKzF8MH1PNChsKSxtPTE4fTE4PT0oMHxtKSYmKGFbcT4+Ml09cGUpLGxlPWdlfWZ1bmN0aW9uIG0yKGwsYyl7cmV0dXJuIDB8ZlEobHw9MCxjfD0wLDEpfWZ1bmN0aW9uIE0xKGwpe3JldHVybiAwfHpIKGx8PTAsMCl9ZnVuY3Rpb24gekgobCxj''@;'; put 'put ''KXtsfD0wLGN8PTA7dmFyIGIsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTA7Zm9yKChmPTB8YVs0NzIwN10pfHwoYVs0NzIwOF09NjQsZj0wfFFuKDY0KSxhWzQ3MjA3XT1mKSxiPWM8PDI0Pj4yND09MCx3PTAscD0wLEE9bDtBJiYoYz0wfGZlW0E+PjBdKTw8MjQ+PjI0Oyl7KDB8dyk+KChsPTB8''@;'; put 'put ''YVs0NzIwOF0pLTh8MCkmJihhWzQ3MjA4XT1mPWw8PDEsZj0wfFYwKDB8YVs0NzIwN10sZiksYVs0NzIwN109ZixmPWYrd3wwLGM9MHxmZVtBPj4wXSk7ZTpkb3tzd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDM4OmImJjAhPSgwfGhRKEEpKT9rPTE4OihwPTUsYz0xMDIxMzApO2JyZWFrO2Nhc2Ug''@;'; put 'put ''NjA6cD00LGM9MTAyMTUzO2JyZWFrO2Nhc2UgNjI6cD00LGM9MTAyMTM2O2JyZWFrO2Nhc2UgNDU6cD01LGM9MTAyMTQ3O2JyZWFrO2RlZmF1bHQ6aWYoMCE9KDB8cCkmYzw8MjQ+PjI0PT0zMil7aWYoMzI9PSgwfGZlW3A+PjBdKSl7cD02LGM9MTAyMTIzO2JyZWFrIGV9az0xODticmVhayBl''@;'; put 'put ''fXN3aXRjaChjPDwyND4+MjQpe2Nhc2UgMzQ6cD02LGM9MTAyMTE2O2JyZWFrIGU7Y2FzZSAzOTpwPTUsYz0xMDIxNDE7YnJlYWsgZTtjYXNlIDEwOmlmKGIpe2s9MTg7YnJlYWsgZX1wPTUsYz0xMDIxMTA7YnJlYWsgZTtkZWZhdWx0Oms9MTg7YnJlYWsgZX19fXdoaWxlKDApO2ZvcigxOD09''@;'; put 'put ''KDB8aykmJihrPTAscD0oYz1ifGM8PDI0Pj4yNCE9MTMpPzE6NSxjPWM/QToxMDIxMDQpLG09ZitwfDAsbD1wO2w7KWZlW2Y+PjBdPTB8ZmVbYz4+MF0sbD1sKy0xfDAsYz1jKzF8MCxmPWYrMXwwO2w9QSx3PXArd3wwLGY9bSxBPUErMXwwLHA9bH1yZXR1cm4gZmVbZj4+MF09MCwwfGFbNDcy''@;'; put 'put ''MDddfWZ1bmN0aW9uIGhRKGwpe3ZhciBjPTAsZj0wO2M9MHxmZVsoZj0xKyhsfD0wKXwwKT4+MF07ZTpkb3tpZihjPDwyND4+MjQ9PTM1KXtzd2l0Y2goKGM9MHxmZVsoZj1sKzJ8MCk+PjBdKTw8MjQ+PjI0KXtjYXNlIDg4OmNhc2UgMTIwOmJyZWFrO2RlZmF1bHQ6Zm9yKGw9Zjs7KXtpZihm''@;'; put 'put ''PWwrMXwwLChjKy00OCYyNTUpPj0xMClicmVhayBlO2w9ZixjPTB8ZmVbZj4+MF19fWZvcihmPWwrM3wwOzspe2lmKCgoYz0wfGZlW2Y+PjBdKS00OCYyNTUpPj0xMClzd2l0Y2goYzw8MjQ+PjI0KXtjYXNlIDY1OmNhc2UgNjY6Y2FzZSA2NzpjYXNlIDY4OmNhc2UgNjk6Y2FzZSA3MDpjYXNl''@;'; put 'put ''IDk3OmNhc2UgOTg6Y2FzZSA5OTpjYXNlIDEwMDpjYXNlIDEwMTpjYXNlIDEwMjpicmVhaztkZWZhdWx0OmJyZWFrIGV9Zj1mKzF8MH19ZWxzZSBmb3IoOzspe2lmKGw9ZisxfDAsKCgtMzMmYyktNjUmMjU1KT49MjYpYnJlYWsgZTtmPWwsYz0wfGZlW2w+PjBdfX13aGlsZSgwKTtyZXR1cm4g''@;'; put 'put ''Yzw8MjQ+PjI0PT01OXwwfWZ1bmN0aW9uIGRRKGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtmb3IoKGM9MHxhWzQ3MjA5XSl8fChhWzQ3MjEwXT02NCxjPTB8UW4oNjQpLGFbNDcyMDldPWMpLHc9MDtsJiYoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0Oyl7c3dpdGNoKCgw''@;'; put 'put ''fHcpPigocD0wfGFbNDcyMTBdKS04fDApJiYoYVs0NzIxMF09Yz1wPDwxLGM9MHxWMCgwfGFbNDcyMDldLGMpLGFbNDcyMDldPWMsYz1jK3d8MCxmPTB8ZmVbbD4+MF0pLGY8PDI0Pj4yNCl7Y2FzZSAzODowfGhRKGwpP2I9MTI6KG09NSxmPTEwMjEzMCk7YnJlYWs7Y2FzZSA2MDptPTQsZj0x''@;'; put 'put ''MDIxNTM7YnJlYWs7Y2FzZSA2MjptPTQsZj0xMDIxMzY7YnJlYWs7Y2FzZSAzNDptPTYsZj0xMDIxMTY7YnJlYWs7Y2FzZSAzOTptPTUsZj0xMDIxNDE7YnJlYWs7ZGVmYXVsdDpiPTEyfWZvcigxMj09KDB8YikmJihiPTAsbT0xLGY9bCksQT1jK218MCxwPW07cDspZmVbYz4+MF09MHxmZVtm''@;'; put 'put ''Pj4wXSxwPXArLTF8MCxmPWYrMXwwLGM9YysxfDA7dz1tK3d8MCxjPUEsbD1sKzF8MH1yZXR1cm4gZmVbYz4+MF09MCwwfGFbNDcyMDldfWZ1bmN0aW9uIHZyKGwpe3ZhciBjPTA7cmV0dXJuKGx8PTApPyh1MigwfChjPTB8UW4obCkpLDAsMHxsKSxsPWMpOmw9MCwwfGx9ZnVuY3Rpb24gUW4o''@;'; put 'put ''bCl7cmV0dXJuKGx8PTApPyhsPTB8RjAobCkpfHwoQ3UoMTExNzQwLDE0LDEsMHxhWzE1NzEyXSksbD0wKTpsPTAsMHxsfWZ1bmN0aW9uIEdIKGwsYyxmLHApe3JldHVybiBwfD0wLDAhPSgwfChjfD0wKSkmMD09KDB8KGw9MHxVYShsfD0wLDB8QXIoZnw9MCxjKSkpKT9DdSgxMTE3NDAsMTQs''@;'; put 'put ''MSwwfGFbMTU3MTJdKTpjPj4+MD5wPj4+MCYmdTIobCsoMHxBcihwLGYpKXwwLDAsMHxBcihjLXB8MCxmKSksMHxsfWZ1bmN0aW9uIFYwKGwsYyl7cmV0dXJuIDAhPSgwfChjfD0wKSkmMD09KDB8KGw9MHxVYShsfD0wLGMpKSkmJkN1KDExMTc0MCwxNCwxLDB8YVsxNTcxMl0pLDB8bH1mdW5j''@;'; put 'put ''dGlvbiBwUShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBELFIsZ2UsbT0wLEE9MCx3PTAsYj0wLE09MCxxPTAscGU9MDtnZT1sZSxsZT1sZSs4MHwwLFI9Z2UrMzJ8MCxEPWdlKzI0fDAsTT1nZSxxPTQscGU9MHxGMCg0MCksYVtwZT4+Ml09MCxtPWdlKzY4fDAsQT1nZSs2NHww''@;'; put 'put ''LGI9Njtkb3tpZig2PT0oMHxiKSl7aWYoTW49MCxtPTB8YTAoMjcsMHxsKSxBPU1uLE1uPTAsMCE9KDB8QSkmMCE9KDB8eG4pPygodz0wfGdpKDB8YVtBPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOnc9LTEsMSE9KDB8dykpe2lmKCFtJiYoTW49MCxaYygyKSxtPU1uLE1u''@;'; put 'put ''PTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpKXttPURuLGI9MTU7YnJlYWt9aWYoKDB8Zik8MSl7aWYoTW49MCxaYygzKSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0w''@;'; put 'put ''fGdpKDB8YVttPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTticmVha31tPTA7YnJlYWt9aWYoYVs0NzIxMV09KDB8cCk+LTE/cDozMCxwZT0wfFBmKDE4ODg0OCwxLDB8cGUsMHxxKSxxPURuLG09TW49MCxNbj0wLDAhPSgwfG0p''@;'; put 'put ''JjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfHEpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7YnJlYWt9bT0wLGI9MTU7YnJlYWt9bT1EbixiPTE1fX13aGlsZSgwKTtlOmRve2lmKDE1PT0oMHxiKSl7dDpmb3IoOzspe2lmKDB8bSl7''@;'; put 'put ''bT0yO2JyZWFrIGV9aWYoTW49MCxaYyg0KSxtPU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMSE9KDB8QSkpe2ZvcihsPTB8YVsxNTcxMl0sTT0wOzspe2lmKE1uPTAsYj0wfHdkKDIpLG09''@;'; put 'put ''TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxxKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiPTE1O2NvbnRpbnVlIHR9aWYoIWIpYnJlYWs7aWYoTW49MCxtPTB8YTAoMjgsMHxiKSxBPU1uLE1uPTAsMCE9KDB8''@;'; put 'put ''QSkmMCE9KDB8eG4pPygodz0wfGdpKDB8YVtBPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOnc9LTEsMT09KDB8dykpe209RG4sYj0xNTtjb250aW51ZSB0fWlmKE1uPTAsWjEoMjUsMHxiLDB8bSksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFb''@;'; put 'put ''bT4+Ml0sMHxwZSwwfHEpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1NPU0rMXwwO2Rve2lmKDA9PSgwfCgwfE0pJTEwMCkmITEpe2lmKDEwMD09KDB8KG09KDB8TSklMWUzfDApKSl7aWYoTW49MCxGbCg5MywxMDIyMDIsMHxsKSxt''@;'; put 'put ''PU1uLE1uPTAsMCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTtjb250aW51ZSB0fWlmKE1uPTAsYVtEPj4yXT1NLEpzKDMyLDB8bCwxMDIyMjAsMHxEKSxtPU1uLE1uPTAs''@;'; put 'put ''MCE9KDB8bSkmMCE9KDB8eG4pPygoQT0wfGdpKDB8YVttPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfG0sMHx4biksRG49eG4pOkE9LTEsMT09KDB8QSkpe209RG4sYj0xNTtjb250aW51ZSB0fWJyZWFrfWlmKE1uPTAsYVtSPj4yXT1NLEpzKDMyLDB8bCwxMDIyMjAsMHxSKSxBPU1uLE1uPTAsMCE9''@;'; put 'put ''KDB8QSkmMCE9KDB8eG4pPygodz0wfGdpKDB8YVtBPj4yXSwwfHBlLDB8cSkpfHx6ZSgwfEEsMHx4biksRG49eG4pOnc9LTEsMT09KDB8dykpe209RG4sYj0xNTtjb250aW51ZSB0fWlmKCFtJiYoTW49MCxGbCg5NCwxMCwwfGwpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8''@;'; put 'put ''Z2koMHxhW20+PjJdLDB8cGUsMHxxKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSkpe209RG4sYj0xNTtjb250aW51ZSB0fX19d2hpbGUoMCk7aWYoKDB8TSk+PSgwfGYpKWJyZWFrfXN3aXRjaCgwfGMpe2Nhc2UgMTppZihNbj0wLFpjKDUpLG09TW4sTW49MCwwIT0oMHxt''@;'; put 'put ''KSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxxKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7bT1EbixiPTE1O2NvbnRpbnVlIHR9YnJlYWs7Y2FzZSAyOmlmKE1uPTAsWmMoNiksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgw''@;'; put 'put ''fGFbbT4+Ml0sMHxwZSwwfHEpKXx8emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1icmVhaztkZWZhdWx0OmlmKE1uPTAsWmMoNyksbT1NbixNbj0wLDAhPSgwfG0pJjAhPSgwfHhuKT8oKEE9MHxnaSgwfGFbbT4+Ml0sMHxwZSwwfHEpKXx8''@;'; put 'put ''emUoMHxtLDB8eG4pLERuPXhuKTpBPS0xLDE9PSgwfEEpKXttPURuLGI9MTU7Y29udGludWUgdH1pZihNbj0wLFpjKDMpLG09TW4sTW49MCwwIT0oMHxtKSYwIT0oMHx4bik/KChBPTB8Z2koMHxhW20+PjJdLDB8cGUsMHxxKSl8fHplKDB8bSwwfHhuKSxEbj14bik6QT0tMSwxPT0oMHxBKSl7''@;'; put 'put ''bT1EbixiPTE1O2NvbnRpbnVlIHR9fW09MDticmVhayBlfW09RG4sYj0xNX1tPTB9fXdoaWxlKDApO3JldHVybiBGdCgwfHBlKSxsZT1nZSwwfG19ZnVuY3Rpb24gZ1EoKXt2YXIgbD0wLGM9MCxmPTA7Zm9yKGw9MTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSl8MDtsPTB8YVtsPj4yXTsp''@;'; put 'put ''KGM9MHxhWzI2NCsobD0wfGFbKGY9bCsxNnwwKT4+Ml0pPj4yXSkmJihGdChjKSxsPTB8YVtmPj4yXSksKGM9MHxhW2wrMjcyPj4yXSkmJihGdChjKSxsPTB8YVtmPj4yXSksZmVbbCsxNTc+PjBdPTAsbD1sKzE2NHwwfWZ1bmN0aW9uIFdIKGwpe3ZhciBjPTAsZj0wO3JldHVybiBsPShjPSgw''@;'; put 'put ''fGFbMjg4KygwfGFbMTYrKGY9MHxhWygzPT0oMHwoYz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhWzI4OCsoMHxhWzE2KyhsPTB8YVsoMj09KDB8Yyk/bDpsKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk/ZjpsLGFbNDcyNTddPTAsYVs0NzI1OF09''@;'; put 'put ''MjE0NzQ4MzY0NyxhWzQ3MjU5XT1hWzI4NCsoZj0wfGFbbCsxNj4+Ml0pPj4yXSxhWzQ3MjYwXT1hW2YrMjg4Pj4yXSxjP1VIKGwpOlE2KGwpLDB8YVs0NzI1N119ZnVuY3Rpb24gdlEoKXt2YXIgQSx3LGw9MCxjPTAsZj0wLHA9MCxtPTAsYj0wO2Zvcih3PWxlLGxlPWxlKzE2fDAsYVsoQT13''@;'; put 'put ''KT4+Ml09MCxhW0E+PjJdPTIxNDc0ODM2NDcsYVs0NzI1M109LTIxNDc0ODM2NDcsZj1sPTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDAsbT0yMTQ3NDgzNjQ3LHA9LTIxNDc0ODM2NDc7Yz0wfGFbZj4+Ml07KTB8ZmVbMTU2KyhmPTB8YVtjKzE2Pj4yXSk+PjBdP2M9bTooYVtBPj4y''@;'; put 'put ''XT1jPSgwfG0pPCgwfChiPTB8YVtmKzIzMj4+Ml0pKT9tOmIsYVs0NzI1M109cD0oMHxwKT4oMHxiKT9wOmIpLGY9ZisxNjR8MCxtPWM7aWYoMHxtKXtmb3IoO2w9MHxhW2w+PjJdOylhWyhiPTIzMisobD0wfGFbbCsxNj4+Ml0pfDApPj4yXT0oMHxhW2I+PjJdKS1tLGw9bCsxNjR8MDthWzQ3''@;'; put 'put ''MjUzXT1wLW0sYVtBPj4yXT0wfWxlPXd9ZnVuY3Rpb24gWDUobCxjKXt2YXIgbSxmPTAscD0wO2ZvcihhWyhwPTIzMisobD0wfGFbKG09MTYrKGx8PTApfDApPj4yXSl8MCk+PjJdPSgwfGFbcD4+Ml0pLShjfD0wKSxwPTA7Oyl7aWYoIShmPTB8YVsoMHxhW2wrMjcyPj4yXSkrKHA8PDIpPj4y''@;'; put 'put ''XSkpe3A9MDticmVha30oMHxmKSE9KDB8YVtsKzI4MD4+Ml0pJiYoWDUoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdLGMpLGw9MHxhW20+PjJdKSxwPXArMXwwfWZvcig7Zj0wfGFbKDB8YVtsKzI2ND4+Ml0pKyhwPDwyKT4+Ml07KSgwfGYpIT0oMHxhW2wrMjgwPj4y''@;'; put 'put ''XSkmJihYNSgwfGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpmKzQ4fDApKzQwPj4yXSxjKSxsPTB8YVttPj4yXSkscD1wKzF8MH1mdW5jdGlvbiBBUShsLGMsZixwKXt2YXIgbSxBLHcsYj0wLGs9MDtmb3IoQT0wPT0oMHwocHw9MCkpJjEsdz0wLShmfD0wKXwwLG09MHxhWzI4OCsoMHxhWzE2Kyhj''@;'; put 'put ''fD0wKT4+Ml0pPj4yXSxjPWx8PTA7ISgoMHxhWzI4NCsobD0wfGFbYysxNj4+Ml0pPj4yXSk8PSgwfG0pJiYoMHxtKTw9KDB8YVtsKzI4OD4+Ml0pKTspYj00OCsobD0wfGFbbCsyODA+PjJdKXwwLGFbKGs9MTYwKygwfGFbbCsxNj4+Ml0pfDApPj4yXT0oMHwoKDB8Yyk9PSgwfGFbKDM9PSgz''@;'; put 'put ''JmFbbD4+Ml18MCk/bDpiKSs0MD4+Ml0pP3A6QSk/Zjp3KSsoMHxhW2s+PjJdKSxjPSgwfGFbMjg4KygwfGFbMTYrKGI9MHxhWygzPT0oMHwoaz0zJmFbbD4+Ml0pKT9sOmIpKzQwPj4yXSk+PjJdKT4+Ml0pPigwfGFbMjg4KygwfGFbMTYrKGw9MHxhWygyPT0oMHxrKT9sOmwrLTQ4fDApKzQw''@;'; put 'put ''Pj4yXSk+PjJdKT4+Ml0pP2I6bDtyZXR1cm4gMHxjfWZ1bmN0aW9uIFhJKGwsYyxmKXtmfD0wO3ZhciBBLHA9MCxtPTA7Zm9yKGFbMjgwKyhsPTB8YVsoQT0xNisobHw9MCl8MCk+PjJdKT4+Ml09Y3w9MCxhW2wrMjg0Pj4yXT1mLG09MDs7KXtpZighKHA9MHxhWygwfGFbbCsyNzI+PjJdKSso''@;'; put 'put ''bTw8Mik+PjJdKSl7bT0wO2JyZWFrfSgwfHApIT0oMHxjKSYmKGY9MHxYSSgwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0scCxmKSxsPTB8YVtBPj4yXSksbT1tKzF8MH1mb3IoO3A9MHxhWygwfGFbbCsyNjQ+PjJdKSsobTw8Mik+PjJdOykoMHxwKSE9KDB8YykmJihm''@;'; put 'put ''PTB8WEkoMHxhWygzPT0oMyZhW3A+PjJdfDApP3A6cCs0OHwwKSs0MD4+Ml0scCxmKSxsPTB8YVtBPj4yXSksbT1tKzF8MDtyZXR1cm4gYVtsKzI4OD4+Ml09ZixmKzF8MH1mdW5jdGlvbiBRNihsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wLGI9MDtmb3Iodz0xNisobHw9MCl8MCxtPTA7''@;'; put 'put ''Oyl7aWYoIShmPTB8YVsoMHxhWzE4MCsobD0wfGFbdz4+Ml0pPj4yXSkrKG08PDIpPj4yXSkpe2Y9MDticmVha30oMHxhWzE2NCsocD0wfGFbZisxNj4+Ml0pPj4yXSk8MD8oMHxhWzQ3MjU5XSk+KDB8KGI9MHxhWzI4OCsoYz0wfGFbMTYrKDB8YVsoMj09KDB8KGw9MyZhW2Y+PjJdKSk/Zjpm''@;'; put 'put ''Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSl8KDB8Yik+KDB8YVs0NzI2MF0pJiYoMHwoQT0oMHxhW2MrMjMyPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxsKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbcCsxNzA+PjFdKXwwKSk8KDB8YVs0NzI1OF0pfDA9''@;'; put 'put ''PSgwfGFbNDcyNTddKSYmKGFbNDcyNTddPWYsYVs0NzI1OF09QSk6KDB8YVsyODgrKDB8YVsxNisoYz0wfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKTwoMHxhW2wrMjg4Pj4yXSkmJlE2KGMpLG09bSsxfDB9Zm9yKDswIT0oMHwoYz0wfGFbKDB8YVts''@;'; put 'put ''KzI2ND4+Ml0pKyhmPDwyKT4+Ml0pKSYoMHxhWzQ3MjU4XSk+MDspKDB8YVsyODgrKDB8YVsxNisoYz0wfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbbCsyODg+PjJdKSYmKFE2KGMpLGw9MHxhW3c+PjJdKSxmPWYrMXwwfWZ1bmN0aW9uIFVI''@;'; put 'put ''KGwpe3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTAsYj0wO2Zvcih3PTE2KyhsfD0wKXwwLG09MDs7KXtpZighKGY9MHxhWygwfGFbMTcyKyhsPTB8YVt3Pj4yXSk+PjJdKSsobTw8Mik+PjJdKSl7Zj0wO2JyZWFrfSgwfGFbMTY0KyhwPTB8YVtmKzE2Pj4yXSk+PjJdKTwwPygwfGFbNDcyNTld''@;'; put 'put ''KT4oMHwoYj0wfGFbMjg4KyhjPTB8YVsxNisoMHxhWygzPT0oMHwobD0zJmFbZj4+Ml0pKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpfCgwfGIpPigwfGFbNDcyNjBdKSYmKDB8KEE9KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHxsKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+''@;'; put 'put ''Ml0pLSgwfGFbYysyMzI+PjJdKS0oMHxocltwKzE3MD4+MV0pfDApKTwoMHxhWzQ3MjU4XSl8MD09KDB8YVs0NzI1N10pJiYoYVs0NzI1N109ZixhWzQ3MjU4XT1BKTooMHxhWzI4OCsoMHxhWzE2KyhjPTB8YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8''@;'; put 'put ''KDB8YVtsKzI4OD4+Ml0pJiZVSChjKSxtPW0rMXwwfWZvcig7MCE9KDB8KGM9MHxhWygwfGFbbCsyNzI+PjJdKSsoZjw8Mik+PjJdKSkmKDB8YVs0NzI1OF0pPjA7KSgwfGFbMjg4KygwfGFbMTYrKGM9MHxhWygyPT0oMyZhW2M+PjJdfDApP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk8''@;'; put 'put ''KDB8YVtsKzI4OD4+Ml0pJiYoVUgoYyksbD0wfGFbdz4+Ml0pLGY9ZisxfDB9ZnVuY3Rpb24gZWFlKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHx2cigxNiksYVtjPj4yXT1sLGFbYys0Pj4yXT0wfFhIKGwsYyksYVtjKzEyPj4yXT1jLDB8Y31mdW5jdGlvbiBuYWUobCl7cmV0dXJuIDB8YVs0''@;'; put 'put ''KyhsfD0wKT4+Ml19ZnVuY3Rpb24gcmFlKGwpe3ZhciBjLGYscCxtPTA7cmV0dXJuIGFbOCsoYz0wfGFbKG09MHxhWyhsfD0wKT4+Ml0pPj4yXSk+PjJdPS0xLGFbbT4+Ml09YVttKygocD0oMHxhWyhmPWwrNHwwKT4+Ml0pLTF8MCk8PDIpPj4yXSxhWzgrKDB8YVsobT0wfGFbbD4+Ml0pPj4y''@;'; put 'put ''XSk+PjJdPTAsYVttKyhwPDwyKT4+Ml09YyxhW2Y+PjJdPXAsUUgobCwwKSwwfGN9ZnVuY3Rpb24gaWFlKGwpe3JldHVybiAwfEM3KDB8YVsobHw9MCk+PjJdLDAsMCl9ZnVuY3Rpb24gb2FlKGwpe3ZhciBmLHAsbSxBLHcsYz0wO3JldHVybigwfGFbMTY0KygwfGFbKGM9MTYrKGx8PTApfDAp''@;'; put 'put ''Pj4yXSk+PjJdKT4tMSYmUHIoMTAyMzUwLDEwMjMzMSw0NjMsMTAyMzY0KSxtPWwrNDh8MCxmPTB8cWQoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bSkrNDA+PjJdKSx3PWwrLTQ4fDAscD0wfHFkKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOncpKzQwPj4yXSksYz0oMHxhWzIzMisoMHxhWzE2''@;'; put 'put ''KygwfGFbKDI9PSgwfChBPTMmYVtsPj4yXSkpP2w6dykrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxBKT9sOm0pKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhW2M+PjJdKT4+MV0pfDAsLTE9PSgwfGFbZis4Pj4yXSk/S0koMHxhW2Y+PjJd''@;'; put 'put ''LDAsYyk6S0koMHxhW3A+PjJdLDAsMC1jfDApLF83KGwpLDB8ZnVuY3Rpb24gc2FlKGwsYyl7bHw9MCxjfD0wO2Zvcih2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wOyEoMD09KDB8KGY9MHxhWyhBPWwrMTJ8MCk+PjJdKSl8KDB8Zik9PSgwfGwpKTspbD1mO2Zvcig7ISgwPT0oMHwo''@;'; put 'put ''Zj0wfGFbKG09YysxMnwwKT4+Ml0pKXwoMHxmKT09KDB8YykpOyljPWY7aWYoKDB8bCkhPSgwfGMpKXtwPTB8YVtsKzg+PjJdLGY9MHxhW2MrOD4+Ml07ZG97aWYoKDB8cCk+LTEpLTE9PSgwfGYpP3c9bDprPTEwO2Vsc2V7aWYoKDB8Zik+LTEpe2lmKC0xPT0oMHxwKSl7dz1jO2JyZWFrfWs9''@;'; put 'put ''MTA7YnJlYWt9UHIoMTAyMzc2LDEwMjMzMSwzMjcsMTAyNDIzKX19d2hpbGUoMCk7MTA9PSgwfGspJiYodz0oMHxhW2MrND4+Ml0pPCgwfGFbbCs0Pj4yXSk/bDpjKSxhW20+PjJdPXcsYVtBPj4yXT13LGFbdys0Pj4yXT0oMHxhW2MrND4+Ml0pKygwfGFbbCs0Pj4yXSksKDB8YVt3Kzg+PjJd''@;'; put 'put ''KT4tMT9iPXc6UHIoMTAyNDM0LDEwMjMzMSwzMzUsMTAyNDIzKX1lbHNlIGI9bDtyZXR1cm4gMHxifShmLHApfWZ1bmN0aW9uIFFIKGwsYyl7Y3w9MDt2YXIgQSx3LGY9MCxwPTAsbT0wLGI9MDtmb3Iodz0wfGFbKGx8PTApPj4yXSxBPTB8YVtsKzQ+PjJdO209MisobD1jPDwxKXwwLCgwfChs''@;'; put 'put ''fD0xKSk8KDB8QSkmJigwfGFbNCsoMHxhW3crKGw8PDIpPj4yXSk+PjJdKTwoMHxhWzQrKDB8YVt3KyhjPDwyKT4+Ml0pPj4yXSl8fChsPWMpLCEoKDB8bSk+PSgwfEEpfHwoZj13KyhtPDwyKXwwLHA9MHxhW2Y+PjJdLCgwfG0pPT0oMHxjKXx8KDB8YVtwKzQ+PjJdKT49KDB8YVs0KygwfGFb''@;'; put 'put ''dysobDw8Mik+PjJdKT4+Ml0pKSk7KWw9MHxhWyhiPXcrKGM8PDIpfDApPj4yXSxhW2I+PjJdPXAsYVtmPj4yXT1sLGFbOCsoMHxhW2I+PjJdKT4+Ml09YyxhW2wrOD4+Ml09bSxjPW19ZnVuY3Rpb24gSkgobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTA7Zm9yKG09MTYrKGx8PTApfDAsZj0wOzsp''@;'; put 'put ''e2lmKCEocD0wfGFbKDB8YVsyNzIrKGw9MHxhW20+PjJdKT4+Ml0pKyhmPDwyKT4+Ml0pKXtwPTA7YnJlYWt9KDB8cCkhPSgwfGMpJiZKSCgwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0scCksZj1mKzF8MH1mb3IoO2Y9MHxhWygwfGFbbCsyNjQ+PjJdKSsocDw8Mik+''@;'; put 'put ''PjJdOykoMHxmKSE9KDB8YykmJihKSCgwfGFbKDM9PSgzJmFbZj4+Ml18MCk/ZjpmKzQ4fDApKzQwPj4yXSxmKSxsPTB8YVttPj4yXSkscD1wKzF8MDswfGMmJmZ1bmN0aW9uIGxhZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2ZvcigoMHxhWzI4MCsocD0wfGFbMTYrKGY9''@;'; put 'put ''MHxhWygzPT0oMHwoYz0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT09KDB8bCk/Yj0xOihiPS0xLGY9cD0wfGFbKDI9PSgwfGMpP2w6bCstNDh8MCkrNDA+PjJdLHA9MHxhW3ArMTY+PjJdKSxBPTB8YVtwKzE4MD4+Ml0sYz0wLG09MDt3PTB8YVtBKyhtPDwy''@;'; put 'put ''KT4+Ml07KWM9KDB8eVEodyxmLGIpKStjfDAsbT1tKzF8MDtmb3IoQT0wfGFbcCsxNzI+PjJdLHA9MDttPTB8YVtBKyhwPDwyKT4+Ml07KWM9KDB8eVEobSxmLGIpKStjfDAscD1wKzF8MDthWzE2MCsoMHxhW2wrMTY+PjJdKT4+Ml09Y30oYyl9ZnVuY3Rpb24geVEobCxjLGYpe3ZhciB3LHA9''@;'; put 'put ''MCxtPTAsQT0wLGI9MDtyZXR1cm4oMHwocD0wfGFbKGI9Mz09KDB8KHc9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdKSk9PSgwfChjfD0wKSkmJihwPTB8YVsoMj09KDB8dyk/bDpsKy00OHwwKSs0MD4+Ml0pLCgwfGFbMjg0KyhBPTB8YVtjKzE2Pj4yXSk+PjJdKTw9KDB8KG09''@;'; put 'put ''MHxhWzI4OCsoMHxhW3ArMTY+PjJdKT4+Ml0pKSYmKDB8bSk8PSgwfGFbQSsyODg+PjJdKT8oQT0xLHA9KHA9KDB8YVsxNjQrKG09MHxhW2wrMTY+PjJdKT4+Ml0pPi0xPzB8YVttKzE2MD4+Ml06MCktKDB8YVttKzE1Nj4+Ml0pfDApOihBPTAscD0wfGFbMTU2KygwfGFbbCsxNj4+Ml0pPj4y''@;'; put 'put ''XSksYj0oMHxhWygoMHwoZnw9MCkpPjA/Mj09KDB8dyk/bDpsKy00OHwwOmIpKzQwPj4yXSk9PSgwfGMpPzE6LTEsMHwoKDB8KEE/YjowLWJ8MCkpPDA/MC1wfDA6cCl9ZnVuY3Rpb24gcWQobCl7dmFyIGM9MCxmPTA7Zm9yKGw9MHxhWzI4MCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTsoMHwo''@;'; put 'put ''Zj0wfGFbKGM9bCsxMnwwKT4+Ml0pKSE9KDB8bCkmMCE9KDB8Zik7KShsPTB8YVtmKzEyPj4yXSk/YVtjPj4yXT1sOmw9ZjtyZXR1cm4gMHxsfWZ1bmN0aW9uIEtJKGwsYyxmKXtjfD0wO3ZhciB3LHA9MCxtPTAsQT0wO2ZvcihhWyhBPTIzMisocD0wfGFbKHc9MTYrKGx8PTApfDApPj4yXSl8''@;'; put 'put ''MCk+PjJdPSgwfGFbQT4+Ml0pKyhmfD0wKSxBPTA7Oyl7aWYoIShtPTB8YVsoMHxhW3ArMjY0Pj4yXSkrKEE8PDIpPj4yXSkpe0E9MDticmVha30oMHwobT0wfGFbKDM9PSgzJmFbbT4+Ml18MCk/bTptKzQ4fDApKzQwPj4yXSkpIT0oMHxjKSYmKEtJKG0sbCxmKSxwPTB8YVt3Pj4yXSksQT1B''@;'; put 'put ''KzF8MH1mb3IoO209MHxhWygwfGFbcCsyNzI+PjJdKSsoQTw8Mik+PjJdOykoMHwobT0wfGFbKDI9PSgzJmFbbT4+Ml18MCk/bTptKy00OHwwKSs0MD4+Ml0pKSE9KDB8YykmJihLSShtLGwsZikscD0wfGFbdz4+Ml0pLEE9QSsxfDB9ZnVuY3Rpb24gXzcobCl7dmFyIEEsYz0wLGY9MCxwPTAs''@;'; put 'put ''bT0wLHc9MDtBPWxlLGxlPWxlKzMyfDAsKDB8YVsoYz0xNjQrKDB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pPi0xJiYoJHIoMSwxMDI0NTMsQSksemUoMTg4ODQ4LDEpKSxhW2M+PjJdPW09MHxhWzQ3MjU1XSxjPTB8YVs0NzI1Nl0sYVs0NzI1NV09bSsxLGFbYysobTw8Mik+PjJdPWwsbT1s''@;'; put 'put ''KzQ4fDAsMHxmZVsxNTcrKDB8YVsxNisoZj0wfGFbKDM9PSgzJihjPTB8YVtsPj4yXSl8MCk/bDptKSs0MD4+Ml0pPj4yXSk+PjBdfHwocD0wfGFbNDcyNjJdLGFbNDcyNjNdPTErKGM9MHxhWzQ3MjYzXSksYVtwKyhjPDwyKT4+Ml09ZixjPTB8YVtsPj4yXSkscD1sKy00OHwwLDB8ZmVbMTU3''@;'; put 'put ''KygwfGFbMTYrKGY9MHxhWygyPT0oMyZjfDApP2w6cCkrNDA+PjJdKT4+Ml0pPj4wXXx8KHc9MHxhWzQ3MjYyXSxhWzQ3MjYzXT0xKyhjPTB8YVs0NzI2M10pLGFbdysoYzw8Mik+PjJdPWYsYz0wfGFbbD4+Ml0pLGZlWzE1NysoYz0wfGFbKHc9MTYrKDB8YVsoMz09KDMmY3wwKT9sOm0pKzQw''@;'; put 'put ''Pj4yXSl8MCk+PjJdKT4+MF09MSxmPTB8YVtjKzI3Mj4+Ml0sYVsoYz1jKzI3NnwwKT4+Ml09MSsobT0wfGFbYz4+Ml0pLGFbZisobTw8Mik+PjJdPWwsYVsoMHxhWzI3MisobT0wfGFbdz4+Ml0pPj4yXSkrKGFbbSsyNzY+PjJdPDwyKT4+Ml09MCwwfGFbKDB8YVsxODArKHc9MHxhW3c+PjJd''@;'; put 'put ''KT4+Ml0pKygoMHxhW3crMjc2Pj4yXSktMTw8Mik+PjJdfHwoJHIoMSwxMDI0ODcsQSs4fDApLHplKDE4ODg0OCwxKSksZmVbMTU3KyhmPTB8YVsodz0xNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6cCkrNDA+PjJdKXwwKT4+Ml0pPj4wXT0xLHA9MHxhW2YrMjY0Pj4yXSxhWyhmPWYrMjY4''@;'; put 'put ''fDApPj4yXT0xKyhtPTB8YVtmPj4yXSksYVtwKyhtPDwyKT4+Ml09bCxhWygwfGFbMjY0KyhsPTB8YVt3Pj4yXSk+PjJdKSsoYVtsKzI2OD4+Ml08PDIpPj4yXT0wLDB8YVsoMHxhWzE3Misodz0wfGFbdz4+Ml0pPj4yXSkrKCgwfGFbdysyNjg+PjJdKS0xPDwyKT4+Ml0/bGU9QTooJHIoMSwx''@;'; put 'put ''MDI1MjIsQSsxNnwwKSx6ZSgxODg4NDgsMSkpfWZ1bmN0aW9uIEM3KGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE0scD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO009MHxxZChsfD0wKSxmPygoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChrPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+''@;'; put 'put ''PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxrKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCkhPSgwfGhyWzE3MCsoMHxhW2YrMTY+PjJdKT4+MV0pJiYocD0zKTooZj0wLHA9Myk7ZTpkb3tpZigzPT0oMHxwKSl7Zm9yKGs9bCsxNnwwLGI9MDs7KXtp''@;'; put 'put ''ZighKHc9MHxhWygwfGFbMTgwKyhwPTB8YVtrPj4yXSk+PjJdKSsoYjw8Mik+PjJdKSl7Yj0wO2JyZWFrfXA9dysxNnwwLG09dystNDh8MCxBPTB8YVsoMj09KDMmYVt3Pj4yXXwwKT93Om0pKzQwPj4yXTtkb3tpZigoMHxhWzE2NCsoMHxhW3A+PjJdKT4+Ml0pPi0xKSgwfEEpIT0oMHxjKSYm''@;'; put 'put ''KGY9MHxDNyhBLGwsZikpO2Vsc2UgaWYoKDB8cWQoQSkpIT0oMHxNKSl7aWYoMHxmJiYoKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoRD0zJmFbdz4+Ml0pKT93Om0pKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8RCk/dzp3KzQ4fDApKzQwPj4y''@;'; put 'put ''XSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhW3A+PjJdKT4+MV0pfDApPj0oKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoQT0zJmFbZj4+Ml0pKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09KDB8QSk/ZjpmKzQ4fDApKzQwPj4y''@;'; put 'put ''XSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhW2YrMTY+PjJdKT4+MV0pfDApKWJyZWFrO2Y9d319d2hpbGUoMCk7Yj1iKzF8MH1mb3IoOzspe2lmKCEocD0wfGFbKDB8YVtwKzE3Mj4+Ml0pKyhiPDwyKT4+Ml0pKWJyZWFrIGU7bT1wKzE2fDAsQT1wKzQ4fDAsdz0wfGFbKDM9PSgzJmFbcD4+''@;'; put 'put ''Ml18MCk/cDpBKSs0MD4+Ml07ZG97aWYoKDB8YVsxNjQrKDB8YVttPj4yXSk+PjJdKT4tMSkoMHx3KSE9KDB8YykmJihmPTB8QzcodyxsLGYpKTtlbHNlIGlmKCgwfHFkKHcpKSE9KDB8TSkpe2lmKDB8ZiYmKCgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDB8KHc9MyZhW3A+PjJdKSk/cDpw''@;'; put 'put ''Ky00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKS0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgwfHcpP3A6QSkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbMTcwKygwfGFbbT4+Ml0pPj4xXSl8MCk+PSgoMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChEPTMmYVtmPj4yXSkpP2Y6ZistNDh8''@;'; put 'put ''MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxEKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbMTcwKygwfGFbZisxNj4+Ml0pPj4xXSl8MCkpYnJlYWs7Zj1wfX13aGlsZSgwKTtiPWIrMXwwLHA9MHxhW2s+PjJdfX19d2hpbGUoMCk7''@;'; put 'put ''cmV0dXJuIDB8Zn1mdW5jdGlvbiBYSChsLGMpe3ZhciBNLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MDtmb3IoYVsyODArKGY9MHxhWyhNPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXT1jfD0wLGw9MSxBPTA7Oyl7aWYoIShtPTB8YVsoMHxhW2YrMTcyPj4yXSkrKEE8PDIp''@;'; put 'put ''Pj4yXSkpe0E9MDticmVha30oMHxhWzE2NCsocD0wfGFbbSsxNj4+Ml0pPj4yXSk8PS0xJiYoYj1tKzQ4fDAsMD09KDB8YVsyODArKGs9MHxhWzE2KygwfGFbKDM9PSgwfCh3PTMmYVttPj4yXSkpP206YikrNDA+PjJdKT4+Ml0pPj4yXSkpJiYoKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0o''@;'; put 'put ''MHx3KT9tOm0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbaysyMzI+PjJdKXwwKT09KDB8aHJbcCsxNzA+PjFdKSYmKF83KG0pLGw9KDB8WEgoMHxhWygzPT0oMyZhW20+PjJdfDApP206YikrNDA+PjJdLGMpKStsfDAsZj0wfGFbTT4+Ml0pLEE9QSsxfDB9Zm9yKDtwPTB8YVsoMHxh''@;'; put 'put ''W2YrMTgwPj4yXSkrKEE8PDIpPj4yXTspKDB8YVsxNjQrKG09MHxhW3ArMTY+PjJdKT4+Ml0pPD0tMSYmKFI9cCstNDh8MCwwPT0oMHxhWzI4MCsoRz0wfGFbMTYrKDB8YVsoMj09KDB8KEQ9MyZhW3A+PjJdKSk/cDpSKSs0MD4+Ml0pPj4yXSk+PjJdKSkmJigoMHxhW0crMjMyPj4yXSktKDB8''@;'; put 'put ''YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxEKT9wOnArNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCk9PSgwfGhyW20rMTcwPj4xXSkmJihfNyhwKSxsPSgwfFhIKDB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOlIpKzQwPj4yXSxjKSkrbHwwLGY9MHxhW00+PjJdKSxBPUErMXwwO3JldHVybiAw''@;'; put 'put ''fGx9ZnVuY3Rpb24gazcobCxjLGYpe3ZhciBwPTA7cmV0dXJuIDB8cFEobHw9MCxjfD0wLGZ8PTAscD0ocD0wfExpKGwsMTAyNTg2KSk/MHxyMyhwKTozMCl9ZnVuY3Rpb24gd1EobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEQsRyxxLHBlLGdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0w''@;'; put 'put ''LFI9MCxiZT0wO2ZvcihxPWxlLGxlPWxlKzE2fDAsRz1xLGFbNDcyNjRdPWFbNCsoMHxhWzgrKDB8YVs2NCsoY3w9MCk+PjJdKT4+Ml0pPj4yXSxnZT0rX1szMisoQT0wfGFbYysxNj4+Ml0pPj4zXSxwZT0rX1tBKzQwPj4zXSxTNyhmLDEwMjU5NywrX1tsKzM1Mj4+M10pLFM3KGYsMTAyNjA0''@;'; put 'put ''LC4wMTM4ODg4ODg4ODg4ODg4ODgqZ2UpLFM3KGYsMTAyNjA0LC4wMTM4ODg4ODg4ODg4ODg4ODgqcGUpLEtIKGYpLEE9MHxEdChjKTtBOykwfGZlWzExOCsoMHxhWyhtPUErMTZ8MCk+PjJdKT4+MF18fChRMyhmLDEwMjYwNiwwfFJBKDB8dGkoQSkpKSxhW0c+PjJdPWFbKFI9MTYrKDB8YVtt''@;'; put 'put ''Pj4yXSl8MCk+PjJdLGFbRys0Pj4yXT1hW1IrND4+Ml0sYVtHKzg+PjJdPWFbUis4Pj4yXSxhW0crMTI+PjJdPWFbUisxMj4+Ml0sJEgoZixHKSxsPTB8ZmVbODIrKDB8YVsxMDQrKDB8YVttPj4yXSk+PjJdKT4+MF0/MHxSQSgwfEhvKEEsMHxhWzQ3MTU0XSkpOjB8cUgobD0wfGNyKEEpLDB8''@;'; put 'put ''YVthWzEwNCsoMHxhW20+PjJdKT4+Ml0+PjJdKSxTNyhmLDEwMjYwNCwrX1szMisoMHxhW20+PjJdKT4+M10pLFM3KGYsMTAyNjA0LCtfWzQwKygwfGFbbT4+Ml0pPj4zXSksUTMoZiwxMDI2MDQsbCksUTMoZiwxMDI2MDQsMHxCYShBLDB8YVs0NzE1N10sMTExMDY3KSksUTMoZiwxMDI2MDQs''@;'; put 'put ''MHxhW2FbOCsoMHxhW20+PjJdKT4+Ml0+PjJdKSxRMyhmLDEwMjYwNCwwfEJhKEEsMHxhWzQ3MTQ4XSwxMzczMTQpKSxsPTB8QmEoQSwwfGFbNDcxNDldLDE5NTA1OSksMHxmZVtsPj4wXXx8KGw9MHxCYShBLDB8YVs0NzE0OF0sMTM0ODAwKSksUTMoZiwxMDI2MDQsbCksS0goZikpLEE9MHx6''@;'; put 'put ''dChjLEEpO2ZvcihEPXA8PDI0Pj4yND09MCxNPTB8RHQoYyk7TTspe2ZvcihrPTB8dzAoYyxNKTtrOyl7RD8ocD0xOTUwNTksdz0xOTUwNTkpOih3PTB8TGkoaywxMTE0NTUpLHA9MHwocD0wfExpKGssMTExNDY0KSk/cDoxOTUwNTksdz0wfHc/dzoxOTUwNTkpLGI9MHxhWzgrKGw9MHxhWyhS''@;'; put 'put ''PWsrMTZ8MCk+PjJdKT4+Ml07ZTpkb3tpZihiKXtmb3IoQT0wfGFbYis0Pj4yXSxsPTAsbT0wOyEoKDB8bCk+PSgwfEEpKTspYmU9KDB8YVsoMHxhW2I+PjJdKSsoNDgqbHwwKSs0Pj4yXSkrbXwwLGw9bCsxfDAsbT1iZTtmb3IoUTMoZiwwLDExMTQ1MCksX1EoZiwwfGFbKDM9PSgzJmFbaz4+''@;'; put 'put ''Ml18MCk/azprKzQ4fDApKzQwPj4yXSx3KSxfUShmLDB8YVsoMj09KDMmYVtrPj4yXXwwKT9rOmsrLTQ4fDApKzQwPj4yXSxwKSxjYWUoZixtKSxwPTA7Oyl7aWYoKDB8cCk+PSgwfGFbNCsobT0wfGFbOCsobD0wfGFbUj4+Ml0pPj4yXSk+PjJdKSlicmVhayBlO2ZvcihtPTB8YVsoQT0wfGFb''@;'; put 'put ''bT4+Ml0pKyg0OCpwfDApPj4yXSxBPTB8YVtBKyg0OCpwfDApKzQ+PjJdLGw9MDshKCgwfGwpPj0oMHxBKSk7KWFbRz4+Ml09YVsoYmU9bSsobDw8NCl8MCk+PjJdLGFbRys0Pj4yXT1hW2JlKzQ+PjJdLGFbRys4Pj4yXT1hW2JlKzg+PjJdLGFbRysxMj4+Ml09YVtiZSsxMj4+Ml0sJEgoZixH''@;'; put 'put ''KSxsPWwrMXwwO3A9cCsxfDB9fX13aGlsZSgwKTswfGFbbCs5Nj4+Ml0mJihRMyhmLDEwMjYwNCwwfHFIKGJlPTB8Y3IoMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6ays0OHwwKSs0MD4+Ml0pLDB8YVthWzk2KygwfGFbUj4+Ml0pPj4yXT4+Ml0pKSxhW0c+PjJdPWFbKGJlPTU2KygwfGFbOTYr''@;'; put 'put ''KDB8YVtSPj4yXSk+PjJdKXwwKT4+Ml0sYVtHKzQ+PjJdPWFbYmUrND4+Ml0sYVtHKzg+PjJdPWFbYmUrOD4+Ml0sYVtHKzEyPj4yXT1hW2JlKzEyPj4yXSwkSChmLEcpKSxRMyhmLDEwMjYwNCwwfEJhKGssMHxhWzQ3MTg1XSwxMTEwNjcpKSxRMyhmLDEwMjYwNCwwfEJhKGssMHxhWzQ3MTc2''@;'; put 'put ''XSwxMzczMTQpKSxLSChmKSxrPTB8UzAoYyxrKX1NPTB8enQoYyxNKX1NNygxMDI2MTIsZiksbGU9cX1mdW5jdGlvbiBTNyhsLGMsZil7dmFyIHAsbSxBO2x8PTAsZj0rZixBPWxlLGxlPWxlKzEwNDB8MCxtPUEscD1BKzh8MCwwfChjfD0wKSYmTTcoYyxsKSxfW20+PjNdPWYsb28ocCwxMDI2''@;'; put 'put ''MTgsbSksTTcocCxsKSxsZT1BfWZ1bmN0aW9uIEtIKGwpe2x8PTAsZmVbMTk0OTU1XT0xMCxCaVsxMjcmYVs0NzI2NF1dKGwsMTk0OTU1KX1mdW5jdGlvbiBRMyhsLGMsZil7bHw9MCxmfD0wLDB8KGN8PTApJiZNNyhjLGwpLE03KGYsbCl9ZnVuY3Rpb24gJEgobCxjKXtTNyhsfD0wLDEwMjYw''@;'; put 'put ''NCwuMDEzODg4ODg4ODg4ODg4ODg4KitfWyhjfD0wKT4+M10pLFM3KGwsMTAyNjA0LC4wMTM4ODg4ODg4ODg4ODg4ODgqK19bYys4Pj4zXSl9ZnVuY3Rpb24gcUgobCxjKXt2YXIgZjtyZXR1cm4gYz0wfFJBKGY9MHxyMChsfD0wLGN8PTApKSxlMChsLGYpLDB8Y31mdW5jdGlvbiBfUShsLGMs''@;'; put 'put ''Zil7Znw9MCxRMyhsfD0wLDEwMjYwNCxjPTB8ZmVbMTE4KygwfGFbMTYrKGN8PTApPj4yXSk+PjBdPzB8cUgoMHxjcihjKSwxKygwfCRzKDB8dGkoYyksNTgpKXwwKTowfFJBKDB8dGkoYykpKSwwfGYmJjB8ZmVbZj4+MF0mJlEzKGwsMTA3OTg0LDB8UkEoZikpfWZ1bmN0aW9uIGNhZShsLGMp''@;'; put 'put ''e3ZhciBmLHAsbTtjfD0wLGY9bGUsbGU9bGUrMTA0MHwwLG09ZixwPWYrOHwwLE03KDEwMjYwNCxsfD0wKSxhW20+PjJdPWMsb28ocCwxMzczOTUsbSksTTcocCxsKSxsZT1mfWZ1bmN0aW9uIE03KGwsYyl7QmlbMTI3JmFbNDcyNjRdXShjfD0wLGx8PTApfWZ1bmN0aW9uIENRKGwsYyxmKXtj''@;'; put 'put ''fD0wLGZ8PTA7dmFyIFJlLEhlLFZlLHFlLFdlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExyLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLHJ0PTA7Zm9yKExyPWxl''@;'; put 'put ''LGxlPWxlKzIyODh8MCxEcj1McisyMDh8MCxmcj1McisxOTJ8MCxFcj1McisxNzZ8MCxIcj1McisxNjB8MCx1cj1McisxNDR8MCxIbj1McisxMjh8MCxhbj1McisxMTJ8MCxidD1Mcis5NnwwLGN0PUxyKzgwfDAsWnQ9THIrNjR8MCxFdD1Mcis1NnwwLHN0PUxyKzQ4fDAsSnI9THIrMzJ8MCxT''@;'; put 'put ''bj1McisyNHwwLGt0PUxyLFdlPUxyKzEyNjR8MCxhdD1McisyMjR8MCxxZT0oMHxoclsxNzgrKDB8YVsoU3Q9MTYrKGx8PTApfDApPj4yXSk+PjFdKT4yLHNjKDEpLHVzKGF0LDEwMjQsTHIrMjQwfDApLFoyKGwsMSwxMDI2MjMsMTk1MDU5KSxaMihsLDEsMTAyNjI3LDE5NTA1OSksYVs0NzE0''@;'; put 'put ''Nl09MHxaMihsLDEsMTQxMTE2LDE5NTA1OSksYVs0NzE0NV09MHxaMihsLDEsMTQxMDQ4LDE5NTA1OSksWjIobCwyLDEwMjYyMywxOTUwNTkpLDE2JihwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pJiYoWjIobCwxLDEwMjYzMywxOTUwNTkpLHA9MHxmZVsxMTMrKDB8YVtTdD4+Ml0pPj4w''@;'; put 'put ''XSksMSZwJiYoWjIobCwyLDEwMjYzNywxOTUwNTkpLHA9MHxmZVsxMTMrKDB8YVtTdD4+Ml0pPj4wXSksMzImcCYmKFoyKGwsMiwxMDI2MzMsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pLDImcCYmKFoyKGwsMiwxMDI2NDAsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFbU3Q+''@;'; put 'put ''PjJdKT4+MF0pLDQmcCYmKFoyKGwsMiwxMDI2NDgsMTk1MDU5KSxwPTB8ZmVbMTEzKygwfGFbU3Q+PjJdKT4+MF0pLDgmcD8oT2U9MHxaMihsLDAsMTAyNjM3LDE5NTA1OSksYmU9MHxaMihsLDAsMTAyNjU2LDE5NTA1OSksZ2U9MHxaMihsLDAsMTAyNjYzLDE5NTA1OSkpOihnZT0wLGJlPTAs''@;'; put 'put ''T2U9MCksUmU9MHxaMihsLDAsMTAyNjcxLDE5NTA1OSksSGU9YXQrNHwwLFZlPWF0Kzh8MCxwZT0wLHA9MCxMZT0wfER0KGwpO0xlOyl7aWYoaz0rX1sxNisoQT0wfGFbKHE9TGUrMTZ8MCk+PjJdKT4+M10sbT0hMCxxZSl7Zm9yKHc9bT8rX1tBKzI0Pj4zXTorX1syMzMwMV0tK19bQSsyND4+''@;'; put 'put ''M10sRD03MiorX1sxNisoMHxhW0ErMTMyPj4yXSk+PjNdLF9ba3Q+PjNdPWssX1trdCs4Pj4zXT13LF9ba3QrMTY+PjNdPUQsb28oV2UsMTAyNjc0LGt0KSx1byhhdCxXZSksbT0zOyEoKDB8bSk+PSgwfGhyWzE3OCsoMHxhW1N0Pj4yXSk+PjFdKSk7KV9bU24+PjNdPTcyKitfWygwfGFbMTMy''@;'; put 'put ''KygwfGFbcT4+Ml0pPj4yXSkrKG08PDMpPj4zXSxvbyhXZSwxMDI2ODksU24pLHVvKGF0LFdlKSxtPW0rMXwwOyhtPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKGF0LDEpLG09MHxhW0hlPj4yXSksZmVbbT4+MF09MCxhW0hlPj4yXT1HPTB8YVthdD4+Ml0sa2MoTGUs''@;'; put 'put ''MTAyNjIzLEcpLEc9TGV9ZWxzZSB3PW0/K19bQSsyND4+M106K19bMjMzMDFdLStfW0ErMjQ+PjNdLF9bSnI+PjNdPWssX1tKcis4Pj4zXT13LG9vKFdlLDEwMjY5NSxKciksa2MoTGUsMTAyNjIzLFdlKSxHPUxlO2lmKF9bc3Q+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bODArKDB8YVtx''@;'; put 'put ''Pj4yXSk+PjNdLG9vKFdlLDEwMjYxOCxzdCksVmwoRywwfGFbNDcxNDVdLFdlKSxfW0V0Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KigrX1s5NisobT0wfGFbcT4+Ml0pPj4zXSsgK19bbSs4OD4+M10pLG9vKFdlLDEwMjYxOCxFdCksVmwoRywwfGFbNDcxNDZdLFdlKSwwIT0oMHwoQT0wfGFb''@;'; put 'put ''MTA4KyhtPTB8YVtxPj4yXSk+PjJdKSkmJjAhPSgwfGZlW0ErODE+PjBdKSYmKEQ9K19bQSs2ND4+M10sX1tadD4+M109K19bQSs1Nj4+M10sX1tadCs4Pj4zXT1ELG9vKFdlLDEwMjY5NSxadCksa2MoRywxMDI2MzMsV2UpLG09MHxhW3E+PjJdKSwwfFppKDB8YVthW20rOD4+Ml0+PjJdLDEw''@;'; put 'put ''NjIyMCkpe2lmKDB8YVs0NzE3MF0mJigwfEhhZShMZSkpPDwyND4+MjQpe2ZvcigoMHwobT0wfGFbKFI9OCsoQT0wfGFbMTIrKDB8YVtxPj4yXSk+PjJdKXwwKT4+Ml0pKTwzJiYobT0oMHwobT0obT0wfExpKEcsMTAyNzA1KSk/MHxyMyhtKTo4KSk8Mz84Om0pLE09QSs0NHwwLEQ9MS8rKDB8''@;'; put 'put ''bSksYj0wOyEoKDB8Yik+PSgwfG0pKTspKDB8Yik+MCYmKChBPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKGF0LDEpLEE9MHxhW0hlPj4yXSksYVtIZT4+Ml09QSsxLGZlW0E+PjBdPTMyKSwoMHxhW1I+PjJdKT4yPyh3PS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bKEE9''@;'; put 'put ''MHxhW00+PjJdKSsoYjw8NCkrOD4+M10sX1tjdD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tBKyhiPDw0KT4+M10sX1tjdCs4Pj4zXT13LG9vKFdlLDEwMjcxOCxjdCkpOihrPS41KitfWzMyKyhBPTB8YVtxPj4yXSk+PjNdKitoYSgrKHc9RCorKDB8YikqNi4yODMxODUzMDcxNzk1ODYp''@;'; put 'put ''KSx3PS41KitfW0ErNDA+PjNdKitEYSgrdyksX1tidD4+M109ayxfW2J0Kzg+PjNdPXcsb28oV2UsMTAyNzE4LGJ0KSksdW8oYXQsV2UpLGI9YisxfDA7QT0wfGFbNDcxNzBdLChtPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKGF0LDEpLG09MHxhW0hlPj4yXSksZmVb''@;'; put 'put ''bT4+MF09MCxhW0hlPj4yXT1xPTB8YVthdD4+Ml0sVmwoRyxBLHEpfX1lbHNlIGtRKExlLDB8YVttKzEyPj4yXSxhdCksTDYoYXQpLChtPTB8YVtIZT4+Ml0pPj4+MD49KDB8YVtWZT4+Ml0pPj4+MCYmKFEwKGF0LDEpLG09MHxhW0hlPj4yXSksZmVbbT4+MF09MCxhW0hlPj4yXT1xPTB8YVth''@;'; put 'put ''dD4+Ml0sa2MoRywxMDI2MjcscSk7ZTpkb3tpZigoMHxhWzQ3MTM4XSk+MClmb3IocT0wfHcwKGwsTGUpLG09cGU7Oyl7aWYoIXEpYnJlYWsgZTtBPTB8YVsoRz1xKzE2fDApPj4yXTtkb3tpZig2IT0oMHxmZVtBKzExMj4+MF0pJiYwIT0oMHwocnQ9MHxhW0ErOD4+Ml0pKSl7Zm9yKFI9MCxB''@;'; put 'put ''PXJ0OyEoKDB8Uik+PSgwfGFbQSs0Pj4yXSkpOyl7Zm9yKCgwfFIpPjAmJigoQT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChhdCwxKSxBPTB8YVtIZT4+Ml0pLGFbSGU+PjJdPUErMSxmZVtBPj4wXT01OSxBPTB8YVs4KygwfGFbRz4+Ml0pPj4yXSksMHxhWyhBPTB8''@;'; put 'put ''YVtBPj4yXSkrKDQ4KlJ8MCkrOD4+Ml0mJih3PStfW0ErKDQ4KlJ8MCkrMjQ+PjNdLF9bYW4+PjNdPStfW0ErKDQ4KlJ8MCkrMTY+PjNdLF9bYW4rOD4+M109dyxvbyhXZSwxMDI3MjgsYW4pLHVvKGF0LFdlKSxwPTEsQT0wfGFbYVs4KygwfGFbRz4+Ml0pPj4yXT4+Ml0pLDB8YVtBKyg0OCpS''@;'; put 'put ''fDApKzEyPj4yXSYmKHc9K19bQSsoNDgqUnwwKSs0MD4+M10sX1tIbj4+M109K19bQSsoNDgqUnwwKSszMj4+M10sX1tIbis4Pj4zXT13LG9vKFdlLDEwMjc0MSxIbiksdW8oYXQsV2UpLG09MSksTT0wOyEoKDB8TSk+PSgwfGFbKGI9MHxhWyhBPTB8YVs4KygwfGFbRz4+Ml0pPj4yXSk+PjJd''@;'; put 'put ''KSsoNDgqUnwwKSs0Pj4yXSkpOykoMHxNKT4wPygoQT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChhdCwxKSxBPTB8YVtIZT4+Ml0pLGFbSGU+PjJdPUErMSxmZVtBPj4wXT0zMixBPTB8YVthWzgrKDB8YVtHPj4yXSk+PjJdPj4yXSk6QT1iLEQ9K19bKHBlPTB8YVtB''@;'; put 'put ''Kyg0OCpSfDApPj4yXSkrKE08PDQpKzg+PjNdLF9bdXI+PjNdPStfW3BlKyhNPDw0KT4+M10sX1t1cis4Pj4zXT1ELG9vKFdlLDEwMjY5NSx1ciksdW8oYXQsV2UpLE09TSsxfDA7Uj1SKzF8MH0oQT0wfGFbSGU+PjJdKT4+PjA+PSgwfGFbVmU+PjJdKT4+PjAmJihRMChhdCwxKSxBPTB8YVtI''@;'; put 'put ''ZT4+Ml0pLGZlW0E+PjBdPTAsYVtIZT4+Ml09QT0wfGFbYXQ+PjJdLGtjKHEsMTAyNjIzLEEpLChiPTB8YVs5NisoQT0wfGFbRz4+Ml0pPj4yXSkmJihEPStfW2IrNjQ+PjNdLF9bSHI+PjNdPStfW2IrNTY+PjNdLF9bSHIrOD4+M109RCxvbyhXZSwxMDI2OTUsSHIpLGtjKHEsMTAyNjM3LFdl''@;'; put 'put ''KSxBPTB8YVtHPj4yXSksYj0wfGFbQSsxMDg+PjJdO2Rve2lmKGIpe2lmKCEoMHxmZVtiKzgxPj4wXSkpYnJlYWs7RD0rX1tiKzY0Pj4zXSxfW0VyPj4zXT0rX1tiKzU2Pj4zXSxfW0VyKzg+PjNdPUQsb28oV2UsMTAyNjk1LEVyKSxrYyhxLDEwMjYzMyxXZSksQT0wfGFbRz4+Ml19fXdoaWxl''@;'; put 'put ''KDApO2lmKChiPTB8YVtBKzEwMD4+Ml0pJiYoRD0rX1tiKzY0Pj4zXSxfW2ZyPj4zXT0rX1tiKzU2Pj4zXSxfW2ZyKzg+PjNdPUQsb28oV2UsMTAyNjk1LGZyKSxrYyhxLDEwMjY0MCxXZSksQT0wfGFbRz4+Ml0pLCEoQT0wfGFbQSsxMDQ+PjJdKSlicmVhaztEPStfW0ErNjQ+PjNdLF9bRHI+''@;'; put 'put ''PjNdPStfW0ErNTY+PjNdLF9bRHIrOD4+M109RCxvbyhXZSwxMDI2OTUsRHIpLGtjKHEsMTAyNjQ4LFdlKX19d2hpbGUoMCk7cT0wfFMwKGwscSl9ZWxzZSBtPXBlfXdoaWxlKDApO3BlPW0sTGU9MHx6dChsLExlKX1TUShsLFJlLE9lLGJlLGdlKSxDMihhdCksMSZpdFsxMzYrKDB8YVtTdD4+''@;'; put 'put ''Ml0pPj4xXSYmYkoobCksYVtjPj4yXT1wLGFbZj4+Ml09cGUsc2MoMCksbGU9THJ9ZnVuY3Rpb24ga1EobCxjLGYpe2x8PTAsZnw9MDt2YXIgYixrLE0sRCxwPTAsbT0wLEE9MCx3PTAsUj0wO2ZvcihEPWxlLGxlPWxlKzEwNTZ8MCxrPUQsYj1EKzMyfDAsMHxhWyhNPTQ4KyhjfD0wKXwwKT4+''@;'; put 'put ''Ml18fChtPShBPStfWzI0KyhwPTB8YVtsKzE2Pj4yXSk+PjNdKSsgK19bYysyND4+M10sQSs9K19bYys0MD4+M10sUj0odz0rX1twKzE2Pj4zXSkrICtfW2MrMzI+PjNdLF9baz4+M109dysgK19bYysxNj4+M10sX1trKzg+PjNdPW0sX1trKzE2Pj4zXT1SLF9baysyND4+M109QSxvbyhiLDEw''@;'; put 'put ''Mjc3OSxrKSx1byhmLGIpKSxjPWMrNTZ8MCxwPTA7ISgoMHxwKT49KDB8YVtNPj4yXSkpOylrUShsLDB8YVsoMHxhW2M+PjJdKSsocDw8Mik+PjJdLGYpLHA9cCsxfDA7bGU9RH1mdW5jdGlvbiBTUShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGIsayxNLEQsUixHLHEscGUs''@;'; put 'put ''QT0wLHc9MCxnZT0wO2ZvcihwZT1sZSxsZT1sZSsxMDg4fDAsRD1wZSs1NnwwLEc9cGUrNDh8MCxSPXBlKzMyfDAsTT1wZSs2NHwwLGI9K19bMjQrKEE9MHxhWyhxPTE2KyhsfD0wKXwwKT4+Ml0pPj4zXSxrPStfW0ErNDA+PjNdLGdlPStfW0ErMzI+PjNdLF9bKHc9cGUpPj4zXT0rX1tBKzE2''@;'; put 'put ''Pj4zXSxfW3crOD4+M109YixfW3crMTY+PjNdPWdlLF9bdysyND4+M109ayxvbyhNLDEwMjc1NCx3KSxWbChsLGMsTSksMCE9KDB8KEE9MHxhWzEyKygwfGFbcT4+Ml0pPj4yXSkpJiYwIT0oMHxmZVthW0E+PjJdPj4wXSkmJihnZT0rX1tBKzY0Pj4zXSxfW1I+PjNdPStfW0ErNTY+PjNdLF9b''@;'; put 'put ''Uis4Pj4zXT1nZSxvbyhNLDEwMjY5NSxSKSxWbChsLGYsTSksZ2U9K19bMzIrKEE9MHxhWzEyKygwfGFbcT4+Ml0pPj4yXSk+PjNdLF9bRz4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tBKzI0Pj4zXSxvbyhNLDEwMjc3NCxHKSxWbChsLHAsTSksX1tEPj4zXT0uMDEzODg4ODg4ODg4ODg4''@;'; put 'put ''ODg4KmdlLG9vKE0sMTAyNzc0LEQpLFZsKGwsbSxNKSksQT0xOyEoKDB8QSk+KDB8YVsxODArKHc9MHxhW3E+PjJdKT4+Ml0pKTspU1EoMHxhWygwfGFbdysxODQ+PjJdKSsoQTw8Mik+PjJdLGMsZixwLG0pLEE9QSsxfDA7bGU9cGV9ZnVuY3Rpb24gRTcobCl7dmFyIGM7Yz1sZSxsZT1sZSsx''@;'; put 'put ''NnwwLENRKGx8PTAsYyxjKzR8MCksbGU9Y31mdW5jdGlvbiB4Nygpe3JldHVybiAwfGlzKDIwNzQwLDB8YVs0NTgxXSl9ZnVuY3Rpb24geXkobCl7TmwobHw9MCl9ZnVuY3Rpb24gTVEobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWFbKGN8PTApPj4yXSxh''@;'; put 'put ''W3ArND4+Ml09YVtjKzQ+PjJdLGM9MHxFUShwKSwoMHxtaVs2MyZhW2w+PjJdXShsLGMsMSkpIT0oMHxjKSYmRnQoYyksbGU9Zn1mdW5jdGlvbiBFUShsKXt2YXIgYyxmLHA7cmV0dXJuIGx8PTAsYz0wfHZyKDE2KSxmPTB8YVsocD1sKSs0Pj4yXSxhWyhsPWMrOHwwKT4+Ml09YVtwPj4yXSxh''@;'; put 'put ''W2wrND4+Ml09ZiwwfGN9ZnVuY3Rpb24gZTQobCxjLGYpe3ZhciBwLG0sQTtsfD0wLGZ8PTAscD1sZSxsZT1sZSsxNnwwLG09cCs4fDAsYVsoQT1wKT4+Ml09Y3w9MCxhW0ErND4+Ml09ZixhW20+PjJdPWFbQT4+Ml0sYVttKzQ+PjJdPWFbQSs0Pj4yXSxjPTB8RVEobSksKDB8bWlbNjMmYVts''@;'; put 'put ''Pj4yXV0obCxjLDEpKSE9KDB8YykmJkZ0KGMpLGxlPXB9ZnVuY3Rpb24gZGFlKGwsYyl7dmFyIGYscCxtLEE7cmV0dXJuIGx8PTAsZj1sZSxsZT1sZSsxNnwwLG09MHxhWzQrKEE9Y3w9MCk+PjJdLGFbKGM9KHA9ZikrOHwwKT4+Ml09YVtBPj4yXSxhW2MrND4+Ml09bSxjPTAhPSgwfG1pWzYz''@;'; put 'put ''JmFbbD4+Ml1dKGwscCw0KSkmMSxsZT1mLDB8Y31mdW5jdGlvbiB4UShsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxmfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApKzg+PjJdPWN8PTAsYVttKzEyPj4yXT1mLGY9MCE9KDB8bWlbNjMmYVtsPj4yXV0obCxtLDQpKSYxLGxlPXAsMHxmfWZ1''@;'; put 'put ''bmN0aW9uIFRRKGwpe3JldHVybiAwfHB1KGx8PTApfWZ1bmN0aW9uIElRKGwpe3ZhciBmLGM9MCxwPTAsbT0wLEE9MDtmb3IoYz1mPTB8dnIoKDB8cHUobHw9MCkpPDwzKSxsPTB8czAobCk7bDspbT0wfGFbNCsoQT1sKzh8MCk+PjJdLGFbKHA9Yyk+PjJdPWFbQT4+Ml0sYVtwKzQ+PjJdPW0s''@;'; put 'put ''Yz1jKzh8MCxsPTB8YVtsPj4yXTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHZhZShsKXttaVs2MyZhWyhsfD0wKT4+Ml1dKGwsMCw2NCl9ZnVuY3Rpb24gRFEobCxjKXt2YXIgcCxtLEEsdyxiLGssTSxSLHEscGUsZ2UsYmUsZj0wLEQ9MCxHPTA7Zm9yKGJlPWxlLGxlPWxlKzE2MHwwLHE9YmUrMTQ0''@;'; put 'put ''fDAsZj1iZSs0OHwwLGI9YmUrMTI4fDAsaz1iZSsxMTJ8MCxNPWJlKzk2fDAsRD1iZSs4MHwwLFI9YmUrMzJ8MCxHPWJlKzE2fDAscGU9YmUscD0rX1sxNisobD0wfGFbKGdlPTE2KyhsfD0wKXwwKT4+Ml0pPj4zXSxtPStfW2wrMjQ+PjNdLEE9K19bbCszMj4+M10sdz0rX1tsKzQwPj4zXSwo''@;'; put 'put ''KGN8PTApLTF8MCk+Pj4wPDI/KEo2KGIscCx3KSxhW3E+PjJdPWFbYj4+Ml0sYVtxKzQ+PjJdPWFbYis0Pj4yXSxhW3ErOD4+Ml09YVtiKzg+PjJdLGFbcSsxMj4+Ml09YVtiKzEyPj4yXSxpaChmLHEpLEc9ZisxNnwwLEo2KGssQSxtKSxhW3E+PjJdPWFbaz4+Ml0sYVtxKzQ+PjJdPWFbays0''@;'; put 'put ''Pj4yXSxhW3ErOD4+Ml09YVtrKzg+PjJdLGFbcSsxMj4+Ml09YVtrKzEyPj4yXSxpaChNLHEpLGFbRz4+Ml09YVtNPj4yXSxhW0crND4+Ml09YVtNKzQ+PjJdLGFbRys4Pj4yXT1hW00rOD4+Ml0sYVtHKzEyPj4yXT1hW00rMTI+PjJdKTooSjYoRCxwLG0pLGFbcT4+Ml09YVtEPj4yXSxhW3Er''@;'; put 'put ''ND4+Ml09YVtEKzQ+PjJdLGFbcSs4Pj4yXT1hW0QrOD4+Ml0sYVtxKzEyPj4yXT1hW0QrMTI+PjJdLGloKGYscSksRD1mKzE2fDAsSjYoUixBLHcpLGFbcT4+Ml09YVtSPj4yXSxhW3ErND4+Ml09YVtSKzQ+PjJdLGFbcSs4Pj4yXT1hW1IrOD4+Ml0sYVtxKzEyPj4yXT1hW1IrMTI+PjJdLGlo''@;'; put 'put ''KEcscSksYVtEPj4yXT1hW0c+PjJdLGFbRCs0Pj4yXT1hW0crND4+Ml0sYVtEKzg+PjJdPWFbRys4Pj4yXSxhW0QrMTI+PjJdPWFbRysxMj4+Ml0pLGFbKGw9MTYrKDB8YVtnZT4+Ml0pfDApPj4yXT1hW2Y+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wr''@;'; put 'put ''MTI+PjJdPWFbZisxMj4+Ml0sYVtsKzE2Pj4yXT1hW2YrMTY+PjJdLGFbbCsyMD4+Ml09YVtmKzIwPj4yXSxhW2wrMjQ+PjJdPWFbZisyND4+Ml0sYVtsKzI4Pj4yXT1hW2YrMjg+PjJdLChsPTB8YVsxMisoMHxhW2dlPj4yXSk+PjJdKSYmKGFbcT4+Ml09YVsobD1sKzU2fDApPj4yXSxhW3Er''@;'; put 'put ''ND4+Ml09YVtsKzQ+PjJdLGFbcSs4Pj4yXT1hW2wrOD4+Ml0sYVtxKzEyPj4yXT1hW2wrMTI+PjJdLGloKHBlLHEpLGFbbD4+Ml09YVtwZT4+Ml0sYVtsKzQ+PjJdPWFbcGUrND4+Ml0sYVtsKzg+PjJdPWFbcGUrOD4+Ml0sYVtsKzEyPj4yXT1hW3BlKzEyPj4yXSksbD0xOyEoKDB8bCk+KDB8''@;'; put 'put ''YVsxODArKGY9MHxhW2dlPj4yXSk+PjJdKSk7KURRKDB8YVsoMHxhW2YrMTg0Pj4yXSkrKGw8PDIpPj4yXSxjKSxsPWwrMXwwO2xlPWJlfWZ1bmN0aW9uIEo2KGwsYyxmKXtmPStmLF9bKGx8PTApPj4zXT1jPStjLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIGloKGwsYyl7bHw9MDt2YXIgZixtLEEs''@;'; put 'put ''cD0wO2Y9bGUsbGU9bGUrMzJ8MCxwPWYsbT05MCooMHxhWzQ3MjY1XSl8MCxhWyhBPWYrMTZ8MCk+PjJdPWFbKGN8PTApPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLFU2KHAsQSxtKSxhW2M+PjJdPWFbcD4+Ml0sYVtj''@;'; put 'put ''KzQ+PjJdPWFbcCs0Pj4yXSxhW2MrOD4+Ml09YVtwKzg+PjJdLGFbYysxMj4+Ml09YVtwKzEyPj4yXSxfW2M+PjNdPStfW2M+PjNdLStfWzIzMzAzXSxfWyhwPWMrOHwwKT4+M109K19bcD4+M10tK19bMjMzMDRdLGFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4y''@;'; put 'put ''XT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdLGxlPWZ9ZnVuY3Rpb24gWDYobCxjKXtsfD0wLGN8PTA7dmFyIEQsUixxLHBlLGdlLExlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRz0wO0xlPWxlLGxlPWxlKzExNjh8MCxwZT1MZSsxNDR8MCxEPUxlKzMyfDAsUj1M''@;'; put 'put ''ZSsxNnwwLEc9TGUsYVsoZ2U9TGUrNDh8MCk+PjJdPTAsYVtnZSs0Pj4yXT0wLGFbZ2UrOD4+Ml09MCxhW2dlKzEyPj4yXT0wLGFbNDcyNjVdPTMmKGs9MHxhWzExNisoMHxhWyhxPWwrMTZ8MCk+PjJdKT4+Ml0pLGZlWzE5NDk1N109ayY9MSxrPDwyND4+MjQ/TFEobCk6T1EobCksZnVuY3Rp''@;'; put 'put ''b24geWFlKGwpe3ZhciBELE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLHVyLEVyLGZyLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLFNuPTAsSG49MDtpZihmcj1sZSxsZT1sZSs1''@;'; put 'put ''NDR8MCxidD1mcis1MDR8MCxFcj1mcis0MTZ8MCxjdD1mciszNTJ8MCxadD1mciszMTJ8MCxFdD1mcisyODh8MCxzdD1mcisyNDh8MCxhbj1mcisyMDB8MCxxZT1mcisxNTJ8MCxIbj1mcis5NnwwLEQ9ZnIrNDg4fDAscnQ9ZnIrNDU2fDAsV2U9ZnIrNDI0fDAsYXQ9ZnIrMzg0fDAsU3Q9ZnIr''@;'; put 'put ''MzYwfDAsa3Q9ZnIrMzIwfDAsT2U9ZnIrMjk2fDAsTGU9ZnIrMjU2fDAsUmU9ZnIrMjMyfDAsSGU9ZnIrMTY4fDAsVmU9ZnIrMTM2fDAsYz1mcis1NnwwLFNuPWZyKzE2fDAsdXI9ZnIsZj0xNCZpdFsxMzYrKGdlPTB8YVsoTT0xNisobHw9MCl8MCk+PjJdKT4+MV0sISgwPT0oNTQmKGdlPTB8''@;'; put 'put ''WHRbZ2UrMTEzPj4wXSl8MCkmJjA9PSgxJmdlfDApfDAhPSgwfGFbNDcxMzldKSkpe2ZvcihnZT1mPDwxNj4+MTY9PTAsaz0wfER0KGwpLHA9MCxBPTAsbT0wO2s7KXtmPTB8YVsxMDgrKDB8YVtrKzE2Pj4yXSk+PjJdO2Rve2lmKGYpe2lmKDB8ZmVbZis4MT4+MF0pe3A9cCsxfDA7YnJlYWt9''@;'; put 'put ''bT1tKzF8MDticmVha319d2hpbGUoMCk7Zm9yKGI9MHx3MChsLGspLGY9QTtiOyl7QT0wfGFbMTA4Kyh3PTB8YVtiKzE2Pj4yXSk+PjJdO2Rve2lmKEEpe2lmKDB8ZmVbQSs4MT4+MF0pe3A9cCsxfDA7YnJlYWt9Z2V8fChmPWYrKDAhPSgwfGFbdys4Pj4yXSkmMSl8MCl9fXdoaWxlKDApO0E9''@;'; put 'put ''MHxhW3crMTAwPj4yXTtkb3tpZihBKXtpZigwfGZlW0ErODE+PjBdKXtwPXArMXwwO2JyZWFrfWdlfHwoZj1mKygwIT0oMHxhW3crOD4+Ml0pJjEpfDApfX13aGlsZSgwKTtBPTB8YVt3KzEwND4+Ml07ZG97aWYoQSl7aWYoMHxmZVtBKzgxPj4wXSl7cD1wKzF8MDticmVha31nZXx8KGY9Ziso''@;'; put 'put ''MCE9KDB8YVt3Kzg+PjJdKSYxKXwwKX19d2hpbGUoMCk7QT0wfGFbdys5Nj4+Ml07ZG97aWYoQSl7aWYoMHxmZVtBKzgxPj4wXSl7cD1wKzF8MDticmVha31nZXx8KGY9ZisoMCE9KDB8YVt3Kzg+PjJdKSYxKXwwKX19d2hpbGUoMCk7Yj0wfFMwKGwsYil9az0wfHp0KGwsayksQT1mfWlmKE09''@;'; put 'put ''OCZmZVsxMTMrKDB8YVtNPj4yXSk+PjBdPzB8ZU4obCk6MCwwfChwZT1BK218MCkpe2ZvcihHPTB8dnIoNDAqKFI9cCtBK00rKDB8R28obCkpfDApfDApLHE9MHx2cig0MCpwZXwwKSxKNihhbiwyMTQ3NDgzNjQ3LDIxNDc0ODM2NDcpLGY9YW4rMTZ8MCxKNihELC0yMTQ3NDgzNjQ3LC0yMTQ3''@;'; put 'put ''NDgzNjQ3KSxhW2Y+PjJdPWFbRD4+Ml0sYVtmKzQ+PjJdPWFbRCs0Pj4yXSxhW2YrOD4+Ml09YVtEKzg+PjJdLGFbZisxMj4+Ml09YVtEKzEyPj4yXSxmPXEsbT1HLGs9MHxEdChsKTtrOyl7YVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4''@;'; put 'put ''Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxhW2J0KzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW2FuKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW2FuKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW2FuKzI4Pj4yXSxfYWUocnQsayxtLGJ0KSxhW2FuPj4yXT1hW3J0Pj4yXSxhW2FuKzQ+''@;'; put 'put ''PjJdPWFbcnQrND4+Ml0sYVthbis4Pj4yXT1hW3J0Kzg+PjJdLGFbYW4rMTI+PjJdPWFbcnQrMTI+PjJdLGFbYW4rMTY+PjJdPWFbcnQrMTY+PjJdLGFbYW4rMjA+PjJdPWFbcnQrMjA+PjJdLGFbYW4rMjQ+PjJdPWFbcnQrMjQ+PjJdLGFbYW4rMjg+PjJdPWFbcnQrMjg+PjJdLHA9MHxhWzEw''@;'; put 'put ''OCsoMHxhW2srMTY+PjJdKT4+Ml07ZG97aWYocCl7aWYoMHxmZVtwKzgxPj4wXSl7bT1tKzQwfDAsYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxhW2J0KzE2Pj4yXT1hW2FuKzE2Pj4y''@;'; put 'put ''XSxhW2J0KzIwPj4yXT1hW2FuKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW2FuKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW2FuKzI4Pj4yXSxieShXZSxwLG0sYnQpLGFbYW4+PjJdPWFbV2U+PjJdLGFbYW4rND4+Ml09YVtXZSs0Pj4yXSxhW2FuKzg+PjJdPWFbV2UrOD4+Ml0sYVthbisxMj4+Ml09YVtX''@;'; put 'put ''ZSsxMj4+Ml0sYVthbisxNj4+Ml09YVtXZSsxNj4+Ml0sYVthbisyMD4+Ml09YVtXZSsyMD4+Ml0sYVthbisyND4+Ml09YVtXZSsyND4+Ml0sYVthbisyOD4+Ml09YVtXZSsyOD4+Ml07YnJlYWt9YVtidD4+Ml09YVtxZT4+Ml0sYVtidCs0Pj4yXT1hW3FlKzQ+PjJdLGFbYnQrOD4+Ml09YVtx''@;'; put 'put ''ZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW3FlKzEyPj4yXSxkayhwLG0sZiwwLGJ0KSxmPWYrNDB8MDticmVha319d2hpbGUoMCk7Zm9yKGI9MHx3MChsLGspLG09bSs0MHwwO2I7KXtBPTB8YVs5NisocD0wfGFbKHc9YisxNnwwKT4+Ml0pPj4yXTtlOmRve2lmKEEpe2Rve2lmKCEoMHxmZVtBKzgx''@;'; put 'put ''Pj4wXSkpe2lmKCFnZSYmMHxhW3ArOD4+Ml0pe3VKKFN0LGwsYiksYVtidD4+Ml09YVtTdD4+Ml0sYVtidCs0Pj4yXT1hW1N0KzQ+PjJdLGFbYnQrOD4+Ml09YVtTdCs4Pj4yXSxhW2J0KzEyPj4yXT1hW1N0KzEyPj4yXSxkayhBLG0sZiwxLGJ0KSxmPWYrNDB8MDticmVha31hW3N0Pj4yXT1h''@;'; put 'put ''W0E+PjJdLCRyKDAsMTAzODI3LHN0KTticmVhayBlfWFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisxNj4+Ml0sYVtidCsyMD4+Ml09YVthbisyMD4+Ml0s''@;'; put 'put ''YVtidCsyND4+Ml09YVthbisyND4+Ml0sYVtidCsyOD4+Ml09YVthbisyOD4+Ml0sYnkoYXQsQSxtLGJ0KSxhW2FuPj4yXT1hW2F0Pj4yXSxhW2FuKzQ+PjJdPWFbYXQrND4+Ml0sYVthbis4Pj4yXT1hW2F0Kzg+PjJdLGFbYW4rMTI+PjJdPWFbYXQrMTI+PjJdLGFbYW4rMTY+PjJdPWFbYXQr''@;'; put 'put ''MTY+PjJdLGFbYW4rMjA+PjJdPWFbYXQrMjA+PjJdLGFbYW4rMjQ+PjJdPWFbYXQrMjQ+PjJdLGFbYW4rMjg+PjJdPWFbYXQrMjg+PjJdfXdoaWxlKDApO209bSs0MHwwLHA9MHxhW3c+PjJdLGJlPTUyfWVsc2UgYmU9NTJ9d2hpbGUoMCk7ZTpkb3tpZig1Mj09KDB8YmUpKXtpZihiZT0wLEE9''@;'; put 'put ''MHxhW3ArMTA0Pj4yXSl7ZG97aWYoISgwfGZlW0ErODE+PjBdKSl7aWYoIWdlJiYwfGFbcCs4Pj4yXSl7QlEoT2UsYiksYVtidD4+Ml09YVtPZT4+Ml0sYVtidCs0Pj4yXT1hW09lKzQ+PjJdLGFbYnQrOD4+Ml09YVtPZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW09lKzEyPj4yXSxkayhBLG0sZiwx''@;'; put 'put ''LGJ0KSxmPWYrNDB8MDticmVha31hW0V0Pj4yXT1hW0E+PjJdLCRyKDAsMTAzODYyLEV0KTticmVhayBlfWFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisx''@;'; put 'put ''Nj4+Ml0sYVtidCsyMD4+Ml09YVthbisyMD4+Ml0sYVtidCsyND4+Ml09YVthbisyND4+Ml0sYVtidCsyOD4+Ml09YVthbisyOD4+Ml0sYnkoa3QsQSxtLGJ0KSxhW2FuPj4yXT1hW2t0Pj4yXSxhW2FuKzQ+PjJdPWFba3QrND4+Ml0sYVthbis4Pj4yXT1hW2t0Kzg+PjJdLGFbYW4rMTI+PjJd''@;'; put 'put ''PWFba3QrMTI+PjJdLGFbYW4rMTY+PjJdPWFba3QrMTY+PjJdLGFbYW4rMjA+PjJdPWFba3QrMjA+PjJdLGFbYW4rMjQ+PjJdPWFba3QrMjQ+PjJdLGFbYW4rMjg+PjJdPWFba3QrMjg+PjJdfXdoaWxlKDApO209bSs0MHwwLHA9MHxhW3c+PjJdfWlmKEE9MHxhW3ArMTAwPj4yXSl7ZG97aWYo''@;'; put 'put ''ISgwfGZlW0ErODE+PjBdKSl7aWYoIWdlJiYwfGFbcCs4Pj4yXSl7Q2FlKFJlLGIpLGFbYnQ+PjJdPWFbUmU+PjJdLGFbYnQrND4+Ml09YVtSZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbUmUrOD4+Ml0sYVtidCsxMj4+Ml09YVtSZSsxMj4+Ml0sZGsoQSxtLGYsMSxidCksZj1mKzQwfDA7YnJlYWt9''@;'; put 'put ''YVtadD4+Ml09YVtBPj4yXSwkcigwLDEwMzkwMixadCk7YnJlYWsgZX1hW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLGFbYnQrMTY+PjJdPWFbYW4rMTY+PjJdLGFbYnQrMjA+PjJdPWFb''@;'; put 'put ''YW4rMjA+PjJdLGFbYnQrMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbYnQrMjg+PjJdPWFbYW4rMjg+PjJdLGJ5KExlLEEsbSxidCksYVthbj4+Ml09YVtMZT4+Ml0sYVthbis0Pj4yXT1hW0xlKzQ+PjJdLGFbYW4rOD4+Ml09YVtMZSs4Pj4yXSxhW2FuKzEyPj4yXT1hW0xlKzEyPj4yXSxhW2FuKzE2''@;'; put 'put ''Pj4yXT1hW0xlKzE2Pj4yXSxhW2FuKzIwPj4yXT1hW0xlKzIwPj4yXSxhW2FuKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW2FuKzI4Pj4yXT1hW0xlKzI4Pj4yXX13aGlsZSgwKTttPW0rNDB8MCxwPTB8YVt3Pj4yXX1pZihBPTB8YVtwKzEwOD4+Ml0pe2Rve2lmKCEoMHxmZVtBKzgxPj4wXSkpe2lm''@;'; put 'put ''KCFnZSYmMHxhW3ArOD4+Ml0pe3VKKFZlLGwsYiksYVtidD4+Ml09YVtWZT4+Ml0sYVtidCs0Pj4yXT1hW1ZlKzQ+PjJdLGFbYnQrOD4+Ml09YVtWZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW1ZlKzEyPj4yXSxkayhBLG0sZiwxLGJ0KSxmPWYrNDB8MDticmVha31hW2N0Pj4yXT1hW0E+PjJdLCRy''@;'; put 'put ''KDAsMTAzOTQyLGN0KTticmVhayBlfWFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sYVtidCsxNj4+Ml09YVthbisxNj4+Ml0sYVtidCsyMD4+Ml09YVthbisyMD4+Ml0sYVtidCsyND4+''@;'; put 'put ''Ml09YVthbisyND4+Ml0sYVtidCsyOD4+Ml09YVthbisyOD4+Ml0sYnkoSGUsQSxtLGJ0KSxhW2FuPj4yXT1hW0hlPj4yXSxhW2FuKzQ+PjJdPWFbSGUrND4+Ml0sYVthbis4Pj4yXT1hW0hlKzg+PjJdLGFbYW4rMTI+PjJdPWFbSGUrMTI+PjJdLGFbYW4rMTY+PjJdPWFbSGUrMTY+PjJdLGFb''@;'; put 'put ''YW4rMjA+PjJdPWFbSGUrMjA+PjJdLGFbYW4rMjQ+PjJdPWFbSGUrMjQ+PjJdLGFbYW4rMjg+PjJdPWFbSGUrMjg+PjJdfXdoaWxlKDApO209bSs0MHwwfX19d2hpbGUoMCk7Yj0wfFMwKGwsYil9az0wfHp0KGwsayl9aWYoMHxNKXthW2M+PjJdPWFbYW4+PjJdLGFbYys0Pj4yXT1hW2FuKzQ+''@;'; put 'put ''PjJdLGFbYys4Pj4yXT1hW2FuKzg+PjJdLGFbYysxMj4+Ml09YVthbisxMj4+Ml0sYVtjKzE2Pj4yXT1hW2FuKzE2Pj4yXSxhW2MrMjA+PjJdPWFbYW4rMjA+PjJdLGFbYysyND4+Ml09YVthbisyND4+Ml0sYVtjKzI4Pj4yXT1hW2FuKzI4Pj4yXSxhW2MrMzI+PjJdPW0sZj0ocD1idCkrNDB8''@;'; put 'put ''MDtkb3thW3A+PjJdPWFbYz4+Ml0scD1wKzR8MCxjPWMrNHwwfXdoaWxlKCgwfHApPCgwfGYpKTtwayhTbixsLGJ0KSxhW2FuPj4yXT1hW1NuPj4yXSxhW2FuKzQ+PjJdPWFbU24rND4+Ml0sYVthbis4Pj4yXT1hW1NuKzg+PjJdLGFbYW4rMTI+PjJdPWFbU24rMTI+PjJdLGFbYW4rMTY+PjJd''@;'; put 'put ''PWFbU24rMTY+PjJdLGFbYW4rMjA+PjJdPWFbU24rMjA+PjJdLGFbYW4rMjQ+PjJdPWFbU24rMjQ+PjJdLGFbYW4rMjg+PjJdPWFbU24rMjg+PjJdfWZvcihmZVtIbiszMj4+MF09MHxwSihsLDB8c2kobCwwLDEwMzk3OCwwKSwxKSxhW0huPj4yXT1hW2FuPj4yXSxhW0huKzQ+PjJdPWFbYW4r''@;'; put 'put ''ND4+Ml0sYVtIbis4Pj4yXT1hW2FuKzg+PjJdLGFbSG4rMTI+PjJdPWFbYW4rMTI+PjJdLGFbSG4rMTY+PjJdPWFbYW4rMTY+PjJdLGFbSG4rMjA+PjJdPWFbYW4rMjA+PjJdLGFbSG4rMjQ+PjJdPWFbYW4rMjQ+PjJdLGFbSG4rMjg+PjJdPWFbYW4rMjg+PjJdLGZ1bmN0aW9uIEk5KGwsYyxm''@;'; put 'put ''LHAsbSl7dmFyIFIsRyxxLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2lmKHE9bGUsbGU9bGUrMzJ8MCxHPXEsUj0wfGZ1bmN0aW9uIF9iKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3LEE9MCxiPTAsaz0wO0E9MHx2cigyOCksaz0wfGlzKDI1OTEyLDB8YVs0NTg0''@;'; put 'put ''XSksYVsodz1BKzIwfDApPj4yXT1rO2Rve2lmKGspe2lmKGs9MHxWYigpLGFbQSsyND4+Ml09ayxrKXthW0E+PjJdPWwsYVtBKzQ+PjJdPWMsYVtBKzg+PjJdPWYsYVtBKzEyPj4yXT1wLGFbQSsxNj4+Ml09bTticmVha31DdSgxMTE3NDAsMTQsMSwwfGFbMTU3MTJdKSxiPTY7YnJlYWt9Q3Uo''@;'; put 'put ''MTExNzQwLDE0LDEsMHxhWzE1NzEyXSksYj02fXdoaWxlKDApO3JldHVybiA2PT0oMHxiKSYmKDB8KGw9MHxhW3c+PjJdKSYmTmwobCksMHwobD0wfGFbQSsyND4+Ml0pJiZqYihsKSxGdChBKSxBPTApLDB8QX0obHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wKSxmPTB8ZnVuY3Rpb24gYzYobCl7''@;'; put 'put ''dmFyIGM9MDtyZXR1cm4oMHwoYz0wfGZ1bmN0aW9uIEQ5KGwpe3ZhciBmLHAsbSxBLHcsYixrLE0sYz0wLEQ9MCxSPTAsRz0wO2ZvcihNPWxlLGxlPWxlKzMyfDAsZj1NKzI0fDAscD1NKzE2fDAsbT1NLEE9MHxmdW5jdGlvbiBLMihsKXt2YXIgYyxmO3JldHVybiAxKygwfGZ1bmN0aW9uIG1t''@;'; put 'put ''KGwpe3ZhciBjPTAsZj0wO3JldHVybihsfD0wKT8obD0oZj1sPj4+MD42NTUzNSk/bD4+PjE2OmwsZj1mPzE2OjAsZj0oYz1sPj4+MD4yNTUpPzh8ZjpmLGY9KGM9KGw9Yz9sPj4+ODpsKT4+PjA+MTUpPzR8ZjpmLGw9KChjPShsPWM/bD4+PjQ6bCk+Pj4wPjMpPzJ8ZjpmKSsoKGM/bD4+PjI6''@;'; put 'put ''bCk+Pj4wPjEmMSl8MCk6bD0tMSwwfGx9KH5+KChmPStfWzE2KyhsPTB8YVsxNisobHw9MCk+PjJdKT4+M10pPihjPStfW2wrMjQ+PjNdKT9mOmMpPj4+MCkpfDB9KGx8PTApLHc9bCs0fDAsYj1wKzR8MCxrPWwrMjB8MCxjPTA7Oyl7aWYoKDB8Yyk+PSgwfGFbdz4+Ml0pKXtjPTA7YnJlYWt9''@;'; put 'put ''aWYoUj0xMisoRD0wfHZyKDMyKSl8MCxhW0QrMjg+PjJdPUc9KDB8YVtsPj4yXSkrKDQwKmN8MCl8MCxrMyhtLEcpLGFbUj4+Ml09YVttPj4yXSxhW1IrND4+Ml09YVttKzQ+PjJdLGFbUis4Pj4yXT1hW20rOD4+Ml0sYVtSKzEyPj4yXT1hW20rMTI+PjJdLGFbcD4+Ml09KCgoMHxhW0QrMjA+''@;'; put 'put ''PjJdKS0oUj0wfGFbUj4+Ml0pfDApLzJ8MCkrUixhW2I+PjJdPSgoKDB8YVtEKzI0Pj4yXSktKFI9MHxhW0QrMTY+PjJdKXwwKS8yfDApK1IsYVtmPj4yXT1hW3A+PjJdLGFbZis0Pj4yXT1hW3ArND4+Ml0sYVtEKzg+PjJdPTB8Q2IoZixBKSwhKDB8bWlbNjMmYVsoUj0wfGFbaz4+Ml0pPj4y''@;'; put 'put ''XV0oUixELDEpKSl7Yz0tMTticmVha31jPWMrMXwwfXJldHVybiBsZT1NLDB8Y30obHw9MCkpKT49MCYmKGZ1bmN0aW9uIFg4KGwpe3ZhciBjLGYscD0wO2ZvcihjPTI0KyhsfD0wKXwwLGw9MHxtaVs2MyZhWyhwPTB8YVsoZj1sKzIwfDApPj4yXSk+PjJdXShwLDAsMTI4KTtsOyl6YihwPTB8''@;'; put 'put ''YVtjPj4yXSxsKzEyfDAsMHxhW2wrMjg+PjJdLHAsMCksbD0wfG1pWzYzJmFbKHA9MHxhW2Y+PjJdKT4+Ml1dKHAsbCw4KX0obCksZnVuY3Rpb24gZjYobCl7dmFyIHAsbSxjPTAsZj0wLEE9MCx3PTA7Zm9yKG09MHxwdSgwfGFbKHA9MjArKGx8PTApfDApPj4yXSksZj0wOzB8cHUoMHxhW3A+''@;'; put 'put ''PjJdKTspe2lmKCEobD0wfGFbNCsoMHxhWzgrKEE9MHxhW3A+PjJdKT4+Ml0pPj4yXSkpe3c9ODticmVha31pZighKGw9KDB8KGM9MHxhWzgrKDB8YVtBKzQ+PjJdKT4+Ml0pKTwwPzB8YVtsKzg+PjJdOmwrKDAtYyl8MCkpe3c9ODticmVha31taVs2MyZhW0E+PjJdXShBLGwsNDA5NiksRnQo''@;'; put 'put ''bCksZj1mKzF8MH04PT0oMHx3KSYmUHIoMTExNjQ5LDExMTU0Myw2MTYsMTExNjUyKSwoMHxtKSE9KDB8ZikmJlByKDExMTY2NCwxMTE1NDMsNjIzLDExMTY1Mil9KGwpLGM9MHxObCgwfGFbbCsyMD4+Ml0pKSwwfGN9KFIpLCgwfGYpPj0wKXtmb3IoTT1HKzE2fDAsRD1HKzI0fDAsaz1HKzh8''@;'; put 'put ''MCxiPW0rMzJ8MCxmPTAsbT0wOyEoKDB8bSk+PSgwfGMpKTspe3A9bCsoNDAqbXwwKSszMnwwO2Rve2lmKDB8YVtwPj4yXSl7aWYoZkUoRyxSLGwrKDQwKm18MCl8MCksQT0rX1tNPj4zXSx3PStfW0Q+PjNdLCEoMHxhW0c+PjJdKSl7ZmVbMzYrKDB8YVtwPj4yXSk+PjBdPTE7YnJlYWt9aWYo''@;'; put 'put ''MD09K19baz4+M10pe19bMTYrKHA9MHxhW3A+PjJdKT4+M109QSxfW3ArMjQ+PjNdPXcsZmVbcCszNj4+MF09MTticmVha30xPT0oMHxmZVtiPj4wXSk/KF9bMTYrKHA9MHxhW3A+PjJdKT4+M109QSxfW3ArMjQ+PjNdPXcsZmVbcCszNj4+MF09MSk6Zj0xfX13aGlsZSgwKTttPW0rMXwwfSFm''@;'; put 'put ''dW5jdGlvbiB5YyhsKXtqYigwfGFbMjQrKGx8PTApPj4yXSksRnQobCl9KFIpfXJldHVybiBsZT1xLDB8Zn0oRyxSLHEscGUsSG4pLGM9MCxmPTAscD1xOyEoKDB8Zik+PSgwfHBlKSk7KTB8ZmVbcCszNj4+MF0mJihmZVs4MSsoSG49MHxhW3ArMzI+PjJdKT4+MF09MSxTbj1Ibis1NnwwLGth''@;'; put 'put ''ZSh1cixwKSxhW1NuPj4yXT1hW3VyPj4yXSxhW1NuKzQ+PjJdPWFbdXIrND4+Ml0sYVtTbis4Pj4yXT1hW3VyKzg+PjJdLGFbU24rMTI+PjJdPWFbdXIrMTI+PjJdLG40KGwsSG4pLGM9YysxfDApLGY9ZisxfDAscD1wKzQwfDA7KDB8YykhPSgwfHBlKSYmKGFbRXI+PjJdPWMsYVtFcis0Pj4y''@;'; put 'put ''XT1wZSwkcigwLDEwNDAyMyxFcikpLEZ0KEcpLEZ0KHEpfX1sZT1mcn0obCksZj0wfGFbMTIrKGs9MHxhW3E+PjJdKT4+Ml07ZG97aWYoMHxmJiYwPT0oMHxmZVtmKzgxPj4wXSkpe2lmKGFbZ2U+PjJdPWFbKG09ZisyNHwwKT4+Ml0sYVtnZSs0Pj4yXT1hW20rND4+Ml0sYVtnZSs4Pj4yXT1h''@;'; put 'put ''W20rOD4+Ml0sYVtnZSsxMj4+Ml09YVttKzEyPj4yXSxfW2dlPj4zXT1NPStfW2dlPj4zXSsxNixfWyhtPWdlKzh8MCk+PjNdPXA9K19bbT4+M10rOCxtPTAhPSgxJmZlW2srMjc1Pj4wXSksMHxmZVsxOTQ5NTddKXtpZihtP19bKEE9ayszMnwwKT4+M109K19bQT4+M10rcDpfWyhBPWsrMTZ8''@;'; put 'put ''MCk+PjNdPStfW0E+PjNdLXAsIShNPihiPShwPStfWyhtPWsrNDB8MCk+PjNdKS0odz0rX1soQT1rKzI0fDApPj4zXSkpKSlicmVhaztfW0E+PjNdPXctKE09LjUqKE0tYikpLF9bbT4+M109cCtNO2JyZWFrfUE9MD09KDB8YVs0NzI2NV0pO2Rve2lmKG0pe2lmKEEpe19bKEE9ays0MHwwKT4+''@;'; put 'put ''M109K19bQT4+M10rcDticmVha31fWyhBPWsrMjR8MCk+PjNdPStfW0E+PjNdLXA7YnJlYWt9aWYoQSl7X1soQT1rKzI0fDApPj4zXT0rX1tBPj4zXS1wO2JyZWFrfV9bKEE9ays0MHwwKT4+M109K19bQT4+M10rcDticmVha313aGlsZSgwKTtNPihiPShwPStfWyhtPWsrMzJ8MCk+PjNdKS0o''@;'; put 'put ''dz0rX1soQT1rKzE2fDApPj4zXSkpJiYoX1tBPj4zXT13LShNPS41KihNLWIpKSxfW20+PjNdPXArTSl9fXdoaWxlKDApO2lmKGMpe3N3aXRjaCgwfGFbNDcyNjVdKXtjYXNlIDA6YVs0NjYwNl09YVsoRz1rKzE2fDApPj4yXSxhWzQ2NjA3XT1hW0crND4+Ml0sYVs0NjYwOF09YVtHKzg+PjJd''@;'; put 'put ''LGFbNDY2MDldPWFbRysxMj4+Ml07YnJlYWs7Y2FzZSAxOko2KEQsLStfW2srNDA+PjNdLCtfW2srMTY+PjNdKSxhWzQ2NjA2XT1hW0Q+PjJdLGFbNDY2MDddPWFbRCs0Pj4yXSxhWzQ2NjA4XT1hW0QrOD4+Ml0sYVs0NjYwOV09YVtEKzEyPj4yXTticmVhaztjYXNlIDI6SjYoUiwrX1trKzE2''@;'; put 'put ''Pj4zXSwtK19bays0MD4+M10pLGFbNDY2MDZdPWFbUj4+Ml0sYVs0NjYwN109YVtSKzQ+PjJdLGFbNDY2MDhdPWFbUis4Pj4yXSxhWzQ2NjA5XT1hW1IrMTI+PjJdO2JyZWFrO2Nhc2UgMzpKNihHLCtfW2srMjQ+PjNdLCtfW2srMTY+PjNdKSxhWzQ2NjA2XT1hW0c+PjJdLGFbNDY2MDddPWFb''@;'; put 'put ''Rys0Pj4yXSxhWzQ2NjA4XT1hW0crOD4+Ml0sYVs0NjYwOV09YVtHKzEyPj4yXX0oZnVuY3Rpb24gd2FlKGwpe2x8PTA7dmFyIHAsbSxBLHcsYz0wLGY9MCxiPTA7aWYodz1sZSxsZT1sZSs0OHwwLHA9dyszMnwwLG09dysxNnwwLEE9dywwIT0rX1syMzMwM118MCE9K19bMjMzMDRdfDAhPSgw''@;'; put 'put ''fGFbNDcyNjVdKSl7Zm9yKGY9MHxEdChsKTtmOyl7MHxhWzQ3MjY1XSYmVHkoZiwwKSxhW3A+PjJdPWFbKGI9MTYrKDB8YVsoYz1mKzE2fDApPj4yXSl8MCk+PjJdLGFbcCs0Pj4yXT1hW2IrND4+Ml0sYVtwKzg+PjJdPWFbYis4Pj4yXSxhW3ArMTI+PjJdPWFbYisxMj4+Ml0saWgobSxwKSxh''@;'; put 'put ''W2I+PjJdPWFbbT4+Ml0sYVtiKzQ+PjJdPWFbbSs0Pj4yXSxhW2IrOD4+Ml09YVttKzg+PjJdLGFbYisxMj4+Ml09YVttKzEyPj4yXSwwfChjPTB8YVsxMDgrKDB8YVtjPj4yXSk+PjJdKSYmKGFbcD4+Ml09YVsoYj1jKzU2fDApPj4yXSxhW3ArND4+Ml09YVtiKzQ+PjJdLGFbcCs4Pj4yXT1h''@;'; put 'put ''W2IrOD4+Ml0sYVtwKzEyPj4yXT1hW2IrMTI+PjJdLGloKEEscCksYVtiPj4yXT1hW0E+PjJdLGFbYis0Pj4yXT1hW0ErND4+Ml0sYVtiKzg+PjJdPWFbQSs4Pj4yXSxhW2IrMTI+PjJdPWFbQSsxMj4+Ml0pO2U6ZG97aWYoMT09KDB8YVs0NzEzOF0pKWZvcihjPTB8dzAobCxmKTs7KXtpZigh''@;'; put 'put ''YylicmVhayBlO2JhZShjKSxjPTB8UzAobCxjKX19d2hpbGUoMCk7Zj0wfHp0KGwsZil9RFEobCwzJmFbMTE2KygwfGFbbCsxNj4+Ml0pPj4yXSl9bGU9d30pKGwpLGY9MHxhWzEyKygwfGFbcT4+Ml0pPj4yXX0wfGYmJjA9PSgwfGZlW2YrODE+PjBdKSYmKGFbcGU+PjJdPWFbZ2U+PjJdLGFb''@;'; put 'put ''cGUrND4+Ml09YVtnZSs0Pj4yXSxhW3BlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtwZSsxMj4+Ml09YVtnZSsxMj4+Ml0sZnVuY3Rpb24gUlEobCxjKXtjfD0wO3ZhciBtLEEsZj0wLHA9MCx3PTA7bD0obT0wfGZlWzI3NSsodz0wfGFbKEE9MTYrKGx8PTApfDApPj4yXSk+PjBdKTw8MjQ+PjI0O2Rv''@;'; put 'put ''e2lmKCEoNCZsKSl7aWYoZj0rX1t3KzE2Pj4zXSwyJmwpe3A9LjUqK19bYz4+M10rZjticmVha31wPS41KigrX1t3KzMyPj4zXStmKTticmVha31wPStfW3crMzI+PjNdLS41KitfW2M+PjNdfXdoaWxlKDApO2Y9MSZtPytfW3crNDA+PjNdLS41KitfW2MrOD4+M106LjUqK19bYys4Pj4zXSsg''@;'; put 'put ''K19bdysyND4+M10sX1s1Nisodz0wfGFbdysxMj4+Ml0pPj4zXT1wLF9bdys2ND4+M109ZixmZVs4MSsoMHxhWzEyKygwfGFbQT4+Ml0pPj4yXSk+PjBdPTF9KGwscGUpKSxsZT1MZX1mdW5jdGlvbiBMUShsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKHc9MTYrKGx8PTApfDAsKDB8''@;'; put 'put ''ZGkobCkpIT0oMHxsKSYmMCE9KDB8KEE9MHxhWzEyKyhtPTB8YVt3Pj4yXSk+PjJdKSkmJjA9PSgwfGZlW0ErODE+PjBdKSl7MSYoYz0wfGZlW20rMjc1Pj4wXSk/KHA9K19bbSszMj4+M10tLjUqK19bbSs2ND4+M10sbD1tKzcyfDApOihwPStfW20rMTY+PjNdKy41KitfW20rOTY+PjNdLGw9''@;'; put 'put ''bSsxMDR8MCksZj0rX1tsPj4zXSxsPWM8PDI0Pj4yNDtkb3tpZighKDQmbCkpe2lmKDImbCl7Zj0rX1ttKzQwPj4zXS0uNSpmO2JyZWFrfWY9LjUqKCtfW20rNDA+PjNdKyArX1ttKzI0Pj4zXSk7YnJlYWt9Zj0rX1ttKzI0Pj4zXSsuNSpmfXdoaWxlKDApO19bQSs1Nj4+M109cCxfW0ErNjQ+''@;'; put 'put ''PjNdPWYsZmVbODErKDB8YVsxMisoMHxhW3c+PjJdKT4+Ml0pPj4wXT0xLGw9MX1lbHNlIGw9MTtmb3IoOyEoKDB8bCk+KDB8YVsxODArKGM9MHxhW3c+PjJdKT4+Ml0pKTspTFEoMHxhWygwfGFbYysxODQ+PjJdKSsobDw8Mik+PjJdKSxsPWwrMXwwfWZ1bmN0aW9uIE9RKGwpe3ZhciBiLGM9''@;'; put 'put ''MCxmPTAscD0wLG09MCxBPTAsdz0wO2lmKGI9MTYrKGx8PTApfDAsKDB8ZGkobCkpIT0oMHxsKSYmMCE9KDB8KHc9MHxhWzEyKyhBPTB8YVtiPj4yXSk+PjJdKSkmJjA9PSgwfGZlW3crODE+PjBdKSl7MSYoYz0wfGZlW0ErMjc1Pj4wXSk/KG09K19bQSs0MD4+M10tLjUqK19bQSs4OD4+M10s''@;'; put 'put ''bD1BKzgwfDApOihtPStfW0ErMjQ+PjNdKy41KitfW0ErNTY+PjNdLGw9QSs0OHwwKSxwPStfW2w+PjNdLGw9Yzw8MjQ+PjI0O2Rve2lmKCEoNCZsKSl7aWYoZj0rX1tBKzE2Pj4zXSwyJmwpe2YrPS41KnA7YnJlYWt9Zj0uNSooK19bQSszMj4+M10rZik7YnJlYWt9Zj0rX1tBKzMyPj4zXS0u''@;'; put 'put ''NSpwfXdoaWxlKDApO19bdys1Nj4+M109ZixfW3crNjQ+PjNdPW0sZmVbODErKDB8YVsxMisoMHxhW2I+PjJdKT4+Ml0pPj4wXT0xLGw9MX1lbHNlIGw9MTtmb3IoOyEoKDB8bCk+KDB8YVsxODArKGM9MHxhW2I+PjJdKT4+Ml0pKTspT1EoMHxhWygwfGFbYysxODQ+PjJdKSsobDw8Mik+PjJd''@;'; put 'put ''KSxsPWwrMXwwfWZ1bmN0aW9uIGJhZShsKXt2YXIgdyxiLGssTSxELFIsRyxnZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHE9MCxwZT0wLGJlPTA7aWYoZ2U9bGUsbGU9bGUrMTQ0fDAscT1nZSsxMjB8MCxmPWdlKzE2fDAsdz1nZSsxMDR8MCxiPWdlKzg4fDAsaz1nZSs3MnwwLE09Z2UrNTZ8MCxE''@;'; put 'put ''PWdlKzQwfDAsUj1nZSsyNHwwLHBlPWdlLHA9MHxhWzgrKGM9MHxhWyhHPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSl7Zm9yKEE9MCxsPXA7ISgoMHxBKT49KDB8YVtsKzQ+PjJdKSk7KXtmb3IobD0wfGFbKG09MHxhW2w+PjJdKSsoNDgqQXwwKT4+Ml0sZj0wfGFbbSsoNDgqQXwwKSs0Pj4yXSxw''@;'; put 'put ''PTB8YVttKyg0OCpBfDApKzg+PjJdLG09MHxhW20rKDQ4KkF8MCkrMTI+PjJdLGM9MDshKCgwfGMpPj0oMHxmKSk7KWFbcT4+Ml09YVsoYmU9bCsoYzw8NCl8MCk+PjJdLGFbcSs0Pj4yXT1hW2JlKzQ+PjJdLGFbcSs4Pj4yXT1hW2JlKzg+PjJdLGFbcSsxMj4+Ml09YVtiZSsxMj4+Ml0saWgo''@;'; put 'put ''dyxxKSxhW2JlPj4yXT1hW3c+PjJdLGFbYmUrND4+Ml09YVt3KzQ+PjJdLGFbYmUrOD4+Ml09YVt3Kzg+PjJdLGFbYmUrMTI+PjJdPWFbdysxMj4+Ml0sYz1jKzF8MDswfHAmJihhW3E+PjJdPWFbKGJlPSgwfGFbYVs4KygwfGFbRz4+Ml0pPj4yXT4+Ml0pKyg0OCpBfDApKzE2fDApPj4yXSxh''@;'; put 'put ''W3ErND4+Ml09YVtiZSs0Pj4yXSxhW3ErOD4+Ml09YVtiZSs4Pj4yXSxhW3ErMTI+PjJdPWFbYmUrMTI+PjJdLGloKGIscSksYVtiZT4+Ml09YVtiPj4yXSxhW2JlKzQ+PjJdPWFbYis0Pj4yXSxhW2JlKzg+PjJdPWFbYis4Pj4yXSxhW2JlKzEyPj4yXT1hW2IrMTI+PjJdKSwwfG0mJihhW3E+''@;'; put 'put ''PjJdPWFbKGJlPSgwfGFbYVs4KygwfGFbRz4+Ml0pPj4yXT4+Ml0pKyg0OCpBfDApKzMyfDApPj4yXSxhW3ErND4+Ml09YVtiZSs0Pj4yXSxhW3ErOD4+Ml09YVtiZSs4Pj4yXSxhW3ErMTI+PjJdPWFbYmUrMTI+PjJdLGloKGsscSksYVtiZT4+Ml09YVtrPj4yXSxhW2JlKzQ+PjJdPWFbays0''@;'; put 'put ''Pj4yXSxhW2JlKzg+PjJdPWFbays4Pj4yXSxhW2JlKzEyPj4yXT1hW2srMTI+PjJdKSxBPUErMXwwLGw9MHxhWzgrKGM9MHxhW0c+PjJdKT4+Ml19KGw9MHxhW2MrOTY+PjJdKSYmKGFbcT4+Ml09YVsoYz1sKzU2fDApPj4yXSxhW3ErND4+Ml09YVtjKzQ+PjJdLGFbcSs4Pj4yXT1hW2MrOD4+''@;'; put 'put ''Ml0sYVtxKzEyPj4yXT1hW2MrMTI+PjJdLGloKE0scSksYVtjPj4yXT1hW00+PjJdLGFbYys0Pj4yXT1hW00rND4+Ml0sYVtjKzg+PjJdPWFbTSs4Pj4yXSxhW2MrMTI+PjJdPWFbTSsxMj4+Ml0sYz0wfGFbRz4+Ml0pLChsPTB8YVtjKzEwOD4+Ml0pJiYoYVtxPj4yXT1hWyhjPWwrNTZ8MCk+''@;'; put 'put ''PjJdLGFbcSs0Pj4yXT1hW2MrND4+Ml0sYVtxKzg+PjJdPWFbYys4Pj4yXSxhW3ErMTI+PjJdPWFbYysxMj4+Ml0saWgoRCxxKSxhW2M+PjJdPWFbRD4+Ml0sYVtjKzQ+PjJdPWFbRCs0Pj4yXSxhW2MrOD4+Ml09YVtEKzg+PjJdLGFbYysxMj4+Ml09YVtEKzEyPj4yXSxjPTB8YVtHPj4yXSks''@;'; put 'put ''KGw9MHxhW2MrMTAwPj4yXSkmJihhW3E+PjJdPWFbKGM9bCs1NnwwKT4+Ml0sYVtxKzQ+PjJdPWFbYys0Pj4yXSxhW3ErOD4+Ml09YVtjKzg+PjJdLGFbcSsxMj4+Ml09YVtjKzEyPj4yXSxpaChSLHEpLGFbYz4+Ml09YVtSPj4yXSxhW2MrND4+Ml09YVtSKzQ+PjJdLGFbYys4Pj4yXT1hW1Ir''@;'; put 'put ''OD4+Ml0sYVtjKzEyPj4yXT1hW1IrMTI+PjJdLGM9MHxhW0c+PjJdKSwwfChjPTB8YVtjKzEwND4+Ml0pJiYoYVtxPj4yXT1hWyhiZT1jKzU2fDApPj4yXSxhW3ErND4+Ml09YVtiZSs0Pj4yXSxhW3ErOD4+Ml09YVtiZSs4Pj4yXSxhW3ErMTI+PjJdPWFbYmUrMTI+PjJdLGloKHBlLHEpLGFb''@;'; put 'put ''YmU+PjJdPWFbcGU+PjJdLGFbYmUrND4+Ml09YVtwZSs0Pj4yXSxhW2JlKzg+PjJdPWFbcGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtwZSsxMj4+Ml0pfWVsc2UgMD09KDB8ZmVbMTk0OTU0XSkmJjYhPSgwfGZlW2MrMTEyPj4wXSkmJihxPTB8dGkoMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0''@;'; put 'put ''OHwwKSs0MD4+Ml0pLHBlPTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKSxhW2Y+PjJdPXEsYVtmKzQ+PjJdPXBlLCRyKDEsMTAzODEwLGYpKTtsZT1nZX1mdW5jdGlvbiBlTihsKXt2YXIgcCxjPTAsZj0wO2ZvcihwPTE2KyhsfD0wKXwwLCgwfGRpKGwpKSE9''@;'; put 'put ''KDB8bCkmJjAhPSgwfChjPTB8YVsxMisoMHxhW3A+PjJdKT4+Ml0pKT8oZj0xLGw9MCE9KDB8ZmVbYys4MT4+MF0pJjEpOihmPTEsbD0wKTshKCgwfGYpPigwfGFbMTgwKyhjPTB8YVtwPj4yXSk+PjJdKSk7KWM9KDB8ZU4oMHxhWygwfGFbYysxODQ+PjJdKSsoZjw8Mik+PjJdKSkrbHwwLGY9''@;'; put 'put ''ZisxfDAsbD1jO3JldHVybiAwfGx9ZnVuY3Rpb24gX2FlKGwsYyxmLHApe3ZhciBtLEEsdyxiLGssTTtsfD0wLHB8PTAsbT1sZSxsZT1sZSszMnwwLEE9bSxrPTB8YVsoYz0xNisoY3w9MCl8MCk+PjJdLF9bMTYrKGZ8PTApPj4zXT03MiooYj0rX1soKE09MD09KDB8ZmVbMTk0OTU3XSkpP2sr''@;'; put 'put ''MzJ8MDprKzQwfDApPj4zXSksX1tmKzI0Pj4zXT03Mioodz0rX1soTT9rKzQwfDA6ayszMnwwKT4+M10pLGFbZj4+Ml09YVsoYz0xNisoMHxhW2M+PjJdKXwwKT4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxfW2Y+PjNd''@;'; put 'put ''PStfW2Y+PjNdLTM2KmIsX1soYz1mKzh8MCk+PjNdPStfW2M+PjNdLTM2KncsYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sYVtBKzE2Pj4yXT1hW3ArMTY+PjJdLGFbQSsyMD4+Ml09YVtwKzIwPj4y''@;'; put 'put ''XSxhW0ErMjQ+PjJdPWFbcCsyND4+Ml0sYVtBKzI4Pj4yXT1hW3ArMjg+PjJdLFBRKGwsZixBKSxsZT1tfWZ1bmN0aW9uIGJ5KGwsYyxmLHApe3ZhciBtLEEsdyxiLGssTTtsfD0wLHB8PTAsbT1sZSxsZT1sZSszMnwwLEE9bSxrPTI0KyhjfD0wKXwwLF9bMTYrKGZ8PTApPj4zXT1iPStfWygo''@;'; put 'put ''TT0wPT0oMHxmZVsxOTQ5NTddKSk/azpjKzMyfDApPj4zXSxfW2YrMjQ+PjNdPXc9K19bKE0/YyszMnwwOmspPj4zXSxhW2Y+PjJdPWFbKGM9Yys1NnwwKT4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxfW2Y+PjNdPStf''@;'; put 'put ''W2Y+PjNdLS41KmIsX1soYz1mKzh8MCk+PjNdPStfW2M+PjNdLS41KncsYVtBPj4yXT1hW3A+PjJdLGFbQSs0Pj4yXT1hW3ArND4+Ml0sYVtBKzg+PjJdPWFbcCs4Pj4yXSxhW0ErMTI+PjJdPWFbcCsxMj4+Ml0sYVtBKzE2Pj4yXT1hW3ArMTY+PjJdLGFbQSsyMD4+Ml09YVtwKzIwPj4yXSxh''@;'; put 'put ''W0ErMjQ+PjJdPWFbcCsyND4+Ml0sYVtBKzI4Pj4yXT1hW3ArMjg+PjJdLFBRKGwsZixBKSxsZT1tfWZ1bmN0aW9uIGRrKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbXw9MCwwfChwfD0wKSYmKGFbKHA9YysxNnwwKT4+Ml09MCxhW3ArND4+Ml09MCxhW3ArOD4+Ml09MCxhW3ArMTI+PjJd''@;'; put 'put ''PTAsYVtjPj4yXT1hW20+PjJdLGFbYys0Pj4yXT1hW20rND4+Ml0sYVtjKzg+PjJdPWFbbSs4Pj4yXSxhW2MrMTI+PjJdPWFbbSsxMj4+Ml0pLDB8ZmVbMTk0OTU3XT8oX1tmPj4zXT0rX1tsKzMyPj4zXSxfW2YrOD4+M109K19bbCsyND4+M10pOihhW2Y+PjJdPWFbKG09bCsyNHwwKT4+Ml0s''@;'; put 'put ''YVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEyPj4yXSksYVtmKzMyPj4yXT1sLGZlW2YrMzY+PjBdPTAsYVtjKzMyPj4yXT1mfWZ1bmN0aW9uIEJRKGwsYyl7bHw9MCxjPTB8VDcoY3w9MCk7ZG97aWYoYyl7aWYoMHxhWzgrKGM9MHxhW2M+''@;'; put 'put ''PjJdKT4+Ml0pe2FbbD4+Ml09YVsoYz1jKzE2fDApPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdO2JyZWFrfWFbbD4+Ml09YVsoYz0wfGFbYz4+Ml0pPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2Mr''@;'; put 'put ''OD4+Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdO2JyZWFrfWFbbD4+Ml09MCxhW2wrND4+Ml09MCxhW2wrOD4+Ml09MCxhW2wrMTI+PjJdPTB9d2hpbGUoMCl9ZnVuY3Rpb24gQ2FlKGwsYyl7bHw9MDt2YXIgZj0wO2M9MHxUNyhjfD0wKTtkb3tpZihjKXtpZigwfGFbKGY9MHxhW2M+PjJdKSso''@;'; put 'put ''NDgqKGM9KDB8YVtjKzQ+PjJdKS0xfDApfDApKzEyPj4yXSl7YVtsPj4yXT1hWyhmPWYrKDQ4KmN8MCkrMzJ8MCk+PjJdLGFbbCs0Pj4yXT1hW2YrND4+Ml0sYVtsKzg+PjJdPWFbZis4Pj4yXSxhW2wrMTI+PjJdPWFbZisxMj4+Ml07YnJlYWt9YVtsPj4yXT1hWyhmPSgwfGFbZisoNDgqY3ww''@;'; put 'put ''KT4+Ml0pKygoMHxhW2YrKDQ4KmN8MCkrND4+Ml0pLTE8PDQpfDApPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdO2JyZWFrfWFbbD4+Ml09MCxhW2wrND4+Ml09MCxhW2wrOD4+Ml09MCxhW2wrMTI+PjJdPTB9d2hpbGUo''@;'; put 'put ''MCl9ZnVuY3Rpb24gcGsobCxjLGYpe2x8PTAsZnw9MDt2YXIgayxSLHEscD0wLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLEc9MDtmb3IocT1sZSxsZT1sZSsxMTJ8MCxrPXErNzJ8MCxEPXErMzJ8MCxSPXEsRz0xNisoY3w9MCl8MCxiPTE7ISgoMHxiKT4oMHxhWzE4MCsocD0wfGFbRz4+Ml0p''@;'; put 'put ''Pj4yXSkpOyl7cD0wfGFbKDB8YVtwKzE4ND4+Ml0pKyhiPDwyKT4+Ml0sQT1mLHc9KG09aykrNDB8MDtkb3thW20+PjJdPWFbQT4+Ml0sbT1tKzR8MCxBPUErNHwwfXdoaWxlKCgwfG0pPCgwfHcpKTtwayhELHAsayksQT1ELHc9KG09ZikrNDB8MDtkb3thW20+PjJdPWFbQT4+Ml0sbT1tKzR8''@;'; put 'put ''MCxBPUErNHwwfXdoaWxlKCgwfG0pPCgwfHcpKTtiPWIrMXwwfSgwfGRpKGMpKSE9KDB8YykmJjB8KE09MHxhWzEyKygwfGFbRz4+Ml0pPj4yXSkmJjB8ZmVbTSs4MT4+MF0mJihEPTB8YVsoRz1mKzMyfDApPj4yXSxhW2s+PjJdPWFbZj4+Ml0sYVtrKzQ+PjJdPWFbZis0Pj4yXSxhW2srOD4+''@;'; put 'put ''Ml09YVtmKzg+PjJdLGFbaysxMj4+Ml09YVtmKzEyPj4yXSxhW2srMTY+PjJdPWFbZisxNj4+Ml0sYVtrKzIwPj4yXT1hW2YrMjA+PjJdLGFbaysyND4+Ml09YVtmKzI0Pj4yXSxhW2srMjg+PjJdPWFbZisyOD4+Ml0sYnkoUixNLEQsayksYVtmPj4yXT1hW1I+PjJdLGFbZis0Pj4yXT1hW1Ir''@;'; put 'put ''ND4+Ml0sYVtmKzg+PjJdPWFbUis4Pj4yXSxhW2YrMTI+PjJdPWFbUisxMj4+Ml0sYVtmKzE2Pj4yXT1hW1IrMTY+PjJdLGFbZisyMD4+Ml09YVtSKzIwPj4yXSxhW2YrMjQ+PjJdPWFbUisyND4+Ml0sYVtmKzI4Pj4yXT1hW1IrMjg+PjJdLGFbRz4+Ml09NDArKDB8YVtHPj4yXSkpLEE9Zix3''@;'; put 'put ''PShtPWwpKzQwfDA7ZG97YVttPj4yXT1hW0E+PjJdLG09bSs0fDAsQT1BKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7bGU9cX1mdW5jdGlvbiBrYWUobCxjKXt2YXIgZjtmPS41KitfWzgrKGN8PTApPj4zXSsgK19bYysyND4+M10sX1sobHw9MCk+PjNdPS41KitfW2M+PjNdKyArX1tjKzE2Pj4z''@;'; put 'put ''XSxfW2wrOD4+M109Zn1mdW5jdGlvbiBQUShsLGMsZil7bHw9MDt2YXIgcCxtLEE9MCx3PTAsYj0wO3A9bGUsbGU9bGUrMTZ8MCxtPXAsX1soZnw9MCk+PjNdPStfWygrX1tmPj4zXTwoYj0rX1soY3w9MCk+PjNdKT9mOmMpPj4zXSxfWyhBPWYrOHwwKT4+M109K19bKCtfW0E+PjNdPCh3PStf''@;'; put 'put ''W2MrOD4+M10pP2Y6YykrOD4+M10sX1ttPj4zXT1iPStfW2MrMTY+PjNdK2IsX1ttKzg+PjNdPXc9K19bYysyND4+M10rdyxfWyhBPWYrMTZ8MCk+PjNdPStfWygrX1tBPj4zXT5iP0E6bSk+PjNdLF9bKGM9ZisyNHwwKT4+M109K19bKCtfW2M+PjNdPnc/QTptKSs4Pj4zXSxhW2w+PjJdPWFb''@;'; put 'put ''Zj4+Ml0sYVtsKzQ+PjJdPWFbZis0Pj4yXSxhW2wrOD4+Ml09YVtmKzg+PjJdLGFbbCsxMj4+Ml09YVtmKzEyPj4yXSxhW2wrMTY+PjJdPWFbZisxNj4+Ml0sYVtsKzIwPj4yXT1hW2YrMjA+PjJdLGFbbCsyND4+Ml09YVtmKzI0Pj4yXSxhW2wrMjg+PjJdPWFbZisyOD4+Ml0sbGU9cH1mdW5j''@;'; put 'put ''dGlvbiB0NChsKXtYNihsfD0wLDEpfWZ1bmN0aW9uIHROKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGIsayxNLEQscD0wLG09MCxBPTAsdz0wO0Q9bGUsbGU9bGUrMTZ8MCxNPUQrOHwwLGs9RCxiPTAhPSgwfChjfD0wKSk7ZTpkb3tpZihiKXtBPTAscD0wO3Q6Zm9yKDs7KWZvcig7Oyl7aWYoQSli''@;'; put 'put ''cmVhayBlO2lmKCEobT0wfGFbYysocDw8Mik+PjJdKSl7dz02O2JyZWFrIGV9aWYocD1wKzF8MCwhKDB8ZmVbbT4+MF0pKXtBPTE7Y29udGludWUgdH19fWVsc2Ugdz02fXdoaWxlKDApO2U6ZG97aWYoNj09KDB8dykpZm9yKDs7KXtpZighKHA9MHxhW2Y+PjJdKSlicmVhayBlO0VuKGwscCks''@;'; put 'put ''RW4obCwxNTM1OTkpLGY9Zis0fDAsdz02fX13aGlsZSgwKTtlOmRve2lmKGIpZm9yKEE9MDs7KXtpZighKHA9MHxhW2MrKEE8PDIpPj4yXSkpYnJlYWsgZTtkb3tpZigwfGZlW3A+PjBdKXtpZighKGY9MHxkRChwKSkpe2Fbaz4+Ml09cCwkcigwLDEwNDM4NCxrKTticmVha31pZighKG09MHxu''@;'; put 'put ''UyhmLDEzODgyMSkpKXthW00+PjJdPWYsJHIoMCwxMDQ0MTIsTSk7YnJlYWt9Zm9yKDtwPTB8X2xlKG0pOylFbihsLHApO0VuKGwsMTUzNTk5KSx0dyhtKX19d2hpbGUoMCk7QT1BKzF8MH19d2hpbGUoMCk7bGU9RH1mdW5jdGlvbiBOUShsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wO2M9MHxh''@;'; put 'put ''WzUyKyhjfD0wKT4+Ml07ZTpmb3IoOzspe2Y9MHxmZVtjPj4wXTt0OmRve3N3aXRjaChmPDwyND4+MjQpe2Nhc2UgMDpicmVhayBlO2Nhc2UgMzc6aWYoMzc9PSgwfGZlW2MrMT4+MF0pKXtpZigwIT0oMHxsNChmPWMrMnwwLDEwNDQ0MCwzKSkmJjAhPSgwfGw0KGYsMTA0NDQ0LDUpKSYmMCE9''@;'; put 'put ''KDB8bDQoZiwxMDQ0NTAsMykpJiYwIT0oMHxsNChmLDEwNDQ1NCw3KSkpe2Y9Mzc7YnJlYWsgdH1tPTM3O246Zm9yKDs7KXtzd2l0Y2gobTw8MjQ+PjI0KXtjYXNlIDEzOnA9MTA7YnJlYWsgbjtjYXNlIDEwOmNhc2UgMDpwPTEyO2JyZWFrIG59Yz1tPWMrMXwwLG09MHxmZVttPj4wXX1pZigx''@;'; put 'put ''MD09KDB8cCkpe2lmKDEwPT0oMHxmZVsoZj1jKzF8MCk+PjBdKSl7Yz1jKzJ8MDtjb250aW51ZSBlfX1lbHNlIDEyPT0oMHxwKSYmKGY9YysxfDApO2M9bTw8MjQ+PjI0PT0wP2M6Zjtjb250aW51ZSBlfWY9Mzd9fXdoaWxlKDApO3Q6Zm9yKDs7KXtzd2l0Y2goZjw8MjQ+PjI0KXtjYXNlIDEw''@;'; put 'put ''OmNhc2UgMTM6Y2FzZSAwOmJyZWFrIHR9aUYobCxmPDwyND4+MjQpLGM9bT1jKzF8MCxmPTB8ZmVbbT4+MF19cD1jKzF8MCxjPWY8PDI0Pj4yND09MTMmJjEwPT0oMHxmZVtwPj4wXSk/YysyfDA6Zjw8MjQ+PjI0PT0wP2M6cCxpRihsLDEwKX19ZnVuY3Rpb24gbk4obCxjKXtsfD0wLGN8PTA7''@;'; put 'put ''dmFyIG0sZj0wLHA9MCxBPTA7bT1sZSxsZT1sZSsxNnwwLGY9bTtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMDpwPWw7YnJlYWs7Y2FzZSAxOnA9MHxDSihsKTticmVhaztkZWZhdWx0OnN3aXRjaCgwfHhhZShsKSl7Y2FzZSAyOmJyZWFrO2Nhc2UgMTpwPTB8Q0oobCk7YnJlYWsgZTtkZWZhdWx0''@;'; put 'put ''OnA9bDticmVhayBlfTB8YVs0NzI2OF18fCgkcigwLDEwNDUyNSxmKSxhWzQ3MjY4XT0xKSxwPWx9fXdoaWxlKDApOzB8YVs0NzI2OV18fHVzKDE4OTA3NiwwLDApLChjPTB8YVs0NzI3MF0pPj4+MD49KDB8YVs0NzI3MV0pPj4+MCYmKFEwKDE4OTA3NiwxKSxjPTB8YVs0NzI3MF0pLGFbNDcy''@;'; put 'put ''NzBdPWMrMSxmZVtjPj4wXT00MCxmPXA7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2Y+PjBdKXtjYXNlIDA6YnJlYWsgZTtjYXNlIDkyOmNhc2UgNDE6Y2FzZSA0MDooYz0wfGFbNDcyNzBdKT4+PjA+PSgwfGFbNDcyNzFdKT4+PjAmJihRMCgxODkwNzYsMSksYz0wfGFbNDcyNzBdKSxhWzQ3Mjcw''@;'; put 'put ''XT1jKzEsZmVbYz4+MF09OTJ9KGM9MHxhWzQ3MjcwXSk+Pj4wPj0oMHxhWzQ3MjcxXSk+Pj4wJiYoUTAoMTg5MDc2LDEpLGM9MHxhWzQ3MjcwXSksQT0wfGZlW2Y+PjBdLGFbNDcyNzBdPWMrMSxmZVtjPj4wXT1BLGY9ZisxfDB9cmV0dXJuKGM9MHxhWzQ3MjcwXSk+Pj4wPj0oMHxhWzQ3Mjcx''@;'; put 'put ''XSk+Pj4wJiYoUTAoMTg5MDc2LDEpLGM9MHxhWzQ3MjcwXSksYVs0NzI3MF09YysxLGZlW2M+PjBdPTQxLCgwfHApIT0oMHxsKSYmRnQocCksKGM9MHxhWzQ3MjcwXSk+Pj4wPj0oMHxhWzQ3MjcxXSk+Pj4wJiYoUTAoMTg5MDc2LDEpLGM9MHxhWzQ3MjcwXSksZmVbYz4+MF09MCxhWzQ3Mjcw''@;'; put 'put ''XT1BPTB8YVs0NzI2OV0sbGU9bSwwfEF9ZnVuY3Rpb24geGFlKGwpe2x8PTA7dmFyIGM9MCxmPTA7Yz0wO2U6Zm9yKDs7KXtmb3IoOzspe2lmKCEoKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNCkpYnJlYWsgZTtpZighKCgyNTUmZik8MTI3KSlicmVhaztsPWwrMXwwfWlmKCgtNCZmKTw8MjQ+PjI0''@;'; put 'put ''IT0tNjQpe2M9MjticmVha31jPTEsbD1sKzJ8MH1yZXR1cm4gMHxjfWZ1bmN0aW9uICRJKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgdyxiLGssTSxELEE9MCxSPTAsRz0wO0Q9bGUsbGU9bGUrOTZ8MCx3PUQrODB8MCxiPUQrNzJ8MCxNPUQrNjR8MCxrPUQsX1soQT1EKzMy''@;'; put 'put ''fDApPj4zXT0rX1sobHw9MCk+PjNdLF9bQSs4Pj4zXT0rX1tsKzg+PjNdLF9bQSsxNj4+M109K19bYz4+M10sX1tBKzI0Pj4zXT0rX1tjKzg+PjNdO2Rve2lmKCgwfHU1KGYsQSxiKSk+PTApe2lmKG0pYVt3Pj4yXT1hW2I+PjJdLGFbdys0Pj4yXT1hW2IrND4+Ml0sT2QodyxNKTtlbHNle2Zv''@;'; put 'put ''cihtPTB8YVs0NzI3NF0sKDB8KGw9MHxhWyhjPWYrNHwwKT4+Ml0pKT4oMHxhWzQ3MjczXSk/KGw9bT8wfFYwKG0sbDw8NSk6MHxRbihsPDw1KSxhWzQ3Mjc0XT1sLGFbNDcyNzNdPUE9MHxhW2M+PjJdLG09bCk6QT1sLGM9MHxhW2Y+PjJdLGw9MDshKCgwfGwpPj0oMHxBKSk7KWFbKFI9bSso''@;'; put 'put ''bDw8NSl8MCk+PjJdPWFbKGY9YysobDw8NCl8MCk+PjJdLGFbUis0Pj4yXT1hW2YrND4+Ml0sYVtSKzg+PjJdPWFbZis4Pj4yXSxhW1IrMTI+PjJdPWFbZisxMj4+Ml0sYVsoUj1tKyhsPDw1KSsxNnwwKT4+Ml09YVsoRz1jKygoKDB8KGY9bCsxfDApKSUoMHxBKXwwKTw8NCl8MCk+PjJdLGFb''@;'; put 'put ''Uis0Pj4yXT1hW0crND4+Ml0sYVtSKzg+PjJdPWFbRys4Pj4yXSxhW1IrMTI+PjJdPWFbRysxMj4+Ml0sbD1mO2lmKGFbaz4+Ml09MCxhW2srND4+Ml09MCxhW2srOD4+Ml09MCxhW2srMTI+PjJdPTAsYVtrKzE2Pj4yXT0wLGFbaysyMD4+Ml09MCxhW2srMjQ+PjJdPTAsYVtrKzI4Pj4yXT0w''@;'; put 'put ''LGFbdz4+Ml09YVtiPj4yXSxhW3crND4+Ml09YVtiKzQ+PjJdLCgwfGVBKG0sQSx3LGssTSkpPDApe2w9MDticmVha319aWYoMHxWUSgwfGFbKGw9TSs0fDApPj4yXSkpbD0wO2Vsc2V7Zm9yKEE9MHxhW2w+PjJdLGw9MHxhWzQ3Mjc1XSxtPTB8YVtNPj4yXSxjPTA7ISgoMHxjKT49KDB8QSkp''@;'; put 'put ''OylhWyhHPWwrKGM8PDQpfDApPj4yXT1hWyhSPW0rKGM8PDQpfDApPj4yXSxhW0crND4+Ml09YVtSKzQ+PjJdLGFbRys4Pj4yXT1hW1IrOD4+Ml0sYVtHKzEyPj4yXT1hW1IrMTI+PjJdLGM9YysxfDA7YVtwPj4yXT1BfX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9RCwwfGx9ZnVuY3Rp''@;'; put 'put ''b24gVlEobCl7bHw9MDt2YXIgZixwLGM9MDtwPWxlLGxlPWxlKzE2fDAsZj1wLGM9MHxhWzQ3Mjc2XTtkb3tpZigoMHxjKTwoMHxsKSl7aWYoYz0wfFYwKDB8YVs0NzI3NV0sKGw9bCszMDAtKCgwfGwpJTMwMHwwKStjfDApPDw0KSxhWzQ3Mjc1XT1jLGMpe2FbNDcyNzZdPWwsbD0wO2JyZWFr''@;'; put 'put ''fSRyKDEsMTA0NjE1LGYpLGw9MTticmVha31sPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXAsMHxsfWZ1bmN0aW9uIFRhZSgpe3ZhciBjLGw9MCxmPTA7Yz1sZSxsZT1sZSsxNnwwLGw9YyxhWzQ3Mjc3XT0xKyhmPTB8YVs0NzI3N10pO2Rve2lmKCgwfGYpPD0wKXtpZihmPTB8UW4oNDgwMCksYVs0''@;'; put 'put ''NzI3NV09ZiwhZil7JHIoMSwxMDQ2MzgsbCksbD0xO2JyZWFrfWFbNDcyNzZdPTMwMCxhWzQ3Mjc4XT0wLGFbNDcyNzldPTAsbD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiBsZT1jLDB8bH1mdW5jdGlvbiBqUSgpe3ZhciBjLGY7Yz1sZSxsZT1sZSsxNnwwLGFbNDcyNzddPShmPTB8YVs0''@;'; put 'put ''NzI3N10pLTEsKDB8Zik8PTEmJkZ0KDB8YVs0NzI3NV0pLGxlPWN9ZnVuY3Rpb24gX3kobCxjKXtyZXR1cm4gMHxaUShsfD0wLGN8PTAsMCl9ZnVuY3Rpb24gWlEobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwZSxnZSxiZSxMZSxSZSxIZSxTdCxrdCxzdCxFdCxadCxjdCxwPTAsbT0wLEE9''@;'; put 'put ''MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLE9lPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLGJ0PTAsYW49MDtmb3IoY3Q9bGUsbGU9bGUrMTc2fDAsU3Q9Y3QrMTY4fDAsWnQ9Y3QrMTI4fDAsUmU9Y3QrMTIwfDAsT2U9Y3QrMTEyfDAsQT1jdCsxMDR8MCxwZT1jdCs4OHww''@;'; put 'put ''LE09Y3QrNzJ8MCxtPWN0KzY0fDAsZ2U9Y3QrMTYwfDAsc3Q9Y3QrMTUyfDAsSGU9Y3QrMTQ0fDAsYmU9Y3QrMzJ8MCxMZT1jdCxFdD1jdCsxMzZ8MCxhWzQ3Mjc4XT0xKygwfGFbNDcyNzhdKSxhWzQ3Mjc5XT0oMHxhWzQ3Mjc5XSkrKGt0PTB8YVtsKzgwPj4yXSkscD1sKzg4fDA7Oyl7aWYo''@;'; put 'put ''IShXZT0wfGFbcD4+Ml0pKXthdD00O2JyZWFrfWlmKCEoMHxmZVsxMTIrKHA9MHxhW1dlKzE2Pj4yXSk+PjBdKSl7YXQ9NTticmVha31wPXArMTE2fDB9ZG97aWYoND09KDB8YXQpKSRyKDEsMTA0NzE5LG0pLHA9MDtlbHNlIGlmKDU9PSgwfGF0KSlpZigwfHpRKGt0LHJ0PTB8YVtsKzg0Pj4y''@;'; put 'put ''XSxsKSlwPTA7ZWxzZXsoMHwobT1rdDw8MykpPigwfGFbNDcyODBdKSYmKHA9KHA9MHxhWzQ3MjgxXSk/MHxWMChwLGt0PDw3KTowfFFuKGt0PDw3KSxhWzQ3MjgxXT1wLGFbNDcyODBdPW0pO2U6ZG97aWYoKDB8a3QpPjEmJitfW3J0Kzg+PjNdPitfW3J0KzQwPj4zXSlmb3IocD0wOzspe2lm''@;'; put 'put ''KCgwfHApPT0oMHxrdCkpe1I9MTticmVhayBlfWs9K19bKFZlPXJ0KyhwPDw1KSsyNHwwKT4+M10sX1tWZT4+M109LStfWyhxZT1ydCsocDw8NSkrOHwwKT4+M10sX1txZT4+M109LWsscD1wKzF8MH1lbHNlIFI9MH13aGlsZSgwKTtpZihWZT1XZSs0OHwwLHFlPVdlKy00OHwwLCgwfChwPTB8''@;'; put 'put ''YVsoMz09KDB8KHE9MyZhW1dlPj4yXSkpP1dlOlZlKSs0MD4+Ml0pKT09KDB8YVsoMj09KDB8cSk/V2U6cWUpKzQwPj4yXSkpe2FbQT4+Ml09MHx0aShwKSwkcigxLDEwNDgyNixBKSxwPTA7YnJlYWt9RD1rdCstMXwwLHE9Rz0wfGFbNDcyODFdLHA9MCx3PTA7ZTpmb3IoOzspe2lmKCgwfHcp''@;'; put 'put ''Pj0oMHxrdCkpe3c9RCxNPXA7YnJlYWt9bT0oMHx3KT4wPytfW3J0Kyh3PDw1KSs4Pj4zXT4rX1tydCsodystMTw8NSkrOD4+M10/LTE6MTowLEE9KDB8dyk8KDB8RCk/K19bcnQrKHcrMTw8NSkrOD4+M10+K19bcnQrKHc8PDUpKzg+PjNdPzE6LTE6MDt0OmRve2lmKCgwfG0pIT0oMHxBKSl7''@;'; put 'put ''aWYoMT09KDB8bSl8LTE9PSgwfEEpKXtfW0crKHA8PDQpPj4zXT0rX1sobT1ydCsodzw8NSl8MCk+PjNdLEE9cCsxfDAsX1tHKyhwPDw0KSs4Pj4zXT0rX1tydCsodzw8NSkrMjQ+PjNdLF9bRysoQTw8NCk+PjNdPStfW20+PjNdLG09cnQrKHc8PDUpKzh8MCxhdD0yOTticmVha31fW0crKHA8''@;'; put 'put ''PDQpPj4zXT0rX1sobT1ydCsodzw8NSkrMTZ8MCk+PjNdLEE9cCsxfDAsX1tHKyhwPDw0KSs4Pj4zXT0rX1tydCsodzw8NSkrOD4+M10sX1tHKyhBPDw0KT4+M109K19bbT4+M10sbT1ydCsodzw8NSkrMjR8MCxhdD0yOTticmVha31zd2l0Y2goMHxtKXtjYXNlLTE6YnJlYWsgdDtjYXNlIDA6''@;'; put 'put ''YnJlYWs7ZGVmYXVsdDphdD0yODticmVhayBlfV9bRysocDw8NCk+PjNdPStfWyhtPXJ0Kyh3PDw1KXwwKT4+M10sQT1wKzF8MCxfW0crKHA8PDQpKzg+PjNdPStfW3J0Kyh3PDw1KSsyND4+M10sX1tHKyhBPDw0KT4+M109K19bbT4+M10sbT1ydCsodzw8NSkrOHwwLGF0PTI5fXdoaWxlKDAp''@;'; put 'put ''OzI5PT0oMHxhdCkmJihhdD0wLF9bRysoQTw8NCkrOD4+M109K19bbT4+M10scD1wKzJ8MCksdz13KzF8MH1pZigyOD09KDB8YXQpKXthW00+PjJdPW0sYVtNKzQ+PjJdPW0sYVtNKzg+PjJdPTQ4MCwkcigxLDEwNDc2MSxNKSxwPTA7YnJlYWt9ZTpmb3IoOyEoKDB8dyk8PS0xKTspe3A9KDB8''@;'; put 'put ''dyk8KDB8RCk/K19bcnQrKHc8PDUpKzg+PjNdPitfW3J0Kyh3KzE8PDUpKzg+PjNdPy0xOjE6MCxtPSgwfHcpPjA/K19bcnQrKHcrLTE8PDUpKzg+PjNdPitfW3J0Kyh3PDw1KSs4Pj4zXT8xOi0xOjA7dDpkb3tpZigoMHxwKSE9KDB8bSkpe2lmKDE9PSgwfHApfC0xPT0oMHxtKSl7X1tHKyhN''@;'; put 'put ''PDw0KT4+M109K19bKHA9cnQrKHc8PDUpfDApPj4zXSxtPU0rMXwwLF9bRysoTTw8NCkrOD4+M109K19bcnQrKHc8PDUpKzI0Pj4zXSxfW0crKG08PDQpPj4zXT0rX1twPj4zXSxwPXJ0Kyh3PDw1KSs4fDAsQT0yO2JyZWFrfV9bRysoTTw8NCk+PjNdPStfWyhwPXJ0Kyh3PDw1KSsxNnwwKT4+''@;'; put 'put ''M10sbT1NKzF8MCxfW0crKE08PDQpKzg+PjNdPStfW3J0Kyh3PDw1KSs4Pj4zXSxfW0crKG08PDQpPj4zXT0rX1twPj4zXSxwPXJ0Kyh3PDw1KSsyNHwwLEE9MjticmVha31zd2l0Y2goMHxwKXtjYXNlIDA6X1tHKyhNPDw0KT4+M109K19bKHA9cnQrKHc8PDUpKzE2fDApPj4zXSxtPU0rMXww''@;'; put 'put ''LF9bRysoTTw8NCkrOD4+M109K19bcnQrKHc8PDUpKzg+PjNdLF9bRysobTw8NCk+PjNdPStfW3A+PjNdLHA9cnQrKHc8PDUpKzI0fDAsQT0yO2JyZWFrIHQ7Y2FzZS0xOl9bRysoTTw8NCk+PjNdPStfWyhhbj1ydCsodzw8NSkrMTZ8MCk+PjNdLEE9TSsxfDAsX1tHKyhNPDw0KSs4Pj4zXT0r''@;'; put 'put ''X1socD1ydCsodzw8NSkrOHwwKT4+M10sX1tHKyhBPDw0KT4+M109K19bYW4+PjNdLGJ0PU0rMnwwLF9bRysoQTw8NCkrOD4+M109K19bKGFuPXJ0Kyh3PDw1KSsyNHwwKT4+M10sX1tHKyhidDw8NCk+PjNdPStfWyhBPXJ0Kyh3PDw1KXwwKT4+M10sbT1NKzN8MCxfW0crKGJ0PDw0KSs4Pj4z''@;'; put 'put ''XT0rX1thbj4+M10sX1tHKyhtPDw0KT4+M109K19bQT4+M10sQT00O2JyZWFrIHQ7ZGVmYXVsdDphdD00MjticmVhayBlfX13aGlsZSgwKTtfW0crKG08PDQpKzg+PjNdPStfW3A+PjNdLHc9dystMXwwLE09TStBfDB9aWYoNDI9PSgwfGF0KSl7YVtwZT4+Ml09cCxhW3BlKzQ+PjJdPXAsYVtw''@;'; put 'put ''ZSs4Pj4yXT01MTMsJHIoMSwxMDQ3NjEscGUpLHA9MDticmVha31lOmRve2lmKFIpe2ZvcihwPTA7Oyl7aWYoKDB8cCk+PSgwfGt0KSl7cD0wO2JyZWFrfWs9K19bKGJ0PXJ0KyhwPDw1KSsyNHwwKT4+M10sX1tidD4+M109LStfWyhhbj1ydCsocDw8NSkrOHwwKT4+M10sX1thbj4+M109LWss''@;'; put 'put ''cD1wKzF8MH1mb3IoOzspe2lmKCgwfHApPj0oMHxNKSl7cD0wO2JyZWFrIGV9X1soYW49RysocDw8NCkrOHwwKT4+M109LStfW2FuPj4zXSxwPXArMXwwfX1lbHNlIHA9MH13aGlsZSgwKTtmb3IoOyEoKDB8cCk+PSgwfGt0KSk7KV9bcnQrKHA8PDUpPj4zXT0yMTQ3NDgzNjQ3LF9bcnQrKHA8''@;'; put 'put ''PDUpKzE2Pj4zXT0tMjE0NzQ4MzY0OCxwPXArMXwwO2lmKGFbZ2U+PjJdPXEsYVsoQT1nZSs0fDApPj4yXT1NLF9bYmU+PjNdPStfW2w+PjNdLF9bYmUrOD4+M109K19bbCs4Pj4zXSxfW2JlKzE2Pj4zXT0rX1tsKzQwPj4zXSxfW2JlKzI0Pj4zXT0rX1tsKzQ4Pj4zXSwoMHx1NShnZSxiZSxz''@;'; put 'put ''dCkpPDApeyRyKDEsMTA0ODY1LE9lKSxwPTA7YnJlYWt9aWYoZilhW1N0Pj4yXT1hW3N0Pj4yXSxhW1N0KzQ+PjJdPWFbc3QrND4+Ml0sT2QoU3QsSGUpO2Vsc2V7Zm9yKHA9MHxhWzQ3Mjc0XSwoMHwobT0wfGFbQT4+Ml0pKT4oMHxhWzQ3MjczXSkmJihwPXA/MHxWMChwLG08PDUpOjB8UW4o''@;'; put 'put ''bTw8NSksYVs0NzI3NF09cCxhWzQ3MjczXT1tPTB8YVtBPj4yXSksdz0wfGFbNDcyODFdLEE9MDshKCgwfEEpPj0oMHxtKSk7KWFbKGJ0PXArKEE8PDUpfDApPj4yXT1hWyhhbj13KyhBPDw0KXwwKT4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0''@;'; put 'put ''KzEyPj4yXT1hW2FuKzEyPj4yXSxhWyhidD1wKyhBPDw1KSsxNnwwKT4+Ml09YVsoT2U9dysoKCgwfChhbj1BKzF8MCkpJSgwfG0pfDApPDw0KXwwKT4+Ml0sYVtidCs0Pj4yXT1hW09lKzQ+PjJdLGFbYnQrOD4+Ml09YVtPZSs4Pj4yXSxhW2J0KzEyPj4yXT1hW09lKzEyPj4yXSxBPWFuO2lm''@;'; put 'put ''KDB8ZmVbbCsyOT4+MF0/KGI9K2hhKCsoaz0rX1tsKzE2Pj4zXSkpLGs9K0RhKCtrKSk6KGI9MCxrPTApLF9bTGUrOD4+M109ayxfW0xlPj4zXT1iLDB8ZmVbbCs2OT4+MF0/KGI9LStoYSgrKGs9K19bbCs1Nj4+M10pKSxrPS0rRGEoK2spKTooYj0wLGs9MCksX1tMZSsyND4+M109ayxfW0xl''@;'; put 'put ''KzE2Pj4zXT1iLGFbU3Q+PjJdPWFbc3Q+PjJdLGFbU3QrND4+Ml09YVtzdCs0Pj4yXSwoMHxlQShwLG0sU3QsTGUsSGUpKTwwKXskcigxLDEwNDkwNCxSZSkscD0wO2JyZWFrfX1pZigwfFZRKDB8YVsoTT1IZSs0fDApPj4yXSkpcD0wO2Vsc2V7Zm9yKHA9MDshKCgwfHApPj0oMHxrdCkpOylf''@;'; put 'put ''W3J0KyhwPDw1KT4+M109MjE0NzQ4MzY0NyxfW3J0KyhwPDw1KSsxNj4+M109LTIxNDc0ODM2NDgscD1wKzF8MDtmb3IoQT0wfGFbTT4+Ml0sdz0wfGFbNDcyNzVdLG09MHxhW0hlPj4yXSxwPTA7Oyl7aWYoKDB8cCk+PSgwfEEpKXtBPTEscD0xMCxtPTA7YnJlYWt9YVsoYW49dysocDw8NCl8''@;'; put 'put ''MCk+PjJdPWFbKGJ0PW0rKHA8PDQpfDApPj4yXSxhW2FuKzQ+PjJdPWFbYnQrND4+Ml0sYVthbis4Pj4yXT1hW2J0Kzg+PjJdLGFbYW4rMTI+PjJdPWFbYnQrMTI+PjJdLHA9cCsxfDB9Zm9yKDsoMHxtKTwxNSZBPDwyND4+MjQhPTA7KXtmb3IoR1EocnQsa3QsMHxhWzQ3Mjc1XSwwfGFbTT4+''@;'; put 'put ''Ml0scCksdz0wOyEoKDB8dyk+PSgwfGt0KSk7KXtpZigyMTQ3NDgzNjQ3PT0rX1tydCsodzw8NSk+PjNdKXthdD04MjticmVha31pZigtMjE0NzQ4MzY0OD09K19bcnQrKHc8PDUpKzE2Pj4zXSl7YXQ9ODI7YnJlYWt9dz13KzF8MH04Mj09KDB8YXQpJiYoYXQ9MCxwPWFuPXA8PDEsbT0oMHxh''@;'; put 'put ''bik+KDB8MjE0NzQ4MzY0Ny8oMHxrdCkpPzE1Om0pLEE9KDB8dyk9PSgwfGt0KT8wOkEsbT1tKzF8MH1BPDwyND4+MjQmJihidD0wfHRpKDB8YVsoMz09KDMmYVtXZT4+Ml18MCk/V2U6VmUpKzQwPj4yXSksYW49MHx0aSgwfGFbKDI9PSgzJmFbV2U+PjJdfDApP1dlOnFlKSs0MD4+Ml0pLGFb''@;'; put 'put ''WnQ+PjJdPWJ0LGFbWnQrND4+Ml09YW4sJHIoMCwxMDQ5NDIsWnQpLGFbU3Q+PjJdPWFbc3Q+PjJdLGFbU3QrND4+Ml09YVtzdCs0Pj4yXSxPZChTdCxFdCksR1EocnQsa3QsMHxhW0V0Pj4yXSwwfGFbRXQrND4+Ml0sMTApLEZ0KDB8YVtFdD4+Ml0pKSxhW2M+PjJdPWFbTT4+Ml0scD0wfGFb''@;'; put 'put ''NDcyNzVdfX19d2hpbGUoMCk7cmV0dXJuIGxlPWN0LDB8cH1mdW5jdGlvbiB6UShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIFp0LGN0LGJ0LERyLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxW''@;'; put 'put ''ZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9MCxrdD0wLHN0PTAsRXQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wO2ZvcihEcj1sZSxsZT1sZSszMnwwLGN0PURyKzE2fDAsWnQ9RHIrOHwwLGs9RHIscD0wLGI9MDshKCgwfGIpPj0oMHxsKSk7KXc9YysoYjw8NSl8MCwh''@;'; put 'put ''KCgoZ2U9K19bYysoYjw8NSkrOD4+M10tK19bYysoYjw8NSkrMjQ+PjNdKT49MD9nZTotZ2UpPC4wMSkmJiEoKChnZT0rX1t3Pj4zXS0rX1tjKyhiPDw1KSsxNj4+M10pPj0wP2dlOi1nZSk8LjAxKSYmKCgwfHApIT0oMHxiKSYmKGFbKEVyPWMrKHA8PDUpfDApPj4yXT1hW3c+PjJdLGFbRXIr''@;'; put 'put ''ND4+Ml09YVt3KzQ+PjJdLGFbRXIrOD4+Ml09YVt3Kzg+PjJdLGFbRXIrMTI+PjJdPWFbdysxMj4+Ml0sYVtFcisxNj4+Ml09YVt3KzE2Pj4yXSxhW0VyKzIwPj4yXT1hW3crMjA+PjJdLGFbRXIrMjQ+PjJdPWFbdysyND4+Ml0sYVtFcisyOD4+Ml09YVt3KzI4Pj4yXSkscD1wKzF8MCksYj1i''@;'; put 'put ''KzF8MDtidD1jKzE2fDA7ZG97aWYoK19bYz4+M10+K19bYnQ+PjNdfHwrX1soU249Yys4fDApPj4zXT4rX1sodXI9YysyNHwwKT4+M10pZnI9MTI7ZWxzZXtmb3IoRXI9cCstMXwwLEhuPTB8YVsxNTcxMl0sUmU9MDshKCgwfFJlKT49KDB8RXIpKTspe2lmKChtPStfWyhrdD1jKygoU3Q9UmUr''@;'; put 'put ''MXwwKTw8NSl8MCk+PjNdKT4oQT0rX1soc3Q9YysoU3Q8PDUpKzE2fDApPj4zXSkpe2ZyPTE2O2JyZWFrfWlmKChNPStfWyhydD1jKyhTdDw8NSkrOHwwKT4+M10pPihEPStfWyhXZT1jKyhTdDw8NSkrMjR8MCk+PjNdKSl7ZnI9MTY7YnJlYWt9ITB8MV4oUj0wIT0oMHwoSGU9KGw9MSYoT2U9''@;'; put 'put ''K19bKGF0PWMrKFJlPDw1KXwwKT4+M10+QSkpKyhwPTEmKExlPStfWyhFdD1jKyhSZTw8NSkrMTZ8MCk+PjNdPG0pKSsoYj0xJihiZT0rX1socWU9YysoUmU8PDUpKzI0fDApPj4zXTxNKSkrKHc9MSYoaz0rX1soVmU9YysoUmU8PDUpKzh8MCk+PjNdPkQpKXwwKSkpfHwoYVtjdD4+Ml09UmUs''@;'; put 'put ''YVtjdCs0Pj4yXT1TdCxUMChIbiwxMDUxNDIsY3QpLHJOKGYpKTtlOmRve2lmKFIpZm9yKExlPyhrPXcsUj0wLHA9a3Qsdz1FdCxmcj0yNCk6T2U/KGs9dyxsPTAsUj1wLHA9c3Qsdz1hdCxmcj0yNCk6YmU/KGs9dyxiPTAsUj1wLHA9cnQsdz1xZSxmcj0yNCk6ayYmKGs9MCxSPXAscD1XZSx3''@;'; put 'put ''PVZlLGZyPTI0KSwyND09KDB8ZnIpJiYoZnI9MCxSZT1+fitfW3c+PjNdLF9bdz4+M109K19bcD4+M10sX1twPj4zXT0rKDB8UmUpLHc9ayxwPVIpLFI9SGUrLTF8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfFIpKWJyZWFrIGU7ZG97aWYoMSE9KDB8cCkpe2lmKDE9PSgwfGwpKXtfW3N0Pj4zXT1n''@;'; put 'put ''ZT0rKDB8fn4oLjUqKCtfW3N0Pj4zXSsgK19bYXQ+PjNdKSsuNSkpLF9bYXQ+PjNdPWdlLGw9MDticmVha31pZigxPT0oMHxiKSl7X1tydD4+M109Z2U9KygwfH5+KC41KigrX1tydD4+M10rICtfW3FlPj4zXSkrLjUpKSxfW3FlPj4zXT1nZSxiPTA7YnJlYWt9MT09KDB8dykmJihfW1dlPj4z''@;'; put 'put ''XT1nZT0rKDB8fn4oLjUqKCtfW1dlPj4zXSsgK19bVmU+PjNdKSsuNSkpLF9bVmU+PjNdPWdlLHc9MCl9ZWxzZSBfW2t0Pj4zXT1nZT0rKDB8fn4oLjUqKCtfW2t0Pj4zXSsgK19bRXQ+PjNdKSsuNSkpLF9bRXQ+PjNdPWdlLHA9MH13aGlsZSgwKTtrPWsrMXwwfX13aGlsZSgwKTswIT0oMHwo''@;'; put 'put ''dz0wfGlOKH5+KEc9K19bYXQ+PjNdKSx+fihxPStfW0V0Pj4zXSksfn4ocGU9K19ba3Q+PjNdKSx+fihnZT0rX1tzdD4+M10pKSkpJjAhPSgwfChwPTB8aU4ofn4oRD0rX1tWZT4+M10pLH5+KE09K19bcWU+PjNdKSx+fihBPStfW3J0Pj4zXSksfn4obT0rX1tXZT4+M10pKSkpPygwfHcpPCgw''@;'; put 'put ''fHApPyhSZT1xPGdlLF9bKChXZT1xLUc+Z2UtcGUpP1JlP0V0OmF0OlJlP2t0OnN0KT4+M109V2U/UmU/cGU6Z2U6UmU/cTpHLFJlPVN0KTooUmU9TTxtLF9bKChXZT1NLUQ+bS1BKT9SZT9FdDphdDpSZT9rdDpzdCkrOD4+M109V2U/UmU/QTptOlJlP006RCxSZT1TdCk6UmU9U3R9aWYoMTY9''@;'; put 'put ''PSgwfGZyKSl7YVtadD4+Ml09U3QsJHIoMSwxMDUwOTYsWnQpLHJOKGYpLHA9MTticmVha31pZighKChtPStfW2Y+PjNdKTwoQT0rX1tjPj4zXSkpJiYhKG0+K19bYnQ+PjNdKSYmISgoYW49K19bZis4Pj4zXSk8K19bU24+PjNdKSYmIShhbj4rX1t1cj4+M10pfHwobTxBP19bZj4+M109QTpB''@;'; put 'put ''PW0sQT4obT0rX1tidD4+M10pJiYoX1tmPj4zXT1tKSwoQT0rX1socD1mKzh8MCk+PjNdKTwobT0rX1tTbj4+M10pJiYoX1twPj4zXT1tLEE9bSksQT4obT0rX1t1cj4+M10pJiYoX1twPj4zXT1tKSksISgobT0rX1sodz1mKzQwfDApPj4zXSk8KEE9K19bKHA9YysoRXI8PDUpfDApPj4zXSl8''@;'; put 'put ''fG0+K19bYysoRXI8PDUpKzE2Pj4zXXx8KEhyPStfW2YrNDg+PjNdLEhyPCtfW2MrKEVyPDw1KSs4Pj4zXSl8fEhyPitfW2MrKEVyPDw1KSsyND4+M10pKXtwPTA7YnJlYWt9bTxBJiYoX1t3Pj4zXT1BLG09QSksbT4oQT0rX1tjKyhFcjw8NSkrMTY+PjNdKSYmKF9bdz4+M109QSksKG09K19b''@;'; put 'put ''KHA9Zis0OHwwKT4+M10pPChBPStfW2MrKEVyPDw1KSs4Pj4zXSk/X1twPj4zXT1BOkE9bSxBPihtPStfW2MrKEVyPDw1KSsyND4+M10pJiYoX1twPj4zXT1tKSxwPTB9fXdoaWxlKDApO3JldHVybiAxMj09KDB8ZnIpJiYoJHIoMSwxMDUwNTEsayksck4oZikscD0xKSxsZT1EciwwfHB9ZnVu''@;'; put 'put ''Y3Rpb24gR1EobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MDt2YXIgT2UsTGUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxydD0wLFdlPTA7TGU9MS8rKDB8KE9lPTB8QXIobXw9MCxjfD0wKSkpLG09MDtlOmZv''@;'; put 'put ''cig7UmU9bSszfDAsISgoMHxSZSk+PSgwfHApKTspZm9yKHE9ZisobTw8NCl8MCxwZT1mKyhtPDw0KSs4fDAsYmU9bSsxfDAsZ2U9ZisoYmU8PDQpfDAsYmU9ZisoYmU8PDQpKzh8MCxrPW0rMnwwLGI9Zisoazw8NCl8MCxrPWYrKGs8PDQpKzh8MCxNPWYrKFJlPDw0KXwwLEQ9ZisoUmU8PDQp''@;'; put 'put ''Kzh8MCx3PTA7Oyl7aWYoKDB8dyk+KDB8T2UpKXttPVJlO2NvbnRpbnVlIGV9Zm9yKFI9KChydD0rX1tnZT4+M10pLShSPStfW3E+PjNdKSkqKEhlPUxlKisoMHx3KSkrUixHPSgoVmU9K19bYmU+PjNdKS0oRz0rX1twZT4+M10pKSpIZStHLFI9KCgoV2U9K19bYj4+M10pLShydD0oV2UtcnQp''@;'; put 'put ''KkhlK3J0KSsoK19bTT4+M10tV2UpKkhlKSpIZStydC0oUj0ocnQtUikqSGUrUikpKkhlK1IsRz0oKChxZT0rX1trPj4zXSktKFZlPShxZS1WZSkqSGUrVmUpKygrX1tEPj4zXS1xZSkqSGUpKkhlK1ZlLShHPShWZS1HKSpIZStHKSkqSGUrRyxBPTA7ISgoMHxBKT49KDB8YykpOylHPD0rX1ts''@;'; put 'put ''KyhBPDw1KSsyND4+M10rMWUtNCYmRz49K19bbCsoQTw8NSkrOD4+M10tMWUtNCYmKCtfWyhtPWwrKEE8PDUpfDApPj4zXT5SJiYoX1ttPj4zXT1SKSwrX1sobT1sKyhBPDw1KSsxNnwwKT4+M108UiYmKF9bbT4+M109UikpLEE9QSsxfDA7dz13KzF8MH19ZnVuY3Rpb24gck4obCl7dmFyIGYs''@;'; put 'put ''cCxBLHcsYixrLGM9MCxtPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MDtmb3Ioaz1sZSxsZT1sZSsxMTJ8MCx3PWsrODB8MCxiPWsrNDh8MCxBPWsrOHwwLGY9MHxhWzE1NzEyXSxhWyhtPWspPj4yXT1hWyhwPTgwKyhsfD0wKXwwKT4+Ml0sVDAoZiwxMDUyNjgsbSksbT1sKzg0fDAsYz0wOyEoKDB8''@;'; put 'put ''Yyk+PSgwfGFbcD4+Ml0pKTspRz0rX1socT0wfGFbbT4+Ml0pKyhjPDw1KT4+M10sUj0rX1txKyhjPDw1KSs4Pj4zXSxEPStfW3ErKGM8PDUpKzE2Pj4zXSxNPStfW3ErKGM8PDUpKzI0Pj4zXSxhW0E+PjJdPWMsX1tBKzg+PjNdPUcsX1tBKzE2Pj4zXT1SLF9bQSsyND4+M109RCxfW0ErMzI+''@;'; put 'put ''PjNdPU0sVDAoZiwxMDUyNzksQSksYz1jKzF8MDtHPStfW2wrOD4+M10sUj0rX1tsKzE2Pj4zXSxxPTB8ZmVbbCsyOT4+MF0/MTA1MzEwOjEwNTMyMixfW2I+PjNdPStfW2w+PjNdLF9bYis4Pj4zXT1HLF9bYisxNj4+M109UixhW2IrMjQ+PjJdPXEsVDAoZiwxMDUzMzgsYiksUj0rX1tsKzQ4''@;'; put 'put ''Pj4zXSxHPStfW2wrNTY+PjNdLHE9MHxmZVtsKzY5Pj4wXT8xMDUzMTA6MTA1MzIyLF9bdz4+M109K19bbCs0MD4+M10sX1t3Kzg+PjNdPVIsX1t3KzE2Pj4zXT1HLGFbdysyND4+Ml09cSxUMChmLDEwNTM4OSx3KSxsZT1rfWZ1bmN0aW9uIGlOKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8''@;'; put 'put ''PTA7ZG97aWYoKDB8Yyk+KDB8ZikmKDB8cCk+KDB8bCkpe2lmKCEoKDB8Zik+KDB8bCl8KDB8cCk8KDB8bCkpKXtsPXAtbHwwO2JyZWFrfWlmKCgwfGMpPCgwfGYpfCgwfGMpPigwfHApKXtsPSgwfChjPWMtbHwwKSk8KDB8KGw9cC1mfDApKT9jOmw7YnJlYWt9bD1jLWZ8MDticmVha31sPTB9''@;'; put 'put ''d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBnayhsLGMpe3JldHVybiAwfFpRKGx8PTAsY3w9MCwxKX1mdW5jdGlvbiBJYWUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIGssbT0wLEE9MCx3PTAsYj0wO2ZvcihrPWxlLGxlPWxlKzgwfDAsQT1rLGI9MSxtPWN8PTA7dz1tLDAhPSgw''@;'; put 'put ''fChtPTB8YVsxNzIrKDB8YVttKzE2Pj4yXSk+PjJdKSkmKDB8dykhPSgwfG0pOyliPWIrMXwwO2ZvcigoMHxiKT49MjEmJihBPTB8dnIoYjw8MikpLHc9MCxtPWM7ISgoMHx3KT49KDB8YikpOylhW0ErKHc8PDIpPj4yXT1tLHc9dysxfDAsbT0wfGFbMTcyKygwfGFbbSsxNj4+Ml0pPj4yXTtX''@;'; put 'put ''UShsLEEsYixmLHApLCgwfGIpPjIwJiZGdChBKSxsZT1rfWZ1bmN0aW9uIFdRKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgZ2UsVmUscWUscnQsV2UsYXQsa3Qsc3QsRXQsWnQsY3QsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxiZT0wLE9lPTAs''@;'; put 'put ''TGU9MCxSZT0wLEhlPTAsU3Q9MCxidD0wLGFuPTAsU249MCxIbj0wLHVyPTA7Y3Q9bGUsbGU9bGUrMzA0fDAscWU9Y3QrMjcyfDAsc3Q9Y3QrMzJ8MCxFdD1jdCsxNnwwLFp0PWN0LHE9Y3QrMTkyfDAsSGU9Y3QrMTc2fDAsQT1jdCsxNjB8MCxydD1jdCsyOTZ8MCxXZT1jdCsyODh8MCxiPSh3''@;'; put 'put ''PTB8YVsoY3w9MCk+PjJdKS00OHwwLGF0PTB8YVsoMj09KDB8KExlPTMmYVt3Pj4yXSkpP3c6YikrNDA+PjJdLGdlPTE2KyhrdD1jdCs5NnwwKXwwLFN0PTE2KygwfGFbKFJlPXcrMTZ8MCk+PjJdKXwwLGFbKFZlPWN0KzIwOHwwKT4+Ml09YVsoTGU9MTYrKDB8YVsxNisoMHxhWygzPT0oMHxM''@;'; put 'put ''ZSk/dzp3KzQ4fDApKzQwPj4yXSk+PjJdKXwwKT4+Ml0sYVtWZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbVmUrOD4+Ml09YVtMZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0xlKzEyPj4yXSxhW3FlPj4yXT1hW1N0Pj4yXSxhW3FlKzQ+PjJdPWFbU3QrND4+Ml0sYVtxZSs4Pj4yXT1hW1N0Kzg+PjJdLGFb''@;'; put 'put ''cWUrMTI+PjJdPWFbU3QrMTI+PjJdLFlRKHEsVmUscWUpLGFba3Q+PjJdPWFbcT4+Ml0sYVtrdCs0Pj4yXT1hW3ErND4+Ml0sYVtrdCs4Pj4yXT1hW3ErOD4+Ml0sYVtrdCsxMj4+Ml09YVtxKzEyPj4yXSxhW2dlPj4yXT1hW3E+PjJdLGFbZ2UrND4+Ml09YVtxKzQ+PjJdLGFbZ2UrOD4+Ml09''@;'; put 'put ''YVtxKzg+PjJdLGFbZ2UrMTI+PjJdPWFbcSsxMj4+Ml0sYVtFdD4+Ml09YVtxPj4yXSxhW0V0KzQ+PjJdPWFbcSs0Pj4yXSxhW0V0Kzg+PjJdPWFbcSs4Pj4yXSxhW0V0KzEyPj4yXT1hW3ErMTI+PjJdLHE9a3QrMzJ8MCxTdD1rdCs0OHwwLFJlPTU2KygwfGFbUmU+PjJdKXwwLGFbVmU+PjJd''@;'; put 'put ''PWFbKExlPTE2KygwfGFbYXQrMTY+PjJdKXwwKT4+Ml0sYVtWZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbVmUrOD4+Ml09YVtMZSs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0xlKzEyPj4yXSxhW3FlPj4yXT1hW1JlPj4yXSxhW3FlKzQ+PjJdPWFbUmUrND4+Ml0sYVtxZSs4Pj4yXT1hW1JlKzg+PjJdLGFb''@;'; put 'put ''cWUrMTI+PjJdPWFbUmUrMTI+PjJdLFlRKEhlLFZlLHFlKSxhW1N0Pj4yXT1hW0hlPj4yXSxhW1N0KzQ+PjJdPWFbSGUrND4+Ml0sYVtTdCs4Pj4yXT1hW0hlKzg+PjJdLGFbU3QrMTI+PjJdPWFbSGUrMTI+PjJdLGFbcT4+Ml09YVtIZT4+Ml0sYVtxKzQ+PjJdPWFbSGUrND4+Ml0sYVtxKzg+''@;'; put 'put ''PjJdPWFbSGUrOD4+Ml0sYVtxKzEyPj4yXT1hW0hlKzEyPj4yXSxhW1p0Pj4yXT1hW0hlPj4yXSxhW1p0KzQ+PjJdPWFbSGUrND4+Ml0sYVtadCs4Pj4yXT1hW0hlKzg+PjJdLGFbWnQrMTI+PjJdPWFbSGUrMTI+PjJdO2U6ZG97aWYoMSE9KDB8ZikmMD09KDB8ZmVbMTk0OTU0XSkpZm9yKGs9''@;'; put 'put ''K19ba3Q+PjNdLE09K19bU3Q+PjNdLGJ0PWstTSxEPStfW2t0Kzg+PjNdLFI9K19ba3QrNTY+PjNdLHBlPUQtUixHPXBlKnBlLEcrYnQqYnQ8MWUtNj8oYVtnZT4+Ml09YVtrdD4+Ml0sYVtnZSs0Pj4yXT1hW2t0KzQ+PjJdLGFbZ2UrOD4+Ml09YVtrdCs4Pj4yXSxhW2dlKzEyPj4yXT1hW2t0''@;'; put 'put ''KzEyPj4yXSxhW3E+PjJdPWFbU3Q+PjJdLGFbcSs0Pj4yXT1hW1N0KzQ+PjJdLGFbcSs4Pj4yXT1hW1N0Kzg+PjJdLGFbcSsxMj4+Ml09YVtTdCsxMj4+Ml0sSGU9a3QrMjR8MCxSZT1rdCs0MHwwLE09MCxrPTApOihhbj1NLWssYnQ9K0QwKCsoRythbiphbikpLExlPTB8YVsyNDgrKDB8YVsx''@;'; put 'put ''NisoMHxhW2wrNjA+PjJdKT4+Ml0pPj4yXSxTbj0rKDB8KDB8QXIoTGUsZistMXwwKSkvMiksRz1wZSpTbi9idCxfW2dlPj4zXT1HK2ssaz1hbipTbi9idCxIZT1rdCsyNHwwLF9bSGU+PjNdPWsrRCxfW3E+PjNdPUcrTSxSZT1rdCs0MHwwLF9bUmU+PjNdPVIrayxrPSsoMC1MZXwwKSxNPWFu''@;'; put 'put ''KmsvYnQsaz1wZSprL2J0KSxwPTY9PSgwfHApLGJlPVdlKzR8MCxPZT1ydCs0fDAsdz0wOzspe2lmKCgwfHcpPj0oMHxmKSlicmVhayBlO2I9KExlPTB8YVtjKyh3PDwyKT4+Ml0pLTQ4fDA7dDpkb3tpZigoMHxhWygyPT0oMyZhW0xlPj4yXXwwKT9MZTpiKSs0MD4+Ml0pPT0oMHxhdCkpZm9y''@;'; put 'put ''KGFbRXQ+PjJdPWFba3Q+PjJdLGFbRXQrND4+Ml09YVtrdCs0Pj4yXSxhW0V0Kzg+PjJdPWFba3QrOD4+Ml0sYVtFdCsxMj4+Ml09YVtrdCsxMj4+Ml0sYVtadD4+Ml09YVtTdD4+Ml0sYVtadCs0Pj4yXT1hW1N0KzQ+PjJdLGFbWnQrOD4+Ml09YVtTdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW1N0''@;'; put 'put ''KzEyPj4yXSxBPTA7Oyl7aWYoND09KDB8QSkpYnJlYWsgdDthWyhIbj1zdCsoQTw8NCl8MCk+PjJdPWFbKHVyPWt0KyhBPDw0KXwwKT4+Ml0sYVtIbis0Pj4yXT1hW3VyKzQ+PjJdLGFbSG4rOD4+Ml09YVt1cis4Pj4yXSxhW0huKzEyPj4yXT1hW3VyKzEyPj4yXSxBPUErMXwwfWVsc2UgZm9y''@;'; put 'put ''KGFbRXQ+PjJdPWFbU3Q+PjJdLGFbRXQrND4+Ml09YVtTdCs0Pj4yXSxhW0V0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtFdCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtadD4+Ml09YVtrdD4+Ml0sYVtadCs0Pj4yXT1hW2t0KzQ+PjJdLGFbWnQrOD4+Ml09YVtrdCs4Pj4yXSxhW1p0KzEyPj4yXT1hW2t0''@;'; put 'put ''KzEyPj4yXSxBPTA7Oyl7aWYoND09KDB8QSkpYnJlYWsgdDthWyh1cj1zdCsoMy1BPDw0KXwwKT4+Ml09YVsoSG49a3QrKEE8PDQpfDApPj4yXSxhW3VyKzQ+PjJdPWFbSG4rND4+Ml0sYVt1cis4Pj4yXT1hW0huKzg+PjJdLGFbdXIrMTI+PjJdPWFbSG4rMTI+PjJdLEE9QSsxfDB9fXdoaWxl''@;'; put 'put ''KDApO2lmKHApe2ZvcihhW2JlPj4yXT00LGFbV2U+PjJdPVZlLEE9MDs0IT0oMHxBKTspYVsodXI9VmUrKEE8PDQpfDApPj4yXT1hWyhIbj1zdCsoQTw8NCl8MCk+PjJdLGFbdXIrND4+Ml09YVtIbis0Pj4yXSxhW3VyKzg+PjJdPWFbSG4rOD4+Ml0sYVt1cisxMj4+Ml09YVtIbisxMj4+Ml0s''@;'; put 'put ''QT1BKzF8MDthW3FlPj4yXT1hW1dlPj4yXSxhW3FlKzQ+PjJdPWFbV2UrND4+Ml0sT2QocWUscnQpLEF1KExlLDB8YVsoMj09KDMmYVtMZT4+Ml18MCk/TGU6YikrNDA+PjJdLDB8YVtydD4+Ml0sMHxhW09lPj4yXSxtKX1lbHNlIEF1KExlLDB8YVsoMj09KDMmYVtMZT4+Ml18MCk/TGU6Yikr''@;'; put 'put ''NDA+PjJdLHN0LDQsbSk7YVtWZT4+Ml09YVtFdD4+Ml0sYVtWZSs0Pj4yXT1hW0V0KzQ+PjJdLGFbVmUrOD4+Ml09YVtFdCs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0V0KzEyPj4yXSxhW3FlPj4yXT1hW1p0Pj4yXSxhW3FlKzQ+PjJdPWFbWnQrND4+Ml0sYVtxZSs4Pj4yXT1hW1p0Kzg+PjJdLGFb''@;'; put 'put ''cWUrMTI+PjJdPWFbWnQrMTI+PjJdLHRnKDAsTGUpLF9bZ2U+PjNdPStfW2dlPj4zXStrLF9bSGU+PjNdPStfW0hlPj4zXStNLF9bcT4+M109K19bcT4+M10rayxfW1JlPj4zXT0rX1tSZT4+M10rTSx3PXcrMXwwfWVsc2UgND09KDB8cCkmJihEYWUoQSxsKSxhW3FlPj4yXT1hW0E+PjJdLGFb''@;'; put 'put ''cWUrND4+Ml09YVtBKzQ+PjJdLGFbcWUrOD4+Ml09YVtBKzg+PjJdLGFbcWUrMTI+PjJdPWFbQSsxMj4+Ml0sTGFlKGt0LHFlKSksQXUodywwfGFbKDI9PSgzJmFbdz4+Ml18MCk/dzpiKSs0MD4+Ml0sa3QsNCxtKSxhW1ZlPj4yXT1hW0V0Pj4yXSxhW1ZlKzQ+PjJdPWFbRXQrND4+Ml0sYVtW''@;'; put 'put ''ZSs4Pj4yXT1hW0V0Kzg+PjJdLGFbVmUrMTI+PjJdPWFbRXQrMTI+PjJdLGFbcWU+PjJdPWFbWnQ+PjJdLGFbcWUrND4+Ml09YVtadCs0Pj4yXSxhW3FlKzg+PjJdPWFbWnQrOD4+Ml0sYVtxZSsxMj4+Ml09YVtadCsxMj4+Ml0sdGcoMCx3KX13aGlsZSgwKTtsZT1jdH1mdW5jdGlvbiBZUShs''@;'; put 'put ''LGMsZil7dmFyIHA7cD0rX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIERhZShsLGMpe2x8PTAsX1syMzMwNV09LjUqKCtfWzMyKyhjPTB8YVsxNisoY3w9MCk+PjJdKT4+M10rICtfW2Mr''@;'; put 'put ''MTY+PjNdKSxfWzIzMzA2XT0uNSooK19bYys0MD4+M10rICtfW2MrMjQ+PjNdKSxhW2w+PjJdPWFbNDY2MTBdLGFbbCs0Pj4yXT1hWzQ2NjExXSxhW2wrOD4+Ml09YVs0NjYxMl0sYVtsKzEyPj4yXT1hWzQ2NjEzXX1mdW5jdGlvbiBMYWUobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTAsQT0wLHc9''@;'; put 'put ''MCxiPTA7Yj0uNSooKHA9K19bNDgrKGx8PTApPj4zXSkrKEE9K19bbD4+M10pKSxtPS41KigoZj0rX1tsKzU2Pj4zXSkrKHc9K19bbCs4Pj4zXSkpLEE9LjIqK0QwKCsoKHc9Zi13KSp3KyhBPXAtQSkqQSkpLDAhPShwPStEMCgrKChmPStfW2MrOD4+M10tbSkqZisodz0rX1tjPj4zXS1iKSp3''@;'; put 'put ''KSkpJiYodz1iLXcvcCpBLGI9bS1mL3AqQSxfW2wrMzI+PjNdPXcsX1tsKzE2Pj4zXT13LF9bbCs0MD4+M109YixfW2wrMjQ+PjNdPWIpfWZ1bmN0aW9uIEs1KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAsbXw9MDt2YXIgU3QsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAs''@;'; put 'put ''cGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsa3Q9MCxzdD0wLEV0PTAsWnQ9MCxjdD0wO2lmKFN0PWxlLGxlPWxlKzIwOHwwLGJlPVN0KzE5MnwwLGdlPVN0KzE3NnwwLFdlPVN0KzMyfDAsUmU9U3QrMTZ8MCxIZT1TdCxWZT1TdCsx''@;'; put 'put ''NjB8MCxxZT1TdCsxNDR8MCxPZT1TdCsxMjh8MCxMZT1TdCsxMTJ8MCxBPTIxMzA3MDY0MzImKHB8PTApLDQzNjIwNzYxNj09KDB8KHJ0PTA9PSg4JnB8MCk/MD09KDB8QSk/NDpBOjgpKSkhZnVuY3Rpb24gT2FlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtLEEsdyxiLGs7bT1sZSxs''@;'; put 'put ''ZT1sZSsxMTJ8MCxrPTIqK19bOCsoY3w9MCk+PjNdLGFbKEE9bSk+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxfW0ErMTY+PjNdPStfW2MrMTY+PjNdLF9bQSsyND4+M109ay0rX1tjKzI0Pj4zXSxfW0Er''@;'; put 'put ''MzI+PjNdPStfW2MrMzI+PjNdLF9bQSs0MD4+M109ay0rX1tjKzQwPj4zXSxfW0ErNDg+PjNdPStfW2MrNDg+PjNdLF9bQSs1Nj4+M109ay0rX1tjKzU2Pj4zXSxfW0ErNjQ+PjNdPStfW2MrNjQ+PjNdLF9bQSs3Mj4+M109ay0rX1tjKzcyPj4zXSxfW0ErODA+PjNdPStfW2MrODA+PjNdLF9b''@;'; put 'put ''QSs4OD4+M109ay0rX1tjKzg4Pj4zXSxhWyh3PUErOTZ8MCk+PjJdPWFbKGI9Yys5NnwwKT4+Ml0sYVt3KzQ+PjJdPWFbYis0Pj4yXSxhW3crOD4+Ml09YVtiKzg+PjJdLGFbdysxMj4+Ml09YVtiKzEyPj4yXSxRZihsLGMsZiwwLDAsMjU1JnApLFFmKGwsQSw3LDAsMCwwKSxsZT1tfShsLGMs''@;'; put 'put ''ZixtKTtlbHNle2ZvcihhdD0wfHZyKDY0KyhmPDw2KXwwKSxHPWYrLTF8MCxxPUhlKzh8MCxwZT1SZSs4fDAsUj0xMixwPTA7ISgoMHxwKT49KDB8ZikpOylhW1JlPj4yXT1hWyhEPWMrKHA8PDQpfDApPj4yXSxhW1JlKzQ+PjJdPWFbRCs0Pj4yXSxhW1JlKzg+PjJdPWFbRCs4Pj4yXSxhW1Jl''@;'; put 'put ''KzEyPj4yXT1hW0QrMTI+PjJdLCgwfHApPCgwfEcpPyhhW0hlPj4yXT1hWyhEPWMrKChwPXArMXwwKTw8NCl8MCk+PjJdLGFbSGUrND4+Ml09YVtEKzQ+PjJdLGFbSGUrOD4+Ml09YVtEKzg+PjJdLGFbSGUrMTI+PjJdPWFbRCsxMj4+Ml0pOihhW0hlPj4yXT1hW2M+PjJdLGFbSGUrND4+Ml09''@;'; put 'put ''YVtjKzQ+PjJdLGFbSGUrOD4+Ml09YVtjKzg+PjJdLGFbSGUrMTI+PjJdPWFbYysxMj4+Ml0scD1wKzF8MCksUj1SPChNPS4zMzMzMzMzMzMzMzMzMzMzKitEMCgrKChrdD0rX1txPj4zXS0rX1twZT4+M10pKmt0KyhNPStfW0hlPj4zXS0rX1tSZT4+M10pKk0pKSk/UjpNO2ZvcihrPTgzODg2''@;'; put 'put ''MDgwPT0oMTY3NzcyMTZ8QSksRD00PT0oMHxydCksYj0xNjc3NzIxNj09KDB8QSkscD0wLHc9MDshKCgwfHcpPj0oMHxmKSk7KWFbUmU+PjJdPWFbKEE9Yysodzw8NCl8MCk+PjJdLGFbUmUrND4+Ml09YVtBKzQ+PjJdLGFbUmUrOD4+Ml09YVtBKzg+PjJdLGFbUmUrMTI+PjJdPWFbQSsxMj4+''@;'; put 'put ''Ml0sKDB8dyk8KDB8Ryk/KGFbSGU+PjJdPWFbKEE9YysodysxPDw0KXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW0ErND4+Ml0sYVtIZSs4Pj4yXT1hW0ErOD4+Ml0sYVtIZSsxMj4+Ml09YVtBKzEyPj4yXSk6KGFbSGU+PjJdPWFbYz4+Ml0sYVtIZSs0Pj4yXT1hW2MrND4+Ml0sYVtIZSs4Pj4yXT1h''@;'; put 'put ''W2MrOD4+Ml0sYVtIZSsxMj4+Ml09YVtjKzEyPj4yXSksTT1SLytEMCgrKChrdD0rX1txPj4zXS0rX1twZT4+M10pKmt0KyhNPStfW0hlPj4zXS0rX1tSZT4+M10pKk0pKSxNPWs/LjMzMzMzMzMzMzMzMzMzMzMqTTpiPy41Kk06TSxBPWF0KyhwPDw0KXwwLEQ/KGFbZ2U+PjJdPWFbUmU+PjJd''@;'; put 'put ''LGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtiZT4+Ml09YVtIZT4+Ml0sYVtiZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbYmUrOD4+Ml09YVtIZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW0hlKzEyPj4yXSxxSShWZSwuNSpN''@;'; put 'put ''LGdlLGJlKSxhW0E+PjJdPWFbVmU+PjJdLGFbQSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbQSs4Pj4yXT1hW1ZlKzg+PjJdLGFbQSsxMj4+Ml09YVtWZSsxMj4+Ml0pOihhW0E+PjJdPWFbUmU+PjJdLGFbQSs0Pj4yXT1hW1JlKzQ+PjJdLGFbQSs4Pj4yXT1hW1JlKzg+PjJdLGFbQSsxMj4+Ml09YVtS''@;'; put 'put ''ZSsxMj4+Ml0pLEE9YXQrKHArMTw8NCl8MCxhW2dlPj4yXT1hW1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4Pj4yXT1hW1JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUmUrMTI+PjJdLGFbYmU+PjJdPWFbSGU+PjJdLGFbYmUrND4+Ml09YVtIZSs0Pj4yXSxhW2JlKzg+PjJdPWFb''@;'; put 'put ''SGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtIZSsxMj4+Ml0scUkocWUsTSxnZSxiZSksYVtBPj4yXT1hW3FlPj4yXSxhW0ErND4+Ml09YVtxZSs0Pj4yXSxhW0ErOD4+Ml09YVtxZSs4Pj4yXSxhW0ErMTI+PjJdPWFbcWUrMTI+PjJdLEE9cCszfDAsc3Q9YXQrKHArMjw8NCl8MCxhW2dlPj4yXT1h''@;'; put 'put ''W1JlPj4yXSxhW2dlKzQ+PjJdPWFbUmUrND4+Ml0sYVtnZSs4Pj4yXT1hW1JlKzg+PjJdLGFbZ2UrMTI+PjJdPWFbUmUrMTI+PjJdLGFbYmU+PjJdPWFbSGU+PjJdLGFbYmUrND4+Ml09YVtIZSs0Pj4yXSxhW2JlKzg+PjJdPWFbSGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtIZSsxMj4+Ml0scUko''@;'; put 'put ''T2UsMS1NLGdlLGJlKSxhW3N0Pj4yXT1hW09lPj4yXSxhW3N0KzQ+PjJdPWFbT2UrND4+Ml0sYVtzdCs4Pj4yXT1hW09lKzg+PjJdLGFbc3QrMTI+PjJdPWFbT2UrMTI+PjJdLEQ/KHN0PWF0KyhBPDw0KXwwLGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+''@;'; put 'put ''PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtiZT4+Ml09YVtIZT4+Ml0sYVtiZSs0Pj4yXT1hW0hlKzQ+PjJdLGFbYmUrOD4+Ml09YVtIZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW0hlKzEyPj4yXSxxSShMZSwxLS41Kk0sZ2UsYmUpLGFbc3Q+PjJdPWFbTGU+PjJdLGFb''@;'; put 'put ''c3QrND4+Ml09YVtMZSs0Pj4yXSxhW3N0Kzg+PjJdPWFbTGUrOD4+Ml0sYVtzdCsxMj4+Ml09YVtMZSsxMj4+Ml0scD1wKzR8MCk6cD1BLHc9dysxfDA7YVsoaz1hdCsocDw8NCl8MCk+PjJdPWFbYXQ+PjJdLGFbays0Pj4yXT1hW2F0KzQ+PjJdLGFbays4Pj4yXT1hW2F0Kzg+PjJdLGFbaysx''@;'; put 'put ''Mj4+Ml09YVthdCsxMj4+Ml0sYVsoaz1hdCsocCsxPDw0KXwwKT4+Ml09YVsoYj1hdCsxNnwwKT4+Ml0sYVtrKzQ+PjJdPWFbYis0Pj4yXSxhW2srOD4+Ml09YVtiKzg+PjJdLGFbaysxMj4+Ml09YVtiKzEyPj4yXSxhWyhwPWF0KyhwKzI8PDQpfDApPj4yXT1hWyhrPWF0KzMyfDApPj4yXSxh''@;'; put 'put ''W3ArND4+Ml09YVtrKzQ+PjJdLGFbcCs4Pj4yXT1hW2srOD4+Ml0sYVtwKzEyPj4yXT1hW2srMTI+PjJdLHA9MjE0NzQ4MzY0NyZydDtlOmRve2lmKCgwfHApPDIwMTMyNjU5Mil7aWYoKDB8cCk+PTgzODg2MDgwKXtpZigoMHxwKTwxMzQyMTc3Mjgpe2lmKCgwfHApPDEwMDY2MzI5Nil7aWYo''@;'; put 'put ''ODM4ODYwODAhPSgwfHApKWJyZWFrIGU7aWYoND09KDB8Zikpe3N0PTB8dnIoMTkyKSxhW3N0Pj4yXT1hW2M+PjJdLGFbc3QrND4+Ml09YVtjKzQ+PjJdLGFbc3QrOD4+Ml09YVtjKzg+PjJdLGFbc3QrMTI+PjJdPWFbYysxMj4+Ml0sYVsoRz1zdCsxNnwwKT4+Ml09YVsoYmU9YysxNnwwKT4+''@;'; put 'put ''Ml0sYVtHKzQ+PjJdPWFbYmUrND4+Ml0sYVtHKzg+PjJdPWFbYmUrOD4+Ml0sYVtHKzEyPj4yXT1hW2JlKzEyPj4yXSxHPWF0KzQ4fDAsX1soRD1zdCszMnwwKT4+M109Uj0rX1soYmU9YXQrNjR8MCk+PjNdLHE9YXQrNTZ8MCxfWyhxZT1zdCs0MHwwKT4+M109RXQ9K19bKHBlPWF0KzcyfDAp''@;'; put 'put ''Pj4zXSxfWyhPZT1zdCs0OHwwKT4+M109a3Q9K19bRz4+M10rUi0rX1trPj4zXSxfWyhIZT1zdCs1NnwwKT4+M109Y3Q9K19bcT4+M10rRXQtK19bYXQrNDA+PjNdLFp0PStfW2JlPj4zXStrdC0rX1tHPj4zXSxfWyhHPXN0KzY0fDApPj4zXT1adCxNPStfW3BlPj4zXStjdC0rX1txPj4zXSxf''@;'; put 'put ''WyhxPXN0KzcyfDApPj4zXT1NLF9bKHBlPXN0KzgwfDApPj4zXT1SK1p0LWt0LF9bc3QrODg+PjNdPUV0K00tY3QsYmU9YXQrOTZ8MCxfWyhmPXN0KzE0NHwwKT4+M109Y3Q9K19bKExlPWF0KzgwfDApPj4zXSxSZT1hdCsxMDR8MCxfW3N0KzE1Mj4+M109TT0rX1soZ2U9YXQrODh8MCk+PjNd''@;'; put 'put ''LF9bKFZlPXN0KzEyOHwwKT4+M109RXQ9K19bYmU+PjNdK2N0LStfW2F0KzExMj4+M10sX1socnQ9c3QrMTM2fDApPj4zXT1rdD0rX1tSZT4+M10rTS0rX1thdCsxMjA+PjNdLFp0PStfW0xlPj4zXStFdC0rX1tiZT4+M10sX1soYmU9c3QrMTEyfDApPj4zXT1adCxSPStfW2dlPj4zXStrdC0r''@;'; put 'put ''X1tSZT4+M10sX1soUmU9c3QrMTIwfDApPj4zXT1SLF9bKGdlPXN0Kzk2fDApPj4zXT1jdCtadC1FdCxfWyhMZT1zdCsxMDR8MCk+PjNdPU0rUi1rdCxhWyhrPXN0KzE2MHwwKT4+Ml09YVsoYj1jKzMyfDApPj4yXSxhW2srND4+Ml09YVtiKzQ+PjJdLGFbays4Pj4yXT1hW2IrOD4+Ml0sYVtr''@;'; put 'put ''KzEyPj4yXT1hW2IrMTI+PjJdLGFbKGs9c3QrMTc2fDApPj4yXT1hWyhjPWMrNDh8MCk+PjJdLGFbays0Pj4yXT1hW2MrND4+Ml0sYVtrKzg+PjJdPWFbYys4Pj4yXSxhW2srMTI+PjJdPWFbYysxMj4+Ml0sa2EobCxzdCwxMixtKSxhW1dlPj4yXT1hW0Q+PjJdLGFbV2UrND4+Ml09YVtEKzQ+''@;'; put 'put ''PjJdLGFbV2UrOD4+Ml09YVtEKzg+PjJdLGFbV2UrMTI+PjJdPWFbRCsxMj4+Ml0sUj0rX1tPZT4+M10sX1soT2U9V2UrMTZ8MCk+PjNdPWt0PShrdD0rX1tEPj4zXSkra3QtUixFdD0rX1tIZT4+M10sX1soSGU9V2UrMjR8MCk+PjNdPU09KE09K19bcWU+PjNdKStNLUV0LF9bKHFlPVdlKzMy''@;'; put 'put ''fDApPj4zXT0rX1tHPj4zXStrdC1SLF9bKGM9V2UrNDB8MCk+PjNdPStfW3E+PjNdK00tRXQsYVsobT1XZSs0OHwwKT4+Ml09YVtwZT4+Ml0sYVttKzQ+PjJdPWFbcGUrND4+Ml0sYVttKzg+PjJdPWFbcGUrOD4+Ml0sYVttKzEyPj4yXT1hW3BlKzEyPj4yXSxXbyhsLFdlLDQpLGFbV2U+PjJd''@;'; put 'put ''PWFbZ2U+PjJdLGFbV2UrND4+Ml09YVtnZSs0Pj4yXSxhW1dlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtXZSsxMj4+Ml09YVtnZSsxMj4+Ml0sRXQ9K19bZ2U+PjNdLF9bT2U+PjNdPUV0LT0oTT0rX1tiZT4+M10pLUV0LFI9K19bTGU+PjNdLF9bSGU+PjNdPVItPShrdD0rX1tSZT4+M10pLVIsX1tx''@;'; put 'put ''ZT4+M109K19bVmU+PjNdK0V0LU0sX1tjPj4zXT0rX1tydD4+M10rUi1rdCxhW20+PjJdPWFbZj4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxXbyhsLFdlLDQpLEZ0KHN0KTticmVha31QcigxMDU0MzgsMTA1NDQ5LDcz''@;'; put 'put ''NywxMDU0NTgpfWlmKCgwfHApPDExNzQ0MDUxMil7aWYoMTAwNjYzMjk2IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKFZlPWYrNXwwKTw8NCksX1tzdD4+M109RXQ9LjYyNSooK19bYz4+M10tKEV0PStfWyhxZT1jKzE2fDApPj4zXSkpK0V0LExlPWF0KzQ4fDAsX1tzdCs4Pj4zXT1jdD0uNSoo''@;'; put 'put ''K19bKGY9YysyNHwwKT4+M10tKGN0PStfWyhydD1jKzQwfDApPj4zXSkpK2N0KzEuNSooK19bKFJlPWF0KzU2fDApPj4zXS0rX1soSGU9YXQrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT1adD0uMjUqKCtfW2M+PjNdLShadD0rX1txZT4+M10pKStadCxfW3N0KzI0Pj4zXT1jdCxfW3N0KzMyPj4z''@;'; put 'put ''XT1adCxfW3N0KzQwPj4zXT0uNSooK19bZj4+M10tKGt0PStfW3J0Pj4zXSkpK2t0LF9bc3QrNDg+PjNdPVp0PS41KigrX1trPj4zXS0rX1tMZT4+M10pK1p0LF9bc3QrNTY+PjNdPS41KigrX1tmPj4zXS0oa3Q9K19bcnQ+PjNdKSkra3QsX1tzdCs2ND4+M109WnQsX1tzdCs3Mj4+M109WnQ9''@;'; put 'put ''LjUqKCtfW2Y+PjNdLShadD0rX1tydD4+M10pKStadCsoK19bUmU+PjNdLStfW0hlPj4zXSksX1tzdCs4MD4+M109RXQsX1tzdCs4OD4+M109WnQsX1tzdCs5Nj4+M109RXQsX1tzdCsxMDQ+PjNdPVp0LT0uMjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pLF9bc3QrMTEyPj4zXT0rX1trPj4zXStF''@;'; put 'put ''dC0rX1tMZT4+M10sX1tzdCsxMjA+PjNdPS41KigrX1tSZT4+M10tK19bSGU+PjNdKStadCxfW3N0KzEyOD4+M109K19bc3Q+PjNdLF9bc3QrMTM2Pj4zXT0uMjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pK2N0LGthKGwsc3QsVmUsbSksX1tXZT4+M109K19bcWU+PjNdLF9bV2UrOD4+M109LjUq''@;'; put 'put ''KCtfW2Y+PjNdLShjdD0rX1tydD4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoMTE3NDQwNTEyIT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKGY9ZisxfDApPDw0''@;'; put 'put ''KSxfW3N0Pj4zXT0rX1tiPj4zXSxfW3N0Kzg+PjNdPStfW2F0KzI0Pj4zXS0uNSooK19bKHFlPWF0KzU2fDApPj4zXS0rX1socnQ9YXQrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT0rX1thdCs0OD4+M10sX1tzdCsyND4+M109KGN0PStfW3FlPj4zXSktLjUqKGN0LStfW3J0Pj4zXSksX1tzdCsz''@;'; put 'put ''Mj4+M109K19bYyszMj4+M10sX1tzdCs0MD4+M109LjUqKCtfW3FlPj4zXS0rX1tydD4+M10pKyArX1soV2U9Yys0MHwwKT4+M10sX1tzdCs0OD4+M109K19bYj4+M10sX1tzdCs1Nj4+M109LjUqKCtfW3FlPj4zXS0rX1tydD4+M10pKyArX1tXZT4+M10sX1tzdCs3Mj4+M109KGN0PStfW2Mr''@;'; put 'put ''OD4+M10pLS41KihjdC0rX1tjKzU2Pj4zXSksX1tzdCs2ND4+M109K19bYz4+M10sa2EobCxzdCxmLG0pLEZ0KHN0KTticmVha31pZigoMHxwKTwxNjc3NzIxNjApe2lmKCgwfHApPDE1MDk5NDk0NCl7aWYoMTM0MjE3NzI4IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKFZlPWYrNHwwKTw8NCks''@;'; put 'put ''X1tzdD4+M109a3Q9LjUqKCtfW2M+PjNdLShrdD0rX1socWU9YysxNnwwKT4+M10pKStrdCsuMjUqKCtfW2s+PjNdLStfWyhIZT1hdCs0OHwwKT4+M10pLF9bc3QrOD4+M109Y3Q9LjUqKCtfWyhmPWMrMjR8MCk+PjNdLShjdD0rX1socnQ9Yys0MHwwKT4+M10pKStjdCxfW3N0KzE2Pj4zXT1r''@;'; put 'put ''dCxfW3N0KzI0Pj4zXT1FdD0uNSooK19bKExlPWF0KzU2fDApPj4zXS0rX1soUmU9YXQrNzJ8MCk+PjNdKStjdCxfW3N0KzMyPj4zXT1rdD0uNSooK19baz4+M10tK19bSGU+PjNdKStrdCxfW3N0KzQwPj4zXT1FdCxfW3N0KzQ4Pj4zXT1rdCxfW3N0KzU2Pj4zXT1rdD0uNSooK19bTGU+PjNd''@;'; put 'put ''LStfW1JlPj4zXSkrRXQsX1tzdCs2ND4+M109WnQ9LjUqKCtfW2M+PjNdLShadD0rX1txZT4+M10pKStadCstLjc1KigrX1trPj4zXS0rX1tIZT4+M10pLF9bc3QrNzI+PjNdPWt0LF9bc3QrODA+PjNdPVp0LF9bc3QrODg+PjNdPUV0LF9bc3QrOTY+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9''@;'; put 'put ''K19bcWU+PjNdKSkrWnQrLS4yNSooK19baz4+M10tK19bSGU+PjNdKSxfW3N0KzEwND4+M109RXQsX1tzdCsxMTI+PjNdPVp0LF9bc3QrMTIwPj4zXT1jdCxrYShsLHN0LFZlLG0pLF9bV2U+PjNdPStfW3FlPj4zXSxfW1dlKzg+PjNdPS41KigrX1tmPj4zXS0oY3Q9K19bcnQ+PjNdKSkrY3Qs''@;'; put 'put ''X1tXZSsxNj4+M109K19bYz4+M10sX1tXZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKDE1MDk5NDk0NCE9KDB8cCkpYnJlYWsgZTtzdD0wfHZyKChWZT1mKzJ8MCk8PDQpLF9bc3Q+PjNdPUV0PS41KigrX1tjPj4zXS0o''@;'; put 'put ''RXQ9K19bKHFlPWMrMTZ8MCk+PjNdKSkrRXQrLjc1KigrX1trPj4zXS0rX1soSGU9YXQrNDh8MCk+PjNdKSxfW3N0Kzg+PjNdPWN0PS41KigrX1soZj1jKzI0fDApPj4zXS0oY3Q9K19bKHJ0PWMrNDB8MCk+PjNdKSkrY3QsX1tzdCsxNj4+M109RXQsX1tzdCsyND4+M109RXQ9LjI1KigrX1so''@;'; put 'put ''TGU9YXQrNTZ8MCk+PjNdLStfWyhSZT1hdCs3MnwwKT4+M10pK2N0LF9bc3QrMzI+PjNdPS41KigrX1tjPj4zXS0oWnQ9K19bcWU+PjNdKSkrWnQrLjI1KigrX1trPj4zXS0rX1tIZT4+M10pLF9bc3QrNDA+PjNdPVp0PS41KigrX1tMZT4+M10tK19bUmU+PjNdKStFdCxfW3N0KzQ4Pj4zXT0u''@;'; put 'put ''NSooK19bYz4+M10tKGt0PStfW3FlPj4zXSkpK2t0Ky0uMjUqKCtfW2s+PjNdLStfW0hlPj4zXSksX1tzdCs1Nj4+M109WnQsX1tzdCs2ND4+M109WnQ9LjUqKCtfW2M+PjNdLShadD0rX1txZT4+M10pKStadCstLjc1KigrX1trPj4zXS0rX1tIZT4+M10pLF9bc3QrNzI+PjNdPUV0LF9bc3Qr''@;'; put 'put ''ODA+PjNdPVp0LF9bc3QrODg+PjNdPWN0LGthKGwsc3QsVmUsbSksX1tXZT4+M109K19bcWU+PjNdLF9bV2UrOD4+M109LjUqKCtfW2Y+PjNdLShjdD0rX1tydD4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3Qs''@;'; put 'put ''V28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoKDB8cCk8MTg0NTQ5Mzc2KXtpZigxNjc3NzIxNjAhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigoVmU9ZisxfDApPDw0KSxfW3N0Pj4zXT1FdD0rX1trPj4zXSsoRXQ9K19bKHFlPWMrMTZ8MCk+PjNdKSsuNSooK19bYz4+M10tRXQpLStfWyhMZT1h''@;'; put 'put ''dCs0OHwwKT4+M10sX1tzdCs4Pj4zXT1jdD0uNSooK19bKGY9YysyNHwwKT4+M10tKGN0PStfWyhydD1jKzQwfDApPj4zXSkpK2N0Ky4yNSooK19bKFJlPWF0KzU2fDApPj4zXS0rX1soSGU9YXQrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT1FdD1FdC0rX1trPj4zXSsgK19bTGU+PjNdLF9bc3Qr''@;'; put 'put ''MjQ+PjNdPStfW1JlPj4zXStjdC0rX1tIZT4+M10sX1tzdCszMj4+M109RXQsX1tzdCs0MD4+M109RXQ9LjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pK2N0LF9bc3QrNDg+PjNdPVp0PS4yNSooK19bYz4+M10tKFp0PStfW3FlPj4zXSkpK1p0LF9bc3QrNTY+PjNdPUV0LF9bc3QrNjQ+PjNdPVp0''@;'; put 'put ''LF9bc3QrNzI+PjNdPWN0LGthKGwsc3QsVmUsbSksX1tXZT4+M109K19bcWU+PjNdLF9bV2UrOD4+M109LjUqKCtfW2Y+PjNdLShjdD0rX1tydD4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwy''@;'; put 'put ''KSxGdChzdCk7YnJlYWt9aWYoMTg0NTQ5Mzc2IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKHFlPWYrNHwwKTw8NCksX1tzdD4+M109WnQ9LjEyNSooWnQ9K19bYz4+M10tKEV0PStfWyhWZT1jKzE2fDApPj4zXSkpK0V0Ky41KigrX1trPj4zXS0rX1soT2U9YXQrNDh8MCk+PjNdK1p0KSxfW3N0''@;'; put 'put ''Kzg+PjNdPUV0PS41KigrX1soSGU9YysyNHwwKT4+M10tKEV0PStfWyhSZT1jKzQwfDApPj4zXSkpK0V0Ky4yNSooK19bKGY9YXQrNTZ8MCk+PjNdLStfWyhMZT1hdCs3MnwwKT4+M10pLF9bc3QrMTY+PjNdPWN0PS4zNzUqKCtfW2M+PjNdLShjdD0rX1tWZT4+M10pKStjdCxfW3N0KzI0Pj4z''@;'; put 'put ''XT1FdCxfW3N0KzMyPj4zXT1jdCxfW3N0KzQwPj4zXT1FdD0uNSooK19bZj4+M10tK19bTGU+PjNdKStFdCxfW3N0KzQ4Pj4zXT1jdC09LjUqKCtfW2s+PjNdLStfW09lPj4zXSksX1tzdCs1Nj4+M109RXQsX1socnQ9c3QrNjR8MCk+PjNdPWN0LF9bc3QrNzI+PjNdPWN0PS41KigrX1tIZT4+''@;'; put 'put ''M10tKGN0PStfW1JlPj4zXSkpK2N0Ky0uMjUqKCtfW2Y+PjNdLStfW0xlPj4zXSksX1tzdCs4MD4+M109RXQ9WnQtLjUqKCtfW2s+PjNdLStfW09lPj4zXSksX1tzdCs4OD4+M109Y3QsX1tzdCs5Nj4+M109RXQsX1tzdCsxMDQ+PjNdPWN0LT0uNSooK19bZj4+M10tK19bTGU+PjNdKSxfWyhM''@;'; put 'put ''ZT1zdCsxMTJ8MCk+PjNdPVp0LF9bc3QrMTIwPj4zXT1jdCxrYShsLHN0LHFlLG0pLF9bV2U+PjNdPStfW1ZlPj4zXSxfWyhWZT1XZSs4fDApPj4zXT0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCxfWyhxZT1XZSsxNnwwKT4+M109K19bcnQ+PjNdLF9bKG09V2UrMjR8MCk+PjNd''@;'; put 'put ''PS41KigrX1socnQ9Yys4fDApPj4zXS0rX1soZj1jKzU2fDApPj4zXSkrY3QsV28obCxXZSwyKSxfW1dlPj4zXT0rX1tMZT4+M10sX1tWZT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1txZT4+M109K19bYz4+M10sX1ttPj4zXT0uNSooK19bcnQ+PjNdLStfW2Y+PjNd''@;'; put 'put ''KStjdCxXbyhsLFdlLDIpLEZ0KHN0KTticmVha31pZigoMHxwKTwzMzU1NDQzMil7aWYoKDB8cCk8OCl7aWYoNCE9KDB8cCkpYnJlYWsgZTtmb3Iodz0wfFFuKDMyKyg5NipmfDApfDApLHA9MCxBPTA7Yj0xfEEsaz13KyhBPDw0KXwwLCEoKDB8cCk+PSgwfGYpKTspYVtrPj4yXT1hWyhzdD1h''@;'; put 'put ''dCsoKGM9cDw8Mik8PDQpfDApPj4yXSxhW2srND4+Ml09YVtzdCs0Pj4yXSxhW2srOD4+Ml09YVtzdCs4Pj4yXSxhW2srMTI+PjJdPWFbc3QrMTI+PjJdLGFbKHN0PXcrKGI8PDQpfDApPj4yXT1hWyhXZT1hdCsoKDF8Yyk8PDQpfDApPj4yXSxhW3N0KzQ+PjJdPWFbV2UrND4+Ml0sYVtzdCs4''@;'; put 'put ''Pj4yXT1hW1dlKzg+PjJdLGFbc3QrMTI+PjJdPWFbV2UrMTI+PjJdLGFbKHN0PXcrKEErMjw8NCl8MCk+PjJdPWFbV2U+PjJdLGFbc3QrND4+Ml09YVtXZSs0Pj4yXSxhW3N0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtzdCsxMj4+Ml09YVtXZSsxMj4+Ml0sYVsoc3Q9dysoQSszPDw0KXwwKT4+Ml09''@;'; put 'put ''YVsoV2U9YXQrKCgyfGMpPDw0KXwwKT4+Ml0sYVtzdCs0Pj4yXT1hW1dlKzQ+PjJdLGFbc3QrOD4+Ml09YVtXZSs4Pj4yXSxhW3N0KzEyPj4yXT1hW1dlKzEyPj4yXSxhWyhzdD13KyhBKzQ8PDQpfDApPj4yXT1hW1dlPj4yXSxhW3N0KzQ+PjJdPWFbV2UrND4+Ml0sYVtzdCs4Pj4yXT1hW1dl''@;'; put 'put ''Kzg+PjJdLGFbc3QrMTI+PjJdPWFbV2UrMTI+PjJdLGFbKHN0PXcrKEErNTw8NCl8MCk+PjJdPWFbKGM9YXQrKCgzfGMpPDw0KXwwKT4+Ml0sYVtzdCs0Pj4yXT1hW2MrND4+Ml0sYVtzdCs4Pj4yXT1hW2MrOD4+Ml0sYVtzdCsxMj4+Ml09YVtjKzEyPj4yXSxwPXArMXwwLEE9QSs2fDA7YVtr''@;'; put 'put ''Pj4yXT1hW3c+PjJdLGFbays0Pj4yXT1hW3crND4+Ml0sYVtrKzg+PjJdPWFbdys4Pj4yXSxhW2srMTI+PjJdPWFbdysxMj4+Ml0sYVsoZj13KyhiPDw0KXwwKT4+Ml09YVsoc3Q9dysxNnwwKT4+Ml0sYVtmKzQ+PjJdPWFbc3QrND4+Ml0sYVtmKzg+PjJdPWFbc3QrOD4+Ml0sYVtmKzEyPj4y''@;'; put 'put ''XT1hW3N0KzEyPj4yXSxRZihsLHN0LGIsMCwwLDI1NSZtKSxGdCh3KTticmVha31pZigoMHxwKTwxNjc3NzIxNil7aWYoOCE9KDB8cCkpYnJlYWsgZTtmb3Ioa2EobCxjLGYsbSksQT1XZSsxNnwwLHA9MDs7KXtpZigoMHxwKT49KDB8ZikpYnJlYWsgZTthW1dlPj4yXT1hWyhtPWF0KygyKyhz''@;'; put 'put ''dD0zKnB8MCk8PDQpfDApPj4yXSxhW1dlKzQ+PjJdPWFbbSs0Pj4yXSxhW1dlKzg+PjJdPWFbbSs4Pj4yXSxhW1dlKzEyPj4yXT1hW20rMTI+PjJdLGFbQT4+Ml09YVsoc3Q9YXQrKHN0KzQ8PDQpfDApPj4yXSxhW0ErND4+Ml09YVtzdCs0Pj4yXSxhW0ErOD4+Ml09YVtzdCs4Pj4yXSxhW0Er''@;'; put 'put ''MTI+PjJdPWFbc3QrMTI+PjJdLFdvKGwsV2UsMikscD1wKzF8MH19aWYoMTY3NzcyMTYhPSgwfHApKWJyZWFrIGU7Zm9yKHc9MHx2cigoQT1mKzF8MCk8PDQpLHA9MTshKCgwfHApPj0oMHxmKSk7KWFbKHN0PXcrKHA8PDQpfDApPj4yXT1hWyhydD1jKyhwPDw0KXwwKT4+Ml0sYVtzdCs0Pj4y''@;'; put 'put ''XT1hW3J0KzQ+PjJdLGFbc3QrOD4+Ml09YVtydCs4Pj4yXSxhW3N0KzEyPj4yXT1hW3J0KzEyPj4yXSxwPXArMXwwO2Fbdz4+Ml09YVsocnQ9YXQrKDErKGM9MypmfDApPDw0KXwwKT4+Ml0sYVt3KzQ+PjJdPWFbcnQrND4+Ml0sYVt3Kzg+PjJdPWFbcnQrOD4+Ml0sYVt3KzEyPj4yXT1hW3J0''@;'; put 'put ''KzEyPj4yXSxhWyhmPXcrKGY8PDQpfDApPj4yXT1hWyhzdD1hdCsoYystMTw8NCl8MCk+PjJdLGFbZis0Pj4yXT1hW3N0KzQ+PjJdLGFbZis4Pj4yXT1hW3N0Kzg+PjJdLGFbZisxMj4+Ml09YVtzdCsxMj4+Ml0sa2EobCx3LEEsbSksRnQodyksYVtXZT4+Ml09YVtzdD4+Ml0sYVtXZSs0Pj4y''@;'; put 'put ''XT1hW3N0KzQ+PjJdLGFbV2UrOD4+Ml09YVtzdCs4Pj4yXSxhW1dlKzEyPj4yXT1hW3N0KzEyPj4yXSxhWyhzdD1XZSsxNnwwKT4+Ml09YVtydD4+Ml0sYVtzdCs0Pj4yXT1hW3J0KzQ+PjJdLGFbc3QrOD4+Ml09YVtydCs4Pj4yXSxhW3N0KzEyPj4yXT1hW3J0KzEyPj4yXSxfWyhtPVdlKzMy''@;'; put 'put ''fDApPj4zXT0rX1tXZT4+M10rICtfW3N0Pj4zXS0rX1thdCsoYzw8NCk+PjNdLF9bV2UrNDA+PjNdPStfW1dlKzg+PjNdKyArX1tXZSsyND4+M10tK19bYXQrKGM8PDQpKzg+PjNdLFdvKGwsc3QsMiksYVtzdD4+Ml09YVttPj4yXSxhW3N0KzQ+PjJdPWFbbSs0Pj4yXSxhW3N0Kzg+PjJdPWFb''@;'; put 'put ''bSs4Pj4yXSxhW3N0KzEyPj4yXT1hW20rMTI+PjJdLFdvKGwsV2UsMik7YnJlYWt9aWYoKDB8cCk8NTAzMzE2NDgpe2lmKDMzNTU0NDMyIT0oMHxwKSlicmVhayBlO2Zvcih3PTB8dnIoKEE9ZisyfDApPDw0KSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09''@;'; put 'put ''YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxhWyhiPXcrMTZ8MCk+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxfW3crMzI+PjNdPS4zMzMzMzMzMzMzMzMzMzMzKigrX1soYj1hdCs0OHwwKT4+''@;'; put 'put ''M10tK19bKGY9YXQrNjR8MCk+PjNdKSsgK19baz4+M10sX1t3KzQwPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooK19bKHN0PWF0KzU2fDApPj4zXS0rX1socD1hdCs3MnwwKT4+M10pKyArX1thdCs0MD4+M10sX1t3KzQ4Pj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooKGN0PStfW2I+PjNdKS0rX1tm''@;'; put 'put ''Pj4zXSkrY3QsX1t3KzU2Pj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooKGN0PStfW3N0Pj4zXSktK19bcD4+M10pK2N0LHA9NDshKCgwfHApPj0oMHxBKSk7KWFbKHN0PXcrKHA8PDQpfDApPj4yXT1hWyhmPWMrKHArLTI8PDQpfDApPj4yXSxhW3N0KzQ+PjJdPWFbZis0Pj4yXSxhW3N0Kzg+PjJd''@;'; put 'put ''PWFbZis4Pj4yXSxhW3N0KzEyPj4yXT1hW2YrMTI+PjJdLHA9cCsxfDA7a2EobCx3LEEsbSksRnQodyksYVtXZT4+Ml09YVtiPj4yXSxhW1dlKzQ+PjJdPWFbYis0Pj4yXSxhW1dlKzg+PjJdPWFbYis4Pj4yXSxhW1dlKzEyPj4yXT1hW2IrMTI+PjJdLGFbKHN0PVdlKzE2fDApPj4yXT1hW2s+''@;'; put 'put ''PjJdLGFbc3QrND4+Ml09YVtrKzQ+PjJdLGFbc3QrOD4+Ml09YVtrKzg+PjJdLGFbc3QrMTI+PjJdPWFbaysxMj4+Ml0sV28obCxXZSwyKTticmVha31pZigoMHxwKT49NjcxMDg4NjQpe2lmKDY3MTA4ODY0IT0oMHxwKSlicmVhayBlO2lmKDQ9PSgwfGYpKXtzdD0wfHZyKDk2KSxhW3N0Pj4y''@;'; put 'put ''XT1hW2M+PjJdLGFbc3QrND4+Ml09YVtjKzQ+PjJdLGFbc3QrOD4+Ml09YVtjKzg+PjJdLGFbc3QrMTI+PjJdPWFbYysxMj4+Ml0sYVsoZj1zdCsxNnwwKT4+Ml09YVtrPj4yXSxhW2YrND4+Ml09YVtrKzQ+PjJdLGFbZis4Pj4yXT1hW2srOD4+Ml0sYVtmKzEyPj4yXT1hW2srMTI+PjJdLGFb''@;'; put 'put ''KGY9c3QrMzJ8MCk+PjJdPWFbKHJ0PWF0KzY0fDApPj4yXSxhW2YrND4+Ml09YVtydCs0Pj4yXSxhW2YrOD4+Ml09YVtydCs4Pj4yXSxhW2YrMTI+PjJdPWFbcnQrMTI+PjJdLGFbKGY9c3QrNDh8MCk+PjJdPWFbKGM9YyszMnwwKT4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09''@;'; put 'put ''YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtjKzEyPj4yXSxhWyhjPXN0KzY0fDApPj4yXT1hWyhmPWF0KzEyOHwwKT4+Ml0sYVtjKzQ+PjJdPWFbZis0Pj4yXSxhW2MrOD4+Ml09YVtmKzg+PjJdLGFbYysxMj4+Ml09YVtmKzEyPj4yXSxhWyhjPXN0KzgwfDApPj4yXT1hWyhxZT1hdCsxNjB8MCk+''@;'; put 'put ''PjJdLGFbYys0Pj4yXT1hW3FlKzQ+PjJdLGFbYys4Pj4yXT1hW3FlKzg+PjJdLGFbYysxMj4+Ml09YVtxZSsxMj4+Ml0sa2EobCxzdCw2LG0pLEZ0KHN0KSxfW1dlPj4zXT0rX1thdCsxNzY+PjNdKyArX1tiPj4zXS0rX1thdD4+M10sX1tXZSs4Pj4zXT0rX1thdCsxODQ+PjNdKyArX1thdCsy''@;'; put 'put ''ND4+M10tK19bYXQrOD4+M10sYVsoc3Q9V2UrMTZ8MCk+PjJdPWFbcnQ+PjJdLGFbc3QrND4+Ml09YVtydCs0Pj4yXSxhW3N0Kzg+PjJdPWFbcnQrOD4+Ml0sYVtzdCsxMj4+Ml09YVtydCsxMj4+Ml0sV28obCxXZSwyKSxhW3N0Pj4yXT1hW2Y+PjJdLGFbc3QrND4+Ml09YVtmKzQ+PjJdLGFb''@;'; put 'put ''c3QrOD4+Ml09YVtmKzg+PjJdLGFbc3QrMTI+PjJdPWFbZisxMj4+Ml0sV28obCxXZSwyKSxhW3N0Pj4yXT1hW2F0Pj4yXSxhW3N0KzQ+PjJdPWFbYXQrND4+Ml0sYVtzdCs4Pj4yXT1hW2F0Kzg+PjJdLGFbc3QrMTI+PjJdPWFbYXQrMTI+PjJdLFdvKGwsV2UsMik7YnJlYWt9UHIoMTA1NDM4''@;'; put 'put ''LDEwNTQ0OSw3MTQsMTA1NDU4KX1pZig1MDMzMTY0OCE9KDB8cCkpYnJlYWsgZTtmb3Iodz0wfHZyKChBPWYrM3wwKTw8NCksYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sX1t3KzE2Pj4zXT0oY3Q9''@;'; put 'put ''K19bYz4+M10pLS4yNSooY3QtK19bYj4+M10pLF9bdysyND4+M109Y3Q9LjMzMzMzMzMzMzMzMzMzMzMqKCtfWyhwPWF0KzU2fDApPj4zXS0rX1thdCs3Mj4+M10pKyArX1tjKzg+PjNdLF9bdyszMj4+M109KFp0PStfW2M+PjNdKS0yKihadC0rX1tiPj4zXSksX1t3KzQwPj4zXT1jdCxfW3cr''@;'; put 'put ''NDg+PjNdPShjdD0rX1tjPj4zXSktMi4yNSooY3QtK19bYj4+M10pLF9bdys1Nj4+M109K19bcD4+M10sX1t3KzY0Pj4zXT0rX1thdCs0OD4+M10sX1t3KzcyPj4zXT0rX1twPj4zXSxwPTQ7ISgoMHxwKT49KDB8QSkpOylhWyhzdD13KyhwPDw0KXwwKT4+Ml09YVsoZj1jKyhwKy0zPDw0KXww''@;'; put 'put ''KT4+Ml0sYVtzdCs0Pj4yXT1hW2YrND4+Ml0sYVtzdCs4Pj4yXT1hW2YrOD4+Ml0sYVtzdCsxMj4+Ml09YVtmKzEyPj4yXSxwPXArMXwwO2thKGwsdyxBLG0pLEZ0KHcpO2JyZWFrfWlmKCgwfHApPDMxODc2NzEwNCl7aWYoKDB8cCk8MjUxNjU4MjQwKXtpZigoMHxwKTwyMTgxMDM4MDgpe2lm''@;'; put 'put ''KDIwMTMyNjU5MiE9KDB8cCkpYnJlYWsgZTtPZT0wfHZyKHN0PWY8PDQpLF9bT2U+PjNdPWN0PStfWyhMZT1jKzE2fDApPj4zXSxWZT1hdCs0OHwwLF9bT2UrOD4+M109WnQ9LjUqKCtfWyhydD1jKzI0fDApPj4zXS0oWnQ9K19bKHFlPWMrNDB8MCk+PjNdKSkrWnQrLjEyNSooK19bKFJlPWF0''@;'; put 'put ''KzU2fDApPj4zXS0rX1soSGU9YXQrNzJ8MCk+PjNdKSxfW09lKzE2Pj4zXT1FdD0yKigrX1trPj4zXS0rX1tWZT4+M10pK2N0LF9bT2UrMjQ+PjNdPVp0LF9bT2UrMzI+PjNdPUV0LF9bT2UrNDA+PjNdPVp0PS41KigrX1tSZT4+M10tK19bSGU+PjNdKStadCxfW09lKzQ4Pj4zXT1jdCxfW09l''@;'; put 'put ''KzU2Pj4zXT1adCxrYShsLE9lLGYsbSksRnQoT2UpLHN0PTB8dnIoc3QpLF9bc3Q+PjNdPVp0PStfW2s+PjNdKyArX1tMZT4+M10tK19bVmU+PjNdLF9bc3QrOD4+M109Y3Q9LjUqKCtfW3J0Pj4zXS0oY3Q9K19bcWU+PjNdKSkrY3QrLS42MjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pLEV0PStf''@;'; put 'put ''W2s+PjNdLStfW1ZlPj4zXStadCxfWyhWZT1zdCsxNnwwKT4+M109RXQsX1tzdCsyND4+M109Y3QsX1tzdCszMj4+M109RXQsX1tzdCs0MD4+M109Y3Q9LjUqKCtfW1JlPj4zXS0rX1tIZT4+M10pK2N0LF9bc3QrNDg+PjNdPVp0LF9bc3QrNTY+PjNdPWN0LGthKGwsc3QsZixtKSxfW1dlPj4z''@;'; put 'put ''XT0rX1tWZT4+M10sX1tXZSs4Pj4zXT0uNSooK19bcnQ+PjNdLShjdD0rX1txZT4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tjPj4zXSxfW1dlKzI0Pj4zXT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoKDB8cCk8MjM0ODgxMDI0KXtp''@;'; put 'put ''ZigyMTgxMDM4MDghPSgwfHApKWJyZWFrIGU7UmU9MHx2cihzdD1mPDw0KSxfW1JlPj4zXT1jdD0rX1tjPj4zXSxfW1JlKzg+PjNdPVp0PS41KigrX1socWU9YysyNHwwKT4+M10tKFp0PStfWyhWZT1jKzQwfDApPj4zXSkpK1p0Ky4xMjUqKCtfWyhIZT1hdCs1NnwwKT4+M10tK19bKHJ0PWF0''@;'; put 'put ''KzcyfDApPj4zXSksX1tSZSsxNj4+M109Y3QsX1tSZSsyND4+M109RXQ9LjUqKCtfW0hlPj4zXS0rX1tydD4+M10pK1p0LF9bUmUrMzI+PjNdPWN0LT0yKigrX1tIZT4+M10tK19bcnQ+PjNdKSxfW1JlKzQwPj4zXT1FdCxfW1JlKzQ4Pj4zXT1jdCxfW1JlKzU2Pj4zXT1adCxrYShsLFJlLGYs''@;'; put 'put ''bSksRnQoUmUpLHN0PTB8dnIoc3QpLF9bc3Q+PjNdPVp0PStfW2M+PjNdLStfW2s+PjNdKyArX1thdCs0OD4+M10sX1tzdCs4Pj4zXT1jdD0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCstLjYyNSooK19bSGU+PjNdLStfW3J0Pj4zXSksX1tzdCsxNj4+M109WnQsX1tzdCsyND4+''@;'; put 'put ''M109RXQ9LjUqKCtfW0hlPj4zXS0rX1tydD4+M10pK2N0LF9bc3QrMzI+PjNdPVp0LT0rX1tIZT4+M10tK19bcnQ+PjNdLF9bc3QrNDA+PjNdPUV0LF9bKHJ0PXN0KzQ4fDApPj4zXT1adCxfW3N0KzU2Pj4zXT1jdCxrYShsLHN0LGYsbSksX1tXZT4+M109K19bYysxNj4+M10sX1tXZSs4Pj4z''@;'; put 'put ''XT0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCxfW1dlKzE2Pj4zXT0rX1tydD4+M10sX1tXZSsyND4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKDIzNDg4MTAyNCE9KDB8cCkpYnJlYWsgZTtWZT0wfHZyKHN0PWY8''@;'; put 'put ''PDQpLF9bVmU+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9K19bKE9lPWMrMTZ8MCk+PjNdKSkrWnQrLTEuMTI1KigrX1trPj4zXS0rX1soTGU9YXQrNDh8MCk+PjNdKSxfW1ZlKzg+PjNdPWN0PS41KigrX1soSGU9YysyNHwwKT4+M10tKGN0PStfWyhSZT1jKzQwfDApPj4zXSkpK2N0Ky4xMjUq''@;'; put 'put ''KCtfWyhydD1hdCs1NnwwKT4+M10tK19bKHFlPWF0KzcyfDApPj4zXSksX1tWZSsxNj4+M109RXQ9K19baz4+M10tK19bTGU+PjNdK1p0LF9bVmUrMjQ+PjNdPWN0LF9bVmUrMzI+PjNdPUV0LF9bVmUrNDA+PjNdPWN0PS41KigrX1tydD4+M10tK19bcWU+PjNdKStjdCxfW1ZlKzQ4Pj4zXT1a''@;'; put 'put ''dCxfW1ZlKzU2Pj4zXT1jdCxrYShsLFZlLGYsbSksRnQoVmUpLFZlPTB8dnIoc3QpLF9bVmU+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bT2U+PjNdKSkrY3QrLTEuMTI1KigrX1trPj4zXS0rX1tMZT4+M10pLF9bVmUrOD4+M109WnQ9LjUqKCtfW0hlPj4zXS0oWnQ9K19bUmU+PjNdKSkr''@;'; put 'put ''WnQrLS42MjUqKCtfW3J0Pj4zXS0rX1txZT4+M10pLF9bVmUrMTY+PjNdPUV0PStfW2s+PjNdLStfW0xlPj4zXStjdCxfW1ZlKzI0Pj4zXT1adCxfW1ZlKzMyPj4zXT1FdCxfW1ZlKzQwPj4zXT1adD0uNSooK19bcnQ+PjNdLStfW3FlPj4zXSkrWnQsX1tWZSs0OD4+M109Y3QsX1tWZSs1Nj4+''@;'; put 'put ''M109WnQsa2EobCxWZSxmLG0pLEZ0KFZlKSxWZT0wfHZyKHN0KSxfW1ZlPj4zXT1adD0uNSooK19bYz4+M10tKFp0PStfW09lPj4zXSkpK1p0Ky4xMjUqKCtfW2s+PjNdLStfW0xlPj4zXSksX1tWZSs4Pj4zXT1jdD0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCstLjYyNSooK19b''@;'; put 'put ''cnQ+PjNdLStfW3FlPj4zXSksX1tWZSsxNj4+M109RXQ9K19baz4+M10tK19bTGU+PjNdK1p0LF9bVmUrMjQ+PjNdPWN0LF9bVmUrMzI+PjNdPUV0LF9bVmUrNDA+PjNdPWN0PS41KigrX1tydD4+M10tK19bcWU+PjNdKStjdCxfW1ZlKzQ4Pj4zXT1adCxfW1ZlKzU2Pj4zXT1jdCxrYShsLFZl''@;'; put 'put ''LGYsbSksRnQoVmUpLHN0PTB8dnIoc3QpLF9bc3Q+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bT2U+PjNdKSkrY3QrLjEyNSooK19baz4+M10tK19bTGU+PjNdKSxfW3N0Kzg+PjNdPVp0PS41KigrX1tIZT4+M10tKFp0PStfW1JlPj4zXSkpK1p0Ky4xMjUqKCtfW3J0Pj4zXS0rX1txZT4+''@;'; put 'put ''M10pLF9bKFZlPXN0KzE2fDApPj4zXT1FdD0rX1trPj4zXS0rX1tMZT4+M10rY3QsX1tzdCsyND4+M109WnQsX1tzdCszMj4+M109RXQsX1tzdCs0MD4+M109WnQ9LjUqKCtfW3J0Pj4zXS0rX1txZT4+M10pK1p0LF9bc3QrNDg+PjNdPWN0LF9bc3QrNTY+PjNdPVp0LGthKGwsc3QsZixtKSxf''@;'; put 'put ''W1dlPj4zXT0rX1tWZT4+M10sX1soVmU9V2UrOHwwKT4+M109LjUqKCtfW0hlPj4zXS0oWnQ9K19bUmU+PjNdKSkrWnQsX1socWU9V2UrMTZ8MCk+PjNdPStfW2M+PjNdLF9bKG09V2UrMjR8MCk+PjNdPS41KigrX1socnQ9Yys4fDApPj4zXS0rX1soZj1jKzU2fDApPj4zXSkrWnQsV28obCxX''@;'; put 'put ''ZSwyKSxfW1dlPj4zXT0uNSooK19bYz4+M10tKFp0PStfW09lPj4zXSkpK1p0Ky0xLjEyNSooK19baz4+M10tK19bTGU+PjNdKSxfW1ZlPj4zXT0uNSooK19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCxfW3FlPj4zXT1adCxfW20+PjNdPS41KigrX1tydD4+M10tK19bZj4+M10pK2N0LFdv''@;'; put 'put ''KGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKCgwfHApPDI4NTIxMjY3Mil7aWYoKDB8cCk8MjY4NDM1NDU2KXtpZigyNTE2NTgyNDAhPSgwfHApKWJyZWFrIGU7T2U9MHx2cihzdD1mPDw0KSxfW09lPj4zXT1jdD0oY3Q9K19bKExlPWMrMTZ8MCk+PjNdKS0rX1trPj4zXSsuNSooK19bYz4+M10t''@;'; put 'put ''Y3QpKyArX1soVmU9YXQrNDh8MCk+PjNdLF9bT2UrOD4+M109WnQ9LjUqKCtfWyhIZT1jKzI0fDApPj4zXS0oWnQ9K19bKFJlPWMrNDB8MCk+PjNdKSkrWnQrLjEyNSooK19bKHJ0PWF0KzU2fDApPj4zXS0rX1socWU9YXQrNzJ8MCk+PjNdKSxfW09lKzE2Pj4zXT1FdD0yKigrX1trPj4zXS0r''@;'; put 'put ''X1tWZT4+M10pK2N0LF9bT2UrMjQ+PjNdPVp0LF9bT2UrMzI+PjNdPUV0LF9bT2UrNDA+PjNdPVp0PS41KigrX1tydD4+M10tK19bcWU+PjNdKStadCxfW09lKzQ4Pj4zXT1jdCxfW09lKzU2Pj4zXT1adCxrYShsLE9lLGYsbSksRnQoT2UpLHN0PTB8dnIoc3QpLF9bc3Q+PjNdPVp0PShadD0r''@;'; put 'put ''X1tMZT4+M10pLStfW2s+PjNdKy41KigrX1tjPj4zXS1adCkrICtfW1ZlPj4zXSxfW3N0Kzg+PjNdPWN0PS41KigrX1tIZT4+M10tKGN0PStfW1JlPj4zXSkpK2N0Ky0uNjI1KigrX1tydD4+M10tK19bcWU+PjNdKSxFdD0yKigrX1trPj4zXS0rX1tWZT4+M10pK1p0LF9bKFZlPXN0KzE2fDAp''@;'; put 'put ''Pj4zXT1FdCxfW3N0KzI0Pj4zXT1jdCxfW3N0KzMyPj4zXT1FdCxfW3N0KzQwPj4zXT1jdD0uNSooK19bcnQ+PjNdLStfW3FlPj4zXSkrY3QsX1tzdCs0OD4+M109WnQsX1tzdCs1Nj4+M109Y3Qsa2EobCxzdCxmLG0pLF9bV2U+PjNdPStfW1ZlPj4zXSxfWyhWZT1XZSs4fDApPj4zXT0uNSoo''@;'; put 'put ''K19bSGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCxfWyhxZT1XZSsxNnwwKT4+M109K19bYz4+M10sX1sobT1XZSsyNHwwKT4+M109LjUqKCtfWyhydD1jKzh8MCk+PjNdLStfWyhmPWMrNTZ8MCk+PjNdKStjdCxXbyhsLFdlLDIpLF9bV2U+PjNdPStfW0xlPj4zXSxfW1ZlPj4zXT0uNSooK19b''@;'; put 'put ''SGU+PjNdLShjdD0rX1tSZT4+M10pKStjdCxfW3FlPj4zXT0rX1tzdD4+M10sX1ttPj4zXT0uNSooK19bcnQ+PjNdLStfW2Y+PjNdKStjdCxXbyhsLFdlLDIpLEZ0KHN0KTticmVha31pZigyNjg0MzU0NTYhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cihmPDw0KSxfW3N0Pj4zXT0rX1tjPj4zXSxM''@;'; put 'put ''ZT1hdCs0OHwwLF9bc3QrOD4+M109K19bYXQrMjQ+PjNdLS41KigrX1soSGU9YXQrNTZ8MCk+PjNdLStfWyhWZT1hdCs3MnwwKT4+M10pLF9bc3QrMTY+PjNdPStfW0xlPj4zXSxfW3N0KzI0Pj4zXT0oY3Q9K19bSGU+PjNdKS0uNSooY3QtK19bVmU+PjNdKSxfW3N0KzMyPj4zXT0rX1tjKzMy''@;'; put 'put ''Pj4zXSxfW3N0KzQwPj4zXT0uNSooK19bSGU+PjNdLStfW1ZlPj4zXSkrICtfWyhxZT1jKzQwfDApPj4zXSxfW3N0KzQ4Pj4zXT0rX1tjPj4zXSxfW3N0KzU2Pj4zXT0uNSooK19bSGU+PjNdLStfW1ZlPj4zXSkrICtfW3FlPj4zXSxrYShsLHN0LGYsbSksX1tXZT4+M109WnQ9KGN0PS4yNSoo''@;'; put 'put ''K19baz4+M10tK19bTGU+PjNdKSkrICtfWyhSZT1jKzE2fDApPj4zXSxfWyhydD1XZSs4fDApPj4zXT1FdD0uNSooK19bKE9lPWMrMjR8MCk+PjNdLShFdD0rX1txZT4+M10pKStFdCsuMTI1KihrdD0rX1tIZT4+M10tK19bVmU+PjNdKSxfWyhmPVdlKzE2fDApPj4zXT1jdCtadCxfWyhtPVdl''@;'; put 'put ''KzI0fDApPj4zXT1FdC0uMjUqa3QsV28obCxXZSwyKSxfW1dlPj4zXT1FdD0oa3Q9LjI1KigrX1trPj4zXS0rX1tMZT4+M10pKSsgK19bUmU+PjNdLF9bcnQ+PjNdPVp0PS41KigrX1tPZT4+M10tKFp0PStfW3FlPj4zXSkpK1p0Ky0uMTI1KihjdD0rX1tIZT4+M10tK19bVmU+PjNdKSxfW2Y+''@;'; put 'put ''PjNdPWt0K0V0LF9bbT4+M109LjI1KmN0K1p0LFdvKGwsV2UsMiksX1tXZT4+M109KFp0PS4yNSooK19baz4+M10tK19bTGU+PjNdKSkrICtfW1JlPj4zXSxfW3J0Pj4zXT1jdD0uNzUqKCtfW0hlPj4zXS0rX1tWZT4+M10pKyArX1txZT4+M10sX1tmPj4zXT0rX1tjPj4zXS1adCxfW20+PjNd''@;'; put 'put ''PWN0LFdvKGwsV2UsMiksRnQoc3QpO2JyZWFrfWlmKCgwfHApPDMwMTk4OTg4OCl7aWYoMjg1MjEyNjcyIT0oMHxwKSlicmVhayBlO1ZlPTB8dnIoZjw8NCksX1tWZT4+M109WnQ9LjUqKCtfW2s+PjNdLStfWyhxZT1hdCs0OHwwKT4+M10rKCtfW2M+PjNdLShadD0rX1soTGU9YysxNnwwKT4+''@;'; put 'put ''M10pKSkrWnQsX1tWZSs4Pj4zXT1rdD0uNSooK19baz4+M10tK19bcWU+PjNdKygrX1soSGU9YysyNHwwKT4+M10tKGt0PStfWyhSZT1jKzQwfDApPj4zXSkpKStrdCxfW1ZlKzE2Pj4zXT1adCxfW1ZlKzI0Pj4zXT1adD0uNSooK19bSGU+PjNdLShadD0rX1tSZT4+M10pLShSPStfW2s+PjNd''@;'; put 'put ''LStfW3FlPj4zXSkpK1p0LF9bVmUrMzI+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bTGU+PjNdKS1SKStjdCxfW1ZlKzQwPj4zXT1adCxfW1ZlKzQ4Pj4zXT1jdCxfW1ZlKzU2Pj4zXT1rdCxrYShsLFZlLGYsbSksRnQoVmUpLF9bV2U+PjNdPVI9KGt0PS41KigrX1tjPj4zXS0oa3Q9K19b''@;'; put 'put ''TGU+PjNdKSkra3QpKyhadD0uNzUqKGN0PStfW2s+PjNdLStfW3FlPj4zXSkpLF9bKFZlPVdlKzh8MCk+PjNdPVp0PShFdD0uNSooK19bSGU+PjNdLShFdD0rX1tSZT4+M10pKStFdCkrWnQsX1socnQ9V2UrMTZ8MCk+PjNdPVIsX1soc3Q9V2UrMjR8MCk+PjNdPUV0Kz1jdCo9LS43NSxfW1dl''@;'; put 'put ''KzMyPj4zXT1jdD1rdCtjdCxfW1dlKzQwPj4zXT1FdCxfW1dlKzQ4Pj4zXT1jdCxfW1dlKzU2Pj4zXT1adCxhWyhmPVdlKzY0fDApPj4yXT1hW1dlPj4yXSxhW2YrND4+Ml09YVtXZSs0Pj4yXSxhW2YrOD4+Ml09YVtXZSs4Pj4yXSxhW2YrMTI+PjJdPWFbV2UrMTI+PjJdLFdvKGwsV2UsNSks''@;'; put 'put ''X1tXZT4+M109LjUqKChjdD0rX1tjPj4zXSktKFp0PStfW0xlPj4zXSkpK1p0Ky43NSooK19baz4+M10tK19bcWU+PjNdKSxfW1ZlPj4zXT0uNSooK19bSGU+PjNdLShadD0rX1tSZT4+M10pKStadCxfW3J0Pj4zXT1jdCxfW3N0Pj4zXT0uNSooK19bKGY9Yys4fDApPj4zXS0rX1sobT1jKzU2''@;'; put 'put ''fDApPj4zXSkrWnQsV28obCxXZSwyKSxfW1dlPj4zXT1adD0rX1tMZT4+M10sX1tWZT4+M109LjUqKCtfW0hlPj4zXS0oY3Q9K19bUmU+PjNdKSkrY3QsX1tydD4+M109LjUqKCtfW2M+PjNdLVp0KStadCstLjc1KigrX1trPj4zXS0rX1txZT4+M10pLF9bc3Q+PjNdPS41KigrX1tmPj4zXS0r''@;'; put 'put ''X1ttPj4zXSkrY3QsV28obCxXZSwyKTticmVha31pZigzMDE5ODk4ODghPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigocnQ9ZisxMnwwKTw8NCksX1tzdD4+M109TT0uNSooK19bYz4+M10tKE09K19bKEhlPWMrMTZ8MCk+PjNdKSkrTSsuMjUqKCtfW2s+PjNdLStfWyhnZT1hdCs0OHwwKT4+M10p''@;'; put 'put ''LF9bKE9lPXN0Kzh8MCk+PjNdPWt0PS41KigrX1soTGU9YXQrNTZ8MCk+PjNdLStfWyhSZT1hdCs3MnwwKT4+M10rKCtfWyhxZT1jKzI0fDApPj4zXS0oa3Q9K19bKFZlPWMrNDB8MCk+PjNdKSkpK2t0LF9bc3QrMTY+PjNdPU0sX1soYmU9c3QrMjR8MCk+PjNdPWt0PS4xMjUqKCtfW0xlPj4z''@;'; put 'put ''XS0rX1tSZT4+M10pK2t0LF9bKGY9c3QrMzJ8MCk+PjNdPUV0PU0tLjEyNSooK19baz4+M10tK19bZ2U+PjNdKSxfW3N0KzQwPj4zXT1SPS4xMjUqKCtfW0xlPj4zXS0rX1tSZT4+M10pK2t0LF9bc3QrNDg+PjNdPU0sX1tzdCs1Nj4+M109WnQ9LjEyNSooK19bTGU+PjNdLStfW1JlPj4zXSkr''@;'; put 'put ''UixfW3N0KzY0Pj4zXT1NLF9bc3QrNzI+PjNdPU09LjEyNSooK19bTGU+PjNdLStfW1JlPj4zXSkrWnQsX1tzdCs4MD4+M109RXQsX1tzdCs4OD4+M109TSxfW3N0Kzk2Pj4zXT1FdD0uNSooK19bYz4+M10tKEV0PStfW0hlPj4zXSkpK0V0LF9bc3QrMTA0Pj4zXT1adCxfW3N0KzExMj4+M109''@;'; put 'put ''Y3Q9RXQtLjEyNSooK19baz4+M10tK19bZ2U+PjNdKSxfW3N0KzEyMD4+M109TSxfW3N0KzEyOD4+M109Y3QtPS4xMjUqKCtfW2s+PjNdLStfW2dlPj4zXSksX1tzdCsxMzY+PjNdPU0sX1tzdCsxNDQ+PjNdPWN0LF9bc3QrMTUyPj4zXT1adCxfW3N0KzE2MD4+M109WnQ9LjEyNSooK19baz4+''@;'; put 'put ''M10tK19bZ2U+PjNdKStjdCxfW3N0KzE2OD4+M109UixfW3N0KzE3Nj4+M109Y3QsX1tzdCsxODQ+PjNdPWt0LF9bc3QrMTkyPj4zXT1jdCxfW3N0KzIwMD4+M109Y3Q9K19bT2U+PjNdLF9bc3QrMjA4Pj4zXT1adCxfW3N0KzIxNj4+M109Y3QsX1soT2U9c3QrMjI0fDApPj4zXT1FdCxfW3N0''@;'; put 'put ''KzIzMj4+M109K19bYmU+PjNdLF9bc3QrMjQwPj4zXT0rX1tmPj4zXSxfW3N0KzI0OD4+M109Y3Qsa2EobCxzdCxydCxtKSxfW1dlPj4zXT1jdD0rX1tPZT4+M10sX1socnQ9V2UrOHwwKT4+M109RXQ9LjUqKCtfW3FlPj4zXS0oRXQ9K19bVmU+PjNdKSkrRXQsX1soZj1XZSsxNnwwKT4+M109''@;'; put 'put ''Y3QsX1sobT1XZSsyNHwwKT4+M109LjEyNSooK19bTGU+PjNdLStfW1JlPj4zXSkrRXQsV28obCxXZSwyKSxfW1dlPj4zXT1FdD0rX1tPZT4+M10sX1tydD4+M109Y3Q9LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QrLjI1KihadD0rX1tMZT4+M10tK19bUmU+PjNdKSxfW2Y+PjNd''@;'; put 'put ''PUV0LF9bbT4+M109LjEyNSpadCtjdCxXbyhsLFdlLDIpLF9bV2U+PjNdPStfW0hlPj4zXSxfW3J0Pj4zXT0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCxfW2Y+PjNdPStfW2M+PjNdLF9bbT4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQo''@;'; put 'put ''c3QpO2JyZWFrfWlmKCgwfHApPDM2OTA5ODc1Mil7aWYoKDB8cCk8MzM1NTQ0MzIwKXtpZigzMTg3NjcxMDQhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigocnQ9Zis0fDApPDw0KSxfW3N0Pj4zXT1FdD0uNSooK19bYz4+M10tKEV0PStfWyhIZT1jKzE2fDApPj4zXSkpK0V0Ky4xMjUqKCtfW2s+''@;'; put 'put ''PjNdLStfWyhmPWF0KzQ4fDApPj4zXSksX1tzdCs4Pj4zXT1jdD0uNSooK19bKExlPWF0KzU2fDApPj4zXS0rX1soUmU9YXQrNzJ8MCk+PjNdKygrX1socWU9YysyNHwwKT4+M10tKGN0PStfWyhWZT1jKzQwfDApPj4zXSkpKStjdCxfW3N0KzE2Pj4zXT1SPS4xMjUqKCtfW2s+PjNdLStfW2Y+''@;'; put 'put ''PjNdKStFdCxfW3N0KzI0Pj4zXT1adD0uMTI1KigrX1tMZT4+M10tK19bUmU+PjNdKStjdCxfW3N0KzMyPj4zXT1SLF9bc3QrNDA+PjNdPVI9LjI1KigrX1tMZT4+M10tK19bUmU+PjNdKStadCxfW3N0KzQ4Pj4zXT1FdCxfW3N0KzU2Pj4zXT1rdD0uMTI1KigrX1tMZT4+M10tK19bUmU+PjNd''@;'; put 'put ''KStSLF9bc3QrNjQ+PjNdPUV0LT0uMjUqKCtfW2s+PjNdLStfW2Y+PjNdKSxfW3N0KzcyPj4zXT1rdCxfW3N0KzgwPj4zXT1rdD1FdC0uMTI1KigrX1trPj4zXS0rX1tmPj4zXSksX1tzdCs4OD4+M109UixfW3N0Kzk2Pj4zXT1rdCxfW3N0KzEwND4+M109WnQsX1tzdCsxMTI+PjNdPUV0LF9b''@;'; put 'put ''c3QrMTIwPj4zXT1jdCxrYShsLHN0LHJ0LG0pLF9bV2U+PjNdPWN0PS41KigrX1tjPj4zXS0oY3Q9K19bSGU+PjNdKSkrY3QsX1socnQ9V2UrOHwwKT4+M109RXQ9LjUqKCtfW3FlPj4zXS0oRXQ9K19bVmU+PjNdKSkrRXQsX1soZj1XZSsxNnwwKT4+M109Y3QsX1sobT1XZSsyNHwwKT4+M109''@;'; put 'put ''LjEyNSooK19bTGU+PjNdLStfW1JlPj4zXSkrRXQsV28obCxXZSwyKSxfW1dlPj4zXT1FdD0uNSooK19bYz4+M10tKEV0PStfW0hlPj4zXSkpK0V0LF9bcnQ+PjNdPWN0PS41KigrX1txZT4+M10tKGN0PStfW1ZlPj4zXSkpK2N0Ky4yNSooWnQ9K19bTGU+PjNdLStfW1JlPj4zXSksX1tmPj4z''@;'; put 'put ''XT1FdCxfW20+PjNdPS4xMjUqWnQrY3QsV28obCxXZSwyKSxfW1dlPj4zXT0rX1tIZT4+M10sX1tydD4+M109LjUqKCtfW3FlPj4zXS0oY3Q9K19bVmU+PjNdKSkrY3QsX1tmPj4zXT0rX1tjPj4zXSxfW20+PjNdPS41KigrX1tjKzg+PjNdLStfW2MrNTY+PjNdKStjdCxXbyhsLFdlLDIpLEZ0''@;'; put 'put ''KHN0KTticmVha31pZigoMHxwKTwzNTIzMjE1MzYpe2lmKDMzNTU0NDMyMCE9KDB8cCkpYnJlYWsgZTtzdD0wfHZyKChIZT1mKzEyfDApPDw0KSxfW3N0Pj4zXT1NPS41KigrX1tjPj4zXS0oTT0rX1soVmU9YysxNnwwKT4+M10pKStNKy4yNSooK19baz4+M10tK19bKE9lPWF0KzQ4fDApPj4z''@;'; put 'put ''XSksX1soZj1zdCs4fDApPj4zXT1rdD0uNSooK19bKGdlPWF0KzU2fDApPj4zXS0rX1soYmU9YXQrNzJ8MCk+PjNdKygrX1socnQ9YysyNHwwKT4+M10tKGt0PStfWyhxZT1jKzQwfDApPj4zXSkpKStrdCxfW3N0KzE2Pj4zXT1NLF9bKExlPXN0KzI0fDApPj4zXT1rdD0uMTI1KigrX1tnZT4+''@;'; put 'put ''M10tK19bYmU+PjNdKStrdCxfWyhSZT1zdCszMnwwKT4+M109WnQ9TS0uMTI1KigrX1trPj4zXS0rX1tPZT4+M10pLF9bc3QrNDA+PjNdPVI9LjEyNSooK19bZ2U+PjNdLStfW2JlPj4zXSkra3QsX1tzdCs0OD4+M109TSxfW3N0KzU2Pj4zXT1FdD0uMTI1KigrX1tnZT4+M10tK19bYmU+PjNd''@;'; put 'put ''KStSLF9bc3QrNjQ+PjNdPU0sX1tzdCs3Mj4+M109TT0uMTI1KigrX1tnZT4+M10tK19bYmU+PjNdKStFdCxfW3N0KzgwPj4zXT1adCxfW3N0Kzg4Pj4zXT1NLF9bc3QrOTY+PjNdPVp0PS41KigrX1tjPj4zXS0oWnQ9K19bVmU+PjNdKSkrWnQsX1tzdCsxMDQ+PjNdPUV0LF9bc3QrMTEyPj4z''@;'; put 'put ''XT1jdD1adC0uMTI1KigrX1trPj4zXS0rX1tPZT4+M10pLF9bc3QrMTIwPj4zXT1NLF9bc3QrMTI4Pj4zXT1jdC09LjEyNSooK19baz4+M10tK19bT2U+PjNdKSxfW3N0KzEzNj4+M109TSxfW3N0KzE0ND4+M109Y3QsX1tzdCsxNTI+PjNdPUV0LF9bc3QrMTYwPj4zXT1FdD0uMTI1KigrX1tr''@;'; put 'put ''Pj4zXS0rX1tPZT4+M10pK2N0LF9bc3QrMTY4Pj4zXT1SLF9bc3QrMTc2Pj4zXT1jdCxfW3N0KzE4ND4+M109a3QsX1tzdCsxOTI+PjNdPWN0LF9bc3QrMjAwPj4zXT1jdD0rX1tmPj4zXSxfW3N0KzIwOD4+M109RXQsX1tzdCsyMTY+PjNdPWN0LF9bKGY9c3QrMjI0fDApPj4zXT1adCxfW3N0''@;'; put 'put ''KzIzMj4+M109K19bTGU+PjNdLF9bc3QrMjQwPj4zXT0rX1tSZT4+M10sX1tzdCsyNDg+PjNdPWN0LGthKGwsc3QsSGUsbSksYVtXZT4+Ml09YVtmPj4yXSxhW1dlKzQ+PjJdPWFbZis0Pj4yXSxhW1dlKzg+PjJdPWFbZis4Pj4yXSxhW1dlKzEyPj4yXT1hW2YrMTI+PjJdLF9bKGY9V2UrMTZ8''@;'; put 'put ''MCk+PjNdPStfW1dlPj4zXSxfWyhtPVdlKzI0fDApPj4zXT0uNSooK19bcnQ+PjNdLShjdD0rX1txZT4+M10pKStjdCxXbyhsLFdlLDIpLF9bV2U+PjNdPStfW1ZlPj4zXSxfW1dlKzg+PjNdPS41KigrX1tydD4+M10tKGN0PStfW3FlPj4zXSkpK2N0LF9bZj4+M109K19bYz4+M10sX1ttPj4z''@;'; put 'put ''XT0uNSooK19bYys4Pj4zXS0rX1tjKzU2Pj4zXSkrY3QsV28obCxXZSwyKSxGdChzdCk7YnJlYWt9aWYoMzUyMzIxNTM2IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKHJ0PWYrNHwwKTw8NCksX1tzdD4+M109WnQ9LjUqKCtfW2M+PjNdLShadD0rX1soSGU9YysxNnwwKT4+M10pKStadCsuMTI1''@;'; put 'put ''KigrX1trPj4zXS0rX1soUmU9YXQrNDh8MCk+PjNdKSxfWyhmPXN0Kzh8MCk+PjNdPWN0PS41KigrX1soT2U9YXQrNTZ8MCk+PjNdLStfWyhMZT1hdCs3MnwwKT4+M10rKCtfWyhxZT1jKzI0fDApPj4zXS0oY3Q9K19bKFZlPWMrNDB8MCk+PjNdKSkpK2N0LF9bc3QrMTY+PjNdPVI9LjEyNSoo''@;'; put 'put ''K19baz4+M10tK19bUmU+PjNdKStadCxfW3N0KzI0Pj4zXT1FdD0uMTI1KigrX1tPZT4+M10tK19bTGU+PjNdKStjdCxfW3N0KzMyPj4zXT1SLF9bc3QrNDA+PjNdPVI9LjI1KigrX1tPZT4+M10tK19bTGU+PjNdKStFdCxfW3N0KzQ4Pj4zXT1adCxfW3N0KzU2Pj4zXT1rdD0uMTI1KigrX1tP''@;'; put 'put ''ZT4+M10tK19bTGU+PjNdKStSLF9bc3QrNjQ+PjNdPVp0LT0uMjUqKCtfW2s+PjNdLStfW1JlPj4zXSksX1tzdCs3Mj4+M109a3QsX1tzdCs4MD4+M109a3Q9WnQtLjEyNSooK19baz4+M10tK19bUmU+PjNdKSxfW3N0Kzg4Pj4zXT1SLF9bc3QrOTY+PjNdPWt0LF9bc3QrMTA0Pj4zXT1FdCxf''@;'; put 'put ''W3N0KzExMj4+M109WnQsX1tzdCsxMjA+PjNdPWN0LGthKGwsc3QscnQsbSksX1tXZT4+M109Y3Q9LjUqKCtfW2M+PjNdLShjdD0rX1tIZT4+M10pKStjdCxfWyhydD1XZSs4fDApPj4zXT0rX1tmPj4zXSxfWyhmPVdlKzE2fDApPj4zXT1jdCxfWyhtPVdlKzI0fDApPj4zXT0uNSooK19bcWU+''@;'; put 'put ''PjNdLShjdD0rX1tWZT4+M10pKStjdCxXbyhsLFdlLDIpLF9bV2U+PjNdPStfW0hlPj4zXSxfW3J0Pj4zXT0uNSooK19bcWU+PjNdLShjdD0rX1tWZT4+M10pKStjdCxfW2Y+PjNdPStfW2M+PjNdLF9bbT4+M109LjUqKCtfW2MrOD4+M10tK19bYys1Nj4+M10pK2N0LFdvKGwsV2UsMiksRnQo''@;'; put 'put ''c3QpO2JyZWFrfWlmKCgwfHApPDQwMjY1MzE4NCl7aWYoKDB8cCk8Mzg1ODc1OTY4KXtpZigzNjkwOTg3NTIhPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigoZj1mKzV8MCk8PDQpLF9bc3Q+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1soV2U9YXQrNDh8MCk+PjNdKSxfW3N0Kzg+PjNdPStf''@;'; put 'put ''W2F0KzI0Pj4zXS0uNSooK19bKFZlPWF0KzU2fDApPj4zXS0rX1socnQ9YXQrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT0rX1tXZT4+M10sX1tzdCsyND4+M109KGN0PStfW1ZlPj4zXSktLjUqKGN0LStfW3J0Pj4zXSksX1tzdCszMj4+M109K19bYyszMj4+M10sX1tzdCs0MD4+M109K19bKHFl''@;'; put 'put ''PWMrNDB8MCk+PjNdLF9bc3QrNDg+PjNdPS41KigoY3Q9K19baz4+M10pLStfW1dlPj4zXSkrY3QsX1tzdCs1Nj4+M109K19bcWU+PjNdLF9bc3QrNjQ+PjNdPS41KigoY3Q9K19baz4+M10pLStfW1dlPj4zXSkrY3QsX1tzdCs3Mj4+M109LjUqKCtfW1ZlPj4zXS0rX1tydD4+M10pKyArX1tx''@;'; put 'put ''ZT4+M10sX1tzdCs4MD4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCs4OD4+M109LjUqKCtfW1ZlPj4zXS0rX1tydD4+M10pKyArX1txZT4+M10sX1tzdCs5Nj4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCsxMDQ+PjNdPStfWyhxZT1j''@;'; put 'put ''KzU2fDApPj4zXSxfW3N0KzEyMD4+M109KGN0PStfWyhydD1jKzh8MCk+PjNdKS0uNSooY3QtK19bcWU+PjNdKSxfW3N0KzExMj4+M109K19bYz4+M10sX1tzdCsxMzY+PjNdPStfW3J0Pj4zXSxfW3N0KzEyOD4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksa2EobCxzdCxm''@;'; put 'put ''LG0pLEZ0KHN0KTticmVha31pZigzODU4NzU5NjghPSgwfHApKWJyZWFrIGU7c3Q9MHx2cigoZj1mKzN8MCk8PDQpLF9bc3Q+PjNdPStfW2I+PjNdLS41KigrX1trPj4zXS0rX1soV2U9YXQrNDh8MCk+PjNdKSxfW3N0Kzg+PjNdPStfW2F0KzI0Pj4zXS0uNSooK19bKFZlPWF0KzU2fDApPj4z''@;'; put 'put ''XS0rX1socnQ9YXQrNzJ8MCk+PjNdKSxfW3N0KzE2Pj4zXT0rX1tXZT4+M10sX1tzdCsyND4+M109KGN0PStfW1ZlPj4zXSktLjUqKGN0LStfW3J0Pj4zXSksX1tzdCszMj4+M109K19bYyszMj4+M10sX1tzdCs0MD4+M109LjUqKCtfW1ZlPj4zXS0rX1tydD4+M10pKyArX1socWU9Yys0MHww''@;'; put 'put ''KT4+M10sX1tzdCs0OD4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCs1Nj4+M109LjUqKCtfW1ZlPj4zXS0rX1tydD4+M10pKyArX1txZT4+M10sX1tzdCs2ND4+M109K19bYj4+M10tLjUqKCtfW2s+PjNdLStfW1dlPj4zXSksX1tzdCs3Mj4+M109K19bKHFlPWMr''@;'; put 'put ''NTZ8MCk+PjNdLF9bc3QrODg+PjNdPShjdD0rX1socnQ9Yys4fDApPj4zXSktLjUqKGN0LStfW3FlPj4zXSksX1tzdCs4MD4+M109K19bYz4+M10sX1tzdCsxMDQ+PjNdPStfW3J0Pj4zXSxfW3N0Kzk2Pj4zXT0rX1tiPj4zXS0uNSooK19baz4+M10tK19bV2U+PjNdKSxrYShsLHN0LGYsbSks''@;'; put 'put ''RnQoc3QpO2JyZWFrfWlmKCgwfHApPDQxOTQzMDQwMCl7aWYoNDAyNjUzMTg0IT0oMHxwKSlicmVhayBlO3N0PTB8dnIoKGY9ZiszfDApPDw0KSxfW3N0Pj4zXT0rX1tjPj4zXSxxZT1hdCs0OHwwLF9bc3QrOD4+M109K19bKFZlPWMrOHwwKT4+M10tLjUqKCtfWyhydD1hdCs1NnwwKT4+M10t''@;'; put 'put ''K19bKFdlPWF0KzcyfDApPj4zXSksX1tzdCsxNj4+M109LjUqKChjdD0rX1trPj4zXSktK19bcWU+PjNdKStjdCxfW3N0KzI0Pj4zXT0rX1tWZT4+M10tLjUqKCtfW3J0Pj4zXS0rX1tXZT4+M10pLF9bc3QrMzI+PjNdPS41KigoY3Q9K19baz4+M10pLStfW3FlPj4zXSkrY3QsX1tzdCs0MD4+''@;'; put 'put ''M109K19bYXQrNDA+PjNdLF9bc3QrNDg+PjNdPStfW2MrMTY+PjNdLF9bc3QrNTY+PjNdPShjdD0rX1tjKzI0Pj4zXSktLjUqKGN0LStfWyhWZT1jKzQwfDApPj4zXSksX1tzdCs2ND4+M109LjUqKChjdD0rX1trPj4zXSktK19bcWU+PjNdKStjdCxfW3N0KzcyPj4zXT0rX1tWZT4+M10sX1tz''@;'; put 'put ''dCs4OD4+M109LjUqKCtfW3J0Pj4zXS0rX1tXZT4+M10pKyArX1tWZT4+M10sX1tzdCs4MD4+M109LjUqKChjdD0rX1trPj4zXSktK19bcWU+PjNdKStjdCxfW3N0KzEwND4+M109LjUqKCtfW3J0Pj4zXS0rX1tXZT4+M10pKyArX1tjKzU2Pj4zXSxfW3N0Kzk2Pj4zXT0rX1tjPj4zXSxrYShs''@;'; put 'put ''LHN0LGYsbSksRnQoc3QpO2JyZWFrfWlmKDQxOTQzMDQwMCE9KDB8cCkpYnJlYWsgZTtzdD0wfHZyKChmPWYrNXwwKTw8NCksX1tzdD4+M109K19bYz4+M10scnQ9YXQrNDh8MCxfW3N0Kzg+PjNdPStfWyhXZT1jKzh8MCk+PjNdLS41KigrX1soVmU9YXQrNTZ8MCk+PjNdLStfWyhxZT1hdCs3''@;'; put 'put ''MnwwKT4+M10pLF9bc3QrMTY+PjNdPS41KigoY3Q9K19baz4+M10pLStfW3J0Pj4zXSkrY3QsX1tzdCsyND4+M109K19bV2U+PjNdLS41KigrX1tWZT4+M10tK19bcWU+PjNdKSxfW3N0KzMyPj4zXT0uNSooKGN0PStfW2s+PjNdKS0rX1tydD4+M10pK2N0LF9bc3QrNDA+PjNdPStfW2F0KzQw''@;'; put 'put ''Pj4zXSxfW3N0KzQ4Pj4zXT0rX1tjKzE2Pj4zXSxfW3N0KzU2Pj4zXT0oY3Q9K19bYysyND4+M10pLS41KihjdC0rX1soV2U9Yys0MHwwKT4+M10pLF9bc3QrNjQ+PjNdPS41KigoY3Q9K19baz4+M10pLStfW3J0Pj4zXSkrY3QsX1tzdCs3Mj4+M109K19bV2U+PjNdLF9bc3QrODg+PjNdPS41''@;'; put 'put ''KigrX1tWZT4+M10tK19bcWU+PjNdKSsgK19bV2U+PjNdLF9bc3QrODA+PjNdPS41KigoY3Q9K19baz4+M10pLStfW3J0Pj4zXSkrY3QsX1tzdCsxMDQ+PjNdPS41KigrX1tWZT4+M10tK19bcWU+PjNdKSsgK19bKFdlPWMrNTZ8MCk+PjNdLF9bc3QrOTY+PjNdPStfW2I+PjNdLS41KigrX1tr''@;'; put 'put ''Pj4zXS0rX1tydD4+M10pLF9bc3QrMTEyPj4zXT0rX1tiPj4zXS0uNSooK19baz4+M10tK19bcnQ+PjNdKSxfW3N0KzEyMD4+M109K19bV2U+PjNdLF9bc3QrMTI4Pj4zXT0rX1tjKzQ4Pj4zXSxfW3N0KzEzNj4+M109K19bV2U+PjNdLGthKGwsc3QsZixtKSxGdChzdCk7YnJlYWt9d2hpbGUo''@;'; put 'put ''MCk7RnQoYXQpfWxlPVN0fWZ1bmN0aW9uIHFJKGwsYyxmLHApe3ZhciBBLG09MDttPSgrX1s4KyhwfD0wKT4+M10tKG09K19bOCsoZnw9MCk+PjNdKSkqKGM9K2MpK20sX1sobHw9MCk+PjNdPSgrX1twPj4zXS0oQT0rX1tmPj4zXSkpKmMrQSxfW2wrOD4+M109bX1mdW5jdGlvbiAkNShsKXtp''@;'; put 'put ''ZihsPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKWlmKDkxIT0oMHwobD0wfGFbYVtsKzQ+PjJdPj4yXSkpKXtpZig5NCE9KDB8bCkpcmV0dXJuIDB8KDkzPT0oMHxsKT8zOjk2PT0oMHxsKT80OjApO2w9Mn1lbHNlIGw9MTtlbHNlIGw9MDtyZXR1cm4gMHxsfWZ1bmN0aW9uIG9OKGws''@;'; put 'put ''YyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxhdD0wLFN0PTAsa3Q9MDttPTB8dnIoNzIpLEQ9MHxhWzEwNCsoMHxhW2wrMTY+PjJdKT4+Ml0s''@;'; put 'put ''TT0wLEE9MSx3PTB8YVs0NzI4Ml07ZTpmb3IoOzspe3N3aXRjaCgoYj0wfGZlW3c+PjBdKTw8MjQ+PjI0KXtjYXNlIDA6YnJlYWsgZTtjYXNlIDkyOnN3aXRjaCgoYj0wfGZlWyh3PXcrMXwwKT4+MF0pPDwyND4+MjQpe2Nhc2UgMTI0OmNhc2UgMTI1OmNhc2UgMTIzOmNhc2UgOTI6az1NO2Jy''@;'; put 'put ''ZWFrO2RlZmF1bHQ6a3Q9NH1icmVhaztkZWZhdWx0Omt0PTR9aWYoND09KDB8a3QpKXtzd2l0Y2goa3Q9MCxiPDwyND4+MjQpe2Nhc2UgMTIzOms9TSsxfDA7YnJlYWs7Y2FzZSAxMjU6az1NKy0xfDA7YnJlYWs7ZGVmYXVsdDprPU0sQT1BKygwPT0oMHxNKSZiPDwyND4+MjQ9PTEyNCYxKXww''@;'; put 'put ''fWlmKCgwfGspPDApYnJlYWt9TT1rLHc9dysxfDB9YVsoV2U9bSs1NnwwKT4+Ml09MHx2cihBPDwyKSxmZVttKzY0Pj4wXT1jLFZlPTA9PSgwfGMpJjEscWU9RCs4MnwwLHJ0PXArMXwwLExlPTAhPSgwfGYpLFJlPUQrMTZ8MCxIZT1EKzR8MCxPZT1EKzh8MCxiPTAsTT0wLGM9MCxiZT0wLGs9''@;'; put 'put ''MCxmPTAsRD1wLEE9MCx3PTA7ZTpmb3IoOzspe0c9YixiPTA7dDpmb3IoOzspe246Zm9yKDs7KXtnZT1mO3I6Zm9yKDs7KXtwZT1iLFI9QTtpOmZvcig7Oyl7cT1NO286Zm9yKDs7KXtmb3IoOzspe2lmKGJlKXtrdD03ODticmVhayBlfWlmKCgoQT0wfGZlWyhNPTB8YVs0NzI4Ml0pPj4wXSkt''@;'; put 'put ''MSYyNTUpPj0zMSlicmVhazthWzQ3MjgyXT1NKzF9c3dpdGNoKEE8PDI0Pj4yNHwwKXtjYXNlIDkyOmt0PTUzO2JyZWFrIG47Y2FzZSAwOmNhc2UgMTI0OmNhc2UgMTI1OmJyZWFrIHI7Y2FzZSA2MDpicmVhayBpO2Nhc2UgNjI6YnJlYWsgbztjYXNlIDEyMzpicmVhaztkZWZhdWx0OmI9YyxB''@;'; put 'put ''PU07YnJlYWsgbn1pZihhWzQ3MjgyXT1BPU0rMXwwLDB8ayl7a3Q9MzQ7YnJlYWsgZX1pZighKDB8ZmVbQT4+MF0pKXtrdD0zNDticmVhayBlfWlmKGY9MHxvTihsLFZlLDAscCksYVsoMHxhW1dlPj4yXSkrKHE8PDIpPj4yXT1mLCFmKXtrdD0zNjticmVhayBlfXE9cSsxfDAsaz00fWlmKDB8''@;'; put 'put ''ZmVbcWU+PjBdKXtiPWMsQT1NO2JyZWFrIG59aWYoISgxNiZrKSl7a3Q9Mjc7YnJlYWsgZX1BPVI+Pj4wPnJ0Pj4+MCYmKDB8KGF0PVIrLTF8MCkpIT0oMHxnZSkmJjMyPT0oMHxmZVthdD4+MF0pP2F0OlIsZmVbQT4+MF09MCxwZT0wfHJhKHApLGFbNDcyODJdPTErKDB8YVs0NzI4Ml0pLE09''@;'; put 'put ''cSxrJj0tMTcsUj1BfWlmKDYma3wwKXtrdD0yMjticmVhayBlfWlmKDB8ZmVbcWU+PjBdKXtiPWMsQT1NO2JyZWFrIG59YVs0NzI4Ml09TSsxLE09cSxrfD0xOCxiPXBlLGdlPXAsQT1wfWlmKCEoMD09KDE2Jmt8MCkmKExlfEE8PDI0Pj4yNCE9MCkpKXtrdD0zODticmVhayBlfXN3aXRjaCg0''@;'; put 'put ''Jms/KGI9RyxNPXEpOihiPTB8dnIoNzIpLGFbKDB8YVtXZT4+Ml0pKyhxPDwyKT4+Ml09YixNPXErMXwwKSwwfHBlJiYoYVtiKzYwPj4yXT1wZSksNSZrfHwoZmVbcCt3Pj4wXT0zMixrfD0xLHc9dysxfDApLEE9cCt3fDAsMSZrJiYoKDB8dyk+MSYmKDB8KFN0PUErLTF8MCkpIT0oMHxEKSYm''@;'; put 'put ''KEE9MzI9PSgwfGZlW1N0Pj4wXSk/U3Q6QSksZmVbQT4+MF09MCxEPTB8cmEocCksYVtiKzUyPj4yXT0wfEo1KGwsRCwwfGZlW3FlPj4wXT8yOjAsK19bUmU+PjNdLDB8YVtIZT4+Ml0sMHxhW09lPj4yXSksZmVbYis2ND4+MF09MSxEPXAsdz0wKSwwfGZlWyhBPTB8YVs0NzI4Ml0pPj4wXSl7''@;'; put 'put ''Y2FzZSAwOmJlPTEsZj1nZSxBPVI7Y29udGludWUgZTtjYXNlIDEyNTprdD01MTticmVhayBlfWFbNDcyODJdPUErMSxHPWIsaz0wLGI9MCxmPWdlLEE9Un1uOmRve2lmKDUzPT0oMHxrdCkpe3N3aXRjaChrdD0wLGI9cCt3fDAsMHxmZVsoQT1NKzF8MCk+PjBdKXtjYXNlIDA6Yj1jLEE9TTti''@;'; put 'put ''cmVhayBuO2Nhc2UgNjI6Y2FzZSA2MDpjYXNlIDEyNDpjYXNlIDEyNTpjYXNlIDEyMzpiPWM7YnJlYWs7Y2FzZSAzMjowfGZlW3FlPj4wXT9rdD01NTpiPTE7YnJlYWs7ZGVmYXVsdDprdD01NX01NT09KDB8a3QpJiYoa3Q9MCxmZVtiPj4wXT05MixiPWMsa3w9OSx3PXcrMXwwKSxhWzQ3Mjgy''@;'; put 'put ''XT1BfX13aGlsZSgwKTtpZihjPXArd3wwLDQma3wwJiYzMiE9KDB8ZmVbQT4+MF0pKXtrdD01OTticmVhayBlfWZvcigyNCZrfHwoaz0zMj09KDB8ZmVbQT4+MF0pP2s6OXxrKSw4Jms/KCEoKGY9MCE9KDB8YikpfChNPTB8ZmVbQT4+MF0pPDwyND4+MjQhPTMyKSYmMzI9PSgwfGZlW2MrLTE+''@;'; put 'put ''PjBdKSYmMD09KDB8ZmVbcWU+PjBdKXx8KGZlW2M+PjBdPU0sdz13KzF8MCksZj8oZj1nZSxEPXArdystMXwwKTpmPWdlKToxNiZrPygoYz0wIT0oMHxiKSl8KE09MHxmZVtBPj4wXSk8PDI0Pj4yNCE9MzI/a3Q9NzM6KDB8UikhPSgwfHApPzMyPT0oMHxmZVtSKy0xPj4wXSk/TT1SOmt0PTcz''@;'; put 'put ''Ok09cCw3Mz09KDB8a3QpJiYoa3Q9MCxmZVtSPj4wXT1NLE09UisxfDAsQT0wfGFbNDcyODJdKSxmPWM/TSstMXwwOmdlLFI9TSk6Zj1nZSxhWzQ3MjgyXT1BPUErMXwwOzspe2lmKCgwfGZlW0E+PjBdKT49MCl7TT1xLGM9YixiPXBlLEE9Ujtjb250aW51ZSB0fWFbNDcyODJdPWdlPUErMXww''@;'; put 'put ''LGZlW3Ardz4+MF09MHxmZVtBPj4wXSx3PXcrMXwwLEE9Z2V9fX1yZXR1cm4gMjI9PSgwfGt0KXx8Mjc9PSgwfGt0KXx8MzQ9PSgwfGt0KXx8MzY9PSgwfGt0KXx8Mzg9PSgwfGt0KT8oa3kobSxwZSksbT0wKTo1MT09KDB8a3QpPyhhWzQ3MjgyXT1BKzEsYVttKzQ4Pj4yXT1NKTo1OT09KDB8''@;'; put 'put ''a3QpPyhreShtLHBlKSxtPTApOjc4PT0oMHxrdCkmJihhW20rNDg+PjJdPXEpLDB8bX1mdW5jdGlvbiBVUShsLGMsZil7bHw9MCxjfD0wO3ZhciBwZSxnZSxiZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wO2JlPWxlLGxlPWxlKzY0fDAsYj1iZSs0OHwwLGs9''@;'; put 'put ''YmUrNDB8MCxNPWJlKzMyfDAsZ2U9YmUrMTZ8MCxwZT1iZSx3PTB8YVs1MisoZnw9MCk+PjJdO2U6ZG97aWYodyl7aWYoKG09K19bdysyND4+M10pPjB8KHA9K19bdyszMj4+M10pPjApe3c9MHxMaShjLDEwNTQ5Nik7ZG97aWYodyl7aWYoYVtiPj4yXT1rLGFbYis0Pj4yXT1NLCgwfCh3PTB8''@;'; put 'put ''aWwodywxMDU1MDMsYikpKTw9MCl7QT04LG0rPTE2O2JyZWFrfW0rPUE9Kyh+figoQT03MiorX1trPj4zXSkrKEE+PTA/LjU6LS41KSk8PDF8MCksMSE9KDB8dykmJihBPSsofn4oKEE9NzIqK19bTT4+M10pKyhBPj0wPy41Oi0uNSkpPDwxfDApKX1lbHNlIEE9OCxtKz0xNn13aGlsZSgwKTtw''@;'; put 'put ''PUErcH1fW2dlPj4zXT1tLF9bZ2UrOD4+M109cH1lbHNlIGZvcihNPWdlKzh8MCxEPWYrNDh8MCxSPWYrNTZ8MCxHPWYrNjR8MCxxPXBlKzh8MCxhW2dlPj4yXT0wLGFbZ2UrND4+Ml09MCxhW2dlKzg+PjJdPTAsYVtnZSsxMj4+Ml09MCx3PTA7Oyl7aWYoKDB8dyk+PSgwfGFbRD4+Ml0pKWJy''@;'; put 'put ''ZWFrIGU7VVEocGUsYywwfGFbKDB8YVtSPj4yXSkrKHc8PDIpPj4yXSksMHxmZVtHPj4wXT8oX1tnZT4+M109K19bZ2U+PjNdKyArX1twZT4+M10sYj1NLGs9KCtfW00+PjNdPitfW3E+PjNdP2dlOnBlKSs4fDApOihfW00+PjNdPStfW00+PjNdKyArX1txPj4zXSxiPWdlLGs9K19bZ2U+PjNd''@;'; put 'put ''PitfW3BlPj4zXT9nZTpwZSksX1tiPj4zXT0rX1trPj4zXSx3PXcrMXwwfX13aGlsZSgwKTthW2Y+PjJdPWFbZ2U+PjJdLGFbZis0Pj4yXT1hW2dlKzQ+PjJdLGFbZis4Pj4yXT1hW2dlKzg+PjJdLGFbZisxMj4+Ml09YVtnZSsxMj4+Ml0sYVtsPj4yXT1hW2dlPj4yXSxhW2wrND4+Ml09YVtn''@;'; put 'put ''ZSs0Pj4yXSxhW2wrOD4+Ml09YVtnZSs4Pj4yXSxhW2wrMTI+PjJdPWFbZ2UrMTI+PjJdLGxlPWJlfWZ1bmN0aW9uIFFRKGwsYyxmKXtmfD0wO3ZhciBBLGssRCxSLEcscSxwZSxwPTAsbT0wLHc9MCxiPTAsTT0wO3BlPWxlLGxlPWxlKzMyfDAsRD1wZSsxNnwwLFI9cGUsQT0oRz0rX1soY3w9''@;'; put 'put ''MCk+PjNdKS0rX1sobHw9MCk+PjNdLHA9KHE9K19bYys4Pj4zXSktK19bbCs4Pj4zXSxhW2w+PjJdPWFbYz4+Ml0sYVtsKzQ+PjJdPWFbYys0Pj4yXSxhW2wrOD4+Ml09YVtjKzg+PjJdLGFbbCsxMj4+Ml09YVtjKzEyPj4yXSwwIT0oMHxmKXwwPT0oMHwoYz0wfGFbbCs1Mj4+Ml0pKXx8KF9b''@;'; put 'put ''KE09Yys0MHwwKT4+M109K19bTT4+M10rQSxfWyhNPWMrNDh8MCk+PjNdPStfW00+PjNdK3ApLGM9MHxhWyhrPWwrNDh8MCk+PjJdO2U6ZG97aWYoMHxjKWZvcihNPWwrNjR8MCxwPSgwPT0oMHxmZVtNPj4wXSk/cDpBKS8rKDB8YyksYj1sKzU2fDAsdz0wOzspe2lmKCgwfHcpPj0oMHxjKSli''@;'; put 'put ''cmVhayBlO2w9MHxhWygwfGFbYj4+Ml0pKyh3PDwyKT4+Ml0sYz1+fihwKisoMHwobT13KzF8MCkpKS1+fihwKisoMHx3KSl8MCwwfGZlW00+PjBdP0N5KFIsK19bbD4+M10rICsoMHxjKSxxKTpDeShSLEcsK19bbCs4Pj4zXSsgKygwfGMpKSxhW0Q+PjJdPWFbUj4+Ml0sYVtEKzQ+PjJdPWFb''@;'; put 'put ''Uis0Pj4yXSxhW0QrOD4+Ml09YVtSKzg+PjJdLGFbRCsxMj4+Ml09YVtSKzEyPj4yXSxRUShsLEQsZiksdz1tLGM9MHxhW2s+PjJdfX13aGlsZSgwKTtsZT1wZX1mdW5jdGlvbiBDeShsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBKUShsLGMsZil7''@;'; put 'put ''Y3w9MDt2YXIgQSx3LEQsUixHLHEscGUscD0wLG09MCxiPTAsaz0wLE09MDtmb3IoRz1sZSxsZT1sZSs0OHwwLHc9RyszMnwwLE09RysxNnwwLGs9RyxmZVs2NSsobHw9MCk+PjBdPWZ8PTAsYj1sKzE2fDAsQ3koTSxwZT0rX1tjPj4zXSwocT0rX1soUj1jKzh8MCk+PjNdKS0rX1tsKzg+PjNd''@;'; put 'put ''KSxhW2I+PjJdPWFbTT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSxiPWwrMzJ8MCxDeShrLCtfW2w+PjNdK3BlLHEpLGFbYj4+Ml09YVtrPj4yXSxhW2IrND4+Ml09YVtrKzQ+PjJdLGFbYis4Pj4yXT1hW2srOD4+Ml0s''@;'; put 'put ''YVtiKzEyPj4yXT1hW2srMTI+PjJdLGs9KGI9MHxhW2wrNDg+PjJdKS0xfDAsTT0wPT0oMHxmKSxEPWwrNTZ8MCxBPWwrNjR8MCxtPTA7ISgoMHxtKT49KDB8YikpOyl7ZG97aWYoIU0pe2lmKGw9MD09KDB8bSkscD0oMHxtKT09KDB8ayksMHxmZVtBPj4wXSl7aWYobCl7bD1wPzE1OjEzO2Jy''@;'; put 'put ''ZWFrfWw9cD83OjU7YnJlYWt9aWYobCl7bD1wPzE1OjE0O2JyZWFrfWw9cD8xMToxMDticmVha31sPTB9d2hpbGUoMCk7cD0wfGFbKDB8YVtEPj4yXSkrKG08PDIpPj4yXSxhW3c+PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09''@;'; put 'put ''YVtjKzEyPj4yXSxKUShwLHcsbCZmKSwwfGZlW0E+PjBdP19bYz4+M109K19bYVsoMHxhW0Q+PjJdKSsobTw8Mik+PjJdPj4zXSsgK19bYz4+M106X1tSPj4zXT0rX1tSPj4zXS0rX1s4KygwfGFbKDB8YVtEPj4yXSkrKG08PDIpPj4yXSk+PjNdLG09bSsxfDB9bGU9R31mdW5jdGlvbiBreShs''@;'; put 'put ''LGMpe2N8PTAsYU4obHw9MCksRnQoYyl9ZnVuY3Rpb24gYU4obCl7dmFyIGYscCxjPTA7Zm9yKGY9NDgrKGx8PTApfDAscD1sKzU2fDAsYz0wOyEoKDB8Yyk+PSgwfGFbZj4+Ml0pKTspYU4oMHxhWygwfGFbcD4+Ml0pKyhjPDwyKT4+Ml0pLGM9YysxfDA7RnQoMHxhW2wrNjA+PjJdKSxJYygw''@;'; put 'put ''fGFbbCs1Mj4+Ml0pLEZ0KDB8YVtwPj4yXSksRnQobCl9ZnVuY3Rpb24gRmFlKGwpe3ZhciBmLGM9MDtyZXR1cm4rICsoMHx+figoYz03MiooKGY9K01sKGx8PTAsMHxhWzQ3MTQ2XSwwLC4wMSkpPihjPStNbChsLDB8YVs0NzE0NV0sMCwuMDIpKT9mOmMpKSsoYz49MD8uNTotLjUpKSl9ZnVu''@;'; put 'put ''Y3Rpb24gWFEobCxjKXt2YXIgZjtyZXR1cm4rICsoKCsoMHwoZj1+figobD0rbCkvKGM9K2MpKSkpKmMrMWUtNTxsJjEpK2Z8MCkqY31mdW5jdGlvbiBIYWUobCl7cmV0dXJuIDB8KChsPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKT85MT09KDB8YVthW2wrND4+Ml0+PjJdKSYxOjAp''@;'; put 'put ''fWZ1bmN0aW9uIGxOKGwpe2x8PTA7dmFyIHAsYz0wLGY9MCxtPTAsQT0wO3A9MHxhWzQ3MjgzXTtlOmRve2lmKHApZm9yKG09MHxhWzQ3Mjg0XSxmPTA7Oyl7aWYoKDB8Zik+PSgwfG0pKXtjPTA7YnJlYWsgZX1pZigoMHxmZVsoQT0wfGFbKGM9MHxhW3ArKGY8PDIpPj4yXSk+PjJdKT4+MF0p''@;'; put 'put ''PT0oMHxmZVtsPj4wXSkmJjA9PSgwfFppKEEsbCkpKWJyZWFrIGU7Zj1mKzF8MH1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIEtRKGwsYyl7Y3w9MDt2YXIgayxNLEQsUixHLHEscGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsZ2U9MCxiZT0wO2lmKHBlPWxlLGxlPWxl''@;'; put 'put ''KzExMnwwLEQ9cGUrOTZ8MCxNPXBlKzgwfDAsRz1wZSs2NHwwLGs9cGUrNDh8MCxxPXBlKzMyfDAsUj1wZSxtPXBlKzE2fDAsbHw9MCl7QT0wfGFbbCs0Pj4yXSx3PTkwKigzJmFbMTE2KygwfGFbMTYrKDB8Y3IobD0wfGFbbD4+Ml0pKT4+Ml0pPj4yXSl8MCxhW0Q+PjJdPWFbYz4+Ml0sYVtE''@;'; put 'put ''KzQ+PjJdPWFbYys0Pj4yXSxhW0QrOD4+Ml09YVtjKzg+PjJdLGFbRCsxMj4+Ml09YVtjKzEyPj4yXSxVNihtLEQsdyksYVtxPj4yXT1hW20+PjJdLGFbcSs0Pj4yXT1hW20rND4+Ml0sYVtxKzg+PjJdPWFbbSs4Pj4yXSxhW3ErMTI+PjJdPWFbbSsxMj4+Ml07ZTpkb3tpZihBKWY9K19bQSs4''@;'; put 'put ''Pj4zXSxwPStfW0ErMjQ+PjNdLGdlPStfW3E+PjNdLGw9K19bQT4+M108PWdlJiZnZTw9K19bQSsxNj4+M10mJihiPStfW3ErOD4+M10sZjw9Yik/Yjw9cCYxOjA7ZWxzZSBmb3IoKDB8bCk9PSgwfGFbNDcyODddKT8obT0wfGFbNDcyODhdLEE9MHxhWzQ3MjkwXSx3PTB8YVs0NzI4OV0pOihB''@;'; put 'put ''PTB8YVsxMisoMHxhW2wrMTY+PjJdKT4+Ml0sYVs0NzI5MV09QSx3PTB8YVtBKzQ0Pj4yXSxhWzQ3Mjg5XT13LG09MHxhW0ErOD4+Ml0sYVs0NzI4OF09bSxBPTB8QXIoKDB8YVtBKzQ+PjJdKS0xfDAsbSksQT0oMHxBKT4wP0E6MCxhWzQ3MjkwXT1BLGFbNDcyODddPWwpLGw9MCxjPTA7Oyl7''@;'; put 'put ''aWYoKDB8bCk+PSgwfG0pKXtsPTE7YnJlYWsgZX1pZihhW1I+PjJdPWFbKGJlPXcrKEErbDw8NCl8MCk+PjJdLGFbUis0Pj4yXT1hW2JlKzQ+PjJdLGFbUis4Pj4yXT1hW2JlKzg+PjJdLGFbUisxMj4+Ml09YVtiZSsxMj4+Ml0sYmU9dysoQSsoKGwrNHwwKSUoMHxtKXwwKTw8NCl8MCxhW2s+''@;'; put 'put ''PjJdPWFbcT4+Ml0sYVtrKzQ+PjJdPWFbcSs0Pj4yXSxhW2srOD4+Ml09YVtxKzg+PjJdLGFbaysxMj4+Ml09YVtxKzEyPj4yXSxhW0c+PjJdPWFbNDY2MTRdLGFbRys0Pj4yXT1hWzQ2NjE1XSxhW0crOD4+Ml09YVs0NjYxNl0sYVtHKzEyPj4yXT1hWzQ2NjE3XSxhW00+PjJdPWFbUj4+Ml0s''@;'; put 'put ''YVtNKzQ+PjJdPWFbUis0Pj4yXSxhW00rOD4+Ml09YVtSKzg+PjJdLGFbTSsxMj4+Ml09YVtSKzEyPj4yXSxhW0Q+PjJdPWFbYmU+PjJdLGFbRCs0Pj4yXT1hW2JlKzQ+PjJdLGFbRCs4Pj4yXT1hW2JlKzg+PjJdLGFbRCsxMj4+Ml09YVtiZSsxMj4+Ml0sMj09KDB8KGM9YysoMD09KDB8RXko''@;'; put 'put ''ayxHLE0sRCkpJjEpfDApKSl7bD0wO2JyZWFrfWw9bCsyfDB9fXdoaWxlKDApfWVsc2UgYVs0NzI4N109MCxsPTA7cmV0dXJuIGxlPXBlLDB8bH1mdW5jdGlvbiAkUShsLGMpe2x8PTA7dmFyIHAsQSxmPTAsbT0wO3JldHVybiBBPWxlLGxlPWxlKzE2fDAsMHwoZj0wfGVEKGN8PTAscD1BKSkm''@;'; put 'put ''JmQyKGwsZiksMHwoZj0wfGFbNDcxNzJdKSYmMHwobT0wfEhvKGMsZikpJiYwfGZlW20+PjBdJiZ4aChsLCtNbChjLDB8YVs0NzE3Ml0sMSwwKSksbGU9QSwwfGFbcD4+Ml19ZnVuY3Rpb24gc04obCl7cmV0dXJuIDB8cVEobHw9MCwxMzQ4MDApfWZ1bmN0aW9uIFN5KGwsYyl7cmV0dXJuIGx8''@;'; put 'put ''PTAsYz0wfEJhKGN8PTAsMHxhWzQ3MTQ4XSwxOTUwNTkpLG1hKGwsYz0wfGZlW2M+PjBdP2M6MTM3MzE0KSwwfGN9ZnVuY3Rpb24gdU4obCxjKXtsfD0wO3ZhciBmLHAsdyxiLGssTSxtPTAsQT0wO2Y9bGUsbGU9bGUrOTZ8MCxiPWYrODB8MCxrPWYrNjR8MCxwPWYrMzJ8MCxBPWYsX1s4KyhN''@;'; put 'put ''PWYrMTZ8MCk+PjNdPS4zNzUqKG09K19bODArKGM9MHxhWzE2KyhjfD0wKT4+Ml0pPj4zXSksX1tNPj4zXT0uNjYxNCoodz0rX1tjKzk2Pj4zXSksYz1jKzE2fDAsYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsx''@;'; put 'put ''Mj4+Ml0sYVtiPj4yXT1hW2M+PjJdLGFbYis0Pj4yXT1hW2MrND4+Ml0sYVtiKzg+PjJdPWFbYys4Pj4yXSxhW2IrMTI+PjJdPWFbYysxMj4+Ml0scTUoQSxrLGIpLGFbcD4+Ml09YVtBPj4yXSxhW3ArND4+Ml09YVtBKzQ+PjJdLGFbcCs4Pj4yXT1hW0ErOD4+Ml0sYVtwKzEyPj4yXT1hW0Er''@;'; put 'put ''MTI+PjJdLF9bKGM9cCsyNHwwKT4+M109K19bKEE9cCs4fDApPj4zXSxfW3ArMTY+PjNdPStfW3A+PjNdLTEuMzIyOCp3LFdvKGwscCwyKSxfW0E+PjNdPW09K19bQT4+M10tLjc1Km0sX1tjPj4zXT1tLFdvKGwscCwyKSxsZT1mfWZ1bmN0aW9uIHE1KGwsYyxmKXt2YXIgcDtwPStfWzgrKGZ8''@;'; put 'put ''PTApPj4zXSsgK19bOCsoY3w9MCk+PjNdLF9bKGx8PTApPj4zXT0rX1tmPj4zXSsgK19bYz4+M10sX1tsKzg+PjNdPXB9ZnVuY3Rpb24gcVEobCxjKXtjfD0wO3ZhciBmPTA7cmV0dXJuIGY9MHxCYShsfD0wLDB8YVs0NzE0OV0sMTk1MDU5KSwwfGZlW2Y+PjBdPzB8ZjooZj0wfEJhKGwsMHxh''@;'; put 'put ''WzQ3MTQ4XSwxOTUwNTkpLDB8KDA9PSgwfGZlW2Y+PjBdKT9jOmYpKX1mdW5jdGlvbiBlRChsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wO2Y9MHxCYShsfD0wLDB8YVs0NzE1N10sMTk1MDU5KTtlOmRve2lmKDB8ZmVbZj4+MF0pe0E9bT0wfHpBKGYpLGY9MDt0OmZvcig7''@;'; put 'put ''Oyl7aWYoIShwPTB8YVtBPj4yXSkpYnJlYWsgZTtzd2l0Y2goMHxmZVtwPj4wXSl7Y2FzZSAxMDI6aWYoISgwfFppKHAsMTExMTAxKSkpe0E9QSs0fDAsZnw9MTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTE0OmlmKCEoMHxaaShwLDEwNjMxNikpKXtwPUE7ZG97YVsoYj1wKT4+Ml09dz0wfGFb''@;'; put 'put ''KHA9cCs0fDApPj4yXX13aGlsZSgwIT0oMHx3KSk7Znw9NCxBPWI9QTtjb250aW51ZSB0fWlmKCEoMHxaaShwLDEwNjMzNCkpKXtwPUE7ZG97YVsodz1wKT4+Ml09Yj0wfGFbKHA9cCs0fDApPj4yXX13aGlsZSgwIT0oMHxiKSk7Znw9MyxBPWI9QTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTAw''@;'; put 'put ''OmlmKCEoMHxaaShwLDEwNjMyNCkpKXtwPUE7ZG97YVsodz1wKT4+Ml09Yj0wfGFbKHA9cCs0fDApPj4yXX13aGlsZSgwIT0oMHxiKSk7Znw9OCxBPWI9QTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTA1OmlmKCEoMHxaaShwLDEzNDMzNSkpKXtBPUErNHwwLGZ8PTMyO2NvbnRpbnVlIHR9YnJl''@;'; put 'put ''YWs7Y2FzZSAxMTU6aWYoMD09KDB8WmkocCwxMDYzNDEpKSYmMHxZYWUobCkpe3A9QTtkb3thWyh3PXApPj4yXT1iPTB8YVsocD1wKzR8MCk+PjJdfXdoaWxlKDAhPSgwfGIpKTtmfD02NCxBPWI9QTtjb250aW51ZSB0fWJyZWFrO2Nhc2UgMTE5OmlmKDA9PSgwfFppKHAsMTA2MzQ5KSkmJjB8''@;'; put 'put ''TXkobCkpe3A9QTtkb3thWyh3PXApPj4yXT1iPTB8YVsocD1wKzR8MCk+PjJdfXdoaWxlKDAhPSgwfGIpKTtmfD01MTIsQT1iPUE7Y29udGludWUgdH19QT1BKzR8MH19ZWxzZSBtPTAsZj0wfXdoaWxlKDApO3JldHVybihwPTB8YVs4KygwfGFbOCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSkm''@;'; put 'put ''JihmfD1hW3ArNDA+PjJdKSxhW2M+PjJdPWYsMHxtfWZ1bmN0aW9uIFlhZShsKXt2YXIgYz0wO3JldHVybiAwfCgwIT0oMHwobD0wfGFbOCsoMHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pPj4yXSkpJiY0PT0oMHxhW2wrOD4+Ml0pJiYwPT0oMHwoMHx+figoYz0rX1tsKzE2Pj4zXSkr''@;'; put 'put ''KGM+PTA/LjU6LS41KSkpJTkwKSYmMD09K19bbCsyND4+M10/MD09K19bbCszMj4+M10mMTowKX1mdW5jdGlvbiBNeShsKXtyZXR1cm4gMHwoKGw9MHxhWzgrKDB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4+Ml0pPygwfGFbbCs4Pj4yXSk8MyYxOjApfWZ1bmN0aW9uIEV5KGwsYyxm''@;'; put 'put ''LHApe3ZhciBtLHcsYixBPTA7cmV0dXJuIDEmKCtfWzgrKGx8PTApPj4zXSoobT0rX1socHw9MCk+PjNdLShBPStfWyhmfD0wKT4+M10pKSsgK19bbD4+M10qKHc9LSgrX1twKzg+PjNdLShiPStfW2YrOD4+M10pKSktKEE9bSpiK0Eqdyk+PTBeK19bKGN8PTApPj4zXSp3LUErICtfW2MrOD4+''@;'; put 'put ''M10qbT49MF4xKXwwfWZ1bmN0aW9uIG1rKGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIE9lLExlLFJlLFZlLHFlLHJ0LGF0LFN0LHN0LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsSGU9MCxXZT0wLGt0PTAsRXQ9MDtzdD1s''@;'; put 'put ''ZSxsZT1sZSsxOTJ8MCxydD1zdCsxNzZ8MCxTdD1zdCsxNjB8MCxrPXN0KzE0NHwwLFZlPXN0KzEyOHwwLHFlPXN0KzExMnwwLE09c3QrOTZ8MCxEPXN0KzgwfDAsUj1zdCs2NHwwLE9lPXN0KzQ4fDAsTGU9c3QrMzJ8MCxSZT1zdCsxNnwwLGF0PXN0LChjfD0wKT8oQ3koaywuNSooKEc9K19b''@;'; put 'put ''YysxNj4+M10pKyhiPStfW2M+PjNdKSksLjUqKChxPStfW2MrMjQ+PjNdKSsoZ2U9K19bYys4Pj4zXSkpKSxhW1N0Pj4yXT1hW2s+PjJdLGFbU3QrND4+Ml09YVtrKzQ+PjJdLGFbU3QrOD4+Ml09YVtrKzg+PjJdLGFbU3QrMTI+PjJdPWFbaysxMj4+Ml0saz0xLFdlPVN0LHc9K19bU3Q+PjNd''@;'; put 'put ''LGt0PUV0PVN0Kzh8MCxwZT0rX1tFdD4+M10pOihhW1N0Pj4yXT0wLGFbU3QrND4+Ml09MCxhW1N0Kzg+PjJdPTAsYVtTdCsxMj4+Ml09MCxrPTA9PSgxJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdfDApLEc9LjUqK19bODArKFdlPTB8YVtsKzE2Pj4yXSk+PjNdLHc9K19bV2Ur''@;'; put 'put ''ODg+PjNdLGdlPWs/Rzp3LEc9az93Okcsaz0wLFdlPVN0LHc9MCxiPS1HLHE9Z2Usa3Q9U3QrOHwwLHBlPTAsZ2U9LWdlKSxiZT00KihHPnE/RzpxKTtlOmRve2lmKDAhPSgwfHApJiYoSGU9MHxmZVtwPj4wXSxIZTw8MjQ+PjI0IT0wKSlzd2l0Y2gocD1wKzF8MCxIZTw8MjQ+PjI0fDApe2Nh''@;'; put 'put ''c2UgOTk6Uj0xLG09MCxwPTAsTT0wLHc9MCxEPTA7YnJlYWsgZTtjYXNlIDEwMTppZigwfGZlW3A+PjBdKXtSPTEsbT0wLHA9MCxNPTAsdz0wLEQ9MTticmVhayBlfUE/KGVnKFZlLEEscGUsYmUpLGFbU3Q+PjJdPWFbVmU+PjJdLGFbU3QrND4+Ml09YVtWZSs0Pj4yXSxhW1N0Kzg+PjJdPWFb''@;'; put 'put ''VmUrOD4+Ml0sYVtTdCsxMj4+Ml09YVtWZSsxMj4+Ml0pOl9bV2U+PjNdPUcsUj0wLG0mPTIscD0wLE09MSx3PTAsRD0wLGs9MTticmVhayBlO2Nhc2UgMTE1OnN3aXRjaChfW2t0Pj4zXT1nZSwwfGZlW3A+PjBdKXtjYXNlIDA6QT8oZWcocWUsQSwtYmUsdyksYVtTdD4+Ml09YVtxZT4+Ml0s''@;'; put 'put ''YVtTdCs0Pj4yXT1hW3FlKzQ+PjJdLGFbU3QrOD4+Ml09YVtxZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW3FlKzEyPj4yXSk6X1tXZT4+M109dyxSPTAsbSY9MSxwPTAsTT0xLHc9LTEuNTcwNzk2MzI2Nzk0ODk2NixEPTAsaz0xO2JyZWFrIGU7Y2FzZSAxMDE6QT8oZWcoTSxBLC1iZSxiZSksYVtT''@;'; put 'put ''dD4+Ml09YVtNPj4yXSxhW1N0KzQ+PjJdPWFbTSs0Pj4yXSxhW1N0Kzg+PjJdPWFbTSs4Pj4yXSxhW1N0KzEyPj4yXT1hW00rMTI+PjJdKTpfW1dlPj4zXT1HLFI9MCxtJj0zLHA9MCxNPTEsdz0tLjc4NTM5ODE2MzM5NzQ0ODMsRD0wLGs9MTticmVhayBlO2Nhc2UgMTE5OkE/KGVnKEQsQSxi''@;'; put 'put ''ZT0tYmUsYmUpLGFbU3Q+PjJdPWFbRD4+Ml0sYVtTdCs0Pj4yXT1hW0QrND4+Ml0sYVtTdCs4Pj4yXT1hW0QrOD4+Ml0sYVtTdCsxMj4+Ml09YVtEKzEyPj4yXSk6X1tXZT4+M109YixSPTAsbSY9OSxwPTAsTT0xLHc9LTIuMzU2MTk0NDkwMTkyMzQ1LEQ9MCxrPTE7YnJlYWsgZTtkZWZhdWx0''@;'; put 'put ''Ol9ba3Q+PjNdPXBlLFI9MSxtPTAscD0wLE09MCx3PTAsRD0xO2JyZWFrIGV9Y2FzZSAxMTk6aWYoMHxmZVtwPj4wXSl7Uj0xLG09MCxwPTAsTT0wLHc9MCxEPTE7YnJlYWsgZX1BPyhlZyhSLEEscGUsLWJlKSxhW1N0Pj4yXT1hW1I+PjJdLGFbU3QrND4+Ml09YVtSKzQ+PjJdLGFbU3QrOD4+''@;'; put 'put ''Ml09YVtSKzg+PjJdLGFbU3QrMTI+PjJdPWFbUisxMj4+Ml0pOl9bV2U+PjNdPWIsUj0wLG0mPTgscD0wLE09MSx3PTMuMTQxNTkyNjUzNTg5NzkzLEQ9MCxrPTE7YnJlYWsgZTtjYXNlIDExMDpzd2l0Y2goX1trdD4+M109cSwwfGZlW3A+PjBdKXtjYXNlIDA6QT8oZWcoT2UsQSxiZSx3KSxh''@;'; put 'put ''W1N0Pj4yXT1hW09lPj4yXSxhW1N0KzQ+PjJdPWFbT2UrND4+Ml0sYVtTdCs4Pj4yXT1hW09lKzg+PjJdLGFbU3QrMTI+PjJdPWFbT2UrMTI+PjJdKTpfW1dlPj4zXT13LFI9MCxtJj00LHA9MCxNPTEsdz0xLjU3MDc5NjMyNjc5NDg5NjYsRD0wLGs9MTticmVhayBlO2Nhc2UgMTAxOkE/KGVn''@;'; put 'put ''KExlLEEsYmUsYmUpLGFbU3Q+PjJdPWFbTGU+PjJdLGFbU3QrND4+Ml09YVtMZSs0Pj4yXSxhW1N0Kzg+PjJdPWFbTGUrOD4+Ml0sYVtTdCsxMj4+Ml09YVtMZSsxMj4+Ml0pOl9bV2U+PjNdPUcsUj0wLG0mPTYscD0wLE09MSx3PS43ODUzOTgxNjMzOTc0NDgzLEQ9MCxrPTE7YnJlYWsgZTtj''@;'; put 'put ''YXNlIDExOTpBPyhlZyhSZSxBLGJlLC1iZSksYVtTdD4+Ml09YVtSZT4+Ml0sYVtTdCs0Pj4yXT1hW1JlKzQ+PjJdLGFbU3QrOD4+Ml09YVtSZSs4Pj4yXSxhW1N0KzEyPj4yXT1hW1JlKzEyPj4yXSk6X1tXZT4+M109YixSPTAsbSY9MTIscD0wLE09MSx3PTIuMzU2MTk0NDkwMTkyMzQ1LEQ9''@;'; put 'put ''MCxrPTE7YnJlYWsgZTtkZWZhdWx0Ol9ba3Q+PjNdPXBlLFI9MSxtPTAscD0wLE09MCx3PTAsRD0xO2JyZWFrIGV9Y2FzZSA5NTpSPTEscD0xLE09MCx3PTAsRD0wO2JyZWFrIGU7ZGVmYXVsdDpSPTEsbT0wLHA9MCxNPTAsdz0wLEQ9MTticmVhayBlfWVsc2UgUj0xLG09MCxwPTAsTT0wLHc9''@;'; put 'put ''MCxEPTB9d2hpbGUoMCk7cmV0dXJuIEV0PTkwKigzJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdKXwwLGFbcnQ+PjJdPWFbU3Q+PjJdLGFbcnQrND4+Ml09YVtTdCs0Pj4yXSxhW3J0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtydCsxMj4+Ml09YVtTdCsxMj4+Ml0sUUkoYXQscnQsRXQp''@;'; put 'put ''LGFbU3Q+PjJdPWFbYXQ+PjJdLGFbU3QrND4+Ml09YVthdCs0Pj4yXSxhW1N0Kzg+PjJdPWFbYXQrOD4+Ml0sYVtTdCsxMj4+Ml09YVthdCsxMj4+Ml0scDw8MjQ+PjI0fHwobT0wfGZ1bmN0aW9uIFVhZShsLGMpe2x8PTAsY3w9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMzpzd2l0Y2goMHxs''@;'; put 'put ''KXtjYXNlIDQ6bD0yO2JyZWFrIGU7Y2FzZSAxOmw9ODticmVhayBlO2Nhc2UgODpsPTE7YnJlYWsgZTtjYXNlIDI6bD00O2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfWNhc2UgMjpzd2l0Y2goMHxsKXtjYXNlIDQ6bD0xO2JyZWFrIGU7Y2FzZSAxOmw9NDticmVhayBlO2RlZmF1bHQ6YnJlYWsg''@;'; put 'put ''ZX1jYXNlIDE6c3dpdGNoKDB8bCl7Y2FzZSA0Omw9MjticmVhayBlO2Nhc2UgMTpsPTg7YnJlYWsgZTtjYXNlIDg6bD00O2JyZWFrIGU7Y2FzZSAyOmw9MTticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19fXdoaWxlKDApO3JldHVybiAwfGx9KG0sMyZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+''@;'; put 'put ''Ml0pPj4yXSkpLGZlW2YrMzM+PjBdPW0sYVtmKzI0Pj4yXT1jLF9bZj4+M109KygwfH5+KChiPStfW1dlPj4zXSkrKGI+PTA/LjU6LS41KSkpLF9bZis4Pj4zXT0rKDB8fn4oKGI9K19ba3Q+PjNdKSsoYj49MD8uNTotLjUpKSksX1tmKzE2Pj4zXT0rZnVuY3Rpb24gUWFlKGwsYyl7c3dpdGNo''@;'; put 'put ''KGw9K2wsMHwoY3w9MCkpe2Nhc2UgMzozLjE0MTU5MjY1MzU4OTc5MyE9bD8yLjM1NjE5NDQ5MDE5MjM0NSE9bD8xLjU3MDc5NjMyNjc5NDg5NjYhPWw/MCE9bD8tLjc4NTM5ODE2MzM5NzQ0ODMhPWw/LTEuNTcwNzk2MzI2Nzk0ODk2Nj09bCYmKGw9My4xNDE1OTI2NTM1ODk3OTMpOmw9Mi4z''@;'; put 'put ''NTYxOTQ0OTAxOTIzNDU6bD0xLjU3MDc5NjMyNjc5NDg5NjY6bD0wOmw9LS43ODUzOTgxNjMzOTc0NDgzOmw9LTEuNTcwNzk2MzI2Nzk0ODk2NjticmVhaztjYXNlIDI6bD0tbDticmVhaztjYXNlIDE6bCs9LTEuNTcwNzk2MzI2Nzk0ODk2Nn1yZXR1cm4rbH0odywzJmFbMTE2KygwfGFbMTYr''@;'; put 'put ''KDB8Y3IobCkpPj4yXSk+PjJdKSxtPTA9PShiPStfW1dlPj4zXSkmMD09KHc9K19ba3Q+PjNdKT8tMTI4OjI1NSZ+fig0MC43NDM2NjU0MzE1MjUyMSooKGdlPTQuNzEyMzg4OTgwMzg0NjkrKGJlPStVbCgrdywrYikpKT49Ni4yODMxODUzMDcxNzk1ODY/YmUrLTEuNTcwNzk2MzI2Nzk0ODk2''@;'; put 'put ''NjpnZSkpLGZlW2YrMzI+PjBdPW0sZmVbZisyOT4+MF09TSxmZVtmKzI4Pj4wXT1rLGZlW2YrMzA+PjBdPVIsZmVbZiszMT4+MF09cCxsZT1zdCwwfER9ZnVuY3Rpb24gZUoobCxjKXt2YXIgZixwO2N8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPTB8dGkobHw9MCksYVtwKzQ+PjJd''@;'; put 'put ''PWMsJHIoMCwxMDY0MTkscCksbGU9Zn1mdW5jdGlvbiBlZyhsLGMsZixwKXtsfD0wLGY9K2YscD0rcDt2YXIgbSxBLHcsYixrLEQsUixHLHEsTT0wO0c9bGUsbGU9bGUrMTI4fDAsQT1HKzExMnwwLGI9Rys0OHwwLGs9RysxNnwwLE09RyszMnwwLEQ9Ryx3PTMmYVsxMTYrKDB8YVsxNisoMHxj''@;'; put 'put ''cihSPTB8YVsoY3w9MCk+PjJdKSk+PjJdKT4+Ml0sX1trPj4zXT1wLF9bays4Pj4zXT1mLChtPTAhPSgwfHcpKSYmKGFbQT4+Ml09YVtrPj4yXSxhW0ErND4+Ml09YVtrKzQ+PjJdLGFbQSs4Pj4yXT1hW2srOD4+Ml0sYVtBKzEyPj4yXT1hW2srMTI+PjJdLFFJKE0sQSw5MCp3fDApLGFbaz4+''@;'; put 'put ''Ml09YVtNPj4yXSxhW2srND4+Ml09YVtNKzQ+PjJdLGFbays4Pj4yXT1hW00rOD4+Ml0sYVtrKzEyPj4yXT1hW00rMTI+PjJdKSxNPWIrNDh8MCxxPWIrMzJ8MCxhW2I+PjJdPTAsYVtiKzQ+PjJdPTAsYVtiKzg+PjJdPTAsYVtiKzEyPj4yXT0wLGFbYisxNj4+Ml09MCxhW2IrMjA+PjJdPTAs''@;'; put 'put ''YVtiKzI0Pj4yXT0wLGFbYisyOD4+Ml09MCxhW3E+PjJdPWFbaz4+Ml0sYVtxKzQ+PjJdPWFbays0Pj4yXSxhW3ErOD4+Ml09YVtrKzg+PjJdLGFbcSsxMj4+Ml09YVtrKzEyPj4yXSxhW00+PjJdPWFbaz4+Ml0sYVtNKzQ+PjJdPWFbays0Pj4yXSxhW00rOD4+Ml09YVtrKzg+PjJdLGFbTSsx''@;'; put 'put ''Mj4+Ml09YVtrKzEyPj4yXSx0RChjLDB8YVsxMisoMHxhWzQrKDB8YVs4KygwfGFbUisxNj4+Ml0pPj4yXSk+PjJdKT4+Ml0sYiwxKSxtJiYoYVtBPj4yXT1hW2I+PjJdLGFbQSs0Pj4yXT1hW2IrND4+Ml0sYVtBKzg+PjJdPWFbYis4Pj4yXSxhW0ErMTI+PjJdPWFbYisxMj4+Ml0sVTYoRCxB''@;'; put 'put ''LDkwKnd8MCksYVtiPj4yXT1hW0Q+PjJdLGFbYis0Pj4yXT1hW0QrND4+Ml0sYVtiKzg+PjJdPWFbRCs4Pj4yXSxhW2IrMTI+PjJdPWFbRCsxMj4+Ml0pLGFbbD4+Ml09YVtiPj4yXSxhW2wrND4+Ml09YVtiKzQ+PjJdLGFbbCs4Pj4yXT1hW2IrOD4+Ml0sYVtsKzEyPj4yXT1hW2IrMTI+PjJd''@;'; put 'put ''LGxlPUd9ZnVuY3Rpb24gckoobCxjLGYpe2x8PTAsY3w9MDt2YXIgRCxSLEcscSxwZSxnZSxiZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKGJlPWxlLGxlPWxlKzE0NHwwLFI9YmUrMTI4fDAsRD1iZSsxMTJ8MCxHPWJlKzE2fDAscT1iZSxtPWJlKzk2fDAsQT1iZSs4MHwwLHBl''@;'; put 'put ''PWJlKzY0fDAsZ2U9YmUrNDh8MCwocD0wfGFbKHc9NTIrKGZ8PTApfDApPj4yXSk/KE09cCs1NnwwLHA9ZiszMnwwLGFbRD4+Ml09YVsoaz1mKzE2fDApPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4yXT1hW2srMTI+PjJdLGFbUj4+Ml09YVtw''@;'; put 'put ''Pj4yXSxhW1IrND4+Ml09YVtwKzQ+PjJdLGFbUis4Pj4yXT1hW3ArOD4+Ml0sYVtSKzEyPj4yXT1hW3ArMTI+PjJdLGZ1bmN0aW9uIHFhZShsLGMsZil7dmFyIHA7cD0uNSooK19bOCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10pLF9bKGx8PTApPj4zXT0uNSooK19bZj4+M10rICtfW2M+''@;'; put 'put ''PjNdKSxfW2wrOD4+M109cH0obSxELFIpLGs9MTYrKDB8YVsocD1jKzE2fDApPj4yXSl8MCxhW0Q+PjJdPWFbbT4+Ml0sYVtEKzQ+PjJdPWFbbSs0Pj4yXSxhW0QrOD4+Ml09YVttKzg+PjJdLGFbRCsxMj4+Ml09YVttKzEyPj4yXSxhW1I+PjJdPWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0Pj4y''@;'; put 'put ''XSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtrKzEyPj4yXSxxNShBLEQsUiksYVtNPj4yXT1hW0E+PjJdLGFbTSs0Pj4yXT1hW0ErND4+Ml0sYVtNKzg+PjJdPWFbQSs4Pj4yXSxhW00rMTI+PjJdPWFbQSsxMj4+Ml0sYjcobCwxMCwwfGFbdz4+Ml0pLFN5KGwsYykpOnA9Yysx''@;'; put 'put ''NnwwLGFbcT4+Ml09YVsoYj0xNisoMHxhW3A+PjJdKXwwKT4+Ml0sYVtxKzQ+PjJdPWFbYis0Pj4yXSxhW3ErOD4+Ml09YVtiKzg+PjJdLGFbcSsxMj4+Ml09YVtiKzEyPj4yXSxiPWYrNDh8MCxrPWYrNjR8MCxNPUcrMTZ8MCx3PWYrNTZ8MCxmPUcrMTZ8MCxBPTA7ISgoMHxBKT49KDB8YVti''@;'; put 'put ''Pj4yXSkpOykoMHxBKT4wJiYobT0wfGFbKHA9KDB8YVt3Pj4yXSkrKEE8PDIpfDApPj4yXSwwfGZlW2s+PjBdPyhhW0c+PjJdPWFbKG09bSsxNnwwKT4+Ml0sYVtHKzQ+PjJdPWFbbSs0Pj4yXSxhW0crOD4+Ml09YVttKzg+PjJdLGFbRysxMj4+Ml09YVttKzEyPj4yXSxfW2Y+PjNdPStfW0c+''@;'; put 'put ''PjNdLHA9MzIrKDB8YVtwPj4yXSl8MCxtPTEpOihhW00+PjJdPWFbKG09bSszMnwwKT4+Ml0sYVtNKzQ+PjJdPWFbbSs0Pj4yXSxhW00rOD4+Ml09YVttKzg+PjJdLGFbTSsxMj4+Ml09YVttKzEyPj4yXSxfW0c+PjNdPStfWzE2KygwfGFbcD4+Ml0pPj4zXSxwPU0sbT0wKSxfW0crKG08PDQp''@;'; put 'put ''Kzg+PjNdPStfW3ArOD4+M10sYVtEPj4yXT1hW0c+PjJdLGFbRCs0Pj4yXT1hW0crND4+Ml0sYVtEKzg+PjJdPWFbRys4Pj4yXSxhW0QrMTI+PjJdPWFbRysxMj4+Ml0sYVtSPj4yXT1hW3E+PjJdLGFbUis0Pj4yXT1hW3ErND4+Ml0sYVtSKzg+PjJdPWFbcSs4Pj4yXSxhW1IrMTI+PjJdPWFb''@;'; put 'put ''cSsxMj4+Ml0scTUocGUsRCxSKSxhW0c+PjJdPWFbcGU+PjJdLGFbRys0Pj4yXT1hW3BlKzQ+PjJdLGFbRys4Pj4yXT1hW3BlKzg+PjJdLGFbRysxMj4+Ml09YVtwZSsxMj4+Ml0sYVtEPj4yXT1hW00+PjJdLGFbRCs0Pj4yXT1hW00rND4+Ml0sYVtEKzg+PjJdPWFbTSs4Pj4yXSxhW0QrMTI+''@;'; put 'put ''PjJdPWFbTSsxMj4+Ml0sYVtSPj4yXT1hW3E+PjJdLGFbUis0Pj4yXT1hW3ErND4+Ml0sYVtSKzg+PjJdPWFbcSs4Pj4yXSxhW1IrMTI+PjJdPWFbcSsxMj4+Ml0scTUoZ2UsRCxSKSxhW00+PjJdPWFbZ2U+PjJdLGFbTSs0Pj4yXT1hW2dlKzQ+PjJdLGFbTSs4Pj4yXT1hW2dlKzg+PjJdLGFb''@;'; put 'put ''TSsxMj4+Ml09YVtnZSsxMj4+Ml0sV28obCxHLDIpKSxySihsLGMsMHxhWygwfGFbdz4+Ml0pKyhBPDwyKT4+Ml0pLEE9QSsxfDA7bGU9YmV9ZnVuY3Rpb24gaUoobCxjKXtjfD0wO3ZhciBmPTAscD0wLG09MDswIT0oMHwoZj0wfGFbNjArKGx8PTApPj4yXSkpJiYoMHxmZVtmPj4wXSk9PSgw''@;'; put 'put ''fGZlW2M+PjBdKSYmMD09KDB8WmkoZixjKSl8fChwPTQpO2U6ZG97aWYoND09KDB8cCkpZm9yKG09bCs1NnwwLHA9MHxhW2wrNDg+PjJdLGY9MDs7KXtpZigoMHxmKT49KDB8cCkpe2w9MDticmVhayBlfWlmKGw9MHxpSigwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSxjKSlicmVhaztmPWYr''@;'; put 'put ''MXwwfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIG9KKGwsYyl7bHw9MCxjfD0wO3ZhciBnZSxiZSxPZSxMZSxSZSxIZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wO0hlPWxlLGxlPWxlKzE0NHwwLE9lPUhlKzExMnwwLGJlPUhlKzk2''@;'; put 'put ''fDAsTGU9SGUrODB8MCxnZT1IZSs2NHwwLFJlPUhlKzMyfDAscT1IZSsxNnwwLHBlPUhlLEE9SGUrNDh8MDtkb3tpZihsKXtpZihiPTB8YVtsKzQ+PjJdLFI9OTAqKDMmYVsxMTYrKDB8YVsxNisoMHxjcihrPTB8YVtsPj4yXSkpPj4yXSk+PjJdKXwwLGFbT2U+PjJdPWFbYz4+Ml0sYVtPZSs0''@;'; put 'put ''Pj4yXT1hW2MrND4+Ml0sYVtPZSs4Pj4yXT1hW2MrOD4+Ml0sYVtPZSsxMj4+Ml09YVtjKzEyPj4yXSxVNihBLE9lLFIpLGFbUmU+PjJdPWFbQT4+Ml0sYVtSZSs0Pj4yXT1hW0ErND4+Ml0sYVtSZSs4Pj4yXT1hW0ErOD4+Ml0sYVtSZSsxMj4+Ml09YVtBKzEyPj4yXSwwfGIpe2lmKCEoK19b''@;'; put 'put ''Yj4+M108PShmPStfW1JlPj4zXSkpKXtsPTA7YnJlYWt9aWYoIShmPD0rX1tiKzE2Pj4zXSkpe2w9MDticmVha31pZighKCtfW2IrOD4+M108PShmPStfW1JlKzg+PjNdKSkpe2w9MDticmVha31sPWY8PStfW2IrMjQ+PjNdO2JyZWFrfWlmKCgwfGspPT0oMHxhWzQ3MjkyXSk/KGY9K19bMjMz''@;'; put 'put ''MDldLHA9K19bMjMzMTBdLHc9K19bMjMzMTFdKTooYVs0NzI5M109Yz0wfGFbMTIrKDB8YVsobD1rKzE2fDApPj4yXSk+PjJdLGFbNDcyOTRdPWFbYys0ND4+Ml0sYVs0NzI5NV09YVtjKzg+PjJdLDIwNDgmYVtjKzQwPj4yXT8odkooT2UsYyksdz0rX1tPZSsxNj4+M10tK19bT2U+PjNdLG09''@;'; put 'put ''K19bT2UrMjQ+PjNdLStfW09lKzg+PjNdLFI9MD09KDEmYVsxMTYrKDB8YVsxNisoMHxjcihrKSk+PjJdKT4+Ml18MCksX1soUj8xODY0OTY6MTg2NTA0KT4+M109dyxfWyhSPzE4NjUwNDoxODY0OTYpPj4zXT1tKTooRD0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGspKT4+Ml0pPj4yXXww''@;'; put 'put ''KSxfWyhEPzE4NjQ5NjoxODY1MDQpPj4zXT0rX1s5NisoUj0wfGFbbD4+Ml0pPj4zXSsgK19bUis4OD4+M10sX1soRD8xODY1MDQ6MTg2NDk2KT4+M109K19bUis4MD4+M10sbT0rKDB8fn4oKG09NzIqK19bUis0MD4+M10pKyhtPj0wPy41Oi0uNSkpKSx3PSsoMHx+figodz03MiorX1tSKzMy''@;'; put 'put ''Pj4zXSkrKHc+PTA/LjU6LS41KSkpKSwwPT0oZj0rX1syMzMxMl0pJiYoX1syMzMxMl09MSxmPTEpLDA9PShwPStfWzIzMzEzXSkmJihfWzIzMzEzXT0xLHA9MSksX1syMzMwOV09Zj13L2YsX1syMzMxMF09cD1tL3AsX1syMzMxMV09dyo9LjUsX1syMzMxNF09LjUqbSxSPTB8QXIoKDB8YVs0''@;'; put 'put ''KygwfGFbNDcyOTNdKT4+Ml0pLTF8MCwwfGFbNDcyOTVdKSxhWzQ3Mjk2XT0oMHxSKT4wP1I6MCxhWzQ3MjkyXT1rKSxfW1JlPj4zXT1tPStfW1JlPj4zXSpmLF9bKFI9UmUrOHwwKT4+M109Zj0rX1tSPj4zXSpwLCtlbygrbSk+d3x8KHA9K2VvKCtmKSk+KEc9K19bMjMzMTRdKSlsPTA7ZWxz''@;'; put 'put ''ZXtpZigoMHwoUj0wfGFbNDcyOTVdKSk8Myl7bD0rJHkobS93LGYvRyk8MTticmVha31pZihsPSgxKyhjPSgwfGFbNDcyOTddKSUoMHxSKXwwKXwwKSUoMHxSKXwwLGFbcT4+Ml09YVsoRD0oaz0wfGFbNDcyOTRdKSsoKE09MHxhWzQ3Mjk2XSkrYzw8NCl8MCk+PjJdLGFbcSs0Pj4yXT1hW0Qr''@;'; put 'put ''ND4+Ml0sYVtxKzg+PjJdPWFbRCs4Pj4yXSxhW3ErMTI+PjJdPWFbRCsxMj4+Ml0sYVtwZT4+Ml09YVsoRD1rKyhNK2w8PDQpfDApPj4yXSxhW3BlKzQ+PjJdPWFbRCs0Pj4yXSxhW3BlKzg+PjJdPWFbRCs4Pj4yXSxhW3BlKzEyPj4yXT1hW0QrMTI+PjJdLGFbZ2U+PjJdPWFbUmU+PjJdLGFb''@;'; put 'put ''Z2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtMZT4+Ml09YVs0NjYzMF0sYVtMZSs0Pj4yXT1hWzQ2NjMxXSxhW0xlKzg+PjJdPWFbNDY2MzJdLGFbTGUrMTI+PjJdPWFbNDY2MzNdLGFbYmU+PjJdPWFbcT4+Ml0sYVti''@;'; put 'put ''ZSs0Pj4yXT1hW3ErND4+Ml0sYVtiZSs4Pj4yXT1hW3ErOD4+Ml0sYVtiZSsxMj4+Ml09YVtxKzEyPj4yXSxhW09lPj4yXT1hW0Q+PjJdLGFbT2UrND4+Ml09YVtEKzQ+PjJdLGFbT2UrOD4+Ml09YVtEKzg+PjJdLGFbT2UrMTI+PjJdPWFbRCsxMj4+Ml0sMHxFeShnZSxMZSxiZSxPZSkpe2lm''@;'; put 'put ''KGFbZ2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtMZT4+Ml09YVtxPj4yXSxhW0xlKzQ+PjJdPWFbcSs0Pj4yXSxhW0xlKzg+PjJdPWFbcSs4Pj4yXSxhW0xlKzEyPj4yXT1hW3ErMTI+''@;'; put 'put ''PjJdLGFbYmU+PjJdPWFbcGU+PjJdLGFbYmUrND4+Ml09YVtwZSs0Pj4yXSxhW2JlKzg+PjJdPWFbcGUrOD4+Ml0sYVtiZSsxMj4+Ml09YVtwZSsxMj4+Ml0sYVtPZT4+Ml09YVs0NjYzMF0sYVtPZSs0Pj4yXT1hWzQ2NjMxXSxhW09lKzg+PjJdPWFbNDY2MzJdLGFbT2UrMTI+PjJdPWFbNDY2''@;'; put 'put ''MzNdLChEPTAhPSgwfEV5KGdlLExlLGJlLE9lKSkpJiYoYVtnZT4+Ml09YVtSZT4+Ml0sYVtnZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW0xlPj4yXT1hW3BlPj4yXSxhW0xlKzQ+PjJdPWFbcGUrND4+Ml0sYVtMZSs4''@;'; put 'put ''Pj4yXT1hW3BlKzg+PjJdLGFbTGUrMTI+PjJdPWFbcGUrMTI+PjJdLGFbYmU+PjJdPWFbNDY2MzBdLGFbYmUrND4+Ml09YVs0NjYzMV0sYVtiZSs4Pj4yXT1hWzQ2NjMyXSxhW2JlKzEyPj4yXT1hWzQ2NjMzXSxhW09lPj4yXT1hW3E+PjJdLGFbT2UrND4+Ml09YVtxKzQ+PjJdLGFbT2UrOD4+''@;'; put 'put ''Ml09YVtxKzg+PjJdLGFbT2UrMTI+PjJdPWFbcSsxMj4+Ml0sMCE9KDB8RXkoZ2UsTGUsYmUsT2UpKSkpe2w9MTticmVha31mb3IoYj1jLGM9MTs7KXtpZigoMHxjKT49KDB8Uikpe2M9MzE7YnJlYWt9aWYoRD8oQT1sLGw9KGwrMXwwKSUoMHxSKXwwKTooQT0oYistMStSfDApJSgwfFIpfDAs''@;'; put 'put ''bD1iKSxxPWsrKE0rQTw8NCl8MCxwZT1rKyhNK2w8PDQpfDAsYVtnZT4+Ml09YVtSZT4+Ml0sYVtnZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxhW0xlPj4yXT1hWzQ2NjMwXSxhW0xlKzQ+PjJdPWFbNDY2MzFdLGFbTGUr''@;'; put 'put ''OD4+Ml09YVs0NjYzMl0sYVtMZSsxMj4+Ml09YVs0NjYzM10sYVtiZT4+Ml09YVtxPj4yXSxhW2JlKzQ+PjJdPWFbcSs0Pj4yXSxhW2JlKzg+PjJdPWFbcSs4Pj4yXSxhW2JlKzEyPj4yXT1hW3ErMTI+PjJdLGFbT2U+PjJdPWFbcGU+PjJdLGFbT2UrND4+Ml09YVtwZSs0Pj4yXSxhW09lKzg+''@;'; put 'put ''PjJdPWFbcGUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtwZSsxMj4+Ml0sISgwfEV5KGdlLExlLGJlLE9lKSkpe2M9MzA7YnJlYWt9Yj1BLGM9YysxfDB9aWYoMzA9PSgwfGMpKXthWzQ3Mjk3XT1BLGw9MDticmVha31pZigzMT09KDB8Yykpe2FbNDcyOTddPWIsbD0xO2JyZWFrfX1lbHNlIGw9MH19''@;'; put 'put ''ZWxzZSBhWzQ3MjkyXT0wLGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9SGUsMSZsfDB9ZnVuY3Rpb24gZk4obCxjKXtjfD0wO3ZhciBtLGIsZj0wLHA9MCxBPTAsdz0wLGs9MDtyZXR1cm4gYj1sZSxsZT1sZSszMnwwLG09YisxNnwwLHc9YiwobHw9MCk/KGs9OTAqKDMmYVsxMTYrKDB8YVsxNiso''@;'; put 'put ''MHxjcihsPTB8YVtsPj4yXSkpPj4yXSk+PjJdKXwwLGFbbT4+Ml09YVtjPj4yXSxhW20rND4+Ml09YVtjKzQ+PjJdLGFbbSs4Pj4yXT1hW2MrOD4+Ml0sYVttKzEyPj4yXT1hW2MrMTI+PjJdLFU2KHcsbSxrKSxBPStfW3c+PjNdLHA9K19bdys4Pj4zXSwoMHxsKT09KDB8YVs0NzMwMF0pP2Y9''@;'; put 'put ''K19bMjMzMTddOihfWzIzMzE3XT1mPStfWygwfGFbNDQrKHc9MHxhWzEyKygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKSsoKDF8KCgwfChrPShhW3crND4+Ml08PDEpLTJ8MCkpPjA/azowKSk8PDQpPj4zXSxhWzQ3MzAwXT1sKSxsPStlbygrQSk+ZnwrZW8oK3ApPmY/MDorJHkoQSxwKTw9ZiYx''@;'; put 'put ''KTooYVs0NzMwMF09MCxsPTApLGxlPWIsMHxsfWZ1bmN0aW9uIHh5KGwsYyxmLHApe3ZhciBtLEE7bHw9MCxtPWxlLGxlPWxlKzQ4fDAsQT1tLGY9MHxmdW5jdGlvbiBybGUobCxjLGYpe2N8PTAsZnw9MDt2YXIgVmUscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9''@;'; put 'put ''MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLHFlPTAscnQ9MCxXZT0wO1ZlPWxlLGxlPWxlKzMyfDAsSGU9VmUsbT1WZSsyNHwwLGI9VmUrMTZ8MCxSZT0zJmFbMTE2KygwfGFbMTYrKDB8YVs2MCsoMHxjcihsfD0wKSk+PjJdKT4+Ml0pPj4yXSxhW0hlPj4yXT1hWyhMZT0x''@;'; put 'put ''NisoMHxhWyhwPWwrMTZ8MCk+PjJdKXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbSGUrOD4+Ml09YVtMZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW0xlKzEyPj4yXSxhSihtLEhlLFJlKSxhW0hlPj4yXT1hWyhMZT0xNisoMHxhW2MrMTY+PjJdKXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW0xl''@;'; put 'put ''KzQ+PjJdLGFbSGUrOD4+Ml09YVtMZSs4Pj4yXSxhW0hlKzEyPj4yXT1hW0xlKzEyPj4yXSxhSihiLEhlLFJlKSxIZT0yNTUmKFJlPTB8ZmVbZiszMz4+MF0pO2U6ZG97c3dpdGNoKFJlPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDE1OmM9MDticmVhaztkZWZhdWx0OmZvcigoYz0wfGFbZisyND4+''@;'; put 'put ''Ml0pPyhNPStfW2M+PjNdLEE9K19bYysxNj4+M10saz0rX1tjKzI0Pj4zXSx3PStfW2MrOD4+M10pOihSZT0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXXwwKSxxZT0tKHJ0PS41KitfWzgwKyhMZT0wfGFbcD4+Ml0pPj4zXSksdz0tKGs9K19bTGUrODg+PjNdKSxNPVJl''@;'; put 'put ''P3c6cWUsQT1SZT9rOnJ0LGs9UmU/cnQ6ayx3PVJlP3FlOncpLFJlPTB8YVttPj4yXSxPZT0wfGFbbSs0Pj4yXSxMZT0wfGFbYj4+Ml0scGU9MHxhW2IrND4+Ml0sZ2U9fn53LGJlPX5+KC41KihBK00pKSxxPX5+QSxHPX5+KC41KihrK3cpKSxSPX5+ayxEPX5+TSxtPTAsYj0wLGM9MCxmPTAs''@;'; put 'put ''bD0wOzspe2lmKDQ9PSgwfGIpKWJyZWFrIGU7aWYoMTw8YiZIZSl7c3dpdGNoKDB8Yil7Y2FzZSAwOmY9YmUsbD1nZTticmVhaztjYXNlIDE6Zj1xLGw9RzticmVhaztjYXNlIDI6Zj1iZSxsPVI7YnJlYWs7Y2FzZSAzOmY9RCxsPUd9cD0oZj1SZStmfDApLUxlfDAsMD09KDB8Yyl8KDB8KHA9''@;'; put 'put ''KDB8QXIoV2U9KGw9T2UrbHwwKS1wZXwwLFdlKSkrKDB8QXIocCxwKSl8MCkpPCgwfG0pP2M9MHxhWzIyMDI4KyhiPDwyKT4+Ml06cD1tfWVsc2UgcD1tO209cCxiPWIrMXwwfX19d2hpbGUoMCk7cmV0dXJuIGxlPVZlLDB8Y30oY3w9MCxmfD0wLHB8PTApLGFbQSszNj4+Ml09YVtwKzM2Pj4y''@;'; put 'put ''XSxtayhjLDB8YVtwKzI0Pj4yXSxBLGYsMHxYdFtwKzMzPj4wXSwwKSxjPUEsZj1sKzQwfDA7ZG97YVtsPj4yXT1hW2M+PjJdLGw9bCs0fDAsYz1jKzR8MH13aGlsZSgoMHxsKTwoMHxmKSk7bGU9bX1mdW5jdGlvbiBhSihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wO3N3aXRjaCgwfChm''@;'; put 'put ''fD0wKSl7Y2FzZSAwOm09K19bYz4+M10scD0rX1tjKzg+PjNdO2JyZWFrO2Nhc2UgMjptPStfW2M+PjNdLHA9LStfW2MrOD4+M107YnJlYWs7Y2FzZSAxOm09LStfW2MrOD4+M10scD0rX1tjPj4zXTticmVhaztjYXNlIDM6bT0rX1tjKzg+PjNdLHA9K19bYz4+M107YnJlYWs7ZGVmYXVsdDpt''@;'; put 'put ''PTAscD0wfWFbbD4+Ml09fn4obSsobT49MD8uNTotLjUpKSxhW2wrND4+Ml09fn4ocCsocD49MD8uNTotLjUpKX1mdW5jdGlvbiBpbGUobCl7dmFyIG0sQSx3LGM9MCxmPTAscD0wO2lmKHc9bGUsbGU9bGUrODB8MCxwPXcrNDB8MCxBPXcsYz0xNisoZj0wfGFbKG09MTYrKGx8PTApfDApPj4y''@;'; put 'put ''XSl8MCwwfGZlW2YrNDc+PjBdKXt4eShwLDB8YVsoMz09KDB8KGY9MyZhW2w+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSwwfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdLGMpLGY9cCxwPWMrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgw''@;'; put 'put ''fHApKTtmPTB8YVttPj4yXX1pZihjPWYrNTZ8MCwwfGZlW2YrODc+PjBdKXt4eShBLDB8YVsoMj09KDB8KGY9MyZhW2w+PjJdKSk/bDpsKy00OHwwKSs0MD4+Ml0sMHxhWygzPT0oMHxmKT9sOmwrNDh8MCkrNDA+PjJdLGMpLGY9QSxwPWMrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8''@;'; put 'put ''MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgwfHApKX1sZT13fWZ1bmN0aW9uIHREKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBxLGdlLGJlLE9lLExlLFJlLHFlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHBlPTAsSGU9MCxWZT0wLHJ0PTA7Zm9yKHFlPWxlLGxlPWxl''@;'; put 'put ''KzE5MnwwLGdlPXFlKzE3NnwwLEhlPXFlKzExMnwwLFZlPXFlKzQ4fDAsYmU9cWUrMzJ8MCxPZT1xZSsyNHwwLExlPXFlKzE2fDAsUmU9cWUsKHB8PTApPDwyND4+MjQ/KGFbYmU+PjJdPWFbZj4+Ml0sYVtiZSs0Pj4yXT1hW2YrND4+Ml0sYVtiZSs4Pj4yXT1hW2YrOD4+Ml0sYVtiZSsxMj4+''@;'; put 'put ''Ml09YVtmKzEyPj4yXSxrPUxlLE09T2UsRD0wLFI9SGUpOihhW2JlPj4yXT1hWyhrPWYrNDh8MCk+PjJdLGFbYmUrND4+Ml09YVtrKzQ+PjJdLGFbYmUrOD4+Ml09YVtrKzg+PjJdLGFbYmUrMTI+PjJdPWFbaysxMj4+Ml0saz1PZSxNPUxlLEQ9SGUsUj0wKSxfW09lPj4zXT0wLF9bTGU+PjNd''@;'; put 'put ''PTEscT1iZSs4fDAsbT0wLEE9MSxiPTAsRz0rX1tiZT4+M107Oyl7cGU9K19bcT4+M10sd3UoUmUsZiwzLG09LjUqKG0rQSksRCxSKSxhW2JlPj4yXT1hW1JlPj4yXSxhW2JlKzQ+PjJdPWFbUmUrND4+Ml0sYVtiZSs4Pj4yXT1hW1JlKzg+PjJdLGFbYmUrMTI+PjJdPWFbUmUrMTI+PjJdLGFb''@;'; put 'put ''Z2U+PjJdPWFbUmU+PjJdLGFbZ2UrND4+Ml09YVtSZSs0Pj4yXSxhW2dlKzg+PjJdPWFbUmUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSZSsxMj4+Ml07ZTpkb3tpZigoMHxCaVsxMjcmY10obCxnZSkpPDwyND4+MjQpcD1NO2Vsc2UgZm9yKHA9MDs7KXtpZig0PT0oMHxwKSl7cD1rLGI9MTticmVh''@;'; put 'put ''ayBlfWFbKGI9VmUrKHA8PDQpfDApPj4yXT1hWyhydD1IZSsocDw8NCl8MCk+PjJdLGFbYis0Pj4yXT1hW3J0KzQ+PjJdLGFbYis4Pj4yXT1hW3J0Kzg+PjJdLGFbYisxMj4+Ml09YVtydCsxMj4+Ml0scD1wKzF8MH19d2hpbGUoMCk7aWYoX1twPj4zXT1tLCEoKChHLT13PStfW2JlPj4zXSk+''@;'; put 'put ''PTA/RzotRyk+LjV8fChwZS09K19bcT4+M10sKHBlPj0wP3BlOi1wZSk+LjUpKSlicmVhazttPStfW09lPj4zXSxBPStfW0xlPj4zXSxHPXd9ZTpkb3tpZihiPDwyND4+MjQpZm9yKHA9MDs7KXtpZig0PT0oMHxwKSlicmVhayBlO2FbKHJ0PWYrKHA8PDQpfDApPj4yXT1hWyhIZT1WZSsocDw8''@;'; put 'put ''NCl8MCk+PjJdLGFbcnQrND4+Ml09YVtIZSs0Pj4yXSxhW3J0Kzg+PjJdPWFbSGUrOD4+Ml0sYVtydCsxMj4+Ml09YVtIZSsxMj4+Ml0scD1wKzF8MH1lbHNlIGZvcihwPTA7Oyl7aWYoND09KDB8cCkpYnJlYWsgZTthWyhydD1mKyhwPDw0KXwwKT4+Ml09YVsoVmU9SGUrKHA8PDQpfDApPj4y''@;'; put 'put ''XSxhW3J0KzQ+PjJdPWFbVmUrND4+Ml0sYVtydCs4Pj4yXT1hW1ZlKzg+PjJdLGFbcnQrMTI+PjJdPWFbVmUrMTI+PjJdLHA9cCsxfDB9fXdoaWxlKDApO2xlPXFlfWZ1bmN0aW9uIGhOKGwsYyxmLHApe3ZhciBtLEEsdyxiLGssTSxEO2ZvcihsfD0wLGZ8PTAscHw9MCxEPWxlLGxlPWxlKzY0''@;'; put 'put ''fDAsTT1ELGs9K19bOTYrKEE9MHxhWyhiPTE2KyhjfD0wKXwwKT4+Ml0pPj4zXSx3PUErMTZ8MCxtPUErMjR8MCxjPTA7NCE9KDB8Yyk7KV9bTSsoYzw8NCk+PjNdPStfW2YrKGM8PDQpPj4zXS0rX1t3Pj4zXSxfW00rKGM8PDQpKzg+PjNdPStfW2YrKGM8PDQpKzg+PjNdLStfW20+PjNdLGM9''@;'; put 'put ''YysxfDA7Zm9yKHREKGwsMHxhWzEyKygwfGFbNCsoMHxhW0ErOD4+Ml0pPj4yXSk+PjJdLE0scCksYz0wOzQhPSgwfGMpOylfW2YrKGM8PDQpPj4zXT0rX1sxNisocD0wfGFbYj4+Ml0pPj4zXSsgK19bTSsoYzw8NCk+PjNdLF9bZisoYzw8NCkrOD4+M109K19bcCsyND4+M10rICtfW00rKGM8''@;'; put 'put ''PDQpKzg+PjNdLGM9YysxfDA7X1s5NisoMHxhW2I+PjJdKT4+M109ayxsZT1EfWZ1bmN0aW9uIGROKGwsYyl7bHw9MCxjfD0wO2Zvcih2YXIgZj0wLHA9MDswfGZlWzExMisobD0wfGFbKHA9bCsxNnwwKT4+Ml0pPj4wXTspbD0wfGFbbCsxMTY+PjJdOyhsPTB8YVtsKzg+PjJdKXx8KGw9MHx2''@;'; put 'put ''cig0MCksYVs4KygwfGFbcD4+Ml0pPj4yXT1sKSxsPShmPTB8YVtsPj4yXSk/MHxWMChmLDQ4Kyg0OCooMHxhW2wrND4+Ml0pfDApfDApOjB8UW4oNDgrKDQ4KigwfGFbbCs0Pj4yXSl8MCl8MCksYVsocD0wfGFbOCsoMHxhW3A+PjJdKT4+Ml0pPj4yXT1sLGFbKHA9cCs0fDApPj4yXT0xKyhm''@;'; put 'put ''PTB8YVtwPj4yXSksYVsocD1sKyg0OCpmfDApfDApPj4yXT0wfHZyKGM8PDQpLGFbbCsoNDgqZnwwKSs0Pj4yXT1jLGY9NDArKGw9bCsoNDgqZnwwKSs4fDApfDA7ZG97YVtsPj4yXT0wLGw9bCs0fDB9d2hpbGUoKDB8bCk8KDB8ZikpO3JldHVybiAwfHB9ZnVuY3Rpb24gQXUobCxjLGYscCxt''@;'; put 'put ''KXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBnZSxMZSxWZSxxZSxXZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGJlPTAsT2U9MCxSZT0wLEhlPTAsYXQ9MCxTdD0wO2ZvcihXZT1sZSxsZT1sZSs5NnwwLFZlPVdlKzE2fDAsZ2U9V2UsTGU9V2UrOTJ8MCxSZT1X''@;'; put 'put ''ZSs4OHwwLGJlPVdlKzgwfDAsSGU9MHxjcihiPTB8YVsoMz09KDMmYVsobHw9MCk+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pLHFlPTB8ZE4obCxwKSxrPWw7MHxmZVsxMTIrKE09MHxhW2srMTY+PjJdKT4+MF07KWs9MHxhW00rMTE2Pj4yXTtpZigwPT0oMHxmZVttKzg+PjBdKSYmKDB8YVsy''@;'; put 'put ''MzIrKEE9MHxhW2IrMTY+PjJdKT4+Ml0pPT0oMHxhWzIzMisodz0wfGFbYysxNj4+Ml0pPj4yXSk/KE9lPShEPSgwfGFbQSsyMzY+PjJdKT4oMHxhW3crMjM2Pj4yXSkpP2I6YyxiPUQ/YzpiKTpPZT1jLCgwfGIpPT0oMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6ays0OHwwKSs0MD4+Ml0pPyhB''@;'; put 'put ''PU0rODB8MCx3PU0rNDB8MCxEPTB8WHRbTSs4Nj4+MF0sYz0wfFh0W00rNDY+PjBdKTooQT1NKzQwfDAsdz1NKzgwfDAsRD0wfFh0W00rNDY+PjBdLGM9MHxYdFtNKzg2Pj4wXSksTT0wfGFbQT4+Ml0sQT0wfGFbdz4+Ml0sMCE9KDB8YykmJjAhPSgwfChSPTB8YVs4KygwfGFbKEc9YisxNnww''@;'; put 'put ''KT4+Ml0pPj4yXSkpJiYwIT0oMHxhWzEyKygwfGFbUis0Pj4yXSk+PjJdKSl7Zm9yKGFbYmU+PjJdPWIsYVtiZSs0Pj4yXT1BLEE9cCstNHwwLGM9Z2UrOHwwLHc9MDshKCgwfHcpPj0oMHxBKSkmJihfW2dlPj4zXT0rX1tmKygoaz13KzN8MCk8PDQpPj4zXS0rX1sxNisoUj0wfGFbRz4+Ml0p''@;'; put 'put ''Pj4zXSxfW2M+PjNdPStfW2YrKGs8PDQpKzg+PjNdLStfW1IrMjQ+PjNdLFI9MHxhWzEyKygwfGFbNCsoMHxhW1IrOD4+Ml0pPj4yXSk+PjJdLGFbVmU+PjJdPWFbZ2U+PjJdLGFbVmUrND4+Ml09YVtnZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtWZSsxMj4+Ml09YVtnZSsxMj4+''@;'; put 'put ''Ml0sKDB8QmlbMTI3JlJdKGJlLFZlKSk8PDI0Pj4yNCk7KXc9azthW0xlPj4yXT13LGhOKGJlLGIsZisodzw8NCl8MCwxKX1lbHNlIGFbTGU+PjJdPTAsdz0wO2lmKDAhPSgwfEQpJiYwIT0oMHwocT0wfGFbOCsoMHxhWyhwZT1PZSsxNnwwKT4+Ml0pPj4yXSkpJiYwIT0oMHxhWzEyKygwfGFb''@;'; put 'put ''cSs0Pj4yXSk+PjJdKSl7Zm9yKGFbYmU+PjJdPU9lLGFbYmUrND4+Ml09TSxjPWdlKzh8MCxBPWI9cCstNHwwOyEoKDB8QSk8PTApJiYoX1tnZT4+M109K19bZisoQTw8NCk+PjNdLStfWzE2KyhwPTB8YVtwZT4+Ml0pPj4zXSxfW2M+PjNdPStfW2YrKEE8PDQpKzg+PjNdLStfW3ArMjQ+PjNd''@;'; put 'put ''LHA9MHxhWzEyKygwfGFbNCsoMHxhW3ArOD4+Ml0pPj4yXSk+PjJdLGFbVmU+PjJdPWFbZ2U+PjJdLGFbVmUrND4+Ml09YVtnZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbZ2UrOD4+Ml0sYVtWZSsxMj4+Ml09YVtnZSsxMj4+Ml0sKDB8QmlbMTI3JnBdKGJlLFZlKSk8PDI0Pj4yNCk7KUE9QSstM3ww''@;'; put 'put ''O2FbUmU+PjJdPUEsaE4oYmUsT2UsZisoQTw8NCl8MCwwKX1lbHNlIGFbUmU+PjJdPWI9cCstNHwwLEE9Yjtmb3IoOyEoKDB8dyk+PSgwfGIpKSYmKFN0PStfW2YrKHc8PDQpKzg+PjNdLStfW2YrKChjPXcrM3wwKTw8NCkrOD4+M10pKlN0KyhhdD0rX1tmKyh3PDw0KT4+M10tK19bZisoYzw8''@;'; put 'put ''NCk+PjNdKSphdDwxZS02Oyl3PWM7Zm9yKGFbTGU+PjJdPXc7ISgoMHxBKTw9MCkmJihhdD0rX1tmKyhBPDw0KSs4Pj4zXS0rX1tmKygoYmU9QSszfDApPDw0KSs4Pj4zXSkqYXQrKFN0PStfW2YrKEE8PDQpPj4zXS0rX1tmKyhiZTw8NCk+PjNdKSpTdDwxZS02OylBPUErLTN8MDtmb3IoYVtS''@;'; put 'put ''ZT4+Ml09QSxmdW5jdGlvbiBwTihsLGMsZixwLG0sQSx3KXtjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgTSxELEcsYj0wLGs9MCxSPTA7Zm9yKEc9bGUsbGU9bGUrMTZ8MCxNPUcrNHwwLEQ9RyxSPWx8PTA7Yj0wfGFbMTE2KygwfGFbUisxNj4+Ml0pPj4yXTspUj1iO2I9MHxm''@;'; put 'put ''ZVt3Kzg+PjBdPzA6MjU1JigwfF9vWzYzJmFbdz4+Ml1dKFIpKSxEQyhSLE0sRCksKDB8X29bNjMmYVsoaz13KzR8MCk+PjJdXShjKSk8PDI0Pj4yNCYmKGFbRD4+Ml09MCksKDB8X29bNjMmYVtrPj4yXV0oMHxhWygzPT0oMyZhW2w+PjJdfDApP2w6bCs0OHwwKSs0MD4+Ml0pKTw8MjQ+PjI0''@;'; put 'put ''JiYoYVtNPj4yXT0wKSwwfGImJihjPTB8YVtNPj4yXSxhW00+PjJdPWFbRD4+Ml0sYVtEPj4yXT1jKSwwfGZlW3crOT4+MF0/KGI9MHxhW00+PjJdKXwoaz0wfGFbRD4+Ml0pfDAmJmZ1bmN0aW9uIGtsKGwsYyxmLHAsbSxBLHcpe2x8PTAsY3w9MCxtfD0wO3ZhciBiPTAsaz0wLE09MCxEPTAs''@;'; put 'put ''Uj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MDsoMHwocHw9MCkpPT0oMHwoZnw9MCkpJihMZT0wIT0oMHwoQXw9MCkpKSYoTT0wIT0oMHwod3w9MCkpKT8oYmU9K19bKGdlPWMrKHA8PDQpfDApPj4zXSxPZT0rX1tjKyhwPDw0KSs4Pj4zXSxrPStfWyhMZT1j''@;'; put 'put ''KygoTT1wKzN8MCk8PDQpfDApPj4zXSxiPStfWyhNPWMrKE08PDQpKzh8MCk+PjNdLEQ9K2w3KGwsQSksSGU9ISgocGU9K2w3KGwsdykpK0Q+PShSPStEMCgrKChxPU9lLWIpKnErKFI9YmUtaykqUikpKSksUio9LjMzMzMzMzMzMzMzMzMzMzMsRD1IZT9EOlIsUj1IZT9wZTpSLE9lPT1iPyhx''@;'; put 'put ''PSgoSGU9YmU8ayk/LVI6UikrayxwZT0oSGU/RDotRCkrYmUsRz1PZSxEPU9lKToocT1iZSxwZT1iZSxHPSgoSGU9T2U8Yik/RDotRCkrT2UsRD0oSGU/LVI6UikrYiksX1soUmU9YysoKEhlPXArMXwwKTw8NCl8MCk+PjNdPXBlLF9bYysoSGU8PDQpKzg+PjNdPUcsYVtnZT4+Ml09YVtSZT4+''@;'; put 'put ''Ml0sYVtnZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtSZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW1JlKzEyPj4yXSxSZT1jKyhwKzI8PDQpfDAsX1tMZT4+M109cSxfW00+PjNdPUQsYVtSZT4+Ml09YVtMZT4+Ml0sYVtSZSs0Pj4yXT1hW0xlKzQ+PjJdLGFbUmUrOD4+Ml09YVtMZSs4''@;'; put 'put ''Pj4yXSxhW1JlKzEyPj4yXT1hW0xlKzEyPj4yXSxhW20rMTI+PjJdPXcsX1ttKzMyPj4zXT1iZSxfW20rNDA+PjNdPU9lLFJlPTE2KTooTSYmKGdlPWMrKChNPXArM3wwKTw8NCl8MCxiPShiPStsNyhsLHcpKT49KE9lPS45KitEMCgrKChiZT0ocT0rX1tjKyhwPDw0KSs4Pj4zXSktKEc9K19b''@;'; put 'put ''KE09YysoTTw8NCkrOHwwKT4+M10pKSpiZSsoT2U9KGs9K19bYysocDw8NCk+PjNdKS0oUj0rX1tnZT4+M10pKSpPZSkpKT9PZTpiLHE9PUc/KEQ9KGs8Uj8tYjpiKStSLGI9cSk6KEQ9ayxiPShxPEc/LWI6YikrRyksX1tjKygoSGU9cCsxfDApPDw0KT4+M109ayxfW2MrKEhlPDw0KSs4Pj4z''@;'; put 'put ''XT1xLHA9YysocCsyPDw0KXwwLF9bZ2U+PjNdPUQsX1tNPj4zXT1iLGFbcD4+Ml09YVtnZT4+Ml0sYVtwKzQ+PjJdPWFbZ2UrND4+Ml0sYVtwKzg+PjJdPWFbZ2UrOD4+Ml0sYVtwKzEyPj4yXT1hW2dlKzEyPj4yXSxhW20rMTI+PjJdPXcsX1ttKzMyPj4zXT1SLF9bbSs0MD4+M109RyksTGUm''@;'; put 'put ''JihEPShEPStsNyhsLEEpKT49KE9lPS45KitEMCgrKChiZT0oYj0rX1tjKyhmPDw0KSs4Pj4zXSktKHE9K19bYysoKEhlPWYrM3wwKTw8NCkrOD4+M10pKSpiZSsoT2U9KGs9K19bKE09YysoZjw8NCl8MCk+PjNdKS0oRz0rX1tjKyhIZTw8NCk+PjNdKSkqT2UpKSk/T2U6RCxiPT1xPyhSPShr''@;'; put 'put ''PEc/RDotRCkrayxEPWIpOihSPWssRD0oYjxxP0Q6LUQpK2IpLF9bKFJlPWMrKChIZT1mKzF8MCk8PDQpfDApPj4zXT1SLF9bYysoSGU8PDQpKzg+PjNdPUQsYVtNPj4yXT1hW1JlPj4yXSxhW00rND4+Ml09YVtSZSs0Pj4yXSxhW00rOD4+Ml09YVtSZSs4Pj4yXSxhW00rMTI+PjJdPWFbUmUr''@;'; put 'put ''MTI+PjJdLF9bYysoKFJlPWYrMnwwKTw8NCk+PjNdPUcsX1tjKyhSZTw8NCkrOD4+M109cSxSZT0xNikpLDE2PT0oMHxSZSkmJihhW20rOD4+Ml09QSxfW20rMTY+PjNdPWssX1ttKzI0Pj4zXT1iKX0oUixmLDB8YVtwPj4yXSwwfGFbbT4+Ml0sQSxiLGspOigwfChiPTB8YVtNPj4yXSkmJihh''@;'; put 'put ''W3A+PjJdPTB8T2EoUixmLDB8YVtwPj4yXSwwfGFbbT4+Ml0sQSxiKSksMHwoYj0wfGFbRD4+Ml0pJiYoYVttPj4yXT0wfHlGKFIsZiwwfGFbcD4+Ml0sMHxhW20+PjJdLEEsYikpKSxsZT1HfShsLE9lLGYsTGUsUmUscWUsbSksYj00KyhrPTB8YVtSZT4+Ml0pfDAsaz1rKzN8MCxNPVZlKzE2''@;'; put 'put ''fDAsRD1WZSszMnwwLFI9VmUrNDh8MCx3PUhlKzE2fDAsQT1HPTB8YVtMZT4+Ml07ISgoMHxBKT49KDB8YikpJiYoYVsoSGU9KDB8YVtxZT4+Ml0pKyhBLUc8PDQpfDApPj4yXT1hWyhjPWYrKEE8PDQpfDApPj4yXSxhW0hlKzQ+PjJdPWFbYys0Pj4yXSxhW0hlKzg+PjJdPWFbYys4Pj4yXSxh''@;'; put 'put ''W0hlKzEyPj4yXT1hW2MrMTI+PjJdLGFbVmU+PjJdPWFbYz4+Ml0sYVtWZSs0Pj4yXT1hW2MrND4+Ml0sYVtWZSs4Pj4yXT1hW2MrOD4+Ml0sYVtWZSsxMj4+Ml09YVtjKzEyPj4yXSxjPUErMXwwLCEoKDB8QSk+PSgwfGspKSk7KWFbKFJlPSgwfGFbcWU+PjJdKSsoYy1HPDw0KXwwKT4+Ml09''@;'; put 'put ''YVsoSGU9ZisoYzw8NCl8MCk+PjJdLGFbUmUrND4+Ml09YVtIZSs0Pj4yXSxhW1JlKzg+PjJdPWFbSGUrOD4+Ml0sYVtSZSsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtNPj4yXT1hW0hlPj4yXSxhW00rND4+Ml09YVtIZSs0Pj4yXSxhW00rOD4+Ml09YVtIZSs4Pj4yXSxhW00rMTI+PjJdPWFbSGUr''@;'; put 'put ''MTI+PjJdLGFbKFJlPSgwfGFbcWU+PjJdKSsoKEhlPUErMnwwKS1HPDw0KXwwKT4+Ml09YVsoSGU9ZisoSGU8PDQpfDApPj4yXSxhW1JlKzQ+PjJdPWFbSGUrND4+Ml0sYVtSZSs4Pj4yXT1hW0hlKzg+PjJdLGFbUmUrMTI+PjJdPWFbSGUrMTI+PjJdLGFbRD4+Ml09YVtIZT4+Ml0sYVtEKzQ+''@;'; put 'put ''PjJdPWFbSGUrND4+Ml0sYVtEKzg+PjJdPWFbSGUrOD4+Ml0sYVtEKzEyPj4yXT1hW0hlKzEyPj4yXSxhW1I+PjJdPWFbKFJlPWYrKChIZT1BKzN8MCk8PDQpfDApPj4yXSxhW1IrND4+Ml09YVtSZSs0Pj4yXSxhW1IrOD4+Ml09YVtSZSs4Pj4yXSxhW1IrMTI+PjJdPWFbUmUrMTI+PjJdLE5B''@;'; put 'put ''KDE2KygwfGFbdz4+Ml0pfDAsVmUpLEE9SGU7YVtxZSs0Pj4yXT1iLUcsbGU9V2V9ZnVuY3Rpb24gSjMobCxjKXtsfD0wO3ZhciBmPTAscD0wOytfWyhjfD0wKT4+M108K19bYysxNj4+M10mJitfW2MrOD4+M108K19bYysyND4+M10mJihmPTB8YVtsKzg0Pj4yXSxhWyhwPWwrODB8MCk+PjJd''@;'; put 'put ''PTErKGw9MHxhW3A+PjJdKSxhWyhsPWYrKGw8PDUpfDApPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0sYVtsKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbCsyMD4+Ml09YVtjKzIwPj4yXSxhW2wrMjQ+PjJdPWFb''@;'; put 'put ''YysyND4+Ml0sYVtsKzI4Pj4yXT1hW2MrMjg+PjJdKX1mdW5jdGlvbiBuRChsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEQsUixnZSxiZSxMZSxSZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEc9MCxxPTAscGU9MCxPZT0wLEhlPTAsVmU9MDtpZihSZT1sZSxsZT1sZSsxMTJ8MCxi''@;'; put 'put ''ZT1SZSs3MnwwLEQ9UmUrNTZ8MCxNPVJlKzE2fDAsRz1SZSxSPTQ4KyhjfD0wKXwwLExlPTB8YVsoMz09KDB8KHc9MyZhW2M+PjJdKSk/YzpSKSs0MD4+Ml0sQT0xNisocT0wfGFbKGdlPWMrMTZ8MCk+PjJdKXwwLDB8ZmVbcSs0Nz4+MF0pe3h5KE0sTGUsMHxhWygyPT0oMHx3KT9jOmMrLTQ4''@;'; put 'put ''fDApKzQwPj4yXSxBKSx3PU0sTT1BKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxNKSl9c3dpdGNoKE09KEE9MHxhWzgrKHc9MHxhWyhxPUxlKzE2fDApPj4yXSk+PjJdKT8wfGFbMTYrKDB8YVtBKzQ+PjJdKT4+Ml06MCxBPXcrMTZ8MCx3''@;'; put 'put ''PTE2KygwfGFbZ2U+PjJdKXwwLGFbRD4+Ml09YVtBPj4yXSxhW0QrND4+Ml09YVtBKzQ+PjJdLGFbRCs4Pj4yXT1hW0ErOD4+Ml0sYVtEKzEyPj4yXT1hW0ErMTI+PjJdLGFbYmU+PjJdPWFbdz4+Ml0sYVtiZSs0Pj4yXT1hW3crND4+Ml0sYVtiZSs4Pj4yXT1hW3crOD4+Ml0sYVtiZSsxMj4+''@;'; put 'put ''Ml09YVt3KzEyPj4yXSxnTihHLEQsYmUpLGFbbD4+Ml09YVtHPj4yXSxhW2wrND4+Ml09YVtHKzQ+PjJdLGFbbCs4Pj4yXT1hW0crOD4+Ml0sYVtsKzEyPj4yXT1hW0crMTI+PjJdLG08PDI0Pj4yND8oYj0rbU4oMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6UikrNDA+PjJdKSxPZT05KTowfGZl''@;'; put 'put ''WzQ1KyhBPTB8YVtnZT4+Ml0pPj4wXT8oYj0rX1tBKzMyPj4zXSxPZT05KTpBPTAsOT09KDB8T2UpJiYoX1tsKzE2Pj4zXT1iLEE9MSksZmVbbCsyOT4+MF09QSxhW2wrODA+PjJdPTAsYVtsKzg4Pj4yXT1jLGFbKEc9cCszMnwwKT4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFb''@;'; put 'put ''Rys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLDB8Zil7Y2FzZSAxOmlmKDA9PSgwfGZlWzE1Nisodz0wfGFbcT4+Ml0pPj4wXSkmJihwZT0yNTUmKEc9MHxmZVs0OSsoMHxhW2dlPj4yXSk+PjBdKSxHPDwyND4+MjQhPTApKXthW2JlPj4yXT1hW3A+PjJdLGFbYmUrND4+''@;'; put 'put ''Ml09YVtwKzQ+PjJdLGFbYmUrOD4+Ml09YVtwKzg+PjJdLGFbYmUrMTI+PjJdPWFbcCsxMj4+Ml0sYVtiZSsxNj4+Ml09YVtwKzE2Pj4yXSxhW2JlKzIwPj4yXT1hW3ArMjA+PjJdLGFbYmUrMjQ+PjJdPWFbcCsyND4+Ml0sYVtiZSsyOD4+Ml09YVtwKzI4Pj4yXTtkb3tpZig0JnBlKXtpZihh''@;'; put 'put ''W3ArNDg+PjJdPTQsYj0rX1tiZT4+M10sK19bbD4+M108K19bdysxNj4+M10pe1ZlPWIrLTEsSGU9K19bbCs4Pj4zXSxiPStfWyhsPWJlKzE2fDApPj4zXSxrPS41KitfW3crODA+PjNdKyArX1t3KzI0Pj4zXSxrKz0rKDB8KDB8YVsyNTIrKDB8YVsxNisoMHxjcihMZSkpPj4yXSk+PjJdKS8y''@;'; put 'put ''KSxfW2w+PjNdPStfWzE2KyhBPTB8YVtxPj4yXSk+PjNdLStfW0ErODg+PjNdLF9bYmUrMjQ+PjNdPUhlLF9bYmUrOD4+M109K19bQSsyND4+M10tLjUqK19bQSs4MD4+M10sX1tiZT4+M109VmUsX1twKzU2Pj4zXT1WZSxfW3ArNjQ+PjNdPUhlLF9bcCs3Mj4+M109YixfW3ArODA+PjNdPWss''@;'; put 'put ''YVsoQT1wKzg4fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsy''@;'; put 'put ''OD4+Ml09YVtiZSsyOD4+Ml0sQT0yO2JyZWFrfWs9K19bbCs4Pj4zXSxIZT0rX1soQT1iZSsxNnwwKT4+M10rMSxWZT0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10sVmUrPSsoMHwoMHxhWzI1MisoMHxhWzE2KygwfGNyKExlKSk+PjJdKT4+Ml0pLzIpLF9bYmU+PjNdPStfWzk2KyhsPTB8''@;'; put 'put ''YVtxPj4yXSk+PjNdKyArX1tsKzE2Pj4zXSxfW2JlKzI0Pj4zXT1rLF9bYmUrOD4+M109K19bbCsyND4+M10tLjUqK19bbCs4MD4+M10sX1tBPj4zXT1IZSxfW3ArNTY+PjNdPWIsX1twKzY0Pj4zXT1rLF9bcCs3Mj4+M109SGUsX1twKzgwPj4zXT1WZSxhWyhBPXArODh8MCk+PjJdPWFbYmU+''@;'; put 'put ''PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTI7''@;'; put 'put ''YnJlYWt9aWYoMSZwZXwwKXthW3ArNDg+PjJdPTEsX1soQT1iZSsyNHwwKT4+M109K19bKCtfW0E+PjNdPitfW2wrOD4+M10/YmUrMTZ8MDpsKSs4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+''@;'; put 'put ''Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTE7YnJlYWt9aWYoQT1wKzQ4fDAsOCZwZSl7YVtBPj4yXT04LF9bYmUrMTY+PjNdPStfW2w+PjNd''@;'; put 'put ''LF9bYmUrOD4+M109K19bdysyND4+M10tLjUqK19bdys4MD4+M10sX1tiZSsyND4+M109K19bbCs4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1h''@;'; put 'put ''W2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTE7YnJlYWt9YVtBPj4yXT0yLF9bYmU+PjNdPStfW2w+PjNdLF9bYmUrOD4+M109K19bdysyND4+M10tLjUqK19bdys4MD4+M10sX1tiZSsyND4+''@;'; put 'put ''M109K19bbCs4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsxMj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVti''@;'; put 'put ''ZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTE7YnJlYWt9d2hpbGUoMCk7Zm9yKGFbcCs1Mj4+Ml09QTswfGZlWzExMisoQT0wfGFbYysxNj4+Ml0pPj4wXTspYz0wfGFbQSsxMTY+PjJdO2ZlWzMwKygoMHxMZSk9PSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQw''@;'; put 'put ''Pj4yXSk/QSsxNnwwOkErNTZ8MCk+PjBdPTB9ZWxzZSB3PTEsT2U9NDc7YnJlYWs7Y2FzZSAyOmlmKHc9MjU1JihwZT0wfGZlWzQ5KygwfGFbZ2U+PjJdKT4+MF0pLHBlPDwyND4+MjQpe2FbYmU+PjJdPWFbcD4+Ml0sYVtiZSs0Pj4yXT1hW3ArND4+Ml0sYVtiZSs4Pj4yXT1hW3ArOD4+Ml0s''@;'; put 'put ''YVtiZSsxMj4+Ml09YVtwKzEyPj4yXSxhW2JlKzE2Pj4yXT1hW3ArMTY+PjJdLGFbYmUrMjA+PjJdPWFbcCsyMD4+Ml0sYVtiZSsyND4+Ml09YVtwKzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW3ArMjg+PjJdO2Rve2lmKCEoNCZ3KSl7aWYoMSZ3fDApe2lmKDQ9PSgwfGFbcCs0OD4+Ml0pKXtWZT0r''@;'; put 'put ''X1syNCsoQT0wfGFbcT4+Ml0pPj4zXS0uNSorX1tBKzgwPj4zXSxIZT0rX1soQT1iZSsxNnwwKT4+M10rMSxiPStfW2w+PjNdLGs9VmUtKygwfCgwfGFbMjUyKygwfGFbMTYrKDB8Y3IoTGUpKT4+Ml0pPj4yXSkvMiksX1tiZT4+M109K19bOTYrKGw9MHxhW3E+PjJdKT4+M10rICtfW2wrMTY+''@;'; put 'put ''PjNdLF9bYmUrOD4+M109VmUsX1tiZSsyND4+M109LjUqK19bbCs4MD4+M10rICtfW2wrMjQ+PjNdLF9bQT4+M109SGUsX1twKzU2Pj4zXT1iLF9bcCs2ND4+M109ayxfW3ArNzI+PjNdPUhlLF9bcCs4MD4+M109VmUsYVsoQT1wKzg4fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0''@;'; put 'put ''Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0yO2JyZWFrfV9bKEE9YmUrMjR8MCk+''@;'; put 'put ''PjNdPStfWygrX1tBPj4zXT4rX1tsKzg+PjNdP2JlKzE2fDA6bCkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIw''@;'; put 'put ''Pj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfWlmKGI9K19bbD4+M10sOCZ3KXtfWyhBPWJlKzE2fDApPj4zXT1iKzEsYj0rX1syNCsoZj0wfGFbcT4+Ml0pPj4zXSxrPS41KitfW2YrODA+PjNdLDQ9PSgwfGFb''@;'; put 'put ''cCs0OD4+Ml0pPyhfW2JlKzI0Pj4zXT1rK2IsYj0rX1tsKzg+PjNdLTEsQT1iZSk6KF9bYmUrOD4+M109Yi1rLGI9K19bbCs4Pj4zXSsxKSxfW0ErOD4+M109YixhWyhBPXArNTZ8MCk+PjJdPWFbYmU+PjJdLGFbQSs0Pj4yXT1hW2JlKzQ+PjJdLGFbQSs4Pj4yXT1hW2JlKzg+PjJdLGFbQSsx''@;'; put 'put ''Mj4+Ml09YVtiZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2JlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbYmUrMjA+PjJdLGFbQSsyND4+Ml09YVtiZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW2JlKzI4Pj4yXSxBPTE7YnJlYWt9X1tiZT4+M109YixiPStfWzI0KyhmPTB8YVtxPj4yXSk+PjNdLGs9LjUqK19b''@;'; put 'put ''Zis4MD4+M10sND09KDB8YVtwKzQ4Pj4yXSk/KF9bYmUrMjQ+PjNdPWsrYixiPStfW2wrOD4+M10sQT1iZSk6KF9bYmUrOD4+M109Yi1rLGI9K19bbCs4Pj4zXSsxLEE9YmUrMTZ8MCksX1tBKzg+PjNdPWIsYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxh''@;'; put 'put ''W0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xO2JyZWFrfV9bKEE9YmUrOHwwKT4+M109K19b''@;'; put 'put ''KCtfW0E+PjNdPCtfW2wrOD4+M10/YmU6bCkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW2JlPj4yXSxhW0ErND4+Ml09YVtiZSs0Pj4yXSxhW0ErOD4+Ml09YVtiZSs4Pj4yXSxhW0ErMTI+PjJdPWFbYmUrMTI+PjJdLGFbQSsxNj4+Ml09YVtiZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW2JlKzIw''@;'; put 'put ''Pj4yXSxhW0ErMjQ+PjJdPWFbYmUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtiZSsyOD4+Ml0sQT0xfXdoaWxlKDApO2ZvcihhW3ArNTI+PjJdPUE7MHxmZVsxMTIrKEE9MHxhW2MrMTY+PjJdKT4+MF07KWM9MHxhW0ErMTE2Pj4yXTtmZVszMCsoKDB8TGUpPT0oMHxhWygzPT0oMyZhW2M+PjJdfDAp''@;'; put 'put ''P2M6Yys0OHwwKSs0MD4+Ml0pP0ErMTZ8MDpBKzU2fDApPj4wXT0wLGFbcCs0OD4+Ml09d31lbHNlIE9lPTQ2O2JyZWFrO2RlZmF1bHQ6T2U9NDZ9NDY9PSgwfE9lKSYmKHc9MHxhW3ArNDg+PjJdLE9lPTQ3KTtlOmRve2lmKDQ3PT0oMHxPZSkpe2lmKE0pe2lmKHc9MHxSMlsxMjcmTV0oTGUs''@;'; put 'put ''MTYrKDB8YVtnZT4+Ml0pfDAsdyxjPXArNTZ8MCxBPXArNTJ8MCkpe2FbcCs0OD4+Ml09dzticmVha319ZWxzZSBBPXArNTJ8MCxjPXArNTZ8MDtzd2l0Y2goYVtjPj4yXT1hW3A+PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0sYVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJdPWFbcCsxMj4+''@;'; put 'put ''Ml0sYVtjKzE2Pj4yXT1hW3ArMTY+PjJdLGFbYysyMD4+Ml09YVtwKzIwPj4yXSxhW2MrMjQ+PjJdPWFbcCsyND4+Ml0sYVtjKzI4Pj4yXT1hW3ArMjg+PjJdLGFbQT4+Ml09MSwwfGYpe2Nhc2UgODpQcigxMzgzOTQsMTA2NTE0LDU2OSwxMDY1MjQpO2JyZWFrO2Nhc2UgMjpfWzgrKDQ9PSgw''@;'; put 'put ''fGFbcCs0OD4+Ml0pP3ArNTZ8MDpwKzcyfDApPj4zXT0rX1tsKzg+PjNdO2JyZWFrIGU7Y2FzZSAxOl9bcCs4MD4+M109K19bbCs4Pj4zXSxhW3ArNDg+PjJdPTE7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fX13aGlsZSgwKTtsZT1SZX1mdW5jdGlvbiBnTihsLGMsZil7dmFyIHA7cD0rX1s4''@;'; put 'put ''KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1wfWZ1bmN0aW9uIG1OKGwpe3ZhciBwLHcsayxNLGM9MCxmPTAsbT0wLEE9MCxiPTA7Zm9yKGI9MHxhWzE3Misodz0wfGFbMTYrKGx8PTApPj4yXSk+PjJdLG09MCxB''@;'; put 'put ''PTA7bD0wfGFbYisoQTw8Mik+PjJdOyltPStfWzE2KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4zXSttLEE9QSsxfDA7Zm9yKHA9MHxhW3crMTgwPj4yXSxjPTAsbD0wO2Y9MHxhW3ArKGw8PDIpPj4yXTspYz0rX1sxNisoMHxhWzE2Kygw''@;'; put 'put ''fGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjNdK2MsbD1sKzF8MDtyZXR1cm4gbT0rVWwoKygoTT0rX1t3KzI0Pj4zXSktK19bMjQrKDB8YVsxNisoMHxhWygzPT0oMyZhWyhiPTB8YVtiPj4yXSk+PjJdfDApP2I6Yis0OHwwKSs0MD4+Ml0pPj4yXSk+PjNd''@;'; put 'put ''KSwrKChrPStfW3crMTY+PjNdKS1tLysoMHxBKSkpLC41KigrVWwoKygrX1syNCsoMHxhWzE2KygwfGFbKDI9PSgzJmFbKGI9MHxhW3A+PjJdKT4+Ml18MCk/YjpiKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjNdLU0pLCsoYy8rKDB8bCktaykpK20pfWZ1bmN0aW9uIHJEKGwsYyxmLHAsbSl7bHw9''@;'; put 'put ''MCxmfD0wLHB8PTAsbXw9MDt2YXIgUixxLGJlLExlLEhlLFZlLEQsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTAscGU9MCxnZT0wLE9lPTAsUmU9MCxxZT0wLHJ0PTA7aWYoVmU9bGUsbGU9bGUrMTEyfDAsTGU9VmUrNzJ8MCxSPVZlKzU2fDAsTT1WZSsxNnwwLGdlPVZlLHE9KGN8PTApLTQ4fDAs''@;'; put 'put ''SGU9MHxhWygyPT0oMHwodz0zJmFbYz4+Ml0pKT9jOnEpKzQwPj4yXSxBPTU2KyhwZT0wfGFbKGJlPWMrMTZ8MCk+PjJdKXwwLDB8ZmVbcGUrODc+PjBdKXt4eShNLEhlLDB8YVsoMz09KDB8dyk/YzpjKzQ4fDApKzQwPj4yXSxBKSx3PU0sTT1BKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9''@;'; put 'put ''QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxNKSl9c3dpdGNoKEQ9KEE9MHxhWzgrKHc9MHxhWyhwZT1IZSsxNnwwKT4+Ml0pPj4yXSk/MHxhWzE2KygwfGFbQSs0Pj4yXSk+PjJdOjAsTT1sKzQwfDAsQT13KzE2fDAsdz01NisoMHxhW2JlPj4yXSl8MCxhW1I+PjJdPWFbQT4+Ml0sYVtS''@;'; put 'put ''KzQ+PjJdPWFbQSs0Pj4yXSxhW1IrOD4+Ml09YVtBKzg+PjJdLGFbUisxMj4+Ml09YVtBKzEyPj4yXSxhW0xlPj4yXT1hW3c+PjJdLGFbTGUrND4+Ml09YVt3KzQ+PjJdLGFbTGUrOD4+Ml09YVt3Kzg+PjJdLGFbTGUrMTI+PjJdPWFbdysxMj4+Ml0sZ04oZ2UsUixMZSksYVtNPj4yXT1hW2dl''@;'; put 'put ''Pj4yXSxhW00rND4+Ml09YVtnZSs0Pj4yXSxhW00rOD4+Ml09YVtnZSs4Pj4yXSxhW00rMTI+PjJdPWFbZ2UrMTI+PjJdLG08PDI0Pj4yND8oaz0rbU4oMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6cSkrNDA+PjJdKSszLjE0MTU5MjY1MzU4OTc5MyxfW2wrNTY+PjNdPWssazw2LjI4MzE4NTMw''@;'; put 'put ''NzE3OTU4Nj9HPTE6UHIoMTA2NTM0LDEwNjUxNCw2MDYsMTA2NTU4KSk6MHxmZVs4NSsoQT0wfGFbYmU+PjJdKT4+MF0/KF9bbCs1Nj4+M109K19bQSs3Mj4+M10sRz0xKTpHPTAsZmVbbCs2OT4+MF09RyxhWyhnZT1wKzMyfDApPj4yXT1hW00+PjJdLGFbZ2UrND4+Ml09YVtNKzQ+PjJdLGFb''@;'; put 'put ''Z2UrOD4+Ml09YVtNKzg+PjJdLGFbZ2UrMTI+PjJdPWFbTSsxMj4+Ml0sMHxmKXtjYXNlIDE6aWYoMD09KDB8ZmVbMTU2Kyh3PTB8YVtwZT4+Ml0pPj4wXSkmJihPZT0yNTUmKGdlPTB8ZmVbODkrKDB8YVtiZT4+Ml0pPj4wXSksZ2U8PDI0Pj4yNCE9MCkpe2FbTGU+PjJdPWFbcD4+Ml0sYVtM''@;'; put 'put ''ZSs0Pj4yXT1hW3ArND4+Ml0sYVtMZSs4Pj4yXT1hW3ArOD4+Ml0sYVtMZSsxMj4+Ml09YVtwKzEyPj4yXSxhW0xlKzE2Pj4yXT1hW3ArMTY+PjJdLGFbTGUrMjA+PjJdPWFbcCsyMD4+Ml0sYVtMZSsyND4+Ml09YVtwKzI0Pj4yXSxhW0xlKzI4Pj4yXT1hW3ArMjg+PjJdO2Rve2lmKCEoNCZP''@;'; put 'put ''ZSkpe2lmKDEmT2Upe2lmKGFbcCs0OD4+Ml09MSxiPStfW0xlPj4zXSwrX1tNPj4zXTwrX1t3KzE2Pj4zXSl7cnQ9YistMSxrPStfW2wrNDg+PjNdLGI9K19bKGw9TGUrMTZ8MCk+PjNdLHFlPS0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10scWUtPSsoMHwoMHxhWzI1MisoMHxhWzE2Kygw''@;'; put 'put ''fGNyKEhlKSk+PjJdKT4+Ml0pLzIpLF9bbD4+M109K19bMTYrKEE9MHxhW3BlPj4yXSk+PjNdLStfW0ErODg+PjNdLF9bTGUrOD4+M109ayxfW0xlKzI0Pj4zXT0uNSorX1tBKzgwPj4zXSsgK19bQSsyND4+M10sX1tMZT4+M109cnQsX1twKzU2Pj4zXT1ydCxfW3ArNjQ+PjNdPXFlLF9bcCs3''@;'; put 'put ''Mj4+M109YixfW3ArODA+PjNdPWssYVsoQT1wKzg4fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+''@;'; put 'put ''PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0yO2JyZWFrfXJ0PStfW2wrNDg+PjNdLHFlPStfWyhBPUxlKzE2fDApPj4zXSsxLGs9LS41KitfW3crODA+PjNdKyArX1t3KzI0Pj4zXSxrLT0rKDB8KDB8YVsyNTIrKDB8YVsxNisoMHxjcihIZSkpPj4yXSk+PjJdKS8y''@;'; put 'put ''KSxfW0xlPj4zXT0rX1s5NisobD0wfGFbcGU+PjJdKT4+M10rICtfW2wrMTY+PjNdLF9bTGUrOD4+M109cnQsX1tMZSsyND4+M109LjUqK19bbCs4MD4+M10rICtfW2wrMjQ+PjNdLF9bQT4+M109cWUsX1twKzU2Pj4zXT1iLF9bcCs2ND4+M109ayxfW3ArNzI+PjNdPXFlLF9bcCs4MD4+M109''@;'; put 'put ''cnQsYVsoQT1wKzg4fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFb''@;'; put 'put ''QSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0yO2JyZWFrfWlmKEE9cCs0OHwwLDgmT2Upe2FbQT4+Ml09OCxfW0xlKzE2Pj4zXT0rX1tNPj4zXSxfW0xlKzI0Pj4zXT0uNSorX1t3KzgwPj4zXSsgK19bdysyND4+M10sX1tMZSs4Pj4zXT0rX1tsKzQ4Pj4zXSxhWyhBPXArNTZ8MCk+PjJdPWFbTGU+''@;'; put 'put ''PjJdLGFbQSs0Pj4yXT1hW0xlKzQ+PjJdLGFbQSs4Pj4yXT1hW0xlKzg+PjJdLGFbQSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbTGUrMjA+PjJdLGFbQSsyND4+Ml09YVtMZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW0xlKzI4Pj4yXSxBPTE7''@;'; put 'put ''YnJlYWt9YVtBPj4yXT0yLF9bTGU+PjNdPStfW00+PjNdLF9bTGUrMjQ+PjNdPS41KitfW3crODA+PjNdKyArX1t3KzI0Pj4zXSxfW0xlKzg+PjNdPStfW2wrNDg+PjNdLGFbKEE9cCs1NnwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0s''@;'; put 'put ''YVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFbTGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MTticmVha31hW3ArNDg+PjJdPTQsX1soQT1MZSs4fDApPj4zXT0rX1soK19bQT4+''@;'; put 'put ''M108K19bbCs0OD4+M10/TGU6TSkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxh''@;'; put 'put ''W0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0xfXdoaWxlKDApO2ZvcihhW3ArNTI+PjJdPUE7MHxmZVsxMTIrKEE9MHxhW2MrMTY+PjJdKT4+MF07KWM9MHxhW0ErMTE2Pj4yXTtmZVszMCsoKDB8SGUpPT0oMHxhWygyPT0oMyZhW2M+PjJdfDApP2M6Yyst''@;'; put 'put ''NDh8MCkrNDA+PjJdKT9BKzU2fDA6QSsxNnwwKT4+MF09MCxhW3ArNDg+PjJdPU9lfWVsc2Ugdz00LFJlPTQ3O2JyZWFrO2Nhc2UgMjppZih3PTI1NSYoT2U9MHxmZVs4OSsoMHxhW2JlPj4yXSk+PjBdKSxPZTw8MjQ+PjI0KXthW0xlPj4yXT1hW3A+PjJdLGFbTGUrND4+Ml09YVtwKzQ+PjJd''@;'; put 'put ''LGFbTGUrOD4+Ml09YVtwKzg+PjJdLGFbTGUrMTI+PjJdPWFbcCsxMj4+Ml0sYVtMZSsxNj4+Ml09YVtwKzE2Pj4yXSxhW0xlKzIwPj4yXT1hW3ArMjA+PjJdLGFbTGUrMjQ+PjJdPWFbcCsyND4+Ml0sYVtMZSsyOD4+Ml09YVtwKzI4Pj4yXTtkb3tpZighKDQmdykpe2lmKDEmd3wwKXtpZig0''@;'; put 'put ''PT0oMHxhW3ArNDg+PjJdKSl7Yj0rX1tMZT4+M10tMSxxZT0rX1tNPj4zXSxrPShydD0rX1syNCsoQT0wfGFbcGU+PjJdKT4+M10tLjUqK19bQSs4MD4+M10pLSsoMHwoMHxhWzI1MisoMHxhWzE2KygwfGNyKEhlKSk+PjJdKT4+Ml0pLzIpLF9bTGUrMTY+PjNdPStfWzE2KyhBPTB8YVtwZT4+''@;'; put 'put ''Ml0pPj4zXS0yLStfW0ErODg+PjNdLF9bTGUrOD4+M109cnQsX1tMZSsyND4+M109LjUqK19bQSs4MD4+M10rICtfW0ErMjQ+PjNdLF9bTGU+PjNdPWIsX1twKzU2Pj4zXT1iLF9bcCs2ND4+M109ayxfW3ArNzI+PjNdPXFlLF9bcCs4MD4+M109cnQsYVsoQT1wKzg4fDApPj4yXT1hW0xlPj4y''@;'; put 'put ''XSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0yO2Jy''@;'; put 'put ''ZWFrfV9bKEE9TGUrMjR8MCk+PjNdPStfWygrX1tBPj4zXT4rX1tsKzg+PjNdP0xlKzE2fDA6bCkrOD4+M10sYVsoQT1wKzU2fDApPj4yXT1hW0xlPj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09''@;'; put 'put ''YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0xO2JyZWFrfWlmKGI9K19bTT4+M10sOCZ3KXtfWyhBPUxlKzE2fDApPj4zXT1iKzEsYj0rX1syNCsoZj0wfGFbcGU+PjJdKT4+M10saz0uNSor''@;'; put 'put ''X1tmKzgwPj4zXSw0PT0oMHxhW3ArNDg+PjJdKT8oX1tMZSsyND4+M109aytiLGI9K19bbCs0OD4+M10tMSxBPUxlKTooX1tMZSs4Pj4zXT1iLWssYj0rX1tsKzQ4Pj4zXSsxKSxfW0ErOD4+M109YixhWyhBPXArNTZ8MCk+PjJdPWFbTGU+PjJdLGFbQSs0Pj4yXT1hW0xlKzQ+PjJdLGFbQSs4''@;'; put 'put ''Pj4yXT1hW0xlKzg+PjJdLGFbQSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtBKzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW0ErMjA+PjJdPWFbTGUrMjA+PjJdLGFbQSsyND4+Ml09YVtMZSsyND4+Ml0sYVtBKzI4Pj4yXT1hW0xlKzI4Pj4yXSxBPTE7YnJlYWt9X1tMZT4+M109YistMSxiPStfWzI0Kyhm''@;'; put 'put ''PTB8YVtwZT4+Ml0pPj4zXSxrPS41KitfW2YrODA+PjNdLDQ9PSgwfGFbcCs0OD4+Ml0pPyhfW0xlKzI0Pj4zXT1rK2IsYj0rX1tsKzQ4Pj4zXS0xLEE9TGUpOihfW0xlKzg+PjNdPWItayxiPStfW2wrNDg+PjNdLEE9TGUrMTZ8MCksX1tBKzg+PjNdPWIsYVsoQT1wKzU2fDApPj4yXT1hW0xl''@;'; put 'put ''Pj4yXSxhW0ErND4+Ml09YVtMZSs0Pj4yXSxhW0ErOD4+Ml09YVtMZSs4Pj4yXSxhW0ErMTI+PjJdPWFbTGUrMTI+PjJdLGFbQSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtBKzIwPj4yXT1hW0xlKzIwPj4yXSxhW0ErMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbQSsyOD4+Ml09YVtMZSsyOD4+Ml0sQT0x''@;'; put 'put ''O2JyZWFrfV9bKEE9TGUrOHwwKT4+M109K19bKCtfW0E+PjNdPCtfW2wrNDg+PjNdP0xlOk0pKzg+PjNdLGFbKEE9cCs1NnwwKT4+Ml09YVtMZT4+Ml0sYVtBKzQ+PjJdPWFbTGUrND4+Ml0sYVtBKzg+PjJdPWFbTGUrOD4+Ml0sYVtBKzEyPj4yXT1hW0xlKzEyPj4yXSxhW0ErMTY+PjJdPWFb''@;'; put 'put ''TGUrMTY+PjJdLGFbQSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtBKzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW0ErMjg+PjJdPWFbTGUrMjg+PjJdLEE9MX13aGlsZSgwKTtmb3IoYVtwKzUyPj4yXT1BOzB8ZmVbMTEyKyhBPTB8YVtjKzE2Pj4yXSk+PjBdOyljPTB8YVtBKzExNj4+Ml07ZmVbMzArKCgw''@;'; put 'put ''fEhlKT09KDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmMrLTQ4fDApKzQwPj4yXSk/QSs1NnwwOkErMTZ8MCk+PjBdPTAsYVtwKzQ4Pj4yXT13fWVsc2UgUmU9NDY7YnJlYWs7ZGVmYXVsdDpSZT00Nn00Nj09KDB8UmUpJiYodz0wfGFbcCs0OD4+Ml0sUmU9NDcpO2U6ZG97aWYoNDc9PSgwfFJl''@;'; put 'put ''KSl7aWYoRCl7aWYodz0wfFIyWzEyNyZEXShIZSw1NisoMHxhW2JlPj4yXSl8MCx3LGM9cCs1NnwwLEE9cCs1MnwwKSl7YVtwKzQ4Pj4yXT13O2JyZWFrfX1lbHNlIEE9cCs1MnwwLGM9cCs1NnwwO3N3aXRjaChhW2M+PjJdPWFbcD4+Ml0sYVtjKzQ+PjJdPWFbcCs0Pj4yXSxhW2MrOD4+Ml09''@;'; put 'put ''YVtwKzg+PjJdLGFbYysxMj4+Ml09YVtwKzEyPj4yXSxhW2MrMTY+PjJdPWFbcCsxNj4+Ml0sYVtjKzIwPj4yXT1hW3ArMjA+PjJdLGFbYysyND4+Ml09YVtwKzI0Pj4yXSxhW2MrMjg+PjJdPWFbcCsyOD4+Ml0sYVtBPj4yXT0xLDB8Zil7Y2FzZSA4OlByKDEzODM5NCwxMDY1MTQsNzY1LDEw''@;'; put 'put ''NjU1OCk7YnJlYWs7Y2FzZSAyOl9bOCsoND09KDB8YVtwKzQ4Pj4yXSk/cCs1NnwwOnArNzJ8MCk+PjNdPStfW2wrNDg+PjNdO2JyZWFrIGU7Y2FzZSAxOl9bcCs2ND4+M109K19bbCs0OD4+M10sYVtwKzQ4Pj4yXT00O2JyZWFrIGU7ZGVmYXVsdDpicmVhayBlfX19d2hpbGUoMCk7bGU9VmV9''@;'; put 'put ''ZnVuY3Rpb24gbEoobCl7dmFyIG0sQSxjPTAsZj0wLHA9MCx3PTA7cmV0dXJuIEE9MHxhWzk2KyhtPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sMD09KDB8ZmVbbSs0ND4+MF0pJiYwPT0oMHxmZVttKzg0Pj4wXSk/dz02OjAhPSg4JihmPTI1NSYoYz0wfGZlW20rNDk+PjBdKSl8MCl8fDAhPSg4''@;'; put 'put ''JihwPTB8ZmVbbSs4OT4+MF0pKXx8MCE9KDUmZnwwKSYmYzw8MjQ+PjI0PT1wPDwyND4+MjQ/bD0wOnc9Niw2PT0oMHx3KSYmKEE/KGw9MCE9KDEmYVsxMTYrKDB8YVsxNisoMHxjcigwfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpsKy00OHwwKSs0MD4+Ml0pKT4+Ml0pPj4yXXwwKSxsPX5+KCtf''@;'; put 'put ''WyhsP0ErMzJ8MDpBKzI0fDApPj4zXSsxOCkpOmw9MTgpLDB8bH1mdW5jdGlvbiBpRChsLGMsZixwLG0sQSx3KXtsfD0wLHB8PTAsbT0rbSxBPStBLHd8PTA7dmFyIGI9MCxrPTAsTT0wLEQ9MDtNPTA9PSgwfGZlWzQ0KyhsPTB8YVsxNisoMHxhWyhjfD0wKSsoKGZ8PTApPDwyKT4+Ml0pPj4y''@;'; put 'put ''XSk+PjBdKSYmMD09KDB8ZmVbbCs4ND4+MF0pPzY6Mztkb3tpZigzPT0oMHxNKSl7aWYoISg4JihrPTI1NSYoYj0wfGZlW2wrNDk+PjBdKSkpKXtpZigwPT0oOCYoRD0wfGZlW2wrODk+PjBdKSkmJigwPT0oNSZrfDApfHxiPDwyND4+MjQhPUQ8PDI0Pj4yNCkpe009NjticmVha31pZighKDgm''@;'; put 'put ''ZmVbbCs4OT4+MF0pKXtpZig0Jmt8MCl7c0ooYyxmLHAsbSxBLHcpO2JyZWFrfWlmKDEmayl7dWxlKGMsZixwLG0sQSx3KTticmVha31QcigxMzgzOTQsMTA2NTE0LDEyMzEsMTA2NTY2KX19aWYoMD09KDImYikmJjA9PSgyJmZlW2wrODk+PjBdKSl7c2xlKGMsZixwLG0sQSx3KTticmVha31z''@;'; put 'put ''SihjLGYscCxtLEEsdyl9fXdoaWxlKDApOzY9PSgwfE0pJiZmdW5jdGlvbiBsbGUobCxjLGYscCxtLEEpe3A9K3AsQXw9MDt2YXIgcSxwZSxnZSxiZSxPZSxMZSxSZSxIZSxydCxXZSxhdCxTdCxrdCxadCxjdCxidCxhbixTbixIbix1cix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsVmU9''@;'; put 'put ''MCxxZT0wLHN0PTAsRXQ9MCxIcj0wLEVyPTAsZnI9MDtzd2l0Y2godXI9bGUsbGU9bGUrMTYwODB8MCxidD11cis4MHwwLGFuPXVyKzY0fDAsU249dXIrNDh8MCxIbj11ciszMnwwLFp0PXVyKzE2fDAsY3Q9dXIsaz0oaz0uNSoobT0rbSkvKygwfChmfD0wKSkpPjI/azoyLFdlPTE2KygwfGFb''@;'; put 'put ''KDM9PSgzJmFbKHFlPTB8YVsobHw9MCkrKChjfD0wKTw8Mik+PjJdKT4+Ml18MCk/cWU6cWUrNDh8MCkrNDA+PjJdKXwwLGF0PShiPStfWzE2KyhxZT0wfGFbcWUrMTY+PjJdKT4+M10pKyhydD0rX1sxNisoVmU9MHxhW1dlPj4yXSk+PjNdKSxrdD0obT0rX1txZSs1Nj4+M10pK3J0LHc9KFN0''@;'; put 'put ''PStfW3FlKzI0Pj4zXSsoc3Q9K19bVmUrMjQ+PjNdKSk+PShzdD0rX1txZSs2ND4+M10rc3QpPzE6LTEsRD0rX1tWZSs5Nj4+M10sMHxvRCgwfFh0W3FlKzQ5Pj4wXSwwfFh0W3FlKzg5Pj4wXSkpe2Nhc2UgNjU6Y2FzZSAzMjpTdD09c3QmJih3PTAtd3wwKX1mb3IoSHI9MyooRC1iKSxiPTMq''@;'; put 'put ''KEQtbSksYmU9ayorKDB8dyksZ2U9YnQrOHwwLE9lPWJ0KzE2fDAsTGU9YnQrMzJ8MCxSZT1idCs0OHwwLEhlPS41KihzdCtTdCksVmU9YnQrNjR8MCxxZT1idCs4MHwwLHE9YnQrOTZ8MCxwZT1idCsxMDR8MCxHPTAsTT0wLG09RCxrPUQ8SHI/RDpIcixiPUQ8Yj9EOmI7ISgoMHxHKT49KDB8''@;'; put 'put ''ZikpOylSPWMrMXwwLGM9MHxhW2wrKGM8PDIpPj4yXSxEPW0rcCxrKz1wLGIrPXAsTSs9YmUsX1tidD4+M109YXQsX1tnZT4+M109U3QseXUoYW4sLjMzMzMzMzMzMzMzMzMzMzMqaythdCxIcj1NK1N0KSxhW09lPj4yXT1hW2FuPj4yXSxhW09lKzQ+PjJdPWFbYW4rND4+Ml0sYVtPZSs4Pj4y''@;'; put 'put ''XT1hW2FuKzg+PjJdLGFbT2UrMTI+PjJdPWFbYW4rMTI+PjJdLHl1KFNuLEVyPUQrcnQsSHIpLGFbTGU+PjJdPWFbU24+PjJdLGFbTGUrND4+Ml09YVtTbis0Pj4yXSxhW0xlKzg+PjJdPWFbU24rOD4+Ml0sYVtMZSsxMj4+Ml09YVtTbisxMj4+Ml0seXUoSG4sRXIsSGUpLGFbUmU+PjJdPWFb''@;'; put 'put ''SG4+PjJdLGFbUmUrND4+Ml09YVtIbis0Pj4yXSxhW1JlKzg+PjJdPWFbSG4rOD4+Ml0sYVtSZSsxMj4+Ml09YVtIbisxMj4+Ml0seXUoWnQsRXIsSHI9c3QtTSksYVtWZT4+Ml09YVtadD4+Ml0sYVtWZSs0Pj4yXT1hW1p0KzQ+PjJdLGFbVmUrOD4+Ml09YVtadCs4Pj4yXSxhW1ZlKzEyPj4y''@;'; put 'put ''XT1hW1p0KzEyPj4yXSx5dShjdCwuMzMzMzMzMzMzMzMzMzMzMypiK2t0LEhyKSxhW3FlPj4yXT1hW2N0Pj4yXSxhW3FlKzQ+PjJdPWFbY3QrND4+Ml0sYVtxZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbcWUrMTI+PjJdPWFbY3QrMTI+PjJdLF9bcT4+M109a3QsX1twZT4+M109c3QsbT0wIT0oMHxh''@;'; put 'put ''Wzk2KygwfGFbKHc9YysxNnwwKT4+Ml0pPj4yXSkmJihmcj0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSk+PjJdKT4+Ml18MCksX1s1Nisodz0wfGFbOTYrKDB8YVt3Pj4yXSk+PjJdKT4+M109LjUqKEV0PStfWyhmcj93''@;'; put 'put ''KzI0fDA6dyszMnwwKT4+M10pK0QrICtfWzE2Kyhmcj0wfGFbV2U+PjJdKT4+M10sX1t3KzY0Pj4zXT0rX1tmcisyND4+M10sZmVbdys4MT4+MF09MSxFdD5wKT9FdCttOkQsQXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sYnQsNyxBKSxjPVIsRz1HKzF8MDts''@;'; put 'put ''ZT11cn0oYyxmLHAsbSxBLHcpfWZ1bmN0aW9uIHNKKGwsYyxmLHAsbSxBKXttPSttLEF8PTA7dmFyIGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLFdlLGF0LFN0LGt0LEV0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxydD0wLHN0PTAs''@;'; put 'put ''WnQ9MCxFcj0wLGZyPTA7c3dpdGNoKEhyPWxlLGxlPWxlKzE2MDgwfDAsYW49SHIrODB8MCxTbj1Icis2NHwwLEhuPUhyKzQ4fDAsdXI9SHIrMzJ8MCxjdD1IcisxNnwwLGJ0PUhyLFI9KFI9LjUqKHA9K3ApLysoMHwoZnw9MCkpKT4yP1I6MixhdD0xNisoMHxhWygzPT0oMyZhWyhydD0wfGFb''@;'; put 'put ''KGx8PTApKygoY3w9MCk8PDIpPj4yXSk+PjJdfDApP3J0OnJ0KzQ4fDApKzQwPj4yXSl8MCxrdD0oRD0rX1syNCsocnQ9MHxhW3J0KzE2Pj4yXSk+PjNdKSsoV2U9K19bMjQrKGI9MHxhW2F0Pj4yXSk+PjNdKSxFdD0oTT0rX1tydCs2ND4+M10pK1dlLGs9KFN0PSh3PStfW3J0KzE2Pj4zXSkr''@;'; put 'put ''KHN0PStfW2IrMTY+PjNdKSk+PShzdD0ocD0rX1tydCs1Nj4+M10pK3N0KT8xOi0xLHE9LjUqK19bYis4MD4+M10sMHxvRCgwfFh0W3J0KzQ5Pj4wXSwwfFh0W3J0Kzg5Pj4wXSkpe2Nhc2UgMTU6dz0oUi1wKyArX1tiKzk2Pj4zXSkqazticmVhaztjYXNlIDM4Onc9KHArUisgK19bYis4OD4+''@;'; put 'put ''M10pKms7YnJlYWs7Y2FzZSA0MTpjYXNlIDQ4Onc9KFItdysgK19bYis5Nj4+M10pKms7YnJlYWs7Y2FzZSA1ODpjYXNlIDU3OmNhc2UgNTE6Y2FzZSA0NzpjYXNlIDM3OmNhc2UgMTQ6dz0uMzMzMzMzMzMzMzMzMzMzMyprKih3LXArICtfW2IrODg+PjNdKyArX1tiKzk2Pj4zXSk7YnJlYWs7''@;'; put 'put ''Y2FzZSA3Mzp3PSh3K1IrICtfW2IrODg+PjNdKSprO2JyZWFrO2Nhc2UgODM6dz0oK19bYis4OD4+M10rdykqazticmVhaztjYXNlIDg0Onc9KC41Kih3LXArICtfW2IrODg+PjNdKyArX1tiKzk2Pj4zXSkrUikqazticmVhaztjYXNlIDg1OmNhc2UgNzU6Y2FzZSA3NDp3PSguNSoody1wKyAr''@;'; put 'put ''X1tiKzg4Pj4zXSsgK19bYis5Nj4+M10pKzIqUikqazticmVhaztkZWZhdWx0Onc9MH1mb3IoUio9ayxPZT1hbis4fDAsTGU9YW4rMTZ8MCxSZT1hbiszMnwwLEhlPWFuKzQ4fDAsVmU9LjUqKHN0K1N0KSxxZT1hbis2NHwwLHJ0PWFuKzgwfDAsZ2U9YW4rOTZ8MCxiZT1hbisxMDR8MCxwZT0w''@;'; put 'put ''LHA9cSxEPXE8KEQ9MyoocS1EKSk/cTpELGs9cTwoTT0zKihxLU0pKT9xOk07ISgoMHxwZSk+PSgwfGYpKTspRz1jKzF8MCxjPTB8YVtsKyhjPDwyKT4+Ml0sTT1wK20sRCs9bSxrKz1tLHcrPVIsX1thbj4+M109U3QsX1tPZT4+M109a3QseXUoU24scT13K1N0LC4zMzMzMzMzMzMzMzMzMzMz''@;'; put 'put ''KkQra3QpLGFbTGU+PjJdPWFbU24+PjJdLGFbTGUrND4+Ml09YVtTbis0Pj4yXSxhW0xlKzg+PjJdPWFbU24rOD4+Ml0sYVtMZSsxMj4+Ml09YVtTbisxMj4+Ml0seXUoSG4scSxFcj1NK1dlKSxhW1JlPj4yXT1hW0huPj4yXSxhW1JlKzQ+PjJdPWFbSG4rND4+Ml0sYVtSZSs4Pj4yXT1hW0hu''@;'; put 'put ''Kzg+PjJdLGFbUmUrMTI+PjJdPWFbSG4rMTI+PjJdLHl1KHVyLFZlLEVyKSxhW0hlPj4yXT1hW3VyPj4yXSxhW0hlKzQ+PjJdPWFbdXIrND4+Ml0sYVtIZSs4Pj4yXT1hW3VyKzg+PjJdLGFbSGUrMTI+PjJdPWFbdXIrMTI+PjJdLHl1KGN0LHE9c3QtdyxFciksYVtxZT4+Ml09YVtjdD4+Ml0s''@;'; put 'put ''YVtxZSs0Pj4yXT1hW2N0KzQ+PjJdLGFbcWUrOD4+Ml09YVtjdCs4Pj4yXSxhW3FlKzEyPj4yXT1hW2N0KzEyPj4yXSx5dShidCxxLC4zMzMzMzMzMzMzMzMzMzMzKmsrRXQpLGFbcnQ+PjJdPWFbYnQ+PjJdLGFbcnQrND4+Ml09YVtidCs0Pj4yXSxhW3J0Kzg+PjJdPWFbYnQrOD4+Ml0sYVty''@;'; put 'put ''dCsxMj4+Ml09YVtidCsxMj4+Ml0sX1tnZT4+M109c3QsX1tiZT4+M109RXQscD0wIT0oMHxhWzk2KygwfGFbKGI9YysxNnwwKT4+Ml0pPj4yXSkmJihmcj0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKDB8YVsoMz09KDMmYVtjPj4yXXwwKT9jOmMrNDh8MCkrNDA+PjJdKSk+PjJdKT4+Ml18''@;'; put 'put ''MCksX1s2NCsoYj0wfGFbOTYrKDB8YVtiPj4yXSk+PjJdKT4+M109LjUqKFp0PStfWyhmcj9iKzMyfDA6YisyNHwwKT4+M10pK00rICtfWzI0Kyhmcj0wfGFbYXQ+PjJdKT4+M10sX1tiKzU2Pj4zXT0rX1tmcisxNj4+M10sZmVbYis4MT4+MF09MSxadD5tKT9adCtwOk0sQXUoYywwfGFbKDI9''@;'; put 'put ''PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sYW4sNyxBKSxjPUcscGU9cGUrMXwwO2xlPUhyfWZ1bmN0aW9uIHNsZShsLGMsZixwLG0sQSl7cD0rcCxBfD0wO3ZhciBxLHBlLGdlLGJlLE9lLExlLFJlLEhlLHJ0LFdlLGF0LFN0LGt0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLHc9MCxi''@;'; put 'put ''PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxWZT0wLHFlPTAsc3Q9MCxFdD0wLEhyPTAsRXI9MCxmcj0wO3N3aXRjaCh1cj1sZSxsZT1sZSsxNjA4MHwwLGJ0PXVyKzgwfDAsYW49dXIrNjR8MCxTbj11cis0OHwwLEhuPXVyKzMyfDAsWnQ9dXIrMTZ8MCxjdD11cixrPShrPS41KihtPSttKS8rKDB8''@;'; put 'put ''KGZ8PTApKSk+Mj9rOjIsV2U9MTYrKDB8YVsoMz09KDMmYVsocWU9MHxhWyhsfD0wKSsoKGN8PTApPDwyKT4+Ml0pPj4yXXwwKT9xZTpxZSs0OHwwKSs0MD4+Ml0pfDAsYXQ9KGI9K19bMTYrKHFlPTB8YVtxZSsxNj4+Ml0pPj4zXSkrKHJ0PStfWzE2KyhWZT0wfGFbV2U+PjJdKT4+M10pLGt0''@;'; put 'put ''PShtPStfW3FlKzU2Pj4zXSkrcnQsdz0oU3Q9K19bcWUrMjQ+PjNdKyhzdD0rX1tWZSsyND4+M10pKT49KHN0PStfW3FlKzY0Pj4zXStzdCk/MTotMSxEPStfW1ZlKzg4Pj4zXSwwfG9EKDB8WHRbcWUrNDk+PjBdLDB8WHRbcWUrODk+PjBdKSl7Y2FzZSA2NzpjYXNlIDEyOlN0PT1zdCYmKHc9''@;'; put 'put ''MC13fDApfWZvcihIcj0zKihiK0QpLGI9MyoobStEKSxiZT1rKisoMHx3KSxnZT1idCs4fDAsT2U9YnQrMTZ8MCxMZT1idCszMnwwLFJlPWJ0KzQ4fDAsSGU9LjUqKHN0K1N0KSxWZT1idCs2NHwwLHFlPWJ0KzgwfDAscT1idCs5NnwwLHBlPWJ0KzEwNHwwLEc9MCxNPTAsbT1ELGs9RDxIcj9E''@;'; put 'put ''OkhyLGI9RDxiP0Q6YjshKCgwfEcpPj0oMHxmKSk7KVI9YysxfDAsYz0wfGFbbCsoYzw8Mik+PjJdLEQ9bStwLGsrPXAsYis9cCxNKz1iZSxfW2J0Pj4zXT1hdCxfW2dlPj4zXT1TdCx5dShhbixhdC0uMzMzMzMzMzMzMzMzMzMzMyprLEhyPU0rU3QpLGFbT2U+PjJdPWFbYW4+PjJdLGFbT2Ur''@;'; put 'put ''ND4+Ml09YVthbis0Pj4yXSxhW09lKzg+PjJdPWFbYW4rOD4+Ml0sYVtPZSsxMj4+Ml09YVthbisxMj4+Ml0seXUoU24sRXI9cnQtRCxIciksYVtMZT4+Ml09YVtTbj4+Ml0sYVtMZSs0Pj4yXT1hW1NuKzQ+PjJdLGFbTGUrOD4+Ml09YVtTbis4Pj4yXSxhW0xlKzEyPj4yXT1hW1NuKzEyPj4y''@;'; put 'put ''XSx5dShIbixFcixIZSksYVtSZT4+Ml09YVtIbj4+Ml0sYVtSZSs0Pj4yXT1hW0huKzQ+PjJdLGFbUmUrOD4+Ml09YVtIbis4Pj4yXSxhW1JlKzEyPj4yXT1hW0huKzEyPj4yXSx5dShadCxFcixIcj1zdC1NKSxhW1ZlPj4yXT1hW1p0Pj4yXSxhW1ZlKzQ+PjJdPWFbWnQrND4+Ml0sYVtWZSs4''@;'; put 'put ''Pj4yXT1hW1p0Kzg+PjJdLGFbVmUrMTI+PjJdPWFbWnQrMTI+PjJdLHl1KGN0LGt0LS4zMzMzMzMzMzMzMzMzMzMzKmIsSHIpLGFbcWU+PjJdPWFbY3Q+PjJdLGFbcWUrND4+Ml09YVtjdCs0Pj4yXSxhW3FlKzg+PjJdPWFbY3QrOD4+Ml0sYVtxZSsxMj4+Ml09YVtjdCsxMj4+Ml0sX1txPj4z''@;'; put 'put ''XT1rdCxfW3BlPj4zXT1zdCxtPTAhPSgwfGFbOTYrKDB8YVsodz1jKzE2fDApPj4yXSk+PjJdKSYmKGZyPTA9PSgxJmFbMTE2KygwfGFbMTYrKDB8Y3IoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pKT4+Ml0pPj4yXXwwKSxfWzU2Kyh3PTB8YVs5NisoMHxhW3c+PjJd''@;'; put 'put ''KT4+Ml0pPj4zXT0tLjUqKEV0PStfWyhmcj93KzI0fDA6dyszMnwwKT4+M10pLUQrICtfWzE2Kyhmcj0wfGFbV2U+PjJdKT4+M10sX1t3KzY0Pj4zXT0rX1tmcisyND4+M10sZmVbdys4MT4+MF09MSxFdD5wKT9FdCttOkQsQXUoYywwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0''@;'; put 'put ''MD4+Ml0sYnQsNyxBKSxjPVIsRz1HKzF8MDtsZT11cn1mdW5jdGlvbiB1bGUobCxjLGYscCxtLEEpe209K20sQXw9MDt2YXIgcSxwZSxiZSxPZSxMZSxSZSxWZSxhdCxTdCxrdCxzdCxadCxjdCxidCxhbixTbixIbix1cix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsZ2U9MCxIZT0wLHFl''@;'; put 'put ''PTAscnQ9MCxXZT0wLEV0PTAsSHI9MCxFcj0wLGZyPTA7Zm9yKHVyPWxlLGxlPWxlKzE2MDgwfDAsYnQ9dXIrODB8MCxhbj11cis2NHwwLFNuPXVyKzQ4fDAsSG49dXIrMzJ8MCxadD11cisxNnwwLGN0PXVyLE9lPTE2KygwfGFbKDM9PSgzJmFbKHJ0PTB8YVsobHw9MCkrKChjfD0wKTw8Mik+''@;'; put 'put ''PjJdKT4+Ml18MCk/cnQ6cnQrNDh8MCkrNDA+PjJdKXwwLFJlPShiPStfWzI0KyhydD0wfGFbcnQrMTY+PjJdKT4+M10pKyhiZT0rX1syNCsoV2U9MHxhW09lPj4yXSk+PjNdKSxWZT0oaz0rX1tydCs2ND4+M10pK2JlLGdlPShMZT0rX1tydCsxNj4+M10rKEhlPStfW1dlKzE2Pj4zXSkpPj0o''@;'; put 'put ''SGU9K19bcnQrNTY+PjNdK0hlKT8xOi0xLE09LjUqK19bV2UrODA+PjNdLHFlPSgocWU9LjUqKHA9K3ApLysoMHwoZnw9MCkpKT4yP3FlOjIpKisoMHwoKHJ0PTY3PT0oMHxvRCgwfFh0W3J0KzQ5Pj4wXSwwfFh0W3J0Kzg5Pj4wXSkpKT8wLWdlfDA6Z2UpKSxnZT1idCs4fDAscnQ9YnQrMTZ8''@;'; put 'put ''MCxXZT1idCszMnwwLGF0PWJ0KzQ4fDAsU3Q9LjUqKEhlK0xlKSxrdD1idCs2NHwwLHN0PWJ0KzgwfDAscT1idCs5NnwwLHBlPWJ0KzEwNHwwLHA9TSx3PTAsYj1NPChiPTMqKGIrTSkpP006YixrPU08KGs9MyooaytNKSk/TTprLFI9MDshKCgwfFIpPj0oMHxmKSk7KUc9YysxfDAsRD0wfGFb''@;'; put 'put ''bCsoYzw8Mik+PjJdLE09cCttLGIrPW0says9bSx3Kz1xZSxfW2J0Pj4zXT1MZSxfW2dlPj4zXT1SZSx5dShhbixIcj13K0xlLFJlLS4zMzMzMzMzMzMzMzMzMzMzKmIpLGFbcnQ+PjJdPWFbYW4+PjJdLGFbcnQrND4+Ml09YVthbis0Pj4yXSxhW3J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtydCsx''@;'; put 'put ''Mj4+Ml09YVthbisxMj4+Ml0seXUoU24sSHIsRXI9YmUtTSksYVtXZT4+Ml09YVtTbj4+Ml0sYVtXZSs0Pj4yXT1hW1NuKzQ+PjJdLGFbV2UrOD4+Ml09YVtTbis4Pj4yXSxhW1dlKzEyPj4yXT1hW1NuKzEyPj4yXSx5dShIbixTdCxFciksYVthdD4+Ml09YVtIbj4+Ml0sYVthdCs0Pj4yXT1h''@;'; put 'put ''W0huKzQ+PjJdLGFbYXQrOD4+Ml09YVtIbis4Pj4yXSxhW2F0KzEyPj4yXT1hW0huKzEyPj4yXSx5dShadCxIcj1IZS13LEVyKSxhW2t0Pj4yXT1hW1p0Pj4yXSxhW2t0KzQ+PjJdPWFbWnQrND4+Ml0sYVtrdCs4Pj4yXT1hW1p0Kzg+PjJdLGFba3QrMTI+PjJdPWFbWnQrMTI+PjJdLHl1KGN0''@;'; put 'put ''LEhyLFZlLS4zMzMzMzMzMzMzMzMzMzMzKmspLGFbc3Q+PjJdPWFbY3Q+PjJdLGFbc3QrND4+Ml09YVtjdCs0Pj4yXSxhW3N0Kzg+PjJdPWFbY3QrOD4+Ml0sYVtzdCsxMj4+Ml09YVtjdCsxMj4+Ml0sX1txPj4zXT1IZSxfW3BlPj4zXT1WZSxwPTAhPSgwfGFbOTYrKDB8YVsoYz1EKzE2fDAp''@;'; put 'put ''Pj4yXSk+PjJdKSYmKGZyPTA9PSgxJmFbMTE2KygwfGFbMTYrKDB8Y3IoMHxhWygzPT0oMyZhW0Q+PjJdfDApP0Q6RCs0OHwwKSs0MD4+Ml0pKT4+Ml0pPj4yXXwwKSxfWzY0KyhjPTB8YVs5NisoMHxhW2M+PjJdKT4+Ml0pPj4zXT0tLjUqKEV0PStfWyhmcj9jKzMyfDA6YysyNHwwKT4+M10p''@;'; put 'put ''LU0rICtfWzI0Kyhmcj0wfGFbT2U+PjJdKT4+M10sX1tjKzU2Pj4zXT0rX1tmcisxNj4+M10sZmVbYys4MT4+MF09MSxFdD5tKT9FdCtwOk0sQXUoRCwwfGFbKDI9PSgzJmFbRD4+Ml18MCk/RDpEKy00OHwwKSs0MD4+Ml0sYnQsNyxBKSxjPUcsUj1SKzF8MDtsZT11cn1mdW5jdGlvbiBvRChs''@;'; put 'put ''LGMpe2x8PTAsY3w9MDt2YXIgZj0wO2ZvcihmPTA7Oyl7aWYoKDB8Zik+PTgpe2M9LTE7YnJlYWt9aWYoKDB8YVsyMjA0NCsoZjw8Mik+PjJdKT09KDB8Yykpe2M9ZjticmVha31mPWYrMXwwfWZvcihmPTA7Oyl7aWYoKDB8Zik+PTgpe2Y9LTE7YnJlYWt9aWYoKDB8YVsyMjA0NCsoZjw8Mik+''@;'; put 'put ''PjJdKT09KDB8bCkpYnJlYWs7Zj1mKzF8MH1yZXR1cm4gMHwoKGZ8Y3wwKTwwPzA6MHxhWzIyMDc2KyhmPDw1KSsoYzw8Mik+PjJdKX1mdW5jdGlvbiB5dShsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiB2TihsKXtsfD0wO3ZhciBjPTAsZj0wOzAh''@;'; put 'put ''PSgwfGFbNDcyMDNdKXwwIT0oMHxhWzQ3MjAyXSkmJigwfChmPTB8YVsxMDArKDB8YVsoYz1sKzE2fDApPj4yXSk+PjJdKSYmMD09KDB8ZmVbZis4MT4+MF0pJiYwfHZrKGwsMSkmJm40KGY9MHxjcigwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpsKzQ4fDApKzQwPj4yXSksMHxhWzEwMCsoMHxh''@;'; put 'put ''W2M+PjJdKT4+Ml0pLDB8KGY9MHxhWzEwNCsoMHxhW2M+PjJdKT4+Ml0pJiYwPT0oMHxmZVtmKzgxPj4wXSkmJjB8dmsobCwwKSYmbjQoZj0wfGNyKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSwwfGFbMTA0KygwfGFbYz4+Ml0pPj4yXSkpfWZ1bmN0aW9uIHZrKGws''@;'; put 'put ''Yyl7Y3w9MDt2YXIgRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscT0wO0c9bGUsbGU9bGUrOTZ8MCxEPUcrMzJ8MCxrPUcrMTZ8MCxNPUcsQT0xNisobHw9MCl8MDtkb3tpZig2IT0oMHxmZVsxMTIrKDB8YVtBPj4yXSk+PjBdKSl7aWYoMD09KDB8KGY9MHxhWzQ3''@;'; put 'put ''MjAzXSkpfHwwPT0oMHxmZVsoMHxIbyhsLGYpKT4+MF0pKXtpZighKGY9MHxhWzQ3MjAyXSkpe2Y9MDticmVha31pZighKDB8ZmVbKDB8SG8obCxmKSk+PjBdKSl7Zj0wO2JyZWFrfX1pZihSPTB8YVtBPj4yXSxSPTB8YVsoKGM9Yzw8MjQ+PjI0PT0wKT9SKzEwNHwwOlIrMTAwfDApPj4yXSxm''@;'; put 'put ''PTB8VDcobCkpe2I9MHxhW2Y+PjJdO2Rve2lmKGMpe2lmKDB8YVtiKzg+PjJdKXt3PStfWyhmPTB8YVtiPj4yXSk+PjNdLG09K19bYisxNj4+M10sZj1mKzh8MCxwPStfW2IrMjQ+PjNdO2JyZWFrfWZvcihtPStfWyhmPTB8YVtiPj4yXSk+PjNdLHA9K19bZis4Pj4zXSxmPTA7NCE9KDB8Zik7''@;'; put 'put ''KWFbKE09RCsoZjw8NCl8MCk+PjJdPWFbKEE9KDB8YVtiPj4yXSkrKGY8PDQpfDApPj4yXSxhW00rND4+Ml09YVtBKzQ+PjJdLGFbTSs4Pj4yXT1hW0ErOD4+Ml0sYVtNKzEyPj4yXT1hW0ErMTI+PjJdLGY9ZisxfDA7d3UoayxELDMsLjEsMCwwKSx3PStfW2s+PjNdLGY9ays4fDB9ZWxzZXtp''@;'; put 'put ''ZihBPWIrKDQ4KihjPSgwfGFbZis0Pj4yXSktMXwwKXwwKXwwLDB8YVtiKyg0OCpjfDApKzEyPj4yXSl7dz0rX1soRD0wfGFbQT4+Ml0pKygoZj0oMHxhW2IrKDQ4KmN8MCkrND4+Ml0pLTF8MCk8PDQpPj4zXSxtPStfW2IrKDQ4KmN8MCkrMzI+PjNdLGY9RCsoZjw8NCkrOHwwLHA9K19bYiso''@;'; put 'put ''NDgqY3wwKSs0MD4+M107YnJlYWt9Zm9yKG09K19bKGs9MHxhW0E+PjJdKSsoKGY9KDB8YVsoYz1iKyg0OCpjfDApKzR8MCk+PjJdKS0xfDApPDw0KT4+M10scD0rX1trKyhmPDw0KSs4Pj4zXSxmPTA7NCE9KDB8Zik7KWFbKGs9RCsoZjw8NCl8MCk+PjJdPWFbKGI9KDB8YVtBPj4yXSkrKGYr''@;'; put 'put ''LTQrKDB8YVtjPj4yXSk8PDQpfDApPj4yXSxhW2srND4+Ml09YVtiKzQ+PjJdLGFbays4Pj4yXT1hW2IrOD4+Ml0sYVtrKzEyPj4yXT1hW2IrMTI+PjJdLGY9ZisxfDA7d3UoTSxELDMsLjksMCwwKSx3PStfW00+PjNdLGY9TSs4fDB9fXdoaWxlKDApO3E9K1VsKCsoK19bZj4+M10tcCksKyh3''@;'; put 'put ''LW0pKSxxPS4wMTc0NTMyOTI1MTk5NDMyOTUqK01sKGwsMHxhWzQ3MjAzXSwtMjUsLTE4MCkrcSx3PTEwKitNbChsLDB8YVs0NzIwMl0sMSwwKSxfW1IrNTY+PjNdPXcqK2hhKCtxKSttLF9bUis2ND4+M109K0RhKCtxKSp3K3AsZmVbUis4MT4+MF09MSxmPTF9ZWxzZSBmPTB9ZWxzZSBmPTB9''@;'; put 'put ''d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxmfWZ1bmN0aW9uIFQ3KGwpe3ZhciBwLEEsYz0wLGY9MCxtPTA7Zm9yKEE9bGUsbGU9bGUrMTZ8MCxwPUEsYz1sfD0wOyEoMHwoYz0wfGFbOCsoZj0wfGFbYysxNj4+Ml0pPj4yXSkpOyl7aWYoISgwfGZlW2YrMTEyPj4wXSkpe209NTticmVha31jPTB8''@;'; put 'put ''YVtmKzExNj4+Ml19cmV0dXJuIDU9PSgwfG0pJiYobT0wfHRpKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSxjPTB8dGkoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6bCstNDh8MCkrNDA+PjJdKSxhW3A+PjJdPW0sYVtwKzQ+PjJdPWMsJHIoMSwxMDY1NzkscCksYz0w''@;'; put 'put ''KSxsZT1BLDB8Y31mdW5jdGlvbiB1SihsLGMsZil7bHw9MDt2YXIgcCxtLEEsdyxiLGssTSxELFIscSxwZSxnZSxiZSxHPTA7cGU9bGUsbGU9bGUrOTZ8MCxrPXBlKzgwfDAsTT1wZSs2NHwwLEQ9cGUrNDh8MCxxPXBlLGI9MHxpdFsxMzYrKDB8YVsxNisoY3w9MCk+PjJdKT4+MV0sZnVuY3Rp''@;'; put 'put ''b24gY0oobCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHcscD0wLGI9MCxrPTAsTT0wO3c9bGUsbGU9bGUrMzJ8MCxtPXcscD0wfGFbKGs9MHxhWyhsfD0wKT4+Ml0pPj4yXSxiPTB8YVtrKzg+PjJdLGFbKEE9dysxNnwwKT4+Ml09YVsoTT1rKzE2fDApPj4yXSxhW0ErND4+Ml09YVtNKzQ+PjJd''@;'; put 'put ''LGFbQSs4Pj4yXT1hW00rOD4+Ml0sYVtBKzEyPj4yXT1hW00rMTI+PjJdLGFbbT4+Ml09YVsoaz1rKzMyfDApPj4yXSxhW20rND4+Ml09YVtrKzQ+PjJdLGFbbSs4Pj4yXT1hW2srOD4+Ml0sYVttKzEyPj4yXT1hW2srMTI+PjJdLGI/KGFbYz4+Ml09YVtBPj4yXSxhW2MrND4+Ml09YVtBKzQ+''@;'; put 'put ''PjJdLGFbYys4Pj4yXT1hW0ErOD4+Ml0sYVtjKzEyPj4yXT1hW0ErMTI+PjJdKTooYVtjPj4yXT1hW3A+PjJdLGFbYys0Pj4yXT1hW3ArND4+Ml0sYVtjKzg+PjJdPWFbcCs4Pj4yXSxhW2MrMTI+PjJdPWFbcCsxMj4+Ml0pLHA9MHxhWyhiPTB8YVtsPj4yXSkrKDQ4KihrPSgwfGFbbCs0Pj4y''@;'; put 'put ''XSktMXwwKXwwKT4+Ml0sbD0wfGFbYisoNDgqa3wwKSs0Pj4yXSxNPTB8YVtiKyg0OCprfDApKzEyPj4yXSxhW0E+PjJdPWFbKGM9YisoNDgqa3wwKSsxNnwwKT4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxhW20+PjJd''@;'; put 'put ''PWFbKGs9YisoNDgqa3wwKSszMnwwKT4+Ml0sYVttKzQ+PjJdPWFbays0Pj4yXSxhW20rOD4+Ml09YVtrKzg+PjJdLGFbbSsxMj4+Ml09YVtrKzEyPj4yXSxNPyhhW2Y+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPWFbbSs0Pj4yXSxhW2YrOD4+Ml09YVttKzg+PjJdLGFbZisxMj4+Ml09YVttKzEy''@;'; put 'put ''Pj4yXSk6KGFbZj4+Ml09YVsoTT1wKyhsKy0xPDw0KXwwKT4+Ml0sYVtmKzQ+PjJdPWFbTSs0Pj4yXSxhW2YrOD4+Ml09YVtNKzg+PjJdLGFbZisxMj4+Ml09YVtNKzEyPj4yXSksbGU9d30oMHxhWzgrKDB8YVsoYz0xNisoZnw9MCl8MCk+PjJdKT4+Ml0sUj1wZSszMnwwLEc9cGUrMTZ8MCks''@;'; put 'put ''Z2U9KHA9K19bUj4+M10pLShtPStfW0c+PjNdKSxiZT0oQT0rX1tSKzg+PjNdKS0odz0rX1tHKzg+PjNdKTtlOmRve2lmKGJlKmJlK2dlKmdlPDFlLTYpYVtEPj4yXT1hW1I+PjJdLGFbRCs0Pj4yXT1hW1IrND4+Ml0sYVtEKzg+PjJdPWFbUis4Pj4yXSxhW0QrMTI+PjJdPWFbUisxMj4+Ml07''@;'; put 'put ''ZWxzZSBzd2l0Y2goMTQmYil7Y2FzZSA0OmNhc2UgMTA6X1tNPj4zXT0uNSoobStwKSxfW00rOD4+M109LjUqKHcrQSksRz0wfGFbOCsoMHxhW2M+PjJdKT4+Ml0sYVtrPj4yXT1hW00+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsx''@;'; put 'put ''Mj4+Ml0scEQocSxHLGspLGFbRD4+Ml09YVtxPj4yXSxhW0QrND4+Ml09YVtxKzQ+PjJdLGFbRCs4Pj4yXT1hW3ErOD4+Ml0sYVtEKzEyPj4yXT1hW3ErMTI+PjJdO2JyZWFrIGU7ZGVmYXVsdDpjbGUoRCwwfGFbOCsoMHxhW2M+PjJdKT4+Ml0sUixHKTticmVhayBlfX13aGlsZSgwKTthW2w+''@;'; put 'put ''PjJdPWFbRD4+Ml0sYVtsKzQ+PjJdPWFbRCs0Pj4yXSxhW2wrOD4+Ml09YVtEKzg+PjJdLGFbbCsxMj4+Ml09YVtEKzEyPj4yXSxsZT1wZX1mdW5jdGlvbiBjbGUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIGdlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxw''@;'; put 'put ''ZT0wLGJlPTA7Zm9yKGdlPTB8YVs0KyhjfD0wKT4+Ml0sQT0wLG09MDshKCgwfG0pPj0oMHxnZSkpOyl7Zm9yKGs9MHxhWyhNPTB8YVtjPj4yXSkrKDQ4Km18MCk+PjJdLE09MHxhW00rKDQ4Km18MCkrND4+Ml0sdz0zLGI9MDshKCgwfHcpPj0oMHxNKSk7KXBlPStfW2srKGI8PDQpPj4zXS0r''@;'; put 'put ''X1trKyh3PDw0KT4+M10scT0rX1trKyhiPDw0KSs4Pj4zXS0rX1trKyh3PDw0KSs4Pj4zXSx3PXcrM3wwLGI9YiszfDAsQT0rRDAoKyhxKnErcGUqcGUpKStBO209bSsxfDB9TT0wLEEqPS41O2U6Zm9yKDs7KXtpZigoMHxNKT49KDB8Z2UpKXttPTE1O2JyZWFrfWZvcihiPTB8YVsoaz0wfGFb''@;'; put 'put ''Yz4+Ml0pKyg0OCpNfDApPj4yXSxrPTB8YVtrKyg0OCpNfDApKzQ+PjJdLG09Myx3PTA7ISgoMHxtKT49KDB8aykpOyl7aWYoKHBlPStEMCgrKChiZT0ocT0rX1tiKyh3PDw0KSs4Pj4zXSktKEc9K19bYisobTw8NCkrOD4+M10pKSpiZSsocGU9KEQ9K19bYisodzw8NCk+PjNdKS0oUj0rX1ti''@;'; put 'put ''KyhtPDw0KT4+M10pKSpwZSkpKT49QSl7bT0xMjticmVhayBlfW09bSszfDAsdz13KzN8MCxBLT1wZX1NPU0rMXwwfWlmKDEyPT0oMHxtKSlyZXR1cm4gX1tmPj4zXT1ELF9bZis4Pj4zXT1xLF9bcD4+M109UixfW3ArOD4+M109RyxfW2w+PjNdPSgoYmU9cGUtQSkqRCtSKkEpL3BlLHZvaWQo''@;'; put 'put ''X1tsKzg+PjNdPShiZSpxK0cqQSkvcGUpOzE1PT0oMHxtKSYmUHIoMTM4NzEyLDEwNjUxNCwxMzE2LDEwNjY0MSl9ZnVuY3Rpb24gdGcobCxjLGYscCl7dk4oY3w9MCl9ZnVuY3Rpb24gZmxlKGwsYyxmLHAsbSl7Y3w9MCxmPStmLHB8PTAsbXw9MDt2YXIgV2UsYXQsU3Qsa3Qsc3QsRXQsWnQs''@;'; put 'put ''Y3QsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxidD0wO2ZvcihadD0wfGZ1bmN0aW9uIGhsZShsKXtsfD0wO3ZhciBtLEEsdyxiLGssTSxELFIsRyxxLHBlLGM9MCxmPTAscD0wLGdl''@;'; put 'put ''PTAsYmU9MCxPZT0wO3BlPWxlLGxlPWxlKzE0NHwwLGI9cGUrMTI4fDAsdz1wZSsxMTJ8MCxrPXBlKzk2fDAsTT1wZSs2NHwwLEQ9cGUsUj1wZSs4MHwwLEc9MHxmdW5jdGlvbiBmSigpe3ZhciBsO3JldHVybiBsPTB8dnIoMTIpLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0yZTMsYVtsPj4yXT0w''@;'; put 'put ''fHZyKDEyOGUzKSwwfGx9KCkscT0wfGFbbCs0Pj4yXSxhW2I+PjJdPWFbKG09MHxhW2w+PjJdKT4+Ml0sYVtiKzQ+PjJdPWFbbSs0Pj4yXSxhW2IrOD4+Ml09YVttKzg+PjJdLGFbYisxMj4+Ml09YVttKzEyPj4yXSxoSihHLGIsMCksYVsoQT1EKzQ4fDApPj4yXT1hW20+PjJdLGFbQSs0Pj4y''@;'; put 'put ''XT1hW20rND4+Ml0sYVtBKzg+PjJdPWFbbSs4Pj4yXSxhW0ErMTI+PjJdPWFbbSsxMj4+Ml0sZj0wLGM9MDtlOmZvcig7cD1mKzN8MCwhKCgwfHApPj0oMHxxKSk7KXtmb3IoYVtEPj4yXT1hW0E+PjJdLGFbRCs0Pj4yXT1hW0ErND4+Ml0sYVtEKzg+PjJdPWFbQSs4Pj4yXSxhW0QrMTI+PjJd''@;'; put 'put ''PWFbQSsxMj4+Ml0sbD0xOzQhPSgwfGwpOylhWyhnZT1EKyhsPDw0KXwwKT4+Ml09YVsoYmU9bSsobCtmPDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW2JlKzQ+PjJdLGFbZ2UrOD4+Ml09YVtiZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW2JlKzEyPj4yXSxsPWwrMXwwO2ZvcihhW2s+PjJdPWFbRD4+''@;'; put 'put ''Ml0sYVtrKzQ+PjJdPWFbRCs0Pj4yXSxhW2srOD4+Ml09YVtEKzg+PjJdLGFbaysxMj4+Ml09YVtEKzEyPj4yXSxsPTE7Oyl7aWYoMjE9PSgwfGwpKXtmPXA7Y29udGludWUgZX13dShSLEQsMywuMDUqKygwfGwpLDAsMCksYVtNPj4yXT1hW1I+PjJdLGFbTSs0Pj4yXT1hW1IrND4+Ml0sYVtN''@;'; put 'put ''Kzg+PjJdPWFbUis4Pj4yXSxhW00rMTI+PjJdPWFbUisxMj4+Ml0sYVt3Pj4yXT1hW2s+PjJdLGFbdys0Pj4yXT1hW2srND4+Ml0sYVt3Kzg+PjJdPWFbays4Pj4yXSxhW3crMTI+PjJdPWFbaysxMj4+Ml0sYVtiPj4yXT1hW1I+PjJdLGFbYis0Pj4yXT1hW1IrND4+Ml0sYVtiKzg+PjJdPWFb''@;'; put 'put ''Uis4Pj4yXSxhW2IrMTI+PjJdPWFbUisxMj4+Ml0sT2U9K3BsZSh3LGIpK2MsYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0saEooRyxiLE9lKSxhW2s+PjJdPWFbTT4+Ml0sYVtrKzQ+PjJdPWFbTSs0''@;'; put 'put ''Pj4yXSxhW2srOD4+Ml09YVtNKzg+PjJdLGFbaysxMj4+Ml09YVtNKzEyPj4yXSxsPWwrMXwwLGM9T2V9fXJldHVybiBmdW5jdGlvbiBnbGUobCl7dmFyIGM7KDB8YVs4KyhsfD0wKT4+Ml0pPigwfChjPTB8YVtsKzQ+PjJdKSkmJihhW2w+PjJdPTB8VjAoMHxhW2w+PjJdLGM8PDYpKX0oRyks''@;'; put 'put ''bGU9cGUsMHxHfShsfD0wKSxXZT0rX1soY3Q9MHxhW1p0Pj4yXSkrKChzdD0oRXQ9MHxhW1p0KzQ+PjJdKS0xfDApPDw2KSsxNj4+M10sYXQ9KygwfEV0KSxTdD0yPT0oMHxtKSxrdD0wIT0oMHxwKSxEPTAsdz0wLEE9MCxrPTAsTT0wOyEoKDB8RCk+PSgwfEV0KSk7KXtsPX5+K2FEKCsoRCst''@;'; put 'put ''MXwwKSxhdCksYnQ9fn4rYUQoKygwfChydD1EKzF8MCkpLGF0KSxiZT0rX1soZ2U9Y3QrKEQ8PDYpKzE2fDApPj4zXSxPZT1jdCsoRDw8NikrMjR8MCxMZT1jdCsoRDw8NikrMzJ8MCxSZT1jdCsoRDw8NikrNDB8MCxIZT1jdCsoRDw8NikrNDh8MCxWZT1jdCsoRDw8NikrNTZ8MCxiPStBTigr''@;'; put 'put ''X1tjdCsoYnQ8PDYpKzg+PjNdLShrPStfWyhxZT1jdCsoRDw8NikrOHwwKT4+M10pLCtfW2N0KyhidDw8Nik+PjNdLShNPStfWyhSPWN0KyhEPDw2KXwwKT4+M10pKSxxPStBTigrX1tjdCsobDw8NikrOD4+M10taywrX1tjdCsobDw8Nik+PjNdLU0pLHBlPSt1d1s3JmNdKGJlLFdlLGYpLGw9''@;'; put 'put ''MD09KDB8RCk7ZG97aWYobHwoMHxEKT09KDB8c3QpKXtpZihsKXtpZihBPWIrMS41NzA3OTYzMjY3OTQ4OTY2LCFTdCl7bD0wLEc9QSx3PXBlO2JyZWFrfWw9MCxHPUEsdz1wZSxrLT0rRGEoK2IpKnBlLE0tPStoYSgrYikqcGU7YnJlYWt9aWYoQT1xKy0xLjU3MDc5NjMyNjc5NDg5NjYsIVN0''@;'; put 'put ''KXtsPTAsRz1BLHc9cGU7YnJlYWt9bD0wLEc9QSx3PXBlLGstPStEYSgrcSkqcGUsTS09K2hhKCtxKSpwZTticmVha31iPShHPTEuNTcwNzk2MzI2Nzk0ODk2Ni0uNSooKEc9Yi1xKTwwP0crNi4yODMxODUzMDcxNzk1ODY6RykpKyhBPWIrMS41NzA3OTYzMjY3OTQ4OTY2KSxrdHwodz0wPT0o''@;'; put 'put ''dz0raGEoK0cpKT8wOnBlL3cpPjEwKnBlPyhxPSthRChxKy0xLjU3MDc5NjMyNjc5NDg5NjYsNi4yODMxODUzMDcxNzk1ODYpLGw9MSxHPSthRChBLDYuMjgzMTg1MzA3MTc5NTg2KSx3PXBlLEE9cSk6KGw9MCxHPWIsQT1iKX13aGlsZSgwKTtfW1I+PjNdPU0sX1txZT4+M109ayxfW2dlPj4z''@;'; put 'put ''XT1iZSxmZVtPZT4+MF09MTA4LF9bTGU+PjNdPUEsX1tSZT4+M109dyxhW0hlPj4yXT1sLF9bVmU+PjNdPUcsRD1ydH1mb3IoUj0wfHZyKDEyKSxsPTA7ISgoMHxsKT49KDB8RXQpKTspTT0rX1tjdCsobDw8Nik+PjNdLGs9K19bY3QrKGw8PDYpKzg+PjNdLHc9K19bY3QrKGw8PDYpKzQwPj4z''@;'; put 'put ''XSxidD0wfGFbY3QrKGw8PDYpKzQ4Pj4yXSxiPStfW2N0KyhsPDw2KSs1Nj4+M10sSTcoUiwraGEoKyhBPStfW2N0KyhsPDw2KSszMj4+M10pKSp3K00sK0RhKCtBKSp3K2spLDB8YnQmJnlOKE0sayx3LDEsQSxiLHAsUiksbD1sKzF8MDtmb3IoYj1BKzMuMTQxNTkyNjUzNTg5NzkzLChEPTE9''@;'; put 'put ''PSgwfG0pKT93TihSLE0sayx3LEEsYik6KEk3KFIsK2hhKCtiKSp3K00sK0RhKCtiKSp3K2spLEE9YiksbD1FdCstMnwwLGI9TTshKCgwfGwpPD0tMSk7KU09K19bY3QrKGw8PDYpPj4zXSxrPStfW2N0KyhsPDw2KSs4Pj4zXSx3PStfW2N0KyhsPDw2KSs0MD4+M10sYnQ9MHxhW2N0KyhsPDw2''@;'; put 'put ''KSs0OD4+Ml0sQT0rX1tjdCsobDw8NikrMzI+PjNdKzMuMTQxNTkyNjUzNTg5NzkzLEk3KFIsK2hhKCsoYj0rX1tjdCsobDw8NikrNTY+PjNdKzMuMTQxNTkyNjUzNTg5NzkzKSkqdytNLCtEYSgrYikqdytrKSwwfGJ0JiZ5TihNLGssdywwLEEsYixwLFIpLGw9bCstMXwwLGI9TTtyZXR1cm4g''@;'; put 'put ''RCYmd04oUixiLGssdyxBLEErMy4xNDE1OTI2NTM1ODk3OTMpLGZ1bmN0aW9uIGRsZShsKXtGdCgwfGFbKGx8PTApPj4yXSksRnQobCl9KFp0KSwwfFJ9ZnVuY3Rpb24gYUQobCxjKXt2YXIgZjtyZXR1cm4gZj0obD0rbCktK2NmKCtsLyhjPStjKSkqYywrKCEobDwwKSYhKGw+PWMpP2w6Zil9''@;'; put 'put ''ZnVuY3Rpb24gQU4obCxjKXtyZXR1cm4gMD09KGw9K2wpJjA9PShjPStjKT9sPTA6KGw9K1VsKCtsLCtjKSk+PTB8fChsKz02LjI4MzE4NTMwNzE3OTU4NiksK2x9ZnVuY3Rpb24gSTcobCxjLGYpe2M9K2MsZj0rZjt2YXIgcD0wLG09MDsoMHwocD0wfGFbKGx8PTApPj4yXSkpPCgwfGFbKG09''@;'; put 'put ''bCs0fDApPj4yXSk/bT0wfGFbbCs4Pj4yXTooYVttPj4yXT0yZTMsbT0wfFYwKDB8YVsocD1sKzh8MCk+PjJdLDMyZTMpLGFbcD4+Ml09bSxwPTB8YVtsPj4yXSksYVtsPj4yXT1wKzEsX1ttKyhwPDw0KT4+M109YyxfW20rKHA8PDQpKzg+PjNdPWZ9ZnVuY3Rpb24geU4obCxjLGYscCxtLEEs''@;'; put 'put ''dyxiKXt2YXIgaztsPStsLGM9K2MsZj0rZixtPSttLEE9K0Esd3w9MCxifD0wLGs9KHA9MD09KDB8KHB8PTApKSk/bTpBO2Rve2lmKDE9PSgwfHcpKXtpZigobT0obT0ocD9BOm0pLWspPD0uMDAxNzQ1MzI5MjUxOTk0MzI5Nj9tKzYuMjgzMTg1MzA3MTc5NTg2Om0pPDMuMTQxNTkyNjUzNTg5''@;'; put 'put ''NzkzKXt3TihiLGwsYyxmLG0rayxrKTticmVha31JNyhiLCtoYSgraykqZitsLCtEYSgraykqZitsKTticmVha31JNyhiLCtoYSgraykqZitsLCtEYSgraykqZitsKX13aGlsZSgwKX1mdW5jdGlvbiB3TihsLGMsZixwLG0sQSl7Yz0rYyxmPStmLHA9K3AsQT0rQTt2YXIgdz0wLGI9MDtJNyhs''@;'; put 'put ''fD0wLCtoYSgrKG09K20pKSpwK2MsK0RhKCttKSpwK2YpO2U6ZG97aWYoMCE9cCl7Zm9yKDtBPm07KUErPS02LjI4MzE4NTMwNzE3OTU4Njtmb3IoQT1tLUE7QT42LjI4MzE4NTMwNzE3OTU4NjspQSs9LTYuMjgzMTg1MzA3MTc5NTg2O2ZvcihBKj0uMDUyNjMxNTc4OTQ3MzY4NDIsdz0xOzsp''@;'; put 'put ''e2lmKDIwPT0oMHx3KSlicmVhayBlO0k3KGwsK2hhKCsoYj1tLUEqKygwfHcpKSkqcCtjLCtEYSgrYikqcCtmKSx3PXcrMXwwfX19d2hpbGUoMCl9ZnVuY3Rpb24gaEoobCxjLGYpe2N8PTAsZj0rZjt2YXIgbSxBLHcscD0wOygwfChwPTB8YVsodz00KyhsfD0wKXwwKT4+Ml0pKTwoMHwoQT0w''@;'; put 'put ''fGFbKG09bCs4fDApPj4yXSkpP2w9MHxhW2w+PjJdOihhW20+PjJdPUE8PDEscD0wfFYwKDB8YVtsPj4yXSxBPDw3KSxhW2w+PjJdPXAsbD1wLHA9MHxhW3c+PjJdKSxfW2wrKHA8PDYpPj4zXT0rX1tjPj4zXSxfW2wrKHA8PDYpKzg+PjNdPStfW2MrOD4+M10sYVt3Pj4yXT1wKzEsX1tsKyhw''@;'; put 'put ''PDw2KSsxNj4+M109Zn1mdW5jdGlvbiBwbGUobCxjKXt2YXIgZixwO3JldHVybisgK0QwKCsoKHA9K19bOCsobHw9MCk+PjNdLStfWzgrKGN8PTApPj4zXSkqcCsoZj0rX1tsPj4zXS0rX1tjPj4zXSkqZikpfWZ1bmN0aW9uIGxEKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSx3LGIsTSxw''@;'; put 'put ''PTAsbT0wLGs9MDtNPWxlLGxlPWxlKzE2fDAsaz1NKzh8MCxiPU0sYVsoQT1NKzEyfDApPj4yXT0wLCh3PTB8YVtmKzQ+PjJdKXx8UHIoMTA2NjU4LDEwNjY2OSwyMDMsMTA2NjgwKSwocD0wfGFbdz4+Ml0pfHxQcigxMDY2OTQsMTA2NjY5LDIwNiwxMDY2ODApLDB8YVsobT13Kzh8MCk+PjJd''@;'; put 'put ''fHwoYVttPj4yXT0wfGZ1bmN0aW9uIG1sZShsKXtsfD0wO3ZhciBjO3JldHVybiAwIT0oMHwoYz0wfGFbNDczMDFdKSkmJjA9PSgwfHkwKGMsbCkpP2w9MHxhWzQ3MzEwXTooRnQoYyksYVs0NzMwMV09MHxyYShsKSxsPTB8bncoMTg5MjA0LDIyMzMyLDM1LDM2LDk1KSxhWzQ3MzEwXT1sKSww''@;'; put 'put ''fGx9KHApKSwoMHxmdW5jdGlvbiBOUihsLGMsZil7dmFyIHA9MDtyZXR1cm4gMHwoMCE9KDB8KGw9MHxhWzE0OCsobHw9MCk+PjJdKSkmJjAhPSgwfChwPTB8YVtsPj4yXSkpPzB8QmlbMTI3JnBdKGN8PTAsZnw9MCk6MCl9KGMsZixwPTApKTw8MjQ+PjI0fHxmdW5jdGlvbiB2bGUobCxjKXtj''@;'; put 'put ''fD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MCxiPTA7aWYoZj0wfGFbKHc9MHxhWzQrKGx8PTApPj4yXSk+PjJdLEE9K19bdysxNj4+M10sX1sodz1sKzMyfDApPj4zXT0wLF9bbCs0MD4+M109MS4yKkEsX1tsKzE2Pj4zXT0wLF9bbCsyND4+M109LjEqQSxhW2wrOD4+Ml09MCxhW2wrMTI+PjJd''@;'; put 'put ''PTAsMHxsNChmLDEwNjc3MSw0KT8wIT0oMHxsNChmLDEwNjc3Niw1KSkmJjAhPSgwfGw0KGYsMTA2NzgyLDkpKT8obT00MjQ4LGY9MTA2NzkyKToobT04MzQ0LGY9MTA2ODI4KToobT02Mjk2LGY9MTA2ODA5KSwwfGMmJihhW2M+PjJdPWYpLDB8KGY9MHxhW2w+PjJdKSl7Zm9yKHA9MDsobD0w''@;'; put 'put ''fGZlW2Y+PjBdKTw8MjQ+PjI0OylfW3c+PjNdPWI9cCsgK19bbSsoKDI1NSZsKTw8Myk+PjNdLGY9ZisxfDAscD1iO19bdz4+M109cCpBfX0oZixwKTtkb3tpZigwfHApe2lmKGM9MHxhWzE1NzEyXSxwPTB8YVt3Pj4yXSxtPTB8YVtBPj4yXSl7YVtiPj4yXT1wLGFbYis0Pj4yXT1tLFQwKGMs''@;'; put 'put ''MTA2NzA1LGIpO2JyZWFrfWFbaz4+Ml09cCxUMChjLDEwNjczNyxrKTticmVha319d2hpbGUoMCk7YVtsPj4yXT1hWyhrPWYrMzJ8MCk+PjJdLGFbbCs0Pj4yXT1hW2srND4+Ml0sYVtsKzg+PjJdPWFbays4Pj4yXSxhW2wrMTI+PjJdPWFbaysxMj4+Ml0sbGU9TX1mdW5jdGlvbiB1RChsKXt2''@;'; put 'put ''YXIgYyxmO3JldHVybiBsfD0wLGM9MHx2cigxNiksZj0wfHZyKChsPSgwfGwpPjI/bDoyKTw8MiksYVtjPj4yXT1mLGFbYysxMj4+Ml09ZixhW2MrOD4+Ml09ZixhW2MrND4+Ml09ZisobDw8MiksMHxjfWZ1bmN0aW9uIGRKKGwpe0Z0KDB8YVsobHw9MCk+PjJdKSxGdChsKX1mdW5jdGlvbiBE''@;'; put 'put ''NyhsLGMpe3ZhciBmLHA7Y3w9MCxhWyhmPTEyKyhsfD0wKXwwKT4+Ml09NCsocD0wfGFbZj4+Ml0pLGFbcD4+Ml09YywoMHxhW2Y+PjJdKT4+PjA+PSgwfGFbbCs0Pj4yXSk+Pj4wJiYoYVtmPj4yXT1hW2w+PjJdKX1mdW5jdGlvbiBjRChsKXt2YXIgZixjPTAscD0wO3JldHVybigwfChjPTB8''@;'; put 'put ''YVsoZj04KyhsfD0wKXwwKT4+Ml0pKSE9KDB8YVtsKzEyPj4yXSk/KGFbZj4+Ml09cD1jKzR8MCxjPTB8YVtjPj4yXSxwPj4+MD49KDB8YVtsKzQ+PjJdKT4+PjAmJihhW2Y+PjJdPWFbbD4+Ml0pKTpjPTAsMHxjfWZ1bmN0aW9uIGVzKGwsYyxmLHApe2Z8PTAscHw9MDt2YXIgbSx3LEE9MDty''@;'; put 'put ''ZXR1cm4gdz1sZSxsZT1sZSsxNnwwLG09dywwIT0oMHwoY3w9MCkpJiYwIT0oMHwoQT0wfEhvKGx8PTAsYykpKSYmMCE9KDB8ZmVbQT4+MF0pJiYoYz0wfGtMKEEsbSwxMCksZj0oMHxBKT09KDB8YVttPj4yXSk/ZjooMHxjKTwoMHxwKT9wOmMpLGxlPXcsMHxmfWZ1bmN0aW9uIE1sKGwsYyxm''@;'; put 'put ''LHApe2Y9K2YscD0rcDt2YXIgbSx3LEE9MCxiPTA7cmV0dXJuIHc9bGUsbGU9bGUrMTZ8MCxtPXcsMCE9KDB8KGx8PTApKSYwIT0oMHwoY3w9MCkpJiYwIT0oMHwoQT0wfEhvKGwsYykpKSYmMCE9KDB8ZmVbQT4+MF0pJiYoYj0raTMoQSxtKSxmPSgwfEEpPT0oMHxhW20+PjJdKT9mOmI8cD9w''@;'; put 'put ''OmIpLGxlPXcsK2Z9ZnVuY3Rpb24gQ04obCl7bHw9MDt2YXIgYz0wO3JldHVybihjPStfWzIzMjkzXSk+MHx8KGM9MD09KGM9K01sKGwsMHxzaShsLDAsMTA3NjM4LDApLC0xLDApKT83MjpjKSwrY31mdW5jdGlvbiB2MihsLGMsZil7cmV0dXJuIGZ8PTAsMCE9KDB8KGx8PTApKSYwIT0oMHwo''@;'; put 'put ''Y3w9MCkpJiYoZj0wfEhvKGwsYykpLDB8Zn1mdW5jdGlvbiBCYShsLGMsZil7cmV0dXJuIDAhPSgwfChsPTB8djIobHw9MCxjfD0wLGZ8PTApKSkmJjAhPSgwfGZlW2w+PjBdKSYmKGY9bCksMHxmfWZ1bmN0aW9uIHBKKGwsYyxmKXtyZXR1cm4gbHw9MCxmfD0wLDB8KChjfD0wKT8wfHQxKDB8''@;'; put 'put ''SG8obCxjKSk6MjU1JmYpfWZ1bmN0aW9uIHQxKGwpe3JldHVybiAwfG5nKGx8PTAsMCl9ZnVuY3Rpb24gbmcobCxjKXtjfD0wO3ZhciBmPTA7cmV0dXJuIDAhPSgwfChsfD0wKSkmJihmPTB8ZmVbbD4+MF0pPDwyND4+MjQhPTAmJigwIT0oMHx5MChsLDEzNzMwOCkpJiYwIT0oMHx5MChsLDEw''@;'; put 'put ''NzY0OSkpPzAhPSgwfHkwKGwsMTA3NjUyKSkmJjAhPSgwfHkwKGwsMTA3NjU3KSk/KChmPDwyND4+MjQpLTQ4fDApPj4+MDwxMCYmKGM9MjU1JigwfHIzKGwpKSk6Yz0xOmM9MCksMHxjfWZ1bmN0aW9uIGcxKGwpe2x8PTA7Zm9yKHZhciBjPTAsZj0wOygwfChmPTB8YVsoYz0yMjArKDB8YVts''@;'; put 'put ''KzE2Pj4yXSl8MCk+PjJdKSkhPSgwfGwpJjAhPSgwfGYpOykobD0wfGFbMjIwKygwfGFbZisxNj4+Ml0pPj4yXSk/YVtjPj4yXT1sOmw9ZjtyZXR1cm4gMHxsfWZ1bmN0aW9uIGZEKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTA7cmV0dXJuKDB8KGx8PTApKSE9KDB8KGN8PTApKSYmKDB8''@;'; put 'put ''YVsocD0yMjArKGY9MHxhW2wrMTY+PjJdKXwwKT4+Ml0/bD0wfGcxKGwpOihhW3A+PjJdPWwsYVtmKzIxNj4+Ml09MSksMHxhWyhwPTIyMCsoZj0wfGFbYysxNj4+Ml0pfDApPj4yXT8oYz1mPTB8ZzEoYyksZj0wfGFbZisxNj4+Ml0pOihhW3A+PjJdPWMsYVtmKzIxNj4+Ml09MSksbT1jKzE2''@;'; put 'put ''fDAsYVsoKHc9KDB8YVsxMjArKHA9MHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml0pPigwfGFbZisxMjA+PjJdKSk/cDpmKSsyMjA+PjJdPWw9dz9jOmwsYVsocD0yMTYrKDB8YVsodz9tOkEpPj4yXSl8MCk+PjJdPSgwfGFbcD4+Ml0pKygwfGFbMjE2KygwfGFbKHc/QTptKT4+Ml0pPj4yXSkpLDB8''@;'; put 'put ''bH1mdW5jdGlvbiByZyhsKXthWzIxNisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjJdPTEsYVtsKzIyMD4+Ml09MCxmZVtsKzE1OT4+MF09MH1mdW5jdGlvbiBrTihsLGMpe2lmKGN8PTAsKDB8ZzEobHw9MCkpPT0oMHxsKSlyZXR1cm4gYVsyMjArKGw9MHxhW2wrMTY+PjJdKT4+Ml09Yyx2b2lk''@;'; put 'put ''KGFbKGM9MjE2KygwfGFbYysxNj4+Ml0pfDApPj4yXT0oMHxhW2M+PjJdKSsoMHxhW2wrMjE2Pj4yXSkpO1ByKDEwNzY2OSwxMDc2NjEsMTk0LDEwNzY4NSl9ZnVuY3Rpb24gaEQobCxjKXt2YXIgZjtmPTcyKitfWzgrKGM9MHxhWzEzMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjNdLF9b''@;'; put 'put ''KGx8PTApPj4zXT03MiorX1tjPj4zXSxfW2wrOD4+M109Zn1mdW5jdGlvbiB3dShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscD0rcCxtfD0wLEF8PTA7dmFyIE0sRCxSLHc9MCxiPTAsaz0wLEc9MDtmb3IoUj1sZSxsZT1sZSs1NzZ8MCxEPVIsdz0wOyEoKDB8dyk+KDB8ZikpOylhWyhr''@;'; put 'put ''PUQrKHc8PDQpfDApPj4yXT1hWyhiPWMrKHc8PDQpfDApPj4yXSxhW2srND4+Ml09YVtiKzQ+PjJdLGFbays4Pj4yXT1hW2IrOD4+Ml0sYVtrKzEyPj4yXT1hW2IrMTI+PjJdLHc9dysxfDA7Zm9yKE09MS1wLHc9MTshKCgwfHcpPigwfGYpKTspe2ZvcihiPWYtd3wwLGs9dystMXwwLGM9MDsh''@;'; put 'put ''KCgwfGMpPigwfGIpKTspX1tEKyg5Nip3fDApKyhjPDw0KT4+M109K19bRCsoOTYqa3wwKSsoKEc9YysxfDApPDw0KT4+M10qcCsgK19bRCsoOTYqa3wwKSsoYzw8NCk+PjNdKk0sX1tEKyg5Nip3fDApKyhjPDw0KSs4Pj4zXT0rX1tEKyg5NiprfDApKyhHPDw0KSs4Pj4zXSpwKyArX1tEKyg5''@;'; put 'put ''NiprfDApKyhjPDw0KSs4Pj4zXSpNLGM9Rzt3PXcrMXwwfWU6ZG97aWYoMHxtKWZvcih3PTA7Oyl7aWYoKDB8dyk+KDB8ZikpYnJlYWsgZTthWyhHPW0rKHc8PDQpfDApPj4yXT1hWyhrPUQrKDk2Knd8MCl8MCk+PjJdLGFbRys0Pj4yXT1hW2srND4+Ml0sYVtHKzg+PjJdPWFbays4Pj4yXSxh''@;'; put 'put ''W0crMTI+PjJdPWFbaysxMj4+Ml0sdz13KzF8MH19d2hpbGUoMCk7ZTpkb3tpZigwfEEpZm9yKHc9MDs7KXtpZigoMHx3KT4oMHxmKSlicmVhayBlO2FbKEc9QSsodzw8NCl8MCk+PjJdPWFbKG09RCsoOTYqKGYtd3wwKXwwKSsodzw8NCl8MCk+PjJdLGFbRys0Pj4yXT1hW20rND4+Ml0sYVtH''@;'; put 'put ''Kzg+PjJdPWFbbSs4Pj4yXSxhW0crMTI+PjJdPWFbbSsxMj4+Ml0sdz13KzF8MH19d2hpbGUoMCk7YVtsPj4yXT1hWyhHPUQrKDk2KmZ8MCl8MCk+PjJdLGFbbCs0Pj4yXT1hW0crND4+Ml0sYVtsKzg+PjJdPWFbRys4Pj4yXSxhW2wrMTI+PjJdPWFbRysxMj4+Ml0sbGU9Un1mdW5jdGlvbiBf''@;'; put 'put ''bGUobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wO2Y9MDtkb3tpZihwPTEwMjQrKGM9MHxhWzQ3MzE1XSl8MCwoYy1mfDApPDEwMjQ/KGFbNDczMTVdPXAscD0wfFYwKDB8YVs0NzMxNl0scCksYVs0NzMxNl09cCxjPTB8YVs0NzMxNV0pOnA9MHxhWzQ3MzE2XSwhKGM9MHx5ZyhwK2Z8MCxj''@;'; put 'put ''LWZ8MCxsKSkpe209NjticmVha31mPSgwfFVvKGMpKStmfDAsYz0wfGFbNDczMTZdfXdoaWxlKDEwIT0oMHxmZVtjKyhmKy0xKT4+MF0pKTtyZXR1cm4gNj09KDB8bSkmJihjPTB8YVs0NzMxNl0pLDB8KCgwfGYpPjA/YzowKX1mdW5jdGlvbiBkRChsKXtsfD0wO3ZhciBwLGM9MCxmPTA7cD1s''@;'; put 'put ''ZSxsZT1sZSsxNnwwO2Rve2lmKDAhPSgwfGwpJiYwIT0oMHxmZVtsPj4wXSkpe2lmKGY9MHxhWzQ3MzE4XSwoMHxhWzQ3MzE3XSk9PSgwfChjPTB8YVs0NzEzM10pKSljPWY7ZWxzZXtpZihmJiYoRnQoMHxhW2Y+PjJdKSxGdCgwfGFbNDczMThdKSxhWzQ3MzE4XT0wLGM9MHxhWzQ3MTMzXSks''@;'; put 'put ''YVs0NzMxN109YywhKGMmJjB8ZmVbYz4+MF0pKWJyZWFrO2M9MHxDbGUoYyksYVs0NzMxOF09Y31pZighKDQ3IT0oMHxmZVtsPj4wXSkmMCE9KDB8YykpKWJyZWFrO2w9MHxnSihjLDB8YVs0NzMxOV0sbCk7YnJlYWt9bD0wfXdoaWxlKDApO3JldHVybiBsZT1wLDB8bH1mdW5jdGlvbiBDbGUo''@;'; put 'put ''bCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7Zm9yKHA9MCxtPTAsQT0wLGM9MHxyYShsfD0wKSxmPTA7Yz0wfGx2KGMsMTA3OTg0KTspbD04KyhBPDwyKXwwLGw9bT8wfFYwKGYsbCk6MHxRbihsKSxhW2wrKEE8PDIpPj4yXT1jLHA9cD4+PjA+KG09MHxVbyhjKSk+Pj4wP3A6bSxtPWwsQT1B''@;'; put 'put ''KzF8MCxjPTAsZj1sO3JldHVybiBhW20rKEE8PDIpPj4yXT0wLGFbNDczMTldPXAsMHxtfWZ1bmN0aW9uIGdKKGwsYyxmKXtsfD0wO3ZhciBwLEEsbT0wLHc9MDtmb3IoQT1sZSxsZT1sZSsxNnwwLHA9QSxhWzQ3MzIwXT0wfFVhKHc9MHxhWzQ3MzIwXSwyKyhjfD0wKSsoMHxVbyhmfD0wKSl8''@;'; put 'put ''MCk7Oyl7aWYoIShjPTB8YVtsPj4yXSkpe2w9MDticmVha31pZih3PTB8YVs0NzMyMF0sYVtwPj4yXT1jLGFbcCs0Pj4yXT0xMDc5ODIsYVtwKzg+PjJdPWYsb28odywxMDc5NzUscCksISgwfExjZSgwfGFbNDczMjBdLDQpKSl7bT00O2JyZWFrfWw9bCs0fDB9cmV0dXJuIDQ9PSgwfG0pJiYo''@;'; put 'put ''bD0wfGFbNDczMjBdKSxsZT1BLDB8bH1mdW5jdGlvbiBTTihsLGMsZil7Y3w9MCxmfD0wO3ZhciBtLHA9MCxBPTA7Zm9yKG09MD09KDB8KGx8PTApKSxwPTA7KEE9MHxhW2MrKHA8PDIpPj4yXSkmJihtfHwoMHxmZVtsPj4wXSkhPSgwfGZlW0E+PjBdKXx8MCE9KDB8WmkobCxBKSkpOylwPXAr''@;'; put 'put ''MXwwO3JldHVybiAwfGFbZisocDw8Mik+PjJdfWZ1bmN0aW9uIHBEKGwsYyxmKXtsfD0wO3ZhciBSLE9lLExlLFJlLEhlLFZlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxydD0wLFdlPTA7Zm9yKHFlPWxlLGxlPWxlKzgwfDAsSGU9''@;'; put 'put ''cWUrMTZ8MCxWZT1xZSxPZT0wfGFbNCsoY3w9MCk+PjJdLExlPTB8YVtjPj4yXSxSZT04KyhmfD0wKXwwLG09MCxwPS0xLEE9MWUzOCxjPS0xOyEoKDB8bSk+PSgwfE9lKSk7KXtmb3IoZ2U9MHxhW0xlKyg0OCptfDApPj4yXSxiZT0wfGFbTGUrKDQ4Km18MCkrND4+Ml0scGU9MDshKCgwfHBl''@;'; put 'put ''KT49KDB8YmUpKTspV2U9KHJ0PS0xPT0oMHxwKXwocT0oRz0rX1tnZSsocGU8PDQpKzg+PjNdLStfW1JlPj4zXSkqRysocT0rX1tnZSsocGU8PDQpPj4zXS0rX1tmPj4zXSkqcSk8QSk/cGU6cCxwZT1wZSsxfDAsYz1ydD9tOmMscD1XZSxBPXJ0P3E6QTttPW0rMXwwfWZvcihtPTB8YVtMZSso''@;'; put 'put ''NDgqY3wwKT4+Ml0scD0ocD1wKygoKDB8cCk9PSgoMHxhW0xlKyg0OCpjfDApKzQ+PjJdKS0xfDApKTw8MzE+PjMxKXwwKS0oKDB8cCklM3wwKXwwLGM9MDs0IT0oMHxjKTspX1tIZSsoYzw8NCk+PjNdPStfW20rKChXZT1jK3B8MCk8PDQpPj4zXSxfW0hlKyhjPDw0KSs4Pj4zXT0rX1ttKyhX''@;'; put 'put ''ZTw8NCkrOD4+M10sYz1jKzF8MDtmb3IoYz1WZSs4fDAsQT0xLHc9MCxiPShEPStfW0hlKzU2Pj4zXS0oUj0rX1tSZT4+M10pKSpEKyhiPStfW0hlKzQ4Pj4zXS0ocT0rX1tmPj4zXSkpKmIsaz0oRz0rX1tIZSs4Pj4zXS1SKSpHKyhrPStfW0hlPj4zXS1xKSprO3d1KFZlLEhlLDMsRz0uNSoo''@;'; put 'put ''QSt3KSwwLDApLE09K19bVmU+PjNdLEQ9K19bYz4+M10sISgrZW8oKyhrLWIpKTwxfHwrZW8oKyhBLXcpKTwxZS01KTspRD0oRC09UikqRCsoTS09cSkqTSxBPShXZT1rPGIpP0c6QSx3PVdlP3c6RyxiPVdlP0Q6YixrPVdlP2s6RDtfW2w+PjNdPU0sX1tsKzg+PjNdPUQsbGU9cWV9ZnVuY3Rp''@;'; put 'put ''b24gZ0QobCl7dmFyIGYscCxtLGIsYz0wLEE9MCx3PTAsaz0wO2M9K01sKGx8PTAsMHxhWzQ3MTQ2XSwuNzUsLjAxKSxfWzMyKygwfGFbKG09bCsxNnwwKT4+Ml0pPj4zXT1jLGM9K01sKGwsMHxhWzQ3MTQ1XSwuNSwuMDIpLF9bNDArKDB8YVttPj4yXSk+PjNdPWMsaz0wfGZ1bmN0aW9uIE5h''@;'; put 'put ''ZShsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wOzB8ZEQoMHxMaShjfD0wLDEwNTUyNikpPzEwMT09KDB8ZmVbbD4+MF0pJiYwPT0oMHxaaShsLDEwNTY4NSkpPyhjPTEwMSxtPTYpOihsPTEwNTUxOSxtPTQpOm09NCw0PT0oMHxtKSYmKChjPTB8ZmVbbD4+MF0pPDwyND4+MjQ9PTk5PzB8Wmko''@;'; put 'put ''bCwxMDU1MTkpPyhjPTk5LG09Nik6bT0xMTptPTYpO2U6ZG97aWYoNj09KDB8bSkpZm9yKGY9MjA4NDg7Oyl7aWYoIShwPTB8YVtmPj4yXSkpe209MTE7YnJlYWsgZX1pZigoMHxmZVtwPj4wXSk9PWM8PDI0Pj4yNCYmMD09KDB8WmkocCxsKSkpe2w9ZjticmVhayBlfWY9ZisxNnwwfX13aGls''@;'; put 'put ''ZSgwKTtyZXR1cm4gMTE9PSgwfG0pJiYobD0wfGZ1bmN0aW9uIFZhZShsKXt2YXIgbSxBLGM9MCxmPTAscD0wO2lmKEE9bGUsbGU9bGUrMTZ8MCxtPUEsIShjPTB8bE4obHw9MCkpKXthWzQ3Mjg0XT1jPTErKHA9MHxhWzQ3Mjg0XSl8MCxjPShmPTB8YVs0NzI4M10pPzB8VjAoZixjPDwyKTow''@;'; put 'put ''fFFuKGM8PDIpLGFbNDcyODNdPWMsYz0wfHZyKDE2KSxhWygwfGFbNDcyODNdKSsocDw8Mik+PjJdPWMsYVtjPj4yXT1hWzUyMTJdLGFbYys0Pj4yXT1hWzUyMTNdLGFbYys4Pj4yXT1hWzUyMTRdLGFbYysxMj4+Ml09YVs1MjE1XSxmPTB8cmEobCksYVtjPj4yXT1mO2Rve2lmKDk5PT0oMHxm''@;'; put 'put ''ZVtsPj4wXSkmJjA9PSgwfFppKGwsMTA1NTE5KSkpe2Y9MTticmVha31hW20+PjJdPWFbNTIxMl0sYVttKzQ+PjJdPWYsJHIoMCwxMDU2OTAsbSksZj0wfXdoaWxlKDApO2ZlW2MrMTI+PjBdPWZ9cmV0dXJuIGxlPUEsMHxjfShsKSksMHxsfSgwfEJhKGwsMHxhWzQ3MTQ3XSwxMDc5ODYpLGwp''@;'; put 'put ''LGFbOCsoMHxhW20+PjJdKT4+Ml09ayxrPTB8SG8obCwwfGFbNDcxNTRdKSxjPStNbChsLDB8YVs0NzE1MF0sMTQsMSksZj0wfEJhKGwsMHxhWzQ3MTUxXSwxMDc5OTQpLHA9MHxCYShsLDB8YVs0NzE1Ml0sMTM3MzE0KSxBPTAhPSgwfE9vKGspKSxBPTB8SjUobCxrLCgyPT0oMHwkNShsKSk/''@;'; put 'put ''NDowKXwoQT8yOjApLGMsZixwKSxhWzEwNCsoMHxhW20+PjJdKT4+Ml09QSwwfChBPTB8YVs0NzE1NV0pJiYwfCh3PTB8SG8obCxBKSkmJjB8ZmVbdz4+MF0mJihrPTB8SjUobCx3LChrPTAhPSgwfE9vKHcpKSk/MjowLGMsZixwKSxhWzEwOCsoMHxhW20+PjJdKT4+Ml09ayxrPTExMysoMHxh''@;'; put 'put ''WzE2KygwfGNyKGwpKT4+Ml0pfDAsZmVbaz4+MF09MTZ8ZmVbaz4+MF0pLGI9MjU1JigwfGVzKGwsMHxhWzQ3MTU4XSwwLDApKSxmZVsxNDQrKGs9MHxhW20+PjJdKT4+MF09YixDb1sxMjcmYVthWzQrKDB8YVtrKzg+PjJdKT4+Ml0+PjJdXShsKX1mdW5jdGlvbiBMNyhsKXt2YXIgayxNLFIs''@;'; put 'put ''cSxwZSxiZSxPZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLEc9MCxnZT0wO09lPWxlLGxlPWxlKzExMnwwLGs9T2UrOTZ8MCxNPU9lKzgwfDAscGU9T2UrNDB8MCxiZT1PZSxxPTQ4KyhsfD0wKXwwLFI9MHxjcigwfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpxKSs0MD4+Ml0pLGFb''@;'; put 'put ''KG09ays4fDApPj4yXT0wLGFbKEQ9TSs4fDApPj4yXT0wLDAhPSgwfChjPTB8YVs0NzE4Ml0pKSYmMCE9KDB8KGY9MHxIbyhsLGMpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oTU4obCxrKSxmPTB8SjUobCxmLChnZT0wIT0oMHxPbyhmKSkpPzI6MCxBPStfW2s+PjNdLHA9MHxhW20+PjJdLGM9MHxh''@;'; put 'put ''W2srMTI+PjJdKSxhWzk2KygwfGFbKGdlPWwrMTZ8MCk+PjJdKT4+Ml09ZixmZVsoZj0xMTMrKDB8YVtSKzE2Pj4yXSl8MCk+PjBdPTF8ZmVbZj4+MF0sZj0wfHQxKDB8djIobCwwfGFbNDcxOTJdLDEzNzMwOCkpLGZlWzExNCsoMHxhW2dlPj4yXSk+PjBdPWYsZ2U9MSxmPXApOihnZT0wLGM9''@;'; put 'put ''MCxBPTAsZj0wKSwwfChwPTB8YVs0NzE4M10pJiYwfCh3PTB8SG8obCxwKSkmJjB8ZmVbdz4+MF0mJihmfHwoTU4obCxrKSxBPStfW2s+PjNdLGY9MHxhW20+PjJdLGM9MHxhW2srMTI+PjJdKSx3PTB8SjUobCx3LChtPTAhPSgwfE9vKHcpKSk/MjowLEEsZixjKSxhWzEwOCsoMHxhW2wrMTY+''@;'; put 'put ''PjJdKT4+Ml09dyxmZVsodz0xMTMrKDB8YVtSKzE2Pj4yXSl8MCk+PjBdPTMyfGZlW3c+PjBdKSwwIT0oMHwoYz0wfGFbNDcxOTddKSkmJjAhPSgwfChiPTB8SG8obCxjKSkpJiYwIT0oMHxmZVtiPj4wXSk/KG1KKGwsayxNKSxiPTB8SjUobCxiLCh3PTAhPSgwfE9vKGIpKSk/MjowLEE9K19b''@;'; put 'put ''TT4+M10sYz0wfGFbRD4+Ml0sZj0wfGFbTSsxMj4+Ml0pLGFbMTAwKygwfGFbbCsxNj4+Ml0pPj4yXT1iLGZlWyhiPTExMysoMHxhW1IrMTY+PjJdKXwwKT4+MF09MnxmZVtiPj4wXSk6KGY9MCxBPTAsYz0wKSwwfChwPTB8YVs0NzE5OF0pJiYwfChHPTB8SG8obCxwKSkmJjB8ZmVbRz4+MF0m''@;'; put 'put ''JihjfHwobUoobCxrLE0pLGY9MHxhW00rMTI+PjJdLEE9K19bTT4+M10sYz0wfGFbRD4+Ml0pLEc9MHxKNShsLEcsKEQ9MCE9KDB8T28oRykpKT8yOjAsQSxjLGYpLGFbMTA0KygwfGFbbCsxNj4+Ml0pPj4yXT1HLGZlWyhHPTExMysoMHxhW1IrMTY+PjJdKXwwKT4+MF09NHxmZVtHPj4wXSks''@;'; put 'put ''Yz0wfExpKGwsMTExNDU1KSwwfGZlWyhjPTB8Yz9jOjE5NTA1OSk+PjBdJiYoZmVbMTQ1KygwfGFbMTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOnEpKzQwPj4yXSk+PjJdKT4+MF09MSkscD0xNisoMHxhWyhtPWwrMTZ8MCk+PjJdKXwwLEVOKHBlLDB8YVs4KygwfGFbNCsoMHxhWzgrKDB8''@;'; put 'put ''YVsxNisoZj0wfGFbKDM9PSgzJmFbbD4+Ml18MCk/bDpxKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSxmLGMpLGM9cGUsZj1wKzQwfDA7ZG97YVtwPj4yXT1hW2M+PjJdLHA9cCs0fDAsYz1jKzR8MH13aGlsZSgoMHxwKTwoMHxmKSk7KDB8eE4obCwwfGFbNDcyMDRdKSk8PDI0Pj4yNCYm''@;'; put 'put ''KGZlWzQ2KygwfGFbbT4+Ml0pPj4wXT0wKSxjPTB8TGkobCwxMTE0NjQpLDB8ZmVbKGM9MHxjP2M6MTk1MDU5KT4+MF0/KGY9bCstNDh8MCxmZVsxNDUrKDB8YVsxNisoMHxhWygyPT0oMyZhW2w+PjJdfDApP2w6ZikrNDA+PjJdKT4+Ml0pPj4wXT0xKTpmPWwrLTQ4fDAscD01NisoMHxhW20+''@;'; put 'put ''PjJdKXwwLEVOKGJlLDB8YVs4KygwfGFbNCsoMHxhWzgrKDB8YVsxNisoZj0wfGFbKDI9PSgzJmFbbD4+Ml18MCk/bDpmKSs0MD4+Ml0pPj4yXSk+PjJdKT4+Ml0pPj4yXSxmLGMpLGM9YmUsZj1wKzQwfDA7ZG97YVtwPj4yXT1hW2M+PjJdLHA9cCs0fDAsYz1jKzR8MH13aGlsZSgoMHxwKTwo''@;'; put 'put ''MHxmKSk7cmV0dXJuKDB8eE4obCwwfGFbNDcyMDVdKSk8PDI0Pj4yNCYmKGZlWzg2KygwfGFbbT4+Ml0pPj4wXT0wKSxsZT1PZSwwfGdlfWZ1bmN0aW9uIE1OKGwsYyl7X1soY3w9MCk+PjNdPStNbChsfD0wLDB8YVs0NzE3OV0sMTQsMSksYVtjKzg+PjJdPTB8QmEobCwwfGFbNDcxODBdLDEw''@;'; put 'put ''Nzk5NCksYVtjKzEyPj4yXT0wfEJhKGwsMHxhWzQ3MTgxXSwxMzczMTQpfWZ1bmN0aW9uIG1KKGwsYyxmKXt2YXIgcDtsfD0wLGZ8PTAsMHxhWyhwPTgrKGN8PTApfDApPj4yXXx8TU4obCxjKSxfW2Y+PjNdPStNbChsLDB8YVs0NzE5OV0sK19bYz4+M10sMSksYVtmKzg+PjJdPTB8QmEobCww''@;'; put 'put ''fGFbNDcyMDBdLDB8YVtwPj4yXSksYVtmKzEyPj4yXT0wfEJhKGwsMHxhWzQ3MjAxXSwwfGFbYysxMj4+Ml0pfWZ1bmN0aW9uIEVOKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBBLGssTSxtPTAsdz0wLGI9MDtpZihNPWxlLGxlPWxlKzEyOHwwLGs9TSs4MHwwLEE9TSs0MHwwLG09TSww''@;'; put 'put ''IT0oMHwocHw9MCkpJiYwIT0oMHwoYj0wfCRzKHAsNTgpKSkpe2ZlW2I+PjBdPTAsUmNbMzEmY10oQSxmLHAsdz1iKzF8MCksbT1BLGM9KGY9aykrMzZ8MDtkb3thW2Y+PjJdPWFbbT4+Ml0sZj1mKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGYpPCgwfGMpKTtmZVtiPj4wXT01OCxwPXd9ZWxzZXtS''@;'; put 'put ''Y1szMSZjXShtLGYscCwwKSxjPShmPWspKzM2fDA7ZG97YVtmPj4yXT1hW20+PjJdLGY9Zis0fDAsbT1tKzR8MH13aGlsZSgoMHxmKTwoMHxjKSl9bT1rLGM9KGY9bCkrMzZ8MDtkb3thW2Y+PjJdPWFbbT4+Ml0sZj1mKzR8MCxtPW0rNHwwfXdoaWxlKCgwfGYpPCgwfGMpKTthW2wrMzY+PjJd''@;'; put 'put ''PXAsbGU9TX1mdW5jdGlvbiB4TihsLGMpe2x8PTA7dmFyIGY9MDtyZXR1cm4gMHwoMCE9KDB8KGN8PTApKSYmMCE9KDB8KGY9MHxIbyhsLGMpKSkmJjAhPSgwfGZlW2Y+PjBdKT8oMHx0MShmKSk8PDI0Pj4yND09MCYxOjApfWZ1bmN0aW9uIHZKKGwsYyl7bHw9MDt2YXIgcCxtLEEsdyxiLGss''@;'; put 'put ''Zj0wLE09MCxEPTAsUj0wO2ZvcihrPWxlLGxlPWxlKzMyfDAsdz1rLGY9KDB8YVs0NCsoY3w9MCk+PjJdKSsoKDB8QXIoKDB8KGY9MHxhW2MrND4+Ml0pKT4xP2YrLTF8MDowLGI9MHxhW2MrOD4+Ml0pKTw8NCl8MCxhWyhwPXcrMTZ8MCk+PjJdPWFbZj4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4y''@;'; put 'put ''XSxhW3ArOD4+Ml09YVtmKzg+PjJdLGFbcCsxMj4+Ml09YVtmKzEyPj4yXSxhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJdPWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxtPXcrOHwwLEE9dysyNHwwLGM9MTshKCgwfGMpPj0oMHxiKSk7KV9bdz4+''@;'; put 'put ''M109K19bKCtfW3c+PjNdPChSPStfWyhNPWYrKGM8PDQpfDApPj4zXSk/dzpNKT4+M10sX1ttPj4zXT0rX1soK19bbT4+M108KEQ9K19bTSs4Pj4zXSk/dzpNKSs4Pj4zXSxfW3A+PjNdPStfWygrX1twPj4zXT5SP3A6TSk+PjNdLF9bQT4+M109K19bKCtfW0E+PjNdPkQ/cDpNKSs4Pj4zXSxj''@;'; put 'put ''PWMrMXwwO2FbbD4+Ml09YVt3Pj4yXSxhW2wrND4+Ml09YVt3KzQ+PjJdLGFbbCs4Pj4yXT1hW3crOD4+Ml0sYVtsKzEyPj4yXT1hW3crMTI+PjJdLGFbbCsxNj4+Ml09YVt3KzE2Pj4yXSxhW2wrMjA+PjJdPWFbdysyMD4+Ml0sYVtsKzI0Pj4yXT1hW3crMjQ+PjJdLGFbbCsyOD4+Ml09YVt3''@;'; put 'put ''KzI4Pj4yXSxsZT1rfWZ1bmN0aW9uIG40KGwsYyl7Y3w9MDt2YXIgZixwLEEsbT0wO2Y9bGUsbGU9bGUrNjR8MCxwPWYsbD0xNisobT0wfGFbMTYrKGx8PTApPj4yXSl8MCxtPTEmYVttKzExNj4+Ml0sYVsoQT1mKzMyfDApPj4yXT1hW2w+PjJdLGFbQSs0Pj4yXT1hW2wrND4+Ml0sYVtBKzg+''@;'; put 'put ''PjJdPWFbbCs4Pj4yXSxhW0ErMTI+PjJdPWFbbCsxMj4+Ml0sYVtBKzE2Pj4yXT1hW2wrMTY+PjJdLGFbQSsyMD4+Ml09YVtsKzIwPj4yXSxhW0ErMjQ+PjJdPWFbbCsyND4+Ml0sYVtBKzI4Pj4yXT1hW2wrMjg+PjJdLE83KHAsQSxjLG0pLGFbbD4+Ml09YVtwPj4yXSxhW2wrND4+Ml09YVtw''@;'; put 'put ''KzQ+PjJdLGFbbCs4Pj4yXT1hW3ArOD4+Ml0sYVtsKzEyPj4yXT1hW3ArMTI+PjJdLGFbbCsxNj4+Ml09YVtwKzE2Pj4yXSxhW2wrMjA+PjJdPWFbcCsyMD4+Ml0sYVtsKzI0Pj4yXT1hW3ArMjQ+PjJdLGFbbCsyOD4+Ml09YVtwKzI4Pj4yXSxsZT1mfWZ1bmN0aW9uIE83KGwsYyxmLHApe2x8''@;'; put 'put ''PTA7dmFyIHcsYixrLE0sRCxtPTAsQT0wO009K19bNjQrKGZ8PTApPj4zXSxrPStfW2YrMjQ+PjNdLHc9K19bZiszMj4+M10sbT0oQT0rX1tmKzU2Pj4zXSktKEQ9LjUqKChiPShwfD0wKTw8MjQ+PjI0PT0wKT9rOncpKSxBPUQrQSxtPCtfWyhjfD0wKT4+M10mJihfW2M+PjNdPW0pLEE+K19b''@;'; put 'put ''KHA9YysxNnwwKT4+M10mJihfW3A+PjNdPUEpLG09TS0oQT0uNSooYj93OmspKSxBKz1NLG08K19bKHA9Yys4fDApPj4zXSYmKF9bcD4+M109bSksQT4rX1socD1jKzI0fDApPj4zXSYmKF9bcD4+M109QSksYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFb''@;'; put 'put ''Yys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml0sYVtsKzE2Pj4yXT1hW2MrMTY+PjJdLGFbbCsyMD4+Ml09YVtjKzIwPj4yXSxhW2wrMjQ+PjJdPWFbYysyND4+Ml0sYVtsKzI4Pj4yXT1hW2MrMjg+PjJdfWZ1bmN0aW9uIGlnKGwpe3ZhciBnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxydCxz''@;'; put 'put ''dCxFdCxadCxhbixjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxXZT0wLGF0PTAsU3Q9MCxrdD0wLGN0PTAsYnQ9MCxTbj0wLEhuPTAsdXI9MCxIcj0wO2lmKGFuPWxlLGxlPWxlKzQ0OHwwLEV0PWFuKzQxNnwwLGdlPWFuKzM4NHwwLGJl''@;'; put 'put ''PWFuKzMwNHwwLGJ0PWFuKzI1NnwwLHN0PWFuKzE5MnwwLHJ0PWFuKzE0NHwwLFdlPWFuKzk2fDAsYz1hbis0MDB8MCxmPWFuKzM2OHwwLHA9YW4rMzUyfDAsbT1hbiszMzZ8MCxPZT1hbisyODh8MCxMZT1hbisyMjR8MCxSZT1hbisxNjB8MCxIZT1hbisxMTJ8MCxWZT1hbis2NHwwLHFlPWFu''@;'; put 'put ''KzMyfDAsWnQ9YW4sY3Q9MTYrKGx8PTApfDAsMD09KDB8R28obCkpJiYwPT0oMHxhWzE4MCsoMHxhW2N0Pj4yXSk+PjJdKSltRChjLDAsMCksYVtidD4+Ml09YVtjPj4yXSxhW2J0KzQ+PjJdPWFbYys0Pj4yXSxhW2J0Kzg+PjJdPWFbYys4Pj4yXSxhW2J0KzEyPj4yXT1hW2MrMTI+PjJdLGJ0''@;'; put 'put ''PWJ0KzE2fDAsbUQoZiwwLDApLGFbYnQ+PjJdPWFbZj4+Ml0sYVtidCs0Pj4yXT1hW2YrND4+Ml0sYVtidCs4Pj4yXT1hW2YrOD4+Ml0sYVtidCsxMj4+Ml09YVtmKzEyPj4yXTtlbHNle2ZvcihtRChwLDIxNDc0ODM2NDcsMjE0NzQ4MzY0NyksYVtidD4+Ml09YVtwPj4yXSxhW2J0KzQ+PjJd''@;'; put 'put ''PWFbcCs0Pj4yXSxhW2J0Kzg+PjJdPWFbcCs4Pj4yXSxhW2J0KzEyPj4yXT1hW3ArMTI+PjJdLGt0PWJ0KzE2fDAsbUQobSwtMjE0NzQ4MzY0NywtMjE0NzQ4MzY0NyksYVtrdD4+Ml09YVttPj4yXSxhW2t0KzQ+PjJdPWFbbSs0Pj4yXSxhW2t0Kzg+PjJdPWFbbSs4Pj4yXSxhW2t0KzEyPj4y''@;'; put 'put ''XT1hW20rMTI+PjJdLEQ9V2UrOHwwLFI9YmUrMTZ8MCxhdD1idCs4fDAsRz1iZSs4fDAsU3Q9YnQrMjR8MCxxPWJlKzI0fDAscGU9cnQrOHwwLE09MHxEdChsKTtNOyl7Zm9yKGhEKHJ0LE0pLF9bV2U+PjNdPS41KigrX1s5Nisoaz0wfGFbKGM9TSsxNnwwKT4+Ml0pPj4zXSsgK19bays4OD4+''@;'; put 'put ''M10pLF9bRD4+M109LjUqK19bays4MD4+M10sYVtnZT4+Ml09YVtydD4+Ml0sYVtnZSs0Pj4yXT1hW3J0KzQ+PjJdLGFbZ2UrOD4+Ml09YVtydCs4Pj4yXSxhW2dlKzEyPj4yXT1hW3J0KzEyPj4yXSxhW0V0Pj4yXT1hW1dlPj4yXSxhW0V0KzQ+PjJdPWFbV2UrND4+Ml0sYVtFdCs4Pj4yXT1h''@;'; put 'put ''W1dlKzg+PjJdLGFbRXQrMTI+PjJdPWFbV2UrMTI+PjJdLFROKGJlLGdlLEV0KSxhW2dlPj4yXT1hW3J0Pj4yXSxhW2dlKzQ+PjJdPWFbcnQrND4+Ml0sYVtnZSs4Pj4yXT1hW3J0Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbcnQrMTI+PjJdLGFbRXQ+PjJdPWFbV2U+PjJdLGFbRXQrND4+Ml09YVtX''@;'; put 'put ''ZSs0Pj4yXSxhW0V0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtFdCsxMj4+Ml09YVtXZSsxMj4+Ml0sQUooT2UsZ2UsRXQpLGFbUj4+Ml09YVtPZT4+Ml0sYVtSKzQ+PjJdPWFbT2UrND4+Ml0sYVtSKzg+PjJdPWFbT2UrOD4+Ml0sYVtSKzEyPj4yXT1hW09lKzEyPj4yXSxfW2J0Pj4zXT0rX1soK19b''@;'; put 'put ''YnQ+PjNdPCtfW2JlPj4zXT9idDpiZSk+PjNdLF9bYXQ+PjNdPStfWygrX1thdD4+M108K19bRz4+M10/YnQ6YmUpKzg+PjNdLF9ba3Q+PjNdPStfWygrX1trdD4+M10+K19bUj4+M10/YnQ6YmUpKzE2Pj4zXSxfW1N0Pj4zXT0rX1soK19bU3Q+PjNdPitfW3E+PjNdP2J0OmJlKSsyND4+M10s''@;'; put 'put ''MHwoYz0wfGFbMTA4KygwfGFbYz4+Ml0pPj4yXSkmJjB8ZmVbYys4MT4+MF0mJihrPTEmYVsxMTYrKDB8YVtjdD4+Ml0pPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLGFbRXQr''@;'; put 'put ''MTY+PjJdPWFbYnQrMTY+PjJdLGFbRXQrMjA+PjJdPWFbYnQrMjA+PjJdLGFbRXQrMjQ+PjJdPWFbYnQrMjQ+PjJdLGFbRXQrMjg+PjJdPWFbYnQrMjg+PjJdLE83KExlLEV0LGMsayksYVtidD4+Ml09YVtMZT4+Ml0sYVtidCs0Pj4yXT1hW0xlKzQ+PjJdLGFbYnQrOD4+Ml09YVtMZSs4Pj4y''@;'; put 'put ''XSxhW2J0KzEyPj4yXT1hW0xlKzEyPj4yXSxhW2J0KzE2Pj4yXT1hW0xlKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW0xlKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW0xlKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW0xlKzI4Pj4yXSksaz0wfHcwKGwsTSk7azspe2lmKDB8KGY9MHxhWyh3PTgrKGM9MHxhWyhi''@;'; put 'put ''PWsrMTZ8MCk+PjJdKXwwKT4+Ml0pKXtmb3IoQT0wOygwfEEpPCgwfGFbZis0Pj4yXSk7KXtmb3IobT0wOyEoKDB8bSk+PSgwfGFbKHA9MHxhW2Y+PjJdKSsoNDgqQXwwKSs0Pj4yXSkpOylhW3J0Pj4yXT1hWyhmPSgwfGFbcCsoNDgqQXwwKT4+Ml0pKyhtPDw0KXwwKT4+Ml0sYVtydCs0Pj4y''@;'; put 'put ''XT1hW2YrND4+Ml0sYVtydCs4Pj4yXT1hW2YrOD4+Ml0sYVtydCsxMj4+Ml09YVtmKzEyPj4yXSxfW2J0Pj4zXT0rX1soK19bYnQ+PjNdPChIbj0rX1tydD4+M10pP2J0OnJ0KT4+M10sX1thdD4+M109K19bKCtfW2F0Pj4zXTwoU249K19bcGU+PjNdKT9idDpydCkrOD4+M10sX1trdD4+M109''@;'; put 'put ''K19bKCtfW2t0Pj4zXT5Ibj9rdDpydCk+PjNdLF9bU3Q+PjNdPStfWygrX1tTdD4+M10+U24/a3Q6cnQpKzg+PjNdLG09bSsxfDAsZj0wfGFbdz4+Ml07QT1BKzF8MH0wIT0oMHwoZj0wfGFbYys5Nj4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbMTE2KygwfGFbY3Q+PjJdKT4+''@;'; put 'put ''Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0V0''@;'; put 'put ''KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhSZSxFdCxmLGMpLGFbYnQ+PjJdPWFbUmU+PjJdLGFbYnQrND4+Ml09YVtSZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbUmUrOD4+Ml0sYVtidCsxMj4+Ml09YVtSZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtSZSsxNj4+Ml0sYVtidCsyMD4+Ml09YVtSZSsyMD4+''@;'; put 'put ''Ml0sYVtidCsyND4+Ml09YVtSZSsyND4+Ml0sYVtidCsyOD4+Ml09YVtSZSsyOD4+Ml0sYz0wfGFbYj4+Ml0pLDAhPSgwfChmPTB8YVtjKzEwMD4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbMTE2KygwfGFbY3Q+PjJdKT4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4y''@;'; put 'put ''XT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0V0KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhIZSxFdCxm''@;'; put 'put ''LGMpLGFbYnQ+PjJdPWFbSGU+PjJdLGFbYnQrND4+Ml09YVtIZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbSGUrOD4+Ml0sYVtidCsxMj4+Ml09YVtIZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtIZSsxNj4+Ml0sYVtidCsyMD4+Ml09YVtIZSsyMD4+Ml0sYVtidCsyND4+Ml09YVtIZSsyND4+Ml0sYVti''@;'; put 'put ''dCsyOD4+Ml09YVtIZSsyOD4+Ml0sYz0wfGFbYj4+Ml0pLDAhPSgwfChmPTB8YVtjKzEwND4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbMTE2KygwfGFbY3Q+PjJdKT4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4''@;'; put 'put ''Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW0V0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0V0KzIwPj4yXT1hW2J0KzIwPj4yXSxhW0V0KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0V0KzI4Pj4yXT1hW2J0KzI4Pj4yXSxPNyhWZSxFdCxmLGMpLGFbYnQ+PjJdPWFbVmU+PjJdLGFbYnQrND4+''@;'; put 'put ''Ml09YVtWZSs0Pj4yXSxhW2J0Kzg+PjJdPWFbVmUrOD4+Ml0sYVtidCsxMj4+Ml09YVtWZSsxMj4+Ml0sYVtidCsxNj4+Ml09YVtWZSsxNj4+Ml0sYVtidCsyMD4+Ml09YVtWZSsyMD4+Ml0sYVtidCsyND4+Ml09YVtWZSsyND4+Ml0sYVtidCsyOD4+Ml09YVtWZSsyOD4+Ml0sYz0wfGFbYj4+''@;'; put 'put ''Ml0pLDB8KGM9MHxhW2MrMTA4Pj4yXSkmJjB8ZmVbYys4MT4+MF0mJihiPTEmYVsxMTYrKDB8YVtjdD4+Ml0pPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLGFbRXQrMTY+PjJd''@;'; put 'put ''PWFbYnQrMTY+PjJdLGFbRXQrMjA+PjJdPWFbYnQrMjA+PjJdLGFbRXQrMjQ+PjJdPWFbYnQrMjQ+PjJdLGFbRXQrMjg+PjJdPWFbYnQrMjg+PjJdLE83KHFlLEV0LGMsYiksYVtidD4+Ml09YVtxZT4+Ml0sYVtidCs0Pj4yXT1hW3FlKzQ+PjJdLGFbYnQrOD4+Ml09YVtxZSs4Pj4yXSxhW2J0''@;'; put 'put ''KzEyPj4yXT1hW3FlKzEyPj4yXSxhW2J0KzE2Pj4yXT1hW3FlKzE2Pj4yXSxhW2J0KzIwPj4yXT1hW3FlKzIwPj4yXSxhW2J0KzI0Pj4yXT1hW3FlKzI0Pj4yXSxhW2J0KzI4Pj4yXT1hW3FlKzI4Pj4yXSl9az0wfFMwKGwsayl9TT0wfHp0KGwsTSl9Zm9yKHA9MHxhWzE4MCsoYz0wfGFbY3Q+''@;'; put 'put ''PjJdKT4+Ml0sbT1jKzE4NHwwLEE9c3QrOHwwLHc9c3QrMTZ8MCxiPXN0KzI0fDAsZj0xOyEoKDB8Zik+KDB8cCkpOylfW3N0Pj4zXT1Icj0rX1sxNisoMHxhWzE2KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+PjJdKT4+M10sX1tBPj4zXT11cj0rX1syNCsoV2U9MHxhWzE2KygwfGFb''@;'; put 'put ''KDB8YVttPj4yXSkrKGY8PDIpPj4yXSk+PjJdKT4+M10sX1t3Pj4zXT1Tbj0rX1tXZSszMj4+M10sX1tiPj4zXT1Ibj0rX1tXZSs0MD4+M10sX1tidD4+M109K19bKCtfW2J0Pj4zXTxIcj9idDpzdCk+PjNdLF9bYXQ+PjNdPStfWygrX1thdD4+M108dXI/YnQ6c3QpKzg+PjNdLF9ba3Q+PjNd''@;'; put 'put ''PStfWygrX1trdD4+M10+U24/YnQ6c3QpKzE2Pj4zXSxfW1N0Pj4zXT0rX1soK19bU3Q+PjNdPkhuP2J0OnN0KSsyND4+M10sZj1mKzF8MDswIT0oMHwoZj0wfGFbYysxMj4+Ml0pKSYmMCE9KDB8ZmVbZis4MT4+MF0pJiYoYz0xJmFbYysxMTY+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQr''@;'; put 'put ''ND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sYVtFdCsxNj4+Ml09YVtidCsxNj4+Ml0sYVtFdCsyMD4+Ml09YVtidCsyMD4+Ml0sYVtFdCsyND4+Ml09YVtidCsyND4+Ml0sYVtFdCsyOD4+Ml09YVtidCsyOD4+Ml0sTzcoWnQs''@;'; put 'put ''RXQsZixjKSxhW2J0Pj4yXT1hW1p0Pj4yXSxhW2J0KzQ+PjJdPWFbWnQrND4+Ml0sYVtidCs4Pj4yXT1hW1p0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbWnQrMTI+PjJdLGFbYnQrMTY+PjJdPWFbWnQrMTY+PjJdLGFbYnQrMjA+PjJdPWFbWnQrMjA+PjJdLGFbYnQrMjQ+PjJdPWFbWnQrMjQ+PjJd''@;'; put 'put ''LGFbYnQrMjg+PjJdPWFbWnQrMjg+PjJdLGM9MHxhW2N0Pj4yXSksYVsoY3Q9YysxNnwwKT4+Ml09YVtidD4+Ml0sYVtjdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbY3QrOD4+Ml09YVtidCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2J0KzEyPj4yXSxhW2N0KzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW2N0KzIw''@;'; put 'put ''Pj4yXT1hW2J0KzIwPj4yXSxhW2N0KzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW2N0KzI4Pj4yXT1hW2J0KzI4Pj4yXX1sZT1hbn1mdW5jdGlvbiBtRChsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBUTihsLGMsZil7dmFyIHA7cD0rX1s4KyhjfD0wKT4+''@;'; put 'put ''M10tK19bOCsoZnw9MCk+PjNdLF9bKGx8PTApPj4zXT0rX1tjPj4zXS0rX1tmPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBBSihsLGMsZil7dmFyIHA7cD0rX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSxfWyhsfD0wKT4+M109K19bZj4+M10rICtfW2M+PjNdLF9bbCs4Pj4zXT1w''@;'; put 'put ''fWZ1bmN0aW9uIHZEKGwpe3JldHVybiAwfCgoMHxhWzYwKyhsfD0wKT4+Ml0pPT0oMHxsKT8xOjA9PSgwfGw0KDB8dGkobCksMTA4MDA2LDcpKSYxKX1mdW5jdGlvbiBJTihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDtlOmRve2lmKCFtKXN3aXRjaCgwfGtpKGMpKXtjYXNl''@;'; put 'put ''IDA6bT0wfHNpKGwsMCxmLDE5NTA1OSk7YnJlYWsgZTtjYXNlIDE6bT0wfHNpKGwsMSxmLDE5NTA1OSk7YnJlYWsgZTtjYXNlIDI6bT0wfHNpKGwsMixmLDE5NTA1OSk7YnJlYWsgZTtkZWZhdWx0Om09MDticmVhayBlfX13aGlsZSgwKTtyZXR1cm4gVmwoYyxtLHApLDB8bX1mdW5jdGlvbiB5''@;'; put 'put ''SihsKXt2YXIgYztyZXR1cm4gd0oobHw9MCxjPTB8aXMoMjM2MjgsMHxhWzQ1ODFdKSksMHxjfWZ1bmN0aW9uIE1sZShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGssTSxHLGJlLEE9MCx3PTAsYj0wLEQ9MCxSPTAscT0wLHBlPTAsZ2U9MDtiZT1sZSxsZT1sZSs0OHwwLHE9''@;'; put 'put ''YmUrMzJ8MCxHPWJlKzI0fDAsZ2U9YmUrMTZ8MCxwZT1iZSs4fDAsaz1iZSxNPTB8YVsoMz09KDB8KEQ9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrNDh8MCkrNDA+PjJdLEQ9MHxhWygyPT0oMHxEKT9sOmwrLTQ4fDApKzQwPj4yXTtkb3tpZighKDB8ZmVbMTE4KygwfGFbRCsxNj4+Ml0pPj4wXSkm''@;'; put 'put ''JihBPTAhPSgwfChSPTB8czIoMHx0aShNKSwxMDgwMDYsNyk/MDowfEROKG0sMHx0aShNKSkpKSl8KGI9MCE9KDB8KHc9MHxzMigwfHRpKEQpLDEwODAwNiw3KT8wOjB8RE4obSwwfHRpKEQpKSkpKSl7aWYoKDB8Uik9PSgwfHcpKXtwZT0wfHRpKE0pLGdlPTB8dGkoTSksYVtrPj4yXT1wZSxh''@;'; put 'put ''W2srND4+Ml09Z2UsJHIoMCwxMDgwMjksayk7YnJlYWt9aWYoMHwobT0wfEVsZShwLGwpKSl7QWsobCwwfGFbbSsxNj4+Ml0sMHxhW20rMjA+PjJdKTticmVha31pZighYil7aWYoMHxOcihSLEQpKXtwZT0wfHRpKEQpLGdlPTB8dGkoUiksYVtxPj4yXT1wZSxhW3ErND4+Ml09Z2UsJHIoMCwx''@;'; put 'put ''MDgxODQscSk7YnJlYWt9TE4ocCxNLEQsMHxBayhsLDB8QUQoTSxSLGYsYyksRCkpO2JyZWFrfWlmKCFBKXtpZigwfE5yKHcsTSkpe3BlPTB8dGkoTSksZ2U9MHx0aSh3KSxhW0c+PjJdPXBlLGFbRys0Pj4yXT1nZSwkcigwLDEwODE0NyxHKTticmVha31MTihwLE0sRCwwfEFrKGwsTSwwfEFE''@;'; put 'put ''KEQsdyxmLGMpKSk7YnJlYWt9aWYoMHxOcih3LFIpKXtxPTB8dGkoUiksZ2U9MHx0aSh3KSxhW3BlPj4yXT1xLGFbcGUrND4+Ml09Z2UsJHIoMCwxMDgwNjcscGUpO2JyZWFrfWlmKDB8TnIoUix3KSl7cT0wfHRpKHcpLHBlPTB8dGkoUiksYVtnZT4+Ml09cSxhW2dlKzQ+PjJdPXBlLCRyKDAs''@;'; put 'put ''MTA4MTA3LGdlKTticmVha31MTihwLE0sRCwwfEFrKGwsZ2U9MHxBRChNLFIsZixjKSwwfEFEKEQsdyxmLGMpKSk7YnJlYWt9fXdoaWxlKDApO2xlPWJlfWZ1bmN0aW9uIEROKGwsYyl7cmV0dXJuIDB8KChsPTB8bWlbNjMmYVsobHw9MCk+PjJdXShsLGN8PTAsNTEyKSk/MHxhW2wrMTI+PjJd''@;'; put 'put ''OjApfWZ1bmN0aW9uIEVsZShsLGMpe3ZhciBmLHAsbTtyZXR1cm4gbHw9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09YVsoMz09KDB8KG09MyZhWyhjfD0wKT4+Ml0pKT9jOmMrNDh8MCkrNDA+PjJdLGFbcCs0Pj4yXT1hWygyPT0oMHxtKT9jOmMrLTQ4fDApKzQwPj4yXSxjPTB8bWlb''@;'; put 'put ''NjMmYVtsPj4yXV0obCxwLDUxMiksbGU9ZiwwfGN9ZnVuY3Rpb24gQWsobCxjLGYpe3JldHVybiBsfD0wLGZ8PTAsaDAoZj0wfEthKDB8Y3IoY3w9MCksYyxmLDAsMSksMTM3NDYwLDE3NiwxKSxSNihsLGYpLDB8Zn1mdW5jdGlvbiBBRChsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgQSxr''@;'; put 'put ''LG09MCx3PTAsYj0wO3JldHVybiBrPWxlLGxlPWxlKzExMnwwLG09ayxiPWsrNHwwLHVvKGZ8PTAsMTA4MjIxKSxhWzQ3MzIxXT0xKyh3PTB8YVs0NzMyMV0pLGFbbT4+Ml09dyxvbyhiLDEzNzM5NSxtKSx1byhmLGIpLChtPTB8YVsoYj1mKzR8MCk+PjJdKT4+PjA+PSgwfGFbKHc9Zis4fDAp''@;'; put 'put ''Pj4yXSk+Pj4wJiYoUTAoZiwxKSxtPTB8YVtiPj4yXSksYVtiPj4yXT1tKzEsZmVbbT4+MF09NTgsdW8oZiwwfHRpKGMpKSxBPTB8ZGkoYyksKG09MHxhW2I+PjJdKT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCYmKFEwKGYsMSksbT0wfGFbYj4+Ml0pLGZlW20+PjBdPTAsYVtiPj4yXT1mPTB8YVtm''@;'; put 'put ''Pj4yXSxoMChiPTB8R3IoQSxmLDEpLDEzNzQ0NywzMDQsMSksZmVbMTE4KygwfGFbYisxNj4+Ml0pPj4wXT0xLFluKGMsYiwxKSxZbihwLGwsMSkscD0wfGNyKGIpLGFbNDcxNTRdPTB8SU4ocCxiLDEwODIyNCwxOTUwNTksMHxhWzQ3MTU0XSkscD0wfGNyKGIpLGFbNDcxNTddPTB8SU4ocCxi''@;'; put 'put ''LDE0MTA4MiwxMzQzMzUsMHxhWzQ3MTU3XSkscD0wfGNyKGIpLGFbNDcxNDddPTB8SU4ocCxiLDEwODIzMCwxMDgyMzYsMHxhWzQ3MTQ3XSksbGU9aywwfGJ9ZnVuY3Rpb24gTE4obCxjLGYscCl7dmFyIG0sQSx3LGIsayxNLEQsUixHO2x8PTAsZnw9MCxwfD0wLG09bGUsbGU9bGUrMzJ8MCxh''@;'; put 'put ''WyhSPShBPW0pKzh8MCk+PjJdPWN8PTAsYVsoRD1BKzEyfDApPj4yXT1mLGI9cCs0OHwwLGFbKGs9QSsxNnwwKT4+Ml09YVsoMz09KDB8KEc9MyZhW3A+PjJdKSk/cDpiKSs0MD4+Ml0sTT1wKy00OHwwLGFbKHc9QSsyMHwwKT4+Ml09YVsoMj09KDB8Ryk/cDpNKSs0MD4+Ml0sbWlbNjMmYVts''@;'; put 'put ''Pj4yXV0obCxBLDEpLGFbUj4+Ml09ZixhW0Q+PjJdPWMsYVtrPj4yXT1hWygyPT0oMHwoZj0zJmFbcD4+Ml0pKT9wOk0pKzQwPj4yXSxhW3c+PjJdPWFbKDM9PSgwfGYpP3A6YikrNDA+PjJdLG1pWzYzJmFbbD4+Ml1dKGwsQSwxKSxsZT1tfWZ1bmN0aW9uIHdKKGwsYyl7Y3w9MDt2YXIgbSxB''@;'; put 'put ''LHcsZj0wLHA9MCxiPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxBPXcsbT0xNisobHw9MCl8MCxwPTE7ISgoMHxwKT4oMHxhWzE4MCsobD0wfGFbbT4+Ml0pPj4yXSkpOylmPTB8dGkobD0wfGFbKDB8YVtsKzE4ND4+Ml0pKyhwPDwyKT4+Ml0pLDB8bWlbNjMmYVtjPj4yXV0oYyxmLDUxMik/KGFb''@;'; put 'put ''QT4+Ml09ZiwkcigwLDEwODI0MCxBKSk6KGI9MHx2cigxNiksYVtiKzg+PjJdPWYsYVtiKzEyPj4yXT1sLG1pWzYzJmFbYz4+Ml1dKGMsYiwxKSksd0oobCxjKSxwPXArMXwwO2xlPXd9ZnVuY3Rpb24gYkoobCl7dmFyIHAsYz0wLGY9MDtmb3IoaDAocD0wfHBzKGx8PTAsMTA4MDE0LDEpLDEz''@;'; put 'put ''NzQ4MywyODAsMSksYz0wfER0KGwpO2M7KXtmb3IoZj0wfHcwKGwsYyk7ZjspTGxlKGYscCksZj0wfFMwKGwsZik7Yz0wfHp0KGwsYyl9Zm9yKGM9MHxEdChwKTtjOylmPTB8enQocCxjKSxvZyhjKSxvaShsLGMpLGM9ZjtDMShwKX1mdW5jdGlvbiBMbGUobCxjKXtjfD0wO3ZhciBmPTAscD0w''@;'; put 'put ''O3A9MHxhWygzPT0oMHwoZj0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0sZj0wfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdLDA9PSgwfGZlWzExOCsoMHxhW3ArMTY+PjJdKT4+MF0pJiYhKDB8ZmVbMTE4KygwfGFbZisxNj4+Ml0pPj4wXSl8fChmPTB8QWsobCxwPTB8''@;'; put 'put ''T04ocCxjKSwwfE9OKGYsYykpLGFbOCsoZj0wfGFbZisxNj4+Ml0pPj4yXT1hWyhjPTgrKHA9MHxhW2wrMTY+PjJdKXwwKT4+Ml0sYVtjPj4yXT0wLGFbZis5Nj4+Ml09YVsoYz1wKzk2fDApPj4yXSxhW2M+PjJdPTAsYVtmKzEwOD4+Ml09YVsoYz1wKzEwOHwwKT4+Ml0sYVtjPj4yXT0wLGFb''@;'; put 'put ''ZisxMDA+PjJdPWFbKGM9cCsxMDB8MCk+PjJdLGFbYz4+Ml09MCxhW2YrMTA0Pj4yXT1hWyhwPXArMTA0fDApPj4yXSxhW3A+PjJdPTAsYWcobCkpfWZ1bmN0aW9uIG9nKGwpe3ZhciBwLGM9MCxmPTA7KGY9MHxhWzEzMisoYz0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKSYmKEZ0KGYp''@;'; put 'put ''LGM9MHxhW3A+PjJdKSwoZj0wfGFbYys4Pj4yXSkmJihDb1sxMjcmYVs0KygwfGFbZis0Pj4yXSk+PjJdXShsKSxjPTB8YVtwPj4yXSksSWMoMHxhW2MrMTA0Pj4yXSksSWMoMHxhWzEwOCsoMHxhW3A+PjJdKT4+Ml0pLEhpKGwsMTM3NDQ3KX1mdW5jdGlvbiBPTihsLGMpe2N8PTA7dmFyIHAs''@;'; put 'put ''Zj0wO3A9MHxjcihsfD0wKTtlOmRve2lmKDB8ZmVbMTE4KygwfGFbbCsxNj4+Ml0pPj4wXSYmKFluKGMsbCwxKSxsPTB8JHMoMHx0aShsKSw1OCksbHx8UHIoMTExMjA4LDEwNzY2MSwxMjI1LDEwODI5MiksYz1sKzF8MCxsPTB8R3IocCxjLDApLCFsKSlmb3IobD0wfEdyKHAsYywxKSxoMChs''@;'; put 'put ''LDEzNzQ0NywzMDQsMSksYz0wfE5zKHAsMSwwKTs7KXtpZighYylicmVhayBlOygwfEhvKGwsYykpIT0oMHwoZj0wfGFbYysxMj4+Ml0pKSYmVmwobCxjLGYpLGM9MHxOcyhwLDEsYyl9fXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gYWcobCl7dmFyIGM7RnQoMHxhWzE0NCsoMHxhWyhj''@;'; put 'put ''PTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSkseUQobCksSWMoMHxhWzk2KygwfGFbYz4+Ml0pPj4yXSksSWMoMHxhWzEwOCsoMHxhW2M+PjJdKT4+Ml0pLEljKDB8YVsxMDArKDB8YVtjPj4yXSk+PjJdKSxJYygwfGFbMTA0KygwfGFbYz4+Ml0pPj4yXSksSGkobCwxMzc0NjApfWZ1bmN0aW9uIHlE''@;'; put 'put ''KGwpe3ZhciBwLGM9MCxmPTA7aWYoYz0wfGFbOCsobD0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdKXtmb3IoZj0wO2w9MHxhW2M+PjJdLCEoKDB8Zik+PSgwfGFbYys0Pj4yXSkpOylGdCgwfGFbbCsoNDgqZnwwKT4+Ml0pLGY9ZisxfDAsYz0wfGFbOCsoMHxhW3A+PjJdKT4+Ml07RnQo''@;'; put 'put ''bCksRnQoMHxhWzgrKDB8YVtwPj4yXSk+PjJdKSxsPTB8YVtwPj4yXX1hW2wrOD4+Ml09MH1mdW5jdGlvbiBaMihsLGMsZixwKXtwfD0wO3ZhciBtPTA7cmV0dXJuKG09MHxzaShsfD0wLGN8PTAsZnw9MCwwKSl8fChtPTB8c2kobCxjLGYscCkpLDB8bX1mdW5jdGlvbiBPbGUobCxjKXtjfD0w''@;'; put 'put ''O3ZhciBBLHcsYixrLE0sRCxSLGY9MCxwPTAsbT0wO3JldHVybiBSPWxlLGxlPWxlKzMyfDAsdz1SLEE9Uis4fDAsYj1SKzE2fDAsTT0wfCRzKGx8PTAsNTkpLChmPTB8YVsoRD1jKzR8MCk+PjJdKT4+PjA+PSgwfGFbKGs9Yys4fDApPj4yXSk+Pj4wJiYoUTAoYywxKSxmPTB8YVtEPj4yXSks''@;'; put 'put ''YVtEPj4yXT1mKzEsZmVbZj4+MF09MzgsMCE9KDB8TSkmJigocD1NLWx8MCktMnwwKT4+PjA8PTYmJihldyhiLGwscCksZmVbYitwPj4wXT0wLGFbQT4+Ml09YiwwIT0oMHwobT0wfG53KEEsMjM2NjQsMjUyLDgsOTYpKSkpJiYoYVt3Pj4yXT1hW20rND4+Ml0sb28oYiwxMzczOTUsdyksKGw9''@;'; put 'put ''MHxhW0Q+PjJdKT4+PjA+PSgwfGFbaz4+Ml0pPj4+MCYmKFEwKGMsMSksbD0wfGFbRD4+Ml0pLGFbRD4+Ml09bCsxLGZlW2w+PjBdPTM1LHVvKGMsYiksKGw9MHxhW0Q+PjJdKT4+PjA+PSgwfGFbaz4+Ml0pPj4+MCYmKFEwKGMsMSksbD0wfGFbRD4+Ml0pLGFbRD4+Ml09bCsxLGZlW2w+PjBd''@;'; put 'put ''PTU5LGw9TSsxfDApLGxlPVIsMHxsfWZ1bmN0aW9uIFJOKGwsYyl7Y3w9MDt2YXIgdyxiLGssUixxLGY9MCxwPTAsbT0wLEE9MCxNPTAsRD0wLEc9MDtmb3IocT1sZSxsZT1sZSsxMDcyfDAsaz1xKzh8MCxiPXEsUj1xKzI0fDAsYVsodz1xKzE2fDApPj4yXT1sfD0wLCgwfGFbNDczMjJdKSE9''@;'; put 'put ''KDB8YykmJihhWzQ3MzIyXT1jLGZlWzE5NDk1OF09MCksdXMoUiwxMDI0LHErNDB8MCksRz1SKzR8MCxEPVIrOHwwO2Fbdz4+Ml09cD1sKzF8MCwoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0Oyl7ZG97aWYoKDI1NSZmKTwxOTIpaWYoZjw8MjQ+PjI0PT0zOClpZihwPTB8Qk4odykpe2lmKHA+Pj4w''@;'; put 'put ''PDEyNyl7Zj0yNTUmcDticmVha31pZihmPShsPTB8YVtHPj4yXSk+Pj4wPj0oMHxhW0Q+PjJdKT4+PjAscD4+PjA8MjA0Nyl7ZiYmKFEwKFIsMSksbD0wfGFbRz4+Ml0pLGFbRz4+Ml09bCsxLGZlW2w+PjBdPXA+Pj42fDE5MixmPTI1NSYoNjMmcHwxMjgpO2JyZWFrfWYmJihRMChSLDEpLGw9''@;'; put 'put ''MHxhW0c+PjJdKSxhW0c+PjJdPWwrMSxmZVtsPj4wXT1wPj4+MTJ8MjI0LChsPTB8YVtHPj4yXSk+Pj4wPj0oMHxhW0Q+PjJdKT4+PjAmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxhW0c+PjJdPWwrMSxmZVtsPj4wXT1wPj4+NiY2M3wxMjgsZj0yNTUmKDYzJnB8MTI4KX1lbHNlIGY9Mzg7ZWxz''@;'; put 'put ''ZSBBPTAsTT05O2Vsc2UoMjU1JmYpPj0yMjQ/KDI1NSZmKT49MjQwPygyNTUmZik8MjQ4PyhBPTMsTT05KTooMHxmZVsxOTQ5NThdfHwoYVtiPj4yXT0wfHRpKGMpLCRyKDAsMTA5NzA3LGIpLGZlWzE5NDk1OF09MSksQT0tMSxmPTB8X0ooZixSKSxNPTkpOihBPTIsTT05KTooQT0xLE09OSl9''@;'; put 'put ''d2hpbGUoMCk7ZG97aWYoOT09KDB8TSkpe2ZvcihNPTAsbT0wOzspe2lmKCgwfG0pPj0oMHxBKSl7TT0zNDticmVha31pZigoLTY0JmZlW3A+PjBdKTw8MjQ+PjI0IT0tMTI4KWJyZWFrOyhsPTB8YVtHPj4yXSk+Pj4wPj0oMHxhW0Q+PjJdKT4+PjAmJihRMChSLDEpLGw9MHxhW0c+PjJdKSxh''@;'; put 'put ''W0c+PjJdPWwrMSxmZVtsPj4wXT1mLG09bSsxfDAsZj0wfGZlW3A+PjBdLHA9cCsxfDB9aWYoMzQ9PSgwfE0pKXtNPTAsYVt3Pj4yXT1wO2JyZWFrfWFbdz4+Ml09cCwwfGZlWzE5NDk1OF18fChtPTB8dGkoYyksYVtrPj4yXT1BKzEsYVtrKzQ+PjJdPW0sJHIoMCwxMDk4MjgsayksZmVbMTk0''@;'; put 'put ''OTU4XT0xKSxmPTB8X0ooZixSKX19d2hpbGUoMCk7KGw9MHxhW0c+PjJdKT4+PjA+PSgwfGFbRD4+Ml0pPj4+MCYmKFEwKFIsMSksbD0wfGFbRz4+Ml0pLGFbRz4+Ml09bCsxLGZlW2w+PjBdPWYsbD0wfGFbdz4+Ml19cmV0dXJuKGw9MHxhW0c+PjJdKT4+PjA+PSgwfGFbRD4+Ml0pPj4+MCYm''@;'; put 'put ''KFEwKFIsMSksbD0wfGFbRz4+Ml0pLGZlW2w+PjBdPTAsYVtHPj4yXT1EPTB8YVtSPj4yXSxHPTB8cmEoRCksQzIoUiksbGU9cSwwfEd9ZnVuY3Rpb24gX0oobCxjKXtjfD0wO3ZhciBBLHcsYixmPTAscD0wLG09MCxrPTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxmZVsobT1iKT4+MF09bHw9MCxm''@;'; put 'put ''ZVttKzE+PjBdPTAsQT1jKzR8MCx3PWMrOHwwLGY9MHxVbyhtPTB8eWsobSkpLHA9bTshKCgwfGYpPD0xKTspKGw9MHxhW0E+PjJdKT4+PjA+PSgwfGFbdz4+Ml0pPj4+MCYmKFEwKGMsMSksbD0wfGFbQT4+Ml0pLGs9MHxmZVtwPj4wXSxhW0E+PjJdPWwrMSxmZVtsPj4wXT1rLGY9ZistMXww''@;'; put 'put ''LHA9cCsxfDA7cmV0dXJuIGs9MHxmZVtwPj4wXSxGdChtKSxsZT1iLDB8a31mdW5jdGlvbiBCTihsKXt2YXIgdyxjPTAsZj0wLHA9MCxtPTAsQT0wO3c9bGUsbGU9bGUrMzJ8MCxBPXcsYz13Kzh8MCxmPTB8YVsobHw9MCk+PjJdO2U6ZG97aWYoMzUhPSgwfGZlW2Y+PjBdKSl7YVtBPj4yXT1j''@;'; put 'put ''LG09MDt0OmZvcig7Oyl7aWYoKDB8bSk+PTgpe2M9MDticmVhayBlfXN3aXRjaCgocD0wfGZlW2YrbT4+MF0pPDwyND4+MjQpe2Nhc2UgMDpjPTA7YnJlYWsgZTtjYXNlIDU5OmJyZWFrIHR9ZmVbYz4+MF09cCxjPWMrMXwwLG09bSsxfDB9ZmVbYz4+MF09MCwoYz0wfG53KEEsMjM2NjQsMjUy''@;'; put 'put ''LDgsOTYpKT8oZj1mKyhtKzEpfDAsYz0wfGFbYys0Pj4yXSk6Yz0wfWVsc2V7Yz0yNTUmKEE9MHxmZVtmKzE+PjBdKTt0OmRve2lmKCgzMnxBKTw8MjQ+PjI0PT0xMjApZm9yKEE9MCxtPTI7Oyl7aWYoKDB8bSk+PTgpe3A9QTticmVhayB0fWlmKGM9MjU1JihwPTB8ZmVbZittPj4wXSksKHAr''@;'; put 'put ''LTY1JjI1NSk+PTYpaWYoKHArLTk3JjI1NSk+PTYpe2lmKCEoKHArLTQ4JjI1NSk8MTApKXtwPUE7YnJlYWsgdH1wPS00OH1lbHNlIHA9LTg3O2Vsc2UgcD0tNTU7QT0oYz1wK2N8MCkrKEE8PDQpfDAsbT1tKzF8MH1lbHNlIGZvcihwPTAsbT0xOzspe2lmKCgwfG0pPj04fHwoYz0yNTUmKEE9''@;'; put 'put ''MHxmZVtmK20+PjBdKSwoQSstNDgmMjU1KT49MTApKWJyZWFrIHQ7cD0oMTAqcHwwKS00OCtjfDAsbT1tKzF8MH19d2hpbGUoMCk7Zj0oYz01OT09KDB8YykpP2YrKG0rMSl8MDpmLGM9Yz9wOjB9fXdoaWxlKDApO3JldHVybiBhW2w+PjJdPWYsbGU9dywwfGN9ZnVuY3Rpb24geWsobCl7dmFy''@;'; put 'put ''IG0sdyxrLGM9MCxmPTAscD0wLEE9MCxiPTA7Zm9yKGs9bGUsbGU9bGUrMTA1NnwwLHc9ays4fDAsYVsobT1rKT4+Ml09bHw9MCx1cyh3LDEwMjQsaysyNHwwKSxiPXcrNHwwLEE9dys4fDA7YVttPj4yXT1sKzEsKGM9MHxmZVtsPj4wXSk8PDI0Pj4yNDspe2w9MjU1JmMsYzw8MjQ+PjI0PT0z''@;'; put 'put ''OD8obD0wfEJOKG0pKT9wPTU6KGw9MzgscD02KTpwPTU7ZG97aWYoNT09KDB8cCkpaWYocD0wLGw+Pj4wPDEyNylwPTY7ZWxzZXtpZihmPShjPTB8YVtiPj4yXSk+Pj4wPj0oMHxhW0E+PjJdKT4+PjAsbD4+PjA8MjA0Nyl7ZiYmKFEwKHcsMSksYz0wfGFbYj4+Ml0pLGFbYj4+Ml09YysxLGZl''@;'; put 'put ''W2M+PjBdPWw+Pj42fDE5MiwoYz0wfGFbYj4+Ml0pPj4+MD49KDB8YVtBPj4yXSk+Pj4wJiYoUTAodywxKSxjPTB8YVtiPj4yXSksbD02MyZsfDEyODticmVha31mJiYoUTAodywxKSxjPTB8YVtiPj4yXSksYVtiPj4yXT1jKzEsZmVbYz4+MF09bD4+PjEyfDIyNCwoYz0wfGFbYj4+Ml0pPj4+''@;'; put 'put ''MD49KDB8YVtBPj4yXSk+Pj4wJiYoUTAodywxKSxjPTB8YVtiPj4yXSksYVtiPj4yXT1jKzEsZmVbYz4+MF09bD4+PjYmNjN8MTI4LChjPTB8YVtiPj4yXSk+Pj4wPj0oMHxhW0E+PjJdKT4+PjAmJihRMCh3LDEpLGM9MHxhW2I+PjJdKSxsPTYzJmx8MTI4fX13aGlsZSgwKTs2PT0oMHxwKSYm''@;'; put 'put ''KGM9MHxhW2I+PjJdKT4+PjA+PSgwfGFbQT4+Ml0pPj4+MCYmKFEwKHcsMSksYz0wfGFbYj4+Ml0pLGFbYj4+Ml09YysxLGZlW2M+PjBdPWwsbD0wfGFbbT4+Ml19cmV0dXJuKGw9MHxhW2I+PjJdKT4+PjA+PSgwfGFbQT4+Ml0pPj4+MCYmKFEwKHcsMSksbD0wfGFbYj4+Ml0pLGZlW2w+PjBd''@;'; put 'put ''PTAsYVtiPj4yXT1BPTB8YVt3Pj4yXSxiPTB8cmEoQSksQzIodyksbGU9aywwfGJ9ZnVuY3Rpb24gQ0oobCl7bHw9MDt2YXIgbSx3LGM9MCxmPTAscD0wLEE9MDtmb3Iodz1sZSxsZT1sZSsxMDQwfDAsdXMobT13LDEwMjQsdysxNnwwKSxBPW0rNHwwLHA9bSs4fDA7Yz1sKzF8MCwoZj0wfGZl''@;'; put 'put ''W2w+PjBdKTw8MjQ+PjI0OykoMjU1JmYpPDEyNz8oKGw9MHxhW0E+PjJdKT4+PjA+PSgwfGFbcD4+Ml0pPj4+MCYmKFEwKG0sMSksbD0wfGFbQT4+Ml0pLGFbQT4+Ml09bCsxLGZlW2w+PjBdPWYsbD1jKTooZj02MyZmZVtjPj4wXXxmPDw2JjI1NSwoYz0wfGFbQT4+Ml0pPj4+MD49KDB8YVtw''@;'; put 'put ''Pj4yXSk+Pj4wJiYoUTAobSwxKSxjPTB8YVtBPj4yXSksYVtBPj4yXT1jKzEsZmVbYz4+MF09ZixsPWwrMnwwKTtyZXR1cm4obD0wfGFbQT4+Ml0pPj4+MD49KDB8YVtwPj4yXSk+Pj4wJiYoUTAobSwxKSxsPTB8YVtBPj4yXSksZmVbbD4+MF09MCxhW0E+PjJdPXA9MHxhW20+PjJdLEE9MHxy''@;'; put 'put ''YShwKSxDMihtKSxsZT13LDB8QX1mdW5jdGlvbiBCbGUobCxjKXt2YXIgcCxtLEEsdyxiLGssRCxmPTAsTT0wO3JldHVybiBEPWxlLGxlPWxlKzgwfDAscD1EKzQ4fDAsZj1EKzMyfDAsbT1EKzY0fDAsQT1EKzE2fDAsdz1ELCtfWyhiPTE2KyhjfD0wKXwwKT4+M10+PStfWzQ4KyhNPTB8YVso''@;'; put 'put ''az0xNisobHw9MCl8MCk+PjJdKT4+M10mJitfW00rNjQ+PjNdPj0rX1tjPj4zXSYmK19bYysyND4+M10+PStfW00rNTY+PjNdJiYrX1tNKzcyPj4zXT49K19bYys4Pj4zXT8oTT1NKzE2fDAsYVtmPj4yXT1hW2I+PjJdLGFbZis0Pj4yXT1hW2IrND4+Ml0sYVtmKzg+PjJdPWFbYis4Pj4yXSxh''@;'; put 'put ''W2YrMTI+PjJdPWFbYisxMj4+Ml0sYVtwPj4yXT1hW2M+PjJdLGFbcCs0Pj4yXT1hW2MrND4+Ml0sYVtwKzg+PjJdPWFbYys4Pj4yXSxhW3ArMTI+PjJdPWFbYysxMj4+Ml0sZnVuY3Rpb24gUGxlKGwsYyxmKXt2YXIgcDtwPS41KigrX1s4KyhmfD0wKT4+M10rICtfWzgrKGN8PTApPj4zXSks''@;'; put 'put ''X1sobHw9MCk+PjNdPS41KigrX1tmPj4zXSsgK19bYz4+M10pLF9bbCs4Pj4zXT1wfShBLGYscCksYVtmPj4yXT1hW00+PjJdLGFbZis0Pj4yXT1hW00rND4+Ml0sYVtmKzg+PjJdPWFbTSs4Pj4yXSxhW2YrMTI+PjJdPWFbTSsxMj4+Ml0sYVtwPj4yXT1hW0E+PjJdLGFbcCs0Pj4yXT1hW0Er''@;'; put 'put ''ND4+Ml0sYVtwKzg+PjJdPWFbQSs4Pj4yXSxhW3ArMTI+PjJdPWFbQSsxMj4+Ml0sVE4odyxmLHApLGFbbT4+Ml09bCxhW20rND4+Ml09MCxmPTB8YVsxMisoMHxhWzQrKDB8YVs4KygwfGFbaz4+Ml0pPj4yXSk+PjJdKT4+Ml0sYVtwPj4yXT1hW3c+PjJdLGFbcCs0Pj4yXT1hW3crND4+Ml0s''@;'; put 'put ''YVtwKzg+PjJdPWFbdys4Pj4yXSxhW3ArMTI+PjJdPWFbdysxMj4+Ml0sZj0wfEJpWzEyNyZmXShtLHApKTpmPTAsbGU9RCwwfGZ9ZnVuY3Rpb24gUE4obCxjKXt2YXIgcCxtLEEsdyxiLGssTSxEO3JldHVybiBjfD0wLHA9bGUsbGU9bGUrODB8MCxiPXArNjR8MCxrPXArNDh8MCxEPXArMzJ8''@;'; put 'put ''MCxBPXArMTZ8MCxfWyhNPXApPj4zXT0uNSorX1syNCsobHw9MCk+PjNdLF9bTSs4Pj4zXT0uNSorX1tsKzMyPj4zXSxhW2s+PjJdPWFbKGw9bCs1NnwwKT4+Ml0sYVtrKzQ+PjJdPWFbbCs0Pj4yXSxhW2srOD4+Ml09YVtsKzg+PjJdLGFbaysxMj4+Ml09YVtsKzEyPj4yXSxhW2I+PjJdPWFb''@;'; put 'put ''TT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSxUTihELGssYiksdz0rX1tEPj4zXSxtPStfW0QrOD4+M10sYVtrPj4yXT1hW2w+PjJdLGFbays0Pj4yXT1hW2wrND4+Ml0sYVtrKzg+PjJdPWFbbCs4Pj4yXSxhW2srMTI+''@;'; put 'put ''PjJdPWFbbCsxMj4+Ml0sYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4yXT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0sQUooQSxrLGIpLGxlPXAsMHwoK19bYysxNj4+M10+PXcmJitfW0E+PjNdPj0rX1tjPj4zXSYmK19bYysyND4+M10+PW0/K19b''@;'; put 'put ''QSs4Pj4zXT49K19bYys4Pj4zXSYxOjApfWZ1bmN0aW9uIGtKKGwsYyl7Y3w9MDt2YXIgdyxiLGssTSxSLGY9MCxwPTAsbT0wLEE9MCxEPTA7Uj1sZSxsZT1sZSs4MHwwLE09Uis0OHwwLGs9UixiPTB8YVs4KyhsPTB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+Ml07ZTpkb3tpZigwIT0oMHxi''@;'; put 'put ''KSYmKEE9Yis4fDAsYVtrPj4yXT1hW0E+PjJdLGFbays0Pj4yXT1hW0ErND4+Ml0sYVtrKzg+PjJdPWFbQSs4Pj4yXSxhW2srMTI+PjJdPWFbQSsxMj4+Ml0sYVtrKzE2Pj4yXT1hW0ErMTY+PjJdLGFbaysyMD4+Ml09YVtBKzIwPj4yXSxhW2srMjQ+PjJdPWFbQSsyND4+Ml0sYVtrKzI4Pj4y''@;'; put 'put ''XT1hW0ErMjg+PjJdLGFbTT4+Ml09YVtjPj4yXSxhW00rND4+Ml09YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLGFbTSsxNj4+Ml09YVtjKzE2Pj4yXSxhW00rMjA+PjJdPWFbYysyMD4+Ml0sYVtNKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbTSsyOD4+''@;'; put 'put ''Ml09YVtjKzI4Pj4yXSwwIT0oMHxGbGUoayxNKSkpKXtmb3IoZj1iKzR8MCxsPTA7ISgoMHxsKT49KDB8YVtmPj4yXSkpOyl7bT0oMHxhW2I+PjJdKSsoNDgqbHwwKXwwLEE9KHA9aykrNDh8MDtkb3thW3A+PjJdPWFbbT4+Ml0scD1wKzR8MCxtPW0rNHwwfXdoaWxlKCgwfHApPCgwfEEpKTtp''@;'; put 'put ''ZihhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+''@;'; put 'put ''Ml0sKDB8SGxlKGssTSkpPDwyND4+MjQpe2w9MTticmVhayBlfWw9bCsxfDB9bD0wfGFbdz4+Ml0sRD03fWVsc2UgRD03fXdoaWxlKDApO2Rve2lmKDc9PSgwfEQpKXtpZigwfChsPTB8YVtsKzk2Pj4yXSkmJihhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09''@;'; put 'put ''YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1hW2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+Ml0sKDB8UE4obCxNKSk8PDI0Pj4yNCkpe2w9MTticmVha31sPTB9fXdoaWxlKDAp''@;'; put 'put ''O3JldHVybiBsZT1SLDB8bH1mdW5jdGlvbiBGbGUobCxjKXtyZXR1cm4gMHwoK19bMTYrKGx8PTApPj4zXT49K19bKGN8PTApPj4zXSYmK19bYysxNj4+M10+PStfW2w+PjNdJiYrX1tsKzI0Pj4zXT49K19bYys4Pj4zXT8rX1tjKzI0Pj4zXT49K19bbCs4Pj4zXSYxOjApfWZ1bmN0aW9uIEhs''@;'; put 'put ''ZShsLGMpe2N8PTA7dmFyIG0sYixrLE0sUixmPTAscD0wLEE9MCx3PTAsRD0wO2ZvcihSPWxlLGxlPWxlKzk2fDAsTT1SKzY0fDAsaz1SKzQ4fDAsYj1SKzMyfDAsbT1SKzE2fDAsQT1SLChmPTB8YVsoRD00KyhsfD0wKXwwKT4+Ml0pfHxQcigxMDk5MzcsMTA3NjYxLDE2MzcsMTA5OTQ1KSxh''@;'; put 'put ''W0E+PjJdPWFbKHA9MHxhW2w+PjJdKT4+Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxhW0ErOD4+Ml09YVtwKzg+PjJdLGFbQSsxMj4+Ml09YVtwKzEyPj4yXSxwPTE7Oyl7aWYoKDB8cCk+PSgwfGYpKXt3PTc7YnJlYWt9aWYoYVttPj4yXT1hWyhmPSgwfGFbbD4+Ml0pKyhwPDw0KXwwKT4+Ml0s''@;'; put 'put ''YVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxhW2I+PjJdPWFbZj4+Ml0sYVtiKzQ+PjJdPWFbZis0Pj4yXSxhW2IrOD4+Ml09YVtmKzg+PjJdLGFbYisxMj4+Ml09YVtmKzEyPj4yXSxhW2s+PjJdPWFbQT4+Ml0sYVtrKzQ+PjJd''@;'; put 'put ''PWFbQSs0Pj4yXSxhW2srOD4+Ml09YVtBKzg+PjJdLGFbaysxMj4+Ml09YVtBKzEyPj4yXSxhW00+PjJdPWFbYz4+Ml0sYVtNKzQ+PjJdPWFbYys0Pj4yXSxhW00rOD4+Ml09YVtjKzg+PjJdLGFbTSsxMj4+Ml09YVtjKzEyPj4yXSxhW00rMTY+PjJdPWFbYysxNj4+Ml0sYVtNKzIwPj4yXT1h''@;'; put 'put ''W2MrMjA+PjJdLGFbTSsyND4+Ml09YVtjKzI0Pj4yXSxhW00rMjg+PjJdPWFbYysyOD4+Ml0sLTEhPSgwfFlJKGIsayxNKSkpe2Y9MTticmVha31hW0E+PjJdPWFbbT4+Ml0sYVtBKzQ+PjJdPWFbbSs0Pj4yXSxhW0ErOD4+Ml09YVttKzg+PjJdLGFbQSsxMj4+Ml09YVttKzEyPj4yXSxwPXAr''@;'; put 'put ''MXwwLGY9MHxhW0Q+PjJdfWRve2lmKDc9PSgwfHcpKXtpZigwfChmPTB8YVtsKzg+PjJdKSYmKHc9MHxhW2w+PjJdLGFbYj4+Ml09YVsoQT1sKzE2fDApPj4yXSxhW2IrND4+Ml09YVtBKzQ+PjJdLGFbYis4Pj4yXT1hW0ErOD4+Ml0sYVtiKzEyPj4yXT1hW0ErMTI+PjJdLGFbaz4+Ml09YVt3''@;'; put 'put ''Pj4yXSxhW2srND4+Ml09YVt3KzQ+PjJdLGFbays4Pj4yXT1hW3crOD4+Ml0sYVtrKzEyPj4yXT1hW3crMTI+PjJdLGFbTT4+Ml09YVtjPj4yXSxhW00rND4+Ml09YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLGFbTSsxNj4+Ml09YVtjKzE2Pj4y''@;'; put 'put ''XSxhW00rMjA+PjJdPWFbYysyMD4+Ml0sYVtNKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbTSsyOD4+Ml09YVtjKzI4Pj4yXSwoMHxTSihiLGssMCxNKSk8PDI0Pj4yNCkpe2Y9MTticmVha31pZigwfChmPTB8YVtsKzEyPj4yXSkmJihEPSgwfGFbbD4+Ml0pKygoMHxhW0Q+PjJdKS0xPDw0KXwwLGFb''@;'; put 'put ''Yj4+Ml09YVsodz1sKzMyfDApPj4yXSxhW2IrND4+Ml09YVt3KzQ+PjJdLGFbYis4Pj4yXT1hW3crOD4+Ml0sYVtiKzEyPj4yXT1hW3crMTI+PjJdLGFbaz4+Ml09YVtEPj4yXSxhW2srND4+Ml09YVtEKzQ+PjJdLGFbays4Pj4yXT1hW0QrOD4+Ml0sYVtrKzEyPj4yXT1hW0QrMTI+PjJdLGFb''@;'; put 'put ''TT4+Ml09YVtjPj4yXSxhW00rND4+Ml09YVtjKzQ+PjJdLGFbTSs4Pj4yXT1hW2MrOD4+Ml0sYVtNKzEyPj4yXT1hW2MrMTI+PjJdLGFbTSsxNj4+Ml09YVtjKzE2Pj4yXSxhW00rMjA+PjJdPWFbYysyMD4+Ml0sYVtNKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbTSsyOD4+Ml09YVtjKzI4Pj4yXSwo''@;'; put 'put ''MHxTSihiLGssMCxNKSk8PDI0Pj4yNCkpe2Y9MTticmVha31mPTB9fXdoaWxlKDApO3JldHVybiBsZT1SLDB8Zn1mdW5jdGlvbiBTSihsLGMsZixwKXtjfD0wO3ZhciBBLHcsYixrLE0sRCxtPTAsUj0wO3JldHVybiBNPWxlLGxlPWxlKzE2MHwwLEE9TSsxNDR8MCxEPU0rOTZ8MCx3PU0rNjR8''@;'; put 'put ''MCxiPU0rMzJ8MCxrPU0sUj0rX1sxNisocHw9MCk+PjNdLGFbKG09TSsxMjh8MCk+PjJdPWFbKGx8PTApPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJdLGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEyPj4yXT1hW2wrMTI+PjJdLGFbQT4+Ml09YVtjPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFb''@;'; put 'put ''QSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLEZBKEQsbSxBLDEpLG09Uj49K19bRD4+M10mJihhW20+PjJdPWFbbD4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJdLGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW0E+PjJdPWFbYz4+Ml0sYVtB''@;'; put 'put ''KzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxGQSh3LG0sQSwxKSwrX1t3KzE2Pj4zXT49K19bcD4+M10pJiYoUj0rX1twKzI0Pj4zXSxhW20+PjJdPWFbbD4+Ml0sYVttKzQ+PjJdPWFbbCs0Pj4yXSxhW20rOD4+Ml09YVtsKzg+PjJd''@;'; put 'put ''LGFbbSsxMj4+Ml09YVtsKzEyPj4yXSxhW0E+PjJdPWFbYz4+Ml0sYVtBKzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxGQShiLG0sQSwxKSxSPj0rX1tiKzg+PjNdKSYmKGFbbT4+Ml09YVtsPj4yXSxhW20rND4+Ml09YVtsKzQ+PjJd''@;'; put 'put ''LGFbbSs4Pj4yXT1hW2wrOD4+Ml0sYVttKzEyPj4yXT1hW2wrMTI+PjJdLGFbQT4+Ml09YVtjPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLEZBKGssbSxBLDEpLCtfW2srMjQ+PjNdPj0rX1twKzg+PjNdKT8xOjAsbGU9''@;'; put 'put ''TSwwfG19ZnVuY3Rpb24gcjQobCxjKXt2YXIgZjtjfD0wLChmPTB8TGkobHw9MCwxMTAwNTYpKSYmKGM9MHxmZVtmPj4wXT8wfGZ1bmN0aW9uIE5sZShsLGMpe2x8PTAsY3w9MDt2YXIgcCxtLGY9MDttPWxlLGxlPWxlKzE2fDAscD1tO2U6ZG97aWYoMCE9KDB8bCkmJihmPTB8ZmVbbD4+MF0s''@;'; put 'put ''Zjw8MjQ+PjI0IT0wKSl7c3dpdGNoKGY8PDI0Pj4yNHwwKXtjYXNlIDQ4OmM9MjticmVhayBlO2Nhc2UgNTc6Y2FzZSA1NjpjYXNlIDU1OmNhc2UgNTQ6Y2FzZSA1MzpjYXNlIDUyOmNhc2UgNTE6Y2FzZSA1MDpjYXNlIDQ5OmM9MTA7YnJlYWsgZTtjYXNlIDY3OmNhc2UgOTk6aWYoISgwfHkw''@;'; put 'put ''KGY9bCsxfDAsMTA5OTYwKSkpe2M9NDticmVhayBlfWlmKCEoMHx5MChmLDEwOTk2NikpKXtjPTEyO2JyZWFrIGV9YnJlYWs7Y2FzZSA3MDpjYXNlIDEwMjppZighKDB8eTAobCsxfDAsMTA5OTc0KSkpe2M9MjticmVhayBlfWJyZWFrO2Nhc2UgNzY6Y2FzZSAxMDg6aWYoISgwfHkwKGwrMXww''@;'; put 'put ''LDEwOTk3OSkpKXtjPTI7YnJlYWsgZX1icmVhaztjYXNlIDc4OmNhc2UgMTEwOmlmKCEoMHx5MChmPWwrMXwwLDEwOTk4MykpKXtjPTA7YnJlYWsgZX1pZighKDB8eTAoZiwxMDk5ODcpKSl7Yz0yO2JyZWFrIGV9YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTppZighKDB8eTAobCsxfDAsMTA5OTg5''@;'; put 'put ''KSkpe2M9ODticmVhayBlfWJyZWFrO2Nhc2UgODA6Y2FzZSAxMTI6aWYoISgwfHkwKGwrMXwwLDEwOTk5NCkpKXtjPTY7YnJlYWsgZX1icmVhaztjYXNlIDgzOmNhc2UgMTE1OmlmKCEoMHx5MChsKzF8MCwxMTAwMDIpKSl7Yz0xMDticmVhayBlfWJyZWFrO2Nhc2UgODQ6Y2FzZSAxMTY6aWYo''@;'; put 'put ''ISgwfHkwKGwrMXwwLDExMDAwOCkpKXtjPTEwO2JyZWFrIGV9YnJlYWs7Y2FzZSA4OTpjYXNlIDEyMTppZighKDB8eTAobCsxfDAsMTEwMDEyKSkpe2M9MTA7YnJlYWsgZX19YVtwPj4yXT1sLCRyKDAsMTEwMDE1LHApfX13aGlsZSgwKTtyZXR1cm4gbGU9bSwwfGN9KGYsYyk6MCksaXRbKGw9''@;'; put 'put ''MTM2KygwfGFbbCsxNj4+Ml0pfDApPj4xXT1jfGhyW2w+PjFdfWZ1bmN0aW9uIHdEKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscD0rcDt2YXIgcSxnZSxPZSxMZSxSZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHBlPTAsYmU9MCxIZT0wO1JlPWxlLGxlPWxlKzMyfDAscT1S''@;'; put 'put ''ZSsxNnwwLGdlPVJlLE9lPTEmKG18PTApLExlPTImbTtlOmRve2lmKDI9PSgwfGYpKWJlPStfW2wrMTY+PjNdLEE9K19bbD4+M10saz0rX1tsKzI0Pj4zXSxiPStfW2wrOD4+M10sQS09YmUtQSxfW3E+PjNdPUEsX1tnZT4+M109YmUsYi09ay1iLF9bcSs4Pj4zXT1iLF9bZ2UrOD4+M109aztl''@;'; put 'put ''bHNlIGZvcih3PStfW2w+PjNdLF9bZ2U+PjNdPXcsX1txPj4zXT13LGs9K19bbCs4Pj4zXSxEPWdlKzh8MCxfW0Q+PjNdPWssUj1xKzh8MCxfW1I+PjNdPWssbT0wLEE9dyxiPWs7Oyl7aWYoKDB8bSk+PSgwfGYpKXtiZT13O2JyZWFrIGV9X1txPj4zXT1NPStfWygocGU9K19bKEhlPWwrKG08''@;'; put 'put ''PDQpfDApPj4zXSk8QT9IZTpxKT4+M10sX1tSPj4zXT1HPStfWygoYmU9K19bbCsobTw8NCkrOD4+M10pPGI/SGU6cSkrOD4+M10sX1tnZT4+M109cGU9K19bKHBlPnc/SGU6Z2UpPj4zXSxfW0Q+PjNdPWJlPStfWyhiZT5rP0hlOmdlKSs4Pj4zXSxtPW0rMXwwLEE9TSxiPUcsdz1wZSxrPWJl''@;'; put 'put ''fX13aGlsZSgwKTtwZT0odz0uNSooYmUtQSkpK0EsTT0oRz0uNSooay1iKSkrYixPZT8ocD0rRDAoKyhHKkcrdyp3KSksX1tjKzg+PjNdPTB8TGU/TTotTSxfW2M+PjNdPXBlLF9bYysxNj4+M109LjI1KnAsX1tjKzI0Pj4zXT1wKTooQT1rLU0sYj0rRGEoKyhrPXApKSxrPStoYSgrayksTGU/''@;'; put 'put ''KHc9TS0oQSo9YiksQSs9TSk6KHc9YipBLU0sQT0tTS1HKmIpLF9bYys4Pj4zXT13LF9bYysyND4+M109QSxfW2M+PjNdPXBlLShwPWsqKGJlLXBlKSksX1tjKzE2Pj4zXT1wK3BlKSxsZT1SZX1mdW5jdGlvbiBUeShsLGMpe3ZhciBwLG0sZj0wO209MHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0s''@;'; put 'put ''KGN8PTApPDwyND4+MjQ/KF9bbSs4OD4+M109Zj0zNiorX1ttKzQwPj4zXSxsPW0rMzJ8MCk6KF9bbSs4OD4+M109Zj0zNiorX1ttKzMyPj4zXSxsPW0rNDB8MCksX1ttKzk2Pj4zXT1mLF9bODArKDB8YVtwPj4yXSk+PjNdPTcyKitfW2w+PjNdfWZ1bmN0aW9uIE1KKGwsYyxmLHApe3ZhciBt''@;'; put 'put ''O3B8PTAsYVsoZnw9MCk+PjJdPShtPSgwfChsPTB8YVsyMzYrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pKT4oMHwoYz0wfGFbMjM2KygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKSkpP2M6bCxhW3A+PjJdPW0/bDpjfWZ1bmN0aW9uIEZOKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBNLG09''@;'; put 'put ''MCxBPTAsdz0wLGI9MCxrPTAsRD0wO009bGUsbGU9bGUrMTZ8MCxBPU0rNHwwLG09TSxsPTB8YVsxNisobHw9MCk+PjJdO2Rve2lmKDE9PSgwfGZlW2wrMTU2Pj4wXSkpe2lmKGs9MHxhW2wrMjM2Pj4yXSwwfGFbbCsxNzY+PjJdKXtmb3Iodz0wfGFbbCsxODA+PjJdLGw9MCxtPTAsQT0wO2I9''@;'; put 'put ''MHxhW3crKEE8PDIpPj4yXTspbD0oYj0oMHwoRD0wfGFbMjM2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOmIrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKT4oMHxmKSk/KDB8RCk8KDB8cCk/bDoxOmwsbT1iP206MSxBPUErMXwwO2lmKG08PDI0Pj4yNCE9MCZsPDwyND4+MjQ9''@;'; put 'put ''PTApe2FbYz4+Ml09aysxO2JyZWFrfWlmKCEobTw8MjQ+PjI0PT0wJmw8PDI0Pj4yNCE9MCkpYnJlYWs7YVtjKzQ+PjJdPWsrLTE7YnJlYWt9aWYoMiE9KDB8YVtsKzE4ND4+Ml0pJiZQcig4ODM5Nyw4ODQxNyw2Myw4ODQyNCksTUooMHxhWygyPT0oMyZhWyhEPTB8YVsodz0wfGFbbCsxODA+''@;'; put 'put ''PjJdKT4+Ml0pPj4yXXwwKT9EOkQrLTQ4fDApKzQwPj4yXSwwfGFbKDI9PSgzJmFbKHc9MHxhW3crND4+Ml0pPj4yXXwwKT93OncrLTQ4fDApKzQwPj4yXSxBLG0pLCgwfCh3PTB8YVttPj4yXSkpPD0oMHxmKSl7YVtjPj4yXT1rLGFbYys4Pj4yXT1rO2JyZWFrfWlmKCgwfChsPTB8YVtBPj4y''@;'; put 'put ''XSkpPj0oMHxwKSl7YVtjKzQ+PjJdPWssYVtjKzEyPj4yXT1rO2JyZWFrfWlmKCEoKEE9KDB8dyk+KDB8cCkpJihtPSgwfGwpPCgwfGYpKSkpe2lmKCFtJiYhKCgwfHcpPCgwfHApJigwfGwpPT0oMHxmKSl8fChhW2MrOD4+Ml09ayksIShBfHwoMHx3KT09KDB8cCkmKDB8bCk+KDB8ZikpKWJy''@;'; put 'put ''ZWFrO2FbYysxMj4+Ml09a319fXdoaWxlKDApO2xlPU19ZnVuY3Rpb24gd2sobCl7dmFyIGM7aDAobHw9MCwxMzc0NDcsMzA0LDEpLGdEKGwpLGM9MHx2cigoMHxoclsxNzYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+MV0pPDwzKSxhWzEzMisoMHxhW2wrMTY+PjJdKT4+Ml09YyxUeShsLDEm''@;'; put 'put ''YVsxMTYrKDB8YVsxNisoMHxjcihsKSk+PjJdKT4+Ml0pfWZ1bmN0aW9uIEVKKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEEsdyxrLEcscGUsbT0wLGI9MCxNPTAsRD0wLFI9MCxxPTAsZ2U9MCxiZT0wO3BlPWxlLGxlPWxlKzY0fDAsdz1wZSs0OHwwLEQ9cGUrNDB8MCxiPXBl''@;'; put 'put ''KzI0fDAsQT1wZSs4fDAsRz1wZSs1NnwwLGs9cGU7ZG97aWYoMCE9KDB8bCkmJihSPTB8YVsxMzIrKDB8YVsocT1mKzE2fDApPj4yXSk+PjJdLG09MHxIbyhmLGwpLDAhPSgwfGZlW20+PjBdKSkpe2lmKGZlW0c+PjBdPTAsbD1SKzh8MCwoMHxhWzQ3MTM3XSk+MiYmKGFbQT4+Ml09UixhW0Er''@;'; put 'put ''ND4+Ml09bCxhW0ErOD4+Ml09UisxNixhW0ErMTI+PjJdPUcsKDB8aWwobSw4ODUzNSxBKSk+Mikpe2ZlWzExOSsoMHxhW3E+PjJdKT4+MF09MSxtPTB8YVs0NzEzN107ZTpkb3tpZigrX1syMzI5M10+MClmb3IobD0wOzspe2lmKCgwfGwpPj0oMHxtKSlicmVhayBlO19bKEQ9UisobDw8Myl8''@;'; put 'put ''MCk+PjNdPStfW0Q+PjNdLytfWzIzMjkzXSxsPWwrMXwwfX13aGlsZSgwKTtpZigoMHxtKT4zJiZRSihmLHAsMyksMzMhPSgwfGZlW0c+PjBdKSl7aWYoIWMpe2w9MTticmVha31pZighKCgwfHQxKDB8SG8oZixjKSkpPDwyND4+MjQpKXtsPTE7YnJlYWt9fWZlWzExOSsoMHxhW3E+PjJdKT4+''@;'; put 'put ''MF09MyxsPTE7YnJlYWt9aWYoYVtiPj4yXT1SLGFbYis0Pj4yXT1sLGFbYis4Pj4yXT1HLCgwfGlsKG0sMTAxNzQ5LGIpKTw9MSl7YVt3Pj4yXT0wfHRpKGYpLGFbdys0Pj4yXT1tLCRyKDEsODg1NDksdyksbD0wO2JyZWFrfWZlWzExOSsoMHxhW3E+PjJdKT4+MF09MSxtPTB8YVs0NzEzN107''@;'; put 'put ''ZTpkb3tpZigrX1syMzI5M10+MClmb3IobD0wOzspe2lmKCgwfGwpPj0oMHxtKSlicmVhayBlO19bKGI9UisobDw8Myl8MCk+PjNdPStfW2I+PjNdLytfWzIzMjkzXSxsPWwrMXwwfX13aGlsZSgwKTtkb3tpZigoMHxtKT4yKXtpZigwfChsPTB8YVs0NzE3MV0pJiYwfChNPTB8SG8oZixsKSkm''@;'; put 'put ''JihhW0Q+PjJdPWssMT09KDB8aWwoTSwxMDEyMDksRCkpKSl7Z2U9K19baz4+M10sX1tSKzE2Pj4zXT0oYmU9K19bMjMyOTNdKT4wP2dlL2JlOmdlLFFKKGYscCwzKTticmVha310VihmLHApfX13aGlsZSgwKTtpZigzMyE9KDB8ZmVbRz4+MF0pKXtpZighYyl7bD0xO2JyZWFrfWlmKCEoKDB8''@;'; put 'put ''dDEoMHxIbyhmLGMpKSk8PDI0Pj4yNCkpe2w9MTticmVha319ZmVbMTE5KygwfGFbcT4+Ml0pPj4wXT0zLGw9MX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9cGUsMHxsfWZ1bmN0aW9uIFlsZShsLGMpe2N8PTA7dmFyIGIsayxNLEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTAsUj0wO2Zv''@;'; put 'put ''cihHPWxlLGxlPWxlKzQ4fDAsaz1HKzMyfDAsRD1HLGI9MHxzaShsfD0wLDAsMTAyNjM3LDApLGY9MHxzaShsLDAsMTAyNjcxLDApLFI9KDB8bmcoMHxMaShsLDg4NTkzKSwwKSk8PDI0Pj4yNCE9MCxmfHwoZj0wfHNpKGwsMCwxMDI2NzEsMTk1MDU5KSksZnVuY3Rpb24gZnNlKGwpe1lKKGx8''@;'; put 'put ''PTAsMCl9KGwpLE09bCsxNnwwLEE9MDs7KXtpZighKHc9MHxhWygwfGFbMTUyKygwfGFbTT4+Ml0pPj4yXSkrKEE8PDIpPj4yXSkpe3A9MTI7YnJlYWt9aWYoISgwfGZlWzExOSsocD0wfGFbKG09dysxNnwwKT4+Ml0pPj4wXSkpe2lmKDB8czIoMHx0aSh3KSwxMDgwMDYsNykpe3A9ODticmVh''@;'; put 'put ''a31wPTB8YVttPj4yXX0wfChwPTB8YVtwKzEwOD4+Ml0pJiZiayh3LHAsMTAyNjMzKSxBPUErMXwwfWU6ZG97aWYoOD09KDB8cCkpUj0wfHRpKHcpLGY9MHx0aShsKSxhW2s+PjJdPVIsYVtrKzQ+PjJdPWYsJHIoMSw4ODYwNSxrKSxmPS0xO2Vsc2UgaWYoMTI9PSgwfHApKXtpZih4SihsLGIs''@;'; put 'put ''Ziksdz0wfFVsZShsKSwwfGFbODgrKGY9MHxhWzgrKDB8YVtNPj4yXSk+PjJdKT4+Ml0/KGFbZis4ND4+Ml09MCxmPTEpOmY9MCwoQT0wIT0oMHxmKSl8KG09MCE9KDB8YykpJjE9PSgwfGFbNDcxMzRdKV4xfHwwPT0oMHxMeShsKSk/cD0wOigocD0wfGFbMTIrKDB8YVtNPj4yXSk+PjJdKSYm''@;'; put 'put ''KGZlW3ArODE+PjBdPTApLHA9MSksaWcobCksQSYmKGM9MTYrKDB8YVtNPj4yXSl8MCxfRihELGwpLGFbYz4+Ml09YVtEPj4yXSxhW2MrND4+Ml09YVtEKzQ+PjJdLGFbYys4Pj4yXT1hW0QrOD4+Ml0sYVtjKzEyPj4yXT1hW0QrMTI+PjJdLGFbYysxNj4+Ml09YVtEKzE2Pj4yXSxhW2MrMjA+''@;'; put 'put ''PjJdPWFbRCsyMD4+Ml0sYVtjKzI0Pj4yXT1hW0QrMjQ+PjJdLGFbYysyOD4+Ml09YVtEKzI4Pj4yXSksIW0pZm9yKGFbNDcxMzhdPTEscD0wfER0KGwpOzspe2lmKCFwKWJyZWFrIGU7X1sxNisoUj0wfGFbcCsxNj4+Ml0pPj4zXT03MiorX1soRD0wfGFbUisxMzI+PjJdKT4+M10sX1tSKzI0''@;'; put 'put ''Pj4zXT03MiorX1tEKzg+PjNdLHA9MHx6dChsLHApfWRve2lmKCEoUnxBKSl7aWYoMD09K19bMTYrKFI9MHxhW00+PjJdKT4+M10mJjA9PStfW1IrMjQ+PjNdKWJyZWFrO05KKGwpfX13aGlsZSgwKTtpZigwIT0oMHx3KSYocHwoMHxVTihsKSk8PDI0Pj4yNCE9MCkpUWxlKGwpO2Vsc2UgaWYo''@;'; put 'put ''Mj09KDB8dykpe2FbNDcxMzhdPTE7YnJlYWt9U0QobCwwKX19d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxmfWZ1bmN0aW9uIGJrKGwsYyxmKXtjfD0wO3ZhciBwLG0sQSxiLHc9MDtiPWxlLGxlPWxlKzQ4fDAsdz1iKzMyfDAscD1iKzI0fDAsbT1iKzE2fDAsQT1iLDB8KGw9MHxMaShsfD0wLGZ8''@;'; put 'put ''PTApKSYmKGFbdz4+Ml09cCxhW3crND4+Ml09bSwyPT0oMHxpbChsLDEwNTUwMyx3KSkpJiYodz1jKzU2fDAsVEooQSwrX1twPj4zXSwrX1ttPj4zXSksYVt3Pj4yXT1hW0E+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4yXSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0s''@;'; put 'put ''ZmVbYys4MT4+MF09MSksbGU9Yn1mdW5jdGlvbiB4SihsLGMsZil7Znw9MDt2YXIgbSxBLHcsYixrLHA9MCxNPTA7az1sZSxsZT1sZSs0OHwwLGI9ayszMnwwLHA9aysyNHwwLG09aysxNnwwLEE9ayx3PTE2KyhsfD0wKXwwLDB8KGN8PTApJiYwIT0oMHxhWzEyKygwfGFbdz4+Ml0pPj4yXSkm''@;'; put 'put ''JihNPTB8SG8obCxjKSxhW2I+PjJdPXAsYVtiKzQ+PjJdPW0sMj09KDB8aWwoTSwxMDU1MDMsYikpKSYmKE09NTYrKDB8YVsxMisoMHxhW3c+PjJdKT4+Ml0pfDAsVEooQSwrX1twPj4zXSwrX1ttPj4zXSksYVtNPj4yXT1hW0E+PjJdLGFbTSs0Pj4yXT1hW0ErND4+Ml0sYVtNKzg+PjJdPWFb''@;'; put 'put ''QSs4Pj4yXSxhW00rMTI+PjJdPWFbQSsxMj4+Ml0sZmVbODErKDB8YVsxMisoMHxhW3c+PjJdKT4+Ml0pPj4wXT0xKTtlOmRve2lmKDB8Zilmb3IocD0wfHdzKGwpOzspe2lmKCFwKWJyZWFrIGU7SUoocCxsLGMsZikscD0wfEVzKHApfX13aGlsZSgwKTtsZT1rfWZ1bmN0aW9uIFVsZShsKXt2''@;'; put 'put ''YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtpZigwfE4zKGx8PTApKWlmKDA9PSgwfChtPTB8c2kobCwyLDEwMjYyMywwKSkpfCgwfGFbNDcxMzRdKTwyKWM9MDtlbHNle2ZvcihjPTAscD0wfER0KGwpO3A7KXtmb3IoZj0wfHcwKGwscCk7ZjspQT1jKygwIT0oMHxKbGUobSxmKSkmMSl8MCxmPTB8''@;'; put 'put ''UzAobCxmKSxjPUE7cD0wfHp0KGwscCl9Yz1jPyhjPSgwfGMpPT0oMHxOMyhsKSkpPzI6MTowfWVsc2UgYz0yO3JldHVybiAwfGN9ZnVuY3Rpb24gUWxlKGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoZj0wfER0KGx8PTApO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspeUQoYyksSWMoMHxhWzk2Kygw''@;'; put 'put ''fGFbKHA9YysxNnwwKT4+Ml0pPj4yXSksSWMoMHxhWzEwOCsoMHxhW3A+PjJdKT4+Ml0pLEljKDB8YVsxMDArKDB8YVtwPj4yXSk+PjJdKSxJYygwfGFbMTA0KygwfGFbcD4+Ml0pPj4yXSksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fWZ1bmN0aW9uIEpsZShsLGMpe3ZhciBxLHBlLGdlLGJl''@;'; put 'put ''LE9lLExlLFJlLEhlLFZlLHFlLHJ0LGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsV2U9MCxhdD0wO3J0PWxlLGxlPWxlKzk2fDAsVmU9cnQrNzJ8MCxSZT1ydCs1NnwwLHFlPXJ0KzQ4fDAsSGU9cnQrMzJ8MCxMZT1ydCsxNnwwLHE9cnQrODh8MCxwZT1ydCs4''@;'; put 'put ''fDAsZ2U9cnQsYmU9cnQrODR8MCxPZT1ydCs4MHwwLGw9MHxIbyhjfD0wLGx8PTApO2Rve2lmKDB8ZmVbbD4+MF0pe0RDKGMsYmUsT2UpLEc9MSxwPTAsZj0wLHc9MCxBPTAsYj0wLG09MDtlOmZvcig7Oyl7aWYoYVtMZT4+Ml09cGUsYVtMZSs0Pj4yXT1nZSxhW0xlKzg+PjJdPXEsMj09KDB8''@;'; put 'put ''aWwobCw4ODY0MixMZSkpPyhSPTEsbD1sKygwfGFbcT4+Ml0pfDAsQT0rX1twZT4+M10sbT0rX1tnZT4+M10pOlI9ZixhW0hlPj4yXT1wZSxhW0hlKzQ+PjJdPWdlLGFbSGUrOD4+Ml09cSwyPT0oMHxpbChsLDg4NjU0LEhlKSk/KEQ9MSxsPWwrKDB8YVtxPj4yXSl8MCx3PStfW3BlPj4zXSxi''@;'; put 'put ''PStfW2dlPj4zXSk6RD1wLCEoKDB8KGs9MHxYbGUobCkpKT4zJjE9PSgwfCgwfGspJTMpKSl7Zj04O2JyZWFrfWZvcihmPU09MHxRbihrPDw0KSxwPWs7cDspe2lmKGFbUmU+PjJdPXBlLGFbUmUrND4+Ml09Z2UsYVtSZSs4Pj4yXT1xLCgwfGlsKGwsODg3MjQsUmUpKTwyKXtmPTEzO2JyZWFr''@;'; put 'put ''IGV9V2U9bCsoMHxhW3E+PjJdKXwwLF9bZj4+M109K19bcGU+PjNdLF9bZis4Pj4zXT0rX1tnZT4+M10sZj1mKzE2fDAscD1wKy0xfDAsbD1XZX1mb3IoO3A9bCsxfDAsMHwkYygoZj0wfGZlW2w+PjBdKTw8MjQ+PjI0KTspbD1wO2ZvcihsPShXZT1mPDwyND4+MjQ9PTApP2w6cCxHPVdlPzA6''@;'; put 'put ''RyxwPTB8ZE4oYyxrKSwwfFImJihhW3ArOD4+Ml09YVtiZT4+Ml0sX1twKzE2Pj4zXT1BLF9bcCsyND4+M109bSksMHxEJiYoYVtwKzEyPj4yXT1hW09lPj4yXSxfW3ArMzI+PjNdPXcsX1twKzQwPj4zXT1iKSxmPTA7ISgoMHxmKT49KDB8aykpOylhWyhXZT0oMHxhW3A+PjJdKSsoZjw8NCl8''@;'; put 'put ''MCk+PjJdPWFbKGF0PU0rKGY8PDQpfDApPj4yXSxhW1dlKzQ+PjJdPWFbYXQrND4+Ml0sYVtXZSs4Pj4yXT1hW2F0Kzg+PjJdLGFbV2UrMTI+PjJdPWFbYXQrMTI+PjJdLGY9ZisxfDA7aWYoRnQoTSksIUcpe2Y9MjY7YnJlYWt9cD1ELGY9Un1pZig4PT0oMHxmKSl7aWYoeUQoYyksMHxmZVsx''@;'; put 'put ''OTM3NzFdKXtsPTA7YnJlYWt9ZmVbMTkzNzcxXT0xLGF0PTB8dGkoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6Yys0OHwwKSs0MD4+Ml0pLGw9MHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLGFbcWU+PjJdPWF0LGFbcWUrND4+Ml09bCwkcigwLDg4NjY3LHFl''@;'; put 'put ''KSxsPTA7YnJlYWt9aWYoMTM9PSgwfGYpKXswfGZlWzE5Mzc3MV18fChmZVsxOTM3NzFdPTEsV2U9MHx0aSgwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSksYXQ9MHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLGFbVmU+PjJdPVdlLGFb''@;'; put 'put ''VmUrND4+Ml09YXQsJHIoMCw4ODczNCxWZSkpLEZ0KE0pLHlEKGMpLGw9MDticmVha31pZigyNj09KDB8Zikpe2lmKChmPTB8YVs5NisobD0wfGFbKHA9YysxNnwwKT4+Ml0pPj4yXSkmJihiayhjLGYsMTAyNjM3KSxsPTB8YVtwPj4yXSksKGY9MHxhW2wrMTA4Pj4yXSkmJihiayhjLGYsMTAy''@;'; put 'put ''NjMzKSxsPTB8YVtwPj4yXSksKGY9MHxhW2wrMTAwPj4yXSkmJihiayhjLGYsMTAyNjQwKSxsPTB8YVtwPj4yXSksIShsPTB8YVtsKzEwND4+Ml0pKXtsPTE7YnJlYWt9YmsoYyxsLDEwMjY0OCksbD0xO2JyZWFrfX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9cnQsMHxsfWZ1bmN0aW9u''@;'; put 'put ''IFhsZShsKXtsfD0wO3ZhciBjPTAsZj0wO2Y9MDtkb3tmb3IoOzB8JGMoMjU1JihjPTB8ZmVbbD4+MF0pKTspbD1sKzF8MDtlOmRve2lmKGM8PDI0Pj4yNClmb3IoZj1mKzF8MDs7KXtpZighKGM8PDI0Pj4yNCkpe2M9MDticmVhayBlfWlmKGM8PDI0Pj4yND09NTl8MCE9KDB8JGMoMjU1JmMp''@;'; put 'put ''KSlicmVhayBlO2w9Yz1sKzF8MCxjPTB8ZmVbYz4+MF19ZWxzZSBjPTB9d2hpbGUoMCl9d2hpbGUoMCE9KDB8JGMoMjU1JmMpKSk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBUSihsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBJSihsLGMsZixwKXtjfD0w''@;'; put 'put ''LGZ8PTAscHw9MDt2YXIgbSx3LEE9MCxiPTA7dz1sZSxsZT1sZSszMnwwLG09dywwPT0oMHxzMigwfHRpKGx8PTApLDEwODAwNiw3KSkmJjAhPSgwfGZ1bmN0aW9uIEtsZShsLGMsZil7Znw9MDt2YXIgQSx3LGIsayxwPTAsbT0wO3JldHVybiB3PWxlLGxlPWxlKzQ4fDAsYj13KzMyfDAsQT13''@;'; put 'put ''LGs9MHxIbyhsfD0wLGN8PTApLGw9QSs4fDAsYz1BKzI0fDAsYVtiPj4yXT1BLGFbYis0Pj4yXT1sLGFbYis4Pj4yXT1BKzE2LGFbYisxMj4+Ml09Yyw0PT0oMHxpbChrLDg4NzgyLGIpKT8oKHA9K19bbD4+M10pPihtPStfW2M+PjNdKSYmKF9bbD4+M109bSxfW2M+PjNdPXApLGFbZj4+Ml09''@;'; put 'put ''YVtBPj4yXSxhW2YrND4+Ml09YVtBKzQ+PjJdLGFbZis4Pj4yXT1hW0ErOD4+Ml0sYVtmKzEyPj4yXT1hW0ErMTI+PjJdLGFbZisxNj4+Ml09YVtBKzE2Pj4yXSxhW2YrMjA+PjJdPWFbQSsyMD4+Ml0sYVtmKzI0Pj4yXT1hW0ErMjQ+PjJdLGFbZisyOD4+Ml09YVtBKzI4Pj4yXSxsPTEpOmw9''@;'; put 'put ''MCxsZT13LDB8bH0obCxwLG0pKT8oaDAobCwxMzc0ODMsMjgwLDEpLGFbKGI9MTYrKDB8YVtsKzE2Pj4yXSl8MCk+PjJdPWFbbT4+Ml0sYVtiKzQ+PjJdPWFbbSs0Pj4yXSxhW2IrOD4+Ml09YVttKzg+PjJdLGFbYisxMj4+Ml09YVttKzEyPj4yXSxhW2IrMTY+PjJdPWFbbSsxNj4+Ml0sYVti''@;'; put 'put ''KzIwPj4yXT1hW20rMjA+PjJdLGFbYisyND4+Ml09YVttKzI0Pj4yXSxhW2IrMjg+PjJdPWFbbSsyOD4+Ml0sZnVuY3Rpb24gJGxlKGwsYyl7Y3w9MDt2YXIgcCxtLEEsZj0wO2FbKEE9MTgwKyhmPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml09bT0xKyhsPTB8YVtBPj4yXSl8MCxs''@;'; put 'put ''PShmPTB8YVtmKzE4ND4+Ml0pPzB8R0goZixsKzJ8MCw0LG0pOjB8dnIoOCsobDw8Mil8MCksYVsxODQrKDB8YVtwPj4yXSk+PjJdPWwsYVtsKyhtPDwyKT4+Ml09YyxmayhjKX0oYyxsKSx4SihsLGYscCkpOkE9NDtlOmRve2lmKDQ9PSgwfEEpKWZvcihsPTB8d3MobCk7Oyl7aWYoIWwpYnJl''@;'; put 'put ''YWsgZTtJSihsLGMsZixwKSxsPTB8RXMobCl9fXdoaWxlKDApO2xlPXd9ZnVuY3Rpb24gSE4obCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHcsayxNLHA9MCxiPTA7TT1sZSxsZT1sZSs0OHwwLGs9TSs4fDAsYj1NLEE9TSsxNnwwLHc9TSsxMnwwLG09MHxMaShsfD0wLDg4Nzk4KTtkb3tpZigw''@;'; put 'put ''IT0oMHxtKSYmKHA9MHxmZVttPj4wXSk8PDI0Pj4yNCE9MCl7aWYoMHx2TChwJj0yNTUpKXtpZighKDB8czIobSw4ODgwNCw0KSkpe2M9MDticmVha31pZighKDB8czIobSwxMDU1MTEsNykpKXtjPTE7YnJlYWt9aWYoMHxzMihtLDg4ODA5LDYpKXtpZigyIT0oMHxjKSlicmVhaztjPW19ZWxz''@;'; put 'put ''ZSBjPW0rNnwwfWVsc2V7aWYoISgyPT0oMHxjKXwocCstNDh8MCk+Pj4wPDEwKSlicmVhaztjPW19KCgwfFh0W2M+PjBdKS00OHwwKT4+PjA8MTAmJihhW2I+PjJdPXcsKDB8aWwoYyw5OTkzMyxiKSk+PTEpfHwoYj0wfEhqKCksYj0oMHxobigwKSleYixhW3c+PjJdPWIsYVtrPj4yXT1iLG9v''@;'; put 'put ''KEEsOTk5MzMsayksa2MobCw4ODc5OCxBKSksYVtmPj4yXT1hW3c+PjJdLGM9Mn19d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxjfWZ1bmN0aW9uIERKKGwsYyxmKXt2YXIgcCxtO3JldHVybiBsfD0wLGN8PTAsZnw9MCxtPWxlLGxlPWxlKzE2fDAsYVsocD1tKzR8MCk+PjJdPTEsMiE9KDB8KGY9''@;'; put 'put ''MHxITihsLGYscCkpKSYwIT0oMHxhWzQ2Nzk2XSkmJiRyKDAsODg4MTYsbSksMT09KDB8ZikmJmZ1bmN0aW9uIHFsZShsLGMpe3ZhciBtLEEsZj0wLHA9MCx3PTAsYj0wLGs9MDtmb3IoQT02LjI4MzE4NTMwNzE3OTU4Ni8obT0rKDB8KGN8PTApKSksZj0wfER0KGx8PTApLHA9MDtmOylrPSto''@;'; put 'put ''YSgrcCkqbSxfWyhiPTB8YVsxMzIrKHc9MHxhW2YrMTY+PjJdKT4+Ml0pPj4zXT1rLF9bYis4Pj4zXT0rRGEoK3ApKm0sZmVbdysxMTk+PjBdPTEsKDB8YVs0NzEzN10pPjImJnRWKGYsYyksZj0wfHp0KGwsZikscCs9QX0obCxjKSxOaigwfGFbcD4+Ml0pLGxlPW0sMHxmfWZ1bmN0aW9uIEEy''@;'; put 'put ''KGwpe2x8PTA7dmFyIGIsayxSLEcscSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxNPTAsRD0wO3E9bGUsbGU9bGUrODB8MCxjPXErMjR8MCxNPXErMzJ8MCxiPXEsUj1xKzI4fDAsaz1xKzY0fDAsRz0rX1syMzI5M107ZG97aWYoMHxhWzQ3MTM0XSl7aWYoX1syMzI5M109NzIsX2sobCksTk4o''@;'; put 'put ''bCksKDB8WWxlKGwsMSkpPDApeyRyKDMsODg4NjQsYyk7YnJlYWt9WDYobCwwKSxwPTMyO2JyZWFrfUQ9MHxuZygwfExpKGwsODg1OTMpLDApLF9bMjMyOTNdPStDTihsKSxfayhsKSxtPTB8ZXNlKGwpLGMyZShsLGIsMCksQT0wfHRzZShsKSx3PTB8UzEobCwwLE0pLGM9MHx4YyhsLC0xLDgp''@;'; put 'put ''LGFbNDY3OTVdPWMsZj0oMHxjKTwwO2Rve2lmKHcpZiYmKGFbNDY3OTVdPTgpLHA9MTE7ZWxzZXtpZigwIT0oMHxtKSZmKXthWzQ2Nzk1XT04LGFbTSsxNj4+Ml09MixwPTExO2JyZWFrfWlmKGFbTSsxNj4+Ml09MiwoMHxjKTw9LTEpe2lmKFZOKGwsbSxBKSx6NyhsLGIpLE5OKGwpLEQ8PDI0''@;'; put 'put ''Pj4yNCl7ak4obCk7YnJlYWt9SzYobCk7YnJlYWt9cD0xMX19d2hpbGUoMCk7aWYoMTE9PSgwfHApKXt3PTB8UEEobCxSLDg4ODkyLGspLGM9MHxhW1I+PjJdO2Rve2lmKCgwfGMpPD0xKXtpZihWTihsLG0sQSksejcobCxiKSxEPDwyND4+MjQpe2pOKGwpO2JyZWFrfUs2KGwpO2JyZWFrfWZv''@;'; put 'put ''cihwPUQ8PDI0Pj4yND09MCxmPTA7ISgoMHxmKT49KDB8YykpOyl4QyhjPTB8YVt3KyhmPDwyKT4+Ml0pLFZOKGMsbSxBKSx6NyhjLGIpLHI0KGMsMikscD9LNihjKTpqTihjKSxmPWYrMXwwLGM9MHxhW1I+PjJdOzB8ZmVbaz4+MF0/KGY9MHx2cihjKSxmZVtmPj4wXT0xLGM9MHxhW1I+PjJd''@;'; put 'put ''KTpmPTAsYVtNKzg+PjJdPWFbNDY3OTVdLGFbTSsyMD4+Ml09ZixhW00rMTI+PjJdPTEsZlcoYyx3LGwsTSksRnQoZil9d2hpbGUoMCk7Zm9yKGlnKGwpLE5OKGwpLGM9MDshKCgwfGMpPj0oMHxhW1I+PjJdKSk7KWVWKE09MHxhW3crKGM8PDIpPj4yXSksSGkoTSwxMzc0ODMpLG9pKGwsTSks''@;'; put 'put ''Yz1jKzF8MDtGdCh3KX1YNihsLEQ8PDI0Pj4yND09MCYxKSxwPTMyfXdoaWxlKDApOzMyPT0oMHxwKSYmKF9bMjMyOTNdPUcpLGxlPXF9ZnVuY3Rpb24gX2sobCl7dmFyIHAsbSxjPTAsZj0wO3I0KGx8PTAsMikscD0wfGVzKGwsMHxzaShsLDAsOTEzNjgsMCksMiwyKSxjPTY1NTM1JigwfGVz''@;'; put 'put ''KGwsMHxzaShsLDAsOTEzNzQsMCkscCwyKSksaXRbMTc2KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjFdPWMsaXRbKG09MTc2KyhjPTB8YVsxNisoMHxhW2wrNjA+PjJdKT4+Ml0pfDApPj4xXT1mPSg2NTUzNSYoZj0wfGl0W20+PjFdKSk8MTA/ZjoxMCxhWzQ3MTM3XT1mJj02NTUzNSxpdFtj''@;'; put 'put ''KzE3OD4+MV09KDB8cCk8KDB8Zik/cDpmLGZ1bmN0aW9uIGlzZShsKXt2YXIgcCxjPTAsZj0wO2ZvcihmPTB8R28obHw9MCksYVs0Njc5Nl09MHxzaShsLDEsMTAyNjIzLDApLHA9MHxzaShsLDEsOTA2NjAsMCksYz0wfER0KGwpO2M7KXdrKGMpLEVKKDB8YVs0Njc5Nl0scCxjLGYpLGM9MHx6''@;'; put 'put ''dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOyliRChjKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX19KGwpfWZ1bmN0aW9uIE5OKGwpe2x8PTA7dmFyIGYscCxtLGM9MDttPWxlLGxlPWxlKzEwNDB8MCxwPW0sZj1tKzh8MDtlOmRve2lmKCgwfGFbNDcxMzddKT4y''@;'; put 'put ''JjAhPSgwfGFbNDcxNzFdKSlmb3IoYz0wfER0KGwpOzspe2lmKCFjKWJyZWFrIGU7X1twPj4zXT03MiorX1sxNisoMHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXSxvbyhmLDEwMTIwOSxwKSxWbChjLDB8YVs0NzE3MV0sZiksYz0wfHp0KGwsYyl9fXdoaWxlKDApO2xlPW19ZnVuY3Rp''@;'; put 'put ''b24gZXNlKGwpe3ZhciBjLGYscDtwPWxlLGxlPWxlKzE2fDAsZj1wLGM9MHxMaShsfD0wLDg5NTc3KTtlOmRve2lmKGMpe3N3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDA6bD0xO2JyZWFrIGU7Y2FzZSA3NTppZighKDB8WmkoYyw4OTU4MikpKXtsPTA7YnJlYWsgZX1icmVhaztjYXNlIDEwOTpp''@;'; put 'put ''ZighKDB8WmkoYyw4OTU4NSkpKXtsPTE7YnJlYWsgZX1icmVhaztjYXNlIDEwNDppZighKDB8WmkoYyw4OTU5MSkpKXtsPTI7YnJlYWsgZX19bD0wfHRpKGwpLGFbZj4+Ml09YyxhW2YrND4+Ml09bCwkcigwLDg5NTk2LGYpLGw9MX1lbHNlIGw9MX13aGlsZSgwKTtyZXR1cm4gbGU9cCwwfGx9''@;'; put 'put ''ZnVuY3Rpb24gdHNlKGwpe3ZhciBjLGYscCxtLEE7QT1sZSxsZT1sZSszMnwwLG09QSsxNnwwLHA9QSs4fDAsZj1BLGM9MHxMaShsfD0wLDg5MzYwKTtlOmRve2lmKGMpe3N3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDA6bD0wO2JyZWFrIGU7Y2FzZSA5OTppZighKDB8WmkoYyw4OTM2NikpKXts''@;'; put 'put ''PTE7YnJlYWsgZX1icmVhaztjYXNlIDExNTppZighKDB8WmkoYyw4OTM3NCkpKXtsPTI7YnJlYWsgZX1pZighKDB8WmkoYyw4OTM4MSkpKXtsPTA7YnJlYWsgZX1icmVhaztjYXNlIDEwOTppZighKDB8WmkoYyw4OTM5MSkpKXtpZigwfHNpKGwsMiw5MjQ5MywwKSl7bD0zO2JyZWFrIGV9YVtm''@;'; put 'put ''Pj4yXT0wfHRpKGwpLCRyKDAsODkzOTUsZiksJHIoMyw4OTQ1OCxwKSxsPTA7YnJlYWsgZX19bD0wfHRpKGwpLGFbbT4+Ml09YyxhW20rND4+Ml09bCwkcigwLDg5NTE1LG0pLGw9MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGx9ZnVuY3Rpb24gVk4obCxjLGYpe2N8PTAsZnw9''@;'; put 'put ''MDt2YXIgcD0wO3A9KHA9MHxMaShsfD0wLDkxMDYxKSk/MHxyMyhwKToxPT0oMHxjKT8yMDA6MTAwKigwfEdvKGwpKXwwLGFbNDcxMzZdPXAscD0wfFlKKGwsYyk7ZG97aWYoISgoMHxwKTwyfCgwfGFbNDcxMzZdKTwwKSl7aWYoYyl7bnNlKGwscCxjLGYsMHxhWzQ3MTM3XSk7YnJlYWt9Wk4o''@;'; put 'put ''bCxwLGYpO2JyZWFrfX13aGlsZSgwKX1mdW5jdGlvbiBqTihsKXtpZyhsfD0wKSxTRChsLDEpfWZ1bmN0aW9uIG5zZShsLGMsZixwLG0pe3B8PTAsbXw9MDt2YXIgRCxHLHEscGUsZ2UsYmUsT2UsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoT2U9bGUsbGU9bGUrNjR8MCxwZT1PZSs0MHwwLEc9''@;'; put 'put ''T2UrNDh8MCxiZT1PZSs0NHwwLHc9MHxESihsfD0wLGN8PTAsKHE9Mj09KDB8KGZ8PTApKSk/MDoyKSxiPTB8ZnVuY3Rpb24gcHAobCl7dmFyIGMsZjtyZXR1cm4gZj1sZSxsZT1sZSsxNnwwLGM9ZiwwPT0oMHwobD0wfGVzKGx8PTAsMHxzaShsLDAsODkzMDUsMCksMiwwKSkpfCgwfGwpPjIm''@;'; put 'put ''JihhW2M+PjJdPTg5MzA1LCRyKDAsODkzMTQsYyksbD0yKSxsZT1mLDB8bH0obCksaz00fGIsZ2U9MHxRbihtPDwyKSxhW2dlPj4yXT0wfFFuKDB8QXIoYzw8MyxtKSksQT0wfGFbNDcxMzddLG09MTshKCgwfG0pPj0oMHxBKSk7KWFbZ2UrKG08PDIpPj4yXT0oMHxhW2dlPj4yXSkrKCgwfEFy''@;'; put 'put ''KG0sYykpPDwzKSxtPW0rMXwwO209KEE9MD09KDB8dykpP2s6YixEPTB8TEoobCxjLEcsZixwLGJlKSwxIT0oMHxmKT8oTT0rTWwobCwwfHNpKGwsMCw4OTI3OSwwKSwwLC0xNzk3NjkzMTM0ODYyMzE1N2UyOTIpLHE/KG09MHxmdW5jdGlvbiBSWChsLGMsZixwLG0sQSx3LGIsayxNKXtsfD0w''@;'; put 'put ''LGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCxifD0wLGt8PTAsTT0rTTt2YXIgWnQsY3QsYW4sRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsa3Q9MCxzdD0wLEV0PTAsYnQ9MCxTbj0wO2FuPWxl''@;'; put 'put ''LGxlPWxlKzQ4fDAsU3Q9YW4rMjR8MCxhdD1hbisxNnwwLFdlPWFuKzh8MCxydD1hbixjdD1hbiszNnwwLHN0PWFuKzMyfDAscGU9NCYod3w9MCksYVsoWnQ9YW4rNDB8MCk+PjJdPTAsYVtjdD4+Ml09MDtlOmRve2lmKDB8YVtsKzE2Pj4yXSl7Zm9yKFI9MCxEPTA7ISgoMHxSKT49KDB8Yykp''@;'; put 'put ''Oyl7Zm9yKGdlPTB8YVtsKygyMCpSfDApPj4yXSxiZT1sKygyMCpSfDApKzE2fDAscT0xOyEoKDB8cSk+PSgwfGdlKSk7KUQ9RDw8MjQ+PjI0PzE6MCE9K2puWygwfGFbYmU+PjJdKSsocTw8Mik+PjJdLHE9cSsxfDAsRCY9MTtSPVIrMXwwfWlmKEQ8PDI0Pj4yNCl7aWYoVmU9MCE9KDB8cGUp''@;'; put 'put ''KXtxPXArNHwwO3Q6ZG97aWYoKDB8QSk+Mil7aWYoKDB8JE4obCxjLGYscSxtLEQ9QSstMXwwLHcsYiwxNSkpPDApe0Q9LTE7YnJlYWsgZX1mb3IoUj1wKyhEPDwyKXwwLEQ9MDs7KXtpZigoMHxEKT49KDB8YykpYnJlYWsgdDtfWygwfGFbUj4+Ml0pKyhEPDwzKT4+M109K19bKDB8YVtxPj4y''@;'; put 'put ''XSkrKEQ8PDMpPj4zXSxEPUQrMXwwfX19d2hpbGUoMCk7aWYoSGU9MHxhW3A+PjJdLDA9PSgwfEIyZShsLGMsTGU9MHxhW3E+PjJdLGMpKSYmMD09KDB8R3gobCxjLC4wMSwuMSxMZSxadCxjdCxzdCkpKXtpZigoMHwoUmU9MHxhW3N0Pj4yXSkpPDEpe0Q9MHwkTihsLGMsZixwLG0sQSx3LGIs''@;'; put 'put ''ayk7YnJlYWt9dDpkb3tpZihNPjApZm9yKHBlPTB8YVtadD4+Ml0sZ2U9MHxhW2N0Pj4yXSxiZT1SZSstMXwwLEc9MCxxPTA7Oyl7aWYoKDB8cSk+PSgwfFJlKSlicmVhayB0O2ZvcihHPSgocWU9TS1HLStfW0xlKyhhW3BlKygoRD0wfGFbZ2UrKHE8PDIpPj4yXSk8PDIpPj4yXTw8Myk+PjNd''@;'; put 'put ''KyArX1tMZSsoYVtwZSsoRCstMTw8Mik+PjJdPDwzKT4+M10pPDA/MDpxZSkrRyxSPSgwfHEpPCgwfGJlKT8wfGFbZ2UrKHErMTw8Mik+PjJdOmM7ISgoMHxEKT49KDB8UikpOylfWyhFdD1MZSsoYVtwZSsoRDw8Mik+PjJdPDwzKXwwKT4+M109K19bRXQ+PjNdK0csRD1EKzF8MDtxPXErMXww''@;'; put 'put ''fX13aGlsZSgwKTsyPT0oMHxBKSYmMCE9KDB8RzJlKGwsYyxMZSxIZSwrX1syMzI5NF0pKT8oUj0wLEQ9LTEpOmJ0PTMzfWVsc2UgUj0wLEQ9LTF9ZWxzZSBLTihsLGMsQSxwLG0pLDB8R3gobCxjLC4wMSwuMSwwLFp0LGN0LHN0KT8oUj0wLEQ9LTEpOmJ0PTMzO3Q6ZG97aWYoMzM9PSgwfGJ0''@;'; put 'put ''KSl7aWYoMT09KDB8Yykpe0Q9MDticmVhayBlfWlmKEV0PTB8UW4oYVtzdD4+Ml08PDIpLCFrKXtEPTA7YnJlYWsgZX1zd2l0Y2goMHxiKXtjYXNlIDI6RD0wfHpKKGwsYyksYnQ9NDY7YnJlYWs7Y2FzZSAxOihEPTB8SXkobCxjKSk/a3Q9RDooJHIoMCw5MzMxNSxydCksJHIoMyw5MzM2NCxX''@;'; put 'put ''ZSksYnQ9NDcpO2JyZWFrO2Nhc2UgMzpEPTB8JDYobCxjKSxidD00NjticmVhaztkZWZhdWx0OmJ0PTQ3fTQ2PT0oMHxidCkmJihEP2t0PUQ6YnQ9NDcpLDQ3PT0oMHxidCkmJihrdD0wfE1EKGwsYykpLGF0PShIZT0oMHxBcihsPWMrLTF8MCxjKSkvMnwwKStjfDA7bjpkb3tpZighVmUpe2Zv''@;'; put 'put ''cihHPTEsUj0wOyEoKDB8Uik+PSgwfEEpKTspe2ZvcihxPXArKFI8PDIpfDAsRD0wOyEoKDB8RCk+PSgwfGMpKTspRz0ocWU9K2VvKCsgK19bKDB8YVtxPj4yXSkrKEQ8PDMpPj4zXSkpPkc/cWU6RyxEPUQrMXwwO1I9UisxfDB9Zm9yKEc9MS9HLFI9MDs7KXtpZigoMHxSKT49KDB8QSkpYnJl''@;'; put 'put ''YWsgbjtmb3IocT1wKyhSPDwyKXwwLEQ9MDshKCgwfEQpPj0oMHxjKSk7KV9bKFdlPSgwfGFbcT4+Ml0pKyhEPDwzKXwwKT4+M109MTAqRyorX1tXZT4+M10sRD1EKzF8MDtSPVIrMXwwfX19d2hpbGUoMCk7bjpkb3tpZihNPjApe09lPSsoMHxIZSksRD0wLEc9MCxwZT0wO3I6Zm9yKDshKCgw''@;'; put 'put ''fHBlKT49KDB8bCkpOylmb3IoZ2U9cGUrMXwwLHE9RCxSPWdlOzspe2lmKEQ9cSsxfDAsKDB8Uik+PSgwfGMpKXtwZT1nZTtjb250aW51ZSByfXE9RCxHPShxZT0rS1gocCxBLHBlLFIpKS8ram5ba3QrKEQ8PDIpPj4yXStHLFI9UisxfDB9Zm9yKEcvPU9lLEQ9MDs7KXtpZigoMHxEKT49KDB8''@;'; put 'put ''YXQpKXtEPTA7YnJlYWsgbn1qblsoV2U9a3QrKEQ8PDIpfDApPj4yXT0ram5bV2U+PjJdKkcsRD1EKzF8MH19ZWxzZSBEPTB9d2hpbGUoMCk7Zm9yKDshKCgwfEQpPj0oMHxBKSk7KWE4KGMsMHxhW3ArKEQ8PDIpPj4yXSksRD1EKzF8MDtmb3IoRz0rX1soUj0wfGFbcCs0Pj4yXSk+PjNdLEQ9''@;'; put 'put ''MDshKCgwfEQpPj0oMHxjKSk7KV9bKFdlPVIrKEQ8PDMpfDApPj4zXT0rX1tXZT4+M10tRyxEPUQrMXwwO2ZvcihXZT0wfFFuKGJlPUE8PDIpLHE9MHxRbihMZT0wfEFyKFJlPWM8PDIsQSkpLEQ9MDshKCgwfEQpPj0oMHxBKSk7KXtmb3IocGU9cSsoKDB8QXIoRCxjKSk8PDIpfDAsYVtXZSso''@;'; put 'put ''RDw8Mik+PjJdPXBlLGdlPXArKEQ8PDIpfDAsUj0wOyEoKDB8Uik+PSgwfGMpKTspam5bcGUrKFI8PDIpPj4yXT0rX1soMHxhW2dlPj4yXSkrKFI8PDMpPj4zXSxSPVIrMXwwO0Q9RCsxfDB9Zm9yKE9lPSsoMHxIZSksamsoYXQsa3QpLGNLKGF0LGt0KSwkRChjLDAscnQ9MHxRbihjPDwzKSks''@;'; put 'put ''RD0wLHE9MDs7KXtpZigoMHxxKT49KDB8bCkpe0Q9YyxSPTAscT0wO2JyZWFrfWZvcihwZT1jLXF8MCxHPTAsUj0xO0Q9RCsxfDAsISgoMHxSKT49KDB8cGUpKTspX1soU3Q9cnQrKFIrcTw8Myl8MCk+PjNdPStfW1N0Pj4zXS0ocWU9K2puW2t0KyhEPDwyKT4+Ml0pLEcrPXFlLFI9UisxfDA7''@;'; put 'put ''X1soU3Q9cnQrKHE8PDMpfDApPj4zXT0rX1tTdD4+M10tRyxxPXErMXwwfWZvcig7ISgoMHxSKT49KDB8YykpOylqbltrdCsocTw8Mik+PjJdPStfW3J0KyhSPDwzKT4+M10sU3Q9RCtxfDAsRD1EKy0xfDAsUj1SKzF8MCxxPVN0O2ZvcihiPTB8UW4oYmUpLGFbYj4+Ml09MHxRbihMZSksRD0x''@;'; put 'put ''OyEoKDB8RCk+PSgwfEEpKTspYVtiKyhEPDwyKT4+Ml09KDB8YVtiPj4yXSkrKCgwfEFyKEQsYykpPDwyKSxEPUQrMXwwO2ZvcihWZT0wfFFuKFJlKSxtPTB8UW4oUmUpLHc9MHxRbihhdDw8MiksUj0wfGRLKGt0LGMpLGY9MHxYVihrdCxjLDB8YVtadD4+Ml0sMHxhW2N0Pj4yXSwwfGFbc3Q+''@;'; put 'put ''PjJdKSxIZT1iKzR8MCxxPTAscWU9MTc5NzY5MzEzNDg2MjMxNTdlMjkyLEQ9MDtxPDwyND4+MjQ9PTAmKDB8RCk8KDB8ayk7KXtmb3IoJEQoYywwLHJ0KSxXVihhdCxrdCx3KSxMZT0wLGdlPTA7Oyl7aWYoKDB8TGUpPj0oMHxsKSl7cT0wLHBlPWMsZ2U9MDticmVha31mb3IoUmU9Yy1MZS0x''@;'; put 'put ''fDAsWnkoYywwLG0pLHE9MDshKCgwfHEpPj0oMHxBKSk7KVp5KFJlLCtqblsoMHxhWyhzdD1XZSsocTw8Mil8MCk+PjJdKSsoTGU8PDIpPj4yXSxWZSksS0QoUmUsVmUsLTEsKDB8YVtzdD4+Ml0pKyhMZTw8MikrNHwwKSxqayhSZSxWZSksWEQoUmUsVmUsbSxtKSxxPXErMXwwO2ZvcihmSyhS''@;'; put 'put ''ZSxtKSxxPTA7ISgoMHxxKT49KDB8UmUpKTspKEc9K2puWyhwZT1tKyhxPDwyKXwwKT4+Ml0pPj0zNDAyODIzNDY2Mzg1Mjg4NmUyMnxHPDAmJihqbltwZT4+Ml09MCkscT1xKzF8MDtmb3IoYmU9TGUrMXwwLEc9MCxxPWdlLHBlPTA7cT1xKzF8MCwhKCgwfHBlKT49KDB8UmUpKTspam5bKHN0''@;'; put 'put ''PXcrKHE8PDIpfDApPj4yXT1Tbj0ram5bc3Q+PjJdKitqblttKyhwZTw8Mik+PjJdLF9bKHN0PXJ0KyhiZStwZTw8Myl8MCk+PjNdPStfW3N0Pj4zXS1TbixHKz1TbixwZT1wZSsxfDA7X1soZ2U9cnQrKExlPDwzKXwwKT4+M109K19bZ2U+PjNdLUcsTGU9YmUsZ2U9cX1mb3IoOzspe2lmKCgw''@;'; put 'put ''fHEpPj0oMHxjKSl7cT0wO2JyZWFrfWpuW3crKGdlPDwyKT4+Ml09K19bcnQrKHE8PDMpPj4zXSxzdD1wZStnZXwwLHE9cSsxfDAscGU9cGUrLTF8MCxnZT1zdH1mb3IoOzspe2lmKCgwfHEpPj0oMHxBKSl7Rz0wLHE9MDticmVha31lZCh3LGMsMHxhW1dlKyhxPDwyKT4+Ml0sMHxhW2IrKHE8''@;'; put 'put ''PDIpPj4yXSkscT1xKzF8MH1mb3IoOyEoKDB8cSk+PSgwfEEpKTspRz0rWDcoYywwfGFbV2UrKHE8PDIpPj4yXSwwfGFbYisocTw8Mik+PjJdKStHLHE9cSsxfDA7Zm9yKEc9MipHK09lLHE9MDshKCgwfHEpPj0oMHxBKSk7KWVkKGt0LGMsMHxhWyhzdD1XZSsocTw8Mil8MCk+PjJdLFZlKSxH''@;'; put 'put ''LT0rWDcoYywwfGFbc3Q+PjJdLFZlKSxxPXErMXwwO2ZvcihxPTEmKCgwfEQpPjEmRz5xZXwoU249K2VvKCsoRy1xZSkpLytlbygrKHFlKzFlLTEwKSkpPCtfWzIzMjk0XSkscGU9MDshKCgwfHBlKT49KDB8QSkpOyl7aWYoMSE9KDB8cGUpKXtpZigwfE9rKGt0LDB8YVtXZSsocGU8PDIpPj4y''@;'; put 'put ''XSwwfGFbYisocGU8PDIpPj4yXSxjLC4wMDEsYykpe0Q9LTE7YnJlYWsgdH19ZWxzZSB3OWUoZiwwfGFbSGU+PjJdLFdlLEEsMSwxNSxFdCxNKTtwZT1wZSsxfDB9cWU9RyxEPUQrMXwwfWlmKEZ0KEV0KSxfOWUoZiksMHxXZSl7Zm9yKHE9MDshKCgwfHEpPj0oMHxBKSk7KXtmb3IoZ2U9V2Ur''@;'; put 'put ''KHE8PDIpfDAsYmU9cCsocTw8Mil8MCxwZT0wOyEoKDB8cGUpPj0oMHxjKSk7KV9bKDB8YVtiZT4+Ml0pKyhwZTw8Myk+PjNdPStqblsoMHxhW2dlPj4yXSkrKHBlPDwyKT4+Ml0scGU9cGUrMXwwO3E9cSsxfDB9RnQoMHxhW1dlPj4yXSksRnQoV2UpfTB8YiYmKEZ0KDB8YVtiPj4yXSksRnQo''@;'; put 'put ''YikpLEZ0KFZlKSxGdChtKSxGdChydCksRnQoa3QpLEZ0KHcpfX13aGlsZSgwKTtGdCgwfGFbWnQ+PjJdKSxGdCgwfGFbY3Q+PjJdKSxSJiYoRnQoMHxhW1I+PjJdKSxGdChSKSl9ZWxzZSBidD0xMH1lbHNlIGJ0PTEwfXdoaWxlKDApO3JldHVybiAxMD09KDB8YnQpJiYoRD0wfCROKGwsYyxm''@;'; put 'put ''LHAsbSxBLHcsYixrKSksbGU9YW4sMHxEfShELGMsMHxhW0c+PjJdLGdlLDB8YVtiZT4+Ml0sMHxhWzQ3MTM3XSxtLHAsMHxhWzQ3MTM2XSxNKSxBPTEyKTpBPTE0KToobT0wfCROKEQsYywwfGFbRz4+Ml0sZ2UsMHxhW2JlPj4yXSwwfGFbNDcxMzddLG0scCwwfGFbNDcxMzZdKSxBPTEyKSwx''@;'; put 'put ''Mj09KDB8QSkmJigoMHxtKTwwPyRyKDMsODkyODkscGUpOkE9MTQpO2U6ZG97aWYoMTQ9PSgwfEEpKWZvcihBPTB8RHQobCk7Oyl7aWYoIUEpYnJlYWsgZTtmb3Iodz0wfGFbMTIwKyhrPTB8YVtBKzE2Pj4yXSk+PjJdLGI9MHxhWzQ3MTM3XSxrPWsrMTMyfDAsbT0wOyEoKDB8bSk+PSgwfGIp''@;'; put 'put ''KTspX1soMHxhW2s+PjJdKSsobTw8Myk+PjNdPStfWygwfGFbZ2UrKG08PDIpPj4yXSkrKHc8PDMpPj4zXSxtPW0rMXwwO0E9MHx6dChsLEEpfX13aGlsZSgwKTtOWChEKSxGdCgwfGFbZ2U+PjJdKSxGdChnZSksRnQoMHxhW2JlPj4yXSksbGU9T2V9ZnVuY3Rpb24gWk4obCxjLGYpe3ZhciBw''@;'; put 'put ''LEE7c3dpdGNoKGx8PTAsY3w9MCxBPWxlLGxlPWxlKzQ4fDAscD1BLDB8KGZ8PTApKXtjYXNlIDI6IWZ1bmN0aW9uIFhjKGwsYyl7dmFyIHAsQSx3LGIsZj0wLG09MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9MHxmdW5jdGlvbiBoOWUobCxjKXt2YXIgZixwO3JldHVybiBwPTB8YVs4KyhsfD0w''@;'; put 'put ''KT4+Ml0sSlgobCxjfD0wKSxmPTB8TlYobCxjKSxYWChsLGMscCksMHxmfShBPTB8TEoobHw9MCxjfD0wLGIsMCwyLDApLGMpLHA9bCsxNnwwLGw9MDshKCgwfGwpPj0oMHxjKSk7KXtmb3IobT13KyhsPDwyKXwwLGY9MDsoMHxmKSE9KDB8Yyk7KV9bKDB8YVsoMHxhWzE2MCsoMHxhW3A+PjJd''@;'; put 'put ''KT4+Ml0pKyhsPDwyKT4+Ml0pKyhmPDwzKT4+M109KygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSksZj1mKzF8MDtsPWwrMXwwfUZ0KDB8YVt3Pj4yXSksRnQodyksTlgoQSksbGU9Yn0obCxjKTticmVhaztjYXNlIDE6MHxmdW5jdGlvbiBPWChsLGMpe2x8PTA7dmFyIHcsYixrLGY9MCxw''@;'; put 'put ''PTAsbT0wLEE9MCxNPTA7Zm9yKGI9MHxjZyhjfD0wLGMsMCksaz0wfGNnKGMsYywwKSxwPTB8RHQobCk7cDspe2ZvcihmPTB8TXMobCxwKTtmOykoMHwobT0oMHxhW2FbKDM9PSgwfChBPTMmYVtmPj4yXSkpP2Y6Zis0OHwwKSs0MD4+Ml0+PjJdKT4+PjQpKSE9KDB8KEE9KDB8YVthWygyPT0o''@;'; put 'put ''MHxBKT9mOmYrLTQ4fDApKzQwPj4yXT4+Ml0pPj4+NCkpJiYoX1soMHxhW2IrKEE8PDIpPj4yXSkrKG08PDMpPj4zXT1NPS0xLytfWzEzNisoMHxhW2YrMTY+PjJdKT4+M10sX1soMHxhW2IrKG08PDIpPj4yXSkrKEE8PDMpPj4zXT1NKSxmPTB8VnMobCxmLHApO3A9MHx6dChsLHApfXc9MHxr''@;'; put 'put ''VihjLGIsayk7ZTpkb3tpZigwfHcpZm9yKG09bCsxNnwwLHA9MDs7KXtpZigoMHxwKT49KDB8YykpYnJlYWsgZTtmb3IoQT1rKyhwPDwyKXwwLGY9MDsoMHxmKSE9KDB8Yyk7KV9bKDB8YVsoMHxhWzE2MCsoMHxhW20+PjJdKT4+Ml0pKyhwPDwyKT4+Ml0pKyhmPDwzKT4+M109K19bKDB8YVtr''@;'; put 'put ''KyhmPDwyKT4+Ml0pKyhmPDwzKT4+M10rICtfWyhsPTB8YVtBPj4yXSkrKHA8PDMpPj4zXSstMiorX1tsKyhmPDwzKT4+M10sZj1mKzF8MDtwPXArMXwwfX13aGlsZSgwKTtyZXR1cm4gQjcoYiksQjcoayksMHx3fShsLGMpfHwoYVtwPj4yXT0wfHRpKGwpLCRyKDAsODg5MDIscCksJHIoMyw5''@;'; put 'put ''MzM2NCxBKzh8MCksJHIoMyw4ODk1NCxBKzE2fDApLCRyKDMsODkwMjYsQSsyNHwwKSxLSihsLGMpKTticmVhaztkZWZhdWx0OktKKGwsYyksMz09KDB8ZikmJmZ1bmN0aW9uIFI3KGwpe3ZhciBtLGM9MCxmPTAscD0wLEE9MCx3PTAsYj0wO2ZvcihtPTE2KyhsfD0wKXwwLGY9MHxEdChsKTtm''@;'; put 'put ''Oyl7Zm9yKGM9MHx3MChsLGYpO2M7KSgwfChwPSgwfGFbYVsoMz09KDB8KEE9MyZhW2M+PjJdKSk/YzpjKzQ4fDApKzQwPj4yXT4+Ml0pPj4+NCkpIT0oMHwoQT0oMHxhW2FbKDI9PSgwfEEpP2M6YystNDh8MCkrNDA+PjJdPj4yXSk+Pj40KSkmJihfWygwfGFbKHc9MHxhWzE2MCsoMHxhW20+''@;'; put 'put ''PjJdKT4+Ml0pKyhBPDwyKT4+Ml0pKyhwPDwzKT4+M109Yj0rX1sxMzYrKDB8YVtjKzE2Pj4yXSk+PjNdLF9bKDB8YVt3KyhwPDwyKT4+Ml0pKyhBPDwzKT4+M109YiksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fShsKX0oZnVuY3Rpb24geXZlKGwsYyl7dmFyIHAsZj0wO3A9bGUsbGU9bGUr''@;'; put 'put ''MTZ8MCxmPXAsYz0wfERKKGx8PTAsY3w9MCwyKTtlOmRve2lmKDEhPSgwfGMpKWZvcihhWzQ2Nzk3XXxjfHwoJHIoMCw5MDE5MixmKSxhWzQ2Nzk3XT0xKSxmPWwrMTZ8MCxjPTA7Oyl7aWYoIShsPTB8YVsoMHxhWzE1MisoMHxhW2Y+PjJdKT4+Ml0pKyhjPDwyKT4+Ml0pKWJyZWFrIGU7MHxm''@;'; put 'put ''ZVsxMTkrKDB8YVtsKzE2Pj4yXSk+PjBdfHxoc2UobCwxKSxjPWMrMXwwfX13aGlsZSgwKTtsZT1wfSkobCxjKSxmdW5jdGlvbiBQNyhsLGMpe2N8PTA7dmFyIGssRCxSLHEsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wLHBlPTA7Zm9yKHE9bGUsbGU9bGUrOTZ8MCxEPXEsaz0wfGFbMTY0''@;'; put 'put ''KyhtPTB8YVsoUj0xNisobHw9MCl8MCk+PjJdKT4+Ml0sbT0wfGFbbSsxNjA+PjJdLE09MDshKCgwfE0pPj0oMHxjKSk7KXtmb3Iodz1tKyhNPDwyKXwwLGI9aysoTTw8Mil8MCxwPTA7KDB8cCkhPSgwfE0pOylBPTEvKChBPStfWygwfGFbdz4+Ml0pKyhwPDwzKT4+M10pKkEpLChmPTB8S2Eo''@;'; put 'put ''bCwwfGFbKGY9MHxhWzE1MisoMHxhW1I+PjJdKT4+Ml0pKyhNPDwyKT4+Ml0sMHxhW2YrKHA8PDIpPj4yXSwwLDApKSYmKEEqPStfWzEyOCsoMHxhW2YrMTY+PjJdKT4+M10pLF9bKDB8YVtrKyhwPDwyKT4+Ml0pKyhNPDwzKT4+M109QSxfWygwfGFbYj4+Ml0pKyhwPDwzKT4+M109QSxwPXAr''@;'; put 'put ''MXwwO009TSsxfDB9Zm9yKGw9MHxhWzQ3MTM3XSxwPTA7KDB8cCk8KDB8Yyk7KXtmb3IoZj0wOyEoKDB8Zik+PSgwfGwpKTspX1soMHxhWygwfGFbMTY4KygwfGFbUj4+Ml0pPj4yXSkrKHA8PDIpPj4yXSkrKGY8PDMpPj4zXT0wLGY9ZisxfDA7cD1wKzF8MH1mb3Iodz0wO2Y9MHxhWygwfGFb''@;'; put 'put ''MTUyKygwfGFbUj4+Ml0pPj4yXSkrKHc8PDIpPj4yXTspe2ZvcihsPWYrMTZ8MCxmPTA7ISgoMHxmKT49KDB8YykpOyl7ZTpkb3tpZigoMHx3KSE9KDB8ZikpZm9yKEE9K1dKKDB8YVsxMzIrKDB8YVtsPj4yXSk+PjJdLDB8YVsxMzIrKDB8YVsxNisoMHxhWygwfGFbMTUyKygwfGFbUj4+Ml0p''@;'; put 'put ''Pj4yXSkrKGY8PDIpPj4yXSk+PjJdKT4+Ml0sRCksbT0wfGFbNDcxMzddLEE9MS9BLHA9MDs7KXtpZigoMHxwKT49KDB8bSkpYnJlYWsgZTtfWygwfGFbKDB8YVsoMHxhWzE3MisoTT0wfGFbUj4+Ml0pPj4yXSkrKHc8PDIpPj4yXSkrKGY8PDIpPj4yXSkrKHA8PDMpPj4zXT1wZT0oKHBlPStf''@;'; put 'put ''W0QrKHA8PDMpPj4zXSktK19bKDB8YVsoMHxhW00rMTYwPj4yXSkrKHc8PDIpPj4yXSkrKGY8PDMpPj4zXSpwZSpBKSorX1soMHxhWygwfGFbTSsxNjQ+PjJdKSsodzw8Mik+PjJdKSsoZjw8Myk+PjNdLF9bKE09KDB8YVsoMHxhW00rMTY4Pj4yXSkrKHc8PDIpPj4yXSkrKHA8PDMpfDApPj4z''@;'; put 'put ''XT0rX1tNPj4zXStwZSxwPXArMXwwfX13aGlsZSgwKTtmPWYrMXwwfXc9dysxfDB9bGU9cX0obCxjKSxmdW5jdGlvbiBKSihsLGMpe2x8PTAsY3w9MDt2YXIgQSx3LGIsZj0wLGs9MDtmb3Iodz1sZSxsZT1sZSszMnwwLEE9dysyNHwwLF9bMjMyMTZdPShiPStfWzIzMjk0XSkqYjtmPTB8d3Zl''@;'; put 'put ''KGwsYyk7KXhEKGwsYyxmKTsoMHwoYz0wfGFbMTU2KygwfGFbKGM9bCsxNnwwKT4+Ml0pPj4yXSkpPT0oMHxhWzQ3MTM2XSkmJihrPTB8dGkobCksYVtBPj4yXT1jLGFbQSs0Pj4yXT1rLCRyKDAsOTAzMjAsQSkpLGxlPXd9KGwsYyksbGU9QX1mdW5jdGlvbiBMSihsLGMsZixwLG0sQSl7Y3w9''@;'; put 'put ''MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBxZSxydCxhdCxrdCxzdCxFdCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxXZT0wLFN0PTAsWnQ9MCxjdD0wO2Zvcih3PTB8TjMobHw9MCksRXQ9MHxmdW5jdGlv''@;'; put 'put ''biBwYWUoKXt2YXIgbCxwLGM9MCxmPTA7Zj0yMDc3NixwPTM2KyhjPWw9MHxRbig0MCkpfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7cmV0dXJuIGFbbCszNj4+Ml09MCwwfGlzKGwsMHxhWzQ1ODFdKX0oKSwyPT0oMHxtKT8oYj0wLFN0''@;'; put 'put ''PTApOihTdD0wfHNpKGwsMiw5MjQ5MywwKSxiPTAhPSgwfGFbNDcxNzRdKSYxLFN0PTAhPSgwfFN0KSkscnQ9Mz09KDF8cCksa3Q9MHxRbigyMCpjfDApLHN0PTB8UW4oYzw8MiksTT0wfFFuKGs9KHc8PDEpK2M8PDIpLG09KHFlPXJ0fFN0KT8wfFFuKGspOjAsdz0oYXQ9MCE9KDB8YikpPzB8''@;'; put 'put ''UW4oayk6MCxiPXJ0PzB8UW4oayk6MCxrPTAsSGU9MHxEdChsKSxWZT0wO0hlOyl7aWYodmFlKEV0KSwoMHxhWzEyMCsoMHxhW0hlKzE2Pj4yXSk+PjJdKSE9KDB8VmUpKXtXZT0xMjticmVha31mb3IoYVtzdCsoVmU8PDIpPj4yXT1IZSxhWyhPZT1rdCsoMjAqVmV8MCkrNHwwKT4+Ml09TSxh''@;'; put 'put ''WyhMZT1rdCsoMjAqVmV8MCkrOHwwKT4+Ml09cWU/bTowLGFbKFJlPWt0KygyMCpWZXwwKSsxMnwwKT4+Ml09YXQ/dzowLGFba3QrKDIwKlZlfDApKzE2Pj4yXT1ydD9iOjAscGU9MSxiZT0wfE1zKGwsSGUpLGdlPTEscT1rLE09TSs0fDAsbT1xZT9tKzR8MDptLHc9YXQ/dys0fDA6dyxiPXJ0''@;'; put 'put ''P2IrNHwwOmI7YmU7KXtEPTMmYVtiZT4+Ml0sRz1iZSstNDh8MCxrPWJlKzQ4fDA7ZG97aWYoKDB8YVsoMj09KDB8RCk/YmU6RykrNDA+PjJdKT09KDB8YVsoMz09KDB8RCk/YmU6aykrNDA+PjJdKSlEPXBlLEc9Z2Usaz1xO2Vsc2V7aWYoKDB8KEQ9MHxyc2UoRXQsYmUscGUpKSkhPSgwfHBl''@;'; put 'put ''KSl7aWYoYXQmJihqblsoRz0oMHxhW1JlPj4yXSkrKEQ8PDIpfDApPj4yXT0rX1sxMjgrKDB8YVtiZSsxNj4+Ml0pPj4zXSsgK2puW0c+PjJdKSwhU3Qpe0Q9cGUsRz1nZSxrPXE7YnJlYWt9am5bKEQ9KDB8YVtMZT4+Ml0pKyhEPDwyKXwwKT4+Ml09KFp0PStfWzEzNisoMHxhW2JlKzE2Pj4y''@;'; put 'put ''XSk+PjNdKT4oUj0rKDB8fn4ram5bRD4+Ml0pKT9adDpSLEQ9cGUsRz1nZSxrPXE7YnJlYWt9cT1xKzF8MCxEPXBlKzF8MCxwZT1NKzR8MCxhW00+PjJdPWFbMTIwKygwfGFbMTYrKDB8YVsoKDB8YVsoaz0zPT0oMHwoY3Q9MyZhW2JlPj4yXSkpP2JlOmspKzQwPj4yXSk9PSgwfEhlKT8yPT0o''@;'; put 'put ''MHxjdCk/YmU6RzprKSs0MD4+Ml0pPj4yXSk+PjJdLGF0JiYoam5bdz4+Ml09K19bMTI4KygwfGFbYmUrMTY+PjJdKT4+M10sdz13KzR8MCksU3Q/KGs9bSs0fDAsam5bbT4+Ml09K19bMTM2KygwfGFbYmUrMTY+PjJdKT4+M10scnQ/KG09ayxXZT0yNyk6bT1rKTpydCYmKGpuW20+PjJdPTEs''@;'; put 'put ''bT1tKzR8MCxXZT0yNyksMjc9PSgwfFdlKSYmKFdlPTAsUj0wIT0oMHwoaz0wfExpKGJlLDEwMTU1OSkpKSYmMD09KDB8czIoaywxMzU3MDksNCkpPzA6KDB8SGUpPT0oMHxhWygyPT0oMyZhW2JlPj4yXXwwKT9iZTpHKSs0MD4+Ml0pPzE6LTEsam5bYj4+Ml09UixiPWIrNHwwKSxHPWdlKzF8''@;'; put 'put ''MCxrPXEsTT1wZX19d2hpbGUoMCk7cGU9RCxiZT0wfFZzKGwsYmUsSGUpLGdlPUcscT1rfWFba3QrKDIwKlZlfDApPj4yXT1nZSxhW2FbT2U+PjJdPj4yXT1WZSxrPXEsSGU9MHx6dChsLEhlKSxWZT1WZSsxfDB9MTI9PSgwfFdlKSYmUHIoODkxMDMsODkxMTgsODE5LDg5MTMwKSxydCYmZnVu''@;'; put 'put ''Y3Rpb24gbGcobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MDtmb3IobT0wOzspe2lmKCgwfG0pPj0oMHxjKSl7bT0wO2JyZWFrfWZlWzE1NysoQT0wfGFbMTYrKDB8YVtwKyhtPDwyKT4+Ml0pPj4yXSk+PjBdPTAsZmVbQSsxNTg+PjBdPTAsbT1tKzF8MH1mb3IoOyEo''@;'; put 'put ''KDB8bSk+PSgwfGMpKTspMHxmZVsxNTcrKDB8YVsxNisoMHxhW3ArKG08PDIpPj4yXSk+PjJdKT4+MF18fGk0KGwsbSxmLHApLG09bSsxfDB9KGt0LGMscCxzdCksRD0oMHxrKS8yfDA7ZTpkb3tpZigoMHxEKSE9KDB8TjMobCkpKWZvcihrPShEPDwxKStjPDwyLGI9MHxWMCgwfGFba3QrND4+''@;'; put 'put ''Ml0sayksU3QmJihtPTB8VjAoMHxhW2t0Kzg+PjJdLGspKSxhdD8oTT0wLHc9MHxWMCgwfGFba3QrMTI+PjJdLGspKTpNPTA7Oyl7aWYoKDB8TSk+PSgwfGMpKWJyZWFrIGU7az0wfGFba3QrKDIwKk18MCk+PjJdLGFba3QrKDIwKk18MCkrND4+Ml09YixTdCYmKGFba3QrKDIwKk18MCkrOD4+''@;'; put 'put ''Ml09bSxtPW0rKGs8PDIpfDApLGF0JiYoYVtrdCsoMjAqTXwwKSsxMj4+Ml09dyx3PXcrKGs8PDIpfDApLE09TSsxfDAsYj1iKyhrPDwyKXwwfX13aGlsZSgwKTtyZXR1cm4gYVtmPj4yXT1ELEE/YVtBPj4yXT1zdDpGdChzdCksZnVuY3Rpb24gd3kobCl7dmFyIGMsZj0wO2ZvcihjPTB8YVs0''@;'; put 'put ''KyhsfD0wKT4+Ml0sTmwobCksbD0wfGFbYyszNj4+Ml07bDspZj0wfGFbbD4+Ml0sRnQobCksbD1mO0Z0KGMpfShFdCksMHxrdH1mdW5jdGlvbiByc2UobCxjLGYpe3ZhciBwLG09MDtyZXR1cm4gMHxmdW5jdGlvbiBBYWUobCxjLGYscCl7dmFyIG0sQTtyZXR1cm4gbHw9MCxmfD0wLHB8PTAs''@;'; put 'put ''bT1sZSxsZT1sZSszMnwwLGFbKEE9bSkrOD4+Ml09Y3w9MCxhW0ErMTI+PjJdPWYsYVtBKzE2Pj4yXT1wLHA9MHxhWzE2KygwfG1pWzYzJmFbbD4+Ml1dKGwsQSwxKSk+PjJdLGxlPW0sMHxwfShsfD0wLChtPSgwfChwPTB8YVsxMjArKDB8YVsxNisoMHxhWygzPT0oMHwobT0zJmFbKGN8PTAp''@;'; put 'put ''Pj4yXSkpP2M6Yys0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSk+KDB8KGM9MHxhWzEyMCsoMHxhWzE2KygwfGFbKDI9PSgwfG0pP2M6YystNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpKT9jOnAsbT9wOmMsZnw9MCl9ZnVuY3Rpb24gaTQobCxjLGYscCl7bHw9MCxmfD0wO3ZhciBNLEQsUixxLG09''@;'; put 'put ''MCxBPTAsdz0wLGI9MCxrPTAsRz0wO2ZlWzE1Nysoaz0wfGFbKHE9MTYrKDB8YVsocHw9MCkrKChjfD0wKTw8Mik+PjJdKXwwKT4+Ml0pPj4wXT0xLGZlW2srMTU4Pj4wXT0xLGs9bCsoMjAqY3wwKXwwLE09bCsoMjAqY3wwKSsxNnwwLEQ9bCsoMjAqY3wwKSs0fDAsUj0zPT0oMHxmKT8tMTox''@;'; put 'put ''LGI9MTtlOmZvcig7Oyl7aWYoKDB8Yik+PSgwfGFbaz4+Ml0pKXttPTE0O2JyZWFrfW09KDB8YVtNPj4yXSkrKGI8PDIpfDA7ZG97aWYoMSE9K2puW20+PjJdKXtpZighKDB8ZmVbMTU4KyhBPTB8YVsxNisoMHxhW3ArKChHPTB8YVsoMHxhW0Q+PjJdKSsoYjw8Mik+PjJdKTw8Mik+PjJdKT4+''@;'; put 'put ''Ml0pPj4wXSkpe2lmKDB8ZmVbQSsxNTc+PjBdKWJyZWFrO2k0KGwsRyxmLHApO2JyZWFrfWZvcihqblttPj4yXT1SLEE9bCsoMjAqR3wwKSs0fDAsdz0wfGFbbCsoMjAqR3wwKT4+Ml0sbT0xOzspe2lmKCgwfG0pPj0oMHx3KSl7bT05O2JyZWFrIGV9aWYoKDB8YVsoMHxhW0E+PjJdKSsobTw8''@;'; put 'put ''Mik+PjJdKT09KDB8YykpYnJlYWs7bT1tKzF8MH1qblsoMHxhW2wrKDIwKkd8MCkrMTY+PjJdKSsobTw8Mik+PjJdPS0xfX13aGlsZSgwKTtiPWIrMXwwfWlmKDk9PSgwfG0pKVByKDg5MTQ0LDg5MTE4LDcyMSw4OTE2NCk7ZWxzZSBpZigxND09KDB8bSkpcmV0dXJuIHZvaWQoZmVbMTU4Kygw''@;'; put 'put ''fGFbcT4+Ml0pPj4wXT0wKX1mdW5jdGlvbiBiRChsKXt2YXIgYztoMChsfD0wLDEzNzQ2MCwxNzYsMSksTDcobCksYz0rTWwobCwwfGFbNDcxNzRdLDEsMSksX1sxMjgrKDB8YVtsKzE2Pj4yXSk+PjNdPWN9ZnVuY3Rpb24gek4obCxjLGYpe2x8PTAsZnw9MDt2YXIgYixwPTAsbT0wLEE9MCx3''@;'; put 'put ''PTAsaz0wO2lmKGI9bGUsbGU9bGUrMTZ8MCxwPWIsdz0oQT0wfGl0WzE2OCsoMHxhWyhtPTE2KyhjfD0wKXwwKT4+Ml0pPj4xXSk8PDE2Pj4xNixBPDwxNj4+MTYhPTEmMD09KDB8ZmVbMTk0OTU0XSkpe2ZvcihBPTB8UW4odzw8MikscD0wOyEoKDB8cCk+PSgwfHcpKTspYVtBKyhwPDwyKT4+''@;'; put 'put ''Ml09YyxjPTB8YVsxNzIrKDB8YVtjKzE2Pj4yXSk+PjJdLHA9cCsxfDA7Zm9yKGlEKGwsQSwwLHcsaz0rKDB8ZiksaywxNzc5MiksYz0wOyEoKDB8Yyk+PSgwfHcpKTspMHxhWzk2KygwfGFbKG09MTYrKHA9MHxhW0ErKGM8PDIpPj4yXSl8MCk+PjJdKT4+Ml0mJm40KGY9MHxjcigwfGFbKDM9''@;'; put 'put ''PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSksMHxhWzk2KygwfGFbbT4+Ml0pPj4yXSksdk4ocCksYz1jKzF8MDtGdChBKX1lbHNlIGFbcD4+Ml09YyxpRChsLHAsMCwxLGs9KygwfGYpLGssMTc3OTIpLDB8YVs5NisoMHxhW20+PjJdKT4+Ml0mJm40KHc9MHxjcigwfGFbKDM9PSgz''@;'; put 'put ''JmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSksMHxhWzk2KygwfGFbbT4+Ml0pPj4yXSksdk4oYyk7bGU9Yn1mdW5jdGlvbiBDRChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIFZlLHFlLHJ0LGF0LFN0LFNuLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAs''@;'; put 'put ''cGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxXZT0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTA7U249bGUsbGU9bGUrMzg0fDAsYnQ9U24rMzY4fDAsYW49U24rMTEyfDAsQT1TbiszMnwwLEc9U24rMzM2fDAsc3Q9U24rMzIwfDAsRXQ9U24rMzA0fDAsWnQ9''@;'; put 'put ''U24rMjg4fDAsY3Q9U24rMjcyfDAsbT1TbisyNTZ8MCxhdD1TbisyNDB8MCxTdD1TbisyMjR8MCxrdD1TbisyMDh8MCxwZT1TbisxOTJ8MCxnZT1TbisxNzZ8MCxiZT1TbisxNjB8MCxIZT1TbisxNDR8MCxWZT1TbisxMjh8MCxxZT1Tbis5NnwwLHJ0PVNuKzE2fDAsV2U9U247ZTpkb3tzd2l0''@;'; put 'put ''Y2goMHwkNShsKSl7Y2FzZSAzOmNhc2UgMTpwPTB8dnIoOCksbT0wfGFbMTIrKGw9MHxhWyhIZT1sKzE2fDApPj4yXSk+PjJdO2Rve2lmKGY8PDI0Pj4yNCl7aWYoMjA0OCZhW20rNDA+PjJdKXt2SihHLG0pLExlPStfW0crOD4+M10sUj0rX1tHKzE2Pj4zXSxSZT0rX1tHKzI0Pj4zXSxfW0E+''@;'; put 'put ''PjNdPUQ9K19bRz4+M10sX1tBKzg+PjNdPUxlLF9bQSsxNj4+M109UixfW0ErMjQ+PjNdPUxlLF9bQSszMj4+M109UixfW0ErNDA+PjNdPVJlLF9bQSs0OD4+M109RCxfW0ErNTY+PjNdPVJlLFJlPTAsbD00LGY9MCxEPTAsUj0wO2JyZWFrfUxlPS0uNSooUmU9K19bbCs4MD4+M10pLF9bQT4+''@;'; put 'put ''M109RD0tKFI9K19bbCs4OD4+M10pLF9bQSs4Pj4zXT1MZSxfW0ErMTY+PjNdPVIsX1tBKzI0Pj4zXT1MZSxSZSo9LjUsX1tBKzMyPj4zXT1SLF9bQSs0MD4+M109UmUsX1tBKzQ4Pj4zXT1ELF9bQSs1Nj4+M109UmUsUmU9MCxsPTQsZj0wLEQ9MCxSPTA7YnJlYWt9aWYoKDB8KGw9MHxhW20r''@;'; put 'put ''OD4+Ml0pKT4yKXtSZT0wLEE9MHxhW20rNDQ+PjJdLGY9MCxEPStqbltjPj4yXSxSPStqbltjKzQ+PjJdO2JyZWFrfVJlPS4wMSorcWMoKSxsPTgsQT0wLGY9MSxEPTAsUj0wO2JyZWFrfXdoaWxlKDApO2ZvcihhW3ArND4+Ml09bCxHPTB8dnIobDw8NCksYVtwPj4yXT1HLHE9MS8rKDB8bCks''@;'; put 'put ''cGU9Yys4fDAsZ2U9Yys0fDAsYmU9ND09KDB8bCksT2U9LUQsTGU9LVIsbT0wOzspe2lmKCgwfGwpPD0oMHxtKSlicmVhayBlO2Rve2lmKGYpYj0raGEoKyh3PTYuMjgzMTg1MzA3MTc5NTg2KisoMHxtKSpxK1JlKSksdz0rRGEoK3cpLDB8ZmVbcGU+PjBdPyhrPSgrX1s4MCsoYW49MHxhW0hl''@;'; put 'put ''Pj4yXSk+PjNdKyAram5bZ2U+PjJdKSp3LHc9KCtfW2FuKzk2Pj4zXSsgK19bYW4rODg+PjNdKyAram5bYz4+Ml0pKmIpOihrPXcqK2puW2dlPj4yXSorX1s4MCsoYW49MHxhW0hlPj4yXSk+PjNdLHc9Yioram5bYz4+Ml0qKCtfW2FuKzk2Pj4zXSsgK19bYW4rODg+PjNdKSksTT0uNSp3LHc9''@;'; put 'put ''LjUqaztlbHNle2lmKCEoMHxmZVtwZT4+MF0pKXtNPStfW0ErKG08PDQpPj4zXSpELHc9K19bQSsobTw8NCkrOD4+M10qUjticmVha31pZighYmUpe009K19bQSsobTw8NCk+PjNdLE0qPUQvKGs9K0QwKCsoKHc9K19bQSsobTw8NCkrOD4+M10pKncrTSpNKSkpKzEsdyo9Ui9rKzE7YnJlYWt9''@;'; put 'put ''c3dpdGNoKDB8bSl7Y2FzZSAwOmI9Uix3PUQ7YnJlYWs7Y2FzZSAxOmI9Uix3PU9lO2JyZWFrO2Nhc2UgMjpiPUxlLHc9T2U7YnJlYWs7Y2FzZSAzOmI9TGUsdz1EO2JyZWFrO2RlZmF1bHQ6Yj0wLHc9MH1NPStfW0ErKG08PDQpPj4zXSt3LHc9K19bQSsobTw8NCkrOD4+M10rYn19d2hpbGUo''@;'; put 'put ''MCk7X1tHKygoYW49bC1tLTF8MCk8PDQpPj4zXT0rX1sxNisoYnQ9MHxhW0hlPj4yXSk+PjNdK00sX1tHKyhhbjw8NCkrOD4+M109K19bYnQrMjQ+PjNdK3csbT1tKzF8MH1jYXNlIDI6aWYodz0rX1sxNisocD0wfGFbMTIrKDB8YVsoV2U9bCsxNnwwKT4+Ml0pPj4yXSk+PjNdLE09K19bcCsy''@;'; put 'put ''ND4+M10sYj0rX1twKzMyPj4zXSxrPStfW3ArNDA+PjNdLHA9MHx2cig4KSxhW3ArND4+Ml09NCxsPTB8dnIoNjQpLGFbcD4+Ml09bCxhW2FuPj4yXT1hWyhXZT0xNisoMHxhW1dlPj4yXSl8MCk+PjJdLGFbYW4rND4+Ml09YVtXZSs0Pj4yXSxhW2FuKzg+PjJdPWFbV2UrOD4+Ml0sYVthbisx''@;'; put 'put ''Mj4+Ml09YVtXZSsxMj4+Ml0sMHxmZVtjKzg+PjBdKXtSZT13LStqbltjPj4yXSxMZT1NLStqblsoa3Q9Yys0fDApPj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKHN0LFJl''@;'; put 'put ''LExlLGJ0KSxhW2w+PjJdPWFbc3Q+PjJdLGFbbCs0Pj4yXT1hW3N0KzQ+PjJdLGFbbCs4Pj4yXT1hW3N0Kzg+PjJdLGFbbCsxMj4+Ml09YVtzdCsxMj4+Ml0sc3Q9MTYrKDB8YVtwPj4yXSl8MCxMZT13LStqbltjPj4yXSxSZT1rKyAram5ba3Q+PjJdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQr''@;'; put 'put ''ND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sc2coRXQsTGUsUmUsYnQpLGFbc3Q+PjJdPWFbRXQ+PjJdLGFbc3QrND4+Ml09YVtFdCs0Pj4yXSxhW3N0Kzg+PjJdPWFbRXQrOD4+Ml0sYVtzdCsxMj4+Ml09YVtFdCsxMj4+Ml0s''@;'; put 'put ''RXQ9MzIrKDB8YVtwPj4yXSl8MCxSZT1iKyAram5bYz4+Ml0sTGU9aysgK2puW2t0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKFp0LFJlLExlLGJ0KSxhW0V0Pj4yXT1h''@;'; put 'put ''W1p0Pj4yXSxhW0V0KzQ+PjJdPWFbWnQrND4+Ml0sYVtFdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbWnQrMTI+PjJdLFp0PTQ4KygwfGFbcD4+Ml0pfDAsTGU9YisgK2puW2M+PjJdLFJlPU0tK2puW2t0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+''@;'; put 'put ''Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKGN0LExlLFJlLGJ0KSxhW1p0Pj4yXT1hW2N0Pj4yXSxhW1p0KzQ+PjJdPWFbY3QrND4+Ml0sYVtadCs4Pj4yXT1hW2N0Kzg+PjJdLGFbWnQrMTI+PjJdPWFbY3QrMTI+PjJdO2JyZWFrIGV9YVtidD4+''@;'; put 'put ''Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSx1ZyhtLHcsTSxidCxjKSxhW2w+PjJdPWFbbT4+Ml0sYVtsKzQ+PjJdPWFbbSs0Pj4yXSxhW2wrOD4+Ml09YVttKzg+PjJdLGFbbCsxMj4+Ml09YVtt''@;'; put 'put ''KzEyPj4yXSxjdD0xNisoMHxhW3A+PjJdKXwwLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcoYXQsdyxrLGJ0LGMpLGFbY3Q+PjJdPWFbYXQ+PjJdLGFbY3QrND4+Ml09YVthdCs0''@;'; put 'put ''Pj4yXSxhW2N0Kzg+PjJdPWFbYXQrOD4+Ml0sYVtjdCsxMj4+Ml09YVthdCsxMj4+Ml0sY3Q9MzIrKDB8YVtwPj4yXSl8MCxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKFN0LGIs''@;'; put 'put ''ayxidCxjKSxhW2N0Pj4yXT1hW1N0Pj4yXSxhW2N0KzQ+PjJdPWFbU3QrND4+Ml0sYVtjdCs4Pj4yXT1hW1N0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbU3QrMTI+PjJdLGN0PTQ4KygwfGFbcD4+Ml0pfDAsYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09''@;'; put 'put ''YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSx1ZyhrdCxiLE0sYnQsYyksYVtjdD4+Ml09YVtrdD4+Ml0sYVtjdCs0Pj4yXT1hW2t0KzQ+PjJdLGFbY3QrOD4+Ml09YVtrdCs4Pj4yXSxhW2N0KzEyPj4yXT1hW2t0KzEyPj4yXTticmVhayBlO2Nhc2UgNDppZihsPWwrMTZ8MCxw''@;'; put 'put ''PTB8dnIoOCksYVtwKzQ+PjJdPTQsbT0wfHZyKDY0KSxhW3A+PjJdPW0sYVthbj4+Ml09YVsoY3Q9MTYrKEE9MHxhW2w+PjJdKXwwKT4+Ml0sYVthbis0Pj4yXT1hW2N0KzQ+PjJdLGFbYW4rOD4+Ml09YVtjdCs4Pj4yXSxhW2FuKzEyPj4yXT1hW2N0KzEyPj4yXSx3PS0rX1tBKzg4Pj4zXSww''@;'; put 'put ''fGZlW2MrOD4+MF0pe1JlPXctK2puW2M+PjJdLExlPS0rX1tBKzgwPj4zXS0ram5bKFp0PWMrNHwwKT4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxzZyhwZSxSZSxMZSxidCks''@;'; put 'put ''YVttPj4yXT1hW3BlPj4yXSxhW20rND4+Ml09YVtwZSs0Pj4yXSxhW20rOD4+Ml09YVtwZSs4Pj4yXSxhW20rMTI+PjJdPWFbcGUrMTI+PjJdLGN0PTE2KygwfGFbcD4+Ml0pfDAsTGU9LStfWzg4KyhFdD0wfGFbbD4+Ml0pPj4zXS0ram5bYz4+Ml0sUmU9K19bRXQrODA+PjNdKyAram5bWnQ+''@;'; put 'put ''PjJdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sc2coZ2UsTGUsUmUsYnQpLGFbY3Q+PjJdPWFbZ2U+PjJdLGFbY3QrND4+Ml09YVtnZSs0Pj4yXSxhW2N0Kzg+PjJdPWFbZ2UrOD4+''@;'; put 'put ''Ml0sYVtjdCsxMj4+Ml09YVtnZSsxMj4+Ml0sY3Q9MzIrKDB8YVtwPj4yXSl8MCxSZT0rX1s5NisoRXQ9MHxhW2w+PjJdKT4+M10rICtqbltjPj4yXSxMZT0rX1tFdCs4MD4+M10rICtqbltadD4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09''@;'; put 'put ''YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxzZyhiZSxSZSxMZSxidCksYVtjdD4+Ml09YVtiZT4+Ml0sYVtjdCs0Pj4yXT1hW2JlKzQ+PjJdLGFbY3QrOD4+Ml09YVtiZSs4Pj4yXSxhW2N0KzEyPj4yXT1hW2JlKzEyPj4yXSxjdD00OCsoMHxhW3A+PjJdKXwwLExlPStfWzk2''@;'; put 'put ''KyhFdD0wfGFbbD4+Ml0pPj4zXSsgK2puW2M+PjJdLFJlPS0rX1tFdCs4MD4+M10tK2puW1p0Pj4yXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHNnKEhlLExlLFJlLGJ0KSxhW2N0''@;'; put 'put ''Pj4yXT1hW0hlPj4yXSxhW2N0KzQ+PjJdPWFbSGUrND4+Ml0sYVtjdCs4Pj4yXT1hW0hlKzg+PjJdLGFbY3QrMTI+PjJdPWFbSGUrMTI+PjJdO2JyZWFrIGV9TGU9LStfW0ErODA+PjNdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+''@;'; put 'put ''Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcoVmUsdyxMZSxidCxjKSxhW20+PjJdPWFbVmU+PjJdLGFbbSs0Pj4yXT1hW1ZlKzQ+PjJdLGFbbSs4Pj4yXT1hW1ZlKzg+PjJdLGFbbSsxMj4+Ml09YVtWZSsxMj4+Ml0sY3Q9MTYrKDB8YVtwPj4yXSl8MCxMZT0tK19bODgrKFp0PTB8YVts''@;'; put 'put ''Pj4yXSk+PjNdLFJlPStfW1p0KzgwPj4zXSxhW2J0Pj4yXT1hW2FuPj4yXSxhW2J0KzQ+PjJdPWFbYW4rND4+Ml0sYVtidCs4Pj4yXT1hW2FuKzg+PjJdLGFbYnQrMTI+PjJdPWFbYW4rMTI+PjJdLHVnKHFlLExlLFJlLGJ0LGMpLGFbY3Q+PjJdPWFbcWU+PjJdLGFbY3QrND4+Ml09YVtxZSs0''@;'; put 'put ''Pj4yXSxhW2N0Kzg+PjJdPWFbcWUrOD4+Ml0sYVtjdCsxMj4+Ml09YVtxZSsxMj4+Ml0sY3Q9MzIrKDB8YVtwPj4yXSl8MCxSZT0rX1s5NisoWnQ9MHxhW2w+PjJdKT4+M10sTGU9K19bWnQrODA+PjNdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJd''@;'; put 'put ''PWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcocnQsUmUsTGUsYnQsYyksYVtjdD4+Ml09YVtydD4+Ml0sYVtjdCs0Pj4yXT1hW3J0KzQ+PjJdLGFbY3QrOD4+Ml09YVtydCs4Pj4yXSxhW2N0KzEyPj4yXT1hW3J0KzEyPj4yXSxjdD00OCsoMHxhW3A+PjJdKXwwLExlPStf''@;'; put 'put ''Wzk2KyhadD0wfGFbbD4+Ml0pPj4zXSxSZT0tK19bWnQrODA+PjNdLGFbYnQ+PjJdPWFbYW4+PjJdLGFbYnQrND4+Ml09YVthbis0Pj4yXSxhW2J0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtidCsxMj4+Ml09YVthbisxMj4+Ml0sdWcoV2UsTGUsUmUsYnQsYyksYVtjdD4+Ml09YVtXZT4+Ml0sYVtj''@;'; put 'put ''dCs0Pj4yXT1hW1dlKzQ+PjJdLGFbY3QrOD4+Ml09YVtXZSs4Pj4yXSxhW2N0KzEyPj4yXT1hW1dlKzEyPj4yXTticmVhayBlO2RlZmF1bHQ6cD0wfX13aGlsZSgwKTtyZXR1cm4gbGU9U24sMHxwfWZ1bmN0aW9uIHNnKGwsYyxmLHApe2Y9K19bOCsocHw9MCk+PjNdKyhmPStmKSxfWyhsfD0w''@;'; put 'put ''KT4+M109K19bcD4+M10rKGM9K2MpLF9bbCs4Pj4zXT1mfWZ1bmN0aW9uIHVnKGwsYyxmLHAsbSl7Zj0ram5bNCsobXw9MCk+PjJdKihmPStmKSsgK19bOCsocHw9MCk+PjNdLF9bKGx8PTApPj4zXT0ram5bbT4+Ml0qKGM9K2MpKyArX1twPj4zXSxfW2wrOD4+M109Zn1mdW5jdGlvbiBCSihs''@;'; put 'put ''LGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciB3LGIsayxNLEQsUixHLHE9MCxwZT0wLGdlPTA7Rz1sZSxsZT1sZSsxMTJ8MCxrPUcrODh8MCxNPUcrMzJ8MCxEPUcrMTZ8MCxSPUcsbT1HKzU2fDAsQT1HKzQwfDAsdz00OCsoY3w9MCl8MCxwZT0xNisoMHxhWyhxPWMr''@;'; put 'put ''MTZ8MCk+PjJdKXwwLGFbKGI9Rys3MnwwKT4+Ml09YVsoZ2U9MTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW2M+PjJdfDApP2M6dykrNDA+PjJdKT4+Ml0pfDApPj4yXSxhW2IrND4+Ml09YVtnZSs0Pj4yXSxhW2IrOD4+Ml09YVtnZSs4Pj4yXSxhW2IrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbaz4+''@;'; put 'put ''Ml09YVtwZT4+Ml0sYVtrKzQ+PjJdPWFbcGUrND4+Ml0sYVtrKzg+PjJdPWFbcGUrOD4+Ml0sYVtrKzEyPj4yXT1hW3BlKzEyPj4yXSxDayhtLGIsayksYVtEPj4yXT1hW20+PjJdLGFbRCs0Pj4yXT1hW20rND4+Ml0sYVtEKzg+PjJdPWFbbSs4Pj4yXSxhW0QrMTI+PjJdPWFbbSsxMj4+Ml0s''@;'; put 'put ''bT1jKy00OHwwLHE9NTYrKDB8YVtxPj4yXSl8MCxhW2I+PjJdPWFbKHBlPTE2KygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOm0pKzQwPj4yXSk+PjJdKXwwKT4+Ml0sYVtiKzQ+PjJdPWFbcGUrND4+Ml0sYVtiKzg+PjJdPWFbcGUrOD4+Ml0sYVtiKzEyPj4yXT1hW3BlKzEyPj4y''@;'; put 'put ''XSxhW2s+PjJdPWFbcT4+Ml0sYVtrKzQ+PjJdPWFbcSs0Pj4yXSxhW2srOD4+Ml09YVtxKzg+PjJdLGFbaysxMj4+Ml09YVtxKzEyPj4yXSxDayhBLGIsayksYVtSPj4yXT1hW0E+PjJdLGFbUis0Pj4yXT1hW0ErND4+Ml0sYVtSKzg+PjJdPWFbQSs4Pj4yXSxhW1IrMTI+PjJdPWFbQSsxMj4+''@;'; put 'put ''Ml0scD8oQT0wfGFbMjg4KygwfGFbMTYrKDB8YVsoMj09KDB8KGdlPTMmYVtjPj4yXSkpP2M6bSkrNDA+PjJdKT4+Ml0pPj4yXSxtPTB8YVsyODgrKDB8YVsxNisoMHxhWygzPT0oMHxnZSk/Yzp3KSs0MD4+Ml0pPj4yXSk+PjJdKTooQT0tMTExMSxtPS0xMTExKSxhW2I+PjJdPWFbRD4+Ml0s''@;'; put 'put ''YVtiKzQ+PjJdPWFbRCs0Pj4yXSxhW2IrOD4+Ml09YVtEKzg+PjJdLGFbYisxMj4+Ml09YVtEKzEyPj4yXSxhW2s+PjJdPWFbUj4+Ml0sYVtrKzQ+PjJdPWFbUis0Pj4yXSxhW2srOD4+Ml09YVtSKzg+PjJdLGFbaysxMj4+Ml09YVtSKzEyPj4yXSxmdW5jdGlvbiBEZChsLGMsZixwLG0sQSl7''@;'; put 'put ''bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBiLFIsRyxxLHc9MCxrPTAsTT0wLEQ9MDtmb3IocT1sZSxsZT1sZSszMnwwLGs9cSxhWyhEPXErMTZ8MCk+PjJdPWFbKGN8PTApPj4yXSxhW0QrND4+Ml09YVtjKzQ+PjJdLGFbRCs4Pj4yXT1hW2MrOD4+Ml0sYVtEKzEyPj4yXT1hW2MrMTI+''@;'; put 'put ''PjJdLFI9MHxkXyhsLGYsRCksYVtEPj4yXT1hW3A+PjJdLGFbRCs0Pj4yXT1hW3ArND4+Ml0sYVtEKzg+PjJdPWFbcCs4Pj4yXSxhW0QrMTI+PjJdPWFbcCsxMj4+Ml0sRz0wfGRfKGwsbSxEKSxhW2s+PjJdPWFbYz4+Ml0sYVtrKzQ+PjJdPWFbYys0Pj4yXSxhW2srOD4+Ml09YVtjKzg+PjJd''@;'; put 'put ''LGFbaysxMj4+Ml09YVtjKzEyPj4yXSxhW0Q+PjJdPWFbcD4+Ml0sYVtEKzQ+PjJdPWFbcCs0Pj4yXSxhW0QrOD4+Ml09YVtwKzg+PjJdLGFbRCsxMj4+Ml09YVtwKzEyPj4yXSxEPTB8ZnVuY3Rpb24gYXgobCxjLGYscCxtLEEsdyl7Y3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBiLGss''@;'; put 'put ''TSxEPTA7cmV0dXJuIGs9bGUsbGU9bGUrMzJ8MCxNPWsrMTZ8MCxiPTB8YVs0Kyh3fD0wKT4+Ml0sYVsoRD1rKT4+Ml09YVsobHw9MCk+PjJdLGFbRCs0Pj4yXT1hW2wrND4+Ml0sYVtEKzg+PjJdPWFbbCs4Pj4yXSxhW0QrMTI+PjJdPWFbbCsxMj4+Ml0sYVtNPj4yXT1hW3A+PjJdLGFbTSs0''@;'; put 'put ''Pj4yXT1hW3ArND4+Ml0sYVtNKzg+PjJdPWFbcCs4Pj4yXSxhW00rMTI+PjJdPWFbcCsxMj4+Ml0sMHxmdW5jdGlvbiBnXyhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wO3ZhciBELFIsRyxxLHBlLGdlLGJlLE9lLEE9MCx3PTAsYj0wLGs9MCxNPTA7T2U9bGUsbGU9bGUrNjR8MCxSPU9lKzQ4''@;'; put 'put ''fDAsRD1PZSszMnwwLHE9T2UrMTZ8MCxHPU9lLGdlPTB8YVs0KyhtfD0wKT4+Ml0sYmU9MHxhW20rOD4+Ml0scGU9MHxhW20rMTY+PjJdLEE9KDB8KHB8PTApKTwwO2Rve2lmKCEoKDB8Yyk8MCkpe2lmKEEpe009MHxhW20rMTI+PjJdLG09MCx3PTAsYj1jLGs9TSxjPU0rKGM8PDIpfDAsTT05''@;'; put 'put ''O2JyZWFrfWlmKEE9MHxhW20rMTI+PjJdLCgwfGMpPigwfHApKXttPTB8YVtBKyhwKzE8PDIpPj4yXSx3PTB8YVtBKyhwPDwyKT4+Ml0sYj1jLGs9QSxjPUErKGM8PDIpfDAsTT05O2JyZWFrfW09MHxhW0ErKGMrMTw8Mik+PjJdLHc9MHxhW0ErKGM8PDIpPj4yXSxiPXAsaz1BLGM9QSsocDw8''@;'; put 'put ''Mil8MCxNPTk7YnJlYWt9QT8oQT0wLGI9MCxtPTAsdz0wKTooYz0wfGFbbSsxMj4+Ml0sbT0wLHc9MCxiPXAsaz1jLGM9YysocDw8Mil8MCxNPTkpfXdoaWxlKDApO2Zvcig5PT0oMHxNKSYmKEE9MHxhW2srKGIrMTw8Mik+PjJdLGI9MHxhW2M+PjJdKSxjPTA7Oyl7aWYoKDB8Yyk+PSgwfHcp''@;'; put 'put ''KXtNPTEzO2JyZWFrfWlmKGs9YmUrKGM8PDQpfDAscD1iZSsoYVtwZSsoYzw8Mik+PjJdPDw0KXwwLGFbRz4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLGFbcT4+Ml09YVtmPj4yXSxhW3ErND4+Ml09YVtm''@;'; put 'put ''KzQ+PjJdLGFbcSs4Pj4yXT1hW2YrOD4+Ml0sYVtxKzEyPj4yXT1hW2YrMTI+PjJdLGFbRD4+Ml09YVtrPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4yXT1hW2srMTI+PjJdLGFbUj4+Ml09YVtwPj4yXSxhW1IrND4+Ml09YVtwKzQ+PjJdLGFb''@;'; put 'put ''Uis4Pj4yXT1hW3ArOD4+Ml0sYVtSKzEyPj4yXT1hW3ArMTI+PjJdLDB8QzYoRyxxLEQsUikpe0E9MDticmVha31jPWMrMXwwfWU6ZG97aWYoMTM9PSgwfE0pKXtmb3IoOyEoKDB8bSk+PSgwfGIpKTspe2lmKHA9YmUrKG08PDQpfDAsTT1iZSsoYVtwZSsobTw8Mik+PjJdPDw0KXwwLGFbRz4+''@;'; put 'put ''Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4yXT1hW2wrMTI+PjJdLGFbcT4+Ml09YVtmPj4yXSxhW3ErND4+Ml09YVtmKzQ+PjJdLGFbcSs4Pj4yXT1hW2YrOD4+Ml0sYVtxKzEyPj4yXT1hW2YrMTI+PjJdLGFbRD4+Ml09YVtwPj4y''@;'; put 'put ''XSxhW0QrND4+Ml09YVtwKzQ+PjJdLGFbRCs4Pj4yXT1hW3ArOD4+Ml0sYVtEKzEyPj4yXT1hW3ArMTI+PjJdLGFbUj4+Ml09YVtNPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLDB8QzYoRyxxLEQsUikpe0E9MDticmVh''@;'; put 'put ''ayBlfW09bSsxfDAsTT0xM31mb3IoOzspe2lmKCgwfEEpPj0oMHxnZSkpe0E9MTticmVhayBlfWlmKHA9YmUrKEE8PDQpfDAsTT1iZSsoYVtwZSsoQTw8Mik+PjJdPDw0KXwwLGFbRz4+Ml09YVtsPj4yXSxhW0crND4+Ml09YVtsKzQ+PjJdLGFbRys4Pj4yXT1hW2wrOD4+Ml0sYVtHKzEyPj4y''@;'; put 'put ''XT1hW2wrMTI+PjJdLGFbcT4+Ml09YVtmPj4yXSxhW3ErND4+Ml09YVtmKzQ+PjJdLGFbcSs4Pj4yXT1hW2YrOD4+Ml0sYVtxKzEyPj4yXT1hW2YrMTI+PjJdLGFbRD4+Ml09YVtwPj4yXSxhW0QrND4+Ml09YVtwKzQ+PjJdLGFbRCs4Pj4yXT1hW3ArOD4+Ml0sYVtEKzEyPj4yXT1hW3ArMTI+''@;'; put 'put ''PjJdLGFbUj4+Ml09YVtNPj4yXSxhW1IrND4+Ml09YVtNKzQ+PjJdLGFbUis4Pj4yXT1hW00rOD4+Ml0sYVtSKzEyPj4yXT1hW00rMTI+PjJdLDB8QzYoRyxxLEQsUikpe0E9MDticmVha31BPUErMXwwfX19d2hpbGUoMCk7cmV0dXJuIGxlPU9lLDB8QX0oRCxjLE0sbSx3KT8obD0wfEYwKDgr''@;'; put 'put ''KGI8PDIpfDApLGFbbCsoYjw8Mik+PjJdPUQ9YisxfDAsYVtsKyhEPDwyKT4+Ml09LTEpOihhWyhsPTB8YVt3KzI0Pj4yXSkrKGI8PDIpPj4yXT1BLGFbbCsoKEQ9YisxfDApPDwyKT4+Ml09ZixsPTB8ZnVuY3Rpb24gY18obCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIEQsUixHLG09MCxB''@;'; put 'put ''PTAsdz0wLGI9MCxrPTAsTT0wLHE9MCxwZT0wO2ZvcihEPTB8RjAoKGZ8PTApPDwyKSxHPTgrKFI9MHxGMCg4KyhmPDwzKXwwKSl8MCxtPTA7ISgoMHxtKT49KDB8ZikpOylhW0QrKG08PDIpPj4yXT0tMSxfW0crKG08PDMpPj4zXT0tMjE0NzQ4MzY0NyxtPW0rMXwwO19bUj4+M109LTIxNDc0''@;'; put 'put ''ODM2NDg7ZTpmb3IoOygwfGwpIT0oMHxjKTspZm9yKE09RysobDw8Myl8MCxiPStfW00+PjNdLF9bTT4+M109LTIxNDc0ODM2NDc9PWI/MDotYixrPTAsbT0tMTs7KXtpZigoMHxrKT49KDB8Zikpe2w9bTtjb250aW51ZSBlfShBPStfWyh3PUcrKGs8PDMpfDApPj4zXSk8MCYmKDAhPShxPStf''@;'; put 'put ''WygwfGFbcCsoKChwZT0oMHxsKTwoMHxrKSk/azpsKTw8Mik+PjJdKSsoKHBlP2w6ayk8PDMpPj4zXSkmQTwoYj0tKHErICtfW00+PjNdKSkmJihfW3c+PjNdPWIsYVtEKyhrPDwyKT4+Ml09bCxBPWIpLG09QT4rX1tHKyhtPDwzKT4+M10/azptKSxrPWsrMXwwfXJldHVybiBGdChSKSwwfER9''@;'; put 'put ''KEQsYixiKzJ8MCxsKSksbGU9aywwfGx9KGssZixSLEQsbSxHLGwpLGs9MSsoZj0wfGFbbCs0Pj4yXSl8MCxtPTEsdz1mO009bSsxfDAsKDB8KHc9MHxhW0QrKHc8PDIpPj4yXSkpIT0oMHxrKTspbT1NO2ZvcihiPTB8RjAoTTw8NCksYVsodz1iKyhtPDw0KXwwKT4+Ml09YVtwPj4yXSxhW3cr''@;'; put 'put ''ND4+Ml09YVtwKzQ+PjJdLGFbdys4Pj4yXT1hW3ArOD4+Ml0sYVt3KzEyPj4yXT1hW3ArMTI+PjJdLGw9bCs4fDA7dz1iKygobT1tKy0xfDApPDw0KXwwLCgwfChmPTB8YVtEKyhmPDwyKT4+Ml0pKSE9KDB8ayk7KWFbdz4+Ml09YVsocD0oMHxhW2w+PjJdKSsoZjw8NCl8MCk+PjJdLGFbdys0''@;'; put 'put ''Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml07cmV0dXJuIGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLDB8bSYmUHIoMTQxODA5LDE0MTgxNiwx''@;'; put 'put ''NDgsMTQxODIyKSwwfFImJkZ0KFIpLDB8RyYmRnQoRyksYVtBKzQ+PjJdPU0sYVtBPj4yXT1iLEZ0KEQpLGxlPXEsMX0oZixiLG0sayxBLE0pLHBlPTB8YVsocT1NKSs0Pj4yXSxhWyhnZT1sKT4+Ml09YVtxPj4yXSxhW2dlKzQ+PjJdPXBlLGxlPUd9ZnVuY3Rpb24gQ2sobCxjLGYpe3ZhciBw''@;'; put 'put ''O3A9K19bOCsoZnw9MCk+PjNdKyArX1s4KyhjfD0wKT4+M10sX1sobHw9MCk+PjNdPStfW2Y+PjNdKyArX1tjPj4zXSxfW2wrOD4+M109cH1mdW5jdGlvbiBXTihsLGMsZixwLG0pe2Z8PTAscHw9MCxtfD0wO3ZhciBiLGssTSxELHEscGUsZ2UsYmUsTGUsUixBPTAsdz0wLE9lPTAsUmU9MDtM''@;'; put 'put ''ZT1sZSxsZT1sZSsxNDR8MCxxPUxlKzEwNHwwLHBlPUxlKzg4fDAsUj1MZSs3MnwwLGJlPUxlKzEyOHwwLE09TGUrMzJ8MCxEPUxlKzEyNHwwLE9lPUxlKzE2fDAsZ2U9TGUsYj1MZSsxMjB8MCxBPTB8YVsodz0xNDQrKDB8YVsxNisoY3w9MCk+PjJdKXwwKT4+Ml0sdz0wfGFbdys0Pj4yXSxh''@;'; put 'put ''WyhSZT1rPUxlKzY0fDApPj4yXT1BLGFbUmUrND4+Ml09dyxhW09lPj4yXT1hWyhSZT1BKT4+Ml0sYVtPZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbT2UrOD4+Ml09YVtSZSs4Pj4yXSxhW09lKzEyPj4yXT1hW1JlKzEyPj4yXSxhW2dlPj4yXT1hWyh3PUErKHcrLTE8PDQpfDApPj4yXSxhW2dlKzQ+''@;'; put 'put ''PjJdPWFbdys0Pj4yXSxhW2dlKzg+PjJdPWFbdys4Pj4yXSxhW2dlKzEyPj4yXT1hW3crMTI+PjJdO2U6ZG97aWYobTw8MjQ+PjI0KWZvcihBPS0xMTExLG09LTExMTEsdz0wOzspe2lmKCgwfHcpPj0oMHxwKSlicmVhayBlOy0xMTExPT0oMHxtKSYmKGFbcGU+PjJdPWFbKG09MHxhW2YrKHc8''@;'; put 'put ''PDIpPj4yXSk+PjJdLGFbcGUrND4+Ml09YVttKzQ+PjJdLGFbcT4+Ml09YVtPZT4+Ml0sYVtxKzQ+PjJdPWFbT2UrND4+Ml0sYVtxKzg+PjJdPWFbT2UrOD4+Ml0sYVtxKzEyPj4yXT1hW09lKzEyPj4yXSxtPShtPTA9PSgwfF82KHBlLHEpKSk/LTExMTE6dyksLTExMTE9PSgwfEEpJiYoYVtw''@;'; put 'put ''ZT4+Ml09YVsoQT0wfGFbZisodzw8Mik+PjJdKT4+Ml0sYVtwZSs0Pj4yXT1hW0ErND4+Ml0sYVtxPj4yXT1hW2dlPj4yXSxhW3ErND4+Ml09YVtnZSs0Pj4yXSxhW3ErOD4+Ml09YVtnZSs4Pj4yXSxhW3ErMTI+PjJdPWFbZ2UrMTI+PjJdLEE9KEE9MD09KDB8XzYocGUscSkpKT8tMTExMTp3''@;'; put 'put ''KSx3PXcrMXwwfWVsc2UgQT0tMTExMSxtPS0xMTExfXdoaWxlKDApOyhmdW5jdGlvbiBhc2UobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBxLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxwZT0wLGdlPTA7Zm9yKGI9MCx3PTA7ISgoMHxiKT49KDB8''@;'; put 'put ''YykpOykoMHxiKT09KDB8Zil8KDB8Yik9PSgwfHApfHwodz0oMHxhWzQrKDB8YVtsKyhiPDwyKT4+Ml0pPj4yXSkrd3wwKSxiPWIrMXwwO2ZvcihxPTB8UW4odzw8NSksYj0wLEc9MDshKCgwfEcpPj0oMHxjKSk7KXtlOmRve2lmKCEoKDB8Ryk9PSgwfGYpfCgwfEcpPT0oMHxwKSkpZm9yKFI9''@;'; put 'put ''bCsoRzw8Mil8MCxEPTA7Oyl7aWYoKDB8RCk+PSgwfChNPTB8YVs0KyhrPTB8YVtSPj4yXSk+PjJdKSkpYnJlYWsgZTtwZT1EKzF8MCxhWyhnZT1xKyhiPDw1KXwwKT4+Ml09YVsoaz0oMHxhW2s+PjJdKSsoRDw8NCl8MCk+PjJdLGFbZ2UrND4+Ml09YVtrKzQ+PjJdLGFbZ2UrOD4+Ml09YVtr''@;'; put 'put ''Kzg+PjJdLGFbZ2UrMTI+PjJdPWFbaysxMj4+Ml0sYVsoaz1xKyhiPDw1KSsxNnwwKT4+Ml09YVsoTT0oMHxhW2FbUj4+Ml0+PjJdKSsoKCgwfHBlKTwoMHxNKT9wZTowKTw8NCl8MCk+PjJdLGFbays0Pj4yXT1hW00rND4+Ml0sYVtrKzg+PjJdPWFbTSs4Pj4yXSxhW2srMTI+PjJdPWFbTSsx''@;'; put 'put ''Mj4+Ml0sRD1wZSxiPWIrMXwwfX13aGlsZSgwKTtHPUcrMXwwfWlmKCgwfGIpPT0oMHx3KSlyZXR1cm4gYVttPj4yXT1xLHZvaWQoYVtBPj4yXT13KTtQcig4OTcxOSw4OTcyNiw3Nyw4OTc0MSl9KShmLHAsbSxBLGIsRCksYVtNPj4yXT0wLGFbTSs0Pj4yXT0wLGFbTSs4Pj4yXT0wLGFbTSsx''@;'; put 'put ''Mj4+Ml09MCxhW00rMTY+PjJdPTAsYVtNKzIwPj4yXT0wLGFbTSsyND4+Ml09MCxhW00rMjg+PjJdPTAsdz0wfGFbYj4+Ml0sUmU9MHxhW0Q+PjJdLGFbcT4+Ml09YVtrPj4yXSxhW3ErND4+Ml09YVtrKzQ+PjJdLCgwfGVBKHcsUmUscSxNLGJlKSk8MD8oT2U9MHx0aSgwfGFbKDM9PSgzJmFb''@;'; put 'put ''Yz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSksUmU9MHx0aSgwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pLGFbUj4+Ml09T2UsYVtSKzQ+PjJdPVJlLCRyKDEsODk2NTcsUikpOihtPWMrLTQ4fDAsQXUoYywwfGFbKDI9PSgzJmFbKEE9Yyk+PjJdfDApP2M6bSkrNDA+''@;'; put 'put ''PjJdLDB8YVtiZT4+Ml0sMHxhW2JlKzQ+PjJdLDE3NzkyKSxGdCh3KSxhW3BlPj4yXT1hW09lPj4yXSxhW3BlKzQ+PjJdPWFbT2UrND4+Ml0sYVtwZSs4Pj4yXT1hW09lKzg+PjJdLGFbcGUrMTI+PjJdPWFbT2UrMTI+PjJdLGFbcT4+Ml09YVtnZT4+Ml0sYVtxKzQ+PjJdPWFbZ2UrND4+Ml0s''@;'; put 'put ''YVtxKzg+PjJdPWFbZ2UrOD4+Ml0sYVtxKzEyPj4yXT1hW2dlKzEyPj4yXSx0ZygwLGMpKSxsZT1MZX1mdW5jdGlvbiBQSihsLGMsZil7Y3w9MCxmfD0wO3ZhciBBLGssRCxwPTAsbT0wLHc9MCxiPTAsTT0wLFI9MCxHPTA7Zm9yKEQ9bGUsbGU9bGUrMzJ8MCxrPUQrMTJ8MCxmdW5jdGlvbiBE''@;'; put 'put ''WChsLGMpe2x8PTA7dmFyIGYsbSx3LHA9MDt3PWxlLGxlPWxlKzQ4fDAsbT13KzI0fDAsMCE9KDB8KGY9MHxMaShjfD0wLDkzMTE2KSkpJiYwIT0oMHxMayhmLG0sMSwwKSl8fChwPTMpO2Rve2lmKDM9PSgwfHApKXtpZigwfChjPTB8TGkoYyw5MzExMikpJiYwfExrKGMsbSwxLjI1LDMuMjAw''@;'; put 'put ''MDAwMDQ3NjgzNzE2KSlicmVhaztqblttKzQ+PjJdPTMuMjAwMDAwMDQ3NjgzNzE2LGpuW20+PjJdPTMuMjAwMDAwMDQ3NjgzNzE2LGZlW20rOD4+MF09MX19d2hpbGUoMCk7YVtsPj4yXT1hW20+PjJdLGFbbCs0Pj4yXT1hW20rND4+Ml0sYVtsKzg+PjJdPWFbbSs4Pj4yXSxsZT13fShwPUQs''@;'; put 'put ''bHw9MCksYVtrPj4yXT1hW3A+PjJdLGFbays0Pj4yXT1hW3ArND4+Ml0sYVtrKzg+PjJdPWFbcCs4Pj4yXSxwPTB8RHQobCk7cDspe2ZvcihtPTB8dzAobCxwKTttOylpbGUobSksbT0wfFMwKGwsbSk7cD0wfHp0KGwscCl9Zm9yKEE9MHxpcygxNzc1NiwwfGFbNDU4MV0pLHA9MHxEdChsKTtw''@;'; put 'put ''Oyl7Zm9yKG09MHx3MChsLHApO207KSgwfGFbNDcxMzRdKT4xJiYwIT0oMHxhWzgrKHc9MHxhW20rMTY+PjJdKT4+Ml0pP2l0WyhSPXcrMTY4fDApPj4xXT0xKygwfGl0W1I+PjFdKTw8MTY+PjE2Ok09MTQsMTQ9PSgwfE0pJiYoTT0wLCgwfChiPTB8WU4oQSxtKSkpIT0oMHxtKSkmJihpdFso''@;'; put 'put ''Rz0xNjgrKFI9MHxhW2IrMTY+PjJdKXwwKT4+MV09MSsoMHxpdFtHPj4xXSk8PDE2Pj4xNixhWzE3MisoMHxhW20rMTY+PjJdKT4+Ml09YVsoUj1SKzE3MnwwKT4+Ml0sYVtSPj4yXT1tKSxtPTB8UzAobCxtKTtwPTB8enQobCxwKX1yZXR1cm4gTmwoQSksMHxtaVs2MyZjXShsLGssZik/cD0x''@;'; put 'put ''OihhWzQ3MTM4XT0xLHA9MCksbGU9RCwwfHB9ZnVuY3Rpb24gWU4obCxjKXtsfD0wO3ZhciB3LHEsZj0wLHA9MCxtPTAsQT0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO3E9bGUsbGU9bGUrNjR8MCxHPXEsdz0wfGFbKDM9PSgwfChwPTMmYVsoY3w9MCk+PjJdKSk/YzpjKzQ4fDApKzQwPj4y''@;'; put 'put ''XSxwPTB8YVsoMj09KDB8cCk/YzpjKy00OHwwKSs0MD4+Ml07ZG97aWYodz4+PjA+PXA+Pj4wKXtpZihmPWMrMTZ8MCx3Pj4+MD5wPj4+MCl7Uj1wLHA9dyxrPStfWzE2KyhmPTB8YVtmPj4yXSk+PjNdLE09K19bZisyND4+M10sQT0rX1tmKzU2Pj4zXSxtPStfW2YrNjQ+PjNdO2JyZWFrfUQ9''@;'; put 'put ''K19bNjQrKFI9MHxhW2Y+PjJdKT4+M10sbT0rX1tSKzI0Pj4zXSwoQT0rX1tSKzE2Pj4zXSk8KGI9K19bUis1Nj4+M10pPyhSPXcscD13LGs9YixNPUQpOkE+Yj8oUj13LHA9dyxrPUEsTT1tLEE9YixtPUQpOihmPW0+RCxtPEQ/KFI9dyxwPXcsaz1iLE09RCk6KFI9dyxwPXcsaz1BLE09bSxB''@;'; put 'put ''PWY/YjpBLG09Zj9EOm0pKX1lbHNlIFI9dyxrPStfWzU2KyhmPTB8YVtjKzE2Pj4yXSk+PjNdLE09K19bZis2ND4+M10sQT0rX1tmKzE2Pj4zXSxtPStfW2YrMjQ+PjNdfXdoaWxlKDApO3JldHVybiBhW0crOD4+Ml09UixfW0crMTY+PjNdPUEsX1tHKzI0Pj4zXT1tLGFbRyszMj4+Ml09cCxf''@;'; put 'put ''W0crNDA+PjNdPWssX1tHKzQ4Pj4zXT1NLGFbRys1Nj4+Ml09YyxHPTB8YVs1NisoMHxtaVs2MyZhW2w+PjJdXShsLEcsMSkpPj4yXSxsZT1xLDB8R31mdW5jdGlvbiBrRChsLGMpe3JldHVybiAwfFBKKGx8PTAsMjEsY3w9MCl9ZnVuY3Rpb24gSEoobCxjKXt2YXIgbSxBLHcsYixrLE0sZixS''@;'; put 'put ''LHA9MCxEPTAsRz0wO009bGUsbGU9bGUrOTZ8MCxBPU0rNjR8MCxtPU0rNDh8MCx3PU0rODB8MCxiPU0rMTZ8MCxrPU0sUj0wfGFbKEQ9MTQ0KygwfGFbMTYrKGN8PTApPj4yXSl8MCk+PjJdLEQ9MHxhW0QrND4+Ml0sYVsoRz1wPU0rMzJ8MCk+PjJdPVIsYVtHKzQ+PjJdPUQsYVtiPj4yXT1h''@;'; put 'put ''WyhHPVIpPj4yXSxhW2IrND4+Ml09YVtHKzQ+PjJdLGFbYis4Pj4yXT1hW0crOD4+Ml0sYVtiKzEyPj4yXT1hW0crMTI+PjJdLGFbaz4+Ml09YVsoRD1SKyhEKy0xPDw0KXwwKT4+Ml0sYVtrKzQ+PjJdPWFbRCs0Pj4yXSxhW2srOD4+Ml09YVtEKzg+PjJdLGFbaysxMj4+Ml09YVtEKzEyPj4y''@;'; put 'put ''XSxhW0E+PjJdPWFbcD4+Ml0sYVtBKzQ+PjJdPWFbcCs0Pj4yXSxPZChBLHcpLGY9YystNDh8MCxBdShjLDB8YVsoMj09KDMmYVsocD1jKT4+Ml18MCk/YzpmKSs0MD4+Ml0sMHxhW3c+PjJdLDB8YVt3KzQ+PjJdLDE3NzkyKSxhW20+PjJdPWFbYj4+Ml0sYVttKzQ+PjJdPWFbYis0Pj4yXSxh''@;'; put 'put ''W20rOD4+Ml09YVtiKzg+PjJdLGFbbSsxMj4+Ml09YVtiKzEyPj4yXSxhW0E+PjJdPWFbaz4+Ml0sYVtBKzQ+PjJdPWFbays0Pj4yXSxhW0ErOD4+Ml09YVtrKzg+PjJdLGFbQSsxMj4+Ml09YVtrKzEyPj4yXSx0ZygwLGMpLGxlPU19ZnVuY3Rpb24gU0QobCxjKXt2YXIgZjtmPTE0Jml0WzEz''@;'; put 'put ''NisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4xXSwoY3w9MCk8PDI0Pj4yNCYmVU4obCksZjw8MTY+PjE2JiZrRChsLDY1NTM1JmYpfWZ1bmN0aW9uIFVOKGwpe3ZhciBmLGM9MCxwPTAsbT0wO2ZvcihmPTB8ZnVuY3Rpb24gUU4obCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0w''@;'; put 'put ''LGs9MDtlOmRve2lmKCgwfGFbbCs2MD4+Ml0pPT0oMHxsKSYmKGY9bCsxNnwwLHA9MHxhW2Y+PjJdLDAhPSgwfGFbODQrKDB8YVtwKzg+PjJdKT4+Ml0pKSl7MD09K19bcCsxNj4+M10mJjA9PStfW3ArMjQ+PjNdP2M9MDooTkoobCksYz0xLHA9MHxhW2Y+PjJdKSwoYj0wPT0oMSZhW3ArMTE2''@;'; put 'put ''Pj4yXXwwKSl8fCh3PStfWyhrPXArMzJ8MCk+PjNdLF9baz4+M109K19bKGY9cCs0MHwwKT4+M10sX1tmPj4zXT13KSxmPTB8YVtwKzg+PjJdO3Q6ZG97c3dpdGNoKDB8YVtmKzg0Pj4yXSl7Y2FzZSAyOmlmKChtPStfW2YrNjQ+PjNdKTw9MClicmVhayBlO2lmKChBPW0vK19bcCszMj4+M10p''@;'; put 'put ''PDF8KG09K19bZis3Mj4+M10vK19bcCs0MD4+M10pPDEpe2lmKEE8bSl7dz0xLG0vPUE7YnJlYWsgdH13PUEvbSxtPTE7YnJlYWsgdH13PUE7YnJlYWs7Y2FzZSA1OmlmKChtPStfW2YrNjQ+PjNdKTw9MHx8ISgoQT1tLytfW3ArMzI+PjNdKT4xJihtPStfW2YrNzI+PjNdLytfW3ArNDA+PjNd''@;'; put 'put ''KT4xKSlicmVhayBlO3c9bT1BPG0/QTptO2JyZWFrO2Nhc2UgMTppZigobT0rX1twKzQwPj4zXS8rX1twKzMyPj4zXSk8KEE9K19bZisxNj4+M10pKXt3PTEsbT1BL207YnJlYWsgdH13PW0vQSxtPTE7YnJlYWsgdDtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApO0E9Yj9tOncsbT1iP3c6bTt0''@;'; put 'put ''OmRve2lmKCgwfGFbNDcxMzRdKT4xKWZvcihmPTB8RHQobCk7Oyl7aWYoIWYpYnJlYWsgdDtmb3IoYz0wfHcwKGwsZik7YzspMHxhWzgrKDB8YVtjKzE2Pj4yXSk+PjJdJiZWSihjLG0sQSksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fXdoaWxlKDApO2ZvcihjPTB8RHQobCk7YzspX1soaz0w''@;'; put 'put ''fGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW2s+PjNdKm0sX1soaz1rKzh8MCk+PjNdPStfW2s+PjNdKkEsYz0wfHp0KGwsYyk7Sk4obCxtLEEpLGM9MX1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gMHxjfShsfD0wKSxjPTB8RHQobCk7YzspX1sxNisocD0wfGFbYysxNj4+Ml0p''@;'; put 'put ''Pj4zXT03MiorX1sobT0wfGFbcCsxMzI+PjJdKT4+M10sX1twKzI0Pj4zXT03MiorX1ttKzg+PjNdLGM9MHx6dChsLGMpO3JldHVybiAwfGZ9ZnVuY3Rpb24gTkoobCl7dmFyIHAsbSxBLHcsYixrLE0sYz0wLGY9MCxEPTA7Zm9yKE09bGUsbGU9bGUrMzJ8MCxiPU0rMTZ8MCxhWyhrPU0pPj4y''@;'; put 'put ''XT1hWyhjPTE2KygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdLGFbays0Pj4yXT1hW2MrND4+Ml0sYVtrKzg+PjJdPWFbYys4Pj4yXSxhW2srMTI+PjJdPWFbYysxMj4+Ml0sbT0uMDEzODg4ODg4ODg4ODg4ODg4KihwPStfW2s+PjNdKSx3PS4wMTM4ODg4ODg4ODg4ODg4ODgqKEE9K19bays4''@;'; put 'put ''Pj4zXSksYz0wfER0KGwpO2M7KV9bKEQ9MHxhWzEzMisoZj0wfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW0Q+PjNdLW0sX1soRD1EKzh8MCk+PjNdPStfW0Q+PjNdLXcsMHwoZj0wfGFbZisxMDg+PjJdKSYmMHxmZVtmKzgxPj4wXSYmKF9bKEQ9Zis1NnwwKT4+M109K19bRD4+M10tcCxfWyhE''@;'; put 'put ''PWYrNjR8MCk+PjNdPStfW0Q+PjNdLUEpLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOykwfGFbOCsoMHxhW2MrMTY+PjJdKT4+Ml0mJihhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+''@;'; put 'put ''Ml09YVtrKzEyPj4yXSxYTihjLGIpKSxjPTB8UzAobCxjKTtmPTB8enQobCxmKX1hW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4yXSxqSihsLGIpLGxlPU19ZnVuY3Rpb24gVkoobCxjLGYpe3ZhciB3LGIs''@;'; put 'put ''cSxwZSxwPTAsbT0wLEE9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLGdlPTAsYmU9MCxPZT0wO2ZvcihxPShnZT03MiooKGM9K2MpLTEpKSorX1soQT0wfGFbMTMyKygwfGFbMTYrKDB8YVsoMj09KDB8KEc9MyZhWyhsfD0wKT4+Ml0pKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4zXSxw''@;'; put 'put ''ZT0oYmU9NzIqKChmPStmKS0xKSkqK19bQSs4Pj4zXSxnZSo9K19bKEc9MHxhWzEzMisoMHxhWzE2KygwfGFbKDM9PSgwfEcpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKT4+M10sYmUqPStfW0crOD4+M10sYj0odz0wfGFbNCsoQT0wfGFbOCsoRz0wfGFbbCsxNj4+Ml0pPj4yXSk+PjJd''@;'; put 'put ''KS0xfDAsbD0wLEE9MHxhW0E+PjJdOyEoKDB8bCk+PSgwfHcpKTspe2ZvcihNPShrPTB8YVtBKzQ+PjJdKS0xfDAsRD0oMHxsKT09KDB8YikscD0wLG09MHxhW0E+PjJdOyEoKDB8cCk+PSgwfGspKTspe2Rve2lmKHB8bCl7aWYoUj0rX1ttPj4zXSwoMHxwKT09KDB8TSkmRCl7X1ttPj4zXT1S''@;'; put 'put ''K3EsX1soT2U9bSs4fDApPj4zXT0rX1tPZT4+M10rcGU7YnJlYWt9X1ttPj4zXT1SKmMsX1soT2U9bSs4fDApPj4zXT0rX1tPZT4+M10qZjticmVha31fW20+PjNdPStfW20+PjNdK2dlLF9bKE9lPW0rOHwwKT4+M109K19bT2U+PjNdK2JlfXdoaWxlKDApO3A9cCsxfDAsbT1tKzE2fDB9MHxh''@;'; put 'put ''W0ErOD4+Ml0mJihfWyhPZT1BKzE2fDApPj4zXT0rX1tPZT4+M10rZ2UsX1soT2U9QSsyNHwwKT4+M109K19bT2U+PjNdK2JlKSwwfGFbQSsxMj4+Ml0mJihfWyhPZT1BKzMyfDApPj4zXT0rX1tPZT4+M10rcSxfWyhPZT1BKzQwfDApPj4zXT0rX1tPZT4+M10rcGUpLGw9bCsxfDAsQT1BKzQ4''@;'; put 'put ''fDB9MHwobD0wfGFbRys5Nj4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soT2U9bCs1NnwwKT4+M109K19bT2U+PjNdKmMsX1soT2U9bCs2NHwwKT4+M109K19bT2U+PjNdKmYpLDB8KGw9MHxhW0crMTAwPj4yXSkmJjB8ZmVbbCs4MT4+MF0mJihfWyhPZT1sKzU2fDApPj4zXT0rX1tPZT4+M10r''@;'; put 'put ''cSxfWyhPZT1sKzY0fDApPj4zXT0rX1tPZT4+M10rcGUpLDB8KGw9MHxhW0crMTA0Pj4yXSkmJjB8ZmVbbCs4MT4+MF0mJihfWyhPZT1sKzU2fDApPj4zXT0rX1tPZT4+M10rZ2UsX1soT2U9bCs2NHwwKT4+M109K19bT2U+PjNdK2JlKX1mdW5jdGlvbiBKTihsLGMsZil7Zj0rZjt2YXIgbSxB''@;'; put 'put ''LHA9MDtmb3IoX1sobD0zMisobT0wfGFbKEE9MTYrKGx8PTApfDApPj4yXSl8MCk+PjNdPStfW2w+PjNdKihjPStjKSxfWyhsPW0rNDB8MCk+PjNdPStfW2w+PjNdKmYsX1sobD1tKzE2fDApPj4zXT0rX1tsPj4zXSpjLF9bKGw9bSsyNHwwKT4+M109K19bbD4+M10qZiwwIT0oMHwobD0wfGFb''@;'; put 'put ''bSsxMj4+Ml0pKSYmMCE9KDB8ZmVbbCs4MT4+MF0pPyhfWyhwPWwrNTZ8MCk+PjNdPStfW3A+PjNdKmMsX1socD1sKzY0fDApPj4zXT0rX1twPj4zXSpmLHA9MSxsPW0pOihwPTEsbD1tKTshKCgwfHApPigwfGFbbCsxODA+PjJdKSk7KUpOKDB8YVsoMHxhW2wrMTg0Pj4yXSkrKHA8PDIpPj4y''@;'; put 'put ''XSxjLGYpLHA9cCsxfDAsbD0wfGFbQT4+Ml19ZnVuY3Rpb24gWE4obCxjKXt2YXIgdyxiLGssZj0wLHA9MCxtPTAsQT0wLE09MDtmb3Iodz0wfGFbNCsobD0wfGFbOCsoYj0wfGFbMTYrKGx8PTApPj4yXSk+PjJdKT4+Ml0saz04KyhjfD0wKXwwLGw9MHxhW2w+PjJdLG09MDshKCgwfG0pPj0o''@;'; put 'put ''MHx3KSk7KXtmb3IoQT0wfGFbbCs0Pj4yXSxmPTB8YVtsPj4yXSxwPTA7ISgoMHxwKT49KDB8QSkpOylfW2Y+PjNdPStfW2Y+PjNdLStfW2M+PjNdLF9bKE09Zis4fDApPj4zXT0rX1tNPj4zXS0rX1trPj4zXSxmPWYrMTZ8MCxwPXArMXwwOzB8YVtsKzg+PjJdJiYoX1soTT1sKzE2fDApPj4z''@;'; put 'put ''XT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrMjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSwwfGFbbCsxMj4+Ml0mJihfWyhNPWwrMzJ8MCk+PjNdPStfW00+PjNdLStfW2M+PjNdLF9bKE09bCs0MHwwKT4+M109K19bTT4+M10tK19baz4+M10pLGw9bCs0OHwwLG09bSsxfDB9MHwobD0w''@;'; put 'put ''fGFbYis5Nj4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSwwfChsPTB8YVtiKzEwOD4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0r''@;'; put 'put ''X1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSwwfChsPTB8YVtiKzEwMD4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKSwwfChsPTB8YVtiKzEw''@;'; put 'put ''ND4+Ml0pJiYwfGZlW2wrODE+PjBdJiYoX1soTT1sKzU2fDApPj4zXT0rX1tNPj4zXS0rX1tjPj4zXSxfWyhNPWwrNjR8MCk+PjNdPStfW00+PjNdLStfW2s+PjNdKX1mdW5jdGlvbiBqSihsLGMpe3ZhciBwLG0sQSx3LGIsZj0wLGs9MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9YixfWyhmPTMy''@;'; put 'put ''KyhsPTB8YVsoQT0xNisobHw9MCl8MCk+PjJdKXwwKT4+M109K19bZj4+M10tKG09K19bKGN8PTApPj4zXSksX1soZj1sKzQwfDApPj4zXT0rX1tmPj4zXS0ocD0rX1tjKzg+PjNdKSxfWyhmPWwrMTZ8MCk+PjNdPStfW2Y+PjNdLW0sX1soZj1sKzI0fDApPj4zXT0rX1tmPj4zXS1wLDAhPSgw''@;'; put 'put ''fChmPTB8YVtsKzEyPj4yXSkpJiYwIT0oMHxmZVtmKzgxPj4wXSkmJihfWyhrPWYrNTZ8MCk+PjNdPStfW2s+PjNdLW0sX1soZj1mKzY0fDApPj4zXT0rX1tmPj4zXS1wKSxmPTE7ISgoMHxmKT4oMHxhW2wrMTgwPj4yXSkpOylrPTB8YVsoMHxhW2wrMTg0Pj4yXSkrKGY8PDIpPj4yXSxhW3c+''@;'; put 'put ''PjJdPWFbYz4+Ml0sYVt3KzQ+PjJdPWFbYys0Pj4yXSxhW3crOD4+Ml09YVtjKzg+PjJdLGFbdysxMj4+Ml09YVtjKzEyPj4yXSxqSihrLHcpLGY9ZisxfDAsbD0wfGFbQT4+Ml07bGU9Yn1mdW5jdGlvbiBLNihsKXt2YXIgZixwLG0sQSx3LGM9MCxiPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxm''@;'; put 'put ''PXcsaWcobHw9MCksbT0uMDEzODg4ODg4ODg4ODg4ODg4KitfWzE2KyhjPTB8YVsocD1sKzE2fDApPj4yXSk+PjNdLEE9LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tjKzI0Pj4zXSxjPTB8RHQobCk7YzspX1soYj0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW2I+PjNdLW0sX1so''@;'; put 'put ''Yj1iKzh8MCk+PjNdPStfW2I+PjNdLUEsYz0wfHp0KGwsYyk7YVtmPj4yXT1hWyhiPTE2KygwfGFbcD4+Ml0pfDApPj4yXSxhW2YrND4+Ml09YVtiKzQ+PjJdLGFbZis4Pj4yXT1hW2IrOD4+Ml0sYVtmKzEyPj4yXT1hW2IrMTI+PjJdLFpKKGwsZiksU0QobCwxKSxsZT13fWZ1bmN0aW9uIFpK''@;'; put 'put ''KGwsYyl7Y3w9MDt2YXIgZixBLHcsYixwPTAsbT0wO2ZvcihBPWxlLGxlPWxlKzE2fDAsbT1BLGY9MTYrKGx8PTApfDAsbD0xOyEoKDB8bCk+KDB8YVsxODArKHA9MHxhW2Y+PjJdKT4+Ml0pKTspcD0wfGFbKDB8YVtwKzE4ND4+Ml0pKyhsPDwyKT4+Ml0sYVttPj4yXT1hW2M+PjJdLGFbbSs0''@;'; put 'put ''Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sWkoocCxtKSxsPWwrMXwwO19bKG09cCszMnwwKT4+M109K19bbT4+M10tKGI9K19bYz4+M10pLHc9K19bYys4Pj4zXSxfWyhjPXArNDB8MCk+PjNdPStfW2M+PjNdLXcsX1soYz1wKzE2fDAp''@;'; put 'put ''Pj4zXT0rX1tjPj4zXS1iLF9bKGM9cCsyNHwwKT4+M109K19bYz4+M10tdyxsZT1BfWZ1bmN0aW9uIEtOKGwsYyxmLHAsbSl7bHw9MCxjfD0wLG18PTA7dmFyIEcsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLHE9MDtmb3IoRz0oMHwoZnw9MCkpPjIsRD0wLFI9MCx3PTB8YVs0KyhwfD0w''@;'; put 'put ''KT4+Ml0sbD0wfGFbcD4+Ml07Oyl7aWYoKDB8Uik+PSgwfGMpKXtsPTA7YnJlYWt9az0wfGZlWzExOSsoQT0wfGFbMTYrKDB8YVttKyhSPDwyKT4+Ml0pPj4yXSk+PjBdO2U6ZG97aWYoazw8MjQ+PjI0KXtNPWwrOHwwLF9bbD4+M109K19bKGI9MHxhW0ErMTMyPj4yXSk+PjNdLEE9dys4fDAs''@;'; put 'put ''X1t3Pj4zXT0rX1tiKzg+PjNdO3Q6ZG97aWYoRylmb3Iodz0yLGw9YisxNnwwOzspe2lmKCgwfHcpPT0oMHxmKSlicmVhayB0O19bKDB8YVtwKyh3PDwyKT4+Ml0pKyhSPDwzKT4+M109K19bbD4+M10sdz13KzF8MCxsPWwrOHwwfX13aGlsZSgwKTt3PSgyNTUmayk+MT8xOkQsbD1NfWVsc2Ug''@;'; put 'put ''aWYoYj1sKzh8MCxfW2w+PjNdPStxYygpLEE9dys4fDAsX1t3Pj4zXT0rcWMoKSxHKWZvcihsPTI7Oyl7aWYoKDB8bCk9PSgwfGYpKXt3PUQsbD1iO2JyZWFrIGV9cT0rcWMoKSxfWygwfGFbcCsobDw8Mik+PjJdKSsoUjw8Myk+PjNdPXEsbD1sKzF8MH1lbHNlIHc9RCxsPWJ9d2hpbGUoMCk7''@;'; put 'put ''RD13LFI9UisxfDAsdz1BfWZvcig7ISgoMHxsKT49KDB8ZikpOylhOChjLDB8YVtwKyhsPDwyKT4+Ml0pLGw9bCsxfDA7cmV0dXJuIDB8RH1mdW5jdGlvbiBJeShsLGMpe2x8PTA7dmFyIEQsUixmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEc9MDtmPTB8dnIoKCgwfEFyKDErKGN8''@;'; put 'put ''PTApfDAsYykpLzJ8MCk8PDIpLEQ9MHxjZyhjLGMsMCksUj0wfGNnKGMsYywwKTtlOmRve2lmKDB8YVtsKzg+PjJdKWZvcihwPTA7Oyl7aWYoKDB8cCk+PSgwfGMpKWJyZWFrIGU7Zm9yKEE9MHxhW2wrKDIwKnB8MCk+PjJdLHc9bCsoMjAqcHwwKSs0fDAsYj1sKygyMCpwfDApKzh8MCxNPUQr''@;'; put 'put ''KHA8PDIpfDAsbT0xOyEoKDB8bSk+PSgwfEEpKTspX1soMHxhW0QrKChHPTB8YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKTw8Mik+PjJdKSsocDw8Myk+PjNdPWs9LTEvK2puWygwfGFbYj4+Ml0pKyhtPDwyKT4+Ml0sX1soMHxhW00+PjJdKSsoRzw8Myk+PjNdPWssbT1tKzF8MDtwPXArMXww''@;'; put 'put ''fWVsc2UgZm9yKHA9MDs7KXtpZigoMHxwKT49KDB8YykpYnJlYWsgZTtmb3IoQT0wfGFbbCsoMjAqcHwwKT4+Ml0sdz1sKygyMCpwfDApKzR8MCxiPUQrKHA8PDIpfDAsbT0xOyEoKDB8bSk+PSgwfEEpKTspX1soMHxhW0QrKChNPTB8YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKTw8Mik+PjJd''@;'; put 'put ''KSsocDw8Myk+PjNdPS0xLF9bKDB8YVtiPj4yXSkrKE08PDMpPj4zXT0tMSxtPW0rMXwwO3A9cCsxfDB9fXdoaWxlKDApO2U6ZG97aWYoMHxrVihjLEQsUikpZm9yKG09MCx3PTAsTT1jOzspe2lmKCgwfHcpPj0oMHxjKSlicmVhayBlO2ZvcihiPVIrKHc8PDIpfDAscD13LEE9bTsoMHxwKSE9''@;'; put 'put ''KDB8Yyk7KWs9KDB8dyk9PSgwfHApPzA6K19bKDB8YVtSKyhwPDwyKT4+Ml0pKyhwPDwzKT4+M10rICtfWyhHPTB8YVtiPj4yXSkrKHc8PDMpPj4zXSstMiorX1tHKyhwPDwzKT4+M10sam5bZisoQTw8Mik+PjJdPWsscD1wKzF8MCxBPUErMXwwO209bStNfDAsdz13KzF8MCxNPU0rLTF8MH1l''@;'; put 'put ''bHNlIEZ0KGYpLGY9MH13aGlsZSgwKTtyZXR1cm4gQjcoRCksQjcoUiksMHxmfWZ1bmN0aW9uICQ2KGwsYyl7Y3w9MDt2YXIgcSxmPTAscD0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxwZT0wO2lmKHE9bGUsbGU9bGUrMTZ8MCwwfGFbOCsobHw9MCk+PjJdKWZvcihmPTB8a2sobCxj''@;'; put 'put ''KSxwPTAsUj0wOyEoKDB8Uik+PSgwfGMpKTspe2ZvcihwPXArUnwwLEQ9MHxhW2wrKDIwKlJ8MCk+PjJdLGI9bCsoMjAqUnwwKSs0fDAsaz0oMHxBcihSLGMpKS1wfDAsTT1sKygyMCpSfDApKzh8MCx3PTE7ISgoMHx3KT49KDB8RCkpOykoMHwoQT0wfGFbKDB8YVtiPj4yXSkrKHc8PDIpPj4y''@;'; put 'put ''XSkpPj0oMHxSKSYmKGVvKCsoK2puWyhBPWYrKGsrQTw8Mil8MCk+PjJdLShwZT0ram5bKDB8YVtNPj4yXSkrKHc8PDIpPj4yXSkpKSxqbltBPj4yXT1wZSksdz13KzF8MDtSPVIrMXwwfWVsc2UgZj0wO3JldHVybiBsZT1xLDB8Zn1mdW5jdGlvbiBrayhsLGMpe2x8PTA7dmFyIHcsYixrLEQs''@;'; put 'put ''Zj0wLHA9MCxtPTAsQT0wLE09MDtmb3IoRD1sZSxsZT1sZSsxNnwwLHc9RCxiPTB8dnIoKCgwfEFyKDErKGN8PTApfDAsYykpLzJ8MCk8PDIpLGs9MHx2cihjPDwyKSxPeSh3LGMpLGY9MCxtPTAsTT1jOyEoKDB8Zik+PSgwfGMpKTspe2ZvcihWRChmLGwsYyxrKSxwPWYsQT1tOygwfHApIT0o''@;'; put 'put ''MHxjKTspYVtiKyhBPDwyKT4+Ml09YVtrKyhwPDwyKT4+Ml0scD1wKzF8MCxBPUErMXwwO2Y9ZisxfDAsbT1tK018MCxNPU0rLTF8MH1yZXR1cm4gRnQoayksQkQodyksbGU9RCwwfGJ9ZnVuY3Rpb24gTUQobCxjKXtsfD0wO3ZhciB3LGIsayxELGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKEQ9''@;'; put 'put ''bGUsbGU9bGUrMTZ8MCx3PUQsYj0wfHZyKCgoMHxBcigxKyhjfD0wKXwwLGMpKS8yfDApPDwyKSxrPTB8dnIoYzw8MiksT3kodyxjKSxmPTAsbT0wLE09YzshKCgwfGYpPj0oMHxjKSk7KXtmb3IocjgoZixsLGMsayx3KSxwPWYsQT1tOygwfHApIT0oMHxjKTspam5bYisoQTw8Mik+PjJdPSso''@;'; put 'put ''MHxhW2srKHA8PDIpPj4yXSkscD1wKzF8MCxBPUErMXwwO2Y9ZisxfDAsbT1tK018MCxNPU0rLTF8MH1yZXR1cm4gRnQoayksQkQodyksbGU9RCwwfGJ9ZnVuY3Rpb24gekoobCxjKXtjfD0wO3ZhciBwZSxnZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9''@;'; put 'put ''MCxiZT0wO2ZvcihmPTB8YVsoZ2U9OCsobHw9MCl8MCk+PjJdLHA9MCxtPTA7ISgoMHxtKT49KDB8YykpOylwPSgwfGFbbCsoMjAqbXwwKT4+Ml0pK3B8MCxtPW0rMXwwO2ZvcihtPTB8dnIocDw8MikscGU9MHx2cihjPDwyKSxwPTA7ISgoMHxwKT49KDB8YykpOylhW3BlKyhwPDwyKT4+Ml09''@;'; put 'put ''MCxwPXArMXwwO2lmKDB8YVtnZT4+Ml0pe2ZvcihiPTA7ISgoMHxiKT49KDB8YykpOyl7Zm9yKE5rKGwsYixwZSksUj1sKygyMCpifDApKzR8MCxHPShEPTB8YVsoaz1sKygyMCpifDApfDApPj4yXSktMnwwLHE9bCsoMjAqYnwwKSs4fDAsdz0xOyEoKDB8dyk+PSgwfEQpKTspYmU9KygoQT1H''@;'; put 'put ''KygwfGFbbCsoMjAqKHA9MHxhWygwfGFbUj4+Ml0pKyh3PDwyKT4+Ml0pfDApPj4yXSl8MCktKCgwfEhrKGwsYixwLHBlKSk8PDEpfDApLChNPStqblsoMHxhW3E+PjJdKSsodzw8Mik+PjJdKTxiZSYmKE09KyhBLSgoMHxIayhsLGIscCxwZSkpPDwxKXwwKSksam5bbSsodzw8Mik+PjJdPU0s''@;'; put 'put ''dz13KzF8MDtRWChsLGIscGUpLGFbcT4+Ml09bSxtPW0rKGFbaz4+Ml08PDIpfDAsYj1iKzF8MH1tPTB8a2sobCxjKX1lbHNle2ZvcihBPTA7ISgoMHxBKT49KDB8YykpOyl7Zm9yKGFbbCsoMjAqQXwwKSs4Pj4yXT1tLE5rKGwsQSxwZSksaz1sKygyMCpBfDApKzR8MCxNPSsoKGI9MHxhWyh3''@;'; put 'put ''PWwrKDIwKkF8MCl8MCk+PjJdKS0xfDApLHA9MTshKCgwfHApPj0oMHxiKSk7KWpuW20rKHA8PDIpPj4yXT0oYmU9KygoMHxhW2wrKDIwKihxPTB8YVsoMHxhW2s+PjJdKSsocDw8Mik+PjJdKXwwKT4+Ml0pLTF8MCkrTSktKygoMHxIayhsLEEscSxwZSkpPDwxfDApLHA9cCsxfDA7UVgobCxB''@;'; put 'put ''LHBlKSxtPW0rKGFbdz4+Ml08PDIpfDAsQT1BKzF8MH1tPTB8TUQobCxjKX1GdChwZSksRnQoMHxhW2dlPj4yXSksYVtnZT4+Ml09MDtlOmRve2lmKDB8Zilmb3IocD0wOzspe2lmKCgwfHApPj0oMHxjKSlicmVhayBlO2FbbCsoMjAqcHwwKSs4Pj4yXT1mLGY9ZisoYVtsKygyMCpwfDApPj4y''@;'; put 'put ''XTw8Mil8MCxwPXArMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uICROKGwsYyxmLHAsbSxBLHcsYixrKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCxifD0wLGt8PTA7dmFyIEV0LFp0LGJ0LE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0w''@;'; put 'put ''LFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9MCxrdD0wLHN0PTAsYW49MCxTbj0wO2J0PWxlLGxlPWxlKzgwfDAsWnQ9YnQrNDh8MCxWZT1idCs0MHwwLGdlPWJ0KzMyfDAscGU9YnQrMjR8MCxxPWJ0KzE2fDAsRD1idCs4fDAsTT1idCxSPTQmKHd8PTApLEV0PTMmdztl''@;'; put 'put ''OmRve2lmKCgwfGspPDApZj0wO2Vsc2V7dz0yPT0oMHxiKTt0OmRve2lmKHcpZj0wfHpKKGwsYyksT2U9MTQ7ZWxzZXtzd2l0Y2goMHxiKXtjYXNlIDE6aWYoMHwoZj0wfEl5KGwsYykpKXtzdD1mO2JyZWFrIHR9JHIoMCw5MzMxNSxNKSwkcigzLDkzMzY0LEQpLE9lPTE1O2JyZWFrIHQ7Y2Fz''@;'; put 'put ''ZSAzOmJyZWFrO2RlZmF1bHQ6T2U9MTU7YnJlYWsgdH1mPTB8JDYobCxjKSxPZT0xNH19d2hpbGUoMCk7MTQ9PSgwfE9lKSYmKGY/c3Q9ZjpPZT0xNSk7ZG97aWYoMTU9PSgwfE9lKSl7aWYoMHxhW2wrOD4+Ml0pe3N0PTB8a2sobCxjKTticmVha31zdD0wfE1EKGwsYyk7YnJlYWt9fXdoaWxl''@;'; put 'put ''KDApO3Q6ZG97aWYoKDB8Yyk+MSYwIT0oMHxSKSlpZigoMHxFRChsLGMscCxBLFIsRXQsMSZ3KSk8MClnZT0wLHBlPTAsZj0tMSxsPTAscT0wLFI9MCxEPTAsTT0wLGI9MCx3PTA7ZWxzZSBmb3Iodz0wOzspe2lmKCgwfHcpPj0oMHxBKSl7UmU9MCxPZT0zNTticmVhayB0fWZvcihiPXArKHc8''@;'; put 'put ''PDIpfDAsRz0xLGY9MDsoMHxmKSE9KDB8Yyk7KUc9KExlPStlbygrICtfWygwfGFbYj4+Ml0pKyhmPDwzKT4+M10pKT5HP0xlOkcsZj1mKzF8MDtmb3IoRz0xL0csZj0wOzspe2lmKCgwfGYpPT0oMHxjKSl7Zj0wO2JyZWFrfV9bKGt0PSgwfGFbYj4+Ml0pKyhmPDwzKXwwKT4+M109K19ba3Q+''@;'; put 'put ''PjNdKkcsZj1mKzF8MH1mb3IoOygwfGYpIT0oMHxjKTspTGU9MWUtNiooK3FjKCktLjUpLF9bKGt0PSgwfGFbYj4+Ml0pKyhmPDwzKXwwKT4+M109K19ba3Q+PjNdK0xlLGY9ZisxfDA7YTgoYywwfGFbYj4+Ml0pLHc9dysxfDB9ZWxzZSBSZT0wfEtOKDAsYyxBLHAsbSksT2U9MzV9d2hpbGUo''@;'; put 'put ''MCk7dDpkb3tpZigzNT09KDB8T2UpKXtpZigxPT0oMHxjKXwwPT0oMHxrKSl7Zj0wO2JyZWFrIGV9Zm9yKGt0PTB8dnIocT1BPDwyKSxTdD0wfHZyKGw9MHxBcihwZT1jPDwyLEEpKSxmPTA7ISgoMHxmKT49KDB8QSkpOyl7Zm9yKGI9U3QrKCgwfEFyKGYsYykpPDwyKXwwLGFba3QrKGY8PDIp''@;'; put 'put ''Pj4yXT1iLE09cCsoZjw8Mil8MCx3PTA7ISgoMHx3KT49KDB8YykpOylqbltiKyh3PDwyKT4+Ml09K19bKDB8YVtNPj4yXSkrKHc8PDMpPj4zXSx3PXcrMXwwO2Y9ZisxfDB9bjpkb3tpZihFdClHPS41KisoMHxjKSorKGMrLTF8MCk7ZWxzZSBmb3IoRD1jKy0xfDAsZj0wLEc9MCxNPTA7Oyl7''@;'; put 'put ''aWYoKDB8TSk+PSgwfEQpKWJyZWFrIG47Zm9yKFI9Yy1NfDAsYj1mLHc9MTtmPWIrMXwwLCEoKDB8dyk+PSgwfFIpKTspYj1mLEc9K2puW3N0KyhmPDwyKT4+Ml0rRyx3PXcrMXwwO009TSsxfDB9fXdoaWxlKDApO2ZvcihxZT0oMHxBcihjKzF8MCxjKSkvMnwwLChydD0yPT0oMHxFdCkpJiZq''@;'; put 'put ''ayhxZSxzdCksY0socWUsc3QpLHUyKDB8KGI9MHx2cihXZT1jPDwzKSksMCwwfFdlKSxhdD1jKy0xfDAsZj0wLE09MDs7KXtpZigoMHxNKT49KDB8YXQpKXtmPWMsdz0wLE09MDticmVha31mb3IoRD1jLU18MCxiZT0wLHc9MTtmPWYrMXwwLCEoKDB8dyk+PSgwfEQpKTspX1soSGU9YisodytN''@;'; put 'put ''PDwzKXwwKT4+M109K19bSGU+PjNdLShMZT0ram5bc3QrKGY8PDIpPj4yXSksYmUrPUxlLHc9dysxfDA7X1soSGU9YisoTTw8Myl8MCk+PjNdPStfW0hlPj4zXS1iZSxNPU0rMXwwfWZvcig7ISgoMHx3KT49KDB8YykpOylqbltzdCsoTTw8Mik+PjJdPStfW2IrKHc8PDMpPj4zXSxIZT1mK018''@;'; put 'put ''MCxmPWYrLTF8MCx3PXcrMXwwLE09SGU7Zm9yKEhlPTB8dnIocSksYVtIZT4+Ml09MHx2cihsKSxmPTE7ISgoMHxmKT49KDB8QSkpOylhW0hlKyhmPDwyKT4+Ml09KDB8YVtIZT4+Ml0pKygoMHxBcihmLGMpKTw8MiksZj1mKzF8MDtmb3IoRD0wfHZyKHBlKSxNPTB8dnIocGUpLHc9MHx2cihx''@;'; put 'put ''ZTw8MiksT2U9MD09KDB8UmUpLFJlPTB8YVsxNTcxMl0sZj0wLFI9MCxMZT0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7Ujw8MjQ+PjI0PT0wJigwfGYpPCgwfGspOyl7Zm9yKHUyKDB8YiwwLDB8V2UpLHJ0PyhXVihxZSxzdCx3KSxnZT0wLGw9MCk6KGdlPTAsbD0wKTs7KXtpZigoMHxnZSk+PSgw''@;'; put 'put ''fGF0KSl7Uj1jLHE9MCxsPTA7YnJlYWt9Zm9yKFp5KHBlPWMtZ2UtMXwwLDAsTSksUj0wOyEoKDB8Uik+PSgwfEEpKTspWnkocGUsK2puWygwfGFbKFZlPWt0KyhSPDwyKXwwKT4+Ml0pKyhnZTw8Mik+PjJdLEQpLEtEKHBlLEQsLTEsKDB8YVtWZT4+Ml0pKyhnZTw8MikrNHwwKSxqayhwZSxE''@;'; put 'put ''KSxYRChwZSxELE0sTSksUj1SKzF8MDtmb3IoZksocGUsTSksUj0wOyEoKDB8Uik+PSgwfHBlKSk7KShiZT0ram5bKHE9TSsoUjw8Mil8MCk+PjJdKT49MzQwMjgyMzQ2NjM4NTI4ODZlMjJ8YmU8MCYmKGpuW3E+PjJdPTApLFI9UisxfDA7Uj1sKzF8MCxsPWdlKzF8MDtuOmRve2lmKHJ0KWZv''@;'; put 'put ''cihiZT0wLHE9MDs7KXtpZigoMHxxKT49KDB8cGUpKWJyZWFrIG47am5bKFZlPXcrKFI8PDIpfDApPj4yXT1hbj0ram5bVmU+PjJdKitqbltNKyhxPDwyKT4+Ml0sX1soVmU9YisobCtxPDwzKXwwKT4+M109K19bVmU+PjNdLWFuLGJlKz1hbixSPVIrMXwwLHE9cSsxfDB9ZWxzZSBmb3IoYmU9''@;'; put 'put ''MCxxPTA7Oyl7aWYoKDB8cSk+PSgwfHBlKSlicmVhayBuO2puW3crKFI8PDIpPj4yXT1hbj0ram5bTSsocTw8Mik+PjJdLF9bKFZlPWIrKGwrcTw8Myl8MCk+PjNdPStfW1ZlPj4zXS1hbixiZSs9YW4sUj1SKzF8MCxxPXErMXwwfX13aGlsZSgwKTtfWyhWZT1iKyhnZTw8Myl8MCk+PjNdPStf''@;'; put 'put ''W1ZlPj4zXS1iZSxnZT1sLGw9Un1mb3IoOzspe2lmKCgwfHEpPj0oMHxjKSl7Uj0wO2JyZWFrfWpuW3crKGw8PDIpPj4yXT0rX1tiKyhxPDwzKT4+M10sVmU9UitsfDAsUj1SKy0xfDAscT1xKzF8MCxsPVZlfWZvcig7Oyl7aWYoKDB8Uik+PSgwfEEpKXtiZT0wLFI9MDticmVha31lZCh3LGMs''@;'; put 'put ''MHxhW2t0KyhSPDwyKT4+Ml0sMHxhW0hlKyhSPDwyKT4+Ml0pLFI9UisxfDB9Zm9yKDshKCgwfFIpPj0oMHxBKSk7KWJlPStYNyhjLDB8YVtrdCsoUjw8Mik+PjJdLDB8YVtIZSsoUjw8Mik+PjJdKStiZSxSPVIrMXwwO2ZvcihiZT0yKmJlK0csUj0wOyEoKDB8Uik+PSgwfEEpKTspZWQoc3Qs''@;'; put 'put ''YywwfGFbKFZlPWt0KyhSPDwyKXwwKT4+Ml0sRCksYmUtPStYNyhjLDB8YVtWZT4+Ml0sRCksUj1SKzF8MDtmb3IoU249TGUtYmUsUj0xJihiZTwoYW49K19bMjMyOTRdKT8xOihTbj49MD9TbjotU24pL0xlPGFuKSxsPTA7ISgoMHxsKT49KDB8QSkpOyl7cT0wfGFbKHBlPWt0KyhsPDwyKXww''@;'; put 'put ''KT4+Ml07bjpkb3tpZihPZSl7aWYoKDB8T2soc3QscSwwfGFbSGUrKGw8PDIpPj4yXSxjLC4wMDEsYykpPDApe2dlPUhlLHBlPXN0LGY9LTEsbD1TdCxxPWt0LFI9SGU7YnJlYWsgdH19ZWxzZXtpZih1SyhjLHEsRCksKDB8T2soc3QsRCwwfGFbSGUrKGw8PDIpPj4yXSxjLC4wMDEsYykpPDAp''@;'; put 'put ''e2dlPUhlLHBlPXN0LGY9LTEsbD1TdCxxPWt0LFI9SGU7YnJlYWsgdH1mb3IocT0wOzspe2lmKCgwfHEpPj0oMHxjKSlicmVhayBuOygwfFh0WzExOSsoMHxhWzE2KygwfGFbbSsocTw8Mik+PjJdKT4+Ml0pPj4wXSk8PTEmJihhWygwfGFbcGU+PjJdKSsocTw8Mik+PjJdPWFbRCsocTw8Mik+''@;'; put 'put ''PjJdKSxxPXErMXwwfX19d2hpbGUoMCk7bD1sKzF8MH0wPT0oMHwoMHxmKSU1KSYhMSYmKF9bWnQ+PjNdPWJlLFQwKFJlLDkwMzcxLFp0KSwwPT0oMHwoZis1fDApJTUwKSkmJllqKDEwLFJlKSxmPWYrMXwwLExlPWJlfWZvcihSPTA7Oyl7aWYoKDB8Uik+PSgwfEEpKXtnZT1IZSxwZT1zdCxs''@;'; put 'put ''PVN0LHE9a3QsUj1IZTticmVhayB0fWZvcihsPWt0KyhSPDwyKXwwLHBlPXArKFI8PDIpfDAscT0wOyEoKDB8cSk+PSgwfGMpKTspX1soMHxhW3BlPj4yXSkrKHE8PDMpPj4zXT0ram5bKDB8YVtsPj4yXSkrKHE8PDIpPj4yXSxxPXErMXwwO1I9UisxfDB9fX13aGlsZSgwKTtGdChsKSxGdChx''@;'; put 'put ''KSxGdChwZSksMHxnZSYmKEZ0KDB8YVtnZT4+Ml0pLEZ0KFIpKSxGdChEKSxGdChNKSxGdChiKSxGdCh3KX19d2hpbGUoMCk7cmV0dXJuIGxlPWJ0LDB8Zn1mdW5jdGlvbiBFRChsLGMsZixwLG0sQSx3KXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MDt2YXIgU3Qsa3Qsc3QsRXQsWnQs''@;'; put 'put ''Y3QsYnQsYW4sU24sSG4sdXIsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wO2Zvcih1cj1sZSxsZT1sZSszMnwwLE09dXIrMjR8MCxIbj11cis4fDAsa3Q9dXIrNHwwLGFuPXVyLFNu''@;'; put 'put ''PTB8UW4oKGJ0PSgwfChjfD0wKSk8NTA/Yzo1MCk8PDIpLGs9MHxRbigwfEFyKFN0PWM8PDMsYnQpKSxiPTA7ISgoMHxiKT49KDB8YnQpKTspYVtTbisoYjw8Mik+PjJdPWsrKCgwfEFyKGIsYykpPDwzKSxiPWIrMXwwO2ZvcihXZT0oMHwoV2U9KDB8KFdlPWJ0PDwxKSk+NTA/V2U6NTApKT4o''@;'; put 'put ''MHxjKT9jOldlLGFbTT4+Ml09MCxmdW5jdGlvbiBqWChsLGMsZixwLG0pe2x8PTAscHw9MCxtfD0wO3ZhciBrLE0sUixHLHEsQT0wLHc9MCxiPTAsRD0wLHBlPTAsZ2U9MCxiZT0wO2ZvcihxPWxlLGxlPWxlKzE2fDAsRz1xLHc9MHxRbigwfEFyKEQ9KGN8PTApPDwyLGZ8PTApKSxBPTB8YVtw''@;'; put 'put ''Pj4yXSxEPTB8UW4oRCksUj0wfGFbbCs4Pj4yXSwwfEEmJihGdCgwfGFbQT4+Ml0pLEZ0KEEpKSxNPTB8UW4oZjw8MiksYVtwPj4yXT1NLEE9MDshKCgwfEEpPj0oMHxmKSk7KWFbTSsoQTw8Mik+PjJdPXcrKCgwfEFyKEEsYykpPDwyKSxBPUErMXwwO2Zvcigoaz0wIT0oMHxtKSkmJkpYKGws''@;'; put 'put ''YykscD0oMHxUMSgpKSUoMHxjKXwwLE95KEcsYyksQT0wfGFbTT4+Ml0saz8oUnkocCxsLGMsQSksbT0wLEE9MCk6KHI4KHAsbCxjLEEsRyksbT0wLEE9MCk7Oyl7aWYoKDB8QSk+PSgwfGMpKXtiPTE7YnJlYWt9YVtEKyhBPDwyKT4+Ml09dz0wfGFbKDB8YVtNPj4yXSkrKEE8PDIpPj4yXSxt''@;'; put 'put ''PShiPSgwfHcpPigwfG0pKT93Om0scD1iP0E6cCxBPUErMXwwfWZvcig7ISgoMHxiKT49KDB8ZikpOyl7Zm9yKEE9MHxhWyh3PU0rKGI8PDIpfDApPj4yXSxrPyhSeShwLGwsYyxBKSxBPTAsbT0wKToocjgocCxsLGMsQSxHKSxBPTAsbT0wKTshKCgwfEEpPj0oMHxjKSk7KWFbKGJlPUQrKEE8''@;'; put 'put ''PDIpfDApPj4yXT1nZT0oMHwocGU9MHxhW2JlPj4yXSkpPCgwfChnZT0wfGFbKDB8YVt3Pj4yXSkrKEE8PDIpPj4yXSkpP3BlOmdlLHBlPShiZT0oMHxnZSk+KDB8bSkpP0E6cCxBPUErMXwwLG09YmU/Z2U6bSxwPXBlO2I9YisxfDB9RnQoRCksayYmWFgobCxjLFIpLGxlPXF9KGwsYyxXZSxN''@;'; put 'put ''LHcpLGZ1bmN0aW9uIHpEKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGIscD0wLG09MCxBPTAsdz0wLGs9MCxNPTA7Zm9yKGI9MS8rKDB8KGN8PTApKSx3PTA7ISgoMHx3KT49KDB8ZikpOyl7Zm9yKGs9bCsodzw8Mil8MCxwPTAsbT0wOyEoKDB8bSk+PSgwfGMpKTspcCs9KygwfGFbKDB8YVtrPj4y''@;'; put 'put ''XSkrKG08PDIpPj4yXSksbT1tKzF8MDtmb3IoQT1+fihwKmIpLG09MDshKCgwfG0pPj0oMHxjKSk7KWFbKE09KDB8YVtrPj4yXSkrKG08PDIpfDApPj4yXT0oMHxhW00+PjJdKS1BLG09bSsxfDA7dz13KzF8MH19KDB8YVtNPj4yXSxjLFdlKSxmdW5jdGlvbiB0ZChsLGMsZixwLG0pe2x8PTAs''@;'; put 'put ''Y3w9MCxmfD0wLHB8PTA7dmFyIHEscGUsZ2UsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxiZT0wO2ZvcihnZT0wfFFuKChtfD0wKTw8Miksdz1jPDwzLEE9MDshKCgwfEEpPj0oMHxtKSk7KWFbZ2UrKEE8PDIpPj4yXT0wfFFuKHcpLEE9QSsxfDA7Zm9yKHE9MHxRbihtPDwzKSxw''@;'; put 'put ''ZT0wfFFuKGM8PDIpLEE9MHxRbigwfEFyKHcsYykpLHc9MDshKCgwfHcpPj0oMHxjKSk7KWFbcGUrKHc8PDIpPj4yXT1BLEE9QSsoYzw8Myl8MCx3PXcrMXwwO2ZvcihrPTAsRz0xOyEoKDB8ayk+PSgwfGMpKTspe2ZvcihNPWwrKGs8PDIpfDAsRD1wZSsoazw8Mil8MCx3PTA7KDB8dykhPSgw''@;'; put 'put ''fEcpOyl7Zm9yKFI9bCsodzw8Mil8MCxBPTAsYj0wOyEoKDB8QSk+PSgwfGYpKTspYmU9YisgKygwfEFyKDB8YVsoMHxhW1I+PjJdKSsoQTw8Mik+PjJdLDB8YVsoMHxhW00+PjJdKSsoQTw8Mik+PjJdKSksQT1BKzF8MCxiPWJlO19bKDB8YVtwZSsodzw8Mik+PjJdKSsoazw8Myk+PjNdPWIs''@;'; put 'put ''X1soMHxhW0Q+PjJdKSsodzw8Myk+PjNdPWIsdz13KzF8MH1rPWsrMXwwLEc9RysxfDB9Zm9yKG9LKHBlLGMsbSxnZSxxLDEpLHc9MDs7KXtpZigoMHx3KT49KDB8bSkpe0E9MDticmVha31mb3IoTT1nZSsodzw8Mil8MCxEPXArKHc8PDIpfDAsaz0wOygwfGspPCgwfGYpOyl7Zm9yKEE9MCxi''@;'; put 'put ''PTA7ISgoMHxBKT49KDB8YykpOyliZT0rX1soMHxhW00+PjJdKSsoQTw8Myk+PjNdKisoMHxhWygwfGFbbCsoQTw8Mik+PjJdKSsoazw8Mik+PjJdKStiLEE9QSsxfDAsYj1iZTtfWygwfGFbRD4+Ml0pKyhrPDwzKT4+M109YixrPWsrMXwwfXc9dysxfDB9Zm9yKDshKCgwfEEpPj0oMHxtKSk7''@;'; put 'put ''KUZ0KDB8YVtnZSsoQTw8Mik+PjJdKSxBPUErMXwwO0Z0KGdlKSxGdChxKSxGdCgwfGFbcGU+PjJdKSxGdChwZSl9KDB8YVtNPj4yXSxXZSxjLFNuLGJ0KSxGdCgwfGFbYVtNPj4yXT4+Ml0pLEZ0KDB8YVtNPj4yXSksY3Q9MHxRbihXZT1jPDwyKSxiPTA7ISgoMHxiKT49KDB8YykpOylhW2N0''@;'; put 'put ''KyhiPDwyKT4+Ml09LTEsYj1iKzF8MDtmb3IoT3koSG4sYyksRXQ9MHxhW2wrOD4+Ml0sKHN0PTAhPSgwfHcpKSYmSlgobCxjKSxxZT0wfFFuKFdlKSxadD0wfFFuKDE2MCksaz0wfFFuKDE2MCpjfDApLHJ0PTB8UW4oMTYwKSxiPTA7NDAhPSgwfGIpOylhW3J0KyhiPDwyKT4+Ml09aysoKDB8''@;'; put 'put ''QXIoYixjKSk8PDIpLGI9YisxfDA7Zm9yKGI9KDB8VDEoKSklKDB8Yyl8MCxhW2N0KyhiPDwyKT4+Ml09MCxhW1p0Pj4yXT1iLGs9MHxhW3J0Pj4yXSxzdD8oUnkoYixsLGMsayksaz0wLE09MCk6KHI4KGIsbCxjLGssSG4pLGs9MCxNPTApOzspe2lmKCgwfE0pPj0oMHxjKSl7Rz0xO2JyZWFr''@;'; put 'put ''fWFbcWUrKE08PDIpPj4yXT1hdD0wfGFbKDB8YVtydD4+Ml0pKyhNPDwyKT4+Ml0sYj0oVmU9KDB8YXQpPigwfGspKT9NOmIsaz1WZT9hdDprLE09TSsxfDB9Zm9yKDs7KXtpZig0MD09KDB8Rykpe2I9MDticmVha31mb3IoYVtjdCsoYjw8Mik+PjJdPUcsYVtadCsoRzw8Mik+PjJdPWIsaz0w''@;'; put 'put ''fGFbKHBlPXJ0KyhHPDwyKXwwKT4+Ml0sc3Q/KFJ5KGIsbCxjLGspLFI9MCxrPTApOihyOChiLGwsYyxrLEhuKSxSPTAsaz0wKTshKCgwfFIpPj0oMHxjKSk7KWFbKE09cWUrKFI8PDIpfDApPj4yXT13PSgwfChhdD0wfGFbTT4+Ml0pKTwoMHwodz0wfGFbKDB8YVtwZT4+Ml0pKyhSPDwyKT4+''@;'; put 'put ''Ml0pKT9hdDp3LCgwfHcpPD0oMHxrKT8oMHx3KT09KDB8aykmJjA9PSgwfCgwfFQxKCkpJShSKzF8MCkpJiYoaz0wfGFbTT4+Ml0sYj1SKTooaz13LGI9UiksUj1SKzF8MDtHPUcrMXwwfWZvcig7ISgoMHxiKT49KDB8YykpOylhW3FlKyhiPDwyKT4+Ml09LTEsYj1iKzF8MDtmb3IoT2U9MHxR''@;'; put 'put ''bihXZSksYXQ9MHxRbihjPDw0KSxSZT0oTGU9YystMXwwKTw8MixWZT0wLE09MCx3PTAsaz0wLEhlPTA7ISgoMHxIZSk+PSgwfGMpKTspe2I9Y3QrKEhlPDwyKXwwO2U6ZG97aWYoKDB8YVtiPj4yXSk+LTEpe2ZvcihhWyhwZT1hdCsoSGU8PDQpKzR8MCk+PjJdPTB8UW4oUmUpLGJlPTB8UW4o''@;'; put 'put ''UmUpLGFbYXQrKEhlPDw0KSs4Pj4yXT1iZSxhW2F0KyhIZTw8NCk+PjJdPUxlLGZlW2F0KyhIZTw8NCkrMTI+PjBdPTEsRz1ydCsoYVtiPj4yXTw8Mil8MCxiPTA7Oyl7aWYoKDB8Yik9PSgwfEhlKSl7Uj1IZTticmVha31hWygwfGFbcGU+PjJdKSsoYjw8Mik+PjJdPWIsYVtiZSsoYjw8Mik+''@;'; put 'put ''PjJdPWFbKDB8YVtHPj4yXSkrKGI8PDIpPj4yXSxiPWIrMXwwfWZvcig7Oyl7aWYoYj1SKzF8MCwoMHxSKT09KDB8TGUpKXtiPUxlO2JyZWFrIGV9YVsoMHxhW3BlPj4yXSkrKFI8PDIpPj4yXT1iLGFbYmUrKFI8PDIpPj4yXT1hWygwfGFbRz4+Ml0pKyhiPDwyKT4+Ml0sUj1ifX1lbHNle2Zv''@;'; put 'put ''cigoMHxrKTw0MD8odz0wfFFuKFdlKSxNPTB8UW4oV2UpLGs9YyxiPTEpOmI9MCxmZVthdCsoSGU8PDQpKzEyPj4wXT1iLGFbYXQrKEhlPDw0KSs0Pj4yXT13LGFbYXQrKEhlPDw0KSs4Pj4yXT1NLGFbYXQrKEhlPDw0KT4+Ml09NDAsYj0wOzQwIT0oMHxiKTspYVt3KyhiPDwyKT4+Ml09YVta''@;'; put 'put ''dCsoYjw8Mik+PjJdLGFbTSsoYjw8Mik+PjJdPWFbKDB8YVtydCsoYjw8Mik+PjJdKSsoSGU8PDIpPj4yXSxiPWIrMXwwO009TSsxNjB8MCx3PXcrMTYwfDAsaz1rKy00MHwwLGI9NDB9fXdoaWxlKDApO1ZlPWIrVmV8MCxIZT1IZSsxfDB9Zm9yKEZ0KHFlKSxGdChPZSksMHxydCYmKEZ0KDB8''@;'; put 'put ''YVtydD4+Ml0pLEZ0KHJ0KSkscnQ9MHxRbigyMCpjfDApLEc9MHxRbihSPVZlK2M8PDIpLGJlPTI9PSgwfEEpLFI9MHxRbihSKSxwZT0wOyEoKDB8cGUpPj0oMHxjKSk7KXthW3J0KygyMCpwZXwwKSs0Pj4yXT1HLGFbcnQrKDIwKnBlfDApKzg+PjJdPVIsYVsoT2U9cnQrKDIwKnBlfDApfDAp''@;'; put 'put ''Pj4yXT1iPTErKDB8YVthdCsocGU8PDQpPj4yXSl8MCxNPSgwfGFbYXQrKHBlPDw0KSs4Pj4yXSktNHwwLHc9YXQrKHBlPDw0KSs0fDA7ZTpkb3tpZihiZSlmb3IoRD0wLGs9MTs7KXtpZigoMHxrKT49KDB8YikpYnJlYWsgZTthW0crKGs8PDIpPj4yXT1hWygwfGFbdz4+Ml0pKyhrKy0xPDwy''@;'; put 'put ''KT4+Ml0sam5bUisoazw8Mik+PjJdPWdlPS0xLygoZ2U9KygwfGFbTSsoazw8Mik+PjJdKSkqZ2UpLEQtPWdlLGs9aysxfDAsYj0wfGFbT2U+PjJdfWVsc2UgZm9yKEQ9MCxrPTE7Oyl7aWYoKDB8ayk+PSgwfGIpKWJyZWFrIGU7YVtHKyhrPDwyKT4+Ml09YVsoMHxhW3c+PjJdKSsoaystMTw8''@;'; put 'put ''Mik+PjJdLGpuW1IrKGs8PDIpPj4yXT1nZT0tMS8rKDB8YVtNKyhrPDwyKT4+Ml0pLEQtPWdlLGs9aysxfDAsYj0wfGFbT2U+PjJdfX13aGlsZSgwKTthW0c+PjJdPXBlLGpuW1I+PjJdPUQsUj1SKygoV2U9MHxhW09lPj4yXSk8PDIpfDAsRz1HKyhXZTw8Mil8MCxwZT1wZSsxfDB9Zm9yKHFl''@;'; put 'put ''PTB8UW4ocDw8MiksYVtxZT4+Ml09MHxRbigwfEFyKHA8PDMsYnQpKSxiPTE7ISgoMHxiKT49KDB8cCkpOylhW3FlKyhiPDwyKT4+Ml09KDB8YVtxZT4+Ml0pKygoMHxBcihiLGJ0KSk8PDMpLGI9YisxfDA7ZTpkb3tpZihtKXtmb3IoYj0wOyEoKDB8Yik+PSgwfHApKTspe2ZvcihNPXFlKyhi''@;'; put 'put ''PDwyKXwwLGs9MDshKCgwfGspPj0oMHxidCkpOylfWygwfGFbTT4+Ml0pKyhrPDwzKT4+M109MCxrPWsrMXwwO2I9YisxfDB9aWYoMiE9KDB8cCkpZm9yKGI9MDs7KXtpZigoMHxiKT49KDB8cCkpe2I9MDticmVhayBlfV9bKDB8YVtxZSsoYjw8Mik+PjJdKSsoYjw8Myk+PjNdPTEsYj1iKzF8''@;'; put 'put ''MH1pZihfW2FbcWU+PjJdPj4zXT0xLCgwfFAyZShTbixidCxjLDB8YVsoYj1xZSs0fDApPj4yXSkpPDwyND4+MjQpYj0wO2Vsc2V7Zm9yKGs9MHxhW2I+PjJdLGI9MDshKCgwfGIpPj0oMHxidCkpOylfW2srKGI8PDMpPj4zXT0wLGI9YisxfDA7X1trKzg+PjNdPTEsYj0wfX1lbHNlIGZvcihr''@;'; put 'put ''PTA7Oyl7aWYoKDB8ayk+PSgwfHApKXtiPTA7YnJlYWsgZX1mb3IoTT1xZSsoazw8Mil8MCxiPTA7ISgoMHxiKT49KDB8YnQpKTspZ2U9NC42NTY2MTI4NzUyNDU3OTdlLTEwKisoMHxUMSgpKSxfWygwfGFbTT4+Ml0pKyhiPDwzKT4+M109Z2UsYj1iKzF8MDtrPWsrMXwwfX13aGlsZSgwKTtm''@;'; put 'put ''b3IoOyEoKDB8Yik+PSgwfHApKTspR1YoU24sYyxidCwwfGFbcWUrKGI8PDIpPj4yXSwwfGFbZisoYjw8Mik+PjJdKSxiPWIrMXwwO2Fba3Q+PjJdPTAsYVthbj4+Ml09MCxsSyhydCxTbixjLGJ0LGt0KSxmdW5jdGlvbiBJMmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9''@;'; put 'put ''MDt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wO2ZvcigoYj0wfGFbKEF8PTApPj4yXSk/KHc9MHxVYSgwfGFbYj4+Ml0sMHxBcihSPWY8PDIsbSkpLFI9MHxVYShiLFIpKToodz0wfEYwKDB8QXIoUj1mPDwyLG0pKSxSPTB8RjAoUikpLGFbQT4+Ml09UixiPTA7Oyl7aWYoKDB8Yik+''@;'; put 'put ''PSgwfGYpKXtBPTA7YnJlYWt9YVtSKyhiPDwyKT4+Ml09dyxiPWIrMXwwLHc9dysobTw8Mil8MH1mb3IoOyEoKDB8QSk+PSgwfGYpKTspe2ZvcihNPWwrKEE8PDIpfDAsRD1SKyhBPDwyKXwwLGI9MDsoMHxiKTwoMHxtKTspe2Zvcih3PTAsaz0wOyEoKDB8dyk+PSgwfHApKTspRz0rX1soMHxh''@;'; put 'put ''W00+PjJdKSsodzw8Myk+PjNdKitqblsoMHxhW2MrKHc8PDIpPj4yXSkrKGI8PDIpPj4yXStrLHc9dysxfDAsaz1HO2puWygwfGFbRD4+Ml0pKyhiPDwyKT4+Ml09ayxiPWIrMXwwfUE9QSsxfDB9fShTbiwwfGFba3Q+PjJdLGJ0LGMsYnQsYW4pLEZ0KDB8YVthW2t0Pj4yXT4+Ml0pLEZ0KDB8''@;'; put 'put ''YVtrdD4+Ml0pLEhlPTB8UW4oU3QpLFZlPTB8UW4oYnQ8PDMpLGI9MCxrPTAsRD0rc3NlKGYsYXQscCxjLEEpO2U6Zm9yKDsoMHxrKTw1MCZiPDwyND4+MjQ9PTA7KXtmb3IoTGU9MDshKCgwfExlKT49KDB8cCkpOyl7Zm9yKFJlPWYrKExlPDwyKXwwLE09MDshKCgwfE0pPj0oMHxjKSk7KXtm''@;'; put 'put ''b3IoX1soUj1IZSsoTTw8Myl8MCk+PjNdPTAsRz0oMHxhW2F0KyhNPDw0KSs4Pj4yXSktNHwwLHBlPTB8YVtydCsoMjAqTXwwKSs0Pj4yXSxiZT0wfGFbcnQrKDIwKk18MCkrOD4+Ml0sT2U9cnQrKDIwKk18MCl8MCxxPTAsdz0xOyEoKDB8dyk+PSgwfGFbT2U+PjJdKSk7KShnZT0rS1goZixw''@;'; put 'put ''LE0sYj0wfGFbcGUrKHc8PDIpPj4yXSkpPjFlLTMwJiYoX1tSPj4zXT0oZ2U9LStqbltiZSsodzw8Mik+PjJdKisoMHxhW0crKHc8PDIpPj4yXSkvZ2UpKitfWygwfGFbUmU+PjJdKSsoYjw8Myk+PjNdKyArX1tSPj4zXSxxLT1nZSksdz13KzF8MDtfW1I+PjNdPStfW1I+PjNdKyArX1soMHxh''@;'; put 'put ''W1JlPj4yXSkrKE08PDMpPj4zXSpxLE09TSsxfDB9aWYoWlYoU24sYnQsYyxIZSxWZSksMHxNVigwfGFbYW4+PjJdLDB8YVsoYj1xZSsoTGU8PDIpfDApPj4yXSxWZSxidCwuMDAxLGJ0LDApKXtrPS0xO2JyZWFrIGV9R1YoU24sYyxidCwwfGFbYj4+Ml0sMHxhW1JlPj4yXSksTGU9TGUrMXww''@;'; put 'put ''fTEmaz9iPTA6KGdlPStzc2UoZixhdCxwLGMsQSksYj0oRD0rZW8oKyhnZS1EKSkvKGdlKzFlLTEwKSk8K19bMjMyOTRdJjEsRD1nZSksaz1rKzF8MH1mb3IoRnQoVmUpLEZ0KEhlKSxzdCYmWFgobCxjLEV0KSxiPTA7ISgoMHxiKT49KDB8YykpOykwfGZlW2F0KyhiPDw0KSsxMj4+MF0mJihG''@;'; put 'put ''dCgwfGFbYXQrKGI8PDQpKzQ+PjJdKSxGdCgwfGFbYXQrKGI8PDQpKzg+PjJdKSksYj1iKzF8MDtyZXR1cm4gRnQoYXQpLEZ0KDB8YVtydCs0Pj4yXSksRnQoMHxhW3J0Kzg+PjJdKSxGdChydCksRnQoY3QpLEZ0KFp0KSxGdCgwfGFbcWU+PjJdKSxGdChxZSksMHwoYj0wfGFbYW4+PjJdKSYm''@;'; put 'put ''KEZ0KDB8YVtiPj4yXSksRnQoMHxhW2FuPj4yXSkpLEZ0KDB8YVtTbj4+Ml0pLEZ0KFNuKSxCRChIbiksbGU9dXIsMHxrfWZ1bmN0aW9uIHNzZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MDtl''@;'; put 'put ''OmRve2lmKDI9PSgwfG0pKWZvcihBPTAsTT0wOzspe2lmKCgwfE0pPj0oMHxwKSlicmVhayBlO2ZvcihSPTB8YVtjKyhNPDw0KT4+Ml0sRz1jKyhNPDw0KSs0fDAsRD1jKyhNPDw0KSs4fDAsaz0wOyEoKDB8ayk+PSgwfFIpKTspe2lmKCgwfChiPTB8YVsoMHxhW0c+PjJdKSsoazw8Mik+PjJd''@;'; put 'put ''KSk+KDB8TSkpe2Zvcih3PTAsbT0wOyEoKDB8bSk+PSgwfGYpKTspdz0ocT0rX1socGU9MHxhW2wrKG08PDIpPj4yXSkrKE08PDMpPj4zXS0rX1twZSsoYjw8Myk+PjNdKSpxK3csbT1tKzF8MDt3PStEMCgrdyksQT0odz0ocT0rKDB8YVsoMHxhW0Q+PjJdKSsoazw8Mik+PjJdKSktdykqdy8o''@;'; put 'put ''cSpxKStBfWs9aysxfDB9TT1NKzF8MH1lbHNlIGZvcihNPTAsQT0wOzspe2lmKCgwfE0pPj0oMHxwKSlicmVhayBlO2ZvcihEPTB8YVtjKyhNPDw0KT4+Ml0sUj1jKyhNPDw0KSs0fDAsRz1jKyhNPDw0KSs4fDAsaz0wOyEoKDB8ayk+PSgwfEQpKTspe2lmKCgwfChiPTB8YVsoMHxhW1I+PjJd''@;'; put 'put ''KSsoazw8Mik+PjJdKSk+KDB8TSkpe2Zvcih3PTAsbT0wOyEoKDB8bSk+PSgwfGYpKTspdz0ocT0rX1socGU9MHxhW2wrKG08PDIpPj4yXSkrKE08PDMpPj4zXS0rX1twZSsoYjw8Myk+PjNdKSpxK3csbT1tKzF8MDt3PStEMCgrdyksQT0odz0ocT0rKDB8YVsoMHxhW0c+PjJdKSsoazw8Mik+''@;'; put 'put ''PjJdKSktdykqdy9xK0F9az1rKzF8MH1NPU0rMXwwfX13aGlsZSgwKTtyZXR1cm4rQX1mdW5jdGlvbiBHSihsKXtyZXR1cm4rICtEMCgrKGw9K2wpKSpsfWZ1bmN0aW9uIFdKKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSxwPTAsbT0wLHc9MDtmb3IoQT0wfGFbNDcxMzddLHA9MCxtPTA7''@;'; put 'put ''ISgoMHxtKT49KDB8QSkpOylfW2YrKG08PDMpPj4zXT13PStfW2wrKG08PDMpPj4zXS0rX1tjKyhtPDwzKT4+M10scD13KncrcCxtPW0rMXwwO3JldHVybisgK0QwKCtwKX1mdW5jdGlvbiBjZyhsLGMsZil7Y3w9MCxmPStmO3ZhciB3LHA9MCxtPTAsQT0wO2Zvcih3PTB8dnIoKGx8PTApPDwy''@;'; put 'put ''KSxtPTAsQT0wfHZyKDB8QXIobDw8MyxjKSk7ISgoMHxtKT49KDB8bCkpOyl7Zm9yKGFbdysobTw8Mik+PjJdPUEscD0wOyEoKDB8cCk+PSgwfGMpKTspX1tBKyhwPDwzKT4+M109ZixwPXArMXwwO209bSsxfDAsQT1BKyhjPDwzKXwwfXJldHVybiAwfHd9ZnVuY3Rpb24gQjcobCl7MHwobHw9''@;'; put 'put ''MCkmJihGdCgwfGFbbD4+Ml0pLEZ0KGwpKX1mdW5jdGlvbiBZSihsLGMpe2N8PTA7dmFyIGIsayxNLEQsZj0wLHA9MCxtPTAsQT0wLHc9MCxSPTA7RD1sZSxsZT1sZSsxNnwwLE09MHxHbyhsfD0wKSxrPTB8TjMobCksYj0wfHNpKGwsMiw5MjQ5MywwKTtlOmRve2lmKGMpZm9yKF9bMjMyOTRd''@;'; put 'put ''PTFlLTQsc1EobCwxMDg4ODYsMTg2MzUyKSxtPTAsZj0wLEE9MHxEdChsKTs7KXtpZighQSlicmVhayBlO2FbMTIwKygwfGFbQSsxNj4+Ml0pPj4yXT1tLG09bSsxfDAsZj1wPStxTihsLEEsYikrZixBPTB8enQobCxBKX1lbHNlIGZvcihfWzIzMjk0XT0xZS00KisoMHxNKSxzUShsLDEwODg4''@;'; put 'put ''NiwxODYzNTIpLG09MHxMaSgwfGFbbCs2MD4+Ml0sOTAxMDApLGY9bT8ra3AobSk6Ljk5LF9bMjMyOTZdPWYsbT0wfHZyKDQrKE08PDIpfDApLHc9bCsxNnwwLGFbMTUyKygwfGFbdz4+Ml0pPj4yXT1tLG09MCxmPTAsQT0wfER0KGwpOzspe2lmKCFBKWJyZWFrIGU7YVsoMHxhWzE1MisoMHxh''@;'; put 'put ''W3c+PjJdKT4+Ml0pKyhtPDwyKT4+Ml09QSxhWzEyMCsoUj0wfGFbQSsxNj4+Ml0pPj4yXT1tLGFbUisxMjQ+PjJdPS0xLG09bSsxfDAsZj1wPStxTihsLEEsYikrZixBPTB8enQobCxBKX19d2hpbGUoMCk7cmV0dXJuIDAhPSgwfChtPTB8TGkobCw5MDEwOCkpKSYmMCE9KDB8ZmVbbT4+MF0p''@;'; put 'put ''PyhmPStfWzIzMjk0XSk+KHA9K2twKG0pKXx8KGY9cCk6Zj1mLysoMHwoKDB8ayk+MT9rOjEpKSorRDAoKyArKDB8TSkpKzEsX1syMzI5NV09ZixhWzQ3MTM0XXxjfHwoYz0wfGNnKE0sTSxmKSxhWzE2MCsoMHxhWyhSPWwrMTZ8MCk+PjJdKT4+Ml09YyxjPTB8Y2coTSxNLDEpLGFbMTY0Kygw''@;'; put 'put ''fGFbUj4+Ml0pPj4yXT1jLGM9MHxjZyhNLDB8YVs0NzEzN10sMSksYVsxNjgrKDB8YVtSPj4yXSk+PjJdPWMsYz0wfGZ1bmN0aW9uIHVzZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBiLGssTSxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHx2cig0KygobHw9MCk8PDIpfDApLGs9NCsoYzw8Mil8MCxN''@;'; put 'put ''PWY8PDMsQT0wOyEoKDB8QSk+PSgwfGwpKTspe2ZvcihhWyh3PWIrKEE8PDIpfDApPj4yXT0wfHZyKGspLG09MDshKCgwfG0pPj0oMHxjKSk7KXtmb3IocD0wfHZyKE0pLGFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXT1wLHA9MDshKCgwfHApPj0oMHxmKSk7KV9bKDB8YVsoMHxhW3c+PjJdKSso''@;'; put 'put ''bTw8Mik+PjJdKSsocDw8Myk+PjNdPTAscD1wKzF8MDttPW0rMXwwfWFbKDB8YVt3Pj4yXSkrKG08PDIpPj4yXT0wLEE9QSsxfDB9cmV0dXJuIGFbYisoQTw8Mik+PjJdPTAsMHxifShNLE0sMHxhWzQ3MTM3XSksYVsxNzIrKDB8YVtSPj4yXSk+PjJdPWMpLGxlPUQsMHxNfWZ1bmN0aW9uIHFO''@;'; put 'put ''KGwsYyxmKXtmfD0wO3ZhciBBLHcsayxwPTAsbT0wLGI9MDtmb3Ioaz1sZSxsZT1sZSszMnwwLHc9ays4fDAsQT1rLGM9MHx3MChsfD0wLGN8PTApLHA9MDtjOyl7c3dpdGNoKDB8Y3NlKGMsZixBKSl7Y2FzZSAwOm09K19bQT4+M107YnJlYWs7Y2FzZSAyOmFbdz4+Ml09MHx0aShsKSxfW3cr''@;'; put 'put ''OD4+M109MSwkcigzLDkwMTIwLHcpLGI9NjticmVhaztkZWZhdWx0OmI9Nn02PT0oMHxiKSYmKGI9MCxfW0E+PjNdPTEsbT0xKSxfWzEzNisoMHxhW2MrMTY+PjJdKT4+M109bSxjPTB8UzAobCxjKSxwPW0rcH1yZXR1cm4gbGU9aywrcH1mdW5jdGlvbiBjc2UobCxjLGYpe2x8PTAsY3w9MCxm''@;'; put 'put ''fD0wO3ZhciBBLHcsYixwPTAsbT0wO2I9bGUsbGU9bGUrMTZ8MCx3PWIrOHwwLEE9Yjtkb3tpZigwIT0oMHxjKSYmKHA9MHxIbyhsLGMpLDAhPSgwfGZlW3A+PjBdKSkpe2lmKGFbQT4+Ml09ZiwoMHxpbChwLDEwMTIwOSxBKSk+PTEmJiEoKG09K19bZj4+M10pPDApJiYwIT1tfDAhPSgwfGFb''@;'; put 'put ''NDcxMzRdKSl7bD0wO2JyZWFrfWFbdz4+Ml09cCwkcigwLDkwMTQ3LHcpLGw9Mn1lbHNlIGw9MX13aGlsZSgwKTtyZXR1cm4gbGU9YiwwfGx9ZnVuY3Rpb24gZVYobCl7RnQoMHxhWzE1MisoMHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSksMHxhWzQ3MTM0XXx8KEI3KDB8YVsxNjArKDB8''@;'; put 'put ''YVtsPj4yXSk+PjJdKSxCNygwfGFbMTY0KygwfGFbbD4+Ml0pPj4yXSksQjcoMHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0pLGZ1bmN0aW9uIEF2ZShsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtpZigwfChsfD0wKSl7Zm9yKG09MDtjPTB8YVsoQT1sKyhtPDwyKXwwKT4+Ml07KXtmb3IocD0w''@;'; put 'put ''O2Y9MHxhW2MrKHA8PDIpPj4yXTspRnQoZikscD1wKzF8MCxjPTB8YVtBPj4yXTtGdChjKSxtPW0rMXwwfUZ0KGwpfX0oMHxhWzE3MisoMHxhW2w+PjJdKT4+Ml0pLGFbMTcyKygwfGFbbD4+Ml0pPj4yXT0wKX1mdW5jdGlvbiBRSihsLGMsZil7Znw9MDt2YXIgcCxtPTA7Zm9yKHA9KygwfChj''@;'; put 'put ''fD0wKSksYz0xNisobHw9MCl8MDshKCgwfGYpPj0oMHxhWzQ3MTM3XSkpOyltPStxYygpKnAsX1soMHxhWzEzMisoMHxhW2M+PjJdKT4+Ml0pKyhmPDwzKT4+M109bSxmPWYrMXwwfWZ1bmN0aW9uIHRWKGwsYyl7UUoobHw9MCxjfD0wLDIpfWZ1bmN0aW9uIGhzZShsLGMpe2x8PTA7dmFyIGYs''@;'; put 'put ''bSxwPTA7cD0rKDB8KGN8PTApKSxtPStxYygpKnAsX1thWzEzMisoMHxhWyhmPWwrMTZ8MCk+PjJdKT4+Ml0+PjNdPW0scD0rcWMoKSpwLF9bOCsoMHxhWzEzMisoMHxhW2Y+PjJdKT4+Ml0pPj4zXT1wLCgwfGFbNDcxMzddKT4yJiZ0VihsLGMpfWZ1bmN0aW9uIHd2ZShsLGMpe2x8PTAsY3w9''@;'; put 'put ''MDt2YXIgRCxHLHEsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSPTAscGU9MDtpZihxPWxlLGxlPWxlKzE2fDAsRz1xLGFbNDY3OTldPUQ9MSsoMHxhWzQ2Nzk5XSl8MCwoMHxhWzE1NisobD0wfGFbbCsxNj4+Ml0pPj4yXSk8KDB8YVs0NzEzNl0pKXtmb3Ioaz0wfGFbNDcxMzdd''@;'; put 'put ''LE09bCsxNTJ8MCxiPWwrMTY4fDAsbD0wLGY9MCx3PTA7ISgoMHx3KT49KDB8YykpOyl7aWYoKDB8WHRbMTE5KygwfGFbMTYrKG09MHxhWygwfGFbTT4+Ml0pKyh3PDwyKT4+Ml0pPj4yXSk+PjBdKTw9MSl7Zm9yKEE9MCxwPTA7ISgoMHxwKT49KDB8aykpOylBPShwZT0rX1soMHxhWygwfGFb''@;'; put 'put ''Yj4+Ml0pKyh3PDwyKT4+Ml0pKyhwPDwzKT4+M10pKnBlK0EscD1wKzF8MDtBPmYmJihsPW0sZj1BKX13PXcrMXwwfWY8K19bMjMyMTZdP2w9MDohMSYwPT0oMHwoMHxEKSUxMDApJiYoUj0wfGFbMTU3MTJdLF9bRz4+M109K0QwKCtmKSxUMChSLDkwMzcxLEcpLDA9PSgwfCgwfGFbNDY3OTld''@;'; put 'put ''KSUxZTMpKSYmWWooMTAsUil9ZWxzZSBsPTA7cmV0dXJuIGxlPXEsMHxsfWZ1bmN0aW9uIHhEKGwsYyxmKXtsfD0wLGN8PTA7dmFyIGIsUixNLHA9MCxtPTAsQT0wLHc9MCxrPTA7Zm9yKFI9bGUsbGU9bGUrMTZ8MCxNPTB8YVsxMjArKDB8YVsoaz0xNisoZnw9MCl8MCk+PjJdKT4+Ml0sQT0o''@;'; put 'put ''bT0wfGFbNDY3OThdKT8wfFYwKG0sMHxBcigoQT0wfGFbNDcxMzddKTw8MyxBKSk6MHxRbigwfEFyKChBPTB8YVs0NzEzN10pPDwzLEEpKSxhWzQ2Nzk4XT1BLGZ1bmN0aW9uIG5WKGwsYyxmLHApe2N8PTAscHw9MDt2YXIgZ2UsYmUsT2UsUmUsSGUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAs''@;'; put 'put ''RD0wLFI9MCxHPTAscT0wLHBlPTAsTGU9MDtmb3IoSGU9bGUsbGU9bGUrODB8MCxSZT1IZSxrPTB8YVsxNjQrKExlPTB8YVsxNisobHw9MCk+PjJdKT4+Ml0sTT0wfGFbTGUrMTYwPj4yXSxiPTB8YVsoTGU9MHxhW0xlKzE1Mj4+Ml0pKygoZnw9MCk8PDIpPj4yXSxBPTB8YVs0NzEzN10sbD0w''@;'; put 'put ''OyEoKDB8bCk+PSgwfEEpKTspe2Zvcih3PTB8QXIoQSxsKSxtPTA7KDB8bSkhPSgwfEEpOylfW3ArKHcrbTw8Myk+PjNdPTAsbT1tKzF8MDtsPWwrMXwwfWZvcihPZT0wfGFbNDcxMzddLGJlPWIrMTZ8MCxnZT1rKyhmPDwyKXwwLGs9TSsoZjw8Mil8MCxiPTA7ISgoMHxiKT49KDB8YykpOyl7''@;'; put 'put ''ZTpkb3tpZigoMHxiKSE9KDB8Zikpe2ZvcihtPTE2KygwfGFbTGUrKGI8PDIpPj4yXSl8MCxwZT0wLGw9MDshKCgwfGwpPj0oMHxPZSkpOylfW1JlKyhsPDwzKT4+M109cT0rX1soMHxhWzEzMisoMHxhW2JlPj4yXSk+PjJdKSsobDw8Myk+PjNdLStfWygwfGFbMTMyKygwfGFbbT4+Ml0pPj4y''@;'; put 'put ''XSkrKGw8PDMpPj4zXSxwZT1xKnErcGUsbD1sKzF8MDtmb3IoRD0xLytHSihwZSksdz0wOzspe2lmKCgwfHcpPj0oMHxPZSkpYnJlYWsgZTtmb3IobT0oMHxhW2dlPj4yXSkrKGI8PDMpfDAsQT0oMHxhW2s+PjJdKSsoYjw8Myl8MCxSPStfW1JlKyh3PDwzKT4+M10sbD0wO0c9K19bbT4+M10s''@;'; put 'put ''cT0rX1tBPj4zXSwoMHxsKSE9KDB8dyk7KU09cCsoKDB8QXIoT2UsbCkpK3c8PDMpfDAsX1tNPj4zXT0rX1tNPj4zXStHKkQqcSpSKitfW1JlKyhsPDwzKT4+M10sbD1sKzF8MDtNPXArKCgwfEFyKE9lLHcpKSt3PDwzKXwwLF9bTT4+M109KDEtcSpEKihwZS1SKlIpKSpHKyArX1tNPj4zXSx3''@;'; put 'put ''PXcrMXwwfX19d2hpbGUoMCk7Yj1iKzF8MH1mb3IobT0wfGFbNDcxMzddLHc9MTshKCgwfHcpPj0oMHxtKSk7KXtmb3IoQT0wfEFyKG0sdyksbD0wOygwfGwpIT0oMHx3KTspX1twKyhBK2w8PDMpPj4zXT0rX1twKygoMHxBcihtLGwpKSt3PDwzKT4+M10sbD1sKzF8MDt3PXcrMXwwfWxlPUhl''@;'; put 'put ''fShsLGMsTSxBKSx3PTB8YVs0NzEzN10sYj1sKzE2fDAsbT0wOyEoKDB8bSk+PSgwfHcpKTspX1sxODU3MzYrKG08PDMpPj4zXT0tK19bKDB8YVsoMHxhWzE2OCsoMHxhW2I+PjJdKT4+Ml0pKyhNPDwyKT4+Ml0pKyhtPDwzKT4+M10sbT1tKzF8MDtmb3IoZnVuY3Rpb24gWDJlKGwsYyxmLHAp''@;'; put 'put ''e2x8PTAsY3w9MCxmfD0wO3ZhciBwZSxnZSxiZSxPZSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAsTGU9MCxSZT0wO2ZvcihiZT0wfFFuKChnZT0wfEFyKHB8PTAscCkpPDwzKSxPZT0wfFFuKHA8PDMpLG09MDshKCgwfG0pPj0oMHxwKSk7KV9bT2UrKG08PDMpPj4z''@;'; put 'put ''XT0rX1tmKyhtPDwzKT4+M10sbT1tKzF8MDtmb3IobT0wOyEoKDB8bSk+PSgwfGdlKSk7KV9bYmUrKG08PDMpPj4zXT0rX1tsKyhtPDwzKT4+M10sbT1tKzF8MDtwZT1wKy0xfDAsdz0wLHE9MDtlOmZvcig7Oyl7aWYoISgoMHxxKTwoMHxwZSkpKXtEPTIxO2JyZWFrfWZvcihBPTAsbT1xOyEo''@;'; put 'put ''KDB8bSk+PSgwfHApKTspRz0oUj0oTGU9K2VvKCsgK19bbCsoKDB8QXIobSxwKSkrcTw8Myk+PjNdKSk8QSk/dzptLEE9Uj9BOkxlLG09bSsxfDAsdz1HO2lmKEE8MWUtMTApe0Q9MzM7YnJlYWt9Zm9yKGI9MHxBcih3LHApLEc9MHxBcihxLHApLG09cTshKCgwfG0pPj0oMHxwKSk7KUxlPStf''@;'; put 'put ''WyhEPWwrKG0rYjw8Myl8MCk+PjNdLF9bRD4+M109K19bKFI9bCsobStHPDwzKXwwKT4+M10sX1tSPj4zXT1MZSxtPW0rMXwwO2ZvcihMZT0rX1soUj1mKyh3PDwzKXwwKT4+M10sX1tSPj4zXT0rX1soaz1mKyhxPDwzKXwwKT4+M10sX1trPj4zXT1MZSxNPWwrKEcrcTw8Myl8MCxtPVI9cSsx''@;'; put 'put ''fDA7Oyl7aWYoKDB8bSk+PSgwfHApKXtxPVI7Y29udGludWUgZX1mb3IoRD0wfEFyKG0scCksX1soYj1mKyhtPDwzKXwwKT4+M109K19bYj4+M10tK19baz4+M10qKEE9K19bbCsoRCtxPDwzKT4+M10vK19bTT4+M10pLGI9MDshKCgwfGIpPj0oMHxwKSk7KV9bKFJlPWwrKGIrRDw8Myl8MCk+''@;'; put 'put ''PjNdPStfW1JlPj4zXS0rX1tsKyhiK0c8PDMpPj4zXSpBLGI9YisxfDA7bT1tKzF8MH19aWYoMjE9PSgwfEQpKWlmKCtlbygrKEE9K19bbCsoZ2UrLTE8PDMpPj4zXSkpPDFlLTEwKUQ9MzM7ZWxzZXtmb3IoX1tjKyhwZTw8Myk+PjNdPStfW2YrKHBlPDwzKT4+M10vQSxtPTA7Oyl7aWYoKDB8''@;'; put 'put ''bSk+PSgwfHBlKSl7bT0wO2JyZWFrfWZvcihfWyhrPWMrKChiPSh3PXAtbXwwKS0yfDApPDwzKXwwKT4+M109QT0rX1tmKyhiPDwzKT4+M10sTT0wfEFyKGIscCksdz13Ky0xfDA7ISgoMHx3KT49KDB8cCkpOylfW2s+PjNdPUxlPUEtK19bYysodzw8Myk+PjNdKitfW2wrKHcrTTw8Myk+PjNd''@;'; put 'put ''LHc9dysxfDAsQT1MZTtfW2s+PjNdPUEvK19bbCsoTStiPDwzKT4+M10sbT1tKzF8MH1mb3IoOzspe2lmKCgwfG0pPj0oMHxwKSl7bT0wO2JyZWFrfV9bZisobTw8Myk+PjNdPStfW09lKyhtPDwzKT4+M10sbT1tKzF8MH1mb3IoOyEoKDB8bSk+PSgwfGdlKSk7KV9bbCsobTw8Myk+PjNdPStf''@;'; put 'put ''W2JlKyhtPDwzKT4+M10sbT1tKzF8MDtGdChiZSksRnQoT2UpfTMzPT0oMHxEKSYmKGZ1bmN0aW9uIGZmZShsKXtsfD0wO3ZhciBwLG0sYz0wLGY9MDttPSgwfGFbNzYrKHA9MHxhWzE1Njc5XSk+PjJdKT4tMT8wfFJmKCk6MDtkb3tpZigoMHxfdShsLHApKTwwKWw9LTE7ZWxzZXtpZigxMCE9''@;'; put 'put ''KDB8ZmVbcCs3NT4+MF0pJiYoZj0wfGFbKGM9cCsyMHwwKT4+Ml0pPj4+MDwoMHxhW3ArMTY+PjJdKT4+PjApe2FbYz4+Ml09ZisxLGZlW2Y+PjBdPTEwLGw9MDticmVha31sPSgwfEZqKHAsMTApKT4+MzF9fXdoaWxlKDApOzB8bSYmZTMoKX0oOTM5ODkpLEZ0KGJlKSxGdChPZSkpfShBLDE4''@;'; put 'put ''NTgxNiwxODU3MzYsdyksbT0wOyEoKDB8bSk+PSgwfGFbNDcxMzddKSk7KXA9MiooMS0ocD0rX1syMzI5Nl0pKSorcWMoKStwLF9bKHc9MTg1ODE2KyhtPDwzKXwwKT4+M109cCo9K19bdz4+M10sX1sodz0oMHxhWzEzMisoMHxhW2s+PjJdKT4+Ml0pKyhtPDwzKXwwKT4+M109K19bdz4+M10r''@;'; put 'put ''cCxtPW0rMXwwO2FbKGs9MTU2KygwfGFbYj4+Ml0pfDApPj4yXT0xKygwfGFbaz4+Ml0pLGZ1bmN0aW9uIHJWKGwsYyxmKXtjfD0wO3ZhciBiLGssTSxwPTAsbT0wLEE9MCx3PTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MDtmb3IoTT1sZSxsZT1sZSs4MHwwLGs9TSxBPTB8YVsoMHxhWzE1''@;'; put 'put ''MisobT0wfGFbKGI9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGZ8PTApPDwyKT4+Ml0scD0wfGFbNDcxMzddLG09bSsxNjh8MCxsPTA7ISgoMHxsKT49KDB8cCkpOylfWygwfGFbKDB8YVttPj4yXSkrKGY8PDIpPj4yXSkrKGw8PDMpPj4zXT0wLGw9bCsxfDA7Zm9yKG09QSsxNnwwLGw9MDsh''@;'; put 'put ''KCgwfGwpPj0oMHxjKSk7KXtlOmRve2lmKCgwfGwpIT0oMHxmKSlmb3Iodz0rV0ooMHxhWzEzMisoMHxhW20+PjJdKT4+Ml0sMHxhWzEzMisoMHxhWzE2KygwfGFbKDB8YVsxNTIrKDB8YVtiPj4yXSk+PjJdKSsobDw8Mik+PjJdKT4+Ml0pPj4yXSxrKSxBPTB8YVs0NzEzN10sdz0xL3cscD0w''@;'; put 'put ''Ozspe2lmKCgwfHApPj0oMHxBKSlicmVhayBlO19bKHBlPSgwfGFbKDB8YVsocT0wfGFbMTcyKyhEPTB8YVtiPj4yXSk+PjJdKSsoZjw8Mik+PjJdKSsobDw8Mik+PjJdKSsocDw8Myl8MCk+PjNdPVI9KChSPStfW2srKHA8PDMpPj4zXSktK19bKDB8YVsoMHxhW0QrMTYwPj4yXSkrKGY8PDIp''@;'; put 'put ''Pj4yXSkrKGw8PDMpPj4zXSpSKncpKitfWygwfGFbKDB8YVtEKzE2ND4+Ml0pKyhmPDwyKT4+Ml0pKyhsPDwzKT4+M10sX1soZ2U9KDB8YVsoRD0wfGFbRCsxNjg+PjJdKSsoZjw8Mik+PjJdKSsocDw8Myl8MCk+PjNdPStfW2dlPj4zXStSLFI9K19bKHE9KDB8YVsoMHxhW3ErKGw8PDIpPj4y''@;'; put 'put ''XSkrKGY8PDIpPj4yXSkrKHA8PDMpfDApPj4zXSxfW3E+PjNdPUc9LStfW3BlPj4zXSxfWyhEPSgwfGFbRCsobDw8Mik+PjJdKSsocDw8Myl8MCk+PjNdPUctUisgK19bRD4+M10scD1wKzF8MH19d2hpbGUoMCk7bD1sKzF8MH1sZT1NfShsLGMsTSksbGU9Un1mdW5jdGlvbiBpVihsKXt2YXIg''@;'; put 'put ''ZixBLGM9MCxwPTAsbT0wLHc9MCxiPTA7Zm9yKEE9MHxhWzQ2ODAwXSxjPTB8YVsxMjQrKDB8YVsoZj0xNisobHw9MCl8MCk+PjJdKT4+Ml07ISgoMHxjKTw9MHx8KHc9KGMrLTF8MCkvMnwwLGI9QSsodzw8Mil8MCxwPTB8YVtiPj4yXSxtPXArMTZ8MCwrX1sxMzYrKDB8YVttPj4yXSk+PjNd''@;'; put 'put ''PD0rX1sxMzYrKDB8YVtmPj4yXSk+PjNdKSk7KWFbYj4+Ml09bCxhWzEyNCsoMHxhW2Y+PjJdKT4+Ml09dyxhW0ErKGM8PDIpPj4yXT1wLGFbMTI0KygwfGFbbT4+Ml0pPj4yXT1jLGM9d31mdW5jdGlvbiBvVihsKXt2YXIgYyxmOygwfGFbKGM9MTI0KygwfGFbMTYrKGx8PTApPj4yXSl8MCk+''@;'; put 'put ''PjJdKT49MCYmUHIoOTAzNzcsOTAzOTcsNjQzLDkwNDA1KSxhWzQ2ODAxXT0xKyhmPTB8YVs0NjgwMV0pLGFbYz4+Ml09ZixhWygwfGFbNDY4MDBdKSsoZjw8Mik+PjJdPWwsKDB8Zik+MCYmaVYobCl9ZnVuY3Rpb24gWEooKXt2YXIgYyxsPTAsZj0wLHA9MDtyZXR1cm4oYz0wfGFbNDY4MDFd''@;'; put 'put ''KT8obD0wfGFbKHA9MHxhWzQ2ODAwXSk+PjJdLGFbNDY4MDFdPWY9YystMXwwLGFbcD4+Ml09Zj0wfGFbcCsoZjw8Mik+PjJdLGFbMTI0KygwfGFbZisxNj4+Ml0pPj4yXT0wLCgwfGMpPjImJmZ1bmN0aW9uIHBzZShsKXt2YXIgdyxiLGssYz0wLGY9MCxwPTAsbT0wLEE9MCxNPTA7Zm9yKGI9''@;'; put 'put ''MHxhWzQ2ODAxXSxrPTB8YVs0NjgwMF0sQT0wfGFbMTI0KygwfGFbKHc9MTYrKGx8PTApfDApPj4yXSk+PjJdOyEoKDB8KHA9QTw8MXwxKSk+PSgwfGIpfHwoZj1wKzF8MCwoMHxmKTwoMHxiKT8obT0wfGFbaysoZjw8Mik+PjJdLGM9MHxhW2srKHA8PDIpPj4yXSwrX1sxMzYrKDB8YVttKzE2''@;'; put 'put ''Pj4yXSk+PjNdPCtfWzEzNisoMHxhW2MrMTY+PjJdKT4+M10/KHA9ZixjPW0pOk09Nik6KGM9MHxhW2srKHA8PDIpPj4yXSxNPTYpLDY9PSgwfE0pJiYoTT0wKSxmPWMrMTZ8MCwrX1sxMzYrKDB8YVt3Pj4yXSk+PjNdPD0rX1sxMzYrKDB8YVtmPj4yXSk+PjNdKSk7KWFbaysocDw8Mik+PjJd''@;'; put 'put ''PWwsYVsxMjQrKDB8YVt3Pj4yXSk+PjJdPXAsYVtrKyhBPDwyKT4+Ml09YyxhWzEyNCsoMHxhW2Y+PjJdKT4+Ml09QSxBPXB9KGYpLGFbMTI0KygwfGFbbCsxNj4+Ml0pPj4yXT0tMSk6bD0wLDB8bH1mdW5jdGlvbiBLSihsLGMpe3ZhciBwO2ZvcihsfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWzQ2''@;'; put 'put ''ODAwXT0wfHZyKDQrKChjfD0wKTw8Mil8MCksYz0wfER0KGwpO2M7KSRKKGwsYyksYz0wfHp0KGwsYyk7RnQoMHxhWzQ2ODAwXSksbGU9cH1mdW5jdGlvbiAkSihsLGMpe2N8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IocD0wfGFbMTUyKygwfGFbMTYrKGx8PTApPj4y''@;'; put 'put ''XSk+PjJdLG09K19bMjMyOTVdLGY9MDtBPTB8YVtwKyhmPDwyKT4+Ml07KV9bMTM2KygwfGFbQSsxNj4+Ml0pPj4zXT1tLGY9ZisxfDA7YVs0NjgwMl09YyxfWzEzNisoaz0wfGFbYysxNj4+Ml0pPj4zXT0wLGFbaysxMjg+PjJdPTAsb1YoYyk7ZTpmb3IoO2s9MHxYSigpLGs7KWZvcihmPTB8''@;'; put 'put ''YVs0NjgwMl0sYj1rKzE2fDAsKDB8aykhPSgwfGYpJiZidmUobCxmLGssK19bMTM2KygwfGFbYj4+Ml0pPj4zXSksdz0wfE1zKGwsayk7Oyl7aWYoIXcpY29udGludWUgZTsoMHwoYz0wfGFbKDM9PSgwfChmPTMmYVt3Pj4yXSkpP3c6dys0OHwwKSs0MD4+Ml0pKT09KDB8aykmJihjPTB8YVso''@;'; put 'put ''Mj09KDB8Zik/dzp3Ky00OHwwKSs0MD4+Ml0pLG09K19bMTM2KygwfGFbdysxNj4+Ml0pPj4zXSsgK19bMTM2KyhmPTB8YVtiPj4yXSk+PjNdLEE9MTM2KyhwPTB8YVtjKzE2Pj4yXSl8MDtkb3tpZigrX1tBPj4zXT5tKXtpZihfW0E+PjNdPW0sKDB8YVtwKzEyND4+Ml0pPi0xKXtpVihjKTti''@;'; put 'put ''cmVha31hW3ArMTI4Pj4yXT0xKygwfGFbZisxMjg+PjJdKSxvVihjKTticmVha319d2hpbGUoMCk7dz0wfFZzKGwsdyxrKX19ZnVuY3Rpb24gYnZlKGwsYyxmLHApe19bKDB8YVsobD0wfGFbMTYwKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSsoKGY9MHxhWzEyMCsoMHxhWzE2KyhmfD0wKT4+''@;'; put 'put ''Ml0pPj4yXSk8PDIpPj4yXSkrKChjPTB8YVsxMjArKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pPDwzKT4+M109cD0rcCxfWygwfGFbbCsoYzw8Mik+PjJdKSsoZjw8Myk+PjNdPXB9ZnVuY3Rpb24gZ3NlKGwpe3ZhciBjO2gwKGx8PTAsMTM3NDYwLDE3NiwxKSxMNyhsKSxjPStNbChsLDB8YVs0''@;'; put 'put ''NzE3NF0sMSwwKSxfWzEyOCsoMHxhW2wrMTY+PjJdKT4+M109Y31mdW5jdGlvbiB2c2UobCxjKXtjfD0wO3ZhciBmPTA7Zm9yKGY9MHxEdChsfD0wKTs7KXtpZighZil7Zj0wO2JyZWFrfWlmKCgwfHQxKDB8SG8oZixjKSkpPDwyND4+MjQpYnJlYWs7Zj0wfHp0KGwsZil9cmV0dXJuIDB8Zn1m''@;'; put 'put ''dW5jdGlvbiB0WChsLGMpe2x8PTA7dmFyIEEsYixmPTAscD0wLG09MCx3PTA7Zm9yKGI9bGUsbGU9bGUrMTZ8MCxBPWIsKHc9MD09KDB8KGN8PTApKSkmJihmdW5jdGlvbiBFdmUobCl7YVsobHw9MCk+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+PjJdPTB9KEEpLGM9QSksZj0wfHdzKGwpO2Y7''@;'; put 'put ''KTB8czIoMHx0aShmKSwxMDgwMDYsNyk/dFgoZixjKTooaDAoZiwxMzc0ODMsMjgwLDEpLG5YKGMsZiksdFgoZiwwKSksZj0wfEVzKGYpO3cmJihhWzE4MCsoMHxhWyhtPWwrMTZ8MCk+PjJdKT4+Ml09cD0wfGFbQSs4Pj4yXSwwfHApJiYodz0wfFYwKDB8YVtBPj4yXSw0KyhwPDwyKXwwKSxh''@;'; put 'put ''WzE4NCsoMHxhW20+PjJdKT4+Ml09dyksbGU9Yn1mdW5jdGlvbiBhVihsKXtrYyhsfD0wLDEwODIzMCwxMDgyMzYpfWZ1bmN0aW9uIE12ZShsKXtoMChsfD0wLDEzNzQ2MCwzMDQsMSl9ZnVuY3Rpb24gblgobCxjKXtjfD0wO3ZhciBwLG0sQSx3LGY9MDthWyhBPTgrKGx8PTApfDApPj4yXT1m''@;'; put 'put ''PTErKDB8YVtBPj4yXSl8MCxtPTEwKyh3PTB8YVsocD1sKzR8MCk+PjJdKXwwLCgwfGYpPCgwfHcpP2w9MHxhW2w+PjJdOihhW3A+PjJdPW0sZj0wfFYwKDB8YVtsPj4yXSxtPDwyKSxhW2w+PjJdPWYsbD1mLGY9MHxhW0E+PjJdKSxhW2wrKGY8PDIpPj4yXT1jfWZ1bmN0aW9uIHJYKGwsYyl7''@;'; put 'put ''bHw9MDt2YXIgQSxiLGY9MCxwPTAsbT0wLHc9MDtmb3IoYj1sZSxsZT1sZSsxNnwwLEE9Yiwodz0wPT0oMHwoY3w9MCkpKSYmKGZ1bmN0aW9uIG9YKGwpe2FbKGx8PTApPj4yXT0wLGFbbCs0Pj4yXT0wLGFbbCs4Pj4yXT0wfShBKSxjPUEpLGY9MHx3cyhsKTtmOykwfHMyKDB8dGkoZiksMTA4''@;'; put 'put ''MDA2LDcpP3JYKGYsYyk6KGgwKGYsMTM3NDgzLDI4MCwxKSxmayhmKSxfc2UoYyxmKSxyWChmLDApKSxmPTB8RXMoZik7dyYmKGFbMTgwKygwfGFbKG09bCsxNnwwKT4+Ml0pPj4yXT1wPTB8YVtBKzg+PjJdLDB8cCkmJih3PTB8VjAoMHxhW0E+PjJdLDQrKHA8PDIpfDApLGFbMTg0KygwfGFb''@;'; put 'put ''bT4+Ml0pPj4yXT13KSxsZT1ifWZ1bmN0aW9uIHdzZShsLGMpe3ZhciBMZSxSZSxzdCxFdCxadCxjdCxidCxhbixTbixIbixmcixXZSxrdCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLHFlPTAscnQ9MCxhdD0wLFN0''@;'; put 'put ''PTAsSHI9MCxFcj0wO2Zvcihmcj1sZSxsZT1sZSs0NDh8MCxFdD1mcis0MDB8MCxzdD1mciszODR8MCxFcj1mciszNDR8MCxIcj1mciszMDR8MCxTdD1mcisxOTJ8MCxSPWZyKzcyfDAsZj1mcis2NHwwLGN0PWZyKzMyfDAsYnQ9ZnIsV2U9ZnIrNDE2fDAsT2U9ZnIrMzI4fDAsUmU9ZnIrMjg4''@;'; put 'put ''fDAsYW49ZnIrMjMyfDAsU249ZnIrMTc2fDAsSG49ZnIrMTM2fDAsWnQ9ZnIrODB8MCxEPTB8YVs2MCsobHw9MCk+PjJdLGt0PWwrMTZ8MCxtPTErKGN8PTApfDAsZj0xLHA9MDshKCgwfGYpPigwfGFbMTgwKyhBPTB8YVtrdD4+Ml0pPj4yXSkpOyl3c2UoYXQ9MHxhWygwfGFbQSsxODQ+PjJd''@;'; put 'put ''KSsoZjw8Mik+PjJdLG0pLGY9ZisxfDAscD0oMHxHbyhhdCkpK3B8MDtpZihHPSgwfEdvKGwpKS1wfDAsKExlPTA9PSgwfChhdD0oMHxhWzE4MCsoZj0wfGFba3Q+PjJdKT4+Ml0pK0d8MCkpKSYmMD09KDB8YVtmKzEyPj4yXSkpYVsoRXI9ZisxNnwwKT4+Ml09MCxhW0VyKzQ+PjJdPTAsYVtF''@;'; put 'put ''cis4Pj4yXT0wLGFbRXIrMTI+PjJdPTAsX1tmKzQwPj4zXT0xOCxfW2YrMzI+PjNdPTE4O2Vsc2V7Zj1XZSsxNnwwO2Rve2lmKCgwfGE3KGwsNCw0LFdlKSk+Pj4wPj0zKXtpZig0PT0oMHxhW2Y+PjJdKSYmMCE9KDImYVtXZSsyOD4+Ml18MCkpe2lmKDAhPSgwfChwPTB8c2koRCwwLDk5MTkw''@;'; put 'put ''LDApKSl8MCE9KDB8KGY9MHxzaShELDEsOTkxOTAsMCkpKSl7YVtXZSsyND4+Ml09MHx2cihhdDw8Mik7YnJlYWt9YVtSPj4yXT0wfHRpKGwpLCRyKDAsOTA1NzcsUiksZj0wLHA9MDticmVha31mPTAscD0wfWVsc2UgYVtmPj4yXT0zLGY9MCxwPTB9d2hpbGUoMCk7Zm9yKHFlPTB8dnIoYXQ8''@;'; put 'put ''PDUpLHJ0PTB8dnIoYXQ8PDIpLGdlPVdlKzI0fDAsRD0wIT0oMHxwKSxwZT0wLEE9MTshKCgwfEEpPigwfGFbMTgwKyhtPTB8YVtrdD4+Ml0pPj4yXSkpOylhWyhiZT1xZSsocGU8PDUpfDApPj4yXT1hWyhxPTE2KygwfGFbMTYrKG09MHxhWygwfGFbbSsxODQ+PjJdKSsoQTw8Mik+PjJdKT4+''@;'; put 'put ''Ml0pfDApPj4yXSxhW2JlKzQ+PjJdPWFbcSs0Pj4yXSxhW2JlKzg+PjJdPWFbcSs4Pj4yXSxhW2JlKzEyPj4yXT1hW3ErMTI+PjJdLGFbYmUrMTY+PjJdPWFbcSsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtxKzIwPj4yXSxhW2JlKzI0Pj4yXT1hW3ErMjQ+PjJdLGFbYmUrMjg+PjJdPWFbcSsyOD4+''@;'; put 'put ''Ml0sRCYwIT0oMHxhW2dlPj4yXSkmJihiZT0wfGVzKG0scCwwLDApLGFbKDB8YVtnZT4+Ml0pKyhwZTw8Mik+PjJdPWJlKSxhW3J0KyhwZTw8Mik+PjJdPW0scGU9cGUrMXwwLEE9QSsxfDA7ZTpkb3tpZigoMHxHKT4wKWZvcihSPWN0KzE2fDAsRz1jdCsyNHwwLHE9MCE9KDB8ZiksRD0wfER0''@;'; put 'put ''KGwpLHA9cGU7Oyl7aWYoIUQpYnJlYWsgZTswfGFbKEE9MTEyKyhtPTB8YVtEKzE2Pj4yXSl8MCk+PjJdfHwoYVtBPj4yXT1sLGFbY3Q+PjJdPTAsYVtjdCs0Pj4yXT0wLGFbY3QrOD4+Ml09MCxhW2N0KzEyPj4yXT0wLF9bUj4+M109K19bbSs5Nj4+M10rICtfW20rODg+PjNdLF9bRz4+M109''@;'; put 'put ''K19bbSs4MD4+M10sYVsoYmU9cWUrKHA8PDUpfDApPj4yXT1hW2N0Pj4yXSxhW2JlKzQ+PjJdPWFbY3QrND4+Ml0sYVtiZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbYmUrMTI+PjJdPWFbY3QrMTI+PjJdLGFbYmUrMTY+PjJdPWFbY3QrMTY+PjJdLGFbYmUrMjA+PjJdPWFbY3QrMjA+PjJdLGFbYmUr''@;'; put 'put ''MjQ+PjJdPWFbY3QrMjQ+PjJdLGFbYmUrMjg+PjJdPWFbY3QrMjg+PjJdLHEmMCE9KDB8YVtnZT4+Ml0pJiYoYmU9MHxlcyhELGYsMCwwKSxhWygwfGFbZ2U+PjJdKSsocDw8Mik+PjJdPWJlKSxhW3J0KyhwPDwyKT4+Ml09RCxwPXArMXwwKSxEPTB8enQobCxEKX19d2hpbGUoMCk7Zm9yKGJl''@;'; put 'put ''PTB8ZnVuY3Rpb24gc1cobCxjLGYpe2x8PTAsY3w9MCxmfD0wO2U6ZG97aWYoKDB8bCk8MSlsPTA7ZWxzZSBzd2l0Y2goMHxhW2YrMTY+PjJdKXtjYXNlIDQ6bD0wfGlXKGwsYyxmKTticmVhayBlO2Nhc2UgMzpsPTB8dVcobCxjLGYpO2JyZWFrIGU7ZGVmYXVsdDpsPTA7YnJlYWsgZX19d2hp''@;'; put 'put ''bGUoMCk7cmV0dXJuIDB8bH0oYXQscWUsV2UpLDB8KGY9MHxhW2dlPj4yXSkmJkZ0KGYpLGlYKGJ0LDIxNDc0ODM2NDcsMjE0NzQ4MzY0NyksZ2U9YnQrMTZ8MCxpWChPZSwtMjE0NzQ4MzY0NywtMjE0NzQ4MzY0NyksYVtnZT4+Ml09YVtPZT4+Ml0sYVtnZSs0Pj4yXT1hW09lKzQ+PjJdLGFb''@;'; put 'put ''Z2UrOD4+Ml09YVtPZSs4Pj4yXSxhW2dlKzEyPj4yXT1hW09lKzEyPj4yXSxBPWN0KzE2fDAsRD1jdCs4fDAsUj1jdCsyNHwwLEc9YnQrOHwwLHE9YnQrMjR8MCxwZT0wfGFbMTU3MTJdLGY9MDshKCgwfGYpPj0oMHxhdCkpOyliPSsoMHxhW2JlKyhmPDwzKT4+Ml0pLE09KygwfGFbYmUrKGY8''@;'; put 'put ''PDMpKzQ+PjJdKSxhW2N0Pj4yXT1hWyhwPXFlKyhmPDw1KXwwKT4+Ml0sYVtjdCs0Pj4yXT1hW3ArND4+Ml0sYVtjdCs4Pj4yXT1hW3ArOD4+Ml0sYVtjdCsxMj4+Ml09YVtwKzEyPj4yXSxhW2N0KzE2Pj4yXT1hW3ArMTY+PjJdLGFbY3QrMjA+PjJdPWFbcCsyMD4+Ml0sYVtjdCsyND4+Ml09''@;'; put 'put ''YVtwKzI0Pj4yXSxhW2N0KzI4Pj4yXT1hW3ArMjg+PjJdLF9bY3Q+PjNdPXc9K19bY3Q+PjNdK2IsX1tBPj4zXT1iPStfW0E+PjNdK2IsX1tEPj4zXT1rPStfW0Q+PjNdK00sX1tSPj4zXT1NPStfW1I+PjNdK00sX1tidD4+M109K19bKCtfW2J0Pj4zXTx3P2J0OmN0KT4+M10sX1tHPj4zXT0r''@;'; put 'put ''X1soK19bRz4+M108az9idDpjdCkrOD4+M10sX1tnZT4+M109K19bKCtfW2dlPj4zXT5iP2J0OmN0KSsxNj4+M10sX1txPj4zXT0rX1soK19bcT4+M10+TT9idDpjdCkrMjQ+PjNdLG09MTYrKHA9MHxhW3J0KyhmPDwyKT4+Ml0pfDAsKDB8Zik8KDB8YVsxODArKDB8YVtrdD4+Ml0pPj4yXSk/''@;'; put 'put ''KGFbKE9lPTE2KygwfGFbbT4+Ml0pfDApPj4yXT1hW2N0Pj4yXSxhW09lKzQ+PjJdPWFbY3QrND4+Ml0sYVtPZSs4Pj4yXT1hW2N0Kzg+PjJdLGFbT2UrMTI+PjJdPWFbY3QrMTI+PjJdLGFbT2UrMTY+PjJdPWFbY3QrMTY+PjJdLGFbT2UrMjA+PjJdPWFbY3QrMjA+PjJdLGFbT2UrMjQ+PjJd''@;'; put 'put ''PWFbY3QrMjQ+PjJdLGFbT2UrMjg+PjJdPWFbY3QrMjg+PjJdKTooT2U9MTYrKDB8YVttPj4yXSl8MCxhW3N0Pj4yXT1hW2N0Pj4yXSxhW3N0KzQ+PjJdPWFbY3QrND4+Ml0sYVtzdCs4Pj4yXT1hW2N0Kzg+PjJdLGFbc3QrMTI+PjJdPWFbY3QrMTI+PjJdLGFbRXQ+PjJdPWFbQT4+Ml0sYVtF''@;'; put 'put ''dCs0Pj4yXT1hW0ErND4+Ml0sYVtFdCs4Pj4yXT1hW0ErOD4+Ml0sYVtFdCsxMj4+Ml09YVtBKzEyPj4yXSxic2UoUmUsc3QsRXQpLGFbT2U+PjJdPWFbUmU+PjJdLGFbT2UrND4+Ml09YVtSZSs0Pj4yXSxhW09lKzg+PjJdPWFbUmUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtSZSsxMj4+Ml0pLGY9''@;'; put 'put ''ZisxfDA7Zm9yKDB8KGY9MHxhWzEyKyhwPTB8YVtrdD4+Ml0pPj4yXSkmJih3PStfW2YrMjQ+PjNdLExlPyhiPStfW2YrMzI+PjNdLGFbYnQ+PjJdPTAsYVtidCs0Pj4yXT0wLGFbYnQrOD4+Ml09MCxhW2J0KzEyPj4yXT0wLF9bZ2U+PjNdPXcsX1txPj4zXT1iLGI9MCxrPXcpOihiPStfW2J0''@;'; put 'put ''Pj4zXSxrPStfW2dlPj4zXSksdz0uNSooTT13LShrLWIpKSxNPjAmJihfW2J0Pj4zXT1iLXcsX1tnZT4+M109ayt3KSksX1tidD4+M109Yj0rX1tidD4+M10tKHc9KDB8Yyk+MD8uNSorKCgwfGFbV2UrOD4+Ml0pPj4+MCk6MCksX1tnZT4+M109az0rX1tnZT4+M10rdyxfW0c+PjNdPU09LXct''@;'; put 'put ''K19bcCs1Nj4+M10rICtfW0c+PjNdLF9bcT4+M109dz0rX1twKzg4Pj4zXSt3KyArX1txPj4zXSxmPTA7ISgoMHxmKT49KDB8YXQpKTspbT0xNisocD0wfGFbcnQrKGY8PDIpPj4yXSl8MCwoMHxmKTwoMHxhWzE4MCsoMHxhW2t0Pj4yXSk+PjJdKT8oYVtjdD4+Ml09YVsoU3Q9MTYrKDB8YVtt''@;'; put 'put ''Pj4yXSl8MCk+PjJdLGFbY3QrND4+Ml09YVtTdCs0Pj4yXSxhW2N0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtjdCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtjdCsxNj4+Ml09YVtTdCsxNj4+Ml0sYVtjdCsyMD4+Ml09YVtTdCsyMD4+Ml0sYVtjdCsyND4+Ml09YVtTdCsyND4+Ml0sYVtjdCsyOD4+Ml09''@;'; put 'put ''YVtTdCsyOD4+Ml0sYVtzdD4+Ml09YVtTdD4+Ml0sYVtzdCs0Pj4yXT1hW1N0KzQ+PjJdLGFbc3QrOD4+Ml09YVtTdCs4Pj4yXSxhW3N0KzEyPj4yXT1hW1N0KzEyPj4yXSxhW0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQr''@;'; put 'put ''MTI+PjJdPWFbYnQrMTI+PjJdLEg3KGN0LHN0LEV0KSxhW3N0Pj4yXT1hW0E+PjJdLGFbc3QrND4+Ml09YVtBKzQ+PjJdLGFbc3QrOD4+Ml09YVtBKzg+PjJdLGFbc3QrMTI+PjJdPWFbQSsxMj4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09''@;'; put 'put ''YVtidCs4Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxINyhhbixzdCxFdCksYVtBPj4yXT1hW2FuPj4yXSxhW0ErND4+Ml09YVthbis0Pj4yXSxhW0ErOD4+Ml09YVthbis4Pj4yXSxhW0ErMTI+PjJdPWFbYW4rMTI+PjJdLGFbKFN0PTE2KygwfGFbbT4+Ml0pfDApPj4yXT1hW2N0Pj4y''@;'; put 'put ''XSxhW1N0KzQ+PjJdPWFbY3QrND4+Ml0sYVtTdCs4Pj4yXT1hW2N0Kzg+PjJdLGFbU3QrMTI+PjJdPWFbY3QrMTI+PjJdLGFbU3QrMTY+PjJdPWFbY3QrMTY+PjJdLGFbU3QrMjA+PjJdPWFbY3QrMjA+PjJdLGFbU3QrMjQ+PjJdPWFbY3QrMjQ+PjJdLGFbU3QrMjg+PjJdPWFbY3QrMjg+PjJd''@;'; put 'put ''KTooYVtzdD4+Ml09YVsoU3Q9MTYrKDB8YVttPj4yXSl8MCk+PjJdLGFbc3QrND4+Ml09YVtTdCs0Pj4yXSxhW3N0Kzg+PjJdPWFbU3QrOD4+Ml0sYVtzdCsxMj4+Ml09YVtTdCsxMj4+Ml0sYVtFdD4+Ml09YVtidD4+Ml0sYVtFdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbRXQrOD4+Ml09YVtidCs4''@;'; put 'put ''Pj4yXSxhW0V0KzEyPj4yXT1hW2J0KzEyPj4yXSxINyhTbixzdCxFdCksYVtTdD4+Ml09YVtTbj4+Ml0sYVtTdCs0Pj4yXT1hW1NuKzQ+PjJdLGFbU3QrOD4+Ml09YVtTbis4Pj4yXSxhW1N0KzEyPj4yXT1hW1NuKzEyPj4yXSksZj1mKzF8MDthW3N0Pj4yXT1hW2dlPj4yXSxhW3N0KzQ+PjJd''@;'; put 'put ''PWFbZ2UrND4+Ml0sYVtzdCs4Pj4yXT1hW2dlKzg+PjJdLGFbc3QrMTI+PjJdPWFbZ2UrMTI+PjJdLGFbRXQ+PjJdPWFbYnQ+PjJdLGFbRXQrND4+Ml09YVtidCs0Pj4yXSxhW0V0Kzg+PjJdPWFbYnQrOD4+Ml0sYVtFdCsxMj4+Ml09YVtidCsxMj4+Ml0sSDcoSG4sc3QsRXQpLGFbZ2U+PjJd''@;'; put 'put ''PWFbSG4+PjJdLGFbZ2UrND4+Ml09YVtIbis0Pj4yXSxhW2dlKzg+PjJdPWFbSG4rOD4+Ml0sYVtnZSsxMj4+Ml09YVtIbisxMj4+Ml0sYVtzdD4+Ml09YVtidD4+Ml0sYVtzdCs0Pj4yXT1hW2J0KzQ+PjJdLGFbc3QrOD4+Ml09YVtidCs4Pj4yXSxhW3N0KzEyPj4yXT1hW2J0KzEyPj4yXSxh''@;'; put 'put ''W0V0Pj4yXT1hW2J0Pj4yXSxhW0V0KzQ+PjJdPWFbYnQrND4+Ml0sYVtFdCs4Pj4yXT1hW2J0Kzg+PjJdLGFbRXQrMTI+PjJdPWFbYnQrMTI+PjJdLEg3KFp0LHN0LEV0KSxhW2J0Pj4yXT1hW1p0Pj4yXSxhW2J0KzQ+PjJdPWFbWnQrND4+Ml0sYVtidCs4Pj4yXT1hW1p0Kzg+PjJdLGFbYnQr''@;'; put 'put ''MTI+PjJdPWFbWnQrMTI+PjJdLGFbKEhyPTE2KygwfGFba3Q+PjJdKXwwKT4+Ml09YVtidD4+Ml0sYVtIcis0Pj4yXT1hW2J0KzQ+PjJdLGFbSHIrOD4+Ml09YVtidCs4Pj4yXSxhW0hyKzEyPj4yXT1hW2J0KzEyPj4yXSxhW0hyKzE2Pj4yXT1hW2J0KzE2Pj4yXSxhW0hyKzIwPj4yXT1hW2J0''@;'; put 'put ''KzIwPj4yXSxhW0hyKzI0Pj4yXT1hW2J0KzI0Pj4yXSxhW0hyKzI4Pj4yXT1hW2J0KzI4Pj4yXSxGdChxZSksRnQocnQpLEZ0KGJlKX1sZT1mcn1mdW5jdGlvbiBsVihsLGMpe3ZhciBHLHEscGUsYmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wLEQ9MCxSPTAsT2U9MDtiZT1sZSxsZT1s''@;'; put 'put ''ZSs4MHwwLHc9YmUrOHwwLGY9YmUsRz0rX1sxNisoUj0wfGFbKHBlPTE2KyhsfD0wKXwwKT4+Ml0pPj4zXSxxPStfW1IrMjQ+PjNdLFI9MCE9KDB8KGN8PTApKTtlOmRve2lmKFIpZm9yKGY9MHxEdChsKSxwPTB8YVsxNTcxMl07Oyl7aWYoIWYpYnJlYWsgZTsoMHxhWzExMisoQT0wfGFbKG09''@;'; put 'put ''ZisxNnwwKT4+Ml0pPj4yXSk9PSgwfGwpJiYoX1soT2U9QSsxNnwwKT4+M109K19bT2U+PjNdK0csX1soQT1BKzI0fDApPj4zXT0rX1tBPj4zXStxLCExKSYmKHE2KGMpLE9lPTB8dGkoZiksTT0rX1sxNisoQT0wfGFbbT4+Ml0pPj4zXSxEPStfW0ErMjQ+PjNdLGFbdz4+Ml09T2UsX1t3Kzg+''@;'; put 'put ''PjNdPU0sX1t3KzE2Pj4zXT1ELFQwKHAsOTA1NDQsdykpLGY9MHx6dChsLGYpfWVsc2UgcD0wfGFbMTU3MTJdfXdoaWxlKDApO2Zvcih3PWMrMXwwLGw9MTshKCgwfGwpPigwfGFbMTgwKyhmPTB8YVtwZT4+Ml0pPj4yXSkpOylBPTB8YVsoMHxhW2YrMTg0Pj4yXSkrKGw8PDIpPj4yXSxSJiYo''@;'; put 'put ''az0rX1syNCsoZj0wfGFbKG09QSsxNnwwKT4+Ml0pPj4zXStxLE09K19bZiszMj4+M10rRyxEPStfW2YrNDA+PjNdK3EsX1tmKzE2Pj4zXT0rX1tmKzE2Pj4zXStHLF9bZisyND4+M109ayxfW2YrMzI+PjNdPU0sX1tmKzQwPj4zXT1EKSxsVihBLHcpLGw9bCsxfDA7bGU9YmV9ZnVuY3Rpb24g''@;'; put 'put ''cTYobCl7dmFyIGM7Zm9yKGx8PTAsYz0wfGFbMTU3MTJdOyEoKDB8bCk8PTApOylfdSg5MDU3NCxjKSxsPWwrLTF8MH1mdW5jdGlvbiBpWChsLGMsZil7Zj0rZixfWyhsfD0wKT4+M109Yz0rYyxfW2wrOD4+M109Zn1mdW5jdGlvbiBic2UobCxjLGYpe3ZhciBwO3A9LjUqKCtfWzgrKGZ8PTAp''@;'; put 'put ''Pj4zXSsgK19bOCsoY3w9MCk+PjNdKSxfWyhsfD0wKT4+M109LjUqKCtfW2Y+PjNdKyArX1tjPj4zXSksX1tsKzg+PjNdPXB9ZnVuY3Rpb24gSDcobCxjLGYpe3ZhciBwO3A9K19bOCsoY3w9MCk+PjNdLStfWzgrKGZ8PTApPj4zXSxfWyhsfD0wKT4+M109K19bYz4+M10tK19bZj4+M10sX1ts''@;'; put 'put ''Kzg+PjNdPXB9ZnVuY3Rpb24gX3NlKGwsYyl7Y3w9MDt2YXIgcCxtLEEsdyxmPTA7YVsoQT04KyhsfD0wKXwwKT4+Ml09Zj0xKygwfGFbQT4+Ml0pfDAsbT0xMCsodz0wfGFbKHA9bCs0fDApPj4yXSl8MCwoMHxmKTwoMHx3KT9sPTB8YVtsPj4yXTooYVtwPj4yXT1tLGY9MHxWMCgwfGFbbD4+''@;'; put 'put ''Ml0sbTw8MiksYVtsPj4yXT1mLGw9ZixmPTB8YVtBPj4yXSksYVtsKyhmPDwyKT4+Ml09Y31mdW5jdGlvbiBsWChsKXt2YXIgYyxmPTAscD0wO2ZvcihjPTE2KyhsfD0wKXwwLGw9MTtmPTB8YVsxODQrKHA9MHxhW2M+PjJdKT4+Ml0sISgoMHxsKT4oMHxhW3ArMTgwPj4yXSkpOylJYygwfGFb''@;'; put 'put ''MTIrKDB8YVsxNisocD0wfGFbZisobDw8Mik+PjJdKT4+Ml0pPj4yXSksbFgocCksbD1sKzF8MDtGdChmKX1mdW5jdGlvbiBrc2UobCl7dmFyIGM7Z0QobHw9MCksYz0wfHZyKCgwfGhyWzE3NisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4xXSk8PDMpLGFbMTMyKygwfGFbbCsxNj4+Ml0pPj4y''@;'; put 'put ''XT1jLFR5KGwsMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXSl9ZnVuY3Rpb24gU3NlKGwsYyl7Y3w9MDt2YXIgZixwPTA7aDAobHw9MCwxMzc0NjAsMTc2LDEpLHA9K01sKGwsMHxhWzQ3MTc0XSwxLDApLF9bMTI4KygwfGFbKGY9bCsxNnwwKT4+Ml0pPj4zXT1wLHA9K01sKGws''@;'; put 'put ''YywrX1sxMzcxXSwwKSxfWzEzNisoMHxhW2Y+PjJdKT4+M109cCxMNyhsKX1mdW5jdGlvbiBzWChsKXt2YXIgQSxjPTAsZj0wLHA9MCxtPTA7Zm9yKEE9MTYrKGx8PTApfDAsbT0xO2M9MHxhWzE4NCsocD0wfGFbQT4+Ml0pPj4yXSwhKCgwfG0pPigwfGFbcCsxODA+PjJdKSk7KUljKDB8YVsx''@;'; put 'put ''MisoMHxhWyhjPTE2KyhwPTB8YVtjKyhtPDwyKT4+Ml0pfDApPj4yXSk+PjJdKSwwfChmPTB8YVsxNDArKDB8YVtjPj4yXSk+PjJdKSYmKEZ0KDB8YVtmPj4yXSksRnQoMHxhWzE0MCsoMHxhW2M+PjJdKT4+Ml0pKSxzWChwKSxtPW0rMXwwO0Z0KGMpLCgwfGRpKGwpKSE9KDB8bCkmJkhpKGws''@;'; put 'put ''MTM3NDgzKX1mdW5jdGlvbiBURChsLGMsZil7bHw9MCxmfD0wO3ZhciBtLGIsayxNLHA9MCxBPTAsdz0wLEQ9MCxSPTAsRz0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsYj1NLChrPTA9PSgwfChjfD0wKSkpJiYoZnVuY3Rpb24gTjcobCl7YVsobHw9MCk+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzg+''@;'; put 'put ''PjJdPTB9KGIpLGM9YiksbT1mKzE2fDAscD0wfHdzKGwpO3A7KTB8czIoMHx0aShwKSwxMDgwMDYsNyk/VEQocCxjLGYpOihoMChwLDEzNzQ4MywyODAsMSksRD0wfHZyKDU2KSxhWzE0MCsoRz0wfGFbcCsxNj4+Ml0pPj4yXT1ELGl0W0crMTc2Pj4xXT0wfGl0WzE3NisoUj0wfGFbbT4+Ml0p''@;'; put 'put ''Pj4xXSxhW0QrNDQ+PjJdPTErKDB8YVs0NCsoMHxhW1IrMTQwPj4yXSk+PjJdKSxhW0QrNDg+PjJdPWYsc1YoYyxwKSxURChwLDAscCkpLHA9MHxFcyhwKTtrJiYoYVsxODArKDB8YVsodz1sKzE2fDApPj4yXSk+PjJdPUE9MHxhW2IrOD4+Ml0sMHxBKSYmKEc9MHxWMCgwfGFbYj4+Ml0sNCso''@;'; put 'put ''QTw8Mil8MCksYVsxODQrKDB8YVt3Pj4yXSk+PjJdPUcpLGxlPU19ZnVuY3Rpb24gc1YobCxjKXtjfD0wO3ZhciBwLG0sQSx3LGY9MDthWyhBPTgrKGx8PTApfDApPj4yXT1mPTErKDB8YVtBPj4yXSl8MCxtPTEwKyh3PTB8YVsocD1sKzR8MCk+PjJdKXwwLCgwfGYpPCgwfHcpP2w9MHxhW2w+''@;'; put 'put ''PjJdOihhW3A+PjJdPW0sZj0wfFYwKDB8YVtsPj4yXSxtPDwyKSxhW2w+PjJdPWYsbD1mLGY9MHxhW0E+PjJdKSxhW2wrKGY8PDIpPj4yXT1jfWZ1bmN0aW9uIGNWKGwsYyl7Y3w9MDt2YXIgayxNLFIsRyxwZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxEPTAsZ2U9MCxiZT0wLE9lPTAsTGU9''@;'; put 'put ''MCxSZT0wO2ZvcihwZT1sZSxsZT1sZSs2NHwwLGY9cGUrNDB8MCxEPXBlKzU2fDAsTT1wZSs1MnwwLGs9cGUsZj0wfER0KGx8PTApO2Y7KWFbMTY0KygwfGFbZisxNj4+Ml0pPj4yXT0wLGY9MHx6dChsLGYpO2ZvcihSPTB8ZnVuY3Rpb24gSjEobCxjKXtsfD0wO3ZhciBELFIsRyxSZSxmPTAs''@;'; put 'put ''cD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTA7Zm9yKFJlPWxlLGxlPWxlKzE2MHwwLHE9UmUrMjR8MCxwZT1SZSs4fDAscD1SZSxmPVJlKzU2fDAsYVsoT2U9MTYrKGN8PTApfDApPj4yXT0xKyhMZT0wfGFbT2U+PjJdKSxhW3E+PjJdPUxl''@;'; put 'put ''LG9vKGYsOTA3OTYscSksZmVbcT4+MF09MHxmZVsxODU4OF0sZmVbcSsxPj4wXT0wfGZlWzE4NTg5XSxmZVtxKzI+PjBdPTB8ZmVbMTg1OTBdLGZlW3ErMz4+MF09MHxmZVsxODU5MV0saDAoTGU9MHxvYyg5MTE1NixxLDApLDEzNzQ4MywyODAsMSksYmU9MHx2cig1NiksYVsxNDArKE09MHxh''@;'; put 'put ''WyhPZT1MZSsxNnwwKT4+Ml0pPj4yXT1iZSxpdFtNKzE3Nj4+MV09MHxpdFsxNzYrKDB8YVsoYmU9bCsxNnwwKT4+Ml0pPj4xXSxmWChsLExlLDkyNTA3KSxmWChsLExlLDkzMTEyKSxmWChsLExlLDkxMjAyKSxNPWMrNHwwLEQ9cSsxNnwwLFI9cSs4fDAsRz1xKzI0fDAsQT0wLGs9MTshKCgw''@;'; put 'put ''fGspPigwfGFbMTgwKyhmPTB8YVtiZT4+Ml0pPj4yXSkpOyl7Zm9yKGFbcT4+Ml09YVszMzJdLGFbcSs0Pj4yXT1hWzMzM10sYVtxKzg+PjJdPWFbMzM0XSxhW3ErMTI+PjJdPWFbMzM1XSxhW3ErMTY+PjJdPWFbMzM2XSxhW3ErMjA+PjJdPWFbMzM3XSxhW3ErMjQ+PjJdPWFbMzM4XSxhW3Er''@;'; put 'put ''Mjg+PjJdPWFbMzM5XSxmayhwPTB8YVsoMHxhW2YrMTg0Pj4yXSkrKGs8PDIpPj4yXSksbT0wfFRmKExlLDB8dGkocCkpLGFbMjEyKyhmPTB8YVsodz1tKzE2fDApPj4yXSk+PjJdPXAsYj1BKzF8MCxhW2YrMTIwPj4yXT1BLDB8YVtNPj4yXSYmUnZlKHAsbSxjLHEpLGY9MHxEdChwKTtmOylh''@;'; put 'put ''WzE2NCsoMHxhW2YrMTY+PjJdKT4+Ml09bSxmPTB8enQocCxmKTswfGZlWzExOSsoZj0wfGFbdz4+Ml0pPj4wXSYmKF9bKHc9MHxhW2YrMTMyPj4yXSk+PjNdPS41KigrX1tEPj4zXSsgK19bcT4+M10pLF9bdys4Pj4zXT0uNSooK19bRz4+M10rICtfW1I+PjNdKSksQT1iLGs9aysxfDB9Zm9y''@;'; put 'put ''KHc9MHxEdChsKTt3Oyl7aWYoMHxhWzE2NCsocD0wfGFbKGY9dysxNnwwKT4+Ml0pPj4yXSlmPUE7ZWxzZXtpZigwfChxPTB8YVsobT1wKzIxMnwwKT4+Ml0pJiYoMHxxKSE9KDB8YVs0OCsoMHxhWzE0MCsoMHxhW2JlPj4yXSk+PjJdKT4+Ml0pKXtnZT0xODticmVha31hW20+PjJdPWwsMHxm''@;'; put 'put ''ZVtwKzExOD4+MF0/Zj1BOihtPTB8VGYoTGUsMHx0aSh3KSksYVsxNjQrKHA9MHxhW2Y+PjJdKT4+Ml09bSxhWzEyMCsobT0wfGFbbSsxNj4+Ml0pPj4yXT1BLF9bbSszMj4+M109K19bcCszMj4+M10sX1ttKzQwPj4zXT0rX1twKzQwPj4zXSxfW20rODg+PjNdPStfW3ArODg+PjNdLF9bbSs5''@;'; put 'put ''Nj4+M109K19bcCs5Nj4+M10sX1ttKzgwPj4zXT0rX1twKzgwPj4zXSxhW20rOD4+Ml09YVtwKzg+PjJdLGFbbSsxMj4+Ml09YVtwKzEyPj4yXSwoZj0wfGZlW3ArMTE5Pj4wXSk8PDI0Pj4yNCYmKF9bKHE9MHxhW20rMTMyPj4yXSk+PjNdPStfWyhjPTB8YVtwKzEzMj4+Ml0pPj4zXSxfW3Er''@;'; put 'put ''OD4+M109K19bYys4Pj4zXSxmZVttKzExOT4+MF09ZiksYVs4KygwfGFbbSsxMTI+PjJdKT4+Ml09dyxmPUErMXwwKX13PTB8enQobCx3KSxBPWZ9Zm9yKDE4PT0oMHxnZSkmJihjPTB8dGkodykscT0wfHRpKGwpLGdlPTB8dGkoMHxhWzIxMisoMHxhW2Y+PjJdKT4+Ml0pLGFbcGU+PjJdPWMs''@;'; put 'put ''YVtwZSs0Pj4yXT1xLGFbcGUrOD4+Ml09Z2UsJHIoMSw5MDgyNixwZSksemUoMTg3MjEyLDEpKSxiPTB8RHQobCk7Yjspe2ZvcihNPTE2KyhrPTB8YVsxNjQrKDB8YVtiKzE2Pj4yXSk+PjJdKXwwLG09MHx3MChsLGIpO207KSgwfChmPTB8YVsxNjQrKDB8YVsxNisoMHxhWygyPT0oMyZhW20+''@;'; put 'put ''PjJdfDApP206bSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpIT0oMHxrKSYmKGgwKHc9Zj4+PjA+az4+PjA/MHxLYShMZSxrLGYsMCwxKTowfEthKExlLGYsaywwLDEpLDEzNzQ2MCwxNzYsMSksX1sxMzYrKGdlPTB8YVt3KzE2Pj4yXSk+PjNdPStfWzEzNisocD0wfGFbbSsxNj4+Ml0pPj4z''@;'; put 'put ''XSxfW2dlKzEyOD4+M109K19bcCsxMjg+PjNdLGFbKHA9NCsoZj0wfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MCk+PjJdPTErKDB8YVtwPj4yXSksYVsocGU9NCsocD0wfGFbMTEyKygwfGFbTT4+Ml0pPj4yXSl8MCk+PjJdPTErKDB8YVtwZT4+Ml0pLDB8YVtnZSsxNzI+PjJdfHwoYVtm''@;'; put 'put ''Pj4yXT0xKygwfGFbZj4+Ml0pLGFbcD4+Ml09MSsoMHxhW3A+PjJdKSksZlYodyxtKSksbT0wfFMwKGwsbSk7Yj0wfHp0KGwsYil9aWYoMHwocD0wfGFbKGY9MHxhWzE0MCsoMHxhW2JlPj4yXSk+PjJdKT4+Ml0pKXtmb3IobT0wfHZyKDE2KyhhW2YrND4+Ml08PDQpfDApLGFbYVsxNDArKDB8''@;'; put 'put ''YVtPZT4+Ml0pPj4yXT4+Ml09bSxmPTA7MHxhW3A+PjJdOykoYj0wfGFbMTY0KygwfGFbMTYrKDB8YVtwKzQ+PjJdKT4+Ml0pPj4yXSkmJihCdmUobCxwKSxrPTB8VGYoTGUsMTkzNzcyKSxhWzEyMCsoMHxhWyhNPWsrMTZ8MCk+PjJdKT4+Ml09QSxoMCh3PWs+Pj4wPmI+Pj4wPzB8S2EoTGUs''@;'; put 'put ''YixrLDAsMSk6MHxLYShMZSxrLGIsMCwxKSwxMzc0NjAsMTc2LDEpLF9bMTM2KyhiZT0wfGFbdysxNj4+Ml0pPj4zXT0rX1sxMzYrKHBlPTB8YVsxNisoZ2U9MHxhW3A+PjJdKT4+Ml0pPj4zXSxfW2JlKzEyOD4+M109K19bcGUrMTI4Pj4zXSxmVih3LGdlKSxhWyhiZT00KyhnZT0wfGFbMTEy''@;'; put 'put ''KygwfGFbTT4+Ml0pPj4yXSl8MCk+PjJdPTErKDB8YVtiZT4+Ml0pLGFbKHBlPTQrKGJlPTB8YVsxMTIrKDB8YVtiKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MSsoMHxhW3BlPj4yXSksYVtnZT4+Ml09MSsoMHxhW2dlPj4yXSksYVtiZT4+Ml09MSsoMHxhW2JlPj4yXSksYVttKzQ+PjJdPWssX1tt''@;'; put 'put ''Kzg+PjNdPStfW3ArOD4+M10sYVttPj4yXT13LGY9ZisxfDAsbT1tKzE2fDAsQT1BKzF8MCkscD1wKzE2fDA7YVs0KygwfGFbMTQwKygwfGFbT2U+PjJdKT4+Ml0pPj4yXT1mfXJldHVybiBsZT1SZSwwfExlfShsLGMpLEc9MHxmdW5jdGlvbiBGOWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgayxN''@;'; put 'put ''LEQsUixwPTAsbT0wLEE9MCx3PTAsYj0wLEc9MDtSPWxlLGxlPWxlKzE2MHwwLEQ9UisxNnwwLGI9Uis4fDAsbT1SLGs9UisyNHwwLE09MHx2cigwfEdvKGx8PTApKSxwPTB8YVthWzE0MCsoMHxhWyhBPWwrMTZ8MCk+PjJdKT4+Ml0+PjJdO2U6ZG97aWYocClmb3IoRz0wfHRpKGwpLHc9MHxh''@;'; put 'put ''WzQ2OTIzXSxhW20+PjJdPUcsYVttKzQ+PjJdPXcsb28oayw5NDYxMixtKSx3PTB8cHMobCxrLDEpLGgwKHcsMTM3NDgzLDI4MCwxKSxtPTB8dnIoNTYpLGFbMTQwKygwfGFbdysxNj4+Ml0pPj4yXT1tLGFbbT4+Ml09cCxhW20rND4+Ml09YVs0KygwfGFbMTQwKygwfGFbQT4+Ml0pPj4yXSk+''@;'; put 'put ''PjJdOzspe2lmKCEobT0wfGFbcCs0Pj4yXSkpe209dyxwPTE7YnJlYWsgZX0wfGZlW00rKDB8YVsxMjArKDB8YVttKzE2Pj4yXSk+PjJdKT4+MF18fHJqKGwsbSx3LE0pLHA9cCsxNnwwfWVsc2UgbT0wLHA9MH13aGlsZSgwKTtmb3IoQT0wLHc9MHxEdChsKTt3OykwPT0oMHxmZVtNKygwfGFb''@;'; put 'put ''MTIwKyhHPTB8YVt3KzE2Pj4yXSk+PjJdKT4+MF0pJiYzPT0oMHxmZVtHKzExOT4+MF0pJiYobXx8KEc9MHx0aShsKSxtPSgwfGFbNDY5MjNdKStwfDAsYVtiPj4yXT1HLGFbYis0Pj4yXT1tLG9vKGssOTQ2MTIsYiksaDAobT0wfHBzKGwsaywxKSwxMzc0ODMsMjgwLDEpLEc9MHx2cig1Niks''@;'; put 'put ''YVsxNDArKDB8YVttKzE2Pj4yXSk+PjJdPUcscD1wKzF8MCkscmoobCx3LG0sTSksQT0xKSx3PTB8enQobCx3KTtmb3IoMHxtJiZ4QyhtKSxtPTB8RHQobCk7bTspMHxmZVtNKygwfGFbMTIwKygwfGFbbSsxNj4+Ml0pPj4yXSk+PjBdfHwoYj0wfHRpKGwpLEc9KDB8YVs0NjkyM10pK3B8MCxh''@;'; put 'put ''W0Q+PjJdPWIsYVtEKzQ+PjJdPUcsb28oayw5NDYyMCxEKSxoMChHPTB8cHMobCxrLDEpLDEzNzQ4MywyODAsMSksYj0wfHZyKDU2KSxhWzE0MCsoMHxhW0crMTY+PjJdKT4+Ml09YixyaihsLG0sRyxNKSx4QyhHKSxwPXArMXwwKSxtPTB8enQobCxtKTtmb3IoRnQoTSksYVs0NjkyM109KDB8''@;'; put 'put ''YVs0NjkyM10pK3AsMHxjJiYoYVtjPj4yXT1wKSwwfGYmJihhW2Y+PjJdPUEpLEE9dz0wfHZyKDQrKHA8PDIpfDApLG09MHx3cyhsKTttOylhW0E+PjJdPW0sQT1BKzR8MCxtPTB8RXMobSkscD1wKy0xfDA7cmV0dXJuIHA/KFByKDk0NjI4LDk0NjM5LDEzNCw5NDY0NiksMCk6KGFbQT4+Ml09''@;'; put 'put ''MCxsZT1SLDB8dyl9KFIsRCxNKSxmPUc7Yj1mKzR8MCxwPTB8YVtmPj4yXTspe2ZvcihGdmUocCxrKSxmPTB8RHQocCk7ZjspbT0wfHp0KHAsZiksMHxhWzIxMisodz0wfGFbKEE9ZisxNnwwKT4+Ml0pPj4yXT8oY1YoT2U9MHxJdmUoZixwKSxjKSxfWzMyKyh3PTB8YVtBPj4yXSk+PjNdPWJl''@;'; put 'put ''PStfWzI0KyhPZT0wfGFbMTQwKygwfGFbT2UrMTY+PjJdKT4+Ml0pPj4zXSxfW3crNDA+PjNdPWdlPStfW09lKzMyPj4zXSxfW3crODg+PjNdPWJlKj0zNixfW3crOTY+PjNdPWJlLF9bdys4MD4+M109NzIqZ2UsZj1tKTooMHxhWzgrKDB8YVt3KzExMj4+Ml0pPj4yXXx8b2kocCxmKSxmPW0p''@;'; put 'put ''OygwfEdvKHApKTw9MXx8KCgwfGFbYz4+Ml0pPT0oMHxsKSYmdTJlKHApLHBYKHAsaykpLGY9Yn1mb3IoKDB8KGY9MHxhW0Q+PjJdKSk8PTE/KDE9PSgwfGYpJiZpZygwfGFbRz4+Ml0pLGY9MCk6KDB8YVtNPj4yXT8ocD0wfHZyKGYpLGZlW3A+PjBdPTEsZj0wfGFbRD4+Ml0pOnA9MCxhW2Mr''@;'; put 'put ''NDA+PjJdPXAsZj0wfFVkKGYsRywwLGMrMjB8MCksRnQocCkpLGZ1bmN0aW9uIER2ZShsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTA7dmFyIEhlLFZlLHFlLHJ0LFdlLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsYXQ9MCxT''@;'; put 'put ''dD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTA7V2U9bGUsbGU9bGUrMzJ8MCxIZT1XZSsxNnwwLHJ0PVdlLE09MHxhWzgrKEF8PTApPj4yXSxiPTB8YVtBKzEyPj4yXSxWZT0oMHxhW0E+PjJdKT09KDB8KG18PTApKSxxZT0wIT0oMHwoY3w9MCkpO2U6ZG97aWYocWUpaWYoRz0wfGFbMTYrKDB8YVtm''@;'; put 'put ''Pj4yXSk+PjJdLGs9K19bRysxNj4+M10sTT1+fihrKyhrPj0wPy41Oi0uNSkpLGFbcnQ+PjJdPU0saz0rX1tHKzI0Pj4zXSxBPX5+KGsrKGs+PTA/LjU6LS41KSksT2U9cnQrNHwwLGFbT2U+PjJdPUEsaz0rX1tHKzMyPj4zXSxEPX5+KGsrKGs+PTA/LjU6LS41KSksTGU9cnQrOHwwLGFbTGU+''@;'; put 'put ''PjJdPUQsaz0rX1tHKzQwPj4zXSxHPX5+KGsrKGs+PTA/LjU6LS41KSksUmU9cnQrMTJ8MCxhW1JlPj4yXT1HLCgwfGMpPjEpZm9yKHE9MHxhW3A+PjJdLGJlPTB8YVtwKzQ+PjJdLE09cStNfDAsYVtydD4+Ml09TSxjPWJlK0F8MCxhW09lPj4yXT1jLEQ9cStEfDAsYVtMZT4+Ml09RCxxPUhl''@;'; put 'put ''KzR8MCxwZT1IZSs4fDAsZ2U9SGUrMTJ8MCxSPXAsQT1mLGJlPWJlK0d8MCxHPWM7Oyl7aWYoQT1BKzR8MCxiPVIrOHwwLGFbUmU+PjJdPWJlLCEoYz0wfGFbQT4+Ml0pKXtiPTAscGU9RyxnZT1iZTticmVhayBlfUV0PStfWzE2KyhrdD0wfGFbYysxNj4+Ml0pPj4zXSx3PStfW2t0KzI0Pj4z''@;'; put 'put ''XSxrPStfW2t0KzMyPj4zXSxhW2dlPj4yXT1rdD1+figoWnQ9K19ba3QrNDA+PjNdKSsoWnQ+PTA/LjU6LS41KSksc3Q9MHxhW1IrMTI+PjJdLGFbSGU+PjJdPVN0PShjPTB8YVtiPj4yXSkrfn4oRXQrKEV0Pj0wPy41Oi0uNSkpfDAsYVtxPj4yXT1hdD1zdCt+fih3Kyh3Pj0wPy41Oi0uNSkp''@;'; put 'put ''fDAsYVtwZT4+Ml09Yz1jK35+KGsrKGs+PTA/LjU6LS41KSl8MCxhW2dlPj4yXT1rdD1zdCtrdHwwLGFbcnQ+PjJdPVN0PTB8YVsoKDB8TSk8KDB8U3QpP3J0OkhlKT4+Ml0sYVtPZT4+Ml09YXQ9MHxhWygoMHxHKTwoMHxhdCk/cnQ6SGUpKzQ+PjJdLGFbTGU+PjJdPWM9MHxhWygoMHxEKT4o''@;'; put 'put ''MHxjKT9ydDpIZSkrOD4+Ml0sUj1iLGJlPTB8YVsoKDB8YmUpPigwfGt0KT9ydDpIZSkrMTI+PjJdLE09U3QsRz1hdCxEPWN9ZWxzZSBiPTAscGU9QSxnZT1HO2Vsc2UgYVtydD4+Ml09MCxhW3J0KzQ+PjJdPTAsRD0wfGVzKG0sTSw1NCwzKSxhW3J0Kzg+PjJdPUQsZ2U9MHxlcyhtLGIsMzYs''@;'; put 'put ''MyksYVtydCsxMj4+Ml09Z2UsYj0xLE09MCxwZT0wfXdoaWxlKDApOyhBPTB8YVsxMisoUj0wfGFbKGM9bSsxNnwwKT4+Ml0pPj4yXSk/KCgwfChBPU0tRCt+figoWnQ9K19bQSsyND4+M10pKyhadD49MD8uNTotLjUpKXwwKSk+MCYmKGFbcnQ+PjJdPU09TS0oQT4+Pj0xKXwwLGFbcnQrOD4+''@;'; put 'put ''Ml09RD1EK0F8MCksQT0wKTpBPWIsVmV8MCE9KDB8QSk/KGI9MCxBPVIpOihiPTB8ZXMobCwwfGFbNDcxNDRdLDgsMCksQT0wfGFbYz4+Ml0pLHE9Yi1NfDAsRz1+figrX1tBKzU2Pj4zXSsgKyhiLXBlfDApKSxhW3J0Pj4yXT0wLGFbcnQrND4+Ml09MCxhW3J0Kzg+PjJdPVI9cStiK0R8MCxh''@;'; put 'put ''W3J0KzEyPj4yXT1jPX5+KCtfW0ErODg+PjNdKyArKGIrR3wwKSsgKygwfGdlKSk7ZTpkb3tpZihxZSl7QT1wO3Q6Zm9yKDs7KXtpZihEPWYrNHwwLCEoYj0wfGFbZj4+Ml0pKWJyZWFrIGU7Zm9yKEE/KE09QSs4fDAsZj0oMHxhW0E+PjJdKStxfDAsQT0oMHxhW0ErND4+Ml0pK0d8MCk6KE09''@;'; put 'put ''MCxmPXEsQT1HKSxrPS4wMTM4ODg4ODg4ODg4ODg4ODgqKygwfGYpLHc9LjAxMzg4ODg4ODg4ODg4ODg4OCorKDB8QSksZj0wfER0KGIpOzspe2lmKCFmKXtmPUQsQT1NO2NvbnRpbnVlIHR9X1soc3Q9MHxhWzEzMisoMHxhW2YrMTY+PjJdKT4+Ml0pPj4zXT0rX1tzdD4+M10rayxfWyhzdD1z''@;'; put 'put ''dCs4fDApPj4zXT0rX1tzdD4+M10rdyxmPTB8enQoYixmKX19fX13aGlsZSgwKTthWyhrdD04KyhzdD0wfGFbMTQwKygwfGFbbCsxNj4+Ml0pPj4yXSl8MCk+PjJdPTAsYVtrdCs0Pj4yXT0wLGFba3QrOD4+Ml09MCxhW2t0KzEyPj4yXT0wLF9bc3QrMjQ+PjNdPS4wMTM4ODg4ODg4ODg4ODg4''@;'; put 'put ''ODgqKygwfFIpLF9bc3QrMzI+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKygwfGMpLGxlPVdlfShSLDB8YVtEPj4yXSxHLGYsbCxjKSxGdChmKSxwPTB8RHQoUik7cDspKGY9MHxhWzIxMisobT0wfGFbcCsxNj4+Ml0pPj4yXSk/KF9bOCsoT2U9MHxhWzE0MCsoMHxhW2YrMTY+PjJdKT4+Ml0p''@;'; put 'put ''Pj4zXT1MZT0rX1soRD0wfGFbbSsxMzI+PjJdKT4+M10tLjUqKFJlPStfW20rMzI+PjNdKSxfW09lKzE2Pj4zXT1iZT0rX1tEKzg+PjNdLS41KihnZT0rX1ttKzQwPj4zXSksX1tPZSsyND4+M109UmUrTGUsX1tPZSszMj4+M109Z2UrYmUpOjB8KGY9MHxhWzgrKDB8YVttKzExMj4+Ml0pPj4y''@;'; put 'put ''XSkmJihfWyhPZT0wfGFbMTMyKygwfGFbZisxNj4+Ml0pPj4yXSk+PjNdPStfWyhEPTB8YVttKzEzMj4+Ml0pPj4zXSxfW09lKzg+PjNdPStfW0QrOD4+M10pLHA9MHx6dChSLHApO2FbKE9lPTgrKDB8YVsxNDArKDB8YVtsKzE2Pj4yXSk+PjJdKXwwKT4+Ml09YVsoRD04KygwfGFbMTQwKygw''@;'; put 'put ''fGFbUisxNj4+Ml0pPj4yXSl8MCk+PjJdLGFbT2UrND4+Ml09YVtEKzQ+PjJdLGFbT2UrOD4+Ml09YVtEKzg+PjJdLGFbT2UrMTI+PjJdPWFbRCsxMj4+Ml0sYVtPZSsxNj4+Ml09YVtEKzE2Pj4yXSxhW09lKzIwPj4yXT1hW0QrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbRCsyND4+Ml0sYVtPZSsy''@;'; put 'put ''OD4+Ml09YVtEKzI4Pj4yXSxmdW5jdGlvbiBEc2UobCxjKXtsfD0wLGN8PTA7Zm9yKHZhciBmPTAscD0wO2Y9MHxhW2M+PjJdOylocyhmKSxIaShmLDEzNzQ4MyksYz1jKzR8MDtmb3IoMHwoYz0wfGFbYVsxNDArKDB8YVtsKzE2Pj4yXSk+PjJdPj4yXSkmJkZ0KGMpLGhzKGwpLEhpKGwsMTM3''@;'; put 'put ''NDgzKSxmPTB8RHQobCk7Zjspe2ZvcihwPTB8enQobCxmKSxjPTB8dzAobCxmKTtjOylGdCgwfGFbMTcyKygwfGFbYysxNj4+Ml0pPj4yXSksSGkoYywxMzc0NjApLGM9MHxTMChsLGMpO0x2ZShmKSxmPXB9QzEobCl9KFIsRyksRnQoRyksbGU9cGV9ZnVuY3Rpb24gY1gobCxjKXt2YXIgbSxB''@;'; put 'put ''LHcsZj0wLHA9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTA7bT0rX1s4KyhiPTB8YVsxNDArKDB8YVsodz0xNisobHw9MCl8MCk+PjJdKT4+Ml0pPj4zXSxBPStfW2IrMTY+PjNdLGI9KDB8bCkhPSgwfChjfD0wKSk7ZTpkb3tpZihiKWZvcihmPTB8RHQobCk7Oyl7aWYoIWYpe2w9MTti''@;'; put 'put ''cmVhayBlfSgwfGFbMjEyKyhwPTB8YVtmKzE2Pj4yXSk+PjJdKT09KDB8bCkmJihfWyhwPTB8YVtwKzEzMj4+Ml0pPj4zXT0rX1twPj4zXSttLF9bKHA9cCs4fDApPj4zXT0rX1twPj4zXStBKSxmPTB8enQobCxmKX1lbHNlIGw9MX13aGlsZSgwKTtmb3IoOyEoKDB8bCk+KDB8YVsxODArKGY9''@;'; put 'put ''MHxhW3c+PjJdKT4+Ml0pKTspZj0wfGFbKDB8YVtmKzE4ND4+Ml0pKyhsPDwyKT4+Ml0sYiYmKHE9OCsocD0wfGFbMTQwKygwfGFbZisxNj4+Ml0pPj4yXSl8MCxHPStfWyhSPXArMTZ8MCk+PjNdK0EsRD0rX1soTT1wKzI0fDApPj4zXSttLGs9K19bKHA9cCszMnwwKT4+M10rQSxfW3E+PjNd''@;'; put 'put ''PStfW3E+PjNdK20sX1tSPj4zXT1HLF9bTT4+M109RCxfW3A+PjNdPWspLGNYKGYsYyksbD1sKzF8MH1mdW5jdGlvbiBJRChsKXt2YXIgYyxwLG0sQSxmPTA7Zm9yKEE9NzIqK19bMTYrKGY9MHxhWzE0MCsobD0wfGFbKGM9MTYrKGx8PTApfDApPj4yXSk+PjJdKT4+M10sbT03MiorX1tmKzI0''@;'; put 'put ''Pj4zXSxwPTcyKitfW2YrMzI+PjNdLF9bbCsxNj4+M109NzIqK19bZis4Pj4zXSxfW2wrMjQ+PjNdPUEsX1tsKzMyPj4zXT1tLF9bbCs0MD4+M109cCxsPTE7ISgoMHxsKT4oMHxhWzE4MCsoZj0wfGFbYz4+Ml0pPj4yXSkpOylJRCgwfGFbKDB8YVtmKzE4ND4+Ml0pKyhsPDwyKT4+Ml0pLGw9''@;'; put 'put ''bCsxfDB9ZnVuY3Rpb24gSXZlKGwsYyl7Y3w9MDt2YXIgayxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtrPTB8YVsyMTIrKE09MHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxNPTB8YVs0KygwfGFbTSsxMTI+PjJdKT4+Ml07ZG97aWYoMHxNKXtmb3IoYj0wfHZyKDE2KyhNPDw0KXwwKSxBPTgrKG09''@;'; put 'put ''MHxEeShsLGMpKXwwLGM9MCxwPW07MHxhW3A+PjJdOyljPTB8T3ZlKGwscCxiLGMsMHxhWyh3PXArMjR8MCk+PjJdPytfW3ArMzI+PjNdOitfW0E+PjNdKzYuMjgzMTg1MzA3MTc5NTg2KSxwPXc7aWYoKDB8Yyk9PSgwfE0pKXthWyhsPTB8YVsxNDArKDB8YVtrKzE2Pj4yXSk+PjJdKT4+Ml09''@;'; put 'put ''YixhW2wrND4+Ml09TSxGdChtKTticmVha31Qcig5MDc0Miw5MDc1Miw3NjYsOTA3NjEpfX13aGlsZSgwKTtyZXR1cm4gMHxrfWZ1bmN0aW9uIGhzKGwpe0Z0KDB8YVsxNDArKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pfWZ1bmN0aW9uIEx2ZShsKXt2YXIgYztGdCgwfGFbMTEyKygwfGFbKGM9''@;'; put 'put ''MTYrKGx8PTApfDApPj4yXSk+PjJdKSxGdCgwfGFbMTMyKygwfGFbYz4+Ml0pPj4yXSksSGkobCwxMzc0NDcpfWZ1bmN0aW9uIER5KGwsYyl7Y3w9MDt2YXIgTSxELGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MDtmb3IoRD0wfHZyKDI0KygyNCooTT0wfGFbYVsxMTIrKDB8YVsoaz0xNiso''@;'; put 'put ''bHw9MCl8MCk+PjJdKT4+Ml0+PjJdKXwwKXwwKSx3PTAsYj0wfE1zKGMsbCk7YjspKDB8KHA9MHxhWygyPT0oMHwobT0zJmFbYj4+Ml0pKT9iOmIrLTQ4fDApKzQwPj4yXSkpPT0oMHxsKSYmKHA9MHxhWygzPT0oMHxtKT9iOmIrNDh8MCkrNDA+PjJdKSxBPStfWyhwPTB8YVsxMzIrKDB8YVtw''@;'; put 'put ''KzE2Pj4yXSk+PjJdKT4+M10tK19bKG09MHxhWzEzMisoMHxhW2s+PjJdKT4+Ml0pPj4zXSxmPStfW3ArOD4+M10tK19bbSs4Pj4zXSxhW0QrKDI0Knd8MCk+PjJdPWIsX1tEKygyNCp3fDApKzg+PjNdPStVbCgrZiwrQSksX1tEKygyNCp3fDApKzE2Pj4zXT1mKmYrQSpBLHc9dysxfDAsYj0w''@;'; put 'put ''fFZzKGMsYixsKTsoMHx3KSE9KDB8TSkmJlByKDkwNzc1LDkwNzUyLDY0Miw5MDc4NCkseDEoRCxNLDI0LDY3KTtlOmRve2lmKCgwfE0pPjEpe2I9TSstMXwwLHA9MDt0OmZvcig7Oyl7aWYoKDB8cCk+PSgwfGIpKWJyZWFrIGU7Zm9yKEE9K19bRCsoMjQqcHwwKSs4Pj4zXSx3PW09cCsxfDA7''@;'; put 'put ''ISgoMHx3KT49KDB8TSl8fCtfW0QrKDI0Knd8MCkrOD4+M10hPUEpOyl3PXcrMXwwO2lmKCgwfHcpIT0oMHxtKSlmb3IoZj0oZj0oKGY9KDB8dyk9PSgwfE0pPzMuMTQxNTkyNjUzNTg5NzkzOitfW0QrKDI0Knd8MCkrOD4+M10pLUEpLysody1wfDApKT4uMDM0OTA2NTg1MDM5ODg2NTk/LjAz''@;'; put 'put ''NDkwNjU4NTAzOTg4NjU5OmYsQT0wOzspe2lmKCgwfHApPj0oMHx3KSljb250aW51ZSB0O19bKGs9RCsoMjQqcHwwKSs4fDApPj4zXT0rX1trPj4zXStBLEErPWYscD1wKzF8MH1lbHNlIHA9bX19fXdoaWxlKDApO3JldHVybiAwfER9ZnVuY3Rpb24gT3ZlKGwsYyxmLHAsbSl7Znw9MCxwfD0w''@;'; put 'put ''O3ZhciBrLFIsRyxBPTAsdz0wLGI9MCxNPTAsRD0wLHE9MDtmb3IoUj0oTT0wfGl0WzE2OCsoRD0wfGFbMTYrKGI9MHxhWyhjfD0wKT4+Ml0pPj4yXSk+PjFdKTw8MTY+PjE2LCgwfChBPTB8YVsoMj09KDB8KHc9MyZhW2I+PjJdKSk/YjpiKy00OHwwKSs0MD4+Ml0pKT09KDB8KGx8PTApKSYm''@;'; put 'put ''KEE9MHxhWygzPT0oMHx3KT9iOmIrNDh8MCkrNDA+PjJdKSxtPShtPSgobT0rbSktKEc9K19bYys4Pj4zXSkpLysoTTw8MTY+PjE2KSk+LjAzNDkwNjU4NTAzOTg4NjU5Py4wMzQ5MDY1ODUwMzk4ODY1OTptLGs9KE09QT4+PjA+bD4+PjApP206LW0sYz1NPzE6LTEsYj0wLEE9MHxhW0QrMTcy''@;'; put 'put ''Pj4yXSx3PU0/cDpwKy0xK1J8MCxtPU0/RzptKisoUistMXwwKStHOyEoKDB8Yik+PSgwfFIpKTspYVtmKyh3PDw0KT4+Ml09RD0wfGFbQT4+Ml0sYVtmKyh3PDw0KSs0Pj4yXT1hWygoMHxhWzE2NCsoMHxhWzE2KygwfGFbKHE9Mz09KDB8KE09MyZhW0Q+PjJdKSk/RDpEKzQ4fDApKzQwPj4y''@;'; put 'put ''XSk+PjJdKT4+Ml0pPT0oMHxsKT9xOjI9PSgwfE0pP0Q6RCstNDh8MCkrNDA+PjJdLF9bZisodzw8NCkrOD4+M109bSxiPWIrMXwwLEE9QSs0fDAsdz13K2N8MCxtKz1rO3JldHVybiBSK3B8MH1mdW5jdGlvbiBmWChsLGMsZil7Y3w9MDt2YXIgcD0wO3A9MHxzaShsfD0wLDAsZnw9MCwwKTtk''@;'; put 'put ''b3tpZigwfHApe2lmKGw9MHxIbyhsLHApLHA9MHxzaShjLDAsZiwwKSl7VmwoYyxwLGwpO2JyZWFrfXNpKGMsMCxmLGwpO2JyZWFrfX13aGlsZSgwKX1mdW5jdGlvbiBUZihsLGMpe3ZhciBmLHA7cmV0dXJuIGgwKGM9MHxHcihsfD0wLGN8PTAsMSksMTM3NDQ3LDMwNCwxKSxwPTB8dnIoMzIp''@;'; put 'put ''LGFbMTEyKygwfGFbKGY9YysxNnwwKT4+Ml0pPj4yXT1wLGw9MHxRbigoMHxoclsxNzYrKDB8YVtsKzE2Pj4yXSk+PjFdKTw8MyksYVsxMzIrKDB8YVtmPj4yXSk+PjJdPWwsMHxjfWZ1bmN0aW9uIFJ2ZShsLGMsZixwKXtjfD0wLHB8PTA7dmFyIGIsayxNLEQsUixHLG09MCxBPTAsdz0wO0c9''@;'; put 'put ''bGUsbGU9bGUrODB8MCxNPUcrNTZ8MCxrPUcrMzJ8MCxSPUcsRD1HKzY0fDAsYj0wfEhvKGx8PTAsQT0wfGFbNCsoZnw9MCk+PjJdKTtkb3tpZigwfGZlW2I+PjBdKXtpZighKCgwfGFbZj4+Ml0pPT0oMHxsKXx8KDB8KGY9MHxIbygwfGsxKGwpLEEpKSkhPSgwfGIpJiYwfFppKGIsZikpKWJy''@;'; put 'put ''ZWFrO2lmKGZlW0Q+PjBdPTAsZj1SKzh8MCxBPVIrMTZ8MCx3PVIrMjR8MCxhW2s+PjJdPVIsYVtrKzQ+PjJdPWYsYVtrKzg+PjJdPUEsYVtrKzEyPj4yXT13LGFbaysxNj4+Ml09RCwoMHxpbChiLDkwOTM3LGspKTw9Myl7YVtNPj4yXT0wfHRpKGwpLGFbTSs0Pj4yXT1iLCRyKDAsOTA5NTUs''@;'; put 'put ''TSk7YnJlYWt9KG09K19bMjMyOTNdKT4wJiYoX1tSPj4zXT0rX1tSPj4zXS9tLF9bZj4+M109K19bZj4+M10vbSxfW0E+PjNdPStfW0E+PjNdL20sX1t3Pj4zXT0rX1t3Pj4zXS9tKSxmZVsxMTkrKDB8YVtjKzE2Pj4yXSk+PjBdPShmPTB8ZmVbRD4+MF0pPDwyND4+MjQ9PTMzPzM6Zjw8MjQ+''@;'; put 'put ''PjI0PT02Mz8yOjEsYVtwPj4yXT1hW1I+PjJdLGFbcCs0Pj4yXT1hW1IrND4+Ml0sYVtwKzg+PjJdPWFbUis4Pj4yXSxhW3ArMTI+PjJdPWFbUisxMj4+Ml0sYVtwKzE2Pj4yXT1hW1IrMTY+PjJdLGFbcCsyMD4+Ml09YVtSKzIwPj4yXSxhW3ArMjQ+PjJdPWFbUisyND4+Ml0sYVtwKzI4Pj4y''@;'; put 'put ''XT1hW1IrMjg+PjJdfX13aGlsZSgwKTtsZT1HfWZ1bmN0aW9uIGZWKGwsYyl7Y3w9MDt2YXIgbSxmPTAscD0wO2w9MHxpdFsxNjgrKHA9MHxhWyhtPTE2KyhsfD0wKXwwKT4+Ml0pPj4xXSwocD0wfGFbcCsxNzI+PjJdKT8oZj1sPWw8PDE2Pj4xNixsPTB8VjAocCw0KyhsPDwyKXwwKSk6KGY9''@;'; put 'put ''bD1sPDwxNj4+MTYsbD0wfFFuKDQrKGw8PDIpfDApKSxhW2wrKGY8PDIpPj4yXT1jLGFbMTcyKyhjPTB8YVttPj4yXSk+PjJdPWwsaXRbKGM9YysxNjh8MCk+PjFdPTErKDB8aXRbYz4+MV0pPDwxNj4+MTZ9ZnVuY3Rpb24gQnZlKGwsYyl7dmFyIHAsbSxiLGY9MCxBPTAsdz0wLGs9MDtiPWxl''@;'; put 'put ''LGxlPWxlKzQ4fDAsdz1iKzI0fDAsQT1iLG09MHxhWygyPT0oMHwoZj0zJmFbKHA9MHxhWyhjfD0wKT4+Ml0pPj4yXSkpP3A6cCstNDh8MCkrNDA+PjJdLGY9MHxhWygzPT0oMHxmKT9wOnArNDh8MCkrNDA+PjJdLGs9KDgrKGM9MHxVbygwfHRpKGx8PTApKSkrKGs9MHxVbygwfHRpKG0pKSkr''@;'; put 'put ''KDB8VW8oMHx0aShmKSkpfDApPjk5OSxjPTB8dGkobCksaz8oZj0wfHRpKGYpLGs9MHx0aShtKSx3PSgwfGFbcD4+Ml0pPj4+NCxhW0E+PjJdPWMsYVtBKzQ+PjJdPWYsYVtBKzg+PjJdPWssYVsoaz1BKzE2fDApPj4yXT13LGFbays0Pj4yXT0wLG9vKDE5Mzc3Miw5MDg5NSxBKSk6KGY9MHxh''@;'; put 'put ''WzEyMCsoMHxhW2YrMTY+PjJdKT4+Ml0saz0wfGFbMTIwKygwfGFbbSsxNj4+Ml0pPj4yXSxBPSgwfGFbcD4+Ml0pPj4+NCxhW3c+PjJdPWMsYVt3KzQ+PjJdPWYsYVt3Kzg+PjJdPWssYVsoaz13KzE2fDApPj4yXT1BLGFbays0Pj4yXT0wLG9vKDE5Mzc3Miw5MDkxNCx3KSksbGU9Yn1mdW5j''@;'; put 'put ''dGlvbiBGdmUobCxjKXt2YXIgcCxtLHcsYixmPTAsQT0wO2I9bGUsbGU9bGUrMTZ8MCxmPWIsQT0wfGFbYVsxNDArKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0+PjJdLHc9MHxmdW5jdGlvbiBPc2UobCxjKXtsfD0wLGN8PTA7dmFyIHAsbSxBLGY9MCx3PTAsYj0wOy0xPT0rX1syMzI0M10/KHc9''@;'; put 'put ''MHxHbyhsKSxfWzIzMjQzXT0uMiorX1syMzI0MV0qKGY9K19bMjMyNDJdKSorRDAoKyArKDB8dykpLHc9MSk6KHc9MCxmPStfWzIzMjQyXSksX1tjKzg+PjNdPStoVihBPTB8YVs0NjUwNF0pLF9bYysxNj4+M109ZixfW2MrMjQ+PjNdPStfWzIzMjQwXSxhW2M+PjJdPWw9KHA9MHxhWzQ2NDc4''@;'; put 'put ''XSktQXwwLG09MHxhWzQ2NDc3XTtkb3tpZigoMHxtKT4tMSl7aWYoKDB8bSk8PSgwfEEpKXthWzQ2NTA1XT1tLGw9MCxiPTEwO2JyZWFrfSgwfG0pPD0oMHxwKSYmKGFbNDY1MDVdPUEsbD1tLUF8MCxiPTEwKX1lbHNlIGFbNDY1MDVdPUEsYj0xMH13aGlsZSgwKTtyZXR1cm4gMTA9PSgwfGIp''@;'; put 'put ''JiYoYVtjKzMyPj4yXT1sKSwwfHd9KGwsY3w9MCksZnVuY3Rpb24gSHZlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTA7Zm9yKExlPTB8R28o''@;'; put 'put ''Y3w9MCksSGU9MHxhWzQrKDB8YVsxNDArKDB8YVtjKzE2Pj4yXSk+PjJdKT4+Ml0sT2U9MHxEdChjKSxxPTAscGU9MCxtPTAsYj0wLEQ9MDtPZTspMHxmZVsxMTkrKHA9MHxhW09lKzE2Pj4yXSk+PjBdPyhBPStfWyhwPTB8YVtwKzEzMj4+Ml0pPj4zXSxxPyhEPX5+KChnZT0rX1twKzg+PjNd''@;'; put 'put ''KT4oUj0rKDB8RCkpP2dlOlIpLHA9fn4oQTwoRz0rKDB8cGUpKT9BOkcpLG09fn4oZ2U8KGJlPSsoMHxtKSk/Z2U6YmUpLGI9fn4oQT4oUmU9KygwfGIpKT9BOlJlKSk6KEQ9bT1+fitfW3ArOD4+M10scD1iPX5+QSkscT1xKzF8MCk6cD1wZSxPZT0wfHp0KGMsT2UpLHBlPXA7aWYoQT0rX1sy''@;'; put 'put ''MzI0Ml0qKCtEMCgrICsoTGUtSGV8MCkpKzEpLF9bMjMyNDldPWdlPS42KkEsX1syMzI0OF09Z2UsMSE9KDB8cSkpaWYoKDB8cSk+MSl7YmU9LjUqKyhiK3BlfDApLFJlPS41KisoRCttfDApLHc9KE09MS4yKihrPSsoRC1tfDApKSkqKEc9MS4yKihSPSsoYi1wZXwwKSkpLyhBPTIuNCpBKmdl''@;'; put 'put ''KTtkb3tpZih3Pj0xKV9bMjMyNDhdPXc9LjYqUixBPS42KmsscWU9MjA7ZWxzZXtpZih3PjApe0E9MiorRDAoK3cpLF9bMjMyNDhdPXc9Ry9BLEE9TS9BLHFlPTIwO2JyZWFrfWlmKEc+MCl7X1syMzI0OF09dz0uNipSLEE9QS9HKi41LHFlPTIwO2JyZWFrfU0+MD8oX1syMzI0OF09dz1BL00q''@;'; put 'put ''LjUsQT0uNiprLHFlPTIwKTooQT1nZSx3PWdlKX19d2hpbGUoMCk7MjA9PSgwfHFlKSYmKF9bMjMyNDldPUEpLGdlPStVbCgrQSwrdyksdy89K2hhKCtnZSksX1syMzI0OF09dyxBLz0rRGEoK2dlKSxfWzIzMjQ5XT1BfWVsc2UgYmU9MCxSZT0wLHc9Z2UsQT1nZTtlbHNlIGJlPSsoMHxwZSks''@;'; put 'put ''UmU9KygwfG0pLHc9Z2UsQT1nZTtfWzIzMjUwXT13KncsX1syMzI1MV09QSpBLDI9PSgwfGFbNDY0ODhdKT9wPTB8YVs0NjQ3Nl06KHA9MHxIaigpLHA9KDB8aG4oMCkpXnApLE5qKHApO2U6ZG97aWYoZil7Zm9yKDswfGFbZj4+Ml07KWdlPStoYSgrICtfWyhPZT1mKzh8MCk+PjNdKSorX1sy''@;'; put 'put ''MzI0OF0rYmUsX1soTGU9MHxhWzEzMisoSGU9MHxhWzE2KygwfGFbZis0Pj4yXSk+PjJdKT4+Ml0pPj4zXT1nZSxfW0xlKzg+PjNdPStEYSgrICtfW09lPj4zXSkqK19bMjMyNDldK1JlLGZlW0hlKzExOT4+MF09MSxmPWYrMTZ8MDtmb3Ioaz0uMSpiZSxNPS4xKlJlLHBlPTB8RHQoYyk7Oyl7''@;'; put 'put ''aWYoIXBlKWJyZWFrIGU7MD09KDB8YVs4KygwfGFbMTEyKyhmPTB8YVsocT1wZSsxNnwwKT4+Ml0pPj4yXSk+PjJdKSYmISgwfGFbZisyMTI+PjJdKXx8KHFlPTMyKTtkb3tpZigzMj09KDB8cWUpKXtpZihxZT0wLDB8ZmVbZisxMTk+PjBdKXtfWyhIZT0wfGFbZisxMzI+PjJdKT4+M109K19b''@;'; put 'put ''SGU+PjNdLWJlLF9bKEhlPUhlKzh8MCk+PjNdPStfW0hlPj4zXS1SZTticmVha31mb3IoRD0wfE1zKGMscGUpLGY9MCx3PTAsQT0wO0Q7KXttPTB8YVsocD0yPT0oMHwoYj0zJmFbRD4+Ml0pKT9EOkQrLTQ4fDApKzQwPj4yXSxiPTM9PSgwfGIpP0Q6RCs0OHwwO2Rve2lmKCgwfG0pIT0oMHxh''@;'; put 'put ''W2IrNDA+PjJdKSYmMCE9KDB8ZmVbMTE5KyhWZT0wfGFbMTYrKDB8YVsoKDB8bSk9PSgwfHBlKT9iOnApKzQwPj4yXSk+PjJdKT4+MF0pKXtpZihmKXt3PSgrX1soSGU9MHxhW1ZlKzEzMj4+Ml0pPj4zXSt3KihHPSsoMHxmKSkpLyhnZT0rKDB8KGY9ZisxfDApKSksQT0oK19bSGUrOD4+M10r''@;'; put 'put ''QSpHKS9nZTticmVha31mPTEsdz0rX1soSGU9MHxhW1ZlKzEzMj4+Ml0pPj4zXSxBPStfW0hlKzg+PjNdO2JyZWFrfX13aGlsZSgwKTtEPTB8VnMoYyxELHBlKX1kb3tpZigoMHxmKTw9MSl7aWYoMT09KDB8Zikpe19bKGY9MHxhWzEzMisocD0wfGFbcT4+Ml0pPj4yXSk+PjNdPS45OCp3K2ss''@;'; put 'put ''QT0uOSpBK007YnJlYWt9QT02LjI4MzE4NTMwNzE3OTU4NiorcWMoKSxHPShnZT0uOSorcWMoKSkqK19bMjMyNDhdKitoYSgrQSksX1soZj0wfGFbMTMyKyhwPTB8YVtxPj4yXSk+PjJdKT4+M109RyxBPStfWzIzMjQ5XSpnZSorRGEoK0EpO2JyZWFrfV9bKGY9MHxhWzEzMisocD0wfGFbcT4+''@;'; put 'put ''Ml0pPj4yXSk+PjNdPXd9d2hpbGUoMCk7X1tmKzg+PjNdPUEsZmVbcCsxMTk+PjBdPTF9fXdoaWxlKDApO3BlPTB8enQoYyxwZSl9fWVsc2V7aWYoZj0wfER0KGMpLCFxKWZvcig7Oyl7aWYoIWYpYnJlYWsgZTtnZT0rX1syMzI0OF0sZ2U9KDIqK3FjKCktMSkqZ2UsX1thWzEzMisoMHxhWyhx''@;'; put 'put ''ZT1mKzE2fDApPj4yXSk+PjJdPj4zXT1nZSxnZT0rX1syMzI0OV0sZ2U9KDIqK3FjKCktMSkqZ2UsX1s4KygwfGFbMTMyKygwfGFbcWU+PjJdKT4+Ml0pPj4zXT1nZSxmPTB8enQoYyxmKX1mb3IoOzspe2lmKCFmKWJyZWFrIGU7MHxmZVsxMTkrKG09MHxhWyhwPWYrMTZ8MCk+PjJdKT4+MF0/''@;'; put 'put ''KF9bKHFlPTB8YVttKzEzMj4+Ml0pPj4zXT0rX1txZT4+M10tYmUsX1socWU9cWUrOHwwKT4+M109K19bcWU+PjNdLVJlKTooZ2U9K19bMjMyNDhdLGdlPSgyKitxYygpLTEpKmdlLF9bYVsxMzIrKDB8YVtwPj4yXSk+PjJdPj4zXT1nZSxnZT0rX1syMzI0OV0sZ2U9KDIqK3FjKCktMSkqZ2Us''@;'; put 'put ''X1s4KygwfGFbMTMyKygwfGFbcD4+Ml0pPj4yXSk+PjNdPWdlKSxmPTB8enQoYyxmKX19fXdoaWxlKDApO19bbD4+M109YmUsX1tsKzg+PjNdPVJlfShmLGwsQSkscD0rX1tmPj4zXSxtPStfW2YrOD4+M107ZTpkb3tpZigwfGFbNDY0NzRdKXtmb3Ioa0soZj0wfGMxZSgwfEdvKGwpKSwwfEdv''@;'; put 'put ''KGwpKSxjPTA7ISgoMHxjKT49KDB8YVs0NjUwNV0pKTspTnZlKGwsK2hWKGMpLEEsZiksYz1jKzF8MDtTSyhmKX1lbHNlIGZvcihjPTA7Oyl7aWYoKDB8Yyk+PSgwfGFbNDY1MDVdKSlicmVhayBlO1JzZShsLCtoVihjKSxBKSxjPWMrMXwwfX13aGlsZSgwKTtlOmRve2lmKDAhPXB8MCE9bSlm''@;'; put 'put ''b3IoYz0wfER0KGwpOzspe2lmKCFjKWJyZWFrIGU7X1soQT0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW0E+PjNdK3AsX1soQT1BKzh8MCk+PjNdPStfW0E+PjNdK20sYz0wfHp0KGwsYyl9fXdoaWxlKDApOzB8dyYmZnVuY3Rpb24gVnZlKCl7X1syMzI0M109LTF9KCksbGU9''@;'; put 'put ''Yn1mdW5jdGlvbiBoVihsKXt2YXIgYztyZXR1cm4rICtfWzIzMjQzXSorKChjPTB8YVs0NjQ3OF0pLShsfD0wKXwwKS8rKDB8Yyl9ZnVuY3Rpb24gTnZlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7aWYoISgoYz0rYyk8PTApKXtmb3IoZnVuY3Rpb24gZDFl''@;'; put 'put ''KGwpe3ZhciBjPTA7bWlbNjMmYVsoYz0wfGFbKGx8PTApPj4yXSk+PjJdXShjLDAsNjQpLGFbbCsyMD4+Ml09YVtsKzE2Pj4yXSxhW2wrOD4+Ml09Yz0wfGFbbCs0Pj4yXSxhW2MrND4+Ml09YVtjPj4yXX0ocCksbT0wfER0KGwpO207KWFbKEE9MTYrKDB8YVsxMTIrKHc9MHxhW20rMTY+PjJd''@;'; put 'put ''KT4+Ml0pfDApPj4yXT0wLGFbQSs0Pj4yXT0wLGFbQSs4Pj4yXT0wLGFbQSsxMj4+Ml09MCxFSyhwLEE9fn4rY2YoKyArX1sodz0wfGFbdysxMzI+PjJdKT4+M10vKGI9K19bMjMyNDVdKSksfn4rY2YoKyArX1t3Kzg+PjNdL2IpLG0pLG09MHx6dChsLG0pO2ZvcihBPTB8RHQobCk7QTspe2Zv''@;'; put 'put ''cihtPTB8dzAobCxBKTttOykoMHxBKSE9KDB8KHc9MHxhWygyPT0oMyZhW20+PjJdfDApP206bSstNDh8MCkrNDA+PjJdKSkmJkJzZShBLHcsbSksbT0wfFMwKGwsbSk7QT0wfHp0KGwsQSl9KGZ1bmN0aW9uIFRLKGwsYyl7IWZ1bmN0aW9uIEhQKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIEEscD0w''@;'; put 'put ''LG09MCx3PTA7QT0zMisobHw9MCl8MCxtPTB8bWlbNjMmYVtsPj4yXV0obCwwLDEyOCk7ZG97aWYoIW0pe3A9MDticmVha313PTB8YVtBPj4yXSxwPW0sbT0wfG1pWzYzJmFbbD4+Ml1dKGwsbSw4KSxwPTB8bWlbNjMmY10oMD09KDB8dyk/bDp3LHAsZil9d2hpbGUoKDB8cCk+PTApfSgwfGFb''@;'; put 'put ''KGx8PTApPj4yXSxjfD0wLGwpfSkocCwyMyksZFgobCxjLGYpfX1mdW5jdGlvbiBSc2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7aWYoISgoYz0rYyk8PTApKXtmb3IocD0wfER0KGwpO3A7KWFbKEE9MTYrKDB8YVsxMTIrKDB8YVtwKzE2Pj4yXSk+PjJdKXwwKT4+Ml09MCxh''@;'; put 'put ''W0ErND4+Ml09MCxhW0ErOD4+Ml09MCxhW0ErMTI+PjJdPTAscD0wfHp0KGwscCk7Zm9yKEE9MHxEdChsKTtBOyl7Zm9yKHA9QTtwPTB8enQobCxwKTspaFgoQSxwKTtmb3IocD0wfHcwKGwsQSk7cDspKDB8QSkhPSgwfChtPTB8YVsoMj09KDMmYVtwPj4yXXwwKT9wOnArLTQ4fDApKzQwPj4y''@;'; put 'put ''XSkpJiZCc2UoQSxtLHApLHA9MHxTMChsLHApO0E9MHx6dChsLEEpfWRYKGwsYyxmKX19ZnVuY3Rpb24gaFgobCxjKXt2YXIgZixwLG0sQTtQc2UobHw9MCxjfD0wLGY9K19bKEE9MHxhWzEzMisoMHxhW2MrMTY+PjJdKT4+Ml0pPj4zXS0rX1sobT0wfGFbMTMyKygwfGFbbCsxNj4+Ml0pPj4y''@;'; put 'put ''XSk+PjNdLHA9K19bQSs4Pj4zXS0rX1ttKzg+PjNdLHAqcCtmKmYpfWZ1bmN0aW9uIEJzZShsLGMsZil7Znw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKEE9cD0rX1soaz0wfGFbMTMyKygwfGFbKGI9MTYrKGN8PTApfDApPj4yXSk+PjJdKT4+M10tK19bKGM9MHxhWzEzMiso''@;'; put 'put ''MHxhWyhsPTE2KyhsfD0wKXwwKT4+Ml0pPj4yXSk+PjNdLHc9bT0rX1trKzg+PjNdLStfW2MrOD4+M10scCo9cCxtKj1tOzA9PShwKz1tKTspQT1wPSsoNS0oKDB8VDEoKSklMTB8MCl8MCksdz1tPSsoNS0oKDB8VDEoKSklMTB8MCl8MCkscCo9cCxtKj1tO209K0QwKCtwKSxwPStfWzEyOCso''@;'; put 'put ''Yz0wfGFbZisxNj4+Ml0pPj4zXSxfWyhiPTE2KyhrPTB8YVsxMTIrKDB8YVtiPj4yXSk+PjJdKXwwKT4+M109K19bYj4+M10tKEEqPXA9MHxhWzQ2NDc1XT8obS0rX1tjKzEzNj4+M10pKnAvbTpwKm0vK19bYysxMzY+PjNdKSxfWyhrPWsrMjR8MCk+PjNdPStfW2s+PjNdLSh3Kj1wKSxfWyhi''@;'; put 'put ''PTE2KyhrPTB8YVsxMTIrKDB8YVtsPj4yXSk+PjJdKXwwKT4+M109K19bYj4+M10rQSxfWyhrPWsrMjR8MCk+PjNdPStfW2s+PjNdK3d9ZnVuY3Rpb24gZFgobCxjLGYpe3ZhciBELFIscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2ZvcihSPShjPStjKSpjLEQ9MD09KDB8KGZ8PTApKSxN''@;'; put 'put ''PTB8RHQobHw9MCk7TTspe2lmKCEoMiZmZVsxMTkrKGs9MHxhW00rMTY+PjJdKT4+MF0pKXsobT0oQT0rX1syNCsoYj0wfGFbaysxMTI+PjJdKT4+M10pKkErKHA9K19bYisxNj4+M10pKnApPFI/KHc9K19bKGY9MHxhW2srMTMyPj4yXSk+PjNdK3AscD0rX1tmKzg+PjNdK0EpOihtPWMvK0Qw''@;'; put 'put ''KCttKSx3PStfWyhmPTB8YVtrKzEzMj4+Ml0pPj4zXSttKnAscD0rX1tmKzg+PjNdK20qQSk7ZG97aWYoIUQpe2lmKG09K0QwKCsocCpwLytfWzIzMjUxXSt3KncvK19bMjMyNTBdKSksMD09KDB8YVtiKzg+PjJdKSYmMD09KDB8YVtrKzIxMj4+Ml0pKXtfW2Y+PjNdPXcvbSxwLz1tO2JyZWFr''@;'; put 'put ''fWlmKG0+PTEpe19bZj4+M109Ljk1KncvbSxwPS45NSpwL207YnJlYWt9X1tmPj4zXT13O2JyZWFrfV9bZj4+M109d313aGlsZSgwKTtfW2YrOD4+M109cH1NPTB8enQobCxNKX19ZnVuY3Rpb24gUHNlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLHA9K3A7dmFyIEE9MCx3PTAsYj0wO2ZvcihBPWY9''@;'; put 'put ''K2YsZj1tPSttOzA9PWY7KUE9Zj0rKDUtKCgwfFQxKCkpJTEwfDApfDApLGY9KHA9Kyg1LSgoMHxUMSgpKSUxMHwwKXwwKSkqcCtmKmY7MHxhWzQ2NDc1XT8obT0rRDAoK2YpLGY9K19bMjMyNDddLyhtKmYpKTpmPStfWzIzMjQ3XS9mLDA9PSgwfGFbOCsobD0wfGFbMTEyKyhiPTB8YVtsKzE2''@;'; put 'put ''Pj4yXSk+PjJdKT4+Ml0pJiYwPT0oMHxhW2IrMjEyPj4yXSkmJjA9PSgwfGFbOCsoMHxhWzExMisodz0wfGFbYysxNj4+Ml0pPj4yXSk+PjJdKSYmKGY9MD09KDB8YVt3KzIxMj4+Ml0pPzEwKmY6ZiksX1soYz0xNisoYj0wfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSl8MCk+PjNdPStfW2M+''@;'; put 'put ''PjNdKyhtPWYqQSksX1soYj1iKzI0fDApPj4zXT0rX1tiPj4zXSsoQT1mKnApLF9bKGI9bCsxNnwwKT4+M109K19bYj4+M10tbSxfWyhiPWwrMjR8MCk+PjNdPStfW2I+PjNdLUF9ZnVuY3Rpb24gVjcobCxjLGYscCl7cHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2lmKGw9''@;'; put 'put ''MHxmdW5jdGlvbiBpaihsLGMsZil7bHw9MCxmfD0wO3ZhciBwLG07cmV0dXJuIHA9bGUsbGU9bGUrMzJ8MCxhWyhtPXApPj4yXT1jfD0wLGFbbSs0Pj4yXT1mLGY9MHxtaVs2MyZhWyhmPTB8YVtsPj4yXSk+PjJdXShmLG0sNCksbGU9cCwwfGZ9KGx8PTAsY3w9MCxmfD0wKSwwIT0oMHxwKSYw''@;'; put 'put ''IT0oMHxsKSl7az1sKzh8MDtkb3tmb3IoYj0xNisoZj0wfGFbcD4+Ml0pfDAsbD1rO2w9MHxhW2w+PjJdOykodz0oQT0rX1s4KyhEPTB8YVsxMzIrKDB8YVsxNisoYz0wfGFbbD4+Ml0pPj4yXSk+PjJdKT4+M10tK19bOCsoTT0wfGFbMTMyKygwfGFbYj4+Ml0pPj4yXSk+PjNdKSpBKyhtPStf''@;'; put 'put ''W0Q+PjNdLStfW00+PjNdKSptKTwrX1syMzI0Nl0mJlBzZShmLGMsbSxBLHcpLGw9bCs0fDA7cD0wfGFbcCs0Pj4yXX13aGlsZSgwIT0oMHxwKSl9fWZ1bmN0aW9uIHBYKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLHc9MDtBPWxlLGxlPWxlKzE2fDAsMCE9KDB8KGY9MHxMaShsfD0wLDkyNTA3''@;'; put 'put ''KSkpJiYwIT0oMHxmZVtmPj4wXSl8fChmPTkxMTI1KSxwPTB8JHMoZiw1OCk7ZG97aWYocCl7aWYoKDB8cCkhPSgwfGYpJiYoKDB8ZmVbZj4+MF0pLTQ4fDApPj4+MD49MTApe3A9MDticmVha313PTB8cjMoZiksZj1wKzF8MCxwPSgwfHcpPjA/dzowfWVsc2UgcD0wfXdoaWxlKDApOzAhPSgw''@;'; put 'put ''fHApJiYhKDB8ZnVuY3Rpb24ganZlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHcsRyxxLHBlLHA9MCxtPTAsQT0wLGI9MCxrPTAsTT0wLEQ9MCxSPTA7cGU9bGUsbGU9bGUrNjR8MCxHPXBlLEE9cGUrNDB8MCxxPTB8R28obHw9MCksdz0wfE4zKGwpLFc3KEEsbCksYVs0Njg0Ml09YVtBPj4yXSxh''@;'; put 'put ''WzQ2ODQzXT1hW0ErND4+Ml0sYVs0Njg0NF09YVtBKzg+PjJdLDB8ZmVbMTg3Mzc2XSYmKGpuWzQ2ODQyXT0uMDEzODg4ODg4ODg4ODg4ODg4Kitqbls0Njg0Ml0sam5bNDY4NDNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK2puWzQ2ODQzXSkscD0wfGZ1bmN0aW9uIEhzZShsKXt2YXIgYz0wLGY9''@;'; put 'put ''MCxwPTAsbT0wO2ZvcihjPTAsbT0wfER0KGx8PTApO207KXtmb3IocD1tO2Y9MHx6dChsLHApOylwPWYsYz0oMHxkVihtLGYpKStjfDA7bT0wfHp0KGwsbSl9cmV0dXJuIDB8Y30obCk7ZTpkb3tpZihwKXttPShBPUcpKzQwfDA7ZG97YVtBPj4yXT1hW2M+PjJdLEE9QSs0fDAsYz1jKzR8MH13''@;'; put 'put ''aGlsZSgoMHxBKTwoMHxtKSk7Zm9yKFI9K19bKEE9RysxNnwwKT4+M10sTT0yKisoMHx3KSxEPTEvKygwfEFyKHErLTF8MCxxKSksbT0wLGs9Ujs7KXtpZighKDAhPSgwfHApJigwfG0pPCgwfGYpKSlicmVhayBlO2ZvcihadmUocSxHKSxfWzIzMjU0XT1iPStfWzIzMjUzXSorX1sxNzBdLF9b''@;'; put 'put ''MjMyNTVdPU0qYipELGM9MDshKCgwfGMpPj0oMHxhWzQ2NTEyXSl8fChiPStnWChjKSxiPD0wKSk7KXtpZighKHA9MHx6dmUobCxiKSkpe3A9MDticmVha31jPWMrMXwwfV9bQT4+M109Yj1rK1IsbT1tKzF8MCxrPWJ9fWVsc2UgcD0wfXdoaWxlKDApO3JldHVybiBsZT1wZSwwfHB9KGwsYyxw''@;'; put 'put ''KSl8fGJWKGwsZiksbGU9QX1mdW5jdGlvbiBadmUobCxjKXt2YXIgZixwLG07bHw9MCxfWzE3MV09cD0rX1sxNisoY3w9MCk+PjNdLGFbMzQ0XT1hW2M+PjJdLF9bMjMyNTddPW09K19bYys4Pj4zXSxhWzQ2NTEyXT1hW2MrMzI+PjJdLChmPStfW2MrMjQ+PjNdKT4wJiYoX1sxNzBdPWYpLF9b''@;'; put 'put ''MjMyNTNdPXAqcCwwPT1tJiYoX1syMzI1N109LjIqK0QwKCsgKygwfGwpKSpwKX1mdW5jdGlvbiBnWChsKXt2YXIgYztyZXR1cm4rICtfWzIzMjU3XSorKChjPTB8YVszNDRdKS0obHw9MCl8MCkvKygwfGMpfWZ1bmN0aW9uIHp2ZShsLGMpe2M9K2M7dmFyIGY9MCxwPTAsbT0wLEE9MCx3PTAs''@;'; put 'put ''Yj0wLGs9MCxNPTA7Zm9yKGY9MHxEdChsfD0wKTtmOylhWyh3PTE2KygwfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MCk+PjJdPTAsYVt3KzQ+PjJdPTAsYVt3Kzg+PjJdPTAsYVt3KzEyPj4yXT0wLGY9MHx6dChsLGYpO2ZvcihmPTAsdz0wfER0KGwpO3c7KXtmb3IobT13O3A9MHx6dChs''@;'; put 'put ''LG0pOyltPXAsZj0oMHxOc2UodyxwKSkrZnwwO2ZvcihwPTB8dzAobCx3KTtwOylHdmUodywwfGFbKDI9PSgzJmFbcD4+Ml18MCk/cDpwKy00OHwwKSs0MD4+Ml0pLHA9MHxTMChsLHApO3c9MHx6dChsLHcpfWU6ZG97aWYoZilmb3IoTT1jKmMsbT0wfER0KGwpOzspe2lmKCFtKWJyZWFrIGU7''@;'; put 'put ''MyE9KDB8ZmVbMTE5KyhwPTB8YVttKzE2Pj4yXSk+PjBdKSYmKChrPShBPStfWzI0Kyh3PTB8YVtwKzExMj4+Ml0pPj4zXSkqQSsoYj0rX1t3KzE2Pj4zXSkqYik8TT9fWyhwPTB8YVtwKzEzMj4+Ml0pPj4zXT0rX1twPj4zXStiOihrPStEMCgrayksX1socD0wfGFbcCsxMzI+PjJdKT4+M109''@;'; put 'put ''K19bcD4+M10rYipjL2ssQT1BKmMvayksX1sodz1wKzh8MCk+PjNdPStfW3c+PjNdK0EpLG09MHx6dChsLG0pfWVsc2UgZj0wfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gTnNlKGwsYyl7dmFyIGYscCxtLEE7cmV0dXJuIDB8ZnVuY3Rpb24gbVgobCxjLGYscCxtKXtsfD0wLGN8PTAs''@;'; put 'put ''Zj0rZixwPStwLG09K207Zm9yKHZhciBBLHc7MD09bTspZj1tPSsoNS0oKDB8VDEoKSklMTB8MCl8MCksbT0ocD0rKDUtKCgwfFQxKCkpJTEwfDApfDApKSpwK20qbTtyZXR1cm4gQT0wfGRWKGwsYyksX1sodz0xNisoYz0wfGFbMTEyKygwfGFbYysxNj4+Ml0pPj4yXSl8MCk+PjNdPStfW3c+''@;'; put 'put ''PjNdKyhmPShtPSgwPT0oMHxBKT8rX1syMzI1NV06K19bMjMyNTRdKS9tKSpmKSxfWyhjPWMrMjR8MCk+PjNdPStfW2M+PjNdKyhtKj1wKSxfWyhsPTE2KyhjPTB8YVsxMTIrKDB8YVtsKzE2Pj4yXSk+PjJdKXwwKT4+M109K19bbD4+M10tZixfWyhjPWMrMjR8MCk+PjNdPStfW2M+PjNdLW0s''@;'; put 'put ''MHxBfShsfD0wLGN8PTAsZj0rX1soQT0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdLStfWyhtPTB8YVsxMzIrKDB8YVtsKzE2Pj4yXSk+PjJdKT4+M10scD0rX1tBKzg+PjNdLStfW20rOD4+M10scCpwK2YqZil9ZnVuY3Rpb24gR3ZlKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MCx3''@;'; put 'put ''PTAsYj0wLGs9MCxNPTAsRD0wOzB8ZFYobHw9MCxjfD0wKXx8KEE9K0QwKCsoKGY9K19bOCsoRD0wfGFbMTMyKyh3PTB8YVtjKzE2Pj4yXSk+PjJdKT4+M10tK19bOCsoTT0wfGFbMTMyKyhtPTB8YVtsKzE2Pj4yXSk+PjJdKT4+M10pKmYrKHA9K19bRD4+M10tK19bTT4+M10pKnApKSxiPStW''@;'; put 'put ''c2UobCksYj0rVnNlKGMpK2IsX1sobD0xNisoYz0wfGFbdysxMTI+PjJdKXwwKT4+M109K19bbD4+M10tKHAqPUE9KGs9QS1iKSprLygoK19bMTcxXStiKSpBKSksX1soYz1jKzI0fDApPj4zXT0rX1tjPj4zXS0oZio9QSksX1sobD0xNisoYz0wfGFbbSsxMTI+PjJdKXwwKT4+M109K19bbD4+''@;'; put 'put ''M10rcCxfWyhjPWMrMjR8MCk+PjNdPStfW2M+PjNdK2YpfWZ1bmN0aW9uIGRWKGwsYyl7dmFyIHcsYixmPTAscD0wLG09MCxBPTA7cmV0dXJuIG09K19bKGI9MHxhWzEzMisodz0wfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+M10tK19bKGw9MHxhWzEzMisoYz0wfGFbMTYrKGx8PTApPj4yXSk+''@;'; put 'put ''PjJdKT4+M10sQT0oQT0rX1tiKzg+PjNdLStfW2wrOD4+M10pPDA/LUE6QSxmPStfW2MrMzI+PjNdLChsPTA9PSgwfGZlWzE4NzM3Nl0pKT8oZj0uNSpmKihwPStqbls0Njg0Ml0pLHAqPS41KitfW3crMzI+PjNdKTooZj0uNSpmKyhwPStqbls0Njg0Ml0pLHA9LjUqK19bdyszMj4+M10rcCks''@;'; put 'put ''KG08MD8tbTptKTw9cCtmPyhmPStfW2MrNDA+PjNdLGw/KHA9LjUqZioobT0ram5bNDY4NDNdKSxmPS41KitfW3crNDA+PjNdKm0pOihwPS41KmYrKG09K2puWzQ2ODQzXSksZj0uNSorX1t3KzQwPj4zXSttKSxjPUE8PWYrcCYxKTpjPTAsMHxjfWZ1bmN0aW9uIFZzZShsKXt2YXIgYz0wLGY9''@;'; put 'put ''MDtyZXR1cm4gYz0rX1szMisobD0wfGFbMTYrKGx8PTApPj4yXSk+PjNdLDB8ZmVbMTg3Mzc2XT8oZj0uNSpjKyAram5bNDY4NDJdLGM9LjUqK19bbCs0MD4+M10rICtqbls0Njg0M10pOihmPS41KmMqK2puWzQ2ODQyXSxjPS41KitfW2wrNDA+PjNdKitqbls0Njg0M10pLCsgK0QwKCsoYypj''@;'; put 'put ''K2YqZikpfWZ1bmN0aW9uIFl2ZShsKXt2YXIgYztoMChsfD0wLDEzNzQ2MCwxNzYsMSksTDcobCksYz0rTWwobCwwfGFbNDcxNzRdLDEsMCksX1sxMjgrKDB8YVtsKzE2Pj4yXSk+PjNdPWN9ZnVuY3Rpb24gVXZlKGwsYyxmKXtmfD0wO3ZhciBwPTA7cmV0dXJuIGgwKGM9MHxHcihsfD0wLGN8''@;'; put 'put ''PTAsMSksMTM3NDQ3LDMwNCwxKSxwPTB8dnIoNDApLGFbMTEyKygwfGFbKGw9YysxNnwwKT4+Ml0pPj4yXT1wLHA9MHx2cihhWzQ3MTM3XTw8MyksYVsxMzIrKGw9MHxhW2w+PjJdKT4+Ml09cCxfW2wrODg+PjNdPStfWzg4KyhwPTB8YVtmKzE2Pj4yXSk+PjNdLF9bbCs5Nj4+M109K19bcCs5''@;'; put 'put ''Nj4+M10sX1tsKzgwPj4zXT0rX1twKzgwPj4zXSxhW2FbbCsxMTI+PjJdPj4yXT1mLDB8Y31mdW5jdGlvbiBHc2UobCl7dmFyIGM9MCxmPTAscD0wO2ZvcihjPTB8RHQobHw9MCk7YzspcD0wfGFbMTMyKyhmPTB8YVtjKzE2Pj4yXSk+PjJdLF9bKGY9MHxhWzEzMisoMHxhWzE2KygwfGFbYVtm''@;'; put 'put ''KzExMj4+Ml0+PjJdKT4+Ml0pPj4yXSk+PjNdPStfW3A+PjNdLF9bZis4Pj4zXT0rX1twKzg+PjNdLGM9MHx6dChsLGMpfWZ1bmN0aW9uIHlYKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxiLEQsUixHLHEsTSxwPTAsbT0wLEE9MCxrPTA7cT1sZSxsZT1sZSs0OHwwLG09cSxEPXErMzJ8''@;'; put 'put ''MCxiPXErMjh8MCxHPXErMjB8MCxSPXErMTZ8MCxhWyhBPXErMjR8MCk+PjJdPTAsYVtHPj4yXT0wLGFbUj4+Ml09MCxwPTB8YVs0NzEzN10sTT0xPT0oMHxhWyh3PWMrMTM2fDApPj4yXSk/MHxzMmUobCxwLFIpOjB8czJlKGwscCwwKTtkb3tpZigoMHxhW2MrMTI0Pj4yXSk+LTEpe2lmKCgw''@;'; put 'put ''fGFbYysxNjA+PjJdKT4wKXthW20+PjJdPWFbZj4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxrPTB8bDJlKGwsbSxBLEcpO2JyZWFrfWFbbT4+Ml09YVtmPj4yXSxhW20rND4+Ml09YVtmKzQ+PjJdLGFbbSs4Pj4yXT1h''@;'; put 'put ''W2YrOD4+Ml0sYVttKzEyPj4yXT1hW2YrMTI+PjJdLGs9MHxsMmUobCxtLDAsMCk7YnJlYWt9az0wfXdoaWxlKDApO3N3aXRjaChwPTB8ZnVuY3Rpb24gUXNlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDt3PTB8dnIoMHxBcigodz0wfGFbNDcxMzddKTw8MywwfEdvKGx8PTApKSk7''@;'; put 'put ''ZTpkb3tpZigwfHNpKGwsMSwxMDI2MjMsMCkpZm9yKHA9MHxEdChsKTs7KXtpZighcClicmVhayBlO2M9MHxhW3ArMTY+PjJdO3Q6ZG97aWYoMHxmZVtjKzExOT4+MF0pZm9yKG09MHxhWzQ3MTM3XSxBPTB8QXIobSwwfGFbYysxMjA+PjJdKSxmPWMrMTMyfDAsYz0wOzspe2lmKCgwfGMpPj0o''@;'; put 'put ''MHxtKSlicmVhayB0O19bdysoQStjPDwzKT4+M109K19bKDB8YVtmPj4yXSkrKGM8PDMpPj4zXSxjPWMrMXwwfX13aGlsZSgwKTtwPTB8enQobCxwKX19d2hpbGUoMCk7cmV0dXJuIDB8d30obCksYVtEPj4yXT1wLDB8YVt3Pj4yXSl7Y2FzZSAxOmNhc2UgMDp4aygwfGFbNDcxMzddLE0sMHxh''@;'; put 'put ''W1I+PjJdLGMsMCxrLHAsMHxhW0E+PjJdLDB8YVtHPj4yXSxiKTticmVhaztjYXNlIDU6IWZ1bmN0aW9uIGJ1KGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgYixtPTAsQT0wLHc9MCxrPTAsTT0wO2ZvcihiPTB8YVsoY3w9MCk+PjJdLGFbKHB8PTApPj4yXT0wLGs9MHxBcihiLGwpLHA9MDs7KXtp''@;'; put 'put ''ZigoMHxwKT49KDB8aykpe3A9MSxtPTE7YnJlYWt9X1tmKyhwPDwzKT4+M109MTAwKitCaCgpLHA9cCsxfDB9Zm9yKDshKCgwfG0pPj0oMHxiKSk7KXtmb3Iodz0wfEFyKG0sbCksQT0wOyEoKDB8QSk+PSgwfGwpKTspe2lmKCgoTT0rX1tmKyhBPDwzKT4+M10tK19bZisoQSt3PDwzKT4+M10p''@;'; put 'put ''Pj0wP006LU0pPjFlLTE2KXtwPTAsbT1iO2JyZWFrfUE9QSsxfDB9bT1tKzF8MH1lOmRve2lmKDB8cClmb3IocncoMSkscD0wOzspe2lmKCgwfHApPj0oMHxrKSlicmVhayBlO19bZisocDw8Myk+PjNdPTEwMCorQmgoKSxwPXArMXwwfX13aGlsZSgwKTtpZigwfGxoKHA9MHxmdW5jdGlvbiBh''@;'; put 'put ''MmUobCxjKXtjPStjO3ZhciBmLG0scD0wLEE9MDtmPTE9PSgwfGFbMTYrKGx8PTApPj4yXSk/MHxhaChsLDApOjB8QTUobCksbT0wfGFbZisyOD4+Ml07ZTpkb3tpZigxIT1jKWZvcihwPTB8YVtmKzg+PjJdLGw9MDs7KXtpZigoMHxsKT49KDB8cCkpYnJlYWsgZTtfWyhBPW0rKGw8PDMpfDAp''@;'; put 'put ''Pj4zXT0rX1tBPj4zXSpjLGw9bCsxfDB9fXdoaWxlKDApO3JldHVybiAwfGZ9KGMsMSksMCkpcmV0dXJuIFo3KGs9MHxUaygwLHAsMCwxMDFlNSwxMDAsMCksbCxmLDMwMCkseWwoayksWjcoaz0wfFRrKDAscCwwLDEwMWUzLDEwMCwwKSxsLGYsMzAwKSx5bChrKSxaNyhrPTB8VGsoMCxwLDAs''@;'; put 'put ''MTAxMCwxMDAsMCksbCxmLDMwMCkseWwoayksWjcoaz0wfFRrKDAscCwwLDEwLjEsMTAwLDApLGwsZiwzMDApLHlsKGspLGZ1bmN0aW9uIHJuKGwsYyxmLHAsbSxBLHcpe2w9K2wsYz0rYyxmPStmLHA9K3AsbXw9MCxBfD0wLHd8PTA7dmFyIEQsUixHLHEsYj0wLGs9MCxNPTAscGU9MCxnZT0w''@;'; put 'put ''LGJlPTA7Zm9yKHE9bGUsbGU9bGUrODB8MCxSPXErNDh8MCxEPXErMjR8MCxHPXEsYj0wOzspe2lmKCgwfGIpPj0oMHxBKSl7az0wO2JyZWFrfV9bUisoYjw8Myk+PjNdPXBlPStfW3crKGI8PDMpPj4zXSxfW0QrKGI8PDMpPj4zXT1wZSxiPWIrMXwwfWZvcig7ISgoMHxrKT49KDB8bSkpOyl7''@;'; put 'put ''Zm9yKE09MHxBcihrLEEpLGI9MDshKCgwfGIpPj0oMHxBKSk7KV9bKGdlPVIrKGI8PDMpfDApPj4zXT0oYmU9K19bdysoYitNPDwzKT4+M10pPChwZT0rX1tnZT4+M10pP2JlOnBlLF9bKGdlPUQrKGI8PDMpfDApPj4zXT1iZT4ocGU9K19bZ2U+PjNdKT9iZTpwZSxiPWIrMXwwO2s9aysxfDB9''@;'; put 'put ''Zm9yKGY9MCE9KHBlPStfW0Q+PjNdLStfW1I+PjNdKT8oZi1sKS9wZToxLGJlPShwLWMpLyhwZT0rX1tEKzg+PjNdLStfW1IrOD4+M10pLGY9MCE9cGU/ZjxiZT9mOmJlOmYsX1tHPj4zXT1sLF9bRys4Pj4zXT1jLF9bRysxNj4+M109MCxrPTA7ISgoMHxrKT49KDB8bSkpOyl7Zm9yKE09MHxB''@;'; put 'put ''cihrLEEpLGI9MDshKCgwfGIpPj0oMHxBKSk7KV9bKGdlPXcrKGIrTTw8Myl8MCk+PjNdPSgrX1tnZT4+M10tK19bUisoYjw8Myk+PjNdKSpmKyArX1tHKyhiPDwzKT4+M10sYj1iKzF8MDtrPWsrMXwwfWxlPXF9KDAsMCw0OTAsNzAwLDB8YVtjPj4yXSxsLGYpLHZvaWQgUmEocCk7UHIoOTI0''@;'; put 'put ''MzAsOTIzODcsMTY0LDkyNDY2KX0oMHxhWzQ3MTM3XSxNLHAsYik7YnJlYWs7Y2FzZSA0OnA9KHA9MHxhW1I+PjJdKT8wfEprKHAsMCk6MHxBNShNKSxhW1I+PjJdPXAsZnVuY3Rpb24gcXZlKGwsYyxmLHAsbSxBLHcsYil7IWZ1bmN0aW9uIERjKGwsYyxmLHAsbSxBLHcpe2x8PTAsZnw9MCxw''@;'; put 'put ''fD0wLG18PTAsQT0rQSx3fD0wO3ZhciBNLGI9MCxrPTAsRD0wO2lmKEQ9MD09KDB8bGgoY3w9MCwwKSksYj0xPT0oMHxhW2MrMTY+PjJdKSxEP2I/Yj0wfHdwKDB8YWgoYywwKSk6az01OmI/Yj1jOms9NSw1PT0oMHxrKSYmKGI9MHxBNShjKSksRD0wfHdwKGIpLGFbdz4+Ml09MCxiPTB8YVtE''@;'; put 'put ''Pj4yXSxmfHwoUW4oMHxBcihsPDwzLGIpKSxibCgpKSxNPTB8ZnVuY3Rpb24gRXgobCxjLGYscCxtLEEpe2N8PTAsZj0rZixwfD0wLG18PTAsQXw9MDt2YXIgYW4sdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAs''@;'; put 'put ''cWU9MCxydD0wLFdlPTAsYXQ9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLFNuPTAsSG49MCx1cj0wO2lmKGFuPTB8YVsobHw9MCk+PjJdLDB8bGgobCwwKSYmMT09KDB8YVtsKzE2Pj4yXSkpe2ZvcihrPTB8QXIoYW4sYyksYj0wLHc9MDshKCgwfHcpPj0oMHxrKSk7KWI9''@;'; put 'put ''KHBlPStfW3ArKHc8PDMpPj4zXSkqcGUrYix3PXcrMXwwO2U6ZG97aWYoMD09Yilmb3Iodz0wOzspe2lmKCgwfHcpPj0oMHxrKSlicmVhayBlO19bcCsodzw8Myk+PjNdPTcyKitCaCgpLHc9dysxfDB9fXdoaWxlKDApO2ZvcihzdD0wfGFbbCsyMD4+Ml0sRXQ9MHxhW2wrMjQ+PjJdLFp0PTB8''@;'; put 'put ''YVtsKzI4Pj4yXSx3PTB8UW4oNTYpLF9bKGJ0PXcrMzJ8MCk+PjNdPTEsYVt3KzIwPj4yXT0wLGFbdysyND4+Ml09MCxhW3c+PjJdPWwsX1t3KzQwPj4zXT0uMDEsYVt3KzQ4Pj4yXT1+fitEMCgrICsoMHxhW2w+PjJdKSksY3Q9MHxRbihhbjw8MyksYVt3KzEyPj4yXT1jdCxrPTA7ISgoMHxr''@;'; put 'put ''KT49KDB8YW4pKTspX1tjdCsoazw8Myk+PjNdPWYsaz1rKzF8MDtpZihhWyhTdD13KzR8MCk+PjJdPTB8dWMoYW4sYW4sbD0oMHxhW2wrOD4+Ml0pK2FufDAsMSwxKSxsPTB8dWMoYW4sYW4sbCwxLDEpLGFbKGt0PXcrOHwwKT4+Ml09bCwwPT0oMHxsKXwwPT0oMHwoaz0wfGFbU3Q+PjJdKSkp''@;'; put 'put ''UTQodyksdz0wO2Vsc2V7VmU9MHxhW2srMjA+PjJdLHFlPTB8YVtrKzI0Pj4yXSxXZT0wfGFbbCsyND4+Ml0sUmU9MHxhW2srMjg+PjJdLGF0PTB8YVtsKzI4Pj4yXSxhWyhydD0wfGFbbCsyMD4+Ml0pPj4yXT0wLGFbVmU+PjJdPTAscT0wLHBlPTAsSGU9MCxiZT0wO2U6Zm9yKDshKCgwfGJl''@;'; put 'put ''KT49KDB8YW4pKTspe2ZvcihMZT1zdCsoKE9lPWJlKzF8MCk8PDIpfDAsTT0wLEQ9MCxnZT0wfGFbc3QrKGJlPDwyKT4+Ml0sRz1xLGY9cGUsbD1IZTshKCgwfGdlKT49KDB8YVtMZT4+Ml0pKTspe2lmKCgwfChrPTB8YVtFdCsoZ2U8PDIpPj4yXSkpPT0oMHxiZSkpYj1HLGs9bDtlbHNle3N3''@;'; put 'put ''aXRjaChhW3FlKyhsPDwyKT4+Ml09ayxSPStfW1p0KyhnZTw8Myk+PjNdLDB8bSl7Y2FzZSAyOmI9MD09KGI9UipSKT8tMWU1Oi0xL2I7YnJlYWs7Y2FzZSAxOmI9UipSPT0wPy0xZTU6LTEvUjticmVhaztjYXNlIDA6Yj0tMTticmVhaztkZWZhdWx0OlNuPTIzO2JyZWFrIGV9X1tSZSsobDw8''@;'; put 'put ''Myk+PjNdPWIsYVtXZSsobDw8Mik+PjJdPWssX1sodXI9YXQrKGw8PDMpfDApPj4zXT1Ibj1iKlIsZj0rX2MocCxjLGJlLGspKkhuK2YsTT1iK00sRD0oSG49K19bdXI+PjNdKStELGI9SG4qUitHLGs9bCsxfDB9Z2U9Z2UrMXwwLEc9YixsPWt9YVtxZSsobDw8Mik+PjJdPWJlLF9bKEhlPWN0''@;'; put 'put ''KyhiZTw8Myl8MCk+PjNdPXE9LU0qK19bSGU+PjNdLF9bUmUrKGw8PDMpPj4zXT1xLU0sYVtXZSsobDw8Mik+PjJdPWJlLF9bYXQrKGw8PDMpPj4zXT0tRCxhW1ZlKyhPZTw8Mik+PjJdPUhlPWwrMXwwLGFbcnQrKE9lPDwyKT4+Ml09SGUscT1HLHBlPWYsYmU9T2V9aWYoMjM9PSgwfFNuKSYm''@;'; put 'put ''UHIoMTM4Mzk0LDk1ODMxLDU5MSw5NjAxMiksMD09KGI9MD09KDB8QSk/MTpwZS9xKSl3PTA7ZWxzZXtmb3Ioaz0wOyEoKDB8ayk+PSgwfEhlKSk7KV9bKHVyPWF0KyhrPDwzKXwwKT4+M109K19bdXI+PjNdKmIsaz1rKzF8MDtfW2J0Pj4zXT1iLGFbOCsoMHxhW1N0Pj4yXSk+PjJdPUhlLGFb''@;'; put 'put ''OCsoMHxhW2t0Pj4yXSk+PjJdPUhlfX1yZXR1cm4gMHx3fXJldHVybiBQcig5NTk0NSw5NTgzMSw1MjUsOTYwMTIpLDB9KEQsbCwwLDB8YVtmPj4yXSwwPT0oMHxwKT8wOjIsMSkpe2ZvcihfW00rNDA+PjNdPS4xLGFbTSsyND4+Ml09NSxmdW5jdGlvbiBUeChsLGMsZixwLG0pe3ptKGx8PTAs''@;'; put 'put ''Y3w9MCxmfD0wLHB8PTAsbT0rbSl9KE0sbCwwfGFbZj4+Ml0sbSxBKSxrPTB8QXIoYixsKSxwPU0rMzJ8MCxiPTA7ISgoMHxiKT49KDB8aykpOylfWyh3PSgwfGFbZj4+Ml0pKyhiPDwzKXwwKT4+M109K19bdz4+M10vK19bcD4+M10sYj1iKzF8MDshZnVuY3Rpb24geHgobCl7UTQobHw9MCl9''@;'; put 'put ''KE0pfWVsc2UgYVt3Pj4yXT0tMTsoMHxEKSE9KDB8YykmJlJhKEQpfShsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsdz0rdyxifD0wKX0oMHxhWzQ3MTM3XSwwLHAsRCwxLDIwMCwuMDAxLGIpfWZvcihwPTB8RHQobCk7cDspe2ZvcihjPSgwfGFbRD4+Ml0pKygoMHxBcigwfGFbMTIwKyhBPTB8''@;'; put 'put ''YVtwKzE2Pj4yXSk+PjJdLGY9MHxhWzQ3MTM3XSkpPDwzKXwwLEE9QSsxMzJ8MCxtPTA7ISgoMHxtKT49KDB8ZikpOylfWygwfGFbQT4+Ml0pKyhtPDwzKT4+M109K19bYysobTw8Myk+PjNdLG09bSsxfDA7cD0wfHp0KGwscCl9RnQoayksRnQoMHxhW0Q+PjJdKSxSYShNKSwwfChwPTB8YVtS''@;'; put 'put ''Pj4yXSkmJlJhKHApLDB8KHA9MHxhW0c+PjJdKSYmRnQocCksbGU9cX1mdW5jdGlvbiBiWChsKXtoMChsfD0wLDEzNzQ2MCwxNzYsMSksTDcobCl9ZnVuY3Rpb24gS3NlKCl7dmFyIGwsYztyZXR1cm4gbD0wfFFuKDE2OCksX1tsPj4zXT0tMS4wMDAxMjM0LF9bbCs4Pj4zXT0xLGFbbCsxNj4+''@;'; put 'put ''Ml09MSxfW2wrMjQ+PjNdPS0xLF9bbCszMj4+M109LjIsYVtsKzQwPj4yXT0wLGFbbCs0ND4+Ml09NCxhW2wrNDg+PjJdPTEsYVtsKzUyPj4yXT00NSxhW2wrNTY+PjJdPTEwLF9bbCs2ND4+M109LjYsX1tsKzcyPj4zXT0uMDAxLGFbbCs4MD4+Ml09NTAwLF9bbCs4OD4+M109LjksX1tsKzk2''@;'; put 'put ''Pj4zXT0uMSxhW2wrMTA0Pj4yXT0xLGFbbCsxMDg+PjJdPTEyMyxhWyhjPWwrMTEyfDApPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2wrMTI4Pj4yXT0xLGFbbCsxMzI+PjJdPTMsYVtsKzEzNj4+Ml09MCxfW2wrMTQ0Pj4zXT0tNCxfW2wrMTUyPj4zXT0w''@;'; put 'put ''LGFbbCsxNjA+PjJdPTAsMHxsfWZ1bmN0aW9uIHBWKGwpe0Z0KGx8PTApfWZ1bmN0aW9uIGdWKGwpe0Z0KGx8PTApfWZ1bmN0aW9uIG1WKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHxRbigxODQpLGFbYz4+Ml09bCxhW2MrMTc2Pj4yXT0wLDB8Y31mdW5jdGlvbiBfWChsLGMpe3ZhciBwLG0s''@;'; put 'put ''Zj0wO19bOCsobHw9MCkrKChwPTB8YVtsPj4yXSk8PDMpPj4zXT1jPStjLG09bCsxNzZ8MDtlOmRve3N3aXRjaCgwfGFbbT4+Ml0pe2Nhc2UgMDoyMD09KDB8KGY9MHxhW2w+PjJdKSk/KGFbbT4+Ml09LTEsZj0xOSk6KGFbbT4+Ml09MSxmPSgwfGYpPjE5PzIwOmYrMXwwKSxhW2w+PjJdPWY7''@;'; put 'put ''YnJlYWs7Y2FzZSAxOmlmKCgwfChmPTB8YVtsPj4yXSkpPDIwJiYrX1tsKzgrKHArLTE8PDMpPj4zXT5jKXthW2w+PjJdPWYrMTticmVhayBlfWFbbD4+Ml09ZistMSxhW20+PjJdPS0xO2JyZWFrIGU7ZGVmYXVsdDppZigoMHwoZj0wfGFbbD4+Ml0pKT4wJiYrX1tsKzgrKHArMTw8Myk+PjNd''@;'; put 'put ''PmMpe2FbbD4+Ml09ZistMTticmVhayBlfWFbbD4+Ml09ZisxLGFbbT4+Ml09MTticmVhayBlfX13aGlsZSgwKX1mdW5jdGlvbiBqNyhsKXtyZXR1cm4gMHxhWyhsfD0wKT4+Ml19ZnVuY3Rpb24gTEQobCxjLGYpe2N8PTAsZnw9MDt2YXIgRCxSLEcscSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9''@;'; put 'put ''MCxNPTAscGU9MDtpZihxPTB8YVsyNCsobHw9MCk+PjJdLFI9MHxhWyhHPTB8YVtsKzIwPj4yXSkrKChEPTB8YVtsPj4yXSk8PDIpPj4yXSl7bD0wLHA9MDtlOmZvcig7ISgoMHxsKT49KDB8RCkpOylmb3IoYj1sKzF8MCxrPTB8YVtHKyhiPDwyKT4+Ml0sTT0wfEFyKGwsYyksdz0wfGFbRyso''@;'; put 'put ''bDw8Mik+PjJdOzspe2lmKCgwfHcpPj0oMHxrKSl7bD1iO2NvbnRpbnVlIGV9Zm9yKEE9cSsodzw8Mil8MCxsPTAsbT0wOyEoKDB8bCk+PSgwfGMpKTspcGU9K19bZisobCtNPDwzKT4+M10tK19bZisoKDB8QXIoMHxhW0E+PjJdLGMpKTw8Myk+PjNdLGw9bCsxfDAsbT1wZSpwZSttO3c9dysx''@;'; put 'put ''fDAscD0rRDAoK20pK3B9cC89KygwfFIpfWVsc2UgcD0xO3JldHVybitwfWZ1bmN0aW9uICRzZShsLGMsZil7dmFyIHA7bHw9MCxwPTEwKyhjfD0wKXwwLCgwfGFbKGZ8PTApPj4yXSk8PSgwfGMpJiYoYVtmPj4yXT1wLGFbbD4+Ml09MHxWMCgwfGFbbD4+Ml0scDw8MykpfWZ1bmN0aW9uIEp2''@;'; put 'put ''ZShsLGMsZil7dmFyIHA7bHw9MCxwPTEwKyhjfD0wKXwwLCgwfGFbKGZ8PTApPj4yXSk8PSgwfGMpJiYoYVtmPj4yXT1wLGFbbD4+Ml09MHxWMCgwfGFbbD4+Ml0scDw8MikpfWZ1bmN0aW9uIHQ4KGwsYyxmLHApe2x8PTAsZnw9MDt2YXIgQSx3LGIsayxNLG09MDtmb3IoTT1sZSxsZT1sZSsx''@;'; put 'put ''NnwwLGs9TSxiPTB8QXIocHw9MCxjfD0wKSxjPTB8QXIoZixjKSxwPTA7MiE9KDB8cCk7KV9baysocDw8Myk+PjNdPStfW2wrKHArYjw8Myk+PjNdLStfW2wrKHArYzw8Myk+PjNdLHA9cCsxfDA7dz0rX1trPj4zXSxBPStfW2srOD4+M107ZG97aWYoISgodz49MD93Oi13KTw9MWUtNSooQT49''@;'; put 'put ''MD9BOi1BKSkpe2lmKG09K1pmKCtBL3cpLHc+MCl7aWYoIShBPDApKWJyZWFrO20rPTYuMjgzMTg1MzA3MTc5NTg2O2JyZWFrfWlmKCEodzwwKSlicmVhazttKz0zLjE0MTU5MjY1MzU4OTc5MzticmVha31tPUE+MD8xLjU3MDc5NjMyNjc5NDg5NjY6NC43MTIzODg5ODAzODQ2OX13aGlsZSgw''@;'; put 'put ''KTtyZXR1cm4gbGU9TSwrbX1mdW5jdGlvbiBxc2UobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxwfD0wLG18PTAsQXw9MDt2YXIgSHIsRXIsZnIsRHIsSnIsVmksUm8sdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAs''@;'; put 'put ''cWU9MCxydD0wLFdlPTAsYXQ9MCxTdD0wLGt0PTAsc3Q9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAsdXI9MCxMcj0wLGwwPTAsbG89MCxUYT0wO1JvPWxlLGxlPWxlKzgwfDAsVmk9Um8sRz0rX1soZnw9MCk+PjNdLEQ9K19bKE09ZisyNHwwKT4+M10sYj0rX1soUj1mKzMyfDApPj4zXSxI''@;'; put 'put ''cj0rX1tmKzcyPj4zXSxFcj0wfGFbZis4MD4+Ml0sZnI9K19bZis4OD4+M10scT0rX1tmKzk2Pj4zXSxEcj0wfGFbZisxMDQ+PjJdLHc9MHxhWyhKcj1mKzU2fDApPj4yXTtkb3tpZighKDA9PSgwfGMpfCgwfEVyKTwxfHwoTHI9MHxhW2MrND4+Ml0sKDB8bCk8MXwoMHxMcik8MSkpKXtpZih1''@;'; put 'put ''cj0wfGFbYz4+Ml0sbDA9MHxtVih3KSxhW0E+PjJdPTAsKDB8dXIpIT0oMHxMcikpe2FbQT4+Ml09LTEwMCxnVihsMCksYVtKcj4+Ml09dzticmVha31Tbj0wfGFoKGMsMSksSG49MHxhW1NuKzIwPj4yXSx1cj0wfGFbU24rMjQ+PjJdO2U6ZG97aWYoMHxhW2YrMTY+PjJdKWZvcihydygwfGFb''@;'; put 'put ''ZisxMDg+PjJdKSxrPTB8QXIoTHIsbCksdz0wOzspe2lmKCgwfHcpPj0oMHxrKSlicmVhayBlO19bbSsodzw8Myk+PjNdPStCaCgpLHc9dysxfDB9fXdoaWxlKDApO2ZvcihEPDAmJihEPStMRChTbixsLG0pLF9bTT4+M109RCksYjwwJiYoX1tSPj4zXT0uMixiPS4yKSxHPj0wJiYoX1tmPj4z''@;'; put 'put ''XT0tMSxHPS0xKSxhbj0rcWwoK0QsKygxLUcpKSxydD0rcWwoK2IsLjMzMzMzMzMzMzMzMzMzMzMqKDItRykpL0QsYXQ9MHxRbihXZT0wfEFyKExyLGw8PDMpKSxTdD0wfFFuKFdlKSxrdD1mKzExNnwwLHN0PWYrNjR8MCxjdD1WaSs4fDAsYnQ9VmkrMTZ8MCxWZT0wLHFlPTAsTGU9cTs7KXtn''@;'; put 'put ''bygwfGF0LDB8bSwwfFdlKSxhaihIZT0wfFlrKGwsTHIsUmU9MHxqNyhsMCksbSwwPT0oMHxhW2t0Pj4yXSk/MDpwKSxTdCxtLCtfW3N0Pj4zXSxHLGFuLFZpLEEpLE09MDtlOmZvcig7Oyl7aWYoKDB8TSk+PSgwfExyKSl7cT0wLGs9MDticmVha31mb3IocGU9U3QrKChSPTB8QXIoTSxsKSk8''@;'; put 'put ''PDMpfDAsYmU9SG4rKChnZT1NKzF8MCk8PDIpfDAsaz0wfGFbSG4rKE08PDIpPj4yXTs7KXtpZigoMHxrKT49KDB8YVtiZT4+Ml0pKXtNPWdlO2NvbnRpbnVlIGV9dz0wfGFbKE9lPXVyKyhrPDwyKXwwKT4+Ml07dDpkb3tpZigoMHx3KSE9KDB8TSkpZm9yKGI9K19jKG0sbCxNLHcpKnJ0LHc9''@;'; put 'put ''MDs7KXtpZigoMHx3KT49KDB8bCkpYnJlYWsgdDtxPWIqKCtfW20rKHcrUjw8Myk+PjNdLStfW20rKCgwfEFyKDB8YVtPZT4+Ml0sbCkpK3c8PDMpPj4zXSksX1sobG89cGUrKHc8PDMpfDApPj4zXT0rX1tsbz4+M10tcSx3PXcrMXwwfX13aGlsZSgwKTtrPWsrMXwwfX1mb3IoOyEoKDB8ayk+''@;'; put 'put ''PSgwfExyKSk7KXtmb3IoUj1TdCsoKE09MHxBcihrLGwpKTw8Myl8MCxiPTAsdz0wOyEoKDB8dyk+PSgwfGwpKTspYj0oVGE9K19bUisodzw8Myk+PjNdKSpUYStiLHc9dysxfDA7cT0oYj0rRDAoK2IpKStxO2U6ZG97aWYoYj4wKWZvcihiPTEvYix3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKXt3''@;'; put 'put ''PTA7YnJlYWsgZX1fWyhsbz1SKyh3PDwzKXwwKT4+M109K19bbG8+PjNdKmIsdz13KzF8MH1lbHNlIHc9MH13aGlsZSgwKTtmb3IoOyEoKDB8dyk+PSgwfGwpKTspX1sobG89bSsodytNPDwzKXwwKT4+M109K19bbG8+PjNdKyArX1tSKyh3PDwzKT4+M10qTGUsdz13KzF8MDtrPWsrMXwwfWlm''@;'; put 'put ''KFZlPVZlKzF8MCxIZSYmKGV2KEhlKSxfWChsMCwuODUqK19bY3Q+PjNdKyArX1tWaT4+M10rMy4zKitfW2J0Pj4zXSkpLCEoKDB8VmUpPCgwfEVyKSYoTGU9K01rKERyLExlLHEscWUsZnIpKT5IcikpYnJlYWs7cWU9cX0wfGFbZisxMTI+PjJdJiZFayhsLFNuLG0pLGdWKGwwKSxhW0pyPj4y''@;'; put 'put ''XT1SZSxGdChhdCksKDB8U24pIT0oMHxjKSYmUmEoU24pLEZ0KFN0KX19d2hpbGUoMCk7bGU9Um99ZnVuY3Rpb24gTWsobCxjLGYscCxtKXtsfD0wLGM9K2MsZj0rZixwPStwLG09K207ZG97aWYobCl7aWYoZj49cCl7Yyo9bTticmVha30uOTUqcDxmfHwoYz0uOTkqYy9tKX1lbHNlIGMqPW19''@;'; put 'put ''d2hpbGUoMCk7cmV0dXJuK2N9ZnVuY3Rpb24gRWsobCxjLGYpe2x8PTAsZnw9MDt2YXIgYmUsT2UsTGUsVmUscWUscnQsV2UsYXQsU3QscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsUmU9MCxIZT0wO2ZvcihTdD1sZSxsZT1sZSsxNnwwLFZl''@;'; put 'put ''PVN0Kzh8MCxxZT1TdCs0fDAscnQ9U3QsV2U9MHxhWyhjfD0wKT4+Ml0sYXQ9MHxhW2MrMjA+PjJdLGJlPTB8YVtjKzI0Pj4yXSxhWyhMZT1TdCsxMnwwKT4+Ml09MTAsYVtydD4+Ml09MTAsT2U9MHxRbihXZTw8MiksbT0wfFFuKDgwKSxhW1ZlPj4yXT1tLHA9MHxRbig0MCksYVtxZT4+Ml09''@;'; put 'put ''cCxjPTA7Oyl7aWYoKDB8Yyk+PSgwfFdlKSl7RD0wLHBlPW0saz1wLFI9cCxNPW07YnJlYWt9YVtPZSsoYzw8Mik+PjJdPTAsYz1jKzF8MH1mb3IoOyEoKDB8RCk+PSgwfFdlKSk7KXtjPTB8YVthdCsoRDw8Mik+PjJdO2U6ZG97aWYoMT09KCgwfGFbYXQrKEQrMTw8Mik+PjJdKS1jfDApJiYw''@;'; put 'put ''PT0oMHxhW09lKyhEPDwyKT4+Ml0pJiYoUmU9MHxhW2JlKyhjPDwyKT4+Ml0sSGU9T2UrKFJlPDwyKXwwLDA9PSgwfGFbSGU+PjJdKSkpe2ZvcihhW0hlPj4yXT0xLHE9YXQrKFJlKzE8PDIpfDAsRD0wLGdlPTAsQT0wLEc9MHxhW2F0KyhSZTw8Mik+PjJdLGs9UixjPXBlOyEoKDB8Ryk+PSgw''@;'; put 'put ''fGFbcT4+Ml0pKTspMT09KCgwfGFbYXQrKDErKG09MHxhWyhwPWJlKyhHPDwyKXwwKT4+Ml0pPDwyKT4+Ml0pLSgwfGFbYXQrKG08PDIpPj4yXSl8MCk/KGFbT2UrKG08PDIpPj4yXT0xLEp2ZShxZSxnZSxMZSksQT0rX2MoZixsLFJlLDB8YVtwPj4yXSkrQSxhWyhrPTB8YVtxZT4+Ml0pKyhn''@;'; put 'put ''ZTw8Mik+PjJdPWFbcD4+Ml0scD1ELG09Z2UrMXwwKTooJHNlKFZlLEQscnQpLGI9K3Q4KGYsbCxSZSwwfGFbcD4+Ml0pLF9bKGM9MHxhW1ZlPj4yXSkrKEQ8PDMpPj4zXT1iLHA9RCsxfDAsbT1nZSxNPWMpLEQ9cCxnZT1tLEc9RysxfDA7Zm9yKGI9QS8rKDB8Z2UpLCgwfEQpPjAmJihrWChE''@;'; put 'put ''LE0pLGM9TSksQT0oMHxnZSk+MT82LjI4MzE4NTMwNzE3OTU4Ni8rKGdlKy0xfDApOjAscD0wLHc9MDs7KXtpZigoMHxwKT49KDB8Z2UpKXtSPWssbT1rO2JyZWFrIGV9ZTJlKGYsbCxiLHcsUmUsMHxhW2srKHA8PDIpPj4yXSkscD1wKzF8MCx3Kz1BfX1lbHNlIHA9RCxtPWssYz1wZX13aGls''@;'; put 'put ''ZSgwKTtEPXArMXwwLHBlPWMsaz1tfUZ0KE9lKSxGdChwZSksRnQoayksbGU9U3R9ZnVuY3Rpb24ga1gobCxjKXt4MShjfD0wLGx8PTAsOCw2OCl9ZnVuY3Rpb24gZTJlKGwsYyxmLHAsbSxBKXt2YXIgdztsfD0wLGN8PTAsZj0rZixtfD0wLEF8PTAsdz0raGEoKyhwPStwKSkqZixtPTB8QXIo''@;'; put 'put ''bSxjKSxBPTB8QXIoQSxjKSxfW2wrKEE8PDMpPj4zXT13KyArX1tsKyhtPDwzKT4+M10scD0rRGEoK3ApKmYsX1tsKyhBKzE8PDMpPj4zXT1wKyArX1tsKyhtKzE8PDMpPj4zXX1mdW5jdGlvbiB0MmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxwfD0wLG18PTAsQXw9MDt2YXIgdXIsSHIsRXIs''@;'; put 'put ''ZnIsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxydD0wLFdlPTAsYXQ9MCxTdD0wLGt0PTAsc3Q9MCxFdD0wLFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wLERyPTAsSnI9MCxMcj0wLGwwPTA7''@;'; put 'put ''aWYoRz0rX1soZnw9MCk+PjNdLE09K19bKEQ9ZisyNHwwKT4+M10saz0rX1soUj1mKzMyfDApPj4zXSx1cj0rX1tmKzcyPj4zXSxIcj0wfGFbZis4MD4+Ml0sRXI9K19bZis4OD4+M10sZ2U9K19bZis5Nj4+M10sZnI9MHxhW2YrMTA0Pj4yXSx3PTB8YVtmKzU2Pj4yXSxDdSg5MjE5OCwzMiwx''@;'; put 'put ''LDB8YVsxNTcxMl0pLCEoMD09KDB8Yyl8KDB8SHIpPDF8fChEcj0wfGFbYz4+Ml0sYj0wfGFbYys0Pj4yXSwoMHxsKTwxfCgwfGIpPDEpKSl7aWYoSnI9MHxRbigwfEFyKHE9bDw8MyxiKSksKDB8Yik8KDB8YVtmKzUyPj4yXSk/KFp0PTAsY3Q9MCxidD0wLGFuPTAsU249MCxIbj0wKToobVYo''@;'; put 'put ''dyksYW49MHxRbig4MCpsfDApLFNuPTB8UW4oODApLFp0PUhuPTB8UW4oODApLGN0PVNuLGJ0PWFuKSxhW0E+PjJdPTAsKDB8RHIpPT0oMHxiKSl7a3Q9MHxhaChjLDEpLHN0PTB8YVtrdCsyMD4+Ml0sRXQ9MHxhW2t0KzI0Pj4yXTtlOmRve2lmKDB8YVtmKzE2Pj4yXSlmb3IocncoMHxhW2Yr''@;'; put 'put ''MTA4Pj4yXSksYj0wfEFyKERyLGwpLHc9MDs7KXtpZigoMHx3KT49KDB8YikpYnJlYWsgZTtfW20rKHc8PDMpPj4zXT0rQmgoKSx3PXcrMXwwfX13aGlsZSgwKTtmb3IoTTwwJiYoTT0rTEQoa3QsbCxtKSxfW0Q+PjNdPU0pLGs8MCYmKF9bUj4+M109LjIsaz0uMiksRz49MCYmKF9bZj4+M109''@;'; put 'put ''LTEsRz0tMSksU3Q9K3FsKCtNLCsoYXQ9MS1HKSkscnQ9K3FsKCtrLC4zMzMzMzMzMzMzMzMzMzMzKigyLUcpKS9NLFdlPTB8UW4ocSksUmU9MHxRbihMZT0wfEFyKERyLHEpKSxIZT0wfEFyKERyLGwpLFZlPWYrMTE2fDAscWU9MCE9KDB8cCksT2U9LTE9PUcsYmU9MCxHPTA7Oyl7Zm9yKHc9''@;'; put 'put ''MDshKCgwfHcpPj0oMHxIZSkpOylfW0pyKyh3PDwzKT4+M109MCx3PXcrMXwwO2ZvcihnbygwfFJlLDB8bSwwfExlKSxxPTA7Oyl7aWYoISgoMHxxKTwoMHxEcikpKXtSPTA7YnJlYWt9Zm9yKHc9MDshKCgwfHcpPj0oMHxsKSk7KV9bV2UrKHc8PDMpPj4zXT0wLHc9dysxfDA7Uj0wfEFyKHEs''@;'; put 'put ''bCk7ZTpkb3tpZihxZSYwIT0oMHxhW1ZlPj4yXSkpZm9yKHc9MDs7KXtpZigoMHx3KT09KDB8RHIpKXt3PTA7YnJlYWsgZX10OmRve2lmKCgwfHcpIT0oMHxxKSlmb3IoTT0rZHUobSxsLHEsdyksQT1wKyh3PDwzKXwwLEQ9MHxBcih3LGwpLGs9K3FsKCtNLCthdCksaz0xLyhPZT9NKk06ayks''@;'; put 'put ''Yj0wOzspe2lmKCgwfGIpPj0oMHxsKSlicmVhayB0O19bKHBlPVdlKyhiPDwzKXwwKT4+M109K19bQT4+M10qU3QqKCtfW20rKGIrUjw8Myk+PjNdLStfW20rKGIrRDw8Myk+PjNdKSprKyArX1twZT4+M10sYj1iKzF8MH19d2hpbGUoMCk7dz13KzF8MH1lbHNlIGZvcih3PTA7Oyl7aWYoKDB8''@;'; put 'put ''dyk9PSgwfERyKSl7dz0wO2JyZWFrIGV9dDpkb3tpZigoMHx3KSE9KDB8cSkpZm9yKE09K2R1KG0sbCxxLHcpLEE9MHxBcih3LGwpLGs9K3FsKCtNLCthdCksaz0xLyhPZT9NKk06ayksYj0wOzspe2lmKCgwfGIpPj0oMHxsKSlicmVhayB0O19bKHBlPVdlKyhiPDwzKXwwKT4+M109KCtfW20r''@;'; put 'put ''KGIrUjw8Myk+PjNdLStfW20rKGIrQTw8Myk+PjNdKSpTdCprKyArX1twZT4+M10sYj1iKzF8MH19d2hpbGUoMCk7dz13KzF8MH19d2hpbGUoMCk7Zm9yKDshKCgwfHcpPj0oMHxsKSk7KV9bKHBlPUpyKyh3K1I8PDMpfDApPj4zXT0rX1twZT4+M10rICtfW1dlKyh3PDwzKT4+M10sdz13KzF8''@;'; put 'put ''MDtxPXErMXwwfWU6Zm9yKDs7KXtpZighKCgwfFIpPCgwfERyKSkpe009MCxiPTA7YnJlYWt9Zm9yKHc9MDshKCgwfHcpPj0oMHxsKSk7KV9bV2UrKHc8PDMpPj4zXT0wLHc9dysxfDA7Zm9yKEE9c3QrKChxPVIrMXwwKTw8Mil8MCxwZT0wfEFyKFIsbCksYj0wfGFbc3QrKFI8PDIpPj4yXTs7''@;'; put 'put ''KXtpZigoMHxiKT49KDB8YVtBPj4yXSkpe3c9MDticmVha313PTB8YVsoRD1FdCsoYjw8Mil8MCk+PjJdO3Q6ZG97aWYoKDB8dykhPSgwfFIpKWZvcihrPStfYyhtLGwsUix3KSpydCx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKWJyZWFrIHQ7TT1rKigrX1ttKyh3K3BlPDwzKT4+M10tK19bbSso''@;'; put 'put ''KDB8QXIoMHxhW0Q+PjJdLGwpKSt3PDwzKT4+M10pLF9bKExyPVdlKyh3PDwzKXwwKT4+M109K19bTHI+PjNdLU0sdz13KzF8MH19d2hpbGUoMCk7Yj1iKzF8MH1mb3IoOzspe2lmKCgwfHcpPj0oMHxsKSl7Uj1xO2NvbnRpbnVlIGV9X1soTHI9SnIrKHcrcGU8PDMpfDApPj4zXT0rX1tMcj4+''@;'; put 'put ''M10rICtfW1dlKyh3PDwzKT4+M10sdz13KzF8MH19Zm9yKDshKCgwfGIpPj0oMHxEcikpOyl7Zm9yKEE9MHxBcihiLGwpLHc9MDs7KXtpZigoMHx3KT49KDB8bCkpe2s9MCx3PTA7YnJlYWt9X1tXZSsodzw8Myk+PjNdPStfW0pyKyh3K0E8PDMpPj4zXSx3PXcrMXwwfWZvcig7ISgoMHx3KT49''@;'; put 'put ''KDB8bCkpOylrPShsMD0rX1tXZSsodzw8Myk+PjNdKSpsMCtrLHc9dysxfDA7TT0oaz0rRDAoK2spKStNO2U6ZG97aWYoaz4wKWZvcihrPTEvayx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKXt3PTA7YnJlYWsgZX1fWyhMcj1XZSsodzw8Myl8MCk+PjNdPStfW0xyPj4zXSprLHc9dysxfDB9ZWxz''@;'; put 'put ''ZSB3PTB9d2hpbGUoMCk7Zm9yKDshKCgwfHcpPj0oMHxsKSk7KV9bKExyPW0rKHcrQTw8Myl8MCk+PjNdPStfW0xyPj4zXSsgK19bV2UrKHc8PDMpPj4zXSpnZSx3PXcrMXwwO2I9YisxfDB9aWYoISgoMHwoYmU9YmUrMXwwKSk8KDB8SHIpJihnZT0rTWsoZnIsZ2UsTSxHLEVyKSk+dXIpKWJy''@;'; put 'put ''ZWFrO0c9TX0wfGFbZisxMTI+PjJdJiZFayhsLGt0LG0pLEZ0KFJlKSwoMHxrdCkhPSgwfGMpJiZSYShrdCksRnQoV2UpfWVsc2UgYVtBPj4yXT0tMTAwOzB8YnQmJkZ0KGFuKSwwfGN0JiZGdChTbiksMHxadCYmRnQoSG4pLEZ0KEpyKX19ZnVuY3Rpb24gWHZlKGwsYyxmLHAsbSxBKXtsfD0w''@;'; put 'put ''LGN8PTAscHw9MCxtfD0wLEF8PTA7dmFyIERyLEpyLExyLGwwLFZpLFJvLGxvLGdhLHhpLERsLG9zLG9sLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9MCxrdD0wLHN0''@;'; put 'put ''PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wLE9pPTAsVGE9MCxaYT0wLEwwPTAseGE9MDtpZihvbD1sZSxsZT1sZSszMnwwLGxvPW9sKzIwfDAseGk9b2wrMTZ8MCxEbD1vbCsxMnwwLG9zPW9sKzh8MCxEcj1vbCxnZT0rX1soZnw9MCk+''@;'; put 'put ''PjNdLHBlPStfWyhrPWYrMjR8MCk+PjNdLHE9K19bKE09ZiszMnwwKT4+M10sSnI9K19bZis3Mj4+M10sTHI9MHxhW2YrODA+PjJdLGwwPStfW2YrODg+PjNdLGJlPStfW2YrOTY+PjNdLFZpPTB8YVtmKzEwND4+Ml0sYVsoUm89b2wrMjR8MCk+PjJdPTAsYVtsbz4+Ml09MTAsYVt4aT4+Ml09''@;'; put 'put ''MCxhW0RsPj4yXT0wLGFbb3M+PjJdPTAsX1tEcj4+M109MCxEPTB8YVsoZ2E9Zis1NnwwKT4+Ml0sISgwPT0oMHxjKXwoMHxMcik8MXx8KE9pPTB8YVtjPj4yXSx3PTB8YVtjKzQ+PjJdLCgwfGwpPDF8KDB8dyk8MSkpKXsoMHx3KTwoMHxhW2YrNTI+PjJdKT8oWmE9MCxUYT0wKTooWmE9MHxt''@;'; put 'put ''VihEKSxhW3hpPj4yXT0wfFFuKDgwKmx8MCksYVtEbD4+Ml09MHxRbig4MCksYVtvcz4+Ml09MHxRbig4MCksVGE9MSksYVtBPj4yXT0wO2U6ZG97aWYoKDB8T2kpPT0oMHx3KSl7Uj0wfGFoKGMsMSksdXI9MHxhW1IrMjA+PjJdLEhyPTB8YVtSKzI0Pj4yXTt0OmRve2lmKDB8YVtmKzE2Pj4y''@;'; put 'put ''XSlmb3IocncoMHxhW2YrMTA4Pj4yXSksYj0wfEFyKE9pLGwpLHc9MDs7KXtpZigoMHx3KT49KDB8YikpYnJlYWsgdDtfW20rKHc8PDMpPj4zXT0rQmgoKSx3PXcrMXwwfX13aGlsZSgwKTtmb3IocGU8MCYmKHBlPStMRChSLGwsbSksX1trPj4zXT1wZSkscTwwJiYoX1tNPj4zXT0uMixxPS4y''@;'; put 'put ''KSxnZT49MCYmKF9bZj4+M109LTEsZ2U9LTEpLEhuPStxbCgrcGUsKyhTbj0xLWdlKSksRXQ9K3FsKCtxLC4zMzMzMzMzMzMzMzMzMzMzKigyLWdlKSkvcGUsRXI9MHxRbihadD1sPDwzKSxmcj0wfFFuKFp0PTB8QXIoT2ksWnQpKSxjdD0wIT0oMHxUYSksYnQ9ZisxMTZ8MCxhbj1mKzY0fDAs''@;'; put 'put ''U3Q9LTE9PWdlLGt0PTAhPSgwfHApLHN0PTEvKygwfE9pKSx3PTAsV2U9MCxhdD0wOzspe1dlPVdlKzF8MCxnbygwfGZyLDB8bSwwfFp0KSxjdCYmKEQ9dz0wfGo3KFphKSx3PTB8WWsobCxPaSx3LG0sMD09KDB8YVtidD4+Ml0pPzA6cCkpLE9lPTAsZ2U9MCxMZT0wLHBlPTA7dDpmb3IoOygw''@;'; put 'put ''fExlKTwoMHxPaSk7KXtmb3IoYj0wOyEoKDB8Yik+PSgwfGwpKTspX1tFcisoYjw8Myk+PjNdPTAsYj1iKzF8MDtmb3IoTT11cisoKHFlPUxlKzF8MCk8PDIpfDAscnQ9MHxBcihMZSxsKSxrPTB8YVt1cisoTGU8PDIpPj4yXTshKCgwfGspPj0oMHxhW00+PjJdKSk7KXtiPTB8YVsoRz1Iciso''@;'; put 'put ''azw8Mil8MCk+PjJdO246ZG97aWYoKDB8YikhPSgwfExlKSlmb3IocT0rX2MobSxsLExlLGIpKkV0LGI9MDs7KXtpZigoMHxiKT49KDB8bCkpYnJlYWsgbjtMMD1xKigrX1ttKyhiK3J0PDwzKT4+M10tK19bbSsoKDB8QXIoMHxhW0c+PjJdLGwpKStiPDwzKT4+M10pLF9bKFZlPUVyKyhiPDwz''@;'; put 'put ''KXwwKT4+M109K19bVmU+PjNdLUwwLGI9YisxfDB9fXdoaWxlKDApO2s9aysxfDB9bjpkb3tpZihjdCl7aWYob0wodywrX1thbj4+M10sbSsocnQ8PDMpfDAsTGUsUm8sbG8seGksRGwsb3MsRHIsQSksT2U9K19bRHI+PjNdK09lLGdlKz0rKDB8KFZlPTB8YVtSbz4+Ml0pKSwwfGFbQT4+Ml0p''@;'; put 'put ''e009RXIsaz1mcix3PUVyLGI9ZnIsRz02NzticmVhayBlfWZvcihNPTB8YVtvcz4+Ml0sRz0wfGFbRGw+PjJdLExlPTB8YVt4aT4+Ml0sYj0wOzspe2lmKCgwfGIpPj0oMHxWZSkpYnJlYWsgbjtmb3IoTDA9KEwwPStfW00rKGI8PDMpPj4zXSk+MWUtMTU/TDA6MWUtMTUsUmU9RysoYjw8Myl8''@;'; put 'put ''MCxIZT0wfEFyKGIsbCkscT0rcWwoK0wwLCtTbikscT0xLyhTdD9MMCpMMDpxKSxrPTA7ISgoMHxrKT49KDB8bCkpOylfWyh4YT1Fcisoazw8Myl8MCk+PjNdPStfW1JlPj4zXSpIbiooK19bbSsoaytydDw8Myk+PjNdLStfW0xlKyhrK0hlPDwzKT4+M10pKnErICtfW3hhPj4zXSxrPWsrMXww''@;'; put 'put ''O2I9YisxfDB9fWVsc2UgaWYoa3QmMCE9KDB8YVtidD4+Ml0pKWZvcihiPTA7Oyl7aWYoKDB8Yik9PSgwfE9pKSlicmVhayBuO3I6ZG97aWYoKDB8YikhPSgwfExlKSlmb3IoTDA9K2R1KG0sbCxMZSxiKSxNPXArKGI8PDMpfDAsRz0wfEFyKGIsbCkscT0rcWwoK0wwLCtTbikscT0xLyhTdD9M''@;'; put 'put ''MCpMMDpxKSxrPTA7Oyl7aWYoKDB8ayk+PSgwfGwpKWJyZWFrIHI7X1soVmU9RXIrKGs8PDMpfDApPj4zXT0rX1tNPj4zXSpIbiooK19bbSsoaytydDw8Myk+PjNdLStfW20rKGsrRzw8Myk+PjNdKSpxKyArX1tWZT4+M10saz1rKzF8MH19d2hpbGUoMCk7Yj1iKzF8MH1lbHNlIGZvcihiPTA7''@;'; put 'put ''Oyl7aWYoKDB8Yik9PSgwfE9pKSlicmVhayBuO3I6ZG97aWYoKDB8YikhPSgwfExlKSlmb3IoTDA9K2R1KG0sbCxMZSxiKSxNPTB8QXIoYixsKSxxPStxbCgrTDAsK1NuKSxxPTEvKFN0P0wwKkwwOnEpLGs9MDs7KXtpZigoMHxrKT49KDB8bCkpYnJlYWsgcjtfWyhWZT1Fcisoazw8Myl8MCk+''@;'; put 'put ''PjNdPSgrX1ttKyhrK3J0PDwzKT4+M10tK19bbSsoaytNPDwzKT4+M10pKkhuKnErICtfW1ZlPj4zXSxrPWsrMXwwfX13aGlsZSgwKTtiPWIrMXwwfX13aGlsZSgwKTtmb3IocT0wLGI9MDshKCgwfGIpPj0oMHxsKSk7KXE9KEwwPStfW0VyKyhiPDwzKT4+M10pKkwwK3EsYj1iKzF8MDtwZT0o''@;'; put 'put ''cT0rRDAoK3EpKStwZTtuOmRve2lmKHE+MClmb3IocT0xL3EsYj0wOzspe2lmKCgwfGIpPj0oMHxsKSl7Yj0wO2JyZWFrIG59X1soeGE9RXIrKGI8PDMpfDApPj4zXT0rX1t4YT4+M10qcSxiPWIrMXwwfWVsc2UgYj0wfXdoaWxlKDApO2Zvcig7Oyl7aWYoKDB8Yik+PSgwfGwpKXtMZT1xZTtj''@;'; put 'put ''b250aW51ZSB0fV9bKHhhPW0rKGIrcnQ8PDMpfDApPj4zXT0rX1t4YT4+M10rICtfW0VyKyhiPDwzKT4+M10qYmUsYj1iKzF8MH19aWYoMHx3JiYoZXYodyksX1goWmEsZ2Uqc3QqNStPZSpzdCkpLCEoKDB8V2UpPCgwfExyKSYoYmU9K01rKFZpLGJlLHBlLGF0LGwwKSk+SnIpKWJyZWFrO2F0''@;'; put 'put ''PXBlfTB8YVtmKzExMj4+Ml0/KEVrKGwsUixtKSxNPUVyLGs9ZnIsYj1mcix3PUVyLEc9NjYpOihNPUVyLGs9ZnIsYj1mcix3PUVyLEc9NjYpfWVsc2UgYVtBPj4yXT0tMTAwLFI9YyxNPTAsaz0wLGI9MCx3PTAsRz02Nn13aGlsZSgwKTs2Nj09KDB8RykmJlRhJiYoRz02NyksNjc9PSgwfEcp''@;'; put 'put ''JiYoZ1YoWmEpLGFbZ2E+PjJdPUQpLDB8ayYmRnQoYiksKDB8UikhPSgwfGMpJiZSYShSKSwwfE0mJkZ0KHcpLDB8KHc9MHxhW3hpPj4yXSkmJkZ0KHcpLDB8KHc9MHxhW0RsPj4yXSkmJkZ0KHcpLDB8KHc9MHxhW29zPj4yXSkmJkZ0KHcpfWxlPW9sfWZ1bmN0aW9uIE9EKGwsYyxmLHAsbSxB''@;'; put 'put ''LHcsYil7bHw9MCxjfD0wLGZ8PTAsbXw9MCxBfD0wLHc9K3csYnw9MDt2YXIgTHIsbDAsVmksT2ksUm8sbG8sWmEsZ2EsRGwsb3Msb2wsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9''@;'; put 'put ''MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEhyPTAsRXI9MCxmcj0wLERyPTAsSnI9MCxUYT0wLHhpPTAsTDA9MCx4YT0wO2lmKG9sPWxlLGxlPWxlKzQ4fDAsUj1vbCs4fDAsZ2E9b2wrMzZ8MCxMcj1vbCszMnwwLERsPW9sKzI4fDAsb3M9b2wr''@;'; put 'put ''MjR8MCxsMD1vbCxHPStfWyhwfD0wKT4+M10scGU9K19bKHE9cCszMnwwKT4+M10sVmk9K19bcCs3Mj4+M10sT2k9MHxhW3ArODA+PjJdLFJvPStfW3ArODg+PjNdLGJlPStfW3ArOTY+PjNdLGxvPTB8YVtwKzEwND4+Ml0sYVsoWmE9b2wrNDB8MCk+PjJdPTAsYVtnYT4+Ml09MTAsYVtMcj4+''@;'; put 'put ''Ml09MCxhW0RsPj4yXT0wLGFbb3M+PjJdPTAsX1tsMD4+M109MCwhKDA9PSgwfGMpfCgwfE9pKTwxfHwoVGE9MHxhW2M+PjJdLEQ9MHxhW2MrND4+Ml0sKDB8bCk8MXwoMHxEKTwxKSkpe2lmKDAhPSgwfGFbcCsxMzI+PjJdKSYmKDB8RCk+PSgwfGFbcCs1Mj4+Ml0pPyhNPTB8UW4oODAqbHww''@;'; put 'put ''KSxhW0xyPj4yXT1NLGFbRGw+PjJdPTB8UW4oODApLGFbb3M+PjJdPTB8UW4oODApLGdlPTEsaz1NKTooZ2U9MCxrPTAsTT0wKSxhW2I+PjJdPTAsKDB8VGEpPT0oMHxEKSl7SnI9MHxhaChjLDEpLGY/KERyPTB8YVtmKzI4Pj4yXSxrPWYpOihEcj0wLGs9SnIpLGZyPTB8YVtrKzI0Pj4yXSxF''@;'; put 'put ''cj0wfGFbaysyMD4+Ml0sdzwwJiYoa3Q9K2Z1bmN0aW9uIEt2ZShsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wO2lmKGZ8PTApe209MCxwPTA7ZTpmb3IoOyEoKDB8bSk+PSgwfGwpKTspZm9yKEE9bSsxfDAsdz0wfGFbYysoQTw8Mik+PjJdLG09MHxhW2MrKG08PDIp''@;'; put 'put ''Pj4yXTs7KXtpZigoMHxtKT49KDB8dykpe209QTtjb250aW51ZSBlfWI9K19bZisobTw8Myk+PjNdK3AsbT1tKzF8MCxwPWJ9cC89KygwfGFbYysobDw8Mik+PjJdKX1lbHNlIHA9MTtyZXR1cm4rcH0oVGEsRXIsRHIpLHc9KFN0PSsoMHxhW0VyKyhUYTw8Mik+PjJdKSkvKChXZT0rKDB8VGEp''@;'; put 'put ''KSpXZS1TdCkqdy8rcWwoK2t0LCsoRysxKSksSHI9MHxhWzE1NzEyXSxfW1I+PjNdPWt0LF9bUis4Pj4zXT13LFQwKEhyLDkyMjMxLFIpKTtlOmRve2lmKDB8YVtwKzE2Pj4yXSlmb3IoQ3UoOTIyNTMsMjQsMSwwfGFbMTU3MTJdKSxydygwfGFbcCsxMDg+PjJdKSxNPTB8QXIoVGEsbCksaz0w''@;'; put 'put ''Ozspe2lmKCgwfGspPj0oMHxNKSlicmVhayBlO19bQSsoazw8Myk+PjNdPStCaCgpLGs9aysxfDB9fXdoaWxlKDApOyhmdW5jdGlvbiBYMyhsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiZSxPZSxMZSx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBl''@;'; put 'put ''PTAsZ2U9MCxSZT0wO0xlPWxlLGxlPWxlKzE2fDAsT2U9TGUsYmU9MD09KDB8KEF8PTApKSxrPTAsTT0wLEQ9MSxiPTA7ZTpmb3IoOyEoKDB8Yik+PSgwfGwpKTspZm9yKHBlPWIrMXwwLGdlPXArKHBlPDwyKXwwLHE9MHxhW3ArKGI8PDIpPj4yXTs7KXtpZigoMHxxKT49KDB8YVtnZT4+Ml0p''@;'; put 'put ''KXtiPXBlO2NvbnRpbnVlIGV9dz0wfGFbbSsocTw8Mik+PjJdO3Q6ZG97aWYoKDB8dykhPSgwfGIpKWZvcihSPStkdShmLGMsYix3KSxiZXx8KEQ9K19bQSsocTw8Myk+PjNdKSxSZT0xLyhEKkQpLEc9RCpSKlJlLFI9UipSKlJlLHc9MDs7KXtpZigoMHx3KT49KDB8YykpYnJlYWsgdDt3PXcr''@;'; put 'put ''MXwwLGsrPVIsTSs9R319d2hpbGUoMCk7cT1xKzF8MH1mb3Ioaz1NL2ssYj0wfEFyKGMsbCksdz0wOyEoKDB8dyk+PSgwfGIpKTspX1soYz1mKyh3PDwzKXwwKT4+M109K19bYz4+M10qayx3PXcrMXwwO2Y9MHxhWzE1NzEyXSxfW09lPj4zXT1rLFQwKGYsOTIyNzgsT2UpLGxlPUxlfSkoVGEs''@;'; put 'put ''bCxBLEVyLGZyLERyKSxwZTwwJiYoX1txPj4zXT0uMiksRz49MCYmKF9bcD4+M109LTEsRz0tMSksSG49MHxRbih1cj1sPDwzKSxIcj0wfFFuKHVyPTB8QXIoVGEsdXIpKSxFdD0wIT0oMHxnZSksWnQ9cCsxMTZ8MCxjdD0wPT0oMHxEciksYnQ9cCs4fDAsYW49MCE9KDB8bSksU249LTE9PUcs''@;'; put 'put ''a3Q9MS1HLHN0PXArNjR8MCxrPTAsYXQ9MCxTdD0wLEc9MSxXZT1iZTtlOmZvcig7Oyl7YXQ9YXQrMXwwLGdvKDB8SHIsMHxBLDB8dXIpLEV0JiYoaz0wfFlrKGwsVGEsMTAsQSwwPT0oMHxhW1p0Pj4yXSk/MDptKSksZ2U9MCxiZT0wO3Q6Zm9yKDsoMHxnZSk8KDB8VGEpOyl7Zm9yKE09MDsh''@;'; put 'put ''KCgwfE0pPj0oMHxsKSk7KV9bSG4rKE08PDMpPj4zXT0wLE09TSsxfDA7Zm9yKHE9RXIrKChydD1nZSsxfDApPDwyKXwwLHFlPTB8QXIoZ2UsbCksUj0wfGFbRXIrKGdlPDwyKT4+Ml07ISgoMHxSKT49KDB8YVtxPj4yXSkpOyl7TT0wfGFbKGY9ZnIrKFI8PDIpfDApPj4yXTtuOmRve2lmKCgw''@;'; put 'put ''fE0pIT0oMHxnZSkpe1ZlPStkdShBLGwsZ2UsTSksY3R8fChHPStfW0RyKyhSPDwzKT4+M10pLHBlPStfW2J0Pj4zXTtyOmRve2lmKDIhPXBlKWlmKDE9PXBlKWZvcihwZT0xLyhHKkcpKihWZS1HKSxPZT0xL1ZlLE09MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgcjtMZT1wZSooK19bQSso''@;'; put 'put ''TStxZTw8Myk+PjNdLStfW0ErKCgwfEFyKDB8YVtmPj4yXSxsKSkrTTw8Myk+PjNdKSpPZSxfWyhIZT1IbisoTTw8Myl8MCk+PjNdPStfW0hlPj4zXS1MZSxNPU0rMXwwfWVsc2UgZm9yKHBlPTEvK3FsKCtHLCsocGUrMSkpLE9lPVZlLUcsTGU9MS9WZSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwp''@;'; put 'put ''KWJyZWFrIHI7TDA9cGUqKEwwPStfW0ErKE0rcWU8PDMpPj4zXS0rX1tBKygoMHxBcigwfGFbZj4+Ml0sbCkpK008PDMpPj4zXSkqK3FsKCtPZSwrICtfW2J0Pj4zXSkqTGUsX1soSGU9SG4rKE08PDMpfDApPj4zXT0rX1tIZT4+M10tTDAsTT1NKzF8MH1lbHNlIGZvcihwZT1WZS1HLHBlPXBl''@;'; put 'put ''KnBlKigxLyhHKkcqRykpLE9lPTEvVmUsTT0wOzspe2lmKCgwfE0pPj0oMHxsKSlicmVhayByO0wwPXBlKigrX1tBKyhNK3FlPDwzKT4+M10tK19bQSsoKDB8QXIoMHxhW2Y+PjJdLGwpKStNPDwzKT4+M10pKk9lLF9bKEhlPUhuKyhNPDwzKXwwKT4+M109K19bSGU+PjNdLUwwLE09TSsxfDB9''@;'; put 'put ''fXdoaWxlKDApO2lmKGFuJjAhPSgwfGFbWnQ+PjJdKSlmb3IoRD1tKyhSPDwzKXwwLHBlPStxbCgrVmUsK2t0KSxwZT0xLyhTbj9WZSpWZTpwZSksTT0wOzspe2lmKCgwfE0pPj0oMHxsKSlicmVhayBuO0wwPStfW0Q+PjNdKncqKCtfW0ErKE0rcWU8PDMpPj4zXS0rX1tBKygoMHxBcigwfGFb''@;'; put 'put ''Zj4+Ml0sbCkpK008PDMpPj4zXSkqcGUsX1soSGU9SG4rKE08PDMpfDApPj4zXT0rX1tIZT4+M10tTDAsTT1NKzF8MH1lbHNlIGZvcihwZT0rcWwoK1ZlLCtrdCkscGU9MS8oU24/VmUqVmU6cGUpLE09MDs7KXtpZigoMHxNKT49KDB8bCkpYnJlYWsgbjtMMD0oK19bQSsoTStxZTw8Myk+PjNd''@;'; put 'put ''LStfW0ErKCgwfEFyKDB8YVtmPj4yXSxsKSkrTTw8Myk+PjNdKSp3KnBlLF9bKEhlPUhuKyhNPDwzKXwwKT4+M109K19bSGU+PjNdLUwwLE09TSsxfDB9fX13aGlsZSgwKTtSPVIrMXwwfW46ZG97aWYoRXQpe2lmKG9MKGssK19bc3Q+PjNdLEErKHFlPDwzKXwwLGdlLFphLGdhLExyLERsLG9z''@;'; put 'put ''LGwwLGIpLGY9MHxhW1phPj4yXSwwfGFbYj4+Ml0pYnJlYWsgZTtmb3IoUj0wfGFbb3M+PjJdLHE9MHxhW0RsPj4yXSxnZT0wfGFbTHI+PjJdLE09MDs7KXtpZigoMHxNKT49KDB8Zikpe3BlPTAsTT0wO2JyZWFrIG59Zm9yKEwwPShMMD0rX1tSKyhNPDwzKT4+M10pPjFlLTE1P0wwOjFlLTE1''@;'; put 'put ''LFJlPXErKE08PDMpfDAsSGU9MHxBcihNLGwpLHBlPStxbCgrTDAsK2t0KSxwZT0xLyhTbj9MMCpMMDpwZSksRD0wOyEoKDB8RCk+PSgwfGwpKTspX1soeGE9SG4rKEQ8PDMpfDApPj4zXT0rX1tSZT4+M10qdyooK19bQSsoRCtxZTw8Myk+PjNdLStfW2dlKyhEK0hlPDwzKT4+M10pKnBlKyAr''@;'; put 'put ''X1t4YT4+M10sRD1EKzF8MDtNPU0rMXwwfX1lbHNlIGlmKGFuJjAhPSgwfGFbWnQ+PjJdKSlmb3IoTT0wOzspe2lmKCgwfE0pPT0oMHxUYSkpe3BlPTAsTT0wO2JyZWFrIG59cjpkb3tpZigoMHxNKSE9KDB8Z2UpKWZvcihMMD0rZHUoQSxsLGdlLE0pLGY9bSsoTTw8Myl8MCxSPTB8QXIoTSxs''@;'; put 'put ''KSxwZT0rcWwoK0wwLCtrdCkscGU9MS8oU24/TDAqTDA6cGUpLEQ9MDs7KXtpZigoMHxEKT49KDB8bCkpYnJlYWsgcjtfWyhIZT1IbisoRDw8Myl8MCk+PjNdPStfW2Y+PjNdKncqKCtfW0ErKEQrcWU8PDMpPj4zXS0rX1tBKyhEK1I8PDMpPj4zXSkqcGUrICtfW0hlPj4zXSxEPUQrMXwwfX13''@;'; put 'put ''aGlsZSgwKTtNPU0rMXwwfWVsc2UgZm9yKE09MDs7KXtpZigoMHxNKT09KDB8VGEpKXtwZT0wLE09MDticmVhayBufXI6ZG97aWYoKDB8TSkhPSgwfGdlKSlmb3IoTDA9K2R1KEEsbCxnZSxNKSxmPTB8QXIoTSxsKSxwZT0rcWwoK0wwLCtrdCkscGU9MS8oU24/TDAqTDA6cGUpLEQ9MDs7KXtp''@;'; put 'put ''ZigoMHxEKT49KDB8bCkpYnJlYWsgcjtfWyhIZT1IbisoRDw8Myl8MCk+PjNdPSgrX1tBKyhEK3FlPDwzKT4+M10tK19bQSsoRCtmPDwzKT4+M10pKncqcGUrICtfW0hlPj4zXSxEPUQrMXwwfX13aGlsZSgwKTtNPU0rMXwwfX13aGlsZSgwKTtmb3IoOyEoKDB8TSk+PSgwfGwpKTspcGU9KEww''@;'; put 'put ''PStfW0huKyhNPDwzKT4+M10pKkwwK3BlLE09TSsxfDA7YmU9KHBlPStEMCgrcGUpKStiZTtuOmRve2lmKHBlPjApZm9yKHBlPTEvcGUsTT0wOzspe2lmKCgwfE0pPj0oMHxsKSl7TT0wO2JyZWFrIG59X1soeGE9SG4rKE08PDMpfDApPj4zXT0rX1t4YT4+M10qcGUsTT1NKzF8MH1lbHNlIE09''@;'; put 'put ''MH13aGlsZSgwKTtmb3IoOzspe2lmKCgwfE0pPj0oMHxsKSl7Z2U9cnQ7Y29udGludWUgdH1fWyh4YT1BKyhNK3FlPDwzKXwwKT4+M109K19beGE+PjNdKyArX1tIbisoTTw8Myk+PjNdKldlLE09TSsxfDB9fWlmKDB8ayYmZXYoayksISgoMHxhdCk8KDB8T2kpJihXZT0rTWsobG8sV2UsYmUs''@;'; put 'put ''U3QsUm8pKT5WaSkpe3hpPTgzO2JyZWFrfVN0PWJlfTgzPT0oMHx4aSkmJjB8YVtwKzExMj4+Ml0mJkVrKGwsSnIsQSksRnQoSHIpLCgwfEpyKSE9KDB8YykmJlJhKEpyKSxGdChIbiksTT1rPTB8YVtMcj4+Ml19ZWxzZSBhW2I+PjJdPS0xMDA7MHxNJiZGdChrKSwwfChrPTB8YVtEbD4+Ml0p''@;'; put 'put ''JiZGdChrKSwwfChrPTB8YVtvcz4+Ml0pJiZGdChrKX1sZT1vbH1mdW5jdGlvbiBuMmUobCxjLGYpe2Z8PTA7dmFyIEQsUixHLHEscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLHBlPTA7Uj0wfGFbMjArKGN8PTApPj4yXSxHPTB8YVtjKzI0Pj4yXSxxPTB8UW4oKGx8PTApPDwzKSxEPTB8''@;'; put 'put ''YVtjPj4yXSxrPTA7ZTpmb3IoOygwfGspPCgwfEQpOyl7Zm9yKGM9MDshKCgwfGMpPj0oMHxsKSk7KV9bcSsoYzw8Myk+PjNdPTAsYz1jKzF8MDtmb3IoYj0wfGFbUisoKE09aysxfDApPDwyKT4+Ml0sdz0wfGFbUisoazw8Mik+PjJdLGM9MDshKCgwfHcpPj0oMHxiKSk7KXtpZigoMHwocD0w''@;'; put 'put ''fGFbRysodzw8Mik+PjJdKSkhPSgwfGspKXtmb3IoQT0wfEFyKHAsbCkscD0wOyEoKDB8cCk+PSgwfGwpKTspX1socGU9cSsocDw8Myl8MCk+PjNdPStfW3BlPj4zXSsgK19bZisoQStwPDwzKT4+M10scD1wKzF8MDtjPWMrMXwwfXc9dysxfDB9aWYoKDB8Yyk8PTApaz1NO2Vsc2UgZm9yKG09''@;'; put 'put ''LjUvKygwfGMpLHA9MHxBcihrLGwpLGM9MDs7KXtpZigoMHxjKT49KDB8bCkpe2s9TTtjb250aW51ZSBlfV9bKHBlPWYrKGMrcDw8Myl8MCk+PjNdPStfW3ErKGM8PDMpPj4zXSptKy41KitfW3BlPj4zXSxjPWMrMXwwfX1GdChxKX1mdW5jdGlvbiBSRChsKXt2YXIgdyxiLGssTSxELGM9MCxm''@;'; put 'put ''PTAscD0wLG09MCxBPTA7Zm9yKGI9MHxhWzIwKyhsfD0wKT4+Ml0saz0wfGFbbCsyND4+Ml0sTT0wfFFuKDQrKCh3PTB8YVtsPj4yXSk8PDIpfDApLGw9MDs7KXtpZigoMHxsKT4oMHx3KSl7Zj0wLHA9MDticmVha31hW00rKGw8PDIpPj4yXT0wLGw9bCsxfDB9Zm9yKDshKCgwfHApPj0oMHx3''@;'; put 'put ''KSk7KXtmb3IoQT0wfGFbYisoKG09cCsxfDApPDwyKT4+Ml0sbD0wLGM9MHxhW2IrKHA8PDIpPj4yXTshKCgwfGMpPj0oMHxBKSk7KWw9bCsoKDB8cCkhPSgwfGFbaysoYzw8Mik+PjJdKSYxKXwwLGM9YysxfDA7YVsoQT1NKyhsPDwyKXwwKT4+Ml09cD0xKygwfGFbQT4+Ml0pfDAsZj0oMHxm''@;'; put 'put ''KT4oMHxwKT9mOnAscD1tfXJldHVybiBsPS44KisoMHxmKTwoRD0rKDB8YVtNKzQ+PjJdKSkmJi4zKisoMHx3KTxEPzE6MCxGdChNKSwwfGx9ZnVuY3Rpb24gcjJlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIEcscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscT0wLHBlPTAsZ2U9''@;'; put 'put ''MDtmb3IoRz1sZSxsZT1sZSs0OHwwLFI9RysxNnwwLGs9Ryx3PTB8QXIoY3w9MCxjKSxtPTA7Oyl7aWYoKDB8bSk+PSgwfHcpKXttPTA7YnJlYWt9X1tSKyhtPDwzKT4+M109MCxtPW0rMXwwfWZvcig7Oyl7aWYoKDB8bSk+PSgwfGMpKXt3PTA7YnJlYWt9X1trKyhtPDwzKT4+M109MCxtPW0r''@;'; put 'put ''MXwwfWZvcig7ISgoMHx3KT49KDB8bCkpOyl7Zm9yKGI9MHxBcih3LGMpLG09MDshKCgwfG0pPj0oMHxjKSk7KV9bKEQ9aysobTw8Myl8MCk+PjNdPStfW0Q+PjNdKyArX1tmKyhtK2I8PDMpPj4zXSxtPW0rMXwwO3c9dysxfDB9Zm9yKHA9MS8rKDB8bCksbT0wOzspe2lmKCgwfG0pPj0oMHxj''@;'; put 'put ''KSl7dz0wO2JyZWFrfV9bKEQ9aysobTw8Myl8MCk+PjNdPStfW0Q+PjNdKnAsbT1tKzF8MH1mb3IoOzspe2lmKCgwfHcpPj0oMHxsKSl7Yj0wO2JyZWFrfWZvcihiPTB8QXIodyxjKSxtPTA7ISgoMHxtKT49KDB8YykpOylfWyhEPWYrKG0rYjw8Myl8MCk+PjNdPStfW0Q+PjNdLStfW2srKG08''@;'; put 'put ''PDMpPj4zXSxtPW0rMXwwO3c9dysxfDB9Zm9yKDshKCgwfGIpPj0oMHxsKSk7KXtmb3Ioaz0wfEFyKGIsYyksdz0wOyEoKDB8dyk+PSgwfGMpKTspe2ZvcihNPWYrKHcrazw8Myl8MCxEPTB8QXIodyxjKSxtPTA7KDB8bSkhPSgwfGMpOylfWyhxPVIrKG0rRDw8Myl8MCk+PjNdPStfW3E+PjNd''@;'; put 'put ''KyArX1tmKyhtK2s8PDMpPj4zXSorX1tNPj4zXSxtPW0rMXwwO3c9dysxfDB9Yj1iKzF8MH1mb3IocD0wPT0ocD0rX1tSKzg+PjNdKT8wOi0oKEE9K19bUisyND4+M10pLShwZT0rX1tSPj4zXSktK0QwKCsocGUqcGUrcCpwKjQrKC0yKnBlK0EpKkEpKSkvKDIqcCkscC89QT0rRDAoKyhwKnAr''@;'; put 'put ''MSkpLEE9MS9BLG09MDshKCgwfG0pPj0oMHxsKSk7KXE9MHxBcihtLGMpLF9bKFI9ZisocTw8Myl8MCk+PjNdPShnZT0rX1socT1mKyhxKzE8PDMpfDApPj4zXSkqQSsocGU9K19bUj4+M10pKnAsX1txPj4zXT1nZSpwLXBlKkEsbT1tKzF8MDtsZT1HfWZ1bmN0aW9uIHhrKGwsYyxmLHAsbSxB''@;'; put 'put ''LHcsYixrLE0peyFmdW5jdGlvbiBpMmUobCxjLGYscCxtLEEsdyxiLGssTSl7bHw9MCxjfD0wLGZ8PTAsbXw9MCx3fD0wLGJ8PTAsa3w9MCxNfD0wO3ZhciBhbixIbixEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0w''@;'; put 'put ''LFN0PTAsa3Q9MCxzdD0wLEV0PTAsYnQ9MCxTbj0wO0huPWxlLGxlPWxlKzE5MnwwLGdvKDB8KGFuPUhuKSwwfChwfD0wKSwxNjgpLGFbTT4+Ml09MDtkb3tpZigwfGMmJiEoKDB8bCk8MXwoMHwoU249MHxhW2MrND4+Ml0pKTwxKSl7MCE9KDB8bGgoYywwKSkmJjE9PSgwfGFbYysxNj4+Ml0p''@;'; put 'put ''PyhSPTE9PSgwfGFbcCsxMzY+PjJdKT8wfHdwKGYpOmYsYnQ9MHx3cChjKSk6YmU9NTtkb3tpZig1PT0oMHxiZSkpe2lmKDE9PSgwfGFbcCsxMzY+PjJdKSl7YnQ9MHxKayhjLDApLFI9MHxKayhmLDApO2JyZWFrfWJ0PTB8QTUoYyksUj1mO2JyZWFrfX13aGlsZSgwKTtpZigzPT0oMHwoRz0w''@;'; put 'put ''fGFbKEV0PXArMTYwfDApPj4yXSkpPygwfGIpPjAmJihiZT0xNCk6KDB8Yik+MCY0PT0oMHxHKSYmKGJlPTE0KSwxND09KDB8YmUpKXtpZihmPTB8UW4oMHxBcihsPDwzLDB8YVtidD4+Ml0pKSx4ayhsLFNuPTB8U1goYnQsYixrKSwwLHAsMCwwLGYsMCwwLE0pLG8yZShsLGJ0LGIsayx3LGYp''@;'; put 'put ''LFVWKGwsMCwwLDAsMCwwLDB8YVtFdD4+Ml0pLFJhKFNuKSxGdChmKSwoMHxidCk9PSgwfGMpKWJyZWFrO1JhKGJ0KTticmVha31mb3Ioa3Q9MHxhUCgwfGFbcCs0ND4+Ml0sMHxhW3ArNDg+PjJdKSxhW2t0KzE2Pj4yXT1hW3ArNDA+PjJdLHE9MHxDQShzdD0wfGxQKGJ0LFIsbSxrdCkpLHBl''@;'; put 'put ''PTB8YVtxKzMyPj4yXT8wfFFuKDB8QXIobDw8MywwfGFbcSs0Pj4yXSkpOncsRz0wfFJEKGJ0KSwtMS4wMDAxMjM0PT0rX1twPj4zXSYmKF9bcD4+M109MD09KDB8Ryk/LTE6LTEuOCksTGU9cCsxMzZ8MCxSZT1wKzI0fDAsSGU9cCsxNnwwLFZlPXArMTA0fDAscWU9cCs5NnwwLHJ0PWw8PDMs''@;'; put 'put ''V2U9cCsxMzJ8MCxTdD1wKzgwfDA7Oyl7ZTpkb3tzd2l0Y2goMHxhW0xlPj4yXSl7Y2FzZSAwOnN3aXRjaCgwfGFbV2U+PjJdKXtjYXNlIDA6dDJlKGwsMHxhW3ErOD4+Ml0scCwwfGFbcSsyND4+Ml0scGUsTSk7YnJlYWsgZTtjYXNlIDI6Rz1xKzh8MCxiZT0yOTticmVhaztjYXNlIDM6YmU9''@;'; put 'put ''KDB8YVsoZ2U9MHxhWyhHPXErOHwwKT4+Ml0pPj4yXSk+MWU0PzI5OjMwO2JyZWFrO2RlZmF1bHQ6Z2U9MHxhW3ErOD4+Ml0sYmU9MzB9aWYoMjk9PSgwfGJlKSl7cXNlKGwsMHxhW0c+PjJdLHAsMHxhW3ErMjQ+PjJdLHBlLE0pO2JyZWFrIGV9aWYoMzA9PSgwfGJlKSl7WHZlKGwsZ2UscCww''@;'; put 'put ''fGFbcSsyND4+Ml0scGUsTSk7YnJlYWsgZX1icmVhaztjYXNlIDE6X1txZT4+M109MSxhW1ZlPj4yXT0xLEQ9KE9lPTA9PSgwfGFbcSsyOD4+Ml0pKT8uNTouMDUsYVtTdD4+Ml09T2U/NTAwOjEwMCxPZT0wPT0oMHxhW3ErMzI+PjJdKSxPRChsLDB8YVsoRz1xKzh8MCk+PjJdLDB8YVsoZ2U9''@;'; put 'put ''cSsxMnwwKT4+Ml0scCwwfGFbKGJlPXErMjR8MCk+PjJdLHBlLEQsTSksT2UmJihhW0hlPj4yXT0wLF9bcWU+PjNdPS4wNSxhW1ZlPj4yXT0wLE9EKGwsMHxhW0c+PjJdLDB8YVtnZT4+Ml0scCwwfGFbYmU+PjJdLHBlLC41KkQsTSksT0QobCwwfGFbRz4+Ml0sMHxhW2dlPj4yXSxwLDB8YVti''@;'; put 'put ''ZT4+Ml0scGUsLjEyNSpELE0pLE9EKGwsMHxhW0c+PjJdLDB8YVtnZT4+Ml0scCwwfGFbYmU+PjJdLHBlLC4wMzEyNSpELE0pKX19d2hpbGUoMCk7aWYoIShiZT0wfGFbcSszMj4+Ml0pKXtiZT0zOTticmVha31pZigwfGFbTT4+Ml0pe2JlPTM1O2JyZWFrfU9lPTB8YVtxKzE2Pj4yXSxHPTB8''@;'; put 'put ''YVtxKzQwPj4yXSxnZT0wfGFbYmUrMzI+PjJdPzB8UW4oMHxBcihydCwwfGFbYmUrND4+Ml0pKTp3LG44KGwsMHxhW2JlKzg+PjJdLE9lLDB8YVtiZSsyMD4+Ml0scGUsZ2UsRywuMDAxKitfW1JlPj4zXSksRnQocGUpLGFbSGU+PjJdPTAsX1tSZT4+M109Ljc1KitfW1JlPj4zXSxhW1ZlPj4y''@;'; put 'put ''XT0wLF9bcWU+PjNdPSgoMHxhWzQwKygwfGFbYmUrMjg+PjJdKT4+Ml0pLTl8MCk+Pj4wPDI/MTouMSxxPWJlLHBlPWdlfTM1PT0oMHxiZSk/RnQocGUpOjM5PT0oMHxiZSkmJihSeChsLGJ0LHAsbSx3LE0pLDI9PSgwfGwpJiZyMmUoU24sMix3KSwwIT0oRD0rX1twKzE1Mj4+M10pJiYkaChT''@;'; put 'put ''bixsLHcsRCksVVYobCwwLDAsMCwwLDAsMHxhW0V0Pj4yXSkpLGdvKDB8cCwwfGFuLDE2OCksKDB8YnQpIT0oMHxjKSYmUmEoYnQpLDA9PSgwfFIpfCgwfFIpPT0oMHxmKXx8UmEoUiksbnQoa3QpLG90KHN0KX19d2hpbGUoMCk7bGU9SG59KGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCwwLHd8''@;'; put 'put ''PTAsYnw9MCxrfD0wLE18PTApfWZ1bmN0aW9uIFNYKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE9lLExlLFJlLEhlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsVmU9MDtmb3IocWU9bGUsbGU9bGUrMTZ8MCxWZT1xZSxMZT0wfGFb''@;'; put 'put ''MjArKGx8PTApPj4yXSxSZT0wfGFbbCsyND4+Ml0sSGU9MHxRbihhW2w+PjJdPDwyKSxwPTA7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtwPTA7YnJlYWt9YVtIZSsocDw8Mik+PjJdPTEscD1wKzF8MH1mb3IoOzspe2lmKCgwfHApPj0oMHxjKSl7cD0wLGY9MDticmVha31hW0hlKyhhW2Yr''@;'; put 'put ''KHA8PDIpPj4yXTw8Mik+PjJdPS0xLHA9cCsxfDB9Zm9yKDs7KXtpZigoMHxmKT49KDB8KEQ9MHxhW2w+PjJdKSkpe2Y9MCxjPTA7YnJlYWt9KDB8YVsoYz1IZSsoZjw8Mil8MCk+PjJdKT4wJiYoYVtjPj4yXT1wLHA9cCsxfDApLGY9ZisxfDB9ZTpmb3IoOzspe2Zvcig7Oyl7aWYoKDB8Yyk+''@;'; put 'put ''PSgwfEQpKWJyZWFrIGU7aWYoKDB8YVtIZSsoYzw8Mik+PjJdKT49MClicmVhaztjPWMrMXwwfWZvcihNPTB8YVtMZSsoKGs9YysxfDApPDwyKT4+Ml0sYj0wfGFbTGUrKGM8PDIpPj4yXTs7KXtpZigoMHxiKT49KDB8TSkpe2M9aztjb250aW51ZSBlfW09MHxhW1JlKyhiPDwyKT4+Ml07dDpk''@;'; put 'put ''b3tpZigoMHxhW0hlKyhtPDwyKT4+Ml0pPi0xKWY9ZisxfDA7ZWxzZSBmb3Iodz0wfGFbTGUrKG0rMTw8Mik+PjJdLEE9MHxhW0xlKyhtPDwyKT4+Ml07Oyl7aWYoKDB8QSk+PSgwfHcpKWJyZWFrIHQ7KDB8KG09MHxhW1JlKyhBPDwyKT4+Ml0pKSE9KDB8YykmJihmPSgoMHxhW0hlKyhtPDwy''@;'; put 'put ''KT4+Ml0pPj4+MzFeMSkrZnwwKSxBPUErMXwwfX13aGlsZSgwKTtiPWIrMXwwfX1jPWY8PDIsKDB8Zik+MD8oZ2U9MHxRbihjKSxxPWJlPTB8UW4oYykscGU9Z2UpOihxPTAscGU9MCxnZT0wLGJlPTApLE9lPTB8YVsxNTcxMl0sYz0wLG09MDtlOmZvcig7Oyl7Zm9yKGY9MHxhW2w+PjJdOzsp''@;'; put 'put ''e2lmKCgwfGMpPj0oMHxmKSlicmVhayBlO2lmKCgwfGFbKEc9SGUrKGM8PDIpfDApPj4yXSk+PTApYnJlYWs7Yz1jKzF8MH1mb3IoUj1MZSsoKEQ9YysxfDApPDwyKXwwLE09MHxhW0xlKyhjPDwyKT4+Ml0sZj1tOzspe2lmKCgwfE0pPj0oMHxhW1I+PjJdKSl7Yz1ELG09Zjtjb250aW51ZSBl''@;'; put 'put ''fUE9MHxhWyhtPVJlKyhNPDwyKXwwKT4+Ml07dDpkb3tpZigoMHxhW0hlKyhBPDwyKT4+Ml0pPi0xKWFbcGUrKGY8PDIpPj4yXT1hW0c+PjJdLGFbcSsoZjw8Mik+PjJdPWFbSGUrKGFbbT4+Ml08PDIpPj4yXSxmPWYrMXwwO2Vsc2UgZm9yKGs9TGUrKEErMTw8Mil8MCxiPTB8YVtMZSsoQTw8''@;'; put 'put ''Mik+PjJdOzspe2lmKCgwfGIpPj0oMHxhW2s+PjJdKSlicmVhayB0O3c9MHxhWyhtPVJlKyhiPDwyKXwwKT4+Ml07ZG97aWYoKDB8dykhPSgwfGMpJiYoMHxhW0hlKyh3PDwyKT4+Ml0pPi0xKXtpZihhW3BlKyhmPDwyKT4+Ml09YVtHPj4yXSx3PWYrMXwwLGFbcSsoZjw8Mik+PjJdPWFbSGUr''@;'; put 'put ''KGFbbT4+Ml08PDIpPj4yXSxmPTB8YVtIZSsoYVttPj4yXTw8Mik+PjJdLDY4IT0oMHwoQT0wfGFbRz4+Ml0pKSl7aWYoNjghPSgwfGYpKXtmPXc7YnJlYWt9Zj02OH1hW1ZlPj4yXT1BLGFbVmUrND4+Ml09ZixUMChPZSw5MjM4MCxWZSksZj13fX13aGlsZSgwKTtiPWIrMXwwfX13aGlsZSgw''@;'; put 'put ''KTtNPU0rMXwwfX1yZXR1cm4gVmU9MHxvNChtLHAscCxwZSxxLDAsOCw4KSxGdChnZSksRnQoYmUpLEZ0KEhlKSxsZT1xZSwwfFZlfWZ1bmN0aW9uIG8yZShsLGMsZixwLG0sQSl7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBHLHEsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAscGU9MDtm''@;'; put 'put ''b3IocT0wfFFuKGFbKGN8PTApPj4yXTw8Miksdz0wOzspe2lmKCgwfHcpPj0oMHxhW2M+PjJdKSl7dz0wO2JyZWFrfWFbcSsodzw8Mik+PjJdPTEsdz13KzF8MH1mb3IoOzspe2lmKCgwfHcpPj0oMHxmKSl7dz0wLE09MDticmVha30oMHwoYj0wfGFbcCsodzw8Mik+PjJdKSk+LTEmJigwfGIp''@;'; put 'put ''PCgwfGFbYz4+Ml0pJiYoYVtxKyhiPDwyKT4+Ml09LTEpLHc9dysxfDB9Zm9yKDs7KXtpZigoMHxNKT49KDB8KFI9MHxhW2M+PjJdKSkpe009MDticmVha30oMHxhWyhiPXErKE08PDIpfDApPj4yXSk+LTEmJihhW2I+PjJdPXcsdz13KzF8MCksTT1NKzF8MH1mb3IoOyEoKDB8TSk+PSgwfFIp''@;'; put 'put ''KTspe3c9MHxhW3ErKE08PDIpPj4yXTtlOmRve2lmKCgwfHcpPi0xKWZvcihEPTB8QXIoTSxsKSxiPTB8QXIodyxsKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGwpKWJyZWFrIGU7X1ttKyh3K0Q8PDMpPj4zXT0rX1tBKyhiK3c8PDMpPj4zXSx3PXcrMXwwfX13aGlsZSgwKTtNPU0rMXwwfWZvcihH''@;'; put 'put ''PWMrMjB8MCxBPWMrMjR8MCxSPTA7ISgoMHxSKT49KDB8ZikpOyl7Zm9yKEQ9KE09MHxhWyh3PTB8YVtHPj4yXSkrKDErKGM9MHxhW3ArKFI8PDIpPj4yXSk8PDIpPj4yXSktKHc9MHxhW3crKGM8PDIpPj4yXSl8MCxjPTB8QXIoYyxsKSxiPTA7ISgoMHxiKT49KDB8bCkpOylfW20rKGIrYzw8''@;'; put 'put ''Myk+PjNdPTAsYj1iKzF8MDtmb3IoOygwfHcpPCgwfE0pOyl7Zm9yKGI9MDshKCgwfGIpPj0oMHxsKSk7KWs9K19bbSsoKDB8QXIoMHxhWygwfGFbQT4+Ml0pKyh3PDwyKT4+Ml0sbCkpK2I8PDMpPj4zXSxfWyhwZT1tKyhiK2M8PDMpfDApPj4zXT0rX1twZT4+M10rayxiPWIrMXwwO3c9dysx''@;'; put 'put ''fDB9Zm9yKGs9MS8rKDB8RCksdz0wOyEoKDB8dyk+PSgwfGwpKTspX1socGU9bSsodytjPDwzKXwwKT4+M109K19bcGU+PjNdKmssdz13KzF8MDtSPVIrMXwwfUZ0KHEpfWZ1bmN0aW9uIG44KGwsYyxmLHAsbSxBLHcsYil7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLHd8PTAsYj0rYjt2YXIg''@;'; put 'put ''RCxSLGs9MCxNPTAsRz0wLHE9MDtSPWxlLGxlPWxlKzE2fDAsYVsoRD1SKT4+Ml09QXw9MCxHaShmLDAsbSwwLEQsMCxsKTtlOmRve2lmKCh3Ky0xfDApPj4+MDw2KXtuMmUobCxjLDB8YVtEPj4yXSksaz0wfGFbcD4+Ml0sTT0wfGFbcCsyMD4+Ml0sQT0wfGFbcCsyND4+Ml0sYz0wO3Q6Zm9y''@;'; put 'put ''KDs7KXtpZigoMHxjKT49KDB8aykpYnJlYWsgZTtwPU0rKCh3PWMrMXwwKTw8Mil8MCxjPTB8YVtNKyhjPDwyKT4+Ml07bjpmb3IoOzspe2lmKCgwfChjPWMrMXwwKSk+PSgwfGFbcD4+Ml0pKXtjPXc7Y29udGludWUgdH1mb3IobT1BKyhjPDwyKXwwLGY9MDs7KXtpZigoMHxmKT49KDB8bCkp''@;'; put 'put ''Y29udGludWUgbjtxPSgrQmgoKS0uNSkqYixHPSgwfGFbRD4+Ml0pKygoMHxBcigwfGFbbT4+Ml0sbCkpK2Y8PDMpfDAsX1tHPj4zXT0rX1tHPj4zXStxLGY9ZisxfDB9fX19fXdoaWxlKDApO2xlPVJ9ZnVuY3Rpb24gJGgobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscD0rcDt2YXIgTSxtPTAs''@;'; put 'put ''QT0wLHc9MCxiPTAsaz0wLEQ9MCxSPTAsRz0wO2ZvcihNPWxlLGxlPWxlKzE2fDAsaz1NLG09MDs7KXtpZigoMHxtKT49KDB8Yykpe3c9MDticmVha31fW2srKG08PDMpPj4zXT0wLG09bSsxfDB9Zm9yKDshKCgwfHcpPj0oMHxsKSk7KXtmb3IoYj0wfEFyKHcsYyksbT0wOyEoKDB8bSk+PSgw''@;'; put 'put ''fGMpKTspX1soRD1rKyhtPDwzKXwwKT4+M109K19bRD4+M10rICtfW2YrKG0rYjw8Myk+PjNdLG09bSsxfDA7dz13KzF8MH1mb3IoQT0xLysoMHxsKSxtPTA7Oyl7aWYoKDB8bSk+PSgwfGMpKXt3PTA7YnJlYWt9X1soRD1rKyhtPDwzKXwwKT4+M109K19bRD4+M10qQSxtPW0rMXwwfWZvcig7''@;'; put 'put ''ISgoMHx3KT49KDB8bCkpOyl7Zm9yKGI9MHxBcih3LGMpLG09MDshKCgwfG0pPj0oMHxjKSk7KV9bKEQ9ZisobStiPDwzKXwwKT4+M109K19bRD4+M10tK19baysobTw8Myk+PjNdLG09bSsxfDA7dz13KzF8MH1mb3IoQT0raGEoKyhwKj0tLjAxNzQ1MzI3Nzc3Nzc3Nzc3NikpLHA9K0RhKCtw''@;'; put 'put ''KSxtPTA7ISgoMHxtKT49KDB8bCkpOylEPTB8QXIobSxjKSxfWyhrPWYrKEQ8PDMpfDApPj4zXT0oRz0rX1soRD1mKyhEKzE8PDMpfDApPj4zXSkqcCsoUj0rX1trPj4zXSkqQSxfW0Q+PjNdPUcqQS1SKnAsbT1tKzF8MDtsZT1NfWZ1bmN0aW9uIFRrKGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAs''@;'; put 'put ''cD0rcCxtPSttLEF8PTA7dmFyIE0sRCxPZSxMZSxSZSxIZSx3PTAsYj0wLGs9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxWZT0wO2lmKFJlPTB8YVsoY3w9MCk+PjJdLEhlPTB8YVtjKzIwPj4yXSxPZT0wfGFbYysyND4+Ml0sTGU9MHxhW2MrMjg+PjJdLDB8bGgoYywwKXx8UHIoOTU3''@;'; put 'put ''OTUsOTIzODcsMzcsOTI0MDQpLGw9MHxRbig1NiksYVsoaz1sKzIwfDApPj4yXT0wLGFbbCsyND4+Ml09MixhW2wrMTI+PjJdPTAsYj0wfFFuKDE2KSxhW2s+PjJdPWIsX1tiPj4zXT1wLF9bYis4Pj4zXT1tLGFbbCsxNj4+Ml09MTA1LF9bbCs0MD4+M109LjAxLGFbbCs0OD4+Ml09fn4rRDAo''@;'; put 'put ''KyArKDB8YVtjPj4yXSkpLGFbKGs9bCs0fDApPj4yXT0wfHVjKFJlLFJlLCgwfGFbKGI9Yys4fDApPj4yXSkrUmV8MCwxLDEpLGI9MHx1YyhSZSxSZSwoMHxhW2I+PjJdKStSZXwwLDEsMSksYVtsKzg+PjJdPWIsTT0wfGFbMjgrKGs9MHxhW2s+PjJdKT4+Ml0sRD0wfGFbYisyOD4+Ml0sMD09''@;'; put 'put ''KDB8Yil8MD09KDB8aykpUTQobCksbD0wO2Vsc2V7Zm9yKFI9MHxhW2srMjA+PjJdLEc9MHxhW2srMjQ+PjJdLHBlPTB8YVtiKzI0Pj4yXSxhWyhxPTB8YVtiKzIwPj4yXSk+PjJdPTAsYVtSPj4yXT0wLGM9MCxmPTA7ISgoMHxjKT49KDB8UmUpKTspe2ZvcihiZT1IZSsoKGdlPWMrMXwwKTw8''@;'; put 'put ''Mil8MCxwPTAsbT0wLHc9MHxhW0hlKyhjPDwyKT4+Ml07ISgoMHx3KT49KDB8YVtiZT4+Ml0pKTspKDB8KEE9MHxhW09lKyh3PDwyKT4+Ml0pKSE9KDB8YykmJihWZT0oVmU9KFZlPStfW0xlKyh3PDwzKT4+M10pPj0wP1ZlOi1WZSk+LjAxP1ZlOi4wMSxhW0crKGY8PDIpPj4yXT1BLGFbcGUr''@;'; put 'put ''KGY8PDIpPj4yXT1BLF9bKEE9TSsoZjw8Myl8MCk+PjNdPS0xLF9bRCsoZjw8Myk+PjNdPS1WZSxwPStfW0E+PjNdK3AsbS09VmUsZj1mKzF8MCksdz13KzF8MDthW0crKGY8PDIpPj4yXT1jLGFbcGUrKGY8PDIpPj4yXT1jLF9bTSsoZjw8Myk+PjNdPS1wLF9bRCsoZjw8Myk+PjNdPS1tLGFb''@;'; put 'put ''UisoZ2U8PDIpPj4yXT1mPWYrMXwwLGFbcSsoZ2U8PDIpPj4yXT1mLGM9Z2V9YVtrKzg+PjJdPWYsYVtiKzg+PjJdPWZ9cmV0dXJuIDB8bH1mdW5jdGlvbiB5bChsKXtRNChsfD0wKX1mdW5jdGlvbiBaNyhsLGMsZixwKXtyZXR1cm4rICt6bShsfD0wLGN8PTAsZnw9MCxwfD0wLC4wMDEpfWZ1''@;'; put 'put ''bmN0aW9uIGwyZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssbT0wLEE9MCxNPTAsRD0wO2ZvcihrPTB8UW4oKDB8R28obHw9MCkpPDw0KSx3PTAhPSgwfHApLGI9Yys4fDAsQT0wfER0KGwpLG09MDtBOyl3JiYobT1tKygwPT0oMHxzMigwfHRpKEEpLDkyNDgxLDExKSkmMSl8''@;'; put 'put ''MCksX1trKygoTT1hWzEyMCsoRD0wfGFbQSsxNj4+Ml0pPj4yXTw8MSk8PDMpPj4zXT0uNSorX1tEKzMyPj4zXSsgK19bYz4+M10sX1trKygoMXxNKTw8Myk+PjNdPS41KitfW0QrNDA+PjNdKyArX1tiPj4zXSxBPTB8enQobCxBKTtpZih3JjAhPSgwfG0pKXtmb3IoYz0wfFFuKG08PDIpLEE9''@;'; put 'put ''MHxEdChsKSxtPTA7QTspMHxzMigwfHRpKEEpLDkyNDgxLDExKXx8KGFbYysobTw8Mik+PjJdPWFbMTIwKygwfGFbQSsxNj4+Ml0pPj4yXSxtPW0rMXwwKSxBPTB8enQobCxBKTthW3A+PjJdPWMsYVtmPj4yXT1tfXJldHVybiAwfGt9ZnVuY3Rpb24gczJlKGwsYyxmKXtjfD0wLGZ8PTA7dmFy''@;'; put 'put ''IE9lLExlLFJlLHFlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsSGU9MCxWZT0wLHJ0PTA7aWYocWU9bGUsbGU9bGUrMzJ8MCxSZT1xZSsxNnwwLExlPXFlKzh8MCxPZT1xZSxsfD0wKXtmb3IoSGU9MHxHbyhsKSxWZT0wfE4zKGwp''@;'; put 'put ''LGM9MHxEdChsKSxwPTA7YzspYVsxMjArKDB8YVtjKzE2Pj4yXSk+PjJdPXAsYz0wfHp0KGwsYykscD1wKzF8MDtmb3IocT0wfFFuKHBlPVZlPDwyKSxwZT0wfFFuKHBlKSxnZT0wfFFuKGM9VmU8PDMpLFI9MHxzaShsLDIsMTAxNTQxLDApLChiZT0wIT0oMHxmKSk/KHA9MHxzaShsLDIsOTI0''@;'; put 'put ''OTMsMCksRD1HPTB8dnIoYykpOihEPTAscD0wLEc9MCksYj0wPT0oMHxSKSxrPTA9PSgwfHApLHc9MHxEdChsKSxjPTA7dzspe2ZvcihNPTB8YVsxMjArKDB8YVt3KzE2Pj4yXSk+PjJdLEE9MHx3MChsLHcpO0E7KWFbcSsoYzw8Mik+PjJdPU0sYVtwZSsoYzw8Mik+PjJdPWFbMTIwKygwfGFb''@;'; put 'put ''MTYrKDB8YVsoMj09KDMmYVtBPj4yXXwwKT9BOkErLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0sYnx8KHJ0PTB8SG8oQSxSKSxhW0xlPj4yXT1PZSwxIT0oMHxpbChydCwxMDEyMDksTGUpKSk/KF9bT2U+PjNdPTEsbT0xKTptPStfW09lPj4zXSxfW2dlKyhjPDwzKT4+M109bSxrfHwocnQ9MHxI''@;'; put 'put ''byhBLHApLGFbUmU+PjJdPU9lLDE9PSgwfGlsKHJ0LDEwMTIwOSxSZSkpP209K19bT2U+PjNdOihfW09lPj4zXT0xLG09MSksX1tEKyhjPDwzKT4+M109bSksQT0wfFMwKGwsQSksYz1jKzF8MDt3PTB8enQobCx3KX1jPTB8bzQoVmUsSGUsSGUscSxwZSxnZSwxLDgpLGJlJiYoYVtmPj4yXT0w''@;'; put 'put ''fG80KFZlLEhlLEhlLHEscGUsRywxLDgpKSxGdChxKSxGdChwZSksRnQoZ2UpLEQmJkZ0KEcpfWVsc2UgYz0wO3JldHVybiBsZT1xZSwwfGN9ZnVuY3Rpb24gdTJlKGwpe2x8PTA7dmFyIE0sYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MDtNPWxlLGxlPWxlKzE2''@;'; put 'put ''fDAsaz1NO2U6ZG97aWYoMHxlOWUobCxrKSl7Zm9yKGM9MHxhWzEzMisoMHxhWzE2KygwfER0KGwpKT4+Ml0pPj4yXSxBPStfW2M+PjNdLHA9K19bYys4Pj4zXSxjPTB8RHQobCk7YzspX1sobT0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW20+PjNdLUEsX1sobT1tKzh8MCk+''@;'; put 'put ''PjNdPStfW20+PjNdLXAsYz0wfHp0KGwsYyk7Zm9yKGM9MSYoMCE9QXwwIT1wKSxmPTB8RHQobCk7Oyl7aWYoIWYpYnJlYWsgZTtpZigwfChtPTB8dzAobCxmKSkpYnJlYWs7Zj0wfHp0KGwsZil9aWYocD0rVWwoKygrX1s4KyhmPTB8YVsxMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoRD0zJmFb''@;'; put 'put ''bT4+Ml0pKT9tOm0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPj4zXS0odz0rX1s4KyhtPTB8YVsxMzIrKDB8YVsxNisoMHxhWygzPT0oMHxEKT9tOm0rNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSk+PjNdKSksKygrX1tmPj4zXS0oYj0rX1ttPj4zXSkpKSxfW2s+PjNdPXA9K19baz4+M10tcCww''@;'; put 'put ''IT1wKWZvcihBPStoYSgrcCkscD0rRGEoK3ApLGM9MHxEdChsKTs7KXtpZighYyl7Yz0xO2JyZWFrIGV9X1soaz0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPShHPStfW2s+PjNdLWIpKkErYi0oUj0rX1soRD1rKzh8MCk+PjNdLXcpKnAsX1tEPj4zXT1HKnArdytSKkEsYz0wfHp0''@;'; put 'put ''KGwsYyl9fWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiBsZT1NLDB8Y31mdW5jdGlvbiBlOWUobCxjKXtjfD0wO3ZhciBwLG0sZj0wO209bGUsbGU9bGUrMTZ8MCxwPW0sbD0wfExpKGx8PTAsOTI0OTcpO2Rve2lmKDAhPSgwfGwpJiYwIT0oMHxmZVtsPj4wXSkpe2lmKGY9K2kzKGwscCksKDB8''@;'; put 'put ''YVtwPj4yXSk9PSgwfGwpKXtpZighKCgwfHQxKGwpKTw8MjQ+PjI0KSl7bD0wO2JyZWFrfWY9MH1mb3IoO2Y+MTgwOylmKz0tMzYwO2Zvcig7Zjw9LTE4MDspZis9MzYwO19bYz4+M109LjAxNzQ1MzI5MjUxOTk0MzI5NSpmLGw9MX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gbGU9bSwwfGx9''@;'; put 'put ''ZnVuY3Rpb24gYzJlKGwsYyxmKXt2YXIgcDtyZXR1cm4gY3w9MCxmfD0wLDB8dlYobHw9MCwwPT0oMHwocD0wfExpKGwsOTI1MDcpKSk/MHxmP2Y6MTk1MDU5OnAsYyl9ZnVuY3Rpb24gdlYobCxjLGYpe2x8PTAsZnw9MDt2YXIgdyxNLHA9MCxtPTAsQT0wLGI9MDtpZihNPWxlLGxlPWxlKzMy''@;'; put 'put ''fDAsdz1NKzh8MCxBPU0sMCE9KDB8KGN8PTApKSYmMCE9KDB8ZmVbYz4+MF0pKXtmb3IocD0xNzg5NjttPTB8YVtwKzQ+PjJdOyl7aWYoISgwfGw0KGMsbSwwfGFbcCs4Pj4yXSkpKXtiPTY7YnJlYWt9cD1wKzE2fDB9Nj09KDB8YikmJigwfGFbcCsxMj4+Ml18fChhW0E+PjJdPW0sJHIoMCw5''@;'; put 'put ''MjUxNSxBKSxwPTE3ODk2KSxhW2Y+PjJdPUE9MHxhW3A+PjJdLGFbZis0Pj4yXT1hW3ArMTI+PjJdLDE4PT0oMHxBKSYmZnVuY3Rpb24gSWsobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwLEEsbT0wO3A9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1BPXArNHwwLG09KDB8aWwoYywxMzcz''@;'; put 'put ''OTUsbSkpPjAsYVtmKzg+PjJdPW0mKDB8KGM9MHxhW0E+PjJdKSk+LTE/YzoxZTMsX1tmKzE2Pj4zXT0rTWwobCwwfHNpKGwsMCw5MjY0OCwwKSwtNCwtMWUxMCksbGU9cH0obCxjKygwfGFbcCs4Pj4yXSl8MCxmKSksMHxhW3ArND4+Ml18fCgocD0wfG5nKGMsNjMpKTw8MjQ+PjI0PT02Mz8o''@;'; put 'put ''YVt3Pj4yXT1jLCRyKDAsOTI1NTcsdykscD0wKTpwJj0yNTUsYVtmPj4yXT0xJihwPTA9PSgwfHApKSxwPXA/OTI2MDQ6MTM1NzA5LGI9MTUpfWVsc2UgYVtmPj4yXT0wLHA9MTM1NzA5LGI9MTU7cmV0dXJuIDE1PT0oMHxiKSYmKGFbZis0Pj4yXT1wKSxsZT1NLDB8Zn1mdW5jdGlvbiB6Nyhs''@;'; put 'put ''LGMpe2x8PTAsY3w9MDt2YXIgQSx3LGY9MCxwPTA7dz1sZSxsZT1sZSsxNnwwLEE9dys4fDA7ZG97aWYoKDB8R28obCkpPj0yKXtpZihmPTB8dTJlKGwpLGY9KDB8QVYobCkpK2Z8MCxwPTB8YVtjPj4yXSl7aWYocD4+PjA+Mil7c3dpdGNoKDB8cCl7Y2FzZSAzOnA9MHxUVihsLDEpO2JyZWFr''@;'; put 'put ''O2Nhc2UgNDpwPTB8VFYobCwwKTticmVhaztjYXNlIDY6Y2FzZSA1OnA9MDticmVhaztjYXNlIDEwOmNhc2UgOTpjYXNlIDc6Y2FzZSA4OmNhc2UgMTQ6Y2FzZSAxMzpjYXNlIDExOmNhc2UgMTI6QlgobCxwKSxwPTA7YnJlYWs7Y2FzZSAxNTpwPTB8VFYobCwtMSk7YnJlYWs7ZGVmYXVsdDph''@;'; put 'put ''W0E+PjJdPWFbYys0Pj4yXSwkcigwLDkzZTMsQSkscD0wfWY9cCtmfDA7YnJlYWt9aWYoMHxmMmUobCkpe0RrKCksRnQoMHxhWzQ2ODQ1XSksYVs0Njg0NV09MDticmVha31NWChsKSwwfChwPTI9PSgwfGFbYz4+Ml0pPzB8RzcoKTowfGdwKCkpJiZoMmUoKSxEaygpLEZ0KDB8YVs0Njg0NV0p''@;'; put 'put ''LGFbNDY4NDVdPTAsZj1wK2Z8MH19ZWxzZSBmPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXcsMHxmfWZ1bmN0aW9uIEFWKGwpe3ZhciBtLGIsTSxjPTAsZj0wLHA9MCxBPTAsdz0wLGs9MDtNPWxlLGxlPWxlKzQ4fDAsdz1NKzI0fDAsbT1NKzE2fDAsYj1NLGM9MHxMaShsfD0wLDE0MDc0Mik7ZTpk''@;'; put 'put ''b3tpZigwPT0oMHxjKXx8KGs9Yis4fDAsYVttPj4yXT1iLGFbbSs0Pj4yXT1rLHA9MHxpbChjLDEwNTUwMyxtKSwwPT0oMHxwKSl8fChBPStfW2I+PjNdLCtlbygrQSk8MWUtOSkpYz0wO2Vsc2V7aWYoMSE9KDB8cCkpe2lmKCtlbygrKGY9K19baz4+M10pKTwxZS05KXtjPTA7YnJlYWt9fWVs''@;'; put 'put ''c2UgX1trPj4zXT1BLGY9QTtpZigxPT1mJjE9PUEpYz0wO2Vsc2UgZm9yKGM9MHxEdChsKTs7KXtpZighYyl7Yz0xO2JyZWFrIGV9X1sodz0wfGFbMTMyKygwfGFbYysxNj4+Ml0pPj4yXSk+PjNdPStfW3c+PjNdKitfW2I+PjNdLF9bKHc9dys4fDApPj4zXT0rX1t3Pj4zXSorX1trPj4zXSxj''@;'; put 'put ''PTB8enQobCxjKX19fXdoaWxlKDApO3JldHVybiBsZT1NLDB8Y31mdW5jdGlvbiBmMmUobCl7dmFyIGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLE09MDtmb3Ioaz1sZSxsZT1sZSsxNnwwLHc9ayxhWzQ2ODU0XT0wfEdvKGx8PTApLGZ1bmN0aW9uIHU5ZSgpe2FbNDY4NTVdPX5+K0Qw''@;'; put 'put ''KCsgKyg0KygwfGFbNDY4NTRdKXwwKSl9KCksYVs0Njg2OV09MHxRbig5NiooMHxhWzQ2ODU0XSl8MCkscD0wfER0KGwpLGM9MHxhWzQ2ODY5XSxXNyh3LGwpLG09K2puW3c+PjJdLEE9K2puW3crND4+Ml0sQT0odz0wPT0oMHxmZVt3Kzg+PjBdKSk/QTouMDEzODg4ODg4ODg4ODg4ODg4KkEs''@;'; put 'put ''bT13P206LjAxMzg4ODg4ODg4ODg4ODg4OCptLHc9dz8yOjEsZj0wOzspe2lmKCgwfGYpPj0oMHxhWzQ2ODU0XSkpe2M9MDticmVha31pZihfW2MrOD4+M109K19bKE09MHxhWzEzMisoMHxhW3ArMTY+PjJdKT4+Ml0pPj4zXSxfW2MrMTY+PjNdPStfW00rOD4+M10sMHxkOFszJnddKGMrNDB8''@;'; put 'put ''MCxwLG0sQSkpe2I9NDticmVha31hW2MrMjQ+PjJdPWYsYVtjKzI4Pj4yXT0xLGFbYz4+Ml09cCxhW2MrODg+PjJdPTAsYz1jKzk2fDAsZj1mKzF8MCxwPTB8enQobCxwKX1yZXR1cm4gND09KDB8YikmJihGdCgwfGFbNDY4NjldKSxhWzQ2ODY5XT0wLGM9MSksbGU9aywwfGN9ZnVuY3Rpb24g''@;'; put 'put ''RGsoKXt2YXIgbD0wLGM9MDtmb3IobD0wfGFbNDY4NjldLGM9MDshKCgwfGMpPj0oMHxhWzQ2ODU0XSkpOylwOWUobCs0MHwwKSxsPWwrOTZ8MCxjPWMrMXwwOyhmdW5jdGlvbiBGMmUoKXthWzQ2OTE0XT0wLEZ0KDB8YVs0NjkxNV0pLEZ0KDB8YVs0NjkxNl0pLEZ0KDB8YVs0NjkxN10pLGFb''@;'; put 'put ''NDY5MTVdPTAsYVs0NjkxNl09MCxhWzQ2OTE3XT0wfSkoKSxWeSgpLEZ0KDB8YVs0Njg2OV0pfWZ1bmN0aW9uIE1YKGwpe2x8PTA7dmFyIHAsayxNLEQsUixjPTAsZj0wLG09MCxBPTAsdz0wLGI9MCxHPTAscT0wLHBlPTAsZ2U9MDtmb3IoRD1sZSxsZT1sZSszMnwwLGs9RCsxNnwwLE09RCxw''@;'; put 'put ''PTB8YVs0Njg1NF0sYz1SPTB8YVs0Njg2OV0sZj0xLG09K19bUis0MD4+M10rKEE9K19bUis4Pj4zXSksQT0rX1tSKzU2Pj4zXStBLHc9K19bUis0OD4+M10rKGI9K19bUisxNj4+M10pLGI9K19bUis2ND4+M10rYjshKCgwfGYpPj0oMHxwKSk7KWdlPStfW2MrMTM2Pj4zXSsocGU9K19bYysx''@;'; put 'put ''MDQ+PjNdKSxxPStfW2MrMTQ0Pj4zXSsoRz0rX1tjKzExMj4+M10pLHBlPStfW2MrMTUyPj4zXStwZSxHPStfW2MrMTYwPj4zXStHLGM9Yys5NnwwLGY9ZisxfDAsbT1nZTxtP2dlOm0sQT1wZT5BP3BlOkEsdz1xPHc/cTp3LGI9Rz5iP0c6YjswfChjPTB8TGkobCw5MzEwMCkpJiYwfGZlW2M+''@;'; put 'put ''PjBdJiYoX1sxNzNdPStrcChjKSksZ2U9KHBlPStfWzE3M10pKihiLXcpLF9baz4+M109bS0ocGUqPUEtbSksX1trKzg+PjNdPXctZ2UsX1tNPj4zXT1wZStBLF9bTSs4Pj4zXT1nZStiLHlWKGssTSksbGU9RH1mdW5jdGlvbiBHNygpe3ZhciBmLGw9MDtpZihmPWxlLGxlPWxlKzE2fDAsMHxJ''@;'; put 'put ''ZigpKXtFWCgpLGw9MDtkb3tJWCgpLGw9bCsxfDB9d2hpbGUoMCE9KDB8SWYoKSkpO2w9MX1lbHNlIGw9MDtyZXR1cm4gbGU9ZiwwfGx9ZnVuY3Rpb24gZ3AoKXt2YXIgYixsPTAsYz0wLGY9MCxwPTAsbT0wO2lmKGI9bGUsbGU9bGUrMTZ8MCxjPTB8SWYoKSl7Zm9yKEVYKCkseFgoMCksJFYo''@;'; put 'put ''MCwxKSxsPTAscD0wLGY9MDttMSgpLG09MHxJZihmPWYrMXwwKTspYz0oMHxtKTwoMHxjKT8wOnArMXwwLGFbNDY4NDZdPTEsYyYmKHAyZSgpLGw9bCsxfDApLHhYKDEpLCRWKDAsMSkscD1jLGM9bTsoZnVuY3Rpb24gZmcoKXsoZnVuY3Rpb24gR1goKXtGdCgwfGFbNDY4NTZdKSxhWzQ2ODU2''@;'; put 'put ''XT0wfSkoKSxmdW5jdGlvbiBXWCgpe3p5KDE4NzQ0OCw0MCksRnQoMHxhWzQ2ODY1XSksYVs0Njg2NV09MH0oKSxwSygpLGpEKCl9KSgpLGw9MX1lbHNlIGw9MDtyZXR1cm4gbGU9YiwwfGx9ZnVuY3Rpb24gaDJlKCl7dmFyIGYsbD0wLGM9MCxwPTA7Zm9yKGY9MHxhWzQ2ODU0XSxsPTB8YVs0''@;'; put 'put ''Njg2OV0sYz0wOyEoKDB8Yyk+PSgwfGYpKTspX1socD0wfGFbMTMyKygwfGFbMTYrKDB8YVtsPj4yXSk+PjJdKT4+Ml0pPj4zXT0rX1tsKzg+PjNdLF9bcCs4Pj4zXT0rX1tsKzE2Pj4zXSxsPWwrOTZ8MCxjPWMrMXwwfWZ1bmN0aW9uIElmKGwpe3ZhciBSLHBlLEcsYz0wLGY9MCxwPTAsbT0w''@;'; put 'put ''LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2ZvcihwZT1sZSxsZT1sZSs0OHwwLEc9cGUrMjR8MCxSPXBlKzh8MCxmPTB8YVs0Njg2OV0scD0wfGFbNDY4NTRdLGM9MDs7KXtpZigoMHxjKT49KDB8cCkpe209MCxjPTA7YnJlYWt9YVtmKyg5NipjfDApKzMyPj4yXT0wLGM9YysxfDB9ZTpmb3Io''@;'; put 'put ''OyEoKDB8Yyk+PShwKy0xfDApKTspZm9yKEQ9Zis5NnwwLGM9YysxfDAsaz1mKzh8MCxNPWYrNDB8MCxiPWYrMzJ8MCxBPUQsdz1jOzspe2lmKCgwfHcpPj0oMHxwKSl7Zj1EO2NvbnRpbnVlIGV9cD1BKzh8MCxhW1I+PjJdPWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0Pj4yXSxhW1IrOD4+Ml09''@;'; put 'put ''YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtrKzEyPj4yXSxhW0c+PjJdPWFbcD4+Ml0sYVtHKzQ+PjJdPWFbcCs0Pj4yXSxhW0crOD4+Ml09YVtwKzg+PjJdLGFbRysxMj4+Ml09YVtwKzEyPj4yXSwwfHY5ZShSLE0sRyxBKzQwfDApPyhhW2I+PjJdPTEsYVtBKzMyPj4yXT0xLGY9bSsxfDApOmY9''@;'; put 'put ''bSxBPUErOTZ8MCx3PXcrMXwwLG09ZixwPTB8YVs0Njg1NF19cmV0dXJuIGxlPXBlLDB8bX1mdW5jdGlvbiBFWCgpe3ZhciBrLE0sbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxEPTAsUj0wO3dWKCksaz0wfGFbNDY4NDhdLE09MHxhWzQ2ODY5XSxsPTB8YVs0Njg0NV07ZTpmb3Io''@;'; put 'put ''O3c9bCwhKGw+Pj4wPj1rPj4+MCk7KWlmKChjPWwrNHwwKT4+PjA+PWs+Pj4wKWw9YztlbHNlIGlmKCtfWyhtPTB8YVtjPj4yXSk+PjNdPT0oQT0rX1soZj0wfGFbbD4+Ml0pPj4zXSkpaWYoK19bbSs4Pj4zXT09KHA9K19bZis4Pj4zXSkpe2ZvcihiPWwrOHwwLG09MjshKGI+Pj4wPj1rPj4+''@;'; put 'put ''MCk7KXtpZigrX1soZj0wfGFbYj4+Ml0pPj4zXSE9QSl7RD0xMTticmVha31pZigrX1tmKzg+PjNdIT1wKXtEPTExO2JyZWFrfWI9Yis0fDAsbT1tKzF8MH1pZigxMT09KDB8RCkmJihEPTAsK19bOCsoZj0wfGFbYj4+Ml0pPj4zXT09cCkpZm9yKHA9KCtfW2Y+PjNdLUEpLysoMHxtKSxmPTEr''@;'; put 'put ''KCgoYj4+PjA+Yz4+PjA/YjpjKSstMSsoMC13KXwwKT4+PjIpfDAsbD0xOzspe2lmKCgwfGwpPT0oMHxmKSl7bD1iO2NvbnRpbnVlIGV9X1sodz0wfGFbYz4+Ml0pPj4zXT0rX1t3Pj4zXStwKisoMHxsKSxsPWwrMXwwLGM9Yys0fDB9Zm9yKDs7KXtpZihjPj4+MD49Yj4+PjApe2w9Yjtjb250''@;'; put 'put ''aW51ZSBlfV9bKHc9MHxhW2M+PjJdKT4+M109LjUqKCtfW00rKDk2KihSPTB8YVsxNisobT0wfGFbbD4+Ml0pPj4yXSl8MCkrNTY+PjNdLStfW00rKDk2KlJ8MCkrNDA+PjNdKyArX1tNKyg5NiooZj0wfGFbdysxNj4+Ml0pfDApKzU2Pj4zXS0rX1tNKyg5NipmfDApKzQwPj4zXSkrICtfW20+''@;'; put 'put ''PjNdLGM9Yys0fDAsbD1sKzR8MH19ZWxzZSBsPWM7ZWxzZSBsPWN9ZnVuY3Rpb24geFgobCl7dmFyIHcsYixrLGM9MCxmPTAscD0wLG09MCxBPTA7Zm9yKDB8KGx8PTApJiZ3VigpLF9bMjMyNzJdPWY9K19bKGI9MHxhWyh3PTB8YVs0Njg0NV0pPj4yXSk+PjNdLGs9MHxhWzQ2ODU0XSxtPTEs''@;'; put 'put ''QT0rX1tiPj4zXTshKCgwfG0pPj0oMHxrKSk7KShjPStfWyhsPTB8YVt3KyhtPDwyKT4+Ml0pPj4zXSk8Zj8oX1syMzI3Ml09YyxwPStfW2w+PjNdKToocD1jLGM9ZiksbT1tKzF8MCxmPWMsQT1wPkE/cDpBO19bMjMyNzNdPXA9K19bYis4Pj4zXSxfWzIzMjc1XT0rX1s4KygwfGFbdysoayst''@;'; put 'put ''MTw8Mik+PjJdKT4+M10tcCxfWzIzMjc0XT1BLWZ9ZnVuY3Rpb24gbTEoKXt2YXIgZixsPTAsYz0wO2ZvcihsPTB8YVs0Njg2OV0sZnVuY3Rpb24gS2MoKXt2YXIgbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxP''@;'; put 'put ''ZT0wLExlPTA7Zm9yKG09K1k3KEE9OCsoRD0wfGFbNDY4NjldKXwwLDE4NjA2NCkscD0rWTcoQSwxODYwODApLGY9K1k3KEEsMTg2MDk2KSxsPTEsYz0rWTcoQSwxODYxMTIpLEE9RCx3PUQsYj1ELGs9RDtNPUQrOTZ8MCwhKCgwfGwpPj0oMHxhWzQ2ODU0XSkpOylSPShnZT0rWTcocGU9RCsx''@;'; put 'put ''MDR8MCwxODYwNjQpKTxtLHE9KE9lPStZNyhwZSwxODYwOTYpKTxmLEc9KGJlPStZNyhwZSwxODYwODApKTxwLGw9bCsxfDAsYz0ocGU9KExlPStZNyhwZSwxODYxMTIpKTxjKT9MZTpjLGY9cT9PZTpmLHA9Rz9iZTpwLG09Uj9nZTptLEE9cGU/TTpBLHc9cT9NOncsYj1HP006YixrPVI/TTpr''@;'; put 'put ''LEQ9TTtMYyhrKzh8MCwrX1syMzI1OF0sK19bMjMyNTldKSxMYyh3Kzh8MCwrX1syMzI2Ml0sK19bMjMyNjNdKSxMYyhiKzh8MCwrX1syMzI2MF0sK19bMjMyNjFdKSxMYyhBKzh8MCwrX1syMzI2NF0sK19bMjMyNjVdKX0oKSxmPTA9PSgwfGFbNDY4NDZdKSxjPTA7ISgoMHxjKT49KDB8YVs0''@;'; put 'put ''Njg1NF0pKTspZiYmISgwfGFbbCszMj4+Ml0pfHxoZyhsKSxsPWwrOTZ8MCxjPWMrMXwwfWZ1bmN0aW9uIHAyZSgpe3ZhciBsLGMsZixwLG0sQSx3LGIsaztsPWxlLGxlPWxlKzMyfDAsZj1sKzE2fDAscD0uMDUqKChiPStfWzIzMjY2XSktKG09K19bMjMyNjddKSksX1soYz1sKT4+M109KEE9''@;'; put 'put ''LjA1Kigoaz0rX1syMzI2OF0pLSh3PStfWzIzMjY5XSkpKStrLF9bYys4Pj4zXT1iK3AsX1tmPj4zXT13LUEsX1tmKzg+PjNdPW0tcCx5VihmLGMpLGxlPWx9ZnVuY3Rpb24geVYobCxjKXt2YXIgZixwLG0sQTtjfD0wLF9bMjMyNjldPUE9K19bKGx8PTApPj4zXSxfWzIzMjY4XT1tPStfW2M+''@;'; put 'put ''PjNdLF9bMjMyNjddPWY9K19bbCs4Pj4zXSxfWzIzMjY2XT1wPStfW2MrOD4+M10sX1syMzI1OF09QSxfWzIzMjYwXT1BLF9bMjMyNjJdPW0sX1syMzI2NF09bSxfWzIzMjY1XT1wLF9bMjMyNjFdPXAsX1syMzI2M109ZixfWzIzMjU5XT1mfWZ1bmN0aW9uIGhnKGwpe3ZhciBBLHcsYixNLEQs''@;'; put 'put ''UixHLGM9MCxmPTAscD0wLG09MCxrPTAscT0wLHBlPTAsZ2U9MDtmb3IoRz1sZSxsZT1sZSs2NHwwLGI9Rys0OHwwLHc9RyszMnwwLEE9RysxNnwwLE09Rys4fDAsRD1HLFI9OCsoaz0wfGFbODgrKGx8PTApPj4yXSl8MCxjPTAsZj0wLHA9MCxrPTB8YVtrPj4yXTttPTB8YVtrPj4yXTspZ2U9''@;'; put 'put ''ays4fDAscGU9bSs4fDAsYVtBPj4yXT1hW1I+PjJdLGFbQSs0Pj4yXT1hW1IrND4+Ml0sYVtBKzg+PjJdPWFbUis4Pj4yXSxhW0ErMTI+PjJdPWFbUisxMj4+Ml0sYVt3Pj4yXT1hW2dlPj4yXSxhW3crND4+Ml09YVtnZSs0Pj4yXSxhW3crOD4+Ml09YVtnZSs4Pj4yXSxhW3crMTI+PjJdPWFb''@;'; put 'put ''Z2UrMTI+PjJdLGFbYj4+Ml09YVtwZT4+Ml0sYVtiKzQ+PjJdPWFbcGUrND4+Ml0sYVtiKzg+PjJdPWFbcGUrOD4+Ml0sYVtiKzEyPj4yXT1hW3BlKzEyPj4yXSxxPStnMmUoQSx3LGIpLGFbQT4+Ml09YVtSPj4yXSxhW0ErND4+Ml09YVtSKzQ+PjJdLGFbQSs4Pj4yXT1hW1IrOD4+Ml0sYVtB''@;'; put 'put ''KzEyPj4yXT1hW1IrMTI+PjJdLGFbdz4+Ml09YVtnZT4+Ml0sYVt3KzQ+PjJdPWFbZ2UrND4+Ml0sYVt3Kzg+PjJdPWFbZ2UrOD4+Ml0sYVt3KzEyPj4yXT1hW2dlKzEyPj4yXSxhW2I+PjJdPWFbcGU+PjJdLGFbYis0Pj4yXT1hW3BlKzQ+PjJdLGFbYis4Pj4yXT1hW3BlKzg+PjJdLGFbYisx''@;'; put 'put ''Mj4+Ml09YVtwZSsxMj4+Ml0sdDllKEEsdyxiLE0sRCksYz0rX1tEPj4zXSpxK2MsZj0rX1tNPj4zXSpxK2YscD1xK3Asaz1tO19bbCs4Pj4zXT1mL3AsX1tsKzE2Pj4zXT1jL3AsbGU9R31mdW5jdGlvbiBnMmUobCxjLGYpe3ZhciBwLG0sQTtyZXR1cm4uNSorZW8oKygoKEE9K19bOCsoZnw9''@;'; put 'put ''MCk+PjNdKS0obT0rX1s4KyhsfD0wKT4+M10pKSorX1soY3w9MCk+PjNdKygocD0rX1tjKzg+PjNdKS1BKSorX1tsPj4zXSsgK19bZj4+M10qKG0tcCkpKX1mdW5jdGlvbiB0OWUobCxjLGYscCxtKXttfD0wLF9bKHB8PTApPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooK19bKGN8PTApPj4zXSsg''@;'; put 'put ''K19bKGx8PTApPj4zXSsgK19bKGZ8PTApPj4zXSksX1ttPj4zXT0uMzMzMzMzMzMzMzMzMzMzMyooK19bYys4Pj4zXSsgK19bbCs4Pj4zXSsgK19bZis4Pj4zXSl9ZnVuY3Rpb24gd1YoKXt2YXIgcCxsPTAsYz0wLGY9MDtmb3IoKGw9MHxhWzQ2ODQ1XSl8fChsPTB8UW4oYVs0Njg1NF08PDIp''@;'; put 'put ''LGFbNDY4NDVdPWwsYVs0Njg0OF09bCsoYVs0Njg1NF08PDIpKSxmPTB8YVs0Njg2OV0sVnkoKSxwPTB8YVs0Njg1NF0sYz0wOyEoKDB8Yyk+PSgwfHApKTspYVtsPj4yXT1mKzgsYVtmKzg4Pj4yXT0wLGFbZisyOD4+Ml09MSxmPWYrOTZ8MCxsPWwrNHwwLGM9YysxfDA7eDEoMHxhWzQ2ODQ1''@;'; put 'put ''XSxwLDQsNjkpLGFbNDY4NDddPWFbNDY4NDVdfWZ1bmN0aW9uIElYKCl7dmFyIGYsbD0wLGM9MCxwPTA7Zm9yKGY9MHxhWzQ2ODU0XSxsPTAsYz0wfGFbNDY4NjldOyEoKDB8bCk+PSgwfGYpKTspX1socD1jKzh8MCk+PjNdPTEuMDUqK19bcD4+M10sX1socD1jKzE2fDApPj4zXT0xLjA1Kitf''@;'; put 'put ''W3A+PjNdLGw9bCsxfDAsYz1jKzk2fDB9ZnVuY3Rpb24gVzcobCxjKXtsfD0wO3ZhciBmLG0sdyxwPTA7dz1sZSxsZT1sZSs0OHwwLG09dysyNHwwLDAhPSgwfChmPTB8TGkoY3w9MCw5MzExMikpKSYmMCE9KDB8TGsoZixtLDEsMCkpfHwocD0zKTtkb3tpZigzPT0oMHxwKSl7aWYoMHwoYz0w''@;'; put 'put ''fExpKGMsOTMxMTYpKSYmMHxMayhjLG0sLjgwMDAwMDAxMTkyMDkyOSw0KSlicmVhaztqblttKzQ+PjJdPTQsam5bbT4+Ml09NCxmZVttKzg+PjBdPTF9fXdoaWxlKDApO2FbbD4+Ml09YVttPj4yXSxhW2wrND4+Ml09YVttKzQ+PjJdLGFbbCs4Pj4yXT1hW20rOD4+Ml0sbGU9d31mdW5jdGlv''@;'; put 'put ''biBMayhsLGMsZixwKXtsfD0wLGN8PTAsZj0rZixwPStwO3ZhciB3LGIsayxELFIsbT0wLEE9MCxNPTAsRz0wO2ZvcihEPWxlLGxlPWxlKzE2fDAsaz1ELHc9RCsxMnwwLGI9RCs4fDA7QT1sKzF8MCwwfCRjKChtPTB8ZmVbbD4+MF0pPDwyND4+MjQpOylsPUE7c3dpdGNoKFI9bTw8MjQ+PjI0''@;'; put 'put ''PT00MyxmZVsobT1jKzh8MCk+PjBdPTEmUixhW2s+PjJdPXcsYVtrKzQ+PjJdPWIsMHxpbChSP0E6bCw5MzE1NCxrKSl7Y2FzZSAwOmw9MDticmVhaztjYXNlIDE6YVtiPj4yXT1hW3c+PjJdLE09NTticmVhaztkZWZhdWx0Ok09NX1pZig1PT0oMHxNKSl7ZG97aWYoMHxmZVttPj4wXSl7aWYo''@;'; put 'put ''Zj4xKXtqbltjPj4yXT0oRz0ram5bdz4+Ml0vZik+cD9wOkcsZj0oZj0ram5bYj4+Ml0vZik+cD9wOmY7YnJlYWt9aWYoZjwxKXtqbltjPj4yXT0oRz0ram5bdz4+Ml0vZik8cD9wOkcsZj0oZj0ram5bYj4+Ml0vZik8cD9wOmY7YnJlYWt9YVtjPj4yXT1hW3c+PjJdLGY9K2puW2I+PjJdO2Jy''@;'; put 'put ''ZWFrfWpuW2M+PjJdPStqblt3Pj4yXS9mKzEsZj0ram5bYj4+Ml0vZisxfXdoaWxlKDApO2puW2MrND4+Ml09ZixsPTF9cmV0dXJuIGxlPUQsMHxsfWZ1bmN0aW9uIGJWKGwsYyl7dmFyIGYscDtyZXR1cm4gY3w9MCxwPWxlLGxlPWxlKzMyfDAsZj1wLCgwfEdvKGx8PTApKTwyP2w9MDoodlYo''@;'; put 'put ''bCxjLGYpLGw9MHx6NyhsLGYpKSxsZT1wLDB8bH1mdW5jdGlvbiBMeShsKXtyZXR1cm4gMHxiVihsfD0wLDB8TGkobCw5MjUwNykpfWZ1bmN0aW9uIHI4KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBSLEcsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9yKEc9bGUs''@;'; put 'put ''bGU9bGUrMTZ8MCxSPUcsQT0wOyEoKDB8QSk+PSgwfGYpKTspYVtwKyhBPDwyKT4+Ml09LTEsQT1BKzF8MDthW3ArKGw8PDIpPj4yXT0wLGZ1bmN0aW9uIExYKGwsYyl7YVthWyhsfD0wKT4+Ml0+PjJdPWN8PTAsYVtsKzEyPj4yXT0wLGFbbCs4Pj4yXT0xfShtLGwpO2U6ZG97aWYoMHxhW2Mr''@;'; put 'put ''OD4+Ml0pe0E9MjE0NzQ4MzY0Nzt0OmZvcig7Oyl7aWYoISgoMHxfVihtLFIpKTw8MjQ+PjI0KSlicmVhayBlO2ZvcihBPTB8YVtwKygoaz0wfGFbUj4+Ml0pPDwyKT4+Ml0sdz1jKygyMCprfDApfDAsYj1jKygyMCprfDApKzR8MCxrPWMrKDIwKmt8MCkrOHwwLGw9MTs7KXtpZigoMHxsKT49''@;'; put 'put ''KDB8YVt3Pj4yXSkpY29udGludWUgdDsoMHxhWyhEPXArKChNPTB8YVsoMHxhW2I+PjJdKSsobDw8Mik+PjJdKTw8Mil8MCk+PjJdKTwwJiYoYVtEPj4yXT1BK35+K2puWygwfGFbaz4+Ml0pKyhsPDwyKT4+Ml0sQ1YobSxNKSksbD1sKzF8MH19fWVsc2V7QT0yMTQ3NDgzNjQ3O3Q6Zm9yKDs7''@;'; put 'put ''KXtpZighKCgwfF9WKG0sUikpPDwyND4+MjQpKWJyZWFrIGU7Zm9yKEE9MHxhW3ArKChiPTB8YVtSPj4yXSk8PDIpPj4yXSx3PWMrKDIwKmJ8MCl8MCxiPWMrKDIwKmJ8MCkrNHwwLGs9QSsxfDAsbD0xOzspe2lmKCgwfGwpPj0oMHxhW3c+PjJdKSljb250aW51ZSB0OygwfGFbKEQ9cCsoKE09''@;'; put 'put ''MHxhWygwfGFbYj4+Ml0pKyhsPDwyKT4+Ml0pPDwyKXwwKT4+Ml0pPDAmJihhW0Q+PjJdPWssQ1YobSxNKSksbD1sKzF8MH19fX13aGlsZSgwKTtmb3IobD1BKzEwfDAsQT0wOyEoKDB8QSk+PSgwfGYpKTspKDB8YVsodz1wKyhBPDwyKXwwKT4+Ml0pPDAmJihhW3c+PjJdPWwpLEE9QSsxfDA7''@;'; put 'put ''bGU9R31mdW5jdGlvbiBfVihsLGMpe3ZhciBmLHA7cmV0dXJuIGN8PTAsKDB8KHA9MHxhWyhmPTEyKyhsfD0wKXwwKT4+Ml0pKTwoMHxhW2wrOD4+Ml0pPyhsPTB8YVtsPj4yXSxhW2Y+PjJdPXArMSxhW2M+PjJdPWFbbCsocDw8Mik+PjJdLGw9MSk6bD0wLDB8bH1mdW5jdGlvbiBDVihsLGMp''@;'; put 'put ''e3ZhciBmLHA7cmV0dXJuIGN8PTAsKDB8KHA9MHxhWyhmPTgrKGx8PTApfDApPj4yXSkpPCgwfGFbbCs0Pj4yXSk/KGw9MHxhW2w+PjJdLGFbZj4+Ml09cCsxLGFbbCsocDw8Mik+PjJdPWMsbD0xKTpsPTAsMHxsfWZ1bmN0aW9uIE95KGwsYyl7YVsobHw9MCk+PjJdPTB8UW4oKGN8PTApPDwy''@;'; put 'put ''KSxhW2wrND4+Ml09YyxhW2wrOD4+Ml09MCxhW2wrMTI+PjJdPTB9ZnVuY3Rpb24gQkQobCl7RnQoMHxhWyhsfD0wKT4+Ml0pfWZ1bmN0aW9uIGtWKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wO2ZvcihBPTA7ISgoMHxBKT49KDB8bCkpOyl7Zm9yKHc9YysoQTw8''@;'; put 'put ''Mil8MCxtPTAscD0wOygwfG0pIT0oMHxsKTspKDB8QSkhPSgwfG0pJiYocD0rX1soMHxhW3c+PjJdKSsobTw8Myk+PjNdK3ApLG09bSsxfDA7X1soMHxhW3c+PjJdKSsoQTw8Myk+PjNdPS1wLEE9QSsxfDB9cmV0dXJuIDB8ZnVuY3Rpb24gaUsobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBw''@;'; put 'put ''PTAsbT0wLEE9MCx3PTAsYj0wO2U6ZG97aWYoMHxXeChsLGYpKXtmb3IobT0wfHZyKGY8PDMpLGw9MDsoMHxsKTwoMHxmKTspe2ZvcihwPTA7KDB8cCkhPSgwfGYpOylfW20rKHA8PDMpPj4zXT0wLHA9cCsxfDA7X1ttKyhsPDwzKT4+M109MSx3UCgwfGFbYysobDw8Mik+PjJdLG0sZiksbD1s''@;'; put 'put ''KzF8MH1mb3IoRnQobSksbT0wOzspe2lmKCgwfG0pPj0oMHxmKSl7bD0xO2JyZWFrIGV9Zm9yKHA9YysobTw8Mil8MCxsPTA7KDB8bCkhPSgwfG0pOyl3PStfWyhiPSgwfGFbcD4+Ml0pKyhsPDwzKXwwKT4+M10sX1tiPj4zXT0rX1soQT0oMHxhW2MrKGw8PDIpPj4yXSkrKG08PDMpfDApPj4z''@;'; put 'put ''XSxfW0E+PjNdPXcsbD1sKzF8MDttPW0rMXwwfX1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4gMHxsfShjLGYsbCstMXwwKX1mdW5jdGlvbiBNVihsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxtPSttLEF8PTAsd3w9MDt2YXIgTSxELFIsRyxwZSxnZSxPZSxiPTAsaz0wLHE9MCxiZT0w''@;'; put 'put ''O2ZvcihPZT1sZSxsZT1sZSsxNnwwLE09T2UscGU9MHxRbihxPShwfD0wKTw8MyksZ2U9MHxRbihxKSxEPTB8UW4ocSksUj0wfFFuKHEpLEc9MHxRbihxKSx6VihwLGYscT0wfFFuKHEpKSx3PDwyND4+MjQmJihhOChwLHEpLGE4KHAsYykpLCQzKGwscCxjLFIpLEpEKHAscSxSLHBlKSx6Vihw''@;'; put 'put ''LHBlLGdlKSx3PUErLTF8MCxmPTAsYj0rdnAocCxwZSxwZSk7Oyl7aWYoKDB8Zik+PSgwfEEpKXtmPTA7YnJlYWt9aWYoISgrcTMocCxwZSk+bSkpe2Y9MDticmVha31pZigkMyhsLHAsZ2UsRCksMD09KGs9K3ZwKHAsZ2UsRCkpKXtmPTA7YnJlYWt9aWYoankocCxnZSxrPWIvayxHKSxWayhw''@;'; put 'put ''LGMsRyxjKSwoMHxmKTwoMHx3KSl7aWYoankocCxELGssRCksSkQocCxwZSxELHBlKSxrPSt2cChwLHBlLHBlKSwwPT1iKXtiZT05O2JyZWFrfWp5KHAsZ2Usay9iLGdlKSxWayhwLHBlLGdlLGdlKSxiPWt9Zj1mKzF8MH1yZXR1cm4gOT09KDB8YmUpJiYoJHIoMSw5MzI0MixNKSxmPTEpLEZ0''@;'; put 'put ''KHBlKSxGdChnZSksRnQoRCksRnQoUiksRnQoRyksRnQocSksbGU9T2UsMHxmfWZ1bmN0aW9uIE9rKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxtPSttLEF8PTA7dmFyIGssTSxSLEcscSxnZSx3PTAsYj0wLEQ9MCxwZT0wO2ZvcihnZT1sZSxsZT1sZSsxNnwwLE09Z2UsUj0wfHZyKEQ9''@;'; put 'put ''KHB8PTApPDwyKSxHPTB8dnIoRCkscT0wfHZyKEQpLEQ9MHx2cihEKSxsOChwLGMpLGw4KHAsZiksZWQobCxwLGMsRCksbDgocCxEKSxmdW5jdGlvbiBMMmUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylqbltwKyhtPDwyKT4+''@;'; put 'put ''Ml09K2puW2MrKG08PDIpPj4yXS0ram5bZisobTw8Mik+PjJdLG09bSsxfDB9KHAsZixELFIpLHVLKHAsUixHKSxrPUErLTF8MCxmPTAsdz0rWDcocCxSLFIpOzspe2lmKCgwfGYpPj0oMHxBKSl7Zj0wO2JyZWFrfWlmKCEoK08yZShwLFIpPm0pKXtmPTA7YnJlYWt9aWYobDgocCxHKSxsOChw''@;'; put 'put ''LGMpLGw4KHAsUiksZWQobCxwLEcscSksbDgocCxxKSwwPT0oYj0rWDcocCxHLHEpKSl7Zj0wO2JyZWFrfWlmKEtEKHAsYyxiPXcvYixHKSwoMHxmKTwoMHxrKSl7aWYoS0QocCxSLC1iLHEpLGI9K1g3KHAsUixSKSwwPT13KXtwZT03O2JyZWFrfXNLKHAsRyxiL3csRyksWEQocCxSLEcsRyks''@;'; put 'put ''dz1ifWY9ZisxfDB9cmV0dXJuIDc9PSgwfHBlKSYmKCRyKDEsOTMyNDIsTSksZj0xKSxGdChSKSxGdChHKSxGdChxKSxGdChEKSxsZT1nZSwwfGZ9ZnVuY3Rpb24gQlgobCxjKXtjfD0wO3ZhciBtLHcsayxNLGY9MCxwPTAsQT0wLGI9MDtmb3IoTT1sZSxsZT1sZSs0OHwwLG09TSsyNHwwLEE9''@;'; put 'put ''TSsxMnwwLGY9TSxrPTB8UW4oNDgqKHc9MHxHbyhsfD0wKSl8MCksVzcoZixsKSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGY9MHxEdChsKSxwPWs7ZjspYVttPj4yXT1hW0E+PjJdLGFbbSs0Pj4yXT1hW0ErND4+Ml0sYVttKzg+PjJd''@;'; put 'put ''PWFbQSs4Pj4yXSxQWChmLHAsbSksZj0wfHp0KGwsZikscD1wKzQ4fDA7ZTpkb3tpZigwfEVWKGssdykpe3N3aXRjaCgwfGMpe2Nhc2UgOTppOChsLGssdyw3MCwxKSxvOChsLGssdyw3MSwxKSxmPTAscD1rO2JyZWFrO2Nhc2UgMTA6bzgobCxrLHcsNzEsMSksaTgobCxrLHcsNzAsMSksZj0w''@;'; put 'put ''LHA9azticmVhaztjYXNlIDc6aTgobCxrLHcsNzIsMSksbzgobCxrLHcsNzEsMSksYj05O2JyZWFrO2Nhc2UgODpiPTk7YnJlYWs7Y2FzZSAxMzpiPTEwO2JyZWFrO2Nhc2UgMTQ6bzgobCxrLHcsNzEsMCksaTgobCxrLHcsNzAsMCksZj0wLHA9azticmVhaztjYXNlIDEyOm84KGwsayx3LDcz''@;'; put 'put ''LDApLGk4KGwsayx3LDcwLDApLGY9MCxwPWs7YnJlYWs7ZGVmYXVsdDppOChsLGssdyw3MiwwKSxvOChsLGssdyw3MSwwKSxmPTAscD1rfWZvcig5PT0oMHxiKSYmKG84KGwsayx3LDczLDEpLGk4KGwsayx3LDcwLDEpLGI9MTApLDEwPT0oMHxiKSYmKGk4KGwsayx3LDcwLDApLG84KGwsayx3''@;'; put 'put ''LDcxLDApLGY9MCxwPWspOzspe2lmKCgwfGYpPj0oMHx3KSl7Zj0xO2JyZWFrIGV9QT0wfGFbcCsxNj4+Ml0sX1soYj0wfGFbMTMyKygwfGFbMTYrKDB8YVtwKzIwPj4yXSk+PjJdKT4+Ml0pPj4zXT0uMDAxMzg4ODg4ODg4ODg4ODg4NyorKDB8YVtwKzEyPj4yXSksX1tiKzg+PjNdPS4wMDEz''@;'; put 'put ''ODg4ODg4ODg4ODg4ODg3KisoMHxBKSxmPWYrMXwwLHA9cCs0OHwwfX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gRnQoayksbGU9TSwwfGZ9ZnVuY3Rpb24gUFgobCxjLGYpe3ZhciBBLHA9MCxtPTAsdz0wLGI9MCxrPTA7QT1+figoYj03MjAqK19bKHc9MHxhWzEzMisocD0wfGFbMTYrKGx8''@;'; put 'put ''PTApPj4yXSk+PjJdKT4+M10pKyhiPj0wPy41Oi0uNSkpLHc9fn4oKGI9NzIwKitfW3crOD4+M10pKyhiPj0wPy41Oi0uNSkpLDB8ZmVbOCsoZnw9MCk+PjBdPyhtPX5+KDEwKigram5bZj4+Ml0rICsoMHx+figoYj0zNiorX1twKzMyPj4zXSkrKGI+PTA/LjU6LS41KSkpKSkscD1+figxMCoo''@;'; put 'put ''K2puW2YrND4+Ml0rICsoMHx+figoaz0zNiorX1twKzQwPj4zXSkrKGs+PTA/LjU6LS41KSkpKSkpOihtPX5+KChrPTcyKitfW3ArMzI+PjNdKig1KitqbltmPj4yXSkpKyhrPj0wPy41Oi0uNSkpLHA9fn4oKGI9NzIqK19bcCs0MD4+M10qKDUqK2puW2YrND4+Ml0pKSsoYj49MD8uNTotLjUp''@;'; put 'put ''KSksYVsxMisoY3w9MCk+PjJdPUEsYVtjKzE2Pj4yXT13LGFbYysyMD4+Ml09bCxhW2MrMzI+PjJdPUEtbSxhW2MrMzY+PjJdPXctcCxhW2MrNDA+PjJdPW0rQSxhW2MrNDQ+PjJdPXArd31mdW5jdGlvbiBFVihsLGMpe2x8PTA7dmFyIE0sZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO009''@;'; put 'put ''KGN8PTApLTF8MCxmPTA7ZTpmb3IoOzspe2lmKCgwfGYpPj0oMHxNKSl7bD0wO2JyZWFrfWZvcihBPWwrMzJ8MCx3PWwrNDB8MCxiPWwrMzZ8MCxtPWwrNDR8MCxsPWs9bCs0OHwwLHA9Zj1mKzF8MDs7KXtpZigoMHxwKT49KDB8Yykpe2w9aztjb250aW51ZSBlfWlmKCgwfGFbQT4+Ml0pPD0o''@;'; put 'put ''MHxhW2wrNDA+PjJdKSYmKDB8YVtsKzMyPj4yXSk8PSgwfGFbdz4+Ml0pJiYoMHxhW2I+PjJdKTw9KDB8YVtsKzQ0Pj4yXSkmJigwfGFbbCszNj4+Ml0pPD0oMHxhW20+PjJdKSl7bD0xO2JyZWFrIGV9bD1sKzQ4fDAscD1wKzF8MH19cmV0dXJuIDB8bH1mdW5jdGlvbiBpOChsLGMsZixwLG0p''@;'; put 'put ''e2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixBPTAsdz0wO2ZvcihiPTB8aXMoMTgxNjgsMHxhWzQ1ODRdKSxBPWMsdz0wOyEoKDB8dyk+PSgwfGYpKTspYVtBKzg+PjJdPWFbQSsxMj4+Ml0sbWlbNjMmYVtiPj4yXV0oYixBLDEpLEE9QSs0OHwwLHc9dysxfDA7Zm9yKGs3KHc9bT8w''@;'; put 'put ''fG0yZShiLHAsNzQpOjB8VHMobCxiLHAsNzQpLDIsMjE0NzQ4MzY0NyksQT0wOyEoKDB8QSk+PSgwfGYpKTspcD0obD0wfGFbMjMyKygwfGFbMTYrKDB8YVtjKzI0Pj4yXSk+PjJdKT4+Ml0pLSgwfGFbKG09YysxMnwwKT4+Ml0pfDAsYVttPj4yXT1sLGFbKG09YyszMnwwKT4+Ml09KDB8YVtt''@;'; put 'put ''Pj4yXSkrcCxhWyhtPWMrNDB8MCk+PjJdPSgwfGFbbT4+Ml0pK3AsYz1jKzQ4fDAsQT1BKzF8MDtkZyh3KSxObChiKX1mdW5jdGlvbiBvOChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixBPTAsdz0wO2ZvcihiPTB8aXMoMTgxNjgsMHxhWzQ1ODRdKSxBPWMsdz0w''@;'; put 'put ''OyEoKDB8dyk+PSgwfGYpKTspYVtBKzg+PjJdPWFbQSsxNj4+Ml0sbWlbNjMmYVtiPj4yXV0oYixBLDEpLEE9QSs0OHwwLHc9dysxfDA7Zm9yKGs3KHc9bT8wfG0yZShiLHAsNzUpOjB8VHMobCxiLHAsNzUpLDIsMjE0NzQ4MzY0NyksQT0wOyEoKDB8QSk+PSgwfGYpKTspcD0obD0wfGFbMjMy''@;'; put 'put ''KygwfGFbMTYrKDB8YVtjKzI0Pj4yXSk+PjJdKT4+Ml0pLSgwfGFbKG09YysxNnwwKT4+Ml0pfDAsYVttPj4yXT1sLGFbKG09YyszNnwwKT4+Ml09KDB8YVttPj4yXSkrcCxhWyhtPWMrNDR8MCk+PjJdPSgwfGFbbT4+Ml0pK3AsYz1jKzQ4fDAsQT1BKzF8MDtkZyh3KSxObChiKX1mdW5jdGlv''@;'; put 'put ''biBGRChsLGMpe3JldHVybiAwfCgoMHxhWzEyKyhsfD0wKT4+Ml0pLSgwfGFbbCs0Pj4yXSkrKDB8YVsxMisoY3w9MCk+PjJdKS0oMHxhW2MrND4+Ml0pfDApLzJ9ZnVuY3Rpb24gSFgobCxjKXtyZXR1cm4gMHwoKDB8YVs4KyhsfD0wKT4+Ml0pLSgwfGFbbD4+Ml0pKygwfGFbOCsoY3w9MCk+''@;'; put 'put ''PjJdKS0oMHxhW2M+PjJdKXwwKS8yfWZ1bmN0aW9uIG0yZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIExlLFJlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MDtmb3IoUmU9bGUsbGU9bGUrMTZ8MCxmZVsoT2U9UmUpPj4w''@;'; put 'put ''XT0wfGZlWzE4NTg4XSxmZVtPZSsxPj4wXT0wfGZlWzE4NTg5XSxmZVtPZSsyPj4wXT0wfGZlWzE4NTkwXSxmZVtPZSszPj4wXT0wfGZlWzE4NTkxXSxoMChMZT0wfG9jKDkzNTE1LE9lLDApLDEzNzQ4MywyODAsMSkscD0wfHMwKGwpLG09LTIxNDc0ODM2NDcsYmU9MDtwOylnZT1iZSsoKDB8''@;'; put 'put ''bSkhPSgwfChwZT0wfGFbcCs4Pj4yXSkpJjEpfDAscD0wfGFbcD4+Ml0sbT1wZSxiZT1nZTtmb3IocGU9TGUrMTZ8MCxnZT0oYmU8PDMpLTR8MCxNPTAsdz0wLHA9MCxtPTAsaz0wLHE9MHxzMChsKSxBPS0yMTQ3NDgzNjQ3O3E7KSgwfEEpIT0oMHwoRz0wfGFbcSs4Pj4yXSkpPyhoMChSPTB8''@;'; put 'put ''R3IoTGUsMHx0aSgwfGFbcSsyMD4+Ml0pLDEpLDEzNzQ0NywzMDQsMSksYVsxMTIrKHA9MHxhWyhEPVIrMTZ8MCk+PjJdKT4+Ml09cSxtPyhhWzE2NCsoMHxhW00rMTY+PjJdKT4+Ml09UixNPW0pOihhWzE5MisoMHxhW3BlPj4yXSk+PjJdPVIsTT1SKSxhW3ArMTc2Pj4yXT0wLEE9MHx2cigo''@;'; put 'put ''Yj13KzF8MCk8PDIpLGFbMTcyKygwfGFbRD4+Ml0pPj4yXT1BLGs/KGFbMTg0KygwfGFbKEE9aysxNnwwKT4+Ml0pPj4yXT0wLHc9MHx2cigoMHxrKT09KDB8TSk/Z2U6YmUtdzw8MiksYVsxODArKDB8YVtBPj4yXSk+PjJdPXcsaDAodz0wfEthKExlLGssUiwwLDEpLDEzNzQ2MCwxNzYsMSks''@;'; put 'put ''aXRbMTcwKyhwPTB8YVt3KzE2Pj4yXSk+PjFdPTEwLGFbcCsxNTY+PjJdPTEscD0obT0wfGFbMTgwKyhwPTB8YVtBPj4yXSk+PjJdKT8wfFYwKG0sOCsoYVtwKzE4ND4+Ml08PDIpfDApOjB8UW4oOCsoYVtwKzE4ND4+Ml08PDIpfDApLGFbMTgwKyhrPTB8YVtBPj4yXSk+PjJdPXAsYVsoaz1r''@;'; put 'put ''KzE4NHwwKT4+Ml09MSsobT0wfGFbaz4+Ml0pLGFbcCsobTw8Mik+PjJdPXcsYVsoMHxhWzE4MCsocD0wfGFbQT4+Ml0pPj4yXSkrKGFbcCsxODQ+PjJdPDwyKT4+Ml09MCxwPShtPTB8YVsxNzIrKHA9MHxhW0Q+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW3ArMTc2Pj4yXTw8Mil8MCk6MHxRbig4''@;'; put 'put ''KyhhW3ArMTc2Pj4yXTw8Mil8MCksYVsxNzIrKG09MHxhW0Q+PjJdKT4+Ml09cCxhWyhtPW0rMTc2fDApPj4yXT0xKyhrPTB8YVttPj4yXSksYVtwKyhrPDwyKT4+Ml09dyxhWygwfGFbMTcyKyh3PTB8YVtEPj4yXSk+PjJdKSsoYVt3KzE3Nj4+Ml08PDIpPj4yXT0wLHc9YixiPVIsaz1SLHA9''@;'; put 'put ''UixtPU0sQT1HKToodz1iLGI9UixrPVIscD1SLG09TSxBPUcpKTooYj1wLHA9TSksYVtxKzI0Pj4yXT1iLE09cCxwPWIscT0wfGFbcT4+Ml07Zm9yKGFbMTg0KygwfGFbKGs9aysxNnwwKT4+Ml0pPj4yXT0wLHA9MHx2cig0KSxhWzE4MCsoMHxhW2s+PjJdKT4+Ml09cCxmZVtPZT4+MF09MHxm''@;'; put 'put ''ZVsxODU4OF0sZmVbT2UrMT4+MF09MHxmZVsxODU4OV0sZmVbT2UrMj4+MF09MHxmZVsxODU5MF0sZmVbT2UrMz4+MF09MHxmZVsxODU5MV0saz0wfG9jKDkzNTYyLE9lLDApLHA9MHxzMChsKTtwOyloMChPZT0wfEdyKGssMHx0aSgwfGFbcCsyMD4+Ml0pLDEpLDEzNzQ0NywzMDQsMSksYVtw''@;'; put 'put ''KzI4Pj4yXT1PZSxhWzExMisoMHxhW09lKzE2Pj4yXSk+PjJdPXAscD0wfGFbcD4+Ml07cD0wLGI9MHxzMChsKSxtPS0yMTQ3NDgzNjQ3O2U6Zm9yKDtiOyl7dz0wfGFbYis4Pj4yXTt0OmRve2lmKCgwfG0pPT0oMHx3KSl3PW07ZWxzZSBmb3IocD1iOzspe2lmKCEocD0wfGFbcD4+Ml0pKWJy''@;'; put 'put ''ZWFrIGU7aWYoKDB8YVtwKzg+PjJdKSE9KDB8dykpYnJlYWsgdH19d2hpbGUoMCk7Zm9yKEE9YisyOHwwLG09cDttOykwfEJpWzEyNyZjXShiLG0pJiZLYShrLDB8YVtBPj4yXSwwfGFbbSsyOD4+Ml0sMCwxKSxtPTB8YVttPj4yXTtiPTB8YVtiPj4yXSxtPXd9cmV0dXJuIGZ1bmN0aW9uIHhW''@;'; put 'put ''KGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MDtmb3Ioaz0wfER0KGx8PTApO2s7KXtmb3IoRD0wfGFbMjQrKFI9MHxhWzExMisoMHxhW2srMTY+PjJdKT4+Ml0pPj4yXSxSPVIrMzJ8MCxHPUQrMTZ8MCxNPTB8dzAo''@;'; put 'put ''bCxrKTtNOylxPTB8QmlbMTI3JmZdKFIsMzIrKEE9MHxhWzExMisoMHxhWzE2KygwfGFbKDI9PSgzJmFbTT4+Ml18MCk/TTpNKy00OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKXwwKSxoMCh3PTB8S2EoYyxELEE9MHxhW0ErMjQ+PjJdLDAsMSksMTM3NDYwLDE3NiwxKSxhWzE1NisocD0wfGFbKGI9''@;'; put 'put ''dysxNnwwKT4+Ml0pPj4yXT0xLCgwfHEpPig2NTUzNSYobT0wfGl0W3ArMTcwPj4xXSl8MCkmJihtPDwxNj4+MTZ8fChwPShtPTB8YVsxODArKHA9MHxhW0c+PjJdKT4+Ml0pPzB8VjAobSw4KyhhW3ArMTg0Pj4yXTw8Mil8MCk6MHxRbig4KyhhW3ArMTg0Pj4yXTw8Mil8MCksYVsxODArKHBl''@;'; put 'put ''PTB8YVtHPj4yXSk+PjJdPXAsYVsocGU9cGUrMTg0fDApPj4yXT0xKyhtPTB8YVtwZT4+Ml0pLGFbcCsobTw8Mik+PjJdPXcsYVsoMHxhWzE4MCsocD0wfGFbRz4+Ml0pPj4yXSkrKGFbcCsxODQ+PjJdPDwyKT4+Ml09MCxwPShtPTB8YVsxNzIrKHA9MHxhWyhBPUErMTZ8MCk+PjJdKT4+Ml0p''@;'; put 'put ''PzB8VjAobSw4KyhhW3ArMTc2Pj4yXTw8Mil8MCk6MHxRbig4KyhhW3ArMTc2Pj4yXTw8Mil8MCksYVsxNzIrKG09MHxhW0E+PjJdKT4+Ml09cCxhWyhtPW0rMTc2fDApPj4yXT0xKyhwZT0wfGFbbT4+Ml0pLGFbcCsocGU8PDIpPj4yXT13LGFbKDB8YVsxNzIrKHA9MHxhW0E+PjJdKT4+Ml0p''@;'; put 'put ''KyhhW3ArMTc2Pj4yXTw8Mik+PjJdPTAscD0wfGFbYj4+Ml0pLGl0W3ArMTcwPj4xXT1xKSxNPTB8UzAobCxNKTtrPTB8enQobCxrKX19KGssTGUsZiksQzEoayksbGU9UmUsMHxMZX1mdW5jdGlvbiBUcyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBwZSxtPTAsQT0wLHc9MCxi''@;'; put 'put ''PTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAsZ2U9MDtmb3IocGU9bGUsbGU9bGUrMTZ8MCxmZVsocT1wZSk+PjBdPTB8ZmVbMTg1ODhdLGZlW3ErMT4+MF09MHxmZVsxODU4OV0sZmVbcSsyPj4wXT0wfGZlWzE4NTkwXSxmZVtxKzM+PjBdPTB8ZmVbMTg1OTFdLGgwKHE9MHxvYyg5MzUxNSxx''@;'; put 'put ''LDApLDEzNzQ4MywyODAsMSksYj1xKzE2fDAsbT0wfHMwKGMpLEE9MDttOyloMCh3PTB8R3IocSwwfHRpKDB8YVttKzIwPj4yXSksMSksMTM3NDQ3LDMwNCwxKSxhWzExMisoTT0wfGFbKFI9dysxNnwwKT4+Ml0pPj4yXT1tLGFbbSsyND4+Ml09dyxhW00rMTc2Pj4yXT0wLE09MHx2cig0KSxh''@;'; put 'put ''WzE3MisoRD0wfGFbUj4+Ml0pPj4yXT1NLGFbRCsxODQ+PjJdPTAsRD0wfHZyKDQpLGFbMTgwKygwfGFbUj4+Ml0pPj4yXT1ELEE/YVsxNjQrKDB8YVtBKzE2Pj4yXSk+PjJdPXc6YVsxOTIrKDB8YVtiPj4yXSk+PjJdPXcsbT0wfGFbbT4+Ml0sQT13O2s9MHxzMChjKTtlOmZvcig7azspe2Zv''@;'; put 'put ''cihNPWsrMzJ8MCxEPWsrMjR8MCxSPWsrMjB8MCxtPWs7bT0wfGFbbT4+Ml07KWlmKDB8QmlbMTI3JmZdKGssbSkpe2lmKEE9MHxCaVsxMjcmcF0oTSxtKzMyfDApLGgwKHc9MHxLYShxLDB8YVtEPj4yXSwwfGFbbSsyND4+Ml0sMCwxKSwxMzc0NjAsMTc2LDEpLCgwfEEpPj02NTUzNil7Rz0x''@;'; put 'put ''MzticmVhayBlfWl0WzE3MCsoZ2U9MHxhWyhiPXcrMTZ8MCk+PjJdKT4+MV09QSxhW2dlKzE1Nj4+Ml09MSwwfHcmJjB8S2EobCwwfGFbUj4+Ml0sMHxhW20rMjA+PjJdLDAsMCkmJihhWzE1NisoMHxhW2I+PjJdKT4+Ml09MTAwKX1rPTB8YVtrPj4yXX1mb3IoMTM9PSgwfEcpJiZQcig5MzUx''@;'; put 'put ''OCw5MzUzNCwyNTQsOTM1NDcpLGs9MHxzMChjKTtrOyl7Zm9yKE09MTYrKGI9MHxhW2srMjQ+PjJdKXwwLGI9MHx3MChxLGIpO2I7KW09KEE9MHxhWzE4MCsobT0wfGFbTT4+Ml0pPj4yXSk/MHxWMChBLDgrKGFbbSsxODQ+PjJdPDwyKXwwKTowfFFuKDgrKGFbbSsxODQ+PjJdPDwyKXwwKSxh''@;'; put 'put ''WzE4MCsoQT0wfGFbTT4+Ml0pPj4yXT1tLGFbKEE9QSsxODR8MCk+PjJdPTErKHc9MHxhW0E+PjJdKSxhW20rKHc8PDIpPj4yXT1iLGFbKDB8YVsxODArKHc9MHxhW00+PjJdKT4+Ml0pKyhhW3crMTg0Pj4yXTw8Mik+PjJdPTAsdz1iKy00OHwwLG09KEE9MHxhWzE3MisobT0wfGFbMTYrKDB8''@;'; put 'put ''YVsoMj09KDMmYVtiPj4yXXwwKT9iOncpKzQwPj4yXSk+PjJdKT4+Ml0pPzB8VjAoQSw4KyhhW20rMTc2Pj4yXTw8Mil8MCk6MHxRbig4KyhhW20rMTc2Pj4yXTw8Mil8MCksYVsxNzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW2I+PjJdfDApP2I6dykrNDA+PjJdKT4+Ml0pPj4yXT1tLEc9MHxh''@;'; put 'put ''WzE3MisocD0wfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOncpKzQwPj4yXSk+PjJdKT4+Ml0sYVsocD1wKzE3NnwwKT4+Ml09MSsoZ2U9MHxhW3A+PjJdKSxhW0crKGdlPDwyKT4+Ml09YixhWygwfGFbMTcyKyhnZT0wfGFbMTYrKDB8YVsoMj09KDMmYVtiPj4yXXwwKT9iOncpKzQw''@;'; put 'put ''Pj4yXSk+PjJdKT4+Ml0pKyhhW2dlKzE3Nj4+Ml08PDIpPj4yXT0wLGI9MHxTMChxLGIpO2s9MHxhW2s+PjJdfXJldHVybiBsZT1wZSwwfHF9ZnVuY3Rpb24gZGcobCl7dmFyIGM9MCxmPTAscD0wLG09MDtmb3IobT0wfER0KGx8PTApO207KShwPTB8YVsxNzIrKGM9MHxhWyhmPW0rMTZ8MCk+''@;'; put 'put ''PjJdKT4+Ml0pJiYoRnQocCksYz0wfGFbZj4+Ml0pLDB8KGM9MHxhW2MrMTgwPj4yXSkmJkZ0KGMpLG09MHx6dChsLG0pO0MxKGwpfWZ1bmN0aW9uIFRWKGwsYyl7Y3w9MDt2YXIgayxNLEcscGUsT2UsTGUsUmUsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLFI9MCxiZT0wLEhlPTAsVmU9''@;'; put 'put ''MDtmb3IoUmU9bGUsbGU9bGUrNjR8MCxHPVJlKzUyfDAsUj1SZSs0MHwwLHBlPVJlLExlPTB8UW4oNzIqKE9lPTB8R28obHw9MCkpfDApLFc3KFIsbCksdz0ram5bUj4+Ml0sYj0ram5bUis0Pj4yXSxrPS41Kih3PShSPTAhPSgwfGZlW1IrOD4+MF0pKT8uMDEzODg4ODg4ODg4ODg4ODg4Knc6''@;'; put 'put ''dyksTT0uNSooYj1SPy4wMTM4ODg4ODg4ODg4ODg4ODgqYjpiKSxmPUxlLHA9MHxEdChsKTtwOyltPStfWzMyKyhEPTB8YVtwKzE2Pj4yXSk+PjNdLFI/KEE9LjUqK19bRCs0MD4+M10rYixtPS41Km0rdyk6KEE9TSorX1tEKzQwPj4zXSxtKj1rKSxfW2Y+PjNdPVZlPStfWyhEPTB8YVtEKzEz''@;'; put 'put ''Mj4+Ml0pPj4zXSxfW2YrOD4+M109SGU9K19bRCs4Pj4zXSxfW2YrMTY+PjNdPVZlLW0sX1tmKzI0Pj4zXT1IZS1BLF9bZiszMj4+M109VmUrbSxfW2YrNDA+PjNdPUhlK0EsX1tmKzQ4Pj4zXT1tLF9bZis1Nj4+M109QSxhW2YrNjQ+PjJdPXAsZj1mKzcyfDAscD0wfHp0KGwscCk7ZG97aWYo''@;'; put 'put ''KDB8Yyk8MCl7aWYoMD09KG09K0lWKExlLE9lKSkpe0Z0KExlKSxmPTA7YnJlYWt9dz1tLEE9bSxiZT0xOX1lbHNle2lmKHA9MHx2MmUoTGUsT2UsRyksIShmPTB8YVtHPj4yXSkpe0Z0KHApLEZ0KExlKSxmPTA7YnJlYWt9Yz9tPUE9K245ZShwLGYpOihyOWUocGUscCxmKSxtPStfW3BlPj4z''@;'; put 'put ''XSxBPStfW3BlKzg+PjNdKSxGdChwKSx3PW0sYmU9MTl9fXdoaWxlKDApO2lmKDE5PT0oMHxiZSkpe2ZvcihmPTAscD1MZTshKCgwfGYpPj0oMHxPZSkpOylfWyhiZT0wfGFbMTMyKygwfGFbMTYrKDB8YVtwKzY0Pj4yXSk+PjJdKT4+Ml0pPj4zXT0rX1twPj4zXSp3LF9bYmUrOD4+M109K19b''@;'; put 'put ''cCs4Pj4zXSpBLGY9ZisxfDAscD1wKzcyfDA7RnQoTGUpLGY9MX1yZXR1cm4gbGU9UmUsMHxmfWZ1bmN0aW9uIElWKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MDtmPTAscD0wO2U6Zm9yKDsh''@;'; put 'put ''KCgwfHApPj0oMHxjKSk7KWZvcihiZT1sKzcyfDAscD1wKzF8MCxSPWwrMTZ8MCxHPWwrOHwwLHE9bCs1NnwwLHBlPWwrNDh8MCxnZT1sKzMyfDAsTT1sKzI0fDAsRD1sKzQwfDAsYj1wLGs9YmU7Oyl7aWYoKDB8Yik+PSgwfGMpKXtsPWJlO2NvbnRpbnVlIGV9aWYoK19bUj4+M108PStfW2sr''@;'; put 'put ''MzI+PjNdJiYrX1trKzE2Pj4zXTw9K19bZ2U+PjNdJiYrX1tNPj4zXTw9K19bays0MD4+M10mJitfW2srMjQ+PjNdPD0rX1tEPj4zXSl7Zj0wO2JyZWFrIGV9KG09K19bbD4+M10pPT0oQT0rX1trPj4zXSk/dz15czoodz0rZW8oKyhtLUEpKSx3PSgrX1trKzQ4Pj4zXSsgK19bcGU+PjNdKS93''@;'; put 'put ''KSwobT0rX1tHPj4zXSk9PShBPStfW2srOD4+M10pP209eXM6KG09K2VvKCsobS1BKSksbT0oK19bays1Nj4+M10rICtfW3E+PjNdKS9tKSxiPWIrMXwwLGs9ays3MnwwLGY9KHc9bTx3P206dyk+Zj93OmZ9cmV0dXJuK2Z9ZnVuY3Rpb24gdjJlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIHA9MCxt''@;'; put 'put ''PTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MDtEPTAscD0wLFI9az0wfFFuKDE2KygoY3w9MCk8PDQpfDApLEc9Yyx3PWs7ZTpmb3IoOyEoKDB8cCk+PSgwfGMpKTspZm9yKHFlPWwr''@;'; put 'put ''NzJ8MCxwPXArMXwwLFZlPWwrMTZ8MCxnZT1sKzMyfDAsYmU9bCsyNHwwLE9lPWwrNDB8MCxMZT1sKzh8MCxSZT1sKzU2fDAsSGU9bCs0OHwwLHE9cCxwZT1xZSxNPXc7Oyl7aWYoKDB8cSk9PSgwfGMpKXtsPXFlLHc9TTtjb250aW51ZSBlfStfW1ZlPj4zXTw9K19bcGUrMzI+PjNdJiYrX1tw''@;'; put 'put ''ZSsxNj4+M108PStfW2dlPj4zXSYmK19bYmU+PjNdPD0rX1twZSs0MD4+M10mJitfW3BlKzI0Pj4zXTw9K19bT2U+PjNdPyh3PUcrY3wwLCgwfEQpPT0oMHxHKT8oUj1rPTB8VjAoaywxNisodzw8NCl8MCksTT1rKTp3PUcsKG09K19bbD4+M10pIT0oQT0rX1twZT4+M10pPyhtPSgrX1twZSs0''@;'; put 'put ''OD4+M10rICtfW0hlPj4zXSkvK2VvKCsobS1BKSkpPDEmJihtPTEscnQ9MTMpOihtPXlzLHJ0PTEzKSwxMz09KDB8cnQpJiYocnQ9MCksKEE9K19bTGU+PjNdKSE9KGI9K19bcGUrOD4+M10pPyhBPSgrX1twZSs1Nj4+M10rICtfW1JlPj4zXSkvK2VvKCsoQS1iKSkpPDEmJihBPTEscnQ9MTYp''@;'; put 'put ''OihBPXlzLHJ0PTE2KSwxNj09KDB8cnQpJiYocnQ9MCksX1tSKygoRD1EKzF8MCk8PDQpPj4zXT1tLF9bUisoRDw8NCkrOD4+M109QSk6dz1HLHE9cSsxfDAscGU9cGUrNzJ8MCxHPXd9cmV0dXJuIHJ0PTB8VjAodywxNisoRDw8NCl8MCksYVtmPj4yXT1ELDB8cnR9ZnVuY3Rpb24gbjllKGws''@;'; put 'put ''Yyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihwPTEsbT0wO2Y9bCsxNnwwLCEoKDB8cCk+KDB8YykpOylwPXArMXwwLG09KEE9KHc9K19bZj4+M10pPChBPStfW2wrMjQ+PjNdKT93OkEpPm0/QTptLGw9ZjtyZXR1cm4rbX1mdW5jdGlvbiByOWUobCxjLGYpe2x8PTAs''@;'; put 'put ''Znw9MDt2YXIgdyxwPTAsbT0wLEE9MCxiPTA7Zm9yKF9bKGN8PTApPj4zXT0xLF9bYys4Pj4zXT15cyx4MShjKzE2fDAsZiwxNiw3Niksdz0wfFFuKDE2KyhmPDw0KXwwKSxfW3crKGY8PDQpPj4zXT0rX1tjKyhmPDw0KT4+M10sQT1mLHA9MTs7KXtpZihfW3crKEE8PDQpKzg+PjNdPXAsbT1B''@;'; put 'put ''Ky0xfDAsKDB8QSk8PTApe3A9eXMsbT0wLEE9MDticmVha31fW3crKG08PDQpPj4zXT0rX1tjKyhtPDw0KT4+M10sYj0rX1soK19bYysoQTw8NCkrOD4+M10+cD9jOncpKyhBPDw0KSs4Pj4zXSxBPW0scD1ifWZvcig7ISgoMHxBKT4oMHxmKSk7KXA9KGM9KGI9K19bdysoQTw8NCkrOD4+M10q''@;'; put 'put ''K19bdysoQTw8NCk+PjNdKTxwKT9iOnAsbT1jP0E6bSxBPUErMXwwO2lmKHA8eXMpcmV0dXJuIGI9K19bdysobTw8NCkrOD4+M10sX1tsPj4zXT0rX1t3KyhtPDw0KT4+M10sdm9pZChfW2wrOD4+M109Yik7UHIoOTM1OTYsOTM1MzQsODMyLDkzNjE2KX1mdW5jdGlvbiBvOWUobCxjLGYpe3Jl''@;'; put 'put ''dHVybiBjfD0wLGZ8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKGM9Zik+PjJdPTkzNjMxLCRyKDEsOTM2ODEsYyksbGU9ZiwwfWZ1bmN0aW9uIE5YKGwpe3ZhciBjPTA7MHwobHw9MCkmJigwfChjPTB8YVtsKzQ+PjJdKSYmRnQoYyksMHwoYz0wfGFbbCs4Pj4yXSkmJkZ0KGMpLDB8KGM9MHxhW2wr''@;'; put 'put ''MTY+PjJdKSYmRnQoYyksRnQobCkpfWZ1bmN0aW9uIFJ5KGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBrLE0sRCxSLG09MCxBPTAsdz0wLGI9MDtmb3IoUj1sZSxsZT1sZSsxNnwwLEQ9Uis4fDAsTT1SLGs9MHxVYSgwfGFbNDY4NDldLChmfD0wKTw8MiksYVs0Njg0OV09ayxtPTA7ISgo''@;'; put 'put ''MHxtKT49KDB8ZikpOylhW3ArKG08PDIpPj4yXT0yMTQ3NDgzNjQ3LG09bSsxfDA7Zm9yKGFbcCsobDw8Mik+PjJdPTAsQT1jKygyMCpsfDApfDAsdz1jKygyMCpsfDApKzh8MCxiPWMrKDIwKmx8MCkrNHwwLG09MTshKCgwfG0pPj0oMHxhW0E+PjJdKSk7KWFbcCsoYVsoMHxhW2I+PjJdKSso''@;'; put 'put ''bTw8Mik+PjJdPDwyKT4+Ml09fn4ram5bKDB8YVt3Pj4yXSkrKG08PDIpPj4yXSxtPW0rMXwwO2ZvcihmdW5jdGlvbiBBMmUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBiLGssQT0wLHc9MDtmb3IoYj0xPT0oMHwobXw9MCkpPzA6MHxRbigobTw8MiktNHwwKSxhW2w+PjJd''@;'; put 'put ''PWIsYVtsKzQ+PjJdPWs9bSstMXwwLEE9MCx3PTA7ISgoMHx3KT49KDB8bSkpOykoMHx3KSE9KDB8YykmJihhW2IrKEE8PDIpPj4yXT13LGFbZisodzw8Mik+PjJdPUEsQT1BKzF8MCksdz13KzF8MDtmb3IoQT0oMHxrKS8yfDA7ISgoMHxBKTw9LTEpOylCeShsLEEsZixwKSxBPUErLTF8MH0o''@;'; put 'put ''RCxsLGsscCxmKSx3PS0yMTQ3NDgzNjM5Ozspe2lmKCEoKDB8eTJlKEQsTSwwfGFbNDY4NDldLHApKTw8MjQ+PjI0KSl7bT0wO2JyZWFrfWlmKDIxNDc0ODM2NDc9PSgwfChsPTB8YVtwKygobT0wfGFbTT4+Ml0pPDwyKT4+Ml0pKSl7bT0wO2JyZWFrfWZvcih3PWMrKDIwKm18MCl8MCxiPWMr''@;'; put 'put ''KDIwKm18MCkrNHwwLEE9YysoMjAqbXwwKSs4fDAsbT0xOyEoKDB8bSk+PSgwfGFbdz4+Ml0pKTspdzJlKEQsMHxhWygwfGFbYj4+Ml0pKyhtPDwyKT4+Ml0sbCt+fitqblsoMHxhW0E+PjJdKSsobTw8Mik+PjJdfDAsMHxhWzQ2ODQ5XSxwKSxtPW0rMXwwO3c9bCsxMHwwfWZvcig7ISgoMHxt''@;'; put 'put ''KT49KDB8ZikpOykyMTQ3NDgzNjQ3PT0oMHxhWyhBPXArKG08PDIpfDApPj4yXSkmJihhW0E+PjJdPXcpLG09bSsxfDA7TkQoRCksbGU9Un1mdW5jdGlvbiB5MmUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQT0wO3JldHVybiAwfGFbKG09NCsobHw9MCl8MCk+PjJdPyhhW2M+PjJd''@;'; put 'put ''PWFbKEE9MHxhW2w+PjJdKT4+Ml0sYVtBPj4yXT1jPTB8YVtBKygoMHxhW20+PjJdKS0xPDwyKT4+Ml0sYVtmKyhjPDwyKT4+Ml09MCxhW20+PjJdPSgwfGFbbT4+Ml0pLTEsQnkobCwwLGYscCksbD0xKTpsPTAsMHxsfWZ1bmN0aW9uIHcyZShsLGMsZixwLG0pe2x8PTAscHw9MDt2YXIgQT0w''@;'; put 'put ''LHc9MCxiPTAsaz0wO2lmKCgwfGFbKEE9KG18PTApKygoY3w9MCk8PDIpfDApPj4yXSk+KDB8KGZ8PTApKSl7Zm9yKGI9MHxhWyhrPXArKGM8PDIpfDApPj4yXSxhW0E+PjJdPWYsQT0wfGFbbD4+Ml0sbD1iOyEoKDB8bCk8PTB8fCh3PWw+Pj4xLGI9MHxhW0ErKHc8PDIpPj4yXSwoMHxhW20r''@;'; put 'put ''KGI8PDIpPj4yXSk8PSgwfGYpKSk7KWFbQSsobDw8Mik+PjJdPWIsYVtwKyhiPDwyKT4+Ml09bCxsPXc7YVtBKyhsPDwyKT4+Ml09YyxhW2s+PjJdPWx9fWZ1bmN0aW9uIE5EKGwpezB8KGw9MHxhWyhsfD0wKT4+Ml0pJiZGdChsKX1mdW5jdGlvbiBCeShsLGMsZixwKXtjfD0wLGZ8PTAscHw9''@;'; put 'put ''MDt2YXIgYixtPTAsQT0wLHc9MCxrPTA7Zm9yKGI9NCsobHw9MCl8MDtBPTF8KG09Yzw8MSksKDB8bSk8KDB8KHc9MHxhW2I+PjJdKSkmJigwfGFbcCsoYVsoaz0wfGFbbD4+Ml0pKyhtPDwyKT4+Ml08PDIpPj4yXSk8KDB8YVtwKyhhW2srKGM8PDIpPj4yXTw8Mik+PjJdKXx8KG09YyksKDB8''@;'; put 'put ''QSk8KDB8dykmJihtPSgwfGFbcCsoYVsoaz0wfGFbbD4+Ml0pKyhBPDwyKT4+Ml08PDIpPj4yXSk8KDB8YVtwKyhhW2srKG08PDIpPj4yXTw8Mik+PjJdKT9BOm0pLCgwfG0pIT0oMHxjKTspQT0wfGFbKHc9KGs9MHxhW2w+PjJdKSsobTw8Mil8MCk+PjJdLGFbdz4+Ml09YVsoaz1rKyhjPDwy''@;'; put 'put ''KXwwKT4+Ml0sYVtrPj4yXT1BLGFbZisoYVt3Pj4yXTw8Mik+PjJdPW0sYVtmKyhhW2s+PjJdPDwyKT4+Ml09YyxjPW19ZnVuY3Rpb24gVkQobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgTSxELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihHPWxlLGxlPWxlKzE2fDAsTT1H''@;'; put 'put ''Kzh8MCxhWyhEPUcpPj4yXT0wLFI9MHxRbihmPDwyKSxtPTA7ISgoMHxtKT49KDB8ZikpOylqbltwKyhtPDwyKT4+Ml09MzQwMjgyMzQ2NjM4NTI4ODZlMjIsbT1tKzF8MDtmb3Ioam5bcCsobDw8Mik+PjJdPTAsQT0wfGFbYysoMjAqbHwwKT4+Ml0sdz1jKygyMCpsfDApKzh8MCxiPWMrKDIw''@;'; put 'put ''Kmx8MCkrNHwwLG09MTshKCgwfG0pPj0oMHxBKSk7KWFbcCsoYVsoMHxhW2I+PjJdKSsobTw8Mik+PjJdPDwyKT4+Ml09YVsoMHxhW3c+PjJdKSsobTw8Mik+PjJdLG09bSsxfDA7IWZ1bmN0aW9uIFB5KGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgYixrLEE9MCx3PTA7Zm9y''@;'; put 'put ''KGs9MHxRbigoYj0obXw9MCktMXwwKTw8MiksYVtsPj4yXT1rLGFbbCs0Pj4yXT1iLEE9MCx3PTA7ISgoMHx3KT49KDB8bSkpOykoMHx3KSE9KDB8YykmJihhW2srKEE8PDIpPj4yXT13LGFbZisodzw8Mik+PjJdPUEsQT1BKzF8MCksdz13KzF8MDtmb3IoQT0oMHxiKS8yfDA7ISgoMHxBKTw9''@;'; put 'put ''LTEpOylMVihsLEEsZixwKSxBPUErLTF8MH0oTSxsLFIscCxmKTtlOmZvcig7KDB8UmsoTSxELFIscCkpPDwyND4+MjQmJihtPTB8YVtEPj4yXSxrPStqbltwKyhtPDwyKT4+Ml0sMzQwMjgyMzQ2NjM4NTI4ODZlMjIhPWspOylmb3Iodz1jKygyMCptfDApfDAsYj1jKygyMCptfDApKzR8MCxB''@;'; put 'put ''PWMrKDIwKm18MCkrOHwwLG09MTs7KXtpZigoMHxtKT49KDB8YVt3Pj4yXSkpY29udGludWUgZTtEVihNLDB8YVsoMHxhW2I+PjJdKSsobTw8Mik+PjJdLCtqblsoMHxhW0E+PjJdKSsobTw8Mik+PjJdK2ssUixwKSxtPW0rMXwwfU5EKE0pLEZ0KFIpLGxlPUd9ZnVuY3Rpb24gUmsobCxjLGYs''@;'; put 'put ''cCl7Y3w9MCxmfD0wLHB8PTA7dmFyIG0sQT0wO3JldHVybiAwfGFbKG09NCsobHw9MCl8MCk+PjJdPyhhW2M+PjJdPWFbKEE9MHxhW2w+PjJdKT4+Ml0sYVtBPj4yXT1jPTB8YVtBKygoMHxhW20+PjJdKS0xPDwyKT4+Ml0sYVtmKyhjPDwyKT4+Ml09MCxhW20+PjJdPSgwfGFbbT4+Ml0pLTEs''@;'; put 'put ''TFYobCwwLGYscCksbD0xKTpsPTAsMHxsfWZ1bmN0aW9uIERWKGwsYyxmLHAsbSl7bHw9MCxwfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTA7aWYoISgram5bKEE9KG18PTApKygoY3w9MCk8PDIpfDApPj4yXTw9KGY9K2YpKSl7Zm9yKGI9MHxhWyhrPXArKGM8PDIpfDApPj4yXSxqbltBPj4yXT1m''@;'; put 'put ''LEE9MHxhW2w+PjJdLGw9YjshKCgwfGwpPD0wKSYmK2puW20rKChiPTB8YVtBKygodz1sPj4+MSk8PDIpPj4yXSk8PDIpPj4yXT5mOylhW0ErKGw8PDIpPj4yXT1iLGFbcCsoYjw8Mik+PjJdPWwsbD13O2FbQSsobDw8Mik+PjJdPWMsYVtrPj4yXT1sfX1mdW5jdGlvbiBMVihsLGMsZixwKXtj''@;'; put 'put ''fD0wLGZ8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MCxrPTA7Zm9yKGI9NCsobHw9MCl8MDtBPTF8KG09Yzw8MSksKDB8bSk8KDB8KHc9MHxhW2I+PjJdKSkmJitqbltwKyhhWyhrPTB8YVtsPj4yXSkrKG08PDIpPj4yXTw8Mik+PjJdPCtqbltwKyhhW2srKGM8PDIpPj4yXTw8Mik+PjJdfHwo''@;'; put 'put ''bT1jKSwoMHxBKTwoMHx3KSYmK2puW3ArKGFbKGs9MHxhW2w+PjJdKSsoQTw8Mik+PjJdPDwyKT4+Ml08K2puW3ArKGFbaysobTw8Mik+PjJdPDwyKT4+Ml0mJihtPUEpLCgwfG0pIT0oMHxjKTspQT0wfGFbKHc9KGs9MHxhW2w+PjJdKSsobTw8Mil8MCk+PjJdLGFbdz4+Ml09YVsoaz1rKyhj''@;'; put 'put ''PDwyKXwwKT4+Ml0sYVtrPj4yXT1BLGFbZisoYVt3Pj4yXTw8Mik+PjJdPW0sYVtmKyhhW2s+PjJdPDwyKT4+Ml09YyxjPW19ZnVuY3Rpb24gakQoKXt6eSgxODc0MDAsNDgpLGFbNDY4NTNdPTB9ZnVuY3Rpb24gT1YobCxjKXtsfD0wLGN8PTA7dmFyIEEsdyxmPTAscD0wLG09MDtyZXR1cm4g''@;'; put 'put ''dz0wfEd5KDE4NzQwMCksYVt3KzMyPj4yXT1sLGFbdyszNj4+Ml09YyxuTChsKSxuTChjKSxhW3crMjQ+PjJdPTAsYVt3KzI4Pj4yXT0wLEE9K19bYz4+M10tKG09K19bbD4+M10pLGY9K19bYys4Pj4zXS0ocD0rX1tsKzg+PjNdKSxfWyhjPXcrMTZ8MCk+PjNdPW09ZipwK0EqbSsuNSooZipm''@;'; put 'put ''K0EqQSksKEE+MD9BOi1BKT4oZj4wP2Y6LWYpPyhfW3c+PjNdPTEscD1mL0EsZj1BLGw9dys4fDApOihfW3crOD4+M109MSxwPUEvZixsPXcpLF9bbD4+M109cCxfW2M+PjNdPW0vZixhW3crNDA+PjJdPWM9MHxhWzQ2ODUzXSxhWzQ2ODUzXT1jKzEsMHx3fWZ1bmN0aW9uIEJrKGwpe3ZhciBN''@;'; put 'put ''LGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO009K19bKGx8PTApPj4zXTtlOmRve2lmKDE9PU0peytfW2wrOD4+M10+PTA/KGM9MHxhW2wrMjQ+PjJdLEQ9KGY9MHxhW2wrMjg+PjJdKT81OjkpOihjPTB8YVtsKzI4Pj4yXSxEPShmPTB8YVtsKzI0Pj4yXSk/NTo5KTtkb3tp''@;'; put 'put ''Zig1PT0oMHxEKSl7aWYoKHA9K19bZis4Pj4zXSk+K19bMjMyNjZdKWJyZWFrIGU7aWYocD49KG09K19bMjMyNjddKSl7dz1wLHA9K19bZj4+M107YnJlYWt9dz1tLHA9K19bbCsxNj4+M10tK19bbCs4Pj4zXSptO2JyZWFrfTk9PSgwfEQpJiYodz1tPStfWzIzMjY3XSxwPStfW2wrMTY+PjNd''@;'; put 'put ''LStfW2wrOD4+M10qbSl9d2hpbGUoMCk7ZG97aWYoYyl7aWYoKEE9K19bYys4Pj4zXSk8bSlicmVhayBlO2lmKEE8PShtPStfWzIzMjY2XSkpe209K19bYz4+M107YnJlYWt9QT1tLG09K19bbCsxNj4+M10tK19bbCs4Pj4zXSptO2JyZWFrfUE9bT0rX1syMzI2Nl0sbT0rX1tsKzE2Pj4zXS0r''@;'; put 'put ''X1tsKzg+PjNdKm19d2hpbGUoMCk7KGM9cD4oYj0rX1syMzI2OF0pKSYoZj1tPmIpfHA8KGs9K19bMjMyNjldKSZtPGt8fChjJiYodz0oK19bbCsxNj4+M10tYikvK19bbCs4Pj4zXSxwPWIpLHA8ayYmKHc9KCtfW2wrMTY+PjNdLWspLytfW2wrOD4+M10scD1rKSxmJiYoQT0oK19bbCsxNj4+''@;'; put 'put ''M10tYikvK19bbCs4Pj4zXSxtPWIpLG08ayYmKEE9KCtfW2wrMTY+PjNdLWspLytfW2wrOD4+M10sbT1rKSxEPTQ2KX1lbHNle2Y9MHxhW2wrMjg+PjJdLGM9MHxhW2wrMjQ+PjJdO2Rve2lmKGMpe2lmKChwPStfW2M+PjNdKT4rX1syMzI2OF0pYnJlYWsgZTtpZihwPj0oQT0rX1syMzI2OV0p''@;'; put 'put ''KXt3PStfW2MrOD4+M107YnJlYWt9dz0rX1tsKzE2Pj4zXS1BKk0scD1BO2JyZWFrfXc9K19bbCsxNj4+M10tKEE9K19bMjMyNjldKSpNLHA9QX13aGlsZSgwKTtkb3tpZihmKXtpZigobT0rX1tmPj4zXSk8QSlicmVhayBlO2lmKG08PShiPStfWzIzMjY4XSkpe0E9K19bZis4Pj4zXTticmVh''@;'; put 'put ''a31BPStfW2wrMTY+PjNdLU0qYixtPWI7YnJlYWt9QT0rX1tsKzE2Pj4zXS1NKihtPStfWzIzMjY4XSl9d2hpbGUoMCk7KGM9dz4oYj0rX1syMzI2Nl0pKSYoZj1BPmIpfHc8KGs9K19bMjMyNjddKSZBPGt8fChjJiYodz1iLHA9KCtfW2wrMTY+PjNdLWIpL00pLHc8ayYmKHc9ayxwPSgrX1ts''@;'; put 'put ''KzE2Pj4zXS1rKS9NKSxmJiYoQT1iLG09KCtfW2wrMTY+PjNdLWIpL00pLEE8ayYmKEE9ayxtPSgrX1tsKzE2Pj4zXS1rKS9NKSxEPTQ2KX19d2hpbGUoMCk7NDY9PSgwfEQpJiZmdW5jdGlvbiBWWChsLGMsZixwLG0pe3A9K3AsbT0rbTt2YXIgQTtMYygwfGFbKEE9MzIrKGx8PTApfDApPj4y''@;'; put 'put ''XSxjPStjLGY9K2YpLExjKDB8YVtBPj4yXSxwLG0pLExjKDB8YVsobD1sKzM2fDApPj4yXSxjLGYpLExjKDB8YVtsPj4yXSxwLG0pfShsLHAsdyxtLEEpfWZ1bmN0aW9uIFpEKGwsYyxmKXthWzI0KyhsfD0wKSsoKGN8PTApPDwyKT4+Ml09Znw9MCxuTChmKSwwfGFbbCsyNCsoMS1jPDwyKT4+''@;'; put 'put ''Ml0mJihCayhsKSx0TCgwfGFbbCszMj4+Ml0pLHRMKDB8YVtsKzM2Pj4yXSksWVYobCwxODc0MDApKX1mdW5jdGlvbiBZNyhsLGMpe3ZhciBmLHA7cmV0dXJuKygocD0rX1s4KyhsfD0wKT4+M10tK19bOCsoY3w9MCk+PjNdKSpwKyhmPStfW2w+PjNdLStfW2M+PjNdKSpmKX1mdW5jdGlvbiBa''@;'; put 'put ''WChsLGMsZil7X1sobHw9MCk+PjNdPStfWyhjfD0wKT4+M10tK19bKGZ8PTApPj4zXSxfW2wrOD4+M109K19bYys4Pj4zXS0rX1tmKzg+PjNdfWZ1bmN0aW9uIFJWKGwsYyxmKXtfWyhsfD0wKT4+M109K19bKGZ8PTApPj4zXSsgK19bKGN8PTApPj4zXSxfW2wrOD4+M109K19bZis4Pj4zXSsg''@;'; put 'put ''K19bYys4Pj4zXX1mdW5jdGlvbiBQayhsLGMsZil7dmFyIHAsbTtyZXR1cm4rKCgrX1soZnw9MCk+PjNdLShtPStfWyhjfD0wKT4+M10pKSooK19bOCsobHw9MCk+PjNdLShwPStfW2MrOD4+M10pKS0oK19bbD4+M10tbSkqKCtfW2YrOD4+M10tcCkpfWZ1bmN0aW9uIEZ5KGwsYyxmKXt2YXIg''@;'; put 'put ''cCxtLEEsdztyZXR1cm4gY3w9MCxmfD0wLHA9bGUsbGU9bGUrNDh8MCxtPXArMzJ8MCxBPXArMTZ8MCxhWyh3PXApPj4yXT1hWyhsfD0wKT4+Ml0sYVt3KzQ+PjJdPWFbbCs0Pj4yXSxhW3crOD4+Ml09YVtsKzg+PjJdLGFbdysxMj4+Ml09YVtsKzEyPj4yXSxhW0E+PjJdPWFbYz4+Ml0sYVtB''@;'; put 'put ''KzQ+PjJdPWFbYys0Pj4yXSxhW0ErOD4+Ml09YVtjKzg+PjJdLGFbQSsxMj4+Ml09YVtjKzEyPj4yXSxhW20+PjJdPWFbZj4+Ml0sYVttKzQ+PjJdPWFbZis0Pj4yXSxhW20rOD4+Ml09YVtmKzg+PjJdLGFbbSsxMj4+Ml09YVtmKzEyPj4yXSxmPStQayh3LEEsbSk+MCYxLGxlPXAsMHxmfWZ1''@;'; put 'put ''bmN0aW9uIEdEKGwsYyxmLHAsbSl7bXw9MDt2YXIgQSx3LGIsayxNLEQsUixHLHEscGU9MCxnZT0wO3JldHVybiAwPT0odz0oUj0oKHBlPStfWzgrKHB8PTApPj4zXSktKGdlPStfWzgrKGZ8PTApPj4zXSkpKihxPStfWyhsfD0wKT4+M10pKSsoRz0rX1soY3w9MCk+PjNdKSooZ2UtcGUpKyhr''@;'; put 'put ''PShNPStfW2MrOD4+M10pLShiPStfW2wrOD4+M10pKSooRD0rX1twPj4zXSkrKEE9K19bZj4+M10pKihiLU0pKT9wPTA6KHBlPShBKihiLXBlKStSKyhnZS1iKSpEKS93LGdlPS0oQSprKygoZ2UtTSkqcSsoYi1nZSkqRykpL3csX1ttPj4zXT1wZSooRy1xKStxLF9bbSs4Pj4zXT1rKnBlK2Is''@;'; put 'put ''cD1nZTw9MSZnZT49MCZwZT49MCZwZTw9MSYxKSwwfHB9ZnVuY3Rpb24gVTcobCxjLGYpe2Y9K2Y7dmFyIHcscD0wLG09MCxBPTA7Zm9yKGFbMjArKGx8PTApPj4yXT1jfD0wLG5MKGMpLF9bKHc9bCsyNHwwKT4+M109K19bYys4Pj4zXStmLHA9KHA9MHxhWzQ2ODU2XSkrKDQwKigwfHpYKGwp''@;'; put 'put ''KXwwKXwwOyhwPTB8YVsobT1wKzMyfDApPj4yXSkmJigoZj0rX1t3Pj4zXSk+KEE9K19bcCsyND4+M10pfHxmPT1BJiYrX1tjPj4zXT4rX1thW3ArMjA+PjJdPj4zXSk7KTthW2wrMzI+PjJdPXAsYVttPj4yXT1sLGFbNDY4NTddPTErKDB8YVs0Njg1N10pfWZ1bmN0aW9uIHpYKGwpe3ZhciBj''@;'; put 'put ''LGYscDtjPSgrX1syNCsobHw9MCk+PjNdLStfWzIzMjczXSkvK19bMjMyNzVdKihwPSsoMHwoZj0wfGFbNDY4NThdKSkpO2Rve2lmKCEoYzwwKSl7aWYoYz49cCl7bD1mKy0xfDA7YnJlYWt9bD1+fmM7YnJlYWt9bD0wfXdoaWxlKDApO3JldHVybigwfGwpPCgwfGFbNDY4NTldKSYmKGFbNDY4''@;'; put 'put ''NTldPWwpLDB8bH1mdW5jdGlvbiBGayhsKXt2YXIgZixjPTAscD0wO2lmKDB8YVsoZj0yMCsobHw9MCl8MCk+PjJdKXtjPShjPTB8YVs0Njg1Nl0pKyg0MCooMHx6WChsKSl8MCl8MDtkb3tjPTB8YVsocD1jKzMyfDApPj4yXX13aGlsZSgoMHxjKSE9KDB8bCkpO2FbcD4+Ml09YVtsKzMyPj4y''@;'; put 'put ''XSxhWzQ2ODU3XT0oMHxhWzQ2ODU3XSktMSx0TCgwfGFbZj4+Ml0pLGFbZj4+Ml09MH19ZnVuY3Rpb24gSHkoKXtyZXR1cm4gMD09KDB8YVs0Njg1N10pfDB9ZnVuY3Rpb24gYjJlKGwpe2x8PTA7dmFyIGMsbSxmPTAscD0wO2ZvcihjPTB8YVs0Njg1Nl0sZj0wfGFbNDY4NTldOyEoMHwocD0w''@;'; put 'put ''fGFbYysoNDAqZnwwKSszMj4+Ml0pKTspYVs0Njg1OV09cD1mKzF8MCxmPXA7bT0rX1twKzI0Pj4zXSxfW2w+PjNdPStfW2FbcCsyMD4+Ml0+PjNdLF9bbCs4Pj4zXT1tfWZ1bmN0aW9uIF8yZSgpe3ZhciBsLGM7cmV0dXJuIGFbKGM9KDB8YVs0Njg1Nl0pKyg0MCooMHxhWzQ2ODU5XSl8MCkr''@;'; put 'put ''MzJ8MCk+PjJdPWFbMzIrKGw9MHxhW2M+PjJdKT4+Ml0sYVs0Njg1N109KDB8YVs0Njg1N10pLTEsMHxsfWZ1bmN0aW9uIFdEKGwsYyl7dmFyIGY7cmV0dXJuIGx8PTAsY3w9MCxmPTB8R3koMTg3NDQ4KSxhW2YrOD4+Ml09bCxmZVtmKzE2Pj4wXT1jLGFbZiszMj4+Ml09MCxhW2YrMjA+PjJd''@;'; put 'put ''PTAsYVtmKzEyPj4yXT0wLDB8Zn1mdW5jdGlvbiBZRChsLGMpe3ZhciBBLGIsZj0wLHA9MCxtPTAsdz0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wO0E9MHxhWzgrKGx8PTApPj4yXSxiPTB8YVs4KyhjfD0wKT4+Ml07ZG97aWYoMD09KDB8QSl8MD09KDB8Yil8fCgwfChSPTB8YVtBKzM2Pj4y''@;'; put 'put ''XSkpPT0oMHwoZj0wfGFbYiszNj4+Ml0pKXx8KE09KHA9K19bYis4Pj4zXSkqKHc9K19bQT4+M10pLShrPStfW2I+PjNdKSoobT0rX1tBKzg+PjNdKSk+LTFlLTEwJk08MWUtMTApbD0wO2Vsc2V7RD0oKEc9K19bQSsxNj4+M10pKnAtKHE9K19bYisxNj4+M10pKm0pL00sdz0ocSp3LUcqaykv''@;'; put 'put ''TSxwPStfW1IrOD4+M10sbT0rX1tmKzg+PjNdO2Rve2lmKHA8bSlmPVI7ZWxzZXtpZihwPT1tJiYrX1tSPj4zXTwrX1tmPj4zXSl7Zj1SO2JyZWFrfWw9Y319d2hpbGUoMCk7aWYobD0wfGZlW2wrMTY+PjBdLEQ+PStfW2Y+PjNdKXtpZighKGw8PDI0Pj4yNCkpe2w9MDticmVha319ZWxzZSBp''@;'; put 'put ''ZihsPDwyND4+MjQ9PTEpe2w9MDticmVha31sPTB8R3koMTg3Njc2KSxhW2wrMjA+PjJdPTAsX1tsPj4zXT1ELF9bbCs4Pj4zXT13fX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFVEKGwsYyl7dmFyIGIsTSxELEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsUj0wO2lmKEc9MHxmZVsx''@;'; put 'put ''NisobHw9MCk+PjBdLChNPShrPStfWyhjfD0wKT4+M10pPihSPStfWyhiPTB8YVszNisoRD0wfGFbbCs4Pj4yXSk+PjJdKT4+M10pKT9HPDwyND4+MjQ/cD00Omw9MTpHPDwyND4+MjQ9PTE/bD0wOnA9NCw0PT0oMHxwKSl7Zj0rX1tEPj4zXTtlOmRve2lmKDE9PWYpe209KGY9K19bYys4Pj4z''@;'; put 'put ''XSktK19bYis4Pj4zXSxBPWstUixjPSh3PStfW0QrOD4+M10pPDA7ZG97aWYoIShNP3c+PTA6Yykpe2lmKGw9dypmK2s+K19bRCsxNj4+M10sYyl7aWYobCl7bD0wO2JyZWFrIGV9YnJlYWt9aWYobClicmVhaztsPTA7YnJlYWsgZX1pZihtPj13KkEpe2w9MTticmVhayBlfX13aGlsZSgwKTts''@;'; put 'put ''PXcqKEEqQS1tKm0pPChSLT0rX1thW0QrMzI+PjJdPj4zXSkqbSooMipBL1IrMSt3KncpLGMmJihsXj0xKX1lbHNlIEE9K19bRCsxNj4+M10taypmLHc9K19bYys4Pj4zXS1BLFI9ay1SLGs9QS0rX1tiKzg+PjNdLGw9dyp3PmsqaytSKlJ9d2hpbGUoMCk7bD0xJihsXkc8PDI0Pj4yNCE9MCl9''@;'; put 'put ''cmV0dXJuIDB8bH1mdW5jdGlvbiBZWChsLGMpe2FbKGN8PTApPj4yXT1sfD0wLGFbYys0Pj4yXT1hWyhsPWwrNHwwKT4+Ml0sYVthW2w+PjJdPj4yXT1jLGFbbD4+Ml09Y31mdW5jdGlvbiBCVihsKXt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MDtpZighKGM9MHxQVihtPSgwfChjPSgwfChjPX5+''@;'; put 'put ''KCgrX1sobHw9MCk+PjNdLStfWzIzMjcyXSkvK19bMjMyNzRdKisoMHwobT0wfGFbNDY4NjZdKSkpKSk+MD9jOjApKTwoMHxtKT9jOm0rLTF8MCkpKXtmb3IoZj0xOyEoMHwoYz0wfFBWKG0tZnwwKSl8fChjPTB8UFYoZittfDApLDB8YykpOylmPWYrMXwwO2FbNDY4NjddPSgwfGFbNDY4Njdd''@;'; put 'put ''KStmfWFbNDY4NjhdPTErKDB8YVs0Njg2OF0pLHA9MHxhWzQ2ODYwXSxmPTB8YVs0Njg2MV07ZTpkb3tpZigoMHxjKT09KDB8cCkpQT05O2Vsc2V7aWYoKDB8YykhPSgwfGYpJiYwIT0oMHxVRChjLGwpKSl7QT05O2JyZWFrfWZvcig7Oyl7aWYoKDB8KGM9MHxhW2M+PjJdKSk9PSgwfHApKWJy''@;'; put 'put ''ZWFrIGU7aWYoMHxVRChjLGwpKXtwPWM7YnJlYWt9fX19d2hpbGUoMCk7aWYoOT09KDB8QSkpe2Zvcig7KDB8KGM9MHxhW2MrND4+Ml0pKSE9KDB8ZikmJjB8VUQoYyxsKTspQT05O3A9MHxhW2M+PjJdfXJldHVybigwfG0pPjAmJigwfG0pPCgoMHxhWzQ2ODY2XSktMXwwKSYmKDB8KGY9MHxh''@;'; put 'put ''WyhjPSgwfGFbNDY4NjVdKSsobTw8Mil8MCk+PjJdKSYmKGFbKEE9ZisxMnwwKT4+Ml09KDB8YVtBPj4yXSktMSksYVtjPj4yXT1wLGFbKEE9cCsxMnwwKT4+Ml09MSsoMHxhW0E+PjJdKSksMHxwfWZ1bmN0aW9uIFBWKGwpe3ZhciBjPTAsZj0wO3JldHVybigwfChsfD0wKSk+LTEmKDB8YVs0''@;'; put 'put ''Njg2Nl0pPigwfGwpJiYwIT0oMHwoYz0wfGFbKGY9KDB8YVs0Njg2NV0pKyhsPDwyKXwwKT4+Ml0pKT8tMj09KDB8YVtjKzg+PjJdKSYmKGFbZj4+Ml09MCxhWyhsPWMrMTJ8MCk+PjJdPWY9KDB8YVtsPj4yXSktMXwwLGZ8fFlWKGMsMTg3NDQ4KSxjPTApOmM9MCwwfGN9ZnVuY3Rpb24gRlYo''@;'; put 'put ''bCl7dmFyIGMsZjthWzQrKGY9MHxhWyhsfD0wKT4+Ml0pPj4yXT1hWyhjPWwrNHwwKT4+Ml0sYVthW2M+PjJdPj4yXT1mLGFbbCs4Pj4yXT0tMn1mdW5jdGlvbiBOeShsKXtyZXR1cm4gMHxhWzQrKGx8PTApPj4yXX1mdW5jdGlvbiBTMmUobCl7cmV0dXJuIDB8YVsobHw9MCk+PjJdfWZ1bmN0''@;'; put 'put ''aW9uIGM5ZShsKXt2YXIgYztyZXR1cm4gMHxhWyhsPShjPTB8YVs4KyhsfD0wKT4+Ml0pPzA9PSgwfGZlW2wrMTY+PjBdKT9jKzMyfDA6YyszNnwwOjE4NzY3Mik+PjJdfWZ1bmN0aW9uIFVYKGwpe3ZhciBjO3JldHVybiAwfGFbKGw9KGM9MHxhWzgrKGx8PTApPj4yXSk/MD09KDB8ZmVbbCsx''@;'; put 'put ''Nj4+MF0pP2MrMzZ8MDpjKzMyfDA6MTg3NjcyKT4+Ml19ZnVuY3Rpb24gVnkoKXt6eSgxODc0ODAsMjQpfWZ1bmN0aW9uIExjKGwsYyxmKXtmPStmO3ZhciBiLHA9MCxtPTAsQT0wLHc9MDtiPWxlLGxlPWxlKzMyfDAsbT0wfGFbKEE9KDB8YVs0Njg2OV0pKyg5NiooMHxhWzE2KyhsfD0wKT4+''@;'; put 'put ''Ml0pfDApKzg4fDApPj4yXSxfWyh3PWIpKzg+PjNdPWM9K2MsX1t3KzE2Pj4zXT1mLHA9MHxIVihsLHcsbSk7ZG97aWYoMHxwKXtpZigoMHxwKTwwKXt3PTB8R3koMTg3NDgwKSxfW3crOD4+M109YyxfW3crMTY+PjNdPWYsYVt3Pj4yXT1tLGFbQT4+Ml09dzticmVha31mb3IoOygwfChBPTB8''@;'; put 'put ''SFYobCx3LHA9MHxhW20+PjJdKSkpPjA7KW09cDswfEEmJih3PTB8R3koMTg3NDgwKSxfW3crOD4+M109YyxfW3crMTY+PjNdPWYsYVttPj4yXT13LGFbdz4+Ml09cCl9fXdoaWxlKDApO2xlPWJ9ZnVuY3Rpb24gSFYobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAs''@;'; put 'put ''Yj0wLGs9MCxNPTA7ZG97aWYoZilpZigobT0rX1tjKzg+PjNdKT09KGI9K19bZis4Pj4zXSkmKHA9K19bYysxNj4+M10pPT0oQT0rX1tmKzE2Pj4zXSkpYz0wO2Vsc2V7aWYoaz1tLShNPStfW2w+PjNdKSx3PXAtKG09K19bbCs4Pj4zXSksYi09TSxwPUEtbSwhKGs+PTApKXtpZihiPj0wKXtj''@;'; put 'put ''PTE7YnJlYWt9aWYobT1wL2IsKHA9dy9rKTxtKXtjPS0xO2JyZWFrfWlmKHA+bSl7Yz0xO2JyZWFrfWM9az5iPy0xOjE7YnJlYWt9aWYoIShiPDApKXtpZihjPWI+MCxrPjApe2lmKCFjKXtjPXA+MD8tMToxO2JyZWFrfWlmKG09cC9iLChwPXcvayk8bSl7Yz0tMTticmVha31pZihwPm0pe2M9''@;'; put 'put ''MTticmVha31jPWs8Yj8tMToxO2JyZWFrfWlmKGMpe2M9dzw9MD8tMToxO2JyZWFrfWlmKHc8cCl7Yz1wPD0wPzE6LTE7YnJlYWt9Yz13PD0wPy0xOjE7YnJlYWt9Yz0tMX1lbHNlIGM9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBIayhsLGMsZixwKXtjfD0wLHB8PTA7dmFyIG0s''@;'; put 'put ''QT0wO2ZvcihtPTB8YVsobHw9MCkrKDIwKihmfD0wKXwwKT4+Ml0sZj1sKygyMCpmfDApKzR8MCxjPTEsbD0wOyEoKDB8Yyk+PSgwfG0pKTspQT1sKygoMHxhW3ArKGFbKDB8YVtmPj4yXSkrKGM8PDIpPj4yXTw8Mik+PjJdKT4wJjEpfDAsYz1jKzF8MCxsPUE7cmV0dXJuIDB8bH1mdW5jdGlv''@;'; put 'put ''biBOayhsLGMsZil7dmFyIHA7Zm9yKGZ8PTAscD0obHw9MCkrKDIwKihjfD0wKXwwKXwwLGM9bCsoMjAqY3wwKSs0fDAsbD0xOyEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspYVtmKyhhWygwfGFbYz4+Ml0pKyhsPDwyKT4+Ml08PDIpPj4yXT0xLGw9bCsxfDB9ZnVuY3Rpb24gUVgobCxjLGYpe3Zh''@;'; put 'put ''ciBwO2ZvcihmfD0wLHA9KGx8PTApKygyMCooY3w9MCl8MCl8MCxjPWwrKDIwKmN8MCkrNHwwLGw9MTshKCgwfGwpPj0oMHxhW3A+PjJdKSk7KWFbZisoYVsoMHxhW2M+PjJdKSsobDw8Mik+PjJdPDwyKT4+Ml09MCxsPWwrMXwwfWZ1bmN0aW9uIE5WKGwsYyl7bHw9MDt2YXIgcCxmPTAsbT0w''@;'; put 'put ''O2ZvcihwPTB8UW4oMHxBcihtPShjfD0wKTw8MixjKSksbT0wfFFuKG0pLGY9MDs7KXtpZigoMHxmKT49KDB8Yykpe2Y9MDticmVha31hW20rKGY8PDIpPj4yXT1wKygoMHxBcihmLGMpKTw8MiksZj1mKzF8MH1mb3IoOyEoKDB8Zik+PSgwfGMpKTspUnkoZixsLGMsMHxhW20rKGY8PDIpPj4y''@;'; put 'put ''XSksZj1mKzF8MDtyZXR1cm4gMHxtfWZ1bmN0aW9uIEpYKGwsYyl7bHw9MDt2YXIgTSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsRD0wO2ZvcihNPTB8UW4oKGN8PTApPDwyKSxmPTAscD0wOyEoKDB8Zik+PSgwfGMpKTspaz0oMHxhW2wrKDIwKmZ8MCk+PjJdKStwfDAsZj1mKzF8MCxw''@;'; put 'put ''PWs7Zm9yKHA9MHxRbihwPDwyKSxmPTA7ISgoMHxmKT49KDB8YykpOylhW00rKGY8PDIpPj4yXT0wLGY9ZisxfDA7Zm9yKG09MDshKCgwfG0pPj0oMHxjKSk7KXtmb3IoYVtsKygyMCptfDApKzg+PjJdPXAsTmsobCxtLE0pLGI9bCsoMjAqbXwwKSs0fDAsaz0odz0wfGFbKEE9bCsoMjAqbXww''@;'; put 'put ''KXwwKT4+Ml0pLTJ8MCxmPTE7ISgoMHxmKT49KDB8dykpOylqbltwKyhmPDwyKT4+Ml09KyhrKygwfGFbbCsoMjAqKEQ9MHxhWygwfGFbYj4+Ml0pKyhmPDwyKT4+Ml0pfDApPj4yXSktKCgwfEhrKGwsMCxELE0pKTw8MSl8MCksZj1mKzF8MDtRWChsLG0sTSkscD1wKyhhW0E+PjJdPDwyKXww''@;'; put 'put ''LG09bSsxfDB9RnQoTSl9ZnVuY3Rpb24gWFgobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MDtGdCgwfGFbKHA9OCsobHw9MCl8MCk+PjJdKSxhW3A+PjJdPTA7ZTpkb3tpZigwfGYpZm9yKHA9MDs7KXtpZigoMHxwKT49KDB8YykpYnJlYWsgZTthW2wrKDIwKnB8MCkrOD4+Ml09ZixtPWYr''@;'; put 'put ''KGFbbCsoMjAqcHwwKT4+Ml08PDIpfDAscD1wKzF8MCxmPW19fXdoaWxlKDApfWZ1bmN0aW9uIEtYKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtmb3IobT0wLEE9MDshKCgwfG0pPj0oMHxjKSk7KWI9MHxhW2wrKG08PDIpPj4yXSxtPW0rMXwwLEE9''@;'; put 'put ''KHc9K19bYisoZjw8Myk+PjNdLStfW2IrKHA8PDMpPj4zXSkqdytBO3JldHVybisgK0QwKCtBKX1mdW5jdGlvbiBWVihsLGMsZixwKXtjfD0wLCgwfChwfD0wKSk+KDB8KGZ8PTApKSYmKGFbNDY4NzNdPWx8PTAseDEoYysoZjw8Mil8MCwxLWYrcHwwLDQsNzcpKX1mdW5jdGlvbiBRNyhsLGMs''@;'; put 'put ''ZixwKXtsfD0wLGN8PTA7dmFyIHcsbT0wLEE9MDt3PWxlLGxlPWxlKzE2fDAsbT13LCgwfChmfD0wKSk8KDB8KHB8PTApKSYmKGZ1bmN0aW9uIElzKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLGssTSxBPTAsdz0wLEQ9MCxSPTA7QT0wfFQxKCksQT1jKygoKCgo''@;'; put 'put ''MHxUMSgpKTw8MTZ8QSk+Pj4wKSUoKDEtZitwfDApPj4+MCl8MCkrZjw8Mil8MCxiPTB8YVtBPj4yXSxhW0E+PjJdPWFbKGs9YysoZjw8Mil8MCk+PjJdLGFbaz4+Ml09YixNPStfW2wrKGI8PDMpPj4zXSxBPWYrMXwwLGY9cDtlOmZvcig7ISgoMHxBKT49KDB8ZikpOyl7Zm9yKDshKCgwfEEp''@;'; put 'put ''Pj0oMHxmKSkmJitfW2wrKGFbYysoQTw8Mik+PjJdPDwzKT4+M108PU07KUE9QSsxfDA7Zm9yKDs7KXtpZigoMHxBKT49KDB8ZikpY29udGludWUgZTtpZighKCtfW2wrKCh3PTB8YVsocD1jKyhmPDwyKXwwKT4+Ml0pPDwzKT4+M10+TSkpYnJlYWs7Zj1mKy0xfDB9RD0wfGFbKFI9YysoQTw8''@;'; put 'put ''Mil8MCk+PjJdLGFbUj4+Ml09dyxhW3A+PjJdPUQsQT1BKzF8MCxmPWYrLTF8MH1hW20+PjJdPVI9QSsoKCtfW2wrKGFbYysoQTw8Mik+PjJdPDwzKT4+M10+TSk8PDMxPj4zMSl8MCxhW2s+PjJdPWFbKFI9YysoUjw8Mil8MCk+PjJdLGFbUj4+Ml09Yn0obCxjLGYscCxtKSxRNyhsLGMsZixt''@;'; put 'put ''PShBPTB8YVttPj4yXSktMXwwKSxRNyhsLGMsQT1BKzF8MCxwKSwwfHBnKGwsYyxmLG0pfHxRNyhsLGMsZixtKSwwfHBnKGwsYyxBLHApfHxRNyhsLGMsQSxwKSksbGU9d31mdW5jdGlvbiBwZyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wO2ZvcihBPTE7bT1mKzF8''@;'; put 'put ''MCwoMHxmKTwoMHxwKSYwIT0oMHxBKTspQT0rX1tsKyhhW2MrKGY8PDIpPj4yXTw8Myk+PjNdPitfW2wrKGFbYysobTw8Mik+PjJdPDwzKT4+M10/MDpBLGY9bTtyZXR1cm4gMHxBfWZ1bmN0aW9uICRYKGwsYyl7bHw9MCxjfD0wO3ZhciBwZSxnZSxMZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9''@;'; put 'put ''MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxiZT0wLE9lPTAsUmU9MCxIZT0wO2lmKExlPWxlLGxlPWxlKzE2fDAsYmU9NCxPZT0wfEYwKDQwKSxhW09lPj4yXT0wLHBlPUxlLE1uPTAsZ2U9MHxhMCgyMyw0MCpjfDApLGY9TW4sTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChwPTB8Z2koMHxh''@;'; put 'put ''W2Y+PjJdLDB8T2UsMHxiZSkpfHx6ZSgwfGYsMHx4biksRG49eG4pOnA9LTEsMSE9KDB8cCkpe2ZvcihmPTAsRz0wOyEoKDB8Zik+PSgwfGMpKTspcT0oMHxhWzQrKDB8YVtsKyhmPDwyKT4+Ml0pPj4yXSkrR3wwLGY9ZisxfDAsRz1xO2lmKE1uPTAscT0wfGEwKDIzLDI0Kkd8MCksZj1NbixN''@;'; put 'put ''bj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0tMSwxIT0oMHxwKSl7Zm9yKGY9MCxNPTA7ISgoMHxNKT49KDB8YykpOyl7Zm9yKGFbKEQ9Z2UrKDQwKk18MCl8MCk+PjJdPXErKDI0KmZ8MCksUj1sKyhN''@;'; put 'put ''PDwyKXwwLG09MCxBPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Mix3PS0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsYj0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyLGs9MTc5NzY5MzEzNDg2MjMxNTdlMjkyOyEoKDB8bSk+PSgwfGFbNCsocD0wfGFbUj4+Ml0pPj4yXSkpOylSZT0rX1socD0wfGFbcD4+Ml0p''@;'; put 'put ''KyhtPDw0KSs4Pj4zXSxfW3ErKDI0KmZ8MCk+PjNdPUhlPStfW3ArKG08PDQpPj4zXSxfW3ErKDI0KmZ8MCkrOD4+M109UmUsYVtxKygyNCpmfDApKzE2Pj4yXT1ELGFbcSsoMjQqZnwwKSsyMD4+Ml09MCxtPW0rMXwwLGY9ZisxfDAsQT1BPEhlP0E6SGUsdz13PkhlP3c6SGUsYj1iPlJlP2I6''@;'; put 'put ''UmUsaz1rPFJlP2s6UmU7YVtnZSsoNDAqTXwwKSs0Pj4yXT1xKygyNCooZistMXwwKXwwKSxfW2dlKyg0MCpNfDApKzg+PjNdPUEsX1tnZSsoNDAqTXwwKSsxNj4+M109ayxfW2dlKyg0MCpNfDApKzI0Pj4zXT13LF9bZ2UrKDQwKk18MCkrMzI+PjNdPWIsTT1NKzF8MH1hW3BlPj4yXT1HLGFb''@;'; put 'put ''cGUrND4+Ml09YyxPZT0wfFBmKDE4NzQ5NiwxLDB8T2UsMHxiZSksYmU9RG4sZj1Nbj0wLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxmLDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApPyhmPURuLFI9cSxNPXEsRD1nZSk6KGY9''@;'; put 'put ''MCxSPXEsTT1xLEQ9Z2UpfWVsc2UgZj1EbixSPTAsTT1xLEQ9Z2V9ZWxzZSBmPURuLFI9MCxNPTAsRD0wO2Zvcig7Oyl7aWYoMHxmKXtpZihNbj0wLHNzKDEwNSwwfGdlKSxmPU1uLE1uPTAsMCE9KDB8ZikmMCE9KDB8eG4pPygocD0wfGdpKDB8YVtmPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxm''@;'; put 'put ''LDB8eG4pLERuPXhuKTpwPS0xLDE9PSgwfHApKXtmPURuLEQ9bT1ELE09Rz1NLFI9cT1SO2NvbnRpbnVlfWlmKE1uPTAsc3MoMTA1LDB8TSksZj1NbixNbj0wLDAhPSgwfGYpJjAhPSgwfHhuKT8oKHA9MHxnaSgwfGFbZj4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8ZiwwfHhuKSxEbj14bik6cD0t''@;'; put 'put ''MSwxPT0oMHxwKSl7Zj1EbixEPW09RCxNPUc9TSxSPXE9Ujtjb250aW51ZX1wPTE3O2JyZWFrfWlmKE1uPTAsZj0wfEZsKDc4LDB8UiwwfHBlKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSwwfE9lLDB8YmUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTpt''@;'; put 'put ''PS0xLDEhPSgwfG0pKWlmKGZ8fChNbj0wLGY9MHxKcygyNCwwfGwsMHxjLDB8RCkscD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxIT0oMHxtKSkpaWYoTW49MCxzcygxMDUsMHxnZSks''@;'; put 'put ''cD1NbixNbj0wLDAhPSgwfHApJjAhPSgwfHhuKT8oKG09MHxnaSgwfGFbcD4+Ml0sMHxPZSwwfGJlKSl8fHplKDB8cCwwfHhuKSxEbj14bik6bT0tMSwxIT0oMHxtKSl7aWYoTW49MCxzcygxMDUsMHxNKSxwPU1uLE1uPTAsMCE9KDB8cCkmMCE9KDB8eG4pPygobT0wfGdpKDB8YVtwPj4yXSww''@;'; put 'put ''fE9lLDB8YmUpKXx8emUoMHxwLDB8eG4pLERuPXhuKTptPS0xLDEhPSgwfG0pKXtwPTI0O2JyZWFrfWY9RG4sRD1tPUQsTT1HPU0sUj1xPVJ9ZWxzZSBmPURuLEQ9bT1ELE09Rz1NLFI9cT1SO2Vsc2UgZj1EbixEPW09RCxNPUc9TSxSPXE9UjtlbHNlIGY9RG4sRD1tPUQsTT1HPU0sUj1xPVJ9''@;'; put 'put ''cmV0dXJuIDE3PT0oMHxwKT9mPTA6MjQ9PSgwfHApJiYoZj0wPT0oMHxmKSYxKSxGdCgwfE9lKSxsZT1MZSwwfGZ9ZnVuY3Rpb24gVDJlKGwsYyl7dmFyIHAsZj0wO3JldHVybiAwfChsPTA9PShmPStfWyhwPTB8YVsobHw9MCk+PjJdKT4+M10tK19bKGw9MHxhWyhjfD0wKT4+Ml0pPj4zXSkm''@;'; put 'put ''JjA9PShmPStfW3ArOD4+M10tK19bbCs4Pj4zXSk/MDpmPjA/MTotMSl9ZnVuY3Rpb24gcVgobCxjKXt2YXIgcCxtLEEsdyxiLGssTSxmPTA7TT1sZSxsZT1sZSs2NHwwLEE9TSszMnwwLHc9TSsyNHwwLGI9TSsxNnwwLGs9TSxlSyhsfD0wLGN8PTAsbT1NKzQ4fDApLHA9MHxhWyhmPW0rOHww''@;'; put 'put ''KT4+Ml07ZG97aWYoKDB8cCk+MClmPTA7ZWxzZXtpZigoMHxwKTwwKXtpZihlSyhjLGwsbSksKDB8KGY9MHxhW2Y+PjJdKSk+MCl7Zj0wO2JyZWFrfWlmKCEoMHx0SyhsLGMsdyxiLGY9KDB8Zik8MD8zOjB8cWgoYyxsLCgwfChmPTB8YVttPj4yXSkpPi0xP2Y6MC1mfDApKSkpe2Y9MDticmVh''@;'; put 'put ''a319ZWxzZSBpZigoMHwoZj0wfGFbbT4+Ml0pKT09KDB8YVttKzQ+PjJdKT8oZj0wfHFoKGwsYywwKSxmPSgwfHFoKGwsYywoMHxmKTw9KDB8cWgobCxjLDEpKSYxKSk8PDEpOmY9MHxxaChsLGMsKDB8Zik+LTE/ZjowLWZ8MCksISgwfHRLKGwsYyx3LGIsZikpKXtmPTA7YnJlYWt9X1trPj4z''@;'; put 'put ''XT0rX1t3Pj4zXSxfW2srOD4+M109K19bYj4+M10sYVtBPj4yXT1hW2s+PjJdLGFbQSs0Pj4yXT1hW2srND4+Ml0sYVtBKzg+PjJdPWFbays4Pj4yXSxhW0ErMTI+PjJdPWFbaysxMj4+Ml0sZj0wfG5LKGwsYyxBKX19d2hpbGUoMCk7cmV0dXJuIGxlPU0sMHxmfWZ1bmN0aW9uIGVLKGwsYyxm''@;'; put 'put ''KXt2YXIgbSxBLHcsayxNLHA9MCxiPTA7dz0rX1sobHw9MCk+PjNdLGI9K19bbCs4Pj4zXSwoMHxhWzQrKHA9MHxhW2wrMTY+PjJdKT4+Ml0pPT0oMHxsKT9wPWw9MHxhW3A+PjJdOihwPWwrMjR8MCxsPWwrMjR8MCksQT0rX1twPj4zXS13LG09K19bbCs4Pj4zXS1iLCgwfGFbNCsocD0wfGFb''@;'; put 'put ''MTYrKGN8PTApPj4yXSk+PjJdKT09KDB8Yyk/cD1sPTB8YVtwPj4yXToocD1jKzI0fDAsbD1jKzI0fDApLGs9K19bcD4+M10tdyxNPStfW2wrOD4+M10tYixhWyhmfD0wKT4+Ml09Yz0wPT0oYj0oK19bYys4Pj4zXS1iKSpBLSgrX1tjPj4zXS13KSptKT8wOmI+MD8xOi0xLGFbZis0Pj4yXT1s''@;'; put 'put ''PTA9PShiPU0qQS1rKm0pPzA6Yj4wPzE6LTEsYVtmKzg+PjJdPTB8QXIobCxjKX1mdW5jdGlvbiBxaChsLGMsZil7dmFyIG0sQSx3LGIsayxNO2N8PTAsZnw9MCxrPStfWyhsfD0wKT4+M10sTT0rX1tsKzg+PjNdLGI9K19bKGw9KDB8YVs0KyhtPTB8YVtsKzE2Pj4yXSk+PjJdKT09KDB8bCk/''@;'; put 'put ''MHxhW20+PjJdOmwrMjR8MCk+PjNdLHc9K19bbCs4Pj4zXTtkb3tpZihmKXtpZigoMHxhWzQrKGw9MHxhW2MrMTY+PjJdKT4+Ml0pPT0oMHxjKSl7Yz0wfGFbbD4+Ml07YnJlYWt9Yz1jKzI0fDA7YnJlYWt9fXdoaWxlKDApO3JldHVybiBBPStfW2M+PjNdLDB8KGs9PWI/az09QT8tMSE9KDB8''@;'; put 'put ''cksoTSwrX1tjKzg+PjNdLHcpKSYxOjA6MHxySyhrLEEsYikpfWZ1bmN0aW9uIHRLKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MDtlOmRve2lmKCgwfG0pPDEpQT0wO2Vsc2V7Uj0rX1tsPj4zXSxxPStf''@;'; put 'put ''W2wrOD4+M10sTT0rX1soQT0oMHxhWzQrKEE9MHxhW2wrMTY+PjJdKT4+Ml0pPT0oMHxsKT8wfGFbQT4+Ml06bCsyNHwwKT4+M10sYj0rX1tBKzg+PjNdLEQ9K19bYz4+M10sRz0rX1tjKzg+PjNdLGs9K19bKEE9KDB8YVs0KyhBPTB8YVtjKzE2Pj4yXSk+PjJdKT09KDB8Yyk/MHxhW0E+PjJd''@;'; put 'put ''OmMrMjR8MCk+PjNdLHc9K19bQSs4Pj4zXTt0OmRve3N3aXRjaCgwfG0pe2Nhc2UgMzppZihSPT1NKXtfW2Y+PjNdPVIsdz0oRy13KS8oRC1rKSooUi1rKSt3O2JyZWFrIHR9aWYoRD09ayl7X1tmPj4zXT1ELHc9KHEtYikvKFItTSkqKEQtTSkrYjticmVhayB0fV9bZj4+M109KChxLT0oTT0o''@;'; put 'put ''cS1iKS8oUi1NKSkqUiktKEctPShrPShHLXcpLyhELWspKSpEKSkvKHc9ay1NKSx3PShrKnEtRypNKS93O2JyZWFrIHQ7Y2FzZSAyOmlmKC0xPT0oMHxxaChsLGMsMCkpKS0xPT0oMHxxaChjLGwsMSkpPyhNPShtPS0xPT0oMHxxaChjLGwsMCkpKT9NOlIsaz1ELGI9bT9iOnEsdz1HKTooTT1r''@;'; put 'put ''LGs9RCxiPXcsdz1HKTtlbHNlIGlmKC0xIT0oMHxxaChsLGMsMSkpKXtpZigtMSE9KDB8cWgoYyxsLDApKSl7QT0wO2JyZWFrIGV9az1SLHc9cX1lbHNlIE09RCxiPUc7X1tmPj4zXT0uNSooaytNKSx3PS41Kih3K2IpO2JyZWFrO2Nhc2UgMTppZigoRy1xKSooUi1NKT09KEQtUikqKHEtYikp''@;'; put 'put ''e19bZj4+M109RCx3PUc7YnJlYWsgdH1fW2Y+PjNdPWs7YnJlYWsgdDtkZWZhdWx0OkE9MTticmVhayBlfX13aGlsZSgwKTtfW3A+PjNdPXcsQT0xfX13aGlsZSgwKTtyZXR1cm4gMHxBfWZ1bmN0aW9uIG5LKGwsYyxmKXtmfD0wO3ZhciBBLHcsYixrLE0sRCxSLGdlLEcscD0wLG09MCxwZT0w''@;'; put 'put ''O2dlPWxlLGxlPWxlKzE2fDAsUj0rX1sobHw9MCk+PjNdLEc9K19bbCs4Pj4zXSxNPStfWyhwPSgwfGFbNCsocD0wfGFbbCsxNj4+Ml0pPj4yXSk9PSgwfGwpPzB8YVtwPj4yXTpsKzI0fDApPj4zXSxiPStfW3ArOD4+M10saz0rX1soY3w9MCk+PjNdLEQ9K19bYys4Pj4zXSx3PStfWyhwPSgw''@;'; put 'put ''fGFbNCsocD0wfGFbYysxNj4+Ml0pPj4yXSk9PSgwfGMpPzB8YVtwPj4yXTpjKzI0fDApPj4zXSxBPStfW3ArOD4+M107ZTpkb3tpZihSIT1NJmshPXcpcGU9MTg7ZWxzZXtkb3tpZihSPT1NKXtpZihSPT0obT0rX1tmPj4zXSkmJkc9PStfW2YrOD4+M10pYnJlYWs7aWYoTSE9bSl7cGU9MTg7''@;'; put 'put ''YnJlYWsgZX1pZihiIT0rX1tmKzg+PjNdKXtwZT0xODticmVhayBlfX19d2hpbGUoMCk7aWYoaz09dyl7aWYoaz09KG09K19bZj4+M10pJiZEPT0rX1tmKzg+PjNdKXtwPTA7YnJlYWt9dz09bSYmQT09K19bZis4Pj4zXT9wPTA6cGU9MTh9ZWxzZSBwPTB9fXdoaWxlKDApO3JldHVybiAxOD09''@;'; put 'put ''KDB8cGUpJiYocD0xKSxsZT1nZSwwfHB9ZnVuY3Rpb24gcksobCxjLGYpe3JldHVybiAwfCgobD0rbCk9PShjPStjKXxjPT0oZj0rZik/MDoobDxjP2M8ZjpmPGMpPzE6LTEpfWZ1bmN0aW9uIG9LKGwsYyxmLHAsbSxBKXtsfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTA7dmFyIFIsRyxxLGdlLHc9''@;'; put 'put ''MCxiPTAsaz0wLE09MCxEPTAscGU9MCxiZT0wO3E9MHxRbihwZT0oY3w9MCk8PDMpLHBlPTB8UW4ocGUpLGdlPTMwKmN8MCxSPSgwfGYpPCgwfGMpP2Y6YyxHPWMrLTF8MCxEPTA9PSgwfEEpLGY9MCx3PTA7ZTpmb3IoOyEoKDB8dyk+PSgwfFIpKTspe2s9MHxhW3ArKHc8PDIpPj4yXTtkb3t0''@;'; put 'put ''OmRve2lmKEQpZj0wO2Vsc2UgZm9yKGY9MDs7KXtpZigoMHxmKT09KDB8Yykpe2Y9MDticmVhayB0fV9baysoZjw8Myk+PjNdPSsoMHwoMHxUMSgpKSUxMDApLGY9ZisxfDB9fXdoaWxlKDApO2Zvcig7KDB8ZikhPSgwfHcpOylnZyhrLDAsRywtK29oKEE9MHxhW3ArKGY8PDIpPj4yXSwwLEcs''@;'; put 'put ''ayksQSksZj1mKzF8MDtiPSttcChrLDAsRyl9d2hpbGUoYjwxZS0xMCk7SjcoaywwLEcsMS9iLGspLGY9MDtkb3tmb3IoSzMocGUsMCxHLGspLFpWKGwsYyxjLGsscSksSzMoaywwLEcscSksQT0wOygwfEEpIT0oMHx3KTspZ2coaywwLEcsLStvaChiZT0wfGFbcCsoQTw8Mik+PjJdLDAsRyxr''@;'; put 'put ''KSxiZSksQT1BKzF8MDtpZihiZT1mLGY9ZisxfDAsISgoMHxiZSk8KDB8Z2UpJiEoKGI9K21wKGssMCxHKSk8MWUtMTApKSlicmVhayBlO0o3KGssMCxHLDEvYixrKSxNPStvaChrLDAsRyxwZSl9d2hpbGUoK2VvKCtNKTwuOTk5KTtfW20rKHc8PDMpPj4zXT1NKmIsdz13KzF8MH1mb3IoOyEo''@;'; put 'put ''KDB8dyk+PSgwfFIpKTspe2ZvcihrPTB8YVtwKyh3PDwyKT4+Ml0sQT0wOzspe2lmKCgwfEEpPj0oMHxjKSl7QT0wO2JyZWFrfV9baysoQTw8Myk+PjNdPSsoMHwoMHxUMSgpKSUxMDApLEE9QSsxfDB9Zm9yKDshKCgwfEEpPj0oMHx3KSk7KWdnKGssMCxHLC0rb2goYmU9MHxhW3ArKEE8PDIp''@;'; put 'put ''Pj4yXSwwLEcsayksYmUpLEE9QSsxfDA7SjcoaywwLEcsMS8rbXAoaywwLEcpLGspLF9bbSsodzw8Myk+PjNdPTAsdz13KzF8MH1mb3IoRD1SKy0xfDAsdz0wOyEoKDB8dyk+PSgwfEQpKTspe2ZvcihiPStfWyhsPW0rKHc8PDMpfDApPj4zXSxBPXcsaz1jPXcrMXwwOyEoKDB8ayk+PSgwfFIp''@;'; put 'put ''KTspYj0oYmU9YjwoTT0rX1ttKyhrPDwzKT4+M10pKT9NOmIsQT1iZT9rOkEsaz1rKzF8MDsoMHxBKSE9KDB8dyk/KEszKHEsMCxHLDB8YVsoaz1wKyh3PDwyKXwwKT4+Ml0pLEszKDB8YVtrPj4yXSwwLEcsMHxhWyhiZT1wKyhBPDwyKXwwKT4+Ml0pLEszKDB8YVtiZT4+Ml0sMCxHLHEpLF9b''@;'; put 'put ''bSsoQTw8Myk+PjNdPStfW2w+PjNdLF9bbD4+M109Yix3PWMpOnc9Y31yZXR1cm4gRnQocSksRnQocGUpLCgwfGYpPD0oMHxnZSl8MH1mdW5jdGlvbiBvaChsLGMsZixwKXt2YXIgbT0wLEE9MDtmb3IoQT0wLG09MS0oY3w9MCkrKGZ8PTApfDAscD0ocHw9MCkrKGM8PDMpfDAsZj0obHw9MCkr''@;'; put 'put ''KGM8PDMpfDA7bTspQT0rX1twPj4zXSorX1tmPj4zXStBLG09bSstMXwwLHA9cCs4fDAsZj1mKzh8MDtyZXR1cm4rQX1mdW5jdGlvbiBnZyhsLGMsZixwLG0pe3A9K3A7dmFyIEE9MDtmb3IoQT0xLShjfD0wKSsoZnw9MCl8MCxtPShtfD0wKSsoYzw8Myl8MCxmPShsfD0wKSsoYzw8Myl8MDtB''@;'; put 'put ''OylfW2Y+PjNdPStfW2Y+PjNdKyArX1ttPj4zXSpwLEE9QSstMXwwLG09bSs4fDAsZj1mKzh8MH1mdW5jdGlvbiBtcChsLGMsZil7cmV0dXJuKyArRDAoKyArb2gobHw9MCxjfD0wLGZ8PTAsbCkpfWZ1bmN0aW9uIEo3KGwsYyxmLHAsbSl7cD0rcDt2YXIgQT0wO2ZvcihBPTEtKGN8PTApKyhm''@;'; put 'put ''fD0wKXwwLG09KG18PTApKyhjPDwzKXwwLGY9KGx8PTApKyhjPDwzKXwwO0E7KV9bZj4+M109K19bbT4+M10qcCxBPUErLTF8MCxtPW0rOHwwLGY9Zis4fDB9ZnVuY3Rpb24gSzMobCxjLGYscCl7dmFyIG09MDtmb3IobT0xLShjfD0wKSsoZnw9MCl8MCxwPShwfD0wKSsoYzw8Myl8MCxmPShs''@;'; put 'put ''fD0wKSsoYzw8Myl8MDttOylfW2Y+PjNdPStfW3A+PjNdLG09bSstMXwwLHA9cCs4fDAsZj1mKzh8MH1mdW5jdGlvbiBaVihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wO2ZvcihiPTA7ISgoMHxiKT49KDB8YykpOyl7Zm9yKGs9bCsoYjw8''@;'; put 'put ''Mil8MCxBPTAsdz0wOyEoKDB8dyk+PSgwfGYpKTspQT0rX1twKyh3PDwzKT4+M10qK19bKDB8YVtrPj4yXSkrKHc8PDMpPj4zXStBLHc9dysxfDA7X1ttKyhiPDwzKT4+M109QSxiPWIrMXwwfX1mdW5jdGlvbiBsSyhsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIEE9MCx3PTAs''@;'; put 'put ''Yj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wO2Zvcigodz0wfGFbKG18PTApPj4yXSk/KEE9MHxVYSgwfGFbdz4+Ml0sMHxBcigyMCpmfDAscCkpLHE9MHxVYSh3LGY8PDIpKTooQT0wfEYwKDB8QXIoMjAqZnwwLHApKSxxPTB8RjAoZjw8MikpLGFbbT4+Ml09cSx3PTA7Oyl7aWYoKDB8dyk+''@;'; put 'put ''PSgwfGYpKXttPTA7YnJlYWt9YVtxKyh3PDwyKT4+Ml09QSx3PXcrMXwwLEE9QSsocDw8Mil8MH1mb3IoOyEoKDB8bSk+PSgwfGYpKTspe2ZvcihrPTB8YVtsKygyMCptfDApKzQ+PjJdLE09MHxhW2wrKDIwKm18MCkrOD4+Ml0sRD0wfGFbbCsoMjAqbXwwKT4+Ml0sUj1xKyhtPDwyKXwwLEE9''@;'; put 'put ''MDshKCgwfEEpPj0oMHxwKSk7KXtmb3IoRz1jKyhBPDwyKXwwLGI9MCx3PTA7ISgoMHx3KT49KDB8RCkpOyliPStfWygwfGFbRz4+Ml0pKyhhW2srKHc8PDIpPj4yXTw8Myk+PjNdKitqbltNKyh3PDwyKT4+Ml0rYix3PXcrMXwwO2puWygwfGFbUj4+Ml0pKyhBPDwyKT4+Ml09YixBPUErMXww''@;'; put 'put ''fW09bSsxfDB9fWZ1bmN0aW9uIGE4KGwsYyl7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTAscD1jfD0wLG09bHw9MDttOylmPStfW3A+PjNdK2YscD1wKzh8MCxtPW0rLTF8MDtmb3IoZi89KygwfGwpO2w7KV9bYz4+M109K19bYz4+M10tZixjPWMrOHwwLGw9bCstMXwwfWZ1bmN0aW9uIE9mKGws''@;'; put 'put ''YyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO2Zvcih3PTA7ISgoMHx3KT49KDB8YykpOyl7Zm9yKGI9MHxhW2wrKDIwKnd8MCk+PjJdLGs9bCsoMjAqd3wwKSs4fDAsTT1sKygyMCp3fDApKzR8MCxtPTAsQT0wOyEoKDB8QSk+PSgwfGIpKTsp''@;'; put 'put ''bT0rX1tmKyhhWygwfGFbTT4+Ml0pKyhBPDwyKT4+Ml08PDMpPj4zXSoram5bKDB8YVtrPj4yXSkrKEE8PDIpPj4yXSttLEE9QSsxfDA7X1twKyh3PDwzKT4+M109bSx3PXcrMXwwfX1mdW5jdGlvbiAkMyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7''@;'; put 'put ''Zm9yKHc9MDshKCgwfHcpPj0oMHxjKSk7KXtmb3IoYj1sKyh3PDwyKXwwLG09MCxBPTA7KDB8QSkhPSgwfGMpOyltPStfW2YrKEE8PDMpPj4zXSoram5bKDB8YVtiPj4yXSkrKEE8PDIpPj4yXSttLEE9QSsxfDA7X1twKyh3PDwzKT4+M109bSx3PXcrMXwwfX1mdW5jdGlvbiBKRChsLGMsZixw''@;'; put 'put ''KXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxsKSk7KV9bcCsobTw8Myk+PjNdPStfW2MrKG08PDMpPj4zXS0rX1tmKyhtPDwzKT4+M10sbT1tKzF8MH1mdW5jdGlvbiBWayhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTA7Zm9yKG09''@;'; put 'put ''MDshKCgwfG0pPj0oMHxsKSk7KV9bcCsobTw8Myk+PjNdPStfW2YrKG08PDMpPj4zXSsgK19bYysobTw8Myk+PjNdLG09bSsxfDB9ZnVuY3Rpb24gankobCxjLGYscCl7bHw9MCxjfD0wLGY9K2YscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylfW3ArKG08PDMpPj4zXT0r''@;'; put 'put ''X1tjKyhtPDwzKT4+M10qZixtPW0rMXwwfWZ1bmN0aW9uIHpWKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylfW2YrKHA8PDMpPj4zXT0rX1tjKyhwPDwzKT4+M10scD1wKzF8MH1mdW5jdGlvbiB2cChsLGMsZil7bHw9MCxjfD0wLGZ8PTA7''@;'; put 'put ''dmFyIHA9MCxtPTA7Zm9yKHA9MCxtPTA7ISgoMHxtKT49KDB8bCkpOylwPStfW2YrKG08PDMpPj4zXSorX1tjKyhtPDwzKT4+M10rcCxtPW0rMXwwO3JldHVybitwfWZ1bmN0aW9uIHEzKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wLG09MDtmb3IoZj0wLHA9LTFlNTA7ISgoMHxmKT49KDB8''@;'; put 'put ''bCkpOyltPStlbygrICtfW2MrKGY8PDMpPj4zXSksZj1mKzF8MCxwPW0+cD9tOnA7cmV0dXJuK3B9ZnVuY3Rpb24gR1YobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wO2ZvcihiPTA7KDB8Yik8KDB8Yyk7KXtmb3IoQT0wLHc9MDshKCgwfHcpPj0o''@;'; put 'put ''MHxmKSk7KUE9K19bcCsodzw8Myk+PjNdKitfWygwfGFbbCsodzw8Mik+PjJdKSsoYjw8Myk+PjNdK0Esdz13KzF8MDtfW20rKGI8PDMpPj4zXT1BLGI9YisxfDB9fWZ1bmN0aW9uIGw4KGwsYyl7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTAscD1jfD0wLG09bHw9MDttOylmPStqbltwPj4yXStm''@;'; put 'put ''LHA9cCs0fDAsbT1tKy0xfDA7Zm9yKGYvPSsoMHxsKTtsOylqbltjPj4yXT0ram5bYz4+Ml0tZixjPWMrNHwwLGw9bCstMXwwfWZ1bmN0aW9uIGVkKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wO2Zv''@;'; put 'put ''cihtPTA7Oyl7aWYoKDB8bSk+PSgwfGMpKXt3PTAsaz0wLFI9YzticmVha31qbltwKyhtPDwyKT4+Ml09MCxtPW0rMXwwfWZvcig7ISgoMHxrKT49KDB8YykpOyl7Zm9yKEE9K2puW2wrKHc8PDIpPj4yXSooRD0ram5bZisoazw8Mik+PjJdKSxiPU09aysxfDAsbT13O209bSsxfDAsKDB8Yikh''@;'; put 'put ''PSgwfGMpOylHPStqbltmKyhiPDwyKT4+Ml0qKHBlPStqbltsKyhtPDwyKT4+Ml0pK0Esam5bKHE9cCsoYjw8Mil8MCk+PjJdPStqbltxPj4yXStwZSpELEE9RyxiPWIrMXwwO2puWyhxPXArKGs8PDIpfDApPj4yXT0ram5bcT4+Ml0rQSx3PXcrUnwwLGs9TSxSPVIrLTF8MH19ZnVuY3Rpb24g''@;'; put 'put ''WEQobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wO2ZvcihtPTA7ISgoMHxtKT49KDB8bCkpOylqbltwKyhtPDwyKT4+Ml09K2puW2YrKG08PDIpPj4yXSsgK2puW2MrKG08PDIpPj4yXSxtPW0rMXwwfWZ1bmN0aW9uIEtEKGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHB8PTA7''@;'; put 'put ''dmFyIG09MCxBPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxsKSk7KWpuWyhBPWMrKG08PDIpfDApPj4yXT0ram5bcCsobTw8Mik+PjJdKmYrICtqbltBPj4yXSxtPW0rMXwwfWZ1bmN0aW9uIHNLKGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHB8PTA7dmFyIG09MDtmb3IobT0wOyEoKDB8bSk+PSgw''@;'; put 'put ''fGwpKTspam5bcCsobTw8Mik+PjJdPStqbltjKyhtPDwyKT4+Ml0qZixtPW0rMXwwfWZ1bmN0aW9uIHVLKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2ZvcihwPTA7ISgoMHxwKT49KDB8bCkpOylhW2YrKHA8PDIpPj4yXT1hW2MrKHA8PDIpPj4yXSxwPXArMXwwfWZ1bmN0aW9uIFg3''@;'; put 'put ''KGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MDtmb3IocD0wLG09MDshKCgwfG0pPj0oMHxsKSk7KXArPStqbltmKyhtPDwyKT4+Ml0qK2puW2MrKG08PDIpPj4yXSxtPW0rMXwwO3JldHVybitwfWZ1bmN0aW9uICREKGwsYyxmKXtsfD0wLGM9K2MsZnw9MDt2YXIgcD0wO2Zvcihw''@;'; put 'put ''PTA7ISgoMHxwKT49KDB8bCkpOylfW2YrKHA8PDMpPj4zXT1jLHA9cCsxfDB9ZnVuY3Rpb24gWnkobCxjLGYpe2x8PTAsYz0rYyxmfD0wO3ZhciBwPTA7Zm9yKHA9MDshKCgwfHApPj0oMHxsKSk7KWpuW2YrKHA8PDIpPj4yXT1jLHA9cCsxfDB9ZnVuY3Rpb24gTzJlKGwsYyl7bHw9MCxjfD0w''@;'; put 'put ''O3ZhciBmPTAscD0wLG09MDtmb3IoZj0tMS4wMDAwMDAwMTUwNDc0NjYyZTMwLHA9MDshKCgwfHApPj0oMHxsKSk7KWY9KG09K2VvKCsgK2puW2MrKHA8PDIpPj4yXSkpPmY/bTpmLHA9cCsxfDA7cmV0dXJuK2Z9ZnVuY3Rpb24gamsobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wO2Zv''@;'; put 'put ''cihmPTA7ISgoMHxmKT49KDB8bCkpOylqblsocD1jKyhmPDwyKXwwKT4+Ml09KG09K2puW3A+PjJdKSptLGY9ZisxfDB9ZnVuY3Rpb24gY0sobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTA7ISgoMHxmKT49KDB8bCkpOykwIT0obT0ram5bKHA9YysoZjw8Mil8MCk+PjJd''@;'; put 'put ''KSYmKGpuW3A+PjJdPTEvbSksZj1mKzF8MH1mdW5jdGlvbiBXVihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTA7Zm9yKHA9MDshKCgwfHApPj0oMHxsKSk7KShtPStqbltjKyhwPDwyKT4+Ml0pPj0wJiYoam5bZisocDw8Mik+PjJdPStEMCgrbSkpLHA9cCsxfDB9ZnVuY3Rpb24g''@;'; put 'put ''ZksobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wO2ZvcihmPTA7ISgoMHxmKT49KDB8bCkpOykobT0ram5bKHA9YysoZjw8Mil8MCk+PjJdKT4wJiYoam5bcD4+Ml09MS8rRDAoK20pKSxmPWYrMXwwfWZ1bmN0aW9uIHp5KGwsYyl7Y3w9MDt2YXIgZj0wO2FbKGx8PTApPj4yXT0wLDMm''@;'; put 'put ''YyYmKGM9NCUoYz4+PjApfDA/MHxBcig0LygoMHxmdW5jdGlvbiBSMmUobCl7bHw9MDt2YXIgYz0wLGY9MDtmPTQ7ZTpmb3IoOzspe2ZvcihjPWY7Oyl7aWYoKDB8Yyk9PSgwfGwpKWJyZWFrIGU7aWYoKDB8Yyk8PSgwfGwpKWJyZWFrO2M9Yy1sfDB9Zj1jLGw9bC1jfDB9cmV0dXJuIDB8bH0o''@;'; put 'put ''YykpPj4+MCl8MCxjKTo0KSxhW2wrOD4+Ml09YyxjPTB8YVsobD1sKzR8MCk+PjJdO2U6ZG97aWYoMHxjKWZvcig7Oyl7aWYoIWMpYnJlYWsgZTtmPTB8YVtjPj4yXSxGdCgwfGFbYys0Pj4yXSksRnQoYyksYz1mfX13aGlsZSgwKTthW2w+PjJdPTB9ZnVuY3Rpb24gR3kobCl7dmFyIGM9MCxm''@;'; put 'put ''PTAscD0wLG09MDtpZighKGM9MHxhWyhsfD0wKT4+Ml0pKXtmb3IoZj0wfGFbbCs4Pj4yXSxwPTB8UW4oOCksbT0wfFFuKDB8QXIoMHxhWzQ2ODU1XSxmKSksYVtwKzQ+PjJdPW0sYz0wOyEoKDB8Yyk+PSgwfGFbNDY4NTVdKSk7KVlWKG0rKDB8QXIoYyxmKSl8MCxsKSxjPWMrMXwwO2FbcD4+''@;'; put 'put ''Ml09YVsoYz1sKzR8MCk+PjJdLGFbYz4+Ml09cCxjPTB8YVtsPj4yXX1yZXR1cm4gYVtsPj4yXT1hW2M+PjJdLDB8Y31mdW5jdGlvbiBZVihsLGMpe2FbKGx8PTApPj4yXT1hWyhjfD0wKT4+Ml0sYVtjPj4yXT1sfWZ1bmN0aW9uIEIyZShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgTSxE''@;'; put 'put ''LG09MCxBPTAsdz0wLGI9MCxrPTA7Zm9yKEQ9MHx2cigoY3w9MCk8PDMpLG09MHxhWyhNPWwrOHwwKT4+Ml0sZnVuY3Rpb24gZDllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIGIscD0wLG09MCxBPTAsdz0wLGs9MCxNPTA7Zm9yKGI9MTYrKGx8PTApfDAsQT0wOyEoKDB8QSk+PSgwfGMpKTspe2lm''@;'; put 'put ''KDB8YVtiPj4yXSl7Zm9yKGs9MHxhW2wrKDIwKkF8MCk+PjJdLE09bCsoMjAqQXwwKSs4fDAsdz1sKygyMCpBfDApKzE2fDAscD0wLG09MTshKCgwfG0pPj0oMHxrKSk7KXArPStqblsoMHxhW3c+PjJdKSsobTw8Mik+PjJdKitqblsoMHxhW00+PjJdKSsobTw8Mik+PjJdLG09bSsxfDA7X1tm''@;'; put 'put ''KyhBPDwzKT4+M109cH1BPUErMXwwfX0obCxjLEQpLGZ1bmN0aW9uIEQyZShsLGMpe2x8PTAsY3w9MDt2YXIgZj0wO2ZvcihmPTA7ISgoMHxmKT49KDB8bCkpOylfW2MrKGY8PDMpPj4zXT0rKDB8KDB8VDEoKSklNTAwKSxmPWYrMXwwO2E4KGwsYyl9KGMsZiksQT0wLHc9MDshKCgwfHcpPj0o''@;'; put 'put ''MHxjKSk7KUE9KDB8YVtsKygyMCp3fDApPj4yXSkrQXwwLHc9dysxfDA7Zm9yKEE9MHxRbihBPDwyKSxiPTA7ISgoMHxiKT49KDB8YykpOyl7Zm9yKGFbbCsoMjAqYnwwKSs4Pj4yXT1BLGpuW0E+PjJdPSsoMS0oaz0wfGFbbCsoMjAqYnwwKT4+Ml0pfDApLHc9MTshKCgwfHcpPj0oMHxrKSk7''@;'; put 'put ''KWpuW0ErKHc8PDIpPj4yXT0xLHc9dysxfDA7QT1BKyhrPDwyKXwwLGI9YisxfDB9Zm9yKHc9MHxmdW5jdGlvbiBTVihsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAsbT0rbSxBfD0wO3ZhciBrLE0sRCxSLHEscGUsZ2UsT2Usdz0wLGI9MCxHPTAsYmU9MDtmb3IoT2U9bGUsbGU9bGUrMTZ8''@;'; put 'put ''MCxNPU9lLHE9MHxRbihHPShwfD0wKTw8MykscGU9MHxRbihHKSxnZT0wfFFuKEcpLEQ9MHxRbihHKSxSPTB8UW4oRykselYocCxmLEc9MHxRbihHKSksYTgocCxHKSxhOChwLGMpLE9mKGwscCxjLEQpLEpEKHAsRyxELHEpLHpWKHAscSxwZSksaz1BKy0xfDAsZj0wLHc9K3ZwKHAscSxxKTs7''@;'; put 'put ''KXtpZigoMHxmKT49KDB8QSkpe2Y9MDticmVha31pZighKCtxMyhwLHEpPm0pKXtmPTA7YnJlYWt9aWYoT2YobCxwLHBlLGdlKSwwPT0oYj0rdnAocCxwZSxnZSkpKXtmPTA7YnJlYWt9aWYoankocCxwZSxiPXcvYixSKSxWayhwLGMsUixjKSwoMHxmKTwoMHxrKSl7aWYoankocCxnZSxiLGdl''@;'; put 'put ''KSxKRChwLHEsZ2UscSksYj0rdnAocCxxLHEpLDA9PXcpe2JlPTc7YnJlYWt9ankocCxwZSxiL3cscGUpLFZrKHAscSxwZSxwZSksdz1ifWY9ZisxfDB9cmV0dXJuIDc9PSgwfGJlKSYmKCRyKDEsOTMyNDIsTSksZj0xKSxGdChxKSxGdChwZSksRnQoZ2UpLEZ0KEQpLEZ0KFIpLEZ0KEcpLGxl''@;'; put 'put ''PU9lLDB8Zn0obCxmLEQsYywuMDAxLHApLEZ0KDB8YVtNPj4yXSksQT0wOyEoKDB8QSk+PSgwfGMpKTspYVtsKygyMCpBfDApKzg+PjJdPW0sbT1tKyhhW2wrKDIwKkF8MCk+PjJdPDwyKXwwLEE9QSsxfDA7cmV0dXJuIEZ0KEQpLHc+Pj4zMXwwfWZ1bmN0aW9uIFVWKGwsYyxmLHAsbSxBLHcs''@;'; put 'put ''YixrKXtsfD0wLHc9K3csbD1sZSxsZT1sZSsxNnwwLDB8YVs0NjkxM118fChhWzQ2OTEzXT0xLCRyKDEsOTM4MjAsbCkpLGxlPWx9ZnVuY3Rpb24gUDJlKGwsYyxmLHApe3ZhciBtLEEsdyxiLGs7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLG09bGUsbGU9bGUrMzJ8MCxrPW0rMjB8MCxiPW0rMTJ8''@;'; put 'put ''MCx3PW0rOHwwLGFbKEE9bSsxNnwwKT4+Ml09cHw9MCxhW2I+PjJdPTAsYVt3Pj4yXT0wLGZ1bmN0aW9uIFBoKGwsYyxmLHApe3ZhciBtLEE7bHw9MCxjfD0wLHB8PTAsbT1sZSxsZT1sZSsxNnwwLGZ1bmN0aW9uICRmKGwsYyl7YVsobHw9MCk+PjJdPTB8UW4oKGN8PTApPDw0KSxhW2wrND4+''@;'; put 'put ''Ml09YyxhW2wrOD4+Ml09MH0oQT1tLGZ8PTApLGZ1bmN0aW9uIHFmKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBrLE0sRCxSLHEscGUsZ2UsT2UsTGUsUmUscnQsYXQsU3QsbT0wLEE9MCx3PTAsYj0wLEc9MCxiZT0wLEhlPTAsVmU9MCxxZT0wLFdlPTA7Zm9yKFN0PWxlLGxlPWxlKzY0''@;'; put 'put ''fDAscGU9U3QrMzJ8MCxPZT1TdCs0OHwwLExlPVN0KzE2fDAsUmU9U3QscnQ9MHxRbihiZT0oY3w9MCk8PDIpLGF0PTB8UW4oYmUpLGFbTGU+PjJdPTAsYVtMZSs0Pj4yXT0wLGFbTGUrOD4+Ml09MCxhW0xlKzEyPj4yXT0wLGdlPTB8UW4oYmUpLGJlPTB8UW4oYmUpLG09MDshKCgwfG0pPj0o''@;'; put 'put ''MHxjKSk7KWFbZ2UrKG08PDIpPj4yXT1tLG09bSsxfDA7Zm9yKFE3KGwsZ2UsMCxxPWMrLTF8MCksbT0wOyEoKDB8bSk+PSgwfGMpKTspYVtiZSsoYVtnZSsobTw8Mik+PjJdPDwyKT4+Ml09bSxtPW0rMXwwO2ZvcihmdW5jdGlvbiBBUChsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIG0sQT0wLHc9''@;'; put 'put ''MCxiPTAsaz0wLE09MDtmb3IoYVs0KyhsfD0wKT4+Ml09bT0ocHw9MCktMXwwLGFbbCs4Pj4yXT1tLGFbbD4+Ml09MHxRbihtPDw0KSxwPTA7ISgoMHxwKT49KDB8bSkpOyliPStfW2MrKChrPTB8YVtmKygoQT1wKzF8MCk8PDIpPj4yXSk8PDMpPj4zXS0rX1tjKygoTT0wfGFbZisocDw8Mik+''@;'; put 'put ''PjJdKTw8Myk+PjNdLGFbKHc9MHxhW2w+PjJdKSsocDw8NCk+PjJdPU0sYVt3KyhwPDw0KSs0Pj4yXT1rLF9bdysocDw8NCkrOD4+M109YixwPUE7Zm9yKHA9KDB8bSkvMnwwOyEoKDB8cCk8PS0xKTspXzUobCxwKSxwPXArLTF8MH0oT2UsbCxnZSxjKSxtPTE7Oyl7aWYoKDB8bSk+PSgwfGMp''@;'; put 'put ''KXttPTA7YnJlYWt9YVtydCsoYVtnZSsobTw8Mik+PjJdPDwyKT4+Ml09YVtnZSsobSstMTw8Mik+PjJdLG09bSsxfDB9Zm9yKDshKCgwfG0pPj0oMHxxKSk7KWFbYXQrKGFbZ2UrKG08PDIpPj4yXTw8Mik+PjJdPWFbZ2UrKChHPW0rMXwwKTw8Mik+PjJdLG09Rztmb3Ioaz1wKzh8MCxNPXAr''@;'; put 'put ''NHwwLEQ9TGUrNHwwLFI9UmUrNHwwLEc9UmUrOHwwLGI9MDshKCgwfGIpPj0oMHxmKSkmJigwfHlQKE9lLExlKSk8PDI0Pj4yNDspKDB8KG09MHxhW2s+PjJdKSk8KDB8KGM9MHxhW00+PjJdKSk/Yz0wfGFbcD4+Ml06KGFbTT4+Ml09Yzw8MSxjPTB8VWEoMHxhW3A+PjJdLGM8PDUpLGFbcD4+''@;'; put 'put ''Ml09YyxtPTB8YVtrPj4yXSksYVtrPj4yXT1tKzEsYVsobT1jKyhtPDw0KXwwKT4+Ml09YVtMZT4+Ml0sYVttKzQ+PjJdPWFbTGUrND4+Ml0sYVttKzg+PjJdPWFbTGUrOD4+Ml0sYVttKzEyPj4yXT1hW0xlKzEyPj4yXSx3PTB8YVtiZSsoKEE9MHxhW0Q+PjJdKTw8Mik+PjJdLCgwfChjPTB8''@;'; put 'put ''YVtiZSsoKG09MHxhW0xlPj4yXSk8PDIpPj4yXSkpPjAmJigwfGFbYmUrKGFbKFZlPWF0KygoSGU9MHxhW2dlKyhjKy0xPDwyKT4+Ml0pPDwyKXwwKT4+Ml08PDIpPj4yXSk8KDB8dykmJihhW1JlPj4yXT1IZSxhW1I+PjJdPUEsX1tHPj4zXT0rX1tsKyhBPDwzKT4+M10tK19bbCsoSGU8PDMp''@;'; put 'put ''Pj4zXSxhW3BlPj4yXT1hW1JlPj4yXSxhW3BlKzQ+PjJdPWFbUmUrND4+Ml0sYVtwZSs4Pj4yXT1hW1JlKzg+PjJdLGFbcGUrMTI+PjJdPWFbUmUrMTI+PjJdLHp4KE9lLHBlKSxhW1ZlPj4yXT1BLGFbcnQrKEE8PDIpPj4yXT1IZSksKDB8dyk8KDB8cSkmJigwfGFbYmUrKGFbKFdlPXJ0Kygo''@;'; put 'put ''cWU9MHxhW2dlKyh3KzE8PDIpPj4yXSk8PDIpfDApPj4yXTw8Mik+PjJdKT4oMHxjKSYmKGFbUmU+PjJdPW0sYVtSPj4yXT1xZSxfW0c+PjNdPStfW2wrKHFlPDwzKT4+M10tK19bbCsobTw8Myk+PjNdLGFbcGU+PjJdPWFbUmU+PjJdLGFbcGUrND4+Ml09YVtSZSs0Pj4yXSxhW3BlKzg+PjJd''@;'; put 'put ''PWFbUmUrOD4+Ml0sYVtwZSsxMj4+Ml09YVtSZSsxMj4+Ml0sengoT2UscGUpLGFbV2U+PjJdPW0sYVthdCsobTw8Mik+PjJdPXFlKSxiPWIrMXwwO0Z0KHJ0KSxGdChhdCksRnQoZ2UpLEZ0KGJlKSxmdW5jdGlvbiB6XyhsKXtGdCgwfGFbKGx8PTApPj4yXSl9KE9lKSxsZT1TdH0obCxjLGYs''@;'; put 'put ''QSksZnVuY3Rpb24gVngobCxjLGYpe2N8PTAsZnw9MDt2YXIgYixrLE0scD0wLG09MCxBPTAsdz0wLEQ9MCxSPTA7Zm9yKGs9MHxRbigobHw9MCk8PDIpLHA9MHxRbihBPShiPSgodz0wfGFbKE09Yys4fDApPj4yXSk8PDEpK2x8MCk8PDIpLEE9MHxRbihBKSxtPTA7ISgoMHxtKT49KDB8bCkp''@;'; put 'put ''OylhW2srKG08PDIpPj4yXT0xLG09bSsxfDA7Zm9yKG09MDs7KXtpZigoMHxtKT49KDB8dykpe209MDticmVha31EPTB8YVsoUj0wfGFbYz4+Ml0pKyhtPDw0KSs0Pj4yXSxhWyhSPWsrKGFbUisobTw8NCk+PjJdPDwyKXwwKT4+Ml09MSsoMHxhW1I+PjJdKSxhWyhEPWsrKEQ8PDIpfDApPj4y''@;'; put 'put ''XT0xKygwfGFbRD4+Ml0pLG09bSsxfDB9Zm9yKDshKCgwfG0pPj0oMHxiKSk7KWpuW0ErKG08PDIpPj4yXT0xLG09bSsxfDA7Zm9yKHc9MHxRbigyMCpsfDApLGFbZj4+Ml09dyxtPTA7ISgoMHxtKT49KDB8bCkpOylhW3crKDIwKm18MCk+PjJdPTEsYVt3KygyMCptfDApKzg+PjJdPUEsYVt3''@;'; put 'put ''KygyMCptfDApKzQ+PjJdPXAsYVtwPj4yXT1tLGpuW0E+PjJdPTAsQT1BKygoUj0wfGFbaysobTw8Mik+PjJdKTw8Mil8MCxwPXArKFI8PDIpfDAsbT1tKzF8MDtmb3IoRnQoayk7cD0wfGFbTT4+Ml07KWFbTT4+Ml09Uj1wKy0xfDAsWngodywwfGFbKEQ9MHxhW2M+PjJdKSsoUjw8NCk+PjJd''@;'; put 'put ''LDB8YVtEKyhSPDw0KSs0Pj4yXSl9KGMsQSxwKSxmdW5jdGlvbiBqeChsKXtGdCgwfGFbKGx8PTApPj4yXSl9KEEpLGxlPW19KDB8YVtsPj4yXSxmLGY8PDIsayksbEsoMHxhW2s+PjJdLGwsZixjLGIpLGZ1bmN0aW9uIGFLKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7''@;'; put 'put ''dmFyIHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2ZvcigoYj0wfGFbKEF8PTApPj4yXSk/KHc9MHxVYSgwfGFbYj4+Ml0sMHxBcihmPDwzLG0pKSxSPTB8VWEoYixmPDwyKSk6KHc9MHxGMCgwfEFyKGY8PDMsbSkpLFI9MHxGMChmPDwyKSksYVtBPj4yXT1SLGI9MDs7KXtpZigoMHxiKT49KDB8''@;'; put 'put ''Zikpe0E9MDticmVha31hW1IrKGI8PDIpPj4yXT13LGI9YisxfDAsdz13KyhtPDwzKXwwfWZvcig7ISgoMHxBKT49KDB8ZikpOyl7Zm9yKE09bCsoQTw8Mil8MCxEPVIrKEE8PDIpfDAsYj0wOygwfGIpPCgwfG0pOyl7Zm9yKGs9MCx3PTA7ISgoMHx3KT49KDB8cCkpOylrPStfWygwfGFbTT4+''@;'; put 'put ''Ml0pKyh3PDwzKT4+M10qK2puWygwfGFbYysodzw8Mik+PjJdKSsoYjw8Mik+PjJdK2ssdz13KzF8MDtfWygwfGFbRD4+Ml0pKyhiPDwzKT4+M109ayxiPWIrMXwwfUE9QSsxfDB9fShsLDB8YVtiPj4yXSxjLGYsYyx3KSxGdCgwfGFbYVtiPj4yXT4+Ml0pLEZ0KDB8YVtiPj4yXSkscD0yNTUm''@;'; put 'put ''KDB8b0soMHxhW3c+PjJdLGMsMSxBLG0sMSkpLGxlPW0sMHxwfWZ1bmN0aW9uIHA5ZShsKXtGdCgwfGFbMzYrKGx8PTApPj4yXSl9ZnVuY3Rpb24gSDJlKGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wO2Rve2lmKDQ9PSgwfGMpKXtpZihjPWwrMTZ8MCwoZj0rX1tsKzg+PjNdKT09KHA9K19b''@;'; put 'put ''bCsyND4+M10pKXtpZigrX1tsKzQwPj4zXSE9K19bbCs1Nj4+M10pe2M9MDticmVha31pZigrX1tsPj4zXSE9K19bbCs0OD4+M10pe2M9MDticmVha31jPStfW2M+PjNdPT0rX1tsKzMyPj4zXTticmVha31jPStfW2w+PjNdPT0rX1tjPj4zXSYmK19bbCszMj4+M109PStfW2wrNDg+PjNdJiZm''@;'; put 'put ''PT0rX1tsKzU2Pj4zXT9wPT0rX1tsKzQwPj4zXTowfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAxJmN8MH1mdW5jdGlvbiBRVihsLGMsZixwKXtjfD0wLGY9K2YscD0rcDt2YXIgQSx3LGIsbT0wLGs9MCxNPTA7Zm9yKGI9MHxRbigodz0oMHwobT0obT0wfExpKGx8PTAsMTAyNzA1KSk/MHxy''@;'; put 'put ''MyhtKTowKSk8Mz8yMDptKTw8NCksbD1sKzE2fDAsQT0xLysoMHx3KSxtPTA7ISgoMHxtKT49KDB8dykpOylfW2IrKG08PDQpPj4zXT0oLjUqK19bMzIrKE09MHxhW2w+PjJdKT4+M10rZikqK2hhKCsoaz1BKisoMHxtKSo2LjI4MzE4NTMwNzE3OTU4NikpLF9bYisobTw8NCkrOD4+M109KC41''@;'; put 'put ''KitfW00rNDA+PjNdK3ApKitEYSgrayksbT1tKzF8MDtyZXR1cm4gYVtjPj4yXT13LDB8Yn1mdW5jdGlvbiBKVihsLGMsZixwLG0pe2Z8PTAsbT0rbSxfWyhsfD0wKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorKDB8KGN8PTApKSsocD0rcCksX1tsKzg+PjNdPS4wMTM4ODg4ODg4ODg4ODg4''@;'; put 'put ''ODgqKygwfGYpK219ZnVuY3Rpb24gTjJlKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2ZvcihtPTEsQT1iPStfWzgrKGx8PTApPj4zXSx3PWs9K19bbD4+M107ISgoMHxtKT49KDB8YykpOyltPW0rMXwwLEE9KFI9K19bbCsyND4+''@;'; put 'put ''M10pPkE/UjpBLHc9KEQ9K19bKE09bCsxNnwwKT4+M10pPnc/RDp3LGI9UjxiP1I6YixrPUQ8az9EOmssbD1NO19bZj4+M109ayxfW2YrOD4+M109YixfW3A+PjNdPXcsX1twKzg+PjNdPUF9ZnVuY3Rpb24gcUQobCxjLGYpe2Y9K2YsX1sobHw9MCk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgq''@;'; put 'put ''KGM9K2MpLF9bbCs4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KmZ9ZnVuY3Rpb24gdjllKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBiLE0sRCxSLEcscGUsbT0wLEE9MCx3PTAsaz0wLHE9MCxnZT0wLGJlPTAsT2U9MCxMZT0wO3BlPWxlLGxlPWxlKzEyOHwwLFI9cGUrMTEyfDAsTT1w''@;'; put 'put ''ZSs4MHwwLG09cGUrNjR8MCxHPXBlKzQ4fDAscT1wZSszMnwwLGI9cGUrMTZ8MCxrPXBlLGFbKEQ9cGUrOTZ8MCk+PjJdPWFbKGx8PTApPj4yXSxhW0QrND4+Ml09YVtsKzQ+PjJdLGFbRCs4Pj4yXT1hW2wrOD4+Ml0sYVtEKzEyPj4yXT1hW2wrMTI+PjJdLGFbUj4+Ml09YVtjPj4yXSxhW1Ir''@;'; put 'put ''ND4+Ml09YVtjKzQ+PjJdLGFbUis4Pj4yXT1hW2MrOD4+Ml0sYVtSKzEyPj4yXT1hW2MrMTI+PjJdLFJWKEcsRCxSKSxBPWMrMTZ8MCxhW0Q+PjJdPWFbbD4+Ml0sYVtEKzQ+PjJdPWFbbCs0Pj4yXSxhW0QrOD4+Ml09YVtsKzg+PjJdLGFbRCsxMj4+Ml09YVtsKzEyPj4yXSxhW1I+PjJdPWFb''@;'; put 'put ''QT4+Ml0sYVtSKzQ+PjJdPWFbQSs0Pj4yXSxhW1IrOD4+Ml09YVtBKzg+PjJdLGFbUisxMj4+Ml09YVtBKzEyPj4yXSxSVihxLEQsUiksYVtEPj4yXT1hW2Y+PjJdLGFbRCs0Pj4yXT1hW2YrND4+Ml0sYVtEKzg+PjJdPWFbZis4Pj4yXSxhW0QrMTI+PjJdPWFbZisxMj4+Ml0sYVtSPj4yXT1h''@;'; put 'put ''W3A+PjJdLGFbUis0Pj4yXT1hW3ArND4+Ml0sYVtSKzg+PjJdPWFbcCs4Pj4yXSxhW1IrMTI+PjJdPWFbcCsxMj4+Ml0sUlYoYixELFIpLHc9cCsxNnwwLGFbRD4+Ml09YVtmPj4yXSxhW0QrND4+Ml09YVtmKzQ+PjJdLGFbRCs4Pj4yXT1hW2YrOD4+Ml0sYVtEKzEyPj4yXT1hW2YrMTI+PjJd''@;'; put 'put ''LGFbUj4+Ml09YVt3Pj4yXSxhW1IrND4+Ml09YVt3KzQ+PjJdLGFbUis4Pj4yXT1hW3crOD4+Ml0sYVtSKzEyPj4yXT1hW3crMTI+PjJdLFJWKGssRCxSKSxhW20+PjJdPWFbRz4+Ml0sYVttKzQ+PjJdPWFbRys0Pj4yXSxhW20rOD4+Ml09YVtHKzg+PjJdLGFbbSsxMj4+Ml09YVtHKzEyPj4y''@;'; put 'put ''XSxhW00+PjJdPWFbcT4+Ml0sYVtNKzQ+PjJdPWFbcSs0Pj4yXSxhW00rOD4+Ml09YVtxKzg+PjJdLGFbTSsxMj4+Ml09YVtxKzEyPj4yXSxhW0Q+PjJdPWFbYj4+Ml0sYVtEKzQ+PjJdPWFbYis0Pj4yXSxhW0QrOD4+Ml09YVtiKzg+PjJdLGFbRCsxMj4+Ml09YVtiKzEyPj4yXSxhW1I+PjJd''@;'; put 'put ''PWFbaz4+Ml0sYVtSKzQ+PjJdPWFbays0Pj4yXSxhW1IrOD4+Ml09YVtrKzg+PjJdLGFbUisxMj4+Ml09YVtrKzEyPj4yXTtkb3tpZigwfEE5ZShtLE0sRCxSKSl7aWYoMSYobT0wfGFbYys0MD4+Ml0pfDAmJjEmYVtwKzQwPj4yXXwwKXttPTE7YnJlYWt9aWYoMiZtfDAmJjImYVtwKzQwPj4y''@;'; put 'put ''XXwwKXttPSEoKE9lPStfW2wrOD4+M10tK19bZis4Pj4zXSkqT2UrKGJlPStfW2w+PjNdLStfW2Y+PjNdKSpiZT4oZ2U9K19bQT4+M10tK19bYz4+M10rICtfW3c+PjNdLStfW3A+PjNdKSpnZSouMjUpO2JyZWFrfWlmKChtPTB8YVs0NjkxNV0pP3c9MHxhWzQ2OTE2XTooYVs0NjkxNV09MHxR''@;'; put 'put ''bihhWzQ2OTE0XTw8NCksdz0wfFFuKGFbNDY5MTRdPDw0KSxhWzQ2OTE2XT13LG09MHxhWzQ2OTE1XSksTGU9MHxhW2MrMzY+PjJdLEE9MHxhWyhjPWMrMzJ8MCk+PjJdLGFbUj4+Ml09YVtsPj4yXSxhW1IrND4+Ml09YVtsKzQ+PjJdLGFbUis4Pj4yXT1hW2wrOD4+Ml0sYVtSKzEyPj4yXT1h''@;'; put 'put ''W2wrMTI+PjJdLGhLKExlLEEsUixtKSxsPTB8YVtwKzM2Pj4yXSxwPTB8YVsoQT1wKzMyfDApPj4yXSxhW1I+PjJdPWFbZj4+Ml0sYVtSKzQ+PjJdPWFbZis0Pj4yXSxhW1IrOD4+Ml09YVtmKzg+PjJdLGFbUisxMj4+Ml09YVtmKzEyPj4yXSxoSyhsLHAsUix3KSwwfHk5ZShtLHcsMHxhW2M+''@;'; put 'put ''PjJdLDB8YVtBPj4yXSkpbT0xO2Vsc2V7aWYoYVtNPj4yXT1hWyhtPTB8YVs0NjkxNV0pPj4yXSxhW00rND4+Ml09YVttKzQ+PjJdLGFbTSs4Pj4yXT1hW20rOD4+Ml0sYVtNKzEyPj4yXT1hW20rMTI+PjJdLGFbRD4+Ml09YVtiPj4yXSxhW0QrND4+Ml09YVtiKzQ+PjJdLGFbRCs4Pj4yXT1h''@;'; put 'put ''W2IrOD4+Ml0sYVtEKzEyPj4yXT1hW2IrMTI+PjJdLGFbUj4+Ml09YVtrPj4yXSxhW1IrND4+Ml09YVtrKzQ+PjJdLGFbUis4Pj4yXT1hW2srOD4+Ml0sYVtSKzEyPj4yXT1hW2srMTI+PjJdLDB8VjJlKE0sRCxSKSYmKGs9MHxhWzQ2OTE2XSxMZT0wfGFbQT4+Ml0sYVtSPj4yXT1hW20+PjJd''@;'; put 'put ''LGFbUis0Pj4yXT1hW20rND4+Ml0sYVtSKzg+PjJdPWFbbSs4Pj4yXSxhW1IrMTI+PjJdPWFbbSsxMj4+Ml0sMHxqMmUoayxMZSxSKSkpe209MTticmVha31hW00+PjJdPWFbKG09MHxhWzQ2OTE2XSk+PjJdLGFbTSs0Pj4yXT1hW20rND4+Ml0sYVtNKzg+PjJdPWFbbSs4Pj4yXSxhW00rMTI+''@;'; put 'put ''PjJdPWFbbSsxMj4+Ml0sYVtEPj4yXT1hW0c+PjJdLGFbRCs0Pj4yXT1hW0crND4+Ml0sYVtEKzg+PjJdPWFbRys4Pj4yXSxhW0QrMTI+PjJdPWFbRysxMj4+Ml0sYVtSPj4yXT1hW3E+PjJdLGFbUis0Pj4yXT1hW3ErND4+Ml0sYVtSKzg+PjJdPWFbcSs4Pj4yXSxhW1IrMTI+PjJdPWFbcSsx''@;'; put 'put ''Mj4+Ml0sMHxWMmUoTSxELFIpPyhxPTB8YVs0NjkxNV0sTGU9MHxhW2M+PjJdLGFbUj4+Ml09YVttPj4yXSxhW1IrND4+Ml09YVttKzQ+PjJdLGFbUis4Pj4yXT1hW20rOD4+Ml0sYVtSKzEyPj4yXT1hW20rMTI+PjJdLG09MCE9KDB8ajJlKHEsTGUsUikpKTptPTB9fWVsc2UgbT0wfXdoaWxl''@;'; put 'put ''KDApO3JldHVybiBsZT1wZSwxJm18MH1mdW5jdGlvbiBBOWUobCxjLGYscCl7cmV0dXJuIGN8PTAsZnw9MCwwfCgrX1sobHw9MCk+PjNdPD0rX1socHw9MCk+PjNdJiYrX1tmPj4zXTw9K19bYz4+M10mJitfW2wrOD4+M108PStfW3ArOD4+M10/K19bZis4Pj4zXTw9K19bYys4Pj4zXSYxOjAp''@;'; put 'put ''fWZ1bmN0aW9uIGhLKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBBLG09MDtmb3IoQT04KyhmfD0wKXwwLG09MDshKCgwfG0pPj0oMHxjKSk7KV9bcD4+M109K19bZj4+M10rICtfW2w+PjNdLF9bcCs4Pj4zXT0rX1tBPj4zXSsgK19bbCs4Pj4zXSxtPW0rMXwwLGw9bCsxNnwwLHA9cCsx''@;'; put 'put ''NnwwfWZ1bmN0aW9uIHk5ZShsLGMsZixwKXtsfD0wLGN8PTA7dmFyIHEscGUsZ2UsYmUsT2UsTGUsUmUsSGUsVmUscWUscnQsV2UsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAsYXQ9MCxTdD0wO2ZvcihXZT1sZSxsZT1sZSsxMTJ8MCxiZT1XZSs5NnwwLGdlPVdlKzgwfDAs''@;'; put 'put ''cGU9V2UrNjR8MCxxPVdlKzQ4fDAsTGU9V2UrMzJ8MCxSZT1XZSsxNnwwLEhlPVdlLFZlPShmfD0wKS0xfDAscWU9KHB8PTApLTF8MCxydD1mPDwxLE9lPXA8PDEsbT0wLEE9MCx3PTAsYj0wOzspe2lmKFN0PWwrKCgoVmUrbXwwKSUoMHxmKXwwKTw8NCl8MCxhW2dlPj4yXT1hWyhhdD1sKyht''@;'; put 'put ''PDw0KXwwKT4+Ml0sYVtnZSs0Pj4yXT1hW2F0KzQ+PjJdLGFbZ2UrOD4+Ml09YVthdCs4Pj4yXSxhW2dlKzEyPj4yXT1hW2F0KzEyPj4yXSxhW2JlPj4yXT1hW1N0Pj4yXSxhW2JlKzQ+PjJdPWFbU3QrND4+Ml0sYVtiZSs4Pj4yXT1hW1N0Kzg+PjJdLGFbYmUrMTI+PjJdPWFbU3QrMTI+PjJd''@;'; put 'put ''LFpYKExlLGdlLGJlKSxSPWMrKCgocWUrQXwwKSUoMHxwKXwwKTw8NCl8MCxhW2dlPj4yXT1hWyhHPWMrKEE8PDQpfDApPj4yXSxhW2dlKzQ+PjJdPWFbRys0Pj4yXSxhW2dlKzg+PjJdPWFbRys4Pj4yXSxhW2dlKzEyPj4yXT1hW0crMTI+PjJdLGFbYmU+PjJdPWFbUj4+Ml0sYVtiZSs0Pj4y''@;'; put 'put ''XT1hW1IrND4+Ml0sYVtiZSs4Pj4yXT1hW1IrOD4+Ml0sYVtiZSsxMj4+Ml09YVtSKzEyPj4yXSxaWChSZSxnZSxiZSksYVtwZT4+Ml09YVs0NjU0MF0sYVtwZSs0Pj4yXT1hWzQ2NTQxXSxhW3BlKzg+PjJdPWFbNDY1NDJdLGFbcGUrMTI+PjJdPWFbNDY1NDNdLGFbZ2U+PjJdPWFbTGU+PjJd''@;'; put 'put ''LGFbZ2UrND4+Ml09YVtMZSs0Pj4yXSxhW2dlKzg+PjJdPWFbTGUrOD4+Ml0sYVtnZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtiZT4+Ml09YVtSZT4+Ml0sYVtiZSs0Pj4yXT1hW1JlKzQ+PjJdLGFbYmUrOD4+Ml09YVtSZSs4Pj4yXSxhW2JlKzEyPj4yXT1hW1JlKzEyPj4yXSxrPStQayhwZSxn''@;'; put 'put ''ZSxiZSksYVtwZT4+Ml09YVtTdD4+Ml0sYVtwZSs0Pj4yXT1hW1N0KzQ+PjJdLGFbcGUrOD4+Ml09YVtTdCs4Pj4yXSxhW3BlKzEyPj4yXT1hW1N0KzEyPj4yXSxhW2dlPj4yXT1hW2F0Pj4yXSxhW2dlKzQ+PjJdPWFbYXQrND4+Ml0sYVtnZSs4Pj4yXT1hW2F0Kzg+PjJdLGFbZ2UrMTI+PjJd''@;'; put 'put ''PWFbYXQrMTI+PjJdLGFbYmU+PjJdPWFbRz4+Ml0sYVtiZSs0Pj4yXT1hW0crND4+Ml0sYVtiZSs4Pj4yXT1hW0crOD4+Ml0sYVtiZSsxMj4+Ml09YVtHKzEyPj4yXSxNPTB8RnkocGUsZ2UsYmUpLGFbcGU+PjJdPWFbUj4+Ml0sYVtwZSs0Pj4yXT1hW1IrND4+Ml0sYVtwZSs4Pj4yXT1hW1Ir''@;'; put 'put ''OD4+Ml0sYVtwZSsxMj4+Ml09YVtSKzEyPj4yXSxhW2dlPj4yXT1hW0c+PjJdLGFbZ2UrND4+Ml09YVtHKzQ+PjJdLGFbZ2UrOD4+Ml09YVtHKzg+PjJdLGFbZ2UrMTI+PjJdPWFbRysxMj4+Ml0sYVtiZT4+Ml09YVthdD4+Ml0sYVtiZSs0Pj4yXT1hW2F0KzQ+PjJdLGFbYmUrOD4+Ml09YVth''@;'; put 'put ''dCs4Pj4yXSxhW2JlKzEyPj4yXT1hW2F0KzEyPj4yXSxEPTB8RnkocGUsZ2UsYmUpLGFbcT4+Ml09YVtTdD4+Ml0sYVtxKzQ+PjJdPWFbU3QrND4+Ml0sYVtxKzg+PjJdPWFbU3QrOD4+Ml0sYVtxKzEyPj4yXT1hW1N0KzEyPj4yXSxhW3BlPj4yXT1hW2F0Pj4yXSxhW3BlKzQ+PjJdPWFbYXQr''@;'; put 'put ''ND4+Ml0sYVtwZSs4Pj4yXT1hW2F0Kzg+PjJdLGFbcGUrMTI+PjJdPWFbYXQrMTI+PjJdLGFbZ2U+PjJdPWFbUj4+Ml0sYVtnZSs0Pj4yXT1hW1IrND4+Ml0sYVtnZSs4Pj4yXT1hW1IrOD4+Ml0sYVtnZSsxMj4+Ml09YVtSKzEyPj4yXSxhW2JlPj4yXT1hW0c+PjJdLGFbYmUrND4+Ml09YVtH''@;'; put 'put ''KzQ+PjJdLGFbYmUrOD4+Ml09YVtHKzg+PjJdLGFbYmUrMTI+PjJdPWFbRysxMj4+Ml0sMHxHRChxLHBlLGdlLGJlLEhlKSl7bT0xO2JyZWFrfVI9MD09KDB8TSksRz0wPT0oMHxEKTtkb3tpZigwIT1rfDAhPShEfE18MCkpe2lmKGs+PTApe2lmKFIpe0E9KEErMXwwKSUoMHxwKXwwLGI9Yisx''@;'; put 'put ''fDA7YnJlYWt9bT0obSsxfDApJSgwfGYpfDAsdz13KzF8MDticmVha31pZihHKXttPShtKzF8MCklKDB8Zil8MCx3PXcrMXwwO2JyZWFrfUE9KEErMXwwKSUoMHxwKXwwLGI9YisxfDA7YnJlYWt9bT0obSsxfDApJSgwfGYpfDAsdz13KzF8MH13aGlsZSgwKTtpZighKCgwfGIpPCgwfE9lKSYo''@;'; put 'put ''MHx3KTwoMHxydCkmKCgwfGIpPCgwfHApfCgwfHcpPCgwfGYpKSkpe209MDticmVha319cmV0dXJuIGxlPVdlLDB8bX1mdW5jdGlvbiBWMmUobCxjLGYpe2N8PTA7dmFyIG0scD0wO3JldHVybiAwfCgobT0rX1sobHw9MCk+PjNdKTw9K19bKGZ8PTApPj4zXSYmbT49K19bYz4+M10mJihwPStf''@;'; put 'put ''W2wrOD4+M10pPD0rX1tmKzg+PjNdP3A+PStfW2MrOD4+M10mMTowKX1mdW5jdGlvbiBqMmUobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Zm9yKChwPTB8YVs0NjkxN10pfHwocD0wfFFuKGFbNDY5MTRdPDw0KSxhWzQ2OTE3XT1wKSx3PWYr''@;'; put 'put ''OHwwLEE9MDshKCgwfEEpPj0oMHxjKSk7KV9bcCsoQTw8NCk+PjNdPStfW2wrKEE8PDQpPj4zXS0rX1tmPj4zXSxfW3ArKEE8PDQpKzg+PjNdPStfW2wrKEE8PDQpKzg+PjNdLStfW3c+PjNdLEE9QSsxfDA7Zj1jKy0xfDAsbT0wLGw9MDtlOmZvcig7Oyl7aWYoKDB8bCk+PSgwfGMpKXtNPTE5''@;'; put 'put ''O2JyZWFrfWlmKEE9KGYrbHwwKSUoMHxjKXwwLCh3PTA9PShiPStfW3ArKGw8PDQpKzg+PjNdKSkmJjA9PStfW3ArKEE8PDQpKzg+PjNdKXtpZigrX1twKyhBPDw0KT4+M10qK19bcCsobDw8NCk+PjNdPDApe3A9MTticmVha319ZWxzZSBNPTExO2Rve2lmKDExPT0oMHxNKSl7aWYoTT0wLCEo''@;'; put 'put ''Yj49MCl8ISgoaz0rX1twKyhBPDw0KSs4Pj4zXSk8PTApJiYhKGs+PTApfCEoYjw9MCkpYnJlYWs7aWYoMD09KGI9KGsqK19bcCsobDw8NCk+PjNdLWIqK19bcCsoQTw8NCk+PjNdKS8oay1iKSkpe3A9MTticmVhayBlfWlmKGI+MCl7aWYoMD09a3x3KXttKz0uNTticmVha31tKz0xO2JyZWFr''@;'; put 'put ''fX19d2hpbGUoMCk7bD1sKzF8MH1yZXR1cm4gMTk9PSgwfE0pJiYocD0xPT0oMHwoMHx+fm0pJTIpJjEpLDB8cH1mdW5jdGlvbiBkSyhsLGMpe2x8PTA7dmFyIGssZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wO2ZvcihrPTB8UW4oKGN8PTApPDwyKSxmPTB8UW4oKGI9MHxBcihjLGMpKTw8''@;'; put 'put ''MiksYVtrPj4yXT1mLFp5KGIsMCxmKSxmPTE7Oyl7aWYoKDB8Zik+PSgwfGMpKXtmPTAsQT0wLGI9YzticmVha31hW2srKGY8PDIpPj4yXT0oMHxhW2s+PjJdKSsoKDB8QXIoZixjKSk8PDIpLGY9ZisxfDB9Zm9yKDshKCgwfEEpPj0oMHxjKSk7KXtmb3Iodz1rKyhBPDwyKXwwLHA9QSxtPWY7''@;'; put 'put ''KDB8cCkhPSgwfGMpOylhWygwfGFbdz4+Ml0pKyhwPDwyKT4+Ml09TT0wfGFbbCsobTw8Mik+PjJdLGFbKDB8YVtrKyhwPDwyKT4+Ml0pKyhBPDwyKT4+Ml09TSxwPXArMXwwLG09bSsxfDA7Zj1mK2J8MCxBPUErMXwwLGI9YistMXwwfXJldHVybiAwfGt9ZnVuY3Rpb24gdzllKGwsYyxmLHAs''@;'; put 'put ''bSxBLHcsYil7Y3w9MCxwfD0wLEF8PTAsd3w9MCxiPStiO3ZhciBhdCxTdCxrdCxzdCxFdCxIbixrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxydD0wLFdlPTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLHVyPTA7''@;'; put 'put ''SG49MHxhWyhmfD0wKSsoKG18PTApPDwyKT4+Ml0sYXQ9MHxhWzQrKGx8PTApPj4yXSxTdD0wfGFbbD4+Ml0sa3Q9MHxhW2wrNDg+PjJdLHN0PTB8YVtsKzUyPj4yXSxFdD0wfGFbbCs1Nj4+Ml07ZTpkb3tpZigoMHxBKTwxKWY9MDtlbHNle2ZvcihaMmUoSG4sYXQsa3Qsc3QsRXQsYiksWnQ9''@;'; put 'put ''MHxhW2wrMjg+PjJdLGN0PTB8YVtsKzMyPj4yXSxidD0wfGFbbCszNj4+Ml0sYW49MHxhW2wrMTI+PjJdLFNuPTB8YVtsKzE2Pj4yXSxtPTAscD0wLGY9LTE7ISgoMHxtKT49KDB8YXQpKTspKDB8bSk+PSgwfHApJiYoKDB8KGY9ZisxfDApKT09KDB8RXQpPyhwPWF0LGY9RXQpOnA9MHxhW3N0''@;'; put 'put ''KyhmPDwyKT4+Ml0pLGFbU24rKGFba3QrKG08PDIpPj4yXTw8Mik+PjJdPWYsbT1tKzF8MDtmb3IocnQ9MHxhW2wrNDA+PjJdLFdlPWN0KyhhdCstMTw8Mil8MCxmPTAscD0wOzspe2lmKCEocDw8MjQ+PjI0PT0wJigwfGYpPCgwfEEpKSlicmVhayBlO2s9LTFlOSxtPTAscD0xO3Q6Zm9yKDs7''@;'; put 'put ''KXtmb3IoVmU9bTs7KXtpZigoMHxWZSk+PSgwfGF0KSlicmVhayB0O2ZvcihNPXFlPStqbltIbisoKG09MHxhW2t0KyhWZTw8Mik+PjJdKTw8Mik+PjJdLEhlPVZlLEQ9MDs7KXtpZihqbltydCsobTw8Mik+PjJdPUQsKDB8KG09SGUrMXwwKSk+PSgwfGF0KSl7UmU9MDticmVha31pZigrZW8o''@;'; put 'put ''KygoRD0ram5bSG4rKChsPTB8YVtrdCsobTw8Mik+PjJdKTw8Mik+PjJdKS0oTT0oMHxhW1NuKyhtPDwyKT4+Ml0pPigwfGFbU24rKEhlPDwyKT4+Ml0pP00rYjpNKSkpPjFlLTkpe1JlPTE7YnJlYWt9SGU9bSxELT1xZSxtPWx9Zm9yKFI9VmU7Oyl7aWYoKDB8Uik+KDB8SGUpKXtsPTAsRz1W''@;'; put 'put ''ZTticmVha31mb3IocT0wfGFbU3QrKChHPTB8YVtrdCsoUjw8Mik+PjJdKTw8Mik+PjJdLGw9MCxNPS0ram5bYysoRzw8Mik+PjJdOyEoKDB8bCk+PSgwfGF0KSk7KSgwfGwpIT0oMHxHKSYmKE09K2puW0huKyhsPDwyKT4+Ml0qK2puW3ErKGw8PDIpPj4yXStNKSxsPWwrMXwwO2puW1p0KyhH''@;'; put 'put ''PDwyKT4+Ml09TS8tK2puW3ErKEc8PDIpPj4yXS0ram5bcnQrKEc8PDIpPj4yXSxSPVIrMXwwfW46Zm9yKDs7KXtpZigoMHxHKT4oMHxIZSkpe0Q9MCxwZT0wLGdlPTA7YnJlYWt9Zm9yKGdlPSgwfChSPTB8YVtTbisoYVtrdCsoRzw8Mik+PjJdPDwyKT4+Ml0pKT09KDB8RXQpfHwoMHxtKTwo''@;'; put 'put ''MHwoZ2U9MHxhW3N0KyhSPDwyKT4+Ml0pKT9tOmdlLHE9Rzs7KXtpZigoMHxxKT49KDB8Z2UpKXtxPUc7YnJlYWt9K2puW1p0KygoUj0wfGFba3QrKHE8PDIpPj4yXSk8PDIpPj4yXTxxZSYmKGFbYW4rKGw8PDIpPj4yXT1SLGw9bCsxfDApLHE9cSsxfDB9Zm9yKDshKCgwfHEpPj0oMHxnZSkp''@;'; put 'put ''Oykram5bWnQrKChSPTB8YVtrdCsocTw8Mik+PjJdKTw8Mik+PjJdPT1xZSYmKGFbYW4rKGw8PDIpPj4yXT1SLGw9bCsxfDApLHE9cSsxfDA7Zm9yKDs7KXtpZigoMHxHKT49KDB8Z2UpKXtHPWdlO2NvbnRpbnVlIG59K2puW1p0KygoUj0wfGFba3QrKEc8PDIpPj4yXSk8PDIpPj4yXT5xZSYm''@;'; put 'put ''KGFbYW4rKGw8PDIpPj4yXT1SLGw9bCsxfDApLEc9RysxfDB9fWZvcig7ISgoMHxnZSk+PSgwfGwpKTspe2ZvcihxPTB8YVtTdCsoKEc9MHxhW2FuKyhnZTw8Mik+PjJdKTw8Mik+PjJdLE09MCxSPTA7KDB8UikhPSgwfGdlKTspTS09K2puW3ErKGFbYW4rKFI8PDIpPj4yXTw8Mik+PjJdLFI9''@;'; put 'put ''UisxfDA7am5bY3QrKGdlPDwyKT4+Ml09YmU9KCh1cj0yKk0pKnFlK0QqcGUtK2puW1p0KyhHPDwyKT4+Ml0qKGJlPStqblsoTGU9cSsoRzw8Mil8MCk+PjJdKSkvKChNPXVyK0QpLWJlKSxEPU0tK2puW0xlPj4yXSxwZT1iZSxnZT1nZSsxfDB9Zm9yKChxPSgwfGwpPT0oMHxhdCkpJiYoam5b''@;'; put 'put ''V2U+PjJdPXFlKSxEPTAscGU9MCxHPUxlPWwrLTF8MDshKCgwfEcpPD0tMSk7KXtmb3IoT2U9MHxhW1N0KygoZ2U9MHxhW2FuKyhHPDwyKT4+Ml0pPDwyKT4+Ml0sTT0wLFI9RzshKCgwfChSPVIrMXwwKSk+PSgwfGwpKTspTS09K2puW09lKyhhW2FuKyhSPDwyKT4+Ml08PDIpPj4yXTtqblti''@;'; put 'put ''dCsoRzw8Mik+PjJdPXVyPSgoTSo9MikqcWUrRCpwZS0ram5bWnQrKGdlPDwyKT4+Ml0qKHVyPStqblsoT2U9T2UrKGdlPDwyKXwwKT4+Ml0pKS8oKGJlPU0rRCktdXIpLEQ9YmUtK2puW09lPj4yXSxwZT11cixHPUcrLTF8MH1mb3IocT8oam5bYnQ+PjJdPXFlLGJlPTAsUj0tMSxxPTApOihi''@;'; put 'put ''ZT0wLFI9LTEscT0wKTshKCgwfGwpPD0oMHxxKSk7KXtwZT0ram5bYnQrKHE8PDIpPj4yXSxNPSgwfHEpPjA/K2puW2N0KyhxKy0xPDwyKT4+Ml06cGU7ZG97aWYocGU8TSl7aWYoRz1NPnFlLHBlPHFlKXtEPU09Rz9xZTpNO2JyZWFrfUc/KEQ9cGUsTT1wZSk6RD1wZX1lbHNlIEQ9cGV9d2hp''@;'; put 'put ''bGUoMCk7YmU9KE9lPSh1cj0rZW8oKyhELXFlKSkqKyhsLXF8MCkrICtlbygrKE0tcWUpKSorKDB8cSkpPmJlKT91cjpiZSxSPU9lP3E6UixxPXErMXwwfWlmKCgwfFIpPi0xKWJyZWFrO1JlJiYoMHxhW1NuKyhhW2t0KyhtPDwyKT4+Ml08PDIpPj4yXSk+KDB8YVtTbisoYVtrdCsoSGU8PDIp''@;'; put 'put ''Pj4yXTw8Mik+PjJdKT8oaz0ram5bSG4rKGFbYW4rKExlPDwyKT4+Ml08PDIpPj4yXStiLFZlPW0pOihrPStqbltIbisoYVthbisoTGU8PDIpPj4yXTw8Mik+PjJdLFZlPW0pfVJlPyhNPStqbltIbisoKE9lPTB8YVtrdCsobTw8Mik+PjJdKTw8Mik+PjJdLE09KCgwfGFbU24rKE9lPDwyKT4+''@;'; put 'put ''Ml0pPigwfGFbU24rKGFba3QrKEhlPDwyKT4+Ml08PDIpPj4yXSk/TS1iOk0pLStqbltydCsoYVthbisoTGU8PDIpPj4yXTw8Mik+PjJdKTpNPTFlOSxNPShEPStqbltidCsoUjw8Mik+PjJdKTxNP0Q6TSxrPShwZT1SPytqbltjdCsoUistMTw8Mik+PjJdOkQpPms/cGU6aztkb3tpZihNPGsp''@;'; put 'put ''e2lmKEc9az5xZSxNPHFlKXtEPU09Rz9xZTprO2JyZWFrfUc/RD1NOihEPU0sTT1rKX1lbHNlIEQ9TSxNPWt9d2hpbGUoMCk7Zm9yKEc9MDshKCgwfEcpPj0oMHxSKSk7KWpuW0huKygoT2U9MHxhW2FuKyhHPDwyKT4+Ml0pPDwyKT4+Ml09K2puW3J0KyhPZTw8Mik+PjJdK00sRz1HKzF8MDtm''@;'; put 'put ''b3IoOyEoKDB8Uik+PSgwfGwpKTspam5bSG4rKChPZT0wfGFbYW4rKFI8PDIpPj4yXSk8PDIpPj4yXT0ram5bcnQrKE9lPDwyKT4+Ml0rRCxSPVIrMXwwO2ZvcihrPVJlJiYoMHxhW1NuKyhhW2t0KyhtPDwyKT4+Ml08PDIpPj4yXSk+KDB8YVtTbisoYVtrdCsoSGU8PDIpPj4yXTw8Mik+PjJd''@;'; put 'put ''KT8ram5bSG4rKGFbYW4rKExlPDwyKT4+Ml08PDIpPj4yXStiOitqbltIbisoYVthbisoTGU8PDIpPj4yXTw8Mik+PjJdLGw9VmU7ISgoMHxsKT4oMHxIZSkpOylhW2t0KyhsPDwyKT4+Ml09YVthbisobC1WZTw8Mik+PjJdLGw9bCsxfDA7cD1wPDwyND4+MjQhPTAmJitlbygrKE0tcWUpKTwu''@;'; put 'put ''MDE/K2VvKCsoRC1xZSkpPC4wMTowLHAmPTF9bDgoYXQsSG4pLGI5ZShIbixrdCxzdCxFdCx3KSxmPWYrMXwwfX19d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBiOWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtmb3IoQT0wOyEoKDB8QSk+PSgwfHAp''@;'; put 'put ''KTspYVttKyhBPDwyKT4+Ml09YVtsKyhhW2MrKCgwfGFbZisoQTw8Mik+PjJdKS0xPDwyKT4+Ml08PDIpPj4yXSxBPUErMXwwfWZ1bmN0aW9uIFoyZShsLGMsZixwLG0sQSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEE9K0E7dmFyIHc9MCxiPTAsaz0wLE09MCxEPTA7Zm9yKHc9LTFlOSxr''@;'; put 'put ''PTAsYj0tMSxEPTA7ISgoMHxEKT49KDB8YykpOykoMHxEKTwoMHxrKXx8KHc9KDB8RCk+MD8ram5bbCsoYVtmKyhEKy0xPDwyKT4+Ml08PDIpPj4yXStBOi0xZTksVlYobCxmLEQsKGs9KDB8KGI9YisxfDApKT09KDB8bSk/YzowfGFbcCsoYjw8Mik+PjJdKSstMXwwKSksTT1rLCtqblsoaz1s''@;'; put 'put ''KyhhW2YrKEQ8PDIpPj4yXTw8Mil8MCk+PjJdPHcmJihqbltrPj4yXT13KSxrPU0sRD1EKzF8MH1mdW5jdGlvbiBfOWUobCl7RnQoMHxhW2FbKGx8PTApPj4yXT4+Ml0pLEZ0KDB8YVtsPj4yXSksRnQoMHxhW2wrOD4+Ml0pLEZ0KDB8YVtsKzI4Pj4yXSksRnQoMHxhW2wrMzI+PjJdKSxGdCgw''@;'; put 'put ''fGFbbCszNj4+Ml0pLEZ0KDB8YVtsKzQwPj4yXSksRnQoMHxhW2wrMTI+PjJdKSxGdCgwfGFbbCsxNj4+Ml0pLEZ0KDB8YVtsKzIwPj4yXSksRnQoMHxhW2wrMjQ+PjJdKSxGdChsKX1mdW5jdGlvbiBYVihsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixrLE0sRCxB''@;'; put 'put ''PTAsdz0wO2ZvcihNPTB8UW4oNjApLGFbTT4+Ml09MCxhWyhEPU0rNHwwKT4+Ml09YyxhW00rNDg+PjJdPWYsYVtNKzUyPj4yXT1wLGFbTSs1Nj4+Ml09bSxhW00+PjJdPTB8ZEsobCxjKSxrPTB8UW4oYj1jPDwyKSxhW00rOD4+Ml09ayx3PTAsYz0wLGw9LTE7ISgoMHx3KT49KDB8YVtEPj4y''@;'; put 'put ''XSkpOylBPWwrMXwwLCgwfHcpPj0oMHxjKSYmKGM9MHxhWygoMHxBKT09KDB8bSk/RDpwKyhBPDwyKXwwKT4+Ml0sbD1BKSxhW2srKGFbZisodzw8Mik+PjJdPDwyKT4+Ml09bCx3PXcrMXwwO3JldHVybiBhW00rMjg+PjJdPTB8UW4oYiksYVtNKzMyPj4yXT0wfFFuKGIpLGFbTSszNj4+Ml09''@;'; put 'put ''MHxRbihiKSxhW00rNDA+PjJdPTB8UW4oYiksYVtNKzEyPj4yXT0wfFFuKGIpLGFbTSsxNj4+Ml09MHxRbihiKSxhW00rMjA+PjJdPTB8UW4oYiksYVtNKzI0Pj4yXT0wfFFuKGIpLDB8TX1mdW5jdGlvbiBwSygpe3p5KDE4NzY3NiwyNCksYVs0NjkyMl09MH1mdW5jdGlvbiBLVihsLGMpe3Zh''@;'; put 'put ''ciBmLHA7cmV0dXJuKyArRDAoKygocD0rX1s4KyhsfD0wKT4+M10tK19bOCsoY3w9MCk+PjNdKSpwKyhmPStfW2w+PjNdLStfW2M+PjNdKSpmKSl9ZnVuY3Rpb24gQzllKGwpe3ZhciBjO2FbMTYrKGx8PTApPj4yXT1jPTB8YVs0NjkyMl0sYVs0NjkyMl09YysxfWZ1bmN0aW9uIHRMKGwpe3Zh''@;'; put 'put ''ciBjLGY7YVsoZj0yMCsobHw9MCl8MCk+PjJdPWM9KDB8YVtmPj4yXSktMXwwLGN8fFlWKGwsMTg3Njc2KX1mdW5jdGlvbiBuTChsKXthWyhsPTIwKyhsfD0wKXwwKT4+Ml09MSsoMHxhW2w+PjJdKX1mdW5jdGlvbiBHMmUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxtPSttO3ZhciBiZSxP''@;'; put 'put ''ZSxMZSxSZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsSGU9MDtmb3IoUmU9bGUsbGU9bGUrMTZ8MCxhWyhEPVJlKT4+Ml09cHw9MCxPZT0wfFFuKEc9Yzw8MiksTGU9MHxRbihrPWM8PDMpLGJlPTB8ZnVuY3Rpb24gTTJlKGwsYyl7cmV0dXJuIGN8PTAs''@;'; put 'put ''bD0wfGFbOCsobHw9MCk+PjJdPzB8TlYobCxjKTowfGZ1bmN0aW9uIGY5ZShsLGMpe2x8PTA7dmFyIHAsbSx3LGY9MCxBPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxtPXcscD0wfFFuKDB8QXIoQT0oY3w9MCk8PDIsYykpLEE9MHxRbihBKSxmPTA7ISgoMHxmKT49KDB8YykpOylhW0ErKGY8PDIp''@;'; put 'put ''Pj4yXT1wKygoMHxBcihmLGMpKTw8MiksZj1mKzF8MDtmb3IoT3kobSxjKSxmPTA7ISgoMHxmKT49KDB8YykpOylyOChmLGwsYywwfGFbQSsoZjw8Mik+PjJdLG0pLGY9ZisxfDA7cmV0dXJuIEJEKG0pLGxlPXcsMHxBfShsLGMpLDB8bH0obCxjKSxsPTA7ISgoMHxsKT49KDB8YykpOyl7Zm9y''@;'; put 'put ''KGI9YmUrKGw8PDIpfDAsdz0wOygwfHcpIT0oMHxjKTspYVsocGU9KDB8YVtiPj4yXSkrKHc8PDIpfDApPj4yXT1hW3BlPj4yXTw8OCx3PXcrMXwwO2w9bCsxfDB9Zm9yKGZ8fFByKDkzOTUyLDkzOTYwLDI4Myw5Mzk3NCkscGU9MHxRbihrKSxsPTA7ISgoMHxsKT49KDB8YykpOylfW3BlKyhs''@;'; put 'put ''PDwzKT4+M109K19bZisobDw8Myk+PjNdLGw9bCsxfDA7Zm9yKGdLKHBlLGMpLEE9MCxNPTAsaz0xOyEoKDB8ayk+PSgwfGMpKTspe2Zvcih3PWJlKyhrPDwyKXwwLGI9Zisoazw8Myl8MCxsPTA7KDB8bCkhPSgwfGspOylBPShxPStfW2I+PjNdLStfW2YrKGw8PDMpPj4zXSkqcSooMS8rKDB8''@;'; put 'put ''QXIoSGU9MHxhWygwfGFbdz4+Ml0pKyhsPDwyKT4+Ml0sSGUpKSkrQSxNPStlbygrcSkqKDEvKygwfEhlKSkrTSxsPWwrMXwwO2s9aysxfDB9Zm9yKHE9TS9BLGw9MDshKCgwfGwpPj0oMHxjKSk7KV9bKEhlPWYrKGw8PDMpfDApPj4zXT0rX1tIZT4+M10qcSxsPWwrMXwwO2ZvcihmdW5jdGlv''@;'; put 'put ''biBXMmUobCxjLGYscCxtKXtjfD0wLGY9K2YscHw9MDt2YXIgayxNLEE9MCx3PTAsYj0wLEQ9MDtpZihrPTB8ZnVuY3Rpb24gWTJlKGwsYyl7bHw9MDt2YXIgQSxNLFIsZj0wLHA9MCxtPTAsdz0wLGI9MCxrPTAsRD0wLEc9MDtmb3IoUj1sZSxsZT1sZSsxNnwwLG09UixwPTB8UW4oMHxBcihE''@;'; put 'put ''PShjfD0wKTw8MixjKSksRD0wfFFuKEQpLGY9MDshKCgwfGYpPj0oMHxjKSk7KWFbRCsoZjw8Mik+PjJdPXArKCgwfEFyKGYsYykpPDwyKSxmPWYrMXwwO2ZvcihNPTB8ZnVuY3Rpb24gSjJlKGwsYyxmKXtsfD0wLGZ8PTA7dmFyIGIsayxwPTAsbT0wLEE9MCx3PTAsTT0wLEQ9MDtmb3IoYj0w''@;'; put 'put ''fFFuKChjfD0wKTw8Miksaz0xLysoMHxjKSxwPTAsdz0wOyEoKDB8dyk+PSgwfGMpKTspe2ZvcihNPWwrKHc8PDIpfDAsbT0wLEE9MDsoMHxBKSE9KDB8Yyk7KUQ9KygwfGFbKDB8YVtNPj4yXSkrKEE8PDIpPj4yXSksbT0oRCo9RCkrbSxBPUErMXwwLHA9RCtwO2puW2IrKHc8PDIpPj4yXT1r''@;'; put 'put ''Km0sdz13KzF8MH1yZXR1cm4gam5bZj4+Ml09cC8rKDB8QXIoYyxjKSksMHxifShsLGMsbSksQT0ram5bbT4+Ml0scD0wLGs9MTshKCgwfHApPj0oMHxjKSk7KXtmb3IobT1sKyhwPDwyKXwwLHc9TSsocDw8Mil8MCxiPUQrKHA8PDIpfDAsZj0wOygwfGYpIT0oMHxrKTspam5bKDB8YVtiPj4y''@;'; put 'put ''XSkrKGY8PDIpPj4yXT1HPStqbltNKyhmPDwyKT4+Ml0rICtqblt3Pj4yXS0oRz0rKDB8YVsoMHxhW20+PjJdKSsoZjw8Mik+PjJdKSkqRy1BLGpuWygwfGFbRCsoZjw8Mik+PjJdKSsocDw8Mik+PjJdPUcsZj1mKzF8MDtwPXArMXwwLGs9aysxfDB9cmV0dXJuIEZ0KE0pLGxlPVIsMHxEfSht''@;'; put 'put ''fD0wLGx8PTApLE09MHxRbig4KSxwKXtmb3IoQT0wfFFuKGw8PDMpLG09MDshKCgwfG0pPj0oMHxsKSk7KV9bQSsobTw8Myk+PjNdPStfW3ArKG08PDMpPj4zXSxtPW0rMXwwO2dLKEEsbCksbT1BLGI9QX1lbHNlIG09MCxiPTA7Zm9yKGZ1bmN0aW9uIFUyZShsLGMsZixwLG0sQSl7bHw9MCxm''@;'; put 'put ''fD0wLHB8PTAsbXw9MCxBPStBO3ZhciBHLHEscGUsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsZ2U9MCxiZT0wO3BlPTB8UW4oZ2U9KGN8PTApPDwzKSxnZT0wfFFuKGdlKSxSPTEtQSxHPSgwfGMpPDE/YzoxLHE9YystMXwwLGs9MD09KDB8bSksYj0wO2U6Zm9yKDshKCgwfGIpPj0oMHxHKSk7''@;'; put 'put ''KXtNPTB8YVtmKyhiPDwyKT4+Ml07ZG97Zm9yKHc9MDsoMHx3KSE9KDB8Yyk7KV9bTSsodzw8Myk+PjNdPSsoMHwoMHxUMSgpKSUxMDApLHc9dysxfDA7Zm9yKGt8fGdnKE0sMCxxLC0rb2gobSwwLHEsTSksbSksdz0wOygwfHcpIT0oMHxiKTspZ2coTSwwLHEsRD0tK29oKDB8YVsoYmU9Ziso''@;'; put 'put ''dzw8Mil8MCk+PjJdLDAscSxNKSwwfGFbYmU+PjJdKSx3PXcrMXwwO0E9K21wKE0sMCxxKX13aGlsZShBPDFlLTEwKTtKNyhNLDAscSwxL0EsTSk7ZG97Zm9yKEszKGdlLDAscSxNKSxRMmUobCxjLGMsTSxwZSxtKSxLMyhNLDAscSxwZSksdz0wOygwfHcpIT0oMHxiKTspZ2coTSwwLHEsRD0t''@;'; put 'put ''K29oKDB8YVsoYmU9Zisodzw8Mil8MCk+PjJdLDAscSxNKSwwfGFbYmU+PjJdKSx3PXcrMXwwO2lmKChBPSttcChNLDAscSkpPDFlLTEwKWJyZWFrIGU7SjcoTSwwLHEsMS9BLE0pLEQ9K29oKE0sMCxxLGdlKX13aGlsZSgrZW8oK0QpPFIpO19bcCsoYjw8Myk+PjNdPUQqQSxiPWIrMXwwfWZv''@;'; put 'put ''cig7ISgoMHxiKT49KDB8RykpOyl7Zm9yKGs9MHxhW2YrKGI8PDIpPj4yXSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGMpKXt3PTA7YnJlYWt9X1trKyh3PDwzKT4+M109KygwfCgwfFQxKCkpJTEwMCksdz13KzF8MH1mb3IoOyEoKDB8dyk+PSgwfGIpKTspZ2coaywwLHEsUj0tK29oKDB8YVsoYmU9''@;'; put 'put ''Zisodzw8Mil8MCk+PjJdLDAscSxrKSwwfGFbYmU+PjJdKSx3PXcrMXwwO0o3KGssMCxxLDEvK21wKGssMCxxKSxrKSxfW3ArKGI8PDMpPj4zXT0wLGI9YisxfDB9Zm9yKE09RystMXwwLGI9MDshKCgwfGIpPj0oMHxNKSk7KXtmb3IoQT0rX1sobD1wKyhiPDwzKXwwKT4+M10sdz1iLGs9bT1i''@;'; put 'put ''KzF8MDshKCgwfGspPj0oMHxHKSk7KUE9KGJlPUE8KFI9K19bcCsoazw8Myk+PjNdKSk/UjpBLHc9YmU/azp3LGs9aysxfDA7KDB8dykhPSgwfGIpPyhLMyhwZSwwLHEsMHxhWyhjPWYrKGI8PDIpfDApPj4yXSksSzMoMHxhW2M+PjJdLDAscSwwfGFbKGJlPWYrKHc8PDIpfDApPj4yXSksSzMo''@;'; put 'put ''MHxhW2JlPj4yXSwwLHEscGUpLF9bcCsodzw8Myk+PjNdPStfW2w+PjNdLF9bbD4+M109QSxiPW0pOmI9bX1GdChwZSksRnQoZ2UpfShrLGwsYyxNLG0sZikscD0wOzEhPSgwfHApOyl7Zm9yKEE9TSsocDw8Myl8MCx3PWMrKHA8PDIpfDAsbT0wOyEoKDB8bSk+PSgwfGwpKTspZj0rRDAoKyAr''@;'; put 'put ''ZW8oKyArX1tBPj4zXSkpLF9bKEQ9KDB8YVt3Pj4yXSkrKG08PDMpfDApPj4zXT0rX1tEPj4zXSpmLG09bSsxfDA7cD1wKzF8MH1GdCgwfGFbaz4+Ml0pLEZ0KGspLEZ0KE0pLEZ0KGIpfShjLEQsbSxmLGJlKSxiPTB8UW4oMHxBcihHLGMpKSx3PTA7Oyl7aWYoKDB8dyk+PSgwfGMpKXtiPTE7''@;'; put 'put ''YnJlYWt9Zm9yKGs9YisoKDB8QXIodyxjKSk8PDIpfDAsYVtPZSsodzw8Mik+PjJdPWssRD1iZSsodzw8Mil8MCxBPTAsbD0wOygwfGwpIT0oMHxjKTspKDB8bCkhPSgwfHcpJiYoam5baysobDw8Mik+PjJdPVI9LTEvKChSPSsoMHxhWygwfGFbRD4+Ml0pKyhsPDwyKT4+Ml0pKSpSKSxBLT1S''@;'; put 'put ''KSxsPWwrMXwwO2puW2srKHc8PDIpPj4yXT1BLHc9dysxfDB9Zm9yKDs7KXtpZigoMHxiKT49KDB8Yykpe3c9MDticmVha31mb3IoQT0rX1tmKyhiPDwzKT4+M10sdz1iZSsoYjw8Mil8MCxsPTA7KDB8bCkhPSgwfGIpOylHPX5+K0QwKCsoUj0oTT0rKDB8YVsoSGU9KDB8YVt3Pj4yXSkrKGw8''@;'; put 'put ''PDIpfDApPj4yXSkpKk0tKFI9QS0rX1tmKyhsPDwzKT4+M10pKlIpKSxhWygwfGFbYmUrKGw8PDIpPj4yXSkrKGI8PDIpPj4yXT1HPVI+MD9HOjAsYVtIZT4+Ml09RyxsPWwrMXwwO2I9YisxfDB9Zm9yKDs7KXtpZigoMHx3KT49KDB8Yykpe0c9MCxsPTA7YnJlYWt9Zm9yKE09K19bcCsodzw8''@;'; put 'put ''Myk+PjNdLF9bKGs9TGUrKHc8PDMpfDApPj4zXT0wLEQ9YmUrKHc8PDIpfDAsYj1PZSsodzw8Mil8MCxsPTAsQT0wOygwfGwpIT0oMHxjKTspKDB8bCkhPSgwfHcpJiYoUj0ram5bKDB8YVtiPj4yXSkrKGw8PDIpPj4yXSorKDB8YVsoMHxhW0Q+PjJdKSsobDw8Mik+PjJdKSxfW2s+PjNdPUEr''@;'; put 'put ''PU0+PStfW3ArKGw8PDMpPj4zXT8tUjpSKSxsPWwrMXwwO3c9dysxfDB9Zm9yKDs7KXtpZighKGw8PDI0Pj4yND09MCYoMHxHKTwyMDApKXtnZT00MjticmVha31pZigoMHxNVihPZSxwLExlLGMsbSxjLDEpKTwwKXtsPTE7YnJlYWt9Zm9yKGw9MSxEPTA7ISgoMHxEKT49KDB8YykpOyl7Zm9y''@;'; put 'put ''KFI9K19bcCsoRDw8Myk+PjNdLGI9YmUrKEQ8PDIpfDAsaz1PZSsoRDw8Mil8MCxBPTAsdz0wOygwfHcpIT0oMHxjKTspe2Rve2lmKCgwfHcpIT0oMHxEKSl7aWYoTT0ram5bKDB8YVtrPj4yXSkrKHc8PDIpPj4yXSorKDB8YVsoMHxhW2I+PjJdKSsodzw8Mik+PjJdKSxSPj0rX1twKyh3PDwz''@;'; put 'put ''KT4+M10pe0ErPS1NO2JyZWFrfUErPU07YnJlYWt9fXdoaWxlKDApO3c9dysxfDB9QSE9KFI9K19bKHc9TGUrKEQ8PDMpfDApPj4zXSkmJitlbygrKDEtQS9SKSk+MWUtNSYmKF9bdz4+M109QSxsPTApLEQ9RCsxfDB9Rz1HKzF8MH1lOmRve2lmKDQyPT0oMHxnZSkpZm9yKEE9MS9xLGw9MDs7''@;'; put 'put ''KXtpZigoMHxsKT49KDB8Yykpe2w9MDticmVhayBlfV9bKEhlPWYrKGw8PDMpfDApPj4zXT0rX1tIZT4+M10qQSxfWyhIZT1wKyhsPDwzKXwwKT4+M109K19bSGU+PjNdKkEsbD1sKzF8MH19d2hpbGUoMCk7cmV0dXJuIEZ0KDB8YVtiZT4+Ml0pLEZ0KGJlKSxGdCgwfGFbT2U+PjJdKSxGdChP''@;'; put 'put ''ZSksRnQocGUpLEZ0KExlKSxsZT1SZSwwfGx9ZnVuY3Rpb24gZ0sobCxjKXtsfD0wLGN8PTA7dmFyIGY9MCxwPTAsbT0wLEE9MDtmb3IoZj0wLHA9MDshKCgwfGYpPj0oMHxjKSk7KW09K19bbCsoZjw8Myk+PjNdK3AsZj1mKzF8MCxwPW07Zm9yKHAvPSsoMHxjKSxmPTA7ISgoMHxmKT49KDB8''@;'; put 'put ''YykpOylfWyhBPWwrKGY8PDMpfDApPj4zXT0rX1tBPj4zXS1wLGY9ZisxfDA7SjcobCwwLEE9YystMXwwLDEvK21wKGwsMCxBKSxsKX1mdW5jdGlvbiBRMmUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciB3PTAsYj0wLGs9MCxNPTA7Zm9yKHc9MDshKCgw''@;'; put 'put ''fHcpPj0oMHxjKSk7KXtmb3IoTT1sKyh3PDwyKXwwLGI9MCxrPTA7ISgoMHxrKT49KDB8ZikpOyliPStfW3ArKGs8PDMpPj4zXSoram5bKDB8YVtNPj4yXSkrKGs8PDIpPj4yXStiLGs9aysxfDA7X1ttKyh3PDwzKT4+M109Yix3PXcrMXwwfXc9YystMXwwLDB8QSYmZ2cobSwwLHcsLStvaCht''@;'; put 'put ''LDAsdyxBKSxBKX1mdW5jdGlvbiAkVihsLGMpe2x8PTAsY3w9MDt2YXIgRyxxLHBlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxnZT0wLGJlPTAsT2U9MDtwZT1sZSxsZT1sZSsxNnwwLHE9cGUsakQoKSxwSygpLGZ1bmN0aW9uIEMyZSgpe3ZhciBsPTAsYz0wLGY9''@;'; put 'put ''MDtmb3IoYVs0Njg1N109MCxhWzQ2ODU5XT0wLGFbNDY4NThdPWM9KGw9MHxhWzQ2ODU1XSk8PDIsKGY9MHxhWzQ2ODU2XSl8fChmPTB8UW4oMTYwKmx8MCksYVs0Njg1Nl09ZixjPTB8YVs0Njg1OF0pLGw9MDshKCgwfGwpPj0oMHxjKSk7KWFbZisoNDAqbHwwKSszMj4+Ml09MCxsPWwrMXww''@;'; put 'put ''fSgpLGFbNDY5MThdPTB8JDFbMyZjXSgpLGZ1bmN0aW9uIGsyZSgpe3ZhciBsPTAsYz0wLGY9MDtmb3IoenkoMTg3NDQ4LDQwKSxhWzQ2ODY2XT1jPShsPTB8YVs0Njg1NV0pPDwxLChmPTB8YVs0Njg2NV0pfHwoZj0wfFFuKGw8PDMpLGFbNDY4NjVdPWYsYz0wfGFbNDY4NjZdKSxsPTA7ISgo''@;'; put 'put ''MHxsKT49KDB8YykpOylhW2YrKGw8PDIpPj4yXT0wLGw9bCsxfDA7YVs0Njg2MF09MHxXRCgwLDApLGFbNDY4NjFdPTB8V0QoMCwwKSxhW2FbNDY4NjBdPj4yXT0wLGFbNCsoYz0wfGFbNDY4NjBdKT4+Ml09Zj0wfGFbNDY4NjFdLGFbZj4+Ml09YyxhWzQrKDB8YVs0Njg2MV0pPj4yXT0wLGFb''@;'; put 'put ''KGY9MHxhWzQ2ODY1XSk+PjJdPWFbNDY4NjBdLGFbZisoKDB8YVs0Njg2Nl0pLTE8PDIpPj4yXT1hWzQ2ODYxXX0oKSxHPXErOHwwLFI9MHwkMVszJmNdKCksZj0wLHA9MDtlOmZvcig7Oyl7Zm9yKE09MD09KDB8UiksRD1SKzh8MDswfEh5KCl8fChiMmUocSksZj0rX1txPj4zXSxwPStfW0c+''@;'; put 'put ''PjNdKSxNfHwhKDB8SHkoKXx8KG09K19bRD4+M10sbTxwKXx8bT09cCYmK19bUj4+M108Zik7KXtpZigwfEh5KCkpYnJlYWsgZTtsPTB8UzJlKGdlPTB8XzJlKCkpLE9lPTB8TnkoZ2UpLEE9MHxOeShPZSksaz0wfGM5ZShnZSksYmU9MHxVWChPZSksQzllKHc9MHxhW2dlKzIwPj4yXSksWkQo''@;'; put 'put ''MHxhW2dlKzg+PjJdLDB8ZmVbZ2UrMTY+PjBdLHcpLFpEKDB8YVtPZSs4Pj4yXSwwfGZlW09lKzE2Pj4wXSx3KSxGVihnZSksRmsoT2UpLEZWKE9lKSxnZT0xJihPZT0rX1trKzg+PjNdPitfW2JlKzg+PjNdKSxZWChsLGs9MHxXRChiZT0wfE9WKGI9T2U/YmU6ayxPZT9rOmJlKSxnZSkpLFpE''@;'; put 'put ''KGJlLDI1NSYoMV5nZSksdyksdEwodyksMHwodz0wfFlEKGwsaykpJiYoRmsobCksVTcobCx3LCtLVih3LGIpKSksKGw9MHxZRChrLEEpKSYmVTcoayxsLCtLVihsLGIpKX1iPTB8TnkobD0wfEJWKFIpKSxZWChsLGs9MHxXRChBPTB8T1YoMHxVWChsKSxSKSwwKSksMHwodz0wfFlEKGwsaykp''@;'; put 'put ''JiYoRmsobCksVTcobCx3LCtLVih3LFIpKSksWVgoayxBPTB8V0QoQSwxKSksMHwobD0wfFlEKEEsYikpJiZVNyhBLGwsK0tWKGwsUikpLFI9MHwkMVszJmNdKCl9Zm9yKGw9MHxhWzQ2ODYwXTsoMHwobD0wfE55KGwpKSkhPSgwfGFbNDY4NjFdKTspQmsoMHxhW2wrOD4+Ml0pO2xlPXBlfWZ1''@;'; put 'put ''bmN0aW9uIHFWKGwsYyl7bHw9MCxjfD0wO3ZhciBtLEEsZj0wLHc9MDtBPWxlLGxlPWxlKzE2fDAsbT1BKzh8MDtkb3tpZigxIT0oMHxHbyhsKSkpe2lmKG1LKGwpLGN8fChjPTB8SzJlKGwpKSwoMHwoZj0wfHZLKGwsYykpKTwwKXskcigxLDk0MDM5LG0pO2JyZWFrfSQyZShsKSxxMmUobCxj''@;'; put 'put ''KSxrOWUobCxjKSxTOWUobCxmKTticmVha313PTB8YVsxMzIrKDB8YVsxNisoMHxEdChsKSk+PjJdKT4+Ml0sYVt3Pj4yXT0wLGFbdys0Pj4yXT0wLGFbdys4Pj4yXT0wLGFbdysxMj4+Ml09MH13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGN9ZnVuY3Rpb24gbUsobCl7dmFyIGM9MCxmPTAscD0w''@;'; put 'put ''LG09MCxBPTA7Zm9yKGY9MHxHbyhsfD0wKSxmPTB8QXIoZixmKSxjPTB8RHQobCk7YzspYVsoQT0yNCsobT0wfGFbMTEyKygwfGFbKHA9YysxNnwwKT4+Ml0pPj4yXSl8MCk+PjJdPWYsYVtBKzQ+PjJdPTAsX1ttKzQ4Pj4zXT0xMCxtPTA9PSgwfHg5ZShsLGMpKSxhWyhwPTB8YVsxMTIrKDB8''@;'; put 'put ''YVtwPj4yXSk+PjJdKT4+Ml09bT9mOjAsYVtwKzQ+PjJdPTAsYz0wfHp0KGwsYyl9ZnVuY3Rpb24gSzJlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtwPSgwfEdvKGx8PTApKTwzLGM9MHxEdChsKTtlOmRve2lmKCFwKXtmb3IoO2M7KTA9PSgwfGFbKHA9MHxhWzExMisoMHxhW2Mr''@;'; put 'put ''MTY+PjJdKT4+Ml0pPj4yXSkmMD09KDB8YVtwKzQ+PjJdKSYmaTFlKGwsYywwKSxjPTB8enQobCxjKTtmb3IoZj0wLGM9MCxwPTB8RHQobCk7Oyl7aWYoIXApYnJlYWsgZTtBPTB8YVsodz0wfGFbMTEyKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdLGY9KG09KHc9MHxhW3crND4+Ml0pPj4+MD4o''@;'; put 'put ''bT0oKDB8Zik8MCk8PDMxPj4zMSk+Pj4wfCgwfHcpPT0oMHxtKSZBPj4+MD5mPj4+MCk/QTpmLGM9bT9wOmMscD0wfHp0KGwscCl9fX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIHZLKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKHA9MHxhWyhtPTI0Kyhm''@;'; put 'put ''PTB8YVsxMTIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0pfDApPj4yXSxhW20+PjJdPTAsYVttKzQ+PjJdPTAsYVtmKzMyPj4yXT0wLGZ1bmN0aW9uIEU5ZShsLGMpe2N8PTA7dmFyIGIsRCxSLEcsZj0wLHA9MCxtPTAsQT0wLHc9MCxrPTAsTT0wLHE9MCxwZT0wO0c9bGUsbGU9bGUrMTZ8MCxE''@;'; put 'put ''PUcsUj0wfHNpKGx8PTAsMiwxMDE1NDEsMCksYVtEKzQ+PjJdPTAsYVtEPj4yXT0wLG4xZShELGMpLGI9MD09KDB8Uik7ZTpmb3IoO2s9MHxyMWUoRCksazspZm9yKE09aysxNnwwLEE9MHxhWzI0KygwfGFbMTEyKygwfGFbTT4+Ml0pPj4yXSk+PjJdLG09MHxNcyhsLGspLEE9MHx6bCgwLDB8''@;'; put 'put ''QSwwLDEpLEE9MHxMTCgwfEEsMHxEbiwzMiksdz1Ebjs7KXtpZighbSljb250aW51ZSBlOyFiJiY0OD09KDB8ZmVbKDB8SG8obSxSKSk+PjBdKSYmISgwfFppKDB8SG8obSxSKSwxMzgzOTQpKXx8KCgwfChmPTB8YVsoMz09KDB8KGM9MyZhW20+PjJdKSk/bTptKzQ4fDApKzQwPj4yXSkpPT0o''@;'; put 'put ''MHxrKSYmKGY9MHxhWygyPT0oMHxjKT9tOm0rLTQ4fDApKzQwPj4yXSksdz4+PjA8KHBlPTB8YVs0KyhxPXA9MjQrKGM9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pfDApPj4yXSk+Pj4wfCgoMHx3KT09KDB8cGUpP0E+Pj4wPCgwfGFbcT4+Ml0pPj4+MDowKSYmKGFbKHBlPXApPj4yXT1B''@;'; put 'put ''LGFbcGUrND4+Ml09dyxhW2MrMzI+PjJdPWsscT0wfHpsKDB8YVsocT1wZT0xNisoMHxhWzExMisoMHxhW00+PjJdKT4+Ml0pfDApPj4yXSwwfGFbcSs0Pj4yXSwxLDApLGFbcGU+PjJdPXEsYVtwZSs0Pj4yXT1EbixuMWUoRCxmKSkpLG09MHxWcyhsLG0sayl9bGU9R30obCxjKSxmPTB8RHQo''@;'; put 'put ''bCkscD0wfExMKDAsMHxwLDMyKSxtPURuLGM9MDtmOyl7aWYoKDB8KEE9MHxhWyh3PTI0KygwfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MCk+PjJdKSk9PSgwfHApJigwfCh3PTB8YVt3KzQ+PjJdKSk9PSgwfG0pKXtjPS0xO2JyZWFrfWM9dz4+PjA+KGI9KCgwfGMpPDApPDwzMT4+MzEp''@;'; put 'put ''Pj4+MHwoMHx3KT09KDB8YikmQT4+PjA+Yz4+PjA/QTpjLGY9MHx6dChsLGYpfXJldHVybiAwfGN9ZnVuY3Rpb24gJDJlKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7cD0xNisoYz0wfGFbMTEyKygwfGFbZisxNj4+Ml0pPj4yXSl8MDtlOmRve2lmKDA9PSgw''@;'; put 'put ''fGFbcD4+Ml0pJjA9PSgwfGFbcCs0Pj4yXSkpZm9yKDs7KXtpZihtPTB8emwoMHxhWyhtPXA9Yys4fDApPj4yXSwwfGFbbSs0Pj4yXSwxLDApLGFbcD4+Ml09bSxhW3ArND4+Ml09RG4sIShjPTB8YVtjKzMyPj4yXSkpYnJlYWsgZTtjPTB8YVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdfX13aGls''@;'; put 'put ''ZSgwKTtmPTB8enQobCxmKX19ZnVuY3Rpb24gcTJlKGwsYyl7bHw9MCxfWzQwKygwfGFbMTEyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+M109Ni4yODMxODUzMDcxNzk1ODYsdDFlKGwsYyl9ZnVuY3Rpb24gazllKGwsYyl7bHw9MCxfWzQ4KygwfGFbMTEyKygwfGFbMTYrKGN8PTApPj4y''@;'; put 'put ''XSk+PjJdKT4+M109MCxlMWUobCxjKX1mdW5jdGlvbiBTOWUobCxjKXt2YXIgQSx3LGY9MCxwPTAsbT0wLGI9MCxrPTA7Zm9yKHc9bGUsbGU9bGUrMTZ8MCxtPXcsQT0wfGZ1bmN0aW9uIE05ZShsLGMpe2x8PTA7dmFyIGIsayxNLGY9MCxwPTAsbT0wLEE9MCx3PTA7TT1sZSxsZT1sZSsxNnww''@;'; put 'put ''LGI9TSxrPTB8dnIoOCsoKGN8PTApPDwzKXwwKSxsPTB8djIobCwwfHNpKDB8YVtsKzYwPj4yXSwwLDEwMTI4OCwwKSwwKTtlOmRve2lmKGwpe0E9MCxmPTAsbT0xO3Q6Zm9yKDs7KXtpZigoMHxtKT4oMHxjKSl7cD1BLGw9bTticmVhayBlfWlmKCEoKHA9K2kzKGwsYikpPjApKXtwPUEsbD1t''@;'; put 'put ''O2JyZWFrIGV9Zm9yKHc9bSsxfDAsX1trKyhtPDwzKT4+M109Zj0oQT1wPi4wMj9wOi4wMikrZixsPTB8YVtiPj4yXTs7KXtpZighKChtPTB8ZmVbbD4+MF0pPDwyND4+MjQpKXttPXc7Y29udGludWUgdH1pZighKG08PDI0Pj4yND09NTh8MCE9KDB8JGMobTw8MjQ+PjI0KSkpKXttPXc7Y29u''@;'; put 'put ''dGludWUgdH1sPWwrMXwwfX19ZWxzZSBwPTEsZj0wLGw9MX13aGlsZSgwKTtmb3IoOyEoKDB8bCk+KDB8YykpOylfW2srKGw8PDMpPj4zXT1BPWYrcCxsPWwrMXwwLGY9QTtyZXR1cm4gbGU9TSwwfGt9KGx8PTAsY3w9MCksZj0wfER0KGwpO2Y7KWI9K19bQSsoYVsyNCsocD0wfGFbMTEyKyht''@;'; put 'put ''PTB8YVtmKzE2Pj4yXSk+PjJdKT4+Ml08PDMpPj4zXSxrPStoYSgrICtfWyhwPXArNDh8MCk+PjNdKSpiLF9bKG09MHxhW20rMTMyPj4yXSk+PjNdPWssX1ttKzg+PjNdPStEYSgrICtfW3A+PjNdKSpiLGY9MHx6dChsLGYpO0Z0KEEpLGxlPXd9ZnVuY3Rpb24gZTFlKGwsYyl7dmFyIGY9MCxw''@;'; put 'put ''PTAsbT0wLEE9MCx3PTAsYj0wO2ZvcihwPTB8YVszMisoZj0wfGFbMTEyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+Ml0/K19bZis0OD4+M10tLjUqK19bZis0MD4+M106MCxBPTB8TXMobHw9MCxjKTtBOykoMHwobT0wfGFbKDM9PSgwfChmPTMmYVtBPj4yXSkpP0E6QSs0OHwwKSs0MD4+''@;'; put 'put ''Ml0pKT09KDB8YykmJihtPTB8YVsoMj09KDB8Zik/QTpBKy00OHwwKSs0MD4+Ml0pLCgwfGFbMzIrKGY9MHxhWzExMisoMHxhW20rMTY+PjJdKT4+Ml0pPj4yXSk9PSgwfGMpJiYxMD09K19bKHc9Zis0OHwwKT4+M10mJihfW3c+PjNdPS41KihiPStfW2YrNDA+PjNdKStwLHA9YitwLDA9PSgw''@;'; put 'put ''fGFbKGY9ZisxNnwwKT4+Ml0pJjA9PSgwfGFbZis0Pj4yXSl8fGUxZShsLG0pKSxBPTB8VnMobCxBLGMpfWZ1bmN0aW9uIHQxZShsLGMpe3ZhciBBLGY9MCxwPTAsbT0wLHc9MCxiPTA7Zm9yKEE9K19bNDArKHA9MHxhWzExMisoMHxhWzE2KyhjfD0wKT4+Ml0pPj4yXSk+PjNdLygrKCgwfGFb''@;'; put 'put ''KG09cCs4fDApPj4yXSk+Pj4wKSs0Mjk0OTY3Mjk2KisoKDB8YVttKzQ+PjJdKT4+PjApKSxtPTB8TXMobHw9MCxjKTttOykoMHwoZj0wfGFbKDM9PSgwfChwPTMmYVttPj4yXSkpP206bSs0OHwwKSs0MD4+Ml0pKT09KDB8YykmJihmPTB8YVsoMj09KDB8cCk/bTptKy00OHwwKSs0MD4+Ml0p''@;'; put 'put ''LCgwfGFbMzIrKHA9MHxhWzExMisoMHxhW2YrMTY+PjJdKT4+Ml0pPj4yXSk9PSgwfGMpJiYwPT0rX1sodz1wKzQwfDApPj4zXSYmKF9bdz4+M109QSooKygoMHxhWyhiPXArOHwwKT4+Ml0pPj4+MCkrNDI5NDk2NzI5NiorKCgwfGFbYis0Pj4yXSk+Pj4wKSksISgwPT0oMHxhWyhwPXArMTZ8''@;'; put 'put ''MCk+PjJdKSYwPT0oMHxhW3ArND4+Ml0pKSkmJnQxZShsLGYpLG09MHxWcyhsLG0sYyl9ZnVuY3Rpb24gbjFlKGwsYyl7dmFyIGYscDtsfD0wLGN8PTAsZj0wfHZyKDgpLGFbZj4+Ml09YyxhWygwPT0oMHwocD0wfGFbKGM9bCs0fDApPj4yXSkpP2w6cCs0fDApPj4yXT1mLGFbYz4+Ml09Zn1m''@;'; put 'put ''dW5jdGlvbiByMWUobCl7dmFyIGYsYz0wO3JldHVybihmPTB8YVsobHw9MCk+PjJdKT8oYz0wfGFbZj4+Ml0sYVtsPj4yXT1hW2YrND4+Ml0sRnQoZiksMHxhW2w+PjJdfHwoYVtsKzQ+PjJdPTApKTpjPTAsMHxjfWZ1bmN0aW9uIGkxZShsLGMsZil7Znw9MDt2YXIgYixwPTAsbT0wLEE9MCx3''@;'; put 'put ''PTAsaz0wLE09MDtmb3Iodz0wfGFbYVsxMTIrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0+PjJdLEE9MHxNcyhsfD0wLGMpLHc9MHxMTCgwfCh3PTB8emwoMCwwfHcsMCwxKSksMHxEbiwzMiksYj1EbjtBOykoMHwocD0wfGFbKDM9PSgwfChtPTMmYVtBPj4yXSkpP0E6QSs0OHwwKSs0MD4+Ml0p''@;'; put 'put ''KT09KDB8YykmJihwPTB8YVsoMj09KDB8bSk/QTpBKy00OHwwKSs0MD4+Ml0pLCgwfHApIT0oMHxmKSYmYj4+PjA8KE09MHxhWzQrKG09az0wfGFbMTEyKygwfGFbcCsxNj4+Ml0pPj4yXSk+PjJdKT4+PjB8KCgwfGIpPT0oMHxNKT93Pj4+MDwoMHxhW20+PjJdKT4+PjA6MCkmJihhWyhNPWsp''@;'; put 'put ''Pj4yXT13LGFbTSs0Pj4yXT1iLGkxZShsLHAsYykpLEE9MHxWcyhsLEEsYyl9ZnVuY3Rpb24geDllKGwsYyl7dmFyIGY9MCxwPTAsbT0wLEE9MDtmb3IobT0wLEE9MHxNcyhsfD0wLGN8PTApOzspe2lmKCFBKXtmPTE7YnJlYWt9aWYoKDB8KGY9MHxhWygzPT0oMHwocD0zJmFbQT4+Ml0pKT9B''@;'; put 'put ''OkErNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYoZj0wfGFbKDI9PSgwfHApP0E6QSstNDh8MCkrNDA+PjJdKSwoMHxmKSE9KDB8Yykpe2lmKG0pe2lmKCgwfG0pIT0oMHxmKSl7Zj0wO2JyZWFrfWY9bX19ZWxzZSBmPW07bT1mLEE9MHxWcyhsLEEsYyl9cmV0dXJuIDB8Zn1mdW5jdGlvbiBvMWUo''@;'; put 'put ''bCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO2ZvcihHPTB8dnIoNzIpLGFbRys2MD4+Ml09MCxhW0crNTY+PjJdPWwsaz1sKzE2fDAsbT0wLE09MCx3PTEsYj0wLEQ9MDshKCgwfHcpPigwfGFbMTgwKyhBPTB8YVtrPj4y''@;'; put 'put ''XSk+PjJdKSk7KUE9MHxvMWUoMHxhWygwfGFbQSsxODQ+PjJdKSsodzw8Mik+PjJdLGMsZixwKSxtPStfW0E+PjNdK20sMHxiJiYoYVtiKzUyPj4yXT1BKSxNPU0rMXwwLHc9dysxfDAsYj1BLEQ9MD09KDB8RCk/QTpEO2ZvcihSPTB8RHQobCksQT1EO1I7KTB8YVthWzExMisoMHxhWyh3PVIr''@;'; put 'put ''MTZ8MCk+PjJdKT4+Ml0+PjJdP3c9TTooaz0wfEk5ZShSLGYpLG09K19baz4+M10rbSwwfGImJihhW2IrNTI+PjJdPWspLGFbYVsxMTIrKDB8YVt3Pj4yXSk+PjJdPj4yXT1sLHc9TSsxfDAsYj1rLEE9MD09KDB8QSk/azpBKSxSPTB8enQobCxSKSxNPXc7cmV0dXJuIGFbRys2ND4+Ml09TSxN''@;'; put 'put ''PyhfW0crOD4+M109bSxtPStmdW5jdGlvbiBlaihsLGMpe3ZhciBmPTA7cmV0dXJuKyhmPTA9PShmPStNbCgwfGFbNTYrKGx8PTApPj4yXSxjfD0wLDAsMCkpPytfW2wrOD4+M106KGY9K0QwKCsgK19bbCs4Pj4zXSkrMipmKSpmKX0oRyxwKSk6bT0rYksobCxjKSxfW0c+PjNdPW0sYVtHKzQ4''@;'; put 'put ''Pj4yXT1BLDB8R31mdW5jdGlvbiB5SyhsKXt2YXIgUixHLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLHE9MCxwZT0wLGdlPTA7Rz1sZSxsZT1sZSsxNzZ8MCxtPUcrMTQ0fDAsaz1HKzMyfDAsdz1HLFI9MHxhWzY0KyhsfD0wKT4+Ml07ZTpkb3tpZigwfFIpe2ZvcihNPTB8''@;'; put 'put ''dnIoUjw8MikscD0wLGY9Yz1sKzQ4fDA7Zj0wfGFbZj4+Ml0sISgoMHxwKT49KDB8UikpOylhW00rKHA8PDIpPj4yXT1mLHA9cCsxfDAsZj1mKzUyfDA7Zm9yKHgxKE0sUiw0LDgwKSxiPTB8dnIoUjw8MyksZj0wOyEoKDB8Zik+PSgwfFIpKTspX1tiKyhmPDwzKT4+M109K19bYVtNKyhmPDwy''@;'; put 'put ''KT4+Ml0+PjNdLGY9ZisxfDA7Zm9yKCtfW2w+PjNdPT0oQT0rX1tsKzg+PjNdKT8oYVttPj4yXT1hWyh3PWwrMTZ8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVttKzg+PjJdPWFbdys4Pj4yXSxhW20rMTI+PjJdPWFbdysxMj4+Ml0sYVttKzE2Pj4yXT1hW3crMTY+PjJdLGFbbSsyMD4+''@;'; put 'put ''Ml09YVt3KzIwPj4yXSxhW20rMjQ+PjJdPWFbdysyND4+Ml0sYVttKzI4Pj4yXT1hW3crMjg+PjJdLHc9MHxzMWUoUixiLG0pKToocT0rX1tsKzQwPj4zXSxwZT0rX1tsKzMyPj4zXSxfW3c+PjNdPStfW2wrMTY+PjNdLF9bdys4Pj4zXT0rX1tsKzI0Pj4zXSxBPS41KihwZStxLStEMCgrKDQq''@;'; put 'put ''QSsoZ2U9cS1wZSkqZ2UpKSksX1t3KzE2Pj4zXT1wZS1BLF9bdysyND4+M109cS1BLGFbbT4+Ml09YVt3Pj4yXSxhW20rND4+Ml09YVt3KzQ+PjJdLGFbbSs4Pj4yXT1hW3crOD4+Ml0sYVttKzEyPj4yXT1hW3crMTI+PjJdLGFbbSsxNj4+Ml09YVt3KzE2Pj4yXSxhW20rMjA+PjJdPWFbdysy''@;'; put 'put ''MD4+Ml0sYVttKzI0Pj4yXT1hW3crMjQ+PjJdLGFbbSsyOD4+Ml09YVt3KzI4Pj4yXSx3PTB8czFlKFIsYixtKSkscD0wfGFbMTU3MTJdLGY9MDshKCgwfGYpPj0oMHxSKSk7KWFbKGs9MTYrKDB8YVtNKyhmPDwyKT4+Ml0pfDApPj4yXT1hWyhtPXcrKGY8PDUpfDApPj4yXSxhW2srND4+Ml09''@;'; put 'put ''YVttKzQ+PjJdLGFbays4Pj4yXT1hW20rOD4+Ml0sYVtrKzEyPj4yXT1hW20rMTI+PjJdLGFbaysxNj4+Ml09YVttKzE2Pj4yXSxhW2srMjA+PjJdPWFbbSsyMD4+Ml0sYVtrKzI0Pj4yXT1hW20rMjQ+PjJdLGFbaysyOD4+Ml09YVttKzI4Pj4yXSxmPWYrMXwwO2ZvcihGdChNKSxGdChiKSxG''@;'; put 'put ''dCh3KSxmPTA7Oyl7aWYoYz0wfGFbYz4+Ml0sKDB8Zik+PSgwfFIpKWJyZWFrIGU7MHxhW2MrNjA+PjJdfHx5SyhjKSxjPWMrNTJ8MCxmPWYrMXwwfX19d2hpbGUoMCk7bGU9R31mdW5jdGlvbiB3SyhsKXt2YXIgbSxjPTAsZj0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7aWYobT1sZSxsZT1sZSs0''@;'; put 'put ''OHwwLDB8YVs2MCsobHw9MCk+PjJdKWs9K19bbCsyND4+M10sdz0rX1tsKzMyPj4zXSxBPStfW2wrNDA+PjNdLF9bMTYrKGI9MHxhWyhmPTE2KyhjPTB8YVtsKzU2Pj4yXSl8MCk+PjJdKT4+M109K19bbCsxNj4+M10sX1tiKzI0Pj4zXT1rLF9bMzIrKGw9MHxhW2Y+PjJdKT4+M109LjAxMzg4''@;'; put 'put ''ODg4ODg4ODg4ODg4OCp3LF9bbCs0MD4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCpBLFR5KGMsMSZhWzExNisoMHxhWzE2KygwfGNyKGMpKT4+Ml0pPj4yXSksZnVuY3Rpb24gbDFlKGwpe2x8PTA7dmFyIGMsZixwLG07bT1sZSxsZT1sZSs0OHwwLHA9bSxjPW0rOHwwLDB8KGY9MHxhWzQ3MTUw''@;'; put 'put ''XSkmJjA9PSgwfGZlWygwfEhvKGwsZikpPj4wXSkmJihfW3A+PjNdPS43KitfWzgwKygwfGFbbCsxNj4+Ml0pPj4zXSxvbyhjLDk0MTY4LHApLFZsKGwsMHxhWzQ3MTUwXSxjKSksZ0QobCksbGU9bX0oYyk7ZWxzZXtmb3IoYz1sKzQ4fDA7Yz0wfGFbYz4+Ml07KXdLKGMpLGM9Yys1MnwwO2s9''@;'; put 'put ''K19bbCsyND4+M10tLjUqKE09K19bbCs0MD4+M10pLF9bMTYrKGI9MHxhWzE2KygwfGFbbCs1Nj4+Ml0pPj4yXSk+PjNdPUE9K19bbCsxNj4+M10tLjUqKHc9K19bbCszMj4+M10pLF9bYisyND4+M109ayxfW2IrMzI+PjNdPUErdyxfW2IrNDA+PjNdPWsrTX1sZT1tfWZ1bmN0aW9uIGExZShs''@;'; put 'put ''KXt2YXIgcCxjPTAsZj0wO2ZvcihwPTB8YVs2NCsobHw9MCk+PjJdLGM9bCs0OHwwLGY9MDtjPTB8YVtjPj4yXSwhKCgwfGYpPj0oMHxwKSk7KWExZShjKSxjPWMrNTJ8MCxmPWYrMXwwO0Z0KGwpfWZ1bmN0aW9uIEk5ZShsLGMpe3ZhciBmO3JldHVybiBsfD0wLGN8PTAsZj0wfHZyKDcyKSxf''@;'; put 'put ''W2Y+PjNdPStiSyhsLGMpLGFbZis2MD4+Ml09MSxhW2YrNTY+PjJdPWwsMHxmfWZ1bmN0aW9uIGJLKGwsYyl7dmFyIGY7cmV0dXJuKygwPT0oZj0rTWwobHw9MCxjfD0wLDEsMCkpPzFlMzoxZTMqZil9ZnVuY3Rpb24gczFlKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgQSx3LHA9MCxtPTAs''@;'; put 'put ''Yj0wO2Zvcih3PWxlLGxlPWxlKzMyfDAsQT13LHA9MCxtPTA7ISgoMHxwKT49KDB8bCkpOyliPStfW2MrKHA8PDMpPj4zXSttLHA9cCsxfDAsbT1iO3JldHVybiBtPitfW2YrMjQ+PjNdKitfW2YrMTY+PjNdKy4wMDE/cD0wOihwPTB8dnIobDw8NSksYVtBPj4yXT1hW2Y+PjJdLGFbQSs0Pj4y''@;'; put 'put ''XT1hW2YrND4+Ml0sYVtBKzg+PjJdPWFbZis4Pj4yXSxhW0ErMTI+PjJdPWFbZisxMj4+Ml0sYVtBKzE2Pj4yXT1hW2YrMTY+PjJdLGFbQSsyMD4+Ml09YVtmKzIwPj4yXSxhW0ErMjQ+PjJdPWFbZisyND4+Ml0sYVtBKzI4Pj4yXT1hW2YrMjg+PjJdLHRqKGwsYyxwLDAsMCwxLDAsMSxBKSks''@;'; put 'put ''bGU9dywwfHB9ZnVuY3Rpb24gdGoobCxjLGYscCxtLEEsdyxiLGspe2x8PTAsY3w9MCxmfD0wLHB8PTAsbT0rbSxBPStBLHc9K3csYj0rYjt2YXIgUmUsSGUsVmUscWUsTT0wLEQ9MCxSPTAsRz0wLHE9MCxnZT0wLGJlPTAsTGU9MCxydD0wLFdlPTA7cWU9bGUsbGU9bGUrMTEyfDAsVmU9cWUr''@;'; put 'put ''NzJ8MCxHPXFlKzMyfDAsTT1xZSxMZT0rX1sxNisoa3w9MCkrKCgxJiEoKHE9K19bKFJlPWsrMTZ8MCk+PjNdKTwrX1soSGU9aysyNHwwKT4+M10pKTw8Myk+PjNdO2Rve2lmKCgwfGwpPj0xKXtpZighcCl7TGU9KHc9K19bYz4+M10pLyhXZT1MZSpMZSksV2UvPXcsYVtWZT4+Ml09YVtrPj4y''@;'; put 'put ''XSxhW1ZlKzQ+PjJdPWFbays0Pj4yXSxhW1ZlKzg+PjJdPWFbays4Pj4yXSxhW1ZlKzEyPj4yXT1hW2srMTI+PjJdLGFbVmUrMTY+PjJdPWFbaysxNj4+Ml0sYVtWZSsyMD4+Ml09YVtrKzIwPj4yXSxhW1ZlKzI0Pj4yXT1hW2srMjQ+PjJdLGFbVmUrMjg+PjJdPWFbaysyOD4+Ml0sdGoobCxj''@;'; put 'put ''LGYsMSx3LHcsdyxMZT5XZT9MZTpXZSxWZSk7YnJlYWt9aWYoKDB8bCk+KDB8cCkmJihEPShiZT0rX1tjKyhwPDwzKT4+M10pPG0/bTpiZSxnZT1iZT5BP0E6YmUsUj0oYmUrPXcpL0xlLChSPShXZT0oUio9UikvZ2UpPihSPUQvUik/V2U6Uik8PWIpKXthW1ZlPj4yXT1hW2s+PjJdLGFbVmUr''@;'; put 'put ''ND4+Ml09YVtrKzQ+PjJdLGFbVmUrOD4+Ml09YVtrKzg+PjJdLGFbVmUrMTI+PjJdPWFbaysxMj4+Ml0sYVtWZSsxNj4+Ml09YVtrKzE2Pj4yXSxhW1ZlKzIwPj4yXT1hW2srMjA+PjJdLGFbVmUrMjQ+PjJdPWFbaysyND4+Ml0sYVtWZSsyOD4+Ml09YVtrKzI4Pj4yXSx0aihsLGMsZixwKzF8''@;'; put 'put ''MCxELGdlLGJlLFIsVmUpO2JyZWFrfWlmKHE9dy9MZSxMZT09KEQ9K19bUmU+PjNdKSl7Zm9yKFI9MS9xLEc9ays4fDAsRD0rX1trPj4zXS0uNSpELE09MDshKCgwfE0pPj0oMHxwKSk7KV9bZisoTTw8NSkrMjQ+PjNdPXEsX1tmKyhNPDw1KSsxNj4+M109V2U9K19bYysoTTw8Myk+PjNdKlIs''@;'; put 'put ''X1tmKyhNPDw1KSs4Pj4zXT0uNSooK19bSGU+PjNdLXEpKyArX1tHPj4zXSxfW2YrKE08PDUpPj4zXT0uNSpXZStELEQ9V2UrRCxNPU0rMXwwO19bRz4+M109K19bRz4+M10tLjUqcSxNPTF9ZWxzZXtmb3IoUj0xL3EsRD0uNSorX1tIZT4+M10rICtfW2srOD4+M10sTT0wOyEoKDB8TSk+PSgw''@;'; put 'put ''fHApKTspX1tmKyhNPDw1KSsxNj4+M109cSxfW2YrKE08PDUpKzI0Pj4zXT1XZT0rX1tjKyhNPDwzKT4+M10qUixfW2YrKE08PDUpPj4zXT0uNSoocS0rX1tSZT4+M10pKyArX1trPj4zXSxfW2YrKE08PDUpKzg+PjNdPUQtLjUqV2UsRC09V2UsTT1NKzF8MDtfW2s+PjNdPStfW2s+PjNdKy41''@;'; put 'put ''KnEsTT0wfV9bKHJ0PWsrMTYrKE08PDMpfDApPj4zXT0rX1tydD4+M10tcSxhW1ZlPj4yXT1hW2s+PjJdLGFbVmUrND4+Ml09YVtrKzQ+PjJdLGFbVmUrOD4+Ml09YVtrKzg+PjJdLGFbVmUrMTI+PjJdPWFbaysxMj4+Ml0sYVtWZSsxNj4+Ml09YVtrKzE2Pj4yXSxhW1ZlKzIwPj4yXT1hW2sr''@;'; put 'put ''MjA+PjJdLGFbVmUrMjQ+PjJdPWFbaysyND4+Ml0sYVtWZSsyOD4+Ml09YVtrKzI4Pj4yXSx0aihsLXB8MCxjKyhwPDwzKXwwLGYrKHA8PDUpfDAsMCwwLDAsMCwxLFZlKX19d2hpbGUoMCk7bGU9cWV9ZnVuY3Rpb24gTzllKGwsYyl7Y3w9MDt2YXIgYixrLE0sRCxHLHEsZj0wLHA9MCxtPTAs''@;'; put 'put ''QT0wLHc9MCxSPTA7Zm9yKEc9bGUsbGU9bGUrMTZ8MCxEPUcscD0wfGFbKDI9PSgwfChmPTMmYVsobHw9MCk+PjJdKSk/bDpsKy00OHwwKSs0MD4+Ml0sZj0wfGFbKDM9PSgwfGYpP2w6bCs0OHwwKSs0MD4+Ml0sYVsoTT1HKzR8MCk+PjJdPUE9MHxhWzIxMisoMHxhWyhxPXArMTZ8MCk+PjJd''@;'; put 'put ''KT4+Ml0sYVtEPj4yXT1tPTB8YVsyMTIrKDB8YVsodz1mKzE2fDApPj4yXSk+PjJdLGs9MHx2cigxMiksbD1BLGI9bSwwfGZlWzExOCsoMHxhW3E+PjJdKT4+MF0mJihhW00+PjJdPWw9MHxhWzQ4KygwfGFbMTQwKygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdLHA9QSxBPWwpLDB8ZmVbMTE4Kygw''@;'; put 'put ''fGFbdz4+Ml0pPj4wXT8oYVtEPj4yXT13PTB8YVs0OCsoMHxhWzE0MCsoMHxhW2IrMTY+PjJdKT4+Ml0pPj4yXSxmPW0sbT13KTp3PWIsKDB8KEE9MHxhWzQ0KygwfGFbMTQwKygwfGFbQSsxNj4+Ml0pPj4yXSk+PjJdKSk8PSgwfChtPTB8YVs0NCsoMHxhWzE0MCsoMHxhW20rMTY+PjJdKT4+''@;'; put 'put ''Ml0pPj4yXSkpPygwfG0pPigwfEEpPyhfSyhrLG0sZixBLEQsYyksbT1sPTB8YVtEPj4yXSxmPUQsUj0xMSk6QT13OihfSyhrLEEscCxtLE0sYykscD1sPTB8YVtNPj4yXSxtPWYsZj1NLFI9MTEpOzExPT0oMHxSKSYmKGFbZj4+Ml09YVs0OCsoMHxhWzE0MCsoMHxhW2wrMTY+PjJdKT4+Ml0p''@;'; put 'put ''Pj4yXSxmPW0sbD0wfGFbTT4+Ml0sQT0wfGFbRD4+Ml0pLCgwfGwpIT0oMHxBKTspbmooayxsLDAscCxjKSxuaihrLEEsZiwwLGMpLGFbTT4+Ml09YVs0OCsoMHxhWzE0MCsoMHxhW2wrMTY+PjJdKT4+Ml0pPj4yXSxwPWwsbT1BLGY9RCxsPUEsUj0xMTtyZXR1cm4gbmooayxBLGYscCxjKSxs''@;'; put 'put ''ZT1HLDB8a31mdW5jdGlvbiBSOWUobCl7YVsobHw9MCk+PjJdPTB9ZnVuY3Rpb24gX0sobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsQXw9MDt2YXIgdz0wLGI9MDtmb3IoYj1tfD0wO3c9MHxhW2I+PjJdLCEoKDB8Yyk8PSgwfHApKTspbmoobCx3LGYsMCxBKSxjPWMrLTF8MCxi''@;'; put 'put ''PTQ4KygwfGFbMTQwKygwfGFbdysxNj4+Ml0pPj4yXSl8MCxmPXc7YVttPj4yXT1mfWZ1bmN0aW9uIG5qKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtmb3IoQT0wfER0KGN8PTApO0E7KXc9MHxhW0ErMTY+PjJdLCEoKDB8QSk9PSgwfHApfCgoMHxBKT09KDB8''@;'; put 'put ''Zik/MTooMHxhW3crMjEyPj4yXSkhPSgwfGMpKSkmJjA9PSgwfGZlW3crMTE4Pj4wXSkmJnUxZShsLDB8Q0QoQSxtLDApKSxBPTB8enQoYyxBKTtmb3Iodz1jKzE2fDAsYz0xOyEoKDB8Yyk+KDB8YVsxODArKEE9MHxhW3c+PjJdKT4+Ml0pKTspKDB8KEE9MHxhWygwfGFbQSsxODQ+PjJdKSso''@;'; put 'put ''Yzw8Mik+PjJdKSk9PSgwfGYpfCgwfEEpPT0oMHxwKXx8dTFlKGwsMHxQOWUoQSxtKSksYz1jKzF8MH1mdW5jdGlvbiB1MWUobCxjKXtjfD0wO3ZhciBwLG0sZj0wLEE9MDttPTB8YVsocD00KyhsfD0wKXwwKT4+Ml0sZj0wfGFbKEE9bCs4fDApPj4yXTtkb3tpZigoMHxtKT09KDB8YVtsPj4y''@;'; put 'put ''XSkpe2lmKGYpe2FbcD4+Ml09bTw8MSxmPTB8VjAoZixtPDwzKSxhW0E+PjJdPWY7YnJlYWt9Zj0wfFFuKDQwMCksYVtBPj4yXT1mLGFbcD4+Ml09MTAwO2JyZWFrfX13aGlsZSgwKTthW2w+PjJdPTErKEE9MHxhW2w+PjJdKSxhW2YrKEE8PDIpPj4yXT1jfWZ1bmN0aW9uIFA5ZShsLGMpe2x8''@;'; put 'put ''PTAsY3w9MDt2YXIgdyxiLGssZj0wLHA9MCxtPTAsQT0wLE09MCxEPTAsUj0wO3JldHVybiBrPTB8dnIoOCksZj0rX1sxNisobD0wfGFbbCsxNj4+Ml0pPj4zXSxiPStfW2wrMjQ+PjNdLHA9K19bbCszMj4+M10sdz0rX1tsKzQwPj4zXSxhW2srND4+Ml09NCxsPTB8dnIoNjQpLGFbaz4+Ml09''@;'; put 'put ''bCwwfGZlW2MrOD4+MF0/KEE9Zi0obT0ram5bYz4+Ml0pLG09cCttLHA9dysoUj0ram5bYys0Pj4yXSksZj1iLVIpOihBPWYqKFI9K2puW2M+PjJdKS0obT0uNSoocCtmKSooUistMSkpLG09cCpSLW0scD13KihEPStqbltjKzQ+PjJdKS0oTT0uNSoodytiKSooRCstMSkpLGY9YipELU0pLF9b''@;'; put 'put ''bD4+M109QSxfW2wrOD4+M109ZixfW2wrMTY+PjNdPUEsX1tsKzI0Pj4zXT1wLF9bbCszMj4+M109bSxfW2wrNDA+PjNdPXAsX1tsKzQ4Pj4zXT1tLF9bbCs1Nj4+M109ZiwwfGt9ZnVuY3Rpb24gcmoobCxjLGYscCl7bHw9MCxmfD0wO3ZhciBtPTAsQT0wLHc9MDtmb3IoZmVbKHB8PTApKygw''@;'; put 'put ''fGFbMTIwKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdKT4+MF09MSxZbihmLGMsMSksdz0wfE1zKGwsYyk7dzspKDB8KG09MHxhWygzPT0oMHwoQT0zJmFbdz4+Ml0pKT93OncrNDh8MCkrNDA+PjJdKSk9PSgwfGMpJiYobT0wfGFbKDI9PSgwfEEpP3c6dystNDh8MCkrNDA+PjJdKSwwfGZlW3Ar''@;'; put 'put ''KDB8YVsxMjArKDB8YVttKzE2Pj4yXSk+PjJdKT4+MF18fHJqKGwsbSxmLHApLHc9MHxWcyhsLHcsYyl9ZnVuY3Rpb24gYzFlKGwpe3ZhciBjO3JldHVybiBsfD0wLGM9MHxRbigyNCksYVs0NjkyNF09YyxhW2M+PjJdPTB8aXMoMTgyMDQsMHxhWzQ1ODFdKSxhW2MrMTY+PjJdPTAsYVtjKzEy''@;'; put 'put ''Pj4yXT0wLGFbYys0Pj4yXT0wfGYxZShsKSwwfGN9ZnVuY3Rpb24gZjFlKGwpe3ZhciBjLGY7cmV0dXJuIGx8PTAsYz0wfFFuKDE2KSxhW2MrMTI+PjJdPTAsZj0wfFFuKDIwKmx8MCksYVtjPj4yXT1mLGFbYys4Pj4yXT1mKygyMCpsfDApLGFbYys0Pj4yXT1mLDB8Y31mdW5jdGlvbiBrSyhs''@;'; put 'put ''LGMpe3ZhciBtLGY9MCxwPTA7KDB8KGY9MHxhWyhtPTEyKyhsfD0wKXwwKT4+Ml0pKTwoMHwoY3w9MCkpJiYocD0oMHwocD1mPDwxKSk8KDB8Yyk/YzpwLDB8KGY9MHxhWyhjPWwrMTZ8MCk+PjJdKSYmRnQoZiksYVtjPj4yXT0wfFFuKHA8PDMpLGFbbT4+Ml09cCl9ZnVuY3Rpb24gU0sobCl7''@;'; put 'put ''TmwoMHxhWyhsfD0wKT4+Ml0pLGZ1bmN0aW9uIE1LKGwpe2x8PTA7Zm9yKHZhciBjPTA7bDspYz0wfGFbbCsxMj4+Ml0sRnQoMHxhW2w+PjJdKSxGdChsKSxsPWN9KDB8YVtsKzQ+PjJdKSxGdCgwfGFbbCsxNj4+Ml0pLEZ0KGwpfWZ1bmN0aW9uIEVLKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0w''@;'; put 'put ''O3ZhciBBLGIsdz0wO0E9bGUsbGU9bGUrMzJ8MCxhWyh3PUErMTJ8MCk+PjJdPWN8PTAsYVt3KzQ+PjJdPWYsdz04KygwfG1pWzYzJmFbKGI9MHxhW2w+PjJdKT4+Ml1dKGIsdywxKSl8MCxhW3c+PjJdPTB8ZnVuY3Rpb24geEsobCxjLGYpe2N8PTAsZnw9MDt2YXIgcDtyZXR1cm4gYVsocD0y''@;'; put 'put ''MCsobHw9MCl8MCk+PjJdPTgrKGw9MHxhW3A+PjJdKSxhW2w+PjJdPWMsYVtsKzQ+PjJdPWYsMHxsfShsLHAsMHxhW3c+PjJdKSxsZT1BfWZ1bmN0aW9uIFd5KGwpe3JldHVybisgK19bKGx8PTApPj4zXX1mdW5jdGlvbiBaayhsKXtyZXR1cm4gMHxhWzgrKGx8PTApPj4yXX1mdW5jdGlvbiB6''@;'; put 'put ''ayhsKXtyZXR1cm4gMHx+fitfWzE2KyhsfD0wKT4+M119ZnVuY3Rpb24gaUwobCxjLGYscCxtLEEpe2x8PTAscHw9MCxtfD0wLEF8PTAsKDB8KGM9MHxhWyhjfD0wKT4+Ml0pKT49KDB8YVsoZnw9MCk+PjJdKSYmKGFbZj4+Ml09Yz1jKzEwfDAsYVtwPj4yXT0wfFYwKDB8YVtwPj4yXSwwfEFy''@;'; put 'put ''KGw8PDMsYykpLGFbbT4+Ml09MHxWMCgwfGFbbT4+Ml0sYVtmPj4yXTw8MyksYVtBPj4yXT0wfFYwKDB8YVtBPj4yXSxhW2Y+PjJdPDwzKSl9ZnVuY3Rpb24gSUsobCxjLGYscCxtLEEsdyxiLGssTSxEKXtsfD0wLGM9K2MsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MCxEfD0w''@;'; put 'put ''O3ZhciBSPTAsRz0wLHE9MCxwZT0wLGdlPTA7X1soTXw9MCk+PjNdPStfW00+PjNdKzE7ZTpkb3tpZigwfGwpe2lmKHBlPTB8YVtsKzE2Pj4yXSwwfChSPTB8YVtsKzQwPj4yXSkpZG97aWYoaUwocGUsbSxBLHcsYixrKSwoMHx6aygwfEx1KFIpKSkhPSgwfHApKXtmb3IocT0wfFprKDB8THUo''@;'; put 'put ''UikpLEc9MDshKCgwfEcpPj0oMHxwZSkpOylfWygwfGFbdz4+Ml0pKygoMHxBcigwfGFbbT4+Ml0scGUpKStHPDwzKT4+M109K19bcSsoRzw8Myk+PjNdLEc9RysxfDA7Z2U9K1d5KDB8THUoUikpLF9bKDB8YVtiPj4yXSkrKGFbbT4+Ml08PDMpPj4zXT1nZSxnZT0rX0EoZixxLHBlKSxfWygw''@;'; put 'put ''fGFbaz4+Ml0pKygocT0wfGFbbT4+Ml0pPDwzKT4+M109Z2UsYVttPj4yXT1xKzF9Uj0wfEdtKFIpfXdoaWxlKDAhPSgwfFIpKTtpZigwfGFbKHE9bCszNnwwKT4+Ml0pe2lmKGdlPStfQSgwfGFbbCsyMD4+Ml0sZixwZSksISgrX1tsKzI0Pj4zXTxnZSpjKSlmb3IoRz0xPDxwZSxSPTA7Oyl7''@;'; put 'put ''aWYoKDB8Uik+PSgwfEcpKWJyZWFrIGU7SUsoMHxhWygwfGFbcT4+Ml0pKyhSPDwyKT4+Ml0sYyxmLHAsbSxBLHcsYixrLE0sRCksUj1SKzF8MH1mb3IoaUwocGUsbSxBLHcsYixrKSxHPWwrMzJ8MCxSPTA7ISgoMHxSKT49KDB8cGUpKTspX1soMHxhW3c+PjJdKSsoKDB8QXIoMHxhW20+PjJd''@;'; put 'put ''LHBlKSkrUjw8Myk+PjNdPStfWygwfGFbRz4+Ml0pKyhSPDwzKT4+M10sUj1SKzF8MDtfWygwfGFbYj4+Ml0pKyhhW20+PjJdPDwzKT4+M109K19bbCs4Pj4zXSxnZT0rX0EoMHxhW0c+PjJdLGYscGUpLF9bKDB8YVtrPj4yXSkrKChiPTB8YVttPj4yXSk8PDMpPj4zXT1nZSxhW20+PjJdPWIr''@;'; put 'put ''MX19fXdoaWxlKDApfWZ1bmN0aW9uIG9MKGwsYyxmLHAsbSxBLHcsYixrLE0sRCl7dmFyIFI7Yz0rYyxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wLER8PTAsUj0wfGFbMTYrKGx8PTApPj4yXSxfWyhNfD0wKT4+M109MCxhW20+PjJdPTAsYVtEPj4yXT0wLGFbQT4+Ml09MTAs''@;'; put 'put ''MHxhW3c+PjJdfHwoYVt3Pj4yXT0wfFFuKDgwKlJ8MCkpLDB8YVtiPj4yXXx8KGFbYj4+Ml09MHxRbihhW0E+PjJdPDwzKSksMHxhW2s+PjJdfHwoYVtrPj4yXT0wfFFuKGFbQT4+Ml08PDMpKSxJSyhsLGMsZixwLG0sQSx3LGIsayxNLEQpfWZ1bmN0aW9uIGFqKGwsYyxmLHAsbSxBLHcsYil7''@;'; put 'put ''Y3w9MCxmfD0wLHA9K3AsbT0rbSxBPStBLHd8PTAsYnw9MDt2YXIgaz0wLE09MCxEPTA7Zm9yKEQ9MHxhWyhsfD0wKT4+Ml0sTT0wfGFbbCsxNj4+Ml0saz0wOzQhPSgwfGspOylfW3crKGs8PDMpPj4zXT0wLGs9aysxfDA7Zm9yKGFbYj4+Ml09MCxNPTB8QXIoTSxEKSxrPTA7ISgoMHxrKT49''@;'; put 'put ''KDB8TSkpOylfW2MrKGs8PDMpPj4zXT0wLGs9aysxfDA7Zm9yKEs3KGwsbCxmLGMscCxtLEEsdyksREsobCxjLHcpLHA9MS8rKDB8RCksaz0wOzQhPSgwfGspOylfWyhEPXcrKGs8PDMpfDApPj4zXT0rX1tEPj4zXSpwLGs9aysxfDB9ZnVuY3Rpb24gSzcobCxjLGYscCxtLEEsdyxiKXtsfD0w''@;'; put 'put ''LGN8PTAsZnw9MCxwfD0wLG09K20sQT0rQSx3PSt3LGJ8PTA7dmFyIGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MDtlOmRve2lmKDAhPSgwfGwpJjAhPSgwfGMpKXtpZigoMHxhW2w+PjJdKT4wJiYoMHxhW2M+PjJdKT4wKXtp''@;'; put 'put ''ZihxPTB8YVtsKzQwPj4yXSxHPTB8YVsoUmU9Yys0MHwwKT4+Ml0sZ2U9K19BKDB8YVsoaz1sKzMyfDApPj4yXSwwfGFbKEQ9YyszMnwwKT4+Ml0sSGU9MHxhW2wrMTY+PjJdKSwoUj0rX1tjKzI0Pj4zXSkrKE09K19bbCsyND4+M10pPGdlKm0pZm9yKF9bYj4+M109K19bYj4+M10rMSxwZT0w''@;'; put 'put ''fGFbaz4+Ml0sUj0rX1tsKzg+PjNdLHE9MHxHayhsLEhlKSxHPTB8YVtEPj4yXSxNPStfW2MrOD4+M10sRD0wfEdrKGMsSGUpLGdlPjB8fFByKDk0Nzk4LDk0NjgxLDE5MSw5NDc2NCksUj1SKncqTSxNPStxbCgrZ2UsKygxLUEpKSxNPTEvKC0xPT1BP2dlKmdlOk0pLGs9MDs7KXtpZigoMHxr''@;'; put 'put ''KT49KDB8SGUpKWJyZWFrIGU7X1socD1xKyhrPDwzKXwwKT4+M109KHc9UiooK19bcGUrKGs8PDMpPj4zXS0rX1tHKyhrPDwzKT4+M10pKk0pKyArX1twPj4zXSxfWyhwPUQrKGs8PDMpfDApPj4zXT0rX1twPj4zXS13LGs9aysxfDB9aWYoTGU9KDB8bCk9PSgwfGMpLChEPTAhPSgwfHEpKSYo''@;'; put 'put ''az0wIT0oMHxHKSkpZm9yKGJlPWIrOHwwLE9lPS0xPT1BLG09MS1BLEQ9cTs7KXtpZighRClicmVhayBlO2ZvcihxPTB8WmsoMHxMdShEKSksZ2U9K1d5KDB8THUoRCkpLGw9MHxXayhwLHBlPTB8emsoMHxMdShEKSksRCxIZSksZ2UqPXcsRz0wfGFbUmU+PjJdO0c7KXtjPTB8WmsoMHxMdShH''@;'; put 'put ''KSksTT0rV3koMHxMdShHKSksYj0wfFdrKHAsaz0wfHprKDB8THUoRykpLEcsSGUpO3Q6ZG97aWYoISgoMHxwZSk9PSgwfGspfExlJigwfGspPCgwfHBlKSkpZm9yKF9bYmU+PjNdPStfW2JlPj4zXSsxLEE9K2R1KGYsSGUscGUsayksTSo9Z2UsUj0rcWwoK0EsK20pLFI9MS8oT2U/QSpBOlIp''@;'; put 'put ''LGs9MDs7KXtpZigoMHxrKT49KDB8SGUpKWJyZWFrIHQ7X1soVmU9bCsoazw8Myl8MCk+PjNdPShBPU0qKCtfW3ErKGs8PDMpPj4zXS0rX1tjKyhrPDwzKT4+M10pKlIpKyArX1tWZT4+M10sX1soVmU9Yisoazw8Myl8MCk+PjNdPStfW1ZlPj4zXS1BLGs9aysxfDB9fXdoaWxlKDApO0c9MHxH''@;'; put 'put ''bShHKX1EPTB8R20oRCl9aWYoTGUpZm9yKHBlPTE8PEhlLEc9bCszNnwwLEQ9MDs7KXtpZigoMHxEKT49KDB8cGUpKWJyZWFrIGU7Zm9yKHE9MHxhWygwfGFbRz4+Ml0pKyhEPDwyKT4+Ml0saz1EOygwfGspIT0oMHxwZSk7KUs3KHEsMHxhWygwfGFbRz4+Ml0pKyhrPDwyKT4+Ml0sZixwLG0s''@;'; put 'put ''QSx3LGIpLGs9aysxfDA7RD1EKzF8MH1pZighKER8IShNPlIpKSlmb3IoRz0xPDxIZSxEPWwrMzZ8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygwfGFbRD4+Ml0pKyhrPDwyKT4+Ml0sYyxmLHAsbSxBLHcsYiksaz1rKzF8MH1pZighKGt8IShSPk0pKSlmb3IoRz0x''@;'; put 'put ''PDxIZSxEPWMrMzZ8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygwfGFbRD4+Ml0pKyhrPDwyKT4+Ml0sbCxmLHAsbSxBLHcsYiksaz1rKzF8MH1pZighRClmb3IoRz0xPDxIZSxEPWwrMzZ8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygw''@;'; put 'put ''fGFbRD4+Ml0pKyhrPDwyKT4+Ml0sYyxmLHAsbSxBLHcsYiksaz1rKzF8MH1mb3IoayYmUHIoMTM4Mzk0LDk0NjgxLDI3Myw5NDc2NCksRz0xPDxIZSxEPWMrMzZ8MCxrPTA7Oyl7aWYoKDB8ayk+PSgwfEcpKWJyZWFrIGU7SzcoMHxhWygwfGFbRD4+Ml0pKyhrPDwyKT4+Ml0sbCxmLHAsbSxB''@;'; put 'put ''LHcsYiksaz1rKzF8MH19UHIoOTQ3MzksOTQ2ODEsMTc1LDk0NzY0KX19d2hpbGUoMCl9ZnVuY3Rpb24gREsobCxjLGYpe2N8PTAsZnw9MDt2YXIgRCxSLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxHPTA7cD0wfGFbNDArKGx8PTApPj4yXSxBPStfW2wrOD4+M10sUj0wfEdrKGwsRD0w''@;'; put 'put ''fGFbbCsxNj4+Ml0pLEE+MHx8UHIoOTQ2NzMsOTQ2ODEsMjg5LDk0NjkyKSxfWyhNPWYrMTZ8MCk+PjNdPStfW00+PjNdKzE7ZTpkb3tpZihwKWZvcih3PTEvQTs7KXtpZighcClicmVhayBlO2ZvcihtPTB8V2soYywwfHprKDB8THUocCkpLHAsRCksQT0rV3koMHxMdShwKSkqdyxsPTA7ISgo''@;'; put 'put ''MHxsKT49KDB8RCkpOylfWyhHPW0rKGw8PDMpfDApPj4zXT0rX1tHPj4zXSsgK19bUisobDw8Myk+PjNdKkEsbD1sKzF8MDtwPTB8R20ocCl9ZWxzZXtmb3IoTT0xPDxELGs9bCszNnwwLEE9MS9BLGw9MDs7KXtpZigoMHxsKT49KDB8TSkpYnJlYWsgZTtpZigwfChtPTB8YVsoMHxhW2s+PjJd''@;'; put 'put ''KSsobDw8Mik+PjJdKSl7aWYoKDB8YVttPj4yXSk8PTApYnJlYWs7Zm9yKGI9MHxHayhtLEQpLHc9K19bbSs4Pj4zXSpBLHA9MDshKCgwfHApPj0oMHxEKSk7KV9bKEc9YisocDw8Myl8MCk+PjNdPStfW0c+PjNdKyArX1tSKyhwPDwzKT4+M10qdyxwPXArMXwwO0RLKG0sYyxmKX1sPWwrMXww''@;'; put 'put ''fVByKDk0NzI4LDk0NjgxLDMwNyw5NDY5Mil9fXdoaWxlKDApfWZ1bmN0aW9uIEdrKGwsYyl7Y3w9MDt2YXIgZj0wO2w9MHxhWyhmPTQ4KyhsfD0wKXwwKT4+Ml07ZTpkb3tpZighbClmb3IobD0wfFFuKGM8PDMpLGFbZj4+Ml09bCxmPTA7Oyl7aWYoKDB8Zik+PSgwfGMpKWJyZWFrIGU7X1ts''@;'; put 'put ''KyhmPDwzKT4+M109MCxmPWYrMXwwfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIFdrKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBtPTA7cmV0dXJuKG09MHxhWzI0KygwfEx1KGZ8PTApKT4+Ml0pfHwobT1sKygoMHxBcihwLGMpKTw8Myl8MCxhWzI0KygwfEx1KGYpKT4+Ml09''@;'; put 'put ''bSxtPTB8YVsyNCsoMHxMdShmKSk+PjJdKSwwfG19ZnVuY3Rpb24gWWsobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBNLEQsQT0wLHc9MCxiPTAsaz0wLFI9MCxHPTAscT0wLHBlPTA7aWYoMCE9KDB8KE09MHxRbihSPShsfD0wKTw8MykpKSYwIT0oMHwoRD0wfFFuKFIpKSkm''@;'; put 'put ''MCE9KDB8KFI9MHxRbihSKSkpKXtmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxsKSl7QT0wO2JyZWFrfV9bTSsoQTw8Myk+PjNdPStfW3ArKEE8PDMpPj4zXSxBPUErMXwwfWZvcig7Oyl7aWYoKDB8QSk+PSgwfGwpKXt3PTE7YnJlYWt9X1tEKyhBPDwzKT4+M109K19bcCsoQTw8Myk+PjNdLEE9''@;'; put 'put ''QSsxfDB9Zm9yKDshKCgwfHcpPj0oMHxjKSk7KXtmb3Ioaz0wfEFyKHcsbCksQT0wOyEoKDB8QSk+PSgwfGwpKTspX1soRz1NKyhBPDwzKXwwKT4+M109KGI9K19bRz4+M10pPChxPStfWyhwZT1wKyhBK2s8PDMpfDApPj4zXSk/YjpxLF9bKEc9RCsoQTw8Myl8MCk+PjNdPShxPStfW0c+PjNd''@;'; put 'put ''KT4oYj0rX1twZT4+M10pP3E6YixBPUErMXwwO3c9dysxfDB9Zm9yKGI9K19bRD4+M10tK19bTT4+M10sQT0wOyEoKDB8QSk+PSgwfGwpKTspX1tSKyhBPDwzKT4+M109LjUqKCtfWyhHPUQrKEE8PDMpfDApPj4zXSsgK19bKHBlPU0rKEE8PDMpfDApPj4zXSksYj1iPihxPStfW0c+PjNdLStf''@;'; put 'put ''W3BlPj4zXSk/YjpxLEE9QSsxfDA7QT0wfGFMKGwsUiwwPT1iPzUyZS03Oi41MipiLGYpO2U6ZG97aWYobSlmb3Iodz0wOzspe2lmKCgwfHcpPj0oMHxjKSlicmVhayBlO0E9MHwkNyhBLHBlPXArKCgwfEFyKHcsbCkpPDwzKXwwLCtfW20rKHc8PDMpPj4zXSx3KSx3PXcrMXwwfWVsc2UgZm9y''@;'; put 'put ''KHc9MDs7KXtpZigoMHx3KT49KDB8YykpYnJlYWsgZTtBPTB8JDcoQSxwKygoMHxBcih3LGwpKTw8Myl8MCwxLHcpLHc9dysxfDB9fXdoaWxlKDApO0Z0KE0pLEZ0KEQpLEZ0KFIpfWVsc2UgRnQoTSksRnQoRCksRnQoUiksQT0wO3JldHVybiAwfEF9ZnVuY3Rpb24gYUwobCxjLGYscCl7bHw9''@;'; put 'put ''MCxjfD0wLGY9K2YscHw9MDt2YXIgQSx3LG09MDtmb3IoQT0wfFFuKDU2KSxhW0ErMTY+PjJdPWwsYVtBPj4yXT0wLHc9MHxRbihsPDwzKSxhW0ErMjA+PjJdPXcsbT0wOyEoKDB8bSk+PSgwfGwpKTspX1t3KyhtPDwzKT4+M109K19bYysobTw8Myk+PjNdLG09bSsxfDA7cmV0dXJuIGY+MD8o''@;'; put 'put ''X1tBKzI0Pj4zXT1mLF9bQSs4Pj4zXT0wLGFbQSszMj4+Ml09MCxhW0ErMzY+PjJdPTAsYVtBKzQwPj4yXT0wLGFbQSs0ND4+Ml09cCxhW0ErNDg+PjJdPTAsMHxBKTooUHIoOTQ4OTYsOTQ2ODEsNDEwLDk0OTA2KSwwKX1mdW5jdGlvbiAkNyhsLGMsZixwKXtyZXR1cm4gZj0rZiwobHw9MCk/''@;'; put 'put ''VWsobCxjfD0wLGYscHw9MCwwKTpsPTAsMHxsfWZ1bmN0aW9uIFVrKGwsYyxmLHAsbSl7Y3w9MCxmPStmLHB8PTAsbXw9MDt2YXIgZ2UsYmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxPZT0wO2dlPTB8YVsoT2U9MTYrKGx8PTApfDApPj4yXSxiZT0wfGFbbCs0''@;'; put 'put ''ND4+Ml0sRD0wfGFbbD4+Ml07ZG97aWYoRCl7aWYoKDB8YmUpPD0oMHxtKSl7Zm9yKDB8YVtsKzM2Pj4yXSYmUHIoOTQ4ODEsOTQ2ODEsNTQxLDk0ODE1KSxhW2w+PjJdPUE9RCsxfDAsX1sodz1sKzh8MCk+PjNdPStfW3c+PjNdK2Ysdz1sKzMyfDAsaz0rKDB8QSksTT0xLysoRCsyfDApLEE9''@;'; put 'put ''MDshKCgwfEEpPj0oMHxnZSkpOylfWyhwZT0oMHxhW3c+PjJdKSsoQTw8Myl8MCk+PjNdPSgrX1twZT4+M10qaysgK19bYysoQTw8Myk+PjNdKSpNLEE9QSsxfDA7aWYoQT0wfHE3KGdlLGYsYyxwKSxiPTB8YVsodz1sKzQwfDApPj4yXSl7YVt3Pj4yXT0wfGtBKGIsQSk7YnJlYWt9UHIoOTQ4''@;'; put 'put ''OTEsOTQ2ODEsNTQ3LDk0ODE1KX1mb3IoX1sodz1sKzh8MCk+PjNdPStfW3c+PjNdK2Ysdz1sKzMyfDAsTT0rKDB8RCksaz0xLysoRCsxfDApLEE9MDshKCgwfEEpPj0oMHxnZSkpOylfWyhwZT0oMHxhW3c+PjJdKSsoQTw8Myl8MCk+PjNdPSgrX1twZT4+M10qTSsgK19bYysoQTw8Myk+PjNd''@;'; put 'put ''KSprLEE9QSsxfDA7cGU9bCszNnwwLHE9MTw8Z2U7ZTpkb3tpZighKDB8YVtwZT4+Ml0pKWZvcihhW3BlPj4yXT0wfFFuKHE8PDIpLEE9MDs7KXtpZigoMHxBKT49KDB8cSkpYnJlYWsgZTthWygwfGFbcGU+PjJdKSsoQTw8Mik+PjJdPTAsQT1BKzF8MH19d2hpbGUoMCk7KDB8KGI9MHxsaihn''@;'; put 'put ''ZSxBPTB8YVsoUj1sKzIwfDApPj4yXSxjKSkpPCgwfHEpJigwfGIpPi0xfHxQcig5NDgzNyw5NDY4MSw1MTUsOTQ4MTUpLCh3PTB8YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXSl8fCh3PTB8QXAoMHxhW09lPj4yXSxBLC41KitfW2wrMjQ+PjNdLGJlLGIpLGFbKDB8YVtwZT4+Ml0pKyhiPDwy''@;'; put 'put ''KT4+Ml09dyx3PTB8YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXSkscD0wfFVrKHcsYyxmLHAsRz1tKzF8MCksYVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXT1wLDB8YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXXx8UHIoOTQ4NjAsOTQ2ODEsNTE5LDk0ODE1KSxBPTB8YVsoYz1sKzQwfDApPj4y''@;'; put 'put ''XTtkb3tpZigwfEEpe2lmKEQ9MHx6aygwfEx1KEEpKSwxIT0oMHxhW2w+PjJdKSYmUHIoOTQ4NzEsOTQ2ODEsNTIzLDk0ODE1KSxtPTB8WmsoMHxMdSgwfGFbYz4+Ml0pKSxrPStXeSgwfEx1KDB8YVtjPj4yXSkpLCgwfChiPTB8bGooZ2Usdz0wfGFbUj4+Ml0sbSkpKTwoMHxxKSYoMHxiKT4t''@;'; put 'put ''MXx8UHIoOTQ4MzcsOTQ2ODEsNTI3LDk0ODE1KSwoQT0wfGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml0pfHwoQT0wfEFwKDB8YVtPZT4+Ml0sdywuNSorX1tsKzI0Pj4zXSxiZSxiKSxhWygwfGFbcGU+PjJdKSsoYjw8Mik+PjJdPUEsQT0wfGFbKDB8YVtwZT4+Ml0pKyhiPDwyKT4+Ml0pLE9l''@;'; put 'put ''PTB8VWsoQSxtLGssRCxHKSxhWygwfGFbcGU+PjJdKSsoYjw8Mik+PjJdPU9lLDB8YVsoMHxhW3BlPj4yXSkrKGI8PDIpPj4yXSl7V18oMHxhW2M+PjJdLDEwNiksYVtjPj4yXT0wO2JyZWFrfVByKDk0ODYwLDk0NjgxLDUzMiw5NDgxNSl9fXdoaWxlKDApO2FbbD4+Ml09MSsoMHxhW2w+PjJd''@;'; put 'put ''KX1lbHNle2ZvcihhW2w+PjJdPTEsX1tsKzg+PjNdPWYsYj0wfFFuKGdlPDwzKSxhW2wrMzI+PjJdPWIsdz0wfGFbT2U+PjJdLEE9MDshKCgwfEEpPj0oMHx3KSk7KV9bYisoQTw8Myk+PjNdPStfW2MrKEE8PDMpPj4zXSxBPUErMXwwO2lmKEE9MHxxNyh3LGYsYyxwKSwhKDB8YVsodz1sKzQw''@;'; put 'put ''fDApPj4yXSkpe2Fbdz4+Ml09MHxHXyhBKTticmVha31Qcig5NDgwNyw5NDY4MSw1MDIsOTQ4MTUpfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHE3KGwsYyxmLHApe3ZhciBtLEE7Zm9yKGx8PTAsYz0rYyxmfD0wLHB8PTAsQT0wfFFuKDMyKSxfW0E+PjNdPWMsbT0wfFFuKGw8PDMp''@;'; put 'put ''LGFbQSs4Pj4yXT1tLF9bQSsxNj4+M109KygwfHApLHA9MDshKCgwfHApPj0oMHxsKSk7KV9bbSsocDw8Myk+PjNdPStfW2YrKHA8PDMpPj4zXSxwPXArMXwwO3JldHVybiBhW0ErMjQ+PjJdPTAsMHxBfWZ1bmN0aW9uIGxqKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wLG09MDtmb3Io''@;'; put 'put ''bT0wO3A9bCstMXwwLCEoKDB8bCk8PTApOylsPXAsbT1tPDwxfDEmISgrX1tmKyhwPDwzKT4+M10tK19bYysocDw8Myk+PjNdPDApO3JldHVybiAwfG19ZnVuY3Rpb24gQXAobCxjLGYscCxtKXt2YXIgQSx3LGI7Zm9yKG18PTAsQT0wfGFMKGx8PTAsY3w9MCxmPStmLHB8PTApLHc9MHxhW0Er''@;'; put 'put ''MjA+PjJdLGI9LWYscD0wLGM9bTshKCgwfHApPj0oMHxsKSk7KV9bKG09dysocDw8Myl8MCk+PjNdPStfW20+PjNdKygwPT0oMSZjfDApP2I6ZikscD1wKzF8MCxjPSgwfGMpLzJ8MDtyZXR1cm4gMHxBfWZ1bmN0aW9uIGV2KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wO2lmKDB8KGx8PTAp''@;'; put 'put ''KXtpZihjPTB8YVtsKzE2Pj4yXSxGdCgwfGFbbCsyMD4+Ml0pLEZ0KDB8YVtsKzMyPj4yXSksRnQoMHxhW2wrNDg+PjJdKSwwfChwPTB8YVsoQT1sKzM2fDApPj4yXSkpe2ZvcihtPTE8PGMsZj0wLGM9cDshKCgwfGYpPj0oMHxtKSk7KWV2KDB8YVtjKyhmPDwyKT4+Ml0pLGY9ZisxfDAsYz0w''@;'; put 'put ''fGFbQT4+Ml07RnQoYyl9V18oMHxhW2wrNDA+PjJdLDEwNiksRnQobCl9fWZ1bmN0aW9uIFl5KGwpe2x8PTA7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO2U6ZG97aWYobCl7Zm9yKE09MHxhW2wrMjA+''@;'; put 'put ''PjJdLEQ9MHxhW2wrMjQ+PjJdLGY9MHxhW2wrOD4+Ml0sUj0wfGFbbD4+Ml0scD0wfGFbbCs0Pj4yXSx3PWwrMTZ8MCwxIT0oMHxhW2wrMzI+PjJdKSYmUHIoOTQ5MTksOTQ5NDMsNzYsOTQ5NTgpLGM9MHx1YyhwLFIsZiwwfGFbdz4+Ml0sMSksYVtjKzg+PjJdPWYsRz0wfGFbYysyMD4+Ml0s''@;'; put 'put ''az0wfGFbYysyND4+Ml0sZj0wOzspe2lmKCgwfGYpPigwfHApKXtmPTA7YnJlYWt9YVtHKyhmPDwyKT4+Ml09MCxmPWYrMXwwfXQ6Zm9yKDs7KXtpZigoMHxmKT49KDB8Uikpe2Y9MDticmVha31mb3IoQT1NKygobT1mKzF8MCk8PDIpfDAsZj0wfGFbTSsoZjw8Mik+PjJdOzspe2lmKCgwfGYp''@;'; put 'put ''Pj0oMHxhW0E+PjJdKSl7Zj1tO2NvbnRpbnVlIHR9YVsoYj1HKygxKygwfGFbRCsoZjw8Mik+PjJdKTw8Mil8MCk+PjJdPTErKDB8YVtiPj4yXSksZj1mKzF8MH19Zm9yKDshKCgwfGYpPj0oMHxwKSk7KWFbKEE9RysoKGI9ZisxfDApPDwyKXwwKT4+Ml09KDB8YVtBPj4yXSkrKDB8YVtHKyhm''@;'; put 'put ''PDwyKT4+Ml0pLGY9Yjt0OmRve3N3aXRjaCgwfGFbdz4+Ml0pe2Nhc2UgMTpBPTB8YVtsKzI4Pj4yXSxsPTB8YVtjKzI4Pj4yXSxtPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxSKSlicmVhayB0O2ZvcihiPU0rKCh3PW0rMXwwKTw8Mil8MCxmPTB8YVtNKyhtPDwyKT4+Ml07Oyl7aWYoKDB8''@;'; put 'put ''Zik+PSgwfGFbYj4+Ml0pKXttPXc7Y29udGludWUgbn1hW2srKGFbRysoYVsoZ2U9RCsoZjw8Mil8MCk+PjJdPDwyKT4+Ml08PDIpPj4yXT1tLHBlPStfW0ErKGY8PDMpPj4zXSxhWyhnZT1HKyhhW2dlPj4yXTw8Mil8MCk+PjJdPTErKHE9MHxhW2dlPj4yXSksX1tsKyhxPDwzKT4+M109cGUs''@;'; put 'put ''Zj1mKzF8MH19Y2FzZSAyOkE9MHxhW2wrMjg+PjJdLGw9MHxhW2MrMjg+PjJdLG09MDtuOmZvcig7Oyl7aWYoKDB8bSk+PSgwfFIpKWJyZWFrIHQ7Zm9yKGI9TSsoKHc9bSsxfDApPDwyKXwwLGY9MHxhW00rKG08PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8YVtiPj4yXSkpe209dztjb250aW51''@;'; put 'put ''ZSBufWFbaysoYVtHKyhhWyhnZT1EKyhmPDwyKXwwKT4+Ml08PDIpPj4yXTw8Mik+PjJdPW0sX1tsKygoYmU9KHE9MHxhWyhnZT1HKyhhW2dlPj4yXTw8Mil8MCk+PjJdKTw8MSk8PDMpPj4zXT0rX1tBKygoT2U9Zjw8MSk8PDMpPj4zXSxfW2wrKCgxfGJlKTw8Myk+PjNdPStfW0ErKCgxfE9l''@;'; put 'put ''KTw8Myk+PjNdLGFbZ2U+PjJdPXErMSxmPWYrMXwwfX1jYXNlIDQ6QT0wfGFbbCsyOD4+Ml0sbD0wfGFbYysyOD4+Ml0sbT0wO246Zm9yKDs7KXtpZigoMHxtKT49KDB8UikpYnJlYWsgdDtmb3IoYj1NKygodz1tKzF8MCk8PDIpfDAsZj0wfGFbTSsobTw8Mik+PjJdOzspe2lmKCgwfGYpPj0o''@;'; put 'put ''MHxhW2I+PjJdKSl7bT13O2NvbnRpbnVlIG59YVtrKyhhW0crKGFbKGdlPUQrKGY8PDIpfDApPj4yXTw8Mik+PjJdPDwyKT4+Ml09bSxiZT0wfGFbQSsoZjw8Mik+PjJdLGFbKGdlPUcrKGFbZ2U+PjJdPDwyKXwwKT4+Ml09MSsoT2U9MHxhW2dlPj4yXSksYVtsKyhPZTw8Mik+PjJdPWJlLGY9''@;'; put 'put ''ZisxfDB9fWNhc2UgODptPTA7bjpmb3IoOzspe2lmKCgwfG0pPj0oMHxSKSlicmVhayB0O2ZvcihsPU0rKChBPW0rMXwwKTw8Mil8MCxmPTB8YVtNKyhtPDwyKT4+Ml07Oyl7aWYoKDB8Zik+PSgwfGFbbD4+Ml0pKXttPUE7Y29udGludWUgbn1hWyhiZT1HKyhhW0QrKGY8PDIpPj4yXTw8Mil8''@;'; put 'put ''MCk+PjJdPTErKE9lPTB8YVtiZT4+Ml0pLGFbaysoT2U8PDIpPj4yXT1tLGY9ZisxfDB9fWRlZmF1bHQ6UmEoYyksYz0wO2JyZWFrIGV9fXdoaWxlKDApO2Zvcig7Zj1wKy0xfDAsISgoMHxwKTw9MCk7KWFbRysocDw8Mik+PjJdPWFbRysoZjw8Mik+PjJdLHA9ZjthW0c+PjJdPTB9ZWxzZSBj''@;'; put 'put ''PTB9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBSYShsKXt2YXIgYz0wOzB8KGx8PTApJiYoMHwoYz0wfGFbbCsyMD4+Ml0pJiZGdChjKSwwfChjPTB8YVtsKzI0Pj4yXSkmJkZ0KGMpLEZ0KDB8YVtsKzI4Pj4yXSksRnQobCkpfWZ1bmN0aW9uIHVjKGwsYyxmLHAsbSl7cmV0dXJuIGZ8''@;'; put 'put ''PTAsbXw9MCxsPTB8c2oobHw9MCxjfD0wLHB8PTAsMHxmdW5jdGlvbiBRayhsKXtzd2l0Y2goMHwobHw9MCkpe2Nhc2UgMTpsPTg7YnJlYWs7Y2FzZSAyOmw9MTY7YnJlYWs7Y2FzZSA0Omw9NDticmVhaztkZWZhdWx0Omw9MH1yZXR1cm4gMHxsfShwKSxtKSwoMHxmKT4wJiZ1aihsLGYpLDB8''@;'; put 'put ''bH1mdW5jdGlvbiBzaihsLGMsZixwLG0pe3ZhciBBO3JldHVybiBsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQT0wfFFuKDQ0KSxhW0E+PjJdPWwsYVtBKzQ+PjJdPWMsYVtBKzg+PjJdPTAsYVtBKzEyPj4yXT0wLGFbQSsxNj4+Ml09ZixhW0ErNDA+PjJdPXAsbD0yPT0oMHxtKT8wOjB8UW4o''@;'; put 'put ''NCsobDw8Mil8MCksYVtBKzIwPj4yXT1sLGFbQSsyND4+Ml09MCxhW0ErMjg+PjJdPTAsYVtBKzMyPj4yXT1tLGFbQSszNj4+Ml09MCwwfEF9ZnVuY3Rpb24gdWoobCxjKXtjfD0wO3ZhciBwLG0sdyxmPTAsQT0wO3JldHVybiB3PTB8YVszMisobHw9MCk+PjJdLGFbKG09bCsyOHwwKT4+Ml09''@;'; put 'put ''MCxwPTB8UW4oZj1jPDwyKSwyIT0oMHx3KT8oYVtsKzI0Pj4yXT1wLDAhPSgwfGMpJigwfChmPTB8YVtsKzQwPj4yXSkpPjAmJihBPTQpKTooYVtsKzIwPj4yXT1wLGFbbCsyND4+Ml09MHxRbihmKSxmPTB8YVtsKzQwPj4yXSxBPTQpLDQ9PSgwfEEpJiYoYVttPj4yXT0wfFFuKDB8QXIoZixj''@;'; put 'put ''KSkpLGFbbCsxMj4+Ml09YywwfGx9ZnVuY3Rpb24gYWgobCxjKXtyZXR1cm4gMHxsaChsfD0wLGN8PTApP2M9MHx0dihsKTooYz0wfFl5KGwpKT8obD0wfHlwKGwsYyksUmEoYyksYVsoYz1sKzM2fDApPj4yXT0zfGFbYz4+Ml0sYz1sKTpjPTAsMHxjfWZ1bmN0aW9uIGxoKGwsYyl7Y3w9MDt2''@;'; put 'put ''YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wO2lmKGx8PTApaWYoMSE9KDB8YVtsKzMyPj4yXSkmJlByKDk0OTE5LDk0OTQzLDE4Nyw5NTA3NCksMD09KDImKGY9MHxhWyhiZT1sKzM2fDApPj4yXSl8MCkm''@;'; put 'put ''JjA9PSgxJmZ8MCl8MV4ocT0wIT0oMHxjKSkpaWYoKDB8YVtsPj4yXSk9PSgwfGFbbCs0Pj4yXSkmJjAhPSgwfChPZT0wfFl5KGwpKSkpe2ZvcihrPTB8YVtsKzIwPj4yXSxNPTB8YVtsKzI0Pj4yXSxEPTB8YVtPZSsyMD4+Ml0sUj0wfGFbT2UrMjQ+PjJdLHBlPTB8UW4oKEc9MHxhW2w+PjJd''@;'; put 'put ''KTw8MiksYz0wOyEoKDB8Yyk+PSgwfEcpKTspYVtwZSsoYzw8Mik+PjJdPS0xLGM9YysxfDA7ZTpkb3tzd2l0Y2goMHwocT84OjB8YVtsKzE2Pj4yXSkpe2Nhc2UgMTpmb3IoQT0wfGFbbCsyOD4+Ml0sdz0wfGFbT2UrMjg+PjJdLGM9MDs7KXtpZigoMHxjKT4oMHxHKSl7Zj0wO2JyZWFrfWlm''@;'; put 'put ''KCgwfGFbaysoYzw8Mik+PjJdKSE9KDB8YVtEKyhjPDwyKT4+Ml0pKXtjPTA7YnJlYWsgZX1jPWMrMXwwfXQ6Zm9yKDs7KXtpZigoMHxmKT49KDB8Rykpe2dlPTU0O2JyZWFrIGV9Zm9yKGw9aysoKG09ZisxfDApPDwyKXwwLGM9MHxhWyhwPWsrKGY8PDIpfDApPj4yXTshKCgwfGMpPj0oMHxh''@;'; put 'put ''W2w+PjJdKSk7KWFbcGUrKGFbTSsoYzw8Mik+PjJdPDwyKT4+Ml09YyxjPWMrMXwwO2ZvcihsPTB8YVtEKyhtPDwyKT4+Ml0sZj1jPTB8YVtEKyhmPDwyKT4+Ml07ISgoMHxmKT49KDB8bCkpOyl7aWYoKDB8YVtwZSsoYVtSKyhmPDwyKT4+Ml08PDIpPj4yXSk8KDB8YVtwPj4yXSkpe2M9MDti''@;'; put 'put ''cmVhayBlfWY9ZisxfDB9Zm9yKDs7KXtpZigoMHxjKT49KDB8bCkpe2Y9bTtjb250aW51ZSB0fWlmKCgoTGU9K19bdysoYzw8Myk+PjNdLStfW0ErKGFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml08PDMpPj4zXSk+PTA/TGU6LUxlKT4xZS03KXtjPTA7YnJlYWsgZX1jPWMrMXwwfX1jYXNl''@;'; put 'put ''IDI6Zm9yKHc9MHxhW2wrMjg+PjJdLGI9MHxhW09lKzI4Pj4yXSxjPTA7Oyl7aWYoKDB8Yyk+KDB8Rykpe2Y9MDticmVha31pZigoMHxhW2srKGM8PDIpPj4yXSkhPSgwfGFbRCsoYzw8Mik+PjJdKSl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH10OmZvcig7Oyl7aWYoKDB8Zik+PSgwfEcpKXtnZT01''@;'; put 'put ''NDticmVhayBlfWZvcihsPWsrKChBPWYrMXwwKTw8Mil8MCxjPTB8YVsobT1rKyhmPDwyKXwwKT4+Ml07ISgoMHxjKT49KDB8YVtsPj4yXSkpOylhW3BlKyhhW00rKGM8PDIpPj4yXTw8Mik+PjJdPWMsYz1jKzF8MDtmb3IocD0wfGFbRCsoQTw8Mik+PjJdLGM9Zj0wfGFbRCsoZjw8Mik+PjJd''@;'; put 'put ''Ozspe2lmKCgwfGMpPj0oMHxwKSl7Yz1mO2JyZWFrfWlmKCgwfGFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbbT4+Ml0pKXtjPTA7YnJlYWsgZX1jPWMrMXwwfWZvcig7Oyl7aWYoKDB8Yyk+PSgwfHApKXtmPUE7Y29udGludWUgdH1pZigoKExlPStfW2IrKChmPWM8PDEpPDwz''@;'; put 'put ''KT4+M10tK19bdysoKGw9YVtwZSsoYVtSKyhjPDwyKT4+Ml08PDIpPj4yXTw8MSk8PDMpPj4zXSk+PTA/TGU6LUxlKT4xZS03KXtjPTA7YnJlYWsgZX1pZigoKExlPStfW2IrKCgxfGYpPDwzKT4+M10tK19bdysoKDF8bCk8PDMpPj4zXSk+PTA/TGU6LUxlKT4xZS03KXtjPTA7YnJlYWsgZX1j''@;'; put 'put ''PWMrMXwwfX1jYXNlIDQ6bT0wfGFbbCsyOD4+Ml0sQT0wfGFbT2UrMjg+PjJdLGM9MDt0OmZvcig7Oyl7aWYoKDB8Yyk+PSgwfEcpKXtnZT01NDticmVhayBlfWZvcihsPWsrKCh3PWMrMXwwKTw8Mil8MCxmPTB8YVsocD1rKyhjPDwyKXwwKT4+Ml07ISgoMHxmKT49KDB8YVtsPj4yXSkpOylh''@;'; put 'put ''W3BlKyhhW00rKGY8PDIpPj4yXTw8Mik+PjJdPWYsZj1mKzF8MDtmb3IobD0wfGFbRCsodzw8Mik+PjJdLGY9Yz0wfGFbRCsoYzw8Mik+PjJdOyEoKDB8Zik+PSgwfGwpKTspe2lmKCgwfGFbcGUrKGFbUisoZjw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbcD4+Ml0pKXtjPTA7YnJlYWsgZX1mPWYr''@;'; put 'put ''MXwwfWZvcig7Oyl7aWYoKDB8Yyk+PSgwfGwpKXtjPXc7Y29udGludWUgdH1pZigoMHxhW0ErKGM8PDIpPj4yXSkhPSgwfGFbbSsoYVtwZSsoYVtSKyhjPDwyKT4+Ml08PDIpPj4yXTw8Mik+PjJdKSl7Yz0wO2JyZWFrIGV9Yz1jKzF8MH19Y2FzZSA4Omw9MDt0OmZvcig7Oyl7aWYoKDB8bCk+''@;'; put 'put ''PSgwfEcpKXtnZT01NDticmVhayBlfWZvcihmPWsrKChtPWwrMXwwKTw8Mil8MCxjPTB8YVsocD1rKyhsPDwyKXwwKT4+Ml07ISgoMHxjKT49KDB8YVtmPj4yXSkpOylhW3BlKyhhW00rKGM8PDIpPj4yXTw8Mik+PjJdPWMsYz1jKzF8MDtmb3IoZj0wfGFbRCsobTw8Mik+PjJdLGM9MHxhW0Qr''@;'; put 'put ''KGw8PDIpPj4yXTs7KXtpZigoMHxjKT49KDB8Zikpe2w9bTtjb250aW51ZSB0fWlmKCgwfGFbcGUrKGFbUisoYzw8Mik+PjJdPDwyKT4+Ml0pPCgwfGFbcD4+Ml0pKXtjPTA7YnJlYWsgZX1jPWMrMXwwfX1kZWZhdWx0OmM9MH19d2hpbGUoMCk7NTQ9PSgwfGdlKSYmKGY9MHxhW2JlPj4yXSxx''@;'; put 'put ''P2M9MTooYVtiZT4+Ml09MnxmLGM9MyksYVtiZT4+Ml09Y3xmLGM9MSksRnQocGUpLFJhKE9lKX1lbHNlIGM9MDtlbHNlIGM9MTtlbHNlIGM9MDtyZXR1cm4gMHxjfWZ1bmN0aW9uIHR2KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTA7cmV0dXJuKGx8PTApPyhjPTB8Y2ooMHxhW2w+PjJdLDB8YVts''@;'; put 'put ''KzQ+PjJdLDB8YVsocD1sKzh8MCk+PjJdLDB8YVtsKzE2Pj4yXSwwfGFbKG09bCs0MHwwKT4+Ml0sMHxhW2wrMzI+PjJdKSxnbygwfGFbYysyMD4+Ml0sMHxhWyhmPWwrMjB8MCk+PjJdLDQrKGFbbD4+Ml08PDIpfDApLGdvKDB8YVtjKzI0Pj4yXSwwfGFbbCsyND4+Ml0sYVsoMHxhW2Y+PjJd''@;'; put 'put ''KSsoYVtsPj4yXTw8Mik+PjJdPDwyfDApLDB8KGY9MHxhW2wrMjg+PjJdKSYmZ28oMHxhW2MrMjg+PjJdLDB8ZiwwfEFyKDB8YVtwPj4yXSwwfGFbbT4+Ml0pKSxhW2MrMzY+PjJdPWFbbCszNj4+Ml0sYVtjKzg+PjJdPWFbcD4+Ml0pOmM9MCwwfGN9ZnVuY3Rpb24geXAobCxjKXt2YXIgRyxx''@;'; put 'put ''LGdlLGJlLE9lLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxwZT0wLExlPTAsUmU9MDtpZihxPTB8YVsyMCsobHw9MCk+PjJdLGdlPTB8YVtsKzI0Pj4yXSxiZT0wfGFbMjArKGN8PTApPj4yXSxPZT0wfGFbYysyND4+Ml0sMCE9KDB8bCkmMCE9KDB8Yyl8fFByKDk0''@;'; put 'put ''OTgxLDk0OTQzLDk3Myw5NDk4OCksMT09KDB8KHBlPTB8YVtsKzMyPj4yXSkpJiYoMHxwZSk9PSgwfGFbYyszMj4+Ml0pfHxQcig5NTAwNSw5NDk0Myw5NzQsOTQ5ODgpLCgwfChmPTB8YVsocD1sKzE2fDApPj4yXSkpIT0oMHxhW2MrMTY+PjJdKSYmUHIoOTUwNTUsOTQ5NDMsOTc1LDk0OTg4''@;'; put 'put ''KSxtPTB8YVtsKzQ+PjJdLCgwfChHPTB8YVtsPj4yXSkpPT0oMHxhW2M+PjJdKSYmKDB8bSk9PSgwfGFbYys0Pj4yXSkmJjB8KExlPTB8dWMoRyxtLCgwfGFbYys4Pj4yXSkrKDB8YVtsKzg+PjJdKXwwLGYsMSkpKXtmb3IoRD0wfGFbTGUrMjA+PjJdLFI9MHxhW0xlKzI0Pj4yXSxwZT0wfFFu''@;'; put 'put ''KG08PDIpLGY9MDshKCgwfGYpPj0oMHxtKSk7KWFbcGUrKGY8PDIpPj4yXT0tMSxmPWYrMXwwO2FbRD4+Ml09MDtlOmRve3N3aXRjaCgwfGFbcD4+Ml0pe2Nhc2UgMTpmb3IoTT0wfGFbbCsyOD4+Ml0sdz0wfGFbYysyOD4+Ml0sYj0wfGFbTGUrMjg+PjJdLGY9MCxtPTA7Oyl7aWYoKDB8bSk+''@;'; put 'put ''PSgwfEcpKWJyZWFrIGU7Zm9yKHA9cSsoKGs9bSsxfDApPDwyKXwwLGw9MHxhW3ErKG08PDIpPj4yXTshKCgwfGwpPj0oMHxhW3A+PjJdKSk7KWFbcGUrKGFbKEE9Z2UrKGw8PDIpfDApPj4yXTw8Mik+PjJdPWYsYVtSKyhmPDwyKT4+Ml09YVtBPj4yXSxfW2IrKGY8PDMpPj4zXT0rX1tNKyhs''@;'; put 'put ''PDwzKT4+M10sbD1sKzF8MCxmPWYrMXwwO2ZvcihjPWJlKyhrPDwyKXwwLEE9RCsobTw8Mil8MCxtPTB8YVtiZSsobTw8Mik+PjJdOyEoKDB8bSk+PSgwfGFbYz4+Ml0pKTspKDB8KHA9MHxhW3BlKygobD0wfGFbT2UrKG08PDIpPj4yXSk8PDIpPj4yXSkpPCgwfGFbQT4+Ml0pPyhhW1IrKGY8''@;'; put 'put ''PDIpPj4yXT1sLF9bYisoZjw8Myk+PjNdPStfW3crKG08PDMpPj4zXSxmPWYrMXwwKTpfWyhwPWIrKHA8PDMpfDApPj4zXT0rX1twPj4zXSsgK19bdysobTw8Myk+PjNdLG09bSsxfDA7YVtEKyhrPDwyKT4+Ml09ZixtPWt9Y2FzZSAyOmZvcihNPTB8YVtsKzI4Pj4yXSxrPTB8YVtjKzI4Pj4y''@;'; put 'put ''XSx3PTB8YVtMZSsyOD4+Ml0sbT0wLGY9MDs7KXtpZigoMHxtKT49KDB8RykpYnJlYWsgZTtmb3IocD1xKygoYj1tKzF8MCk8PDIpfDAsbD0wfGFbcSsobTw8Mik+PjJdOyEoKDB8bCk+PSgwfGFbcD4+Ml0pKTspYVtwZSsoYVsoYz1nZSsobDw8Mil8MCk+PjJdPDwyKT4+Ml09ZixhW1IrKGY8''@;'; put 'put ''PDIpPj4yXT1hW2M+PjJdLF9bdysoKEE9Zjw8MSk8PDMpPj4zXT0rX1tNKygoYz1sPDwxKTw8Myk+PjNdLF9bdysoKDF8QSk8PDMpPj4zXT0rX1tNKygoMXxjKTw8Myk+PjNdLGw9bCsxfDAsZj1mKzF8MDtmb3IoYz1iZSsoYjw8Mil8MCxBPUQrKG08PDIpfDAsbT0wfGFbYmUrKG08PDIpPj4y''@;'; put 'put ''XTshKCgwfG0pPj0oMHxhW2M+PjJdKSk7KSgwfChwPTB8YVtwZSsoKGw9MHxhW09lKyhtPDwyKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW0E+PjJdKT8oYVtSKyhmPDwyKT4+Ml09bCxfW3crKChwPWY8PDEpPDwzKT4+M109K19baysoKGw9bTw8MSk8PDMpPj4zXSxfW3crKCgxfHApPDwzKT4+M109''@;'; put 'put ''K19baysoKDF8bCk8PDMpPj4zXSxmPWYrMXwwKTooX1soUmU9dysoKHA8PD0xKTw8Myl8MCk+PjNdPStfW1JlPj4zXSsgK19baysoKGw9bTw8MSk8PDMpPj4zXSxfWyhwPXcrKCgxfHApPDwzKXwwKT4+M109K19bcD4+M10rICtfW2srKCgxfGwpPDwzKT4+M10pLG09bSsxfDA7YVtEKyhiPDwy''@;'; put 'put ''KT4+Ml09ZixtPWJ9Y2FzZSA0OmZvcihNPTB8YVtsKzI4Pj4yXSx3PTB8YVtjKzI4Pj4yXSxiPTB8YVtMZSsyOD4+Ml0sbT0wLGY9MDs7KXtpZigoMHxtKT49KDB8RykpYnJlYWsgZTtmb3IocD1xKygoaz1tKzF8MCk8PDIpfDAsbD0wfGFbcSsobTw8Mik+PjJdOyEoKDB8bCk+PSgwfGFbcD4+''@;'; put 'put ''Ml0pKTspYVtwZSsoYVsoUmU9Z2UrKGw8PDIpfDApPj4yXTw8Mik+PjJdPWYsYVtSKyhmPDwyKT4+Ml09YVtSZT4+Ml0sYVtiKyhmPDwyKT4+Ml09YVtNKyhsPDwyKT4+Ml0sbD1sKzF8MCxmPWYrMXwwO2ZvcihjPWJlKyhrPDwyKXwwLEE9RCsobTw8Mil8MCxtPTB8YVtiZSsobTw8Mik+PjJd''@;'; put 'put ''OyEoKDB8bSk+PSgwfGFbYz4+Ml0pKTspKDB8KHA9MHxhW3BlKygobD0wfGFbT2UrKG08PDIpPj4yXSk8PDIpPj4yXSkpPCgwfGFbQT4+Ml0pPyhhW1IrKGY8PDIpPj4yXT1sLGFbYisoZjw8Mik+PjJdPWFbdysobTw8Mik+PjJdLGY9ZisxfDApOmFbKFJlPWIrKHA8PDIpfDApPj4yXT0oMHxh''@;'; put 'put ''W1JlPj4yXSkrKDB8YVt3KyhtPDwyKT4+Ml0pLG09bSsxfDA7YVtEKyhrPDwyKT4+Ml09ZixtPWt9Y2FzZSA4OmZvcihmPTAsbT0wOzspe2lmKCgwfG0pPj0oMHxHKSlicmVhayBlO2ZvcihwPXErKCh3PW0rMXwwKTw8Mil8MCxsPTB8YVtxKyhtPDwyKT4+Ml07ISgoMHxsKT49KDB8YVtwPj4y''@;'; put 'put ''XSkpOylhW3BlKyhhWyhSZT1nZSsobDw8Mil8MCk+PjJdPDwyKT4+Ml09ZixhW1IrKGY8PDIpPj4yXT1hW1JlPj4yXSxmPWYrMXwwLGw9bCsxfDA7Zm9yKGM9YmUrKHc8PDIpfDAsQT1EKyhtPDwyKXwwLHA9MHxhW2JlKyhtPDwyKT4+Ml07ISgoMHxwKT49KDB8YVtjPj4yXSkpOykoMHxhW3Bl''@;'; put 'put ''KygobD0wfGFbT2UrKHA8PDIpPj4yXSk8PDIpPj4yXSk8KDB8YVtBPj4yXSkmJihhW1IrKGY8PDIpPj4yXT1sLGY9ZisxfDApLHA9cCsxfDA7YVtEKyh3PDwyKT4+Ml09ZixtPXd9ZGVmYXVsdDpmPTB9fXdoaWxlKDApO3JldHVybiBhW0xlKzg+PjJdPWYsRnQocGUpLDB8TGV9cmV0dXJuIDB9''@;'; put 'put ''ZnVuY3Rpb24gY2oobCxjLGYscCxtLEEpe3JldHVybiBmfD0wLGw9MHxzaihsfD0wLGN8PTAscHw9MCxtfD0wLEF8PTApLCgwfGYpPjAmJnVqKGwsZiksMHxsfWZ1bmN0aW9uIEprKGwsYyl7dmFyIGY9MDtyZXR1cm4gMHxsaChsfD0wLGN8PTApPyhjPTB8dHYobCksZj01KTooYz0wfFl5KGwp''@;'; put 'put ''KT8oZj0wfHlwKGwsYyksUmEoYyksYVsoYz1mKzM2fDApPj4yXT0zfGFbYz4+Ml0sYz1mLGY9NSk6Yz0wLDU9PSgwfGYpJiYoYz0wfHdwKGMpKSwwfGN9ZnVuY3Rpb24gd3AobCl7bHw9MDt2YXIgYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO2U6ZG97aWYobCl7TT0w''@;'; put 'put ''fGFbbCsyND4+Ml0sZj0wfGFbKGs9MHxhW2wrMjA+PjJdKT4+Ml07dDpkb3tzd2l0Y2goMHxhW2wrMTY+PjJdKXtjYXNlIDE6Zm9yKGI9MHxhW2wrMjg+PjJdLHc9MCxjPTA7Oyl7aWYoKDB8dyk+PSgwfGFbbD4+Ml0pKWJyZWFrIHQ7Zm9yKEE9aysoKG09dysxfDApPDwyKXwwOyEoKDB8Zik+''@;'; put 'put ''PSgwfChwPTB8YVtBPj4yXSkpKTspKDB8KHA9MHxhW00rKGY8PDIpPj4yXSkpIT0oMHx3KSYmKGFbTSsoYzw8Mik+PjJdPXAsX1tiKyhjPDwzKT4+M109K19bYisoZjw8Myk+PjNdLGM9YysxfDApLGY9ZisxfDA7YVtBPj4yXT1jLHc9bSxmPXB9Y2FzZSAyOmZvcihiPTB8YVtsKzI4Pj4yXSx3''@;'; put 'put ''PTAsYz0wOzspe2lmKCgwfHcpPj0oMHxhW2w+PjJdKSlicmVhayB0O2ZvcihBPWsrKChtPXcrMXwwKTw8Mil8MDshKCgwfGYpPj0oMHwocD0wfGFbQT4+Ml0pKSk7KSgwfChwPTB8YVtNKyhmPDwyKT4+Ml0pKSE9KDB8dykmJihhW00rKGM8PDIpPj4yXT1wLF9bYisoKHA9Yzw8MSk8PDMpPj4z''@;'; put 'put ''XT0rX1tiKygoRD1mPDwxKTw8Myk+PjNdLF9bYisoKDF8cCk8PDMpPj4zXT0rX1tiKygoMXxEKTw8Myk+PjNdLGM9YysxfDApLGY9ZisxfDA7YVtBPj4yXT1jLHc9bSxmPXB9Y2FzZSA0OmZvcihiPTB8YVtsKzI4Pj4yXSx3PTAsYz0wOzspe2lmKCgwfHcpPj0oMHxhW2w+PjJdKSlicmVhayB0''@;'; put 'put ''O2ZvcihBPWsrKChtPXcrMXwwKTw8Mil8MDshKCgwfGYpPj0oMHwocD0wfGFbQT4+Ml0pKSk7KSgwfChwPTB8YVtNKyhmPDwyKT4+Ml0pKSE9KDB8dykmJihhW00rKGM8PDIpPj4yXT1wLGFbYisoYzw8Mik+PjJdPWFbYisoZjw8Mik+PjJdLGM9YysxfDApLGY9ZisxfDA7YVtBPj4yXT1jLHc9''@;'; put 'put ''bSxmPXB9Y2FzZSA4OmZvcih3PTAsYz0wOzspe2lmKCgwfHcpPj0oMHxhW2w+PjJdKSlicmVhayB0O2ZvcihBPWsrKChtPXcrMXwwKTw8Mil8MDshKCgwfGYpPj0oMHwocD0wfGFbQT4+Ml0pKSk7KSgwfChwPTB8YVtNKyhmPDwyKT4+Ml0pKSE9KDB8dykmJihhW00rKGM8PDIpPj4yXT1wLGM9''@;'; put 'put ''YysxfDApLGY9ZisxfDA7YVtBPj4yXT1jLHc9bSxmPXB9ZGVmYXVsdDpsPTA7YnJlYWsgZX19d2hpbGUoMCk7YVtsKzg+PjJdPWN9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBmaihsKXtyZXR1cm4gMj09KDB8YVszMisobHw9MCk+PjJdKT8wfG80KDB8YVtsKzg+PjJd''@;'; put 'put ''LDB8YVtsPj4yXSwwfGFbbCs0Pj4yXSwwfGFbbCsyMD4+Ml0sMHxhW2wrMjQ+PjJdLDB8YVtsKzI4Pj4yXSwwfGFbbCsxNj4+Ml0sMHxhW2wrNDA+PjJdKTooUHIoOTUxMDAsOTQ5NDMsODAzLDk1MTI2KSwwKX1mdW5jdGlvbiBvNChsLGMsZixwLG0sQSx3LGIpe3JldHVybiAwfGZ1bmN0aW9u''@;'; put 'put ''IGJBKGwsYyxmLHAsbSxBLHcsYixrKXtwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MDt2YXIgT2UsTGUsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MDtmb3IoKDB8KGx8PTApKT4tMSYoMHwoY3w9MCkpPjAmKDB8KGZ8PTApKT4wfHxQcig5NTE2Miw5NDk0Myw4NDMsOTUx''@;'; put 'put ''ODgpLChiPTB8Y2ooYyxmLGwsdyxiLDEpKXx8UHIoOTUyMzMsOTQ5NDMsODQ3LDk1MTg4KSxMZT0wfGFbYisyMD4+Ml0sT2U9MHxhW2IrMjQ+PjJdLEQ9YysxfDAsTT0wOygwfE0pIT0oMHxEKTspYVtMZSsoTTw8Mik+PjJdPTAsTT1NKzF8MDtlOmRve3N3aXRjaCgwfHcpe2Nhc2UgMTpmb3Io''@;'; put 'put ''dz0wfGFbYisyOD4+Ml0sTT0wOzspe2lmKCgwfE0pPj0oMHxsKSl7cGU9MDticmVha31pZighKCgwfChEPTB8YVtwKyhNPDwyKT4+Ml0pKT4tMSYoMHxEKTwoMHxjKSkpe2JlPTEzO2JyZWFrfWlmKCEoKDB8KGdlPTB8YVttKyhNPDwyKT4+Ml0pKT4tMSYoMHxnZSk8KDB8ZikpKXtiZT0xMzti''@;'; put 'put ''cmVha31hWyhnZT1MZSsoRCsxPDwyKXwwKT4+Ml09MSsoMHxhW2dlPj4yXSksTT1NKzF8MH1mb3IoMTM9PSgwfGJlKSYmUHIoMTM4Mzk0LDk0OTQzLDg2Miw5NTE4OCk7Oyl7aWYoKDB8cGUpPT0oMHxjKSl7TT0wO2JyZWFrfWFbKGY9TGUrKChiZT1wZSsxfDApPDwyKXwwKT4+Ml09KDB8YVtm''@;'; put 'put ''Pj4yXSkrKDB8YVtMZSsocGU8PDIpPj4yXSkscGU9YmV9Zm9yKDsoMHxNKSE9KDB8bCk7KV9bdysoKGJlPTB8YVsoZ2U9TGUrKGFbcCsoTTw8Mik+PjJdPDwyKXwwKT4+Ml0pPDwzKT4+M109K19bQSsoTTw8Myk+PjNdLGY9MHxhW20rKE08PDIpPj4yXSxhW2dlPj4yXT1iZSsxLGFbT2UrKGJl''@;'; put 'put ''PDwyKT4+Ml09ZixNPU0rMXwwO2Zvcig7Oyl7aWYoKDB8Yyk8PTApYnJlYWsgZTthW0xlKyhjPDwyKT4+Ml09YVtMZSsoKG09YystMXwwKTw8Mik+PjJdLGM9bX1jYXNlIDI6Zm9yKHc9MHxhW2IrMjg+PjJdLE09MDs7KXtpZigoMHxNKT49KDB8bCkpe2dlPTA7YnJlYWt9aWYoISgoMHwoRD0w''@;'; put 'put ''fGFbcCsoTTw8Mik+PjJdKSk+LTEmKDB8RCk8KDB8YykpKXtiZT0yNTticmVha31pZighKCgwfChwZT0wfGFbbSsoTTw8Mik+PjJdKSk+LTEmKDB8cGUpPCgwfGYpKSl7YmU9MjU7YnJlYWt9YVsocGU9TGUrKEQrMTw8Mil8MCk+PjJdPTErKDB8YVtwZT4+Ml0pLE09TSsxfDB9Zm9yKDI1PT0o''@;'; put 'put ''MHxiZSkmJlByKDEzODM5NCw5NDk0Myw4ODAsOTUxODgpOzspe2lmKCgwfGdlKT09KDB8Yykpe009MDticmVha31hWyhmPUxlKygoYmU9Z2UrMXwwKTw8Mil8MCk+PjJdPSgwfGFbZj4+Ml0pKygwfGFbTGUrKGdlPDwyKT4+Ml0pLGdlPWJlfWZvcig7KDB8TSkhPSgwfGwpOylfW3crKChmPShi''@;'; put 'put ''ZT0wfGFbKGdlPUxlKyhhW3ArKE08PDIpPj4yXTw8Mil8MCk+PjJdKTw8MSk8PDMpPj4zXT0rX1tBPj4zXSxfW3crKCgxfGYpPDwzKT4+M109K19bQSs4Pj4zXSxmPTB8YVttKyhNPDwyKT4+Ml0sYVtnZT4+Ml09YmUrMSxhW09lKyhiZTw8Mik+PjJdPWYsQT1BKzE2fDAsTT1NKzF8MDtmb3Io''@;'; put 'put ''Ozspe2lmKCgwfGMpPD0wKWJyZWFrIGU7YVtMZSsoYzw8Mik+PjJdPWFbTGUrKChtPWMrLTF8MCk8PDIpPj4yXSxjPW19Y2FzZSA0OmZvcih3PTB8YVtiKzI4Pj4yXSxNPTA7Oyl7aWYoKDB8TSk+PSgwfGwpKXtxPTA7YnJlYWt9aWYoISgoMHwoRD0wfGFbcCsoTTw8Mik+PjJdKSk+LTEmKDB8''@;'; put 'put ''RCk8KDB8YykpKXtiZT0zNzticmVha31pZighKCgwfChnZT0wfGFbbSsoTTw8Mik+PjJdKSk+LTEmKDB8Z2UpPCgwfGYpKSl7YmU9Mzc7YnJlYWt9YVsoZ2U9TGUrKEQrMTw8Mil8MCk+PjJdPTErKDB8YVtnZT4+Ml0pLE09TSsxfDB9Zm9yKDM3PT0oMHxiZSkmJlByKDEzODM5NCw5NDk0Myw4''@;'; put 'put ''OTksOTUxODgpOzspe2lmKCgwfHEpPT0oMHxjKSl7TT0wO2JyZWFrfWFbKGY9TGUrKChiZT1xKzF8MCk8PDIpfDApPj4yXT0oMHxhW2Y+PjJdKSsoMHxhW0xlKyhxPDwyKT4+Ml0pLHE9YmV9Zm9yKDsoMHxNKSE9KDB8bCk7KWFbdysoYVtMZSsoYVsoZ2U9cCsoTTw8Mil8MCk+PjJdPDwyKT4+''@;'; put 'put ''Ml08PDIpPj4yXT1hW0ErKE08PDIpPj4yXSxmPTB8YVttKyhNPDwyKT4+Ml0sYVsoZ2U9TGUrKGFbZ2U+PjJdPDwyKXwwKT4+Ml09MSsoYmU9MHxhW2dlPj4yXSksYVtPZSsoYmU8PDIpPj4yXT1mLE09TSsxfDA7Zm9yKDs7KXtpZigoMHxjKTw9MClicmVhayBlO2FbTGUrKGM8PDIpPj4yXT1h''@;'; put 'put ''W0xlKygobT1jKy0xfDApPDwyKT4+Ml0sYz1tfWNhc2UgODpmb3IoQT0wOzspe2lmKCgwfEEpPj0oMHxsKSl7Uj0wO2JyZWFrfWlmKCEoKDB8KE09MHxhW3ArKEE8PDIpPj4yXSkpPi0xJigwfE0pPCgwfGMpKSl7YmU9NDg7YnJlYWt9aWYoISgoMHwoZ2U9MHxhW20rKEE8PDIpPj4yXSkpPi0x''@;'; put 'put ''JigwfGdlKTwoMHxmKSkpe2JlPTQ4O2JyZWFrfWFbKGdlPUxlKyhNKzE8PDIpfDApPj4yXT0xKygwfGFbZ2U+PjJdKSxBPUErMXwwfWZvcig0OD09KDB8YmUpJiZQcigxMzgzOTQsOTQ5NDMsOTE1LDk1MTg4KTs7KXtpZigoMHxSKT09KDB8Yykpe0E9MDticmVha31hWyhmPUxlKygoYmU9Uisx''@;'; put 'put ''fDApPDwyKXwwKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtMZSsoUjw8Mik+PjJdKSxSPWJlfWZvcig7KDB8QSkhPSgwfGwpOylmPTB8YVttKyhBPDwyKT4+Ml0sYVsoZ2U9TGUrKGFbcCsoQTw8Mik+PjJdPDwyKXwwKT4+Ml09MSsoYmU9MHxhW2dlPj4yXSksYVtPZSsoYmU8PDIpPj4yXT1mLEE9''@;'; put 'put ''QSsxfDA7Zm9yKDs7KXtpZigoMHxjKTw9MClicmVhayBlO2FbTGUrKGM8PDIpPj4yXT1hW0xlKygobT1jKy0xfDApPDwyKT4+Ml0sYz1tfWNhc2UgMTY6Zm9yKE09MDs7KXtpZigoMHxNKT49KDB8bCkpe0c9MDticmVha31pZighKCgwfChEPTB8YVtwKyhNPDwyKT4+Ml0pKT4tMSYoMHxEKTwo''@;'; put 'put ''MHxjKSkpe2JlPTU5O2JyZWFrfWlmKCEoKDB8KGdlPTB8YVttKyhNPDwyKT4+Ml0pKT4tMSYoMHxnZSk8KDB8ZikpKXtiZT01OTticmVha31hWyhnZT1MZSsoRCsxPDwyKXwwKT4+Ml09MSsoMHxhW2dlPj4yXSksTT1NKzF8MH1mb3IoNTk9PSgwfGJlKSYmUHIoMTM4Mzk0LDk0OTQzLDkzMCw5''@;'; put 'put ''NTE4OCk7KDB8RykhPSgwfGMpOylhWyhmPUxlKygoYmU9RysxfDApPDwyKXwwKT4+Ml09KDB8YVtmPj4yXSkrKDB8YVtMZSsoRzw8Mik+PjJdKSxHPWJlO2ZvcihnbygwfGFbYisyOD4+Ml0sMHxBLDB8QXIoMHxhW2IrNDA+PjJdLGwpKSxBPTA7KDB8QSkhPSgwfGwpOylmPTB8YVttKyhBPDwy''@;'; put 'put ''KT4+Ml0sYVsoZ2U9TGUrKGFbcCsoQTw8Mik+PjJdPDwyKXwwKT4+Ml09MSsoYmU9MHxhW2dlPj4yXSksYVtPZSsoYmU8PDIpPj4yXT1mLEE9QSsxfDA7Zm9yKDs7KXtpZigoMHxjKTw9MClicmVhayBlO2FbTGUrKGM8PDIpPj4yXT1hW0xlKygobT1jKy0xfDApPDwyKT4+Ml0sYz1tfWRlZmF1''@;'; put 'put ''bHQ6UHIoMTM4Mzk0LDk0OTQzLDk0NCw5NTE4OCl9fXdoaWxlKDApO3JldHVybiBhW0xlPj4yXT0wLGFbYis4Pj4yXT1sLGsmJihiPTB8ZnVuY3Rpb24gWGYobCxjKXtjfD0wO3ZhciBPZSxMZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdl''@;'; put 'put ''PTAsYmU9MCxSZT0wLEhlPTA7T2U9MHxhWzIwKyhsfD0wKT4+Ml0sTGU9MHxhW2wrMjQ+PjJdLHA9MHxhW2wrMTY+PjJdLGdlPTB8YVtsKzQ+PjJdO2U6ZG97aWYoYyl7Zm9yKFI9MHxRbihEPWdlPDwyKSxmPTA7ISgoMHxmKT49KDB8Z2UpKTspYVtSKyhmPDwyKT4+Ml09LTEsZj1mKzF8MDt0''@;'; put 'put ''OmRve3N3aXRjaCgwfHApe2Nhc2UgMTprPTB8YVtsKzI4Pj4yXSxtPTAscD0wfGFbT2U+PjJdLGY9MDtuOmZvcig7Oyl7aWYoKDB8Zik+PSgwfGFbbD4+Ml0pKXtSZT1tLEhlPVI7YnJlYWsgdH1mb3IoRD1PZSsoKE09ZisxfDApPDwyKXwwLHc9T2UrKGY8PDIpfDAsZj1tOyEoKDB8cCk+PSgw''@;'; put 'put ''fChjPTB8YVtEPj4yXSkpKTspe2lmKCgwfChBPTB8YVtSKygobT0wfGFbKGM9TGUrKHA8PDIpfDApPj4yXSk8PDIpPj4yXSkpPCgwfGFbdz4+Ml0pKWFbTGUrKGY8PDIpPj4yXT1tLF9baysoZjw8Myk+PjNdPStfW2srKHA8PDMpPj4zXSxhW1IrKGFbYz4+Ml08PDIpPj4yXT1mLGY9ZisxfDA7''@;'; put 'put ''ZWxzZXtpZigoMHxhW0xlKyhBPDwyKT4+Ml0pIT0oMHxtKSlicmVhayBuO19bKGJlPWsrKEE8PDMpfDApPj4zXT0rX1tiZT4+M10rICtfW2srKHA8PDMpPj4zXX1wPXArMXwwfWFbRD4+Ml09ZixtPWYscD1jLGY9TX1Qcig5NTIzNSw5NDk0MywxNzkyLDk1MjYwKTticmVhaztjYXNlIDI6c3dp''@;'; put 'put ''dGNoKGJlPTB8YVtsKzI4Pj4yXSwwfGMpe2Nhc2UgMTpjPTB8YVtPZT4+Ml0scD0wLGY9MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtSZT1mLEhlPVI7YnJlYWsgdH1mb3IoTT1PZSsoKGs9cCsxfDApPDwyKXwwLHc9T2UrKHA8PDIpfDA7ISgoMHxjKT49KDB8KHA9MHxhW00+''@;'; put 'put ''PjJdKSkpOyl7aWYoKDB8KEE9MHxhW1IrKChtPTB8YVsocD1MZSsoYzw8Mil8MCk+PjJdKTw8Mik+PjJdKSk8KDB8YVt3Pj4yXSkpYVtMZSsoZjw8Mik+PjJdPW0sX1tiZSsoKGdlPWY8PDEpPDwzKT4+M109K19bYmUrKChwZT1jPDwxKTw8Myk+PjNdLF9bYmUrKCgxfGdlKTw8Myk+PjNdPStf''@;'; put 'put ''W2JlKygoMXxwZSk8PDMpPj4zXSxhW1IrKGFbcD4+Ml08PDIpPj4yXT1mLGY9ZisxfDA7ZWxzZXtpZigoMHxhW0xlKyhBPDwyKT4+Ml0pIT0oMHxtKSlicmVhayBuO19bKHE9YmUrKChnZT1BPDwxKTw8Myl8MCk+PjNdPStfW3E+PjNdKyArX1tiZSsoKHBlPWM8PDEpPDwzKT4+M10sX1soZ2U9''@;'; put 'put ''YmUrKCgxfGdlKTw8Myl8MCk+PjNdPStfW2dlPj4zXSsgK19bYmUrKCgxfHBlKTw8Myk+PjNdfWM9YysxfDB9YVtNPj4yXT1mLGM9cCxwPWt9UHIoOTUyMzUsOTQ5NDMsMTgxNSw5NTI2MCk7YnJlYWs7Y2FzZSA0OmM9MHxhW09lPj4yXSxwPTAsZj0wO246Zm9yKDs7KXtpZigoMHxwKT49KDB8''@;'; put 'put ''YVtsPj4yXSkpe1JlPWYsSGU9UjticmVhayB0fWZvcihrPU9lKygoTT1wKzF8MCk8PDIpfDAsdz1PZSsocDw8Mil8MDshKCgwfGMpPj0oMHwocD0wfGFbaz4+Ml0pKSk7KXtpZigoMHwoQT0wfGFbUisoKG09MHxhWyhwPUxlKyhjPDwyKXwwKT4+Ml0pPDwyKT4+Ml0pKTwoMHxhW3c+PjJdKSlh''@;'; put 'put ''W0xlKyhmPDwyKT4+Ml09bSxfW2JlKygoZ2U9Zjw8MSk8PDMpPj4zXT0rX1tiZSsoKHBlPWM8PDEpPDwzKT4+M10sX1tiZSsoKDF8Z2UpPDwzKT4+M109K19bYmUrKCgxfHBlKTw8Myk+PjNdLGFbUisoYVtwPj4yXTw8Mik+PjJdPWYsZj1mKzF8MDtlbHNle2lmKCgwfGFbTGUrKEE8PDIpPj4y''@;'; put 'put ''XSkhPSgwfG0pKWJyZWFrIG47X1socT1iZSsoKGdlPUE8PDEpPDwzKXwwKT4+M109K19bcT4+M10rICtfW2JlKygocGU9Yzw8MSk8PDMpPj4zXSxfW2JlKygoMXxnZSk8PDMpPj4zXT0rX1tiZSsoKDF8cGUpPDwzKT4+M119Yz1jKzF8MH1hW2s+PjJdPWYsYz1wLHA9TX1Qcig5NTIzNSw5NDk0''@;'; put 'put ''MywxODM1LDk1MjYwKTticmVhaztjYXNlIDI6dz0wfGFbbD4+Ml0scD1wZT1+fitfW2JlKzg+PjNdLEE9MCxmPTA7bjpmb3IoOyEoKDB8QSk+PSgwfHcpKTspZm9yKGs9QSsxfDAsTT0wfGFbT2UrKGs8PDIpPj4yXSxtPWYsYz1wZSxmPTB8YVtPZSsoQTw8Mik+PjJdOzspe2lmKCgwfGYpPj0o''@;'; put 'put ''MHxNKSl7cGU9YyxBPWssZj1tO2NvbnRpbnVlIG59cGU9fn4rX1tiZSsoKG08PDF8MSk8PDMpPj4zXSxtPW0rMXwwLHA9KDB8cCk+KDB8cGUpP3A6cGUsYz0oMHxjKTwoMHxwZSk/YzpwZSxmPWYrMXwwfWZvcihGdChSKSxHPTB8UW4oMHxBcihxPXAtcGUrMXwwLEQpKSxxPTB8QXIocSxnZSks''@;'; put 'put ''Zj0wOyEoKDB8Zik+PSgwfHEpKTspYVtHKyhmPDwyKT4+Ml09LTEsZj1mKzF8MDtmPTAsYz0wfGFbT2U+PjJdLHA9MDtuOmZvcig7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtSZT1mLEhlPUc7YnJlYWsgdH1mb3IoUj1PZSsoKEQ9cCsxfDApPDwyKXwwLE09T2UrKHA8PDIpfDA7ISgoMHxj''@;'; put 'put ''KT49KDB8KHA9MHxhW1I+PjJdKSkpOyl7aWYocD0wfGFbTGUrKGM8PDIpPj4yXSxBPSgwfEFyKH5+KGI9K19bYmUrKCgxfChtPWM8PDEpKTw8Myk+PjNdKS1wZXwwLGdlKSkrcHwwLCgwfChrPTB8YVsodz1HKyhBPDwyKXwwKT4+Ml0pKTwoMHxhW00+PjJdKSlhW0xlKyhmPDwyKT4+Ml09cCxf''@;'; put 'put ''W2JlKygoaz1mPDwxKTw8Myk+PjNdPStfW2JlKyhtPDwzKT4+M10sX1tiZSsoKDF8ayk8PDMpPj4zXT1iLGFbdz4+Ml09ZixmPWYrMXwwO2Vsc2V7aWYoKDB8QSk+PSgwfHEpKXtmPTU1O2JyZWFrIG59aWYoKDB8YVtMZSsoazw8Mik+PjJdKSE9KDB8cCkpe2Y9NTc7YnJlYWsgbn1fWyh3PWJl''@;'; put 'put ''Kygoazw8PTEpPDwzKXwwKT4+M109K19bdz4+M10rICtfW2JlKyhtPDwzKT4+M10sX1tiZSsoKDF8ayk8PDMpPj4zXT1ifWM9YysxfDB9YVtSPj4yXT1mLGM9cCxwPUR9NTU9PSgwfGYpP1ByKDk1MjkyLDk0OTQzLDE4NjksOTUyNjApOjU3PT0oMHxmKSYmUHIoOTUzMTMsOTQ5NDMsMTg3MCw5''@;'; put 'put ''NTI2MCk7YnJlYWs7Y2FzZSAzOnc9MHxhW2w+PjJdLGY9bT1+fitfW2JlKzg+PjNdLHA9MCxBPTA7bjpmb3IoOyEoKDB8QSk+PSgwfHcpKTspZm9yKGs9QSsxfDAsTT0wfGFbT2UrKGs8PDIpPj4yXSxjPWYsZj0wfGFbT2UrKEE8PDIpPj4yXTs7KXtpZigoMHxmKT49KDB8TSkpe2Y9YyxBPWs7''@;'; put 'put ''Y29udGludWUgbn1jPSgwfGMpPigwfChwZT1+fitfW2JlKyhwPDwxPDwzKT4+M10pKT9jOnBlLG09KDB8bSk+KDB8cGUpP206cGUscD1wKzF8MCxmPWYrMXwwfWZvcihGdChSKSxHPTB8UW4oMHxBcihwPWYtbSsxfDAsRCkpLHA9MHxBcihwLGdlKSxmPTA7ISgoMHxmKT49KDB8cCkpOylhW0cr''@;'; put 'put ''KGY8PDIpPj4yXT0tMSxmPWYrMXwwO2Y9MCxjPTB8YVtPZT4+Ml0scD0wO246Zm9yKDs7KXtpZigoMHxwKT49KDB8YVtsPj4yXSkpe1JlPWYsSGU9RzticmVhayB0fWZvcihSPU9lKygoRD1wKzF8MCk8PDIpfDAsTT1PZSsocDw8Mil8MDshKCgwfGMpPj0oMHwocD0wfGFbUj4+Ml0pKSk7KXtp''@;'; put 'put ''ZihwPTB8YVtMZSsoYzw8Mik+PjJdLHc9RysoKDB8QXIofn4oYj0rX1tiZSsoKEE9Yzw8MSk8PDMpPj4zXSktbXwwLGdlKSkrcDw8Mil8MCwoMHwoaz0wfGFbdz4+Ml0pKTwoMHxhW00+PjJdKSlhW0xlKyhmPDwyKT4+Ml09cCxfW2JlKygocGU9Zjw8MSk8PDMpPj4zXT1iLF9bYmUrKCgxfHBl''@;'; put 'put ''KTw8Myk+PjNdPStfW2JlKygoMXxBKTw8Myk+PjNdLGFbdz4+Ml09ZixmPWYrMXwwO2Vsc2V7aWYoKDB8YVtMZSsoazw8Mik+PjJdKSE9KDB8cCkpYnJlYWsgbjtfW2JlKygocGU9azw8MSk8PDMpPj4zXT1iLF9bKHBlPWJlKygoMXxwZSk8PDMpfDApPj4zXT0rX1twZT4+M10rICtfW2JlKygo''@;'; put 'put ''MXxBKTw8Myk+PjNdfWM9YysxfDB9YVtSPj4yXT1mLGM9cCxwPUR9UHIoOTUzMTMsOTQ5NDMsMTkwNSw5NTI2MCk7YnJlYWs7ZGVmYXVsdDpSZT0wLEhlPVI7YnJlYWsgdH1icmVhaztjYXNlIDQ6az0wfGFbbCsyOD4+Ml0scD0wLGY9MCxjPTB8YVtPZT4+Ml07bjpmb3IoOzspe2lmKCgwfHAp''@;'; put 'put ''Pj0oMHxhW2w+PjJdKSl7UmU9ZixIZT1SO2JyZWFrIHR9Zm9yKEQ9T2UrKChNPXArMXwwKTw8Mil8MCx3PU9lKyhwPDwyKXwwOyEoKDB8Yyk+PSgwfChtPTB8YVtEPj4yXSkpKTspe2lmKCgwfChBPTB8YVtSKygobT0wfGFbKHA9TGUrKGM8PDIpfDApPj4yXSk8PDIpPj4yXSkpPCgwfGFbdz4+''@;'; put 'put ''Ml0pKWFbTGUrKGY8PDIpPj4yXT1tLGFbaysoZjw8Mik+PjJdPWFbaysoYzw8Mik+PjJdLGFbUisoYVtwPj4yXTw8Mik+PjJdPWYsZj1mKzF8MDtlbHNle2lmKCgwfGFbTGUrKEE8PDIpPj4yXSkhPSgwfG0pKWJyZWFrIG47YVsoYmU9aysoQTw8Mil8MCk+PjJdPSgwfGFbYmU+PjJdKSsoMHxh''@;'; put 'put ''W2srKGM8PDIpPj4yXSl9Yz1jKzF8MH1hW0Q+PjJdPWYscD1NLGM9bX1Qcig5NTIzNSw5NDk0MywxOTI5LDk1MjYwKTticmVhaztjYXNlIDg6cD0wLGY9MCxjPTB8YVtPZT4+Ml07bjpmb3IoOzspe2lmKCgwfHApPj0oMHxhW2w+PjJdKSl7UmU9ZixIZT1SO2JyZWFrIHR9Zm9yKE09T2UrKChr''@;'; put 'put ''PXArMXwwKTw8Mil8MCx3PU9lKyhwPDwyKXwwOyEoKDB8Yyk+PSgwfChtPTB8YVtNPj4yXSkpKTspe2lmKCgwfChBPTB8YVtSKygobT0wfGFbKHA9TGUrKGM8PDIpfDApPj4yXSk8PDIpPj4yXSkpPj0oMHxhW3c+PjJdKSl7aWYoKDB8YVtMZSsoQTw8Mik+PjJdKSE9KDB8bSkpYnJlYWsgbn1l''@;'; put 'put ''bHNlIGFbTGUrKGY8PDIpPj4yXT1tLGFbUisoYVtwPj4yXTw8Mik+PjJdPWYsZj1mKzF8MDtjPWMrMXwwfWFbTT4+Ml09ZixwPWssYz1tfVByKDk1MjM1LDk0OTQzLDE5NDgsOTUyNjApO2JyZWFrO2RlZmF1bHQ6bD0wO2JyZWFrIGV9fXdoaWxlKDApO2FbbCs4Pj4yXT1SZSxGdChIZSl9fXdo''@;'; put 'put ''aWxlKDApO3JldHVybiAwfGx9KGIsaykpLDB8Yn0obHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLDEpfWZ1bmN0aW9uIGhqKGwsYyxmLHApe3ZhciBtLEE7Zm9yKGN8PTAsZnw9MCxtPTcyKyhsfD0wKXwwLEE9NCsocHw9MCl8MDshKChmLWN8MCk8PTApOyl7c3dpdGNo''@;'; put 'put ''KDB8ZmVbbSsoMHxYdFtjPj4wXSk+PjBdKXtjYXNlIDU6Yz1jKzJ8MDticmVhaztjYXNlIDY6Yz1jKzN8MDticmVhaztjYXNlIDc6Yz1jKzR8MDticmVhaztjYXNlIDEwOmFbQT4+Ml09LTEsYVtwPj4yXT0xKygwfGFbcD4+Ml0pLGM9YysxfDA7YnJlYWs7Y2FzZSA5OmFbcD4+Ml09MSsoMHxh''@;'; put 'put ''W3A+PjJdKSxjPShmLShsPWMrMXwwKXwwKT4wJiYxMD09KDB8ZmVbbSsoMHxYdFtsPj4wXSk+PjBdKT9jKzJ8MDpsLGFbQT4+Ml09LTE7YnJlYWs7ZGVmYXVsdDpjPWMrMXwwfWFbQT4+Ml09MSsoMHxhW0E+PjJdKX19ZnVuY3Rpb24gbEwobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBiLG09MCxB''@;'; put 'put ''PTAsdz0wLGs9MDttPShiPWZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8bSk+MCl7c3dpdGNoKDB8ZmVbKGs9bCs3MnwwKSsoMHxYdFtjPj4wXSk+PjBdKXtjYXNlIDI5OmRlZmF1bHQ6YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjpmPTE7YnJlYWs7Y2FzZSA1OmlmKCgw''@;'; put 'put ''fG0pPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDA+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWY9MjticmVhaztjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0ND4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0w''@;'; put 'put ''O2JyZWFrIGV9Zj0zO2JyZWFrO2Nhc2UgNzppZigoMHxtKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ4Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1mPTQ7YnJlYWs7Y2FzZSAxOTpmPTB8UEsobCxjKzF8MCxmLHApO2JyZWFrIGV9bT1sKzMyOHwwLEE9''@;'; put 'put ''bCszMzJ8MCx3PWwrMzM2fDAsYz1jK2Z8MDt0OmZvcig7Oyl7aWYoKDB8KGY9Yi1jfDApKTw9MCl7Zj0tMTticmVhayBlfXN3aXRjaCgwfGZlW2srKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTptPTE4O2JyZWFrIHQ7Y2FzZSAxODptPTI5O2JyZWFrIHQ7Y2FzZSAyNzpjYXNlIDI2OmNhc2Ug''@;'; put 'put ''MjU6Y2FzZSAyNDpjYXNlIDIyOmY9MTticmVhaztjYXNlIDU6aWYoKDB8Zik8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVttPj4yXV0obCxjKSkpe209MjE7YnJlYWsgdH1mPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfGYpPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbQT4+''@;'; put 'put ''Ml1dKGwsYykpKXttPTI0O2JyZWFrIHR9Zj0zO2JyZWFrO2Nhc2UgNzppZigoMHxmKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3c+PjJdXShsLGMpKSl7bT0yNzticmVhayB0fWY9NDticmVhaztkZWZhdWx0Om09MzA7YnJlYWsgdH1jPWMrZnwwfWlmKDE4PT0oMHxtKSl7YVtw''@;'; put 'put ''Pj4yXT1jLGY9MDticmVha31pZigyMT09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjQ9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDI3PT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyOT09KDB8bSkpe2FbcD4+Ml09YysxLGY9OTticmVha31pZigzMD09KDB8''@;'; put 'put ''bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGRqKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDttPShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfG0pPjApe3N3aXRjaCgwfGZlWyhrPWwrNzJ8''@;'; put 'put ''MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7''@;'; put 'put ''YnJlYWsgZX1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVts''@;'; put 'put ''KzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9bT00O2JyZWFrO2Nhc2UgMzA6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAyMTphW3A+PjJdPWMsZj0yMjticmVhayBlfUE9bCszMjh8MCx3PWwrMzMyfDAsYj1sKzMzNnwwLGM9YyttfDA7dDpmb3IoOzspe2lmKCgwfChtPWYtY3ww''@;'; put 'put ''KSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtrKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6bT0xODticmVhayB0O2Nhc2UgMTg6bT0yOTticmVhayB0O2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe2Y9''@;'; put 'put ''LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbQT4+Ml1dKGwsYykpKXttPTIxO2JyZWFrIHR9bT0yO2JyZWFrO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW3c+PjJdXShsLGMpKSl7bT0yNDticmVhayB0fW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8''@;'; put 'put ''NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxjKSkpe209Mjc7YnJlYWsgdH1tPTQ7YnJlYWs7ZGVmYXVsdDptPTMwO2JyZWFrIHR9Yz1jK218MH1pZigxOD09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjE9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFr''@;'; put 'put ''fWlmKDI0PT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyNz09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjk9PSgwfG0pKXthW3A+PjJdPWMrMSxmPTI4O2JyZWFrfWlmKDMwPT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVy''@;'; put 'put ''biAwfGZ9ZnVuY3Rpb24gUEsobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIEEsbT0wO0E9Znw9MDtlOmRve2lmKChBLWN8MCk+MCl7aWYoKG09MHxmZVtjPj4wXSk8PDI0Pj4yND09MTIwKXtsPTB8RksobCxjKzF8MCxmLHApO2JyZWFrfWlmKDI1IT0oMHxmZVsoZj1sKzcyfDApKygyNTUm''@;'; put 'put ''bSk+PjBdKSl7YVtwPj4yXT1jLGw9MDticmVha310OmZvcig7Oyl7aWYoKEEtKGw9YysxfDApfDApPD0wKXtsPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbZisoMHxYdFtsPj4wXSk+PjBdKXtjYXNlIDI1OmM9bDticmVhaztjYXNlIDE4OmY9ODticmVhayB0O2RlZmF1bHQ6Zj05O2JyZWFrIHR9''@;'; put 'put ''fWlmKDg9PSgwfGYpKXthW3A+PjJdPWMrMixsPTEwO2JyZWFrfWlmKDk9PSgwfGYpKXthW3A+PjJdPWwsbD0wO2JyZWFrfX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBGSyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTA7ZTpkb3tpZigoZi1jfDAp''@;'; put 'put ''PjApe2lmKCgtMiZmZVsobD1sKzcyfDApKygwfFh0W2M+PjBdKT4+MF0pPDwyND4+MjQhPTI0KXthW3A+PjJdPWMsZj0wO2JyZWFrfXQ6Zm9yKDs7KXtpZigoZi0obT1jKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtsKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMjQ6Y2Fz''@;'; put 'put ''ZSAyNTpjPW07YnJlYWs7Y2FzZSAxODpsPTY7YnJlYWsgdDtkZWZhdWx0Omw9NzticmVhayB0fX1pZig2PT0oMHxsKSl7YVtwPj4yXT1jKzIsZj0xMDticmVha31pZig3PT0oMHxsKSl7YVtwPj4yXT1tLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24g''@;'; put 'put ''SDllKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgcSxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxwZT0wO209KHE9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHxtKT4wKXtzd2l0Y2goMHxmZVsoRz1sKzcyfDApKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgMjk6YVtwPj4yXT1j''@;'; put 'put ''LG09MDticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDA+PjJdXShsLGMpKSl7YVtwPj4yXT1jLG09MDticmVhayBlfW09MjticmVhaztjYXNlIDY6aWYoKDB8bSk8Myl7bT0tMjticmVh''@;'; put 'put ''ayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0ND4+Ml1dKGwsYykpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9bT0zO2JyZWFrO2Nhc2UgNzppZigoMHxtKTw0KXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ4Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1tPTQ7YnJl''@;'; put 'put ''YWs7Y2FzZSAxNjppZigocS0obT1jKzF8MCl8MCk8PTApe209LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtHKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMjc6bT0wfHBqKGwsYysyfDAsZixwKTticmVhayBlO2Nhc2UgMjA6bT0wfGdqKGMrMnwwLGYscCk7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09''@;'; put 'put ''bSxtPTA7YnJlYWsgZX1jYXNlIDE1Om09MHxzTChsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDE3Om09MHxOOWUobCxjKzF8MCxmLHApO2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPWMsbT0wO2JyZWFrIGV9dz1sKzMyOHwwLGI9bCszMzJ8MCxrPWwrMzM2fDAsTT1sKzM0MHwwLEQ9bCszNDR8''@;'; put 'put ''MCxSPWwrMzQ4fDAsQT0wLG09YyttfDA7dDpmb3IoOzspe2lmKCgwfChjPXEtbXwwKSk8PTApe209LTE7YnJlYWsgZX1uOmRve3N3aXRjaCgwfGZlW0crKDB8WHRbbT4+MF0pPj4wXSl7Y2FzZSAyOTpwZT0yNDticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6cGU9NTA7YnJlYWsgdDtj''@;'; put 'put ''YXNlIDExOnBlPTY0O2JyZWFrIHQ7Y2FzZSAxNzpicmVhayB0O2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpjPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfGMpPDIpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbdz4+Ml1dKGwsbSkpKXtwZT0yNzticmVhayB0fWM9''@;'; put 'put ''MjticmVhaztjYXNlIDY6aWYoKDB8Yyk8Myl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxtKSkpe3BlPTMwO2JyZWFrIHR9Yz0zO2JyZWFrO2Nhc2UgNzppZigoMHxjKTw0KXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2s+PjJdXShsLG0pKSl7cGU9MzM7YnJl''@;'; put 'put ''YWsgdH1jPTQ7YnJlYWs7Y2FzZSAyMzppZigwfEEpe3BlPTM1O2JyZWFrIHR9aWYoKDB8KGM9cS0oQT1tKzF8MCl8MCkpPD0wKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbRysoMHxYdFtBPj4wXSk+PjBdKXtjYXNlIDI5OnBlPTM4O2JyZWFrIHQ7Y2FzZSAyNDpjYXNlIDIyOkE9MSxjPTI7''@;'; put 'put ''YnJlYWsgbjtjYXNlIDU6aWYoKDB8Yyk8Mil7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbTT4+Ml1dKGwsQSkpe0E9MSxjPTM7YnJlYWsgbn1wZT00MjticmVhayB0O2Nhc2UgNjppZigoMHxjKTwzKXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtEPj4yXV0obCxBKSl7QT0xLGM9NDti''@;'; put 'put ''cmVhayBufXBlPTQ1O2JyZWFrIHQ7Y2FzZSA3OmlmKCgwfGMpPDQpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW1I+PjJdXShsLEEpKXtBPTEsYz01O2JyZWFrIG59cGU9NDg7YnJlYWsgdDtkZWZhdWx0OnBlPTQ5O2JyZWFrIHR9ZGVmYXVsdDpwZT02OTticmVhayB0fX13aGlsZSgwKTtt''@;'; put 'put ''PW0rY3wwfXQ6c3dpdGNoKDB8cGUpe2Nhc2UgMjQ6Y2FzZSAyNzpjYXNlIDMwOmNhc2UgMzM6Y2FzZSAzNTpjYXNlIDY5OmFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM4OmNhc2UgNDI6Y2FzZSA0NTpjYXNlIDQ4OmNhc2UgNDk6YVtwPj4yXT1BLG09MDticmVhayBlO2Nhc2UgNTA6bjpm''@;'; put 'put ''b3IoOzspe2lmKHBlPTAsKDB8KGM9cS0oQT1tKzF8MCl8MCkpPD0wKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbRysoMHxYdFtBPj4wXSk+PjBdKXtjYXNlIDExOm09QSxwZT02NDticmVhayB0O2Nhc2UgMTc6bT1BO2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTptPUEscGU9NTA7''@;'; put 'put ''YnJlYWs7Y2FzZSAyOTpwZT01MjticmVhayBuO2Nhc2UgMjQ6Y2FzZSAyMjpBPTI7YnJlYWsgbjtjYXNlIDU6cGU9NTM7YnJlYWsgbjtjYXNlIDY6cGU9NTY7YnJlYWsgbjtjYXNlIDc6cGU9NTk7YnJlYWsgbjtkZWZhdWx0OnBlPTYyO2JyZWFrIG59fWlmKDUyPT0oMHxwZSkpe2FbcD4+Ml09''@;'; put 'put ''QSxtPTA7YnJlYWsgZX1pZig1Mz09KDB8cGUpKXtpZigoMHxjKTwyKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW00+PjJdXShsLEEpKSl7YVtwPj4yXT1BLG09MDticmVhayBlfUE9M31lbHNlIGlmKDU2PT0oMHxwZSkpe2lmKCgwfGMpPDMpe209LTI7YnJlYWsgZX1pZighKDB8Qmlb''@;'; put 'put ''MTI3JmFbRD4+Ml1dKGwsQSkpKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9QT00fWVsc2UgaWYoNTk9PSgwfHBlKSl7aWYoKDB8Yyk8NCl7bT0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtSPj4yXV0obCxBKSkpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX1BPTV9ZWxzZSBpZig2Mj09KDB8cGUp''@;'; put 'put ''KXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9bT0wfFh5KGwsbStBfDAsZixwKTticmVhayBlfWlmKDY0PT0oMHxwZSkpe2FbcD4+Ml09bSsxLG09MjticmVha31pZigocS0oQT1tKzF8MCl8MCk+MCl7aWYoNjI9PSgwfGZlW0E+PjBdKSl7YVtwPj4yXT1tKzIsbT00O2JyZWFrfWFbcD4+Ml09QSxt''@;'; put 'put ''PTA7YnJlYWt9bT0tMX1lbHNlIG09LTF9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBwaihsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2U6ZG97aWYoKGYtY3wwKT4wKXtpZig0NSE9KDB8ZmVbYz4+MF0pKXthW3A+PjJdPWMsZj0wO2Jy''@;'; put 'put ''ZWFrfW09bCs3MnwwLEE9bCszNTJ8MCx3PWwrMzU2fDAsYj1sKzM2MHwwLGs9YysxfDA7dDpmb3IoOzspe2lmKCgwfChjPWYta3wwKSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVttKygwfFh0W2s+PjBdKT4+MF0pe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmM9MTk7YnJlYWsgdDtjYXNl''@;'; put 'put ''IDU6aWYoKDB8Yyk8Mil7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbQT4+Ml1dKGwsaykpe2M9OTticmVhayB0fWs9aysyfDA7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbdz4+Ml1dKGwsaykpe2M9MTM7YnJlYWsgdH1rPWsrM3ww''@;'; put 'put ''O2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfGMpPDQpe2Y9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2I+PjJdXShsLGspKXtjPTE3O2JyZWFrIHR9az1rKzR8MDtjb250aW51ZSB0O2Nhc2UgMjc6aWYoKGYtKGM9aysxfDApfDApPD0wKXtmPS0xO2JyZWFrIGV9aWYoNDU9PSgwfGZlW2M+PjBd''@;'; put 'put ''KSl7Yz0yMjticmVhayB0fWs9Yztjb250aW51ZSB0O2RlZmF1bHQ6az1rKzF8MDtjb250aW51ZSB0fX1pZig5PT0oMHxjKSl7YVtwPj4yXT1rLGY9MDticmVha31pZigxMz09KDB8Yykpe2FbcD4+Ml09ayxmPTA7YnJlYWt9aWYoMTc9PSgwfGMpKXthW3A+PjJdPWssZj0wO2JyZWFrfWlmKDE5''@;'; put 'put ''PT0oMHxjKSl7YVtwPj4yXT1rLGY9MDticmVha31pZigyMj09KDB8Yykpe2lmKChmLShjPWsrMnwwKXwwKTw9MCl7Zj0tMTticmVha31pZig2Mj09KDB8ZmVbYz4+MF0pKXthW3A+PjJdPWsrMyxmPTEzO2JyZWFrfWFbcD4+Ml09YyxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1''@;'; put 'put ''cm4gMHxmfWZ1bmN0aW9uIGdqKGwsYyxmKXtpZihmfD0wLCgoY3w9MCktKGx8PTApfDApPjUpe2ZvcihjPTA7Oyl7aWYoKDB8Yyk+PTYpe2M9ODticmVha31pZigoMHxmZVtsPj4wXSkhPSgwfGZlWzE0NDMwMCtjPj4wXSkpe2M9MDticmVha31jPWMrMXwwLGw9bCsxfDB9YVtmPj4yXT1sfWVs''@;'; put 'put ''c2UgYz0tMTtyZXR1cm4gMHxjfWZ1bmN0aW9uIHNMKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgRCxSLEcsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7Rz1sZSxsZT1sZSsxNnwwLFI9RyxmPShEPWZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8Zik+MCl7c3dpdGNoKDB8ZmVbKE09bCs3MnwwKSso''@;'; put 'put ''MHxYdFtjPj4wXSk+PjBdKXtjYXNlIDI5OmRlZmF1bHQ6YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjpmPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfGYpPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDA+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVh''@;'; put 'put ''ayBlfWY9MjticmVhaztjYXNlIDY6aWYoKDB8Zik8Myl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0ND4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9Zj0zO2JyZWFrO2Nhc2UgNzppZigoMHxmKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQ4''@;'; put 'put ''Pj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1mPTR9QT1sKzMyOHwwLHc9bCszMzJ8MCxiPWwrMzM2fDAsZj1jK2Z8MDt0OmZvcig7Oyl7aWYoKDB8KG09RC1mfDApKTw9MCl7Zj0tMTticmVhayBlfXN3aXRjaCgwfGZlW00rKDB8WHRbZj4+MF0pPj4wXSl7Y2FzZSAyOTprPTE3''@;'; put 'put ''O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTprPTI4O2JyZWFrIHQ7Y2FzZSAxNTprPTUwO2JyZWFrIHQ7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOm09MTticmVhaztjYXNlIDU6aWYoKDB8bSk8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtB''@;'; put 'put ''Pj4yXV0obCxmKSkpe2s9MjA7YnJlYWsgdH1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbdz4+Ml1dKGwsZikpKXtrPTIzO2JyZWFrIHR9bT0zO2JyZWFrO2Nhc2UgNzppZigoMHxtKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEy''@;'; put 'put ''NyZhW2I+PjJdXShsLGYpKSl7az0yNjticmVhayB0fW09NDticmVhaztkZWZhdWx0OmJyZWFrIHR9Zj1mK218MH1pZigxNz09KDB8aykpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoMjA9PSgwfGspKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIzPT0oMHxrKSl7YVtwPj4yXT1mLGY9MDticmVh''@;'; put 'put ''a31pZigyNj09KDB8aykpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoMjg9PSgwfGspKXtpZighKDB8bWooYyxmLFIpKSl7YVtwPj4yXT1mLGY9MDticmVha31BPWwrMzUyfDAsdz1sKzM1NnwwLGI9bCszNjB8MCxtPWYrMXwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1ELW18MCkpPD0wKXtmPS0xO2Jy''@;'; put 'put ''ZWFrIGV9c3dpdGNoKDB8ZmVbTSsoMHxYdFttPj4wXSk+PjBdKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDprPTQ1O2JyZWFrIHQ7Y2FzZSA1OmlmKCgwfGYpPDIpe2Y9LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW0E+PjJdXShsLG0pKXtrPTM1O2JyZWFrIHR9bT1tKzJ8MDtjb250aW51ZSB0O2Nh''@;'; put 'put ''c2UgNjppZigoMHxmKTwzKXtmPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVt3Pj4yXV0obCxtKSl7az0zOTticmVhayB0fW09bSszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Zik8NCl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbYj4+Ml1dKGwsbSkpe2s9NDM7YnJlYWsgdH1tPW0r''@;'; put 'put ''NHwwO2NvbnRpbnVlIHQ7Y2FzZSAxNTppZigoRC0oZj1tKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1pZig2Mj09KDB8ZmVbZj4+MF0pKXtrPTQ4O2JyZWFrIHR9bT1mO2NvbnRpbnVlIHQ7ZGVmYXVsdDptPW0rMXwwO2NvbnRpbnVlIHR9fWlmKDM1PT0oMHxrKSl7YVtwPj4yXT1tLGY9MDti''@;'; put 'put ''cmVha31pZigzOT09KDB8aykpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoNDM9PSgwfGspKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKDQ1PT0oMHxrKSl7YVtwPj4yXT1tLGY9MDticmVha31pZig0OD09KDB8aykpe2FbcD4+Ml09bSsyLGY9MHxhW1I+PjJdO2JyZWFrfX1lbHNlIGlmKDUwPT0o''@;'; put 'put ''MHxrKSl7aWYoISgwfG1qKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoKEQtKG09ZisxfDApfDApPD0wKXtmPS0xO2JyZWFrfWlmKDYyPT0oMHxmZVttPj4wXSkpe2FbcD4+Ml09ZisyLGY9MHxhW1I+PjJdO2JyZWFrfWY9bX1hW3A+PjJdPWYsZj0wfWVsc2UgZj0tMX13aGlsZSgw''@;'; put 'put ''KTtyZXR1cm4gbGU9RywwfGZ9ZnVuY3Rpb24gTjllKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDttPShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfG0pPjApe3N3aXRjaCgwfGZlWyhrPWwrNzJ8MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpkZWZhdWx0''@;'; put 'put ''OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nhc2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMp''@;'; put 'put ''e2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFr''@;'; put 'put ''IGV9bT00fUE9bCszMjh8MCx3PWwrMzMyfDAsYj1sKzMzNnwwLG09YyttfDA7dDpmb3IoOzspe2lmKCgwfChjPWYtbXwwKSk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtrKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMjk6QT0xNzticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6''@;'; put 'put ''QT0yNzticmVhayB0O2Nhc2UgMTE6QT0zMjticmVhayB0O2Nhc2UgMjM6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmM9MTticmVhaztjYXNlIDU6aWYoKDB8Yyk8Mil7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtBPj4yXV0obCxtKSkpe0E9MjA7YnJlYWsg''@;'; put 'put ''dH1jPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfGMpPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbdz4+Ml1dKGwsbSkpKXtBPTIzO2JyZWFrIHR9Yz0zO2JyZWFrO2Nhc2UgNzppZigoMHxjKTw0KXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLG0pKSl7QT0yNjti''@;'; put 'put ''cmVhayB0fWM9NDticmVhaztkZWZhdWx0OkE9MzM7YnJlYWsgdH1tPW0rY3wwfWlmKDE3PT0oMHxBKSl7YVtwPj4yXT1tLGY9MDticmVha31pZigyMD09KDB8QSkpe2FbcD4+Ml09bSxmPTA7YnJlYWt9aWYoMjM9PSgwfEEpKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKDI2PT0oMHxBKSl7YVtw''@;'; put 'put ''Pj4yXT1tLGY9MDticmVha31pZigyNz09KDB8QSkpe3Q6Zm9yKDs7KXtpZigoZi0oYz1tKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtrKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT1jLEE9Mjc7YnJlYWs7Y2FzZSAxMTpBPTI5O2JyZWFr''@;'; put 'put ''IHQ7ZGVmYXVsdDpBPTMwO2JyZWFrIHR9fWlmKDI5PT0oMHxBKSl7YVtwPj4yXT1tKzIsZj01O2JyZWFrfWlmKDMwPT0oMHxBKSl7YVtwPj4yXT1jLGY9MDticmVha319ZWxzZXtpZigzMj09KDB8QSkpe2FbcD4+Ml09bSsxLGY9NTticmVha31pZigzMz09KDB8QSkpe2FbcD4+Ml09bSxmPTA7''@;'; put 'put ''YnJlYWt9fX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBYeShsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIgYixrLE0sRCxSLEcscSxwZSxnZSxiZSxPZSxMZSxIZSxtPTAsQT0wLHc9MCxSZT0wO0hlPWxlLGxlPWxlKzE2fDAsYVsoT2U9SGUpPj4yXT1jfD0wLExl''@;'; put 'put ''PWYscT1sKzcyfDAscGU9bCszMjh8MCxnZT1sKzMzMnwwLGJlPWwrMzM2fDAsYj1sKzM0MHwwLGs9bCszNDR8MCxNPWwrMzQ4fDAsRD1sKzM1MnwwLFI9bCszNTZ8MCxHPWwrMzYwfDAsQT0wO2U6Zm9yKDs7KXtpZigoMHwobT1MZS1jfDApKTw9MCl7Yz0tMTticmVha310OmRve3N3aXRjaCgw''@;'; put 'put ''fGZlW3ErKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpSZT00O2JyZWFrIGU7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmFbT2U+PjJdPW09YysxfDAsYz1tLEE9dz1BO2NvbnRpbnVlIGU7Y2FzZSA1OmlmKCgwfG0pPDIpe2M9LTI7YnJlYWsgZX1pZighKDB8Qmlb''@;'; put 'put ''MTI3JmFbcGU+PjJdXShsLGMpKSl7UmU9ODticmVhayBlfWFbT2U+PjJdPW09YysyfDAsYz1tLEE9dz1BO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKCgwfG0pPDMpe2M9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbZ2U+PjJdXShsLGMpKSl7UmU9MTI7YnJlYWsgZX1hW09lPj4yXT1tPWMrM3ww''@;'; put 'put ''LGM9bSxBPXc9QTtjb250aW51ZSBlO2Nhc2UgNzppZigoMHxtKTw0KXtjPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2JlPj4yXV0obCxjKSkpe1JlPTE2O2JyZWFrIGV9YVtPZT4+Ml09bT1jKzR8MCxjPW0sQT13PUE7Y29udGludWUgZTtjYXNlIDIzOmlmKDB8QSl7UmU9MTk7YnJlYWsg''@;'; put 'put ''ZX1pZihhW09lPj4yXT1tPWMrMXwwLCgwfChBPUxlLW18MCkpPD0wKXtjPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbcSsoMHxYdFttPj4wXSk+PjBdKXtjYXNlIDI5OlJlPTIyO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOmFbT2U+PjJdPXc9YysyfDAsQT0xLGM9dztjb250aW51ZSBlO2Nhc2Ug''@;'; put 'put ''NTppZigoMHxBKTwyKXtjPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLG0pKSl7UmU9MjY7YnJlYWsgZX1hW09lPj4yXT13PWMrM3wwLEE9MSxjPXc7Y29udGludWUgZTtjYXNlIDY6aWYoKDB8QSk8Myl7Yz0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtrPj4yXV0obCxt''@;'; put 'put ''KSkpe1JlPTMwO2JyZWFrIGV9YVtPZT4+Ml09dz1jKzR8MCxBPTEsYz13O2NvbnRpbnVlIGU7Y2FzZSA3OmlmKCgwfEEpPDQpe2M9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbTT4+Ml1dKGwsbSkpKXtSZT0zNDticmVhayBlfWFbT2U+PjJdPXc9Yys1fDAsQT0xLGM9dztjb250aW51ZSBl''@;'; put 'put ''O2RlZmF1bHQ6UmU9MzY7YnJlYWsgZX1jYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmZvcig7Oyl7aWYoYVtPZT4+Ml09Yz1jKzF8MCwoTGUtY3wwKTw9MCl7Yz0tMTticmVhayBlfXN3aXRjaCgwfGZlW3ErKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAxNDpicmVhayB0O2Nhc2UgOTpjYXNlIDEwOmNh''@;'; put 'put ''c2UgMjE6YnJlYWs7ZGVmYXVsdDpSZT0zOTticmVhayBlfX1jYXNlIDE0OmJyZWFrO2RlZmF1bHQ6UmU9OTI7YnJlYWsgZX19d2hpbGUoMCk7Zm9yKDs7KXtpZihhW09lPj4yXT1tPWMrMXwwLChMZS1tfDApPD0wKXtjPS0xO2JyZWFrIGV9aWYoKDF8KHc9MHxmZVtxKygwfFh0W20+PjBdKT4+''@;'; put 'put ''MF0pKTw8MjQ+PjI0PT0xMylicmVhaztzd2l0Y2godzw8MjQ+PjI0KXtjYXNlIDk6Y2FzZSAxMDpjYXNlIDIxOmM9bTticmVhaztkZWZhdWx0OlJlPTQzO2JyZWFrIGV9fWFbT2U+PjJdPWM9YysyfDA7dDpmb3IoOzspe2lmKCgwfChtPUxlLWN8MCkpPD0wKXtjPS0xO2JyZWFrIGV9aWYoKEE9''@;'; put 'put ''MHxmZVtxKygwfFh0W2M+PjBdKT4+MF0pPDwyND4+MjQ9PXc8PDI0Pj4yNClicmVhaztzd2l0Y2goQTw8MjQ+PjI0KXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpSZT02MDticmVhayBlO2Nhc2UgMjpSZT02NTticmVhayBlO2Nhc2UgNTppZigoMHxtKTwyKXtjPS0yO2JyZWFrIGV9aWYoMHxCaVsx''@;'; put 'put ''MjcmYVtEPj4yXV0obCxjKSl7UmU9NTA7YnJlYWsgZX1hW09lPj4yXT1BPWMrMnwwLGM9QTtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxtKTwzKXtjPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtSPj4yXV0obCxjKSl7UmU9NTQ7YnJlYWsgZX1hW09lPj4yXT1BPWMrM3wwLGM9QTtjb250aW51''@;'; put 'put ''ZSB0O2Nhc2UgNzppZigoMHxtKTw0KXtjPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtHPj4yXV0obCxjKSl7UmU9NTg7YnJlYWsgZX1hW09lPj4yXT1BPWMrNHwwLGM9QTtjb250aW51ZSB0O2Nhc2UgMzppZigoMHwoYz0wfGxMKGwsYysxfDAsZixPZSkpKTwxKXtSZT02MzticmVhayBlfWM9''@;'; put 'put ''MHxhW09lPj4yXTtjb250aW51ZSB0O2RlZmF1bHQ6YVtPZT4+Ml09QT1jKzF8MCxjPUE7Y29udGludWUgdH19aWYoYVtPZT4+Ml09bT1jKzF8MCwoTGUtbXwwKTw9MCl7Yz0tMTticmVha31zd2l0Y2goMHxmZVtxKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMTE6UmU9ODY7YnJlYWsgZTtjYXNl''@;'; put 'put ''IDE3OlJlPTg3O2JyZWFrIGU7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjPW07YnJlYWs7ZGVmYXVsdDpSZT02OTticmVhayBlfXQ6Zm9yKDs7KXtpZihhW09lPj4yXT1tPWMrMXwwLCgwfChBPUxlLW18MCkpPD0wKXtjPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbcSsoMHxYdFttPj4wXSk+PjBd''@;'; put 'put ''KXtjYXNlIDI5OlJlPTcyO2JyZWFrIGU7Y2FzZSAxMTpSZT04NjticmVhayBlO2Nhc2UgMTc6UmU9ODc7YnJlYWsgZTtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmM9bTticmVhaztjYXNlIDI0OmNhc2UgMjI6UmU9NzM7YnJlYWsgdDtjYXNlIDU6UmU9NzQ7YnJlYWsgdDtjYXNlIDY6UmU9Nzg7''@;'; put 'put ''YnJlYWsgdDtjYXNlIDc6UmU9ODI7YnJlYWsgdDtkZWZhdWx0OlJlPTkxO2JyZWFrIGV9fWlmKDczIT0oMHxSZSkpaWYoNzQhPSgwfFJlKSlpZig3OCE9KDB8UmUpKWlmKDgyIT0oMHxSZSkpO2Vsc2V7aWYoUmU9MCwoMHxBKTw0KXtjPS0yO2JyZWFrfWlmKCEoMHxCaVsxMjcmYVtNPj4yXV0o''@;'; put 'put ''bCxtKSkpe1JlPTg0O2JyZWFrfWFbT2U+PjJdPWM9Yys1fDAsQT0wfWVsc2V7aWYoUmU9MCwoMHxBKTwzKXtjPS0yO2JyZWFrfWlmKCEoMHxCaVsxMjcmYVtrPj4yXV0obCxtKSkpe1JlPTgwO2JyZWFrfWFbT2U+PjJdPWM9Yys0fDAsQT0wfWVsc2V7aWYoUmU9MCwoMHxBKTwyKXtjPS0yO2Jy''@;'; put 'put ''ZWFrfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxtKSkpe1JlPTc2O2JyZWFrfWFbT2U+PjJdPWM9YyszfDAsQT0wfWVsc2UgUmU9MCxhW09lPj4yXT1jPWMrMnwwLEE9MH1zd2l0Y2goMHxSZSl7Y2FzZSA0OmNhc2UgODpjYXNlIDEyOmNhc2UgMTY6Y2FzZSAxOTpjYXNlIDM5OmNhc2UgNTA6''@;'; put 'put ''Y2FzZSA1NDpjYXNlIDU4OmNhc2UgNjA6Y2FzZSA2NTpjYXNlIDkyOmFbcD4+Ml09YyxjPTA7YnJlYWs7Y2FzZSAyMjpjYXNlIDI2OmNhc2UgMzA6Y2FzZSAzNDpjYXNlIDM2OmNhc2UgNDM6Y2FzZSA2OTpjYXNlIDcyOmNhc2UgNzY6Y2FzZSA4MDpjYXNlIDg0OmNhc2UgOTE6YVtwPj4yXT1t''@;'; put 'put ''LGM9MDticmVhaztjYXNlIDYzOmN8fChhW3A+PjJdPWFbT2U+PjJdLGM9MCk7YnJlYWs7Y2FzZSA4NjphW3A+PjJdPWMrMixjPTE7YnJlYWs7Y2FzZSA4NzppZihhW09lPj4yXT1jPW0rMXwwLChMZS1jfDApPjApe2lmKDYyPT0oMHxmZVtjPj4wXSkpe2FbcD4+Ml09bSsyLGM9MzticmVha31h''@;'; put 'put ''W3A+PjJdPWMsYz0wO2JyZWFrfWM9LTF9cmV0dXJuIGxlPUhlLDB8Y31mdW5jdGlvbiBtaihsLGMsZil7bHw9MCxjfD0wLGFbKGZ8PTApPj4yXT0xMTtlOmRve2lmKDM9PShjLWx8MCkpe3N3aXRjaCgwfGZlW2w+PjBdKXtjYXNlIDEyMDpjPTA7YnJlYWs7Y2FzZSA4ODpjPTE7YnJlYWs7ZGVm''@;'; put 'put ''YXVsdDpjPTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtsKzE+PjBdKXtjYXNlIDEwOTpicmVhaztjYXNlIDc3OmM9MTticmVhaztkZWZhdWx0OmM9MTticmVhayBlfXN3aXRjaCgwfGZlW2wrMj4+MF0pe2Nhc2UgMTA4OmJyZWFrO2Nhc2UgNzY6Yz0wO2JyZWFrIGU7ZGVmYXVsdDpjPTE7YnJlYWsg''@;'; put 'put ''ZX1jP2M9MDooYVtmPj4yXT0xMixjPTEpfWVsc2UgYz0xfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gZzFlKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixrLE0sRCxBPTAsdz0wLFI9MDtiPTcyKyhjfD0wKXwwLGs9YyszNTJ8MCxNPWMrMzU2fDAsRD1jKzM2MHww''@;'; put 'put ''O2U6Zm9yKDs7KXtpZigoMHwoQT1wLWZ8MCkpPD0wKXtwPS0xO2JyZWFrfXN3aXRjaCgodz0wfGZlW2IrKDB8WHRbZj4+MF0pPj4wXSk8PDI0Pj4yNCl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Uj0xNjticmVhayBlO2Nhc2UgNTppZigoMHxBKTwyKXtwPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcm''@;'; put 'put ''YVtrPj4yXV0oYyxmKSl7Uj02O2JyZWFrIGV9Zj1mKzJ8MDtjb250aW51ZSBlO2Nhc2UgNjppZigoMHxBKTwzKXtwPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtNPj4yXV0oYyxmKSl7Uj0xMDticmVhayBlfWY9ZiszfDA7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8QSk8NCl7cD0tMjticmVh''@;'; put 'put ''ayBlfWlmKDB8QmlbMTI3JmFbRD4+Ml1dKGMsZikpe1I9MTQ7YnJlYWsgZX1mPWYrNHwwO2NvbnRpbnVlIGU7Y2FzZSAxMzpjYXNlIDEyOmlmKGY9ZisxfDAsKDI1NSZ3fDApPT0oMHxsKSl7Uj0xODticmVhayBlfWNvbnRpbnVlIGU7ZGVmYXVsdDpmPWYrMXwwO2NvbnRpbnVlIGV9fWU6ZG97''@;'; put 'put ''aWYoNj09KDB8UikpYVttPj4yXT1mLHA9MDtlbHNlIGlmKDEwPT0oMHxSKSlhW20+PjJdPWYscD0wO2Vsc2UgaWYoMTQ9PSgwfFIpKWFbbT4+Ml09ZixwPTA7ZWxzZSBpZigxNj09KDB8UikpYVttPj4yXT1mLHA9MDtlbHNlIGlmKDE4PT0oMHxSKSlpZigocC1mfDApPjApe3N3aXRjaChhW20+''@;'; put 'put ''PjJdPWYsMHxmZVtiKygwfFh0W2Y+PjBdKT4+MF0pe2Nhc2UgMjA6Y2FzZSAzMDpjYXNlIDExOmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6cD0yNzticmVhayBlfXA9MH1lbHNlIHA9LTI3fXdoaWxlKDApO3JldHVybiAwfHB9ZnVuY3Rpb24gbTFlKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3Zh''@;'; put 'put ''ciBtLEE9MCx3PTA7bT1mfD0wO2U6ZG97aWYoKG0tY3wwKT4wKXN3aXRjaChBPWwrNzJ8MCwwfGZlW0ErKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyNzpsPTB8cGoobCxjKzF8MCxmLHApO2JyZWFrIGU7Y2FzZSAyMDphW3A+PjJdPWMrMSxsPTMzO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOnQ6''@;'; put 'put ''Zm9yKDs7KXtpZigoMHwoZj1tLShsPWMrMXwwKXwwKSk8PTApe2w9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtBKygwfFh0W2w+PjBdKT4+MF0pe2Nhc2UgMjQ6Y2FzZSAyMjpjPWw7YnJlYWs7Y2FzZSAzMDp3PTg7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmJyZWFrIHQ7ZGVmYXVs''@;'; put 'put ''dDp3PTEyO2JyZWFrIHR9fWlmKDEyPT0oMHx3KSl7YVtwPj4yXT1sLGw9MDticmVhayBlfXQ6ZG97aWYoOD09KDB8dykpe2lmKCgwfGYpPD0xKXtsPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbQSsoMHxYdFtjKzI+PjBdKT4+MF0pe2Nhc2UgMzA6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpicmVh''@;'; put 'put ''aztkZWZhdWx0OmJyZWFrIHR9YVtwPj4yXT1sLGw9MDticmVhayBlfX13aGlsZSgwKTthW3A+PjJdPWwsbD0xNjticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLGw9MDticmVhayBlfWVsc2UgbD0tMX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIEhLKGwsYyxmLHApe2x8PTAscHw9MDt2''@;'; put 'put ''YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDttPShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfG0pPjApe3N3aXRjaCgwfGZlWyhrPWwrNzJ8MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6bT0xO2JyZWFrO2Nh''@;'; put 'put ''c2UgNTppZigoMHxtKTwyKXtmPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1tPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfG0pPDMpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKSl7YVtw''@;'; put 'put ''Pj4yXT1jLGY9MDticmVhayBlfW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9bT00fUE9bCszMjh8MCx3PWwrMzMyfDAsYj1sKzMzNnwwLGM9YyttfDA7dDpmb3Io''@;'; put 'put ''Ozspe2lmKCgwfChtPWYtY3wwKSk8PTApe2Y9LTIwO2JyZWFrIGV9c3dpdGNoKDB8ZmVbaysoMHxYdFtjPj4wXSk+PjBdKXtjYXNlIDI5Om09MTc7YnJlYWsgdDtjYXNlIDM2OmNhc2UgMzA6Y2FzZSAxMTpjYXNlIDMyOmNhc2UgMjE6Y2FzZSAxMDpjYXNlIDk6bT0yODticmVhayB0O2Nhc2Ug''@;'; put 'put ''Mjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWs7Y2FzZSA1OmlmKCgwfG0pPDIpe2Y9LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbQT4+Ml1dKGwsYykpKXttPTIwO2JyZWFrIHR9bT0yO2JyZWFrO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYo''@;'; put 'put ''ISgwfEJpWzEyNyZhW3c+PjJdXShsLGMpKSl7bT0yMzticmVhayB0fW09MzticmVhaztjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKCEoMHxCaVsxMjcmYVtiPj4yXV0obCxjKSkpe209MjY7YnJlYWsgdH1tPTQ7YnJlYWs7ZGVmYXVsdDptPTI5O2JyZWFrIHR9Yz1jK218MH1p''@;'; put 'put ''ZigxNz09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjA9PSgwfG0pKXthW3A+PjJdPWMsZj0wO2JyZWFrfWlmKDIzPT0oMHxtKSl7YVtwPj4yXT1jLGY9MDticmVha31pZigyNj09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9aWYoMjg9PSgwfG0pKXthW3A+PjJdPWMsZj0yMDti''@;'; put 'put ''cmVha31pZigyOT09KDB8bSkpe2FbcD4+Ml09YyxmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGYwKGwsYyl7Y3w9MDt2YXIgZj0wO3N3aXRjaCgobHw9MCk8PDI0Pj4yNCl7Y2FzZS0zNzpjYXNlLTM4OmNhc2UtMzk6Y2FzZS00MDpsPTc7YnJlYWs7''@;'; put 'put ''Y2FzZS0zMzpjYXNlLTM0OmNhc2UtMzU6Y2FzZS0zNjpsPTg7YnJlYWs7Y2FzZS0xOigyNTUmYyk+MjUzP2w9MDpmPTQ7YnJlYWs7ZGVmYXVsdDpmPTR9cmV0dXJuIDQ9PSgwfGYpJiYobD0yOSksMHxsfWZ1bmN0aW9uIHVMKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgayxtPTAsQT0wLHc9MCxi''@;'; put 'put ''PTA7dz0oaz1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2M+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYodz0yNTUmQSkp''@;'; put 'put ''JmFbNTY5NDArKCh3Pj4+NXwoMHxYdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGw9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2w9''@;'; put 'put ''LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2w9LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSAxOTpsPTB8RTFlKGwsYysyfDAsZixwKTticmVhayBlfWI9bCs3MnwwLHc9Yzt0OmZvcig7Oyl7aWYoKDB8KGM9ay0oQT13KzJ8''@;'; put 'put ''MCl8MCkpPD0xKXtsPS0xO2JyZWFrIGV9c3dpdGNoKG09MHxmZVtBPj4wXSwwfChmPShsPTB8ZmVbdyszPj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxYdFtiKygyNTUmbSk+PjBdKSl7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOnc9QTtjb250aW51ZSB0O2Nhc2Ug''@;'; put 'put ''NTptPTIzO2JyZWFrIHQ7Y2FzZSA2Om09MjQ7YnJlYWsgdDtjYXNlIDc6bT0yNjticmVhayB0O2Nhc2UgMTg6bT0yODticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDptPTI5O2JyZWFrIHR9aWYoISgxPDwoMzEmKGM9MjU1Jm0pKSZhWzU2OTQwKygoYz4+PjV8KDB8WHRbMTQ0MDQ0Kygy''@;'; put 'put ''NTUmbCk+PjBdKTw8Myk8PDIpPj4yXSkpe209MjI7YnJlYWt9dz1BfWlmKDIyPT0oMHxtKSl7YVtwPj4yXT1BLGw9MDticmVha31pZigyMz09KDB8bSkpe2FbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjQ9PSgwfG0pKXtpZigoMHxjKTwzKXtsPS0yO2JyZWFrfWFbcD4+Ml09QSxsPTA7YnJlYWt9''@;'; put 'put ''aWYoMjY9PSgwfG0pKXtpZigoMHxjKTw0KXtsPS0yO2JyZWFrfWFbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjg9PSgwfG0pKXthW3A+PjJdPXcrNCxsPTk7YnJlYWt9aWYoMjk9PSgwfG0pKXthW3A+PjJdPUEsbD0wO2JyZWFrfX1lbHNlIGw9LTF9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlv''@;'; put 'put ''biBjTChsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7dz0oZnw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjPj4wXSk6MHxYdFtsKzcyKygyNTUmKEE9MHxmZVtj''@;'; put 'put ''Pj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKGs9MjU1JkEpKSZhWzU2OTQwKygoaz4+PjV8KDB8WHRbMTQzNzg4KygyNTUmYik+PjBdKTw8Myk8PDIpPj4yXSkpe2FbcD4+Ml09YyxmPTA7YnJlYWsgZX1icmVhaztjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSA1OmRlZmF1bHQ6''@;'; put 'put ''YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNjppZigoMHx3KTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMzA6Y2FzZSA5OmNhc2UgMTA6Y2FzZSAyMTphW3A+''@;'; put 'put ''PjJdPWMsZj0yMjticmVhayBlfWs9bCs3MnwwLGw9Yzt0OmZvcig7Oyl7aWYoKDB8KGM9Zi0oYj1sKzJ8MCl8MCkpPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVtiPj4wXSwwfCh3PShtPTB8ZmVbbCszPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBdKSl7''@;'; put 'put ''Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmw9Yjtjb250aW51ZSB0O2Nhc2UgNTptPTIzO2JyZWFrIHQ7Y2FzZSA2Om09MjQ7YnJlYWsgdDtjYXNlIDc6bT0yNjticmVhayB0O2Nhc2UgMTg6bT0yODticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDptPTI5O2Jy''@;'; put 'put ''ZWFrIHR9aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2OTQwKygoYz4+PjV8KDB8WHRbMTQ0MDQ0KygyNTUmbSk+PjBdKTw8Myk8PDIpPj4yXSkpe209MjI7YnJlYWt9bD1ifWlmKDIyPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha31pZigyMz09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJl''@;'; put 'put ''YWt9aWYoMjQ9PSgwfG0pKXtpZigoMHxjKTwzKXtmPS0yO2JyZWFrfWFbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjY9PSgwfG0pKXtpZigoMHxjKTw0KXtmPS0yO2JyZWFrfWFbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjg9PSgwfG0pKXthW3A+PjJdPWwrNCxmPTI4O2JyZWFrfWlmKDI5PT0oMHxt''@;'; put 'put ''KSl7YVtwPj4yXT1iLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gRTFlKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBiLG09MCxBPTAsdz0wO2I9Znw9MDtlOmRve2lmKChiLWN8MCk+MSl7QT0wfGZlW2MrMT4+MF0sbT0wfGZlW2M+PjBdO2Rv''@;'; put 'put ''e2lmKCEoQTw8MjQ+PjI0KSl7aWYobTw8MjQ+PjI0PT0xMjApe209MHx4MWUobCxjKzJ8MCxmLHApO2JyZWFrIGV9bT0wfFh0W2wrNzIrKDI1NSZtKT4+MF07YnJlYWt9bT0wfGYwKEEsbSl9d2hpbGUoMCk7aWYoMjUhPSgwfG0pKXthW3A+PjJdPWMsbT0wO2JyZWFrfXc9bCs3MnwwLGw9Yzt0''@;'; put 'put ''OmZvcig7Oyl7aWYoKGItKEE9bCsyfDApfDApPD0xKXttPS0xO2JyZWFrIGV9c3dpdGNoKGY9MHxmZVtBPj4wXSwwfChtPShtPTB8ZmVbbCszPj4wXSk8PDI0Pj4yND8wfGYwKG0sZik6MHxYdFt3KygyNTUmZik+PjBdKSl7Y2FzZSAyNTpsPUE7YnJlYWs7Y2FzZSAxODpmPTE1O2JyZWFrIHQ7''@;'; put 'put ''ZGVmYXVsdDpmPTE2O2JyZWFrIHR9fWlmKDE1PT0oMHxmKSl7YVtwPj4yXT1sKzQsbT0xMDticmVha31pZigxNj09KDB8Zikpe2FbcD4+Ml09QSxtPTA7YnJlYWt9fWVsc2UgbT0tMX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIHgxZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0w''@;'; put 'put ''O3ZhciBtPTAsQT0wLHc9MDtlOmRve2lmKChmLWN8MCk+MSl7aWYoMjQhPSgtMiYobT0obT0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChtLDB8ZmVbYz4+MF0pOjB8WHRbbCs3MisoMHxYdFtjPj4wXSk+PjBdKXwwKSl7YVtwPj4yXT1jLGY9MDticmVha313PWwrNzJ8MDt0OmZvcig7Oyl7''@;'; put 'put ''aWYoKGYtKEE9YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKGw9MHxmZVtBPj4wXSwwfChtPShtPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKG0sbCk6MHxYdFt3KygyNTUmbCk+PjBdKSl7Y2FzZSAyNDpjYXNlIDI1OmM9QTticmVhaztjYXNlIDE4Om09MTM7YnJlYWsgdDtk''@;'; put 'put ''ZWZhdWx0Om09MTQ7YnJlYWsgdH19aWYoMTM9PSgwfG0pKXthW3A+PjJdPWMrNCxmPTEwO2JyZWFrfWlmKDE0PT0oMHxtKSl7YVtwPj4yXT1BLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gYTQobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtPTAsQT0w''@;'; put 'put ''LHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO3c9KFI9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHx3KT4xKXtzd2l0Y2goMHwobT0oYj0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjPj4wXSk6MHxYdFtsKzcyKygyNTUmKEE9MHxmZVtjPj4wXSkpPj4wXSkpe2Nhc2UgMjk6''@;'; put 'put ''aWYoISgxPDwoMzEmKE09MjU1JkEpKSZhWzU2OTQwKygoTT4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLG09MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNjppZigo''@;'; put 'put ''MHx3KTwzKXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgMTY6aWYoKFItKEE9YysyfDApfDApPD0xKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8KG09KG09MHxmZVtjKzM+''@;'; put 'put ''PjBdKTw8MjQ+PjI0PzB8ZjAobSwwfGZlW0E+PjBdKTowfFh0W2wrNzIrKDB8WHRbQT4+MF0pPj4wXSkpe2Nhc2UgMjc6bT0wfHpLKGwsYys0fDAsZixwKTticmVhayBlO2Nhc2UgMjA6bT0wfFQxZShjKzR8MCxmLHApO2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPUEsbT0wO2JyZWFrIGV9Y2Fz''@;'; put 'put ''ZSAxNTptPTB8R0sobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAxNzptPTB8STFlKGwsYysyfDAsZixwKTticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfU09bCs3MnwwLGs9MCxtPWMrMnwwO3Q6Zm9yKDs7KXtuOmZvcig7Oyl7aWYoKDB8KEE9Ui1tfDApKTw9MSl7bT0t''@;'; put 'put ''MTticmVhayBlfXN3aXRjaChiPTB8ZmVbbT4+MF0sMHwoYz0odz0wfGZlW20rMT4+MF0pPDwyND4+MjQ/MHxmMCh3LGIpOjB8WHRbTSsoMjU1JmIpPj4wXSkpe2Nhc2UgNTpEPTM0O2JyZWFrIHQ7Y2FzZSA2OkQ9MzU7YnJlYWsgdDtjYXNlIDc6RD0zNzticmVhayB0O2Nhc2UgMTA6Y2FzZSA5''@;'; put 'put ''OmNhc2UgMjE6RD01NTticmVhayB0O2Nhc2UgMTE6RD02OTticmVhayB0O2Nhc2UgMTc6YnJlYWsgdDtjYXNlIDIzOmJyZWFrIG47Y2FzZSAyOTppZighKDE8PCgzMSYoYz0yNTUmYikpJmFbNTY5NDArKChjPj4+NXxYdFsxNDQwNDQrKDI1NSZ3KT4+MF08PDMpPDwyKT4+Ml0pKXtEPTMyO2Jy''@;'; put 'put ''ZWFrIHR9YnJlYWs7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2RlZmF1bHQ6RD03NTticmVhayB0fW09bSsyfDB9aWYoMHxrKXtEPTQwO2JyZWFrfWlmKCgwfChjPVItKGI9bSsyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbYj4+''@;'; put 'put ''MF0sMHwodz0oaz0wfGZlW20rMz4+MF0pPDwyND4+MjQ/MHxmMChrLEEpOjB8WHRbTSsoMjU1JkEpPj4wXSkpe2Nhc2UgNTpEPTQ5O2JyZWFrIHQ7Y2FzZSA2OkQ9NTA7YnJlYWsgdDtjYXNlIDc6RD01MjticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2OTQwKygo''@;'; put 'put ''Yz4+PjV8WHRbMTQzNzg4KygyNTUmayk+PjBdPDwzKTw8Mik+PjJdKSl7RD00NzticmVhayB0fWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OkQ9NTQ7YnJlYWsgdH1rPTEsbT1tKzR8MH10OnN3aXRjaCgwfEQpe2Nhc2UgMzI6Y2FzZSAzNDpjYXNlIDQwOmNhc2UgNzU6YVtw''@;'; put 'put ''Pj4yXT1tLG09MDticmVhayBlO2Nhc2UgMzU6aWYoKDB8QSk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM3OmlmKCgwfEEpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPW0sbT0wO2JyZWFrIGU7Y2FzZSA0NzpjYXNlIDQ5OmNhc2UgNTQ6YVtwPj4yXT1iLG09''@;'; put 'put ''MDticmVhayBlO2Nhc2UgNTA6aWYoKDB8Yyk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09YixtPTA7YnJlYWsgZTtjYXNlIDUyOmlmKCgwfGMpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPWIsbT0wO2JyZWFrIGU7Y2FzZSA1NTpuOmZvcig7Oyl7aWYoRD0wLCgwfCh3PVItKEE9bSsyfDApfDAp''@;'; put 'put ''KTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChjPTB8ZmVbQT4+MF0sMHwoaz0oYj0wfGZlW20rMz4+MF0pPDwyND4+MjQ/MHxmMChiLGMpOjB8WHRbTSsoMjU1JmMpPj4wXSkpe2Nhc2UgMTE6bT1BLEQ9Njk7YnJlYWsgdDtjYXNlIDE3Om09QTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2Ug''@;'; put 'put ''MjE6bT1BLEQ9NTU7YnJlYWs7Y2FzZSAyOTpEPTYwO2JyZWFrIG47Y2FzZSAyNDpjYXNlIDIyOmJyZWFrIG47Y2FzZSA1OkQ9NjM7YnJlYWsgbjtjYXNlIDY6RD02NDticmVhayBuO2Nhc2UgNzpEPTY2O2JyZWFrIG47ZGVmYXVsdDpEPTY4O2JyZWFrIG59fWlmKDYwPT0oMHxEKSl7aWYoISgx''@;'; put 'put ''PDwoMzEmKFI9MjU1JmMpKSZhWzU2OTQwKygoUj4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1BLG09MDticmVhayBlfX1lbHNle2lmKDYzPT0oMHxEKSl7YVtwPj4yXT1BLG09MDticmVhayBlfWlmKDY0PT0oMHxEKSl7aWYoKDB8dyk8Myl7bT0tMjti''@;'; put 'put ''cmVhayBlfWFbcD4+Ml09QSxtPTA7YnJlYWsgZX1pZig2Nj09KDB8RCkpe2lmKCgwfHcpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPUEsbT0wO2JyZWFrIGV9aWYoNjg9PSgwfEQpKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9fW09MHxEMWUobCxtKzR8MCxmLHApO2JyZWFrIGV9aWYoNjk9PSgw''@;'; put 'put ''fEQpKXthW3A+PjJdPW0rMixtPTI7YnJlYWt9aWYoKFItKEE9bSsyfDApfDApPjEpe2lmKDA9PSgwfGZlW20rMz4+MF0pJiY2Mj09KDB8ZmVbQT4+MF0pKXthW3A+PjJdPW0rNCxtPTQ7YnJlYWt9YVtwPj4yXT1BLG09MH1lbHNlIG09LTF9ZWxzZSBtPS0xfXdoaWxlKDApO3JldHVybiAwfG19''@;'; put 'put ''ZnVuY3Rpb24geksobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIHcsbT0wLEE9MCxiPTA7dz1mfD0wO2U6ZG97aWYoKHctY3wwKT4xKXtpZigwPT0oMHxmZVtjKzE+PjBdKSYmNDU9PSgwfGZlW2M+PjBdKSl7QT1sKzcyfDAsbT1jKzJ8MDt0OmZvcig7Oyl7aWYoKDB8KGM9dy1tfDApKTw9''@;'; put 'put ''MSl7Zj0tMTticmVhayBlfXN3aXRjaChsPTB8ZmVbbT4+MF0sMHwoZj0oZj0wfGZlW20rMT4+MF0pPDwyND4+MjQ/MHxmMChmLGwpOjB8WHRbQSsoMjU1JmwpPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOmI9MTY7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDptPW0rMnwwO2NvbnRpbnVlIHQ7''@;'; put 'put ''Y2FzZSA2OmlmKCgwfGMpPDMpe2Y9LTI7YnJlYWsgZX1tPW0rM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfGMpPDQpe2Y9LTI7YnJlYWsgZX1tPW0rNHwwO2NvbnRpbnVlIHQ7Y2FzZSAyNzppZigody0oZj1tKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW20rMz4+MF0pe209''@;'; put 'put ''Zjtjb250aW51ZSB0fWlmKDQ1PT0oMHxmZVtmPj4wXSkpYnJlYWsgdDttPWY7Y29udGludWUgdH19aWYoMTY9PSgwfGIpKXthW3A+PjJdPW0sZj0wO2JyZWFrfWlmKCh3LShmPW0rNHwwKXwwKTw9MSl7Zj0tMTticmVha31pZigwPT0oMHxmZVttKzU+PjBdKSYmNjI9PSgwfGZlW2Y+PjBdKSl7''@;'; put 'put ''YVtwPj4yXT1tKzYsZj0xMzticmVha31hW3A+PjJdPWYsZj0wO2JyZWFrfWFbcD4+Ml09YyxmPTB9ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gVDFlKGwsYyxmKXtpZihmfD0wLCgoY3w9MCktKGx8PTApfDApPjExKXtmb3IoYz0wOzspe2lmKCgwfGMpPj02KXtjPTg7''@;'; put 'put ''YnJlYWt9aWYoMHxmZVtsKzE+PjBdKXtjPTA7YnJlYWt9aWYoKDB8ZmVbbD4+MF0pIT0oMHxmZVsxNDQzMDArYz4+MF0pKXtjPTA7YnJlYWt9Yz1jKzF8MCxsPWwrMnwwfWFbZj4+Ml09bH1lbHNlIGM9LTE7cmV0dXJuIDB8Y31mdW5jdGlvbiBHSyhsLGMsZixwKXtsfD0wLHB8PTA7dmFyIEQs''@;'; put 'put ''UixHLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO0c9bGUsbGU9bGUrMTZ8MCxSPUcsdz0oRD1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShmPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGYsQT0wfGZlW2M+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZl''@;'; put 'put ''W2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYoaz0yNTUmQSkpJmFbNTY5NDArKChrPj4+NXxYdFsxNDM3ODgrKDI1NSZmKT4+MF08PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFb''@;'; put 'put ''cD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1rPWwrNzJ8MCxiPWM7dDpmb3IoOzspe2lmKCgwfChtPUQtKGY9''@;'; put 'put ''YisyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbZj4+MF0sMHwobD0oQT0wfGZlW2IrMz4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8WHRbaysoMjU1JncpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpiPWY7Y29udGludWUgdDtj''@;'; put 'put ''YXNlIDU6TT0yMjticmVhayB0O2Nhc2UgNjpNPTIzO2JyZWFrIHQ7Y2FzZSA3Ok09MjU7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOk09Mjc7YnJlYWsgdDtjYXNlIDE1Ok09NDY7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6YnJlYWsgdH1pZighKDE8PCgzMSYoYj0yNTUm''@;'; put 'put ''dykpJmFbNTY5NDArKChiPj4+NXxYdFsxNDQwNDQrKDI1NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtNPTIxO2JyZWFrfWI9Zn1pZigyMT09KDB8TSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoMjI9PSgwfE0pKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIzPT0oMHxNKSl7aWYoKDB8bSk8Myl7''@;'; put 'put ''Zj0tMjticmVha31hW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDI1PT0oMHxNKSl7aWYoKDB8bSk8NCl7Zj0tMjticmVha31hW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDI3PT0oMHxNKSl7aWYoISgwfFdLKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9dz1iKzR8MDt0OmZvcig7Oyl7aWYoKDB8''@;'; put 'put ''KEE9RC13fDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChtPTB8ZmVbdz4+MF0sMHwoZj0oZj0wfGZlW3crMT4+MF0pPDwyND4+MjQ/MHxmMChmLG0pOjB8WHRbaysoMjU1Jm0pPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOk09NDA7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDp3PXcrMnww''@;'; put 'put ''O2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfEEpPDMpe2Y9LTI7YnJlYWsgZX13PXcrM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfEEpPDQpe2Y9LTI7YnJlYWsgZX13PXcrNHwwO2NvbnRpbnVlIHQ7Y2FzZSAxNTppZigoRC0oZj13KzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZl''@;'; put 'put ''W3crMz4+MF0pe3c9Zjtjb250aW51ZSB0fWlmKDYyPT0oMHxmZVtmPj4wXSkpe009NDQ7YnJlYWsgdH13PWY7Y29udGludWUgdH19aWYoNDA9PSgwfE0pKXthW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDQ0PT0oMHxNKSl7YVtwPj4yXT13KzQsZj0wfGFbUj4+Ml07YnJlYWt9fWVsc2UgaWYoNDY9''@;'; put 'put ''PSgwfE0pKXtpZighKDB8V0soYyxmLFIpKSl7YVtwPj4yXT1mLGY9MDticmVha31pZigoRC0oZj1iKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWt9aWYoMD09KDB8ZmVbYis1Pj4wXSkmJjYyPT0oMHxmZVtmPj4wXSkpe2FbcD4+Ml09Yis2LGY9MHxhW1I+PjJdO2JyZWFrfX1hW3A+PjJdPWYsZj0w''@;'; put 'put ''fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gbGU9RywwfGZ9ZnVuY3Rpb24gSTFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8w''@;'; put 'put ''fGYwKGIsQT0wfGZlW2M+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYoaz0yNTUmQSkpJmFbNTY5NDArKChrPj4+NXwoMHxYdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBl''@;'; put 'put ''fWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0w''@;'; put 'put ''O2JyZWFrIGV9az1sKzcyfDAsbD1jO3Q6Zm9yKDs7KXtpZigoMHwoYz1mLSh3PWwrMnwwKXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goQT0wfGZlW3c+PjBdLDB8KGI9KG09MHxmZVtsKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfFh0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDIzOmNh''@;'; put 'put ''c2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpsPXc7Y29udGludWUgdDtjYXNlIDU6bT0yMjticmVhayB0O2Nhc2UgNjptPTIzO2JyZWFrIHQ7Y2FzZSA3Om09MjU7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOm09Mjc7YnJlYWsgdDtjYXNlIDExOm09MzQ7YnJl''@;'; put 'put ''YWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6bT0zNTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1Jm0pPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIxO2JyZWFrfWw9d31pZigyMT09KDB8bSkpe2FbcD4+Ml09dyxmPTA7YnJl''@;'; put 'put ''YWt9aWYoMjI9PSgwfG0pKXthW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDIzPT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDI1PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjticmVha31hW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDI3PT0oMHxtKSl7''@;'; put 'put ''dDpmb3IoOzspe2lmKChmLShiPXcrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbYj4+MF0sMHwobT0obT0wfGZlW3crMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6dz1iLG09Mjc7YnJlYWs7''@;'; put 'put ''Y2FzZSAxMTptPTMyO2JyZWFrIHQ7ZGVmYXVsdDptPTMzO2JyZWFrIHR9fWlmKDMyPT0oMHxtKSl7YVtwPj4yXT13KzQsZj01O2JyZWFrfWlmKDMzPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha319ZWxzZXtpZigzND09KDB8bSkpe2FbcD4+Ml09bCs0LGY9NTticmVha31pZigzNT09KDB8''@;'; put 'put ''bSkpe2FbcD4+Ml09dyxmPTA7YnJlYWt9fX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBEMWUobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEQsRyxxLHBlLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MDtwZT1sZSxsZT1sZSsxNnwwLGFbKEc9cGUpPj4yXT1j''@;'; put 'put ''fD0wLHE9ZixEPWwrNzJ8MCxtPTA7ZTpmb3IoOzspe3Q6Zm9yKDs7KXtpZigoMHwoaz1xLWN8MCkpPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKHc9MHxmZVtjPj4wXSwwfChiPShBPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKEEsdyk6MHxYdFtEKygyNTUmdyk+PjBdKSl7Y2FzZSA1OlI9''@;'; put 'put ''MTE7YnJlYWsgZTtjYXNlIDY6Uj0xMjticmVhayBlO2Nhc2UgNzpSPTE0O2JyZWFrIGU7Y2FzZSAyMzpSPTE2O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpSPTMxO2JyZWFrIHQ7Y2FzZSAxNDpSPTM3O2JyZWFrIHQ7Y2FzZSAyOTppZighKDE8PCgzMSYoTT0yNTUmdykpJmFbNTY5''@;'; put 'put ''NDArKChNPj4+NXxYdFsxNDQwNDQrKDI1NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtSPTk7YnJlYWsgZX1icmVhaztjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6YnJlYWs7ZGVmYXVsdDpSPTg5O2JyZWFrIGV9YVtHPj4yXT1NPWMrMnwwLGM9TX10OmRve2lmKDE2PT0o''@;'; put 'put ''MHxSKSl7aWYoUj0wLDB8bSl7Uj0xNzticmVhayBlfWlmKGFbRz4+Ml09bT1jKzJ8MCwoMHwodz1xLShBPW0pfDApKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaChrPTB8ZmVbbT4+MF0sMHwoTT0oYj0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChiLGspOjB8WHRbRCsoMjU1JmspPj4wXSkp''@;'; put 'put ''e2Nhc2UgNTpSPTI1O2JyZWFrIGU7Y2FzZSA2OlI9MjY7YnJlYWsgZTtjYXNlIDc6Uj0yODticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjptPTE7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6Uj0zMDticmVhayBlfWlmKCEoMTw8KDMxJihNPTI1NSZrKSkmYVs1Njk0MCsoKE0+Pj41fFh0''@;'; put 'put ''WzE0Mzc4OCsoMjU1JmIpPj4wXTw8Myk8PDIpPj4yXSkpe1I9MjQ7YnJlYWsgZX1tPTF9ZWxzZSBpZigzMT09KDB8UikpZm9yKDs7KXtpZihSPTAsYVtHPj4yXT1BPWMrMnwwLChxLSh3PUEpfDApPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKG09MHxmZVtBPj4wXSwwfChjPShjPTB8ZmVbYysz''@;'; put 'put ''Pj4wXSk8PDI0Pj4yND8wfGYwKGMsbSk6MHxYdFtEKygyNTUmbSk+PjBdKSl7Y2FzZSAxNDpjPUEsUj0zNzticmVhayB0O2Nhc2UgOTpjYXNlIDEwOmNhc2UgMjE6Yz1BLFI9MzE7YnJlYWs7ZGVmYXVsdDpSPTM2O2JyZWFrIGV9fX13aGlsZSgwKTt0OmRve2lmKDM3PT0oMHxSKSl7Zm9yKDs7''@;'; put 'put ''KXtpZihSPTAsYVtHPj4yXT13PWMrMnwwLChxLShiPXcpfDApPD0xKXtjPS0xO2JyZWFrIGV9aWYoQT0wfGZlW3c+PjBdLDEzPT0oMXwoaz0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbRCsoMjU1JkEpPj4wXSkpKWJyZWFrO3N3aXRjaCgwfGspe2Nhc2UgOTpjYXNl''@;'; put 'put ''IDEwOmNhc2UgMjE6Yz13LFI9Mzc7YnJlYWs7ZGVmYXVsdDpSPTQzO2JyZWFrIGV9fWFbRz4+Ml09Yz1jKzR8MDtuOmZvcig7Oyl7aWYoKDB8KHc9cS1jfDApKTw9MSl7Yz0tMTticmVhayBlfWlmKEE9MHxmZVtjPj4wXSwoMHwobT0obT0wfGZlW2MrMT4+MF0pPDwyND4+MjQ/MHxmMChtLEEp''@;'; put 'put ''OjB8WHRbRCsoMjU1JkEpPj4wXSkpPT0oMHxrKSlicmVhaztzd2l0Y2goMHxtKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpSPTU2O2JyZWFrIGU7Y2FzZSAyOlI9NjE7YnJlYWsgZTtjYXNlIDU6ZGVmYXVsdDphW0c+PjJdPU09YysyfDAsYz1NO2NvbnRpbnVlIG47Y2FzZSA2OmlmKCgwfHcpPDMp''@;'; put 'put ''e2M9LTI7YnJlYWsgZX1hW0c+PjJdPU09YyszfDAsYz1NO2NvbnRpbnVlIG47Y2FzZSA3OmlmKCgwfHcpPDQpe2M9LTI7YnJlYWsgZX1hW0c+PjJdPU09Yys0fDAsYz1NO2NvbnRpbnVlIG47Y2FzZSAzOmlmKCgwfChjPTB8dUwobCxjKzJ8MCxmLEcpKSk8MSl7Uj01OTticmVhayBlfWM9MHxh''@;'; put 'put ''W0c+PjJdO2NvbnRpbnVlIG59fWlmKGFbRz4+Ml09QT1jKzJ8MCwocS0oYj1BKXwwKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbQT4+MF0sMHwobT0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLHcpOjB8WHRbRCsoMjU1JncpPj4wXSkpe2Nhc2UgMTE6Uj04MTticmVh''@;'; put 'put ''ayBlO2Nhc2UgMTc6Uj04MjticmVhayBlO2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Yz1BO2JyZWFrO2RlZmF1bHQ6Uj02ODticmVhayBlfW46Zm9yKDs7KXtpZihhW0c+PjJdPUE9YysyfDAsKDB8KHc9cS0obT1BKXwwKSk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2goaz0wfGZlW0E+PjBdLDB8''@;'; put 'put ''KE09KGI9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoYixrKTowfFh0W0QrKDI1NSZrKT4+MF0pKXtjYXNlIDU6Uj03NjticmVhayBlO2Nhc2UgNjpSPTc3O2JyZWFrIGU7Y2FzZSA3OlI9Nzk7YnJlYWsgZTtjYXNlIDExOlI9ODE7YnJlYWsgZTtjYXNlIDE3OlI9ODI7YnJlYWsgZTtjYXNl''@;'; put 'put ''IDI0OmNhc2UgMjI6bT0wO2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjPUE7YnJlYWs7Y2FzZSAyOTpicmVhayBuO2RlZmF1bHQ6Uj04NzticmVhayBlfX1pZighKDE8PCgzMSYoTT0yNTUmaykpJmFbNTY5NDArKChNPj4+NXxYdFsxNDM3ODgrKDI1NSZiKT4+MF08PDMpPDwyKT4+''@;'; put 'put ''Ml0pKXtSPTc1O2JyZWFrIGV9bT0wfX13aGlsZSgwKTthW0c+PjJdPWM9Yys0fDB9c3dpdGNoKDB8Uil7Y2FzZSA5OmNhc2UgMTE6Y2FzZSAxNzpjYXNlIDU2OmNhc2UgNjE6Y2FzZSA4OTphW3A+PjJdPWMsYz0wO2JyZWFrO2Nhc2UgMTI6KDB8ayk8Mz9jPS0yOihhW3A+PjJdPWMsYz0wKTti''@;'; put 'put ''cmVhaztjYXNlIDE0OigwfGspPDQ/Yz0tMjooYVtwPj4yXT1jLGM9MCk7YnJlYWs7Y2FzZSAyNDpjYXNlIDI1OmNhc2UgODc6YVtwPj4yXT1tLGM9MDticmVhaztjYXNlIDI2OigwfHcpPDM/Yz0tMjooYVtwPj4yXT1tLGM9MCk7YnJlYWs7Y2FzZSAyODooMHx3KTw0P2M9LTI6KGFbcD4+Ml09''@;'; put 'put ''bSxjPTApO2JyZWFrO2Nhc2UgMzA6Y2FzZSA3NTpjYXNlIDc2OmFbcD4+Ml09QSxjPTA7YnJlYWs7Y2FzZSAzNjphW3A+PjJdPXcsYz0wO2JyZWFrO2Nhc2UgNDM6Y2FzZSA2ODphW3A+PjJdPWIsYz0wO2JyZWFrO2Nhc2UgNTk6Y3x8KGFbcD4+Ml09YVtHPj4yXSxjPTApO2JyZWFrO2Nhc2Ug''@;'; put 'put ''Nzc6KDB8dyk8Mz9jPS0yOihhW3A+PjJdPUEsYz0wKTticmVhaztjYXNlIDc5OigwfHcpPDQ/Yz0tMjooYVtwPj4yXT1BLGM9MCk7YnJlYWs7Y2FzZSA4MTphW3A+PjJdPWMrNCxjPTE7YnJlYWs7Y2FzZSA4MjppZihhW0c+PjJdPW09QSsyfDAsKHEtKGM9bSl8MCk+MSl7aWYoMD09KDB8ZmVb''@;'; put 'put ''QSszPj4wXSkmJjYyPT0oMHxmZVttPj4wXSkpe2FbcD4+Ml09QSs0LGM9MzticmVha31hW3A+PjJdPWMsYz0wfWVsc2UgYz0tMX1yZXR1cm4gbGU9cGUsMHxjfWZ1bmN0aW9uIFdLKGwsYyxmKXtsfD0wLGN8PTAsYVsoZnw9MCk+PjJdPTExO2U6ZG97aWYoNj09KGMtbHwwKSYmMD09KDB8ZmVb''@;'; put 'put ''bCsxPj4wXSkpe3N3aXRjaCgwfGZlW2w+PjBdKXtjYXNlIDEyMDpjPTA7YnJlYWs7Y2FzZSA4ODpjPTE7YnJlYWs7ZGVmYXVsdDpjPTE7YnJlYWsgZX1pZigwfGZlW2wrMz4+MF0pYz0xO2Vsc2V7c3dpdGNoKDB8ZmVbbCsyPj4wXSl7Y2FzZSAxMDk6YnJlYWs7Y2FzZSA3NzpjPTE7YnJlYWs7''@;'; put 'put ''ZGVmYXVsdDpjPTE7YnJlYWsgZX1pZigwfGZlW2wrNT4+MF0pYz0xO2Vsc2V7c3dpdGNoKDB8ZmVbbCs0Pj4wXSl7Y2FzZSAxMDg6YnJlYWs7Y2FzZSA3NjpjPTA7YnJlYWsgZTtkZWZhdWx0OmM9MTticmVhayBlfWM/Yz0wOihhW2Y+PjJdPTEyLGM9MSl9fX1lbHNlIGM9MX13aGlsZSgwKTty''@;'; put 'put ''ZXR1cm4gMHxjfWZ1bmN0aW9uIFlLKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixBPTAsdz0wLGs9MDtiPTcyKyhjfD0wKXwwO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYoKDB8KHc9cC1mfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbZj4+MF0sMHwoYz0o''@;'; put 'put ''Yz0wfGZlW2YrMT4+MF0pPDwyND4+MjQ/MHxmMChjLEEpOjB8WHRbYisoMjU1JkEpPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOms9MTA7YnJlYWsgZTtjYXNlIDY6az05O2JyZWFrIHQ7Y2FzZSA3Oms9MTk7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDpmPWYrMnwwO2NvbnRpbnVlIHQ7Y2Fz''@;'; put 'put ''ZSAxMzpjYXNlIDEyOmlmKEE9ZisyfDAsKDB8Yyk9PSgwfGwpKXtrPTEyO2JyZWFrIGV9Zj1BO2NvbnRpbnVlIHR9fWlmKDkhPSgwfGspKWlmKDE5IT0oMHxrKSk7ZWxzZXtpZihrPTAsKDB8dyk8NCl7Zj0tMjticmVha31mPWYrNHwwfWVsc2V7aWYoaz0wLCgwfHcpPDMpe2Y9LTI7YnJlYWt9''@;'; put 'put ''Zj1mKzN8MH19ZTpkb3tpZigxMD09KDB8aykpYVttPj4yXT1mLGY9MDtlbHNlIGlmKDEyPT0oMHxrKSlpZigocC1BfDApPjEpe3N3aXRjaChhW20+PjJdPUEscD0wfGZlW2YrMz4+MF0sZj0wfGZlW0E+PjBdLDB8KGY9cDw8MjQ+PjI0PzB8ZjAocCxmKTowfFh0W2IrKDI1NSZmKT4+MF0pKXtj''@;'; put 'put ''YXNlIDIwOmNhc2UgMzA6Y2FzZSAxMTpjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmY9Mjc7YnJlYWsgZX1mPTB9ZWxzZSBmPS0yN313aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIEwxZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgYixtPTAsQT0wLHc9MCxrPTA7Yj1mfD0wO2U6ZG97''@;'; put 'put ''aWYoKGItY3wwKT4xKXN3aXRjaChtPTB8ZmVbYysxPj4wXSxtPW08PDI0Pj4yND8wfGYwKG0sMHxmZVtjPj4wXSk6MHxYdFtsKzcyKygwfFh0W2M+PjBdKT4+MF0sMHxtKXtjYXNlIDI3Om09MHx6SyhsLGMrMnwwLGYscCk7YnJlYWsgZTtjYXNlIDIwOmFbcD4+Ml09YysyLG09MzM7YnJlYWsg''@;'; put 'put ''ZTtjYXNlIDI0OmNhc2UgMjI6dz1sKzcyfDA7dDpmb3IoOzspe2lmKCgwfChmPWItKEE9YysyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChsPTB8ZmVbQT4+MF0sMHwobT0obT0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChtLGwpOjB8WHRbdysoMjU1JmwpPj4wXSkpe2Nhc2Ug''@;'; put 'put ''MjQ6Y2FzZSAyMjpjPUE7YnJlYWs7Y2FzZSAzMDprPTE1O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpicmVhayB0O2RlZmF1bHQ6az0yMjticmVhayB0fX1pZigyMj09KDB8aykpe2FbcD4+Ml09QSxtPTA7YnJlYWsgZX10OmRve2lmKDE1PT0oMHxrKSl7aWYoKDB8Zik8PTMpe209''@;'; put 'put ''LTE7YnJlYWsgZX1zd2l0Y2gobT0wfGZlW2MrND4+MF0sMHwobT0obD0wfGZlW2MrNT4+MF0pPDwyND4+MjQ/MHxmMChsLG0pOjB8WHRbdysoMjU1Jm0pPj4wXSkpe2Nhc2UgMzA6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpicmVhaztkZWZhdWx0OmJyZWFrIHR9YVtwPj4yXT1BLG09MDticmVh''@;'; put 'put ''ayBlfX13aGlsZSgwKTthW3A+PjJdPUEsbT0xNjticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfWVsc2UgbT0tMX13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIE8xZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDt3PShmfD0wKS0oY3w9MCl8''@;'; put 'put ''MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2M+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2M+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYodz0yNTUmQSkpJmFbNTY5NDArKCh3Pj4+NXwoMHxY''@;'; put 'put ''dFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGY9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMs''@;'; put 'put ''Zj0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGV9bD1sKzcyfDAsYj1jO3Q6Zm9yKDs7KXtpZihtPWIsKDB8KGM9Zi0oYj1iKzJ8MCl8MCkpPD0xKXtmPS0yMDticmVhayBlfXN3aXRjaChBPTB8ZmVbYj4+MF0sMHwodz0obT0w''@;'; put 'put ''fGZlW20rMz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbbCsoMjU1JkEpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpjb250aW51ZSB0O2Nhc2UgNTptPTIyO2JyZWFrIHQ7Y2FzZSA2Om09MjM7YnJlYWsgdDtjYXNlIDc6bT0yNTticmVhayB0O2Nh''@;'; put 'put ''c2UgMzY6Y2FzZSAzMDpjYXNlIDExOmNhc2UgMzI6Y2FzZSAyMTpjYXNlIDEwOmNhc2UgOTptPTI3O2JyZWFrIHQ7Y2FzZSAyOTpicmVhaztkZWZhdWx0Om09Mjg7YnJlYWsgdH1pZighKDE8PCgzMSYoYz0yNTUmQSkpJmFbNTY5NDArKChjPj4+NXwoMHxYdFsxNDQwNDQrKDI1NSZtKT4+MF0p''@;'; put 'put ''PDwzKTw8Mik+PjJdKSl7bT0yMTticmVha319aWYoMjE9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDIyPT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha31pZigyMz09KDB8bSkpe2lmKCgwfGMpPDMpe2Y9LTI7YnJlYWt9YVtwPj4yXT1iLGY9MDticmVha31pZigyNT09KDB8bSkp''@;'; put 'put ''e2lmKCgwfGMpPDQpe2Y9LTI7YnJlYWt9YVtwPj4yXT1iLGY9MDticmVha31pZigyNz09KDB8bSkpe2FbcD4+Ml09YixmPTIwO2JyZWFrfWlmKDI4PT0oMHxtKSl7YVtwPj4yXT1iLGY9MDticmVha319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gVUsobCxjLGYpe3Jl''@;'; put 'put ''dHVybiBsfD0wLGN8PTAsLTE9PSgwfChmPTB8ZkwoZnw9MCkpKT9mPTA6KGZlW2wrNjk+PjBdPWYsYVtsPj4yXT02NyxhW2wrND4+Ml09NjgsYVtsKzQ4Pj4yXT0zMSxhW2wrNzI+PjJdPWMsYVtjPj4yXT1sLGY9MSksMHxmfWZ1bmN0aW9uIGZMKGwpe2x8PTA7dmFyIGM9MDtlOmRve2lmKGwp''@;'; put 'put ''Zm9yKGM9MDs7KXtpZigoMHxjKT49Nil7Yz0tMTticmVhayBlfWlmKDB8Q2oobCwwfGFbNjAwNjgrKGM8PDIpPj4yXSkpYnJlYWsgZTtjPWMrMXwwfWVsc2UgYz02fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24geWoobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxB''@;'; put 'put ''fD0wO3ZhciB3PTAsYj0wLGs9MCxNPTA7ZTpkb3tpZihwPj4+MDxtPj4+MCl7TT0wfGFbYys3Mj4+Ml0sdz1wKzF8MDt0OmRve2lmKCgwfHcpIT0oMHxtKSl7Yj02NTUzNSYoKDI1NSYoaz0wfGZlW3A+PjBdKSk8PDh8MjU1Jih3PTB8ZmVbdz4+MF0pKTtuOmRve2lmKGI8PDE2Pj4xNjwtMil7''@;'; put 'put ''aWYoYjw8MTY+PjE2Pj0tMjU3KXtpZihiPDwxNj4+MTYhPS0yNTcpYnJlYWsgbjtpZigxPT0oMHxmKSYwPT0oMHxmZVtjKzY5Pj4wXSkpYnJlYWsgdDthW0E+PjJdPXArMixhW00+PjJdPWFbbCsxNj4+Ml0sdz0xNDticmVhayBlfWlmKGI8PDE2Pj4xNiE9LTQxNjUpYnJlYWsgbjtpZigxPT0o''@;'; put 'put ''MHxmKSlzd2l0Y2goMHxmZVtjKzY5Pj4wXSl7Y2FzZSAwOmNhc2UgMzpjYXNlIDQ6Y2FzZSA1OmJyZWFrIHR9aWYoKDB8KHc9cCsyfDApKT09KDB8bSkpe3c9LTE7YnJlYWsgZX1pZigtNjUhPSgwfGZlW3c+PjBdKSlicmVhayB0O2FbQT4+Ml09cCszLGFbTT4+Ml09YVtsKzg+PjJdLHc9MTQ7''@;'; put 'put ''YnJlYWsgZX1pZihiPDwxNj4+MTY8MTUzNjApe2lmKGI8PDE2Pj4xNiE9LTIpYnJlYWsgbjtpZigxPT0oMHxmKSYwPT0oMHxmZVtjKzY5Pj4wXSkpYnJlYWsgdDthW0E+PjJdPXArMixhW00+PjJdPWFbbCsyMD4+Ml0sdz0xNDticmVhayBlfWlmKGI8PDE2Pj4xNiE9MTUzNjApYnJlYWsgbjtp''@;'; put 'put ''Zigodz0wfGZlW2MrNjk+PjBdKTw8MjQ+PjI0PT00KXtpZigxPT0oMHxmKSlicmVhayB0fWVsc2UgaWYoMT09KDB8Zikmdzw8MjQ+PjI0PT0zKWJyZWFrIHQ7YVtNPj4yXT13PTB8YVtsKzIwPj4yXSx3PTB8cTBbMTI3JmFbdysoZjw8Mik+PjJdXSh3LHAsbSxBKTticmVhayBlfXdoaWxlKDAp''@;'; put 'put ''O2lmKGs8PDI0Pj4yNCl7aWYoMT09KDB8Zil8dzw8MjQ+PjI0IT0wKWJyZWFrO2FbTT4+Ml09dz0wfGFbbCsyMD4+Ml0sdz0wfHEwWzEyNyZhW3crKGY8PDIpPj4yXV0odyxwLG0sQSk7YnJlYWsgZX1pZigxPT0oMHxmKSYmNT09KDB8ZmVbYys2OT4+MF0pKWJyZWFrO2FbTT4+Ml09dz0wfGFb''@;'; put 'put ''bCsxNj4+Ml0sdz0wfHEwWzEyNyZhW3crKGY8PDIpPj4yXV0odyxwLG0sQSk7YnJlYWsgZX1pZigoKCh3PTB8ZmVbYys2OT4+MF0pPDwyND4+MjQpLTN8MCk+Pj4wPDMpe3c9LTE7YnJlYWsgZX1zd2l0Y2goMHxmZVtwPj4wXSl7Y2FzZSA2MDpjYXNlIDA6dz0tMTticmVhayBlO2Nhc2UtMTc6''@;'; put 'put ''Y2FzZS0xOmNhc2UtMjpicmVhaztkZWZhdWx0OmJyZWFrIHR9aWYoISgxPT0oMHxmKSZ3PDwyND4+MjQ9PTApKXt3PS0xO2JyZWFrIGV9fXdoaWxlKDApO2FbTT4+Ml09dz0wfGFbbCsoZmVbYys2OT4+MF08PDIpPj4yXSx3PTB8cTBbMTI3JmFbdysoZjw8Mik+PjJdXSh3LHAsbSxBKX1lbHNl''@;'; put 'put ''IHc9LTR9d2hpbGUoMCk7cmV0dXJuIDB8d31mdW5jdGlvbiBfaihsLGMsZixwKXtsfD0wLHB8PTA7dmFyIGssQT0wLHc9MCxiPTA7dz0oaz1mfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfCgoYj0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoYixBPTB8ZmVbYysxPj4w''@;'; put 'put ''XSk6MHxYdFtsKzcyKygyNTUmKEE9MHxmZVtjKzE+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYodz0yNTUmQSkpJmFbNTY5NDArKCh3Pj4+NXwoMHxYdFsxNDM3ODgrKDI1NSZiKT4+MF0pPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLGw9MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6''@;'; put 'put ''Y2FzZSAyMjpicmVhaztjYXNlIDU6ZGVmYXVsdDphW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSA2OmlmKCgwfHcpPDMpe2w9LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSA3OmlmKCgwfHcpPDQpe2w9LTI7YnJlYWsgZX1hW3A+PjJdPWMsbD0wO2JyZWFrIGU7Y2FzZSAx''@;'; put 'put ''OTpsPTB8WjFlKGwsYysyfDAsZixwKTticmVhayBlfWI9bCs3MnwwLHc9Yzt0OmZvcig7Oyl7aWYoKDB8KGM9ay0oQT13KzJ8MCl8MCkpPD0xKXtsPS0xO2JyZWFrIGV9c3dpdGNoKGY9MHxmZVt3KzM+PjBdLDB8KChsPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChsLGYpOjB8WHRbYisoMjU1''@;'; put 'put ''JmYpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjp3PUE7Y29udGludWUgdDtjYXNlIDU6Zj0yMzticmVhayB0O2Nhc2UgNjpmPTI0O2JyZWFrIHQ7Y2FzZSA3OmY9MjY7YnJlYWsgdDtjYXNlIDE4OmY9Mjg7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1''@;'; put 'put ''bHQ6Zj0yOTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZmKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1JmwpPj4wXSk8PDMpPDwyKT4+Ml0pKXtmPTIyO2JyZWFrfXc9QX1pZigyMj09KDB8Zikpe2FbcD4+Ml09QSxsPTA7YnJlYWt9aWYoMjM9PSgwfGYpKXthW3A+PjJd''@;'; put 'put ''PUEsbD0wO2JyZWFrfWlmKDI0PT0oMHxmKSl7aWYoKDB8Yyk8Myl7bD0tMjticmVha31hW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDI2PT0oMHxmKSl7aWYoKDB8Yyk8NCl7bD0tMjticmVha31hW3A+PjJdPUEsbD0wO2JyZWFrfWlmKDI4PT0oMHxmKSl7YVtwPj4yXT13KzQsbD05O2JyZWFrfWlm''@;'; put 'put ''KDI5PT0oMHxmKSl7YVtwPj4yXT1BLGw9MDticmVha319ZWxzZSBsPS0xfXdoaWxlKDApO3JldHVybiAwfGx9ZnVuY3Rpb24gajFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfCht''@;'; put 'put ''PShiPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2MrMT4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJihrPTI1NSZBKSkmYVs1Njk0MCsoKGs+Pj41fCgwfFh0WzE0Mzc4OCsoMjU1JmIpPj4wXSk8PDMpPDwy''@;'; put 'put ''KT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8''@;'; put 'put ''NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDMwOmNhc2UgOTpjYXNlIDEwOmNhc2UgMjE6YVtwPj4yXT1jLGY9MjI7YnJlYWsgZX1rPWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKCgwfChjPWYtKGI9bCsyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChB''@;'; put 'put ''PTB8ZmVbbCszPj4wXSwwfCh3PShtPTB8ZmVbYj4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpsPWI7Y29udGludWUgdDtjYXNlIDU6bT0yMzticmVhayB0O2Nhc2UgNjptPTI0O2JyZWFr''@;'; put 'put ''IHQ7Y2FzZSA3Om09MjY7YnJlYWsgdDtjYXNlIDE4Om09Mjg7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6bT0yOTticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZBKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1Jm0pPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIyO2Jy''@;'; put 'put ''ZWFrfWw9Yn1pZigyMj09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjM9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI0PT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI2PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjti''@;'; put 'put ''cmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI4PT0oMHxtKSl7YVtwPj4yXT1sKzQsZj0yODticmVha31pZigyOT09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFoxZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2''@;'; put 'put ''YXIgYixtPTAsQT0wLHc9MDtiPWZ8PTA7ZTpkb3tpZigoYi1jfDApPjEpe0E9MHxmZVtjPj4wXSxtPTB8ZmVbYysxPj4wXTtkb3tpZighKEE8PDI0Pj4yNCkpe2lmKG08PDI0Pj4yND09MTIwKXttPTB8bkFlKGwsYysyfDAsZixwKTticmVhayBlfW09MHxYdFtsKzcyKygyNTUmbSk+PjBdO2Jy''@;'; put 'put ''ZWFrfW09MHxmMChBLG0pfXdoaWxlKDApO2lmKDI1IT0oMHxtKSl7YVtwPj4yXT1jLG09MDticmVha313PWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKChiLShBPWwrMnwwKXwwKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChmPTB8ZmVbbCszPj4wXSwwfChtPShtPTB8ZmVbQT4+MF0pPDwyND4+''@;'; put 'put ''MjQ/MHxmMChtLGYpOjB8WHRbdysoMjU1JmYpPj4wXSkpe2Nhc2UgMjU6bD1BO2JyZWFrO2Nhc2UgMTg6Zj0xNTticmVhayB0O2RlZmF1bHQ6Zj0xNjticmVhayB0fX1pZigxNT09KDB8Zikpe2FbcD4+Ml09bCs0LG09MTA7YnJlYWt9aWYoMTY9PSgwfGYpKXthW3A+PjJdPUEsbT0wO2JyZWFr''@;'; put 'put ''fX1lbHNlIG09LTF9d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBuQWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7ZTpkb3tpZigoZi1jfDApPjEpe2lmKDI0IT0oLTImKG09KG09MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKG0sMHxmZVtjKzE+PjBd''@;'; put 'put ''KTowfFh0W2wrNzIrKDB8WHRbYysxPj4wXSk+PjBdKXwwKSl7YVtwPj4yXT1jLGY9MDticmVha313PWwrNzJ8MDt0OmZvcig7Oyl7aWYoKGYtKEE9YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKGw9MHxmZVtjKzM+PjBdLDB8KG09KG09MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYw''@;'; put 'put ''KG0sbCk6MHxYdFt3KygyNTUmbCk+PjBdKSl7Y2FzZSAyNDpjYXNlIDI1OmM9QTticmVhaztjYXNlIDE4Om09MTM7YnJlYWsgdDtkZWZhdWx0Om09MTQ7YnJlYWsgdH19aWYoMTM9PSgwfG0pKXthW3A+PjJdPWMrNCxmPTEwO2JyZWFrfWlmKDE0PT0oMHxtKSl7YVtwPj4yXT1BLGY9MDticmVh''@;'; put 'put ''a319ZWxzZSBmPS0xfXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gckFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDt3PShSPWZ8PTApLShjfD0wKXwwO2U6ZG97aWYoKDB8dyk+MSl7c3dpdGNoKDB8KG09KGI9MHxmZVtjPj4wXSk8''@;'; put 'put ''PDI0Pj4yND8wfGYwKGIsQT0wfGZlW2MrMT4+MF0pOjB8WHRbbCs3MisoMjU1JihBPTB8ZmVbYysxPj4wXSkpPj4wXSkpe2Nhc2UgMjk6aWYoISgxPDwoMzEmKE09MjU1JkEpKSZhWzU2OTQwKygoTT4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1jLG09''@;'; put 'put ''MDticmVhayBlfWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDU6YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNjppZigoMHx3KTwzKXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNzppZigoMHx3KTw0KXttPS0yO2JyZWFrIGV9YVtwPj4yXT1jLG09''@;'; put 'put ''MDticmVhayBlO2Nhc2UgMTY6aWYoKFItKEE9YysyfDApfDApPD0xKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8KG09KG09MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYwKG0sMHxmZVtjKzM+PjBdKTowfFh0W2wrNzIrKDB8WHRbYyszPj4wXSk+PjBdKSl7Y2FzZSAyNzptPTB8ejFlKGwsYys0fDAs''@;'; put 'put ''ZixwKTticmVhayBlO2Nhc2UgMjA6bT0wfEcxZShjKzR8MCxmLHApO2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPUEsbT0wO2JyZWFrIGV9Y2FzZSAxNTptPTB8WEsobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAxNzptPTB8VzFlKGwsYysyfDAsZixwKTticmVhayBlO2RlZmF1bHQ6YVtwPj4y''@;'; put 'put ''XT1jLG09MDticmVhayBlfU09bCs3MnwwLGs9MCxtPWMrMnwwO3Q6Zm9yKDs7KXtuOmZvcig7Oyl7aWYoKDB8KEE9Ui1tfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChiPTB8ZmVbbSsxPj4wXSwwfChjPSh3PTB8ZmVbbT4+MF0pPDwyND4+MjQ/MHxmMCh3LGIpOjB8WHRbTSsoMjU1JmIp''@;'; put 'put ''Pj4wXSkpe2Nhc2UgNTpEPTM0O2JyZWFrIHQ7Y2FzZSA2OkQ9MzU7YnJlYWsgdDtjYXNlIDc6RD0zNzticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6RD01NTticmVhayB0O2Nhc2UgMTE6RD02OTticmVhayB0O2Nhc2UgMTc6YnJlYWsgdDtjYXNlIDIzOmJyZWFrIG47Y2FzZSAyOTpp''@;'; put 'put ''ZighKDE8PCgzMSYoYz0yNTUmYikpJmFbNTY5NDArKChjPj4+NXxYdFsxNDQwNDQrKDI1NSZ3KT4+MF08PDMpPDwyKT4+Ml0pKXtEPTMyO2JyZWFrIHR9YnJlYWs7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2RlZmF1bHQ6RD03NTticmVhayB0fW09bSsy''@;'; put 'put ''fDB9aWYoMHxrKXtEPTQwO2JyZWFrfWlmKCgwfChrPVItKGM9bSsyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbbSszPj4wXSwwfChiPShBPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8WHRbTSsoMjU1JncpPj4wXSkpe2Nhc2UgNTpEPTQ5O2JyZWFrIHQ7''@;'; put 'put ''Y2FzZSA2OkQ9NTA7YnJlYWsgdDtjYXNlIDc6RD01MjticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGs9MjU1JncpKSZhWzU2OTQwKygoaz4+PjV8WHRbMTQzNzg4KygyNTUmQSk+PjBdPDwzKTw8Mik+PjJdKSl7RD00NzticmVhayB0fWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjpicmVhaztk''@;'; put 'put ''ZWZhdWx0OkQ9NTQ7YnJlYWsgdH1rPTEsbT1tKzR8MH10OnN3aXRjaCgwfEQpe2Nhc2UgMzI6Y2FzZSAzNDpjYXNlIDQwOmNhc2UgNzU6YVtwPj4yXT1tLG09MDticmVhayBlO2Nhc2UgMzU6aWYoKDB8QSk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09bSxtPTA7YnJlYWsgZTtjYXNlIDM3Omlm''@;'; put 'put ''KCgwfEEpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPW0sbT0wO2JyZWFrIGU7Y2FzZSA0NzpjYXNlIDQ5OmNhc2UgNTQ6YVtwPj4yXT1jLG09MDticmVhayBlO2Nhc2UgNTA6aWYoKDB8ayk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09YyxtPTA7YnJlYWsgZTtjYXNlIDUyOmlmKCgwfGspPDQp''@;'; put 'put ''e209LTI7YnJlYWsgZX1hW3A+PjJdPWMsbT0wO2JyZWFrIGU7Y2FzZSA1NTpuOmZvcig7Oyl7aWYoRD0wLCgwfCh3PVItKEE9bSsyfDApfDApKTw9MSl7bT0tMTticmVhayBlfXN3aXRjaChjPTB8ZmVbbSszPj4wXSwwfChrPShiPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChiLGMpOjB8WHRb''@;'; put 'put ''TSsoMjU1JmMpPj4wXSkpe2Nhc2UgMTE6bT1BLEQ9Njk7YnJlYWsgdDtjYXNlIDE3Om09QTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT1BLEQ9NTU7YnJlYWs7Y2FzZSAyOTpEPTYwO2JyZWFrIG47Y2FzZSAyNDpjYXNlIDIyOmJyZWFrIG47Y2FzZSA1OkQ9NjM7YnJlYWsgbjtj''@;'; put 'put ''YXNlIDY6RD02NDticmVhayBuO2Nhc2UgNzpEPTY2O2JyZWFrIG47ZGVmYXVsdDpEPTY4O2JyZWFrIG59fWlmKDYwPT0oMHxEKSl7aWYoISgxPDwoMzEmKFI9MjU1JmMpKSZhWzU2OTQwKygoUj4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7YVtwPj4yXT1BLG09MDti''@;'; put 'put ''cmVhayBlfX1lbHNle2lmKDYzPT0oMHxEKSl7YVtwPj4yXT1BLG09MDticmVhayBlfWlmKDY0PT0oMHxEKSl7aWYoKDB8dyk8Myl7bT0tMjticmVhayBlfWFbcD4+Ml09QSxtPTA7YnJlYWsgZX1pZig2Nj09KDB8RCkpe2lmKCgwfHcpPDQpe209LTI7YnJlYWsgZX1hW3A+PjJdPUEsbT0wO2Jy''@;'; put 'put ''ZWFrIGV9aWYoNjg9PSgwfEQpKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9fW09MHxZMWUobCxtKzR8MCxmLHApO2JyZWFrIGV9aWYoNjk9PSgwfEQpKXthW3A+PjJdPW0rMixtPTI7YnJlYWt9aWYoKFItKEE9bSsyfDApfDApPjEpe2lmKDA9PSgwfGZlW0E+PjBdKSYmNjI9PSgwfGZlW20rMz4+''@;'; put 'put ''MF0pKXthW3A+PjJdPW0rNCxtPTQ7YnJlYWt9YVtwPj4yXT1BLG09MH1lbHNlIG09LTF9ZWxzZSBtPS0xfXdoaWxlKDApO3JldHVybiAwfG19ZnVuY3Rpb24gejFlKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciB3LG09MCxBPTAsYj0wO3c9Znw9MDtlOmRve2lmKCh3LWN8MCk+MSl7aWYo''@;'; put 'put ''MD09KDB8ZmVbYz4+MF0pJiY0NT09KDB8ZmVbYysxPj4wXSkpe0E9bCs3MnwwLG09YysyfDA7dDpmb3IoOzspe2lmKCgwfChjPXctbXwwKSk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2gobD0wfGZlW20rMT4+MF0sMHwoZj0oZj0wfGZlW20+PjBdKTw8MjQ+PjI0PzB8ZjAoZixsKTowfFh0W0Er''@;'; put 'put ''KDI1NSZsKT4+MF0pKXtjYXNlIDg6Y2FzZSAxOmNhc2UgMDpiPTE2O2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6bT1tKzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxjKTwzKXtmPS0yO2JyZWFrIGV9bT1tKzN8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxjKTw0KXtmPS0yO2JyZWFrIGV9''@;'; put 'put ''bT1tKzR8MDtjb250aW51ZSB0O2Nhc2UgMjc6aWYoKHctKGY9bSsyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtmPj4wXSl7bT1mO2NvbnRpbnVlIHR9aWYoNDU9PSgwfGZlW20rMz4+MF0pKWJyZWFrIHQ7bT1mO2NvbnRpbnVlIHR9fWlmKDE2PT0oMHxiKSl7YVtwPj4yXT1tLGY9''@;'; put 'put ''MDticmVha31pZigody0oZj1tKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWt9aWYoMD09KDB8ZmVbZj4+MF0pJiY2Mj09KDB8ZmVbbSs1Pj4wXSkpe2FbcD4+Ml09bSs2LGY9MTM7YnJlYWt9YVtwPj4yXT1mLGY9MDticmVha31hW3A+PjJdPWMsZj0wfWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4g''@;'; put 'put ''MHxmfWZ1bmN0aW9uIEcxZShsLGMsZil7aWYoZnw9MCwoKGN8PTApLShsfD0wKXwwKT4xMSl7Zm9yKGM9MDs7KXtpZigoMHxjKT49Nil7Yz04O2JyZWFrfWlmKDB8ZmVbbD4+MF0pe2M9MDticmVha31pZigoMHxmZVtsKzE+PjBdKSE9KDB8ZmVbMTQ0MzAwK2M+PjBdKSl7Yz0wO2JyZWFrfWM9''@;'; put 'put ''YysxfDAsbD1sKzJ8MH1hW2Y+PjJdPWx9ZWxzZSBjPS0xO3JldHVybiAwfGN9ZnVuY3Rpb24gWEsobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBELFIsRyxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtHPWxlLGxlPWxlKzE2fDAsUj1HLEE9KEQ9Znw9MCktKGN8PTApfDA7ZTpkb3tpZigoMHxBKT4x''@;'; put 'put ''KXtzd2l0Y2goMHwoZj0odz0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAodyxtPTB8ZmVbYysxPj4wXSk6MHxYdFtsKzcyKygyNTUmKG09MHxmZVtjKzE+PjBdKSk+PjBdKSl7Y2FzZSAyOTppZighKDE8PCgzMSYoaz0yNTUmbSkpJmFbNTY5NDArKChrPj4+NXxYdFsxNDM3ODgrKDI1NSZ3KT4+''@;'; put 'put ''MF08PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8QSk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6''@;'; put 'put ''aWYoKDB8QSk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1rPWwrNzJ8MCxiPWM7dDpmb3IoOzspe2lmKCgwfChtPUQtKGY9YisyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaCh3PTB8ZmVbYiszPj4wXSwwfChsPShBPTB8ZmVbZj4+MF0pPDwyND4+MjQ/MHxm''@;'; put 'put ''MChBLHcpOjB8WHRbaysoMjU1JncpPj4wXSkpe2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpiPWY7Y29udGludWUgdDtjYXNlIDU6TT0yMjticmVhayB0O2Nhc2UgNjpNPTIzO2JyZWFrIHQ7Y2FzZSA3Ok09MjU7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIx''@;'; put 'put ''Ok09Mjc7YnJlYWsgdDtjYXNlIDE1Ok09NDY7YnJlYWsgdDtjYXNlIDI5OmJyZWFrO2RlZmF1bHQ6YnJlYWsgdH1pZighKDE8PCgzMSYoYj0yNTUmdykpJmFbNTY5NDArKChiPj4+NXxYdFsxNDQwNDQrKDI1NSZBKT4+MF08PDMpPDwyKT4+Ml0pKXtNPTIxO2JyZWFrfWI9Zn1pZigyMT09KDB8''@;'; put 'put ''TSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9aWYoMjI9PSgwfE0pKXthW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDIzPT0oMHxNKSl7aWYoKDB8bSk8Myl7Zj0tMjticmVha31hW3A+PjJdPWYsZj0wO2JyZWFrfWlmKDI1PT0oMHxNKSl7aWYoKDB8bSk8NCl7Zj0tMjticmVha31hW3A+PjJdPWYsZj0w''@;'; put 'put ''O2JyZWFrfWlmKDI3PT0oMHxNKSl7aWYoISgwfEtLKGMsZixSKSkpe2FbcD4+Ml09ZixmPTA7YnJlYWt9dz1iKzR8MDt0OmZvcig7Oyl7aWYoKDB8KEE9RC13fDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChtPTB8ZmVbdysxPj4wXSwwfChmPShmPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxm''@;'; put 'put ''MChmLG0pOjB8WHRbaysoMjU1Jm0pPj4wXSkpe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOk09NDA7YnJlYWsgdDtjYXNlIDU6ZGVmYXVsdDp3PXcrMnwwO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfEEpPDMpe2Y9LTI7YnJlYWsgZX13PXcrM3wwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfEEpPDQp''@;'; put 'put ''e2Y9LTI7YnJlYWsgZX13PXcrNHwwO2NvbnRpbnVlIHQ7Y2FzZSAxNTppZigoRC0oZj13KzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2Y+PjBdKXt3PWY7Y29udGludWUgdH1pZig2Mj09KDB8ZmVbdyszPj4wXSkpe009NDQ7YnJlYWsgdH13PWY7Y29udGludWUgdH19aWYoNDA9''@;'; put 'put ''PSgwfE0pKXthW3A+PjJdPXcsZj0wO2JyZWFrfWlmKDQ0PT0oMHxNKSl7YVtwPj4yXT13KzQsZj0wfGFbUj4+Ml07YnJlYWt9fWVsc2UgaWYoNDY9PSgwfE0pKXtpZighKDB8S0soYyxmLFIpKSl7YVtwPj4yXT1mLGY9MDticmVha31pZigoRC0oZj1iKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWt9''@;'; put 'put ''aWYoMD09KDB8ZmVbZj4+MF0pJiY2Mj09KDB8ZmVbYis1Pj4wXSkpe2FbcD4+Ml09Yis2LGY9MHxhW1I+PjJdO2JyZWFrfX1hW3A+PjJdPWYsZj0wfWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gbGU9RywwfGZ9ZnVuY3Rpb24gVzFlKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgbT0wLEE9MCx3''@;'; put 'put ''PTAsYj0wLGs9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDI1NSYoQT0wfGZlW2MrMT4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJihr''@;'; put 'put ''PTI1NSZBKSkmYVs1Njk0MCsoKGs+Pj41fCgwfFh0WzE0Mzc4OCsoMjU1JmIpPj4wXSk8PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8''@;'; put 'put ''dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1rPWwrNzJ8MCxsPWM7dDpmb3IoOzspe2lmKCgwfChjPWYtKHc9bCsyfDApfDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRj''@;'; put 'put ''aChBPTB8ZmVbbCszPj4wXSwwfChiPShtPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMjM6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmw9dztjb250aW51ZSB0O2Nhc2UgNTptPTIyO2JyZWFrIHQ7Y2FzZSA2''@;'; put 'put ''Om09MjM7YnJlYWsgdDtjYXNlIDc6bT0yNTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6bT0yNzticmVhayB0O2Nhc2UgMTE6bT0zNDticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDptPTM1O2JyZWFrIHR9aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2OTQwKygoYz4+PjV8''@;'; put 'put ''KDB8WHRbMTQ0MDQ0KygyNTUmbSk+PjBdKTw8Myk8PDIpPj4yXSkpe209MjE7YnJlYWt9bD13fWlmKDIxPT0oMHxtKSl7YVtwPj4yXT13LGY9MDticmVha31pZigyMj09KDB8bSkpe2FbcD4+Ml09dyxmPTA7YnJlYWt9aWYoMjM9PSgwfG0pKXtpZigoMHxjKTwzKXtmPS0yO2JyZWFrfWFbcD4+''@;'; put 'put ''Ml09dyxmPTA7YnJlYWt9aWYoMjU9PSgwfG0pKXtpZigoMHxjKTw0KXtmPS0yO2JyZWFrfWFbcD4+Ml09dyxmPTA7YnJlYWt9aWYoMjc9PSgwfG0pKXt0OmZvcig7Oyl7aWYoKGYtKGI9dysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVt3KzM+PjBdLDB8KG09KG09MHxm''@;'; put 'put ''ZVtiPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTp3PWIsbT0yNzticmVhaztjYXNlIDExOm09MzI7YnJlYWsgdDtkZWZhdWx0Om09MzM7YnJlYWsgdH19aWYoMzI9PSgwfG0pKXthW3A+PjJdPXcrNCxmPTU7YnJlYWt9''@;'; put 'put ''aWYoMzM9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfX1lbHNle2lmKDM0PT0oMHxtKSl7YVtwPj4yXT1sKzQsZj01O2JyZWFrfWlmKDM1PT0oMHxtKSl7YVtwPj4yXT13LGY9MDticmVha319fWVsc2UgZj0tMX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIFkxZShsLGMsZixwKXts''@;'; put 'put ''fD0wLGZ8PTAscHw9MDt2YXIgRCxHLHEscGUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wO3BlPWxlLGxlPWxlKzE2fDAsYVsoRz1wZSk+PjJdPWN8PTAscT1mLEQ9bCs3MnwwLG09MDtlOmZvcig7Oyl7dDpmb3IoOzspe2lmKCgwfChrPXEtY3wwKSk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0''@;'; put 'put ''Y2godz0wfGZlW2MrMT4+MF0sMHwoYj0oQT0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoQSx3KTowfFh0W0QrKDI1NSZ3KT4+MF0pKXtjYXNlIDU6Uj0xMTticmVhayBlO2Nhc2UgNjpSPTEyO2JyZWFrIGU7Y2FzZSA3OlI9MTQ7YnJlYWsgZTtjYXNlIDIzOlI9MTY7YnJlYWsgdDtjYXNlIDEw''@;'; put 'put ''OmNhc2UgOTpjYXNlIDIxOlI9MzE7YnJlYWsgdDtjYXNlIDE0OlI9Mzc7YnJlYWsgdDtjYXNlIDI5OmlmKCEoMTw8KDMxJihNPTI1NSZ3KSkmYVs1Njk0MCsoKE0+Pj41fFh0WzE0NDA0NCsoMjU1JkEpPj4wXTw8Myk8PDIpPj4yXSkpe1I9OTticmVhayBlfWJyZWFrO2Nhc2UgMjc6Y2FzZSAy''@;'; put 'put ''NjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OlI9ODk7YnJlYWsgZX1hW0c+PjJdPU09YysyfDAsYz1NfXQ6ZG97aWYoMTY9PSgwfFIpKXtpZihSPTAsMHxtKXtSPTE3O2JyZWFrIGV9aWYoYVtHPj4yXT1tPWMrMnwwLCgwfCh3PXEtKEE9bSl8MCkpPD0xKXtjPS0xO2Jy''@;'; put 'put ''ZWFrIGV9c3dpdGNoKGs9MHxmZVtjKzM+PjBdLDB8KE09KGI9MHxmZVttPj4wXSk8PDI0Pj4yND8wfGYwKGIsayk6MHxYdFtEKygyNTUmayk+PjBdKSl7Y2FzZSA1OlI9MjU7YnJlYWsgZTtjYXNlIDY6Uj0yNjticmVhayBlO2Nhc2UgNzpSPTI4O2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOm09''@;'; put 'put ''MTticmVhayB0O2Nhc2UgMjk6YnJlYWs7ZGVmYXVsdDpSPTMwO2JyZWFrIGV9aWYoISgxPDwoMzEmKE09MjU1JmspKSZhWzU2OTQwKygoTT4+PjV8WHRbMTQzNzg4KygyNTUmYik+PjBdPDwzKTw8Mik+PjJdKSl7Uj0yNDticmVhayBlfW09MX1lbHNlIGlmKDMxPT0oMHxSKSlmb3IoOzspe2lm''@;'; put 'put ''KFI9MCxhW0c+PjJdPUE9YysyfDAsKHEtKHc9QSl8MCk8PTEpe2M9LTE7YnJlYWsgZX1zd2l0Y2goYz0wfGZlW2MrMz4+MF0sMHwoYz0obT0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAobSxjKTowfFh0W0QrKDI1NSZjKT4+MF0pKXtjYXNlIDE0OmM9QSxSPTM3O2JyZWFrIHQ7Y2FzZSA5OmNh''@;'; put 'put ''c2UgMTA6Y2FzZSAyMTpjPUEsUj0zMTticmVhaztkZWZhdWx0OlI9MzY7YnJlYWsgZX19fXdoaWxlKDApO3Q6ZG97aWYoMzc9PSgwfFIpKXtmb3IoOzspe2lmKFI9MCxhW0c+PjJdPXc9YysyfDAsKHEtKGI9dyl8MCk8PTEpe2M9LTE7YnJlYWsgZX1pZihBPTB8ZmVbYyszPj4wXSwxMz09KDF8''@;'; put 'put ''KGs9KG09MHxmZVt3Pj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtEKygyNTUmQSk+PjBdKSkpYnJlYWs7c3dpdGNoKDB8ayl7Y2FzZSA5OmNhc2UgMTA6Y2FzZSAyMTpjPXcsUj0zNzticmVhaztkZWZhdWx0OlI9NDM7YnJlYWsgZX19YVtHPj4yXT1jPWMrNHwwO246Zm9yKDs7KXtpZigo''@;'; put 'put ''MHwodz1xLWN8MCkpPD0xKXtjPS0xO2JyZWFrIGV9aWYoQT0wfGZlW2MrMT4+MF0sKDB8KG09KG09MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtEKygyNTUmQSk+PjBdKSk9PSgwfGspKWJyZWFrO3N3aXRjaCgwfG0pe2Nhc2UgODpjYXNlIDE6Y2FzZSAwOlI9NTY7YnJlYWsg''@;'; put 'put ''ZTtjYXNlIDI6Uj02MTticmVhayBlO2Nhc2UgNTpkZWZhdWx0OmFbRz4+Ml09TT1jKzJ8MCxjPU07Y29udGludWUgbjtjYXNlIDY6aWYoKDB8dyk8Myl7Yz0tMjticmVhayBlfWFbRz4+Ml09TT1jKzN8MCxjPU07Y29udGludWUgbjtjYXNlIDc6aWYoKDB8dyk8NCl7Yz0tMjticmVhayBlfWFb''@;'; put 'put ''Rz4+Ml09TT1jKzR8MCxjPU07Y29udGludWUgbjtjYXNlIDM6aWYoKDB8KGM9MHxfaihsLGMrMnwwLGYsRykpKTwxKXtSPTU5O2JyZWFrIGV9Yz0wfGFbRz4+Ml07Y29udGludWUgbn19aWYoYVtHPj4yXT1BPWMrMnwwLChxLShiPUEpfDApPD0xKXtjPS0xO2JyZWFrIGV9c3dpdGNoKHc9MHxm''@;'; put 'put ''ZVtjKzM+PjBdLDB8KG09KG09MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYwKG0sdyk6MHxYdFtEKygyNTUmdyk+PjBdKSl7Y2FzZSAxMTpSPTgxO2JyZWFrIGU7Y2FzZSAxNzpSPTgyO2JyZWFrIGU7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjPUE7YnJlYWs7ZGVmYXVsdDpSPTY4O2JyZWFrIGV9''@;'; put 'put ''bjpmb3IoOzspe2lmKGFbRz4+Ml09QT1jKzJ8MCwoMHwodz1xLShtPUEpfDApKTw9MSl7Yz0tMTticmVhayBlfXN3aXRjaChrPTB8ZmVbYyszPj4wXSwwfChNPShiPTB8ZmVbQT4+MF0pPDwyND4+MjQ/MHxmMChiLGspOjB8WHRbRCsoMjU1JmspPj4wXSkpe2Nhc2UgNTpSPTc2O2JyZWFrIGU7''@;'; put 'put ''Y2FzZSA2OlI9Nzc7YnJlYWsgZTtjYXNlIDc6Uj03OTticmVhayBlO2Nhc2UgMTE6Uj04MTticmVhayBlO2Nhc2UgMTc6Uj04MjticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjptPTA7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIxOmM9QTticmVhaztjYXNlIDI5OmJyZWFrIG47ZGVmYXVs''@;'; put 'put ''dDpSPTg3O2JyZWFrIGV9fWlmKCEoMTw8KDMxJihNPTI1NSZrKSkmYVs1Njk0MCsoKE0+Pj41fFh0WzE0Mzc4OCsoMjU1JmIpPj4wXTw8Myk8PDIpPj4yXSkpe1I9NzU7YnJlYWsgZX1tPTB9fXdoaWxlKDApO2FbRz4+Ml09Yz1jKzR8MH1zd2l0Y2goMHxSKXtjYXNlIDk6Y2FzZSAxMTpjYXNl''@;'; put 'put ''IDE3OmNhc2UgNTY6Y2FzZSA2MTpjYXNlIDg5OmFbcD4+Ml09YyxjPTA7YnJlYWs7Y2FzZSAxMjooMHxrKTwzP2M9LTI6KGFbcD4+Ml09YyxjPTApO2JyZWFrO2Nhc2UgMTQ6KDB8ayk8ND9jPS0yOihhW3A+PjJdPWMsYz0wKTticmVhaztjYXNlIDI0OmNhc2UgMjU6Y2FzZSA4NzphW3A+PjJd''@;'; put 'put ''PW0sYz0wO2JyZWFrO2Nhc2UgMjY6KDB8dyk8Mz9jPS0yOihhW3A+PjJdPW0sYz0wKTticmVhaztjYXNlIDI4OigwfHcpPDQ/Yz0tMjooYVtwPj4yXT1tLGM9MCk7YnJlYWs7Y2FzZSAzMDpjYXNlIDc1OmNhc2UgNzY6YVtwPj4yXT1BLGM9MDticmVhaztjYXNlIDM2OmFbcD4+Ml09dyxjPTA7''@;'; put 'put ''YnJlYWs7Y2FzZSA0MzpjYXNlIDY4OmFbcD4+Ml09YixjPTA7YnJlYWs7Y2FzZSA1OTpjfHwoYVtwPj4yXT1hW0c+PjJdLGM9MCk7YnJlYWs7Y2FzZSA3NzooMHx3KTwzP2M9LTI6KGFbcD4+Ml09QSxjPTApO2JyZWFrO2Nhc2UgNzk6KDB8dyk8ND9jPS0yOihhW3A+PjJdPUEsYz0wKTticmVh''@;'; put 'put ''aztjYXNlIDgxOmFbcD4+Ml09Yys0LGM9MTticmVhaztjYXNlIDgyOmlmKGFbRz4+Ml09bT1BKzJ8MCwocS0oYz1tKXwwKT4xKXtpZigwPT0oMHxmZVttPj4wXSkmJjYyPT0oMHxmZVtBKzM+PjBdKSl7YVtwPj4yXT1BKzQsYz0zO2JyZWFrfWFbcD4+Ml09YyxjPTB9ZWxzZSBjPS0xfXJldHVy''@;'; put 'put ''biBsZT1wZSwwfGN9ZnVuY3Rpb24gS0sobCxjLGYpe2x8PTAsY3w9MCxhWyhmfD0wKT4+Ml09MTE7ZTpkb3tpZig2PT0oYy1sfDApJiYwPT0oMHxmZVtsPj4wXSkpe3N3aXRjaCgwfGZlW2wrMT4+MF0pe2Nhc2UgMTIwOmM9MDticmVhaztjYXNlIDg4OmM9MTticmVhaztkZWZhdWx0OmM9MTti''@;'; put 'put ''cmVhayBlfWlmKDB8ZmVbbCsyPj4wXSljPTE7ZWxzZXtzd2l0Y2goMHxmZVtsKzM+PjBdKXtjYXNlIDEwOTpicmVhaztjYXNlIDc3OmM9MTticmVhaztkZWZhdWx0OmM9MTticmVhayBlfWlmKDB8ZmVbbCs0Pj4wXSljPTE7ZWxzZXtzd2l0Y2goMHxmZVtsKzU+PjBdKXtjYXNlIDEwODpicmVh''@;'; put 'put ''aztjYXNlIDc2OmM9MDticmVhayBlO2RlZmF1bHQ6Yz0xO2JyZWFrIGV9Yz9jPTA6KGFbZj4+Ml09MTIsYz0xKX19fWVsc2UgYz0xfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gbmQobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLEE9MCx3PTAsaz0wO2I9NzIrKGN8''@;'; put 'put ''PTApfDA7ZTpmb3IoOzspe3Q6Zm9yKDs7KXtpZigoMHwodz1wLWZ8MCkpPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVtmKzE+PjBdLDB8KEE9KGM9MHxmZVtmPj4wXSk8PDI0Pj4yND8wfGYwKGMsQSk6MHxYdFtiKygyNTUmQSk+PjBdKSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6az0x''@;'; put 'put ''MDticmVhayBlO2Nhc2UgNjprPTk7YnJlYWsgdDtjYXNlIDc6az0xOTticmVhayB0O2Nhc2UgNTpkZWZhdWx0OmY9ZisyfDA7Y29udGludWUgdDtjYXNlIDEzOmNhc2UgMTI6aWYoYz1mKzJ8MCwoMHxBKT09KDB8bCkpe2s9MTI7YnJlYWsgZX1mPWM7Y29udGludWUgdH19aWYoOSE9KDB8aykp''@;'; put 'put ''aWYoMTkhPSgwfGspKTtlbHNle2lmKGs9MCwoMHx3KTw0KXtmPS0yO2JyZWFrfWY9Zis0fDB9ZWxzZXtpZihrPTAsKDB8dyk8Myl7Zj0tMjticmVha31mPWYrM3wwfX1lOmRve2lmKDEwPT0oMHxrKSlhW20+PjJdPWYsZj0wO2Vsc2UgaWYoMTI9PSgwfGspKWlmKChwLWN8MCk+MSl7c3dpdGNo''@;'; put 'put ''KGFbbT4+Ml09YyxmPTB8ZmVbZiszPj4wXSwwfChmPShwPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChwLGYpOjB8WHRbYisoMjU1JmYpPj4wXSkpe2Nhc2UgMjA6Y2FzZSAzMDpjYXNlIDExOmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Zj0yNzticmVhayBlfWY9MH1lbHNlIGY9LTI3fXdoaWxl''@;'; put 'put ''KDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gaEwobCxjLGYscCl7bHw9MCxjfD0wLHB8PTA7dmFyIGIsbT0wLEE9MCx3PTAsaz0wO2I9Znw9MDtlOmRve2lmKChiLWN8MCk+MSlzd2l0Y2gobT0wfGZlW2M+PjBdLG09bTw8MjQ+PjI0PzB8ZjAobSwwfGZlW2MrMT4+MF0pOjB8WHRbbCs3MisoMHxY''@;'; put 'put ''dFtjKzE+PjBdKT4+MF0sMHxtKXtjYXNlIDI3Om09MHx6MWUobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAyMDphW3A+PjJdPWMrMixtPTMzO2JyZWFrIGU7Y2FzZSAyNDpjYXNlIDIyOnc9bCs3MnwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1iLShBPWMrMnwwKXwwKSk8PTEpe209LTE7YnJlYWsg''@;'; put 'put ''ZX1zd2l0Y2gobD0wfGZlW2MrMz4+MF0sMHwobT0obT0wfGZlW0E+PjBdKTw8MjQ+PjI0PzB8ZjAobSxsKTowfFh0W3crKDI1NSZsKT4+MF0pKXtjYXNlIDI0OmNhc2UgMjI6Yz1BO2JyZWFrO2Nhc2UgMzA6az0xNTticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6YnJlYWsgdDtkZWZh''@;'; put 'put ''dWx0Oms9MjI7YnJlYWsgdH19aWYoMjI9PSgwfGspKXthW3A+PjJdPUEsbT0wO2JyZWFrIGV9dDpkb3tpZigxNT09KDB8aykpe2lmKCgwfGYpPD0zKXttPS0xO2JyZWFrIGV9c3dpdGNoKG09MHxmZVtjKzU+PjBdLDB8KG09KGw9MHxmZVtjKzQ+PjBdKTw8MjQ+PjI0PzB8ZjAobCxtKTowfFh0''@;'; put 'put ''W3crKDI1NSZtKT4+MF0pKXtjYXNlIDMwOmNhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6YnJlYWs7ZGVmYXVsdDpicmVhayB0fWFbcD4+Ml09QSxtPTA7YnJlYWsgZX19d2hpbGUoMCk7YVtwPj4yXT1BLG09MTY7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09YyxtPTA7YnJlYWsgZX1lbHNlIG09LTF9''@;'; put 'put ''d2hpbGUoMCk7cmV0dXJuIDB8bX1mdW5jdGlvbiBydihsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDt3PShmfD0wKS0oY3w9MCl8MDtlOmRve2lmKCgwfHcpPjEpe3N3aXRjaCgwfChtPShiPTB8ZmVbYz4+MF0pPDwyND4+MjQ/MHxmMChiLEE9MHxmZVtjKzE+PjBdKTow''@;'; put 'put ''fFh0W2wrNzIrKDI1NSYoQT0wfGZlW2MrMT4+MF0pKT4+MF0pKXtjYXNlIDI5OmlmKCEoMTw8KDMxJih3PTI1NSZBKSkmYVs1Njk0MCsoKHc+Pj41fCgwfFh0WzE0Mzc4OCsoMjU1JmIpPj4wXSk8PDMpPDwyKT4+Ml0pKXthW3A+PjJdPWMsZj0wO2JyZWFrIGV9YnJlYWs7Y2FzZSAyNDpjYXNl''@;'; put 'put ''IDIyOmJyZWFrO2Nhc2UgNTpkZWZhdWx0OmFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDY6aWYoKDB8dyk8Myl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKDB8dyk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZX1sPWwrNzJ8MCxi''@;'; put 'put ''PWM7dDpmb3IoOzspe2lmKG09YiwoMHwoYz1mLShiPWIrMnwwKXwwKSk8PTEpe2Y9LTIwO2JyZWFrIGV9c3dpdGNoKG09MHxmZVttKzM+PjBdLDB8KEE9KHc9MHxmZVtiPj4wXSk8PDI0Pj4yND8wfGYwKHcsbSk6MHxYdFtsKygyNTUmbSk+PjBdKSl7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6''@;'; put 'put ''Y2FzZSAyNDpjYXNlIDIyOmNvbnRpbnVlIHQ7Y2FzZSA1Om09MjI7YnJlYWsgdDtjYXNlIDY6bT0yMzticmVhayB0O2Nhc2UgNzptPTI1O2JyZWFrIHQ7Y2FzZSAzNjpjYXNlIDMwOmNhc2UgMTE6Y2FzZSAzMjpjYXNlIDIxOmNhc2UgMTA6Y2FzZSA5Om09Mjc7YnJlYWsgdDtjYXNlIDI5OmJy''@;'; put 'put ''ZWFrO2RlZmF1bHQ6bT0yODticmVhayB0fWlmKCEoMTw8KDMxJihjPTI1NSZtKSkmYVs1Njk0MCsoKGM+Pj41fCgwfFh0WzE0NDA0NCsoMjU1JncpPj4wXSk8PDMpPDwyKT4+Ml0pKXttPTIxO2JyZWFrfX1pZigyMT09KDB8bSkpe2FbcD4+Ml09YixmPTA7YnJlYWt9aWYoMjI9PSgwfG0pKXth''@;'; put 'put ''W3A+PjJdPWIsZj0wO2JyZWFrfWlmKDIzPT0oMHxtKSl7aWYoKDB8Yyk8Myl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI1PT0oMHxtKSl7aWYoKDB8Yyk8NCl7Zj0tMjticmVha31hW3A+PjJdPWIsZj0wO2JyZWFrfWlmKDI3PT0oMHxtKSl7YVtwPj4yXT1iLGY9MjA7YnJl''@;'; put 'put ''YWt9aWYoMjg9PSgwfG0pKXthW3A+PjJdPWIsZj0wO2JyZWFrfX1lbHNlIGY9LTF9d2hpbGUoMCk7cmV0dXJuIDB8Zn1mdW5jdGlvbiBDaihsLGMpe2x8PTAsY3w9MDt2YXIgZj0wLHA9MCxtPTAsQT0wO2U6Zm9yKDs7KXN3aXRjaChtPTB8ZmVbbD4+MF0sQT0wfGZlW2M+PjBdLG09KG0rLTk3''@;'; put 'put ''JjI1NSk8MjY/MjI0KygyNTUmbSkmMjU1Om0sMyYobTw8MjQ+PjI0PT0oKEErLTk3JjI1NSk8MjY/MjI0KygyNTUmQSkmMjU1OkEpPDwyND4+MjQ/bTw8MjQ+PjI0PT0wPzI6MDoxKSl7Y2FzZSAwOmM9YysxfDAsbD1sKzF8MDticmVhaztjYXNlIDE6cD0zO2JyZWFrIGU7Y2FzZSAyOmY9MTti''@;'; put 'put ''cmVhayBlO2RlZmF1bHQ6cD01O2JyZWFrIGV9cmV0dXJuIDM9PSgwfHApJiYoZj0wKSwwfGZ9ZnVuY3Rpb24gbWcobCxjLGYscCxtLEEsdyxiLGssTSxEKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLGJ8PTAsa3w9MCxNfD0wLER8PTA7dmFyIEcscSxwZSxPZSxMZSxSZSxS''@;'; put 'put ''PTAsZ2U9MCxiZT0wO1JlPWxlLGxlPWxlKzE2fDAsT2U9UmUrOHwwLEc9UmUrNHwwLHE9UmUsYVsocGU9UmUrMTJ8MCk+PjJdPTAsYVtHPj4yXT0wLGFbcT4+Ml09MCxhW09lPj4yXT1nZT1wKyg1KihiZT0wfGFbKExlPWYrNjR8MCk+PjJdKXwwKXwwLGdlPTAhPSgwfGtqKGYsZ2UsYmU9bSso''@;'; put 'put ''MC0oYmU8PDEpKXwwLEcscSxwZSxPZSkpLHA9Uj0wfGFbRz4+Ml07ZTpkb3tpZihnZSYwIT0oMHxSKSl7Z2U9ZisyNHwwLG09MHxhW3E+PjJdO2Rve2lmKDB8cTBbMTI3JmFbZ2U+PjJdXShmLFIsbSwxNDQzNDApKXtpZigwfHcmJihhW3c+PjJdPWFbcGU+PjJdKSxiP2FbYj4+Ml09cD0wfGFb''@;'; put 'put ''T2U+PjJdOnA9MHxhW09lPj4yXSwhKDB8a2ooZixwLGJlLEcscSxwZSxPZSkpKXthW0E+PjJdPWFbT2U+PjJdLHA9MDticmVhayBlfWlmKDB8KG09MHxhW0c+PjJdKSl7cD1tLFI9bSxtPTB8YVtxPj4yXTticmVha31pZighYyl7cD0xO2JyZWFrIGV9YVtBPj4yXT1hW09lPj4yXSxwPTA7YnJl''@;'; put 'put ''YWsgZX1pZighYyl7YVtBPj4yXT1wLHA9MDticmVhayBlfX13aGlsZSgwKTtpZigwfHEwWzEyNyZhW2dlPj4yXV0oZixSLG0sMTQ0MzQ4KSl7aWYocD1tPTB8YVtwZT4+Ml0sKCgtMzMmKDB8czgoZixtLGJlKSkpLTY1fDApPj4+MD49MjYpe2FbQT4+Ml09cCxwPTA7YnJlYWt9aWYoMHxrJiYo''@;'; put 'put ''YVtrPj4yXT1wKSxwPTB8YVtPZT4+Ml0sMHxNJiYoYVtNPj4yXT0wfG1pWzYzJmxdKGYsbSxwKygwLSgwfGFbTGU+PjJdKSl8MCkpLCEoMHxraihmLHAsYmUsRyxxLHBlLE9lKSkpe2FbQT4+Ml09YVtPZT4+Ml0scD0wO2JyZWFrfWlmKCEocD0wfGFbRz4+Ml0pKXtwPTE7YnJlYWt9Uj1wLG09''@;'; put 'put ''MHxhW3E+PjJdfWlmKDAhPSgwfGMpfDA9PSgwfHEwWzEyNyZhW2dlPj4yXV0oZixSLG0sMTQ0MzU3KSkpe2FbQT4+Ml09cCxwPTA7YnJlYWt9aWYoUj1tPTB8YVtwZT4+Ml0sMHxxMFsxMjcmYVtnZT4+Ml1dKGYsbSwocD0wfGFbT2U+PjJdKSsoMC0oMHxhW0xlPj4yXSkpfDAsMTA3NjU3KSlE''@;'; put 'put ''JiYoYVtEPj4yXT0xKTtlbHNle2lmKCEoMHxxMFsxMjcmYVtnZT4+Ml1dKGYsbSxwKygwLSgwfGFbTGU+PjJdKSl8MCwxMDc2NDkpKSl7YVtBPj4yXT1SLHA9MDticmVha31EJiYoYVtEPj4yXT0wKX1mb3IoOzB8bmEoMHxzOChmLHAsYmUpKTspcD1wKygwfGFbTGU+PjJdKXwwO2FbT2U+PjJd''@;'; put 'put ''PXAsKDB8cCk9PSgwfGJlKT9wPTE6KGFbQT4+Ml09cCxwPTApfWVsc2UgYVtBPj4yXT1hW09lPj4yXSxwPTB9d2hpbGUoMCk7cmV0dXJuIGxlPVJlLDB8cH1mdW5jdGlvbiBraihsLGMsZixwLG0sQSx3KXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wO3ZhciBiPTAsaz0wO2U6''@;'; put 'put ''ZG97aWYoKDB8YykhPSgwfGYpKXtpZighKDB8bmEoMHxzOChsLGMsZikpKSl7YVt3Pj4yXT1jLGM9MDticmVha31rPWwrNjR8MDtkb3tjPWMrKDB8YVtrPj4yXSl8MH13aGlsZSgwIT0oMHxuYSgwfHM4KGwsYyxmKSkpKTtpZigoMHxjKT09KDB8Zikpe2FbcD4+Ml09MCxjPTE7YnJlYWt9YVtw''@;'; put 'put ''Pj4yXT1jO3Q6Zm9yKDs7KXtzd2l0Y2goMHwoYj0wfHM4KGwsYyxmKSkpe2Nhc2UtMTpiPTExO2JyZWFrIHQ7Y2FzZSA2MTpiPTEyO2JyZWFrIHR9aWYoMHxuYShiKSl7Yj0xNDticmVha31jPWMrKDB8YVtrPj4yXSl8MH1pZigxMT09KDB8Yikpe2Fbdz4+Ml09YyxjPTA7YnJlYWt9aWYoMTI9''@;'; put 'put ''PSgwfGIpKWFbbT4+Ml09YztlbHNlIGlmKDE0PT0oMHxiKSl7YVttPj4yXT1jO2Rve2I9MHxzOChsLGM9YysoMHxhW2s+PjJdKXwwLGYpfXdoaWxlKDAhPSgwfG5hKGIpKSk7aWYoNjEhPSgwfGIpKXthW3c+PjJdPWMsYz0wO2JyZWFrfX1pZigoMHxjKT09KDB8YVtwPj4yXSkpe2Fbdz4+Ml09''@;'; put 'put ''YyxjPTA7YnJlYWt9ZG97Yj0wfHM4KGwsYz1jKygwfGFbaz4+Ml0pfDAsZil9d2hpbGUoMCE9KDB8bmEoYikpKTtzd2l0Y2goMHxiKXtjYXNlIDM0OmNhc2UgMzk6YnJlYWs7ZGVmYXVsdDphW3c+PjJdPWMsYz0wO2JyZWFrIGV9YVtBPj4yXT1tPWMrKDB8YVtrPj4yXSl8MCxjPWI8PDI0Pj4y''@;'; put 'put ''NDt0OmZvcig7Oyl7aWYoKDB8KGI9MHxzOChsLG0sZikpKT09KDB8Yykpe2I9MzA7YnJlYWt9aWYoKGIrLTQ4fDApPj4+MD45JigoLTMzJmIpLTY1fDApPj4+MD4yNSlzd2l0Y2goMHxiKXtjYXNlIDQ1OmNhc2UgNDY6Y2FzZSA5NTpicmVhaztkZWZhdWx0OmI9Mjg7YnJlYWsgdH1tPW0rKDB8''@;'; put 'put ''YVtrPj4yXSl8MH1pZigyOD09KDB8Yikpe2Fbdz4+Ml09bSxjPTA7YnJlYWt9aWYoMzA9PSgwfGIpKXthW3c+PjJdPW0rKDB8YVtrPj4yXSksYz0xO2JyZWFrfX1lbHNlIGFbcD4+Ml09MCxjPTF9d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBzOChsLGMsZil7dmFyIHAsbSxBLHc7cmV0''@;'; put 'put ''dXJuIGx8PTAsZnw9MCxBPWxlLGxlPWxlKzE2fDAscD1BKzh8MCxtPUEsYVsodz1BKzR8MCk+PjJdPWN8PTAsYVttPj4yXT1wLFIyWzEyNyZhW2wrNTY+PjJdXShsLHcsZixtLHArMXwwKSxsZT1BLDB8KCgwfGFbbT4+Ml0pPT0oMHxwKT8tMTowfGZlW3A+PjBdKX1mdW5jdGlvbiBuYShsKXtz''@;'; put 'put ''d2l0Y2goMHwobHw9MCkpe2Nhc2UgOTpjYXNlIDEwOmNhc2UgMTM6Y2FzZSAzMjpsPTE7YnJlYWs7ZGVmYXVsdDpsPTB9cmV0dXJuIDB8bH1mdW5jdGlvbiBqYShsLGMpe3JldHVybiAyOD09KDB8KGN8PTApKSYwPT0oMHxhWzE2KyhsfD0wKT4+Ml0pP2w9NTk6KGFbbD4+Ml09MTgsbD0tMSks''@;'; put 'put ''MHxsfWZ1bmN0aW9uIGUkKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UtNDpjYXNlIDE1Omw9MDticmVhaztjYXNlIDE2OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZisoYVsodz1tKzY0fDAp''@;'; put 'put ''Pj4yXTw8MSl8MCxwLDE0NDM5MCkpe2FbbD4+Ml09MjQsbD0xMTticmVhayBlfWlmKDB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoYVt3Pj4yXTw8MSl8MCxwLDE0NDM5Nykpe2FbbD4+Ml09MjUsbD0zMzticmVhayBlfWlmKDB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoYVt3Pj4yXTw8MSl8MCxwLDE0''@;'; put 'put ''NDQwNSkpe2FbbD4+Ml09MjYsbD0zOTticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoYVt3Pj4yXTw8MSl8MCxwLDE0NDQxMyk/KGFbbD4+Ml09MjcsbD0xNyk6Yj0xNDticmVhaztjYXNlIDExOmw9NTU7YnJlYWs7Y2FzZSAxMzpsPTU2O2JyZWFrO2Nhc2UgMjg6bD02MDticmVhaztj''@;'; put 'put ''YXNlIDI2OmFbbD4+Ml09MjgsbD0zO2JyZWFrO2RlZmF1bHQ6Yj0xNH19d2hpbGUoMCk7cmV0dXJuIDE0PT0oMHxiKSYmKGw9MHxqYShsLGMpKSwwfGx9ZnVuY3Rpb24gRjAobCl7bHw9MDt2YXIgVmUsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0w''@;'; put 'put ''LHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTA7VmU9bGUsbGU9bGUrMTZ8MCxxPVZlO2Rve2lmKGw+Pj4wPDI0NSl7aWYoMyYoZj0oRz0wfGFbNDc1MTldKT4+PihsPShEPWw+Pj4wPDExPzE2OmwrMTEmLTgpPj4+MykpfDApcmV0dXJuKDB8KEE9MHxhWyhtPTgrKHA9MHxhWyhm''@;'; put 'put ''PTgrKGw9MTkwMTE2KygoYz0oMSZmXjEpK2x8MCk8PDE8PDIpfDApfDApPj4yXSl8MCk+PjJdKSk9PSgwfGwpP2FbNDc1MTldPUcmfigxPDxjKTooYVtBKzEyPj4yXT1sLGFbZj4+Ml09QSksYVtwKzQ+PjJdPTN8KEhlPWM8PDMpLGFbKEhlPXArSGUrNHwwKT4+Ml09MXxhW0hlPj4yXSxsZT1W''@;'; put 'put ''ZSwwfG07aWYoRD4+PjA+KFI9MHxhWzQ3NTIxXSk+Pj4wKXtpZigwfGYpcmV0dXJuIGM9KChjPWY8PGwmKChjPTI8PGwpfDAtYykpJjAtYyktMXwwLCgwfChmPTB8YVsoYj04KyhBPTB8YVsobD04KyhjPTE5MDExNisoKHA9KChmPShjPj4+PWI9Yz4+PjEyJjE2KT4+PjUmOCl8YnwoQT0oYz4+''@;'; put 'put ''Pj1mKT4+PjImNCl8KGw9KGM+Pj49QSk+Pj4xJjIpfChwPShjPj4+PWwpPj4+MSYxKSkrKGM+Pj5wKXwwKTw8MTw8Mil8MCl8MCk+PjJdKXwwKT4+Ml0pKT09KDB8Yyk/YVs0NzUxOV09bD1HJn4oMTw8cCk6KGFbZisxMj4+Ml09YyxhW2w+PjJdPWYsbD1HKSx3PShIZT1wPDwzKS1EfDAsYVtB''@;'; put 'put ''KzQ+PjJdPTN8RCxhWzQrKG09QStEfDApPj4yXT0xfHcsYVtBK0hlPj4yXT13LDB8UiYmKHA9MHxhWzQ3NTI0XSxmPTE5MDExNisoKGM9Uj4+PjMpPDwxPDwyKXwwLGwmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYrOHwwKSxhW2w+PjJdPXAsYVtj''@;'; put 'put ''KzEyPj4yXT1wLGFbcCs4Pj4yXT1jLGFbcCsxMj4+Ml09ZiksYVs0NzUyMV09dyxhWzQ3NTI0XT1tLGxlPVZlLDB8YjtpZihrPTB8YVs0NzUyMF0pe2lmKGY9KGsmMC1rKS0xfDAsZj0oLTgmYVs0KyhsPTB8YVsxOTAzODArKCgodz0oZj4+Pj1iPWY+Pj4xMiYxNik+Pj41JjgpfGJ8KE09KGY+''@;'; put 'put ''Pj49dyk+Pj4yJjQpfChwPShmPj4+PU0pPj4+MSYyKXwobD0oZj4+Pj1wKT4+PjEmMSkpKyhmPj4+bCk8PDIpPj4yXSk+PjJdKS1EfDAscD0wfGFbbCsxNisoKDA9PSgwfGFbbCsxNj4+Ml0pJjEpPDwyKT4+Ml0pe2Rve2Y9KE09KGI9KC04JmFbcCs0Pj4yXSktRHwwKT4+PjA8Zj4+PjApP2I6''@;'; put 'put ''ZixsPU0/cDpsLHA9MHxhW3ArMTYrKCgwPT0oMHxhW3ArMTY+PjJdKSYxKTw8Mik+PjJdfXdoaWxlKDAhPSgwfHApKTtNPWwsdz1mfWVsc2UgTT1sLHc9ZjtpZigoYj1NK0R8MCk+Pj4wPk0+Pj4wKXttPTB8YVtNKzI0Pj4yXSxjPTB8YVtNKzEyPj4yXTtkb3tpZigoMHxjKT09KDB8TSkpe2lm''@;'; put 'put ''KCEoYz0wfGFbKGw9TSsyMHwwKT4+Ml0pJiYhKGM9MHxhWyhsPU0rMTZ8MCk+PjJdKSl7Zj0wO2JyZWFrfWZvcig7OylpZigwfChwPTB8YVsoZj1jKzIwfDApPj4yXSkpYz1wLGw9ZjtlbHNle2lmKCEocD0wfGFbKGY9YysxNnwwKT4+Ml0pKWJyZWFrO2M9cCxsPWZ9YVtsPj4yXT0wLGY9Y31l''@;'; put 'put ''bHNlIGFbMTIrKGY9MHxhW00rOD4+Ml0pPj4yXT1jLGFbYys4Pj4yXT1mLGY9Y313aGlsZSgwKTtkb3tpZigwfG0pe2lmKCgwfE0pPT0oMHxhWyhsPTE5MDM4MCsoKGM9MHxhW00rMjg+PjJdKTw8Mil8MCk+PjJdKSl7aWYoYVtsPj4yXT1mLCFmKXthWzQ3NTIwXT1rJn4oMTw8Yyk7YnJlYWt9''@;'; put 'put ''fWVsc2UgaWYoYVttKzE2KygoKDB8YVttKzE2Pj4yXSkhPSgwfE0pJjEpPDwyKT4+Ml09ZiwhZilicmVhazthW2YrMjQ+PjJdPW0sMHwoYz0wfGFbTSsxNj4+Ml0pJiYoYVtmKzE2Pj4yXT1jLGFbYysyND4+Ml09ZiksMHwoYz0wfGFbTSsyMD4+Ml0pJiYoYVtmKzIwPj4yXT1jLGFbYysyND4+''@;'; put 'put ''Ml09Zil9fXdoaWxlKDApO3JldHVybiB3Pj4+MDwxNj8oYVtNKzQ+PjJdPTN8KEhlPXcrRHwwKSxhWyhIZT1NK0hlKzR8MCk+PjJdPTF8YVtIZT4+Ml0pOihhW00rND4+Ml09M3xELGFbYis0Pj4yXT0xfHcsYVtiK3c+PjJdPXcsMHxSJiYocD0wfGFbNDc1MjRdLGY9MTkwMTE2KygoYz1SPj4+''@;'; put 'put ''Myk8PDE8PDIpfDAsRyYoYz0xPDxjKT9jPTB8YVsobD1mKzh8MCk+PjJdOihhWzQ3NTE5XT1HfGMsYz1mLGw9Zis4fDApLGFbbD4+Ml09cCxhW2MrMTI+PjJdPXAsYVtwKzg+PjJdPWMsYVtwKzEyPj4yXT1mKSxhWzQ3NTIxXT13LGFbNDc1MjRdPWIpLGxlPVZlLDB8TSs4fVI9RH1lbHNlIFI9''@;'; put 'put ''RH1lbHNlIFI9RH1lbHNlIGlmKGw+Pj4wPD00Mjk0OTY3MjMxKWlmKEQ9LTgmKGw9bCsxMXwwKSxNPTB8YVs0NzUyMF0pe3A9MC1EfDAsaz0obD4+Pj04KT9EPj4+MD4xNjc3NzIxNT8zMTpEPj4+KDcrKGs9MTQtKChSPSg1MjAxOTIrKFJlPWw8PChHPShsKzEwNDgzMjB8MCk+Pj4xNiY4KSl8''@;'; put 'put ''MCk+Pj4xNiY0KXxHfChrPSgyNDU3NjArKFJlPDw9Uil8MCk+Pj4xNiYyKSkrKFJlPDxrPj4+MTUpfDApfDApJjF8azw8MTowLGY9MHxhWzE5MDM4MCsoazw8Mik+PjJdO2U6ZG97aWYoZilmb3IobD0wLGI9Zix3PUQ8PCgzMT09KDB8ayk/MDoyNS0oaz4+PjEpfDApLGY9MDs7KXtpZigobT0o''@;'; put 'put ''LTgmYVtiKzQ+PjJdKS1EfDApPj4+MDxwPj4+MCl7aWYoIW0pe3A9MCxmPWIsbD1iLFJlPTYxO2JyZWFrIGV9bD1iLHA9bX1pZihmPTA9PSgwfChtPTB8YVtiKzIwPj4yXSkpfCgwfG0pPT0oMHwoYj0wfGFbYisxNisodz4+PjMxPDwyKT4+Ml0pKT9mOm0sbT0wPT0oMHxiKSl7UmU9NTc7YnJl''@;'; put 'put ''YWt9dzw8PTEmKDFebSl9ZWxzZSBmPTAsbD0wLFJlPTU3fXdoaWxlKDApO2lmKDU3PT0oMHxSZSkpe2lmKDA9PSgwfGYpJjA9PSgwfGwpKXtpZighKGw9TSYoKGw9Mjw8ayl8MC1sKSkpe1I9RDticmVha31HPShsJjAtbCktMXwwLGw9MCxmPTB8YVsxOTAzODArKCgodz0oRz4+Pj1iPUc+Pj4x''@;'; put 'put ''MiYxNik+Pj41JjgpfGJ8KGs9KEc+Pj49dyk+Pj4yJjQpfChSPShHPj4+PWspPj4+MSYyKXwoZj0oRz4+Pj1SKT4+PjEmMSkpKyhHPj4+Zik8PDIpPj4yXX1mP1JlPTYxOihiPWwsdz1wKX1pZig2MT09KDB8UmUpKWZvcig7Oyl7aWYoUmU9MCxwPShHPShSPSgtOCZhW2YrND4+Ml0pLUR8MCk+''@;'; put 'put ''Pj4wPHA+Pj4wKT9SOnAsbD1HP2Y6bCwhKGY9MHxhW2YrMTYrKCgwPT0oMHxhW2YrMTY+PjJdKSYxKTw8Mik+PjJdKSl7Yj1sLHc9cDticmVha31SZT02MX1pZigwIT0oMHxiKSYmdz4+PjA8KCgwfGFbNDc1MjFdKS1EfDApPj4+MCl7aWYoKEE9YitEfDApPj4+MDw9Yj4+PjApcmV0dXJuIGxl''@;'; put 'put ''PVZlLDA7bT0wfGFbYisyND4+Ml0sYz0wfGFbYisxMj4+Ml07ZG97aWYoKDB8Yyk9PSgwfGIpKXtpZighKGM9MHxhWyhsPWIrMjB8MCk+PjJdKSYmIShjPTB8YVsobD1iKzE2fDApPj4yXSkpe2M9MDticmVha31mb3IoOzspaWYoMHwocD0wfGFbKGY9YysyMHwwKT4+Ml0pKWM9cCxsPWY7ZWxz''@;'; put 'put ''ZXtpZighKHA9MHxhWyhmPWMrMTZ8MCk+PjJdKSlicmVhaztjPXAsbD1mfWFbbD4+Ml09MH1lbHNlIGFbMTIrKEhlPTB8YVtiKzg+PjJdKT4+Ml09YyxhW2MrOD4+Ml09SGV9d2hpbGUoMCk7ZG97aWYobSl7aWYoKDB8Yik9PSgwfGFbKGY9MTkwMzgwKygobD0wfGFbYisyOD4+Ml0pPDwyKXww''@;'; put 'put ''KT4+Ml0pKXtpZihhW2Y+PjJdPWMsIWMpe2FbNDc1MjBdPXA9TSZ+KDE8PGwpO2JyZWFrfX1lbHNlIGlmKGFbbSsxNisoKCgwfGFbbSsxNj4+Ml0pIT0oMHxiKSYxKTw8Mik+PjJdPWMsIWMpe3A9TTticmVha31hW2MrMjQ+PjJdPW0sMHwobD0wfGFbYisxNj4+Ml0pJiYoYVtjKzE2Pj4yXT1s''@;'; put 'put ''LGFbbCsyND4+Ml09YyksKGw9MHxhW2IrMjA+PjJdKSYmKGFbYysyMD4+Ml09bCxhW2wrMjQ+PjJdPWMpLHA9TX1lbHNlIHA9TX13aGlsZSgwKTtkb3tpZih3Pj4+MD49MTYpe2lmKGFbYis0Pj4yXT0zfEQsYVtBKzQ+PjJdPTF8dyxhW0Erdz4+Ml09dyxjPXc+Pj4zLHc+Pj4wPDI1Nil7Zj0x''@;'; put 'put ''OTAxMTYrKGM8PDE8PDIpfDAsKGw9MHxhWzQ3NTE5XSkmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYrOHwwKSxhW2w+PjJdPUEsYVtjKzEyPj4yXT1BLGFbQSs4Pj4yXT1jLGFbQSsxMj4+Ml09ZjticmVha31pZihmPTE5MDM4MCsoKGM9KGM9dz4+''@;'; put 'put ''PjgpP3c+Pj4wPjE2Nzc3MjE1PzMxOnc+Pj4oNysoYz0xNC0oKExlPSg1MjAxOTIrKEhlPWM8PChSZT0oYysxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYmNCl8UmV8KGM9KDI0NTc2MCsoSGU8PD1MZSl8MCk+Pj4xNiYyKSkrKEhlPDxjPj4+MTUpfDApfDApJjF8Yzw8MTowKTw8Mil8MCxh''@;'; put 'put ''W0ErMjg+PjJdPWMsYVs0KyhsPUErMTZ8MCk+PjJdPTAsYVtsPj4yXT0wLCEocCYobD0xPDxjKSkpe2FbNDc1MjBdPXB8bCxhW2Y+PjJdPUEsYVtBKzI0Pj4yXT1mLGFbQSsxMj4+Ml09QSxhW0ErOD4+Ml09QTticmVha31mb3IobD13PDwoMzE9PSgwfGMpPzA6MjUtKGM+Pj4xKXwwKSxmPTB8''@;'; put 'put ''YVtmPj4yXTs7KXtpZigoLTgmYVtmKzQ+PjJdfDApPT0oMHx3KSl7UmU9OTc7YnJlYWt9aWYoIShjPTB8YVsocD1mKzE2KyhsPj4+MzE8PDIpfDApPj4yXSkpe1JlPTk2O2JyZWFrfWw8PD0xLGY9Y31pZig5Nj09KDB8UmUpKXthW3A+PjJdPUEsYVtBKzI0Pj4yXT1mLGFbQSsxMj4+Ml09QSxh''@;'; put 'put ''W0ErOD4+Ml09QTticmVha31pZig5Nz09KDB8UmUpKXthWzEyKyhIZT0wfGFbKFJlPWYrOHwwKT4+Ml0pPj4yXT1BLGFbUmU+PjJdPUEsYVtBKzg+PjJdPUhlLGFbQSsxMj4+Ml09ZixhW0ErMjQ+PjJdPTA7YnJlYWt9fWVsc2UgYVtiKzQ+PjJdPTN8KEhlPXcrRHwwKSxhWyhIZT1iK0hlKzR8''@;'; put 'put ''MCk+PjJdPTF8YVtIZT4+Ml19d2hpbGUoMCk7cmV0dXJuIGxlPVZlLDB8Yis4fVI9RH1lbHNlIFI9RDtlbHNlIFI9LTF9d2hpbGUoMCk7aWYoKGY9MHxhWzQ3NTIxXSk+Pj4wPj1SPj4+MClyZXR1cm4gbD0wfGFbNDc1MjRdLChjPWYtUnwwKT4+PjA+MTU/KGFbNDc1MjRdPUhlPWwrUnwwLGFb''@;'; put 'put ''NDc1MjFdPWMsYVtIZSs0Pj4yXT0xfGMsYVtsK2Y+PjJdPWMsYVtsKzQ+PjJdPTN8Uik6KGFbNDc1MjFdPTAsYVs0NzUyNF09MCxhW2wrND4+Ml09M3xmLGFbKEhlPWwrZis0fDApPj4yXT0xfGFbSGU+PjJdKSxsZT1WZSwwfGwrODtpZigoYj0wfGFbNDc1MjJdKT4+PjA+Uj4+PjApcmV0dXJu''@;'; put 'put ''IGFbNDc1MjJdPUxlPWItUnwwLGFbNDc1MjVdPVJlPShIZT0wfGFbNDc1MjVdKStSfDAsYVtSZSs0Pj4yXT0xfExlLGFbSGUrND4+Ml09M3xSLGxlPVZlLDB8SGUrODtpZigwfGFbNDc2MzddP2w9MHxhWzQ3NjM5XTooYVs0NzYzOV09NDA5NixhWzQ3NjM4XT00MDk2LGFbNDc2NDBdPS0xLGFb''@;'; put 'put ''NDc2NDFdPS0xLGFbNDc2NDJdPTAsYVs0NzYzMF09MCxhWzQ3NjM3XT0tMTYmcV4xNDMxNjU1NzY4LGw9NDA5Niksaz1SKzQ4fDAsKEQ9KHc9bCsoTT1SKzQ3fDApfDApJihtPTAtbHwwKSk+Pj4wPD1SPj4+MHx8MHwobD0wfGFbNDc2MjldKSYmKHE9KEc9MHxhWzQ3NjI3XSkrRHwwKT4+PjA8''@;'; put 'put ''PUc+Pj4wfHE+Pj4wPmw+Pj4wKXJldHVybiBsZT1WZSwwO2U6ZG97aWYoNCZhWzQ3NjMwXSljPTAsUmU9MTMzO2Vsc2V7Zj0wfGFbNDc1MjVdO3Q6ZG97aWYoZil7Zm9yKHA9MTkwNTI0OyEoKGw9MHxhW3A+PjJdKT4+PjA8PWY+Pj4wJiYoYmU9cCs0fDAsKGwrKDB8YVtiZT4+Ml0pfDApPj4+''@;'; put 'put ''MD5mPj4+MCkpOyl7aWYoIShsPTB8YVtwKzg+PjJdKSl7UmU9MTE4O2JyZWFrIHR9cD1sfWlmKChjPXctYiZtKT4+PjA8MjE0NzQ4MzY0NylpZigoMHwobD0wfHkyKDB8YykpKT09KCgwfGFbcD4+Ml0pKygwfGFbYmU+PjJdKXwwKSl7aWYoLTEhPSgwfGwpKXt3PWMsQT1sLFJlPTEzNTticmVh''@;'; put 'put ''ayBlfX1lbHNlIHA9bCxSZT0xMjY7ZWxzZSBjPTB9ZWxzZSBSZT0xMTh9d2hpbGUoMCk7ZG97aWYoMTE4PT0oMHxSZSkpaWYoLTEhPSgwfChmPTB8eTIoMCkpKSYmKGdlPShjPSgwPT0oKGdlPShwZT0wfGFbNDc2MzhdKS0xfDApJihjPWYpfDApPzA6KGdlK2MmMC1wZSktY3wwKStEfDApKyhw''@;'; put 'put ''ZT0wfGFbNDc2MjddKXwwLGM+Pj4wPlI+Pj4wJmM+Pj4wPDIxNDc0ODM2NDcpKXtpZigwfChiZT0wfGFbNDc2MjldKSYmZ2U+Pj4wPD1wZT4+PjB8Z2U+Pj4wPmJlPj4+MCl7Yz0wO2JyZWFrfWlmKCgwfChsPTB8eTIoMHxjKSkpPT0oMHxmKSl7dz1jLEE9ZixSZT0xMzU7YnJlYWsgZX1wPWws''@;'; put 'put ''UmU9MTI2fWVsc2UgYz0wfXdoaWxlKDApO2Rve2lmKDEyNj09KDB8UmUpKXtpZihmPTAtY3wwLCEoaz4+PjA+Yz4+PjAmYz4+PjA8MjE0NzQ4MzY0NyYtMSE9KDB8cCkpKXtpZigtMT09KDB8cCkpe2M9MDticmVha313PWMsQT1wLFJlPTEzNTticmVhayBlfWlmKChsPU0tYysobD0wfGFbNDc2''@;'; put 'put ''MzldKSYwLWwpPj4+MD49MjE0NzQ4MzY0Nyl7dz1jLEE9cCxSZT0xMzU7YnJlYWsgZX1pZigtMT09KDB8eTIoMHxsKSkpe3kyKDB8ZiksYz0wO2JyZWFrfXc9bCtjfDAsQT1wLFJlPTEzNTticmVhayBlfX13aGlsZSgwKTthWzQ3NjMwXT00fGFbNDc2MzBdLFJlPTEzM319d2hpbGUoMCk7aWYo''@;'; put 'put ''MTMzPT0oMHxSZSkmJkQ+Pj4wPDIxNDc0ODM2NDcmJiEoLTE9PSgwfChBPTB8eTIoMHxEKSkpfDFeKExlPShPZT0oYmU9MHx5MigwKSktQXwwKT4+PjA+KFIrNDB8MCk+Pj4wKXxBPj4+MDxiZT4+PjAmLTEhPSgwfEEpJi0xIT0oMHxiZSleMSkmJih3PUxlP09lOmMsUmU9MTM1KSwxMzU9PSgw''@;'; put 'put ''fFJlKSl7YVs0NzYyN109Yz0oMHxhWzQ3NjI3XSkrd3wwLGM+Pj4wPigwfGFbNDc2MjhdKT4+PjAmJihhWzQ3NjI4XT1jKSxrPTB8YVs0NzUyNV07ZG97aWYoayl7Zm9yKGM9MTkwNTI0Ozspe2lmKCgwfEEpPT0oKGw9MHxhW2M+PjJdKSsocD0wfGFbKGY9Yys0fDApPj4yXSl8MCkpe1JlPTE0''@;'; put 'put ''MzticmVha31pZighKG09MHxhW2MrOD4+Ml0pKWJyZWFrO2M9bX1pZigxNDM9PSgwfFJlKSYmMD09KDgmYVtjKzEyPj4yXXwwKSYmQT4+PjA+az4+PjAmbD4+PjA8PWs+Pj4wKXthW2Y+PjJdPXArdyxSZT1rKyhMZT0wPT0oNyYoTGU9ays4fDApfDApPzA6MC1MZSY3KXwwLExlPShIZT0oMHxh''@;'; put 'put ''WzQ3NTIyXSkrd3wwKS1MZXwwLGFbNDc1MjVdPVJlLGFbNDc1MjJdPUxlLGFbUmUrND4+Ml09MXxMZSxhW2srSGUrND4+Ml09NDAsYVs0NzUyNl09YVs0NzY0MV07YnJlYWt9Zm9yKEE+Pj4wPCgwfGFbNDc1MjNdKT4+PjAmJihhWzQ3NTIzXT1BKSxsPUErd3wwLGM9MTkwNTI0Ozspe2lmKCgw''@;'; put 'put ''fGFbYz4+Ml0pPT0oMHxsKSl7UmU9MTUxO2JyZWFrfWlmKCEoYz0wfGFbYys4Pj4yXSkpe2w9MTkwNTI0O2JyZWFrfX1pZigxNTE9PSgwfFJlKSl7aWYoISg4JmFbYysxMj4+Ml0pKXthW2M+PjJdPUEsYVsoRD1jKzR8MCk+PjJdPSgwfGFbRD4+Ml0pK3csTT0oRD1BKygwPT0oNyYoRD1BKzh8''@;'; put 'put ''MCl8MCk/MDowLUQmNyl8MCkrUnwwLGI9KGM9bCsoMD09KDcmKGM9bCs4fDApfDApPzA6MC1jJjcpfDApLUQtUnwwLGFbRCs0Pj4yXT0zfFI7ZG97aWYoKDB8aykhPSgwfGMpKXtpZigoMHxhWzQ3NTI0XSk9PSgwfGMpKXthWzQ3NTIxXT1IZT0oMHxhWzQ3NTIxXSkrYnwwLGFbNDc1MjRdPU0s''@;'; put 'put ''YVtNKzQ+PjJdPTF8SGUsYVtNK0hlPj4yXT1IZTticmVha31pZigxPT0oMyYobD0wfGFbYys0Pj4yXSl8MCkpe3c9LTgmbCxwPWw+Pj4zO2U6ZG97aWYobD4+PjA8MjU2KXtpZigoMHwoZj0wfGFbYysxMj4+Ml0pKT09KDB8KGw9MHxhW2MrOD4+Ml0pKSl7YVs0NzUxOV09YVs0NzUxOV0mfigx''@;'; put 'put ''PDxwKTticmVha31hW2wrMTI+PjJdPWYsYVtmKzg+PjJdPWw7YnJlYWt9QT0wfGFbYysyND4+Ml0sbD0wfGFbYysxMj4+Ml07ZG97aWYoKDB8bCk9PSgwfGMpKXtpZighKGw9MHxhWyhmPTQrKHA9YysxNnwwKXwwKT4+Ml0pKXtpZighKGw9MHxhW3A+PjJdKSl7bD0wO2JyZWFrfWY9cH1mb3Io''@;'; put 'put ''OzspaWYoMHwobT0wfGFbKHA9bCsyMHwwKT4+Ml0pKWw9bSxmPXA7ZWxzZXtpZighKG09MHxhWyhwPWwrMTZ8MCk+PjJdKSlicmVhaztsPW0sZj1wfWFbZj4+Ml09MH1lbHNlIGFbMTIrKEhlPTB8YVtjKzg+PjJdKT4+Ml09bCxhW2wrOD4+Ml09SGV9d2hpbGUoMCk7aWYoIUEpYnJlYWs7cD0x''@;'; put 'put ''OTAzODArKChmPTB8YVtjKzI4Pj4yXSk8PDIpfDA7ZG97aWYoKDB8YVtwPj4yXSk9PSgwfGMpKXtpZihhW3A+PjJdPWwsMHxsKWJyZWFrO2FbNDc1MjBdPWFbNDc1MjBdJn4oMTw8Zik7YnJlYWsgZX1pZihhW0ErMTYrKCgoMHxhW0ErMTY+PjJdKSE9KDB8YykmMSk8PDIpPj4yXT1sLCFsKWJy''@;'; put 'put ''ZWFrIGV9d2hpbGUoMCk7aWYoYVtsKzI0Pj4yXT1BLDB8KHA9MHxhWyhmPWMrMTZ8MCk+PjJdKSYmKGFbbCsxNj4+Ml09cCxhW3ArMjQ+PjJdPWwpLCEoZj0wfGFbZis0Pj4yXSkpYnJlYWs7YVtsKzIwPj4yXT1mLGFbZisyND4+Ml09bH13aGlsZSgwKTtjPWMrd3wwLG09dytifDB9ZWxzZSBt''@;'; put 'put ''PWI7aWYoYVsoYz1jKzR8MCk+PjJdPS0yJmFbYz4+Ml0sYVtNKzQ+PjJdPTF8bSxhW00rbT4+Ml09bSxjPW0+Pj4zLG0+Pj4wPDI1Nil7Zj0xOTAxMTYrKGM8PDE8PDIpfDAsKGw9MHxhWzQ3NTE5XSkmKGM9MTw8Yyk/Yz0wfGFbKGw9Zis4fDApPj4yXTooYVs0NzUxOV09bHxjLGM9ZixsPWYr''@;'; put 'put ''OHwwKSxhW2w+PjJdPU0sYVtjKzEyPj4yXT1NLGFbTSs4Pj4yXT1jLGFbTSsxMj4+Ml09ZjticmVha31jPW0+Pj44O2Rve2lmKGMpe2lmKG0+Pj4wPjE2Nzc3MjE1KXtjPTMxO2JyZWFrfWM9bT4+Pig3KyhjPTE0LSgoTGU9KDUyMDE5MisoSGU9Yzw8KFJlPShjKzEwNDgzMjB8MCk+Pj4xNiY4''@;'; put 'put ''KSl8MCk+Pj4xNiY0KXxSZXwoYz0oMjQ1NzYwKyhIZTw8PUxlKXwwKT4+PjE2JjIpKSsoSGU8PGM+Pj4xNSl8MCl8MCkmMXxjPDwxfWVsc2UgYz0wfXdoaWxlKDApO2lmKHA9MTkwMzgwKyhjPDwyKXwwLGFbTSsyOD4+Ml09YyxhWzQrKGw9TSsxNnwwKT4+Ml09MCxhW2w+PjJdPTAsISgobD0w''@;'; put 'put ''fGFbNDc1MjBdKSYoZj0xPDxjKSkpe2FbNDc1MjBdPWx8ZixhW3A+PjJdPU0sYVtNKzI0Pj4yXT1wLGFbTSsxMj4+Ml09TSxhW00rOD4+Ml09TTticmVha31mb3IobD1tPDwoMzE9PSgwfGMpPzA6MjUtKGM+Pj4xKXwwKSxmPTB8YVtwPj4yXTs7KXtpZigoLTgmYVtmKzQ+PjJdfDApPT0oMHxt''@;'; put 'put ''KSl7UmU9MTkyO2JyZWFrfWlmKCEoYz0wfGFbKHA9ZisxNisobD4+PjMxPDwyKXwwKT4+Ml0pKXtSZT0xOTE7YnJlYWt9bDw8PTEsZj1jfWlmKDE5MT09KDB8UmUpKXthW3A+PjJdPU0sYVtNKzI0Pj4yXT1mLGFbTSsxMj4+Ml09TSxhW00rOD4+Ml09TTticmVha31pZigxOTI9PSgwfFJlKSl7''@;'; put 'put ''YVsxMisoSGU9MHxhWyhSZT1mKzh8MCk+PjJdKT4+Ml09TSxhW1JlPj4yXT1NLGFbTSs4Pj4yXT1IZSxhW00rMTI+PjJdPWYsYVtNKzI0Pj4yXT0wO2JyZWFrfX1lbHNlIGFbNDc1MjJdPUhlPSgwfGFbNDc1MjJdKStifDAsYVs0NzUyNV09TSxhW00rND4+Ml09MXxIZX13aGlsZSgwKTtyZXR1''@;'; put 'put ''cm4gbGU9VmUsMHxEKzh9bD0xOTA1MjR9Zm9yKDshKChjPTB8YVtsPj4yXSk+Pj4wPD1rPj4+MCYmKEhlPWMrKDB8YVtsKzQ+PjJdKXwwLEhlPj4+MD5rPj4+MCkpOylsPTB8YVtsKzg+PjJdO2M9KGw9KGw9KG09SGUrLTQ3fDApKygwPT0oNyYobD1tKzh8MCl8MCk/MDowLWwmNyl8MCk+Pj4w''@;'; put 'put ''PChtPWsrMTZ8MCk+Pj4wP2s6bCkrOHwwLFJlPUErKExlPTA9PSg3JihMZT1BKzh8MCl8MCk/MDowLUxlJjcpfDAsTGU9KGY9dystNDB8MCktTGV8MCxhWzQ3NTI1XT1SZSxhWzQ3NTIyXT1MZSxhW1JlKzQ+PjJdPTF8TGUsYVtBK2YrND4+Ml09NDAsYVs0NzUyNl09YVs0NzY0MV0sYVsoZj1s''@;'; put 'put ''KzR8MCk+PjJdPTI3LGFbYz4+Ml09YVs0NzYzMV0sYVtjKzQ+PjJdPWFbNDc2MzJdLGFbYys4Pj4yXT1hWzQ3NjMzXSxhW2MrMTI+PjJdPWFbNDc2MzRdLGFbNDc2MzFdPUEsYVs0NzYzMl09dyxhWzQ3NjM0XT0wLGFbNDc2MzNdPWMsYz1sKzI0fDA7ZG97UmU9YyxhWyhjPWMrNHwwKT4+Ml09''@;'; put 'put ''N313aGlsZSgoUmUrOHwwKT4+PjA8SGU+Pj4wKTtpZigoMHxsKSE9KDB8aykpe2lmKEE9bC1rfDAsYVtmPj4yXT0tMiZhW2Y+PjJdLGFbays0Pj4yXT0xfEEsYVtsPj4yXT1BLGM9QT4+PjMsQT4+PjA8MjU2KXtmPTE5MDExNisoYzw8MTw8Mil8MCwobD0wfGFbNDc1MTldKSYoYz0xPDxjKT9j''@;'; put 'put ''PTB8YVsobD1mKzh8MCk+PjJdOihhWzQ3NTE5XT1sfGMsYz1mLGw9Zis4fDApLGFbbD4+Ml09ayxhW2MrMTI+PjJdPWssYVtrKzg+PjJdPWMsYVtrKzEyPj4yXT1mO2JyZWFrfWlmKHA9MTkwMzgwKygoZj0oYz1BPj4+OCk/QT4+PjA+MTY3NzcyMTU/MzE6QT4+Pig3KyhmPTE0LSgoTGU9KDUy''@;'; put 'put ''MDE5MisoSGU9Yzw8KFJlPShjKzEwNDgzMjB8MCk+Pj4xNiY4KSl8MCk+Pj4xNiY0KXxSZXwoZj0oMjQ1NzYwKyhIZTw8PUxlKXwwKT4+PjE2JjIpKSsoSGU8PGY+Pj4xNSl8MCl8MCkmMXxmPDwxOjApPDwyKXwwLGFbaysyOD4+Ml09ZixhW2srMjA+PjJdPTAsYVttPj4yXT0wLCEoKGM9MHxh''@;'; put 'put ''WzQ3NTIwXSkmKGw9MTw8ZikpKXthWzQ3NTIwXT1jfGwsYVtwPj4yXT1rLGFbaysyND4+Ml09cCxhW2srMTI+PjJdPWssYVtrKzg+PjJdPWs7YnJlYWt9Zm9yKGw9QTw8KDMxPT0oMHxmKT8wOjI1LShmPj4+MSl8MCksZj0wfGFbcD4+Ml07Oyl7aWYoKC04JmFbZis0Pj4yXXwwKT09KDB8QSkp''@;'; put 'put ''e1JlPTIxMzticmVha31pZighKGM9MHxhWyhwPWYrMTYrKGw+Pj4zMTw8Mil8MCk+PjJdKSl7UmU9MjEyO2JyZWFrfWw8PD0xLGY9Y31pZigyMTI9PSgwfFJlKSl7YVtwPj4yXT1rLGFbaysyND4+Ml09ZixhW2srMTI+PjJdPWssYVtrKzg+PjJdPWs7YnJlYWt9aWYoMjEzPT0oMHxSZSkpe2Fb''@;'; put 'put ''MTIrKEhlPTB8YVsoUmU9Zis4fDApPj4yXSk+PjJdPWssYVtSZT4+Ml09ayxhW2srOD4+Ml09SGUsYVtrKzEyPj4yXT1mLGFbaysyND4+Ml09MDticmVha319fWVsc2UgMD09KDB8KEhlPTB8YVs0NzUyM10pKXxBPj4+MDxIZT4+PjAmJihhWzQ3NTIzXT1BKSxhWzQ3NjMxXT1BLGFbNDc2MzJd''@;'; put 'put ''PXcsYVs0NzYzNF09MCxhWzQ3NTI4XT1hWzQ3NjM3XSxhWzQ3NTI3XT0tMSxhWzQ3NTMyXT0xOTAxMTYsYVs0NzUzMV09MTkwMTE2LGFbNDc1MzRdPTE5MDEyNCxhWzQ3NTMzXT0xOTAxMjQsYVs0NzUzNl09MTkwMTMyLGFbNDc1MzVdPTE5MDEzMixhWzQ3NTM4XT0xOTAxNDAsYVs0NzUzN109''@;'; put 'put ''MTkwMTQwLGFbNDc1NDBdPTE5MDE0OCxhWzQ3NTM5XT0xOTAxNDgsYVs0NzU0Ml09MTkwMTU2LGFbNDc1NDFdPTE5MDE1NixhWzQ3NTQ0XT0xOTAxNjQsYVs0NzU0M109MTkwMTY0LGFbNDc1NDZdPTE5MDE3MixhWzQ3NTQ1XT0xOTAxNzIsYVs0NzU0OF09MTkwMTgwLGFbNDc1NDddPTE5MDE4''@;'; put 'put ''MCxhWzQ3NTUwXT0xOTAxODgsYVs0NzU0OV09MTkwMTg4LGFbNDc1NTJdPTE5MDE5NixhWzQ3NTUxXT0xOTAxOTYsYVs0NzU1NF09MTkwMjA0LGFbNDc1NTNdPTE5MDIwNCxhWzQ3NTU2XT0xOTAyMTIsYVs0NzU1NV09MTkwMjEyLGFbNDc1NThdPTE5MDIyMCxhWzQ3NTU3XT0xOTAyMjAsYVs0''@;'; put 'put ''NzU2MF09MTkwMjI4LGFbNDc1NTldPTE5MDIyOCxhWzQ3NTYyXT0xOTAyMzYsYVs0NzU2MV09MTkwMjM2LGFbNDc1NjRdPTE5MDI0NCxhWzQ3NTYzXT0xOTAyNDQsYVs0NzU2Nl09MTkwMjUyLGFbNDc1NjVdPTE5MDI1MixhWzQ3NTY4XT0xOTAyNjAsYVs0NzU2N109MTkwMjYwLGFbNDc1NzBd''@;'; put 'put ''PTE5MDI2OCxhWzQ3NTY5XT0xOTAyNjgsYVs0NzU3Ml09MTkwMjc2LGFbNDc1NzFdPTE5MDI3NixhWzQ3NTc0XT0xOTAyODQsYVs0NzU3M109MTkwMjg0LGFbNDc1NzZdPTE5MDI5MixhWzQ3NTc1XT0xOTAyOTIsYVs0NzU3OF09MTkwMzAwLGFbNDc1NzddPTE5MDMwMCxhWzQ3NTgwXT0xOTAz''@;'; put 'put ''MDgsYVs0NzU3OV09MTkwMzA4LGFbNDc1ODJdPTE5MDMxNixhWzQ3NTgxXT0xOTAzMTYsYVs0NzU4NF09MTkwMzI0LGFbNDc1ODNdPTE5MDMyNCxhWzQ3NTg2XT0xOTAzMzIsYVs0NzU4NV09MTkwMzMyLGFbNDc1ODhdPTE5MDM0MCxhWzQ3NTg3XT0xOTAzNDAsYVs0NzU5MF09MTkwMzQ4LGFb''@;'; put 'put ''NDc1ODldPTE5MDM0OCxhWzQ3NTkyXT0xOTAzNTYsYVs0NzU5MV09MTkwMzU2LGFbNDc1OTRdPTE5MDM2NCxhWzQ3NTkzXT0xOTAzNjQsUmU9QSsoTGU9MD09KDcmKExlPUErOHwwKXwwKT8wOjAtTGUmNyl8MCxMZT0oSGU9dystNDB8MCktTGV8MCxhWzQ3NTI1XT1SZSxhWzQ3NTIyXT1MZSxh''@;'; put 'put ''W1JlKzQ+PjJdPTF8TGUsYVtBK0hlKzQ+PjJdPTQwLGFbNDc1MjZdPWFbNDc2NDFdfXdoaWxlKDApO2lmKChjPTB8YVs0NzUyMl0pPj4+MD5SPj4+MClyZXR1cm4gYVs0NzUyMl09TGU9Yy1SfDAsYVs0NzUyNV09UmU9KEhlPTB8YVs0NzUyNV0pK1J8MCxhW1JlKzQ+PjJdPTF8TGUsYVtIZSs0''@;'; put 'put ''Pj4yXT0zfFIsbGU9VmUsMHxIZSs4fXJldHVybiBhWzQ3NjQzXT0xMixsZT1WZSwwfWZ1bmN0aW9uIEZ0KGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2lmKGx8PTApe209MHxhWzQ3NTIzXSxrPShmPWwrLTh8MCkrKGM9LTgmKGw9MHxhW2wrLTQ+PjJdKSl8MDtkb3tp''@;'; put 'put ''ZigxJmwpYj1mLHc9ZjtlbHNle2lmKHA9MHxhW2Y+PjJdLCEoMyZsKXx8KEE9cCtjfDAsKHc9ZisoMC1wKXwwKT4+PjA8bT4+PjApKXJldHVybjtpZigoMHxhWzQ3NTI0XSk9PSgwfHcpKXtpZigzIT0oMyYoYz0wfGFbKGw9ays0fDApPj4yXSl8MCkpe2I9dyxjPUE7YnJlYWt9cmV0dXJuIGFb''@;'; put 'put ''NDc1MjFdPUEsYVtsPj4yXT0tMiZjLGFbdys0Pj4yXT0xfEEsdm9pZChhW3crQT4+Ml09QSl9aWYoZj1wPj4+MyxwPj4+MDwyNTYpe2lmKCgwfChjPTB8YVt3KzEyPj4yXSkpPT0oMHwobD0wfGFbdys4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3NTE5XSZ+KDE8PGYpLGI9dyxjPUE7YnJlYWt9YVts''@;'; put 'put ''KzEyPj4yXT1jLGFbYys4Pj4yXT1sLGI9dyxjPUE7YnJlYWt9bT0wfGFbdysyND4+Ml0sbD0wfGFbdysxMj4+Ml07ZG97aWYoKDB8bCk9PSgwfHcpKXtpZighKGw9MHxhWyhjPTQrKGY9dysxNnwwKXwwKT4+Ml0pKXtpZighKGw9MHxhW2Y+PjJdKSl7bD0wO2JyZWFrfWM9Zn1mb3IoOzspaWYo''@;'; put 'put ''MHwocD0wfGFbKGY9bCsyMHwwKT4+Ml0pKWw9cCxjPWY7ZWxzZXtpZighKHA9MHxhWyhmPWwrMTZ8MCk+PjJdKSlicmVhaztsPXAsYz1mfWFbYz4+Ml09MH1lbHNlIGFbMTIrKGI9MHxhW3crOD4+Ml0pPj4yXT1sLGFbbCs4Pj4yXT1ifXdoaWxlKDApO2lmKG0pe2lmKCgwfGFbKGY9MTkwMzgw''@;'; put 'put ''KygoYz0wfGFbdysyOD4+Ml0pPDwyKXwwKT4+Ml0pPT0oMHx3KSl7aWYoYVtmPj4yXT1sLCFsKXthWzQ3NTIwXT1hWzQ3NTIwXSZ+KDE8PGMpLGI9dyxjPUE7YnJlYWt9fWVsc2UgaWYoYVttKzE2KygoKDB8YVttKzE2Pj4yXSkhPSgwfHcpJjEpPDwyKT4+Ml09bCwhbCl7Yj13LGM9QTticmVh''@;'; put 'put ''a31hW2wrMjQ+PjJdPW0sMHwoZj0wfGFbKGM9dysxNnwwKT4+Ml0pJiYoYVtsKzE2Pj4yXT1mLGFbZisyND4+Ml09bCksKGM9MHxhW2MrND4+Ml0pPyhhW2wrMjA+PjJdPWMsYVtjKzI0Pj4yXT1sLGI9dyxjPUEpOihiPXcsYz1BKX1lbHNlIGI9dyxjPUF9fXdoaWxlKDApO2lmKCEodz4+PjA+''@;'; put 'put ''PWs+Pj4wKSYmMSYocD0wfGFbKGw9ays0fDApPj4yXSkpe2lmKDImcClhW2w+PjJdPS0yJnAsYVtiKzQ+PjJdPTF8YyxhW3crYz4+Ml09YyxtPWM7ZWxzZXtpZigoMHxhWzQ3NTI1XSk9PSgwfGspKXtpZihhWzQ3NTIyXT1rPSgwfGFbNDc1MjJdKStjfDAsYVs0NzUyNV09YixhW2IrND4+Ml09''@;'; put 'put ''MXxrLCgwfGIpIT0oMHxhWzQ3NTI0XSkpcmV0dXJuO3JldHVybiBhWzQ3NTI0XT0wLHZvaWQoYVs0NzUyMV09MCl9aWYoKDB8YVs0NzUyNF0pPT0oMHxrKSlyZXR1cm4gYVs0NzUyMV09az0oMHxhWzQ3NTIxXSkrY3wwLGFbNDc1MjRdPXcsYVtiKzQ+PjJdPTF8ayx2b2lkKGFbdytrPj4yXT1r''@;'; put 'put ''KTttPSgtOCZwKStjfDAsZj1wPj4+Mztkb3tpZihwPj4+MDwyNTYpe2lmKCgwfChsPTB8YVtrKzEyPj4yXSkpPT0oMHwoYz0wfGFbays4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3NTE5XSZ+KDE8PGYpO2JyZWFrfWFbYysxMj4+Ml09bCxhW2wrOD4+Ml09YzticmVha31BPTB8YVtrKzI0Pj4yXSxs''@;'; put 'put ''PTB8YVtrKzEyPj4yXTtkb3tpZigoMHxsKT09KDB8aykpe2lmKCEobD0wfGFbKGM9NCsoZj1rKzE2fDApfDApPj4yXSkpe2lmKCEobD0wfGFbZj4+Ml0pKXtmPTA7YnJlYWt9Yz1mfWZvcig7OylpZigwfChwPTB8YVsoZj1sKzIwfDApPj4yXSkpbD1wLGM9ZjtlbHNle2lmKCEocD0wfGFbKGY9''@;'; put 'put ''bCsxNnwwKT4+Ml0pKWJyZWFrO2w9cCxjPWZ9YVtjPj4yXT0wLGY9bH1lbHNlIGFbMTIrKGY9MHxhW2srOD4+Ml0pPj4yXT1sLGFbbCs4Pj4yXT1mLGY9bH13aGlsZSgwKTtpZigwfEEpe2lmKCgwfGFbKGM9MTkwMzgwKygobD0wfGFbaysyOD4+Ml0pPDwyKXwwKT4+Ml0pPT0oMHxrKSl7aWYo''@;'; put 'put ''YVtjPj4yXT1mLCFmKXthWzQ3NTIwXT1hWzQ3NTIwXSZ+KDE8PGwpO2JyZWFrfX1lbHNlIGlmKGFbQSsxNisoKCgwfGFbQSsxNj4+Ml0pIT0oMHxrKSYxKTw8Mik+PjJdPWYsIWYpYnJlYWs7YVtmKzI0Pj4yXT1BLDB8KGM9MHxhWyhsPWsrMTZ8MCk+PjJdKSYmKGFbZisxNj4+Ml09YyxhW2Mr''@;'; put 'put ''MjQ+PjJdPWYpLDB8KGw9MHxhW2wrND4+Ml0pJiYoYVtmKzIwPj4yXT1sLGFbbCsyND4+Ml09Zil9fXdoaWxlKDApO2lmKGFbYis0Pj4yXT0xfG0sYVt3K20+PjJdPW0sKDB8Yik9PSgwfGFbNDc1MjRdKSlyZXR1cm4gdm9pZChhWzQ3NTIxXT1tKX1pZihsPW0+Pj4zLG0+Pj4wPDI1NilyZXR1''@;'; put 'put ''cm4gZj0xOTAxMTYrKGw8PDE8PDIpfDAsKGM9MHxhWzQ3NTE5XSkmKGw9MTw8bCk/bD0wfGFbKGM9Zis4fDApPj4yXTooYVs0NzUxOV09Y3xsLGw9ZixjPWYrOHwwKSxhW2M+PjJdPWIsYVtsKzEyPj4yXT1iLGFbYis4Pj4yXT1sLHZvaWQoYVtiKzEyPj4yXT1mKTtwPTE5MDM4MCsoKGw9KGw9''@;'; put 'put ''bT4+PjgpP20+Pj4wPjE2Nzc3MjE1PzMxOm0+Pj4oNysobD0xNC0oKEE9KDUyMDE5Misoaz1sPDwodz0obCsxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYmNCl8d3wobD0oMjQ1NzYwKyhrPDw9QSl8MCk+Pj4xNiYyKSkrKGs8PGw+Pj4xNSl8MCl8MCkmMXxsPDwxOjApPDwyKXwwLGFbYisy''@;'; put 'put ''OD4+Ml09bCxhW2IrMjA+PjJdPTAsYVtiKzE2Pj4yXT0wLGM9MHxhWzQ3NTIwXSxmPTE8PGw7ZG97aWYoYyZmKXtmb3IoYz1tPDwoMzE9PSgwfGwpPzA6MjUtKGw+Pj4xKXwwKSxmPTB8YVtwPj4yXTs7KXtpZigoLTgmYVtmKzQ+PjJdfDApPT0oMHxtKSl7bD03MzticmVha31pZighKGw9MHxh''@;'; put 'put ''WyhwPWYrMTYrKGM+Pj4zMTw8Mil8MCk+PjJdKSl7bD03MjticmVha31jPDw9MSxmPWx9aWYoNzI9PSgwfGwpKXthW3A+PjJdPWIsYVtiKzI0Pj4yXT1mLGFbYisxMj4+Ml09YixhW2IrOD4+Ml09YjticmVha31pZig3Mz09KDB8bCkpe2FbMTIrKGs9MHxhWyh3PWYrOHwwKT4+Ml0pPj4yXT1i''@;'; put 'put ''LGFbdz4+Ml09YixhW2IrOD4+Ml09ayxhW2IrMTI+PjJdPWYsYVtiKzI0Pj4yXT0wO2JyZWFrfX1lbHNlIGFbNDc1MjBdPWN8ZixhW3A+PjJdPWIsYVtiKzI0Pj4yXT1wLGFbYisxMj4+Ml09YixhW2IrOD4+Ml09Yn13aGlsZSgwKTtpZihhWzQ3NTI3XT1rPSgwfGFbNDc1MjddKS0xfDAsayly''@;'; put 'put ''ZXR1cm47Zm9yKGw9MTkwNTMyO2w9MHxhW2w+PjJdOylsPWwrOHwwO2FbNDc1MjddPS0xfX19ZnVuY3Rpb24gc2gobCxjKXtjfD0wO3ZhciBmPTA7cmV0dXJuKGx8PTApPyhmPTB8QXIoYyxsKSwoY3xsKT4+PjA+NjU1MzUmJihmPSgwfChmPj4+MCkvKGw+Pj4wKSk9PSgwfGMpP2Y6LTEpKTpm''@;'; put 'put ''PTAsIShsPTB8RjAoZikpfHwhKDMmYVtsKy00Pj4yXSl8fHUyKDB8bCwwLDB8ZiksMHxsfWZ1bmN0aW9uIFVhKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MDtyZXR1cm4obHw9MCk/Yz4+PjA+NDI5NDk2NzIzMT8oYVs0NzY0M109MTIsMHwoYz0wKSk6KGY9MHxmdW5jdGlvbiBQdWUobCxjKXtjfD0w''@;'; put 'put ''O3ZhciBELGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wO2lmKGI9KGx8PTApKyhmPS04JihSPTB8YVsoRD1sKzR8MCk+PjJdKSl8MCwhKDMmUikpcmV0dXJuIGM+Pj4wPDI1Nj8wfChsPTApOihmPj4+MD49KGMrNHwwKT4+PjAmJihmLWN8MCk+Pj4wPD1hWzQ3NjM5XTw8MT4+''@;'; put 'put ''PjB8fChsPTApLDB8bCk7aWYoZj4+PjA+PWM+Pj4wKXJldHVybihmPWYtY3wwKT4+PjA8PTE1fHwoTT1sK2N8MCxhW0Q+PjJdPTEmUnxjfDIsYVtNKzQ+PjJdPTN8ZixhWyhSPWIrNHwwKT4+Ml09MXxhW1I+PjJdLGRMKE0sZikpLDB8bDtpZigoMHxhWzQ3NTI1XSk9PSgwfGIpKXJldHVybiBm''@;'; put 'put ''PShNPSgwfGFbNDc1MjJdKStmfDApLWN8MCxwPWwrY3wwLE0+Pj4wPD1jPj4+MD8wfChsPTApOihhW0Q+PjJdPTEmUnxjfDIsYVtwKzQ+PjJdPTF8ZixhWzQ3NTI1XT1wLGFbNDc1MjJdPWYsMHxsKTtpZigoMHxhWzQ3NTI0XSk9PSgwfGIpKXJldHVybihwPSgwfGFbNDc1MjFdKStmfDApPj4+''@;'; put 'put ''MDxjPj4+MD8wfChsPTApOigoZj1wLWN8MCk+Pj4wPjE1PyhNPWwrY3wwLHA9bCtwfDAsYVtEPj4yXT0xJlJ8Y3wyLGFbTSs0Pj4yXT0xfGYsYVtwPj4yXT1mLGFbKHA9cCs0fDApPj4yXT0tMiZhW3A+PjJdLHA9TSk6KGFbRD4+Ml09MSZSfHB8MixhWyhwPWwrcCs0fDApPj4yXT0xfGFbcD4+''@;'; put 'put ''Ml0scD0wLGY9MCksYVs0NzUyMV09ZixhWzQ3NTI0XT1wLDB8bCk7aWYoMiYocD0wfGFbYis0Pj4yXSl8MHx8KGs9KC04JnApK2Z8MCk+Pj4wPGM+Pj4wKXJldHVybiAwO009ay1jfDAsbT1wPj4+Mztkb3tpZihwPj4+MDwyNTYpe2lmKCgwfChmPTB8YVtiKzEyPj4yXSkpPT0oMHwocD0wfGFb''@;'; put 'put ''Yis4Pj4yXSkpKXthWzQ3NTE5XT1hWzQ3NTE5XSZ+KDE8PG0pO2JyZWFrfWFbcCsxMj4+Ml09ZixhW2YrOD4+Ml09cDticmVha313PTB8YVtiKzI0Pj4yXSxmPTB8YVtiKzEyPj4yXTtkb3tpZigoMHxmKT09KDB8Yikpe2lmKGY9MHxhWyhwPTQrKG09YisxNnwwKXwwKT4+Ml0pQT1wO2Vsc2V7''@;'; put 'put ''aWYoIShmPTB8YVttPj4yXSkpe209MDticmVha31BPW19Zm9yKDs7KWlmKDB8KHA9MHxhWyhtPWYrMjB8MCk+PjJdKSlmPXAsQT1tO2Vsc2V7aWYoIShtPTB8YVsocD1mKzE2fDApPj4yXSkpYnJlYWs7Zj1tLEE9cH1hW0E+PjJdPTAsbT1mfWVsc2UgYVsxMisobT0wfGFbYis4Pj4yXSk+PjJd''@;'; put 'put ''PWYsYVtmKzg+PjJdPW0sbT1mfXdoaWxlKDApO2lmKDB8dyl7aWYoKDB8YVsocD0xOTAzODArKChmPTB8YVtiKzI4Pj4yXSk8PDIpfDApPj4yXSk9PSgwfGIpKXtpZihhW3A+PjJdPW0sIW0pe2FbNDc1MjBdPWFbNDc1MjBdJn4oMTw8Zik7YnJlYWt9fWVsc2UgaWYoYVt3KzE2KygoKDB8YVt3''@;'; put 'put ''KzE2Pj4yXSkhPSgwfGIpJjEpPDwyKT4+Ml09bSwhbSlicmVhazthW20rMjQ+PjJdPXcsMHwocD0wfGFbKGY9YisxNnwwKT4+Ml0pJiYoYVttKzE2Pj4yXT1wLGFbcCsyND4+Ml09bSksMHwoZj0wfGFbZis0Pj4yXSkmJihhW20rMjA+PjJdPWYsYVtmKzI0Pj4yXT1tKX19d2hpbGUoMCk7cmV0''@;'; put 'put ''dXJuIE0+Pj4wPDE2PyhhW0Q+PjJdPWt8MSZSfDIsYVsoUj1sK2srNHwwKT4+Ml09MXxhW1I+PjJdLDB8bCk6KGI9bCtjfDAsYVtEPj4yXT0xJlJ8Y3wyLGFbYis0Pj4yXT0zfE0sYVsoUj1sK2srNHwwKT4+Ml09MXxhW1I+PjJdLGRMKGIsTSksMHxsKX0obCstOHwwLGM+Pj4wPDExPzE2OmMr''@;'; put 'put ''MTEmLTgpLDB8Zj8wfChjPWYrOHwwKTooZj0wfEYwKGMpKT8oZ28oMHxmLDB8bCwwfCgocD0oLTgmKHA9MHxhW2wrLTQ+PjJdKSktKDA9PSgzJnB8MCk/ODo0KXwwKT4+PjA8Yz4+PjA/cDpjKSksRnQobCksMHwoYz1mKSk6MHwoYz0wKSk6MHwoYz0wfEYwKGMpKX1mdW5jdGlvbiBkTChsLGMp''@;'; put 'put ''e3ZhciBmPTAscD0wLG09MCxBPTAsdz0wLGI9MDtiPShsfD0wKSsoY3w9MCl8MCxmPTB8YVtsKzQ+PjJdO2Rve2lmKDEmZil3PWw7ZWxzZXtpZighKDMmZikpcmV0dXJuO2lmKGM9KG09MHxhW2w+PjJdKStjfDAsKDB8YVs0NzUyNF0pPT0oMHwodz1sKygwLW0pfDApKSl7aWYoMyE9KDMmKGY9''@;'; put 'put ''MHxhWyhsPWIrNHwwKT4+Ml0pfDApKWJyZWFrO3JldHVybiBhWzQ3NTIxXT1jLGFbbD4+Ml09LTImZixhW3crND4+Ml09MXxjLHZvaWQoYVtiPj4yXT1jKX1pZihwPW0+Pj4zLG0+Pj4wPDI1Nil7aWYoKDB8KGY9MHxhW3crMTI+PjJdKSk9PSgwfChsPTB8YVt3Kzg+PjJdKSkpe2FbNDc1MTld''@;'; put 'put ''PWFbNDc1MTldJn4oMTw8cCk7YnJlYWt9YVtsKzEyPj4yXT1mLGFbZis4Pj4yXT1sO2JyZWFrfUE9MHxhW3crMjQ+PjJdLGw9MHxhW3crMTI+PjJdO2Rve2lmKCgwfGwpPT0oMHx3KSl7aWYoIShsPTB8YVsoZj00KyhwPXcrMTZ8MCl8MCk+PjJdKSl7aWYoIShsPTB8YVtwPj4yXSkpe2w9MDti''@;'; put 'put ''cmVha31mPXB9Zm9yKDs7KWlmKDB8KG09MHxhWyhwPWwrMjB8MCk+PjJdKSlsPW0sZj1wO2Vsc2V7aWYoIShtPTB8YVsocD1sKzE2fDApPj4yXSkpYnJlYWs7bD1tLGY9cH1hW2Y+PjJdPTB9ZWxzZSBhWzEyKyhtPTB8YVt3Kzg+PjJdKT4+Ml09bCxhW2wrOD4+Ml09bX13aGlsZSgwKTtpZihB''@;'; put 'put ''KXtpZigoMHxhWyhwPTE5MDM4MCsoKGY9MHxhW3crMjg+PjJdKTw8Mil8MCk+PjJdKT09KDB8dykpe2lmKGFbcD4+Ml09bCwhbCl7YVs0NzUyMF09YVs0NzUyMF0mfigxPDxmKTticmVha319ZWxzZSBpZihhW0ErMTYrKCgoMHxhW0ErMTY+PjJdKSE9KDB8dykmMSk8PDIpPj4yXT1sLCFsKWJy''@;'; put 'put ''ZWFrO2FbbCsyND4+Ml09QSwwfChwPTB8YVsoZj13KzE2fDApPj4yXSkmJihhW2wrMTY+PjJdPXAsYVtwKzI0Pj4yXT1sKSwoZj0wfGFbZis0Pj4yXSkmJihhW2wrMjA+PjJdPWYsYVtmKzI0Pj4yXT1sKX19fXdoaWxlKDApO2lmKDImKHA9MHxhWyhsPWIrNHwwKT4+Ml0pKWFbbD4+Ml09LTIm''@;'; put 'put ''cCxhW3crND4+Ml09MXxjLGFbdytjPj4yXT1jLG09YztlbHNle2lmKCgwfGFbNDc1MjVdKT09KDB8Yikpe2lmKGFbNDc1MjJdPWI9KDB8YVs0NzUyMl0pK2N8MCxhWzQ3NTI1XT13LGFbdys0Pj4yXT0xfGIsKDB8dykhPSgwfGFbNDc1MjRdKSlyZXR1cm47cmV0dXJuIGFbNDc1MjRdPTAsdm9p''@;'; put 'put ''ZChhWzQ3NTIxXT0wKX1pZigoMHxhWzQ3NTI0XSk9PSgwfGIpKXJldHVybiBhWzQ3NTIxXT1iPSgwfGFbNDc1MjFdKStjfDAsYVs0NzUyNF09dyxhW3crND4+Ml09MXxiLHZvaWQoYVt3K2I+PjJdPWIpO209KC04JnApK2N8MCxmPXA+Pj4zO2Rve2lmKHA+Pj4wPDI1Nil7aWYoKDB8KGM9MHxh''@;'; put 'put ''W2IrMTI+PjJdKSk9PSgwfChsPTB8YVtiKzg+PjJdKSkpe2FbNDc1MTldPWFbNDc1MTldJn4oMTw8Zik7YnJlYWt9YVtsKzEyPj4yXT1jLGFbYys4Pj4yXT1sO2JyZWFrfUE9MHxhW2IrMjQ+PjJdLGM9MHxhW2IrMTI+PjJdO2Rve2lmKCgwfGMpPT0oMHxiKSl7aWYoIShjPTB8YVsobD00Kyhm''@;'; put 'put ''PWIrMTZ8MCl8MCk+PjJdKSl7aWYoIShjPTB8YVtmPj4yXSkpe2Y9MDticmVha31sPWZ9Zm9yKDs7KWlmKDB8KHA9MHxhWyhmPWMrMjB8MCk+PjJdKSljPXAsbD1mO2Vsc2V7aWYoIShwPTB8YVsoZj1jKzE2fDApPj4yXSkpYnJlYWs7Yz1wLGw9Zn1hW2w+PjJdPTAsZj1jfWVsc2UgYVsxMiso''@;'; put 'put ''Zj0wfGFbYis4Pj4yXSk+PjJdPWMsYVtjKzg+PjJdPWYsZj1jfXdoaWxlKDApO2lmKDB8QSl7aWYoKDB8YVsobD0xOTAzODArKChjPTB8YVtiKzI4Pj4yXSk8PDIpfDApPj4yXSk9PSgwfGIpKXtpZihhW2w+PjJdPWYsIWYpe2FbNDc1MjBdPWFbNDc1MjBdJn4oMTw8Yyk7YnJlYWt9fWVsc2Ug''@;'; put 'put ''aWYoYVtBKzE2KygoKDB8YVtBKzE2Pj4yXSkhPSgwfGIpJjEpPDwyKT4+Ml09ZiwhZilicmVhazthW2YrMjQ+PjJdPUEsMHwobD0wfGFbKGM9YisxNnwwKT4+Ml0pJiYoYVtmKzE2Pj4yXT1sLGFbbCsyND4+Ml09ZiksMHwoYz0wfGFbYys0Pj4yXSkmJihhW2YrMjA+PjJdPWMsYVtjKzI0Pj4y''@;'; put 'put ''XT1mKX19d2hpbGUoMCk7aWYoYVt3KzQ+PjJdPTF8bSxhW3crbT4+Ml09bSwoMHx3KT09KDB8YVs0NzUyNF0pKXJldHVybiB2b2lkKGFbNDc1MjFdPW0pfWlmKGM9bT4+PjMsbT4+PjA8MjU2KXJldHVybiBmPTE5MDExNisoYzw8MTw8Mil8MCwobD0wfGFbNDc1MTldKSYoYz0xPDxjKT9jPTB8''@;'; put 'put ''YVsobD1mKzh8MCk+PjJdOihhWzQ3NTE5XT1sfGMsYz1mLGw9Zis4fDApLGFbbD4+Ml09dyxhW2MrMTI+PjJdPXcsYVt3Kzg+PjJdPWMsdm9pZChhW3crMTI+PjJdPWYpO2lmKGM9KGM9bT4+PjgpP20+Pj4wPjE2Nzc3MjE1PzMxOm0+Pj4oNysoYz0xNC0oKHA9KDUyMDE5MisoYj1jPDwoQT0o''@;'; put 'put ''YysxMDQ4MzIwfDApPj4+MTYmOCkpfDApPj4+MTYmNCl8QXwoYz0oMjQ1NzYwKyhiPDw9cCl8MCk+Pj4xNiYyKSkrKGI8PGM+Pj4xNSl8MCl8MCkmMXxjPDwxOjAscD0xOTAzODArKGM8PDIpfDAsYVt3KzI4Pj4yXT1jLGFbdysyMD4+Ml09MCxhW3crMTY+PjJdPTAsISgobD0wfGFbNDc1MjBd''@;'; put 'put ''KSYoZj0xPDxjKSkpcmV0dXJuIGFbNDc1MjBdPWx8ZixhW3A+PjJdPXcsYVt3KzI0Pj4yXT1wLGFbdysxMj4+Ml09dyx2b2lkKGFbdys4Pj4yXT13KTtmb3IobD1tPDwoMzE9PSgwfGMpPzA6MjUtKGM+Pj4xKXwwKSxmPTB8YVtwPj4yXTs7KXtpZigoLTgmYVtmKzQ+PjJdfDApPT0oMHxtKSl7''@;'; put 'put ''Yz02OTticmVha31pZighKGM9MHxhWyhwPWYrMTYrKGw+Pj4zMTw8Mil8MCk+PjJdKSl7Yz02ODticmVha31sPDw9MSxmPWN9cmV0dXJuIDY4PT0oMHxjKT8oYVtwPj4yXT13LGFbdysyND4+Ml09ZixhW3crMTI+PjJdPXcsdm9pZChhW3crOD4+Ml09dykpOjY5PT0oMHxjKT8oYVsxMisoYj0w''@;'; put 'put ''fGFbKEE9Zis4fDApPj4yXSk+PjJdPXcsYVtBPj4yXT13LGFbdys4Pj4yXT1iLGFbdysxMj4+Ml09Zix2b2lkKGFbdysyND4+Ml09MCkpOnZvaWQgMH1mdW5jdGlvbiB1aChsKXtyZXR1cm4obHw9MCk+Pj4wPjQyOTQ5NjMyMDAmJihhWzQ3NjQzXT0wLWwsbD0tMSksMHxsfWZ1bmN0aW9uIHQk''@;'; put 'put ''KGwpe3JldHVybiAwfGx9ZnVuY3Rpb24gbiQobCxjLGYpe2N8PTAsZnw9MDt2YXIgdyxiLGssTSxSLHA9MCxtPTAsQT0wLEQ9MCxHPTAscT0wO1I9bGUsbGU9bGUrNDh8MCxNPVIrMTZ8MCxBPVIsYVsobT1SKzMyfDApPj4yXT1wPTB8YVsoYj0yOCsobHw9MCl8MCk+PjJdLGFbbSs0Pj4yXT1w''@;'; put 'put ''PSgwfGFbKGs9bCsyMHwwKT4+Ml0pLXB8MCxhW20rOD4+Ml09YyxhW20rMTI+PjJdPWYscD1wK2Z8MCxhW0E+PjJdPWFbKHc9bCs2MHwwKT4+Ml0sYVtBKzQ+PjJdPW0sYVtBKzg+PjJdPTIsQT0wfHVoKDB8dDYoMTQ2LDB8QSkpO2U6ZG97aWYoKDB8cCkhPSgwfEEpKXtmb3IoYz0yOyEoKDB8''@;'; put 'put ''QSk8MCk7KWlmKHA9cC1BfDAsYz1jKygoRz1BPj4+MD4ocT0wfGFbbSs0Pj4yXSk+Pj4wKTw8MzE+PjMxKXwwLGFbKG09Rz9tKzh8MDptKT4+Ml09KDB8YVttPj4yXSkrKHE9QS0oRz9xOjApfDApLGFbKEc9bSs0fDApPj4yXT0oMHxhW0c+PjJdKS1xLGFbTT4+Ml09YVt3Pj4yXSxhW00rND4+''@;'; put 'put ''Ml09bSxhW00rOD4+Ml09YywoMHxwKT09KDB8KEE9MHx1aCgwfHQ2KDE0NiwwfE0pKSkpKXtEPTM7YnJlYWsgZX1hW2wrMTY+PjJdPTAsYVtiPj4yXT0wLGFbaz4+Ml09MCxhW2w+PjJdPTMyfGFbbD4+Ml0sZj0yPT0oMHxjKT8wOmYtKDB8YVttKzQ+PjJdKXwwfWVsc2UgRD0zfXdoaWxlKDAp''@;'; put 'put ''O3JldHVybiAzPT0oMHxEKSYmKGFbbCsxNj4+Ml09KHE9MHxhW2wrNDQ+PjJdKSsoMHxhW2wrNDg+PjJdKSxhW2I+PjJdPXEsYVtrPj4yXT1xKSxsZT1SLDB8Zn1mdW5jdGlvbiByJChsLGMpe3ZhciBmLHA7cmV0dXJuIGN8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWx8PTAsYVtw''@;'; put 'put ''KzQ+PjJdPWMsYz0wfHVoKDB8VDQoOTEsMHxwKSksbGU9ZiwwfGN9ZnVuY3Rpb24gTnVlKGwsYyxmLHAsbSxBKXt2YXIgdyxiO2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLGI9bGUsbGU9bGUrMzJ8MCx3PWI7ZG97aWYoMD09KDQwOTUmQXwwKSYwPT0oKCgwfEEpPDApPDwzMT4+MzEm''@;'; put 'put ''LTQwOTZ8MCkpe2lmKGM+Pj4wPjIxNDc0ODM2NDYpe2FbNDc2NDNdPTEyLGw9LTE7YnJlYWt9YVt3Pj4yXT1sLGFbdys0Pj4yXT1jLGFbdys4Pj4yXT1mLGFbdysxMj4+Ml09cCxhW3crMTY+PjJdPW0sYVt3KzIwPj4yXT1BPj4xMixsPTB8dWgoMHxSOCgxOTIsMHx3KSl9ZWxzZSBhWzQ3NjQz''@;'; put 'put ''XT0yMixsPS0xfXdoaWxlKDApO3JldHVybiBsZT1iLDB8bH1mdW5jdGlvbiBwTChsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wO3A9MjU1JihjfD0wKTtlOmRve2lmKHApe2lmKDMmbCl7Zj0yNTUmYztkb3tpZigobT0wfGZlW2w+PjBdKTw8MjQ+PjI0PT0wfHxtPDwyND4+MjQ9PWY8PDI0Pj4y''@;'; put 'put ''NClicmVhayBlO2w9bCsxfDB9d2hpbGUoMCE9KDMmbHwwKSl9cD0wfEFyKHAsMTY4NDMwMDkpLGY9MHxhW2w+PjJdO3Q6ZG97aWYoISgoLTIxMzkwNjIxNDQmZl4tMjEzOTA2MjE0NCkmZistMTY4NDMwMDkpKWRve2lmKCgtMjEzOTA2MjE0NCYobT1mXnApXi0yMTM5MDYyMTQ0KSZtKy0xNjg0''@;'; put 'put ''MzAwOXwwKWJyZWFrIHQ7Zj0wfGFbKGw9bCs0fDApPj4yXX13aGlsZSghKCgtMjEzOTA2MjE0NCZmXi0yMTM5MDYyMTQ0KSZmKy0xNjg0MzAwOXwwKSl9d2hpbGUoMCk7Zm9yKGY9MjU1JmM7KG09MHxmZVtsPj4wXSk8PDI0Pj4yNCE9MCYmbTw8MjQ+PjI0IT1mPDwyND4+MjQ7KWw9bCsxfDB9''@;'; put 'put ''ZWxzZSBsPWwrKDB8VW8obCkpfDB9d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBVbyhsKXt2YXIgcCxjPTAsZj0wO3A9bHw9MDtlOmRve2lmKDMmcClmb3IoYz1wOzspe2lmKCEoMHxmZVtsPj4wXSkpe2w9YzticmVhayBlfWlmKCEoMyYoYz1sPWwrMXwwKSkpe2Y9NDticmVha319ZWxz''@;'; put 'put ''ZSBmPTR9d2hpbGUoMCk7aWYoND09KDB8Zikpe2Zvcig7ISgoLTIxMzkwNjIxNDQmKGM9MHxhW2w+PjJdKV4tMjEzOTA2MjE0NCkmYystMTY4NDMwMDkpOylsPWwrNHwwO2lmKCgyNTUmYyk8PDI0Pj4yNClkb3tsPWwrMXwwfXdoaWxlKDAhPSgwfGZlW2w+PjBdKSl9cmV0dXJuIGwtcHwwfWZ1''@;'; put 'put ''bmN0aW9uIEt5KGwsYyl7dmFyIGY7cmV0dXJuIGN8PTAsZj0wfERzKDB8KGx8PTApKSwwfCgwPT0oMHxjKT9sOmYpfWZ1bmN0aW9uIFppKGwsYyl7dmFyIGY9MCxwPTA7aWYocD0wfGZlWyhjfD0wKT4+MF0sKGY9MHxmZVsobHw9MCk+PjBdKTw8MjQ+PjI0PT0wfHxmPDwyND4+MjQhPXA8PDI0''@;'; put 'put ''Pj4yNClsPXA7ZWxzZXtkb3tmPTB8ZmVbKGw9bCsxfDApPj4wXSxwPTB8ZmVbKGM9YysxfDApPj4wXX13aGlsZShmPDwyND4+MjQhPTAmJmY8PDI0Pj4yND09cDw8MjQ+PjI0KTtsPXB9cmV0dXJuKDI1NSZmKS0oMjU1JmwpfDB9ZnVuY3Rpb24gJGsobCl7cmV0dXJuIDB8ZnVuY3Rpb24gU0Fl''@;'; put 'put ''KGwsYyl7bHw9MCxjfD0wO3ZhciBmPTAscD0wO2ZvcihwPTA7Oyl7aWYoKDB8WHRbMTQ0NTMxK3A+PjBdKT09KDB8bCkpe2w9MjticmVha31pZig4Nz09KDB8KGY9cCsxfDApKSl7Zj0xNDQ2MTkscD04NyxsPTU7YnJlYWt9cD1mfWlmKDI9PSgwfGwpJiYocD8oZj0xNDQ2MTksbD01KTpmPTE0''@;'; put 'put ''NDYxOSksNT09KDB8bCkpZm9yKDs7KXtkb3tsPWYsZj1mKzF8MH13aGlsZSgwIT0oMHxmZVtsPj4wXSkpO2lmKCEocD1wKy0xfDApKWJyZWFrO2w9NX1yZXR1cm4gMHxmdW5jdGlvbiBNQWUobCxjKXtyZXR1cm4gMHxmdW5jdGlvbiBFQWUobCxjKXtyZXR1cm4gbHw9MCxjPShjfD0wKT8wfGZ1''@;'; put 'put ''bmN0aW9uIHhBZShsLGMsZil7Y3w9MCxmfD0wO3ZhciBHLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO0E9MHxLeSgwfGFbOCsobHw9MCk+PjJdLEc9MTc5NDg5NTEzOCsoMHxhW2w+PjJdKXwwKSxwPTB8S3koMHxhW2wrMTI+PjJdLEcpLG09MHxLeSgwfGFbbCsxNj4+Ml0s''@;'; put 'put ''Ryk7ZTpkb3tpZihBPj4+MDxjPj4+Mj4+PjAmJihSPWMtKEE8PDIpfDAscD4+PjA8Uj4+PjAmbT4+PjA8Uj4+PjApJiYwPT0oMyYobXxwKXwwKSl7Zm9yKFI9cD4+PjIsRD1tPj4+MixNPTA7Oyl7aWYocD0wfEt5KDB8YVtsKygobT0odz0oaz1NKyhiPUE+Pj4xKXwwKTw8MSkrUnwwKTw8Mik+''@;'; put 'put ''PjJdLEcpLCEoKG09MHxLeSgwfGFbbCsobSsxPDwyKT4+Ml0sRykpPj4+MDxjPj4+MCZwPj4+MDwoYy1tfDApPj4+MCkpe3A9MDticmVhayBlfWlmKDB8ZmVbbCsobStwKT4+MF0pe3A9MDticmVhayBlfWlmKCEocD0wfFppKGYsbCttfDApKSlicmVhaztpZihwPSgwfHApPDAsMT09KDB8QSkp''@;'; put 'put ''e3A9MDticmVhayBlfU09cD9NOmssQT1wP2I6QS1ifDB9bT0wfEt5KDB8YVtsKygocD13K0R8MCk8PDIpPj4yXSxHKSxwPShwPTB8S3koMHxhW2wrKHArMTw8Mik+PjJdLEcpKT4+PjA8Yz4+PjAmbT4+PjA8KGMtcHwwKT4+PjAmJjA9PSgwfGZlW2wrKHArbSk+PjBdKT9sK3B8MDowfWVsc2Ug''@;'; put 'put ''cD0wfXdoaWxlKDApO3JldHVybiAwfHB9KDB8YVtjPj4yXSwwfGFbYys0Pj4yXSxsKTowLDB8KDB8Yz9jOmwpfShsfD0wLGN8PTApfShmLDB8YVtjKzIwPj4yXSl9KGx8PTAsMHxhWzE1NzkxXSl9ZnVuY3Rpb24gaSQobCxjLGYpe3ZhciBwLG0sQTtyZXR1cm4gYz0rYyxwPShBPShsPStsKSps''@;'; put 'put ''KSooQSpBKSooMS41ODk2OTA5OTUyMTE1NWUtMTAqQS0yLjUwNTA3NjAyNTM0MDY4NjNlLTgpKyhBKigyNzU1NzMxMzcwNzA3MDA2OGUtMjIqQS0uMDAwMTk4NDEyNjk4Mjk4NTc5NSkrLjAwODMzMzMzMzMzMzMyMjQ5KSxtPUEqbCwoZnw9MCk/bC09LjE2NjY2NjY2NjY2NjY2NjMyKm0rKEEq''@;'; put 'put ''KC41KmMtbSpwKS1jKTpsPW0qKEEqcC0uMTY2NjY2NjY2NjY2NjY2MzIpK2wsK2x9ZnVuY3Rpb24gbyQobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wO19bU2k+PjNdPWw9K2wsYz0wfGFbU2k+PjJdLHA9KDB8KGY9MHxhW1NpKzQ+PjJdKSk8MDtkb3tpZihwfGY+''@;'; put 'put ''Pj4wPDEwNDg1NzYpe2lmKDA9PSgwfGMpJjA9PSgyMTQ3NDgzNjQ3JmZ8MCkpe2w9LTEvKGwqbCk7YnJlYWt9aWYocCl7bD0obC1sKS8wO2JyZWFrfV9bU2k+PjNdPTB4NDAwMDAwMDAwMDAwMDAqbCxmPTB8YVtTaSs0Pj4yXSxwPS0xMDc3LGM9MHxhW1NpPj4yXSxtPTk7YnJlYWt9Zj4+PjA8''@;'; put 'put ''PTIxNDY0MzUwNzEmJigwPT0oMHxjKSYhMCYxMDcyNjkzMjQ4PT0oMHxmKT9sPTA6KHA9LTEwMjMsbT05KSl9d2hpbGUoMCk7cmV0dXJuIDk9PSgwfG0pJiYobT1mKzYxNDI0MnwwLGFbU2k+PjJdPWMsYVtTaSs0Pj4yXT0xMDcyMDc5MDA2KygxMDQ4NTc1Jm0pLEE9KGs9KHc9KE09K19bU2k+''@;'; put 'put ''PjNdLTEpLyhNKzIpKSp3KSprLF9bU2k+PjNdPU0tKGI9TSooLjUqTSkpLGY9MHxhW1NpKzQ+PjJdLGFbU2k+PjJdPTAsYVtTaSs0Pj4yXT1mLEE9TS0obD0rX1tTaT4+M10pLWIrdyooYisoQSooQSooLjE1MzEzODM3Njk5MjA5MzczKkErLjIyMjIyMTk4NDMyMTQ5Nzg0KSsuMzk5OTk5OTk5''@;'; put 'put ''OTk0MDk0MikrayooQSooQSooLjE0Nzk4MTk4NjA1MTE2NTg2KkErLjE4MTgzNTcyMTYxNjE4MDUpKy4yODU3MTQyODc0MzY2MjM5KSsuNjY2NjY2NjY2NjY2NjczNSkpKSxsPSh3PShrPTEuNDQyNjk1MDQwNzIxNDQ2MypsKSsoYj0rKHArKG0+Pj4yMCl8MCkpKSsoaysoYi13KSsoMS40NDI2''@;'; put 'put ''OTUwNDA3MjE0NDYzKkErMS42NzUxNzEzMTY0ODg2NTEyZS0xMCooQStsKSkpKSwrbH1mdW5jdGlvbiBhJChsLGMpe2N8PTA7dmFyIHAsbSxmPTA7c3dpdGNoKF9bU2k+PjNdPWw9K2wsMjA0NyYobT0wfHdsKDB8KGY9MHxhW1NpPj4yXSksMHwocD0wfGFbU2krND4+Ml0pLDUyKSkpe2Nhc2Ug''@;'; put 'put ''MDowIT1sPyhsPSthJCgweDEwMDAwMDAwMDAwMDAwMDAwKmwsYyksZj0oMHxhW2M+PjJdKS02NHwwKTpmPTAsYVtjPj4yXT1mO2JyZWFrO2Nhc2UgMjA0NzpicmVhaztkZWZhdWx0OmFbYz4+Ml09KDIwNDcmbSktMTAyMixhW1NpPj4yXT1mLGFbU2krND4+Ml09LTIxNDY0MzUwNzMmcHwxMDcx''@;'; put 'put ''NjQ0NjcyLGw9K19bU2k+PjNdfXJldHVybitsfWZ1bmN0aW9uIGwkKGwsYyl7dmFyIGYscCxtLEE7cmV0dXJuKygoQT0xLShtPS41KihmPShsPStsKSpsKSkpKygxLUEtbSsoZiooZiooZiooMjQ4MDE1ODcyODk0NzY3M2UtMjAqZi0uMDAxMzg4ODg4ODg4ODg3NDExKSsuMDQxNjY2NjY2NjY2''@;'; put 'put ''NjY2NikrKHA9ZipmKSpwKihmKigyLjA4NzU3MjMyMTI5ODE3NWUtOS0xMTM1OTY0NzU1Nzc4ODE5NWUtMjcqZiktMi43NTU3MzE0MzUxMzkwNjYzZS03KSktbCooYz0rYykpKSl9ZnVuY3Rpb24gWnVlKGwsYyl7Y3w9MDt2YXIgayxNLEQscSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxSPTAs''@;'; put 'put ''Rz0wLHBlPTA7cT1sZSxsZT1sZSs0OHwwLGs9cSsxNnwwLE09cSxfW1NpPj4zXT1sPStsLEQ9MHx3bCgwfChmPTB8YVtTaT4+Ml0pLDB8KHc9MHxhW1NpKzQ+PjJdKSw2MyksRz0yMTQ3NDgzNjQ3Jnc7ZG97aWYoRz4+PjA8MTA3NDc1MjEyMyl7aWYoNTk4NTIzIT0oMTA0ODU3NSZ3fDApKXtp''@;'; put 'put ''ZihmPTAhPSgwfEQpLEc+Pj4wPDEwNzM5Mjg1NzMpe2lmKGYpe19bYz4+M109Yj0oQT1sKzEuNTcwNzk2MzI2NzM0MTI1NikrNjA3NzEwMDUwNjUwNjE5MmUtMjYsX1tjKzg+PjNdPUEtYis2MDc3MTAwNTA2NTA2MTkyZS0yNixmPS0xO2JyZWFrfV9bYz4+M109Yj0oQT1sKy0xLjU3MDc5NjMy''@;'; put 'put ''NjczNDEyNTYpKy02MDc3MTAwNTA2NTA2MTkyZS0yNixfW2MrOD4+M109QS1iLTYwNzcxMDA1MDY1MDYxOTJlLTI2LGY9MTticmVha31pZihmKXtfW2M+PjNdPWI9KEE9bCszLjE0MTU5MjY1MzQ2ODI1MTIpKzEuMjE1NDIwMTAxMzAxMjM4NGUtMTAsX1tjKzg+PjNdPUEtYisxLjIxNTQyMDEw''@;'; put 'put ''MTMwMTIzODRlLTEwLGY9LTI7YnJlYWt9X1tjPj4zXT1iPShBPWwrLTMuMTQxNTkyNjUzNDY4MjUxMikrLTEuMjE1NDIwMTAxMzAxMjM4NGUtMTAsX1tjKzg+PjNdPUEtYi0xLjIxNTQyMDEwMTMwMTIzODRlLTEwLGY9MjticmVha31SPTIxfWVsc2V7aWYoRz4+PjA8MTA3NTU5NDgxMil7aWYo''@;'; put 'put ''Rz4+PjA8MTA3NTE4MzAzNyl7aWYoMTA3NDk3NzE0OD09KDB8Rykpe1I9MjE7YnJlYWt9aWYoRCl7X1tjPj4zXT1iPShBPWwrNC43MTIzODg5ODAyMDIzNzcpKzEuODIzMTMwMTUxOTUxODU3OGUtMTAsX1tjKzg+PjNdPUEtYisxLjgyMzEzMDE1MTk1MTg1NzhlLTEwLGY9LTM7YnJlYWt9X1tj''@;'; put 'put ''Pj4zXT1iPShBPWwrLTQuNzEyMzg4OTgwMjAyMzc3KSstMS44MjMxMzAxNTE5NTE4NTc4ZS0xMCxfW2MrOD4+M109QS1iLTEuODIzMTMwMTUxOTUxODU3OGUtMTAsZj0zO2JyZWFrfWlmKDEwNzUzODg5MjM9PSgwfEcpKXtSPTIxO2JyZWFrfWlmKEQpe19bYz4+M109Yj0oQT1sKzYuMjgzMTg1''@;'; put 'put ''MzA2OTM2NTAyNSkrMi40MzA4NDAyMDI2MDI0NzdlLTEwLF9bYys4Pj4zXT1BLWIrMi40MzA4NDAyMDI2MDI0NzdlLTEwLGY9LTQ7YnJlYWt9X1tjPj4zXT1iPShBPWwrLTYuMjgzMTg1MzA2OTM2NTAyNSkrLTIuNDMwODQwMjAyNjAyNDc3ZS0xMCxfW2MrOD4+M109QS1iLTIuNDMwODQwMjAy''@;'; put 'put ''NjAyNDc3ZS0xMCxmPTQ7YnJlYWt9aWYoRz4+PjA+PTEwOTQyNjMyOTEpe2lmKEc+Pj4wPjIxNDY0MzUwNzEpe19bYys4Pj4zXT1iPWwtbCxfW2M+PjNdPWIsZj0wO2JyZWFrfWFbU2k+PjJdPWYsYVtTaSs0Pj4yXT0xMDQ4NTc1Jnd8MTA5NjgxMDQ5NixsPStfW1NpPj4zXSxmPTA7ZG97X1tr''@;'; put 'put ''KyhmPDwzKT4+M109Yj0rKDB8fn5sKSxsPTE2Nzc3MjE2KihsLWIpLGY9ZisxfDB9d2hpbGUoMiE9KDB8ZikpO2lmKF9baysxNj4+M109bCwwPT1sKWZvcihmPTE7MD09K19baysoZjw8Myk+PjNdOylmPWYrLTF8MDtlbHNlIGY9MjtpZihmPTB8enVlKGssTSwoRz4+PjIwKS0xMDQ2fDAsZisx''@;'; put 'put ''fDAsMSksbD0rX1tNPj4zXSxEKXtfW2M+PjNdPS1sLF9bYys4Pj4zXT0tK19bTSs4Pj4zXSxmPTAtZnwwO2JyZWFrfV9bYz4+M109bCxfW2MrOD4+M109K19bTSs4Pj4zXTticmVha31SPTIxfX13aGlsZSgwKTtyZXR1cm4gMjE9PSgwfFIpJiYoZj1+fihBPS42MzY2MTk3NzIzNjc1ODE0Kmwr''@;'; put 'put ''Njc1NTM5OTQ0MTA1NTc0NC02NzU1Mzk5NDQxMDU1NzQ0KSxfW2M+PjNdPWw9KHA9bC0xLjU3MDc5NjMyNjczNDEyNTYqQSktKG09NjA3NzEwMDUwNjUwNjE5MmUtMjYqQSksX1tTaT4+M109bCwoKHc9Rz4+PjIwKS0oMjA0NyYoUj0wfHdsKDB8YVtTaT4+Ml0sMHxhW1NpKzQ+PjJdLDUyKSkp''@;'; put 'put ''fDApPjE2JiYoX1tjPj4zXT1sPShiPXAtKG09NjA3NzEwMDUwNjMwMzk2NmUtMjYqQSkpLShtPTIwMjIyNjYyNDg3OTU5NTA2ZS0zNypBLShwLWItbSkpLF9bU2k+PjNdPWwsQT04NDc4NDI3NjYwMzY4OWUtNDUqQS0oYi0ocD1iLShwZT0yMDIyMjY2MjQ4NzExMTY2NWUtMzcqQSkpLXBlKSwo''@;'; put 'put ''dy0oMjA0NyYoRz0wfHdsKDB8YVtTaT4+Ml0sMHxhW1NpKzQ+PjJdLDUyKSkpfDApPjQ5PyhfW2M+PjNdPWw9cC1BLG09QSk6cD1iKSxfW2MrOD4+M109cC1sLW0pLGxlPXEsMHxmfWZ1bmN0aW9uIHp1ZShsLGMsZixwLG0pe2x8PTAsY3w9MDt2YXIgYmUsT2UsTGUsUmUsSGUscWUscnQsV2Us''@;'; put 'put ''YXQsc3QsRXQsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLFZlPTAsU3Q9MCxrdD0wLFp0PTA7aWYoRXQ9bGUsbGU9bGUrNTYwfDAsV2U9RXQrNDgwfDAscWU9RXQrMzIwfDAsc3Q9RXQrMTYwfDAsU3Q9RXQsYXQ9MHxhWzYzMjIwKygobXw9MCk8PDIpPj4y''@;'; put 'put ''XSxHPShwfD0wKS0xfDAsYj0oZnw9MCktMjQrKHJ0PTB8QXIoVmU9KDB8KFZlPShmKy0zfDApLzI0fDApKT4wP1ZlOjAsLTI0KSl8MCwoYXQrR3wwKT49MClmb3IoRD1hdCtwfDAsaz1WZS1HfDAsTT0wO19bcWUrKE08PDMpPj4zXT1BPSgwfGspPDA/MDorKDB8YVs2MzIzNisoazw8Mik+PjJd''@;'; put 'put ''KSwoMHwoTT1NKzF8MCkpIT0oMHxEKTspaz1rKzF8MDtmb3IoUj0oMHxwKT4wLEQ9MDs7KXtpZihSKXtNPUQrR3wwLEE9MCxrPTA7ZG97QSs9K19bbCsoazw8Myk+PjNdKitfW3FlKyhNLWs8PDMpPj4zXSxrPWsrMXwwfXdoaWxlKCgwfGspIT0oMHxwKSl9ZWxzZSBBPTA7aWYoX1tTdCsoRDw8''@;'; put 'put ''Myk+PjNdPUEsISgoMHxEKTwoMHxhdCkpKWJyZWFrO0Q9RCsxfDB9YmU9KDB8Yik+MCxPZT0yNC1ifDAsTGU9MjMtYnwwLFJlPSgwfHApPjAsSGU9MD09KDB8Yiksaz1hdDtlOmZvcig7Oyl7aWYoQT0rX1tTdCsoazw8Myk+PjNdLFI9KDB8ayk+MClmb3IoTT1rLEQ9MDthW1dlKyhEPDwyKT4+''@;'; put 'put ''Ml09fn4oQS0xNjc3NzIxNioodz0rKDB8fn4oNS45NjA0NjQ0Nzc1MzkwNjNlLTgqQSkpKSksZ2U9TSxBPStfW1N0KygoTT1NKy0xfDApPDwzKT4+M10rdywhKCgwfGdlKTw9MSk7KUQ9RCsxfDA7QT0rdmcoQSxiKSxBLT04KitjZiguMTI1KkEpLEEtPSsoMHwoTT1+fkEpKTtkb3tpZighYmUp''@;'; put 'put ''e2lmKEhlKXtEPWFbV2UrKGsrLTE8PDIpPj4yXT4+MjMsa3Q9MTk7YnJlYWt9aWYoQT49LjUpe0Q9MixrdD0yMDticmVha31HPTAsZ2U9TTticmVha31hWyhnZT1XZSsoaystMTw8Mil8MCk+PjJdPUQ9KEQ9MHxhW2dlPj4yXSktKChrdD1EPj5PZSk8PE9lKXwwLEQ+Pj1MZSxNPWt0K018MCxr''@;'; put 'put ''dD0xOX13aGlsZSgwKTtpZigxOT09KDB8a3QpJiYoa3Q9MCwoMHxEKT4wP2t0PTIwOihHPUQsZ2U9TSkpLDIwPT0oMHxrdCkpe2lmKGt0PTAsZ2U9TSsxfDAsUil7TT0wLHBlPTA7ZG97cT0wfGFbKEc9V2UrKHBlPDwyKXwwKT4+Ml0sTT8oUj0xNjc3NzIxNSxrdD0yMyk6cT8oTT0xLFI9MTY3''@;'; put 'put ''NzcyMTYsa3Q9MjMpOk09MCwyMz09KDB8a3QpJiYoa3Q9MCxhW0c+PjJdPVItcSkscGU9cGUrMXwwfXdoaWxlKCgwfHBlKSE9KDB8aykpfWVsc2UgTT0wO3Q6ZG97aWYoYmUpe3N3aXRjaCgwfGIpe2Nhc2UgMTpSPTgzODg2MDc7YnJlYWs7Y2FzZSAyOlI9NDE5NDMwMzticmVhaztkZWZhdWx0''@;'; put 'put ''OmJyZWFrIHR9YVsocGU9V2UrKGsrLTE8PDIpfDApPj4yXT1hW3BlPj4yXSZSfX13aGlsZSgwKTsyPT0oMHxEKT8oQT0xLUEsTT8oRz0yLEEtPSt2ZygxLGIpKTpHPTIpOkc9RH1pZigwIT1BKXtrdD00MjticmVha31pZigoMHxrKT4oMHxhdCkpe009MCxEPWs7ZG97TXw9YVtXZSsoKEQ9RCst''@;'; put 'put ''MXwwKTw8Mik+PjJdfXdoaWxlKCgwfEQpPigwfGF0KSk7aWYoTSl7a3Q9NDE7YnJlYWt9TT0xfWVsc2UgTT0xO2Zvcig7ISgwfGFbV2UrKGF0LU08PDIpPj4yXSk7KU09TSsxfDA7aWYoUj1NK2t8MCwoMHxNKTw9MClrPVI7ZWxzZSBmb3IoOzspe2lmKF9bcWUrKChNPWsrcHwwKTw8Myk+PjNd''@;'; put 'put ''PSsoMHxhWzYzMjM2KygoRD1rKzF8MCkrVmU8PDIpPj4yXSksUmUpe0E9MCxrPTA7ZG97QSs9K19bbCsoazw8Myk+PjNdKitfW3FlKyhNLWs8PDMpPj4zXSxrPWsrMXwwfXdoaWxlKCgwfGspIT0oMHxwKSl9ZWxzZSBBPTA7aWYoX1tTdCsoRDw8Myk+PjNdPUEsISgoMHxEKTwoMHxSKSkpe2s9''@;'; put 'put ''Ujtjb250aW51ZSBlfWs9RH19aWYoNDE9PSgwfGt0KSlmb3IoOzspe2lmKGt0PTAsYj1iKy0yNHwwLDB8YVtXZSsoKGs9aystMXwwKTw8Mik+PjJdKXtSPWs7YnJlYWt9a3Q9NDF9ZWxzZSA0Mj09KDB8a3QpJiYoKEE9K3ZnKEEsMC1ifDApKT49MTY3NzcyMTYmJihhW1dlKyhrPDwyKT4+Ml09''@;'; put 'put ''fn4oQS0xNjc3NzIxNioodz0rKDB8fn4oNS45NjA0NjQ0Nzc1MzkwNjNlLTgqQSkpKSksYj1ydCtmfDAsaz1rKzF8MCxBPXcpLGFbV2UrKGs8PDIpPj4yXT1+fkEsUj1rKTtpZihEPSgwfFIpPi0xKXtmb3IoQT0rdmcoMSxiKSxiPVI7X1tTdCsoYjw8Myk+PjNdPUEqKygwfGFbV2UrKGI8PDIp''@;'; put 'put ''Pj4yXSksKDB8Yik+MDspQSo9NS45NjA0NjQ0Nzc1MzkwNjNlLTgsYj1iKy0xfDA7aWYoRClmb3Ioaz1SOzspe2ZvcihNPVIta3wwLGI9MCxBPTA7QSs9K19bMTA5MDQrKGI8PDMpPj4zXSorX1tTdCsoYitrPDwzKT4+M10sISgoMHxiKT49KDB8YXQpfCgwfGIpPj0oMHxNKSk7KWI9YisxfDA7''@;'; put 'put ''aWYoX1tzdCsoTTw8Myk+PjNdPUEsISgoMHxrKT4wKSlicmVhaztrPWsrLTF8MH19c3dpdGNoKDB8bSl7Y2FzZSAwOmlmKEQpZm9yKEE9MCxiPVI7QSs9K19bc3QrKGI8PDMpPj4zXSwoMHxiKT4wOyliPWIrLTF8MDtlbHNlIEE9MDt3PTA9PSgwfEcpP0E6LUEsa3Q9NzM7YnJlYWs7Y2FzZSAy''@;'; put 'put ''OmNhc2UgMTppZihEKWZvcihBPTAsYj1SO0ErPStfW3N0KyhiPDwzKT4+M10sKDB8Yik+MDspYj1iKy0xfDA7ZWxzZSBBPTA7aWYoX1tjPj4zXT0oaz0wPT0oMHxHKSk/QTotQSxBPStfW3N0Pj4zXS1BLCgwfFIpPj0xKWZvcihiPTE7QSs9K19bc3QrKGI8PDMpPj4zXSwoMHxiKSE9KDB8Uik7''@;'; put 'put ''KWI9YisxfDA7dz1rP0E6LUEsYz1jKzh8MCxrdD03MzticmVhaztjYXNlIDM6aWYoKDB8Uik+MCl7Yj1SLEE9K19bc3QrKFI8PDMpPj4zXTtkb3tfW3N0Kygoa3Q9Yik8PDMpPj4zXT0oWnQ9QSkrKCh3PStfWyhTdD1zdCsoKGI9YistMXwwKTw8Myl8MCk+PjNdKS0oQT13K0EpKSxfW1N0Pj4z''@;'; put 'put ''XT1BfXdoaWxlKCgwfGt0KT4xKTtpZihrPSgwfFIpPjEpe2I9UixBPStfW3N0KyhSPDwzKT4+M107ZG97X1tzdCsoKGt0PWIpPDwzKT4+M109KHc9QSkrKChadD0rX1soU3Q9c3QrKChiPWIrLTF8MCk8PDMpfDApPj4zXSktKEE9WnQrQSkpLF9bU3Q+PjNdPUF9d2hpbGUoKDB8a3QpPjIpO2lm''@;'; put 'put ''KGspZm9yKGI9Uix3PTA7dys9K19bc3QrKGI8PDMpPj4zXSwoMHxiKT4yOyliPWIrLTF8MDtlbHNlIHc9MH1lbHNlIHc9MH1lbHNlIHc9MDtBPStfW3N0Pj4zXSxHPyhfW2M+PjNdPS1BLHc9LXcsQT0tK19bc3QrOD4+M10pOihfW2M+PjNdPUEsQT0rX1tzdCs4Pj4zXSksX1tjKzg+PjNdPUEs''@;'; put 'put ''Yz1jKzE2fDAsa3Q9NzN9cmV0dXJuIDczPT0oMHxrdCkmJihfW2M+PjNdPXcpLGxlPUV0LDcmZ2V8MH1mdW5jdGlvbiB2ZyhsLGMpe2w9K2w7dmFyIGY9MCxwPTA7cmV0dXJuKDB8KGN8PTApKTw9MTAyMz8oMHxjKTwtMTAyMiYmKGwqPTIyMjUwNzM4NTg1MDcyMDE0ZS0zMjQsZj1jKzIwNDR8''@;'; put 'put ''MCxsPShwPSgwfGMpPC0yMDQ0KT8yMjI1MDczODU4NTA3MjAxNGUtMzI0Kmw6bCxjPXA/KDB8Zik+LTEwMjI/ZjotMTAyMjpjKzEwMjJ8MCk6KGwqPTg5ODg0NjU2NzQzMTE1OGUyOTMscD1jKy0yMDQ2fDAsbD0oZj0oMHxjKT4yMDQ2KT84OTg4NDY1Njc0MzExNThlMjkzKmw6bCxjPWY/KDB8''@;'; put 'put ''cCk8MTAyMz9wOjEwMjM6YystMTAyM3wwKSxmPTB8Wm8oYysxMDIzfDAsMCw1MikscD1EbixhW1NpPj4yXT1mLGFbU2krND4+Ml09cCwrbCorX1tTaT4+M119ZnVuY3Rpb24gU2oobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTA7X1tTaT4+M109bD0rbCxjPTIxNDc0ODM2NDcmKGY9MHxhW1Np''@;'; put 'put ''KzQ+PjJdKTtkb3tpZihjPj4+MD4yMTQ2NDM1MDcxKWwrPWw7ZWxzZXtpZihjPj4+MDwxMDQ4NTc2KXtpZihfW1NpPj4zXT0weDQwMDAwMDAwMDAwMDAwKmwsIShjPTIxNDc0ODM2NDcmKGY9MHxhW1NpKzQ+PjJdKSkpYnJlYWs7cD02OTYyMTk3OTV9ZWxzZSBwPTcxNTA5NDE2MzthW1NpPj4y''@;'; put 'put ''XT0wLGFbU2krND4+Ml09KChjPj4+MCkvM3wwKStwfC0yMTQ3NDgzNjQ4JmYsX1tTaT4+M109KChBPShtPStfW1NpPj4zXSkqbSoobS9sKSkqKEEqQSkqKC4xNDU5OTYxOTI4ODY2MTI0NSpBLS43NTgzOTc5MzQ3Nzg3NjYpKyhBKigxLjYyMTQyOTcyMDEwNTM1NDUqQS0xLjg4NDk3OTc5NTQz''@;'; put 'put ''Mzc3MTcpKzEuODc1OTUxODI0MjcxNzcpKSptLGY9MHx6bCgwfGFbU2k+PjJdLDB8YVtTaSs0Pj4yXSwtMjE0NzQ4MzY0OCwwKSxwPURuLGFbU2k+PjJdPS0xMDczNzQxODI0JmYsYVtTaSs0Pj4yXT1wLGw9KChsLz0obT0rX1tTaT4+M10pKm0pLW0pLyhtK20rbCkqbSttfX13aGlsZSgwKTty''@;'; put 'put ''ZXR1cm4rbH1mdW5jdGlvbiBzJChsLGMpe3JldHVybisgK2Z1bmN0aW9uIEd1ZShsLGMpe2M9K2M7dmFyIHAsZj0wO3JldHVybiBfW1NpPj4zXT1sPStsLHA9MHxhW1NpPj4yXSxmPTB8YVtTaSs0Pj4yXSxfW1NpPj4zXT1jLGY9LTIxNDc0ODM2NDgmYVtTaSs0Pj4yXXwyMTQ3NDgzNjQ3JmYs''@;'; put 'put ''YVtTaT4+Ml09cCxhW1NpKzQ+PjJdPWYsKyArX1tTaT4+M119KGw9K2wsYz0rYyl9ZnVuY3Rpb24gdSQobCxjKXtyZXR1cm4rICt2ZyhsPStsLGN8PTApfWZ1bmN0aW9uIGMkKGwsYyl7cmV0dXJuKyArZnVuY3Rpb24gV3VlKGwsYyl7Yz0rYzt2YXIgRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9''@;'; put 'put ''MCxrPTAsTT0wLEQ9MCxSPTAscT0wO19bU2k+PjNdPWw9K2wsdz0wfGFbU2k+PjJdLGs9MHxhW1NpKzQ+PjJdLF9bU2k+PjNdPWMsRD0wfGFbU2k+PjJdLFI9MHxhW1NpKzQ+PjJdLHA9MjA0NyYocD0wfHdsKDB8dywwfGssNTIpKSxNPTIwNDcmKE09MHx3bCgwfEQsMHxSLDUyKSksRz0tMjE0''@;'; put 'put ''NzQ4MzY0OCZrLEE9MHxabygwfEQsMHxSLDEpLGI9RG47ZTpkb3tpZigwPT0oMHxBKSYwPT0oMHxiKXx8KG09MHxZdWUoYyksZj0yMTQ3NDgzNjQ3JkRuLDIwNDc9PSgwfHApfGY+Pj4wPjIxNDY0MzUwNzJ8MjE0NjQzNTA3Mj09KDB8ZikmbT4+PjA+MCkpcT0zO2Vsc2V7aWYoZj0wfFpvKDB8''@;'; put 'put ''dywwfGssMSksISgobT1Ebik+Pj4wPmI+Pj4wfCgwfG0pPT0oMHxiKSZmPj4+MD5BPj4+MCkpcmV0dXJuKygoMHxmKT09KDB8QSkmKDB8bSk9PSgwfGIpPzAqbDpsKTtpZihwKUE9MTA0ODU3NSZrfDEwNDg1NzY7ZWxzZXtpZihmPTB8Wm8oMHx3LDB8aywxMiksKDB8KG09RG4pKT4tMXwtMT09''@;'; put 'put ''KDB8bSkmZj4+PjA+NDI5NDk2NzI5NSl7cD0wO2Rve3A9cCstMXwwLGY9MHxabygwfGYsMHxtLDEpLG09RG59d2hpbGUoKDB8bSk+LTF8LTE9PSgwfG0pJmY+Pj4wPjQyOTQ5NjcyOTUpfWVsc2UgcD0wO3c9MHxabygwfHcsMHxrLDEtcHwwKSxBPURufWlmKE0paz0xMDQ4NTc1JlJ8MTA0ODU3''@;'; put 'put ''NjtlbHNle2lmKG09MHxabygwfEQsMHxSLDEyKSwoMHwoYj1EbikpPi0xfC0xPT0oMHxiKSZtPj4+MD40Mjk0OTY3Mjk1KXtmPTA7ZG97Zj1mKy0xfDAsbT0wfFpvKDB8bSwwfGIsMSksYj1Ebn13aGlsZSgoMHxiKT4tMXwtMT09KDB8YikmbT4+PjA+NDI5NDk2NzI5NSl9ZWxzZSBmPTA7RD0w''@;'; put 'put ''fFpvKDB8RCwwfFIsMS1mfDApLE09ZixrPURufW09MHxTcCgwfHcsMHxBLDB8RCwwfGspLGI9KDB8KGY9RG4pKT4tMXwtMT09KDB8ZikmbT4+PjA+NDI5NDk2NzI5NTt0OmRve2lmKCgwfHApPigwfE0pKXtmb3IoOzspe2lmKGIpe2lmKDA9PSgwfG0pJjA9PSgwfGYpKWJyZWFrfWVsc2UgbT13''@;'; put 'put ''LGY9QTtpZihwPXArLTF8MCxtPTB8U3AoMHwodz0wfFpvKDB8bSwwfGYsMSkpLDB8KEE9RG4pLDB8RCwwfGspLGI9KDB8KGY9RG4pKT4tMXwtMT09KDB8ZikmbT4+PjA+NDI5NDk2NzI5NSwoMHxwKTw9KDB8TSkpYnJlYWsgdH1jPTAqbDticmVhayBlfX13aGlsZSgwKTtpZihiKXtpZigwPT0o''@;'; put 'put ''MHxtKSYwPT0oMHxmKSl7Yz0wKmw7YnJlYWt9fWVsc2UgZj1BLG09dztpZihmPj4+MDwxMDQ4NTc2fDEwNDg1NzY9PSgwfGYpJm0+Pj4wPDApZG97bT0wfFpvKDB8bSwwfGYsMSksZj1EbixwPXArLTF8MH13aGlsZShmPj4+MDwxMDQ4NTc2fDEwNDg1NzY9PSgwfGYpJm0+Pj4wPDApOygwfHAp''@;'; put 'put ''PjA/KFI9MHx6bCgwfG0sMHxmLDAsLTEwNDg1NzYpLGY9RG4scD0wfFpvKDB8cCwwLDUyKSxmfD1EbixwfD1SKToocD0wfHdsKDB8bSwwfGYsMS1wfDApLGY9RG4pLGFbU2k+PjJdPXAsYVtTaSs0Pj4yXT1mfEcsYz0rX1tTaT4+M119fXdoaWxlKDApO3JldHVybiAzPT0oMHxxKSYmKGM9KGMq''@;'; put 'put ''PWwpL2MpLCtjfShsPStsLGM9K2MpfWZ1bmN0aW9uIFl1ZShsKXtyZXR1cm4gX1tTaT4+M109bD0rbCxEbj0wfGFbU2krND4+Ml0sMHxhW1NpPj4yXX1mdW5jdGlvbiAkeShsLGMpe2M9K2M7dmFyIGIsayxNLEQsUixHLHEscGUsZj0wLHA9MCxtPTAsQT0wLHc9MCxnZT0wO0c9bGUsbGU9bGUr''@;'; put 'put ''MzJ8MCxrPUcrMjR8MCxNPUcrMTZ8MCxEPUcrOHwwLFI9RyxfW1NpPj4zXT1sPStsLGdlPTB8YVtTaT4+Ml0sQT0wfGFbU2krND4+Ml0sX1tTaT4+M109YyxwZT0odz0oQSY9MjE0NzQ4MzY0Nyk+Pj4wPChtPTIxNDc0ODM2NDcmYVtTaSs0Pj4yXSk+Pj4wfCgwfEEpPT0oMHxtKSZnZT4+PjA8''@;'; put 'put ''KHA9MHxhW1NpPj4yXSk+Pj4wKT9wOmdlLHE9dz9tOkEscD13P2dlOnAsbT13P0E6bSxBPTB8d2woMHxwZSwwfHEsNTIpLHc9MHx3bCgwfHAsMHxtLDUyKSxhW1NpPj4yXT1wZSxhW1NpKzQ+PjJdPXEsbD0rX1tTaT4+M10sYVtTaT4+Ml09cCxhW1NpKzQ+PjJdPW0sYj0rX1tTaT4+M107ZG97''@;'; put 'put ''aWYoMjA0NyE9KDB8dykpe2lmKCEoMD09KDB8cCkmMD09KDB8bSl8MjA0Nz09KDB8QSkpKXtpZigoQS13fDApPjY0KXtsKz1iO2JyZWFrfSgwfEEpPjE1MzM/KGY9NS4yNjAxMzU5MDE1NDgzNzRlMjEwLGM9MTkwMTA5MTU2NjI5NTE2ZS0yMjUqbCxsPTE5MDEwOTE1NjYyOTUxNmUtMjI1KmIp''@;'; put 'put ''OihmPShnZT0oMHx3KTw1NzMpPzE5MDEwOTE1NjYyOTUxNmUtMjI1OjEsYz1nZT81LjI2MDEzNTkwMTU0ODM3NGUyMTAqbDpsLGw9Z2U/NS4yNjAxMzU5MDE1NDgzNzRlMjEwKmI6YiksVXVlKGssTSxjKSxVdWUoRCxSLGwpLGw9ZiorRDAoKygrX1tSPj4zXSsgK19bTT4+M10rICtfW0Q+PjNd''@;'; put 'put ''KyArX1trPj4zXSkpfX1lbHNlIGw9Yn13aGlsZSgwKTtyZXR1cm4gbGU9RywrbH1mdW5jdGlvbiBVdWUobCxjLGYpe2N8PTA7dmFyIHAsbT0wO209MTM0MjE3NzI5KihmPStmKSxwPWYtKG0rPWYtbSksX1sobHw9MCk+PjNdPWYqPWYsX1tjPj4zXT1wKnArKG0qbS1mKzIqbSpwKX1mdW5jdGlv''@;'; put 'put ''biBnTChsLGMsZil7Y3w9MCxmfD0wO3ZhciBBLGIscD0wLG09MCx3PTAsaz0wO2I9bGUsbGU9bGUrMTZ8MCxBPWIsX1tTaT4+M109bD0rbCxtPTIxNDc0ODM2NDcmYVtTaSs0Pj4yXTtkb3tpZihtPj4+MDwxMDcyMjQzMTk2KXtpZihtPj4+MDwxMDQ0ODE2MDMwKXtfW2M+PjNdPWwsX1tmPj4z''@;'; put 'put ''XT0xO2JyZWFrfV9bYz4+M109K2kkKGwsMCwwKSxfW2Y+PjNdPStsJChsLDApO2JyZWFrfWlmKG0+Pj4wPjIxNDY0MzUwNzEpe19bZj4+M109dz1sLWwsX1tjPj4zXT13O2JyZWFrfXN3aXRjaChtPTB8WnVlKGwsQSkscD0raSQoK19bQT4+M10sK19bKGs9QSs4fDApPj4zXSwxKSxsPStsJCgr''@;'; put 'put ''X1tBPj4zXSwrX1trPj4zXSksMyZtKXtjYXNlIDA6X1tjPj4zXT1wLHc9bDticmVhaztjYXNlIDE6X1tjPj4zXT1sLHc9LXA7YnJlYWs7Y2FzZSAyOl9bYz4+M109LXAsdz0tbDticmVhaztjYXNlIDM6X1tjPj4zXT0tbCx3PXB9X1tmPj4zXT13fXdoaWxlKDApO2xlPWJ9ZnVuY3Rpb24gVEFl''@;'; put 'put ''KGwsYyl7cmV0dXJuKyArYSQobD0rbCxjfD0wKX1mdW5jdGlvbiBzMihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wO2lmKGZ8PTApe3A9MHxmZVtsPj4wXTtlOmRve2lmKHA8PDI0Pj4yNClmb3IoOzspe2lmKCEocDw8MjQ+PjI0PT0obT0wfGZlW2M+PjBdKTw8MjQ+PjI0JjAhPSgwfChm''@;'; put 'put ''PWYrLTF8MCkpJm08PDI0Pj4yNCE9MCkpYnJlYWsgZTtpZihjPWMrMXwwLCEoKHA9MHxmZVsobD1sKzF8MCk+PjBdKTw8MjQ+PjI0KSl7cD0wO2JyZWFrfX1lbHNlIHA9MH13aGlsZSgwKTtwPSgyNTUmcCktKDB8WHRbYz4+MF0pfDB9ZWxzZSBwPTA7cmV0dXJuIDB8cH1mdW5jdGlvbiAkcyhs''@;'; put 'put ''LGMpe3JldHVybiBsPTB8cEwobHw9MCxjfD0wKSwwfCgoMHxmZVtsPj4wXSk9PSgyNTUmYyk8PDI0Pj4yND9sOjApfWZ1bmN0aW9uICRjKGwpe3JldHVybiAxJigzMj09KDB8KGx8PTApKXwobCstOXwwKT4+PjA8NSl8MH1mdW5jdGlvbiBlUyhsLGMsZil7bHw9MDt2YXIgcD0wLG09MCxBPTAs''@;'; put 'put ''dz0wO0E9MjU1JihjfD0wKSxwPTAhPSgwfChmfD0wKSk7ZTpkb3tpZihwJjAhPSgzJmx8MCkpZm9yKG09MjU1JmM7Oyl7aWYoKDB8ZmVbbD4+MF0pPT1tPDwyND4+MjQpe3c9NjticmVhayBlfWlmKCEoKHA9MCE9KDB8KGY9ZistMXwwKSkpJjAhPSgzJihsPWwrMXwwKXwwKSkpe3c9NTticmVh''@;'; put 'put ''a319ZWxzZSB3PTV9d2hpbGUoMCk7NT09KDB8dykmJihwP3c9NjpmPTApO2U6ZG97aWYoNj09KDB8dykmJihtPTI1NSZjLCgwfGZlW2w+PjBdKSE9bTw8MjQ+PjI0KSl7cD0wfEFyKEEsMTY4NDMwMDkpO3Q6ZG97aWYoZj4+PjA+Myl7Zm9yKDshKCgtMjEzOTA2MjE0NCYoQT1hW2w+PjJdXnAp''@;'; put 'put ''Xi0yMTM5MDYyMTQ0KSZBKy0xNjg0MzAwOXwwKTspaWYobD1sKzR8MCwoZj1mKy00fDApPj4+MDw9Myl7dz0xMTticmVhayB0fX1lbHNlIHc9MTF9d2hpbGUoMCk7aWYoMTE9PSgwfHcpJiYhZil7Zj0wO2JyZWFrfWZvcig7Oyl7aWYoKDB8ZmVbbD4+MF0pPT1tPDwyND4+MjQpYnJlYWsgZTtp''@;'; put 'put ''ZihsPWwrMXwwLCEoZj1mKy0xfDApKXtmPTA7YnJlYWt9fX19d2hpbGUoMCk7cmV0dXJuIDB8KDB8Zj9sOjApfWZ1bmN0aW9uIGYkKGwsYyxmLHAsbSl7dmFyIEEsdyxiLGs7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxrPWxlLGxlPWxlKzEyOHwwLGFbKHc9ayk+PjJdPTAsYVso''@;'; put 'put ''Yj13KzR8MCk+PjJdPWwsYVt3KzQ0Pj4yXT1sLGFbKEE9dys4fDApPj4yXT0oMHxsKTwwPy0xOmwrMjE0NzQ4MzY0N3wwLGFbdys3Nj4+Ml09LTEsY2godywwKSxmPTB8aCQodyxmLDEscCxtKSwwfGMmJihhW2M+PjJdPWwrKCgwfGFbYj4+Ml0pKygwfGFbdysxMDg+PjJdKS0oMHxhW0E+PjJd''@;'; put 'put ''KSkpLGxlPWssMHxmfWZ1bmN0aW9uIGNoKGwsYyl7dmFyIGYscCxtO2FbMTA0KyhsfD0wKT4+Ml09Y3w9MCxhW2wrMTA4Pj4yXT1tPShmPTB8YVtsKzg+PjJdKS0ocD0wfGFbbCs0Pj4yXSl8MCxhW2wrMTAwPj4yXT0wIT0oMHxjKSYoMHxtKT4oMHxjKT9wK2N8MDpmfWZ1bmN0aW9uIGgkKGws''@;'; put 'put ''YyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wO2U6ZG97aWYoYz4+PjA+MzYpYVs0NzY0M109MjIsbT0wLHA9MDtlbHNle3BlPWwrNHwwLHE9bCsxMDB8MDtkb3soQT0wfGFbcGU+PjJdKT4+PjA8KDB8''@;'; put 'put ''YVtxPj4yXSk+Pj4wPyhhW3BlPj4yXT1BKzEsQT0wfFh0W0E+PjBdKTpBPTB8SWwobCl9d2hpbGUoMCE9KDB8JGMoQSkpKTt0OmRve3N3aXRjaCgwfEEpe2Nhc2UgNDM6Y2FzZSA0NTppZihBPSg0NT09KDB8QSkpPDwzMT4+MzEsKHc9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbcT4+Ml0pPj4+MCl7''@;'; put 'put ''YVtwZT4+Ml09dysxLEc9QSxBPTB8WHRbdz4+MF07YnJlYWsgdH1HPUEsQT0wfElsKGwpO2JyZWFrIHQ7ZGVmYXVsdDpHPTB9fXdoaWxlKDApO3c9MD09KDB8Yyk7ZG97aWYoMTY9PSgxNnxjKSY0OD09KDB8QSkpe2lmKChBPTB8YVtwZT4+Ml0pPj4+MDwoMHxhW3E+PjJdKT4+PjA/KGFbcGU+''@;'; put 'put ''PjJdPUErMSxBPTB8WHRbQT4+MF0pOkE9MHxJbChsKSwxMjAhPSgzMnxBKSl7aWYodyl7Yz04LEQ9NDY7YnJlYWt9RD0zMjticmVha31pZigoQT0wfGFbcGU+PjJdKT4+PjA8KDB8YVtxPj4yXSk+Pj4wPyhhW3BlPj4yXT1BKzEsQT0wfFh0W0E+PjBdKTpBPTB8SWwobCksKDB8WHRbMTQ5NTky''@;'; put 'put ''K0E+PjBdKT4xNSl7aWYoKHA9MD09KDB8YVtxPj4yXSkpfHwoYVtwZT4+Ml09KDB8YVtwZT4+Ml0pLTEpLCFmKXtjaChsLDApLG09MCxwPTA7YnJlYWsgZX1pZihwKXttPTAscD0wO2JyZWFrIGV9YVtwZT4+Ml09KDB8YVtwZT4+Ml0pLTEsbT0wLHA9MDticmVhayBlfWM9MTYsRD00Nn1lbHNl''@;'; put 'put ''e2lmKCEoKGM9dz8xMDpjKT4+PjA+KDB8WHRbMTQ5NTkyK0E+PjBdKT4+PjApKXswfGFbcT4+Ml0mJihhW3BlPj4yXT0oMHxhW3BlPj4yXSktMSksY2gobCwwKSxhWzQ3NjQzXT0yMixtPTAscD0wO2JyZWFrIGV9RD0zMn19d2hpbGUoMCk7dDpkb3tpZigzMj09KDB8RCkpaWYoMTA9PSgwfGMp''@;'; put 'put ''KXtpZigoYz1BKy00OHwwKT4+PjA8MTApe0E9MCx3PWM7ZG97QT0oMTAqQXwwKSt3fDAsKGM9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbcT4+Ml0pPj4+MD8oYVtwZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLHc9YystNDh8MH13aGlsZSh3Pj4+MDwxMCZBPj4+MDw0Mjk0OTY3Mjkp''@;'; put 'put ''O2Y9MH1lbHNlIGM9QSxBPTAsZj0wO2lmKChiPWMrLTQ4fDApPj4+MDwxMCl7dz1jO2Rve2lmKGM9MHxpdygwfEEsMHxmLDEwLDApLChrPURuKT4+PjA+KFI9fihNPSgoMHxiKTwwKTw8MzE+PjMxKSk+Pj4wfCgwfGspPT0oMHxSKSZjPj4+MD5+Yj4+PjApe2M9MTAsRD03MjticmVhayB0fUE9''@;'; put 'put ''MHx6bCgwfGMsMHxrLDB8YiwwfE0pLGY9RG4sKGM9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbcT4+Ml0pPj4+MD8oYVtwZT4+Ml09YysxLHc9MHxYdFtjPj4wXSk6dz0wfElsKGwpLGI9dystNDh8MH13aGlsZShiPj4+MDwxMCYoZj4+PjA8NDI5NDk2NzI5fDQyOTQ5NjcyOT09KDB8ZikmQT4+PjA8''@;'; put 'put ''MjU3Njk4MDM3OCkpO2I+Pj4wPjk/KHc9RyxjPWYpOihjPTEwLEQ9NzIpfWVsc2Ugdz1HLGM9Zn1lbHNlIEQ9NDZ9d2hpbGUoMCk7dDpkb3tpZig0Nj09KDB8RCkpe2lmKCEoYystMSZjKSl7aWYoRD0wfGZlWzE0OTg0OCsoKDIzKmN8MCk+Pj41JjcpPj4wXSxjPj4+MD4odz0yNTUmKGY9MHxm''@;'; put 'put ''ZVsxNDk1OTIrQT4+MF0pKT4+PjApe0E9MCxiPXc7ZG97QT1ifEE8PEQsKHc9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbcT4+Ml0pPj4+MD8oYVtwZT4+Ml09dysxLHc9MHxYdFt3Pj4wXSk6dz0wfElsKGwpLGI9MjU1JihmPTB8ZmVbMTQ5NTkyK3c+PjBdKX13aGlsZShBPj4+MDwxMzQyMTc3Mjgm''@;'; put 'put ''Yz4+PjA+Yj4+PjApO2I9MH1lbHNlIHc9QSxiPTAsQT0wO2lmKGs9MHx3bCgtMSwtMSwwfEQpLGM+Pj4wPD0oMjU1JmYpPj4+MHwoTT1Ebik+Pj4wPGI+Pj4wfCgwfE0pPT0oMHxiKSZrPj4+MDxBPj4+MCl7Zj1iLEQ9NzI7YnJlYWt9Zm9yKHc9Yjs7KXtpZihBPTB8Wm8oMHxBLDB8dywwfEQp''@;'; put 'put ''LGI9RG4sQXw9MjU1JmYsKHc9MHxhW3BlPj4yXSk+Pj4wPCgwfGFbcT4+Ml0pPj4+MD8oYVtwZT4+Ml09dysxLHc9MHxYdFt3Pj4wXSk6dz0wfElsKGwpLGM+Pj4wPD0oMjU1JihmPTB8ZmVbMTQ5NTkyK3c+PjBdKSk+Pj4wfGI+Pj4wPk0+Pj4wfCgwfGIpPT0oMHxNKSZBPj4+MD5rPj4+MCl7''@;'; put 'put ''Zj1iLEQ9NzI7YnJlYWsgdH13PWJ9fWlmKGM+Pj4wPih3PTI1NSYoZj0wfGZlWzE0OTU5MitBPj4wXSkpPj4+MCl7QT0wLGI9dztkb3tBPWIrKDB8QXIoQSxjKSl8MCwodz0wfGFbcGU+PjJdKT4+PjA8KDB8YVtxPj4yXSk+Pj4wPyhhW3BlPj4yXT13KzEsdz0wfFh0W3c+PjBdKTp3PTB8SWwo''@;'; put 'put ''bCksYj0yNTUmKGY9MHxmZVsxNDk1OTIrdz4+MF0pfXdoaWxlKEE+Pj4wPDExOTMwNDY0NyZjPj4+MD5iPj4+MCk7Yj0wfWVsc2Ugdz1BLEE9MCxiPTA7aWYoYz4+PjA+KDI1NSZmKT4+PjApZm9yKEQ9MHxvdygtMSwtMSwwfGMsMCksUj1EbixNPWI7Oyl7aWYoTT4+PjA+Uj4+PjB8KDB8TSk9''@;'; put 'put ''PSgwfFIpJkE+Pj4wPkQ+Pj4wKXtmPU0sRD03MjticmVhayB0fWlmKGI9MHxpdygwfEEsMHxNLDB8YywwKSwoaz1Ebik+Pj4wPjQyOTQ5NjcyOTV8LTE9PSgwfGspJmI+Pj4wPn4oZiY9MjU1KT4+PjApe2Y9TSxEPTcyO2JyZWFrIHR9aWYoQT0wfHpsKDB8YiwwfGssMHxmLDApLGI9RG4sKHc9''@;'; put 'put ''MHxhW3BlPj4yXSk+Pj4wPCgwfGFbcT4+Ml0pPj4+MD8oYVtwZT4+Ml09dysxLHc9MHxYdFt3Pj4wXSk6dz0wfElsKGwpLGM+Pj4wPD0oMjU1JihmPTB8ZmVbMTQ5NTkyK3c+PjBdKSk+Pj4wKXtmPWIsRD03MjticmVha31NPWJ9ZWxzZSBmPWIsRD03Mn19d2hpbGUoMCk7aWYoNzI9PSgwfEQp''@;'; put 'put ''KWlmKGM+Pj4wPigwfFh0WzE0OTU5Mit3Pj4wXSk+Pj4wKXtkb3soQT0wfGFbcGU+PjJdKT4+PjA8KDB8YVtxPj4yXSk+Pj4wPyhhW3BlPj4yXT1BKzEsQT0wfFh0W0E+PjBdKTpBPTB8SWwobCl9d2hpbGUoYz4+PjA+KDB8WHRbMTQ5NTkyK0E+PjBdKT4+PjApO2FbNDc2NDNdPTM0LHc9MD09''@;'; put 'put ''KDEmcHwwKSYhMD9HOjAsYz1tLEE9cH1lbHNlIHc9RyxjPWY7aWYoMHxhW3E+PjJdJiYoYVtwZT4+Ml09KDB8YVtwZT4+Ml0pLTEpLCEoYz4+PjA8bT4+PjB8KDB8Yyk9PSgwfG0pJkE+Pj4wPHA+Pj4wKSl7aWYoISgwIT0oMSZwfDApfCExfDAhPSgwfHcpKSl7YVs0NzY0M109MzQscD0wfHps''@;'; put 'put ''KDB8cCwwfG0sLTEsLTEpLG09RG47YnJlYWt9aWYoYz4+PjA+bT4+PjB8KDB8Yyk9PSgwfG0pJkE+Pj4wPnA+Pj4wKXthWzQ3NjQzXT0zNDticmVha319cD0wfFNwKEFed3wwLGNeKHA9KCgwfHcpPDApPDwzMT4+MzEpfDAsMHx3LDB8cCksbT1Ebn19d2hpbGUoMCk7cmV0dXJuIERuPW0sMHxw''@;'; put 'put ''fWZ1bmN0aW9uIElsKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MDtyZXR1cm4gMCE9KDB8KG09MHxhWyhmPTEwNCsobHw9MCl8MCk+PjJdKSkmJigwfGFbbCsxMDg+PjJdKT49KDB8bSk/QT00OigwfChjPTB8bUwobCkpKT49MD8ocD0wfGFbZj4+Ml0sZj1sKzh8MCxwPyh3PTB8YVtm''@;'; put 'put ''Pj4yXSxmPXAtKDB8YVtsKzEwOD4+Ml0pfDAscD13LGY9KHctKG09MHxhW2wrND4+Ml0pfDApPCgwfGYpP3A6bSsoZistMSl8MCk6Zj1wPTB8YVtmPj4yXSxhW2wrMTAwPj4yXT1mLGY9bCs0fDAscD9hWyh3PWwrMTA4fDApPj4yXT1wKzEtKGY9MHxhW2Y+PjJdKSsoMHxhW3c+PjJdKTpmPTB8''@;'; put 'put ''YVtmPj4yXSwoMHxjKSE9KDB8WHRbKGY9ZistMXwwKT4+MF0pJiYoZmVbZj4+MF09YykpOkE9NCw0PT0oMHxBKSYmKGFbbCsxMDA+PjJdPTAsYz0tMSksMHxjfWZ1bmN0aW9uIG1MKGwpe3ZhciBjLGY7cmV0dXJuIGY9bGUsbGU9bGUrMTZ8MCxjPWYsbD0wPT0oMHxkJChsfD0wKSkmJjE9PSgw''@;'; put 'put ''fG1pWzYzJmFbbCszMj4+Ml1dKGwsYywxKSk/MHxYdFtjPj4wXTotMSxsZT1mLDB8bH1mdW5jdGlvbiBkJChsKXt2YXIgYz0wLGY9MDtyZXR1cm4gZmVbKGM9NzQrKGx8PTApfDApPj4wXT0yNTUrKGY9MHxmZVtjPj4wXSl8ZiwoMHxhWyhjPWwrMjB8MCk+PjJdKT4+PjA+KDB8YVsoZj1sKzI4''@;'; put 'put ''fDApPj4yXSk+Pj4wJiZtaVs2MyZhW2wrMzY+PjJdXShsLDAsMCksYVtsKzE2Pj4yXT0wLGFbZj4+Ml09MCxhW2M+PjJdPTAsNCYoYz0wfGFbbD4+Ml0pPyhhW2w+PjJdPTMyfGMsYz0tMSk6KGFbbCs4Pj4yXT1mPSgwfGFbbCs0ND4+Ml0pKygwfGFbbCs0OD4+Ml0pfDAsYVtsKzQ+PjJdPWYs''@;'; put 'put ''Yz1jPDwyNz4+MzEpLDB8Y31mdW5jdGlvbiBwJChsKXtyZXR1cm4oKGx8PTApLTQ4fDApPj4+MDwxMHwwfWZ1bmN0aW9uIGl2KGwpe3JldHVybiAxJigoKGx8PTApLTQ4fDApPj4+MDwxMHwwIT0oMHx2TChsKSkpfDB9ZnVuY3Rpb24gdkwobCl7cmV0dXJuKCgzMnwobHw9MCkpLTk3fDApPj4+''@;'; put 'put ''MDwyNnwwfWZ1bmN0aW9uIHkwKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7Zj0wfGZlWyhsfD0wKT4+MF07ZTpkb3tpZihmPDwyND4+MjQpZm9yKG09MjU1JmY7Oyl7aWYoISgocD0wfGZlW2M+PjBdKTw8MjQ+PjI0KXx8Zjw8MjQ+PjI0IT1wPDwyND4+MjQmJigwfChtPTB8Q3AobSkpKSE9''@;'; put 'put ''KDB8Q3AoMjU1JnApKSlicmVhayBlO2lmKGM9YysxfDAsISgoZj0wfGZlWyhsPWwrMXwwKT4+MF0pPDwyND4+MjQpKXtmPTA7YnJlYWt9bT0yNTUmZn1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4obT0wfENwKDI1NSZmKSktKDB8Q3AoMHxYdFtjPj4wXSkpfDB9ZnVuY3Rpb24gQ3AobCl7cmV0''@;'; put 'put ''dXJuIDB8KDA9PSgwfFF1ZShsfD0wKSk/bDozMnxsKX1mdW5jdGlvbiBRdWUobCl7cmV0dXJuKChsfD0wKS02NXwwKT4+PjA8MjZ8MH1mdW5jdGlvbiBvdihsKXtyZXR1cm4gMHxKdWUobHw9MCwwKX1mdW5jdGlvbiBKdWUobCxjKXtsfD0wO3ZhciB3LGIsZj0wLHA9MCxtPTAsQT0wLGs9MDt3''@;'; put 'put ''PSgoY3w9MCk8PDEpLTF8MCxiPWMrLTF8MDtlOmRve2lmKCEoKGwrLTQzMDA4fDApPj4+MDwyMjI3MnwobCstMTE3NzZ8MCk+Pj4wPDMwNzg0fChsKy0xNTM2fDApPj4+MDwyNTYwfDA9PSgwfGckKGwpKSkpe2lmKChmPTAhPSgwfGMpKSYobCstNDI1NnwwKT4+PjA8NDYpe2lmKCgwfGwpPjQy''@;'; put 'put ''OTMpc3dpdGNoKDB8bCl7Y2FzZSA0Mjk1OmNhc2UgNDMwMTpicmVhaztkZWZhdWx0OmJyZWFrIGV9bD1sKzcyNjR8MDticmVha31pZigobCstMTE1MjB8MCk+Pj4wPDM4JigxXmYpKXtsPWwrLTcyNjR8MDticmVha31mPTA7ZG97aWYoKChwPWwtKDB8aHJbNjYzNDYrKGY8PDIpPj4xXSl8MCkt''@;'; put 'put ''KGImKEE9KG09MHxmZVs2NjM0NisoZjw8MikrMj4+MF0pPDwyND4+MjQpKXwwKT4+PjA8KDB8WHRbNjYzNDYrKGY8PDIpKzM+PjBdKT4+PjApe2s9MTE7YnJlYWt9Zj1mKzF8MH13aGlsZSg2MSE9KDB8ZikpO2lmKDExPT0oMHxrKSl7aWYobTw8MjQ+PjI0PT0xKXtsPWMrbC0oMSZwKXwwO2Jy''@;'; put 'put ''ZWFrfWw9KDB8QXIodyxBKSkrbHwwO2JyZWFrfWY9MHxpdFs2NTg1OCsoKG09MS1jfDApPDwxKT4+MV07dDpkb3tpZihmPDwxNj4+MTYpe2ZvcihwPTA7KDY1NTM1JmZ8MCkhPSgwfGwpOylpZighKChmPTB8aXRbNjU4NTgrKChwPXArMXwwKTw8MikrKG08PDEpPj4xXSk8PDE2Pj4xNikpYnJl''@;'; put 'put ''YWsgdDtsPTB8aHJbNjU4NTgrKHA8PDIpKyhjPDwxKT4+MV07YnJlYWsgZX19d2hpbGUoMCk7cmV0dXJuIDB8KChsKy02NjYwMCsoNDAqY3wwKXwwKT4+PjA8NDA/bCstNDArKDgwKmN8MCl8MDpsKX19d2hpbGUoMCk7cmV0dXJuIDB8bH1mdW5jdGlvbiBnJChsKXtyZXR1cm4gMHwoKGx8PTAp''@;'; put 'put ''Pj4+MDwxMzEwNzI/KDB8WHRbMTQ5ODU3KygoMHxYdFsxNDk4NTcrKGw+Pj44KT4+MF0pPDw1fGw+Pj4zJjMxKT4+MF0pPj4+KDcmbCkmMTpsPj4+MDwxOTY2MDYmMSl9ZnVuY3Rpb24gbDQobCxjLGYpe2x8PTAsY3w9MDt2YXIgcD0wLG09MCxBPTA7aWYoZnw9MCl7cD0wfGZlW2w+PjBdO2U6''@;'; put 'put ''ZG97aWYocDw8MjQ+PjI0KWZvcihBPWwsbD1wLHAmPTI1NTs7KXtpZighKDAhPSgwfChmPWYrLTF8MCkpJihtPTB8ZmVbYz4+MF0pPDwyND4+MjQhPTApfHxsPDwyND4+MjQhPW08PDI0Pj4yNCYmKDB8KHA9MHxDcChwKSkpIT0oMHxDcCgyNTUmbSkpKWJyZWFrIGU7aWYoYz1jKzF8MCwhKChw''@;'; put 'put ''PTB8ZmVbKEE9QSsxfDApPj4wXSk8PDI0Pj4yNCkpe2w9MDticmVha31sPXAscCY9MjU1fWVsc2UgbD0wfXdoaWxlKDApO2w9KGw9MHxDcCgyNTUmbCkpLSgwfENwKDB8WHRbYz4+MF0pKXwwfWVsc2UgbD0wO3JldHVybiAwfGx9ZnVuY3Rpb24gWHVlKGwpe2lmKChsfD0wKT4+PjA+PTI1NSl7''@;'; put 'put ''aWYoISgobCstNTczNDR8MCk+Pj4wPDgxODV8bD4+PjA8ODIzMnwobCstODIzNHwwKT4+PjA8NDcwNjIpKXJldHVybiA2NTUzNCE9KDY1NTM0Jmx8MCkmKGwrLTY1NTMyfDApPj4+MDwxMDQ4NTgwJjF8MDtsPTF9ZWxzZSBsPShsKzEmMTI3KT4+PjA+MzImMTtyZXR1cm4gMHxsfWZ1bmN0aW9u''@;'; put 'put ''IE9BZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MDt2YXIgdyxrLG09MCxBPTAsYj0wLE09MDtrPWxlLGxlPWxlKzE2fDAsbT1rLHA9MHxhWyh3PTA9PSgwfChwfD0wKSk/MTkwNjQwOnApPj4yXTtlOmRve2lmKGMpaWYoQT0wPT0oMHxsKT9tOmwsZil7aWYocCltPWYsYj0xMTtlbHNle2lmKChw''@;'; put 'put ''PTB8ZmVbYz4+MF0pPDwyND4+MjQ+LTEpe2FbQT4+Ml09MjU1JnAscD1wPDwyND4+MjQhPTAmMTticmVha31pZihwPTB8ZmVbYz4+MF0sbT0wPT0oMHxhW2FbMTU3OTFdPj4yXSkpe2FbQT4+Ml09cDw8MjQ+PjI0JjU3MzQzLHA9MTticmVha31pZigocD0oMjU1JnApLTE5NHwwKT4+PjA+NTAp''@;'; put 'put ''e2I9MTc7YnJlYWt9cD0wfGFbNjIzODQrKHA8PDIpPj4yXSwobT1mKy0xfDApJiYoYz1jKzF8MCxiPTExKX10OmRve2lmKDExPT0oMHxiKSl7aWYoKChNPSgyNTUmKGw9MHxmZVtjPj4wXSkpPj4+MyktMTZ8TSsocD4+MjYpKT4+PjA+Nyl7Yj0xNzticmVhayBlfWZvcig7Yz1jKzF8MCxtPW0r''@;'; put 'put ''LTF8MCwhKCgwfChwPSgyNTUmbCktMTI4fHA8PDYpKT49MCk7KXtpZighbSlicmVhayB0O2lmKCgtNjQmKGw9MHxmZVtjPj4wXSkpPDwyND4+MjQhPS0xMjgpe2I9MTc7YnJlYWsgZX19YVt3Pj4yXT0wLGFbQT4+Ml09cCxwPWYtbXwwO2JyZWFrIGV9fXdoaWxlKDApO2Fbdz4+Ml09cCxwPS0y''@;'; put 'put ''fWVsc2UgcD0tMjtlbHNlIHA/Yj0xNzpwPTB9d2hpbGUoMCk7cmV0dXJuIDE3PT0oMHxiKSYmKGFbdz4+Ml09MCxhWzQ3NjQzXT04NCxwPS0xKSxsZT1rLDB8cH1mdW5jdGlvbiBLdWUobCxjKXtyZXR1cm4gMHwobD0obHw9MCk/MHxmdW5jdGlvbiAkdWUobCxjLGYpe2x8PTAsY3w9MDtkb3tp''@;'; put 'put ''ZihsKXtpZihjPj4+MDwxMjgpe2ZlW2w+PjBdPWMsbD0xO2JyZWFrfWlmKCEoMHxhW2FbMTU3OTFdPj4yXSkpe2lmKDU3MjE2PT0oLTEyOCZjfDApKXtmZVtsPj4wXT1jLGw9MTticmVha31hWzQ3NjQzXT04NCxsPS0xO2JyZWFrfWlmKGM+Pj4wPDIwNDgpe2ZlW2w+PjBdPWM+Pj42fDE5Mixm''@;'; put 'put ''ZVtsKzE+PjBdPTYzJmN8MTI4LGw9MjticmVha31pZihjPj4+MDw1NTI5Nnw1NzM0ND09KC04MTkyJmN8MCkpe2ZlW2w+PjBdPWM+Pj4xMnwyMjQsZmVbbCsxPj4wXT1jPj4+NiY2M3wxMjgsZmVbbCsyPj4wXT02MyZjfDEyOCxsPTM7YnJlYWt9aWYoKGMrLTY1NTM2fDApPj4+MDwxMDQ4NTc2''@;'; put 'put ''KXtmZVtsPj4wXT1jPj4+MTh8MjQwLGZlW2wrMT4+MF09Yz4+PjEyJjYzfDEyOCxmZVtsKzI+PjBdPWM+Pj42JjYzfDEyOCxmZVtsKzM+PjBdPTYzJmN8MTI4LGw9NDticmVha31hWzQ3NjQzXT04NCxsPS0xO2JyZWFrfWw9MX13aGlsZSgwKTtyZXR1cm4gMHxsfShsLGN8PTApOjApfWZ1bmN0''@;'; put 'put ''aW9uIHJkKGwsYyl7cmV0dXJuIGZ1bmN0aW9uIG5jZShsLGMpe2x8PTA7dmFyIGY9MCxwPTA7Zj1jfD0wO2U6ZG97aWYoMyYoZl5sKSlwPTg7ZWxzZXtpZigzJmYpZG97aWYoZmVbbD4+MF09Zj0wfGZlW2M+PjBdLCEoZjw8MjQ+PjI0KSlicmVhayBlO2M9YysxfDAsbD1sKzF8MH13aGlsZSgw''@;'; put 'put ''IT0oMyZjfDApKTtpZighKCgtMjEzOTA2MjE0NCYoZj0wfGFbYz4+Ml0pXi0yMTM5MDYyMTQ0KSZmKy0xNjg0MzAwOSkpZm9yKHA9bDtjPWMrNHwwLGw9cCs0fDAsYVtwPj4yXT1mLCEoKC0yMTM5MDYyMTQ0JihmPTB8YVtjPj4yXSleLTIxMzkwNjIxNDQpJmYrLTE2ODQzMDA5fDApOylwPWw7''@;'; put 'put ''cD04fX13aGlsZSgwKTtpZig4PT0oMHxwKSYmKGZlW2w+PjBdPXA9MHxmZVtjPj4wXSxwPDwyND4+MjQpKWRve2ZlWyhsPWwrMXwwKT4+MF09cD0wfGZlWyhjPWMrMXwwKT4+MF19d2hpbGUocDw8MjQ+PjI0IT0wKX0obHw9MCxjfD0wKSwwfGx9ZnVuY3Rpb24gbSQobCl7cmV0dXJuIDB8KChs''@;'; put 'put ''fD0wKT8wIT0oMHxmdW5jdGlvbiBpY2UobCxjKXtsfD0wO3ZhciBmPTA7aWYoY3w9MCl7Zm9yKDshKDA9PSgwfChmPTB8YVtsPj4yXSkpfCgwfGYpPT0oMHxjKSk7KWw9bCs0fDA7bD0wfGY/bDowfWVsc2UgbD1sKygoMHxmdW5jdGlvbiBMQWUobCl7dmFyIGM9MDtmb3IoYz1sfD0wOzB8YVtj''@;'; put 'put ''Pj4yXTspYz1jKzR8MDtyZXR1cm4gYy1sPj4yfDB9KGwpKTw8Mil8MDtyZXR1cm4gMHxsfSg2MzUwMCxsKSkmMTowKX1mdW5jdGlvbiB1OChsLGMpe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE6bD0wfGJzKGwpO2JyZWFrO2Nhc2UgMjpsPTB8ZyQobCk7YnJlYWs7Y2FzZSAzOmw9MHxm''@;'; put 'put ''dW5jdGlvbiBvY2UobCl7cmV0dXJuIDB8ZnVuY3Rpb24gcmNlKGwpe3JldHVybiAxJigzMj09KDB8KGx8PTApKXw5PT0oMHxsKSl8MH0obHw9MCl9KGwpO2JyZWFrO2Nhc2UgNDpsPTB8ZnVuY3Rpb24gYWNlKGwpe3JldHVybiAxJigoKGx8PTApLTY1NTI5fDApPj4+MDwzfDgyMzI9PSgtMiZs''@;'; put 'put ''fDApfGw+Pj4wPDMyfChsKy0xMjd8MCk+Pj4wPDMzKXwwfShsKTticmVhaztjYXNlIDU6bD0wfHAkKGwpO2JyZWFrO2Nhc2UgNjpsPTB8ZnVuY3Rpb24gbGNlKGwpe3JldHVybiAwfCgwfG0kKGx8PTApPzA6MCE9KDB8WHVlKGwpKSYxKX0obCk7YnJlYWs7Y2FzZSA3Omw9MHxNaihsKTticmVh''@;'; put 'put ''aztjYXNlIDg6bD0wfFh1ZShsKTticmVhaztjYXNlIDk6bD0wfGZ1bmN0aW9uIElBZShsKXtyZXR1cm4gMHwoKGx8PTApPj4+MDwxMzEwNzI/KDB8WHRbMTQ2NDIzKygoMHxYdFsxNDY0MjMrKGw+Pj44KT4+MF0pPDw1fGw+Pj4zJjMxKT4+MF0pPj4+KDcmbCkmMTowKX0obCk7YnJlYWs7Y2Fz''@;'; put 'put ''ZSAxMDpsPTB8bSQobCk7YnJlYWs7Y2FzZSAxMTpsPTB8RWoobCk7YnJlYWs7Y2FzZSAxMjpsPTB8ZnVuY3Rpb24gc2NlKGwpe3JldHVybiAxJigoKGx8PTApLTQ4fDApPj4+MDwxMHwoKDMyfGwpLTk3fDApPj4+MDw2KXwwfShsKTticmVhaztkZWZhdWx0Omw9MH1yZXR1cm4gMHxsfWZ1bmN0''@;'; put 'put ''aW9uIGJzKGwpe3JldHVybiAwfCgwfHAkKGx8PTApPzE6MCE9KDB8ZyQobCkpJjEpfWZ1bmN0aW9uIE1qKGwpe3JldHVybigwfG92KGx8PTApKSE9KDB8bCl8MH1mdW5jdGlvbiBFaihsKXtyZXR1cm4oMHxBZyhsfD0wKSkhPSgwfGwpfDB9ZnVuY3Rpb24gQWcobCl7cmV0dXJuIDB8SnVlKGx8''@;'; put 'put ''PTAsMSl9ZnVuY3Rpb24gQUwobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgYixELG09MCxBPTAsdz0wLGs9MCxNPTA7RD1sZSxsZT1sZSsxMjh8MCxtPUQrMTI0fDAsdz02MzU4OCxiPShBPU09RCkrMTI0fDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGls''@;'; put 'put ''ZSgoMHxBKTwoMHxiKSk7cmV0dXJuKGMrLTF8MCk+Pj4wPjIxNDc0ODM2NDY/Yz8oYVs0NzY0M109NzUsYz0tMSk6KGw9bSxjPTEsaz00KTprPTQsND09KDB8aykmJihhW00rNDg+PjJdPWs9Yz4+PjA+KGs9LTItbHwwKT4+PjA/azpjLGFbKG09TSsyMHwwKT4+Ml09bCxhW00rNDQ+PjJdPWws''@;'; put 'put ''Yz1sK2t8MCxhWyhsPU0rMTZ8MCk+PjJdPWMsYVtNKzI4Pj4yXT1jLGM9MHx5TChNLGYscCksayYmKGZlWyhNPTB8YVttPj4yXSkrKCgoMHxNKT09KDB8YVtsPj4yXSkpPDwzMT4+MzEpPj4wXT0wKSksbGU9RCwwfGN9ZnVuY3Rpb24geUwobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBELEcs''@;'; put 'put ''cSxwZSxnZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsUj0wO2dlPWxlLGxlPWxlKzIyNHwwLEQ9Z2UrMTIwfDAscT1nZSxwZT1nZSsxMzZ8MCxtPTQwKyhwPUc9Z2UrODB8MCl8MDtkb3thW3A+PjJdPTAscD1wKzR8MH13aGlsZSgoMHxwKTwoMHxtKSk7cmV0dXJuIGFbRD4+Ml09YVtm''@;'; put 'put ''Pj4yXSwoMHx4aigwLGMsRCxxLEcpKTwwP2Y9LTE6KFI9KDB8YVtsKzc2Pj4yXSk+LTE/MHxSZigpOjAsTT0zMiYoZj0wfGFbbD4+Ml0pLCgwfGZlW2wrNzQ+PjBdKTwxJiYoYVtsPj4yXT0tMzMmZiksMHxhWyhwPWwrNDh8MCk+PjJdP2Y9MHx4aihsLGMsRCxxLEcpOihBPTB8YVsobT1sKzQ0''@;'; put 'put ''fDApPj4yXSxhW20+PjJdPXBlLGFbKHc9bCsyOHwwKT4+Ml09cGUsYVsoYj1sKzIwfDApPj4yXT1wZSxhW3A+PjJdPTgwLGFbKGs9bCsxNnwwKT4+Ml09cGUrODAsZj0wfHhqKGwsYyxELHEsRyksQSYmKG1pWzYzJmFbbCszNj4+Ml1dKGwsMCwwKSxmPTA9PSgwfGFbYj4+Ml0pPy0xOmYsYVtt''@;'; put 'put ''Pj4yXT1BLGFbcD4+Ml09MCxhW2s+PjJdPTAsYVt3Pj4yXT0wLGFbYj4+Ml09MCkpLGFbbD4+Ml09KHA9MHxhW2w+PjJdKXxNLDB8UiYmZTMoKSxmPTA9PSgzMiZwfDApP2Y6LTEpLGxlPWdlLDB8Zn1mdW5jdGlvbiB4aihsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIExlLFJl''@;'; put 'put ''LEhlLHFlLHJ0LFdlLGF0LFN0LGt0LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsVmU9MDtrdD1sZSxsZT1sZSs2NHwwLFdlPWt0LFZlPWt0KzI0fDAsYXQ9a3QrOHwwLFN0PWt0KzIwfDAsYVsocnQ9a3QrMTZ8MCk+PjJdPWN8PTAsTGU9''@;'; put 'put ''MCE9KDB8bCksSGU9UmU9VmUrNDB8MCxWZT1WZSszOXwwLHFlPWF0KzR8MCx3PTAsQT0wLEQ9MDtlOmZvcig7Oyl7ZG97aWYoKDB8QSk+LTEpe2lmKCgwfHcpPigyMTQ3NDgzNjQ3LUF8MCkpe2FbNDc2NDNdPTc1LEE9LTE7YnJlYWt9QT13K0F8MDticmVha319d2hpbGUoMCk7aWYoISgodz0w''@;'; put 'put ''fGZlW2M+PjBdKTw8MjQ+PjI0KSl7T2U9ODY7YnJlYWt9Yj1jO3Q6Zm9yKDs7KXtzd2l0Y2godzw8MjQ+PjI0KXtjYXNlIDM3Onc9YixPZT05O2JyZWFrIHQ7Y2FzZSAwOnc9YjticmVhayB0fWFbcnQ+PjJdPWJlPWIrMXwwLHc9MHxmZVtiZT4+MF0sYj1iZX10OmRve2lmKDk9PSgwfE9lKSlm''@;'; put 'put ''b3IoOzspe2lmKE9lPTAsMzchPSgwfGZlW2IrMT4+MF0pKWJyZWFrIHQ7aWYodz13KzF8MCxhW3J0Pj4yXT1iPWIrMnwwLDM3IT0oMHxmZVtiPj4wXSkpYnJlYWs7T2U9OX19d2hpbGUoMCk7aWYodz13LWN8MCxMZSYmVnUobCxjLHcpLDB8dyljPWI7ZWxzZXtpZigodz0oMHxmZVsoaz1iKzF8''@;'; put 'put ''MCk+PjBdKS00OHwwKT4+PjA8MTA/KHBlPShiZT0zNj09KDB8ZmVbYisyPj4wXSkpP3c6LTEsRD1iZT8xOkQsaz1iZT9iKzN8MDprKTpwZT0tMSxhW3J0Pj4yXT1rLChiZT0oKHc9MHxmZVtrPj4wXSk8PDI0Pj4yNCktMzJ8MCk+Pj4wPjMxfDA9PSgxPDxiZSY3NTkxM3wwKSliPTA7ZWxzZXti''@;'; put 'put ''PTA7ZG97Ynw9MTw8KHc8PDI0Pj4yNCktMzIsYVtydD4+Ml09az1rKzF8MCxiZT0oKHc9MHxmZVtrPj4wXSk8PDI0Pj4yNCktMzJ8MH13aGlsZSghKGJlPj4+MD4zMXwwPT0oMTw8YmUmNzU5MTN8MCkpKX1pZih3PDwyND4+MjQ9PTQyKXtpZigodz0oMHxmZVsoTT1rKzF8MCk+PjBdKS00OHww''@;'; put 'put ''KT4+PjA8MTAmJjM2PT0oMHxmZVtrKzI+PjBdKSlhW20rKHc8PDIpPj4yXT0xMCx3PTB8YVtwKygoMHxmZVtNPj4wXSktNDg8PDMpPj4yXSxEPTEsaz1rKzN8MDtlbHNle2lmKDB8RCl7QT0tMTticmVha31MZT8odz0wfGFbKEQ9MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09RCs0LEQ9''@;'; put 'put ''MCxrPU0pOih3PTAsRD0wLGs9TSl9YVtydD4+Ml09ayx3PShnZT0oMHx3KTwwKT8wLXd8MDp3LGdlPWdlPzgxOTJ8YjpifWVsc2V7aWYoKDB8KHc9MHx2JChydCkpKTwwKXtBPS0xO2JyZWFrfWdlPWIsaz0wfGFbcnQ+PjJdfWRve2lmKDQ2PT0oMHxmZVtrPj4wXSkpe2lmKDQyIT0oMHxmZVtr''@;'; put 'put ''KzE+PjBdKSl7YVtydD4+Ml09aysxLGI9MHx2JChydCksaz0wfGFbcnQ+PjJdO2JyZWFrfWlmKChiPSgwfGZlWyhNPWsrMnwwKT4+MF0pLTQ4fDApPj4+MDwxMCYmMzY9PSgwfGZlW2srMz4+MF0pKXthW20rKGI8PDIpPj4yXT0xMCxiPTB8YVtwKygoMHxmZVtNPj4wXSktNDg8PDMpPj4yXSxh''@;'; put 'put ''W3J0Pj4yXT1rPWsrNHwwO2JyZWFrfWlmKDB8RCl7QT0tMTticmVhayBlfUxlPyhiPTB8YVsoYmU9MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09YmUrNCk6Yj0wLGFbcnQ+PjJdPU0saz1NfWVsc2UgYj0tMX13aGlsZSgwKTtmb3IocT0wOzspe2lmKCgoMHxmZVtrPj4wXSktNjV8MCk+''@;'; put 'put ''Pj4wPjU3KXtBPS0xO2JyZWFrIGV9aWYoYVtydD4+Ml09YmU9aysxfDAsISgoKFI9MjU1JihNPTB8ZmVbKDB8ZmVbaz4+MF0pLTY1KygxNTI5NDQrKDU4KnF8MCkpPj4wXSkpLTF8MCk+Pj4wPDgpKWJyZWFrO3E9UixrPWJlfWlmKCEoTTw8MjQ+PjI0KSl7QT0tMTticmVha31HPSgwfHBlKT4t''@;'; put 'put ''MTtkb3tpZihNPDwyND4+MjQ9PTE5KXtpZihHKXtBPS0xO2JyZWFrIGV9T2U9NDh9ZWxzZXtpZihHKXthW20rKHBlPDwyKT4+Ml09UixwZT0wfGFbNCsoRz1wKyhwZTw8Myl8MCk+PjJdLGFbKE9lPVdlKT4+Ml09YVtHPj4yXSxhW09lKzQ+PjJdPXBlLE9lPTQ4O2JyZWFrfWlmKCFMZSl7QT0w''@;'; put 'put ''O2JyZWFrIGV9QSQoV2UsUixmKX19d2hpbGUoMCk7aWYoNDghPSgwfE9lKXx8KE9lPTAsTGUpKXtrPTAhPSgwfHEpJjM9PSgxNSYoaz0wfGZlW2s+PjBdKXwwKT8tMzMmazprLHBlPS02NTUzNyZnZSxnZT0wPT0oODE5MiZnZXwwKT9nZTpwZTt0OmRve3N3aXRjaCgwfGspe2Nhc2UgMTEwOnN3''@;'; put 'put ''aXRjaCgoMjU1JnEpPDwyND4+MjQpe2Nhc2UgMDpjYXNlIDE6Y2FzZSA2OmFbYVtXZT4+Ml0+PjJdPUEsdz0wLGM9YmU7Y29udGludWUgZTtjYXNlIDI6Y2FzZSA3OmFbKHc9MHxhW1dlPj4yXSk+PjJdPUEsYVt3KzQ+PjJdPSgoMHxBKTwwKTw8MzE+PjMxLHc9MCxjPWJlO2NvbnRpbnVlIGU7''@;'; put 'put ''Y2FzZSAzOml0W2FbV2U+PjJdPj4xXT1BLHc9MCxjPWJlO2NvbnRpbnVlIGU7Y2FzZSA0OmZlW2FbV2U+PjJdPj4wXT1BLHc9MCxjPWJlO2NvbnRpbnVlIGU7ZGVmYXVsdDp3PTAsYz1iZTtjb250aW51ZSBlfWNhc2UgMTEyOms9MTIwLGI9Yj4+PjA+OD9iOjgsYz04fGdlLE9lPTYwO2JyZWFr''@;'; put 'put ''O2Nhc2UgODg6Y2FzZSAxMjA6Yz1nZSxPZT02MDticmVhaztjYXNlIDExMTpNPTAsUj0xNTM0MDgsYj0wPT0oOCZnZXwwKXwoMHxiKT4oMHwocT1IZS0oRz0wfGZjZShjPTB8YVsoaz1XZSk+PjJdLGs9MHxhW2srND4+Ml0sUmUpKXwwKSk/YjpxKzF8MCxxPWdlLE9lPTY2O2JyZWFrO2Nhc2Ug''@;'; put 'put ''MTA1OmNhc2UgMTAwOmlmKGM9MHxhWyhrPVdlKT4+Ml0sKDB8KGs9MHxhW2srND4+Ml0pKTwwKXtjPTB8U3AoMCwwLDB8YywwfGspLGs9RG4sYVsoTT1XZSk+PjJdPWMsYVtNKzQ+PjJdPWssTT0xLFI9MTUzNDA4LE9lPTY1O2JyZWFrIHR9TT0wIT0oMjA0OSZnZXwwKSYxLFI9MD09KDIwNDgm''@;'; put 'put ''Z2V8MCk/MD09KDEmZ2V8MCk/MTUzNDA4OjE1MzQxMDoxNTM0MDksT2U9NjU7YnJlYWsgdDtjYXNlIDExNzpNPTAsUj0xNTM0MDgsYz0wfGFbKGs9V2UpPj4yXSxrPTB8YVtrKzQ+PjJdLE9lPTY1O2JyZWFrO2Nhc2UgOTk6ZmVbVmU+PjBdPWFbV2U+PjJdLGM9VmUsTT0wLFI9MTUzNDA4LEc9''@;'; put 'put ''UmUsaz0xLGI9cGU7YnJlYWs7Y2FzZSAxMDk6az0wfCRrKDB8YVs0NzY0M10pLE9lPTcwO2JyZWFrO2Nhc2UgMTE1Oms9MHwoaz0wfGFbV2U+PjJdKT9rOjE1MzQxOCxPZT03MDticmVhaztjYXNlIDY3OmFbYXQ+PjJdPWFbV2U+PjJdLGFbcWU+PjJdPTAsYVtXZT4+Ml09YXQsRz0tMSxrPWF0''@;'; put 'put ''LE9lPTc0O2JyZWFrO2Nhc2UgODM6Yz0wfGFbV2U+PjJdLGI/KEc9YixrPWMsT2U9NzQpOihjYyhsLDMyLHcsMCxnZSksYz0wLE9lPTgzKTticmVhaztjYXNlIDY1OmNhc2UgNzE6Y2FzZSA3MDpjYXNlIDY5OmNhc2UgOTc6Y2FzZSAxMDM6Y2FzZSAxMDI6Y2FzZSAxMDE6dz0wfGhjZShsLCtf''@;'; put 'put ''W1dlPj4zXSx3LGIsZ2UsayksYz1iZTtjb250aW51ZSBlO2RlZmF1bHQ6TT0wLFI9MTUzNDA4LEc9UmUsaz1iLGI9Z2V9fXdoaWxlKDApO3Q6ZG97aWYoNjA9PSgwfE9lKSlnZT1XZSxwZT0wfGFbZ2U+PjJdLGdlPTB8YVtnZSs0Pj4yXSxHPTB8Y2NlKHBlLGdlLFJlLDMyJmspLFI9MD09KDgm''@;'; put 'put ''Y3wwKXwwPT0oMHxwZSkmMD09KDB8Z2UpLE09Uj8wOjIsUj1SPzE1MzQwODoxNTM0MDgrKGs+PjQpfDAscT1jLGM9cGUsaz1nZSxPZT02NjtlbHNlIGlmKDY1PT0oMHxPZSkpRz0wfHF5KGMsayxSZSkscT1nZSxPZT02NjtlbHNlIGlmKDcwPT0oMHxPZSkpT2U9MCxnZT0wfGVTKGssMCxiKSxx''@;'; put 'put ''PTA9PSgwfGdlKSxjPWssTT0wLFI9MTUzNDA4LEc9cT9rK2J8MDpnZSxrPXE/YjpnZS1rfDAsYj1wZTtlbHNlIGlmKDc0PT0oMHxPZSkpe2ZvcihPZT0wLFI9ayxjPTAsYj0wOyhNPTB8YVtSPj4yXSkmJiEoKDB8KGI9MHxLdWUoU3QsTSkpKTwwfGI+Pj4wPihHLWN8MCk+Pj4wKSYmRz4+PjA+''@;'; put 'put ''KGM9YitjfDApPj4+MDspUj1SKzR8MDtpZigoMHxiKTwwKXtBPS0xO2JyZWFrIGV9aWYoY2MobCwzMix3LGMsZ2UpLGMpZm9yKE09MDs7KXtpZighKGI9MHxhW2s+PjJdKSl7T2U9ODM7YnJlYWsgdH1pZigoMHwoTT0oYj0wfEt1ZShTdCxiKSkrTXwwKSk+KDB8Yykpe09lPTgzO2JyZWFrIHR9''@;'; put 'put ''aWYoVnUobCxTdCxiKSxNPj4+MD49Yz4+PjApe09lPTgzO2JyZWFrfWs9ays0fDB9ZWxzZSBjPTAsT2U9ODN9fXdoaWxlKDApO2lmKDY2PT0oMHxPZSkpT2U9MCxnZT0wIT0oMHxiKXwoaz0wIT0oMHxjKXwwIT0oMHxrKSksaz1IZS1HKygxJigxXmspKXwwLGM9Z2U/RzpSZSxHPVJlLGs9Z2U/''@;'; put 'put ''KDB8Yik+KDB8ayk/YjprOmIsYj0oMHxiKT4tMT8tNjU1MzcmcTpxO2Vsc2UgaWYoODM9PSgwfE9lKSl7T2U9MCxjYyhsLDMyLHcsYyw4MTkyXmdlKSx3PSgwfHcpPigwfGMpP3c6YyxjPWJlO2NvbnRpbnVlfWNjKGwsMzIsdz0oMHx3KTwoMHwoZ2U9KHE9KDB8ayk8KDB8KHBlPUctY3wwKSk/''@;'; put 'put ''cGU6aykrTXwwKSk/Z2U6dyxnZSxiKSxWdShsLFIsTSksY2MobCw0OCx3LGdlLDY1NTM2XmIpLGNjKGwsNDgscSxwZSwwKSxWdShsLGMscGUpLGNjKGwsMzIsdyxnZSw4MTkyXmIpLGM9YmV9ZWxzZSB3PTAsYz1iZX19ZTpkb3tpZig4Nj09KDB8T2UpJiYhbClpZihEKXtmb3IoQT0xO2M9MHxh''@;'; put 'put ''W20rKEE8PDIpPj4yXTspe2lmKEEkKHArKEE8PDMpfDAsYyxmKSxjPUErMXwwLCEoKDB8QSk8OSkpe0E9YzticmVha31BPWN9aWYoKDB8QSk8MTApZm9yKDs7KXtpZigwfGFbbSsoQTw8Mik+PjJdKXtBPS0xO2JyZWFrIGV9aWYoISgoMHxBKTw5KSl7QT0xO2JyZWFrfUE9QSsxfDB9ZWxzZSBB''@;'; put 'put ''PTF9ZWxzZSBBPTB9d2hpbGUoMCk7cmV0dXJuIGxlPWt0LDB8QX1mdW5jdGlvbiBSZihsKXtyZXR1cm4gMH1mdW5jdGlvbiBlMyhsKXt9ZnVuY3Rpb24gVnUobCxjLGYpezMyJmFbKGx8PTApPj4yXXx8VGooY3w9MCxmfD0wLGwpfWZ1bmN0aW9uIHYkKGwpe3ZhciBjPTAsZj0wLHA9MDtpZigo''@;'; put 'put ''cD0oMHxmZVsoZj0wfGFbKGx8PTApPj4yXSk+PjBdKS00OHwwKT4+PjA8MTApe2M9MDtkb3tjPXArKDEwKmN8MCl8MCxhW2w+PjJdPWY9ZisxfDAscD0oMHxmZVtmPj4wXSktNDh8MH13aGlsZShwPj4+MDwxMCl9ZWxzZSBjPTA7cmV0dXJuIDB8Y31mdW5jdGlvbiBBJChsLGMsZil7bHw9MCxj''@;'; put 'put ''fD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2U6ZG97aWYoYz4+PjA8PTIwKXN3aXRjaCgwfGMpe2Nhc2UgOTpjPTB8YVsocD0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtmPj4yXT1wKzQsYVtsPj4yXT1jO2JyZWFrIGU7Y2FzZSAxMDpjPTB8YVsocD0zKygwfGFbZj4+Ml0pJi00KT4+Ml0sYVtm''@;'; put 'put ''Pj4yXT1wKzQsYVsocD1sKT4+Ml09YyxhW3ArND4+Ml09KCgwfGMpPDApPDwzMT4+MzE7YnJlYWsgZTtjYXNlIDExOmM9MHxhWyhwPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPXArNCxhWyhwPWwpPj4yXT1jLGFbcCs0Pj4yXT0wO2JyZWFrIGU7Y2FzZSAxMjptPTB8YVsoYz1wPTcr''@;'; put 'put ''KDB8YVtmPj4yXSkmLTgpPj4yXSxjPTB8YVtjKzQ+PjJdLGFbZj4+Ml09cCs4LGFbKHA9bCk+PjJdPW0sYVtwKzQ+PjJdPWM7YnJlYWsgZTtjYXNlIDEzOnA9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxhWyhtPWwpPj4yXT1wPSg2NTUzNSZwKTw8MTY+PjE2LGFb''@;'; put 'put ''bSs0Pj4yXT0oKDB8cCk8MCk8PDMxPj4zMTticmVhayBlO2Nhc2UgMTQ6cD0wfGFbKG09MysoMHxhW2Y+PjJdKSYtNCk+PjJdLGFbZj4+Ml09bSs0LGFbKG09bCk+PjJdPTY1NTM1JnAsYVttKzQ+PjJdPTA7YnJlYWsgZTtjYXNlIDE1OnA9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxh''@;'; put 'put ''W2Y+PjJdPW0rNCxhWyhtPWwpPj4yXT1wPSgyNTUmcCk8PDI0Pj4yNCxhW20rND4+Ml09KCgwfHApPDApPDwzMT4+MzE7YnJlYWsgZTtjYXNlIDE2OnA9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxhWyhtPWwpPj4yXT0yNTUmcCxhW20rND4+Ml09MDticmVhayBl''@;'; put 'put ''O2Nhc2UgMTc6Y2FzZSAxODpBPStfWyhtPTcrKDB8YVtmPj4yXSkmLTgpPj4zXSxhW2Y+PjJdPW0rOCxfW2w+PjNdPUE7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxlKDApfWZ1bmN0aW9uIGNjZShsLGMsZixwKXtpZihmfD0wLHB8PTAsISgwPT0oMHwobHw9MCkpJjA9PSgwfChjfD0w''@;'; put 'put ''KSkpKWRve2ZlWyhmPWYrLTF8MCk+PjBdPTB8WHRbMTUzNDU2KygxNSZsKT4+MF18cCxsPTB8d2woMHxsLDB8Yyw0KSxjPURufXdoaWxlKCEoMD09KDB8bCkmMD09KDB8YykpKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGZjZShsLGMsZil7aWYoZnw9MCwhKDA9PSgwfChsfD0wKSkmMD09KDB8KGN8''@;'; put 'put ''PTApKSkpZG97ZmVbKGY9ZistMXwwKT4+MF09NyZsfDQ4LGw9MHx3bCgwfGwsMHxjLDMpLGM9RG59d2hpbGUoISgwPT0oMHxsKSYwPT0oMHxjKSkpO3JldHVybiAwfGZ9ZnVuY3Rpb24gcXkobCxjLGYpe2Z8PTA7dmFyIHA9MDtpZigoY3w9MCk+Pj4wPjB8MD09KDB8YykmKGx8PTApPj4+MD40''@;'; put 'put ''Mjk0OTY3Mjk1KXtmb3IoO3A9MHxpUygwfGwsMHxjLDEwLDApLGZlWyhmPWYrLTF8MCk+PjBdPTI1NSZwfDQ4LHA9bCxsPTB8b3coMHxsLDB8YywxMCwwKSxjPj4+MD45fDk9PSgwfGMpJnA+Pj4wPjQyOTQ5NjcyOTU7KWM9RG47Yz1sfWVsc2UgYz1sO2lmKGMpZm9yKDtmZVsoZj1mKy0xfDAp''@;'; put 'put ''Pj4wXT00OHwoYz4+PjApJTEwLCEoYz4+PjA8MTApOyljPShjPj4+MCkvMTB8MDtyZXR1cm4gMHxmfWZ1bmN0aW9uIGNjKGwsYyxmLHAsbSl7dmFyIEEsdztpZihsfD0wLGN8PTAsdz1sZSxsZT1sZSsyNTZ8MCxBPXcsKDB8KGZ8PTApKT4oMHwocHw9MCkpJjA9PSg3MzcyOCYobXw9MCl8MCkp''@;'; put 'put ''e2lmKHUyKDB8QSwwfGMsMHwoKG09Zi1wfDApPj4+MDwyNTY/bToyNTYpKSxtPj4+MD4yNTUpe2M9Zi1wfDA7ZG97VnUobCxBLDI1NiksbT1tKy0yNTZ8MH13aGlsZShtPj4+MD4yNTUpO209MjU1JmN9VnUobCxBLG0pfWxlPXd9ZnVuY3Rpb24gaGNlKGwsYyxmLHAsbSxBKXtsfD0wLGM9K2Ms''@;'; put 'put ''Znw9MCxwfD0wLG18PTAsQXw9MDt2YXIgc3Qsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxydD0wLFdlPTAsYXQ9MCxTdD0wLGt0PTA7c3Q9bGUsbGU9bGUrNTYwfDAsaz1zdCs4fDAsU3Q9a3Q9c3Qr''@;'; put 'put ''NTI0fDAsTT1zdCs1MTJ8MCxhWyhiZT1zdCk+PjJdPTAsYXQ9TSsxMnwwLHkkKGMpLCgwfERuKTwwPyhjPS1jLHJ0PTEscWU9MTUzNDI1KToocnQ9MCE9KDIwNDkmbXwwKSYxLHFlPTA9PSgyMDQ4Jm18MCk/MD09KDEmbXwwKT8xNTM0MjY6MTUzNDMxOjE1MzQyOCkseSQoYyk7ZG97aWYoITAm''@;'; put 'put ''MjE0NjQzNTA3Mj09KDIxNDY0MzUwNzImRG58MCkpa3Q9MCE9KDMyJkF8MCksY2MobCwzMixmLHc9cnQrM3wwLC02NTUzNyZtKSxWdShsLHFlLHJ0KSxWdShsLGMhPWN8ITE/a3Q/MTUzNTkzOjE1MzQ1MjprdD8xNTM0NDQ6MTUzNDQ4LDMpLGNjKGwsMzIsZix3LDgxOTJebSk7ZWxzZXtpZigo''@;'; put 'put ''dz0wIT0ocT0yKitUQWUoYyxiZSkpKSYmKGFbYmU+PjJdPSgwfGFbYmU+PjJdKS0xKSw5Nz09KDB8KExlPTMyfEEpKSl7cGU9MD09KDB8KFI9MzImQSkpP3FlOnFlKzl8MCxHPTJ8cnQsdz0xMi1wfDA7ZG97aWYoIShwPj4+MD4xMXwwPT0oMHx3KSkpe2M9ODtkb3t3PXcrLTF8MCxjKj0xNn13''@;'; put 'put ''aGlsZSgwIT0oMHx3KSk7aWYoNDU9PSgwfGZlW3BlPj4wXSkpe2M9LShjKygtcS1jKSk7YnJlYWt9Yz1xK2MtYzticmVha31jPXF9d2hpbGUoMCk7KDB8KHc9MHxxeSh3PSgwfChiPTB8YVtiZT4+Ml0pKTwwPzAtYnwwOmIsKCgwfHcpPDApPDwzMT4+MzEsYXQpKSk9PSgwfGF0KSYmKGZlWyh3''@;'; put 'put ''PU0rMTF8MCk+PjBdPTQ4KSxmZVt3Ky0xPj4wXT00MysoYj4+MzEmMiksZmVbKEQ9dystMnwwKT4+MF09QSsxNSxrPSgwfHApPDEsTT0wPT0oOCZtfDApLHc9a3Q7ZG97Yj13KzF8MCxmZVt3Pj4wXT1SfFh0WzE1MzQ1NisoV2U9fn5jKT4+MF0sYz0xNiooYy0rKDB8V2UpKSwxIT0oYi1TdHww''@;'; put 'put ''KXx8TSZrJjA9PWM/dz1iOihmZVtiPj4wXT00Nix3PXcrMnwwKX13aGlsZSgwIT1jKTswIT0oMHxwKSYmKC0yLVN0K3d8MCk8KDB8cCk/KGI9dy1TdHwwLHc9cCsyfDApOmI9dz13LVN0fDAsY2MobCwzMixmLFN0PShhdD1hdC1EfDApK0crd3wwLG0pLFZ1KGwscGUsRyksY2MobCw0OCxmLFN0''@;'; put 'put ''LDY1NTM2Xm0pLFZ1KGwsa3QsYiksY2MobCw0OCx3LWJ8MCwwLDApLFZ1KGwsRCxhdCksY2MobCwzMixmLFN0LDgxOTJebSksdz1TdDticmVha31iPSgwfHApPDA/NjpwLHc/KGFbYmU+PjJdPXc9KDB8YVtiZT4+Ml0pLTI4fDAsYz0yNjg0MzU0NTYqcSk6KGM9cSx3PTB8YVtiZT4+Ml0pLGs9''@;'; put 'put ''V2U9KDB8dyk8MD9rOmsrMjg4fDA7ZG97YVtrPj4yXT1IZT1+fmM+Pj4wLGs9ays0fDAsYz0xZTkqKGMtKyhIZT4+PjApKX13aGlsZSgwIT1jKTtpZigoMHx3KT4wKWZvcihNPVdlLFI9azs7KXtpZihEPSgwfHcpPDI5P3c6MjksKHc9UistNHwwKT4+PjA+PU0+Pj4wKXtrPTA7ZG97T2U9MHxp''@;'; put 'put ''UygwfChSZT0wfHpsKDB8KFJlPTB8Wm8oMHxhW3c+PjJdLDAsMHxEKSksMHxEbiwwfGssMCkpLDB8KEhlPURuKSwxZTksMCksYVt3Pj4yXT1PZSxrPTB8b3coMHxSZSwwfEhlLDFlOSwwKSx3PXcrLTR8MH13aGlsZSh3Pj4+MD49TT4+PjApO2smJihhWyhNPU0rLTR8MCk+PjJdPWspfWZvcihr''@;'; put 'put ''PVI7IShrPj4+MDw9TT4+PjB8fDB8YVsodz1rKy00fDApPj4yXSk7KWs9dztpZihhW2JlPj4yXT13PSgwfGFbYmU+PjJdKS1EfDAsISgoMHx3KT4wKSlicmVhaztSPWt9ZWxzZSBNPVdlO2lmKCgwfHcpPDApe3A9MSsoKGIrMjV8MCkvOXwwKXwwLGdlPTEwMj09KDB8TGUpO2Rve2lmKHBlPSgw''@;'; put 'put ''fChwZT0wLXd8MCkpPDk/cGU6OSxNPj4+MDxrPj4+MCl7RD0oMTw8cGUpLTF8MCxSPTFlOT4+PnBlLEc9MCx3PU07ZG97YVt3Pj4yXT0oKEhlPTB8YVt3Pj4yXSk+Pj5wZSkrRyxHPTB8QXIoSGUmRCxSKSx3PXcrNHwwfXdoaWxlKHc+Pj4wPGs+Pj4wKTt3PTA9PSgwfGFbTT4+Ml0pP00rNHww''@;'; put 'put ''Ok0sRz8oYVtrPj4yXT1HLE09dyx3PWsrNHwwKTooTT13LHc9ayl9ZWxzZSBNPTA9PSgwfGFbTT4+Ml0pP00rNHwwOk0sdz1rO2s9KHctKGs9Z2U/V2U6TSk+PjJ8MCk+KDB8cCk/aysocDw8Mil8MDp3LGFbYmU+PjJdPXc9KDB8YVtiZT4+Ml0pK3BlfDB9d2hpbGUoKDB8dyk8MCk7dz1NLHA9''@;'; put 'put ''a31lbHNlIHc9TSxwPWs7aWYoSGU9V2Usdz4+PjA8cD4+PjApe2lmKGs9OSooSGUtdz4+Mil8MCwoRD0wfGFbdz4+Ml0pPj4+MD49MTApe009MTA7ZG97TT0xMCpNfDAsaz1rKzF8MH13aGlsZShEPj4+MD49TT4+PjApfX1lbHNlIGs9MDtpZigoMHwoTT1iLSgxMDIhPSgwfExlKT9rOjApKygo''@;'; put 'put ''KE9lPTAhPSgwfGIpKSYoZ2U9MTAzPT0oMHxMZSkpKTw8MzE+PjMxKXwwKSk8KCg5KihwLUhlPj4yKXwwKS05fDApKXtpZihwZT1XZSs0KygoKDB8KE09TSs5MjE2fDApKS85fDApLTEwMjQ8PDIpfDAsKDB8KE09KDB8TSklOXwwKSk8OClmb3IoRD0xMDtEPTEwKkR8MCwoMHxNKTw3OylNPU0r''@;'; put 'put ''MXwwO2Vsc2UgRD0xMDtpZigoTT0ocGUrNHwwKT09KDB8cCkpJjA9PSgwfChHPSgoUj0wfGFbcGU+PjJdKT4+PjApJShEPj4+MCl8MCkpKU09cGU7ZWxzZSBpZihxPTA9PSgxJigoUj4+PjApLyhEPj4+MCl8MCl8MCk/OTAwNzE5OTI1NDc0MDk5Mjo5MDA3MTk5MjU0NzQwOTk0LGM9Rz4+PjA8''@;'; put 'put ''KFJlPSgwfEQpLzJ8MCk+Pj4wPy41Ok0mKDB8Ryk9PSgwfFJlKT8xOjEuNSxydCYmKGM9KFJlPTQ1PT0oMHxmZVtxZT4+MF0pKT8tYzpjLHE9UmU/LXE6cSksYVtwZT4+Ml09TT1SLUd8MCxxK2MhPXEpe2lmKGFbcGU+PjJdPVJlPU0rRHwwLFJlPj4+MD45OTk5OTk5OTkpZm9yKGs9cGU7TT1r''@;'; put 'put ''Ky00fDAsYVtrPj4yXT0wLE0+Pj4wPHc+Pj4wJiYoYVsodz13Ky00fDApPj4yXT0wKSxhW00+PjJdPVJlPTErKDB8YVtNPj4yXSl8MCxSZT4+PjA+OTk5OTk5OTk5OylrPU07ZWxzZSBNPXBlO2lmKGs9OSooSGUtdz4+Mil8MCwoUj0wfGFbdz4+Ml0pPj4+MD49MTApe0Q9MTA7ZG97RD0xMCpE''@;'; put 'put ''fDAsaz1rKzF8MH13aGlsZShSPj4+MD49RD4+PjApfX1lbHNlIE09cGU7TT1wPj4+MD4oTT1NKzR8MCk+Pj4wP006cCxSZT13fWVsc2UgTT1wLFJlPXc7Zm9yKExlPU07Oyl7aWYoTGU+Pj4wPD1SZT4+PjApe2JlPTA7YnJlYWt9aWYoMHxhWyh3PUxlKy00fDApPj4yXSl7YmU9MTticmVha31M''@;'; put 'put ''ZT13fXA9MC1rfDA7ZG97aWYoZ2Upe2lmKCgwfCh3PWIrKDEmKDFeT2UpKXwwKSk+KDB8aykmKDB8ayk+LTU/KEQ9QSstMXwwLGI9dystMS1rfDApOihEPUErLTJ8MCxiPXcrLTF8MCksISh3PTgmbSkpe2lmKGJlJiYwIT0oMHwoVmU9MHxhW0xlKy00Pj4yXSkpKWlmKChWZT4+PjApJTEwfDAp''@;'; put 'put ''TT0wO2Vsc2V7TT0wLHc9MTA7ZG97dz0xMCp3fDAsTT1NKzF8MH13aGlsZSghKDB8KFZlPj4+MCklKHc+Pj4wKSkpfWVsc2UgTT05O2lmKHc9KDkqKExlLUhlPj4yKXwwKS05fDAsMTAyPT0oMzJ8RCkpe2I9KDB8Yik8KDB8KHBlPSgwfChwZT13LU18MCkpPjA/cGU6MCkpP2I6cGUscGU9MDti''@;'; put 'put ''cmVha31iPSgwfGIpPCgwfChwZT0oMHwocGU9dytrLU18MCkpPjA/cGU6MCkpP2I6cGUscGU9MDticmVha31wZT13fWVsc2UgRD1BLHBlPTgmbX13aGlsZSgwKTtpZihSPTAhPSgwfChnZT1ifHBlKSkmMSxHPTEwMj09KDMyfEQpKU9lPTAsdz0oMHxrKT4wP2s6MDtlbHNle2lmKCgoTT1hdCkt''@;'; put 'put ''KHc9MHxxeSh3PSgwfGspPDA/cDprLCgoMHx3KTwwKTw8MzE+PjMxLGF0KSl8MCk8Milkb3tmZVsodz13Ky0xfDApPj4wXT00OH13aGlsZSgoTS13fDApPDIpO2ZlW3crLTE+PjBdPTQzKyhrPj4zMSYyKSxmZVsodz13Ky0yfDApPj4wXT1ELE9lPXcsdz1NLXd8MH1pZihjYyhsLDMyLGYsdz1y''@;'; put 'put ''dCsxK2IrUit3fDAsbSksVnUobCxxZSxydCksY2MobCw0OCxmLHcsNjU1MzZebSksRyl7Uj1wZT1rdCs5fDAsRz1rdCs4fDAsTT1EPVJlPj4+MD5XZT4+PjA/V2U6UmU7ZG97aWYoaz0wfHF5KDB8YVtNPj4yXSwwLHBlKSwoMHxNKT09KDB8RCkpKDB8ayk9PSgwfHBlKSYmKGZlW0c+PjBdPTQ4''@;'; put 'put ''LGs9Ryk7ZWxzZSBpZihrPj4+MD5rdD4+PjApe3UyKDB8a3QsNDgsay1TdHwwKTtkb3trPWsrLTF8MH13aGlsZShrPj4+MD5rdD4+PjApfVZ1KGwsayxSLWt8MCksTT1NKzR8MH13aGlsZShNPj4+MDw9V2U+Pj4wKTtpZigwfGdlJiZWdShsLDE1MzQ3MiwxKSxNPj4+MDxMZT4+PjAmKDB8Yik+''@;'; put 'put ''MClmb3IoOzspe2lmKChrPTB8cXkoMHxhW00+PjJdLDAscGUpKT4+PjA+a3Q+Pj4wKXt1MigwfGt0LDQ4LGstU3R8MCk7ZG97az1rKy0xfDB9d2hpbGUoaz4+PjA+a3Q+Pj4wKX1pZihWdShsLGssKDB8Yik8OT9iOjkpLGs9YistOXwwLCEoKE09TSs0fDApPj4+MDxMZT4+PjAmKDB8Yik+OSkp''@;'; put 'put ''e2I9azticmVha31iPWt9Y2MobCw0OCxiKzl8MCw5LDApfWVsc2V7aWYoZ2U9YmU/TGU6UmUrNHwwLCgwfGIpPi0xKXtwZT0wPT0oMHxwZSkscD1iZT1rdCs5fDAsUj0wLVN0fDAsRz1rdCs4fDAsRD1SZTtkb3soMHwoaz0wfHF5KDB8YVtEPj4yXSwwLGJlKSkpPT0oMHxiZSkmJihmZVtHPj4w''@;'; put 'put ''XT00OCxrPUcpO2Rve2lmKCgwfEQpPT0oMHxSZSkpe2lmKE09aysxfDAsVnUobCxrLDEpLHBlJigwfGIpPDEpe2s9TTticmVha31WdShsLDE1MzQ3MiwxKSxrPU19ZWxzZXtpZihrPj4+MDw9a3Q+Pj4wKWJyZWFrO3UyKDB8a3QsNDgsaytSfDApO2Rve2s9aystMXwwfXdoaWxlKGs+Pj4wPmt0''@;'; put 'put ''Pj4+MCl9fXdoaWxlKDApO1Z1KGwsaywoMHxiKT4oMHwoU3Q9cC1rfDApKT9TdDpiKSxiPWItU3R8MCxEPUQrNHwwfXdoaWxlKEQ+Pj4wPGdlPj4+MCYoMHxiKT4tMSl9Y2MobCw0OCxiKzE4fDAsMTgsMCksVnUobCxPZSxhdC1PZXwwKX1jYyhsLDMyLGYsdyw4MTkyXm0pfX13aGlsZSgwKTty''@;'; put 'put ''ZXR1cm4gbGU9c3QsMHwoKDB8dyk8KDB8Zik/Zjp3KX1mdW5jdGlvbiB5JChsKXtyZXR1cm4gX1tTaT4+M109bD0rbCxEbj0wfGFbU2krND4+Ml0sMHxhW1NpPj4yXX1mdW5jdGlvbiBUaihsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wOyhtPTB8YVsocD0xNisoZnw9''@;'; put 'put ''MCl8MCk+PjJdKT9BPTU6MHx3JChmKT9wPTA6KG09MHxhW3A+PjJdLEE9NSk7ZTpkb3tpZig1PT0oMHxBKSl7aWYocD13PTB8YVsoYj1mKzIwfDApPj4yXSwobS13fDApPj4+MDxjPj4+MCl7cD0wfG1pWzYzJmFbZiszNj4+Ml1dKGYsbCxjKTticmVha310OmRve2lmKCgwfGZlW2YrNzU+PjBd''@;'; put 'put ''KT4tMSl7Zm9yKHc9Yzs7KXtpZighdyl7QT0wLG09bDticmVhayB0fWlmKDEwPT0oMHxmZVtsKyhtPXcrLTF8MCk+PjBdKSlicmVhazt3PW19aWYoKHA9MHxtaVs2MyZhW2YrMzY+PjJdXShmLGwsdykpPj4+MDx3Pj4+MClicmVhayBlO0E9dyxtPWwrd3wwLGM9Yy13fDAscD0wfGFbYj4+Ml19''@;'; put 'put ''ZWxzZSBBPTAsbT1sfXdoaWxlKDApO2dvKDB8cCwwfG0sMHxjKSxhW2I+PjJdPSgwfGFbYj4+Ml0pK2MscD1BK2N8MH19d2hpbGUoMCk7cmV0dXJuIDB8cH1mdW5jdGlvbiB3JChsKXt2YXIgYz0wLGY9MDtyZXR1cm4gZmVbKGM9NzQrKGx8PTApfDApPj4wXT0yNTUrKGY9MHxmZVtjPj4wXSl8''@;'; put 'put ''Ziw4JihjPTB8YVtsPj4yXSk/KGFbbD4+Ml09MzJ8YyxsPS0xKTooYVtsKzg+PjJdPTAsYVtsKzQ+PjJdPTAsYVtsKzI4Pj4yXT1mPTB8YVtsKzQ0Pj4yXSxhW2wrMjA+PjJdPWYsYVtsKzE2Pj4yXT1mKygwfGFbbCs0OD4+Ml0pLGw9MCksMHxsfWZ1bmN0aW9uIHBjZShsKXt2YXIgcCxjPTAs''@;'; put 'put ''Zj0wLG09MDtmb3IocD0wfGZlWyhsfD0wKT4+MF0sYz0xLGY9MTUzNDc0LG09OTc7cDw8MjQ+PjI0IT1tPDwyND4+MjR8fDAhPSgwfFppKGwsZikpOyl7aWYoISgobT0wfGZlWyhmPWYrNnwwKT4+MF0pPDwyND4+MjQpKXtjPTA7YnJlYWt9Yz1jKzF8MH1yZXR1cm4gMHxjfWZ1bmN0aW9uIGF2''@;'; put 'put ''KGwpe3JldHVybiAwfCgwPT0oMHxmdW5jdGlvbiB1Y2UobCl7cmV0dXJuKChsfD0wKS05N3wwKT4+PjA8MjZ8MH0obHw9MCkpP2w6OTUmbCl9ZnVuY3Rpb24gSWoobCxjKXtsfD0wLGN8PTA7dmFyIG0sQSxmPTAscD0wO0E9bGUsbGU9bGUrMTZ8MCxtPUE7ZG97aWYobD4+PjA+NiljPTA7ZWxz''@;'; put 'put ''ZXtpZigkcCgxOTA2NTYpLDYhPSgwfGwpKXtjPTB8YiQobCxjKSxyNigxOTA2NTYpO2JyZWFrfWlmKGMpe2Y9MTUzNTQ3LHA9KGw9bSkrMTZ8MDtkb3tmZVtsPj4wXT0wfGZlW2Y+PjBdLGw9bCsxfDAsZj1mKzF8MH13aGlsZSgoMHxsKTwoMHxwKSk7cD0wO2RveygwfChmPShsPTB8cEwoYyw1''@;'; put 'put ''OSkpLWN8MCkpPDE2JiYoZ28oMHxtLDB8YywwfGYpLGZlW20rZj4+MF09MCxjPTA9PSgwfGZlW2w+PjBdKT9jOmwrMXwwKSxiJChwLG0pLHA9cCsxfDB9d2hpbGUoNiE9KDB8cCkpO2M9MTk3MTMyLGw9MH1lbHNlIGM9MTk3MTMyLGw9MDtmb3IoO2dvKDB8YywwfChwPTB8KHA9MHxhWzE5MDYx''@;'; put 'put ''NisobDw8Mik+PjJdKT9wKzh8MDoxNTM1NjMpLDB8KGY9MHxVbyhwKSkpLGZlWyhwPWMrZnwwKT4+MF09NTksNiE9KDB8KGw9bCsxfDApKTspYz1jKyhmKzEpfDA7ZmVbcD4+MF09MCxyNigxOTA2NTYpLGM9MTk3MTMyfX13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGN9ZnVuY3Rpb24gYiQobCxj''@;'; put 'put ''KXtyZXR1cm4gbHw9MCwoY3w9MCk/KGM9MHxmdW5jdGlvbiB0Y2UobCxjKXtsfD0wLGN8PTA7dmFyIEQsRyxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLFI9MDtHPWxlLGxlPWxlKzI3MnwwLEQ9Rys4fDAsUj1HO2Rve2lmKCEoMHxmZVtjPj4wXSkpe2lmKDB8KGM9MHxEdSgxNTI4''@;'; put 'put ''MzMpKSYmMHxmZVtjPj4wXXx8MHwoYz0wfER1KDE1Mjg0MCsoMTIqbHwwKXwwKSkmJjB8ZmVbYz4+MF18fDB8KGM9MHxEdSgxNTI5MTIpKSYmMHxmZVtjPj4wXSlicmVhaztjPTE1MjkxN319d2hpbGUoMCk7Zj0wO2U6ZG97c3dpdGNoKDB8ZmVbYytmPj4wXSl7Y2FzZSA0NzpjYXNlIDA6YnJl''@;'; put 'put ''YWsgZX1mPWYrMXwwfXdoaWxlKGY+Pj4wPDE1KTsocD0wfGZlW2M+PjBdKTw8MjQ+PjI0IT00NiYmMD09KDB8ZmVbYytmPj4wXSk/cDw8MjQ+PjI0PT02Nz9NPTE1OihrPWMsTT0xNik6KGM9MTUyOTE3LE09MTUpLDE1PT0oMHxNKSYmKDB8ZmVbYysxPj4wXT8oaz1jLE09MTYpOk09MTgpO2U6''@;'; put 'put ''ZG97aWYoMTY9PSgwfE0pKWlmKDAhPSgwfFppKGssMTUyOTE3KSkmJjAhPSgwfFppKGssMTUyOTI1KSkpe2lmKDB8KGM9MHxhWzQ3NjYxXSkpZG97aWYoISgwfFppKGssYys4fDApKSlicmVhayBlO2M9MHxhW2MrMjQ+PjJdfXdoaWxlKDAhPSgwfGMpKTskcCgxOTA2NDgpLGM9MHxhWzQ3NjYx''@;'; put 'put ''XTt0OmRve2lmKDB8Yyl7Zm9yKDswfFppKGssYys4fDApOylpZighKGM9MHxhW2MrMjQ+PjJdKSlicmVhayB0O3I2KDE5MDY0OCk7YnJlYWsgZX19d2hpbGUoMCk7dDpkb3tpZigwPT0oMHxhWzQ3NjQ2XSkmJjAhPSgwfChtPTB8RHUoMTUyOTMxKSkpJiYwIT0oMHxmZVttPj4wXSkpe2Zvcih3''@;'; put 'put ''PTI1NC1mfDAsYj1mKzF8MCxwPW07Oyl7aWYoKG09KEE9MHxwTChwLDU4KSktcCsoKChjPTB8ZmVbQT4+MF0pPDwyND4+MjQhPTApPDwzMT4+MzEpfDApPj4+MDx3Pj4+MCl7aWYoZ28oMHxELDB8cCwwfG0pLGZlWyhwPUQrbXwwKT4+MF09NDcsZ28ocCsxfDAsMHxrLDB8ZiksZmVbRCsoYitt''@;'; put 'put ''KT4+MF09MCwwfChwPTB8TzgoMHxELDB8UikpKWJyZWFrO2M9MHxmZVtBPj4wXX1pZighKDB8ZmVbKHA9QSsoYzw8MjQ+PjI0IT0wJjEpfDApPj4wXSkpe009NDE7YnJlYWsgdH19aWYoYz0wfEYwKDI4KSl7YVtjPj4yXT1wLGFbYys0Pj4yXT1hW1I+PjJdLGdvKDB8KFI9Yys4fDApLDB8ayww''@;'; put 'put ''fGYpLGZlW1IrZj4+MF09MCxhW2MrMjQ+PjJdPWFbNDc2NjFdLGFbNDc2NjFdPWM7YnJlYWt9ciQocCwwfGFbUj4+Ml0pLE09NDE7YnJlYWt9TT00MX13aGlsZSgwKTs0MT09KDB8TSkmJihjPTB8RjAoMjgpKSYmKGFbYz4+Ml09YVsxNTU4NF0sYVtjKzQ+PjJdPWFbMTU1ODVdLGdvKDB8KFI9''@;'; put 'put ''Yys4fDApLDB8aywwfGYpLGZlW1IrZj4+MF09MCxhW2MrMjQ+PjJdPWFbNDc2NjFdLGFbNDc2NjFdPWMpLHI2KDE5MDY0OCksYz0wPT0oMHxsKSYwPT0oMHxjKT82MjMzNjpjfWVsc2UgYz1rLE09MTh9d2hpbGUoMCk7ZG97aWYoMTg9PSgwfE0pKXtpZigwPT0oMHxsKSYmNDY9PSgwfGZlW2Mr''@;'; put 'put ''MT4+MF0pKXtjPTYyMzM2O2JyZWFrfWM9MH19d2hpbGUoMCk7cmV0dXJuIGxlPUcsMHxjfShsLGMpLGFbMTkwNjE2KyhsPDwyKT4+Ml09YyxsPWMpOmw9MHxhWzE5MDYxNisobDw8Mik+PjJdLDB8KDB8bD9sKzh8MDoxNTM1NjMpfWZ1bmN0aW9uIHQzKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2''@;'; put 'put ''YXIgcD0wLG09MDtlOmRve2lmKGYpe2Zvcig7KHA9MHxmZVtsPj4wXSk8PDI0Pj4yND09KG09MHxmZVtjPj4wXSk8PDI0Pj4yNDspe2lmKCEoZj1mKy0xfDApKXtsPTA7YnJlYWsgZX1sPWwrMXwwLGM9YysxfDB9bD0oMjU1JnApLSgyNTUmbSl8MH1lbHNlIGw9MH13aGlsZSgwKTtyZXR1cm4g''@;'; put 'put ''MHxsfWZ1bmN0aW9uIHlnKGwsYyxmKXtsfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wLEc9MDtpZihmfD0wLDAscD0oY3w9MCkrLTF8MCwoMHxjKTwyKWZlWyhEPWYrNzR8MCk+PjBdPTI1NSsoaz0wfGZlW0Q+PjBdKXxrLHA/bD0wOmZlW2w+PjBdPTA7ZWxzZXtlOmRv''@;'; put 'put ''e2lmKHApe2ZvcihiPWYrNHwwLGs9Zis4fDAsYz1sOzspe2lmKGdvKDB8YywwfChtPTB8YVtiPj4yXSksMHwoQT0oQT0odz0wPT0oMHwoQT0wfGVTKG0sMTAsRz0oMHxhW2s+PjJdKS0oUj1tKXwwKSkpKT9HOjEtUitBfDApPj4+MDxwPj4+MD9BOnApKSxhW2I+PjJdPW09KDB8YVtiPj4yXSkr''@;'; put 'put ''QXwwLGM9YytBfDAsISh3JjAhPSgwfChBPXAtQXwwKSkpKXtEPTE3O2JyZWFrIGV9aWYobT4+PjA+PSgwfGFbaz4+Ml0pPj4+MCl7aWYoKDB8KHA9MHxtTChmKSkpPDApYnJlYWs7dz1wfWVsc2UgYVtiPj4yXT1tKzEsdz0wfFh0W20+PjBdO2lmKHA9QSstMXwwLG09YysxfDAsZmVbYz4+MF09''@;'; put 'put ''dywhKDAhPSgwfHApJjEwIT0oMjU1Jnd8MCkpKXtjPW0sRD0xNzticmVhayBlfWM9bX0oMHxjKSE9KDB8bCkmJjAhPSgxNiZhW2Y+PjJdfDApP0Q9MTc6bD0wfWVsc2UgYz1sLEQ9MTd9d2hpbGUoMCk7MTc9PSgwfEQpJiYobD9mZVtjPj4wXT0wOmw9MCl9cmV0dXJuIDB8bH1mdW5jdGlvbiB0''@;'; put 'put ''UyhsLGMpe3ZhciBmO2x8PTAsZj0wfGZlWyhjfD0wKT4+MF07ZG97aWYoZjw8MjQ+PjI0KWlmKGw9MHwkcyhsLGY8PDI0Pj4yNCkpe2lmKDB8ZmVbYysxPj4wXSlpZigwfGZlW2wrMT4+MF0pe2lmKCEoMHxmZVtjKzI+PjBdKSl7bD0wfHZjZShsLGMpO2JyZWFrfWlmKDB8ZmVbbCsyPj4wXSl7''@;'; put 'put ''aWYoISgwfGZlW2MrMz4+MF0pKXtsPTB8QWNlKGwsYyk7YnJlYWt9aWYoMHxmZVtsKzM+PjBdKXtpZigwfGZlW2MrND4+MF0pe2w9MHx3Y2UobCxjKTticmVha31sPTB8eWNlKGwsYyk7YnJlYWt9bD0wfWVsc2UgbD0wfWVsc2UgbD0wfWVsc2UgbD0wfXdoaWxlKDApO3JldHVybiAwfGx9ZnVu''@;'; put 'put ''Y3Rpb24gdmNlKGwsYyl7dmFyIG0sZj0wLHA9MDtmb3IobT0oMHxYdFsoY3w9MCk+PjBdKTw8OHwwfFh0W2MrMT4+MF0scD0wfFh0WyhsfD0wKT4+MF07KGY9MHxmZVsoYz1sKzF8MCk+PjBdKTw8MjQ+PjI0JiYoMHwocD1wPDw4JjY1MjgwfDI1NSZmKSkhPSgwfG0pOylsPWM7cmV0dXJuIDB8''@;'; put 'put ''KGY8PDI0Pj4yND9sOjApfWZ1bmN0aW9uIEFjZShsLGMpe3ZhciBwLGY9MDtpZihwPSgwfFh0WzErKGN8PTApPj4wXSk8PDE2fCgwfFh0W2M+PjBdKTw8MjR8KDB8WHRbYysyPj4wXSk8PDgsISgoMHwobD0oMHxYdFsxKyhsfD0wKT4+MF0pPDwxNnwoMHxYdFtsPj4wXSk8PDI0fCgyNTUmKGM9''@;'; put 'put ''MHxmZVsoZj1sKzJ8MCk+PjBdKSk8PDgpKT09KDB8cCl8Yzw8MjQ+PjI0PT0wKSlkb3tsPShsfDI1NSYoYz0wfGZlWyhmPWYrMXwwKT4+MF0pKTw8OH13aGlsZSghKCgwfGwpPT0oMHxwKXxjPDwyND4+MjQ9PTApKTtyZXR1cm4gMHwoYzw8MjQ+PjI0P2YrLTJ8MDowKX1mdW5jdGlvbiB5Y2Uo''@;'; put 'put ''bCxjKXt2YXIgcCxmPTA7aWYocD0oMHxYdFsxKyhjfD0wKT4+MF0pPDwxNnwoMHxYdFtjPj4wXSk8PDI0fCgwfFh0W2MrMj4+MF0pPDw4fDB8WHRbYyszPj4wXSwhKChmPTB8ZmVbKGM9MysobHw9MCl8MCk+PjBdKTw8MjQ+PjI0PT0wfCgwfChsPSgwfFh0W2wrMT4+MF0pPDwxNnwoMHxYdFts''@;'; put 'put ''Pj4wXSk8PDI0fCgwfFh0W2wrMj4+MF0pPDw4fDI1NSZmKSk9PSgwfHApKSlkb3tsPWw8PDh8MjU1JihmPTB8ZmVbKGM9YysxfDApPj4wXSl9d2hpbGUoIShmPDwyND4+MjQ9PTB8KDB8bCk9PSgwfHApKSk7cmV0dXJuIDB8KGY8PDI0Pj4yND9jKy0zfDA6MCl9ZnVuY3Rpb24gd2NlKGwsYyl7''@;'; put 'put ''bHw9MCxjfD0wO3ZhciBiZSxPZSxMZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTA7TGU9bGUsbGU9bGUrMTA1NnwwLE9lPUxlLGFbKGJlPUxlKzEwMjR8MCk+PjJdPTAsYVtiZSs0Pj4yXT0wLGFbYmUrOD4+Ml09MCxhW2JlKzEyPj4y''@;'; put 'put ''XT0wLGFbYmUrMTY+PjJdPTAsYVtiZSsyMD4+Ml09MCxhW2JlKzI0Pj4yXT0wLGFbYmUrMjg+PjJdPTAsZj0wfGZlW2M+PjBdO2U6ZG97aWYoZjw8MjQ+PjI0KXtnZT0wO2Rve2lmKCEoMHxmZVtsK2dlPj4wXSkpe2Y9MDticmVhayBlfWFbKHBlPWJlKygoKDI1NSZmKT4+PjUmMjU1KTw8Mil8''@;'; put 'put ''MCk+PjJdPWFbcGU+PjJdfDE8PCgzMSZmKSxhW09lKygoMjU1JmYpPDwyKT4+Ml09Z2U9Z2UrMXwwLGY9MHxmZVtjK2dlPj4wXX13aGlsZShmPDwyND4+MjQhPTApO2lmKE09Z2U+Pj4wPjEpe3A9MCxrPS0xLG09MTt0OmZvcig7Oyl7Zm9yKEE9MSxmPXA7Oyl7cD1tO246Zm9yKDs7KXtmb3Io''@;'; put 'put ''Yj0xOzspe2lmKChtPTB8ZmVbYysoYitrKT4+MF0pPDwyND4+MjQhPSh3PTB8ZmVbYytwPj4wXSk8PDI0Pj4yNClicmVhayBuO2lmKCgwfGIpPT0oMHxBKSlicmVhaztpZigocD0oYj1iKzF8MCkrZnwwKT4+PjA+PWdlPj4+MCl7RD1BLGY9azticmVhayB0fX1pZigocD0xKyhmPUErZnwwKXww''@;'; put 'put ''KT4+PjA+PWdlPj4+MCl7RD1BLGY9azticmVhayB0fX1pZihBPXAta3wwLCgyNTUmbSk8PSgyNTUmdykpYnJlYWs7aWYoKG09cCsxfDApPj4+MD49Z2U+Pj4wKXtEPUEsZj1rO2JyZWFrIHR9Zj1wfWlmKChtPWYrMnwwKT4+PjA+PWdlPj4+MCl7RD0xO2JyZWFrfXA9ZisxfDAsaz1mfWlmKE0p''@;'; put 'put ''Zm9yKEE9MCxNPS0xLHc9MTs7KXtmb3IocD0xLG09QTs7KXtBPXc7dDpmb3IoOzspe2ZvcihrPTE7Oyl7aWYoKHc9MHxmZVtjKyhrK00pPj4wXSk8PDI0Pj4yNCE9KGI9MHxmZVtjK0E+PjBdKTw8MjQ+PjI0KWJyZWFrIHQ7aWYoKDB8ayk9PSgwfHApKWJyZWFrO2lmKChBPShrPWsrMXwwKStt''@;'; put 'put ''fDApPj4+MD49Z2U+Pj4wKXt3PUQsbT1NLEE9MjY7YnJlYWsgZX19aWYoKEE9MSsobT1wK218MCl8MCk+Pj4wPj1nZT4+PjApe3c9RCxtPU0sQT0yNjticmVhayBlfX1pZihwPUEtTXwwLCgyNTUmdyk+PSgyNTUmYikpYnJlYWs7aWYoKHc9QSsxfDApPj4+MD49Z2U+Pj4wKXt3PUQsbT1NLEE9''@;'; put 'put ''MjY7YnJlYWsgZX1tPUF9aWYoKHc9bSsyfDApPj4+MD49Z2U+Pj4wKXt3PUQscD0xLEE9MjY7YnJlYWt9QT1tKzF8MCxNPW19ZWxzZSB3PUQscD0xLG09LTEsQT0yNn1lbHNlIHc9MSxmPS0xLHA9MSxtPS0xLEE9MjZ9ZWxzZSB3PTEsZj0tMSxnZT0wLHA9MSxtPS0xLEE9MjZ9d2hpbGUoMCk7''@;'; put 'put ''ZTpkb3tpZigyNj09KDB8QSkpZm9yKHE9KG0rMXwwKT4+PjA+KGYrMXwwKT4+PjAscD1xP3A6dyxxPXE/bTpmLHBlPXErMXwwLDB8dDMoYyxjK3B8MCxwZSk/KHA9Z2UtcS0xfDAsRz0wLHA9KHE+Pj4wPnA+Pj4wP3E6cCkrMXwwKTpHPWdlLXB8MCxrPTYzfGdlLE09Z2UrLTF8MCxEPTAhPSgw''@;'; put 'put ''fEcpLFI9Z2UtcHwwLGY9bCxiPTAsbT1sOzspe0E9Zjtkb3tpZigobS1BfDApPj4+MDxnZT4+PjApe2lmKHc9MHxlUyhtLDAsaykpe2lmKCh3LUF8MCk+Pj4wPGdlPj4+MCl7Zj0wO2JyZWFrIGV9YnJlYWt9dz1tK2t8MDticmVha313PW19d2hpbGUoMCk7bT0wfGZlW2YrTT4+MF07dDpkb3tp''@;'; put 'put ''ZigxPDwoMzEmbSkmYVtiZSsoKCgyNTUmbSk+Pj41JjI1NSk8PDIpPj4yXSl7aWYoMHwobT1nZS0oMHxhW09lKygoMjU1Jm0pPDwyKT4+Ml0pfDApKXtBPTAsbT1EJjAhPSgwfGIpJm0+Pj4wPHA+Pj4wP1I6bTticmVha31BPTB8ZmVbYysobT1wZT4+PjA+Yj4+PjA/cGU6Yik+PjBdO246ZG97''@;'; put 'put ''aWYoQTw8MjQ+PjI0KXtmb3IoO0E8PDI0Pj4yND09KDB8ZmVbZittPj4wXSk7KWlmKCEoKEE9MHxmZVtjKyhtPW0rMXwwKT4+MF0pPDwyND4+MjQpKXttPXBlO2JyZWFrIG59QT0wLG09bS1xfDA7YnJlYWsgdH1tPXBlfXdoaWxlKDApO2Zvcig7Oyl7aWYobT4+PjA8PWI+Pj4wKWJyZWFrIGU7''@;'; put 'put ''aWYoKDB8ZmVbYysobT1tKy0xfDApPj4wXSkhPSgwfGZlW2YrbT4+MF0pKXtBPUcsbT1wO2JyZWFrfX19ZWxzZSBBPTAsbT1nZX13aGlsZSgwKTtmPWYrbXwwLGI9QSxtPXd9fXdoaWxlKDApO3JldHVybiBsZT1MZSwwfGZ9ZnVuY3Rpb24gZXcobCxjLGYpe3JldHVybiBmdW5jdGlvbiBiY2Uo''@;'; put 'put ''bCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTA7bT1jfD0wO2U6ZG97aWYoMyYobV5sKSlBPTExO2Vsc2V7aWYoKHA9MCE9KDB8ZikpJjAhPSgzJm18MCkpZG97aWYoZmVbbD4+MF09bT0wfGZlW2M+PjBdLCEobTw8MjQ+PjI0KSlicmVhayBlO2M9YysxfDAsbD1sKzF8MCxwPTAhPSgw''@;'; put 'put ''fChmPWYrLTF8MCkpfXdoaWxlKHAmMCE9KDMmY3wwKSk7aWYocCl7aWYoMHxmZVtjPj4wXSl7dDpkb3tpZihmPj4+MD4zKWZvcihwPWM7Oyl7aWYoKC0yMTM5MDYyMTQ0JihjPTB8YVtwPj4yXSleLTIxMzkwNjIxNDQpJmMrLTE2ODQzMDA5fDApe2M9cDticmVhayB0fWlmKGFbbD4+Ml09Yyxj''@;'; put 'put ''PXArNHwwLGw9bCs0fDAsISgoZj1mKy00fDApPj4+MD4zKSlicmVhaztwPWN9fXdoaWxlKDApO0E9MTF9fWVsc2UgZj0wfX13aGlsZSgwKTtlOmRve2lmKDExPT0oMHxBKSlpZihmKWZvcig7Oyl7aWYoZmVbbD4+MF09QT0wfGZlW2M+PjBdLCEoQTw8MjQ+PjI0KSlicmVhayBlO2lmKGw9bCsx''@;'; put 'put ''fDAsIShmPWYrLTF8MCkpe2Y9MDticmVha31jPWMrMXwwfWVsc2UgZj0wfXdoaWxlKDApO3UyKDB8bCwwLDB8Zil9KGx8PTAsY3w9MCxmfD0wKSwwfGx9ZnVuY3Rpb24gXyQobCxjKXtsfD0wLGN8PTA7dmFyIHAsbSxmPTAsQT0wO209bGUsbGU9bGUrMzJ8MCxhWyhwPW0pPj4yXT0wLGFbcCs0''@;'; put 'put ''Pj4yXT0wLGFbcCs4Pj4yXT0wLGFbcCsxMj4+Ml09MCxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbcCsyND4+Ml09MCxhW3ArMjg+PjJdPTAsZj0wfGZlW2M+PjBdO2Rve2lmKGY8PDI0Pj4yNCl7aWYoISgwfGZlW2MrMT4+MF0pKXtmb3IoYz1sOygwfGZlW2M+PjBdKT09Zjw8MjQ+PjI0''@;'; put 'put ''OyljPWMrMXwwO2M9Yy1sfDA7YnJlYWt9ZG97YVsoQT1wKygoKDI1NSZmKT4+PjUmMjU1KTw8Mil8MCk+PjJdPWFbQT4+Ml18MTw8KDMxJmYpLGY9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKGY8PDI0Pj4yNCE9MCk7Zj0wfGZlW2w+PjBdO2U6ZG97aWYoZjw8MjQ+PjI0KXtjPWw7ZG97aWYo''@;'; put 'put ''IShhW3ArKCgoMjU1JmYpPj4+NSYyNTUpPDwyKT4+Ml0mMTw8KDMxJmYpKSlicmVhayBlO2Y9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKGY8PDI0Pj4yNCE9MCl9ZWxzZSBjPWx9d2hpbGUoMCk7Yz1jLWx8MH1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gbGU9bSwwfGN9ZnVuY3Rpb24gb28o''@;'; put 'put ''bCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCxwPWxlLGxlPWxlKzE2fDAsYVsobT1wKT4+Ml09Znw9MCxmPTB8RGoobCxjLG0pLGxlPXAsMHxmfWZ1bmN0aW9uIERqKGwsYyxmKXtyZXR1cm4gMHxBTChsfD0wLDIxNDc0ODM2NDcsY3w9MCxmfD0wKX1mdW5jdGlvbiB4MShsLGMsZixw''@;'; put 'put ''KXtsfD0wLHB8PTA7dmFyIGssTSxELG09MCxBPTAsdz0wLGI9MCxSPTA7RD1sZSxsZT1sZSsyMDh8MCxrPUQrOHwwLE09RCx3PTB8QXIoZnw9MCxjfD0wKSxhWyhiPU0pPj4yXT0xLGFbYis0Pj4yXT0wO2U6ZG97aWYoMHx3KXtmb3IoYj0wLWZ8MCxhW2srND4+Ml09ZixhW2s+PjJdPWYsbT0y''@;'; put 'put ''LGM9ZixBPWY7YVtrKyhtPDwyKT4+Ml09Yz1jK2YrQXwwLGM+Pj4wPHc+Pj4wOylSPUEsbT1tKzF8MCxBPWMsYz1SO2lmKChBPWwrdytifDApPj4+MD5sPj4+MCl7dz1BLG09MSxjPTE7ZG97ZG97aWYoMyE9KDMmY3wwKSl7aWYoKDB8YVtrKygoYz1tKy0xfDApPDwyKT4+Ml0pPj4+MDwody1s''@;'; put 'put ''fDApPj4+MD93TChsLGYscCxtLGspOl9MKGwsZixwLE0sbSwwLGspLDE9PSgwfG0pKXtDTChNLDEpLG09MDticmVha31DTChNLGMpLG09MTticmVha313TChsLGYscCxtLGspLGJMKE0sMiksbT1tKzJ8MH13aGlsZSgwKTthW00+PjJdPWM9MXxhW00+PjJdLGw9bCtmfDB9d2hpbGUobD4+PjA8''@;'; put 'put ''QT4+PjApfWVsc2UgbT0xLGM9MTtmb3IoX0wobCxmLHAsTSxtLDAsayksQT1NKzR8MDs7KXtpZigxPT0oMHxtKSYxPT0oMHxjKSl7aWYoISgwfGFbQT4+Ml0pKWJyZWFrIGV9ZWxzZSBpZigoMHxtKT49Mil7Q0woTSwyKSxSPW0rLTJ8MCxhW00+PjJdPTdeYVtNPj4yXSxiTChNLDEpLF9MKGwr''@;'; put 'put ''KDAtKDB8YVtrKyhSPDwyKT4+Ml0pKStifDAsZixwLE0sbSstMXwwLDEsayksQ0woTSwxKSxhW00+PjJdPWM9MXxhW00+PjJdLF9MKHc9bCtifDAsZixwLE0sUiwxLGspLGw9dyxtPVI7Y29udGludWV9YkwoTSxjPTB8QyQoTSkpLGw9bCtifDAsbT1jK218MCxjPTB8YVtNPj4yXX19fXdoaWxl''@;'; put 'put ''KDApO2xlPUR9ZnVuY3Rpb24gd0wobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBELFIsQT0wLHc9MCxiPTAsaz0wLE09MDtSPWxlLGxlPWxlKzI0MHwwLGFbKEQ9Uik+PjJdPWx8PTA7ZTpkb3tpZigoMHxwKT4xKWZvcihNPTAtY3wwLEE9bCxrPXAscD0xOzspe2lmKCgwfEJp''@;'; put 'put ''WzEyNyZmXShsLEE9KHc9QStNfDApKygwLSgwfGFbbSsoKGI9aystMnwwKTw8Mik+PjJdKSl8MCkpPi0xJiYoMHxCaVsxMjcmZl0obCx3KSk+LTEpYnJlYWsgZTtpZihsPXArMXwwLHA9RCsocDw8Mil8MCwoMHxCaVsxMjcmZl0oQSx3KSk+LTE/KGFbcD4+Ml09QSxwPWsrLTF8MCk6KGFbcD4+''@;'; put 'put ''Ml09dyxBPXcscD1iKSwoMHxwKTw9MSl7cD1sO2JyZWFrIGV9az1wLHA9bCxsPTB8YVtEPj4yXX1lbHNlIHA9MX13aGlsZSgwKTtTJChjLEQscCksbGU9Un1mdW5jdGlvbiBiTChsLGMpe3ZhciBtLGY9MCxwPTA7bT00KyhsfD0wKXwwLChjfD0wKT4+PjA+MzE/KGFbbD4+Ml09cD0wfGFbbT4+''@;'; put 'put ''Ml0sYVttPj4yXT0wLGM9YystMzJ8MCxmPTApOihmPTB8YVttPj4yXSxwPTB8YVtsPj4yXSksYVtsPj4yXT1mPDwzMi1jfHA+Pj5jLGFbbT4+Ml09Zj4+PmN9ZnVuY3Rpb24gX0wobCxjLGYscCxtLEEsdyl7bHw9MCxjfD0wLGZ8PTAsbXw9MCxBfD0wLHd8PTA7dmFyIE0sUixHLHEsYj0wLGs9''@;'; put 'put ''MCxEPTAscGU9MDtxPWxlLGxlPWxlKzI0MHwwLEc9cSxhWyhSPXErMjMyfDApPj4yXT1wZT0wfGFbKHB8PTApPj4yXSxhWyhNPVIrNHwwKT4+Ml09az0wfGFbcCs0Pj4yXSxhW0c+PjJdPWw7ZTpkb3tpZigxIT0oMHxwZSl8MCE9KDB8aykmJihEPTAtY3wwLGI9bCsoMC0oMHxhW3crKG08PDIp''@;'; put 'put ''Pj4yXSkpfDAsKDB8QmlbMTI3JmZdKGIsbCkpPj0xKSlmb3IocD0xLEE9MD09KDB8QSksaz1iOzspe2lmKEEmKDB8bSk+MSl7aWYoYj0wfGFbdysobSstMjw8Mik+PjJdLCgwfEJpWzEyNyZmXShBPWwrRHwwLGspKT4tMSl7Yj0xMDticmVhayBlfWlmKCgwfEJpWzEyNyZmXShBKygwLWIpfDAs''@;'; put 'put ''aykpPi0xKXtiPTEwO2JyZWFrIGV9fWlmKEE9cCsxfDAsYVtHKyhwPDwyKT4+Ml09ayxiTChSLHBlPTB8QyQoUikpLG09cGUrbXwwLCEoMSE9KDB8YVtSPj4yXSl8MCE9KDB8YVtNPj4yXSkpKXtwPUEsbD1rLGI9MTA7YnJlYWsgZX1pZigoMHxCaVsxMjcmZl0obD1rKygwLSgwfGFbdysobTw8''@;'; put 'put ''Mik+PjJdKSl8MCwwfGFbRz4+Ml0pKTwxKXtsPWsscD1BLEE9MCxiPTk7YnJlYWt9cGU9ayxwPUEsQT0xLGs9bCxsPXBlfWVsc2UgcD0xLGI9OX13aGlsZSgwKTs5PT0oMHxiKSYmMD09KDB8QSkmJihiPTEwKSwxMD09KDB8YikmJihTJChjLEcscCksd0wobCxjLGYsbSx3KSksbGU9cX1mdW5j''@;'; put 'put ''dGlvbiBDTChsLGMpe3ZhciBtLGY9MCxwPTA7bT00KyhsfD0wKXwwLChjfD0wKT4+PjA+MzE/KGFbbT4+Ml09cD0wfGFbbD4+Ml0sYVtsPj4yXT0wLGM9YystMzJ8MCxmPTApOihmPTB8YVtsPj4yXSxwPTB8YVttPj4yXSksYVttPj4yXT1mPj4+KDMyLWN8MCl8cDw8YyxhW2w+PjJdPWY8PGN9''@;'; put 'put ''ZnVuY3Rpb24gQyQobCl7dmFyIGM9MDtyZXR1cm4oYz0wfGskKCgwfGFbKGx8PTApPj4yXSktMXwwKSk/MHxjOjB8KDA9PSgwfChjPTB8ayQoMHxhW2wrND4+Ml0pKSk/MDpjKzMyfDApfWZ1bmN0aW9uIGskKGwpe3ZhciBjPTA7aWYobHw9MClpZigxJmwpbD0wO2Vsc2V7Yz1sLGw9MDtkb3ts''@;'; put 'put ''PWwrMXwwLGM+Pj49MX13aGlsZSghKDEmY3wwKSl9ZWxzZSBsPTMyO3JldHVybiAwfGx9ZnVuY3Rpb24gUyQobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wLGI9MDt3PWxlLGxlPWxlKzI1NnwwLHA9dztlOmRve2lmKCgwfGYpPj0yJiYoQT1jKyhmPDwyKXwwLGFbQT4+''@;'; put 'put ''Ml09cCwwfGwpKWZvcig7Oyl7Z28oMHxwLDB8YVtjPj4yXSwwfChtPWw+Pj4wPDI1Nj9sOjI1NikpLHA9MDtkb3tnbygwfGFbKGI9YysocDw8Mil8MCk+PjJdLDB8YVtjKygocD1wKzF8MCk8PDIpPj4yXSwwfG0pLGFbYj4+Ml09KDB8YVtiPj4yXSkrbX13aGlsZSgoMHxwKSE9KDB8ZikpO2lm''@;'; put 'put ''KCEobD1sLW18MCkpYnJlYWsgZTtwPTB8YVtBPj4yXX19d2hpbGUoMCk7bGU9d31mdW5jdGlvbiBUMChsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1mfD0wLGY9MHx5TChsLGMsbSksbGU9cCwwfGZ9ZnVuY3Rpb24gQ2NlKGwpe2x8''@;'; put 'put ''PTA7dmFyIHAsYz0wLGY9MDtmb3IocD1sZSxsZT1sZSsxNnwwLE5NKDAsMHwoZj1wKSksYz0wLGY9NjU1MzcqKDB8YVtmKzQ+PjJdKV4oZj4+PjQpK2w7ZmVbbCtjPj4wXT02NSsoMTUmZil8Zjw8MSYzMiw2IT0oMHwoYz1jKzF8MCkpOylmPj4+PTU7cmV0dXJuIGxlPXAsMHxsfWZ1bmN0aW9u''@;'; put 'put ''IGtMKGwsYyxmKXtyZXR1cm4gMHxmJChsfD0wLGN8PTAsZnw9MCwtMjE0NzQ4MzY0OCwwKX1mdW5jdGlvbiBMaihsLGMpe2x8PTA7dmFyIHAsQSxmPTAsbT0wLHc9MDtBPWxlLGxlPWxlKzMyfDAscD1BLGY9MHxmZVsoY3w9MCk+PjBdO2U6ZG97aWYoZjw8MjQ+PjI0IT0wJiYwIT0oMHxmZVtj''@;'; put 'put ''KzE+PjBdKSl7YVtwPj4yXT0wLGFbcCs0Pj4yXT0wLGFbcCs4Pj4yXT0wLGFbcCsxMj4+Ml09MCxhW3ArMTY+PjJdPTAsYVtwKzIwPj4yXT0wLGFbcCsyND4+Ml09MCxhW3ArMjg+PjJdPTA7ZG97YVsodz1wKygoKDI1NSZmKT4+PjUmMjU1KTw8Mil8MCk+PjJdPWFbdz4+Ml18MTw8KDMxJmYp''@;'; put 'put ''LGY9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKGY8PDI0Pj4yNCE9MCk7aWYoKGY9MHxmZVtsPj4wXSk8PDI0Pj4yNCl7Yz1sO2Rve2lmKGFbcCsoKCgyNTUmZik+Pj41JjI1NSk8PDIpPj4yXSYxPDwoMzEmZil8MClicmVhayBlO2Y9MHxmZVsoYz1jKzF8MCk+PjBdfXdoaWxlKGY8PDI0Pj4y''@;'; put 'put ''NCE9MCl9ZWxzZSBjPWx9ZWxzZSBtPTN9d2hpbGUoMCk7cmV0dXJuIDM9PSgwfG0pJiYoYz0wfHBMKGwsZjw8MjQ+PjI0KSksbGU9QSxjLWx8MH1mdW5jdGlvbiBsdihsLGMpe2N8PTA7dmFyIGY9MDsobHw9MCl8fChsPTB8YVs0NzY2Nl0pP2Y9MzpsPTA7ZG97aWYoMz09KDB8Zikpe2lmKGw9''@;'; put 'put ''bCsoMHxfJChsLGMpKXwwLCEoMHxmZVtsPj4wXSkpe2FbNDc2NjZdPTAsbD0wO2JyZWFrfWlmKGM9bCsoMHxMaihsLGMpKXwwLGFbNDc2NjZdPWMsMHxmZVtjPj4wXSl7YVs0NzY2Nl09YysxLGZlW2M+PjBdPTA7YnJlYWt9YVs0NzY2Nl09MDticmVha319d2hpbGUoMCk7cmV0dXJuIDB8bH1m''@;'; put 'put ''dW5jdGlvbiBPaihsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTA7KGx8PTApfHwobD0wfGFbZj4+Ml0pP3A9MzpsPTA7ZG97aWYoMz09KDB8cCkpe2lmKGw9bCsoMHxfJChsLGMpKXwwLCEoMHxmZVtsPj4wXSkpe2FbZj4+Ml09MCxsPTA7YnJlYWt9aWYoYz1sKygwfExqKGwsYykpfDAsYVtmPj4y''@;'; put 'put ''XT1jLDB8ZmVbYz4+MF0pe2FbZj4+Ml09YysxLGZlW2M+PjBdPTA7YnJlYWt9YVtmPj4yXT0wO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHJhKGwpe3ZhciBmLGM9MDtyZXR1cm4oYz0wfEYwKGY9MSsoMHxVbyhsfD0wKSl8MCkpP2dvKDB8YywwfGwsMHxmKTpjPTAsMHxj''@;'; put 'put ''fWZ1bmN0aW9uIE0kKGwsYyl7cmV0dXJuIDB8ZnVuY3Rpb24ga2NlKGwsYyxmKXt2YXIgcDtsfD0wLGZ8PTAscD0yNTUmKGN8PTApO2Rve2lmKCFmKXtjPTA7YnJlYWt9Yz1sKyhmPWYrLTF8MCl8MH13aGlsZSgoMHxmZVtjPj4wXSkhPXA8PDI0Pj4yNCk7cmV0dXJuIDB8Y30obHw9MCxjfD0w''@;'; put 'put ''LDErKDB8VW8obCkpfDApfWZ1bmN0aW9uIHN2KGwsYyl7cmV0dXJuIGN8PTAscmQoKGx8PTApKygwfFVvKGwpKXwwLGMpLDB8bH1mdW5jdGlvbiBFJChsKXtyZXR1cm4gMHwoMHxhWyhsfD0wKT4+Ml0pPj4+NCYxfWZ1bmN0aW9uIHR3KGwpe3ZhciBBLGM9MCxmPTAscD0wO3JldHVybiAwLGZ1''@;'; put 'put ''bmN0aW9uIE1jZShsKXt2YXIgYz0wOzB8YVs2OCsobHw9MCk+PjJdJiYoYz0wfGFbbCsxMTY+PjJdLGw9bCsxMTJ8MCwwfGMmJihhW2MrMTEyPj4yXT1hW2w+PjJdKSxsPShsPTB8YVtsPj4yXSk/bCsxMTZ8MDo2MzIwOCxhW2w+PjJdPWMpfShsfD0wKSwoQT0wIT0oMSZhW2w+PjJdfDApKXx8''@;'; put 'put ''KHA9MHxSaigpLGM9bCs1NnwwLDB8KGY9MHxhW2wrNTI+PjJdKSYmKGFbZis1Nj4+Ml09YVtjPj4yXSksMHwoYz0wfGFbYz4+Ml0pJiYoYVtjKzUyPj4yXT1mKSwoMHxhW3A+PjJdKT09KDB8bCkmJihhW3A+PjJdPWMpLEJqKCkpLGM9MHxTTChsKSxjPTB8X29bNjMmYVtsKzEyPj4yXV0obCl8''@;'; put 'put ''YywwfChmPTB8YVtsKzkyPj4yXSkmJkZ0KGYpLEF8fEZ0KGwpLDB8Y31mdW5jdGlvbiBSaigpe3JldHVybiAkcCgxOTA2NjgpLDE5MDY3Nn1mdW5jdGlvbiBCaigpe3I2KDE5MDY2OCl9ZnVuY3Rpb24gU0wobCl7bHw9MDt2YXIgYz0wO2Rve2lmKGwpe2lmKCgwfGFbbCs3Nj4+Ml0pPD0tMSl7''@;'; put 'put ''Yz0wfFBqKGwpO2JyZWFrfSEwLGM9MHxQaihsKX1lbHNle2lmKGM9MHxhWzE1NzExXT8wfFNMKDB8YVsxNTcxMV0pOjAsbD0wfGFbKDB8UmooKSk+PjJdKWRvezAsKDB8YVtsKzIwPj4yXSk+Pj4wPigwfGFbbCsyOD4+Ml0pPj4+MCYmKGM9MHxQaihsKXxjKSxsPTB8YVtsKzU2Pj4yXX13aGls''@;'; put 'put ''ZSgwIT0oMHxsKSk7QmooKX19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBQaihsKXt2YXIgYyx3LGY9MCxwPTAsbT0wLEE9MDtyZXR1cm4oMHxhWyhjPTIwKyhsfD0wKXwwKT4+Ml0pPj4+MD4oMHxhWyh3PWwrMjh8MCk+PjJdKT4+PjAmJihtaVs2MyZhW2wrMzY+PjJdXShsLDAsMCks''@;'; put 'put ''MD09KDB8YVtjPj4yXSkpP2w9LTE6KChwPTB8YVsoZj1sKzR8MCk+PjJdKT4+PjA8KEE9MHxhWyhtPWwrOHwwKT4+Ml0pPj4+MCYmbWlbNjMmYVtsKzQwPj4yXV0obCxwLUF8MCwxKSxhW2wrMTY+PjJdPTAsYVt3Pj4yXT0wLGFbYz4+Ml09MCxhW20+PjJdPTAsYVtmPj4yXT0wLGw9MCksMHxs''@;'; put 'put ''fWZ1bmN0aW9uIHgkKGwsYyl7bHw9MDt2YXIgbSxiLGssTSxELFIsZj0wLHA9MCxBPTAsdz0wO2lmKFI9bGUsbGU9bGUrNjR8MCxEPVIrNDB8MCxrPVIrMjR8MCxiPVIrMTZ8MCxtPVIsTT1SKzU2fDAsMHxlUygxNTM1ODAsKHA9MHxmZVsoY3w9MCk+PjBdKTw8MjQ+PjI0LDQpKWlmKGY9MHxG''@;'; put 'put ''MCgxMTU2KSl7dz0oQT1mKSsxMjR8MDtkb3thW0E+PjJdPTAsQT1BKzR8MH13aGlsZSgoMHxBKTwoMHx3KSk7MHwkcyhjLDQzKXx8KGFbZj4+Ml09cDw8MjQ+PjI0PT0xMTQ/ODo0KSwwfCRzKGMsMTAxKSYmKGFbbT4+Ml09bCxhW20rND4+Ml09MixhW20rOD4+Ml09MSxiZCgyMjEsMHxtKSxw''@;'; put 'put ''PTB8ZmVbYz4+MF0pLHA8PDI0Pj4yND09OTc/KGFbYj4+Ml09bCxhW2IrND4+Ml09MywxMDI0JihwPTB8YmQoMjIxLDB8YikpfHwoYVtrPj4yXT1sLGFbays0Pj4yXT00LGFbays4Pj4yXT0xMDI0fHAsYmQoMjIxLDB8aykpLGFbZj4+Ml09Yz0xMjh8YVtmPj4yXSk6Yz0wfGFbZj4+Ml0sYVtm''@;'; put 'put ''KzYwPj4yXT1sLGFbZis0ND4+Ml09ZisxMzIsYVtmKzQ4Pj4yXT0xMDI0LGZlWyhwPWYrNzV8MCk+PjBdPS0xLDA9PSg4JmN8MCkmJihhW0Q+PjJdPWwsYVtEKzQ+PjJdPTIxNTIzLGFbRCs4Pj4yXT1NLDA9PSgwfG42KDU0LDB8RCkpKSYmKGZlW3A+PjBdPTEwKSxhW2YrMzI+PjJdPTE1LGFb''@;'; put 'put ''ZiszNj4+Ml09MTgsYVtmKzQwPj4yXT0xNixhW2YrMTI+PjJdPTE3LDB8YVs0NzY0NV18fChhW2YrNzY+PjJdPS0xKSxmdW5jdGlvbiB4Y2UobCl7bHw9MDt2YXIgYyxmO2M9MHxSaigpLGFbbCs1Nj4+Ml09YVtjPj4yXSwwfChmPTB8YVtjPj4yXSkmJihhW2YrNTI+PjJdPWwpLGFbYz4+Ml09''@;'; put 'put ''bCxCaigpfShmKX1lbHNlIGY9MDtlbHNlIGFbNDc2NDNdPTIyLGY9MDtyZXR1cm4gbGU9UiwwfGZ9ZnVuY3Rpb24gYzgobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciB3LHA9MCxtPTAsQT0wO3c9bGUsbGU9bGUrMTZ8MCxwPXc7ZTpkb3tpZihjKXtkb3tpZigwfGYpe2lmKEE9MD09KDB8bCk/''@;'; put 'put ''cDpsLChsPTB8ZmVbYz4+MF0pPDwyND4+MjQ+LTEpe2FbQT4+Ml09MjU1JmwsbD1sPDwyND4+MjQhPTAmMTticmVhayBlfWlmKGw9MHxmZVtjPj4wXSxtPTA9PSgwfGFbYVsxNTc5MV0+PjJdKSl7YVtBPj4yXT1sPDwyND4+MjQmNTczNDMsbD0xO2JyZWFrIGV9aWYoKGw9KDI1NSZsKS0xOTR8''@;'; put 'put ''MCk+Pj4wPD01MCl7aWYocD1jKzF8MCxtPTB8YVs2MjM4NCsobDw8Mik+PjJdLGY+Pj4wPDQmJm0mLTIxNDc0ODM2NDg+Pj4oKDYqZnwwKS02fDApfDApYnJlYWs7aWYoKChmPShsPTB8WHRbcD4+MF0pPj4+MyktMTZ8ZisobT4+MjYpKT4+PjA8PTcpe2lmKCgwfChsPWwrLTEyOHxtPDw2KSk+''@;'; put 'put ''PTApe2FbQT4+Ml09bCxsPTI7YnJlYWsgZX1pZigocD0oMHxYdFtjKzI+PjBdKS0xMjh8MCk+Pj4wPD02Myl7aWYoKDB8KHB8PWw8PDYpKT49MCl7YVtBPj4yXT1wLGw9MzticmVhayBlfWlmKChsPSgwfFh0W2MrMz4+MF0pLTEyOHwwKT4+PjA8PTYzKXthW0E+PjJdPWx8cDw8NixsPTQ7YnJl''@;'; put 'put ''YWsgZX19fX19fXdoaWxlKDApO2FbNDc2NDNdPTg0LGw9LTF9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPXcsMHxsfWZ1bmN0aW9uIF91KGwsYyl7dmFyIGY7cmV0dXJuIGN8PTAsKCgwfEN1KGx8PTAsMSxmPTB8VW8obCksYykpIT0oMHxmKSk8PDMxPj4zMXwwfWZ1bmN0aW9uIEN1KGws''@;'; put 'put ''YyxmLHApe2x8PTAscHw9MDt2YXIgbTtyZXR1cm4gbT0wfEFyKGZ8PTAsY3w9MCksZj0wPT0oMHxjKT8wOmYsKDB8YVtwKzc2Pj4yXSk+LTE/KCEwLGw9MHxUaihsLG0scCkpOmw9MHxUaihsLG0scCksKDB8bCkhPSgwfG0pJiYoZj0obD4+PjApLyhjPj4+MCl8MCksMHxmfWZ1bmN0aW9uIEZq''@;'; put 'put ''KGwsYyl7bHw9MDt2YXIgdyxiLGssZj0wLHA9MCxtPTAsQT0wO2s9bGUsbGU9bGUrMTZ8MCxmZVsodz1rKT4+MF09Yj0yNTUmKGN8PTApLChtPTB8YVsocD1sKzE2fDApPj4yXSk/QT00OjB8dyQobCk/Zj0tMToobT0wfGFbcD4+Ml0sQT00KTtkb3tpZig0PT0oMHxBKSl7aWYoKHA9MHxhWyhB''@;'; put 'put ''PWwrMjB8MCk+PjJdKT4+PjA8bT4+PjAmJigwfChmPTI1NSZjKSkhPSgwfGZlW2wrNzU+PjBdKSl7YVtBPj4yXT1wKzEsZmVbcD4+MF09YjticmVha31mPTE9PSgwfG1pWzYzJmFbbCszNj4+Ml1dKGwsdywxKSk/MHxYdFt3Pj4wXTotMX19d2hpbGUoMCk7cmV0dXJuIGxlPWssMHxmfWZ1bmN0''@;'; put 'put ''aW9uIEljZShsLGMsZil7dmFyIHAsbTtyZXR1cm4gY3w9MCxmfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1sfD0wLGFbbSs0Pj4yXT1jLGFbbSs4Pj4yXT1mLGY9MHx1aCgwfHY5KDMsMHxtKSksbGU9cCwwfGZ9ZnVuY3Rpb24gSGooKXt2YXIgbCxjO3JldHVybiBjPWxlLGxlPWxl''@;'; put 'put ''KzE2fDAsbD0wfHNiKDIwLDB8YyksbGU9YywwfGx9ZnVuY3Rpb24gVCQobCxjKXtjfD0wO3ZhciBwLG0sQSxmPTA7cmV0dXJuIEE9bGUsbGU9bGUrNDh8MCxtPUErNDB8MCxwPUErOHwwLGFbKGY9QSk+PjJdPWx8PTAsYVtmKzQ+PjJdPWMsLTk9PSgwfChmPTB8R2YoMTk3LDB8ZikpKSYmKGFb''@;'; put 'put ''cD4+Ml09bCxhW3ArND4+Ml09MSwoMHxiZCgyMjEsMHxwKSk+PTApPyhmdW5jdGlvbiBEY2UobCxjKXtjfD0wO3ZhciBtLGY9MCxwPTA7cD0xNTM1NjUsbT0xNSsoZj1sfD0wKXwwO2Rve2ZlW2Y+PjBdPTB8ZmVbcD4+MF0sZj1mKzF8MCxwPXArMXwwfXdoaWxlKCgwfGYpPCgwfG0pKTtpZihj''@;'; put 'put ''KXtmb3IocD1jLGY9MTQ7Zj1mKzF8MCwhKHA+Pj4wPDEwKTspcD0ocD4+PjApLzEwfDA7Zm9yKGZlW2wrZj4+MF09MDtmZVtsKyhmPWYrLTF8MCk+PjBdPTQ4fChjPj4+MCklMTAsIShjPj4+MDwxMCk7KWM9KGM+Pj4wKS8xMHwwfWVsc2UgZmVbbCsxND4+MF09NDgsZmVbbCsxNT4+MF09MH0o''@;'; put 'put ''cCxsKSxhW20+PjJdPXAsYVttKzQ+PjJdPWMsYz0wfHVoKDB8QWMoMTk1LDB8bSkpKTpjPTB8dWgoZiksbGU9QSwwfGN9ZnVuY3Rpb24gTGNlKGwsYyl7dmFyIGYscDtyZXR1cm4gY3w9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09bHw9MCxhW3ArND4+Ml09YyxjPTB8dWgoMHx0bSgz''@;'; put 'put ''MywwfHApKSxsZT1mLDB8Y31mdW5jdGlvbiBuUyhsLGMpe2x8PTA7dmFyIG0sQSx3LGY9MCxwPTA7cmV0dXJuIHc9bGUsbGU9bGUrNDh8MCxBPXcrMzJ8MCxtPXcrMTZ8MCxmPXcsMHxlUygxNTM1ODAsMHxmZVsoY3w9MCk+PjBdLDQpPyhwPTB8ZnVuY3Rpb24gT2NlKGwpe3ZhciBjLGY9MDty''@;'; put 'put ''ZXR1cm4gZj0wPT0oMHwkcyhsfD0wLDQzKSksYz0wfGZlW2w+PjBdLGY9Zj9jPDwyND4+MjQhPTExNCYxOjIsZj0wPT0oMHwkcyhsLDEyMCkpP2Y6MTI4fGYsbD0obD0wPT0oMHwkcyhsLDEwMSkpKT9mOjUyNDI4OHxmLGw9Yzw8MjQ+PjI0PT0xMTQ/bDo2NHxsLGw9Yzw8MjQ+PjI0PT0xMTk/''@;'; put 'put ''NTEyfGw6bCwwfChjPDwyND4+MjQ9PTk3PzEwMjR8bDpsKX0oYyksYVtmPj4yXT1sLGFbZis0Pj4yXT0zMjc2OHxwLGFbZis4Pj4yXT00MzgsKDB8KGY9MHx1aCgwfEI4KDUsMHxmKSkpKT49MD8oNTI0Mjg4JnB8MCYmKGFbbT4+Ml09ZixhW20rND4+Ml09MixhW20rOD4+Ml09MSxiZCgyMjEs''@;'; put 'put ''MHxtKSksKGw9MHx4JChmLGMpKXx8KGFbQT4+Ml09ZixKdSg2LDB8QSksbD0wKSk6bD0wKTooYVs0NzY0M109MjIsbD0wKSxsZT13LDB8bH1mdW5jdGlvbiBpbChsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLHA9bGUsbGU9bGUrMTZ8MCxhWyhtPXApPj4yXT1mfD0wLGY9MHxmdW5j''@;'; put 'put ''dGlvbiBSY2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwLEEsbT0wLHc9MDtBPWxlLGxlPWxlKzEyOHwwLHc9KG09cD1BKSsxMjR8MDtkb3thW20+PjJdPTAsbT1tKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7cmV0dXJuIGFbcCszMj4+Ml09NDEsYVtwKzQ0Pj4yXT1sLGFbcCs3Nj4+Ml09''@;'; put 'put ''LTEsYVtwKzg0Pj4yXT1sLHc9MHxmdW5jdGlvbiBQY2UobCxjLGYpe2Z8PTA7dmFyIHN0LEV0LFp0LGN0LFNuLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0''@;'; put 'put ''PTAsU3Q9MCxrdD0wLGJ0PTA7U249bGUsbGU9bGUrMjg4fDAsc3Q9U24rOHwwLEV0PVNuKzE3fDAsWnQ9U24sY3Q9U24rMTZ8MCxsfD0wLHA9MHxmZVsoY3w9MCk+PjBdO2U6ZG97aWYocDw8MjQ+PjI0KXtIZT1sKzR8MCxWZT1sKzEwMHwwLHFlPWwrMTA4fDAscnQ9bCs4fDAsV2U9RXQrMTB8''@;'; put 'put ''MCxhdD1FdCszM3wwLFJlPXN0KzR8MCxTdD1FdCsxfDAsa3Q9RXQrMXwwLHc9YyxxPTAsYz0wLEE9MCxtPTA7dDpmb3IoOzspe246ZG97aWYoMHwkYygyNTUmcCkpe2Zvcig7MHwkYygwfFh0WyhwPXcrMXwwKT4+MF0pOyl3PXA7Y2gobCwwKTtkb3socD0wfGFbSGU+PjJdKT4+PjA8KDB8YVtW''@;'; put 'put ''ZT4+Ml0pPj4+MD8oYVtIZT4+Ml09cCsxLHA9MHxYdFtwPj4wXSk6cD0wfElsKGwpfXdoaWxlKDAhPSgwfCRjKHApKSk7MHxhW1ZlPj4yXT9hW0hlPj4yXT1wPSgwfGFbSGU+PjJdKS0xfDA6cD0wfGFbSGU+PjJdLGI9KDB8YVtxZT4+Ml0pK3ErcC0oMHxhW3J0Pj4yXSl8MH1lbHNle3A9cDw8''@;'; put 'put ''MjQ+PjI0PT0zNztyOmRve2lmKHApe2I9MHxmZVsoTT13KzF8MCk+PjBdO2k6ZG97c3dpdGNoKGI8PDI0Pj4yNCl7Y2FzZSAzNzpicmVhayByO2Nhc2UgNDI6TGU9MCx3PXcrMnwwO2JyZWFrO2RlZmF1bHQ6aWYoKHA9KDI1NSZiKS00OHwwKT4+PjA8MTAmJjM2PT0oMHxmZVt3KzI+PjBdKSl7''@;'; put 'put ''TGU9MHxGY2UoZixwKSx3PXcrM3wwO2JyZWFrIGl9TGU9MHxhWyh3PTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPXcrNCx3PU19fXdoaWxlKDApO2lmKCgoYj0yNTUmKHA9MHxmZVt3Pj4wXSkpLTQ4fDApPj4+MDwxMCl7TT0wO2Rve009KDEwKk18MCktNDgrYnwwLGI9MjU1JihwPTB8''@;'; put 'put ''ZmVbKHc9dysxfDApPj4wXSl9d2hpbGUoKGIrLTQ4fDApPj4+MDwxMCl9ZWxzZSBNPTA7c3dpdGNoKEE9KHA9cDw8MjQ+PjI0PT0xMDkpPzA6QSxtPXA/MDptLHc9cD93KzF8MDp3LHAmPU9lPTAhPSgwfExlKSxiPXcrMXwwLDB8ZmVbdz4+MF0pe2Nhc2UgMTA0OkQ9KGJlPTEwND09KDB8ZmVb''@;'; put 'put ''Yj4+MF0pKT8tMjotMSx3PWJlP3crMnwwOmI7YnJlYWs7Y2FzZSAxMDg6RD0oYmU9MTA4PT0oMHxmZVtiPj4wXSkpPzM6MSx3PWJlP3crMnwwOmI7YnJlYWs7Y2FzZSAxMDY6RD0zLHc9YjticmVhaztjYXNlIDExNjpjYXNlIDEyMjpEPTEsdz1iO2JyZWFrO2Nhc2UgNzY6RD0yLHc9YjticmVh''@;'; put 'put ''aztjYXNlIDExMDpjYXNlIDExMjpjYXNlIDY3OmNhc2UgODM6Y2FzZSA5MTpjYXNlIDk5OmNhc2UgMTE1OmNhc2UgODg6Y2FzZSA3MTpjYXNlIDcwOmNhc2UgNjk6Y2FzZSA2NTpjYXNlIDEwMzpjYXNlIDEwMjpjYXNlIDEwMTpjYXNlIDk3OmNhc2UgMTIwOmNhc2UgMTE3OmNhc2UgMTExOmNh''@;'; put 'put ''c2UgMTA1OmNhc2UgMTAwOkQ9MDticmVhaztkZWZhdWx0OmJ0PTEzNTticmVhayB0fXN3aXRjaChHPShwZT0zPT0oNDcmKEc9MHxYdFt3Pj4wXSl8MCkpPzMyfEc6RyxwZT1wZT8xOkQsKFI9MjU1JkcpPDwyND4+MjQpe2Nhc2UgOTk6TT0oMHxNKT4xP006MSxiZT1xO2JyZWFrO2Nhc2UgOTE6''@;'; put 'put ''YmU9cTticmVhaztjYXNlIDExMDpJJChMZSxwZSxxLCgoMHxxKTwwKTw8MzE+PjMxKSxiPXE7YnJlYWsgbjtkZWZhdWx0OmNoKGwsMCk7ZG97KGI9MHxhW0hlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbSGU+PjJdPWIrMSxiPTB8WHRbYj4+MF0pOmI9MHxJbChsKX13aGlsZSgwIT0o''@;'; put 'put ''MHwkYyhiKSkpOzB8YVtWZT4+Ml0/YVtIZT4+Ml09Yj0oMHxhW0hlPj4yXSktMXwwOmI9MHxhW0hlPj4yXSxiZT0oMHxhW3FlPj4yXSkrcStiLSgwfGFbcnQ+PjJdKXwwfWlmKGNoKGwsTSksKGI9MHxhW0hlPj4yXSk+Pj4wPChEPTB8YVtWZT4+Ml0pPj4+MClhW0hlPj4yXT1iKzE7ZWxzZXtp''@;'; put 'put ''ZigoMHxJbChsKSk8MCl7YnQ9MTM1O2JyZWFrIHR9RD0wfGFbVmU+PjJdfTB8RCYmKGFbSGU+PjJdPSgwfGFbSGU+PjJdKS0xKTtpOmRve3N3aXRjaChSPDwyND4+MjQpe2Nhc2UgOTE6Y2FzZSA5OTpjYXNlIDExNTpnZT05OT09KDB8Ryk7bzpkb3tpZigxMTU9PSgxNnxHKSl1MigwfFN0LC0x''@;'; put 'put ''LDI1NiksZmVbRXQ+PjBdPTAsMTE1PT0oMHxHKSYmKGZlW2F0Pj4wXT0wLGZlW1dlPj4wXT0wLGZlW1dlKzE+PjBdPTAsZmVbV2UrMj4+MF09MCxmZVtXZSszPj4wXT0wLGZlW1dlKzQ+PjBdPTApO2Vsc2V7c3dpdGNoKHE9MSYoYj05ND09KDB8ZmVbKEc9dysxfDApPj4wXSkpLHc9Yj93KzJ8''@;'; put 'put ''MDpHLHUyKDB8a3QsMSZifDAsMjU2KSxmZVtFdD4+MF09MCwoYj0wfGZlW3c+PjBdKTw8MjQ+PjI0KXtjYXNlIDQ1OmI9NDYsYnQ9NjM7YnJlYWs7Y2FzZSA5MzpiPTk0LGJ0PTYzfWZvcig7Oyl7NjM9PSgwfGJ0KSYmKGJ0PTAsZmVbRXQrYj4+MF09MV5xLHc9Yj13KzF8MCxiPTB8ZmVbYj4+''@;'; put 'put ''MF0pO2E6ZG97c3dpdGNoKGI8PDI0Pj4yNCl7Y2FzZSAwOmJ0PTEzNTticmVhayB0O2Nhc2UgOTM6YnJlYWsgbztjYXNlIDQ1OnN3aXRjaCgoYj0wfGZlWyhHPXcrMXwwKT4+MF0pPDwyND4+MjQpe2Nhc2UgOTM6Y2FzZSAwOmI9NDU7YnJlYWsgYX1pZigoMjU1Jih3PTB8ZmVbdystMT4+MF0p''@;'; put 'put ''KTwoMjU1JmIpKXtSPTI1NSYoMV5xKSx3Jj0yNTU7ZG97ZmVbRXQrKHc9dysxfDApPj4wXT1SLGI9MHxmZVtHPj4wXX13aGlsZSgoMHx3KTwoMjU1JmJ8MCkpO3c9R31lbHNlIHc9R319d2hpbGUoMCk7Yj0xKygyNTUmYil8MCxidD02M319fXdoaWxlKDApO2I9Z2U/TSsxfDA6MzEsRz0xPT0o''@;'; put 'put ''MHxwZSk7bzpkb3tpZihHKXtpZihwKXtpZighKG09MHxGMChiPDwyKSkpe0E9MCxtPTAscD0xLGJ0PTEzNTticmVhayB0fX1lbHNlIG09TGU7YVtzdD4+Ml09MCxhW1JlPj4yXT0wLFI9YixBPTA7YTpmb3IoOzspe0Q9MD09KDB8bSk7ZG97bDpmb3IoOzspe2lmKChiPTB8YVtIZT4+Ml0pPj4+''@;'; put 'put ''MDwoMHxhW1ZlPj4yXSk+Pj4wPyhhW0hlPj4yXT1iKzEsYj0wfFh0W2I+PjBdKTpiPTB8SWwobCksISgwfGZlW0V0KyhiKzEpPj4wXSkpYnJlYWsgYTtzd2l0Y2goZmVbY3Q+PjBdPWIsMHxPQWUoWnQsY3QsMSxzdCkpe2Nhc2UtMTpBPTAsYnQ9MTM1O2JyZWFrIHQ7Y2FzZS0yOmJyZWFrO2Rl''@;'; put 'put ''ZmF1bHQ6YnJlYWsgbH19RHx8KGFbbSsoQTw8Mik+PjJdPWFbWnQ+PjJdLEE9QSsxfDApfXdoaWxlKCEocCYoMHxBKT09KDB8UikpKTtpZighKGI9MHxVYShtLChBPVI8PDF8MSk8PDIpKSl7QT0wLHA9MSxidD0xMzU7YnJlYWsgdH1wZT1SLFI9QSxtPWIsQT1wZX1pZighKDB8SGNlKHN0KSkp''@;'; put 'put ''e0E9MCxidD0xMzU7YnJlYWsgdH1iPUEsQT0wLFI9bX1lbHNle2lmKHApe2lmKCEoQT0wfEYwKGIpKSl7QT0wLG09MCxwPTEsYnQ9MTM1O2JyZWFrIHR9Zm9yKEQ9YixtPTA7Oyl7ZG97aWYoKGI9MHxhW0hlPj4yXSk+Pj4wPCgwfGFbVmU+PjJdKT4+PjA/KGFbSGU+PjJdPWIrMSxiPTB8WHRb''@;'; put 'put ''Yj4+MF0pOmI9MHxJbChsKSwhKDB8ZmVbRXQrKGIrMSk+PjBdKSl7Yj1tLFI9MCxtPTA7YnJlYWsgb31mZVtBK20+PjBdPWIsbT1tKzF8MH13aGlsZSgoMHxtKSE9KDB8RCkpO2lmKCEoYj0wfFVhKEEsbT1EPDwxfDEpKSl7bT0wLHA9MSxidD0xMzU7YnJlYWsgdH1wZT1ELEQ9bSxBPWIsbT1w''@;'; put 'put ''ZX19aWYoTGUpZm9yKGI9MCxBPUQ7Oyl7aWYoKG09MHxhW0hlPj4yXSk+Pj4wPEE+Pj4wPyhhW0hlPj4yXT1tKzEsbT0wfFh0W20+PjBdKTptPTB8SWwobCksISgwfGZlW0V0KyhtKzEpPj4wXSkpe0E9TGUsUj0wLG09MDticmVhayBvfWZlW0xlK2I+PjBdPW0sYj1iKzF8MCxBPTB8YVtWZT4+''@;'; put 'put ''Ml19ZWxzZSBmb3IoQT1EOzspe2lmKChtPTB8YVtIZT4+Ml0pPj4+MDxBPj4+MD8oYVtIZT4+Ml09bSsxLG09MHxYdFttPj4wXSk6bT0wfElsKGwpLCEoMHxmZVtFdCsobSsxKT4+MF0pKXtiPTAsQT0wLFI9MCxtPTA7YnJlYWsgb31BPTB8YVtWZT4+Ml19fX13aGlsZSgwKTtpZigwfGFbVmU+''@;'; put 'put ''PjJdP2FbSGU+PjJdPUQ9KDB8YVtIZT4+Ml0pLTF8MDpEPTB8YVtIZT4+Ml0sIShEPUQtKDB8YVtydD4+Ml0pKygwfGFbcWU+PjJdKXwwKSl7YnQ9MTM3O2JyZWFrIHR9aWYoISgoMHxEKT09KDB8TSl8MV5nZSkpe2J0PTEzNzticmVhayB0fWRve2lmKHApe2lmKEcpe2FbTGU+PjJdPVI7YnJl''@;'; put 'put ''YWt9YVtMZT4+Ml09QTticmVha319d2hpbGUoMCk7aWYoIWdlKXtpZigwfFImJihhW1IrKGI8PDIpPj4yXT0wKSwhQSl7QT0wO2JyZWFrIGl9ZmVbQStiPj4wXT0wfWJyZWFrO2Nhc2UgMTIwOmNhc2UgODg6Y2FzZSAxMTI6Yj0xNixidD0xMjM7YnJlYWs7Y2FzZSAxMTE6Yj04LGJ0PTEyMzti''@;'; put 'put ''cmVhaztjYXNlIDExNzpjYXNlIDEwMDpiPTEwLGJ0PTEyMzticmVhaztjYXNlIDEwNTpiPTAsYnQ9MTIzO2JyZWFrO2Nhc2UgNzE6Y2FzZSAxMDM6Y2FzZSA3MDpjYXNlIDEwMjpjYXNlIDY5OmNhc2UgMTAxOmNhc2UgNjU6Y2FzZSA5NzppZihrPStEJChsLHBlLDApLCgwfGFbcWU+PjJdKT09''@;'; put 'put ''KCgwfGFbcnQ+PjJdKS0oMHxhW0hlPj4yXSl8MCkpe2J0PTEzNzticmVhayB0fWlmKExlKXN3aXRjaCgwfHBlKXtjYXNlIDA6am5bTGU+PjJdPWs7YnJlYWsgaTtjYXNlIDE6Y2FzZSAyOl9bTGU+PjNdPWs7YnJlYWsgaTtkZWZhdWx0OmJyZWFrIGl9fX13aGlsZSgwKTtkb3tpZigxMjM9PSgw''@;'; put 'put ''fGJ0KSl7aWYoYnQ9MCxiPTB8aCQobCxiLDAsLTEsLTEpLCgwfGFbcWU+PjJdKT09KCgwfGFbcnQ+PjJdKS0oMHxhW0hlPj4yXSl8MCkpe2J0PTEzNzticmVhayB0fWlmKE9lJjExMj09KDB8Rykpe2FbTGU+PjJdPWI7YnJlYWt9SSQoTGUscGUsYixEbik7YnJlYWt9fXdoaWxlKDApO2M9Yyso''@;'; put 'put ''MSZPZSl8MCxiPSgwfGFbcWU+PjJdKStiZSsoMHxhW0hlPj4yXSktKDB8YVtydD4+Ml0pfDA7YnJlYWsgbn19d2hpbGUoMCk7aWYodz13KygxJnApfDAsY2gobCwwKSwocD0wfGFbSGU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtIZT4+Ml09cCsxLHA9MHxYdFtwPj4wXSk6cD0wfEls''@;'; put 'put ''KGwpLCgwfHApIT0oMHxYdFt3Pj4wXSkpe2J0PTIyO2JyZWFrIHR9Yj1xKzF8MH19d2hpbGUoMCk7aWYoISgocD0wfGZlWyh3PXcrMXwwKT4+MF0pPDwyND4+MjQpKWJyZWFrIGU7cT1ifWlmKDIyPT0oMHxidCkpe2lmKDB8YVtWZT4+Ml0mJihhW0hlPj4yXT0oMHxhW0hlPj4yXSktMSksMCE9''@;'; put 'put ''KDB8Yyl8KDB8cCk+LTEpYnJlYWs7cD0wLGJ0PTEzNn1lbHNlIDEzNT09KDB8YnQpPyhwJj0xLGN8fChidD0xMzYpKToxMzc9PSgwfGJ0KSYmKHAmPTEpOzEzNj09KDB8YnQpJiYoYz0tMSkscCYmKEZ0KEEpLEZ0KG0pKX1lbHNlIGM9MH13aGlsZSgwKTtyZXR1cm4gbGU9U24sMHxjfShwLGMs''@;'; put 'put ''ZiksbGU9QSwwfHd9KGwsYyxtKSxsZT1wLDB8Zn1mdW5jdGlvbiBGY2UobCxjKXtjfD0wO3ZhciBmLHAsbT0wO2ZvcihwPWxlLGxlPWxlKzE2fDAsYVsoZj1wKT4+Ml09YVsobHw9MCk+PjJdO2w9MHxhWyhtPTMrKDB8YVtmPj4yXSkmLTQpPj4yXSxhW2Y+PjJdPW0rNCxjPj4+MD4xOyljPWMr''@;'; put 'put ''LTF8MDtyZXR1cm4gbGU9cCwwfGx9ZnVuY3Rpb24gSSQobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDtlOmRve2lmKDB8bClzd2l0Y2goMHxjKXtjYXNlLTI6ZmVbbD4+MF09ZjticmVhayBlO2Nhc2UtMTppdFtsPj4xXT1mO2JyZWFrIGU7Y2FzZSAwOmNhc2UgMTphW2w+PjJdPWY7YnJl''@;'; put 'put ''YWsgZTtjYXNlIDM6YVsoYz1sKT4+Ml09ZixhW2MrND4+Ml09cDticmVhayBlO2RlZmF1bHQ6YnJlYWsgZX19d2hpbGUoMCl9ZnVuY3Rpb24gSGNlKGwpe3JldHVybiAwfCgobHw9MCk/MD09KDB8YVtsPj4yXSkmMToxKX1mdW5jdGlvbiBEJChsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0w''@;'; put 'put ''LEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MDtzd2l0Y2goMHwoY3w9MCkpe2Nhc2UgMDprPS0xNDksTT0yNCx3PTQ7YnJlYWs7Y2FzZSAxOmNhc2UgMjprPS0xMDc0LE09NTMsdz00O2JyZWFrO2RlZmF1bHQ6cD0wfWU6ZG97aWYoND09KDB8dykpe1I9bCs0fDAsRD1sKzEwMHwwO2Rveyhj''@;'; put 'put ''PTB8YVtSPj4yXSk+Pj4wPCgwfGFbRD4+Ml0pPj4+MD8oYVtSPj4yXT1jKzEsYz0wfFh0W2M+PjBdKTpjPTB8SWwobCl9d2hpbGUoMCE9KDB8JGMoYykpKTt0OmRve3N3aXRjaCgwfGMpe2Nhc2UgNDM6Y2FzZSA0NTppZihBPTEtKCg0NT09KDB8YykmMSk8PDEpfDAsKGM9MHxhW1I+PjJdKT4+''@;'; put 'put ''PjA8KDB8YVtEPj4yXSk+Pj4wKXthW1I+PjJdPWMrMSxtPTB8WHRbYz4+MF07YnJlYWsgdH1tPTB8SWwobCk7YnJlYWsgdDtkZWZhdWx0Om09YyxBPTF9fXdoaWxlKDApO2M9MDtkb3tpZigoMzJ8bSkhPSgwfGZlWzE1MzU4NCtjPj4wXSkpYnJlYWs7ZG97aWYoYz4+PjA8Nyl7aWYoKG09MHxh''@;'; put 'put ''W1I+PjJdKT4+PjA8KDB8YVtEPj4yXSk+Pj4wKXthW1I+PjJdPW0rMSxtPTB8WHRbbT4+MF07YnJlYWt9bT0wfElsKGwpO2JyZWFrfX13aGlsZSgwKTtjPWMrMXwwfXdoaWxlKGM+Pj4wPDgpO3Q6ZG97c3dpdGNoKDB8Yyl7Y2FzZSA4OmJyZWFrO2Nhc2UgMzp3PTIzO2JyZWFrO2RlZmF1bHQ6''@;'; put 'put ''aWYoKGI9MCE9KDB8ZikpJmM+Pj4wPjMpe2lmKDg9PSgwfGMpKWJyZWFrIHQ7dz0yMzticmVhayB0fW46ZG97aWYoIWMpe2M9MDtkb3tpZigoMzJ8bSkhPSgwfGZlWzE1MzU5MytjPj4wXSkpYnJlYWsgbjtkb3tpZihjPj4+MDwyKXtpZigobT0wfGFbUj4+Ml0pPj4+MDwoMHxhW0Q+PjJdKT4+''@;'; put 'put ''PjApe2FbUj4+Ml09bSsxLG09MHxYdFttPj4wXTticmVha31tPTB8SWwobCk7YnJlYWt9fXdoaWxlKDApO2M9YysxfDB9d2hpbGUoYz4+PjA8Myl9fXdoaWxlKDApO3N3aXRjaCgwfGMpe2Nhc2UgMzppZigoYz0wfGFbUj4+Ml0pPj4+MDwoMHxhW0Q+PjJdKT4+PjA/KGFbUj4+Ml09YysxLGM9''@;'; put 'put ''MHxYdFtjPj4wXSk6Yz0wfElsKGwpLDQwIT0oMHxjKSl7aWYoISgwfGFbRD4+Ml0pKXtwPWpjO2JyZWFrIGV9YVtSPj4yXT0oMHxhW1I+PjJdKS0xLHA9amM7YnJlYWsgZX1mb3IoYz0xOyhtPTB8YVtSPj4yXSk+Pj4wPCgwfGFbRD4+Ml0pPj4+MD8oYVtSPj4yXT1tKzEsbT0wfFh0W20+PjBd''@;'; put 'put ''KTptPTB8SWwobCksKG0rLTQ4fDApPj4+MDwxMHwobSstNjV8MCk+Pj4wPDI2fHw5NT09KDB8bSl8KG0rLTk3fDApPj4+MDwyNjspYz1jKzF8MDtpZig0MT09KDB8bSkpe3A9amM7YnJlYWsgZX1pZigobT0wPT0oMHxhW0Q+PjJdKSl8fChhW1I+PjJdPSgwfGFbUj4+Ml0pLTEpLCFiKXthWzQ3''@;'; put 'put ''NjQzXT0yMixjaChsLDApLHA9MDticmVhayBlfWlmKCFjKXtwPWpjO2JyZWFrIGV9Zm9yKDs7KWlmKGM9YystMXwwLG18fChhW1I+PjJdPSgwfGFbUj4+Ml0pLTEpLCFjKXtwPWpjO2JyZWFrIGV9Y2FzZSAwOmlmKDQ4PT0oMHxtKSl7aWYoKGM9MHxhW1I+PjJdKT4+PjA8KDB8YVtEPj4yXSk+''@;'; put 'put ''Pj4wPyhhW1I+PjJdPWMrMSxjPTB8WHRbYz4+MF0pOmM9MHxJbChsKSwxMjA9PSgzMnxjKSl7cD0rTmNlKGwsTSxrLEEsZik7YnJlYWsgZX0wfGFbRD4+Ml0mJihhW1I+PjJdPSgwfGFbUj4+Ml0pLTEpLGM9NDh9ZWxzZSBjPW07cD0rVmNlKGwsYyxNLGssQSxmKTticmVhayBlO2RlZmF1bHQ6''@;'; put 'put ''MHxhW0Q+PjJdJiYoYVtSPj4yXT0oMHxhW1I+PjJdKS0xKSxhWzQ3NjQzXT0yMixjaChsLDApLHA9MDticmVhayBlfX19d2hpbGUoMCk7aWYoMjM9PSgwfHcpJiYoKG09MD09KDB8YVtEPj4yXSkpfHwoYVtSPj4yXT0oMHxhW1I+PjJdKS0xKSwwIT0oMHxmKSZjPj4+MD4zKSlkb3ttfHwoYVtS''@;'; put 'put ''Pj4yXT0oMHxhW1I+PjJdKS0xKSxjPWMrLTF8MH13aGlsZShjPj4+MD4zKTtwPSsoMHxBKSp5c319d2hpbGUoMCk7cmV0dXJuK3B9ZnVuY3Rpb24gTmNlKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgVmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9''@;'; put 'put ''MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxxZT0wOyh3PTB8YVsocWU9NCsobHw9MCl8MCk+PjJdKT4+PjA8KDB8YVsoVmU9bCsxMDB8MCk+PjJdKT4+PjA/KGFbcWU+PjJdPXcrMSxiPTB8WHRbdz4+MF0sTT0wKTooYj0wfElsKGwpLE09MCk7ZTpmb3IoOzspe3N3aXRjaCgwfGIp''@;'; put 'put ''e2Nhc2UgNDY6SGU9ODticmVhayBlO2Nhc2UgNDg6YnJlYWs7ZGVmYXVsdDpiZT0wLFI9MCxHPTEsQT0wLHc9MCxEPWIsT2U9TSxSZT0wLExlPTAsTT0wLGI9MDticmVhayBlfSh3PTB8YVtxZT4+Ml0pPj4+MDwoMHxhW1ZlPj4yXSk+Pj4wPyhhW3FlPj4yXT13KzEsYj0wfFh0W3c+PjBdLE09''@;'; put 'put ''MSk6KGI9MHxJbChsKSxNPTEpfWlmKDg9PSgwfEhlKSlpZigodz0wfGFbcWU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtxZT4+Ml09dysxLGI9MHxYdFt3Pj4wXSk6Yj0wfElsKGwpLDQ4PT0oMHxiKSl7TT0wLGI9MDtkb3sodz0wfGFbcWU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+''@;'; put 'put ''MD8oYVtxZT4+Ml09dysxLEQ9MHxYdFt3Pj4wXSk6RD0wfElsKGwpLE09MHx6bCgwfE0sMHxiLC0xLC0xKSxiPURufXdoaWxlKDQ4PT0oMHxEKSk7YmU9MSxSPTAsRz0xLEE9MCx3PTAsT2U9MSxSZT0wLExlPTB9ZWxzZSBiZT0xLFI9MCxHPTEsQT0wLHc9MCxEPWIsT2U9TSxSZT0wLExlPTAs''@;'; put 'put ''TT0wLGI9MDtmb3IoOzspe2lmKHE9MzJ8RCwocGU9RCstNDh8MCk+Pj4wPj0xMCl7aWYoISgoZ2U9NDY9PSgwfEQpKXwocSstOTd8MCk+Pj4wPDYpKWJyZWFrO2lmKGdlKXtpZihiZSl7RD00NjticmVha31iZT0xLGs9RyxnZT1PZSxNPUxlLGI9UmUscGU9TGUscT1SZX1lbHNlIEhlPTIwfWVs''@;'; put 'put ''c2UgSGU9MjA7aWYoMjA9PSgwfEhlKSl7SGU9MCxEPSgwfEQpPjU3P3ErLTg3fDA6cGU7ZG97aWYoISgoMHxSZSk8MHwwPT0oMHxSZSkmTGU+Pj4wPDgpKXtpZigoMHxSZSk8MHwwPT0oMHxSZSkmTGU+Pj4wPDE0KXtrPUcqPS4wNjI1LEErPUcqKygwfEQpO2JyZWFrfVI9KE9lPTAhPSgwfFIp''@;'; put 'put ''fDA9PSgwfEQpKT9SOjEsaz1HLEE9T2U/QTpBKy41Kkc7YnJlYWt9az1HLHc9RCsodzw8NCl8MH13aGlsZSgwKTtwZT0wfHpsKDB8TGUsMHxSZSwxLDApLGdlPTEscT1Ebn0oRD0wfGFbcWU+PjJdKT4+PjA8KDB8YVtWZT4+Ml0pPj4+MD8oYVtxZT4+Ml09RCsxLEc9ayxEPTB8WHRbRD4+MF0s''@;'; put 'put ''T2U9Z2UsUmU9cSxMZT1wZSk6KEc9ayxEPTB8SWwobCksT2U9Z2UsUmU9cSxMZT1wZSl9ZG97aWYoT2Upe2lmKHBlPShxPTA9PSgwfGJlKSk/TGU6TSxxPXE/UmU6YiwoMHxSZSk8MHwwPT0oMHxSZSkmTGU+Pj4wPDgpZm9yKE09TGUsYj1SZTs7KXtpZih3PDw9NCxIZT1NLE09MHx6bCgwfE0s''@;'; put 'put ''MHxiLDEsMCksISgoMHxiKTwwfDA9PSgwfGIpJkhlPj4+MDw3KSl7Uj13O2JyZWFrfWI9RG59ZWxzZSBSPXc7aWYoMTEyPT0oMzJ8RCkpe2lmKDA9PSgwfChiPTB8TCQobCxtKSkpJi0yMTQ3NDgzNjQ4PT0oMHwodz1EbikpKXtpZighbSl7Y2gobCwwKSxBPTA7YnJlYWt9MHxhW1ZlPj4yXT8o''@;'; put 'put ''YVtxZT4+Ml09KDB8YVtxZT4+Ml0pLTEsYj0wLHc9MCk6KGI9MCx3PTApfX1lbHNlIDB8YVtWZT4+Ml0/KGFbcWU+PjJdPSgwfGFbcWU+PjJdKS0xLGI9MCx3PTApOihiPTAsdz0wKTtpZihNPTB8emwoMHwoTT0wfFpvKDB8cGUsMHxxLDIpKSwwfERuLC0zMiwtMSksTT0wfHpsKDB8TSwwfERu''@;'; put 'put ''LDB8YiwwfHcpLHc9RG4sIVIpe0E9MCorKDB8cCk7YnJlYWt9aWYoKDB8dyk+KDB8KG09KCgwfChxZT0wLWZ8MCkpPDApPDwzMT4+MzEpKXwoMHx3KT09KDB8bSkmTT4+PjA+cWU+Pj4wKXthWzQ3NjQzXT0zNCxBPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MiorKDB8cCkqMTc5NzY5MzEzNDg2MjMx''@;'; put 'put ''NTdlMjkyO2JyZWFrfWlmKCgwfHcpPCgwfChtPSgoMHwocWU9ZistMTA2fDApKTwwKTw8MzE+PjMxKSl8KDB8dyk9PSgwfG0pJk0+Pj4wPHFlPj4+MCl7YVs0NzY0M109MzQsQT0yMjI1MDczODU4NTA3MjAxNGUtMzI0KisoMHxwKSoyMjI1MDczODU4NTA3MjAxNGUtMzI0O2JyZWFrfWlmKCgw''@;'; put 'put ''fFIpPi0xKXtiPVI7ZG97Yj1iPDwxfDEmKDFeKHFlPSEoQT49LjUpKSksQSs9cWU/QTpBKy0xLE09MHx6bCgwfE0sMHx3LC0xLC0xKSx3PURufXdoaWxlKCgwfGIpPi0xKTtHPUEsRD1ifWVsc2UgRz1BLEQ9UjtxZT0oKDB8Yyk8MCk8PDMxPj4zMSx3PTB8emwoMHwoZj0wfFNwKDMyLDAsMHxm''@;'; put 'put ''LCgoMHxmKTwwKTw8MzE+PjMxfDApKSwwfERuLDB8TSwwfHcpLCgwfChmPURuKSk8KDB8cWUpfCgwfGYpPT0oMHxxZSkmdz4+PjA8Yz4+PjA/KDB8dyk+MD9IZT01OTooYj0wLHc9ODQsSGU9NjEpOih3PWMsSGU9NTkpLDU5PT0oMHxIZSkmJigoMHx3KTw1Mz8oYj13LHc9ODQtd3wwLEhlPTYx''@;'; put 'put ''KTooaz0wLEE9KygwfHApKSksNjE9PSgwfEhlKSYmKEE9KygwfHApLGs9K3MkKCt2ZygxLHcpLEEpLHc9YiksMD09KEE9KChwPTA9PSgxJkR8MCkmMCE9RyYoMHx3KTwzMik/MDpHKSpBKyhrK0EqKygoRCsoMSZwKXwwKT4+PjApKS1rKSYmKGFbNDc2NDNdPTM0KSxBPSt1JChBLE0pfWVsc2Uo''@;'; put 'put ''dz0wPT0oMHxhW1ZlPj4yXSkpfHwoYVtxZT4+Ml09KDB8YVtxZT4+Ml0pLTEpLG0/KHd8fChhW3FlPj4yXT0oMHxhW3FlPj4yXSktMSksMD09KDB8YmUpfHd8fChhW3FlPj4yXT0oMHxhW3FlPj4yXSktMSkpOmNoKGwsMCksQT0wKisoMHxwKX13aGlsZSgwKTtyZXR1cm4rQX1mdW5jdGlvbiBW''@;'; put 'put ''Y2UobCxjLGYscCxtLEEpe2N8PTAsbXw9MCxBfD0wO3ZhciBrdCxFdCxadCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsc3Q9MCxjdD0wO1p0PWxlLGxlPWxlKzUx''@;'; put 'put ''MnwwLGt0PVp0LEV0PTAtKHN0PShwfD0wKSsoZnw9MCl8MCl8MCxXZT00KyhsfD0wKXwwLGF0PWwrMTAwfDAsaz0wO2U6Zm9yKDs7KXtzd2l0Y2goMHxjKXtjYXNlIDQ2OnFlPTY7YnJlYWsgZTtjYXNlIDQ4OmJyZWFrO2RlZmF1bHQ6TGU9MCxHPWsscT0wLFI9MDticmVhayBlfShjPTB8YVtX''@;'; put 'put ''ZT4+Ml0pPj4+MDwoMHxhW2F0Pj4yXSk+Pj4wPyhhW1dlPj4yXT1jKzEsYz0wfFh0W2M+PjBdLGs9MSk6KGM9MHxJbChsKSxrPTEpfWlmKDY9PSgwfHFlKSlpZigoYz0wfGFbV2U+PjJdKT4+PjA8KDB8YVthdD4+Ml0pPj4+MD8oYVtXZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwp''@;'; put 'put ''LDQ4PT0oMHxjKSlmb3Ioaz0wLGM9MDs7KXtpZihrPTB8emwoMHxrLDB8YywtMSwtMSksUj1EbiwoYz0wfGFbV2U+PjJdKT4+PjA8KDB8YVthdD4+Ml0pPj4+MD8oYVtXZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLDQ4IT0oMHxjKSl7TGU9MSxHPTEscT1rO2JyZWFrfWM9Un1l''@;'; put 'put ''bHNlIExlPTEsRz1rLHE9MCxSPTA7YVtrdD4+Ml09MCxEPWMrLTQ4fDAsTT00Nj09KDB8Yyk7ZTpkb3tpZihNfEQ+Pj4wPDEwKXtydD1rdCs0OTZ8MCxSZT0wLGs9MCxPZT0wLEhlPUxlLFZlPUcscWU9RCxHPTAsRD0wO3Q6Zm9yKDs7KXtkb3tpZihNKXtpZihIZSlicmVhayB0O0hlPTEscT1H''@;'; put 'put ''LFI9RH1lbHNle2lmKEc9MHx6bCgwfEcsMHxELDEsMCksRD1EbixMZT00OCE9KDB8YyksKDB8ayk+PTEyNSl7aWYoIUxlKWJyZWFrO2FbcnQ+PjJdPTF8YVtydD4+Ml07YnJlYWt9YVsoTT1rdCsoazw8Mil8MCk+PjJdPWM9UmU/YystNDgrKDEwKigwfGFbTT4+Ml0pfDApfDA6cWUsUmU9KFZl''@;'; put 'put ''PTk9PSgwfChSZT1SZSsxfDApKSk/MDpSZSxrPWsrKDEmVmUpfDAsT2U9TGU/RzpPZSxWZT0xfX13aGlsZSgwKTtpZigoYz0wfGFbV2U+PjJdKT4+PjA8KDB8YVthdD4+Ml0pPj4+MD8oYVtXZT4+Ml09YysxLGM9MHxYdFtjPj4wXSk6Yz0wfElsKGwpLCEoKE09NDY9PSgwfGMpKXwocWU9Yyst''@;'; put 'put ''NDh8MCk+Pj4wPDEwKSl7TGU9SGUsTT1WZSxxZT0yOTticmVhayBlfX1jPVJlLE09MCE9KDB8VmUpLHFlPTM3fWVsc2UgUmU9MCxrPTAsT2U9MCxNPUcsRz0wLEQ9MCxxZT0yOX13aGlsZSgwKTtkb3tpZigyOT09KDB8cWUpKXtpZihxPShydD0wPT0oMHxMZSkpP0c6cSxSPXJ0P0Q6UiwhKChN''@;'; put 'put ''PTAhPSgwfE0pKSYxMDE9PSgzMnxjKSkpe2lmKCgwfGMpPi0xKXtjPVJlLHFlPTM3O2JyZWFrfWM9UmUscWU9Mzk7YnJlYWt9aWYoMD09KDB8KE09MHxMJChsLEEpKSkmLTIxNDc0ODM2NDg9PSgwfChjPURuKSkpe2lmKCFBKXtjaChsLDApLHc9MDticmVha30wfGFbYXQ+PjJdPyhhW1dlPj4y''@;'; put 'put ''XT0oMHxhW1dlPj4yXSktMSxNPTAsYz0wKTooTT0wLGM9MCl9VmU9MHx6bCgwfE0sMHxjLDB8cSwwfFIpLGM9UmUsUj1EbixxZT00MX19d2hpbGUoMCk7Mzc9PSgwfHFlKSYmKDB8YVthdD4+Ml0/KGFbV2U+PjJdPSgwfGFbV2U+PjJdKS0xLE0/KFZlPXEscWU9NDEpOnFlPTQwKTpxZT0zOSks''@;'; put 'put ''Mzk9PSgwfHFlKSYmKE0/KFZlPXEscWU9NDEpOnFlPTQwKTtkb3tpZig0MD09KDB8cWUpKWFbNDc2NDNdPTIyLGNoKGwsMCksdz0wO2Vsc2UgaWYoNDE9PSgwfHFlKSl7aWYoIShNPTB8YVtrdD4+Ml0pKXt3PTAqKygwfG0pO2JyZWFrfWlmKCgwfFZlKT09KDB8RykmKDB8Uik9PSgwfEQpJigo''@;'; put 'put ''MHxEKTwwfDA9PSgwfEQpJkc+Pj4wPDEwKSYmKDB8Zik+MzB8MD09KE0+Pj5mfDApKXt3PSsoMHxtKSorKE0+Pj4wKTticmVha31pZigoMHxSKT4oMHwoYXQ9KCgwfChsPSgwfHApLy0yfDApKTwwKTw8MzE+PjMxKSl8KDB8Uik9PSgwfGF0KSZWZT4+PjA+bD4+PjApe2FbNDc2NDNdPTM0LHc9''@;'; put 'put ''MTc5NzY5MzEzNDg2MjMxNTdlMjkyKisoMHxtKSoxNzk3NjkzMTM0ODYyMzE1N2UyOTI7YnJlYWt9aWYoKDB8Uik8KDB8KGF0PSgoMHwobD1wKy0xMDZ8MCkpPDApPDwzMT4+MzEpKXwoMHxSKT09KDB8YXQpJlZlPj4+MDxsPj4+MCl7YVs0NzY0M109MzQsdz0yMjI1MDczODU4NTA3MjAxNGUt''@;'; put 'put ''MzI0KisoMHxtKSoyMjI1MDczODU4NTA3MjAxNGUtMzI0O2JyZWFrfWlmKGMpe2lmKCgwfGMpPDkpe2ZvcihNPTB8YVsoRD1rdCsoazw8Mil8MCk+PjJdO009MTAqTXwwLCEoKDB8Yyk+PTgpOyljPWMrMXwwO2FbRD4+Ml09TX1rPWsrMXwwfWlmKCgwfE9lKTw5JiYoMHxPZSk8PSgwfFZlKSYo''@;'; put 'put ''MHxWZSk8MTgpe2lmKDk9PSgwfFZlKSl7dz0rKDB8bSkqKygoMHxhW2t0Pj4yXSk+Pj4wKTticmVha31pZigoMHxWZSk8OSl7dz0rKDB8bSkqKygoMHxhW2t0Pj4yXSk+Pj4wKS8rKDB8YVs2MzcxMisoOC1WZTw8Mik+PjJdKTticmVha31pZigoMHwobD1mKzI3KygwfEFyKFZlLC0zKSl8MCkp''@;'; put 'put ''PjMwfDA9PSgoYz0wfGFba3Q+PjJdKT4+Pmx8MCkpe3c9KygwfG0pKisoYz4+PjApKisoMHxhWzYzNzEyKyhWZSstMTA8PDIpPj4yXSk7YnJlYWt9fWlmKGM9KDB8VmUpJTl8MCl7aWYoRz0wfGFbNjM3MTIrKDgtKE9lPSgwfFZlKT4tMT9jOmMrOXwwKTw8Mik+PjJdLGspe3E9MWU5LygwfEcp''@;'; put 'put ''fDAsRD0wLFI9MCxNPVZlLGM9MDtkb3thWyhXZT1rdCsoYzw8Mil8MCk+PjJdPWw9KCgoYXQ9MHxhW1dlPj4yXSk+Pj4wKS8oRz4+PjApfDApK0R8MCxEPTB8QXIocSwoYXQ+Pj4wKSUoRz4+PjApfDApLE09KGw9KDB8Yyk9PSgwfFIpJjA9PSgwfGwpKT9NKy05fDA6TSxSPWw/UisxJjEyNzpS''@;'; put 'put ''LGM9YysxfDB9d2hpbGUoKDB8YykhPSgwfGspKTtEPyhhW2t0KyhrPDwyKT4+Ml09RCxEPVIsaz1rKzF8MCk6RD1SfWVsc2UgRD0wLGs9MCxNPVZlO2M9MCxWZT05LU9lK018MH1lbHNlIGM9MCxEPTA7ZTpmb3IoOzspe2ZvcihPZT0oMHxWZSk8MTgsTGU9MTg9PSgwfFZlKSxSZT1rdCsoRDw8''@;'; put 'put ''Mil8MDs7KXtpZighT2Upe2lmKCFMZSl7TT1WZTticmVhayBlfWlmKCgwfGFbUmU+PjJdKT4+PjA+PTkwMDcxOTkpe009MTg7YnJlYWsgZX19Zm9yKE09MCxIZT1rLGs9aysxMjd8MDtrPTB8emwoMHwoaz0wfFpvKDB8YVsoRz1rdCsoKFI9MTI3JmspPDwyKXwwKT4+Ml0sMCwyOSkpLDB8RG4s''@;'; put 'put ''MHxNLDApLChNPURuKT4+PjA+MHwwPT0oMHxNKSZrPj4+MD4xZTk/KHE9MHxvdygwfGssMHxNLDFlOSwwKSxrPTB8aVMoMHxrLDB8TSwxZTksMCkpOnE9MCxhW0c+PjJdPWssSGU9MD09KDB8aykmKDFeKCgwfFIpIT0oSGUrMTI3JjEyN3wwKXwobD0oMHxSKT09KDB8RCkpKSk/UjpIZSwhbDsp''@;'; put 'put ''TT1xLGs9UistMXwwO2lmKGM9YystMjl8MCwwfHEpYnJlYWs7az1IZX1rPUhlKzEyNyYxMjcsTT1rdCsoKEhlKzEyNiYxMjcpPDwyKXwwLCgwfChEPUQrMTI3JjEyNykpPT0oMHxIZSk/YVtNPj4yXT1hW00+PjJdfGFba3QrKGs8PDIpPj4yXTprPUhlLGFba3QrKEQ8PDIpPj4yXT1xLFZlPVZl''@;'; put 'put ''Kzl8MH1lOmZvcig7Oyl7Zm9yKFJlPWsrMSYxMjcsSGU9a3QrKChrKzEyNyYxMjcpPDwyKXwwOzspe2ZvcihxPTE4PT0oMHxNKSxMZT0oMHxNKT4yNz85OjEsVmU9RDs7KXtmb3IoRz0wOzspe2lmKCgwfChEPUcrVmUmMTI3KSk9PSgwfGspKXtTdD0yLHFlPTg4O2JyZWFrfWlmKChEPTB8YVtr''@;'; put 'put ''dCsoRDw8Mik+PjJdKT4+PjA8KFI9MHxhWzYzNzQ0KyhHPDwyKT4+Ml0pPj4+MCl7U3Q9MixxZT04ODticmVha31pZihEPj4+MD5SPj4+MClicmVhaztpZihEPUcrMXwwLCEoKDB8Ryk8MSkpe1N0PUQscWU9ODg7YnJlYWt9Rz1EfWlmKDg4PT0oMHxxZSkmJihxZT0wLHEmMj09KDB8U3QpKSl7''@;'; put 'put ''dz0wLFI9MDticmVhayBlfWlmKGM9TGUrY3wwLCgwfFZlKSE9KDB8aykpYnJlYWs7VmU9a31xPSgxPDxMZSktMXwwLE9lPTFlOT4+PkxlLEc9MCxEPVZlLFI9VmU7ZG97YVsoV2U9a3QrKFI8PDIpfDApPj4yXT1sPSgoYXQ9MHxhW1dlPj4yXSk+Pj5MZSkrR3wwLEc9MHxBcihhdCZxLE9lKSxN''@;'; put 'put ''PShsPSgwfFIpPT0oMHxEKSYwPT0oMHxsKSk/TSstOXwwOk0sRD1sP0QrMSYxMjc6RCxSPVIrMSYxMjd9d2hpbGUoKDB8UikhPSgwfGspKTtpZihHKXtpZigoMHxSZSkhPSgwfEQpKWJyZWFrO2FbSGU+PjJdPTF8YVtIZT4+Ml19fWFba3QrKGs8PDIpPj4yXT1HLGs9UmV9ZG97TT1rKzEmMTI3''@;'; put 'put ''LCgwfChEPVIrVmUmMTI3KSk9PSgwfGspJiYoYVtrdCsoTSstMTw8Mik+PjJdPTAsaz1NKSx3PTFlOSp3KyArKCgwfGFba3QrKEQ8PDIpPj4yXSk+Pj4wKSxSPVIrMXwwfXdoaWxlKDIhPSgwfFIpKTtpZihiPXcqKGJlPSsoMHxtKSksKDB8KEQ9KHE9KDB8KEc9KFI9Yys1M3wwKS1wfDApKTwo''@;'; put 'put ''MHxmKSk/KDB8Ryk+MD9HOjA6ZikpPDUzPyhnZT1jdD0rcyQoK3ZnKDEsMTA1LUR8MCksYiksdz1wZT0rYyQoYiwrdmcoMSw1My1EfDApKSxwZT1jdCsoYi1wZSkpOihnZT0wLHc9MCxwZT1iKSwoMHwoTT1WZSsyJjEyNykpIT0oMHxrKSl7TT0wfGFba3QrKE08PDIpPj4yXTtkb3tpZihNPj4+''@;'; put 'put ''MD49NWU4KXtpZig1ZTghPSgwfE0pKXt3PS43NSpiZSt3O2JyZWFrfWlmKChWZSszJjEyN3wwKT09KDB8aykpe3c9LjUqYmUrdzticmVha313PS43NSpiZSt3O2JyZWFrfWlmKDA9PSgwfE0pJiYoVmUrMyYxMjd8MCk9PSgwfGspKWJyZWFrO3c9LjI1KmJlK3d9d2hpbGUoMCk7Yj0oNTMtRHww''@;'; put 'put ''KT4xJiYwPT0rYyQodywxKT93KzE6d31lbHNlIGI9dzt3PXBlK2ItZ2U7ZG97aWYoKDIxNDc0ODM2NDcmUnwwKT4oLTItc3R8MCkpe2lmKHc9KHN0PSEoK2VvKCt3KT49OTAwNzE5OTI1NDc0MDk5MikpP3c6LjUqdywoNTArKGM9YysoMSYoMV5zdCkpfDApfDApPD0oMHxFdCkmJiEoMCE9YiZx''@;'; put 'put ''JigoMHxEKSE9KDB8Ryl8c3QpKSlicmVhazthWzQ3NjQzXT0zNH19d2hpbGUoMCk7dz0rdSQodyxjKX19d2hpbGUoMCk7cmV0dXJuIGxlPVp0LCt3fWZ1bmN0aW9uIEwkKGwsYyl7Y3w9MDt2YXIgQSxmPTAscD0wLG09MCx3PTA7c3dpdGNoKChmPTB8YVsoQT00KyhsfD0wKXwwKT4+Ml0pPj4+''@;'; put 'put ''MDwoMHxhWyh3PWwrMTAwfDApPj4yXSk+Pj4wPyhhW0E+PjJdPWYrMSxmPTB8WHRbZj4+MF0pOmY9MHxJbChsKSwwfGYpe2Nhc2UgNDM6Y2FzZSA0NTpwPTQ1PT0oMHxmKSYxLChmPTB8YVtBPj4yXSk+Pj4wPCgwfGFbdz4+Ml0pPj4+MD8oYVtBPj4yXT1mKzEsZj0wfFh0W2Y+PjBdKTpmPTB8''@;'; put 'put ''SWwobCksMCE9KDB8YykmKGYrLTQ4fDApPj4+MD45JiYwIT0oMHxhW3c+PjJdKSYmKGFbQT4+Ml09KDB8YVtBPj4yXSktMSk7YnJlYWs7ZGVmYXVsdDpwPTB9aWYoKGYrLTQ4fDApPj4+MD45KTB8YVt3Pj4yXT8oYVtBPj4yXT0oMHxhW0E+PjJdKS0xLHA9LTIxNDc0ODM2NDgsZj0wKToocD0t''@;'; put 'put ''MjE0NzQ4MzY0OCxmPTApO2Vsc2V7bT0wO2Rve209ZistNDgrKDEwKm18MCl8MCwoZj0wfGFbQT4+Ml0pPj4+MDwoMHxhW3c+PjJdKT4+PjA/KGFbQT4+Ml09ZisxLGY9MHxYdFtmPj4wXSk6Zj0wfElsKGwpfXdoaWxlKChmKy00OHwwKT4+PjA8MTAmKDB8bSk8MjE0NzQ4MzY0KTtpZihjPSgo''@;'; put 'put ''MHxtKTwwKTw8MzE+PjMxLChmKy00OHwwKT4+PjA8MTApZG97Yz0wfGl3KDB8bSwwfGMsMTAsMCksbT1EbixmPTB8emwoMHxmLCgoMHxmKTwwKTw8MzE+PjMxfDAsLTQ4LC0xKSxtPTB8emwoMHxmLDB8RG4sMHxjLDB8bSksYz1EbiwoZj0wfGFbQT4+Ml0pPj4+MDwoMHxhW3c+PjJdKT4+PjA/''@;'; put 'put ''KGFbQT4+Ml09ZisxLGY9MHxYdFtmPj4wXSk6Zj0wfElsKGwpfXdoaWxlKChmKy00OHwwKT4+PjA8MTAmKCgwfGMpPDIxNDc0ODM2fDIxNDc0ODM2PT0oMHxjKSZtPj4+MDwyMDYxNTg0MzAyKSk7aWYoKGYrLTQ4fDApPj4+MDwxMClkb3soZj0wfGFbQT4+Ml0pPj4+MDwoMHxhW3c+PjJdKT4+''@;'; put 'put ''PjA/KGFbQT4+Ml09ZisxLGY9MHxYdFtmPj4wXSk6Zj0wfElsKGwpfXdoaWxlKChmKy00OHwwKT4+PjA8MTApOzB8YVt3Pj4yXSYmKGFbQT4+Ml09KDB8YVtBPj4yXSktMSksdz0wIT0oMHxwKSxmPTB8U3AoMCwwLDB8bSwwfGMpLHA9dz9EbjpjLGY9dz9mOm19cmV0dXJuIERuPXAsMHxmfWZ1''@;'; put 'put ''bmN0aW9uIG4zKGwsYyxmKXtyZXR1cm4gMHxmdW5jdGlvbiBaY2UobCxjLGYpe2N8PTAsZnw9MDtyZXR1cm4oMHxhWzc2KyhsfD0wKT4+Ml0pPi0xPyghMCxjPTB8TyQobCxjLGYpKTpjPTB8TyQobCxjLGYpLDB8Y30obHw9MCxjfD0wLGZ8PTApfWZ1bmN0aW9uIE8kKGwsYyxmKXt2YXIgcCxt''@;'; put 'put ''O3JldHVybiBsfD0wLGN8PTAsMT09KDB8KGZ8PTApKSYmKGM9Yy0oMHxhW2wrOD4+Ml0pKygwfGFbbCs0Pj4yXSl8MCksKDB8YVsocD1sKzIwfDApPj4yXSk+Pj4wPigwfGFbKG09bCsyOHwwKT4+Ml0pPj4+MCYmKG1pWzYzJmFbbCszNj4+Ml1dKGwsMCwwKSwwPT0oMHxhW3A+PjJdKSk/Yz0t''@;'; put 'put ''MTooYVtsKzE2Pj4yXT0wLGFbbT4+Ml09MCxhW3A+PjJdPTAsKDB8bWlbNjMmYVtsKzQwPj4yXV0obCxjLGYpKTwwP2M9LTE6KGFbbCs4Pj4yXT0wLGFbbCs0Pj4yXT0wLGFbbD4+Ml09LTE3JmFbbD4+Ml0sYz0wKSksMHxjfWZ1bmN0aW9uIHIzKGwpe2x8PTA7Zm9yKHZhciBjPTAsZj0wLHA9''@;'; put 'put ''MCxtPTAsQT0wLHc9MDttPWwrMXwwLDB8JGMoYz0ocD0wfGZlW2w+PjBdKTw8MjQ+PjI0KTspbD1tO3N3aXRjaCgwfGMpe2Nhc2UgNDU6bD0xLEE9NTticmVhaztjYXNlIDQzOmw9MCxBPTU7YnJlYWs7ZGVmYXVsdDp3PTAsZj1sLGw9cH1pZig1PT0oMHxBKSYmKHc9bCxmPW0sbD0wfGZlW20+''@;'; put 'put ''PjBdKSwoYz0obDw8MjQ+PjI0KS00OHwwKT4+PjA8MTApe2w9MDtkb3tsPSgxMCpsfDApLWN8MCxjPSgwfGZlWyhmPWYrMXwwKT4+MF0pLTQ4fDB9d2hpbGUoYz4+PjA8MTApfWVsc2UgbD0wO3JldHVybiAwfCgwfHc/bDowLWx8MCl9ZnVuY3Rpb24ga3AobCl7cmV0dXJuKyAraTMobHw9MCww''@;'; put 'put ''KX1mdW5jdGlvbiBpMyhsLGMpe3JldHVybisgK2Z1bmN0aW9uIHpjZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHAsdyxiLG09MCxBPTA7Yj1sZSxsZT1sZSsxMjh8MCxBPShtPXc9YikrMTI0fDA7ZG97YVttPj4yXT0wLG09bSs0fDB9d2hpbGUoKDB8bSk8KDB8QSkpO3JldHVybiBhWyht''@;'; put 'put ''PXcrNHwwKT4+Ml09bCxhWyhBPXcrOHwwKT4+Ml09LTEsYVt3KzQ0Pj4yXT1sLGFbdys3Nj4+Ml09LTEsY2godywwKSxwPStEJCh3LGYsMSksZj0oMHxhW20+PjJdKS0oMHxhW0E+PjJdKSsoMHxhW3crMTA4Pj4yXSl8MCwwfGMmJihhW2M+PjJdPTB8Zj9sK2Z8MDpsKSxsZT1iLCtwfShsfD0w''@;'; put 'put ''LGN8PTAsMSl9ZnVuY3Rpb24gbncobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wO2U6ZG97aWYoZilmb3IoYj1jOzspe2lmKGM9YisoMHxBcih3PWY+Pj4xLHApKXwwLCEoQT0wfEJpWzEyNyZtXShsLGMpKSlicmVhayBlO2lmKDE9PSgwfGYpKXtj''@;'; put 'put ''PTA7YnJlYWsgZX1pZighKGY9KEE9KDB8QSk8MCk/dzpmLXd8MCkpe2M9MDticmVha31iPUE/YjpjfWVsc2UgYz0wfXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gcncobCl7YVs0NjY1Ml09KGx8PTApLTEsYVs0NjY1M109MH1mdW5jdGlvbiBUMSgpe3ZhciBsPTAsYz0wO3JldHVybiBj''@;'; put 'put ''PTB8emwoMHwoYz0wfGl3KDB8YVsoYz0xODY2MDgpPj4yXSwwfGFbYys0Pj4yXSwxMjg0ODY1ODM3LDE0ODE3NjU5MzMpKSwwfERuLDEsMCksbD1EbixhWzQ2NjUyXT1jLGFbNDY2NTNdPWwsMHx3bCgwfGMsMHxsLDMzKX1mdW5jdGlvbiBOaihsKXt2YXIgYyxmO2x8PTAsYz1sZSxsZT1sZSsx''@;'; put 'put ''NnwwLGl0WyhmPWMpPj4xXT0xMzA3MCxpdFtmKzI+PjFdPWwsaXRbZis0Pj4xXT1sPj4+MTYsZnVuY3Rpb24gV2NlKGwpe2x8PTAsaXRbOTY4NzZdPTB8aXRbMzI5MjJdLGl0Wzk2ODc3XT0wfGl0WzMyOTIzXSxpdFs5Njg3OF09MHxpdFszMjkyNF0saXRbMzI5MjJdPTB8aXRbbD4+MV0saXRb''@;'; put 'put ''MzI5MjNdPTB8aXRbbCsyPj4xXSxpdFszMjkyNF09MHxpdFtsKzQ+PjFdfShmKSxsZT1jfWZ1bmN0aW9uIHFjKCl7cmV0dXJuKyArZnVuY3Rpb24gWWNlKGwpe3ZhciBjPTA7cmV0dXJuIGM9MHxabygwfChjPTB8ZnVuY3Rpb24gR2NlKGwsYyl7dmFyIHAsbSxmO3JldHVybiBjPTB8emwoMHxp''@;'; put 'put ''dygoMHxoclsyKyhjfD0wKT4+MV0pPDwxNnwwfGhyW2M+PjFdfDAsMHxocltjKzQ+PjFdLCgwfGhyWyhtPTIrKGx8PTApfDApPj4xXSk8PDE2fDB8aHJbbD4+MV18MCwwfGhyWyhwPWwrNHwwKT4+MV0pLDB8RG4sMHxocltjKzY+PjFdLDApLGY9RG4saXRbbD4+MV09YyxsPTB8d2woMHxjLDB8''@;'; put 'put ''ZiwxNiksaXRbbT4+MV09bCxpdFtwPj4xXT1mLERuPTY1NTM1JmYsMHxjfShsfD0wLDY1ODUwKSksMHxEbiw0KSxsPTEwNzI2OTMyNDh8RG4sYVtTaT4+Ml09YyxhW1NpKzQ+PjJdPWwsKygrX1tTaT4+M10tMSl9KDY1ODQ0KX1mdW5jdGlvbiBSJChsLGMpe3JldHVybiBjfD0wLChsfD0wKT8o''@;'; put 'put ''YVtjPj4yXT0wLGFbYys0Pj4yXT0wLGFbYys4Pj4yXT0wLGFbYysxMj4+Ml09MCxhW2MrMTY+PjJdPTAsYVtjKzIwPj4yXT0wKTpjPTB8c2goMSwyNCksMHxjfWZ1bmN0aW9uIHdnKGwpe3ZhciBjPTAsZj0wO2lmKDB8KGM9MHxhWyhsfD0wKT4+Ml0pKWRve0Z0KDB8YVtjPj4yXSksZj1jLGM9''@;'; put 'put ''MHxhW2MrND4+Ml0sRnQoZil9d2hpbGUoMCE9KDB8YykpO0Z0KGwpfWZ1bmN0aW9uIFgxKGwsYyxmLHAsbSl7Y3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTAsaz0wLE09MDt3PTE2KyhsfD0wKXwwO2U6ZG97aWYoMHxhW3c+PjJdKWM9MDtlbHNle2lmKChBPTB8YVsoTT1sKzEy''@;'; put 'put ''fDApPj4yXSk+Pj4wPG0+Pj4wKXtkb3tpZihjKXtpZihmKXthWyh3PWwrOHwwKT4+Ml09ZixBPTEwMjQsYz1mO2JyZWFrfWFbdz4+Ml09MSxjPTA7YnJlYWsgZX1pZihBPShBPW08PDMpPj4+MD4xMDI0P0E6MTAyNCwhKGs9MHxGMCg4KSkpe2Fbdz4+Ml09MSxjPTA7YnJlYWsgZX1pZihjPTB8''@;'; put 'put ''RjAoQSksYVtrPj4yXT1jLGY9YywhYyl7RnQoayksYVt3Pj4yXT0xLGM9MDticmVhayBlfWFbays0Pj4yXT0wLDB8KGI9MHxhWyh3PWwrNHwwKT4+Ml0pJiYoYVtiKzQ+PjJdPWspLDB8YVtsPj4yXXx8KGFbbD4+Ml09ayksYVt3Pj4yXT1rLGFbKHc9bCs4fDApPj4yXT1mfXdoaWxlKDApO2Fb''@;'; put 'put ''TT4+Ml09QX1lbHNlIGY9Yz0wfGFbKHc9bCs4fDApPj4yXTthW3c+PjJdPWMrKGY9KDA9PSgwfChmPWYrbSYzKSk/MDo0LWZ8MCkrbXwwKSxhW00+PjJdPUEtZixwJiZ1MigwfGMsMCwwfGYpfX13aGlsZSgwKTtyZXR1cm4gMHxjfWZ1bmN0aW9uIFZqKGwpe0Z0KDB8YVsxNisobHw9MCk+PjJd''@;'; put 'put ''KSxGdChsKX1mdW5jdGlvbiBKY2UobCl7dmFyIEcscSxwZSxnZSxiZSxPZSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wO09lPWxlLGxlPWxlKzE2fDAsRz1PZSs0fDAscT1PZSxwZT0xJmFbMzIrKGx8PTApPj4yXSxmPTB8YVsoZ2U9bCsxNnwwKT4+Ml0sYz0w''@;'; put 'put ''fFFhKGJlPTB8YVtsKzQ+PjJdLDApO2U6ZG97aWYoIWMpe009MCE9KDB8cGUpLEQ9bCs4fDAsUj1sKzEyfDAsYz0wLGs9MTt0OmZvcig7Oyl7bT0wLEE9YyxwPTA7bjpmb3IoOzspe2lmKGM9MHxmZVtmPj4wXSxNKXtpZihjPDwyND4+MjQ9PTQwKWJyZWFrO2I9MCE9KDB8QSkmYzw8MjQ+PjI0''@;'; put 'put ''PT00MT8xMzoxNH1lbHNlIGlmKGM8PDI0Pj4yND09OTIpc3dpdGNoKDB8ZmVbZisxPj4wXSl7Y2FzZSA0MDpicmVhayBuO2Nhc2UgNDE6Yj0xMzticmVhaztkZWZhdWx0OmI9MTR9ZWxzZSBiPTE0O2lmKDEzPT0oMHxiKSl7aWYoYj0wLHc9MHxuMSgwfGFbbD4+Ml0sLTEsLTEsLTEpLGFbRD4+''@;'; put 'put ''Ml09dywhdyl7Yz0xMjticmVhayBlfXc9cH1lbHNlIGlmKDE0PT0oMHxiKSl7aWYoYj0wLDB8KGM9MHxOJChsLGYpKSlicmVhayBlO3c9cCxmPTB8YVtSPj4yXX1yOmZvcig7Oyl7aTpmb3IoOzspe3N3aXRjaCgoYz0wfGZlW2Y+PjBdKTw8MjQ+PjI0KXtjYXNlIDQyOmNhc2UgOTI6YnJlYWs7''@;'; put 'put ''ZGVmYXVsdDppZighTSlicmVhayBpO3N3aXRjaChjPDwyND4+MjQpe2Nhc2UgMTIzOmNhc2UgNjM6Y2FzZSA0MzpicmVhaztkZWZhdWx0OmJyZWFrIGl9fWlmKE0mKGM9Yzw8MjQ+PjI0PT05MikpYnJlYWs7aWYocD1mKzF8MCxjKXN3aXRjaCgwfGZlW3A+PjBdKXtjYXNlIDEyMzpjYXNlIDYz''@;'; put 'put ''OmNhc2UgNDM6YnJlYWs7ZGVmYXVsdDpicmVhayBpfWlmKGY9Yz9wOmYsIU0mJigwfGYpPT0oMSsoMHxhW2dlPj4yXSl8MCkmJjk0PT0oMHxmZVtmKy0xPj4wXSkpYnJlYWs7aWYoMTIzPT0oMHxmZVtmPj4wXSkpe2lmKCEoZj0wfHFjZShmKzF8MCxwZSxHLHEpKSl7Yj0yODticmVhayB0fXA9''@;'; put 'put ''MHxhW2w+PjJdLChjPTB8YVtxPj4yXSk/Yj0zNjpjPTB8bjEocCwtMSwtMSwtMSl9ZWxzZSBhW0c+PjJdPTAsYVtxPj4yXT0tMSwoYz0wfGZlW2Y+PjBdKTw8MjQ+PjI0PT00MyYmKGFbRz4+Ml09MSxjPTB8ZmVbZj4+MF0pLGM8PDI0Pj4yND09NjM/KGFbcT4+Ml09MSxjPTEpOmM9LTEsZj1m''@;'; put 'put ''KzF8MCxwPTB8YVtsPj4yXSxiPTM2O2lmKDM2PT0oMHxiKSYmKGI9MCxjPTB8WmoocCwwfGFbRD4+Ml0sMHxhW0c+PjJdLGMsMCkpLGFbRD4+Ml09YywhYyl7Yz0xMjticmVhayBlfX1jPTB8dXYoMHxhW2w+PjJdLG0sMHxhW0Q+PjJdKSxwPTB8ZmVbZj4+MF07aTpkb3tpZihNKXtpZihwPDwy''@;'; put 'put ''ND4+MjQ9PTEyNCl7Yj00MDticmVhayByfWlmKCEoMCE9KDB8QSkmcDw8MjQ+PjI0PT00MXxwPDwyND4+MjQ9PTApKXttPWMscD13O2NvbnRpbnVlIG59Yj00N31lbHNle3N3aXRjaChwPDwyND4+MjQpe2Nhc2UgMDpiPTQ3O2JyZWFrIGk7Y2FzZSA5MjpicmVhaztkZWZhdWx0Om09YyxwPXc7''@;'; put 'put ''Y29udGludWUgbn1zd2l0Y2goMHxmZVtmKzE+PjBdKXtjYXNlIDEyNDpjYXNlIDQxOmJyZWFrO2RlZmF1bHQ6bT1jLHA9dztjb250aW51ZSBufWlmKGM9MHxiZygwfGFbbD4+Ml0sdyxjKSwxMjQ9PSgwfGZlW2YrMT4+MF0pKXtwPTI7YnJlYWsgcn1pZighQSl7Yz04O2JyZWFrIGV9Zj1mKzJ8''@;'; put 'put ''MCxwPTkyfX13aGlsZSgwKTtpZig0Nz09KDB8YikmJihiPTAsYz0wfGJnKDB8YVtsPj4yXSx3LGMpLGY9cDw8MjQ+PjI0PT00MT9mKzF8MDpmKSwwfChjPTB8ZWZlKGwsYywwfEJmKGJlKSkpKWJyZWFrIGU7aWYoYz1wPDwyND4+MjQ9PTAsKHA9KDB8QSk8MSkmYyl7Yj01MDticmVhayB0fWlm''@;'; put 'put ''KHB8Yyl7Yz04O2JyZWFrIGV9bT0wfGZoKGJlKSxBPUErLTF8MCx3PTB8ZmgoYmUpfTQwPT0oMHxiKSYmKHA9MSxjPTB8YmcoMHxhW2w+PjJdLHcsYykpLG09MCxmPWYrcHwwLHA9Y31pZigwfChjPTB8RWwoYmUscCkpfHwwfChjPTB8RWwoYmUsbSkpfHwwfChjPTB8UWEoYmUsaykpKWJyZWFr''@;'; put 'put ''IGU7Yz1BKzF8MCxrPWsrMXwwLGY9TT9mKzF8MDpmKzJ8MH1pZigyOD09KDB8Yikpe2M9MTA7YnJlYWt9aWYoNTA9PSgwfGIpKXthW2wrMjA+PjJdPWssYz0wO2JyZWFrfX19d2hpbGUoMCk7cmV0dXJuIGxlPU9lLDB8Y31mdW5jdGlvbiBCJChsLGMsZixwKXtsfD0wLGZ8PTAscHw9MDt2YXIg''@;'; put 'put ''VmUscWUscnQsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsV2U9MDtWZT0wfGVmKGN8PTApLChxZT0wPT0oMHxsKXwwPT0oMHxwKSl8fChhW3ArNDg+PjJdPTAsYVthW3ArMzY+PjJdPj4yXT0tMSkscnQ9''@;'; put 'put ''MHxGMCg4KygoQT0wfGFbcCsyOD4+Ml0pPDwzKXwwKTtkb3tpZihydCl7aWYoYVtydD4+Ml09LTEsIShXZT0wfEYwKDQrKEE8PDIpfDApKSl7RnQocnQpLG09MTI7YnJlYWt9Zm9yKGFbV2U+PjJdPS0xLG09MDshKG0+Pj4wPkE+Pj4wKTspbT1tKzF8MDtFbChjLGYpLG09MHxRYShjLDApO2U6''@;'; put 'put ''ZG97aWYoMCE9KDB8bSl8KDB8ZWYoYykpPD0oMHxWZSkpZj1ydCxSPTAsQT0wLEQ9MCxNPS0xO2Vsc2UgZm9yKExlPXArMzJ8MCxSZT1wKzM2fDAsSGU9cCsxNnwwLGY9cnQsUj0wLEE9MCxEPTAsT2U9MSxNPS0xLGJlPTA7Oyl7dDpkb3tzd2l0Y2goMHxCZihjKSl7Y2FzZSA2Onc9MHxCZihj''@;'; put 'put ''KSxtPTA7ZG97Yj1mKyhtPDwyKXwwLG09bSsxfDB9d2hpbGUoKDB8YVtiPj4yXSk+LTEpO2ZvcihhW2I+PjJdPXc8PDF8MSxhW2YrKG08PDIpPj4yXT0tMSxtPTA7KDB8YVtXZSsobTw8Mik+PjJdKT4tMTspbT1tKzF8MDthW1dlKyhtKy0xPDwyKT4+Ml09LTEsbT0wLGI9T2Usdz1iZTticmVh''@;'; put 'put ''aztjYXNlIDA6aWYocGU9MHxmaChjKSwoMHwoYj0wfGFbKGdlPXBlKzEyfDApPj4yXSkpPi0xKXttPTA7ZG97dz1mKyhtPDwyKXwwLG09bSsxfDB9d2hpbGUoKDB8YVt3Pj4yXSk+LTEpO2lmKGFbdz4+Ml09Yjw8MSxhW2YrKG08PDIpPj4yXT0tMSwhcWUpe2ZvcihtPTA7KDB8YVtXZSsobTw8''@;'; put 'put ''Mik+PjJdKT4tMTspbT1tKzF8MDtpZihhWyh3PSgwfGFbSGU+PjJdKSsoMTIqYnwwKSs4fDApPj4yXT0wLCgwfG0pPjApe2lmKCEobT0wfEYwKDQrKG08PDIpfDApKSl7bT0xMixiPU9lLHc9YmU7YnJlYWsgdH1pZihhW3c+PjJdPW0sKDB8KHc9MHxhW1dlPj4yXSkpPi0xKXtrPTAsYj1tO2Rv''@;'; put 'put ''e2FbYj4+Ml09dyx3PTB8YVtXZSsoKGs9aysxfDApPDwyKT4+Ml0sYj1tKyhrPDwyKXwwfXdoaWxlKCgwfHcpPi0xKTttPWJ9YVttPj4yXT0tMX19aWYoMHwobT0wfFFhKGMsMHxhW2dlPj4yXSkpKXtiPU9lLHc9YmU7YnJlYWsgdH1pZigwfChtPTB8UWEoYyw2KSkpe2I9T2Usdz1iZTticmVh''@;'; put 'put ''ayB0fX1uOmRve3N3aXRjaCgwfGFbcGU+PjJdKXtjYXNlIDA6aWYoKDB8KHE9MHxhW2FbcGUrND4+Ml0+PjJdKSk+LTF8LTQ9PSgwfHEpJiYoMHxhW2Y+PjJdKT4tMSl7aWYocWUpYVtwZSsyMD4+Ml09MSxtPTA7ZWxzZXtpZihtPTB8emoobCxwZSxEKSxhWygwfGFbTGU+PjJdKSsoRDw8Mik+''@;'; put 'put ''PjJdPWJlLCgwfE0pPi0xKXtmb3IoYj0wfGFbUmU+PjJdLHc9MDtHPXcrMXwwLCgwfGFbKGs9Yisodzw8Mil8MCk+PjJdKT4tMTspdz1HO2Fbaz4+Ml09RCxhW2IrKEc8PDIpPj4yXT1NLGFbYisodysyPDwyKT4+Ml09LTEsQT1BKzF8MCxNPS0xfURMKGYscCxEKX1hW2Y+PjJdPS0xLHE9T2Ur''@;'; put 'put ''MXwwLEc9YmUsUj1SKzF8MCxEPU9lfWVsc2UgcT1PZSxtPTAsRz1iZTticmVhaztjYXNlIDE6az0wfGFbKGI9MHxhW3BlKzQ+PjJdKT4+Ml0sYj0wfGFbYis0Pj4yXSwobT0wfEVsKGMscGUpKXx8KG09MHxRYShjLDUpKXx8KG09MHxFbChjLGIpKXx8KG09MHxRYShjLDApKXx8KG09MHxRYShj''@;'; put 'put ''LCgwfGFbKHc9aysyMHwwKT4+Ml0pK09lfDApKT8ocT1PZSxHPWJlKTooKDB8YVt3Pj4yXSk+MD8obT0odz0oMHxhW2IrMjA+PjJdKT4wKT9PZTotMSx3PU9lKygxJncpfDApOihtPS0xLHc9T2UpLChtPTB8UWEoYyxtKSl8fChtPTB8UWEoYyw0KSl8fChtPTB8RWwoYyxrKSk/KHE9dyxHPWJl''@;'; put 'put ''KToocT13LG09MHxRYShjLDApLEc9YmUpKTticmVhaztjYXNlIDI6aWYodz0wfGFbcGUrND4+Ml0scWUpe2lmKDB8KG09MHxRYShjLDEmKG09KDB8YVtmPj4yXSk+LTE/MTowIT0oMSZmZVt3KzEyPj4wXSkpKSkpe3E9T2UsRz1iZTticmVhayBufX1lbHNle2lmKDB8KG09MHxRYShjLEQpKSl7''@;'; put 'put ''cT1PZSxHPWJlO2JyZWFrIG59aWYoMHwobT0wfFFhKGMsMSZmZVt3KzEyPj4wXSkpKXtxPU9lLEc9YmU7YnJlYWsgbn19aWYobT0wfEVsKGMscGUpKXE9T2UsRz1iZTtlbHNlIGlmKG09MHxRYShjLDEpKXE9T2UsRz1iZTtlbHNlIGlmKG09MHxFbChjLDB8YVt3Pj4yXSkpcT1PZSxHPWJlO2Vs''@;'; put 'put ''c2UgaWYobT0wfFFhKGMsMCkpcT1PZSxHPWJlO2Vsc2V7aWYoKDB8YVtmPj4yXSk8PS0xJiYwPT0oMSZmZVt3KzEyPj4wXSkpe3E9T2UsbT0wLEc9MDticmVhayBufWlmKHFlKW09MDtlbHNle2lmKG09MHx6aihsLHBlLEQpLGFbKDB8YVtMZT4+Ml0pKyhEPDwyKT4+Ml09MD09KDEmZmVbdysx''@;'; put 'put ''Mj4+MF0pP2JlOjEsKDB8TSk+LTEpe2ZvcihiPTB8YVtSZT4+Ml0sdz0wO0c9dysxfDAsKDB8YVsoaz1iKyh3PDwyKXwwKT4+Ml0pPi0xOyl3PUc7YVtrPj4yXT1ELGFbYisoRzw8Mik+PjJdPU0sYVtiKyh3KzI8PDIpPj4yXT0tMSxBPUErMXwwLE09LTF9REwoZixwLEQpfWFbZj4+Ml09LTEs''@;'; put 'put ''cT1PZSsxfDAsRz0wLFI9UisxfDAsRD1PZX1icmVhaztjYXNlIDM6aWYoaz0wfGFbKGI9MHxhW3BlKzQ+PjJdKT4+Ml0sYj0wfGFbYis0Pj4yXSxxPU9lKzF8MCxtPTB8UWEoYywodz0oMHxhW2Y+PjJdKT4tMSk/cTpPZSkpcT1PZSxHPWJlO2Vsc2UgaWYobT0wfFFhKGMsdz9PZTpEKSlxPU9l''@;'; put 'put ''LEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxmKSlxPU9lLEc9YmU7ZWxzZSBpZihtPTB8UWEoYywoMHxhW2Y+PjJdKT4+PjMxXjEpKXE9T2UsRz1iZTtlbHNlIGlmKG09MHxFbChjLHBlKSlxPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxiKSlxPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxrKSlx''@;'; put 'put ''PU9lLEc9YmU7ZWxzZSBpZihtPTB8UWEoYywzKSlxPU9lLEc9YmU7ZWxzZSBpZihtPTB8RWwoYyxiKSlxPU9lLEc9YmU7ZWxzZSBpZihtPTB8UWEoYywwKSlxPU9lLEc9YmU7ZWxzZXtpZigwfChtPTB8UWEoYywyKSkpe3E9T2UsRz1iZTticmVhayBufWlmKDB8KG09MHxFbChjLGspKSl7cT1P''@;'; put 'put ''ZSxHPWJlO2JyZWFrIG59aWYoMHwobT0wfFFhKGMsMCkpKXtxPU9lLEc9YmU7YnJlYWsgbn1pZigoMHxhW2Y+PjJdKT4tMSl7aWYocWUpbT0wO2Vsc2V7aWYobT0wfHpqKGwscGUsRCksYVsoMHxhW0xlPj4yXSkrKEQ8PDIpPj4yXT1iZSwoMHxNKT4tMSl7Zm9yKGI9MHxhW1JlPj4yXSx3PTA7''@;'; put 'put ''Rz13KzF8MCwoMHxhWyhrPWIrKHc8PDIpfDApPj4yXSk+LTE7KXc9RzthW2s+PjJdPUQsYVtiKyhHPDwyKT4+Ml09TSxhW2IrKHcrMjw8Mik+PjJdPS0xLEE9QSsxfDAsTT0tMX1ETChmLHAsRCl9YVtmPj4yXT0tMSxSPVIrMXwwLEQ9T2Usdz1xfWVsc2UgbT0wLHc9T2U7cT0oT2U9KDB8YVtw''@;'; put 'put ''ZSsxNj4+Ml0pPjApP3crMnwwOncsRz1iZSxEPU9lP3crMXwwOkR9YnJlYWs7ZGVmYXVsdDpxPU9lLG09MCxHPWJlfX13aGlsZSgwKTtpZigoMHwoYj0wfGFbZ2U+PjJdKSk+LTEpe3c9MDtkb3trPVdlKyh3PDwyKXwwLHc9dysxfDB9d2hpbGUoKDB8YVtrPj4yXSk+LTEpO2Fbaz4+Ml09Yixh''@;'; put 'put ''W1dlKyh3PDwyKT4+Ml09LTEsYj1xLHc9R31lbHNlIGI9cSx3PUc7YnJlYWs7Y2FzZSAxOm09MHxmaChjKSxxZT8odz0wfGFbMjArKDB8YVthW20rND4+Ml0+PjJdKT4+Ml0sYVttKzIwPj4yXT0oMHxCZihjKSkrdyx3PTAsTT0tMSk6KHBlPTB8QmYoYyksZ2U9MHxCZihjKSx3PXBlLE09MD09''@;'; put 'put ''KDB8cGUpP006Z2UpLG09MCxiPU9lLHc9cWU/YmU6MD09KDB8dykmMTticmVhaztjYXNlIDQ6dz0wfEJmKGMpLGI9MHxCZihjKSxtPTAsRD0oMHx3KT4tMT93OkQsdz1iZTticmVhaztjYXNlIDU6bT0wfGZoKGMpLHFlPyhhW20rMjA+PjJdPSgwfGFbMjArKDB8YVs0KyhiPTB8YVttKzQ+PjJd''@;'; put 'put ''KT4+Ml0pPj4yXSkrKDB8YVsyMCsoMHxhW2I+PjJdKT4+Ml0pLG09MCxiPU9lLHc9YmUpOihtPTAsYj1PZSx3PWJlKTticmVhaztjYXNlIDI6Zm9yKDs7KXtpZighKCgwfGFbZj4+Ml0pPi0xKSl7bT0wLGI9T2Usdz1iZTticmVha31mPWYrNHwwfWJyZWFrO2Nhc2UgMzpiPTB8ZmgoYyksRz0w''@;'; put 'put ''fGZoKGMpLG09MHxmaChjKSxmPTB8QmYoYykscWU/KGFbbSsyMD4+Ml09KDB8YVsyMCsoMHxhWyhnZT0wfGFbbSs0Pj4yXSk+PjJdKT4+Ml0pK2YrKDB8YVsyMCsoMHxhW2dlKzQ+PjJdKT4+Ml0pKygoMHxhWyhiZT1tKzE2fDApPj4yXSk+MD8yOjApLG09YmUpOm09bSsxNnwwLGY9MHxmaChj''@;'; put 'put ''KSx3PTB8QmYoYyksaz0wfEJmKGMpLCgwfGFbbT4+Ml0pPjA/KHFlP209MDoobT0wfEgkKGwsYix3KSxhWygwfGFbTGU+PjJdKSsodzw8Mik+PjJdPTEsbXx8KG09MHxIJChsLEcsaykpLGFbKDB8YVtMZT4+Ml0pKyhrPDwyKT4+Ml09MSksUj1SKzJ8MCxiPU9lLHc9MSk6KG09MCxiPU9lLHc9''@;'; put 'put ''MSk7YnJlYWs7ZGVmYXVsdDptPTAsYj1PZSx3PWJlfX13aGlsZSgwKTtpZigwIT0oMHxtKXwoMHxlZihjKSk8PSgwfFZlKSlicmVhayBlO09lPWIsYmU9d319d2hpbGUoMCk7aWYoIXFlJiYoREwoZixwLEQpLCgwfE0pPi0xKSl7Zm9yKHc9MHxhW3ArMzY+PjJdLGY9MDtrPWYrMXwwLCgwfGFb''@;'; put 'put ''KGI9dysoZjw8Mil8MCk+PjJdKT4tMTspZj1rO2FbYj4+Ml09RCxhW3crKGs8PDIpPj4yXT1NLGFbdysoZisyPDwyKT4+Ml09LTEsQT1BKzF8MH1hW3ArNDg+PjJdPVIsYVtwKzQwPj4yXT1SLGFbcCs0ND4+Ml09QSxGdChydCksRnQoV2UpfWVsc2UgbT0xMn13aGlsZSgwKTtyZXR1cm4gMHxt''@;'; put 'put ''fWZ1bmN0aW9uIFhjZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIE9lLExlLFJlLHFlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLEhlPTAsVmU9MDtxZT1sZSxsZT1sZSsxNnwwLE9lPXFlKzEyfDAsVmU9cWUrOHwwLExlPXFl''@;'; put 'put ''KzR8MCxSZT1xZSxIZT0wfGVmKGN8PTApLGFbT2U+PjJdPTAsYVtWZT4+Ml09MCxmPTB8RWwoYyxmKTtlOmRve2lmKCFmJiYoZj0wfFFhKGMsMCksIWYpKXt0OmRve2lmKCgwfGVmKGMpKT4oMHxIZSkpe0E9MCxiPTAsaz0wO246Zm9yKDs7KXtwZT0wfEJmKGMpLGdlPTB8ZmgoYyk7cjpkb3tz''@;'; put 'put ''d2l0Y2goMHxwZSl7Y2FzZSAwOnN3aXRjaCgwfGFbZ2U+PjJdKXtjYXNlIDA6aWYoISgoMHwoZ2U9MHxhWyhmPTB8YVtnZSs0Pj4yXSk+PjJdKSk+LTF8LTQ9PSgwfGdlKSkpe2Y9azticmVhayByfWlmKGFbKGdlPWYrOHwwKT4+Ml09Zj0oMHxhW2dlPj4yXSkra3wwLCgwfGYpPD0oMHxhW1Zl''@;'; put 'put ''Pj4yXSkpe2Y9azticmVhayByfWFbVmU+PjJdPWYsZj1rO2JyZWFrIHI7Y2FzZSAzOmNhc2UgMTppZigwfChmPTB8RWwoYywwfGFbNCsodz0wfGFbZ2UrND4+Ml0pPj4yXSkpfHwwfChmPTB8UWEoYywwKSl8fDB8KGY9MHxFbChjLDB8YVt3Pj4yXSkpKWJyZWFrIHQ7YnJlYWs7Y2FzZSAyOmlm''@;'; put 'put ''KHc9MHxhW2dlKzQ+PjJdLDB8KGY9MHxRYShjLGspKXx8MHwoZj0wfEVsKGMsZ2UpKXx8MHwoZj0wfFFhKGMsMSkpfHwwfChmPTB8RWwoYywwfGFbdz4+Ml0pKXx8MHwoZj0wfFFhKGMsMCkpKWJyZWFrIHQ7KDB8YVt3KzQ+PjJdKTw9MSYmKDB8YVt3Kzg+PjJdKTw9MT9mPWs6KGFbT2U+PjJd''@;'; put 'put ''PTAsZj0wKSxiPWIrMXwwO2JyZWFrIHI7ZGVmYXVsdDpmPWs7YnJlYWsgcn1pZihmPTB8UWEoYywwKSlicmVhayB0O2Y9azticmVhaztjYXNlIDE6Rz0wfGFbKHE9Z2UrNHwwKT4+Ml0scGU9MHxCZihjKSxhW09lPj4yXT1wZSwoMHwoaz0wfGFbKFI9Rys0fDApPj4yXSkpPD0xPygwfGFbRys4''@;'; put 'put ''Pj4yXSk+MT8oYVtMZT4+Ml09MCwoMHxrKT4wP2JlPTMwOihmPXBlLHc9MCxiZT0zNykpOmY9cGU6KGFbTGU+PjJdPTAsYmU9MzApO2k6ZG97aWYoMzA9PSgwfGJlKSl7aWYoZj0wfElMKGwsYywwfGFbRz4+Ml0sKDB8ayk+MT8xOjIsT2UsbSxSZSxWZSkpe2JlPTM0O2JyZWFrIG59Zm9yKHc9''@;'; put 'put ''MCxNPXBlLEQ9MTs7KXtpZihmPTB8YVtSZT4+Ml0sISh3PXc/MHx1dihsLHcsZik6Zikpe2Y9MTIsYmU9MzQ7YnJlYWsgbn1pZigoMHxEKT49KDB8KGs9MHxhW1I+PjJdKSkpe2Y9TSxiZT0zNzticmVhayBpfWlmKE09MHxhW09lPj4yXSwwfChmPTB8SUwobCxjLDB8YVtHPj4yXSwoMHwoRD1E''@;'; put 'put ''KzF8MCkpPCgwfGspPzE6MixPZSxtLFJlLFZlKSkpe2JlPTM0O2JyZWFrIG59fX19d2hpbGUoMCk7aWYoMzc9PSgwfGJlKSl7aWYoYmU9MCwtMT09KDB8KE09MHxhWyhSPUcrOHwwKT4+Ml0pKSl7aWYoTT0wfGFbT2U+PjJdLDB8KGY9MHxJTChsLGMsMHxhW0c+PjJdLDAsT2UsMCxMZSxWZSkp''@;'; put 'put ''KWJyZWFrIG47aWYoaz0wfFpqKGwsMHxhW0xlPj4yXSwwLC0xLDApLGFbTGU+PjJdPWssIWspe2Y9MTI7YnJlYWsgbn1mPU19ZWxzZSBpZigoMHxrKTwoMHxNKSlmb3IoTT1rLGs9MDs7KXtpZihEPTB8YVtPZT4+Ml0sMHwoZj0wfElMKGwsYywwfGFbRz4+Ml0sMCxPZSwwLFJlLFZlKSkpe2Jl''@;'; put 'put ''PTQ5O2JyZWFrIG59aWYoaz8oZj0wfHV2KGwsMHxhW1JlPj4yXSxrKSxhW0xlPj4yXT1mKTphW0xlPj4yXT1mPTB8YVtSZT4+Ml0sIWYpe2Y9MTIsYmU9NDk7YnJlYWsgbn1pZighKGs9MHxuMShsLC0xLC0xLC0xKSkpe2Y9MTIsYmU9NDk7YnJlYWsgbn1pZihrPTB8YmcobCxrLGYpLGFbTGU+''@;'; put 'put ''PjJdPWssIWspe2Y9MTIsYmU9NDk7YnJlYWsgbn1pZigoMHwoTT1NKzF8MCkpPj0oMHxhW1I+PjJdKSl7Zj1EO2JyZWFrfX1lbHNlIGs9MDtpZihhW09lPj4yXT1mLHc/ayYmKHc9MHx1dihsLHcsayksYmU9NTQpOih3PWssYmU9NTQpLDU0PT0oMHxiZSkmJihiZT0wLCF3KSl7Zj0xMjticmVh''@;'; put 'put ''ayBufWFbcT4+Ml09YVt3KzQ+PjJdLGFbZ2U+PjJdPWFbdz4+Ml19dz1mLXBlK0F8MCwoYj1iKy0xfDApP0E9dzooYVtPZT4+Ml09dyxBPXcsYj0wLGY9dyk7YnJlYWs7ZGVmYXVsdDpmPWt9fXdoaWxlKDApO2lmKCEoKDB8ZWYoYykpPigwfEhlKSkpe2Y9MDticmVhayB0fWs9Zn1icmVhayBl''@;'; put 'put ''fWY9MCxBPTB9d2hpbGUoMCk7YVtwPj4yXT0oMHwoVmU9MHxhW1ZlPj4yXSkpPigwfChIZT0oMHxhW3A+PjJdKStBfDApKT9WZTpIZX19d2hpbGUoMCk7cmV0dXJuIGxlPXFlLDB8Zn1mdW5jdGlvbiBuMShsLGMsZixwKXt2YXIgbTtyZXR1cm4gY3w9MCxmfD0wLHB8PTAsKGw9MHxyUyhsfD0w''@;'; put 'put ''LDAsbT0wfFgxKGwsMCwwLDEsMjApKSk/KGFbbT4+Ml09YyxhW20rND4+Ml09ZixhW20rOD4+Ml09cCk6bD0wLDB8bH1mdW5jdGlvbiB1dihsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTA7cmV0dXJuKGN8PTApJiYoKGw9MHxyUyhsLDEscD0wfFgxKGwsMCwwLDEsOCkpKT8oYVtwPj4yXT1jLGFb''@;'; put 'put ''cCs0Pj4yXT1mLGFbbCsxNj4+Ml09KDB8YVtmKzE2Pj4yXSkrKDB8YVtjKzE2Pj4yXSksZj1sKTpmPTApLDB8Zn1mdW5jdGlvbiBLY2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgayxNLEQsRyxwPTAsbT0wLEE9MCx3PTAsYj0wLFI9MDtHPWxlLGxlPWxlKzE2fDAsaz1HKzR8MCxNPUcsRD0wfGVm''@;'; put 'put ''KGN8PTApLGY9MHxFbChjLGYpO2U6ZG97aWYoIWYmJihmPTB8UWEoYywwKSwhZikpaWYoKDB8ZWYoYykpPigwfEQpKXt0OmZvcig7Oyl7dz0wfEJmKGMpLGI9MHxmaChjKTtuOmRve3N3aXRjaCgwfHcpe2Nhc2UgMDpzd2l0Y2goMHxhW2I+PjJdKXtjYXNlIDA6aWYoLTQ9PSgwfChtPTB8YVso''@;'; put 'put ''QT0wfGFbYis0Pj4yXSk+PjJdKSkpe2lmKGFbYis4Pj4yXT0wLHc9MHxFTChsLDB8YVsoZj1BKzh8MCk+PjJdLDAsMTExNDExMSwwLDAsLTEpLGFbYisyND4+Ml09dywhdyl7Zj0xMjticmVhayBlfWlmKHc9MHxFTChsLDB8YVtmPj4yXSwwLDExMTQxMTEsMCwwLDB8YVtBKzQ+PjJdKSxhW2Ir''@;'; put 'put ''Mjg+PjJdPXcsdylicmVhayBuO2Y9MTI7YnJlYWsgZX1pZihmPWIrOHwwLCgwfG0pPDApe2lmKGFbZj4+Ml09MSx3PTB8RiQobCksYVtiKzI0Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9aWYodz0wfEYkKGwpLGFbYisyOD4+Ml09dyx3KWJyZWFrIG47Zj0xMjticmVhayBlfWlmKGFbZj4+Ml09''@;'; put 'put ''MCx3PTB8RUwobCwwfGFbKGY9QSs4fDApPj4yXSxtLDB8YVsocD1BKzR8MCk+PjJdLDAsMCwtMSksYVtiKzI0Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9aWYodz0wfEVMKGwsMHxhW2Y+PjJdLDB8YVtBPj4yXSwwfGFbcD4+Ml0sMHxhW0ErMTI+PjJdLDB8YVtBKzE2Pj4yXSwtMSksYVtiKzI4''@;'; put 'put ''Pj4yXT13LHcpYnJlYWsgbjtmPTEyO2JyZWFrIGU7Y2FzZSAzOmlmKDB8KGY9MHxFbChjLGIpKXx8MHwoZj0wfFFhKGMsMSkpfHwwfChmPTB8RWwoYywwfGFbNCsoMHxhWyhwPWIrNHwwKT4+Ml0pPj4yXSkpfHwwfChmPTB8UWEoYywwKSl8fDB8KGY9MHxFbChjLDB8YVthW3A+PjJdPj4yXSkp''@;'; put 'put ''fHwoZj0wfFFhKGMsMCkpKWJyZWFrIGU7YnJlYWsgbjtjYXNlIDE6aWYoMHwoZj0wfEVsKGMsYikpfHwwfChmPTB8UWEoYywyKSl8fDB8KGY9MHxFbChjLDB8YVs0KygwfGFbKHA9Yis0fDApPj4yXSk+PjJdKSl8fDB8KGY9MHxRYShjLDApKXx8MHwoZj0wfEVsKGMsMHxhW2FbcD4+Ml0+PjJd''@;'; put 'put ''KSl8fChmPTB8UWEoYywwKSkpYnJlYWsgZTticmVhayBuO2Nhc2UgMjppZigwfChmPTB8RWwoYyxiKSl8fDB8KGY9MHxRYShjLDMpKXx8MHwoZj0wfEVsKGMsMHxhW2FbYis0Pj4yXT4+Ml0pKXx8KGY9MHxRYShjLDApKSlicmVhayBlO2JyZWFrIG47ZGVmYXVsdDpicmVhayBufWNhc2UgMTpp''@;'; put 'put ''ZihBPTB8YVsobT00KyhmPTB8YVtiKzQ+PjJdKXwwKT4+Ml0sYVtiKzg+PjJdPTEmKHc9MHxhWzgrKHA9MHxhW2Y+PjJdKT4+Ml0/MTowIT0oMHxhW0ErOD4+Ml0pKSx3PTB8eEwobCwwfGFbcCsyND4+Ml0sMHxhW0ErMjQ+PjJdLDAsMCksYVtiKzI0Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9''@;'; put 'put ''aWYodz0wfHhMKGwsMHxhWzI4KygwfGFbZj4+Ml0pPj4yXSwwfGFbMjgrKDB8YVttPj4yXSk+PjJdLDAsMCksYVtiKzI4Pj4yXT13LCF3KXtmPTEyO2JyZWFrIGV9YnJlYWs7Y2FzZSAzOmY9MHxhWyh3PTB8YVtiKzQ+PjJdKT4+Ml0sYVtiKzg+PjJdPXA9MHxhW3crND4+Ml0/MCE9KDB8YVtm''@;'; put 'put ''Kzg+PjJdKSYxOjEsYVtiKzI0Pj4yXT1hW2YrMjQ+PjJdLGFbYisyOD4+Ml09YVtmKzI4Pj4yXTticmVhaztjYXNlIDI6aWYoYVtiKzg+PjJdPTEmKG09MHxhWyhwPTgrKGY9MHxhWyhBPTB8YVtiKzQ+PjJdKT4+Ml0pfDApPj4yXT8wIT0oMHxhWzgrKDB8YVtBKzQ+PjJdKT4+Ml0pOjApLDB8''@;'; put 'put ''YVtwPj4yXSl7aWYoMHwoZj0wfFRMKGMsZiwwLDAsaykpKWJyZWFrIHQ7aWYoIShwPTB8RjAoNCsoYVtrPj4yXTw8Mil8MCkpKXtmPTEyO2JyZWFrIHR9aWYoYVtwPj4yXT0tMSxhW00+PjJdPTAsMHwoZj0wfFRMKGMsMHxhW0E+PjJdLHAsTSwwKSkpe1I9NDU7YnJlYWsgdH1pZihhWyh3PWIr''@;'; put 'put ''MjR8MCk+PjJdPTB8eEwobCwwfGFbMjQrKDB8YVsoZj1BKzR8MCk+PjJdKT4+Ml0sMHxhWzI0KygwfGFbQT4+Ml0pPj4yXSxwLDB8YVtNPj4yXSksRnQocCksISgwfGFbdz4+Ml0pKXtmPTEyO2JyZWFrIHR9bT1mfWVsc2UgYVtiKzI0Pj4yXT1hW2YrMjQ+PjJdLG09QSs0fDA7aWYoMHxhWzgr''@;'; put 'put ''KGY9MHxhW20+PjJdKT4+Ml0pe2lmKDB8KGY9MHxUTChjLGYsMCwwLGspKSlicmVhayB0O2lmKCEocD0wfEYwKDQrKGFbaz4+Ml08PDIpfDApKSl7Zj0xMjticmVhayB0fWlmKGFbcD4+Ml09LTEsYVtNPj4yXT0wLDB8KGY9MHxUTChjLDB8YVttPj4yXSxwLE0sMCkpKXtSPTUyO2JyZWFrIHR9''@;'; put 'put ''aWYoYVsoYj1iKzI4fDApPj4yXT0wfHhMKGwsMHxhWzI4KygwfGFbQT4+Ml0pPj4yXSwwfGFbMjgrKDB8YVttPj4yXSk+PjJdLHAsMHxhW00+PjJdKSxGdChwKSwhKDB8YVtiPj4yXSkpe2Y9MTI7YnJlYWsgdH19ZWxzZSBhW2IrMjg+PjJdPWFbZisyOD4+Ml19fXdoaWxlKDApO2lmKCgwfGVm''@;'; put 'put ''KGMpKTw9KDB8RCkpe2Y9MDticmVhayBlfX0oNDU9PSgwfFIpfHw1Mj09KDB8UikpJiZGdChwKX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gbGU9RywwfGZ9ZnVuY3Rpb24gTUwobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTA7ZTpmb3IoOzspe3N3aXRjaCgw''@;'; put 'put ''fGFbbD4+Ml0pe2Nhc2UgMjppZigtMT09KDB8YVs4KyhsPTB8YVtsKzQ+PjJdKT4+Ml0pJiYwIT0oMHwodz0wfFAkKDB8YVsyOCsodz0wfGFbbD4+Ml0pPj4yXSwwfGFbdysyND4+Ml0sYyxmLHApKSkpe2w9dzticmVhayBlfWJyZWFrO2Nhc2UgMzppZigwfChsPTB8TUwoMHxhWyhtPTB8YVts''@;'; put 'put ''KzQ+PjJdKT4+Ml0sYyxmLHApKSlicmVhayBlO2w9bSs0fDA7YnJlYWs7Y2FzZSAxOmlmKDB8KGw9MHxQJCgwfGFbMjgrKDB8YVsobT0wfGFbbCs0Pj4yXSk+PjJdKT4+Ml0sMHxhWzI0KygwfGFbKEE9bSs0fDApPj4yXSk+PjJdLGMsZixwKSkpYnJlYWsgZTtpZihsPTB8TUwoMHxhW20+PjJd''@;'; put 'put ''LGMsZixwKSlicmVhayBlO2w9QTticmVhaztkZWZhdWx0Omw9MDticmVhayBlfWw9MHxhW2w+PjJdfXJldHVybiAwfGx9ZnVuY3Rpb24gJGNlKGwpe3ZhciB3LGM9MCxmPTAscD0wLG09MCxBPTA7aWYoMHwodz0wfGFbNCsobHw9MCk+PjJdKSl7aWYobD0wfGFbdz4+Ml0sMHxhWyhwPXcrNHww''@;'; put 'put ''KT4+Ml0pe2Y9MDtkb3swfGFbbCsoZjw8NSkrOD4+Ml0mJigoYz0wfGFbbCsoZjw8NSkrMTY+PjJdKSYmKEZ0KGMpLGw9MHxhW3c+PjJdKSwoYz0wfGFbbCsoZjw8NSkrMjg+PjJdKSYmKEZ0KGMpLGw9MHxhW3c+PjJdKSksZj1mKzF8MH13aGlsZShmPj4+MDwoMHxhW3A+PjJdKT4+PjApfWlm''@;'; put 'put ''KDB8bCYmRnQobCksMHwobD0wfGFbKGY9dys4fDApPj4yXSkpe2lmKDB8YVtsKzg+PjJdKXtmb3IoOzB8KGM9MHxhW2wrMTY+PjJdKSYmRnQoYyksMHxhW2wrNDA+PjJdOylsPWwrMzJ8MDtsPTB8YVtmPj4yXX1GdChsKX1pZigwfChsPTB8YVsobT13KzE2fDApPj4yXSkpe2lmKGM9MHxhWyhB''@;'; put 'put ''PXcrMjh8MCk+PjJdKXtwPTA7ZG97KGY9MHxhW2wrKDEyKnB8MCkrOD4+Ml0pJiYoRnQoZiksYz0wfGFbQT4+Ml0sbD0wfGFbbT4+Ml0pLHA9cCsxfDB9d2hpbGUocD4+PjA8Yz4+PjApfUZ0KGwpfTB8KGw9MHxhW3crMzI+PjJdKSYmRnQobCksMHwobD0wfGFbdysyMD4+Ml0pJiZGdChsKSww''@;'; put 'put ''fChsPTB8YVt3KzM2Pj4yXSkmJkZ0KGwpLEZ0KHcpfX1mdW5jdGlvbiBQJChsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTA7''@;'; put 'put ''dz0oMHwoQT0wfGFbKGx8PTApPj4yXSkpPi0xO2U6ZG97aWYoZilpZih3KWZvcig7Oyl7dz0wfGFbYz4+Ml07dDpkb3tpZigoMHx3KT4tMSlmb3IocGU9bCs0fDAsZ2U9bCs4fDAsYmU9bCsxNnwwLE9lPWwrMjB8MCxMZT1sKzI0fDAsUmU9bCsyOHwwLEhlPWwrMTJ8MCxwPS0xLEE9Yzs7KXtm''@;'; put 'put ''b3IocT13OygwfHEpPT0oMHxwKTspe2lmKCEoKDB8KHc9MHxhWyhBPUErMzJ8MCk+PjJdKSk+LTEpKWJyZWFrIHQ7cT13fWZvcihEPWYrKGFbbSsoYVtsPj4yXTw8Mik+PjJdPDw1KXwwOzB8YVsodz1EKzh8MCk+PjJdOylEPUQrMzJ8MDtpZihhW0QrNDA+PjJdPTAsYVtEPj4yXT1hW3BlPj4y''@;'; put 'put ''XSxhW0QrND4+Ml09YVtnZT4+Ml0sYVt3Pj4yXT1mKyhhW20rKHE8PDIpPj4yXTw8NSksYVtEKzEyPj4yXT1xLGFbKGI9RCsyMHwwKT4+Ml09cD1hW0ErMTY+PjJdfGFbYmU+PjJdfCgwfCh3PTB8YVtPZT4+Ml0pPzQ6MCl8KDB8YVtMZT4+Ml0/ODowKSwoMHwoaz0wfGFbUmU+PjJdKSk+LTEm''@;'; put 'put ''JihhW2I+PjJdPTI1NnxwLHc9ayksYVtEKzI0Pj4yXT13LHA9MHxhW0xlPj4yXSl7dz0wO2Rve0c9dyx3PXcrMXwwfXdoaWxlKDAhPSgwfGFbcCsoRzw8Mik+PjJdKSk7aWYodz0wfEYwKHc8PDIpLGFbRCsyOD4+Ml09dywhdyl7QT0xMjticmVhayBlfWlmKHA9MHxhWyhNPTB8YVtMZT4+Ml0p''@;'; put 'put ''Pj4yXSl7az0wLGI9dztkb3thW2I+PjJdPXAscD0wfGFbTSsoKGs9aysxfDApPDwyKT4+Ml0sYj13KyhrPDwyKXwwfXdoaWxlKDAhPSgwfHApKTt3PWJ9YVt3Pj4yXT0wfWVsc2UgYVtEKzI4Pj4yXT0wO2lmKHA9MHxhW0hlPj4yXSlmb3Iodz0wOygwfGFbcCsodzw8Mik+PjJdKT4tMTspdz13''@;'; put 'put ''KzF8MDtlbHNlIHc9MDtpZihiPTB8YVsoTT1BKzEyfDApPj4yXSlmb3IocD0wOygwfGFbYisocDw8Mik+PjJdKT4tMTspcD1wKzF8MDtlbHNlIHA9MDtpZigwfChiPTB8YVsoaz1EKzE2fDApPj4yXSkmJkZ0KGIpLGFbaz4+Ml09MCwoMHwodz1wK3d8MCkpPjApe2lmKEc9MHxGMCg0Kyh3PDwy''@;'; put 'put ''KXwwKSxhW2s+PjJdPUcsIUcpe0E9MTI7YnJlYWsgZX1pZigwIT0oMHwocD0wfGFbSGU+PjJdKSkmJigwfChWZT0wfGFbcD4+Ml0pKT4tMSl7dz0wLGI9VmU7ZG97YVtHKyh3PDwyKT4+Ml09YixiPTB8YVtwKygodz13KzF8MCk8PDIpPj4yXX13aGlsZSgoMHxiKT4tMSk7Uj13fWVsc2UgUj0w''@;'; put 'put ''O2lmKDAhPSgwfChrPTB8YVtNPj4yXSkpJiYoMHwocWU9MHxhW2s+PjJdKSk+LTEpe009KDB8Uik+MCx3PVIsYj0wLEQ9cWU7ZG97bjpkb3tpZihNKWZvcihwPTA7Oyl7aWYoKDB8YVtHKyhwPDwyKT4+Ml0pPT0oMHxEKSlicmVhayBuO2lmKCgwfChwPXArMXwwKSk+PSgwfFIpKXtydD0zOTti''@;'; put 'put ''cmVha319ZWxzZSBydD0zOX13aGlsZSgwKTszOT09KDB8cnQpJiYocnQ9MCxhW0crKHc8PDIpPj4yXT1ELHc9dysxfDApLEQ9MHxhW2srKChiPWIrMXwwKTw8Mik+PjJdfXdoaWxlKCgwfEQpPi0xKX1lbHNlIHc9UjthW0crKHc8PDIpPj4yXT0tMX1pZigoMHwodz0wfGFbKEE9QSszMnwwKT4+''@;'; put 'put ''Ml0pKTw9LTEpYnJlYWs7cD1xfX13aGlsZSgwKTtpZigoMHxhWyhsPWwrMzJ8MCk+PjJdKTw9LTEpe0E9MDticmVha319ZWxzZSBBPTA7ZWxzZSBpZih3KXt3PWMrMzJ8MDtkb3tpZigoMHxhW2M+PjJdKT4tMSYmKGFbKHJ0PXArKEE8PDIpfDApPj4yXT0xKygwfGFbcnQ+PjJdKSwoMHxhW3c+''@;'; put 'put ''PjJdKT4tMSkpe0E9dztkb3thWyhydD1wKyhhW2w+PjJdPDwyKXwwKT4+Ml09MSsoMHxhW3J0Pj4yXSksQT1BKzMyfDB9d2hpbGUoKDB8YVtBPj4yXSk+LTEpfUE9MHxhWyhsPWwrMzJ8MCk+PjJdfXdoaWxlKCgwfEEpPi0xKTtBPTB9ZWxzZSBBPTB9d2hpbGUoMCk7cmV0dXJuIDB8QX1mdW5j''@;'; put 'put ''dGlvbiBlZihsKXtyZXR1cm4gMHxhWzEyKyhsfD0wKT4+Ml19ZnVuY3Rpb24gRWwobCxjKXt2YXIgZixwLG07cmV0dXJuIGx8PTAsZj1sZSxsZT1sZSsxNnwwLHA9Zis0fDAsYVsobT1mKT4+Ml09Y3w9MCxhW3A+PjJdPWFbbT4+Ml0sYz0wfGpqKGwscCksbGU9ZiwwfGN9ZnVuY3Rpb24gUWEo''@;'; put 'put ''bCxjKXt2YXIgZixwLG07cmV0dXJuIGx8PTAsZj1sZSxsZT1sZSsxNnwwLHA9Zis0fDAsYVsobT1mKT4+Ml09Y3w9MCxhW3A+PjJdPWFbbT4+Ml0sYz0wfGpqKGwscCksbGU9ZiwwfGN9ZnVuY3Rpb24gQmYobCl7dmFyIGMsZjtyZXR1cm4gYz0wfGFbMTYrKGx8PTApPj4yXSxhWyhmPWwrMTJ8''@;'; put 'put ''MCk+PjJdPWw9KDB8YVtmPj4yXSktMXwwLDB8YVtjKyhsPDwyKT4+Ml19ZnVuY3Rpb24gZmgobCl7dmFyIGMsZjtyZXR1cm4gYz0wfGFbMTYrKGx8PTApPj4yXSxhWyhmPWwrMTJ8MCk+PjJdPWw9KDB8YVtmPj4yXSktMXwwLDB8YVtjKyhsPDwyKT4+Ml19ZnVuY3Rpb24gRUwobCxjLGYscCxt''@;'; put 'put ''LEEsdyl7cmV0dXJuIGN8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCx3fD0wLChsPTB8WDEobHw9MCwwLDAsMSw2NCkpPyhhW2w+PjJdPWMsYVtsKzQ+PjJdPWYsYVtsKzg+PjJdPXAsYVtsKzIwPj4yXT1tLGFbbCsyND4+Ml09QSxhW2wrMjg+PjJdPXcsYVtsKzMyPj4yXT0tMSxhW2wrMzY+PjJd''@;'; put 'put ''PS0xLGFbbCs0MD4+Ml09LTEpOmw9MCwwfGx9ZnVuY3Rpb24gRiQobCl7cmV0dXJuKGw9MHxYMShsfD0wLDAsMCwxLDMyKSk/KGFbbD4+Ml09LTEsYVtsKzQ+PjJdPS0xLGFbbCs4Pj4yXT0tMSk6bD0wLDB8bH1mdW5jdGlvbiB4TChsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLG18PTA7dmFy''@;'; put 'put ''IHEsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MDtpZihxPTA9PSgwfChwfD0wKSkpRz0wO2Vsc2UgZm9yKEE9MDs7KXtpZighKCgwfGFbcCsoQTw8Mik+PjJdKT4tMSkpe0c9QTticmVha31BPUErMXwwfWZvcih3PTA7Oyl7aWYoISgoMHxhW2MrKHc8PDUpPj4yXSk+LTEpKXtBPTA7''@;'; put 'put ''YnJlYWt9dz13KzF8MH1mb3IoOygwfGFbZisoQTw8NSk+PjJdKT4tMTspQT1BKzF8MDtBPTB8WDEobCwwLDAsMSwzMisoQSt3PDw1KXwwKTtlOmRve2lmKEEpe2lmKCgwfCh3PTB8YVtjPj4yXSkpPi0xKWZvcihSPSgwfEcpPjAsYj0wOzspe2lmKGFbQSsoYjw8NSk+PjJdPXcsYVtBKyhiPDw1''@;'; put 'put ''KSs0Pj4yXT1hW2MrKGI8PDUpKzQ+PjJdLGFbQSsoYjw8NSkrOD4+Ml09YVtjKyhiPDw1KSs4Pj4yXSxhW0ErKGI8PDUpKzE2Pj4yXT1hW2MrKGI8PDUpKzE2Pj4yXXxtLGFbQSsoYjw8NSkrMjA+PjJdPWFbYysoYjw8NSkrMjA+PjJdLGFbQSsoYjw8NSkrMjQ+PjJdPWFbYysoYjw8NSkrMjQ+''@;'; put 'put ''PjJdLGFbQSsoYjw8NSkrMjg+PjJdPWFbYysoYjw8NSkrMjg+PjJdLHEmKHc9MD09KDB8KGs9MHxhWyhEPWMrKGI8PDUpKzEyfDApPj4yXSkpKSl3PTA7ZWxzZXtpZih3KU09MDtlbHNlIGZvcih3PTA7Oyl7aWYoISgoMHxhW2srKHc8PDIpPj4yXSk+LTEpKXtNPXc7YnJlYWt9dz13KzF8MH1p''@;'; put 'put ''ZighKHc9MHxYMShsLDAsMCwwLDQrKE0rRzw8Mil8MCkpKXtBPTA7YnJlYWsgZX1pZigoMHxNKT4wKXtEPTB8YVtEPj4yXSxrPTA7ZG97YVt3KyhrPDwyKT4+Ml09YVtEKyhrPDwyKT4+Ml0saz1rKzF8MH13aGlsZSgoMHxrKSE9KDB8TSkpfWVsc2UgTT0wO2lmKFIpe2s9MDtkb3thW3crKGsr''@;'; put 'put ''TTw8Mik+PjJdPWFbcCsoazw8Mik+PjJdLGs9aysxfDB9d2hpbGUoKDB8aykhPSgwfEcpKTtrPUd9ZWxzZSBrPTA7YVt3KyhrK008PDIpPj4yXT0tMX1pZihhW0ErKGI8PDUpKzEyPj4yXT13LCgwfCh3PTB8YVtjKygoYj1iKzF8MCk8PDUpPj4yXSkpPD0tMSl7Rz1iO2JyZWFrfX1lbHNlIEc9''@;'; put 'put ''MDtpZih3PUErKEc8PDUpfDAsKDB8KGI9MHxhW2Y+PjJdKSk+LTEpe1I9MCxEPUc7ZG97aWYoYVt3Pj4yXT1iLGFbQSsoRDw8NSkrND4+Ml09YVtmKyhSPDw1KSs0Pj4yXSxhW0ErKEQ8PDUpKzg+PjJdPWFbZisoUjw8NSkrOD4+Ml0sYVtBKyhEPDw1KSsxNj4+Ml09YVtmKyhSPDw1KSsxNj4+''@;'; put 'put ''Ml0sYVtBKyhEPDw1KSsyMD4+Ml09YVtmKyhSPDw1KSsyMD4+Ml0sYVtBKyhEPDw1KSsyND4+Ml09YVtmKyhSPDw1KSsyND4+Ml0sYVtBKyhEPDw1KSsyOD4+Ml09YVtmKyhSPDw1KSsyOD4+Ml0sdz0wfGFbKGs9ZisoUjw8NSkrMTJ8MCk+PjJdKXtmb3IoYj0wOygwfGFbdysoYjw8Mik+PjJd''@;'; put 'put ''KT4tMTspYj1iKzF8MDtpZighKHc9MHxYMShsLDAsMCwwLDQrKGI8PDIpfDApKSl7QT0wO2JyZWFrIGV9aWYoKDB8Yik+MCl7TT0wfGFbaz4+Ml0saz0wO2Rve2Fbdysoazw8Mik+PjJdPWFbTSsoazw8Mik+PjJdLGs9aysxfDB9d2hpbGUoKDB8aykhPSgwfGIpKX1lbHNlIGI9MDthW3crKGI8''@;'; put 'put ''PDIpPj4yXT0tMX1lbHNlIHc9MDthW0ErKEQ8PDUpKzEyPj4yXT13LGI9MHxhW2YrKChSPVIrMXwwKTw8NSk+PjJdLHc9QSsoKEQ9UitHfDApPDw1KXwwfXdoaWxlKCgwfGIpPi0xKX1hW3c+PjJdPS0xfWVsc2UgQT0wfXdoaWxlKDApO3JldHVybiAwfEF9ZnVuY3Rpb24gVEwobCxjLGYscCxt''@;'; put 'put ''KXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBxLHBlLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTA7cT0wfGVmKGx8PTApLChwZT0wIT0oMHxtKSkmJihhW20+PjJdPTApLGM9MHxFbChsLGMpO2U6ZG97aWYoYylBPWM7ZWxzZSBpZihSPTA9PSgwfGYpLEQ9MD09KDB8cCksKDB8ZWYo''@;'; put 'put ''bCkpPigwfHEpKWZvcig7Oyl7Yz0wfGZoKGwpO3Q6ZG97c3dpdGNoKDB8YVtjPj4yXSl7Y2FzZSAwOnN3aXRjaCgwfGFbKGM9MHxhW2MrND4+Ml0pPj4yXSl7Y2FzZS0zOmJyZWFrO2Nhc2UtMjppZihEKWJyZWFrIHQ7YVtwPj4yXT1hW3A+PjJdfGFbYys0Pj4yXTticmVhayB0O2RlZmF1bHQ6''@;'; put 'put ''YnJlYWsgdH1pZigoMHwodz0wfGFbYys0Pj4yXSkpPi0xKXtuOmRve2lmKCFSKXtmb3IoYz0wOyEoKDB8KGs9MHxhWyhiPWYrKGM8PDIpfDApPj4yXSkpPD0tMSk7KXtpZigoMHxrKT09KDB8dykpYnJlYWsgbjtjPWMrMXwwfWFbYj4+Ml09dyxhW2YrKGMrMTw8Mik+PjJdPS0xfX13aGlsZSgw''@;'; put 'put ''KTtwZSYmKGFbbT4+Ml09MSsoMHxhW20+PjJdKSl9YnJlYWs7Y2FzZSAzOmlmKDB8YVs4Kyh3PTB8YVsoYz0wfGFbYys0Pj4yXSk+PjJdKT4+Ml0pe009dyxHPTY7YnJlYWsgdH0wfGFbOCsoYz0wfGFbYys0Pj4yXSk+PjJdJiYoTT1jLEc9Nik7YnJlYWs7Y2FzZSAxOmlmKDB8KHc9MHxFbChs''@;'; put 'put ''LDB8YVsoYz0wfGFbYys0Pj4yXSk+PjJdKSkpe0E9dzticmVhayBlfU09MHxhW2MrND4+Ml0sRz02O2JyZWFrO2Nhc2UgMjowfGFbOCsoYz0wfGFbYVtjKzQ+PjJdPj4yXSk+PjJdJiYoTT1jLEc9Nil9fXdoaWxlKDApO2lmKDY9PSgwfEcpJiYoRz0wLDB8KEE9MHxFbChsLE0pKSkpYnJlYWsg''@;'; put 'put ''ZTtpZigoMHxlZihsKSk8PSgwfHEpKXtBPTA7YnJlYWsgZX19ZWxzZSBBPTB9d2hpbGUoMCk7cmV0dXJuIDB8QX1mdW5jdGlvbiBqaihsLGMpe2N8PTA7dmFyIHAsQSxrLE0sZj0wLG09MCx3PTAsYj0wO3JldHVybiBNPWxlLGxlPWxlKzE2fDAsQT1NLCgwfChwPTB8YVsoZj0xMisobHw9MCl8''@;'; put 'put ''MCk+PjJdKSk+PSgwfChrPTB8YVtsPj4yXSkpPygwfGspPCgwfChmPTB8YVtsKzQ+PjJdKSkmJjAhPSgwfChiPTB8VWEoMHxhWyh3PWwrMTZ8MCk+PjJdLChtPSgwfChtPSgwfGFbbCs4Pj4yXSkra3wwKSk+KDB8Zik/ZjptKTw8MikpKT8oYVtsPj4yXT1tLGFbdz4+Ml09YixhW0E+PjJdPWFb''@;'; put 'put ''Yz4+Ml0samoobCxBKSxmPTApOmY9MTI6KGFbKDB8YVtsKzE2Pj4yXSkrKHA8PDIpPj4yXT1hW2M+PjJdLGFbZj4+Ml09MSsoMHxhW2Y+PjJdKSxmPTApLGxlPU0sMHxmfWZ1bmN0aW9uIHJTKGwsYyxmKXtyZXR1cm4gY3w9MCwwIT0oMHwoZnw9MCkpJjAhPSgwfChsPTB8WDEobHw9MCwwLDAs''@;'; put 'put ''MSwzMikpKT8oYVtsKzQ+PjJdPWYsYVtsPj4yXT1jLGFbbCs4Pj4yXT0tMSxhW2wrMTI+PjJdPS0xKTpsPTAsMHxsfWZ1bmN0aW9uIElMKGwsYyxmLHAsbSxBLHcsYil7bHw9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MDt2YXIgZ2Usaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9''@;'; put 'put ''MDtnZT0wfGVmKGN8PTApLEVsKGMsZiksZj0wfFFhKGMsMCk7ZTpkb3tpZihmKXA9MDtlbHNlIGZvcihwZT0wPT0oMSZwfDApLHE9MCE9KDImcHwwKSxHPTAsTT0xLGY9dzs7KXtpZighKCgwfGVmKGMpKT4oMHxnZSkpKXtwPUcsZj0wO2JyZWFrIGV9Uj1mO3Q6Zm9yKDs7KXtuOmZvcig7Oyl7''@;'; put 'put ''c3dpdGNoKDB8QmYoYykpe2Nhc2UgMTp3PTc7YnJlYWsgbjtjYXNlIDA6c3dpdGNoKGY9MHxmaChjKSwwfGFbZj4+Ml0pe2Nhc2UgMDp3PTk7YnJlYWsgdDtjYXNlIDM6dz0xOTticmVhayB0O2Nhc2UgMTp3PTI2O2JyZWFrIHQ7Y2FzZSAyOnc9MzM7YnJlYWsgbn19aWYoKDB8ZWYoYykpPD0o''@;'; put 'put ''MHxnZSkpe3A9RyxmPTA7YnJlYWsgZX19aWYoNz09KDB8dykpZj0wfGZoKGMpO2Vsc2UgaWYoMzM9PSgwfHcpKXtpZigwfChmPTB8RWwoYywwfGFbKHA9MHxhW2YrND4+Ml0pPj4yXSkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8UWEoYywwKSkpe3A9RzticmVhayBlfWlmKGY9MHxaaihsLDB8''@;'; put 'put ''YVtwPj4yXSwwfGFbcCs0Pj4yXSwwfGFbcCs4Pj4yXSwxJmZlW3ArMTI+PjBdKSxhW1I+PjJdPWYsIWYpe3A9RyxmPTEyO2JyZWFrIGV9Zj0wfGFbZis0Pj4yXX1pZighKCgwfGVmKGMpKT4oMHxnZSkpKXtwPUcsZj0wO2JyZWFrIGV9Uj1mfWlmKDk9PSgwfHcpKXc9MHxhWzgrKEQ9MHxhW2Yr''@;'; put 'put ''ND4+Ml0pPj4yXSxmPTB8YVtEKzQ+PjJdLCgwfChwPTB8YVtEPj4yXSkpPi0xfC00PT0oMHxwKT8odz0oMHxhW20+PjJdKSt3fDAsaz1HKzF8MCk6cGV8LTMhPSgwfHApPy0zPT0oMHxwKT9xJjAhPSgwfE0pPyhhW0ErKGY8PDIpPj4yXT0xLHA9LTMsaz1HLE09MCk6KHA9LTMsaz1HKTprPUc6''@;'; put 'put ''KGY9LTEscD0tMSx3PS0xLGs9RyksZj0wfG4xKGwscCxmLHcpLGFbUj4+Ml09ZixmPyhhWzEyKyhmPTB8YVtmKzQ+PjJdKT4+Ml09YVtEKzEyPj4yXSxhW2YrMTY+PjJdPWFbRCsxNj4+Ml0sZj0wKTpmPTEyLCgwfHcpPigwfGFbYj4+Ml0pJiYoYVtiPj4yXT13KSxwPVI7ZWxzZSBpZigxOT09''@;'; put 'put ''KDB8dykpe2lmKGY9MHxiZyhsLDB8YVsodz0wfGFbZis0Pj4yXSk+PjJdLDB8YVsocD13KzR8MCk+PjJdKSxhW1I+PjJdPWYsIWYpe3A9RyxmPTEyO2JyZWFrIGV9aWYoRD0wfGFbZis0Pj4yXSwwfChmPTB8RWwoYywwfGFbcD4+Ml0pKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfFFhKGMsMCkp''@;'; put 'put ''KXtwPUc7YnJlYWsgZX1pZigwfChmPTB8RWwoYyxEKzR8MCkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8UWEoYywxKSkpe3A9RzticmVhayBlfWlmKDB8KGY9MHxFbChjLDB8YVt3Pj4yXSkpKXtwPUc7YnJlYWsgZX1rPUcscD1ELGY9MHxRYShjLDApfWVsc2UgaWYoMjY9PSgwfHcpKXtpZihm''@;'; put 'put ''PTB8dXYobCwwfGFbKEQ9MHxhW2YrND4+Ml0pPj4yXSwwfGFbKHc9RCs0fDApPj4yXSksYVtSPj4yXT1mLCFmKXtwPUcsZj0xMjticmVhayBlfWlmKGFbKHA9MHxhW2YrND4+Ml0pPj4yXT0wLGFbKGs9cCs0fDApPj4yXT0wLDB8KGY9MHxFbChjLDB8YVt3Pj4yXSkpKXtwPUc7YnJlYWsgZX1p''@;'; put 'put ''ZigwfChmPTB8UWEoYywwKSkpe3A9RzticmVhayBlfWlmKDB8KGY9MHxFbChjLGspKSl7cD1HO2JyZWFrIGV9aWYoMHwoZj0wfFFhKGMsMSkpKXtwPUc7YnJlYWsgZX1pZigwfChmPTB8RWwoYywwfGFbRD4+Ml0pKSl7cD1HO2JyZWFrIGV9az1HLGY9MHxRYShjLDApfWlmKGYpe3A9azticmVh''@;'; put 'put ''a31HPWssZj1wfX13aGlsZSgwKTtyZXR1cm4gYVttPj4yXT0oMHxhW20+PjJdKStwLDB8Zn1mdW5jdGlvbiBaaihsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtyZXR1cm4obD0wfHJTKGx8PTAsMixBPTB8WDEobCwwLDAsMSwxNikpKT8oYVtBPj4yXT1jLGFbQSs0Pj4y''@;'; put 'put ''XT1mLGFbQSs4Pj4yXT1wLGZlWyhBPUErMTJ8MCk+PjBdPS0yJmZlW0E+PjBdfDEmbSxhW2wrMTY+PjJdPWFbYysxNj4+Ml0pOmw9MCwwfGx9ZnVuY3Rpb24gYmcobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0wO3JldHVybihjfD0wKSYmKDAhPSgwfGYpJjAhPSgwfChsPTB8clMobCwzLHA9MHxY''@;'; put 'put ''MShsLDAsMCwxLDgpKSkpPyhhW3A+PjJdPWMsYVtwKzQ+PjJdPWYsYVtsKzE2Pj4yXT0oMHxhW2YrMTY+PjJdKSsoMHxhW2MrMTY+PjJdKSxmPWwpOmY9MCksMHxmfWZ1bmN0aW9uIHpqKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbT0wO3JldHVybiAwIT0oMHwocD0wfFgxKGx8PTAsMCwwLDAs''@;'; put 'put ''OCkpKSYmKGY9MHxuMShsLC0zLGYsLTEpLGFbcD4+Ml09ZiwwIT0oMHxmKSkmJihtPTB8WDEobCwwLDAsMCwzMiksYVtwKzQ+PjJdPW0sMCE9KDB8bSkpPyhhW20rND4+Ml09YVsobD1jKzR8MCk+PjJdLGFbbT4+Ml09YVtjPj4yXSxhW20rOD4+Ml09LTEsYVttKzEyPj4yXT0tMSxhWyhtPW0r''@;'; put 'put ''MTZ8MCk+PjJdPTAsYVttKzQ+PjJdPTAsYVttKzg+PjJdPTAsYVttKzEyPj4yXT0wLGFbbD4+Ml09cCxhW2M+PjJdPTEsbD0wKTpsPTEyLDB8bH1mdW5jdGlvbiBETChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MDtpZigoMHwobT0wfGFbKGx8PTApPj4yXSkpPi0xKXtBPTB8YVtj''@;'; put 'put ''KzE2Pj4yXSxwPTAsYz1tO2Rve209Yz4+PjEsYVsoMD09KDEmY3wwKT9BKygxMiptfDApfDA6QSsoMTIqbXwwKSs0fDApPj4yXT1mLGM9MHxhW2wrKChwPXArMXwwKTw8Mik+PjJdfXdoaWxlKCgwfGMpPi0xKX1hW2w+PjJdPS0xfWZ1bmN0aW9uIEgkKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAs''@;'; put 'put ''bT0wO3JldHVybiAwIT0oMHwocD0wfFgxKGx8PTAsMCwwLDAsOCkpKSYmKGY9MHxuMShsLC0zLGYsLTEpLGFbcCs0Pj4yXT1mLDAhPSgwfGYpKSYmKG09MHxYMShsLDAsMCwwLDMyKSxhW3A+PjJdPW0sMCE9KDB8bSkpPyhhW20rND4+Ml09YVsobD1jKzR8MCk+PjJdLGFbbT4+Ml09YVtjPj4y''@;'; put 'put ''XSxhW20rOD4+Ml09LTEsYVttKzEyPj4yXT0tMSxhWyhtPW0rMTZ8MCk+PjJdPTAsYVttKzQ+PjJdPTAsYVttKzg+PjJdPTAsYVttKzEyPj4yXT0wLGFbbD4+Ml09cCxhW2M+PjJdPTEsbD0wKTpsPTEyLDB8bH1mdW5jdGlvbiBOJChsLGMpe2N8PTA7dmFyIE0sZj0wLHA9MCxtPTAsQT0wLHc9''@;'; put 'put ''MCxiPTAsaz0wO009bGUsbGU9bGUrMTZ8MCxiPU0sbT0xJihBPTB8YVsodz0zMisobHw9MCl8MCk+PjJdKTtlOmRve3N3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDkxOmY9MHx0ZmUobCxjKzF8MCk7YnJlYWs7Y2FzZSA5MjppZigwfChwPTB8bmZlKGY9YysxfDApKSl7Zj0wfE4kKGwscCksYVts''@;'; put 'put ''KzEyPj4yXT1jKzI7YnJlYWsgZX1zd2l0Y2goMHwocD0wfGZlW2Y+PjBdKSl7Y2FzZSAwOmY9NTticmVhayBlO2Nhc2UgOTg6cD0wfG4xKDB8YVtsPj4yXSwtMiw2NCwtMSk7YnJlYWs7Y2FzZSA2NjpwPTB8bjEoMHxhW2w+PjJdLC0yLDEyOCwtMSk7YnJlYWs7Y2FzZSA2MDpwPTB8bjEoMHxh''@;'; put 'put ''W2w+PjJdLC0yLDE2LC0xKTticmVhaztjYXNlIDYyOnA9MHxuMSgwfGFbbD4+Ml0sLTIsMzIsLTEpO2JyZWFrO2Nhc2UgMTIwOm09KHc9MTIzPT0oMHxmZVsoQT1jKzJ8MCk+PjBdKSk/ODoyLEE9dz9jKzN8MDpBLGY9MCxwPTA7ZG97aWYoKDB8KGM9MHxyZmUoMHxmZVtBK2Y+PjBdKSkpPDAp''@;'; put 'put ''YnJlYWs7cD1jKyhwPDw0KXwwLGY9ZisxfDB9d2hpbGUoKDB8cCk8MTExNDExMiYoMHxmKTwoMHxtKSk7aWYoZj1BK2Z8MCx3KXtpZigxMjUhPSgwfGZlW2Y+PjBdKSl7Zj05O2JyZWFrIGV9Zj1mKzF8MH1iPTB8YVtsPj4yXSxhWyh3PWwrMjR8MCk+PjJdPTErKGs9MHxhW3c+PjJdKSxwPTB8''@;'; put 'put ''bjEoYixwLHAsayksZj1mKy0xfDA7YnJlYWs7Y2FzZSA2MzpjYXNlIDQzOmNhc2UgMTIzOmlmKG0pe2s9Mzc7YnJlYWsgZX1mPTEzO2JyZWFrIGU7Y2FzZSAxMjQ6aWYoMHxtKXtrPTM3O2JyZWFrIGV9Zj0wfG4xKDB8YVtsPj4yXSwtMSwtMSwtMSksaz00NTticmVhayBlO2RlZmF1bHQ6aWYo''@;'; put 'put ''ISgwPT0oMHxtKSYocCstNDl8MCk+Pj4wPDkpKXtrPTM3O2JyZWFrIGV9Yj1wKy00OHwwLGs9MHxhW2w+PjJdLGFbKHc9bCsyNHwwKT4+Ml09MSsocD0wfGFbdz4+Ml0pLHA9MHxuMShrLC00LGIscCksYVsoaz1sKzI4fDApPj4yXT0oMHxiKTwoMHwodz0wfGFbaz4+Ml0pKT93OmJ9Yz1mKzF8''@;'; put 'put ''MCxmPXAsaz00NTticmVhaztjYXNlIDQ2OmY9MHxhW2w+PjJdLGFbKG09bCsyNHwwKT4+Ml09MSsocD0wfGFbbT4+Ml0pLDQmQT8ocD0wfG4xKGYsMCw5LHApLGs9MHxhW2w+PjJdLGFbbT4+Ml09MSsoZj0wfGFbbT4+Ml0pLGY9MCE9KDB8cCkmMCE9KDB8KGY9MHxuMShrLDExLDExMTQxMTEs''@;'; put 'put ''ZikpKT8wfGJnKDB8YVtsPj4yXSxwLGYpOjApOmY9MHxuMShmLDAsMTExNDExMSxwKSxjPWMrMXwwLGs9NDU7YnJlYWs7Y2FzZSA5NDppZigwPT0oMHxtKSYmKDB8YVtsKzE2Pj4yXSkhPSgwfGMpKXtmPWMsaz0zNzticmVhayBlfWM9YysxfDAsZj0wfG4xKDB8YVtsPj4yXSwtMiwxLC0xKSxr''@;'; put 'put ''PTQ1O2JyZWFrO2Nhc2UgMzY6aWYoZj1jKzF8MCwwPT0oMHxtKSYmMHxmZVtmPj4wXSl7Zj1jLGs9Mzc7YnJlYWsgZX1jPWYsZj0wfG4xKDB8YVtsPj4yXSwtMiwyLC0xKSxrPTQ1O2JyZWFrO2Nhc2UgNjM6Y2FzZSA0MzpjYXNlIDEyMzpjYXNlIDQyOm0/Zj0xMzooZj1jLGs9MzcpO2JyZWFr''@;'; put 'put ''O2Nhc2UgMTI0Om0/az0zNjooZj1jLGs9MzcpO2JyZWFrO2Nhc2UgMDprPTM2O2JyZWFrO2RlZmF1bHQ6Zj1jLGs9Mzd9fXdoaWxlKDApO2lmKDM2PT0oMHxrKSlmPTB8bjEoMHxhW2w+PjJdLC0xLC0xLC0xKSxrPTQ1O2Vsc2UgaWYoMzc9PSgwfGspKWlmKCgwfChBPTB8YzgoYixmLC0xKSkp''@;'; put 'put ''PDApZj0yO2Vsc2V7ZG97aWYoMiZhW3c+PjJdKXtpZigwPT0oMHxFaigwfGFbYj4+Ml0pKSYmMD09KDB8TWooMHxhW2I+PjJdKSkpe2s9NDM7YnJlYWt9bT0wIT0oMHwobT0wfG4xKHc9MHxhW2w+PjJdLDB8b3YoMHxhW2I+PjJdKSxtPTB8b3YoMHxhW2I+PjJdKSwwfGFbKHA9bCsyNHwwKT4+''@;'; put 'put ''Ml0pKSkmMCE9KDB8KGM9MHxuMSgwfGFbbD4+Ml0sdz0wfEFnKDB8YVtiPj4yXSksYz0wfEFnKDB8YVtiPj4yXSksMHxhW3A+PjJdKSkpPzB8YmcoMHxhW2w+PjJdLG0sYyk6MH1lbHNlIGs9NDN9d2hpbGUoMCk7NDM9PSgwfGspJiYobT0wfG4xKDB8YVtsPj4yXSxtPTB8YVtiPj4yXSxtLDB8''@;'; put 'put ''YVsocD1sKzI0fDApPj4yXSkpLGFbcD4+Ml09MSsoMHxhW3A+PjJdKSxjPWYrQXwwLGY9bSxrPTQ1fXJldHVybiA0NT09KDB8aykmJihmPyhhW2wrOD4+Ml09ZixhW2wrMTI+PjJdPWMsZj0wKTpmPTEyKSxsZT1NLDB8Zn1mdW5jdGlvbiBxY2UobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFy''@;'; put 'put ''IGIsbT0wLEE9MCx3PTA7Yj1sZSxsZT1sZSsxNnwwLG09YixsPTB8ViQobHw9MCx3PWIrNHwwKSw0ND09KDB8ZmVbbD4+MF0pPyhsPTB8ViQobCsxfDAsbSksQT0wfGFbbT4+Ml0sbT0wfGFbdz4+Ml0pOihhW20+PjJdPXc9MHxhW3c+PjJdLEE9dyxtPXcpO2Rve2lmKG0+Pj4wPjI1NXwoMHxB''@;'; put 'put ''KT4yNTV8KDB8QSk+LTEmKDB8QSk8KDB8bSkpbD0wO2Vsc2V7aWYoIWMpe2lmKDkyIT0oMHxmZVtsPj4wXSkpe2w9MDticmVha31sPWwrMXwwfTEyNT09KDB8ZmVbbD4+MF0pPyhhW2Y+PjJdPW0sYVtwPj4yXT1BLGw9bCsxfDApOmw9MH19d2hpbGUoMCk7cmV0dXJuIGxlPWIsMHxsfWZ1bmN0''@;'; put 'put ''aW9uIGVmZShsLGMsZil7bHw9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MDtyZXR1cm4oMHxhWzEyKyhjfD0wKT4+Ml0pPi0xPzAhPSgwfChwPTB8bjEoMHxhW2w+PjJdLC0xLC0xLC0xKSkpJiYwIT0oMHwobT0wfHV2KDB8YVtsPj4yXSxwLGMpKSk/KGFbbSsxNj4+Ml09cD0wfGFbYysxNj4+Ml0s''@;'; put 'put ''QT02KTpwPTEyOihtPWMscD0wfGFbYysxNj4+Ml0sQT02KSw2PT0oMHxBKSYmKGFbbSsxMj4+Ml09ZixhW20rMTY+PjJdPXArMSxhW2wrOD4+Ml09bSxwPTApLDB8cH1mdW5jdGlvbiBWJChsLGMpe2x8PTA7dmFyIGY9MCxwPTAsbT0wO2lmKGFbKGN8PTApPj4yXT0tMSwoKDB8ZmVbbD4+MF0p''@;'; put 'put ''LTQ4fDApPj4+MDwxMClmb3IoYVtjPj4yXT0wLGY9bCxtPTAscD0wfGZlW2w+PjBdO2FbYz4+Ml09bT0oMTAqbXwwKS00OCsocDw8MjQ+PjI0KXwwLCEoKDB8bSk+MjU1fCgoKHA9MHxmZVsobD1mKzF8MCk+PjBdKTw8MjQ+PjI0KS00OHwwKT4+PjA+OSk7KWY9bDtyZXR1cm4gMHxsfWZ1bmN0''@;'; put 'put ''aW9uIHRmZShsLGMpe2N8PTA7dmFyIGdlLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTA7aWYoZ2U9bGUsbGU9bGUrMjg4fDAsbT1nZSxhWyhmPWdlKzI2NHwwKT4+Ml09YVsobHw9MCk+PjJdLGFbKEE9Zis4fDApPj4yXT0wLGFbZisxMj4+Ml09''@;'; put 'put ''MzIsRz0wfEYwKDEyOCksYVsocGU9Zis0fDApPj4yXT1HLEcpe2FbKHA9bSs0fDApPj4yXT0wLGFbbT4+Ml09MSYoRz05ND09KDB8ZmVbYz4+MF0pKSxjPTB8ZnVuY3Rpb24gaWZlKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBSLHEsYmUsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0w''@;'; put 'put ''LEc9MCxwZT0wLGdlPTA7YmU9bGUsbGU9bGUrMzJ8MCxxPWJlKzR8MCx3PTB8YzgoUj1iZSxjfD0wLC0xKSxtPTB8ZmVbYz4+MF07ZTpkb3tpZigoMHx3KT49MSl7cGU9cCs0fDAsRD1sKzMyfDAsQT1jLGI9dzt0OmZvcig7Oyl7aWYoISgodz0oMHxBKT09KDB8YykpfG08PDI0Pj4yNCE9OTMp''@;'; put 'put ''KXtnZT01O2JyZWFrfW46ZG97aWYoISh3fG08PDI0Pj4yNCE9NDUpKXtzd2l0Y2goMHxmZVtBKzE+PjBdKXtjYXNlIDkzOmJyZWFrIG47Y2FzZSA0NTpicmVhaztkZWZhdWx0Om09MTE7YnJlYWsgZX1pZig5Mz09KDB8ZmVbQSsyPj4wXSkpe209MTE7YnJlYWsgZX19fXdoaWxlKDApO246ZG97''@;'; put 'put ''aWYobTw8MjQ+PjI0PT05MSl7c3dpdGNoKDB8ZmVbQSsxPj4wXSl7Y2FzZSA2MTpjYXNlIDQ2Om09MzticmVhayBlO2Nhc2UgNTg6YnJlYWs7ZGVmYXVsdDpnZT0xNzticmVhayBufXc9QSsyfDAsbT0wO3I6Zm9yKDs7KXtzd2l0Y2goMHxmZVt3K20+PjBdKXtjYXNlIDA6Z2U9MTY7YnJlYWsg''@;'; put 'put ''dDtjYXNlIDU4OmJyZWFrIHJ9aWYoISgoMHxtKTwxMykpe2dlPTE2O2JyZWFrIHR9bT1tKzF8MH1pZihnbygwfHEsMHx3LDB8bSksZmVbcSttPj4wXT0wLCEoYj0wfHBjZShxKSkpe2dlPTE2O2JyZWFrIHR9aWYoQT13KyhtKzIpfDAsOTMhPSgwfGZlW3crKG0rMSk+PjBdKSl7Z2U9MTY7YnJl''@;'; put 'put ''YWsgdH1pZigwfGFbcD4+Ml0pe2lmKCgwfChtPTB8YVtwZT4+Ml0pKT42Myl7bT0xMjticmVhayBlfWFbcGU+PjJdPW0rMSxhW3ArOCsobTw8Mik+PjJdPWJ9ZWxzZSBtPTExMTQxMTEsTT0wLGs9MSxnZT0yNX1lbHNlIGdlPTE3fXdoaWxlKDApO2lmKDE3PT0oMHxnZSkpaWYoZ2U9MCx3PTB8''@;'; put 'put ''YVtSPj4yXSw0NT09KDB8ZmVbKEE9QStifDApPj4wXSkmJjkzIT0oMHxmZVsoRz1BKzF8MCk+PjBdKSl7aWYoKDB8KEE9MHxjOChSLEcsLTEpKSk8MXwoMHx3KT4oMHwobT0wfGFbUj4+Ml0pKSl7bT0xMTticmVhayBlfWI9MCxNPXcsQT1HK0F8MCxrPTAsZ2U9MjV9ZWxzZSBiPTAsbT13LE09''@;'; put 'put ''dyxrPTAsZ2U9MjU7aWYoMjU9PSgwfGdlKSl7aWYoZ2U9MCwhKHc9MHxHaihmKSkpe209MTI7YnJlYWsgZX1pZihhW3c+PjJdPU0sYVt3KzQ+PjJdPW0sYVt3KzEyPj4yXT1iLGFbdys4Pj4yXT0tMSwhKGt8MD09KDImYVtEPj4yXXwwKSkmJjAhPSgwfGFmZShmLE0sbSkpKXttPTEyO2JyZWFr''@;'; put 'put ''IGV9fWlmKGI9MHxjOChSLEEsLTEpLG09MHxmZVtBPj4wXSwoMHxiKTwxKXtnZT0zO2JyZWFrIGV9fWlmKDU9PSgwfGdlKSl7YVtsKzEyPj4yXT1BKzEsbT0wO2JyZWFrfWlmKDE2PT0oMHxnZSkpe209NDticmVha319ZWxzZSBnZT0zfXdoaWxlKDApO3JldHVybiAzPT0oMHxnZSkmJihtPW08''@;'; put 'put ''PDI0Pj4yND8yOjcpLGxlPWJlLDB8bX0obCxHP2MrMXwwOmMsZixtKTtlOmRve2lmKGMpZj0wO2Vsc2V7aWYoRz0wPT0oMHxhW20+PjJdKSlwPTA7ZWxzZXtpZih4MSgwfGFbcGU+PjJdLDB8YVtBPj4yXSw0LDExMSksIShjPTB8R2ooZikpKXtjPTEyLGY9MDticmVha31pZihhW2M+PjJdPTEx''@;'; put 'put ''MTQxMTIsYVtjKzQ+PjJdPTExMTQxMTIsYVtjKzg+PjJdPS0xLGM9MHxhW3A+PjJdKXtpZighKHA9MHxYMSgwfGFbbD4+Ml0sMCwwLDAsNCsoZj1jPDwyKXwwKSkpe2M9MTIsZj0wO2JyZWFrfWdvKDB8cCxtKzh8MCwwfGYpLGFbcCsoYzw8Mik+PjJdPTB9ZWxzZSBwPTB9aWYoKDB8KE09MHxh''@;'; put 'put ''W0E+PjJdKSk+MClmb3IoRD0wfGFbcGU+PjJdLFI9bCsyNHwwLGY9MCxjPTAsaz0wOzspe209MHxhWyhiPTB8YVtEKyhrPDwyKT4+Ml0pPj4yXSx3PTB8YVsoQT1iKzR8MCk+PjJdO2Rve2lmKCFHKXtpZigoMHxtKT4oMHxjKSl7YVtiPj4yXT1jLGFbQT4+Ml09bSstMSxjPXcrMXwwLHE9MTQ7''@;'; put 'put ''YnJlYWt9Yz0oMHwoYj13KzF8MCkpPj0oMHxjKT9iOmM7YnJlYWt9cT0xNH13aGlsZSgwKTtpZigxND09KDB8cSkmJihxPTAsYVtiKzg+PjJdPWFbUj4+Ml0sYVtiKzE2Pj4yXT1wLGI9MHxyUygwfGFbbD4+Ml0sMCxiKSwhKGY9MHxiZygwfGFbbD4+Ml0sZixiKSkpKXtjPTEyLGY9MDticmVh''@;'; put 'put ''ayBlfWlmKCgwfChrPWsrMXwwKSk+PSgwfE0pKXtjPTA7YnJlYWt9fWVsc2UgYz0wLGY9MH19d2hpbGUoMCk7RnQoMHxhW3BlPj4yXSksYVsocGU9bCsyNHwwKT4+Ml09MSsoMHxhW3BlPj4yXSksYVtsKzg+PjJdPWZ9ZWxzZSBjPTEyO3JldHVybiBsZT1nZSwwfGN9ZnVuY3Rpb24gbmZlKGwp''@;'; put 'put ''e3ZhciBjO2ZvcihjPTB8ZmVbKGx8PTApPj4wXSxsPTA7KDB8ZmVbNjM3NTIrKGw8PDMpPj4wXSkhPWM8PDI0Pj4yNDspaWYoMTI9PSgwfChsPWwrMXwwKSkpe2w9MTI7YnJlYWt9cmV0dXJuIDB8YVs2Mzc1MisobDw8MykrND4+Ml19ZnVuY3Rpb24gcmZlKGwpe3ZhciBjPTA7cmV0dXJuKGM9''@;'; put 'put ''KGx8PTApLTQ4fDApPj4+MDwxMD8wfGM6MHwoKChjPTMyfGwpLTk3fDApPj4+MDw2P2MrLTg3fDA6LTEpfWZ1bmN0aW9uIEdqKGwpe3ZhciBwLG0sdyxjPTAsZj0wLEE9MCxiPTA7cmV0dXJuKDB8KGY9MHxhWyh3PTgrKGx8PTApfDApPj4yXSkpPj0oMHwobT0wfGFbKHA9bCsxMnwwKT4+Ml0p''@;'; put 'put ''KT8oMHxtKTw9MzI3NjcmJihhW3A+PjJdPW08PDEsMCE9KDB8KGM9MHxVYSgwfGFbKEE9bCs0fDApPj4yXSxtPDwzKSkpKT8oYVtBPj4yXT1jLGY9MHxhW3c+PjJdLGI9Nik6Yz0wOihjPTB8YVtsKzQ+PjJdLGI9NiksNj09KDB8YikmJihhW3c+PjJdPWYrMSxiPTB8WDEoMHxhW2w+PjJdLDAs''@;'; put 'put ''MCwxLDIwKSxhW2MrKGY8PDIpPj4yXT1iLGM9YiksMHxjfWZ1bmN0aW9uIGFmZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MDtlOmRve2lmKCgwfGMpPigwfGYpKWM9MDtlbHNlIGZvcig7Oyl7dDpkb3tpZigwfE1qKGMpKWZvcihtPTB8b3YoYykscD1tOzspe2lm''@;'; put 'put ''KEE9YysxfDAscD1wKzF8MCwoMHxjKT49KDB8Zikpe3c9bSxjPUEsQT0xMjticmVhayB0fWlmKCgwfG92KEEpKSE9KDB8cCkpe3c9bSxjPUEsQT0xMjticmVha31jPUF9ZWxzZXtpZighKDB8RWooYykpKXtjPWMrMXwwO2JyZWFrfWZvcihwPW09MHxBZyhjKTs7KXtpZihBPWMrMXwwLHA9cCsx''@;'; put 'put ''fDAsKDB8Yyk+PSgwfGYpKXt3PW0sYz1BLEE9MTI7YnJlYWsgdH1pZigoMHxBZyhBKSkhPSgwfHApKXt3PW0sYz1BLEE9MTI7YnJlYWt9Yz1BfX19d2hpbGUoMCk7aWYoMTI9PSgwfEEpKXtpZihBPTAsIShtPTB8R2oobCkpKXtjPS0xO2JyZWFrIGV9YVttPj4yXT13LGFbbSs0Pj4yXT1wKy0x''@;'; put 'put ''LGFbbSs4Pj4yXT0tMX1pZigoMHxjKT4oMHxmKSl7Yz0wO2JyZWFrfX19d2hpbGUoMCk7cmV0dXJuIDB8Y31mdW5jdGlvbiBsZmUobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciB3LGIsayxNLFIsQT0wLEQ9MDtyZXR1cm4gUj1sZSxsZT1sZSsxNnwwLE09UiwoMHwobD0wfGFb''@;'; put 'put ''NDArKGI9MHxhWzQrKGx8PTApPj4yXSk+PjJdKSk+MCYwIT0oMHwodz0wPT0oOCZhWyhrPWIrNTZ8MCk+PjJdfDApP2Y6MCkpPyhsPTB8RjAobDw8MikpPyhBPWwsZj1sLEQ9Myk6bD0xMjooQT0wLGY9MCxEPTMpLDM9PSgwfEQpJiYobD0wfGFbYis2MD4+Ml0/MHxmdW5jdGlvbiBzZmUobCxj''@;'; put 'put ''LGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEpyLExyLGwwLFZpLE9pLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsa3Q9MCxzdD0wLEV0''@;'; put 'put ''PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTAsdXI9MCxIcj0wLEVyPTAsZnI9MCxEcj0wO09pPWxlLGxlPWxlKzE2fDAsYVsobDA9T2kpPj4yXT0wLEc9MSZwLEpyPTImcCxSPTQmYVsoTHI9bCs1NnwwKT4+Ml0sVmk9MHxSJCgwLDApO2U6ZG97aWYoVmkpe2lmKCEocT0wfFgxKFZp''@;'; put 'put ''LDAsMCwwLDMyKSkpe3dnKFZpKSxwPTEyO2JyZWFrfWFbcSsyND4+Ml09MCxhW3ErMjg+PjJdPTAsKHBlPTB8YVsoRHI9bCs0MHwwKT4+Ml0pPyhwPTB8RjAocGU8PDIpKT8oaz1wLGI9cCxTdD02KTooRD0wLE09MCxrPXAscD0xMixiPTAsdz0wLEE9MCk6KGs9MCxiPTAsU3Q9Nik7dDpkb3tp''@;'; put 'put ''Zig2PT0oMHxTdCkpe2lmKHA9MHxhW2wrMjg+PjJdKXtpZighKHA9MHxGMChwPDwzKSkpe0Q9cCxNPTAscD0xMix3PTAsQT0wO2JyZWFrfUQ9cCx3PXB9ZWxzZSBEPTAsdz0wO2lmKHA9MHxhWyhmcj1sKzUyfDApPj4yXSl7aWYoIShwPTB8RjAocDw8MikpKXtNPXAscD0xMixBPTA7YnJlYWt9''@;'; put 'put ''TT1wLEE9cH1lbHNlIE09MCxBPTA7U249bCs4fDAsSG49bCsxMnwwLHVyPTA9PSgwfGYpLEhyPTAhPSgwfGYpLEVyPWwrMzJ8MCxhbj0wIT0oMHxSKSxidD0wPT0oMHxHKSxiZT1jLHA9MSxnZT0tMSxSZT0tMSxSPXBlLGF0PTA7bjpmb3IoOzspe2lmKCgwfFIpPjApe0c9MDtkb3thW2srKEc8''@;'; put 'put ''PDIpPj4yXT0tMSx1cnx8KGFbZisoRzw8Mik+PjJdPS0xLFI9MHxhW0RyPj4yXSksRz1HKzF8MH13aGlsZSgoMHxHKTwoMHxSKSl9aWYoKDB8KFI9MHxhW2ZyPj4yXSkpPjAmJnUyKDB8QSwwLFI8PDJ8MCksWnQ9cCtnZXwwLCgwfChwPTB8YzgobDAsYmUsNCkpKTwxKXtpZigoMHxwKTwwKXtw''@;'; put 'put ''PTE7YnJlYWsgdH1wPTF9aWYoRXQ9YmUrcHwwLGN0PTB8YVtsMD4+Ml0sMHxhWyhHPTgrKFI9MHxhW1NuPj4yXSl8MCk+PjJdKXtmb3IoSGU9MCE9KDB8WnQpLFZlPTk1PT0oMHxhdCkscWU9MD09KDB8WnQpLFdlPWFuJjEwPT0oMHxhdCkscnQ9KDB8WnQpPDEmYnQsTGU9UixSPTAsT2U9MCxi''@;'; put 'put ''ZT1HOzspe0c9MHxhWyhnZT1MZSsyMHwwKT4+Ml07cjpkb3tpZihHKXtpZigwPT0oMSZHfDApfHJ0fFdlKXtpZigyJkd8MCYmISgwPT0oKHN0PTB8YVtsMD4+Ml0pfEpyfDApfGFuJjEwPT0oMHxzdCkpKXtwZT1PZTticmVha31kb3tpZigxNiZHfDApe2lmKFZlKXtwZT1PZTticmVhayByfWlm''@;'; put 'put ''KDB8YnMoYXQpKXtwZT1PZTticmVhayByfWlmKDk1PT0oMHwoRz0wfGFbbDA+PjJdKSkpYnJlYWs7aWYoISgwfGJzKEcpKSl7cGU9T2U7YnJlYWsgcn19fXdoaWxlKDApO2lmKDMyJihHPTB8YVtnZT4+Ml0pKXtpZihWZSl7aWYoOTU9PSgwfChHPTB8YVtsMD4+Ml0pKSl7cGU9T2U7YnJlYWt9''@;'; put 'put ''fWVsc2UgaWYoKHN0PTA9PSgwfGJzKGF0KSkpfDk1PT0oMHwoRz0wfGFbbDA+PjJdKSkpe3BlPU9lO2JyZWFrfWlmKDB8YnMoRykpe3BlPU9lO2JyZWFrfUc9MHxhW2dlPj4yXX1wZT0wfGFbbDA+PjJdO2Rve2lmKDAhPSgwfHBlKSZIZSYwIT0oNjQmR3wwKSl7aWYoVmU/Rz0xOihHPTAhPSgw''@;'; put 'put ''fGJzKGF0KSkscGU9MHxhW2wwPj4yXSksOTU9PSgwfHBlKSl7aWYoRyl7cGU9T2U7YnJlYWsgcn1icmVha31pZihHXjAhPSgwfGJzKHBlKSkpYnJlYWs7cGU9T2U7YnJlYWsgcn19d2hpbGUoMCk7aWYoISgxMjgmYVtnZT4+Ml0pKXtTdD00OTticmVha31pZihxZXwwPT0oMHwoRz0wfGFbbDA+''@;'; put 'put ''PjJdKSkpe3BlPU9lO2JyZWFrfWlmKFZlP3BlPTE6KHBlPTAhPSgwfGJzKGF0KSksRz0wfGFbbDA+PjJdKSw5NT09KDB8Rykpe2lmKHBlKXtTdD00OTticmVha31wZT1PZTticmVha31pZihwZV4wIT0oMHxicyhHKSkpe3BlPU9lO2JyZWFrfVN0PTQ5O2JyZWFrfXBlPU9lfWVsc2UgU3Q9NDl9''@;'; put 'put ''d2hpbGUoMCk7ZG97aWYoNDk9PSgwfFN0KSl7aWYoU3Q9MCwhT2Upe1I9MHxhW0xlKzE2Pj4yXSxwZT0wfGFbYmU+PjJdO2JyZWFrfWlmKEc9MHxhWyhwZT1xKzI4fDApPj4yXSlxPUc7ZWxzZXtpZighKEc9MHxYMShWaSwwLDAsMCwzMikpKXtTdD01MzticmVhayBufWlmKGFbRysyND4+Ml09''@;'; put 'put ''cSxhW0crMjg+PjJdPTAsc3Q9MHxYMShWaSwwLDAsMCxhW0RyPj4yXTw8MiksYVtHKzIwPj4yXT1zdCwhc3Qpe1N0PTYwO2JyZWFrIG59YVtwZT4+Ml09RyxxPUd9aWYoYVtxPj4yXT1adCxhW3ErND4+Ml09RXQsYVtxKzg+PjJdPWFbYmU+PjJdLGFbcSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtx''@;'; put 'put ''KzE2Pj4yXT1hW2wwPj4yXSwoMHxhW0RyPj4yXSk+MCl7cGU9MHxhW3ErMjA+PjJdLEc9MDtkb3thW3BlKyhHPDwyKT4+Ml09YVtrKyhHPDwyKT4+Ml0sRz1HKzF8MH13aGlsZSgoMHxHKTwoMHxhW0RyPj4yXSkpfWlmKEc9MHxhW0xlKzE2Pj4yXSl7aWYoKDB8KHBlPTB8YVtHPj4yXSkpPD0t''@;'; put 'put ''MSl7cGU9T2U7YnJlYWt9Z2U9MHxhW3ErMjA+PjJdO2Rve0c9Rys0fDAsYVtnZSsocGU8PDIpPj4yXT1adCxwZT0wfGFbRz4+Ml19d2hpbGUoKDB8cGUpPi0xKTtwZT1PZX1lbHNlIHBlPU9lfX13aGlsZSgwKTtpZighKDB8YVsoYmU9TGUrNDB8MCk+PjJdKSlicmVhaztMZT1MZSszMnwwLE9l''@;'; put 'put ''PXBlfWlmKFIpe2lmKCgwfChHPTB8YVtSPj4yXSkpPi0xKWRve2FbaysoRzw8Mik+PjJdPVp0LEc9MHxhWyhSPVIrNHwwKT4+Ml19d2hpbGUoKDB8Ryk+LTEpfWVsc2UgUj0wO3BlPyhiZT1adCxnZT1FdCxIZT1wZSxWZT1SLFN0PTc5KTpTdD0xNzF9ZWxzZSBSPTAsU3Q9MTcxO3I6Zm9yKDs7''@;'; put 'put ''KXtpZig3OT09KDB8U3QpKXtpZigoMHxIZSk9PSgwfGFbSG4+PjJdKSl7aWYoKDB8UmUpPj0oMHxiZSkpe2lmKCEoSHImKDB8UmUpPT0oMHxiZSkpKXtSPVZlLFN0PTE3MTtjb250aW51ZX1pZighKDB8eiQoUj0wfGFbRHI+PjJdLDB8YVtFcj4+Ml0sayxmKSkpe1I9VmUsU3Q9MTcxO2NvbnRp''@;'; put 'put ''bnVlfX1lbHNle2lmKHVyKXtSZT1iZSxSPVZlLFN0PTE3MTtjb250aW51ZX1SPTB8YVtEcj4+Ml19aWYoISgoMHxSKT4wKSl7UmU9YmUsUj1WZSxTdD0xNzE7Y29udGludWV9Zm9yKFI9MDs7KWlmKGFbZisoUjw8Mik+PjJdPWFbaysoUjw8Mik+PjJdLCgwfChSPVIrMXwwKSk+PSgwfGFbRHI+''@;'; put 'put ''PjJdKSl7UmU9YmUsUj1WZSxTdD0xNzE7Y29udGludWUgcn19aWYoMCE9KDB8YVsoTGU9SGUrOHwwKT4+Ml0pJiYwIT0oMjU2JmFbSGUrMjA+PjJdfDApKXtpZihqJCgxKyhHPTB8YVtIZSsyND4+Ml0pfDAsRCwtOSZhW0xyPj4yXSxsLGssYmUpLDB8czIoYysoc3Q9MHxhW0QrKEc8PDMpPj4y''@;'; put 'put ''XSl8MCxnZSstMXwwLEc9KDB8YVtEKyhHPDwzKSs0Pj4yXSktc3R8MCkpe1I9VmUsU3Q9MTcxO2NvbnRpbnVlfWlmKFI9MSYoc3Q9MD09KDB8RykpLHBlPTB8YVtIZSsxMj4+Ml0sc3QmJjB8YVtNKyhwZTw8Mik+PjJdKXtSPVZlLFN0PTE3MTtjb250aW51ZX1pZihhW00rKHBlPDwyKT4+Ml09''@;'; put 'put ''UixnZT1nZSsoRz1HKy0xfDApfDAsRz1HK2JlfDAscGU9MHxhW2wwPj4yXSwoMHwoUj0wfGM4KGwwLGdlLDQpKSk8MSl7aWYoKDB8Uik8MCl7cD0xO2JyZWFrIHR9Uj0xfWt0PWdlK1J8MCxzdD1SfWVsc2V7aWYoIShwZT0wfGFbbDA+PjJdKSl7Uj1WZSxTdD0xNzE7Y29udGludWV9aWYoKDB8''@;'; put 'put ''KFI9MHxjOChsMCxnZSw0KSkpPDEpe2lmKCgwfFIpPDApe3A9MTticmVhayB0fVI9MX1HPWJlLGt0PWdlK1J8MCxzdD1SfWlmKGJlPUcrcHwwLCEoMHxhW0xlPj4yXSkpe3A9c3QsUj1WZSxTdD0xNzE7Y29udGludWV9Zm9yKHFlPTAhPSgwfGJlKSxydD05NT09KDB8cGUpLFdlPTA9PSgwfGJl''@;'; put 'put ''KSxTdD1hbiYxMD09KDB8cGUpLGF0PSgwfGJlKTwxJmJ0LE9lPTAsUj1WZTs7KXtpOmRve2lmKCgwfGFbSGU+PjJdKT4+PjA8PXBlPj4+MCl7aWYoKDB8YVtIZSs0Pj4yXSk+Pj4wPHBlPj4+MClicmVhaztwPTB8YVsoZ2U9SGUrMjB8MCk+PjJdO2Rve2lmKDB8cCl7aWYoISgwPT0oMSZwfDAp''@;'; put 'put ''fGF0fFN0KXx8MiZwfDAmJiEoMD09KChWZT0wfGFbbDA+PjJdKXxKcnwwKXxhbiYxMD09KDB8VmUpKSlicmVhayBpO2Rve2lmKDE2JnB8MCl7aWYocnR8fDB8YnMocGUpKWJyZWFrIGk7aWYoOTU9PSgwfChwPTB8YVtsMD4+Ml0pKSlicmVhaztpZighKDB8YnMocCkpKWJyZWFrIGl9fXdoaWxl''@;'; put 'put ''KDApO2lmKDMyJihwPTB8YVtnZT4+Ml0pKXtpZihydCl7aWYoOTU9PSgwfChwPTB8YVtsMD4+Ml0pKSlicmVhayBpfWVsc2UgaWYoKFZlPTA9PSgwfGJzKHBlKSkpfDk1PT0oMHwocD0wfGFbbDA+PjJdKSkpYnJlYWsgaTtpZigwfGJzKHApKWJyZWFrIGk7cD0wfGFbZ2U+PjJdfUc9MHxhW2ww''@;'; put 'put ''Pj4yXTtkb3tpZigwIT0oMHxHKSZxZSYwIT0oNjQmcHwwKSl7aWYocnQ/cD0xOihwPTAhPSgwfGJzKHBlKSksRz0wfGFbbDA+PjJdKSw5NT09KDB8Rykpe2lmKHApYnJlYWsgaTticmVha31pZihwXjAhPSgwfGJzKEcpKSlicmVhazticmVhayBpfX13aGlsZSgwKTtkb3tpZigxMjgmYVtnZT4+''@;'; put 'put ''Ml18MCl7aWYoV2V8MD09KDB8KHA9MHxhW2wwPj4yXSkpKWJyZWFrIGk7aWYocnQ/Rz0xOihHPTAhPSgwfGJzKHBlKSkscD0wfGFbbDA+PjJdKSw5NT09KDB8cCkpe2lmKEcpYnJlYWs7YnJlYWsgaX1pZihHXjAhPSgwfGJzKHApKSlicmVhayBpO2JyZWFrfX13aGlsZSgwKTtwPTB8YVtnZT4+''@;'; put 'put ''Ml07ZG97aWYoNCZwKXtpZigyJmFbTHI+PjJdfDApYnJlYWs7aWYoISgwfHU4KHBlLDB8YVtIZSsyND4+Ml0pKSlicmVhayBpO3A9MHxhW2dlPj4yXX19d2hpbGUoMCk7ZG97aWYoNCZwfDApe2lmKCEoMiZhW0xyPj4yXSl8fDB8dTgoVmU9MHxBZyhwZSksMHxhWyhwPUhlKzI0fDApPj4yXSkp''@;'; put 'put ''YnJlYWs7aWYoISgwfHU4KFZlPTB8b3YocGUpLDB8YVtwPj4yXSkpKWJyZWFrIGl9fXdoaWxlKDApO2lmKCEoOCZhW2dlPj4yXSkpYnJlYWs7aWYoMHxaJCgwfGFbSGUrMjg+PjJdLHBlLDImYVtMcj4+Ml0pKWJyZWFrIGl9fXdoaWxlKDApO2lmKCFPZSl7T2U9MHxhW0xlPj4yXSxSPTB8YVtI''@;'; put 'put ''ZSsxNj4+Ml07YnJlYWt9aWYocD0wfGFbKEc9cSsyOHwwKT4+Ml0pcT1wO2Vsc2V7aWYoIShwPTB8WDEoVmksMCwwLDAsMzIpKSl7U3Q9MTQ1O2JyZWFrIG59aWYoYVtwKzI0Pj4yXT1xLGFbcCsyOD4+Ml09MCxWZT0wfFgxKFZpLDAsMCwwLGFbRHI+PjJdPDwyKSxhW3ArMjA+PjJdPVZlLCFW''@;'; put 'put ''ZSl7U3Q9MTUyO2JyZWFrIG59YVtHPj4yXT1wLHE9cH1pZihhW3E+PjJdPWJlLGFbcSs0Pj4yXT1rdCxhW3ErOD4+Ml09YVtMZT4+Ml0sYVtxKzEyPj4yXT1hW0hlKzEyPj4yXSxhW3ErMTY+PjJdPWFbbDA+PjJdLCgwfGFbRHI+PjJdKT4wKXtHPTB8YVtxKzIwPj4yXSxwPTA7ZG97YVtHKyhw''@;'; put 'put ''PDwyKT4+Ml09YVtrKyhwPDwyKT4+Ml0scD1wKzF8MH13aGlsZSgoMHxwKTwoMHxhW0RyPj4yXSkpfWlmKCEocD0wfGFbSGUrMTY+PjJdKXx8KDB8KEc9MHxhW3A+PjJdKSk8PS0xKWJyZWFrO2dlPTB8YVtxKzIwPj4yXTtkb3thW2dlKyhHPDwyKT4+Ml09YmUsRz0wfGFbKHA9cCs0fDApPj4y''@;'; put 'put ''XX13aGlsZSgoMHxHKT4tMSl9fXdoaWxlKDApO2lmKCEoMHxhWyhMZT1IZSs0MHwwKT4+Ml0pKWJyZWFrO0hlPUhlKzMyfDB9aWYoIU9lKXtwPXN0LFN0PTE3MTtjb250aW51ZX1pZihSKWlmKCgwfChwPTB8YVtSPj4yXSkpPi0xKXtkb3tSPVIrNHwwLGFbaysocDw8Mik+PjJdPWJlLHA9MHxh''@;'; put 'put ''W1I+PjJdfXdoaWxlKCgwfHApPi0xKTtwZT1SZSxHPWt0LHA9c3R9ZWxzZSBwZT1SZSxHPWt0LHA9c3Q7ZWxzZSBwZT1SZSxHPWt0LHA9c3QsUj0wfWVsc2UgaWYoMTcxPT0oMHxTdCkpe2lmKFN0PTAsIShnZT0wfGFbcSsyND4+Ml0pKWJyZWFrO2lmKDI1NiZhWzIwKyhPZT0wfGFbcSs4Pj4y''@;'; put 'put ''XSk+PjJdfDAmJihhW00rKGFbcSsxMj4+Ml08PDIpPj4yXT0wKSxiZT0wfGFbcT4+Ml0sTGU9MHxhW3ErND4+Ml0sYVtsMD4+Ml09YVtxKzE2Pj4yXSwoMHwocGU9MHxhW0RyPj4yXSkpPjApe3E9MHxhW3ErMjA+PjJdLEc9MDtkb3thW2srKEc8PDIpPj4yXT1hW3ErKEc8PDIpPj4yXSxHPUcr''@;'; put 'put ''MXwwfXdoaWxlKCgwfEcpPCgwfHBlKSk7cT1nZSxwZT1SZSxHPUxlfWVsc2UgcT1nZSxwZT1SZSxHPUxlfWdlPUcsUmU9cGUsSGU9T2UsVmU9UixTdD03OX1pZigoUj0oMHxSZSk+LTEpfDA9PSgwfGFbbDA+PjJdKSl7U3Q9MTgwO2JyZWFrfWFbbDA+PjJdPWN0LGJlPUV0LGdlPVp0LFI9MHxh''@;'; put 'put ''W0RyPj4yXSxhdD1jdH1pZig1Mz09KDB8U3QpKXtpZih3ZyhWaSksMHxrJiZGdChiKSwwfEQmJkZ0KHcpLCFNKXtwPTEyO2JyZWFrIGV9RnQoQSkscD0xMjticmVhayBlfWlmKDYwPT0oMHxTdCkpe2lmKHdnKFZpKSwwfGsmJkZ0KGIpLDB8RCYmRnQodyksIU0pe3A9MTI7YnJlYWsgZX1GdChB''@;'; put 'put ''KSxwPTEyO2JyZWFrIGV9aWYoMTQ1PT0oMHxTdCkpe2lmKHdnKFZpKSwwfGsmJkZ0KGIpLDB8RCYmRnQodyksIU0pe3A9MTI7YnJlYWsgZX1GdChBKSxwPTEyO2JyZWFrIGV9aWYoMTUyPT0oMHxTdCkpe2lmKHdnKFZpKSwwfGsmJkZ0KGIpLDB8RCYmRnQodyksIU0pe3A9MTI7YnJlYWsgZX1G''@;'; put 'put ''dChBKSxwPTEyO2JyZWFrIGV9aWYoMTgwPT0oMHxTdCkpe2FbbT4+Ml09UmUscD0xJigxXlIpO2JyZWFrfX19d2hpbGUoMCk7d2coVmkpLDB8ayYmRnQoYiksMHxEJiZGdCh3KSxNJiZGdChBKX1lbHNlIHA9MTJ9d2hpbGUoMCk7cmV0dXJuIGxlPU9pLDB8cH0oYixjLEEsbSxNKTowfGZ1bmN0''@;'; put 'put ''aW9uIHVmZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgSHIsRXIsZnIsRHIsTHIsbDAsT2ksQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAs''@;'; put 'put ''U3Q9MCxrdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxhbj0wLFNuPTAsSG49MCx1cj0wLEpyPTAsVmk9MDtpZihPaT1sZSxsZT1sZSsxNnwwLGFbKExyPU9pKT4+Ml09MCxNPTEmcCxmcj0yJnAsaz00JmFbKERyPWwrNTZ8MCk+PjJdLGwwPTB8RjAocD0xMisoRXI9KEhyPWY/MHxhW2wr''@;'; put 'put ''NDA+PjJdOjApPDwyKSsodz0oYj0wfGFbbCs1Mj4+Ml0pPDwzKSsoKEE9dys4fDApKygwfEFyKEVyLGIpKTw8MSl8MCkpe2lmKHUyKDB8bDAsMCwwfHApLEE9MyYocD0odXI9KHA9KFI9KHA9KEQ9KHA9bDArRXJ8MCkrKDA9PSgwfChEPTMmcCkpPzA6NC1EfDApfDApK0F8MCkrKDA9PSgwfChS''@;'; put 'put ''PTMmcCkpPzA6NC1SfDApfDApK0F8MCkrKDA9PSgwfCh1cj0zJnApKT8wOjQtdXJ8MCl8MCkrd3wwKSx3PSgwfGIpPjApe2ZvcihwPXArKDA9PSgwfEEpPzA6NC1BfDApfDAsQT0wO2FbUisoQTw8MykrND4+Ml09cCxhW0QrKEE8PDMpKzQ+PjJdPXA9cCtFcnwwLCEoKDB8KEE9QSsxfDApKT49''@;'; put 'put ''KDB8YikpOylwPXArRXJ8MDtpZih3KXtwPTA7ZG97YVt1cisocDw8Myk+PjJdPS0xLHA9cCsxfDB9d2hpbGUoKDB8cCk8KDB8YikpfX0oMHwocD0wfGM4KExyLGMsNCkpKTwxPygwfHApPDA/cD0xOihiPTEsVmk9MTEpOihiPXAsVmk9MTEpO2U6ZG97aWYoMTE9PSgwfFZpKSl7Zm9yKEhuPWwr''@;'; put 'put ''OHwwLFNuPTAhPSgwfGspLHN0PTA9PSgwfE0pLEV0PSgwfEhyKT4wLFp0PWwrMTJ8MCxjdD0oMHxIcik8MSxidD1sKzQ0fDAsYW49bCszMnwwLFN0PWwrMzZ8MCxrdD0wPT0oMHxIciksdz0wLFJlPWMrYnwwLExlPTAsaz0wLHA9LTEsQT1ELFdlPWwwLFZlPUQsSGU9Ujs7KXtpZigoMHxwKTww''@;'; put 'put ''KXtNPTgrKGw9MHxhW0huPj4yXSl8MDt0OmRve2lmKDB8YVtNPj4yXSlmb3IocT0wIT0oMHxMZSkscGU9OTU9PSgwfHcpLGdlPTA9PSgwfExlKSxPZT1TbiYxMD09KDB8dyksYmU9KDB8TGUpPDEmc3Q7Oyl7bjpmb3IoO0c9bCsxMnwwLCEoKDB8YVt1cisoYVtHPj4yXTw8Myk+PjJdKT49KDB8''@;'; put 'put ''TGUpKTspe2lmKCEoYz0wfGFbKFI9bCsyMHwwKT4+Ml0pKXtWaT00NjticmVha31yOmRve2lmKDA9PSgxJmN8MCl8YmV8T2Upe2lmKDImY3wwJiYhKDA9PSgoYXQ9MHxhW0xyPj4yXSl8ZnJ8MCl8U24mMTA9PSgwfGF0KSkpYnJlYWs7ZG97aWYoMTYmY3wwKXtpZihwZXx8MHxicyh3KSlicmVh''@;'; put 'put ''ayByO2lmKDk1PT0oMHwoYz0wfGFbTHI+PjJdKSkpYnJlYWs7aWYoISgwfGJzKGMpKSlicmVhayByfX13aGlsZSgwKTtpZigzMiYoYz0wfGFbUj4+Ml0pKXtpZihwZSl7aWYoOTU9PSgwfChjPTB8YVtMcj4+Ml0pKSlicmVha31lbHNlIGlmKChhdD0wPT0oMHxicyh3KSkpfDk1PT0oMHwoYz0w''@;'; put 'put ''fGFbTHI+PjJdKSkpYnJlYWs7aWYoMHxicyhjKSlicmVhaztjPTB8YVtSPj4yXX1EPTB8YVtMcj4+Ml07ZG97aWYoMCE9KDB8RCkmcSYwIT0oNjQmY3wwKSl7aWYocGU/Yz0xOihjPTAhPSgwfGJzKHcpKSxEPTB8YVtMcj4+Ml0pLDk1PT0oMHxEKSl7aWYoYylicmVhayByO2JyZWFrfWlmKGNe''@;'; put 'put ''MCE9KDB8YnMoRCkpKWJyZWFrO2JyZWFrIHJ9fXdoaWxlKDApO2lmKCEoMTI4JmFbUj4+Ml0pKXtWaT00NjticmVhayBufWlmKGdlfDA9PSgwfChjPTB8YVtMcj4+Ml0pKSlicmVhaztpZihwZT9EPTE6KEQ9MCE9KDB8YnModykpLGM9MHxhW0xyPj4yXSksOTU9PSgwfGMpKXtpZihEKXtWaT00''@;'; put 'put ''NjticmVhayBufWJyZWFrfWlmKEReMCE9KDB8YnMoYykpKWJyZWFrO1ZpPTQ2O2JyZWFrIG59fXdoaWxlKDApO2lmKCEoMHxhWyhNPWwrNDB8MCk+PjJdKSlicmVhayB0O2w9bCszMnwwfWlmKDQ2PT0oMHxWaSkpe2lmKFZpPTAsYVtBPj4yXT1hW00+PjJdLEV0JiZ1MigwfGFbQSs0Pj4yXSwt''@;'; put 'put ''MSwwfEVyKSwwfChNPTB8YVtsKzE2Pj4yXSkmJigwfChKcj0wfGFbTT4+Ml0pKT4tMSl7RD1BKzR8MCxjPUpyO2RveygwfGMpPCgwfEhyKSYmKGFbKDB8YVtEPj4yXSkrKGM8PDIpPj4yXT1MZSksYz0wfGFbKE09TSs0fDApPj4yXX13aGlsZSgoMHxjKT4tMSl9aWYoKE09KDB8YVtBPj4yXSkh''@;'; put 'put ''PSgwfGFbWnQ+PjJdKSl8Y3Qpaz1NP2s6MSxwPU0/cDpMZSxNPUErNHwwO2Vsc2V7az0wfGFbKE09QSs0fDApPj4yXSxwPTA7ZG97YVtmKyhwPDwyKT4+Ml09YVtrKyhwPDwyKT4+Ml0scD1wKzF8MH13aGlsZSgoMHxwKSE9KDB8SHIpKTtrPTEscD1MZX1hW3VyKygoYXQ9MHxhW0c+PjJdKTw8''@;'; put 'put ''Myk+PjJdPUxlLGFbdXIrKGF0PDwzKSs0Pj4yXT1NLEE9QSs4fDB9aWYoISgwfGFbKE09bCs0MHwwKT4+Ml0pKWJyZWFrO2w9bCszMnwwfX13aGlsZSgwKTtpZihhW0E+PjJdPTAsIShBPTB8YVtMcj4+Ml0pKWJyZWFrO3c9QX1lbHNlIGlmKGt0fHwhKCgwfEEpIT0oMHxWZSkmMCE9KDB8KHc9''@;'; put 'put ''MHxhW0xyPj4yXSkpKSlicmVhaztpZihhdD1MZStifDAsKDB8KEE9MHxjOChMcixSZSw0KSkpPDEpe2lmKCgwfEEpPDApe3A9MTticmVhayBlfWI9MX1lbHNlIGI9QTtpZihydD1SZStifDAsMCE9KDB8aykmMCE9KDB8YVtidD4+Ml0pKXtpZigwfGFbVmU+PjJdKXtwZT0oMHwocT0wfGFbKEc9''@;'; put 'put ''MHxhW1N0Pj4yXSk+PjJdKSk+LTEsUj1WZSxBPUhlO2Rve0Q9Uis0fDA7dDpkb3tpZihwZSl7TT0wLGM9cTtkb3tpZihsPTB8YVtHKygoMXxNKTw8Mik+PjJdLCgwfGMpPj0oMHxIcil8fCgwfGFbKGs9MHxhW0Q+PjJdKSsobDw8Mik+PjJdKT09KDB8YVtmKyhsPDwyKT4+Ml0pJiYoMHxhW2sr''@;'; put 'put ''KGM8PDIpPj4yXSk8KDB8YVtmKyhjPDwyKT4+Ml0pKWJyZWFrIHQ7Yz0wfGFbRysoKE09TSsyfDApPDwyKT4+Ml19d2hpbGUoKDB8Yyk+LTEpO009RCxWaT03NX1lbHNlIE09RCxrPTB8YVtEPj4yXSxWaT03NX13aGlsZSgwKTs3NT09KDB8VmkpJiYoVmk9MCxhW0E+PjJdPWFbUj4+Ml0scWU9''@;'; put 'put ''MHxhWyhSZT1BKzR8MCk+PjJdLGFbUmU+PjJdPWssYVtNPj4yXT1xZSxBPUErOHwwKSxSPVIrOHwwfXdoaWxlKDAhPSgwfGFbUj4+Ml0pKX1lbHNlIEE9SGU7YVtBPj4yXT0wLHFlPVZlLGs9MH1lbHNlIHFlPUhlLEhlPVZlO2lmKE09MHxhW0hlPj4yXSlmb3IoZ2U9MCE9KDB8YXQpLGJlPTk1''@;'; put 'put ''PT0oMHx3KSxPZT0wPT0oMHxhdCksUmU9U24mMTA9PSgwfHcpLExlPSgwfGF0KTwxJnN0LHBlPUhlLGw9V2UsQT1xZTs7KXtpZigwfGFbKGM9TSs4fDApPj4yXSlmb3IocT1wZSs0fDAsRz1sLFI9Yzs7KXt0OmRve2lmKCgwfGFbTT4+Ml0pPj4+MDw9dz4+PjAmJigwfGFbTSs0Pj4yXSk+Pj4w''@;'; put 'put ''Pj13Pj4+MCl7bD0wfGFbKEQ9TSsyMHwwKT4+Ml07ZG97aWYoMHxsKXtpZighKDA9PSgxJmx8MCl8TGV8UmUpKXtsPUc7YnJlYWsgdH1pZigyJmx8MCYmISgwPT0oKFdlPTB8YVtMcj4+Ml0pfGZyfDApfFNuJjEwPT0oMHxXZSkpKXtsPUc7YnJlYWsgdH1kb3tpZigxNiZsfDApe2lmKGJlKXts''@;'; put 'put ''PUc7YnJlYWsgdH1pZigwfGJzKHcpKXtsPUc7YnJlYWsgdH1pZig5NT09KDB8KGw9MHxhW0xyPj4yXSkpKWJyZWFrO2lmKCEoMHxicyhsKSkpe2w9RzticmVhayB0fX19d2hpbGUoMCk7aWYoMzImKGw9MHxhW0Q+PjJdKSl7aWYoYmUpe2lmKDk1PT0oMHwobD0wfGFbTHI+PjJdKSkpe2w9Rzti''@;'; put 'put ''cmVhayB0fX1lbHNlIGlmKChXZT0wPT0oMHxicyh3KSkpfDk1PT0oMHwobD0wfGFbTHI+PjJdKSkpe2w9RzticmVhayB0fWlmKDB8YnMobCkpe2w9RzticmVhayB0fWw9MHxhW0Q+PjJdfWM9MHxhW0xyPj4yXTtkb3tpZigwIT0oMHxjKSZnZSYwIT0oNjQmbHwwKSl7aWYoYmU/bD0xOihsPTAh''@;'; put 'put ''PSgwfGJzKHcpKSxjPTB8YVtMcj4+Ml0pLDk1PT0oMHxjKSl7aWYobCl7bD1HO2JyZWFrIHR9YnJlYWt9aWYobF4wIT0oMHxicyhjKSkpYnJlYWs7bD1HO2JyZWFrIHR9fXdoaWxlKDApO2Rve2lmKDEyOCZhW0Q+PjJdfDApe2lmKE9lfDA9PSgwfChsPTB8YVtMcj4+Ml0pKSl7bD1HO2JyZWFr''@;'; put 'put ''IHR9aWYoYmU/Yz0xOihjPTAhPSgwfGJzKHcpKSxsPTB8YVtMcj4+Ml0pLDk1PT0oMHxsKSl7aWYoYylicmVhaztsPUc7YnJlYWsgdH1pZihjXjAhPSgwfGJzKGwpKSl7bD1HO2JyZWFrIHR9YnJlYWt9fXdoaWxlKDApO2w9MHxhW0Q+PjJdO2Rve2lmKDQmbCl7aWYoMiZhW0RyPj4yXXwwKWJy''@;'; put 'put ''ZWFrO2lmKCEoMHx1OCh3LDB8YVtNKzI0Pj4yXSkpKXtsPUc7YnJlYWsgdH1sPTB8YVtEPj4yXX19d2hpbGUoMCk7ZG97aWYoNCZsfDApe2lmKCEoMiZhW0RyPj4yXSl8fDB8dTgoV2U9MHxBZyh3KSwwfGFbKGw9TSsyNHwwKT4+Ml0pKWJyZWFrO2lmKCEoMHx1OChXZT0wfG92KHcpLDB8YVts''@;'; put 'put ''Pj4yXSkpKXtsPUc7YnJlYWsgdH19fXdoaWxlKDApO2lmKCEoOCZhW0Q+PjJdKSlicmVhaztpZigwfFokKDB8YVtNKzI4Pj4yXSx3LDImYVtEcj4+Ml0pKXtsPUc7YnJlYWsgdH19fXdoaWxlKDApO2lmKEV0KXtjPTB8YVtxPj4yXSxsPTA7ZG97YVtHKyhsPDwyKT4+Ml09YVtjKyhsPDwyKT4+''@;'; put 'put ''Ml0sbD1sKzF8MH13aGlsZSgoMHxsKSE9KDB8SHIpKX1sPTB8YVtNKzE2Pj4yXTtkb3tpZigwfGwpe2lmKCgwfChjPTB8YVtsPj4yXSkpPD0tMSlicmVhaztkb3soMHxjKTwoMHxIcikmJihhW0crKGM8PDIpPj4yXT1hdCksYz0wfGFbKGw9bCs0fDApPj4yXX13aGlsZSgoMHxjKT4tMSl9fXdo''@;'; put 'put ''aWxlKDApO2lmKCgwfGFbKGM9dXIrKChsPTB8YVtNKzEyPj4yXSk8PDMpfDApPj4yXSk+PSgwfGF0KSl7aWYoISgwfHokKEhyLDB8YVthbj4+Ml0sRyxjPTB8YVsobD0wfGFbdXIrKGw8PDMpKzQ+PjJdKT4+Ml0pKSl7bD1HO2JyZWFrfWlmKGFbbD4+Ml09RywoMHxhW1I+PjJdKSE9KDB8YVta''@;'; put 'put ''dD4+Ml0pKXtsPWM7YnJlYWt9aWYoIUV0KXtrPTEsbD1jLHA9YXQ7YnJlYWt9Zm9yKHA9MDs7KWlmKGFbZisocDw8Mik+PjJdPWFbRysocDw8Mik+PjJdLCgwfChwPXArMXwwKSk9PSgwfEhyKSl7az0xLGw9YyxwPWF0O2JyZWFrIHR9fWFbQT4+Ml09V2U9MHxhW1I+PjJdLEQ9MHxhWyhWZT1B''@;'; put 'put ''KzR8MCk+PjJdLGFbVmU+PjJdPUcsYVtjPj4yXT1hdCxhW3VyKyhsPDwzKSs0Pj4yXT1WZTtkb3tpZigoMHxhW1p0Pj4yXSk9PSgwfFdlKSl7aWYoLTE9PSgwfHApKXtpZighRXQpe3A9YXQsaz0xO2JyZWFrfXA9MH1lbHNle2lmKCFFdHx8KDB8YVtHPj4yXSk+KDB8YVtmPj4yXSkpYnJlYWs7''@;'; put 'put ''cD0wfWRve2FbZisocDw8Mik+PjJdPWFbRysocDw8Mik+PjJdLHA9cCsxfDB9d2hpbGUoKDB8cCk8KDB8SHIpKTtwPWF0LGs9MX19d2hpbGUoMCk7bD1ELEE9QSs4fDB9ZWxzZSBsPUd9d2hpbGUoMCk7aWYoISgwfGFbKFI9TSs0MHwwKT4+Ml0pKWJyZWFrO009TSszMnwwLEc9bH1pZighKE09''@;'; put 'put ''MHxhWyhwZT1wZSs4fDApPj4yXSkpe009bDticmVha319ZWxzZSBNPVdlLEE9cWU7YVtBPj4yXT0wLFJlPXJ0LExlPWF0LFdlPU0sVmU9cWV9YVttPj4yXT1wLHA+Pj49MzF9fXdoaWxlKDApO0Z0KGwwKX1lbHNlIHA9MTI7cmV0dXJuIGxlPU9pLDB8cH0oYixjLEEsbSxNKSxsfHxqJCh3LHAs''@;'; put 'put ''MHxhW2s+PjJdLGIsQSwwfGFbTT4+Ml0pLEEmJkZ0KGYpKSxsZT1SLDB8bH1mdW5jdGlvbiBqJChsLGMsZixwLG0sQSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MDtpZigwPT0oOCYoZnw9MCl8MCkmKDB8KEF8PTApKT4tMSYmKFI9MHxh''@;'; put 'put ''W3ArMTY+PjJdLEQ9MCE9KDB8bCkmMCE9KDB8KEc9MHxhW3ArMjg+PjJdKSkpKXtNPTB8YVtwKzQ4Pj4yXSxrPTA7ZG97YVsodz1jKyhrPDwzKXwwKT4+Ml09Yj0oMHwoZj0wfGFbUisoMTIqa3wwKT4+Ml0pKT09KDB8TSk/QTowfGFbbSsoZjw8Mik+PjJdLGFbKHA9Yysoazw8MykrNHwwKT4+''@;'; put 'put ''Ml09Zj0oMHwoZj0wfGFbUisoMTIqa3wwKSs0Pj4yXSkpPT0oMHxNKT9BOjB8YVttKyhmPDwyKT4+Ml0sLTE9PSgwfGYpfC0xPT0oMHxiKSYmKGFbcD4+Ml09LTEsYVt3Pj4yXT0tMSksaz1rKzF8MH13aGlsZShrPj4+MDxsPj4+MCZrPj4+MDxHPj4+MCk7aWYoRCl7Zj0wO2Rve2lmKGI9Yyso''@;'; put 'put ''Zjw8MykrNHwwLDB8KGs9MHxhW1IrKDEyKmZ8MCkrOD4+Ml0pJiYoMHwocT0wfGFbaz4+Ml0pKT4tMSl7dz0wLG09cSxwPTB8YVsoTT1jKyhmPDwzKXwwKT4+Ml07ZG97KDB8cCk+PSgwfGFbYysobTw8Myk+PjJdKSYmKDB8YVtiPj4yXSk8PSgwfGFbYysobTw8MykrND4+Ml0pfHwoYVtiPj4y''@;'; put 'put ''XT0tMSxhW00+PjJdPS0xLHA9LTEpLG09MHxhW2srKCh3PXcrMXwwKTw8Mik+PjJdfXdoaWxlKCgwfG0pPi0xKX1mPWYrMXwwfXdoaWxlKGY+Pj4wPGw+Pj4wJmY+Pj4wPEc+Pj4wKX1lbHNlIGY9MH1lbHNlIGY9MDtmPj4+MDxsPj4+MCYmdTIoYysoZjw8Myl8MCwtMSxsLWY8PDN8MCl9ZnVu''@;'; put 'put ''Y3Rpb24gWiQobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MDtwPTB8YVsobHw9MCk+PjJdO2U6ZG97aWYocClmb3IobT0wPT0oMHxmKSxmPXA7Oyl7aWYobSl7aWYoMHx1OChjLGYpKXtmPTE7YnJlYWsgZX19ZWxzZXtpZigwfHU4KHA9MHxvdihjKSwwfGFbbD4+Ml0pKXtmPTE7YnJlYWsg''@;'; put 'put ''ZX1pZigwfHU4KHA9MHxBZyhjKSwwfGFbbD4+Ml0pKXtmPTE7YnJlYWsgZX19aWYoIShmPTB8YVsobD1sKzR8MCk+PjJdKSl7Zj0wO2JyZWFrfX1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIHokKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAs''@;'; put 'put ''dz0wO2U6ZG97aWYoKDB8bCk+MClmb3IobT0wOzspe2lmKHc9MHxhW2YrKG08PDIpPj4yXSxBPTB8YVtwKyhtPDwyKT4+Ml0sMHxhW2MrKG08PDIpPj4yXSl7aWYoKDB8dyk+KDB8QSkpe209MTticmVhayBlfWlmKCgwfHcpPCgwfEEpKXttPTA7YnJlYWsgZX19ZWxzZXtpZigoMHx3KTwoMHxB''@;'; put 'put ''KSl7bT0xO2JyZWFrIGV9aWYoKDB8dyk+KDB8QSkpe209MDticmVhayBlfX1pZigoMHwobT1tKzF8MCkpPj0oMHxsKSl7bT0wO2JyZWFrfX1lbHNlIG09MH13aGlsZSgwKTtyZXR1cm4gMHxtfWZ1bmN0aW9uIEckKGwsYyxmLHApe2x8PTAscHw9MDt2YXIgayxELG09MCxBPTAsdz0wO2s9MHxB''@;'; put 'put ''cihmfD0wLGN8PTApLGY9MD09KDB8Yyk/MDpmLGZlWyhtPXArNzR8MCk+PjBdPTI1NSsoQT0wfGZlW20+PjBdKXxBLHc9KEQ9KDB8YVtwKzg+PjJdKS0oQT0wfGFbKG09cCs0fDApPj4yXSl8MCk+Pj4wPGs+Pj4wP0Q6aywoMHxEKT4wPyhnbygwfGwsMHxBLDB8dyksYVttPj4yXT1BK3csbT1r''@;'; put 'put ''LXd8MCxsPWwrd3wwKTptPWs7ZTpkb3tpZihtKXtmb3Iodz1wKzMyfDA7ISgwfGQkKHApfHwoQT0wfG1pWzYzJmFbdz4+Ml1dKHAsbCxtKSwoQSsxfDApPj4+MDwyKSk7KXtpZighKG09bS1BfDApKXsxMzticmVhayBlfWw9bCtBfDB9Zj0oKGstbXwwKT4+PjApLyhjPj4+MCl8MH1lbHNlIDEz''@;'; put 'put ''fXdoaWxlKDApO3JldHVybiAwfGZ9ZnVuY3Rpb24gWSQobCl7cmV0dXJuIDB8YVsobHw9MCkrNjA+PjJdfWZ1bmN0aW9uIGhmZSgpe3ZhciBjLG0sQSx3LGssbD0wLGY9MCxwPTAsYj0wO2s9bGUsbGU9bGUrNDh8MCx3PWsrMjR8MCxBPWsrMTZ8MCxtPWssZj0xNTM2ODYscD0yMCsobD1jPWsr''@;'; put 'put ''Mjh8MCl8MDtkb3tmZVtsPj4wXT0wfGZlW2Y+PjBdLGw9bCsxfDAsZj1mKzF8MH13aGlsZSgoMHxsKTwoMHxwKSk7Zm9yKGY9YysxM3wwLGw9MDs7KXtpZihDY2UoZiksYVttPj4yXT1jLGFbbSs0Pj4yXT0zMjk2MixhW20rOD4+Ml09Mzg0LCgwfChwPTB8dWgoMHxCOCg1LDB8bSkpKSk+LTEp''@;'; put 'put ''e2I9NDticmVha31pZighKCgwfGwpPDk5KSl7bD0wO2JyZWFrfWw9bCsxfDB9cmV0dXJuIDQ9PSgwfGIpJiYoYVtBPj4yXT1jLHBmKDEwLDB8QSksKGw9MHx4JChwLDE1MzcwNikpfHwoYVt3Pj4yXT1wLEp1KDYsMHx3KSxsPTApKSxsZT1rLDB8bH1mdW5jdGlvbiBXaihsKXt2YXIgYz0wLGY9''@;'; put 'put ''MCxwPTA7bHw9MCxwPTM7ZG97aWYoMz09KDB8cCkpe2lmKChmPTB8YVsoYz1sKzR8MCk+PjJdKT4+PjA8KDB8YVtsKzg+PjJdKT4+PjApe2FbYz4+Ml09ZisxLGM9MHxYdFtmPj4wXTticmVha31jPTB8bUwobCk7YnJlYWt9fXdoaWxlKDApO3JldHVybiAwfGN9ZnVuY3Rpb24gWWoobCxjKXts''@;'; put 'put ''fD0wO3ZhciBmPTAscD0wLG09MCxBPTAsaz0wO2N8PTAsaz0zO2Rve2lmKDM9PSgwfGspKXtpZihwPTI1NSZsLCgwfChmPTI1NSZsKSkhPSgwfGZlW2MrNzU+PjBdKSYmKEE9MHxhWyhtPWMrMjB8MCk+PjJdKT4+PjA8KDB8YVtjKzE2Pj4yXSk+Pj4wKXthW20+PjJdPUErMSxmZVtBPj4wXT1w''@;'; put 'put ''O2JyZWFrfWY9MHxGaihjLGwpfX13aGlsZSgwKTtyZXR1cm4gMHxmfWZ1bmN0aW9uIGRmZShsKXtyZXR1cm4gMHxmdW5jdGlvbiBjZmUobCl7cmV0dXJuIDB8ZnVuY3Rpb24gVyQobCl7dmFyIGM9MDtyZXR1cm4gYz0xMjgmYVsobHw9MCk+PjJdJiYoMHxhW2wrMjA+PjJdKT4+PjA+KDB8YVts''@;'; put 'put ''KzI4Pj4yXSk+Pj4wPzI6MSwoMHwoYz0wfG1pWzYzJmFbbCs0MD4+Ml1dKGwsMCxjKSkpPj0wJiYoYz1jLSgwfGFbbCs4Pj4yXSkrKDB8YVtsKzQ+PjJdKSsoMHxhW2wrMjA+PjJdKS0oMHxhW2wrMjg+PjJdKXwwKSwwfGN9KGx8PTApfShsfD0wKX1mdW5jdGlvbiBpdyhsLGMsZixwKXt2YXIg''@;'; put 'put ''bSxBO3JldHVybiBjfD0wLHB8PTAsZj0wfGZ1bmN0aW9uIGdmZShsLGMpe3ZhciBmLHAsQSxtPTA7cmV0dXJuIGw9KChmPTB8QXIobT02NTUzNSYoY3w9MCksQT02NTUzNSYobHw9MCkpKT4+PjE2KSsoMHxBcihtLHA9bD4+PjE2KSl8MCxjPTB8QXIobT1jPj4+MTYsQSksRG49KGw+Pj4xNikr''@;'; put 'put ''KDB8QXIobSxwKSkrKCgoNjU1MzUmbCkrY3wwKT4+PjE2KXwwLGwrYzw8MTZ8NjU1MzUmZnwwfShtPWx8PTAsQT1mfD0wKSxsPURuLERuPSgwfEFyKGMsQSkpKygwfEFyKHAsbSkpK2x8MCZsLDB8Zn1mdW5jdGlvbiB6bChsLGMsZixwKXtyZXR1cm4gRG49KGN8PTApKyhwfD0wKSsoKGY9KGx8''@;'; put 'put ''PTApKyhmfD0wKT4+PjApPj4+MDxsPj4+MHwwKT4+PjAsMHxmfWZ1bmN0aW9uIFNwKGwsYyxmLHApe3JldHVybiBEbj1wPShjfD0wKS0ocHw9MCktKChmfD0wKT4+PjA+KGx8PTApPj4+MHwwKT4+PjAsMHxsLWY+Pj4wfWZ1bmN0aW9uIFUkKGwpe3ZhciBjPTA7cmV0dXJuKDB8KGM9MHxmZVts''@;'; put 'put ''cysoMjU1JihsfD0wKSk+PjBdKSk8OD8wfGM6KDB8KGM9MHxmZVtscysobD4+OCYyNTUpPj4wXSkpPDg/Yys4fDA6KDB8KGM9MHxmZVtscysobD4+MTYmMjU1KT4+MF0pKTw4P2MrMTZ8MDoyNCsoMHxmZVtscysobD4+PjI0KT4+MF0pfDB9ZnVuY3Rpb24gUSQobCxjLGYscCxtKXttfD0wO3Zh''@;'; put 'put ''ciBBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wO2lmKEQ9bHw9MCx3PWZ8PTAsYj1HPXB8PTAsIShNPWs9Y3w9MCkpcmV0dXJuIEE9MCE9KDB8bSksYj9BPyhhW20+PjJdPTB8bCxhW20rND4+Ml09MCZjLERuPUc9MCwwfChtPTApKTooRG49Rz0wLDB8KG09MCkpOihB''@;'; put 'put ''JiYoYVttPj4yXT0oRD4+PjApJSh3Pj4+MCksYVttKzQ+PjJdPTApLERuPUc9MCwwfChtPShEPj4+MCkvKHc+Pj4wKT4+PjApKTtBPTA9PSgwfGIpO2Rve2lmKHcpe2lmKCFBKXtpZigoQT0oMHxBZCgwfGIpKS0oMHxBZCgwfE0pKXwwKT4+PjA8PTMxKXt3PVI9QSsxfDAsbD1EPj4+KFI+Pj4w''@;'; put 'put ''KSYoYz1BLTMxPj4zMSl8TTw8KGI9MzEtQXwwKSxjJj1NPj4+KFI+Pj4wKSxBPTAsYj1EPDxiO2JyZWFrfXJldHVybiBtPyhhW20+PjJdPTB8bCxhW20rND4+Ml09a3wwJmMsRG49Rz0wLDB8KG09MCkpOihEbj1HPTAsMHwobT0wKSl9aWYoKEE9dy0xfDApJnd8MCl7dz1iPTMzKygwfEFkKDB8''@;'; put 'put ''dykpLSgwfEFkKDB8TSkpfDAsbD0oUj0zMi1ifDApLTE+PjMxJk0+Pj4oKHE9Yi0zMnwwKT4+PjApfChNPDxSfEQ+Pj4oYj4+PjApKSYoYz1xPj4zMSksYyY9TT4+PihiPj4+MCksQT1EPDwocGU9NjQtYnwwKSYoaz1SPj4zMSksYj0oTTw8cGV8RD4+PihxPj4+MCkpJmt8RDw8UiZiLTMzPj4z''@;'; put 'put ''MTticmVha31yZXR1cm4gMHxtJiYoYVttPj4yXT1BJkQsYVttKzQ+PjJdPTApLDE9PSgwfHcpPyhEbj1xPWt8MCZjLDB8KHBlPTB8bCkpOihwZT0wfFUkKDB8dyksRG49cT1NPj4+KHBlPj4+MCl8MCwwfChwZT1NPDwzMi1wZXxEPj4+KHBlPj4+MCl8MCkpfWlmKEEpcmV0dXJuIDB8bSYmKGFb''@;'; put 'put ''bT4+Ml09KE0+Pj4wKSUodz4+PjApLGFbbSs0Pj4yXT0wKSxEbj1xPTAsMHwoTT4+PjApLyh3Pj4+MCk+Pj4wO2lmKCFEKXJldHVybiAwfG0mJihhW20+PjJdPTAsYVttKzQ+PjJdPShNPj4+MCklKGI+Pj4wKSksRG49cT0wLDB8KE0+Pj4wKS8oYj4+PjApPj4+MDtpZighKChBPWItMXwwKSZi''@;'; put 'put ''KSlyZXR1cm4gMHxtJiYoYVttPj4yXT0wfGwsYVttKzQ+PjJdPUEmTXwwJmMpLHE9MCxwZT1NPj4+KCgwfFUkKDB8YikpPj4+MCksRG49cSwwfHBlO2lmKChBPSgwfEFkKDB8YikpLSgwfEFkKDB8TSkpfDApPj4+MDw9MzApe3c9Yz1BKzF8MCxsPU08PChiPTMxLUF8MCl8RD4+PihjPj4+MCks''@;'; put 'put ''Yz1NPj4+KGM+Pj4wKSxBPTAsYj1EPDxiO2JyZWFrfXJldHVybiBtPyhhW20+PjJdPTB8bCxhW20rND4+Ml09a3wwJmMsRG49cT0wLDB8KHBlPTApKTooRG49cT0wLDB8KHBlPTApKX13aGlsZSgwKTtpZih3KXtNPTB8emwoMHwoUj0wfGYpLDB8KEQ9R3wwJnApLC0xLC0xKSxmPURuLGs9Yixi''@;'; put 'put ''PTA7ZG97cD1rLGs9QT4+PjMxfGs8PDEsQT1ifEE8PDEsU3AoMHxNLDB8ZiwwfChwPWw8PDF8cD4+PjMxfDApLDB8KEc9bD4+PjMxfGM8PDF8MCkpLGI9MSYocT0ocGU9RG4pPj4zMXwoKDB8cGUpPDA/LTE6MCk8PDEpLGw9MHxTcCgwfHAsMHxHLHEmUnwwLCgoKDB8cGUpPDA/LTE6MCk+PjMx''@;'; put 'put ''fCgoMHxwZSk8MD8tMTowKTw8MSkmRHwwKSxjPURuLHc9dy0xfDB9d2hpbGUoMCE9KDB8dykpO009ayxrPTB9ZWxzZSBNPWIsaz0wLGI9MDtyZXR1cm4gdz0wLDB8bSYmKGFbbT4+Ml09bCxhW20rND4+Ml09YyksRG49cT0oMHxBKT4+PjMxfChNfHcpPDwxfDAmKHc8PDF8QT4+PjMxKXxrLC0y''@;'; put 'put ''JihBPDwxfDApfGJ8MH1mdW5jdGlvbiBvdyhsLGMsZixwKXtyZXR1cm4gMHxRJChsfD0wLGN8PTAsZnw9MCxwfD0wLDApfWZ1bmN0aW9uIGlTKGwsYyxmLHApe3ZhciBtLEE7cmV0dXJuIEE9bGUsbGU9bGUrMTZ8MCxRJChsfD0wLGN8PTAsZnw9MCxwfD0wLG09MHxBKSxsZT1BLERuPTB8YVtt''@;'; put 'put ''KzQ+PjJdLDB8YVttPj4yXX1mdW5jdGlvbiBMTChsLGMsZil7cmV0dXJuIGN8PTAsKDB8KGZ8PTApKTwzMj8oRG49Yz4+ZiwobHw9MCk+Pj5mfChjJigxPDxmKS0xKTw8MzItZik6KERuPSgwfGMpPDA/LTE6MCxjPj5mLTMyfDApfWZ1bmN0aW9uIHdsKGwsYyxmKXtyZXR1cm4gY3w9MCwoMHwo''@;'; put 'put ''Znw9MCkpPDMyPyhEbj1jPj4+ZiwobHw9MCk+Pj5mfChjJigxPDxmKS0xKTw8MzItZik6KERuPTAsYz4+PmYtMzJ8MCl9ZnVuY3Rpb24gWm8obCxjLGYpe3JldHVybiBsfD0wLCgwfChmfD0wKSk8MzI/KERuPShjfD0wKTw8ZnwobCYoMTw8ZiktMTw8MzItZik+Pj4zMi1mLGw8PGYpOihEbj1s''@;'; put 'put ''PDxmLTMyLDApfWZ1bmN0aW9uIG1mZShsKXtyZXR1cm4oMjU1JihsfD0wKSk8PDh8bD4+OCYyNTV8MH1mdW5jdGlvbiBEcyhsKXtyZXR1cm4oMjU1JihsfD0wKSk8PDI0fChsPj44JjI1NSk8PDE2fChsPj4xNiYyNTUpPDw4fGw+Pj4yNHwwfWZ1bmN0aW9uIFBmKGwsYyxmLHApe2N8PTAsZnw9''@;'; put 'put ''MCxwfD0wO3ZhciBtPTA7Zm9yKGFbKGx8PTApPj4yXT1pMj1pMisxfDA7KDB8bSk8KDB8cCk7KXtpZighKDB8YVtmKyhtPDwzKT4+Ml0pKXJldHVybiBhW2YrKG08PDMpPj4yXT1pMixhW2YrKDQrKG08PDMpKT4+Ml09YyxhW2YrKDgrKG08PDMpKT4+Ml09MCxEbj1wLDB8ZjttPW0rMXwwfXJl''@;'; put 'put ''dHVybiBmPTB8UGYoMHxsLDB8YywwfChmPTB8VWEoMHxmLDgqKDErKHA9MipwfDApfDApfDApKSwwfHApLERuPXAsMHxmfWZ1bmN0aW9uIGdpKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtmb3IodmFyIHA9MCxtPTA7KDB8bSk8KDB8ZikmJihwPTB8YVtjKyhtPDwzKT4+Ml0pOyl7aWYoKDB8cCk9''@;'; put 'put ''PSgwfGwpKXJldHVybiAwfGFbYysoNCsobTw8MykpPj4yXTttPW0rMXwwfXJldHVybiAwfWZ1bmN0aW9uIGdvKGwsYyxmKXtsfD0wLGN8PTA7dmFyIG0sQSxwPTA7aWYoKDB8KGZ8PTApKT49ODE5MilyZXR1cm4gMHxubSgwfGwsMHxjLDB8Zik7aWYoQT0wfGwsbT1sK2Z8MCwoMyZsKT09KDMm''@;'; put 'put ''Yykpe2Zvcig7MyZsOyl7aWYoIWYpcmV0dXJuIDB8QTtmZVtsPj4wXT0wfGZlW2M+PjBdLGw9bCsxfDAsYz1jKzF8MCxmPWYtMXwwfWZvcihwPShmPS00Jm18MCktNjR8MDsoMHxsKTw9KDB8cCk7KWFbbD4+Ml09YVtjPj4yXSxhW2wrND4+Ml09YVtjKzQ+PjJdLGFbbCs4Pj4yXT1hW2MrOD4+''@;'; put 'put ''Ml0sYVtsKzEyPj4yXT1hW2MrMTI+PjJdLGFbbCsxNj4+Ml09YVtjKzE2Pj4yXSxhW2wrMjA+PjJdPWFbYysyMD4+Ml0sYVtsKzI0Pj4yXT1hW2MrMjQ+PjJdLGFbbCsyOD4+Ml09YVtjKzI4Pj4yXSxhW2wrMzI+PjJdPWFbYyszMj4+Ml0sYVtsKzM2Pj4yXT1hW2MrMzY+PjJdLGFbbCs0MD4+''@;'; put 'put ''Ml09YVtjKzQwPj4yXSxhW2wrNDQ+PjJdPWFbYys0ND4+Ml0sYVtsKzQ4Pj4yXT1hW2MrNDg+PjJdLGFbbCs1Mj4+Ml09YVtjKzUyPj4yXSxhW2wrNTY+PjJdPWFbYys1Nj4+Ml0sYVtsKzYwPj4yXT1hW2MrNjA+PjJdLGw9bCs2NHwwLGM9Yys2NHwwO2Zvcig7KDB8bCk8KDB8Zik7KWFbbD4+''@;'; put 'put ''Ml09YVtjPj4yXSxsPWwrNHwwLGM9Yys0fDB9ZWxzZSBmb3IoZj1tLTR8MDsoMHxsKTwoMHxmKTspZmVbbD4+MF09MHxmZVtjPj4wXSxmZVtsKzE+PjBdPTB8ZmVbYysxPj4wXSxmZVtsKzI+PjBdPTB8ZmVbYysyPj4wXSxmZVtsKzM+PjBdPTB8ZmVbYyszPj4wXSxsPWwrNHwwLGM9Yys0fDA7''@;'; put 'put ''Zm9yKDsoMHxsKTwoMHxtKTspZmVbbD4+MF09MHxmZVtjPj4wXSxsPWwrMXwwLGM9YysxfDA7cmV0dXJuIDB8QX1mdW5jdGlvbiByMShsLGMsZil7dmFyIHA9MDtpZigoMHwoY3w9MCkpPCgwfChsfD0wKSkmKDB8bCk8KGMrKGZ8PTApfDApKXtmb3IocD1sLGM9YytmfDAsbD1sK2Z8MDsoMHxm''@;'; put 'put ''KT4wOylmPWYtMXwwLGZlWyhsPWwtMXwwKT4+MF09MHxmZVsoYz1jLTF8MCk+PjBdO2w9cH1lbHNlIGdvKGwsYyxmKTtyZXR1cm4gMHxsfWZ1bmN0aW9uIHUyKGwsYyxmKXtjfD0wO3ZhciBBLHA9MCxtPTAsdz0wO2lmKEE9KGx8PTApKyhmfD0wKXwwLGMmPTI1NSwoMHxmKT49Njcpe2Zvcig7''@;'; put 'put ''MyZsOylmZVtsPj4wXT1jLGw9bCsxfDA7Zm9yKG09KHA9LTQmQXwwKS02NHwwLHc9Y3xjPDw4fGM8PDE2fGM8PDI0OygwfGwpPD0oMHxtKTspYVtsPj4yXT13LGFbbCs0Pj4yXT13LGFbbCs4Pj4yXT13LGFbbCsxMj4+Ml09dyxhW2wrMTY+PjJdPXcsYVtsKzIwPj4yXT13LGFbbCsyND4+Ml09''@;'; put 'put ''dyxhW2wrMjg+PjJdPXcsYVtsKzMyPj4yXT13LGFbbCszNj4+Ml09dyxhW2wrNDA+PjJdPXcsYVtsKzQ0Pj4yXT13LGFbbCs0OD4+Ml09dyxhW2wrNTI+PjJdPXcsYVtsKzU2Pj4yXT13LGFbbCs2MD4+Ml09dyxsPWwrNjR8MDtmb3IoOygwfGwpPCgwfHApOylhW2w+PjJdPXcsbD1sKzR8MH1m''@;'; put 'put ''b3IoOygwfGwpPCgwfEEpOylmZVtsPj4wXT1jLGw9bCsxfDA7cmV0dXJuIEEtZnwwfWZ1bmN0aW9uIHkyKGwpe3ZhciBjLGY7cmV0dXJuKDB8KGY9MTUrKGx8PTApJi0xNnwwKSk+MCYoMHwobD0oYz0wfGFbQW8+PjJdKStmfDApKTwoMHxjKXwoMHxsKTwwPyhmZigpLHFwKDEyKSwtMSk6KGFb''@;'; put 'put ''QW8+PjJdPWwsKDB8bCk+KDB8S3AoKSkmJjA9PSgwfHlkKCkpPyhhW0FvPj4yXT1jLHFwKDEyKSwtMSk6MHxjKX1mdW5jdGlvbiBKaihsLGMsZil7cmV0dXJuIGw9K2wsYz0rYyxmPStmLHcyKDEpLDB9ZnVuY3Rpb24gYzIobCl7cmV0dXJuIHcyKDQpLDB9ZnVuY3Rpb24gSzEobCxjKXtyZXR1''@;'; put 'put ''cm4gdzIoNSksMH1mdW5jdGlvbiBSTChsLGMsZixwKXtyZXR1cm4gZj0rZixwPStwLHcyKDYpLDB9ZnVuY3Rpb24gTTIobCxjLGYpe3JldHVybiB3Mig3KSwwfWZ1bmN0aW9uIHBhKGwsYyxmLHApe3JldHVybiB3Mig4KSwwfWZ1bmN0aW9uIEpvKGwsYyxmLHAsbSl7cmV0dXJuIHcyKDkpLDB9''@;'; put 'put ''ZnVuY3Rpb24gWGoobCxjLGYscCxtLEEsdyxiLGssTSl7cmV0dXJuIHcyKDExKSwwfWZ1bmN0aW9uIGZ2KCl7dzIoMTIpfWZ1bmN0aW9uIGY4KGwpe3cyKDEzKX1mdW5jdGlvbiBMcyhsLGMpe3cyKDE0KX1mdW5jdGlvbiBNMChsLGMsZil7dzIoMTUpfWZ1bmN0aW9uIGZjKGwsYyxmLHAsbSxB''@;'; put 'put ''KXtwPStwLG09K20sdzIoMTYpfWZ1bmN0aW9uIE1wKGwsYyxmLHAsbSl7dzIoMTgpfWZ1bmN0aW9uIHN3KGwsYyxmLHAsbSxBKXt3MigxOSl9dmFyIGg4PVtmdW5jdGlvbiBlcSgpe3JldHVybiB3MigwKSwwfSxmdW5jdGlvbiBzRCgpe3ZhciBsLGM7cmV0dXJuIGM9bGUsbGU9bGUrMTZ8MCxS''@;'; put 'put ''bigwfChsPWMpKSxsZT1jLC4wMTY2NjY2NjY2NjY2NjY2NjYqKygoMHxhW2wrND4+Ml0pKygwfGFbbD4+Ml0pLSgwfGFbNDczMTFdKS0oMHxhWzQ3MzEyXSl8MCl9XSx1dz1bSmosZnVuY3Rpb24gWFUobCxjLGYpe3JldHVybiBsPStsLGM9K2MsLjUqK2Z9LGZ1bmN0aW9uIEpVKGwsYyxmKXty''@;'; put 'put ''ZXR1cm4uNSooZj0rZikqKDEtKGw9K2wpLytjKX0sZnVuY3Rpb24gS1UobCxjLGYpe3JldHVybi41KihmPStmKSooKGw9K2wpLytjKX0sZnVuY3Rpb24gU29lKGwsYyxmKXtyZXR1cm4rKChjPShsPStsKS8oYz0rYykpPD0uNT9jOjEtYykqK2Z9LEpqLEpqLEpqXSxycT1bZnVuY3Rpb24gdHEo''@;'; put 'put ''bCl7cmV0dXJuIHcyKDIpLDB9LENOXSwkMT1bZnVuY3Rpb24gbnEoKXtyZXR1cm4gdzIoMyksMH0sZnVuY3Rpb24gZDJlKCl7dmFyIGw9MDtyZXR1cm4obD0wfGFbNDY4NDddKT4+PjA8KDB8YVs0Njg0OF0pPj4+MD8oYVs0Njg0N109bCs0LGw9MHxhW2w+PjJdKTpsPTAsMHxsfSxmdW5jdGlv''@;'; put 'put ''biBLb2UoKXt2YXIgYixrLE0sbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wO2ZvcihtPTB8YVs0NzI1NV0saz0wfGFbNDcyNTZdLE09MHxhWzQ3MjExXSxjPTAsbD0wLEE9Yj0wfGFbNDcyNjFdOzspe2lmKCgwfEEpPj0oMHxtKSl7dz04O2JyZWFrfWlmKCgwfChmPTB8YVsxNjArKDB8YVsx''@;'; put 'put ''NisocD0wfGFbaysoQTw8Mik+PjJdKT4+Ml0pPj4yXSkpPDAmJihsPWw/KDB8YVsxNjArKDB8YVtsKzE2Pj4yXSk+PjJdKT4oMHxmKT9wOmw6cCwoMHwoYz1jKzF8MCkpPj0oMHxNKSkpYnJlYWs7YVs0NzI2MV09cD1BKzF8MCxBPXB9aWYoOD09KDB8dykmJigwfGIpPjApe2ZvcihtPTA7ISgo''@;'; put 'put ''MHxtKT49KDB8Yil8fChmPTB8YVtrKyhtPDwyKT4+Ml0scD0wfGFbMTYwKygwfGFbZisxNj4+Ml0pPj4yXSwoMHxwKTwwJiYobD1sPygwfGFbMTYwKygwfGFbbCsxNj4+Ml0pPj4yXSk+KDB8cCk/ZjpsOmYsYz1jKzF8MCwoMHxjKT49KDB8TSkpKSk7KW09bSsxfDA7YVs0NzI2MV09bX1yZXR1''@;'; put 'put ''cm4gMHxsfSx4N10sX289W2MyLGZ1bmN0aW9uIEEwZShsKXtsfD0wO2Zvcih2YXIgZixwLGM9MDtjPTB8YVsxMTYrKDB8YVtsKzE2Pj4yXSk+PjJdOylsPWM7cmV0dXJuIDB8KCgwfChwPTB8YVsyMzIrKGY9MHxhWzE2KygwfGFbKDI9PSgwfChjPTMmYVtsPj4yXSkpP2w6bCstNDh8MCkrNDA+''@;'; put 'put ''PjJdKT4+Ml0pPj4yXSkpPD0oMHwoYz0wfGFbMjMyKyhsPTB8YVsxNisoMHxhWygzPT0oMHxjKT9sOmwrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkpPygwfHApPCgwfGMpPzE6KDB8YVtmKzIzNj4+Ml0pPCgwfGFbbCsyMzY+PjJdKSYxOjApfSxXQyxmdW5jdGlvbiBHTihsKXtyZXR1cm4gMH0s''@;'; put 'put ''ZnVuY3Rpb24gUkoobCl7cmV0dXJuIDB9LGZ1bmN0aW9uIFgobCl7cmV0dXJuIDB8U0wobHw9MCl9LGZ1bmN0aW9uIEZlKGwpe3JldHVybiAwfSxmdW5jdGlvbiBqTShsKXtyZXR1cm4gMH0sZnVuY3Rpb24gbVIobCl7cmV0dXJuIDB9LGZ1bmN0aW9uIGlFKGwpe3JldHVybiAxfSxmdW5jdGlv''@;'; put 'put ''biB2ZihsKXt2YXIgYztyZXR1cm4gZmVbNTM2KyhsfD0wKT4+MF09MCxfWyhjPWwrMzM2fDApPj4zXT0rX1tjPj4zXSsxMC8rX1tsKzM1Mj4+M10sZmVbbCs1Mzc+PjBdPTEsMH0sZnVuY3Rpb24gb0UobCl7dmFyIGM7cmV0dXJuIGZlWzUzNisobHw9MCk+PjBdPTAsX1soYz1sKzMzNnwwKT4+''@;'; put 'put ''M109K19bYz4+M10tMTAvK19bbCszNTI+PjNdLGZlW2wrNTM3Pj4wXT0xLDB9LGZ1bmN0aW9uIHczKGwpe3ZhciBjO3JldHVybiBmZVs1MzYrKGx8PTApPj4wXT0wLF9bKGM9bCszNDR8MCk+PjNdPStfW2M+PjNdLTEwLytfW2wrMzUyPj4zXSxmZVtsKzUzNz4+MF09MSwwfSxmdW5jdGlvbiBw''@;'; put 'put ''bShsKXt2YXIgYztyZXR1cm4gZmVbNTM2KyhsfD0wKT4+MF09MCxfWyhjPWwrMzQ0fDApPj4zXT0rX1tjPj4zXSsxMC8rX1tsKzM1Mj4+M10sZmVbbCs1Mzc+PjBdPTEsMH0sZnVuY3Rpb24gYUUobCl7dmFyIGM7cmV0dXJuIGZlWzUzNisobHw9MCk+PjBdPTAsX1soYz1sKzM1MnwwKT4+M109''@;'; put 'put ''MS4xKitfW2M+PjNdLGZlW2wrNTM3Pj4wXT0xLDB9LGZ1bmN0aW9uIGxFKGwpe3ZhciBjO3JldHVybiBmZVs1MzYrKGx8PTApPj4wXT0wLF9bKGM9bCszNTJ8MCk+PjNdPS45MDkwOTA5MDkwOTA5MDkxKitfW2M+PjNdLGZlW2wrNTM3Pj4wXT0xLDB9LGZ1bmN0aW9uIHNFKGwpe3ZhciBjPTAs''@;'; put 'put ''Zj0wLHA9MCxtPTAsQT0wO3JldHVybiBmZVsoZj01MzYrKGx8PTApfDApPj4wXT0xJihjPTA9PSgwfGZlW2Y+PjBdKSksYyYmKF9bbCszNTI+PjNdPSgocD0oQT0rKChjPTB8YVtsKzQ0OD4+Ml0pPj4+MCkpLysoMHxjKTwobT0rKChmPTB8YVtsKzQ1Mj4+Ml0pPj4+MCkpLysoMHxmKSk/QTpt''@;'; put 'put ''KS8rKDB8KHA/YzpmKSksYVsoZj1sKzMzNnwwKT4+Ml09MCxhW2YrND4+Ml09MCxhW2YrOD4+Ml09MCxhW2YrMTI+PjJdPTAsZmVbbCs1Mzc+PjBdPTEpLDB9LGZ1bmN0aW9uIHdBZShsKXt2YXIgYyxmO3JldHVybiBjPWxlLGxlPWxlKzE2fDAsYVsoZj1jKT4+Ml09MHx0JCgwfGFbNjArKGx8''@;'; put 'put ''PTApPj4yXSksbD0wfHVoKDB8SnUoNiwwfGYpKSxsZT1jLDB8bH0sZnVuY3Rpb24geHMobCl7cmV0dXJuIGFbNDY2NTRdPWx8PTAsMH0sb0YsUlUsUFUsVU4sUW4sR28sRHQsQzEsZnVuY3Rpb24gUW9lKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wO2ZvcihhWzQ3MjU0''@;'; put 'put ''XT1sfD0wLGFbNDcyNjFdPTAsYVs0NzI1Ml09MCxhWzQ3MjUxXT0wLGw9MTkyKygwfGFbKEE9bCsxNnwwKT4+Ml0pfDAsbT0wLGY9MDtsPTB8YVtsPj4yXTspe2ZvcihmZVsxNTcrKHA9MHxhW2wrMTY+PjJdKT4+MF09MCxhWzQ3MjUxXT1tPW0rMXwwLGM9MHxhW3ArMTgwPj4yXSxsPTA7MHxh''@;'; put 'put ''W2MrKGw8PDIpPj4yXTspYVs0NzI1Ml09Yj1mKzF8MCxsPWwrMXwwLGY9YjtsPXArMTY0fDB9Zm9yKGw9KGw9MHxhWzQ3MjYyXSk/MHxWMChsLG08PDIpOjB8UW4obTw8MiksYVs0NzI2Ml09bCxhWzQ3MjYzXT0wLGw9KGw9MHxhWzQ3MjU2XSk/MHxWMChsLGFbNDcyNTFdPDwyKTowfFFuKGFb''@;'; put 'put ''NDcyNTFdPDwyKSxhWzQ3MjU2XT1sLGFbNDcyNTVdPTAsYz0xLGw9MTkyKygwfGFbQT4+Ml0pfDA7bD0wfGFbbD4+Ml07KXtmb3IoYVsodz0yOTIrKEE9MHxhWyhiPWwrMTZ8MCk+PjJdKXwwKT4+Ml09MCxBPTB8YVtBKzE3Mj4+Ml0sbT1jLHA9MCxsPTA7Yz0wfGFbQSsocDw8Mik+PjJdOylh''@;'; put 'put ''W3c+PjJdPWY9bCsxfDAsYVsxNjArKGw9MHxhW2MrMTY+PjJdKT4+Ml09MCxhW2wrMTY0Pj4yXT0tMSxtPWw9bT8oKDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMHwoaz0zJmFbYz4+Ml0pKT9jOmMrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMz09''@;'; put 'put ''KDB8ayk/YzpjKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pfDApPCgwfGhyW2wrMTcwPj4xXSk/MDptOjAscD1wKzF8MCxsPWY7bD0wfHZyKDQrKHA8PDIpfDApLGFbMjY0KyhjPTB8YVtiPj4yXSk+PjJdPWwsYVtjKzI2OD4+Ml09MCxjPTB8YVtjKzE4MD4+Ml0sbD0wO2Rve2s9bCxsPWwrMXww''@;'; put 'put ''fXdoaWxlKDAhPSgwfGFbYysoazw8Mik+PjJdKSk7Yz0wfHZyKGw8PDIpLGFbMjcyKyhsPTB8YVtiPj4yXSk+PjJdPWMsYVtsKzI3Nj4+Ml09MCxjPW0sbD1sKzE2NHwwfXJldHVybiAwfGN9LFdILE4zLGZ1bmN0aW9uIGRhKGwpe3ZhciBjLGYscCxtO3JldHVybiAwfH5+KChmPStfWzI0Kyhw''@;'; put 'put ''PTB8YVsxNisoMHxhWygzPT0oMHwobT0zJmFbKGx8PTApPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjNdLStfWzI0KyhsPTB8YVsxNisoMHxhWygyPT0oMHxtKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+M10pKmYrKGM9K19bcCsxNj4+M10tK19bbCsxNj4+M10pKmMpfSx2cixm''@;'; put 'put ''dW5jdGlvbiBXYyhsKXtsfD0wO3ZhciBiLGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9MHxpcygyNTY5MiwwfGFbNDU4MV0pLGs9bCs4fDAsdz0wOyEoKDB8dyk+PSgwfGFbbD4+Ml0pKTspe2lmKCEoNCZhWyhjPSgwfGFbaz4+Ml0pKyg3Mip3fDApfDApPj4yXSkpe2Zvcig7KGY9''@;'; put 'put ''MHxhWzgrKDB8YVtjKzM2Pj4yXSk+PjJdKSYmKGY9MHxhW2YrMjA+PjJdKSYmISgxJmFbZj4+Ml0pOyljPWY7Zm9yKEE9MHx2cig0MCksYVtBKzM2Pj4yXT1jLF9bQSs4Pj4zXT0rX1tjKzQwPj4zXSxtPWMsZj0wfGFbYz4+Ml07YVttPj4yXT00fGYsKGY9MHxhW2FbbSszNj4+Ml0+PjJdKSYm''@;'; put 'put ''KHA9MHxhW2YrMjQ+PjJdKSYmISgxJihmPTB8YVtwPj4yXSl8MCk7KW09cDtfW0ErMTY+PjNdPStfW20rNTY+PjNdLFdNKGIsQSwrX1tjKzQ4Pj4zXSl9dz13KzF8MH1yZXR1cm4gMHxifSxmdW5jdGlvbiBybShsKXtsfD0wO3ZhciBiLGssYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTA7Zm9yKGI9''@;'; put 'put ''MHxpcygyNTY5MiwwfGFbNDU4MV0pLGs9bCs4fDAsdz0wOyEoKDB8dyk+PSgwfGFbbD4+Ml0pKTspe2lmKCEoMiZhWyhjPSgwfGFbaz4+Ml0pKyg3Mip3fDApfDApPj4yXSkpe2Zvcig7KGY9MHxhWzEyKygwfGFbYyszNj4+Ml0pPj4yXSkmJihmPTB8YVtmKzIwPj4yXSkmJiEoMSZhW2Y+PjJd''@;'; put 'put ''KTspYz1mO2ZvcihBPTB8dnIoNDApLGFbQSszNj4+Ml09YyxfW0ErOD4+M109K19bYys0OD4+M10sbT1jLGY9MHxhW2M+PjJdO2FbbT4+Ml09MnxmLChmPTB8YVs0KygwfGFbbSszNj4+Ml0pPj4yXSkmJihwPTB8YVtmKzI0Pj4yXSkmJiEoMSYoZj0wfGFbcD4+Ml0pfDApOyltPXA7X1tBKzE2''@;'; put 'put ''Pj4zXT0rX1ttKzY0Pj4zXSxXTShiLEEsK19bYys0MD4+M10pfXc9dysxfDB9cmV0dXJuIDB8Yn0sZnVuY3Rpb24gaXgobCl7bHw9MDt2YXIgbSxBLGM9MCxmPTAscD0wO2ZvcihtPTB8YVs0NzUwOV0sQT0wfGFbNDc1MDVdLGM9MHxhWzQ3NTA3XTs7KXtpZigoMHxjKT49KDB8bSkpe3A9NDti''@;'; put 'put ''cmVha31pZigxPT0oMHxKZigwfGFbYVtBKygoZj1jKzF8MCk8PDIpPj4yXT4+Ml0sMHxhW2FbQSsoYzw8Mik+PjJdPj4yXSwwfGFbbD4+Ml0pKSlicmVhaztjPWZ9ZTpkb3tpZig0PT0oMHxwKSlmb3IoYz0wfGFbNDc1MDhdOzspe2lmKCgwfGMpPD0oMHxtKSl7Yz1tO2JyZWFrIGV9aWYoMj09''@;'; put 'put ''KDB8SmYoMHxhW2FbQSsoKGY9YystMXwwKTw8Mik+PjJdPj4yXSwwfGFbYVtBKyhjPDwyKT4+Ml0+PjJdLDB8YVtsPj4yXSkpKWJyZWFrO2M9Zn19d2hpbGUoMCk7cmV0dXJuIDB8Y30sRjAsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIs''@;'; put 'put ''YzIsYzIsYzIsYzIsYzIsYzIsYzIsYzIsYzJdLEJpPVtLMSxmdW5jdGlvbiBWMyhsLGMpe3JldHVybiAwfGx9LGZ1bmN0aW9uIGllKGwsYyl7cmV0dXJuIDB8X3UoY3w9MCxsfD0wKX0sZnVuY3Rpb24gWmUobCxjKXtyZXR1cm4gbHw9MCx1MigwfChsPTB8RjAoY3w9MCkpLDAsMHxjKSwwfGx9''@;'; put 'put ''LG9KLGZOLGZ1bmN0aW9uIEthZShsLGMpe2N8PTA7dmFyIGssTSxELG09MCxBPTAsdz0wLGI9MDtyZXR1cm4gaz1sZSxsZT1sZSszMnwwLE09aysxNnwwLHc9ayxtPTB8YVs0KyhsfD0wKT4+Ml0sQT05MCooMyZhWzExNisoMHxhWzE2KygwfGNyKGw9MHxhW2w+PjJdKSk+PjJdKT4+Ml0pfDAs''@;'; put 'put ''YVtNPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sVTYodyxNLEEpLGFbYz4+Ml09YVt3Pj4yXSxhW2MrND4+Ml09YVt3KzQ+PjJdLGFbYys4Pj4yXT1hW3crOD4+Ml0sYVtjKzEyPj4yXT1hW3crMTI+PjJd''@;'; put 'put ''LG0/KEE9bSxsPW0rOHwwLHc9bSsxNnwwLG09bSsyNHwwKTooQT0xNisobT0wfGFbMTIrKDB8YVtsKzE2Pj4yXSk+PjJdKXwwLGw9bSsyNHwwLHc9bSszMnwwLG09bSs0MHwwKSxsPStfW0E+PjNdPD0oRD0rX1tjPj4zXSkmJkQ8PStfW3c+PjNdJiYrX1tsPj4zXTw9KGI9K19bYys4Pj4zXSk/''@;'; put 'put ''Yjw9K19bbT4+M10mMTowLGxlPWssMHxsfSxmdW5jdGlvbiB0SihsLGMpe3ZhciBmLHAsbSxBLHcsYixrO3JldHVybiBjfD0wLHA9bGUsbGU9bGUrMzJ8MCxrPXArMTZ8MCx3PXAsYj05MCooMyZhWzExNisoMHxhWzE2KygwfGNyKGw9MHxhWyhsfD0wKT4+Ml0pKT4+Ml0pPj4yXSl8MCxhW2s+''@;'; put 'put ''PjJdPWFbYz4+Ml0sYVtrKzQ+PjJdPWFbYys0Pj4yXSxhW2srOD4+Ml09YVtjKzg+PjJdLGFbaysxMj4+Ml09YVtjKzEyPj4yXSxVNih3LGssYiksZj0rX1t3Pj4zXSxsZT1wLDB8KCEoISgoQT0rX1t3Kzg+PjNdKT49LShtPS41KitfWzgwKyhsPTB8YVtsKzE2Pj4yXSk+PjNdKSl8IShBPD1t''@;'; put 'put ''KSkmJmY+PS0rX1tsKzg4Pj4zXT9mPD0rX1tsKzk2Pj4zXSYxOjApfSxLUSxmdW5jdGlvbiBNQihsLGMpe3JldHVybiBhWzM2KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBxYihsLGMpe3JldHVybiBhWzMyKyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBlXyhs''@;'; put 'put ''LGMpe2x8PTA7dmFyIHAsbSx3LGY9MCxBPTA7c3dpdGNoKHc9bGUsbGU9bGUrMTZ8MCxtPXcsMHwocD0oMHxhdigwfGZlWyhjfD0wKT4+MF0pKTw8MjQ+PjI0KSl7Y2FzZSA4MjowfHkwKGY9YysxfDAsMTQwNzYzKT9BPTU6KGFbbD4+Ml09MTE0LGY9MCk7YnJlYWs7Y2FzZSA3NjpBPTY7YnJl''@;'; put 'put ''YWs7ZGVmYXVsdDpmPWMrMXwwLEE9NX1kb3tpZig1PT0oMHxBKSlpZigwfHkwKGYsMTQwNzY4KSl7aWYoNjchPSgwfHApJiYwPT0oMHx5MChmLDE0MDc3MikpKXthW20+PjJdPWMsJHIoMCwxNDA3NzgsbSksZj0xO2JyZWFrfWFbbD4+Ml09MTEwLGY9MH1lbHNlIEE9Nn13aGlsZSgwKTtyZXR1''@;'; put 'put ''cm4gNj09KDB8QSkmJihhW2w+PjJdPTEwOCxmPTApLGxlPXcsMHxmfSxmdW5jdGlvbiBFQihsLGMpe3JldHVybiBhWzQrKGx8PTApPj4yXT1jfD0wLDB9LGZ1bmN0aW9uIHNHKGwsYyl7cmV0dXJuIGFbKGx8PTApPj4yXT1jfD0wLDB9LGZ1bmN0aW9uIHVHKGwsYyl7dmFyIGYscDtyZXR1cm4g''@;'; put 'put ''bHw9MCxwPWxlLGxlPWxlKzE2fDAsMHxJZChjfD0wLDE0MDg0NSwwLDI1NSxmPXApP2w9MTooX1tsKzE2Pj4zXT0rKDB8YVtmPj4yXSksbD0wKSxsZT1wLDB8bH0sZnVuY3Rpb24geEIobCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWxlLGxlPWxlKzE2fDAsZj1tLCgwfGF2KDB8ZmVb''@;'; put 'put ''KGN8PTApPj4wXSkpPDwyND4+MjR8MCl7Y2FzZSA3NjowfHkwKGMrMXwwLDE0MDc2OCk/cD05OihpdFsobD1sKzM2fDApPj4xXT00fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4MjowfHkwKGMrMXwwLDE0MDc2Myk/cD05OihpdFsobD1sKzM2fDApPj4xXT0yfGl0W2w+PjFdLGw9MCk7YnJl''@;'; put 'put ''YWs7Y2FzZSA4NDowfHkwKGMrMXwwLDE0MTU2Myk/cD05OihpdFsobD1sKzM2fDApPj4xXT02fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA2NzowfHkwKGMrMXwwLDE0MDc3Mik/cD05Omw9MDticmVhaztkZWZhdWx0OnA9OX1yZXR1cm4gOT09KDB8cCkmJihhW2Y+PjJdPWMsJHIoMCwxNDE1''@;'; put 'put ''NjcsZiksbD0xKSxsZT1tLDB8bH0sZnVuY3Rpb24gSkUobCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWxlLGxlPWxlKzE2fDAsZj1tLCgwfGF2KDB8ZmVbKGN8PTApPj4wXSkpPDwyND4+MjR8MCl7Y2FzZSA3NjowfHkwKGMrMXwwLDE0MDc2OCk/cD03OihpdFsobD1sKzM2fDApPj4x''@;'; put 'put ''XT01MTJ8aXRbbD4+MV0sbD0wKTticmVhaztjYXNlIDgyOjB8eTAoYysxfDAsMTQwNzYzKT9wPTc6KGl0WyhsPWwrMzZ8MCk+PjFdPTI1NnxpdFtsPj4xXSxsPTApO2JyZWFrO2Nhc2UgNjc6MHx5MChjKzF8MCwxNDA3NzIpP3A9NzpsPTA7YnJlYWs7ZGVmYXVsdDpwPTd9cmV0dXJuIDc9PSgw''@;'; put 'put ''fHApJiYoYVtmPj4yXT1jLCRyKDAsMTQxNTE4LGYpLGw9MSksbGU9bSwwfGx9LGZ1bmN0aW9uIGNHKGwsYyl7cmV0dXJuIGFbMjArKGx8PTApPj4yXT0wfHJhKGN8PTApLDB9LGZ1bmN0aW9uIFRCKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWxlLGxlPWxlKzE2fDAsMHxJZChjfD0wLDE0''@;'; put 'put ''MTUxMSwwLDI1NSxmPXApP2w9MTooZmVbbCszMz4+MF09YVtmPj4yXSxpdFsobD1sKzM2fDApPj4xXT0zMnxpdFtsPj4xXSxsPTApLGxlPXAsMHxsfSxmdW5jdGlvbiByNShsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1sZSxsZT1sZSsxNnwwLDB8SWQoY3w9MCwxNDE0OTksMCwyNTUsZj1w''@;'; put 'put ''KT9sPTE6KGZlW2wrMzQ+PjBdPWFbZj4+Ml0saXRbKGw9bCszNnwwKT4+MV09NjR8aXRbbD4+MV0sbD0wKSxsZT1wLDB8bH0sZnVuY3Rpb24gSUIobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9bGUsbGU9bGUrMTZ8MCwwfElkKGN8PTAsMTQxNDg3LC0xMjgsMTI3LGY9cCk/bD0xOihmZVts''@;'; put 'put ''KzMyPj4wXT1hW2Y+PjJdLGl0WyhsPWwrMzZ8MCk+PjFdPTEyOHxpdFtsPj4xXSxsPTApLGxlPXAsMHxsfSxmdW5jdGlvbiBYRShsLGMpe3JldHVybiBhWzI0KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBKOShsLGMpe3ZhciBmLHAsbTtsfD0wLGN8PTAsbT1sZSxsZT1sZSsx''@;'; put 'put ''NnwwLHA9bSxmPW0rNHwwO2Rve2lmKCEoMHxJZChjLDE0MTQ0MiwwLDY1NTM1LGYpKSl7aWYoYz0wfGFbZj4+Ml0pe2l0W2wrODA+PjFdPWMsYz0wO2JyZWFrfSRyKDAsMTQxNDUwLHApLGM9MTticmVha31jPTF9d2hpbGUoMCk7cmV0dXJuIGxlPW0sMHxjfSxmdW5jdGlvbiBEQihsLGMpe2x8''@;'; put 'put ''PTA7dmFyIGYsbSxwPTA7c3dpdGNoKG09bGUsbGU9bGUrMTZ8MCxmPW0sKDB8YXYoMHxYdFsoY3w9MCk+PjBdKSk8PDI0Pj4yNHwwKXtjYXNlIDg0OjB8eTAoYysxfDAsMTQxMzkxKT9wPTU6KGl0WyhsPWwrMzZ8MCk+PjFdPTF8aXRbbD4+MV0sbD0wKTticmVhaztjYXNlIDcwOjB8eTAoYysx''@;'; put 'put ''fDAsMTQxMzk1KT9wPTU6bD0wO2JyZWFrO2RlZmF1bHQ6cD01fXJldHVybiA1PT0oMHxwKSYmKGFbZj4+Ml09YywkcigwLDE0MTQwMCxmKSxsPTEpLGxlPW0sMHxsfSxmdW5jdGlvbiBLRShsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1sZSxsZT1sZSsxNnwwLDB8SWQoY3w9MCwxNDEzNzcs''@;'; put 'put ''MCwzNjAsZj1wKT9sPTE6KGFbbCsyOD4+Ml09NjU1MzUmYVtmPj4yXSxsPTApLGxlPXAsMHxsfSxmdW5jdGlvbiBMQihsLGMpe3ZhciBmLHA7cmV0dXJuIGx8PTAscD1sZSxsZT1sZSsxNnwwLDB8SWQoY3w9MCwxNDEzNzAsMCw2NTUzNSxmPXApP2w9MTooaXRbbCs0MD4+MV09YVtmPj4yXSxs''@;'; put 'put ''PTApLGxlPXAsMHxsfSxmdW5jdGlvbiBPQihsLGMpe3JldHVybiBhWyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBSQihsLGMpe3JldHVybiBhWzE2KyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiBCQihsLGMpe3JldHVybiBhWzQrKGx8PTApPj4yXT0wfHJhKGN8''@;'; put 'put ''PTApLDB9LGZ1bmN0aW9uIFBCKGwsYyl7dmFyIGYscCxtO2x8PTAsY3w9MCxtPWxlLGxlPWxlKzE2fDAscD1tLGY9bSs0fDA7ZG97aWYoISgwfElkKGMsMTQxMzI1LDAsNjU1MzUsZikpKXtpZihjPTB8YVtmPj4yXSl7aXRbbCs4Mj4+MV09YyxjPTA7YnJlYWt9JHIoMCwxNDEzMzMscCksYz0x''@;'; put 'put ''O2JyZWFrfWM9MX13aGlsZSgwKTtyZXR1cm4gbGU9bSwwfGN9LGZ1bmN0aW9uICRFKGwsYyl7bHw9MCxjfD0wO3ZhciBBLGIsZj0wLHA9MCxtPTAsdz0wO2I9bGUsbGU9bGUrMTZ8MCxBPWIsbT0wO2U6Zm9yKDs7KXt0OmZvcig7Oyl7aWYocD1jKzF8MCwhKChjPTB8ZmVbYz4+MF0pPDwyND4+''@;'; put 'put ''MjQpKWJyZWFrIGU7c3dpdGNoKChmPSgwfENwKGM9Yzw8MjQ+PjI0KSktOTh8MCk+Pj4xfGY8PDMxfDApe2Nhc2UgNTp3PTU7YnJlYWsgdDtjYXNlIDk6Zj0yMDQ4O2JyZWFrIHQ7Y2FzZSA4Onc9NjticmVhayB0O2Nhc2UgMDp3PTc7YnJlYWsgdH1hW0E+PjJdPWMsYVtBKzQ+PjJdPWMsJHIo''@;'; put 'put ''MCwxNDEyNzIsQSksYz1wfTU9PSgwfHcpPyh3PTAsZj0xMDI0KTo2PT0oMHx3KT8odz0wLGY9NDA5Nik6Nz09KDB8dykmJih3PTAsZj04MTkyKSxjPXAsbXw9Zn1yZXR1cm4gbTw8MTY+PjE2IT0xNTM2MCYmKGl0Wyh3PWwrMzZ8MCk+PjFdPWl0W3c+PjFdfG0pLGxlPWIsMH0sZnVuY3Rpb24g''@;'; put 'put ''RkIobCxjKXt2YXIgcCxtLEEsdyxiLGY9MDtmb3IoYj1sZSxsZT1sZSsxNnwwLHc9Yis4fDAsQT1iLHA9NDIrKGx8PTApfDAsZj0wLGM9bT0wfHJhKGN8PTApO2w9MHxsdihjLDE0MTE4Mik7KWlmKDgyIT0oMjU1JigwfGF2KDB8ZmVbbD4+MF0pKXwwKSlpZigwfHkwKGwsMTQxMjM2KSlpZigw''@;'; put 'put ''fHkwKGwsMTQxMjQyKSYmMHx5MChsLDE0MTI1Mikpe2lmKCEoMHx5MChsLDE0MTI1OCkpKXtpdFtwPj4xXT0xMjh8aXRbcD4+MV0sYz0wLGY9bD1mO2NvbnRpbnVlfWlmKDB8eTAobCwxNDEyNjUpKXthW3c+PjJdPWwsJHIoMCwxNDExOTgsdyksZj0xLGM9MDtjb250aW51ZX1pdFtwPj4xXT0y''@;'; put 'put ''NTZ8aXRbcD4+MV0sYz0wLGY9bD1mfWVsc2UgaXRbcD4+MV09MzJ8aXRbcD4+MV0sYz0wLGY9bD1mO2Vsc2UgaXRbcD4+MV09LTM4NSZpdFtwPj4xXSxjPTAsZj1sPWY7ZWxzZXtpZighKDB8eTAoYz1sKzF8MCwxNDExODUpKSl7aXRbcD4+MV09NHxpdFtwPj4xXSxjPTAsZj1sPWY7Y29udGlu''@;'; put 'put ''dWV9aWYoMHx5MChjLDE0MTE5Mikpe2FbQT4+Ml09bCwkcigwLDE0MTE5OCxBKSxmPTEsYz0wO2NvbnRpbnVlfWl0W3A+PjFdPTJ8aXRbcD4+MV0sYz0wLGY9bD1mfXJldHVybiBGdChtKSxsZT1iLDB8Zn0sZnVuY3Rpb24gbzUobCxjKXtyZXR1cm4gYVs4KyhsfD0wKT4+Ml09MHxyYShjfD0w''@;'; put 'put ''KSwwfSxmdW5jdGlvbiBYOShsLGMpe3JldHVybiBhWzEyKyhsfD0wKT4+Ml09MHxyYShjfD0wKSwwfSxmdW5jdGlvbiB0XyhsLGMpe2x8PTA7dmFyIGYsbSxwPTA7c3dpdGNoKG09bGUsbGU9bGUrMTZ8MCxmPW0sKDB8YXYoMHxmZVsoY3w9MCk+PjBdKSk8PDI0Pj4yNHwwKXtjYXNlIDY2OjB8''@;'; put 'put ''eTAoYysxfDAsMTQxMTI4KT9wPTc6KGl0WyhsPWwrMzZ8MCk+PjFdPTE2fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4NDowfHkwKGMrMXwwLDE0MTEzNCk/cD03OihpdFsobD1sKzM2fDApPj4xXT04fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA3NzowfHkwKGMrMXwwLDE0MTEzNyk/cD03''@;'; put 'put ''Omw9MDticmVhaztkZWZhdWx0OnA9N31yZXR1cm4gNz09KDB8cCkmJihhW2Y+PjJdPWMsJHIoMCwxNDExNDMsZiksbD0xKSxsZT1tLDB8bH0sZnVuY3Rpb24gZkcobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9bGUsbGU9bGUrMTZ8MCwwfElkKGN8PTAsMTQxMTIyLDAsNjU1MzUsZj1wKT9s''@;'; put 'put ''PTE6KGl0W2wrMzg+PjFdPWFbZj4+Ml0sbD0wKSxsZT1wLDB8bH0sZnVuY3Rpb24gbl8obCxjKXtsfD0wO3ZhciBmLG0scD0wO3N3aXRjaChtPWxlLGxlPWxlKzE2fDAsZj1tLCgwfGF2KDB8ZmVbKGN8PTApPj4wXSkpPDwyND4+MjR8MCl7Y2FzZSA3NjowfHkwKGMrMXwwLDE0MDc2OCk/cD03''@;'; put 'put ''OihpdFsobD1sKzM2fDApPj4xXT00fGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA4MjowfHkwKGMrMXwwLDE0MDc2Myk/cD03OihpdFsobD1sKzM2fDApPj4xXT0yfGl0W2w+PjFdLGw9MCk7YnJlYWs7Y2FzZSA2NzowfHkwKGMrMXwwLDE0MDc3Mik/cD03Omw9MDticmVhaztkZWZhdWx0OnA9''@;'; put 'put ''N31yZXR1cm4gNz09KDB8cCkmJihhW2Y+PjJdPWMsJHIoMCwxNDA3NzgsZiksbD0xKSxsZT1tLDB8bH0sZnVuY3Rpb24gSEIobCxjKXt2YXIgZixwO3JldHVybiBsfD0wLHA9bGUsbGU9bGUrMTZ8MCwwfElkKGN8PTAsMTQxNzIwLDAsMTI3LGY9cCk/bD0xOihmZVtsKzg4Pj4wXT1hW2Y+PjJd''@;'; put 'put ''LGw9MCksbGU9cCwwfGx9LGZ1bmN0aW9uIE5CKGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWxlLGxlPWxlKzE2fDAsZj1wLDQyPT0oMHxmZVsoY3w9MCk+PjBdKT8oZmVbKGw9bCsxMTJ8MCk+PjBdPTF8ZmVbbD4+MF0sbD0wKTooYVtmPj4yXT1jLCRyKDAsMTQxNjgwLGYpLGw9MSksbGU9''@;'; put 'put ''cCwwfGx9LGZ1bmN0aW9uIEt0KGwsYyl7dmFyIGYscDtyZXR1cm4gbHw9MCxwPWxlLGxlPWxlKzE2fDAsZj1wLDQyPT0oMHxmZVsoY3w9MCk+PjBdKT8oZmVbKGw9bCsxMTJ8MCk+PjBdPTJ8ZmVbbD4+MF0sbD0wKTooYVtmPj4yXT1jLCRyKDAsMTQxNjQzLGYpLGw9MSksbGU9cCwwfGx9LGZ1''@;'; put 'put ''bmN0aW9uIE9LKGwsYyl7dmFyIHAsZj0wO3A9NzIrKGx8PTApfDAsbD1jfD0wO2U6Zm9yKDs7KXtzd2l0Y2goMHxmZVtwKygwfFh0W2w+PjBdKT4+MF0pe2Nhc2UgNTpmPTI7YnJlYWs7Y2FzZSA2OmY9MzticmVhaztjYXNlIDc6Zj00O2JyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNh''@;'; put 'put ''c2UgMjQ6Y2FzZSAyMzpjYXNlIDIyOmNhc2UgMjk6Zj0xO2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1sPWwrZnwwfXJldHVybiBsLWN8MH0sZnVuY3Rpb24gUXkobCxjKXtjfD0wLGw9NzIrKGx8PTApfDA7ZTpmb3IoOzspe3N3aXRjaCgwfGZlW2wrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyMTpj''@;'; put 'put ''YXNlIDk6Y2FzZSAxMDpicmVhaztkZWZhdWx0OmJyZWFrIGV9Yz1jKzF8MH1yZXR1cm4gMHxjfSxmdW5jdGlvbiBYayhsLGMpe2x8PTA7dmFyIGY9MCxwPTA7Zj0wfGZlWyhsPTIrKGN8PTApfDApPj4wXTtlOmRve2lmKGY8PDI0Pj4yND09MTIwKWZvcihmPWMrM3wwLGw9MDs7KXt0OmZvcig7''@;'; put 'put ''Oyl7aWYoYz0ocD0wfGZlW2Y+PjBdKTw8MjQ+PjI0LHA8PDI0Pj4yND09NTkpe3A9MTQ7YnJlYWsgZX1zd2l0Y2goMHxjKXtjYXNlIDU3OmNhc2UgNTY6Y2FzZSA1NTpjYXNlIDU0OmNhc2UgNTM6Y2FzZSA1MjpjYXNlIDUxOmNhc2UgNTA6Y2FzZSA0OTpjYXNlIDQ4OnA9NzticmVhayB0O2Nh''@;'; put 'put ''c2UgNzA6Y2FzZSA2OTpjYXNlIDY4OmNhc2UgNjc6Y2FzZSA2NjpjYXNlIDY1OnA9ODticmVhayB0O2Nhc2UgMTAyOmNhc2UgMTAxOmNhc2UgMTAwOmNhc2UgOTk6Y2FzZSA5ODpjYXNlIDk3OnA9OTticmVhayB0fWY9ZisxfDB9aWYoNz09KDB8cCk/KHA9MCxsPWMrLTQ4fGw8PDQpOjg9PSgw''@;'; put 'put ''fHApPyhwPTAsbD0obDw8NCktNTUrY3wwKTo5PT0oMHxwKSYmKHA9MCxsPShsPDw0KS04NytjfDApLCEoKDB8bCk8MTExNDExMikpe2w9LTE7YnJlYWt9Zj1mKzF8MH1lbHNlIGZvcihjPWwsbD0wOzspe2lmKGY8PDI0Pj4yND09NTkpe3A9MTQ7YnJlYWsgZX1pZigoMHwobD0oZjw8MjQ+PjI0''@;'; put 'put ''KS00OCsoMTAqbHwwKXwwKSk+PTExMTQxMTIpe2w9LTE7YnJlYWsgZX1jPWY9YysxfDAsZj0wfGZlW2Y+PjBdfX13aGlsZSgwKTtyZXR1cm4gMTQ9PSgwfHApJiYobD0wfFBkKGwpKSwwfGx9LGZ1bmN0aW9uIFo5ZShsLGMpe3JldHVybiBsfD0wLGw9MHxYdFsoY3w9MCk+PjBdLDE8PCgzMSYo''@;'; put 'put ''Yz0wfFh0W2MrMT4+MF0pKSZhWzU2OTQwKygoKDB8WHRbMTQ0MDQ0KyhsPj4+MiY3KT4+MF0pPDwzfGw8PDEmNnxjPj4+NSYxKTw8Mik+PjJdfDB9LGZ1bmN0aW9uIEExZShsLGMpe3ZhciBmO3JldHVybiBsfD0wLDE8PCgzMSYobD0wfFh0WzIrKGN8PTApPj4wXSkpJmFbNTY5NDArKCgoMHxY''@;'; put 'put ''dFsxNDQwNDQrKChmPTB8WHRbYysxPj4wXSk+Pj4yJjE1fGZlW2M+PjBdPDw0JjI1NSk+PjBdKTw8M3xmPDwxJjZ8bD4+PjUmMSk8PDIpPj4yXXwwfSxmdW5jdGlvbiB5MWUobCxjKXtyZXR1cm4gMH0sZnVuY3Rpb24gdmoobCxjKXtyZXR1cm4gbHw9MCxsPTB8WHRbKGN8PTApPj4wXSwxPDwo''@;'; put 'put ''MzEmKGM9MHxYdFtjKzE+PjBdKSkmYVs1Njk0MCsoKCgwfFh0WzE0Mzc4OCsobD4+PjImNyk+PjBdKTw8M3xsPDwxJjZ8Yz4+PjUmMSk8PDIpPj4yXXwwfSxmdW5jdGlvbiB6OWUobCxjKXt2YXIgZjtyZXR1cm4gbHw9MCwxPDwoMzEmKGw9MHxYdFsyKyhjfD0wKT4+MF0pKSZhWzU2OTQwKygo''@;'; put 'put ''KDB8WHRbMTQzNzg4KygoZj0wfFh0W2MrMT4+MF0pPj4+MiYxNXxmZVtjPj4wXTw8NCYyNTUpPj4wXSk8PDN8Zjw8MSY2fGw+Pj41JjEpPDwyKT4+Ml18MH0sZnVuY3Rpb24gRzllKGwsYyl7cmV0dXJuKDB8WHRbKGN8PTApPj4wXSk8MTk0PzE6KGM9MHxYdFtjKzE+PjBdKT4+PjdeMXwxOTI9''@;'; put 'put ''PSgxOTImY3wwKXwwfSxmdW5jdGlvbiBXOWUobCxjKXtsfD0wO3ZhciBmPTA7bD0wfGZlWzIrKGN8PTApPj4wXTtkb3tpZihsPDwyND4+MjQ+LTEpbD0xO2Vsc2V7aWYoKGY9MHxmZVtjPj4wXSk8PDI0Pj4yND09LTE3JiYtNjU9PSgwfGZlW2MrMT4+MF0pKXtpZigoMjU1JmwpPjE4OSl7bD0x''@;'; put 'put ''O2JyZWFrfWw9MTkxLGM9LTY1fWVsc2V7aWYoKDI1NSZsKT4xOTEpe2w9MTticmVha31pZihsPTI1NSYoYz0wfGZlW2MrMT4+MF0pLGY8PDI0Pj4yND09LTMyKXtsPSgyNTUmYyk8MTYwfDE5Mj09KDE5MiZsfDApO2JyZWFrfX1sPTA9PSgxMjgmbHwwKT8xOmY8PDI0Pj4yND09LTE5PygyNTUm''@;'; put 'put ''Yyk+MTU5OjE5Mj09KDE5MiZsfDApfX13aGlsZSgwKTtyZXR1cm4gMSZsfDB9LGZ1bmN0aW9uIFk5ZShsLGMpe2x8PTA7dmFyIGY9MDtmPTB8WHRbMysoY3w9MCk+PjBdO2Rve2lmKCEoMD09KDEyOCZmfDApfDE5Mj09KDE5MiZmfDApfHwoZj0wfFh0W2MrMj4+MF0sMD09KDEyOCZmfDApfDE5''@;'; put 'put ''Mj09KDE5MiZmfDApKSkpe2lmKGY9MHxmZVtjPj4wXSxjPTI1NSYobD0wfGZlW2MrMT4+MF0pLGY8PDI0Pj4yND09LTE2KXtsPSgyNTUmbCk8MTQ0fDE5Mj09KDE5MiZjfDApO2JyZWFrfWw9MD09KDEyOCZjfDApPzE6Zjw8MjQ+PjI0PT0tMTI/KDI1NSZsKT4xNDM6MTkyPT0oMTkyJmN8MCk7''@;'; put 'put ''YnJlYWt9bD0xfXdoaWxlKDApO3JldHVybiAxJmx8MH0sZnVuY3Rpb24gYmoobCxjKXt2YXIgbSxmPTAscD0wO209NzIrKGx8PTApfDAscD1jfD0wO2U6Zm9yKDs7KXtzd2l0Y2goZj0wfGZlW3ArMT4+MF0sMHwobD0obD0wfGZlW3A+PjBdKTw8MjQ+PjI0PzB8ZjAobCxmKTowfFh0W20rKDI1''@;'; put 'put ''NSZmKT4+MF0pKXtjYXNlIDU6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIzOmNhc2UgMjI6Y2FzZSAyOTpsPTI7YnJlYWs7Y2FzZSA2Omw9MzticmVhaztjYXNlIDc6bD00O2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1wPXArbHwwfXJldHVybiBwLWN8MH0sZnVuY3Rpb24g''@;'; put 'put ''cTllKGwsYyl7Y3w9MDt2YXIgcCxmPTA7cD03MisobHw9MCl8MDtlOmZvcig7Oyl7c3dpdGNoKGY9MHxmZVtjKzE+PjBdLDB8KGw9KGw9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGwsZik6MHxYdFtwKygyNTUmZik+PjBdKSl7Y2FzZSAyMTpjYXNlIDk6Y2FzZSAxMDpicmVhaztkZWZhdWx0''@;'; put 'put ''OmJyZWFrIGV9Yz1jKzJ8MH1yZXR1cm4gMHxjfSxmdW5jdGlvbiBlQWUobCxjKXtsfD0wO3ZhciBmPTAscD0wO2w9NCsoY3w9MCl8MDtlOmRve2lmKDB8ZmVbbD4+MF0pZj1sLGw9MCxjPS0xLHA9MTY7ZWxzZSBpZigxMjA9PSgwfGZlW2MrNT4+MF0pKWZvcihjPWMrNnwwLGw9MDs7KXt0OmZv''@;'; put 'put ''cig7Oyl7aWYoISgwfGZlW2M+PjBdKSl7aWYoKGY9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PT01OSl7cD0xODticmVhayBlfXN3aXRjaCgwfChmPWY8PDI0Pj4yNCkpe2Nhc2UgNTc6Y2FzZSA1NjpjYXNlIDU1OmNhc2UgNTQ6Y2FzZSA1MzpjYXNlIDUyOmNhc2UgNTE6Y2FzZSA1MDpjYXNlIDQ5''@;'; put 'put ''OmNhc2UgNDg6cD04O2JyZWFrIHQ7Y2FzZSA3MDpjYXNlIDY5OmNhc2UgNjg6Y2FzZSA2NzpjYXNlIDY2OmNhc2UgNjU6cD05O2JyZWFrIHQ7Y2FzZSAxMDI6Y2FzZSAxMDE6Y2FzZSAxMDA6Y2FzZSA5OTpjYXNlIDk4OmNhc2UgOTc6cD0xMDticmVhayB0fX1jPWMrMnwwfWlmKDg9PSgwfHAp''@;'; put 'put ''P2w9ZistNDh8bDw8NDo5PT0oMHxwKT9sPShsPDw0KS01NStmfDA6MTA9PSgwfHApJiYobD0obDw8NCktODcrZnwwKSwhKCgwfGwpPDExMTQxMTIpKXtsPS0xLHA9MTk7YnJlYWt9Yz1jKzJ8MH1lbHNlIGM9bCxsPTAscD0xM313aGlsZSgwKTtmb3IoOzspaWYoMTMhPSgwfHApKWlmKDE2IT0o''@;'; put 'put ''MHxwKSlpZigxOCE9KDB8cCkpe2lmKDE5PT0oMHxwKSlyZXR1cm4gMHxsfWVsc2UgbD0wfFBkKGwpLHA9MTk7ZWxzZXtpZigoMHwobD0oMTAqbHwwKS00OCtjfDApKT49MTExNDExMil7bD0tMSxwPTE5O2NvbnRpbnVlfWM9ZisyfDAscD0xM31lbHNle2lmKDB8ZmVbYz4+MF0pe2Y9YyxjPS0x''@;'; put 'put ''LHA9MTY7Y29udGludWV9aWYoNTk9PSgwfGZlW2MrMT4+MF0pKXtwPTE4O2NvbnRpbnVlfWY9YyxjPTB8ZmVbYysxPj4wXSxwPTE2fXJldHVybiAwfSxmdW5jdGlvbiBROWUobCxjKXt2YXIgbSxmPTAscD0wO209NzIrKGx8PTApfDAscD1jfD0wO2U6Zm9yKDs7KXtzd2l0Y2goZj0wfGZlW3A+''@;'; put 'put ''PjBdLDB8KGw9KGw9MHxmZVtwKzE+PjBdKTw8MjQ+PjI0PzB8ZjAobCxmKTowfFh0W20rKDI1NSZmKT4+MF0pKXtjYXNlIDU6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIzOmNhc2UgMjI6Y2FzZSAyOTpsPTI7YnJlYWs7Y2FzZSA2Omw9MzticmVhaztjYXNlIDc6bD00''@;'; put 'put ''O2JyZWFrO2RlZmF1bHQ6YnJlYWsgZX1wPXArbHwwfXJldHVybiBwLWN8MH0sZnVuY3Rpb24gXzFlKGwsYyl7Y3w9MDt2YXIgcCxmPTA7cD03MisobHw9MCl8MDtlOmZvcig7Oyl7c3dpdGNoKGY9MHxmZVtjPj4wXSwwfChsPShsPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGwsZik6MHxY''@;'; put 'put ''dFtwKygyNTUmZik+PjBdKSl7Y2FzZSAyMTpjYXNlIDk6Y2FzZSAxMDpicmVhaztkZWZhdWx0OmJyZWFrIGV9Yz1jKzJ8MH1yZXR1cm4gMHxjfSxmdW5jdGlvbiBrMWUobCxjKXtsfD0wO3ZhciBmPTAscD0wO2w9NCsoY3w9MCl8MDtlOmRve2lmKDA9PSgwfGZlW2MrNT4+MF0pJiYxMjA9PSgw''@;'; put 'put ''fGZlW2w+PjBdKSlmb3IoYz1jKzZ8MCxsPTA7Oyl7dDpmb3IoOzspe2lmKCEoMHxmZVtjKzE+PjBdKSl7aWYoKGY9MHxmZVtjPj4wXSk8PDI0Pj4yND09NTkpe3A9MTc7YnJlYWsgZX1zd2l0Y2goMHwoZj1mPDwyND4+MjQpKXtjYXNlIDU3OmNhc2UgNTY6Y2FzZSA1NTpjYXNlIDU0OmNhc2Ug''@;'; put 'put ''NTM6Y2FzZSA1MjpjYXNlIDUxOmNhc2UgNTA6Y2FzZSA0OTpjYXNlIDQ4OnA9ODticmVhayB0O2Nhc2UgNzA6Y2FzZSA2OTpjYXNlIDY4OmNhc2UgNjc6Y2FzZSA2NjpjYXNlIDY1OnA9OTticmVhayB0O2Nhc2UgMTAyOmNhc2UgMTAxOmNhc2UgMTAwOmNhc2UgOTk6Y2FzZSA5ODpjYXNlIDk3''@;'; put 'put ''OnA9MTA7YnJlYWsgdH19Yz1jKzJ8MH1pZig4PT0oMHxwKT8ocD0wLGw9ZistNDh8bDw8NCk6OT09KDB8cCk/KHA9MCxsPShsPDw0KS01NStmfDApOjEwPT0oMHxwKSYmKHA9MCxsPShsPDw0KS04NytmfDApLCEoKDB8bCk8MTExNDExMikpe2w9LTE7YnJlYWt9Yz1jKzJ8MH1lbHNlIGY9bCxs''@;'; put 'put ''PTAscD0xM313aGlsZSgwKTtlOmRve2lmKDEzPT0oMHxwKSlmb3IoOzspe2lmKHA9MCwwfGZlW2YrMT4+MF0pYz0tMTtlbHNle2lmKChjPTB8ZmVbZj4+MF0pPDwyND4+MjQ9PTU5KXtwPTE3O2JyZWFrIGV9Yz1jPDwyND4+MjR9aWYoKDB8KGw9KDEwKmx8MCktNDgrY3wwKSk+PTExMTQxMTIp''@;'; put 'put ''e2w9LTE7YnJlYWt9Zj1mKzJ8MCxwPTEzfX13aGlsZSgwKTtyZXR1cm4gMTc9PSgwfHApJiYobD0wfFBkKGwpKSwwfGx9LEVuLGZ1bmN0aW9uIGwwZShsLGMpe2x8PTAsY3w9MDt2YXIgRyxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxydCxXZSxhdCxmPTAscD0wLG09MCxBPTAsdz0wLGI9''@;'; put 'put ''MCxrPTAsTT0wLEQ9MCxSPTAscT0wO2F0PWxlLGxlPWxlKzYyNHwwLFZlPWF0KzU4NHwwLEhlPWF0KzU0NHwwLGY9YXQrMTkyfDAsT2U9YXQsYVsoYmU9MTYrKGdlPWF0Kzk2fDApfDApPj4yXT1wZT1hdCszNjh8MCxhWyhMZT1PZSsxNnwwKT4+Ml09ZixydD0wfGFbYz4+Ml0scD0xNSYoYz0w''@;'; put 'put ''fGFbMTY0KyhHPTB8YVsoUmU9MTYrKFdlPTB8YVtsPj4yXSl8MCk+PjJdKT4+Ml0pLG09MTUmYVsxNjQrKGw9MHxhWyhxZT1ydCsxNnwwKT4+Ml0pPj4yXTtkb3tpZigoMHxtKT09KDB8cCkpe2lmKFI9MHx6NShXZSkscT0wfHo1KHJ0KSwoMHwoQT0oMHwoQT0oMHxhWzIzMisocD0wfGFbMTYr''@;'; put 'put ''KDB8YVsoMz09KDB8KG09MyYoTT0wfGFbUj4+Ml0pKSk/UjpSKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjMyKyhtPTB8YVsxNisoMHxhWygyPT0oMHxtKT9SOlIrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pfDApKT4tMT9BOjAtQXwwKSkhPSgwfCh3PSgwfCh3PSgwfGFbMjMyKyhi''@;'; put 'put ''PTB8YVsxNisoMHxhWygzPT0oMHwoaz0zJihEPTB8YVtxPj4yXSkpKT9xOnErNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKGs9MHxhWzE2KygwfGFbKDI9PSgwfGspP3E6cSstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSl8MCkpPi0xP3c6MC13fDApKSl7bD1BLXd8MDticmVha31p''@;'; put 'put ''ZigoMHwobT0oMHwobT1+figrX1twKzE2Pj4zXS0rX1ttKzE2Pj4zXSkpKT4tMT9tOjAtbXwwKSkhPSgwfChwPSgwfChwPX5+KCtfW2IrMTY+PjNdLStfW2srMTY+PjNdKSkpPi0xP3A6MC1wfDApKSl7bD1tLXB8MDticmVha31pZigoMHwobT1NPj4+NCkpIT0oMHwocD1EPj4+NCkpKXtsPW0t''@;'; put 'put ''cHwwO2JyZWFrfWlmKDB8ZmVbRys0ND4+MF0/bT1XZToobT1jPTA9PSgwfGZlW0crODQ+PjBdKT9SOldlLGM9MHxhWzE2NCsoMHxhW2MrMTY+PjJdKT4+Ml0pLHA9bSsxNnwwLDMyJmMpe2dvKDB8cGUsMHxhW3A+PjJdLDE3Niksdz1tLGI9KEE9Z2UpKzQ4fDA7ZG97YVtBPj4yXT1hW3c+PjJd''@;'; put 'put ''LEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7YVtiZT4+Ml09cGUsYVsoMz09KDB8KEE9MyZhW2dlPj4yXSkpP2dlOmdlKzQ4fDApKzQwPj4yXT1hWygyPT0oMHwodz0zJmFbbT4+Ml0pKT9tOm0rLTQ4fDApKzQwPj4yXSxhWygyPT0oMHxBKT9nZTpnZSstNDh8MCkrNDA+PjJd''@;'; put 'put ''PWFbKDM9PSgwfHcpP206bSs0OHwwKSs0MD4+Ml0sdz01NisoMHxhW3A+PjJdKXwwLGI9NDArKEE9cGUrMTZ8MCl8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTt3PTE2KygwfGFbcD4+Ml0pfDAsYj00MCsoQT1wZSs1NnwwKXwwO2Rve2Fb''@;'; put 'put ''QT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO2ZlW3BlKzExMj4+MF09MSxhW3BlKzExNj4+Ml09bSxtPWdlLGw9MHxhW3FlPj4yXX1pZigwfGZlW2wrNDQ+PjBdP3A9cnQ6KHA9bD0wPT0oMHxmZVtsKzg0Pj4wXSk/cTpydCxsPTB8YVtsKzE2Pj4yXSks''@;'; put 'put ''Yz1wKzE2fDAsMzImYVtsKzE2ND4+Ml0pe2dvKDB8ZiwwfGFbYz4+Ml0sMTc2KSx3PXAsYj0oQT1PZSkrNDh8MDtkb3thW0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTthW0xlPj4yXT1mLGFbKDM9PSgwfChBPTMmYVtPZT4+Ml0pKT9PZTpPZSs0OHww''@;'; put 'put ''KSs0MD4+Ml09YVsoMj09KDB8KHc9MyZhW3A+PjJdKSk/cDpwKy00OHwwKSs0MD4+Ml0sYVsoMj09KDB8QSk/T2U6T2UrLTQ4fDApKzQwPj4yXT1hWygzPT0oMHx3KT9wOnArNDh8MCkrNDA+PjJdLHc9NTYrKDB8YVtjPj4yXSl8MCxiPTQwKyhBPWYrMTZ8MCl8MDtkb3thW0E+PjJdPWFbdz4+''@;'; put 'put ''Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTt3PTE2KygwfGFbYz4+Ml0pfDAsYj00MCsoQT1mKzU2fDApfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7ZmVbZisxMTI+PjBdPTEsYVtmKzExNj4+Ml09cH1lbHNlIGY9''@;'; put 'put ''bDtsPWYrMTZ8MCx3PTE2KyhjPTB8YVttKzE2Pj4yXSl8MCxiPShBPUhlKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8YikpO3c9bCxiPShBPVZlKSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8''@;'; put 'put ''QSk8KDB8YikpO2lmKCEobD0wfFhBKEhlLFZlKSkpe2w9Zis1NnwwLHc9Yys1NnwwLGI9KEE9SGUpKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7dz1sLGI9KEE9VmUpKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13''@;'; put 'put ''KzR8MH13aGlsZSgoMHxBKTwoMHxiKSk7aWYoIShsPTB8WEEoSGUsVmUpKSl7aWYoKDB8KGM9MTkyJmFbMTY0KygwfGFbUmU+PjJdKT4+Ml0pKT09KDB8KGw9MTkyJmFbMTY0KygwfGFbcWU+PjJdKT4+Ml0pKSl7bD0oKDB8YVtXZT4+Ml0pPj4+NCktKCgwfGFbcnQ+PjJdKT4+PjQpfDA7YnJl''@;'; put 'put ''YWt9bD1jLWx8MDticmVha319fWVsc2UgbD1tLXB8MH13aGlsZSgwKTtyZXR1cm4gbGU9YXQsMHxsfSxmdW5jdGlvbiBwNyhsLGMpe3ZhciBmLHA9MCxtPTAsQT0wLHc9MDtyZXR1cm4gZj0wfGFbOTYrKDB8YVsxNisoMHxhWyhsfD0wKT4+Ml0pPj4yXSk+PjJdLGM9MCE9KDB8KGw9MHxhWzk2''@;'; put 'put ''KygwfGFbMTYrKDB8YVsoY3w9MCk+PjJdKT4+Ml0pPj4yXSkpLDB8KGY/IWN8fCh3PStfW2YrMzI+PjNdLEE9K19bbCszMj4+M10sKG09K19bZisyND4+M10pPihwPStfW2wrMjQ+PjNdKSk/LTE6bTxwPzE6dz5BPy0xOnc8QSYxOjEmYyl9LGZ1bmN0aW9uIEMwZShsLGMpe3JldHVybigwfGFb''@;'; put 'put ''KGx8PTApPj4yXSktKDB8YVsoY3w9MCk+PjJdKXwwfSxmdW5jdGlvbiBUMGUobCxjKXtyZXR1cm4oKDB8YVthWyhsfD0wKT4+Ml0+PjJdKT4+PjQpLSgoMHxhW2FbKGN8PTApPj4yXT4+Ml0pPj4+NCl8MH0sZnVuY3Rpb24gRlkobCxjKXtyZXR1cm4oMHxhWzIzNisoMHxhWzE2KygwfGFbKGx8''@;'; put 'put ''PTApPj4yXSk+PjJdKT4+Ml0pLSgwfGFbMjM2KygwfGFbMTYrKDB8YVsoY3w9MCk+PjJdKT4+Ml0pPj4yXSl8MH0sZnVuY3Rpb24gZm9lKGwsYyl7dmFyIGYscCxtO3JldHVybigocD0rX1sobT0wfGFbNDY3NTBdKSsoNDAqKDB8YVsoY3w9MCk+PjJdKXwwKSsyND4+M10pPihmPStfW20rKDQw''@;'; put 'put ''KigwfGFbKGx8PTApPj4yXSl8MCkrMjQ+PjNdKSYxKS0ocDxmJjEpfDB9LGZ1bmN0aW9uIGNvZShsLGMpe3JldHVybiBjfD0wLGw9MHx3VSgwfGFbKGx8PTApPj4yXSksKCgwfChjPTB8d1UoMHxhW2M+PjJdKSkpPCgwfGwpJjEpLSgoMHxjKT4oMHxsKSYxKXwwfSxmdW5jdGlvbiB5b2UobCxj''@;'; put 'put ''KXt2YXIgcCxBLHcsYixmPTAsbT0wO2lmKGI9bGUsbGU9bGUrODB8MCx3PWIrNDB8MCxBPWIscD0wfGFbYVsxNzIrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0+PjJdLGw9MHxhW2FbMTcyKygwfGFbMTYrKGN8PTApPj4yXSk+PjJdPj4yXSwoMHxSVShjKSk8PDI0Pj4yNCE9MCYmKDB8YVsoMz09''@;'; put 'put ''KDMmYVtwPj4yXXwwKT9wOnArNDh8MCkrNDA+PjJdKT09KDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKSYmKDB8TlUocCxsKSk8PDI0Pj4yNCE9MCl7Zj0xNisoMHxhW2wrMTY+PjJdKXwwLGw9MTYrKDB8YVtwKzE2Pj4yXSl8MCxjPShtPUEpKzQwfDA7ZG97YVttPj4y''@;'; put 'put ''XT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSk7bD1mLGM9KG09dykrNDB8MDtkb3thW20+PjJdPWFbbD4+Ml0sbT1tKzR8MCxsPWwrNHwwfXdoaWxlKCgwfG0pPCgwfGMpKTtsPTA9PSgwfFhBKEEsdykpJjF9ZWxzZSBsPTA7cmV0dXJuIGxlPWIsMHxsfSxmdW5j''@;'; put 'put ''dGlvbiBUSChsLGMpe3ZhciBwLEEsdyxiLGY9MCxtPTA7aWYoYj1sZSxsZT1sZSs4MHwwLHc9Yis0MHwwLEE9YixwPTB8YVthWzE4MCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXT4+Ml0sbD0wfGFbYVsxODArKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml0+PjJdLCgwfFBVKGMpKTw8MjQ+PjI0IT0w''@;'; put 'put ''JiYoMHxhWygyPT0oMyZhW3A+PjJdfDApP3A6cCstNDh8MCkrNDA+PjJdKT09KDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSkmJigwfE5VKHAsbCkpPDwyND4+MjQhPTApe2Y9NTYrKDB8YVtsKzE2Pj4yXSl8MCxsPTU2KygwfGFbcCsxNj4+Ml0pfDAsYz0obT1BKSs0''@;'; put 'put ''MHwwO2Rve2FbbT4+Ml09YVtsPj4yXSxtPW0rNHwwLGw9bCs0fDB9d2hpbGUoKDB8bSk8KDB8YykpO2w9ZixjPShtPXcpKzQwfDA7ZG97YVttPj4yXT1hW2w+PjJdLG09bSs0fDAsbD1sKzR8MH13aGlsZSgoMHxtKTwoMHxjKSk7bD0wPT0oMHxYQShBLHcpKSYxfWVsc2UgbD0wO3JldHVybiBs''@;'; put 'put ''ZT1iLDB8bH0sZnVuY3Rpb24gS2gobCxjKXt2YXIgZj0wLHA9MDtyZXR1cm4gMHwobD0oZj0rX1s4KyhsfD0wKT4+M10pPihwPStfWzgrKGN8PTApPj4zXSk/MTpmPHA/LTE6KHA9K19bbCsxNj4+M10pPihmPStfW2MrMTY+PjNdKT8xOihwPGYpPDwzMT4+MzEpfSxmdW5jdGlvbiBDWChsLGMp''@;'; put 'put ''e3ZhciBmLHA7cmV0dXJuIDB8KChwPStfWyhsfD0wKT4+M10pPihmPStfWyhjfD0wKT4+M10pPzE6KHA8Zik8PDMxPj4zMSl9LGZ1bmN0aW9uIFRYKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuIDB8KGw9KGY9K19bOCsobD0wfGFbKGx8PTApPj4yXSk+PjNdKTwocD0rX1s4KyhjPTB8YVsoY3w9''@;'; put 'put ''MCk+PjJdKT4+M10pPy0xOmY+cD8xOihwPStfW2w+PjNdKTwoZj0rX1tjPj4zXSk/LTE6cD5mJjEpfSxmdW5jdGlvbiBQRChsLGMpe3JldHVybiAwfCgoMHxhWzM2KyhsfD0wKT4+Ml0pPigwfGFbNDQrKGN8PTApPj4yXSk/MDooMHxhW2MrMzY+PjJdKTw9KDB8YVtsKzQ0Pj4yXSkmMSl9LGZ1''@;'; put 'put ''bmN0aW9uIEZYKGwsYyl7cmV0dXJuIDB8KCgwfGFbMzIrKGx8PTApPj4yXSk+KDB8YVs0MCsoY3w9MCk+PjJdKT8wOigwfGFbYyszMj4+Ml0pPD0oMHxhW2wrNDA+PjJdKSYxKX0sZnVuY3Rpb24gRGYobCxjKXt2YXIgZixwPTAsbT0wLEE9MDtyZXR1cm4gZj0zMisobHw9MCl8MCxwPTMyKyhj''@;'; put 'put ''fD0wKXwwLCgwfGFbbCszNj4+Ml0pPD0oMHxhW2MrNDQ+PjJdKSYmKDB8YVtjKzM2Pj4yXSk8PSgwfGFbbCs0ND4+Ml0pPygwfGFbbCs0MD4+Ml0pPCgwfGFbcD4+Ml0pP2w9MTooQT0oQT0wfEhYKGYscCkpLSgwfGFbYysxMj4+Ml0pKygwfGFbbCsxMj4+Ml0pfDAsbT0oMHwoYz0wfGFbYysx''@;'; put 'put ''Nj4+Ml0pKTwoMHwobD0wfGFbbCsxNj4+Ml0pKSxsPSgwfEEpPD0oKHA9MHxGRChmLHApKS0obT9sOmMpKyhtP2M6bCl8MCkmMSk6bD0wLDB8bH0sZnVuY3Rpb24gTGYobCxjKXt2YXIgZixwPTAsbT0wLEE9MDtyZXR1cm4gcD0zMisoY3w9MCl8MCwoMHxhWyhmPTMyKyhsfD0wKXwwKT4+Ml0p''@;'; put 'put ''PD0oMHxhW2MrNDA+PjJdKSYmKDB8YVtwPj4yXSk8PSgwfGFbbCs0MD4+Ml0pPygwfGFbbCs0ND4+Ml0pPCgwfGFbYyszNj4+Ml0pP2w9MTooQT0oQT0wfEZEKGYscCkpLSgwfGFbYysxNj4+Ml0pKygwfGFbbCsxNj4+Ml0pfDAsbT0oMHwoYz0wfGFbYysxMj4+Ml0pKTwoMHwobD0wfGFbbCsx''@;'; put 'put ''Mj4+Ml0pKSxsPSgwfEEpPD0oKHA9MHxIWChmLHApKS0obT9sOmMpKyhtP2M6bCl8MCkmMSk6bD0wLDB8bH0sSFgsRkQsZnVuY3Rpb24gaTllKGwsYyl7dmFyIGY9MCxwPTA7cmV0dXJuIDB8KGw9KGY9K19bKGx8PTApPj4zXSk8KHA9K19bKGN8PTApPj4zXSk/LTE6Zj5wPzE6KHA9K19bbCs4''@;'; put 'put ''Pj4zXSk8KGY9K19bYys4Pj4zXSk/LTE6cD5mJjEpfSxmdW5jdGlvbiBFMmUobCxjKXt2YXIgZixwLG07cmV0dXJuIDB8KChwPStqblsobT0wfGFbNDY4NzNdKSsoYVsobHw9MCk+PjJdPDwyKT4+Ml0pPChmPStqblttKyhhWyhjfD0wKT4+Ml08PDIpPj4yXSk/LTE6cD5mJjEpfSxmdW5jdGlv''@;'; put 'put ''biBqVihsLGMpe2x8PTA7dmFyIEcscSxwZSxMZSxSZSxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsZ2U9MCxiZT0wLE9lPTA7Zm9yKFJlPWxlLGxlPWxlKzE2fDAscGU9UmUsRz1SZSs4fDAscT1SZSs0fDAsYVs4KyhjfD0wKT4+Ml09MCxMZT0wfFFuKGFbYz4+Ml08''@;'; put 'put ''PDIpLG09MHxhW2M+PjJdLHA9MDshKCgwfHApPj0oMHxtKSk7KWFbTGUrKHA8PDIpPj4yXT1sKygyNCpwfDApLHA9cCsxfDA7eDEoTGUsbSw0LDc5KSxEPTAsQT0wLG09MCx3PTA7ZTpmb3IoOzspe2lmKCgwfEQpPj0oMHxhW2M+PjJdKSl7YmU9MCxmPUEsT2U9dzticmVha31mb3IoYVtHPj4y''@;'; put 'put ''XT1wPTB8YVsoUj1MZSsoRDw8Mil8MCk+PjJdLGFbcT4+Ml09cD0oMHxhWyhsPTB8YVtwKzE2Pj4yXSk+PjJdKT09KDB8cCk/MHxhW2wrND4+Ml06cCstMjR8MCxNPTAsbD1BLGs9dzshKCgwfE0pPj0yKTspe3N3aXRjaCgwfFQyZShHLHEpKXtjYXNlLTE6Zm9yKEE9MCx3PWw7ISgoMHxBKT49''@;'; put 'put ''KDB8aykpOyl7aWYoMHwoYj0wfHFYKDB8YVt3Pj4yXSxwKSkpe2JlPWIsZj1sLE9lPWs7YnJlYWsgZX1BPUErMXwwLHc9MHxhW3crND4+Ml19QT0wfFFuKDEyKSxrP2FbbSs0Pj4yXT1BOihtPTAsbD1BKSxhW0ErOD4+Ml09bSxhW0E+PjJdPXAsYVtBKzQ+PjJdPTAsYVtwKzIwPj4yXT1BLHc9''@;'; put 'put ''aysxfDA7YnJlYWs7Y2FzZSAxOmlmKCEoQT0wfGFbKHA9cCsyMHwwKT4+Ml0pKXtnZT0xOTticmVhayBlfWRve2lmKDEhPSgwfGspKXtpZigoMHxBKT09KDB8bCkpe2FbOCsobD0wfGFbbCs0Pj4yXSk+PjJdPTA7YnJlYWt9aWYoKDB8QSk9PSgwfG0pKXthWzQrKG09MHxhW20rOD4+Ml0pPj4y''@;'; put 'put ''XT0wO2JyZWFrfWFbNCsodz0wfGFbQSs4Pj4yXSk+PjJdPWFbKGI9QSs0fDApPj4yXSxhWzgrKDB8YVtiPj4yXSk+PjJdPXc7YnJlYWt9bD0wLG09MH13aGlsZSgwKTtGdChBKSxhW3A+PjJdPTAsQT1tLHc9aystMXwwO2JyZWFrO2RlZmF1bHQ6QT1tLHc9a31hW3E+PjJdPW09KDB8KHA9MHxh''@;'; put 'put ''W1I+PjJdKSk9PSgwfGFbNCsobT0wfGFbcCsxNj4+Ml0pPj4yXSk/MHxhW20+PjJdOnArMjR8MCxNPU0rMXwwLG09QSxrPXd9RD1EKzF8MCxBPWwsdz1rfWZvcigxOT09KDB8Z2UpJiYoJHIoMSw5MzcyNyxwZSksemUoMTg3NDk2LDEpKSxwPTA7ISgoMHxwKT49KDB8T2UpKTspZ2U9MHxhW2Yr''@;'; put 'put ''ND4+Ml0sRnQoZikscD1wKzF8MCxmPWdlO3JldHVybiBGdChMZSksbGU9UmUsMHxiZX0sVDJlLGZ1bmN0aW9uIFQ5ZShsLGMpe3ZhciBmO3JldHVybiAwfCgoZj0rX1thWyhsfD0wKT4+Ml0+PjNdLStfW2FbKGN8PTApPj4yXT4+M10pPDA/MTooZj4wKTw8MzE+PjMxKX0sZnVuY3Rpb24gTl8o''@;'; put 'put ''bCxjKXt2YXIgZixwO3JldHVybiAwfCgocD0rX1s4KyhsfD0wKT4+M10pPihmPStfWzgrKGN8PTApPj4zXSk/LTE6cDxmJjEpfSxmdW5jdGlvbiBvcmUobCxjKXtyZXR1cm4gMHxsfSxmdW5jdGlvbiBGbWUobCxjKXtyZXR1cm4gbHw9MCwoMHxjcihjfD0wKSkhPSgwfGwpJiYoYz0wfFluKGws''@;'; put 'put ''YywwKSksMHxjfSxmdW5jdGlvbiBQbWUobCxjKXtyZXR1cm4gbHw9MCwoMHxjcihjfD0wKSkhPSgwfGwpJiYoYz0wfFpkKGwsYywwKSksMHxjfSxmdW5jdGlvbiBFQyhsLGMpe3ZhciBmO3JldHVybiBmPTB8ZmVbKGw9MTU3KygwfGFbMTYrKGx8PTApPj4yXSl8MCk+PjBdLCgwfChjfD0wKSk+''@;'; put 'put ''PTAmJihmZVtsPj4wXT1jKSwwfGZ9LHp0LFYwLGZ1bmN0aW9uIElyZShsLGMpe3ZhciBmO3JldHVybiBmPTB8ZmVbKGw9OCsoMHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4wXSwoMHwoY3w9MCkpPj0wJiYoZmVbbD4+MF09YyksMHxmfSxmdW5jdGlvbiBhVyhsLGMpe3JldHVybigwfGFbYVsoY3w9''@;'; put 'put ''MCk+PjJdPj4yXSktKDB8YVthWyhsfD0wKT4+Ml0+PjJdKXwwfSxmdW5jdGlvbiBPcmUobCxjKXt2YXIgZjtyZXR1cm4gMHwoKDB8KGw9MHxhWyhmPTB8YVs0NzA1Nl0pKyhhWzE2KygwfGFbKGx8PTApPj4yXSk+PjJdPDwyKT4+Ml0pKT4oMHwoYz0wfGFbZisoYVsxNisoMHxhWyhjfD0wKT4+''@;'; put 'put ''Ml0pPj4yXTw8Mik+PjJdKSk/MTooKDB8bCk8KDB8YykpPDwzMT4+MzEpfSxmdW5jdGlvbiBncyhsLGMpe3ZhciBmLHA7cmV0dXJuIDB8KChwPStfWyhsPTB8YVsobHw9MCk+PjJdKT4+M10rICtfW2wrOD4+M10pPChmPStfWyhjPTB8YVsoY3w9MCk+PjJdKT4+M10rICtfW2MrOD4+M10pPzE6''@;'; put 'put ''KHA+Zik8PDMxPj4zMSl9LGZ1bmN0aW9uIFJ1KGwsYyl7dmFyIGYscCxtO3JldHVybihwPStfWzgrKGN8PTApPj4zXS0rX1s4KyhtPTB8YVsobHw9MCk+PjJdKT4+M10pKnArKGY9K19bYz4+M10tK19bbT4+M10pKmY8PStfW2FbbCs0Pj4yXT4+M118MH0sX3UsWWosZnVuY3Rpb24gQWxlKGws''@;'; put 'put ''Yyl7cmV0dXJuIDB8eTAoMHxhWyhsfD0wKT4+Ml0sMHxhWyhjfD0wKT4+Ml0pfSxmdW5jdGlvbiBSbGUobCxjKXtyZXR1cm4gMHxaaSgwfGFbKGx8PTApPj4yXSwwfGFbKGN8PTApPj4yXSl9LExpLGZ1bmN0aW9uIHVCKGwsYyl7bHw9MCxjfD0wO3ZhciBBLHcsYixrLE0sZ2UsYmUsT2UsTGUs''@;'; put 'put ''UmUsSGUsZj0wLHA9MCxtPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsVmU9MCxxZT0wLHJ0PTAsV2U9MCxhdD0wLFN0PTAsa3Q9MDtmb3IoSGU9bGUsbGU9bGUrMTEyfDAsT2U9SGUrNjR8MCxiZT1IZSs5NnwwLE09SGUrMzJ8MCxMZT1IZSxSZT0wfHZyKDI4KSxjPTB8R28obCksYVsoZ2U9UmUr''@;'; put 'put ''NHwwKT4+Ml09YyxjPTB8dnIoNzIqY3wwKSxhWyhwZT1SZSsxMnwwKT4+Ml09YyxfWyhwPUxlKzh8MCk+PjNdPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfW0xlPj4zXT0xNzk3NjkzMTM0ODYyMzE1N2UyOTIsX1sobT1MZSsyNHwwKT4+M109LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfWyhBPUxl''@;'; put 'put ''KzE2fDApPj4zXT0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyLHc9TSsxNnwwLGI9TSs4fDAsaz1NKzI0fDAsZj0wfER0KGwpLEQ9MTc5NzY5MzEzNDg2MjMxNTdlMjkyLFI9MTc5NzY5MzEzNDg2MjMxNTdlMjkyLEc9LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixxPS0xNzk3NjkzMTM0ODYyMzE1N2Uy''@;'; put 'put ''OTI7ZjspVmU9KFZlPS41KitfWzgwKyhTdD0wfGFbKGF0PWYrMTZ8MCk+PjJdKT4+M10pPDE/MTpWZSxfW00+PjNdPVdlPShrdD0rX1tTdCsxNj4+M10pLShxZT0ocWU9LjUqKCtfW1N0Kzk2Pj4zXSsgK19bU3QrODg+PjNdKSk8MT8xOnFlKSxfW3c+PjNdPXFlPWt0K3FlLF9bYj4+M109cnQ9''@;'; put 'put ''KGt0PStfW1N0KzI0Pj4zXSktVmUsX1trPj4zXT1WZT1rdCtWZSxfW0xlPj4zXT1XZT0rX1soRDxXZT9MZTpNKT4+M10sX1twPj4zXT1ydD0rX1soUjxydD9MZTpNKSs4Pj4zXSxfW0E+PjNdPXFlPStfWyhHPnFlP0xlOk0pKzE2Pj4zXSxfW20+PjNdPVZlPStfWyhxPlZlP0xlOk0pKzI0Pj4z''@;'; put 'put ''XSxhWyhTdD1jKzQwfDApPj4yXT1hW00+PjJdLGFbU3QrND4+Ml09YVtNKzQ+PjJdLGFbU3QrOD4+Ml09YVtNKzg+PjJdLGFbU3QrMTI+PjJdPWFbTSsxMj4+Ml0sYVtTdCsxNj4+Ml09YVtNKzE2Pj4yXSxhW1N0KzIwPj4yXT1hW00rMjA+PjJdLGFbU3QrMjQ+PjJdPWFbTSsyND4+Ml0sYVtT''@;'; put 'put ''dCsyOD4+Ml09YVtNKzI4Pj4yXSxhW2M+PjJdPTF8YVtjPj4yXSxhWzExMisoMHxhW2F0Pj4yXSk+PjJdPWMsYz1jKzcyfDAsZj0wfHp0KGwsZiksRD1XZSxSPXJ0LEc9cWUscT1WZTtmb3IoX1tMZT4+M109RCstMzYsX1twPj4zXT1SKy0zNixfW0E+PjNdPUcrMzYsX1ttPj4zXT1xKzM2LFN0''@;'; put 'put ''PTB8YVtwZT4+Ml0sbT0wfGFbZ2U+PjJdLGFbT2U+PjJdPWFbTGU+PjJdLGFbT2UrND4+Ml09YVtMZSs0Pj4yXSxhW09lKzg+PjJdPWFbTGUrOD4+Ml0sYVtPZSsxMj4+Ml09YVtMZSsxMj4+Ml0sYVtPZSsxNj4+Ml09YVtMZSsxNj4+Ml0sYVtPZSsyMD4+Ml09YVtMZSsyMD4+Ml0sYVtPZSsy''@;'; put 'put ''ND4+Ml09YVtMZSsyND4+Ml0sYVtPZSsyOD4+Ml09YVtMZSsyOD4+Ml0sbT0wfGZ1bmN0aW9uIGRCKGwsYyxmLHApe2x8PTAsZnw9MCxwfD0wO3ZhciBrLE0sUixHLHEsbT0wLEE9MCx3PTAsYj0wLEQ9MCxwZT0wO2ZvcihxPWxlLGxlPWxlKzMyfDAsdz1xLG09NCsoYj0oY3w9MCk8PDIpfDAs''@;'; put 'put ''Rz0wfFFuKDU2KihiPWIrNXwwKXwwKSxiPTB8dnIoYjw8Miksaz0wfFFuKDcyKihBPTUqbXwxKXwwKSxNPTB8dnIoRD1BPDw1KSxEPTB8dnIoRCksYVt3Pj4yXT1hW3A+PjJdLGFbdys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml0sYVt3''@;'; put 'put ''KzE2Pj4yXT1hW3ArMTY+PjJdLGFbdysyMD4+Ml09YVtwKzIwPj4yXSxhW3crMjQ+PjJdPWFbcCsyND4+Ml0sYVt3KzI4Pj4yXT1hW3ArMjg+PjJdLHE4KGwsYyx3LEcsMCksTmooMTczKSxWOShtLGIpLGo5KG0sRyxiLEEsayksUj0wfGZ1KG0sRyxrLDAsTSksYVt3Pj4yXT1hW3A+PjJdLGFb''@;'; put 'put ''dys0Pj4yXT1hW3ArND4+Ml0sYVt3Kzg+PjJdPWFbcCs4Pj4yXSxhW3crMTI+PjJdPWFbcCsxMj4+Ml0sYVt3KzE2Pj4yXT1hW3ArMTY+PjJdLGFbdysyMD4+Ml09YVtwKzIwPj4yXSxhW3crMjQ+PjJdPWFbcCsyND4+Ml0sYVt3KzI4Pj4yXT1hW3ArMjg+PjJdLHE4KGwsYyx3LEcsMSksVjko''@;'; put 'put ''bSxiKSxqOShtLEcsYixBLGspLG09MHxmdShtLEcsaywxLEQpLEE9MHx2cigwfEFyKFI8PDUsbSkpLGM9MCxsPTA7ISgoMHxjKT49KDB8bSkpOyl7Zm9yKHc9RCsoYzw8NSl8MCxwPTA7ISgoMHxwKT49KDB8UikpOylwZT1sKygwIT0oMHxFZChBKyhsPDw1KXwwLHcsTSsocDw8NSl8MCkpJjEp''@;'; put 'put ''fDAscD1wKzF8MCxsPXBlO2M9YysxfDB9cmV0dXJuIHBlPTB8VjAoQSxsPDw1KSxGdChHKSxGdChiKSxGdChrKSxGdChNKSxGdChEKSxhW2Y+PjJdPWwsbGU9cSwwfHBlfShTdCxtLGJlLE9lKSwxJmFbNDczMjNdfDAmJihwZT0wfGFbcGU+PjJdLGF0PTB8YVtnZT4+Ml0sU3Q9MHxhW2JlPj4y''@;'; put 'put ''XSxhW09lPj4yXT1hW0xlPj4yXSxhW09lKzQ+PjJdPWFbTGUrND4+Ml0sYVtPZSs4Pj4yXT1hW0xlKzg+PjJdLGFbT2UrMTI+PjJdPWFbTGUrMTI+PjJdLGFbT2UrMTY+PjJdPWFbTGUrMTY+PjJdLGFbT2UrMjA+PjJdPWFbTGUrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbT2Ur''@;'; put 'put ''Mjg+PjJdPWFbTGUrMjg+PjJdLGZ1bmN0aW9uIGNCKGwsYyxmLHAsbSl7bHw9MCxjfD0wLHB8PTAsbXw9MDt2YXIgQSx3LGIsayxNLEQsUixHLHEscGUsZ2UsYmU9MCxPZT0wLExlPTA7Zm9yKHE9bGUsbGU9bGUrMTI4fDAsRz1xKzk2fDAsUj1xKzY0fDAsYj1xKzMyfDAscGU9cSsxNnwwLGdl''@;'; put 'put ''PXEsTT0rX1sxNisoZnw9MCk+PjNdLEQ9K19bZj4+M10saz0rX1tmKzI0Pj4zXSxBPStfW2YrOD4+M10sX3UoMTM3NzcwLHc9MHxhWzE1NzEyXSksYVtnZT4+Ml09MTAsYVtnZSs0Pj4yXT0xMCxhW2dlKzg+PjJdPX5+KE0rMTAtRCksYVtnZSsxMj4+Ml09fn4oaysxMC1BKSxUMCh3LDEzODIw''@;'; put 'put ''MCxnZSksX1twZT4+M109MTAtRCxfW3BlKzg+PjNdPTEwLUEsVDAodywxMzgyNDgscGUpLF91KDEzODI2NSx3KSxmPTA7ISgoMHxmKT49KDB8YykpOylMZT0rX1tsKyg3MipmfDApKzQ4Pj4zXSxPZT0rX1tsKyg3MipmfDApKzU2Pj4zXSxiZT0rX1tsKyg3MipmfDApKzY0Pj4zXSxfW2I+PjNd''@;'; put 'put ''PStfW2wrKDcyKmZ8MCkrNDA+PjNdLF9bYis4Pj4zXT1MZSxfW2IrMTY+PjNdPU9lLF9bYisyND4+M109YmUsVDAodywxMzgyODQsYiksZj1mKzF8MDtmb3IoX3UoMTM4MzAyLHcpLGY9MDshKCgwfGYpPj0oMHxtKSk7KWJlPStfW3ArKGY8PDUpKzg+PjNdLE9lPStfW3ArKGY8PDUpKzE2Pj4z''@;'; put 'put ''XSxMZT0rX1twKyhmPDw1KSsyND4+M10sX1tSPj4zXT0rX1twKyhmPDw1KT4+M10sX1tSKzg+PjNdPWJlLF9bUisxNj4+M109T2UsX1tSKzI0Pj4zXT1MZSxUMCh3LDEzODMyMSxSKSxmPWYrMXwwO191KDEzODMzOSx3KSxfW0c+PjNdPUQsX1tHKzg+PjNdPUEsX1tHKzE2Pj4zXT1NLF9bRysy''@;'; put 'put ''ND4+M109ayxUMCh3LDEzODMyMSxHKSxfdSgxMzgwODYsdyksbGU9cX0ocGUsYXQsT2UsbSxTdCkpLGFbKHA9UmUrOHwwKT4+Ml09MHx2cig3MiooMHxhW2JlPj4yXSl8MCksYVtSZT4+Ml09YVtiZT4+Ml0sZj0wfGFbYmU+PjJdLGM9MDshKCgwfGMpPj0oMHxmKSk7KWFbKFN0PSgwfGFbcD4+''@;'; put 'put ''Ml0pKyg3MipjfDApKzQwfDApPj4yXT1hWyhhdD1tKyhjPDw1KXwwKT4+Ml0sYVtTdCs0Pj4yXT1hW2F0KzQ+PjJdLGFbU3QrOD4+Ml09YVthdCs4Pj4yXSxhW1N0KzEyPj4yXT1hW2F0KzEyPj4yXSxhW1N0KzE2Pj4yXT1hW2F0KzE2Pj4yXSxhW1N0KzIwPj4yXT1hW2F0KzIwPj4yXSxhW1N0''@;'; put 'put ''KzI0Pj4yXT1hW2F0KzI0Pj4yXSxhW1N0KzI4Pj4yXT1hW2F0KzI4Pj4yXSxjPWMrMXwwO3JldHVybiBGdChtKSxhW09lPj4yXT1hW0xlPj4yXSxhW09lKzQ+PjJdPWFbTGUrND4+Ml0sYVtPZSs4Pj4yXT1hW0xlKzg+PjJdLGFbT2UrMTI+PjJdPWFbTGUrMTI+PjJdLGFbT2UrMTY+PjJdPWFb''@;'; put 'put ''TGUrMTY+PjJdLGFbT2UrMjA+PjJdPWFbTGUrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbTGUrMjQ+PjJdLGFbT2UrMjg+PjJdPWFbTGUrMjg+PjJdLGFbUmUrMTY+PjJdPTB8ZnVuY3Rpb24gTGIobCxjKXtjfD0wO3ZhciBwZSxiZSxMZSxIZSxWZSxxZSxydCxmPTAscD0wLG09MCxBPTAsdz0wLGI9''@;'; put 'put ''MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxnZT0wLE9lPTAsUmU9MCxXZT0wLGF0PTAsU3Q9MDtmb3IocnQ9bGUsbGU9bGUrMzJ8MCxiZT1ydCsxNnwwLGs9cnQsVmU9MHxmdW5jdGlvbiBaOChsKXt2YXIgYztyZXR1cm4gbHw9MCxjPTB8dnIoMjQpLGFbYz4+Ml09MCxhW2MrMTY+PjJdPTB8''@;'; put 'put ''dnIoNDAqbHwwKSwwfGN9KChSZT0wfGFbKGx8PTApPj4yXSk8PDJ8MikscWU9MHxpcyg1NTk2MCwwfGFbNDU4MV0pLExlPTB8aXMoNTU5OTYsMHxhWzQ1ODFdKSxSZT0wfHZyKFJlPDw3KSxtPTB8dnIoYVtsPj4yXTw8NCksSGU9bCs4fDAsQT1jKzE2fDAsdz1rKzh8MCxiPWMrMjR8MCxNPWMr''@;'; put 'put ''OHwwLGY9MDshKCgwfGYpPj0oMHxhW2w+PjJdKSk7KVI9KEQ9MHxhW0hlPj4yXSkrKDcyKmZ8MCl8MCxhW0QrKDcyKmZ8MCkrMzI+PjJdPTQsYVsoRz1EKyg3MipmfDApKzM2fDApPj4yXT1tKyhmPDwyPDwyKSxxPUQrKDcyKmZ8MCkrNDB8MCwocD0rX1tEKyg3MipmfDApKzU2Pj4zXSk8K19b''@;'; put 'put ''QT4+M10mJihfW2s+PjNdPXAsX1t3Pj4zXT0rX1tEKyg3MipmfDApKzQ4Pj4zXSxhW2JlPj4yXT1hW2s+PjJdLGFbYmUrND4+Ml09YVtrKzQ+PjJdLGFbYmUrOD4+Ml09YVtrKzg+PjJdLGFbYmUrMTI+PjJdPWFbaysxMj4+Ml0sZ2U9MHxIbChWZSxxZSxiZSxSZSwxKSxhW2dlKzIwPj4yXT1S''@;'; put 'put ''LGFbYVtHPj4yXT4+Ml09Z2UpLChwPStfW0QrKDcyKmZ8MCkrNjQ+PjNdKTwrX1tiPj4zXSYmKF9baz4+M109K19bcT4+M10sX1t3Pj4zXT1wLGFbYmU+PjJdPWFbaz4+Ml0sYVtiZSs0Pj4yXT1hW2srND4+Ml0sYVtiZSs4Pj4yXT1hW2srOD4+Ml0sYVtiZSsxMj4+Ml09YVtrKzEyPj4yXSxn''@;'; put 'put ''ZT0wfEhsKFZlLExlLGJlLFJlLDApLGFbZ2UrMjA+PjJdPVIsYVs0KygwfGFbRz4+Ml0pPj4yXT1nZSksK19bcT4+M10+K19bYz4+M10mJihhW2JlPj4yXT1hW3E+PjJdLGFbYmUrND4+Ml09YVtxKzQ+PjJdLGFbYmUrOD4+Ml09YVtxKzg+PjJdLGFbYmUrMTI+PjJdPWFbcSsxMj4+Ml0sZ2U9''@;'; put 'put ''MHxIbChWZSxxZSxiZSxSZSwxKSxhW2dlKzI0Pj4yXT1SLGFbOCsoMHxhW0c+PjJdKT4+Ml09Z2UpLCtfW0QrKDcyKmZ8MCkrNDg+PjNdPitfW00+PjNdJiYoYVtiZT4+Ml09YVtxPj4yXSxhW2JlKzQ+PjJdPWFbcSs0Pj4yXSxhW2JlKzg+PjJdPWFbcSs4Pj4yXSxhW2JlKzEyPj4yXT1hW3Er''@;'; put 'put ''MTI+PjJdLGdlPTB8SGwoVmUsTGUsYmUsUmUsMCksYVtnZSsyND4+Ml09UixhWzEyKygwfGFbRz4+Ml0pPj4yXT1nZSksZj1mKzF8MDtmb3IoUj0wfHZyKGFbVmU+PjJdPDwyKSxwZT1sKzR8MCxnZT1sKzEyfDAsRz1iZSs4fDAsTT0wLHE9MCxEPTA7Oyl7aWYoKDB8RCk+PSgwfChmPTB8YVtw''@;'; put 'put ''ZT4+Ml0pKSl7Yz0wO2JyZWFrfWZvcih3PShBPTB8YVtnZT4+Ml0pKyg3MipEfDApfDAsYVsoYj1BKyg3MipEfDApKzM2fDApPj4yXT1SKyhNPDwyKSxhW2JlPj4yXT1hWyhjPUErKDcyKkR8MCkrNDB8MCk+PjJdLGFbYmUrND4+Ml09YVtjKzQ+PjJdLGFbYmUrOD4+Ml09YVtjKzg+PjJdLGFb''@;'; put 'put ''YmUrMTI+PjJdPWFbYysxMj4+Ml0sYz1BKyg3MipEfDApKzU2fDAsaz1BKyg3MipEfDApKzMyfDAsZj0wfG1pWzYzJmFbTGU+PjJdXShMZSxiZSw1MTIpO2YmJitfW2YrOD4+M108K19bYz4+M107KWF0PTB8YVtmPj4yXSxXZT0wfGFbYj4+Ml0sYVtrPj4yXT0xKyhtPTB8YVtrPj4yXSksYVtX''@;'; put 'put ''ZSsobTw8Mik+PjJdPWF0LGFbMjQrKDB8YVtmPj4yXSk+PjJdPXcsZj0wfG1pWzYzJmFbTGU+PjJdXShMZSxmLDgpO2ZvcihtPUErKDcyKkR8MCkrNjR8MCxmPTB8bWlbNjMmYVtxZT4+Ml1dKHFlLGJlLDUxMik7Oyl7aWYoIWYpe09lPTIwO2JyZWFrfWlmKCEoK19bZisxNj4+M108KHA9K19b''@;'; put 'put ''bT4+M10pKSlicmVhaztjPTB8YVtmPj4yXSxXZT0wfGFbYj4+Ml0sYVtrPj4yXT0xKyhhdD0wfGFbaz4+Ml0pLGFbV2UrKGF0PDwyKT4+Ml09YyxhWzI0KygwfGFbZj4+Ml0pPj4yXT13LGY9MHxtaVs2MyZhW3FlPj4yXV0ocWUsZiw4KX1mb3IoMjA9PSgwfE9lKSYmKE9lPTAscD0rX1ttPj4z''@;'; put 'put ''XSksX1tHPj4zXT1wLGM9QSsoNzIqRHwwKSs1NnwwLGY9MHxtaVs2MyZhW0xlPj4yXV0oTGUsYmUsNTEyKTs7KXtpZighZil7T2U9MjU7YnJlYWt9aWYoISgrX1tmKzg+PjNdPChwPStfW2M+PjNdKSkpYnJlYWs7U3Q9MHxhW2Y+PjJdLFdlPTB8YVtiPj4yXSxhW2s+PjJdPTErKGF0PTB8YVtr''@;'; put 'put ''Pj4yXSksYVtXZSsoYXQ8PDIpPj4yXT1TdCxhWzIwKygwfGFbZj4+Ml0pPj4yXT13LGY9MHxtaVs2MyZhW0xlPj4yXV0oTGUsZiw4KX1mb3IoMjU9PSgwfE9lKSYmKE9lPTAscD0rX1tjPj4zXSksX1tiZT4+M109cCxfW0c+PjNdPStfW0ErKDcyKkR8MCkrNDg+PjNdLGY9MHxtaVs2MyZhW3Fl''@;'; put 'put ''Pj4yXV0ocWUsYmUsNTEyKTtmJiYrX1tmKzE2Pj4zXTwrX1ttPj4zXTspV2U9MHxhW2Y+PjJdLGF0PTB8YVtiPj4yXSxhW2s+PjJdPTErKFN0PTB8YVtrPj4yXSksYVthdCsoU3Q8PDIpPj4yXT1XZSxhWzIwKygwfGFbZj4+Ml0pPj4yXT13LGY9MHxtaVs2MyZhW3FlPj4yXV0ocWUsZiw4KTtN''@;'; put 'put ''PShTdD0wfGFbaz4+Ml0pK018MCxxPSgwfFN0KT4oMHxxKT9TdDpxLEQ9RCsxfDB9Zm9yKDshKCgwfGMpPj0oMHxmKSk7KWZCKCgwfGFbZ2U+PjJdKSsoNzIqY3wwKXwwKSxjPWMrMXwwLGY9MHxhW3BlPj4yXTtmb3IoYVsoU3Q9MHxhW1ZlKzE2Pj4yXSkrKDQwKihmPTB8YVtWZT4+Ml0pfDAp''@;'; put 'put ''KzMyPj4yXT1mLGFbU3QrKDQwKihmPWYrMXwwKXwwKSszMj4+Ml09ZixmdW5jdGlvbiBNUihsLGMpe3ZhciBtLGY9MCxwPTA7Zm9yKGY9MHx2cigoNiooMHxhWyhsfD0wKT4+Ml0pfDApKygoY3w9MCk8PDEpPDwyKSxhW2wrMjA+PjJdPTB8dnIoMjQqKCgzKigwfGFbbD4+Ml0pfDApK2N8MCl8''@;'; put 'put ''MCkscD0wfGFbbD4+Ml0sbT1sKzE2fDAsbD0wOyEoKDB8bCk+PSgwfHApKTspYVsoMHxhW20+PjJdKSsoNDAqbHwwKSsyOD4+Ml09ZixmPWYrMjR8MCxsPWwrMXwwO2ZvcihwPXArMnwwOyEoKDB8bCk+PSgwfHApKTspYVsoMHxhW20+PjJdKSsoNDAqbHwwKSsyOD4+Ml09ZixmPWYrKGM8PDIp''@;'; put 'put ''fDAsbD1sKzF8MH0oVmUscSksZj0wOyEoKDB8Zik+PSgwfGFbbD4+Ml0pKTspJDgoKDB8YVtIZT4+Ml0pKyg3MipmfDApfDAsVmUpLGY9ZisxfDA7cmV0dXJuIE5sKHFlKSxObChMZSksRnQoUmUpLGZ1bmN0aW9uIHlmKGwpe3ZhciBtLEEsdyxiLGssYz0wLGY9MCxwPTA7Zm9yKGs9bGUsbGU9''@;'; put 'put ''bGUrMTZ8MCxiPWsrOHwwLHc9ayxtPTE2KyhsfD0wKXwwLEE9MHxhWzE1NzEyXSxwPTA7Oyl7aWYoKDB8cCk+PSgwfGFbbD4+Ml0pKXtjPTEwO2JyZWFrfWlmKDA9PSgwfGFbKGY9KGM9MHxhW20+PjJdKSsoNDAqcHwwKSsyMHwwKT4+Ml0pJiYoYVt3Pj4yXT1wLFQwKEEsMTM4MDk2LHcpLDA9''@;'; put 'put ''PSgwfGFbZj4+Ml0pKSl7Yz01O2JyZWFrfWlmKDA9PSgwfGFbKGM9YysoNDAqcHwwKSsyNHwwKT4+Ml0pJiYoYVtiPj4yXT1wLFQwKEEsMTM4MTQ4LGIpLDA9PSgwfGFbYz4+Ml0pKSl7Yz04O2JyZWFrfXA9cCsxfDB9aWYoNT09KDB8YykpUHIoMTM4MTE4LDEzODEzMSwzMTEsMTM4MTM4KTtl''@;'; put 'put ''bHNlIGlmKDg9PSgwfGMpKVByKDEzODE3MCwxMzgxMzEsMzEzLDEzODEzOCk7ZWxzZSBpZigxMD09KDB8YykpbGU9a30oVmUpLGZ1bmN0aW9uIEpNKGwpe3ZhciBjLGYscD0wO2ZvcihhWzgrKGx8PTApPj4yXT1mPTB8YVtsPj4yXSxhW2wrMTI+PjJdPWFbbCs0Pj4yXSxjPWwrMTZ8MCxsPTA7''@;'; put 'put ''ISgoMHxsKT49KDB8ZikpOylpdFsocD0wfGFbYz4+Ml0pKyg0MCpsfDApKzE4Pj4xXT0wfGl0W3ArKDQwKmx8MCkrMTY+PjFdLGw9bCsxfDB9KFZlKSxsZT1ydCwwfFZlfShSZSxPZSksbGU9SGUsMHxSZX0sdzAsUzAsZnVuY3Rpb24gemEobCxjKXtyZXR1cm4oMHxhWyhsfD0wKT4+Ml0pLSgw''@;'; put 'put ''fGFbKGN8PTApPj4yXSl8MH0sWmksZnVuY3Rpb24ga2IobCxjKXtyZXR1cm4gMHx5MCgwfGFbKGx8PTApPj4yXSwwfGFbKGN8PTApPj4yXSl9LGZ1bmN0aW9uIFNzKGwsYyl7cmV0dXJuIDB8eTAoMHxhWyhsfD0wKT4+Ml0sMHxhWyhjfD0wKT4+Ml0pfSxmdW5jdGlvbiBaQihsLGMpe2x8PTAs''@;'; put 'put ''Y3w9MDt2YXIgbSxmPTAscD0wO2ZvcihtPTB8YVs0NzUxM10sZj0wLHA9MDszIT0oMHxwKTspZj1mKygyIT0oMHxKZigwfGFbYVttKyg1MipsfDApKzQrKHA8PDQpPj4yXT4+Ml0sMHxhW2FbbSsoNTIqbHwwKSs0KyhwPDw0KSs0Pj4yXT4+Ml0sYykpJjEpfDAscD1wKzF8MDtyZXR1cm4gMSYo''@;'; put 'put ''Mz09KDB8Zil8MD09KDB8ZikpfDB9LGZ1bmN0aW9uIHpCKGwsYyl7Y3w9MDt2YXIgZj0wLHA9MCxtPTA7cD0oZj0wfGFbNDc1MTNdKSsoNTIqKGx8PTApfDApfDA7ZTpkb3tpZigwfGFbcD4+Ml0pZj0wO2Vsc2UgaWYoYVtwPj4yXT0xLCgwfGwpPT0oMHxjKSlmPTE7ZWxzZXtmb3IobT0wOyEo''@;'; put 'put ''KDB8bSk+PTMpOyl7aWYocD0wfGFbZisoNTIqbHwwKSs0KyhtPDw0KSsxMj4+Ml0pe2lmKDB8ekIoKHAtZnwwKS81MnwwLGMpKXtmPTE7YnJlYWsgZX1mPTB8YVs0NzUxM119bT1tKzF8MH1hW2YrKDUyKmx8MCk+PjJdPTAsZj0wfX13aGlsZSgwKTtyZXR1cm4gMHxmfSxVYSxmdW5jdGlvbiBy''@;'; put 'put ''UChsLGMpe3JldHVybiAwfCgobD0wfEJpWzEyNyZhWzM2NCsobHw9MCk+PjJdXSgwfGFbbCszNjg+PjJdLGN8PTApKT4+PjA+NjU1MzU/MDphWzU2OTQwKygoKDB8WHRbMTQ0MDQ0KyhsPj4+OCk+PjBdKTw8M3xsPj4+NSY3KTw8Mik+PjJdJjE8PCgzMSZsKSl9LGZ1bmN0aW9uIGlQKGwsYyl7''@;'; put 'put ''cmV0dXJuIDB8KChsPTB8QmlbMTI3JmFbMzY0KyhsfD0wKT4+Ml1dKDB8YVtsKzM2OD4+Ml0sY3w9MCkpPj4+MD42NTUzNT8wOmFbNTY5NDArKCgoMHxYdFsxNDM3ODgrKGw+Pj44KT4+MF0pPDwzfGw+Pj41JjcpPDwyKT4+Ml0mMTw8KDMxJmwpKX0sZnVuY3Rpb24gQl8obCxjKXtyZXR1cm4g''@;'; put 'put ''MHwoKGw9MHxCaVsxMjcmYVszNjQrKGx8PTApPj4yXV0oMHxhW2wrMzY4Pj4yXSxjfD0wKSk+Pj4wPjY1NTM1PzE6KDB8UGQobCkpPj4+MzEpfSxmdW5jdGlvbiBvZmUobCxjKXtyZXR1cm4oMHxhW2FbKGx8PTApPj4yXT4+Ml0pLSgwfGFbYVsoY3w9MCk+PjJdPj4yXSl8MH0sSzEsSzEsSzEs''@;'; put 'put ''SzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzEsSzFdLGQ4PVtSTCxmdW5jdGlvbiBnOWUobCxjLGYscCl7bHw9MCxmPStmLHA9K3A7dmFyIGssRyxxLG09MCxBPTAsdz0wLGI9MCxNPTAsRD0wLFI9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO3E9bGUsbGU9bGUrODB8MCxEPXErNjR8''@;'; put 'put ''MCxHPXErNjh8MCxBPXErNDh8MCx3PXErMzJ8MCxiPXErMTZ8MCxrPXEsbT0wfGFbKE09MTYrKGN8PTApfDApPj4yXTtlOmRve2lmKDB8YVttKzIxMj4+Ml0pYVtHPj4yXT00LGJlPS41KitfW20rMzI+PjNdK2YsT2U9LjUqK19bbSs0MD4+M10rcCxhW2wrNDA+PjJdPTEsQT0wfFFuKDY0KSxf''@;'; put 'put ''W0E+PjNdPWJlLF9bQSs4Pj4zXT1PZSxnZT0tYmUsX1tBKzE2Pj4zXT1nZSxfW0ErMjQ+PjNdPU9lLF9bQSszMj4+M109Z2UsT2U9LU9lLF9bQSs0MD4+M109T2UsX1tBKzQ4Pj4zXT1iZSxfW0ErNTY+PjNdPU9lLFI9MjE7ZWxzZSBzd2l0Y2goMHwkNShjKSl7Y2FzZSAxOnN3aXRjaChhW0c+''@;'; put 'put ''PjJdPWI9MHxhWzgrKHc9MHxhWzEyKyhtPTB8YVtNPj4yXSk+PjJdKT4+Ml0sMHxmZVsobT0wfGFbYVttKzg+PjJdPj4yXSk+PjBdKXtjYXNlIDk4OlI9MHxaaShtLDEwODIzNik/ODoxMTticmVhaztjYXNlIDExMjpSPTA9PSgwfFppKG0sMTA1NzIxKSkmJjAhPSgwfEgyZSgwfGFbdys0ND4+''@;'; put 'put ''Ml0sYikpPzExOjg7YnJlYWs7ZGVmYXVsdDpSPTh9ZG97aWYoOD09KDB8Uikpe2lmKCgwfGIpPDMpe2FbbCs0MD4+Ml09MD09KDB8YVt3Pj4yXSk/MDoyLFI9MTc7YnJlYWt9YVsobT1sKzQwfDApPj4yXT0wO2JyZWFrfTExPT0oMHxSKSYmKGFbKG09bCs0MHwwKT4+Ml09MSwoMHxiKTw9MiYm''@;'; put 'put ''KFI9MTcpKX13aGlsZSgwKTtpZigxNz09KDB8Uikpe0E9MHxRVihjLEcsZixwKSxSPTIxO2JyZWFrIGV9aWYoQT0wfFFuKGI8PDQpLHc9dys0NHwwLDE9PSgwfGFbbT4+Ml0pKXtfW0E+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bKFI9MHxhW3c+PjJdKT4+M10rKHBlPWYpLF9bQSs4Pj4z''@;'; put 'put ''XT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW1IrOD4+M10rKGY9cCksX1tBKzE2Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW1IrMTY+PjNdLXBlLF9bQSsyND4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tSKzI0Pj4zXStmLF9bQSszMj4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1tS''@;'; put 'put ''KzMyPj4zXS1wZSxfW0ErNDA+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bUis0MD4+M10tZixfW0ErNDg+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bUis0OD4+M10rcGUsX1tBKzU2Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW1IrNTY+PjNdLWYsUj0yMTticmVhayBlfWZvciht''@;'; put 'put ''PTA7Oyl7aWYoKDB8bSk+PSgwfGIpKXtSPTIxO2JyZWFrIGV9Z2U9K0QwKCsoKHBlPStfWyhSPTB8YVt3Pj4yXSkrKG08PDQpKzg+PjNdKSpwZSsoYmU9K19bUisobTw8NCk+PjNdKSpiZSkpLF9bQSsobTw8NCk+PjNdPShmL2dlKzEpKmJlKi4wMTM4ODg4ODg4ODg4ODg4ODgsX1tBKyhtPDw0''@;'; put 'put ''KSs4Pj4zXT0ocC9nZSsxKSpwZSouMDEzODg4ODg4ODg4ODg4ODg4LG09bSsxfDB9Y2FzZSAyOmFbRz4+Ml09NCxSPTB8UW4oNjQpLE9lPStfWzMyKyhjPTB8YVsxMisoMHxhW00+PjJdKT4+Ml0pPj4zXSxnZT0rX1tjKzQwPj4zXSxKVihBLEQ9fn4rX1tjKzE2Pj4zXSxjPX5+K19bYysyND4+''@;'; put 'put ''M10sYmU9LWYscGU9LXApLGFbUj4+Ml09YVtBPj4yXSxhW1IrND4+Ml09YVtBKzQ+PjJdLGFbUis4Pj4yXT1hW0ErOD4+Ml0sYVtSKzEyPj4yXT1hW0ErMTI+PjJdLEE9UisxNnwwLEpWKHcsTT1+fk9lLGMsZixwZSksYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sYVtBKzg+''@;'; put 'put ''PjJdPWFbdys4Pj4yXSxhW0ErMTI+PjJdPWFbdysxMj4+Ml0sQT1SKzMyfDAsSlYoYixNLGM9fn5nZSxmLHApLGFbQT4+Ml09YVtiPj4yXSxhW0ErND4+Ml09YVtiKzQ+PjJdLGFbQSs4Pj4yXT1hW2IrOD4+Ml0sYVtBKzEyPj4yXT1hW2IrMTI+PjJdLEE9Uis0OHwwLEpWKGssRCxjLGJlLHAp''@;'; put 'put ''LGFbQT4+Ml09YVtrPj4yXSxhW0ErND4+Ml09YVtrKzQ+PjJdLGFbQSs4Pj4yXT1hW2srOD4+Ml0sYVtBKzEyPj4yXT1hW2srMTI+PjJdLGFbbCs0MD4+Ml09MSxBPVIsUj0yMTticmVhayBlO2Nhc2UgMzphW2wrNDA+PjJdPTIsQT0wfFFWKGMsRyxmLHApLFI9MjE7YnJlYWsgZTtkZWZhdWx0''@;'; put 'put ''OmFbRD4+Ml09YVthWzgrKDB8YVtNPj4yXSk+PjJdPj4yXSwkcigxLDkzODgzLEQpLG09MTticmVhayBlfX13aGlsZSgwKTtyZXR1cm4gMjE9PSgwfFIpJiYoYVtsKzM2Pj4yXT1BLGFbbCszMj4+Ml09bT0wfGFbRz4+Ml0sTjJlKEEsbSxsLGwrMTZ8MCksKDB8bSk+KDB8YVs0NjkxNF0pJiYo''@;'; put 'put ''YVs0NjkxNF09bSksbT0wKSxsZT1xLDB8bX0sZnVuY3Rpb24gbTllKGwsYyxmLHApe2x8PTAsZj0rZixwPStwO3ZhciBSLHEsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLEc9MCxwZT0wLGdlPTAsYmU9MCxPZT0wO3E9bGUsbGU9bGUrODB8MCxNPXErNjR8MCxSPXErNjh8MCxBPXErNDh8''@;'; put 'put ''MCx3PXErMzJ8MCxiPXErMTZ8MCxrPXEsbT0wfGFbKEQ9MTYrKGN8PTApfDApPj4yXTtlOmRve2lmKDB8YVttKzIxMj4+Ml0pYVtSPj4yXT00LGJlPS41KitfW20rMzI+PjNdLE9lPS41KitfW20rNDA+PjNdLGFbbCs0MD4+Ml09MSxBPTB8UW4oNjQpLF9bQT4+M109YmUsX1tBKzg+PjNdPU9l''@;'; put 'put ''LGdlPS1iZSxfW0ErMTY+PjNdPWdlLF9bQSsyND4+M109T2UsX1tBKzMyPj4zXT1nZSxPZT0tT2UsX1tBKzQwPj4zXT1PZSxfW0ErNDg+PjNdPWJlLF9bQSs1Nj4+M109T2UsRz0yMDtlbHNlIHN3aXRjaCgwfCQ1KGMpKXtjYXNlIDE6YVtSPj4yXT1iPTB8YVsoTT04KyhrPTB8YVsxMisoMHxh''@;'; put 'put ''W0Q+PjJdKT4+Ml0pfDApPj4yXTt0OmRve2lmKCgwfGIpPjIpZm9yKEE9MHxRbihiPDw0KSx3PWsrNDR8MCxtPTA7Oyl7aWYoKDB8bSk+PSgwfGIpKWJyZWFrIHQ7X1tBKyhtPDw0KT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1soYz0wfGFbdz4+Ml0pKyhtPDw0KT4+M10sX1tBKyhtPDw0''@;'; put 'put ''KSs4Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KitfW2MrKG08PDQpKzg+PjNdLG09bSsxfDB9ZWxzZSBBPTB8UVYoYyxSLDAsMCl9d2hpbGUoMCk7c3dpdGNoKDB8ZmVbKG09MHxhW2FbOCsoMHxhW0Q+PjJdKT4+Ml0+PjJdKT4+MF0pe2Nhc2UgOTg6MHxaaShtLDEwODIzNik/Rz0xMzptPTE7''@;'; put 'put ''YnJlYWs7Y2FzZSAxMTI6MD09KDB8WmkobSwxMDU3MjEpKSYmMCE9KDB8SDJlKEEsMHxhW1I+PjJdKSk/bT0xOkc9MTM7YnJlYWs7ZGVmYXVsdDpHPTEzfWRve2lmKDEzPT0oMHxHKSl7aWYoKDB8YVtNPj4yXSk8MyYmMHxhW2s+PjJdKXttPTI7YnJlYWt9bT0wfX13aGlsZSgwKTthW2wrNDA+''@;'; put 'put ''PjJdPW0sRz0yMDticmVhayBlO2Nhc2UgMjphW1I+PjJdPTQsRz0wfFFuKDY0KSxiZT0rX1szMisoRD0wfGFbMTIrKDB8YVtEPj4yXSk+PjJdKT4+M10scGU9K19bRCs0MD4+M10scUQoQSxnZT0rX1tEKzE2Pj4zXSxPZT0rX1tEKzI0Pj4zXSksYVtHPj4yXT1hW0E+PjJdLGFbRys0Pj4yXT1h''@;'; put 'put ''W0ErND4+Ml0sYVtHKzg+PjJdPWFbQSs4Pj4yXSxhW0crMTI+PjJdPWFbQSsxMj4+Ml0sQT1HKzE2fDAscUQodyxiZSxPZSksYVtBPj4yXT1hW3c+PjJdLGFbQSs0Pj4yXT1hW3crND4+Ml0sYVtBKzg+PjJdPWFbdys4Pj4yXSxhW0ErMTI+PjJdPWFbdysxMj4+Ml0sQT1HKzMyfDAscUQoYixi''@;'; put 'put ''ZSxwZSksYVtBPj4yXT1hW2I+PjJdLGFbQSs0Pj4yXT1hW2IrND4+Ml0sYVtBKzg+PjJdPWFbYis4Pj4yXSxhW0ErMTI+PjJdPWFbYisxMj4+Ml0sQT1HKzQ4fDAscUQoayxnZSxwZSksYVtBPj4yXT1hW2s+PjJdLGFbQSs0Pj4yXT1hW2srND4+Ml0sYVtBKzg+PjJdPWFbays4Pj4yXSxhW0Er''@;'; put 'put ''MTI+PjJdPWFbaysxMj4+Ml0sYVtsKzQwPj4yXT0xLEE9RyxHPTIwO2JyZWFrIGU7Y2FzZSAzOmFbbCs0MD4+Ml09MixBPTB8UVYoYyxSLDAsMCksRz0yMDticmVhayBlO2RlZmF1bHQ6YVtNPj4yXT1hW2FbOCsoMHxhW0Q+PjJdKT4+Ml0+PjJdLCRyKDEsOTM5MTksTSksbT0xO2JyZWFrIGV9''@;'; put 'put ''fXdoaWxlKDApO3JldHVybiAyMD09KDB8RykmJihtPTB8YVtSPj4yXSwxIT1mfDEhPXAmJmZ1bmN0aW9uIGVMKGwsYyxmLHApe2x8PTAsY3w9MCxmPStmLHA9K3A7dmFyIG09MCxBPTA7Zm9yKG09MDshKCgwfG0pPj0oMHxjKSk7KV9bbD4+M109K19bbD4+M10qZixfWyhBPWwrOHwwKT4+M109''@;'; put 'put ''K19bQT4+M10qcCxsPWwrMTZ8MCxtPW0rMXwwfShBLG0sZixwKSxhW2wrMzY+PjJdPUEsYVtsKzMyPj4yXT1tLE4yZShBLG0sbCxsKzE2fDApLCgwfG0pPigwfGFbNDY5MTRdKSYmKGFbNDY5MTRdPW0pLG09MCksbGU9cSwwfG19LFJMXSxtaT1bTTIsZnVuY3Rpb24gX0QobCxjLGYpe2x8PTAs''@;'; put 'put ''Znw9MDt2YXIgbSxwPTA7cD04KyhjfD0wKXwwLG09NDgrKGY9OCsobD0wfHZyKDY0KSl8MCl8MDtkb3thW2Y+PjJdPWFbcD4+Ml0sZj1mKzR8MCxwPXArNHwwfXdoaWxlKCgwfGYpPCgwfG0pKTtyZXR1cm4gYVtsKzU2Pj4yXT1jPTB8YVtjKzU2Pj4yXSxpdFsxNjgrKDB8YVtjKzE2Pj4yXSk+''@;'; put 'put ''PjFdPTEsMHxsfSxmdW5jdGlvbiByTChsLGMsZil7cmV0dXJuIGN8PTAsZnw9MCxmPTB8ZnVuY3Rpb24gQ0sobCl7dmFyIG0sYz0wLGY9MCxwPTA7cmV0dXJuKDB8KGM9MHxhWzQrKGw9MHxhWyhtPTgrKGx8PTApfDApPj4yXSk+PjJdKSk9PSgwfGFbbCs4Pj4yXSkmJigocD0wfGFbKGY9bCsx''@;'; put 'put ''MnwwKT4+Ml0pP2w9cDoobD0wfGYxZSgoKGMtKDB8YVtsPj4yXSl8MCkvMjB8MCk8PDEpLGFbZj4+Ml09bCksYVttPj4yXT1sLGFbbCs0Pj4yXT1jPTB8YVtsPj4yXSksYVtsKzQ+PjJdPWMrMjAsMHxjfSgwfGFbNDY5MjRdKSxhW2Y+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxh''@;'; put 'put ''W2YrOD4+Ml09MCwwfGZ9LGZ1bmN0aW9uIE1BKGwsYyxmKXtyZXR1cm4gY3w9MCxmfD0wLGY9MHxRbigxNiksYVtmKzEyPj4yXT0wLGFbZis4Pj4yXT1hW2MrOD4+Ml0sMHxmfSxmdW5jdGlvbiBsVChsLGMsZil7cmV0dXJuIGN8PTAsZnw9MCxmPTB8UW4oMTIpLGFbZis4Pj4yXT1hW2MrOD4+''@;'; put 'put ''Ml0sMHxmfSxmdW5jdGlvbiBQUChsLGMsZil7Y3w9MCxmfD0wO3ZhciBSLEcscSxwZSxnZSxPZSxSZSxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLGJlPTAsTGU9MDs0MDk2JmFbYVsoT2U9OCsobHw9MCl8MCk+PjJdPj4yXXwwJiZDYyhsLDApLFI9MHxhWyhiZT0wfGFbbCs0Pj4y''@;'; put 'put ''XSk+PjJdLEc9MHxhW2JlKzQ+PjJdLFJlPTB8YVsoZ2U9YmUrOHwwKT4+Ml0scT0wfGFbYmUrMjA+PjJdLGFbKHBlPWwrMjB8MCk+PjJdPW09LTMyNzY5JmFbcGU+PjJdO2U6ZG97aWYoYyl7aWYoMjA0OSZmfDApe2lmKCh3PTA9PSgxJmZ8MCkpfDA9PSgwfChwPTB8YVsoQT1iZSsxMnwwKT4+''@;'; put 'put ''Ml0pKSltPWM7ZWxzZXtpZighKHA9MHxtaVs2MyZwXShsLGMsYmUpKSl7cD0wO2JyZWFrfW09cH1kb3tpZighKCgwfFJlKT4tMSkpe2lmKDB8KHA9MHxxMFsxMjcmYVtsKzEyPj4yXV0obCwwLDEyLGJlKSkpe2FbcCs4Pj4yXT1tLHc9cDticmVha31pZighKDB8YVtBPj4yXSkpe3A9MDticmVh''@;'; put 'put ''ayBlfWlmKHd8MD09KDB8KHA9MHxhW2JlKzE2Pj4yXSkpKXtwPTA7YnJlYWsgZX1kbFsxMjcmcF0obCxtLGJlKSxwPTA7YnJlYWsgZX13PW0rUmV8MH13aGlsZSgwKTtwPTB8YVsoQT0wfGFbT2U+PjJdKT4+Ml07ZG97aWYoISgxMjgmcCkpe2lmKCEoMTYmcCkpe2lmKDMyJnApe0xlPTQ4O2Jy''@;'; put 'put ''ZWFrfUxlPTUxO2JyZWFrfWlmKHA9MCE9KDB8KG09MHxhW0ErND4+Ml0pKSw4MTkyJmYpe2lmKCFwKXtMZT01MTticmVha31pZighKHA9MHxhW20+PjJdKSl7TGU9NTE7YnJlYWt9YVt3Pj4yXT1wLGFbcCs0Pj4yXT13LGFbdys0Pj4yXT1tLGFbbT4+Ml09dzticmVha31pZighcCl7TGU9NDg7''@;'; put 'put ''YnJlYWt9aWYoKDB8bSk9PSgwfGFbQSs4Pj4yXSkpe0xlPTQ4O2JyZWFrfWFbdys0Pj4yXT1sPTB8YVsoYmU9bSs0fDApPj4yXSxhW2w+PjJdPXcsYVt3Pj4yXT1tLGFbYmU+PjJdPXc7YnJlYWt9TGU9ODE5MiZmPzUxOjQ4fXdoaWxlKDApO2lmKDQ4PT0oMHxMZSk/KGFbdz4+Ml09cD0wfGFb''@;'; put 'put ''QSs4Pj4yXSxwP2Fbdys0Pj4yXT1hW3ArND4+Ml06cD13LGFbcCs0Pj4yXT13LGFbOCsoMHxhW09lPj4yXSk+PjJdPXcpOjUxPT0oMHxMZSkmJigocD0wfGFbKG09QSs4fDApPj4yXSk/KGFbYVsoYmU9cCs0fDApPj4yXT4+Ml09dyxhW3crND4+Ml09YVtiZT4+Ml0pOihhW20+PjJdPXcscD13''@;'; put 'put ''KSxhW3ArND4+Ml09dyxhW3c+PjJdPTApLCgwfChBPTB8YVsobT0xNisocD0wfGFbT2U+PjJdKXwwKT4+Ml0pKT4tMSYmKGFbbT4+Ml09QSsxKSxhW3ArND4+Ml09dywoMHxSZSk8MCl7cD0wfGFbdys4Pj4yXTticmVha31wPXcrKDAtUmUpfDA7YnJlYWt9dz0wfGFbT2U+PjJdO2Rve2lmKDUx''@;'; put 'put ''MiZmKUxlPTY4O2Vsc2V7aWYoMHwocD0wfGFbdys0Pj4yXSkmJigwfChBPSgwfFJlKTwwPzB8YVtwKzg+PjJdOnArKDAtUmUpfDApKT09KDB8YykpYnJlYWs7cD1jK1J8MCwoMHxHKTwwPyhjPTB8YVtwPj4yXSxMZT02OCk6KGM9cCxMZT02OCl9fXdoaWxlKDApO2lmKDY4PT0oMHxMZSkpe0E9''@;'; put 'put ''KDB8UmUpPDAsYj0oMHxHKTwwLGs9MD09KDB8cSksTT0oMHxHKTwxLEQ9MC1SZXwwLHA9dys4fDA7ZG97aWYoIShwPTB8YVtwPj4yXSkpe3A9MDticmVhayBlfW09KG09QT8wfGFbcCs4Pj4yXTpwK0R8MCkrUnwwLGImJihtPTB8YVttPj4yXSk7ZG97aWYoayl7aWYoTSl7bT0wfFppKGMsbSk7''@;'; put 'put ''YnJlYWt9bT0wfHQzKGMsbSxHKTticmVha31tPTB8cTBbMTI3JnFdKGwsYyxtLGJlKX13aGlsZSgwKX13aGlsZSgwIT0oMHxtKSk7bT0wfGFbcGU+PjJdfWlmKGFbcGU+PjJdPTMyNzY4fG0sISg0MDk4JmYpKXtkb3tpZighKDgmZikpe2lmKG09MHxhW09lPj4yXSwhKDE2JmYpKXthW20rND4+''@;'; put 'put ''Ml09cDticmVha31pZigoMHxwKT09KDB8YVttKzg+PjJdKSl7YVttKzQ+PjJdPTAscD0wO2JyZWFrIGV9cD1wKzR8MCxMZT0xMDg7YnJlYWt9bT0wfGFbT2U+PjJdLExlPTEwOH13aGlsZSgwKTtpZigxMDg9PSgwfExlKSYmKGFbbSs0Pj4yXT1wPTB8YVtwPj4yXSwhcCkpe3A9MDticmVha31p''@;'; put 'put ''ZigoMHxSZSk8MCl7cD0wfGFbcCs4Pj4yXTticmVha31wPXArKDAtUmUpfDA7YnJlYWt9dz1wLExlPTg0fWVsc2V7aWYoMzg0JmZ8MCl7aWYoIShwPTB8YVs4KyhtPTB8YVtPZT4+Ml0pPj4yXSkpe3A9MDticmVha31pZigyNTYmZil7aWYoYVttKzQ+PjJdPXA9MHxhW3ArND4+Ml0sIXApe3A9''@;'; put 'put ''MDticmVha319ZWxzZSBhW20rND4+Ml09cDtpZigoMHxSZSk8MCl7cD0wfGFbcCs4Pj4yXTticmVha31wPXArKDAtUmUpfDA7YnJlYWt9aWYoNDA5OCZmfDApe2lmKDE0NCZhWyhwPTB8YVtPZT4+Ml0pPj4yXXwwKXtwPTA7YnJlYWt9aWYocD0wfGFbcCs4Pj4yXSl7dz1wLExlPTg0O2JyZWFr''@;'; put 'put ''fXA9MDticmVha31pZig2NCZmKXtiPWJlKzE2fDA7dDpkb3tpZigwIT0oMHxhW2I+PjJdKXwoMHxSZSk8MClmb3Ioaz1sKzEyfDAsTT0oMHxSZSk8MCxtPTAtUmV8MCxwPTB8YVs4KygwfGFbT2U+PjJdKT4+Ml07Oyl7aWYoIXApYnJlYWsgdDtBPTB8YVtwPj4yXSwwfCh3PTB8YVtiPj4yXSkm''@;'; put 'put ''JmRsWzEyNyZ3XShsLGM9TT8wfGFbcCs4Pj4yXTpwK218MCxiZSksKDB8YVtnZT4+Ml0pPj0wfHxxMFsxMjcmYVtrPj4yXV0obCxwLDAsYmUpLHA9QX19d2hpbGUoMCk7YVs0KyhwPTB8YVtPZT4+Ml0pPj4yXT0wLGFbcCs4Pj4yXT0wLGFbMTYrKDB8YVtPZT4+Ml0pPj4yXT0wLHA9MH1lbHNl''@;'; put 'put ''IHA9MH19d2hpbGUoMCk7cmV0dXJuIDg0PT0oMHxMZSkmJigocD0wfGFbdz4+Ml0pJiYoYVtwKzQ+PjJdPWFbdys0Pj4yXSxwPTB8YVt3Pj4yXSksKDB8dyk9PSgwfChBPTB8YVsobT04KygwfGFbT2U+PjJdKXwwKT4+Ml0pKT8oYVttPj4yXT1wLDB8KHA9MHxhWzgrKDB8YVtPZT4+Ml0pPj4y''@;'; put 'put ''XSkmJihhW3ArND4+Ml09YVt3KzQ+PjJdKSk6KGFbYVsobT13KzR8MCk+PjJdPj4yXT1wLCgwfHcpPT0oMHxhWyhwPUErNHwwKT4+Ml0pJiYoYVtwPj4yXT1hW20+PjJdKSksYVsobT00KyhwPTB8YVtPZT4+Ml0pfDApPj4yXT1BPSgwfHcpPT0oMHxhW20+PjJdKT8wfGFbdz4+Ml06MCxhWyhM''@;'; put 'put ''ZT1wKzE2fDApPj4yXT0oMHxhW0xlPj4yXSktMSxwPSgwfFJlKTwwPzB8YVt3Kzg+PjJdOncrKDAtUmUpfDAsMD09KDImZnwwKXwwPT0oMHwobT0wfGFbYmUrMTY+PjJdKSl8fGRsWzEyNyZtXShsLHAsYmUpLCgwfGFbZ2U+PjJdKTwwJiZxMFsxMjcmYVtsKzEyPj4yXV0obCx3LDAsYmUpKSww''@;'; put 'put ''fHB9LGZ1bmN0aW9uIEZQKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE9lLFdlLGF0LFN0LGt0LEV0LFp0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsTGU9MCxSZT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsc3Q9MDtadD1sZSxsZT1sZSsx''@;'; put 'put ''Mjh8MCxydD1adCsxMjB8MCxnZT1adCw0MDk2JmFbKHA9MHxhWyhFdD04KyhsfD0wKXwwKT4+Ml0pPj4yXSYmKENjKGwsMCkscD0wfGFbRXQ+PjJdKSxXZT0wfGFbKHN0PTB8YVtsKzQ+PjJdKT4+Ml0sYXQ9MHxhW3N0KzQ+PjJdLGt0PTB8YVsoVmU9c3QrOHwwKT4+Ml0sU3Q9MHxhW3N0KzIw''@;'; put 'put ''Pj4yXSxhWyhPZT1sKzIwfDApPj4yXT0tMzI3NjkmYVtPZT4+Ml0sdz0wfGFbcCs0Pj4yXTtlOmRve2lmKGMpe3FlPWwrMTZ8MCxMZT0wPT0oNDA5OCZmfDApO3Q6ZG97aWYoTGV8OCE9KDB8YVs0KygwfGFbcWU+PjJdKT4+Ml0pKVJlPTQ1O2Vsc2V7Zm9yKHA9YytXZXwwLChNPSgwfGF0KTww''@;'; put 'put ''KSYmKHA9MHxhW3A+PjJdKSxiPTA9PSgwfFN0KSxrPSgwfGF0KTwxLEE9MHxtaVs2MyZhW2w+PjJdXShsLGMsNCk7Oyl7aWYoIUEpe1JlPTQ1O2JyZWFrIHR9bT1BK1dlfDAsTSYmKG09MHxhW20+PjJdKTtkb3tpZihiKXtpZihrKXttPTB8WmkocCxtKTticmVha31tPTB8dDMocCxtLGF0KTti''@;'; put 'put ''cmVha31tPTB8cTBbMTI3JlN0XShsLHAsbSxzdCl9d2hpbGUoMCk7aWYoMHxtKXtSZT00NTticmVhayB0fWlmKCgwfEEpPT0oMHxjKSlicmVhaztBPTB8bWlbNjMmYVtsPj4yXV0obCxBLDgpfWFbcnQ+PjJdPWFbNCsodz0wfGFbNCsoMHxhW0V0Pj4yXSk+PjJdKT4+Ml0sYVtydCs0Pj4yXT1h''@;'; put 'put ''W3c+PjJdLHA9cnQsUmU9MTgwfX13aGlsZSgwKTt0OmRve2lmKDQ1PT0oMHxSZSkpe2Rve2lmKDI1NjUmZik1MTImZj9tPWM6KHA9YytXZXwwLG09KDB8YXQpPDA/MHxhW3A+PjJdOnApLHc/KEE9YyxwPTAsYmU9bSxrPTAsUmU9NjQpOihwPTAsQT1jLG09cnQsdz1ydCxSZT0xOTgpO2Vsc2V7''@;'; put 'put ''aWYoMzImZnwwKXtpZihwPShBPSgwfGt0KTwwPzB8YVtjKzg+PjJdOmMrKDAta3QpfDApK1dlfDAsbT0oMHxhdCk8MD8wfGFbcD4+Ml06cCx3KXtwPWMsYmU9bSxrPWMsUmU9NjQ7YnJlYWt9cD1jLG09cnQsdz1ydCxSZT0xOTg7YnJlYWt9dz8oMHwocD0oMHxrdCk8MD8wfGFbdys4Pj4yXTp3''@;'; put 'put ''KygwLWt0KXwwKSkhPSgwfGMpPyhtPWMrV2V8MCwoMHxhdCk8MD8oQT1jLHA9MCxiZT0wfGFbbT4+Ml0saz0wLFJlPTY0KTooQT1jLHA9MCxiZT1tLGs9MCxSZT02NCkpOihwPTAsQT1jLG09cnQsTT1ydCxrPTAsUmU9MTQxKToocD0wLEE9YyxtPXJ0LHc9cnQsUmU9MTk4KX19d2hpbGUoMCk7''@;'; put 'put ''bjpkb3tpZig2ND09KDB8UmUpKXtyOmRve2lmKDQhPSgwfGFbNCsoMHxhW3FlPj4yXSk+PjJdKXx8KHBlPTB8YVsyNCsoMHxhW0V0Pj4yXSk+PjJdLDA9PSg1MTYmZnwwKXwwPT0oMHxwZSkpKW09cnQsTT1ydDtlbHNle2ZvcihjPSgwfGt0KTwwLEQ9KDB8YXQpPDAsUj0wPT0oMHxTdCksRz0o''@;'; put 'put ''MHxhdCk8MSxxPTAta3R8MCxNPTAsbT13Ozspe2lmKCgwfE0pPj0oMHxwZSkpe209cnQsTT1ydCxEPTA7YnJlYWt9Yj0oYj1jPzB8YVttKzg+PjJdOm0rcXwwKStXZXwwLEQmJihiPTB8YVtiPj4yXSk7ZG97aWYoUil7aWYoRyl7Yj0wfFppKGJlLGIpO2JyZWFrfWI9MHx0MyhiZSxiLGF0KTti''@;'; put 'put ''cmVha31iPTB8cTBbMTI3JlN0XShsLGJlLGIsc3QpfXdoaWxlKDApO2lmKCFiKXtSZT04MDticmVha31pZihhW2dlKyhNPDwyKT4+Ml09YiwhKG09MHxhWygoMHxiKTwwP20rNHwwOm0pPj4yXSkpe3A9MDticmVhayBlfU09TSsxfDB9aWYoODA9PSgwfFJlKSl7aWYoYyl7cD0wfGFbbSs4Pj4y''@;'; put 'put ''XTticmVhayBlfXA9bStxfDA7YnJlYWsgZX1mb3IoOzspe2lmKCgwfEQpPj0oMHxwZSkpYnJlYWsgcjtkb3tpZigoMHxhW2dlKyhEPDwyKT4+Ml0pPDApe2lmKGM9MHxhWyhiPXcrNHwwKT4+Ml0sKDB8YVtnZSsoKDF8RCk8PDIpPj4yXSk8MCl7YVtiPj4yXT1hW2M+PjJdLGFbYz4+Ml09dyxh''@;'; put 'put ''W20rND4+Ml09YyxtPWMsdz1NLGI9Yys0fDA7YnJlYWt9YVtNPj4yXT1jLGFbbSs0Pj4yXT13LG09dyx3PWMsYj1jO2JyZWFrfWlmKGI9MHxhW3c+PjJdLCgwfGFbZ2UrKCgxfEQpPDwyKT4+Ml0pPjApe2Fbdz4+Ml09YVsocT1iKzR8MCk+PjJdLGFbcT4+Ml09dyxhW00+PjJdPWIsdz1iO2Jy''@;'; put 'put ''ZWFrfWFbbSs0Pj4yXT1iLGFbTT4+Ml09dyxtPWIsYj1iKzR8MDticmVha313aGlsZSgwKTtNPXcsRD1EKzJ8MCx3PTB8YVtiPj4yXX19fXdoaWxlKDApO1I9KDB8a3QpPDAsRz0oMHxhdCk8MCxxPTAhPSgwfFN0KSxwZT0oMHxhdCk8MSxnZT0wLWt0fDAsYj13O3I6Zm9yKDs7KXtmb3Iodz1i''@;'; put 'put ''Ozspe2I9KGI9Uj8wfGFbdys4Pj4yXTp3K2dlfDApK1dlfDAsRyYmKGI9MHxhW2I+PjJdKTtkb3tpZighcSl7aWYocGUpe2I9MHxaaShiZSxiKTticmVha31iPTB8dDMoYmUsYixhdCk7YnJlYWt9Yj0wfHEwWzEyNyZTdF0obCxiZSxiLHN0KX13aGlsZSgwKTtpZighYil7UmU9MTQwO2JyZWFr''@;'; put 'put ''IHJ9aWYoKDB8Yik+PTApYnJlYWs7aWYoIShEPTB8YVsoYz13KzR8MCk+PjJdKSl7UmU9MTIxO2JyZWFrIHJ9Yj0oYj1SPzB8YVtEKzg+PjJdOkQrZ2V8MCkrV2V8MCxHJiYoYj0wfGFbYj4+Ml0pO2Rve2lmKCFxKXtpZihwZSl7Yj0wfFppKGJlLGIpO2JyZWFrfWI9MHx0MyhiZSxiLGF0KTti''@;'; put 'put ''cmVha31iPTB8cTBbMTI3JlN0XShsLGJlLGIsc3QpfXdoaWxlKDApO2lmKCgwfGIpPj0wKXtSZT0xMTg7YnJlYWt9aWYoYVtjPj4yXT1hW0Q+PjJdLGFbRD4+Ml09dyxhW20rND4+Ml09RCwhKHc9MHxhW0QrND4+Ml0pKXttPUQsdz1NLFJlPTE5ODticmVhayBufW09RH1pZigxMTg9PSgwfFJl''@;'; put 'put ''KSl7aWYoUmU9MCwhYil7UmU9MTE5O2JyZWFrfWlmKGFbTT4+Ml09RCxhW20rND4+Ml09dyxiPTB8YVtEPj4yXSl7bT13LE09RDtjb250aW51ZX1tPXcsdz1ELFJlPTE5ODticmVhayBufWlmKCEoYz0wfGFbdz4+Ml0pKXtSZT0xMzk7YnJlYWt9Yj0oYj1SPzB8YVtjKzg+PjJdOmMrZ2V8MCkr''@;'; put 'put ''V2V8MCxHJiYoYj0wfGFbYj4+Ml0pO2Rve2lmKCFxKXtpZihwZSl7Yj0wfFppKGJlLGIpO2JyZWFrfWI9MHx0MyhiZSxiLGF0KTticmVha31iPTB8cTBbMTI3JlN0XShsLGJlLGIsc3QpfXdoaWxlKDApO2lmKCgwfGIpPjApe2lmKGFbdz4+Ml09YVsoYj1jKzR8MCk+PjJdLGFbYj4+Ml09dyxh''@;'; put 'put ''W00+PjJdPWMsYj0wfGFbYz4+Ml0pe009Yztjb250aW51ZX13PWMsUmU9MTk4O2JyZWFrIG59aWYoIWIpe1JlPTEzNzticmVha31pZihhW20rND4+Ml09YyxhW00+PjJdPXcsIShiPTB8YVtjKzQ+PjJdKSl7bT1jLFJlPTE5ODticmVhayBufW09YyxNPXd9aWYoMTE5PT0oMHxSZSkpe2FbbSs0''@;'; put 'put ''Pj4yXT13LG09dyx3PUQsUmU9MTQxO2JyZWFrfWlmKDEyMT09KDB8UmUpKXthW20rND4+Ml09dyxtPXcsdz1NLFJlPTE5ODticmVha31pZigxMzc9PSgwfFJlKSl7YVtNPj4yXT13LE09dyx3PWMsUmU9MTQxO2JyZWFrfWlmKDEzOT09KDB8UmUpKXthW00+PjJdPXcsUmU9MTk4O2JyZWFrfWlm''@;'; put 'put ''KDE0MD09KDB8UmUpKXtpZih3KXtSZT0xNDE7YnJlYWt9dz1NLFJlPTE5ODticmVha319fXdoaWxlKDApO2Rve2lmKDE0MT09KDB8UmUpKWlmKGFbT2U+PjJdPTMyNzY4fGFbT2U+PjJdLGFbTT4+Ml09YVsoYj13KzR8MCk+PjJdLGFbbSs0Pj4yXT1hW3c+PjJdLDUxNiZmKXA9dztlbHNle2lm''@;'; put 'put ''KDgmZnwwKXthW2I+PjJdPWFbcnQ+PjJdLGFbdz4+Ml09MCxhW3J0Pj4yXT13LFJlPTE2OTticmVha31pZigxNiZmfDApe2Fbdz4+Ml09YVsoUmU9cnQrNHwwKT4+Ml0sYVtiPj4yXT0wLGFbUmU+PjJdPXcsUmU9MTc1O2JyZWFrfWlmKCFMZSl7cD1tLFJlPTE4MDticmVhayB0fWlmKDIwNDkm''@;'; put 'put ''ZnwwKXtpZig0JmFbNCsoMHxhW3FlPj4yXSk+PjJdfDApe3A9dzticmVha31hW2I+PjJdPTAsYVt3Pj4yXT1hWyhwPXJ0KzR8MCk+PjJdLGFbcD4+Ml09dyxwPXcsUmU9MjA1O2JyZWFrfWlmKCEoMzImZikpe3A9MDticmVhayBlfWlmKCEoNCZhWzQrKDB8YVtxZT4+Ml0pPj4yXSkpe2FbcCs0''@;'; put 'put ''Pj4yXT0wLGFbcD4+Ml09YVsoVmU9cnQrNHwwKT4+Ml0sYVtWZT4+Ml09ayxhWyhwPTE2KygwfGFbRXQ+PjJdKXwwKT4+Ml09MSsoMHxhW3A+PjJdKSxwPXc7YnJlYWt9MHwocD0wfGFbc3QrMTY+PjJdKSYmZGxbMTI3JnBdKGwsQSxzdCksKDB8YVtWZT4+Ml0pPDAmJnEwWzEyNyZhW2wrMTI+''@;'; put 'put ''PjJdXShsLGssMCxzdCkscD13fWVsc2UgaWYoMTk4PT0oMHxSZSkpaWYoYVttKzQ+PjJdPTAsYVt3Pj4yXT0wLDgmZilSZT0xNjk7ZWxzZSBpZigxNiZmKVJlPTE3NTtlbHNle2lmKDUxNiZmfDApe3A9bTticmVhayB0fWlmKDIwNDkmZilwPTAsUmU9MjA1O2Vsc2V7aWYoISgzMiZmKSl7QT0w''@;'; put 'put ''LHA9bTticmVhayB0fWFbKFZlPTE2KygwfGFbRXQ+PjJdKXwwKT4+Ml09MSsoMHxhW1ZlPj4yXSl9fX13aGlsZSgwKTtpZigxNjk9PSgwfFJlKSl7aWYoIShwPTB8YVsodz1ydCs0fDApPj4yXSkpe3A9bTticmVha31mb3IoO0E9MHxhWyhtPXArNHwwKT4+Ml07KWFbbT4+Ml09YVtBPj4yXSxh''@;'; put 'put ''W0E+PjJdPXAscD1BO2Fbdz4+Ml09YVtwPj4yXX1lbHNlIGlmKDE3NT09KDB8UmUpKXtpZighKHA9MHxhW3J0Pj4yXSkpe3A9bTticmVha31mb3IoO209MHxhW3A+PjJdOylhW3A+PjJdPWFbKFZlPW0rNHwwKT4+Ml0sYVtWZT4+Ml09cCxwPW07YVtydD4+Ml09YVtwKzQ+PjJdfWVsc2UgaWYo''@;'; put 'put ''MjA1PT0oMHxSZSkpeyhrPTA9PSgxJmZ8MCkpfDA9PSgwfCh3PTB8YVsoYj1zdCsxMnwwKT4+Ml0pKXx8KEE9MHxtaVs2MyZ3XShsLEEsc3QpKTtkb3tpZihBKXtpZigoMHxrdCk+LTEpe3A9QStrdHwwLFJlPTIxNTticmVha31pZigwfChwPTB8cTBbMTI3JmFbbCsxMj4+Ml1dKGwsMCwxMixz''@;'; put 'put ''dCkpKXthW3ArOD4+Ml09QTticmVha30wIT0oMHxhW2I+PjJdKSYmIShrfDA9PSgwfChIZT0wfGFbc3QrMTY+PjJdKSkpJiZkbFsxMjcmSGVdKGwsQSxzdCksUmU9MjE1fWVsc2UgUmU9MjE1fXdoaWxlKDApO2lmKDIxNT09KDB8UmUpJiYhcCl7cD1tO2JyZWFrfSgwfChBPTB8YVsobT0xNiso''@;'; put 'put ''MHxhW0V0Pj4yXSl8MCk+PjJdKSk+LTEmJihhW20+PjJdPUErMSl9YVtwKzQ+PjJdPWFbcnQ+PjJdLGFbcD4+Ml09YVtydCs0Pj4yXTtuOmRve2lmKDAhPSg1MTYmZnwwKSYmMCE9KDgmYVs0KygwfGFbcWU+PjJdKT4+Ml18MCkpZm9yKEQ9KDB8a3QpPDAsbT1EPzB8YVtwKzg+PjJdOnArKDAt''@;'; put 'put ''a3QpfDAsUj0oMHxhdCk8MCxtPW0rV2V8MCxSJiYobT0wfGFbbT4+Ml0pLGs9MD09KDB8U3QpLE09KDB8YXQpPDEsYz0wLWt0fDA7Oyl7aWYoIShBPTB8YVsoYj1wKzR8MCk+PjJdKSlicmVhayBuO2Zvcig7dz0wfGFbQT4+Ml07KWFbQT4+Ml09YVsocnQ9dys0fDApPj4yXSxhW3J0Pj4yXT1B''@;'; put 'put ''LEE9dzthW2I+PjJdPUEsdz0odz1EPzB8YVtBKzg+PjJdOkErY3wwKStXZXwwLFImJih3PTB8YVt3Pj4yXSk7ZG97aWYoayl7aWYoTSl7dz0wfFppKG0sdyk7YnJlYWt9dz0wfHQzKG0sdyxhdCk7YnJlYWt9dz0wfHEwWzEyNyZTdF0obCxtLHcsc3QpfXdoaWxlKDApO2lmKDB8dylicmVhayBu''@;'; put 'put ''O2FbYj4+Ml09YVtBPj4yXSxhW0E+PjJdPXAscD1BfX13aGlsZSgwKTtpZihhWzQrKDB8YVtFdD4+Ml0pPj4yXT1wLCgwfGt0KTwwKXtwPTB8YVtwKzg+PjJdO2JyZWFrIGV9cD1wKygwLWt0KXwwO2JyZWFrIGV9fXdoaWxlKDApOzE4MD09KDB8UmUpJiYoQT0oMHxrdCk8MD8wfGFbdys4Pj4y''@;'; put 'put ''XTp3KygwLWt0KXwwLDA9PSgyJmZ8MCl8MD09KDB8KG09MHxhW3N0KzE2Pj4yXSkpfHxkbFsxMjcmbV0obCxBLHN0KSwoMHxhW1ZlPj4yXSk8MCYmcTBbMTI3JmFbbCsxMj4+Ml1dKGwsdywwLHN0KSxhWyhsPTE2KygwfGFbRXQ+PjJdKXwwKT4+Ml09KDB8KHN0PTB8YVtsPj4yXSkpPDE/LTE6''@;'; put 'put ''c3QrLTF8MCk7ZG97cD0wfGFbKG09cCs0fDApPj4yXX13aGlsZSgwIT0oMHxwKSk7YVttPj4yXT1hW3J0Pj4yXSxhWzQrKDB8YVtFdD4+Ml0pPj4yXT1hW3J0KzQ+PjJdLHA9MiZmfDA/QTowfWVsc2UgaWYoMD09KDQ0OCZmfDApfDA9PSgwfHcpKXA9MDtlbHNle2lmKCEoNjQmZikpe3Q6ZG97''@;'; put 'put ''aWYoMjU2JmYpZm9yKHA9dzs7KXtpZighKG09MHxhW3A+PjJdKSlicmVhayB0O2FbcD4+Ml09YVsobD1tKzR8MCk+PjJdLGFbbD4+Ml09cCxwPW19ZWxzZSBmb3IocD13Ozspe2lmKCEoQT0wfGFbKG09cCs0fDApPj4yXSkpYnJlYWsgdDthW20+PjJdPWFbQT4+Ml0sYVtBPj4yXT1wLHA9QX19''@;'; put 'put ''d2hpbGUoMCk7aWYoYVs0KygwfGFbRXQ+PjJdKT4+Ml09cCwoMHxrdCk8MCl7cD0wfGFbcCs4Pj4yXTticmVha31wPXArKDAta3QpfDA7YnJlYWt9aWYoMCE9KDB8YVsoYz1zdCsxNnwwKT4+Ml0pfCgwfGt0KTwwKXtrPWwrMTJ8MCxNPSgwfGt0KTwwLGI9MC1rdHwwLHA9dztkb3tmb3Iodz1w''@;'; put 'put ''O209MHxhWyhwPXcrNHwwKT4+Ml07KWFbcD4+Ml09YVttPj4yXSxhW20+PjJdPXcsdz1tO3A9MHxhW3c+PjJdLDB8KG09MHxhW2M+PjJdKSYmZGxbMTI3Jm1dKGwsQT1NPzB8YVt3Kzg+PjJdOncrYnwwLHN0KSwoMHxhW1ZlPj4yXSk8MCYmcTBbMTI3JmFbaz4+Ml1dKGwsdywwLHN0KX13aGls''@;'; put 'put ''ZSgwIT0oMHxwKSk7cD0wfGFbRXQ+PjJdfWFbcCsxNj4+Ml09MCxhW3ArND4+Ml09MCxwPTB9fXdoaWxlKDApO3JldHVybiBsZT1adCwwfHB9LGZ1bmN0aW9uIEgobCxjLGYpe3JldHVybiAwfCgwfHlnKGN8PTAsZnw9MCxsfD0wKT8wfFVvKGMpOjApfSxmdW5jdGlvbiB4ZShsLGMsZil7bHw9''@;'; put 'put ''MCxjfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTA7aWYoMCE9KDB8KGZ8PTApKSYmKDB8KHA9MHxhWyhBPWwrOHwwKT4+Ml0pKTwoMHxhW2wrND4+Ml0pKXtmb3Iodz0oMHxhW2w+PjJdKStwfDAsbD0wLG09MHxmZVt3Pj4wXSxwPWMsYz13O2M9YysxfDAsZmVbcD4+MF09bSxtPDwyND4+MjQhPTEw''@;'; put 'put ''JigwfChsPWwrMXwwKSk8KDB8ZikmJihtPTB8ZmVbYz4+MF0pPDwyND4+MjQ7KXA9cCsxfDA7YVtBPj4yXT0oMHxhW0E+PjJdKStsfWVsc2UgbD0wO3JldHVybiAwfGx9LGZ1bmN0aW9uIGdhZShsLGMsZil7dmFyIHAsbTtyZXR1cm4gbHw9MCxjfD0wLChsPTB8YVsoZj0zNisoZnw9MCl8MCk+''@;'; put 'put ''PjJdKT9hW2Y+PjJdPWFbbD4+Ml06bD0wfFFuKDIwKSxwPTB8YVs0KyhtPWMrOHwwKT4+Ml0sYVsoZj1sKzh8MCk+PjJdPWFbbT4+Ml0sYVtmKzQ+PjJdPXAsYVtsKzE2Pj4yXT1hW2MrMTY+PjJdLDB8bH0sZnVuY3Rpb24geGxlKGwsYyxmKXtyZXR1cm4gY3w9MCxmfD0wLGY9MHx2cigyNCks''@;'; put 'put ''YVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sYVtmKzE2Pj4yXT1hW2MrMTY+PjJdLGFbZisyMD4+Ml09YVtjKzIwPj4yXSwwfGZ9LGZ1bmN0aW9uIGFCKGwsYyxmKXtyZXR1cm4gY3w9MCxmfD0wLGY9MHx2cigxMiksYVtmPj4yXT1hW2M+PjJdLDB8Zn0sZnVuY3Rp''@;'; put 'put ''b24gbnYobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTA7ZTpkb3tzd2l0Y2goZi1jfDApe2Nhc2UgMjoxMTY9PSgwfGZlW2MrMT4+MF0pP2w9KGw9MHxmZVtjPj4wXSk8PDI0Pj4yND09MTA4PzYwOmw8PDI0Pj4yND09MTAzPzYyOjA6cD0xNDticmVhaztjYXNlIDM6OTc9PSgwfGZlW2M+''@;'; put 'put ''PjBdKSYmMTA5PT0oMHxmZVtjKzE+PjBdKSYmMTEyPT0oMHxmZVtjKzI+PjBdKT9sPTM4OnA9MTQ7YnJlYWs7Y2FzZSA0OnN3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDExMzppZigxMTchPSgwfGZlW2MrMT4+MF0pKXtwPTE0O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzI+PjBdKSl7cD0xNDti''@;'; put 'put ''cmVhayBlfWlmKDExNj09KDB8ZmVbYyszPj4wXSkpe2w9MzQ7YnJlYWsgZX1wPTE0O2JyZWFrIGU7Y2FzZSA5NzppZigxMTIhPSgwfGZlW2MrMT4+MF0pKXtwPTE0O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzI+PjBdKSl7cD0xNDticmVhayBlfWlmKDExNT09KDB8ZmVbYyszPj4wXSkpe2w9''@;'; put 'put ''Mzk7YnJlYWsgZX1wPTE0O2JyZWFrIGU7ZGVmYXVsdDpwPTE0O2JyZWFrIGV9ZGVmYXVsdDpwPTE0fX13aGlsZSgwKTtyZXR1cm4gMTQ9PSgwfHApJiYobD0wKSwwfGx9LGZ1bmN0aW9uIEpLKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2U6ZG97c3dpdGNoKDB8KGYtY3wwKS8yKXtj''@;'; put 'put ''YXNlIDI6MD09KDB8ZmVbYysyPj4wXSkmJjExNj09KDB8ZmVbYyszPj4wXSk/bD0xMDg9PSgwfChsPTB8ZmVbYz4+MF0/LTE6MHxmZVtjKzE+PjBdKSk/NjA6MTAzPT0oMHxsKT82MjowOnA9Mjc7YnJlYWs7Y2FzZSAzOjA9PSgwfGZlW2M+PjBdKSYmOTc9PSgwfGZlW2MrMT4+MF0pJiYwPT0o''@;'; put 'put ''MHxmZVtjKzI+PjBdKSYmMTA5PT0oMHxmZVtjKzM+PjBdKSYmMD09KDB8ZmVbYys0Pj4wXSkmJjExMj09KDB8ZmVbYys1Pj4wXSk/bD0zODpwPTI3O2JyZWFrO2Nhc2UgNDppZigwfGZlW2M+PjBdKXA9Mjc7ZWxzZSBzd2l0Y2goMHxmZVtjKzE+PjBdKXtjYXNlIDExMzppZigwfGZlW2MrMj4+''@;'; put 'put ''MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTchPSgwfGZlW2MrMz4+MF0pKXtwPTI3O2JyZWFrIGV9aWYoMHxmZVtjKzQ+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzU+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys2Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNj09KDB8ZmVb''@;'; put 'put ''Yys3Pj4wXSkpe2w9MzQ7YnJlYWsgZX1wPTI3O2JyZWFrIGU7Y2FzZSA5NzppZigwfGZlW2MrMj4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTIhPSgwfGZlW2MrMz4+MF0pKXtwPTI3O2JyZWFrIGV9aWYoMHxmZVtjKzQ+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzU+PjBdKSl7''@;'; put 'put ''cD0yNzticmVhayBlfWlmKDB8ZmVbYys2Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNT09KDB8ZmVbYys3Pj4wXSkpe2w9Mzk7YnJlYWsgZX1wPTI3O2JyZWFrIGU7ZGVmYXVsdDpwPTI3O2JyZWFrIGV9YnJlYWs7ZGVmYXVsdDpwPTI3fX13aGlsZSgwKTtyZXR1cm4gMjc9PSgwfHApJiYobD0w''@;'; put 'put ''KSwwfGx9LGZ1bmN0aW9uIFpLKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDt2YXIgcD0wO2U6ZG97c3dpdGNoKDB8KGYtY3wwKS8yKXtjYXNlIDI6MD09KDB8ZmVbYyszPj4wXSkmJjExNj09KDB8ZmVbYysyPj4wXSk/bD0xMDg9PSgwfChsPTB8ZmVbYysxPj4wXT8tMTowfGZlW2M+PjBdKSk/NjA6''@;'; put 'put ''MTAzPT0oMHxsKT82MjowOnA9Mjc7YnJlYWs7Y2FzZSAzOjA9PSgwfGZlW2MrMT4+MF0pJiY5Nz09KDB8ZmVbYz4+MF0pJiYwPT0oMHxmZVtjKzM+PjBdKSYmMTA5PT0oMHxmZVtjKzI+PjBdKSYmMD09KDB8ZmVbYys1Pj4wXSkmJjExMj09KDB8ZmVbYys0Pj4wXSk/bD0zODpwPTI3O2JyZWFr''@;'; put 'put ''O2Nhc2UgNDppZigwfGZlW2MrMT4+MF0pcD0yNztlbHNlIHN3aXRjaCgwfGZlW2M+PjBdKXtjYXNlIDExMzppZigwfGZlW2MrMz4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTchPSgwfGZlW2MrMj4+MF0pKXtwPTI3O2JyZWFrIGV9aWYoMHxmZVtjKzU+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTEx''@;'; put 'put ''IT0oMHxmZVtjKzQ+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys3Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNj09KDB8ZmVbYys2Pj4wXSkpe2w9MzQ7YnJlYWsgZX1wPTI3O2JyZWFrIGU7Y2FzZSA5NzppZigwfGZlW2MrMz4+MF0pe3A9Mjc7YnJlYWsgZX1pZigxMTIhPSgwfGZlW2Mr''@;'; put 'put ''Mj4+MF0pKXtwPTI3O2JyZWFrIGV9aWYoMHxmZVtjKzU+PjBdKXtwPTI3O2JyZWFrIGV9aWYoMTExIT0oMHxmZVtjKzQ+PjBdKSl7cD0yNzticmVhayBlfWlmKDB8ZmVbYys3Pj4wXSl7cD0yNzticmVhayBlfWlmKDExNT09KDB8ZmVbYys2Pj4wXSkpe2w9Mzk7YnJlYWsgZX1wPTI3O2JyZWFr''@;'; put 'put ''IGU7ZGVmYXVsdDpwPTI3O2JyZWFrIGV9YnJlYWs7ZGVmYXVsdDpwPTI3fX13aGlsZSgwKTtyZXR1cm4gMjc9PSgwfHApJiYobD0wKSwwfGx9LGZ1bmN0aW9uIGJBZShsLGMsZil7bHw9MCxmfD0wO3ZhciBiLGssTSxwPTAsbT0wLEE9MCx3PTA7cmV0dXJuIGs9bGUsbGU9bGUrMzJ8MCxwPWss''@;'; put 'put ''YVsodz1rKzE2fDApPj4yXT1jfD0wLGFbKG09dys0fDApPj4yXT1mLSgwIT0oMHwoTT0wfGFbKGI9bCs0OHwwKT4+Ml0pKSYxKSxhW3crOD4+Ml09YVsoQT1sKzQ0fDApPj4yXSxhW3crMTI+PjJdPU0sYVtwPj4yXT1hW2wrNjA+PjJdLGFbcCs0Pj4yXT13LGFbcCs4Pj4yXT0yLCgwfChwPTB8''@;'; put 'put ''dWgoMHxlNigxNDUsMHxwKSkpKT49MT9wPj4+MD4odz0wfGFbbT4+Ml0pPj4+MCYmKG09MHxhW0E+PjJdLGFbKEE9bCs0fDApPj4yXT1tLGFbbCs4Pj4yXT1tKyhwLXcpLDB8YVtiPj4yXSYmKGFbQT4+Ml09bSsxLGZlW2MrKGYrLTEpPj4wXT0wfGZlW20+PjBdKSxwPWYpOmFbbD4+Ml09YVts''@;'; put 'put ''Pj4yXXw0OCZwXjE2LGxlPWssMHxwfSxmdW5jdGlvbiBfQWUobCxjLGYpe3ZhciBwLG0sQTtyZXR1cm4gY3w9MCxmfD0wLG09bGUsbGU9bGUrMzJ8MCxwPW0rMjB8MCxhWyhBPW0pPj4yXT1hWzYwKyhsfD0wKT4+Ml0sYVtBKzQ+PjJdPTAsYVtBKzg+PjJdPWMsYVtBKzEyPj4yXT1wLGFbQSsx''@;'; put 'put ''Nj4+Ml09ZiwoMHx1aCgwfGtoKDE0MCwwfEEpKSk8MD8oYVtwPj4yXT0tMSxsPS0xKTpsPTB8YVtwPj4yXSxsZT1tLDB8bH0sZnVuY3Rpb24gSHVlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0scD0wO3JldHVybiBtPWxlLGxlPWxlKzMyfDAscD1tLGFbMzYrKGx8PTApPj4yXT0xOCwwPT0oNjQm''@;'; put 'put ''YVtsPj4yXXwwKSYmKGFbcD4+Ml09YVtsKzYwPj4yXSxhW3ArND4+Ml09MjE1MjMsYVtwKzg+PjJdPW0rMTYsMHxuNig1NCwwfHApKSYmKGZlW2wrNzU+PjBdPS0xKSxwPTB8biQobCxjLGYpLGxlPW0sMHxwfSxuJCxmdW5jdGlvbiBkY2UobCxjLGYpe3ZhciBwLG07cmV0dXJuIGdvKDB8KG09''@;'; put 'put ''MHxhWyhwPTIwKyhsfD0wKXwwKT4+Ml0pLDB8KGN8PTApLDB8KGw9KGw9KDB8YVtsKzE2Pj4yXSktbXwwKT4+PjA+KGZ8PTApPj4+MD9mOmwpKSxhW3A+PjJdPSgwfGFbcD4+Ml0pK2wsMHxmfSwkcixmdW5jdGlvbiBGSihsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIGdlLEhlLFZlLHFlLHJ0''@;'; put 'put ''LGF0LHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLFdlPTAsU3Q9MCxrdD0wO2F0PWxlLGxlPWxlKzExMnwwLFZlPWF0Kzg4fDAsSGU9YXQrNzJ8MCxxPWF0KzQwfDAsRD1hdCs4fDAsTT1hdCxwZT1hdCs2NHwwLHFl''@;'; put 'put ''PWF0KzQ4fDAscnQ9YXQrMjR8MCxwPSgwfGFbNDcxMzRdKT4xJjE7ZG97aWYoKDB8Zik+NSl7Zm9yKEc9MHx2cigoMHxHbyhsKSk8PDIpLGI9MSYoaz04PT0oMHxmKSksdz0wfER0KGwpLFI9MDt3OyltPTB8Q0QodyxjLGIpLEE9Mjg4KygwfGFbdysxNj4+Ml0pfDAsbT8oYVtBPj4yXT1SLGFb''@;'; put 'put ''RysoUjw8Mik+PjJdPW0sbT1SKzF8MCk6KGFbQT4+Ml09LTExMTEsbT1SKSx3PTB8enQobCx3KSxSPW07aWYoRyl7aWYoMHwobT0wfCRYKEcsUikpKXtpZihrKXtMZT0wLFJlPUcsT2U9RyxiZT0xO2JyZWFrfUxlPTB8cl8oRyxSKSxSZT1HLE9lPUcsYmU9MTticmVha31pZihrKXskcigwLDg5''@;'; put 'put ''NzU1LE0pLG09MCxMZT0wLFJlPUcsT2U9RyxiZT0xO2JyZWFrfVN0PStqbltjKzQ+PjJdLF9bRD4+M109K2puW2M+PjJdLF9bRCs4Pj4zXT1TdCwkcigwLDg5ODMzLEQpLG09MCxMZT0wLFJlPUcsT2U9RyxiZT0xO2JyZWFrfW09MCxMZT0wLFJlPTAsT2U9MCxiZT0wfWVsc2UgbT0wLExlPTAs''@;'; put 'put ''UmU9MCxSPTAsT2U9MCxiZT0wfXdoaWxlKDApO2dlPTAhPSgwfExlKTtlOmRve2lmKGdlKWZvcihBPTB8RHQobCk7Oyl7aWYoIUEpYnJlYWsgZTtmb3IobT0wfHcwKGwsQSk7bTspcT0xNDQrKDB8YVttKzE2Pj4yXSl8MCxCSihwZSxtLExlLDEsMCwwKSxHPTB8YVsoRD1wZSkrND4+Ml0sYVtx''@;'; put 'put ''Pj4yXT1hW0Q+PjJdLGFbcSs0Pj4yXT1HLG09MHxTMChsLG0pO0E9MHx6dChsLEEpfWVsc2UgOD09KDB8ZikmMCE9KDB8bSkmJihlaShsLDApLHA9MSl9d2hpbGUoMCk7Zm9yKE09MD09KDB8cCksRD1sKzYwfDAsRz0xMD09KDB8ZikscD0wLGs9MHxEdChsKSxtPTA7azspe2ZvcihxPWsrMTZ8''@;'; put 'put ''MCxjPTB8dzAobCxrKTtjOyl7Yj0wfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0sdz0wfGFbKEE9YysxNnwwKT4+Ml0sTXx8MD09KDB8YVt3Kzg+PjJdKT9XZT0zNToocGU9dysxNnwwLGFbSGU+PjJdPWFbKGt0PTE2KygwfGFbcT4+Ml0pfDApPj4yXSxhW0hlKzQ+PjJd''@;'; put 'put ''PWFba3QrND4+Ml0sYVtIZSs4Pj4yXT1hW2t0Kzg+PjJdLGFbSGUrMTI+PjJdPWFba3QrMTI+PjJdLGFbVmU+PjJdPWFbcGU+PjJdLGFbVmUrND4+Ml09YVtwZSs0Pj4yXSxhW1ZlKzg+PjJdPWFbcGUrOD4+Ml0sYVtWZSsxMj4+Ml09YVtwZSsxMj4+Ml0sQ2socWUsSGUsVmUpLHBlPTU2Kygw''@;'; put 'put ''fGFbQT4+Ml0pfDAsYVtIZT4+Ml09YVsoYj0xNisoMHxhW2IrMTY+PjJdKXwwKT4+Ml0sYVtIZSs0Pj4yXT1hW2IrND4+Ml0sYVtIZSs4Pj4yXT1hW2IrOD4+Ml0sYVtIZSsxMj4+Ml09YVtiKzEyPj4yXSxhW1ZlPj4yXT1hW3BlPj4yXSxhW1ZlKzQ+PjJdPWFbcGUrND4+Ml0sYVtWZSs4Pj4y''@;'; put 'put ''XT1hW3BlKzg+PjJdLGFbVmUrMTI+PjJdPWFbcGUrMTI+PjJdLENrKHJ0LEhlLFZlKSxhW0hlPj4yXT1hW3FlPj4yXSxhW0hlKzQ+PjJdPWFbcWUrND4+Ml0sYVtIZSs4Pj4yXT1hW3FlKzg+PjJdLGFbSGUrMTI+PjJdPWFbcWUrMTI+PjJdLGFbVmU+PjJdPWFbcnQ+PjJdLGFbVmUrND4+Ml09''@;'; put 'put ''YVtydCs0Pj4yXSxhW1ZlKzg+PjJdPWFbcnQrOD4+Ml0sYVtWZSsxMj4+Ml09YVtydCsxMj4+Ml0sdGcoMCxjKSk7ZTpkb3tpZigzNT09KDB8V2UpJiYoV2U9MCxrdD0wfGl0W3crMTY4Pj4xXSxBPWt0PDwxNj4+MTYsa3Q8PDE2Pj4xNikpe2lmKCgwfGspPT0oMHxiKSl7cHx8KG09MHx2cig5''@;'; put 'put ''NiksYVttKzg0Pj4yXT0wfHZyKDExNTIwKygoMHxHbyhsKSk8PDUpfDApLHA9bSksek4ocCxjLDB8YVsyNDgrKDB8YVsxNisoMHxhW0Q+PjJdKT4+Ml0pPj4yXSk7YnJlYWt9aWYoIWdlKXtJYWUobCxjLGYsMTc3OTIpO2JyZWFrfWZvcihBPTB8ZmVbMTk0OTU0XT8xOkEsdz1jLGI9MDs7KXtp''@;'; put 'put ''ZigoMHxiKT49KDB8QSkpYnJlYWsgZTtHP1dOKDAsdyxSZSxSLDEpOkhKKDAsdyksdz0wfGFbMTcyKygwfGFbdysxNj4+Ml0pPj4yXSxiPWIrMXwwfX19d2hpbGUoMCk7Yz0wfFMwKGwsYyl9az0wfHp0KGwsayl9aWYoZ2UmJmZ1bmN0aW9uIGlfKGwpe3ZhciBjLGY7RnQoMHxhWzgrKGx8PTAp''@;'; put 'put ''Pj4yXSksRnQoMHxhW2wrMTI+PjJdKSxGdCgwfGFbbCsxNj4+Ml0pLEZ0KDB8YVtsKzIwPj4yXSksMHwoYz0wfGFbKGY9bCsyNHwwKT4+Ml0pJiYoRnQoMHxhW2M+PjJdKSxGdCgwfGFbZj4+Ml0pKSxGdChsKX0oTGUpLDB8cCYmKEZ0KDB8YVtwKzg0Pj4yXSksRnQobSkpLGJlKXtmb3IocD0w''@;'; put 'put ''OyEoKDB8cCk+PSgwfFIpKTspRnQoMHxhW1JlKyhwPDwyKT4+Ml0pLHA9cCsxfDA7RnQoT2UpfXJldHVybiBsZT1hdCwwfSxmdW5jdGlvbiBMOWUobCxjLGYpe2Z8PTA7dmFyIGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0w''@;'; put 'put ''LEc9MCxxPTAscGU9MCxhdD0wLFN0PTAsa3Q9MCxzdD0wO2ZvcihXZT1sZSxsZT1sZSs5NnwwLHJ0PVdlKzQ4fDAscWU9V2UrMjR8MCxWZT1XZSsxNnwwLEhlPVdlKzh8MCxiZT1XZSxPZT0xNisobHw9MCl8MCxMZT00KyhjfD0wKXwwLFJlPTQrKGdlPVdlKzgwfDApfDAscT0wfER0KGwpLGY9''@;'; put 'put ''MCxwPTAsbT0wLEE9MDtxOyl7Zm9yKHBlPTB8dzAobCxxKSxSPWYsRz1BO3BlOyl7Zj0wPT0oMHxpdFsxNjgrKDB8YVtwZSsxNj4+Ml0pPj4xXSk7ZG97aWYoKDB8cSk9PSgwfGFbKDI9PSgzJmFbcGU+PjJdfDApP3BlOnBlKy00OHwwKSs0MD4+Ml0pKWY/KEE9UixmPUcpOihwP2Y9RzooZj0w''@;'; put 'put ''fHZyKDk2KSxhW2YrODQ+PjJdPTB8dnIoMTE1MjArKCgwfEdvKGwpKTw8NSl8MCkscD1mKSx6TihwLHBlLDB8YVsyNDgrKDB8YVtPZT4+Ml0pPj4yXSksQT1SKTtlbHNlIGlmKGYpQT1SLGY9RztlbHNle2lmKG09MHxPOWUocGUsYyksMHwkWCgwfGFbKEE9bSs4fDApPj4yXSwwfGFbbT4+Ml0p''@;'; put 'put ''KXtpZighKHc9MHxyXygwfGFbQT4+Ml0sMHxhW20+PjJdKSkpeyRyKDAsOTQzNTIsSGUpLEE9MSxmPUc7YnJlYWt9Zm9yKGY9cGU7ZjspU3Q9MTQ0KygwfGFbKGF0PWYrMTZ8MCk+PjJdKXwwLEJKKGJlLGYsdywwLDB8YVtBPj4yXSwwfGFbbT4+Ml0pLGt0PTB8YVsoc3Q9YmUpKzQ+PjJdLGFb''@;'; put 'put ''U3Q+PjJdPWFbc3Q+PjJdLGFbU3QrND4+Ml09a3QsV04oMCxmLDB8YVtBPj4yXSwwfGFbbT4+Ml0sMCksZj0wfGFbMTcyKygwfGFbYXQ+PjJdKT4+Ml07UjllKG0pLEE9UixmPUc7YnJlYWt9Uj8oQT1SLGY9Ryk6KFc3KGdlLGwpLGY9MHx4YyhsLDgsOCksJHIoMCw5NDQzNixWZSksISgoTT0r''@;'; put 'put ''am5bYz4+Ml0pPj0oaz0rKDB8ZikpKSYhKChEPStqbltMZT4+Ml0pPj1rKT8hKChiPStqbltnZT4+Ml0pPD1NKSYhKChrPStqbltSZT4+Ml0pPD1EKXx8KF9bcnQ+PjNdPWIsX1tydCs4Pj4zXT1rLF9bcnQrMTY+PjNdPU0sX1tydCsyND4+M109RCwkcigzLDk0NTUyLHJ0KSk6KGFbcWU+PjJd''@;'; put 'put ''PWYsX1txZSs4Pj4zXT1NLF9bcWUrMTY+PjNdPUQsJHIoMyw5NDUwMixxZSkpLEE9MSxmPUcpfX13aGlsZSgwKTtwZT0wfFMwKGwscGUpLFI9QSxHPWZ9cT0wfHp0KGwscSksZj1SLEE9R31yZXR1cm4gZnVuY3Rpb24gQjllKGwpezB8KGx8PTApJiYoRnQoMHxhW2wrOD4+Ml0pLEZ0KGwpKX0o''@;'; put 'put ''bSksMHxwJiYoRnQoMHxhW3ArODQ+PjJdKSxGdChBKSksbGU9V2UsMHxmfSxmdW5jdGlvbiBGc2UobCxjLGYpe2x8PTAsZnw9MDt2YXIgcCxtLHcsQT0wO2ZvcihBPTB8YVsoY3w9MCk+PjJdLHA9MHxhW2MrND4+Ml0sYz1tPTB8YVtjKzg+PjJdO2M7KXtmb3IobD1tO2w7KSgwfGMpIT0oMHxs''@;'; put 'put ''KSYmaFgoMHxhW2M+PjJdLDB8YVtsPj4yXSksbD0wfGFbbCs0Pj4yXTtjPTB8YVtjKzQ+PjJdfXJldHVybiBWNyhmLHc9QSstMXwwLGw9cCstMXwwLG0pLFY3KGYsdyxwLG0pLFY3KGYsdyxjPXArMXwwLG0pLFY3KGYsQSxsLG0pLFY3KGYsQSxjLG0pLFY3KGYsQT1BKzF8MCxsLG0pLFY3KGYs''@;'; put 'put ''QSxwLG0pLFY3KGYsQSxjLG0pLDB9LGZ1bmN0aW9uIHgyZShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEQsUixPZSxTdCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MCxXZT0wLGF0PTAsa3Q9''@;'; put 'put ''MDtTdD1sZSxsZT1sZSs0OHwwLFI9U3QrMjR8MCxEPVN0KzE2fDAsT2U9U3QscD0wO2U6Zm9yKDs7KXtpZigoMHxwKT49KDB8Yykpe3A9MDticmVha31mb3IoYVtPZT4+Ml09YVsocnQ9MHxhWyhxZT0wfGFbbCsocDw8Mik+PjJdKT4+Ml0pPj4yXSxhW09lKzQ+PjJdPWFbcnQrND4+Ml0sYVtP''@;'; put 'put ''ZSs4Pj4yXT1hW3J0Kzg+PjJdLGFbT2UrMTI+PjJdPWFbcnQrMTI+PjJdLFdlPWYrKDQwKnB8MCkrOHwwLEc9ZisoNDAqcHwwKSsyNHwwLHE9ZisoNDAqcHwwKSszMnwwLEE9ZisoNDAqcHwwKSsxNnwwLHA9cnQ9cCsxfDA7Oyl7aWYoKDB8cCk+PSgwfGMpKXtwPXJ0O2NvbnRpbnVlIGV9aWYo''@;'; put 'put ''dz0wfGFbbCsocDw8Mik+PjJdLCEoISgoTT0hKChiPStfW1dlPj4zXSk8PShrPStfW2YrKDQwKnB8MCkrMjQ+PjNdKSkpfCEoYj49KG09K19bZisoNDAqcHwwKSs4Pj4zXSkpKSYmKHBlPStfW0E+PjNdLGdlPStfW2YrKDQwKnB8MCkrMzI+PjNdLHBlPD1nZSkmJihiZT0rX1tmKyg0MCpwfDAp''@;'; put 'put ''KzE2Pj4zXSxwZT49YmUpKXx8ISgoa3Q9K19bRz4+M10pPD1rKXwhKGt0Pj1tKXx8ISgoa3Q9K19bcT4+M10pPD1nZSl8IShrdD49YmUpKWF0PTExO2Vsc2UgaWYoYVtEPj4yXT1hW3c+PjJdLGFbRCs0Pj4yXT1hW3crND4+Ml0sYVtSPj4yXT1hW09lPj4yXSxhW1IrND4+Ml09YVtPZSs0Pj4y''@;'; put 'put ''XSxhW1IrOD4+Ml09YVtPZSs4Pj4yXSxhW1IrMTI+PjJdPWFbT2UrMTI+PjJdLDB8XzYoRCxSKSl7cD0xO2JyZWFrIGV9aWYoMTE9PSgwfGF0KSYmKGF0PTAsISghKG08PShMZT0rX1tHPj4zXSkpfCEobT49YikpKSYmKFJlPStfW2YrKDQwKnB8MCkrMTY+PjNdKTw9KEhlPStfW3E+PjNdKSYm''@;'; put 'put ''ISghKFJlPj0oVmU9K19bQT4+M10pKXwhKGs8PUxlKXxNKSYmISghKChrdD0rX1tmKyg0MCpwfDApKzMyPj4zXSk8PUhlKXwhKGt0Pj1WZSkpJiYoTT0wfGFbdz4+Ml0sYVtEPj4yXT1hW3FlPj4yXSxhW0QrND4+Ml09YVtxZSs0Pj4yXSxhW1I+PjJdPWFbTT4+Ml0sYVtSKzQ+PjJdPWFbTSs0''@;'; put 'put ''Pj4yXSxhW1IrOD4+Ml09YVtNKzg+PjJdLGFbUisxMj4+Ml09YVtNKzEyPj4yXSwwfF82KEQsUikpKXtwPTE7YnJlYWsgZX1wPXArMXwwfX1yZXR1cm4gbGU9U3QsMHxwfSxmdW5jdGlvbiBoUChsLGMsZil7bHw9MCxjfD0wO3ZhciB3LGsscD0wLG09MCxBPTAsYj0wO2ZvcihrPWxlLGxlPWxl''@;'; put 'put ''KzE2fDAsYVsoQT1rKT4+Ml09Znw9MCx3PStfWyhiPTB8YVtsPj4yXSk+PjNdLGI9MHxhWyhsPTB8YVtiKzg+PjJdKT4+Ml0sS2YobCxjLEEsMCksbD0wLG09MDshKCgwfGwpPj0oMHxiKSk7KXA9K19bYysobDw8Myk+PjNdK20sbD1sKzF8MCxtPXA7Zm9yKHA9KygwfGIpLGY9MHxhW0E+PjJd''@;'; put 'put ''LGw9MDshKCgwfGwpPj0oMHxiKSk7KV9bKEE9ZisobDw8Myl8MCk+PjNdPSgrX1tjKyhsPDwzKT4+M10qcC1tKSp3KyArX1tBPj4zXSxsPWwrMXwwO3JldHVybiBsZT1rLDB8Zn0sZnVuY3Rpb24gUHgobCxjLGYpe3ZhciBwLG07cmV0dXJuIGx8PTAsY3w9MCxtPWxlLGxlPWxlKzE2fDAsYVso''@;'; put 'put ''cD1tKT4+Ml09Znw9MCxLZigwfGFbbD4+Ml0sYyxwLDApLGxlPW0sMHxhW3A+PjJdfSxmdW5jdGlvbiBwUChsLGMsZil7Y3w9MCxmfD0wO3ZhciBwLG09MDtmb3IocD1+fitfWyhtPTB8YVsobHw9MCk+PjJdKT4+M10sbT1tKzh8MCxsPTA7ISgoMHxsKT49KDB8cCkpOylfW2YrKGw8PDMpPj4z''@;'; put 'put ''XT0rX1ttKyhsPDwzKT4+M10qK19bYysobDw8Myk+PjNdLGw9bCsxfDA7cmV0dXJuIDB8Zn0sZnVuY3Rpb24gUW0obCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTA7ZTpkb3tpZig5OSZmKXA9MHxtaVs2MyZh''@;'; put 'put ''W2FbbCsxNj4+Ml0+PjJdXShsLGMsZik7ZWxzZXtpZigwIT0oNTE2JmZ8MCl8fDAhPSgzODQmZnwwKSYwPT0oMTImKHA9MHxhWzQrKDB8YVtsKzE2Pj4yXSk+PjJdKXwwKSltPWw7ZWxzZXtpZigxMiZwfDApe2lmKCEoNDA4JmYpKXtwPTA7YnJlYWt9Zm9yKHE9MCE9KDEzNiZmfDApLHBlPTAh''@;'; put 'put ''PSgyNzImZnwwKSxEPTAsbT0wLHA9MCxHPWw7Rzspe1I9MHxtaVs2MyZhW2FbRysxNj4+Ml0+PjJdXShHLGMsZik7ZG97aWYoUil7aWYoaz0wfGFbMjArKHc9MHxhW0crND4+Ml0pPj4yXSxBPVIrKDB8YVt3Pj4yXSl8MCxNPSgwfChiPTB8YVt3KzQ+PjJdKSk8MD8wfGFbQT4+Ml06QSwwfHAp''@;'; put 'put ''e2Rve2lmKCFrKXtpZigoMHxiKTwxKXtBPTB8WmkoTSxtKTticmVha31BPTB8dDMoTSxtLGIpO2JyZWFrfUE9MHxxMFsxMjcma10oRyxNLG0sdyl9d2hpbGUoMCk7aWYoIShxJigwfEEpPDB8cGUmKDB8QSk+MCkpe0E9RDticmVha319QT1HLG09TSxwPVJ9ZWxzZSBBPUR9d2hpbGUoMCk7RD1B''@;'; put 'put ''LEc9MHxhW0crMjg+PjJdfWFbbCszMj4+Ml09RDticmVha31pZighKDI0JmYpKXtwPTA7YnJlYWt9KG09MHxhWyhrPWwrMzJ8MCk+PjJdKT8oQT0wfGFbNCsoMHxhW20rOD4+Ml0pPj4yXSwoMHwocD0oMHwocD0wfGFbOCsoMHxhW20rND4+Ml0pPj4yXSkpPDA/MHxhW0ErOD4+Ml06QSsoMC1w''@;'; put 'put ''KXwwKSk9PSgwfGMpP3A9YzoobT1sLHc9MzIpKToobT1sLHc9MzIpO2Rve2lmKDMyPT0oMHx3KSl7Zm9yKDs7KXtpZighbSl7dz0zMzticmVha31pZigwfChwPTB8bWlbNjMmYVthW20rMTY+PjJdPj4yXV0obSxjLDQpKSl7dz0zNjticmVha31tPTB8YVttKzI4Pj4yXSx3PTMyfWlmKDMzPT0o''@;'; put 'put ''MHx3KSl7YVtrPj4yXT0wLHA9MDticmVhayBlfWlmKDM2PT0oMHx3KSl7YVtrPj4yXT1tO2JyZWFrfX19d2hpbGUoMCk7Zm9yKGI9MTI4KyhmPDw0JjEyOF4xMjgpfDAscD0wfG1pWzYzJmFbYVttKzE2Pj4yXT4+Ml1dKG0scCxmKTs7KXtmb3Iodz1tKzE2fDA7cDspe2ZvcihBPWw7Oyl7aWYo''@;'; put 'put ''KDB8QSk9PSgwfG0pKWJyZWFrIGU7aWYoMHxtaVs2MyZhW2FbQSsxNj4+Ml0+PjJdXShBLHAsNCkpYnJlYWs7QT0wfGFbQSsyOD4+Ml19cD0wfG1pWzYzJmFbYVt3Pj4yXT4+Ml1dKG0scCxmKX1pZihhW2s+PjJdPW09MHxhW20rMjg+PjJdLCFtKXtwPTA7YnJlYWsgZX1wPTB8bWlbNjMmYVth''@;'; put 'put ''W20rMTY+PjJdPj4yXV0obSwwLGIpfX1mb3IoOzspe2lmKCFtKXttPTAscD0wO2JyZWFrfWlmKDB8KHA9MHxtaVs2MyZhW2FbbSsxNj4+Ml0+PjJdXShtLGMsZikpKWJyZWFrO209MHxhW20rMjg+PjJdfWFbbCszMj4+Ml09bX19d2hpbGUoMCk7cmV0dXJuIDB8cH0sU3JlLG9vLHBzLFQwLGZ1''@;'; put 'put ''bmN0aW9uIHdsZShsLGMsZil7cmV0dXJuIGx8PTAsY3w9MCxmfD0wLGY9MHxzaCgxLDMyKSwwfChsPTB8YVtjPj4yXSkmJihhW2Y+PjJdPTB8cmEobCkpLDB8KGw9MHxhW2MrND4+Ml0pJiYoYVtmKzQ+PjJdPTB8cmEobCkpLGFbZisyND4+Ml09MTI3JmFbYysyND4+Ml0sX1tmKzE2Pj4zXT0r''@;'; put 'put ''X1tjKzE2Pj4zXSxhW2YrOD4+Ml09YVtjKzg+PjJdLDB8Zn0seFEsZnVuY3Rpb24geFIobCxjLGYpe2N8PTAsZnw9MDt2YXIgcD0wLG09MCxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MDtmb3IobT0wfGFbKGx8PTApPj4yXSxBPWwrMTZ8MCxwPTA7ISgoMHxwKT49KDB8bSkpOylhWygwfGFbQT4+''@;'; put 'put ''Ml0pKyg0MCpwfDApPj4yXT0tMjE0NzQ4MzY0OCxwPXArMXwwOyFmdW5jdGlvbiBJYigpe2FbNDczODddPTB9KCk7ZTpkb3tpZigwfE45KGMpKXA9MTtlbHNle2FbYys4Pj4yXT0wLGFbYz4+Ml09MCxjPWwrMjB8MDt0OmZvcig7Oyl7aWYoIShtPTB8eEUoKSkpe3A9MDticmVhayBlfWlmKGFb''@;'; put 'put ''bT4+Ml09MC0oMHxhW20+PjJdKSwoMHxtKT09KDB8Zikpe3A9MDticmVhayBlfWZvcihBPW0rMTZ8MCx3PW0rMjh8MCxwPTA7Oyl7aWYoKDB8cCk+PSgwfGl0W0E+PjFdKSljb250aW51ZSB0O2s9MHxVeihsLGI9KDB8YVtjPj4yXSkrKDI0KigwfGFbKDB8YVt3Pj4yXSkrKHA8PDIpPj4yXSl8''@;'; put 'put ''MCl8MCxtKSxNPTB8YVtrPj4yXTtkb3tpZigoMHxNKTwwKXtpZihEPX5+LSgrX1tiPj4zXSsgKygwfGFbbT4+Ml0pKSwtMjE0NzQ4MzY0OD09KDB8TSkpe2lmKGFbaz4+Ml09RCwwfE45KGspKXtwPTE7YnJlYWsgZX1hW2srOD4+Ml09bSxhW2srMTI+PjJdPWI7YnJlYWt9aWYoKDB8TSk+PSgw''@;'; put 'put ''fEQpKWJyZWFrO3NCKGssRCksYVtrKzg+PjJdPW0sYVtrKzEyPj4yXT1iO2JyZWFrfX13aGlsZSgwKTtwPXArMXwwfX19fXdoaWxlKDApO3JldHVybiAwfHB9LEpmLFVLLGZ1bmN0aW9uIEsxZShsLGMsZil7cmV0dXJuIGx8PTAsY3w9MCwtMT09KDB8KGY9MHxmTChmfD0wKSkpP2Y9MDooZmVb''@;'; put 'put ''bCs2OT4+MF09ZixhW2w+PjJdPTY5LGFbbCs0Pj4yXT03MCxhW2wrNDg+PjJdPTMxLGFbbCs3Mj4+Ml09YyxhW2M+PjJdPWwsZj0xKSwwfGZ9LGZ1bmN0aW9uIEoxZShsLGMsZil7dmFyIHAsbSxBLHc7bHw9MCxmfD0wLEE9bGUsbGU9bGUrMTQ0fDAscD1BKzh8MCxtPUEsYVsodz1BKzR8MCk+''@;'; put 'put ''PjJdPWN8PTAsYVttPj4yXT1wLFIyWzEyNyZhW2wrNTY+PjJdXShsLHcsZixtLHArMTI3fDApO2Rve2lmKCgwfGFbdz4+Ml0pPT0oMHxmKSl7aWYoZmVbYVttPj4yXT4+MF09MCwwfENqKHAsMTQ0MzE1KSYmMj09KDB8YVtsKzY0Pj4yXSkpYnJlYWs7bD0tMSE9KDB8KGw9MHxmTChwKSkpPzB8''@;'; put 'put ''YVs1ODk0OCsobDw8Mik+PjJdOjB9ZWxzZSBsPTB9d2hpbGUoMCk7cmV0dXJuIGxlPUEsMHxsfSxmdW5jdGlvbiB0dWUobCxjLGYpe3ZhciBwLG0sQSx3O2x8PTAsZnw9MCxBPWxlLGxlPWxlKzE0NHwwLHA9QSs4fDAsbT1BLGFbKHc9QSs0fDApPj4yXT1jfD0wLGFbbT4+Ml09cCxSMlsxMjcm''@;'; put 'put ''YVtsKzU2Pj4yXV0obCx3LGYsbSxwKzEyN3wwKTtkb3tpZigoMHxhW3c+PjJdKT09KDB8Zikpe2lmKGZlW2FbbT4+Ml0+PjBdPTAsMHxDaihwLDE0NDMxNSkmJjI9PSgwfGFbbCs2ND4+Ml0pKWJyZWFrO2w9LTEhPSgwfChsPTB8ZkwocCkpKT8wfGFbNjA0NTYrKGw8PDIpPj4yXTowfWVsc2Ug''@;'; put 'put ''bD0wfXdoaWxlKDApO3JldHVybiBsZT1BLDB8bH0sZnVuY3Rpb24gQmNlKGwsYyxmKXtyZXR1cm4gMHxmdW5jdGlvbiBqY2UobCxjLGYpe2N8PTA7dmFyIHAsQSx3LG09MDtyZXR1cm4gbT0wfGVTKEE9MHxhWyhwPTg0KyhsfD0wKXwwKT4+Ml0sMCx3PTI1NisoZnw9MCl8MCksZ28oMHxjLDB8''@;'; put 'put ''QSwwfChmPShtPTA9PSgwfG0pP3c6bS1BfDApPj4+MDxmPj4+MD9tOmYpKSxhW2wrND4+Ml09QStmLGFbbCs4Pj4yXT1jPUErbXwwLGFbcD4+Ml09YywwfGZ9KGx8PTAsY3w9MCxmfD0wKX0sTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIsTTIs''@;'; put 'put ''TTIsTTIsTTJdLHEwPVtwYSxmdW5jdGlvbiBvc2UobCxjLGYscCl7cmV0dXJuIGx8PTAscHw9MCwobD0wfGFbKGN8PTApPj4yXSk+Pj4wPD0ocD0wfGFbKGZ8PTApPj4yXSk+Pj4wP2w+Pj4wPj1wPj4+MD8ocD0wfGFbYysyND4+Ml0pPj4+MDw9KGw9MHxhW2YrMjQ+PjJdKT4+PjA/cD4+PjA+''@;'; put 'put ''PWw+Pj4wPyhsPX5+KCtfW2MrOD4+M10tK19bZis4Pj4zXSkpfHwobD1+figrX1tjKzE2Pj4zXS0rX1tmKzE2Pj4zXSkpfHwobD1+figrX1tjKzMyPj4zXS0rX1tmKzMyPj4zXSkpfHwobD1+figrX1tjKzQwPj4zXS0rX1tmKzQwPj4zXSkpOmw9LTE6bD0xOmw9LTE6bD0xLDB8bH0sZnVuY3Rp''@;'; put 'put ''b24gSEQobCxjLGYscCl7cmV0dXJuKDB8YVsoY3w9MCk+PjJdKS0oMHxhWyhmfD0wKT4+Ml0pfDB9LGZ1bmN0aW9uIGgxZShsLGMsZixwKXtyZXR1cm4gbHw9MCwobD0oMHxhWyhjfD0wKT4+Ml0pLSgwfGFbKGZ8PTApPj4yXSl8MCl8fChsPSgwfGFbYys0Pj4yXSktKDB8YVtmKzQ+PjJdKXww''@;'; put 'put ''KSwwfGx9LGZ1bmN0aW9uICQyKGwsYyxmLHApe3JldHVybiBwfD0wLDB8KCgwfChjPTB8YVsoY3w9MCk+PjJdKSk8KDB8KHA9MHxhWyhmfD0wKT4+Ml0pKT8tMTooMHxjKT4oMHxwKSYxKX0sZnVuY3Rpb24gVW0obCxjLGYscCl7cmV0dXJuIHB8PTAsMHwoKGM9MHxhWyhjfD0wKT4+Ml0pPj4+''@;'; put 'put ''MD4ocD0wfGFbKGZ8PTApPj4yXSk+Pj4wPzE6KGM+Pj4wPHA+Pj4wKTw8MzE+PjMxKX0sZnVuY3Rpb24gR1AobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLEE9MDtyZXR1cm4oMHwobD0wfGFbNDArKGN8PTApPj4yXSkpPT0oMHwobT0wfGFbNDArKGZ8PTApPj4yXSkpPyhwPSgwfGFbYz4+Ml0p''@;'; put 'put ''Pj4+NCk+Pj4wPj0obD0oMHxhW2Y+PjJdKT4+PjQpPj4+MD9wPj4+MD5sPj4+MD9sPTE6QT02Omw9LTE6KHA9KDB8YVtsPj4yXSk+Pj40KT4+PjA+PShsPSgwfGFbbT4+Ml0pPj4+NCk+Pj4wP3A+Pj4wPmw+Pj4wP2w9MTpBPTY6bD0tMSw2PT0oMHxBKSYmKGw9MCksMHxsfSxmdW5jdGlvbiBX''@;'; put 'put ''ZChsLGMsZixwKXtsfD0wLGZ8PTAscHw9MCxsPTB8YVs0Njk4NF0scD0wIT0oMHwoY3w9MCkpO2Rve2lmKGwpe2lmKHApe3h0KGwsYyksbD0wO2JyZWFrfWw9MHxNdChsLGYpO2JyZWFrfWlmKHApe0Z0KGMpLGw9MDticmVha31sPTB8RjAoZik7YnJlYWt9d2hpbGUoMCk7cmV0dXJuIDB8bH0s''@;'; put 'put ''ZnVuY3Rpb24gREEobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBBLG09MCx3PTAsYj0wO0E9MHxhWyhsPTgrKDB8YVs0MCsoY3w9MCk+PjJdKXwwKT4+Ml0sbD0wfGFbbCs0Pj4yXSxwPTB8YVsobT04KygwfGFbNDArKGZ8PTApPj4yXSl8MCk+PjJdLG09MHxhW20rND4+Ml07ZG97aWYobD4+PjA8''@;'; put 'put ''bT4+PjB8KDB8bCk9PSgwfG0pJkE+Pj4wPHA+Pj4wKWw9LTE7ZWxzZSBpZihsPj4+MD5tPj4+MHwoMHxsKT09KDB8bSkmQT4+PjA+cD4+PjApbD0xO2Vsc2V7aWYoISgwPT0oMHwobD0wfGFbKHA9Yys4fDApPj4yXSkpJjA9PSgwfChwPTB8YVtwKzQ+PjJdKSl8fChiPWYrOHwwLHc9MHxhW2I+''@;'; put 'put ''PjJdLGI9MHxhW2IrND4+Ml0sMD09KDB8dykmMD09KDB8YikpKSl7aWYocD4+PjA8Yj4+PjB8KDB8cCk9PSgwfGIpJmw+Pj4wPHc+Pj4wKXtsPS0xO2JyZWFrfWlmKHA+Pj4wPmI+Pj4wfCgwfHApPT0oMHxiKSZsPj4+MD53Pj4+MCl7bD0xO2JyZWFrfX1sPTB9fXdoaWxlKDApO3JldHVybiAw''@;'; put 'put ''fGx9LGZ1bmN0aW9uIGZDKGwsYyxmLHApe3JldHVybiBwfD0wLDB8KDA9PSgwfChwPTB8U3AoMHxhWyhjPTgrKGN8PTApfDApPj4yXSwwfGFbYys0Pj4yXSwwfGFbKHA9OCsoZnw9MCl8MCk+PjJdLDB8YVtwKzQ+PjJdKSkpPzA6cD4+MzF8MSl9LGZ1bmN0aW9uIGRDKGwsYyxmLHApe3JldHVy''@;'; put 'put ''biAwfSxmdW5jdGlvbiBwQyhsLGMsZixwKXtyZXR1cm4gMHwoMD09KDEmKGZ8PTApfDApJiEwP2Y6MCl9LGZ1bmN0aW9uIENHKGwsYyxmLHApe3JldHVybiBwfD0wLDB8KChjPTB8YVsyNCsoY3w9MCk+PjJdKT4+PjA+KHA9MHxhWzI0KyhmfD0wKT4+Ml0pPj4+MD8xOihjPj4+MDxwPj4+MCk8''@;'; put 'put ''PDMxPj4zMSl9LGZ1bmN0aW9uIHZUKGwsYyxmLHApe3JldHVybiBsfD0wLHB8PTAsYz0wfGFbKGw9MTYrKGN8PTApfDApPj4yXSxwPTB8YVsoZj0xNisoZnw9MCl8MCk+PjJdLDB8KChsPTB8YVtsKzQ+PjJdKT4+PjA+KGY9MHxhW2YrND4+Ml0pPj4+MHwoMHxsKT09KDB8ZikmYz4+PjA+cD4+''@;'; put 'put ''PjA/MToobD4+PjA8Zj4+PjB8KDB8bCk9PSgwfGYpJmM+Pj4wPHA+Pj4wKTw8MzE+PjMxKX0sZnVuY3Rpb24gamUobCxjLGYscCl7cmV0dXJuIGx8PTAsZnw9MCxsPTB8VWEoY3w9MCxwfD0wKSxwPj4+MD5mPj4+MCYmdTIobCtmfDAsMCxwLWZ8MCksMHxsfSxmdW5jdGlvbiBSdChsLGMsZixw''@;'; put 'put ''KXtyZXR1cm4gbHw9MCxwfD0wLGM9MHxhWyhsPTgrKDB8YVsxNisoY3w9MCk+PjJdKXwwKT4+Ml0scD0wfGFbKGY9OCsoMHxhWzE2KyhmfD0wKT4+Ml0pfDApPj4yXSwwfCgobD0wfGFbbCs0Pj4yXSk+Pj4wPChmPTB8YVtmKzQ+PjJdKT4+PjB8KDB8bCk9PSgwfGYpJmM+Pj4wPHA+Pj4wPy0x''@;'; put 'put ''OjEmKGw+Pj4wPmY+Pj4wfCgwfGwpPT0oMHxmKSZjPj4+MD5wPj4+MCkpfSxmdW5jdGlvbiBubihsLGMsZixwKXtyZXR1cm4gcHw9MCwwfCgoYz0oMHxhW2FbMTYrKGN8PTApPj4yXT4+Ml0pPj4+NCk+Pj4wPChwPSgwfGFbYVsxNisoZnw9MCk+PjJdPj4yXSk+Pj40KT4+PjA/LTE6Yz4+PjA+''@;'; put 'put ''cD4+PjAmMSl9LGZ1bmN0aW9uIGhhZShsLGMsZixwKXtpZihsfD0wLHB8PTAsKDB8KGw9MHxhWyhjfD0wKT4+Ml0pKTw9KDB8KHA9MHxhWyhmfD0wKT4+Ml0pKSl7aWYoISgoMHxsKTwoMHxwKSkpcmV0dXJuIDB8KCgwfChjPTB8YVtjKzQ+PjJdKSk+KDB8KGY9MHxhW2YrND4+Ml0pKT8xOigo''@;'; put 'put ''MHxjKTwoMHxmKSk8PDMxPj4zMSk7bD0tMX1lbHNlIGw9MTtyZXR1cm4gMHxsfSxmdW5jdGlvbiBJbGUobCxjLGYscCl7aWYobHw9MCxwfD0wLChsPTB8YVsoY3w9MCk+PjJdKT4+PjA+PShwPTB8YVsoZnw9MCk+PjJdKT4+PjApe2lmKCEobD4+PjA+cD4+PjApKXJldHVybiAwfCgoYz0wfGFb''@;'; put 'put ''Yys0Pj4yXSk+Pj4wPChmPTB8YVtmKzQ+PjJdKT4+PjA/LTE6Yz4+PjA+Zj4+PjAmMSk7bD0xfWVsc2UgbD0tMTtyZXR1cm4gMHxsfSxmdW5jdGlvbiBfUihsLGMsZixwKXt2YXIgbSxBO3JldHVybiAwfCgoQT0rX1soY3w9MCk+PjNdKT4obT0rX1soZnw9MCk+PjNdKT8xOihBPG0pPDwzMT4+''@;'; put 'put ''MzEpfSxmdW5jdGlvbiBWOChsLGMsZixwKXt2YXIgbSxBO3JldHVybiAwfCgobT0rX1soY3w9MCk+PjNdKT4oQT0rX1soZnw9MCk+PjNdKT8xJiEoK19bYys4Pj4zXTw9K19bZis4Pj4zXSk6bTxBPyEoK19bYys4Pj4zXT49K19bZis4Pj4zXSk8PDMxPj4zMTowKX0sZnVuY3Rpb24gVlIobCxj''@;'; put 'put ''LGYscCl7cmV0dXJuKDB8YVsoY3w9MCk+PjJdKS0oMHxhWyhmfD0wKT4+Ml0pfDB9LGZ1bmN0aW9uIHhiKGwsYyxmLHApe3JldHVybiBwfD0wLDB8KCgwfChjPTB8YVsoY3w9MCk+PjJdKSk+KDB8KHA9MHxhWyhmfD0wKT4+Ml0pKT8xOigoMHxjKTwoMHxwKSk8PDMxPj4zMSl9LGZ1bmN0aW9u''@;'; put 'put ''IERFKGwsYyxmLHApe3ZhciBtPTAsQT0wO3JldHVybiAwfCgobT0rX1soY3w9MCk+PjNdKT4oQT0rX1soZnw9MCk+PjNdKT8xOm08QT8tMTooQT0rX1tjKzg+PjNdKT4obT0rX1tmKzg+PjNdKT8xOihBPG0pPDwzMT4+MzEpfSxmdW5jdGlvbiBPYihsLGMsZixwKXt2YXIgbT0wLEE9MDtyZXR1''@;'; put 'put ''cm4gMHwoKG09K19bOCsoY3w9MCk+PjNdKT4oQT0rX1s4KyhmfD0wKT4+M10pPzE6bTxBPy0xOihBPStfW2M+PjNdKT4obT0rX1tmPj4zXSk/MTooQTxtKTw8MzE+PjMxKX0sZnVuY3Rpb24gTm0obCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxN''@;'; put 'put ''PTAsRD0wO2U6ZG97aWYoYz4+PjA8Zj4+PjApe3N3aXRjaCgwfGZlWyhEPWwrNzJ8MCkrKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAxMjptPTB8ZzFlKDEyLGwsYysxfDAsZixwKTticmVhayBlO2Nhc2UgMTM6bT0wfGcxZSgxMyxsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDI6aWYoKGYtKG09''@;'; put 'put ''YysxfDApfDApPD0wKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbRCsoMHxYdFttPj4wXSk+PjBdKXtjYXNlIDE2Om09MHxtMWUobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSAxNTptPTB8c0wobCxjKzJ8MCxmLHApO2JyZWFrIGU7Y2FzZSA3OmNhc2UgNjpjYXNlIDU6Y2FzZSAyOTpjYXNl''@;'; put 'put ''IDI0OmNhc2UgMjI6YVtwPj4yXT1jLG09Mjk7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09bSxtPTA7YnJlYWsgZX1jYXNlIDk6aWYoKGMrMXwwKT09KDB8Zikpe2FbcD4+Ml09ZixtPS0xNTticmVhayBlfWI9MzticmVhaztjYXNlIDEwOmNhc2UgMjE6Yj0zO2JyZWFrO2Nhc2UgMzA6bT0wfGRq''@;'; put 'put ''KGwsYysxfDAsZixwKTticmVhayBlO2Nhc2UgMzU6YVtwPj4yXT1jKzEsbT0zODticmVhayBlO2Nhc2UgMjA6YVtwPj4yXT1jKzEsbT0yNTticmVhayBlO2Nhc2UgNDppZigoMHwobT1mLShBPWMrMXwwKXwwKSk8PTApe209LTI2O2JyZWFrIGV9aWYoOTM9PSgwfGZlW0E+PjBdKSl7aWYoKDB8''@;'; put 'put ''bSk8PTEpe209LTE7YnJlYWsgZX1pZig2Mj09KDB8ZmVbYysyPj4wXSkpe2FbcD4+Ml09YyszLG09MzQ7YnJlYWsgZX19YVtwPj4yXT1BLG09MjY7YnJlYWsgZTtjYXNlIDMxOmFbcD4+Ml09YysxLG09MjM7YnJlYWsgZTtjYXNlIDMyOmlmKChmLShtPWMrMXwwKXwwKTw9MCl7bT0tMjQ7YnJl''@;'; put 'put ''YWsgZX1zd2l0Y2goMHxmZVtEKygwfFh0W20+PjBdKT4+MF0pe2Nhc2UgMzM6YVtwPj4yXT1jKzIsbT0zNjticmVhayBlO2Nhc2UgMTU6YVtwPj4yXT1jKzIsbT0zNTticmVhayBlO2Nhc2UgMzQ6YVtwPj4yXT1jKzIsbT0zNzticmVhayBlO2Nhc2UgMzI6Y2FzZSAzNjpjYXNlIDM1OmNhc2Ug''@;'; put 'put ''MTE6Y2FzZSAyMTpjYXNlIDEwOmNhc2UgOTphW3A+PjJdPW0sbT0yNDticmVhayBlO2RlZmF1bHQ6YVtwPj4yXT1tLG09MDticmVhayBlfWNhc2UgMzY6YVtwPj4yXT1jKzEsbT0yMTticmVhayBlO2Nhc2UgMTE6YVtwPj4yXT1jKzEsbT0xNzticmVhayBlO2Nhc2UgMTk6bT0wfEhLKGwsYysx''@;'; put 'put ''fDAsZixwKTticmVhayBlO2Nhc2UgNTppZigoZi1jfDApPDIpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2wrMzQwPj4yXV0obCxjKSltPTE4LEE9MjtlbHNle2lmKCEoMHxCaVsxMjcmYVtsKzMyOD4+Ml1dKGwsYykpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9bT0xOSxBPTJ9YnJlYWs7''@;'; put 'put ''Y2FzZSA2OmlmKChmLWN8MCk8Myl7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNDQ+PjJdXShsLGMpKW09MTgsQT0zO2Vsc2V7aWYoISgwfEJpWzEyNyZhW2wrMzMyPj4yXV0obCxjKSkpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1tPTE5LEE9M31icmVhaztjYXNlIDc6aWYoKGYtY3ww''@;'; put 'put ''KTw0KXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtsKzM0OD4+Ml1dKGwsYykpbT0xOCxBPTQ7ZWxzZXtpZighKDB8QmlbMTI3JmFbbCszMzY+PjJdXShsLGMpKSl7YVtwPj4yXT1jLG09MDticmVhayBlfW09MTksQT00fWJyZWFrO2Nhc2UgMjQ6Y2FzZSAyMjptPTE4LEE9MTticmVhaztj''@;'; put 'put ''YXNlIDIzOmNhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1Om09MTksQT0xO2JyZWFrO2RlZmF1bHQ6YVtwPj4yXT1jLG09MDticmVhayBlfWlmKDM9PSgwfGIpKXt3PWYsQT1jO3Q6Zm9yKDs7KXtpZihtPUEsKHctKEE9QSsxfDApfDApPD0wKXtiPTE4O2JyZWFrfXN3aXRjaCgwfGZlW0QrKDB8WHRb''@;'; put 'put ''QT4+MF0pPj4wXSl7Y2FzZSAxMDpjYXNlIDIxOmNvbnRpbnVlIHQ7Y2FzZSA5OmJyZWFrO2RlZmF1bHQ6Yj0xNzticmVhayB0fWlmKChtKzJ8MCk9PSgwfGYpKXtiPTE3O2JyZWFrfX1pZigxNz09KDB8Yikpe2FbcD4+Ml09QSxtPTE1O2JyZWFrfWlmKDE4PT0oMHxiKSl7YVtwPj4yXT1BLG09''@;'; put 'put ''MTU7YnJlYWt9fWI9bCszMjh8MCxrPWwrMzMyfDAsTT1sKzMzNnwwLHc9YytBfDA7dDpmb3IoOzspe2lmKCgwfChBPWYtd3wwKSk8PTApe2I9OTk7YnJlYWt9c3dpdGNoKDB8ZmVbRCsoMHxYdFt3Pj4wXSk+PjBdKXtjYXNlIDI5OmI9NTY7YnJlYWsgdDtjYXNlIDEwOmNhc2UgOTpjYXNlIDIx''@;'; put 'put ''OmNhc2UgMzA6Y2FzZSAyMDpjYXNlIDM2OmNhc2UgMzU6Y2FzZSAzMjpjYXNlIDExOmI9NzA7YnJlYWsgdDtjYXNlIDM0OmI9ODk7YnJlYWsgdDtjYXNlIDMzOmI9OTI7YnJlYWsgdDtjYXNlIDE1OmI9OTU7YnJlYWsgdDtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6''@;'; put 'put ''dz13KzF8MCxtPWM9bTtjb250aW51ZSB0O2Nhc2UgNTppZigoMHxBKTwyKXttPS0yO2JyZWFrIGV9aWYoISgwfEJpWzEyNyZhW2I+PjJdXShsLHcpKSl7Yj02MDticmVhayB0fXc9dysyfDAsbT1jPW07Y29udGludWUgdDtjYXNlIDY6aWYoKDB8QSk8Myl7bT0tMjticmVhayBlfWlmKCEoMHxC''@;'; put 'put ''aVsxMjcmYVtrPj4yXV0obCx3KSkpe2I9NjQ7YnJlYWsgdH13PXcrM3wwLG09Yz1tO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfEEpPDQpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbTT4+Ml1dKGwsdykpKXtiPTY4O2JyZWFrIHR9dz13KzR8MCxtPWM9bTtjb250aW51ZSB0O2Nhc2Ug''@;'; put 'put ''MjM6c3dpdGNoKEE9dysxfDAsNjMmbSl7Y2FzZSAxODpicmVhaztjYXNlIDQxOm09MTksdz1BO2NvbnRpbnVlIHQ7ZGVmYXVsdDp3PUEsbT1jPW07Y29udGludWUgdH1pZigoMHwobT1mLUF8MCkpPD0wKXttPS0xO2JyZWFrIGV9c3dpdGNoKDB8ZmVbRCsoMHxYdFtBPj4wXSk+PjBdKXtjYXNl''@;'; put 'put ''IDI5OmI9NzQ7YnJlYWsgdDtjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6bT00MSx3PXcrMnwwO2NvbnRpbnVlIHQ7Y2FzZSA1OmlmKCgwfG0pPDIpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbYj4+Ml1dKGwsQSkpKXtiPTc4O2JyZWFrIHR9bT00MSx3PXcr''@;'; put 'put ''M3wwO2NvbnRpbnVlIHQ7Y2FzZSA2OmlmKCgwfG0pPDMpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbaz4+Ml1dKGwsQSkpKXtiPTgyO2JyZWFrIHR9bT00MSx3PXcrNHwwO2NvbnRpbnVlIHQ7Y2FzZSA3OmlmKCgwfG0pPDQpe209LTI7YnJlYWsgZX1pZighKDB8QmlbMTI3JmFbTT4+''@;'; put 'put ''Ml1dKGwsQSkpKXtiPTg2O2JyZWFrIHR9bT00MSx3PXcrNXwwO2NvbnRpbnVlIHQ7ZGVmYXVsdDptPTE5LHc9QTtjb250aW51ZSB0fWRlZmF1bHQ6Yj05ODticmVhayB0fX1zd2l0Y2goMHxiKXtjYXNlIDU2OmNhc2UgNjA6Y2FzZSA2NDpjYXNlIDY4OmNhc2UgOTg6YVtwPj4yXT13LG09MDti''@;'; put 'put ''cmVhayBlO2Nhc2UgNzA6YVtwPj4yXT13O2JyZWFrIGU7Y2FzZSA3NDpjYXNlIDc4OmNhc2UgODI6Y2FzZSA4NjphW3A+PjJdPUEsbT0wO2JyZWFrIGU7Y2FzZSA4OTppZigxOT09KDB8bSkpe2FbcD4+Ml09dyxtPTA7YnJlYWsgZX1hW3A+PjJdPXcrMSxtPTMyO2JyZWFrIGU7Y2FzZSA5Mjpp''@;'; put 'put ''ZigxOT09KDB8bSkpe2FbcD4+Ml09dyxtPTA7YnJlYWsgZX1hW3A+PjJdPXcrMSxtPTMxO2JyZWFrIGU7Y2FzZSA5NTppZigxOT09KDB8bSkpe2FbcD4+Ml09dyxtPTA7YnJlYWsgZX1hW3A+PjJdPXcrMSxtPTMwO2JyZWFrIGU7Y2FzZSA5OTptPTAtbXwwO2JyZWFrIGV9fWVsc2UgbT0tNH13''@;'; put 'put ''aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiB0YyhsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKXtNPWwrNzJ8MDt0OmRve3N3aXRjaCgwfGZlW00rKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSAyOm09''@;'; put 'put ''MHxIOWUobCxjKzF8MCxmLHApO2JyZWFrIGU7Y2FzZSAzOm09MHxsTChsLGMrMXwwLGYscCk7YnJlYWsgZTtjYXNlIDk6aWYoKGYtKG09YysxfDApfDApPD0wKXttPS0zO2JyZWFrIGV9YVtwPj4yXT0xMD09KDB8ZmVbTSsoMHxYdFttPj4wXSk+PjBdKT9jKzJ8MDptLG09NzticmVhayBlO2Nh''@;'; put 'put ''c2UgMTA6YVtwPj4yXT1jKzEsbT03O2JyZWFrIGU7Y2FzZSA0OmlmKChmLShBPWMrMXwwKXwwKTw9MCl7bT0tNTticmVhayBlfWlmKDkzPT0oMHxmZVtBPj4wXSkpe2lmKChmLShtPWMrMnwwKXwwKTw9MCl7bT0tNTticmVhayBlfWlmKDYyPT0oMHxmZVttPj4wXSkpe2FbcD4+Ml09bSxtPTA7''@;'; put 'put ''YnJlYWsgZX1tPWZ9ZWxzZSBtPWY7YnJlYWs7Y2FzZSA1OmlmKCgobT1mKS1jfDApPDIpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2wrMzUyPj4yXV0obCxjKSl7YVtwPj4yXT1jLG09MDticmVhayBlfUE9YysyfDA7YnJlYWsgdDtjYXNlIDY6aWYoKChtPWYpLWN8MCk8Myl7bT0tMjti''@;'; put 'put ''cmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNTY+PjJdXShsLGMpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9QT1jKzN8MDticmVhayB0O2Nhc2UgNzppZigoKG09ZiktY3wwKTw0KXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtsKzM2MD4+Ml1dKGwsYykpe2FbcD4+Ml09YyxtPTA7YnJlYWsg''@;'; put 'put ''ZX1BPWMrNHwwO2JyZWFrIHQ7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLG09MDticmVhayBlO2RlZmF1bHQ6QT1jKzF8MCxtPWZ9fXdoaWxlKDApO3c9bCszNTJ8MCxiPWwrMzU2fDAsaz1sKzM2MHwwO3Q6Zm9yKDs7KXtpZigoMHwoZj1tLUF8MCkpPD0wKXtmPTQ5O2JyZWFrfXN3''@;'; put 'put ''aXRjaCgwfGZlW00rKDB8WHRbQT4+MF0pPj4wXSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSAyOmNhc2UgMzpmPTQ3O2JyZWFrIHQ7Y2FzZSA1OmlmKCgwfGYpPDIpe2Y9MzI7YnJlYWsgdH1pZigwfEJpWzEyNyZhW3c+PjJdXShsLEEpKXtmPTMyO2JyZWFrIHR9''@;'; put 'put ''QT1BKzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxmKTwzKXtmPTM2O2JyZWFrIHR9aWYoMHxCaVsxMjcmYVtiPj4yXV0obCxBKSl7Zj0zNjticmVhayB0fUE9QSszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Zik8NCl7Zj00MDticmVhayB0fWlmKDB8QmlbMTI3JmFbaz4+Ml1dKGws''@;'; put 'put ''QSkpe2Y9NDA7YnJlYWsgdH1BPUErNHwwO2NvbnRpbnVlIHQ7Y2FzZSA0OmlmKCgwfGYpPD0xKXtmPTQ3O2JyZWFrIHR9aWYoOTMhPSgwfGZlWyhjPUErMXwwKT4+MF0pKXtBPWM7Y29udGludWUgdH1pZigoMHxmKTw9Mil7Zj00NzticmVhayB0fWlmKDYyPT0oMHxmZVsoQT1BKzJ8MCk+PjBd''@;'; put 'put ''KSl7Zj00NjticmVhayB0fUE9Yztjb250aW51ZSB0O2RlZmF1bHQ6QT1BKzF8MDtjb250aW51ZSB0fX1pZigzMj09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMzY9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDQwPT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha31pZig0''@;'; put 'put ''Nj09KDB8Zikpe2FbcD4+Ml09QSxtPTA7YnJlYWt9aWYoNDc9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDQ5PT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha319ZWxzZSBtPS00fXdoaWxlKDApO3JldHVybiAwfG19LGZ1bmN0aW9uIHg2KGwsYyxmLHApe2x8PTAsY3w9MCxmfD0w''@;'; put 'put ''LHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7ZTpkb3tpZihjPj4+MDxmPj4+MCl7az1sKzcyfDA7dDpkb3tzd2l0Y2goMHxmZVtrKygwfFh0W2M+PjBdKT4+MF0pe2Nhc2UgNDppZigoKG09ZiktKEE9YysxfDApfDApPD0wKXttPS0xO2JyZWFrIGV9aWYoOTM9PSgwfGZlW0E+PjBdKSl7''@;'; put 'put ''aWYoKG0tKGY9YysyfDApfDApPD0wKXttPS0xO2JyZWFrIGV9aWYoNjI9PSgwfGZlW2Y+PjBdKSl7YVtwPj4yXT1jKzMsbT00MDticmVhayBlfX1icmVhaztjYXNlIDk6aWYoKGYtKG09YysxfDApfDApPD0wKXttPS0xO2JyZWFrIGV9YVtwPj4yXT0xMD09KDB8ZmVbaysoMHxYdFttPj4wXSk+''@;'; put 'put ''PjBdKT9jKzJ8MDptLG09NzticmVhayBlO2Nhc2UgMTA6YVtwPj4yXT1jKzEsbT03O2JyZWFrIGU7Y2FzZSA1OmlmKCgobT1mKS1jfDApPDIpe209LTI7YnJlYWsgZX1pZigwfEJpWzEyNyZhW2wrMzUyPj4yXV0obCxjKSl7YVtwPj4yXT1jLG09MDticmVhayBlfUE9YysyfDA7YnJlYWsgdDtj''@;'; put 'put ''YXNlIDY6aWYoKChtPWYpLWN8MCk8Myl7bT0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbbCszNTY+PjJdXShsLGMpKXthW3A+PjJdPWMsbT0wO2JyZWFrIGV9QT1jKzN8MDticmVhayB0O2Nhc2UgNzppZigoKG09ZiktY3wwKTw0KXttPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtsKzM2MD4+''@;'; put 'put ''Ml1dKGwsYykpe2FbcD4+Ml09YyxtPTA7YnJlYWsgZX1BPWMrNHwwO2JyZWFrIHQ7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLG09MDticmVhayBlO2RlZmF1bHQ6QT1jKzF8MCxtPWZ9fXdoaWxlKDApO2M9bCszNTJ8MCx3PWwrMzU2fDAsYj1sKzM2MHwwO3Q6Zm9yKDs7KXtpZigo''@;'; put 'put ''MHwoZj1tLUF8MCkpPD0wKXtmPTM5O2JyZWFrfXN3aXRjaCgwfGZlW2srKDB8WHRbQT4+MF0pPj4wXSl7Y2FzZSA0OmNhc2UgMTA6Y2FzZSA5OmNhc2UgODpjYXNlIDE6Y2FzZSAwOmY9Mzc7YnJlYWsgdDtjYXNlIDU6aWYoKDB8Zik8Mil7Zj0zMDticmVhayB0fWlmKDB8QmlbMTI3JmFbYz4+''@;'; put 'put ''Ml1dKGwsQSkpe2Y9MzA7YnJlYWsgdH1mPTI7YnJlYWs7Y2FzZSA2OmlmKCgwfGYpPDMpe2Y9MzM7YnJlYWsgdH1pZigwfEJpWzEyNyZhW3c+PjJdXShsLEEpKXtmPTMzO2JyZWFrIHR9Zj0zO2JyZWFrO2Nhc2UgNzppZigoMHxmKTw0KXtmPTM2O2JyZWFrIHR9aWYoMHxCaVsxMjcmYVtiPj4y''@;'; put 'put ''XV0obCxBKSl7Zj0zNjticmVhayB0fWY9NDticmVhaztkZWZhdWx0OmY9MX1BPUErZnwwfWlmKDMwPT0oMHxmKSl7YVtwPj4yXT1BLG09NjticmVha31pZigzMz09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMzY9PSgwfGYpKXthW3A+PjJdPUEsbT02O2JyZWFrfWlmKDM3PT0oMHxm''@;'; put 'put ''KSl7YVtwPj4yXT1BLG09NjticmVha31pZigzOT09KDB8Zikpe2FbcD4+Ml09QSxtPTY7YnJlYWt9fWVsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBwMWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIHcsYixrLE0sbT0wLEE9MCxEPTAsUj0wO3c9NzIrKGx8PTAp''@;'; put 'put ''fDAsYj1sKzM1MnwwLGs9bCszNTZ8MCxNPWwrMzYwfDAsQT0wO2U6Zm9yKDs7KXtpZigoMHwobT1mLWN8MCkpPD0wKXtmPS0xO2JyZWFrfXN3aXRjaCgwfGZlW3crKDB8WHRbYz4+MF0pPj4wXSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6RD0xNjticmVhayBlO2Nhc2UgNTppZigoMHxtKTwyKXtm''@;'; put 'put ''PS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtiPj4yXV0obCxjKSl7RD02O2JyZWFrIGV9Yz1jKzJ8MCxBPW09QTtjb250aW51ZSBlO2Nhc2UgNjppZigoMHxtKTwzKXtmPS0yO2JyZWFrIGV9aWYoMHxCaVsxMjcmYVtrPj4yXV0obCxjKSl7RD0xMDticmVhayBlfWM9YyszfDAsQT1tPUE7Y29u''@;'; put 'put ''dGludWUgZTtjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWlmKDB8QmlbMTI3JmFbTT4+Ml1dKGwsYykpe0Q9MTQ7YnJlYWsgZX1jPWMrNHwwLEE9bT1BO2NvbnRpbnVlIGU7Y2FzZSAyOmlmKChmLShtPWMrMXwwKXwwKTw9MCl7Zj0tMTticmVhayBlfWlmKDMzIT0oMHxmZVttPj4w''@;'; put 'put ''XSkpe2M9bSxBPVI9QTtjb250aW51ZSBlfWlmKChmLShtPWMrMnwwKXwwKTw9MCl7Zj0tMTticmVhayBlfUE9QSsoMSYoUj05MT09KDB8ZmVbbT4+MF0pKSl8MCxjPVI/YyszfDA6bTtjb250aW51ZSBlO2Nhc2UgNDppZigoZi0obT1jKzF8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1pZig5MyE9''@;'; put 'put ''KDB8ZmVbbT4+MF0pKXtjPW0sQT1SPUE7Y29udGludWUgZX1pZigoZi0obT1jKzJ8MCl8MCk8PTApe2Y9LTE7YnJlYWsgZX1pZig2MiE9KDB8ZmVbbT4+MF0pKXtjPW0sQT1SPUE7Y29udGludWUgZX1pZihjPWMrM3wwLCFBKXtEPTI2O2JyZWFrIGV9QT1BKy0xfDA7Y29udGludWUgZTtkZWZh''@;'; put 'put ''dWx0OmM9YysxfDAsQT1SPUE7Y29udGludWUgZX19cmV0dXJuIDY9PSgwfEQpfHwxMD09KDB8RCl8fDE0PT0oMHxEKXx8MTY9PSgwfEQpPyhhW3A+PjJdPWMsZj0wKToyNj09KDB8RCkmJihhW3A+PjJdPWMsZj00MiksMHxmfSxmdW5jdGlvbiBVeShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxw''@;'; put 'put ''fD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjApe2s9bCs3MnwwLEE9YztlOmZvcig7Oyl7aWYoKGItQXwwKTw9MCl7dz0yNDticmVha31zd2l0Y2goMHxmZVtrKygwfFh0W0E+PjBdKT4+MF0pe2Nhc2UgMzp3PTg7YnJlYWsgZTtj''@;'; put 'put ''YXNlIDI6dz0xMTticmVhayBlO2Nhc2UgMTA6dz0xMjticmVhayBlO2Nhc2UgOTp3PTE1O2JyZWFrIGU7Y2FzZSAyMTp3PTE5O2JyZWFrIGU7Y2FzZSA1Om09MjticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNzptPTQ7YnJlYWs7ZGVmYXVsdDptPTF9QT1BK218MH1pZig4PT0oMHx3KSl7''@;'; put 'put ''aWYoKDB8QSk9PSgwfGMpKXttPTB8bEwobCxjKzF8MCxmLHApO2JyZWFrfWFbcD4+Ml09QSxtPTY7YnJlYWt9aWYoMTE9PSgwfHcpKXthW3A+PjJdPUEsbT0wO2JyZWFrfWlmKDEyPT0oMHx3KSl7aWYoKDB8QSk9PSgwfGMpKXthW3A+PjJdPWMrMSxtPTc7YnJlYWt9YVtwPj4yXT1BLG09Njti''@;'; put 'put ''cmVha31pZigxNT09KDB8dykpe2lmKCgwfEEpIT0oMHxjKSl7YVtwPj4yXT1BLG09NjticmVha31pZigoYi0obT1jKzF8MCl8MCk8PTApe209LTM7YnJlYWt9YVtwPj4yXT0xMD09KDB8ZmVbaysoMHxYdFttPj4wXSk+PjBdKT9jKzJ8MDptLG09NzticmVha31pZigxOT09KDB8dykpe2lmKCgw''@;'; put 'put ''fEEpPT0oMHxjKSl7YVtwPj4yXT1jKzEsbT0zOTticmVha31hW3A+PjJdPUEsbT02O2JyZWFrfWlmKDI0PT0oMHx3KSl7YVtwPj4yXT1BLG09NjticmVha319ZWxzZSBtPS0xO2Vsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBOdShsLGMsZixwKXtsfD0wLGN8PTAsZnw9''@;'; put 'put ''MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjApe2s9bCs3MnwwLEE9YztlOmZvcig7Oyl7aWYoKGItQXwwKTw9MCl7dz0yMzticmVha31zd2l0Y2goMHxmZVtrKygwfFh0W0E+PjBdKT4+MF0pe2Nhc2UgMzp3PTg7YnJlYWsg''@;'; put 'put ''ZTtjYXNlIDMwOnc9MTE7YnJlYWsgZTtjYXNlIDEwOnc9MTQ7YnJlYWsgZTtjYXNlIDk6dz0xNzticmVhayBlO2Nhc2UgNTptPTI7YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDc6bT00O2JyZWFrO2RlZmF1bHQ6bT0xfUE9QSttfDB9aWYoOD09KDB8dykpe2lmKCgwfEEpPT0oMHxjKSl7''@;'; put 'put ''bT0wfGxMKGwsYysxfDAsZixwKTticmVha31hW3A+PjJdPUEsbT02O2JyZWFrfWlmKDExPT0oMHx3KSl7aWYoKDB8QSk9PSgwfGMpKXttPTIyPT0oMHwobT0wfGRqKGwsYysxfDAsZixwKSkpPzA6bTticmVha31hW3A+PjJdPUEsbT02O2JyZWFrfWlmKDE0PT0oMHx3KSl7aWYoKDB8QSk9PSgw''@;'; put 'put ''fGMpKXthW3A+PjJdPWMrMSxtPTc7YnJlYWt9YVtwPj4yXT1BLG09NjticmVha31pZigxNz09KDB8dykpe2lmKCgwfEEpIT0oMHxjKSl7YVtwPj4yXT1BLG09NjticmVha31pZigoYi0obT1jKzF8MCl8MCk8PTApe209LTM7YnJlYWt9YVtwPj4yXT0xMD09KDB8ZmVbaysoMHxYdFttPj4wXSk+''@;'; put 'put ''PjBdKT9jKzJ8MDptLG09NzticmVha31pZigyMz09KDB8dykpe2FbcD4+Ml09QSxtPTY7YnJlYWt9fWVsc2UgbT0tMTtlbHNlIG09LTR9d2hpbGUoMCk7cmV0dXJuIDB8bX0sZnVuY3Rpb24gTEsobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLEE9MDtmb3IobT1mfD0wLGw9Y3w9MDs7KXtpZigh''@;'; put 'put ''KChjPTB8ZmVbcD4+MF0pPDwyND4+MjQpKXtBPTY7YnJlYWt9aWYoKG0tbHwwKTwxKXtsPTA7YnJlYWt9aWYoKDB8ZmVbbD4+MF0pIT1jPDwyND4+MjQpe2w9MDticmVha31wPXArMXwwLGw9bCsxfDB9cmV0dXJuIDY9PSgwfEEpJiYobD0oMHxsKT09KDB8ZikmMSksMHxsfSxmdW5jdGlvbiBS''@;'; put 'put ''SyhsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgayxtPTAsQT0wLHc9MCxiPTAsTT0wO2s9NzIrKGx8PTApfDAsdz0wLGI9MCxsPTE7ZTpmb3IoOzspc3dpdGNoKDB8ZmVbaysoMjU1JihBPTB8ZmVbKG09YysxfDApPj4wXSkpPj4wXSl7Y2FzZSA1Omx8fCgoMHxiKTwoMHxmKSYmKGFbcCso''@;'; put 'put ''Yjw8NCk+PjJdPW0sZmVbcCsoYjw8NCkrMTI+PjBdPTEpLGw9MSksYz1jKzJ8MCxiPW09Yix3PUE9dztjb250aW51ZSBlO2Nhc2UgNjpsfHwoKDB8Yik8KDB8ZikmJihhW3ArKGI8PDQpPj4yXT1tLGZlW3ArKGI8PDQpKzEyPj4wXT0xKSxsPTEpLGM9YyszfDAsYj1tPWIsdz1BPXc7Y29udGlu''@;'; put 'put ''dWUgZTtjYXNlIDc6bHx8KCgwfGIpPCgwfGYpJiYoYVtwKyhiPDw0KT4+Ml09bSxmZVtwKyhiPDw0KSsxMj4+MF09MSksbD0xKSxjPWMrNHwwLGI9bT1iLHc9QT13O2NvbnRpbnVlIGU7Y2FzZSAyNDpjYXNlIDIyOmNhc2UgMjk6aWYoMHxsKXtjPW0sdz1BPXc7Y29udGludWUgZX1pZigoMHxi''@;'; put 'put ''KT49KDB8Zikpe2w9MSxjPW07Y29udGludWUgZX1hW3ArKGI8PDQpPj4yXT1tLGZlW3ArKGI8PDQpKzEyPj4wXT0xLGw9MSxjPW07Y29udGludWUgZTtjYXNlIDEyOmlmKDIhPSgwfGwpKXtpZigoMHxiKT49KDB8Zikpe3c9MTIsbD0yLGM9bTtjb250aW51ZSBlfWFbcCsoYjw8NCkrND4+Ml09''@;'; put 'put ''YysyLHc9MTIsbD0yLGM9bTtjb250aW51ZSBlfWlmKDEyIT0oMHx3KSl7bD0yLGM9bTtjb250aW51ZSBlfSgwfGIpPCgwfGYpJiYoYVtwKyhiPDw0KSs4Pj4yXT1tKSx3PTEyLGI9YisxfDAsbD0wLGM9bTtjb250aW51ZSBlO2Nhc2UgMTM6aWYoMiE9KDB8bCkpe2lmKCgwfGIpPj0oMHxmKSl7''@;'; put 'put ''dz0xMyxsPTIsYz1tO2NvbnRpbnVlIGV9YVtwKyhiPDw0KSs0Pj4yXT1jKzIsdz0xMyxsPTIsYz1tO2NvbnRpbnVlIGV9aWYoMTMhPSgwfHcpKXtsPTIsYz1tO2NvbnRpbnVlIGV9KDB8Yik8KDB8ZikmJihhW3ArKGI8PDQpKzg+PjJdPW0pLHc9MTMsYj1iKzF8MCxsPTAsYz1tO2NvbnRpbnVl''@;'; put 'put ''IGU7Y2FzZSAzOmlmKCgwfGIpPj0oMHxmKSl7Yz1tLGw9QT1sO2NvbnRpbnVlIGV9ZmVbcCsoYjw8NCkrMTI+PjBdPTAsYz1tLGw9QT1sO2NvbnRpbnVlIGU7Y2FzZSAyMTpzd2l0Y2goMHxsKXtjYXNlIDE6bD0wLGM9bTtjb250aW51ZSBlO2Nhc2UgMjpicmVhaztkZWZhdWx0OmM9bSxsPUE9''@;'; put 'put ''bDtjb250aW51ZSBlfWlmKCgwfGIpPj0oMHxmKSl7bD0yLGM9bTtjb250aW51ZSBlfWlmKCEoMHxmZVsobD1wKyhiPDw0KSsxMnwwKT4+MF0pKXtsPTIsYz1tO2NvbnRpbnVlIGV9aWYoQTw8MjQ+PjI0PT0zMiYmKDB8bSkhPSgwfGFbcCsoYjw8NCkrND4+Ml0pJiYoTT0wfGZlW2MrMj4+MF0p''@;'; put 'put ''PDwyND4+MjQhPTMyJiYoMHx3KSE9KDB8WHRbaysoMjU1Jk0pPj4wXSkpe2w9MixjPW07Y29udGludWUgZX1mZVtsPj4wXT0wLGw9MixjPW07Y29udGludWUgZTtjYXNlIDEwOmNhc2UgOTpzd2l0Y2goMHxsKXtjYXNlIDE6bD0wLGM9bTtjb250aW51ZSBlO2Nhc2UgMjpicmVhaztkZWZhdWx0''@;'; put 'put ''OmM9bSxsPUE9bDtjb250aW51ZSBlfWlmKCgwfGIpPj0oMHxmKSl7bD0yLGM9bTtjb250aW51ZSBlfWZlW3ArKGI8PDQpKzEyPj4wXT0wLGw9MixjPW07Y29udGludWUgZTtjYXNlIDE3OmNhc2UgMTE6aWYoMj09KDB8bCkpe2w9MixjPW07Y29udGludWUgZX1icmVhayBlO2RlZmF1bHQ6Yz1t''@;'; put 'put ''LGw9QT1sO2NvbnRpbnVlIGV9cmV0dXJuIDB8Yn0sZnVuY3Rpb24gSnkobCxjLGYscCl7Y3w9MCxwfD0wO3ZhciBtLEE9MDttPShmfD0wKS0xfDAsbD03MisobHw9MCl8MDtlOmZvcig7Oyl7aWYoKG0tKGM9YysxfDApfDApPD0wKXtjPTE7YnJlYWt9c3dpdGNoKDB8ZmVbbCsoMjU1JihmPTB8''@;'; put 'put ''ZmVbYz4+MF0pKT4+MF0pe2Nhc2UgMjM6Y2FzZSAxOTpjYXNlIDMwOmNhc2UgMzM6Y2FzZSAxNjpjYXNlIDE4OmNhc2UgMTA6Y2FzZSA5OmNhc2UgMTU6Y2FzZSAxNDpjYXNlIDE3OmNhc2UgMzU6Y2FzZSAzNDpjYXNlIDMyOmNhc2UgMzE6Y2FzZSAxMzpjYXNlIDI3OmNhc2UgMjQ6Y2FzZSAy''@;'; put 'put ''NTpjb250aW51ZSBlO2Nhc2UgMjE6aWYoZjw8MjQ+PjI0PT05KXtBPTc7YnJlYWsgZX1jb250aW51ZSBlO2Nhc2UgMjI6Y2FzZSAyNjppZihmPDwyND4+MjQ+PTApY29udGludWUgZX1zd2l0Y2goZjw8MjQ+PjI0fDApe2Nhc2UgNjQ6Y2FzZSAzNjpicmVhaztkZWZhdWx0OkE9NzticmVhayBl''@;'; put 'put ''fX1yZXR1cm4gNz09KDB8QSkmJihhW3A+PjJdPWMsYz0wKSwwfGN9LGZ1bmN0aW9uIFg5ZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKWlmKEE9YyxNPWYtQXwwLGI9MD09KDEmTXwwKSxNJj0tMixr''@;'; put 'put ''PTA9PSgwfE0pLE09YnxrP2Y6YytNfDAsYnwxXmspe3N3aXRjaCgoZj0wfGZlW2M+PjBdKTw8MjQ+PjI0Pyh3PW09MHxmZVtjKzE+PjBdLG09MHxmMChmLG0pKToodz1tPTB8ZmVbYysxPj4wXSxtPTB8WHRbbCs3MisoMjU1Jm0pPj4wXSksMHxtKXtjYXNlIDEyOmY9MHxuZCgxMixsLGMrMnww''@;'; put 'put ''LE0scCk7YnJlYWsgZTtjYXNlIDEzOmY9MHxuZCgxMyxsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDI6aWYoKE0tKG09YysyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKDB8KGY9KGY9MHxmZVttPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjKzM+PjBdKTowfFh0W2wrNzIrKDB8''@;'; put 'put ''WHRbYyszPj4wXSk+PjBdKSl7Y2FzZSAxNjpmPTB8aEwobCxjKzR8MCxNLHApO2JyZWFrIGU7Y2FzZSAxNTpmPTB8WEsobCxjKzR8MCxNLHApO2JyZWFrIGU7Y2FzZSA3OmNhc2UgNjpjYXNlIDU6Y2FzZSAyOTpjYXNlIDI0OmNhc2UgMjI6YVtwPj4yXT1jLGY9Mjk7YnJlYWsgZTtkZWZhdWx0''@;'; put 'put ''OmFbcD4+Ml09bSxmPTA7YnJlYWsgZX1jYXNlIDk6aWYoKGMrMnwwKT09KDB8TSkpe2FbcD4+Ml09TSxmPS0xNTticmVhayBlfUE9NzticmVhaztjYXNlIDEwOmNhc2UgMjE6QT03O2JyZWFrO2Nhc2UgMzA6Zj0wfGoxZShsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDM1OmFbcD4+Ml09Yysy''@;'; put 'put ''LGY9Mzg7YnJlYWsgZTtjYXNlIDIwOmFbcD4+Ml09YysyLGY9MjU7YnJlYWsgZTtjYXNlIDQ6aWYoKDB8KGY9TS0obT1jKzJ8MCl8MCkpPD0xKXtmPS0yNjticmVhayBlfWlmKDA9PSgwfGZlW20+PjBdKSYmOTM9PSgwfGZlW2MrMz4+MF0pKXtpZigoMHxmKTw9Myl7Zj0tMTticmVhayBlfWlm''@;'; put 'put ''KDA9PSgwfGZlW2MrND4+MF0pJiY2Mj09KDB8ZmVbYys1Pj4wXSkpe2FbcD4+Ml09Yys2LGY9MzQ7YnJlYWsgZX19YVtwPj4yXT1tLGY9MjY7YnJlYWsgZTtjYXNlIDMxOmFbcD4+Ml09YysyLGY9MjM7YnJlYWsgZTtjYXNlIDMyOmlmKChNLShtPWMrMnwwKXwwKTw9MSl7Zj0tMjQ7YnJlYWsg''@;'; put 'put ''ZX1zd2l0Y2goMHwoZj0oZj0wfGZlW20+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2MrMz4+MF0pOjB8WHRbbCs3MisoMHxYdFtjKzM+PjBdKT4+MF0pKXtjYXNlIDMzOmFbcD4+Ml09Yys0LGY9MzY7YnJlYWsgZTtjYXNlIDE1OmFbcD4+Ml09Yys0LGY9MzU7YnJlYWsgZTtjYXNlIDM0OmFb''@;'; put 'put ''cD4+Ml09Yys0LGY9Mzc7YnJlYWsgZTtjYXNlIDMyOmNhc2UgMzY6Y2FzZSAzNTpjYXNlIDExOmNhc2UgMjE6Y2FzZSAxMDpjYXNlIDk6YVtwPj4yXT1tLGY9MjQ7YnJlYWsgZTtkZWZhdWx0OmFbcD4+Ml09bSxmPTA7YnJlYWsgZX1jYXNlIDM2OmFbcD4+Ml09YysyLGY9MjE7YnJlYWsgZTtj''@;'; put 'put ''YXNlIDExOmFbcD4+Ml09YysyLGY9MTc7YnJlYWsgZTtjYXNlIDE5OmY9MHxydihsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDU6aWYoKE0tQXwwKTwyKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgNjppZigoTS1BfDApPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJd''@;'; put 'put ''PWMsZj0wO2JyZWFrIGU7Y2FzZSA3OmlmKChNLUF8MCk8NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDI0OmNhc2UgMjI6Zj0xOCxBPTYxO2JyZWFrO2Nhc2UgMjM6Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Zj0xOSxBPTYxO2JyZWFrO2Nhc2UgMjk6QT0yNTUm''@;'; put 'put ''ZixmPShtPTI1NSZ3KT4+PjUsKG09MTw8KDMxJm0pKSZhWzU2OTQwKygoZnxYdFsxNDM3ODgrQT4+MF08PDMpPDwyKT4+Ml0/KGY9MTgsQT02MSk6YVs1Njk0MCsoKFh0WzE0NDA0NCtBPj4wXTw8M3xmKTw8Mik+PjJdJm0/KGY9MTksQT02MSk6QT02NDticmVhaztkZWZhdWx0OkE9NjR9aWYo''@;'; put 'put ''Nz09KDB8QSkpe2I9TSxsPWwrNzJ8MCx3PWM7dDpmb3IoOzspe2lmKEE9dywoYi0odz13KzJ8MCl8MCk8PTEpe0E9Mjg7YnJlYWt9c3dpdGNoKG09MHxmZVtBKzM+PjBdLDB8KGY9KGY9MHxmZVt3Pj4wXSk8PDI0Pj4yND8wfGYwKGYsbSk6MHxYdFtsKygyNTUmbSk+PjBdKSl7Y2FzZSAxMDpj''@;'; put 'put ''YXNlIDIxOmNvbnRpbnVlIHQ7Y2FzZSA5OmJyZWFrO2RlZmF1bHQ6QT0yNzticmVhayB0fWlmKChBKzR8MCk9PSgwfE0pKXtBPTI3O2JyZWFrfX1pZigyNz09KDB8QSkpe2FbcD4+Ml09dyxmPTE1O2JyZWFrfWlmKDI4PT0oMHxBKSl7YVtwPj4yXT13LGY9MTU7YnJlYWt9fWVsc2UgaWYoNjE9''@;'; put 'put ''PSgwfEEpKXtrPWwrNzJ8MCxtPWMrMnwwO3Q6Zm9yKDs7KXtjPTI1NSZmO246Zm9yKDs7KXtpZigoMHwoYj1NLW18MCkpPD0xKXtBPTEwNDticmVhayB0fXN3aXRjaCh3PTB8ZmVbbSsxPj4wXSwwfChsPShBPTB8ZmVbbT4+MF0pPDwyND4+MjQ/MHxmMChBLHcpOjB8WHRbaysoMjU1JncpPj4w''@;'; put 'put ''XSkpe2Nhc2UgNTpBPTczO2JyZWFrIHQ7Y2FzZSA2OkE9NzQ7YnJlYWsgdDtjYXNlIDc6QT03NjticmVhayB0O2Nhc2UgMTA6Y2FzZSA5OmNhc2UgMjE6Y2FzZSAzMDpjYXNlIDIwOmNhc2UgMzY6Y2FzZSAzNTpjYXNlIDMyOmNhc2UgMTE6QT03ODticmVhayB0O2Nhc2UgMzQ6QT05NDticmVh''@;'; put 'put ''ayB0O2Nhc2UgMzM6QT05NzticmVhayB0O2Nhc2UgMTU6QT0xMDA7YnJlYWsgdDtjYXNlIDI5OmlmKCEoMTw8KDMxJihiPTI1NSZ3KSkmYVs1Njk0MCsoKGI+Pj41fFh0WzE0NDA0NCsoMjU1JkEpPj4wXTw8Myk8PDIpPj4yXSkpe0E9NzE7YnJlYWsgdH1icmVhaztjYXNlIDI3OmNhc2UgMjY6''@;'; put 'put ''Y2FzZSAyNTpjYXNlIDI0OmNhc2UgMjI6YnJlYWs7Y2FzZSAyMzpzd2l0Y2goYj1tKzJ8MCw2MyZjKXtjYXNlIDQxOmY9MTksbT1iO2NvbnRpbnVlIHQ7Y2FzZSAxODpicmVhayBuO2RlZmF1bHQ6bT1iO2NvbnRpbnVlIG59ZGVmYXVsdDpBPTEwMzticmVhayB0fW09bSsyfDB9aWYoKDB8KGw9''@;'; put 'put ''TS1ifDApKTw9MSl7Zj0tMTticmVhayBlfXN3aXRjaChBPTB8ZmVbbSszPj4wXSwwfCh3PShmPTB8ZmVbYj4+MF0pPDwyND4+MjQ/MHxmMChmLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgNTpBPTg5O2JyZWFrIHQ7Y2FzZSA2OkE9OTA7YnJlYWsgdDtjYXNlIDc6QT05MjticmVhayB0''@;'; put 'put ''O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGM9MjU1JkEpKSZhWzU2OTQwKygoYz4+PjV8WHRbMTQ0MDQ0KygyNTUmZik+PjBdPDwzKTw8Mik+PjJdKSl7QT04NzticmVhayB0fWJyZWFrO2Nhc2UgMjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpicmVhaztkZWZhdWx0OmY9MTksbT1i''@;'; put 'put ''O2NvbnRpbnVlIHR9Zj00MSxtPW0rNHwwfXN3aXRjaCgwfEEpe2Nhc2UgNzE6Y2FzZSA3MzpjYXNlIDEwMzphW3A+PjJdPW0sZj0wO2JyZWFrIGU7Y2FzZSA3NDppZigoMHxiKTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1tLGY9MDticmVhayBlO2Nhc2UgNzY6aWYoKDB8Yik8NCl7Zj0tMjti''@;'; put 'put ''cmVhayBlfWFbcD4+Ml09bSxmPTA7YnJlYWsgZTtjYXNlIDc4OmFbcD4+Ml09bTticmVhayBlO2Nhc2UgODc6Y2FzZSA4OTphW3A+PjJdPWIsZj0wO2JyZWFrIGU7Y2FzZSA5MDppZigoMHxsKTwzKXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1iLGY9MDticmVhayBlO2Nhc2UgOTI6aWYoKDB8bCk8''@;'; put 'put ''NCl7Zj0tMjticmVhayBlfWFbcD4+Ml09YixmPTA7YnJlYWsgZTtjYXNlIDk0OmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9MzI7YnJlYWsgZTtjYXNlIDk3OmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9''@;'; put 'put ''MzE7YnJlYWsgZTtjYXNlIDEwMDppZigxOT09KDB8Zikpe2FbcD4+Ml09bSxmPTA7YnJlYWsgZX1hW3A+PjJdPW0rMixmPTMwO2JyZWFrIGU7Y2FzZSAxMDQ6Zj0wLWZ8MDticmVhayBlfX1lbHNlIGlmKDY0PT0oMHxBKSl7YVtwPj4yXT1jLGY9MDticmVha319ZWxzZSBmPS0xO2Vsc2UgZj0t''@;'; put 'put ''NH13aGlsZSgwKTtyZXR1cm4gMHxmfSxmdW5jdGlvbiBLOWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO2U6ZG97aWYoYz4+PjA8Zj4+PjApaWYobT1jLEE9Zi1tfDAsYj0wPT0oMSZBfDApLEEmPS0yLHc9MD09KDB8QSksQT1ifHc/ZjpjK0F8MCxi''@;'; put 'put ''fDFedyl7c3dpdGNoKDB8KGY9KGY9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjKzE+PjBdKTowfFh0W2wrNzIrKDB8WHRbYysxPj4wXSk+PjBdKSl7Y2FzZSAyOmY9MHxyQWUobCxjKzJ8MCxBLHApO2JyZWFrIGU7Y2FzZSAzOmY9MHxfaihsLGMrMnwwLEEscCk7YnJlYWsgZTtj''@;'; put 'put ''YXNlIDk6aWYoKEEtKG09YysyfDApfDApPD0xKXtmPS0zO2JyZWFrIGV9Zj0oZj0wfGZlW20+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2MrMz4+MF0pOjB8WHRbbCs3MisoMHxYdFtjKzM+PjBdKT4+MF0sYVtwPj4yXT0xMD09KDB8Zik/Yys0fDA6bSxmPTc7YnJlYWsgZTtjYXNlIDEwOmFb''@;'; put 'put ''cD4+Ml09YysyLGY9NzticmVhayBlO2Nhc2UgNDppZigoQS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTU7YnJlYWsgZX1pZigwPT0oMHxmZVttPj4wXSkmJjkzPT0oMHxmZVtjKzM+PjBdKSl7aWYoKEEtKGY9Yys0fDApfDApPD0xKXtmPS01O2JyZWFrIGV9aWYoMD09KDB8ZmVbZj4+MF0pJiY2Mj09''@;'; put 'put ''KDB8ZmVbYys1Pj4wXSkpe2FbcD4+Ml09ZixmPTA7YnJlYWsgZX1mPUF9ZWxzZSBmPUE7YnJlYWs7Y2FzZSA1OmlmKCgoZj1BKS1tfDApPDIpe2Y9LTI7YnJlYWsgZX1tPWMrMnwwO2JyZWFrO2Nhc2UgNjppZigoKGY9QSktbXwwKTwzKXtmPS0yO2JyZWFrIGV9bT1jKzN8MDticmVhaztjYXNl''@;'; put 'put ''IDc6aWYoKChmPUEpLW18MCk8NCl7Zj0tMjticmVhayBlfW09Yys0fDA7YnJlYWs7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLGY9MDticmVhayBlO2RlZmF1bHQ6bT1jKzJ8MCxmPUF9dz1sKzcyfDAsbD1tO3Q6Zm9yKDs7KXtpZigoMHwoYz1mLWx8MCkpPD0xKXttPTUyO2JyZWFr''@;'; put 'put ''fXN3aXRjaChBPTB8ZmVbbCsxPj4wXSwwfChtPShtPTB8ZmVbbD4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbdysoMjU1JkEpPj4wXSkpe2Nhc2UgMTA6Y2FzZSA5OmNhc2UgODpjYXNlIDE6Y2FzZSAwOmNhc2UgMjpjYXNlIDM6bT01MDticmVhayB0O2Nhc2UgNTpkZWZhdWx0Omw9bCsy''@;'; put 'put ''fDA7Y29udGludWUgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7bT0zODticmVhayB0fWw9bCszfDA7Y29udGludWUgdDtjYXNlIDc6aWYoKDB8Yyk8NCl7bT00MTticmVhayB0fWw9bCs0fDA7Y29udGludWUgdDtjYXNlIDQ6aWYoKDB8Yyk8PTMpe209NTA7YnJlYWsgdH1pZigwfGZlWyhtPWwrMnww''@;'; put 'put ''KT4+MF0pe2w9bTtjb250aW51ZSB0fWlmKDkzIT0oMHxmZVtsKzM+PjBdKSl7bD1tO2NvbnRpbnVlIHR9aWYoKDB8Yyk8PTUpe209NTA7YnJlYWsgdH1pZigwfGZlWyhBPWwrNHwwKT4+MF0pe2w9bTtjb250aW51ZSB0fWlmKDYyPT0oMHxmZVtsKzU+PjBdKSl7bT00OTticmVhayB0fWw9bTtj''@;'; put 'put ''b250aW51ZSB0fX1pZigzOD09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoNDE9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDQ5PT0oMHxtKSl7YVtwPj4yXT1BLGY9MDticmVha31pZig1MD09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoNTI9PSgwfG0pKXthW3A+''@;'; put 'put ''PjJdPWwsZj02O2JyZWFrfX1lbHNlIGY9LTE7ZWxzZSBmPS00fXdoaWxlKDApO3JldHVybiAwfGZ9LGZ1bmN0aW9uIEIxZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7ZTpkb3tpZihjPj4+MDxmPj4+MClpZihtPWMsQT1mLW18MCxiPTA9PSgxJkF8''@;'; put 'put ''MCksQSY9LTIsdz0wPT0oMHxBKSxBPWJ8dz9mOmMrQXwwLGJ8MV53KXtzd2l0Y2goMHwoZj0oZj0wfGZlW2M+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2MrMT4+MF0pOjB8WHRbbCs3MisoMHxYdFtjKzE+PjBdKT4+MF0pKXtjYXNlIDQ6aWYoKEEtKG09YysyfDApfDApPD0xKXtmPS0xO2Jy''@;'; put 'put ''ZWFrIGV9aWYoMD09KDB8ZmVbbT4+MF0pJiY5Mz09KDB8ZmVbYyszPj4wXSkpe2lmKChBLShmPWMrNHwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDA9PSgwfGZlW2Y+PjBdKSYmNjI9PSgwfGZlW2MrNT4+MF0pKXthW3A+PjJdPWMrNixmPTQwO2JyZWFrIGV9fWJyZWFrO2Nhc2UgOTppZigo''@;'; put 'put ''QS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1mPShmPTB8ZmVbbT4+MF0pPDwyND4+MjQ/MHxmMChmLDB8ZmVbYyszPj4wXSk6MHxYdFtsKzcyKygwfFh0W2MrMz4+MF0pPj4wXSxhW3A+PjJdPTEwPT0oMHxmKT9jKzR8MDptLGY9NzticmVhayBlO2Nhc2UgMTA6YVtwPj4yXT1jKzIs''@;'; put 'put ''Zj03O2JyZWFrIGU7Y2FzZSA1OmlmKCgoZj1BKS1tfDApPDIpe2Y9LTI7YnJlYWsgZX1tPWMrMnwwLEE9ZjticmVhaztjYXNlIDY6aWYoKChmPUEpLW18MCk8Myl7Zj0tMjticmVhayBlfW09YyszfDAsQT1mO2JyZWFrO2Nhc2UgNzppZigoKGY9QSktbXwwKTw0KXtmPS0yO2JyZWFrIGV9bT1j''@;'; put 'put ''KzR8MCxBPWY7YnJlYWs7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLGY9MDticmVhayBlO2RlZmF1bHQ6bT1jKzJ8MH13PWwrNzJ8MCxsPW07dDpmb3IoOzspe2lmKCgwfChjPUEtbHwwKSk8PTEpe209NDA7YnJlYWt9c3dpdGNoKG09MHxmZVtsKzE+PjBdLDB8KGY9KGY9MHxmZVts''@;'; put 'put ''Pj4wXSk8PDI0Pj4yND8wfGYwKGYsbSk6MHxYdFt3KygyNTUmbSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSA0Om09Mzg7YnJlYWsgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7bT0zNTticmVhayB0fWY9MzticmVhaztjYXNlIDc6aWYoKDB8Yyk8NCl7bT0z''@;'; put 'put ''NzticmVhayB0fWY9NDticmVhaztkZWZhdWx0OmY9Mn1sPWwrZnwwfWlmKDM1PT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZigzNz09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoMzg9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDQwPT0oMHxtKSl7YVtwPj4yXT1s''@;'; put 'put ''LGY9NjticmVha319ZWxzZSBmPS0xO2Vsc2UgZj0tNH13aGlsZSgwKTtyZXR1cm4gMHxmfSxmdW5jdGlvbiAkOWUobCxjLGYscCl7cHw9MDt2YXIgdyxtPTAsQT0wLGI9MCxrPTA7Yj0wPT0oMSYoYj0oZnw9MCktKGN8PTApfDApfDApP2Y6YysoLTImYil8MCx3PTcyKyhsfD0wKXwwLEE9MCxm''@;'; put 'put ''PWM7ZTpmb3IoOzspe2lmKCgwfChtPWItZnwwKSk8PTEpe2Y9LTE7YnJlYWt9c3dpdGNoKGM9MHxmZVtmKzE+PjBdLDB8KGw9KGw9MHxmZVtmPj4wXSk8PDI0Pj4yND8wfGYwKGwsYyk6MHxYdFt3KygyNTUmYyk+PjBdKSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6az0xMjticmVhayBlO2Nhc2Ug''@;'; put 'put ''NTpkZWZhdWx0OmY9ZisyfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWY9ZiszfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWY9Zis0fDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDI6aWYoKGItKGw9''@;'; put 'put ''ZisyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtsPj4wXSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoMzMhPSgwfGZlW2YrMz4+MF0pKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigoYi0obD1mKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2w+PjBdKXtmPWwsQT1t''@;'; put 'put ''PUE7Y29udGludWUgZX1BPUErKDEmKG09OTE9PSgwfGZlW2YrNT4+MF0pKSl8MCxmPW0/Zis2fDA6bDtjb250aW51ZSBlO2Nhc2UgNDppZigoYi0obD1mKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2w+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZig5MyE9KDB8ZmVbZisz''@;'; put 'put ''Pj4wXSkpe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKChiLShsPWYrNHwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDB8ZmVbbD4+MF0pe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKDYyIT0oMHxmZVtmKzU+PjBdKSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoZj1mKzZ8MCwhQSl7az0yNjti''@;'; put 'put ''cmVhayBlfUE9QSstMXwwO2NvbnRpbnVlIGV9fXJldHVybiAxMj09KDB8ayk/KGFbcD4+Ml09ZixmPTApOjI2PT0oMHxrKSYmKGFbcD4+Ml09ZixmPTQyKSwwfGZ9LGZ1bmN0aW9uIHdqKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7ZG97aWYo''@;'; put 'put ''Yz4+PjA8Zj4+PjApaWYoKChiPWYpLWN8MCk+MSl7az1sKzcyfDAsdz1jO2U6Zm9yKDs7KXtpZigoYi13fDApPD0xKXtBPTMwO2JyZWFrfXN3aXRjaChBPTB8ZmVbdysxPj4wXSwwfChtPShtPTB8ZmVbdz4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2Ug''@;'; put 'put ''MzpBPTExO2JyZWFrIGU7Y2FzZSAyOkE9MTQ7YnJlYWsgZTtjYXNlIDEwOkE9MTU7YnJlYWsgZTtjYXNlIDk6QT0xODticmVhayBlO2Nhc2UgMjE6QT0yNTticmVhayBlO2Nhc2UgNTpkZWZhdWx0Om09MjticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNzptPTR9dz13K218MH1pZigxMT09''@;'; put 'put ''KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7bT0wfF9qKGwsYysyfDAsZixwKTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE0PT0oMHxBKSl7YVtwPj4yXT13LG09MDticmVha31pZigxNT09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT03O2JyZWFrfWFbcD4+Ml09''@;'; put 'put ''dyxtPTY7YnJlYWt9aWYoMTg9PSgwfEEpKXtpZigoMHx3KSE9KDB8Yykpe2FbcD4+Ml09dyxtPTY7YnJlYWt9aWYoKGItKHc9YysyfDApfDApPD0xKXttPS0zO2JyZWFrfUE9MHxmZVtjKzM+PjBdLG09KG09MHxmZVt3Pj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBd''@;'; put 'put ''LGFbcD4+Ml09MTA9PSgwfG0pP2MrNHwwOncsbT03O2JyZWFrfWlmKDI1PT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXthW3A+PjJdPWMrMixtPTM5O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMzA9PSgwfEEpKXthW3A+PjJdPXcsbT02O2JyZWFrfX1lbHNlIG09LTE7ZWxzZSBtPS00''@;'; put 'put ''fXdoaWxlKDApO3JldHVybiAwfG19LGZ1bmN0aW9uIFAxZShsLGMsZixwKXtsfD0wLGN8PTAsZnw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTAsaz0wO2Rve2lmKGM+Pj4wPGY+Pj4wKWlmKCgoYj1mKS1jfDApPjEpe2s9bCs3MnwwLHc9YztlOmZvcig7Oyl7aWYoKGItd3wwKTw9MSl7QT0y''@;'; put 'put ''OTticmVha31zd2l0Y2goQT0wfGZlW3crMT4+MF0sMHwobT0obT0wfGZlW3c+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfFh0W2srKDI1NSZBKT4+MF0pKXtjYXNlIDM6QT0xMTticmVhayBlO2Nhc2UgMzA6QT0xNDticmVhayBlO2Nhc2UgMTA6QT0xNzticmVhayBlO2Nhc2UgOTpBPTIwO2Jy''@;'; put 'put ''ZWFrIGU7Y2FzZSA1OmRlZmF1bHQ6bT0yO2JyZWFrO2Nhc2UgNjptPTM7YnJlYWs7Y2FzZSA3Om09NH13PXcrbXwwfWlmKDExPT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXttPTB8X2oobCxjKzJ8MCxmLHApO2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMTQ9PSgwfEEpKXtpZigoMHx3''@;'; put 'put ''KT09KDB8Yykpe209MjI9PSgwfChtPTB8ajFlKGwsYysyfDAsZixwKSkpPzA6bTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE3PT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXthW3A+PjJdPWMrMixtPTc7YnJlYWt9YVtwPj4yXT13LG09NjticmVha31pZigyMD09KDB8QSkpe2lmKCgw''@;'; put 'put ''fHcpIT0oMHxjKSl7YVtwPj4yXT13LG09NjticmVha31pZigoYi0odz1jKzJ8MCl8MCk8PTEpe209LTM7YnJlYWt9QT0wfGZlW2MrMz4+MF0sbT0obT0wfGZlW3c+PjBdKTw8MjQ+PjI0PzB8ZjAobSxBKTowfFh0W2srKDI1NSZBKT4+MF0sYVtwPj4yXT0xMD09KDB8bSk/Yys0fDA6dyxtPTc7''@;'; put 'put ''YnJlYWt9aWYoMjk9PSgwfEEpKXthW3A+PjJdPXcsbT02O2JyZWFrfX1lbHNlIG09LTE7ZWxzZSBtPS00fXdoaWxlKDApO3JldHVybiAwfG19LGZ1bmN0aW9uIEYxZShsLGMsZixwKXtsfD0wLHB8PTA7dmFyIG0sQT0wO2ZvcihtPWZ8PTAsbD1jfD0wOzspe2lmKCEoKGM9MHxmZVtwPj4wXSk8''@;'; put 'put ''PDI0Pj4yNCkpe0E9NzticmVha31pZigobS1sfDApPDIpe2w9MDticmVha31pZigwfGZlW2w+PjBdKXtsPTA7YnJlYWt9aWYoKDB8ZmVbbCsxPj4wXSkhPWM8PDI0Pj4yNCl7bD0wO2JyZWFrfXA9cCsxfDAsbD1sKzJ8MH1yZXR1cm4gNz09KDB8QSkmJihsPSgwfGwpPT0oMHxmKSYxKSwwfGx9''@;'; put 'put ''LGZ1bmN0aW9uIEgxZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgUixtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTA7Uj03MisobHw9MCl8MCxNPTAsRD0wLGw9MTtlOmZvcig7Oylzd2l0Y2goYj0wfGZlWyhBPWMrM3wwKT4+MF0sMHwobT0odz0obT0wfGZlWyhrPWMrMnwwKT4+MF0p''@;'; put 'put ''PDwyND4+MjQ9PTApPzB8WHRbUisoMjU1JmIpPj4wXTowfGYwKG0sYikpKXtjYXNlIDU6Y2FzZSAyNDpjYXNlIDIyOmNhc2UgMjk6aWYoMHxsKXtjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZX1pZigoMHxEKT49KDB8Zikpe2w9MSxjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1h''@;'; put 'put ''W3ArKEQ8PDQpPj4yXT1rLGZlW3ArKEQ8PDQpKzEyPj4wXT0xLGw9MSxjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDY6aWYoMHxsKXtjPUEsbD13PWwsRD1iPUQsTT1rPU07Y29udGludWUgZX1pZigoMHxEKT49KDB8Zikpe2w9MSxjPUEsRD1iPUQsTT1rPU07Y29udGludWUgZX1h''@;'; put 'put ''W3ArKEQ8PDQpPj4yXT1rLGZlW3ArKEQ8PDQpKzEyPj4wXT0xLGw9MSxjPUEsRD1iPUQsTT1rPU07Y29udGludWUgZTtjYXNlIDc6bHx8KCgwfEQpPCgwfGYpJiYoYVtwKyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0KSsxMj4+MF09MSksbD0xKSxjPWMrNHwwLEQ9Yj1ELE09az1NO2NvbnRpbnVl''@;'; put 'put ''IGU7Y2FzZSAxMjppZigyIT0oMHxsKSl7aWYoKDB8RCk+PSgwfGYpKXtNPTEyLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1hW3ArKEQ8PDQpKzQ+PjJdPWMrNCxNPTEyLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1pZigxMiE9KDB8TSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUg''@;'; put 'put ''ZX0oMHxEKTwoMHxmKSYmKGFbcCsoRDw8NCkrOD4+Ml09ayksTT0xMixEPUQrMXwwLGw9MCxjPWs7Y29udGludWUgZTtjYXNlIDEzOmlmKDIhPSgwfGwpKXtpZigoMHxEKT49KDB8Zikpe009MTMsbD0yLGM9ayxEPWI9RDtjb250aW51ZSBlfWFbcCsoRDw8NCkrND4+Ml09Yys0LE09MTMsbD0y''@;'; put 'put ''LGM9ayxEPWI9RDtjb250aW51ZSBlfWlmKDEzIT0oMHxNKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfSgwfEQpPCgwfGYpJiYoYVtwKyhEPDw0KSs4Pj4yXT1rKSxNPTEzLEQ9RCsxfDAsbD0wLGM9aztjb250aW51ZSBlO2Nhc2UgMzppZigoMHxEKT49KDB8Zikpe2M9ayxsPUE9''@;'; put 'put ''bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWZlW3ArKEQ8PDQpKzEyPj4wXT0wLGM9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlO2Nhc2UgMjE6c3dpdGNoKDB8bCl7Y2FzZSAxOmw9MCxjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDI6YnJlYWs7ZGVmYXVsdDpjPWssbD1B''@;'; put 'put ''PWwsRD13PUQsTT1iPU07Y29udGludWUgZX1pZigoMHxEKT49KDB8Zikpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1pZighKDB8ZmVbKEE9cCsoRDw8NCkrMTJ8MCk+PjBdKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWRve2lmKHcmKDB8aykhPSgwfGFbcCsoRDw8''@;'; put 'put ''NCkrND4+Ml0pJmI8PDI0Pj4yND09MzIpe2lmKGw9MHxmZVtjKzU+PjBdLChtPTB8ZmVbYys0Pj4wXSk8PDI0Pj4yNClsPTB8ZjAobSxsKTtlbHNle2lmKGw8PDI0Pj4yND09MzIpYnJlYWs7bD0wfFh0W1IrKDI1NSZsKT4+MF19aWYoKDB8bCkhPSgwfE0pKXtsPTIsYz1rLEQ9dz1ELE09Yj1N''@;'; put 'put ''O2NvbnRpbnVlIGV9fX13aGlsZSgwKTtmZVtBPj4wXT0wLGw9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDEwOmNhc2UgOTpzd2l0Y2goMHxsKXtjYXNlIDE6bD0wLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlO2Nhc2UgMjpicmVhaztkZWZhdWx0OmM9ayxsPUE9bCxEPXc9''@;'; put 'put ''RCxNPWI9TTtjb250aW51ZSBlfWlmKCgwfEQpPj0oMHxmKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtjb250aW51ZSBlfWZlW3ArKEQ8PDQpKzEyPj4wXT0wLGw9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDE3OmNhc2UgMTE6aWYoMj09KDB8bCkpe2w9MixjPWssRD13PUQsTT1i''@;'; put 'put ''PU07Y29udGludWUgZX1icmVhayBlO2RlZmF1bHQ6Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9cmV0dXJuIDB8RH0sZnVuY3Rpb24gVjFlKGwsYyxmLHApe2N8PTAscHw9MDt2YXIgdyxiLG09MCxBPTAsaz0wO2I9KGZ8PTApLTJ8MCx3PTcyKyhsfD0wKXwwO2U6Zm9yKDs7KXtp''@;'; put 'put ''ZigoYi0obT1jKzJ8MCl8MCk8PTEpe2Y9MTticmVha31zd2l0Y2gobD0wfGZlW2MrMz4+MF0sMHwoZj0oQT0oZj0wfGZlW20+PjBdKTw8MjQ+PjI0PT0wKT8wfFh0W3crKDI1NSZsKT4+MF06MHxmMChmLGwpKSl7Y2FzZSAyMzpjYXNlIDE5OmNhc2UgMzA6Y2FzZSAzMzpjYXNlIDE2OmNhc2Ug''@;'; put 'put ''MTg6Y2FzZSAxMDpjYXNlIDk6Y2FzZSAxNTpjYXNlIDE0OmNhc2UgMTc6Y2FzZSAzNTpjYXNlIDM0OmNhc2UgMzI6Y2FzZSAzMTpjYXNlIDEzOmNhc2UgMjc6Y2FzZSAyNDpjYXNlIDI1OmM9bTtjb250aW51ZSBlO2Nhc2UgMjE6aWYoQSZsPDwyND4+MjQ9PTkpe2s9MTI7YnJlYWsgZX1jPW07''@;'; put 'put ''Y29udGludWUgZTtjYXNlIDIyOmNhc2UgMjY6aWYoIUEpe2s9MTI7YnJlYWsgZX1pZihsPDwyND4+MjQ+PTApe2M9bTtjb250aW51ZSBlfWJyZWFrO2RlZmF1bHQ6aWYoIUEpe2s9MTI7YnJlYWsgZX19c3dpdGNoKGw8PDI0Pj4yNHwwKXtjYXNlIDY0OmNhc2UgMzY6Yz1tO2JyZWFrO2RlZmF1''@;'; put 'put ''bHQ6az0xMjticmVhayBlfX1yZXR1cm4gMTI9PSgwfGspJiYoYVtwPj4yXT1tLGY9MCksMHxmfSxmdW5jdGlvbiB3MWUobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTA7ZTpkb3tpZihjPj4+MDxmPj4+MClpZihBPWMsTT1mLUF8MCxiPTA9''@;'; put 'put ''PSgxJk18MCksTSY9LTIsaz0wPT0oMHxNKSxNPWJ8az9mOmMrTXwwLGJ8MV5rKXtzd2l0Y2goKGY9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0Pyh3PW09MHxmZVtjPj4wXSxtPTB8ZjAoZixtKSk6KHc9bT0wfGZlW2M+PjBdLG09MHxYdFtsKzcyKygyNTUmbSk+PjBdKSwwfG0pe2Nhc2UgMTI6Zj0w''@;'; put 'put ''fFlLKDEyLGwsYysyfDAsTSxwKTticmVhayBlO2Nhc2UgMTM6Zj0wfFlLKDEzLGwsYysyfDAsTSxwKTticmVhayBlO2Nhc2UgMjppZigoTS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1zd2l0Y2goMHwoZj0oZj0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChmLDB8ZmVbbT4+MF0p''@;'; put 'put ''OjB8WHRbbCs3MisoMHxYdFttPj4wXSk+PjBdKSl7Y2FzZSAxNjpmPTB8TDFlKGwsYys0fDAsTSxwKTticmVhayBlO2Nhc2UgMTU6Zj0wfEdLKGwsYys0fDAsTSxwKTticmVhayBlO2Nhc2UgNzpjYXNlIDY6Y2FzZSA1OmNhc2UgMjk6Y2FzZSAyNDpjYXNlIDIyOmFbcD4+Ml09YyxmPTI5O2Jy''@;'; put 'put ''ZWFrIGU7ZGVmYXVsdDphW3A+PjJdPW0sZj0wO2JyZWFrIGV9Y2FzZSA5OmlmKChjKzJ8MCk9PSgwfE0pKXthW3A+PjJdPU0sZj0tMTU7YnJlYWsgZX1BPTc7YnJlYWs7Y2FzZSAxMDpjYXNlIDIxOkE9NzticmVhaztjYXNlIDMwOmY9MHxjTChsLGMrMnwwLE0scCk7YnJlYWsgZTtjYXNlIDM1''@;'; put 'put ''OmFbcD4+Ml09YysyLGY9Mzg7YnJlYWsgZTtjYXNlIDIwOmFbcD4+Ml09YysyLGY9MjU7YnJlYWsgZTtjYXNlIDQ6aWYoKDB8KGY9TS0obT1jKzJ8MCl8MCkpPD0xKXtmPS0yNjticmVhayBlfWlmKDA9PSgwfGZlW2MrMz4+MF0pJiY5Mz09KDB8ZmVbbT4+MF0pKXtpZigoMHxmKTw9Myl7Zj0t''@;'; put 'put ''MTticmVhayBlfWlmKDA9PSgwfGZlW2MrNT4+MF0pJiY2Mj09KDB8ZmVbYys0Pj4wXSkpe2FbcD4+Ml09Yys2LGY9MzQ7YnJlYWsgZX19YVtwPj4yXT1tLGY9MjY7YnJlYWsgZTtjYXNlIDMxOmFbcD4+Ml09YysyLGY9MjM7YnJlYWsgZTtjYXNlIDMyOmlmKChNLShtPWMrMnwwKXwwKTw9MSl7''@;'; put 'put ''Zj0tMjQ7YnJlYWsgZX1zd2l0Y2goMHwoZj0oZj0wfGZlW2MrMz4+MF0pPDwyND4+MjQ/MHxmMChmLDB8ZmVbbT4+MF0pOjB8WHRbbCs3MisoMHxYdFttPj4wXSk+PjBdKSl7Y2FzZSAzMzphW3A+PjJdPWMrNCxmPTM2O2JyZWFrIGU7Y2FzZSAxNTphW3A+PjJdPWMrNCxmPTM1O2JyZWFrIGU7''@;'; put 'put ''Y2FzZSAzNDphW3A+PjJdPWMrNCxmPTM3O2JyZWFrIGU7Y2FzZSAzMjpjYXNlIDM2OmNhc2UgMzU6Y2FzZSAxMTpjYXNlIDIxOmNhc2UgMTA6Y2FzZSA5OmFbcD4+Ml09bSxmPTI0O2JyZWFrIGU7ZGVmYXVsdDphW3A+PjJdPW0sZj0wO2JyZWFrIGV9Y2FzZSAzNjphW3A+PjJdPWMrMixmPTIx''@;'; put 'put ''O2JyZWFrIGU7Y2FzZSAxMTphW3A+PjJdPWMrMixmPTE3O2JyZWFrIGU7Y2FzZSAxOTpmPTB8TzFlKGwsYysyfDAsTSxwKTticmVhayBlO2Nhc2UgNTppZigoTS1BfDApPDIpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWMsZj0wO2JyZWFrIGU7Y2FzZSA2OmlmKChNLUF8MCk8Myl7Zj0tMjticmVh''@;'; put 'put ''ayBlfWFbcD4+Ml09YyxmPTA7YnJlYWsgZTtjYXNlIDc6aWYoKE0tQXwwKTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1jLGY9MDticmVhayBlO2Nhc2UgMjQ6Y2FzZSAyMjpmPTE4LEE9NjE7YnJlYWs7Y2FzZSAyMzpjYXNlIDI3OmNhc2UgMjY6Y2FzZSAyNTpmPTE5LEE9NjE7YnJlYWs7Y2Fz''@;'; put 'put ''ZSAyOTpBPTI1NSZmLGY9KG09MjU1JncpPj4+NSwobT0xPDwoMzEmbSkpJmFbNTY5NDArKChmfFh0WzE0Mzc4OCtBPj4wXTw8Myk8PDIpPj4yXT8oZj0xOCxBPTYxKTphWzU2OTQwKygoWHRbMTQ0MDQ0K0E+PjBdPDwzfGYpPDwyKT4+Ml0mbT8oZj0xOSxBPTYxKTpBPTY0O2JyZWFrO2RlZmF1''@;'; put 'put ''bHQ6QT02NH1pZig3PT0oMHxBKSl7Yj1NLGw9bCs3MnwwLHc9Yzt0OmZvcig7Oyl7aWYoQT13LChiLSh3PXcrMnwwKXwwKTw9MSl7QT0yODticmVha31zd2l0Y2gobT0wfGZlW3c+PjBdLDB8KGY9KGY9MHxmZVtBKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoZixtKTowfFh0W2wrKDI1NSZtKT4+MF0p''@;'; put 'put ''KXtjYXNlIDEwOmNhc2UgMjE6Y29udGludWUgdDtjYXNlIDk6YnJlYWs7ZGVmYXVsdDpBPTI3O2JyZWFrIHR9aWYoKEErNHwwKT09KDB8TSkpe0E9Mjc7YnJlYWt9fWlmKDI3PT0oMHxBKSl7YVtwPj4yXT13LGY9MTU7YnJlYWt9aWYoMjg9PSgwfEEpKXthW3A+PjJdPXcsZj0xNTticmVha319''@;'; put 'put ''ZWxzZSBpZig2MT09KDB8QSkpe2s9bCs3MnwwLG09YysyfDA7dDpmb3IoOzspe2M9MjU1JmY7bjpmb3IoOzspe2lmKCgwfChiPU0tbXwwKSk8PTEpe0E9MTA0O2JyZWFrIHR9c3dpdGNoKHc9MHxmZVttPj4wXSwwfChsPShBPTB8ZmVbbSsxPj4wXSk8PDI0Pj4yND8wfGYwKEEsdyk6MHxYdFtr''@;'; put 'put ''KygyNTUmdyk+PjBdKSl7Y2FzZSA1OkE9NzM7YnJlYWsgdDtjYXNlIDY6QT03NDticmVhayB0O2Nhc2UgNzpBPTc2O2JyZWFrIHQ7Y2FzZSAxMDpjYXNlIDk6Y2FzZSAyMTpjYXNlIDMwOmNhc2UgMjA6Y2FzZSAzNjpjYXNlIDM1OmNhc2UgMzI6Y2FzZSAxMTpBPTc4O2JyZWFrIHQ7Y2FzZSAz''@;'; put 'put ''NDpBPTk0O2JyZWFrIHQ7Y2FzZSAzMzpBPTk3O2JyZWFrIHQ7Y2FzZSAxNTpBPTEwMDticmVhayB0O2Nhc2UgMjk6aWYoISgxPDwoMzEmKGI9MjU1JncpKSZhWzU2OTQwKygoYj4+PjV8WHRbMTQ0MDQ0KygyNTUmQSk+PjBdPDwzKTw8Mik+PjJdKSl7QT03MTticmVhayB0fWJyZWFrO2Nhc2Ug''@;'; put 'put ''Mjc6Y2FzZSAyNjpjYXNlIDI1OmNhc2UgMjQ6Y2FzZSAyMjpicmVhaztjYXNlIDIzOnN3aXRjaChiPW0rMnwwLDYzJmMpe2Nhc2UgNDE6Zj0xOSxtPWI7Y29udGludWUgdDtjYXNlIDE4OmJyZWFrIG47ZGVmYXVsdDptPWI7Y29udGludWUgbn1kZWZhdWx0OkE9MTAzO2JyZWFrIHR9bT1tKzJ8''@;'; put 'put ''MH1pZigoMHwobD1NLWJ8MCkpPD0xKXtmPS0xO2JyZWFrIGV9c3dpdGNoKEE9MHxmZVtiPj4wXSwwfCh3PShmPTB8ZmVbbSszPj4wXSk8PDI0Pj4yND8wfGYwKGYsQSk6MHxYdFtrKygyNTUmQSk+PjBdKSl7Y2FzZSA1OkE9ODk7YnJlYWsgdDtjYXNlIDY6QT05MDticmVhayB0O2Nhc2UgNzpB''@;'; put 'put ''PTkyO2JyZWFrIHQ7Y2FzZSAyOTppZighKDE8PCgzMSYoYz0yNTUmQSkpJmFbNTY5NDArKChjPj4+NXxYdFsxNDQwNDQrKDI1NSZmKT4+MF08PDMpPDwyKT4+Ml0pKXtBPTg3O2JyZWFrIHR9YnJlYWs7Y2FzZSAyNzpjYXNlIDI2OmNhc2UgMjU6Y2FzZSAyNDpjYXNlIDIyOmJyZWFrO2RlZmF1''@;'; put 'put ''bHQ6Zj0xOSxtPWI7Y29udGludWUgdH1mPTQxLG09bSs0fDB9c3dpdGNoKDB8QSl7Y2FzZSA3MTpjYXNlIDczOmNhc2UgMTAzOmFbcD4+Ml09bSxmPTA7YnJlYWsgZTtjYXNlIDc0OmlmKCgwfGIpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPW0sZj0wO2JyZWFrIGU7Y2FzZSA3NjppZigoMHxi''@;'; put 'put ''KTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1tLGY9MDticmVhayBlO2Nhc2UgNzg6YVtwPj4yXT1tO2JyZWFrIGU7Y2FzZSA4NzpjYXNlIDg5OmFbcD4+Ml09YixmPTA7YnJlYWsgZTtjYXNlIDkwOmlmKCgwfGwpPDMpe2Y9LTI7YnJlYWsgZX1hW3A+PjJdPWIsZj0wO2JyZWFrIGU7Y2FzZSA5''@;'; put 'put ''MjppZigoMHxsKTw0KXtmPS0yO2JyZWFrIGV9YVtwPj4yXT1iLGY9MDticmVhayBlO2Nhc2UgOTQ6aWYoMTk9PSgwfGYpKXthW3A+PjJdPW0sZj0wO2JyZWFrIGV9YVtwPj4yXT1tKzIsZj0zMjticmVhayBlO2Nhc2UgOTc6aWYoMTk9PSgwfGYpKXthW3A+PjJdPW0sZj0wO2JyZWFrIGV9YVtw''@;'; put 'put ''Pj4yXT1tKzIsZj0zMTticmVhayBlO2Nhc2UgMTAwOmlmKDE5PT0oMHxmKSl7YVtwPj4yXT1tLGY9MDticmVhayBlfWFbcD4+Ml09bSsyLGY9MzA7YnJlYWsgZTtjYXNlIDEwNDpmPTAtZnwwO2JyZWFrIGV9fWVsc2UgaWYoNjQ9PSgwfEEpKXthW3A+PjJdPWMsZj0wO2JyZWFrfX1lbHNlIGY9''@;'; put 'put ''LTE7ZWxzZSBmPS00fXdoaWxlKDApO3JldHVybiAwfGZ9LGZ1bmN0aW9uIE5LKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MDtlOmRve2lmKGM+Pj4wPGY+Pj4wKWlmKG09YyxBPWYtbXwwLGI9MD09KDEmQXwwKSxBJj0tMix3PTA9PSgwfEEpLEE9Ynx3''@;'; put 'put ''P2Y6YytBfDAsYnwxXncpe3N3aXRjaCgwfChmPShmPTB8ZmVbYysxPj4wXSk8PDI0Pj4yND8wfGYwKGYsMHxmZVtjPj4wXSk6MHxYdFtsKzcyKygwfFh0W2M+PjBdKT4+MF0pKXtjYXNlIDI6Zj0wfGE0KGwsYysyfDAsQSxwKTticmVhayBlO2Nhc2UgMzpmPTB8dUwobCxjKzJ8MCxBLHApO2Jy''@;'; put 'put ''ZWFrIGU7Y2FzZSA5OmlmKChBLShtPWMrMnwwKXwwKTw9MSl7Zj0tMzticmVhayBlfWY9KGY9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW20+PjBdKTowfFh0W2wrNzIrKDB8WHRbbT4+MF0pPj4wXSxhW3A+PjJdPTEwPT0oMHxmKT9jKzR8MDptLGY9NzticmVhayBlO2Nhc2Ug''@;'; put 'put ''MTA6YVtwPj4yXT1jKzIsZj03O2JyZWFrIGU7Y2FzZSA0OmlmKChBLShtPWMrMnwwKXwwKTw9MSl7Zj0tNTticmVhayBlfWlmKDA9PSgwfGZlW2MrMz4+MF0pJiY5Mz09KDB8ZmVbbT4+MF0pKXtpZigoQS0oZj1jKzR8MCl8MCk8PTEpe2Y9LTU7YnJlYWsgZX1pZigwPT0oMHxmZVtjKzU+PjBd''@;'; put 'put ''KSYmNjI9PSgwfGZlW2Y+PjBdKSl7YVtwPj4yXT1mLGY9MDticmVhayBlfWY9QX1lbHNlIGY9QTticmVhaztjYXNlIDU6aWYoKChmPUEpLW18MCk8Mil7Zj0tMjticmVhayBlfW09YysyfDA7YnJlYWs7Y2FzZSA2OmlmKCgoZj1BKS1tfDApPDMpe2Y9LTI7YnJlYWsgZX1tPWMrM3wwO2JyZWFr''@;'; put 'put ''O2Nhc2UgNzppZigoKGY9QSktbXwwKTw0KXtmPS0yO2JyZWFrIGV9bT1jKzR8MDticmVhaztjYXNlIDg6Y2FzZSAxOmNhc2UgMDphW3A+PjJdPWMsZj0wO2JyZWFrIGU7ZGVmYXVsdDptPWMrMnwwLGY9QX13PWwrNzJ8MCxsPW07dDpmb3IoOzspe2lmKCgwfChjPWYtbHwwKSk8PTEpe209NTI7''@;'; put 'put ''YnJlYWt9c3dpdGNoKEE9MHxmZVtsPj4wXSwwfChtPShtPTB8ZmVbbCsxPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFt3KygyNTUmQSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSAyOmNhc2UgMzptPTUwO2JyZWFrIHQ7Y2FzZSA1OmRlZmF1bHQ6''@;'; put 'put ''bD1sKzJ8MDtjb250aW51ZSB0O2Nhc2UgNjppZigoMHxjKTwzKXttPTM4O2JyZWFrIHR9bD1sKzN8MDtjb250aW51ZSB0O2Nhc2UgNzppZigoMHxjKTw0KXttPTQxO2JyZWFrIHR9bD1sKzR8MDtjb250aW51ZSB0O2Nhc2UgNDppZigoMHxjKTw9Myl7bT01MDticmVhayB0fWlmKG09bCsyfDAs''@;'; put 'put ''MHxmZVtsKzM+PjBdKXtsPW07Y29udGludWUgdH1pZig5MyE9KDB8ZmVbbT4+MF0pKXtsPW07Y29udGludWUgdH1pZigoMHxjKTw9NSl7bT01MDticmVhayB0fWlmKEE9bCs0fDAsMHxmZVtsKzU+PjBdKXtsPW07Y29udGludWUgdH1pZig2Mj09KDB8ZmVbQT4+MF0pKXttPTQ5O2JyZWFrIHR9''@;'; put 'put ''bD1tO2NvbnRpbnVlIHR9fWlmKDM4PT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZig0MT09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoNDk9PSgwfG0pKXthW3A+PjJdPUEsZj0wO2JyZWFrfWlmKDUwPT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZig1Mj09KDB8bSkp''@;'; put 'put ''e2FbcD4+Ml09bCxmPTY7YnJlYWt9fWVsc2UgZj0tMTtlbHNlIGY9LTR9d2hpbGUoMCk7cmV0dXJuIDB8Zn0sZnVuY3Rpb24gVksobCxjLGYscCl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgbT0wLEE9MCx3PTAsYj0wO2U6ZG97aWYoYz4+PjA8Zj4+PjApaWYobT1jLEE9Zi1tfDAsYj0wPT0o''@;'; put 'put ''MSZBfDApLEEmPS0yLHc9MD09KDB8QSksQT1ifHc/ZjpjK0F8MCxifDFedyl7c3dpdGNoKDB8KGY9KGY9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW2M+PjBdKTowfFh0W2wrNzIrKDB8WHRbYz4+MF0pPj4wXSkpe2Nhc2UgNDppZigoQS0obT1jKzJ8MCl8MCk8PTEpe2Y9LTE7''@;'; put 'put ''YnJlYWsgZX1pZigwPT0oMHxmZVtjKzM+PjBdKSYmOTM9PSgwfGZlW20+PjBdKSl7aWYoKEEtKGY9Yys0fDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMD09KDB8ZmVbYys1Pj4wXSkmJjYyPT0oMHxmZVtmPj4wXSkpe2FbcD4+Ml09Yys2LGY9NDA7YnJlYWsgZX19YnJlYWs7Y2FzZSA5Omlm''@;'; put 'put ''KChBLShtPWMrMnwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWY9KGY9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAoZiwwfGZlW20+PjBdKTowfFh0W2wrNzIrKDB8WHRbbT4+MF0pPj4wXSxhW3A+PjJdPTEwPT0oMHxmKT9jKzR8MDptLGY9NzticmVhayBlO2Nhc2UgMTA6YVtwPj4yXT1jKzIs''@;'; put 'put ''Zj03O2JyZWFrIGU7Y2FzZSA1OmlmKCgoZj1BKS1tfDApPDIpe2Y9LTI7YnJlYWsgZX1tPWMrMnwwLEE9ZjticmVhaztjYXNlIDY6aWYoKChmPUEpLW18MCk8Myl7Zj0tMjticmVhayBlfW09YyszfDAsQT1mO2JyZWFrO2Nhc2UgNzppZigoKGY9QSktbXwwKTw0KXtmPS0yO2JyZWFrIGV9bT1j''@;'; put 'put ''KzR8MCxBPWY7YnJlYWs7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6YVtwPj4yXT1jLGY9MDticmVhayBlO2RlZmF1bHQ6bT1jKzJ8MH13PWwrNzJ8MCxsPW07dDpmb3IoOzspe2lmKCgwfChjPUEtbHwwKSk8PTEpe209NDA7YnJlYWt9c3dpdGNoKG09MHxmZVtsPj4wXSwwfChmPShmPTB8ZmVbbCsx''@;'; put 'put ''Pj4wXSk8PDI0Pj4yND8wfGYwKGYsbSk6MHxYdFt3KygyNTUmbSk+PjBdKSl7Y2FzZSAxMDpjYXNlIDk6Y2FzZSA4OmNhc2UgMTpjYXNlIDA6Y2FzZSA0Om09Mzg7YnJlYWsgdDtjYXNlIDY6aWYoKDB8Yyk8Myl7bT0zNTticmVhayB0fWY9MzticmVhaztjYXNlIDc6aWYoKDB8Yyk8NCl7bT0z''@;'; put 'put ''NzticmVhayB0fWY9NDticmVhaztkZWZhdWx0OmY9Mn1sPWwrZnwwfWlmKDM1PT0oMHxtKSl7YVtwPj4yXT1sLGY9NjticmVha31pZigzNz09KDB8bSkpe2FbcD4+Ml09bCxmPTY7YnJlYWt9aWYoMzg9PSgwfG0pKXthW3A+PjJdPWwsZj02O2JyZWFrfWlmKDQwPT0oMHxtKSl7YVtwPj4yXT1s''@;'; put 'put ''LGY9NjticmVha319ZWxzZSBmPS0xO2Vsc2UgZj0tNH13aGlsZSgwKTtyZXR1cm4gMHxmfSxmdW5jdGlvbiBiMWUobCxjLGYscCl7cHw9MDt2YXIgdyxtPTAsQT0wLGI9MCxrPTA7Yj0wPT0oMSYoYj0oZnw9MCktKGN8PTApfDApfDApP2Y6YysoLTImYil8MCx3PTcyKyhsfD0wKXwwLEE9MCxm''@;'; put 'put ''PWM7ZTpmb3IoOzspe2lmKCgwfChtPWItZnwwKSk8PTEpe2Y9LTE7YnJlYWt9c3dpdGNoKGM9MHxmZVtmPj4wXSwwfChsPShsPTB8ZmVbZisxPj4wXSk8PDI0Pj4yND8wfGYwKGwsYyk6MHxYdFt3KygyNTUmYyk+PjBdKSl7Y2FzZSA4OmNhc2UgMTpjYXNlIDA6az0xMjticmVhayBlO2Nhc2Ug''@;'; put 'put ''NTpkZWZhdWx0OmY9ZisyfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDY6aWYoKDB8bSk8Myl7Zj0tMjticmVhayBlfWY9ZiszfDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDc6aWYoKDB8bSk8NCl7Zj0tMjticmVhayBlfWY9Zis0fDAsQT1tPUE7Y29udGludWUgZTtjYXNlIDI6aWYoKGItKGw9''@;'; put 'put ''ZisyfDApfDApPD0xKXtmPS0xO2JyZWFrIGV9aWYoMHxmZVtmKzM+PjBdKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigzMyE9KDB8ZmVbbD4+MF0pKXtmPWwsQT1tPUE7Y29udGludWUgZX1pZigoYi0obD1mKzR8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2YrNT4+MF0pe2Y9bCxB''@;'; put 'put ''PW09QTtjb250aW51ZSBlfUE9QSsoMSYobT05MT09KDB8ZmVbbD4+MF0pKSl8MCxmPW0/Zis2fDA6bDtjb250aW51ZSBlO2Nhc2UgNDppZigoYi0obD1mKzJ8MCl8MCk8PTEpe2Y9LTE7YnJlYWsgZX1pZigwfGZlW2YrMz4+MF0pe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKDkzIT0oMHxmZVts''@;'; put 'put ''Pj4wXSkpe2Y9bCxBPW09QTtjb250aW51ZSBlfWlmKChiLShsPWYrNHwwKXwwKTw9MSl7Zj0tMTticmVhayBlfWlmKDB8ZmVbZis1Pj4wXSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoNjIhPSgwfGZlW2w+PjBdKSl7Zj1sLEE9bT1BO2NvbnRpbnVlIGV9aWYoZj1mKzZ8MCwhQSl7az0yNjti''@;'; put 'put ''cmVhayBlfUE9QSstMXwwO2NvbnRpbnVlIGV9fXJldHVybiAxMj09KDB8ayk/KGFbcD4+Ml09ZixmPTApOjI2PT0oMHxrKSYmKGFbcD4+Ml09ZixmPTQyKSwwfGZ9LGZ1bmN0aW9uIEUxKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7ZG97aWYo''@;'; put 'put ''Yz4+PjA8Zj4+PjApaWYoKChiPWYpLWN8MCk+MSl7az1sKzcyfDAsdz1jO2U6Zm9yKDs7KXtpZigoYi13fDApPD0xKXtBPTMwO2JyZWFrfXN3aXRjaChBPTB8ZmVbdz4+MF0sMHwobT0obT0wfGZlW3crMT4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2Ug''@;'; put 'put ''MzpBPTExO2JyZWFrIGU7Y2FzZSAyOkE9MTQ7YnJlYWsgZTtjYXNlIDEwOkE9MTU7YnJlYWsgZTtjYXNlIDk6QT0xODticmVhayBlO2Nhc2UgMjE6QT0yNTticmVhayBlO2Nhc2UgNTpkZWZhdWx0Om09MjticmVhaztjYXNlIDY6bT0zO2JyZWFrO2Nhc2UgNzptPTR9dz13K218MH1pZigxMT09''@;'; put 'put ''KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7bT0wfHVMKGwsYysyfDAsZixwKTticmVha31hW3A+PjJdPXcsbT02O2JyZWFrfWlmKDE0PT0oMHxBKSl7YVtwPj4yXT13LG09MDticmVha31pZigxNT09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT03O2JyZWFrfWFbcD4+Ml09''@;'; put 'put ''dyxtPTY7YnJlYWt9aWYoMTg9PSgwfEEpKXtpZigoMHx3KSE9KDB8Yykpe2FbcD4+Ml09dyxtPTY7YnJlYWt9aWYoKGItKHc9YysyfDApfDApPD0xKXttPS0zO2JyZWFrfUE9MHxmZVt3Pj4wXSxtPShtPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBd''@;'; put 'put ''LGFbcD4+Ml09MTA9PSgwfG0pP2MrNHwwOncsbT03O2JyZWFrfWlmKDI1PT0oMHxBKSl7aWYoKDB8dyk9PSgwfGMpKXthW3A+PjJdPWMrMixtPTM5O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMzA9PSgwfEEpKXthW3A+PjJdPXcsbT02O2JyZWFrfX1lbHNlIG09LTE7ZWxzZSBtPS00''@;'; put 'put ''fXdoaWxlKDApO3JldHVybiAwfG19LGZ1bmN0aW9uIGpLKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIG09MCxBPTAsdz0wLGI9MCxrPTA7ZG97aWYoYz4+PjA8Zj4+PjApaWYoKChiPWYpLWN8MCk+MSl7az1sKzcyfDAsdz1jO2U6Zm9yKDs7KXtpZigoYi13fDApPD0xKXtBPTI5''@;'; put 'put ''O2JyZWFrfXN3aXRjaChBPTB8ZmVbdz4+MF0sMHwobT0obT0wfGZlW3crMT4+MF0pPDwyND4+MjQ/MHxmMChtLEEpOjB8WHRbaysoMjU1JkEpPj4wXSkpe2Nhc2UgMzpBPTExO2JyZWFrIGU7Y2FzZSAzMDpBPTE0O2JyZWFrIGU7Y2FzZSAxMDpBPTE3O2JyZWFrIGU7Y2FzZSA5OkE9MjA7YnJl''@;'; put 'put ''YWsgZTtjYXNlIDU6ZGVmYXVsdDptPTI7YnJlYWs7Y2FzZSA2Om09MzticmVhaztjYXNlIDc6bT00fXc9dyttfDB9aWYoMTE9PSgwfEEpKXtpZigoMHx3KT09KDB8Yykpe209MHx1TChsLGMrMnwwLGYscCk7YnJlYWt9YVtwPj4yXT13LG09NjticmVha31pZigxND09KDB8QSkpe2lmKCgwfHcp''@;'; put 'put ''PT0oMHxjKSl7bT0yMj09KDB8KG09MHxjTChsLGMrMnwwLGYscCkpKT8wOm07YnJlYWt9YVtwPj4yXT13LG09NjticmVha31pZigxNz09KDB8QSkpe2lmKCgwfHcpPT0oMHxjKSl7YVtwPj4yXT1jKzIsbT03O2JyZWFrfWFbcD4+Ml09dyxtPTY7YnJlYWt9aWYoMjA9PSgwfEEpKXtpZigoMHx3''@;'; put 'put ''KSE9KDB8Yykpe2FbcD4+Ml09dyxtPTY7YnJlYWt9aWYoKGItKHc9YysyfDApfDApPD0xKXttPS0zO2JyZWFrfUE9MHxmZVt3Pj4wXSxtPShtPTB8ZmVbYyszPj4wXSk8PDI0Pj4yND8wfGYwKG0sQSk6MHxYdFtrKygyNTUmQSk+PjBdLGFbcD4+Ml09MTA9PSgwfG0pP2MrNHwwOncsbT03O2Jy''@;'; put 'put ''ZWFrfWlmKDI5PT0oMHxBKSl7YVtwPj4yXT13LG09NjticmVha319ZWxzZSBtPS0xO2Vsc2UgbT0tNH13aGlsZSgwKTtyZXR1cm4gMHxtfSxmdW5jdGlvbiBVOWUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtLEE9MDtmb3IobT1mfD0wLGw9Y3w9MDs7KXtpZighKChjPTB8ZmVbcD4+MF0pPDwy''@;'; put 'put ''ND4+MjQpKXtBPTc7YnJlYWt9aWYoKG0tbHwwKTwyKXtsPTA7YnJlYWt9aWYoMHxmZVtsKzE+PjBdKXtsPTA7YnJlYWt9aWYoKDB8ZmVbbD4+MF0pIT1jPDwyND4+MjQpe2w9MDticmVha31wPXArMXwwLGw9bCsyfDB9cmV0dXJuIDc9PSgwfEEpJiYobD0oMHxsKT09KDB8ZikmMSksMHxsfSxm''@;'; put 'put ''dW5jdGlvbiBDMWUobCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIFIsbT0wLEE9MCx3PTAsYj0wLGs9MCxNPTAsRD0wO1I9NzIrKGx8PTApfDAsTT0wLEQ9MCxsPTE7ZTpmb3IoOzspc3dpdGNoKGI9MHxmZVsoaz1jKzJ8MCk+PjBdLDB8KG09KHc9KG09MHxmZVsoQT1jKzN8MCk+PjBdKTw8''@;'; put 'put ''MjQ+PjI0PT0wKT8wfFh0W1IrKDI1NSZiKT4+MF06MHxmMChtLGIpKSl7Y2FzZSA1OmNhc2UgMjQ6Y2FzZSAyMjpjYXNlIDI5OmlmKDB8bCl7Yz1rLGw9QT1sLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTEsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9YVtw''@;'; put 'put ''KyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0KSsxMj4+MF09MSxsPTEsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKDB8bCl7Yz1BLGw9dz1sLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTEsYz1BLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGV9YVtw''@;'; put 'put ''KyhEPDw0KT4+Ml09ayxmZVtwKyhEPDw0KSsxMj4+MF09MSxsPTEsYz1BLEQ9Yj1ELE09az1NO2NvbnRpbnVlIGU7Y2FzZSA3Omx8fCgoMHxEKTwoMHxmKSYmKGFbcCsoRDw8NCk+PjJdPWssZmVbcCsoRDw8NCkrMTI+PjBdPTEpLGw9MSksYz1jKzR8MCxEPWI9RCxNPWs9TTtjb250aW51ZSBl''@;'; put 'put ''O2Nhc2UgMTI6aWYoMiE9KDB8bCkpe2lmKCgwfEQpPj0oMHxmKSl7TT0xMixsPTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9YVtwKyhEPDw0KSs0Pj4yXT1jKzQsTT0xMixsPTIsYz1rLEQ9Yj1EO2NvbnRpbnVlIGV9aWYoMTIhPSgwfE0pKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9''@;'; put 'put ''KDB8RCk8KDB8ZikmJihhW3ArKEQ8PDQpKzg+PjJdPWspLE09MTIsRD1EKzF8MCxsPTAsYz1rO2NvbnRpbnVlIGU7Y2FzZSAxMzppZigyIT0oMHxsKSl7aWYoKDB8RCk+PSgwfGYpKXtNPTEzLGw9MixjPWssRD1iPUQ7Y29udGludWUgZX1hW3ArKEQ8PDQpKzQ+PjJdPWMrNCxNPTEzLGw9Mixj''@;'; put 'put ''PWssRD1iPUQ7Y29udGludWUgZX1pZigxMyE9KDB8TSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX0oMHxEKTwoMHxmKSYmKGFbcCsoRDw8NCkrOD4+Ml09ayksTT0xMyxEPUQrMXwwLGw9MCxjPWs7Y29udGludWUgZTtjYXNlIDM6aWYoKDB8RCk+PSgwfGYpKXtjPWssbD1BPWws''@;'; put 'put ''RD13PUQsTT1iPU07Y29udGludWUgZX1mZVtwKyhEPDw0KSsxMj4+MF09MCxjPWssbD1BPWwsRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDIxOnN3aXRjaCgwfGwpe2Nhc2UgMTpsPTAsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAyOmJyZWFrO2RlZmF1bHQ6Yz1rLGw9QT1s''@;'; put 'put ''LEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoKDB8RCk+PSgwfGYpKXtsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGV9aWYoISgwfGZlWyhBPXArKEQ8PDQpKzEyfDApPj4wXSkpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1kb3tpZih3JigwfGspIT0oMHxhW3ArKEQ8PDQp''@;'; put 'put ''KzQ+PjJdKSZiPDwyND4+MjQ9PTMyKXtpZihsPTB8ZmVbYys0Pj4wXSwobT0wfGZlW2MrNT4+MF0pPDwyND4+MjQpbD0wfGYwKG0sbCk7ZWxzZXtpZihsPDwyND4+MjQ9PTMyKWJyZWFrO2w9MHxYdFtSKygyNTUmbCk+PjBdfWlmKCgwfGwpIT0oMHxNKSl7bD0yLGM9ayxEPXc9RCxNPWI9TTtj''@;'; put 'put ''b250aW51ZSBlfX19d2hpbGUoMCk7ZmVbQT4+MF09MCxsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAxMDpjYXNlIDk6c3dpdGNoKDB8bCl7Y2FzZSAxOmw9MCxjPWssRD13PUQsTT1iPU07Y29udGludWUgZTtjYXNlIDI6YnJlYWs7ZGVmYXVsdDpjPWssbD1BPWwsRD13PUQs''@;'; put 'put ''TT1iPU07Y29udGludWUgZX1pZigoMHxEKT49KDB8Zikpe2w9MixjPWssRD13PUQsTT1iPU07Y29udGludWUgZX1mZVtwKyhEPDw0KSsxMj4+MF09MCxsPTIsYz1rLEQ9dz1ELE09Yj1NO2NvbnRpbnVlIGU7Y2FzZSAxNzpjYXNlIDExOmlmKDI9PSgwfGwpKXtsPTIsYz1rLEQ9dz1ELE09Yj1N''@;'; put 'put ''O2NvbnRpbnVlIGV9YnJlYWsgZTtkZWZhdWx0OmM9ayxsPUE9bCxEPXc9RCxNPWI9TTtjb250aW51ZSBlfXJldHVybiAwfER9LGZ1bmN0aW9uIGJwKGwsYyxmLHApe3B8PTA7dmFyIEEsdyxtPTAsYj0wO3c9KGZ8PTApLTJ8MCxBPTcyKyhsfD0wKXwwLGY9Y3w9MDtlOmZvcig7Oyl7aWYoKHct''@;'; put 'put ''KG09ZisyfDApfDApPD0xKXtmPTE7YnJlYWt9c3dpdGNoKGM9MHxmZVttPj4wXSwwfChmPShsPShmPTB8ZmVbZiszPj4wXSk8PDI0Pj4yND09MCk/MHxYdFtBKygyNTUmYyk+PjBdOjB8ZjAoZixjKSkpe2Nhc2UgMjM6Y2FzZSAxOTpjYXNlIDMwOmNhc2UgMzM6Y2FzZSAxNjpjYXNlIDE4OmNh''@;'; put 'put ''c2UgMTA6Y2FzZSA5OmNhc2UgMTU6Y2FzZSAxNDpjYXNlIDE3OmNhc2UgMzU6Y2FzZSAzNDpjYXNlIDMyOmNhc2UgMzE6Y2FzZSAxMzpjYXNlIDI3OmNhc2UgMjQ6Y2FzZSAyNTpmPW07Y29udGludWUgZTtjYXNlIDIxOmlmKGwmYzw8MjQ+PjI0PT05KXtiPTEyO2JyZWFrIGV9Zj1tO2NvbnRp''@;'; put 'put ''bnVlIGU7Y2FzZSAyMjpjYXNlIDI2OmlmKCFsKXtiPTEyO2JyZWFrIGV9aWYoYzw8MjQ+PjI0Pj0wKXtmPW07Y29udGludWUgZX1icmVhaztkZWZhdWx0OmlmKCFsKXtiPTEyO2JyZWFrIGV9fXN3aXRjaChjPDwyND4+MjR8MCl7Y2FzZSA2NDpjYXNlIDM2OmY9bTticmVhaztkZWZhdWx0OmI9''@;'; put 'put ''MTI7YnJlYWsgZX19cmV0dXJuIDEyPT0oMHxiKSYmKGFbcD4+Ml09bSxmPTApLDB8Zn0sZnVuY3Rpb24gTlAobCxjLGYscCl7bHw9MCxjfD0wLGw9MD09KDB8KGZ8PTApKTtkb3tpZihjKXtpZihsKXtGdChjKSxsPTA7YnJlYWt9bD0wfFVhKGMsZik7YnJlYWt9bD1sPzA6MHxGMChmKX13aGls''@;'; put 'put ''ZSgwKTtyZXR1cm4gMHxsfSxoMCx0VyxmdW5jdGlvbiBibGUobCxjLGYscCl7bHw9MCxwfD0wO3ZhciBtPTAsQT0wLHc9MCxiPTA7dz0wPT0oMHwocD0wfGFbKGZ8PTApPj4yXSkpLChsPTB8YVsoY3w9MCk+PjJdKT93P2w9MToobD0wfFppKGwscCkpfHwoYj01KTp3P2I9NTpsPS0xO2Rve2lm''@;'; put 'put ''KDU9PSgwfGIpKXtpZih3PTA9PSgwfChwPTB8YVtmKzQ+PjJdKSksbD0wfGFbYys0Pj4yXSl7aWYodyl7bD0xO2JyZWFrfWlmKDB8KGw9MHxaaShsLHApKSlicmVha31lbHNlIGlmKCF3KXtsPS0xO2JyZWFrfShsPSgxMjcmYVtjKzI0Pj4yXSktKDEyNyZhW2YrMjQ+PjJdKXwwKXx8KGw9KEE9''@;'; put 'put ''K19bYysxNj4+M10pPChtPStfW2YrMTY+PjNdKT8tMTpBPm0mMSl9fXdoaWxlKDApO3JldHVybiAwfGx9LGZ1bmN0aW9uIEFHKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wO3ZhciBtPTA7cmV0dXJuIG09MHxmdW5jdGlvbiB5XyhsKXt2YXIgYztyZXR1cm4gMHwobD0wfG1pWzYzJihmZVsyMzIr''@;'; put 'put ''KGx8PTApPj4wXTw8MjQ+PjI0PzM4OjM3KV0obCsxNDh8MCxsKzE0NHwwLDB8YVsoYz1sKzIyOHwwKT4+Ml0pPzA6MHxIbShsLDB8YVtjPj4yXSkpfShsfD0wKSxtfHwoYVtsKzI3Nj4+Ml09NTcsbT0wfHNBKGwsYyxmLHApKSwwfG19LHNBLHdfLGZ1bmN0aW9uIFVCKGwsYyxmLHApe2x8PTAs''@;'; put 'put ''Znw9MCxwfD0wO3ZhciBBLG09MDtyZXR1cm4gQT1sZSxsZT1sZSsxNnwwLGFbKG09QSk+PjJdPWN8PTAsMCE9KDB8KGM9MHxoQShsLDB8YVtsKzE0ND4+Ml0sbSxmLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYxKSkpfDA9PSgwfChtPTB8YVttPj4yXSkpfHwoYVtsKzI3Nj4+Ml09NTcsYz0wfHNB''@;'; put 'put ''KGwsbSxmLHApKSxsZT1BLDB8Y30sZnVuY3Rpb24gTV8obCxjLGYscCl7Y3w9MCxmfD0wLHB8PTA7dmFyIGssTSxHLHEsbT0wLEE9MCx3PTAsYj0wLEQ9MCxSPTAscGU9MCxnZT0wO3E9bGUsbGU9bGUrMTZ8MCxHPXEsTT0wfGFbKGs9Mjk2KyhsfD0wKXwwKT4+Ml07ZG97aWYoTSl7aWYobT0o''@;'; put 'put ''Yj0wfGFbKEE9NCsoRD0wfGFbTSsxMj4+Ml0pfDApPj4yXSkrKDB8YVsodz1EKzEyfDApPj4yXSl8MCxiPWIrKDB8YVtEKzg+PjJdKXwwLGFbRz4+Ml09bSwwfGZlWyhSPUQrMzN8MCk+PjBdPyhwZT0wfHEwWzEyNyZhWyhwZT0wfGFbKGdlPWwrMjI0fDApPj4yXSk+PjJdXShwZSxtLGIsRyks''@;'; put 'put ''bT0wfHVBKGwsMHxhW2dlPj4yXSxtLGIscGUsMHxhW0c+PjJdLEcsMCkpOm09MHxCbShsLDB8YVtNKzE2Pj4yXSwwfGFbbCsyMjQ+PjJdLG0sYixHLDApLCFtKXtpZigoMHxiKSE9KDB8KG09MHxhW0c+PjJdKSkmJjM9PSgwfGFbbCs0NzY+PjJdKSl7YVt3Pj4yXT1tLSgwfGFbQT4+Ml0pLG09''@;'; put 'put ''MDticmVha31pZihmZVtEKzMyPj4wXT0wLGFbaz4+Ml09YVsoZ2U9TSs4fDApPj4yXSxhW2dlPj4yXT1hWyhtPWwrMzAwfDApPj4yXSxhW20+PjJdPU0sbT1sKzI3NnwwLDB8ZmVbUj4+MF0pe2FbbT4+Ml09NTcsbT0wfHEwWzEyNyZhWyhtPTB8YVsoZ2U9bCsxNDR8MCk+PjJdKT4+Ml1dKG0s''@;'; put 'put ''YyxmLEcpLG09MHx1QShsLDB8YVtnZT4+Ml0sYyxmLG0sMHxhW0c+PjJdLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYxKTticmVha31hW20+PjJdPTU4LG09MHxCbShsLDAhPSgwfGFbbCs0NzI+PjJdKSYxLDB8YVtsKzE0ND4+Ml0sYyxmLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYxKTticmVha319''@;'; put 'put ''ZWxzZSBtPTIzfXdoaWxlKDApO3JldHVybiBsZT1xLDB8bX0sZnVuY3Rpb24geUcobCxjLGYscCl7bHw9MCxmfD0wLHB8PTA7dmFyIEEsbT0wO0E9bGUsbGU9bGUrMTZ8MCxhWyhtPUEpPj4yXT1jfD0wLGM9MHxQbShsLDB8YVtsKzE0ND4+Ml0sbSxmLHAsMD09KDB8ZmVbbCs0ODA+PjBdKSYx''@;'; put 'put ''KSxtPTB8YVttPj4yXTtkb3tpZighKDAhPSgwfGMpfDA9PSgwfG0pKSl7aWYoYz1sKzI3NnwwLDB8YVtsKzQ3Mj4+Ml0pe2FbYz4+Ml09NjMsYz0wfHB4KGwsbSxmLHApO2JyZWFrfWFbYz4+Ml09NTgsYz0wfHdfKGwsbSxmLHApO2JyZWFrfX13aGlsZSgwKTtyZXR1cm4gbGU9QSwwfGN9LGR4''@;'; put 'put ''LHB4LG5QLGZ1bmN0aW9uICRLKGwsYyxmLHApe3JldHVybiAwfChsPTB8blAobHw9MCxjfD0wLGZ8PTAscHw9MCkpJiYoZmVbbCs3Mis1OD4+MF09MjMpLDB8bH0sZnVuY3Rpb24gYkcobCxjLGYscCl7cmV0dXJuIDB8YVsyODArKGx8PTApPj4yXX0sZnVuY3Rpb24gUjFlKGwsYyxmLHApe3Jl''@;'; put 'put ''dHVybiAwfHlqKDU4OTQ4LGx8PTAsMCxjfD0wLGZ8PTAscHw9MCl9LGZ1bmN0aW9uIEFqKGwsYyxmLHApe3JldHVybiAwfHlqKDU4OTQ4LGx8PTAsMSxjfD0wLGZ8PTAscHw9MCl9LGZ1bmN0aW9uICQxZShsLGMsZixwKXtyZXR1cm4gMHx5aig2MDQ1NixsfD0wLDAsY3w9MCxmfD0wLHB8PTAp''@;'; put 'put ''fSxmdW5jdGlvbiBxMWUobCxjLGYscCl7cmV0dXJuIDB8eWooNjA0NTYsbHw9MCwxLGN8PTAsZnw9MCxwfD0wKX0scGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEs''@;'; put 'put ''cGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGEscGFdLFIyPVtKbyxmdW5jdGlvbiBoQyhsLGMsZixwLG0pe3JldHVybiBsfD0wLHB8PTAsbXw9MCwoZnw9MCk/KGw9bT8wfHIwKGwsZik6MHxacihsLGYpLGFbcD4+Ml09''@;'; put 'put ''bCxhW3ArND4+Ml09MCk6KGY9MHxhWyhtPTEzOTIpPj4yXSxtPTB8YVttKzQ+PjJdLGFbcD4+Ml09ZixhW3ArND4+Ml09bSxtPTB8emwoMHxmLDB8bSwyLDApLGFbKHA9MTM5Mik+PjJdPW0sYVtwKzQ+PjJdPURuKSwxfSxmdW5jdGlvbiBqMihsLGMsZixwLG0pe3JldHVybiAwLDB9LGZ1bmN0''@;'; put 'put ''aW9uIG5KKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBHLHEsYmUsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLHBlPTAsZ2U9MCxPZT0wO2JlPWxlLGxlPWxlKzgwfDAscT1iZSs2NHwwLEc9YmUrMzJ8MCxnZT1iZTtlOmRve2lmKDB8ZmVbYysyOD4+MF0pe2Zv''@;'; put 'put ''cihBPStfW2M+PjNdLGI9NDgrKGs9MHxhWzEyKygwfGFbKFI9bCsxNnwwKT4+Ml0pPj4yXSl8MCxrPWsrNTZ8MCxjPTA7Oyl7aWYoKDB8Yyk+PSgwfGFbYj4+Ml0pKWJyZWFrIGU7aWYoTT0wPT0oMSZhWzExNisoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4yXXwwKSxEPTB8YVsoMHxhW2s+PjJd''@;'; put 'put ''KSsoYzw8Mik+PjJdLEE+PSh3PSsoMHx+fitfWyhNP0QrMTZ8MDpEKzI0fDApPj4zXSkpJiZBPD0ocGU9KygwfH5+K19bKE0/RCszMnwwOkQrNDB8MCk+PjNdKSkpYnJlYWs7Yz1jKzF8MH0xJmFbMTE2KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdPyhsPTE2KygwfGFbUj4+Ml0pfDAsYVtH''@;'; put 'put ''Pj4yXT1hWyhEPTE2KygwfGFbKDB8YVtrPj4yXSkrKGM8PDIpPj4yXSl8MCk+PjJdLGFbRys0Pj4yXT1hW0QrND4+Ml0sYVtHKzg+PjJdPWFbRCs4Pj4yXSxhW0crMTI+PjJdPWFbRCsxMj4+Ml0sYVtHKzE2Pj4yXT1hW0QrMTY+PjJdLGFbRysyMD4+Ml09YVtEKzIwPj4yXSxhW0crMjQ+PjJd''@;'; put 'put ''PWFbRCsyND4+Ml0sYVtHKzI4Pj4yXT1hW0QrMjg+PjJdLGFbcT4+Ml09YVtsPj4yXSxhW3ErND4+Ml09YVtsKzQ+PjJdLGFbcSs4Pj4yXT1hW2wrOD4+Ml0sYVtxKzEyPj4yXT1hW2wrMTI+PjJdLEdvZShnZSxHLHEpLGFbcD4+Ml09YVtnZT4+Ml0sYVtwKzQ+PjJdPWFbZ2UrND4+Ml0sYVtw''@;'; put 'put ''Kzg+PjJdPWFbZ2UrOD4+Ml0sYVtwKzEyPj4yXT1hW2dlKzEyPj4yXSxhW3ArMTY+PjJdPWFbZ2UrMTY+PjJdLGFbcCsyMD4+Ml09YVtnZSsyMD4+Ml0sYVtwKzI0Pj4yXT1hW2dlKzI0Pj4yXSxhW3ArMjg+PjJdPWFbZ2UrMjg+PjJdLEE9K19bODArKGdlPTB8YVtSPj4yXSk+PjNdLHc9K19b''@;'; put 'put ''Z2UrMjQ+PjNdKTooX1twPj4zXT0oT2U9K19bMTYrKGdlPTB8YVtSPj4yXSk+PjNdKSt3LF9bcCs4Pj4zXT0odz0rX1tnZSsyND4+M10pLS41KihBPStfW2dlKzgwPj4zXSksX1twKzE2Pj4zXT1PZStwZSksX1twKzI0Pj4zXT0uNSpBK3csYVttPj4yXT0xfWVsc2UgZj0wfXdoaWxlKDApO3Jl''@;'; put 'put ''dHVybiBsZT1iZSwwfGZ9LGZ1bmN0aW9uIEtrKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MDt2YXIgQSx3PTAsYj0wO2ZvcihBPW18PTA7Oyl7aWYoKDB8KHc9MHxhW2M+PjJdKSk9PSgwfGYpKXtsPTA7YnJlYWt9aWYobD0wfGFbcD4+Ml0sMTI4JihiPTB8WHRbdz4+MF0pKXtpZigo''@;'; put 'put ''QS1sfDApPDIpe2w9MjticmVha31hW3A+PjJdPWwrMSxmZVtsPj4wXT1iPj4+NnwxOTIsYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSksZmVbdz4+MF09NjMmYnwxMjgsYVtjPj4yXT0xKygwfGFbYz4+Ml0pfWVsc2V7aWYoKDB8bCk9PSgwfG0pKXtsPTI7YnJlYWt9YVtjPj4yXT13KzEsdz0wfGZl''@;'; put 'put ''W3c+PjBdLGFbcD4+Ml09MSsoYj0wfGFbcD4+Ml0pLGZlW2I+PjBdPXd9fXJldHVybiAwfGx9LGZ1bmN0aW9uIEJLKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO2Zvcih2YXIgQT0wLHc9MDsoQT0obD0wfGFbYz4+Ml0pPj4+MDxmPj4+MCkmKHc9MHxhW3A+PjJdKT4+PjA8''@;'; put 'put ''bT4+PjA7KWFbYz4+Ml09bCsxLEE9MHxYdFtsPj4wXSxhW3A+PjJdPTIrKHc9MHxhW3A+PjJdKSxpdFt3Pj4xXT1BO3JldHVybiAwfCgoMHx3KSE9KDB8bSl8MV5BPzA6Mil9LGZ1bmN0aW9uIGo5ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxwfD0wLG18PTA7dmFyIGIsQT0wLHc9MDtyZXR1cm4g''@;'; put 'put ''Yj1sZSxsZT1sZSsxNnwwLGFbKEE9Yik+PjJdPWZ8PTAsKGYtKHc9MHxhW2M+PjJdKXwwKT4oMHwobD1tLSgwfGFbcD4+Ml0pfDApKT8oYVtBPj4yXT1sPXcrbHwwLG09MSk6KG09MCxsPWYpLGZ1bmN0aW9uIHRQKGwsYyl7bHw9MDt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MDtmPTB8YVsoY3w9''@;'; put 'put ''MCk+PjJdLHA9MDtlOmZvcig7IShmPj4+MDw9bD4+PjApOyl7bT0wfFh0WyhBPWYrLTF8MCk+PjBdO2Rve2lmKDI0MCE9KDI0OCZtfDApKXtpZigyMjQ9PSgyNDAmbXwwKSl7aWYoKHArMXwwKT4+PjA+Mil7dz04O2JyZWFrIGV9cD0wO2JyZWFrfWlmKDE5Mj09KDIyNCZtfDApKXtpZigocCsx''@;'; put 'put ''fDApPj4+MD4xKXt3PTExO2JyZWFrIGV9cD0wO2JyZWFrfWlmKDEyOCZtKWJyZWFrO2JyZWFrIGV9aWYoKHArMXwwKT4+PjA+Myl7dz01O2JyZWFrIGV9cD0wfXdoaWxlKDApO2Y9QSxwPXArMXwwfTU9PSgwfHcpP2Y9ZiszfDA6OD09KDB8dyk/Zj1mKzJ8MDoxMT09KDB8dykmJihmPWYrMXww''@;'; put 'put ''KSxhW2M+PjJdPWZ9KHcsQSksZ28oMHxhW3A+PjJdLDB8KGY9MHxhW2M+PjJdKSwwfChBPSh3PTB8YVtBPj4yXSktZnwwKSksYVtjPj4yXT0oMHxhW2M+PjJdKStBLGFbcD4+Ml09KDB8YVtwPj4yXSkrQSxsZT1iLDB8KG0/Mjp3Pj4+MDxsPj4+MCYxKX0sZnVuY3Rpb24gdjFlKGwsYyxmLHAs''@;'; put 'put ''bSl7dmFyIHcsYixrLEE9MCxNPTAsRD0wLFI9MDt3PTcyKyhsfD0wKXwwLGI9Znw9MCxrPW18PTAsTT0wfGFbKGN8PTApPj4yXSxEPTB8YVsocHw9MCk+PjJdO2U6Zm9yKDs7KXtpZighKEQ+Pj4wPG0+Pj4wJihsPU0+Pj4wPGY+Pj4wKSkpe1I9MTI7YnJlYWt9c3dpdGNoKDB8ZmVbdysoQT0y''@;'; put 'put ''NTUmKGw9MHxmZVtNPj4wXSkpPj4wXSl7Y2FzZSA1OmlmKChiLU18MCk8Mil7bD0xO2JyZWFrIGV9aXRbRD4+MV09KDMxJmwpPDw2fDYzJmZlW00rMT4+MF0sTT1NKzJ8MCxEPUQrMnwwO2NvbnRpbnVlIGU7Y2FzZSA2OmlmKChiLU18MCk8Myl7bD0xO2JyZWFrIGV9aXRbRD4+MV09KDYzJmZl''@;'; put 'put ''W00rMT4+MF0pPDw2fEE8PDEyfDYzJmZlW00rMj4+MF0sTT1NKzN8MCxEPUQrMnwwO2NvbnRpbnVlIGU7Y2FzZSA3OmlmKChrLUR8MCk8NCl7bD0yO2JyZWFrIGV9aWYoKGItTXwwKTw0KXtsPTE7YnJlYWsgZX1pdFtEPj4xXT0oQT0oKDYzJmZlW00rMT4+MF0pPDwxMnwoNyZsKTw8MTh8KDYz''@;'; put 'put ''JmZlW00rMj4+MF0pPDw2fDYzJmZlW00rMz4+MF0pLTY1NTM2fDApPj4+MTB8NTUyOTYsaXRbRCsyPj4xXT0xMDIzJkF8NTYzMjAsTT1NKzR8MCxEPUQrNHwwO2NvbnRpbnVlIGU7ZGVmYXVsdDppdFtEPj4xXT1sPDwyND4+MjQsTT1NKzF8MCxEPUQrMnwwO2NvbnRpbnVlIGV9fXJldHVybiAx''@;'; put 'put ''Mj09KDB8UikmJihsPWw/MjowKSxhW2M+PjJdPU0sYVtwPj4yXT1ELDB8bH0sZnVuY3Rpb24gVTFlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO2Zvcih2YXIgQT0wLHc9MDsoQT0obD0wfGFbYz4+Ml0pPj4+MDxmPj4+MCkmKHc9MHxhW3A+PjJdKT4+PjA8bT4+PjA7KWFb''@;'; put 'put ''Yz4+Ml09bCsxLEE9MHxmZVtsPj4wXSxhW3A+PjJdPTErKHc9MHxhW3A+PjJdKSxmZVt3Pj4wXT1BO3JldHVybiAwfCgoMHx3KSE9KDB8bSl8MV5BPzA6Mil9LGZ1bmN0aW9uIHRBZShsLGMsZixwLG0pe2x8PTAscHw9MDt2YXIgYixrLE0sQT0wLHc9MCxEPTAsUj0wO2s9Yj0odz0wfGFbKGN8''@;'; put 'put ''PTApPj4yXSkrKChmfD0wKS13Ji0yKXwwLE09bXw9MDtlOmZvcig7Oyl7aWYodz4+PjA+PWI+Pj4wKXtsPTA7YnJlYWt9c3dpdGNoKEE9MHxmZVt3KzE+PjBdLGY9MjU1JihsPTB8ZmVbdz4+MF0pLGw8PDI0Pj4yNCl7Y2FzZSAwOmlmKEE8PDI0Pj4yND4tMSl7aWYoKDB8KGw9MHxhW3A+PjJd''@;'; put 'put ''KSk9PSgwfG0pKXtsPTI7YnJlYWsgZX1hW3A+PjJdPWwrMSxmZVtsPj4wXT1BLGw9d31lbHNlIEQ9NzticmVhaztjYXNlIDc6Y2FzZSA2OmNhc2UgNTpjYXNlIDQ6Y2FzZSAzOmNhc2UgMjpjYXNlIDE6RD03O2JyZWFrO2Nhc2UtMzc6Y2FzZS0zODpjYXNlLTM5OmNhc2UtNDA6aWYoKE0tKGw9''@;'; put 'put ''MHxhW3A+PjJdKXwwKTw0KXtsPTI7YnJlYWsgZX1pZigoay13fDApPDQpe2w9MTticmVhayBlfUE9MSsoZjw8MiYxMnwoUj0yNTUmQSk+Pj42KXwwLGFbcD4+Ml09bCsxLGZlW2w+PjBdPUE+Pj4yfDI0MCxhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT1SPj4+MiYxNXxBPDw0JjQ4''@;'; put 'put ''fDEyOCxmPTI1NSYoUjw8NCY0OHwoQT0wfFh0W3crMz4+MF0pPj4+NnxmZVsobD13KzJ8MCk+PjBdPDwyJjEyfDEyOCksYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSksZmVbdz4+MF09ZixhW3A+PjJdPTErKHc9MHxhW3A+PjJdKSxmZVt3Pj4wXT02MyZBfDEyODticmVhaztkZWZhdWx0OmlmKChN''@;'; put 'put ''LShsPTB8YVtwPj4yXSl8MCk8Myl7bD0yO2JyZWFrIGV9YVtwPj4yXT1sKzEsZmVbbD4+MF09Zj4+PjR8MjI0LFI9MjU1JkEsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09Uj4+PjZ8Zjw8MiY2MHwxMjgsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09NjMmUnwxMjgs''@;'; put 'put ''bD13fWlmKDc9PSgwfEQpKXtpZihEPTAsKE0tKGw9MHxhW3A+PjJdKXwwKTwyKXtsPTI7YnJlYWt9Uj0yNTUmQSxhW3A+PjJdPWwrMSxmZVtsPj4wXT1SPj4+NnxmPDwyfDE5MixhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT02MyZSfDEyOCxsPXd9dz1sKzJ8MH1yZXR1cm4gYVtj''@;'; put 'put ''Pj4yXT13LDB8bH0sZnVuY3Rpb24gX3AobCxjLGYscCxtKXtsfD0wO3ZhciBBPTAsdz0wLGI9MDtmb3IobD0oQT0wfGFbKGN8PTApPj4yXSkrKGI9KGZ8PTApLUEmLTIpfDAsKDB8Yik+KChtfD0wKS0oMHxhWyhwfD0wKT4+Ml0pfDApPyhiPTEmKGY9KC04JmZlWyh3PWwrLTJ8MCk+PjBdKTw8''@;'; put 'put ''MjQ+PjI0PT0tNDApLGw9Zj93OmwpOmI9MCxmPUE7KEE9Zj4+PjA8bD4+PjApJih3PTB8YVtwPj4yXSk+Pj4wPG0+Pj4wOylBPTY1NTM1JigoMHxYdFtmPj4wXSk8PDh8MHxYdFtmKzE+PjBdKSxhW3A+PjJdPXcrMixpdFt3Pj4xXT1BLGFbYz4+Ml09dz0yKygwfGFbYz4+Ml0pfDAsZj13O3Jl''@;'; put 'put ''dHVybiAwfCgoMHx3KSE9KDB8bSl8MV5BP2I6Mil9LGZ1bmN0aW9uIFMxZShsLGMsZixwLG0pe2x8PTAscHw9MDt2YXIgYixrLE0sQT0wLHc9MCxEPTAsUj0wO2s9Yj0odz0wfGFbKGN8PTApPj4yXSkrKChmfD0wKS13Ji0yKXwwLE09bXw9MDtlOmZvcig7Oyl7aWYodz4+PjA+PWI+Pj4wKXts''@;'; put 'put ''PTA7YnJlYWt9c3dpdGNoKEE9MHxmZVt3Pj4wXSxmPTI1NSYobD0wfGZlW3crMT4+MF0pLGw8PDI0Pj4yNCl7Y2FzZSAwOmlmKEE8PDI0Pj4yND4tMSl7aWYoKDB8KGw9MHxhW3A+PjJdKSk9PSgwfG0pKXtsPTI7YnJlYWsgZX1hW3A+PjJdPWwrMSxmZVtsPj4wXT1BLGw9d31lbHNlIEQ9Nzti''@;'; put 'put ''cmVhaztjYXNlIDc6Y2FzZSA2OmNhc2UgNTpjYXNlIDQ6Y2FzZSAzOmNhc2UgMjpjYXNlIDE6RD03O2JyZWFrO2Nhc2UtMzc6Y2FzZS0zODpjYXNlLTM5OmNhc2UtNDA6aWYoKE0tKGw9MHxhW3A+PjJdKXwwKTw0KXtsPTI7YnJlYWsgZX1pZigoay13fDApPDQpe2w9MTticmVhayBlfUE9MSso''@;'; put 'put ''Zjw8MiYxMnwoUj0yNTUmQSk+Pj42KXwwLGFbcD4+Ml09bCsxLGZlW2w+PjBdPUE+Pj4yfDI0MCxhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT1SPj4+MiYxNXxBPDw0JjQ4fDEyOCxmPTI1NSYoUjw8NCY0OHwoQT0wfFh0WyhsPXcrMnwwKT4+MF0pPj4+NnxmZVt3KzM+PjBdPDwy''@;'; put 'put ''JjEyfDEyOCksYVtwPj4yXT0xKyh3PTB8YVtwPj4yXSksZmVbdz4+MF09ZixhW3A+PjJdPTErKHc9MHxhW3A+PjJdKSxmZVt3Pj4wXT02MyZBfDEyODticmVhaztkZWZhdWx0OmlmKChNLShsPTB8YVtwPj4yXSl8MCk8Myl7bD0yO2JyZWFrIGV9YVtwPj4yXT1sKzEsZmVbbD4+MF09Zj4+PjR8''@;'; put 'put ''MjI0LFI9MjU1JkEsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09Uj4+PjZ8Zjw8MiY2MHwxMjgsYVtwPj4yXT0xKyhsPTB8YVtwPj4yXSksZmVbbD4+MF09NjMmUnwxMjgsbD13fWlmKDc9PSgwfEQpKXtpZihEPTAsKE0tKGw9MHxhW3A+PjJdKXwwKTwyKXtsPTI7YnJlYWt9Uj0y''@;'; put 'put ''NTUmQSxhW3A+PjJdPWwrMSxmZVtsPj4wXT1SPj4+NnxmPDwyfDE5MixhW3A+PjJdPTErKGw9MHxhW3A+PjJdKSxmZVtsPj4wXT02MyZSfDEyOCxsPXd9dz1sKzJ8MH1yZXR1cm4gYVtjPj4yXT13LDB8bH0sZnVuY3Rpb24gTTFlKGwsYyxmLHAsbSl7bHw9MDt2YXIgQT0wLHc9MCxiPTA7Zm9y''@;'; put 'put ''KGw9KEE9MHxhWyhjfD0wKT4+Ml0pKyhiPShmfD0wKS1BJi0yKXwwLCgwfGIpPigobXw9MCktKDB8YVsocHw9MCk+PjJdKXwwKT8oYj0xJihmPSgtOCZmZVsxKyh3PWwrLTJ8MCk+PjBdKTw8MjQ+PjI0PT0tNDApLGw9Zj93OmwpOmI9MCxmPUE7KEE9Zj4+PjA8bD4+PjApJih3PTB8YVtwPj4y''@;'; put 'put ''XSk+Pj4wPG0+Pj4wOylBPTY1NTM1JigoMHxYdFtmKzE+PjBdKTw8OHwwfFh0W2Y+PjBdKSxhW3A+PjJdPXcrMixpdFt3Pj4xXT1BLGFbYz4+Ml09dz0yKygwfGFbYz4+Ml0pfDAsZj13O3JldHVybiAwfCgoMHx3KSE9KDB8bSl8MV5BP2I6Mil9LGZ1bmN0aW9uIG9QKGwsYyxmLHAsbSl7Y3w9''@;'; put 'put ''MCxmfD0wLHB8PTAsbXw9MDt2YXIgYixrLE0sRCxSLEcsQT0wLHc9MCxxPTA7Zm9yKEc9bGUsbGU9bGUrMTZ8MCxrPUcsTT0zNjQrKGx8PTApfDAsRD1sKzg4NHwwLFI9bCszNjh8MCxiPWwrNzJ8MDs7KXtpZigoMHwoQT0wfGFbYz4+Ml0pKT09KDB8Zikpe209MDticmVha31pZih3PUQrKChx''@;'; put 'put ''PTB8WHRbQT4+MF0pPDwyKSsxfDAsbD0ocT0wfGZlW0QrKHE8PDIpPj4wXSk8PDI0Pj4yNCxxPDwyND4+MjQpe2lmKChtLSgwfGFbcD4+Ml0pfDApPCgwfGwpKXttPTI7YnJlYWt9QT1BKzF8MH1lbHNle2lmKCgwfChsPTB8VzQoMHxCaVsxMjcmYVtNPj4yXV0oMHxhW1I+PjJdLEEpLGspKSk+''@;'; put 'put ''KG0tKDB8YVtwPj4yXSl8MCkpe209MjticmVha313PWssQT0oQT0wfGFbYz4+Ml0pKygoMHxYdFtiKygwfFh0W0E+PjBdKT4+MF0pLTMpfDB9YVtjPj4yXT1BLGdvKDB8YVtwPj4yXSwwfHcsMHxsKSxhW3A+PjJdPSgwfGFbcD4+Ml0pK2x9cmV0dXJuIGxlPUcsMHxtfSxmdW5jdGlvbiBMMyhs''@;'; put 'put ''LGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIGssTSxELFIsQT0wLHc9MCxiPTA7Zm9yKE09MzcyKyhsfD0wKXwwLEQ9bCszNjR8MCxSPWwrMzY4fDAsaz1sKzcyfDA7KGw9KGI9MHxhW2M+PjJdKT4+PjA8Zj4+PjApJihBPTB8YVtwPj4yXSk+Pj4wPG0+Pj4wOykobD0wfGl0W00r''@;'; put 'put ''KCgwfFh0W2I+PjBdKTw8MSk+PjFdKTw8MTY+PjE2Pyh3PTEsQT1iKToobD02NTUzNSYoMHxCaVsxMjcmYVtEPj4yXV0oMHxhW1I+PjJdLGIpKSx3PSgwfFh0W2srKDB8WHRbKEE9MHxhW2M+PjJdKT4+MF0pPj4wXSktM3wwKSxhW2M+PjJdPUErdyxhW3A+PjJdPTIrKGI9MHxhW3A+PjJdKSxp''@;'; put 'put ''dFtiPj4xXT1sO3JldHVybiAwfCgoMHxBKSE9KDB8bSl8MV5sPzA6Mil9LGZ1bmN0aW9uIG51ZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtzd2l0Y2goMHwoY3w9MCkpe2Nhc2UgMTU6YVtsPj4yXT0xNixsPTA7YnJlYWs7Y2FzZSAxMjphW2w+PjJdPTE2LGw9MTti''@;'; put 'put ''cmVhaztjYXNlIDExOmFbbD4+Ml09MTYsbD01NTticmVhaztjYXNlIDEzOmFbbD4+Ml09MTYsbD01NjticmVhaztjYXNlIDE0Omw9MDticmVhaztjYXNlIDE2OjB8cTBbMTI3JmFbbSsyND4+Ml1dKG0sZisoYVttKzY0Pj4yXTw8MSl8MCxwLDE0NDM2OCk/KGFbbD4+Ml09MTcsbD0zKTpBPTk7''@;'; put 'put ''YnJlYWs7Y2FzZSAyOTphW2w+PjJdPTE4LGw9MjticmVhaztkZWZhdWx0OkE9OX1yZXR1cm4gOT09KDB8QSkmJihsPTB8amEobCxjKSksMHxsfSxmdW5jdGlvbiBydWUobCxjLGYscCxtKXtsfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDB8KGN8PTApKXtjYXNlIDE0OmNhc2Ug''@;'; put 'put ''MTU6bD0wO2JyZWFrO2Nhc2UgMTE6bD01NTticmVhaztjYXNlIDEzOmw9NTY7YnJlYWs7Y2FzZSAxNjowfHEwWzEyNyZhW20rMjQ+PjJdXShtLGYrKGFbbSs2ND4+Ml08PDEpfDAscCwxNDQzNjgpPyhhW2w+PjJdPTE3LGw9Myk6QT03O2JyZWFrO2Nhc2UgMjk6YVtsPj4yXT0xOCxsPTI7YnJl''@;'; put 'put ''YWs7ZGVmYXVsdDpBPTd9cmV0dXJuIDc9PSgwfEEpJiYobD0wfGphKGwsYykpLDB8bH0sZnVuY3Rpb24gaXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zO2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODphW2w+PjJdPTE5LGw9NDticmVhaztkZWZhdWx0Omw9MHxq''@;'; put 'put ''YShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIG91ZShsLGMsZixwLG0pe3JldHVybiAwfSxmdW5jdGlvbiBhdWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTA7ZTpkb3tzd2l0Y2goMHxjKXtjYXNlIDE1Omw9MzticmVhaztjYXNlIDI1OmFbbD4+Ml09''@;'; put 'put ''MjAsbD03O2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0yMSxsPTg7YnJlYWs7Y2FzZSAxODppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQzNzYpKXthW2w+PjJdPTIyLGw9MzticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFbbD4+Ml09MjMsbD0z''@;'; put 'put ''KTp3PTg7YnJlYWs7ZGVmYXVsdDp3PTh9fXdoaWxlKDApO3JldHVybiA4PT0oMHx3KSYmKGw9MHxqYShsLGMpKSwwfGx9LGUkLGZ1bmN0aW9uIGx1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLG18PTAsKG09KGN8PTApLTExfDApPj4+MXxtPDwzMXwwKXtjYXNlIDI6bD0wO2JyZWFrO2Nhc2Ug''@;'; put 'put ''MDpsPTU1O2JyZWFrO2Nhc2UgMTpsPTU2O2JyZWFrO2Nhc2UgOTphW2w+PjJdPTE4LGw9MjticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHN1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzticmVhaztjYXNlIDI3OmFb''@;'; put 'put ''bD4+Ml09MjksbD01O2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gdXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zO2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0yMixsPTY7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1y''@;'; put 'put ''ZXR1cm4gMHxsfSxmdW5jdGlvbiBmdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTExO2JyZWFrO2Nhc2UgMjI6YVtsPj4yXT0zMCxsPTExO2JyZWFrO2Nhc2UgMTg6YVtsPj4yXT0zMSxsPTk7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxs''@;'; put 'put ''fSxmdW5jdGlvbiBodWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTMzO2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODphW2w+PjJdPTMyLGw9MzQ7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBkdWUobCxjLGYscCxtKXtzd2l0''@;'; put 'put ''Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM5O2JyZWFrO2Nhc2UgNDE6Y2FzZSAxODphW2w+PjJdPTMzLGw9NDA7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBwdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTE3''@;'; put 'put ''O2JyZWFrO2Nhc2UgMTg6YVtsPj4yXT0zNCxsPTE4O2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gZ3VlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zO2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0yMSxsPTg7YnJlYWs7ZGVm''@;'; put 'put ''YXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBjdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM7YnJlYWs7Y2FzZSAyNTphW2w+PjJdPTIwLGw9NzticmVhaztjYXNlIDE3OmFbbD4+Ml09MjEsbD04O2JyZWFrO2RlZmF1bHQ6bD0wfGph''@;'; put 'put ''KGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gT3VlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmFbbD4+Ml09NTcsbD0xMDticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIFJ1ZShsLGMsZixw''@;'; put 'put ''LG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZixwLDE0NDM3Nikpe2FbbD4+Ml09NTgsbD0xMTticmVhayBlfTB8cTBbMTI3JmFb''@;'; put 'put ''QT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFbbD4+Ml09NTksbD0xMSk6dz03O2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MTEsbD0xMjticmVhaztkZWZhdWx0Onc9N319d2hpbGUoMCk7cmV0dXJuIDc9PSgwfHcpJiYobD0wfGphKGwsYykpLDB8bH0sZnVuY3Rpb24ga3VlKGws''@;'; put 'put ''YyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDE3OmFbbD4+Ml09MHxhW2wrMTY+PjJdPzIwOjM5LGw9MzM7YnJlYWs7Y2FzZSA0MTpjYXNlIDE4OmFbbD4+Ml09NDksbD0yMjticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9''@;'; put 'put ''LGZ1bmN0aW9uIGFBZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1dKG0sZixwLDE0NDQzNykpe2FbbD4+Ml09MzcsYVts''@;'; put 'put ''Kzg+PjJdPTM5LGw9NDI7YnJlYWsgZX0wfHEwWzEyNyZhW0E+PjJdXShtLGYscCwxNDQ0NDMpPyhhW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSxsPTQxKTp3PTc7YnJlYWs7Y2FzZSAyMzphW2w+PjJdPTQzLGFbbCs0Pj4yXT0xLGw9NDQ7YnJlYWs7ZGVmYXVsdDp3PTd9fXdoaWxlKDApO3JldHVy''@;'; put 'put ''biA3PT0oMHx3KSYmKGw9MHxqYShsLGMpKSwwfGx9LGZ1bmN0aW9uIG11ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0xNzticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9bSsyNHwwKT4+Ml1d''@;'; put 'put ''KG0sZixwLDE0NDM3Nikpe2FbbD4+Ml09MzUsbD0xNzticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFbbD4+Ml09MzYsbD0xNyk6dz02O2JyZWFrO2RlZmF1bHQ6dz02fX13aGlsZSgwKTtyZXR1cm4gNj09KDB8dykmJihsPTB8amEobCxjKSksMHxsfSxmdW5jdGlv''@;'; put 'put ''biB2dWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTE3O2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MTcsbD0xOTticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIEF1ZShsLGMsZixwLG0pe3N3aXRjaChs''@;'; put 'put ''fD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTc7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTM4LGw9MjE7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiB3dWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTB8YVtsKzg+PjJdO2Jy''@;'; put 'put ''ZWFrO2Nhc2UgMTc6YVtsPj4yXT0wfGFbbCsxNj4+Ml0/MjA6MzksbD0wfGFbbCs4Pj4yXTticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIHl1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTc7YnJlYWs7Y2FzZSAyNzph''@;'; put 'put ''W2w+PjJdPTM3LGFbbCs4Pj4yXT0xNyxsPTE5O2JyZWFrO2Nhc2UgMTc6YVtsPj4yXT0wfGFbbCsxNj4+Ml0/MjA6MzksbD0yMDticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIGJ1ZShsLGMsZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtz''@;'; put 'put ''d2l0Y2goMHwoY3w9MCkpe2Nhc2UgMzM6YVtsPj4yXT00MCxmPTA7YnJlYWs7Y2FzZSAzNDoocD0wfGFbKGY9bCsxMnwwKT4+Ml0pPyhhW2Y+PjJdPXArLTEsZj0wKTpBPTc7YnJlYWs7Y2FzZSAxNTpmPTA7YnJlYWs7Y2FzZSAyNjpBPTc7YnJlYWs7Y2FzZS00OjB8YVtsKzEyPj4yXT9BPTc6''@;'; put 'put ''Zj0wO2JyZWFrO2RlZmF1bHQ6Zj0wfGUkKGwsYyxmLHAsbSl9cmV0dXJuIDc9PSgwfEEpJiYoZj0wfGphKGwsYykpLDB8Zn0sZnVuY3Rpb24gX3VlKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBBPTAsdz0wO2U6ZG97c3dpdGNoKDB8Yyl7Y2FzZSAxNTpsPTA7YnJl''@;'; put 'put ''YWs7Y2FzZSAxODppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYscCwxNDQ0MjIpKXthW2w+PjJdPTQxLGw9MDticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDQzMCk/KGFbbD4+Ml09NDIsbD0wKTp3PTY7YnJlYWs7ZGVmYXVsdDp3PTZ9fXdoaWxlKDApO3JldHVy''@;'; put 'put ''biA2PT0oMHx3KSYmKGw9MHxqYShsLGMpKSwwfGx9LGZ1bmN0aW9uIGlBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MDticmVhaztjYXNlIDI1OmFbbD4+Ml09MzksYVsobD1sKzEyfDApPj4yXT0xKygwfGFbbD4+Ml0pLGw9MDticmVhaztkZWZhdWx0Omw9''@;'; put 'put ''MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIG9BZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MDticmVhaztjYXNlIDI1OmFbbD4+Ml09MzksbD01ODticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIGxBZShsLGMs''@;'; put 'put ''ZixwLG0pe2x8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MDtzd2l0Y2goMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDIwOjB8cTBbMTI3JmFbbSsyND4+Ml1dKG0sZisoMHxhW20rNjQ+PjJdKXwwLHAsMTQ0NDQ3KT8oYVtsPj4yXT00NCxsPTQzKTpBPTk7YnJlYWs7Y2FzZSAy''@;'; put 'put ''MzphW2wrND4+Ml09MixhW2w+PjJdPTQ1LGw9NDQ7YnJlYWs7Y2FzZSA0MTpjYXNlIDE4OmFbbD4+Ml09NDYsbD01MTticmVhaztjYXNlIDMwOmFbbD4+Ml09NDYsbD01MzticmVhaztjYXNlIDMxOmFbbD4+Ml09NDYsbD01MjticmVhaztjYXNlIDMyOmFbbD4+Ml09NDYsbD01NDticmVhaztk''@;'; put 'put ''ZWZhdWx0OkE9OX1yZXR1cm4gOT09KDB8QSkmJihsPTB8amEobCxjKSksMHxsfSxmdW5jdGlvbiBzQWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM5O2JyZWFrO2Nhc2UgMjQ6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MzksbD00NTticmVhaztjYXNlIDM2OmFb''@;'; put 'put ''bD4+Ml09MzcsYVtsKzg+PjJdPTM5LGw9NDY7YnJlYWs7Y2FzZSAyMTphW2w+PjJdPTQ3LGw9Mzk7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiB1QWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTM5O2JyZWFrO2Nhc2Ug''@;'; put 'put ''MjM6YVsobD1sKzR8MCk+PjJdPTErKDB8YVtsPj4yXSksbD00NDticmVhaztjYXNlIDQxOmNhc2UgMTg6YVtsPj4yXT00NixsPTUxO2JyZWFrO2Nhc2UgMzA6YVtsPj4yXT00NixsPTUzO2JyZWFrO2Nhc2UgMzE6YVtsPj4yXT00NixsPTUyO2JyZWFrO2Nhc2UgMzI6YVtsPj4yXT00NixsPTU0''@;'; put 'put ''O2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gY0FlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAscHw9MCxtfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9Mzk7YnJlYWs7Y2FzZSAyNDphWyhwPWwrNHwwKT4+Ml09bT0oMHxhW3A+PjJdKS0xfDAsbXx8KGFbbD4+''@;'; put 'put ''Ml09MzcsYVtsKzg+PjJdPTM5KSxsPTQ1O2JyZWFrO2Nhc2UgMzY6YVsocD1sKzR8MCk+PjJdPW09KDB8YVtwPj4yXSktMXwwLG18fChhW2w+PjJdPTM3LGFbbCs4Pj4yXT0zOSksbD00NjticmVhaztjYXNlIDM1OmFbKHA9bCs0fDApPj4yXT1tPSgwfGFbcD4+Ml0pLTF8MCxtfHwoYVtsPj4y''@;'; put 'put ''XT0zNyxhW2wrOD4+Ml09MzkpLGw9NDc7YnJlYWs7Y2FzZSAzNzphWyhwPWwrNHwwKT4+Ml09bT0oMHxhW3A+PjJdKS0xfDAsbXx8KGFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5KSxsPTQ4O2JyZWFrO2Nhc2UgMzg6YVtsPj4yXT00NSxsPTUwO2JyZWFrO2Nhc2UgMjE6YVtsPj4yXT00NSxsPTQ5''@;'; put 'put ''O2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gZkFlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDQxOmNhc2UgMTg6YVtsPj4yXT00OCxsPTUxO2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0''@;'; put 'put ''dXJuIDB8bH0sZnVuY3Rpb24gQ3VlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zOTticmVhaztjYXNlIDM2OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTM5LGw9NDY7YnJlYWs7Y2FzZSAyMTphW2w+PjJdPTQ3LGw9Mzk7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxj''@;'; put 'put ''KX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBTdWUobCxjLGYscCxtKXtsfD0wLGN8PTAsZnw9MCxwfD0wLG18PTA7dmFyIEE9MCx3PTAsYj0wLGs9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6QT0zMzticmVhaztjYXNlIDE4OmZvcih3PW0rMjR8MCxBPTA7Yj0wfGFbdz4+Ml0sISgoMHxBKT49''@;'; put 'put ''OCk7KXtpZigwfHEwWzEyNyZiXShtLGYscCwwfGFbNjIzMDQrKEE8PDIpPj4yXSkpe2s9NjticmVha31BPUErMXwwfWlmKDY9PSgwfGspKXthW2w+PjJdPTUwLEE9QSsyM3wwO2JyZWFrIGV9MHxxMFsxMjcmYl0obSxmLHAsMTQ0NDEzKT8oYVtsPj4yXT01MSxBPTMzKTprPTEwO2JyZWFrO2Nh''@;'; put 'put ''c2UgMjM6YVtsPj4yXT01MixBPTMzO2JyZWFrO2RlZmF1bHQ6az0xMH19d2hpbGUoMCk7cmV0dXJuIDEwPT0oMHxrKSYmKEE9MHxqYShsLGMpKSwwfEF9LGZ1bmN0aW9uIE11ZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MCxiPTA7ZTpkb3tzd2l0Y2go''@;'; put 'put ''MHxjKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2FzZSAyMDppZigwfHEwWzEyNyZhWyhBPW0rMjR8MCk+PjJdXShtLGYrKDB8YVsodz1tKzY0fDApPj4yXSl8MCxwLDE0NDQ1NCkpe2FbbD4+Ml09MzIsbD0zNTticmVhayBlfWlmKDB8cTBbMTI3JmFbQT4+Ml1dKG0sZisoMHxhW3c+PjJdKXwwLHAs''@;'; put 'put ''MTQ0NDYyKSl7YVtsPj4yXT0zMixsPTM2O2JyZWFrIGV9MHxxMFsxMjcmYVtBPj4yXV0obSxmKygwfGFbdz4+Ml0pfDAscCwxNDQ0NzEpPyhhW2w+PjJdPTUzLGw9MzMpOmI9OTticmVhaztjYXNlIDI3OmFbbD4+Ml09MzIsbD0zNzticmVhaztkZWZhdWx0OmI9OX19d2hpbGUoMCk7cmV0dXJu''@;'; put 'put ''IDk9PSgwfGIpJiYobD0wfGphKGwsYykpLDB8bH0sZnVuY3Rpb24gRXVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDIzOmFbbD4+Ml09NTQsbD0zMzticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9u''@;'; put 'put ''IHh1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2FzZSA0MTpjYXNlIDE4OmNhc2UgMTk6YVtsPj4yXT01NSxsPTMxO2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gTHVlKGwsYyxmLHAsbSl7c3dpdGNo''@;'; put 'put ''KGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDI3OmFbbD4+Ml09MzIsbD0zODticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIEl1ZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MzM7YnJlYWs7Y2Fz''@;'; put 'put ''ZSAxODphW2w+PjJdPTU2LGw9MzI7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBUdWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTMzO2JyZWFrO2Nhc2UgMjQ6YVtsPj4yXT01MCxsPTMzO2JyZWFrO2Nhc2UgMjE6YVts''@;'; put 'put ''Pj4yXT01MixsPTMzO2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sZnVuY3Rpb24gRHVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0zMzticmVhaztjYXNlIDI0OmFbbD4+Ml09NTAsbD0zMzticmVhaztjYXNlIDIxOmFbbD4+Ml09NTQs''@;'; put 'put ''bD0zMzticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIGdBZShsLGMsZixwLG0pe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MDt2YXIgQT0wLHc9MDtlOmRve3N3aXRjaCgwfGMpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmlmKDB8cTBbMTI3JmFbKEE9''@;'; put 'put ''bSsyNHwwKT4+Ml1dKG0sZixwLDE0NDM3Nikpe2FbbD4+Ml09NjIsbD0xMTticmVhayBlfTB8cTBbMTI3JmFbQT4+Ml1dKG0sZixwLDE0NDM4Myk/KGFbbD4+Ml09NjMsbD0xMSk6dz03O2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT0zNyxhW2wrOD4+Ml09MTEsbD0xMjticmVhaztkZWZhdWx0Onc9''@;'; put 'put ''N319d2hpbGUoMCk7cmV0dXJuIDc9PSgwfHcpJiYobD0wfGphKGwsYykpLDB8bH0sZnVuY3Rpb24gQnVlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDI3OmFbbD4+Ml09NjAsbD0xMzticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJl''@;'; put 'put ''dHVybiAwfGx9LGZ1bmN0aW9uIGhBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAyNzphW2w+PjJdPTU4LGw9MTQ7YnJlYWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBkQWUobCxjLGYscCxtKXtsfD0w''@;'; put 'put ''LGZ8PTAscHw9MCxtfD0wO3ZhciBBPTA7c3dpdGNoKDB8KGN8PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAxNzphW2w+PjJdPTB8YVtsKzE2Pj4yXT8yMDozOSxsPTE1O2JyZWFrO2Nhc2UgMTg6MHxxMFsxMjcmYVttKzI0Pj4yXV0obSxmLHAsMTQ0NTI1KT8oYVtsPj4yXT02MSxsPTEx''@;'; put 'put ''KTpBPTU7YnJlYWs7ZGVmYXVsdDpBPTV9cmV0dXJuIDU9PSgwfEEpJiYobD0wfGphKGwsYykpLDB8bH0sZnVuY3Rpb24gcEFlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDE4OmFbbD4+Ml09MzcsYVtsKzg+PjJdPTExLGw9MTY7YnJl''@;'; put 'put ''YWs7ZGVmYXVsdDpsPTB8amEobCxjKX1yZXR1cm4gMHxsfSxmdW5jdGlvbiBtQWUobCxjLGYscCxtKXtzd2l0Y2gobHw9MCwwfChjfD0wKSl7Y2FzZSAxNTpsPTExO2JyZWFrO2Nhc2UgMjc6YVtsPj4yXT02NCxsPTEzO2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sZnVu''@;'; put 'put ''Y3Rpb24gdkFlKGwsYyxmLHAsbSl7c3dpdGNoKGx8PTAsMHwoY3w9MCkpe2Nhc2UgMTU6bD0xMTticmVhaztjYXNlIDI3OmFbbD4+Ml09NjIsbD0xNDticmVhaztkZWZhdWx0Omw9MHxqYShsLGMpfXJldHVybiAwfGx9LGZ1bmN0aW9uIEFBZShsLGMsZixwLG0pe3N3aXRjaChsfD0wLDB8KGN8''@;'; put 'put ''PTApKXtjYXNlIDE1Omw9MTE7YnJlYWs7Y2FzZSAxNzphW2w+PjJdPTB8YVtsKzE2Pj4yXT8yMDozOSxsPTE1O2JyZWFrO2RlZmF1bHQ6bD0wfGphKGwsYyl9cmV0dXJuIDB8bH0sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8s''@;'; put 'put ''Sm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm8sSm9dLG8zPVtmdW5jdGlvbiBfZmUobCxjLGYscCxtLEEpe3JldHVybiB3''@;'; put 'put ''MigxMCksMH0sZnVuY3Rpb24gbDUobCxjLGYscCxtLEEpe2x8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBSZSxIZSxWZSxxZSxydCxXZSxhdCxTdCxrdCxFdCxadCxjdCxidCxhbixTbixIbixIcixFcixEcix3PTAsYj0wLGs9MCxNPTAsRD0wLFI9MCxHPTAscT0wLHBlPTAsZ2U9''@;'; put 'put ''MCxiZT0wLE9lPTAsTGU9MCxzdD0wLHVyPTAsZnI9MCxKcj0wLExyPTAsbDA9MCxWaT0wLE9pPTA7RHI9bGUsbGU9bGUrMzM2fDAsYnQ9RHIrMzIwfDAsY3Q9RHIrMzA0fDAsUmU9RHIrMTQ0fDAscT1EcisxMjh8MCxFdD1EcisxMTJ8MCxadD1Ecis5NnwwLGZyPURyKzgwfDAscnQ9RHIrNjR8''@;'; put 'put ''MCxhdD1Ecis0OHwwLGFuPURyKzMyfDAsU249RHIrMTZ8MCxIbj1EcixIZT1EcisyODh8MCxWZT1EcisyNzJ8MCxxZT1EcisyNTZ8MCxXZT1EcisyNDB8MCxTdD1EcisyMjR8MCxrdD1EcisyMDh8MCx1cj1EcisxOTJ8MCxIcj1EcisxNzZ8MCxFcj1EcisxNjB8MCx3PTB8YVs0NzQ2Ml07ZG97''@;'; put 'put ''aWYoKDB8YVs0NzQ2MV0pPCgwfHApKXtpZih3KXtpZih3PTB8VWEodyw0MCpwfDApLGFbNDc0NjJdPXcsIXcpe3c9LTE7YnJlYWt9fWVsc2UgaWYodz0wfEYwKDQwKnB8MCksYVs0NzQ2Ml09dywhdyl7dz0tMTticmVha31hWzQ3NDYxXT1wLGs9Nn1lbHNlIGs9Nn13aGlsZSgwKTtpZig2PT0o''@;'; put 'put ''MHxrKSl7Zm9yKF9bdz4+M109MCxrPTEsYj0wOyEoKDB8ayk+PSgwfHApKTspc3Q9ZisoaystMTw8NCl8MCxhW2N0Pj4yXT1hWyhEPWYrKGs8PDQpfDApPj4yXSxhW2N0KzQ+PjJdPWFbRCs0Pj4yXSxhW2N0Kzg+PjJdPWFbRCs4Pj4yXSxhW2N0KzEyPj4yXT1hW0QrMTI+PjJdLGFbYnQ+PjJd''@;'; put 'put ''PWFbc3Q+PjJdLGFbYnQrND4+Ml09YVtzdCs0Pj4yXSxhW2J0Kzg+PjJdPWFbc3QrOD4+Ml0sYVtidCsxMj4+Ml09YVtzdCsxMj4+Ml0sTGU9K29fKGN0LGJ0KStiLF9bdysoNDAqa3wwKT4+M109TGUsaz1rKzF8MCxiPUxlO2ZvcihEPXcrKDQwKihzdD1wKy0xfDApfDApfDAsaz0xOyEoKDB8''@;'; put 'put ''ayk+PSgwfHApKTspX1soSnI9dysoNDAqa3wwKXwwKT4+M109K19bSnI+PjNdLytfW0Q+PjNdLGs9aysxfDA7Zm9yKGs9MDshKCgwfGspPj0oMHxwKSk7KUpyPXcrKDQwKmt8MCkrOHwwLExlPStFbSgrX1soRD13Kyg0MCprfDApfDApPj4zXSksYVtidD4+Ml09YVttPj4yXSxhW2J0KzQ+PjJd''@;'; put 'put ''PWFbbSs0Pj4yXSxhW2J0Kzg+PjJdPWFbbSs4Pj4yXSxhW2J0KzEyPj4yXT1hW20rMTI+PjJdLF9mKEhlLGJ0LExlKSxhW0pyPj4yXT1hW0hlPj4yXSxhW0pyKzQ+PjJdPWFbSGUrND4+Ml0sYVtKcis4Pj4yXT1hW0hlKzg+PjJdLGFbSnIrMTI+PjJdPWFbSGUrMTI+PjJdLEpyPXcrKDQwKmt8''@;'; put 'put ''MCkrMjR8MCxMZT0rTGQoK19bRD4+M10pLGFbYnQ+PjJdPWFbQT4+Ml0sYVtidCs0Pj4yXT1hW0ErND4+Ml0sYVtidCs4Pj4yXT1hW0ErOD4+Ml0sYVtidCsxMj4+Ml09YVtBKzEyPj4yXSxfZihWZSxidCxMZSksYVtKcj4+Ml09YVtWZT4+Ml0sYVtKcis0Pj4yXT1hW1ZlKzQ+PjJdLGFbSnIr''@;'; put 'put ''OD4+Ml09YVtWZSs4Pj4yXSxhW0pyKzEyPj4yXT1hW1ZlKzEyPj4yXSxrPWsrMXwwO2lmKGFbY3Q+PjJdPWFbbT4+Ml0sYVtjdCs0Pj4yXT1hW20rND4+Ml0sYVtjdCs4Pj4yXT1hW20rOD4+Ml0sYVtjdCsxMj4+Ml09YVttKzEyPj4yXSxhW2J0Pj4yXT1hW0E+PjJdLGFbYnQrND4+Ml09YVtB''@;'; put 'put ''KzQ+PjJdLGFbYnQrOD4+Ml09YVtBKzg+PjJdLGFbYnQrMTI+PjJdPWFbQSsxMj4+Ml0sZnVuY3Rpb24gajQobCxjLGYscCxtLEEsdyxiLGspe2Z8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTA7dmFyIHBlLGdlLGJlLE9lLExlLFdlLGF0LFN0LGt0LEV0LE09MCxEPTAsUj0wLEc9''@;'; put 'put ''MCxxPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxydD0wLHN0PTAsWnQ9MCxjdD0wLGJ0PTAsYW49MCxTbj0wLEhuPTA7Zm9yKEV0PWxlLGxlPWxlKzEyOHwwLFdlPUV0KzExMnwwLExlPUV0KzgwfDAsT2U9RXQscGU9RXQrOTZ8MCxnZT1FdCs2NHwwLGJlPUV0KzQ4fDAsYXQ9RXQrMzJ8MCxTdD1F''@;'; put 'put ''dCsxNnwwLGt0PShsfD0wKSsoKGN8PTApLTE8PDQpfDAscT0wLFJlPTAsSGU9MCxWZT0wLHFlPTAscnQ9MDshKCgwfHEpPj0oMHxjKSk7KWFbTGU+PjJdPWFbKGFuPWYrKDQwKnF8MCkrOHwwKT4+Ml0sYVtMZSs0Pj4yXT1hW2FuKzQ+PjJdLGFbTGUrOD4+Ml09YVthbis4Pj4yXSxhW0xlKzEy''@;'; put 'put ''Pj4yXT1hW2FuKzEyPj4yXSxhW1dlPj4yXT1hW2FuPj4yXSxhW1dlKzQ+PjJdPWFbYW4rND4+Ml0sYVtXZSs4Pj4yXT1hW2FuKzg+PjJdLGFbV2UrMTI+PjJdPWFbYW4rMTI+PjJdLFp0PStzNShMZSxXZSkrSGUsYnQ9ZisoNDAqcXwwKSsyNHwwLGFbTGU+PjJdPWFbYW4+PjJdLGFbTGUrND4+''@;'; put 'put ''Ml09YVthbis0Pj4yXSxhW0xlKzg+PjJdPWFbYW4rOD4+Ml0sYVtMZSsxMj4+Ml09YVthbisxMj4+Ml0sYVtXZT4+Ml09YVtidD4+Ml0sYVtXZSs0Pj4yXT1hW2J0KzQ+PjJdLGFbV2UrOD4+Ml09YVtidCs4Pj4yXSxhW1dlKzEyPj4yXT1hW2J0KzEyPj4yXSxHPStzNShMZSxXZSkrcnQsYVtM''@;'; put 'put ''ZT4+Ml09YVtidD4+Ml0sYVtMZSs0Pj4yXT1hW2J0KzQ+PjJdLGFbTGUrOD4+Ml09YVtidCs4Pj4yXSxhW0xlKzEyPj4yXT1hW2J0KzEyPj4yXSxhW1dlPj4yXT1hW2J0Pj4yXSxhW1dlKzQ+PjJdPWFbYnQrND4+Ml0sYVtXZSs4Pj4yXT1hW2J0Kzg+PjJdLGFbV2UrMTI+PjJdPWFbYnQrMTI+''@;'; put 'put ''PjJdLFI9K3M1KExlLFdlKStWZSxTbj1sKyhxPDw0KXwwLGN0PStyeCgrX1soSG49ZisoNDAqcXwwKXwwKT4+M10pLGFbV2U+PjJdPWFbbD4+Ml0sYVtXZSs0Pj4yXT1hW2wrND4+Ml0sYVtXZSs4Pj4yXT1hW2wrOD4+Ml0sYVtXZSsxMj4+Ml09YVtsKzEyPj4yXSxfZihnZSxXZSxjdCksY3Q9''@;'; put 'put ''K2pCKCtfW0huPj4zXSksYVtXZT4+Ml09YVtrdD4+Ml0sYVtXZSs0Pj4yXT1hW2t0KzQ+PjJdLGFbV2UrOD4+Ml09YVtrdCs4Pj4yXSxhW1dlKzEyPj4yXT1hW2t0KzEyPj4yXSxfZihiZSxXZSxjdCksYVtMZT4+Ml09YVtnZT4+Ml0sYVtMZSs0Pj4yXT1hW2dlKzQ+PjJdLGFbTGUrOD4+Ml09''@;'; put 'put ''YVtnZSs4Pj4yXSxhW0xlKzEyPj4yXT1hW2dlKzEyPj4yXSxhW1dlPj4yXT1hW2JlPj4yXSxhW1dlKzQ+PjJdPWFbYmUrND4+Ml0sYVtXZSs4Pj4yXT1hW2JlKzg+PjJdLGFbV2UrMTI+PjJdPWFbYmUrMTI+PjJdLHR4KHBlLExlLFdlKSxhW0xlPj4yXT1hW1NuPj4yXSxhW0xlKzQ+PjJdPWFb''@;'; put 'put ''U24rND4+Ml0sYVtMZSs4Pj4yXT1hW1NuKzg+PjJdLGFbTGUrMTI+PjJdPWFbU24rMTI+PjJdLGFbV2U+PjJdPWFbcGU+PjJdLGFbV2UrND4+Ml09YVtwZSs0Pj4yXSxhW1dlKzg+PjJdPWFbcGUrOD4+Ml0sYVtXZSsxMj4+Ml09YVtwZSsxMj4+Ml0sdEEoT2UsTGUsV2UpLGFbTGU+PjJdPWFb''@;'; put 'put ''YW4+PjJdLGFbTGUrND4+Ml09YVthbis0Pj4yXSxhW0xlKzg+PjJdPWFbYW4rOD4+Ml0sYVtMZSsxMj4+Ml09YVthbisxMj4+Ml0sYVtXZT4+Ml09YVtPZT4+Ml0sYVtXZSs0Pj4yXT1hW09lKzQ+PjJdLGFbV2UrOD4+Ml09YVtPZSs4Pj4yXSxhW1dlKzEyPj4yXT1hW09lKzEyPj4yXSxjdD0r''@;'; put 'put ''czUoTGUsV2UpK1JlLGFbTGU+PjJdPWFbYnQ+PjJdLGFbTGUrND4+Ml09YVtidCs0Pj4yXSxhW0xlKzg+PjJdPWFbYnQrOD4+Ml0sYVtMZSsxMj4+Ml09YVtidCsxMj4+Ml0sYVtXZT4+Ml09YVtPZT4+Ml0sYVtXZSs0Pj4yXT1hW09lKzQ+PjJdLGFbV2UrOD4+Ml09YVtPZSs4Pj4yXSxhW1dl''@;'; put 'put ''KzEyPj4yXT1hW09lKzEyPj4yXSxxPXErMXwwLFJlPWN0LEhlPVp0LFZlPVIscWU9K3M1KExlLFdlKStxZSxydD1HOyhHPShSPVZlKkhlLXJ0KnJ0KT49MD9SOi1SKT49MWUtNiYmIShHPDFlLTZ8KE09KFZlKlJlLXJ0KnFlKS9SKTw9MHwoRD0oSGUqcWUtcnQqUmUpL1IpPD0wKXx8KHN0PTYp''@;'; put 'put ''LDY9PSgwfHN0KSYmKGFbTGU+PjJdPWFbbD4+Ml0sYVtMZSs0Pj4yXT1hW2wrND4+Ml0sYVtMZSs4Pj4yXT1hW2wrOD4+Ml0sYVtMZSsxMj4+Ml09YVtsKzEyPj4yXSxhW1dlPj4yXT1hW2t0Pj4yXSxhW1dlKzQ+PjJdPWFba3QrND4+Ml0sYVtXZSs4Pj4yXT1hW2t0Kzg+PjJdLGFbV2UrMTI+''@;'; put 'put ''PjJdPWFba3QrMTI+PjJdLEQ9TT0uMzMzMzMzMzMzMzMzMzMzMyorb18oTGUsV2UpKSxhW0E+PjJdPWFbbD4+Ml0sYVtBKzQ+PjJdPWFbbCs0Pj4yXSxhW0ErOD4+Ml09YVtsKzg+PjJdLGFbQSsxMj4+Ml09YVtsKzEyPj4yXSxhW1dlPj4yXT1hW3A+PjJdLGFbV2UrND4+Ml09YVtwKzQ+PjJd''@;'; put 'put ''LGFbV2UrOD4+Ml09YVtwKzg+PjJdLGFbV2UrMTI+PjJdPWFbcCsxMj4+Ml0sX2YoYXQsV2UsTSksYVt3Pj4yXT1hW2F0Pj4yXSxhW3crND4+Ml09YVthdCs0Pj4yXSxhW3crOD4+Ml09YVthdCs4Pj4yXSxhW3crMTI+PjJdPWFbYXQrMTI+PjJdLGFbYj4+Ml09YVtrdD4+Ml0sYVtiKzQ+PjJd''@;'; put 'put ''PWFba3QrND4+Ml0sYVtiKzg+PjJdPWFba3QrOD4+Ml0sYVtiKzEyPj4yXT1hW2t0KzEyPj4yXSxhW1dlPj4yXT1hW20+PjJdLGFbV2UrND4+Ml09YVttKzQ+PjJdLGFbV2UrOD4+Ml09YVttKzg+PjJdLGFbV2UrMTI+PjJdPWFbbSsxMj4+Ml0sX2YoU3QsV2UsRCksYVtrPj4yXT1hW1N0Pj4y''@;'; put 'put ''XSxhW2srND4+Ml09YVtTdCs0Pj4yXSxhW2srOD4+Ml09YVtTdCs4Pj4yXSxhW2srMTI+PjJdPWFbU3QrMTI+PjJdLGxlPUV0fShmLHAsdyxjdCxidCxFdCxydCxadCxhdCksYVtxPj4yXT1hW0V0Pj4yXSxhW3ErND4+Ml09YVtFdCs0Pj4yXSxhW3ErOD4+Ml09YVtFdCs4Pj4yXSxhW3ErMTI+''@;'; put 'put ''PjJdPWFbRXQrMTI+PjJdLGFbUmU+PjJdPWFbcnQ+PjJdLGFbUmUrND4+Ml09YVtydCs0Pj4yXSxhW1JlKzg+PjJdPWFbcnQrOD4+Ml0sYVtSZSsxMj4+Ml09YVtydCsxMj4+Ml0sYVtjdD4+Ml09YVtadD4+Ml0sYVtjdCs0Pj4yXT1hW1p0KzQ+PjJdLGFbY3QrOD4+Ml09YVtadCs4Pj4yXSxh''@;'; put 'put ''W2N0KzEyPj4yXT1hW1p0KzEyPj4yXSxhW2J0Pj4yXT1hW2F0Pj4yXSxhW2J0KzQ+PjJdPWFbYXQrND4+Ml0sYVtidCs4Pj4yXT1hW2F0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbYXQrMTI+PjJdLDB8ZnVuY3Rpb24gYV8obCxjLGYscCxtLEEsdyxiKXtsfD0wLGN8PTAsd3w9MDt2YXIgRCxSLEcs''@;'; put 'put ''cSxwZSxnZSxiZSxPZSxMZSxSZSxIZSxWZSxxZSxXZSxhdCxrPTAsTT0wLHJ0PTAsU3Q9MCxrdD0wO2ZvcihhdD1sZSxsZT1sZSs2NHwwLHFlPTI9PSgwfChifD0wKSksVmU9K19bKGZ8PTApPj4zXSxPZT0rX1tmKzg+PjNdLExlPShXZT1hdCkrOHwwLFJlPStfWyhwfD0wKT4+M10sSGU9V2Ur''@;'; put 'put ''MTZ8MCxHPStfW3ArOD4+M10scT1XZSsyNHwwLHBlPStfWyhtfD0wKT4+M10sZ2U9K19bKEF8PTApPj4zXSxiZT1XZSszMnwwLFI9K19bbSs4Pj4zXSxEPStfW0ErOD4+M10scD1XZSs0MHwwLG09V2UrNDh8MCxBPVdlKzU2fDAsZj0xLGs9NCxNPTQ7Oyl7aWYoX1tXZT4+M109VmUsX1tMZT4+''@;'; put 'put ''M109T2UsX1tIZT4+M109KFN0PS4zMzMzMzMzMzMzMzMzMzMzKk0pKlJlK1ZlLF9bcT4+M109U3QqRytPZSxfW2JlPj4zXT1wZS0oU3Q9LjMzMzMzMzMzMzMzMzMzMzMqaykqZ2UsX1twPj4zXT1SLVN0KkQsX1ttPj4zXT1wZSxfW0E+PjNdPVIsZiYmKFN0PStsXyhXZSw0KSk8K2xfKHcsYikt''@;'; put 'put ''LjAwMSl7Zj0wO2JyZWFrfWlmKDB8VzEobCxjLFdlKSl7cnQ9NTticmVha31pZigwPT1NJjA9PWspe3J0PTk7YnJlYWt9Zj0wLGs9KGt0PU0+LjAxKT8uNSprOjAsTT1rdD8uNSpNOjB9ZTpkb3tpZig1PT0oMHxydCkpZm9yKGV4KDQrKDB8YVs0NzQ1OV0pfDApLHA9MHxhWzQ3NDYwXSxmPTE7''@;'; put 'put ''Oyl7aWYoND09KDB8Zikpe2Y9MTticmVhayBlfV9bcCsoKGt0PTB8YVs0NzQ1OV0pPDw0KT4+M109K19bV2UrKGY8PDQpPj4zXSxTdD0rX1tXZSsoZjw8NCkrOD4+M10sYVs0NzQ1OV09a3QrMSxfW3ArKGt0PDw0KSs4Pj4zXT1TdCxmPWYrMXwwfWVsc2UgaWYoOT09KDB8cnQpKWlmKHFlKWZv''@;'; put 'put ''cihleCg0KygwfGFbNDc0NTldKXwwKSxwPTB8YVs0NzQ2MF0sZj0xOzspe2lmKDQ9PSgwfGYpKXtmPTE7YnJlYWsgZX1fW3ArKChrdD0wfGFbNDc0NTldKTw8NCk+PjNdPStfW1dlKyhmPDw0KT4+M10sU3Q9K19bV2UrKGY8PDQpKzg+PjNdLGFbNDc0NTldPWt0KzEsX1twKyhrdDw8NCkrOD4+''@;'; put 'put ''M109U3QsZj1mKzF8MH1lbHNlIGY9MH13aGlsZSgwKTtyZXR1cm4gbGU9YXQsMHxmfShsLGMscSxSZSxjdCxidCxmLHApKXc9MDtlbHNle2ZvcihhW2J0Pj4yXT1hW3J0Pj4yXSxhW2J0KzQ+PjJdPWFbcnQrND4+Ml0sYVtidCs4Pj4yXT1hW3J0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbcnQrMTI+''@;'; put 'put ''PjJdLF9mKHFlLGJ0LC4zMzMzMzMzMzMzMzMzMzMzKSxhW2N0Pj4yXT1hW0V0Pj4yXSxhW2N0KzQ+PjJdPWFbRXQrND4+Ml0sYVtjdCs4Pj4yXT1hW0V0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbRXQrMTI+PjJdLGFbYnQ+PjJdPWFbcWU+PjJdLGFbYnQrND4+Ml09YVtxZSs0Pj4yXSxhW2J0Kzg+''@;'; put 'put ''PjJdPWFbcWUrOD4+Ml0sYVtidCsxMj4+Ml09YVtxZSsxMj4+Ml0sdHgoV2UsY3QsYnQpLExlPStfW1dlPj4zXSxPZT0rX1tXZSs4Pj4zXSxhW2J0Pj4yXT1hW2F0Pj4yXSxhW2J0KzQ+PjJdPWFbYXQrND4+Ml0sYVtidCs4Pj4yXT1hW2F0Kzg+PjJdLGFbYnQrMTI+PjJdPWFbYXQrMTI+PjJd''@;'; put 'put ''LF9mKFN0LGJ0LC4zMzMzMzMzMzMzMzMzMzMzKSxhW2N0Pj4yXT1hW1p0Pj4yXSxhW2N0KzQ+PjJdPWFbWnQrND4+Ml0sYVtjdCs4Pj4yXT1hW1p0Kzg+PjJdLGFbY3QrMTI+PjJdPWFbWnQrMTI+PjJdLGFbYnQ+PjJdPWFbU3Q+PjJdLGFbYnQrND4+Ml09YVtTdCs0Pj4yXSxhW2J0Kzg+PjJd''@;'; put 'put ''PWFbU3QrOD4+Ml0sYVtidCsxMj4+Ml09YVtTdCsxMj4+Ml0sdEEoa3QsY3QsYnQpLGJlPStfW2t0Pj4zXSxHPStfW2t0Kzg+PjNdLHE9MHxhWzQ3NDYyXSxwZT0rX1tFdD4+M10sZ2U9K19bWnQ+PjNdLFI9K19bRXQrOD4+M10sTT0rX1tadCs4Pj4zXSxEPWZyKzh8MCx3PS0xLGI9LTEsaz0x''@;'; put 'put ''OyEoKDB8ayk+PSgwfHN0KSk7KWwwPStWQihMcj0rX1txKyg0MCprfDApPj4zXSksVmk9K0VtKExyKSxPaT0rTGQoTHIpLExyPStueChMciksX1tmcj4+M109VmkqTGUrcGUqbDArT2kqYmUrZ2UqTHIsX1tEPj4zXT1PaSpHK1ZpKk9lK1IqbDArTSpMcixKcj1mKyhrPDw0KXwwLGFbY3Q+PjJd''@;'; put 'put ''PWFbZnI+PjJdLGFbY3QrND4+Ml09YVtmcis0Pj4yXSxhW2N0Kzg+PjJdPWFbZnIrOD4+Ml0sYVtjdCsxMj4+Ml09YVtmcisxMj4+Ml0sYVtidD4+Ml09YVtKcj4+Ml0sYVtidCs0Pj4yXT1hW0pyKzQ+PjJdLGFbYnQrOD4+Ml09YVtKcis4Pj4yXSxhW2J0KzEyPj4yXT1hW0pyKzEyPj4yXSx3''@;'; put 'put ''PShKcj0oTHI9K29fKGN0LGJ0KSk+Yik/azp3LGI9SnI/THI6YixrPWsrMXwwO2ZyPWYrKHcrLTE8PDQpfDAsYVtjdD4+Ml09YVsoSnI9Zisodzw8NCl8MCk+PjJdLGFbY3QrND4+Ml09YVtKcis0Pj4yXSxhW2N0Kzg+PjJdPWFbSnIrOD4+Ml0sYVtjdCsxMj4+Ml09YVtKcisxMj4+Ml0sYVti''@;'; put 'put ''dD4+Ml09YVtmcj4+Ml0sYVtidCs0Pj4yXT1hW2ZyKzQ+PjJdLGFbYnQrOD4+Ml09YVtmcis4Pj4yXSxhW2J0KzEyPj4yXT1hW2ZyKzEyPj4yXSx0QSh1cixjdCxidCksYVtidD4+Ml09YVt1cj4+Ml0sYVtidCs0Pj4yXT1hW3VyKzQ+PjJdLGFbYnQrOD4+Ml09YVt1cis4Pj4yXSxhW2J0KzEy''@;'; put 'put ''Pj4yXT1hW3VyKzEyPj4yXSxhNShTbixidCksYVtjdD4+Ml09YVsodXI9ZisoKGZyPXcrMXwwKTw8NCl8MCk+PjJdLGFbY3QrND4+Ml09YVt1cis0Pj4yXSxhW2N0Kzg+PjJdPWFbdXIrOD4+Ml0sYVtjdCsxMj4+Ml09YVt1cisxMj4+Ml0sYVtidD4+Ml09YVtKcj4+Ml0sYVtidCs0Pj4yXT1h''@;'; put 'put ''W0pyKzQ+PjJdLGFbYnQrOD4+Ml09YVtKcis4Pj4yXSxhW2J0KzEyPj4yXT1hW0pyKzEyPj4yXSx0QShIcixjdCxidCksYVtidD4+Ml09YVtIcj4+Ml0sYVtidCs0Pj4yXT1hW0hyKzQ+PjJdLGFbYnQrOD4+Ml09YVtIcis4Pj4yXSxhW2J0KzEyPj4yXT1hW0hyKzEyPj4yXSxhNShIbixidCks''@;'; put 'put ''YVtjdD4+Ml09YVtTbj4+Ml0sYVtjdCs0Pj4yXT1hW1NuKzQ+PjJdLGFbY3QrOD4+Ml09YVtTbis4Pj4yXSxhW2N0KzEyPj4yXT1hW1NuKzEyPj4yXSxhW2J0Pj4yXT1hW0huPj4yXSxhW2J0KzQ+PjJdPWFbSG4rND4+Ml0sYVtidCs4Pj4yXT1hW0huKzg+PjJdLGFbYnQrMTI+PjJdPWFbSG4r''@;'; put 'put ''MTI+PjJdLHR4KEVyLGN0LGJ0KSxhW2J0Pj4yXT1hW0VyPj4yXSxhW2J0KzQ+PjJdPWFbRXIrND4+Ml0sYVtidCs4Pj4yXT1hW0VyKzg+PjJdLGFbYnQrMTI+PjJdPWFbRXIrMTI+PjJdLGE1KGFuLGJ0KSxhW2N0Pj4yXT1hW20+PjJdLGFbY3QrND4+Ml09YVttKzQ+PjJdLGFbY3QrOD4+Ml09''@;'; put 'put ''YVttKzg+PjJdLGFbY3QrMTI+PjJdPWFbbSsxMj4+Ml0sYVtidD4+Ml09YVthbj4+Ml0sYVtidCs0Pj4yXT1hW2FuKzQ+PjJdLGFbYnQrOD4+Ml09YVthbis4Pj4yXSxhW2J0KzEyPj4yXT1hW2FuKzEyPj4yXSxsNShsLGMsZixmcixjdCxidCksYVtjdD4+Ml09YVthbj4+Ml0sYVtjdCs0Pj4y''@;'; put 'put ''XT1hW2FuKzQ+PjJdLGFbY3QrOD4+Ml09YVthbis4Pj4yXSxhW2N0KzEyPj4yXT1hW2FuKzEyPj4yXSxhW2J0Pj4yXT1hW0E+PjJdLGFbYnQrND4+Ml09YVtBKzQ+PjJdLGFbYnQrOD4+Ml09YVtBKzg+PjJdLGFbYnQrMTI+PjJdPWFbQSsxMj4+Ml0sbDUobCxjLEpyLHAtd3wwLGN0LGJ0KSx3''@;'; put 'put ''PTB9fXJldHVybiBsZT1EciwwfHd9XSxLaj1bWGosZnVuY3Rpb24gUTFlKGwsYyxmLHAsbSxBLHcsYixrLE0pe3JldHVybiAwfG1nKDM5LGx8PTAsY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLHd8PTAsYnw9MCxrfD0wLE18PTApfSxmdW5jdGlvbiBldWUobCxjLGYscCxtLEEsdyxiLGssTSl7''@;'; put 'put ''cmV0dXJuIDB8bWcoNDAsbHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wLEF8PTAsd3w9MCxifD0wLGt8PTAsTXw9MCl9LFhqXSxpcT1bZnYsZnVuY3Rpb24gX04oKXtSbigxODkyNDQpfSxmdW5jdGlvbiBKb2UoKXt2YXIgTSxELFIsbD0wLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLGI9MCxrPTA7''@;'; put 'put ''Zm9yKFI9bGUsbGU9bGUrMTZ8MCxEPVIrOHwwLGs9UixNPTB8dUQoMHxhWzQ3MjUxXSksbD0xOTIrKDB8YVsxNisoMHxhWzQ3MjU0XSk+PjJdKXwwOzspe2lmKCEoYz0wfGFbbD4+Ml0pKXtiPTA7YnJlYWt9MHxhWzI5MisobD0wfGFbKGY9YysxNnwwKT4+Ml0pPj4yXXx8KEQ3KE0sYyksbD0w''@;'; put 'put ''fGFbZj4+Ml0pLGw9bCsxNjR8MH1mb3IoO2w9MHxjRChNKTspe2ZvcihhWyhwPTIzMisobD0wfGFbKHc9bCsxNnwwKT4+Ml0pfDApPj4yXT0wLGY9MHxhW2wrMTcyPj4yXSxjPTAsQT0wOzspe2lmKCEobT0wfGFbZisoYzw8Mik+PjJdKSl7cD0wO2JyZWFrfWFbcD4+Ml09bT0oMHxBKT4oMHwo''@;'; put 'put ''bT0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgzJmFbbT4+Ml18MCk/bTptKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKygwfGhyWzE3MCsoMHxhW20rMTY+PjJdKT4+MV0pfDApKT9BOm0sYz1jKzF8MCxBPW19Zm9yKDtjPTB8YVsoMHxhW2wrMTgwPj4yXSkrKHA8PDIpPj4yXTspZj1jKy00''@;'; put 'put ''OHwwLGFbKG09MjkyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSk+PjJdKXwwKT4+Ml09KEE9MHxhW20+PjJdKS0xLCgwfEEpPDImJihENyhNLDB8YVsoMj09KDMmYVtjPj4yXXwwKT9jOmYpKzQwPj4yXSksbD0wfGFbdz4+Ml0pLHA9cCsxfDA7Yj1iKzF8MH1l''@;'; put 'put ''OmRve2lmKCgwfGIpIT0oMHxhWzQ3MjUxXSkpZm9yKCRyKDEsMTAyNTU2LGspLGw9MTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSl8MDs7KXtpZighKGM9MHxhW2w+PjJdKSlicmVhayBlOzB8YVsyOTIrKGw9MHxhWyhmPWMrMTZ8MCk+PjJdKT4+Ml0mJihrPTB8dGkoYyksbD0wfGFbMjky''@;'; put 'put ''KygwfGFbZj4+Ml0pPj4yXSxhW0Q+PjJdPWssYVtEKzQ+PjJdPWwsJHIoMywxMDI1NzgsRCksbD0wfGFbZj4+Ml0pLGw9bCsxNjR8MH19d2hpbGUoMCk7ZEooTSksbGU9Un0sZ1EsZnVuY3Rpb24gWG9lKCl7dmFyIG0sbD0wLGM9MCxmPTAscD0wO2ZvcihsPTE5MisoMHxhWzE2KygwfGFbNDcy''@;'; put 'put ''NTRdKT4+Ml0pfDA7bD0wfGFbbD4+Ml07KWFbMjgwKyhsPTB8YVtsKzE2Pj4yXSk+PjJdPTAsbD1sKzE2NHwwO2ZvcihtPTB8dnIoYVs0NzI1MV08PDIpLHA9MCxsPTE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pfDA7Yz0wfGFbbD4+Ml07KTB8YVsyODArKGw9MHxhWyhmPWMrMTZ8MCk+''@;'; put 'put ''PjJdKT4+Ml0/Yz1wOihhW20rKHA8PDIpPj4yXT0wfGVhZShjKSxjPXArMXwwLGw9MHxhW2Y+PjJdKSxwPWMsbD1sKzE2NHwwO2ZvcihsPTB8ZnVuY3Rpb24gdGFlKGwsYyl7bHw9MCxjfD0wO3ZhciBwLGY9MDtmb3IocD0wfHZyKDgpLGFbcD4+Ml09bCxhW3ArND4+Ml09YyxmPTA7ISgoMHxm''@;'; put 'put ''KT49KDB8YykpOylhWzgrKDB8YVtsKyhmPDwyKT4+Ml0pPj4yXT1mLGY9ZisxfDA7Zm9yKGY9KDB8YykvMnwwOyEoKDB8Zik8PS0xKTspUUgocCxmKSxmPWYrLTF8MDtyZXR1cm4gMHxwfShtLHApOyEoKDB8bmFlKGwpKTw9MSk7KVFIKGwsMHxhWzgrKDB8b2FlKDB8aWFlKDB8cmFlKGwpKSkp''@;'; put 'put ''Pj4yXSk7Zm9yKEZ0KGwpLGw9MDshKCgwfGwpPj0oMHxwKSk7KUZ0KDB8YVttKyhsPDwyKT4+Ml0pLGw9bCsxfDA7RnQobSksKDB8YVs0NzI1NV0pIT0oKDB8YVs0NzI1MV0pLTF8MCk/UHIoMTAyMzAxLDEwMjMzMSw1MjMsMTAyMzM2KTpmdW5jdGlvbiBhYWUoKXtYSSgwfGFbMTkyKygwfGFb''@;'; put 'put ''MTYrKDB8YVs0NzI1NF0pPj4yXSk+PjJdLDAsMSksSkgoMHxhWzE5MisoMHxhWzE2KygwfGFbNDcyNTRdKT4+Ml0pPj4yXSwwKX0oKX0sZnVuY3Rpb24gWUgoKXt2YXIgTSxsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MCx3PTAsYj0wLGs9MCxEPTAsUj0wO2Zvcih2USgpLE09MHx2cig0KyhhWzQ3''@;'; put 'put ''MjUzXTw8Mil8MCksYz0wfGFbNDcyNTNdLGw9MDshKCgwfGwpPigwfGMpKTspYVtNKyhsPDwyKT4+Ml09MCxsPWwrMXwwO2ZvcihjPWw9MTkyKygwfGFbMTYrKDB8YVs0NzI1NF0pPj4yXSl8MDtjPTB8YVtjPj4yXTspMHxmZVsxNTYrKGM9MHxhW2MrMTY+PjJdKT4+MF18fChhWyhrPU0rKGFb''@;'; put 'put ''YysyMzI+PjJdPDwyKXwwKT4+Ml09MSsoMHxhW2s+PjJdKSksYz1jKzE2NHwwO2Zvcig7bD0wfGFbbD4+Ml07KXtpZighKDB8ZmVbMTU2KyhsPTB8YVsoaz1sKzE2fDApPj4yXSk+PjBdKSl7Zm9yKG09MHxhWzQ3MjUzXSxmPTB8YVtsKzE3Mj4+Ml0sYj0wLHc9MCxjPTA7cD0wfGFbZisoYzw8''@;'; put 'put ''Mik+PjJdOyliPSgwfGFbMTU2KyhEPTB8YVtwKzE2Pj4yXSk+PjJdKStifDAsdz0oMHx3KT4oMHwoQT0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDM9PSgzJmFbcD4+Ml18MCk/cDpwKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pKygwfGhyW0QrMTcwPj4xXSl8MCkpP3c6QSxjPWMrMXwwO2Zvcihw''@;'; put 'put ''PTB8YVtsKzE4MD4+Ml0sQT0wLGM9MDtmPTB8YVtwKyhjPDwyKT4+Ml07KUE9KDB8YVsxNTYrKFI9MHxhW2YrMTY+PjJdKT4+Ml0pK0F8MCxtPSgwfG0pPCgwfChEPSgwfGFbMjMyKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmYrLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pLSgw''@;'; put 'put ''fGhyW1IrMTcwPj4xXSl8MCkpP206RCxjPWMrMXwwO2lmKGM9KDB8dyk+MD93OjAsKDB8Yik9PSgwfEEpKXtmb3IocD1jLGY9YztjPWYrMXwwLCEoKDB8Zik+PSgwfG0pKTspcD0oMHxhW00rKGM8PDIpPj4yXSk8KDB8YVtNKyhwPDwyKT4+Ml0pP2M6cCxmPWM7YVsoRD1NKyhhWyhSPWwrMjMy''@;'; put 'put ''fDApPj4yXTw8Mil8MCk+PjJdPSgwfGFbRD4+Ml0pLTEsYVsoRD1NKyhwPDwyKXwwKT4+Ml09MSsoMHxhW0Q+PjJdKSxhW1I+PjJdPXB9KGM9MHxhW2wrMjY0Pj4yXSkmJihGdChjKSxsPTB8YVtrPj4yXSksKGM9MHxhW2wrMjcyPj4yXSkmJihGdChjKSxsPTB8YVtrPj4yXSksZmVbbCsxNTc+''@;'; put 'put ''PjBdPTB9bD1sKzE2NHwwfUZ0KE0pfSxmdW5jdGlvbiBtUSgpe3ZhciBsPTAsYz0wLGY9MCxwPTAsbT0wLEE9MDtmb3IoYz0wOyEoKDB8Yyk+PSgwfGFbNDcyNTVdKSk7KXtsPTB8YVsoMHxhWzQ3MjU2XSkrKGM8PDIpPj4yXTtkb3tpZigwPT0oMHxhWzE2MCsoMHxhW2wrMTY+PjJdKT4+Ml0p''@;'; put 'put ''JiYwfChmPTB8V0gobCkpJiYoMHwocD0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChwPTMmYVtmPj4yXSkpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxwKT9mOmYrNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8aHJbMTcw''@;'; put 'put ''KygwfGFbZisxNj4+Ml0pPj4xXSl8MCkpPj0yKXtpZigoMHxhWzI4OCsoMHxhWzE2KyhtPTB8YVsoMz09KDB8KEE9MyZhW2w+PjJdKSk/bDpsKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0pPCgwfGFbMjg4KygwfGFbMTYrKGw9MHxhWygyPT0oMHxBKT9sOmwrLTQ4fDApKzQwPj4yXSk+PjJdKT4+''@;'; put 'put ''Ml0pKXtYNShtLHA+Pj4xKTticmVha31YNShsLCgwfHApLy0yfDApO2JyZWFrfX13aGlsZSgwKTtjPWMrMXwwfWdRKCl9LHZRLGZ1bmN0aW9uIGJtKCl7RnQoMHxhWzQ3Mzc1XSksYVs0NzM3NV09MCxhWzQ3Mzg3XT0wfSxmdixmdixmdixmdixmdixmdixmdl0sQ289W2Y4LGZ1bmN0aW9uIG5p''@;'; put 'put ''ZShsKXt2YXIgYyxmLHAsbTtzd2l0Y2gobT1sZSxsZT1sZSsxNnwwLGM9bSs0fDAsZj1tLHA9MHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0sMHxhWyhsPWwrNjR8MCk+PjJdKXtjYXNlIDA6RTcocCk7YnJlYWs7Y2FzZSAxOjEmaXRbMTM2KygwfGFbcCsxNj4+Ml0pPj4xXSYmYkoocCk7''@;'; put 'put ''YnJlYWs7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Q1EocCxmLGMpLGZ1bmN0aW9uIEpkKGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wLHB8PTA7dmFyIHcsbT0wLEE9MDtBPTB8RjAoODI0MCksYVs0NjY5MF09QTtlOmRve3N3aXRjaCgwfHApe2Nhc2UgNjppdFtBKzgyMzI+PjFdPTE0LHA9NjY3Njk7''@;'; put 'put ''YnJlYWs7Y2FzZSA1Oml0W0ErODIzMj4+MV09MTIscD02Njc3MzticmVhaztkZWZhdWx0OmlmKDB8KHA9MHxMaShsLDY2NzUzKSkmJjB8ZmVbcD4+MF0mJig2NTUzNSYobT0wfGlwKHApKSk+MTApe2l0WzgyMzIrKEE9MHxhWzQ2NjkwXSk+PjFdPW07YnJlYWsgZX1wPTB8aXAoNjY3NjUpLGl0''@;'; put 'put ''WzgyMzIrKEE9MHxhWzQ2NjkwXSk+PjFdPXAscD02Njc2NX19d2hpbGUoMCk7Zm9yKGFbQSs4MjM2Pj4yXT1wLDB8YVsxODArKHA9MHxhWyh3PWwrMTZ8MCk+PjJdKT4+Ml0/KG09MHxaMihsLDAsOTk4MDgsMTk1MDU5KSxBPTB8YVs0NjY5MF0scD0wfGFbdz4+Ml0pOm09MCxhW0E+PjJdPW0s''@;'; put 'put ''cD04JmZlW3ArMTEzPj4wXT8wfFoyKGwsMCw2Njc3NywxOTUwNTkpOjAsYVs0KygwfGFbNDY2OTBdKT4+Ml09cCxBPTB8WjIobCwxLDk5ODA4LDE5NTA1OSksYVs4KygwfGFbNDY2OTBdKT4+Ml09QSxBPTB8WjIobCwxLDY2Nzc3LDE5NTA1OSksYVsxMisoMHxhWzQ2NjkwXSk+PjJdPUEsQT0w''@;'; put 'put ''fFoyKGwsMiw5OTgwOCwxOTUwNTkpLGFbMTYrKHA9MHxhWzQ2NjkwXSk+PjJdPUEsZj8obT0wfFoyKGwsMiw2Njc4NSwxOTUwNTkpLHA9MHxhWzQ2NjkwXSk6bT0wLGFbcCsyMD4+Ml09bSxjPyhtPTB8WjIobCwyLDY2NzkzLDE5NTA1OSkscD0wfGFbNDY2OTBdKTptPTAsYVtwKzI0Pj4yXT1t''@;'; put 'put ''LDMzJihtPTB8ZmVbMTEzKygwfGFbdz4+Ml0pPj4wXSk/KEE9MHxaMihsLDIsNjY3NzcsMTk1MDU5KSxwPTB8YVs0NjY5MF0sbT0wfGZlWzExMysoMHxhW3c+PjJdKT4+MF0pOkE9MCxhW3ArMjg+PjJdPUEsMiZtPyhBPTB8WjIobCwyLDY2ODAxLDE5NTA1OSkscD0wfGFbNDY2OTBdLG09MHxm''@;'; put 'put ''ZVsxMTMrKDB8YVt3Pj4yXSk+PjBdKTpBPTAsYVtwKzMyPj4yXT1BLDQmbT8obT0wfFoyKGwsMiw2NjgxMCwxOTUwNTkpLHA9MHxhWzQ2NjkwXSk6bT0wLGFbcCszNj4+Ml09bSxwPTA7OCE9KDB8cCk7KXVzKDE4NjYzMisocDw8NCl8MCwxMDI0LDQwKygwfGFbNDY2OTBdKSsocDw8MTApfDAp''@;'; put 'put ''LHA9cCsxfDB9KHAsMHxhW2Y+PjJdLDB8YVtjPj4yXSwwfGFbbD4+Ml0pfWxlPW19LGZ1bmN0aW9uIFNXKGwpe3ZhciBjLGYscCxtO3N3aXRjaChmPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLDB8YVs0NjY1NV18fChhWzQ2NjU1XT1hWzQ2NzhdLGFbNDY2NTZdPTU3LGFbNDY2NTdd''@;'; put 'put ''PTE5KSxjPTB8YVsobT04KygwfGFbKHA9Zis2NHwwKT4+Ml0pfDApPj4yXSxhW20+PjJdPTE4NjYyMCwwfGFbbCs2ND4+Ml0pe2Nhc2UgMjp3UShsLGYsbCwwKTticmVhaztjYXNlIDM6d1EobCxmLGwsMSk7YnJlYWs7Y2FzZSAxOmNhc2UgMDoxMzQyMTc3MjgmYVtsKzE1Mj4+Ml18fFhuZShm''@;'; put 'put ''LGwpO2JyZWFrO2Nhc2UgNjpjYXNlIDU6Y2FzZSA0OihmdW5jdGlvbiBNRihsKXtsfD0wO3ZhciBjPTAsZj0wO2ZvcigoMHwoYz0wfGFbNDY2NTldKSkhPSgwfGFbNDY2NThdKSYmKChmPTB8YVthWzQ2NjkwXT4+Ml0pfHwoZj0wfFoyKGwsMCw5OTgwOCwxOTUwNTkpLGFbYVs0NjY5MF0+PjJd''@;'; put 'put ''PWYsYz0wfGFbNDY2NTldKSxjPj4+MD49KDB8YVs0NjY2MF0pPj4+MCYmKFEwKDE4NjYzMiwxKSxjPTB8YVs0NjY1OV0pLGZlW2M+PjBdPTAsYVs0NjY1OV09Yz0wfGFbNDY2NThdLFZsKGwsZixjKSksMHxhWzEyKygwfGFbbCsxNj4+Ml0pPj4yXSYmKGY9MHxhWzQrKDB8YVs0NjY5MF0pPj4y''@;'; put 'put ''XSwoYz0wfGFbNDY2NzVdKT4+PjA+PSgwfGFbNDY2NzZdKT4+PjAmJihRMCgxODY2OTYsMSksYz0wfGFbNDY2NzVdKSxmZVtjPj4wXT0wLGFbNDY2NzVdPWM9MHxhWzQ2Njc0XSxWbChsLGYsYykpLEk1KGwsNjY3NTMsMHxhWzgyMzYrKDB8YVs0NjY5MF0pPj4yXSwxOTUwNTkpLGM9MDs4IT0o''@;'; put 'put ''MHxjKTspQzIoMTg2NjMyKyhjPDw0KXwwKSxjPWMrMXwwO0Z0KDB8YVs0NjY5MF0pLF9bMV09MSxfWzVdPTEsYVs0NjY5MV09MCxhWzQ2Njk1XT0wfSkoZiksMTM0MjE3NzI4JmFbbCsxNTI+PjJdfHxYbmUoZixsKX1hWzgrKDB8YVtwPj4yXSk+PjJdPWN9LGZ1bmN0aW9uIHJpZShsKXt2YXIg''@;'; put 'put ''ZixjPTA7Zj0wfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxjPTB8YVthWzQ2NjkwXT4+Ml0sKGw9MHxhWzQ2NjYzXSk+Pj4wPj0oMHxhWzQ2NjY0XSk+Pj4wJiYoUTAoMTg2NjQ4LDEpLGw9MHxhWzQ2NjYzXSksZmVbbD4+MF09MCxhWzQ2NjYzXT1sPTB8YVs0NjY2Ml0sVmwoZixjLGwp''@;'; put 'put ''LDB8YVsxMisoMHxhW2YrMTY+PjJdKT4+Ml0mJihjPTB8YVs0KygwfGFbNDY2OTBdKT4+Ml0sKGw9MHxhWzQ2Njc5XSk+Pj4wPj0oMHxhWzQ2NjgwXSk+Pj4wJiYoUTAoMTg2NzEyLDEpLGw9MHxhWzQ2Njc5XSksZmVbbD4+MF09MCxhWzQ2Njc5XT1sPTB8YVs0NjY3OF0sVmwoZixjLGwpKSxf''@;'; put 'put ''WzJdPTEsX1s2XT0xLGFbNDY2OTJdPTAsYVs0NjY5Nl09MH0sZnVuY3Rpb24gdDdlKGwpe3ZhciBmLGM9MDtmPTB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLCgwfGFbNDY2NjJdKSE9KDB8KGw9MHxhWzQ2NjYzXSkpJiYoYz0wfGFbOCsoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxh''@;'; put 'put ''WzQ2NjY0XSk+Pj4wJiYoUTAoMTg2NjQ4LDEpLGw9MHxhWzQ2NjYzXSksZmVbbD4+MF09MCxhWzQ2NjYzXT1sPTB8YVs0NjY2Ml0sVmwoZixjLGwpKSwoMHxhWzQ2Njc4XSkhPSgwfChsPTB8YVs0NjY3OV0pKSYmKGM9MHxhWzEyKygwfGFbNDY2OTBdKT4+Ml0sbD4+PjA+PSgwfGFbNDY2ODBd''@;'; put 'put ''KT4+PjAmJihRMCgxODY3MTIsMSksbD0wfGFbNDY2NzldKSxmZVtsPj4wXT0wLGFbNDY2NzldPWw9MHxhWzQ2Njc4XSxWbChmLGMsbCkpLF9bOV09MSxfWzExXT0xLGFbNDY2OTldPTAsYVs0NjcwMV09MH0sZnVuY3Rpb24gTVcobCl7dmFyIGYsYz0wO2Y9MHxhWzgrKDB8YVsxNisobHw9MCk+''@;'; put 'put ''PjJdKT4+Ml0sKDB8YVs0NjY2Ml0pIT0oMHwobD0wfGFbNDY2NjNdKSkmJihjPTB8YVsxNisoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxhWzQ2NjY0XSk+Pj4wJiYoUTAoMTg2NjQ4LDEpLGw9MHxhWzQ2NjYzXSksZmVbbD4+MF09MCxhWzQ2NjYzXT1sPTB8YVs0NjY2Ml0sVmwoZixjLGwp''@;'; put 'put ''KSwoMHxhWzQ2NjY2XSkhPSgwfChsPTB8YVs0NjY2N10pKSYmKGM9MHxhWzI0KygwfGFbNDY2OTBdKT4+Ml0sbD4+PjA+PSgwfGFbNDY2NjhdKT4+PjAmJihRMCgxODY2NjQsMSksbD0wfGFbNDY2NjddKSxmZVtsPj4wXT0wLGFbNDY2NjddPWw9MHxhWzQ2NjY2XSxWbChmLGMsbCkpLCgwfGFb''@;'; put 'put ''NDY2NzBdKSE9KDB8KGw9MHxhWzQ2NjcxXSkpJiYoYz0wfGFbMjArKDB8YVs0NjY5MF0pPj4yXSxsPj4+MD49KDB8YVs0NjY3Ml0pPj4+MCYmKFEwKDE4NjY4MCwxKSxsPTB8YVs0NjY3MV0pLGZlW2w+PjBdPTAsYVs0NjY3MV09bD0wfGFbNDY2NzBdLFZsKGYsYyxsKSksKDB8YVs0NjY3OF0p''@;'; put 'put ''IT0oMHwobD0wfGFbNDY2NzldKSkmJihjPTB8YVsyOCsoMHxhWzQ2NjkwXSk+PjJdLGw+Pj4wPj0oMHxhWzQ2NjgwXSk+Pj4wJiYoUTAoMTg2NzEyLDEpLGw9MHxhWzQ2Njc5XSksZmVbbD4+MF09MCxhWzQ2Njc5XT1sPTB8YVs0NjY3OF0sVmwoZixjLGwpKSwoMHxhWzQ2NjgyXSkhPSgwfChs''@;'; put 'put ''PTB8YVs0NjY4M10pKSYmKGM9MHxhWzM2KygwfGFbNDY2OTBdKT4+Ml0sbD4+PjA+PSgwfGFbNDY2ODRdKT4+PjAmJihRMCgxODY3MjgsMSksbD0wfGFbNDY2ODNdKSxmZVtsPj4wXT0wLGFbNDY2ODNdPWw9MHxhWzQ2NjgyXSxWbChmLGMsbCkpLCgwfGFbNDY2ODZdKSE9KDB8KGw9MHxhWzQ2''@;'; put 'put ''Njg3XSkpJiYoYz0wfGFbMzIrKDB8YVs0NjY5MF0pPj4yXSxsPj4+MD49KDB8YVs0NjY4OF0pPj4+MCYmKFEwKDE4Njc0NCwxKSxsPTB8YVs0NjY4N10pLGZlW2w+PjBdPTAsYVs0NjY4N109bD0wfGFbNDY2ODZdLFZsKGYsYyxsKSksX1sxMF09MSxfWzEyXT0xLF9bM109MSxfWzRdPTEsX1s3''@;'; put 'put ''XT0xLF9bOF09MSxhWzQ2NzAwXT0wLGFbNDY3MDJdPTAsYVs0NjY5M109MCxhWzQ2Njk0XT0wLGFbNDY2OTddPTAsYVs0NjY5OF09MH0sZnVuY3Rpb24gSVcobCl7dmFyIGM9MDtzd2l0Y2goMHxhWzY0KyhsfD0wKT4+Ml0pe2Nhc2UgMDpjPTB8ZnVuY3Rpb24gVFQobCl7dmFyIGMsZj0wLHA9''@;'; put 'put ''MCxtPTA7cD1sfD0wLG09NDArKGY9Yz0wfHZyKDM5MikpfDA7ZG97YVtmPj4yXT1hW3A+PjJdLGY9Zis0fDAscD1wKzR8MH13aGlsZSgoMHxmKTwoMHxtKSk7cmV0dXJuIGFbKG09Yys2MHwwKT4+Ml09YVsocD1sKzYwfDApPj4yXSxhW20rND4+Ml09YVtwKzQ+PjJdLGFbbSs4Pj4yXT1hW3Ar''@;'; put 'put ''OD4+Ml0sYVttKzEyPj4yXT1hW3ArMTI+PjJdLGFbbSsxNj4+Ml09YVtwKzE2Pj4yXSxhWyhtPWMrODB8MCk+PjJdPWFbKHA9bCs4MHwwKT4+Ml0sYVttKzQ+PjJdPWFbcCs0Pj4yXSxhW20rOD4+Ml09YVtwKzg+PjJdLGFbbSsxMj4+Ml09YVtwKzEyPj4yXSxhW20rMTY+PjJdPWFbcCsxNj4+''@;'; put 'put ''Ml0sMHxjfSgwfGFbbD4+Ml0pLGZ1bmN0aW9uICRHKGwsYyxmLHApe3B8PTA7dmFyIG0sQSxiLHc9MDtiPWxlLGxlPWxlKzE2fDAsQT1iLG09MHxhWzYwKyhjfD0wKT4+Ml0sSVQobHw9MCxmfD0wKSxhWzU2KyhjPTB8YVtsKzE2ND4+Ml0pPj4yXT0wfGs5KGMsMHxhW2MrNTI+PjJdKSwwIT0o''@;'; put 'put ''MHxoMChtLDEzNzQ4MywwLDEpKSYmMCE9KDB8YVs4KygwfGFbbSsxNj4+Ml0pPj4yXSl8fDY3MTA4ODY0JmFbYysxNTI+PjJdP3c9NTooWG0oOTg5MTEsQSksYz0tMSksNT09KDB8dykmJihhW2MrMzY+PjJdPXAscHx8KGFbKHc9YysxNTJ8MCk+PjJdPTEzNDIxNzcyOHxhW3c+PjJdKSx3PTB8''@;'; put 'put ''ZzIobCxtKSxTOShjKSxzRihsKSxjPXcpLGxlPWJ9KGMsMHxhWzgrKDB8YVtsKzE2Pj4yXSk+PjJdLDY3Nzk3LDApLGZ1bmN0aW9uIFpHKGwpe3NGKGx8PTApLEZ0KGwpfShjKTticmVhaztjYXNlIDE6RTcoMHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0pfX0sZnVuY3Rpb24gYWllKGwpe3ZhciBj''@;'; put 'put ''LGYscCxtO3A9bGUsbGU9bGUrMTZ8MCxjPXAsZj0wfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSwwfGFbNDY3MDNdfHwoYVs0NjcwM109YVs0Njc4XSxhWzQ2NzA0XT01NyxhWzQ2NzA1XT0xOSksYVs4KygwfGFbZis2ND4+Ml0pPj4yXT0xODY4MTIsWVQoZiwxKSxhW2M+PjJdPTAsZmVb''@;'; put 'put ''Yys0Pj4wXT0xPT0oMHxmZVsxMTUrKDB8YVtmKzE2Pj4yXSk+PjBdKSYxLGZlW2MrNT4+MF09MSYoMD09KDB8KG09MHxhW2wrNjQ+PjJdKSl8Mz09KDB8bSkpLGZlW2MrNj4+MF09MCxJRihmLGwsMSxjKSxsZT1wfSxmdW5jdGlvbiBsN2UobCl7dmFyIGMsZixwLG0sQSx3LGIsaztjPWxlLGxl''@;'; put 'put ''PWxlKzMyfDAsZj1jKzI0fDAscD1jKzE2fDAsQT1jLG09MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw2ODYyMyksYj0wfGFbNCsoaz0wfGFbYVtsKzEyPj4yXT4+Ml0pPj4yXSx3PTB8YVtrKzg+PjJdLGFbQT4+Ml09YVtrPj4yXSxhW0ErND4+Ml09YixhW0ErOD4+Ml09dyxPcihsLDY4NjMzLEEp''@;'; put 'put ''LGFbcD4+Ml09MHx0aSgwfGFbbSs4Pj4yXSksT3IobCw2ODY2OCxwKSxhW2Y+PjJdPTB8QXIoMHxhW2wrMTY4Pj4yXSwwfGFbbCsxNjQ+PjJdKSxPcihsLDY4NjgxLGYpLEVuKGwsNjg2OTQpLEVuKGwsNjg3MDQpLEVuKGwsNjg3MTIpLEVuKGwsNjg3MjApLEVuKGwsNjg3MjgpLEVuKGwsNjg3''@;'; put 'put ''MzYpLEVuKGwsNjg3NDQpLEVuKGwsNjg3NDgpLEVuKGwsNjg3NTMpLGxlPWN9LGZ1bmN0aW9uIEZXKGwpe0VuKGx8PTAsNjg2MDQpfSxmdW5jdGlvbiBoaWUobCl7YVs0NjcxMF09Mn0sZnVuY3Rpb24gTEYobCl7YVs0NjcxMF09MX0sZnVuY3Rpb24gWkMobCl7YVs0NjcxMF09Mn0sZnVuY3Rp''@;'; put 'put ''b24gZGllKGwpe2FbNDY3MTBdPTB9LGZ1bmN0aW9uIFVUKGwpe2FbNDY3MTBdPTJ9LGZ1bmN0aW9uIFZXKGwpe3ZhciBjPTAsZj0wLHA9MDtzd2l0Y2goZj0wfGFbMTYrKGx8PTApPj4yXSwwfGFbbCs2ND4+Ml0pe2Nhc2UgMDpFbihsLDY4MjIwKSwwfChmPTB8YVsoYz1mKzIwOHwwKT4+Ml0p''@;'; put 'put ''JiYwfGZlW2Y+PjBdJiYoRW4obCw2ODIzNCksRW4obCwwfE0xKDB8YVtjPj4yXSkpLEVuKGwsMTUzNTk5KSk7YnJlYWs7Y2FzZSAxOjB8KHA9MHxhWyhjPWYrMjA4fDApPj4yXSkmJjB8ZmVbcD4+MF0mJihFbihsLDY4MjM0KSxFbihsLDB8TTEoMHxhW2M+PjJdKSksRW4obCwxMDI2MDQpLEVu''@;'; put 'put ''KGwsMHxNMSgwfHRpKDB8YVtmKzg+PjJdKSkpLEVuKGwsMTUzNTk5KSk7YnJlYWs7Y2FzZSAzOnA9MHxNMSgwfHRpKDB8YVtmKzg+PjJdKSksRW4obCw2ODI0MyksRW4obCxwKSxFbihsLDY4MjUzKSxFbihsLHApLEVuKGwsNjgyMDgpfX0sZnVuY3Rpb24gUkYobCl7dmFyIGM7c3dpdGNoKGM9''@;'; put 'put ''MHxhWzE2KyhsfD0wKT4+Ml0sMHxhW2wrNjQ+PjJdKXtjYXNlIDI6SlQobCwwfGFbYysyNjQ+PjJdLDB8YVtjKzI3Mj4+Ml0sMHxhW2MrMjY4Pj4yXSwwfGFbYysyMDg+PjJdLDB8YVtjKzIyOD4+Ml0sMHxhW2MrMjQ0Pj4yXSwwfGFbYysyMTI+PjJdKTticmVhaztjYXNlIDM6SlQobCwwfGFb''@;'; put 'put ''YysyNjQ+PjJdLDB8YVtjKzI3Mj4+Ml0sMHxhW2MrMjY4Pj4yXSwwfGFbYysyMDg+PjJdLDB8YVtjKzIyOD4+Ml0sMHxhW2MrMjQ0Pj4yXSwwfGFbYysyMTI+PjJdKSxFbihsLDY4MjEyKX19LGZ1bmN0aW9uIGpXKGwpe3ZhciBjLGYscCxtLEEsdyxiLGs7Yz1sZSxsZT1sZSszMnwwLGY9Yysy''@;'; put 'put ''NHwwLHA9YysxNnwwLEE9YyxtPTB8YVsxNisobHw9MCk+PjJdLEVuKGwsNjg2MjMpLGI9MHxhWzQrKGs9MHxhW2FbbCsxMj4+Ml0+PjJdKT4+Ml0sdz0wfGFbays4Pj4yXSxhW0E+PjJdPWFbaz4+Ml0sYVtBKzQ+PjJdPWIsYVtBKzg+PjJdPXcsT3IobCw2ODYzMyxBKSxhW3A+PjJdPTB8dGko''@;'; put 'put ''MHxhW20rOD4+Ml0pLE9yKGwsNjg2NjgscCksYVtmPj4yXT0wfEFyKDB8YVtsKzE2OD4+Ml0sMHxhW2wrMTY0Pj4yXSksT3IobCw2ODY4MSxmKSxFbihsLDY4Njk0KSxFbihsLDY4NzA0KSxFbihsLDY4NzEyKSxFbihsLDY4NzIwKSxFbihsLDY4NzI4KSxFbihsLDY4NzM2KSxFbihsLDY4NzQ0''@;'; put 'put ''KSxFbihsLDY4NzQ4KSxFbihsLDY4NzUzKSxsZT1jfSxmdW5jdGlvbiB5aWUobCl7RW4obHw9MCw2ODYwNCl9LGZ1bmN0aW9uIHdpZShsKXthWzQ2NzE2XT0yfSxmdW5jdGlvbiBiaWUobCl7YVs0NjcxNl09MX0sZnVuY3Rpb24gX2llKGwpe2FbNDY3MTZdPTJ9LGZ1bmN0aW9uIFhUKGwpe2Fb''@;'; put 'put ''NDY3MTZdPTB9LGZ1bmN0aW9uIFpXKGwpe2FbNDY3MTZdPTJ9LGZ1bmN0aW9uIE1pZShsKXt2YXIgYyxmLHAsbSxBO2Y9bGUsbGU9bGUrMTZ8MCxjPWYsRW4obHw9MCw3MzMzMiksRW4obCwyPT0oMHxhW2wrNjQ+PjJdKT83MzM0NzoxNTM1OTkpLG09MHxhWzQrKEE9MHxhW2FbbCsxMj4+Ml0+''@;'; put 'put ''PjJdKT4+Ml0scD0wfGFbQSs4Pj4yXSxhW2M+PjJdPWFbQT4+Ml0sYVtjKzQ+PjJdPW0sYVtjKzg+PjJdPXAsT3IobCw3MzM1OCxjKSxsZT1mfSxmdW5jdGlvbiBVVyhsKXt2YXIgbSxBLGM9MCxmPTAscD0wO0E9bGUsbGU9bGUrMzJ8MCxtPUErOHwwLHA9QSxFbihsfD0wLDczMjg2KSxjPWwr''@;'; put 'put ''MTJ8MCwyIT0oMHxhWyhmPWwrNjR8MCk+PjJdKSYmKGFbcD4+Ml09YVsyOCsoMHxhW2M+PjJdKT4+Ml0sT3IobCw3MzI5NyxwKSksMD09KDB8YVsyMCsoMHxhW2M+PjJdKT4+Ml0pJiYyIT0oMHxhW2Y+PjJdKSYmKGM9MHxhW2wrNDc2Pj4yXSxmPTB8YVtsKzQ4MD4+Ml0scD0wfGFbbCs0ODQ+''@;'; put 'put ''PjJdLGFbbT4+Ml09YVtsKzQ3Mj4+Ml0sYVttKzQ+PjJdPWMsYVttKzg+PjJdPWYsYVttKzEyPj4yXT1wLE9yKGwsNjk2NjYsbSkpLEVuKGwsNzMzMTIpLEVuKGwsNzMzMjUpLGxlPUF9LGZ1bmN0aW9uIEVpZShsKXt2YXIgZixwLG0sQSx3LGIsayxjPTAsTT0wLEQ9MDtpZihrPWxlLGxlPWxl''@;'; put 'put ''KzMyfDAsYj1rKzI0fDAscD1rKzh8MCx3PWssbT0wfGFbMTYrKGx8PTApPj4yXSxmZVsxOTM3NjhdPTAsQT1tKzh8MCwhKDB8YVsyOCsoMHxhWyhmPWwrMTJ8MCk+PjJdKT4+Ml0pKXthW3c+PjJdPTB8dGkoMHxhW0E+PjJdKSxPcihsLDY5NTk3LHcpLEVuKGwsMj09KDB8YVsoYz1sKzY0fDAp''@;'; put 'put ''Pj4yXSk/Njk2MzA6Njk2MTIpO2Rve2lmKCEoMHxhWzIwKygwfGFbZj4+Ml0pPj4yXSkpe2lmKDI9PSgwfGFbYz4+Ml0pKXtEPTB8YVtsKzQ2MD4+Ml0sTT0wfGFbbCs0NjQ+PjJdLGM9MHxhW2wrNDY4Pj4yXSxhW3A+PjJdPWFbbCs0NTY+PjJdLGFbcCs0Pj4yXT1ELGFbcCs4Pj4yXT1NLGFb''@;'; put 'put ''cCsxMj4+Ml09YyxPcihsLDY5NjY2LHApO2JyZWFrfUVuKGwsNjk2NDIpO2JyZWFrfX13aGlsZSgwKTtFbihsLDY5Njk2KSx0TihsLDB8YVsyNCsoMHxhW2Y+PjJdKT4+Ml0sMTNlMyksZnVuY3Rpb24gRWFlKGwpe2x8PTA7dmFyIGYscCxjPTAsbT0wO3A9bGUsbGU9bGUrMTZ8MCxmPXAsYz0w''@;'; put 'put ''fGFbNDcyNjZdO2U6ZG97aWYoMHxjKWZvcihjPTB8bWlbNjMmYVtjPj4yXV0oYywwLDEyOCk7Oyl7aWYoIWMpYnJlYWsgZTswfGZlW2MrMTY+PjBdfHwoYVtmPj4yXT1hW2MrMTI+PjJdLE9yKGwsMTA0NDYyLGYpLEVuKGwsMTA0NDgwKSxOUShsLGMpLEVuKGwsMTA0NDk4KSxFbihsLDEwNDUx''@;'; put 'put ''MykpLGM9MHxtaVs2MyZhWyhtPTB8YVs0NzI2Nl0pPj4yXV0obSxjLDgpfX13aGlsZSgwKTtsZT1wfShsKSwwfChjPTB8YVsyMCsoMHxhW2Y+PjJdKT4+Ml0pJiYoYVt3Pj4yXT1hW2M+PjJdLGFbdys0Pj4yXT0wLHROKGwsMCx3KSl9YVs0NjcyMF09MT09KDB8ZmVbMTE1KygwfGFbMTYrKDB8''@;'; put 'put ''YVtBPj4yXSk+PjJdKT4+MF0pPzE6LTEsMHxmZVsxOTM3NjhdfHwoRW4obCw2OTcxNiksZmVbMTkzNzY4XT0xKSwwfChjPTB8YVttKzIwOD4+Ml0pJiYoYVtiPj4yXT0wfG5OKGMsMHxhWzQ2NzIwXSksT3IobCw2OTcyOSxiKSksbGU9a30sZnVuY3Rpb24gVGllKGwpe3ZhciBwLG0sQSx3LGIs''@;'; put 'put ''ayxELFIsRyxxLHBlLGdlLE9lLExlLFJlLGM9MCxmPTAsTT0wLGJlPTA7Z2U9bGUsbGU9bGUrMTQ0fDAscGU9Z2UrMTI4fDAscT1nZSsxMTJ8MCxHPWdlKzcyfDAsUj1nZSs1NnwwLEQ9Z2UrNDB8MCxNPWdlKzMyfDAscD1nZSsyNHwwLGM9Z2UrOHwwLG09MHxhWzQ1NisobHw9MCk+PjJdLGI9''@;'; put 'put ''MHxhW2wrNDYwPj4yXSxBPTB8YVtsKzQ2ND4+Ml0sdz0wfGFbbCs0Njg+PjJdLGFbKGY9Z2UpPj4yXT1iZT0xKygwfGFbMjgrKDB8YVsoaz1sKzEyfDApPj4yXSk+PjJdKXwwLGFbZis0Pj4yXT1iZSxPcihsLDY5MjA4LGYpLDB8YVsyMCsoMHxhW2s+PjJdKT4+Ml18fChhW2M+PjJdPW0sYVtj''@;'; put 'put ''KzQ+PjJdPWIsYVtjKzg+PjJdPUEsYVtjKzEyPj4yXT13LE9yKGwsNjkyMjUsYykpLGFbcD4+Ml09MHxhWyhmPWwrMzYwfDApPj4yXT82OTI1OTo2OTI2OSxPcihsLDY5Mjc4LHApLDE9PSgwfGFbKGM9bCs2NHwwKT4+Ml0pJiYoYVtNPj4yXT1BLGFbTSs0Pj4yXT13LE9yKGwsNjkzMDMsTSkp''@;'; put 'put ''LE09MHxhW2wrMjAwPj4yXSxiZT0wfGFbbCsyMDQ+PjJdLGFbRD4+Ml09YVtsKzE5Nj4+Ml0sYVtEKzQ+PjJdPU0sYVtEKzg+PjJdPWJlLE9yKGwsNjkzNDIsRCksMHxhWzIwKygwfGFbaz4+Ml0pPj4yXXx8KGFbUj4+Ml09bSxhW1IrND4+Ml09YixhW1IrOD4+Ml09QS1tLGFbUisxMj4+Ml09''@;'; put 'put ''dy1iLE9yKGwsNjkzNjIsUikpLFJlPStfW2wrNDk2Pj4zXSxiZT0wfGFbZj4+Ml0sTGU9K19bbCs1MDQ+PjNdLE9lPStfW2wrNTEyPj4zXSxfW0c+PjNdPStfW2wrNDg4Pj4zXSxfW0crOD4+M109UmUsYVtHKzE2Pj4yXT1iZSxfW0crMjQ+PjNdPUxlLF9bRyszMj4+M109T2UsT3IobCw2OTQw''@;'; put 'put ''MixHKSwxPT0oMHxhW2M+PjJdKSYmKCgwfEEpPjE0Mzk5fCgwfHcpPjE0Mzk5JiYoYmU9MHxhWzE2KygwfGFbaz4+Ml0pPj4yXSxhW3E+PjJdPUEsYVtxKzQ+PjJdPXcsYVtxKzg+PjJdPTE0NDAwLEdzWzYzJmJlXSg2OTQ0NSxxKSksYVtwZT4+Ml09bSxhW3BlKzQ+PjJdPWIsYVtwZSs4Pj4y''@;'; put 'put ''XT1BLGFbcGUrMTI+PjJdPXcsT3IobCw2OTU0MCxwZSkpLGxlPWdlfSxmdW5jdGlvbiBGRihsKXt2YXIgYyxmLHA7cD1sZSxsZT1sZSsxNnwwLGY9cCwwfGFbMjArKDB8YVsoYz0xMisobHw9MCl8MCk+PjJdKT4+Ml0mJihFbihsLDY5MTMyKSx0TihsLDAsNCsoMHxhWzIwKygwfGFbYz4+Ml0p''@;'; put 'put ''Pj4yXSl8MCkpLEVuKGwsNjkxNDkpLEVuKGwsNjkxNzYpLGFbZj4+Ml09YVsyOCsoMHxhW2M+PjJdKT4+Ml0sT3IobCw2OTE5MSxmKSxsZT1wfSxmdW5jdGlvbiB1N2UobCl7dmFyIGMsZjtjPWxlLGxlPWxlKzE2fDAsYVsoZj1jKT4+Ml09MHx0aSgwfGFbOCsoMHxhWzE2KyhsfD0wKT4+Ml0p''@;'; put 'put ''Pj4yXSksT3IobCw2OTEyNSxmKSxFbihsLDY5MTE4KSxsZT1jfSxmdW5jdGlvbiBjN2UobCl7RW4obHw9MCw4NDU1Mil9LGZ1bmN0aW9uIElpZShsKXtFbihsfD0wLDY5MTE4KX0sZnVuY3Rpb24gRGllKGwpe0VuKGx8PTAsODQ1NTIpfSxmdW5jdGlvbiBMaWUobCl7RW4obHw9MCw2OTExOCl9''@;'; put 'put ''LGZ1bmN0aW9uIFFXKGwpe0VuKGx8PTAsODQ1NTIpfSxmdW5jdGlvbiBCaWUobCl7dmFyIGM9MDtFbihsfD0wLDc0ODM4KSwwfChjPTB8TGkoMHxhWzE2OCsoMHxhW2w+PjJdKT4+Ml0sNzQ4OTQpKSYmMHxmZVtjPj4wXSYmKEVuKGwsNzQ5MDUpLEVuKGwsYyksRW4obCw3NDkyOSkpLEVuKGws''@;'; put 'put ''NzQ5NTApLEVuKGwsNzQ5OTgpLEVuKGwsNzUwNTIpLEVuKGwsMHxNMSgwfGFbYVthWyhjPWwrMTJ8MCk+PjJdPj4yXT4+Ml0pKSxFbihsLDc4MTgxKSxFbihsLDB8TTEoMHxhWzQrKDB8YVthW2M+PjJdPj4yXSk+PjJdKSksRW4obCw3ODE5MSksRW4obCwwfE0xKDB8YVs4KygwfGFbYVtjPj4y''@;'; put 'put ''XT4+Ml0pPj4yXSkpLEVuKGwsNzU0MzQpLEVuKGwsNzU0NTgpfSxmdW5jdGlvbiBQaWUobCl7dmFyIHAsbSxBLHcsYixrLGM9MCxmPTA7QT1sZSxsZT1sZSs0OHwwLG09QSsxNnwwLHA9QSs4fDAsZj1BLGM9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3NDY3MyksMHxmZVsoMHx0aSgwfGFbKGM9''@;'; put 'put ''Yys4fDApPj4yXSkpPj4wXSYmKEVuKGwsNzUzOTcpLEVuKGwsMHxNMSgwfHRpKDB8YVtjPj4yXSkpKSksYVtmPj4yXT0wfEFyKDB8YVtsKzE2OD4+Ml0sMHxhW2wrMTY0Pj4yXSksT3IobCw3NDY3OCxmKSxmPTB8YVtsKzQ1Mj4+Ml0sYVtwPj4yXT1hW2wrNDQ4Pj4yXSxhW3ArND4+Ml09ZixP''@;'; put 'put ''cihsLDc0Njk0LHApLGs9K19bbCszOTI+PjNdLGI9K19bbCs0MDA+PjNdLHc9K19bbCs0MDg+PjNdLF9bbT4+M109K19bbCszODQ+PjNdLF9bbSs4Pj4zXT1rLF9bbSsxNj4+M109YixfW20rMjQ+PjNdPXcsT3IobCw3NDcyNyxtKSxFbihsLDc0NzU4KSxFbihsLDc0Nzk0KSxFbihsLDc2Mzg4''@;'; put 'put ''KSxsZT1BfSxmdW5jdGlvbiBkN2UobCl7RW4obHw9MCw3NDY2NSl9LGZ1bmN0aW9uIHFXKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiBGNShsKXt2YXIgYyxmLHAsbTtmPWxlLGxlPWxlKzE2fDAscD1mLGM3KGx8PTAsMHxhWzIxMisobT0wfGFbbCsxNj4+Ml0pPj4yXSwwLDExMTQ5NCww''@;'; put 'put ''fGFbKGM9bSs4fDApPj4yXSksRW4obCw3NDYxNyksWnMobCwrX1tsKzQ4OD4+M10pLEVuKGwsMTAyNjA0KSxacyhsLCtfW2wrNDk2Pj4zXSksYVtwPj4yXT0wLSgwfGFbbCszNjA+PjJdKSxPcihsLDc0NjM2LHApLFpzKGwsK19bbCs1MDQ+PjNdKSxFbihsLDEwMjYwNCksWnMobCwtK19bbCs1''@;'; put 'put ''MTI+PjNdKSxFbihsLDc0NjYwKSwwfGZlWygwfHRpKDB8YVtjPj4yXSkpPj4wXSYmKEVuKGwsNzQ1NjkpLEVuKGwsMHxNMSgwfHRpKDB8YVtjPj4yXSkpKSxFbihsLDc0NTc3KSksbGU9Zn0sZnVuY3Rpb24gRmllKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiBIaWUobCl7dmFyIGMsZjtj''@;'; put 'put ''NyhsfD0wLDB8YVsyMTIrKGY9MHxhW2wrMTY+PjJdKT4+Ml0sMCwxMDgwMDYsMHxhWyhjPWYrOHwwKT4+Ml0pLEVuKGwsNzYzODgpLEVuKGwsNzQ1NjkpLEVuKGwsMHxNMSgwfHRpKDB8YVtjPj4yXSkpKSxFbihsLDc0NTc3KX0sZnVuY3Rpb24gSEYobCl7RW4obHw9MCw3NDUxMyl9LGZ1bmN0''@;'; put 'put ''aW9uIGVZKGwpe3ZhciBmLHAsYz0wO2M3KGx8PTAsMHxhWzIxMisoZj0wfGFbbCsxNj4+Ml0pPj4yXSxjPSgwfChjPTB8YVtsKzE2MD4+Ml0pKT4xPzB8YVsoMHxhWzMwOCsoMHxhW2w+PjJdKT4+Ml0pKyhjPDwyKT4+Ml06MCwxMTE0ODEsMHxhWyhwPWYrOHwwKT4+Ml0pLEVuKGwsNzYzODgp''@;'; put 'put ''LEVuKGwsNzQ1NjkpLEVuKGwsMHxNMSgwfHRpKDB8YVtwPj4yXSkpKSxFbihsLDc0NTc3KX0sZnVuY3Rpb24gZzdlKGwpe0VuKGx8PTAsNzQ1MTMpfSxmdW5jdGlvbiBtN2UobCl7dmFyIGYsYz0wO2M3KGx8PTAsMHxhWzIxMisoZj0wfGFbbCsxNj4+Ml0pPj4yXSwwLDExMTQ1MCwwfGFbKGM9''@;'; put 'put ''Zis4fDApPj4yXSksRW4obCw3NjM4OCksRW4obCw3NDU2OSksRW4obCwwfE0xKGM9MHxtMigxMDIwOTUsMHxhW2M+PjJdKSkpLEZ0KGMpLEVuKGwsNzQ1NzcpfSxmdW5jdGlvbiB2N2UobCl7RW4obHw9MCw3NDUxMyl9LGZ1bmN0aW9uIEE3ZShsKXtFbihsfD0wLDc2MzQzKSxFbihsLDc0NTEz''@;'; put 'put ''KX0sZnVuY3Rpb24gamllKGwpe3ZhciBjO0VuKGx8PTAsNzU0MTgpLEVuKGwsMHxxVCgwfGFbYVthWyhjPWwrMTJ8MCk+PjJdPj4yXT4+Ml0pKSxFbihsLDc4MTgxKSxFbihsLDB8cVQoMHxhWzQrKDB8YVthW2M+PjJdPj4yXSk+PjJdKSksRW4obCw3ODE5MSksRW4obCwwfHFUKDB8YVs4Kygw''@;'; put 'put ''fGFbYVtjPj4yXT4+Ml0pPj4yXSkpLEVuKGwsNzU0MzQpfSxmdW5jdGlvbiByWShsKXt2YXIgZixwLGM9MDtwPWxlLGxlPWxlKzE2fDAsZj1wLGM9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3NTM5NSksMHxmZVsoMHx0aSgwfGFbKGM9Yys4fDApPj4yXSkpPj4wXSYmKEVuKGwsNzUzOTcpLEVu''@;'; put 'put ''KGwsMHxxVCgwfHRpKDB8YVtjPj4yXSkpKSksYVtmPj4yXT0wfEFyKDB8YVtsKzE2OD4+Ml0sMHxhW2wrMTY0Pj4yXSksT3IobCw3NTQwNixmKSxhWzQ2NzIzXT0wLGxlPXB9LGZ1bmN0aW9uIFM3ZShsKXthWzQ2NzIzXT0xfSxmdW5jdGlvbiBNN2UobCl7YVs0NjcyM109LTF9LGZ1bmN0aW9u''@;'; put 'put ''IE83ZShsKXt2YXIgYztFbihsfD0wLDc4MTUzKSxFbihsLDc4MTYxKSxFbihsLDB8bmkoMHxhW2FbYVsoYz1sKzEyfDApPj4yXT4+Ml0+PjJdKSksRW4obCw3ODE4MSksRW4obCwwfG5pKDB8YVs0KygwfGFbYVtjPj4yXT4+Ml0pPj4yXSkpLEVuKGwsNzgxOTEpLEVuKGwsMHxuaSgwfGFbOCso''@;'; put 'put ''MHxhW2FbYz4+Ml0+PjJdKT4+Ml0pKSxFbihsLDc4MTk0KX0sZnVuY3Rpb24gUjdlKGwpe3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO3c9bGUsbGU9bGUrMzJ8MCxBPXcrMjR8MCxtPXcrMTZ8MCxwPXcrOHwwLGY9dyxjPTB8YVsxNisobHw9MCk+PjJdLGFbNDY3MjddPX5+KCtfW2wrMjMyPj4z''@;'; put 'put ''XS0rX1tsKzIxNj4+M10pLGFbNDY3MjZdPX5+KCtfW2wrMjI0Pj4zXS0rX1tsKzIwOD4+M10pLEVuKGwsNzY4NDApLEVuKGwsNzY4NDcpLGM9MHx0aSgwfGFbYys4Pj4yXSksMHxmZVtjPj4wXSYmKEVuKGwsNzY5MTYpLEVuKGwsMHxuaShjKSksRW4obCw3NjkyNCkpLGFbZj4+Ml09MHxBcigw''@;'; put 'put ''fGFbbCsxNjg+PjJdLDB8YVtsKzE2ND4+Ml0pLE9yKGwsNzY5MzMsZiksRW4obCw3Njk1MyksRW4obCw3Njk4OCksRW4obCw3NzAxNiksRW4obCw3NzAyMiksRW4obCw3NzA2NSksRW4obCw3NzEwNiksRW4obCw3NzEyNSksRW4obCw3NzE0MiksRW4obCw3NzE5MCksRW4obCw3NzI0MyksRW4o''@;'; put 'put ''bCw3NzMxOSksRW4obCw3NzM5NSksRW4obCw3NzQwNCksRW4obCw3NzQyNyksRW4obCw3NzQ1NCksRW4obCw3NzUwNyksRW4obCw3NzUyOSksRW4obCw3NzU3NCksRW4obCw3NzU4NiksRW4obCw3NzU5NiksRW4obCw3NzYyMiksRW4obCw3NzUwNyksRW4obCw3NzY3NCksRW4obCw3NzU3NCks''@;'; put 'put ''RW4obCw3NzU4NiksRW4obCw3NzcxOCksRW4obCw3NzQyNyksRW4obCw3NzQ1NCksRW4obCw3NzUwNyksRW4obCw3NzY3NCksRW4obCw3NzU3NCksRW4obCw3NzU4NiksRW4obCw3NzU5NiksRW4obCw3NzYyMiksRW4obCw3NzUwNyksRW4obCw3NzUyOSksRW4obCw3NzU3NCksRW4obCw3NzU4''@;'; put 'put ''NiksRW4obCw3NzczMSksRW4obCw3NzczOSksRW4obCw3Nzc0NSksRW4obCw3Nzc1OSksRW4obCw3Nzc2NyksRW4obCw3NzgwMCksZj0xMCsoMHxhWzQ2NzI3XSl8MCxhW3A+PjJdPWFbNDY3MjZdLGFbcCs0Pj4yXT1mLE9yKGwsNzc4NzcscCksRW4obCw3NzkwNyksRW4obCw3NzkxNiksRW4o''@;'; put 'put ''bCw3Nzk3NCksRW4obCw3Nzk4NCksRW4obCw3ODA0OSkscD0wfGFbNDY3MjddLGFbbT4+Ml09YVs0NjcyNl0sYVttKzQ+PjJdPXAsT3IobCw3ODA4NixtKSxtPTB8YVs0NjcyN10sYVtBPj4yXT1hWzQ2NzI2XSxhW0ErND4+Ml09bSxPcihsLDc4MTE0LEEpLGxlPXd9LGZ1bmN0aW9uIEI3ZShs''@;'; put 'put ''KXtFbihsfD0wLDc2MzkxKSxFbihsLDc2NDAzKSxFbihsLDc2NDExKSxFbihsLDc2NDc0KSxFbihsLDc2NDAzKSxFbihsLDc2NTE5KSxFbihsLDc2NTY4KSxFbihsLDc2NjIyKSxFbihsLDc2NDAzKSxFbihsLDc2NzIyKSxFbihsLDc2NzcxKSxFbihsLDc2NDAzKSxFbihsLDc2ODIzKX0sZnVu''@;'; put 'put ''Y3Rpb24gRjdlKGwpe0VuKGx8PTAsNzYzNDMpfSxmdW5jdGlvbiBqN2UobCl7dmFyIGMsZixwO2M9bGUsbGU9bGUrMTZ8MCxmPWMrOHwwLHA9YyxFbihsfD0wLDgwNDUxKSxFbihsLDgwNDY2KSxFbihsLDgwNTA1KSxFbihsLDgwNTU0KSxhW3A+PjJdPTEzNzMxNCxhW3ArND4+Ml09ODA2NDIs''@;'; put 'put ''T3IobCw4MDYyMyxwKSxhW2Y+PjJdPTEzNzE5OCxhW2YrND4+Ml09ODA2NDgsT3IobCw4MDYyMyxmKSxsZT1jfSxmdW5jdGlvbiBWMihsKXt2YXIgYyxmLHAsbSxBLHcsYjtjPWxlLGxlPWxlKzY0fDAsZj1jKzh8MCxhWyhiPWMpPj4yXT0wfHRpKDB8YVs4KygwfGFbMTYrKGx8PTApPj4yXSk+''@;'; put 'put ''PjJdKSxPcihsLDc5NDA0LGIpLEE9LjUqK19bbCszNzY+PjNdKitfW2wrNDk2Pj4zXSxtPTE4MCorWmYoLjAwMjAwMDAwMDA5NDk5NDkwMjYqKHc9LjUqK19bbCszNjg+PjNdKitfW2wrNDg4Pj4zXSkpKi42MzY2MTk3NzIzNjc1ODE0LHA9MTgwKitaZiguMDAyMDAwMDAwMDk0OTk0OTAyNipB''@;'; put 'put ''KSouNjM2NjE5NzcyMzY3NTgxNCxfW2Y+PjNdPXcsX1tmKzg+PjNdPUEsX1tmKzE2Pj4zXT0tNTAwLF9bZisyND4+M109dyxfW2YrMzI+PjNdPUEsX1tmKzQwPj4zXT0wLF9bZis0OD4+M109MS4yKihtPnA/bTpwKSxPcihsLDc5NDI2LGYpLEVuKGwsNzk1NzMpLEVuKGwsODA0MDMpLGxlPWN9''@;'; put 'put ''LGZ1bmN0aW9uIFo3ZShsKXtFbihsfD0wLDc5Mzg3KX0sZnVuY3Rpb24gbm8obCl7RW4obHw9MCw3OTM0MCl9LGZ1bmN0aW9uIEc3ZShsKXtFbihsfD0wLDc5MzIyKX0sZnVuY3Rpb24gYVkobCl7RW4obHw9MCw3OTMwNil9LGZ1bmN0aW9uIFc3ZShsKXtFbihsfD0wLDc5Mjg1KSxqbls0Njcy''@;'; put 'put ''OF09K2puWzQ2NzI4XS0yfSxmdW5jdGlvbiBsWShsKXtFbihsfD0wLDc5MjY2KX0sZnVuY3Rpb24gR2llKGwpe3ZhciBjLGY7Yz1sZSxsZT1sZSsxNnwwLGFbKGY9Yyk+PjJdPTB8dGkoMHxhWzgrKDB8YVsxNisobHw9MCk+PjJdKT4+Ml0pLE9yKGwsNzkyNDQsZiksbGU9Y30sZnVuY3Rpb24g''@;'; put 'put ''WTdlKGwpe0VuKGx8PTAsNzkyMjgpfSxmdW5jdGlvbiBVN2UobCl7RW4obHw9MCw3OTIxMCksam5bNDY3MjhdPStqbls0NjcyOF0tNX0sZnVuY3Rpb24gUTdlKGwpe0VuKGx8PTAsNzkxOTQpLGpuWzQ2NzI4XT0ram5bNDY3MjhdKzV9LGZ1bmN0aW9uIHE3ZShsKXt2YXIgYyxmLHAsQSxiLGss''@;'; put 'put ''bT0wLHc9MDtjPWxlLGxlPWxlKzMyfDAsZj1jKzI0fDAscD1jKzE2fDAsbT0wfGFbMTYrKGx8PTApPj4yXSxrPTB8YVsodz0wfGFbYVtsKzEyPj4yXT4+Ml0pPj4yXSxiPTB8YVt3KzQ+PjJdLHc9MHxhW3crOD4+Ml0sYVsoQT1jKT4+Ml09ODEwOTQsYVtBKzQ+PjJdPWssYVtBKzg+PjJdPWIs''@;'; put 'put ''YVtBKzEyPj4yXT13LE9yKGwsODM3MDQsQSksbT0wfHRpKDB8YVttKzg+PjJdKSxhW3A+PjJdPTgxMDk0LGFbcCs0Pj4yXT1tLE9yKGwsODM3MzYscCksYVtmPj4yXT04MTA5NCxPcihsLDgzNzUwLGYpLGxlPWN9LGZ1bmN0aW9uIGV2ZShsKXt2YXIgYyxmO2x8PTAsYz1sZSxsZT1sZSsxNnww''@;'; put 'put ''LGFbKGY9Yyk+PjJdPTgxMDk0LE9yKGwsODM2NTIsZiksbGU9Y30sZnVuY3Rpb24gdHZlKGwpe3ZhciBmLG0sQSx3LGIsTSxELFIsRyxxLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLGF0LFN0LGt0LHN0LEV0LFp0LGN0LGJ0LGFuLFNuLEhuLHVyLEhyLEVyLGZyLERyLEpyLExy''@;'; put 'put ''LGwwLFZpLGM9MCxwPTAsaz0wO1ZpPWxlLGxlPWxlKzMwNHwwLGwwPVZpKzI5NnwwLExyPVZpKzI4OHwwLEpyPVZpKzI3MnwwLGZyPVZpKzI2NHwwLEVyPVZpKzI1NnwwLEhyPVZpKzI0OHwwLHVyPVZpKzI0MHwwLEhuPVZpKzIzMnwwLFNuPVZpKzIyNHwwLGFuPVZpKzIxNnwwLGJ0PVZpKzIw''@;'; put 'put ''OHwwLGN0PVZpKzIwMHwwLFp0PVZpKzE5MnwwLEV0PVZpKzE4NHwwLHN0PVZpKzE3NnwwLGt0PVZpKzE2OHwwLFN0PVZpKzE2MHwwLGF0PVZpKzE1MnwwLHJ0PVZpKzE0NHwwLHFlPVZpKzEzNnwwLFZlPVZpKzEyOHwwLEhlPVZpKzEyMHwwLFJlPVZpKzExMnwwLExlPVZpKzEwNHwwLE9lPVZp''@;'; put 'put ''Kzk2fDAsYmU9VmkrODh8MCxnZT1WaSs4MHwwLHBlPVZpKzcyfDAscT1WaSs2NHwwLEc9VmkrNTZ8MCxSPVZpKzQ4fDAsRHI9VmkrNDB8MCxXZT1WaSsyNHwwLEQ9VmkrMTZ8MCxNPVZpLEE9MHxhWzQ1NisobHw9MCk+PjJdLHc9MHxhW2wrNDYwPj4yXSxiPTB8YVtsKzQ2ND4+Ml0saz0wfGFb''@;'; put 'put ''bCs0Njg+PjJdLG09bCszNjB8MDtlOmRve2lmKDB8YVs0MDI1XSl7c3dpdGNoKDB8YVttPj4yXSl7Y2FzZSA5MDpjYXNlIDA6YnJlYWsgZX1VQSgpLGFbNDAyNV09MH19d2hpbGUoMCk7cD0uMDEzODg4ODg4ODg4ODg4ODg4KigrKDB8ayktKygwfHcpKSxjPS4wMTM4ODg4ODg4ODg4ODg4ODgq''@;'; put 'put ''KCsoMHxiKS0rKDB8QSkpLGY9KGs9OTA9PSgwfGFbbT4+Ml0pKT9wOmMscD1rP2M6cCxfW00+PjNdPWYsX1tNKzg+PjNdPXAsT3IobCw4MTI4MSxNKSxhW0Q+PjJdPTgxMDk0LE9yKGwsODEyOTYsRCksZj4wPyhjPStmdW5jdGlvbiBqdWUobCl7dmFyIGM9MCxmPTAscD0wLG09MCxBPTAsdz0w''@;'; put 'put ''LGI9MCxrPTAsTT0wO19bU2k+PjNdPWw9K2wsYz0wfGFbU2k+PjJdLHA9KDB8KGY9MHxhW1NpKzQ+PjJdKSk8MDtkb3tpZihwfGY+Pj4wPDEwNDg1NzYpe2lmKDA9PSgwfGMpJjA9PSgyMTQ3NDgzNjQ3JmZ8MCkpe2w9LTEvKGwqbCk7YnJlYWt9aWYocCl7bD0obC1sKS8wO2JyZWFrfV9bU2k+''@;'; put 'put ''PjNdPTB4NDAwMDAwMDAwMDAwMDAqbCxmPTB8YVtTaSs0Pj4yXSxwPS0xMDc3LGM9MHxhW1NpPj4yXSxtPTk7YnJlYWt9Zj4+PjA8PTIxNDY0MzUwNzEmJigwPT0oMHxjKSYhMCYxMDcyNjkzMjQ4PT0oMHxmKT9sPTA6KHA9LTEwMjMsbT05KSl9d2hpbGUoMCk7cmV0dXJuIDk9PSgwfG0pJiYo''@;'; put 'put ''bT1mKzYxNDI0MnwwLGFbU2k+PjJdPWMsYVtTaSs0Pj4yXT0xMDcyMDc5MDA2KygxMDQ4NTc1Jm0pLEE9KE09KGs9KGI9K19bU2k+PjNdLTEpLyhiKzIpKSprKSpNLF9bU2k+PjNdPWItKHc9YiooLjUqYikpLGY9MHxhW1NpKzQ+PjJdLGFbU2k+PjJdPTAsYVtTaSs0Pj4yXT1mLEE9Yi0obD0r''@;'; put 'put ''X1tTaT4+M10pLXcrayoodysoQSooQSooLjE1MzEzODM3Njk5MjA5MzczKkErLjIyMjIyMTk4NDMyMTQ5Nzg0KSsuMzk5OTk5OTk5OTk0MDk0MikrTSooQSooQSooLjE0Nzk4MTk4NjA1MTE2NTg2KkErLjE4MTgzNTcyMTYxNjE4MDUpKy4yODU3MTQyODc0MzY2MjM5KSsuNjY2NjY2NjY2NjY2''@;'; put 'put ''NjczNSkpKSxsPShiPShrPS4zMDEwMjk5OTU2NjM2MTE3Nyoodz0rKHArKG0+Pj4yMCl8MCkpKSsoTT0uNDM0Mjk0NDgxODc4MTY4OSpsKSkrKE0rKGstYikrKC40MzQyOTQ0ODE4NzgxNjg5KkErKDM2OTQyMzkwNzcxNTg5MzFlLTI4KncrMjUwODI5NDY3MTE2NDUyNzVlLTI3KihBK2wpKSkp''@;'; put 'put ''KSwrbH0oZiksX1sxOTIxNF09YyxjPWMrMy0rKDB8fn5jKSk6Yz0zLGM9K3FsKDEwLCtjKSxfWzE5MjE0XT1jLF9bV2U+PjNdPWMsX1tXZSs4Pj4zXT1jLE9yKGwsODE0NjUsV2UpLGFbRHI+PjJdPTgxMDk0LE9yKGwsODE1MDAsRHIpLGFbUj4+Ml09ODEwOTQsT3IobCw4MTU1OCxSKSxhW0c+''@;'; put 'put ''PjJdPTgxMDk0LE9yKGwsODE2MTgsRyksYVtxPj4yXT04MTA5NCxPcihsLDgxNjY3LHEpLGFbcGU+PjJdPTgxMDk0LE9yKGwsODE3MDYscGUpLGFbZ2U+PjJdPTgxMDk0LE9yKGwsODE3NTcsZ2UpLGFbYmU+PjJdPTgxMDk0LE9yKGwsODE4MTksYmUpLGFbT2U+PjJdPTgxMDk0LE9yKGwsODE5''@;'; put 'put ''MjksT2UpLGFbTGU+PjJdPTgxMDk0LE9yKGwsODIwMjAsTGUpLGFbUmU+PjJdPTgxMDk0LE9yKGwsODIwNzQsUmUpLGFbSGU+PjJdPTgxMDk0LE9yKGwsODIxNDMsSGUpLE9yKGwsODIxNzksVmUpLGFbcWU+PjJdPTgxMDk0LE9yKGwsODIzMDQscWUpLGFbcnQ+PjJdPTgxMDk0LE9yKGwsODIz''@;'; put 'put ''MzMscnQpLE9yKGwsODIzNzMsYXQpLGFbU3Q+PjJdPTgxMDk0LE9yKGwsODI0NjYsU3QpLGFba3Q+PjJdPTgxMDk0LE9yKGwsODI1MjUsa3QpLGFbc3Q+PjJdPTgxMDk0LE9yKGwsODI2MDYsc3QpLE9yKGwsODI2NzYsRXQpLGFbWnQ+PjJdPTgxMDk0LE9yKGwsODI3NjUsWnQpLGFbY3Q+PjJd''@;'; put 'put ''PTgxMDk0LE9yKGwsODI4NzAsY3QpLGFbYnQ+PjJdPTgxMDk0LE9yKGwsODI5NDYsYnQpLGFbYW4+PjJdPTgxMDk0LE9yKGwsODI5ODUsYW4pLGFbU24+PjJdPTgxMDk0LE9yKGwsODMwODQsU24pLGFbSG4+PjJdPTgxMDk0LE9yKGwsODMxMzAsSG4pLE9yKGwsODMyMTksdXIpLGFbSHI+PjJd''@;'; put 'put ''PTgxMDk0LE9yKGwsODMyNjAsSHIpLGFbRXI+PjJdPTgxMDk0LE9yKGwsODMzNDMsRXIpLGFbZnI+PjJdPTgxMDk0LE9yKGwsODM0NDQsZnIpLF9bSnI+PjNdPXAsX1tKcis4Pj4zXT1mLE9yKGwsODM1MDgsSnIpLE9yKGwsODM1MzYsTHIpLE9yKGwsODM1NDQsbDApLGxlPVZpfSxmdW5jdGlv''@;'; put 'put ''biBhYShsKXt2YXIgYztjPWxlLGxlPWxlKzE2fDAsT3IobHw9MCw4MTI3NCxjKSxsZT1jfSxmdW5jdGlvbiBlMGUobCl7MHxHbyhsfD0wKSYmZnVuY3Rpb24gdDBlKGwpe3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO2lmKHc9bGUsbGU9bGUrNDh8MCxBPXcrMzJ8MCxtPXcsYz0wfHhjKGx8PTAs''@;'; put 'put ''LTEsOCksZj0wfFMxKGwsMCxtKSxhNyhsLDIsOCxtKSwocD0oMHxjKTwwKSYoZj0wPT0oMHxmKSkpaDcobCk7ZWxzZXtmP2FbbSsxNj4+Ml09MzpjPXA/ODpjLGFbbSs4Pj4yXT1jLGFbbSsyMD4+Ml09MCxwPTB8R21lKGwsQSwwKSxjPTB8YVtBPj4yXTtkb3tpZigxPT0oMHxjKSloNyhsKSxj''@;'; put 'put ''PTA7ZWxzZXtpZigwfGFbODQrKDB8YVs4KygwfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKXtoNyhsKSxjPTA7YnJlYWt9Zm9yKGFbbSsxMj4+Ml09MSxmPTA7ISgoMHxmKT49KDB8YykpOyluMGUoYz0wfGFbcCsoZjw8Mik+PjJdLGwpLGg3KGMpLGY9ZisxfDAsYz0wfGFbQT4+Ml07cjBlKGwpLFRD''@;'; put 'put ''KDB8YVtBPj4yXSxwLGwsbSkscFkobCksaTBlKDB8YVtBPj4yXSxwLGwpLGM9MH19d2hpbGUoMCk7Zm9yKDshKCgwfGMpPj0oMHxhW0E+PjJdKSk7KUZ0KDB8YVs4KygwfGFbMTYrKDB8YVsobT1wKyhjPDwyKXwwKT4+Ml0pPj4yXSk+PjJdKSxONSgwfGFbbT4+Ml0pLG9pKGwsMHxhW20+PjJd''@;'; put 'put ''KSxjPWMrMXwwO0Z0KHApfWxlPXd9KGwpLHQ0KGwpfSxINSxBMixmdW5jdGlvbiBHbGUobCl7dmFyIGM9MCxmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWFnKGMpLGM9MHxTMChsLGMpO29nKGYpLGY9MHx6dChsLGYpfSFmdW5jdGlvbiBXbGUobCl7bHw9MCww''@;'; put 'put ''IT0oMHxhWzQ3MTM0XSl8KDB8YVs0Njc5NV0pPDAmJmVWKGwpLCgwfGRpKGwpKSE9KDB8bCkmJmwyKGwsMCwxMzc0ODMpfShsKX0sZnVuY3Rpb24gU2sobCl7bHw9MDt2YXIgcCxtLGM9MCxmPTAsQT0wLHc9MCxiPTA7Zm9yKHc9NCxBPTB8RjAoNDApLGFbQT4+Ml09MCxtPStfWzIzMjkzXSxN''@;'; put 'put ''bj0wLHA9K0NoKDEsMHxsKSxjPU1uLE1uPTAsMCE9KDB8YykmMCE9KDB8eG4pPygoZj0wfGdpKDB8YVtjPj4yXSwwfEEsMHx3KSl8fHplKDB8YywwfHhuKSxEbj14bik6Zj0tMSwxIT0oMHxmKT8oX1syMzI5M109cCxNbj0wLHNzKDEwMiwwfGwpLGM9TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4''@;'; put 'put ''bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpPyhBPTB8UGYoMTg3MjEyLDEsMHxBLDB8dyksdz1EbixmPU1uPTAsTW49MCwwIT0oMHxmKSYwIT0oMHx4bik/KChjPTB8Z2koMHxhW2Y+PjJdLDB8QSwwfHcpKXx8emUoMHxm''@;'; put 'put ''LDB8eG4pLERuPXhuKTpjPS0xLGM9MSE9KDB8Yyk/MDpEbik6Yz1Ebik6Yz1EbjshKDB8Yyk7KWlmKE1uPTAsc3MoMTAzLDB8bCksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgwfGFbYz4+Ml0sMHxBLDB8dykpfHx6ZSgwfGMsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8''@;'; put 'put ''ZikpaWYoTW49MCxhMCgyMiwwfGwpLGM9TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDEhPSgwfGYpKWlmKDE0Jml0WzEzNisoMHxhW2wrMTY+PjJdKT4+MV0mJihNbj0wLHNzKDEwNCwwfGwp''@;'; put 'put ''LGM9TW4sTW49MCwwIT0oMHxjKSYwIT0oMHx4bik/KChmPTB8Z2koMHxhW2M+PjJdLDB8QSwwfHcpKXx8emUoMHxjLDB8eG4pLERuPXhuKTpmPS0xLDE9PSgwfGYpKSljPURuO2Vsc2V7aWYoTW49MCxaMSgyMiwwfGwsMCksYz1NbixNbj0wLDAhPSgwfGMpJjAhPSgwfHhuKT8oKGY9MHxnaSgw''@;'; put 'put ''fGFbYz4+Ml0sMHxBLDB8dykpfHx6ZSgwfGMsMHx4biksRG49eG4pOmY9LTEsMSE9KDB8Zikpe2I9MTI7YnJlYWt9Yz1Ebn1lbHNlIGM9RG47ZWxzZSBjPURuOzEyPT0oMHxiKSYmKF9bMjMyOTNdPW0pLEZ0KDB8QSl9LGZ1bmN0aW9uIEVzZShsKXt2YXIgYz0wLGY9MDtmb3IoZj0wfER0KGx8''@;'; put 'put ''PTApO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspYWcoYyksYz0wfFMwKGwsYyk7b2coZiksZj0wfHp0KGwsZil9IWZ1bmN0aW9uIHhzZShsKXtzWChsfD0wKSxGdCgwfGFbMTUyKygwfGFbKGw9bCsxNnwwKT4+Ml0pPj4yXSksRnQoMHxhWzE0MCsoMHxhW2w+PjJdKT4+Ml0pfShsKX0sZnVuY3Rp''@;'; put 'put ''b24gQVgobCl7dmFyIGIsayxNLEQsRyxxLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLFI9MDtpZihxPWxlLGxlPWxlKzExMnwwLGI9cSs0MHwwLGs9cSsxNnwwLEc9cSsxMDB8MCxNPXEsQT1xKzg4fDAsRD1xKzU2fDAsZnVuY3Rpb24gWXNlKGwpe3ZhciBjLGY9MDtyNChsfD0wLDIpLGM9MHxl''@;'; put 'put ''cyhsLDB8c2kobCwwLDkxMzY4LDApLDIsMiksZj02NTUzNSYoMHxlcyhsLDB8c2kobCwwLDkxMzc0LDApLGMsMikpLGl0WzE3NisoMHxhWzE2KygwfGRpKGwpKT4+Ml0pPj4xXT1mLGY9KDB8aHJbMTc2KygwfGFbMTYrKDB8ZGkobCkpPj4yXSk+PjFdKTwxMD8wfGl0WzE3NisoMHxhWzE2Kygw''@;'; put 'put ''fGRpKGwpKT4+Ml0pPj4xXToxMCxpdFsxNzYrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+MV09ZixhWzQ3MTM3XT1mJj02NTUzNSxpdFsxNzgrKDB8YVsxNisoMHxkaShsKSk+PjJdKT4+MV09KDB8Yyk8KDB8Zik/YzpmLGZ1bmN0aW9uIHdYKGwpe3ZhciBjPTAsZj0wO2ZvcihjPTB8RHQobHw9''@;'; put 'put ''MCk7Yzspd2soYyksYz0wfHp0KGwsYyk7Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWJYKGMpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX0obCl9KGx8PTApLGM9MSYobT0yPT0oMHxhWzQ3MTM3XSkpLDB8R28obCkpe2lmKGZ1bmN0aW9uIFVzZShsLGMpe2x8PTA7dmFy''@;'; put 'put ''IHAsbSxBLGY9MDtBPWxlLGxlPWxlKzE2fDAsbT1BKzh8MCxhWyhmPUErMTJ8MCk+PjJdPWFbKHA9MTA4KyhjfD0wKXwwKT4+Ml0sMiE9KDB8SE4obCwyLGYpKSYmJHIoMCw5MTE2OSxBKSxhW3A+PjJdPWFbZj4+Ml0sX1tjKzI0Pj4zXT0rTWwobCwwfHNpKGwsMCw5MTIwMiwwKSwtMSwwKSxf''@;'; put 'put ''W2M+PjNdPS0rTWwobCwwfHNpKGwsMCw5MTIwNCwwKSwxLjAwMDEyMzQsMCksYVtjKzQwPj4yXT0wfGVzKGwsMHxzaShsLDAsOTEyMTksMCksMjE0NzQ4MzY0NywwKSxhW2MrMTIwPj4yXT0wfGZ1bmN0aW9uIEpzZShsLGMpe2x8PTAsY3w9MDtkb3tpZihjKXtpZihsPTB8SG8obCxjKSwoKGM9''@;'; put 'put ''MHxmZVtsPj4wXSktNDh8MCk+Pj4wPDEwKXtsPSgwfChsPTB8cjMobCkpKTw1P2w6MDticmVha31sPTB8dkwoYyk/MHx5MChsLDkxMzMwKT8wfHkwKGwsOTEzMzkpPzB8eTAobCwxMzU3MDkpPzB8eTAobCw5MTM1MCk/KGw9MD09KDB8eTAobCw5MTM2MSkpKT80OjA6MzowOjE6MjowfWVsc2Ug''@;'; put 'put ''bD0wfXdoaWxlKDApO3JldHVybiAwfGx9KGwsMHxzaShsLDAsOTEyMjYsMCkpLGFbYysxMzI+PjJdPTB8ZnVuY3Rpb24gWHNlKGwsYyl7bHw9MCxjfD0wO2Rve2lmKGMpe2lmKGw9MHxIbyhsLGMpLCgoYz0wfGZlW2w+PjBdKS00OHwwKT4+PjA8MTApe2w9KGw9MHxyMyhsKSk+Pj4wPDM/bDox''@;'; put 'put ''O2JyZWFrfWw9MHx2TChjKT8wIT0oMHx5MChsLDEzNTcwOSkpJiYwIT0oMHx5MChsLDEzNzMwOCkpPzAhPSgwfHkwKGwsOTk3MzApKSYmMCE9KDB8eTAobCwxMDc2NTIpKSYmMCE9KDB8eTAobCwxMDc2NTcpKSYmKGw9MD09KDB8eTAobCw5MTMyNSkpKT8yOjE6MDoxfWVsc2UgbD0xfXdoaWxl''@;'; put 'put ''KDApO3JldHVybiAwfGx9KGwsMHxzaShsLDAsOTEyMzYsMCkpLGFbYysxMzY+PjJdPTAsYVtjKzExMj4+Ml09MjU1JigwfG5nKDB8TGkobCw5MTI0NSksMCkpLGFbYysxMjg+PjJdPTI1NSYoMHxuZygwfExpKGwsOTEyNTQpLDEpKSxfW2MrMTUyPj4zXT0rTWwobCwwfHNpKGwsMCw5MTI2OSww''@;'; put 'put ''KSwwLC0xNzk3NjkzMTM0ODYyMzE1N2UyOTIpLGY9MHxlcyhsLDB8c2kobCwwLDkxMjc4LDApLDAsMCksYVsobD1jKzE2MHwwKT4+Ml09ZiwoMHxmKT40JiYoYVttPj4yXT1mLCRyKDAsOTEyOTEsbSksYVtsPj4yXT0wKSxsZT1BfShsLFI9MHxLc2UoKSksYzJlKGwsaywwKSxtJjE4PT0oMHxh''@;'; put 'put ''W2s+PjJdKT8oYVtSKzEyND4+Ml09YVtrKzg+PjJdLF9bUisxNDQ+PjNdPStfW2srMTY+PjNdLFc3KEEsbCksMHxmZVtBKzg+PjBdPyhwPS4wMTM4ODg4ODg4ODg4ODg4ODgqK2puW0ErND4+Ml0sZj0uMDEzODg4ODg4ODg4ODg4ODg4KitqbltBPj4yXSk6KHA9LjA1NTU1NTU1NTU1NTU1NTU1''@;'; put 'put ''LGY9LjA1NTU1NTU1NTU1NTU1NTU1KSxfW00+PjNdPWYsX1tNKzg+PjNdPXAsYz0wKTphW1IrMTI0Pj4yXT0tMSx3PTB8clcobCxHLDApLDE9PSgwfGFbRz4+Ml0pKWFbYj4+Ml09YVtNPj4yXSxhW2IrND4+Ml09YVtNKzQ+PjJdLGFbYis4Pj4yXT1hW00rOD4+Ml0sYVtiKzEyPj4yXT1hW00r''@;'; put 'put ''MTI+PjJdLHlYKGwsUixiKSwwfGMmJno3KGwsayksSzYobCksYz0wO2Vsc2V7Zm9yKGE3KGwsMiw4LEQpLGFbRCsxMj4+Ml09MSxBPTA9PSgwfGMpLG09MDshKCgwfG0pPj0oMHwoYz0wfGFbRz4+Ml0pKSk7KXhDKGM9MHxhW3crKG08PDIpPj4yXSksYVtiPj4yXT1hW00+PjJdLGFbYis0Pj4y''@;'; put 'put ''XT1hW00rND4+Ml0sYVtiKzg+PjJdPWFbTSs4Pj4yXSxhW2IrMTI+PjJdPWFbTSsxMj4+Ml0seVgoYyxSLGIpLEF8fHo3KGMsaykscjQoYywyKSxLNihjKSxtPW0rMXwwO1RDKGMsdyxsLEQpLGM9MH1mb3IoOyEoKDB8Yyk+PSgwfGFbRz4+Ml0pKTspb2kobCwwfGFbdysoYzw8Mik+PjJdKSxj''@;'; put 'put ''PWMrMXwwO0Z0KHcpLHBWKFIpfXQ0KGwpLGxlPXF9LGZ1bmN0aW9uIGU4KGwpe3ZhciBjPTAsZj0wO2ZvcihmPTB8RHQobHw9MCk7Zjspe2ZvcihjPTB8dzAobCxmKTtjOylhZyhjKSxjPTB8UzAobCxjKTtvZyhmKSxmPTB8enQobCxmKX19LGZ1bmN0aW9uIG1zZShsKXt2YXIgUixnZSxiZSxj''@;'; put 'put ''PTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsRz0wLHE9MCxwZT0wO2lmKGJlPWxlLGxlPWxlKzgwfDAsaz1iZSszMnwwLEE9YmUrMjR8MCxtPWJlKzE2fDAsdz1iZSxnZT1iZSs3MnwwLFI9YmUrNDB8MCwwfEdvKGx8PTApKXtpZihmdW5jdGlvbiBfdmUobCl7cjQobHw9''@;'; put 'put ''MCwyKSxpdFsxNzYrKDB8YVtsKzE2Pj4yXSk+PjFdPTIsYVs0NzEzN109MixmdW5jdGlvbiBGNyhsKXt2YXIgcCxtLGM9MCxmPTA7Zm9yKHA9MHx2cig1NiooYz0wfEdvKGx8PTApKXwwKSxjPTB8dnIoNCsoYzw8Mil8MCksYVsxNTIrKDB8YVsobT1sKzE2fDApPj4yXSk+PjJdPWMsYz0wfER0''@;'; put 'put ''KGwpLGY9MDtjOyl3ayhjKSxhWzExMisoMHxhW2MrMTY+PjJdKT4+Ml09cCsoNTYqZnwwKSxhWygwfGFbMTUyKygwfGFbbT4+Ml0pPj4yXSkrKGY8PDIpPj4yXT1jLGM9MHx6dChsLGMpLGY9ZisxfDA7Zm9yKGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KWdzZShjKSxjPTB8UzAo''@;'; put 'put ''bCxjKTtmPTB8enQobCxmKX19KGwpfShsKSwocD0wfExpKGwsOTU3MzgpKT8wfGZlW3A+PjBdPyhjPTB8R3IobCxwLDApKT9wZT0wOihhW20+PjJdPXAsJHIoMCw5MDQ0OCxtKSwkcigzLDkwNDg4LEEpLGM9MCxwZT0xKTooYz0wLHBlPTEpOihjPTAscGU9MCksRD0wIT0oMHwoTT0wfHNpKGws''@;'; put 'put ''MSw5NTczOCwwKSkpLDB8KHA9MHxMaShsLDE0MDc0MikpJiYwfGZlW3A+PjBdJiYoYj13Kzh8MCxhW2s+PjJdPXcsYVtrKzQ+PjJdPWIsMT09KDB8aWwocCwxMDU1MDMsaykpKSYmKF9bYj4+M109K19bdz4+M10pLDB8R28obCkpe2lmKGs9MHxyVyhsLGdlLDApLDE9PSgwfGFbZ2U+PjJdKSl7''@;'; put 'put ''bT0wIT0oMHxjKTtkb3tpZihtKWY9YztlbHNle2lmKEQmJjB8KGY9MHx2c2UobCxNKSkpYnJlYWs7Zj0wfX13aGlsZSgwKTtwPTB8cVYobCxmKSwwIT0oMHxmKXwxXkR8fFZsKHAsTSwxNDI0NjMpLHE9MTYrKDB8RHQobCkpfDAsRnQoMHxhWzExMisoMHxhW3E+PjJdKT4+Ml0pLGFbMTEyKygw''@;'; put 'put ''fGFbcT4+Ml0pPj4yXT0wLEx5KGwpLEs2KGwpLGM9MD09KDB8cGUpfG0/YzpwfWVsc2V7Zm9yKGE3KGwsMiw4LFIpLGFbUisxMj4+Ml09MCxiPTA9PSgwfHBlKSx3PTA7ISgoMHx3KT49KDB8YVtnZT4+Ml0pKTspe209MHxhW2srKHc8PDIpPj4yXSwoZj0wIT0oMHxjKSkmJjAhPSgwfE5yKG0s''@;'; put 'put ''YykpP3A9YzpxPTIzO2Rve2lmKDIzPT0oMHxxKSl7aWYocT0wLEQmJjB8KEc9MHx2c2UobSxNKSkpe3A9RzticmVha31wPTB9fXdoaWxlKDApO3hDKG0pLEE9MHxxVihtLHApLGM9YnxmP2M6QSxEJiYwPT0oMHxwKXwoMHxwKT09KDB8YykmJlZsKEEsTSwxNDI0NjMpLEx5KG0pLHc9dysxfDB9''@;'; put 'put ''cT0xNisoMHxEdChsKSl8MCxGdCgwfGFbMTEyKygwfGFbcT4+Ml0pPj4yXSksYVsxMTIrKDB8YVtxPj4yXSk+PjJdPTAsVEMoMHxhW2dlPj4yXSxrLGwsUiksSzYobCl9Zm9yKGY9MDshKCgwfGYpPj0oMHxhW2dlPj4yXSkpOylvaShsLDB8YVtrKyhmPDwyKT4+Ml0pLGY9ZisxfDA7RnQoayl9''@;'; put 'put ''MHxwZSYma2MobCw5NTczOCwwfHRpKGMpKSx0NChsKX1sZT1iZX0sZnVuY3Rpb24gQ3ZlKGwpe3ZhciBjPTAsZj0wO2lmKDB8KGM9MHxEdChsfD0wKSkpe2Zvcig7Yzspe2ZvcihmPTB8dzAobCxjKTtmOylhZyhmKSxmPTB8UzAobCxmKTtvZyhjKSxjPTB8enQobCxjKX0hZnVuY3Rpb24gcUoo''@;'; put 'put ''bCl7RnQoMHxhWzE1MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSksKDB8ZGkobCkpIT0oMHxsKSYmbDIobCwwLDEzNzQ4Myl9KGwpfX0sZnVuY3Rpb24gdlgobCl7MHxHbyhsfD0wKSYmKGZ1bmN0aW9uIFd2ZShsKXtyNChsfD0wLDIpLGl0WzE3NisoMHxhW2wrMTY+PjJdKT4+MV09MixhWzQ3''@;'; put 'put ''MTM3XT0yLGZ1bmN0aW9uIGpzZShsKXt2YXIgcCxtLGM9MCxmPTA7Zm9yKHA9MHx2cigoMHxHbyhsfD0wKSk8PDIpLGM9MHx2cig0KygoMHxHbyhsKSk8PDIpfDApLGFbMTUyKygwfGFbKG09bCsxNnwwKT4+Ml0pPj4yXT1jLGM9MHxEdChsKSxmPTA7Yzspd2soYyksYVsxMTIrKDB8YVtjKzE2''@;'; put 'put ''Pj4yXSk+PjJdPXArKGY8PDIpLGFbKDB8YVsxNTIrKDB8YVttPj4yXSk+PjJdKSsoZjw8Mik+PjJdPWMsYz0wfHp0KGwsYyksZj1mKzF8MDtmb3IoZj0wfER0KGwpO2Y7KXtmb3IoYz0wfHcwKGwsZik7YzspWXZlKGMpLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfX0obCl9KGwpLGZ1bmN0aW9u''@;'; put 'put ''IHpzZShsKXt2YXIgcCx3LGM9MCxmPTAsbT0wLEE9MCxiPTA7aWYodz1sZSxsZT1sZSs0OHwwLGM9dyszMnwwLHA9dywwfEdvKGx8PTApKXtpZihBPTB8ZnVuY3Rpb24gWnNlKGwsYyl7bHw9MCxjfD0wO3ZhciBrLEQsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsTT0wO2ZvcihEPWxlLGxlPWxl''@;'; put 'put ''KzE2fDAsaz1ELGZlWyhNPUQrNHwwKT4+MF09MHxmZVsxODU5Nl0sZmVbTSsxPj4wXT0wfGZlWzE4NTk3XSxmZVtNKzI+PjBdPTB8ZmVbMTg1OThdLGZlW00rMz4+MF09MHxmZVsxODU5OV0saDAoTT0wfG9jKDkxMTU2LE0sMCksOTExNjQsMjgwLDEpLGFbMTQwKygwfGFbbCsxNj4+Ml0pPj4y''@;'; put 'put ''XT1NLGY9MHxEdChsKTtmOykwfGFbYVsxMTIrKDB8YVsocD1mKzE2fDApPj4yXSk+PjJdPj4yXXx8KGI9MHxVdmUoTSwwfHRpKGYpLGYpLGFbYVsxMTIrKDB8YVtwPj4yXSk+PjJdPj4yXT1iKSxmPTB8enQobCxmKTtmb3IocD0wfER0KGwpO3A7KXtmb3IoZj0wfHcwKGwscCk7ZjspKDB8KG09''@;'; put 'put ''MHxhW2FbMTEyKygwfGFbMTYrKDB8YVsoMz09KDB8KEE9MyZhW2Y+PjJdKSk/ZjpmKzQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0+PjJdKSkhPSgwfChBPTB8YVthWzExMisoMHxhWzE2KygwfGFbKDI9PSgwfEEpP2Y6ZistNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXT4+Ml0pKSYmaDAoMHxLYShNLG0s''@;'; put 'put ''QSwwLDEpLDEzNzQ2MCwxNzYsMSksZj0wfFMwKGwsZik7cD0wfHp0KGwscCl9Zm9yKGI9MHxyVyhNLGssMCkscD0wOyEoKDB8cCk+PSgwfGFbaz4+Ml0pKTspe2ZvcihmPTB8RHQoQT0wfGFbYisocDw8Mik+PjJdKTtmOyl7Zm9yKG09MHx3MChsLDB8YVthWzExMisoMHxhW2YrMTY+PjJdKT4+''@;'; put 'put ''Ml0+PjJdKTttOykoMHxmKSE9KDB8KHc9MHxhW2FbMTEyKygwfGFbMTYrKDB8YVsoMj09KDMmYVttPj4yXXwwKT9tOm0rLTQ4fDApKzQwPj4yXSk+PjJdKT4+Ml0+PjJdKSkmJihoMCh3PTB8S2EoTSxmLHcsMCwxKSwxMzc0NjAsMTc2LDEpLFpkKEEsdywxKSksbT0wfFMwKGwsbSk7Zj0wfHp0''@;'; put 'put ''KEEsZil9cD1wKzF8MH1mb3IoZj0wfER0KE0pO2Y7KXtmb3IocD0wfHcwKE0sZik7cDspbD0wfHZyKDgpLGFbMTIwKygwfGFbcCsxNj4+Ml0pPj4yXT1sLHA9MHxTMChNLHApO2Y9MHx6dChNLGYpfXJldHVybiBhW2M+PjJdPWFbaz4+Ml0sbGU9RCwwfGJ9KGwsYyksbT0wfGFbYz4+Ml0sYz0w''@;'; put 'put ''fGFbQT4+Ml0sMT09KDB8bSkpa3goYyxsKSxHc2UoMHxhW0E+PjJdKSxMeShsKTtlbHNle2ZvcihmPTB8YVtjKzYwPj4yXSxhNyhsLDIsOCxwKSxjPTA7ISgoMHxjKT49KDB8bSkpOylreChiPTB8YVtBKyhjPDwyKT4+Ml0sbCksTHkoYiksYz1jKzF8MDtmb3IoVEMobSxBLGYscCksYz0wOyEo''@;'; put 'put ''KDB8Yyk+PSgwfG0pKTspR3NlKDB8YVtBKyhjPDwyKT4+Ml0pLGM9YysxfDB9RnQoQSl9bGU9d30obCksRnQoMHxhWzExMisoMHxhWzE2KygwfER0KGwpKT4+Ml0pPj4yXSksSzYobCksdDQobCkpfSxmdW5jdGlvbiBRdmUobCl7dmFyIGM9MCxmPTAscD0wO2lmKDB8KGM9MHxEdChsfD0wKSkp''@;'; put 'put ''e2ZvcihmdW5jdGlvbiBXc2UobCl7dmFyIGM9MCxmPTA7Zm9yKGY9MHxEdChsfD0wKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KUZ0KDB8YVsxMjArKDB8YVtjKzE2Pj4yXSk+PjJdKSxjPTB8UzAobCxjKTtGdCgwfGFbMTEyKygwfGFbKGM9ZisxNnwwKT4+Ml0pPj4yXSksRnQoMHxhWzEzMiso''@;'; put 'put ''MHxhW2M+PjJdKT4+Ml0pLGY9MHx6dChsLGYpfUMxKGwpfSgwfGFbMTQwKygwfGFbKHA9bCsxNnwwKT4+Ml0pPj4yXSk7Yzspe2ZvcihmPTB8dzAobCxjKTtmOylhZyhmKSxmPTB8UzAobCxmKTtvZyhjKSxjPTB8enQobCxjKX1GdCgwfGFbMTUyKygwfGFbcD4+Ml0pPj4yXSksKDB8ZGkobCkp''@;'; put 'put ''IT0oMHxsKSYmbDIobCwwLDEzNzQ4Myl9fSxmdW5jdGlvbiBabGUobCl7bHw9MCxhWzQ3MTM0XT0xLEEyKGwpLGFbNDcxMzRdPTB9LGZ1bmN0aW9uIHpsZShsKXtsfD0wLGFbNDcxMzRdPTIsQTIobCksYVs0NzEzNF09MH0sZnVuY3Rpb24gZVgobCl7KGZ1bmN0aW9uIGt2ZShsKXthWzQ3MTQ3''@;'; put 'put ''XT0wfHNpKGx8PTAsMSwxMDgyMzAsMTA4MjM2KSxyNChsLDIpLGl0WzE3NisoMHxhW2wrMTY+PjJdKT4+MV09MixhWzQ3MTM3XT0yLHRYKGwsMCksZnVuY3Rpb24gU3ZlKGwpe3ZhciBtLEEsYz0wLGY9MCxwPTA7Zm9yKG09MHx2cigoMHxHbyhsfD0wKSk8PDIpLGM9MHx2cig0KygoMHxHbyhs''@;'; put 'put ''KSk8PDIpfDApLGFbMTUyKygwfGFbKEE9bCsxNnwwKT4+Ml0pPj4yXT1jLGM9MHxEdChsKSxmPTA7Yzspe2ZvcihoMChjLDEzNzQ0NywzMDQsMSksYVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdPW0rKGY8PDIpLGFbKDB8YVsxNTIrKDB8YVtBPj4yXSk+PjJdKSsoZjw8Mik+PjJdPWMsYVYoYyks''@;'; put 'put ''cD0wfHcwKGwsYyk7cDspTXZlKHApLHA9MHxTMChsLHApO2M9MHx6dChsLGMpLGY9ZisxfDB9fShsKX0pKGx8PTApLDA9PSgwfEdvKGwpKSYmISgwfGFbMTgwKygwfGFbbCsxNj4+Ml0pPj4yXSl8fChmdW5jdGlvbiBBSyhsKXt2YXIgYyxwLG0sZj0wO2M9bGUsbGU9bGUrMzJ8MCxwPWMsZj0w''@;'; put 'put ''fHNpKGx8PTAsMSw5NDEyMiwwKSxmPShsPTB8bzFlKGwsMHxzaShsLDAsOTQxMjIsMCksZiwwfHNpKGwsMCw5NDEyNywwKSkpKzE2fDAsZnVuY3Rpb24gRDllKGwsYyxmLHAsbSl7Zj0rZixwPStwLG09K20sX1sobHw9MCk+PjNdPWM9K2MsX1tsKzg+PjNdPWYsX1tsKzE2Pj4zXT1wLF9bbCsy''@;'; put 'put ''ND4+M109bX0ocCwwLDAsbT0rRDAoKygrX1tsPj4zXSsuMSkpLG0pLGFbZj4+Ml09YVtwPj4yXSxhW2YrND4+Ml09YVtwKzQ+PjJdLGFbZis4Pj4yXT1hW3ArOD4+Ml0sYVtmKzEyPj4yXT1hW3ArMTI+PjJdLGFbZisxNj4+Ml09YVtwKzE2Pj4yXSxhW2YrMjA+PjJdPWFbcCsyMD4+Ml0sYVtm''@;'; put 'put ''KzI0Pj4yXT1hW3ArMjQ+PjJdLGFbZisyOD4+Ml09YVtwKzI4Pj4yXSx5SyhsKSx3SyhsKSxhMWUobCksbGU9Y30obCksdDQobCkpfSxmdW5jdGlvbiB4dmUobCl7dmFyIGM9MCxmPTA7aWYoMHwoYz0wfER0KGx8PTApKSl7Zm9yKEZ0KDB8YVsxMTIrKDB8YVtjKzE2Pj4yXSk+PjJdKTtjOyl7''@;'; put 'put ''Zm9yKGY9MHx3MChsLGMpO2Y7KWFnKGYpLGY9MHxTMChsLGYpO29nKGMpLGM9MHx6dChsLGMpfSFmdW5jdGlvbiBUdmUobCl7RnQoMHxhWzE1MisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSksKDB8ZGkobCkpIT0oMHxsKSYmbDIobCwwLDEzNzQ4Myl9KGwpfX0sZnVuY3Rpb24gQXNlKGwpe3Zh''@;'; put 'put ''ciBjPTAsZj0wLHA9MDtpZihmdW5jdGlvbiB5c2UobCl7dmFyIGM9MCxmPTA7Zm9yKHI0KGx8PTAsMiksaXRbMTc2KygwfGFbbCsxNj4+Ml0pPj4xXT0yLGFbNDcxMzddPTIsYz0wfER0KGwpO2M7KXdrKGMpLGM9MHx6dChsLGMpO2ZvcihmPTB8RHQobCk7Zjspe2ZvcihjPTB8dzAobCxmKTtj''@;'; put 'put ''OyloMChjLDEzNzQ2MCwxNzYsMSksTDcoYyksYz0wfFMwKGwsYyk7Zj0wfHp0KGwsZil9fShsfD0wKSxyWChsLDApLHdzZShsLDApLGxWKGwsMCksMHxhWzg0KygwfGFbOCsoYz0wfGFbbCsxNj4+Ml0pPj4yXSk+PjJdKXtmb3IoYz0wfER0KGwpO2M7KV9bKGY9MHxhWzEzMisocD0wfGFbYysx''@;'; put 'put ''Nj4+Ml0pPj4yXSk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bcCsxNj4+M10sX1tmKzg+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bcCsyND4+M10sYz0wfHp0KGwsYyk7U0QobCwxKX1lbHNlKGM9MTQmaXRbYysxMzY+PjFdKTw8MTY+PjE2JiZrRChsLDY1NTM1JmMpO3Q0KGwpfSxm''@;'; put 'put ''dW5jdGlvbiBhWChsKXt2YXIgYz0wO2ZvcihjPTB8RHQobHw9MCk7Yzspb2coYyksYz0wfHp0KGwsYyk7bFgobCl9LGZ1bmN0aW9uIGdDKGwpe30sZnVuY3Rpb24gUmFlKGwpe2x8PTA7dmFyIHJ0LFdlLGF0LGt0LGFuLEhyLERyLEpyLExyLGwwLFZpLGM9MCxmPTAscD0wLG09MCxBPTAsdz0w''@;'; put 'put ''LGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLExlPTAsUmU9MCxIZT0wLFZlPTAscWU9MCxTdD0wLHN0PTAsRXQ9MCxadD0wLGN0PTAsYnQ9MCxTbj0wLEhuPTAsdXI9MCxFcj0wLGZyPTAsT2k9MDtWaT1sZSxsZT1sZSsxNDR8MCxrdD1WaSsxMTJ8MCxa''@;'; put 'put ''dD1WaSsxMDR8MCxXZT1WaSs5NnwwLGF0PVZpKzg4fDAsQT1WaSs4MHwwLERyPVZpKzY0fDAsTHI9VmkrNDh8MCxhbj1WaSs0MHwwLFNuPVZpKzMyfDAsdz1WaSsyNHwwLFI9VmkrMTZ8MCxydD1WaSsxMzZ8MCxxZT1WaSsxMjh8MCxzdD1WaSxsMD0wfHZyKDQ4KSxtPTE2MTY9PSgwfChFcj0w''@;'; put 'put ''fGFbOCsoMHxhWzgrKDB8YVsoSnI9bCsxNnwwKT4+Ml0pPj4yXSk+PjJdKSksZnI9MHxhW0VyPj4yXSxjPTB8YVtFcis0Pj4yXSxmPTB8YVtFcis4Pj4yXSxrPStfW0VyKzE2Pj4zXSxNPStfW0VyKzMyPj4zXSxEPStfW0VyKzI0Pj4zXSxmcnw9MjU1JigwfHQxKDB8TGkobCwxMDU1MTEpKSk7''@;'; put 'put ''ZG97aWYobSlwPTAsYj0wO2Vsc2V7aWYoIWZyKXtwPSsoMHx+figocD03MiorX1s0MCsoRXI9MHxhW0pyPj4yXSk+PjNdKSsocD49MD8uNTotLjUpKSksYj0rKDB8fn4oKGI9NzIqK19bRXIrMzI+PjNdKSsoYj49MD8uNTotLjUpKSk7YnJlYWt9KGI9K0ZhZShsKSk+MHx8KGI9KygwfH5+KChi''@;'; put 'put ''PTcyKigocD0rX1szMisoRXI9MHxhW0pyPj4yXSk+PjNdKTwoYj0rX1tFcis0MD4+M10pP3A6YikpKyhiPj0wPy41Oi0uNSkpKSkscD1ifX13aGlsZSgwKTtpZihFcj0wfGVzKGwsMHxhWzQ3MTYwXSxjLDApLEhyPStNbChsLDB8YVs0NzE2Ml0sMCwtMzYwKStrLGY/KFN0PWYsdXI9TSxIbj1E''@;'; put 'put ''KToodXI9K01sKGwsMHxhWzQ3MTYzXSwwLC0xMDApLFN0PTB8ZXMobCwwfGFbNDcxNTldLDQsMCksSG49K01sKGwsMHxhWzQ3MTY0XSwwLC0xMDApKSxhW0RyPj4yXT1hWyhmPTI0KyhjPTB8YVsxMDQrKDB8YVtKcj4+Ml0pPj4yXSl8MCk+PjJdLGFbRHIrND4+Ml09YVtmKzQ+PjJdLGFbRHIr''@;'; put 'put ''OD4+Ml09YVtmKzg+PjJdLGFbRHIrMTI+PjJdPWFbZisxMj4+Ml0sKEc9K19bRHI+PjNdKT4wP218fChFdD0xMSk6bXwhKCtfW0RyKzg+PjNdPjApfHwoRXQ9MTEpLDExPT0oMHxFdCkpe2M9MHxMaShsLDEwNTQ5Nik7ZG97aWYoYyl7aWYoX1tSPj4zXT0wLF9bdz4+M109MCxhW0E+PjJdPXcs''@;'; put 'put ''YVtBKzQ+PjJdPVIsYz0wfGlsKGMsMTA1NTAzLEEpLChrPStfW3c+PjNdKTwwJiYoX1t3Pj4zXT0wLGs9MCksKE09K19bUj4+M10pPDA/KF9bUj4+M109MCxEPTApOkQ9TSwoMHxjKTw9MCl7X1tEcj4+M109TT1HKzE2LGs9ODticmVha31fW0RyPj4zXT1NPUcrKGs9Kyh+figoayo9NzIpKyhr''@;'; put 'put ''Pj0wPy41Oi0uNSkpPDwxfDApKSwxIT0oMHxjKSYmKGs9Kyh+figoaz03MipEKSsoaz49MD8uNTotLjUpKTw8MXwwKSl9ZWxzZSBfW0RyPj4zXT1NPUcrMTYsaz04fXdoaWxlKDApO19bKGM9RHIrOHwwKT4+M109K19bYz4+M10rayxjPTB8YVsxMDQrKDB8YVtKcj4+Ml0pPj4yXSxHPU19cGU9''@;'; put 'put ''K19bYysyND4+M10sKGs9K19bYVs4KygwfGFbMTYrKDB8Y3IobCkpPj4yXSk+PjJdPj4zXSk+MD8oYnQ9K1hRKEcsY3Q9KygwfH5+KChjdD03MiprKSsoY3Q+PTA/LjU6LS41KSkpKSxfW0RyPj4zXT1idCxfWyhSPURyKzh8MCk+PjNdPStYUSgrX1tSPj4zXSxjdCkpOmJ0PUcsYz0wfGFbOCso''@;'; put 'put ''MHxhW0pyPj4yXSk+PjJdO2Rve2lmKDB8ZmVbYysxMj4+MF0pe2lmKDk5PT0oMHxmZVsoYz0wfGFbYz4+Ml0pPj4wXSkmJjA9PSgwfFppKGMsMTA1NTE5KSkpe2lmKGY9MHxMaShsLDEwNTUyNiksVUcocnQsMHxjcihsKSxmKSwtMT09KChtPTB8YVtydCs0Pj4yXSkmKGM9MHxhW3J0Pj4yXSl8''@;'; put 'put ''MCkpe2M9MHx0aShsKSxhW2F0Pj4yXT0wfGY/ZjoxMDU1MzYsYVthdCs0Pj4yXT1jLCRyKDAsMTA1NTQyLGF0KSxmPTAsYz0wO2JyZWFrfWZlWzExNCsoMHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4wXT0xLGY9YysyfDAsYz1tKzJ8MDticmVha31mPTAsYz0wfWVsc2V7aWYoMCE9KDB8KGY9MHxM''@;'; put 'put ''aShsLDEwOTAyNSkpKSYmMCE9KDB8ZmVbZj4+MF0pKXtpZihVRyhxZSwwfGNyKGwpLGYpLC0xPT0oKG09MHxhW3FlKzQ+PjJdKSYoYz0wfGFbcWU+PjJdKXwwKSl7Yz0wfHRpKGwpLGFbV2U+PjJdPWYsYVtXZSs0Pj4yXT1jLCRyKDAsMTA1NTg3LFdlKSxmPTAsYz0wO2JyZWFrfWZlWzExNCso''@;'; put 'put ''MHxhWzE2KygwfGNyKGwpKT4+Ml0pPj4wXT0xLGY9YysyfDAsYz1tKzJ8MDticmVha31mPTAsYz0wfX13aGlsZSgwKTtfW0xyPj4zXT1idD4oY3Q9KygwfGYpKT9idDpjdCxxPSsoMHxjKSxfWyhjPUxyKzh8MCk+PjNdPShjdD0rX1tEcis4Pj4zXSk+cT9jdDpxLGY9KDB8U3QpPDMmKDAhPUhu''@;'; put 'put ''fDAhPXVyKT8xMjA6U3QsQT0obT0wfExpKGwsMTA1NjI4KSk/KEE9MHxmZVttPj4wXSk8PDI0Pj4yND09MTE2PzExNjpBPDwyND4+MjQ9PTk4Pzk4Ojk5Ojk5LGZlWzgwKygwfGFbMTA0KyhtPTB8YVtKcj4+Ml0pPj4yXSk+PjBdPUEsND09KDB8ZikmJigwPT1Ibj8wPT0oMHwoMHx+fihIciso''@;'; put 'put ''SHI+PTA/LjU6LS41KSkpJTkwKTowKSYwPT11cj9SPTE6RXQ9Mzk7ZG97aWYoMzk9PSgwfEV0KSl7aWYoMHwobT0wfGFbNDQrKDB8YVs4KygwfGFbbSs4Pj4yXSk+PjJdKT4+Ml0pKXtSPTB8YVttPj4yXSxhW2t0Pj4yXT1hW0xyPj4yXSxhW2t0KzQ+PjJdPWFbTHIrND4+Ml0sYVtrdCs4Pj4y''@;'; put 'put ''XT1hW0xyKzg+PjJdLGFba3QrMTI+PjJdPWFbTHIrMTI+PjJdLEdzWzYzJlJdKHN0LGt0KSxhW0xyPj4yXT1hW3N0Pj4yXSxhW0xyKzQ+PjJdPWFbc3QrND4+Ml0sYVtMcis4Pj4yXT1hW3N0Kzg+PjJdLGFbTHIrMTI+PjJdPWFbc3QrMTI+PjJdLFI9MDticmVha31wPihNPTEuNDE0MjEzNTYy''@;'; put 'put ''MzczMDk1MSooaz0rX1tjPj4zXSkpJkE8PDI0Pj4yND09OTk/KEQ9K0QwKDEvKDEtKEQ9ay9wKSpEKSksX1tMcj4+M109RCo9K19bTHI+PjNdKTooX1tMcj4+M109RD0xLjQxNDIxMzU2MjM3MzA5NTEqK19bTHI+PjNdLF9bYz4+M109TSxrPU0pLCgwfGYpPjImJihWZT0raGEoMy4xNDE1OTI2''@;'; put 'put ''NTM1ODk3OTMvKygwfGYpKSxfW0xyPj4zXT1EL1ZlLF9bYz4+M109ay9WZSksUj0wfX13aGlsZSgwKTtrPStfW2M+PjNdLG09MHx2MihsLDB8YVs0NzE2NV0sMTM3MzA4KSwxMTU9PSgwfGZlW20+PjBdKSYmMD09KDB8WmkobSwxMDgyMzApKT8oX1tMcj4+M109YixfW2M+PjNdPXAsYVsoWnQ9''@;'; put 'put ''bDArNDB8MCk+PjJdPTIwNDh8YVtadD4+Ml0pOigoMHx0MShtKSk8PDI0Pj4yND8oIShiPCtfWzI0KyhFdD0wfGFbMTA0KygwfGFbSnI+PjJdKT4+Ml0pPj4zXSkmJiEocDwrX1tFdCszMj4+M10pfHwoc3Q9MHx0aShsKSxFdD0wfHRpKDB8Y3IobCkpLGFbWnQ+PjJdPXN0LGFbWnQrND4+Ml09''@;'; put 'put ''RXQsJHIoMCwxMDU2MzcsWnQpKSxfW0xyPj4zXT1iKTooX1tMcj4+M109Yj1iPihWZT0rX1tMcj4+M10pP2I6VmUscD1wPihWZT0rX1tjPj4zXSk/cDpWZSksX1tjPj4zXT1wKSxmcj8oX1tjPj4zXT1IZT1iPnA/YjpwLF9bTHI+PjNdPUhlLFZlPUhlKTooVmU9cCxIZT1iKTtkb3tpZigoMHx0''@;'; put 'put ''MSgwfHYyKGwsMHxhWzQ3MTU2XSwxMzczMDgpKSk8PDI0Pj4yNClwPWJ0O2Vsc2V7aWYoUil7cD0rX1soYnQ+K19bTHI+PjNdP0RyOkxyKT4+M107YnJlYWt9cD1jdDwocD0rX1tjPj4zXSk/YnQ+KHA9K19bTHI+PjNdKitEMCgrKDEtY3QqY3QvKHAqcCkpKSk/YnQ6cDpidH19d2hpbGUoMCk7''@;'; put 'put ''X1s0MCsobT0wfGFbMTA0KygwfGFbSnI+PjJdKT4+Ml0pPj4zXT1wZS1HK3AsMjA0OCZhWyhxZT1sMCs0MHwwKT4+Ml18fChSZT0rX1tjPj4zXS1rLF9bbSs0OD4+M109KGN0PHE/cS1jdCtSZTpSZSkrY3QpLG09KHc9KDB8RXIpPjEpP0VyOjE7ZTpkb3tpZigoMHxmKTwzKWlmKG09MHx2ciht''@;'; put 'put ''PDw1KSxiPS41KitfW0xyPj4zXSxwPS41KitfW2M+PjNdLF9bbT4+M109LWIsX1ttKzg+PjNdPS1wLF9bbSsxNj4+M109YixfW20rMjQ+PjNdPXAsdyl7Zm9yKGY9MSxBPTI7KDB8ZikhPSgwfEVyKTspVmU9cCs0LF9bbSsoQTw8NCk+PjNdPS0oSGU9Yis0KSxfW20rKEE8PDQpKzg+PjNdPS1W''@;'; put 'put ''ZSxfW20rKChTbj0xfEEpPDw0KT4+M109SGUsX1ttKyhTbjw8NCkrOD4+M109VmUsZj1mKzF8MCxBPUErMnwwLGI9SGUscD1WZTtfW0xyPj4zXT0yKmIsX1tjPj4zXT0yKnAsZj0yfWVsc2UgZj0yO2Vsc2V7bT0wfHZyKDB8QXIobTw8NCxmKSksQT0wfGFbNDQrKDB8YVs4KygwfGFbOCsoMHxh''@;'; put 'put ''W0pyPj4yXSk+PjJdKT4+Ml0pPj4yXTt0OmRve2lmKEEpR3NbNjMmYVtBKzQ+PjJdXShtLExyKSxiPS41KitfW2M+PjNdLHA9LjUqK19bTHI+PjNdO2Vsc2V7Zm9yKHE9K0RhKCsoZ2U9LjUqKEc9Ni4yODMxODUzMDcxNzk1ODYvKygwfGYpKSkpLHBlPSskeSgrZW8oK3VyKSsgK2VvKCtIbiks''@;'; put 'put ''MSksZ2U9MS40MTQyMTM1NjIzNzMwOTUxKkhuLytoYSgrZ2UpLGJlPS41KnVyLGdMKC41KihHKy0zLjE0MTU5MjY1MzU4OTc5MyksYW4sU24pLE9lPS4wMTc0NTMyOTI1MTk5NDMyOTUqSHIsYj0wLHA9MCxrPTAsQT0wLE09LjUqK19bU24+PjNdLEQ9LjUqK19bYW4+PjNdOzspe2lmKCgwfEEp''@;'; put 'put ''Pj0oMHxmKSlicmVhayB0O2lmKGdMKGsrPUcsYW4sU24pLGdMKCtVbCgrKEQ9K19bYW4+PjNdKnErRCksKyhSZT0oRCpnZStwZSkqKE09K19bU24+PjNdKnErTSkrYmUqRCkpK09lLGFuLFNuKSxSZT0rJHkoUmUsRCksTGU9K19bU24+PjNdKlJlKitfW0xyPj4zXSxSZT0rX1thbj4+M10qUmUq''@;'; put 'put ''K19bYz4+M10scD0oT2k9K2VvKCtMZSkpPnA/T2k6cCxiPShPaT0rZW8oK1JlKSk+Yj9PaTpiLF9bbSsoQTw8NCk+PjNdPUxlLF9bbSsoQTw8NCkrOD4+M109UmUsUilicmVhaztBPUErMXwwfV9bbSsxNj4+M109T2k9LUxlLF9bbSsyND4+M109UmUsX1ttKzMyPj4zXT1PaSxfW20rNDA+PjNd''@;'; put 'put ''PU9pPS1SZSxfW20rNDg+PjNdPUxlLF9bbSs1Nj4+M109T2l9fXdoaWxlKDApO2ZvcihiKj0yLF9bTHI+PjNdPUhlPUhlPihwKj0yKT9IZTpwLF9bYz4+M109T2k9VmU+Yj9WZTpiLHA9SGUvcCxiPU9pL2IsQT0wOyEoKDB8QSk+PSgwfGYpKTspT2k9K19bKGw9bSsoQTw8NCkrOHwwKT4+M10q''@;'; put 'put ''YixfWyhadD1tKyhBPDw0KXwwKT4+M109K19bWnQ+PjNdKnAsX1tsPj4zXT1PaSxBPUErMXwwO2lmKHcpe3A9K1VsKCsoKGs9K19bbSs4Pj4zXSktK19bbSsoKHc9ZistMXwwKTw8NCkrOD4+M10pLCsoKGI9K19bbT4+M10pLStfW20rKHc8PDQpPj4zXSkpLHc9MDt0OmZvcig7ISgoMHx3KT49''@;'; put 'put ''KDB8ZikpOylmb3IoUj13KzF8MCxBPSgwfFIpJSgwfGYpfDAsTT0rX1ttKyhBPDw0KT4+M10sRD0rX1ttKyhBPDw0KSs4Pj4zXSxHPStVbCgrKEQtayksKyhNLWIpKSxWZT0uNSoocCszLjE0MTU5MjY1MzU4OTc5My1HKSxPaT00LytEYSgrVmUpLGdMKHAtVmUsYW4sU24pLF9bYW4+PjNdPStf''@;'; put 'put ''W2FuPj4zXSpPaSxfW1NuPj4zXT0rX1tTbj4+M10qT2ksQT0xLHA9azs7KXtpZigoMHxBKT09KDB8RXIpKXtwPUcsdz1SLGI9TSxrPUQ7Y29udGludWUgdH1WZT0rX1tTbj4+M10rYixPaT0rX1thbj4+M10rcCxsPSgwfEFyKEEsZikpK3d8MCxfW20rKGw8PDQpPj4zXT1WZSxfW20rKGw8PDQp''@;'; put 'put ''Kzg+PjNdPU9pLEE9QSsxfDAsYj1WZSxwPU9pfWZvcih3PTB8QXIoZixFcistMXwwKSxBPTA7Oyl7aWYoKDB8QSk+PSgwfGYpKWJyZWFrIGU7VmU9K19bbSsoKFNuPUErd3wwKTw8NCkrOD4+M10sSGU9MiorZW8oKyArX1ttKyhTbjw8NCk+PjNdKSxfW0xyPj4zXT1IZT4oT2k9K19bTHI+PjNd''@;'; put 'put ''KT9IZTpPaSxWZT0yKitlbygrVmUpLF9bYz4+M109VmU+KE9pPStfW2M+PjNdKT9WZTpPaSxBPUErMXwwfX19fXdoaWxlKDApO2FbbDA+PjJdPWZyLGFbbDArND4+Ml09RXIsYVtsMCs4Pj4yXT1mLF9bbDArMTY+PjNdPUhyLF9bbDArMzI+PjNdPXVyLF9bbDArMjQ+PjNdPUhuLGFbbDArNDQ+''@;'; put 'put ''PjJdPW0scD0rX1tMcj4+M10sMjA0OCZhW3FlPj4yXT8oX1szMisoZj0wfGFbSnI+PjJdKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1soYnQ+cD9EcjpMcik+PjNdLGM9KGN0PitfW2M+PjNdP0RyOkxyKSs4fDApOl9bMzIrKGY9MHxhW0pyPj4yXSk+PjNdPS4wMTM4ODg4ODg4ODg4ODg4''@;'; put 'put ''ODgqcCxfW2YrNDA+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqK19bYz4+M10sYVtmKzEyPj4yXT1sMCxsZT1WaX0sZnVuY3Rpb24gemFlKGwpezB8KGw9MHxhWzEyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKSYmKEZ0KDB8YVtsKzQ0Pj4yXSksRnQobCkpfSxmdW5jdGlvbiBQYWUobCl7bHw9''@;'; put 'put ''MDt2YXIgYixrLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLE09MCxEPTA7aWYoYj0wfHZyKDQ4KSxBPTB8YVs0KygwfGFbOCsoMHxhWzgrKDB8YVsoaz1sKzE2fDApPj4yXSk+PjJdKT4+Ml0pPj4yXSxtPStNbChsLDB8YVs0NzE0Nl0sMTc5NzY5MzEzNDg2MjMxNTdlMjkyLDApLGM9K01sKGws''@;'; put 'put ''MHxhWzQ3MTQ1XSwxNzk3NjkzMTM0ODYyMzE1N2UyOTIsMCksX1s0MCsodz0wfGFbaz4+Ml0pPj4zXT1tPTE3OTc2OTMxMzQ4NjIzMTU3ZTI5Mj09YyYxNzk3NjkzMTM0ODYyMzE1N2UyOTI9PShtPW08Yz9tOmMpPy4wNTptPjA/bT4zZS00P206M2UtNDptLF9bdyszMj4+M109bSxjPTcyKm0s''@;'; put 'put ''dz0wfHZyKCgwfChBPTB8ZXMobCwwfGFbNDcxNjBdLEEsMCkpKTwxPzMyOkE8PDUpLF9bdz4+M109cD0tKG0qPTM2KSxfW3crOD4+M109cCxfW3crMTY+PjNdPW0sX1t3KzI0Pj4zXT1tLCgwfEEpPjEpe2ZvcihsPTEsZj0yLHA9bSxjPW07KDB8bCkhPSgwfEEpOyltPWMrNCxfW3crKGY8PDQp''@;'; put 'put ''Pj4zXT0tKE09cCs0KSxfW3crKGY8PDQpKzg+PjNdPS1tLF9bdysoKEQ9MXxmKTw8NCk+PjNdPU0sX1t3KyhEPDw0KSs4Pj4zXT1tLGw9bCsxfDAsZj1mKzJ8MCxwPU0sYz1tO2M9MipwfWFbYj4+Ml09MSxhW2IrND4+Ml09QSxhW2IrOD4+Ml09MixhWyhEPWIrMTZ8MCk+PjJdPTAsYVtEKzQ+''@;'; put 'put ''PjJdPTAsYVtEKzg+PjJdPTAsYVtEKzEyPj4yXT0wLGFbRCsxNj4+Ml09MCxhW0QrMjA+PjJdPTAsYVtiKzQ0Pj4yXT13LF9bMzIrKEQ9MHxhW2s+PjJdKT4+M109TT0uMDEzODg4ODg4ODg4ODg4ODg4KmMsX1tEKzQwPj4zXT1NLGFbRCsxMj4+Ml09Yn0sZnVuY3Rpb24gQmFlKGwpe3ZhciBi''@;'; put 'put ''LGssTSxSLGM9MCxmPTAscD0wLG09MCxBPTAsdz0wLEQ9MDtSPWxlLGxlPWxlKzY0fDAsYj1SKzQwfDAscD1SKzMyfDAsaz1SKzE2fDAsRD1SLGY9KDB8YVsxMTYrKDB8YVsxNisoMHxjcihsfD0wKSk+PjJdKT4+Ml0pPj4+MiYxXjEsYVs0NzI4Ml09bT0wfGFbYVsxMDQrKDB8YVsoTT1sKzE2''@;'; put 'put ''fDApPj4yXSk+PjJdPj4yXSwoYz0wfG9OKGwsZiwxLG09MHx2cigoKDB8KG09MHxVbyhtKSkpPjE/bToxKSsxfDApKSl8fChhW3A+PjJdPWFbYVsxMDQrKDB8YVtNPj4yXSk+PjJdPj4yXSwkcigxLDEwNTQ3MixwKSxhWzQ3MjgyXT0xMDU0OTMsYz0wfG9OKGwsZiwxLG0pKSxGdChtKSxVUShi''@;'; put 'put ''LGwsYyksX1tEPj4zXT13PSsoMHx+figodz03MiorX1szMisoZj0wfGFbTT4+Ml0pPj4zXSkrKHc+PTA/LjU6LS41KSkpLEE9NzIqK19bZis0MD4+M10sX1soZj1EKzh8MCk+PjNdPUE9KygwfH5+KEErKEE+PTA/LjU6LS41KSkpLCgwfHQxKDB8djIobCwwfGFbNDcxNjVdLDEzNzMwOCkpKTw8''@;'; put 'put ''MjQ+PjI0PyhmPWMrOHwwLHA9Yyk6KF9bRD4+M109dz0rX1soK19bYz4+M10+dz9jOkQpPj4zXSxfW2Y+PjNdPUE9K19bKCtfWyhwPWMrOHwwKT4+M10+QT9jOkQpKzg+PjNdLGY9cCxwPWMpLGw9MjU1JigwfHQxKDB8djIobCwwfGFbNDcxNTZdLDEzNzMwOCkpKSxhW2I+PjJdPWFbRD4+Ml0s''@;'; put 'put ''YVtiKzQ+PjJdPWFbRCs0Pj4yXSxhW2IrOD4+Ml09YVtEKzg+PjJdLGFbYisxMj4+Ml09YVtEKzEyPj4yXSxRUShjLGIsbCksQ3koaywtLjUqdywuNSpBKSxhW2I+PjJdPWFbaz4+Ml0sYVtiKzQ+PjJdPWFbays0Pj4yXSxhW2IrOD4+Ml09YVtrKzg+PjJdLGFbYisxMj4+Ml09YVtrKzEyPj4y''@;'; put 'put ''XSxKUShjLGIsMTUpLF9bMzIrKEQ9MHxhW00+PjJdKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorX1twPj4zXSxfW0QrNDA+PjNdPS4wMTM4ODg4ODg4ODg4ODg4ODgqKCtfW2Y+PjNdKzEpLGFbRCsxMj4+Ml09YyxsZT1SfSxmdW5jdGlvbiBYYWUobCl7YU4oMHxhWzEyKygwfGFbMTYrKGx8''@;'; put 'put ''PTApPj4yXSk+PjJdKX0sZnVuY3Rpb24gU2FlKGwpe3ZhciBwLGM9MCxmPTAsbT0wLEE9MDtwPWxlLGxlPWxlKzE2fDAsZj1wLChjPTB8ZEQoMHxMaShsfD0wLDEwNTUyNikpKT8oYz0wfGZ1bmN0aW9uIE1hZShsKXtsfD0wO3ZhciBBLHcsYixHLGM9MCxmPTAscD0wLG09MCxrPTAsTT0wLEQ9''@;'; put 'put ''MCxSPTAscT0wO0c9bGUsbGU9bGUrMTE1MnwwLHc9RysyNHwwLEE9Rys4fDAsZj1HLHA9RysxMjB8MCxiPUcrNDR8MCxrPUcrNDB8MCxNPUcrMzZ8MCxEPUcrMzJ8MCxSPUcrMjh8MCwoYz0wfGFbNDcyNjZdKXx8KGM9MHxpcygyMDgxMiwwfGFbNDU4MV0pLGFbNDcyNjZdPWMpLGM9MHxtaVs2''@;'; put 'put ''MyZhW2M+PjJdXShjLGwsNTEyKTtkb3tpZighYyl7aWYoIShtPTB8blMobCwxMzg4MjEpKSl7YVtmPj4yXT1sLCRyKDAsMTA0MjgzLGYpLGM9MDticmVha31mb3IoYz0wLGY9MDs7KXtpZighKDB8eWcocCwxMDI0LG0pKSl7cD0xMTticmVha31pZihhW0E+PjJdPWssYVtBKzQ+PjJdPU0sYVtB''@;'; put 'put ''Kzg+PjJdPUQsYVtBKzEyPj4yXT1SLGY9KHE9ND09KDB8aWwocCwxMDQzMTEsQSkpKT8xOmYsMzchPSgwfGZlW3A+PjBdKSYmKGM9KHE9MD09KDB8dFMocCwxMDQzNDApKSk/YzoxKSwwIT0oMHxmKSYwIT0oMHxjKSl7cD0xMjticmVha319MTE9PSgwfHApJiYoZj9wPTEyOihhW3c+PjJdPWws''@;'; put 'put ''JHIoMCwxMDQzNDUsdyksYz0wKSksMTI9PSgwfHApJiYocT0wfFFuKDY0KSxhW3ErMzI+PjJdPWs9MHxhW2s+PjJdLE09MHxhW00+PjJdLGFbcSs0MD4+Ml09KDB8YVtEPj4yXSktayxhW3ErMzY+PjJdPSgwfGFbUj4+Ml0pLU0sYVtxKzg+PjJdPWwsYVs0NzI2N109MSsoUj0wfGFbNDcyNjdd''@;'; put 'put ''KSxhW3ErMTI+PjJdPVIsVCQoMHxZJChtKSxiKSxEPTB8UW4oMSsoUj0wfGFbYiszNj4+Ml0pfDApLGFbcSs1Mj4+Ml09RCxuMyhtLDAsMCksRyQoRCxSLDEsbSksZmVbRCtSPj4wXT0wLG1pWzYzJmFbKFI9MHxhWzQ3MjY2XSk+PjJdXShSLHEsMSksZmVbcSsxNj4+MF09YyxjPXEpLHR3KG0p''@;'; put 'put ''fX13aGlsZSgwKTtyZXR1cm4gbGU9RywwfGN9KGMpLDB8YyYmKGY9MHxhW2MrNDQ+PjJdLF9bMzIrKGw9MHxhWyhBPWwrMTZ8MCk+PjJdKT4+M109LjAxMzg4ODg4ODg4ODg4ODg4OCorKDB8KG09MHxhW2MrNDA+PjJdKSksX1tsKzQwPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KisoMHxmKSxs''@;'; put 'put ''PTB8dnIoMTIpLGFbMTIrKDB8YVtBPj4yXSk+PjJdPWwsYVtsPj4yXT1hW2MrMTI+PjJdLGFbbCs0Pj4yXT0oKDB8bSkvLTJ8MCktKDB8YVtjKzMyPj4yXSksYVtsKzg+PjJdPSgoMHxmKS8tMnwwKS0oMHxhW2MrMzY+PjJdKSkpOihhW2Y+PjJdPTB8dGkobCksJHIoMCwxMDQyMzQsZikpLGxl''@;'; put 'put ''PXB9LGZ1bmN0aW9uIEhRKGwpe0Z0KDB8YVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSl9LGZ1bmN0aW9uIFJSKGwpe3ZhciBjLGY9MDtjPTB8YVsxNjgrKDB8YVsobHw9MCk+PjJdKT4+Ml0sMHxhWyhmPWwrNTgwfDApPj4yXXx8KGFbZj4+Ml09YyxmZVsoZj0xMTIrKDB8YVtjKzE2Pj4y''@;'; put 'put ''XSl8MCk+PjBdPTJ8ZmVbZj4+MF0sWTgobCxjKSksZ1cobCxjKSxmZVtsKzU0MD4+MF09MX0sZnVuY3Rpb24gYmIobCl7fSxmdW5jdGlvbiBudmUobCl7ciQoMHxhWzUyKyhsfD0wKT4+Ml0sMHxhW2wrNTY+PjJdKX0sZnVuY3Rpb24gRlUobCl7dmFyIGssRCxxLGM9MCxmPTAscD0wLG09MCxB''@;'; put 'put ''PTAsdz0wLGI9MCxNPTAsUj0wLEc9MDtmb3IocT1sZSxsZT1sZSszMnwwLFI9cSsxNnwwLEQ9cSxjPTB8aXRbMjM2KyhmPTB8YVsoaz0xNisobHw9MCl8MCk+PjJdKT4+MV07ISgoMHxjKT4oMHxpdFtmKzIzOD4+MV0pKTspYVsoMHxhW2YrMjY4Pj4yXSkrKGM8PDIpPj4yXT0wLGM9YysxfDAs''@;'; put 'put ''Zj0wfGFbaz4+Ml07Zm9yKHFZKGwpLHc9MHxEdChsKTt3Oyl7Zm9yKEhVKGwsdyksQT0wfHcwKGwsdyk7QTspe2ZvcihmPUE7Yz0wfGFbMTcyKygwfGFbZisxNj4+Ml0pPj4yXTspZj1jO2ZvcihtPUErLTQ4fDA7Yz1mKy00OHwwLCEoKDB8YVsyMzIrKDB8YVsxNisocD0wfGFbKDI9PSgzJmFb''@;'; put 'put ''Zj4+Ml18MCk/ZjpjKSs0MD4+Ml0pPj4yXSk+PjJdKT49KDB8YVsyMzIrKDB8YVsxNisoMHxhWygyPT0oMyZhW0E+PjJdfDApP0E6bSkrNDA+PjJdKT4+Ml0pPj4yXSkpOylIVShsLHApLGY9MHxhW2FbMTgwKygwfGFbMTYrKDB8YVsoMj09KDMmYVtmPj4yXXwwKT9mOmMpKzQwPj4yXSk+PjJd''@;'; put 'put ''KT4+Ml0+PjJdO0E9MHxTMChsLEEpfXc9MHx6dChsLHcpfWZvcihBPTB8aXRbMjM2KyhjPTB8YVtrPj4yXSk+PjFdOzspe2lmKCgwfEEpPigwfGl0W2MrMjM4Pj4xXSkpe2I9MSxNPWM7YnJlYWt9aWYoYz0wfGFbKDB8YVtjKzI2OD4+Ml0pKyhBPDwyKT4+Ml0sdz0wfGFbKDB8YVsxOTYrKDB8''@;'; put 'put ''YVsxNisoMHx5YShsKSk+PjJdKT4+Ml0pKyhBPDw2KSs0Pj4yXSwoMHxhW3crKGFbMjM2KygwfGFbKGY9YysxNnwwKT4+Ml0pPj4yXTw8Mik+PjJdKSE9KDB8Yykpe0c9MTc7YnJlYWt9bT0wfGFbKDB8YVsxOTYrKDB8YVsxNisoMHx5YShsKSk+PjJdKT4+Ml0pKyhBPDw2KSs0Pj4yXSxhWyhm''@;'; put 'put ''PTB8YVsxOTYrKGM9MHxhW2s+PjJdKT4+Ml0pKyhBPDw2KSs0Pj4yXT1tKyhhWzIzNisoMHxhWzE2KygwfGFbKDB8YVtjKzI2OD4+Ml0pKyhBPDwyKT4+Ml0pPj4yXSk+PjJdPDwyKSxjPS0xLG09MDtlOmZvcig7ISgoMHxtKT49KDB8YVtmKyhBPDw2KT4+Ml0pKSYmKGY9MHxhWygwfGFbZiso''@;'; put 'put ''QTw8NikrND4+Ml0pKyhtPDwyKT4+Ml0sZik7KXtwPTB8YVtmKzE2Pj4yXTt0OmRve2lmKDB8ZmVbcCsxNTY+PjBdKXtmb3IoZj0wfGFbYVtwKzE3Mj4+Ml0+PjJdOzspe2lmKCFmKWJyZWFrIHQ7aWYoIShwPTB8YVsxMTYrKDB8YVtmKzE2Pj4yXSk+PjJdKSlicmVhaztmPXB9MHxOcihsLDB8''@;'; put 'put ''YVsoMz09KDMmYVtmPj4yXXwwKT9mOmYrNDh8MCkrNDA+PjJdKSYmKGM9KHc9MD09KDB8TnIobCwwfGFbKDI9PSgzJmFbZj4+Ml18MCk/ZjpmKy00OHwwKSs0MD4+Ml0pKSk/YzptKX1lbHNle2lmKCEoMHxOcihsLGYpKSlicmVhayBlO2M9bX19d2hpbGUoMCk7bT1tKzF8MCxmPTB8YVsxOTYr''@;'; put 'put ''KDB8YVtrPj4yXSk+PjJdfS0xPT0oMHxjKSYmKGFbUj4+Ml09MHx0aShsKSxhW1IrND4+Ml09QSwkcigwLDg4Mjc3LFIpKSxhWygwfGFbMTk2Kyh3PTB8YVtrPj4yXSk+PjJdKSsoQTw8Nik+PjJdPWMrMSxBPUErMXwwLGM9d31mb3IoMTc9PSgwfEcpJiYoUj0wfHRpKGMpLEc9MHxhWzIzNiso''@;'; put 'put ''MHxhW2Y+PjJdKT4+Ml0sYVtEPj4yXT1SLGFbRCs0Pj4yXT1HLGFbRCs4Pj4yXT1BLCRyKDEsODgyMTksRCksemUoMTg3MDE2LDEpKTshKCgwfGIpPigwfGFbTSsxODA+PjJdKSk7KUZVKDB8YVsoMHxhW00rMTg0Pj4yXSkrKGI8PDIpPj4yXSksYj1iKzF8MCxNPTB8YVtrPj4yXTtsZT1xfSxm''@;'; put 'put ''dW5jdGlvbiBJc2UobCl7dmFyIGYsYz0wO3I0KGx8PTAsMiksYz0wfHZyKDU2KSxhWzE0MCsoMHxhWyhmPWwrMTZ8MCk+PjJdKT4+Ml09YyxjPTY1NTM1JigwfGVzKGwsMHxzaShsLDAsOTEzNzQsMCksMiwyKSksaXRbMTc2KygwfGFbZj4+Ml0pPj4xXT1jPSg2NTUzNSZjKTwxMD9jOjEwLGFb''@;'; put 'put ''NDcxMzddPTY1NTM1JmMsVEQobCwwLGwpLGZ1bmN0aW9uIExzZShsKXtsfD0wO3ZhciBwLGM9MCxmPTA7cD1sZSxsZT1sZSsxNnwwLGFbNDY0NzRdPTEsYVs0NjQ3NV09MSxhWzQ2NDc3XT0tMSxhWzQ2NDc5XT01MCxfWzIzMjQ1XT0wLF9bMjMyNDBdPTAsX1syMzI0MV09MSxhWzQ2NDc4XT0w''@;'; put 'put ''fGVzKGwsMHxzaShsLDAsOTEwNjEsMCksNjAwLDApLGY9K01sKGwsMHxzaShsLDAsOTEyMDIsMCksLjMsMCksX1syMzI0Ml09ZixfWzEzNzFdPWYsYz0rTWwobCwwfHNpKGwsMCw5MTA2OSwwKSwtMSwwKSxfWzIzMjQzXT1jLGFbNDY0NzZdPTEsbD0wfEhOKGwsMiwxODU5MDQpLGFbNDY0ODhd''@;'; put 'put ''PWwsbHx8KCRyKDAsOTEwNzIscCksYVs0NjQ3Nl09MiksYVs0NjUwNF09KDB8QXIoMHxhWzQ2NDc4XSwwfGFbNDY0NzldKSkvMTAwfDAsX1syMzI0N109KGY9K19bMjMyNDJdKSpmLDB8YVs0NjQ3NF0mJigoYz0rX1syMzI0NV0pPD0wJiYoX1syMzI0NV09Yz0zKmYpLF9bMjMyNDZdPWMqYyks''@;'; put 'put ''bGU9cH0obCksZnVuY3Rpb24gQ3NlKGwpe3ZhciBjPTAsZj0wLHA9MDtmb3IoJGkobHw9MCwxLDEzNzQ0NywzMDQsMSksZnVuY3Rpb24gU2xlKGwpe3ZhciBwLEEsYixjPTAsZj0wLG09MCx3PTA7Zm9yKGI9bGUsbGU9bGUrMTQ0fDAscD1iLEE9MHx5SihsfD0wKSxtPTB8aXMoMjM1OTIsMHxh''@;'; put 'put ''WzQ1ODFdKSxoMCh3PTB8cHMobCwxMDgwMTQsMSksMTM3NDgzLDI4MCwxKSx1cyhwLDEyOCxiKzE2fDApLGM9MHxEdChsKTtjOyl7ZTpkb3tpZighKDB8ZmVbMTE4KygwfGFbYysxNj4+Ml0pPj4wXSkpZm9yKGY9MHx3MChsLGMpOzspe2lmKCFmKWJyZWFrIGU7TWxlKGYsdyxwLG0sQSksZj0w''@;'; put 'put ''fFMwKGwsZil9fXdoaWxlKDApO2M9MHx6dChsLGMpfWZvcihDMihwKSxObChtKSxmPTB8R28odyksYz0wfER0KHcpO2M7KW09MHx6dCh3LGMpLG9pKGwsYyksYz1tO0MxKHcpLDB8ZiYmKGl0Wyh3PTEzNisoMHxhW2wrMTY+PjJdKXwwKT4+MV09MXxpdFt3Pj4xXSksTmwoQSksbGU9Yn0obCks''@;'; put 'put ''Yz0wfHZyKDQrKCgwfEdvKGwpKTw8Mil8MCksYVsxNTIrKDB8YVsocD1sKzE2fDApPj4yXSk+PjJdPWMsYz0wLGY9MHxEdChsKTtmOylrc2UoZiksYVsoMHxhWzE1MisoMHxhW3A+PjJdKT4+Ml0pKyhjPDwyKT4+Ml09ZixhWzEyMCsoMHxhW2YrMTY+PjJdKT4+Ml09YyxjPWMrMXwwLGY9MHx6''@;'; put 'put ''dChsLGYpO2ZvcihwPTB8c2kobCwyLDkyNDkzLDApLGY9MHxEdChsKTtmOyl7Zm9yKGM9MHx3MChsLGYpO2M7KVNzZShjLHApLGM9MHxTMChsLGMpO2Y9MHx6dChsLGYpfSFmdW5jdGlvbiBNc2UobCl7dmFyIGssTSxSLEcscSxjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLHBlPTA7''@;'; put 'put ''cT1sZSxsZT1sZSszMnwwLEc9cSsxNnwwLFI9cSxrPXErMjR8MCxNPTB8c2kobHw9MCwxLDEwMjYyMywwKTtlOmRve2lmKDB8TSlmb3IoRD0wfHNpKGwsMSw5MDY2MCwwKSxBPWwrMTZ8MCx3PTA9PSgwfEQpLGI9MHxhWzE1NzEyXSxtPTA7Oyl7aWYoIShmPTB8YVsoMHxhWzE1MisoMHxhW0E+''@;'; put 'put ''PjJdKT4+Ml0pKyhtPDwyKT4+Ml0pKWJyZWFrIGU7bD0wfEhvKGYsTSk7ZG97aWYoMHxmZVtsPj4wXSl7aWYoYz0wfGFbMTMyKygwfGFbKHA9ZisxNnwwKT4+Ml0pPj4yXSxmZVtrPj4wXT0wLGFbUj4+Ml09YyxhW1IrND4+Ml09Yys4LGFbUis4Pj4yXT1rLCgwfGlsKGwsMTAxNzQ5LFIpKTw9''@;'; put 'put ''MSl7YVtHPj4yXT0wfHRpKGYpLGFbRys0Pj4yXT1sLFQwKGIsOTA2NjQsRyk7YnJlYWt9dDpkb3tpZigrX1syMzI5M10+MClmb3IobD0wOzspe2lmKDI9PSgwfGwpKWJyZWFrIHQ7X1socGU9YysobDw8Myl8MCk+PjNdPStfW3BlPj4zXS8rX1syMzI5M10sbD1sKzF8MH19d2hpbGUoMCk7aWYo''@;'; put 'put ''ZmVbMTE5KyhsPTB8YVtwPj4yXSk+PjBdPTEsMzMhPSgwfGZlW2s+PjBdKSl7aWYod3x8ISgoMHx0MSgwfEhvKGYsRCkpKTw8MjQ+PjI0KSlicmVhaztsPTB8YVtwPj4yXX1mZVtsKzExOT4+MF09M319d2hpbGUoMCk7bT1tKzF8MH19d2hpbGUoMCk7bGU9cX0obCl9KGwpfSxmdW5jdGlvbiB1''@;'; put 'put ''VihsKXt2YXIgYyxmO2M9bGUsbGU9bGUrNjR8MCxmdW5jdGlvbiBUc2UobCxjKXthWzQrKGN8PTApPj4yXT0wfHNpKGx8PTAsMCw5MDcxNiwwKSxhW2MrOD4+Ml09MHxzaShsLDAsMTQxMTE2LDApLGFbYysxMj4+Ml09MHxzaShsLDAsMTQxMDQ4LDApLGFbYz4+Ml09bCxhW2MrMTY+PjJdPTAs''@;'; put 'put ''YVtjKzM2Pj4yXT0wfGE3KGwsMiw0LGMrMjB8MCl9KGx8PTAsZj1jKSxjVihsLGYpLGZ1bmN0aW9uIHVYKGwpe3ZhciBjPTAsZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTA7Zm9yKGM9MHxEdChsfD0wKTtjOykwfGZlWzExOCsoZj0wfGFbYysxNj4+Ml0pPj4wXSYmKG09MzYqKHc9K19bMjQrKGI9''@;'; put 'put ''MHxhWzE0MCsoMHxhWzE2KygwfGFbZisyMTI+PjJdKT4+Ml0pPj4yXSk+PjNdLStfW2IrOD4+M10pLHA9MzYqKEE9K19bYiszMj4+M10tK19bYisxNj4+M10pLF9bKGI9MHxhW2YrMTMyPj4yXSk+PjNdPS41KncsX1tiKzg+PjNdPS41KkEsX1tmKzMyPj4zXT13LF9bZis0MD4+M109QSxfW2Yr''@;'; put 'put ''OTY+PjNdPW0sX1tmKzg4Pj4zXT1tLF9bZis4MD4+M109NzIqQSxfWyhmPTB8YVs0NCsoMHxhW2YrMTI+PjJdKT4+Ml0pPj4zXT1tLF9bZis4Pj4zXT1wLF9bZisxNj4+M109QT0tbSxfW2YrMjQ+PjNdPXAsX1tmKzMyPj4zXT1BLF9bZis0MD4+M109cD0tcCxfW2YrNDg+PjNdPW0sX1tmKzU2''@;'; put 'put ''Pj4zXT1wKSxjPTB8enQobCxjKX0obCksY1gobCxsKSxJRChsKSxsZT1jfSxmdW5jdGlvbiBQdmUobCl7dmFyIGYscCxtLHcsYz0wLEE9MDtpZih3PWxlLGxlPWxlKzE2fDAsbT13LGM9NjU1MzUmKHA9MTQmaXRbMTM2KygwfGFbKGY9MTYrKGx8PTApfDApPj4yXSk+PjFdKSwoNjU1MzUmcCk+''@;'; put 'put ''OCl7cDw8MTY+PjE2PT0xMj8wfFBKKGwsMjIsMTApJiYoYVs0NzEzNF09MixBPTUpOkE9NTtkb3tpZig1PT0oMHxBKSl7aWYoMSZpdFsxMzYrKDB8YVtmPj4yXSk+PjFdKXskcigwLDkwOTk4LG0pLGM9MjticmVha31rRChsLGMpO2JyZWFrfX13aGlsZSgwKTthWzQ3MTM0XT0wfSgwfGFbNDcx''@;'; put 'put ''MzhdKTwxJiZrRChsLGMpLGxlPXd9LEZ0LGZ1bmN0aW9uIG9qKGwpe0Z0KDB8YVs4KyhsfD0wKT4+Ml0pLEZ0KGwpfSxUNSxNcmUsZnVuY3Rpb24genJlKGwpezc9PSgwfGFbKGx8PTApPj4yXSkmJkF5KDB8YVtsKzExMj4+Ml0sMSl9LGZ1bmN0aW9uIHF1KGwpe2x8PTA7dmFyIGM9MDswfGFb''@;'; put 'put ''NDczNzVdfHwoYz0wfHZyKDQrKGw8PDIpfDApLGFbNDczNzVdPWMsYVtjPj4yXT0xODk1MDQsYVs0NzM4Nl09bCksYVs0NzM4N109MH0sZnVuY3Rpb24gU1IobCl7dmFyIGYsYz0wLHA9MDtmb3IoYVsobHw9MCk+PjJdPWM9MHxhW2wrOD4+Ml0sYVtsKzQ+PjJdPWFbbCsxMj4+Ml0sZj1sKzE2''@;'; put 'put ''fDAsbD0wOyEoKDB8bCk+PSgwfGMpKTspaXRbKHA9MHxhW2Y+PjJdKSsoNDAqbHwwKSsxNj4+MV09MHxpdFtwKyg0MCpsfDApKzE4Pj4xXSxsPWwrMXwwO2ZvcihjPWMrMnwwOyEoKDB8bCk+PSgwfGMpKTspaXRbKDB8YVtmPj4yXSkrKDQwKmx8MCkrMTY+PjFdPTAsbD1sKzF8MH0sZnVuY3Rp''@;'; put 'put ''b24gZ1IobCl7dmFyIGMsZjt2UigwfGFbKGY9MjArKGx8PTApfDApPj4yXSksdlIoMHxhWyhjPWwrMjR8MCk+PjJdKSxoYigwfGFbZj4+Ml0pLGhiKDB8YVtjPj4yXSksWWMoMHxhW2Y+PjJdLGwpLFljKDB8YVtjPj4yXSxsKSxpbSgwfGFbZj4+Ml0pLGltKDB8YVtjPj4yXSl9LHl5LGZ1bmN0''@;'; put 'put ''aW9uIGhCKGwpe3ZhciBjLGY7RnQoMHxhWzM2KygwfGFbKGY9OCsobHw9MCl8MCk+PjJdKT4+Ml0pLEZ0KDB8YVszNisoMHxhWyhjPWwrMTJ8MCk+PjJdKT4+Ml0pLEZ0KDB8YVtmPj4yXSksRnQoMHxhW2M+PjJdKSxmdW5jdGlvbiBYTShsKXt2YXIgYztGdCgwfGFbMjgrKDB8YVsoYz0xNiso''@;'; put 'put ''bHw9MCl8MCk+PjJdKT4+Ml0pLEZ0KDB8YVtjPj4yXSksRnQoMHxhW2wrMjA+PjJdKSxGdChsKX0oMHxhW2wrMTY+PjJdKSxObCgwfGFbbCsyMD4+Ml0pLE5sKDB8YVtsKzI0Pj4yXSksRnQobCl9LGV4LGZ1bmN0aW9uIGRHKGwpe3ZhciBmLHAsdyxjPTAsbT0wLEE9MDt3PWxlLGxlPWxlKzY0''@;'; put 'put ''fDAscD13KzQ4fDAsQT13KzMyfDAsbT13KzE2fDAsZj13LCgwfGFbNDc1MTZdKTwoMHwobHw9MCkpJiYoKGM9MHxhWzQ3NTEwXSk/KG09MHxVYShjLGw8PDMpLGFbNDc1MTBdPW0sbXx8KG09MHxhWzE1NzEyXSxhW0E+PjJdPTE0MTg1OCxhW0ErND4+Ml09NTMzLGFbQSs4Pj4yXT0xNDIxNDcs''@;'; put 'put ''VDAobSwxNDE4MzksQSksemUoMTg5ODU2LDEpKSxBPTB8VWEoMHxhWzQ3NTExXSxsPDwyKSxhWzQ3NTExXT1BLEF8fChBPTB8YVsxNTcxMl0sYVtwPj4yXT0xNDE4NTgsYVtwKzQ+PjJdPTUzOSxhW3ArOD4+Ml09MTQyMTY3LFQwKEEsMTQxODM5LHApLHplKDE4OTg1NiwxKSkpOihBPTB8RjAo''@;'; put 'put ''bDw8MyksYVs0NzUxMF09QSxBfHwoQT0wfGFbMTU3MTJdLGFbZj4+Ml09MTQxODU4LGFbZis0Pj4yXT01MjMsYVtmKzg+PjJdPTE0MjEwOCxUMChBLDE0MTgzOSxmKSx6ZSgxODk4NTYsMSkpLEE9MHxGMChsPDwyKSxhWzQ3NTExXT1BLEF8fChBPTB8YVsxNTcxMl0sYVttPj4yXT0xNDE4NTgs''@;'; put 'put ''YVttKzQ+PjJdPTUyNyxhW20rOD4+Ml09MTQyMTI3LFQwKEEsMTQxODM5LG0pLHplKDE4OTg1NiwxKSkpLGFbNDc1MTZdPWwpLGxlPXd9LGZ1bmN0aW9uIHJBKGwpe3ZhciBtLGM9MCxmPTAscD0wO209bGUsbGU9bGUrMzJ8MCxwPW0rMTZ8MCxmPW0sKDB8YVs0NzUwNl0pPCgwfChsfD0wKSkm''@;'; put 'put ''JigoYz0wfGFbNDc1MDVdKT8oZj0wfFVhKGMsbDw8MiksYVs0NzUwNV09ZixmfHwoZj0wfGFbMTU3MTJdLGFbcD4+Ml09MTQxODU4LGFbcCs0Pj4yXT01ODAsYVtwKzg+PjJdPTE0MjA4NSxUMChmLDE0MTgzOSxwKSx6ZSgxODk4NTYsMSkpKToocD0wfEYwKGw8PDIpLGFbNDc1MDVdPXAscHx8''@;'; put 'put ''KHA9MHxhWzE1NzEyXSxhW2Y+PjJdPTE0MTg1OCxhW2YrND4+Ml09NTczLGFbZis4Pj4yXT0xNDIwNjMsVDAocCwxNDE4MzksZiksemUoMTg5ODU2LDEpKSksYVs0NzUwNl09bCksbGU9bX0sZnVuY3Rpb24gZ0cobCl7dmFyIG0sYz0wLGY9MCxwPTA7bT1sZSxsZT1sZSszMnwwLHA9bSsxNnww''@;'; put 'put ''LGY9bSwoMHxhWzQ3NTE0XSk8KDB8KGx8PTApKSYmKChjPTB8YVs0NzUxMl0pPyhmPTB8VWEoYyxsPDw0KSxhWzQ3NTEyXT1mLGZ8fChmPTB8YVsxNTcxMl0sYVtwPj4yXT0xNDE4NTgsYVtwKzQ+PjJdPTU5OSxhW3ArOD4+Ml09MTQxOTg0LFQwKGYsMTQxODM5LHApLHplKDE4OTg1NiwxKSkp''@;'; put 'put ''OihwPTB8RjAobDw8NCksYVs0NzUxMl09cCxwfHwocD0wfGFbMTU3MTJdLGFbZj4+Ml09MTQxODU4LGFbZis0Pj4yXT01OTMsYVtmKzg+PjJdPTE0MTk2NixUMChwLDE0MTgzOSxmKSx6ZSgxODk4NTYsMSkpKSxhWzQ3NTE0XT1sKSxsZT1tfSxmOCxmOCxmOCxmOCxmOCxmOCxmOCxmOCxmOF0s''@;'; put 'put ''R3M9W0xzLGZ1bmN0aW9uIEhXKGwsYyl7bHw9MDt2YXIgdyxrLE0sZj0wLHA9MCxtPTAsQT0wLGI9MCxEPTA7TT1sZSxsZT1sZSszMnwwLHc9TSxBPU0rMjB8MCxrPTMyKyhjfD0wKXwwO2U6ZG97c3dpdGNoKDB8YVtrPj4yXSl7Y2FzZSA1OmZvcihmPTA7Oyl7aWYocD0wfGFbMTI3MjQrKGY8''@;'; put 'put ''PDIpPj4yXSw4PT0oMHxmKSlicmVhayBlO2lmKCgwfGZlW3A+PjBdKT09KDB8ZmVbKG09MHxhW2M+PjJdKT4+MF0pJiYwPT0oMHxaaShwLG0pKSl7Yj0xMDticmVhayBlfWY9ZisxfDB9Y2FzZSAxOmY9MzIrKDB8TlcoQSwwfFh0W2M+PjBdLDB8WHRbKHA9YysxfDApPj4wXSwwfFh0WyhtPWMr''@;'; put 'put ''MnwwKT4+MF0pKXwwLDB8YVtBPj4yXSYmKEQ9MHxYdFtjPj4wXSxBPTB8WHRbcD4+MF0sYj0wfFh0W20+PjBdLGFbdz4+Ml09MCxhW3crND4+Ml09ZixhW3crOD4+Ml09RCxhW3crMTI+PjJdPUEsYVt3KzE2Pj4yXT1iLE9yKGwsNjg0OTIsdykpLGI9MTA7YnJlYWs7ZGVmYXVsdDpQcigxMzgz''@;'; put 'put ''OTQsNjc4ODksMTYzLDY3OTIwKX19d2hpbGUoMCk7MTA9PSgwfGIpJiYoYVtjPj4yXT1mKSxhW2s+PjJdPTYsbGU9TX0sZnVuY3Rpb24gUVQobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWN8PTAsT3IobCw2ODMyNSxwKSxsZT1mfSxmdW5jdGlvbiBLVChs''@;'; put 'put ''LGMpe2x8PTA7dmFyIHcsayxNLGY9MCxwPTAsbT0wLEE9MCxiPTAsRD0wO009bGUsbGU9bGUrMzJ8MCx3PU0sQT1NKzIwfDAsaz0zMisoY3w9MCl8MDtlOmRve3N3aXRjaCgwfGFbaz4+Ml0pe2Nhc2UgNTpmb3IoZj0wOzspe2lmKHA9MHxhWzEyNzI0KyhmPDwyKT4+Ml0sOD09KDB8ZikpYnJl''@;'; put 'put ''YWsgZTtpZigoMHxmZVtwPj4wXSk9PSgwfGZlWyhtPTB8YVtjPj4yXSk+PjBdKSYmMD09KDB8WmkocCxtKSkpe2I9MTA7YnJlYWsgZX1mPWYrMXwwfWNhc2UgMTpmPTMyKygwfFlXKEEsMHxYdFtjPj4wXSwwfFh0WyhwPWMrMXwwKT4+MF0sMHxYdFsobT1jKzJ8MCk+PjBdKSl8MCwwfGFbQT4+''@;'; put 'put ''Ml0mJihEPTB8WHRbYz4+MF0sQT0wfFh0W3A+PjBdLGI9MHxYdFttPj4wXSxhW3c+PjJdPTAsYVt3KzQ+PjJdPWYsYVt3Kzg+PjJdPUQsYVt3KzEyPj4yXT1BLGFbdysxNj4+Ml09YixPcihsLDY4NDkyLHcpKSxiPTEwO2JyZWFrO2Nhc2UgMDpmPTAsYj0xMDticmVhaztkZWZhdWx0OlByKDEz''@;'; put 'put ''ODM5NCw2ODUxMywxNjgsNjg1MzIpfX13aGlsZSgwKTsxMD09KDB8YikmJihhW2M+PjJdPWYpLGFbaz4+Ml09NixsZT1NfSxmdW5jdGlvbiBraWUobCxjKXt2YXIgZixwO2x8PTAsZj1sZSxsZT1sZSsxNnwwLGFbKHA9Zik+PjJdPWN8PTAsT3IobCw2ODMyNSxwKSxsZT1mfSxmdW5jdGlvbiBS''@;'; put 'put ''aWUobCxjKXtjfD0wLEVuKGx8PTAsNjg4NDkpLEVuKGwsYyksRW4obCwxNTM1OTkpfSxmdW5jdGlvbiBDN2UobCxjKXtjfD0wLEVuKGx8PTAsNzMzOTgpLEVuKGwsMHxNMShjKSksRW4obCw3NTQ1OCl9LGZ1bmN0aW9uIEw3ZShsLGMpe2N8PTAsRW4obHw9MCw3NTEzOCksRW4obCwwfHFUKGMp''@;'; put 'put ''KSxFbihsLDE1MzU5OSl9LGZ1bmN0aW9uIFY3ZShsLGMpe2N8PTAsRW4obHw9MCw3NTQ0NiksRW4obCwwfG5pKGMpKSxFbihsLDc1NDU4KX0sZnVuY3Rpb24gV2llKGwsYyl7dmFyIGYscDtsfD0wLGY9bGUsbGU9bGUrMTZ8MCxhWyhwPWYpPj4yXT1jfD0wLE9yKGwsNzgyNDIscCksbGU9Zn0s''@;'; put 'put ''ZnVuY3Rpb24gb0kobCxjKXt2YXIgZixwO2x8PTAsY3w9MCxmPWxlLGxlPWxlKzE2fDAsYVsocD1mKT4+Ml09ODEwOTQsYVtwKzQ+PjJdPWMsT3IobCw4MTA4NyxwKSxsZT1mfSxmdW5jdGlvbiBZZShsLGMpe0Z0KGN8PTApfSxmdW5jdGlvbiBXYWUobCxjKXtjfD0wO3ZhciBrLE0scGUsZ2Us''@;'; put 'put ''YmUsT2UsTGUsUmUsV2UsYXQsU3Qsa3QsRXQsWnQsY3QsYnQsYW4sZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wLFI9MCxHPTAscT0wLEhlPTAsVmU9MCxxZT0wLHJ0PTAsc3Q9MCxTbj0wLEhuPTA7YW49bGUsbGU9bGUrNDh8MCxTdD1hbisyNHwwLGF0PWFuKzE2fDAsUmU9YW4rOHwwLExl''@;'; put 'put ''PWFuLFp0PWFuKzMyfDAsdz1hbisyOHwwLDA9PSgwfChmPTB8YVsoYnQ9MjA4KyhjdD0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKSkmJjA9PSgxJml0W2N0KzI2MD4+MV0pP3N0PTA6cnQ9NCw0PT0oMHxydCkmJig0JmFbbCsxNTI+PjJdfHxHMShsLGYsMHxhW2N0KzIyOD4+Ml0sMHxhW2N0''@;'; put 'put ''KzI0ND4+Ml0sMHxhW2N0KzIxMj4+Ml0pLHN0PTEpLFdlPTB8YVs0NCsoRD0wfGFbMTIrKGY9MHxhWyhrdD1jKzE2fDApPj4yXSk+PjJdKT4+Ml0sRXQ9MHxhW0QrOD4+Ml0sRD0wfGFbRCs0Pj4yXSwoMHxhWzQ3Mjg1XSk8KDB8RXQpJiYoYVs0NzI4NV09Zj1FdCs1fDAsZj0ocD0wfGFbNDcy''@;'; put 'put ''ODZdKT8wfFYwKHAsZjw8NCk6MHxRbihmPDw0KSxhWzQ3Mjg2XT1mLGY9MHxhW2t0Pj4yXSksYVsocWU9NTYrKDB8YVtmKzEwND4+Ml0pfDApPj4yXT1hWyhmPWYrMTZ8MCk+PjJdLGFbcWUrND4+Ml09YVtmKzQ+PjJdLGFbcWUrOD4+Ml09YVtmKzg+PjJdLGFbcWUrMTI+PjJdPWFbZisxMj4+''@;'; put 'put ''Ml0sSGU9KCtfWzk2KyhxZT0wfGFba3Q+PjJdKT4+M10rICtfW3FlKzg4Pj4zXSkvKygwfH5+KChIZT03MiorX1txZSszMj4+M10pKyhIZT49MD8uNTotLjUpKSksVmU9K19bcWUrODA+PjNdLysoMHx+figoVmU9NzIqK19bcWUrNDA+PjNdKSsoVmU+PTA/LjU6LS41KSkpLHFlPTB8JFEobCxj''@;'; put 'put ''KSxhW1p0Pj4yXT0wLGY9MHxYdFsxMTcrKDB8YVtrdD4+Ml0pPj4wXTtkb3tpZigxJmYpbWEobCxSPTB8QmEoYywwLDEwNjI0MCkpLGhsKGwsMHxCYShjLDAsMTA2MjQ4KSkscD0wLGY9MTtlbHNle2lmKDImZnwwKXttYShsLFI9MHxCYShjLDAsMTA2MjU2KSksaGwobCwwfEJhKGMsMCwxMDYy''@;'; put 'put ''NjQpKSxwPTAsZj0xO2JyZWFrfWlmKDgmZnwwKXttYShsLFI9MHxCYShjLDAsMTA2MjcyKSksaGwobCwwfEJhKGMsMCwxMDYyODApKSxwPTAsZj0xO2JyZWFrfWlmKDQmZnwwKXttYShsLFI9MHxCYShjLDAsMTA2Mjg4KSksaGwobCwwfEJhKGMsMCwxMDYyOTYpKSxwPTAsZj0xO2JyZWFrfTEm''@;'; put 'put ''cWU/KDB8dWsocD0wfHNOKGMpLFp0LHcpKTw8MjQ+PjI0PyhobChsLDB8YVtadD4+Ml0pLFVmKGwsKGY9MHxhW1p0KzQ+PjJdKXx8MTM3MzE0LEE9MHxlcyhjLDB8YVs0NzE3M10sMCwwKSxtPStqblt3Pj4yXSksZj0oMiZxZSk+Pj4xfDIpOihobChsLHApLGY9MSk6NTc2JnFlPyhwPTB8c04o''@;'; put 'put ''YyksZj0xKToocD0wLGY9MCksUj0wfFN5KGwsYyl9fXdoaWxlKDApO2ZvcigwfGZlWzEyKyhBPTB8YVs4KygwfGFba3Q+PjJdKT4+Ml0pPj4wXT85OT09KDB8ZmVbKEE9MHxhW0E+PjJdKT4+MF0pPyhBPTA9PSgwfFppKEEsMTA1NTE5KSkscnQ9MzMpOnE9MTooQT0xLHJ0PTMzKSwzMz09KDB8''@;'; put 'put ''cnQpJiYoMCE9KDB8RCl8Zjw8MjQ+PjI0PT0wfChBXj0xKT9xPUE6KG1hKGwsMTM3Mzc5KSxEPTEscT0wKSkscGU9KDB8RXQpPDMsZ2U9MCE9KDUxMiZxZXwwKSxPZT0wPT0oOCZxZXwwKSxiZT0wPT0oNjQmcWV8MCksaz0wPT0oMTAyNCZxZXwwKSxNPTA9PSgyMTMwNzA2NDQ0JnFlfDApLEc9''@;'; put 'put ''MDshKCgwfEcpPj0oMHxEKSk7KXtmb3Iodz0wfEFyKEcsRXQpLGI9MHxhWzQ3Mjg2XSxBPTA7ISgoMHxBKT49KDB8RXQpKTspbT0rX1tXZSsoKEhuPUErd3wwKTw8NCkrOD4+M10sX1tiKyhBPDw0KT4+M109K19bMTYrKFNuPTB8YVtrdD4+Ml0pPj4zXSsgK19bV2UrKEhuPDw0KT4+M10qSGUs''@;'; put 'put ''X1tiKyhBPDw0KSs4Pj4zXT0rX1tTbisyND4+M10rbSpWZSxBPUErMXwwO2Rve2lmKCFwZSl7aWYoIWJlKXswPT0oMHxHKSYmKDB8YkYobCxiLHAsMSkpPjEmJihhW1JlPj4yXT0wfHRpKGMpLCRyKDMsMTA2MzA0LFJlKSksa2EobCwwfGFbNDcyODZdLEV0LDApO2JyZWFrfWlmKCFrKXttYShs''@;'; put 'put ''LDEzNzM3OSksa2EobCwwfGFbNDcyODZdLEV0LDI1NSZmKSxtYShsLFIpLFdvKGwsMzIrKDB8YVs0NzI4Nl0pfDAsMik7YnJlYWt9aWYoZiY9MjU1LE0pe2thKGwsYixFdCxmKTticmVha31LNShsLGIsRXQscWUsZik7YnJlYWt9Z2UmMD09KDB8RykmJjAhPSgwfCRzKHAsNTgpKSYmKCgwfHBX''@;'; put 'put ''KGwsYixwKSk+MSYmKGFbTGU+PjJdPTB8dGkoYyksJHIoMywxMDYzMDQsTGUpKSxmPTApLCR1KGwsMHxhWzQ3Mjg2XSxFdCwyNTUmZiksT2V8fHVOKGwsYyl9d2hpbGUoMCk7Rz1HKzF8MCxmPTB9aWYoMHxmZVsxMisoQT0wfGFbOCsoMHxhW2t0Pj4yXSk+PjJdKT4+MF0/OTk9PSgwfGZlWyhB''@;'; put 'put ''PTB8YVtBPj4yXSk+PjBdKSYmMD09KDB8WmkoQSwxMDU1MTkpKT8wfChBPTB8TGkoYywxMDU1MjYpKSYmMHxmZVtBPj4wXSYmKGI9QSxydD02NSk6KGI9QSxydD02NSk6MHwoQT0wfExpKGMsMTA5MDI1KSkmJjB8ZmVbQT4+MF0mJihiPUEscnQ9NjUpLDY1PT0oMHxydCkpe2Zvcih3PTB8YVs0''@;'; put 'put ''NzI4Nl0sQT0wOyEoKDB8QSk+PSgwfEV0KSk7KW09K19bV2UrKEE8PDQpKzg+PjNdLF9bdysoQTw8NCk+PjNdPStfWzE2KyhIbj0wfGFba3Q+PjJdKT4+M10rICtfW1dlKyhBPDw0KT4+M10qSGUsX1t3KyhBPDw0KSs4Pj4zXT0rX1tIbisyND4+M10rbSpWZSxBPUErMXwwO0E9MjU1JmY7ZG97''@;'; put 'put ''aWYoIShxfGY8PDI0Pj4yND09MCkpe2lmKHBlKXtpZihnZSYwPT0oMHxHKSYmMCE9KDB8JHMocCw1OCkpJiYoKDB8cFcobCx3LHApKT4xJiYoYVthdD4+Ml09MHx0aShjKSwkcigzLDEwNjMwNCxhdCkpLGY9MCksJHUobCwwfGFbNDcyODZdLEV0LDI1NSZmKSxPZSlicmVhazt1TihsLGMpO2Jy''@;'; put 'put ''ZWFrfWlmKGJlKXtpZigxMiZxZSl7SzUobCx3LEV0LHFlLEEpO2JyZWFrfWthKGwsdyxFdCxBKTticmVha30oMHxiRihsLHcscCwxKSk+MSYmKGFbU3Q+PjJdPTB8dGkoYyksJHIoMywxMDYzMDQsU3QpKSxrYShsLDB8YVs0NzI4Nl0sRXQsMCk7YnJlYWt9fXdoaWxlKDApO3RFKGwsYixIbj0w''@;'; put 'put ''fGFbNDcyODZdLEV0LGYsMHx2MihjLDB8YVs0NzE2Nl0sMTM3MzA4KSl9RnQoMHxhW1p0Pj4yXSksYjcobCwxMCwwfGFbMTA0KygwfGFba3Q+PjJdKT4+Ml0pLHN0JiYoNCZhW2wrMTUyPj4yXXwwJiZHMShsLDB8YVtidD4+Ml0sMHxhW2N0KzIyOD4+Ml0sMHxhW2N0KzI0ND4+Ml0sMHxhW2N0''@;'; put 'put ''KzIxMj4+Ml0pLEVoKGwpKSxsZT1hbn0sZnVuY3Rpb24gbmxlKGwsYyl7Y3w9MDt2YXIgYixrLE0sUixHLHEsZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTAscGU9MCxnZT0wLGJlPTA7cT1sZSxsZT1sZSsxNnwwLG09cSwwPT0oMHwoZj0wfGFbKEc9MjA4KyhSPTB8YVsxNisobHw9MCk+PjJdKXww''@;'; put 'put ''KT4+Ml0pKSYmMD09KDEmaXRbUisyNjA+PjFdKT9EPTA6KDQmYVtsKzE1Mj4+Ml18fEcxKGwsZiwwfGFbUisyMjg+PjJdLDB8YVtSKzI0ND4+Ml0sMHxhW1IrMjEyPj4yXSksRD0xKSxrPTB8YVs0NCsoQT0wfGFbMTIrKDB8YVsoYj1jKzE2fDApPj4yXSk+PjJdKT4+Ml0sTT0wfGFbQSs4Pj4y''@;'; put 'put ''XSxBPTB8YVtBKzQ+PjJdLCgwfGFbNDcyOThdKTwoMHxNKSYmKGFbNDcyOThdPWY9TSsyfDAsZj0ocD0wfGFbNDcyOTldKT8wfFYwKHAsZjw8NCk6MHxRbihmPDw0KSxhWzQ3Mjk5XT1mKSxlRChjLG0pLGQyKGwsMzImYVttPj4yXT8yMjAxNjoyMjAyMCksMHwoZj0wfGFbNDcxNzJdKSYmeGgo''@;'; put 'put ''bCwrTWwoYyxmLDEsMCkpLGY9MHxYdFsxMTcrKDB8YVtiPj4yXSk+PjBdO2Rve2lmKCEoMSZmKSl7aWYoMiZmfDApe21hKGwsMHxCYShjLDAsMTA2MjU2KSksaGwobCxmPTB8QmEoYywwLDEwNjI2NCkpO2JyZWFrfWlmKDgmZnwwKXttYShsLDB8QmEoYywwLDEwNjI3MikpLGhsKGwsZj0wfEJh''@;'; put 'put ''KGMsMCwxMDYyODApKTticmVha31pZig0JmYpe21hKGwsMHxCYShjLDAsMTA2Mjg4KSksaGwobCxmPTB8QmEoYywwLDEwNjI5NikpO2JyZWFrfWhsKGwsZj0wfHFRKGMsMTM3MzE0KSksU3kobCxjKTticmVha31tYShsLDB8QmEoYywwLDEwNjI0MCkpLGhsKGwsZj0wfEJhKGMsMCwxMDYyNDgp''@;'; put 'put ''KX13aGlsZSgwKTtmb3IoQT9wPUE6KDB8ZmVbZj4+MF0mJm1hKGwsZikscD0xKSxtPTEsYz0wOyEoKDB8Yyk+PSgwfHApKTspe2ZvcihBPTB8QXIoYyxNKSx3PTB8YVs0NzI5OV0sZj0wOyEoKDB8Zik+PSgwfE0pKTspcGU9K19baysoKGJlPWYrQXwwKTw8NCkrOD4+M10sX1t3KyhmPDw0KT4+''@;'; put 'put ''M109K19bMTYrKGdlPTB8YVtiPj4yXSk+PjNdKyArX1trKyhiZTw8NCk+PjNdLF9bdysoZjw8NCkrOD4+M109K19bZ2UrMjQ+PjNdK3BlLGY9ZisxfDA7JHUobCx3LE0sbSksbT0wLGM9YysxfDB9RCYmKDQmYVtsKzE1Mj4+Ml18MCYmRzEobCwwfGFbRz4+Ml0sMHxhW1IrMjI4Pj4yXSwwfGFb''@;'; put 'put ''UisyNDQ+PjJdLDB8YVtSKzIxMj4+Ml0pLEVoKGwpKSxsZT1xfSxmdW5jdGlvbiAkYWUobCxjKXt2YXIgYixrLFIsRyxxLHBlLGJlLE9lLGdlLGY9MCxwPTAsbT0wLEE9MCx3PTAsTT0wLEQ9MDtiZT1sZSxsZT1sZSsxNDR8MCxiPWJlKzk2fDAsUj1iZSxHPWJlKzEyOHwwLGdlPShmPTB8YVso''@;'; put 'put ''cGU9MjA4KyhxPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pPzE6MCE9KDEmaXRbcSsyNjA+PjFdKSxhWyhNPWJlKzY0fDApPj4yXT1hWyhtPTE2KyhrPTB8YVsxMisoRD0wfGFbKHc9MTYrKGN8PTApfDApPj4yXSk+PjJdKXwwKT4+Ml0sYVtNKzQ+PjJdPWFbbSs0Pj4yXSxhW00rOD4+Ml09''@;'; put 'put ''YVttKzg+PjJdLGFbTSsxMj4+Ml09YVttKzEyPj4yXSxhW00rMTY+PjJdPWFbbSsxNj4+Ml0sYVtNKzIwPj4yXT1hW20rMjA+PjJdLGFbTSsyND4+Ml09YVttKzI0Pj4yXSxhW00rMjg+PjJdPWFbbSsyOD4+Ml0sX1tNPj4zXT0rX1tNPj4zXSsoT2U9K19bRCsxNj4+M10pLEE9K19bRCsyND4+''@;'; put 'put ''M10sX1soRD1NKzh8MCk+PjNdPStfW0Q+PjNdK0EsX1soRD1NKzE2fDApPj4zXT0rX1tEPj4zXStPZSxfWyhtPU0rMjR8MCk+PjNdPStfW20+PjNdK0EsZ2UmJjA9PSg0JmFbbCsxNTI+PjJdfDApJiZHMShsLGYsMHxhW3ErMjI4Pj4yXSwwfGFbcSsyNDQ+PjJdLDB8YVtxKzIxMj4+Ml0pLGY9''@;'; put 'put ''MHwkUShsLGMpLFN5KGwsYyksYVtHPj4yXT0wLDEmZj8oMHx1ayhwPTB8c04oYyksRyxiKSk8PDI0Pj4yND8oaGwobCwwfGFbRz4+Ml0pLFVmKGwsKHA9MHxhW0crND4+Ml0pfHwxMzczMTQsbT0wfGVzKGMsMHxhWzQ3MTczXSwwLDApLEE9K2puW2I+PjJdKSxwPWY+Pj4xJjF8Mik6KGhsKGws''@;'; put 'put ''cCkscD0xKTpwPTAsNzc9PSgwfGZlWyhtPTB8YVthWzgrKDB8YVt3Pj4yXSk+PjJdPj4yXSk+PjBdKSYmKGY9KHc9MD09KDB8WmkobSwxMDYyMjcpKSk/NHxmOmYpLDIxMzA3MDY0NDQmZj8oYVtSPj4yXT1hW00+PjJdLGFbUis0Pj4yXT1hW00rND4+Ml0sYVtSKzg+PjJdPWFbTSs4Pj4yXSxh''@;'; put 'put ''W1IrMTI+PjJdPWFbTSsxMj4+Ml0sYVsoTT1SKzMyfDApPj4yXT1hW0Q+PjJdLGFbTSs0Pj4yXT1hW0QrND4+Ml0sYVtNKzg+PjJdPWFbRCs4Pj4yXSxhW00rMTI+PjJdPWFbRCsxMj4+Ml0sX1tSKzE2Pj4zXT0rX1tNPj4zXSxfW1IrMjQ+PjNdPStfW1IrOD4+M10sX1tSKzQ4Pj4zXT0rX1tS''@;'; put 'put ''Pj4zXSxfW1IrNTY+PjNdPStfW1IrNDA+PjNdLEs1KGwsUiw0LGYscCkpOihhW2I+PjJdPWFbTT4+Ml0sYVtiKzQ+PjJdPWFbTSs0Pj4yXSxhW2IrOD4+Ml09YVtNKzg+PjJdLGFbYisxMj4+Ml09YVtNKzEyPj4yXSxhW2IrMTY+PjJdPWFbTSsxNj4+Ml0sYVtiKzIwPj4yXT1hW00rMjA+PjJd''@;'; put 'put ''LGFbYisyND4+Ml09YVtNKzI0Pj4yXSxhW2IrMjg+PjJdPWFbTSsyOD4+Ml0seTMobCxiLHApKSxySihsLGMsayksRnQoMHxhW0c+PjJdKSxnZSYmKDQmYVtsKzE1Mj4+Ml18MCYmRzEobCwwfGFbcGU+PjJdLDB8YVtxKzIyOD4+Ml0sMHxhW3ErMjQ0Pj4yXSwwfGFbcSsyMTI+PjJdKSxFaChs''@;'; put 'put ''KSksbGU9YmV9LGZ1bmN0aW9uIEphZShsLGMpe3ZhciBmLHAsQSx3LE0sYixtPTAsaz0wLEQ9MCxSPTA7TT1sZSxsZT1sZSszMnwwLGs9TSxiPShtPTB8YVsodz0yMDgrKEE9MHxhWzE2KyhsfD0wKT4+Ml0pfDApPj4yXSk/MTowIT0oMSZpdFtBKzI2MD4+MV0pLDB8KHA9MHxhWzEyKyhjPTB8''@;'; put 'put ''YVsoZj0xNisoY3w9MCl8MCk+PjJdKT4+Ml0pJiYoYiYmMD09KDQmYVtsKzE1Mj4+Ml18MCkmJihHMShsLG0sMHxhW0ErMjI4Pj4yXSwwfGFbQSsyNDQ+PjJdLDB8YVtBKzIxMj4+Ml0pLGM9MHxhW2Y+PjJdKSxtPTB8YVtsKzM2Pj4yXSxSPStfW2MrMjQ+PjNdKyArKDB8YVtwKzg+PjJdKSxE''@;'; put 'put ''PTB8YVtwPj4yXSxfW2s+PjNdPStfW2MrMTY+PjNdKyArKDB8YVtwKzQ+PjJdKSxfW2srOD4+M109UixhW2srMTY+PjJdPUQsVDAobSwxMDY0NTAsayksYVsoaz01NisoMHxhWzEwNCsobT0wfGFbZj4+Ml0pPj4yXSl8MCk+PjJdPWFbKG09bSsxNnwwKT4+Ml0sYVtrKzQ+PjJdPWFbbSs0Pj4y''@;'; put 'put ''XSxhW2srOD4+Ml09YVttKzg+PjJdLGFbaysxMj4+Ml09YVttKzEyPj4yXSxiNyhsLDEwLDB8YVsxMDQrKDB8YVtmPj4yXSk+PjJdKSxiJiYoNCZhW2wrMTUyPj4yXXwwJiZHMShsLDB8YVt3Pj4yXSwwfGFbQSsyMjg+PjJdLDB8YVtBKzI0ND4+Ml0sMHxhW0ErMjEyPj4yXSksRWgobCkpKSxs''@;'; put 'put ''ZT1NfSxmdW5jdGlvbiBqYWUobCxjKXt2YXIgcCxmPTA7X1sobHw9MCk+PjNdPTQuOTc5Nzk2NTY5NzY1NTYqKGY9KHA9LjUyNTczMTExMjExOTEzMzYqK19bKGN8PTApPj4zXSk+KGY9Ljg5NDQyNzE5MDk5OTkxNTkqK19bYys4Pj4zXSk/cDpmKSxfW2wrOD4+M109NC43MzYwNjc5Nzc0OTk3''@;'; put 'put ''OSpmfSxmdW5jdGlvbiBaYWUobCxjKXtsfD0wO3ZhciB3LGIsTSxmPTAscD0wLG09MCxBPTAsaz0wLEQ9MCxSPTA7Zm9yKChmPShtPStfWyhNPTgrKGN8PTApfDApPj4zXSkvKHA9K19bYz4+M10pKT4uOTUxMDU2NTE2Mjk1MTUzNj9rPTEuMDUxNDYyMjI0MjM4MjY3MiptOmY8Ljk1MTA1NjUx''@;'; put 'put ''NjI5NTE1MzY/KGs9cCxtPS45NTEwNTY1MTYyOTUxNTM2KnApOms9cCxwPS41MjU3MzExMTIxMTkxMzM2Kmssdz0uMjAwODExNDE1ODg2MjI3MjUqayxiPS4wNTAyMDI4NTM5NzE1NTY4MSprLGY9LjMxNDE1OTI2NTM1ODk3OTMsQT0wOyEoKDB8QSk+PTEwKTspX1tsKyhBPDw0KT4+M109K2hh''@;'; put 'put ''KCtmKSpwLF9bbCsoQTw8NCkrOD4+M109K0RhKCtmKSpwLWIsX1tsKygoRD0xfEEpPDw0KT4+M109K2hhKCsoUj1mKy42MjgzMTg1MzA3MTc5NTg2KSkqdyxfW2wrKEQ8PDQpKzg+PjNdPStEYSgrUikqdy1iLGYrPTEuMjU2NjM3MDYxNDM1OTE3MixBPUErMnwwO19bYz4+M109ayxfW00+PjNd''@;'; put 'put ''PW19LGZ1bmN0aW9uIGVsZShsLGMpe3ZhciBmO2x8PTAsX1soZj04KyhjfD0wKXwwKT4+M109MS4zNzUqK19bZj4+M10sYVtsPj4yXT1hW2M+PjJdLGFbbCs0Pj4yXT1hW2MrND4+Ml0sYVtsKzg+PjJdPWFbYys4Pj4yXSxhW2wrMTI+PjJdPWFbYysxMj4+Ml19LGZ1bmN0aW9uIHRsZShsLGMp''@;'; put 'put ''e3ZhciBwLG0sYixNLEQsZj0wLEE9MCx3PTAsaz0wO3c9LjUqKEQ9K19bOCsoY3w9MCk+PjNdKSxfWyhsfD0wKT4+M109bT0uNSooaz0rX1tjPj4zXSksX1tsKzg+PjNdPXA9LjQwOTA5MDkwOTA5MDkwOTA2KkQsX1tsKzE2Pj4zXT1tLF9bbCsyND4+M109QT0uNDU5MjUzMDkwOTA5MDkwOSpE''@;'; put 'put ''LF9bbCszMj4+M109Yj0uMjc1ODkyKmssX1tsKzQwPj4zXT13LF9bbCs0OD4+M109MCxfW2wrNTY+PjNdPXcsX1tsKzY0Pj4zXT1rKj0tLjI3NTg5MixfW2wrNzI+PjNdPXcsX1tsKzgwPj4zXT1NPS1tLF9bbCs4OD4+M109QSxfWyhmPWwrOTZ8MCk+PjNdPU0sX1tsKzEwND4+M109cCxhWyhj''@;'; put 'put ''PWwrMTEyfDApPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sX1soYz1sKzEyOHwwKT4+M109TSxfW2wrMTM2Pj4zXT0tLjQwOTA5MDkwOTA5MDkwOTA2KkQsYVsoZj1sKzE0NHwwKT4+Ml09YVtjPj4yXSxh''@;'; put 'put ''W2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLF9bbCsxNjA+PjNdPU0sX1tsKzE2OD4+M109QT0tQSxfW2wrMTc2Pj4zXT1rLF9bbCsxODQ+PjNdPXc9LXcsX1tsKzE5Mj4+M109MCxfW2wrMjAwPj4zXT13LF9bbCsyMDg+PjNdPWIs''@;'; put 'put ''X1tsKzIxNj4+M109dyxfW2wrMjI0Pj4zXT1tLF9bbCsyMzI+PjNdPUEsX1soZj1sKzI0MHwwKT4+M109bSxfW2wrMjQ4Pj4zXT0tcCxhWyhjPWwrMjU2fDApPj4yXT1hW2Y+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0s''@;'; put 'put ''Yz1sKzI4OHwwLGFbKGY9bCsyNzJ8MCk+PjJdPWFbbD4+Ml0sYVtmKzQ+PjJdPWFbbCs0Pj4yXSxhW2YrOD4+Ml09YVtsKzg+PjJdLGFbZisxMj4+Ml09YVtsKzEyPj4yXSxhW2M+PjJdPWFbbD4+Ml0sYVtjKzQ+PjJdPWFbbCs0Pj4yXSxhW2MrOD4+Ml09YVtsKzg+PjJdLGFbYysxMj4+Ml09''@;'; put 'put ''YVtsKzEyPj4yXX0sZnVuY3Rpb24geWIobCxjKXt2YXIgbSxBLHcsYixmPTAscD0wO2lmKGI9bGUsbGU9bGUrMTZ8MCxmPWIsbT0oK19bOCsoY3w9MCk+PjNdLStfWzU2OCsobHw9MCk+PjNdKS8rX1tsKzUyOD4+M10sISgrZW8oKyh3PSgrX1tjPj4zXS0rX1soQT1sKzU2MHwwKT4+M10pLytf''@;'; put 'put ''W2wrNTIwPj4zXSkpPDFlLTQmK2VvKCttKTwxZS00KSl7c3dpdGNoKDB8ZmVbbCs1NDE+PjBdKXtjYXNlIDA6YVtmPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sRTkobCxmKTticmVhaztjYXNlIDI6cD0r''@;'; put 'put ''X1tsKzM1Mj4+M10sMHxhW2wrMzYwPj4yXT8oX1soZj1sKzMzNnwwKT4+M109K19bZj4+M10tbS9wLF9bKGY9bCszNDR8MCk+PjNdPStfW2Y+PjNdK3cvcCk6KF9bKGY9bCszMzZ8MCk+PjNdPStfW2Y+PjNdLXcvcCxfWyhmPWwrMzQ0fDApPj4zXT0rX1tmPj4zXS1tL3ApLGZlW2wrNTM3Pj4w''@;'; put 'put ''XT0xfWFbQT4+Ml09YVtjPj4yXSxhW0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdfWxlPWJ9LGZ1bmN0aW9uIHF6KGwsYyl7T1QobD0wfGFbKGx8PTApPj4yXSwwfGFbbCsxNjg+PjJdLGN8PTApfSxYNixYbSxmdW5jdGlvbiBxRyhs''@;'; put 'put ''LGMpe1luKGN8PTAsbHw9MCwxKX0sZnVuY3Rpb24gJG9lKGwsYyl7bHw9MDt2YXIgYixrLE0sUixmPTAscD0wLG09MCxBPTAsdz0wLEQ9MDtSPWxlLGxlPWxlKzE2fDAsRD1SLE09KGN8PTApLTQ4fDAsYj1jKzQ4fDAsbT0oMHxhWzIzMisoMHxhWzE2KygwfGFbKDI9PSgwfChtPTMmYVtjPj4y''@;'; put 'put ''XSkpP2M6TSkrNDA+PjJdKT4+Ml0pPj4yXSktKDB8YVsyMzIrKDB8YVsxNisoMHxhWygzPT0oMHxtKT9jOmIpKzQwPj4yXSk+PjJdKT4+Ml0pLSgwfGhyWzE3MCsoMHxhWyhrPWMrMTZ8MCk+PjJdKT4+MV0pfDA7ZG97aWYoKDB8bSk+MCl7aWYoMT09KCgwfGFbMjc2Kyh3PTB8YVsxNisoQT0w''@;'; put 'put ''fGFbKDM9PSgwfChmPTMmYVtsPj4yXSkpP2w6bCs0OHwwKSs0MD4+Ml0pPj4yXSk+PjJdKSsoMHxhW3crMjY4Pj4yXSl8MCkpe1g1KEEsbSk7YnJlYWt9aWYoMT09KCgwfGFbMjc2KyhwPTB8YVsxNisoZj0wfGFbKDI9PSgwfGYpP2w6bCstNDh8MCkrNDA+PjJdKT4+Ml0pPj4yXSkrKDB8YVtw''@;'; put 'put ''KzI2OD4+Ml0pfDApKXtYNShmLDAtbXwwKTticmVha31pZigoMHxhW3crMjg4Pj4yXSk8KDB8YVtwKzI4OD4+Ml0pKXtYNShBLG0pO2JyZWFrfVg1KGYsMC1tfDApO2JyZWFrfX13aGlsZSgwKTtpZihtPTB8QVEoMHxhWygzPT0oMHwobT0zJmFbYz4+Ml0pKT9jOmIpKzQwPj4yXSwwfGFbKDI9''@;'; put 'put ''PSgwfG0pP2M6TSkrNDA+PjJdLHA9MHxhWzE2MCsoMHxhWyhmPWwrMTZ8MCk+PjJdKT4+Ml0sMSksKDB8QVEoMHxhWygyPT0oMHwodz0zJmFbYz4+Ml0pKT9jOk0pKzQwPj4yXSwwfGFbKDM9PSgwfHcpP2M6YikrNDA+PjJdLHAsMCkpPT0oMHxtKSlyZXR1cm4gYVsxNjArKDB8YVtrPj4yXSk+''@;'; put 'put ''PjJdPTAtcCxhWzE2MCsoMHxhW2Y+PjJdKT4+Ml09MCxmdW5jdGlvbiBxb2UobCxjKXt2YXIgZj0wLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MDtmb3IoYVsxNjQrKDB8YVsxNisoY3w9MCk+PjJdKT4+Ml09YVsocD0xNjQrKDB8YVsoYj0xNisobHw9MCl8MCk+PjJdKXwwKT4+Ml0sYVso''@;'; put 'put ''MHxhWzQ3MjU2XSkrKGFbcD4+Ml08PDIpPj4yXT1jLGFbMTY0KygwfGFbYj4+Ml0pPj4yXT0tMSxhWyhBPTI3NisocD0wfGFbKGI9MTYrKDB8YVsoMz09KDMmYVtsPj4yXXwwKT9sOmwrNDh8MCkrNDA+PjJdKXwwKT4+Ml0pfDApPj4yXT1rPShtPTB8YVtBPj4yXSktMXwwLEE9cCsyNzJ8MCx3''@;'; put 'put ''PTA7Oyl7aWYoKDB8dyk+PSgwfG0pKXtNPTM7YnJlYWt9aWYoKDB8YVsoZj0wfGFbQT4+Ml0pKyh3PDwyKT4+Ml0pPT0oMHxsKSlicmVhazt3PXcrMXwwfWZvcigzPT0oMHxNKSYmKGY9MHxhW3ArMjcyPj4yXSksYVtmKyh3PDwyKT4+Ml09YVtmKyhrPDwyKT4+Ml0sYVsoMHxhWzI3MisoMHxh''@;'; put 'put ''W2I+PjJdKT4+Ml0pKyhrPDwyKT4+Ml09MCxhWyhBPTI2OCsocD0wfGFbKGI9MTYrKDB8YVsoMj09KDMmYVtsPj4yXXwwKT9sOmwrLTQ4fDApKzQwPj4yXSl8MCk+PjJdKXwwKT4+Ml09az0obT0wfGFbQT4+Ml0pLTF8MCxBPXArMjY0fDAsdz0wOzspe2lmKCgwfHcpPj0oMHxtKSl7TT04O2Jy''@;'; put 'put ''ZWFrfWlmKCgwfGFbKGY9MHxhW0E+PjJdKSsodzw8Mik+PjJdKT09KDB8bCkpYnJlYWs7dz13KzF8MH04PT0oMHxNKSYmKGY9MHxhW3ArMjY0Pj4yXSksYVtmKyh3PDwyKT4+Ml09YVtmKyhrPDwyKT4+Ml0sYVsoMHxhWzI2NCsoMHxhW2I+PjJdKT4+Ml0pKyhrPDwyKT4+Ml09MCxrPTB8YVsy''@;'; put 'put ''NzIrKGw9MHxhWyhNPTE2KygwfGFbKDM9PSgzJmFbYz4+Ml18MCk/YzpjKzQ4fDApKzQwPj4yXSl8MCk+PjJdKT4+Ml0sYVsobD1sKzI3NnwwKT4+Ml09MSsoYj0wfGFbbD4+Ml0pLGFbaysoYjw8Mik+PjJdPWMsYVsoMHxhWzI3MisoTT0wfGFbTT4+Ml0pPj4yXSkrKGFbTSsyNzY+PjJdPDwy''@;'; put 'put ''KT4+Ml09MCxrPTB8YVsyNjQrKGI9MHxhWyhNPTE2KygwfGFbKDI9PSgzJmFbYz4+Ml18MCk/YzpjKy00OHwwKSs0MD4+Ml0pfDApPj4yXSk+PjJdLGFbKGI9YisyNjh8MCk+PjJdPTErKGw9MHxhW2I+PjJdKSxhW2srKGw8PDIpPj4yXT1jLGFbKDB8YVsyNjQrKE09MHxhW00+PjJdKT4+Ml0p''@;'; put 'put ''KyhhW00rMjY4Pj4yXTw8Mik+PjJdPTB9KGwsYyksWEkobSwwfGFbMjgwKyhEPTB8YVttKzE2Pj4yXSk+PjJdLDB8YVtEKzI4ND4+Ml0pLHZvaWQobGU9Uik7JHIoMSwxMDIyNjIsRCksemUoMTg4ODQ4LDEpfSxmdW5jdGlvbiBZaShsLGMpe2N8PTA7dmFyIHcsYixrLE0sRCxHLHEsZj0wLHA9''@;'; put 'put ''MCxtPTAsQT0wLFI9MCxwZT0wO2ZvcihxPWxlLGxlPWxlKzY0fDAsRz1xKzMyfDAsUj1xKzE2fDAsYj1xLGs9cSs0OHwwLF91KDExMDkzNSxsfD0wKSxfdSgxMTA5NDYsbCksTT1jKzE2fDAsRD1iKzh8MCx3PWsrNHwwLEE9MDshKCgwfEEpPj0oMHxhW2M+PjJdKSk7KSgwfChwPTB8YVsoZj0w''@;'; put 'put ''fGFbTT4+Ml0pKyg0MCpBfDApKzIwPj4yXSkpPT0oMHwobT0wfGFbZisoNDAqQXwwKSsyND4+Ml0pKT8oaDIoYixwKSxmPX5+K19bYj4+M10scD1+fitfW0Q+PjNdKToobG0oaywwPT0oMSZhW3A+PjJdfDApP3A6bSxmKyg0MCpBfDApfDApLGY9MHxhW2s+PjJdLHA9MHxhW3c+PjJdKSxhW1I+''@;'; put 'put ''PjJdPUEsYVtSKzQ+PjJdPWYsYVtSKzg+PjJdPXAsVDAobCwxMTA5NjYsUiksQT1BKzF8MDtmb3IobT1jKzR8MCxwPWMrMjB8MCxmPTA7ISgoMHxmKT49KDB8YVttPj4yXSkpOyljPTB8YVsoUj0wfGFbcD4+Ml0pKygyNCpmfDApKzE2Pj4yXSxwZT0rX1tSKygyNCpmfDApPj4zXSxhW0c+PjJd''@;'; put 'put ''PWFbUisoMjQqZnwwKSsxMj4+Ml0sYVtHKzQ+PjJdPWMsX1tHKzg+PjNdPXBlLFQwKGwsMTEwOTg2LEcpLGY9ZisxfDA7X3UoMTExMDA4LGwpLGxlPXF9LGZ1bmN0aW9uIGtCKGwsYyl7Y3w9MDtkb3tpZigwfHkwKGMsMTQwNjAzKSl7aWYoMHx5MChjLDE0MDYwOSkmJjB8eTAoYywxNDA2MTIp''@;'; put 'put ''KXtpZighKDB8eTAoYywxNDA2MTUpKSl7YVs0NzQwOV09MjY1LGZlWzE4OTY2Ml09MDticmVha31pZighKDB8eTAoYywxNDA2MTgpKSl7YVs0NzQwOV09MjYzO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYyMykpKXthWzQ3NDA5XT0yNjY7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjI4KSkpe2FbNDc0''@;'; put 'put ''MDldPTI3MDticmVha31pZighKDB8eTAoYywxNDA2MzApKSl7YVs0NzQwOV09MjcxO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYzMikpKXthWzQ3NDA5XT0yNzI7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjM0KSkpe2FbNDc0MDldPTI2OTticmVha31pZighKDB8eTAoYywxNDA2MzYpKSl7YVs0NzQw''@;'; put 'put ''OV09MjczO2JyZWFrfWlmKCEoMHx5MChjLDE0MDY0MCkpKXthWzQ3NDA5XT0yNzQ7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjQ0KSkpe2FbNDc0MDldPTI3NTticmVha31pZighKDB8eTAoYywxNDA2NDYpKSl7YVs0NzQwOV09MjgzPT0oMHxhWzQ3NDA5XSk/MjgyOjI1ODticmVha31pZighKDB8''@;'; put 'put ''eTAoYywxNDA2NDkpKSl7YVs0NzQwOV09Mjc3PT0oMHxhWzQ3NDA5XSk/Mjc2OjI3ODticmVha31pZighKDB8eTAoYywxNDA2NTIpKSl7YVs0NzQwOV09MjgwPT0oMHxhWzQ3NDA5XSk/Mjc5OjI4MTticmVha31pZigwfHkwKGMsMTQwNjU1KSl7WUUoYyk7YnJlYWt9YVs0NzQwOV09Mjg1PT0o''@;'; put 'put ''MHxhWzQ3NDA5XSk/Mjg0OjI1OTticmVha31hWzQ3NDA5XT0yNjF9ZWxzZSBhWzQ3NDA5XT0yNjQsZmVbMTg5NjYyXT0xfXdoaWxlKDApfSxhNSxmdW5jdGlvbiBwRyhsLGMpe2x8PTAsY3w9MDt2YXIgdyxiLGY9MCxwPTAsbT0wLEE9MDtiPWxlLGxlPWxlKzE2fDAsdz1iO2U6Zm9yKDs7KXtp''@;'; put 'put ''ZighKCgwfGMpPjMpKXtjPTk7YnJlYWt9Zm9yKHA9MDs7KXtpZigoMHxwKT49KDB8Yykpe2M9ODticmVhayBlfWlmKGY9KDB8KG09cCsxfDApKSUoMHxjKXwwLDB8aUEocCxBPShwKzJ8MCklKDB8Yyl8MCxsLGMpKWJyZWFrO3A9bX1mb3Iob3goMHxhW2wrKHA8PDIpPj4yXSwwfGFbbCsoZjw8''@;'; put 'put ''Mik+PjJdLDB8YVtsKyhBPDwyKT4+Ml0pLGM9YystMXwwOzspe2lmKCgwfGYpPj0oMHxjKSljb250aW51ZSBlO2FbbCsoZjw8Mik+PjJdPWFbbCsoKEE9ZisxfDApPDwyKT4+Ml0sZj1BfX04PT0oMHxjKT8obD0wfGFbMTU3MTJdLGFbdz4+Ml09MTQxODU4LGFbdys0Pj4yXT0zMjQsYVt3Kzg+''@;'; put 'put ''PjJdPTE0MjAwMyxUMChsLDE0MTgzOSx3KSk6OT09KDB8YykmJm94KDB8YVtsPj4yXSwwfGFbbCs0Pj4yXSwwfGFbbCs4Pj4yXSksbGU9Yn0sZnVuY3Rpb24gc18obCxjKXt2YXIgYixrLE0sZj0wLHA9MCxtPTAsQT0wLHc9MCxEPTAsUj0wLEc9MCxxPTA7Zm9yKGs9KGI9MHxhWzQ3NTEzXSkr''@;'; put 'put ''KDUyKihsfD0wKXwwKXwwLE09YisoNTIqKGN8PTApfDApfDAsQT0wOzMhPSgwfEEpOyl7Zm9yKEQ9YisoNTIqbHwwKSs0KyhBPDw0KXwwLFI9YisoNTIqbHwwKSs0KyhBPDw0KSs0fDAsRz1iKyg1MipsfDApKzQrKEE8PDQpKzEyfDAsbT0wOzMhPSgwfG0pOykoMHwocT0wfGFbYVtEPj4yXT4+''@;'; put 'put ''Ml0pKT09KDB8KHc9MHxhW2FbYisoNTIqY3wwKSs0KyhtPDw0KT4+Ml0+PjJdKSk/cD0oMHxhW2FbUj4+Ml0+PjJdKT09KDB8KGY9MHxhW2FbYisoNTIqY3wwKSs0KyhtPDw0KSs0Pj4yXT4+Ml0pKT8xMDo4OihmPTB8YVthW2IrKDUyKmN8MCkrNCsobTw8NCkrND4+Ml0+PjJdLHA9OCksOD09''@;'; put 'put ''KDB8cCkmJihwPTAsKDB8cSk9PSgwfGYpKSYmKDB8YVthW1I+PjJdPj4yXSk9PSgwfHcpJiYocD0xMCksMTA9PSgwfHApJiYoYVtHPj4yXT1NLGFbYisoNTIqY3wwKSs0KyhtPDw0KSsxMj4+Ml09ayksbT1tKzF8MDtBPUErMXwwfX0sZnVuY3Rpb24gbUcobCxjKXtjfD0wO3ZhciBwLGY9MCxt''@;'; put 'put ''PTA7bT0oMHwoZj0wfGFbNDc1MDhdKSk+PSgwfChwPTB8YVs0NzUwN10pKSwxPT0oMHwobHw9MCkpP20/KGFbYys0Pj4yXT1hWygwfGFbNDc1MDVdKSsocDw8Mik+PjJdLGw9MTkwMDI4LGY9LTEpOihsPTE5MDAyOCxmPS0xKTptPyhhW2MrND4+Ml09YVsoMHxhWzQ3NTA1XSkrKGY8PDIpPj4y''@;'; put 'put ''XSxsPTE5MDAzMixmPTEpOihsPTE5MDAzMixmPTEpLGFbbD4+Ml09bT0oMHxhW2w+PjJdKStmfDAsYVsoMHxhWzQ3NTA1XSkrKG08PDIpPj4yXT1jfSxmdW5jdGlvbiBaNChsLGMpe2FbKDE9PSgwfChsfD0wKSk/MTkwMDMyOjE5MDAyOCk+PjJdPWN8PTB9LExzLExzLExzLExzLExzLExzLExz''@;'; put 'put ''LExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzLExzXSxkbD1bTTAsZnVuY3Rpb24gaWllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIG0sQSx3LE0sRCxxLHBlLHA9MCxiPTAsaz0wLFI9MCxHPTA7cGU9bGUsbGU9bGUrMTA1''@;'; put 'put ''NnwwLEE9cGUrMTZ8MCxxPXBlKzh8MCxHPXBlLHc9cGUrMzJ8MCx1byhEPTB8YVsxMTQxNisoKE09MHxhWzEyKygwfGFbMTYrKGx8PTApPj4yXSk+PjJdKTw8Mik+PjJdLDY2OTE2KSxXaCh3LCtfWzE2KygwfGFbKHA9Zis0fDApPj4yXSk+PjNdKSx1byhELHcpLFA1KGwsMTk1MDU5LDB8YVth''@;'; put 'put ''W3A+PjJdPj4yXSksTkMobCksUj0oUj0wfGZlW2YrNDg+PjBdKTw8MjQ+PjI0PT0xMDg/LTE6Ujw8MjQ+PjI0PT0xMTQmMSxwPShwPTB8YVtwPj4yXSk/MTI3JmFbcCsyND4+Ml06MCwoNjU1MzUmKG09MHxpdFs4MjMyKygwfGFbNDY2OTBdKT4+MV0pKT4xNCYmKDB8YVsoaz0xODY3NjQrKE08''@;'; put 'put ''PDIpfDApPj4yXSkhPSgwfChiPWFbMTE0NjQrKCg2NTUzNSZtKS0xNTw8Mik+PjJdJnApKSYmKGFbRz4+Ml09Yixvbyh3LDY2OTE5LEcpLHVvKEQsdyksYVtrPj4yXT1iKSxfWyhHPWMrOHwwKT4+M109K19bRz4+M10rICtfW2YrMjQ+PjNdLHVvKEQsNjY5MjUpLGFbQT4+Ml09YVtjPj4yXSxh''@;'; put 'put ''W0ErND4+Ml09YVtjKzQ+PjJdLGFbQSs4Pj4yXT1hW2MrOD4+Ml0sYVtBKzEyPj4yXT1hW2MrMTI+PjJdLEI1KEQsQSksYVtxPj4yXT1SLG9vKHcsMTAyMjIwLHEpLHVvKEQsdyksV2godywrX1tmKzMyPj4zXSksdW8oRCx3KSxQNShsLDE5NTA1OSwwfGFbZj4+Ml0pLGxlPXBlfSxmdW5jdGlv''@;'; put 'put ''biBFVyhsLGMsZil7dmFyIHAsbSxBLHc7Y3w9MCxmfD0wLHc9bGUsbGU9bGUrMTA0MHwwLG09dyxBPXcrMTZ8MCxwPTB8YVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSx6VChsKSxOQyhsKSxmPygzPT0oMXxmKT9URihsLGYsYywyKTpHVChsKSx1byhsPTB8YVsxMTQxNisocDw8Mik+PjJd''@;'; put 'put ''LDY2OTEwKSk6dW8obD0wfGFbMTE0MTYrKHA8PDIpPj4yXSw2NjkxMyksYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sQjUobCxtKSxXaChBLCtfW2MrMTY+PjNdLStfW2M+PjNdKSx1byhsLEEpLFdo''@;'; put 'put ''KEEsK19bYysyND4+M10tK19bYys4Pj4zXSksdW8obCxBKSxsZT13fSxmdW5jdGlvbiBLZChsLGMsZil7Y3w9MCxmfD0wLHpUKGx8PTApLE5DKGwpLFZDKGwsNzYsYyxmKX0sZnVuY3Rpb24gZmllKGwsYyxmKXtGdCgwfGFbOCsoY3w9MCk+PjJdKSxGdChjKX0sZnVuY3Rpb24gcGllKGwsYyxm''@;'; put 'put ''KXtjfD0wO3ZhciBtLEEsdyxiLGssTSxELFIsRyxxLHBlLHA9MDtSPWxlLGxlPWxlKzgwfDAsRD1SLGs9MHxhWzE2KygwfGFbMTYrKGx8PTApPj4yXSk+PjJdLE09MHxhWzQ2NzEwXSxBPTB8YVtsKzM2MD4+Ml0/MS41NzA3OTYzMjY3OTQ4OTY2OjAsYj0uMzMzMzMzMzMzMzMzMzMzMyoobT0r''@;'; put 'put ''X1tsKzM1Mj4+M10qK19bMTYrKHA9MHxhWzQrKGZ8PTApPj4yXSk+PjNdKSorKCgwfFVvKHc9MHxhW2Y+PjJdKSk+Pj4wKSxwPShwPTB8YVtwKzg+PjJdKT8wfGFbcCsyMD4+Ml06LTEscGU9MHxmZVtmKzQ4Pj4wXSxxPStfW2M+PjNdLEc9K19bYys4Pj4zXSxmPTB8ZnVuY3Rpb24gekMobCl7''@;'; put 'put ''bHw9MDt2YXIgQSx3LGM9MCxmPTAscD0wLG09MDtmb3Iodz1sZSxsZT1sZSsxNnwwLEE9dywoYz0wfGFbNDY3MTJdKXx8KGFbNDY3MTNdPTY0LGM9MHxGMCg2NCksYVs0NjcxMl09YyksZj0wO209bCsxfDAsKHA9MHxmZVtsPj4wXSk8PDI0Pj4yNDspKDB8Zik+KChsPTB8YVs0NjcxM10pLTh8''@;'; put 'put ''MCkmJihhWzQ2NzEzXT1jPWw8PDEsYz0wfFVhKDB8YVs0NjcxMl0sYyksYVs0NjcxMl09YyxjPWMrZnwwKSxwPDwyND4+MjQ8PS0xPyhmZVtjPj4wXT05MixhW0E+PjJdPTI1NSZwLG9vKGMrMXwwLDgxMjI0LEEpLGw9bSxjPWMrNHwwLGY9Zis0fDApOihwPDwyND4+MjQ9PTkyJiYoZmVbYz4+''@;'; put 'put ''MF09OTIsZj1mKzF8MCxjPWMrMXwwKSxmZVtjPj4wXT1wLGw9bSxjPWMrMXwwLGY9ZisxfDApO3JldHVybiBmZVtjPj4wXT0wLGxlPXcsMHxhWzQ2NzEyXX0odyksYVtEPj4yXT00LGFbRCs0Pj4yXT1wZTw8MjQ+PjI0PT0xMDg/MDpwZTw8MjQ+PjI0PT0xMTQ/MjoxLGFbRCs4Pj4yXT1rLGFb''@;'; put 'put ''RCsxMj4+Ml09TSxhW0QrMTY+PjJdPTAsYVtEKzIwPj4yXT1wLF9bRCsyND4+M109bSxfW0QrMzI+PjNdPUEsYVtEKzQwPj4yXT02LF9bRCs0OD4+M109bSxfW0QrNTY+PjNdPWIsYVtEKzY0Pj4yXT1+fihxKyhxPj0wPy41Oi0uNSkpLGFbRCs2OD4+Ml09fn4oRysoRystNzI+PTA/LTcxLjU6''@;'; put 'put ''LTcyLjUpKSxhW0QrNzI+PjJdPWYsT3IobCw2ODU0OSxEKSxsZT1SfSxmdW5jdGlvbiBnaWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLFIsRyxxLHBlLGdlLGJlLE9lLGs9MCxNPTAsRD0wO3A9bGUsbGU9bGUrMTEyfDAsbT1wKzh8MCxnZT1+fitfWzE1Misoaz0wfGFbMTYrKGx8''@;'; put 'put ''PTApPj4yXSk+PjNdLHBlPTB8YVtrKzE2Pj4yXSxxPTB8YVtrKzU2Pj4yXSxHPTB8YVs0NjcxMF0sdTcoayxPZT1wKzEwNHwwLGJlPXApLGs9fn4oKEQ9K19bYz4+M10pKyhEPj0wPy41Oi0uNSkpLGI9fn4oKE09K19bYys4Pj4zXSkrKE0+PTA/LjU6LS41KSksRD0odz0rX1tjKzE2Pj4zXSkt''@;'; put 'put ''RCxNPShBPStfW2MrMjQ+PjNdKS1NLGM9MHxhW09lPj4yXSxSPStfW2JlPj4zXSxhW20+PjJdPTEsYVttKzQ+PjJdPTEsYVttKzg+PjJdPWMsYVttKzEyPj4yXT1nZSxhW20rMTY+PjJdPXBlLGFbbSsyMD4+Ml09cSxhW20rMjQ+PjJdPUcsYVttKzI4Pj4yXT0wLGFbbSszMj4+Ml09MHxmPzIw''@;'; put 'put ''Oi0xLF9bbSs0MD4+M109UixhW20rNDg+PjJdPTAsX1ttKzU2Pj4zXT0wLGFbbSs2ND4+Ml09ayxhW20rNjg+PjJdPWIsYVttKzcyPj4yXT1+fihEKyhEPj0wPy41Oi0uNSkpLGFbbSs3Nj4+Ml09fn4oTSsoTT49MD8uNTotLjUpKSxhW20rODA+PjJdPWssYVttKzg0Pj4yXT1iLGFbbSs4OD4+''@;'; put 'put ''Ml09fn4odysodz49MD8uNTotLjUpKSxhW20rOTI+PjJdPX5+KEErKEE+PTA/LjU6LS41KSksT3IobCw2ODQyNyxtKSxsZT1wfSxmdW5jdGlvbiBBaWUobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLGssRCxSLE09MDtwPWxlLGxlPWxlKzk2fDAsbT1wKzh8MCxrPX5+K19bMTUyKyhS''@;'; put 'put ''PTB8YVsxNisobHw9MCk+PjJdKT4+M10sYj0wfGFbUisxNj4+Ml0sdz0wfGFbNDY3MTBdLHU3KFIsTT1wKzgwfDAsRD1wKSxNPTB8YVtNPj4yXSxBPStfW0Q+PjNdLGFbbT4+Ml09MixhW20rND4+Ml09MSxhW20rOD4+Ml09TSxhW20rMTI+PjJdPWssYVttKzE2Pj4yXT1iLGFbbSsyMD4+Ml09''@;'; put 'put ''MCxhW20rMjQ+PjJdPXcsYVttKzI4Pj4yXT0wLGFbbSszMj4+Ml09MCxfW20rNDA+PjNdPUEsYVttKzQ4Pj4yXT0wLGFbbSs1Mj4+Ml09MCxhW20rNTY+PjJdPTAsYVttKzYwPj4yXT0wLGFbbSs2ND4+Ml09MCxhW20rNjg+PjJdPWYsT3IobCw2ODMzMSxtKSxPRihsLGMsZiwwKSxsZT1wfSxm''@;'; put 'put ''dW5jdGlvbiBzN2UobCxjLGYpe3ZhciBtLEEsdyxiLGssTSxELFIsRyxwPTA7TT1sZSxsZT1sZSs4MHwwLGs9TSx3PTB8YVsxNisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXSxiPTB8YVs0NjcxNl0sbT0rX1tsKzM1Mj4+M10qK19bMTYrKHA9MHxhWzQrKGZ8PTApPj4yXSk+PjNdLEE9MHxhW2wr''@;'; put 'put ''MzYwPj4yXT8xLjU3MDc5NjMyNjc5NDg5NjY6MCxwPShwPTB8YVtwKzg+PjJdKT8wfGFbcCsyMD4+Ml06LTEsRz0wfGZlW2YrNDg+PjBdLFI9K19bKGN8PTApPj4zXSxEPStfW2MrOD4+M10sZj0wfGZ1bmN0aW9uIFNpZShsKXtsfD0wO3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO2Zvcih3PWxl''@;'; put 'put ''LGxlPWxlKzE2fDAsQT13LChjPTB8YVs0NjcxOF0pfHwoYVs0NjcxOV09NjQsYz0wfEYwKDY0KSxhWzQ2NzE4XT1jKSxmPTA7bT1sKzF8MCwocD0wfGZlW2w+PjBdKTw8MjQ+PjI0OykoMHxmKT4oKGw9MHxhWzQ2NzE5XSktOHwwKSYmKGFbNDY3MTldPWM9bDw8MSxjPTB8VWEoMHxhWzQ2NzE4''@;'; put 'put ''XSxjKSxhWzQ2NzE4XT1jLGM9YytmfDApLHA8PDI0Pj4yNDw9LTE/KGZlW2M+PjBdPTkyLGFbQT4+Ml09MjU1JnAsb28oYysxfDAsODEyMjQsQSksbD1tLGM9Yys0fDAsZj1mKzR8MCk6KHA8PDI0Pj4yND09OTImJihmZVtjPj4wXT05MixmPWYrMXwwLGM9YysxfDApLGZlW2M+PjBdPXAsbD1t''@;'; put 'put ''LGM9YysxfDAsZj1mKzF8MCk7cmV0dXJuIGZlW2M+PjBdPTAsbGU9dywwfGFbNDY3MThdfSgwfGFbZj4+Ml0pLGFbaz4+Ml09NCxhW2srND4+Ml09Rzw8MjQ+PjI0PT0xMDg/MDpHPDwyND4+MjQ9PTExND8yOjEsYVtrKzg+PjJdPXcsYVtrKzEyPj4yXT1iLGFbaysxNj4+Ml09MCxhW2srMjA+''@;'; put 'put ''PjJdPXAsX1trKzI0Pj4zXT1tLF9bayszMj4+M109QSxhW2srNDA+PjJdPTQsX1trKzQ4Pj4zXT0wLF9bays1Nj4+M109MCxhW2srNjQ+PjJdPX5+KFIrKFI+PTA/LjU6LS41KSksYVtrKzY4Pj4yXT1+fihEKyhEPj0wPy41Oi0uNSkpLGFbays3Mj4+Ml09ZixPcihsLDY4NTQ5LGspLGxlPU19''@;'; put 'put ''LGZ1bmN0aW9uIFBGKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHAsbSxBLHcsYixSLEcscSxwZSxnZSxiZSxPZSxrPTAsTT0wLEQ9MDtwPWxlLGxlPWxlKzExMnwwLG09cCs4fDAsZ2U9fn4rX1sxNTIrKGs9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSxwZT0wfGFbaysxNj4+Ml0scT0wfGFbays1Nj4+''@;'; put 'put ''Ml0sRz0wfGFbNDY3MTZdLCRUKGssT2U9cCsxMDR8MCxiZT1wKSxrPX5+KChEPStfW2M+PjNdKSsoRD49MD8uNTotLjUpKSxiPX5+KChNPStfW2MrOD4+M10pKyhNPj0wPy41Oi0uNSkpLEQ9KHc9K19bYysxNj4+M10pLUQsTT0oQT0rX1tjKzI0Pj4zXSktTSxjPTB8YVtPZT4+Ml0sUj0rX1ti''@;'; put 'put ''ZT4+M10sYVttPj4yXT0xLGFbbSs0Pj4yXT0xLGFbbSs4Pj4yXT1jLGFbbSsxMj4+Ml09Z2UsYVttKzE2Pj4yXT1wZSxhW20rMjA+PjJdPXEsYVttKzI0Pj4yXT1HLGFbbSsyOD4+Ml09MCxhW20rMzI+PjJdPTB8Zj8yMDotMSxfW20rNDA+PjNdPVIsYVttKzQ4Pj4yXT0wLF9bbSs1Nj4+M109''@;'; put 'put ''MCxhW20rNjQ+PjJdPWssYVttKzY4Pj4yXT1iLGFbbSs3Mj4+Ml09fn4oRCsoRD49MD8uNTotLjUpKSxhW20rNzY+PjJdPX5+KE0rKE0+PTA/LjU6LS41KSksYVttKzgwPj4yXT1rLGFbbSs4ND4+Ml09YixhW20rODg+PjJdPX5+KHcrKHc+PTA/LjU6LS41KSksYVttKzkyPj4yXT1+fihBKyhB''@;'; put 'put ''Pj0wPy41Oi0uNSkpLE9yKGwsNjg0MjcsbSksbGU9cH0sZnVuY3Rpb24gR1cobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxtLEEsdyxiLGssRCxSLE09MDtwPWxlLGxlPWxlKzk2fDAsbT1wKzh8MCxrPX5+K19bMTUyKyhSPTB8YVsxNisobHw9MCk+PjJdKT4+M10sYj0wfGFbUisxNj4+Ml0sdz0w''@;'; put 'put ''fGFbNDY3MTZdLCRUKFIsTT1wKzgwfDAsRD1wKSxNPTB8YVtNPj4yXSxBPStfW0Q+PjNdLGFbbT4+Ml09MixhW20rND4+Ml09MSxhW20rOD4+Ml09TSxhW20rMTI+PjJdPWssYVttKzE2Pj4yXT1iLGFbbSsyMD4+Ml09MCxhW20rMjQ+PjJdPXcsYVttKzI4Pj4yXT0wLGFbbSszMj4+Ml09MCxf''@;'; put 'put ''W20rNDA+PjNdPUEsYVttKzQ4Pj4yXT0wLGFbbSs1Mj4+Ml09MCxhW20rNTY+PjJdPTAsYVttKzYwPj4yXT0wLGFbbSs2ND4+Ml09MCxhW20rNjg+PjJdPWYsT3IobCw2ODMzMSxtKSxXVyhsLGMsZiwwKSxsZT1wfSxmdW5jdGlvbiBKVyhsLGMsZil7Y3w9MCxmfD0wO3ZhciB3LGIsayxwPTAs''@;'; put 'put ''bT0wLEE9MCxNPTA7aWYoaz1sZSxsZT1sZSszMnwwLHc9ays4fDAsYj1rLCEoK19bNDArKHA9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXTwuNSkpe3N3aXRjaChhcChsLHArMTZ8MCksWnMobCwrX1sxNisoMHxhWyhBPWYrNHwwKT4+Ml0pPj4zXSksYVt3Pj4yXT1hW2FbQT4+Ml0+PjJdLE9yKGws''@;'; put 'put ''Njg5NzMsdyksQT0wfG5OKDB8YVtmPj4yXSwwfGFbNDY3MjBdKSwwfGZlW2YrNDg+PjBdKXtjYXNlIDExNDpwPU09ZiszMnwwLG09K19bTT4+M107YnJlYWs7Y2FzZSAxMDg6cD1mKzMyfDAsbT0wO2JyZWFrO2RlZmF1bHQ6cD1NPWYrMzJ8MCxtPS41KitfW00+PjNdfV9bYz4+M109K19bYz4+''@;'; put 'put ''M10tbSxfWyhNPWMrOHwwKT4+M109K19bTT4+M10rICtfW2YrMjQ+PjNdLGFbdz4+Ml09YVtjPj4yXSxhW3crND4+Ml09YVtjKzQ+PjJdLGFbdys4Pj4yXT1hW2MrOD4+Ml0sYVt3KzEyPj4yXT1hW2MrMTI+PjJdLG5oKGwsdyksRW4obCw2ODk4OCksWnMobCwrX1twPj4zXSksYVtiPj4yXT1B''@;'; put 'put ''LE9yKGwsNjg5OTcsYil9bGU9a30sZnVuY3Rpb24gWFcobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxBLHA9MDtBPWxlLGxlPWxlKzMyfDAsYVsobT1BKT4+Ml09YVsoY3w9MCk+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0s''@;'; put 'put ''X1ttKzE2Pj4zXT0rX1tjKzE2Pj4zXS0rX1tjPj4zXSxfW20rMjQ+PjNdPStfW2MrMjQ+PjNdLStfW2MrOD4+M10sYz1sKzE2fDAsMHxmJiYrX1s4MCsocD0wfGFbYz4+Ml0pPj4zXT4uNSYmKGFwKGwscCs1NnwwKSx6MyhsLG0sMiksRW4obCw2ODkzMSkpLCtfWzQwKygwfGFbYz4+Ml0pPj4z''@;'; put 'put ''XT4uNSYmKEdBKGwpLGFwKGwsMTYrKDB8YVtjPj4yXSl8MCksejMobCxtLDIpLEVuKGwsNjg5NTEpKSxsZT1BfSxmdW5jdGlvbiBmN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHA9MCx3PTA7aWYoQT1sZSxsZT1sZSsxNnwwLG09QSwrX1s0MCsoMHxhWyhwPTE2KyhsfD0wKXwwKT4+Ml0p''@;'; put 'put ''Pj4zXT4uNSl7Zm9yKEdBKGwpLGFwKGwsMTYrKDB8YVtwPj4yXSl8MCksRW4obCw2ODg1MiksYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysxMj4+Ml0sbmgobCxtKSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49''@;'; put 'put ''KDB8ZikpOylhW20+PjJdPWFbKHc9YysocDw8NCl8MCk+PjJdLGFbbSs0Pj4yXT1hW3crND4+Ml0sYVttKzg+PjJdPWFbdys4Pj4yXSxhW20rMTI+PjJdPWFbdysxMj4+Ml0sbmgobCxtKSxFbihsLDY4ODcwKSxwPXArMXwwO0VuKGwsNjg4NzkpfWxlPUF9LGZ1bmN0aW9uIHk3ZShsLGMsZil7''@;'; put 'put ''Y3w9MCxmfD0wO3ZhciBiLGssTSxELFIsRyxxLHBlLGdlLGJlLE9lLExlLEhlLFZlLHFlLHJ0LGF0LFN0LHN0LFp0LGN0LGJ0LHA9MCxtPTAsQT0wLHc9MCxSZT0wLFdlPTAsa3Q9MCxFdD0wO3N3aXRjaChidD1sZSxsZT1sZSsxNzZ8MCxjdD1idCsxNjB8MCxadD1idCsxNTJ8MCxhdD1idCsx''@;'; put 'put ''MzZ8MCxFdD1idCsxMjh8MCxXZT1idCsxMjB8MCxydD1idCsxMTJ8MCxxZT1idCsxMDR8MCxWZT1idCs5NnwwLEhlPWJ0Kzg4fDAsTGU9YnQrODB8MCxiZT1idCs3MnwwLGdlPWJ0KzY0fDAscGU9YnQrNTZ8MCxxPWJ0KzQ4fDAscD1idCs0MHwwLEQ9YnQrMzJ8MCxHPWJ0KzI0fDAsUj1idCsx''@;'; put 'put ''NnwwLE09YnQrOHwwLGs9YnQsc3Q9MHxhWzE2KyhsfD0wKT4+Ml0sRW4obCw3NDA0NCksMHxmZVtmKzQ4Pj4wXSl7Y2FzZSAxMDg6RW4obCw3NDA1MCk7YnJlYWs7Y2FzZSAxMTQ6RW4obCw3NDA3MSk7YnJlYWs7ZGVmYXVsdDpFbihsLDc0MDkwKX1pZihfWyhrdD1jKzh8MCk+PjNdPVN0PStf''@;'; put 'put ''W2t0Pj4zXSsgK19bZisyND4+M10sNTEyJml0WyhrdD1zdCsyNjB8MCk+PjFdfHwoRW4obCw3NDExMiksWnMobCwrX1tjPj4zXSksRW4obCw3NDExNyksWnMobCwtU3QpLEVuKGwsOTg3NDQpKSxiPTB8YVs4KyhjPTB8YVsoT2U9Zis0fDApPj4yXSk+PjJdKXtzd2l0Y2goMHxhWzI0NCsoMHxh''@;'; put 'put ''WzE2KygwfGFbMTY4KygwfGFbbD4+Ml0pPj4yXSk+PjJdKT4+Ml0pe2Nhc2UgMTp3PWIsYz1iKzE2fDAscD1iKzh8MDticmVhaztjYXNlIDI6dz1iKzI0fDAsYz1iKzMyfDAscD1iKzI4fDA7YnJlYWs7ZGVmYXVsdDp3PWIrNHwwLGM9YisxNnwwLHA9Yis4fDB9bT0wfGFbYz4+Ml0sYz0wfGFb''@;'; put 'put ''cD4+Ml0sQT0wfGFbYisxMj4+Ml0sYVtrPj4yXT1hW3c+PjJdLE9yKGwsNzQxMjMsayksMHwocD0wfGFbYisyND4+Ml0pJiYoYVtNPj4yXT1wLE9yKGwsNzQxNDAsTSkpLEVuKGwsOTg3NDQpLDB8YyYmKGFbUj4+Ml09YyxPcihsLDc0MTQ0LFIpKSwwfEEmJihhW0c+PjJdPUEsT3IobCw3NDE2''@;'; put 'put ''MixHKSksbT8oYVtEPj4yXT1tLE9yKGwsNzQxODEsRCkpOm09MH1lbHNlIGFbcD4+Ml09YVtjPj4yXSxPcihsLDc0MTk4LHApLG09MCxjPTA7c3dpdGNoKDB8KHA9MHxhW09lPj4yXSkmJjEyNyYoUmU9MHxhW3ArMjQ+PjJdKXwwJiYoMCE9KDB8Yyl8MD09KDEmUmV8MCl8fE9yKGwsNzQyMTYs''@;'; put 'put ''cSksMCE9KDB8bSl8MD09KDImUmV8MCl8fE9yKGwsNzQyMzYscGUpLDEwMCZSZXwwJiYoT3IobCw3NDI1NyxnZSksNCZSZT8oT3IobCwxMDU5ODYsYmUpLGM9MSk6Yz0wLDY0JlJlJiYoYVtMZT4+Ml09MHxjPzEwMDk5OToxOTUwNTksT3IobCw3NDI3NixMZSksYz0xKSwzMiZSZXwwJiYoYVtI''@;'; put 'put ''ZT4+Ml09MHxjPzEwMDk5OToxOTUwNTksT3IobCw3NDI4NyxIZSkpLE9yKGwsOTg3NDQsVmUpKSw4JlJlfDAmJk9yKGwsNzQzMDIscWUpLDE2JlJlfDAmJk9yKGwsNzQzMjYscnQpKSxfW1dlPj4zXT0rX1sxNisoMHxhW09lPj4yXSk+PjNdLE9yKGwsNzQzNDgsV2UpLGM9c3QrMTZ8MCwwfGFb''@;'; put 'put ''c3QrNDg+PjJdKXtjYXNlIDU6MHx5MChjPTB8YVtjPj4yXSwxMzczMTQpJiYoYVtFdD4+Ml09YyxPcihsLDc0MzY2LEV0KSk7YnJlYWs7Y2FzZSAxOldlPTB8WHRbYysxPj4wXSxFdD0wfFh0W2MrMj4+MF0sYVthdD4+Ml09WHRbYz4+MF0sYVthdCs0Pj4yXT1XZSxhW2F0Kzg+PjJdPUV0LE9y''@;'; put 'put ''KGwsNzQzNzcsYXQpO2JyZWFrO2RlZmF1bHQ6UHIoMTM4Mzk0LDczNTU4LDQ4Niw3NDM5OSl9RW4obCw3NDQxMiksNTEyJml0W2t0Pj4xXSYmKGFbWnQ+PjJdPTB8TTEoMHxhW3N0KzIxMj4+Ml0pLE9yKGwsNzQ0MTQsWnQpLEVuKGwsNzQ0NjMpLFpzKGwsLVN0KSxFbihsLDc0NDgxKSksRW4o''@;'; put 'put ''bCwwfHpIKDB8YVtmPj4yXSwxKSksNTEyJml0W2t0Pj4xXSYmT3IobCw3NDQ4NCxjdCksRW4obCw3NDUwNCksbGU9YnR9LGZ1bmN0aW9uIHc3ZShsLGMsZil7bHw9MCxjfD0wO3ZhciBwPTA7c3dpdGNoKDB8KGZ8PTApKXtjYXNlIDI6cD0wfHRZKGwsYywyKTticmVhaztjYXNlIDM6cD0wfG5Z''@;'; put 'put ''KGwpO2JyZWFrO2RlZmF1bHQ6cD0wfUVuKGwsNzQwMDgpLE5GKGwsZixwKSxFbihsLDc0MDE3KSxacyhsLCtfW2M+PjNdKSxFbihsLDc0MDIzKSxacyhsLC0rX1soZj1jKzh8MCk+PjNdKSxFbihsLDc0MDMwKSxacyhsLCtfW2MrMTY+PjNdLStfW2M+PjNdKSxFbihsLDc0MDM3KSxacyhsLCtf''@;'; put 'put ''W2MrMjQ+PjNdLStfW2Y+PjNdKSxFbihsLDczNDI0KX0sZnVuY3Rpb24gVmllKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MDtmb3IoRW4obHw9MCw3MzQwNCksTkYobCwwLDApLEVuKGwsNzM0MTQpLHA9MDshKCgwfHApPj0oMHxmKSk7KVpzKGwsK19bYysocDw8NCk+PjNdKSxFbihsLDEwMDk5''@;'; put 'put ''OSksWnMobCwtK19bYysocDw8NCkrOD4+M10pLEVuKGwsMTAyNjA0KSxwPXArMXwwO0VuKGwsNzM0MjQpfSxmdW5jdGlvbiBFN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgayxNLHA9MCxtPTAsQT0wLHc9MCxiPTA7aWYoTT1sZSxsZT1sZSs0OHwwLEE9TSs4fDAsaz1NLDB8YVsxNDQrKHA9MHxh''@;'; put 'put ''WzE2KyhsfD0wKT4+Ml0pPj4yXSYmMHwodz1+figrX1tsKzM1Mj4+M10qK19bMTYrKDB8YVsoYj1mKzR8MCk+PjJdKT4+M10pKSl7ZUkobCksRW4obCw3NTMzNCksX1sobT1jKzh8MCk+PjNdPStfW20+PjNdLS41NSorKDB8dyksYVtBPj4yXT1hW2M+PjJdLGFbQSs0Pj4yXT1hW2MrND4+Ml0s''@;'; put 'put ''YVtBKzg+PjJdPWFbYys4Pj4yXSxhW0ErMTI+PjJdPWFbYysxMj4+Ml0sbmgobCxBKSxFbihsLDc1MzQ4KSxFbihsLDB8YVtmPj4yXSksRW4obCw3NTM1NyksRW4obCw3NTE1NSksYz1wKzE2fDAscD0obT1BKSs0MHwwO2Rve2FbbT4+Ml09YVtjPj4yXSxtPW0rNHwwLGM9Yys0fDB9d2hpbGUo''@;'; put 'put ''KDB8bSk8KDB8cCkpO3N3aXRjaChXQShsLEEpLEVuKGwsNzUzNTkpLGI9MHxhWygwPT0oMHwoYj0wfGFbOCsoQT0wfGFbYj4+Ml0pPj4yXSkpP0E6Yis0fDApPj4yXSxFbihsLDk4NzQ0KSxFbihsLGIpLEVuKGwsOTg3NDQpLGFbaz4+Ml09dyxPcihsLDc1MzY4LGspLDB8ZmVbZis0OD4+MF0p''@;'; put 'put ''e2Nhc2UgMTA4OkVuKGwsNzUzNzMpO2JyZWFrO2Nhc2UgMTE0OkVuKGwsNzUzODQpfXRJKGwpLEVuKGwsMTUzNTk5KX1sZT1NfSxmdW5jdGlvbiB4N2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgbSxBLHcsYixwPTAsaz0wLE09MCxEPTA7aWYoYj1sZSxsZT1sZSs0OHwwLG09YiwwfGFbKHc9MTQ0''@;'; put 'put ''KyhBPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pe009K19bYysyND4+M10saz0rX1socD1jKzh8MCk+PjNdLF9bYz4+M109KEQ9K19bYz4+M10pLStfW2MrMTY+PjNdK0QsX1twPj4zXT1rLU0rayxlSShsKSxFbihsLDc1MzIwKSx6MyhsLGMsMiksRW4obCw3NTE1NSk7ZG97aWYoIWYpe2lm''@;'; put 'put ''KDB8YVs0NjcyM10pe0VuKGwsMTM3MTk4KTticmVha31FbihsLDk3MzA5KTticmVha31mPUErNTZ8MCxwPShjPW0pKzQwfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7V0EobCxtKX13aGlsZSgwKTsxPT0oMHxhWzQ2NzIzXSkmJihhWzQ2''@;'; put 'put ''NzIzXT0wKSxFbihsLDc1MjY2KSxacyhsLCtfW0ErMTUyPj4zXSksRW4obCw3NTMwOSksZj1BKzE2fDAscD0oYz1tKSs0MHwwO2Rve2FbYz4+Ml09YVtmPj4yXSxjPWMrNHwwLGY9Zis0fDB9d2hpbGUoKDB8Yyk8KDB8cCkpO1dBKGwsbSksMT09KDB8KGM9MHxhW3c+PjJdKSkmJihFbihsLDc1''@;'; put 'put ''MTYzKSxjPTB8YVt3Pj4yXSksMj09KDB8YykmJkVuKGwsNzUxNzIpLHRJKGwpLEVuKGwsMTUzNTk5KX1sZT1ifSxmdW5jdGlvbiBEN2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgcCxBLHcsYixtPTA7aWYoYj1sZSxsZT1sZSs0OHwwLEE9YiwwfGFbKHc9MTQ0KyhwPTB8YVsxNisobHw9MCk+PjJd''@;'; put 'put ''KXwwKT4+Ml0pe2VJKGwpLEVuKGwsNzUxNDEpLHozKGwsYyxmKSxFbihsLDc1MTU1KSxjPXArMTZ8MCxmPShtPUEpKzQwfDA7ZG97YVttPj4yXT1hW2M+PjJdLG09bSs0fDAsYz1jKzR8MH13aGlsZSgoMHxtKTwoMHxmKSk7V0EobCxBKSwxPT0oMHwoYz0wfGFbdz4+Ml0pKSYmKEVuKGwsNzUx''@;'; put 'put ''NjMpLGM9MHxhW3c+PjJdKSwyPT0oMHxjKSYmRW4obCw3NTE3MiksdEkobCksRW4obCwxNTM1OTkpfWxlPWJ9LGZ1bmN0aW9uIEg3ZShsLGMsZil7Y3w9MDt2YXIgayxNLEQsUixHLHEscGUsZ2UsYmUsT2UsUmUsVmUscWUscD0wLG09MCxBPTAsdz0wLGI9MCxMZT0wLEhlPTA7c3dpdGNoKFZl''@;'; put 'put ''PWxlLGxlPWxlKzExMnwwLFJlPVZlKzk2fDAsSGU9VmUrODh8MCxPZT1WZSs4MHwwLFI9VmUrNzJ8MCxiZT1WZSs2NHwwLHBlPVZlKzU2fDAscT1WZSs0OHwwLEc9VmUrNDB8MCxEPVZlKzI0fDAsTT1WZSs4fDAsaz1WZSxMZT0wfGFbMTYrKGx8PTApPj4yXSwwfGZlWzQ4KyhmfD0wKT4+MF0p''@;'; put 'put ''e2Nhc2UgMTA4OkE9K19bYz4+M10sYj0rX1tmKzMyPj4zXTticmVhaztjYXNlIDExNDpBPStfW2M+PjNdLShiPStfW2YrMzI+PjNdKTticmVhaztkZWZhdWx0OkE9K19bYz4+M10tLjUqKGI9K19bZiszMj4+M10pfXN3aXRjaCgobT0rX1socD1mKzQwfDApPj4zXSk8KHc9K19bMTYrKDB8YVso''@;'; put 'put ''Z2U9Zis0fDApPj4yXSk+PjNdKSYmKF9bcD4+M109bT0xLjEqdysxKSxxZT1BKy04LHc9KygoMHxhWzQ2NzI3XSk+Pj4wKS0rX1tjKzg+PjNdLW0rLjIqdysodzwxMj8xLjQ6MiksT3IobCw3NjAwNSxrKSxfW00+PjNdPXFlLF9bTSs4Pj4zXT13LE9yKGwsNzU5NDIsTSksX1tEPj4zXT1BKzgr''@;'; put 'put ''Yi1xZSxfW0QrOD4+M109bSxPcihsLDc1OTY2LEQpLEVuKGwsNzYwNDApLEVuKGwsNzYwNzQpLChjPTB8YVs4KyhwPTB8YVtnZT4+Ml0pPj4yXSk/KGFbRz4+Ml09YVtjKzQ+PjJdLE9yKGwsNzYxNjQsRyksMHwocD0wfGFbYys4Pj4yXSkmJihhW3E+PjJdPXAsT3IobCw3NjE4MyxxKSksMHwo''@;'; put 'put ''cD0wfGFbYysxMj4+Ml0pJiYoYVtwZT4+Ml09cCxPcihsLDc2MjAwLHBlKSksMHwocD0wfGFbYysxNj4+Ml0pJiYoYVtiZT4+Ml09cCxPcihsLDc2MjE4LGJlKSkpOihhW1I+PjJdPWFbcD4+Ml0sT3IobCw3NjE2NCxSKSksX1tPZT4+M109K19bMTYrKDB8YVtnZT4+Ml0pPj4zXSxPcihsLDc2''@;'; put 'put ''MjM0LE9lKSxwPUxlKzE2fDAsMHxhW0xlKzQ4Pj4yXSl7Y2FzZSA1OjB8eTAocD0wfGFbcD4+Ml0sMTM3MzE0KSYmKGFbSGU+PjJdPXAsT3IobCw3NjI1NCxIZSkpO2JyZWFrO2Nhc2UgMTpMZT0wfFh0W3ArMT4+MF0sSGU9MHxYdFtwKzI+PjBdLGFbUmU+PjJdPVh0W3A+PjBdLGFbUmUrND4+''@;'; put 'put ''Ml09TGUsYVtSZSs4Pj4yXT1IZSxPcihsLDc2MjY0LFJlKTticmVhaztkZWZhdWx0OlByKDEzODM5NCw3NTcyOCw0MzgsNzYyODUpfUVuKGwsNzYyOTgpLEVuKGwsMHxuaSgwfGFbZj4+Ml0pKSxFbihsLDc2MzA5KSxFbihsLDc2MzMyKSxsZT1WZX0sZnVuY3Rpb24gWmllKGwsYyxmKXtjfD0w''@;'; put 'put ''LGZ8PTA7dmFyIHAsbSxBLHcsYixNLGs9MDtwPWxlLGxlPWxlKzMyfDAsbT1wKzE2fDAsYj1wLEVuKGx8PTAsNzU5MDYpLEE9KGs9K19bYysyND4+M10pLStfW2MrOD4+M10saz0rKCgwfGFbNDY3MjddKT4+PjApLWssX1tiPj4zXT0oTT0rX1tjPj4zXSktKHc9K19bYysxNj4+M10tTSksX1ti''@;'; put 'put ''Kzg+PjNdPWssT3IobCw3NTk0MixiKSxfW20+PjNdPTIqdyxfW20rOD4+M109MipBLE9yKGwsNzU5NjYsbSksaVkobCxmKSxFbihsLDc1Nzg4KSxuSShsKSxFbihsLDc1OTk0KSxsZT1wfSxmdW5jdGlvbiBON2UobCxjLGYpe2N8PTAsZnw9MDt2YXIgdyxiLGsscD0wLG09MCxBPTAsTT0wO2Zv''@;'; put 'put ''cihrPWxlLGxlPWxlKzQ4fDAsYj1rKzI0fDAsdz1rKzh8MCxtPWssRW4obHw9MCw3NTUxMSksQT0wfGFbNDY3MjddLGFbbT4+Ml09YVs0NjcyNl0sYVttKzQ+PjJdPUEsT3IobCw3NTU0OCxtKSxFbihsLDc1NTg4KSxtPWYrLTF8MCxBPWMrOHwwLHA9MDshKCgwfHApPj0oMHxmKSk7KXA/KE09''@;'; put 'put ''KygoMHxhWzQ2NzI3XSk+Pj4wKS0rX1tjKyhwPDw0KSs4Pj4zXSxfW2I+PjNdPStfW2MrKHA8PDQpPj4zXSxfW2IrOD4+M109TSxPcihsLDc1NjA0LGIpKTooRW4obCw3NTYwMCksTT0rKCgwfGFbNDY3MjddKT4+PjApLStfW0E+PjNdLF9bdz4+M109K19bYz4+M10sX1t3Kzg+PjNdPU0sT3Io''@;'; put 'put ''bCw3NTYwNCx3KSxFbihsLDc1NjE1KSksKDB8cCk9PSgwfG0pJiZFbihsLDc1NjE5KSxwPXArMXwwO0VuKGwsNzU2MjMpLG5JKGwpLEVuKGwsNzU2MjcpLGxlPWt9LGZ1bmN0aW9uIGlJKGwsYyxmKXtsfD0wLGN8PTA7dmFyIEQsRyxxLHBlLGdlLHA9MCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09''@;'; put 'put ''MCxSPTA7c3dpdGNoKEc9bGUsbGU9bGUrMTQ0fDAsTT1HKzEwNHwwLFI9Rys1NnwwLGI9RyszMnwwLEE9RysyNHwwLHA9K19bMTYrKG09MHxhWyhEPTQrKGZ8PTApfDApPj4yXSk+PjNdLG09MHxhW20+PjJdLGFbKGs9Ryk+PjJdPWFbZj4+Ml0sX1trKzg+PjNdPXAsYVtrKzE2Pj4yXT1tLE9y''@;'; put 'put ''KGwsNzkwNDAsayksam5bNDY3MjldPStqbls0NjcyOF0tOSwwfGZlW2YrNDg+PjBdKXtjYXNlIDEwODpwPStfW2M+PjNdO2JyZWFrO2Nhc2UgMTE0Om09YyxwPStfW2M+PjNdLStfW2YrMzI+PjNdLHc9NTticmVhaztkZWZhdWx0Om09YyxwPStfW2M+PjNdLS41KitfW2YrMzI+PjNdLHc9NX01''@;'; put 'put ''PT0oMHx3KSYmKF9bbT4+M109cCkscGU9KCtfW2wrNTA0Pj4zXStwKSooZ2U9K19bbCs0ODg+PjNdKSxxPSgrX1tsKzUxMj4+M10rICtfW2MrOD4+M10pKitfW2wrNDk2Pj4zXSxfW0E+PjNdPStfWzE2KygwfGFbRD4+Ml0pPj4zXSpnZSxrPTB8RWEobCw3OTA5MixBKSxwPSsoMHxhW2wrMzYw''@;'; put 'put ''Pj4yXSksX1tiPj4zXT0wLF9bYis4Pj4zXT0wLF9bYisxNj4+M109cCxtPTB8RWEobCw3ODMwOSxiKSxwPStqbls0NjcyOV0sX1tNPj4zXT1wZSxfW00rOD4+M109cSxfW00rMTY+PjNdPXAsYz0wfEVhKGwsNzgzNDEsTSksdz0xNisoMHxhW2wrMTY+PjJdKXwwLGI9KEE9TSkrNDB8MDtkb3th''@;'; put 'put ''W0E+PjJdPWFbdz4+Ml0sQT1BKzR8MCx3PXcrNHwwfXdoaWxlKCgwfEEpPCgwfGIpKTtNPTB8WUEobCxNLDApLGY9MHxhW2Y+PjJdLGFbUj4+Ml09YVthW0Q+PjJdPj4yXSxfW1IrOD4+M109LjI1LF9bUisxNj4+M109MCxhW1IrMjQ+PjJdPWYsYVtSKzI4Pj4yXT03OTE3OSxhW1IrMzI+PjJd''@;'; put 'put ''PWssYVtSKzM2Pj4yXT1tLGFbUis0MD4+Ml09YyxhW1IrNDQ+PjJdPU0sRW4obCxSPTB8RWEobCw3OTEwNCxSKSksRnQoUiksRnQobSksRnQoTSksRnQoYyksRnQoayksbGU9R30sZnVuY3Rpb24gSjdlKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIE0sRCxSLEcscSxwZSxnZSxWZSxwPTAsbT0wLEE9''@;'; put 'put ''MCx3PTAsYj0wLGs9MCxiZT0wLE9lPTAsTGU9MCxSZT0wLEhlPTAscWU9MDtWZT1sZSxsZT1sZSsyNDB8MCxSZT1WZSsxOTJ8MCxIZT1WZSsxNTJ8MCxnZT1WZSsxMjh8MCxxPVZlKzEwNHwwLEQ9VmUrODB8MCxNPVZlKzQ4fDAscD1WZSsyNHwwLGs9VmUsRW4obHw9MCw3ODkxNyksam5bNDY3''@;'; put 'put ''MjldPStqbls0NjcyOF0tNixSPSgrX1tsKzUwND4+M10rKEE9K19bYz4+M10pKSoodz0rX1tsKzQ4OD4+M10pLEc9KCtfW2wrNTEyPj4zXSsocWU9K19bYys4Pj4zXSkpKihiPStfW2wrNDk2Pj4zXSksQT0rX1sxNTIrKDB8YVsocGU9bCsxNnwwKT4+Ml0pPj4zXS8ocWU9KGIqPStfW2MrMjQ+''@;'; put 'put ''PjNdLXFlKSsodyo9K19bYysxNj4+M10tQSkpKjIuNSxfW2s+PjNdPXcsX1trKzg+PjNdPS4yNSpxZSxfW2srMTY+PjNdPWIsYz0wfEVhKGwsNzgyNzcsaykscWU9KygwfGFbKGs9bCszNjB8MCk+PjJdKSxfW3A+PjNdPTkwLF9bcCs4Pj4zXT0wLF9bcCsxNj4+M109cWUscD0wfEVhKGwsNzgz''@;'; put 'put ''MDkscCkscWU9K2puWzQ2NzI5XSxfW1JlPj4zXT1SLF9bUmUrOD4+M109RyxfW1JlKzE2Pj4zXT1xZSxtPTB8RWEobCw3ODM0MSxSZSksT2U9MTYrKDB8YVtwZT4+Ml0pfDAsTGU9KGJlPVJlKSs0MHwwO2Rve2FbYmU+PjJdPWFbT2U+PjJdLGJlPWJlKzR8MCxPZT1PZSs0fDB9d2hpbGUoKDB8''@;'; put 'put ''YmUpPCgwfExlKSk7aWYoT2U9MHxZQShsLFJlLDApLF9bTT4+M109MSxfW00rOD4+M109QSxhW00rMTY+PjJdPWMsYVtNKzIwPj4yXT1wLGFbTSsyND4+Ml09bSxhW00rMjg+PjJdPU9lLEVuKGwsTGU9MHxFYShsLDc4OTMyLE0pKSxGdChjKSxGdChwKSxGdChtKSxGdChPZSksRnQoTGUpLDB8''@;'; put 'put ''Zil7X1tEPj4zXT13LF9bRCs4Pj4zXT1iLF9bRCsxNj4+M109MSxtPTB8RWEobCw3ODI3NyxEKSxxZT0rKDB8YVtrPj4yXSksX1txPj4zXT0wLF9bcSs4Pj4zXT0wLF9bcSsxNj4+M109cWUscD0wfEVhKGwsNzgzMDkscSkscWU9K2puWzQ2NzI5XSxfW2dlPj4zXT1SLF9bZ2UrOD4+M109Ryxf''@;'; put 'put ''W2dlKzE2Pj4zXT1xZSxjPTB8RWEobCw3ODM0MSxnZSksT2U9NTYrKDB8YVtwZT4+Ml0pfDAsTGU9KGJlPVJlKSs0MHwwO2Rve2FbYmU+PjJdPWFbT2U+PjJdLGJlPWJlKzR8MCxPZT1PZSs0fDB9d2hpbGUoKDB8YmUpPCgwfExlKSk7UmU9MHxZQShsLFJlLDApLF9bSGU+PjNdPTAsX1tIZSs4''@;'; put 'put ''Pj4zXT0wLF9bSGUrMTY+PjNdPTAsYVtIZSsyND4+Ml09bSxhW0hlKzI4Pj4yXT1wLGFbSGUrMzI+PjJdPWMsYVtIZSszNj4+Ml09UmUsRW4obCxIZT0wfEVhKGwsNzg5NzgsSGUpKSxGdChtKSxGdChwKSxGdChjKSxGdChSZSksRnQoSGUpfWxlPVZlfSxmdW5jdGlvbiAkN2UobCxjLGYpe2N8''@;'; put 'put ''PTAsZnw9MDt2YXIgYixELFIscSxwZSxiZSxPZSxwPTAsbT0wLEE9MCx3PTAsaz0wLE09MCxHPTAsZ2U9MCxMZT0wLFJlPTAsSGU9MDtPZT1sZSxsZT1sZSsxNjB8MCxwPU9lKzEyMHwwLGJlPU9lKzExMnwwLGdlPU9lKzk2fDAscGU9T2UrODh8MCxxPU9lKzU2fDAsaz1PZSs0OHwwLE09T2Ur''@;'; put 'put ''MjR8MCxHPU9lLEVuKGx8PTAsNzgyNjEpLGpuWzQ2NzI5XT0ram5bNDY3MjhdLTYsTGU9K19bbCs0OTY+PjNdLF9bRz4+M109K19bbCs0ODg+PjNdLF9bRys4Pj4zXT1MZSxfW0crMTY+PjNdPTEsRz0wfEVhKGwsNzgyNzcsRyksTGU9KygwfGFbbCszNjA+PjJdKSxfW00+PjNdPTAsX1tNKzg+''@;'; put 'put ''PjNdPTAsX1tNKzE2Pj4zXT1MZSxNPTB8RWEobCw3ODMwOSxNKSxMZT0ram5bNDY3MjldLF9bcD4+M109MCxfW3ArOD4+M109MCxfW3ArMTY+PjNdPUxlLEQ9MHxFYShsLDc4MzQxLHApLEE9MTYrKDB8YVsoUj1sKzE2fDApPj4yXSl8MCx3PShtPXApKzQwfDA7ZG97YVttPj4yXT1hW0E+PjJd''@;'; put 'put ''LG09bSs0fDAsQT1BKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7Zm9yKEE9MHxZQShsLHAsMCksYVtrPj4yXT03ODQwNCxhW2srND4+Ml09Zix3PWwrNTA0fDAsYj1sKzUxMnwwLG09MCxwPTB8RWEobCw3ODM3MyxrKTshKCgwfG0pPj0oMHxmKSk7KUhlPStfW2I+PjNdKyArX1tjKyhtPDw0KSs4''@;'; put 'put ''Pj4zXSxMZT0rX1sxNTIrKDB8YVtSPj4yXSk+PjNdLF9bcT4+M109K19bdz4+M10rICtfW2MrKG08PDQpPj4zXSxfW3ErOD4+M109SGUsX1txKzE2Pj4zXT0wLF9bcSsyND4+M109TGUsUmU9MHxFYShsLDc4NDE4LHEpLGFbcGU+PjJdPXAsYVtwZSs0Pj4yXT1SZSxrPTB8RWEobCw3ODQ0Nyxw''@;'; put 'put ''ZSksRnQoUmUpLEZ0KHApLG09bSsxfDAscD1rO2FbZ2U+PjJdPUcsYVtnZSs0Pj4yXT1NLGFbZ2UrOD4+Ml09RCxhW2dlKzEyPj4yXT1BLGdlPTB8RWEobCw3ODQ1NixnZSksYVtiZT4+Ml09cCxhW2JlKzQ+PjJdPWdlLFJlPTB8RWEobCw3ODUwMixiZSksRnQoZ2UpLEVuKGwsUmUpLEZ0KEcp''@;'; put 'put ''LEZ0KE0pLEZ0KEQpLEZ0KEEpLEZ0KFJlKSxsZT1PZX0sZnVuY3Rpb24gZnMobCxjLGYpe2x8PTAsY3w9MDt2YXIgayxNLFIsRyxxLHA9MCxtPTAsQT0wLHc9MCxiPTAsRD0wO3N3aXRjaChxPWxlLGxlPWxlKzQ4fDAsRz1xKzI0fDAsUj1xKzh8MCxEPXEsMHxmZVs0OCsoZnw9MCk+PjBdKXtj''@;'; put 'put ''YXNlIDEwODpiPWMsQT0rX1tmKzMyPj4zXSx3PStfW2M+PjNdO2JyZWFrO2Nhc2UgMTE0Om09QT0rX1tmKzMyPj4zXSxwPTU7YnJlYWs7ZGVmYXVsdDptPS41KihBPStfW2YrMzI+PjNdKSxwPTV9NT09KDB8cCkmJihfW2M+PjNdPXc9K19bYz4+M10tbSxiPWMpLF9bKGM9Yys4fDApPj4zXT1N''@;'; put 'put ''PStfW2M+PjNdKy4wMDQ2Mjk2Mjk2Mjk2Mjk2MjkqKG09K19bMTYrKHA9MHxhWyhrPWYrNHwwKT4+Ml0pPj4zXSksX1tiPj4zXT1BPXcrLjAwNjk0NDQ0NDQ0NDQ0NDQ0NCpBLHA9MHxhW3A+PjJdO2Rve2lmKHApe2lmKDB8KGM9MHxhWzQ2NzMwXSkmJjA9PSgwfFppKGMscCkpKWJyZWFrO2Fb''@;'; put 'put ''RD4+Ml09MHxKaWUocCksT3IobCw4MTE3MyxEKSxhWzQ2NzMwXT1hWyhEPTB8YVtrPj4yXSk+PjJdLG09K19bRCsxNj4+M119fXdoaWxlKDApOygwfChwPSgwfChwPX5+bSkpPjE/cDoxKSkhPSgwfGFbNDY3MzFdKSYmKHc9K19bMTkyMTRdLGFbUj4+Ml09cCxfW1IrOD4+M109dyxPcihsLDgx''@;'; put 'put ''MTgxLFIpLGFbNDY3MzFdPXApLGFbRz4+Ml09MHxmdW5jdGlvbiBqRihsKXtsfD0wO3ZhciBBLHcsYz0wLGY9MCxwPTAsbT0wO2Zvcih3PWxlLGxlPWxlKzE2fDAsQT13LChjPTB8YVs0NjczMl0pfHwoYVs0NjczM109NjQsYz0wfEYwKDY0KSxhWzQ2NzMyXT1jKSxmPTA7bT1sKzF8MCwocD0w''@;'; put 'put ''fGZlW2w+PjBdKTw8MjQ+PjI0OykoMHxmKT4oKGw9MHxhWzQ2NzMzXSktOHwwKSYmKGFbNDY3MzNdPWM9bDw8MSxjPTB8VWEoMHxhWzQ2NzMyXSxjKSxhWzQ2NzMyXT1jLGM9YytmfDApLHA8PDI0Pj4yNDw9LTE/KGZlW2M+PjBdPTkyLGFbQT4+Ml09MjU1JnAsb28oYysxfDAsODEyMjQsQSks''@;'; put 'put ''bD1tLGM9Yys0fDAsZj1mKzR8MCk6KHA8PDI0Pj4yND09OTImJihmZVtjPj4wXT05MixmPWYrMXwwLGM9YysxfDApLGZlW2M+PjBdPXAsbD1tLGM9YysxfDAsZj1mKzF8MCk7cmV0dXJuIGZlW2M+PjBdPTAsbGU9dywwfGFbNDY3MzJdfSgwfGFbZj4+Ml0pLF9bRys4Pj4zXT1BLF9bRysxNj4+''@;'; put 'put ''M109TSxPcihsLDgxMjAyLEcpLGxlPXF9LGZ1bmN0aW9uIFlpZShsLGMsZil7dmFyIHAsbSxBLHcsYixrO2x8PTAsZnw9MCxwPWxlLGxlPWxlKzQ4fDAsaz0uMDI3Nzc3Nzc3Nzc3Nzc3Nzc2KigrX1sxNisoY3w9MCk+PjNdLSh3PStfW2M+PjNdKSksYj0uMDI3Nzc3Nzc3Nzc3Nzc3Nzc2Kigr''@;'; put 'put ''X1tjKzI0Pj4zXS0oQT0rX1tjKzg+PjNdKSksYVsobT1wKT4+Ml09MSxhW20rND4+Ml09MHxmPzgxMTE1OjE5NTA1OSxfW20rOD4+M109ayxfW20rMTY+PjNdPWIsX1ttKzI0Pj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KncsX1ttKzMyPj4zXT0uMDEzODg4ODg4ODg4ODg4ODg4KkEsT3IobCw4''@;'; put 'put ''MTEyMSxtKSxsZT1wfSxmdW5jdGlvbiBzWShsLGMsZil7dmFyIHA7Y3w9MCxmfD0wLHA9bGUsbGU9bGUrMTZ8MCxWRigwfGFbMTYrKGx8PTApPj4yXSxwKzh8MCxwKSx1WShsLGMsZiwwKSxsZT1wfSxmdW5jdGlvbiBvb2UobCxjLGYpe2gwKGN8PTAsODcyMzAsMHxhWyhmfD0wKT4+Ml0sMSl9''@;'; put 'put ''LGZ1bmN0aW9uIGhVKGwsYyxmKXtoMChjfD0wLDg3Mzk3LDB8YVs0KyhmfD0wKT4+Ml0sMSl9LGZ1bmN0aW9uIGFvZShsLGMsZil7aDAoY3w9MCw4NzM4MiwwfGFbOCsoZnw9MCk+PjJdLDEpfSxmdW5jdGlvbiBPSihsLGMsZil7RnQoY3w9MCl9LGZ1bmN0aW9uIEVBKGwsYyxmKXtGdChjfD0w''@;'; put 'put ''KX0sZnVuY3Rpb24gc1QobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBqUChsLGMsZil7ZTAoMHxhWzQ2OTQyXSwwfGFbOCsoY3w9MCk+PjJdKSxlMCgwfGFbNDY5NDJdLDB8YVtjKzEyPj4yXSkseHQoMHxhWzQ2OTQyXSxjKX0sZnVuY3Rpb24gUVAobCxjLGYpe30sZnVuY3Rpb24gVXQobCxj''@;'; put 'put ''LGYpe2x8PTAsKDI4KyhsPTB8YVsxNisoY3w9MCk+PjJdKXwwKSE9KDB8YykmJnh0KDB8YVtsKzI0Pj4yXSxjKX0sZnVuY3Rpb24gam8obCxjLGYpeyhmdW5jdGlvbiB3YShsKXt2YXIgYyxmPTA7Zm9yKGM9MTYrKGx8PTApfDAsbD0wfGFbbCsyND4+Ml07bDspZj0wfGFbbCs0Pj4yXSx4dCgw''@;'; put 'put ''fGFbYz4+Ml0sbCksbD1mfSkoY3w9MCkseHQoMHxhW2MrMTY+PjJdLGMpfSxmdW5jdGlvbiBVbmUobCxjLGYpe2x8PTAsY3w9MCwobD0wfGFbNDY5ODRdKT94dChsLGMpOkZ0KGMpfSxmdW5jdGlvbiBfcmUobCxjLGYpe2x8PTA7dmFyIHA9MDswfChsPTB8YVsyMCsoY3w9MCk+PjJdKSYmdHco''@;'; put 'put ''bCksMHxhW2MrNTI+PjJdJiYwfChwPTB8YVtjKzYwPj4yXSkmJkNvWzEyNyZwXShjKSxGdChjKX0sZnVuY3Rpb24gaVEobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBmYWUobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBtYWUobCxjLGYpe2FbKGN8PTApPj4yXT1hWyhmPTM2KyhmfD0wKXww''@;'; put 'put ''KT4+Ml0sYVtmPj4yXT1jfSxmdW5jdGlvbiBGUShsLGMsZil7RnQoMHxhWzUyKyhjfD0wKT4+Ml0pfSxmdW5jdGlvbiBUbGUobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBEbGUobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBqOChsLGMsZil7TmwoMHxhWzE2KyhjfD0wKT4+Ml0pLEZ0KGMp''@;'; put 'put ''fSxmdW5jdGlvbiBwYihsLGMsZil7KGZ1bmN0aW9uIGtSKGwpe3ZhciBmLGM9MCxwPTA7Zm9yKGY9NCsobHw9MCl8MCxjPTA7cD0wfGFbZj4+Ml0sISgoMHxjKT49KDB8YVtsPj4yXSkpOylObCgwfGFbcCsoMTIqY3wwKSs4Pj4yXSksYz1jKzF8MDtGdChwKSxGdChsKX0pKDB8YVszMisoY3w9''@;'; put 'put ''MCk+PjJdKSxGdCgwfGFbYysyOD4+Ml0pLEZ0KGMpfSxmdW5jdGlvbiBCUihsLGMsZil7bHw9MCxmfD0wO3ZhciBiLHA9MCxtPTAsQT0wLHc9MDtzd2l0Y2goYj1sZSxsZT1sZSsxNnwwLHA9YiwwfChjfD0wKSl7Y2FzZSAxOmFbcD4+Ml09YVtmPj4yXSxhW3ArND4+Ml09YVtmKzQ+PjJdLGFb''@;'; put 'put ''cCs4Pj4yXT1hW2YrOD4+Ml0sYVtwKzEyPj4yXT1hW2YrMTI+PjJdLEU5KGwscCksZnVuY3Rpb24geDkobCl7dmFyIGM9MCxmPTAscD0wO2M9MHxhWyhwPTU4MCsobHw9MCl8MCk+PjJdO2U6ZG97aWYoMHxjKXN3aXRjaCgwfGtpKGMpKXtjYXNlIDA6ZmVbKGY9MTEyKygwfGFbYysxNj4+Ml0p''@;'; put 'put ''fDApPj4wXT0tNyZmZVtmPj4wXXw0O2JyZWFrIGU7Y2FzZSAxOmZlWyhmPTExNysoMHxhW2MrMTY+PjJdKXwwKT4+MF09LTcmZmVbZj4+MF18NDticmVhayBlO2Nhc2UgMjpmZVsoZj0xMTUrKDB8YVtjKzE2Pj4yXSl8MCk+PjBdPS03JmZlW2Y+PjBdfDQ7YnJlYWsgZTtkZWZhdWx0OmJyZWFr''@;'; put 'put ''IGV9fXdoaWxlKDApOzB8KGY9MHxhWyhjPWwrNTg4fDApPj4yXSkmJihGdChmKSxhW2M+PjJdPTApLGFbcD4+Ml09Yz0wfGFbbCs1NzY+PjJdO2U6ZG97aWYoMHxjKXN3aXRjaCgwfGtpKGMpKXtjYXNlIDA6ZmVbKHA9MTEyKygwfGFbYysxNj4+Ml0pfDApPj4wXT0yfGZlW3A+PjBdLFk4KGws''@;'; put 'put ''Yyk7YnJlYWsgZTtjYXNlIDE6ZmVbKHA9MTE3KygwfGFbYysxNj4+Ml0pfDApPj4wXT0yfGZlW3A+PjBdLGIzKGwsYyk7YnJlYWsgZTtjYXNlIDI6ZmVbKHA9MTE1KygwfGFbYysxNj4+Ml0pfDApPj4wXT0yfGZlW3A+PjBdLGEyKGwsYyk7YnJlYWsgZTtkZWZhdWx0OmJyZWFrIGV9fXdoaWxl''@;'; put 'put ''KDApfShsKSxmZVtsKzUzOD4+MF09MSxmZVtsKzU0MT4+MF09MSx3PTEzO2JyZWFrO2Nhc2UgMjpmZVtsKzUzOD4+MF09MSxmZVtsKzU0MT4+MF09Mix3PTEzO2JyZWFrO2Nhc2UgMzphW3A+PjJdPWFbZj4+Ml0sYVtwKzQ+PjJdPWFbZis0Pj4yXSxhW3ArOD4+Ml09YVtmKzg+PjJdLGFbcCsx''@;'; put 'put ''Mj4+Ml09YVtmKzEyPj4yXSxFOShsLHApLGZlW2wrNTM4Pj4wXT0xLGZlW2wrNTQxPj4wXT0zLHc9MTM7YnJlYWs7Y2FzZSA0OmZlW2wrNTM2Pj4wXT0wLDB8YVtsKzM2MD4+Ml0/KF9bKGM9bCszMzZ8MCk+PjNdPStfW2M+PjNdLS4xMDAwMDAwMDAwMDAwMDAwOSooK19bZis4Pj4zXS0uNSor''@;'; put 'put ''KCgwfGFbbCs0NTI+PjJdKT4+PjApKS8oK19bbCs1Mjg+PjNdKihBPStfWyhwPWwrMzUyfDApPj4zXSkpLG09K19bZj4+M10tLjUqKygoMHxhW2wrNDQ4Pj4yXSk+Pj4wKSxjPWwrNTIwfDApOihfWyhjPWwrMzM2fDApPj4zXT0uMTAwMDAwMDAwMDAwMDAwMDkqKCtfW2Y+PjNdLS41KisoKDB8''@;'; put 'put ''YVtsKzQ0OD4+Ml0pPj4+MCkpLygrX1tsKzUyMD4+M10qKEE9K19bKHA9bCszNTJ8MCk+PjNdKSkrICtfW2M+PjNdLG09K19bZis4Pj4zXS0uNSorKCgwfGFbbCs0NTI+PjJdKT4+PjApLGM9bCs1Mjh8MCksX1sodz1sKzM0NHwwKT4+M109LjEwMDAwMDAwMDAwMDAwMDA5Km0vKCtfW2M+PjNd''@;'; put 'put ''KkEpKyArX1t3Pj4zXSxfW3A+PjNdPTEuMSpBLHc9MTM7YnJlYWs7Y2FzZSA1OmZlW2wrNTM2Pj4wXT0wLF9bKHc9bCszNTJ8MCk+PjNdPUE9LjkwOTA5MDkwOTA5MDkwOTEqK19bdz4+M10sMHxhW2wrMzYwPj4yXT8oX1socD1sKzMzNnwwKT4+M109LjEwMDAwMDAwMDAwMDAwMDA5KigrX1tm''@;'; put 'put ''Kzg+PjNdLS41KisoKDB8YVtsKzQ1Mj4+Ml0pPj4+MCkpLygrX1tsKzUyOD4+M10qQSkrICtfW3A+PjNdLG09K19bZj4+M10tLjUqKygoMHxhW2wrNDQ4Pj4yXSk+Pj4wKSxwPWwrNTIwfDApOihfWyhwPWwrMzM2fDApPj4zXT0rX1twPj4zXS0uMTAwMDAwMDAwMDAwMDAwMDkqKCtfW2Y+PjNd''@;'; put 'put ''LS41KisoKDB8YVtsKzQ0OD4+Ml0pPj4+MCkpLygrX1tsKzUyMD4+M10qQSksbT0rX1tmKzg+PjNdLS41KisoKDB8YVtsKzQ1Mj4+Ml0pPj4+MCkscD1sKzUyOHwwKSxfWyh3PWwrMzQ0fDApPj4zXT0rX1t3Pj4zXS0uMTAwMDAwMDAwMDAwMDAwMDkqbS8oK19bcD4+M10qQSksdz0xM30xMz09''@;'; put 'put ''KDB8dykmJihmZVtsKzUzNz4+MF09MSksYVsobD1sKzU2MHwwKT4+Ml09YVtmPj4yXSxhW2wrND4+Ml09YVtmKzQ+PjJdLGFbbCs4Pj4yXT1hW2YrOD4+Ml0sYVtsKzEyPj4yXT1hW2YrMTI+PjJdLGxlPWJ9LGZ1bmN0aW9uIEt6KGwsYyxmKXtmZVs1MzgrKGx8PTApPj4wXT0wLGZlW2wrNTQx''@;'; put 'put ''Pj4wXT0wfSxmdW5jdGlvbiB3YihsLGMsZil7fSxmdW5jdGlvbiAkeihsLGMsZil7Znw9MDt2YXIgYixwPTAsbT0wLEE9MCx3PTA7Yj0wfGFbKGx8PTApPj4yXSwoY3w9MCk/MHwoYz0wfG5TKGMsMTM4ODIxKSkmJih3PTB8ckYoYywwKSx0dyhjKSxwPTUpOih3PTB8ckYoMHxhWzE1NjQ3XSww''@;'; put 'put ''KSxwPTUpLDU9PSgwfHApJiYwfHcmJigwfChjPTB8YVsobT1iKzE2OHwwKT4+Ml0pJiYoMCE9KDB8KHA9MHxhW2IrMTcyPj4yXSkpJiYwIT0oMHwoQT0wfGFbcCs0Pj4yXSkpJiYoQ29bMTI3JkFdKGMpLGM9MHxhW20+PjJdKSxmdW5jdGlvbiBkcChsKXt2YXIgYz0wLGY9MCxwPTA7Yz0wfGFb''@;'; put 'put ''OCsoZj0wfGFbKHA9MTYrKGx8PTApfDApPj4yXSk+PjJdO2Rve2lmKGMpe2lmKChmPTB8YVtjKzg4Pj4yXSkmJihGcmUoZiksIShjPTB8YVs4KyhmPTB8YVtwPj4yXSk+PjJdKSkpe2M9ZjticmVha31GdCgwfGFbYys5Mj4+Ml0pLGM9MHxhW3A+PjJdfWVsc2UgYz1mfXdoaWxlKDApO0Z0KDB8''@;'; put 'put ''YVtjKzg+PjJdKSxhWzgrKHA9MHxhW3A+PjJdKT4+Ml09MCxJYygwfGFbcCsxMj4+Ml0pLGwyKGwsMCwxMzc0ODMpfShjKSxDMSgwfGFbbT4+Ml0pKSwkaSh3LDAsMTM3NDgzLDI4MCwxKSwkaSh3LDEsMTM3NDQ3LDMwNCwxKSwkaSh3LDIsMTM3NDYwLDE3NiwxKSxhW20+PjJdPXcsYVsxNDQr''@;'; put 'put ''KDB8YVt3KzE2Pj4yXSk+PjJdPWIsLTEhPSgwfE9UKGIsdyxmKSkmJihhW2wrNTgwPj4yXT0wLGFbbCs1NzY+PjJdPTAsZmVbbCs1Mzc+PjBdPTEpKX0sZnVuY3Rpb24gTTkobCxjLGYpe2N8PTAsZnw9MDt2YXIgQSxwPTAsbT0wLHc9MCxiPTA7MCE9KDB8KHA9MHxhWyhtPTE2MCsoQT0wfGFb''@;'; put 'put ''KGx8PTApPj4yXSl8MCk+PjJdKSkmJjA9PSgwfGFbQSsxNjQ+PjJdKT8odz0wfGFbKGI9QSsxOTJ8MCk+PjJdLGFbbT4+Ml09MCxhW2I+PjJdPTAsbT13KToobT0wLHA9MCksZnVuY3Rpb24gQ3JlKGwsYyxmLHApe3B8PTA7dmFyIG0sQSxiLHc9MDtiPWxlLGxlPWxlKzE2fDAsQT1iLG09MHxh''@;'; put 'put ''WzYwKyhjfD0wKT4+Ml0sSVQobHw9MCxmfD0wKSxhWzU2KyhjPTB8YVtsKzE2ND4+Ml0pPj4yXT0wfGs5KGMsMHxhW2MrNTI+PjJdKSwwIT0oMHxoMChtLDEzNzQ4MywwLDEpKSYmMCE9KDB8YVs4KygwfGFbbSsxNj4+Ml0pPj4yXSl8fDY3MTA4ODY0JmFbYysxNTI+PjJdP3c9NTooWG0oOTg5''@;'; put 'put ''MTEsQSksYz0tMSksNT09KDB8dykmJihmdW5jdGlvbiBocmUobCxjKXtjfD0wO3ZhciBmPTAscD0wOyhmPTB8YVsocD0xNjArKGx8PTApfDApPj4yXSk/KHA9MHxhWzQ2OTk5XSkmJigoZj0wfGFbcCs0Pj4yXSl8fChmPTB8dnIoNjMyKSxhWzQrKDB8YVs0Njk5OV0pPj4yXT1mKSk6KGY9MHx2''@;'; put 'put ''cig2MzIpLGFbcD4+Ml09ZixhW2wrMTY0Pj4yXT1mKSxhWzQ2OTk5XT1mLGFbZiszMj4+Ml09YyxhW2Y+PjJdPWx9KGwscCksdz0wfGcyKGwsbSksUzkoYyksZnJlKGMpLHNGKGwpLGM9dyksbGU9Yn0oQSwwfGFbQSsxNjg+PjJdLGMsZiksMHxwJiYoYVsxNjArKGI9MHxhW2w+PjJdKT4+Ml09''@;'; put 'put ''cCxhW2IrMTkyPj4yXT1tKX0sZnVuY3Rpb24gYmMobCxjLGYpe0Z0KGN8PTApfSxmdW5jdGlvbiBBQihsLGMsZil7TmwoMHxhWzgrKGN8PTApPj4yXSksRnQoYyl9LGZ1bmN0aW9uIEtiKGwsYyxmKXtGdChjfD0wKX0sdUMsS20sZnVuY3Rpb24genIobCxjLGYpe2x8PTAsZnw9MDt2YXIgcD0w''@;'; put 'put ''O2ZvcihhWzQ2OTU2XT1jfD0wLGY9MHxNcyhsLGMpO2Y7KXA9MHxWcyhsLGYsYyksS20obCxmLDApLGY9cDttaVs2MyZhWyhwPTB8YVtsKzQwPj4yXSk+PjJdXShwLDE4NzgwOCwyKSxtaVs2MyZhWyhwPTB8YVtsKzM2Pj4yXSk+PjJdXShwLDE4NzgwOCwyKX0seG8sZnVuY3Rpb24gTWMobCxj''@;'; put 'put ''LGYpe0hpKGN8PTAsZnw9MCl9LGZ1bmN0aW9uIGhrKGwsYyxmKXtjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wLHc9MDtmb3IobD0xOTIrKDB8YVsxNisobHw9MCk+PjJdKXwwLHA9MCx3PTA7bD0wfGFbbD4+Ml07KXtmb3IobT0wfGFbMTgwKyhBPTB8YVtsKzE2Pj4yXSk+PjJdLGw9MDswfGFb''@;'; put 'put ''bSsobDw8Mik+PjJdOylsPWwrMXwwLHA9cCsxfDA7bD1BKzE2NHwwLHc9dysxfDB9YVtjPj4yXT13LGFbZj4+Ml09cH0sZnVuY3Rpb24gYk4obCxjLGYpe0Z0KDB8YVsoY3w9MCk+PjJdKSxGdCgwfGFbYys0Pj4yXSksRnQoYyl9LGU0LGZ1bmN0aW9uIEt1KGwsYyxmKXtsfD0wLGZ8PTA7dmFy''@;'; put 'put ''IHcsYixrLE0scD0wLG09MCxBPTA7Zm9yKE09bGUsbGU9bGUrMzJ8MCx3PU0saDIoTSsxNnwwLGN8PTApLGI9YyszMnwwLGs9YyszNnwwLG09MDshKCgwfG0pPj0oMHxhW2I+PjJdKSk7KSgwfChwPTB8YVsyMCsoQT0wfGFbKDB8YVtrPj4yXSkrKG08PDIpPj4yXSk+PjJdKSk9PSgwfGMpJiYo''@;'; put 'put ''cD0wfGFbQSsyND4+Ml0pLENpKHcsQSxwKSx2MyhsLGYsQSwwKSxtPW0rMXwwO2FbbD4+Ml09MSsoMHxhW2w+PjJdKSxhW2YrMjQ+PjJdPWMsYVtmKzIwPj4yXT1jLGxlPU19LGZ1bmN0aW9uIFd6KGwsYyxmKXtsfD0wLGN8PTA7dmFyIHcsYixwPTAsbT0wLEE9MCxrPTA7Zm9yKGI9MjArKGZ8''@;'; put 'put ''PTApfDAsdz1mKzI0fDAsZj0wOyEoKDB8Zik+PSgwfGwpKTspe2ZvcihtPTB8YVtjKyhmPDwzKT4+Ml0sQT0wfGFbYysoZjw8MykrND4+Ml0scD0wOyEoKDB8cCk+PSgwfG0pKTspR00oMHxsNigwfGFbKDA9PSgwfGZlWyhrPUErKDU2KnB8MCl8MCk+PjBdKT9iOncpPj4yXSxrKSxrKSxwPXAr''@;'; put 'put ''MXwwO2Y9ZisxfDB9fSxmdW5jdGlvbiBqRShsLGMsZil7KGZ1bmN0aW9uIGJCKGwpe3ZhciBjO3N3aXRjaChjPTg4KyhsfD0wKXwwLDB8ZmVbbCs5Mj4+MF0pe2Nhc2UgMTpaRSgwfGFbYz4+Ml0pO2JyZWFrO2Nhc2UgMjpKUigwfGFbYz4+Ml0pfUs4KGwpLEZ0KGwpfSkoMHxhWzgrKGN8PTAp''@;'; put 'put ''Pj4yXSksRnQoYyl9LGZ1bmN0aW9uIHlCKGwsYyxmKXtGdCgwfGFbOCsoY3w9MCk+PjJdKSxGdChjKX0sZnVuY3Rpb24gekUobCxjLGYpe2x8PTAsZnw9MDt2YXIgbSxwPTAsQT0wO2lmKChsPTB8aXRbKG09MTIrKGN8PTApfDApPj4xXSk8PDE2Pj4xNil7Zm9yKGY9MCxwPTB8YVsoQT1jKzh8''@;'; put 'put ''MCk+PjJdOyEoKDB8Zik+PShsPDwxNj4+MTZ8MCkpOylGdCgwfGFbcD4+Ml0pLGY9ZisxfDAscD1wKzU2fDAsbD0wfGl0W20+PjFdO0Z0KDB8YVtBPj4yXSl9RnQoYyl9LGZ1bmN0aW9uIENCKGwsYyxmKXtsfD0wLGN8PTAsZnw9MDtkb3tpZigwfHkwKGMsMTQwNjAzKSl7aWYoMHx5MChjLDE0''@;'; put 'put ''MDYwOSkmJjB8eTAoYywxNDA2MTIpKXtpZighKDB8eTAoYywxNDA2MTUpKSl7ZmVbMTg5NjYyXT0xLGFbNDczOTldPTB8U0IoZiksYVs0NzQwOV09Mjg3O2JyZWFrfWlmKCEoMHx5MChjLDE0MDYyMykpKXthWzQ3Mzk5XT0wfFRkKGwsZiwwKSxhWzQ3NDA5XT0yODg7YnJlYWt9aWYoISgwfHkw''@;'; put 'put ''KGMsMTQwNjI4KSkpe2FbNDczOTldPTB8VGQobCwwLDEpLGFbNDc0MDldPTI5MDticmVha31pZighKDB8eTAoYywxNDA2NDQpKSl7YVs0NzM5OV09MHxUZChsLDAsMzIpLGFbNDc0MDldPTI5NTticmVha31pZighKDB8eTAoYywxNDA2MzApKSl7YVs0NzM5OV09MHxUZChsLDAsNCksYVs0NzQw''@;'; put 'put ''OV09MjkxO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYzMikpKXthWzQ3Mzk5XT0wfFRkKGwsMCw2NCksYVs0NzQwOV09MjkyO2JyZWFrfWlmKCEoMHx5MChjLDE0MDYzNCkpKXthWzQ3Mzk5XT0wfFRkKGwsMCwyKSxhWzQ3NDA5XT0yODk7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjM2KSkpe2FbNDcz''@;'; put 'put ''OTldPTB8VGQobCwwLDgpLGFbNDc0MDldPTI5MzticmVha31pZighKDB8eTAoYywxNDA2NDApKSl7YVs0NzM5OV09MHxUZChsLDAsMTYpLGFbNDc0MDldPTI5NDticmVha31pZighKDB8eTAoYywxNDA2NDYpKSl7bEcoZiksYVs0NzQwOV09MjgzO2JyZWFrfWlmKCEoMHx5MChjLDE0MDY0OSkp''@;'; put 'put ''KXthWzQ3NDA5XT0yNzc7YnJlYWt9aWYoISgwfHkwKGMsMTQwNjUyKSkpe2FbNDc0MDldPTI4MDticmVha31pZighKDB8eTAoYywxNDA2NTUpKSl7YVs0NzM5OV09MHxRRShmKSxhWzQ3NDA5XT0yODU7YnJlYWt9aWYoMHx5MChjLDE0MDYxOCkpe1lFKGMpO2JyZWFrfWFbNDc0MDldPTI2Mjti''@;'; put 'put ''cmVha31mZVsxODk2NjJdPTAsYVs0NzQwOV09MjYwfWVsc2UgYVs0NzM5OV09MHxVRShmKSxmZVsxODk2NjJdPTAsYVs0NzQwOV09Mjg2fXdoaWxlKDApfSxmdW5jdGlvbiBXRShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIHA9MCxtPTAsQT0wO2lmKDB8ZmVbMTg5NjYyXSl7Zm9yKGw9MDtm''@;'; put 'put ''OylBPWMrMXwwLCgyNTUmKG09MHxmZVtjPj4wXSkpPjMxJiYoKHA9MHxhWzQrKGM9MHxhWzQ3NDEwXSk+PjJdKT4+PjA+PSgwfGFbYys4Pj4yXSk+Pj4wJiYoUTAoYywxKSxjPXA9MHxhWzQ3NDEwXSxwPTB8YVtwKzQ+PjJdKSxhW2MrND4+Ml09cCsxLGZlW3A+PjBdPW0sbD1sKzF8MCksYz1B''@;'; put 'put ''LGY9ZistMXwwOzB8bCYmKGFbNDc0MDldPTI2Nyl9fSxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxN''@;'; put 'put ''MCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMCxNMF0sY3c9W2ZjLGZ1bmN0aW9uIGU3ZShsLGMsZixwLG0sQSl7bHw9MCxwPStwLEF8PTA7dmFyIEQsUixHLHc9MCxiPTAsaz0wLE09MDtHPWxlLGxlPWxlKzk2fDAsUj1HLEQ9KHc9K19bOCsoZnw9MCk+PjNdKSooaz0obT0rbSk+ND8u''@;'; put 'put ''MDg3NSptOi4zNSksayo9Yj0rX1tmPj4zXSxfWyhNPUcrODB8MCk+PjNdPWI9KHA9K19bKGN8PTApPj4zXSkrYixfW00rOD4+M109dys9bT0rX1tjKzg+PjNdLGY9Uis2NHwwLDMyJkE/KGFbZj4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2MrOD4+Ml0sYVtm''@;'; put 'put ''KzEyPj4yXT1hW2MrMTI+PjJdLGFbUj4+Ml09YVtjPj4yXSxhW1IrND4+Ml09YVtjKzQ+PjJdLGFbUis4Pj4yXT1hW2MrOD4+Ml0sYVtSKzEyPj4yXT1hW2MrMTI+PjJdLGFbKGM9UiszMnwwKT4+Ml09YVtNPj4yXSxhW2MrND4+Ml09YVtNKzQ+PjJdLGFbYys4Pj4yXT1hW00rOD4+Ml0sYVtj''@;'; put 'put ''KzEyPj4yXT1hW00rMTI+PjJdKTooYVtmPj4yXT1hW00+PjJdLGFbZis0Pj4yXT1hW00rND4+Ml0sYVtmKzg+PjJdPWFbTSs4Pj4yXSxhW2YrMTI+PjJdPWFbTSsxMj4+Ml0sYVtSPj4yXT1hW00+PjJdLGFbUis0Pj4yXT1hW00rND4+Ml0sYVtSKzg+PjJdPWFbTSs4Pj4yXSxhW1IrMTI+PjJd''@;'; put 'put ''PWFbTSsxMj4+Ml0sYVsoTT1SKzMyfDApPj4yXT1hW2M+PjJdLGFbTSs0Pj4yXT1hW2MrND4+Ml0sYVtNKzg+PjJdPWFbYys4Pj4yXSxhW00rMTI+PjJdPWFbYysxMj4+Ml0sbT13LHA9YiksX1tSKzE2Pj4zXT1wK0QsX1tSKzI0Pj4zXT1tLWssX1tSKzQ4Pj4zXT1wLUQsX1tSKzU2Pj4zXT1t''@;'; put 'put ''K2s7ZG97aWYoISg2NCZBKSl7aWYoMTI4JkEpe2thKGwsUiszMnwwLDMsQT4+PjQmMV4xKTticmVha31rYShsLFIrMTZ8MCwzLEE+Pj40JjFeMSk7YnJlYWt9a2EobCxSLDMsQT4+PjQmMV4xKX13aGlsZSgwKTtsZT1HfSxmdW5jdGlvbiBHMyhsLGMsZixwLG0sQSl7bHw9MDt2YXIgRCxSLEcs''@;'; put 'put ''TGUsUmUsSGUsdz0wLGI9MCxrPTAsTT0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLFZlPTA7SGU9bGUsbGU9bGUrMTYwfDAsUmU9SGUsTGU9KHE9ISgocT00KihwPStwKSk8KG09K20pKXwoVmU9MD09KDMyJihBfD0wKXwwKSk/LjQ1Om0vcSouNDUpKihwZT0tKE9lPStfWzgrKGZ8PTApPj4z''@;'; put 'put ''XSkpLHEqPWJlPStfW2Y+PjNdLHBlKj1nZT0hKG0+MSl8VmU/MDouMDUqKG0rLTEpL3AsZ2UqPWJlLF9bKEQ9SGUrMTQ0fDApPj4zXT1wPShHPStfWyhjfD0wKT4+M10pK2JlLF9bRCs4Pj4zXT1tPU9lKyhSPStfW2MrOD4+M10pLGJlPS41KmJlK0csT2U9LjUqT2UrUixmPVJlKzEyOHwwLFZl''@;'; put 'put ''PyhhW2Y+PjJdPWFbRD4+Ml0sYVtmKzQ+PjJdPWFbRCs0Pj4yXSxhW2YrOD4+Ml09YVtEKzg+PjJdLGFbZisxMj4+Ml09YVtEKzEyPj4yXSxhW1JlPj4yXT1hW0Q+PjJdLGFbUmUrND4+Ml09YVtEKzQ+PjJdLGFbUmUrOD4+Ml09YVtEKzg+PjJdLGFbUmUrMTI+PjJdPWFbRCsxMj4+Ml0sYVso''@;'; put 'put ''VmU9UmUrNjR8MCk+PjJdPWFbYz4+Ml0sYVtWZSs0Pj4yXT1hW2MrND4+Ml0sYVtWZSs4Pj4yXT1hW2MrOD4+Ml0sYVtWZSsxMj4+Ml09YVtjKzEyPj4yXSx3PVIsYj1HLGs9UixNPUcsbT1SLHA9Ryk6KGFbZj4+Ml09YVtjPj4yXSxhW2YrND4+Ml09YVtjKzQ+PjJdLGFbZis4Pj4yXT1hW2Mr''@;'; put 'put ''OD4+Ml0sYVtmKzEyPj4yXT1hW2MrMTI+PjJdLGFbUmU+PjJdPWFbYz4+Ml0sYVtSZSs0Pj4yXT1hW2MrND4+Ml0sYVtSZSs4Pj4yXT1hW2MrOD4+Ml0sYVtSZSsxMj4+Ml09YVtjKzEyPj4yXSxhWyhWZT1SZSs2NHwwKT4+Ml09YVtEPj4yXSxhW1ZlKzQ+PjJdPWFbRCs0Pj4yXSxhW1ZlKzg+''@;'; put 'put ''PjJdPWFbRCs4Pj4yXSxhW1ZlKzEyPj4yXT1hW0QrMTI+PjJdLHc9bStnZSxiPXArcGUsaz1tLWdlLE09cC1wZSksX1tSZSsxNj4+M109cC1MZSxfW1JlKzI0Pj4zXT1tLXEsX1tSZSszMj4+M109YmUtcGUsX1tSZSs0MD4+M109T2UtZ2UsX1tSZSs0OD4+M109TSxfW1JlKzU2Pj4zXT1rLF9b''@;'; put 'put ''UmUrODA+PjNdPWIsX1tSZSs4OD4+M109dyxfW1JlKzk2Pj4zXT1iZStwZSxfW1JlKzEwND4+M109T2UrZ2UsX1tSZSsxMTI+PjNdPXArTGUsX1tSZSsxMjA+PjNdPW0rcTtkb3tpZighKDY0JkEpKXtpZigxMjgmQSl7a2EobCxSZSs0OHwwLDYsMSk7YnJlYWt9a2EobCxSZSw5LDEpO2JyZWFr''@;'; put 'put ''fWthKGwsUmUsNiwxKX13aGlsZSgwKTtsZT1IZX0sZnVuY3Rpb24gQUYobCxjLGYscCxtLEEpe2x8PTAscD0rcCxtPSttLEF8PTA7dmFyIHcsYixELFIsRyxxLGdlLGJlLGs9MCxNPTAscGU9MDtxPWxlLGxlPWxlKzY0fDAscD0oaz0rX1soY3w9MCk+PjNdKSsoZ2U9K19bKGZ8PTApPj4zXSks''@;'; put 'put ''bT0oTT0rX1tjKzg+PjNdKSsoYmU9K19bZis4Pj4zXSksdz1rKy4yKmdlLGI9TSsuMipiZSxrKz0uNipnZSxNKz0uNipiZSxfWyhHPXEpPj4zXT13LWJlLF9bRys4Pj4zXT1iK2dlLF9bKEQ9RysxNnwwKT4+M109dytiZSxfWyhSPUcrMjR8MCk+PjNdPWItZ2UsX1tHKzMyPj4zXT1rK2JlLF9b''@;'; put 'put ''Rys0MD4+M109TS1nZSxfW0crNDg+PjNdPWstYmUsX1tHKzU2Pj4zXT1NK2dlLDY0JkE/KGY9MyxBPTAscGU9Myk6MTI4JkF8MCYmKGY9MixBPTEscGU9MyksMz09KDB8cGUpJiYoX1tHKyhBPDw0KT4+M109dyxfW0crKEE8PDQpKzg+PjNdPWIsX1tHKyhmPDw0KT4+M109ayxfW0crKGY8PDQp''@;'; put 'put ''Kzg+PjNdPU0pLGthKGwsRyw0LDEpLGFbRz4+Ml09YVtjPj4yXSxhW0crND4+Ml09YVtjKzQ+PjJdLGFbRys4Pj4yXT1hW2MrOD4+Ml0sYVtHKzEyPj4yXT1hW2MrMTI+PjJdLF9bRD4+M109cCxfW1I+PjNdPW0sV28obCxHLDIpLGxlPXF9LGZ1bmN0aW9uIEhyZShsLGMsZixwLG0sQSl7bHw9''@;'; put 'put ''MCxwPStwLG09K20sQXw9MDt2YXIgayxNLEQsUixxLHBlLGdlLGJlLHc9MCxiPTAsRz0wO1I9bGUsbGU9bGUrNjR8MCxwZT0tLjQqKGI9K19bOCsoZnw9MCk+PjNdKSxxPS40Kih3PStfW2Y+PjNdKSxwPShiZT0rX1soY3w9MCk+PjNdKSsuOCp3LG09KGdlPStfW2MrOD4+M10pKy44KmIsdz1i''@;'; put 'put ''ZSt3LGI9Z2UrYixfWyhEPVIpPj4zXT1iZStwZSxfWyhrPUQrOHwwKT4+M109Z2UrcSxfWyhmPUQrMTZ8MCk+PjNdPWJlLXBlLF9bKE09RCsyNHwwKT4+M109Z2UtcSxfW0QrMzI+PjNdPXAtcGUsX1tEKzQwPj4zXT1tLXEsX1tEKzQ4Pj4zXT1wK3BlLF9bRCs1Nj4+M109bStxLDY0JkE/KGFb''@;'; put 'put ''RD4+Ml09YVtjPj4yXSxhW0QrND4+Ml09YVtjKzQ+PjJdLGFbRCs4Pj4yXT1hW2MrOD4+Ml0sYVtEKzEyPj4yXT1hW2MrMTI+PjJdLGY9MyxHPTUpOjEyOCZBfDAmJihhW2Y+PjJdPWFbYz4+Ml0sYVtmKzQ+PjJdPWFbYys0Pj4yXSxhW2YrOD4+Ml09YVtjKzg+PjJdLGFbZisxMj4+Ml09YVtj''@;'; put 'put ''KzEyPj4yXSxmPTIsRz01KSw1PT0oMHxHKSYmKF9bRCsoZjw8NCk+PjNdPXAsX1tEKyhmPDw0KSs4Pj4zXT1tKSxrYShsLEQsNCxBPj4+NCYxXjEpLF9bRD4+M109cCxfW2s+PjNdPW0sX1tEKzE2Pj4zXT13LF9bTT4+M109YixXbyhsLEQsMiksbGU9Un0sZnVuY3Rpb24gTnJlKGwsYyxmLHAs''@;'; put 'put ''bSxBKXt2YXIgdyxiLGssTSxELFIsRyxxO2x8PTAscD0rcCxtPSttLEF8PTAsYj1sZSxsZT1sZSs4MHwwLGs9LS4zMzMzMzMzMzMzMzMzMzMzKihEPStfWzgrKGZ8PTApPj4zXSksbT0uMzMzMzMzMzMzMzMzMzMzMyooRz0rX1tmPj4zXSksTT0ocT0rX1soY3w9MCk+PjNdKSsuNSpHLHA9KFI9''@;'; put 'put ''K19bYys4Pj4zXSkrLjUqRCxmPSh3PWIpKzY0fDAsX1t3KzY0Pj4zXT1xK0csX1t3KzcyPj4zXT1SK0QsYVt3Pj4yXT1hW2Y+PjJdLGFbdys0Pj4yXT1hW2YrND4+Ml0sYVt3Kzg+PjJdPWFbZis4Pj4yXSxhW3crMTI+PjJdPWFbZisxMj4+Ml0sX1t3KzE2Pj4zXT1NK2ssX1t3KzI0Pj4zXT1w''@;'; put 'put ''K20sYVsoZj13KzMyfDApPj4yXT1hW2M+PjJdLGFbZis0Pj4yXT1hW2MrND4+Ml0sYVtmKzg+PjJdPWFbYys4Pj4yXSxhW2YrMTI+PjJdPWFbYysxMj4+Ml0sX1t3KzQ4Pj4zXT1NLWssX1t3KzU2Pj4zXT1wLW07ZG97aWYoISg2NCZBKSl7aWYoZj1BPj4+NCYxXjEsMTI4JkEpe2thKGwsdywz''@;'; put 'put ''LGYpO2JyZWFrfWthKGwsdyw0LGYpO2JyZWFrfWthKGwsZiwzLEE+Pj40JjFeMSl9d2hpbGUoMCk7bGU9Yn0sZnVuY3Rpb24gVnJlKGwsYyxmLHAsbSxBKXtsfD0wLGN8PTAscD0rcCxtPSttLEF8PTA7dmFyIHcsYixrLEQsTT0wO3c9bGUsbGU9bGUrMzJ8MCxiPXcscD0uNSorRDAoKygobT0r''@;'; put 'put ''X1s4KyhmfD0wKT4+M10pKm0rKE09K19bZj4+M10pKk0pKSxfW2I+PjNdPShEPStfW2M+PjNdKSsoTSo9LjUpLXAsX1tiKzg+PjNdPShrPStfW2MrOD4+M10pLXArKG0qPS41KSxfW2IrMTY+PjNdPUQrcCtNLF9bYisyND4+M109aytwK20sJHUobCxiLDIsQT4+PjQmMV4xKSxsZT13fSxmdW5j''@;'; put 'put ''dGlvbiBqcmUobCxjLGYscCxtLEEpe2x8PTAscD0rcCxBfD0wO3ZhciBrLEcscSxwZSxnZSxiZSx3PTAsYj0wLE09MCxEPTAsUj0wO2JlPWxlLGxlPWxlKzExMnwwLHE9YmUrNDh8MCxnZT1iZSxHPStfWyhjfD0wKT4+M10sdz0rX1tjKzg+PjNdLHA9KE09K19bOCsoZnw9MCk+PjNdKSooRD0o''@;'; put 'put ''bT0rbSk+ND8uMTI1Km06LjUpLG09KFI9K19bZj4+M10pKkQsYVsocGU9YmUrMTZ8MCk+PjJdPWFbYz4+Ml0sYVtwZSs0Pj4yXT1hW2MrND4+Ml0sYVtwZSs4Pj4yXT1hW2MrOD4+Ml0sYVtwZSsxMj4+Ml09YVtjKzEyPj4yXSxfW3BlKzE2Pj4zXT1SK0csX1twZSsyND4+M109TSt3LF9bcT4+''@;'; put 'put ''M109RCooUi1NKStHLF9bcSs4Pj4zXT1rPShiPUQqKE0rUikpK3csX1txKzQ4Pj4zXT1iK0csX1txKzU2Pj4zXT13PUQqKE0tUikrdyxNPShSPS0uOTUqcCkrbStHLEQ9MS4zMzMzMzMzMzMzMzMzMzMzKm0sMzImQT8oYj0yLjMzMzMzMzMzMzMzMzMzMyptLHcrPXAqPTEuMzMzMzMzMzMzMzMz''@;'; put 'put ''MzMzMyxtPWsrcCxwPU0rRCk6KGI9LS4zMzMzMzMzMzMzMzMzMzMyNiptLHctPXAqPTEuMzMzMzMzMzMzMzMzMzMzMyxtPWstcCxwPU0tRCksX1txKzE2Pj4zXT1wLF9bcSsyND4+M109bSxfW3ErMzI+PjNdPWItUitHLF9bcSs0MD4+M109dyxXbyhsLHBlLDIpLDY0JkE/d3UoZ2UscSwzLC41''@;'; put 'put ''LDAscSk6MTI4JkF8MCYmd3UoZ2UscSwzLC41LHEsMCksUWYobCxxLDQsMCwwLDApLGxlPWJlfSxmdW5jdGlvbiBMQyhsLGMsZixwLG0sQSl7dmFyIHc7bHw9MCxwPStwLG09K20sQXw9MCxBPWxlLGxlPWxlKzMyfDAscD0rX1soZnw9MCk+PjNdKyArX1soY3w9MCk+PjNdLG09K19bZis4Pj4z''@;'; put 'put ''XSsgK19bYys4Pj4zXSxhWyh3PUEpPj4yXT1hW2M+PjJdLGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sX1t3KzE2Pj4zXT1wLF9bdysyND4+M109bSxXbyhsLHcsMiksbGU9QX0sZmMsZmMsZmMsZmMsZmMsZmMsZmNdLFJjPVtm''@;'; put 'put ''dW5jdGlvbiBhUyhsLGMsZixwKXt3MigxNyl9LGZ1bmN0aW9uIFhkKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0wLHpUKGx8PTApLE5DKGwpLHA/KDM9PSgxfHApP1RGKGwscCxjLGYpOkdUKGwpLFZDKGwsODAsYyxmKSk6VkMobCwxMTIsYyxmKX0sZnVuY3Rpb24gbWllKGwsYyxmLHApe2N8PTAs''@;'; put 'put ''Znw9MCxwfD0wO3ZhciBtLEEsdyxiLGssTSxELEcscSxSPTA7bT1sZSxsZT1sZSs5NnwwLEE9bSs4fDAsRD1+fitfWzE1MisocT0wfGFbMTYrKGx8PTApPj4yXSk+PjNdLE09MHxhW3ErMTY+PjJdLGs9MHxhW3ErNTY+PjJdLGI9MHxhWzQ2NzEwXSx1NyhxLFI9bSs4MHwwLEc9bSksUj0wfGFb''@;'; put 'put ''Uj4+Ml0sdz0rX1tHPj4zXSxhW0E+PjJdPTIsYVtBKzQ+PjJdPTMsYVtBKzg+PjJdPVIsYVtBKzEyPj4yXT1ELGFbQSsxNj4+Ml09TSxhW0ErMjA+PjJdPWssYVtBKzI0Pj4yXT1iLGFbQSsyOD4+Ml09MCxhW0ErMzI+PjJdPTB8cD8yMDotMSxfW0ErNDA+PjNdPXcsYVtBKzQ4Pj4yXT0wLGFb''@;'; put 'put ''QSs1Mj4+Ml09MCxhW0ErNTY+PjJdPTAsYVtBKzYwPj4yXT0wLGFbQSs2ND4+Ml09MCxhW0ErNjg+PjJdPWYrMSxPcihsLDY4MzMxLEEpLE9GKGwsYyxmLDEpLGxlPW19LGZ1bmN0aW9uIENpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsYixrLE0sRCxHLHEsUj0wO209bGUs''@;'; put 'put ''bGU9bGUrOTZ8MCxBPW0rOHwwLEQ9fn4rX1sxNTIrKHE9MHxhWzE2KyhsfD0wKT4+Ml0pPj4zXSxNPTB8YVtxKzE2Pj4yXSxrPTB8YVtxKzU2Pj4yXSxiPTB8YVs0NjcxNl0sJFQocSxSPW0rODB8MCxHPW0pLFI9MHxhW1I+PjJdLHc9K19bRz4+M10sYVtBPj4yXT0yLGFbQSs0Pj4yXT0zLGFb''@;'; put 'put ''QSs4Pj4yXT1SLGFbQSsxMj4+Ml09RCxhW0ErMTY+PjJdPU0sYVtBKzIwPj4yXT1rLGFbQSsyND4+Ml09YixhW0ErMjg+PjJdPTAsYVtBKzMyPj4yXT0wfHA/MjA6LTEsX1tBKzQwPj4zXT13LGFbQSs0OD4+Ml09MCxhW0ErNTI+PjJdPTAsYVtBKzU2Pj4yXT0wLGFbQSs2MD4+Ml09MCxhW0Er''@;'; put 'put ''NjQ+PjJdPTAsYVtBKzY4Pj4yXT1mKzEsT3IobCw2ODMzMSxBKSxXVyhsLGMsZiwxKSxsZT1tfSxmdW5jdGlvbiB4aWUobCxjLGYscCl7dmFyIG07bHw9MCxjfD0wLHB8PTAsYz1sZSxsZT1sZSsxNnwwLGFbKG09Yyk+PjJdPWZ8PTAsYVttKzQ+PjJdPXAsT3IobCw2OTU4MSxtKSxsZT1jfSxm''@;'; put 'put ''dW5jdGlvbiBLVyhsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIHcsYixtPTAsQT0wO2lmKGI9bGUsbGU9bGUrMTZ8MCx3PWIsQT0xNisobHw9MCl8MCwwfChwfD0wKSYmK19bODArKG09MHxhW0E+PjJdKT4+M10+LjUpe2ZvcihhcChsLG0rNTZ8MCksRW4obCw2ODg1MiksYVt3Pj4yXT1hW2M+PjJd''@;'; put 'put ''LGFbdys0Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sbmgobCx3KSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49KDB8ZikpOylhW3c+PjJdPWFbKG09YysocDw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW20rND4+Ml0sYVt3Kzg+PjJdPWFb''@;'; put 'put ''bSs4Pj4yXSxhW3crMTI+PjJdPWFbbSsxMj4+Ml0sbmgobCx3KSxFbihsLDY4ODcwKSxwPXArMXwwO0VuKGwsNjg4OTcpfWlmKCtfWzQwKygwfGFbQT4+Ml0pPj4zXT4uNSl7Zm9yKEdBKGwpLGFwKGwsMTYrKDB8YVtBPj4yXSl8MCksRW4obCw2ODg1MiksYVt3Pj4yXT1hW2M+PjJdLGFbdys0''@;'; put 'put ''Pj4yXT1hW2MrND4+Ml0sYVt3Kzg+PjJdPWFbYys4Pj4yXSxhW3crMTI+PjJdPWFbYysxMj4+Ml0sbmgobCx3KSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49KDB8ZikpOylhW3c+PjJdPWFbKEE9YysocDw8NCl8MCk+PjJdLGFbdys0Pj4yXT1hW0ErND4+Ml0sYVt3Kzg+PjJdPWFbQSs4Pj4y''@;'; put 'put ''XSxhW3crMTI+PjJdPWFbQSsxMj4+Ml0sbmgobCx3KSxFbihsLDY4ODcwKSxwPXArMXwwO0VuKGwsNjg5MTMpfWxlPWJ9LGZ1bmN0aW9uIHA3ZShsLGMsZixwKXtjNyhsfD0wLGN8PTAsMCwxMDE1MTAsMHxhWzgrKDB8YVtsKzE2Pj4yXSk+PjJdKSxFbihsLDc2Mzg4KX0sZnVuY3Rpb24gYjdl''@;'; put 'put ''KGwsYyxmLHApe2x8PTAsY3w9MCxmfD0wO3ZhciBtPTA7c3dpdGNoKDB8KHB8PTApKXtjYXNlIDI6bT0wfHRZKGwsYyxmKTticmVhaztjYXNlIDM6bT0wfG5ZKGwpO2JyZWFrO2RlZmF1bHQ6bT0wfWZvcihFbihsLDczOTk5KSxORihsLHAsbSksRW4obCw3MzQxNCksbT0wOyEoKDB8bSk+PSgw''@;'; put 'put ''fGYpKTspWnMobCwrX1tjKyhtPDw0KT4+M10pLEVuKGwsMTAwOTk5KSxacyhsLC0rX1tjKyhtPDw0KSs4Pj4zXSksRW4obCwxMDI2MDQpLG09bSsxfDA7WnMobCwrX1tjPj4zXSksRW4obCwxMDA5OTkpLFpzKGwsLStfW2MrOD4+M10pLEVuKGwsNzM0MjQpfSxmdW5jdGlvbiBUN2UobCxjLGYs''@;'; put 'put ''cCl7dmFyIG0sQSx3LGI7aWYoY3w9MCxmfD0wLHB8PTAsYj1sZSxsZT1sZSs0OHwwLG09YiwwfGFbKHc9MTQ0KyhBPTB8YVsxNisobHw9MCk+PjJdKXwwKT4+Ml0pe2VJKGwpLEVuKGwsNzUyOTIpLHozKGwsYyxmKSxFbihsLDc1MTU1KTtkb3tpZighcCl7aWYoMHxhWzQ2NzIzXSl7RW4obCwx''@;'; put 'put ''MzcxOTgpO2JyZWFrfUVuKGwsOTczMDkpO2JyZWFrfWY9QSs1NnwwLHA9KGM9bSkrNDB8MDtkb3thW2M+PjJdPWFbZj4+Ml0sYz1jKzR8MCxmPWYrNHwwfXdoaWxlKCgwfGMpPCgwfHApKTtXQShsLG0pfXdoaWxlKDApOzE9PSgwfGFbNDY3MjNdKSYmKGFbNDY3MjNdPTApLEVuKGwsNzUyNjYp''@;'; put 'put ''LFpzKGwsK19bQSsxNTI+PjNdKSxFbihsLDc1MzA5KSxmPUErMTZ8MCxwPShjPW0pKzQwfDA7ZG97YVtjPj4yXT1hW2Y+PjJdLGM9Yys0fDAsZj1mKzR8MH13aGlsZSgoMHxjKTwoMHxwKSk7V0EobCxtKSwxPT0oMHwoYz0wfGFbdz4+Ml0pKSYmKEVuKGwsNzUxNjMpLGM9MHxhW3c+PjJdKSwy''@;'; put 'put ''PT0oMHxjKSYmRW4obCw3NTE3MiksdEkobCksRW4obCwxNTM1OTkpfWxlPWJ9LGZ1bmN0aW9uIHppZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgYixrLE0sRCxtPTAsQT0wLHc9MDtmb3IoTT1sZSxsZT1sZSs0OHwwLGs9TSsyNHwwLGI9TSs4fDAsQT1NLEVuKGx8PTAsNzU1MTEpLEQ9''@;'; put 'put ''MHxhWzQ2NzI3XSxhW0E+PjJdPWFbNDY3MjZdLGFbQSs0Pj4yXT1ELE9yKGwsNzU3NjQsQSksaVkobCxwKSxFbihsLDc1Nzg4KSxuSShsKSxFbihsLDc1NzkxKSxBPWYrLTF8MCxwPTA7ISgoMHxwKT49KDB8ZikpOyl3PStfW2MrKHA8PDQpPj4zXSxtPSsoKDB8YVs0NjcyN10pPj4+MCktK19b''@;'; put 'put ''YysocDw8NCkrOD4+M10scD8oX1trPj4zXT13LF9bays4Pj4zXT1tLE9yKGwsNzU4ODQsaykpOihFbihsLDc1ODE4KSxfW2I+PjNdPXcsX1tiKzg+PjNdPW0sT3IobCw3NTg4NCxiKSxFbihsLDc1ODk1KSksKDB8cCk9PSgwfEEpJiZFbihsLDc1ODk4KSxwPXArMXwwO0VuKGwsNzU2MjcpLGxl''@;'; put 'put ''PU19LGZ1bmN0aW9uIHo3ZShsLGMsZixwKXt2YXIgbSxBO2x8PTAsZnw9MCxwfD0wLG09bGUsbGU9bGUrMTZ8MCxhWyhBPW0pPj4yXT1jfD0wLGFbQSs0Pj4yXT1mLGFbQSs4Pj4yXT1wLE9yKGwsNzkzNTcsQSksam5bNDY3MjhdPSsoMHxBcihmLC0xMCkpLGxlPW19LGZ1bmN0aW9uIFg3ZShs''@;'; put 'put ''LGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgRCxSLEcscSxwZSxnZSxiZSxPZSxMZSxIZSxWZSxxZSxydCxXZSxTdCxrdCxzdCxFdCxjdCxidCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxSZT0wLGF0PTAsWnQ9MCxhbj0wLFNuPTAsSG49MDtidD1sZSxsZT1sZSszMzZ8MCxydD1idCsyOTZ8''@;'; put 'put ''MCxjdD1idCsyODh8MCxadD1idCsyNzJ8MCxFdD1idCsyNjR8MCxzdD1idCsyNDB8MCxhdD1idCsyMzJ8MCxxZT1idCsyMDh8MCxWZT1idCsxODR8MCxMZT1idCsxNjB8MCxPZT1idCsxNTJ8MCxiZT1idCsxMzZ8MCxnZT1idCsxMjh8MCxwZT1idCs5NnwwLHE9YnQrODh8MCxHPWJ0KzU2fDAs''@;'; put 'put ''bT1idCs0OHwwLGs9YnQrMjR8MCxiPWJ0LEVuKGx8PTAsNzg3ODIpLGpuWzQ2NzI5XT0ram5bNDY3MjhdLTIsYW49K19bKFI9bCs0OTZ8MCk+PjNdLF9bYj4+M109K19bKEQ9bCs0ODh8MCk+PjNdLF9bYis4Pj4zXT1hbixfW2IrMTY+PjNdPTEsYj0wfEVhKGwsNzgyNzcsYiksYW49KygwfGFb''@;'; put 'put ''KEhlPWwrMzYwfDApPj4yXSksX1trPj4zXT0wLF9bays4Pj4zXT0wLF9baysxNj4+M109YW4saz0wfEVhKGwsNzgzMDksayksYW49K2puWzQ2NzI5XS0yLF9bcnQ+PjNdPTAsX1tydCs4Pj4zXT0wLF9bcnQrMTY+PjNdPWFuLE09MHxFYShsLDc4MzQxLHJ0KSx3PTE2KygwfGFbKFdlPWwrMTZ8''@;'; put 'put ''MCk+PjJdKXwwLFJlPShBPXJ0KSs0MHwwO2Rve2FbQT4+Ml09YVt3Pj4yXSxBPUErNHwwLHc9dys0fDB9d2hpbGUoKDB8QSk8KDB8UmUpKTtmb3Iodz0wfFlBKGwscnQsMCksYVttPj4yXT03ODQwNCxhW20rND4+Ml09ZisxLFN0PWwrNTA0fDAsa3Q9bCs1MTJ8MCxBPTAsbT0wfEVhKGwsNzgz''@;'; put 'put ''NzMsbSk7ISgoMHxBKT49KDB8ZikpOylIbj0rX1trdD4+M10rICtfW2MrKEE8PDQpKzg+PjNdLGFuPStfWzE1MisoMHxhW1dlPj4yXSk+PjNdLF9bRz4+M109K19bU3Q+PjNdKyArX1tjKyhBPDw0KT4+M10sX1tHKzg+PjNdPUhuLF9bRysxNj4+M109MCxfW0crMjQ+PjNdPWFuLFNuPTB8RWEo''@;'; put 'put ''bCw3ODQxOCxHKSxhW3E+PjJdPW0sYVtxKzQ+PjJdPVNuLFJlPTB8RWEobCw3ODQ0NyxxKSxGdChTbiksRnQobSksQT1BKzF8MCxtPVJlO2lmKGFuPStfW2t0Pj4zXSsgK19bYys4Pj4zXSxIbj0rX1sxNTIrKDB8YVtXZT4+Ml0pPj4zXSxfW3BlPj4zXT0rX1tTdD4+M10rICtfW2M+PjNdLF9b''@;'; put 'put ''cGUrOD4+M109YW4sX1twZSsxNj4+M109MCxfW3BlKzI0Pj4zXT1IbixSZT0wfEVhKGwsNzg0MTgscGUpLGFbZ2U+PjJdPW0sYVtnZSs0Pj4yXT1SZSxTbj0wfEVhKGwsNzg0NDcsZ2UpLEZ0KFJlKSxGdChtKSxhW2JlPj4yXT1iLGFbYmUrND4+Ml09ayxhW2JlKzg+PjJdPU0sYVtiZSsxMj4+''@;'; put 'put ''Ml09dyxSZT0wfEVhKGwsNzg3OTcsYmUpLGFbT2U+PjJdPVNuLGFbT2UrND4+Ml09UmUsU249MHxFYShsLDc4NTAyLE9lKSxGdChSZSksRW4obCxTbiksRnQoYiksRnQoayksRnQoTSksRnQodyksRnQoU24pLDB8cCl7SG49K19bUj4+M10sX1tMZT4+M109K19bRD4+M10sX1tMZSs4Pj4zXT1I''@;'; put 'put ''bixfW0xlKzE2Pj4zXT0xLE09MHxFYShsLDc4Mjc3LExlKSxIbj0rKDB8YVtIZT4+Ml0pLF9bVmU+PjNdPTAsX1tWZSs4Pj4zXT0wLF9bVmUrMTY+PjNdPUhuLGs9MHxFYShsLDc4MzA5LFZlKSxIbj0ram5bNDY3MjldLTIsX1txZT4+M109MCxfW3FlKzg+PjNdPTAsX1txZSsxNj4+M109SG4s''@;'; put 'put ''Yj0wfEVhKGwsNzgzNDEscWUpLHc9NTYrKDB8YVtXZT4+Ml0pfDAsUmU9KEE9cnQpKzQwfDA7ZG97YVtBPj4yXT1hW3c+PjJdLEE9QSs0fDAsdz13KzR8MH13aGlsZSgoMHxBKTwoMHxSZSkpO2Zvcih3PTB8WUEobCxydCwuMjUpLGFbYXQ+PjJdPWYsQT0wLG09MHxFYShsLDc4ODQyLGF0KTsh''@;'; put 'put ''KCgwfEEpPj0oMHxmKSk7KUhuPStfW2t0Pj4zXSsgK19bYysoQTw8NCkrOD4+M10sX1tzdD4+M109K19bU3Q+PjNdKyArX1tjKyhBPDw0KT4+M10sX1tzdCs4Pj4zXT1IbixfW3N0KzE2Pj4zXT0wLGF0PTB8RWEobCw3ODg1NyxzdCksYVtFdD4+Ml09bSxhW0V0KzQ+PjJdPWF0LFNuPTB8RWEo''@;'; put 'put ''bCw3ODg3OSxFdCksRnQoYXQpLEZ0KG0pLEE9QSsxfDAsbT1TbjthW1p0Pj4yXT1NLGFbWnQrND4+Ml09ayxhW1p0Kzg+PjJdPWIsYVtadCsxMj4+Ml09dyxadD0wfEVhKGwsNzg4ODksWnQpLGFbY3Q+PjJdPW0sYVtjdCs0Pj4yXT1adCxTbj0wfEVhKGwsNzg1MDIsY3QpLEZ0KFp0KSxFbihs''@;'; put 'put ''LFNuKSxGdChNKSxGdChrKSxGdChiKSxGdCh3KSxGdChTbil9bGU9YnR9LGZ1bmN0aW9uIFVpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MCxwPWxlLGxlPWxlKzE2fDAsVkYoMHxhWzE2KyhsfD0wKT4+Ml0scCs4fDAscCksdVkobCxjLGYsMSksbGU9cH0sZnVuY3Rpb24gJGllKGwsYyxmLHAp''@;'; put 'put ''e2N8PTAscHw9MDt2YXIgQSx3LGIsayxNLEQsUixtPTA7Uj1sZSxsZT1sZSs5NnwwLEQ9Uis1NnwwLE09UiszMnwwLGs9UixiPStfWzE2KyhmfD0wKT4+M10tKHc9K19bZj4+M10pLEE9KG09K19bZisyND4+M10pLStfW2YrOD4+M10sKGx8PTApfHxQcigxMTEyODIsODQ0MDcsNTMsODQ4NjAp''@;'; put 'put ''LGN8fFByKDExMTMxMiw4NDQwNyw1NCw4NDg2MCksMHxhWyhwPWMrOHwwKT4+Ml18fFByKDExMTMxNSw4NDQwNyw1NSw4NDg2MCksRW4obCw4NDg3OSksRW4obCwwfGFbcD4+Ml0pLG09LW0sMHxhWyhwPWwrMzYwfDApPj4yXT8oX1trPj4zXT1BLF9bays4Pj4zXT1iLF9baysxNj4+M109dyxf''@;'; put 'put ''W2srMjQ+PjNdPW0sT3IobCw4NDg5OSxrKSxhW00+PjJdPWFbcD4+Ml0sX1tNKzg+PjNdPXcsX1tNKzE2Pj4zXT1tLE9yKGwsODQ5NzgsTSkpOihfW0Q+PjNdPWIsX1tEKzg+PjNdPUEsX1tEKzE2Pj4zXT13LF9bRCsyND4+M109bSxPcihsLDg1MDA4LEQpKSxFbihsLDg1MDg3KSxsZT1SfSxm''@;'; put 'put ''dW5jdGlvbiBZaChsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgbSxBLHcsYj0wLGs9MCxNPTA7aWYodz1sZSxsZT1sZSsxMjh8MCxBPXcrODB8MCxtPXcsKGx8PTApfHxQcigxMTEyODIsODQ0MDcsOTcsODQ3NTEpLGN8fFByKDExMTMxMiw4NDQwNyw5OCw4NDc1MSkscD0wfGFbYys4Pj4y''@;'; put 'put ''XSlyZXR1cm4gYj1+figoTT0rX1tmPj4zXSkrKE0+PTA/LjU6LS41KSksYz1+figoTT0rX1tmKzg+PjNdKSsoTT49MD8uNTotLjUpKSxrPX5+KChNPStfW2YrMTY+PjNdKSsoTT49MD8uNTotLjUpKSxmPX5+KChNPStfW2YrMjQ+PjNdKSsoTT49MD8uNTotLjUpKSxhW20+PjJdPTIsYVttKzQ+''@;'; put 'put ''PjJdPTUsYVttKzg+PjJdPTAsYVttKzEyPj4yXT0wLGFbbSsxNj4+Ml09MCxhW20rMjA+PjJdPS0xLGFbbSsyND4+Ml09MSxhW20rMjg+PjJdPS0xLGFbbSszMj4+Ml09MCxfW20rNDA+PjNdPTAsYVttKzQ4Pj4yXT0wLGFbbSs1Mj4+Ml09MCxhW20rNTY+PjJdPTAsYVttKzYwPj4yXT0wLGFb''@;'; put 'put ''bSs2ND4+Ml09MCxhW20rNjg+PjJdPTUsYVttKzcyPj4yXT0wLGFbbSs3Nj4+Ml09cCxPcihsLDg0NzcwLG0pLGFbQT4+Ml09YixhW0ErND4+Ml09YyxhW0ErOD4+Ml09YixhW0ErMTI+PjJdPWYsYVtBKzE2Pj4yXT1rLGFbQSsyMD4+Ml09ZixhW0ErMjQ+PjJdPWssYVtBKzI4Pj4yXT1jLGFb''@;'; put 'put ''QSszMj4+Ml09YixhW0ErMzY+PjJdPWMsT3IobCw4NDgyOCxBKSx2b2lkKGxlPXcpO1ByKDExMTMxNSw4NDQwNyw5OSw4NDc1MSl9LGZ1bmN0aW9uIEpBKGwsYyxmLHApe3ZhciBtLEE7aWYoY3w9MCxmfD0wLHB8PTAsQT1sZSxsZT1sZSs4MHwwLG09QSs0OHwwLChsfD0wKXx8UHIoMTExMjgy''@;'; put 'put ''LDg0NDA3LDEyMSw4NDU2MiksKHA9MHxhW2wrMTY+PjJdKXx8UHIoOTk5MDIsODQ0MDcsMTIzLDg0NTYyKSxjfHxQcigxMTEzMTIsODQ0MDcsMTI0LDg0NTYyKSwwfGFbKGY9Yys4fDApPj4yXXx8UHIoMTExMzE1LDg0NDA3LDEyNSw4NDU2MiksMHxhW3ArOD4+Ml0pcmV0dXJuIE9yKGwsODQ1''@;'; put 'put ''ODIsQSksT3IobCw4NDU5MSxBKzh8MCksT3IobCw4NDYxOCxBKzE2fDApLE9yKGwsODQ2NDMsQSsyNHwwKSxPcihsLDg0NjcyLEErMzJ8MCksT3IobCw4NDcwMCxBKzQwfDApLGFbbT4+Ml09YVtmPj4yXSxPcihsLDg0NzA3LG0pLE9yKGwsODQ3NDYsQSs1NnwwKSxPcihsLDExMTAwOCxBKzY0''@;'; put 'put ''fDApLHZvaWQobGU9QSk7UHIoMTM4ODc5LDg0NDA3LDEyOCw4NDU2Mil9LGZ1bmN0aW9uIEtpZShsLGMsZixwKXtjfD0wLGZ8PTAscHw9MDt2YXIgdyxiLGssTSxELG09MCxBPTAsUj0wO0Q9bGUsbGU9bGUrMTEyfDAsTT1EKzI0fDAsaz1EKzE2fDAsYj1ELEE9RCsyOHwwLChsfD0wKXx8UHIo''@;'; put 'put ''MTExMjgyLDg0NDA3LDE1Myw4NDQ4OCksY3x8UHIoMTExMzEyLDg0NDA3LDE1NCw4NDQ4OCksMHxhW2MrOD4+Ml18fFByKDExMTMxNSw4NDQwNywxNTUsODQ0ODgpLDB8YVsodz1jKzUyfDApPj4yXT8xMDA9PSgwfChtPTB8YVsocD1jKzYwfDApPj4yXSkpP209MTg6KENvWzEyNyZtXShjKSxh''@;'; put 'put ''W3c+PjJdPTAsYVtwPj4yXT0wLGFbYys1Nj4+Ml09MCxtPTEwKTptPTEwO2Rve2lmKDEwPT0oMHxtKSl7aWYoISgoMHxncmUoYykpPDwyND4+MjQpKWJyZWFrO3A9MHxZJCgwfGFbYysyMD4+Ml0pLDY9PSgtMiZhW2MrMjQ+PjJdfDApPyhUJChwLEEpLGFbYys1Nj4+Ml09QT0wfGFbQSszNj4+''@;'; put 'put ''Ml0scD0wfE51ZSgwLEEsMSwxLHAsMCksYVt3Pj4yXT1wLGZlW2MrMTY+PjBdPTEpOnA9MHxhW3c+PjJdLDB8cCYmKGFbYys2MD4+Ml09MTAwKSxZRyhjKSwwfGFbdz4+Ml0mJihtPTE4KX19d2hpbGUoMCk7MTg9PSgwfG0pJiYoUj0rX1tmKzg+PjNdLSsoMHxhW2MrMzY+PjJdKSxfW2I+PjNd''@;'; put 'put ''PStfW2Y+PjNdLSsoMHxhW2MrMzI+PjJdKSxfW2IrOD4+M109UixPcihsLDg0NTA2LGIpLDB8ZmVbYysxNj4+MF0/TlEobCxjKTooYVtrPj4yXT1hW2MrMTI+PjJdLE9yKGwsODQ1MzcsaykpLE9yKGwsODQ1NTIsTSkpLGxlPUR9LGZ1bmN0aW9uIFFBKGwsYyxmLHApe2N8PTAsZnw9MCxwfD0w''@;'; put 'put ''O3ZhciB3LGIsayxELFIsRyxxLGdlLGJlLG09MCxBPTAsTT0wLHBlPTAsT2U9MDtpZihiZT1sZSxsZT1sZSsxNjB8MCxnZT1iZSsxNTJ8MCxwZT1iZSsxMzZ8MCxxPWJlKzEyMHwwLGs9YmUrMTEyfDAsRD1iZSsxMDR8MCxNPWJlKzg4fDAsYj1iZSs3MnwwLHc9YmUrNjR8MCxSPWJlLChsfD0w''@;'; put 'put ''KXx8UHIoMTExMjgyLDg0NDA3LDIxMiw4NDQyNiksY3x8UHIoMTExMzEyLDg0NDA3LDIxMyw4NDQyNiksMHxhWyhHPWMrOHwwKT4+Ml18fFByKDExMTMxNSw4NDQwNywyMTQsODQ0MjYpLDB8YVtjKzUyPj4yXSl7aWYoYVtSPj4yXT1hW2Y+PjJdLGFbUis0Pj4yXT1hW2YrND4+Ml0sYVtSKzg+''@;'; put 'put ''PjJdPWFbZis4Pj4yXSxhW1IrMTI+PjJdPWFbZisxMj4+Ml0sYVsoYz1SKzMyfDApPj4yXT1hWyhmPWYrMTZ8MCk+PjJdLGFbYys0Pj4yXT1hW2YrND4+Ml0sYVtjKzg+PjJdPWFbZis4Pj4yXSxhW2MrMTI+PjJdPWFbZisxMj4+Ml0sX1tSKzE2Pj4zXT1tPStfW1I+PjNdLF9bUisyND4+M109''@;'; put 'put ''K19bUis0MD4+M10sX1tSKzQ4Pj4zXT0rX1tjPj4zXSxfW1IrNTY+PjNdPUE9K19bUis4Pj4zXSxwPDwyND4+MjQpe2ZvcihPcihsLDg0NDQ3LHcpLGM9MDs0IT0oMHxjKTspT2U9K19bUisoYzw8NCkrOD4+M10sX1tiPj4zXT0rX1tSKyhjPDw0KT4+M10sX1tiKzg+PjNdPU9lLE9yKGwsODQ0''@;'; put 'put ''NTAsYiksYz1jKzF8MDtfW00+PjNdPW0sX1tNKzg+PjNdPUEsT3IobCw4NDQ1MCxNKSxNPTB8YVtHPj4yXSxhW0Q+PjJdPTQsYVtEKzQ+PjJdPU0sT3IobCw4NDQ1NyxEKX1mb3IoT3IobCw4NDQ0NyxrKSxjPTA7NCE9KDB8Yyk7KU9lPStfW1IrKGM8PDQpKzg+PjNdLF9bcT4+M109K19bUiso''@;'; put 'put ''Yzw8NCk+PjNdLF9bcSs4Pj4zXT1PZSxPcihsLDg0NDUwLHEpLGM9YysxfDA7X1twZT4+M109bSxfW3BlKzg+PjNdPUEsT3IobCw4NDQ1MCxwZSkscGU9MHxhW0c+PjJdLGFbZ2U+PjJdPTQsYVtnZSs0Pj4yXT1wZSxPcihsLDg0NDcyLGdlKX1sZT1iZX0sZnVuY3Rpb24gY1kobCxjLGYscCl7''@;'; put 'put ''fSxmdW5jdGlvbiBvaWUobCxjLGYscCl7dmFyIG0sQSx3O2N8PTAsZnw9MCxwfD0wLHA9bGUsbGU9bGUrMTA0MHwwLHc9cCxtPXArMTZ8MCx1byhBPTB8YVsxMTQxNisoYVsxMisoMHxhWzE2KyhsfD0wKT4+Ml0pPj4yXTw8Mik+PjJdLDY3MDEzKSxhW3c+PjJdPWFbZj4+Ml0sYVt3KzQ+PjJd''@;'; put 'put ''PWFbZis0Pj4yXSxhW3crOD4+Ml09YVtmKzg+PjJdLGFbdysxMj4+Ml09YVtmKzEyPj4yXSxCNShBLHcpLFdoKG0sK19bZisxNj4+M10tK19bZj4+M10pLHVvKEEsbSksV2gobSwrX1tmKzI0Pj4zXS0rX1tmKzg+PjNdKSx1byhBLG0pLFA1KGwsMTk1MDU5LDB8YVtjKzg+PjJdKSxsZT1wfSxm''@;'; put 'put ''dW5jdGlvbiBYaWUobCxjLGYscCl7cHw9MDt2YXIgbSx3LGIsayxBPTA7cD1sZSxsZT1sZSs0OHwwLGs9K19bMTYrKGZ8PTApPj4zXS0odz0rX1tmPj4zXSksYj0oQT0rX1tmKzI0Pj4zXSktK19bZis4Pj4zXSxBPSsofn4oK19bMjMyKyhsfD0wKT4+M10tK19bbCsyMTY+PjNdKT4+PjApLUEs''@;'; put 'put ''YVsobT1wKT4+Ml09YVs4KyhjfD0wKT4+Ml0sX1ttKzg+PjNdPWssX1ttKzE2Pj4zXT1iLF9bbSsyND4+M109dyxfW20rMzI+PjNdPUEsT3IobCw4NDMxMCxtKSxFbihsLDg0NDAyKSxsZT1wfSxmdW5jdGlvbiBhSShsLGMsZixwKXt2YXIgbSxBLHcsYixrO2x8PTAsZnw9MCxwfD0wLHA9bGUs''@;'; put 'put ''bGU9bGUrMzJ8MCxtPXArOHwwLGFbKGI9cCk+PjJdPWs9MHxhWyhjPTgrKGN8PTApfDApPj4yXSxhW2IrND4+Ml09ayxPcihsLDg0MjIzLGIpLHc9LjUqKCtfW2Y+PjNdKyArX1tmKzE2Pj4zXSksQT0uNSooK19bZis4Pj4zXSsgK19bZisyND4+M10pLGFbbT4+Ml09YVtjPj4yXSxfW20rOD4+''@;'; put 'put ''M109dyxfW20rMTY+PjNdPUEsT3IobCw4NDI2NSxtKSxsZT1wfSxmdW5jdGlvbiBuNyhsLGMsZixwKXswPT0oMSYoZnw9MCl8MCkmITAmJmUwKGx8PTAsZil9LGZ1bmN0aW9uIEdhZShsLGMsZixwKXtsfD0wLGN8PTAscHw9MDt2YXIgayxELFIsbT0wLEE9MCx3PTAsYj0wLE09MDtpZihSPWxl''@;'; put 'put ''LGxlPWxlKzgwfDAsaz1SKzQwfDAsbT1SLEQ9Uis2NHwwLEE9Uis1NnwwLDB8ZmVbKGZ8PTApPj4wXSl7dz0wPT0oMHxwKT8xMDYzNTY6cCxhW0Q+PjJdPTE1LHA9MHxhWyhiPWMrMTZ8MCk+PjJdO2Rve2lmKDB8ZmVbODIrKDB8YVtwKzEwND4+Ml0pPj4wXSl7aWYoIShwPTB8ckcoYyxmLEQp''@;'; put 'put ''KSl7cD0wfGFbYj4+Ml0sTT04O2JyZWFrfTB8bWsoYyxwLG0sdywwfGFbRD4+Ml0sMCkmJihhW2s+PjJdPTB8dGkoYyksYVtrKzQ+PjJdPWYsYVtrKzg+PjJdPXcsJHIoMCwxMDYzNTgsaykpfWVsc2UgTT04fXdoaWxlKDApOzg9PSgwfE0pJiYoMTY2ND09KDB8YVs4KygwfGFbcCs4Pj4yXSk+''@;'; put 'put ''PjJdKT9BPTA6KGFbQT4+Ml09YyxhW0ErND4+Ml09MCksMHxtayhjLDAsbSxmLDB8YVtEPj4yXSxBKSYmZUooYyxmKSksYVttKzM2Pj4yXT0wLEE9bCs0MHwwO2Rve2FbbD4+Ml09YVttPj4yXSxsPWwrNHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8QSkpfWVsc2V7bT00MjA4LEE9bCs0MHww''@;'; put 'put ''O2Rve2FbbD4+Ml09YVttPj4yXSxsPWwrNHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8QSkpfWxlPVJ9LGZ1bmN0aW9uIGNOKGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBiLGssbT0wLEE9MCx3PTA7aWYoaz1sZSxsZT1sZSs2NHwwLGI9ays0MHwwLG09aywwfGZlWyhmfD0wKT4+MF0p''@;'; put 'put ''e3A9MD09KDB8cCk/MTA2MzU2OnAsKHc9MHxpSihBPTB8YVsxMisoMHxhW2MrMTY+PjJdKT4+Ml0sZikpPzB8bWsoYyx3KzE2fDAsbSxwLDB8WHRbdys2NT4+MF0sMCkmJihhW2I+PjJdPTB8dGkoYyksYVtiKzQ+PjJdPWYsYVtiKzg+PjJdPXAsJHIoMCwxMDYzNTgsYikpOjB8bWsoYyxBKzE2''@;'; put 'put ''fDAsbSxmLDE1LDApJiZlSihjLGYpLHA9bCs0MHwwO2Rve2FbbD4+Ml09YVttPj4yXSxsPWwrNHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8cCkpfWVsc2V7bT00MjA4LHA9bCs0MHwwO2Rve2FbbD4+Ml09YVttPj4yXSxsPWwrNHwwLG09bSs0fDB9d2hpbGUoKDB8bCk8KDB8cCkpfWxlPWt9''@;'; put 'put ''LGhqLGZ1bmN0aW9uIE4xZShsLGMsZixwKXtjfD0wLGZ8PTA7dmFyIHcsYixtPTAsQT0wO2Zvcih3PTcyKyhsfD0wKXwwLGI9NCsocHw9MCl8MDshKChmLWN8MCk8PTEpOyl7c3dpdGNoKG09MHxmZVtjKzE+PjBdLDB8KGw9KGw9MHxmZVtjPj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxYdFt3''@;'; put 'put ''KygyNTUmbSk+PjBdKSl7Y2FzZSA1OmRlZmF1bHQ6Yz1jKzJ8MDticmVhaztjYXNlIDY6Yz1jKzN8MDticmVhaztjYXNlIDc6Yz1jKzR8MDticmVhaztjYXNlIDEwOmFbYj4+Ml09LTEsYVtwPj4yXT0xKygwfGFbcD4+Ml0pLGM9YysyfDA7YnJlYWs7Y2FzZSA5OmFbcD4+Ml09MSsoMHxhW3A+''@;'; put 'put ''PjJdKSwoZi0oQT1jKzJ8MCl8MCk+MT8obT0wfGZlW2MrMz4+MF0sYz0xMD09KDB8KGw9KGw9MHxmZVtBPj4wXSk8PDI0Pj4yND8wfGYwKGwsbSk6MHxYdFt3KygyNTUmbSk+PjBdKSk/Yys0fDA6QSk6Yz1BLGFbYj4+Ml09LTF9YVtiPj4yXT0xKygwfGFbYj4+Ml0pfX0sZnVuY3Rpb24gSjll''@;'; put 'put ''KGwsYyxmLHApe2N8PTAsZnw9MDt2YXIgdyxiLG09MCxBPTA7Zm9yKHc9NzIrKGx8PTApfDAsYj00KyhwfD0wKXwwOyEoKGYtY3wwKTw9MSk7KXtzd2l0Y2gobT0wfGZlW2M+PjBdLDB8KGw9KGw9MHxmZVtjKzE+PjBdKTw8MjQ+PjI0PzB8ZjAobCxtKTowfFh0W3crKDI1NSZtKT4+MF0pKXtj''@;'; put 'put ''YXNlIDU6ZGVmYXVsdDpjPWMrMnwwO2JyZWFrO2Nhc2UgNjpjPWMrM3wwO2JyZWFrO2Nhc2UgNzpjPWMrNHwwO2JyZWFrO2Nhc2UgMTA6YVtiPj4yXT0tMSxhW3A+PjJdPTErKDB8YVtwPj4yXSksYz1jKzJ8MDticmVhaztjYXNlIDk6YVtwPj4yXT0xKygwfGFbcD4+Ml0pLChmLShBPWMrMnww''@;'; put 'put ''KXwwKT4xPyhtPTB8ZmVbQT4+MF0sYz0xMD09KDB8KGw9KGw9MHxmZVtjKzM+PjBdKTw8MjQ+PjI0PzB8ZjAobCxtKTowfFh0W3crKDI1NSZtKT4+MF0pKT9jKzR8MDpBKTpjPUEsYVtiPj4yXT0tMX1hW2I+PjJdPTErKDB8YVtiPj4yXSl9fSx4MSxmdW5jdGlvbiBGcyhsLGMsZixwKXtsfD0w''@;'; put 'put ''LGZ8PTAscHw9MDt2YXIgYixrLE0sRCxtPTAsQT0wLHc9MDtmb3IoRD1sZSxsZT1sZSszMnwwLGI9RCxoMihEKzE2fDAsY3w9MCksaz1jKzMyfDAsTT1jKzM2fDAsbT0wOyEoKDB8bSk+PSgwfGFbaz4+Ml0pKTspe0E9MHxhWygwfGFbTT4+Ml0pKyhtPDwyKT4+Ml07ZG97aWYoISgwfGZlW0Er''@;'; put 'put ''MzY+PjBdKSl7aWYoKDB8KHc9MHxhW0ErMjA+PjJdKSk9PSgwfGMpKXtDaShiLEEsMHxhW0ErMjQ+PjJdKSx2MyhsLHAsQSwwKTticmVha31DaShiLEEsdyksdjMobCxmLEEsMCk7YnJlYWt9fXdoaWxlKDApO209bSsxfDB9YVtsPj4yXT0yKygwfGFbbD4+Ml0pLGxlPUR9LGZ1bmN0aW9uIEhz''@;'; put 'put ''KGwsYyxmLHApe2x8PTAsY3w9MCxwfD0wO3ZhciBxZSxydCxXZSxhdCxTdCxrdCxFdCxtPTAsQT0wLHc9MCxiPTAsaz0wLE09MCxEPTAsUj0wLEc9MCxxPTAscGU9MCxnZT0wLGJlPTAsT2U9MCxMZT0wLFJlPTAsSGU9MCxWZT0wLHN0PTA7Zm9yKEV0PWxlLGxlPWxlKzEyOHwwLFdlPUV0KzY0''@;'; put 'put ''fDAsTT1FdCs0OHwwLGF0PUV0KzMyfDAsU3Q9RXQrMTZ8MCxrdD1FdCxtPTAsQT1mfD0wO0E7KW09bSsxfDAsQT0wfGFbQSs4Pj4yXTtmb3IocnQ9MHx2cigoNTYqbXwwKS0xMTJ8MCksYVtXZSs1Mj4+Ml09MCxhW1dlKzQ4Pj4yXT0wLEE9MHxhWzgrKGY9MHxhWyhxZT1mKzh8MCk+PjJdKT4+''@;'; put 'put ''Ml0sMSZhWyhtPTB8YVtmKzIwPj4yXSk+PjJdJiYobT0wfGFbZisyND4+Ml0pLENpKE0sZixtKSx3PWYsRz1mLFI9MCxEPStfW00+PjNdLFZlPTAsaz0wLFJlPStfW00rOD4+M107MHxhWyhIZT1BKzh8MCk+PjJdOyl7aWYoVEUoYyxPZT0wfGdiKHcsQSksMHxhW0crMTI+PjJdKSwoMHxmZVso''@;'; put 'put ''Z2U9RyszNnwwKT4+MF0pPT0oMHxmZVsoYmU9QSszNnwwKT4+MF0pPygwfGFbSGU+PjJdKT09KDB8cCk/KENpKFN0LEEsT2UpLGY9U3Qsc3Q9MTIpOih3PUcsZj1WZSxiPVJlKTooaDIoYXQsT2UpLGY9YXQsc3Q9MTIpLDEyPT0oMHxzdCkpe3N0PTAsTGU9K19bZj4+M10sYj0rX1tmKzg+PjNd''@;'; put 'put ''LHE9KDB8Ryk9PSgwfGFbcWU+PjJdKSwocGU9KGY9MHxmZVtnZT4+MF0pPDwyND4+MjQ9PTApPyhmPTB8ZmVbYmU+PjBdPygwfGFbQSsyMD4+Ml0pPT0oMHxPZSk/NDoyOjAsTT1PZSs0OHwwLEc9bSs0OHwwLHc9bSs0MHwwLG09cT8wOlI+RD80OjIpOihmPWY8PDI0Pj4yND09KDB8ZmVbYmU+''@;'; put 'put ''PjBdKT8wOigwfGFbQSsyMD4+Ml0pPT0oMHxPZSk/MTozLE09T2UrNDB8MCxHPW0rNDB8MCx3PW0rNDh8MCxtPXE/MDprPlJlPzE6MyksYjkoV2UsMSZwZSwrX1t3Pj4zXSwrX1tHPj4zXSwrX1tNPj4zXSxtLGYpLEc9VmUrMXwwLGY9V2Usdz01NisobT1ydCsoNTYqVmV8MCl8MCl8MDtkb3th''@;'; put 'put ''W20+PjJdPWFbZj4+Ml0sbT1tKzR8MCxmPWYrNHwwfXdoaWxlKCgwfG0pPCgwfHcpKTtpZigoMHxmZVtnZT4+MF0pIT0oMHxmZVtiZT4+MF0pJiYoMHxhW0hlPj4yXSk9PSgwfHApKXtDaShrdCxBLE9lKSxmPU9lKzQwfDAsbT1PZSs0OHwwLGI5KFdlLDEmKE09MD09KDB8ZmVbYmU+PjBdKSks''@;'; put 'put ''K19bKE0/ZjptKT4+M10sUj0rX1soTT9tOmYpPj4zXSxSLE0/RD5MZT80OjI6UmU+Yj8xOjMsMCksTT1WZSsyfDAsZj1XZSx3PTU2KyhtPXJ0Kyg1NipHfDApfDApfDA7ZG97YVttPj4yXT1hW2Y+PjJdLG09bSs0fDAsZj1mKzR8MH13aGlsZSgoMHxtKTwoMHx3KSk7bT1PZSx3PUEsUj1ELEQ9''@;'; put 'put ''TGUsZj1NLGs9UmV9ZWxzZSBtPU9lLHc9QSxSPUQsRD1MZSxmPUcsaz1SZX1PZT1BLEE9MHxhW0hlPj4yXSxHPXcsVmU9ZixSZT1iLHc9T2V9Zm9yKEE9MHxVYShydCw1NipWZXwwKSxmPVZlKy0xfDAsbT0wOyEoKDB8bSk+PSgwfFZlKSk7KSgwfG0pPjAmJihhW0ErKDU2Km18MCkrNDg+PjJd''@;'; put 'put ''PUErKDU2KihtKy0xfDApfDApKSwoMHxtKTwoMHxmKT8oYVtBKyg1NiptfDApKzUyPj4yXT1BKyg1Niooc3Q9bSsxfDApfDApLG09c3QpOm09bSsxfDA7YVtsPj4yXT1WZSxhW2wrND4+Ml09QSxsZT1FdH0sZnVuY3Rpb24gUUsobCxjLGYscCl7aGooNTg1ODQsY3w9MCxmfD0wLHB8PTApfV0s''@;'; put 'put ''cDg9W01wLGZ1bmN0aW9uIEJGKGwsYyxmLHAsbSl7dmFyIEE7SlQobHw9MCwwfGFbMjY0KyhBPTB8YVtsKzE2Pj4yXSk+PjJdLDB8YVtBKzI3Mj4+Ml0sMHxhW0ErMjY4Pj4yXSxjfD0wLGZ8PTAscHw9MCxtfD0wKX0sZnVuY3Rpb24gT2llKGwsYyxmLHAsbSl7bHw9MCxmfD0wLHB8PTA7dmFy''@;'; put 'put ''IEE9MDtwPWxlLGxlPWxlKzE2fDAsZj1wLDB8KGN8PTApJiYwfGFbKEE9MjcyKygwfGFbbCsxNj4+Ml0pfDApPj4yXSYmKEVuKGwsNjkwMTQpLHozKGwsMHxhW0E+PjJdLDIpLEVuKGwsNjkwMjUpLGFbZj4+Ml09MHxuTihjLDB8YVs0NjcyMF0pLE9yKGwsNjkwMjksZikpLGxlPXB9LGZ1bmN0''@;'; put 'put ''aW9uIGg3ZShsLGMsZixwLG0pe2N8PTAsZnw9MCxwfD0wO3ZhciBBLHcsayxNLEQsYj0wO0Q9bGUsbGU9bGUrMzJ8MCxBPUQrMTZ8MCxNPUQrOHwwLGs9RCx3PTE2KyhsfD0wKXwwLDB8KG18PTApJiYrX1s4MCsoYj0wfGFbdz4+Ml0pPj4zXT4uNSYmKGFwKGwsYis1NnwwKSxFbihsLDg0NDQ3''@;'; put 'put ''KSx6MyhsLGYscCksRW4obCwxMDI2MDQpLGFbQT4+Ml09YVtmPj4yXSxhW0ErND4+Ml09YVtmKzQ+PjJdLGFbQSs4Pj4yXT1hW2YrOD4+Ml0sYVtBKzEyPj4yXT1hW2YrMTI+PjJdLG5oKGwsQSksYVtrPj4yXT1wLGFbays0Pj4yXT1jLE9yKGwsNjg3NjYsaykpLCtfWzQwKygwfGFbdz4+Ml0p''@;'; put 'put ''Pj4zXT4uNSYmKEdBKGwpLGFwKGwsMTYrKDB8YVt3Pj4yXSl8MCksRW4obCw4NDQ0NyksejMobCxmLHApLEVuKGwsMTAyNjA0KSxhW0E+PjJdPWFbZj4+Ml0sYVtBKzQ+PjJdPWFbZis0Pj4yXSxhW0ErOD4+Ml09YVtmKzg+PjJdLGFbQSsxMj4+Ml09YVtmKzEyPj4yXSxuaChsLEEpLGFbTT4+''@;'; put 'put ''Ml09cCxhW00rND4+Ml09YyxPcihsLDY4NzgyLE0pKSxsZT1EfSxmdW5jdGlvbiBOaWUobCxjLGYscCxtKXtjfD0wLGZ8PTAscHw9MCxtfD0wLEVuKGx8PTAsNzQ1MTkpLDB8bSYmKEVuKGwsNzQ1MjIpLEVuKGwsMHxNMShtKSksRW4obCw5ODc0NCkpLEVuKGwsNzQ0MTIpLEVuKGwsNzYzNDkp''@;'; put 'put ''LDB8YyYmMHxmZVtjPj4wXSYmKEVuKGwsNzQ1MzApLEVuKGwsYyksRW4obCw5ODc0NCkpLDB8ZiYmMHxmZVtmPj4wXSYmKEVuKGwsNzQ1NDQpLEVuKGwsMHx6SChmLDEpKSxFbihsLDk4NzQ0KSksMHxwJiYwfGZlW3A+PjBdJiYoRW4obCw3NDU1OSksRW4obCwwfE0xKHApKSxFbihsLDk4NzQ0''@;'; put 'put ''KSksRW4obCw3NjM4OCl9LGZ1bmN0aW9uIFA3ZShsLGMsZixwLG0pe3ZhciBBLHcsYjtjfD0wLGZ8PTAscHw9MCxtfD0wLGI9bGUsbGU9bGUrMzJ8MCx3PWIrMTZ8MCxBPWIrOHwwLG09YixFbihsfD0wLDc2MzQ5KSwwfGMmJjB8ZmVbYz4+MF0mJihhW20+PjJdPTB8bmkoYyksT3IobCw3NjM1''@;'; put 'put ''MixtKSksMHxmJiYwfGZlW2Y+PjBdJiYoYVtBPj4yXT0wfG5pKGYpLE9yKGwsNzYzNjMsQSkpLDB8cCYmMHxmZVtwPj4wXSYmKGFbdz4+Ml09MHxuaShwKSxPcihsLDc2Mzc1LHcpKSxFbihsLDc2Mzg4KSxsZT1ifSxmdW5jdGlvbiBCVShsLGMsZixwLG0pe3B8PTA7dmFyIFIsRyxwZSxnZSxM''@;'; put 'put ''ZSxBPTAsdz0wLGI9MCxrPTAsTT0wLEQ9MCxxPTAsYmU9MCxPZT0wO2ZvcihSPTE9PSgwfChtfD0wKSksRz0xNisoZ2U9MHxhWygwfGFbKDB8YVsxOTYrKDB8YVsoTGU9MTYrKGx8PTApfDApPj4yXSk+PjJdKSsoKGN8PTApPDw2KSs0Pj4yXSkrKChmfD0wKTw8Mik+PjJdKXwwLEQ9cGU9Zisx''@;'; put 'put ''fDA7Oyl7aWYoKDB8RCk+KDB8cCkpe0E9cCxPZT1wZTticmVha31NPTE2KyhxPTB8YVsoMHxhWygwfGFbMTk2KygwfGFbTGU+PjJdKT4+Ml0pKyhjPDw2KSs0Pj4yXSkrKEQ8PDIpPj4yXSl8MDtlOmRve2lmKFIpZm9yKDs7KXtpZighKGs9MHxhW2FbMTgwKyhmPTB8YVtNPj4yXSk+PjJdPj4y''@;'; put 'put ''XSkpYnJlYWsgZTtmb3Iodz0wfGFbMTgwKygwfGFbRz4+Ml0pPj4yXSxiPWsrLTQ4fDAsbT0wOzspe2lmKCEoZj0wfGFbdysobTw8Mik+PjJdKSl7YmU9ODticmVha31pZigoMHxhWygyPT0oMyZhW2Y+PjJdfDApP2Y6ZistNDh8MCkrNDA+PjJdKT09KDB8YVsoMj09KDMmYVtrPj4yXXwwKT9r''@;'; put 'put ''OmIpKzQwPj4yXSkpYnJlYWs7bT1tKzF8MH1mb3IoOD09KDB8YmUpJiYoYmU9MCxmPTB8SmMoZ2UsMHxhWygyPT0oMyZhW2s+PjJdfDApP2s6YikrNDA+PjJdLGspKTttPTB8YVthWzE3MisoMHxhW00+PjJdKT4+Ml0+PjJdOyl6NihtLGYpLFkzKG0pO1kzKGspfWVsc2UgZm9yKDs7KXtpZigh''@;'; put 'put ''KGs9MHxhW2FbMTcyKyhmPTB8YVtNPj4yXSk+PjJdPj4yXSkpYnJlYWsgZTtmb3Iodz0wfGFbMTcyKygwfGFbRz4+Ml0pPj4yXSxiPWsrNDh8MCxtPTA7Oyl7aWYoIShmPTB8YVt3KyhtPDwyKT4+Ml0pKXtiZT0xNzticmVha31pZigoMHxhWygzPT0oMyZhW2Y+PjJdfDApP2Y6Zis0OHwwKSs0''@;'; put 'put ''MD4+Ml0pPT0oMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6YikrNDA+PjJdKSlicmVhazttPW0rMXwwfWZvcigxNz09KDB8YmUpJiYoYmU9MCxmPTB8SmMoMHxhWygzPT0oMyZhW2s+PjJdfDApP2s6YikrNDA+PjJdLGdlLGspKTttPTB8YVthWzE4MCsoMHxhW00+PjJdKT4+Ml0+PjJdOyl6Niht''@;'; put 'put ''LGYpLFkzKG0pO1kzKGspfX13aGlsZSgwKTtpZigoMHxhW2YrMTc2Pj4yXSkhPSgwLSgwfGFbZisxODQ+PjJdKXwwKSl7YmU9MjM7YnJlYWt9ZkkobCxxKSxEPUQrMXwwfWZvcigyMz09KDB8YmUpJiZQcig4ODMxMyw4ODM1NywxMTUsODgzNjQpOyEoKDB8KEE9QSsxfDApKT49KDB8YVsobT0o''@;'; put 'put ''Zj0wfGFbMTk2KygwfGFbTGU+PjJdKT4+Ml0pKyhjPDw2KXwwKT4+Ml0pKTspYVsocD0wfGFbZisoYzw8NikrND4+Ml0pKyhPZTw8Mik+PjJdPWJlPTB8YVtwKyhBPDwyKT4+Ml0sYVsyMzYrKDB8YVtiZSsxNj4+Ml0pPj4yXT1PZSxPZT1PZSsxfDA7YVttPj4yXT1PZSxhWygwfGFbZisoYzw8''@;'; put 'put ''NikrND4+Ml0pKyhPZTw8Mik+PjJdPTB9LGVXLGZ1bmN0aW9uIGdmKGwsYyxmLHAsbSl7bHw9MCxjfD0wLGZ8PTAscHw9MCxtfD0wO3ZhciBiLE0sRCxSLEcscSxwZSxnZSxiZSxPZSxSZSxIZSxxZSxBPTAsdz0wLGs9MCxMZT0wLFZlPTAscnQ9MCxXZT0wLGF0PTAsU3Q9MCxrdD0wO2Zvcihx''@;'; put 'put ''ZT1sZSxsZT1sZSsyMjR8MCxEPXFlKzE3NnwwLE09cWUrMjA4fDAsSGU9cWUrMTYwfDAsVmU9cWUrMTI4fDAsaz1xZSs5NnwwLGJlPXFlKzY0fDAsUj1xZSszMnwwLF9bKExlPShPZT1xZSkrOHwwKT4+M109MTc5NzY5MzEzNDg2MjMxNTdlMjkyLF9bT2U+PjNdPTE3OTc2OTMxMzQ4NjIzMTU3''@;'; put 'put ''ZTI5MixfWyhSZT1PZSsyNHwwKT4+M109LTE3OTc2OTMxMzQ4NjIzMTU3ZTI5MixfWyhHPU9lKzE2fDApPj4zXT0tMTc5NzY5MzEzNDg2MjMxNTdlMjkyLF91KDExMDE4MyxsKSxhW0Q+PjJdPTEwLGFbRCs0Pj4yXT0xMCxUMChsLDExMDU4OSxEKSxfdSgxMzgyNjUsbCksdz1jKzR8MCxiPWMr''@;'; put 'put ''MTJ8MCxxPWJlKzh8MCxwZT1iZSsxNnwwLGdlPWJlKzI0fDAsQT0wOyEoKDB8QSk+PSgwfGFbdz4+Ml0pKTspYVtiZT4+Ml09YVsoU3Q9KDB8YVtiPj4yXSkrKDcyKkF8MCkrNDB8MCk+PjJdLGFbYmUrND4+Ml09YVtTdCs0Pj4yXSxhW2JlKzg+PjJdPWFbU3QrOD4+Ml0sYVtiZSsxMj4+Ml09''@;'; put 'put ''YVtTdCsxMj4+Ml0sYVtiZSsxNj4+Ml09YVtTdCsxNj4+Ml0sYVtiZSsyMD4+Ml09YVtTdCsyMD4+Ml0sYVtiZSsyND4+Ml09YVtTdCsyND4+Ml0sYVtiZSsyOD4+Ml09YVtTdCsyOD4+Ml0sYXQ9K19bcT4+M10sV2U9K19bcGU+PjNdLHJ0PStfW2dlPj4zXSxfW2s+PjNdPStfW2JlPj4zXSxf''@;'; put 'put ''W2srOD4+M109YXQsX1trKzE2Pj4zXT1XZSxfW2srMjQ+PjNdPXJ0LFQwKGwsMTM4Mjg0LGspLEE9QSsxfDA7Zm9yKEE9MDshKCgwfEEpPj0oMHxmKSk7KVN0PTB8YVttKyhBPDwzKSs0Pj4yXSxhW00+PjJdPWFbKGs9cCsoQTw8Myl8MCk+PjJdLGFbTSs0Pj4yXT1hW2srND4+Ml0sYVtEPj4y''@;'; put 'put ''XT1hW09lPj4yXSxhW0QrND4+Ml09YVtPZSs0Pj4yXSxhW0QrOD4+Ml09YVtPZSs4Pj4yXSxhW0QrMTI+PjJdPWFbT2UrMTI+PjJdLGFbRCsxNj4+Ml09YVtPZSsxNj4+Ml0sYVtEKzIwPj4yXT1hW09lKzIwPj4yXSxhW0QrMjQ+PjJdPWFbT2UrMjQ+PjJdLGFbRCsyOD4+Ml09YVtPZSsyOD4+''@;'; put 'put ''Ml0sWXooUixsLFN0LE0sYyxEKSxhW09lPj4yXT1hW1I+PjJdLGFbT2UrND4+Ml09YVtSKzQ+PjJdLGFbT2UrOD4+Ml09YVtSKzg+PjJdLGFbT2UrMTI+PjJdPWFbUisxMj4+Ml0sYVtPZSsxNj4+Ml09YVtSKzE2Pj4yXSxhW09lKzIwPj4yXT1hW1IrMjA+PjJdLGFbT2UrMjQ+PjJdPWFbUisy''@;'; put 'put ''ND4+Ml0sYVtPZSsyOD4+Ml09YVtSKzI4Pj4yXSxBPUErMXwwO2ZvcihfdSgxMTA2MDYsbCksdz1jKzh8MCxBPTA7ISgoMHxBKT49KDB8YVtjPj4yXSkpOylhW2JlPj4yXT1hWyhTdD0oMHxhW3c+PjJdKSsoNzIqQXwwKSs0MHwwKT4+Ml0sYVtiZSs0Pj4yXT1hW1N0KzQ+PjJdLGFbYmUrOD4+''@;'; put 'put ''Ml09YVtTdCs4Pj4yXSxhW2JlKzEyPj4yXT1hW1N0KzEyPj4yXSxhW2JlKzE2Pj4yXT1hW1N0KzE2Pj4yXSxhW2JlKzIwPj4yXT1hW1N0KzIwPj4yXSxhW2JlKzI0Pj4yXT1hW1N0KzI0Pj4yXSxhW2JlKzI4Pj4yXT1hW1N0KzI4Pj4yXSxydD0rX1txPj4zXSxXZT0rX1twZT4+M10sYXQ9K19b''@;'; put 'put ''Z2U+PjNdLF9bVmU+PjNdPWt0PStfW2JlPj4zXSxfW1ZlKzg+PjNdPXJ0LF9bVmUrMTY+PjNdPVdlLF9bVmUrMjQ+PjNdPWF0LFQwKGwsMTM4MzIxLFZlKSxfW09lPj4zXT0rX1soK19bT2U+PjNdPGt0P09lOmJlKT4+M10sX1tMZT4+M109K19bKCtfW0xlPj4zXTxydD9PZTpiZSkrOD4+M10s''@;'; put 'put ''X1tHPj4zXT0rX1soK19bRz4+M10+V2U/T2U6YmUpKzE2Pj4zXSxfW1JlPj4zXT0rX1soK19bUmU+PjNdPmF0P09lOmJlKSsyND4+M10sQT1BKzF8MDtMZT1+figrX1tMZT4+M10rMTApLFZlPX5+KCtfW0c+PjNdKzEwKSxTdD1+figrX1tSZT4+M10rMTApLGFbSGU+PjJdPX5+KCtfW09lPj4z''@;'; put 'put ''XSsxMCksYVtIZSs0Pj4yXT1MZSxhW0hlKzg+PjJdPVZlLGFbSGUrMTI+PjJdPVN0LFQwKGwsMTEwNjMxLEhlKSxsZT1xZX0sTXAsTXAsTXAsTXAsTXAsTXAsTXBdLGh2PVtzdyxmdW5jdGlvbiBuN2UobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxBfD0wLHpUKGx8PTApLE5DKGwpLEE/KDM9PSgx''@;'; put 'put ''fEEpP1RGKGwsQSxjLGYpOkdUKGwpLFZDKGwsOTgsYyxmKSk6VkMobCw2NixjLGYpfSxmdW5jdGlvbiB2aWUobCxjLGYscCxtLEEpe2N8PTAscHw9MCxtfD0wLEF8PTA7dmFyIE0sRCxxLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLGF0LHc9MCxiPTAsaz0wLFI9MCxHPTAsU3Q9''@;'; put 'put ''MCxrdD0wLHN0PTA7Zm9yKGF0PWxlLGxlPWxlKzE5MnwwLFdlPWF0KzE3NnwwLHFlPWF0KzE2OHwwLHJ0PWF0KzEwNHwwLFZlPWF0Kzk2fDAsdz1hdCs4OHwwLE9lPWF0KzE4MHwwLExlPWF0KzgwfDAsUmU9YXQrMTZ8MCxIZT1hdCxxPX5+K19bMTUyKyhwPTB8YVsobT0xNisobHw9MCl8MCk+''@;'; put 'put ''PjJdKT4+M10scGU9MHxhW3ArMTY+PjJdLGdlPTB8YVs0NjcxMF0sKDB8KGZ8PTApKTw9MyYmUHIoNjc4ODIsNjc4ODksMzYwLDY3OTA5KSxiZT0wfEYwKDE0MCsoMTQwKmZ8MCl8MCksdTcocCxPZSxMZSksQT8oUj01LGI9MHxhWzU2KygwfGFbbT4+Ml0pPj4yXSxrPTIwKTooUj00LGI9MCxr''@;'; put 'put ''PS0xKSxfWyhEPVJlKzQ4fDApPj4zXT1rdD0rX1tjPj4zXSxfW1JlKzU2Pj4zXT1TdD0rX1tjKzg+PjNdLGFbdz4+Ml09fn4oa3QrKGt0Pj0wPy41Oi0uNSkpLGFbdys0Pj4yXT1+fihTdCsoU3Q+PTA/LjU6LS41KSksTT1IZSs4fDAscD1iZSsoMHxvbyhiZSw4MTA5OSx3KSl8MCxHPTEsQT0w''@;'; put 'put ''OyEoKDB8KHc9QSszfDApKT49KDB8ZikpOyl7Zm9yKGFbUmU+PjJdPWFbRD4+Ml0sYVtSZSs0Pj4yXT1hW0QrND4+Ml0sYVtSZSs4Pj4yXT1hW0QrOD4+Ml0sYVtSZSsxMj4+Ml09YVtEKzEyPj4yXSxtPTE7Oyl7aWYoND09KDB8bSkpe209MTticmVha31fW1JlKyhtPDw0KT4+M109K19bYyso''@;'; put 'put ''KHN0PW0rQXwwKTw8NCk+PjNdLF9bUmUrKG08PDQpKzg+PjNdPStfW2MrKHN0PDw0KSs4Pj4zXSxtPW0rMXwwfWZvcig7NyE9KDB8bSk7KXd1KEhlLFJlLDMsLjE2NjY2NjY2NjY2NjY2NjY2KisoMHxtKSwwLDApLGt0PStfW00+PjNdLGFbVmU+PjJdPX5+KChTdD0rX1tIZT4+M10pKyhTdD49''@;'; put 'put ''MD8uNTotLjUpKSxhW1ZlKzQ+PjJdPX5+KGt0KyhrdD49MD8uNTotLjUpKSxtPW0rMXwwLHA9cCsoMHxvbyhwLDgxMDk5LFZlKSl8MDtHPUcrNnwwLEE9d31mb3IobT0wfGFbT2U+PjJdLGt0PStfW0xlPj4zXSxhW3J0Pj4yXT0zLGFbcnQrND4+Ml09UixhW3J0Kzg+PjJdPW0sYVtydCsxMj4+''@;'; put 'put ''Ml09cSxhW3J0KzE2Pj4yXT1wZSxhW3J0KzIwPj4yXT1iLGFbcnQrMjQ+PjJdPWdlLGFbcnQrMjg+PjJdPTAsYVtydCszMj4+Ml09ayxfW3J0KzQwPj4zXT1rdCxhW3J0KzQ4Pj4yXT0wLGFbcnQrNTI+PjJdPTAsYVtydCs1Nj4+Ml09MCxhW3J0KzYwPj4yXT1HLE9yKGwsNjgzODIscnQpLGFb''@;'; put 'put ''cWU+PjJdPWJlLE9yKGwsODExMDYscWUpLEZ0KGJlKSxtPUcrLTF8MCxwPTA7ISgoMHxwKT49KDB8RykpOylhW1dlPj4yXT0wIT0oMHwoMHxwKSUoMHxtKSkmMSxPcihsLDgxMTExLFdlKSxwPXArMXwwO0VuKGwsMTUzNTk5KSxsZT1hdH0sZnVuY3Rpb24gelcobCxjLGYscCxtLEEpe2N8PTAs''@;'; put 'put ''cHw9MCxtfD0wLEF8PTA7dmFyIE0sRCxxLHBlLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LFdlLGF0LHc9MCxiPTAsaz0wLFI9MCxHPTAsU3Q9MCxrdD0wLHN0PTA7Zm9yKGF0PWxlLGxlPWxlKzE5MnwwLFdlPWF0KzE3NnwwLHFlPWF0KzE2OHwwLHJ0PWF0KzEwNHwwLFZlPWF0Kzk2fDAs''@;'; put 'put ''bT1hdCs4OHwwLE9lPWF0KzE4MHwwLExlPWF0KzgwfDAsUmU9YXQrMTZ8MCxIZT1hdCxxPX5+K19bMTUyKyhHPTB8YVsocD0xNisobHw9MCl8MCk+PjJdKT4+M10scGU9MHxhW0crMTY+PjJdLGdlPTB8YVs0NjcxNl0sYmU9MHxGMCgxNDArKDE0MCooZnw9MCl8MCl8MCksJFQoRyxPZSxMZSks''@;'; put 'put ''QT8oUj01LGI9MHxhWzU2KygwfGFbcD4+Ml0pPj4yXSxrPTIwKTooUj00LGI9MCxrPS0xKSxfWyhEPVJlKzQ4fDApPj4zXT1rdD0rX1tjPj4zXSxfW1JlKzU2Pj4zXT1TdD0rX1tjKzg+PjNdLGFbbT4+Ml09fn4oa3QrKGt0Pj0wPy41Oi0uNSkpLGFbbSs0Pj4yXT1+fihTdCsoU3Q+PTA/LjU6''@;'; put 'put ''LS41KSksTT1IZSs4fDAscD1iZSsoMHxvbyhiZSw4MTA5OSxtKSl8MCxHPTEsQT0wOyEoKDB8KHc9QSszfDApKT49KDB8ZikpOyl7Zm9yKGFbUmU+PjJdPWFbRD4+Ml0sYVtSZSs0Pj4yXT1hW0QrND4+Ml0sYVtSZSs4Pj4yXT1hW0QrOD4+Ml0sYVtSZSsxMj4+Ml09YVtEKzEyPj4yXSxtPTE7''@;'; put 'put ''Oyl7aWYoND09KDB8bSkpe209MTticmVha31fW1JlKyhtPDw0KT4+M109K19bYysoKHN0PW0rQXwwKTw8NCk+PjNdLF9bUmUrKG08PDQpKzg+PjNdPStfW2MrKHN0PDw0KSs4Pj4zXSxtPW0rMXwwfWZvcig7NyE9KDB8bSk7KXd1KEhlLFJlLDMsLjE2NjY2NjY2NjY2NjY2NjY2KisoMHxtKSww''@;'; put 'put ''LDApLGt0PStfW00+PjNdLGFbVmU+PjJdPX5+KChTdD0rX1tIZT4+M10pKyhTdD49MD8uNTotLjUpKSxhW1ZlKzQ+PjJdPX5+KGt0KyhrdD49MD8uNTotLjUpKSxtPW0rMXwwLHA9cCsoMHxvbyhwLDgxMDk5LFZlKSl8MDtHPUcrNnwwLEE9d31mb3IobT0wfGFbT2U+PjJdLGt0PStfW0xlPj4z''@;'; put 'put ''XSxhW3J0Pj4yXT0zLGFbcnQrND4+Ml09UixhW3J0Kzg+PjJdPW0sYVtydCsxMj4+Ml09cSxhW3J0KzE2Pj4yXT1wZSxhW3J0KzIwPj4yXT1iLGFbcnQrMjQ+PjJdPWdlLGFbcnQrMjg+PjJdPTAsYVtydCszMj4+Ml09ayxfW3J0KzQwPj4zXT1rdCxhW3J0KzQ4Pj4yXT0wLGFbcnQrNTI+PjJd''@;'; put 'put ''PTAsYVtydCs1Nj4+Ml09MCxhW3J0KzYwPj4yXT1HLE9yKGwsNjgzODIscnQpLGFbcWU+PjJdPWJlLE9yKGwsODExMDYscWUpLEZ0KGJlKSxtPUcrLTF8MCxwPTA7ISgoMHxwKT49KDB8RykpOylhW1dlPj4yXT0wIT0oMHwoMHxwKSUoMHxtKSkmMSxPcihsLDgxMTExLFdlKSxwPXArMXwwO0Vu''@;'; put 'put ''KGwsMTUzNTk5KSxsZT1hdH0sZnVuY3Rpb24gJFcobCxjLGYscCxtLEEpe2N8PTAsZnw9MCxwfD0wLG18PTA7dmFyIHcsayxiPTA7aWYoaz1sZSxsZT1sZSsxNnwwLG09ayx3PTE2KyhsfD0wKXwwLDB8KEF8PTApJiYrX1s4MCsoYj0wfGFbdz4+Ml0pPj4zXT4uNSl7Zm9yKGFwKGwsYis1Nnww''@;'; put 'put ''KSxFbihsLDY4ODUyKSxhW20+PjJdPWFbYz4+Ml0sYVttKzQ+PjJdPWFbYys0Pj4yXSxhW20rOD4+Ml09YVtjKzg+PjJdLGFbbSsxMj4+Ml09YVtjKzEyPj4yXSxuaChsLG0pLEVuKGwsNjg4NjEpLHA9MTshKCgwfHApPj0oMHxmKSk7KXozKGwsYysocDw8NCl8MCwzKSxFbihsLDY4ODg3KSxw''@;'; put 'put ''PXArM3wwO0VuKGwsNjg4OTcpfWlmKCtfWzQwKygwfGFbdz4+Ml0pPj4zXT4uNSl7Zm9yKEdBKGwpLGFwKGwsMTYrKDB8YVt3Pj4yXSl8MCksRW4obCw2ODg1MiksYVttPj4yXT1hW2M+PjJdLGFbbSs0Pj4yXT1hW2MrND4+Ml0sYVttKzg+PjJdPWFbYys4Pj4yXSxhW20rMTI+PjJdPWFbYysx''@;'; put 'put ''Mj4+Ml0sbmgobCxtKSxFbihsLDY4ODYxKSxwPTE7ISgoMHxwKT49KDB8ZikpOyl6MyhsLGMrKHA8PDQpfDAsMyksRW4obCw2ODg4NykscD1wKzN8MDtFbihsLDY4ODc5KX1sZT1rfSxmdW5jdGlvbiBfN2UobCxjLGYscCxtLEEpe3N3aXRjaChjfD0wLGZ8PTAscHw9MCxtfD0wLG09MHxhWzE2''@;'; put 'put ''KyhsfD0wKT4+Ml0sMHwoQXw9MCkpe2Nhc2UgMjpwPTB8dFkobCxjLGYpO2JyZWFrO2Nhc2UgMzpwPTB8blkobCk7YnJlYWs7ZGVmYXVsdDpwPTB9RW4obCw3MzU5NCksNTEyJml0W20rMjYwPj4xXSYmKEVuKGwsNzM2MDApLEVuKGwsMHxNMSgwfGFbbSsyMTI+PjJdKSksRW4obCw3MzYwNikp''@;'; put 'put ''LE5GKGwsQSxwKSxFbihsLDczNjExKSxmdW5jdGlvbiBrN2UobCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBBLHcscD0wLG09MDtmb3Iodz1sZSxsZT1sZSsxNnwwLEE9dyxwPTc3LG09MDshKCgwfG0pPj0oMHxmKSk7KWFbQT4+Ml09cCxPcihsLDczNjE2LEEpLFpzKGwsK19bYysobTw8NCk+''@;'; put 'put ''PjNdKSxFbihsLDEwMDk5OSksWnMobCwtK19bYysobTw8NCkrOD4+M10pLHA9MD09KDB8bSk/Njc6MzIsbT1tKzF8MDtsZT13fShsLGMsZiksRW4obCw3MzQyNCl9LGZ1bmN0aW9uIEk3ZShsLGMsZixwLG0sQSl7dmFyIHcsYixrLE07aWYoY3w9MCxmfD0wLHB8PTAsbXw9MCxBfD0wLE09bGUs''@;'; put 'put ''bGU9bGUrNDh8MCx3PU0sMHxhWyhrPTE0NCsoYj0wfGFbMTYrKGx8PTApPj4yXSl8MCk+PjJdKXtlSShsKSxFbihsLDc1MTQxKSx6MyhsLGMsZiksRW4obCw3NTE1NSksbT1iKzE2fDAsQT0ocD13KSs0MHwwO2Rve2FbcD4+Ml09YVttPj4yXSxwPXArNHwwLG09bSs0fDB9d2hpbGUoKDB8cCk8''@;'; put 'put ''KDB8QSkpO1dBKGwsdyksRW4obCw3NTI2NiksWnMobCwrX1tiKzE1Mj4+M10pLDE9PSgwfChwPTB8YVtrPj4yXSkpJiYoRW4obCw3NTE2MykscD0wfGFbaz4+Ml0pLDI9PSgwfHApJiZFbihsLDc1MTcyKSxFbihsLDc1Mjc1KSx0SShsKSxFbihsLDE1MzU5OSl9bGU9TX0sZnVuY3Rpb24gZjco''@;'; put 'put ''bCxjLGYscCxtLEEpe3ZhciB3O2N8PTAsZnw9MCxwfD0wLG18PTAsQXw9MCxtPWxlLGxlPWxlKzE2fDAscD1tLEVuKGx8PTAsNzU1MTEpLHc9MHxhWzQ2NzI3XSxhW3A+PjJdPWFbNDY3MjZdLGFbcCs0Pj4yXT13LE9yKGwsNzU3NjQscCksaVkobCxBKSxFbihsLDc1Nzg4KSxuSShsKSxFbihs''@;'; put 'put ''LDc1NzkxKSxmdW5jdGlvbiBvWShsLGMsZil7bHw9MCxjfD0wLGZ8PTA7dmFyIEEsdyxwPTAsbT0wLGI9MCxrPTA7Zm9yKHc9bGUsbGU9bGUrMzJ8MCxBPXcscD03NTgxOCxtPTA7ISgoMHxtKT49KDB8ZikpOylrPStfW2MrKG08PDQpPj4zXSxiPSsoKDB8YVs0NjcyN10pPj4+MCktK19bYyso''@;'; put 'put ''bTw8NCkrOD4+M10sYVtBPj4yXT1wLF9bQSs4Pj4zXT1rLF9bQSsxNj4+M109YixPcihsLDc1ODIxLEEpLHA9MD09KDB8bSk/NzU4MzQ6MTk1MDU5LG09bSsxfDA7RW4obCw5ODc0NCksbGU9d30obCxjLGYpLEVuKGwsNzU4MDQpLGxlPW19LGZ1bmN0aW9uIEs3ZShsLGMsZixwLG0sQSl7Y3w9''@;'; put 'put ''MCxmfD0wLHB8PTAsbXw9MCxBfD0wO3ZhciBNLEQsUixHLGdlLGJlLE9lLExlLFJlLEhlLFZlLHFlLHJ0LHc9MCxiPTAsaz0wLHE9MCxwZT0wLFdlPTAsYXQ9MDtydD1sZSxsZT1sZSsyMDh8MCxwPXJ0KzE2MHwwLHFlPXJ0KzE1MnwwLFZlPXJ0KzEzNnwwLEhlPXJ0KzEyOHwwLFJlPXJ0Kzk2''@;'; put 'put ''fDAsTGU9cnQrODh8MCxPZT1ydCs1NnwwLGI9cnQrNDh8MCxwZT1ydCsyNHwwLHE9cnQsRW4obHw9MCw3ODcwOSksam5bNDY3MjldPStqbls0NjcyOF0tNCxXZT0rX1tsKzQ5Nj4+M10sX1txPj4zXT0rX1tsKzQ4OD4+M10sX1txKzg+PjNdPVdlLF9bcSsxNj4+M109MSxxPTB8RWEobCw3ODI3''@;'; put 'put ''NyxxKSxXZT0rKDB8YVtsKzM2MD4+Ml0pLF9bcGU+PjNdPTAsX1twZSs4Pj4zXT0wLF9bcGUrMTY+PjNdPVdlLHBlPTB8RWEobCw3ODMwOSxwZSksV2U9K2puWzQ2NzI5XS0yLF9bcD4+M109MCxfW3ArOD4+M109MCxfW3ArMTY+PjNdPVdlLGdlPTB8RWEobCw3ODM0MSxwKSxBPTU2KygwfGFb''@;'; put 'put ''KGJlPWwrMTZ8MCk+PjJdKXwwLHc9KG09cCkrNDB8MDtkb3thW20+PjJdPWFbQT4+Ml0sbT1tKzR8MCxBPUErNHwwfXdoaWxlKCgwfG0pPCgwfHcpKTtmb3IoTT0wfFlBKGwscCwwKSxhW2I+PjJdPTc4NzIzLGFbYis0Pj4yXT1mKzIsRD1sKzUwNHwwLFI9bCs1MTJ8MCxHPWYrLTF8MCxrPTAs''@;'; put 'put ''cD0wfEVhKGwsNzgzNzMsYik7ISgoMHxrKT49KDB8ZikpOylhdD0rX1tSPj4zXSsgK19bKEE9Yysoazw8NCkrOHwwKT4+M10sV2U9K19bMTUyKygwfGFbYmU+PjJdKT4+M10sX1tPZT4+M109K19bRD4+M10rICtfWyhtPWMrKGs8PDQpfDApPj4zXSxfW09lKzg+PjNdPWF0LF9bT2UrMTY+PjNd''@;'; put 'put ''PTAsX1tPZSsyND4+M109V2UsYj0wfEVhKGwsNzg0MTgsT2UpLGFbTGU+PjJdPXAsYVtMZSs0Pj4yXT1iLHc9MHxFYShsLDc4NDQ3LExlKSxGdChiKSxGdChwKSwwPT0oMHxrKXwoMHxrKT09KDB8Ryk/KFdlPStfW1I+PjNdKyArX1tBPj4zXSxhdD0rX1sxNTIrKDB8YVtiZT4+Ml0pPj4zXSxf''@;'; put 'put ''W1JlPj4zXT0rX1tEPj4zXSsgK19bbT4+M10sX1tSZSs4Pj4zXT1XZSxfW1JlKzE2Pj4zXT0wLF9bUmUrMjQ+PjNdPWF0LGI9MHxFYShsLDc4NDE4LFJlKSxhW0hlPj4yXT13LGFbSGUrND4+Ml09YixwPTB8RWEobCw3ODQ0NyxIZSksRnQoYiksRnQodykpOnA9dyxrPWsrMXwwO2FbVmU+PjJd''@;'; put 'put ''PXEsYVtWZSs0Pj4yXT1wZSxhW1ZlKzg+PjJdPWdlLGFbVmUrMTI+PjJdPU0sYz0wfEVhKGwsNzg3MzIsVmUpLGFbcWU+PjJdPXAsYVtxZSs0Pj4yXT1jLGY9MHxFYShsLDc4NTAyLHFlKSxGdChjKSxFbihsLGYpLEZ0KHEpLEZ0KHBlKSxGdChnZSksRnQoTSksRnQoZiksbGU9cnR9LGZ1bmN0''@;'; put 'put ''aW9uIFFpZShsLGMsZixwLG0sQSl7Y3w9MCxwfD0wLG18PTAsQXw9MDt2YXIgdyxiLEQsUixHLHEsZ2UsYmUsaz0wLE09MCxwZT0wLE9lPTAsTGU9MCxSZT0wO2ZvcihiZT1sZSxsZT1sZSsxMjh8MCxnZT1iZSsxMTJ8MCxxPWJlKzEwNHwwLEc9YmUrOTZ8MCxwPWJlKzg4fDAsRD1iZSsxNnww''@;'; put 'put ''LFI9YmUsaz0wfGFbMTYrKGx8PTApPj4yXSxiPTB8RjAoMTQwKygxNDAqKGZ8PTApfDApfDApLFZGKGssYmUrMTE2fDAsYmUrODB8MCksX1soaz1EKzQ4fDApPj4zXT1MZT0rX1tjPj4zXSxfW0QrNTY+PjNdPU9lPStfW2MrOD4+M10sYVtwPj4yXT1+fihMZSsoTGU+PTA/LjU6LS41KSksYVtw''@;'; put 'put ''KzQ+PjJdPX5+KE9lKyhPZT49MD8uNTotLjUpKSx3PVIrOHwwLHA9YisoMHxvbyhiLDgxMDk5LHApKXwwLHBlPTEsQT0wOyEoKDB8KE09QSszfDApKT49KDB8ZikpOyl7Zm9yKGFbRD4+Ml09YVtrPj4yXSxhW0QrND4+Ml09YVtrKzQ+PjJdLGFbRCs4Pj4yXT1hW2srOD4+Ml0sYVtEKzEyPj4y''@;'; put 'put ''XT1hW2srMTI+PjJdLG09MTs7KXtpZig0PT0oMHxtKSl7bT0xO2JyZWFrfV9bRCsobTw8NCk+PjNdPStfW2MrKChSZT1tK0F8MCk8PDQpPj4zXSxfW0QrKG08PDQpKzg+PjNdPStfW2MrKFJlPDw0KSs4Pj4zXSxtPW0rMXwwfWZvcig7NyE9KDB8bSk7KXd1KFIsRCwzLC4xNjY2NjY2NjY2NjY2''@;'; put 'put ''NjY2NiorKDB8bSksMCwwKSxMZT0rX1t3Pj4zXSxhW0c+PjJdPX5+KChPZT0rX1tSPj4zXSkrKE9lPj0wPy41Oi0uNSkpLGFbRys0Pj4yXT1+fihMZSsoTGU+PTA/LjU6LS41KSksbT1tKzF8MCxwPXArKDB8b28ocCw4MTA5OSxHKSl8MDtwZT1wZSs2fDAsQT1NfWZvcihhW3E+PjJdPWIsT3Io''@;'; put 'put ''bCw4MTEwNixxKSxGdChiKSxtPXBlKy0xfDAscD0wOyEoKDB8cCk+PSgwfHBlKSk7KWFbZ2U+PjJdPTAhPSgwfCgwfHApJSgwfG0pKSYxLE9yKGwsODExMTEsZ2UpLHA9cCsxfDA7RW4obCwxNTM1OTkpLGxlPWJlfSxmdW5jdGlvbiBfZChsLGMsZixwLG0sQSl7Y3w9MCxmfD0wLHB8PTAsbXw9''@;'; put 'put ''MDt2YXIgTGUsUmUsSGUsU3Qsa3QsWnQsY3QsYnQsYW4sSG4sdz0wLGI9MCxrPTAsTT0wLEQ9MCxSPTAsRz0wLHE9MCxwZT0wLGdlPTAsYmU9MCxPZT0wLFZlPTAscWU9MCxydD0wLFdlPTAsYXQ9MCxFdD0wLHVyPTAsSHI9MCxFcj0wO2ZvcihIbj1sZSxsZT1sZSsxMTJ8MCxrdD1Ibis4OHww''@;'; put 'put ''LFN0PUhuKzcyfDAsYnQ9SG4rNTZ8MCxhbj1Ibis0MHwwLExlPTA9PSgwfChBfD0wKSksUmU9KGN0PUhuKSs4fDAsSGU9OCsoWnQ9SG4rMTZ8MCl8MCxPZT0wLGs9MCxNPTAsRD0wLFI9MCxBPTA7ISgoMHxPZSk+PSgwfGYpKTspe2ZvcihxZT00OCsoVmU9MHxhW20rKE9lPDwzKSs0Pj4yXSl8''@;'; put 'put ''MCxXZT0xNisoMHxhWyhydD1WZSsxNnwwKT4+Ml0pfDAsYVtTdD4+Ml09YVsoYmU9MTYrKDB8YVsxNisoMHxhWygzPT0oMyZhW1ZlPj4yXXwwKT9WZTpxZSkrNDA+PjJdKT4+Ml0pfDApPj4yXSxhW1N0KzQ+PjJdPWFbYmUrND4+Ml0sYVtTdCs4Pj4yXT1hW2JlKzg+PjJdLGFbU3QrMTI+PjJd''@;'; put 'put ''PWFbYmUrMTI+PjJdLGFba3Q+PjJdPWFbV2U+PjJdLGFba3QrND4+Ml09YVtXZSs0Pj4yXSxhW2t0Kzg+PjJdPWFbV2UrOD4+Ml0sYVtrdCsxMj4+Ml09YVtXZSsxMj4+Ml0sZmIoYnQsU3Qsa3QpLGFbWnQ+PjJdPWFbYnQ+PjJdLGFbWnQrND4+Ml09YVtidCs0Pj4yXSxhW1p0Kzg+PjJdPWFb''@;'; put 'put ''YnQrOD4+Ml0sYVtadCsxMj4+Ml09YVtidCsxMj4+Ml0sV2U9VmUrLTQ4fDAsZ2U9NTYrKDB8YVtydD4+Ml0pfDAsYVtTdD4+Ml09YVsoYmU9MTYrKDB8YVsxNisoMHxhWygyPT0oMyZhW1ZlPj4yXXwwKT9WZTpXZSkrNDA+PjJdKT4+Ml0pfDApPj4yXSxhW1N0KzQ+PjJdPWFbYmUrND4+Ml0s''@;'; put 'put ''YVtTdCs4Pj4yXT1hW2JlKzg+PjJdLGFbU3QrMTI+PjJdPWFbYmUrMTI+PjJdLGFba3Q+PjJdPWFbZ2U+PjJdLGFba3QrND4+Ml09YVtnZSs0Pj4yXSxhW2t0Kzg+PjJdPWFbZ2UrOD4+Ml0sYVtrdCsxMj4+Ml09YVtnZSsxMj4+Ml0sZmIoYW4sU3Qsa3QpLGFbY3Q+PjJdPWFbYW4+PjJdLGFb''@;'; put 'put ''Y3QrND4+Ml09YVthbis0Pj4yXSxhW2N0Kzg+PjJdPWFbYW4rOD4+Ml0sYVtjdCsxMj4+Ml09YVthbisxMj4+Ml0sYmU9MHxhW3ArKE9lPDwzKSs0Pj4yXSxhdD0xKyhwZT0zKihnZT0wfGFbcCsoT2U8PDMpPj4yXSl8MCl8MCwoMHxwZSk+PSgwfE0pJiYoMHxrJiZGdChBKSxrPVI9MHxRbihh''@;'; put 'put ''dDw8NCksTT1hdCxEPVIsQT1SKSwwfGZlW2JlPj4wXT8odz0rQ2QoYmUsYyksYj0rX1tIZT4+M10pOihiPSsoMHxtMyhiZSxjKSksdz0rX1tadD4+M10pLHE9aysxNnwwLF9baysxNj4+M109dyxfW2srMjQ+PjNdPWIsYVtSPj4yXT1hW3E+PjJdLGFbUis0Pj4yXT1hW3ErND4+Ml0sYVtSKzg+''@;'; put 'put ''PjJdPWFbcSs4Pj4yXSxhW1IrMTI+PjJdPWFbcSsxMj4+Ml0scT0xLEc9YmUscGU9MjshKCgwfHEpPj0oMHxnZSkpOykwfGZlWyhHPWJlKyg1NipxfDApfDApPj4wXT93PStDZChHLGMpOmI9KygwfG0zKEcsYykpLHVyPWsrKHBlKzI8PDQpfDAsRXI9aysocGUrMTw8NCl8MCxfWyhIcj1rKyhw''@;'; put 'put ''ZTw8NCl8MCk+PjNdPXcsX1trKyhwZTw8NCkrOD4+M109YixhW0VyPj4yXT1hW0hyPj4yXSxhW0VyKzQ+PjJdPWFbSHIrND4+Ml0sYVtFcis4Pj4yXT1hW0hyKzg+PjJdLGFbRXIrMTI+PjJdPWFbSHIrMTI+PjJdLGFbdXI+PjJdPWFbSHI+PjJdLGFbdXIrND4+Ml09YVtIcis0Pj4yXSxhW3Vy''@;'; put 'put ''Kzg+PjJdPWFbSHIrOD4+Ml0sYVt1cisxMj4+Ml09YVtIcisxMj4+Ml0scT1xKzF8MCxwZT1wZSszfDA7MHxmZVtHPj4wXT8odz0rQ2QoRyxjKSxiPStfW1JlPj4zXSk6KGI9KygwfG0zKEcsYykpLHc9K19bY3Q+PjNdKSxFcj1rKyhwZTw8NCl8MCxfWyhIcj1rKygodXI9cGUrMXwwKTw8NCl8''@;'; put 'put ''MCk+PjNdPXcsX1trKyh1cjw8NCkrOD4+M109YixhW0VyPj4yXT1hW0hyPj4yXSxhW0VyKzQ+PjJdPWFbSHIrND4+Ml0sYVtFcis4Pj4yXT1hW0hyKzg+PjJdLGFbRXIrMTI+PjJdPWFbSHIrMTI+PjJdLEF1KFZlLDB8YVsoMj09KDMmYVtWZT4+Ml18MCk/VmU6V2UpKzQwPj4yXSxrLGF0LDI1''@;'; put 'put ''NjgwKSwhTGUmJjB8KEV0PTB8YVs5NisoMHxhW3J0Pj4yXSk+PjJdKSYmMD09KDB8ZmVbRXQrODE+PjBdKSYmKGFbU3Q+PjJdPWFbWnQ+PjJdLGFbU3QrND4+Ml09YVtadCs0Pj4yXSxhW1N0Kzg+PjJdPWFbWnQrOD4+Ml0sYVtTdCsxMj4+Ml09YVtadCsxMj4+Ml0sYVtrdD4+Ml09YVtjdD4+''@;'; put 'put ''Ml0sYVtrdCs0Pj4yXT1hW2N0KzQ+PjJdLGFba3QrOD4+Ml09YVtjdCs4Pj4yXSxhW2t0KzEyPj4yXT1hW2N0KzEyPj4yXSx0ZygwLFZlKSksT2U9T2UrMXwwfUZ0KEQpLGxlPUhufSxzdyxzdyxzdyxzdyxzd10sbFM9W2Z1bmN0aW9uIHpzKGwsYyxmLHAsbSxBLHcsYixrKXt3MigyMCl9XTty''@;'; put 'put ''ZXR1cm57X19fZXJybm9fbG9jYXRpb246ZnVuY3Rpb24gdHMoKXtyZXR1cm4gMTkwNTcyfSxfX19tdWxkaTM6aXcsX19fdWRpdmRpMzpvdyxfX191cmVtZGkzOmlTLF9iaXRzaGlmdDY0QXNocjpMTCxfYml0c2hpZnQ2NExzaHI6d2wsX2JpdHNoaWZ0NjRTaGw6Wm8sX2R0ZXh0cmFjdDpQMyxf''@;'; put 'put ''ZnJlZTpGdCxfaHRvbnM6ZnVuY3Rpb24gZ2NlKGwpe3JldHVybiAwfGZ1bmN0aW9uIG1jZShsKXtyZXR1cm4gMHxtZmUoMHwobHw9MCkpfShsfD0wKX0sX2k2NEFkZDp6bCxfaTY0U3VidHJhY3Q6U3AsX2xsdm1fYnN3YXBfaTE2Om1mZSxfbGx2bV9ic3dhcF9pMzI6RHMsX21hbGxvYzpGMCxf''@;'; put 'put ''bWVtYWxpZ246ZnVuY3Rpb24gRnVlKGwsYyl7cmV0dXJuIGN8PTAsKGx8PTApPj4+MDw5PzB8KGM9MHxGMChjKSk6KGM9MHxmdW5jdGlvbiB5QWUobCxjKXtjfD0wO3ZhciBBLGY9MCxwPTAsbT0wLHc9MCxiPTA7aWYoKGw9KGx8PTApPj4+MD4xNj9sOjE2KSstMSZsKWZvcihmPTE2Ozspe2lm''@;'; put 'put ''KCEoZj4+PjA8bD4+PjApKXtsPWY7YnJlYWt9Zjw8PTF9aWYoKC02NC1sfDApPj4+MDw9Yz4+PjApcmV0dXJuIGFbNDc2NDNdPTEyLDA7aWYoIShmPTB8RjAoMTIrKEE9Yz4+PjA8MTE/MTY6YysxMSYtOCkrbHwwKSkpcmV0dXJuIDA7bT1mKy04fDA7ZG97aWYobCstMSZmKXtpZihwPSgocD0o''@;'; put 'put ''ZitsKy0xJjAtbCktOHwwKS0oYz1tKXwwKT4+PjA+MTU/cDpwK2x8MCxmPSgtOCYoYj0wfGFbKGw9ZistNHwwKT4+Ml0pKS0oYz1wLWN8MCl8MCwzJmIpe2FbKGI9cCs0fDApPj4yXT1mfDEmYVtiPj4yXXwyLGFbKGY9cCtmKzR8MCk+PjJdPTF8YVtmPj4yXSxhW2w+PjJdPWN8MSZhW2w+PjJd''@;'; put 'put ''fDIsYVtiPj4yXT0xfGFbYj4+Ml0sZEwobSxjKSxsPXAsYz1wO2JyZWFrfWFbcD4+Ml09KDB8YVttPj4yXSkrYyxhW3ArND4+Ml09ZixsPXAsYz1wO2JyZWFrfWw9bSxjPW19d2hpbGUoMCk7cmV0dXJuIDMmKGY9MHxhWyhsPWwrNHwwKT4+Ml0pfDAmJih3PS04JmYpPj4+MD4oQSsxNnwwKT4+''@;'; put 'put ''PjAmJihiPXctQXwwLG09YytBfDAsYVtsPj4yXT1BfDEmZnwyLGFbbSs0Pj4yXT0zfGIsYVsodz1jK3crNHwwKT4+Ml09MXxhW3c+PjJdLGRMKG0sYikpLDB8Yys4fShsLGMpLDB8Yyl9LF9tZW1jcHk6Z28sX21lbW1vdmU6cjEsX21lbXNldDp1MixfcmVhbGxvYzpVYSxfc2F2ZVNldGptcDpQ''@;'; put 'put ''Zixfc2Jyazp5MixfdGVzdFNldGptcDpnaSxfdml6Q3JlYXRlRmlsZTpmdW5jdGlvbiB0aWUobCxjKXtJNCgwLDB8KGx8PTApLDB8KGN8PTApKX0sX3Zpekxhc3RFcnJvck1lc3NhZ2U6ZnVuY3Rpb24ga1coKXtyZXR1cm4gMHxhWzQ2NjU0XX0sX3ZpelJlbmRlckZyb21TdHJpbmc6ZnVuY3Rp''@;'; put 'put ''b24gTm8obCxjLGYpe2x8PTAsY3w9MCxmfD0wO3ZhciBtLEEsdyxiLHA9MDtmb3IoYj1sZSxsZT1sZSsxNnwwLEE9YixhWyhtPWIrNHwwKT4+Ml09MCxSVCh3PTB8S0coKSwxMDk3NiksUlQodywxNzIyMCksUlQodywxNzQ0MCksZnVuY3Rpb24gaFQobCl7dmFyIGM7Yz0wfGFbNDY5MzZdLGFb''@;'; put 'put ''NDY5MzZdPWx8PTB9KDEpLGZ1bmN0aW9uIGZUKGwpe3ZhciBjO2M9MHxhWzQ2OTM1XSxhWzQ2OTM1XT1sfD0wfSgxOCk7bD0wfHdlKGwpLHA9MHxhW20+PjJdLGw7KTB8cHx8KE9UKHcsbCxmKSxrcmUodyxsLGMsbSxBKSksbD0xOTUwNTk7cmV0dXJuIGxlPWIsMHxwfSxkeW5DYWxsX2Q6ZnVu''@;'; put 'put ''Y3Rpb24gdmZlKGwpe3JldHVybitoOFsxJihsfD0wKV0oKX0sZHluQ2FsbF9kZGRkOmZ1bmN0aW9uIE9jKGwsYyxmLHApe3JldHVybit1d1s3JihsfD0wKV0oKyhjPStjKSwrKGY9K2YpLCsocD0rcCkpfSxkeW5DYWxsX2RpOmZ1bmN0aW9uIEokKGwsYyl7cmV0dXJuK3JxWzEmKGx8PTApXSgw''@;'; put 'put ''fChjfD0wKSl9LGR5bkNhbGxfaTpmdW5jdGlvbiBzNChsKXtyZXR1cm4gMHwkMVszJihsfD0wKV0oKX0sZHluQ2FsbF9paTpmdW5jdGlvbiB1NChsLGMpe3JldHVybiAwfF9vWzYzJihsfD0wKV0oMHwoY3w9MCkpfSxkeW5DYWxsX2lpaTpmdW5jdGlvbiBBZmUobCxjLGYpe3JldHVybiAwfEJp''@;'; put 'put ''WzEyNyYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApKX0sZHluQ2FsbF9paWlkZDpmdW5jdGlvbiB5ZmUobCxjLGYscCxtKXtyZXR1cm4gMHxkOFszJihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksKyhwPStwKSwrKG09K20pKX0sZHluQ2FsbF9paWlpOmZ1bmN0aW9uIFVqKGwsYyxmLHApe3Jl''@;'; put 'put ''dHVybiAwfG1pWzYzJihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCkpfSxkeW5DYWxsX2lpaWlpOmZ1bmN0aW9uIG5zKGwsYyxmLHAsbSl7cmV0dXJuIDB8cTBbMTI3JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCksMHwobXw9MCkpfSxkeW5DYWxsX2lpaWlpaTpm''@;'; put 'put ''dW5jdGlvbiBjdihsLGMsZixwLG0sQSl7cmV0dXJuIDB8UjJbMTI3JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCksMHwobXw9MCksMHwoQXw9MCkpfSxkeW5DYWxsX2lpaWlpaWk6ZnVuY3Rpb24gd2ZlKGwsYyxmLHAsbSxBLHcpe3JldHVybiAwfG8zWzEmKGx8PTApXSgwfChj''@;'; put 'put ''fD0wKSwwfChmfD0wKSwwfChwfD0wKSwwfChtfD0wKSwwfChBfD0wKSwwfCh3fD0wKSl9LGR5bkNhbGxfaWlpaWlpaWlpaWk6ZnVuY3Rpb24gYmZlKGwsYyxmLHAsbSxBLHcsYixrLE0sRCl7cmV0dXJuIDB8S2pbMyYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTAp''@;'; put 'put ''LDB8KEF8PTApLDB8KHd8PTApLDB8KGJ8PTApLDB8KGt8PTApLDB8KE18PTApLDB8KER8PTApKX0sZHluQ2FsbF92OmZ1bmN0aW9uIFgkKGwpe2lxWzE1JihsfD0wKV0oKX0sZHluQ2FsbF92aTpmdW5jdGlvbiBvUyhsLGMpe0NvWzEyNyYobHw9MCldKDB8KGN8PTApKX0sZHluQ2FsbF92aWk6''@;'; put 'put ''ZnVuY3Rpb24gT0wobCxjLGYpe0dzWzYzJihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCkpfSxkeW5DYWxsX3ZpaWk6ZnVuY3Rpb24gSyQobCxjLGYscCl7ZGxbMTI3JihsfD0wKV0oMHwoY3w9MCksMHwoZnw9MCksMHwocHw9MCkpfSxkeW5DYWxsX3ZpaWlkZGk6ZnVuY3Rpb24gJCQobCxjLGYs''@;'; put 'put ''cCxtLEEsdyl7Y3dbMTUmKGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSwrKG09K20pLCsoQT0rQSksMHwod3w9MCkpfSxkeW5DYWxsX3ZpaWlpOmZ1bmN0aW9uIHEkKGwsYyxmLHAsbSl7UmNbMzEmKGx8PTApXSgwfChjfD0wKSwwfChmfD0wKSwwfChwfD0wKSwwfChtfD0wKSl9''@;'; put 'put ''LGR5bkNhbGxfdmlpaWlpOmZ1bmN0aW9uIGF3KGwsYyxmLHAsbSxBKXtwOFsxNSYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApLDB8KEF8PTApKX0sZHluQ2FsbF92aWlpaWlpOmZ1bmN0aW9uIGx3KGwsYyxmLHAsbSxBLHcpe2h2WzE1JihsfD0wKV0oMHwoY3w9''@;'; put 'put ''MCksMHwoZnw9MCksMHwocHw9MCksMHwobXw9MCksMHwoQXw9MCksMHwod3w9MCkpfSxkeW5DYWxsX3ZpaWlpaWlpaWk6ZnVuY3Rpb24gUWoobCxjLGYscCxtLEEsdyxiLGssTSl7bFNbMCYobHw9MCldKDB8KGN8PTApLDB8KGZ8PTApLDB8KHB8PTApLDB8KG18PTApLDB8KEF8PTApLDB8KHd8''@;'; put 'put ''PTApLDB8KGJ8PTApLDB8KGt8PTApLDB8KE18PTApKX0sZXN0YWJsaXNoU3RhY2tTcGFjZTpmdW5jdGlvbiBxcmUobCxjKXtsZT1sfD0wLDB9LGdldFRlbXBSZXQwOmZ1bmN0aW9uIGVpZSgpe3JldHVybiAwfERufSxydW5Qb3N0U2V0czpmdW5jdGlvbiBwZmUoKXt9LHNldFRlbXBSZXQwOmZ1''@;'; put 'put ''bmN0aW9uIENXKGwpe0RuPWx8PTB9LHNldFRocmV3OmZ1bmN0aW9uIF9XKGwsYyl7TW58fChNbj1sfD0wLHhuPWN8PTApfSxzdGFja0FsbG9jOmZ1bmN0aW9uICRyZShsKXt2YXIgYztyZXR1cm4gYz1sZSxsZT0xNSsobGU9bGUrKGx8PTApfDApJi0xNiwwfGN9LHN0YWNrUmVzdG9yZTpmdW5j''@;'; put 'put ''dGlvbiBsYyhsKXtsZT1sfD0wfSxzdGFja1NhdmU6ZnVuY3Rpb24gYlcoKXtyZXR1cm4gMHxsZX19fShqLmFzbUdsb2JhbEFyZyxqLmFzbUxpYnJhcnlBcmcsb24pLGViPShqLl9fX2Vycm5vX2xvY2F0aW9uPUtvLl9fX2Vycm5vX2xvY2F0aW9uLGouX19fbXVsZGkzPUtvLl9fX211bGRpMyxq''@;'; put 'put ''Ll9fX3VkaXZkaTM9S28uX19fdWRpdmRpMyxqLl9fX3VyZW1kaTM9S28uX19fdXJlbWRpMyxqLl9iaXRzaGlmdDY0QXNocj1Lby5fYml0c2hpZnQ2NEFzaHIsai5fYml0c2hpZnQ2NExzaHI9S28uX2JpdHNoaWZ0NjRMc2hyLGouX2JpdHNoaWZ0NjRTaGw9S28uX2JpdHNoaWZ0NjRTaGwsai5f''@;'; put 'put ''ZHRleHRyYWN0PUtvLl9kdGV4dHJhY3Qsai5fZnJlZT1Lby5fZnJlZSksenA9KGouX2h0b25zPUtvLl9odG9ucyxqLl9pNjRBZGQ9S28uX2k2NEFkZCxqLl9pNjRTdWJ0cmFjdD1Lby5faTY0U3VidHJhY3Qsai5fbGx2bV9ic3dhcF9pMTY9S28uX2xsdm1fYnN3YXBfaTE2LGouX2xsdm1fYnN3''@;'; put 'put ''YXBfaTMyPUtvLl9sbHZtX2Jzd2FwX2kzMixqLl9tYWxsb2M9S28uX21hbGxvYyksV2c9ai5fbWVtYWxpZ249S28uX21lbWFsaWduLFlnPShqLl9tZW1jcHk9S28uX21lbWNweSxqLl9tZW1tb3ZlPUtvLl9tZW1tb3ZlLGouX21lbXNldD1Lby5fbWVtc2V0KSxRZz0oai5fcmVhbGxvYz1Lby5f''@;'; put 'put ''cmVhbGxvYyxqLl9zYXZlU2V0am1wPUtvLl9zYXZlU2V0am1wLGouX3Nicms9S28uX3Nicmssai5fdGVzdFNldGptcD1Lby5fdGVzdFNldGptcCxqLl92aXpDcmVhdGVGaWxlPUtvLl92aXpDcmVhdGVGaWxlLGouX3Zpekxhc3RFcnJvck1lc3NhZ2U9S28uX3Zpekxhc3RFcnJvck1lc3NhZ2Us''@;'; put 'put ''ai5fdml6UmVuZGVyRnJvbVN0cmluZz1Lby5fdml6UmVuZGVyRnJvbVN0cmluZyxqLmVzdGFibGlzaFN0YWNrU3BhY2U9S28uZXN0YWJsaXNoU3RhY2tTcGFjZSxqLmdldFRlbXBSZXQwPUtvLmdldFRlbXBSZXQwLGoucnVuUG9zdFNldHM9S28ucnVuUG9zdFNldHMsai5zZXRUZW1wUmV0MD1L''@;'; put 'put ''by5zZXRUZW1wUmV0MCxqLnNldFRocmV3PUtvLnNldFRocmV3LGouc3RhY2tBbGxvYz1Lby5zdGFja0FsbG9jKSxXcD1qLnN0YWNrUmVzdG9yZT1Lby5zdGFja1Jlc3RvcmUsUXM9ai5zdGFja1NhdmU9S28uc3RhY2tTYXZlO2lmKGouZHluQ2FsbF9kPUtvLmR5bkNhbGxfZCxqLmR5bkNhbGxf''@;'; put 'put ''ZGRkZD1Lby5keW5DYWxsX2RkZGQsai5keW5DYWxsX2RpPUtvLmR5bkNhbGxfZGksai5keW5DYWxsX2k9S28uZHluQ2FsbF9pLGouZHluQ2FsbF9paT1Lby5keW5DYWxsX2lpLGouZHluQ2FsbF9paWk9S28uZHluQ2FsbF9paWksai5keW5DYWxsX2lpaWRkPUtvLmR5bkNhbGxfaWlpZGQsai5k''@;'; put 'put ''eW5DYWxsX2lpaWk9S28uZHluQ2FsbF9paWlpLGouZHluQ2FsbF9paWlpaT1Lby5keW5DYWxsX2lpaWlpLGouZHluQ2FsbF9paWlpaWk9S28uZHluQ2FsbF9paWlpaWksai5keW5DYWxsX2lpaWlpaWk9S28uZHluQ2FsbF9paWlpaWlpLGouZHluQ2FsbF9paWlpaWlpaWlpaT1Lby5keW5DYWxs''@;'; put 'put ''X2lpaWlpaWlpaWlpLGouZHluQ2FsbF92PUtvLmR5bkNhbGxfdixqLmR5bkNhbGxfdmk9S28uZHluQ2FsbF92aSxqLmR5bkNhbGxfdmlpPUtvLmR5bkNhbGxfdmlpLGouZHluQ2FsbF92aWlpPUtvLmR5bkNhbGxfdmlpaSxqLmR5bkNhbGxfdmlpaWRkaT1Lby5keW5DYWxsX3ZpaWlkZGksai5k''@;'; put 'put ''eW5DYWxsX3ZpaWlpPUtvLmR5bkNhbGxfdmlpaWksai5keW5DYWxsX3ZpaWlpaT1Lby5keW5DYWxsX3ZpaWlpaSxqLmR5bkNhbGxfdmlpaWlpaT1Lby5keW5DYWxsX3ZpaWlpaWksai5keW5DYWxsX3ZpaWlpaWlpaWk9S28uZHluQ2FsbF92aWlpaWlpaWlpLGouYXNtPUtvLGouY2NhbGw9eCxq''@;'; put 'put ''LlBvaW50ZXJfc3RyaW5naWZ5PUYsai5VVEY4VG9TdHJpbmc9RGUsRW8paWYoY2EoRW8pfHwoImZ1bmN0aW9uIj09dHlwZW9mIGoubG9jYXRlRmlsZT9Fbz1qLmxvY2F0ZUZpbGUoRW8pOmoubWVtb3J5SW5pdGlhbGl6ZXJQcmVmaXhVUkwmJihFbz1qLm1lbW9yeUluaXRpYWxpemVyUHJlZml4''@;'; put 'put ''VVJMK0VvKSksTnx8dGUpe3ZhciBOMT1qLnJlYWRCaW5hcnkoRW8pO3R0LnNldChOMSxUZSl9ZWxzZXtsZXQgZHQ9ZnVuY3Rpb24oKXtqLnJlYWRBc3luYyhFbyxfaCxmdW5jdGlvbigpe3Rocm93ImNvdWxkIG5vdCBsb2FkIG1lbW9yeSBpbml0aWFsaXplciAiK0VvfSl9O0RpKCk7dmFyIF9o''@;'; put 'put ''PWZ1bmN0aW9uKEl0KXtJdC5ieXRlTGVuZ3RoJiYoSXQ9bmV3IFVpbnQ4QXJyYXkoSXQpKSx0dC5zZXQoSXQsVGUpLGoubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0JiZkZWxldGUgai5tZW1vcnlJbml0aWFsaXplclJlcXVlc3QucmVzcG9uc2UsVzAoKX0sdmQ9VXUoRW8pO2lmKHZkKV9oKHZk''@;'; put 'put ''LmJ1ZmZlcik7ZWxzZSBpZihqLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdCl7bGV0IEl0PWZ1bmN0aW9uKCl7dmFyIFB0PWoubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LGZlPVB0LnJlc3BvbnNlO2lmKDIwMCE9PVB0LnN0YXR1cyYmMCE9PVB0LnN0YXR1cyl7dmFyIGl0PVV1KGoubWVtb3J5''@;'; put 'put ''SW5pdGlhbGl6ZXJSZXF1ZXN0VVJMKTtpZighaXQpcmV0dXJuIGNvbnNvbGUud2FybigiYSBwcm9ibGVtIHNlZW1zIHRvIGhhdmUgaGFwcGVuZWQgd2l0aCBNb2R1bGUubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LCBzdGF0dXM6ICIrUHQuc3RhdHVzKyIsIHJldHJ5aW5nICIrRW8pLHZvaWQg''@;'; put 'put ''ZHQoKTtmZT1pdC5idWZmZXJ9X2goZmUpfTtqLm1lbW9yeUluaXRpYWxpemVyUmVxdWVzdC5yZXNwb25zZT9zZXRUaW1lb3V0KEl0LDApOmoubWVtb3J5SW5pdGlhbGl6ZXJSZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEl0KX1lbHNlIGR0KCl9ZnVuY3Rpb24gQ2EoZHQpe3RoaXMu''@;'; put 'put ''bmFtZT0iRXhpdFN0YXR1cyIsdGhpcy5tZXNzYWdlPSJQcm9ncmFtIHRlcm1pbmF0ZWQgd2l0aCBleGl0KCIrZHQrIikiLHRoaXMuc3RhdHVzPWR0fWZ1bmN0aW9uIHFnKGR0KXtmdW5jdGlvbiBJdCgpe2ouY2FsbGVkUnVufHwoai5jYWxsZWRSdW49ITAsIU1lJiYoS24oKSxOdCgpLGoub25S''@;'; put 'put ''dW50aW1lSW5pdGlhbGl6ZWQmJmoub25SdW50aW1lSW5pdGlhbGl6ZWQoKSxVbigpKSl9ZHQ9ZHR8fGouYXJndW1lbnRzLG4wPjB8fChwbigpLG4wPjApfHxqLmNhbGxlZFJ1bnx8KGouc2V0U3RhdHVzPyhqLnNldFN0YXR1cygiUnVubmluZy4uLiIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtz''@;'; put 'put ''ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ai5zZXRTdGF0dXMoIiIpfSwxKSxJdCgpfSwxKSk6SXQoKSl9ZnVuY3Rpb24gaWIoZHQsSXQpe0l0JiZqLm5vRXhpdFJ1bnRpbWUmJjA9PT1kdHx8KGoubm9FeGl0UnVudGltZXx8KE1lPSEwLGduPSRnLHNuKCksai5vbkV4aXQmJmoub25FeGl0KGR0KSks''@;'; put 'put ''TiYmcHJvY2Vzcy5leGl0KGR0KSxqLnF1aXQoZHQsbmV3IENhKGR0KSkpfWZ1bmN0aW9uIGYyKGR0KXt0aHJvdyBqLm9uQWJvcnQmJmoub25BYm9ydChkdCksdm9pZCAwIT09ZHQ/KGoucHJpbnQoZHQpLGoucHJpbnRFcnIoZHQpLGR0PUpTT04uc3RyaW5naWZ5KGR0KSk6ZHQ9IiIsTWU9ITAs''@;'; put 'put ''ImFib3J0KCIrZHQrIikuIEJ1aWxkIHdpdGggLXMgQVNTRVJUSU9OUz0xIGZvciBtb3JlIGluZm8uIn1pZigoQ2EucHJvdG90eXBlPW5ldyBFcnJvcikuY29uc3RydWN0b3I9Q2EsbTA9ZnVuY3Rpb24gZHQoKXtqLmNhbGxlZFJ1bnx8cWcoKSxqLmNhbGxlZFJ1bnx8KG0wPWR0KX0sai5ydW49''@;'; put 'put ''cWcsai5leGl0PWliLGouYWJvcnQ9ZjIsai5wcmVJbml0KWZvcigiZnVuY3Rpb24iPT10eXBlb2Ygai5wcmVJbml0JiYoai5wcmVJbml0PVtqLnByZUluaXRdKTtqLnByZUluaXQubGVuZ3RoPjA7KWoucHJlSW5pdC5wb3AoKSgpO3JldHVybiBqLm5vRXhpdFJ1bnRpbWU9ITAscWcoKSxqfTtm''@;'; put 'put ''dW5jdGlvbiBFKFEpe3ZhciBLLGo9YXJndW1lbnRzLmxlbmd0aDw9MXx8dm9pZCAwPT09YXJndW1lbnRzWzFdP3t9OmFyZ3VtZW50c1sxXSxyZT12b2lkIDA9PT1qLmZvcm1hdD8ic3ZnIjpqLmZvcm1hdCxhZT12b2lkIDA9PT1qLmVuZ2luZT8iZG90IjpqLmVuZ2luZSxZPWouc2NhbGUsVz1q''@;'; put 'put ''LnRvdGFsTWVtb3J5LE49dm9pZCAwPT09ai5maWxlcz9bXTpqLmZpbGVzLHRlPXZvaWQgMD09PWouaW1hZ2VzP1tdOmouaW1hZ2VzO2ZvcihLPTA7Szx0ZS5sZW5ndGg7SysrKU4ucHVzaCh7cGF0aDp0ZVtLXS5wYXRoLGRhdGE6Jzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04''@;'; put 'put ''IiBzdGFuZGFsb25lPSJubyI/PlxuPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj5cbjxzdmcgd2lkdGg9IicrdGVbS10ud2lkdGgrJyIgaGVpZ2h0PSInK3RlW0td''@;'; put 'put ''LmhlaWdodCsnIj48L3N2Zz4nfSk7cmV0dXJuInBuZy1pbWFnZS1lbGVtZW50Ij09cmU/RS5zdmdYbWxUb1BuZ0ltYWdlRWxlbWVudChFZShRLCJzdmciLGFlLFcsTiksWSk6RWUoUSxyZSxhZSxXLE4pfWZ1bmN0aW9uIEVlKFEsaixyZSxhZSxZKXt2YXIgTixXPUIoe1RPVEFMX01FTU9SWTph''@;'; put 'put ''ZX0pO2ZvcihOPTA7TjxZLmxlbmd0aDtOKyspVy5jY2FsbCgidml6Q3JlYXRlRmlsZSIsIm51bWJlciIsWyJzdHJpbmciLCJzdHJpbmciXSxbWVtOXS5wYXRoLFlbTl0uZGF0YV0pO3ZhciB0ZT1XLmNjYWxsKCJ2aXpSZW5kZXJGcm9tU3RyaW5nIiwibnVtYmVyIixbInN0cmluZyIsInN0cmlu''@;'; put 'put ''ZyIsInN0cmluZyJdLFtRLGoscmVdKSxLPVcuUG9pbnRlcl9zdHJpbmdpZnkodGUpLEo9Vy5jY2FsbCgidml6TGFzdEVycm9yTWVzc2FnZSIsIm51bWJlciIsW10sW10pLHNlPVcuUG9pbnRlcl9zdHJpbmdpZnkoSik7aWYoIiIhPXNlKXRocm93IG5ldyBFcnJvcihzZSk7cmV0dXJuIEt9RS5z''@;'; put 'put ''dmdYbWxUb1BuZ0ltYWdlRWxlbWVudD1mdW5jdGlvbihRLGoscmUpe3ZvaWQgMD09PWomJihqPSJkZXZpY2VQaXhlbFJhdGlvImluIHdpbmRvdyYmd2luZG93LmRldmljZVBpeGVsUmF0aW8+MT93aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbzoxKTt2YXIgYWU9bmV3IEltYWdlO3RyeXtpZigib2Jq''@;'; put 'put ''ZWN0Ij09dHlwZW9mIGZhYnJpYyYmZmFicmljLmxvYWRTVkdGcm9tU3RyaW5nKWZhYnJpYy5sb2FkU1ZHRnJvbVN0cmluZyhRLGZ1bmN0aW9uKFcsTil7aWYoMD09Vy5sZW5ndGgpe2lmKHZvaWQgMCE9PXJlKXJldHVybiB2b2lkIHJlKG5ldyBFcnJvcigiRXJyb3IgbG9hZGluZyBTVkcgd2l0''@;'; put 'put ''aCBGYWJyaWMiKSk7dGhyb3cgbmV3IEVycm9yKCJFcnJvciBsb2FkaW5nIFNWRyB3aXRoIEZhYnJpYyIpfXZhciB0ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0ZS53aWR0aD1OLndpZHRoLHRlLmhlaWdodD1OLmhlaWdodDt2YXIgSz1uZXcgZmFicmljLkNhbnZhcyh0ZSx7''@;'; put 'put ''ZW5hYmxlUmV0aW5hU2NhbGluZzohMX0pLEo9ZmFicmljLnV0aWwuZ3JvdXBTVkdFbGVtZW50cyhXLE4pO0suYWRkKEopLnJlbmRlckFsbCgpLGFlLnNyYz1LLnRvRGF0YVVSTCh7bXVsdGlwbGllcjpqfSksYWUud2lkdGg9Ti53aWR0aCxhZS5oZWlnaHQ9Ti5oZWlnaHQsdm9pZCAwIT09cmUm''@;'; put 'put ''JnJlKG51bGwsYWUpfSk7ZWxzZXt2YXIgWT1uZXcgSW1hZ2U7WS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgVz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtXLndpZHRoPVkud2lkdGgqaixXLmhlaWdodD1ZLmhlaWdodCpqLFcuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UoWSww''@;'; put 'put ''LDAsVy53aWR0aCxXLmhlaWdodCksYWUuc3JjPVcudG9EYXRhVVJMKCJpbWFnZS9wbmciKSxhZS53aWR0aD1ZLndpZHRoLGFlLmhlaWdodD1ZLmhlaWdodCx2b2lkIDAhPT1yZSYmcmUobnVsbCxhZSl9LFkub25lcnJvcj1mdW5jdGlvbihXKXt2YXIgTjtpZihOPSJlcnJvciJpbiBXP1cuZXJy''@;'; put 'put ''b3I6bmV3IEVycm9yKCJFcnJvciBsb2FkaW5nIFNWRyIpLHZvaWQgMD09PXJlKXRocm93IE47cmUoTil9LFkuc3JjPSJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LCIrZnVuY3Rpb24gVShRKXtyZXR1cm4gYnRvYShlbmNvZGVVUklDb21wb25lbnQoUSkucmVwbGFjZSgvJShbMC05QS1GXXsy''@;'; put 'put ''fSkvZyxmdW5jdGlvbihqLHJlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZSgiMHgiK3JlKX0pKX0oUSl9fWNhdGNoKFcpe2lmKHZvaWQgMD09PXJlKXRocm93IFc7cmUoVyl9aWYodm9pZCAwPT09cmUpcmV0dXJuIGFlfSxFLnN2Z1htbFRvUG5nQmFzZTY0PWZ1bmN0aW9uKFEsaixyZSl7''@;'; put 'put ''RS5zdmdYbWxUb1BuZ0ltYWdlRWxlbWVudChRLGosZnVuY3Rpb24oYWUsWSl7YWU/cmUoYWUpOnJlKG51bGwsWS5zcmMuc2xpY2UoMjIpKX0pfSxYZS5leHBvcnRzPUV9KCl9LDg4NTgzOigpPT57InVzZSBzdHJpY3QiOyFmdW5jdGlvbihDdCl7Y29uc3QgZnQ9Q3QucGVyZm9ybWFuY2U7ZnVu''@;'; put 'put ''Y3Rpb24gSHQobW4pe2Z0JiZmdC5tYXJrJiZmdC5tYXJrKG1uKX1mdW5jdGlvbiBHZShtbix1bil7ZnQmJmZ0Lm1lYXN1cmUmJmZ0Lm1lYXN1cmUobW4sdW4pfUh0KCJab25lIik7Y29uc3QgVWU9Q3QuX19ab25lX3N5bWJvbF9wcmVmaXh8fCJfX3pvbmVfc3ltYm9sX18iO2Z1bmN0aW9uIHl0''@;'; put 'put ''KG1uKXtyZXR1cm4gVWUrbW59Y29uc3QganQ9ITA9PT1DdFt5dCgiZm9yY2VEdXBsaWNhdGVab25lQ2hlY2siKV07aWYoQ3QuWm9uZSl7aWYoanR8fCJmdW5jdGlvbiIhPXR5cGVvZiBDdC5ab25lLl9fc3ltYm9sX18pdGhyb3cgbmV3IEVycm9yKCJab25lIGFscmVhZHkgbG9hZGVkLiIpO3Jl''@;'; put 'put ''dHVybiBDdC5ab25lfWxldCBKdD0oKCk9PntjbGFzcyBtbntjb25zdHJ1Y3Rvcihjbixfbil7dGhpcy5fcGFyZW50PWNuLHRoaXMuX25hbWU9X24/X24ubmFtZXx8InVubmFtZWQiOiI8cm9vdD4iLHRoaXMuX3Byb3BlcnRpZXM9X24mJl9uLnByb3BlcnRpZXN8fHt9LHRoaXMuX3pvbmVEZWxl''@;'; put 'put ''Z2F0ZT1uZXcgZG4odGhpcyx0aGlzLl9wYXJlbnQmJnRoaXMuX3BhcmVudC5fem9uZURlbGVnYXRlLF9uKX1zdGF0aWMgYXNzZXJ0Wm9uZVBhdGNoZWQoKXtpZihDdC5Qcm9taXNlIT09d24uWm9uZUF3YXJlUHJvbWlzZSl0aHJvdyBuZXcgRXJyb3IoIlpvbmUuanMgaGFzIGRldGVjdGVkIHRo''@;'; put 'put ''YXQgWm9uZUF3YXJlUHJvbWlzZSBgKHdpbmRvd3xnbG9iYWwpLlByb21pc2VgIGhhcyBiZWVuIG92ZXJ3cml0dGVuLlxuTW9zdCBsaWtlbHkgY2F1c2UgaXMgdGhhdCBhIFByb21pc2UgcG9seWZpbGwgaGFzIGJlZW4gbG9hZGVkIGFmdGVyIFpvbmUuanMgKFBvbHlmaWxsaW5nIFByb21pc2Ug''@;'; put 'put ''YXBpIGlzIG5vdCBuZWNlc3Nhcnkgd2hlbiB6b25lLmpzIGlzIGxvYWRlZC4gSWYgeW91IG11c3QgbG9hZCBvbmUsIGRvIHNvIGJlZm9yZSBsb2FkaW5nIHpvbmUuanMuKSIpfXN0YXRpYyBnZXQgcm9vdCgpe2xldCBjbj1tbi5jdXJyZW50O2Zvcig7Y24ucGFyZW50Oyljbj1jbi5wYXJlbnQ7''@;'; put 'put ''cmV0dXJuIGNufXN0YXRpYyBnZXQgY3VycmVudCgpe3JldHVybiB6bi56b25lfXN0YXRpYyBnZXQgY3VycmVudFRhc2soKXtyZXR1cm4gVHJ9c3RhdGljIF9fbG9hZF9wYXRjaChjbixfbixHdD0hMSl7aWYod24uaGFzT3duUHJvcGVydHkoY24pKXtpZighR3QmJmp0KXRocm93IEVycm9yKCJB''@;'; put 'put ''bHJlYWR5IGxvYWRlZCBwYXRjaDogIitjbil9ZWxzZSBpZighQ3RbIl9fWm9uZV9kaXNhYmxlXyIrY25dKXtjb25zdCBrbj0iWm9uZToiK2NuO0h0KGtuKSx3bltjbl09X24oQ3QsbW4sdG4pLEdlKGtuLGtuKX19Z2V0IHBhcmVudCgpe3JldHVybiB0aGlzLl9wYXJlbnR9Z2V0IG5hbWUoKXty''@;'; put 'put ''ZXR1cm4gdGhpcy5fbmFtZX1nZXQoY24pe2NvbnN0IF9uPXRoaXMuZ2V0Wm9uZVdpdGgoY24pO2lmKF9uKXJldHVybiBfbi5fcHJvcGVydGllc1tjbl19Z2V0Wm9uZVdpdGgoY24pe2xldCBfbj10aGlzO2Zvcig7X247KXtpZihfbi5fcHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShjbikpcmV0''@;'; put 'put ''dXJuIF9uO19uPV9uLl9wYXJlbnR9cmV0dXJuIG51bGx9Zm9yayhjbil7aWYoIWNuKXRocm93IG5ldyBFcnJvcigiWm9uZVNwZWMgcmVxdWlyZWQhIik7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5mb3JrKHRoaXMsY24pfXdyYXAoY24sX24pe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBjbil0''@;'; put 'put ''aHJvdyBuZXcgRXJyb3IoIkV4cGVjdGluZyBmdW5jdGlvbiBnb3Q6ICIrY24pO2NvbnN0IEd0PXRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnRlcmNlcHQodGhpcyxjbixfbiksa249dGhpcztyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4ga24ucnVuR3VhcmRlZChHdCx0aGlzLGFyZ3VtZW50cyxfbil9''@;'; put 'put ''fXJ1bihjbixfbixHdCxrbil7em49e3BhcmVudDp6bix6b25lOnRoaXN9O3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLGNuLF9uLEd0LGtuKX1maW5hbGx5e3puPXpuLnBhcmVudH19cnVuR3VhcmRlZChjbixfbj1udWxsLEd0LGtuKXt6bj17cGFyZW50OnpuLHpv''@;'; put 'put ''bmU6dGhpc307dHJ5e3RyeXtyZXR1cm4gdGhpcy5fem9uZURlbGVnYXRlLmludm9rZSh0aGlzLGNuLF9uLEd0LGtuKX1jYXRjaChWbil7aWYodGhpcy5fem9uZURlbGVnYXRlLmhhbmRsZUVycm9yKHRoaXMsVm4pKXRocm93IFZufX1maW5hbGx5e3puPXpuLnBhcmVudH19cnVuVGFzayhjbixf''@;'; put 'put ''bixHdCl7aWYoY24uem9uZSE9dGhpcyl0aHJvdyBuZXcgRXJyb3IoIkEgdGFzayBjYW4gb25seSBiZSBydW4gaW4gdGhlIHpvbmUgb2YgY3JlYXRpb24hIChDcmVhdGlvbjogIisoY24uem9uZXx8cHIpLm5hbWUrIjsgRXhlY3V0aW9uOiAiK3RoaXMubmFtZSsiKSIpO2lmKGNuLnN0YXRlPT09''@;'; put 'put ''bnImJihjbi50eXBlPT09VW58fGNuLnR5cGU9PT1zbikpcmV0dXJuO2NvbnN0IGtuPWNuLnN0YXRlIT1XdDtrbiYmY24uX3RyYW5zaXRpb25UbyhXdCxxbiksY24ucnVuQ291bnQrKztjb25zdCBWbj1UcjtUcj1jbix6bj17cGFyZW50OnpuLHpvbmU6dGhpc307dHJ5e2NuLnR5cGU9PXNuJiZj''@;'; put 'put ''bi5kYXRhJiYhY24uZGF0YS5pc1BlcmlvZGljJiYoY24uY2FuY2VsRm49dm9pZCAwKTt0cnl7cmV0dXJuIHRoaXMuX3pvbmVEZWxlZ2F0ZS5pbnZva2VUYXNrKHRoaXMsY24sX24sR3QpfWNhdGNoKGVuKXtpZih0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxlbikpdGhyb3cg''@;'; put 'put ''ZW59fWZpbmFsbHl7Y24uc3RhdGUhPT1uciYmY24uc3RhdGUhPT1LbiYmKGNuLnR5cGU9PVVufHxjbi5kYXRhJiZjbi5kYXRhLmlzUGVyaW9kaWM/a24mJmNuLl90cmFuc2l0aW9uVG8ocW4sV3QpOihjbi5ydW5Db3VudD0wLHRoaXMuX3VwZGF0ZVRhc2tDb3VudChjbiwtMSksa24mJmNuLl90''@;'; put 'put ''cmFuc2l0aW9uVG8obnIsV3QsbnIpKSksem49em4ucGFyZW50LFRyPVZufX1zY2hlZHVsZVRhc2soY24pe2lmKGNuLnpvbmUmJmNuLnpvbmUhPT10aGlzKXtsZXQgR3Q9dGhpcztmb3IoO0d0Oyl7aWYoR3Q9PT1jbi56b25lKXRocm93IEVycm9yKGBjYW4gbm90IHJlc2NoZWR1bGUgdGFzayB0''@;'; put 'put ''byAke3RoaXMubmFtZX0gd2hpY2ggaXMgZGVzY2VuZGFudHMgb2YgdGhlIG9yaWdpbmFsIHpvbmUgJHtjbi56b25lLm5hbWV9YCk7R3Q9R3QucGFyZW50fX1jbi5fdHJhbnNpdGlvblRvKEFuLG5yKTtjb25zdCBfbj1bXTtjbi5fem9uZURlbGVnYXRlcz1fbixjbi5fem9uZT10aGlzO3RyeXtj''@;'; put 'put ''bj10aGlzLl96b25lRGVsZWdhdGUuc2NoZWR1bGVUYXNrKHRoaXMsY24pfWNhdGNoKEd0KXt0aHJvdyBjbi5fdHJhbnNpdGlvblRvKEtuLEFuLG5yKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxHdCksR3R9cmV0dXJuIGNuLl96b25lRGVsZWdhdGVzPT09X24mJnRoaXMu''@;'; put 'put ''X3VwZGF0ZVRhc2tDb3VudChjbiwxKSxjbi5zdGF0ZT09QW4mJmNuLl90cmFuc2l0aW9uVG8ocW4sQW4pLGNufXNjaGVkdWxlTWljcm9UYXNrKGNuLF9uLEd0LGtuKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHluKE50LGNuLF9uLEd0LGtuLHZvaWQgMCkpfXNjaGVkdWxlTWFjcm9U''@;'; put 'put ''YXNrKGNuLF9uLEd0LGtuLFZuKXtyZXR1cm4gdGhpcy5zY2hlZHVsZVRhc2sobmV3IHluKHNuLGNuLF9uLEd0LGtuLFZuKSl9c2NoZWR1bGVFdmVudFRhc2soY24sX24sR3Qsa24sVm4pe3JldHVybiB0aGlzLnNjaGVkdWxlVGFzayhuZXcgeW4oVW4sY24sX24sR3Qsa24sVm4pKX1jYW5jZWxU''@;'; put 'put ''YXNrKGNuKXtpZihjbi56b25lIT10aGlzKXRocm93IG5ldyBFcnJvcigiQSB0YXNrIGNhbiBvbmx5IGJlIGNhbmNlbGxlZCBpbiB0aGUgem9uZSBvZiBjcmVhdGlvbiEgKENyZWF0aW9uOiAiKyhjbi56b25lfHxwcikubmFtZSsiOyBFeGVjdXRpb246ICIrdGhpcy5uYW1lKyIpIik7Y24uX3Ry''@;'; put 'put ''YW5zaXRpb25UbyhwbixxbixXdCk7dHJ5e3RoaXMuX3pvbmVEZWxlZ2F0ZS5jYW5jZWxUYXNrKHRoaXMsY24pfWNhdGNoKF9uKXt0aHJvdyBjbi5fdHJhbnNpdGlvblRvKEtuLHBuKSx0aGlzLl96b25lRGVsZWdhdGUuaGFuZGxlRXJyb3IodGhpcyxfbiksX259cmV0dXJuIHRoaXMuX3VwZGF0''@;'; put 'put ''ZVRhc2tDb3VudChjbiwtMSksY24uX3RyYW5zaXRpb25UbyhucixwbiksY24ucnVuQ291bnQ9MCxjbn1fdXBkYXRlVGFza0NvdW50KGNuLF9uKXtjb25zdCBHdD1jbi5fem9uZURlbGVnYXRlczstMT09X24mJihjbi5fem9uZURlbGVnYXRlcz1udWxsKTtmb3IobGV0IGtuPTA7a248R3QubGVu''@;'; put 'put ''Z3RoO2tuKyspR3Rba25dLl91cGRhdGVUYXNrQ291bnQoY24udHlwZSxfbil9fXJldHVybiBtbi5fX3N5bWJvbF9fPXl0LG1ufSkoKTtjb25zdCBnbj17bmFtZToiIixvbkhhc1Rhc2s6KG1uLHVuLGNuLF9uKT0+bW4uaGFzVGFzayhjbixfbiksb25TY2hlZHVsZVRhc2s6KG1uLHVuLGNuLF9u''@;'; put 'put ''KT0+bW4uc2NoZWR1bGVUYXNrKGNuLF9uKSxvbkludm9rZVRhc2s6KG1uLHVuLGNuLF9uLEd0LGtuKT0+bW4uaW52b2tlVGFzayhjbixfbixHdCxrbiksb25DYW5jZWxUYXNrOihtbix1bixjbixfbik9Pm1uLmNhbmNlbFRhc2soY24sX24pfTtjbGFzcyBkbntjb25zdHJ1Y3Rvcih1bixjbixf''@;'; put 'put ''bil7dGhpcy5fdGFza0NvdW50cz17bWljcm9UYXNrOjAsbWFjcm9UYXNrOjAsZXZlbnRUYXNrOjB9LHRoaXMuem9uZT11bix0aGlzLl9wYXJlbnREZWxlZ2F0ZT1jbix0aGlzLl9mb3JrWlM9X24mJihfbiYmX24ub25Gb3JrP19uOmNuLl9mb3JrWlMpLHRoaXMuX2ZvcmtEbGd0PV9uJiYoX24u''@;'; put 'put ''b25Gb3JrP2NuOmNuLl9mb3JrRGxndCksdGhpcy5fZm9ya0N1cnJab25lPV9uJiYoX24ub25Gb3JrP3RoaXMuem9uZTpjbi5fZm9ya0N1cnJab25lKSx0aGlzLl9pbnRlcmNlcHRaUz1fbiYmKF9uLm9uSW50ZXJjZXB0P19uOmNuLl9pbnRlcmNlcHRaUyksdGhpcy5faW50ZXJjZXB0RGxndD1f''@;'; put 'put ''biYmKF9uLm9uSW50ZXJjZXB0P2NuOmNuLl9pbnRlcmNlcHREbGd0KSx0aGlzLl9pbnRlcmNlcHRDdXJyWm9uZT1fbiYmKF9uLm9uSW50ZXJjZXB0P3RoaXMuem9uZTpjbi5faW50ZXJjZXB0Q3VyclpvbmUpLHRoaXMuX2ludm9rZVpTPV9uJiYoX24ub25JbnZva2U/X246Y24uX2ludm9rZVpT''@;'; put 'put ''KSx0aGlzLl9pbnZva2VEbGd0PV9uJiYoX24ub25JbnZva2U/Y246Y24uX2ludm9rZURsZ3QpLHRoaXMuX2ludm9rZUN1cnJab25lPV9uJiYoX24ub25JbnZva2U/dGhpcy56b25lOmNuLl9pbnZva2VDdXJyWm9uZSksdGhpcy5faGFuZGxlRXJyb3JaUz1fbiYmKF9uLm9uSGFuZGxlRXJyb3I/''@;'; put 'put ''X246Y24uX2hhbmRsZUVycm9yWlMpLHRoaXMuX2hhbmRsZUVycm9yRGxndD1fbiYmKF9uLm9uSGFuZGxlRXJyb3I/Y246Y24uX2hhbmRsZUVycm9yRGxndCksdGhpcy5faGFuZGxlRXJyb3JDdXJyWm9uZT1fbiYmKF9uLm9uSGFuZGxlRXJyb3I/dGhpcy56b25lOmNuLl9oYW5kbGVFcnJvckN1''@;'; put 'put ''cnJab25lKSx0aGlzLl9zY2hlZHVsZVRhc2taUz1fbiYmKF9uLm9uU2NoZWR1bGVUYXNrP19uOmNuLl9zY2hlZHVsZVRhc2taUyksdGhpcy5fc2NoZWR1bGVUYXNrRGxndD1fbiYmKF9uLm9uU2NoZWR1bGVUYXNrP2NuOmNuLl9zY2hlZHVsZVRhc2tEbGd0KSx0aGlzLl9zY2hlZHVsZVRhc2tD''@;'; put 'put ''dXJyWm9uZT1fbiYmKF9uLm9uU2NoZWR1bGVUYXNrP3RoaXMuem9uZTpjbi5fc2NoZWR1bGVUYXNrQ3VyclpvbmUpLHRoaXMuX2ludm9rZVRhc2taUz1fbiYmKF9uLm9uSW52b2tlVGFzaz9fbjpjbi5faW52b2tlVGFza1pTKSx0aGlzLl9pbnZva2VUYXNrRGxndD1fbiYmKF9uLm9uSW52b2tl''@;'; put 'put ''VGFzaz9jbjpjbi5faW52b2tlVGFza0RsZ3QpLHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZT1fbiYmKF9uLm9uSW52b2tlVGFzaz90aGlzLnpvbmU6Y24uX2ludm9rZVRhc2tDdXJyWm9uZSksdGhpcy5fY2FuY2VsVGFza1pTPV9uJiYoX24ub25DYW5jZWxUYXNrP19uOmNuLl9jYW5jZWxUYXNr''@;'; put 'put ''WlMpLHRoaXMuX2NhbmNlbFRhc2tEbGd0PV9uJiYoX24ub25DYW5jZWxUYXNrP2NuOmNuLl9jYW5jZWxUYXNrRGxndCksdGhpcy5fY2FuY2VsVGFza0N1cnJab25lPV9uJiYoX24ub25DYW5jZWxUYXNrP3RoaXMuem9uZTpjbi5fY2FuY2VsVGFza0N1cnJab25lKSx0aGlzLl9oYXNUYXNrWlM9''@;'; put 'put ''bnVsbCx0aGlzLl9oYXNUYXNrRGxndD1udWxsLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9bnVsbCx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9bnVsbDtjb25zdCBHdD1fbiYmX24ub25IYXNUYXNrOyhHdHx8Y24mJmNuLl9oYXNUYXNrWlMpJiYodGhpcy5faGFzVGFza1pTPUd0P19uOmduLHRoaXMu''@;'; put 'put ''X2hhc1Rhc2tEbGd0PWNuLHRoaXMuX2hhc1Rhc2tEbGd0T3duZXI9dGhpcyx0aGlzLl9oYXNUYXNrQ3VyclpvbmU9dW4sX24ub25TY2hlZHVsZVRhc2t8fCh0aGlzLl9zY2hlZHVsZVRhc2taUz1nbix0aGlzLl9zY2hlZHVsZVRhc2tEbGd0PWNuLHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25l''@;'; put 'put ''PXRoaXMuem9uZSksX24ub25JbnZva2VUYXNrfHwodGhpcy5faW52b2tlVGFza1pTPWduLHRoaXMuX2ludm9rZVRhc2tEbGd0PWNuLHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZT10aGlzLnpvbmUpLF9uLm9uQ2FuY2VsVGFza3x8KHRoaXMuX2NhbmNlbFRhc2taUz1nbix0aGlzLl9jYW5jZWxU''@;'; put 'put ''YXNrRGxndD1jbix0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmU9dGhpcy56b25lKSl9Zm9yayh1bixjbil7cmV0dXJuIHRoaXMuX2ZvcmtaUz90aGlzLl9mb3JrWlMub25Gb3JrKHRoaXMuX2ZvcmtEbGd0LHRoaXMuem9uZSx1bixjbik6bmV3IEp0KHVuLGNuKX1pbnRlcmNlcHQodW4sY24sX24p''@;'; put 'put ''e3JldHVybiB0aGlzLl9pbnRlcmNlcHRaUz90aGlzLl9pbnRlcmNlcHRaUy5vbkludGVyY2VwdCh0aGlzLl9pbnRlcmNlcHREbGd0LHRoaXMuX2ludGVyY2VwdEN1cnJab25lLHVuLGNuLF9uKTpjbn1pbnZva2UodW4sY24sX24sR3Qsa24pe3JldHVybiB0aGlzLl9pbnZva2VaUz90aGlzLl9p''@;'; put 'put ''bnZva2VaUy5vbkludm9rZSh0aGlzLl9pbnZva2VEbGd0LHRoaXMuX2ludm9rZUN1cnJab25lLHVuLGNuLF9uLEd0LGtuKTpjbi5hcHBseShfbixHdCl9aGFuZGxlRXJyb3IodW4sY24pe3JldHVybiF0aGlzLl9oYW5kbGVFcnJvclpTfHx0aGlzLl9oYW5kbGVFcnJvclpTLm9uSGFuZGxlRXJy''@;'; put 'put ''b3IodGhpcy5faGFuZGxlRXJyb3JEbGd0LHRoaXMuX2hhbmRsZUVycm9yQ3VyclpvbmUsdW4sY24pfXNjaGVkdWxlVGFzayh1bixjbil7bGV0IF9uPWNuO2lmKHRoaXMuX3NjaGVkdWxlVGFza1pTKXRoaXMuX2hhc1Rhc2taUyYmX24uX3pvbmVEZWxlZ2F0ZXMucHVzaCh0aGlzLl9oYXNUYXNr''@;'; put 'put ''RGxndE93bmVyKSxfbj10aGlzLl9zY2hlZHVsZVRhc2taUy5vblNjaGVkdWxlVGFzayh0aGlzLl9zY2hlZHVsZVRhc2tEbGd0LHRoaXMuX3NjaGVkdWxlVGFza0N1cnJab25lLHVuLGNuKSxfbnx8KF9uPWNuKTtlbHNlIGlmKGNuLnNjaGVkdWxlRm4pY24uc2NoZWR1bGVGbihjbik7ZWxzZXtp''@;'; put 'put ''Zihjbi50eXBlIT1OdCl0aHJvdyBuZXcgRXJyb3IoIlRhc2sgaXMgbWlzc2luZyBzY2hlZHVsZUZuLiIpO3hyKGNuKX1yZXR1cm4gX259aW52b2tlVGFzayh1bixjbixfbixHdCl7cmV0dXJuIHRoaXMuX2ludm9rZVRhc2taUz90aGlzLl9pbnZva2VUYXNrWlMub25JbnZva2VUYXNrKHRoaXMu''@;'; put 'put ''X2ludm9rZVRhc2tEbGd0LHRoaXMuX2ludm9rZVRhc2tDdXJyWm9uZSx1bixjbixfbixHdCk6Y24uY2FsbGJhY2suYXBwbHkoX24sR3QpfWNhbmNlbFRhc2sodW4sY24pe2xldCBfbjtpZih0aGlzLl9jYW5jZWxUYXNrWlMpX249dGhpcy5fY2FuY2VsVGFza1pTLm9uQ2FuY2VsVGFzayh0aGlz''@;'; put 'put ''Ll9jYW5jZWxUYXNrRGxndCx0aGlzLl9jYW5jZWxUYXNrQ3VyclpvbmUsdW4sY24pO2Vsc2V7aWYoIWNuLmNhbmNlbEZuKXRocm93IEVycm9yKCJUYXNrIGlzIG5vdCBjYW5jZWxhYmxlIik7X249Y24uY2FuY2VsRm4oY24pfXJldHVybiBfbn1oYXNUYXNrKHVuLGNuKXt0cnl7dGhpcy5faGFz''@;'; put 'put ''VGFza1pTJiZ0aGlzLl9oYXNUYXNrWlMub25IYXNUYXNrKHRoaXMuX2hhc1Rhc2tEbGd0LHRoaXMuX2hhc1Rhc2tDdXJyWm9uZSx1bixjbil9Y2F0Y2goX24pe3RoaXMuaGFuZGxlRXJyb3IodW4sX24pfX1fdXBkYXRlVGFza0NvdW50KHVuLGNuKXtjb25zdCBfbj10aGlzLl90YXNrQ291bnRz''@;'; put 'put ''LEd0PV9uW3VuXSxrbj1fblt1bl09R3QrY247aWYoa248MCl0aHJvdyBuZXcgRXJyb3IoIk1vcmUgdGFza3MgZXhlY3V0ZWQgdGhlbiB3ZXJlIHNjaGVkdWxlZC4iKTswIT1HdCYmMCE9a258fHRoaXMuaGFzVGFzayh0aGlzLnpvbmUse21pY3JvVGFzazpfbi5taWNyb1Rhc2s+MCxtYWNyb1Rh''@;'; put 'put ''c2s6X24ubWFjcm9UYXNrPjAsZXZlbnRUYXNrOl9uLmV2ZW50VGFzaz4wLGNoYW5nZTp1bn0pfX1jbGFzcyB5bntjb25zdHJ1Y3Rvcih1bixjbixfbixHdCxrbixWbil7aWYodGhpcy5fem9uZT1udWxsLHRoaXMucnVuQ291bnQ9MCx0aGlzLl96b25lRGVsZWdhdGVzPW51bGwsdGhpcy5fc3Rh''@;'; put 'put ''dGU9Im5vdFNjaGVkdWxlZCIsdGhpcy50eXBlPXVuLHRoaXMuc291cmNlPWNuLHRoaXMuZGF0YT1HdCx0aGlzLnNjaGVkdWxlRm49a24sdGhpcy5jYW5jZWxGbj1WbiwhX24pdGhyb3cgbmV3IEVycm9yKCJjYWxsYmFjayBpcyBub3QgZGVmaW5lZCIpO3RoaXMuY2FsbGJhY2s9X247Y29uc3Qg''@;'; put 'put ''ZW49dGhpczt0aGlzLmludm9rZT11bj09PVVuJiZHdCYmR3QudXNlRz95bi5pbnZva2VUYXNrOmZ1bmN0aW9uKCl7cmV0dXJuIHluLmludm9rZVRhc2suY2FsbChDdCxlbix0aGlzLGFyZ3VtZW50cyl9fXN0YXRpYyBpbnZva2VUYXNrKHVuLGNuLF9uKXt1bnx8KHVuPXRoaXMpLEJuKys7dHJ5''@;'; put 'put ''e3JldHVybiB1bi5ydW5Db3VudCsrLHVuLnpvbmUucnVuVGFzayh1bixjbixfbil9ZmluYWxseXsxPT1CbiYmcXQoKSxCbi0tfX1nZXQgem9uZSgpe3JldHVybiB0aGlzLl96b25lfWdldCBzdGF0ZSgpe3JldHVybiB0aGlzLl9zdGF0ZX1jYW5jZWxTY2hlZHVsZVJlcXVlc3QoKXt0aGlzLl90''@;'; put 'put ''cmFuc2l0aW9uVG8obnIsQW4pfV90cmFuc2l0aW9uVG8odW4sY24sX24pe2lmKHRoaXMuX3N0YXRlIT09Y24mJnRoaXMuX3N0YXRlIT09X24pdGhyb3cgbmV3IEVycm9yKGAke3RoaXMudHlwZX0gJyR7dGhpcy5zb3VyY2V9JzogY2FuIG5vdCB0cmFuc2l0aW9uIHRvICcke3VufScsIGV4cGVj''@;'; put 'put ''dGluZyBzdGF0ZSAnJHtjbn0nJHtfbj8iIG9yICciK19uKyInIjoiIn0sIHdhcyAnJHt0aGlzLl9zdGF0ZX0nLmApO3RoaXMuX3N0YXRlPXVuLHVuPT1uciYmKHRoaXMuX3pvbmVEZWxlZ2F0ZXM9bnVsbCl9dG9TdHJpbmcoKXtyZXR1cm4gdGhpcy5kYXRhJiZ2b2lkIDAhPT10aGlzLmRhdGEu''@;'; put 'put ''aGFuZGxlSWQ/dGhpcy5kYXRhLmhhbmRsZUlkLnRvU3RyaW5nKCk6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHRoaXMpfXRvSlNPTigpe3JldHVybnt0eXBlOnRoaXMudHlwZSxzdGF0ZTp0aGlzLnN0YXRlLHNvdXJjZTp0aGlzLnNvdXJjZSx6b25lOnRoaXMuem9uZS5uYW1lLHJ1''@;'; put 'put ''bkNvdW50OnRoaXMucnVuQ291bnR9fX1jb25zdCBsbj15dCgic2V0VGltZW91dCIpLE5uPXl0KCJQcm9taXNlIiksYm49eXQoInRoZW4iKTtsZXQgWG4sZXI9W10sc3I9ITE7ZnVuY3Rpb24gRnIobW4pe2lmKFhufHxDdFtObl0mJihYbj1DdFtObl0ucmVzb2x2ZSgwKSksWG4pe2xldCB1bj1Y''@;'; put 'put ''bltibl07dW58fCh1bj1Ybi50aGVuKSx1bi5jYWxsKFhuLG1uKX1lbHNlIEN0W2xuXShtbiwwKX1mdW5jdGlvbiB4cihtbil7MD09PUJuJiYwPT09ZXIubGVuZ3RoJiZGcihxdCksbW4mJmVyLnB1c2gobW4pfWZ1bmN0aW9uIHF0KCl7aWYoIXNyKXtmb3Ioc3I9ITA7ZXIubGVuZ3RoOyl7Y29u''@;'; put 'put ''c3QgbW49ZXI7ZXI9W107Zm9yKGxldCB1bj0wO3VuPG1uLmxlbmd0aDt1bisrKXtjb25zdCBjbj1tblt1bl07dHJ5e2NuLnpvbmUucnVuVGFzayhjbixudWxsLG51bGwpfWNhdGNoKF9uKXt0bi5vblVuaGFuZGxlZEVycm9yKF9uKX19fXRuLm1pY3JvdGFza0RyYWluRG9uZSgpLHNyPSExfX1j''@;'; put 'put ''b25zdCBwcj17bmFtZToiTk8gWk9ORSJ9LG5yPSJub3RTY2hlZHVsZWQiLEFuPSJzY2hlZHVsaW5nIixxbj0ic2NoZWR1bGVkIixXdD0icnVubmluZyIscG49ImNhbmNlbGluZyIsS249InVua25vd24iLE50PSJtaWNyb1Rhc2siLHNuPSJtYWNyb1Rhc2siLFVuPSJldmVudFRhc2siLHduPXt9''@;'; put 'put ''LHRuPXtzeW1ib2w6eXQsY3VycmVudFpvbmVGcmFtZTooKT0+em4sb25VbmhhbmRsZWRFcnJvcjprcixtaWNyb3Rhc2tEcmFpbkRvbmU6a3Isc2NoZWR1bGVNaWNyb1Rhc2s6eHIsc2hvd1VuY2F1Z2h0RXJyb3I6KCk9PiFKdFt5dCgiaWdub3JlQ29uc29sZUVycm9yVW5jYXVnaHRFcnJvciIp''@;'; put 'put ''XSxwYXRjaEV2ZW50VGFyZ2V0OigpPT5bXSxwYXRjaE9uUHJvcGVydGllczprcixwYXRjaE1ldGhvZDooKT0+a3IsYmluZEFyZ3VtZW50czooKT0+W10scGF0Y2hUaGVuOigpPT5rcixwYXRjaE1hY3JvVGFzazooKT0+a3IscGF0Y2hFdmVudFByb3RvdHlwZTooKT0+a3IsaXNJRU9yRWRnZToo''@;'; put 'put ''KT0+ITEsZ2V0R2xvYmFsT2JqZWN0czooKT0+e30sT2JqZWN0RGVmaW5lUHJvcGVydHk6KCk9PmtyLE9iamVjdEdldE93blByb3BlcnR5RGVzY3JpcHRvcjooKT0+e30sT2JqZWN0Q3JlYXRlOigpPT57fSxBcnJheVNsaWNlOigpPT5bXSxwYXRjaENsYXNzOigpPT5rcix3cmFwV2l0aEN1cnJl''@;'; put 'put ''bnRab25lOigpPT5rcixmaWx0ZXJQcm9wZXJ0aWVzOigpPT5bXSxhdHRhY2hPcmlnaW5Ub1BhdGNoZWQ6KCk9PmtyLF9yZWRlZmluZVByb3BlcnR5OigpPT5rcixwYXRjaENhbGxiYWNrczooKT0+a3IsbmF0aXZlU2NoZWR1bGVNaWNyb1Rhc2s6RnJ9O2xldCB6bj17cGFyZW50Om51bGwsem9u''@;'; put 'put ''ZTpuZXcgSnQobnVsbCxudWxsKX0sVHI9bnVsbCxCbj0wO2Z1bmN0aW9uIGtyKCl7fUdlKCJab25lIiwiWm9uZSIpLEN0LlpvbmU9SnR9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3d8fCJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZiYmc2VsZnx8Z2xvYmFsKTtjb25zdCBYZT1P''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLEplPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxMPU9iamVjdC5nZXRQcm90b3R5cGVPZixtZT1PYmplY3QuY3JlYXRlLEI9QXJyYXkucHJvdG90eXBlLnNsaWNlLEU9ImFkZEV2ZW50TGlzdGVuZXIiLEVlPSJyZW1vdmVFdmVudExpc3RlbmVy''@;'; put 'put ''IixVPVpvbmUuX19zeW1ib2xfXyhFKSxRPVpvbmUuX19zeW1ib2xfXyhFZSksaj0idHJ1ZSIscmU9ImZhbHNlIixhZT1ab25lLl9fc3ltYm9sX18oIiIpO2Z1bmN0aW9uIFkoQ3QsZnQpe3JldHVybiBab25lLmN1cnJlbnQud3JhcChDdCxmdCl9ZnVuY3Rpb24gVyhDdCxmdCxIdCxHZSxVZSl7''@;'; put 'put ''cmV0dXJuIFpvbmUuY3VycmVudC5zY2hlZHVsZU1hY3JvVGFzayhDdCxmdCxIdCxHZSxVZSl9Y29uc3QgTj1ab25lLl9fc3ltYm9sX18sdGU9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3csSz10ZT93aW5kb3c6dm9pZCAwLEo9dGUmJkt8fCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZnx8''@;'; put 'put ''Z2xvYmFsO2Z1bmN0aW9uIG9lKEN0LGZ0KXtmb3IobGV0IEh0PUN0Lmxlbmd0aC0xO0h0Pj0wO0h0LS0pImZ1bmN0aW9uIj09dHlwZW9mIEN0W0h0XSYmKEN0W0h0XT1ZKEN0W0h0XSxmdCsiXyIrSHQpKTtyZXR1cm4gQ3R9ZnVuY3Rpb24gZGUoQ3Qpe3JldHVybiFDdHx8ITEhPT1DdC53cml0''@;'; put 'put ''YWJsZSYmISgiZnVuY3Rpb24iPT10eXBlb2YgQ3QuZ2V0JiZ2b2lkIDA9PT1DdC5zZXQpfWNvbnN0IHZlPSJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSxBZT0hKCJudyJpbiBKKSYmdm9pZCAwIT09Si5wcm9j''@;'; put 'put ''ZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKEoucHJvY2Vzcyksa2U9IUFlJiYhdmUmJiEoIXRlfHwhSy5IVE1MRWxlbWVudCksU2U9dm9pZCAwIT09Si5wcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT17fS50b1N0cmluZy5jYWxsKEoucHJvY2VzcykmJiF2''@;'; put 'put ''ZSYmISghdGV8fCFLLkhUTUxFbGVtZW50KSxJZT17fSxUZT1mdW5jdGlvbihDdCl7aWYoIShDdD1DdHx8Si5ldmVudCkpcmV0dXJuO2xldCBmdD1JZVtDdC50eXBlXTtmdHx8KGZ0PUllW0N0LnR5cGVdPU4oIk9OX1BST1BFUlRZIitDdC50eXBlKSk7Y29uc3QgSHQ9dGhpc3x8Q3QudGFyZ2V0''@;'; put 'put ''fHxKLEdlPUh0W2Z0XTtsZXQgVWU7aWYoa2UmJkh0PT09SyYmImVycm9yIj09PUN0LnR5cGUpe2NvbnN0IHl0PUN0O1VlPUdlJiZHZS5jYWxsKHRoaXMseXQubWVzc2FnZSx5dC5maWxlbmFtZSx5dC5saW5lbm8seXQuY29sbm8seXQuZXJyb3IpLCEwPT09VWUmJkN0LnByZXZlbnREZWZhdWx0''@;'; put 'put ''KCl9ZWxzZSBVZT1HZSYmR2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLG51bGwhPVVlJiYhVWUmJkN0LnByZXZlbnREZWZhdWx0KCk7cmV0dXJuIFVlfTtmdW5jdGlvbiBNZShDdCxmdCxIdCl7bGV0IEdlPVhlKEN0LGZ0KTtpZighR2UmJkh0JiZYZShIdCxmdCkmJihHZT17ZW51bWVyYWJsZToh''@;'; put 'put ''MCxjb25maWd1cmFibGU6ITB9KSwhR2V8fCFHZS5jb25maWd1cmFibGUpcmV0dXJuO2NvbnN0IFVlPU4oIm9uIitmdCsicGF0Y2hlZCIpO2lmKEN0Lmhhc093blByb3BlcnR5KFVlKSYmQ3RbVWVdKXJldHVybjtkZWxldGUgR2Uud3JpdGFibGUsZGVsZXRlIEdlLnZhbHVlO2NvbnN0IHl0PUdl''@;'; put 'put ''LmdldCxqdD1HZS5zZXQsSnQ9ZnQuc2xpY2UoMik7bGV0IGduPUllW0p0XTtnbnx8KGduPUllW0p0XT1OKCJPTl9QUk9QRVJUWSIrSnQpKSxHZS5zZXQ9ZnVuY3Rpb24oZG4pe2xldCB5bj10aGlzOyF5biYmQ3Q9PT1KJiYoeW49SikseW4mJigiZnVuY3Rpb24iPT10eXBlb2YgeW5bZ25dJiZ5''@;'; put 'put ''bi5yZW1vdmVFdmVudExpc3RlbmVyKEp0LFRlKSxqdCYmanQuY2FsbCh5bixudWxsKSx5bltnbl09ZG4sImZ1bmN0aW9uIj09dHlwZW9mIGRuJiZ5bi5hZGRFdmVudExpc3RlbmVyKEp0LFRlLCExKSl9LEdlLmdldD1mdW5jdGlvbigpe2xldCBkbj10aGlzO2lmKCFkbiYmQ3Q9PT1KJiYoZG49''@;'; put 'put ''SiksIWRuKXJldHVybiBudWxsO2NvbnN0IHluPWRuW2duXTtpZih5bilyZXR1cm4geW47aWYoeXQpe2xldCBsbj15dC5jYWxsKHRoaXMpO2lmKGxuKXJldHVybiBHZS5zZXQuY2FsbCh0aGlzLGxuKSwiZnVuY3Rpb24iPT10eXBlb2YgZG4ucmVtb3ZlQXR0cmlidXRlJiZkbi5yZW1vdmVBdHRy''@;'; put 'put ''aWJ1dGUoZnQpLGxufXJldHVybiBudWxsfSxKZShDdCxmdCxHZSksQ3RbVWVdPSEwfWZ1bmN0aW9uIGhlKEN0LGZ0LEh0KXtpZihmdClmb3IobGV0IEdlPTA7R2U8ZnQubGVuZ3RoO0dlKyspTWUoQ3QsIm9uIitmdFtHZV0sSHQpO2Vsc2V7Y29uc3QgR2U9W107Zm9yKGNvbnN0IFVlIGluIEN0''@;'; put 'put ''KSJvbiI9PVVlLnNsaWNlKDAsMikmJkdlLnB1c2goVWUpO2ZvcihsZXQgVWU9MDtVZTxHZS5sZW5ndGg7VWUrKylNZShDdCxHZVtVZV0sSHQpfX1jb25zdCBPPU4oIm9yaWdpbmFsSW5zdGFuY2UiKTtmdW5jdGlvbiB6KEN0KXtjb25zdCBmdD1KW0N0XTtpZighZnQpcmV0dXJuO0pbTihDdCld''@;'; put 'put ''PWZ0LEpbQ3RdPWZ1bmN0aW9uKCl7Y29uc3QgVWU9b2UoYXJndW1lbnRzLEN0KTtzd2l0Y2goVWUubGVuZ3RoKXtjYXNlIDA6dGhpc1tPXT1uZXcgZnQ7YnJlYWs7Y2FzZSAxOnRoaXNbT109bmV3IGZ0KFVlWzBdKTticmVhaztjYXNlIDI6dGhpc1tPXT1uZXcgZnQoVWVbMF0sVWVbMV0pO2Jy''@;'; put 'put ''ZWFrO2Nhc2UgMzp0aGlzW09dPW5ldyBmdChVZVswXSxVZVsxXSxVZVsyXSk7YnJlYWs7Y2FzZSA0OnRoaXNbT109bmV3IGZ0KFVlWzBdLFVlWzFdLFVlWzJdLFVlWzNdKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiQXJnIGxpc3QgdG9vIGxvbmcuIil9fSx4KEpbQ3RdLGZ0KTtj''@;'; put 'put ''b25zdCBIdD1uZXcgZnQoZnVuY3Rpb24oKXt9KTtsZXQgR2U7Zm9yKEdlIGluIEh0KSJYTUxIdHRwUmVxdWVzdCI9PT1DdCYmInJlc3BvbnNlQmxvYiI9PT1HZXx8ZnVuY3Rpb24oVWUpeyJmdW5jdGlvbiI9PXR5cGVvZiBIdFtVZV0/SltDdF0ucHJvdG90eXBlW1VlXT1mdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiB0aGlzW09dW1VlXS5hcHBseSh0aGlzW09dLGFyZ3VtZW50cyl9OkplKEpbQ3RdLnByb3RvdHlwZSxVZSx7c2V0OmZ1bmN0aW9uKHl0KXsiZnVuY3Rpb24iPT10eXBlb2YgeXQ/KHRoaXNbT11bVWVdPVkoeXQsQ3QrIi4iK1VlKSx4KHRoaXNbT11bVWVdLHl0KSk6dGhpc1tPXVtVZV09''@;'; put 'put ''eXR9LGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW09dW1VlXX19KX0oR2UpO2ZvcihHZSBpbiBmdCkicHJvdG90eXBlIiE9PUdlJiZmdC5oYXNPd25Qcm9wZXJ0eShHZSkmJihKW0N0XVtHZV09ZnRbR2VdKX1mdW5jdGlvbiBlZShDdCxmdCxIdCl7bGV0IEdlPUN0O2Zvcig7R2UmJiFHZS5o''@;'; put 'put ''YXNPd25Qcm9wZXJ0eShmdCk7KUdlPUwoR2UpOyFHZSYmQ3RbZnRdJiYoR2U9Q3QpO2NvbnN0IFVlPU4oZnQpO2xldCB5dD1udWxsO2lmKEdlJiYoISh5dD1HZVtVZV0pfHwhR2UuaGFzT3duUHJvcGVydHkoVWUpKSYmKHl0PUdlW1VlXT1HZVtmdF0sZGUoR2UmJlhlKEdlLGZ0KSkpKXtjb25z''@;'; put 'put ''dCBKdD1IdCh5dCxVZSxmdCk7R2VbZnRdPWZ1bmN0aW9uKCl7cmV0dXJuIEp0KHRoaXMsYXJndW1lbnRzKX0seChHZVtmdF0seXQpfXJldHVybiB5dH1mdW5jdGlvbiBuZShDdCxmdCxIdCl7bGV0IEdlPW51bGw7ZnVuY3Rpb24gVWUoeXQpe2NvbnN0IGp0PXl0LmRhdGE7cmV0dXJuIGp0LmFy''@;'; put 'put ''Z3NbanQuY2JJZHhdPWZ1bmN0aW9uKCl7eXQuaW52b2tlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sR2UuYXBwbHkoanQudGFyZ2V0LGp0LmFyZ3MpLHl0fUdlPWVlKEN0LGZ0LHl0PT5mdW5jdGlvbihqdCxKdCl7Y29uc3QgZ249SHQoanQsSnQpO3JldHVybiBnbi5jYklkeD49MCYmImZ1bmN0''@;'; put 'put ''aW9uIj09dHlwZW9mIEp0W2duLmNiSWR4XT9XKGduLm5hbWUsSnRbZ24uY2JJZHhdLGduLFVlKTp5dC5hcHBseShqdCxKdCl9KX1mdW5jdGlvbiB4KEN0LGZ0KXtDdFtOKCJPcmlnaW5hbERlbGVnYXRlIildPWZ0fWxldCBQPSExLFY9ITE7ZnVuY3Rpb24gUygpe2lmKFApcmV0dXJuIFY7UD0h''@;'; put 'put ''MDt0cnl7Y29uc3QgQ3Q9Sy5uYXZpZ2F0b3IudXNlckFnZW50OygtMSE9PUN0LmluZGV4T2YoIk1TSUUgIil8fC0xIT09Q3QuaW5kZXhPZigiVHJpZGVudC8iKXx8LTEhPT1DdC5pbmRleE9mKCJFZGdlLyIpKSYmKFY9ITApfWNhdGNoKEN0KXt9cmV0dXJuIFZ9Wm9uZS5fX2xvYWRfcGF0Y2go''@;'; put 'put ''IlpvbmVBd2FyZVByb21pc2UiLChDdCxmdCxIdCk9Pntjb25zdCBHZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFVlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxqdD1IdC5zeW1ib2wsSnQ9W10sZ249ITA9PT1DdFtqdCgiRElTQUJMRV9XUkFQUElOR19VTkNBVUdIVF9QUk9NSVNF''@;'; put 'put ''X1JFSkVDVElPTiIpXSxkbj1qdCgiUHJvbWlzZSIpLHluPWp0KCJ0aGVuIik7SHQub25VbmhhbmRsZWRFcnJvcj1lbj0+e2lmKEh0LnNob3dVbmNhdWdodEVycm9yKCkpe2NvbnN0IEluPWVuJiZlbi5yZWplY3Rpb247SW4/Y29uc29sZS5lcnJvcigiVW5oYW5kbGVkIFByb21pc2UgcmVqZWN0''@;'; put 'put ''aW9uOiIsSW4gaW5zdGFuY2VvZiBFcnJvcj9Jbi5tZXNzYWdlOkluLCI7IFpvbmU6Iixlbi56b25lLm5hbWUsIjsgVGFzazoiLGVuLnRhc2smJmVuLnRhc2suc291cmNlLCI7IFZhbHVlOiIsSW4sSW4gaW5zdGFuY2VvZiBFcnJvcj9Jbi5zdGFjazp2b2lkIDApOmNvbnNvbGUuZXJyb3IoZW4p''@;'; put 'put ''fX0sSHQubWljcm90YXNrRHJhaW5Eb25lPSgpPT57Zm9yKDtKdC5sZW5ndGg7KXtjb25zdCBlbj1KdC5zaGlmdCgpO3RyeXtlbi56b25lLnJ1bkd1YXJkZWQoKCk9Pnt0aHJvdyBlbi50aHJvd09yaWdpbmFsP2VuLnJlamVjdGlvbjplbn0pfWNhdGNoKEluKXtibihJbil9fX07Y29uc3QgTm49''@;'; put 'put ''anQoInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIik7ZnVuY3Rpb24gYm4oZW4pe0h0Lm9uVW5oYW5kbGVkRXJyb3IoZW4pO3RyeXtjb25zdCBJbj1mdFtObl07ImZ1bmN0aW9uIj09dHlwZW9mIEluJiZJbi5jYWxsKHRoaXMsZW4pfWNhdGNoKEluKXt9fWZ1bmN0aW9uIGVyKGVu''@;'; put 'put ''KXtyZXR1cm4gZW4mJmVuLnRoZW59ZnVuY3Rpb24gc3IoZW4pe3JldHVybiBlbn1mdW5jdGlvbiBYbihlbil7cmV0dXJuIGNuLnJlamVjdChlbil9Y29uc3QgRnI9anQoInN0YXRlIikseHI9anQoInZhbHVlIikscXQ9anQoImZpbmFsbHkiKSxwcj1qdCgicGFyZW50UHJvbWlzZVZhbHVlIiks''@;'; put 'put ''bnI9anQoInBhcmVudFByb21pc2VTdGF0ZSIpLHFuPW51bGwscG49ITE7ZnVuY3Rpb24gTnQoZW4sSW4pe3JldHVybiBKbj0+e3RyeXt0bihlbixJbixKbil9Y2F0Y2gob3Ipe3RuKGVuLCExLG9yKX19fWNvbnN0IHNuPWZ1bmN0aW9uKCl7bGV0IGVuPSExO3JldHVybiBmdW5jdGlvbihKbil7''@;'; put 'put ''cmV0dXJuIGZ1bmN0aW9uKCl7ZW58fChlbj0hMCxKbi5hcHBseShudWxsLGFyZ3VtZW50cykpfX19LHduPWp0KCJjdXJyZW50VGFza1RyYWNlIik7ZnVuY3Rpb24gdG4oZW4sSW4sSm4pe2NvbnN0IG9yPXNuKCk7aWYoZW49PT1Kbil0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm9taXNlIHJlc29s''@;'; put 'put ''dmVkIHdpdGggaXRzZWxmIik7aWYoZW5bRnJdPT09cW4pe2xldCBncj1udWxsO3RyeXsoIm9iamVjdCI9PXR5cGVvZiBKbnx8ImZ1bmN0aW9uIj09dHlwZW9mIEpuKSYmKGdyPUpuJiZKbi50aGVuKX1jYXRjaChLcil7cmV0dXJuIG9yKCgpPT57dG4oZW4sITEsS3IpfSkoKSxlbn1pZihJbiE9''@;'; put 'put ''PXBuJiZKbiBpbnN0YW5jZW9mIGNuJiZKbi5oYXNPd25Qcm9wZXJ0eShGcikmJkpuLmhhc093blByb3BlcnR5KHhyKSYmSm5bRnJdIT09cW4pVHIoSm4pLHRuKGVuLEpuW0ZyXSxKblt4cl0pO2Vsc2UgaWYoSW4hPT1wbiYmImZ1bmN0aW9uIj09dHlwZW9mIGdyKXRyeXtnci5jYWxsKEpuLG9y''@;'; put 'put ''KE50KGVuLEluKSksb3IoTnQoZW4sITEpKSl9Y2F0Y2goS3Ipe29yKCgpPT57dG4oZW4sITEsS3IpfSkoKX1lbHNle2VuW0ZyXT1Jbjtjb25zdCBLcj1lblt4cl07aWYoZW5beHJdPUpuLGVuW3F0XT09PXF0JiYhMD09PUluJiYoZW5bRnJdPWVuW25yXSxlblt4cl09ZW5bcHJdKSxJbj09PXBu''@;'; put 'put ''JiZKbiBpbnN0YW5jZW9mIEVycm9yKXtjb25zdCBWcj1mdC5jdXJyZW50VGFzayYmZnQuY3VycmVudFRhc2suZGF0YSYmZnQuY3VycmVudFRhc2suZGF0YS5fX2NyZWF0aW9uVHJhY2VfXztWciYmVWUoSm4sd24se2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZh''@;'; put 'put ''bHVlOlZyfSl9Zm9yKGxldCBWcj0wO1ZyPEtyLmxlbmd0aDspQm4oZW4sS3JbVnIrK10sS3JbVnIrK10sS3JbVnIrK10sS3JbVnIrK10pO2lmKDA9PUtyLmxlbmd0aCYmSW49PXBuKXtlbltGcl09MDtsZXQgVnI9Sm47dHJ5e3Rocm93IG5ldyBFcnJvcigiVW5jYXVnaHQgKGluIHByb21pc2Up''@;'; put 'put ''OiAiK2Z1bmN0aW9uIHl0KGVuKXtyZXR1cm4gZW4mJmVuLnRvU3RyaW5nPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZz8oZW4uY29uc3RydWN0b3ImJmVuLmNvbnN0cnVjdG9yLm5hbWV8fCIiKSsiOiAiK0pTT04uc3RyaW5naWZ5KGVuKTplbj9lbi50b1N0cmluZygpOk9iamVjdC5wcm90''@;'; put 'put ''b3R5cGUudG9TdHJpbmcuY2FsbChlbil9KEpuKSsoSm4mJkpuLnN0YWNrPyJcbiIrSm4uc3RhY2s6IiIpKX1jYXRjaChpaSl7VnI9aWl9Z24mJihWci50aHJvd09yaWdpbmFsPSEwKSxWci5yZWplY3Rpb249Sm4sVnIucHJvbWlzZT1lbixWci56b25lPWZ0LmN1cnJlbnQsVnIudGFzaz1mdC5j''@;'; put 'put ''dXJyZW50VGFzayxKdC5wdXNoKFZyKSxIdC5zY2hlZHVsZU1pY3JvVGFzaygpfX19cmV0dXJuIGVufWNvbnN0IHpuPWp0KCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpO2Z1bmN0aW9uIFRyKGVuKXtpZigwPT09ZW5bRnJdKXt0cnl7Y29uc3QgSW49ZnRbem5dO0luJiYiZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgSW4mJkluLmNhbGwodGhpcyx7cmVqZWN0aW9uOmVuW3hyXSxwcm9taXNlOmVufSl9Y2F0Y2goSW4pe31lbltGcl09cG47Zm9yKGxldCBJbj0wO0luPEp0Lmxlbmd0aDtJbisrKWVuPT09SnRbSW5dLnByb21pc2UmJkp0LnNwbGljZShJbiwxKX19ZnVuY3Rpb24gQm4oZW4sSW4sSm4s''@;'; put 'put ''b3IsZ3Ipe1RyKGVuKTtjb25zdCBLcj1lbltGcl0sVnI9S3I/ImZ1bmN0aW9uIj09dHlwZW9mIG9yP29yOnNyOiJmdW5jdGlvbiI9PXR5cGVvZiBncj9ncjpYbjtJbi5zY2hlZHVsZU1pY3JvVGFzaygiUHJvbWlzZS50aGVuIiwoKT0+e3RyeXtjb25zdCBpaT1lblt4cl0sUnI9ISFKbiYmcXQ9''@;'; put 'put ''PT1KbltxdF07UnImJihKbltwcl09aWksSm5bbnJdPUtyKTtjb25zdCBsaT1Jbi5ydW4oVnIsdm9pZCAwLFJyJiZWciE9PVhuJiZWciE9PXNyP1tdOltpaV0pO3RuKEpuLCEwLGxpKX1jYXRjaChpaSl7dG4oSm4sITEsaWkpfX0sSm4pfWNvbnN0IG1uPWZ1bmN0aW9uKCl7fSx1bj1DdC5BZ2dy''@;'; put 'put ''ZWdhdGVFcnJvcjtjbGFzcyBjbntzdGF0aWMgdG9TdHJpbmcoKXtyZXR1cm4iZnVuY3Rpb24gWm9uZUF3YXJlUHJvbWlzZSgpIHsgW25hdGl2ZSBjb2RlXSB9In1zdGF0aWMgcmVzb2x2ZShJbil7cmV0dXJuIHRuKG5ldyB0aGlzKG51bGwpLCEwLEluKX1zdGF0aWMgcmVqZWN0KEluKXtyZXR1''@;'; put 'put ''cm4gdG4obmV3IHRoaXMobnVsbCkscG4sSW4pfXN0YXRpYyBhbnkoSW4pe2lmKCFJbnx8ImZ1bmN0aW9uIiE9dHlwZW9mIEluW1N5bWJvbC5pdGVyYXRvcl0pcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyB1bihbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSk7Y29uc3QgSm49W107''@;'; put 'put ''bGV0IG9yPTA7dHJ5e2ZvcihsZXQgVnIgb2YgSW4pb3IrKyxKbi5wdXNoKGNuLnJlc29sdmUoVnIpKX1jYXRjaChWcil7cmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyB1bihbXSwiQWxsIHByb21pc2VzIHdlcmUgcmVqZWN0ZWQiKSl9aWYoMD09PW9yKXJldHVybiBQcm9taXNlLnJlamVjdChu''@;'; put 'put ''ZXcgdW4oW10sIkFsbCBwcm9taXNlcyB3ZXJlIHJlamVjdGVkIikpO2xldCBncj0hMTtjb25zdCBLcj1bXTtyZXR1cm4gbmV3IGNuKChWcixpaSk9Pntmb3IobGV0IFJyPTA7UnI8Sm4ubGVuZ3RoO1JyKyspSm5bUnJdLnRoZW4obGk9Pntncnx8KGdyPSEwLFZyKGxpKSl9LGxpPT57S3IucHVz''@;'; put 'put ''aChsaSksb3ItLSwwPT09b3ImJihncj0hMCxpaShuZXcgdW4oS3IsIkFsbCBwcm9taXNlcyB3ZXJlIHJlamVjdGVkIikpKX0pfSl9c3RhdGljIHJhY2UoSW4pe2xldCBKbixvcixncj1uZXcgdGhpcygoaWksUnIpPT57Sm49aWksb3I9UnJ9KTtmdW5jdGlvbiBLcihpaSl7Sm4oaWkpfWZ1bmN0''@;'; put 'put ''aW9uIFZyKGlpKXtvcihpaSl9Zm9yKGxldCBpaSBvZiBJbillcihpaSl8fChpaT10aGlzLnJlc29sdmUoaWkpKSxpaS50aGVuKEtyLFZyKTtyZXR1cm4gZ3J9c3RhdGljIGFsbChJbil7cmV0dXJuIGNuLmFsbFdpdGhDYWxsYmFjayhJbil9c3RhdGljIGFsbFNldHRsZWQoSW4pe3JldHVybih0''@;'; put 'put ''aGlzJiZ0aGlzLnByb3RvdHlwZSBpbnN0YW5jZW9mIGNuP3RoaXM6Y24pLmFsbFdpdGhDYWxsYmFjayhJbix7dGhlbkNhbGxiYWNrOm9yPT4oe3N0YXR1czoiZnVsZmlsbGVkIix2YWx1ZTpvcn0pLGVycm9yQ2FsbGJhY2s6b3I9Pih7c3RhdHVzOiJyZWplY3RlZCIscmVhc29uOm9yfSl9KX1z''@;'; put 'put ''dGF0aWMgYWxsV2l0aENhbGxiYWNrKEluLEpuKXtsZXQgb3IsZ3IsS3I9bmV3IHRoaXMoKGxpLE1pKT0+e29yPWxpLGdyPU1pfSksVnI9MixpaT0wO2NvbnN0IFJyPVtdO2ZvcihsZXQgbGkgb2YgSW4pe2VyKGxpKXx8KGxpPXRoaXMucmVzb2x2ZShsaSkpO2NvbnN0IE1pPWlpO3RyeXtsaS50''@;'; put 'put ''aGVuKG8wPT57UnJbTWldPUpuP0puLnRoZW5DYWxsYmFjayhvMCk6bzAsVnItLSwwPT09VnImJm9yKFJyKX0sbzA9PntKbj8oUnJbTWldPUpuLmVycm9yQ2FsbGJhY2sobzApLFZyLS0sMD09PVZyJiZvcihScikpOmdyKG8wKX0pfWNhdGNoKG8wKXtncihvMCl9VnIrKyxpaSsrfXJldHVybiBW''@;'; put 'put ''ci09MiwwPT09VnImJm9yKFJyKSxLcn1jb25zdHJ1Y3RvcihJbil7Y29uc3QgSm49dGhpcztpZighKEpuIGluc3RhbmNlb2YgY24pKXRocm93IG5ldyBFcnJvcigiTXVzdCBiZSBhbiBpbnN0YW5jZW9mIFByb21pc2UuIik7Sm5bRnJdPXFuLEpuW3hyXT1bXTt0cnl7Y29uc3Qgb3I9c24oKTtJ''@;'; put 'put ''biYmSW4ob3IoTnQoSm4sITApKSxvcihOdChKbixwbikpKX1jYXRjaChvcil7dG4oSm4sITEsb3IpfX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJQcm9taXNlIn1nZXRbU3ltYm9sLnNwZWNpZXNdKCl7cmV0dXJuIGNufXRoZW4oSW4sSm4pe3ZhciBvcjtsZXQgZ3I9bnVsbD09''@;'; put 'put ''PShvcj10aGlzLmNvbnN0cnVjdG9yKXx8dm9pZCAwPT09b3I/dm9pZCAwOm9yW1N5bWJvbC5zcGVjaWVzXTsoIWdyfHwiZnVuY3Rpb24iIT10eXBlb2YgZ3IpJiYoZ3I9dGhpcy5jb25zdHJ1Y3Rvcnx8Y24pO2NvbnN0IEtyPW5ldyBncihtbiksVnI9ZnQuY3VycmVudDtyZXR1cm4gdGhpc1tG''@;'; put 'put ''cl09PXFuP3RoaXNbeHJdLnB1c2goVnIsS3IsSW4sSm4pOkJuKHRoaXMsVnIsS3IsSW4sSm4pLEtyfWNhdGNoKEluKXtyZXR1cm4gdGhpcy50aGVuKG51bGwsSW4pfWZpbmFsbHkoSW4pe3ZhciBKbjtsZXQgb3I9bnVsbD09PShKbj10aGlzLmNvbnN0cnVjdG9yKXx8dm9pZCAwPT09Sm4/dm9p''@;'; put 'put ''ZCAwOkpuW1N5bWJvbC5zcGVjaWVzXTsoIW9yfHwiZnVuY3Rpb24iIT10eXBlb2Ygb3IpJiYob3I9Y24pO2NvbnN0IGdyPW5ldyBvcihtbik7Z3JbcXRdPXF0O2NvbnN0IEtyPWZ0LmN1cnJlbnQ7cmV0dXJuIHRoaXNbRnJdPT1xbj90aGlzW3hyXS5wdXNoKEtyLGdyLEluLEluKTpCbih0aGlz''@;'; put 'put ''LEtyLGdyLEluLEluKSxncn19Y24ucmVzb2x2ZT1jbi5yZXNvbHZlLGNuLnJlamVjdD1jbi5yZWplY3QsY24ucmFjZT1jbi5yYWNlLGNuLmFsbD1jbi5hbGw7Y29uc3QgX249Q3RbZG5dPUN0LlByb21pc2U7Q3QuUHJvbWlzZT1jbjtjb25zdCBHdD1qdCgidGhlblBhdGNoZWQiKTtmdW5jdGlv''@;'; put 'put ''biBrbihlbil7Y29uc3QgSW49ZW4ucHJvdG90eXBlLEpuPUdlKEluLCJ0aGVuIik7aWYoSm4mJighMT09PUpuLndyaXRhYmxlfHwhSm4uY29uZmlndXJhYmxlKSlyZXR1cm47Y29uc3Qgb3I9SW4udGhlbjtJblt5bl09b3IsZW4ucHJvdG90eXBlLnRoZW49ZnVuY3Rpb24oZ3IsS3Ipe3JldHVy''@;'; put 'put ''biBuZXcgY24oKGlpLFJyKT0+e29yLmNhbGwodGhpcyxpaSxScil9KS50aGVuKGdyLEtyKX0sZW5bR3RdPSEwfXJldHVybiBIdC5wYXRjaFRoZW49a24sX24mJihrbihfbiksZWUoQ3QsImZldGNoIixlbj0+ZnVuY3Rpb24gVm4oZW4pe3JldHVybiBmdW5jdGlvbihJbixKbil7bGV0IG9yPWVu''@;'; put 'put ''LmFwcGx5KEluLEpuKTtpZihvciBpbnN0YW5jZW9mIGNuKXJldHVybiBvcjtsZXQgZ3I9b3IuY29uc3RydWN0b3I7cmV0dXJuIGdyW0d0XXx8a24oZ3IpLG9yfX0oZW4pKSksUHJvbWlzZVtmdC5fX3N5bWJvbF9fKCJ1bmNhdWdodFByb21pc2VFcnJvcnMiKV09SnQsY259KSxab25lLl9fbG9h''@;'; put 'put ''ZF9wYXRjaCgidG9TdHJpbmciLEN0PT57Y29uc3QgZnQ9RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nLEh0PU4oIk9yaWdpbmFsRGVsZWdhdGUiKSxHZT1OKCJQcm9taXNlIiksVWU9TigiRXJyb3IiKSx5dD1mdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzKXtjb25zdCBk''@;'; put 'put ''bj10aGlzW0h0XTtpZihkbilyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZG4/ZnQuY2FsbChkbik6T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGRuKTtpZih0aGlzPT09UHJvbWlzZSl7Y29uc3QgeW49Q3RbR2VdO2lmKHluKXJldHVybiBmdC5jYWxsKHluKX1pZih0aGlzPT09RXJy''@;'; put 'put ''b3Ipe2NvbnN0IHluPUN0W1VlXTtpZih5bilyZXR1cm4gZnQuY2FsbCh5bil9fXJldHVybiBmdC5jYWxsKHRoaXMpfTt5dFtIdF09ZnQsRnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPXl0O2NvbnN0IGp0PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7T2JqZWN0LnByb3RvdHlwZS50b1N0''@;'; put 'put ''cmluZz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBQcm9taXNlJiZ0aGlzIGluc3RhbmNlb2YgUHJvbWlzZT8iW29iamVjdCBQcm9taXNlXSI6anQuY2FsbCh0aGlzKX19KTtsZXQgRj0hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyl0cnl7Y29uc3QgQ3Q9T2Jq''@;'; put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KHt9LCJwYXNzaXZlIix7Z2V0OmZ1bmN0aW9uKCl7Rj0hMH19KTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigidGVzdCIsQ3QsQ3QpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixDdCxDdCl9Y2F0Y2goQ3Qpe0Y9ITF9Y29uc3QgeWU9e3VzZUc6''@;'; put 'put ''ITB9LENlPXt9LERlPXt9LFBlPW5ldyBSZWdFeHAoIl4iK2FlKyIoXFx3KykodHJ1ZXxmYWxzZSkkIiksUWU9TigicHJvcGFnYXRpb25TdG9wcGVkIik7ZnVuY3Rpb24gJGUoQ3QsZnQpe2NvbnN0IEh0PShmdD9mdChDdCk6Q3QpK3JlLEdlPShmdD9mdChDdCk6Q3QpK2osVWU9YWUrSHQseXQ9''@;'; put 'put ''YWUrR2U7Q2VbQ3RdPXt9LENlW0N0XVtyZV09VWUsQ2VbQ3RdW2pdPXl0fWZ1bmN0aW9uIGd0KEN0LGZ0LEh0LEdlKXtjb25zdCBVZT1HZSYmR2UuYWRkfHxFLHl0PUdlJiZHZS5ybXx8RWUsanQ9R2UmJkdlLmxpc3RlbmVyc3x8ImV2ZW50TGlzdGVuZXJzIixKdD1HZSYmR2Uucm1BbGx8fCJy''@;'; put 'put ''ZW1vdmVBbGxMaXN0ZW5lcnMiLGduPU4oVWUpLGRuPSIuIitVZSsiOiIsTm49ZnVuY3Rpb24oeHIscXQscHIpe2lmKHhyLmlzUmVtb3ZlZClyZXR1cm47Y29uc3QgbnI9eHIuY2FsbGJhY2s7bGV0IEFuOyJvYmplY3QiPT10eXBlb2YgbnImJm5yLmhhbmRsZUV2ZW50JiYoeHIuY2FsbGJhY2s9''@;'; put 'put ''V3Q9Pm5yLmhhbmRsZUV2ZW50KFd0KSx4ci5vcmlnaW5hbERlbGVnYXRlPW5yKTt0cnl7eHIuaW52b2tlKHhyLHF0LFtwcl0pfWNhdGNoKFd0KXtBbj1XdH1jb25zdCBxbj14ci5vcHRpb25zO3JldHVybiBxbiYmIm9iamVjdCI9PXR5cGVvZiBxbiYmcW4ub25jZSYmcXRbeXRdLmNhbGwocXQs''@;'; put 'put ''cHIudHlwZSx4ci5vcmlnaW5hbERlbGVnYXRlP3hyLm9yaWdpbmFsRGVsZWdhdGU6eHIuY2FsbGJhY2sscW4pLEFufTtmdW5jdGlvbiBibih4cixxdCxwcil7aWYoIShxdD1xdHx8Q3QuZXZlbnQpKXJldHVybjtjb25zdCBucj14cnx8cXQudGFyZ2V0fHxDdCxBbj1ucltDZVtxdC50eXBlXVtw''@;'; put 'put ''cj9qOnJlXV07aWYoQW4pe2NvbnN0IHFuPVtdO2lmKDE9PT1Bbi5sZW5ndGgpe2NvbnN0IFd0PU5uKEFuWzBdLG5yLHF0KTtXdCYmcW4ucHVzaChXdCl9ZWxzZXtjb25zdCBXdD1Bbi5zbGljZSgpO2ZvcihsZXQgcG49MDtwbjxXdC5sZW5ndGgmJighcXR8fCEwIT09cXRbUWVdKTtwbisrKXtj''@;'; put 'put ''b25zdCBLbj1ObihXdFtwbl0sbnIscXQpO0tuJiZxbi5wdXNoKEtuKX19aWYoMT09PXFuLmxlbmd0aCl0aHJvdyBxblswXTtmb3IobGV0IFd0PTA7V3Q8cW4ubGVuZ3RoO1d0Kyspe2NvbnN0IHBuPXFuW1d0XTtmdC5uYXRpdmVTY2hlZHVsZU1pY3JvVGFzaygoKT0+e3Rocm93IHBufSl9fX1j''@;'; put 'put ''b25zdCBlcj1mdW5jdGlvbih4cil7cmV0dXJuIGJuKHRoaXMseHIsITEpfSxzcj1mdW5jdGlvbih4cil7cmV0dXJuIGJuKHRoaXMseHIsITApfTtmdW5jdGlvbiBYbih4cixxdCl7aWYoIXhyKXJldHVybiExO2xldCBwcj0hMDtxdCYmdm9pZCAwIT09cXQudXNlRyYmKHByPXF0LnVzZUcpO2Nv''@;'; put 'put ''bnN0IG5yPXF0JiZxdC52aDtsZXQgQW49ITA7cXQmJnZvaWQgMCE9PXF0LmNoa0R1cCYmKEFuPXF0LmNoa0R1cCk7bGV0IHFuPSExO3F0JiZ2b2lkIDAhPT1xdC5ydCYmKHFuPXF0LnJ0KTtsZXQgV3Q9eHI7Zm9yKDtXdCYmIVd0Lmhhc093blByb3BlcnR5KFVlKTspV3Q9TChXdCk7aWYoIVd0''@;'; put 'put ''JiZ4cltVZV0mJihXdD14ciksIVd0fHxXdFtnbl0pcmV0dXJuITE7Y29uc3QgcG49cXQmJnF0LmV2ZW50TmFtZVRvU3RyaW5nLEtuPXt9LE50PVd0W2duXT1XdFtVZV0sc249V3RbTih5dCldPVd0W3l0XSxVbj1XdFtOKGp0KV09V3RbanRdLHduPVd0W04oSnQpXT1XdFtKdF07bGV0IHRuO2Z1''@;'; put 'put ''bmN0aW9uIHpuKEpuLG9yKXtyZXR1cm4hRiYmIm9iamVjdCI9PXR5cGVvZiBKbiYmSm4/ISFKbi5jYXB0dXJlOkYmJm9yPyJib29sZWFuIj09dHlwZW9mIEpuP3tjYXB0dXJlOkpuLHBhc3NpdmU6ITB9OkpuPyJvYmplY3QiPT10eXBlb2YgSm4mJiExIT09Sm4ucGFzc2l2ZT9PYmplY3QuYXNz''@;'; put 'put ''aWduKE9iamVjdC5hc3NpZ24oe30sSm4pLHtwYXNzaXZlOiEwfSk6Sm46e3Bhc3NpdmU6ITB9OkpufXF0JiZxdC5wcmVwZW5kJiYodG49V3RbTihxdC5wcmVwZW5kKV09V3RbcXQucHJlcGVuZF0pO2NvbnN0IGNuPXByP2Z1bmN0aW9uKEpuKXtpZighS24uaXNFeGlzdGluZylyZXR1cm4gTnQu''@;'; put 'put ''Y2FsbChLbi50YXJnZXQsS24uZXZlbnROYW1lLEtuLmNhcHR1cmU/c3I6ZXIsS24ub3B0aW9ucyl9OmZ1bmN0aW9uKEpuKXtyZXR1cm4gTnQuY2FsbChLbi50YXJnZXQsS24uZXZlbnROYW1lLEpuLmludm9rZSxLbi5vcHRpb25zKX0sX249cHI/ZnVuY3Rpb24oSm4pe2lmKCFKbi5pc1JlbW92''@;'; put 'put ''ZWQpe2NvbnN0IG9yPUNlW0puLmV2ZW50TmFtZV07bGV0IGdyO29yJiYoZ3I9b3JbSm4uY2FwdHVyZT9qOnJlXSk7Y29uc3QgS3I9Z3ImJkpuLnRhcmdldFtncl07aWYoS3IpZm9yKGxldCBWcj0wO1ZyPEtyLmxlbmd0aDtWcisrKWlmKEtyW1ZyXT09PUpuKXtLci5zcGxpY2UoVnIsMSksSm4u''@;'; put 'put ''aXNSZW1vdmVkPSEwLDA9PT1Lci5sZW5ndGgmJihKbi5hbGxSZW1vdmVkPSEwLEpuLnRhcmdldFtncl09bnVsbCk7YnJlYWt9fWlmKEpuLmFsbFJlbW92ZWQpcmV0dXJuIHNuLmNhbGwoSm4udGFyZ2V0LEpuLmV2ZW50TmFtZSxKbi5jYXB0dXJlP3NyOmVyLEpuLm9wdGlvbnMpfTpmdW5jdGlv''@;'; put 'put ''bihKbil7cmV0dXJuIHNuLmNhbGwoSm4udGFyZ2V0LEpuLmV2ZW50TmFtZSxKbi5pbnZva2UsSm4ub3B0aW9ucyl9LGtuPXF0JiZxdC5kaWZmP3F0LmRpZmY6ZnVuY3Rpb24oSm4sb3Ipe2NvbnN0IGdyPXR5cGVvZiBvcjtyZXR1cm4iZnVuY3Rpb24iPT09Z3ImJkpuLmNhbGxiYWNrPT09b3J8''@;'; put 'put ''fCJvYmplY3QiPT09Z3ImJkpuLm9yaWdpbmFsRGVsZWdhdGU9PT1vcn0sVm49Wm9uZVtOKCJVTlBBVENIRURfRVZFTlRTIildLGVuPUN0W04oIlBBU1NJVkVfRVZFTlRTIildLEluPWZ1bmN0aW9uKEpuLG9yLGdyLEtyLFZyPSExLGlpPSExKXtyZXR1cm4gZnVuY3Rpb24oKXtjb25zdCBScj10''@;'; put 'put ''aGlzfHxDdDtsZXQgbGk9YXJndW1lbnRzWzBdO3F0JiZxdC50cmFuc2ZlckV2ZW50TmFtZSYmKGxpPXF0LnRyYW5zZmVyRXZlbnROYW1lKGxpKSk7bGV0IE1pPWFyZ3VtZW50c1sxXTtpZighTWkpcmV0dXJuIEpuLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihBZSYmInVuY2F1Z2h0RXhjZXB0''@;'; put 'put ''aW9uIj09PWxpKXJldHVybiBKbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bGV0IG8wPSExO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBNaSl7aWYoIU1pLmhhbmRsZUV2ZW50KXJldHVybiBKbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bzA9ITB9aWYobnImJiFucihKbixNaSxScixhcmd1bWVudHMp''@;'; put 'put ''KXJldHVybjtjb25zdCBuMD1GJiYhIWVuJiYtMSE9PWVuLmluZGV4T2YobGkpLGQwPXpuKGFyZ3VtZW50c1syXSxuMCk7aWYoVm4pZm9yKGxldCBBaT0wO0FpPFZuLmxlbmd0aDtBaSsrKWlmKGxpPT09Vm5bQWldKXJldHVybiBuMD9Kbi5jYWxsKFJyLGxpLE1pLGQwKTpKbi5hcHBseSh0aGlz''@;'; put 'put ''LGFyZ3VtZW50cyk7Y29uc3QgbTA9ISFkMCYmKCJib29sZWFuIj09dHlwZW9mIGQwfHxkMC5jYXB0dXJlKSxHMD0hKCFkMHx8Im9iamVjdCIhPXR5cGVvZiBkMCkmJmQwLm9uY2UsRGk9Wm9uZS5jdXJyZW50O2xldCBXMD1DZVtsaV07VzB8fCgkZShsaSxwbiksVzA9Q2VbbGldKTtjb25zdCBF''@;'; put 'put ''bz1XMFttMD9qOnJlXTtsZXQgbGwscW89UnJbRW9dLGNhPSExO2lmKHFvKXtpZihjYT0hMCxBbilmb3IobGV0IEFpPTA7QWk8cW8ubGVuZ3RoO0FpKyspaWYoa24ocW9bQWldLE1pKSlyZXR1cm59ZWxzZSBxbz1ScltFb109W107Y29uc3QgUWk9UnIuY29uc3RydWN0b3IubmFtZSxNYT1EZVtR''@;'; put 'put ''aV07TWEmJihsbD1NYVtsaV0pLGxsfHwobGw9UWkrb3IrKHBuP3BuKGxpKTpsaSkpLEtuLm9wdGlvbnM9ZDAsRzAmJihLbi5vcHRpb25zLm9uY2U9ITEpLEtuLnRhcmdldD1ScixLbi5jYXB0dXJlPW0wLEtuLmV2ZW50TmFtZT1saSxLbi5pc0V4aXN0aW5nPWNhO2NvbnN0IG5sPXByP3llOnZv''@;'; put 'put ''aWQgMDtubCYmKG5sLnRhc2tEYXRhPUtuKTtjb25zdCBnbD1EaS5zY2hlZHVsZUV2ZW50VGFzayhsbCxNaSxubCxncixLcik7cmV0dXJuIEtuLnRhcmdldD1udWxsLG5sJiYobmwudGFza0RhdGE9bnVsbCksRzAmJihkMC5vbmNlPSEwKSwhRiYmImJvb2xlYW4iPT10eXBlb2YgZ2wub3B0aW9u''@;'; put 'put ''c3x8KGdsLm9wdGlvbnM9ZDApLGdsLnRhcmdldD1ScixnbC5jYXB0dXJlPW0wLGdsLmV2ZW50TmFtZT1saSxvMCYmKGdsLm9yaWdpbmFsRGVsZWdhdGU9TWkpLGlpP3FvLnVuc2hpZnQoZ2wpOnFvLnB1c2goZ2wpLFZyP1JyOnZvaWQgMH19O3JldHVybiBXdFtVZV09SW4oTnQsZG4sY24sX24s''@;'; put 'put ''cW4pLHRuJiYoV3QucHJlcGVuZExpc3RlbmVyPUluKHRuLCIucHJlcGVuZExpc3RlbmVyOiIsZnVuY3Rpb24oSm4pe3JldHVybiB0bi5jYWxsKEtuLnRhcmdldCxLbi5ldmVudE5hbWUsSm4uaW52b2tlLEtuLm9wdGlvbnMpfSxfbixxbiwhMCkpLFd0W3l0XT1mdW5jdGlvbigpe2NvbnN0IEpu''@;'; put 'put ''PXRoaXN8fEN0O2xldCBvcj1hcmd1bWVudHNbMF07cXQmJnF0LnRyYW5zZmVyRXZlbnROYW1lJiYob3I9cXQudHJhbnNmZXJFdmVudE5hbWUob3IpKTtjb25zdCBncj1hcmd1bWVudHNbMl0sS3I9ISFnciYmKCJib29sZWFuIj09dHlwZW9mIGdyfHxnci5jYXB0dXJlKSxWcj1hcmd1bWVudHNb''@;'; put 'put ''MV07aWYoIVZyKXJldHVybiBzbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7aWYobnImJiFucihzbixWcixKbixhcmd1bWVudHMpKXJldHVybjtjb25zdCBpaT1DZVtvcl07bGV0IFJyO2lpJiYoUnI9aWlbS3I/ajpyZV0pO2NvbnN0IGxpPVJyJiZKbltScl07aWYobGkpZm9yKGxldCBNaT0wO01p''@;'; put 'put ''PGxpLmxlbmd0aDtNaSsrKXtjb25zdCBvMD1saVtNaV07aWYoa24obzAsVnIpKXJldHVybiBsaS5zcGxpY2UoTWksMSksbzAuaXNSZW1vdmVkPSEwLDA9PT1saS5sZW5ndGgmJihvMC5hbGxSZW1vdmVkPSEwLEpuW1JyXT1udWxsLCJzdHJpbmciPT10eXBlb2Ygb3IpJiYoSm5bYWUrIk9OX1BS''@;'; put 'put ''T1BFUlRZIitvcl09bnVsbCksbzAuem9uZS5jYW5jZWxUYXNrKG8wKSxxbj9Kbjp2b2lkIDB9cmV0dXJuIHNuLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sV3RbanRdPWZ1bmN0aW9uKCl7Y29uc3QgSm49dGhpc3x8Q3Q7bGV0IG9yPWFyZ3VtZW50c1swXTtxdCYmcXQudHJhbnNmZXJFdmVudE5h''@;'; put 'put ''bWUmJihvcj1xdC50cmFuc2ZlckV2ZW50TmFtZShvcikpO2NvbnN0IGdyPVtdLEtyPXd0KEpuLHBuP3BuKG9yKTpvcik7Zm9yKGxldCBWcj0wO1ZyPEtyLmxlbmd0aDtWcisrKXtjb25zdCBpaT1LcltWcl07Z3IucHVzaChpaS5vcmlnaW5hbERlbGVnYXRlP2lpLm9yaWdpbmFsRGVsZWdhdGU6''@;'; put 'put ''aWkuY2FsbGJhY2spfXJldHVybiBncn0sV3RbSnRdPWZ1bmN0aW9uKCl7Y29uc3QgSm49dGhpc3x8Q3Q7bGV0IG9yPWFyZ3VtZW50c1swXTtpZihvcil7cXQmJnF0LnRyYW5zZmVyRXZlbnROYW1lJiYob3I9cXQudHJhbnNmZXJFdmVudE5hbWUob3IpKTtjb25zdCBncj1DZVtvcl07aWYoZ3Ip''@;'; put 'put ''e2NvbnN0IGlpPUpuW2dyW3JlXV0sUnI9Sm5bZ3Jbal1dO2lmKGlpKXtjb25zdCBsaT1paS5zbGljZSgpO2ZvcihsZXQgTWk9MDtNaTxsaS5sZW5ndGg7TWkrKyl7Y29uc3QgbzA9bGlbTWldO3RoaXNbeXRdLmNhbGwodGhpcyxvcixvMC5vcmlnaW5hbERlbGVnYXRlP28wLm9yaWdpbmFsRGVs''@;'; put 'put ''ZWdhdGU6bzAuY2FsbGJhY2ssbzAub3B0aW9ucyl9fWlmKFJyKXtjb25zdCBsaT1Sci5zbGljZSgpO2ZvcihsZXQgTWk9MDtNaTxsaS5sZW5ndGg7TWkrKyl7Y29uc3QgbzA9bGlbTWldO3RoaXNbeXRdLmNhbGwodGhpcyxvcixvMC5vcmlnaW5hbERlbGVnYXRlP28wLm9yaWdpbmFsRGVsZWdh''@;'; put 'put ''dGU6bzAuY2FsbGJhY2ssbzAub3B0aW9ucyl9fX19ZWxzZXtjb25zdCBncj1PYmplY3Qua2V5cyhKbik7Zm9yKGxldCBLcj0wO0tyPGdyLmxlbmd0aDtLcisrKXtjb25zdCBpaT1QZS5leGVjKGdyW0tyXSk7bGV0IFJyPWlpJiZpaVsxXTtSciYmInJlbW92ZUxpc3RlbmVyIiE9PVJyJiZ0aGlz''@;'; put 'put ''W0p0XS5jYWxsKHRoaXMsUnIpfXRoaXNbSnRdLmNhbGwodGhpcywicmVtb3ZlTGlzdGVuZXIiKX1pZihxbilyZXR1cm4gdGhpc30seChXdFtVZV0sTnQpLHgoV3RbeXRdLHNuKSx3biYmeChXdFtKdF0sd24pLFVuJiZ4KFd0W2p0XSxVbiksITB9bGV0IEZyPVtdO2ZvcihsZXQgeHI9MDt4cjxI''@;'; put 'put ''dC5sZW5ndGg7eHIrKylGclt4cl09WG4oSHRbeHJdLEdlKTtyZXR1cm4gRnJ9ZnVuY3Rpb24gd3QoQ3QsZnQpe2lmKCFmdCl7Y29uc3QgeXQ9W107Zm9yKGxldCBqdCBpbiBDdCl7Y29uc3QgSnQ9UGUuZXhlYyhqdCk7bGV0IGduPUp0JiZKdFsxXTtpZihnbiYmKCFmdHx8Z249PT1mdCkpe2Nv''@;'; put 'put ''bnN0IGRuPUN0W2p0XTtpZihkbilmb3IobGV0IHluPTA7eW48ZG4ubGVuZ3RoO3luKyspeXQucHVzaChkblt5bl0pfX1yZXR1cm4geXR9bGV0IEh0PUNlW2Z0XTtIdHx8KCRlKGZ0KSxIdD1DZVtmdF0pO2NvbnN0IEdlPUN0W0h0W3JlXV0sVWU9Q3RbSHRbal1dO3JldHVybiBHZT9VZT9HZS5j''@;'; put 'put ''b25jYXQoVWUpOkdlLnNsaWNlKCk6VWU/VWUuc2xpY2UoKTpbXX1mdW5jdGlvbiBtdChDdCxmdCl7Y29uc3QgSHQ9Q3QuRXZlbnQ7SHQmJkh0LnByb3RvdHlwZSYmZnQucGF0Y2hNZXRob2QoSHQucHJvdG90eXBlLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLEdlPT5mdW5jdGlvbihVZSx5''@;'; put 'put ''dCl7VWVbUWVdPSEwLEdlJiZHZS5hcHBseShVZSx5dCl9KX1mdW5jdGlvbiB2dChDdCxmdCxIdCxHZSxVZSl7Y29uc3QgeXQ9Wm9uZS5fX3N5bWJvbF9fKEdlKTtpZihmdFt5dF0pcmV0dXJuO2NvbnN0IGp0PWZ0W3l0XT1mdFtHZV07ZnRbR2VdPWZ1bmN0aW9uKEp0LGduLGRuKXtyZXR1cm4g''@;'; put 'put ''Z24mJmduLnByb3RvdHlwZSYmVWUuZm9yRWFjaChmdW5jdGlvbih5bil7Y29uc3QgbG49YCR7SHR9LiR7R2V9OjpgK3luLE5uPWduLnByb3RvdHlwZTt0cnl7aWYoTm4uaGFzT3duUHJvcGVydHkoeW4pKXtjb25zdCBibj1DdC5PYmplY3RHZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm4seW4p''@;'; put 'put ''O2JuJiZibi52YWx1ZT8oYm4udmFsdWU9Q3Qud3JhcFdpdGhDdXJyZW50Wm9uZShibi52YWx1ZSxsbiksQ3QuX3JlZGVmaW5lUHJvcGVydHkoZ24ucHJvdG90eXBlLHluLGJuKSk6Tm5beW5dJiYoTm5beW5dPUN0LndyYXBXaXRoQ3VycmVudFpvbmUoTm5beW5dLGxuKSl9ZWxzZSBOblt5bl0m''@;'; put 'put ''JihOblt5bl09Q3Qud3JhcFdpdGhDdXJyZW50Wm9uZShOblt5bl0sbG4pKX1jYXRjaChibil7fX0pLGp0LmNhbGwoZnQsSnQsZ24sZG4pfSxDdC5hdHRhY2hPcmlnaW5Ub1BhdGNoZWQoZnRbR2VdLGp0KX1mdW5jdGlvbiBBdChDdCxmdCxIdCl7aWYoIUh0fHwwPT09SHQubGVuZ3RoKXJldHVy''@;'; put 'put ''biBmdDtjb25zdCBHZT1IdC5maWx0ZXIoeXQ9Pnl0LnRhcmdldD09PUN0KTtpZighR2V8fDA9PT1HZS5sZW5ndGgpcmV0dXJuIGZ0O2NvbnN0IFVlPUdlWzBdLmlnbm9yZVByb3BlcnRpZXM7cmV0dXJuIGZ0LmZpbHRlcih5dD0+LTE9PT1VZS5pbmRleE9mKHl0KSl9ZnVuY3Rpb24gaHQoQ3Qs''@;'; put 'put ''ZnQsSHQsR2Upe0N0JiZoZShDdCxBdChDdCxmdCxIdCksR2UpfWZ1bmN0aW9uIEJ0KEN0KXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoQ3QpLmZpbHRlcihmdD0+ZnQuc3RhcnRzV2l0aCgib24iKSYmZnQubGVuZ3RoPjIpLm1hcChmdD0+ZnQuc3Vic3RyaW5nKDIpKX1ab25l''@;'; put 'put ''Ll9fbG9hZF9wYXRjaCgidXRpbCIsKEN0LGZ0LEh0KT0+e2NvbnN0IEdlPUJ0KEN0KTtIdC5wYXRjaE9uUHJvcGVydGllcz1oZSxIdC5wYXRjaE1ldGhvZD1lZSxIdC5iaW5kQXJndW1lbnRzPW9lLEh0LnBhdGNoTWFjcm9UYXNrPW5lO2NvbnN0IFVlPWZ0Ll9fc3ltYm9sX18oIkJMQUNLX0xJ''@;'; put 'put ''U1RFRF9FVkVOVFMiKSx5dD1mdC5fX3N5bWJvbF9fKCJVTlBBVENIRURfRVZFTlRTIik7Q3RbeXRdJiYoQ3RbVWVdPUN0W3l0XSksQ3RbVWVdJiYoZnRbVWVdPWZ0W3l0XT1DdFtVZV0pLEh0LnBhdGNoRXZlbnRQcm90b3R5cGU9bXQsSHQucGF0Y2hFdmVudFRhcmdldD1ndCxIdC5pc0lFT3JF''@;'; put 'put ''ZGdlPVMsSHQuT2JqZWN0RGVmaW5lUHJvcGVydHk9SmUsSHQuT2JqZWN0R2V0T3duUHJvcGVydHlEZXNjcmlwdG9yPVhlLEh0Lk9iamVjdENyZWF0ZT1tZSxIdC5BcnJheVNsaWNlPUIsSHQucGF0Y2hDbGFzcz16LEh0LndyYXBXaXRoQ3VycmVudFpvbmU9WSxIdC5maWx0ZXJQcm9wZXJ0aWVz''@;'; put 'put ''PUF0LEh0LmF0dGFjaE9yaWdpblRvUGF0Y2hlZD14LEh0Ll9yZWRlZmluZVByb3BlcnR5PU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxIdC5wYXRjaENhbGxiYWNrcz12dCxIdC5nZXRHbG9iYWxPYmplY3RzPSgpPT4oe2dsb2JhbFNvdXJjZXM6RGUsem9uZVN5bWJvbEV2ZW50TmFtZXM6Q2UsZXZl''@;'; put 'put ''bnROYW1lczpHZSxpc0Jyb3dzZXI6a2UsaXNNaXg6U2UsaXNOb2RlOkFlLFRSVUVfU1RSOmosRkFMU0VfU1RSOnJlLFpPTkVfU1lNQk9MX1BSRUZJWDphZSxBRERfRVZFTlRfTElTVEVORVJfU1RSOkUsUkVNT1ZFX0VWRU5UX0xJU1RFTkVSX1NUUjpFZX0pfSk7Y29uc3QgX3Q9Tigiem9uZVRh''@;'; put 'put ''c2siKTtmdW5jdGlvbiB0dChDdCxmdCxIdCxHZSl7bGV0IFVlPW51bGwseXQ9bnVsbDtIdCs9R2U7Y29uc3QganQ9e307ZnVuY3Rpb24gSnQoZG4pe2NvbnN0IHluPWRuLmRhdGE7cmV0dXJuIHluLmFyZ3NbMF09ZnVuY3Rpb24oKXtyZXR1cm4gZG4uaW52b2tlLmFwcGx5KHRoaXMsYXJndW1l''@;'; put 'put ''bnRzKX0seW4uaGFuZGxlSWQ9VWUuYXBwbHkoQ3QseW4uYXJncyksZG59ZnVuY3Rpb24gZ24oZG4pe3JldHVybiB5dC5jYWxsKEN0LGRuLmRhdGEuaGFuZGxlSWQpfVVlPWVlKEN0LGZ0Kz1HZSxkbj0+ZnVuY3Rpb24oeW4sbG4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBsblswXSl7Y29uc3Qg''@;'; put 'put ''Tm49e2lzUGVyaW9kaWM6IkludGVydmFsIj09PUdlLGRlbGF5OiJUaW1lb3V0Ij09PUdlfHwiSW50ZXJ2YWwiPT09R2U/bG5bMV18fDA6dm9pZCAwLGFyZ3M6bG59LGJuPWxuWzBdO2xuWzBdPWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBibi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9ZmluYWxseXtO''@;'; put 'put ''bi5pc1BlcmlvZGljfHwoIm51bWJlciI9PXR5cGVvZiBObi5oYW5kbGVJZD9kZWxldGUganRbTm4uaGFuZGxlSWRdOk5uLmhhbmRsZUlkJiYoTm4uaGFuZGxlSWRbX3RdPW51bGwpKX19O2NvbnN0IGVyPVcoZnQsbG5bMF0sTm4sSnQsZ24pO2lmKCFlcilyZXR1cm4gZXI7Y29uc3Qgc3I9ZXIu''@;'; put 'put ''ZGF0YS5oYW5kbGVJZDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHNyP2p0W3NyXT1lcjpzciYmKHNyW190XT1lciksc3ImJnNyLnJlZiYmc3IudW5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBzci5yZWYmJiJmdW5jdGlvbiI9PXR5cGVvZiBzci51bnJlZiYmKGVyLnJlZj1zci5yZWYuYmluZChz''@;'; put 'put ''ciksZXIudW5yZWY9c3IudW5yZWYuYmluZChzcikpLCJudW1iZXIiPT10eXBlb2Ygc3J8fHNyP3NyOmVyfXJldHVybiBkbi5hcHBseShDdCxsbil9KSx5dD1lZShDdCxIdCxkbj0+ZnVuY3Rpb24oeW4sbG4pe2NvbnN0IE5uPWxuWzBdO2xldCBibjsibnVtYmVyIj09dHlwZW9mIE5uP2JuPWp0''@;'; put 'put ''W05uXTooYm49Tm4mJk5uW190XSxibnx8KGJuPU5uKSksYm4mJiJzdHJpbmciPT10eXBlb2YgYm4udHlwZT8ibm90U2NoZWR1bGVkIiE9PWJuLnN0YXRlJiYoYm4uY2FuY2VsRm4mJmJuLmRhdGEuaXNQZXJpb2RpY3x8MD09PWJuLnJ1bkNvdW50KSYmKCJudW1iZXIiPT10eXBlb2YgTm4/ZGVs''@;'; put 'put ''ZXRlIGp0W05uXTpObiYmKE5uW190XT1udWxsKSxibi56b25lLmNhbmNlbFRhc2soYm4pKTpkbi5hcHBseShDdCxsbil9KX1ab25lLl9fbG9hZF9wYXRjaCgibGVnYWN5IixDdD0+e2NvbnN0IGZ0PUN0W1pvbmUuX19zeW1ib2xfXygibGVnYWN5UGF0Y2giKV07ZnQmJmZ0KCl9KSxab25lLl9f''@;'; put 'put ''bG9hZF9wYXRjaCgicXVldWVNaWNyb3Rhc2siLChDdCxmdCxIdCk9PntIdC5wYXRjaE1ldGhvZChDdCwicXVldWVNaWNyb3Rhc2siLEdlPT5mdW5jdGlvbihVZSx5dCl7ZnQuY3VycmVudC5zY2hlZHVsZU1pY3JvVGFzaygicXVldWVNaWNyb3Rhc2siLHl0WzBdKX0pfSksWm9uZS5fX2xvYWRf''@;'; put 'put ''cGF0Y2goInRpbWVycyIsQ3Q9Pntjb25zdCBIdD0iY2xlYXIiO3R0KEN0LCJzZXQiLEh0LCJUaW1lb3V0IiksdHQoQ3QsInNldCIsSHQsIkludGVydmFsIiksdHQoQ3QsInNldCIsSHQsIkltbWVkaWF0ZSIpfSksWm9uZS5fX2xvYWRfcGF0Y2goInJlcXVlc3RBbmltYXRpb25GcmFtZSIsQ3Q9''@;'; put 'put ''Pnt0dChDdCwicmVxdWVzdCIsImNhbmNlbCIsIkFuaW1hdGlvbkZyYW1lIiksdHQoQ3QsIm1velJlcXVlc3QiLCJtb3pDYW5jZWwiLCJBbmltYXRpb25GcmFtZSIpLHR0KEN0LCJ3ZWJraXRSZXF1ZXN0Iiwid2Via2l0Q2FuY2VsIiwiQW5pbWF0aW9uRnJhbWUiKX0pLFpvbmUuX19sb2FkX3Bh''@;'; put 'put ''dGNoKCJibG9ja2luZyIsKEN0LGZ0KT0+e2NvbnN0IEh0PVsiYWxlcnQiLCJwcm9tcHQiLCJjb25maXJtIl07Zm9yKGxldCBHZT0wO0dlPEh0Lmxlbmd0aDtHZSsrKWVlKEN0LEh0W0dlXSwoeXQsanQsSnQpPT5mdW5jdGlvbihnbixkbil7cmV0dXJuIGZ0LmN1cnJlbnQucnVuKHl0LEN0LGRu''@;'; put 'put ''LEp0KX0pfSksWm9uZS5fX2xvYWRfcGF0Y2goIkV2ZW50VGFyZ2V0IiwoQ3QsZnQsSHQpPT57KGZ1bmN0aW9uIEx0KEN0LGZ0KXtmdC5wYXRjaEV2ZW50UHJvdG90eXBlKEN0LGZ0KX0pKEN0LEh0KSxmdW5jdGlvbiBsdChDdCxmdCl7aWYoWm9uZVtmdC5zeW1ib2woInBhdGNoRXZlbnRUYXJn''@;'; put 'put ''ZXQiKV0pcmV0dXJuO2NvbnN0e2V2ZW50TmFtZXM6SHQsem9uZVN5bWJvbEV2ZW50TmFtZXM6R2UsVFJVRV9TVFI6VWUsRkFMU0VfU1RSOnl0LFpPTkVfU1lNQk9MX1BSRUZJWDpqdH09ZnQuZ2V0R2xvYmFsT2JqZWN0cygpO2ZvcihsZXQgZ249MDtnbjxIdC5sZW5ndGg7Z24rKyl7Y29uc3Qg''@;'; put 'put ''ZG49SHRbZ25dLE5uPWp0Kyhkbit5dCksYm49anQrKGRuK1VlKTtHZVtkbl09e30sR2VbZG5dW3l0XT1ObixHZVtkbl1bVWVdPWJufWNvbnN0IEp0PUN0LkV2ZW50VGFyZ2V0O0p0JiZKdC5wcm90b3R5cGUmJmZ0LnBhdGNoRXZlbnRUYXJnZXQoQ3QsZnQsW0p0JiZKdC5wcm90b3R5cGVdKX0o''@;'; put 'put ''Q3QsSHQpO2NvbnN0IEdlPUN0LlhNTEh0dHBSZXF1ZXN0RXZlbnRUYXJnZXQ7R2UmJkdlLnByb3RvdHlwZSYmSHQucGF0Y2hFdmVudFRhcmdldChDdCxIdCxbR2UucHJvdG90eXBlXSl9KSxab25lLl9fbG9hZF9wYXRjaCgiTXV0YXRpb25PYnNlcnZlciIsKEN0LGZ0LEh0KT0+e3ooIk11dGF0''@;'; put 'put ''aW9uT2JzZXJ2ZXIiKSx6KCJXZWJLaXRNdXRhdGlvbk9ic2VydmVyIil9KSxab25lLl9fbG9hZF9wYXRjaCgiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLChDdCxmdCxIdCk9Pnt6KCJJbnRlcnNlY3Rpb25PYnNlcnZlciIpfSksWm9uZS5fX2xvYWRfcGF0Y2goIkZpbGVSZWFkZXIiLChDdCxmdCxI''@;'; put 'put ''dCk9Pnt6KCJGaWxlUmVhZGVyIil9KSxab25lLl9fbG9hZF9wYXRjaCgib25fcHJvcGVydHkiLChDdCxmdCxIdCk9PnshZnVuY3Rpb24gb24oQ3QsZnQpe2lmKEFlJiYhU2V8fFpvbmVbQ3Quc3ltYm9sKCJwYXRjaEV2ZW50cyIpXSlyZXR1cm47Y29uc3QgSHQ9ZnQuX19ab25lX2lnbm9yZV9v''@;'; put 'put ''bl9wcm9wZXJ0aWVzO2xldCBHZT1bXTtpZihrZSl7Y29uc3QgVWU9d2luZG93O0dlPUdlLmNvbmNhdChbIkRvY3VtZW50IiwiU1ZHRWxlbWVudCIsIkVsZW1lbnQiLCJIVE1MRWxlbWVudCIsIkhUTUxCb2R5RWxlbWVudCIsIkhUTUxNZWRpYUVsZW1lbnQiLCJIVE1MRnJhbWVTZXRFbGVtZW50''@;'; put 'put ''IiwiSFRNTEZyYW1lRWxlbWVudCIsIkhUTUxJRnJhbWVFbGVtZW50IiwiSFRNTE1hcnF1ZWVFbGVtZW50IiwiV29ya2VyIl0pO2NvbnN0IHl0PWZ1bmN0aW9uIFQoKXt0cnl7Y29uc3QgQ3Q9Sy5uYXZpZ2F0b3IudXNlckFnZW50O2lmKC0xIT09Q3QuaW5kZXhPZigiTVNJRSAiKXx8LTEhPT1D''@;'; put 'put ''dC5pbmRleE9mKCJUcmlkZW50LyIpKXJldHVybiEwfWNhdGNoKEN0KXt9cmV0dXJuITF9KCk/W3t0YXJnZXQ6VWUsaWdub3JlUHJvcGVydGllczpbImVycm9yIl19XTpbXTtodChVZSxCdChVZSksSHQmJkh0LmNvbmNhdCh5dCksTChVZSkpfUdlPUdlLmNvbmNhdChbIlhNTEh0dHBSZXF1ZXN0''@;'; put 'put ''IiwiWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldCIsIklEQkluZGV4IiwiSURCUmVxdWVzdCIsIklEQk9wZW5EQlJlcXVlc3QiLCJJREJEYXRhYmFzZSIsIklEQlRyYW5zYWN0aW9uIiwiSURCQ3Vyc29yIiwiV2ViU29ja2V0Il0pO2ZvcihsZXQgVWU9MDtVZTxHZS5sZW5ndGg7VWUrKyl7Y29u''@;'; put 'put ''c3QgeXQ9ZnRbR2VbVWVdXTt5dCYmeXQucHJvdG90eXBlJiZodCh5dC5wcm90b3R5cGUsQnQoeXQucHJvdG90eXBlKSxIdCl9fShIdCxDdCl9KSxab25lLl9fbG9hZF9wYXRjaCgiY3VzdG9tRWxlbWVudHMiLChDdCxmdCxIdCk9PnshZnVuY3Rpb24gZXQoQ3QsZnQpe2NvbnN0e2lzQnJvd3Nl''@;'; put 'put ''cjpIdCxpc01peDpHZX09ZnQuZ2V0R2xvYmFsT2JqZWN0cygpOyhIdHx8R2UpJiZDdC5jdXN0b21FbGVtZW50cyYmImN1c3RvbUVsZW1lbnRzImluIEN0JiZmdC5wYXRjaENhbGxiYWNrcyhmdCxDdC5jdXN0b21FbGVtZW50cywiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiLFsiY29ubmVjdGVk''@;'; put 'put ''Q2FsbGJhY2siLCJkaXNjb25uZWN0ZWRDYWxsYmFjayIsImFkb3B0ZWRDYWxsYmFjayIsImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayJdKX0oQ3QsSHQpfSksWm9uZS5fX2xvYWRfcGF0Y2goIlhIUiIsKEN0LGZ0KT0+eyFmdW5jdGlvbiBnbihkbil7Y29uc3QgeW49ZG4uWE1MSHR0cFJlcXVl''@;'; put 'put ''c3Q7aWYoIXluKXJldHVybjtjb25zdCBsbj15bi5wcm90b3R5cGU7bGV0IGJuPWxuW1VdLGVyPWxuW1FdO2lmKCFibil7Y29uc3QgS249ZG4uWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDtpZihLbil7Y29uc3QgTnQ9S24ucHJvdG90eXBlO2JuPU50W1VdLGVyPU50W1FdfX1jb25zdCBzcj0i''@;'; put 'put ''cmVhZHlzdGF0ZWNoYW5nZSIsWG49InNjaGVkdWxlZCI7ZnVuY3Rpb24gRnIoS24pe2NvbnN0IE50PUtuLmRhdGEsc249TnQudGFyZ2V0O3NuW3l0XT0hMSxzbltKdF09ITE7Y29uc3QgVW49c25bVWVdO2JufHwoYm49c25bVV0sZXI9c25bUV0pLFVuJiZlci5jYWxsKHNuLHNyLFVuKTtjb25z''@;'; put 'put ''dCB3bj1zbltVZV09KCk9PntpZihzbi5yZWFkeVN0YXRlPT09c24uRE9ORSlpZighTnQuYWJvcnRlZCYmc25beXRdJiZLbi5zdGF0ZT09PVhuKXtjb25zdCB6bj1zbltmdC5fX3N5bWJvbF9fKCJsb2FkZmFsc2UiKV07aWYoMCE9PXNuLnN0YXR1cyYmem4mJnpuLmxlbmd0aD4wKXtjb25zdCBU''@;'; put 'put ''cj1Lbi5pbnZva2U7S24uaW52b2tlPWZ1bmN0aW9uKCl7Y29uc3QgQm49c25bZnQuX19zeW1ib2xfXygibG9hZGZhbHNlIildO2ZvcihsZXQga3I9MDtrcjxCbi5sZW5ndGg7a3IrKylCbltrcl09PT1LbiYmQm4uc3BsaWNlKGtyLDEpOyFOdC5hYm9ydGVkJiZLbi5zdGF0ZT09PVhuJiZUci5j''@;'; put 'put ''YWxsKEtuKX0sem4ucHVzaChLbil9ZWxzZSBLbi5pbnZva2UoKX1lbHNlIU50LmFib3J0ZWQmJiExPT09c25beXRdJiYoc25bSnRdPSEwKX07cmV0dXJuIGJuLmNhbGwoc24sc3Isd24pLHNuW0h0XXx8KHNuW0h0XT1LbiksV3QuYXBwbHkoc24sTnQuYXJncyksc25beXRdPSEwLEtufWZ1bmN0''@;'; put 'put ''aW9uIHhyKCl7fWZ1bmN0aW9uIHF0KEtuKXtjb25zdCBOdD1Lbi5kYXRhO3JldHVybiBOdC5hYm9ydGVkPSEwLHBuLmFwcGx5KE50LnRhcmdldCxOdC5hcmdzKX1jb25zdCBwcj1lZShsbiwib3BlbiIsKCk9PmZ1bmN0aW9uKEtuLE50KXtyZXR1cm4gS25bR2VdPTA9PU50WzJdLEtuW2p0XT1O''@;'; put 'put ''dFsxXSxwci5hcHBseShLbixOdCl9KSxBbj1OKCJmZXRjaFRhc2tBYm9ydGluZyIpLHFuPU4oImZldGNoVGFza1NjaGVkdWxpbmciKSxXdD1lZShsbiwic2VuZCIsKCk9PmZ1bmN0aW9uKEtuLE50KXtpZighMD09PWZ0LmN1cnJlbnRbcW5dfHxLbltHZV0pcmV0dXJuIFd0LmFwcGx5KEtuLE50''@;'; put 'put ''KTt7Y29uc3Qgc249e3RhcmdldDpLbix1cmw6S25banRdLGlzUGVyaW9kaWM6ITEsYXJnczpOdCxhYm9ydGVkOiExfSxVbj1XKCJYTUxIdHRwUmVxdWVzdC5zZW5kIix4cixzbixGcixxdCk7S24mJiEwPT09S25bSnRdJiYhc24uYWJvcnRlZCYmVW4uc3RhdGU9PT1YbiYmVW4uaW52b2tlKCl9''@;'; put 'put ''fSkscG49ZWUobG4sImFib3J0IiwoKT0+ZnVuY3Rpb24oS24sTnQpe2NvbnN0IHNuPWZ1bmN0aW9uIE5uKEtuKXtyZXR1cm4gS25bSHRdfShLbik7aWYoc24mJiJzdHJpbmciPT10eXBlb2Ygc24udHlwZSl7aWYobnVsbD09c24uY2FuY2VsRm58fHNuLmRhdGEmJnNuLmRhdGEuYWJvcnRlZCly''@;'; put 'put ''ZXR1cm47c24uem9uZS5jYW5jZWxUYXNrKHNuKX1lbHNlIGlmKCEwPT09ZnQuY3VycmVudFtBbl0pcmV0dXJuIHBuLmFwcGx5KEtuLE50KX0pfShDdCk7Y29uc3QgSHQ9TigieGhyVGFzayIpLEdlPU4oInhoclN5bmMiKSxVZT1OKCJ4aHJMaXN0ZW5lciIpLHl0PU4oInhoclNjaGVkdWxlZCIp''@;'; put 'put ''LGp0PU4oInhoclVSTCIpLEp0PU4oInhockVycm9yQmVmb3JlU2NoZWR1bGVkIil9KSxab25lLl9fbG9hZF9wYXRjaCgiZ2VvbG9jYXRpb24iLEN0PT57Q3QubmF2aWdhdG9yJiZDdC5uYXZpZ2F0b3IuZ2VvbG9jYXRpb24mJmZ1bmN0aW9uIGNlKEN0LGZ0KXtjb25zdCBIdD1DdC5jb25zdHJ1''@;'; put 'put ''Y3Rvci5uYW1lO2ZvcihsZXQgR2U9MDtHZTxmdC5sZW5ndGg7R2UrKyl7Y29uc3QgVWU9ZnRbR2VdLHl0PUN0W1VlXTtpZih5dCl7aWYoIWRlKFhlKEN0LFVlKSkpY29udGludWU7Q3RbVWVdPShKdD0+e2NvbnN0IGduPWZ1bmN0aW9uKCl7cmV0dXJuIEp0LmFwcGx5KHRoaXMsb2UoYXJndW1l''@;'; put 'put ''bnRzLEh0KyIuIitVZSkpfTtyZXR1cm4geChnbixKdCksZ259KSh5dCl9fX0oQ3QubmF2aWdhdG9yLmdlb2xvY2F0aW9uLFsiZ2V0Q3VycmVudFBvc2l0aW9uIiwid2F0Y2hQb3NpdGlvbiJdKX0pLFpvbmUuX19sb2FkX3BhdGNoKCJQcm9taXNlUmVqZWN0aW9uRXZlbnQiLChDdCxmdCk9Pntm''@;'; put 'put ''dW5jdGlvbiBIdChHZSl7cmV0dXJuIGZ1bmN0aW9uKFVlKXt3dChDdCxHZSkuZm9yRWFjaChqdD0+e2NvbnN0IEp0PUN0LlByb21pc2VSZWplY3Rpb25FdmVudDtpZihKdCl7Y29uc3QgZ249bmV3IEp0KEdlLHtwcm9taXNlOlVlLnByb21pc2UscmVhc29uOlVlLnJlamVjdGlvbn0pO2p0Lmlu''@;'; put 'put ''dm9rZShnbil9fSl9fUN0LlByb21pc2VSZWplY3Rpb25FdmVudCYmKGZ0W04oInVuaGFuZGxlZFByb21pc2VSZWplY3Rpb25IYW5kbGVyIildPUh0KCJ1bmhhbmRsZWRyZWplY3Rpb24iKSxmdFtOKCJyZWplY3Rpb25IYW5kbGVkSGFuZGxlciIpXT1IdCgicmVqZWN0aW9uaGFuZGxlZCIpKX0p''@;'; put 'put ''fSw1NDI2MTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7Y29uc3QgbWU9TCgxMjAzMCk7SW50bC5EYXRlVGltZUZvcm1hdC5wcm90b3R5cGUuZm9ybWF0VG9QYXJ0cz1mdW5jdGlvbihkZSl7bGV0IHZlPXRoaXMucmVzb2x2ZWRPcHRpb25zKCksQWU9ZnVuY3Rpb24gY2UoZGUpe3ZhciBUZSxN''@;'; put 'put ''ZSxoZSxPLHosdmU9ZGUuYXZhaWxhYmxlRm9ybWF0cyxBZT1kZS50aW1lRm9ybWF0cyxrZT1kZS5kYXRlRm9ybWF0cyxTZT1kZS5tZWRpdW0sSWU9W10sZWU9W10sbmU9W107ZnVuY3Rpb24geChQLFYpe3ZhciBUPW5ldyBBcnJheSgoUC5tYXRjaCgvTS9nKXx8W10pLmxlbmd0aCsxKSxTPW5l''@;'; put 'put ''dyBBcnJheSgoUC5tYXRjaCgvRS9nKXx8W10pLmxlbmd0aCsxKTtyZXR1cm4gVC5sZW5ndGg+MiYmKFY9Vi5yZXBsYWNlKC8oTXxMKSsvLFQuam9pbigiJDEiKSkpLFMubGVuZ3RoPjImJihWPVYucmVwbGFjZSgvKFtFZWNdKSsvLFMuam9pbigiJDEiKSkpLFZ9Zm9yKFRlIGluIHZlKXZlLmhh''@;'; put 'put ''c093blByb3BlcnR5KFRlKSYmKChoZT1vZShNZT14KFRlLHZlW1RlXSkpKSYmKEllLnB1c2goaGUpLEooaGUpP25lLnB1c2goTWUpOnNlKGhlKSYmZWUucHVzaChNZSkpKTtmb3IoTz0wO088ZWUubGVuZ3RoO08rPTEpZm9yKHo9MDt6PG5lLmxlbmd0aDt6Kz0xKShoZT1vZShNZT1TZS5yZXBs''@;'; put 'put ''YWNlKCJ7MH0iLGVlW09dKS5yZXBsYWNlKCJ7MX0iLG5lW3pdKS5yZXBsYWNlKC9eWyxcc10rfFssXHNdKyQvZ2ksIiIpKSkmJkllLnB1c2goaGUpO2ZvcihUZSBpbiBBZSlBZS5oYXNPd25Qcm9wZXJ0eShUZSkmJigoaGU9b2UoTWU9eChUZSxBZVtUZV0pKSkmJkllLnB1c2goaGUpKTtmb3Io''@;'; put 'put ''VGUgaW4ga2Upa2UuaGFzT3duUHJvcGVydHkoVGUpJiYoKGhlPW9lKE1lPXgoVGUsa2VbVGVdKSkpJiZJZS5wdXNoKGhlKSk7cmV0dXJuIEllfShtZS5kYXRlLmZvcm1hdHMpLGtlPXt9O2Zvcih2YXIgU2UgaW4gUSlFLmNhbGwoUSxTZSkmJihrZVsiW1siK1NlKyJdXSJdPXZlW1NlXSk7bGV0''@;'; put 'put ''IFRlPWZ1bmN0aW9uIGooZGUsdmUsQWUpe2Zvcih2YXIgZWUsej0tMS8wLG5lPTAseD12ZS5sZW5ndGg7bmU8eDspe3ZhciBQPXZlW25lXSxWPTA7Zm9yKHZhciBUIGluIFEpaWYoRS5jYWxsKFEsVCkpe3ZhciBTPWRlWyJbWyIrVCsiXV0iXSxGPUUuY2FsbChQLFQpP1BbVF06dm9pZCAwO2lm''@;'; put 'put ''KHZvaWQgMD09PVMmJnZvaWQgMCE9PUYpVi09MjA7ZWxzZSBpZih2b2lkIDAhPT1TJiZ2b2lkIDA9PT1GKVYtPTEyMDtlbHNle3ZhciB5ZT1bIjItZGlnaXQiLCJudW1lcmljIiwibmFycm93Iiwic2hvcnQiLCJsb25nIl0sQ2U9RWUuY2FsbCh5ZSxTKSxEZT1FZS5jYWxsKHllLEYpLFBlPU1h''@;'; put 'put ''dGgubWF4KE1hdGgubWluKERlLUNlLDIpLC0yKTtBZSYmKCgibnVtZXJpYyI9PT1TfHwiMi1kaWdpdCI9PT1TKSYmIm51bWVyaWMiIT09RiYmIjItZGlnaXQiIT09Rnx8Im51bWVyaWMiIT09UyYmIjItZGlnaXQiIT09UyYmKCIyLWRpZ2l0Ij09PUZ8fCJudW1lcmljIj09PUYpKSYmKFYtPTgp''@;'; put 'put ''LDI9PT1QZT9WLT02OjE9PT1QZT9WLT0zOi0xPT09UGU/Vi09NjotMj09PVBlJiYoVi09OCl9fVY+eiYmKHo9VixlZT1QKSxuZSsrfXJldHVybiBlZX0oa2UsQWUpO3JldHVybiBmdW5jdGlvbiBCKGRlLHZlKXtpZighaXNGaW5pdGUodmUpKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbnZhbGlk''@;'; put 'put ''IHZhbGlkIGRhdGUgcGFzc2VkIHRvIGZvcm1hdFRvUGFydHMiKTtmb3IodmFyIGVlLEFlPSJlbi1VUyIsa2U9ZGUucGF0dGVybixUZT0obmV3IEludGwuTnVtYmVyRm9ybWF0KFtBZV0se3VzZUdyb3VwaW5nOiExfSksbmV3IEludGwuTnVtYmVyRm9ybWF0KFtBZV0se21pbmltdW1JbnRlZ2Vy''@;'; put 'put ''RGlnaXRzOjIsdXNlR3JvdXBpbmc6ITF9KSxmdW5jdGlvbiByZShkZSx2ZSxBZSl7dmFyIGtlPW5ldyBEYXRlKGRlKSxTZT0iZ2V0IisoQWV8fCIiKTtyZXR1cm57Iltbd2Vla2RheV1dIjprZVtTZSsiRGF5Il0oKSwiW1tlcmFdXSI6KyhrZVtTZSsiRnVsbFllYXIiXSgpPj0wKSwiW1t5ZWFy''@;'; put 'put ''XV0iOmtlW1NlKyJGdWxsWWVhciJdKCksIltbbW9udGhdXSI6a2VbU2UrIk1vbnRoIl0oKSwiW1tkYXldXSI6a2VbU2UrIkRhdGUiXSgpLCJbW2hvdXJdXSI6a2VbU2UrIkhvdXJzIl0oKSwiW1ttaW51dGVdXSI6a2VbU2UrIk1pbnV0ZXMiXSgpLCJbW3NlY29uZF1dIjprZVtTZSsiU2Vjb25k''@;'; put 'put ''cyJdKCksIltbaW5EU1RdXSI6ITF9fSh2ZSkpLE1lPSJncmVnb3J5IixoZT1tZS5kYXRlLmNhbGVuZGFycyxPPVtdLHo9L3soW159XSspfS9nLG5lPTA7bnVsbCE9PShlZT16LmV4ZWMoa2UpKTspe25lPGVlLmluZGV4JiZPLnB1c2goe3R5cGU6InNlcGFyYXRvciIsdmFsdWU6a2Uuc3Vic3Ry''@;'; put 'put ''KG5lLGVlLmluZGV4LW5lKX0pO3ZhciB4PWVlWzFdLFA9bnVsbDtpZihFLmNhbGwoZGUseCkpe3ZhciBWLFQ9ZGVbeF0sUz1UZVsiW1siK3grIl1dIl07aWYoInllYXIiPT09eCYmUzw9MD9TPTEtUzoibW9udGgiPT09eD9TKys6ImhvdXIiPT09eCYmITA9PT1kZVsiW1tob3VyMTJdXSJdJiYo''@;'; put 'put ''Vj0oUyU9MTIpIT09VGVbIltbIit4KyJdXSJdLDA9PT1TJiYhMD09PWRlWyJbW2hvdXJObzBdXSJdJiYoUz0xMikpLCJudW1lcmljIj09PVQpUD1TO2Vsc2UgaWYoIjItZGlnaXQiPT09VCkoUD1TKS5sZW5ndGg+MiYmKFA9UC5zbGljZSgtMikpO2Vsc2UgaWYoVCBpbiBVKXN3aXRjaCh4KXtj''@;'; put 'put ''YXNlIm1vbnRoIjpQPWFlKGhlLE1lLCJtb250aHMiLFQsVGVbIltbIit4KyJdXSJdKTticmVhaztjYXNlIndlZWtkYXkiOnRyeXtQPWFlKGhlLE1lLCJkYXlzIixULFRlWyJbWyIreCsiXV0iXSl9Y2F0Y2goRil7dGhyb3cgbmV3IEVycm9yKCJDb3VsZCBub3QgZmluZCB3ZWVrZGF5IGRhdGEg''@;'; put 'put ''Zm9yIGxvY2FsZSAiK0FlKX1icmVhaztjYXNlInRpbWVab25lTmFtZSI6UD0iIjticmVhaztkZWZhdWx0OlA9VGVbIltbIit4KyJdXSJdfX1lbHNlImFtcG0iPT09eCYmKFA9YWUoaGUsTWUsImRheVBlcmlvZHMiLFY/InBtIjoiYW0iKSk7bnVsbCE9PVAmJihPLnB1c2goe3R5cGU6ZWVbMV0s''@;'; put 'put ''dmFsdWU6UH0pLG5lPWVlLmluZGV4K2VlWzBdLmxlbmd0aCl9cmV0dXJuIG5lPGtlLmxlbmd0aCYmTy5wdXNoKHt0eXBlOiJzZXBhcmF0b3IiLHZhbHVlOmtlLnN1YnN0cihuZSl9KSxPfShUZSxkZSl9O3ZhciBFPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksRWU9QXJyYXkucHJv''@;'; put 'put ''dG90eXBlLmluZGV4T2YsVT1PYmplY3QuY3JlYXRlKG51bGwse25hcnJvdzp7fSxzaG9ydDp7fSxsb25nOnt9fSksUT17d2Vla2RheTpbIm5hcnJvdyIsInNob3J0IiwibG9uZyJdLGVyYTpbIm5hcnJvdyIsInNob3J0IiwibG9uZyJdLHllYXI6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLG1vbnRo''@;'; put 'put ''OlsiMi1kaWdpdCIsIm51bWVyaWMiLCJuYXJyb3ciLCJzaG9ydCIsImxvbmciXSxkYXk6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLGhvdXI6WyIyLWRpZ2l0IiwibnVtZXJpYyJdLG1pbnV0ZTpbIjItZGlnaXQiLCJudW1lcmljIl0sc2Vjb25kOlsiMi1kaWdpdCIsIm51bWVyaWMiXSx0aW1lWm9u''@;'; put 'put ''ZU5hbWU6WyJzaG9ydCIsImxvbmciXX07ZnVuY3Rpb24gYWUoZGUsdmUsQWUsa2UsU2Upe3ZhciBJZT1kZVt2ZV0mJmRlW3ZlXVtBZV0/ZGVbdmVdW0FlXTpkZS5ncmVnb3J5W0FlXSxUZT17bmFycm93Olsic2hvcnQiLCJsb25nIl0sc2hvcnQ6WyJsb25nIiwibmFycm93Il0sbG9uZzpbInNo''@;'; put 'put ''b3J0IiwibmFycm93Il19LE1lPUUuY2FsbChJZSxrZSk/SWVba2VdOkUuY2FsbChJZSxUZVtrZV1bMF0pP0llW1RlW2tlXVswXV06SWVbVGVba2VdWzFdXTtyZXR1cm4gbnVsbCE9U2U/TWVbU2VdOk1lfXZhciBZPS8oPzpbRWVjXXsxLDZ9fEd7MSw1fXwoPzpbeVl1XSt8VXsxLDV9KXxbTUxd''@;'; put 'put ''ezEsNX18ZHsxLDJ9fGF8W2hrSEtdezEsMn18bXsxLDJ9fHN7MSwyfXx6ezEsNH0pKD89KFteJ10qJ1teJ10qJykqW14nXSokKS9nLFc9L1tReFhWT3ZaQVNqZ0ZEd1dJUXFIXS8sTj17bW9udGg6WyJudW1lcmljIiwiMi1kaWdpdCIsInNob3J0IiwibG9uZyIsIm5hcnJvdyJdLHdlZWtkYXk6''@;'; put 'put ''WyJzaG9ydCIsInNob3J0Iiwic2hvcnQiLCJsb25nIiwibmFycm93Il0sZXJhOlsic2hvcnQiLCJzaG9ydCIsInNob3J0IiwibG9uZyIsIm5hcnJvdyJdfSx0ZT1bIndlZWtkYXkiLCJlcmEiLCJ5ZWFyIiwibW9udGgiLCJkYXkiXSxLPVsiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsInRpbWVa''@;'; put 'put ''b25lTmFtZSJdO2Z1bmN0aW9uIEooZGUpe2Zvcih2YXIgdmU9MDt2ZTxLLmxlbmd0aDt2ZSs9MSlpZihkZS5oYXNPd25Qcm9wZXJ0eShLW3ZlXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gc2UoZGUpe2Zvcih2YXIgdmU9MDt2ZTx0ZS5sZW5ndGg7dmUrPTEpaWYoZGUuaGFzT3duUHJv''@;'; put 'put ''cGVydHkodGVbdmVdKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBvZShkZSl7aWYoIVcudGVzdChkZSkpe3ZhciB2ZT17fTtyZXR1cm4gdmUucGF0dGVybj1kZS5yZXBsYWNlKFksZnVuY3Rpb24oQWUpe3N3aXRjaChBZS5jaGFyQXQoMCkpe2Nhc2UiRSI6Y2FzZSJlIjpjYXNlImMiOnJl''@;'; put 'put ''dHVybiB2ZS53ZWVrZGF5PU4ud2Vla2RheVtBZS5sZW5ndGgtMV0sInt3ZWVrZGF5fSI7Y2FzZSJHIjpyZXR1cm4gdmUuZXJhPU4uZXJhW0FlLmxlbmd0aC0xXSwie2VyYX0iO2Nhc2UieSI6Y2FzZSJZIjpjYXNlInUiOmNhc2UiVSI6cmV0dXJuIHZlLnllYXI9Mj09PUFlLmxlbmd0aD8iMi1k''@;'; put 'put ''aWdpdCI6Im51bWVyaWMiLCJ7eWVhcn0iO2Nhc2UiTSI6Y2FzZSJMIjpyZXR1cm4gdmUubW9udGg9Ti5tb250aFtBZS5sZW5ndGgtMV0sInttb250aH0iO2Nhc2UiZCI6cmV0dXJuIHZlLmRheT0yPT09QWUubGVuZ3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsIntkYXl9IjtjYXNlImEiOnJldHVy''@;'; put 'put ''biJ7YW1wbX0iO2Nhc2UiaCI6Y2FzZSJIIjpjYXNlImsiOmNhc2UiSyI6cmV0dXJuIHZlLmhvdXI9Mj09PUFlLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7aG91cn0iO2Nhc2UibSI6cmV0dXJuIHZlLm1pbnV0ZT0yPT09QWUubGVuZ3RoPyIyLWRpZ2l0IjoibnVtZXJpYyIsInttaW51''@;'; put 'put ''dGV9IjtjYXNlInMiOnJldHVybiB2ZS5zZWNvbmQ9Mj09PUFlLmxlbmd0aD8iMi1kaWdpdCI6Im51bWVyaWMiLCJ7c2Vjb25kfSI7Y2FzZSJ6IjpyZXR1cm4gdmUudGltZVpvbmVOYW1lPUFlLmxlbmd0aDw0PyJzaG9ydCI6ImxvbmciLCJ7dGltZVpvbmVOYW1lfSJ9fSksdmUucGF0dGVybj12''@;'; put 'put ''ZS5wYXR0ZXJuLnJlcGxhY2UoLycoW14nXSopJy9nLGZ1bmN0aW9uKEFlLGtlKXtyZXR1cm4ga2V8fCInIn0pLHZlLnBhdHRlcm4uaW5kZXhPZigie2FtcG19Iik+LTEmJih2ZS5ob3VyMTI9ITAsdmUucGF0dGVybjEyPXZlLnBhdHRlcm4sdmUucGF0dGVybj12ZS5wYXR0ZXJuLnJlcGxhY2Uo''@;'; put 'put ''InthbXBtfSIsIiIpLnJlcGxhY2UoL15bXHNcdUZFRkZceEEwXSt8W1xzXHVGRUZGXHhBMF0rJC9nLCIiKSksdmV9fX0sODI2OTE6KFhlLEplLEwpPT57TCgzOTExNSksTCgyMDc3NCksTCgzMDUyMiksTCg1ODI5NSksTCg4Nzg0MiksTCg1MDExMCksTCgyMDA3NSksTCgyNDMzNiksTCgxOTM3''@;'; put 'put ''MSksTCg5ODgzNyksTCgyNjc3MyksTCgxNTc0NSksTCgzMzA1NyksTCgzNzUwKSxMKDIzMzY5KSxMKDk5NTY0KSxMKDMyZTMpLEwoNDg5NzcpLEwoNTIzMTApLEwoOTQ4OTkpLEwoMzE4NDIpLEwoNTY5OTcpLEwoMjU2NDUpfSw3Njc3OihYZSxKZSxMKT0+e0woODE4MjIpLEwoMTk5NzcpLEwo''@;'; put 'put ''OTEwMzEpLEwoNDYzMzEpLEwoNDE1NjApLFhlLmV4cG9ydHM9RGF0ZX0sODg4MTM6KFhlLEplLEwpPT57TCgzOTczMCksTCg2MDU5KSxMKDQ4Mzc3KSxMKDI1NjQ1KX0sMTc4Nzg6KFhlLEplLEwpPT57TCg5NjI1MyksTCgzOTExNSksTCg5MTE4MSksTCg4ODQxNiksTCgyNTY0NSl9LDE2MzQz''@;'; put 'put ''OihYZSxKZSxMKT0+e0woNzY1MDMpLEwoNjY3ODYpLEwoNTA5MzIpLEwoNTc1MjYpLEwoMjE1OTEpLEwoOTA3MyksTCg4MDM0NyksTCgzMDU3OSksTCg0NjY5KSxMKDY3NzEwKSxMKDQ1Nzg5KSxMKDMzNTE0KSxMKDk5OTc4KSxMKDU4NDcyKSxMKDg2OTQ2KSxMKDM1MDY4KSxMKDQxMyksTCgy''@;'; put 'put ''NTY0NSl9LDYyMzE0OihYZSxKZSxMKT0+e0woMTEyNDYpLEwoMzA3MjYpLEwoMTkwMSksTCg3NTk3MiksTCg1MzQwMyksTCg5MjUxNiksTCg0OTM3MSksTCg4NjQ3OSksTCg5MTczNiksTCg1MTg4OSksTCg2NTE3NyksTCg4MTI0NiksTCgyNTY0NSl9LDc3NjU3OihYZSxKZSxMKT0+e0woOTU3''@;'; put 'put ''NjcpLEwoNjgxMzIpLEwoNDgzODgpLEwoMzc0NzApLEwoOTQ4ODIpLEwoNDE1MjApLEwoMjc0NzYpLEwoNzk2MjIpLEwoODkzNzUpLEwoNDM1MzMpLEwoODQ2NzIpLEwoNjQxNTcpLEwoMzUwOTUpLEwoNDk4OTIpLEwoNzUxMTUpLEwoOTkxNzYpLEwoNjg4MzgpLEwoOTYyNTMpLEwoMjU2NDUp''@;'; put 'put ''fSw1MTc3MTooWGUsSmUsTCk9PntMKDY0Mjk5KSxMKDI1NjQ1KX0sNTMxMDooWGUsSmUsTCk9PntMKDcxMDg0KSxMKDI1NjQ1KX0sNDM0OTk6KFhlLEplLEwpPT57TCgyMTU3MiksTCg4MjEzOSksTCgxMDY4NSksTCg4NTUzNSksTCgxNzM0NyksTCg4MzA0OSksTCg5NjYzMyksTCg2ODk4OSks''@;'; put 'put ''TCg3ODI3MCksTCg2NDUxMCksTCg3Mzk4NCksTCg3NTc2OSksTCg1MDA1NSksTCg5NjAxNCksTCgyNTY0NSl9LDI5MTMyOihYZSxKZSxMKT0+e0woODM5NDYpLEwoMTgyNjkpLEwoNjYxMDgpLEwoNzY3NzQpLEwoMjE0NjYpLEwoNTkzNTcpLEwoNzYxNDIpLEwoNTE4NzYpLEwoMjU2NDUpfSw1''@;'; put 'put ''MjI5ODooWGUsSmUsTCk9PntMKDk2MjUzKSxMKDM5MTE1KSxMKDkxMTgxKSxMKDk4MTg0KSxMKDI1NjQ1KX0sNjgxNDg6KFhlLEplLEwpPT57TCg1MDE5MSksTCg5ODMwNiksTCg2NDU2NCksTCgzOTExNSksTCgyOTUzOSksTCg5NjYyMCksTCg2Mjg1MCksTCgxMDgyMyksTCgxNzczMiksTCg0''@;'; put 'put ''MDg1NiksTCg4MDcwMyksTCg5MTUzOSksTCg1MjkyKSxMKDQ1MTc3KSxMKDczNjk0KSxMKDM3NjQ4KSxMKDI3Nzk1KSxMKDQ1MzEpLEwoMjM2MDUpLEwoNjc4MCksTCg2OTkzNyksTCgxMDUxMSksTCgyMTQ2NiksTCg1OTM1NyksTCg3NjE0MiksTCg1MTg3NiksTCgyNTY0NSl9LDQyNDQ6KFhl''@;'; put 'put ''LEplLEwpPT57TCg5NTc2NyksTCg5NjI1MyksTCgyNTY0NSl9LDY3Nzk1OihYZSxKZSxMKT0+e0woNTMzNjQpLEwoNTE0MzIpLEwoMjY1NjIpLEwoODQ0MTYpLEwoOTg2ODEpLEwoMzIyMTMpLEwoNjM0NzEpLEwoNDMyOSksTCgyNTE1OSksTCgyNTY0NSl9LDI0OTYzOlhlPT57WGUuZXhwb3J0''@;'; put 'put ''cz1mdW5jdGlvbihKZSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIEplKXRocm93IFR5cGVFcnJvcihKZSsiIGlzIG5vdCBhIGZ1bmN0aW9uISIpO3JldHVybiBKZX19LDgzMzY1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkyMDMyKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7aWYoIm51bWJlciIh''@;'; put 'put ''PXR5cGVvZiBCJiYiTnVtYmVyIiE9bWUoQikpdGhyb3cgVHlwZUVycm9yKEUpO3JldHVybitCfX0sMTc3MjI6KFhlLEplLEwpPT57dmFyIG1lPUwoODYzMTQpKCJ1bnNjb3BhYmxlcyIpLEI9QXJyYXkucHJvdG90eXBlO251bGw9PUJbbWVdJiZMKDg3NzI4KShCLG1lLHt9KSxYZS5leHBvcnRz''@;'; put 'put ''PWZ1bmN0aW9uKEUpe0JbbWVdW0VdPSEwfX0sNzY3OTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI0NDk2KSghMCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsRWUpe3JldHVybiBFKyhFZT9tZShCLEUpLmxlbmd0aDoxKX19LDgzMzI4OlhlPT57WGUuZXhwb3J0cz1mdW5j''@;'; put 'put ''dGlvbihKZSxMLG1lLEIpe2lmKCEoSmUgaW5zdGFuY2VvZiBMKXx8dm9pZCAwIT09QiYmQiBpbiBKZSl0aHJvdyBUeXBlRXJyb3IobWUrIjogaW5jb3JyZWN0IGludm9jYXRpb24hIik7cmV0dXJuIEplfX0sMjcwMDc6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpO1hlLmV4cG9ydHM9ZnVu''@;'; put 'put ''Y3Rpb24oQil7aWYoIW1lKEIpKXRocm93IFR5cGVFcnJvcihCKyIgaXMgbm90IGFuIG9iamVjdCEiKTtyZXR1cm4gQn19LDUyMTY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDIwNTA4KSxCPUwoOTIzMzcpLEU9TCgxMDg3NSk7WGUuZXhwb3J0cz1bXS5jb3B5V2l0aGlufHxm''@;'; put 'put ''dW5jdGlvbihVLFEpe3ZhciBqPW1lKHRoaXMpLHJlPUUoai5sZW5ndGgpLGFlPUIoVSxyZSksWT1CKFEscmUpLFc9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAsTj1NYXRoLm1pbigodm9pZCAwPT09Vz9yZTpCKFcscmUpKS1ZLHJlLWFlKSx0ZT0xO2ZvcihZPGFlJiZh''@;'; put 'put ''ZTxZK04mJih0ZT0tMSxZKz1OLTEsYWUrPU4tMSk7Ti0tID4wOylZIGluIGo/althZV09altZXTpkZWxldGUgalthZV0sYWUrPXRlLFkrPXRlO3JldHVybiBqfX0sNDY4NTI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDIwNTA4KSxCPUwoOTIzMzcpLEU9TCgxMDg3NSk7WGUu''@;'; put 'put ''ZXhwb3J0cz1mdW5jdGlvbihVKXtmb3IodmFyIFE9bWUodGhpcyksaj1FKFEubGVuZ3RoKSxyZT1hcmd1bWVudHMubGVuZ3RoLGFlPUIocmU+MT9hcmd1bWVudHNbMV06dm9pZCAwLGopLFk9cmU+Mj9hcmd1bWVudHNbMl06dm9pZCAwLFc9dm9pZCAwPT09WT9qOkIoWSxqKTtXPmFlOylRW2Fl''@;'; put 'put ''KytdPVU7cmV0dXJuIFF9fSw5NDkwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDM1MzEpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFKXt2YXIgRWU9W107cmV0dXJuIG1lKEIsITEsRWUucHVzaCxFZSxFKSxFZX19LDc5MzE1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIyMTEwKSxCPUwoMTA4NzUpLEU9''@;'; put 'put ''TCg5MjMzNyk7WGUuZXhwb3J0cz1mdW5jdGlvbihFZSl7cmV0dXJuIGZ1bmN0aW9uKFUsUSxqKXt2YXIgVyxyZT1tZShVKSxhZT1CKHJlLmxlbmd0aCksWT1FKGosYWUpO2lmKEVlJiZRIT1RKXtmb3IoO2FlPlk7KWlmKChXPXJlW1krK10pIT1XKXJldHVybiEwfWVsc2UgZm9yKDthZT5ZO1kr''@;'; put 'put ''KylpZigoRWV8fFkgaW4gcmUpJiZyZVtZXT09PVEpcmV0dXJuIEVlfHxZfHwwO3JldHVybiFFZSYmLTF9fX0sMTAwNTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNzQxKSxCPUwoNDk3OTcpLEU9TCgyMDUwOCksRWU9TCgxMDg3NSksVT1MKDE2ODg2KTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEsail7''@;'; put 'put ''dmFyIHJlPTE9PVEsYWU9Mj09USxZPTM9PVEsVz00PT1RLE49Nj09USx0ZT01PT1RfHxOLEs9anx8VTtyZXR1cm4gZnVuY3Rpb24oSixzZSxvZSl7Zm9yKHZhciBJZSxUZSxjZT1FKEopLGRlPUIoY2UpLHZlPW1lKHNlLG9lLDMpLEFlPUVlKGRlLmxlbmd0aCksa2U9MCxTZT1yZT9LKEosQWUp''@;'; put 'put ''OmFlP0soSiwwKTp2b2lkIDA7QWU+a2U7a2UrKylpZigodGV8fGtlIGluIGRlKSYmKFRlPXZlKEllPWRlW2tlXSxrZSxjZSksUSkpaWYocmUpU2Vba2VdPVRlO2Vsc2UgaWYoVGUpc3dpdGNoKFEpe2Nhc2UgMzpyZXR1cm4hMDtjYXNlIDU6cmV0dXJuIEllO2Nhc2UgNjpyZXR1cm4ga2U7Y2Fz''@;'; put 'put ''ZSAyOlNlLnB1c2goSWUpfWVsc2UgaWYoVylyZXR1cm4hMTtyZXR1cm4gTj8tMTpZfHxXP1c6U2V9fX0sMzc2Mjg6KFhlLEplLEwpPT57dmFyIG1lPUwoMjQ5NjMpLEI9TCgyMDUwOCksRT1MKDQ5Nzk3KSxFZT1MKDEwODc1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxqLHJlLGFlKXttZShR''@;'; put 'put ''KTt2YXIgWT1CKFUpLFc9RShZKSxOPUVlKFkubGVuZ3RoKSx0ZT1hZT9OLTE6MCxLPWFlPy0xOjE7aWYoajwyKWZvcig7Oyl7aWYodGUgaW4gVyl7cmU9V1t0ZV0sdGUrPUs7YnJlYWt9aWYodGUrPUssYWU/dGU8MDpOPD10ZSl0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJh''@;'; put 'put ''eSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1mb3IoO2FlP3RlPj0wOk4+dGU7dGUrPUspdGUgaW4gVyYmKHJlPVEocmUsV1t0ZV0sdGUsWSkpO3JldHVybiByZX19LDQyNzM2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KSxCPUwoNDMwMiksRT1MKDg2MzE0KSgic3BlY2llcyIpO1hlLmV4''@;'; put 'put ''cG9ydHM9ZnVuY3Rpb24oRWUpe3ZhciBVO3JldHVybiBCKEVlKSYmKCJmdW5jdGlvbiI9PXR5cGVvZihVPUVlLmNvbnN0cnVjdG9yKSYmKFU9PT1BcnJheXx8QihVLnByb3RvdHlwZSkpJiYoVT12b2lkIDApLG1lKFUpJiZudWxsPT09KFU9VVtFXSkmJihVPXZvaWQgMCkpLHZvaWQgMD09PVU/''@;'; put 'put ''QXJyYXk6VX19LDE2ODg2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyNzM2KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7cmV0dXJuIG5ldyhtZShCKSkoRSl9fSwzNDM5ODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjQ5NjMpLEI9TCg1NTI4NiksRT1MKDk3MjQyKSxFZT1b''@;'; put 'put ''XS5zbGljZSxVPXt9LFE9ZnVuY3Rpb24oaixyZSxhZSl7aWYoIShyZSBpbiBVKSl7Zm9yKHZhciBZPVtdLFc9MDtXPHJlO1crKylZW1ddPSJhWyIrVysiXSI7VVtyZV09RnVuY3Rpb24oIkYsYSIsInJldHVybiBuZXcgRigiK1kuam9pbigiLCIpKyIpIil9cmV0dXJuIFVbcmVdKGosYWUpfTtY''@;'; put 'put ''ZS5leHBvcnRzPUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9uKHJlKXt2YXIgYWU9bWUodGhpcyksWT1FZS5jYWxsKGFyZ3VtZW50cywxKSxXPWZ1bmN0aW9uKCl7dmFyIE49WS5jb25jYXQoRWUuY2FsbChhcmd1bWVudHMpKTtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFc/UShhZSxOLmxlbmd0aCxO''@;'; put 'put ''KTpFKGFlLE4scmUpfTtyZXR1cm4gQihhZS5wcm90b3R5cGUpJiYoVy5wcm90b3R5cGU9YWUucHJvdG90eXBlKSxXfX0sNDE0ODg6KFhlLEplLEwpPT57dmFyIG1lPUwoOTIwMzIpLEI9TCg4NjMxNCkoInRvU3RyaW5nVGFnIiksRT0iQXJndW1lbnRzIj09bWUoZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''YXJndW1lbnRzfSgpKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3ZhciBRLGoscmU7cmV0dXJuIHZvaWQgMD09PVU/IlVuZGVmaW5lZCI6bnVsbD09PVU/Ik51bGwiOiJzdHJpbmciPT10eXBlb2Yoaj1mdW5jdGlvbihVLFEpe3RyeXtyZXR1cm4gVVtRXX1jYXRjaChqKXt9fShRPU9iamVjdChV''@;'; put 'put ''KSxCKSk/ajpFP21lKFEpOiJPYmplY3QiPT0ocmU9bWUoUSkpJiYiZnVuY3Rpb24iPT10eXBlb2YgUS5jYWxsZWU/IkFyZ3VtZW50cyI6cmV9fSw5MjAzMjpYZT0+e3ZhciBKZT17fS50b1N0cmluZztYZS5leHBvcnRzPWZ1bmN0aW9uKEwpe3JldHVybiBKZS5jYWxsKEwpLnNsaWNlKDgsLTEp''@;'; put 'put ''fX0sOTgyNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoOTkyNzUpLmYsQj1MKDQyNTAzKSxFPUwoMjQ0MDgpLEVlPUwoNzQxKSxVPUwoODMzMjgpLFE9TCgzNTMxKSxqPUwoNDI5MjMpLHJlPUwoMTU0MzYpLGFlPUwoMjk3NCksWT1MKDY3MDU3KSxXPUwoODQ3MjgpLmZhc3RL''@;'; put 'put ''ZXksTj1MKDE2MTYpLHRlPVk/Il9zIjoic2l6ZSIsSz1mdW5jdGlvbihKLHNlKXt2YXIgY2Usb2U9VyhzZSk7aWYoIkYiIT09b2UpcmV0dXJuIEouX2lbb2VdO2ZvcihjZT1KLl9mO2NlO2NlPWNlLm4paWYoY2Uuaz09c2UpcmV0dXJuIGNlfTtYZS5leHBvcnRzPXtnZXRDb25zdHJ1Y3Rvcjpm''@;'; put 'put ''dW5jdGlvbihKLHNlLG9lLGNlKXt2YXIgZGU9SihmdW5jdGlvbih2ZSxBZSl7VSh2ZSxkZSxzZSwiX2kiKSx2ZS5fdD1zZSx2ZS5faT1CKG51bGwpLHZlLl9mPXZvaWQgMCx2ZS5fbD12b2lkIDAsdmVbdGVdPTAsbnVsbCE9QWUmJlEoQWUsb2UsdmVbY2VdLHZlKX0pO3JldHVybiBFKGRlLnBy''@;'; put 'put ''b3RvdHlwZSx7Y2xlYXI6ZnVuY3Rpb24oKXtmb3IodmFyIEFlPU4odGhpcyxzZSksa2U9QWUuX2ksU2U9QWUuX2Y7U2U7U2U9U2UubilTZS5yPSEwLFNlLnAmJihTZS5wPVNlLnAubj12b2lkIDApLGRlbGV0ZSBrZVtTZS5pXTtBZS5fZj1BZS5fbD12b2lkIDAsQWVbdGVdPTB9LGRlbGV0ZTpm''@;'; put 'put ''dW5jdGlvbih2ZSl7dmFyIEFlPU4odGhpcyxzZSksa2U9SyhBZSx2ZSk7aWYoa2Upe3ZhciBTZT1rZS5uLEllPWtlLnA7ZGVsZXRlIEFlLl9pW2tlLmldLGtlLnI9ITAsSWUmJihJZS5uPVNlKSxTZSYmKFNlLnA9SWUpLEFlLl9mPT1rZSYmKEFlLl9mPVNlKSxBZS5fbD09a2UmJihBZS5fbD1J''@;'; put 'put ''ZSksQWVbdGVdLS19cmV0dXJuISFrZX0sZm9yRWFjaDpmdW5jdGlvbihBZSl7Tih0aGlzLHNlKTtmb3IodmFyIFNlLGtlPUVlKEFlLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLDMpO1NlPVNlP1NlLm46dGhpcy5fZjspZm9yKGtlKFNlLnYsU2Uuayx0aGlzKTtTZSYm''@;'; put 'put ''U2UucjspU2U9U2UucH0saGFzOmZ1bmN0aW9uKEFlKXtyZXR1cm4hIUsoTih0aGlzLHNlKSxBZSl9fSksWSYmbWUoZGUucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE4odGhpcyxzZSlbdGVdfX0pLGRlfSxkZWY6ZnVuY3Rpb24oSixzZSxvZSl7dmFyIGRlLHZlLGNl''@;'; put 'put ''PUsoSixzZSk7cmV0dXJuIGNlP2NlLnY9b2U6KEouX2w9Y2U9e2k6dmU9VyhzZSwhMCksazpzZSx2Om9lLHA6ZGU9Si5fbCxuOnZvaWQgMCxyOiExfSxKLl9mfHwoSi5fZj1jZSksZGUmJihkZS5uPWNlKSxKW3RlXSsrLCJGIiE9PXZlJiYoSi5faVt2ZV09Y2UpKSxKfSxnZXRFbnRyeTpLLHNl''@;'; put 'put ''dFN0cm9uZzpmdW5jdGlvbihKLHNlLG9lKXtqKEosc2UsZnVuY3Rpb24oY2UsZGUpe3RoaXMuX3Q9TihjZSxzZSksdGhpcy5faz1kZSx0aGlzLl9sPXZvaWQgMH0sZnVuY3Rpb24oKXtmb3IodmFyIGNlPXRoaXMsZGU9Y2UuX2ssdmU9Y2UuX2w7dmUmJnZlLnI7KXZlPXZlLnA7cmV0dXJuIGNl''@;'; put 'put ''Ll90JiYoY2UuX2w9dmU9dmU/dmUubjpjZS5fdC5fZik/cmUoMCwia2V5cyI9PWRlP3ZlLms6InZhbHVlcyI9PWRlP3ZlLnY6W3ZlLmssdmUudl0pOihjZS5fdD12b2lkIDAscmUoMSkpfSxvZT8iZW50cmllcyI6InZhbHVlcyIsIW9lLCEwKSxhZShzZSl9fX0sMjM2NTc6KFhlLEplLEwpPT57''@;'; put 'put ''InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI0NDA4KSxCPUwoODQ3MjgpLmdldFdlYWssRT1MKDI3MDA3KSxFZT1MKDU1Mjg2KSxVPUwoODMzMjgpLFE9TCgzNTMxKSxqPUwoMTAwNTApLHJlPUwoNzkxODEpLGFlPUwoMTYxNiksWT1qKDUpLFc9aig2KSxOPTAsdGU9ZnVuY3Rpb24oc2Upe3JldHVy''@;'; put 'put ''biBzZS5fbHx8KHNlLl9sPW5ldyBLKX0sSz1mdW5jdGlvbigpe3RoaXMuYT1bXX0sSj1mdW5jdGlvbihzZSxvZSl7cmV0dXJuIFkoc2UuYSxmdW5jdGlvbihjZSl7cmV0dXJuIGNlWzBdPT09b2V9KX07Sy5wcm90b3R5cGU9e2dldDpmdW5jdGlvbihzZSl7dmFyIG9lPUoodGhpcyxzZSk7aWYo''@;'; put 'put ''b2UpcmV0dXJuIG9lWzFdfSxoYXM6ZnVuY3Rpb24oc2Upe3JldHVybiEhSih0aGlzLHNlKX0sc2V0OmZ1bmN0aW9uKHNlLG9lKXt2YXIgY2U9Sih0aGlzLHNlKTtjZT9jZVsxXT1vZTp0aGlzLmEucHVzaChbc2Usb2VdKX0sZGVsZXRlOmZ1bmN0aW9uKHNlKXt2YXIgb2U9Vyh0aGlzLmEsZnVu''@;'; put 'put ''Y3Rpb24oY2Upe3JldHVybiBjZVswXT09PXNlfSk7cmV0dXJufm9lJiZ0aGlzLmEuc3BsaWNlKG9lLDEpLCEhfm9lfX0sWGUuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3ZhciB2ZT1zZShmdW5jdGlvbihBZSxrZSl7VShBZSx2ZSxvZSwiX2kiKSxBZS5f''@;'; put 'put ''dD1vZSxBZS5faT1OKyssQWUuX2w9dm9pZCAwLG51bGwhPWtlJiZRKGtlLGNlLEFlW2RlXSxBZSl9KTtyZXR1cm4gbWUodmUucHJvdG90eXBlLHtkZWxldGU6ZnVuY3Rpb24oQWUpe2lmKCFFZShBZSkpcmV0dXJuITE7dmFyIGtlPUIoQWUpO3JldHVybiEwPT09a2U/dGUoYWUodGhpcyxvZSkp''@;'; put 'put ''LmRlbGV0ZShBZSk6a2UmJnJlKGtlLHRoaXMuX2kpJiZkZWxldGUga2VbdGhpcy5faV19LGhhczpmdW5jdGlvbihrZSl7aWYoIUVlKGtlKSlyZXR1cm4hMTt2YXIgU2U9QihrZSk7cmV0dXJuITA9PT1TZT90ZShhZSh0aGlzLG9lKSkuaGFzKGtlKTpTZSYmcmUoU2UsdGhpcy5faSl9fSksdmV9''@;'; put 'put ''LGRlZjpmdW5jdGlvbihzZSxvZSxjZSl7dmFyIGRlPUIoRShvZSksITApO3JldHVybiEwPT09ZGU/dGUoc2UpLnNldChvZSxjZSk6ZGVbc2UuX2ldPWNlLHNlfSx1ZnN0b3JlOnRlfX0sNDU3OTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDM4MTYpLEI9TCg0Mjk4NSksRT1M''@;'; put 'put ''KDc3MjM0KSxFZT1MKDI0NDA4KSxVPUwoODQ3MjgpLFE9TCgzNTMxKSxqPUwoODMzMjgpLHJlPUwoNTUyODYpLGFlPUwoNzQyNTMpLFk9TCg3NDYyKSxXPUwoMjI5NDMpLE49TCg0MDI2Nik7WGUuZXhwb3J0cz1mdW5jdGlvbih0ZSxLLEosc2Usb2UsY2Upe3ZhciBkZT1tZVt0ZV0sdmU9ZGUs''@;'; put 'put ''QWU9b2U/InNldCI6ImFkZCIsa2U9dmUmJnZlLnByb3RvdHlwZSxTZT17fSxJZT1mdW5jdGlvbihlZSl7dmFyIG5lPWtlW2VlXTtFKGtlLGVlLCJkZWxldGUiPT1lZT9mdW5jdGlvbih4KXtyZXR1cm4hKGNlJiYhcmUoeCkpJiZuZS5jYWxsKHRoaXMsMD09PXg/MDp4KX06ImhhcyI9PWVlP2Z1''@;'; put 'put ''bmN0aW9uKFApe3JldHVybiEoY2UmJiFyZShQKSkmJm5lLmNhbGwodGhpcywwPT09UD8wOlApfToiZ2V0Ij09ZWU/ZnVuY3Rpb24oUCl7cmV0dXJuIGNlJiYhcmUoUCk/dm9pZCAwOm5lLmNhbGwodGhpcywwPT09UD8wOlApfToiYWRkIj09ZWU/ZnVuY3Rpb24oUCl7cmV0dXJuIG5lLmNhbGwo''@;'; put 'put ''dGhpcywwPT09UD8wOlApLHRoaXN9OmZ1bmN0aW9uKFAsVil7cmV0dXJuIG5lLmNhbGwodGhpcywwPT09UD8wOlAsViksdGhpc30pfTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdmUmJihjZXx8a2UuZm9yRWFjaCYmIWFlKGZ1bmN0aW9uKCl7KG5ldyB2ZSkuZW50cmllcygpLm5leHQoKX0pKSl7''@;'; put 'put ''dmFyIFRlPW5ldyB2ZSxNZT1UZVtBZV0oY2U/e306LTAsMSkhPVRlLGhlPWFlKGZ1bmN0aW9uKCl7VGUuaGFzKDEpfSksTz1ZKGZ1bmN0aW9uKGVlKXtuZXcgdmUoZWUpfSksej0hY2UmJmFlKGZ1bmN0aW9uKCl7Zm9yKHZhciBlZT1uZXcgdmUsbmU9NTtuZS0tOyllZVtBZV0obmUsbmUpO3Jl''@;'; put 'put ''dHVybiFlZS5oYXMoLTApfSk7T3x8KCh2ZT1LKGZ1bmN0aW9uKGVlLG5lKXtqKGVlLHZlLHRlKTt2YXIgeD1OKG5ldyBkZSxlZSx2ZSk7cmV0dXJuIG51bGwhPW5lJiZRKG5lLG9lLHhbQWVdLHgpLHh9KSkucHJvdG90eXBlPWtlLGtlLmNvbnN0cnVjdG9yPXZlKSwoaGV8fHopJiYoSWUoImRl''@;'; put 'put ''bGV0ZSIpLEllKCJoYXMiKSxvZSYmSWUoImdldCIpKSwoenx8TWUpJiZJZShBZSksY2UmJmtlLmNsZWFyJiZkZWxldGUga2UuY2xlYXJ9ZWxzZSB2ZT1zZS5nZXRDb25zdHJ1Y3RvcihLLHRlLG9lLEFlKSxFZSh2ZS5wcm90b3R5cGUsSiksVS5ORUVEPSEwO3JldHVybiBXKHZlLHRlKSxTZVt0''@;'; put 'put ''ZV09dmUsQihCLkcrQi5XK0IuRioodmUhPWRlKSxTZSksY2V8fHNlLnNldFN0cm9uZyh2ZSx0ZSxvZSksdmV9fSwyNTY0NTpYZT0+e3ZhciBKZT1YZS5leHBvcnRzPXt2ZXJzaW9uOiIyLjYuMTIifTsibnVtYmVyIj09dHlwZW9mIF9fZSYmKF9fZT1KZSl9LDkyODExOihYZSxKZSxMKT0+eyJ1''@;'; put 'put ''c2Ugc3RyaWN0Ijt2YXIgbWU9TCg5OTI3NSksQj1MKDkwNjgxKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEUsRWUsVSl7RWUgaW4gRT9tZS5mKEUsRWUsQigwLFUpKTpFW0VlXT1VfX0sNzQxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI0OTYzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxFZSl7aWYo''@;'; put 'put ''bWUoQiksdm9pZCAwPT09RSlyZXR1cm4gQjtzd2l0Y2goRWUpe2Nhc2UgMTpyZXR1cm4gZnVuY3Rpb24oVSl7cmV0dXJuIEIuY2FsbChFLFUpfTtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKFUsUSl7cmV0dXJuIEIuY2FsbChFLFUsUSl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oVSxRLGope3Jl''@;'; put 'put ''dHVybiBCLmNhbGwoRSxVLFEsail9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBCLmFwcGx5KEUsYXJndW1lbnRzKX19fSw1MzUzNzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzQyNTMpLEI9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxFPURhdGUucHJvdG90eXBlLnRvSVNP''@;'; put 'put ''U3RyaW5nLEVlPWZ1bmN0aW9uKFUpe3JldHVybiBVPjk/VToiMCIrVX07WGUuZXhwb3J0cz1tZShmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1FLmNhbGwobmV3IERhdGUoLTUwMDAwMDAwMDAwMDAxKSl9KXx8IW1lKGZ1bmN0aW9uKCl7RS5jYWxsKG5ldyBE''@;'; put 'put ''YXRlKE5hTikpfSk/ZnVuY3Rpb24oKXtpZighaXNGaW5pdGUoQi5jYWxsKHRoaXMpKSl0aHJvdyBSYW5nZUVycm9yKCJJbnZhbGlkIHRpbWUgdmFsdWUiKTt2YXIgUT10aGlzLGo9US5nZXRVVENGdWxsWWVhcigpLHJlPVEuZ2V0VVRDTWlsbGlzZWNvbmRzKCksYWU9ajwwPyItIjpqPjk5OTk/''@;'; put 'put ''IisiOiIiO3JldHVybiBhZSsoIjAwMDAwIitNYXRoLmFicyhqKSkuc2xpY2UoYWU/LTY6LTQpKyItIitFZShRLmdldFVUQ01vbnRoKCkrMSkrIi0iK0VlKFEuZ2V0VVRDRGF0ZSgpKSsiVCIrRWUoUS5nZXRVVENIb3VycygpKSsiOiIrRWUoUS5nZXRVVENNaW51dGVzKCkpKyI6IitFZShRLmdl''@;'; put 'put ''dFVUQ1NlY29uZHMoKSkrIi4iKyhyZT45OT9yZToiMCIrRWUocmUpKSsiWiJ9OkV9LDg3MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjcwMDcpLEI9TCgyMTY4OSksRT0ibnVtYmVyIjtYZS5leHBvcnRzPWZ1bmN0aW9uKEVlKXtpZigic3RyaW5nIiE9PUVlJiZFZSE9PUUm''@;'; put 'put ''JiJkZWZhdWx0IiE9PUVlKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gQihtZSh0aGlzKSxFZSE9RSl9fSw5MTM1NTpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUpe2lmKG51bGw9PUplKXRocm93IFR5cGVFcnJvcigiQ2FuJ3QgY2FsbCBtZXRob2Qgb24gICIr''@;'; put 'put ''SmUpO3JldHVybiBKZX19LDY3MDU3OihYZSxKZSxMKT0+e1hlLmV4cG9ydHM9IUwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KX0sNjI0NTc6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; put 'put ''NTUyODYpLEI9TCgzODE2KS5kb2N1bWVudCxFPW1lKEIpJiZtZShCLmNyZWF0ZUVsZW1lbnQpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRWUpe3JldHVybiBFP0IuY3JlYXRlRWxlbWVudChFZSk6e319fSw3NDQzMDpYZT0+e1hlLmV4cG9ydHM9ImNvbnN0cnVjdG9yLGhhc093blByb3BlcnR5LGlz''@;'; put 'put ''UHJvdG90eXBlT2YscHJvcGVydHlJc0VudW1lcmFibGUsdG9Mb2NhbGVTdHJpbmcsdG9TdHJpbmcsdmFsdWVPZiIuc3BsaXQoIiwiKX0sNTU0MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0NzE4NCksQj1MKDY0NTQ4KSxFPUwoMTQ2ODIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRWUpe3ZhciBVPW1l''@;'; put 'put ''KEVlKSxRPUIuZjtpZihRKWZvcih2YXIgWSxqPVEoRWUpLHJlPUUuZixhZT0wO2oubGVuZ3RoPmFlOylyZS5jYWxsKEVlLFk9althZSsrXSkmJlUucHVzaChZKTtyZXR1cm4gVX19LDQyOTg1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCgyNTY0NSksRT1MKDg3NzI4KSxFZT1MKDc3''@;'; put 'put ''MjM0KSxVPUwoNzQxKSxRPSJwcm90b3R5cGUiLGo9ZnVuY3Rpb24ocmUsYWUsWSl7dmFyIGRlLHZlLEFlLGtlLFc9cmUmai5GLE49cmUmai5HLEs9cmUmai5QLEo9cmUmai5CLHNlPU4/bWU6cmUmai5TP21lW2FlXXx8KG1lW2FlXT17fSk6KG1lW2FlXXx8e30pW1FdLG9lPU4/QjpCW2FlXXx8''@;'; put 'put ''KEJbYWVdPXt9KSxjZT1vZVtRXXx8KG9lW1FdPXt9KTtmb3IoZGUgaW4gTiYmKFk9YWUpLFkpQWU9KCh2ZT0hVyYmc2UmJnZvaWQgMCE9PXNlW2RlXSk/c2U6WSlbZGVdLGtlPUomJnZlP1UoQWUsbWUpOksmJiJmdW5jdGlvbiI9PXR5cGVvZiBBZT9VKEZ1bmN0aW9uLmNhbGwsQWUpOkFlLHNl''@;'; put 'put ''JiZFZShzZSxkZSxBZSxyZSZqLlUpLG9lW2RlXSE9QWUmJkUob2UsZGUsa2UpLEsmJmNlW2RlXSE9QWUmJihjZVtkZV09QWUpfTttZS5jb3JlPUIsai5GPTEsai5HPTIsai5TPTQsai5QPTgsai5CPTE2LGouVz0zMixqLlU9NjQsai5SPTEyOCxYZS5leHBvcnRzPWp9LDg4NTI6KFhlLEplLEwp''@;'; put 'put ''PT57dmFyIG1lPUwoODYzMTQpKCJtYXRjaCIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7dmFyIEU9Ly4vO3RyeXsiLy4vIltCXShFKX1jYXRjaChFZSl7dHJ5e3JldHVybiBFW21lXT0hMSwhIi8uLyJbQl0oRSl9Y2F0Y2goVSl7fX1yZXR1cm4hMH19LDc0MjUzOlhlPT57WGUuZXhwb3J0cz1m''@;'; put 'put ''dW5jdGlvbihKZSl7dHJ5e3JldHVybiEhSmUoKX1jYXRjaChMKXtyZXR1cm4hMH19fSwyODA4MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgxODI2OSk7dmFyIG1lPUwoNzcyMzQpLEI9TCg4NzcyOCksRT1MKDc0MjUzKSxFZT1MKDkxMzU1KSxVPUwoODYzMTQpLFE9TCgyMTE2NSksaj1V''@;'; put 'put ''KCJzcGVjaWVzIikscmU9IUUoZnVuY3Rpb24oKXt2YXIgWT0vLi87cmV0dXJuIFkuZXhlYz1mdW5jdGlvbigpe3ZhciBXPVtdO3JldHVybiBXLmdyb3Vwcz17YToiNyJ9LFd9LCI3IiE9PSIiLnJlcGxhY2UoWSwiJDxhPiIpfSksYWU9ZnVuY3Rpb24oKXt2YXIgWT0vKD86KS8sVz1ZLmV4ZWM7''@;'; put 'put ''WS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIFcuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt2YXIgTj0iYWIiLnNwbGl0KFkpO3JldHVybiAyPT09Ti5sZW5ndGgmJiJhIj09PU5bMF0mJiJiIj09PU5bMV19KCk7WGUuZXhwb3J0cz1mdW5jdGlvbihZLFcsTil7dmFyIHRlPVUoWSksSz0hRShmdW5j''@;'; put 'put ''dGlvbigpe3ZhciB2ZT17fTtyZXR1cm4gdmVbdGVdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW1ldKHZlKX0pLEo9Sz8hRShmdW5jdGlvbigpe3ZhciB2ZT0hMSxBZT0vYS87cmV0dXJuIEFlLmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gdmU9ITAsbnVsbH0sInNwbGl0Ij09PVkmJihBZS5j''@;'; put 'put ''b25zdHJ1Y3Rvcj17fSxBZS5jb25zdHJ1Y3RvcltqXT1mdW5jdGlvbigpe3JldHVybiBBZX0pLEFlW3RlXSgiIiksIXZlfSk6dm9pZCAwO2lmKCFLfHwhSnx8InJlcGxhY2UiPT09WSYmIXJlfHwic3BsaXQiPT09WSYmIWFlKXt2YXIgc2U9Ly4vW3RlXSxvZT1OKEVlLHRlLCIiW1ldLGZ1bmN0''@;'; put 'put ''aW9uKEFlLGtlLFNlLEllLFRlKXtyZXR1cm4ga2UuZXhlYz09PVE/SyYmIVRlP3tkb25lOiEwLHZhbHVlOnNlLmNhbGwoa2UsU2UsSWUpfTp7ZG9uZTohMCx2YWx1ZTpBZS5jYWxsKFNlLGtlLEllKX06e2RvbmU6ITF9fSksZGU9b2VbMV07bWUoU3RyaW5nLnByb3RvdHlwZSxZLG9lWzBdKSxC''@;'; put 'put ''KFJlZ0V4cC5wcm90b3R5cGUsdGUsMj09Vz9mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIGRlLmNhbGwodmUsdGhpcyxBZSl9OmZ1bmN0aW9uKHZlKXtyZXR1cm4gZGUuY2FsbCh2ZSx0aGlzKX0pfX19LDUzMjE4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNzAwNyk7WGUuZXhw''@;'; put 'put ''b3J0cz1mdW5jdGlvbigpe3ZhciBCPW1lKHRoaXMpLEU9IiI7cmV0dXJuIEIuZ2xvYmFsJiYoRSs9ImciKSxCLmlnbm9yZUNhc2UmJihFKz0iaSIpLEIubXVsdGlsaW5lJiYoRSs9Im0iKSxCLnVuaWNvZGUmJihFKz0idSIpLEIuc3RpY2t5JiYoRSs9InkiKSxFfX0sMzUzMTooWGUsSmUsTCk9''@;'; put 'put ''Pnt2YXIgbWU9TCg3NDEpLEI9TCgyODg1MSksRT1MKDg2NTU1KSxFZT1MKDI3MDA3KSxVPUwoMTA4NzUpLFE9TCg2OTAwMiksaj17fSxyZT17fSxhZT1YZS5leHBvcnRzPWZ1bmN0aW9uKFksVyxOLHRlLEspe3ZhciBjZSxkZSx2ZSxBZSxKPUs/ZnVuY3Rpb24oKXtyZXR1cm4gWX06UShZKSxz''@;'; put 'put ''ZT1tZShOLHRlLFc/MjoxKSxvZT0wO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBKKXRocm93IFR5cGVFcnJvcihZKyIgaXMgbm90IGl0ZXJhYmxlISIpO2lmKEUoSikpe2ZvcihjZT1VKFkubGVuZ3RoKTtjZT5vZTtvZSsrKWlmKChBZT1XP3NlKEVlKGRlPVlbb2VdKVswXSxkZVsxXSk6c2UoWVtv''@;'; put 'put ''ZV0pKT09PWp8fEFlPT09cmUpcmV0dXJuIEFlfWVsc2UgZm9yKHZlPUouY2FsbChZKTshKGRlPXZlLm5leHQoKSkuZG9uZTspaWYoKEFlPUIodmUsc2UsZGUudmFsdWUsVykpPT09anx8QWU9PT1yZSlyZXR1cm4gQWV9O2FlLkJSRUFLPWosYWUuUkVUVVJOPXJlfSw0MDAxODooWGUsSmUsTCk9''@;'; put 'put ''PntYZS5leHBvcnRzPUwoMzgyNSkoIm5hdGl2ZS1mdW5jdGlvbi10by1zdHJpbmciLEZ1bmN0aW9uLnRvU3RyaW5nKX0sMzgxNjpYZT0+e3ZhciBKZT1YZS5leHBvcnRzPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuTWF0aD09TWF0aD93aW5kb3c6InVuZGVmaW5lZCIhPXR5''@;'; put 'put ''cGVvZiBzZWxmJiZzZWxmLk1hdGg9PU1hdGg/c2VsZjpGdW5jdGlvbigicmV0dXJuIHRoaXMiKSgpOyJudW1iZXIiPT10eXBlb2YgX19nJiYoX19nPUplKX0sNzkxODE6WGU9Pnt2YXIgSmU9e30uaGFzT3duUHJvcGVydHk7WGUuZXhwb3J0cz1mdW5jdGlvbihMLG1lKXtyZXR1cm4gSmUuY2Fs''@;'; put 'put ''bChMLG1lKX19LDg3NzI4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5Mjc1KSxCPUwoOTA2ODEpO1hlLmV4cG9ydHM9TCg2NzA1Nyk/ZnVuY3Rpb24oRSxFZSxVKXtyZXR1cm4gbWUuZihFLEVlLEIoMSxVKSl9OmZ1bmN0aW9uKEUsRWUsVSl7cmV0dXJuIEVbRWVdPVUsRX19LDQwNjM5OihYZSxK''@;'; put 'put ''ZSxMKT0+e3ZhciBtZT1MKDM4MTYpLmRvY3VtZW50O1hlLmV4cG9ydHM9bWUmJm1lLmRvY3VtZW50RWxlbWVudH0sMTczNDooWGUsSmUsTCk9PntYZS5leHBvcnRzPSFMKDY3MDU3KSYmIUwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShMKDYyNDU3''@;'; put 'put ''KSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LDQwMjY2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KSxCPUwoMjczNzUpLnNldDtYZS5leHBvcnRzPWZ1bmN0aW9uKEUsRWUsVSl7dmFyIGosUT1FZS5jb25zdHJ1Y3RvcjtyZXR1cm4gUSE9PVUmJiJmdW5j''@;'; put 'put ''dGlvbiI9PXR5cGVvZiBRJiYoaj1RLnByb3RvdHlwZSkhPT1VLnByb3RvdHlwZSYmbWUoaikmJkImJkIoRSxqKSxFfX0sOTcyNDI6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEplLEwsbWUpe3ZhciBCPXZvaWQgMD09PW1lO3N3aXRjaChMLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBCP0plKCk6''@;'; put 'put ''SmUuY2FsbChtZSk7Y2FzZSAxOnJldHVybiBCP0plKExbMF0pOkplLmNhbGwobWUsTFswXSk7Y2FzZSAyOnJldHVybiBCP0plKExbMF0sTFsxXSk6SmUuY2FsbChtZSxMWzBdLExbMV0pO2Nhc2UgMzpyZXR1cm4gQj9KZShMWzBdLExbMV0sTFsyXSk6SmUuY2FsbChtZSxMWzBdLExbMV0sTFsy''@;'; put 'put ''XSk7Y2FzZSA0OnJldHVybiBCP0plKExbMF0sTFsxXSxMWzJdLExbM10pOkplLmNhbGwobWUsTFswXSxMWzFdLExbMl0sTFszXSl9cmV0dXJuIEplLmFwcGx5KG1lLEwpfX0sNDk3OTc6KFhlLEplLEwpPT57dmFyIG1lPUwoOTIwMzIpO1hlLmV4cG9ydHM9T2JqZWN0KCJ6IikucHJvcGVydHlJ''@;'; put 'put ''c0VudW1lcmFibGUoMCk/T2JqZWN0OmZ1bmN0aW9uKEIpe3JldHVybiJTdHJpbmciPT1tZShCKT9CLnNwbGl0KCIiKTpPYmplY3QoQil9fSw4NjU1NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NzIzNCksQj1MKDg2MzE0KSgiaXRlcmF0b3IiKSxFPUFycmF5LnByb3RvdHlwZTtYZS5leHBvcnRz''@;'; put 'put ''PWZ1bmN0aW9uKEVlKXtyZXR1cm4gdm9pZCAwIT09RWUmJihtZS5BcnJheT09PUVlfHxFW0JdPT09RWUpfX0sNDMwMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MjAzMik7WGUuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihFKXtyZXR1cm4iQXJyYXkiPT1tZShFKX19LDE4MzY3OihY''@;'; put 'put ''ZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KSxCPU1hdGguZmxvb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihFZSl7cmV0dXJuIW1lKEVlKSYmaXNGaW5pdGUoRWUpJiZCKEVlKT09PUVlfX0sNTUyODY6WGU9PntYZS5leHBvcnRzPWZ1bmN0aW9uKEplKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEpl''@;'; put 'put ''P251bGwhPT1KZToiZnVuY3Rpb24iPT10eXBlb2YgSmV9fSw1NTM2NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDkyMDMyKSxFPUwoODYzMTQpKCJtYXRjaCIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRWUpe3ZhciBVO3JldHVybiBtZShFZSkmJih2b2lkIDAhPT0oVT1FZVtFXSk/''@;'; put 'put ''ISFVOiJSZWdFeHAiPT1CKEVlKSl9fSwyODg1MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNzAwNyk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsRWUsVSl7dHJ5e3JldHVybiBVP0UobWUoRWUpWzBdLEVlWzFdKTpFKEVlKX1jYXRjaChqKXt2YXIgUT1CLnJldHVybjt0aHJvdyB2b2lkIDAhPT1R''@;'; put 'put ''JiZtZShRLmNhbGwoQikpLGp9fX0sNDk5ODg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyNTAzKSxCPUwoOTA2ODEpLEU9TCgyMjk0MyksRWU9e307TCg4NzcyOCkoRWUsTCg4NjMxNCkoIml0ZXJhdG9yIiksZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFhlLmV4cG9ydHM9''@;'; put 'put ''ZnVuY3Rpb24oVSxRLGope1UucHJvdG90eXBlPW1lKEVlLHtuZXh0OkIoMSxqKX0pLEUoVSxRKyIgSXRlcmF0b3IiKX19LDQyOTIzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0NDYxKSxCPUwoNDI5ODUpLEU9TCg3NzIzNCksRWU9TCg4NzcyOCksVT1MKDg3MjM0KSxRPUwo''@;'; put 'put ''NDk5ODgpLGo9TCgyMjk0MykscmU9TCg0NjgpLGFlPUwoODYzMTQpKCJpdGVyYXRvciIpLFk9IShbXS5rZXlzJiYibmV4dCJpbltdLmtleXMoKSksTj0ia2V5cyIsdGU9InZhbHVlcyIsSz1mdW5jdGlvbigpe3JldHVybiB0aGlzfTtYZS5leHBvcnRzPWZ1bmN0aW9uKEosc2Usb2UsY2UsZGUs''@;'; put 'put ''dmUsQWUpe1Eob2Usc2UsY2UpO3ZhciBuZSx4LFAsa2U9ZnVuY3Rpb24oVil7aWYoIVkmJlYgaW4gTWUpcmV0dXJuIE1lW1ZdO3N3aXRjaChWKXtjYXNlIE46Y2FzZSB0ZTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG9lKHRoaXMsVil9fXJldHVybiBmdW5jdGlvbigpe3JldHVybiBu''@;'; put 'put ''ZXcgb2UodGhpcyxWKX19LFNlPXNlKyIgSXRlcmF0b3IiLEllPWRlPT10ZSxUZT0hMSxNZT1KLnByb3RvdHlwZSxoZT1NZVthZV18fE1lWyJAQGl0ZXJhdG9yIl18fGRlJiZNZVtkZV0sTz1oZXx8a2UoZGUpLHo9ZGU/SWU/a2UoImVudHJpZXMiKTpPOnZvaWQgMCxlZT0iQXJyYXkiPT1zZSYm''@;'; put 'put ''TWUuZW50cmllc3x8aGU7aWYoZWUmJihQPXJlKGVlLmNhbGwobmV3IEopKSkhPT1PYmplY3QucHJvdG90eXBlJiZQLm5leHQmJihqKFAsU2UsITApLCFtZSYmImZ1bmN0aW9uIiE9dHlwZW9mIFBbYWVdJiZFZShQLGFlLEspKSxJZSYmaGUmJmhlLm5hbWUhPT10ZSYmKFRlPSEwLE89ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gaGUuY2FsbCh0aGlzKX0pLCghbWV8fEFlKSYmKFl8fFRlfHwhTWVbYWVdKSYmRWUoTWUsYWUsTyksVVtzZV09TyxVW1NlXT1LLGRlKWlmKG5lPXt2YWx1ZXM6SWU/TzprZSh0ZSksa2V5czp2ZT9POmtlKE4pLGVudHJpZXM6en0sQWUpZm9yKHggaW4gbmUpeCBpbiBNZXx8''@;'; put 'put ''RShNZSx4LG5lW3hdKTtlbHNlIEIoQi5QK0IuRiooWXx8VGUpLHNlLG5lKTtyZXR1cm4gbmV9fSw3NDYyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg2MzE0KSgiaXRlcmF0b3IiKSxCPSExO3RyeXt2YXIgRT1bN11bbWVdKCk7RS5yZXR1cm49ZnVuY3Rpb24oKXtCPSEwfSxBcnJheS5mcm9tKEUs''@;'; put 'put ''ZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0Y2goRWUpe31YZS5leHBvcnRzPWZ1bmN0aW9uKEVlLFUpe2lmKCFVJiYhQilyZXR1cm4hMTt2YXIgUT0hMTt0cnl7dmFyIGo9WzddLHJlPWpbbWVdKCk7cmUubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25lOlE9ITB9fSxqW21lXT1mdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiByZX0sRWUoail9Y2F0Y2goYWUpe31yZXR1cm4gUX19LDE1NDM2OlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSxMKXtyZXR1cm57dmFsdWU6TCxkb25lOiEhSmV9fX0sODcyMzQ6WGU9PntYZS5leHBvcnRzPXt9fSw0NDYxOlhlPT57WGUuZXhwb3J0cz0hMX0sMTMwODY6WGU9''@;'; put 'put ''Pnt2YXIgSmU9TWF0aC5leHBtMTtYZS5leHBvcnRzPSFKZXx8SmUoMTApPjIyMDI1LjQ2NTc5NDgwNjcxOHx8SmUoMTApPDIyMDI1LjQ2NTc5NDgwNjcxOHx8LTJlLTE3IT1KZSgtMmUtMTcpP2Z1bmN0aW9uKG1lKXtyZXR1cm4gMD09KG1lPSttZSk/bWU6bWU+LTFlLTYmJm1lPDFlLTY/bWUr''@;'; put 'put ''bWUqbWUvMjpNYXRoLmV4cChtZSktMX06SmV9LDM0OTM0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDYxODAxKSxCPU1hdGgucG93LEU9QigyLC01MiksRWU9QigyLC0yMyksVT1CKDIsMTI3KSooMi1FZSksUT1CKDIsLTEyNik7WGUuZXhwb3J0cz1NYXRoLmZyb3VuZHx8ZnVuY3Rpb24oYWUpe3Zh''@;'; put 'put ''ciBOLHRlLFk9TWF0aC5hYnMoYWUpLFc9bWUoYWUpO3JldHVybiBZPFE/VyooWS9RL0VlKzEvRS0xL0UpKlEqRWU6KHRlPShOPSgxK0VlL0UpKlkpLShOLVkpKT5VfHx0ZSE9dGU/VyooMS8wKTpXKnRlfX0sNDYyMDY6WGU9PntYZS5leHBvcnRzPU1hdGgubG9nMXB8fGZ1bmN0aW9uKEwpe3Jl''@;'; put 'put ''dHVybihMPStMKT4tMWUtOCYmTDwxZS04P0wtTCpMLzI6TWF0aC5sb2coMStMKX19LDYxODAxOlhlPT57WGUuZXhwb3J0cz1NYXRoLnNpZ258fGZ1bmN0aW9uKEwpe3JldHVybiAwPT0oTD0rTCl8fEwhPUw/TDpMPDA/LTE6MX19LDg0NzI4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDkzOTUzKSgi''@;'; put 'put ''bWV0YSIpLEI9TCg1NTI4NiksRT1MKDc5MTgxKSxFZT1MKDk5Mjc1KS5mLFU9MCxRPU9iamVjdC5pc0V4dGVuc2libGV8fGZ1bmN0aW9uKCl7cmV0dXJuITB9LGo9IUwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIFEoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSl9KSxyZT1mdW5jdGlv''@;'; put 'put ''bih0ZSl7RWUodGUsbWUse3ZhbHVlOntpOiJPIisgKytVLHc6e319fSl9LE49WGUuZXhwb3J0cz17S0VZOm1lLE5FRUQ6ITEsZmFzdEtleTpmdW5jdGlvbih0ZSxLKXtpZighQih0ZSkpcmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0ZT90ZTooInN0cmluZyI9PXR5cGVvZiB0ZT8iUyI6IlAiKSt0''@;'; put 'put ''ZTtpZighRSh0ZSxtZSkpe2lmKCFRKHRlKSlyZXR1cm4iRiI7aWYoIUspcmV0dXJuIkUiO3JlKHRlKX1yZXR1cm4gdGVbbWVdLml9LGdldFdlYWs6ZnVuY3Rpb24odGUsSyl7aWYoIUUodGUsbWUpKXtpZighUSh0ZSkpcmV0dXJuITA7aWYoIUspcmV0dXJuITE7cmUodGUpfXJldHVybiB0ZVtt''@;'; put 'put ''ZV0ud30sb25GcmVlemU6ZnVuY3Rpb24odGUpe3JldHVybiBqJiZOLk5FRUQmJlEodGUpJiYhRSh0ZSxtZSkmJnJlKHRlKSx0ZX19fSw1MDEzMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4ODQxNiksQj1MKDQyOTg1KSxFPUwoMzgyNSkoIm1ldGFkYXRhIiksRWU9RS5zdG9yZXx8KEUuc3RvcmU9''@;'; put 'put ''bmV3KEwoMzAxNDcpKSksVT1mdW5jdGlvbihOLHRlLEspe3ZhciBKPUVlLmdldChOKTtpZighSil7aWYoIUspcmV0dXJuO0VlLnNldChOLEo9bmV3IG1lKX12YXIgc2U9Si5nZXQodGUpO2lmKCFzZSl7aWYoIUspcmV0dXJuO0ouc2V0KHRlLHNlPW5ldyBtZSl9cmV0dXJuIHNlfTtYZS5leHBv''@;'; put 'put ''cnRzPXtzdG9yZTpFZSxtYXA6VSxoYXM6ZnVuY3Rpb24oTix0ZSxLKXt2YXIgSj1VKHRlLEssITEpO3JldHVybiB2b2lkIDAhPT1KJiZKLmhhcyhOKX0sZ2V0OmZ1bmN0aW9uKE4sdGUsSyl7dmFyIEo9VSh0ZSxLLCExKTtyZXR1cm4gdm9pZCAwPT09Sj92b2lkIDA6Si5nZXQoTil9LHNldDpm''@;'; put 'put ''dW5jdGlvbihOLHRlLEssSil7VShLLEosITApLnNldChOLHRlKX0sa2V5czpmdW5jdGlvbihOLHRlKXt2YXIgSz1VKE4sdGUsITEpLEo9W107cmV0dXJuIEsmJksuZm9yRWFjaChmdW5jdGlvbihzZSxvZSl7Si5wdXNoKG9lKX0pLEp9LGtleTpmdW5jdGlvbihOKXtyZXR1cm4gdm9pZCAwPT09''@;'; put 'put ''Tnx8InN5bWJvbCI9PXR5cGVvZiBOP046U3RyaW5nKE4pfSxleHA6ZnVuY3Rpb24oTil7QihCLlMsIlJlZmxlY3QiLE4pfX19LDM1MzQ1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2NzA1NyksQj1MKDQ3MTg0KSxFPUwoNjQ1NDgpLEVlPUwoMTQ2ODIpLFU9TCgyMDUwOCks''@;'; put 'put ''UT1MKDQ5Nzk3KSxqPU9iamVjdC5hc3NpZ247WGUuZXhwb3J0cz0hanx8TCg3NDI1MykoZnVuY3Rpb24oKXt2YXIgcmU9e30sYWU9e30sWT1TeW1ib2woKSxXPSJhYmNkZWZnaGlqa2xtbm9wcXJzdCI7cmV0dXJuIHJlW1ldPTcsVy5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbihOKXthZVtO''@;'; put 'put ''XT1OfSksNyE9aih7fSxyZSlbWV18fE9iamVjdC5rZXlzKGooe30sYWUpKS5qb2luKCIiKSE9V30pP2Z1bmN0aW9uKGFlLFkpe2Zvcih2YXIgVz1VKGFlKSxOPWFyZ3VtZW50cy5sZW5ndGgsdGU9MSxLPUUuZixKPUVlLmY7Tj50ZTspZm9yKHZhciB2ZSxzZT1RKGFyZ3VtZW50c1t0ZSsrXSks''@;'; put 'put ''b2U9Sz9CKHNlKS5jb25jYXQoSyhzZSkpOkIoc2UpLGNlPW9lLmxlbmd0aCxkZT0wO2NlPmRlOyl2ZT1vZVtkZSsrXSwoIW1lfHxKLmNhbGwoc2UsdmUpKSYmKFdbdmVdPXNlW3ZlXSk7cmV0dXJuIFd9Omp9LDQyNTAzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI3MDA3KSxCPUwoMzU1ODgpLEU9''@;'; put 'put ''TCg3NDQzMCksRWU9TCg2OTMzNSkoIklFX1BST1RPIiksVT1mdW5jdGlvbigpe30sUT0icHJvdG90eXBlIixqPWZ1bmN0aW9uKCl7dmFyIE4scmU9TCg2MjQ1NykoImlmcmFtZSIpLGFlPUUubGVuZ3RoO2ZvcihyZS5zdHlsZS5kaXNwbGF5PSJub25lIixMKDQwNjM5KS5hcHBlbmRDaGlsZChy''@;'; put 'put ''ZSkscmUuc3JjPSJqYXZhc2NyaXB0OiIsKE49cmUuY29udGVudFdpbmRvdy5kb2N1bWVudCkub3BlbigpLE4ud3JpdGUoIjxzY3JpcHQ+ZG9jdW1lbnQuRj1PYmplY3Q8XC9zY3JpcHQ+IiksTi5jbG9zZSgpLGo9Ti5GO2FlLS07KWRlbGV0ZSBqW1FdW0VbYWVdXTtyZXR1cm4gaigpfTtYZS5l''@;'; put 'put ''eHBvcnRzPU9iamVjdC5jcmVhdGV8fGZ1bmN0aW9uKGFlLFkpe3ZhciBXO3JldHVybiBudWxsIT09YWU/KFVbUV09bWUoYWUpLFc9bmV3IFUsVVtRXT1udWxsLFdbRWVdPWFlKTpXPWooKSx2b2lkIDA9PT1ZP1c6QihXLFkpfX0sOTkyNzU6KFhlLEplLEwpPT57dmFyIG1lPUwoMjcwMDcpLEI9''@;'; put 'put ''TCgxNzM0KSxFPUwoMjE2ODkpLEVlPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtKZS5mPUwoNjcwNTcpP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihRLGoscmUpe2lmKG1lKFEpLGo9RShqLCEwKSxtZShyZSksQil0cnl7cmV0dXJuIEVlKFEsaixyZSl9Y2F0Y2goYWUpe31pZigiZ2V0''@;'; put 'put ''ImluIHJlfHwic2V0ImluIHJlKXRocm93IFR5cGVFcnJvcigiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQhIik7cmV0dXJuInZhbHVlImluIHJlJiYoUVtqXT1yZS52YWx1ZSksUX19LDM1NTg4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5Mjc1KSxCPUwoMjcwMDcpLEU9TCg0NzE4NCk7WGUuZXhw''@;'; put 'put ''b3J0cz1MKDY3MDU3KT9PYmplY3QuZGVmaW5lUHJvcGVydGllczpmdW5jdGlvbihVLFEpe0IoVSk7Zm9yKHZhciBZLGo9RShRKSxyZT1qLmxlbmd0aCxhZT0wO3JlPmFlOyltZS5mKFUsWT1qW2FlKytdLFFbWV0pO3JldHVybiBVfX0sMTg2OTM6KFhlLEplLEwpPT57dmFyIG1lPUwoMTQ2ODIp''@;'; put 'put ''LEI9TCg5MDY4MSksRT1MKDIyMTEwKSxFZT1MKDIxNjg5KSxVPUwoNzkxODEpLFE9TCgxNzM0KSxqPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7SmUuZj1MKDY3MDU3KT9qOmZ1bmN0aW9uKGFlLFkpe2lmKGFlPUUoYWUpLFk9RWUoWSwhMCksUSl0cnl7cmV0dXJuIGooYWUsWSl9''@;'; put 'put ''Y2F0Y2goVyl7fWlmKFUoYWUsWSkpcmV0dXJuIEIoIW1lLmYuY2FsbChhZSxZKSxhZVtZXSl9fSwzOTMyNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMjExMCksQj1MKDIwNjE2KS5mLEU9e30udG9TdHJpbmcsRWU9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdyYmT2JqZWN0LmdldE93''@;'; put 'put ''blByb3BlcnR5TmFtZXM/T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMod2luZG93KTpbXTtYZS5leHBvcnRzLmY9ZnVuY3Rpb24oail7cmV0dXJuIEVlJiYiW29iamVjdCBXaW5kb3ddIj09RS5jYWxsKGopP2Z1bmN0aW9uKFEpe3RyeXtyZXR1cm4gQihRKX1jYXRjaChqKXtyZXR1cm4gRWUu''@;'; put 'put ''c2xpY2UoKX19KGopOkIobWUoaikpfX0sMjA2MTY6KFhlLEplLEwpPT57dmFyIG1lPUwoNjAxODkpLEI9TCg3NDQzMCkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtKZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbihFZSl7cmV0dXJuIG1lKEVlLEIpfX0sNjQ1''@;'; put 'put ''NDg6KFhlLEplKT0+e0plLmY9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc30sNDY4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDc5MTgxKSxCPUwoMjA1MDgpLEU9TCg2OTMzNSkoIklFX1BST1RPIiksRWU9T2JqZWN0LnByb3RvdHlwZTtYZS5leHBvcnRzPU9iamVjdC5nZXRQcm90b3R5cGVP''@;'; put 'put ''Znx8ZnVuY3Rpb24oVSl7cmV0dXJuIFU9QihVKSxtZShVLEUpP1VbRV06ImZ1bmN0aW9uIj09dHlwZW9mIFUuY29uc3RydWN0b3ImJlUgaW5zdGFuY2VvZiBVLmNvbnN0cnVjdG9yP1UuY29uc3RydWN0b3IucHJvdG90eXBlOlUgaW5zdGFuY2VvZiBPYmplY3Q/RWU6bnVsbH19LDYwMTg5OihY''@;'; put 'put ''ZSxKZSxMKT0+e3ZhciBtZT1MKDc5MTgxKSxCPUwoMjIxMTApLEU9TCg3OTMxNSkoITEpLEVlPUwoNjkzMzUpKCJJRV9QUk9UTyIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRKXt2YXIgWSxqPUIoVSkscmU9MCxhZT1bXTtmb3IoWSBpbiBqKVkhPUVlJiZtZShqLFkpJiZhZS5wdXNoKFkpO2Zv''@;'; put 'put ''cig7US5sZW5ndGg+cmU7KW1lKGosWT1RW3JlKytdKSYmKH5FKGFlLFkpfHxhZS5wdXNoKFkpKTtyZXR1cm4gYWV9fSw0NzE4NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2MDE4OSksQj1MKDc0NDMwKTtYZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbihFZSl7cmV0dXJuIG1lKEVlLEIp''@;'; put 'put ''fX0sMTQ2ODI6KFhlLEplKT0+e0plLmY9e30ucHJvcGVydHlJc0VudW1lcmFibGV9LDMzMTYwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMjU2NDUpLEU9TCg3NDI1Myk7WGUuZXhwb3J0cz1mdW5jdGlvbihFZSxVKXt2YXIgUT0oQi5PYmplY3R8fHt9KVtFZV18fE9iamVjdFtF''@;'; put 'put ''ZV0saj17fTtqW0VlXT1VKFEpLG1lKG1lLlMrbWUuRipFKGZ1bmN0aW9uKCl7USgxKX0pLCJPYmplY3QiLGopfX0sNTc2NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoMjA2MTYpLEI9TCg2NDU0OCksRT1MKDI3MDA3KSxFZT1MKDM4MTYpLlJlZmxlY3Q7WGUuZXhwb3J0cz1FZSYmRWUub3duS2V5''@;'; put 'put ''c3x8ZnVuY3Rpb24oUSl7dmFyIGo9bWUuZihFKFEpKSxyZT1CLmY7cmV0dXJuIHJlP2ouY29uY2F0KHJlKFEpKTpqfX0sNDc3NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoMzgxNikucGFyc2VGbG9hdCxCPUwoMjk1OTkpLnRyaW07WGUuZXhwb3J0cz0xL21lKEwoODQ2NDQpKyItMCIpIT0tMS8w''@;'; put 'put ''P2Z1bmN0aW9uKEVlKXt2YXIgVT1CKFN0cmluZyhFZSksMyksUT1tZShVKTtyZXR1cm4gMD09PVEmJiItIj09VS5jaGFyQXQoMCk/LTA6UX06bWV9LDU1OTYwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLnBhcnNlSW50LEI9TCgyOTU5OSkudHJpbSxFPUwoODQ2NDQpLEVlPS9eWy0rXT8w''@;'; put 'put ''W3hYXS87WGUuZXhwb3J0cz04IT09bWUoRSsiMDgiKXx8MjIhPT1tZShFKyIweDE2Iik/ZnVuY3Rpb24oUSxqKXt2YXIgcmU9QihTdHJpbmcoUSksMyk7cmV0dXJuIG1lKHJlLGo+Pj4wfHwoRWUudGVzdChyZSk/MTY6MTApKX06bWV9LDkwNjgxOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihK''@;'; put 'put ''ZSxMKXtyZXR1cm57ZW51bWVyYWJsZTohKDEmSmUpLGNvbmZpZ3VyYWJsZTohKDImSmUpLHdyaXRhYmxlOiEoNCZKZSksdmFsdWU6TH19fSwyNDQwODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3NzIzNCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUsRWUpe2Zvcih2YXIgVSBpbiBFKW1lKEIsVSxF''@;'; put 'put ''W1VdLEVlKTtyZXR1cm4gQn19LDc3MjM0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCg4NzcyOCksRT1MKDc5MTgxKSxFZT1MKDkzOTUzKSgic3JjIiksVT1MKDQwMDE4KSxRPSJ0b1N0cmluZyIsaj0oIiIrVSkuc3BsaXQoUSk7TCgyNTY0NSkuaW5zcGVjdFNvdXJjZT1mdW5jdGlv''@;'; put 'put ''bihyZSl7cmV0dXJuIFUuY2FsbChyZSl9LChYZS5leHBvcnRzPWZ1bmN0aW9uKHJlLGFlLFksVyl7dmFyIE49ImZ1bmN0aW9uIj09dHlwZW9mIFk7TiYmKEUoWSwibmFtZSIpfHxCKFksIm5hbWUiLGFlKSkscmVbYWVdIT09WSYmKE4mJihFKFksRWUpfHxCKFksRWUscmVbYWVdPyIiK3JlW2Fl''@;'; put 'put ''XTpqLmpvaW4oU3RyaW5nKGFlKSkpKSxyZT09PW1lP3JlW2FlXT1ZOlc/cmVbYWVdP3JlW2FlXT1ZOkIocmUsYWUsWSk6KGRlbGV0ZSByZVthZV0sQihyZSxhZSxZKSkpfSkoRnVuY3Rpb24ucHJvdG90eXBlLFEsZnVuY3Rpb24oKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdGhpcyYmdGhp''@;'; put 'put ''c1tFZV18fFUuY2FsbCh0aGlzKX0pfSwyNzc4NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDE0ODgpLEI9UmVnRXhwLnByb3RvdHlwZS5leGVjO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxFZSl7dmFyIFU9RS5leGVjO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBVKXt2YXIgUT1V''@;'; put 'put ''LmNhbGwoRSxFZSk7aWYoIm9iamVjdCIhPXR5cGVvZiBRKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBRfWlmKCJSZWdFeHAiIT09bWUoRSkpdGhyb3cgbmV3IFR5''@;'; put 'put ''cGVFcnJvcigiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpO3JldHVybiBCLmNhbGwoRSxFZSl9fSwyMTE2NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIGFlLFksbWU9TCg1MzIxOCksQj1SZWdFeHAucHJvdG90eXBlLmV4ZWMsRT1TdHJpbmcucHJv''@;'; put 'put ''dG90eXBlLnJlcGxhY2UsRWU9QixVPSJsYXN0SW5kZXgiLFE9KFk9L2IqL2csQi5jYWxsKGFlPS9hLywiYSIpLEIuY2FsbChZLCJhIiksMCE9PWFlW1VdfHwwIT09WVtVXSksaj12b2lkIDAhPT0vKCk/Py8uZXhlYygiIilbMV07KFF8fGopJiYoRWU9ZnVuY3Rpb24oWSl7dmFyIE4sdGUsSyxK''@;'; put 'put ''LFc9dGhpcztyZXR1cm4gaiYmKHRlPW5ldyBSZWdFeHAoIl4iK1cuc291cmNlKyIkKD8hXFxzKSIsbWUuY2FsbChXKSkpLFEmJihOPVdbVV0pLEs9Qi5jYWxsKFcsWSksUSYmSyYmKFdbVV09Vy5nbG9iYWw/Sy5pbmRleCtLWzBdLmxlbmd0aDpOKSxqJiZLJiZLLmxlbmd0aD4xJiZFLmNhbGwo''@;'; put 'put ''S1swXSx0ZSxmdW5jdGlvbigpe2ZvcihKPTE7Sjxhcmd1bWVudHMubGVuZ3RoLTI7SisrKXZvaWQgMD09PWFyZ3VtZW50c1tKXSYmKEtbSl09dm9pZCAwKX0pLEt9KSxYZS5leHBvcnRzPUVlfSwyNzE5NTpYZT0+e1hlLmV4cG9ydHM9T2JqZWN0LmlzfHxmdW5jdGlvbihMLG1lKXtyZXR1cm4g''@;'; put 'put ''TD09PW1lPzAhPT1MfHwxL0w9PTEvbWU6TCE9TCYmbWUhPW1lfX0sMjczNzU6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpLEI9TCgyNzAwNyksRT1mdW5jdGlvbihFZSxVKXtpZihCKEVlKSwhbWUoVSkmJm51bGwhPT1VKXRocm93IFR5cGVFcnJvcihVKyI6IGNhbid0IHNldCBhcyBwcm90''@;'; put 'put ''b3R5cGUhIil9O1hlLmV4cG9ydHM9e3NldDpPYmplY3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oRWUsVSxRKXt0cnl7KFE9TCg3NDEpKEZ1bmN0aW9uLmNhbGwsTCgxODY5MykuZihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKS5zZXQsMikpKEVlLFtd''@;'; put 'put ''KSxVPSEoRWUgaW5zdGFuY2VvZiBBcnJheSl9Y2F0Y2goail7VT0hMH1yZXR1cm4gZnVuY3Rpb24ocmUsYWUpe3JldHVybiBFKHJlLGFlKSxVP3JlLl9fcHJvdG9fXz1hZTpRKHJlLGFlKSxyZX19KHt9LCExKTp2b2lkIDApLGNoZWNrOkV9fSwyOTc0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0''@;'; put 'put ''Ijt2YXIgbWU9TCgzODE2KSxCPUwoOTkyNzUpLEU9TCg2NzA1NyksRWU9TCg4NjMxNCkoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3ZhciBRPW1lW1VdO0UmJlEmJiFRW0VlXSYmQi5mKFEsRWUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319''@;'; put 'put ''KX19LDIyOTQzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDk5Mjc1KS5mLEI9TCg3OTE4MSksRT1MKDg2MzE0KSgidG9TdHJpbmdUYWciKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEVlLFUsUSl7RWUmJiFCKEVlPVE/RWU6RWUucHJvdG90eXBlLEUpJiZtZShFZSxFLHtjb25maWd1cmFibGU6ITAsdmFs''@;'; put 'put ''dWU6VX0pfX0sNjkzMzU6KFhlLEplLEwpPT57dmFyIG1lPUwoMzgyNSkoImtleXMiKSxCPUwoOTM5NTMpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJuIG1lW0VdfHwobWVbRV09QihFKSl9fSwzODI1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI1NjQ1KSxCPUwoMzgxNiksRT0iX19jb3Jl''@;'; put 'put ''LWpzX3NoYXJlZF9fIixFZT1CW0VdfHwoQltFXT17fSk7KFhlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRKXtyZXR1cm4gRWVbVV18fChFZVtVXT12b2lkIDAhPT1RP1E6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjptZS52ZXJzaW9uLG1vZGU6TCg0NDYxKT8icHVyZSI6Imdsb2Jh''@;'; put 'put ''bCIsY29weXJpZ2h0OiJceGE5IDIwMjAgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LDU4MzY0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI3MDA3KSxCPUwoMjQ5NjMpLEU9TCg4NjMxNCkoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEVlLFUpe3ZhciBqLFE9bWUoRWUp''@;'; put 'put ''LmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1RfHxudWxsPT0oaj1tZShRKVtFXSk/VTpCKGopfX0sNzc3MTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDc0MjUzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7cmV0dXJuISFCJiZtZShmdW5jdGlvbigpe0U/Qi5jYWxs''@;'; put 'put ''KG51bGwsZnVuY3Rpb24oKXt9LDEpOkIuY2FsbChudWxsKX0pfX0sMjQ0OTY6KFhlLEplLEwpPT57dmFyIG1lPUwoODE0NjcpLEI9TCg5MTM1NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oRWUsVSl7dmFyIGFlLFksUT1TdHJpbmcoQihFZSkpLGo9bWUoVSkscmU9''@;'; put 'put ''US5sZW5ndGg7cmV0dXJuIGo8MHx8aj49cmU/RT8iIjp2b2lkIDA6KGFlPVEuY2hhckNvZGVBdChqKSk8NTUyOTZ8fGFlPjU2MzE5fHxqKzE9PT1yZXx8KFk9US5jaGFyQ29kZUF0KGorMSkpPDU2MzIwfHxZPjU3MzQzP0U/US5jaGFyQXQoaik6YWU6RT9RLnNsaWNlKGosaisyKTpZLTU2MzIw''@;'; put 'put ''KyhhZS01NTI5Njw8MTApKzY1NTM2fX19LDQyMDk0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1MzY0KSxCPUwoOTEzNTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxFZSxVKXtpZihtZShFZSkpdGhyb3cgVHlwZUVycm9yKCJTdHJpbmcjIitVKyIgZG9lc24ndCBhY2NlcHQgcmVnZXghIik7cmV0''@;'; put 'put ''dXJuIFN0cmluZyhCKEUpKX19LDI5Mzk1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNzQyNTMpLEU9TCg5MTM1NSksRWU9LyIvZyxVPWZ1bmN0aW9uKFEsaixyZSxhZSl7dmFyIFk9U3RyaW5nKEUoUSkpLFc9IjwiK2o7cmV0dXJuIiIhPT1yZSYmKFcrPSIgIityZSsnPSInK1N0''@;'; put 'put ''cmluZyhhZSkucmVwbGFjZShFZSwiJnF1b3Q7IikrJyInKSxXKyI+IitZKyI8LyIraisiPiJ9O1hlLmV4cG9ydHM9ZnVuY3Rpb24oUSxqKXt2YXIgcmU9e307cmVbUV09aihVKSxtZShtZS5QK21lLkYqQihmdW5jdGlvbigpe3ZhciBhZT0iIltRXSgnIicpO3JldHVybiBhZSE9PWFlLnRvTG93''@;'; put 'put ''ZXJDYXNlKCl8fGFlLnNwbGl0KCciJykubGVuZ3RoPjN9KSwiU3RyaW5nIixyZSl9fSw2ODU5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODE0NjcpLEI9TCg5MTM1NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihFZSl7dmFyIFU9U3RyaW5nKEIodGhpcykpLFE9IiIsaj1tZShF''@;'; put 'put ''ZSk7aWYoajwwfHxqPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmUiKTtmb3IoO2o+MDsoaj4+Pj0xKSYmKFUrPVUpKTEmaiYmKFErPVUpO3JldHVybiBRfX0sMjk1OTk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCg5MTM1NSksRT1MKDc0MjUz''@;'; put 'put ''KSxFZT1MKDg0NjQ0KSxVPSJbIitFZSsiXSIsaj1SZWdFeHAoIl4iK1UrVSsiKiIpLHJlPVJlZ0V4cChVK1UrIiokIiksYWU9ZnVuY3Rpb24oVyxOLHRlKXt2YXIgSz17fSxKPUUoZnVuY3Rpb24oKXtyZXR1cm4hIUVlW1ddKCl8fCJcdTIwMGJceDg1IiE9Ilx1MjAwYlx4ODUiW1ddKCl9KSxz''@;'; put 'put ''ZT1LW1ddPUo/TihZKTpFZVtXXTt0ZSYmKEtbdGVdPXNlKSxtZShtZS5QK21lLkYqSiwiU3RyaW5nIixLKX0sWT1hZS50cmltPWZ1bmN0aW9uKFcsTil7cmV0dXJuIFc9U3RyaW5nKEIoVykpLDEmTiYmKFc9Vy5yZXBsYWNlKGosIiIpKSwyJk4mJihXPVcucmVwbGFjZShyZSwiIikpLFd9O1hl''@;'; put 'put ''LmV4cG9ydHM9YWV9LDg0NjQ0OlhlPT57WGUuZXhwb3J0cz0iXHRcblx2XGZcciBceGEwXHUxNjgwXHUxODBlXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XHVmZWZm''@;'; put 'put ''In0sOTIzMzc6KFhlLEplLEwpPT57dmFyIG1lPUwoODE0NjcpLEI9TWF0aC5tYXgsRT1NYXRoLm1pbjtYZS5leHBvcnRzPWZ1bmN0aW9uKEVlLFUpe3JldHVybihFZT1tZShFZSkpPDA/QihFZStVLDApOkUoRWUsVSl9fSw4MTQ2NzpYZT0+e3ZhciBKZT1NYXRoLmNlaWwsTD1NYXRoLmZsb29y''@;'; put 'put ''O1hlLmV4cG9ydHM9ZnVuY3Rpb24obWUpe3JldHVybiBpc05hTihtZT0rbWUpPzA6KG1lPjA/TDpKZSkobWUpfX0sMjIxMTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDk3OTcpLEI9TCg5MTM1NSk7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gbWUoQihFKSl9fSwxMDg3NTooWGUsSmUs''@;'; put 'put ''TCk9Pnt2YXIgbWU9TCg4MTQ2NyksQj1NYXRoLm1pbjtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe3JldHVybiBFPjA/QihtZShFKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sMjA1MDg6KFhlLEplLEwpPT57dmFyIG1lPUwoOTEzNTUpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuIE9iamVj''@;'; put 'put ''dChtZShCKSl9fSwyMTY4OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4Nik7WGUuZXhwb3J0cz1mdW5jdGlvbihCLEUpe2lmKCFtZShCKSlyZXR1cm4gQjt2YXIgRWUsVTtpZihFJiYiZnVuY3Rpb24iPT10eXBlb2YoRWU9Qi50b1N0cmluZykmJiFtZShVPUVlLmNhbGwoQikpfHwiZnVuY3Rp''@;'; put 'put ''b24iPT10eXBlb2YoRWU9Qi52YWx1ZU9mKSYmIW1lKFU9RWUuY2FsbChCKSl8fCFFJiYiZnVuY3Rpb24iPT10eXBlb2YoRWU9Qi50b1N0cmluZykmJiFtZShVPUVlLmNhbGwoQikpKXJldHVybiBVO3Rocm93IFR5cGVFcnJvcigiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZh''@;'; put 'put ''bHVlIil9fSw5Mzk1MzpYZT0+e3ZhciBKZT0wLEw9TWF0aC5yYW5kb20oKTtYZS5leHBvcnRzPWZ1bmN0aW9uKG1lKXtyZXR1cm4iU3ltYm9sKCIuY29uY2F0KHZvaWQgMD09PW1lPyIiOm1lLCIpXyIsKCsrSmUrTCkudG9TdHJpbmcoMzYpKX19LDE2MTY6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; put 'put ''NTUyODYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFKXtpZighbWUoQil8fEIuX3QhPT1FKXRocm93IFR5cGVFcnJvcigiSW5jb21wYXRpYmxlIHJlY2VpdmVyLCAiK0UrIiByZXF1aXJlZCEiKTtyZXR1cm4gQn19LDM2MDc0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCgyNTY0NSks''@;'; put 'put ''RT1MKDQ0NjEpLEVlPUwoMjg3ODcpLFU9TCg5OTI3NSkuZjtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3ZhciBqPUIuU3ltYm9sfHwoQi5TeW1ib2w9RT97fTptZS5TeW1ib2x8fHt9KTsiXyIhPVEuY2hhckF0KDApJiYhKFEgaW4gaikmJlUoaixRLHt2YWx1ZTpFZS5mKFEpfSl9fSwyODc4Nzoo''@;'; put 'put ''WGUsSmUsTCk9PntKZS5mPUwoODYzMTQpfSw4NjMxNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzODI1KSgid2tzIiksQj1MKDkzOTUzKSxFPUwoMzgxNikuU3ltYm9sLEVlPSJmdW5jdGlvbiI9PXR5cGVvZiBFOyhYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3JldHVybiBtZVtRXXx8KG1lW1FdPUVl''@;'; put 'put ''JiZFW1FdfHwoRWU/RTpCKSgiU3ltYm9sLiIrUSkpfSkuc3RvcmU9bWV9LDY5MDAyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQxNDg4KSxCPUwoODYzMTQpKCJpdGVyYXRvciIpLEU9TCg4NzIzNCk7WGUuZXhwb3J0cz1MKDI1NjQ1KS5nZXRJdGVyYXRvck1ldGhvZD1mdW5jdGlvbihFZSl7aWYo''@;'; put 'put ''bnVsbCE9RWUpcmV0dXJuIEVlW0JdfHxFZVsiQEBpdGVyYXRvciJdfHxFW21lKEVlKV19fSwzMmUzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5QLCJBcnJheSIse2NvcHlXaXRoaW46TCg1MjE2KX0pLEwoMTc3MjIpKCJjb3B5V2l0aGluIil9LDE1NzQ1OihYZSxKZSxMKT0+''@;'; put 'put ''eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwMDUwKSg0KTttZShtZS5QK21lLkYqIUwoNzc3MTcpKFtdLmV2ZXJ5LCEwKSwiQXJyYXkiLHtldmVyeTpmdW5jdGlvbihFZSl7cmV0dXJuIEIodGhpcyxFZSxhcmd1bWVudHNbMV0pfX0pfSw0ODk3NzooWGUsSmUsTCk9Pnt2YXIg''@;'; put 'put ''bWU9TCg0Mjk4NSk7bWUobWUuUCwiQXJyYXkiLHtmaWxsOkwoNDY4NTIpfSksTCgxNzcyMikoImZpbGwiKX0sOTg4Mzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDIpO21lKG1lLlArbWUuRiohTCg3NzcxNykoW10uZmlsdGVyLCEwKSwiQXJy''@;'; put 'put ''YXkiLHtmaWx0ZXI6ZnVuY3Rpb24oRWUpe3JldHVybiBCKHRoaXMsRWUsYXJndW1lbnRzWzFdKX19KX0sOTQ4OTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDYpLEU9ImZpbmRJbmRleCIsRWU9ITA7RSBpbltdJiZBcnJheSgxKVtFXShmdW5j''@;'; put 'put ''dGlvbigpe0VlPSExfSksbWUobWUuUCttZS5GKkVlLCJBcnJheSIse2ZpbmRJbmRleDpmdW5jdGlvbihRKXtyZXR1cm4gQih0aGlzLFEsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEwoMTc3MjIpKEUpfSw1MjMxMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7''@;'; put 'put ''dmFyIG1lPUwoNDI5ODUpLEI9TCgxMDA1MCkoNSksRT0iZmluZCIsRWU9ITA7RSBpbltdJiZBcnJheSgxKVtFXShmdW5jdGlvbigpe0VlPSExfSksbWUobWUuUCttZS5GKkVlLCJBcnJheSIse2ZpbmQ6ZnVuY3Rpb24oUSl7cmV0dXJuIEIodGhpcyxRLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1''@;'; put 'put ''bWVudHNbMV06dm9pZCAwKX19KSxMKDE3NzIyKShFKX0sMjQzMzY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMTAwNTApKDApLEU9TCg3NzcxNykoW10uZm9yRWFjaCwhMCk7bWUobWUuUCttZS5GKiFFLCJBcnJheSIse2ZvckVhY2g6ZnVuY3Rpb24oVSl7''@;'; put 'put ''cmV0dXJuIEIodGhpcyxVLGFyZ3VtZW50c1sxXSl9fSl9LDMwNTIyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg3NDEpLEI9TCg0Mjk4NSksRT1MKDIwNTA4KSxFZT1MKDI4ODUxKSxVPUwoODY1NTUpLFE9TCgxMDg3NSksaj1MKDkyODExKSxyZT1MKDY5MDAyKTtCKEIuUytC''@;'; put 'put ''LkYqIUwoNzQ2MikoZnVuY3Rpb24oYWUpe0FycmF5LmZyb20oYWUpfSksIkFycmF5Iix7ZnJvbTpmdW5jdGlvbihZKXt2YXIgY2UsZGUsdmUsQWUsVz1FKFkpLE49ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSx0ZT1hcmd1bWVudHMubGVuZ3RoLEs9dGU+MT9hcmd1bWVudHNb''@;'; put 'put ''MV06dm9pZCAwLEo9dm9pZCAwIT09SyxzZT0wLG9lPXJlKFcpO2lmKEomJihLPW1lKEssdGU+Mj9hcmd1bWVudHNbMl06dm9pZCAwLDIpKSxudWxsPT1vZXx8Tj09QXJyYXkmJlUob2UpKWZvcihkZT1uZXcgTihjZT1RKFcubGVuZ3RoKSk7Y2U+c2U7c2UrKylqKGRlLHNlLEo/SyhXW3NlXSxz''@;'; put 'put ''ZSk6V1tzZV0pO2Vsc2UgZm9yKEFlPW9lLmNhbGwoVyksZGU9bmV3IE47ISh2ZT1BZS5uZXh0KCkpLmRvbmU7c2UrKylqKGRlLHNlLEo/RWUoQWUsSyxbdmUudmFsdWUsc2VdLCEwKTp2ZS52YWx1ZSk7cmV0dXJuIGRlLmxlbmd0aD1zZSxkZX19KX0sMjMzNjk6KFhlLEplLEwpPT57InVzZSBz''@;'; put 'put ''dHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoNzkzMTUpKCExKSxFPVtdLmluZGV4T2YsRWU9ISFFJiYxL1sxXS5pbmRleE9mKDEsLTApPDA7bWUobWUuUCttZS5GKihFZXx8IUwoNzc3MTcpKEUpKSwiQXJyYXkiLHtpbmRleE9mOmZ1bmN0aW9uKFEpe3JldHVybiBFZT9FLmFwcGx5KHRoaXMs''@;'; put 'put ''YXJndW1lbnRzKXx8MDpCKHRoaXMsUSxhcmd1bWVudHNbMV0pfX0pfSwyMDc3NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiQXJyYXkiLHtpc0FycmF5OkwoNDMwMil9KX0sNTY5OTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE3NzIyKSxCPUwoMTU0''@;'; put 'put ''MzYpLEU9TCg4NzIzNCksRWU9TCgyMjExMCk7WGUuZXhwb3J0cz1MKDQyOTIzKShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKFUsUSl7dGhpcy5fdD1FZShVKSx0aGlzLl9pPTAsdGhpcy5faz1RfSxmdW5jdGlvbigpe3ZhciBVPXRoaXMuX3QsUT10aGlzLl9rLGo9dGhpcy5faSsrO3JldHVybiFV''@;'; put 'put ''fHxqPj1VLmxlbmd0aD8odGhpcy5fdD12b2lkIDAsQigxKSk6QigwLCJrZXlzIj09UT9qOiJ2YWx1ZXMiPT1RP1Vbal06W2osVVtqXV0pfSwidmFsdWVzIiksRS5Bcmd1bWVudHM9RS5BcnJheSxtZSgia2V5cyIpLG1lKCJ2YWx1ZXMiKSxtZSgiZW50cmllcyIpfSw4Nzg0MjooWGUsSmUsTCk9''@;'; put 'put ''PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgyMjExMCksRT1bXS5qb2luO21lKG1lLlArbWUuRiooTCg0OTc5NykhPU9iamVjdHx8IUwoNzc3MTcpKEUpKSwiQXJyYXkiLHtqb2luOmZ1bmN0aW9uKFUpe3JldHVybiBFLmNhbGwoQih0aGlzKSx2b2lkIDA9PT1VPyIsIjpVKX19''@;'; put 'put ''KX0sOTk1NjQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjIxMTApLEU9TCg4MTQ2NyksRWU9TCgxMDg3NSksVT1bXS5sYXN0SW5kZXhPZixRPSEhVSYmMS9bMV0ubGFzdEluZGV4T2YoMSwtMCk8MDttZShtZS5QK21lLkYqKFF8fCFMKDc3NzE3KShVKSks''@;'; put 'put ''IkFycmF5Iix7bGFzdEluZGV4T2Y6ZnVuY3Rpb24ocmUpe2lmKFEpcmV0dXJuIFUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHwwO3ZhciBhZT1CKHRoaXMpLFk9RWUoYWUubGVuZ3RoKSxXPVktMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYoVz1NYXRoLm1pbihXLEUoYXJndW1lbnRzWzFdKSkp''@;'; put 'put ''LFc8MCYmKFc9WStXKTtXPj0wO1ctLSlpZihXIGluIGFlJiZhZVtXXT09PXJlKXJldHVybiBXfHwwO3JldHVybi0xfX0pfSwxOTM3MTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgxMDA1MCkoMSk7bWUobWUuUCttZS5GKiFMKDc3NzE3KShbXS5tYXAsITAp''@;'; put 'put ''LCJBcnJheSIse21hcDpmdW5jdGlvbihFZSl7cmV0dXJuIEIodGhpcyxFZSxhcmd1bWVudHNbMV0pfX0pfSw1ODI5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCg5MjgxMSk7bWUobWUuUyttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gRSgp''@;'; put 'put ''e31yZXR1cm4hKEFycmF5Lm9mLmNhbGwoRSlpbnN0YW5jZW9mIEUpfSksIkFycmF5Iix7b2Y6ZnVuY3Rpb24oKXtmb3IodmFyIEVlPTAsVT1hcmd1bWVudHMubGVuZ3RoLFE9bmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6QXJyYXkpKFUpO1U+RWU7KUIoUSxFZSxhcmd1bWVudHNb''@;'; put 'put ''RWUrK10pO3JldHVybiBRLmxlbmd0aD1VLFF9fSl9LDM3NTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMzc2MjgpO21lKG1lLlArbWUuRiohTCg3NzcxNykoW10ucmVkdWNlUmlnaHQsITApLCJBcnJheSIse3JlZHVjZVJpZ2h0OmZ1bmN0aW9uKEVlKXty''@;'; put 'put ''ZXR1cm4gQih0aGlzLEVlLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCEwKX19KX0sMzMwNTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMzc2MjgpO21lKG1lLlArbWUuRiohTCg3NzcxNykoW10ucmVkdWNlLCEwKSwiQXJyYXkiLHtyZWR1Y2U6''@;'; put 'put ''ZnVuY3Rpb24oRWUpe3JldHVybiBCKHRoaXMsRWUsYXJndW1lbnRzLmxlbmd0aCxhcmd1bWVudHNbMV0sITEpfX0pfSw1MDExMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCg0MDYzOSksRT1MKDkyMDMyKSxFZT1MKDkyMzM3KSxVPUwoMTA4NzUpLFE9W10u''@;'; put 'put ''c2xpY2U7bWUobWUuUCttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7QiYmUS5jYWxsKEIpfSksIkFycmF5Iix7c2xpY2U6ZnVuY3Rpb24ocmUsYWUpe3ZhciBZPVUodGhpcy5sZW5ndGgpLFc9RSh0aGlzKTtpZihhZT12b2lkIDA9PT1hZT9ZOmFlLCJBcnJheSI9PVcpcmV0dXJuIFEuY2FsbCh0''@;'; put 'put ''aGlzLHJlLGFlKTtmb3IodmFyIE49RWUocmUsWSksdGU9RWUoYWUsWSksSz1VKHRlLU4pLEo9bmV3IEFycmF5KEspLHNlPTA7c2U8SztzZSsrKUpbc2VdPSJTdHJpbmciPT1XP3RoaXMuY2hhckF0KE4rc2UpOnRoaXNbTitzZV07cmV0dXJuIEp9fSl9LDI2NzczOihYZSxKZSxMKT0+eyJ1c2Ug''@;'; put 'put ''c3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwMDUwKSgzKTttZShtZS5QK21lLkYqIUwoNzc3MTcpKFtdLnNvbWUsITApLCJBcnJheSIse3NvbWU6ZnVuY3Rpb24oRWUpe3JldHVybiBCKHRoaXMsRWUsYXJndW1lbnRzWzFdKX19KX0sMjAwNzU6KFhlLEplLEwpPT57InVzZSBzdHJpY3Qi''@;'; put 'put ''O3ZhciBtZT1MKDQyOTg1KSxCPUwoMjQ5NjMpLEU9TCgyMDUwOCksRWU9TCg3NDI1MyksVT1bXS5zb3J0LFE9WzEsMiwzXTttZShtZS5QK21lLkYqKEVlKGZ1bmN0aW9uKCl7US5zb3J0KHZvaWQgMCl9KXx8IUVlKGZ1bmN0aW9uKCl7US5zb3J0KG51bGwpfSl8fCFMKDc3NzE3KShVKSksIkFy''@;'; put 'put ''cmF5Iix7c29ydDpmdW5jdGlvbihyZSl7cmV0dXJuIHZvaWQgMD09PXJlP1UuY2FsbChFKHRoaXMpKTpVLmNhbGwoRSh0aGlzKSxCKHJlKSl9fSl9LDMxODQyOihYZSxKZSxMKT0+e0woMjk3NCkoIkFycmF5Iil9LDgxODIyOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJE''@;'; put 'put ''YXRlIix7bm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LDkxMDMxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNTM1MzcpO21lKG1lLlArbWUuRiooRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmchPT1CKSwiRGF0ZSIse3RvSVNPU3RyaW5nOkJ9''@;'; put 'put ''KX0sMTk5Nzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjA1MDgpLEU9TCgyMTY4OSk7bWUobWUuUCttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9K''@;'; put 'put ''U09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9KSwiRGF0ZSIse3RvSlNPTjpmdW5jdGlvbihVKXt2YXIgUT1CKHRoaXMpLGo9RShRKTtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGp8fGlzRmluaXRlKGopP1EudG9JU09TdHJpbmcoKTpudWxsfX0pfSw0MTU2MDoo''@;'; put 'put ''WGUsSmUsTCk9Pnt2YXIgbWU9TCg4NjMxNCkoInRvUHJpbWl0aXZlIiksQj1EYXRlLnByb3RvdHlwZTttZSBpbiBCfHxMKDg3NzI4KShCLG1lLEwoODcwKSl9LDQ2MzMxOihYZSxKZSxMKT0+e3ZhciBtZT1EYXRlLnByb3RvdHlwZSxCPSJJbnZhbGlkIERhdGUiLEU9InRvU3RyaW5nIixFZT1t''@;'; put 'put ''ZVtFXSxVPW1lLmdldFRpbWU7bmV3IERhdGUoTmFOKSsiIiE9QiYmTCg3NzIzNCkobWUsRSxmdW5jdGlvbigpe3ZhciBqPVUuY2FsbCh0aGlzKTtyZXR1cm4gaj09aj9FZS5jYWxsKHRoaXMpOkJ9KX0sMzk3MzA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlAsIkZ1bmN0aW9u''@;'; put 'put ''Iix7YmluZDpMKDM0Mzk4KX0pfSw0ODM3NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNTUyODYpLEI9TCg0NjgpLEU9TCg4NjMxNCkoImhhc0luc3RhbmNlIiksRWU9RnVuY3Rpb24ucHJvdG90eXBlO0UgaW4gRWV8fEwoOTkyNzUpLmYoRWUsRSx7dmFsdWU6ZnVuY3Rpb24o''@;'; put 'put ''VSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXN8fCFtZShVKSlyZXR1cm4hMTtpZighbWUodGhpcy5wcm90b3R5cGUpKXJldHVybiBVIGluc3RhbmNlb2YgdGhpcztmb3IoO1U9QihVKTspaWYodGhpcy5wcm90b3R5cGU9PT1VKXJldHVybiEwO3JldHVybiExfX0pfSw2MDU5OihYZSxKZSxM''@;'; put 'put ''KT0+e3ZhciBtZT1MKDk5Mjc1KS5mLEI9RnVuY3Rpb24ucHJvdG90eXBlLEU9L15ccypmdW5jdGlvbiAoW14gKF0qKS87Im5hbWUiaW4gQnx8TCg2NzA1NykmJm1lKEIsIm5hbWUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChFKVsx''@;'; put 'put ''XX1jYXRjaChVKXtyZXR1cm4iIn19fSl9LDg4NDE2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg5ODI0KSxCPUwoMTYxNiksRT0iTWFwIjtYZS5leHBvcnRzPUwoNDU3OTUpKEUsZnVuY3Rpb24oRWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBFZSh0aGlzLGFyZ3VtZW50''@;'; put 'put ''cy5sZW5ndGg+MD9hcmd1bWVudHNbMF06dm9pZCAwKX19LHtnZXQ6ZnVuY3Rpb24oVSl7dmFyIFE9bWUuZ2V0RW50cnkoQih0aGlzLEUpLFUpO3JldHVybiBRJiZRLnZ9LHNldDpmdW5jdGlvbihVLFEpe3JldHVybiBtZS5kZWYoQih0aGlzLEUpLDA9PT1VPzA6VSxRKX19LG1lLCEwKX0sNzY1''@;'; put 'put ''MDM6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCg0NjIwNiksRT1NYXRoLnNxcnQsRWU9TWF0aC5hY29zaDttZShtZS5TK21lLkYqIShFZSYmNzEwPT1NYXRoLmZsb29yKEVlKE51bWJlci5NQVhfVkFMVUUpKSYmRWUoMS8wKT09MS8wKSwiTWF0aCIse2Fjb3NoOmZ1bmN0aW9uKFEp''@;'; put 'put ''e3JldHVybihRPStRKTwxP05hTjpRPjk0OTA2MjY1LjYyNDI1MTU2P01hdGgubG9nKFEpK01hdGguTE4yOkIoUS0xK0UoUS0xKSpFKFErMSkpfX0pfSw2Njc4NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1NYXRoLmFzaW5oO21lKG1lLlMrbWUuRiohKEImJjEvQigwKT4wKSwiTWF0''@;'; put 'put ''aCIse2FzaW5oOmZ1bmN0aW9uIEUoRWUpe3JldHVybiBpc0Zpbml0ZShFZT0rRWUpJiYwIT1FZT9FZTwwPy1FKC1FZSk6TWF0aC5sb2coRWUrTWF0aC5zcXJ0KEVlKkVlKzEpKTpFZX19KX0sNTA5MzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TWF0aC5hdGFuaDttZShtZS5TK21l''@;'; put 'put ''LkYqIShCJiYxL0IoLTApPDApLCJNYXRoIix7YXRhbmg6ZnVuY3Rpb24oRWUpe3JldHVybiAwPT0oRWU9K0VlKT9FZTpNYXRoLmxvZygoMStFZSkvKDEtRWUpKS8yfX0pfSw1NzUyNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDYxODAxKTttZShtZS5TLCJNYXRoIix7Y2JydDpm''@;'; put 'put ''dW5jdGlvbihFZSl7cmV0dXJuIEIoRWU9K0VlKSpNYXRoLnBvdyhNYXRoLmFicyhFZSksMS8zKX19KX0sMjE1OTE6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtjbHozMjpmdW5jdGlvbihFKXtyZXR1cm4oRT4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9n''@;'; put 'put ''KEUrLjUpKk1hdGguTE9HMkUpOjMyfX0pfSw5MDczOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPU1hdGguZXhwO21lKG1lLlMsIk1hdGgiLHtjb3NoOmZ1bmN0aW9uKEVlKXtyZXR1cm4oQihFZT0rRWUpK0IoLUVlKSkvMn19KX0sODAzNDc6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5''@;'; put 'put ''ODUpLEI9TCgxMzA4Nik7bWUobWUuUyttZS5GKihCIT1NYXRoLmV4cG0xKSwiTWF0aCIse2V4cG0xOkJ9KX0sMzA1Nzk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtmcm91bmQ6TCgzNDkzNCl9KX0sNDY2OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSks''@;'; put 'put ''Qj1NYXRoLmFiczttZShtZS5TLCJNYXRoIix7aHlwb3Q6ZnVuY3Rpb24oRWUsVSl7Zm9yKHZhciBZLFcsUT0wLGo9MCxyZT1hcmd1bWVudHMubGVuZ3RoLGFlPTA7ajxyZTspYWU8KFk9Qihhcmd1bWVudHNbaisrXSkpPyhRPVEqKFc9YWUvWSkqVysxLGFlPVkpOlErPVk+MD8oVz1ZL2FlKSpX''@;'; put 'put ''Olk7cmV0dXJuIGFlPT09MS8wPzEvMDphZSpNYXRoLnNxcnQoUSl9fSl9LDY3NzEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPU1hdGguaW11bDttZShtZS5TK21lLkYqTCg3NDI1MykoZnVuY3Rpb24oKXtyZXR1cm4tNSE9Qig0Mjk0OTY3Mjk1LDUpfHwyIT1CLmxlbmd0aH0pLCJN''@;'; put 'put ''YXRoIix7aW11bDpmdW5jdGlvbihFZSxVKXt2YXIgUT02NTUzNSxqPStFZSxyZT0rVSxhZT1RJmosWT1RJnJlO3JldHVybiAwfGFlKlkrKChRJmo+Pj4xNikqWSthZSooUSZyZT4+PjE2KTw8MTY+Pj4wKX19KX0sNDU3ODk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1h''@;'; put 'put ''dGgiLHtsb2cxMDpmdW5jdGlvbihFKXtyZXR1cm4gTWF0aC5sb2coRSkqTWF0aC5MT0cxMEV9fSl9LDMzNTE0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7bG9nMXA6TCg0NjIwNil9KX0sOTk5Nzg6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1l''@;'; put 'put ''LlMsIk1hdGgiLHtsb2cyOmZ1bmN0aW9uKEUpe3JldHVybiBNYXRoLmxvZyhFKS9NYXRoLkxOMn19KX0sNTg0NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk1hdGgiLHtzaWduOkwoNjE4MDEpfSl9LDg2OTQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwo''@;'; put 'put ''MTMwODYpLEU9TWF0aC5leHA7bWUobWUuUyttZS5GKkwoNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuLTJlLTE3IT0hTWF0aC5zaW5oKC0yZS0xNyl9KSwiTWF0aCIse3Npbmg6ZnVuY3Rpb24oVSl7cmV0dXJuIE1hdGguYWJzKFU9K1UpPDE/KEIoVSktQigtVSkpLzI6KEUoVS0xKS1FKC1VLTEp''@;'; put 'put ''KSooTWF0aC5FLzIpfX0pfSwzNTA2ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDEzMDg2KSxFPU1hdGguZXhwO21lKG1lLlMsIk1hdGgiLHt0YW5oOmZ1bmN0aW9uKFUpe3ZhciBRPUIoVT0rVSksaj1CKC1VKTtyZXR1cm4gUT09MS8wPzE6aj09MS8wPy0xOihRLWopLyhFKFUp''@;'; put 'put ''K0UoLVUpKX19KX0sNDEzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJNYXRoIix7dHJ1bmM6ZnVuY3Rpb24oRSl7cmV0dXJuKEU+MD9NYXRoLmZsb29yOk1hdGguY2VpbCkoRSl9fSl9LDExMjQ2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzODE2KSxC''@;'; put 'put ''PUwoNzkxODEpLEU9TCg5MjAzMiksRWU9TCg0MDI2NiksVT1MKDIxNjg5KSxRPUwoNzQyNTMpLGo9TCgyMDYxNikuZixyZT1MKDE4NjkzKS5mLGFlPUwoOTkyNzUpLmYsWT1MKDI5NTk5KS50cmltLFc9Ik51bWJlciIsTj1tZVtXXSx0ZT1OLEs9Ti5wcm90b3R5cGUsSj1FKEwoNDI1MDMpKEsp''@;'; put 'put ''KT09VyxzZT0idHJpbSJpbiBTdHJpbmcucHJvdG90eXBlLG9lPWZ1bmN0aW9uKEFlKXt2YXIga2U9VShBZSwhMSk7aWYoInN0cmluZyI9PXR5cGVvZiBrZSYma2UubGVuZ3RoPjIpe3ZhciBJZSxUZSxNZSxTZT0oa2U9c2U/a2UudHJpbSgpOlkoa2UsMykpLmNoYXJDb2RlQXQoMCk7aWYoNDM9''@;'; put 'put ''PT1TZXx8NDU9PT1TZSl7aWYoODg9PT0oSWU9a2UuY2hhckNvZGVBdCgyKSl8fDEyMD09PUllKXJldHVybiBOYU59ZWxzZSBpZig0OD09PVNlKXtzd2l0Y2goa2UuY2hhckNvZGVBdCgxKSl7Y2FzZSA2NjpjYXNlIDk4OlRlPTIsTWU9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpUZT04LE1l''@;'; put 'put ''PTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK2tlfWZvcih2YXIgZWUsaGU9a2Uuc2xpY2UoMiksTz0wLHo9aGUubGVuZ3RoO088ejtPKyspaWYoKGVlPWhlLmNoYXJDb2RlQXQoTykpPDQ4fHxlZT5NZSlyZXR1cm4gTmFOO3JldHVybiBwYXJzZUludChoZSxUZSl9fXJldHVybitrZX07aWYoIU4o''@;'; put 'put ''IiAwbzEiKXx8IU4oIjBiMSIpfHxOKCIrMHgxIikpe049ZnVuY3Rpb24oa2Upe3ZhciBTZT1hcmd1bWVudHMubGVuZ3RoPDE/MDprZSxJZT10aGlzO3JldHVybiBJZSBpbnN0YW5jZW9mIE4mJihKP1EoZnVuY3Rpb24oKXtLLnZhbHVlT2YuY2FsbChJZSl9KTpFKEllKSE9Vyk/RWUobmV3IHRl''@;'; put 'put ''KG9lKFNlKSksSWUsTik6b2UoU2UpfTtmb3IodmFyIHZlLGNlPUwoNjcwNTcpP2oodGUpOiJNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSxFUFNJTE9OLGlzRmluaXRlLGlzSW50ZWdlcixpc05hTixpc1NhZmVJbnRlZ2VyLE1BWF9T''@;'; put 'put ''QUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5URUdFUixwYXJzZUZsb2F0LHBhcnNlSW50LGlzSW50ZWdlciIuc3BsaXQoIiwiKSxkZT0wO2NlLmxlbmd0aD5kZTtkZSsrKUIodGUsdmU9Y2VbZGVdKSYmIUIoTix2ZSkmJmFlKE4sdmUscmUodGUsdmUpKTtOLnByb3RvdHlwZT1LLEsuY29uc3RydWN0''@;'; put 'put ''b3I9TixMKDc3MjM0KShtZSxXLE4pfX0sNzU5NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk51bWJlciIse0VQU0lMT046TWF0aC5wb3coMiwtNTIpfSl9LDUzNDAzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoMzgxNikuaXNGaW5pdGU7bWUobWUuUywi''@;'; put 'put ''TnVtYmVyIix7aXNGaW5pdGU6ZnVuY3Rpb24oRWUpe3JldHVybiJudW1iZXIiPT10eXBlb2YgRWUmJkIoRWUpfX0pfSw5MjUxNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiTnVtYmVyIix7aXNJbnRlZ2VyOkwoMTgzNjcpfSl9LDQ5MzcxOihYZSxKZSxMKT0+e3ZhciBt''@;'; put 'put ''ZT1MKDQyOTg1KTttZShtZS5TLCJOdW1iZXIiLHtpc05hTjpmdW5jdGlvbihFKXtyZXR1cm4gRSE9RX19KX0sODY0Nzk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgxODM2NyksRT1NYXRoLmFiczttZShtZS5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKFUpe3Jl''@;'; put 'put ''dHVybiBCKFUpJiZFKFUpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSw5MTczNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiTnVtYmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LDUxODg5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZSht''@;'; put 'put ''ZS5TLCJOdW1iZXIiLHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LDY1MTc3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDc3NDMpO21lKG1lLlMrbWUuRiooTnVtYmVyLnBhcnNlRmxvYXQhPUIpLCJOdW1iZXIiLHtwYXJzZUZsb2F0OkJ9KX0sODEyNDY6''@;'; put 'put ''KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCg1NTk2MCk7bWUobWUuUyttZS5GKihOdW1iZXIucGFyc2VJbnQhPUIpLCJOdW1iZXIiLHtwYXJzZUludDpCfSl9LDMwNzI2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDgxNDY3KSxFPUwoODMzNjUp''@;'; put 'put ''LEVlPUwoNjg1OTUpLFU9MS4udG9GaXhlZCxRPU1hdGguZmxvb3Isaj1bMCwwLDAsMCwwLDBdLHJlPSJOdW1iZXIudG9GaXhlZDogaW5jb3JyZWN0IGludm9jYXRpb24hIixZPWZ1bmN0aW9uKEosc2Upe2Zvcih2YXIgb2U9LTEsY2U9c2U7KytvZTw2OylqW29lXT0oY2UrPUoqaltvZV0pJTFl''@;'; put 'put ''NyxjZT1RKGNlLzFlNyl9LFc9ZnVuY3Rpb24oSil7Zm9yKHZhciBzZT02LG9lPTA7LS1zZT49MDspaltzZV09USgob2UrPWpbc2VdKS9KKSxvZT1vZSVKKjFlN30sTj1mdW5jdGlvbigpe2Zvcih2YXIgSj02LHNlPSIiOy0tSj49MDspaWYoIiIhPT1zZXx8MD09PUp8fDAhPT1qW0pdKXt2YXIg''@;'; put 'put ''b2U9U3RyaW5nKGpbSl0pO3NlPSIiPT09c2U/b2U6c2UrRWUuY2FsbCgiMCIsNy1vZS5sZW5ndGgpK29lfXJldHVybiBzZX0sdGU9ZnVuY3Rpb24oSixzZSxvZSl7cmV0dXJuIDA9PT1zZT9vZTpzZSUyPT0xP3RlKEosc2UtMSxvZSpKKTp0ZShKKkosc2UvMixvZSl9O21lKG1lLlArbWUuRioo''@;'; put 'put ''ISFVJiYoIjAuMDAwIiE9PThlLTUudG9GaXhlZCgzKXx8IjEiIT09LjkudG9GaXhlZCgwKXx8IjEuMjUiIT09MS4yNTUudG9GaXhlZCgyKXx8IjEwMDAwMDAwMDAwMDAwMDAxMjgiIT09KDB4ZGUwYjZiM2E3NjQwMDgwKS50b0ZpeGVkKDApKXx8IUwoNzQyNTMpKGZ1bmN0aW9uKCl7VS5jYWxs''@;'; put 'put ''KHt9KX0pKSwiTnVtYmVyIix7dG9GaXhlZDpmdW5jdGlvbihzZSl7dmFyIEFlLGtlLFNlLEllLG9lPUUodGhpcyxyZSksY2U9QihzZSksZGU9IiIsdmU9IjAiO2lmKGNlPDB8fGNlPjIwKXRocm93IFJhbmdlRXJyb3IocmUpO2lmKG9lIT1vZSlyZXR1cm4iTmFOIjtpZihvZTw9LTFlMjF8fG9l''@;'; put 'put ''Pj0xZTIxKXJldHVybiBTdHJpbmcob2UpO2lmKG9lPDAmJihkZT0iLSIsb2U9LW9lKSxvZT4xZS0yMSlpZihBZT1mdW5jdGlvbihKKXtmb3IodmFyIHNlPTAsb2U9SjtvZT49NDA5Njspc2UrPTEyLG9lLz00MDk2O2Zvcig7b2U+PTI7KXNlKz0xLG9lLz0yO3JldHVybiBzZX0ob2UqdGUoMiw2''@;'; put 'put ''OSwxKSktNjksa2U9QWU8MD9vZSp0ZSgyLC1BZSwxKTpvZS90ZSgyLEFlLDEpLGtlKj00NTAzNTk5NjI3MzcwNDk2LChBZT01Mi1BZSk+MCl7Zm9yKFkoMCxrZSksU2U9Y2U7U2U+PTc7KVkoMWU3LDApLFNlLT03O2ZvcihZKHRlKDEwLFNlLDEpLDApLFNlPUFlLTE7U2U+PTIzOylXKDE8PDIz''@;'; put 'put ''KSxTZS09MjM7VygxPDxTZSksWSgxLDEpLFcoMiksdmU9TigpfWVsc2UgWSgwLGtlKSxZKDE8PC1BZSwwKSx2ZT1OKCkrRWUuY2FsbCgiMCIsY2UpO3JldHVybiB2ZT1jZT4wP2RlKygoSWU9dmUubGVuZ3RoKTw9Y2U/IjAuIitFZS5jYWxsKCIwIixjZS1JZSkrdmU6dmUuc2xpY2UoMCxJZS1j''@;'; put 'put ''ZSkrIi4iK3ZlLnNsaWNlKEllLWNlKSk6ZGUrdmV9fSl9LDE5MDE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoNzQyNTMpLEU9TCg4MzM2NSksRWU9MS4udG9QcmVjaXNpb247bWUobWUuUCttZS5GKihCKGZ1bmN0aW9uKCl7cmV0dXJuIjEiIT09RWUuY2Fs''@;'; put 'put ''bCgxLHZvaWQgMCl9KXx8IUIoZnVuY3Rpb24oKXtFZS5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oUSl7dmFyIGo9RSh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiB2b2lkIDA9PT1RP0VlLmNhbGwoaik6''@;'; put 'put ''RWUuY2FsbChqLFEpfX0pfSw3NTExNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUyttZS5GLCJPYmplY3QiLHthc3NpZ246TCgzNTM0NSl9KX0sNjgxMzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlMsIk9iamVjdCIse2NyZWF0ZTpMKDQyNTAzKX0pfSwz''@;'; put 'put ''NzQ3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUyttZS5GKiFMKDY3MDU3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydGllczpMKDM1NTg4KX0pfSw0ODM4ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUyttZS5GKiFMKDY3MDU3KSwiT2JqZWN0Iix7ZGVm''@;'; put 'put ''aW5lUHJvcGVydHk6TCg5OTI3NSkuZn0pfSw4OTM3NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDg0NzI4KS5vbkZyZWV6ZTtMKDMzMTYwKSgiZnJlZXplIixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oVSl7cmV0dXJuIEUmJm1lKFUpP0UoQihVKSk6VX19KX0sOTQ4ODI6''@;'; put 'put ''KFhlLEplLEwpPT57dmFyIG1lPUwoMjIxMTApLEI9TCgxODY5MykuZjtMKDMzMTYwKSgiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihFZSxVKXtyZXR1cm4gQihtZShFZSksVSl9fSl9LDc5NjIyOihYZSxKZSxMKT0+e0woMzMxNjApKCJnZXRP''@;'; put 'put ''d25Qcm9wZXJ0eU5hbWVzIixmdW5jdGlvbigpe3JldHVybiBMKDM5MzI3KS5mfSl9LDQxNTIwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDIwNTA4KSxCPUwoNDY4KTtMKDMzMTYwKSgiZ2V0UHJvdG90eXBlT2YiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKEVlKXtyZXR1cm4gQihtZShFZSkp''@;'; put 'put ''fX0pfSw0OTg5MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4Nik7TCgzMzE2MCkoImlzRXh0ZW5zaWJsZSIsZnVuY3Rpb24oQil7cmV0dXJuIGZ1bmN0aW9uKEVlKXtyZXR1cm4hIW1lKEVlKSYmKCFCfHxCKEVlKSl9fSl9LDY0MTU3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU1Mjg2KTtMKDMz''@;'; put 'put ''MTYwKSgiaXNGcm96ZW4iLGZ1bmN0aW9uKEIpe3JldHVybiBmdW5jdGlvbihFZSl7cmV0dXJuIW1lKEVlKXx8ISFCJiZCKEVlKX19KX0sMzUwOTU6KFhlLEplLEwpPT57dmFyIG1lPUwoNTUyODYpO0woMzMxNjApKCJpc1NlYWxlZCIsZnVuY3Rpb24oQil7cmV0dXJuIGZ1bmN0aW9uKEVlKXty''@;'; put 'put ''ZXR1cm4hbWUoRWUpfHwhIUImJkIoRWUpfX0pfSw5OTE3NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiT2JqZWN0Iix7aXM6TCgyNzE5NSl9KX0sMjc0NzY6KFhlLEplLEwpPT57dmFyIG1lPUwoMjA1MDgpLEI9TCg0NzE4NCk7TCgzMzE2MCkoImtleXMiLGZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIGZ1bmN0aW9uKEVlKXtyZXR1cm4gQihtZShFZSkpfX0pfSw4NDY3MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDg0NzI4KS5vbkZyZWV6ZTtMKDMzMTYwKSgicHJldmVudEV4dGVuc2lvbnMiLGZ1bmN0aW9uKEUpe3JldHVybiBmdW5jdGlvbihVKXtyZXR1cm4g''@;'; put 'put ''RSYmbWUoVSk/RShCKFUpKTpVfX0pfSw0MzUzMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1NTI4NiksQj1MKDg0NzI4KS5vbkZyZWV6ZTtMKDMzMTYwKSgic2VhbCIsZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKFUpe3JldHVybiBFJiZtZShVKT9FKEIoVSkpOlV9fSl9LDY4ODM4OihYZSxK''@;'; put 'put ''ZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpMKDI3Mzc1KS5zZXR9KX0sOTYyNTM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQxNDg4KSxCPXt9O0JbTCg4NjMxNCkoInRvU3RyaW5nVGFnIildPSJ6IixCKyIiIT0iW29i''@;'; put 'put ''amVjdCB6XSImJkwoNzcyMzQpKE9iamVjdC5wcm90b3R5cGUsInRvU3RyaW5nIixmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0ICIrbWUodGhpcykrIl0ifSwhMCl9LDY0Mjk5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDc3NDMpO21lKG1lLkcrbWUuRioocGFyc2VGbG9hdCE9''@;'; put 'put ''Qikse3BhcnNlRmxvYXQ6Qn0pfSw3MTA4NDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDU1OTYwKTttZShtZS5HK21lLkYqKHBhcnNlSW50IT1CKSx7cGFyc2VJbnQ6Qn0pfSwyMTU3MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDI0OTYzKSxFPUwoMjcwMDcpLEVl''@;'; put 'put ''PShMKDM4MTYpLlJlZmxlY3R8fHt9KS5hcHBseSxVPUZ1bmN0aW9uLmFwcGx5O21lKG1lLlMrbWUuRiohTCg3NDI1MykoZnVuY3Rpb24oKXtFZShmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihqLHJlLGFlKXt2YXIgWT1CKGopLFc9RShhZSk7cmV0dXJuIEVlP0Vl''@;'; put 'put ''KFkscmUsVyk6VS5jYWxsKFkscmUsVyl9fSl9LDgyMTM5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KSxCPUwoNDI1MDMpLEU9TCgyNDk2MyksRWU9TCgyNzAwNyksVT1MKDU1Mjg2KSxRPUwoNzQyNTMpLGo9TCgzNDM5OCkscmU9KEwoMzgxNikuUmVmbGVjdHx8e30pLmNvbnN0cnVjdCxh''@;'; put 'put ''ZT1RKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gVygpe31yZXR1cm4hKHJlKGZ1bmN0aW9uKCl7fSxbXSxXKWluc3RhbmNlb2YgVyl9KSxZPSFRKGZ1bmN0aW9uKCl7cmUoZnVuY3Rpb24oKXt9KX0pO21lKG1lLlMrbWUuRiooYWV8fFkpLCJSZWZsZWN0Iix7Y29uc3RydWN0OmZ1bmN0aW9uKE4sdGUp''@;'; put 'put ''e0UoTiksRWUodGUpO3ZhciBLPWFyZ3VtZW50cy5sZW5ndGg8Mz9OOkUoYXJndW1lbnRzWzJdKTtpZihZJiYhYWUpcmV0dXJuIHJlKE4sdGUsSyk7aWYoTj09Syl7c3dpdGNoKHRlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgTjtjYXNlIDE6cmV0dXJuIG5ldyBOKHRlWzBdKTtjYXNlIDI6''@;'; put 'put ''cmV0dXJuIG5ldyBOKHRlWzBdLHRlWzFdKTtjYXNlIDM6cmV0dXJuIG5ldyBOKHRlWzBdLHRlWzFdLHRlWzJdKTtjYXNlIDQ6cmV0dXJuIG5ldyBOKHRlWzBdLHRlWzFdLHRlWzJdLHRlWzNdKX12YXIgSj1bbnVsbF07cmV0dXJuIEoucHVzaC5hcHBseShKLHRlKSxuZXcoai5hcHBseShOLEop''@;'; put 'put ''KX12YXIgc2U9Sy5wcm90b3R5cGUsb2U9QihVKHNlKT9zZTpPYmplY3QucHJvdG90eXBlKSxjZT1GdW5jdGlvbi5hcHBseS5jYWxsKE4sb2UsdGUpO3JldHVybiBVKGNlKT9jZTpvZX19KX0sMTA2ODU6KFhlLEplLEwpPT57dmFyIG1lPUwoOTkyNzUpLEI9TCg0Mjk4NSksRT1MKDI3MDA3KSxF''@;'; put 'put ''ZT1MKDIxNjg5KTtCKEIuUytCLkYqTCg3NDI1MykoZnVuY3Rpb24oKXtSZWZsZWN0LmRlZmluZVByb3BlcnR5KG1lLmYoe30sMSx7dmFsdWU6MX0pLDEse3ZhbHVlOjJ9KX0pLCJSZWZsZWN0Iix7ZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oUSxqLHJlKXtFKFEpLGo9RWUoaiwhMCksRShyZSk7''@;'; put 'put ''dHJ5e3JldHVybiBtZS5mKFEsaixyZSksITB9Y2F0Y2goYWUpe3JldHVybiExfX19KX0sODU1MzU6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgxODY5MykuZixFPUwoMjcwMDcpO21lKG1lLlMsIlJlZmxlY3QiLHtkZWxldGVQcm9wZXJ0eTpmdW5jdGlvbihVLFEpe3ZhciBqPUIo''@;'; put 'put ''RShVKSxRKTtyZXR1cm4hKGomJiFqLmNvbmZpZ3VyYWJsZSkmJmRlbGV0ZSBVW1FdfX0pfSwxNzM0NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNDI5ODUpLEI9TCgyNzAwNyksRT1mdW5jdGlvbihFZSl7dGhpcy5fdD1CKEVlKSx0aGlzLl9pPTA7dmFyIFEsVT10aGlzLl9r''@;'; put 'put ''PVtdO2ZvcihRIGluIEVlKVUucHVzaChRKX07TCg0OTk4OCkoRSwiT2JqZWN0IixmdW5jdGlvbigpe3ZhciBRLFU9dGhpcy5faztkb3tpZih0aGlzLl9pPj1VLmxlbmd0aClyZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fXdoaWxlKCEoKFE9VVt0aGlzLl9pKytdKWluIHRoaXMuX3QpKTty''@;'; put 'put ''ZXR1cm57dmFsdWU6USxkb25lOiExfX0pLG1lKG1lLlMsIlJlZmxlY3QiLHtlbnVtZXJhdGU6ZnVuY3Rpb24oVSl7cmV0dXJuIG5ldyBFKFUpfX0pfSw5NjYzMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxODY5MyksQj1MKDQyOTg1KSxFPUwoMjcwMDcpO0IoQi5TLCJSZWZsZWN0Iix7Z2V0T3du''@;'; put 'put ''UHJvcGVydHlEZXNjcmlwdG9yOmZ1bmN0aW9uKFUsUSl7cmV0dXJuIG1lLmYoRShVKSxRKX19KX0sNjg5ODk6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCg0NjgpLEU9TCgyNzAwNyk7bWUobWUuUywiUmVmbGVjdCIse2dldFByb3RvdHlwZU9mOmZ1bmN0aW9uKFUpe3JldHVybiBC''@;'; put 'put ''KEUoVSkpfX0pfSw4MzA0OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxODY5MyksQj1MKDQ2OCksRT1MKDc5MTgxKSxFZT1MKDQyOTg1KSxVPUwoNTUyODYpLFE9TCgyNzAwNyk7RWUoRWUuUywiUmVmbGVjdCIse2dldDpmdW5jdGlvbiBqKHJlLGFlKXt2YXIgVyxOLFk9YXJndW1lbnRzLmxlbmd0''@;'; put 'put ''aDwzP3JlOmFyZ3VtZW50c1syXTtyZXR1cm4gUShyZSk9PT1ZP3JlW2FlXTooVz1tZS5mKHJlLGFlKSk/RShXLCJ2YWx1ZSIpP1cudmFsdWU6dm9pZCAwIT09Vy5nZXQ/Vy5nZXQuY2FsbChZKTp2b2lkIDA6VShOPUIocmUpKT9qKE4sYWUsWSk6dm9pZCAwfX0pfSw3ODI3MDooWGUsSmUsTCk9''@;'; put 'put ''Pnt2YXIgbWU9TCg0Mjk4NSk7bWUobWUuUywiUmVmbGVjdCIse2hhczpmdW5jdGlvbihFLEVlKXtyZXR1cm4gRWUgaW4gRX19KX0sNjQ1MTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNDI5ODUpLEI9TCgyNzAwNyksRT1PYmplY3QuaXNFeHRlbnNpYmxlO21lKG1lLlMsIlJlZmxlY3QiLHtpc0V4''@;'; put 'put ''dGVuc2libGU6ZnVuY3Rpb24oVSl7cmV0dXJuIEIoVSksIUV8fEUoVSl9fSl9LDczOTg0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQyOTg1KTttZShtZS5TLCJSZWZsZWN0Iix7b3duS2V5czpMKDU3NjQzKX0pfSw3NTc2OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDI3MDA3KSxF''@;'; put 'put ''PU9iamVjdC5wcmV2ZW50RXh0ZW5zaW9uczttZShtZS5TLCJSZWZsZWN0Iix7cHJldmVudEV4dGVuc2lvbnM6ZnVuY3Rpb24oVSl7QihVKTt0cnl7cmV0dXJuIEUmJkUoVSksITB9Y2F0Y2goUSl7cmV0dXJuITF9fX0pfSw5NjAxNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDI3''@;'; put 'put ''Mzc1KTtCJiZtZShtZS5TLCJSZWZsZWN0Iix7c2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oRWUsVSl7Qi5jaGVjayhFZSxVKTt0cnl7cmV0dXJuIEIuc2V0KEVlLFUpLCEwfWNhdGNoKFEpe3JldHVybiExfX19KX0sNTAwNTU6KFhlLEplLEwpPT57dmFyIG1lPUwoOTkyNzUpLEI9TCgxODY5Myks''@;'; put 'put ''RT1MKDQ2OCksRWU9TCg3OTE4MSksVT1MKDQyOTg1KSxRPUwoOTA2ODEpLGo9TCgyNzAwNykscmU9TCg1NTI4Nik7VShVLlMsIlJlZmxlY3QiLHtzZXQ6ZnVuY3Rpb24gYWUoWSxXLE4pe3ZhciBKLHNlLHRlPWFyZ3VtZW50cy5sZW5ndGg8ND9ZOmFyZ3VtZW50c1szXSxLPUIuZihqKFkpLFcp''@;'; put 'put ''O2lmKCFLKXtpZihyZShzZT1FKFkpKSlyZXR1cm4gYWUoc2UsVyxOLHRlKTtLPVEoMCl9aWYoRWUoSywidmFsdWUiKSl7aWYoITE9PT1LLndyaXRhYmxlfHwhcmUodGUpKXJldHVybiExO2lmKEo9Qi5mKHRlLFcpKXtpZihKLmdldHx8Si5zZXR8fCExPT09Si53cml0YWJsZSlyZXR1cm4hMTtK''@;'; put 'put ''LnZhbHVlPU4sbWUuZih0ZSxXLEopfWVsc2UgbWUuZih0ZSxXLFEoMCxOKSk7cmV0dXJuITB9cmV0dXJuIHZvaWQgMCE9PUsuc2V0JiYoSy5zZXQuY2FsbCh0ZSxOKSwhMCl9fSl9LDgzOTQ2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM4MTYpLEI9TCg0MDI2NiksRT1MKDk5Mjc1KS5mLEVlPUwo''@;'; put 'put ''MjA2MTYpLmYsVT1MKDU1MzY0KSxRPUwoNTMyMTgpLGo9bWUuUmVnRXhwLHJlPWosYWU9ai5wcm90b3R5cGUsWT0vYS9nLFc9L2EvZyxOPW5ldyBqKFkpIT09WTtpZihMKDY3MDU3KSYmKCFOfHxMKDc0MjUzKShmdW5jdGlvbigpe3JldHVybiBXW0woODYzMTQpKCJtYXRjaCIpXT0hMSxqKFkp''@;'; put 'put ''IT1ZfHxqKFcpPT1XfHwiL2EvaSIhPWooWSwiaSIpfSkpKXtqPWZ1bmN0aW9uKG9lLGNlKXt2YXIgZGU9dGhpcyBpbnN0YW5jZW9mIGosdmU9VShvZSksQWU9dm9pZCAwPT09Y2U7cmV0dXJuIWRlJiZ2ZSYmb2UuY29uc3RydWN0b3I9PT1qJiZBZT9vZTpCKE4/bmV3IHJlKHZlJiYhQWU/b2Uu''@;'; put 'put ''c291cmNlOm9lLGNlKTpyZSgodmU9b2UgaW5zdGFuY2VvZiBqKT9vZS5zb3VyY2U6b2UsdmUmJkFlP1EuY2FsbChvZSk6Y2UpLGRlP3RoaXM6YWUsail9O2Zvcih2YXIgdGU9ZnVuY3Rpb24oc2Upe3NlIGluIGp8fEUoaixzZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biByZVtzZV19LHNldDpmdW5jdGlvbihvZSl7cmVbc2VdPW9lfX0pfSxLPUVlKHJlKSxKPTA7Sy5sZW5ndGg+SjspdGUoS1tKKytdKTthZS5jb25zdHJ1Y3Rvcj1qLGoucHJvdG90eXBlPWFlLEwoNzcyMzQpKG1lLCJSZWdFeHAiLGopfUwoMjk3NCkoIlJlZ0V4cCIpfSwxODI2OTooWGUsSmUs''@;'; put 'put ''TCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjExNjUpO0woNDI5ODUpKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOm1lIT09Ly4vLmV4ZWN9LHtleGVjOm1lfSl9LDc2Nzc0OihYZSxKZSxMKT0+e0woNjcwNTcpJiYiZyIhPS8uL2cuZmxhZ3MmJkwoOTkyNzUpLmYoUmVnRXhw''@;'; put 'put ''LnByb3RvdHlwZSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0OkwoNTMyMTgpfSl9LDIxNDY2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgyNzAwNyksQj1MKDEwODc1KSxFPUwoNzY3OTMpLEVlPUwoMjc3ODcpO0woMjgwODIpKCJtYXRjaCIsMSxmdW5jdGlvbihVLFEs''@;'; put 'put ''aixyZSl7cmV0dXJuW2Z1bmN0aW9uKFkpe3ZhciBXPVUodGhpcyksTj1udWxsPT1ZP3ZvaWQgMDpZW1FdO3JldHVybiB2b2lkIDAhPT1OP04uY2FsbChZLFcpOm5ldyBSZWdFeHAoWSlbUV0oU3RyaW5nKFcpKX0sZnVuY3Rpb24oYWUpe3ZhciBZPXJlKGosYWUsdGhpcyk7aWYoWS5kb25lKXJl''@;'; put 'put ''dHVybiBZLnZhbHVlO3ZhciBXPW1lKGFlKSxOPVN0cmluZyh0aGlzKTtpZighVy5nbG9iYWwpcmV0dXJuIEVlKFcsTik7dmFyIHRlPVcudW5pY29kZTtXLmxhc3RJbmRleD0wO2Zvcih2YXIgc2UsSz1bXSxKPTA7bnVsbCE9PShzZT1FZShXLE4pKTspe3ZhciBvZT1TdHJpbmcoc2VbMF0pO0tb''@;'; put 'put ''Sl09b2UsIiI9PT1vZSYmKFcubGFzdEluZGV4PUUoTixCKFcubGFzdEluZGV4KSx0ZSkpLEorK31yZXR1cm4gMD09PUo/bnVsbDpLfV19KX0sNTkzNTc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI3MDA3KSxCPUwoMjA1MDgpLEU9TCgxMDg3NSksRWU9TCg4MTQ2NyksVT1M''@;'; put 'put ''KDc2NzkzKSxRPUwoMjc3ODcpLGo9TWF0aC5tYXgscmU9TWF0aC5taW4sYWU9TWF0aC5mbG9vcixZPS9cJChbJCZgJ118XGRcZD98PFtePl0qPikvZyxXPS9cJChbJCZgJ118XGRcZD8pL2csTj1mdW5jdGlvbih0ZSl7cmV0dXJuIHZvaWQgMD09PXRlP3RlOlN0cmluZyh0ZSl9O0woMjgwODIp''@;'; put 'put ''KCJyZXBsYWNlIiwyLGZ1bmN0aW9uKHRlLEssSixzZSl7cmV0dXJuW2Z1bmN0aW9uKGRlLHZlKXt2YXIgQWU9dGUodGhpcyksa2U9bnVsbD09ZGU/dm9pZCAwOmRlW0tdO3JldHVybiB2b2lkIDAhPT1rZT9rZS5jYWxsKGRlLEFlLHZlKTpKLmNhbGwoU3RyaW5nKEFlKSxkZSx2ZSl9LGZ1bmN0''@;'; put 'put ''aW9uKGNlLGRlKXt2YXIgdmU9c2UoSixjZSx0aGlzLGRlKTtpZih2ZS5kb25lKXJldHVybiB2ZS52YWx1ZTt2YXIgQWU9bWUoY2UpLGtlPVN0cmluZyh0aGlzKSxTZT0iZnVuY3Rpb24iPT10eXBlb2YgZGU7U2V8fChkZT1TdHJpbmcoZGUpKTt2YXIgSWU9QWUuZ2xvYmFsO2lmKEllKXt2YXIg''@;'; put 'put ''VGU9QWUudW5pY29kZTtBZS5sYXN0SW5kZXg9MH1mb3IodmFyIE1lPVtdOzspe3ZhciBoZT1RKEFlLGtlKTtpZihudWxsPT09aGV8fChNZS5wdXNoKGhlKSwhSWUpKWJyZWFrOyIiPT09U3RyaW5nKGhlWzBdKSYmKEFlLmxhc3RJbmRleD1VKGtlLEUoQWUubGFzdEluZGV4KSxUZSkpfWZvcih2''@;'; put 'put ''YXIgej0iIixlZT0wLG5lPTA7bmU8TWUubGVuZ3RoO25lKyspe2hlPU1lW25lXTtmb3IodmFyIHg9U3RyaW5nKGhlWzBdKSxQPWoocmUoRWUoaGUuaW5kZXgpLGtlLmxlbmd0aCksMCksVj1bXSxUPTE7VDxoZS5sZW5ndGg7VCsrKVYucHVzaChOKGhlW1RdKSk7dmFyIFM9aGUuZ3JvdXBzO2lm''@;'; put 'put ''KFNlKXt2YXIgRj1beF0uY29uY2F0KFYsUCxrZSk7dm9pZCAwIT09UyYmRi5wdXNoKFMpO3ZhciB5ZT1TdHJpbmcoZGUuYXBwbHkodm9pZCAwLEYpKX1lbHNlIHllPW9lKHgsa2UsUCxWLFMsZGUpO1A+PWVlJiYoeis9a2Uuc2xpY2UoZWUsUCkreWUsZWU9UCt4Lmxlbmd0aCl9cmV0dXJuIHor''@;'; put 'put ''a2Uuc2xpY2UoZWUpfV07ZnVuY3Rpb24gb2UoY2UsZGUsdmUsQWUsa2UsU2Upe3ZhciBJZT12ZStjZS5sZW5ndGgsVGU9QWUubGVuZ3RoLE1lPVc7cmV0dXJuIHZvaWQgMCE9PWtlJiYoa2U9QihrZSksTWU9WSksSi5jYWxsKFNlLE1lLGZ1bmN0aW9uKGhlLE8pe3ZhciB6O3N3aXRjaChPLmNo''@;'; put 'put ''YXJBdCgwKSl7Y2FzZSIkIjpyZXR1cm4iJCI7Y2FzZSImIjpyZXR1cm4gY2U7Y2FzZSJgIjpyZXR1cm4gZGUuc2xpY2UoMCx2ZSk7Y2FzZSInIjpyZXR1cm4gZGUuc2xpY2UoSWUpO2Nhc2UiPCI6ej1rZVtPLnNsaWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBlZT0rTztpZigwPT09ZWUp''@;'; put 'put ''cmV0dXJuIGhlO2lmKGVlPlRlKXt2YXIgbmU9YWUoZWUvMTApO3JldHVybiAwPT09bmU/aGU6bmU8PVRlP3ZvaWQgMD09PUFlW25lLTFdP08uY2hhckF0KDEpOkFlW25lLTFdK08uY2hhckF0KDEpOmhlfXo9QWVbZWUtMV19cmV0dXJuIHZvaWQgMD09PXo/IiI6en0pfX0pfSw3NjE0MjooWGUs''@;'; put 'put ''SmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjcwMDcpLEI9TCgyNzE5NSksRT1MKDI3Nzg3KTtMKDI4MDgyKSgic2VhcmNoIiwxLGZ1bmN0aW9uKEVlLFUsUSxqKXtyZXR1cm5bZnVuY3Rpb24oYWUpe3ZhciBZPUVlKHRoaXMpLFc9bnVsbD09YWU/dm9pZCAwOmFlW1VdO3JldHVybiB2''@;'; put 'put ''b2lkIDAhPT1XP1cuY2FsbChhZSxZKTpuZXcgUmVnRXhwKGFlKVtVXShTdHJpbmcoWSkpfSxmdW5jdGlvbihyZSl7dmFyIGFlPWooUSxyZSx0aGlzKTtpZihhZS5kb25lKXJldHVybiBhZS52YWx1ZTt2YXIgWT1tZShyZSksVz1TdHJpbmcodGhpcyksTj1ZLmxhc3RJbmRleDtCKE4sMCl8fChZ''@;'; put 'put ''Lmxhc3RJbmRleD0wKTt2YXIgdGU9RShZLFcpO3JldHVybiBCKFkubGFzdEluZGV4LE4pfHwoWS5sYXN0SW5kZXg9TiksbnVsbD09PXRlPy0xOnRlLmluZGV4fV19KX0sNTE4NzY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDU1MzY0KSxCPUwoMjcwMDcpLEU9TCg1ODM2NCks''@;'; put 'put ''RWU9TCg3Njc5MyksVT1MKDEwODc1KSxRPUwoMjc3ODcpLGo9TCgyMTE2NSkscmU9TCg3NDI1MyksYWU9TWF0aC5taW4sWT1bXS5wdXNoLFc9InNwbGl0IixOPSJsZW5ndGgiLHRlPSJsYXN0SW5kZXgiLEs9NDI5NDk2NzI5NSxKPSFyZShmdW5jdGlvbigpe1JlZ0V4cChLLCJ5Iil9KTtMKDI4''@;'; put 'put ''MDgyKSgic3BsaXQiLDIsZnVuY3Rpb24oc2Usb2UsY2UsZGUpe3ZhciB2ZTtyZXR1cm4gdmU9ImMiPT0iYWJiYyJbV10oLyhiKSovKVsxXXx8NCE9InRlc3QiW1ddKC8oPzopLywtMSlbTl18fDIhPSJhYiJbV10oLyg/OmFiKSovKVtOXXx8NCE9Ii4iW1ddKC8oLj8pKC4/KS8pW05dfHwiLiJb''@;'; put 'put ''V10oLygpKCkvKVtOXT4xfHwiIltXXSgvLj8vKVtOXT9mdW5jdGlvbihBZSxrZSl7dmFyIFNlPVN0cmluZyh0aGlzKTtpZih2b2lkIDA9PT1BZSYmMD09PWtlKXJldHVybltdO2lmKCFtZShBZSkpcmV0dXJuIGNlLmNhbGwoU2UsQWUsa2UpO2Zvcih2YXIgeixlZSxuZSxJZT1bXSxNZT0wLGhl''@;'; put 'put ''PXZvaWQgMD09PWtlP0s6a2U+Pj4wLE89bmV3IFJlZ0V4cChBZS5zb3VyY2UsKEFlLmlnbm9yZUNhc2U/ImkiOiIiKSsoQWUubXVsdGlsaW5lPyJtIjoiIikrKEFlLnVuaWNvZGU/InUiOiIiKSsoQWUuc3RpY2t5PyJ5IjoiIikrImciKTsoej1qLmNhbGwoTyxTZSkpJiYhKChlZT1PW3RlXSk+''@;'; put 'put ''TWUmJihJZS5wdXNoKFNlLnNsaWNlKE1lLHouaW5kZXgpKSx6W05dPjEmJnouaW5kZXg8U2VbTl0mJlkuYXBwbHkoSWUsei5zbGljZSgxKSksbmU9elswXVtOXSxNZT1lZSxJZVtOXT49aGUpKTspT1t0ZV09PT16LmluZGV4JiZPW3RlXSsrO3JldHVybiBNZT09PVNlW05dPyhuZXx8IU8udGVz''@;'; put 'put ''dCgiIikpJiZJZS5wdXNoKCIiKTpJZS5wdXNoKFNlLnNsaWNlKE1lKSksSWVbTl0+aGU/SWUuc2xpY2UoMCxoZSk6SWV9OiIwIltXXSh2b2lkIDAsMClbTl0/ZnVuY3Rpb24oQWUsa2Upe3JldHVybiB2b2lkIDA9PT1BZSYmMD09PWtlP1tdOmNlLmNhbGwodGhpcyxBZSxrZSl9OmNlLFtmdW5j''@;'; put 'put ''dGlvbihrZSxTZSl7dmFyIEllPXNlKHRoaXMpLFRlPW51bGw9PWtlP3ZvaWQgMDprZVtvZV07cmV0dXJuIHZvaWQgMCE9PVRlP1RlLmNhbGwoa2UsSWUsU2UpOnZlLmNhbGwoU3RyaW5nKEllKSxrZSxTZSl9LGZ1bmN0aW9uKEFlLGtlKXt2YXIgU2U9ZGUodmUsQWUsdGhpcyxrZSx2ZSE9PWNl''@;'; put 'put ''KTtpZihTZS5kb25lKXJldHVybiBTZS52YWx1ZTt2YXIgSWU9QihBZSksVGU9U3RyaW5nKHRoaXMpLE1lPUUoSWUsUmVnRXhwKSxoZT1JZS51bmljb2RlLHo9bmV3IE1lKEo/SWU6Il4oPzoiK0llLnNvdXJjZSsiKSIsKEllLmlnbm9yZUNhc2U/ImkiOiIiKSsoSWUubXVsdGlsaW5lPyJtIjoi''@;'; put 'put ''IikrKEllLnVuaWNvZGU/InUiOiIiKSsoSj8ieSI6ImciKSksZWU9dm9pZCAwPT09a2U/SzprZT4+PjA7aWYoMD09PWVlKXJldHVybltdO2lmKDA9PT1UZS5sZW5ndGgpcmV0dXJuIG51bGw9PT1RKHosVGUpP1tUZV06W107Zm9yKHZhciBuZT0wLHg9MCxQPVtdO3g8VGUubGVuZ3RoOyl7ei5s''@;'; put 'put ''YXN0SW5kZXg9Sj94OjA7dmFyIFQsVj1RKHosSj9UZTpUZS5zbGljZSh4KSk7aWYobnVsbD09PVZ8fChUPWFlKFUoei5sYXN0SW5kZXgrKEo/MDp4KSksVGUubGVuZ3RoKSk9PT1uZSl4PUVlKFRlLHgsaGUpO2Vsc2V7aWYoUC5wdXNoKFRlLnNsaWNlKG5lLHgpKSxQLmxlbmd0aD09PWVlKXJl''@;'; put 'put ''dHVybiBQO2Zvcih2YXIgUz0xO1M8PVYubGVuZ3RoLTE7UysrKWlmKFAucHVzaChWW1NdKSxQLmxlbmd0aD09PWVlKXJldHVybiBQO3g9bmU9VH19cmV0dXJuIFAucHVzaChUZS5zbGljZShuZSkpLFB9XX0pfSw2NjEwODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCg3Njc3NCk7dmFyIG1l''@;'; put 'put ''PUwoMjcwMDcpLEI9TCg1MzIxOCksRT1MKDY3MDU3KSxFZT0idG9TdHJpbmciLFU9Ly4vW0VlXSxRPWZ1bmN0aW9uKGope0woNzcyMzQpKFJlZ0V4cC5wcm90b3R5cGUsRWUsaiwhMCl9O0woNzQyNTMpKGZ1bmN0aW9uKCl7cmV0dXJuIi9hL2IiIT1VLmNhbGwoe3NvdXJjZToiYSIsZmxhZ3M6''@;'; put 'put ''ImIifSl9KT9RKGZ1bmN0aW9uKCl7dmFyIHJlPW1lKHRoaXMpO3JldHVybiIvIi5jb25jYXQocmUuc291cmNlLCIvIiwiZmxhZ3MiaW4gcmU/cmUuZmxhZ3M6IUUmJnJlIGluc3RhbmNlb2YgUmVnRXhwP0IuY2FsbChyZSk6dm9pZCAwKX0pOlUubmFtZSE9RWUmJlEoZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gVS5jYWxsKHRoaXMpfSl9LDk4MTg0OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg5ODI0KSxCPUwoMTYxNik7WGUuZXhwb3J0cz1MKDQ1Nzk1KSgiU2V0IixmdW5jdGlvbihFZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEVlKHRoaXMsYXJndW1lbnRzLmxlbmd0aD4w''@;'; put 'put ''P2FyZ3VtZW50c1swXTp2b2lkIDApfX0se2FkZDpmdW5jdGlvbihVKXtyZXR1cm4gbWUuZGVmKEIodGhpcywiU2V0IiksVT0wPT09VT8wOlUsVSl9fSxtZSl9LDQwODU2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiYW5jaG9yIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0''@;'; put 'put ''aW9uKEUpe3JldHVybiBtZSh0aGlzLCJhIiwibmFtZSIsRSl9fSl9LDgwNzAzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgiYmlnIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsImJpZyIsIiIsIiIpfX0pfSw5MTUzOTooWGUsSmUsTCk9''@;'; put 'put ''PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoImJsaW5rIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LDUyOTI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJib2xkIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsImIiLCIiLCIiKX19KX0sMjk1Mzk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoMjQ0OTYpKCExKTttZShtZS5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihFZSl7cmV0dXJuIEIodGhpcyxFZSl9fSl9''@;'; put 'put ''LDk2NjIwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwODc1KSxFPUwoNDIwOTQpLEVlPSJlbmRzV2l0aCIsVT0iIltFZV07bWUobWUuUCttZS5GKkwoODg1MikoRWUpLCJTdHJpbmciLHtlbmRzV2l0aDpmdW5jdGlvbihqKXt2YXIgcmU9RSh0aGlzLGos''@;'; put 'put ''RWUpLGFlPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLFk9QihyZS5sZW5ndGgpLFc9dm9pZCAwPT09YWU/WTpNYXRoLm1pbihCKGFlKSxZKSxOPVN0cmluZyhqKTtyZXR1cm4gVT9VLmNhbGwocmUsTixXKTpyZS5zbGljZShXLU4ubGVuZ3RoLFcpPT09Tn19KX0sNDUx''@;'; put 'put ''Nzc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJmaXhlZCIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJ0dCIsIiIsIiIpfX0pfSw3MzY5NDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoImZvbnRjb2xvciIsZnVuY3Rp''@;'; put 'put ''b24obWUpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbWUodGhpcywiZm9udCIsImNvbG9yIixFKX19KX0sMzc2NDg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJmb250c2l6ZSIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbWUodGhpcywiZm9u''@;'; put 'put ''dCIsInNpemUiLEUpfX0pfSw1MDE5MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDkyMzM3KSxFPVN0cmluZy5mcm9tQ2hhckNvZGUsRWU9U3RyaW5nLmZyb21Db2RlUG9pbnQ7bWUobWUuUyttZS5GKighIUVlJiYxIT1FZS5sZW5ndGgpLCJTdHJpbmciLHtmcm9tQ29kZVBvaW50''@;'; put 'put ''OmZ1bmN0aW9uKFEpe2Zvcih2YXIgWSxqPVtdLHJlPWFyZ3VtZW50cy5sZW5ndGgsYWU9MDtyZT5hZTspe2lmKFk9K2FyZ3VtZW50c1thZSsrXSxCKFksMTExNDExMSkhPT1ZKXRocm93IFJhbmdlRXJyb3IoWSsiIGlzIG5vdCBhIHZhbGlkIGNvZGUgcG9pbnQiKTtqLnB1c2goWTw2NTUzNj9F''@;'; put 'put ''KFkpOkUoNTUyOTYrKChZLT02NTUzNik+PjEwKSxZJTEwMjQrNTYzMjApKX1yZXR1cm4gai5qb2luKCIiKX19KX0sNjI4NTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQyOTg1KSxCPUwoNDIwOTQpLEU9ImluY2x1ZGVzIjttZShtZS5QK21lLkYqTCg4ODUyKShFKSwiU3Ry''@;'; put 'put ''aW5nIix7aW5jbHVkZXM6ZnVuY3Rpb24oVSl7cmV0dXJuISF+Qih0aGlzLFUsRSkuaW5kZXhPZihVLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMjc3OTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJpdGFsaWNzIixmdW5jdGlvbihtZSl7''@;'; put 'put ''cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsImkiLCIiLCIiKX19KX0sMzkxMTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDI0NDk2KSghMCk7TCg0MjkyMykoU3RyaW5nLCJTdHJpbmciLGZ1bmN0aW9uKEIpe3RoaXMuX3Q9U3RyaW5nKEIpLHRoaXMuX2k9MH0s''@;'; put 'put ''ZnVuY3Rpb24oKXt2YXIgRWUsQj10aGlzLl90LEU9dGhpcy5faTtyZXR1cm4gRT49Qi5sZW5ndGg/e3ZhbHVlOnZvaWQgMCxkb25lOiEwfTooRWU9bWUoQixFKSx0aGlzLl9pKz1FZS5sZW5ndGgse3ZhbHVlOkVlLGRvbmU6ITF9KX0pfSw0NTMxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0IjtM''@;'; put 'put ''KDI5Mzk1KSgibGluayIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbihFKXtyZXR1cm4gbWUodGhpcywiYSIsImhyZWYiLEUpfX0pfSw5ODMwNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0Mjk4NSksQj1MKDIyMTEwKSxFPUwoMTA4NzUpO21lKG1lLlMsIlN0cmluZyIse3JhdzpmdW5jdGlv''@;'; put 'put ''bihVKXtmb3IodmFyIFE9QihVLnJhdyksaj1FKFEubGVuZ3RoKSxyZT1hcmd1bWVudHMubGVuZ3RoLGFlPVtdLFk9MDtqPlk7KWFlLnB1c2goU3RyaW5nKFFbWSsrXSkpLFk8cmUmJmFlLnB1c2goU3RyaW5nKGFyZ3VtZW50c1tZXSkpO3JldHVybiBhZS5qb2luKCIiKX19KX0sMTA4MjM6KFhl''@;'; put 'put ''LEplLEwpPT57dmFyIG1lPUwoNDI5ODUpO21lKG1lLlAsIlN0cmluZyIse3JlcGVhdDpMKDY4NTk1KX0pfSwyMzYwNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoInNtYWxsIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsInNtYWxsIiwi''@;'; put 'put ''IiwiIil9fSl9LDE3NzMyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0Mjk4NSksQj1MKDEwODc1KSxFPUwoNDIwOTQpLEVlPSJzdGFydHNXaXRoIixVPSIiW0VlXTttZShtZS5QK21lLkYqTCg4ODUyKShFZSksIlN0cmluZyIse3N0YXJ0c1dpdGg6ZnVuY3Rpb24oail7dmFy''@;'; put 'put ''IHJlPUUodGhpcyxqLEVlKSxhZT1CKE1hdGgubWluKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLHJlLmxlbmd0aCkpLFk9U3RyaW5nKGopO3JldHVybiBVP1UuY2FsbChyZSxZLGFlKTpyZS5zbGljZShhZSxhZStZLmxlbmd0aCk9PT1ZfX0pfSw2NzgwOihYZSxKZSxM''@;'; put 'put ''KT0+eyJ1c2Ugc3RyaWN0IjtMKDI5Mzk1KSgic3RyaWtlIixmdW5jdGlvbihtZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG1lKHRoaXMsInN0cmlrZSIsIiIsIiIpfX0pfSw2OTkzNzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCgyOTM5NSkoInN1YiIsZnVuY3Rpb24obWUpe3JldHVy''@;'; put 'put ''biBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLCJzdWIiLCIiLCIiKX19KX0sMTA1MTE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woMjkzOTUpKCJzdXAiLGZ1bmN0aW9uKG1lKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbWUodGhpcywic3VwIiwiIiwiIil9fSl9LDY0NTY0OihYZSxK''@;'; put 'put ''ZSxMKT0+eyJ1c2Ugc3RyaWN0IjtMKDI5NTk5KSgidHJpbSIsZnVuY3Rpb24obWUpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiBtZSh0aGlzLDMpfX0pfSw5NTc2NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMzgxNiksQj1MKDc5MTgxKSxFPUwoNjcwNTcpLEVlPUwoNDI5''@;'; put 'put ''ODUpLFU9TCg3NzIzNCksUT1MKDg0NzI4KS5LRVksaj1MKDc0MjUzKSxyZT1MKDM4MjUpLGFlPUwoMjI5NDMpLFk9TCg5Mzk1MyksVz1MKDg2MzE0KSxOPUwoMjg3ODcpLHRlPUwoMzYwNzQpLEs9TCg1NTQxKSxKPUwoNDMwMiksc2U9TCgyNzAwNyksb2U9TCg1NTI4NiksY2U9TCgyMDUwOCks''@;'; put 'put ''ZGU9TCgyMjExMCksdmU9TCgyMTY4OSksQWU9TCg5MDY4MSksa2U9TCg0MjUwMyksU2U9TCgzOTMyNyksSWU9TCgxODY5MyksVGU9TCg2NDU0OCksTWU9TCg5OTI3NSksaGU9TCg0NzE4NCksTz1JZS5mLHo9TWUuZixlZT1TZS5mLG5lPW1lLlN5bWJvbCx4PW1lLkpTT04sUD14JiZ4LnN0cmlu''@;'; put 'put ''Z2lmeSxWPSJwcm90b3R5cGUiLFQ9VygiX2hpZGRlbiIpLFM9VygidG9QcmltaXRpdmUiKSxGPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHllPXJlKCJzeW1ib2wtcmVnaXN0cnkiKSxDZT1yZSgic3ltYm9scyIpLERlPXJlKCJvcC1zeW1ib2xzIiksUGU9T2JqZWN0W1ZdLFFlPSJmdW5jdGlv''@;'; put 'put ''biI9PXR5cGVvZiBuZSYmISFUZS5mLCRlPW1lLlFPYmplY3QsZ3Q9ISRlfHwhJGVbVl18fCEkZVtWXS5maW5kQ2hpbGQsd3Q9RSYmaihmdW5jdGlvbigpe3JldHVybiA3IT1rZSh6KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHoodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/''@;'; put 'put ''ZnVuY3Rpb24oR2UsVWUseXQpe3ZhciBqdD1PKFBlLFVlKTtqdCYmZGVsZXRlIFBlW1VlXSx6KEdlLFVlLHl0KSxqdCYmR2UhPT1QZSYmeihQZSxVZSxqdCl9OnosbXQ9ZnVuY3Rpb24oR2Upe3ZhciBVZT1DZVtHZV09a2UobmVbVl0pO3JldHVybiBVZS5faz1HZSxVZX0sdnQ9UWUmJiJzeW1i''@;'; put 'put ''b2wiPT10eXBlb2YgbmUuaXRlcmF0b3I/ZnVuY3Rpb24oR2Upe3JldHVybiJzeW1ib2wiPT10eXBlb2YgR2V9OmZ1bmN0aW9uKEdlKXtyZXR1cm4gR2UgaW5zdGFuY2VvZiBuZX0sQXQ9ZnVuY3Rpb24oVWUseXQsanQpe3JldHVybiBVZT09PVBlJiZBdChEZSx5dCxqdCksc2UoVWUpLHl0PXZl''@;'; put 'put ''KHl0LCEwKSxzZShqdCksQihDZSx5dCk/KGp0LmVudW1lcmFibGU/KEIoVWUsVCkmJlVlW1RdW3l0XSYmKFVlW1RdW3l0XT0hMSksanQ9a2UoanQse2VudW1lcmFibGU6QWUoMCwhMSl9KSk6KEIoVWUsVCl8fHooVWUsVCxBZSgxLHt9KSksVWVbVF1beXRdPSEwKSx3dChVZSx5dCxqdCkpOnoo''@;'; put 'put ''VWUseXQsanQpfSxodD1mdW5jdGlvbihVZSx5dCl7c2UoVWUpO2Zvcih2YXIgZG4sanQ9Syh5dD1kZSh5dCkpLEp0PTAsZ249anQubGVuZ3RoO2duPkp0OylBdChVZSxkbj1qdFtKdCsrXSx5dFtkbl0pO3JldHVybiBVZX0sb249ZnVuY3Rpb24oVWUpe3ZhciB5dD1GLmNhbGwodGhpcyxVZT12''@;'; put 'put ''ZShVZSwhMCkpO3JldHVybiEodGhpcz09PVBlJiZCKENlLFVlKSYmIUIoRGUsVWUpKSYmKCEoeXR8fCFCKHRoaXMsVWUpfHwhQihDZSxVZSl8fEIodGhpcyxUKSYmdGhpc1tUXVtVZV0pfHx5dCl9LF90PWZ1bmN0aW9uKFVlLHl0KXtpZihVZT1kZShVZSkseXQ9dmUoeXQsITApLFVlIT09UGV8''@;'; put 'put ''fCFCKENlLHl0KXx8QihEZSx5dCkpe3ZhciBqdD1PKFVlLHl0KTtyZXR1cm4ganQmJkIoQ2UseXQpJiYhKEIoVWUsVCkmJlVlW1RdW3l0XSkmJihqdC5lbnVtZXJhYmxlPSEwKSxqdH19LHR0PWZ1bmN0aW9uKFVlKXtmb3IodmFyIGduLHl0PWVlKGRlKFVlKSksanQ9W10sSnQ9MDt5dC5sZW5n''@;'; put 'put ''dGg+SnQ7KSFCKENlLGduPXl0W0p0KytdKSYmZ24hPVQmJmduIT1RJiZqdC5wdXNoKGduKTtyZXR1cm4ganR9LGV0PWZ1bmN0aW9uKFVlKXtmb3IodmFyIGRuLHl0PVVlPT09UGUsanQ9ZWUoeXQ/RGU6ZGUoVWUpKSxKdD1bXSxnbj0wO2p0Lmxlbmd0aD5nbjspQihDZSxkbj1qdFtnbisrXSkm''@;'; put 'put ''JigheXR8fEIoUGUsZG4pKSYmSnQucHVzaChDZVtkbl0pO3JldHVybiBKdH07UWV8fChVKChuZT1mdW5jdGlvbigpe2lmKHRoaXMgaW5zdGFuY2VvZiBuZSl0aHJvdyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciEiKTt2YXIgVWU9WShhcmd1bWVudHMubGVuZ3RoPjA/''@;'; put 'put ''YXJndW1lbnRzWzBdOnZvaWQgMCkseXQ9ZnVuY3Rpb24oanQpe3RoaXM9PT1QZSYmeXQuY2FsbChEZSxqdCksQih0aGlzLFQpJiZCKHRoaXNbVF0sVWUpJiYodGhpc1tUXVtVZV09ITEpLHd0KHRoaXMsVWUsQWUoMSxqdCkpfTtyZXR1cm4gRSYmZ3QmJnd0KFBlLFVlLHtjb25maWd1cmFibGU6''@;'; put 'put ''ITAsc2V0Onl0fSksbXQoVWUpfSlbVl0sInRvU3RyaW5nIixmdW5jdGlvbigpe3JldHVybiB0aGlzLl9rfSksSWUuZj1fdCxNZS5mPUF0LEwoMjA2MTYpLmY9U2UuZj10dCxMKDE0NjgyKS5mPW9uLFRlLmY9ZXQsRSYmIUwoNDQ2MSkmJlUoUGUsInByb3BlcnR5SXNFbnVtZXJhYmxlIixvbiwh''@;'; put 'put ''MCksTi5mPWZ1bmN0aW9uKEdlKXtyZXR1cm4gbXQoVyhHZSkpfSksRWUoRWUuRytFZS5XK0VlLkYqIVFlLHtTeW1ib2w6bmV9KTtmb3IodmFyIGx0PSJoYXNJbnN0YW5jZSxpc0NvbmNhdFNwcmVhZGFibGUsaXRlcmF0b3IsbWF0Y2gscmVwbGFjZSxzZWFyY2gsc3BlY2llcyxzcGxpdCx0b1By''@;'; put 'put ''aW1pdGl2ZSx0b1N0cmluZ1RhZyx1bnNjb3BhYmxlcyIuc3BsaXQoIiwiKSxMdD0wO2x0Lmxlbmd0aD5MdDspVyhsdFtMdCsrXSk7Zm9yKHZhciBDdD1oZShXLnN0b3JlKSxmdD0wO0N0Lmxlbmd0aD5mdDspdGUoQ3RbZnQrK10pO0VlKEVlLlMrRWUuRiohUWUsIlN5bWJvbCIse2ZvcjpmdW5j''@;'; put 'put ''dGlvbihHZSl7cmV0dXJuIEIoeWUsR2UrPSIiKT95ZVtHZV06eWVbR2VdPW5lKEdlKX0sa2V5Rm9yOmZ1bmN0aW9uKFVlKXtpZighdnQoVWUpKXRocm93IFR5cGVFcnJvcihVZSsiIGlzIG5vdCBhIHN5bWJvbCEiKTtmb3IodmFyIHl0IGluIHllKWlmKHllW3l0XT09PVVlKXJldHVybiB5dH0s''@;'; put 'put ''dXNlU2V0dGVyOmZ1bmN0aW9uKCl7Z3Q9ITB9LHVzZVNpbXBsZTpmdW5jdGlvbigpe2d0PSExfX0pLEVlKEVlLlMrRWUuRiohUWUsIk9iamVjdCIse2NyZWF0ZTpmdW5jdGlvbihVZSx5dCl7cmV0dXJuIHZvaWQgMD09PXl0P2tlKFVlKTpodChrZShVZSkseXQpfSxkZWZpbmVQcm9wZXJ0eTpB''@;'; put 'put ''dCxkZWZpbmVQcm9wZXJ0aWVzOmh0LGdldE93blByb3BlcnR5RGVzY3JpcHRvcjpfdCxnZXRPd25Qcm9wZXJ0eU5hbWVzOnR0LGdldE93blByb3BlcnR5U3ltYm9sczpldH0pO3ZhciBIdD1qKGZ1bmN0aW9uKCl7VGUuZigxKX0pO0VlKEVlLlMrRWUuRipIdCwiT2JqZWN0Iix7Z2V0T3duUHJv''@;'; put 'put ''cGVydHlTeW1ib2xzOmZ1bmN0aW9uKFVlKXtyZXR1cm4gVGUuZihjZShVZSkpfX0pLHgmJkVlKEVlLlMrRWUuRiooIVFlfHxqKGZ1bmN0aW9uKCl7dmFyIEdlPW5lKCk7cmV0dXJuIltudWxsXSIhPVAoW0dlXSl8fCJ7fSIhPVAoe2E6R2V9KXx8Int9IiE9UChPYmplY3QoR2UpKX0pKSwiSlNP''@;'; put 'put ''TiIse3N0cmluZ2lmeTpmdW5jdGlvbihVZSl7Zm9yKHZhciBKdCxnbix5dD1bVWVdLGp0PTE7YXJndW1lbnRzLmxlbmd0aD5qdDspeXQucHVzaChhcmd1bWVudHNbanQrK10pO2lmKGduPUp0PXl0WzFdLChvZShKdCl8fHZvaWQgMCE9PVVlKSYmIXZ0KFVlKSlyZXR1cm4gSihKdCl8fChKdD1m''@;'; put 'put ''dW5jdGlvbihkbix5bil7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGduJiYoeW49Z24uY2FsbCh0aGlzLGRuLHluKSksIXZ0KHluKSlyZXR1cm4geW59KSx5dFsxXT1KdCxQLmFwcGx5KHgseXQpfX0pLG5lW1ZdW1NdfHxMKDg3NzI4KShuZVtWXSxTLG5lW1ZdLnZhbHVlT2YpLGFlKG5lLCJTeW1i''@;'; put 'put ''b2wiKSxhZShNYXRoLCJNYXRoIiwhMCksYWUobWUuSlNPTiwiSlNPTiIsITApfSwzMDE0NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIEosbWU9TCgzODE2KSxCPUwoMTAwNTApKDApLEU9TCg3NzIzNCksRWU9TCg4NDcyOCksVT1MKDM1MzQ1KSxRPUwoMjM2NTcpLGo9TCg1NTI4Niks''@;'; put 'put ''cmU9TCgxNjE2KSxhZT1MKDE2MTYpLFk9IW1lLkFjdGl2ZVhPYmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIG1lLFc9IldlYWtNYXAiLE49RWUuZ2V0V2Vhayx0ZT1PYmplY3QuaXNFeHRlbnNpYmxlLEs9US51ZnN0b3JlLHNlPWZ1bmN0aW9uKGRlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4g''@;'; put 'put ''ZGUodGhpcyxhcmd1bWVudHMubGVuZ3RoPjA/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxvZT17Z2V0OmZ1bmN0aW9uKHZlKXtpZihqKHZlKSl7dmFyIEFlPU4odmUpO3JldHVybiEwPT09QWU/SyhyZSh0aGlzLFcpKS5nZXQodmUpOkFlP0FlW3RoaXMuX2ldOnZvaWQgMH19LHNldDpmdW5jdGlv''@;'; put 'put ''bih2ZSxBZSl7cmV0dXJuIFEuZGVmKHJlKHRoaXMsVyksdmUsQWUpfX0sY2U9WGUuZXhwb3J0cz1MKDQ1Nzk1KShXLHNlLG9lLFEsITAsITApO2FlJiZZJiYoVSgoSj1RLmdldENvbnN0cnVjdG9yKHNlLFcpKS5wcm90b3R5cGUsb2UpLEVlLk5FRUQ9ITAsQihbImRlbGV0ZSIsImhhcyIsImdl''@;'; put 'put ''dCIsInNldCJdLGZ1bmN0aW9uKGRlKXt2YXIgdmU9Y2UucHJvdG90eXBlLEFlPXZlW2RlXTtFKHZlLGRlLGZ1bmN0aW9uKGtlLFNlKXtpZihqKGtlKSYmIXRlKGtlKSl7dGhpcy5fZnx8KHRoaXMuX2Y9bmV3IEopO3ZhciBJZT10aGlzLl9mW2RlXShrZSxTZSk7cmV0dXJuInNldCI9PWRlP3Ro''@;'; put 'put ''aXM6SWV9cmV0dXJuIEFlLmNhbGwodGhpcyxrZSxTZSl9KX0pKX0sNTMzNjQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAxMzMpLEI9TCgyNzAwNyksRT1tZS5rZXksRWU9bWUuc2V0O21lLmV4cCh7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24oUSxqLHJlLGFlKXtFZShRLGosQihyZSksRShhZSkp''@;'; put 'put ''fX0pfSw1MTQzMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1MKDI3MDA3KSxFPW1lLmtleSxFZT1tZS5tYXAsVT1tZS5zdG9yZTttZS5leHAoe2RlbGV0ZU1ldGFkYXRhOmZ1bmN0aW9uKGoscmUpe3ZhciBhZT1hcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOkUoYXJndW1lbnRzWzJd''@;'; put 'put ''KSxZPUVlKEIocmUpLGFlLCExKTtpZih2b2lkIDA9PT1ZfHwhWS5kZWxldGUoaikpcmV0dXJuITE7aWYoWS5zaXplKXJldHVybiEwO3ZhciBXPVUuZ2V0KHJlKTtyZXR1cm4gVy5kZWxldGUoYWUpLCEhVy5zaXplfHxVLmRlbGV0ZShyZSl9fSl9LDg0NDE2OihYZSxKZSxMKT0+e3ZhciBtZT1M''@;'; put 'put ''KDk4MTg0KSxCPUwoOTQ5MCksRT1MKDUwMTMzKSxFZT1MKDI3MDA3KSxVPUwoNDY4KSxRPUUua2V5cyxqPUUua2V5LHJlPWZ1bmN0aW9uKGFlLFkpe3ZhciBXPVEoYWUsWSksTj1VKGFlKTtpZihudWxsPT09TilyZXR1cm4gVzt2YXIgdGU9cmUoTixZKTtyZXR1cm4gdGUubGVuZ3RoP1cubGVu''@;'; put 'put ''Z3RoP0IobmV3IG1lKFcuY29uY2F0KHRlKSkpOnRlOld9O0UuZXhwKHtnZXRNZXRhZGF0YUtleXM6ZnVuY3Rpb24oWSl7cmV0dXJuIHJlKEVlKFkpLGFyZ3VtZW50cy5sZW5ndGg8Mj92b2lkIDA6aihhcmd1bWVudHNbMV0pKX19KX0sMjY1NjI6KFhlLEplLEwpPT57dmFyIG1lPUwoNTAxMzMp''@;'; put 'put ''LEI9TCgyNzAwNyksRT1MKDQ2OCksRWU9bWUuaGFzLFU9bWUuZ2V0LFE9bWUua2V5LGo9ZnVuY3Rpb24ocmUsYWUsWSl7aWYoRWUocmUsYWUsWSkpcmV0dXJuIFUocmUsYWUsWSk7dmFyIE49RShhZSk7cmV0dXJuIG51bGwhPT1OP2oocmUsTixZKTp2b2lkIDB9O21lLmV4cCh7Z2V0TWV0YWRh''@;'; put 'put ''dGE6ZnVuY3Rpb24oYWUsWSl7cmV0dXJuIGooYWUsQihZKSxhcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOlEoYXJndW1lbnRzWzJdKSl9fSl9LDMyMjEzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9bWUua2V5cyxFZT1tZS5rZXk7bWUuZXhwKHtnZXRPd25NZXRh''@;'; put 'put ''ZGF0YUtleXM6ZnVuY3Rpb24oUSl7cmV0dXJuIEUoQihRKSxhcmd1bWVudHMubGVuZ3RoPDI/dm9pZCAwOkVlKGFyZ3VtZW50c1sxXSkpfX0pfSw5ODY4MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1MKDI3MDA3KSxFPW1lLmdldCxFZT1tZS5rZXk7bWUuZXhwKHtnZXRPd25NZXRh''@;'; put 'put ''ZGF0YTpmdW5jdGlvbihRLGope3JldHVybiBFKFEsQihqKSxhcmd1bWVudHMubGVuZ3RoPDM/dm9pZCAwOkVlKGFyZ3VtZW50c1syXSkpfX0pfSw2MzQ3MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDEzMyksQj1MKDI3MDA3KSxFPUwoNDY4KSxFZT1tZS5oYXMsVT1tZS5rZXksUT1mdW5jdGlv''@;'; put 'put ''bihqLHJlLGFlKXtpZihFZShqLHJlLGFlKSlyZXR1cm4hMDt2YXIgVz1FKHJlKTtyZXR1cm4gbnVsbCE9PVcmJlEoaixXLGFlKX07bWUuZXhwKHtoYXNNZXRhZGF0YTpmdW5jdGlvbihyZSxhZSl7cmV0dXJuIFEocmUsQihhZSksYXJndW1lbnRzLmxlbmd0aDwzP3ZvaWQgMDpVKGFyZ3VtZW50''@;'; put 'put ''c1syXSkpfX0pfSw0MzI5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9bWUuaGFzLEVlPW1lLmtleTttZS5leHAoe2hhc093bk1ldGFkYXRhOmZ1bmN0aW9uKFEsail7cmV0dXJuIEUoUSxCKGopLGFyZ3VtZW50cy5sZW5ndGg8Mz92b2lkIDA6RWUoYXJndW1lbnRz''@;'; put 'put ''WzJdKSl9fSl9LDI1MTU5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDUwMTMzKSxCPUwoMjcwMDcpLEU9TCgyNDk2MyksRWU9bWUua2V5LFU9bWUuc2V0O21lLmV4cCh7bWV0YWRhdGE6ZnVuY3Rpb24oaixyZSl7cmV0dXJuIGZ1bmN0aW9uKFksVyl7VShqLHJlLCh2b2lkIDAhPT1XP0I6RSkoWSks''@;'; put 'put ''RWUoVykpfX19KX0sOTExODE6KFhlLEplLEwpPT57Zm9yKHZhciBtZT1MKDU2OTk3KSxCPUwoNDcxODQpLEU9TCg3NzIzNCksRWU9TCgzODE2KSxVPUwoODc3MjgpLFE9TCg4NzIzNCksaj1MKDg2MzE0KSxyZT1qKCJpdGVyYXRvciIpLGFlPWooInRvU3RyaW5nVGFnIiksWT1RLkFycmF5LFc9''@;'; put 'put ''e0NTU1J1bGVMaXN0OiEwLENTU1N0eWxlRGVjbGFyYXRpb246ITEsQ1NTVmFsdWVMaXN0OiExLENsaWVudFJlY3RMaXN0OiExLERPTVJlY3RMaXN0OiExLERPTVN0cmluZ0xpc3Q6ITEsRE9NVG9rZW5MaXN0OiEwLERhdGFUcmFuc2Zlckl0ZW1MaXN0OiExLEZpbGVMaXN0OiExLEhUTUxBbGxD''@;'; put 'put ''b2xsZWN0aW9uOiExLEhUTUxDb2xsZWN0aW9uOiExLEhUTUxGb3JtRWxlbWVudDohMSxIVE1MU2VsZWN0RWxlbWVudDohMSxNZWRpYUxpc3Q6ITAsTWltZVR5cGVBcnJheTohMSxOYW1lZE5vZGVNYXA6ITEsTm9kZUxpc3Q6ITAsUGFpbnRSZXF1ZXN0TGlzdDohMSxQbHVnaW46ITEsUGx1Z2lu''@;'; put 'put ''QXJyYXk6ITEsU1ZHTGVuZ3RoTGlzdDohMSxTVkdOdW1iZXJMaXN0OiExLFNWR1BhdGhTZWdMaXN0OiExLFNWR1BvaW50TGlzdDohMSxTVkdTdHJpbmdMaXN0OiExLFNWR1RyYW5zZm9ybUxpc3Q6ITEsU291cmNlQnVmZmVyTGlzdDohMSxTdHlsZVNoZWV0TGlzdDohMCxUZXh0VHJhY2tDdWVM''@;'; put 'put ''aXN0OiExLFRleHRUcmFja0xpc3Q6ITEsVG91Y2hMaXN0OiExfSxOPUIoVyksdGU9MDt0ZTxOLmxlbmd0aDt0ZSsrKXt2YXIgY2UsSz1OW3RlXSxKPVdbS10sc2U9RWVbS10sb2U9c2UmJnNlLnByb3RvdHlwZTtpZihvZSYmKG9lW3JlXXx8VShvZSxyZSxZKSxvZVthZV18fFUob2UsYWUsSyks''@;'; put 'put ''UVtLXT1ZLEopKWZvcihjZSBpbiBtZSlvZVtjZV18fEUob2UsY2UsbWVbY2VdLCEwKX19LDgxNDUwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDEyMDE0KSxCPUwoOTQ2NzYpLEU9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRWUpe2lmKG1lKEVlKSlyZXR1cm4gRWU7dGhyb3cgRShCKEVl''@;'; put 'put ''KSsiIGlzIG5vdCBhIGZ1bmN0aW9uIil9fSw1NjU4MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0OTQ1MyksQj1MKDk0Njc2KSxFPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEVlKXtpZihtZShFZSkpcmV0dXJuIEVlO3Rocm93IEUoQihFZSkrIiBpcyBub3QgYSBjb25zdHJ1Y3RvciIp''@;'; put 'put ''fX0sNzAwODooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMjAxNCksQj1TdHJpbmcsRT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihFZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBFZXx8bWUoRWUpKXJldHVybiBFZTt0aHJvdyBFKCJDYW4ndCBzZXQgIitCKEVlKSsiIGFzIGEgcHJvdG90eXBl''@;'; put 'put ''Iil9fSw3NDk2NTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNTQ2KSxCPUwoNzQ0MTApLEU9TCg1MTE4MykuZixFZT1tZSgidW5zY29wYWJsZXMiKSxVPUFycmF5LnByb3RvdHlwZTtudWxsPT1VW0VlXSYmRShVLEVlLHtjb25maWd1cmFibGU6ITAsdmFsdWU6QihudWxsKX0pLFhlLmV4cG9ydHM9''@;'; put 'put ''ZnVuY3Rpb24oUSl7VVtFZV1bUV09ITB9fSw2MTY3NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzUwNTgpLmNoYXJBdDtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxFZSl7cmV0dXJuIEUrKEVlP21lKEIsRSkubGVuZ3RoOjEpfX0sOTUyMDQ6KFhlLEplLEwpPT57dmFyIG1l''@;'; put 'put ''PUwoMzc0NzQpLEI9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxFZSl7aWYobWUoRWUsRSkpcmV0dXJuIEU7dGhyb3cgQigiSW5jb3JyZWN0IGludm9jYXRpb24iKX19LDU4NjQ3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcxNDk2KSxCPVN0cmluZyxFPVR5cGVFcnJvcjtYZS5leHBv''@;'; put 'put ''cnRzPWZ1bmN0aW9uKEVlKXtpZihtZShFZSkpcmV0dXJuIEVlO3Rocm93IEUoQihFZSkrIiBpcyBub3QgYW4gb2JqZWN0Iil9fSw2Mjc4OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyk7WGUuZXhwb3J0cz1tZShmdW5jdGlvbigpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheUJ1ZmZl''@;'; put 'put ''cil7dmFyIEI9bmV3IEFycmF5QnVmZmVyKDgpO09iamVjdC5pc0V4dGVuc2libGUoQikmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShCLCJhIix7dmFsdWU6OH0pfX0pfSw1NzE3OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjgwNzEpLEI9TCg3NjE2MyksRT1MKDU0NDUwKTtY''@;'; put 'put ''ZS5leHBvcnRzPWZ1bmN0aW9uKFUpe2Zvcih2YXIgUT1tZSh0aGlzKSxqPUUoUSkscmU9YXJndW1lbnRzLmxlbmd0aCxhZT1CKHJlPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxqKSxZPXJlPjI/YXJndW1lbnRzWzJdOnZvaWQgMCxXPXZvaWQgMD09PVk/ajpCKFksaik7Vz5hZTspUVthZSsrXT1V''@;'; put 'put ''O3JldHVybiBRfX0sMzczMTk6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDk1NjY5KS5mb3JFYWNoLEU9TCg2MzEyNCkoImZvckVhY2giKTtYZS5leHBvcnRzPUU/W10uZm9yRWFjaDpmdW5jdGlvbihVKXtyZXR1cm4gbWUodGhpcyxVLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1''@;'; put 'put ''bWVudHNbMV06dm9pZCAwKX19LDY2NjY2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTQ5KSxCPUwoMzU2MiksRT1MKDY4MDcxKSxFZT1MKDE4NzYpLFU9TCg5NzEwNiksUT1MKDQ5NDUzKSxqPUwoNTQ0NTApLHJlPUwoOTUwMDQpLGFlPUwoMTI5ODkpLFk9TCg2NjI4OCks''@;'; put 'put ''Vz1BcnJheTtYZS5leHBvcnRzPWZ1bmN0aW9uKHRlKXt2YXIgSz1FKHRlKSxKPVEodGhpcyksc2U9YXJndW1lbnRzLmxlbmd0aCxvZT1zZT4xP2FyZ3VtZW50c1sxXTp2b2lkIDAsY2U9dm9pZCAwIT09b2U7Y2UmJihvZT1tZShvZSxzZT4yP2FyZ3VtZW50c1syXTp2b2lkIDApKTt2YXIgQWUs''@;'; put 'put ''a2UsU2UsSWUsVGUsTWUsZGU9WShLKSx2ZT0wO2lmKCFkZXx8dGhpcz09PVcmJlUoZGUpKWZvcihBZT1qKEspLGtlPUo/bmV3IHRoaXMoQWUpOlcoQWUpO0FlPnZlO3ZlKyspTWU9Y2U/b2UoS1t2ZV0sdmUpOktbdmVdLHJlKGtlLHZlLE1lKTtlbHNlIGZvcihUZT0oSWU9YWUoSyxkZSkpLm5l''@;'; put 'put ''eHQsa2U9Sj9uZXcgdGhpczpbXTshKFNlPUIoVGUsSWUpKS5kb25lO3ZlKyspTWU9Y2U/RWUoSWUsb2UsW1NlLnZhbHVlLHZlXSwhMCk6U2UudmFsdWUscmUoa2UsdmUsTWUpO3JldHVybiBrZS5sZW5ndGg9dmUsa2V9fSwzNjMwNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MDMyNyksQj1MKDc2''@;'; put 'put ''MTYzKSxFPUwoNTQ0NTApLEVlPWZ1bmN0aW9uKFUpe3JldHVybiBmdW5jdGlvbihRLGoscmUpe3ZhciBOLGFlPW1lKFEpLFk9RShhZSksVz1CKHJlLFkpO2lmKFUmJmohPWope2Zvcig7WT5XOylpZigoTj1hZVtXKytdKSE9TilyZXR1cm4hMH1lbHNlIGZvcig7WT5XO1crKylpZigoVXx8VyBp''@;'; put 'put ''biBhZSkmJmFlW1ddPT09ailyZXR1cm4gVXx8V3x8MDtyZXR1cm4hVSYmLTF9fTtYZS5leHBvcnRzPXtpbmNsdWRlczpFZSghMCksaW5kZXhPZjpFZSghMSl9fSw5NTY2OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTQ5KSxCPUwoNjYxMyksRT1MKDU2NjA3KSxFZT1MKDY4MDcxKSxVPUwoNTQ0''@;'; put 'put ''NTApLFE9TCgzMTg1Nyksaj1CKFtdLnB1c2gpLHJlPWZ1bmN0aW9uKGFlKXt2YXIgWT0xPT1hZSxXPTI9PWFlLE49Mz09YWUsdGU9ND09YWUsSz02PT1hZSxKPTc9PWFlLHNlPTU9PWFlfHxLO3JldHVybiBmdW5jdGlvbihvZSxjZSxkZSx2ZSl7Zm9yKHZhciBPLHosQWU9RWUob2UpLGtlPUUo''@;'; put 'put ''QWUpLFNlPW1lKGNlLGRlKSxJZT1VKGtlKSxUZT0wLE1lPXZlfHxRLGhlPVk/TWUob2UsSWUpOld8fEo/TWUob2UsMCk6dm9pZCAwO0llPlRlO1RlKyspaWYoKHNlfHxUZSBpbiBrZSkmJih6PVNlKE89a2VbVGVdLFRlLEFlKSxhZSkpaWYoWSloZVtUZV09ejtlbHNlIGlmKHopc3dpdGNoKGFl''@;'; put 'put ''KXtjYXNlIDM6cmV0dXJuITA7Y2FzZSA1OnJldHVybiBPO2Nhc2UgNjpyZXR1cm4gVGU7Y2FzZSAyOmooaGUsTyl9ZWxzZSBzd2l0Y2goYWUpe2Nhc2UgNDpyZXR1cm4hMTtjYXNlIDc6aihoZSxPKX1yZXR1cm4gSz8tMTpOfHx0ZT90ZTpoZX19O1hlLmV4cG9ydHM9e2ZvckVhY2g6cmUoMCks''@;'; put 'put ''bWFwOnJlKDEpLGZpbHRlcjpyZSgyKSxzb21lOnJlKDMpLGV2ZXJ5OnJlKDQpLGZpbmQ6cmUoNSksZmluZEluZGV4OnJlKDYpLGZpbHRlclJlamVjdDpyZSg3KX19LDk2MjI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDExMzA2KSxCPUwoNTAzMjcpLEU9TCg0MDcwMiksRWU9''@;'; put 'put ''TCg1NDQ1MCksVT1MKDYzMTI0KSxRPU1hdGgubWluLGo9W10ubGFzdEluZGV4T2YscmU9ISFqJiYxL1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwLGFlPVUoImxhc3RJbmRleE9mIik7WGUuZXhwb3J0cz1yZXx8IWFlP2Z1bmN0aW9uKE4pe2lmKHJlKXJldHVybiBtZShqLHRoaXMsYXJndW1lbnRz''@;'; put 'put ''KXx8MDt2YXIgdGU9Qih0aGlzKSxLPUVlKHRlKSxKPUstMTtmb3IoYXJndW1lbnRzLmxlbmd0aD4xJiYoSj1RKEosRShhcmd1bWVudHNbMV0pKSksSjwwJiYoSj1LK0opO0o+PTA7Si0tKWlmKEogaW4gdGUmJnRlW0pdPT09TilyZXR1cm4gSnx8MDtyZXR1cm4tMX06an0sNTEyOTg6KFhlLEpl''@;'; put 'put ''LEwpPT57dmFyIG1lPUwoMjM1MjMpLEI9TCgyNTQ2KSxFPUwoMjkzODUpLEVlPUIoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3JldHVybiBFPj01MXx8IW1lKGZ1bmN0aW9uKCl7dmFyIFE9W107cmV0dXJuKFEuY29uc3RydWN0b3I9e30pW0VlXT1mdW5jdGlvbigpe3JldHVy''@;'; put 'put ''bntmb286MX19LDEhPT1RW1VdKEJvb2xlYW4pLmZvb30pfX0sNjMxMjQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDIzNTIzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7dmFyIEVlPVtdW0JdO3JldHVybiEhRWUmJm1lKGZ1bmN0aW9uKCl7RWUuY2FsbChudWxsLEV8fGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIDF9LDEpfSl9fSw3Mzc2MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4MTQ1MCksQj1MKDY4MDcxKSxFPUwoNTY2MDcpLEVlPUwoNTQ0NTApLFU9VHlwZUVycm9yLFE9ZnVuY3Rpb24oail7cmV0dXJuIGZ1bmN0aW9uKHJlLGFlLFksVyl7bWUoYWUpO3ZhciBOPUIocmUp''@;'; put 'put ''LHRlPUUoTiksSz1FZShOKSxKPWo/Sy0xOjAsc2U9aj8tMToxO2lmKFk8Milmb3IoOzspe2lmKEogaW4gdGUpe1c9dGVbSl0sSis9c2U7YnJlYWt9aWYoSis9c2Usaj9KPDA6Szw9Sil0aHJvdyBVKCJSZWR1Y2Ugb2YgZW1wdHkgYXJyYXkgd2l0aCBubyBpbml0aWFsIHZhbHVlIil9Zm9yKDtq''@;'; put 'put ''P0o+PTA6Sz5KO0orPXNlKUogaW4gdGUmJihXPWFlKFcsdGVbSl0sSixOKSk7cmV0dXJuIFd9fTtYZS5leHBvcnRzPXtsZWZ0OlEoITEpLHJpZ2h0OlEoITApfX0sMTA4NzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzYxNjMpLEI9TCg1NDQ1MCksRT1MKDk1MDA0KSxFZT1BcnJheSxVPU1hdGgu''@;'; put 'put ''bWF4O1hlLmV4cG9ydHM9ZnVuY3Rpb24oUSxqLHJlKXtmb3IodmFyIGFlPUIoUSksWT1tZShqLGFlKSxXPW1lKHZvaWQgMD09PXJlP2FlOnJlLGFlKSxOPUVlKFUoVy1ZLDApKSx0ZT0wO1k8VztZKyssdGUrKylFKE4sdGUsUVtZXSk7cmV0dXJuIE4ubGVuZ3RoPXRlLE59fSw0MDkzMDooWGUs''@;'; put 'put ''SmUsTCk9Pnt2YXIgbWU9TCg2NjEzKTtYZS5leHBvcnRzPW1lKFtdLnNsaWNlKX0sMzI1OTQ6KFhlLEplLEwpPT57dmFyIG1lPUwoMTA4NzIpLEI9TWF0aC5mbG9vcixFPWZ1bmN0aW9uKFEsail7dmFyIHJlPVEubGVuZ3RoLGFlPUIocmUvMik7cmV0dXJuIHJlPDg/RWUoUSxqKTpVKFEsRSht''@;'; put 'put ''ZShRLDAsYWUpLGopLEUobWUoUSxhZSksaiksail9LEVlPWZ1bmN0aW9uKFEsail7Zm9yKHZhciBZLFcscmU9US5sZW5ndGgsYWU9MTthZTxyZTspe2ZvcihXPWFlLFk9UVthZV07VyYmaihRW1ctMV0sWSk+MDspUVtXXT1RWy0tV107VyE9PWFlKysmJihRW1ddPVkpfXJldHVybiBRfSxVPWZ1''@;'; put 'put ''bmN0aW9uKFEsaixyZSxhZSl7Zm9yKHZhciBZPWoubGVuZ3RoLFc9cmUubGVuZ3RoLE49MCx0ZT0wO048WXx8dGU8VzspUVtOK3RlXT1OPFkmJnRlPFc/YWUoaltOXSxyZVt0ZV0pPD0wP2pbTisrXTpyZVt0ZSsrXTpOPFk/altOKytdOnJlW3RlKytdO3JldHVybiBRfTtYZS5leHBvcnRzPUV9''@;'; put 'put ''LDU3ODM1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDI5MTA2KSxCPUwoNDk0NTMpLEU9TCg3MTQ5NiksVT1MKDI1NDYpKCJzcGVjaWVzIiksUT1BcnJheTtYZS5leHBvcnRzPWZ1bmN0aW9uKGope3ZhciByZTtyZXR1cm4gbWUoaikmJihCKHJlPWouY29uc3RydWN0b3IpJiYocmU9PT1RfHxtZShy''@;'; put 'put ''ZS5wcm90b3R5cGUpKXx8RShyZSkmJm51bGw9PT0ocmU9cmVbVV0pKSYmKHJlPXZvaWQgMCksdm9pZCAwPT09cmU/UTpyZX19LDMxODU3OihYZSxKZSxMKT0+e3ZhciBtZT1MKDU3ODM1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7cmV0dXJuIG5ldyhtZShCKSkoMD09PUU/MDpFKX19LDE4''@;'; put 'put ''NzY6KFhlLEplLEwpPT57dmFyIG1lPUwoNTg2NDcpLEI9TCg4MDMwNyk7WGUuZXhwb3J0cz1mdW5jdGlvbihFLEVlLFUsUSl7dHJ5e3JldHVybiBRP0VlKG1lKFUpWzBdLFVbMV0pOkVlKFUpfWNhdGNoKGope0IoRSwidGhyb3ciLGopfX19LDI3NzkyOihYZSxKZSxMKT0+e3ZhciBCPUwoMjU0''@;'; put 'put ''NikoIml0ZXJhdG9yIiksRT0hMTt0cnl7dmFyIEVlPTAsVT17bmV4dDpmdW5jdGlvbigpe3JldHVybntkb25lOiEhRWUrK319LHJldHVybjpmdW5jdGlvbigpe0U9ITB9fTtVW0JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LEFycmF5LmZyb20oVSxmdW5jdGlvbigpe3Rocm93IDJ9KX1jYXRj''@;'; put 'put ''aChRKXt9WGUuZXhwb3J0cz1mdW5jdGlvbihRLGope2lmKCFqJiYhRSlyZXR1cm4hMTt2YXIgcmU9ITE7dHJ5e3ZhciBhZT17fTthZVtCXT1mdW5jdGlvbigpe3JldHVybntuZXh0OmZ1bmN0aW9uKCl7cmV0dXJue2RvbmU6cmU9ITB9fX19LFEoYWUpfWNhdGNoKFkpe31yZXR1cm4gcmV9fSw5''@;'; put 'put ''NDcyMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKSxCPW1lKHt9LnRvU3RyaW5nKSxFPW1lKCIiLnNsaWNlKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEVlKXtyZXR1cm4gRShCKEVlKSw4LC0xKX19LDc5NTIwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDI3NDkwKSxCPUwoMTIwMTQpLEU9TCg5NDcy''@;'; put 'put ''MyksVT1MKDI1NDYpKCJ0b1N0cmluZ1RhZyIpLFE9T2JqZWN0LGo9IkFyZ3VtZW50cyI9PUUoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtYZS5leHBvcnRzPW1lP0U6ZnVuY3Rpb24oYWUpe3ZhciBZLFcsTjtyZXR1cm4gdm9pZCAwPT09YWU/IlVuZGVmaW5lZCI6bnVsbD09PWFl''@;'; put 'put ''PyJOdWxsIjoic3RyaW5nIj09dHlwZW9mKFc9ZnVuY3Rpb24oYWUsWSl7dHJ5e3JldHVybiBhZVtZXX1jYXRjaChXKXt9fShZPVEoYWUpLFUpKT9XOmo/RShZKToiT2JqZWN0Ij09KE49RShZKSkmJkIoWS5jYWxsZWUpPyJBcmd1bWVudHMiOk59fSw0NTE0MDooWGUsSmUsTCk9PnsidXNlIHN0''@;'; put 'put ''cmljdCI7dmFyIG1lPUwoNTExODMpLmYsQj1MKDc0NDEwKSxFPUwoNzQwNjkpLEVlPUwoODU0OSksVT1MKDk1MjA0KSxRPUwoMjY1NDMpLGo9TCgzODQ5NykscmU9TCg2ODMxNSksYWU9TCg4NTYyNCksWT1MKDcxODMyKS5mYXN0S2V5LFc9TCg3MjcpLE49Vy5zZXQsdGU9Vy5nZXR0ZXJGb3I7''@;'; put 'put ''WGUuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24oSyxKLHNlLG9lKXt2YXIgY2U9SyhmdW5jdGlvbihTZSxJZSl7VShTZSxkZSksTihTZSx7dHlwZTpKLGluZGV4OkIobnVsbCksZmlyc3Q6dm9pZCAwLGxhc3Q6dm9pZCAwLHNpemU6MH0pLGFlfHwoU2Uuc2l6ZT0wKSxudWxsIT1J''@;'; put 'put ''ZSYmUShJZSxTZVtvZV0se3RoYXQ6U2UsQVNfRU5UUklFUzpzZX0pfSksZGU9Y2UucHJvdG90eXBlLHZlPXRlKEopLEFlPWZ1bmN0aW9uKFNlLEllLFRlKXt2YXIgTyx6LE1lPXZlKFNlKSxoZT1rZShTZSxJZSk7cmV0dXJuIGhlP2hlLnZhbHVlPVRlOihNZS5sYXN0PWhlPXtpbmRleDp6PVko''@;'; put 'put ''SWUsITApLGtleTpJZSx2YWx1ZTpUZSxwcmV2aW91czpPPU1lLmxhc3QsbmV4dDp2b2lkIDAscmVtb3ZlZDohMX0sTWUuZmlyc3R8fChNZS5maXJzdD1oZSksTyYmKE8ubmV4dD1oZSksYWU/TWUuc2l6ZSsrOlNlLnNpemUrKywiRiIhPT16JiYoTWUuaW5kZXhbel09aGUpKSxTZX0sa2U9ZnVu''@;'; put 'put ''Y3Rpb24oU2UsSWUpe3ZhciBoZSxUZT12ZShTZSksTWU9WShJZSk7aWYoIkYiIT09TWUpcmV0dXJuIFRlLmluZGV4W01lXTtmb3IoaGU9VGUuZmlyc3Q7aGU7aGU9aGUubmV4dClpZihoZS5rZXk9PUllKXJldHVybiBoZX07cmV0dXJuIEUoZGUse2NsZWFyOmZ1bmN0aW9uKCl7Zm9yKHZhciBU''@;'; put 'put ''ZT12ZSh0aGlzKSxNZT1UZS5pbmRleCxoZT1UZS5maXJzdDtoZTspaGUucmVtb3ZlZD0hMCxoZS5wcmV2aW91cyYmKGhlLnByZXZpb3VzPWhlLnByZXZpb3VzLm5leHQ9dm9pZCAwKSxkZWxldGUgTWVbaGUuaW5kZXhdLGhlPWhlLm5leHQ7VGUuZmlyc3Q9VGUubGFzdD12b2lkIDAsYWU/VGUu''@;'; put 'put ''c2l6ZT0wOnRoaXMuc2l6ZT0wfSxkZWxldGU6ZnVuY3Rpb24oU2Upe3ZhciBUZT12ZSh0aGlzKSxNZT1rZSh0aGlzLFNlKTtpZihNZSl7dmFyIGhlPU1lLm5leHQsTz1NZS5wcmV2aW91cztkZWxldGUgVGUuaW5kZXhbTWUuaW5kZXhdLE1lLnJlbW92ZWQ9ITAsTyYmKE8ubmV4dD1oZSksaGUm''@;'; put 'put ''JihoZS5wcmV2aW91cz1PKSxUZS5maXJzdD09TWUmJihUZS5maXJzdD1oZSksVGUubGFzdD09TWUmJihUZS5sYXN0PU8pLGFlP1RlLnNpemUtLTp0aGlzLnNpemUtLX1yZXR1cm4hIU1lfSxmb3JFYWNoOmZ1bmN0aW9uKEllKXtmb3IodmFyIGhlLFRlPXZlKHRoaXMpLE1lPUVlKEllLGFyZ3Vt''@;'; put 'put ''ZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKTtoZT1oZT9oZS5uZXh0OlRlLmZpcnN0Oylmb3IoTWUoaGUudmFsdWUsaGUua2V5LHRoaXMpO2hlJiZoZS5yZW1vdmVkOyloZT1oZS5wcmV2aW91c30saGFzOmZ1bmN0aW9uKEllKXtyZXR1cm4hIWtlKHRoaXMsSWUpfX0pLEUoZGUs''@;'; put 'put ''c2U/e2dldDpmdW5jdGlvbihJZSl7dmFyIFRlPWtlKHRoaXMsSWUpO3JldHVybiBUZSYmVGUudmFsdWV9LHNldDpmdW5jdGlvbihJZSxUZSl7cmV0dXJuIEFlKHRoaXMsMD09PUllPzA6SWUsVGUpfX06e2FkZDpmdW5jdGlvbihJZSl7cmV0dXJuIEFlKHRoaXMsSWU9MD09PUllPzA6SWUsSWUp''@;'; put 'put ''fX0pLGFlJiZtZShkZSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB2ZSh0aGlzKS5zaXplfX0pLGNlfSxzZXRTdHJvbmc6ZnVuY3Rpb24oSyxKLHNlKXt2YXIgb2U9SisiIEl0ZXJhdG9yIixjZT10ZShKKSxkZT10ZShvZSk7aihLLEosZnVuY3Rpb24odmUsQWUpe04odGhpcyx7dHlw''@;'; put 'put ''ZTpvZSx0YXJnZXQ6dmUsc3RhdGU6Y2UodmUpLGtpbmQ6QWUsbGFzdDp2b2lkIDB9KX0sZnVuY3Rpb24oKXtmb3IodmFyIHZlPWRlKHRoaXMpLEFlPXZlLmtpbmQsa2U9dmUubGFzdDtrZSYma2UucmVtb3ZlZDspa2U9a2UucHJldmlvdXM7cmV0dXJuIHZlLnRhcmdldCYmKHZlLmxhc3Q9a2U9''@;'; put 'put ''a2U/a2UubmV4dDp2ZS5zdGF0ZS5maXJzdCk/ImtleXMiPT1BZT97dmFsdWU6a2Uua2V5LGRvbmU6ITF9OiJ2YWx1ZXMiPT1BZT97dmFsdWU6a2UudmFsdWUsZG9uZTohMX06e3ZhbHVlOltrZS5rZXksa2UudmFsdWVdLGRvbmU6ITF9Oih2ZS50YXJnZXQ9dm9pZCAwLHt2YWx1ZTp2b2lkIDAs''@;'; put 'put ''ZG9uZTohMH0pfSxzZT8iZW50cmllcyI6InZhbHVlcyIsIXNlLCEwKSxyZShKKX19fSw0Mjk2OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNjYxMyksQj1MKDc0MDY5KSxFPUwoNzE4MzIpLmdldFdlYWtEYXRhLEVlPUwoNTg2NDcpLFU9TCg3MTQ5NiksUT1MKDk1MjA0KSxq''@;'; put 'put ''PUwoMjY1NDMpLHJlPUwoOTU2NjkpLGFlPUwoNDg4MTEpLFk9TCg3MjcpLFc9WS5zZXQsTj1ZLmdldHRlckZvcix0ZT1yZS5maW5kLEs9cmUuZmluZEluZGV4LEo9bWUoW10uc3BsaWNlKSxzZT0wLG9lPWZ1bmN0aW9uKHZlKXtyZXR1cm4gdmUuZnJvemVufHwodmUuZnJvemVuPW5ldyBjZSl9''@;'; put 'put ''LGNlPWZ1bmN0aW9uKCl7dGhpcy5lbnRyaWVzPVtdfSxkZT1mdW5jdGlvbih2ZSxBZSl7cmV0dXJuIHRlKHZlLmVudHJpZXMsZnVuY3Rpb24oa2Upe3JldHVybiBrZVswXT09PUFlfSl9O2NlLnByb3RvdHlwZT17Z2V0OmZ1bmN0aW9uKHZlKXt2YXIgQWU9ZGUodGhpcyx2ZSk7aWYoQWUpcmV0''@;'; put 'put ''dXJuIEFlWzFdfSxoYXM6ZnVuY3Rpb24odmUpe3JldHVybiEhZGUodGhpcyx2ZSl9LHNldDpmdW5jdGlvbih2ZSxBZSl7dmFyIGtlPWRlKHRoaXMsdmUpO2tlP2tlWzFdPUFlOnRoaXMuZW50cmllcy5wdXNoKFt2ZSxBZV0pfSxkZWxldGU6ZnVuY3Rpb24odmUpe3ZhciBBZT1LKHRoaXMuZW50''@;'; put 'put ''cmllcyxmdW5jdGlvbihrZSl7cmV0dXJuIGtlWzBdPT09dmV9KTtyZXR1cm5+QWUmJkoodGhpcy5lbnRyaWVzLEFlLDEpLCEhfkFlfX0sWGUuZXhwb3J0cz17Z2V0Q29uc3RydWN0b3I6ZnVuY3Rpb24odmUsQWUsa2UsU2Upe3ZhciBJZT12ZShmdW5jdGlvbihPLHope1EoTyxUZSksVyhPLHt0''@;'; put 'put ''eXBlOkFlLGlkOnNlKyssZnJvemVuOnZvaWQgMH0pLG51bGwhPXomJmooeixPW1NlXSx7dGhhdDpPLEFTX0VOVFJJRVM6a2V9KX0pLFRlPUllLnByb3RvdHlwZSxNZT1OKEFlKSxoZT1mdW5jdGlvbihPLHosZWUpe3ZhciBuZT1NZShPKSx4PUUoRWUoeiksITApO3JldHVybiEwPT09eD9vZShu''@;'; put 'put ''ZSkuc2V0KHosZWUpOnhbbmUuaWRdPWVlLE99O3JldHVybiBCKFRlLHtkZWxldGU6ZnVuY3Rpb24oTyl7dmFyIHo9TWUodGhpcyk7aWYoIVUoTykpcmV0dXJuITE7dmFyIGVlPUUoTyk7cmV0dXJuITA9PT1lZT9vZSh6KS5kZWxldGUoTyk6ZWUmJmFlKGVlLHouaWQpJiZkZWxldGUgZWVbei5p''@;'; put 'put ''ZF19LGhhczpmdW5jdGlvbih6KXt2YXIgZWU9TWUodGhpcyk7aWYoIVUoeikpcmV0dXJuITE7dmFyIG5lPUUoeik7cmV0dXJuITA9PT1uZT9vZShlZSkuaGFzKHopOm5lJiZhZShuZSxlZS5pZCl9fSksQihUZSxrZT97Z2V0OmZ1bmN0aW9uKHope3ZhciBlZT1NZSh0aGlzKTtpZihVKHopKXt2''@;'; put 'put ''YXIgbmU9RSh6KTtyZXR1cm4hMD09PW5lP29lKGVlKS5nZXQoeik6bmU/bmVbZWUuaWRdOnZvaWQgMH19LHNldDpmdW5jdGlvbih6LGVlKXtyZXR1cm4gaGUodGhpcyx6LGVlKX19OnthZGQ6ZnVuY3Rpb24oeil7cmV0dXJuIGhlKHRoaXMseiwhMCl9fSksSWV9fX0sNDY4NTc6KFhlLEplLEwp''@;'; put 'put ''PT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzA3MDUpLEU9TCg2NjEzKSxFZT1MKDY3NTA3KSxVPUwoMjU2NjYpLFE9TCg3MTgzMiksaj1MKDI2NTQzKSxyZT1MKDk1MjA0KSxhZT1MKDEyMDE0KSxZPUwoNzE0OTYpLFc9TCgyMzUyMyksTj1MKDI3NzkyKSx0ZT1MKDU1OTY4''@;'; put 'put ''KSxLPUwoNTE4NDkpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oSixzZSxvZSl7dmFyIGNlPS0xIT09Si5pbmRleE9mKCJNYXAiKSxkZT0tMSE9PUouaW5kZXhPZigiV2VhayIpLHZlPWNlPyJzZXQiOiJhZGQiLEFlPUJbSl0sa2U9QWUmJkFlLnByb3RvdHlwZSxTZT1BZSxJZT17fSxUZT1mdW5jdGlv''@;'; put 'put ''bih4KXt2YXIgUD1FKGtlW3hdKTtVKGtlLHgsImFkZCI9PXg/ZnVuY3Rpb24oVCl7cmV0dXJuIFAodGhpcywwPT09VD8wOlQpLHRoaXN9OiJkZWxldGUiPT14P2Z1bmN0aW9uKFYpe3JldHVybiEoZGUmJiFZKFYpKSYmUCh0aGlzLDA9PT1WPzA6Vil9OiJnZXQiPT14P2Z1bmN0aW9uKFQpe3Jl''@;'; put 'put ''dHVybiBkZSYmIVkoVCk/dm9pZCAwOlAodGhpcywwPT09VD8wOlQpfToiaGFzIj09eD9mdW5jdGlvbihUKXtyZXR1cm4hKGRlJiYhWShUKSkmJlAodGhpcywwPT09VD8wOlQpfTpmdW5jdGlvbihULFMpe3JldHVybiBQKHRoaXMsMD09PVQ/MDpULFMpLHRoaXN9KX07aWYoRWUoSiwhYWUoQWUp''@;'; put 'put ''fHwhKGRlfHxrZS5mb3JFYWNoJiYhVyhmdW5jdGlvbigpeyhuZXcgQWUpLmVudHJpZXMoKS5uZXh0KCl9KSkpKVNlPW9lLmdldENvbnN0cnVjdG9yKHNlLEosY2UsdmUpLFEuZW5hYmxlKCk7ZWxzZSBpZihFZShKLCEwKSl7dmFyIGhlPW5ldyBTZSxPPWhlW3ZlXShkZT97fTotMCwxKSE9aGUs''@;'; put 'put ''ej1XKGZ1bmN0aW9uKCl7aGUuaGFzKDEpfSksZWU9TihmdW5jdGlvbih4KXtuZXcgQWUoeCl9KSxuZT0hZGUmJlcoZnVuY3Rpb24oKXtmb3IodmFyIHg9bmV3IEFlLFA9NTtQLS07KXhbdmVdKFAsUCk7cmV0dXJuIXguaGFzKC0wKX0pO2VlfHwoKFNlPXNlKGZ1bmN0aW9uKHgsUCl7cmUoeCxr''@;'; put 'put ''ZSk7dmFyIFY9SyhuZXcgQWUseCxTZSk7cmV0dXJuIG51bGwhPVAmJmooUCxWW3ZlXSx7dGhhdDpWLEFTX0VOVFJJRVM6Y2V9KSxWfSkpLnByb3RvdHlwZT1rZSxrZS5jb25zdHJ1Y3Rvcj1TZSksKHp8fG5lKSYmKFRlKCJkZWxldGUiKSxUZSgiaGFzIiksY2UmJlRlKCJnZXQiKSksKG5lfHxP''@;'; put 'put ''KSYmVGUodmUpLGRlJiZrZS5jbGVhciYmZGVsZXRlIGtlLmNsZWFyfXJldHVybiBJZVtKXT1TZSxtZSh7Z2xvYmFsOiEwLGNvbnN0cnVjdG9yOiEwLGZvcmNlZDpTZSE9QWV9LEllKSx0ZShTZSxKKSxkZXx8b2Uuc2V0U3Ryb25nKFNlLEosY2UpLFNlfX0sNzc1NDg6KFhlLEplLEwpPT57dmFy''@;'; put 'put ''IG1lPUwoNDg4MTEpLEI9TCgyMTE5OSksRT1MKDQ3OTg3KSxFZT1MKDUxMTgzKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxqKXtmb3IodmFyIHJlPUIoUSksYWU9RWUuZixZPUUuZixXPTA7VzxyZS5sZW5ndGg7VysrKXt2YXIgTj1yZVtXXTshbWUoVSxOKSYmKCFqfHwhbWUoaixOKSkmJmFl''@;'; put 'put ''KFUsTixZKFEsTikpfX19LDc2NTcxOihYZSxKZSxMKT0+e3ZhciBCPUwoMjU0NikoIm1hdGNoIik7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXt2YXIgRWU9Ly4vO3RyeXsiLy4vIltFXShFZSl9Y2F0Y2goVSl7dHJ5e3JldHVybiBFZVtCXT0hMSwiLy4vIltFXShFZSl9Y2F0Y2goUSl7fX1yZXR1''@;'; put 'put ''cm4hMX19LDQ2MDg2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKTtYZS5leHBvcnRzPSFtZShmdW5jdGlvbigpe2Z1bmN0aW9uIEIoKXt9cmV0dXJuIEIucHJvdG90eXBlLmNvbnN0cnVjdG9yPW51bGwsT2JqZWN0LmdldFByb3RvdHlwZU9mKG5ldyBCKSE9PUIucHJvdG90eXBlfSl9LDk1''@;'; put 'put ''MTEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCgyNDU3MiksRT1MKDkyMSksRWU9LyIvZyxVPW1lKCIiLnJlcGxhY2UpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oUSxqLHJlLGFlKXt2YXIgWT1FKEIoUSkpLFc9IjwiK2o7cmV0dXJuIiIhPT1yZSYmKFcrPSIgIityZSsnPSInK1UoRShh''@;'; put 'put ''ZSksRWUsIiZxdW90OyIpKyciJyksVysiPiIrWSsiPC8iK2orIj4ifX0sOTc4OTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDE4NTQ2KS5JdGVyYXRvclByb3RvdHlwZSxCPUwoNzQ0MTApLEU9TCg3MzkyMCksRWU9TCg1NTk2OCksVT1MKDk1MjU3KSxRPWZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIHRoaXN9O1hlLmV4cG9ydHM9ZnVuY3Rpb24oaixyZSxhZSxZKXt2YXIgVz1yZSsiIEl0ZXJhdG9yIjtyZXR1cm4gai5wcm90b3R5cGU9QihtZSx7bmV4dDpFKCshWSxhZSl9KSxFZShqLFcsITEsITApLFVbV109USxqfX0sMTYwMTc6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQp''@;'; put 'put ''LEI9TCg1MTE4MyksRT1MKDczOTIwKTtYZS5leHBvcnRzPW1lP2Z1bmN0aW9uKEVlLFUsUSl7cmV0dXJuIEIuZihFZSxVLEUoMSxRKSl9OmZ1bmN0aW9uKEVlLFUsUSl7cmV0dXJuIEVlW1VdPVEsRWV9fSw3MzkyMDpYZT0+e1hlLmV4cG9ydHM9ZnVuY3Rpb24oSmUsTCl7cmV0dXJue2VudW1l''@;'; put 'put ''cmFibGU6ISgxJkplKSxjb25maWd1cmFibGU6ISgyJkplKSx3cml0YWJsZTohKDQmSmUpLHZhbHVlOkx9fX0sOTUwMDQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg0MDk0KSxCPUwoNTExODMpLEU9TCg3MzkyMCk7WGUuZXhwb3J0cz1mdW5jdGlvbihFZSxVLFEpe3ZhciBq''@;'; put 'put ''PW1lKFUpO2ogaW4gRWU/Qi5mKEVlLGosRSgwLFEpKTpFZVtqXT1RfX0sMjU2NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoMTIwMTQpLEI9TCg1MTE4MyksRT1MKDM0NDY4KSxFZT1MKDczNDcwKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFUsUSxqLHJlKXtyZXx8KHJlPXt9KTt2YXIgYWU9cmUuZW51''@;'; put 'put ''bWVyYWJsZSxZPXZvaWQgMCE9PXJlLm5hbWU/cmUubmFtZTpRO2lmKG1lKGopJiZFKGosWSxyZSkscmUuZ2xvYmFsKWFlP1VbUV09ajpFZShRLGopO2Vsc2V7dHJ5e3JlLnVuc2FmZT9VW1FdJiYoYWU9ITApOmRlbGV0ZSBVW1FdfWNhdGNoKFcpe31hZT9VW1FdPWo6Qi5mKFUsUSx7dmFsdWU6''@;'; put 'put ''aixlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohcmUubm9uQ29uZmlndXJhYmxlLHdyaXRhYmxlOiFyZS5ub25Xcml0YWJsZX0pfXJldHVybiBVfX0sNzQwNjk6KFhlLEplLEwpPT57dmFyIG1lPUwoMjU2NjYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQixFLEVlKXtmb3IodmFyIFUgaW4gRSlt''@;'; put 'put ''ZShCLFUsRVtVXSxFZSk7cmV0dXJuIEJ9fSw3MzQ3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1PYmplY3QuZGVmaW5lUHJvcGVydHk7WGUuZXhwb3J0cz1mdW5jdGlvbihFLEVlKXt0cnl7QihtZSxFLHt2YWx1ZTpFZSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KX1jYXRj''@;'; put 'put ''aChVKXttZVtFXT1FZX1yZXR1cm4gRWV9fSwzODQ5NzooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCgzNTYyKSxFPUwoMTAwMTcpLEVlPUwoMTM4NjkpLFU9TCgxMjAxNCksUT1MKDk3ODk1KSxqPUwoODI3MzMpLHJlPUwoMTk1ODcpLGFlPUwoNTU5NjgpLFk9''@;'; put 'put ''TCgxNjAxNyksVz1MKDI1NjY2KSxOPUwoMjU0NiksdGU9TCg5NTI1NyksSz1MKDE4NTQ2KSxKPUVlLlBST1BFUixzZT1FZS5DT05GSUdVUkFCTEUsb2U9Sy5JdGVyYXRvclByb3RvdHlwZSxjZT1LLkJVR0dZX1NBRkFSSV9JVEVSQVRPUlMsZGU9TigiaXRlcmF0b3IiKSxBZT0idmFsdWVzIixr''@;'; put 'put ''ZT0iZW50cmllcyIsU2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307WGUuZXhwb3J0cz1mdW5jdGlvbihJZSxUZSxNZSxoZSxPLHosZWUpe1EoTWUsVGUsaGUpO3ZhciB5ZSxDZSxEZSxuZT1mdW5jdGlvbihQZSl7aWYoUGU9PT1PJiZTKXJldHVybiBTO2lmKCFjZSYmUGUgaW4gVilyZXR1cm4g''@;'; put 'put ''VltQZV07c3dpdGNoKFBlKXtjYXNlImtleXMiOmNhc2UgQWU6Y2FzZSBrZTpyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1lKHRoaXMsUGUpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gbmV3IE1lKHRoaXMpfX0seD1UZSsiIEl0ZXJhdG9yIixQPSExLFY9SWUucHJvdG90eXBlLFQ9''@;'; put 'put ''VltkZV18fFZbIkBAaXRlcmF0b3IiXXx8TyYmVltPXSxTPSFjZSYmVHx8bmUoTyksRj0iQXJyYXkiPT1UZSYmVi5lbnRyaWVzfHxUO2lmKEYmJih5ZT1qKEYuY2FsbChuZXcgSWUpKSkhPT1PYmplY3QucHJvdG90eXBlJiZ5ZS5uZXh0JiYoIUUmJmooeWUpIT09b2UmJihyZT9yZSh5ZSxvZSk6''@;'; put 'put ''VSh5ZVtkZV0pfHxXKHllLGRlLFNlKSksYWUoeWUseCwhMCwhMCksRSYmKHRlW3hdPVNlKSksSiYmTz09QWUmJlQmJlQubmFtZSE9PUFlJiYoIUUmJnNlP1koViwibmFtZSIsQWUpOihQPSEwLFM9ZnVuY3Rpb24oKXtyZXR1cm4gQihULHRoaXMpfSkpLE8paWYoQ2U9e3ZhbHVlczpuZShBZSks''@;'; put 'put ''a2V5czp6P1M6bmUoImtleXMiKSxlbnRyaWVzOm5lKGtlKX0sZWUpZm9yKERlIGluIENlKShjZXx8UHx8IShEZSBpbiBWKSkmJlcoVixEZSxDZVtEZV0pO2Vsc2UgbWUoe3RhcmdldDpUZSxwcm90bzohMCxmb3JjZWQ6Y2V8fFB9LENlKTtyZXR1cm4oIUV8fGVlKSYmVltkZV0hPT1TJiZXKFYs''@;'; put 'put ''ZGUsUyx7bmFtZTpPfSksdGVbVGVdPVMsQ2V9fSwzOTIzNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5MjczMyksQj1MKDQ4ODExKSxFPUwoMjgxMSksRWU9TCg1MTE4MykuZjtYZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3ZhciBRPW1lLlN5bWJvbHx8KG1lLlN5bWJvbD17fSk7QihRLFUpfHxFZShR''@;'; put 'put ''LFUse3ZhbHVlOkUuZihVKX0pfX0sNDYyODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoOTQ2NzYpLEI9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSxFZSl7aWYoIWRlbGV0ZSBFW0VlXSl0aHJvdyBCKCJDYW5ub3QgZGVsZXRlIHByb3BlcnR5ICIrbWUoRWUpKyIg''@;'; put 'put ''b2YgIittZShFKSl9fSw4NTYyNDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyk7WGUuZXhwb3J0cz0hbWUoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSl9LDQ2MzEzOihYZSxKZSxMKT0+e3Zh''@;'; put 'put ''ciBtZT1MKDcwNzA1KSxCPUwoNzE0OTYpLEU9bWUuZG9jdW1lbnQsRWU9QihFKSYmQihFLmNyZWF0ZUVsZW1lbnQpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSl7cmV0dXJuIEVlP0UuY3JlYXRlRWxlbWVudChVKTp7fX19LDIzMTI0OlhlPT57dmFyIEplPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1''@;'; put 'put ''bmN0aW9uKG1lKXtpZihtZT45MDA3MTk5MjU0NzQwOTkxKXRocm93IEplKCJNYXhpbXVtIGFsbG93ZWQgaW5kZXggZXhjZWVkZWQiKTtyZXR1cm4gbWV9fSwxOTIzMTpYZT0+e1hlLmV4cG9ydHM9e0NTU1J1bGVMaXN0OjAsQ1NTU3R5bGVEZWNsYXJhdGlvbjowLENTU1ZhbHVlTGlzdDowLENs''@;'; put 'put ''aWVudFJlY3RMaXN0OjAsRE9NUmVjdExpc3Q6MCxET01TdHJpbmdMaXN0OjAsRE9NVG9rZW5MaXN0OjEsRGF0YVRyYW5zZmVySXRlbUxpc3Q6MCxGaWxlTGlzdDowLEhUTUxBbGxDb2xsZWN0aW9uOjAsSFRNTENvbGxlY3Rpb246MCxIVE1MRm9ybUVsZW1lbnQ6MCxIVE1MU2VsZWN0RWxlbWVu''@;'; put 'put ''dDowLE1lZGlhTGlzdDowLE1pbWVUeXBlQXJyYXk6MCxOYW1lZE5vZGVNYXA6MCxOb2RlTGlzdDoxLFBhaW50UmVxdWVzdExpc3Q6MCxQbHVnaW46MCxQbHVnaW5BcnJheTowLFNWR0xlbmd0aExpc3Q6MCxTVkdOdW1iZXJMaXN0OjAsU1ZHUGF0aFNlZ0xpc3Q6MCxTVkdQb2ludExpc3Q6MCxT''@;'; put 'put ''VkdTdHJpbmdMaXN0OjAsU1ZHVHJhbnNmb3JtTGlzdDowLFNvdXJjZUJ1ZmZlckxpc3Q6MCxTdHlsZVNoZWV0TGlzdDowLFRleHRUcmFja0N1ZUxpc3Q6MCxUZXh0VHJhY2tMaXN0OjAsVG91Y2hMaXN0OjB9fSwyOTkxMDooWGUsSmUsTCk9Pnt2YXIgQj1MKDQ2MzEzKSgic3BhbiIpLmNsYXNz''@;'; put 'put ''TGlzdCxFPUImJkIuY29uc3RydWN0b3ImJkIuY29uc3RydWN0b3IucHJvdG90eXBlO1hlLmV4cG9ydHM9RT09PU9iamVjdC5wcm90b3R5cGU/dm9pZCAwOkV9LDc1NzA2OihYZSxKZSxMKT0+e3ZhciBCPUwoNzc4MzkpLm1hdGNoKC9maXJlZm94XC8oXGQrKS9pKTtYZS5leHBvcnRzPSEhQiYm''@;'; put 'put ''K0JbMV19LDk4ODY6KFhlLEplLEwpPT57dmFyIG1lPUwoNzc4MzkpO1hlLmV4cG9ydHM9L01TSUV8VHJpZGVudC8udGVzdChtZSl9LDc4NTIwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc3ODM5KTtYZS5leHBvcnRzPS8oPzppcGFkfGlwaG9uZXxpcG9kKS4qYXBwbGV3ZWJraXQvaS50ZXN0KG1l''@;'; put 'put ''KX0sODcyNDQ6KFhlLEplLEwpPT57dmFyIG1lPUwoOTQ3MjMpLEI9TCg3MDcwNSk7WGUuZXhwb3J0cz0icHJvY2VzcyI9PW1lKEIucHJvY2Vzcyl9LDc3ODM5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ2NjkzKTtYZS5leHBvcnRzPW1lKCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiKXx8IiJ9LDI5''@;'; put 'put ''Mzg1OihYZSxKZSxMKT0+e3ZhciBqLHJlLG1lPUwoNzA3MDUpLEI9TCg3NzgzOSksRT1tZS5wcm9jZXNzLEVlPW1lLkRlbm8sVT1FJiZFLnZlcnNpb25zfHxFZSYmRWUudmVyc2lvbixRPVUmJlUudjg7USYmKHJlPShqPVEuc3BsaXQoIi4iKSlbMF0+MCYmalswXTw0PzE6KyhqWzBdK2pbMV0p''@;'; put 'put ''KSwhcmUmJkImJighKGo9Qi5tYXRjaCgvRWRnZVwvKFxkKykvKSl8fGpbMV0+PTc0KSYmKGo9Qi5tYXRjaCgvQ2hyb21lXC8oXGQrKS8pKSYmKHJlPStqWzFdKSxYZS5leHBvcnRzPXJlfSw5NjM0OihYZSxKZSxMKT0+e3ZhciBCPUwoNzc4MzkpLm1hdGNoKC9BcHBsZVdlYktpdFwvKFxkKylc''@;'; put 'put ''Li8pO1hlLmV4cG9ydHM9ISFCJiYrQlsxXX0sNDc4MzM6WGU9PntYZS5leHBvcnRzPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl19LDg1NjQ4''@;'; put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoNDc5ODcpLmYsRT1MKDE2MDE3KSxFZT1MKDI1NjY2KSxVPUwoNzM0NzApLFE9TCg3NzU0OCksaj1MKDY3NTA3KTtYZS5leHBvcnRzPWZ1bmN0aW9uKHJlLGFlKXt2YXIgSyxKLHNlLG9lLGNlLFk9cmUudGFyZ2V0LFc9cmUuZ2xvYmFs''@;'; put 'put ''LE49cmUuc3RhdDtpZihLPVc/bWU6Tj9tZVtZXXx8VShZLHt9KToobWVbWV18fHt9KS5wcm90b3R5cGUpZm9yKEogaW4gYWUpe2lmKG9lPWFlW0pdLHNlPXJlLmRvbnRDYWxsR2V0U2V0PyhjZT1CKEssSikpJiZjZS52YWx1ZTpLW0pdLCFqKFc/SjpZKyhOPyIuIjoiIyIpK0oscmUuZm9yY2Vk''@;'; put 'put ''KSYmdm9pZCAwIT09c2Upe2lmKHR5cGVvZiBvZT09dHlwZW9mIHNlKWNvbnRpbnVlO1Eob2Usc2UpfShyZS5zaGFtfHxzZSYmc2Uuc2hhbSkmJkUob2UsInNoYW0iLCEwKSxFZShLLEosb2UscmUpfX19LDIzNTIzOlhlPT57WGUuZXhwb3J0cz1mdW5jdGlvbihKZSl7dHJ5e3JldHVybiEhSmUo''@;'; put 'put ''KX1jYXRjaChMKXtyZXR1cm4hMH19fSwyMjgxNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCg0Mjc2MCk7dmFyIG1lPUwoNjYxMyksQj1MKDI1NjY2KSxFPUwoMjIyMzQpLEVlPUwoMjM1MjMpLFU9TCgyNTQ2KSxRPUwoMTYwMTcpLGo9VSgic3BlY2llcyIpLHJlPVJlZ0V4cC5wcm90b3R5''@;'; put 'put ''cGU7WGUuZXhwb3J0cz1mdW5jdGlvbihhZSxZLFcsTil7dmFyIHRlPVUoYWUpLEs9IUVlKGZ1bmN0aW9uKCl7dmFyIGNlPXt9O3JldHVybiBjZVt0ZV09ZnVuY3Rpb24oKXtyZXR1cm4gN30sNyE9IiJbYWVdKGNlKX0pLEo9SyYmIUVlKGZ1bmN0aW9uKCl7dmFyIGNlPSExLGRlPS9hLztyZXR1''@;'; put 'put ''cm4ic3BsaXQiPT09YWUmJigoZGU9e30pLmNvbnN0cnVjdG9yPXt9LGRlLmNvbnN0cnVjdG9yW2pdPWZ1bmN0aW9uKCl7cmV0dXJuIGRlfSxkZS5mbGFncz0iIixkZVt0ZV09Ly4vW3RlXSksZGUuZXhlYz1mdW5jdGlvbigpe3JldHVybiBjZT0hMCxudWxsfSxkZVt0ZV0oIiIpLCFjZX0pO2lm''@;'; put 'put ''KCFLfHwhSnx8Vyl7dmFyIHNlPW1lKC8uL1t0ZV0pLG9lPVkodGUsIiJbYWVdLGZ1bmN0aW9uKGNlLGRlLHZlLEFlLGtlKXt2YXIgU2U9bWUoY2UpLEllPWRlLmV4ZWM7cmV0dXJuIEllPT09RXx8SWU9PT1yZS5leGVjP0smJiFrZT97ZG9uZTohMCx2YWx1ZTpzZShkZSx2ZSxBZSl9Ontkb25l''@;'; put 'put ''OiEwLHZhbHVlOlNlKHZlLGRlLEFlKX06e2RvbmU6ITF9fSk7QihTdHJpbmcucHJvdG90eXBlLGFlLG9lWzBdKSxCKHJlLHRlLG9lWzFdKX1OJiZRKHJlW3RlXSwic2hhbSIsITApfX0sMTI1NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoMjM1MjMpO1hlLmV4cG9ydHM9IW1lKGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIE9iamVjdC5pc0V4dGVuc2libGUoT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKHt9KSl9KX0sMTEzMDY6KFhlLEplLEwpPT57dmFyIG1lPUwoMzY1NjEpLEI9RnVuY3Rpb24ucHJvdG90eXBlLEU9Qi5hcHBseSxFZT1CLmNhbGw7WGUuZXhwb3J0cz0ib2JqZWN0Ij09dHlwZW9mIFJl''@;'; put 'put ''ZmxlY3QmJlJlZmxlY3QuYXBwbHl8fChtZT9FZS5iaW5kKEUpOmZ1bmN0aW9uKCl7cmV0dXJuIEVlLmFwcGx5KEUsYXJndW1lbnRzKX0pfSw4NTQ5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2MTMpLEI9TCg4MTQ1MCksRT1MKDM2NTYxKSxFZT1tZShtZS5iaW5kKTtYZS5leHBvcnRzPWZ1bmN0''@;'; put 'put ''aW9uKFUsUSl7cmV0dXJuIEIoVSksdm9pZCAwPT09UT9VOkU/RWUoVSxRKTpmdW5jdGlvbigpe3JldHVybiBVLmFwcGx5KFEsYXJndW1lbnRzKX19fSwzNjU2MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyk7WGUuZXhwb3J0cz0hbWUoZnVuY3Rpb24oKXt2YXIgQj1mdW5jdGlvbigpe30u''@;'; put 'put ''YmluZCgpO3JldHVybiJmdW5jdGlvbiIhPXR5cGVvZiBCfHxCLmhhc093blByb3BlcnR5KCJwcm90b3R5cGUiKX0pfSw2OTg5OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg2NjEzKSxCPUwoODE0NTApLEU9TCg3MTQ5NiksRWU9TCg0ODgxMSksVT1MKDQwOTMwKSxRPUwoMzY1''@;'; put 'put ''NjEpLGo9RnVuY3Rpb24scmU9bWUoW10uY29uY2F0KSxhZT1tZShbXS5qb2luKSxZPXt9LFc9ZnVuY3Rpb24oTix0ZSxLKXtpZighRWUoWSx0ZSkpe2Zvcih2YXIgSj1bXSxzZT0wO3NlPHRlO3NlKyspSltzZV09ImFbIitzZSsiXSI7WVt0ZV09aigiQyxhIiwicmV0dXJuIG5ldyBDKCIrYWUo''@;'; put 'put ''SiwiLCIpKyIpIil9cmV0dXJuIFlbdGVdKE4sSyl9O1hlLmV4cG9ydHM9UT9qLmJpbmQ6ZnVuY3Rpb24odGUpe3ZhciBLPUIodGhpcyksSj1LLnByb3RvdHlwZSxzZT1VKGFyZ3VtZW50cywxKSxvZT1mdW5jdGlvbigpe3ZhciBkZT1yZShzZSxVKGFyZ3VtZW50cykpO3JldHVybiB0aGlzIGlu''@;'; put 'put ''c3RhbmNlb2Ygb2U/VyhLLGRlLmxlbmd0aCxkZSk6Sy5hcHBseSh0ZSxkZSl9O3JldHVybiBFKEopJiYob2UucHJvdG90eXBlPUopLG9lfX0sMzU2MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNjU2MSksQj1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbDtYZS5leHBvcnRzPW1lP0IuYmluZChCKTpm''@;'; put 'put ''dW5jdGlvbigpe3JldHVybiBCLmFwcGx5KEIsYXJndW1lbnRzKX19LDEzODY5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoNDg4MTEpLEU9RnVuY3Rpb24ucHJvdG90eXBlLEVlPW1lJiZPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLFU9QihFLCJuYW1lIiksUT1VJiYi''@;'; put 'put ''c29tZXRoaW5nIj09PWZ1bmN0aW9uKCl7fS5uYW1lLGo9VSYmKCFtZXx8bWUmJkVlKEUsIm5hbWUiKS5jb25maWd1cmFibGUpO1hlLmV4cG9ydHM9e0VYSVNUUzpVLFBST1BFUjpRLENPTkZJR1VSQUJMRTpqfX0sNjYxMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNjU2MSksQj1GdW5jdGlvbi5w''@;'; put 'put ''cm90b3R5cGUsRWU9Qi5jYWxsLFU9bWUmJkIuYmluZC5iaW5kKEVlLEVlKTtYZS5leHBvcnRzPW1lP2Z1bmN0aW9uKFEpe3JldHVybiBRJiZVKFEpfTpmdW5jdGlvbihRKXtyZXR1cm4gUSYmZnVuY3Rpb24oKXtyZXR1cm4gRWUuYXBwbHkoUSxhcmd1bWVudHMpfX19LDQ2NjkzOihYZSxKZSxM''@;'; put 'put ''KT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoMTIwMTQpLEU9ZnVuY3Rpb24oRWUpe3JldHVybiBCKEVlKT9FZTp2b2lkIDB9O1hlLmV4cG9ydHM9ZnVuY3Rpb24oRWUsVSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9FKG1lW0VlXSk6bWVbRWVdJiZtZVtFZV1bVV19fSw2NjI4ODooWGUsSmUs''@;'; put 'put ''TCk9Pnt2YXIgbWU9TCg3OTUyMCksQj1MKDIwOTQ4KSxFPUwoOTUyNTcpLFU9TCgyNTQ2KSgiaXRlcmF0b3IiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe2lmKG51bGwhPVEpcmV0dXJuIEIoUSxVKXx8QihRLCJAQGl0ZXJhdG9yIil8fEVbbWUoUSldfX0sMTI5ODk6KFhlLEplLEwpPT57dmFy''@;'; put 'put ''IG1lPUwoMzU2MiksQj1MKDgxNDUwKSxFPUwoNTg2NDcpLEVlPUwoOTQ2NzYpLFU9TCg2NjI4OCksUT1UeXBlRXJyb3I7WGUuZXhwb3J0cz1mdW5jdGlvbihqLHJlKXt2YXIgYWU9YXJndW1lbnRzLmxlbmd0aDwyP1Uoaik6cmU7aWYoQihhZSkpcmV0dXJuIEUobWUoYWUsaikpO3Rocm93IFEo''@;'; put 'put ''RWUoaikrIiBpcyBub3QgaXRlcmFibGUiKX19LDIwOTQ4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDgxNDUwKTtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSl7dmFyIEVlPUJbRV07cmV0dXJuIG51bGw9PUVlP3ZvaWQgMDptZShFZSl9fSw2MzM4MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKSxC''@;'; put 'put ''PUwoNjgwNzEpLEU9TWF0aC5mbG9vcixFZT1tZSgiIi5jaGFyQXQpLFU9bWUoIiIucmVwbGFjZSksUT1tZSgiIi5zbGljZSksaj0vXCQoWyQmJ2BdfFxkezEsMn18PFtePl0qPikvZyxyZT0vXCQoWyQmJ2BdfFxkezEsMn0pL2c7WGUuZXhwb3J0cz1mdW5jdGlvbihhZSxZLFcsTix0ZSxLKXt2''@;'; put 'put ''YXIgSj1XK2FlLmxlbmd0aCxzZT1OLmxlbmd0aCxvZT1yZTtyZXR1cm4gdm9pZCAwIT09dGUmJih0ZT1CKHRlKSxvZT1qKSxVKEssb2UsZnVuY3Rpb24oY2UsZGUpe3ZhciB2ZTtzd2l0Y2goRWUoZGUsMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIGFlO2Nhc2UiYCI6cmV0''@;'; put 'put ''dXJuIFEoWSwwLFcpO2Nhc2UiJyI6cmV0dXJuIFEoWSxKKTtjYXNlIjwiOnZlPXRlW1EoZGUsMSwtMSldO2JyZWFrO2RlZmF1bHQ6dmFyIEFlPStkZTtpZigwPT09QWUpcmV0dXJuIGNlO2lmKEFlPnNlKXt2YXIga2U9RShBZS8xMCk7cmV0dXJuIDA9PT1rZT9jZTprZTw9c2U/dm9pZCAwPT09''@;'; put 'put ''TltrZS0xXT9FZShkZSwxKTpOW2tlLTFdK0VlKGRlLDEpOmNlfXZlPU5bQWUtMV19cmV0dXJuIHZvaWQgMD09PXZlPyIiOnZlfSl9fSw3MDcwNTpYZT0+e3ZhciBKZT1mdW5jdGlvbihMKXtyZXR1cm4gTCYmTC5NYXRoPT1NYXRoJiZMfTtYZS5leHBvcnRzPUplKCJvYmplY3QiPT10eXBlb2Yg''@;'; put 'put ''Z2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyl8fEplKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxKZSgib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYpfHxKZSgib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rp''@;'; put 'put ''b24oInJldHVybiB0aGlzIikoKX0sNDg4MTE6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDY4MDcxKSxFPW1lKHt9Lmhhc093blByb3BlcnR5KTtYZS5leHBvcnRzPU9iamVjdC5oYXNPd258fGZ1bmN0aW9uKFUsUSl7cmV0dXJuIEUoQihVKSxRKX19LDE5OTA5OlhlPT57WGUuZXhw''@;'; put 'put ''b3J0cz17fX0sNTk0MDY6KFhlLEplLEwpPT57dmFyIG1lPUwoNDY2OTMpO1hlLmV4cG9ydHM9bWUoImRvY3VtZW50IiwiZG9jdW1lbnRFbGVtZW50Iil9LDk0Njc1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoMjM1MjMpLEU9TCg0NjMxMyk7WGUuZXhwb3J0cz0hbWUmJiFCKGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShFKCJkaXYiKSwiYSIse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pLmF9KX0sNTY2MDc6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDIzNTIzKSxFPUwoOTQ3MjMpLEVlPU9iamVjdCxVPW1lKCIiLnNwbGl0''@;'; put 'put ''KTtYZS5leHBvcnRzPUIoZnVuY3Rpb24oKXtyZXR1cm4hRWUoInoiKS5wcm9wZXJ0eUlzRW51bWVyYWJsZSgwKX0pP2Z1bmN0aW9uKFEpe3JldHVybiJTdHJpbmciPT1FKFEpP1UoUSwiIik6RWUoUSl9OkVlfSw1MTg0OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMjAxNCksQj1MKDcxNDk2KSxF''@;'; put 'put ''PUwoMTk1ODcpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRWUsVSxRKXt2YXIgaixyZTtyZXR1cm4gRSYmbWUoaj1VLmNvbnN0cnVjdG9yKSYmaiE9PVEmJkIocmU9ai5wcm90b3R5cGUpJiZyZSE9PVEucHJvdG90eXBlJiZFKEVlLHJlKSxFZX19LDU3MzcxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDY2''@;'; put 'put ''MTMpLEI9TCgxMjAxNCksRT1MKDgxMDY5KSxFZT1tZShGdW5jdGlvbi50b1N0cmluZyk7QihFLmluc3BlY3RTb3VyY2UpfHwoRS5pbnNwZWN0U291cmNlPWZ1bmN0aW9uKFUpe3JldHVybiBFZShVKX0pLFhlLmV4cG9ydHM9RS5pbnNwZWN0U291cmNlfSw3MTgzMjooWGUsSmUsTCk9Pnt2YXIg''@;'; put 'put ''bWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCgxOTkwOSksRWU9TCg3MTQ5NiksVT1MKDQ4ODExKSxRPUwoNTExODMpLmYsaj1MKDc1NDMxKSxyZT1MKDM1ODA4KSxhZT1MKDU1MjE4KSxZPUwoNTI4MTApLFc9TCgxMjU2NiksTj0hMSx0ZT1ZKCJtZXRhIiksSz0wLEo9ZnVuY3Rpb24oQWUpe1Eo''@;'; put 'put ''QWUsdGUse3ZhbHVlOntvYmplY3RJRDoiTyIrSysrLHdlYWtEYXRhOnt9fX0pfSx2ZT1YZS5leHBvcnRzPXtlbmFibGU6ZnVuY3Rpb24oKXt2ZS5lbmFibGU9ZnVuY3Rpb24oKXt9LE49ITA7dmFyIEFlPWouZixrZT1CKFtdLnNwbGljZSksU2U9e307U2VbdGVdPTEsQWUoU2UpLmxlbmd0aCYm''@;'; put 'put ''KGouZj1mdW5jdGlvbihJZSl7Zm9yKHZhciBUZT1BZShJZSksTWU9MCxoZT1UZS5sZW5ndGg7TWU8aGU7TWUrKylpZihUZVtNZV09PT10ZSl7a2UoVGUsTWUsMSk7YnJlYWt9cmV0dXJuIFRlfSxtZSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITAsZm9yY2VkOiEwfSx7Z2V0T3duUHJvcGVydHlO''@;'; put 'put ''YW1lczpyZS5mfSkpfSxmYXN0S2V5OmZ1bmN0aW9uKEFlLGtlKXtpZighRWUoQWUpKXJldHVybiJzeW1ib2wiPT10eXBlb2YgQWU/QWU6KCJzdHJpbmciPT10eXBlb2YgQWU/IlMiOiJQIikrQWU7aWYoIVUoQWUsdGUpKXtpZighYWUoQWUpKXJldHVybiJGIjtpZigha2UpcmV0dXJuIkUiO0oo''@;'; put 'put ''QWUpfXJldHVybiBBZVt0ZV0ub2JqZWN0SUR9LGdldFdlYWtEYXRhOmZ1bmN0aW9uKEFlLGtlKXtpZighVShBZSx0ZSkpe2lmKCFhZShBZSkpcmV0dXJuITA7aWYoIWtlKXJldHVybiExO0ooQWUpfXJldHVybiBBZVt0ZV0ud2Vha0RhdGF9LG9uRnJlZXplOmZ1bmN0aW9uKEFlKXtyZXR1cm4g''@;'; put 'put ''VyYmTiYmYWUoQWUpJiYhVShBZSx0ZSkmJkooQWUpLEFlfX07RVt0ZV09ITB9LDcyNzooWGUsSmUsTCk9Pnt2YXIgdGUsSyxKLG1lPUwoODA4MDYpLEI9TCg3MDcwNSksRT1MKDY2MTMpLEVlPUwoNzE0OTYpLFU9TCgxNjAxNyksUT1MKDQ4ODExKSxqPUwoODEwNjkpLHJlPUwoMjcyMzApLGFl''@;'; put 'put ''PUwoMTk5MDkpLFk9Ik9iamVjdCBhbHJlYWR5IGluaXRpYWxpemVkIixXPUIuVHlwZUVycm9yO2lmKG1lfHxqLnN0YXRlKXt2YXIgY2U9ai5zdGF0ZXx8KGouc3RhdGU9bmV3KDAsQi5XZWFrTWFwKSksZGU9RShjZS5nZXQpLHZlPUUoY2UuaGFzKSxBZT1FKGNlLnNldCk7dGU9ZnVuY3Rpb24o''@;'; put 'put ''U2UsSWUpe2lmKHZlKGNlLFNlKSl0aHJvdyBuZXcgVyhZKTtyZXR1cm4gSWUuZmFjYWRlPVNlLEFlKGNlLFNlLEllKSxJZX0sSz1mdW5jdGlvbihTZSl7cmV0dXJuIGRlKGNlLFNlKXx8e319LEo9ZnVuY3Rpb24oU2Upe3JldHVybiB2ZShjZSxTZSl9fWVsc2V7dmFyIGtlPXJlKCJzdGF0ZSIp''@;'; put 'put ''O2FlW2tlXT0hMCx0ZT1mdW5jdGlvbihTZSxJZSl7aWYoUShTZSxrZSkpdGhyb3cgbmV3IFcoWSk7cmV0dXJuIEllLmZhY2FkZT1TZSxVKFNlLGtlLEllKSxJZX0sSz1mdW5jdGlvbihTZSl7cmV0dXJuIFEoU2Usa2UpP1NlW2tlXTp7fX0sSj1mdW5jdGlvbihTZSl7cmV0dXJuIFEoU2Usa2Up''@;'; put 'put ''fX1YZS5leHBvcnRzPXtzZXQ6dGUsZ2V0OkssaGFzOkosZW5mb3JjZTpmdW5jdGlvbihTZSl7cmV0dXJuIEooU2UpP0soU2UpOnRlKFNlLHt9KX0sZ2V0dGVyRm9yOmZ1bmN0aW9uKFNlKXtyZXR1cm4gZnVuY3Rpb24oSWUpe3ZhciBUZTtpZighRWUoSWUpfHwoVGU9SyhJZSkpLnR5cGUhPT1T''@;'; put 'put ''ZSl0aHJvdyBXKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrU2UrIiByZXF1aXJlZCIpO3JldHVybiBUZX19fX0sOTcxMDY6KFhlLEplLEwpPT57dmFyIG1lPUwoMjU0NiksQj1MKDk1MjU3KSxFPW1lKCJpdGVyYXRvciIpLEVlPUFycmF5LnByb3RvdHlwZTtYZS5leHBvcnRzPWZ1bmN0aW9u''@;'; put 'put ''KFUpe3JldHVybiB2b2lkIDAhPT1VJiYoQi5BcnJheT09PVV8fEVlW0VdPT09VSl9fSwyOTEwNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg5NDcyMyk7WGUuZXhwb3J0cz1BcnJheS5pc0FycmF5fHxmdW5jdGlvbihFKXtyZXR1cm4iQXJyYXkiPT1tZShFKX19LDEyMDE0OlhlPT57WGUuZXhwb3J0''@;'; put 'put ''cz1mdW5jdGlvbihKZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIEplfX0sNDk0NTM6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDIzNTIzKSxFPUwoMTIwMTQpLEVlPUwoNzk1MjApLFU9TCg0NjY5MyksUT1MKDU3MzcxKSxqPWZ1bmN0aW9uKCl7fSxyZT1bXSxhZT1VKCJSZWZs''@;'; put 'put ''ZWN0IiwiY29uc3RydWN0IiksWT0vXlxzKig/OmNsYXNzfGZ1bmN0aW9uKVxiLyxXPW1lKFkuZXhlYyksTj0hWS5leGVjKGopLHRlPWZ1bmN0aW9uKHNlKXtpZighRShzZSkpcmV0dXJuITE7dHJ5e3JldHVybiBhZShqLHJlLHNlKSwhMH1jYXRjaChvZSl7cmV0dXJuITF9fSxLPWZ1bmN0aW9u''@;'; put 'put ''KHNlKXtpZighRShzZSkpcmV0dXJuITE7c3dpdGNoKEVlKHNlKSl7Y2FzZSJBc3luY0Z1bmN0aW9uIjpjYXNlIkdlbmVyYXRvckZ1bmN0aW9uIjpjYXNlIkFzeW5jR2VuZXJhdG9yRnVuY3Rpb24iOnJldHVybiExfXRyeXtyZXR1cm4gTnx8ISFXKFksUShzZSkpfWNhdGNoKG9lKXtyZXR1cm4h''@;'; put 'put ''MH19O0suc2hhbT0hMCxYZS5leHBvcnRzPSFhZXx8QihmdW5jdGlvbigpe3ZhciBKO3JldHVybiB0ZSh0ZS5jYWxsKXx8IXRlKE9iamVjdCl8fCF0ZShmdW5jdGlvbigpe0o9ITB9KXx8Sn0pP0s6dGV9LDE0MTI1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ4ODExKTtYZS5leHBvcnRzPWZ1bmN0''@;'; put 'put ''aW9uKEIpe3JldHVybiB2b2lkIDAhPT1CJiYobWUoQiwidmFsdWUiKXx8bWUoQiwid3JpdGFibGUiKSl9fSw2NzUwNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksQj1MKDEyMDE0KSxFPS8jfFwucHJvdG90eXBlXC4vLEVlPWZ1bmN0aW9uKGFlLFkpe3ZhciBXPVFbVShhZSldO3JldHVy''@;'; put 'put ''biBXPT1yZXx8VyE9aiYmKEIoWSk/bWUoWSk6ISFZKX0sVT1FZS5ub3JtYWxpemU9ZnVuY3Rpb24oYWUpe3JldHVybiBTdHJpbmcoYWUpLnJlcGxhY2UoRSwiLiIpLnRvTG93ZXJDYXNlKCl9LFE9RWUuZGF0YT17fSxqPUVlLk5BVElWRT0iTiIscmU9RWUuUE9MWUZJTEw9IlAiO1hlLmV4cG9y''@;'; put 'put ''dHM9RWV9LDMwNDI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzE0OTYpLEI9TWF0aC5mbG9vcjtYZS5leHBvcnRzPU51bWJlci5pc0ludGVnZXJ8fGZ1bmN0aW9uKEVlKXtyZXR1cm4hbWUoRWUpJiZpc0Zpbml0ZShFZSkmJkIoRWUpPT09RWV9fSw3MTQ5NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgx''@;'; put 'put ''MjAxNCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIEI/bnVsbCE9PUI6bWUoQil9fSwxMDAxNzpYZT0+e1hlLmV4cG9ydHM9ITF9LDQxODA0OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcxNDk2KSxCPUwoOTQ3MjMpLEVlPUwoMjU0NikoIm1hdGNoIik7WGUu''@;'; put 'put ''ZXhwb3J0cz1mdW5jdGlvbihVKXt2YXIgUTtyZXR1cm4gbWUoVSkmJih2b2lkIDAhPT0oUT1VW0VlXSk/ISFROiJSZWdFeHAiPT1CKFUpKX19LDY5NzU6KFhlLEplLEwpPT57dmFyIG1lPUwoNDY2OTMpLEI9TCgxMjAxNCksRT1MKDM3NDc0KSxFZT1MKDIzOTYxKSxVPU9iamVjdDtYZS5leHBv''@;'; put 'put ''cnRzPUVlP2Z1bmN0aW9uKFEpe3JldHVybiJzeW1ib2wiPT10eXBlb2YgUX06ZnVuY3Rpb24oUSl7dmFyIGo9bWUoIlN5bWJvbCIpO3JldHVybiBCKGopJiZFKGoucHJvdG90eXBlLFUoUSkpfX0sMjY1NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoODU0OSksQj1MKDM1NjIpLEU9TCg1ODY0Nyks''@;'; put 'put ''RWU9TCg5NDY3NiksVT1MKDk3MTA2KSxRPUwoNTQ0NTApLGo9TCgzNzQ3NCkscmU9TCgxMjk4OSksYWU9TCg2NjI4OCksWT1MKDgwMzA3KSxXPVR5cGVFcnJvcixOPWZ1bmN0aW9uKEssSil7dGhpcy5zdG9wcGVkPUssdGhpcy5yZXN1bHQ9Sn0sdGU9Ti5wcm90b3R5cGU7WGUuZXhwb3J0cz1m''@;'; put 'put ''dW5jdGlvbihLLEosc2Upe3ZhciBTZSxJZSxUZSxNZSxoZSxPLHosY2U9ISghc2V8fCFzZS5BU19FTlRSSUVTKSxkZT0hKCFzZXx8IXNlLklTX1JFQ09SRCksdmU9ISghc2V8fCFzZS5JU19JVEVSQVRPUiksQWU9ISghc2V8fCFzZS5JTlRFUlJVUFRFRCksa2U9bWUoSixzZSYmc2UudGhhdCks''@;'; put 'put ''ZWU9ZnVuY3Rpb24oeCl7cmV0dXJuIFNlJiZZKFNlLCJub3JtYWwiLHgpLG5ldyBOKCEwLHgpfSxuZT1mdW5jdGlvbih4KXtyZXR1cm4gY2U/KEUoeCksQWU/a2UoeFswXSx4WzFdLGVlKTprZSh4WzBdLHhbMV0pKTpBZT9rZSh4LGVlKTprZSh4KX07aWYoZGUpU2U9Sy5pdGVyYXRvcjtlbHNl''@;'; put 'put ''IGlmKHZlKVNlPUs7ZWxzZXtpZighKEllPWFlKEspKSl0aHJvdyBXKEVlKEspKyIgaXMgbm90IGl0ZXJhYmxlIik7aWYoVShJZSkpe2ZvcihUZT0wLE1lPVEoSyk7TWU+VGU7VGUrKylpZigoaGU9bmUoS1tUZV0pKSYmaih0ZSxoZSkpcmV0dXJuIGhlO3JldHVybiBuZXcgTighMSl9U2U9cmUo''@;'; put 'put ''SyxJZSl9Zm9yKE89ZGU/Sy5uZXh0OlNlLm5leHQ7ISh6PUIoTyxTZSkpLmRvbmU7KXt0cnl7aGU9bmUoei52YWx1ZSl9Y2F0Y2goeCl7WShTZSwidGhyb3ciLHgpfWlmKCJvYmplY3QiPT10eXBlb2YgaGUmJmhlJiZqKHRlLGhlKSlyZXR1cm4gaGV9cmV0dXJuIG5ldyBOKCExKX19LDgwMzA3''@;'; put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDM1NjIpLEI9TCg1ODY0NyksRT1MKDIwOTQ4KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEVlLFUsUSl7dmFyIGoscmU7QihFZSk7dHJ5e2lmKCEoaj1FKEVlLCJyZXR1cm4iKSkpe2lmKCJ0aHJvdyI9PT1VKXRocm93IFE7cmV0dXJuIFF9aj1tZShqLEVlKX1j''@;'; put 'put ''YXRjaChhZSl7cmU9ITAsaj1hZX1pZigidGhyb3ciPT09VSl0aHJvdyBRO2lmKHJlKXRocm93IGo7cmV0dXJuIEIoaiksUX19LDE4NTQ2OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgWSxXLE4sbWU9TCgyMzUyMyksQj1MKDEyMDE0KSxFPUwoNzQ0MTApLEVlPUwoODI3MzMpLFU9TCgy''@;'; put 'put ''NTY2NiksUT1MKDI1NDYpLGo9TCgxMDAxNykscmU9USgiaXRlcmF0b3IiKSxhZT0hMTtbXS5rZXlzJiYoIm5leHQiaW4oTj1bXS5rZXlzKCkpPyhXPUVlKEVlKE4pKSkhPT1PYmplY3QucHJvdG90eXBlJiYoWT1XKTphZT0hMCksbnVsbD09WXx8bWUoZnVuY3Rpb24oKXt2YXIgSz17fTtyZXR1''@;'; put 'put ''cm4gWVtyZV0uY2FsbChLKSE9PUt9KT9ZPXt9OmomJihZPUUoWSkpLEIoWVtyZV0pfHxVKFkscmUsZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLFhlLmV4cG9ydHM9e0l0ZXJhdG9yUHJvdG90eXBlOlksQlVHR1lfU0FGQVJJX0lURVJBVE9SUzphZX19LDk1MjU3OlhlPT57WGUuZXhwb3J0cz17''@;'; put 'put ''fX0sNTQ0NTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNjUzMTYpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuIG1lKEIubGVuZ3RoKX19LDM0NDY4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKSxCPUwoMTIwMTQpLEU9TCg0ODgxMSksRWU9TCg4NTYyNCksVT1MKDEzODY5KS5DT05G''@;'; put 'put ''SUdVUkFCTEUsUT1MKDU3MzcxKSxqPUwoNzI3KSxyZT1qLmVuZm9yY2UsYWU9ai5nZXQsWT1PYmplY3QuZGVmaW5lUHJvcGVydHksVz1FZSYmIW1lKGZ1bmN0aW9uKCl7cmV0dXJuIDghPT1ZKGZ1bmN0aW9uKCl7fSwibGVuZ3RoIix7dmFsdWU6OH0pLmxlbmd0aH0pLE49U3RyaW5nKFN0cmlu''@;'; put 'put ''Zykuc3BsaXQoIlN0cmluZyIpLHRlPVhlLmV4cG9ydHM9ZnVuY3Rpb24oSyxKLHNlKXsiU3ltYm9sKCI9PT1TdHJpbmcoSikuc2xpY2UoMCw3KSYmKEo9IlsiK1N0cmluZyhKKS5yZXBsYWNlKC9eU3ltYm9sXCgoW14pXSopXCkvLCIkMSIpKyJdIiksc2UmJnNlLmdldHRlciYmKEo9ImdldCAi''@;'; put 'put ''K0opLHNlJiZzZS5zZXR0ZXImJihKPSJzZXQgIitKKSwoIUUoSywibmFtZSIpfHxVJiZLLm5hbWUhPT1KKSYmKEVlP1koSywibmFtZSIse3ZhbHVlOkosY29uZmlndXJhYmxlOiEwfSk6Sy5uYW1lPUopLFcmJnNlJiZFKHNlLCJhcml0eSIpJiZLLmxlbmd0aCE9PXNlLmFyaXR5JiZZKEssImxl''@;'; put 'put ''bmd0aCIse3ZhbHVlOnNlLmFyaXR5fSk7dHJ5e3NlJiZFKHNlLCJjb25zdHJ1Y3RvciIpJiZzZS5jb25zdHJ1Y3Rvcj9FZSYmWShLLCJwcm90b3R5cGUiLHt3cml0YWJsZTohMX0pOksucHJvdG90eXBlJiYoSy5wcm90b3R5cGU9dm9pZCAwKX1jYXRjaChjZSl7fXZhciBvZT1yZShLKTtyZXR1''@;'; put 'put ''cm4gRShvZSwic291cmNlIil8fChvZS5zb3VyY2U9Ti5qb2luKCJzdHJpbmciPT10eXBlb2YgSj9KOiIiKSksS307RnVuY3Rpb24ucHJvdG90eXBlLnRvU3RyaW5nPXRlKGZ1bmN0aW9uKCl7cmV0dXJuIEIodGhpcykmJmFlKHRoaXMpLnNvdXJjZXx8USh0aGlzKX0sInRvU3RyaW5nIil9LDg0''@;'; put 'put ''NzQ0OlhlPT57dmFyIEplPU1hdGguY2VpbCxMPU1hdGguZmxvb3I7WGUuZXhwb3J0cz1NYXRoLnRydW5jfHxmdW5jdGlvbihCKXt2YXIgRT0rQjtyZXR1cm4oRT4wP0w6SmUpKEUpfX0sMzk0NjY6KFhlLEplLEwpPT57dmFyIG1lPUwoODI3NzApO1hlLmV4cG9ydHM9bWUmJiEhU3ltYm9sLmZv''@;'; put 'put ''ciYmISFTeW1ib2wua2V5Rm9yfSw4Mjc3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyOTM4NSksQj1MKDIzNTIzKTtYZS5leHBvcnRzPSEhT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyYmIUIoZnVuY3Rpb24oKXt2YXIgRT1TeW1ib2woKTtyZXR1cm4hU3RyaW5nKEUpfHwhKE9iamVjdChF''@;'; put 'put ''KWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZtZSYmbWU8NDF9KX0sODA4MDY6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCgxMjAxNCksRT1MKDU3MzcxKSxFZT1tZS5XZWFrTWFwO1hlLmV4cG9ydHM9QihFZSkmJi9uYXRpdmUgY29kZS8udGVzdChFKEVlKSl9LDQx''@;'; put 'put ''OTYxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQxODA0KSxCPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe2lmKG1lKEUpKXRocm93IEIoIlRoZSBtZXRob2QgZG9lc24ndCBhY2NlcHQgcmVndWxhciBleHByZXNzaW9ucyIpO3JldHVybiBFfX0sNDc5NTk6KFhlLEplLEwpPT57InVz''@;'; put 'put ''ZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjI0KSxCPUwoNjYxMyksRT1MKDM1NjIpLEVlPUwoMjM1MjMpLFU9TCgxNDU0NSksUT1MKDU1MzQpLGo9TCg0NjkwMSkscmU9TCg2ODA3MSksYWU9TCg1NjYwNyksWT1PYmplY3QuYXNzaWduLFc9T2JqZWN0LmRlZmluZVByb3BlcnR5LE49QihbXS5jb25j''@;'; put 'put ''YXQpO1hlLmV4cG9ydHM9IVl8fEVlKGZ1bmN0aW9uKCl7aWYobWUmJjEhPT1ZKHtiOjF9LFkoVyh7fSwiYSIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7Vyh0aGlzLCJiIix7dmFsdWU6MyxlbnVtZXJhYmxlOiExfSl9fSkse2I6Mn0pKS5iKXJldHVybiEwO3ZhciB0ZT17fSxLPXt9''@;'; put 'put ''LEo9U3ltYm9sKCksc2U9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gdGVbSl09NyxzZS5zcGxpdCgiIikuZm9yRWFjaChmdW5jdGlvbihvZSl7S1tvZV09b2V9KSw3IT1ZKHt9LHRlKVtKXXx8VShZKHt9LEspKS5qb2luKCIiKSE9c2V9KT9mdW5jdGlvbihLLEope2Zvcih2YXIgc2U9''@;'; put 'put ''cmUoSyksb2U9YXJndW1lbnRzLmxlbmd0aCxjZT0xLGRlPVEuZix2ZT1qLmY7b2U+Y2U7KWZvcih2YXIgVGUsQWU9YWUoYXJndW1lbnRzW2NlKytdKSxrZT1kZT9OKFUoQWUpLGRlKEFlKSk6VShBZSksU2U9a2UubGVuZ3RoLEllPTA7U2U+SWU7KVRlPWtlW0llKytdLCghbWV8fEUodmUsQWUs''@;'; put 'put ''VGUpKSYmKHNlW1RlXT1BZVtUZV0pO3JldHVybiBzZX06WX0sNzQ0MTA6KFhlLEplLEwpPT57dmFyIG9lLG1lPUwoNTg2NDcpLEI9TCg3NzMyOCksRT1MKDQ3ODMzKSxFZT1MKDE5OTA5KSxVPUwoNTk0MDYpLFE9TCg0NjMxMyksaj1MKDI3MjMwKSxZPSJwcm90b3R5cGUiLFc9InNjcmlwdCIs''@;'; put 'put ''Tj1qKCJJRV9QUk9UTyIpLHRlPWZ1bmN0aW9uKCl7fSxLPWZ1bmN0aW9uKGRlKXtyZXR1cm4iPCIrVysiPiIrZGUrIjwvIitXKyI+In0sSj1mdW5jdGlvbihkZSl7ZGUud3JpdGUoSygiIikpLGRlLmNsb3NlKCk7dmFyIHZlPWRlLnBhcmVudFdpbmRvdy5PYmplY3Q7cmV0dXJuIGRlPW51bGws''@;'; put 'put ''dmV9LGNlPWZ1bmN0aW9uKCl7dHJ5e29lPW5ldyBBY3RpdmVYT2JqZWN0KCJodG1sZmlsZSIpfWNhdGNoKHZlKXt9Y2U9InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudD9kb2N1bWVudC5kb21haW4mJm9lP0oob2UpOmZ1bmN0aW9uKCl7dmFyIEFlLGRlPVEoImlmcmFtZSIpO3JldHVybiBk''@;'; put 'put ''ZS5zdHlsZS5kaXNwbGF5PSJub25lIixVLmFwcGVuZENoaWxkKGRlKSxkZS5zcmM9U3RyaW5nKCJqYXZhc2NyaXB0OiIpLChBZT1kZS5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksQWUud3JpdGUoSygiZG9jdW1lbnQuRj1PYmplY3QiKSksQWUuY2xvc2UoKSxBZS5GfSgpOkoob2Up''@;'; put 'put ''O2Zvcih2YXIgZGU9RS5sZW5ndGg7ZGUtLTspZGVsZXRlIGNlW1ldW0VbZGVdXTtyZXR1cm4gY2UoKX07RWVbTl09ITAsWGUuZXhwb3J0cz1PYmplY3QuY3JlYXRlfHxmdW5jdGlvbih2ZSxBZSl7dmFyIGtlO3JldHVybiBudWxsIT09dmU/KHRlW1ldPW1lKHZlKSxrZT1uZXcgdGUsdGVbWV09''@;'; put 'put ''bnVsbCxrZVtOXT12ZSk6a2U9Y2UoKSx2b2lkIDA9PT1BZT9rZTpCLmYoa2UsQWUpfX0sNzczMjg6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCgyMDExOCksRT1MKDUxMTgzKSxFZT1MKDU4NjQ3KSxVPUwoNTAzMjcpLFE9TCgxNDU0NSk7SmUuZj1tZSYmIUI/T2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnRpZXM6ZnVuY3Rpb24ocmUsYWUpe0VlKHJlKTtmb3IodmFyIEssWT1VKGFlKSxXPVEoYWUpLE49Vy5sZW5ndGgsdGU9MDtOPnRlOylFLmYocmUsSz1XW3RlKytdLFlbS10pO3JldHVybiByZX19LDUxMTgzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjI0KSxCPUwoOTQ2NzUpLEU9''@;'; put 'put ''TCgyMDExOCksRWU9TCg1ODY0NyksVT1MKDg0MDk0KSxRPVR5cGVFcnJvcixqPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxyZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLGFlPSJlbnVtZXJhYmxlIixZPSJjb25maWd1cmFibGUiLFc9IndyaXRhYmxlIjtKZS5mPW1lP0U/ZnVuY3Rp''@;'; put 'put ''b24odGUsSyxKKXtpZihFZSh0ZSksSz1VKEspLEVlKEopLCJmdW5jdGlvbiI9PXR5cGVvZiB0ZSYmInByb3RvdHlwZSI9PT1LJiYidmFsdWUiaW4gSiYmVyBpbiBKJiYhSltXXSl7dmFyIHNlPXJlKHRlLEspO3NlJiZzZVtXXSYmKHRlW0tdPUoudmFsdWUsSj17Y29uZmlndXJhYmxlOlkgaW4g''@;'; put 'put ''Sj9KW1ldOnNlW1ldLGVudW1lcmFibGU6YWUgaW4gSj9KW2FlXTpzZVthZV0sd3JpdGFibGU6ITF9KX1yZXR1cm4gaih0ZSxLLEopfTpqOmZ1bmN0aW9uKHRlLEssSil7aWYoRWUodGUpLEs9VShLKSxFZShKKSxCKXRyeXtyZXR1cm4gaih0ZSxLLEopfWNhdGNoKHNlKXt9aWYoImdldCJpbiBK''@;'; put 'put ''fHwic2V0ImluIEopdGhyb3cgUSgiQWNjZXNzb3JzIG5vdCBzdXBwb3J0ZWQiKTtyZXR1cm4idmFsdWUiaW4gSiYmKHRlW0tdPUoudmFsdWUpLHRlfX0sNDc5ODc6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCgzNTYyKSxFPUwoNDY5MDEpLEVlPUwoNzM5MjApLFU9TCg1MDMyNyks''@;'; put 'put ''UT1MKDg0MDk0KSxqPUwoNDg4MTEpLHJlPUwoOTQ2NzUpLGFlPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7SmUuZj1tZT9hZTpmdW5jdGlvbihXLE4pe2lmKFc9VShXKSxOPVEoTikscmUpdHJ5e3JldHVybiBhZShXLE4pfWNhdGNoKHRlKXt9aWYoaihXLE4pKXJldHVybiBFZSgh''@;'; put 'put ''QihFLmYsVyxOKSxXW05dKX19LDM1ODA4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDk0NzIzKSxCPUwoNTAzMjcpLEU9TCg3NTQzMSkuZixFZT1MKDEwODcyKSxVPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzP09iamVjdC5nZXRPd25Q''@;'; put 'put ''cm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107WGUuZXhwb3J0cy5mPWZ1bmN0aW9uKHJlKXtyZXR1cm4gVSYmIldpbmRvdyI9PW1lKHJlKT9mdW5jdGlvbihqKXt0cnl7cmV0dXJuIEUoail9Y2F0Y2gocmUpe3JldHVybiBFZShVKX19KHJlKTpFKEIocmUpKX19LDc1NDMxOihYZSxKZSxMKT0+e3Zh''@;'; put 'put ''ciBtZT1MKDI0OTY3KSxFPUwoNDc4MzMpLmNvbmNhdCgibGVuZ3RoIiwicHJvdG90eXBlIik7SmUuZj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lc3x8ZnVuY3Rpb24oVSl7cmV0dXJuIG1lKFUsRSl9fSw1NTM0OihYZSxKZSk9PntKZS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHN9''@;'; put 'put ''LDgyNzMzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDQ4ODExKSxCPUwoMTIwMTQpLEU9TCg2ODA3MSksRWU9TCgyNzIzMCksVT1MKDQ2MDg2KSxRPUVlKCJJRV9QUk9UTyIpLGo9T2JqZWN0LHJlPWoucHJvdG90eXBlO1hlLmV4cG9ydHM9VT9qLmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKGFlKXt2''@;'; put 'put ''YXIgWT1FKGFlKTtpZihtZShZLFEpKXJldHVybiBZW1FdO3ZhciBXPVkuY29uc3RydWN0b3I7cmV0dXJuIEIoVykmJlkgaW5zdGFuY2VvZiBXP1cucHJvdG90eXBlOlkgaW5zdGFuY2VvZiBqP3JlOm51bGx9fSw1NTIxODooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUyMyksQj1MKDcxNDk2KSxF''@;'; put 'put ''PUwoOTQ3MjMpLEVlPUwoNjI3ODkpLFU9T2JqZWN0LmlzRXh0ZW5zaWJsZSxRPW1lKGZ1bmN0aW9uKCl7VSgxKX0pO1hlLmV4cG9ydHM9UXx8RWU/ZnVuY3Rpb24ocmUpe3JldHVybiEoIUIocmUpfHxFZSYmIkFycmF5QnVmZmVyIj09RShyZSkpJiYoIVV8fFUocmUpKX06VX0sMzc0NzQ6KFhl''@;'; put 'put ''LEplLEwpPT57dmFyIG1lPUwoNjYxMyk7WGUuZXhwb3J0cz1tZSh7fS5pc1Byb3RvdHlwZU9mKX0sMjQ5Njc6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDQ4ODExKSxFPUwoNTAzMjcpLEVlPUwoMzYzMDUpLmluZGV4T2YsVT1MKDE5OTA5KSxRPW1lKFtdLnB1c2gpO1hlLmV4cG9y''@;'; put 'put ''dHM9ZnVuY3Rpb24oaixyZSl7dmFyIE4sYWU9RShqKSxZPTAsVz1bXTtmb3IoTiBpbiBhZSkhQihVLE4pJiZCKGFlLE4pJiZRKFcsTik7Zm9yKDtyZS5sZW5ndGg+WTspQihhZSxOPXJlW1krK10pJiYofkVlKFcsTil8fFEoVyxOKSk7cmV0dXJuIFd9fSwxNDU0NTooWGUsSmUsTCk9Pnt2YXIg''@;'; put 'put ''bWU9TCgyNDk2NyksQj1MKDQ3ODMzKTtYZS5leHBvcnRzPU9iamVjdC5rZXlzfHxmdW5jdGlvbihFZSl7cmV0dXJuIG1lKEVlLEIpfX0sNDY5MDE6KFhlLEplKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgTD17fS5wcm9wZXJ0eUlzRW51bWVyYWJsZSxtZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj''@;'; put 'put ''cmlwdG9yLEI9bWUmJiFMLmNhbGwoezE6Mn0sMSk7SmUuZj1CP2Z1bmN0aW9uKEVlKXt2YXIgVT1tZSh0aGlzLEVlKTtyZXR1cm4hIVUmJlUuZW51bWVyYWJsZX06TH0sMTk1ODc6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDU4NjQ3KSxFPUwoNzAwOCk7WGUuZXhwb3J0cz1PYmpl''@;'; put 'put ''Y3Quc2V0UHJvdG90eXBlT2Z8fCgiX19wcm90b19fImlue30/ZnVuY3Rpb24oKXt2YXIgUSxFZT0hMSxVPXt9O3RyeXsoUT1tZShPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCkpKFUsW10pLEVlPVUgaW5zdGFuY2VvZiBB''@;'; put 'put ''cnJheX1jYXRjaChqKXt9cmV0dXJuIGZ1bmN0aW9uKHJlLGFlKXtyZXR1cm4gQihyZSksRShhZSksRWU/UShyZSxhZSk6cmUuX19wcm90b19fPWFlLHJlfX0oKTp2b2lkIDApfSw0NDU4MjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTYyNCksQj1MKDY2MTMpLEU9TCgxNDU0NSksRWU9TCg1MDMy''@;'; put 'put ''NyksUT1CKEwoNDY5MDEpLmYpLGo9QihbXS5wdXNoKSxyZT1mdW5jdGlvbihhZSl7cmV0dXJuIGZ1bmN0aW9uKFkpe2Zvcih2YXIgc2UsVz1FZShZKSxOPUUoVyksdGU9Ti5sZW5ndGgsSz0wLEo9W107dGU+Szspc2U9TltLKytdLCghbWV8fFEoVyxzZSkpJiZqKEosYWU/W3NlLFdbc2VdXTpX''@;'; put 'put ''W3NlXSk7cmV0dXJuIEp9fTtYZS5leHBvcnRzPXtlbnRyaWVzOnJlKCEwKSx2YWx1ZXM6cmUoITEpfX0sNzcwNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMjc0OTApLEI9TCg3OTUyMCk7WGUuZXhwb3J0cz1tZT97fS50b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiJbb2Jq''@;'; put 'put ''ZWN0ICIrQih0aGlzKSsiXSJ9fSw2MzQxNTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTYyKSxCPUwoMTIwMTQpLEU9TCg3MTQ5NiksRWU9VHlwZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oVSxRKXt2YXIgaixyZTtpZigic3RyaW5nIj09PVEmJkIoaj1VLnRvU3RyaW5nKSYmIUUocmU9bWUo''@;'; put 'put ''aixVKSl8fEIoaj1VLnZhbHVlT2YpJiYhRShyZT1tZShqLFUpKXx8InN0cmluZyIhPT1RJiZCKGo9VS50b1N0cmluZykmJiFFKHJlPW1lKGosVSkpKXJldHVybiByZTt0aHJvdyBFZSgiQ2FuJ3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9fSwyMTE5OTooWGUsSmUsTCk9''@;'; put 'put ''Pnt2YXIgbWU9TCg0NjY5MyksQj1MKDY2MTMpLEU9TCg3NTQzMSksRWU9TCg1NTM0KSxVPUwoNTg2NDcpLFE9QihbXS5jb25jYXQpO1hlLmV4cG9ydHM9bWUoIlJlZmxlY3QiLCJvd25LZXlzIil8fGZ1bmN0aW9uKHJlKXt2YXIgYWU9RS5mKFUocmUpKSxZPUVlLmY7cmV0dXJuIFk/UShhZSxZ''@;'; put 'put ''KHJlKSk6YWV9fSw5MjczMzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSk7WGUuZXhwb3J0cz1tZX0sNzg4MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg1MTE4MykuZjtYZS5leHBvcnRzPWZ1bmN0aW9uKEIsRSxFZSl7RWUgaW4gQnx8bWUoQixFZSx7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiBFW0VlXX0sc2V0OmZ1bmN0aW9uKFUpe0VbRWVdPVV9fSl9fSw1ODEyNjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTYyKSxCPUwoNTg2NDcpLEU9TCgxMjAxNCksRWU9TCg5NDcyMyksVT1MKDIyMjM0KSxRPVR5cGVFcnJvcjtYZS5leHBvcnRzPWZ1bmN0aW9uKGoscmUp''@;'; put 'put ''e3ZhciBhZT1qLmV4ZWM7aWYoRShhZSkpe3ZhciBZPW1lKGFlLGoscmUpO3JldHVybiBudWxsIT09WSYmQihZKSxZfWlmKCJSZWdFeHAiPT09RWUoaikpcmV0dXJuIG1lKFUsaixyZSk7dGhyb3cgUSgiUmVnRXhwI2V4ZWMgY2FsbGVkIG9uIGluY29tcGF0aWJsZSByZWNlaXZlciIpfX0sMjIy''@;'; put 'put ''MzQ6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBrZSxTZSxtZT1MKDM1NjIpLEI9TCg2NjEzKSxFPUwoOTIxKSxFZT1MKDQ4NzI1KSxVPUwoOTcxODkpLFE9TCg2ODgzNSksaj1MKDc0NDEwKSxyZT1MKDcyNykuZ2V0LGFlPUwoNDMxODYpLFk9TCg1MTk0OSksVz1RKCJuYXRpdmUtc3Ry''@;'; put 'put ''aW5nLXJlcGxhY2UiLFN0cmluZy5wcm90b3R5cGUucmVwbGFjZSksTj1SZWdFeHAucHJvdG90eXBlLmV4ZWMsdGU9TixLPUIoIiIuY2hhckF0KSxKPUIoIiIuaW5kZXhPZiksc2U9QigiIi5yZXBsYWNlKSxvZT1CKCIiLnNsaWNlKSxjZT0oU2U9L2IqL2csbWUoTixrZT0vYS8sImEiKSxtZShO''@;'; put 'put ''LFNlLCJhIiksMCE9PWtlLmxhc3RJbmRleHx8MCE9PVNlLmxhc3RJbmRleCksZGU9VS5CUk9LRU5fQ0FSRVQsdmU9dm9pZCAwIT09LygpPz8vLmV4ZWMoIiIpWzFdOyhjZXx8dmV8fGRlfHxhZXx8WSkmJih0ZT1mdW5jdGlvbihTZSl7dmFyIE8seixlZSxuZSx4LFAsVixJZT10aGlzLFRlPXJl''@;'; put 'put ''KEllKSxNZT1FKFNlKSxoZT1UZS5yYXc7aWYoaGUpcmV0dXJuIGhlLmxhc3RJbmRleD1JZS5sYXN0SW5kZXgsTz1tZSh0ZSxoZSxNZSksSWUubGFzdEluZGV4PWhlLmxhc3RJbmRleCxPO3ZhciBUPVRlLmdyb3VwcyxTPWRlJiZJZS5zdGlja3ksRj1tZShFZSxJZSkseWU9SWUuc291cmNlLENl''@;'; put 'put ''PTAsRGU9TWU7aWYoUyYmKEY9c2UoRiwieSIsIiIpLC0xPT09SihGLCJnIikmJihGKz0iZyIpLERlPW9lKE1lLEllLmxhc3RJbmRleCksSWUubGFzdEluZGV4PjAmJighSWUubXVsdGlsaW5lfHxJZS5tdWx0aWxpbmUmJiJcbiIhPT1LKE1lLEllLmxhc3RJbmRleC0xKSkmJih5ZT0iKD86ICIr''@;'; put 'put ''eWUrIikiLERlPSIgIitEZSxDZSsrKSx6PW5ldyBSZWdFeHAoIl4oPzoiK3llKyIpIixGKSksdmUmJih6PW5ldyBSZWdFeHAoIl4iK3llKyIkKD8hXFxzKSIsRikpLGNlJiYoZWU9SWUubGFzdEluZGV4KSxuZT1tZShOLFM/ejpJZSxEZSksUz9uZT8obmUuaW5wdXQ9b2UobmUuaW5wdXQsQ2Up''@;'; put 'put ''LG5lWzBdPW9lKG5lWzBdLENlKSxuZS5pbmRleD1JZS5sYXN0SW5kZXgsSWUubGFzdEluZGV4Kz1uZVswXS5sZW5ndGgpOkllLmxhc3RJbmRleD0wOmNlJiZuZSYmKEllLmxhc3RJbmRleD1JZS5nbG9iYWw/bmUuaW5kZXgrbmVbMF0ubGVuZ3RoOmVlKSx2ZSYmbmUmJm5lLmxlbmd0aD4xJiZt''@;'; put 'put ''ZShXLG5lWzBdLHosZnVuY3Rpb24oKXtmb3IoeD0xO3g8YXJndW1lbnRzLmxlbmd0aC0yO3grKyl2b2lkIDA9PT1hcmd1bWVudHNbeF0mJihuZVt4XT12b2lkIDApfSksbmUmJlQpZm9yKG5lLmdyb3Vwcz1QPWoobnVsbCkseD0wO3g8VC5sZW5ndGg7eCsrKVBbKFY9VFt4XSlbMF1dPW5lW1Zb''@;'; put 'put ''MV1dO3JldHVybiBuZX0pLFhlLmV4cG9ydHM9dGV9LDQ4NzI1OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg1ODY0Nyk7WGUuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciBCPW1lKHRoaXMpLEU9IiI7cmV0dXJuIEIuaGFzSW5kaWNlcyYmKEUrPSJkIiksQi5nbG9iYWwmJihFKz0i''@;'; put 'put ''ZyIpLEIuaWdub3JlQ2FzZSYmKEUrPSJpIiksQi5tdWx0aWxpbmUmJihFKz0ibSIpLEIuZG90QWxsJiYoRSs9InMiKSxCLnVuaWNvZGUmJihFKz0idSIpLEIudW5pY29kZVNldHMmJihFKz0idiIpLEIuc3RpY2t5JiYoRSs9InkiKSxFfX0sODE2MjA6KFhlLEplLEwpPT57dmFyIG1lPUwoMzU2''@;'; put 'put ''MiksQj1MKDQ4ODExKSxFPUwoMzc0NzQpLEVlPUwoNDg3MjUpLFU9UmVnRXhwLnByb3RvdHlwZTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3ZhciBqPVEuZmxhZ3M7cmV0dXJuIHZvaWQgMCE9PWp8fCJmbGFncyJpbiBVfHxCKFEsImZsYWdzIil8fCFFKFUsUSk/ajptZShFZSxRKX19LDk3MTg5''@;'; put 'put ''OihYZSxKZSxMKT0+e3ZhciBtZT1MKDIzNTIzKSxFPUwoNzA3MDUpLlJlZ0V4cCxFZT1tZShmdW5jdGlvbigpe3ZhciBqPUUoImEiLCJ5Iik7cmV0dXJuIGoubGFzdEluZGV4PTIsbnVsbCE9ai5leGVjKCJhYmNkIil9KSxVPUVlfHxtZShmdW5jdGlvbigpe3JldHVybiFFKCJhIiwieSIpLnN0''@;'; put 'put ''aWNreX0pLFE9RWV8fG1lKGZ1bmN0aW9uKCl7dmFyIGo9RSgiXnIiLCJneSIpO3JldHVybiBqLmxhc3RJbmRleD0yLG51bGwhPWouZXhlYygic3RyIil9KTtYZS5leHBvcnRzPXtCUk9LRU5fQ0FSRVQ6USxNSVNTRURfU1RJQ0tZOlUsVU5TVVBQT1JURURfWTpFZX19LDQzMTg2OihYZSxKZSxM''@;'; put 'put ''KT0+e3ZhciBtZT1MKDIzNTIzKSxFPUwoNzA3MDUpLlJlZ0V4cDtYZS5leHBvcnRzPW1lKGZ1bmN0aW9uKCl7dmFyIEVlPUUoIi4iLCJzIik7cmV0dXJuIShFZS5kb3RBbGwmJkVlLmV4ZWMoIlxuIikmJiJzIj09PUVlLmZsYWdzKX0pfSw1MTk0OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyMzUy''@;'; put 'put ''MyksRT1MKDcwNzA1KS5SZWdFeHA7WGUuZXhwb3J0cz1tZShmdW5jdGlvbigpe3ZhciBFZT1FKCIoPzxhPmIpIiwiZyIpO3JldHVybiJiIiE9PUVlLmV4ZWMoImIiKS5ncm91cHMuYXx8ImJjIiE9PSJiIi5yZXBsYWNlKEVlLCIkPGE+YyIpfSl9LDI0NTcyOlhlPT57dmFyIEplPVR5cGVFcnJv''@;'; put 'put ''cjtYZS5leHBvcnRzPWZ1bmN0aW9uKEwpe2lmKG51bGw9PUwpdGhyb3cgSmUoIkNhbid0IGNhbGwgbWV0aG9kIG9uICIrTCk7cmV0dXJuIEx9fSw1NTg4MTpYZT0+e1hlLmV4cG9ydHM9T2JqZWN0LmlzfHxmdW5jdGlvbihMLG1lKXtyZXR1cm4gTD09PW1lPzAhPT1MfHwxL0w9PTEvbWU6TCE9''@;'; put 'put ''TCYmbWUhPW1lfX0sOTU4OTU6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCgxMTMwNiksRT1MKDEyMDE0KSxFZT1MKDc3ODM5KSxVPUwoNDA5MzApLFE9TCg3OTU0NSksaj0vTVNJRSAuXC4vLnRlc3QoRWUpLHJlPW1lLkZ1bmN0aW9uLGFlPWZ1bmN0aW9uKFkpe3JldHVybiBqP2Z1''@;'; put 'put ''bmN0aW9uKFcsTil7dmFyIHRlPVEoYXJndW1lbnRzLmxlbmd0aCwxKT4yLEs9RShXKT9XOnJlKFcpLEo9dGU/VShhcmd1bWVudHMsMik6dm9pZCAwO3JldHVybiBZKHRlP2Z1bmN0aW9uKCl7QihLLHRoaXMsSil9OkssTil9Oll9O1hlLmV4cG9ydHM9e3NldFRpbWVvdXQ6YWUobWUuc2V0VGlt''@;'; put 'put ''ZW91dCksc2V0SW50ZXJ2YWw6YWUobWUuc2V0SW50ZXJ2YWwpfX0sNjgzMTU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDQ2NjkzKSxCPUwoNTExODMpLEU9TCgyNTQ2KSxFZT1MKDg1NjI0KSxVPUUoInNwZWNpZXMiKTtYZS5leHBvcnRzPWZ1bmN0aW9uKFEpe3ZhciBqPW1l''@;'; put 'put ''KFEpO0VlJiZqJiYhaltVXSYmKDAsQi5mKShqLFUse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319KX19LDU1OTY4OihYZSxKZSxMKT0+e3ZhciBtZT1MKDUxMTgzKS5mLEI9TCg0ODgxMSksRWU9TCgyNTQ2KSgidG9TdHJpbmdUYWciKTtYZS5leHBvcnRzPWZ1''@;'; put 'put ''bmN0aW9uKFUsUSxqKXtVJiYhaiYmKFU9VS5wcm90b3R5cGUpLFUmJiFCKFUsRWUpJiZtZShVLEVlLHtjb25maWd1cmFibGU6ITAsdmFsdWU6UX0pfX0sMjcyMzA6KFhlLEplLEwpPT57dmFyIG1lPUwoNjg4MzUpLEI9TCg1MjgxMCksRT1tZSgia2V5cyIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24o''@;'; put 'put ''RWUpe3JldHVybiBFW0VlXXx8KEVbRWVdPUIoRWUpKX19LDgxMDY5OihYZSxKZSxMKT0+e3ZhciBtZT1MKDcwNzA1KSxCPUwoNzM0NzApLEU9Il9fY29yZS1qc19zaGFyZWRfXyIsRWU9bWVbRV18fEIoRSx7fSk7WGUuZXhwb3J0cz1FZX0sNjg4MzU6KFhlLEplLEwpPT57dmFyIG1lPUwoMTAw''@;'; put 'put ''MTcpLEI9TCg4MTA2OSk7KFhlLmV4cG9ydHM9ZnVuY3Rpb24oRSxFZSl7cmV0dXJuIEJbRV18fChCW0VdPXZvaWQgMCE9PUVlP0VlOnt9KX0pKCJ2ZXJzaW9ucyIsW10pLnB1c2goe3ZlcnNpb246IjMuMjQuMSIsbW9kZTptZT8icHVyZSI6Imdsb2JhbCIsY29weXJpZ2h0OiJceGE5IDIwMTQt''@;'; put 'put ''MjAyMiBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yNC4xL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSl9LDkxMzooWGUsSmUsTCk9''@;'; put 'put ''Pnt2YXIgbWU9TCg1ODY0NyksQj1MKDU2NTgxKSxFZT1MKDI1NDYpKCJzcGVjaWVzIik7WGUuZXhwb3J0cz1mdW5jdGlvbihVLFEpe3ZhciByZSxqPW1lKFUpLmNvbnN0cnVjdG9yO3JldHVybiB2b2lkIDA9PT1qfHxudWxsPT0ocmU9bWUoailbRWVdKT9ROkIocmUpfX0sOTc4MTg6KFhlLEpl''@;'; put 'put ''LEwpPT57dmFyIG1lPUwoMjM1MjMpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oQil7cmV0dXJuIG1lKGZ1bmN0aW9uKCl7dmFyIEU9IiJbQl0oJyInKTtyZXR1cm4gRSE9PUUudG9Mb3dlckNhc2UoKXx8RS5zcGxpdCgnIicpLmxlbmd0aD4zfSl9fSw3NTA1ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2''@;'; put 'put ''NjEzKSxCPUwoNDA3MDIpLEU9TCg5MjEpLEVlPUwoMjQ1NzIpLFU9bWUoIiIuY2hhckF0KSxRPW1lKCIiLmNoYXJDb2RlQXQpLGo9bWUoIiIuc2xpY2UpLHJlPWZ1bmN0aW9uKGFlKXtyZXR1cm4gZnVuY3Rpb24oWSxXKXt2YXIgSixzZSxOPUUoRWUoWSkpLHRlPUIoVyksSz1OLmxlbmd0aDty''@;'; put 'put ''ZXR1cm4gdGU8MHx8dGU+PUs/YWU/IiI6dm9pZCAwOihKPVEoTix0ZSkpPDU1Mjk2fHxKPjU2MzE5fHx0ZSsxPT09S3x8KHNlPVEoTix0ZSsxKSk8NTYzMjB8fHNlPjU3MzQzP2FlP1UoTix0ZSk6SjphZT9qKE4sdGUsdGUrMik6c2UtNTYzMjArKEotNTUyOTY8PDEwKSs2NTUzNn19O1hlLmV4''@;'; put 'put ''cG9ydHM9e2NvZGVBdDpyZSghMSksY2hhckF0OnJlKCEwKX19LDcyMjEwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc3ODM5KTtYZS5leHBvcnRzPS9WZXJzaW9uXC8xMCg/OlwuXGQrKXsxLDJ9KD86IFtcdy4vXSspPyg/OiBNb2JpbGVcL1x3Kyk/IFNhZmFyaVwvLy50ZXN0KG1lKX0sMjEyODU6''@;'; put 'put ''KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDY1MzE2KSxFPUwoOTIxKSxFZT1MKDQ1OTYwKSxVPUwoMjQ1NzIpLFE9bWUoRWUpLGo9bWUoIiIuc2xpY2UpLHJlPU1hdGguY2VpbCxhZT1mdW5jdGlvbihZKXtyZXR1cm4gZnVuY3Rpb24oVyxOLHRlKXt2YXIgY2UsZGUsSz1FKFUoVykp''@;'; put 'put ''LEo9QihOKSxzZT1LLmxlbmd0aCxvZT12b2lkIDA9PT10ZT8iICI6RSh0ZSk7cmV0dXJuIEo8PXNlfHwiIj09b2U/SzooKGRlPVEob2UscmUoKGNlPUotc2UpL29lLmxlbmd0aCkpKS5sZW5ndGg+Y2UmJihkZT1qKGRlLDAsY2UpKSxZP0srZGU6ZGUrSyl9fTtYZS5leHBvcnRzPXtzdGFydDph''@;'; put 'put ''ZSghMSksZW5kOmFlKCEwKX19LDQ1OTYwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg0MDcwMiksQj1MKDkyMSksRT1MKDI0NTcyKSxFZT1SYW5nZUVycm9yO1hlLmV4cG9ydHM9ZnVuY3Rpb24oUSl7dmFyIGo9QihFKHRoaXMpKSxyZT0iIixhZT1tZShRKTtpZihhZTwwfHxh''@;'; put 'put ''ZT09MS8wKXRocm93IEVlKCJXcm9uZyBudW1iZXIgb2YgcmVwZXRpdGlvbnMiKTtmb3IoO2FlPjA7KGFlPj4+PTEpJiYoais9aikpMSZhZSYmKHJlKz1qKTtyZXR1cm4gcmV9fSw0NTcxMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCgxMzg2OSkuUFJPUEVSLEI9TCgyMzUyMyksRT1MKDc3ODYzKTtY''@;'; put 'put ''ZS5leHBvcnRzPWZ1bmN0aW9uKFUpe3JldHVybiBCKGZ1bmN0aW9uKCl7cmV0dXJuISFFW1VdKCl8fCJcdTIwMGJceDg1XHUxODBlIiE9PSJcdTIwMGJceDg1XHUxODBlIltVXSgpfHxtZSYmRVtVXS5uYW1lIT09VX0pfX0sOTMxNjY6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj1MKDI0''@;'; put 'put ''NTcyKSxFPUwoOTIxKSxFZT1MKDc3ODYzKSxVPW1lKCIiLnJlcGxhY2UpLFE9IlsiK0VlKyJdIixqPVJlZ0V4cCgiXiIrUStRKyIqIikscmU9UmVnRXhwKFErUSsiKiQiKSxhZT1mdW5jdGlvbihZKXtyZXR1cm4gZnVuY3Rpb24oVyl7dmFyIE49RShCKFcpKTtyZXR1cm4gMSZZJiYoTj1VKE4s''@;'; put 'put ''aiwiIikpLDImWSYmKE49VShOLHJlLCIiKSksTn19O1hlLmV4cG9ydHM9e3N0YXJ0OmFlKDEpLGVuZDphZSgyKSx0cmltOmFlKDMpfX0sMTQ0OTg6KFhlLEplLEwpPT57dmFyIG1lPUwoMzU2MiksQj1MKDQ2NjkzKSxFPUwoMjU0NiksRWU9TCgyNTY2Nik7WGUuZXhwb3J0cz1mdW5jdGlvbigp''@;'; put 'put ''e3ZhciBVPUIoIlN5bWJvbCIpLFE9VSYmVS5wcm90b3R5cGUsaj1RJiZRLnZhbHVlT2YscmU9RSgidG9QcmltaXRpdmUiKTtRJiYhUVtyZV0mJkVlKFEscmUsZnVuY3Rpb24oYWUpe3JldHVybiBtZShqLHRoaXMpfSx7YXJpdHk6MX0pfX0sNTUyNjE6KFhlLEplLEwpPT57dmFyIFNlLEllLFRl''@;'; put 'put ''LE1lLG1lPUwoNzA3MDUpLEI9TCgxMTMwNiksRT1MKDg1NDkpLEVlPUwoMTIwMTQpLFU9TCg0ODgxMSksUT1MKDIzNTIzKSxqPUwoNTk0MDYpLHJlPUwoNDA5MzApLGFlPUwoNDYzMTMpLFk9TCg3OTU0NSksVz1MKDc4NTIwKSxOPUwoODcyNDQpLHRlPW1lLnNldEltbWVkaWF0ZSxLPW1lLmNs''@;'; put 'put ''ZWFySW1tZWRpYXRlLEo9bWUucHJvY2VzcyxzZT1tZS5EaXNwYXRjaCxvZT1tZS5GdW5jdGlvbixjZT1tZS5NZXNzYWdlQ2hhbm5lbCxkZT1tZS5TdHJpbmcsdmU9MCxBZT17fSxrZT0ib25yZWFkeXN0YXRlY2hhbmdlIjt0cnl7U2U9bWUubG9jYXRpb259Y2F0Y2gobmUpe312YXIgaGU9ZnVu''@;'; put 'put ''Y3Rpb24obmUpe2lmKFUoQWUsbmUpKXt2YXIgeD1BZVtuZV07ZGVsZXRlIEFlW25lXSx4KCl9fSxPPWZ1bmN0aW9uKG5lKXtyZXR1cm4gZnVuY3Rpb24oKXtoZShuZSl9fSx6PWZ1bmN0aW9uKG5lKXtoZShuZS5kYXRhKX0sZWU9ZnVuY3Rpb24obmUpe21lLnBvc3RNZXNzYWdlKGRlKG5lKSxT''@;'; put 'put ''ZS5wcm90b2NvbCsiLy8iK1NlLmhvc3QpfTsoIXRlfHwhSykmJih0ZT1mdW5jdGlvbih4KXtZKGFyZ3VtZW50cy5sZW5ndGgsMSk7dmFyIFA9RWUoeCk/eDpvZSh4KSxWPXJlKGFyZ3VtZW50cywxKTtyZXR1cm4gQWVbKyt2ZV09ZnVuY3Rpb24oKXtCKFAsdm9pZCAwLFYpfSxJZSh2ZSksdmV9''@;'; put 'put ''LEs9ZnVuY3Rpb24oeCl7ZGVsZXRlIEFlW3hdfSxOP0llPWZ1bmN0aW9uKG5lKXtKLm5leHRUaWNrKE8obmUpKX06c2UmJnNlLm5vdz9JZT1mdW5jdGlvbihuZSl7c2Uubm93KE8obmUpKX06Y2UmJiFXPyhNZT0oVGU9bmV3IGNlKS5wb3J0MixUZS5wb3J0MS5vbm1lc3NhZ2U9eixJZT1FKE1l''@;'; put 'put ''LnBvc3RNZXNzYWdlLE1lKSk6bWUuYWRkRXZlbnRMaXN0ZW5lciYmRWUobWUucG9zdE1lc3NhZ2UpJiYhbWUuaW1wb3J0U2NyaXB0cyYmU2UmJiJmaWxlOiIhPT1TZS5wcm90b2NvbCYmIVEoZWUpPyhJZT1lZSxtZS5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIix6LCExKSk6SWU9a2UgaW4g''@;'; put 'put ''YWUoInNjcmlwdCIpP2Z1bmN0aW9uKG5lKXtqLmFwcGVuZENoaWxkKGFlKCJzY3JpcHQiKSlba2VdPWZ1bmN0aW9uKCl7ai5yZW1vdmVDaGlsZCh0aGlzKSxoZShuZSl9fTpmdW5jdGlvbihuZSl7c2V0VGltZW91dChPKG5lKSwwKX0pLFhlLmV4cG9ydHM9e3NldDp0ZSxjbGVhcjpLfX0sMTQy''@;'; put 'put ''NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg2NjEzKTtYZS5leHBvcnRzPW1lKDEuLnZhbHVlT2YpfSw3NjE2MzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg0MDcwMiksQj1NYXRoLm1heCxFPU1hdGgubWluO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRWUsVSl7dmFyIFE9bWUoRWUpO3JldHVybiBRPDA/QihR''@;'; put 'put ''K1UsMCk6RShRLFUpfX0sNTAzMjc6KFhlLEplLEwpPT57dmFyIG1lPUwoNTY2MDcpLEI9TCgyNDU3Mik7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gbWUoQihFKSl9fSw0MDcwMjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NDc0NCk7WGUuZXhwb3J0cz1mdW5jdGlvbihCKXt2YXIgRT0r''@;'; put 'put ''QjtyZXR1cm4gRSE9RXx8MD09PUU/MDptZShFKX19LDY1MzE2OihYZSxKZSxMKT0+e3ZhciBtZT1MKDQwNzAyKSxCPU1hdGgubWluO1hlLmV4cG9ydHM9ZnVuY3Rpb24oRSl7cmV0dXJuIEU+MD9CKG1lKEUpLDkwMDcxOTkyNTQ3NDA5OTEpOjB9fSw2ODA3MTooWGUsSmUsTCk9Pnt2YXIgbWU9''@;'; put 'put ''TCgyNDU3MiksQj1PYmplY3Q7WGUuZXhwb3J0cz1mdW5jdGlvbihFKXtyZXR1cm4gQihtZShFKSl9fSw3NTUzNzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgzNTYyKSxCPUwoNzE0OTYpLEU9TCg2OTc1KSxFZT1MKDIwOTQ4KSxVPUwoNjM0MTUpLFE9TCgyNTQ2KSxqPVR5cGVFcnJvcixyZT1RKCJ0''@;'; put 'put ''b1ByaW1pdGl2ZSIpO1hlLmV4cG9ydHM9ZnVuY3Rpb24oYWUsWSl7aWYoIUIoYWUpfHxFKGFlKSlyZXR1cm4gYWU7dmFyIE4sVz1FZShhZSxyZSk7aWYoVyl7aWYodm9pZCAwPT09WSYmKFk9ImRlZmF1bHQiKSxOPW1lKFcsYWUsWSksIUIoTil8fEUoTikpcmV0dXJuIE47dGhyb3cgaigiQ2Fu''@;'; put 'put ''J3QgY29udmVydCBvYmplY3QgdG8gcHJpbWl0aXZlIHZhbHVlIil9cmV0dXJuIHZvaWQgMD09PVkmJihZPSJudW1iZXIiKSxVKGFlLFkpfX0sODQwOTQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNzU1MzcpLEI9TCg2OTc1KTtYZS5leHBvcnRzPWZ1bmN0aW9uKEUpe3ZhciBFZT1tZShFLCJzdHJp''@;'; put 'put ''bmciKTtyZXR1cm4gQihFZSk/RWU6RWUrIiJ9fSwyNzQ5MDooWGUsSmUsTCk9Pnt2YXIgRT17fTtFW0woMjU0NikoInRvU3RyaW5nVGFnIildPSJ6IixYZS5leHBvcnRzPSJbb2JqZWN0IHpdIj09PVN0cmluZyhFKX0sOTIxOihYZSxKZSxMKT0+e3ZhciBtZT1MKDc5NTIwKSxCPVN0cmluZztY''@;'; put 'put ''ZS5leHBvcnRzPWZ1bmN0aW9uKEUpe2lmKCJTeW1ib2wiPT09bWUoRSkpdGhyb3cgVHlwZUVycm9yKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIHN0cmluZyIpO3JldHVybiBCKEUpfX0sOTQ2NzY6WGU9Pnt2YXIgSmU9U3RyaW5nO1hlLmV4cG9ydHM9ZnVuY3Rpb24oTCl7''@;'; put 'put ''dHJ5e3JldHVybiBKZShMKX1jYXRjaChtZSl7cmV0dXJuIk9iamVjdCJ9fX0sNTI4MTA6KFhlLEplLEwpPT57dmFyIG1lPUwoNjYxMyksQj0wLEU9TWF0aC5yYW5kb20oKSxFZT1tZSgxLi50b1N0cmluZyk7WGUuZXhwb3J0cz1mdW5jdGlvbihVKXtyZXR1cm4iU3ltYm9sKCIrKHZvaWQgMD09''@;'; put 'put ''PVU/IiI6VSkrIilfIitFZSgrK0IrRSwzNil9fSwyMzk2MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4Mjc3MCk7WGUuZXhwb3J0cz1tZSYmIVN5bWJvbC5zaGFtJiYic3ltYm9sIj09dHlwZW9mIFN5bWJvbC5pdGVyYXRvcn0sMjAxMTg6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCgy''@;'; put 'put ''MzUyMyk7WGUuZXhwb3J0cz1tZSYmQihmdW5jdGlvbigpe3JldHVybiA0MiE9T2JqZWN0LmRlZmluZVByb3BlcnR5KGZ1bmN0aW9uKCl7fSwicHJvdG90eXBlIix7dmFsdWU6NDIsd3JpdGFibGU6ITF9KS5wcm90b3R5cGV9KX0sNzk1NDU6WGU9Pnt2YXIgSmU9VHlwZUVycm9yO1hlLmV4cG9y''@;'; put 'put ''dHM9ZnVuY3Rpb24oTCxtZSl7aWYoTDxtZSl0aHJvdyBKZSgiTm90IGVub3VnaCBhcmd1bWVudHMiKTtyZXR1cm4gTH19LDI4MTE6KFhlLEplLEwpPT57dmFyIG1lPUwoMjU0Nik7SmUuZj1tZX0sMjU0NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg3MDcwNSksQj1MKDY4ODM1KSxFPUwoNDg4MTEp''@;'; put 'put ''LEVlPUwoNTI4MTApLFU9TCg4Mjc3MCksUT1MKDIzOTYxKSxqPUIoIndrcyIpLHJlPW1lLlN5bWJvbCxhZT1yZSYmcmUuZm9yLFk9UT9yZTpyZSYmcmUud2l0aG91dFNldHRlcnx8RWU7WGUuZXhwb3J0cz1mdW5jdGlvbihXKXtpZighRShqLFcpfHwhVSYmInN0cmluZyIhPXR5cGVvZiBqW1dd''@;'; put 'put ''KXt2YXIgTj0iU3ltYm9sLiIrVztqW1ddPVUmJkUocmUsVyk/cmVbV106USYmYWU/YWUoTik6WShOKX1yZXR1cm4galtXXX19LDc3ODYzOlhlPT57WGUuZXhwb3J0cz0iXHRcblx2XGZcciBceGEwXHUxNjgwXHUyMDAwXHUyMDAxXHUyMDAyXHUyMDAzXHUyMDA0XHUyMDA1XHUyMDA2XHUyMDA3''@;'; put 'put ''XHUyMDA4XHUyMDA5XHUyMDBhXHUyMDJmXHUyMDVmXHUzMDAwXHUyMDI4XHUyMDI5XHVmZWZmIn0sMzExMjM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMjM1MjMpLEU9TCgyOTEwNiksRWU9TCg3MTQ5NiksVT1MKDY4MDcxKSxRPUwoNTQ0NTApLGo9TCgy''@;'; put 'put ''MzEyNCkscmU9TCg5NTAwNCksYWU9TCgzMTg1NyksWT1MKDUxMjk4KSxXPUwoMjU0NiksTj1MKDI5Mzg1KSx0ZT1XKCJpc0NvbmNhdFNwcmVhZGFibGUiKSxLPU4+PTUxfHwhQihmdW5jdGlvbigpe3ZhciBjZT1bXTtyZXR1cm4gY2VbdGVdPSExLGNlLmNvbmNhdCgpWzBdIT09Y2V9KSxKPVko''@;'; put 'put ''ImNvbmNhdCIpLHNlPWZ1bmN0aW9uKGNlKXtpZighRWUoY2UpKXJldHVybiExO3ZhciBkZT1jZVt0ZV07cmV0dXJuIHZvaWQgMCE9PWRlPyEhZGU6RShjZSl9O21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxhcml0eToxLGZvcmNlZDohS3x8IUp9LHtjb25jYXQ6ZnVuY3Rpb24oZGUpe3Zh''@;'; put 'put ''ciBTZSxJZSxUZSxNZSxoZSx2ZT1VKHRoaXMpLEFlPWFlKHZlLDApLGtlPTA7Zm9yKFNlPS0xLFRlPWFyZ3VtZW50cy5sZW5ndGg7U2U8VGU7U2UrKylpZihzZShoZT0tMT09PVNlP3ZlOmFyZ3VtZW50c1tTZV0pKWZvcihNZT1RKGhlKSxqKGtlK01lKSxJZT0wO0llPE1lO0llKyssa2UrKylJ''@;'; put 'put ''ZSBpbiBoZSYmcmUoQWUsa2UsaGVbSWVdKTtlbHNlIGooa2UrMSkscmUoQWUsa2UrKyxoZSk7cmV0dXJuIEFlLmxlbmd0aD1rZSxBZX19KX0sMjQ4MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDU3MTc5KSxFPUwoNzQ5NjUpO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMH0s''@;'; put 'put ''e2ZpbGw6Qn0pLEUoImZpbGwiKX0sMzQ3NzA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTU2NjkpLmZpbHRlcjttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFMKDUxMjk4KSgiZmlsdGVyIil9LHtmaWx0ZXI6ZnVuY3Rpb24oUSl7cmV0''@;'; put 'put ''dXJuIEIodGhpcyxRLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sMzU4MTA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTU2NjkpLmZpbmRJbmRleCxFPUwoNzQ5NjUpLEVlPSJmaW5kSW5kZXgiLFU9ITA7RWUgaW5bXSYm''@;'; put 'put ''QXJyYXkoMSlbRWVdKGZ1bmN0aW9uKCl7VT0hMX0pLG1lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6VX0se2ZpbmRJbmRleDpmdW5jdGlvbihqKXtyZXR1cm4gQih0aGlzLGosYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pLEUoRWUpfSw1NDY3OToo''@;'; put 'put ''WGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg5NTY2OSkuZmluZCxFPUwoNzQ5NjUpLEVlPSJmaW5kIixVPSEwO0VlIGluW10mJkFycmF5KDEpW0VlXShmdW5jdGlvbigpe1U9ITF9KSxtZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOlV9LHtmaW5k''@;'; put 'put ''OmZ1bmN0aW9uKGope3JldHVybiBCKHRoaXMsaixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksRShFZSl9LDY5MTA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg2NjY2Nik7bWUoe3RhcmdldDoiQXJyYXkiLHN0YXQ6ITAsZm9yY2VkOiFMKDI3Nzky''@;'; put 'put ''KShmdW5jdGlvbihVKXtBcnJheS5mcm9tKFUpfSl9LHtmcm9tOkJ9KX0sMTM0MDA6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoMzYzMDUpLmluY2x1ZGVzLEU9TCgyMzUyMyksRWU9TCg3NDk2NSk7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNl''@;'; put 'put ''ZDpFKGZ1bmN0aW9uKCl7cmV0dXJuIUFycmF5KDEpLmluY2x1ZGVzKCl9KX0se2luY2x1ZGVzOmZ1bmN0aW9uKGope3JldHVybiBCKHRoaXMsaixhcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSksRWUoImluY2x1ZGVzIil9LDYzOTY3OihYZSxKZSxMKT0+eyJ1c2Ug''@;'; put 'put ''c3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCgzNjMwNSkuaW5kZXhPZixFZT1MKDYzMTI0KSxVPUIoW10uaW5kZXhPZiksUT0hIVUmJjEvVShbMV0sMSwtMCk8MCxqPUVlKCJpbmRleE9mIik7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpRfHwhan0se2lu''@;'; put 'put ''ZGV4T2Y6ZnVuY3Rpb24oYWUpe3ZhciBZPWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwO3JldHVybiBRP1UodGhpcyxhZSxZKXx8MDpFKHRoaXMsYWUsWSl9fSl9LDU3OTQzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg1MDMyNyksQj1MKDc0OTY1KSxF''@;'; put 'put ''PUwoOTUyNTcpLEVlPUwoNzI3KSxVPUwoNTExODMpLmYsUT1MKDM4NDk3KSxqPUwoMTAwMTcpLHJlPUwoODU2MjQpLGFlPSJBcnJheSBJdGVyYXRvciIsWT1FZS5zZXQsVz1FZS5nZXR0ZXJGb3IoYWUpO1hlLmV4cG9ydHM9UShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKHRlLEspe1kodGhpcyx7''@;'; put 'put ''dHlwZTphZSx0YXJnZXQ6bWUodGUpLGluZGV4OjAsa2luZDpLfSl9LGZ1bmN0aW9uKCl7dmFyIHRlPVcodGhpcyksSz10ZS50YXJnZXQsSj10ZS5raW5kLHNlPXRlLmluZGV4Kys7cmV0dXJuIUt8fHNlPj1LLmxlbmd0aD8odGUudGFyZ2V0PXZvaWQgMCx7dmFsdWU6dm9pZCAwLGRvbmU6ITB9''@;'; put 'put ''KToia2V5cyI9PUo/e3ZhbHVlOnNlLGRvbmU6ITF9OiJ2YWx1ZXMiPT1KP3t2YWx1ZTpLW3NlXSxkb25lOiExfTp7dmFsdWU6W3NlLEtbc2VdXSxkb25lOiExfX0sInZhbHVlcyIpO3ZhciBOPUUuQXJndW1lbnRzPUUuQXJyYXk7aWYoQigia2V5cyIpLEIoInZhbHVlcyIpLEIoImVudHJpZXMi''@;'; put 'put ''KSwhaiYmcmUmJiJ2YWx1ZXMiIT09Ti5uYW1lKXRyeXtVKE4sIm5hbWUiLHt2YWx1ZToidmFsdWVzIn0pfWNhdGNoKHRlKXt9fSw3Njc0OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNTY2MDcpLEVlPUwoNTAzMjcpLFU9TCg2MzEyNCks''@;'; put 'put ''UT1CKFtdLmpvaW4pLGo9RSE9T2JqZWN0LHJlPVUoImpvaW4iLCIsIik7bWUoe3RhcmdldDoiQXJyYXkiLHByb3RvOiEwLGZvcmNlZDpqfHwhcmV9LHtqb2luOmZ1bmN0aW9uKFkpe3JldHVybiBRKEVlKHRoaXMpLHZvaWQgMD09PVk/IiwiOlkpfX0pfSw1ODA6KFhlLEplLEwpPT57dmFyIG1l''@;'; put 'put ''PUwoODU2NDgpLEI9TCg5NjIyKTttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOkIhPT1bXS5sYXN0SW5kZXhPZn0se2xhc3RJbmRleE9mOkJ9KX0sODMwMjg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoOTU2NjkpLm1hcDttZSh7dGFyZ2V0''@;'; put 'put ''OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFMKDUxMjk4KSgibWFwIil9LHttYXA6ZnVuY3Rpb24oUSl7cmV0dXJuIEIodGhpcyxRLGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KX0sNzE3NzI6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4''@;'; put 'put ''KSxCPUwoNzM3NjApLmxlZnQsRT1MKDYzMTI0KSxFZT1MKDI5Mzg1KSxVPUwoODcyNDQpO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IUUoInJlZHVjZSIpfHwhVSYmRWU+NzkmJkVlPDgzfSx7cmVkdWNlOmZ1bmN0aW9uKGFlKXt2YXIgWT1hcmd1bWVudHMubGVuZ3RoO3Jl''@;'; put 'put ''dHVybiBCKHRoaXMsYWUsWSxZPjE/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSl9LDgzNTkwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCgyOTEwNiksRWU9QihbXS5yZXZlcnNlKSxVPVsxLDJdO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzoh''@;'; put 'put ''MCxmb3JjZWQ6U3RyaW5nKFUpPT09U3RyaW5nKFUucmV2ZXJzZSgpKX0se3JldmVyc2U6ZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzKSYmKHRoaXMubGVuZ3RoPXRoaXMubGVuZ3RoKSxFZSh0aGlzKX19KX0sOTcwODc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxC''@;'; put 'put ''PUwoMjkxMDYpLEU9TCg0OTQ1MyksRWU9TCg3MTQ5NiksVT1MKDc2MTYzKSxRPUwoNTQ0NTApLGo9TCg1MDMyNykscmU9TCg5NTAwNCksYWU9TCgyNTQ2KSxZPUwoNTEyOTgpLFc9TCg0MDkzMCksTj1ZKCJzbGljZSIpLHRlPWFlKCJzcGVjaWVzIiksSz1BcnJheSxKPU1hdGgubWF4O21lKHt0''@;'; put 'put ''YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6IU59LHtzbGljZTpmdW5jdGlvbihvZSxjZSl7dmFyIFNlLEllLFRlLGRlPWoodGhpcyksdmU9UShkZSksQWU9VShvZSx2ZSksa2U9VSh2b2lkIDA9PT1jZT92ZTpjZSx2ZSk7aWYoQihkZSkmJigoRShTZT1kZS5jb25zdHJ1Y3RvcikmJihT''@;'; put 'put ''ZT09PUt8fEIoU2UucHJvdG90eXBlKSl8fEVlKFNlKSYmbnVsbD09PShTZT1TZVt0ZV0pKSYmKFNlPXZvaWQgMCksU2U9PT1LfHx2b2lkIDA9PT1TZSkpcmV0dXJuIFcoZGUsQWUsa2UpO2ZvcihJZT1uZXcodm9pZCAwPT09U2U/SzpTZSkoSihrZS1BZSwwKSksVGU9MDtBZTxrZTtBZSsrLFRl''@;'; put 'put ''KyspQWUgaW4gZGUmJnJlKEllLFRlLGRlW0FlXSk7cmV0dXJuIEllLmxlbmd0aD1UZSxJZX19KX0sMTMyNzg6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNjYxMyksRT1MKDgxNDUwKSxFZT1MKDY4MDcxKSxVPUwoNTQ0NTApLFE9TCg0NjI4KSxqPUwoOTIx''@;'; put 'put ''KSxyZT1MKDIzNTIzKSxhZT1MKDMyNTk0KSxZPUwoNjMxMjQpLFc9TCg3NTcwNiksTj1MKDk4ODYpLHRlPUwoMjkzODUpLEs9TCg5NjM0KSxKPVtdLHNlPUIoSi5zb3J0KSxvZT1CKEoucHVzaCksY2U9cmUoZnVuY3Rpb24oKXtKLnNvcnQodm9pZCAwKX0pLGRlPXJlKGZ1bmN0aW9uKCl7Si5z''@;'; put 'put ''b3J0KG51bGwpfSksdmU9WSgic29ydCIpLEFlPSFyZShmdW5jdGlvbigpe2lmKHRlKXJldHVybiB0ZTw3MDtpZighKFcmJlc+Mykpe2lmKE4pcmV0dXJuITA7aWYoSylyZXR1cm4gSzw2MDM7dmFyIFRlLE1lLGhlLE8sSWU9IiI7Zm9yKFRlPTY1O1RlPDc2O1RlKyspe3N3aXRjaChNZT1TdHJp''@;'; put 'put ''bmcuZnJvbUNoYXJDb2RlKFRlKSxUZSl7Y2FzZSA2NjpjYXNlIDY5OmNhc2UgNzA6Y2FzZSA3MjpoZT0zO2JyZWFrO2Nhc2UgNjg6Y2FzZSA3MTpoZT00O2JyZWFrO2RlZmF1bHQ6aGU9Mn1mb3IoTz0wO088NDc7TysrKUoucHVzaCh7azpNZStPLHY6aGV9KX1mb3IoSi5zb3J0KGZ1bmN0aW9u''@;'; put 'put ''KHosZWUpe3JldHVybiBlZS52LXoudn0pLE89MDtPPEoubGVuZ3RoO08rKylNZT1KW09dLmsuY2hhckF0KDApLEllLmNoYXJBdChJZS5sZW5ndGgtMSkhPT1NZSYmKEllKz1NZSk7cmV0dXJuIkRHQkVGSEFDSUpLIiE9PUllfX0pO21lKHt0YXJnZXQ6IkFycmF5Iixwcm90bzohMCxmb3JjZWQ6''@;'; put 'put ''Y2V8fCFkZXx8IXZlfHwhQWV9LHtzb3J0OmZ1bmN0aW9uKFRlKXt2b2lkIDAhPT1UZSYmRShUZSk7dmFyIE1lPUVlKHRoaXMpO2lmKEFlKXJldHVybiB2b2lkIDA9PT1UZT9zZShNZSk6c2UoTWUsVGUpO3ZhciB6LGVlLGhlPVtdLE89VShNZSk7Zm9yKGVlPTA7ZWU8TztlZSsrKWVlIGluIE1l''@;'; put 'put ''JiZvZShoZSxNZVtlZV0pO2ZvcihhZShoZSxmdW5jdGlvbihJZSl7cmV0dXJuIGZ1bmN0aW9uKFRlLE1lKXtyZXR1cm4gdm9pZCAwPT09TWU/LTE6dm9pZCAwPT09VGU/MTp2b2lkIDAhPT1JZT8rSWUoVGUsTWUpfHwwOmooVGUpPmooTWUpPzE6LTF9fShUZSkpLHo9aGUubGVuZ3RoLGVlPTA7''@;'; put 'put ''ZWU8ejspTWVbZWVdPWhlW2VlKytdO2Zvcig7ZWU8TzspUShNZSxlZSsrKTtyZXR1cm4gTWV9fSl9LDUyMzEzOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY4MDcxKSxFPUwoNzYxNjMpLEVlPUwoNDA3MDIpLFU9TCg1NDQ1MCksUT1MKDIzMTI0KSxqPUwo''@;'; put 'put ''MzE4NTcpLHJlPUwoOTUwMDQpLGFlPUwoNDYyOCksVz1MKDUxMjk4KSgic3BsaWNlIiksTj1NYXRoLm1heCx0ZT1NYXRoLm1pbjttZSh7dGFyZ2V0OiJBcnJheSIscHJvdG86ITAsZm9yY2VkOiFXfSx7c3BsaWNlOmZ1bmN0aW9uKEosc2Upe3ZhciBBZSxrZSxTZSxJZSxUZSxNZSxvZT1CKHRo''@;'; put 'put ''aXMpLGNlPVUob2UpLGRlPUUoSixjZSksdmU9YXJndW1lbnRzLmxlbmd0aDtmb3IoMD09PXZlP0FlPWtlPTA6MT09PXZlPyhBZT0wLGtlPWNlLWRlKTooQWU9dmUtMixrZT10ZShOKEVlKHNlKSwwKSxjZS1kZSkpLFEoY2UrQWUta2UpLFNlPWoob2Usa2UpLEllPTA7SWU8a2U7SWUrKykoVGU9''@;'; put 'put ''ZGUrSWUpaW4gb2UmJnJlKFNlLEllLG9lW1RlXSk7aWYoU2UubGVuZ3RoPWtlLEFlPGtlKXtmb3IoSWU9ZGU7SWU8Y2Uta2U7SWUrKylNZT1JZStBZSwoVGU9SWUra2UpaW4gb2U/b2VbTWVdPW9lW1RlXTphZShvZSxNZSk7Zm9yKEllPWNlO0llPmNlLWtlK0FlO0llLS0pYWUob2UsSWUtMSl9''@;'; put 'put ''ZWxzZSBpZihBZT5rZSlmb3IoSWU9Y2Uta2U7SWU+ZGU7SWUtLSlNZT1JZStBZS0xLChUZT1JZStrZS0xKWluIG9lP29lW01lXT1vZVtUZV06YWUob2UsTWUpO2ZvcihJZT0wO0llPEFlO0llKyspb2VbSWUrZGVdPWFyZ3VtZW50c1tJZSsyXTtyZXR1cm4gb2UubGVuZ3RoPWNlLWtlK0FlLFNl''@;'; put 'put ''fX0pfSwxODE1ODooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTYyNCksQj1MKDEzODY5KS5FWElTVFMsRT1MKDY2MTMpLEVlPUwoNTExODMpLmYsVT1GdW5jdGlvbi5wcm90b3R5cGUsUT1FKFUudG9TdHJpbmcpLGo9L2Z1bmN0aW9uXGIoPzpcc3xcL1wqW1xTXHNdKj9cKlwvfFwvXC9bXlxuXHJd''@;'; put 'put ''KltcblxyXSspKihbXlxzKC9dKikvLHJlPUUoai5leGVjKTttZSYmIUImJkVlKFUsIm5hbWUiLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybiByZShqLFEodGhpcykpWzFdfWNhdGNoKFkpe3JldHVybiIifX19KX0sMTMwMDY6KFhlLEplLEwpPT57dmFyIG1lPUwo''@;'; put 'put ''ODU2NDgpLEI9TCg0NjY5MyksRT1MKDExMzA2KSxFZT1MKDM1NjIpLFU9TCg2NjEzKSxRPUwoMjM1MjMpLGo9TCgyOTEwNikscmU9TCgxMjAxNCksYWU9TCg3MTQ5NiksWT1MKDY5NzUpLFc9TCg0MDkzMCksTj1MKDgyNzcwKSx0ZT1CKCJKU09OIiwic3RyaW5naWZ5IiksSz1VKC8uLy5leGVj''@;'; put 'put ''KSxKPVUoIiIuY2hhckF0KSxzZT1VKCIiLmNoYXJDb2RlQXQpLG9lPVUoIiIucmVwbGFjZSksY2U9VSgxLi50b1N0cmluZyksZGU9L1tcdUQ4MDAtXHVERkZGXS9nLHZlPS9eW1x1RDgwMC1cdURCRkZdJC8sQWU9L15bXHVEQzAwLVx1REZGRl0kLyxrZT0hTnx8UShmdW5jdGlvbigpe3ZhciBN''@;'; put 'put ''ZT1CKCJTeW1ib2wiKSgpO3JldHVybiJbbnVsbF0iIT10ZShbTWVdKXx8Int9IiE9dGUoe2E6TWV9KXx8Int9IiE9dGUoT2JqZWN0KE1lKSl9KSxTZT1RKGZ1bmN0aW9uKCl7cmV0dXJuJyJcXHVkZjA2XFx1ZDgzNCInIT09dGUoIlx1ZGYwNlx1ZDgzNCIpfHwnIlxcdWRlYWQiJyE9PXRlKCJc''@;'; put 'put ''dWRlYWQiKX0pLEllPWZ1bmN0aW9uKE1lLGhlKXt2YXIgTz1XKGFyZ3VtZW50cyksej1oZTtpZigoYWUoaGUpfHx2b2lkIDAhPT1NZSkmJiFZKE1lKSlyZXR1cm4gaihoZSl8fChoZT1mdW5jdGlvbihlZSxuZSl7aWYocmUoeikmJihuZT1FZSh6LHRoaXMsZWUsbmUpKSwhWShuZSkpcmV0dXJu''@;'; put 'put ''IG5lfSksT1sxXT1oZSxFKHRlLG51bGwsTyl9LFRlPWZ1bmN0aW9uKE1lLGhlLE8pe3ZhciB6PUooTyxoZS0xKSxlZT1KKE8saGUrMSk7cmV0dXJuIEsodmUsTWUpJiYhSyhBZSxlZSl8fEsoQWUsTWUpJiYhSyh2ZSx6KT8iXFx1IitjZShzZShNZSwwKSwxNik6TWV9O3RlJiZtZSh7dGFyZ2V0''@;'; put 'put ''OiJKU09OIixzdGF0OiEwLGFyaXR5OjMsZm9yY2VkOmtlfHxTZX0se3N0cmluZ2lmeTpmdW5jdGlvbihoZSxPLHope3ZhciBlZT1XKGFyZ3VtZW50cyksbmU9RShrZT9JZTp0ZSxudWxsLGVlKTtyZXR1cm4gU2UmJiJzdHJpbmciPT10eXBlb2YgbmU/b2UobmUsZGUsVGUpOm5lfX0pfSw4ODc2''@;'; put 'put ''MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7TCg0Njg1NykoIk1hcCIsZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcyxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1swXTp2b2lkIDApfX0sTCg0NTE0MCkpfSw5NjY0OihYZSxKZSxMKT0+e0woODg3NjIpfSw2''@;'; put 'put ''NDk1MjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2MjQpLEI9TCg3MDcwNSksRT1MKDY2MTMpLEVlPUwoNjc1MDcpLFU9TCgyNTY2NiksUT1MKDQ4ODExKSxqPUwoNTE4NDkpLHJlPUwoMzc0NzQpLGFlPUwoNjk3NSksWT1MKDc1NTM3KSxXPUwoMjM1MjMpLE49TCg3NTQz''@;'; put 'put ''MSkuZix0ZT1MKDQ3OTg3KS5mLEs9TCg1MTE4MykuZixKPUwoMTQyNiksc2U9TCg5MzE2NikudHJpbSxvZT0iTnVtYmVyIixjZT1CW29lXSxkZT1jZS5wcm90b3R5cGUsdmU9Qi5UeXBlRXJyb3IsQWU9RSgiIi5zbGljZSksa2U9RSgiIi5jaGFyQ29kZUF0KSxTZT1mdW5jdGlvbih6KXt2YXIg''@;'; put 'put ''ZWU9WSh6LCJudW1iZXIiKTtyZXR1cm4iYmlnaW50Ij09dHlwZW9mIGVlP2VlOkllKGVlKX0sSWU9ZnVuY3Rpb24oeil7dmFyIG5lLHgsUCxWLFQsUyxGLHllLGVlPVkoeiwibnVtYmVyIik7aWYoYWUoZWUpKXRocm93IHZlKCJDYW5ub3QgY29udmVydCBhIFN5bWJvbCB2YWx1ZSB0byBhIG51''@;'; put 'put ''bWJlciIpO2lmKCJzdHJpbmciPT10eXBlb2YgZWUmJmVlLmxlbmd0aD4yKWlmKGVlPXNlKGVlKSw0Mz09PShuZT1rZShlZSwwKSl8fDQ1PT09bmUpe2lmKDg4PT09KHg9a2UoZWUsMikpfHwxMjA9PT14KXJldHVybiBOYU59ZWxzZSBpZig0OD09PW5lKXtzd2l0Y2goa2UoZWUsMSkpe2Nhc2Ug''@;'; put 'put ''NjY6Y2FzZSA5ODpQPTIsVj00OTticmVhaztjYXNlIDc5OmNhc2UgMTExOlA9OCxWPTU1O2JyZWFrO2RlZmF1bHQ6cmV0dXJuK2VlfWZvcihTPShUPUFlKGVlLDIpKS5sZW5ndGgsRj0wO0Y8UztGKyspaWYoKHllPWtlKFQsRikpPDQ4fHx5ZT5WKXJldHVybiBOYU47cmV0dXJuIHBhcnNlSW50''@;'; put 'put ''KFQsUCl9cmV0dXJuK2VlfTtpZihFZShvZSwhY2UoIiAwbzEiKXx8IWNlKCIwYjEiKXx8Y2UoIisweDEiKSkpe2Zvcih2YXIgTyxUZT1mdW5jdGlvbihlZSl7dmFyIG5lPWFyZ3VtZW50cy5sZW5ndGg8MT8wOmNlKFNlKGVlKSkseD10aGlzO3JldHVybiByZShkZSx4KSYmVyhmdW5jdGlvbigp''@;'; put 'put ''e0ooeCl9KT9qKE9iamVjdChuZSkseCxUZSk6bmV9LE1lPW1lP04oY2UpOiJNQVhfVkFMVUUsTUlOX1ZBTFVFLE5hTixORUdBVElWRV9JTkZJTklUWSxQT1NJVElWRV9JTkZJTklUWSxFUFNJTE9OLE1BWF9TQUZFX0lOVEVHRVIsTUlOX1NBRkVfSU5URUdFUixpc0Zpbml0ZSxpc0ludGVnZXIs''@;'; put 'put ''aXNOYU4saXNTYWZlSW50ZWdlcixwYXJzZUZsb2F0LHBhcnNlSW50LGZyb21TdHJpbmcscmFuZ2UiLnNwbGl0KCIsIiksaGU9MDtNZS5sZW5ndGg+aGU7aGUrKylRKGNlLE89TWVbaGVdKSYmIVEoVGUsTykmJksoVGUsTyx0ZShjZSxPKSk7VGUucHJvdG90eXBlPWRlLGRlLmNvbnN0cnVjdG9y''@;'; put 'put ''PVRlLFUoQixvZSxUZSx7Y29uc3RydWN0b3I6ITB9KX19LDcwODY0OihYZSxKZSxMKT0+e0woODU2NDgpKHt0YXJnZXQ6Ik51bWJlciIsc3RhdDohMH0se2lzSW50ZWdlcjpMKDMwNDIpfSl9LDQyMTQwOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCg4NTY0OCksQj1MKDY2MTMp''@;'; put 'put ''LEU9TCg0MDcwMiksRWU9TCgxNDI2KSxVPUwoNDU5NjApLFE9TCgyMzUyMyksaj1SYW5nZUVycm9yLHJlPVN0cmluZyxhZT1NYXRoLmZsb29yLFk9QihVKSxXPUIoIiIuc2xpY2UpLE49QigxLi50b0ZpeGVkKSx0ZT1mdW5jdGlvbihkZSx2ZSxBZSl7cmV0dXJuIDA9PT12ZT9BZTp2ZSUyPT0x''@;'; put 'put ''P3RlKGRlLHZlLTEsQWUqZGUpOnRlKGRlKmRlLHZlLzIsQWUpfSxKPWZ1bmN0aW9uKGRlLHZlLEFlKXtmb3IodmFyIGtlPS0xLFNlPUFlOysra2U8NjspZGVba2VdPShTZSs9dmUqZGVba2VdKSUxZTcsU2U9YWUoU2UvMWU3KX0sc2U9ZnVuY3Rpb24oZGUsdmUpe2Zvcih2YXIgQWU9NixrZT0w''@;'; put 'put ''Oy0tQWU+PTA7KWRlW0FlXT1hZSgoa2UrPWRlW0FlXSkvdmUpLGtlPWtlJXZlKjFlN30sb2U9ZnVuY3Rpb24oZGUpe2Zvcih2YXIgdmU9NixBZT0iIjstLXZlPj0wOylpZigiIiE9PUFlfHwwPT09dmV8fDAhPT1kZVt2ZV0pe3ZhciBrZT1yZShkZVt2ZV0pO0FlPSIiPT09QWU/a2U6QWUrWSgi''@;'; put 'put ''MCIsNy1rZS5sZW5ndGgpK2tlfXJldHVybiBBZX07bWUoe3RhcmdldDoiTnVtYmVyIixwcm90bzohMCxmb3JjZWQ6UShmdW5jdGlvbigpe3JldHVybiIwLjAwMCIhPT1OKDhlLTUsMyl8fCIxIiE9PU4oLjksMCl8fCIxLjI1IiE9PU4oMS4yNTUsMil8fCIxMDAwMDAwMDAwMDAwMDAwMTI4IiE9''@;'; put 'put ''PU4oMHhkZTBiNmIzYTc2NDAwODAsMCl9KXx8IVEoZnVuY3Rpb24oKXtOKHt9KX0pfSx7dG9GaXhlZDpmdW5jdGlvbih2ZSl7dmFyIE1lLGhlLE8seixBZT1FZSh0aGlzKSxrZT1FKHZlKSxTZT1bMCwwLDAsMCwwLDBdLEllPSIiLFRlPSIwIjtpZihrZTwwfHxrZT4yMCl0aHJvdyBqKCJJbmNv''@;'; put 'put ''cnJlY3QgZnJhY3Rpb24gZGlnaXRzIik7aWYoQWUhPUFlKXJldHVybiJOYU4iO2lmKEFlPD0tMWUyMXx8QWU+PTFlMjEpcmV0dXJuIHJlKEFlKTtpZihBZTwwJiYoSWU9Ii0iLEFlPS1BZSksQWU+MWUtMjEpaWYoTWU9ZnVuY3Rpb24oZGUpe2Zvcih2YXIgdmU9MCxBZT1kZTtBZT49NDA5Njsp''@;'; put 'put ''dmUrPTEyLEFlLz00MDk2O2Zvcig7QWU+PTI7KXZlKz0xLEFlLz0yO3JldHVybiB2ZX0oQWUqdGUoMiw2OSwxKSktNjksaGU9TWU8MD9BZSp0ZSgyLC1NZSwxKTpBZS90ZSgyLE1lLDEpLGhlKj00NTAzNTk5NjI3MzcwNDk2LChNZT01Mi1NZSk+MCl7Zm9yKEooU2UsMCxoZSksTz1rZTtPPj03''@;'; put 'put ''OylKKFNlLDFlNywwKSxPLT03O2ZvcihKKFNlLHRlKDEwLE8sMSksMCksTz1NZS0xO08+PTIzOylzZShTZSwxPDwyMyksTy09MjM7c2UoU2UsMTw8TyksSihTZSwxLDEpLHNlKFNlLDIpLFRlPW9lKFNlKX1lbHNlIEooU2UsMCxoZSksSihTZSwxPDwtTWUsMCksVGU9b2UoU2UpK1koIjAiLGtl''@;'; put 'put ''KTtyZXR1cm4gVGU9a2U+MD9JZSsoKHo9VGUubGVuZ3RoKTw9a2U/IjAuIitZKCIwIixrZS16KStUZTpXKFRlLDAsei1rZSkrIi4iK1coVGUsei1rZSkpOkllK1RlfX0pfSwzMzQ3MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDQ3OTU5KTttZSh7dGFyZ2V0OiJPYmplY3QiLHN0''@;'; put 'put ''YXQ6ITAsYXJpdHk6Mixmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PUJ9LHthc3NpZ246Qn0pfSw4Mjc1NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDEyNTY2KSxFPUwoMjM1MjMpLEVlPUwoNzE0OTYpLFU9TCg3MTgzMikub25GcmVlemUsUT1PYmplY3QuZnJlZXplO21lKHt0YXJn''@;'; put 'put ''ZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6RShmdW5jdGlvbigpe1EoMSl9KSxzaGFtOiFCfSx7ZnJlZXplOmZ1bmN0aW9uKGFlKXtyZXR1cm4gUSYmRWUoYWUpP1EoVShhZSkpOmFlfX0pfSw1NDc0MDooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDIzNTIzKSxFPUwoNTAzMjcp''@;'; put 'put ''LEVlPUwoNDc5ODcpLmYsVT1MKDg1NjI0KSxRPUIoZnVuY3Rpb24oKXtFZSgxKX0pO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6IVV8fFEsc2hhbTohVX0se2dldE93blByb3BlcnR5RGVzY3JpcHRvcjpmdW5jdGlvbihhZSxZKXtyZXR1cm4gRWUoRShhZSksWSl9fSl9LDU1''@;'; put 'put ''NjE1OihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoODU2MjQpLEU9TCgyMTE5OSksRWU9TCg1MDMyNyksVT1MKDQ3OTg3KSxRPUwoOTUwMDQpO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxzaGFtOiFCfSx7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yczpmdW5jdGlvbihyZSl7''@;'; put 'put ''Zm9yKHZhciBLLEosYWU9RWUocmUpLFk9VS5mLFc9RShhZSksTj17fSx0ZT0wO1cubGVuZ3RoPnRlOyl2b2lkIDAhPT0oSj1ZKGFlLEs9V1t0ZSsrXSkpJiZRKE4sSyxKKTtyZXR1cm4gTn19KX0sNDM5OTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDIzNTIzKSxFPUwoMzU4MDgp''@;'; put 'put ''LmY7bWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDpCKGZ1bmN0aW9uKCl7cmV0dXJuIU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKDEpfSl9LHtnZXRPd25Qcm9wZXJ0eU5hbWVzOkV9KX0sNjMxOTg6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg4Mjc3MCksRT1M''@;'; put 'put ''KDIzNTIzKSxFZT1MKDU1MzQpLFU9TCg2ODA3MSk7bWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohQnx8RShmdW5jdGlvbigpe0VlLmYoMSl9KX0se2dldE93blByb3BlcnR5U3ltYm9sczpmdW5jdGlvbihyZSl7dmFyIGFlPUVlLmY7cmV0dXJuIGFlP2FlKFUocmUpKTpbXX19''@;'; put 'put ''KX0sMjg3NjQ6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCgyMzUyMyksRT1MKDY4MDcxKSxFZT1MKDgyNzMzKSxVPUwoNDYwODYpO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6QihmdW5jdGlvbigpe0VlKDEpfSksc2hhbTohVX0se2dldFByb3RvdHlwZU9mOmZ1''@;'; put 'put ''bmN0aW9uKHJlKXtyZXR1cm4gRWUoRShyZSkpfX0pfSw5NjI1MTooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDY4MDcxKSxFPUwoMTQ1NDUpO21lKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6TCgyMzUyMykoZnVuY3Rpb24oKXtFKDEpfSl9LHtrZXlzOmZ1bmN0aW9u''@;'; put 'put ''KGope3JldHVybiBFKEIoaikpfX0pfSwxNjE2MTooWGUsSmUsTCk9PntMKDg1NjQ4KSh7dGFyZ2V0OiJPYmplY3QiLHN0YXQ6ITB9LHtzZXRQcm90b3R5cGVPZjpMKDE5NTg3KX0pfSwyMDY0NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCgyNzQ5MCksQj1MKDI1NjY2KSxFPUwoNzcwNSk7bWV8fEIo''@;'; put 'put ''T2JqZWN0LnByb3RvdHlwZSwidG9TdHJpbmciLEUse3Vuc2FmZTohMH0pfSw4Mzg1NzooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDQ0NTgyKS52YWx1ZXM7bWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwfSx7dmFsdWVzOmZ1bmN0aW9uKEVlKXtyZXR1cm4gQihFZSl9fSl9LDkx''@;'; put 'put ''NjgzOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNDY2OTMpLEU9TCgxMTMwNiksRWU9TCg2OTg5KSxVPUwoNTY1ODEpLFE9TCg1ODY0Nyksaj1MKDcxNDk2KSxyZT1MKDc0NDEwKSxhZT1MKDIzNTIzKSxZPUIoIlJlZmxlY3QiLCJjb25zdHJ1Y3QiKSxXPU9iamVjdC5wcm90b3R5''@;'; put 'put ''cGUsTj1bXS5wdXNoLHRlPWFlKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gc2UoKXt9cmV0dXJuIShZKGZ1bmN0aW9uKCl7fSxbXSxzZSlpbnN0YW5jZW9mIHNlKX0pLEs9IWFlKGZ1bmN0aW9uKCl7WShmdW5jdGlvbigpe30pfSksSj10ZXx8SzttZSh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwLGZv''@;'; put 'put ''cmNlZDpKLHNoYW06Sn0se2NvbnN0cnVjdDpmdW5jdGlvbihvZSxjZSl7VShvZSksUShjZSk7dmFyIGRlPWFyZ3VtZW50cy5sZW5ndGg8Mz9vZTpVKGFyZ3VtZW50c1syXSk7aWYoSyYmIXRlKXJldHVybiBZKG9lLGNlLGRlKTtpZihvZT09ZGUpe3N3aXRjaChjZS5sZW5ndGgpe2Nhc2UgMDpy''@;'; put 'put ''ZXR1cm4gbmV3IG9lO2Nhc2UgMTpyZXR1cm4gbmV3IG9lKGNlWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBvZShjZVswXSxjZVsxXSk7Y2FzZSAzOnJldHVybiBuZXcgb2UoY2VbMF0sY2VbMV0sY2VbMl0pO2Nhc2UgNDpyZXR1cm4gbmV3IG9lKGNlWzBdLGNlWzFdLGNlWzJdLGNlWzNdKX12YXIg''@;'; put 'put ''dmU9W251bGxdO3JldHVybiBFKE4sdmUsY2UpLG5ldyhFKEVlLG9lLHZlKSl9dmFyIEFlPWRlLnByb3RvdHlwZSxrZT1yZShqKEFlKT9BZTpXKSxTZT1FKG9lLGtlLGNlKTtyZXR1cm4gaihTZSk/U2U6a2V9fSl9LDIwMjczOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoMzU2Miks''@;'; put 'put ''RT1MKDcxNDk2KSxFZT1MKDU4NjQ3KSxVPUwoMTQxMjUpLFE9TCg0Nzk4Nyksaj1MKDgyNzMzKTttZSh7dGFyZ2V0OiJSZWZsZWN0IixzdGF0OiEwfSx7Z2V0OmZ1bmN0aW9uIHJlKGFlLFkpe3ZhciBOLHRlLFc9YXJndW1lbnRzLmxlbmd0aDwzP2FlOmFyZ3VtZW50c1syXTtyZXR1cm4gRWUo''@;'; put 'put ''YWUpPT09Vz9hZVtZXTooTj1RLmYoYWUsWSkpP1UoTik/Ti52YWx1ZTp2b2lkIDA9PT1OLmdldD92b2lkIDA6QihOLmdldCxXKTpFKHRlPWooYWUpKT9yZSh0ZSxZLFcpOnZvaWQgMH19KX0sMTY4MjU6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2MjQpLEI9TCg3MDcwNSksRT1MKDY2MTMpLEVl''@;'; put 'put ''PUwoNjc1MDcpLFU9TCg1MTg0OSksUT1MKDE2MDE3KSxqPUwoNzU0MzEpLmYscmU9TCgzNzQ3NCksYWU9TCg0MTgwNCksWT1MKDkyMSksVz1MKDgxNjIwKSxOPUwoOTcxODkpLHRlPUwoNzg4MCksSz1MKDI1NjY2KSxKPUwoMjM1MjMpLHNlPUwoNDg4MTEpLG9lPUwoNzI3KS5lbmZvcmNlLGNl''@;'; put 'put ''PUwoNjgzMTUpLGRlPUwoMjU0NiksdmU9TCg0MzE4NiksQWU9TCg1MTk0OSksa2U9ZGUoIm1hdGNoIiksU2U9Qi5SZWdFeHAsSWU9U2UucHJvdG90eXBlLFRlPUIuU3ludGF4RXJyb3IsTWU9RShJZS5leGVjKSxoZT1FKCIiLmNoYXJBdCksTz1FKCIiLnJlcGxhY2UpLHo9RSgiIi5pbmRleE9m''@;'; put 'put ''KSxlZT1FKCIiLnNsaWNlKSxuZT0vXlw/PFteXHNcZCEjJSYqKzw9PkBeXVteXHMhIyUmKis8PT5AXl0qPi8seD0vYS9nLFA9L2EvZyxWPW5ldyBTZSh4KSE9PXgsVD1OLk1JU1NFRF9TVElDS1ksUz1OLlVOU1VQUE9SVEVEX1k7aWYoRWUoIlJlZ0V4cCIsbWUmJighVnx8VHx8dmV8fEFlfHxK''@;'; put 'put ''KGZ1bmN0aW9uKCl7cmV0dXJuIFBba2VdPSExLFNlKHgpIT14fHxTZShQKT09UHx8Ii9hL2kiIT1TZSh4LCJpIil9KSkpKXtmb3IodmFyIERlPWZ1bmN0aW9uKGd0LHd0KXt2YXIgb24sX3QsdHQsZXQsbHQsTHQsbXQ9cmUoSWUsdGhpcyksdnQ9YWUoZ3QpLEF0PXZvaWQgMD09PXd0LGh0PVtd''@;'; put 'put ''LEJ0PWd0O2lmKCFtdCYmdnQmJkF0JiZndC5jb25zdHJ1Y3Rvcj09PURlKXJldHVybiBndDtpZigodnR8fHJlKEllLGd0KSkmJihndD1ndC5zb3VyY2UsQXQmJih3dD1XKEJ0KSkpLGd0PXZvaWQgMD09PWd0PyIiOlkoZ3QpLHd0PXZvaWQgMD09PXd0PyIiOlkod3QpLEJ0PWd0LHZlJiYiZG90''@;'; put 'put ''QWxsImluIHgmJihfdD0hIXd0JiZ6KHd0LCJzIik+LTEpJiYod3Q9Tyh3dCwvcy9nLCIiKSksb249d3QsVCYmInN0aWNreSJpbiB4JiYodHQ9ISF3dCYmeih3dCwieSIpPi0xKSYmUyYmKHd0PU8od3QsL3kvZywiIikpLEFlJiYoZXQ9ZnVuY3Rpb24oJGUpe2Zvcih2YXIgdHQsZ3Q9JGUubGVu''@;'; put 'put ''Z3RoLHd0PTAsbXQ9IiIsdnQ9W10sQXQ9e30saHQ9ITEsQnQ9ITEsb249MCxfdD0iIjt3dDw9Z3Q7d3QrKyl7aWYoIlxcIj09PSh0dD1oZSgkZSx3dCkpKXR0Kz1oZSgkZSwrK3d0KTtlbHNlIGlmKCJdIj09PXR0KWh0PSExO2Vsc2UgaWYoIWh0KXN3aXRjaCghMCl7Y2FzZSJbIj09PXR0Omh0''@;'; put 'put ''PSEwO2JyZWFrO2Nhc2UiKCI9PT10dDpNZShuZSxlZSgkZSx3dCsxKSkmJih3dCs9MixCdD0hMCksbXQrPXR0LG9uKys7Y29udGludWU7Y2FzZSI+Ij09PXR0JiZCdDppZigiIj09PV90fHxzZShBdCxfdCkpdGhyb3cgbmV3IFRlKCJJbnZhbGlkIGNhcHR1cmUgZ3JvdXAgbmFtZSIpO0F0W190''@;'; put 'put ''XT0hMCx2dFt2dC5sZW5ndGhdPVtfdCxvbl0sQnQ9ITEsX3Q9IiI7Y29udGludWV9QnQ/X3QrPXR0Om10Kz10dH1yZXR1cm5bbXQsdnRdfShndCksZ3Q9ZXRbMF0saHQ9ZXRbMV0pLGx0PVUoU2UoZ3Qsd3QpLG10P3RoaXM6SWUsRGUpLChfdHx8dHR8fGh0Lmxlbmd0aCkmJihMdD1vZShsdCks''@;'; put 'put ''X3QmJihMdC5kb3RBbGw9ITAsTHQucmF3PURlKGZ1bmN0aW9uKCRlKXtmb3IodmFyIEF0LGd0PSRlLmxlbmd0aCx3dD0wLG10PSIiLHZ0PSExO3d0PD1ndDt3dCsrKSJcXCIhPT0oQXQ9aGUoJGUsd3QpKT92dHx8Ii4iIT09QXQ/KCJbIj09PUF0P3Z0PSEwOiJdIj09PUF0JiYodnQ9ITEpLG10''@;'; put 'put ''Kz1BdCk6bXQrPSJbXFxzXFxTXSI6bXQrPUF0K2hlKCRlLCsrd3QpO3JldHVybiBtdH0oZ3QpLG9uKSksdHQmJihMdC5zdGlja3k9ITApLGh0Lmxlbmd0aCYmKEx0Lmdyb3Vwcz1odCkpLGd0IT09QnQpdHJ5e1EobHQsInNvdXJjZSIsIiI9PT1CdD8iKD86KSI6QnQpfWNhdGNoKEN0KXt9cmV0''@;'; put 'put ''dXJuIGx0fSxQZT1qKFNlKSxRZT0wO1BlLmxlbmd0aD5RZTspdGUoRGUsU2UsUGVbUWUrK10pO0llLmNvbnN0cnVjdG9yPURlLERlLnByb3RvdHlwZT1JZSxLKEIsIlJlZ0V4cCIsRGUse2NvbnN0cnVjdG9yOiEwfSl9Y2UoIlJlZ0V4cCIpfSw0Mjc2MDooWGUsSmUsTCk9PnsidXNlIHN0cmlj''@;'; put 'put ''dCI7dmFyIG1lPUwoODU2NDgpLEI9TCgyMjIzNCk7bWUoe3RhcmdldDoiUmVnRXhwIixwcm90bzohMCxmb3JjZWQ6Ly4vLmV4ZWMhPT1CfSx7ZXhlYzpCfSl9LDMwNTcxOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxMzg2OSkuUFJPUEVSLEI9TCgyNTY2NiksRT1MKDU4NjQ3''@;'; put 'put ''KSxFZT1MKDkyMSksVT1MKDIzNTIzKSxRPUwoODE2MjApLGo9InRvU3RyaW5nIixhZT1SZWdFeHAucHJvdG90eXBlW2pdOyhVKGZ1bmN0aW9uKCl7cmV0dXJuIi9hL2IiIT1hZS5jYWxsKHtzb3VyY2U6ImEiLGZsYWdzOiJiIn0pfSl8fG1lJiZhZS5uYW1lIT1qKSYmQihSZWdFeHAucHJvdG90''@;'; put 'put ''eXBlLGosZnVuY3Rpb24oKXt2YXIgdGU9RSh0aGlzKTtyZXR1cm4iLyIrRWUodGUuc291cmNlKSsiLyIrRWUoUSh0ZSkpfSx7dW5zYWZlOiEwfSl9LDgwMDY6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woNDY4NTcpKCJTZXQiLGZ1bmN0aW9uKEUpe3JldHVybiBmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biBFKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LEwoNDUxNDApKX0sMTgzMjM6KFhlLEplLEwpPT57TCg4MDA2KX0sMTY2NjE6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzUwNTgpLmNvZGVBdDttZSh7dGFyZ2V0OiJT''@;'; put 'put ''dHJpbmciLHByb3RvOiEwfSx7Y29kZVBvaW50QXQ6ZnVuY3Rpb24oRWUpe3JldHVybiBCKHRoaXMsRWUpfX0pfSwzNzQ5OTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIEosbWU9TCg4NTY0OCksQj1MKDY2MTMpLEU9TCg0Nzk4NykuZixFZT1MKDY1MzE2KSxVPUwoOTIxKSxRPUwoNDE5''@;'; put 'put ''NjEpLGo9TCgyNDU3MikscmU9TCg3NjU3MSksYWU9TCgxMDAxNyksWT1CKCIiLmVuZHNXaXRoKSxXPUIoIiIuc2xpY2UpLE49TWF0aC5taW4sdGU9cmUoImVuZHNXaXRoIik7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6ISghYWUmJiF0ZSYmKEo9RShTdHJpbmcucHJvdG90''@;'; put 'put ''eXBlLCJlbmRzV2l0aCIpLEomJiFKLndyaXRhYmxlKXx8dGUpfSx7ZW5kc1dpdGg6ZnVuY3Rpb24oc2Upe3ZhciBvZT1VKGoodGhpcykpO1Eoc2UpO3ZhciBjZT1hcmd1bWVudHMubGVuZ3RoPjE/YXJndW1lbnRzWzFdOnZvaWQgMCxkZT1vZS5sZW5ndGgsdmU9dm9pZCAwPT09Y2U/ZGU6TihF''@;'; put 'put ''ZShjZSksZGUpLEFlPVUoc2UpO3JldHVybiBZP1kob2UsQWUsdmUpOlcob2UsdmUtQWUubGVuZ3RoLHZlKT09PUFlfX0pfSw0NTEzNTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNDE5NjEpLEVlPUwoMjQ1NzIpLFU9TCg5MjEpLFE9TCg3''@;'; put 'put ''NjU3MSksaj1CKCIiLmluZGV4T2YpO21lKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOiFRKCJpbmNsdWRlcyIpfSx7aW5jbHVkZXM6ZnVuY3Rpb24oYWUpe3JldHVybiEhfmooVShFZSh0aGlzKSksVShFKGFlKSksYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lk''@;'; put 'put ''IDApfX0pfSw1Mzk1MDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoNzUwNTgpLmNoYXJBdCxCPUwoOTIxKSxFPUwoNzI3KSxFZT1MKDM4NDk3KSxVPSJTdHJpbmcgSXRlcmF0b3IiLFE9RS5zZXQsaj1FLmdldHRlckZvcihVKTtFZShTdHJpbmcsIlN0cmluZyIsZnVuY3Rpb24o''@;'; put 'put ''cmUpe1EodGhpcyx7dHlwZTpVLHN0cmluZzpCKHJlKSxpbmRleDowfSl9LGZ1bmN0aW9uKCl7dmFyIE4sYWU9aih0aGlzKSxZPWFlLnN0cmluZyxXPWFlLmluZGV4O3JldHVybiBXPj1ZLmxlbmd0aD97dmFsdWU6dm9pZCAwLGRvbmU6ITB9OihOPW1lKFksVyksYWUuaW5kZXgrPU4ubGVuZ3Ro''@;'; put 'put ''LHt2YWx1ZTpOLGRvbmU6ITF9KX0pfSw0OTI5NTooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg5NTExMCk7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxmb3JjZWQ6TCg5NzgxOCkoImxpbmsiKX0se2xpbms6ZnVuY3Rpb24oVSl7cmV0dXJuIEIodGhp''@;'; put 'put ''cywiYSIsImhyZWYiLFUpfX0pfSwyNzYyOihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgzNTYyKSxCPUwoMjI4MTQpLEU9TCg1ODY0NyksRWU9TCg2NTMxNiksVT1MKDkyMSksUT1MKDI0NTcyKSxqPUwoMjA5NDgpLHJlPUwoNjE2NzYpLGFlPUwoNTgxMjYpO0IoIm1hdGNoIixm''@;'; put 'put ''dW5jdGlvbihZLFcsTil7cmV0dXJuW2Z1bmN0aW9uKEspe3ZhciBKPVEodGhpcyksc2U9bnVsbD09Sz92b2lkIDA6aihLLFkpO3JldHVybiBzZT9tZShzZSxLLEopOm5ldyBSZWdFeHAoSylbWV0oVShKKSl9LGZ1bmN0aW9uKHRlKXt2YXIgSz1FKHRoaXMpLEo9VSh0ZSksc2U9TihXLEssSik7''@;'; put 'put ''aWYoc2UuZG9uZSlyZXR1cm4gc2UudmFsdWU7aWYoIUsuZ2xvYmFsKXJldHVybiBhZShLLEopO3ZhciBvZT1LLnVuaWNvZGU7Sy5sYXN0SW5kZXg9MDtmb3IodmFyIHZlLGNlPVtdLGRlPTA7bnVsbCE9PSh2ZT1hZShLLEopKTspe3ZhciBBZT1VKHZlWzBdKTtjZVtkZV09QWUsIiI9PT1BZSYm''@;'; put 'put ''KEsubGFzdEluZGV4PXJlKEosRWUoSy5sYXN0SW5kZXgpLG9lKSksZGUrK31yZXR1cm4gMD09PWRlP251bGw6Y2V9XX0pfSw3ODI0NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCgyMTI4NSkuc3RhcnQ7bWUoe3RhcmdldDoiU3RyaW5nIixwcm90bzohMCxm''@;'; put 'put ''b3JjZWQ6TCg3MjIxMCl9LHtwYWRTdGFydDpmdW5jdGlvbihVKXtyZXR1cm4gQih0aGlzLFUsYXJndW1lbnRzLmxlbmd0aD4xP2FyZ3VtZW50c1sxXTp2b2lkIDApfX0pfSwxMDQxNDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoMTEzMDYpLEI9TCgzNTYyKSxFPUwoNjYxMyks''@;'; put 'put ''RWU9TCgyMjgxNCksVT1MKDIzNTIzKSxRPUwoNTg2NDcpLGo9TCgxMjAxNCkscmU9TCg0MDcwMiksYWU9TCg2NTMxNiksWT1MKDkyMSksVz1MKDI0NTcyKSxOPUwoNjE2NzYpLHRlPUwoMjA5NDgpLEs9TCg2MzM4MiksSj1MKDU4MTI2KSxvZT1MKDI1NDYpKCJyZXBsYWNlIiksY2U9TWF0aC5t''@;'; put 'put ''YXgsZGU9TWF0aC5taW4sdmU9RShbXS5jb25jYXQpLEFlPUUoW10ucHVzaCksa2U9RSgiIi5pbmRleE9mKSxTZT1FKCIiLnNsaWNlKSxJZT1mdW5jdGlvbihPKXtyZXR1cm4gdm9pZCAwPT09Tz9POlN0cmluZyhPKX0sVGU9IiQwIj09PSJhIi5yZXBsYWNlKC8uLywiJDAiKSxNZT0hIS8uL1tv''@;'; put 'put ''ZV0mJiIiPT09Ly4vW29lXSgiYSIsIiQwIik7RWUoInJlcGxhY2UiLGZ1bmN0aW9uKE8seixlZSl7dmFyIG5lPU1lPyIkIjoiJDAiO3JldHVybltmdW5jdGlvbihQLFYpe3ZhciBUPVcodGhpcyksUz1udWxsPT1QP3ZvaWQgMDp0ZShQLG9lKTtyZXR1cm4gUz9CKFMsUCxULFYpOkIoeixZKFQp''@;'; put 'put ''LFAsVil9LGZ1bmN0aW9uKHgsUCl7dmFyIFY9USh0aGlzKSxUPVkoeCk7aWYoInN0cmluZyI9PXR5cGVvZiBQJiYtMT09PWtlKFAsbmUpJiYtMT09PWtlKFAsIiQ8Iikpe3ZhciBTPWVlKHosVixULFApO2lmKFMuZG9uZSlyZXR1cm4gUy52YWx1ZX12YXIgRj1qKFApO0Z8fChQPVkoUCkpO3Zh''@;'; put 'put ''ciB5ZT1WLmdsb2JhbDtpZih5ZSl7dmFyIENlPVYudW5pY29kZTtWLmxhc3RJbmRleD0wfWZvcih2YXIgRGU9W107Oyl7dmFyIFBlPUooVixUKTtpZihudWxsPT09UGV8fChBZShEZSxQZSksIXllKSlicmVhazsiIj09PVkoUGVbMF0pJiYoVi5sYXN0SW5kZXg9TihULGFlKFYubGFzdEluZGV4''@;'; put 'put ''KSxDZSkpfWZvcih2YXIgJGU9IiIsZ3Q9MCx3dD0wO3d0PERlLmxlbmd0aDt3dCsrKXtmb3IodmFyIG10PVkoKFBlPURlW3d0XSlbMF0pLHZ0PWNlKGRlKHJlKFBlLmluZGV4KSxULmxlbmd0aCksMCksQXQ9W10saHQ9MTtodDxQZS5sZW5ndGg7aHQrKylBZShBdCxJZShQZVtodF0pKTt2YXIg''@;'; put 'put ''QnQ9UGUuZ3JvdXBzO2lmKEYpe3ZhciBvbj12ZShbbXRdLEF0LHZ0LFQpO3ZvaWQgMCE9PUJ0JiZBZShvbixCdCk7dmFyIF90PVkobWUoUCx2b2lkIDAsb24pKX1lbHNlIF90PUsobXQsVCx2dCxBdCxCdCxQKTt2dD49Z3QmJigkZSs9U2UoVCxndCx2dCkrX3QsZ3Q9dnQrbXQubGVuZ3RoKX1y''@;'; put 'put ''ZXR1cm4gJGUrU2UoVCxndCl9XX0sISFVKGZ1bmN0aW9uKCl7dmFyIE89Ly4vO3JldHVybiBPLmV4ZWM9ZnVuY3Rpb24oKXt2YXIgej1bXTtyZXR1cm4gei5ncm91cHM9e2E6IjcifSx6fSwiNyIhPT0iIi5yZXBsYWNlKE8sIiQ8YT4iKX0pfHwhVGV8fE1lKX0sNzc5NDooWGUsSmUsTCk9Pnsi''@;'; put 'put ''dXNlIHN0cmljdCI7dmFyIG1lPUwoMzU2MiksQj1MKDIyODE0KSxFPUwoNTg2NDcpLEVlPUwoMjQ1NzIpLFU9TCg1NTg4MSksUT1MKDkyMSksaj1MKDIwOTQ4KSxyZT1MKDU4MTI2KTtCKCJzZWFyY2giLGZ1bmN0aW9uKGFlLFksVyl7cmV0dXJuW2Z1bmN0aW9uKHRlKXt2YXIgSz1FZSh0aGlz''@;'; put 'put ''KSxKPW51bGw9PXRlP3ZvaWQgMDpqKHRlLGFlKTtyZXR1cm4gSj9tZShKLHRlLEspOm5ldyBSZWdFeHAodGUpW2FlXShRKEspKX0sZnVuY3Rpb24oTil7dmFyIHRlPUUodGhpcyksSz1RKE4pLEo9VyhZLHRlLEspO2lmKEouZG9uZSlyZXR1cm4gSi52YWx1ZTt2YXIgc2U9dGUubGFzdEluZGV4''@;'; put 'put ''O1Uoc2UsMCl8fCh0ZS5sYXN0SW5kZXg9MCk7dmFyIG9lPXJlKHRlLEspO3JldHVybiBVKHRlLmxhc3RJbmRleCxzZSl8fCh0ZS5sYXN0SW5kZXg9c2UpLG51bGw9PT1vZT8tMTpvZS5pbmRleH1dfSl9LDY0NDE4OihYZSxKZSxMKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgbWU9TCgxMTMwNiksQj1M''@;'; put 'put ''KDM1NjIpLEU9TCg2NjEzKSxFZT1MKDIyODE0KSxVPUwoNDE4MDQpLFE9TCg1ODY0Nyksaj1MKDI0NTcyKSxyZT1MKDkxMyksYWU9TCg2MTY3NiksWT1MKDY1MzE2KSxXPUwoOTIxKSxOPUwoMjA5NDgpLHRlPUwoMTA4NzIpLEs9TCg1ODEyNiksSj1MKDIyMjM0KSxzZT1MKDk3MTg5KSxvZT1M''@;'; put 'put ''KDIzNTIzKSxjZT1zZS5VTlNVUFBPUlRFRF9ZLGRlPTQyOTQ5NjcyOTUsdmU9TWF0aC5taW4sQWU9W10ucHVzaCxrZT1FKC8uLy5leGVjKSxTZT1FKEFlKSxJZT1FKCIiLnNsaWNlKTtFZSgic3BsaXQiLGZ1bmN0aW9uKE1lLGhlLE8pe3ZhciB6O3JldHVybiB6PSJjIj09ImFiYmMiLnNwbGl0''@;'; put 'put ''KC8oYikqLylbMV18fDQhPSJ0ZXN0Ii5zcGxpdCgvKD86KS8sLTEpLmxlbmd0aHx8MiE9ImFiIi5zcGxpdCgvKD86YWIpKi8pLmxlbmd0aHx8NCE9Ii4iLnNwbGl0KC8oLj8pKC4/KS8pLmxlbmd0aHx8Ii4iLnNwbGl0KC8oKSgpLykubGVuZ3RoPjF8fCIiLnNwbGl0KC8uPy8pLmxlbmd0aD9m''@;'; put 'put ''dW5jdGlvbihlZSxuZSl7dmFyIHg9VyhqKHRoaXMpKSxQPXZvaWQgMD09PW5lP2RlOm5lPj4+MDtpZigwPT09UClyZXR1cm5bXTtpZih2b2lkIDA9PT1lZSlyZXR1cm5beF07aWYoIVUoZWUpKXJldHVybiBCKGhlLHgsZWUsUCk7Zm9yKHZhciB5ZSxDZSxEZSxWPVtdLFM9MCxGPW5ldyBSZWdF''@;'; put 'put ''eHAoZWUuc291cmNlLChlZS5pZ25vcmVDYXNlPyJpIjoiIikrKGVlLm11bHRpbGluZT8ibSI6IiIpKyhlZS51bmljb2RlPyJ1IjoiIikrKGVlLnN0aWNreT8ieSI6IiIpKyJnIik7KHllPUIoSixGLHgpKSYmISgoQ2U9Ri5sYXN0SW5kZXgpPlMmJihTZShWLEllKHgsUyx5ZS5pbmRleCkpLHll''@;'; put 'put ''Lmxlbmd0aD4xJiZ5ZS5pbmRleDx4Lmxlbmd0aCYmbWUoQWUsVix0ZSh5ZSwxKSksRGU9eWVbMF0ubGVuZ3RoLFM9Q2UsVi5sZW5ndGg+PVApKTspRi5sYXN0SW5kZXg9PT15ZS5pbmRleCYmRi5sYXN0SW5kZXgrKztyZXR1cm4gUz09PXgubGVuZ3RoPyhEZXx8IWtlKEYsIiIpKSYmU2UoViwi''@;'; put 'put ''Iik6U2UoVixJZSh4LFMpKSxWLmxlbmd0aD5QP3RlKFYsMCxQKTpWfToiMCIuc3BsaXQodm9pZCAwLDApLmxlbmd0aD9mdW5jdGlvbihlZSxuZSl7cmV0dXJuIHZvaWQgMD09PWVlJiYwPT09bmU/W106QihoZSx0aGlzLGVlLG5lKX06aGUsW2Z1bmN0aW9uKG5lLHgpe3ZhciBQPWoodGhpcyks''@;'; put 'put ''Vj1udWxsPT1uZT92b2lkIDA6TihuZSxNZSk7cmV0dXJuIFY/QihWLG5lLFAseCk6Qih6LFcoUCksbmUseCl9LGZ1bmN0aW9uKGVlLG5lKXt2YXIgeD1RKHRoaXMpLFA9VyhlZSksVj1PKHoseCxQLG5lLHohPT1oZSk7aWYoVi5kb25lKXJldHVybiBWLnZhbHVlO3ZhciBUPXJlKHgsUmVnRXhw''@;'; put 'put ''KSxTPXgudW5pY29kZSx5ZT1uZXcgVChjZT8iXig/OiIreC5zb3VyY2UrIikiOngsKHguaWdub3JlQ2FzZT8iaSI6IiIpKyh4Lm11bHRpbGluZT8ibSI6IiIpKyh4LnVuaWNvZGU/InUiOiIiKSsoY2U/ImciOiJ5IikpLENlPXZvaWQgMD09PW5lP2RlOm5lPj4+MDtpZigwPT09Q2UpcmV0dXJu''@;'; put 'put ''W107aWYoMD09PVAubGVuZ3RoKXJldHVybiBudWxsPT09Syh5ZSxQKT9bUF06W107Zm9yKHZhciBEZT0wLFBlPTAsUWU9W107UGU8UC5sZW5ndGg7KXt5ZS5sYXN0SW5kZXg9Y2U/MDpQZTt2YXIgZ3QsJGU9Syh5ZSxjZT9JZShQLFBlKTpQKTtpZihudWxsPT09JGV8fChndD12ZShZKHllLmxh''@;'; put 'put ''c3RJbmRleCsoY2U/UGU6MCkpLFAubGVuZ3RoKSk9PT1EZSlQZT1hZShQLFBlLFMpO2Vsc2V7aWYoU2UoUWUsSWUoUCxEZSxQZSkpLFFlLmxlbmd0aD09PUNlKXJldHVybiBRZTtmb3IodmFyIHd0PTE7d3Q8PSRlLmxlbmd0aC0xO3d0KyspaWYoU2UoUWUsJGVbd3RdKSxRZS5sZW5ndGg9PT1D''@;'; put 'put ''ZSlyZXR1cm4gUWU7UGU9RGU9Z3R9fXJldHVybiBTZShRZSxJZShQLERlKSksUWV9XX0sISFvZShmdW5jdGlvbigpe3ZhciBNZT0vKD86KS8saGU9TWUuZXhlYztNZS5leGVjPWZ1bmN0aW9uKCl7cmV0dXJuIGhlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07dmFyIE89ImFiIi5zcGxpdChNZSk7''@;'; put 'put ''cmV0dXJuIDIhPT1PLmxlbmd0aHx8ImEiIT09T1swXXx8ImIiIT09T1sxXX0pLGNlKX0sODU3MzU6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBKLG1lPUwoODU2NDgpLEI9TCg2NjEzKSxFPUwoNDc5ODcpLmYsRWU9TCg2NTMxNiksVT1MKDkyMSksUT1MKDQxOTYxKSxqPUwoMjQ1NzIp''@;'; put 'put ''LHJlPUwoNzY1NzEpLGFlPUwoMTAwMTcpLFk9QigiIi5zdGFydHNXaXRoKSxXPUIoIiIuc2xpY2UpLE49TWF0aC5taW4sdGU9cmUoInN0YXJ0c1dpdGgiKTttZSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDohKCFhZSYmIXRlJiYoSj1FKFN0cmluZy5wcm90b3R5cGUsInN0YXJ0''@;'; put 'put ''c1dpdGgiKSxKJiYhSi53cml0YWJsZSl8fHRlKX0se3N0YXJ0c1dpdGg6ZnVuY3Rpb24oc2Upe3ZhciBvZT1VKGoodGhpcykpO1Eoc2UpO3ZhciBjZT1FZShOKGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwLG9lLmxlbmd0aCkpLGRlPVUoc2UpO3JldHVybiBZP1kob2Us''@;'; put 'put ''ZGUsY2UpOlcob2UsY2UsY2UrZGUubGVuZ3RoKT09PWRlfX0pfSw4MzYyMDooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg5MzE2NikudHJpbTttZSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpMKDQ1NzEyKSgidHJpbSIpfSx7dHJpbTpmdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiBCKHRoaXMpfX0pfSw0NDY0NjooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIG1lPUwoODU2NDgpLEI9TCg3MDcwNSksRT1MKDM1NjIpLEVlPUwoNjYxMyksVT1MKDEwMDE3KSxRPUwoODU2MjQpLGo9TCg4Mjc3MCkscmU9TCgyMzUyMyksYWU9TCg0ODgxMSksWT1M''@;'; put 'put ''KDM3NDc0KSxXPUwoNTg2NDcpLE49TCg1MDMyNyksdGU9TCg4NDA5NCksSz1MKDkyMSksSj1MKDczOTIwKSxzZT1MKDc0NDEwKSxvZT1MKDE0NTQ1KSxjZT1MKDc1NDMxKSxkZT1MKDM1ODA4KSx2ZT1MKDU1MzQpLEFlPUwoNDc5ODcpLGtlPUwoNTExODMpLFNlPUwoNzczMjgpLEllPUwoNDY5''@;'; put 'put ''MDEpLFRlPUwoMjU2NjYpLE1lPUwoNjg4MzUpLGhlPUwoMjcyMzApLE89TCgxOTkwOSksej1MKDUyODEwKSxlZT1MKDI1NDYpLG5lPUwoMjgxMSkseD1MKDM5MjM1KSxQPUwoMTQ0OTgpLFY9TCg1NTk2OCksVD1MKDcyNyksUz1MKDk1NjY5KS5mb3JFYWNoLEY9aGUoImhpZGRlbiIpLHllPSJT''@;'; put 'put ''eW1ib2wiLENlPSJwcm90b3R5cGUiLERlPVQuc2V0LFBlPVQuZ2V0dGVyRm9yKHllKSxRZT1PYmplY3RbQ2VdLCRlPUIuU3ltYm9sLGd0PSRlJiYkZVtDZV0sd3Q9Qi5UeXBlRXJyb3IsbXQ9Qi5RT2JqZWN0LHZ0PUFlLmYsQXQ9a2UuZixodD1kZS5mLEJ0PUllLmYsb249RWUoW10ucHVzaCks''@;'; put 'put ''X3Q9TWUoInN5bWJvbHMiKSx0dD1NZSgib3Atc3ltYm9scyIpLGV0PU1lKCJ3a3MiKSxsdD0hbXR8fCFtdFtDZV18fCFtdFtDZV0uZmluZENoaWxkLEx0PVEmJnJlKGZ1bmN0aW9uKCl7cmV0dXJuIDchPXNlKEF0KHt9LCJhIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEF0KHRoaXMsImEiLHt2''@;'; put 'put ''YWx1ZTo3fSkuYX19KSkuYX0pP2Z1bmN0aW9uKGduLGRuLHluKXt2YXIgbG49dnQoUWUsZG4pO2xuJiZkZWxldGUgUWVbZG5dLEF0KGduLGRuLHluKSxsbiYmZ24hPT1RZSYmQXQoUWUsZG4sbG4pfTpBdCxDdD1mdW5jdGlvbihnbixkbil7dmFyIHluPV90W2duXT1zZShndCk7cmV0dXJuIERl''@;'; put 'put ''KHluLHt0eXBlOnllLHRhZzpnbixkZXNjcmlwdGlvbjpkbn0pLFF8fCh5bi5kZXNjcmlwdGlvbj1kbikseW59LGZ0PWZ1bmN0aW9uKGRuLHluLGxuKXtkbj09PVFlJiZmdCh0dCx5bixsbiksVyhkbik7dmFyIE5uPXRlKHluKTtyZXR1cm4gVyhsbiksYWUoX3QsTm4pPyhsbi5lbnVtZXJhYmxl''@;'; put 'put ''PyhhZShkbixGKSYmZG5bRl1bTm5dJiYoZG5bRl1bTm5dPSExKSxsbj1zZShsbix7ZW51bWVyYWJsZTpKKDAsITEpfSkpOihhZShkbixGKXx8QXQoZG4sRixKKDEse30pKSxkbltGXVtObl09ITApLEx0KGRuLE5uLGxuKSk6QXQoZG4sTm4sbG4pfSxIdD1mdW5jdGlvbihkbix5bil7Vyhkbik7''@;'; put 'put ''dmFyIGxuPU4oeW4pLE5uPW9lKGxuKS5jb25jYXQoSnQobG4pKTtyZXR1cm4gUyhObixmdW5jdGlvbihibil7KCFRfHxFKFVlLGxuLGJuKSkmJmZ0KGRuLGJuLGxuW2JuXSl9KSxkbn0sVWU9ZnVuY3Rpb24oZG4pe3ZhciB5bj10ZShkbiksbG49RShCdCx0aGlzLHluKTtyZXR1cm4hKHRoaXM9''@;'; put 'put ''PT1RZSYmYWUoX3QseW4pJiYhYWUodHQseW4pKSYmKCEobG58fCFhZSh0aGlzLHluKXx8IWFlKF90LHluKXx8YWUodGhpcyxGKSYmdGhpc1tGXVt5bl0pfHxsbil9LHl0PWZ1bmN0aW9uKGRuLHluKXt2YXIgbG49TihkbiksTm49dGUoeW4pO2lmKGxuIT09UWV8fCFhZShfdCxObil8fGFlKHR0''@;'; put 'put ''LE5uKSl7dmFyIGJuPXZ0KGxuLE5uKTtyZXR1cm4gYm4mJmFlKF90LE5uKSYmIShhZShsbixGKSYmbG5bRl1bTm5dKSYmKGJuLmVudW1lcmFibGU9ITApLGJufX0sanQ9ZnVuY3Rpb24oZG4pe3ZhciB5bj1odChOKGRuKSksbG49W107cmV0dXJuIFMoeW4sZnVuY3Rpb24oTm4peyFhZShfdCxO''@;'; put 'put ''bikmJiFhZShPLE5uKSYmb24obG4sTm4pfSksbG59LEp0PWZ1bmN0aW9uKGduKXt2YXIgZG49Z249PT1RZSx5bj1odChkbj90dDpOKGduKSksbG49W107cmV0dXJuIFMoeW4sZnVuY3Rpb24oTm4pe2FlKF90LE5uKSYmKCFkbnx8YWUoUWUsTm4pKSYmb24obG4sX3RbTm5dKX0pLGxufTtqfHwo''@;'; put 'put ''VGUoZ3Q9KCRlPWZ1bmN0aW9uKCl7aWYoWShndCx0aGlzKSl0aHJvdyB3dCgiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yIik7dmFyIGRuPWFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9LKGFyZ3VtZW50c1swXSk6dm9pZCAwLHluPXooZG4pLGxuPWZ1bmN0aW9u''@;'; put 'put ''KE5uKXt0aGlzPT09UWUmJkUobG4sdHQsTm4pLGFlKHRoaXMsRikmJmFlKHRoaXNbRl0seW4pJiYodGhpc1tGXVt5bl09ITEpLEx0KHRoaXMseW4sSigxLE5uKSl9O3JldHVybiBRJiZsdCYmTHQoUWUseW4se2NvbmZpZ3VyYWJsZTohMCxzZXQ6bG59KSxDdCh5bixkbil9KVtDZV0sInRvU3Ry''@;'; put 'put ''aW5nIixmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzKS50YWd9KSxUZSgkZSwid2l0aG91dFNldHRlciIsZnVuY3Rpb24oZ24pe3JldHVybiBDdCh6KGduKSxnbil9KSxJZS5mPVVlLGtlLmY9ZnQsU2UuZj1IdCxBZS5mPXl0LGNlLmY9ZGUuZj1qdCx2ZS5mPUp0LG5lLmY9ZnVuY3Rpb24oZ24p''@;'; put 'put ''e3JldHVybiBDdChlZShnbiksZ24pfSxRJiYoQXQoZ3QsImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzKS5kZXNjcmlwdGlvbn19KSxVfHxUZShRZSwicHJvcGVydHlJc0VudW1lcmFibGUiLFVlLHt1bnNhZmU6ITB9KSkpLG1lKHtn''@;'; put 'put ''bG9iYWw6ITAsY29uc3RydWN0b3I6ITAsd3JhcDohMCxmb3JjZWQ6IWosc2hhbTohan0se1N5bWJvbDokZX0pLFMob2UoZXQpLGZ1bmN0aW9uKGduKXt4KGduKX0pLG1lKHt0YXJnZXQ6eWUsc3RhdDohMCxmb3JjZWQ6IWp9LHt1c2VTZXR0ZXI6ZnVuY3Rpb24oKXtsdD0hMH0sdXNlU2ltcGxl''@;'; put 'put ''OmZ1bmN0aW9uKCl7bHQ9ITF9fSksbWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohaixzaGFtOiFRfSx7Y3JlYXRlOmZ1bmN0aW9uKGRuLHluKXtyZXR1cm4gdm9pZCAwPT09eW4/c2UoZG4pOkh0KHNlKGRuKSx5bil9LGRlZmluZVByb3BlcnR5OmZ0LGRlZmluZVByb3BlcnRp''@;'; put 'put ''ZXM6SHQsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnl0fSksbWUoe3RhcmdldDoiT2JqZWN0IixzdGF0OiEwLGZvcmNlZDohan0se2dldE93blByb3BlcnR5TmFtZXM6anR9KSxQKCksVigkZSx5ZSksT1tGXT0hMH0sODY0Mjc6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO3ZhciBtZT1MKDg1''@;'; put 'put ''NjQ4KSxCPUwoODU2MjQpLEU9TCg3MDcwNSksRWU9TCg2NjEzKSxVPUwoNDg4MTEpLFE9TCgxMjAxNCksaj1MKDM3NDc0KSxyZT1MKDkyMSksYWU9TCg1MTE4MykuZixZPUwoNzc1NDgpLFc9RS5TeW1ib2wsTj1XJiZXLnByb3RvdHlwZTtpZihCJiZRKFcpJiYoISgiZGVzY3JpcHRpb24iaW4g''@;'; put 'put ''Til8fHZvaWQgMCE9PVcoKS5kZXNjcmlwdGlvbikpe3ZhciB0ZT17fSxLPWZ1bmN0aW9uKCl7dmFyIGtlPWFyZ3VtZW50cy5sZW5ndGg8MXx8dm9pZCAwPT09YXJndW1lbnRzWzBdP3ZvaWQgMDpyZShhcmd1bWVudHNbMF0pLFNlPWooTix0aGlzKT9uZXcgVyhrZSk6dm9pZCAwPT09a2U/Vygp''@;'; put 'put ''Olcoa2UpO3JldHVybiIiPT09a2UmJih0ZVtTZV09ITApLFNlfTtZKEssVyksSy5wcm90b3R5cGU9TixOLmNvbnN0cnVjdG9yPUs7dmFyIEo9IlN5bWJvbCh0ZXN0KSI9PVN0cmluZyhXKCJ0ZXN0IikpLHNlPUVlKE4udG9TdHJpbmcpLG9lPUVlKE4udmFsdWVPZiksY2U9L15TeW1ib2xcKCgu''@;'; put 'put ''KilcKVteKV0rJC8sZGU9RWUoIiIucmVwbGFjZSksdmU9RWUoIiIuc2xpY2UpO2FlKE4sImRlc2NyaXB0aW9uIix7Y29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciBrZT1vZSh0aGlzKSxTZT1zZShrZSk7aWYoVSh0ZSxrZSkpcmV0dXJuIiI7dmFyIEllPUo/dmUoU2UsNywtMSk6''@;'; put 'put ''ZGUoU2UsY2UsIiQxIik7cmV0dXJuIiI9PT1JZT92b2lkIDA6SWV9fSksbWUoe2dsb2JhbDohMCxjb25zdHJ1Y3RvcjohMCxmb3JjZWQ6ITB9LHtTeW1ib2w6S30pfX0sNzg3OTA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg0NjY5MyksRT1MKDQ4ODExKSxFZT1MKDkyMSksVT1M''@;'; put 'put ''KDY4ODM1KSxRPUwoMzk0NjYpLGo9VSgic3RyaW5nLXRvLXN5bWJvbC1yZWdpc3RyeSIpLHJlPVUoInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnkiKTttZSh7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsZm9yY2VkOiFRfSx7Zm9yOmZ1bmN0aW9uKGFlKXt2YXIgWT1FZShhZSk7aWYoRShqLFkp''@;'; put 'put ''KXJldHVybiBqW1ldO3ZhciBXPUIoIlN5bWJvbCIpKFkpO3JldHVybiBqW1ldPVcscmVbV109WSxXfX0pfSwzMzU4MzooWGUsSmUsTCk9PntMKDM5MjM1KSgiaXRlcmF0b3IiKX0sMjY1NzooWGUsSmUsTCk9PntMKDQ0NjQ2KSxMKDc4NzkwKSxMKDI4NTQwKSxMKDEzMDA2KSxMKDYzMTk4KX0s''@;'; put 'put ''Mjg1NDA6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg0ODgxMSksRT1MKDY5NzUpLEVlPUwoOTQ2NzYpLFU9TCg2ODgzNSksUT1MKDM5NDY2KSxqPVUoInN5bWJvbC10by1zdHJpbmctcmVnaXN0cnkiKTttZSh7dGFyZ2V0OiJTeW1ib2wiLHN0YXQ6ITAsZm9yY2VkOiFRfSx7a2V5''@;'; put 'put ''Rm9yOmZ1bmN0aW9uKGFlKXtpZighRShhZSkpdGhyb3cgVHlwZUVycm9yKEVlKGFlKSsiIGlzIG5vdCBhIHN5bWJvbCIpO2lmKEIoaixhZSkpcmV0dXJuIGpbYWVdfX0pfSwxOTMwODooWGUsSmUsTCk9PnsidXNlIHN0cmljdCI7dmFyIE4sbWU9TCg3MDcwNSksQj1MKDY2MTMpLEU9TCg3NDA2''@;'; put 'put ''OSksRWU9TCg3MTgzMiksVT1MKDQ2ODU3KSxRPUwoNDI5NjkpLGo9TCg3MTQ5NikscmU9TCg1NTIxOCksYWU9TCg3MjcpLmVuZm9yY2UsWT1MKDgwODA2KSxXPSFtZS5BY3RpdmVYT2JqZWN0JiYiQWN0aXZlWE9iamVjdCJpbiBtZSx0ZT1mdW5jdGlvbih2ZSl7cmV0dXJuIGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIHZlKHRoaXMsYXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06dm9pZCAwKX19LEs9VSgiV2Vha01hcCIsdGUsUSk7aWYoWSYmVyl7Tj1RLmdldENvbnN0cnVjdG9yKHRlLCJXZWFrTWFwIiwhMCksRWUuZW5hYmxlKCk7dmFyIEo9Sy5wcm90b3R5cGUsc2U9QihKLmRlbGV0ZSks''@;'; put 'put ''b2U9QihKLmhhcyksY2U9QihKLmdldCksZGU9QihKLnNldCk7RShKLHtkZWxldGU6ZnVuY3Rpb24odmUpe2lmKGoodmUpJiYhcmUodmUpKXt2YXIgQWU9YWUodGhpcyk7cmV0dXJuIEFlLmZyb3plbnx8KEFlLmZyb3plbj1uZXcgTiksc2UodGhpcyx2ZSl8fEFlLmZyb3plbi5kZWxldGUodmUp''@;'; put 'put ''fXJldHVybiBzZSh0aGlzLHZlKX0saGFzOmZ1bmN0aW9uKEFlKXtpZihqKEFlKSYmIXJlKEFlKSl7dmFyIGtlPWFlKHRoaXMpO3JldHVybiBrZS5mcm96ZW58fChrZS5mcm96ZW49bmV3IE4pLG9lKHRoaXMsQWUpfHxrZS5mcm96ZW4uaGFzKEFlKX1yZXR1cm4gb2UodGhpcyxBZSl9LGdldDpm''@;'; put 'put ''dW5jdGlvbihBZSl7aWYoaihBZSkmJiFyZShBZSkpe3ZhciBrZT1hZSh0aGlzKTtyZXR1cm4ga2UuZnJvemVufHwoa2UuZnJvemVuPW5ldyBOKSxvZSh0aGlzLEFlKT9jZSh0aGlzLEFlKTprZS5mcm96ZW4uZ2V0KEFlKX1yZXR1cm4gY2UodGhpcyxBZSl9LHNldDpmdW5jdGlvbihBZSxrZSl7''@;'; put 'put ''aWYoaihBZSkmJiFyZShBZSkpe3ZhciBTZT1hZSh0aGlzKTtTZS5mcm96ZW58fChTZS5mcm96ZW49bmV3IE4pLG9lKHRoaXMsQWUpP2RlKHRoaXMsQWUsa2UpOlNlLmZyb3plbi5zZXQoQWUsa2UpfWVsc2UgZGUodGhpcyxBZSxrZSk7cmV0dXJuIHRoaXN9fSl9fSw2NTEyNTooWGUsSmUsTCk9''@;'; put 'put ''PntMKDE5MzA4KX0sOTgzNzM6KFhlLEplLEwpPT57InVzZSBzdHJpY3QiO0woNDY4NTcpKCJXZWFrU2V0IixmdW5jdGlvbihFKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRSh0aGlzLGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOnZvaWQgMCl9fSxMKDQyOTY5KSl9LDM4MTgzOihY''@;'; put 'put ''ZSxKZSxMKT0+e0woOTgzNzMpfSwyMjQ5NjooWGUsSmUsTCk9Pnt2YXIgbWU9TCg4NTY0OCksQj1MKDcwNzA1KSxFPUwoNTUyNjEpLmNsZWFyO21lKHtnbG9iYWw6ITAsYmluZDohMCxlbnVtZXJhYmxlOiEwLGZvcmNlZDpCLmNsZWFySW1tZWRpYXRlIT09RX0se2NsZWFySW1tZWRpYXRlOkV9''@;'; put 'put ''KX0sNTg1OTQ6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCgxOTIzMSksRT1MKDI5OTEwKSxFZT1MKDM3MzE5KSxVPUwoMTYwMTcpLFE9ZnVuY3Rpb24ocmUpe2lmKHJlJiZyZS5mb3JFYWNoIT09RWUpdHJ5e1UocmUsImZvckVhY2giLEVlKX1jYXRjaChhZSl7cmUuZm9yRWFjaD1F''@;'; put 'put ''ZX19O2Zvcih2YXIgaiBpbiBCKUJbal0mJlEobWVbal0mJm1lW2pdLnByb3RvdHlwZSk7UShFKX0sNTgyNzI6KFhlLEplLEwpPT57dmFyIG1lPUwoNzA3MDUpLEI9TCgxOTIzMSksRT1MKDI5OTEwKSxFZT1MKDU3OTQzKSxVPUwoMTYwMTcpLFE9TCgyNTQ2KSxqPVEoIml0ZXJhdG9yIikscmU9''@;'; put 'put ''USgidG9TdHJpbmdUYWciKSxhZT1FZS52YWx1ZXMsWT1mdW5jdGlvbihOLHRlKXtpZihOKXtpZihOW2pdIT09YWUpdHJ5e1UoTixqLGFlKX1jYXRjaChKKXtOW2pdPWFlfWlmKE5bcmVdfHxVKE4scmUsdGUpLEJbdGVdKWZvcih2YXIgSyBpbiBFZSlpZihOW0tdIT09RWVbS10pdHJ5e1UoTixL''@;'; put 'put ''LEVlW0tdKX1jYXRjaChKKXtOW0tdPUVlW0tdfX19O2Zvcih2YXIgVyBpbiBCKVkobWVbV10mJm1lW1ddLnByb3RvdHlwZSxXKTtZKEUsIkRPTVRva2VuTGlzdCIpfSw5MTk0NTooWGUsSmUsTCk9PntMKDIyNDk2KSxMKDM0NDQzKX0sMzQ0NDM6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgp''@;'; put 'put ''LEI9TCg3MDcwNSksRT1MKDU1MjYxKS5zZXQ7bWUoe2dsb2JhbDohMCxiaW5kOiEwLGVudW1lcmFibGU6ITAsZm9yY2VkOkIuc2V0SW1tZWRpYXRlIT09RX0se3NldEltbWVkaWF0ZTpFfSl9LDU2NjcwOihYZSxKZSxMKT0+e3ZhciBtZT1MKDg1NjQ4KSxCPUwoNzA3MDUpLEU9TCg5NTg5NSku''@;'; put 'put ''c2V0SW50ZXJ2YWw7bWUoe2dsb2JhbDohMCxiaW5kOiEwLGZvcmNlZDpCLnNldEludGVydmFsIT09RX0se3NldEludGVydmFsOkV9KX0sNTkxNzI6KFhlLEplLEwpPT57dmFyIG1lPUwoODU2NDgpLEI9TCg3MDcwNSksRT1MKDk1ODk1KS5zZXRUaW1lb3V0O21lKHtnbG9iYWw6ITAsYmluZDoh''@;'; put 'put ''MCxmb3JjZWQ6Qi5zZXRUaW1lb3V0IT09RX0se3NldFRpbWVvdXQ6RX0pfSw1ODMyNDooWGUsSmUsTCk9PntMKDU2NjcwKSxMKDU5MTcyKX0sNDY3MDA6KFhlLEplLEwpPT57dmFyIG1lPXsiLi9hZiI6MjcwODgsIi4vYWYuanMiOjI3MDg4LCIuL2FyIjoxNzAzOCwiLi9hci1keiI6NTI1MDIs''@;'; put 'put ''Ii4vYXItZHouanMiOjUyNTAyLCIuL2FyLWt3IjozMDEyOCwiLi9hci1rdy5qcyI6MzAxMjgsIi4vYXItbHkiOjg0NTE5LCIuL2FyLWx5LmpzIjo4NDUxOSwiLi9hci1tYSI6NjU0NDMsIi4vYXItbWEuanMiOjY1NDQzLCIuL2FyLXNhIjoxNzY0MiwiLi9hci1zYS5qcyI6MTc2NDIsIi4vYXIt''@;'; put 'put ''dG4iOjY4NTkyLCIuL2FyLXRuLmpzIjo2ODU5MiwiLi9hci5qcyI6MTcwMzgsIi4vYXoiOjUxMjEzLCIuL2F6LmpzIjo1MTIxMywiLi9iZSI6NjkxOTEsIi4vYmUuanMiOjY5MTkxLCIuL2JnIjo5MDMyMiwiLi9iZy5qcyI6OTAzMjIsIi4vYm0iOjI4MDQyLCIuL2JtLmpzIjoyODA0MiwiLi9i''@;'; put 'put ''biI6NTk2MjAsIi4vYm4tYmQiOjY1OTAzLCIuL2JuLWJkLmpzIjo2NTkwMywiLi9ibi5qcyI6NTk2MjAsIi4vYm8iOjY5NjQ1LCIuL2JvLmpzIjo2OTY0NSwiLi9iciI6NDUwMjAsIi4vYnIuanMiOjQ1MDIwLCIuL2JzIjo2NDc5MiwiLi9icy5qcyI6NjQ3OTIsIi4vY2EiOjQ3OTgwLCIuL2Nh''@;'; put 'put ''LmpzIjo0Nzk4MCwiLi9jcyI6NDczMjIsIi4vY3MuanMiOjQ3MzIyLCIuL2N2Ijo5MDM2NSwiLi9jdi5qcyI6OTAzNjUsIi4vY3kiOjMyMDkyLCIuL2N5LmpzIjozMjA5MiwiLi9kYSI6NzczODcsIi4vZGEuanMiOjc3Mzg3LCIuL2RlIjo1NDMwNywiLi9kZS1hdCI6Mjk0NTksIi4vZGUtYXQu''@;'; put 'put ''anMiOjI5NDU5LCIuL2RlLWNoIjo2NzI0MywiLi9kZS1jaC5qcyI6NjcyNDMsIi4vZGUuanMiOjU0MzA3LCIuL2R2IjozOTY1OSwiLi9kdi5qcyI6Mzk2NTksIi4vZWwiOjM0NjAsIi4vZWwuanMiOjM0NjAsIi4vZW4tYXUiOjk0MzY5LCIuL2VuLWF1LmpzIjo5NDM2OSwiLi9lbi1jYSI6NjA1''@;'; put 'put ''MzAsIi4vZW4tY2EuanMiOjYwNTMwLCIuL2VuLWdiIjo5OTk4LCIuL2VuLWdiLmpzIjo5OTk4LCIuL2VuLWllIjoxMzM5MSwiLi9lbi1pZS5qcyI6MTMzOTEsIi4vZW4taWwiOjc1NDE0LCIuL2VuLWlsLmpzIjo3NTQxNCwiLi9lbi1pbiI6MTk2MTUsIi4vZW4taW4uanMiOjE5NjE1LCIuL2Vu''@;'; put 'put ''LW56IjoyMTI0OCwiLi9lbi1uei5qcyI6MjEyNDgsIi4vZW4tc2ciOjEzNzY3LCIuL2VuLXNnLmpzIjoxMzc2NywiLi9lbyI6ODQ1MzAsIi4vZW8uanMiOjg0NTMwLCIuL2VzIjo4Njg2NiwiLi9lcy1kbyI6MTg5NDQsIi4vZXMtZG8uanMiOjE4OTQ0LCIuL2VzLW14IjoyOTExNiwiLi9lcy1t''@;'; put 'put ''eC5qcyI6MjkxMTYsIi4vZXMtdXMiOjgzNjA5LCIuL2VzLXVzLmpzIjo4MzYwOSwiLi9lcy5qcyI6ODY4NjYsIi4vZXQiOjk2NzI1LCIuL2V0LmpzIjo5NjcyNSwiLi9ldSI6Njc5MzEsIi4vZXUuanMiOjY3OTMxLCIuL2ZhIjo1NjQxNywiLi9mYS5qcyI6NTY0MTcsIi4vZmkiOjIwOTQ0LCIu''@;'; put 'put ''L2ZpLmpzIjoyMDk0NCwiLi9maWwiOjYxNzY2LCIuL2ZpbC5qcyI6NjE3NjYsIi4vZm8iOjk1ODY3LCIuL2ZvLmpzIjo5NTg2NywiLi9mciI6MTYzNiwiLi9mci1jYSI6MTY4NDgsIi4vZnItY2EuanMiOjE2ODQ4LCIuL2ZyLWNoIjo3Nzc3MywiLi9mci1jaC5qcyI6Nzc3NzMsIi4vZnIuanMi''@;'; put 'put ''OjE2MzYsIi4vZnkiOjE0OTQwLCIuL2Z5LmpzIjoxNDk0MCwiLi9nYSI6OTE0MDIsIi4vZ2EuanMiOjkxNDAyLCIuL2dkIjo0NjkyNCwiLi9nZC5qcyI6NDY5MjQsIi4vZ2wiOjE2Mzk4LCIuL2dsLmpzIjoxNjM5OCwiLi9nb20tZGV2YSI6NzI0NTcsIi4vZ29tLWRldmEuanMiOjcyNDU3LCIu''@;'; put 'put ''L2dvbS1sYXRuIjo1MjU0NSwiLi9nb20tbGF0bi5qcyI6NTI1NDUsIi4vZ3UiOjQyNjQxLCIuL2d1LmpzIjo0MjY0MSwiLi9oZSI6NzUzNiwiLi9oZS5qcyI6NzUzNiwiLi9oaSI6OTYzMzUsIi4vaGkuanMiOjk2MzM1LCIuL2hyIjo3NDU4LCIuL2hyLmpzIjo3NDU4LCIuL2h1Ijo1NjU0MCwi''@;'; put 'put ''Li9odS5qcyI6NTY1NDAsIi4vaHktYW0iOjY1MjgzLCIuL2h5LWFtLmpzIjo2NTI4MywiLi9pZCI6OTg3ODAsIi4vaWQuanMiOjk4NzgwLCIuL2lzIjoxNDIwNSwiLi9pcy5qcyI6MTQyMDUsIi4vaXQiOjM0MjExLCIuL2l0LWNoIjoyOTk4NSwiLi9pdC1jaC5qcyI6Mjk5ODUsIi4vaXQuanMi''@;'; put 'put ''OjM0MjExLCIuL2phIjozMTAwMywiLi9qYS5qcyI6MzEwMDMsIi4vanYiOjYwNDIwLCIuL2p2LmpzIjo2MDQyMCwiLi9rYSI6NDA4NTEsIi4va2EuanMiOjQwODUxLCIuL2trIjoxNjA3NCwiLi9ray5qcyI6MTYwNzQsIi4va20iOjUzMzQzLCIuL2ttLmpzIjo1MzM0MywiLi9rbiI6NDQ3OTks''@;'; put 'put ''Ii4va24uanMiOjQ0Nzk5LCIuL2tvIjoxMzU0OSwiLi9rby5qcyI6MTM1NDksIi4va3UiOjkxMDM3LCIuL2t1LmpzIjo5MTAzNywiLi9reSI6OTMxMjUsIi4va3kuanMiOjkzMTI1LCIuL2xiIjo2OTU4NiwiLi9sYi5qcyI6Njk1ODYsIi4vbG8iOjMyMzQ5LCIuL2xvLmpzIjozMjM0OSwiLi9s''@;'; put 'put ''dCI6OTI0MDAsIi4vbHQuanMiOjkyNDAwLCIuL2x2IjozOTk5MSwiLi9sdi5qcyI6Mzk5OTEsIi4vbWUiOjI4NDc3LCIuL21lLmpzIjoyODQ3NywiLi9taSI6NTUxMTgsIi4vbWkuanMiOjU1MTE4LCIuL21rIjoxNTk0MywiLi9tay5qcyI6MTU5NDMsIi4vbWwiOjEzODQ5LCIuL21sLmpzIjox''@;'; put 'put ''Mzg0OSwiLi9tbiI6MzE5NzcsIi4vbW4uanMiOjMxOTc3LCIuL21yIjo2NjE4NCwiLi9tci5qcyI6NjYxODQsIi4vbXMiOjcwNDg1LCIuL21zLW15Ijo2NDUyNCwiLi9tcy1teS5qcyI6NjQ1MjQsIi4vbXMuanMiOjcwNDg1LCIuL210IjozNjY4MSwiLi9tdC5qcyI6MzY2ODEsIi4vbXkiOjUy''@;'; put 'put ''MDI0LCIuL215LmpzIjo1MjAyNCwiLi9uYiI6NDI2ODgsIi4vbmIuanMiOjQyNjg4LCIuL25lIjo2ODkxNCwiLi9uZS5qcyI6Njg5MTQsIi4vbmwiOjExNzU4LCIuL25sLWJlIjo1MjI3MiwiLi9ubC1iZS5qcyI6NTIyNzIsIi4vbmwuanMiOjExNzU4LCIuL25uIjo0MTUxMCwiLi9ubi5qcyI6''@;'; put 'put ''NDE1MTAsIi4vb2MtbG5jIjo1Mjc5NywiLi9vYy1sbmMuanMiOjUyNzk3LCIuL3BhLWluIjozNzk0NCwiLi9wYS1pbi5qcyI6Mzc5NDQsIi4vcGwiOjE2MDUsIi4vcGwuanMiOjE2MDUsIi4vcHQiOjU0MjI1LCIuL3B0LWJyIjo3Mzg0MCwiLi9wdC1ici5qcyI6NzM4NDAsIi4vcHQuanMiOjU0''@;'; put 'put ''MjI1LCIuL3JvIjo0NTEyOCwiLi9yby5qcyI6NDUxMjgsIi4vcnUiOjM1MTI3LCIuL3J1LmpzIjozNTEyNywiLi9zZCI6MzI1MjUsIi4vc2QuanMiOjMyNTI1LCIuL3NlIjo1OTg5MywiLi9zZS5qcyI6NTk4OTMsIi4vc2kiOjMzMTIzLCIuL3NpLmpzIjozMzEyMywiLi9zayI6NTk2MzUsIi4v''@;'; put 'put ''c2suanMiOjU5NjM1LCIuL3NsIjo3ODEwNiwiLi9zbC5qcyI6NzgxMDYsIi4vc3EiOjg4Nzk5LCIuL3NxLmpzIjo4ODc5OSwiLi9zciI6OTc5NDksIi4vc3ItY3lybCI6NTI4NzIsIi4vc3ItY3lybC5qcyI6NTI4NzIsIi4vc3IuanMiOjk3OTQ5LCIuL3NzIjo4NjE2NywiLi9zcy5qcyI6ODYx''@;'; put 'put ''NjcsIi4vc3YiOjM5NzEzLCIuL3N2LmpzIjozOTcxMywiLi9zdyI6NDE5ODIsIi4vc3cuanMiOjQxOTgyLCIuL3RhIjoyMjczMiwiLi90YS5qcyI6MjI3MzIsIi4vdGUiOjQzNjM2LCIuL3RlLmpzIjo0MzYzNiwiLi90ZXQiOjIxMTUsIi4vdGV0LmpzIjoyMTE1LCIuL3RnIjo2OTgwMSwiLi90''@;'; put 'put ''Zy5qcyI6Njk4MDEsIi4vdGgiOjI4NjgsIi4vdGguanMiOjI4NjgsIi4vdGsiOjMxMzEwLCIuL3RrLmpzIjozMTMxMCwiLi90bC1waCI6MjIzNjAsIi4vdGwtcGguanMiOjIyMzYwLCIuL3RsaCI6NjY2NDUsIi4vdGxoLmpzIjo2NjY0NSwiLi90ciI6OTgzNzQsIi4vdHIuanMiOjk4Mzc0LCIu''@;'; put 'put ''L3R6bCI6MjU2LCIuL3R6bC5qcyI6MjU2LCIuL3R6bSI6NjE1OTUsIi4vdHptLWxhdG4iOjYxNjMxLCIuL3R6bS1sYXRuLmpzIjo2MTYzMSwiLi90em0uanMiOjYxNTk1LCIuL3VnLWNuIjo2MDUwLCIuL3VnLWNuLmpzIjo2MDUwLCIuL3VrIjo2NTYxMCwiLi91ay5qcyI6NjU2MTAsIi4vdXIi''@;'; put 'put ''Ojg2MDc3LCIuL3VyLmpzIjo4NjA3NywiLi91eiI6MjI4NjIsIi4vdXotbGF0biI6MTIyMDcsIi4vdXotbGF0bi5qcyI6MTIyMDcsIi4vdXouanMiOjIyODYyLCIuL3ZpIjo0ODA5MywiLi92aS5qcyI6NDgwOTMsIi4veC1wc2V1ZG8iOjI1NTkwLCIuL3gtcHNldWRvLmpzIjoyNTU5MCwiLi95''@;'; put 'put ''byI6OTA1OCwiLi95by5qcyI6OTA1OCwiLi96aC1jbiI6Nzc5MDgsIi4vemgtY24uanMiOjc3OTA4LCIuL3poLWhrIjo4ODY3LCIuL3poLWhrLmpzIjo4ODY3LCIuL3poLW1vIjozMTEzMywiLi96aC1tby5qcyI6MzExMzMsIi4vemgtdHciOjgzMjkxLCIuL3poLXR3LmpzIjo4MzI5MX07ZnVu''@;'; put 'put ''Y3Rpb24gQihFZSl7dmFyIFU9RShFZSk7cmV0dXJuIEwoVSl9ZnVuY3Rpb24gRShFZSl7aWYoIUwubyhtZSxFZSkpe3ZhciBVPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK0VlKyInIik7dGhyb3cgVS5jb2RlPSJNT0RVTEVfTk9UX0ZPVU5EIixVfXJldHVybiBtZVtFZV19Qi5r''@;'; put 'put ''ZXlzPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKG1lKX0sQi5yZXNvbHZlPUUsWGUuZXhwb3J0cz1CLEIuaWQ9NDY3MDB9LDc4NzczOigpPT57fSw4MDk1MDooKT0+e30sNDY2MDE6KCk9Pnt9LDg2MjM6KCk9Pnt9LDc3NDg6KCk9Pnt9LDg1NTY4OigpPT57fSwxOTUyNzooKT0+e30s''@;'; put 'put ''NjkzMzE6KCk9Pnt9LDU2NjE5OigpPT57fSw3NzEwODooKT0+e30sNTIzNjE6KCk9Pnt9LDk0NjE2OigpPT57fSwzNTE1OTooKT0+e30sNzU3MDE6KCk9Pnt9LDE3MTU2OlhlPT57ZnVuY3Rpb24gSmUobWUsQixFLEVlLFUsUSxqKXt0cnl7dmFyIHJlPW1lW1FdKGopLGFlPXJlLnZhbHVlfWNh''@;'; put 'put ''dGNoKFkpe3JldHVybiB2b2lkIEUoWSl9cmUuZG9uZT9CKGFlKTpQcm9taXNlLnJlc29sdmUoYWUpLnRoZW4oRWUsVSl9WGUuZXhwb3J0cz1mdW5jdGlvbiBMKG1lKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgQj10aGlzLEU9YXJndW1lbnRzO3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihF''@;'; put 'put ''ZSxVKXt2YXIgUT1tZS5hcHBseShCLEUpO2Z1bmN0aW9uIGooYWUpe0plKFEsRWUsVSxqLHJlLCJuZXh0IixhZSl9ZnVuY3Rpb24gcmUoYWUpe0plKFEsRWUsVSxqLHJlLCJ0aHJvdyIsYWUpfWoodm9pZCAwKX0pfX0sWGUuZXhwb3J0cy5fX2VzTW9kdWxlPSEwLFhlLmV4cG9ydHMuZGVmYXVs''@;'; put 'put ''dD1YZS5leHBvcnRzfSw0NDk0NjpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siYWVzLTEyOC1lY2IiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjowLCJtb2RlIjoiRUNCIiwidHlwZSI6ImJsb2NrIn0sImFlcy0xOTItZWNiIjp7ImNpcGhlciI6IkFF''@;'; put 'put ''UyIsImtleSI6MTkyLCJpdiI6MCwibW9kZSI6IkVDQiIsInR5cGUiOiJibG9jayJ9LCJhZXMtMjU2LWVjYiI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjAsIm1vZGUiOiJFQ0IiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jYmMiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgs''@;'; put 'put ''Iml2IjoxNiwibW9kZSI6IkNCQyIsInR5cGUiOiJibG9jayJ9LCJhZXMtMTkyLWNiYyI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjE5MiwiaXYiOjE2LCJtb2RlIjoiQ0JDIiwidHlwZSI6ImJsb2NrIn0sImFlcy0yNTYtY2JjIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1v''@;'; put 'put ''ZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMTI4Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzMTkyIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxv''@;'; put 'put ''Y2sifSwiYWVzMjU2Ijp7ImNpcGhlciI6IkFFUyIsImtleSI6MjU2LCJpdiI6MTYsIm1vZGUiOiJDQkMiLCJ0eXBlIjoiYmxvY2sifSwiYWVzLTEyOC1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1j''@;'; put 'put ''ZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1jZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNGQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmI4Ijp7ImNp''@;'; put 'put ''cGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkI4IiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjgiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQjgiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiOCI6eyJjaXBoZXIi''@;'; put 'put ''OiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0ZCOCIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jZmIxIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTI4LCJpdiI6MTYsIm1vZGUiOiJDRkIxIiwidHlwZSI6InN0cmVhbSJ9LCJhZXMtMTkyLWNmYjEiOnsiY2lwaGVyIjoiQUVT''@;'; put 'put ''Iiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6IkNGQjEiLCJ0eXBlIjoic3RyZWFtIn0sImFlcy0yNTYtY2ZiMSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjE2LCJtb2RlIjoiQ0ZCMSIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5''@;'; put 'put ''IjoxMjgsIml2IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1vZmIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2''@;'; put 'put ''IjoxNiwibW9kZSI6Ik9GQiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTE5Mi1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxOTIsIml2IjoxNiwibW9k''@;'; put 'put ''ZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTI1Ni1jdHIiOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoyNTYsIml2IjoxNiwibW9kZSI6IkNUUiIsInR5cGUiOiJzdHJlYW0ifSwiYWVzLTEyOC1nY20iOnsiY2lwaGVyIjoiQUVTIiwia2V5IjoxMjgsIml2IjoxMiwibW9kZSI6IkdDTSIs''@;'; put 'put ''InR5cGUiOiJhdXRoIn0sImFlcy0xOTItZ2NtIjp7ImNpcGhlciI6IkFFUyIsImtleSI6MTkyLCJpdiI6MTIsIm1vZGUiOiJHQ00iLCJ0eXBlIjoiYXV0aCJ9LCJhZXMtMjU2LWdjbSI6eyJjaXBoZXIiOiJBRVMiLCJrZXkiOjI1NiwiaXYiOjEyLCJtb2RlIjoiR0NNIiwidHlwZSI6ImF1dGgi''@;'; put 'put ''fX0nKX0sNzUyMDc6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCd7InNoYTIyNFdpdGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIzMDJkMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDQwNTAwMDQxYyJ9LCJSU0EtU0hB''@;'; put 'put ''MjI0Ijp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIzMDJkMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDQwNTAwMDQxYyJ9LCJzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiMzAzMTMwMGQwNjA5NjA4''@;'; put 'put ''NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjAifSwiUlNBLVNIQTI1NiI6eyJzaWduIjoiZWNkc2EvcnNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiMzAzMTMwMGQwNjA5NjA4NjQ4MDE2NTAzMDQwMjAxMDUwMDA0MjAifSwic2hhMzg0V2l0aFJTQUVuY3J5cHRpb24iOnsic2lnbiI6InJzYSIsImhh''@;'; put 'put ''c2giOiJzaGEzODQiLCJpZCI6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sIlJTQS1TSEEzODQiOnsic2lnbiI6ImVjZHNhL3JzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IjMwNDEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMjA1MDAwNDMwIn0sInNoYTUxMldp''@;'; put 'put ''dGhSU0FFbmNyeXB0aW9uIjp7InNpZ24iOiJyc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIzMDUxMzAwZDA2MDk2MDg2NDgwMTY1MDMwNDAyMDMwNTAwMDQ0MCJ9LCJSU0EtU0hBNTEyIjp7InNpZ24iOiJlY2RzYS9yc2EiLCJoYXNoIjoic2hhNTEyIiwiaWQiOiIzMDUxMzAwZDA2MDk2MDg2''@;'; put 'put ''NDgwMTY1MDMwNDAyMDMwNTAwMDQ0MCJ9LCJSU0EtU0hBMSI6eyJzaWduIjoicnNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMGUwMzAyMWEwNTAwMDQxNCJ9LCJlY2RzYS13aXRoLVNIQTEiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTEiLCJpZCI6IiJ9LCJzaGEy''@;'; put 'put ''NTYiOnsic2lnbiI6ImVjZHNhIiwiaGFzaCI6InNoYTI1NiIsImlkIjoiIn0sInNoYTIyNCI6eyJzaWduIjoiZWNkc2EiLCJoYXNoIjoic2hhMjI0IiwiaWQiOiIifSwic2hhMzg0Ijp7InNpZ24iOiJlY2RzYSIsImhhc2giOiJzaGEzODQiLCJpZCI6IiJ9LCJzaGE1MTIiOnsic2lnbiI6ImVj''@;'; put 'put ''ZHNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiIn0sIkRTQS1TSEEiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBLVNIQTEiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGExIiwiaWQiOiIifSwiRFNBIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMSIsImlkIjoi''@;'; put 'put ''In0sIkRTQS1XSVRILVNIQTIyNCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTIyNCIsImlkIjoiIn0sIkRTQS1TSEEyMjQiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyMjQiLCJpZCI6IiJ9LCJEU0EtV0lUSC1TSEEyNTYiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGEyNTYiLCJpZCI6''@;'; put 'put ''IiJ9LCJEU0EtU0hBMjU2Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMjU2IiwiaWQiOiIifSwiRFNBLVdJVEgtU0hBMzg0Ijp7InNpZ24iOiJkc2EiLCJoYXNoIjoic2hhMzg0IiwiaWQiOiIifSwiRFNBLVNIQTM4NCI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTM4NCIsImlkIjoiIn0s''@;'; put 'put ''IkRTQS1XSVRILVNIQTUxMiI6eyJzaWduIjoiZHNhIiwiaGFzaCI6InNoYTUxMiIsImlkIjoiIn0sIkRTQS1TSEE1MTIiOnsic2lnbiI6ImRzYSIsImhhc2giOiJzaGE1MTIiLCJpZCI6IiJ9LCJEU0EtUklQRU1EMTYwIjp7InNpZ24iOiJkc2EiLCJoYXNoIjoicm1kMTYwIiwiaWQiOiIifSwi''@;'; put 'put ''cmlwZW1kMTYwV2l0aFJTQSI6eyJzaWduIjoicnNhIiwiaGFzaCI6InJtZDE2MCIsImlkIjoiMzAyMTMwMDkwNjA1MmIyNDAzMDIwMTA1MDAwNDE0In0sIlJTQS1SSVBFTUQxNjAiOnsic2lnbiI6InJzYSIsImhhc2giOiJybWQxNjAiLCJpZCI6IjMwMjEzMDA5MDYwNTJiMjQwMzAyMDEwNTAw''@;'; put 'put ''MDQxNCJ9LCJtZDVXaXRoUlNBRW5jcnlwdGlvbiI6eyJzaWduIjoicnNhIiwiaGFzaCI6Im1kNSIsImlkIjoiMzAyMDMwMGMwNjA4MmE4NjQ4ODZmNzBkMDIwNTA1MDAwNDEwIn0sIlJTQS1NRDUiOnsic2lnbiI6InJzYSIsImhhc2giOiJtZDUiLCJpZCI6IjMwMjAzMDBjMDYwODJhODY0ODg2''@;'; put 'put ''ZjcwZDAyMDUwNTAwMDQxMCJ9fScpfSwxMzA4OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgneyIxLjMuMTMyLjAuMTAiOiJzZWNwMjU2azEiLCIxLjMuMTMyLjAuMzMiOiJwMjI0IiwiMS4yLjg0MC4xMDA0NS4zLjEuMSI6InAxOTIiLCIxLjIuODQwLjEwMDQ1LjMu''@;'; put 'put ''MS43IjoicDI1NiIsIjEuMy4xMzIuMC4zNCI6InAzODQiLCIxLjMuMTMyLjAuMzUiOiJwNTIxIn0nKX0sMjk3OTk6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCd7Im1vZHAxIjp7ImdlbiI6IjAyIiwicHJpbWUiOiJmZmZmZmZmZmZmZmZmZmZmYzkwZmRhYTIyMTY4''@;'; put 'put ''YzIzNGM0YzY2MjhiODBkYzFjZDEyOTAyNGUwODhhNjdjYzc0MDIwYmJlYTYzYjEzOWIyMjUxNGEwODc5OGUzNDA0ZGRlZjk1MTliM2NkM2E0MzFiMzAyYjBhNmRmMjVmMTQzNzRmZTEzNTZkNmQ1MWMyNDVlNDg1YjU3NjYyNWU3ZWM2ZjQ0YzQyZTlhNjNhMzYyMGZmZmZmZmZmZmZmZmZmZmYi''@;'; put 'put ''fSwibW9kcDIiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1''@;'; put 'put ''NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U2NTM4MWZmZmZmZmZmZmZmZmZmZmYifSwibW9kcDUiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZm''@;'; put 'put ''ZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZi''@;'; put 'put ''MGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMz''@;'; put 'put ''NTRlNGFiYzk4MDRmMTc0NmMwOGNhMjM3MzI3ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTQiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4''@;'; put 'put ''ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2Jm''@;'; put 'put ''MDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVj''@;'; put 'put ''NTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhY2FhNjhmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxNSI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4''@;'; put 'put ''YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5''@;'; put 'put ''OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2Mz''@;'; put 'put ''MjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMxODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1''@;'; put 'put ''MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBjN2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFk''@;'; put 'put ''OTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNkYjViZmNlMGZkMTA4ZTRiODJkMTIwYTkzYWQyY2FmZmZmZmZmZmZmZmZmZmZmIn0sIm1vZHAxNiI6eyJnZW4iOiIwMiIsInByaW1lIjoiZmZmZmZmZmZmZmZmZmZmZmM5MGZkYWEyMjE2OGMyMzRjNGM2NjI4YjgwZGMxY2QxMjkwMjRlMDg4YTY3Y2M3''@;'; put 'put ''NDAyMGJiZWE2M2IxMzliMjI1MTRhMDg3OThlMzQwNGRkZWY5NTE5YjNjZDNhNDMxYjMwMmIwYTZkZjI1ZjE0Mzc0ZmUxMzU2ZDZkNTFjMjQ1ZTQ4NWI1NzY2MjVlN2VjNmY0NGM0MmU5YTYzN2VkNmIwYmZmNWNiNmY0MDZiN2VkZWUzODZiZmI1YTg5OWZhNWFlOWYyNDExN2M0YjFmZTY0OTI4''@;'; put 'put ''NjY1MWVjZTQ1YjNkYzIwMDdjYjhhMTYzYmYwNTk4ZGE0ODM2MWM1NWQzOWE2OTE2M2ZhOGZkMjRjZjVmODM2NTVkMjNkY2EzYWQ5NjFjNjJmMzU2MjA4NTUyYmI5ZWQ1MjkwNzcwOTY5NjZkNjcwYzM1NGU0YWJjOTgwNGYxNzQ2YzA4Y2ExODIxN2MzMjkwNWU0NjJlMzZjZTNiZTM5ZTc3MmMx''@;'; put 'put ''ODBlODYwMzliMjc4M2EyZWMwN2EyOGZiNWM1NWRmMDZmNGM1MmM5ZGUyYmNiZjY5NTU4MTcxODM5OTU0OTdjZWE5NTZhZTUxNWQyMjYxODk4ZmEwNTEwMTU3MjhlNWE4YWFhYzQyZGFkMzMxNzBkMDQ1MDdhMzNhODU1MjFhYmRmMWNiYTY0ZWNmYjg1MDQ1OGRiZWYwYThhZWE3MTU3NWQwNjBj''@;'; put 'put ''N2RiMzk3MGY4NWE2ZTFlNGM3YWJmNWFlOGNkYjA5MzNkNzFlOGM5NGUwNGEyNTYxOWRjZWUzZDIyNjFhZDJlZTZiZjEyZmZhMDZkOThhMDg2NGQ4NzYwMjczM2VjODZhNjQ1MjFmMmIxODE3N2IyMDBjYmJlMTE3NTc3YTYxNWQ2Yzc3MDk4OGMwYmFkOTQ2ZTIwOGUyNGZhMDc0ZTVhYjMxNDNk''@;'; put 'put ''YjViZmNlMGZkMTA4ZTRiODJkMTIwYTkyMTA4MDExYTcyM2MxMmE3ODdlNmQ3ODg3MTlhMTBiZGJhNWIyNjk5YzMyNzE4NmFmNGUyM2MxYTk0NjgzNGI2MTUwYmRhMjU4M2U5Y2EyYWQ0NGNlOGRiYmJjMmRiMDRkZThlZjkyZThlZmMxNDFmYmVjYWE2Mjg3YzU5NDc0ZTZiYzA1ZDk5YjI5NjRm''@;'; put 'put ''YTA5MGMzYTIyMzNiYTE4NjUxNWJlN2VkMWY2MTI5NzBjZWUyZDdhZmI4MWJkZDc2MjE3MDQ4MWNkMDA2OTEyN2Q1YjA1YWE5OTNiNGVhOTg4ZDhmZGRjMTg2ZmZiN2RjOTBhNmMwOGY0ZGY0MzVjOTM0MDYzMTk5ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTciOnsiZ2VuIjoiMDIiLCJwcmlt''@;'; put 'put ''ZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZm''@;'; put 'put ''NDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMyMDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5''@;'; put 'put ''MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNhMmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFh''@;'; put 'put ''YWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUxZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0''@;'; put 'put ''NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNl''@;'; put 'put ''OWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmExODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkw''@;'; put 'put ''YTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIx''@;'; put 'put ''YmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAzZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFk''@;'; put 'put ''NDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFkNThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYz''@;'; put 'put ''ZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkY2M0MDI0ZmZmZmZmZmZmZmZmZmZmZiJ9LCJtb2RwMTgiOnsiZ2VuIjoiMDIiLCJwcmltZSI6ImZmZmZmZmZmZmZmZmZmZmZjOTBmZGFhMjIxNjhjMjM0YzRjNjYyOGI4MGRjMWNkMTI5MDI0ZTA4OGE2N2NjNzQwMjBiYmVhNjNiMTM5''@;'; put 'put ''YjIyNTE0YTA4Nzk4ZTM0MDRkZGVmOTUxOWIzY2QzYTQzMWIzMDJiMGE2ZGYyNWYxNDM3NGZlMTM1NmQ2ZDUxYzI0NWU0ODViNTc2NjI1ZTdlYzZmNDRjNDJlOWE2MzdlZDZiMGJmZjVjYjZmNDA2YjdlZGVlMzg2YmZiNWE4OTlmYTVhZTlmMjQxMTdjNGIxZmU2NDkyODY2NTFlY2U0NWIzZGMy''@;'; put 'put ''MDA3Y2I4YTE2M2JmMDU5OGRhNDgzNjFjNTVkMzlhNjkxNjNmYThmZDI0Y2Y1ZjgzNjU1ZDIzZGNhM2FkOTYxYzYyZjM1NjIwODU1MmJiOWVkNTI5MDc3MDk2OTY2ZDY3MGMzNTRlNGFiYzk4MDRmMTc0NmMwOGNhMTgyMTdjMzI5MDVlNDYyZTM2Y2UzYmUzOWU3NzJjMTgwZTg2MDM5YjI3ODNh''@;'; put 'put ''MmVjMDdhMjhmYjVjNTVkZjA2ZjRjNTJjOWRlMmJjYmY2OTU1ODE3MTgzOTk1NDk3Y2VhOTU2YWU1MTVkMjI2MTg5OGZhMDUxMDE1NzI4ZTVhOGFhYWM0MmRhZDMzMTcwZDA0NTA3YTMzYTg1NTIxYWJkZjFjYmE2NGVjZmI4NTA0NThkYmVmMGE4YWVhNzE1NzVkMDYwYzdkYjM5NzBmODVhNmUx''@;'; put 'put ''ZTRjN2FiZjVhZThjZGIwOTMzZDcxZThjOTRlMDRhMjU2MTlkY2VlM2QyMjYxYWQyZWU2YmYxMmZmYTA2ZDk4YTA4NjRkODc2MDI3MzNlYzg2YTY0NTIxZjJiMTgxNzdiMjAwY2JiZTExNzU3N2E2MTVkNmM3NzA5ODhjMGJhZDk0NmUyMDhlMjRmYTA3NGU1YWIzMTQzZGI1YmZjZTBmZDEwOGU0''@;'; put 'put ''YjgyZDEyMGE5MjEwODAxMWE3MjNjMTJhNzg3ZTZkNzg4NzE5YTEwYmRiYTViMjY5OWMzMjcxODZhZjRlMjNjMWE5NDY4MzRiNjE1MGJkYTI1ODNlOWNhMmFkNDRjZThkYmJiYzJkYjA0ZGU4ZWY5MmU4ZWZjMTQxZmJlY2FhNjI4N2M1OTQ3NGU2YmMwNWQ5OWIyOTY0ZmEwOTBjM2EyMjMzYmEx''@;'; put 'put ''ODY1MTViZTdlZDFmNjEyOTcwY2VlMmQ3YWZiODFiZGQ3NjIxNzA0ODFjZDAwNjkxMjdkNWIwNWFhOTkzYjRlYTk4OGQ4ZmRkYzE4NmZmYjdkYzkwYTZjMDhmNGRmNDM1YzkzNDAyODQ5MjM2YzNmYWI0ZDI3YzcwMjZjMWQ0ZGNiMjYwMjY0NmRlYzk3NTFlNzYzZGJhMzdiZGY4ZmY5NDA2YWQ5''@;'; put 'put ''ZTUzMGVlNWRiMzgyZjQxMzAwMWFlYjA2YTUzZWQ5MDI3ZDgzMTE3OTcyN2IwODY1YTg5MThkYTNlZGJlYmNmOWIxNGVkNDRjZTZjYmFjZWQ0YmIxYmRiN2YxNDQ3ZTZjYzI1NGIzMzIwNTE1MTJiZDdhZjQyNmZiOGY0MDEzNzhjZDJiZjU5ODNjYTAxYzY0YjkyZWNmMDMyZWExNWQxNzIxZDAz''@;'; put 'put ''ZjQ4MmQ3Y2U2ZTc0ZmVmNmQ1NWU3MDJmNDY5ODBjODJiNWE4NDAzMTkwMGIxYzllNTllN2M5N2ZiZWM3ZThmMzIzYTk3YTdlMzZjYzg4YmUwZjFkNDViN2ZmNTg1YWM1NGJkNDA3YjIyYjQxNTRhYWNjOGY2ZDdlYmY0OGUxZDgxNGNjNWVkMjBmODAzN2UwYTc5NzE1ZWVmMjliZTMyODA2YTFk''@;'; put 'put ''NThiYjdjNWRhNzZmNTUwYWEzZDhhMWZiZmYwZWIxOWNjYjFhMzEzZDU1Y2RhNTZjOWVjMmVmMjk2MzIzODdmZThkNzZlM2MwNDY4MDQzZThmNjYzZjQ4NjBlZTEyYmYyZDViMGI3NDc0ZDZlNjk0ZjkxZTZkYmUxMTU5NzRhMzkyNmYxMmZlZTVlNDM4Nzc3Y2I2YTkzMmRmOGNkOGJlYzRkMDcz''@;'; put 'put ''YjkzMWJhM2JjODMyYjY4ZDlkZDMwMDc0MWZhN2JmOGFmYzQ3ZWQyNTc2ZjY5MzZiYTQyNDY2M2FhYjYzOWM1YWU0ZjU2ODM0MjNiNDc0MmJmMWM5NzgyMzhmMTZjYmUzOWQ2NTJkZTNmZGI4YmVmYzg0OGFkOTIyMjIyZTA0YTQwMzdjMDcxM2ViNTdhODFhMjNmMGM3MzQ3M2ZjNjQ2Y2VhMzA2''@;'; put 'put ''YjRiY2JjODg2MmY4Mzg1ZGRmYTlkNGI3ZmEyYzA4N2U4Nzk2ODMzMDNlZDViZGQzYTA2MmIzY2Y1YjNhMjc4YTY2ZDJhMTNmODNmNDRmODJkZGYzMTBlZTA3NGFiNmEzNjQ1OTdlODk5YTAyNTVkYzE2NGYzMWNjNTA4NDY4NTFkZjlhYjQ4MTk1ZGVkN2VhMWIxZDUxMGJkN2VlNzRkNzNmYWYz''@;'; put 'put ''NmJjMzFlY2ZhMjY4MzU5MDQ2ZjRlYjg3OWY5MjQwMDk0MzhiNDgxYzZjZDc4ODlhMDAyZWQ1ZWUzODJiYzkxOTBkYTZmYzAyNmU0Nzk1NThlNDQ3NTY3N2U5YWE5ZTMwNTBlMjc2NTY5NGRmYzgxZjU2ZTg4MGI5NmU3MTYwYzk4MGRkOThlZGQzZGZmZmZmZmZmZmZmZmZmZmZmIn19Jyl9LDE4''@;'; put 'put ''NTk3OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9e2k4OiI2LjUuNCJ9fSw2MzQ4MDpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbIjg3NDAiLCJcdTQzZjBcdTRjMzJcdTQ2MDNcdTQ1YTZcdTQ1NzhcdXsyNzI2N31cdTRkNzdcdTQ1YjNcdXsyN2NiMX1c''@;'; put 'put ''dTRjZTJcdXsyN2NjNX1cdTNiOTVcdTQ3MzZcdTQ3NDRcdTRjNDdcdTRjNDBcdXsyNDJiZn1cdXsyMzYxN31cdXsyNzM1Mn1cdXsyNmU4Yn1cdXsyNzBkMn1cdTRjNTdcdXsyYTM1MX1cdTQ3NGZcdTQ1ZGFcdTRjODVcdXsyN2M2Y31cdTRkMDdcdTRhYTRcdTQ2YTFcdXsyNmIyM31cdTcyMjVc''@;'; put 'put ''dXsyNWE1NH1cdXsyMWE2M31cdXsyM2UwNn1cdXsyM2Y2MX1cdTY2NGRcdTU2ZmIiXSxbIjg3NjciLCJcdTdkOTVcdTU5MWRcdXsyOGJiOX1cdTNkZjRcdTk3MzRcdXsyN2JlZn1cdTViZGJcdXsyMWQ1ZX1cdTVhYTRcdTM2MjVcdXsyOWViMH1cdTVhZDFcdTViYjdcdTVjZmNcdTY3NmVcdTg1''@;'; put 'put ''OTNcdXsyOTk0NX1cdTc0NjFcdTc0OWRcdTM4NzVcdXsyMWQ1M31cdXsyMzY5ZX1cdXsyNjAyMX1cdTNlZWMiXSxbIjg3YTEiLCJcdXsyNThkZX1cdTNhZjVcdTdhZmNcdTlmOTdcdXsyNDE2MX1cdXsyODkwZH1cdXsyMzFlYX1cdXsyMGE4YX1cdXsyMzI1ZX1cdTQzMGFcdTg0ODRcdTlmOTZc''@;'; put 'put ''dTk0MmZcdTQ5MzBcdTg2MTNcdTU4OTZcdTk3NGFcdTkyMThcdTc5ZDBcdTdhMzJcdTY2NjBcdTZhMjlcdTg4OWRcdTc0NGNcdTdiYzVcdTY3ODJcdTdhMmNcdTUyNGZcdTkwNDZcdTM0ZTZcdTczYzRcdXsyNWRiOX1cdTc0YzZcdTlmYzdcdTU3YjNcdTQ5MmZcdTU0NGNcdTQxMzFcdXsyMzY4''@;'; put 'put ''ZX1cdTU4MThcdTdhNzJcdXsyN2I2NX1cdThiOGZcdTQ2YWVcdXsyNmU4OH1cdTQxODFcdXsyNWQ5OX1cdTdiYWVcdXsyMjRiY31cdTlmYzhcdXsyMjRjMX1cdXsyMjRjOX1cdXsyMjRjY31cdTlmYzlcdTg1MDRcdXsyMzViYn1cdTQwYjRcdTlmY2FcdTQ0ZTFcdXsyYWRmZn1cdTYyYzFcdTcw''@;'; put 'put ''NmVcdTlmY2IiXSxbIjg4NDAiLCJcdTMxYzAiLDQsIlx1ezIwMTBjfVx1MzFjNVx1ezIwMGQxfVx1ezIwMGNkfVx1MzFjNlx1MzFjN1x1ezIwMGNifVx1ezIxZmU4fVx1MzFjOFx1ezIwMGNhfVx1MzFjOVx1MzFjYVx1MzFjYlx1MzFjY1x1ezIwMTBlfVx1MzFjZFx1MzFjZVx1MDEwMFx4YzFc''@;'; put 'put ''dTAxY2RceGMwXHUwMTEyXHhjOVx1MDExYVx4YzhcdTAxNGNceGQzXHUwMWQxXHhkMlx1MGZmZlx4Y2FcdTAzMDRcdTFlYmVcdTBmZmZceGNhXHUwMzBjXHUxZWMwXHhjYVx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMjUxXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1''@;'; put 'put ''MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGEiXSxbIjg4YTEiLCJcdTAxZGNceGZjXHUwZmZmXHhlYVx1MDMwNFx1MWViZlx1MGZmZlx4ZWFcdTAzMGNcdTFlYzFceGVhXHUwMjYxXHUyM2RhXHUyM2RiIl0sWyI4OTQwIiwiXHV7MmEzYTl9''@;'; put 'put ''XHV7MjExNDV9Il0sWyI4OTQzIiwiXHU2NTBhIl0sWyI4OTQ2IiwiXHU0ZTNkXHU2ZWRkXHU5ZDRlXHU5MWRmIl0sWyI4OTRjIiwiXHV7Mjc3MzV9XHU2NDkxXHU0ZjFhXHU0ZjI4XHU0ZmE4XHU1MTU2XHU1MTc0XHU1MTljXHU1MWU0XHU1MmExXHU1MmE4XHU1MzNiXHU1MzRlXHU1M2QxXHU1''@;'; put 'put ''M2Q4XHU1NmUyXHU1OGYwXHU1OTA0XHU1OTA3XHU1OTMyXHU1OTM0XHU1YjY2XHU1YjllXHU1YjlmXHU1YzlhXHU1ZTg2XHU2MDNiXHU2NTg5XHU2N2ZlXHU2ODA0XHU2ODY1XHU2ZDRlXHU3MGJjXHU3NTM1XHU3ZWE0XHU3ZWFjXHU3ZWJhXHU3ZWM3XHU3ZWNmXHU3ZWRmXHU3ZjA2XHU3ZjM3''@;'; put 'put ''XHU4MjdhXHU4MmNmXHU4MzZmXHU4OWM2XHU4YmJlXHU4YmUyXHU4ZjY2XHU4ZjY3XHU4ZjZlIl0sWyI4OWExIiwiXHU3NDExXHU3Y2ZjXHU3ZGNkXHU2OTQ2XHU3YWM5XHU1MjI3Il0sWyI4OWFiIiwiXHU5MThjXHU3OGI4XHU5MTVlXHU4MGJjIl0sWyI4OWIwIiwiXHU4ZDBiXHU4MGY2XHV7''@;'; put 'put ''MjA5ZTd9Il0sWyI4OWI1IiwiXHU4MDlmXHU5ZWM3XHU0Y2NkXHU5ZGM5XHU5ZTBjXHU0YzNlXHV7MjlkZjZ9XHV7MjcwMGV9XHU5ZTBhXHV7MmExMzN9XHUzNWMxIl0sWyI4OWMxIiwiXHU2ZTlhXHU4MjNlXHU3NTE5Il0sWyI4OWM1IiwiXHU0OTExXHU5YTZjXHU5YThmXHU5Zjk5XHU3OTg3''@;'; put 'put ''XHV7Mjg0NmN9XHV7MjFkY2F9XHV7MjA1ZDB9XHV7MjJhZTZ9XHU0ZTI0XHU0ZTgxXHU0ZTgwXHU0ZTg3XHU0ZWJmXHU0ZWViXHU0ZjM3XHUzNDRjXHU0ZmJkXHUzZTQ4XHU1MDAzXHU1MDg4XHUzNDdkXHUzNDkzXHUzNGE1XHU1MTg2XHU1OTA1XHU1MWRiXHU1MWZjXHU1MjA1XHU0ZTg5XHU1''@;'; put 'put ''Mjc5XHU1MjkwXHU1MzI3XHUzNWM3XHU1M2E5XHUzNTUxXHU1M2IwXHUzNTUzXHU1M2MyXHU1NDIzXHUzNTZkXHUzNTcyXHUzNjgxXHU1NDkzXHU1NGEzXHU1NGI0XHU1NGI5XHU1NGQwXHU1NGVmXHU1NTE4XHU1NTIzXHU1NTI4XHUzNTk4XHU1NTNmXHUzNWE1XHUzNWJmXHU1NWQ3XHUzNWM1''@;'; put 'put ''Il0sWyI4YTQwIiwiXHV7MjdkODR9XHU1NTI1Il0sWyI4YTQzIiwiXHV7MjBjNDJ9XHV7MjBkMTV9XHV7MjUxMmJ9XHU1NTkwXHV7MjJjYzZ9XHUzOWVjXHV7MjAzNDF9XHU4ZTQ2XHV7MjRkYjh9XHV7Mjk0ZTV9XHU0MDUzXHV7MjgwYmV9XHU3NzdhXHV7MjJjMzh9XHUzYTM0XHU0N2Q1XHV7''@;'; put 'put ''MjgxNWR9XHV7MjY5ZjJ9XHV7MjRkZWF9XHU2NGRkXHV7MjBkN2N9XHV7MjBmYjR9XHV7MjBjZDV9XHV7MjEwZjR9XHU2NDhkXHU4ZTdlXHV7MjBlOTZ9XHV7MjBjMGJ9XHV7MjBmNjR9XHV7MjJjYTl9XHV7MjgyNTZ9XHV7MjQ0ZDN9Il0sWyI4YTY0IiwiXHV7MjBkNDZ9XHV7MjlhNGR9XHV7''@;'; put 'put ''MjgwZTl9XHU0N2Y0XHV7MjRlYTd9XHV7MjJjYzJ9XHU5YWIyXHUzYTY3XHV7Mjk1ZjR9XHUzZmVkXHUzNTA2XHV7MjUyYzd9XHV7Mjk3ZDR9XHV7Mjc4Yzh9XHV7MjJkNDR9XHU5ZDZlXHU5ODE1Il0sWyI4YTc2IiwiXHU0M2Q5XHV7MjYwYTV9XHU2NGI0XHU1NGUzXHV7MjJkNGN9XHV7MjJi''@;'; put 'put ''Y2F9XHV7MjEwNzd9XHUzOWZiXHV7MjEwNmZ9Il0sWyI4YWExIiwiXHV7MjY2ZGF9XHV7MjY3MTZ9XHV7Mjc5YTB9XHU2NGVhXHV7MjUwNTJ9XHV7MjBjNDN9XHU4ZTY4XHV7MjIxYTF9XHV7MjhiNGN9XHV7MjA3MzF9Il0sWyI4YWFjIiwiXHU0ODBiXHV7MjAxYTl9XHUzZmZhXHU1ODczXHV7''@;'; put 'put ''MjJkOGR9Il0sWyI4YWIyIiwiXHV7MjQ1Yzh9XHV7MjA0ZmN9XHV7MjYwOTd9XHV7MjBmNGN9XHV7MjBkOTZ9XHU1NTc5XHU0MGJiXHU0M2JhIl0sWyI4YWJiIiwiXHU0YWI0XHV7MjJhNjZ9XHV7MjEwOWR9XHU4MWFhXHU5OGY1XHV7MjBkOWN9XHU2Mzc5XHUzOWZlXHV7MjI3NzV9XHU4ZGMw''@;'; put 'put ''XHU1NmExXHU2NDdjXHUzZTQzIl0sWyI4YWM5IiwiXHV7MmE2MDF9XHV7MjBlMDl9XHV7MjJhY2Z9XHV7MjJjYzl9Il0sWyI4YWNlIiwiXHV7MjEwYzh9XHV7MjM5YzJ9XHUzOTkyXHUzYTA2XHV7MjgyOWJ9XHUzNTc4XHV7MjVlNDl9XHV7MjIwYzd9XHU1NjUyXHV7MjBmMzF9XHV7MjJjYjJ9''@;'; put 'put ''XHV7Mjk3MjB9XHUzNGJjXHU2YzNkXHV7MjRlM2J9Il0sWyI4YWRmIiwiXHV7Mjc1NzR9XHV7MjJlOGJ9XHV7MjIyMDh9XHV7MmE2NWJ9XHV7MjhjY2R9XHV7MjBlN2F9XHV7MjBjMzR9XHV7MjY4MWN9XHU3ZjkzXHV7MjEwY2Z9XHV7MjI4MDN9XHV7MjI5Mzl9XHUzNWZiXHV7MjUxZTN9XHV7''@;'; put 'put ''MjBlOGN9XHV7MjBmOGR9XHV7MjBlYWF9XHUzZjkzXHV7MjBmMzB9XHV7MjBkNDd9XHV7MjExNGZ9XHV7MjBlNGN9Il0sWyI4YWY2IiwiXHV7MjBlYWJ9XHV7MjBiYTl9XHV7MjBkNDh9XHV7MjEwYzB9XHV7MjExM2R9XHUzZmY5XHV7MjI2OTZ9XHU2NDMyXHV7MjBmYWR9Il0sWyI4YjQwIiwi''@;'; put 'put ''XHV7MjMzZjR9XHV7Mjc2Mzl9XHV7MjJiY2V9XHV7MjBkN2V9XHV7MjBkN2Z9XHV7MjJjNTF9XHV7MjJjNTV9XHUzYTE4XHV7MjBlOTh9XHV7MjEwYzd9XHV7MjBmMmV9XHV7MmE2MzJ9XHV7MjZiNTB9XHV7MjhjZDJ9XHV7MjhkOTl9XHV7MjhjY2F9XHU5NWFhXHU1NGNjXHU4MmM0XHU1NWI5''@;'; put 'put ''Il0sWyI4YjU1IiwiXHV7MjllYzN9XHU5YzI2XHU5YWI2XHV7Mjc3NWV9XHV7MjJkZWV9XHU3MTQwXHU4MTZkXHU4MGVjXHU1YzFjXHV7MjY1NzJ9XHU4MTM0XHUzNzk3XHU1MzVmXHV7MjgwYmR9XHU5MWI2XHV7MjBlZmF9XHV7MjBlMGZ9XHV7MjBlNzd9XHV7MjBlZmJ9XHUzNWRkXHV7MjRk''@;'; put 'put ''ZWJ9XHUzNjA5XHV7MjBjZDZ9XHU1NmFmXHV7MjI3YjV9XHV7MjEwYzl9XHV7MjBlMTB9XHV7MjBlNzh9XHV7MjEwNzh9XHV7MjExNDh9XHV7MjgyMDd9XHV7MjE0NTV9XHV7MjBlNzl9XHV7MjRlNTB9XHV7MjJkYTR9XHU1YTU0XHV7MjEwMWR9XHV7MjEwMWV9XHV7MjEwZjV9XHV7MjEwZjZ9''@;'; put 'put ''XHU1NzljXHV7MjBlMTF9Il0sWyI4YmExIiwiXHV7Mjc2OTR9XHV7MjgyY2R9XHV7MjBmYjV9XHV7MjBlN2J9XHV7MjUxN2V9XHUzNzAzXHV7MjBmYjZ9XHV7MjExODB9XHV7MjUyZDh9XHV7MmEyYmR9XHV7MjQ5ZGF9XHV7MjE4M2F9XHV7MjQxNzd9XHV7MjgyN2N9XHU1ODk5XHU1MjY4XHUz''@;'; put 'put ''NjFhXHV7MjU3M2R9XHU3YmIyXHU1YjY4XHU0ODAwXHU0YjJjXHU5ZjI3XHU0OWU3XHU5YzFmXHU5YjhkXHV7MjViNzR9XHV7MjMxM2R9XHU1NWZiXHUzNWYyXHU1Njg5XHU0ZTI4XHU1OTAyXHV7MjFiYzF9XHV7MmY4Nzh9XHU5NzUxXHV7MjAwODZ9XHU0ZTViXHU0ZWJiXHUzNTNlXHU1YzIz''@;'; put 'put ''XHU1ZjUxXHU1ZmM0XHUzOGZhXHU2MjRjXHU2NTM1XHU2YjdhXHU2YzM1XHU2YzNhXHU3MDZjXHU3MjJiXHU0ZTJjXHU3MmFkXHV7MjQ4ZTl9XHU3ZjUyXHU3OTNiXHU3Y2Y5XHU3ZjUzXHV7MjYyNmF9XHUzNGMxIl0sWyI4YmRlIiwiXHV7MjYzNGJ9XHU4MDAyXHU4MDgwXHV7MjY2MTJ9XHV7''@;'; put 'put ''MjY5NTF9XHU1MzVkXHU4ODY0XHU4OWMxXHV7Mjc4YjJ9XHU4YmEwXHU4ZDFkXHU5NDg1XHU5NTc4XHU5NTdmXHU5NWU4XHV7MjhlMGZ9XHU5N2U2XHU5ODc1XHU5OGNlXHU5OGRlXHU5OTYzXHV7Mjk4MTB9XHU5YzdjXHU5ZTFmXHU5ZWM0XHU2YjZmXHVmOTA3XHU0ZTM3XHV7MjAwODd9XHU5''@;'; put 'put ''NjFkXHU2MjM3XHU5NGEyIl0sWyI4YzQwIiwiXHU1MDNiXHU2ZGZlXHV7MjljNzN9XHU5ZmE2XHUzZGM5XHU4ODhmXHV7MjQxNGV9XHU3MDc3XHU1Y2Y1XHU0YjIwXHV7MjUxY2R9XHUzNTU5XHV7MjVkMzB9XHU2MTIyXHV7MjhhMzJ9XHU4ZmE3XHU5MWY2XHU3MTkxXHU2NzE5XHU3M2JhXHV7''@;'; put 'put ''MjMyODF9XHV7MmExMDd9XHUzYzhiXHV7MjE5ODB9XHU0YjEwXHU3OGU0XHU3NDAyXHU1MWFlXHV7Mjg3MGZ9XHU0MDA5XHU2YTYzXHV7MmEyYmF9XHU0MjIzXHU4NjBmXHV7MjBhNmZ9XHU3YTJhXHV7Mjk5NDd9XHV7MjhhZWF9XHU5NzU1XHU3MDRkXHU1MzI0XHV7MjIwN2V9XHU5M2Y0XHU3''@;'; put 'put ''NmQ5XHV7Mjg5ZTN9XHU5ZmE3XHU3N2RkXHU0ZWEzXHU0ZmYwXHU1MGJjXHU0ZTJmXHU0ZjE3XHU5ZmE4XHU1NDM0XHU3ZDhiXHU1ODkyXHU1OGQwXHV7MjFkYjZ9XHU1ZTkyXHU1ZTk5XHU1ZmMyXHV7MjI3MTJ9XHU2NThiIl0sWyI4Y2ExIiwiXHV7MjMzZjl9XHU2OTE5XHU2YTQzXHV7MjNj''@;'; put 'put ''NjN9XHU2Y2ZmIl0sWyI4Y2E3IiwiXHU3MjAwXHV7MjQ1MDV9XHU3MzhjXHUzZWRiXHV7MjRhMTN9XHU1YjE1XHU3NGI5XHU4YjgzXHV7MjVjYTR9XHV7MjU2OTV9XHU3YTkzXHU3YmVjXHU3Y2MzXHU3ZTZjXHU4MmY4XHU4NTk3XHU5ZmE5XHU4ODkwXHU5ZmFhXHU4ZWI5XHU5ZmFiXHU4ZmNm''@;'; put 'put ''XHU4NTVmXHU5OWUwXHU5MjIxXHU5ZmFjXHV7MjhkYjl9XHV7MjE0M2Z9XHU0MDcxXHU0MmEyXHU1YTFhIl0sWyI4Y2M5IiwiXHU5ODY4XHU2NzZiXHU0Mjc2XHU1NzNkIl0sWyI4Y2NlIiwiXHU4NWQ2XHV7MjQ5N2J9XHU4MmJmXHV7MjcxMGR9XHU0YzgxXHV7MjZkNzR9XHU1ZDdiXHV7MjZi''@;'; put 'put ''MTV9XHV7MjZmYmV9XHU5ZmFkXHU5ZmFlXHU1Yjk2XHU5ZmFmXHU2NmU3XHU3ZTViXHU2ZTU3XHU3OWNhXHUzZDg4XHU0NGMzXHV7MjMyNTZ9XHV7MjI3OTZ9XHU0MzlhXHU0NTM2Il0sWyI4Y2U2IiwiXHU1Y2Q1XHV7MjNiMWF9XHU4YWY5XHU1Yzc4XHUzZDEyXHV7MjM1NTF9XHU1ZDc4XHU5''@;'; put 'put ''ZmIyXHU3MTU3XHU0NTU4XHV7MjQwZWN9XHV7MjFlMjN9XHU0Yzc3XHUzOTc4XHUzNDRhXHV7MjAxYTR9XHV7MjZjNDF9XHU4YWNjXHU0ZmI0XHV7MjAyMzl9XHU1OWJmXHU4MTZjXHU5ODU2XHV7Mjk4ZmF9XHU1ZjNiIl0sWyI4ZDQwIiwiXHV7MjBiOWZ9Il0sWyI4ZDQyIiwiXHV7MjIxYzF9''@;'; put 'put ''XHV7Mjg5NmR9XHU0MTAyXHU0NmJiXHV7MjkwNzl9XHUzZjA3XHU5ZmIzXHV7MmExYjV9XHU0MGY4XHUzN2Q2XHU0NmY3XHV7MjZjNDZ9XHU0MTdjXHV7Mjg2YjJ9XHV7MjczZmZ9XHU0NTZkXHUzOGQ0XHV7MjU0OWF9XHU0NTYxXHU0NTFiXHU0ZDg5XHU0YzdiXHU0ZDc2XHU0NWVhXHUzZmM4''@;'; put 'put ''XHV7MjRiMGZ9XHUzNjYxXHU0NGRlXHU0NGJkXHU0MWVkXHU1ZDNlXHU1ZDQ4XHU1ZDU2XHUzZGZjXHUzODBmXHU1ZGE0XHU1ZGI5XHUzODIwXHUzODM4XHU1ZTQyXHU1ZWJkXHU1ZjI1XHU1ZjgzXHUzOTA4XHUzOTE0XHUzOTNmXHUzOTRkXHU2MGQ3XHU2MTNkXHU1Y2U1XHUzOTg5XHU2MWI3''@;'; put 'put ''XHU2MWI5XHU2MWNmXHUzOWI4XHU2MjJjXHU2MjkwXHU2MmU1XHU2MzE4XHUzOWY4XHU1NmIxIl0sWyI4ZGExIiwiXHUzYTAzXHU2M2UyXHU2M2ZiXHU2NDA3XHU2NDVhXHUzYTRiXHU2NGMwXHU1ZDE1XHU1NjIxXHU5ZjlmXHUzYTk3XHU2NTg2XHUzYWJkXHU2NWZmXHU2NjUzXHUzYWYyXHU2''@;'; put 'put ''NjkyXHUzYjIyXHU2NzE2XHUzYjQyXHU2N2E0XHU2ODAwXHUzYjU4XHU2ODRhXHU2ODg0XHUzYjcyXHUzYjcxXHUzYjdiXHU2OTA5XHU2OTQzXHU3MjVjXHU2OTY0XHU2OTlmXHU2OTg1XHUzYmJjXHU2OWQ2XHUzYmRkXHU2YTY1XHU2YTc0XHU2YTcxXHU2YTgyXHUzYmVjXHU2YTk5XHUzYmYy''@;'; put 'put ''XHU2YWFiXHU2YWI1XHU2YWQ0XHU2YWY2XHU2YjgxXHU2YmMxXHU2YmVhXHU2Yzc1XHU2Y2FhXHUzY2NiXHU2ZDAyXHU2ZDA2XHU2ZDI2XHU2ZDgxXHUzY2VmXHU2ZGE0XHU2ZGIxXHU2ZTE1XHU2ZTE4XHU2ZTI5XHU2ZTg2XHV7Mjg5YzB9XHU2ZWJiXHU2ZWUyXHU2ZWRhXHU5ZjdmXHU2ZWU4''@;'; put 'put ''XHU2ZWU5XHU2ZjI0XHU2ZjM0XHUzZDQ2XHV7MjNmNDF9XHU2ZjgxXHU2ZmJlXHUzZDZhXHUzZDc1XHU3MWI3XHU1Yzk5XHUzZDhhXHU3MDJjXHUzZDkxXHU3MDUwXHU3MDU0XHU3MDZmXHU3MDdmXHU3MDg5XHV7MjAzMjV9XHU0M2MxXHUzNWYxXHV7MjBlZDh9Il0sWyI4ZTQwIiwiXHV7MjNl''@;'; put 'put ''ZDd9XHU1N2JlXHV7MjZlZDN9XHU3MTNlXHV7MjU3ZTB9XHUzNjRlXHU2OWEyXHV7MjhiZTl9XHU1Yjc0XHU3YTQ5XHV7MjU4ZTF9XHV7Mjk0ZDl9XHU3YTY1XHU3YTdkXHV7MjU5YWN9XHU3YWJiXHU3YWIwXHU3YWMyXHU3YWMzXHU3MWQxXHV7MjY0OGR9XHU0MWNhXHU3YWRhXHU3YWRkXHU3''@;'; put 'put ''YWVhXHU0MWVmXHU1NGIyXHV7MjVjMDF9XHU3YjBiXHU3YjU1XHU3YjI5XHV7MjUzMGV9XHV7MjVjZmV9XHU3YmEyXHU3YjZmXHU4MzljXHV7MjViYjR9XHV7MjZjN2Z9XHU3YmQwXHU4NDIxXHU3YjkyXHU3YmI4XHV7MjVkMjB9XHUzZGFkXHV7MjVjNjV9XHU4NDkyXHU3YmZhXHU3YzA2XHU3''@;'; put 'put ''YzM1XHV7MjVjYzF9XHU3YzQ0XHU3YzgzXHV7MjQ4ODJ9XHU3Y2E2XHU2NjdkXHV7MjQ1Nzh9XHU3Y2M5XHU3Y2M3XHU3Y2U2XHU3Yzc0XHU3Y2YzXHU3Y2Y1XHU3Y2NlIl0sWyI4ZWExIiwiXHU3ZTY3XHU0NTFkXHV7MjZlNDR9XHU3ZDVkXHV7MjZlZDZ9XHU3NDhkXHU3ZDg5XHU3ZGFiXHU3''@;'; put 'put ''MTM1XHU3ZGIzXHU3ZGQyXHV7MjQwNTd9XHV7MjYwMjl9XHU3ZGU0XHUzZDEzXHU3ZGY1XHV7MjE3Zjl9XHU3ZGU1XHV7MjgzNmR9XHU3ZTFkXHV7MjYxMjF9XHV7MjYxNWF9XHU3ZTZlXHU3ZTkyXHU0MzJiXHU5NDZjXHU3ZTI3XHU3ZjQwXHU3ZjQxXHU3ZjQ3XHU3OTM2XHV7MjYyZDB9XHU5''@;'; put 'put ''OWUxXHU3Zjk3XHV7MjYzNTF9XHU3ZmEzXHV7MjE2NjF9XHV7MjAwNjh9XHU0NTVjXHV7MjM3NjZ9XHU0NTAzXHV7MjgzM2F9XHU3ZmZhXHV7MjY0ODl9XHU4MDA1XHU4MDA4XHU4MDFkXHU4MDI4XHU4MDJmXHV7MmEwODd9XHV7MjZjYzN9XHU4MDNiXHU4MDNjXHU4MDYxXHV7MjI3MTR9XHU0''@;'; put 'put ''OTg5XHV7MjY2MjZ9XHV7MjNkZTN9XHV7MjY2ZTh9XHU2NzI1XHU4MGE3XHV7MjhhNDh9XHU4MTA3XHU4MTFhXHU1OGIwXHV7MjI2ZjZ9XHU2YzdmXHV7MjY0OTh9XHV7MjRmYjh9XHU2NGU3XHV7MjE0OGF9XHU4MjE4XHV7MjE4NWV9XHU2YTUzXHV7MjRhNjV9XHV7MjRhOTV9XHU0NDdhXHU4''@;'; put 'put ''MjI5XHV7MjBiMGR9XHV7MjZhNTJ9XHV7MjNkN2V9XHU0ZmY5XHV7MjE0ZmR9XHU4NGUyXHU4MzYyXHV7MjZiMGF9XHV7MjQ5YTd9XHV7MjM1MzB9XHV7MjE3NzN9XHV7MjNkZjh9XHU4MmFhXHU2OTFiXHV7MmY5OTR9XHU0MWRiIl0sWyI4ZjQwIiwiXHU4NTRiXHU4MmQwXHU4MzFhXHV7MjBl''@;'; put 'put ''MTZ9XHV7MjE3YjR9XHUzNmMxXHV7MjMxN2R9XHV7MjM1NWF9XHU4MjdiXHU4MmUyXHU4MzE4XHV7MjNlOGJ9XHV7MjZkYTN9XHV7MjZiMDV9XHV7MjZiOTd9XHV7MjM1Y2V9XHUzZGJmXHU4MzFkXHU1NWVjXHU4Mzg1XHU0NTBiXHV7MjZkYTV9XHU4M2FjXHU4M2MxXHU4M2QzXHUzNDdlXHV7''@;'; put 'put ''MjZlZDR9XHU2YTU3XHU4NTVhXHUzNDk2XHV7MjZlNDJ9XHV7MjJlZWZ9XHU4NDU4XHV7MjViZTR9XHU4NDcxXHUzZGQzXHU0NGU0XHU2YWE3XHU4NDRhXHV7MjNjYjV9XHU3OTU4XHU4NGE4XHV7MjZiOTZ9XHV7MjZlNzd9XHV7MjZlNDN9XHU4NGRlXHU4NDBmXHU4MzkxXHU0NGEwXHU4NDkz''@;'; put 'put ''XHU4NGU0XHV7MjVjOTF9XHU0MjQwXHV7MjVjYzB9XHU0NTQzXHU4NTM0XHU1YWYyXHV7MjZlOTl9XHU0NTI3XHU4NTczXHU0NTE2XHU2N2JmXHU4NjE2Il0sWyI4ZmExIiwiXHV7Mjg2MjV9XHV7Mjg2M2J9XHU4NWMxXHV7MjcwODh9XHU4NjAyXHV7MjE1ODJ9XHV7MjcwY2R9XHV7MmY5YjJ9''@;'; put 'put ''XHU0NTZhXHU4NjI4XHUzNjQ4XHV7MjE4YTJ9XHU1M2Y3XHV7MjczOWF9XHU4NjdlXHU4NzcxXHV7MmEwZjh9XHU4N2VlXHV7MjJjMjd9XHU4N2IxXHU4N2RhXHU4ODBmXHU1NjYxXHU4NjZjXHU2ODU2XHU0NjBmXHU4ODQ1XHU4ODQ2XHV7Mjc1ZTB9XHV7MjNkYjl9XHV7Mjc1ZTR9XHU4ODVl''@;'; put 'put ''XHU4ODljXHU0NjViXHU4OGI0XHU4OGI1XHU2M2MxXHU4OGM1XHU3Nzc3XHV7Mjc3MGZ9XHU4OTg3XHU4OThhXHU4OWE2XHU4OWE5XHU4OWE3XHU4OWJjXHV7MjhhMjV9XHU4OWU3XHV7Mjc5MjR9XHV7MjdhYmR9XHU4YTljXHU3NzkzXHU5MWZlXHU4YTkwXHV7MjdhNTl9XHU3YWU5XHV7Mjdi''@;'; put 'put ''M2F9XHV7MjNmOGZ9XHU0NzEzXHV7MjdiMzh9XHU3MTdjXHU4YjBjXHU4YjFmXHV7MjU0MzB9XHV7MjU1NjV9XHU4YjNmXHU4YjRjXHU4YjRkXHU4YWE5XHV7MjRhN2F9XHU4YjkwXHU4YjliXHU4YWFmXHV7MjE2ZGZ9XHU0NjE1XHU4ODRmXHU4YzliXHV7MjdkNTR9XHV7MjdkOGZ9XHV7MmY5''@;'; put 'put ''ZDR9XHUzNzI1XHV7MjdkNTN9XHU4Y2Q2XHV7MjdkOTh9XHV7MjdkYmR9XHU4ZDEyXHU4ZDAzXHV7MjE5MTB9XHU4Y2RiXHU3MDVjXHU4ZDExXHV7MjRjYzl9XHUzZWQwXHU4ZDc3Il0sWyI5MDQwIiwiXHU4ZGE5XHV7MjgwMDJ9XHV7MjEwMTR9XHV7MjQ5OGF9XHUzYjdjXHV7MjgxYmN9XHV7''@;'; put 'put ''MjcxMGN9XHU3YWU3XHU4ZWFkXHU4ZWI2XHU4ZWMzXHU5MmQ0XHU4ZjE5XHU4ZjJkXHV7MjgzNjV9XHV7Mjg0MTJ9XHU4ZmE1XHU5MzAzXHV7MmEyOWZ9XHV7MjBhNTB9XHU4ZmIzXHU0OTJhXHV7Mjg5ZGV9XHV7Mjg1M2R9XHV7MjNkYmJ9XHU1ZWY4XHV7MjMyNjJ9XHU4ZmY5XHV7MmEwMTR9''@;'; put 'put ''XHV7Mjg2YmN9XHV7Mjg1MDF9XHV7MjIzMjV9XHUzOTgwXHV7MjZlZDd9XHU5MDM3XHV7Mjg1M2N9XHV7MjdhYmV9XHU5MDYxXHV7Mjg1NmN9XHV7Mjg2MGJ9XHU5MGE4XHV7Mjg3MTN9XHU5MGM0XHV7Mjg2ZTZ9XHU5MGFlXHU5MGZkXHU5MTY3XHUzYWYwXHU5MWE5XHU5MWM0XHU3Y2FjXHV7''@;'; put 'put ''Mjg5MzN9XHV7MjFlODl9XHU5MjBlXHU2YzlmXHU5MjQxXHU5MjYyXHV7MjU1Yjl9XHU5MmI5XHV7MjhhYzZ9XHV7MjNjOWJ9XHV7MjhiMGN9XHV7MjU1ZGJ9Il0sWyI5MGExIiwiXHV7MjBkMzF9XHU5MzJjXHU5MzZiXHV7MjhhZTF9XHV7MjhiZWJ9XHU3MDhmXHU1YWMzXHV7MjhhZTJ9XHV7''@;'; put 'put ''MjhhZTV9XHU0OTY1XHU5MjQ0XHV7MjhiZWN9XHV7MjhjMzl9XHV7MjhiZmZ9XHU5MzczXHU5NDViXHU4ZWJjXHU5NTg1XHU5NWE2XHU5NDI2XHU5NWEwXHU2ZmY2XHU0MmI5XHV7MjI2N2F9XHV7Mjg2ZDh9XHV7MjEyN2N9XHV7MjNlMmV9XHU0OWRmXHU2YzFjXHU5NjdiXHU5Njk2XHU0MTZj''@;'; put 'put ''XHU5NmEzXHV7MjZlZDV9XHU2MWRhXHU5NmI2XHU3OGY1XHV7MjhhZTB9XHU5NmJkXHU1M2NjXHU0OWExXHV7MjZjYjh9XHV7MjAyNzR9XHV7MjY0MTB9XHV7MjkwYWZ9XHV7MjkwZTV9XHV7MjRhZDF9XHV7MjE5MTV9XHV7MjMzMGF9XHU5NzMxXHU4NjQyXHU5NzM2XHU0YTBmXHU0NTNkXHU0''@;'; put 'put ''NTg1XHV7MjRhZTl9XHU3MDc1XHU1YjQxXHU5NzFiXHU5NzVjXHV7MjkxZDV9XHU5NzU3XHU1YjRhXHV7MjkxZWJ9XHU5NzVmXHU5NDI1XHU1MGQwXHV7MjMwYjd9XHV7MjMwYmN9XHU5Nzg5XHU5NzlmXHU5N2IxXHU5N2JlXHU5N2MwXHU5N2QyXHU5N2UwXHV7MjU0NmN9XHU5N2VlXHU3NDFj''@;'; put 'put ''XHV7Mjk0MzN9XHU5N2ZmXHU5N2Y1XHV7Mjk0MWR9XHV7Mjc5N2F9XHU0YWQxXHU5ODM0XHU5ODMzXHU5ODRiXHU5ODY2XHUzYjBlXHV7MjcxNzV9XHUzZDUxXHV7MjA2MzB9XHV7MjQxNWN9Il0sWyI5MTQwIiwiXHV7MjU3MDZ9XHU5OGNhXHU5OGI3XHU5OGM4XHU5OGM3XHU0YWZmXHV7MjZk''@;'; put 'put ''Mjd9XHV7MjE2ZDN9XHU1NWIwXHU5OGUxXHU5OGU2XHU5OGVjXHU5Mzc4XHU5OTM5XHV7MjRhMjl9XHU0YjcyXHV7Mjk4NTd9XHV7Mjk5MDV9XHU5OWY1XHU5YTBjXHU5YTNiXHU5YTEwXHU5YTU4XHV7MjU3MjV9XHUzNmM0XHV7MjkwYjF9XHV7MjliZDV9XHU5YWUwXHU5YWUyXHV7MjliMDV9''@;'; put 'put ''XHU5YWY0XHU0YzBlXHU5YjE0XHU5YjJkXHV7Mjg2MDB9XHU1MDM0XHU5YjM0XHV7MjY5YTh9XHUzOGMzXHV7MjMwN2R9XHU5YjUwXHU5YjQwXHV7MjlkM2V9XHU1YTQ1XHV7MjE4NjN9XHU5YjhlXHV7MjQyNGJ9XHU5YzAyXHU5YmZmXHU5YzBjXHV7MjllNjh9XHU5ZGQ0XHV7MjlmYjd9XHV7''@;'; put 'put ''MmExOTJ9XHV7MmExYWJ9XHV7MmEwZTF9XHV7MmExMjN9XHV7MmExZGZ9XHU5ZDdlXHU5ZDgzXHV7MmExMzR9XHU5ZTBlXHU2ODg4Il0sWyI5MWExIiwiXHU5ZGM0XHV7MjIxNWJ9XHV7MmExOTN9XHV7MmEyMjB9XHV7MjE5M2J9XHV7MmEyMzN9XHU5ZDM5XHV7MmEwYjl9XHV7MmEyYjR9XHU5''@;'; put 'put ''ZTkwXHU5ZTk1XHU5ZTllXHU5ZWEyXHU0ZDM0XHU5ZWFhXHU5ZWFmXHV7MjQzNjR9XHU5ZWMxXHUzYjYwXHUzOWU1XHUzZDFkXHU0ZjMyXHUzN2JlXHV7MjhjMmJ9XHU5ZjAyXHU5ZjA4XHU0Yjk2XHU5NDI0XHV7MjZkYTJ9XHU5ZjE3XHU5ZjE2XHU5ZjM5XHU1NjlmXHU1NjhhXHU5ZjQ1XHU5''@;'; put 'put ''OWI4XHV7MjkwOGJ9XHU5N2YyXHU4NDdmXHU5ZjYyXHU5ZjY5XHU3YWRjXHU5ZjhlXHU3MjE2XHU0YmJlXHV7MjQ5NzV9XHV7MjQ5YmJ9XHU3MTc3XHV7MjQ5Zjh9XHV7MjQzNDh9XHV7MjRhNTF9XHU3MzllXHV7MjhiZGF9XHV7MjE4ZmF9XHU3OTlmXHV7Mjg5N2V9XHV7MjhlMzZ9XHU5MzY5''@;'; put 'put ''XHU5M2YzXHV7MjhhNDR9XHU5MmVjXHU5MzgxXHU5M2NiXHV7Mjg5NmN9XHV7MjQ0Yjl9XHU3MjE3XHUzZWViXHU3NzcyXHU3YTQzXHU3MGQwXHV7MjQ0NzN9XHV7MjQzZjh9XHU3MTdlXHV7MjE3ZWZ9XHU3MGEzXHV7MjE4YmV9XHV7MjM1OTl9XHUzZWM3XHV7MjE4ODV9XHV7MjU0MmZ9XHV7''@;'; put 'put ''MjE3Zjh9XHUzNzIyXHV7MjE2ZmJ9XHV7MjE4Mzl9XHUzNmUxXHV7MjE3NzR9XHV7MjE4ZDF9XHV7MjVmNGJ9XHUzNzIzXHV7MjE2YzB9XHU1NzViXHV7MjRhMjV9XHV7MjEzZmV9XHV7MjEyYTh9Il0sWyI5MjQwIiwiXHV7MjEzYzZ9XHV7MjE0YjZ9XHU4NTAzXHV7MjM2YTZ9XHU4NTAzXHU4''@;'; put 'put ''NDU1XHV7MjQ5OTR9XHV7MjcxNjV9XHV7MjNlMzF9XHV7MjU1NWN9XHV7MjNlZmJ9XHV7MjcwNTJ9XHU0NGY0XHV7MjM2ZWV9XHV7Mjk5OWR9XHV7MjZmMjZ9XHU2N2Y5XHUzNzMzXHUzYzE1XHUzZGU3XHU1ODZjXHV7MjE5MjJ9XHU2ODEwXHU0MDU3XHV7MjM3M2Z9XHV7MjQwZTF9XHV7MjQw''@;'; put 'put ''OGJ9XHV7MjQxMGZ9XHV7MjZjMjF9XHU1NGNiXHU1NjllXHV7MjY2YjF9XHU1NjkyXHV7MjBmZGZ9XHV7MjBiYTh9XHV7MjBlMGR9XHU5M2M2XHV7MjhiMTN9XHU5MzljXHU0ZWY4XHU1MTJiXHUzODE5XHV7MjQ0MzZ9XHU0ZWJjXHV7MjA0NjV9XHV7MjAzN2Z9XHU0ZjRiXHU0ZjhhXHV7MjU2''@;'; put 'put ''NTF9XHU1YTY4XHV7MjAxYWJ9XHV7MjAzY2J9XHUzOTk5XHV7MjAzMGF9XHV7MjA0MTR9XHUzNDM1XHU0ZjI5XHV7MjAyYzB9XHV7MjhlYjN9XHV7MjAyNzV9XHU4YWRhXHV7MjAyMGN9XHU0ZTk4Il0sWyI5MmExIiwiXHU1MGNkXHU1MTBkXHU0ZmEyXHU0ZjAzXHV7MjRhMGV9XHV7MjNlOGF9''@;'; put 'put ''XHU0ZjQyXHU1MDJlXHU1MDZjXHU1MDgxXHU0ZmNjXHU0ZmU1XHU1MDU4XHU1MGZjXHU1MTU5XHU1MTViXHU1MTVkXHU1MTVlXHU2ZTc2XHV7MjM1OTV9XHV7MjNlMzl9XHV7MjNlYmZ9XHU2ZDcyXHV7MjE4ODR9XHV7MjNlODl9XHU1MWE4XHU1MWMzXHV7MjA1ZTB9XHU0NGRkXHV7MjA0YTN9''@;'; put 'put ''XHV7MjA0OTJ9XHV7MjA0OTF9XHU4ZDdhXHV7MjhhOWN9XHV7MjA3MGV9XHU1MjU5XHU1MmE0XHV7MjA4NzN9XHU1MmUxXHU5MzZlXHU0NjdhXHU3MThjXHV7MjQzOGN9XHV7MjBjMjB9XHV7MjQ5YWN9XHV7MjEwZTR9XHU2OWQxXHV7MjBlMWR9XHU3NDc5XHUzZWRlXHU3NDk5XHU3NDE0XHU3''@;'; put 'put ''NDU2XHU3Mzk4XHU0YjhlXHV7MjRhYmN9XHV7MjQwOGR9XHU1M2QwXHUzNTg0XHU3MjBmXHV7MjQwYzl9XHU1NWI0XHV7MjAzNDV9XHU1NGNkXHV7MjBiYzZ9XHU1NzFkXHU5MjVkXHU5NmY0XHU5MzY2XHU1N2RkXHU1NzhkXHU1NzdmXHUzNjNlXHU1OGNiXHU1YTk5XHV7MjhhNDZ9XHV7MjE2''@;'; put 'put ''ZmF9XHV7MjE3NmZ9XHV7MjE3MTB9XHU1YTJjXHU1OWI4XHU5MjhmXHU1YTdlXHU1YWNmXHU1YTEyXHV7MjU5NDZ9XHV7MjE5ZjN9XHV7MjE4NjF9XHV7MjQyOTV9XHUzNmY1XHU2ZDA1XHU3NDQzXHU1YTIxXHV7MjVlODN9Il0sWyI5MzQwIiwiXHU1YTgxXHV7MjhiZDd9XHV7MjA0MTN9XHU5''@;'; put 'put ''M2UwXHU3NDhjXHV7MjEzMDN9XHU3MTA1XHU0OTcyXHU5NDA4XHV7Mjg5ZmJ9XHU5M2JkXHUzN2EwXHU1YzFlXHU1YzllXHU1ZTVlXHU1ZTQ4XHV7MjE5OTZ9XHV7MjE5N2N9XHV7MjNhZWV9XHU1ZWNkXHU1YjRmXHV7MjE5MDN9XHV7MjE5MDR9XHUzNzAxXHV7MjE4YTB9XHUzNmRkXHV7MjE2''@;'; put 'put ''ZmV9XHUzNmQzXHU4MTJhXHV7MjhhNDd9XHV7MjFkYmF9XHV7MjM0NzJ9XHV7Mjg5YTh9XHU1ZjBjXHU1ZjBlXHV7MjE5Mjd9XHV7MjE3YWJ9XHU1YTZiXHV7MjE3M2J9XHU1YjQ0XHU4NjE0XHV7Mjc1ZmR9XHU4ODYwXHU2MDdlXHV7MjI4NjB9XHV7MjI2MmJ9XHU1ZmRiXHUzZWI4XHV7MjI1''@;'; put 'put ''YWZ9XHV7MjI1YmV9XHV7MjkwODh9XHV7MjZmNzN9XHU2MWMwXHV7MjAwM2V9XHV7MjAwNDZ9XHV7MjI2MWJ9XHU2MTk5XHU2MTk4XHU2MDc1XHV7MjJjOWJ9XHV7MjJkMDd9XHV7MjQ2ZDR9XHV7MjkxNGR9Il0sWyI5M2ExIiwiXHU2NDcxXHV7MjQ2NjV9XHV7MjJiNmF9XHUzYTI5XHV7MjJi''@;'; put 'put ''MjJ9XHV7MjM0NTB9XHV7Mjk4ZWF9XHV7MjJlNzh9XHU2MzM3XHV7MmE0NWJ9XHU2NGI2XHU2MzMxXHU2M2QxXHV7MjQ5ZTN9XHV7MjJkNjd9XHU2MmE0XHV7MjJjYTF9XHU2NDNiXHU2NTZiXHU2OTcyXHUzYmY0XHV7MjMwOGV9XHV7MjMyYWR9XHV7MjQ5ODl9XHV7MjMyYWJ9XHU1NTBkXHV7''@;'; put 'put ''MjMyZTB9XHV7MjE4ZDl9XHV7Mjk0M2Z9XHU2NmNlXHV7MjMyODl9XHV7MjMxYjN9XHUzYWUwXHU0MTkwXHV7MjU1ODR9XHV7MjhiMjJ9XHV7MjU1OGZ9XHV7MjE2ZmN9XHV7MjU1NWJ9XHV7MjU0MjV9XHU3OGVlXHV7MjMxMDN9XHV7MjE4MmF9XHV7MjMyMzR9XHUzNDY0XHV7MjMyMGZ9XHV7''@;'; put 'put ''MjMxODJ9XHV7MjQyYzl9XHU2NjhlXHV7MjZkMjR9XHU2NjZiXHU0YjkzXHU2NjMwXHV7Mjc4NzB9XHV7MjFkZWJ9XHU2NjYzXHV7MjMyZDJ9XHV7MjMyZTF9XHU2NjFlXHV7MjU4NzJ9XHUzOGQxXHV7MjM4M2F9XHV7MjM3YmN9XHUzYjk5XHV7MjM3YTJ9XHV7MjMzZmV9XHU3NGQwXHUzYjk2''@;'; put 'put ''XHU2NzhmXHV7MjQ2MmF9XHU2OGI2XHU2ODFlXHUzYmM0XHU2YWJlXHUzODYzXHV7MjM3ZDV9XHV7MjQ0ODd9XHU2YTMzXHU2YTUyXHU2YWM5XHU2YjA1XHV7MjE5MTJ9XHU2NTExXHU2ODk4XHU2YTRjXHUzYmQ3XHU2YTdhXHU2YjU3XHV7MjNmYzB9XHV7MjNjOWF9XHU5M2EwXHU5MmYyXHV7''@;'; put 'put ''MjhiZWF9XHV7MjhhY2J9Il0sWyI5NDQwIiwiXHU5Mjg5XHV7MjgwMWV9XHV7Mjg5ZGN9XHU5NDY3XHU2ZGE1XHU2ZjBiXHV7MjQ5ZWN9XHU2ZDY3XHV7MjNmN2Z9XHUzZDhmXHU2ZTA0XHV7MjQwM2N9XHU1YTNkXHU2ZTBhXHU1ODQ3XHU2ZDI0XHU3ODQyXHU3MTNiXHV7MjQzMWF9XHV7MjQy''@;'; put 'put ''NzZ9XHU3MGYxXHU3MjUwXHU3Mjg3XHU3Mjk0XHV7MjQ3OGZ9XHV7MjQ3MjV9XHU1MTc5XHV7MjRhYTR9XHV7MjA1ZWJ9XHU3NDdhXHV7MjNlZjh9XHV7MjM2NWZ9XHV7MjRhNGF9XHV7MjQ5MTd9XHV7MjVmZTF9XHUzZjA2XHUzZWIxXHV7MjRhZGZ9XHV7MjhjMjN9XHV7MjNmMzV9XHU2MGE3''@;'; put 'put ''XHUzZWYzXHU3NGNjXHU3NDNjXHU5Mzg3XHU3NDM3XHU0NDlmXHV7MjZkZWF9XHU0NTUxXHU3NTgzXHUzZjYzXHV7MjRjZDl9XHV7MjRkMDZ9XHUzZjU4XHU3NTU1XHU3NjczXHV7MmE1YzZ9XHUzYjE5XHU3NDY4XHV7MjhhY2N9XHV7MjQ5YWJ9XHV7MjQ5OGV9XHUzYWZiIl0sWyI5NGExIiwi''@;'; put 'put ''XHUzZGNkXHV7MjRhNGV9XHUzZWZmXHV7MjQ5YzV9XHV7MjQ4ZjN9XHU5MWZhXHU1NzMyXHU5MzQyXHV7MjhhZTN9XHV7MjE4NjR9XHU1MGRmXHV7MjUyMjF9XHV7MjUxZTd9XHU3Nzc4XHV7MjMyMzJ9XHU3NzBlXHU3NzBmXHU3NzdiXHV7MjQ2OTd9XHV7MjM3ODF9XHUzYTVlXHV7MjQ4ZjB9''@;'; put 'put ''XHU3NDM4XHU3NDliXHUzZWJmXHV7MjRhYmF9XHV7MjRhYzd9XHU0MGM4XHV7MjRhOTZ9XHV7MjYxYWV9XHU5MzA3XHV7MjU1ODF9XHU3ODFlXHU3ODhkXHU3ODg4XHU3OGQyXHU3M2QwXHU3OTU5XHV7Mjc3NDF9XHV7MjU2ZTN9XHU0MTBlXHU3OTliXHU4NDk2XHU3OWE1XHU2YTJkXHV7MjNl''@;'; put 'put ''ZmF9XHU3YTNhXHU3OWY0XHU0MTZlXHV7MjE2ZTZ9XHU0MTMyXHU5MjM1XHU3OWYxXHV7MjBkNGN9XHV7MjQ5OGN9XHV7MjAyOTl9XHV7MjNkYmF9XHV7MjE3NmV9XHUzNTk3XHU1NTZiXHUzNTcwXHUzNmFhXHV7MjAxZDR9XHV7MjBjMGR9XHU3YWUyXHU1YTU5XHV7MjI2ZjV9XHV7MjVhYWZ9''@;'; put 'put ''XHV7MjVhOWN9XHU1YTBkXHV7MjAyNWJ9XHU3OGYwXHU1YTJhXHV7MjViYzZ9XHU3YWZlXHU0MWY5XHU3YzVkXHU3YzZkXHU0MjExXHV7MjViYjN9XHV7MjVlYmN9XHV7MjVlYTZ9XHU3Y2NkXHV7MjQ5Zjl9XHV7MjE3YjB9XHU3YzhlXHU3YzdjXHU3Y2FlXHU2YWIyXHU3ZGRjXHU3ZTA3XHU3''@;'; put 'put ''ZGQzXHU3ZjRlXHV7MjYyNjF9Il0sWyI5NTQwIiwiXHV7MjYxNWN9XHV7MjdiNDh9XHU3ZDk3XHV7MjVlODJ9XHU0MjZhXHV7MjZiNzV9XHV7MjA5MTZ9XHU2N2Q2XHV7MjAwNGV9XHV7MjM1Y2Z9XHU1N2M0XHV7MjY0MTJ9XHV7MjYzZjh9XHV7MjQ5NjJ9XHU3ZmRkXHU3YjI3XHV7MjA4MmN9''@;'; put 'put ''XHV7MjVhZTl9XHV7MjVkNDN9XHU3YjBjXHV7MjVlMGV9XHU5OWU2XHU4NjQ1XHU5YTYzXHU2YTFjXHV7MjM0M2Z9XHUzOWUyXHV7MjQ5Zjd9XHV7MjY1YWR9XHU5YTFmXHV7MjY1YTB9XHU4NDgwXHV7MjcxMjd9XHV7MjZjZDF9XHU0NGVhXHU4MTM3XHU0NDAyXHU4MGM2XHU4MTA5XHU4MTQy''@;'; put 'put ''XHV7MjY3YjR9XHU5OGMzXHV7MjZhNDJ9XHU4MjYyXHU4MjY1XHV7MjZhNTF9XHU4NDUzXHV7MjZkYTd9XHU4NjEwXHV7MjcyMWJ9XHU1YTg2XHU0MTdmXHV7MjE4NDB9XHU1YjJiXHV7MjE4YTF9XHU1YWU0XHV7MjE4ZDh9XHU4NmEwXHV7MmY5YmN9XHV7MjNkOGZ9XHU4ODJkXHV7Mjc0MjJ9''@;'; put 'put ''XHU1YTAyIl0sWyI5NWExIiwiXHU4ODZlXHU0ZjQ1XHU4ODg3XHU4OGJmXHU4OGU2XHU4OTY1XHU4OTRkXHV7MjU2ODN9XHU4OTU0XHV7Mjc3ODV9XHV7Mjc3ODR9XHV7MjhiZjV9XHV7MjhiZDl9XHV7MjhiOWN9XHV7Mjg5Zjl9XHUzZWFkXHU4NGEzXHU0NmY1XHU0NmNmXHUzN2YyXHU4YTNk''@;'; put 'put ''XHU4YTFjXHV7Mjk0NDh9XHU1ZjRkXHU5MjJiXHV7MjQyODR9XHU2NWQ0XHU3MTI5XHU3MGM0XHV7MjE4NDV9XHU5ZDZkXHU4YzlmXHU4Y2U5XHV7MjdkZGN9XHU1OTlhXHU3N2MzXHU1OWYwXHU0MzZlXHUzNmQ0XHU4ZTJhXHU4ZWE3XHV7MjRjMDl9XHU4ZjMwXHU4ZjRhXHU0MmY0XHU2YzU4''@;'; put 'put ''XHU2ZmJiXHV7MjIzMjF9XHU0ODliXHU2Zjc5XHU2ZThiXHV7MjE3ZGF9XHU5YmU5XHUzNmI1XHV7MjQ5MmZ9XHU5MGJiXHU5MDk3XHU1NTcxXHU0OTA2XHU5MWJiXHU5NDA0XHV7MjhhNGJ9XHU0MDYyXHV7MjhhZmN9XHU5NDI3XHV7MjhjMWR9XHV7MjhjM2J9XHU4NGU1XHU4YTJiXHU5NTk5''@;'; put 'put ''XHU5NWE3XHU5NTk3XHU5NTk2XHV7MjhkMzR9XHU3NDQ1XHUzZWMyXHV7MjQ4ZmZ9XHV7MjRhNDJ9XHV7MjQzZWF9XHUzZWU3XHV7MjMyMjV9XHU5NjhmXHV7MjhlZTd9XHV7MjhlNjZ9XHV7MjhlNjV9XHUzZWNjXHV7MjQ5ZWR9XHV7MjRhNzh9XHV7MjNmZWV9XHU3NDEyXHU3NDZiXHUzZWZj''@;'; put 'put ''XHU5NzQxXHV7MjkwYjB9Il0sWyI5NjQwIiwiXHU2ODQ3XHU0YTFkXHV7MjkwOTN9XHV7MjU3ZGZ9XHU5NzVkXHU5MzY4XHV7Mjg5ODl9XHV7MjhjMjZ9XHV7MjhiMmZ9XHV7MjYzYmV9XHU5MmJhXHU1YjExXHU4YjY5XHU0OTNjXHU3M2Y5XHV7MjQyMWJ9XHU5NzliXHU5NzcxXHU5OTM4XHV7''@;'; put 'put ''MjBmMjZ9XHU1ZGMxXHV7MjhiYzV9XHV7MjRhYjJ9XHU5ODFmXHV7Mjk0ZGF9XHU5MmY2XHV7Mjk1ZDd9XHU5MWU1XHU0NGMwXHV7MjhiNTB9XHV7MjRhNjd9XHV7MjhiNjR9XHU5OGRjXHV7MjhhNDV9XHUzZjAwXHU5MjJhXHU0OTI1XHU4NDE0XHU5OTNiXHU5OTRkXHV7MjdiMDZ9XHUzZGZk''@;'; put 'put ''XHU5OTliXHU0YjZmXHU5OWFhXHU5YTVjXHV7MjhiNjV9XHV7MjU4Yzh9XHU2YThmXHU5YTIxXHU1YWZlXHU5YTJmXHV7Mjk4ZjF9XHU0YjkwXHV7Mjk5NDh9XHU5OWJjXHU0YmJkXHU0Yjk3XHU5MzdkXHU1ODcyXHV7MjEzMDJ9XHU1ODIyXHV7MjQ5Yjh9Il0sWyI5NmExIiwiXHV7MjE0ZTh9''@;'; put 'put ''XHU3ODQ0XHV7MjI3MWZ9XHV7MjNkYjh9XHU2OGM1XHUzZDdkXHU5NDU4XHUzOTI3XHU2MTUwXHV7MjI3ODF9XHV7MjI5NmJ9XHU2MTA3XHU5YzRmXHU5YzUzXHU5YzdiXHU5YzM1XHU5YzEwXHU5YjdmXHU5YmNmXHV7MjllMmR9XHU5YjlmXHV7MmExZjV9XHV7MmEwZmV9XHU5ZDIxXHU0Y2Fl''@;'; put 'put ''XHV7MjQxMDR9XHU5ZTE4XHU0Y2IwXHU5ZDBjXHV7MmExYjR9XHV7MmEwZWR9XHV7MmEwZjN9XHV7Mjk5MmZ9XHU5ZGE1XHU4NGJkXHV7MjZlMTJ9XHV7MjZmZGZ9XHV7MjZiODJ9XHU4NWZjXHU0NTMzXHV7MjZkYTR9XHV7MjZlODR9XHV7MjZkZjB9XHU4NDIwXHU4NWVlXHV7MjZlMDB9XHV7''@;'; put 'put ''MjM3ZDd9XHV7MjYwNjR9XHU3OWUyXHV7MjM1OWN9XHV7MjM2NDB9XHU0OTJkXHV7MjQ5ZGV9XHUzZDYyXHU5M2RiXHU5MmJlXHU5MzQ4XHV7MjAyYmZ9XHU3OGI5XHU5Mjc3XHU5NDRkXHU0ZmU0XHUzNDQwXHU5MDY0XHV7MjU1NWR9XHU3ODNkXHU3ODU0XHU3OGI2XHU3ODRiXHV7MjE3NTd9''@;'; put 'put ''XHV7MjMxYzl9XHV7MjQ5NDF9XHUzNjlhXHU0ZjcyXHU2ZmRhXHU2ZmQ5XHU3MDFlXHU3MDFlXHU1NDE0XHV7MjQxYjV9XHU1N2JiXHU1OGYzXHU1NzhhXHU5ZDE2XHU1N2Q3XHU3MTM0XHUzNGFmXHV7MjQxYWN9XHU3MWViXHV7MjZjNDB9XHV7MjRmOTd9XHU1YjI4XHV7MjE3YjV9XHV7Mjhh''@;'; put 'put ''NDl9Il0sWyI5NzQwIiwiXHU2MTBjXHU1YWNlXHU1YTBiXHU0MmJjXHV7MjQ0ODh9XHUzNzJjXHU0YjdiXHV7Mjg5ZmN9XHU5M2JiXHU5M2I4XHV7MjE4ZDZ9XHV7MjBmMWR9XHU4NDcyXHV7MjZjYzB9XHV7MjE0MTN9XHV7MjQyZmF9XHV7MjJjMjZ9XHV7MjQzYzF9XHU1OTk0XHV7MjNkYjd9''@;'; put 'put ''XHV7MjY3NDF9XHU3ZGE4XHV7MjYxNWJ9XHV7MjYwYTR9XHV7MjQ5Yjl9XHV7MjQ5OGJ9XHV7Mjg5ZmF9XHU5MmU1XHU3M2UyXHUzZWU5XHU3NGI0XHV7MjhiNjN9XHV7MjE4OWZ9XHUzZWUxXHV7MjRhYjN9XHU2YWQ4XHU3M2YzXHU3M2ZiXHUzZWQ2XHV7MjRhM2V9XHV7MjRhOTR9XHV7MjE3''@;'; put 'put ''ZDl9XHV7MjRhNjZ9XHV7MjAzYTd9XHV7MjE0MjR9XHV7MjQ5ZTV9XHU3NDQ4XHV7MjQ5MTZ9XHU3MGE1XHV7MjQ5NzZ9XHU5Mjg0XHU3M2U2XHU5MzVmXHV7MjA0ZmV9XHU5MzMxXHV7MjhhY2V9XHV7MjhhMTZ9XHU5Mzg2XHV7MjhiZTd9XHV7MjU1ZDV9XHU0OTM1XHV7MjhhODJ9XHU3MTZi''@;'; put 'put ''Il0sWyI5N2ExIiwiXHV7MjQ5NDN9XHV7MjBjZmZ9XHU1NmE0XHV7MjA2MWF9XHV7MjBiZWJ9XHV7MjBjYjh9XHU1NTAyXHU3OWM0XHV7MjE3ZmF9XHU3ZGZlXHV7MjE2YzJ9XHV7MjRhNTB9XHV7MjE4NTJ9XHU0NTJlXHU5NDAxXHUzNzBhXHV7MjhhYzB9XHV7MjQ5YWR9XHU1OWIwXHV7MjE4''@;'; put 'put ''YmZ9XHV7MjE4ODN9XHV7Mjc0ODR9XHU1YWExXHUzNmUyXHV7MjNkNWJ9XHUzNmIwXHU5MjVmXHU1YTc5XHV7MjhhODF9XHV7MjE4NjJ9XHU5Mzc0XHUzY2NkXHV7MjBhYjR9XHU0YTk2XHUzOThhXHU1MGY0XHUzZDY5XHUzZDRjXHV7MjEzOWN9XHU3MTc1XHU0MmZiXHV7MjgyMTh9XHU2ZTBm''@;'; put 'put ''XHV7MjkwZTR9XHU0NGViXHU2ZDU3XHV7MjdlNGZ9XHU3MDY3XHU2Y2FmXHUzY2Q2XHV7MjNmZWR9XHV7MjNlMmR9XHU2ZTAyXHU2ZjBjXHUzZDZmXHV7MjAzZjV9XHU3NTUxXHUzNmJjXHUzNGM4XHU0NjgwXHUzZWRhXHU0ODcxXHU1OWM0XHU5MjZlXHU0OTNlXHU4ZjQxXHV7MjhjMWN9XHV7''@;'; put 'put ''MjZiYzB9XHU1ODEyXHU1N2M4XHUzNmQ2XHV7MjE0NTJ9XHU3MGZlXHV7MjQzNjJ9XHV7MjRhNzF9XHV7MjJmZTN9XHV7MjEyYjB9XHV7MjIzYmR9XHU2OGI5XHU2OTY3XHV7MjEzOTh9XHV7MjM0ZTV9XHV7MjdiZjR9XHV7MjM2ZGZ9XHV7MjhhODN9XHV7MjM3ZDZ9XHV7MjMzZmF9XHV7MjRj''@;'; put 'put ''OWZ9XHU2YTFhXHV7MjM2YWR9XHV7MjZjYjd9XHU4NDNlXHU0NGRmXHU0NGNlIl0sWyI5ODQwIiwiXHV7MjZkMjZ9XHV7MjZkNTF9XHV7MjZjODJ9XHV7MjZmZGV9XHU2ZjE3XHV7MjcxMDl9XHU4MzNkXHV7MjE3M2F9XHU4M2VkXHV7MjZjODB9XHV7MjcwNTN9XHV7MjE3ZGJ9XHU1OTg5XHU1''@;'; put 'put ''YTgyXHV7MjE3YjN9XHU1YTYxXHU1YTcxXHV7MjE5MDV9XHV7MjQxZmN9XHUzNzJkXHU1OWVmXHV7MjE3M2N9XHUzNmM3XHU3MThlXHU5MzkwXHU2NjlhXHV7MjQyYTV9XHU1YTZlXHU1YTJiXHV7MjQyOTN9XHU2YTJiXHV7MjNlZjl9XHV7Mjc3MzZ9XHV7MjQ0NWJ9XHV7MjQyY2F9XHU3MTFk''@;'; put 'put ''XHV7MjQyNTl9XHV7Mjg5ZTF9XHU0ZmIwXHV7MjZkMjh9XHU1Y2MyXHV7MjQ0Y2V9XHV7MjdlNGR9XHV7MjQzYmR9XHU2YTBjXHV7MjQyNTZ9XHV7MjEzMDR9XHU3MGE2XHU3MTMzXHV7MjQzZTl9XHUzZGE1XHU2Y2RmXHV7MmY4MjV9XHV7MjRhNGZ9XHU3ZTY1XHU1OWViXHU1ZDJmXHUzZGYz''@;'; put 'put ''XHU1ZjVjXHV7MjRhNWR9XHV7MjE3ZGZ9XHU3ZGE0XHU4NDI2Il0sWyI5OGExIiwiXHU1NDg1XHV7MjNhZmF9XHV7MjMzMDB9XHV7MjAyMTR9XHU1NzdlXHV7MjA4ZDV9XHV7MjA2MTl9XHUzZmU1XHV7MjFmOWV9XHV7MmEyYjZ9XHU3MDAzXHV7MjkxNWJ9XHU1ZDcwXHU3MzhmXHU3Y2QzXHV7''@;'; put 'put ''MjhhNTl9XHV7Mjk0MjB9XHU0ZmM4XHU3ZmU3XHU3MmNkXHU3MzEwXHV7MjdhZjR9XHU3MzM4XHU3MzM5XHV7MjU2ZjZ9XHU3MzQxXHU3MzQ4XHUzZWE5XHV7MjdiMTh9XHU5MDZjXHU3MWY1XHV7MjQ4ZjJ9XHU3M2UxXHU4MWY2XHUzZWNhXHU3NzBjXHUzZWQxXHU2Y2EyXHU1NmZkXHU3NDE5''@;'; put 'put ''XHU3NDFlXHU3NDFmXHUzZWUyXHUzZWYwXHUzZWY0XHUzZWZhXHU3NGQzXHUzZjBlXHUzZjUzXHU3NTQyXHU3NTZkXHU3NTcyXHU3NThkXHUzZjdjXHU3NWM4XHU3NWRjXHUzZmMwXHU3NjRkXHUzZmQ3XHU3Njc0XHUzZmRjXHU3NjdhXHV7MjRmNWN9XHU3MTg4XHU1NjIzXHU4OTgwXHU1ODY5''@;'; put 'put ''XHU0MDFkXHU3NzQzXHU0MDM5XHU2NzYxXHU0MDQ1XHUzNWRiXHU3Nzk4XHU0MDZhXHU0MDZmXHU1YzVlXHU3N2JlXHU3N2NiXHU1OGYyXHU3ODE4XHU3MGI5XHU3ODFjXHU0MGE4XHU3ODM5XHU3ODQ3XHU3ODUxXHU3ODY2XHU4NDQ4XHV7MjU1MzV9XHU3OTMzXHU2ODAzXHU3OTMyXHU0MTAz''@;'; put 'put ''Il0sWyI5OTQwIiwiXHU0MTA5XHU3OTkxXHU3OTk5XHU4ZmJiXHU3YTA2XHU4ZmJjXHU0MTY3XHU3YTkxXHU0MWIyXHU3YWJjXHU4Mjc5XHU0MWM0XHU3YWNmXHU3YWRiXHU0MWNmXHU0ZTIxXHU3YjYyXHU3YjZjXHU3YjdiXHU3YzEyXHU3YzFiXHU0MjYwXHU0MjdhXHU3YzdiXHU3YzljXHU0''@;'; put 'put ''MjhjXHU3Y2I4XHU0Mjk0XHU3Y2VkXHU4ZjkzXHU3MGMwXHV7MjBjY2Z9XHU3ZGNmXHU3ZGQ0XHU3ZGQwXHU3ZGZkXHU3ZmFlXHU3ZmI0XHU3MjlmXHU0Mzk3XHU4MDIwXHU4MDI1XHU3YjM5XHU4MDJlXHU4MDMxXHU4MDU0XHUzZGNjXHU1N2I0XHU3MGEwXHU4MGI3XHU4MGU5XHU0M2VkXHU4''@;'; put 'put ''MTBjXHU3MzJhXHU4MTBlXHU4MTEyXHU3NTYwXHU4MTE0XHU0NDAxXHUzYjM5XHU4MTU2XHU4MTU5XHU4MTVhIl0sWyI5OWExIiwiXHU0NDEzXHU1ODNhXHU4MTdjXHU4MTg0XHU0NDI1XHU4MTkzXHU0NDJkXHU4MWE1XHU1N2VmXHU4MWMxXHU4MWU0XHU4MjU0XHU0NDhmXHU4MmE2XHU4Mjc2''@;'; put 'put ''XHU4MmNhXHU4MmQ4XHU4MmZmXHU0NGIwXHU4MzU3XHU5NjY5XHU2OThhXHU4NDA1XHU3MGY1XHU4NDY0XHU2MGUzXHU4NDg4XHU0NTA0XHU4NGJlXHU4NGUxXHU4NGY4XHU4NTEwXHU4NTM4XHU4NTUyXHU0NTNiXHU4NTZmXHU4NTcwXHU4NWUwXHU0NTc3XHU4NjcyXHU4NjkyXHU4NmIyXHU4''@;'; put 'put ''NmVmXHU5NjQ1XHU4NzhiXHU0NjA2XHU0NjE3XHU4OGFlXHU4OGZmXHU4OTI0XHU4OTQ3XHU4OTkxXHV7Mjc5Njd9XHU4YTI5XHU4YTM4XHU4YTk0XHU4YWI0XHU4YzUxXHU4Y2Q0XHU4Y2YyXHU4ZDFjXHU0Nzk4XHU1ODVmXHU4ZGMzXHU0N2VkXHU0ZWVlXHU4ZTNhXHU1NWQ4XHU1NzU0XHU4''@;'; put 'put ''ZTcxXHU1NWY1XHU4ZWIwXHU0ODM3XHU4ZWNlXHU4ZWUyXHU4ZWU0XHU4ZWVkXHU4ZWYyXHU4ZmI3XHU4ZmMxXHU4ZmNhXHU4ZmNjXHU5MDMzXHU5OWM0XHU0OGFkXHU5OGUwXHU5MjEzXHU0OTFlXHU5MjI4XHU5MjU4XHU5MjZiXHU5MmIxXHU5MmFlXHU5MmJmIl0sWyI5YTQwIiwiXHU5MmUz''@;'; put 'put ''XHU5MmViXHU5MmYzXHU5MmY0XHU5MmZkXHU5MzQzXHU5Mzg0XHU5M2FkXHU0OTQ1XHU0OTUxXHU5ZWJmXHU5NDE3XHU1MzAxXHU5NDFkXHU5NDJkXHU5NDNlXHU0OTZhXHU5NDU0XHU5NDc5XHU5NTJkXHU5NWEyXHU0OWE3XHU5NWY0XHU5NjMzXHU0OWU1XHU2N2EwXHU0YTI0XHU5NzQwXHU0''@;'; put 'put ''YTM1XHU5N2IyXHU5N2MyXHU1NjU0XHU0YWU0XHU2MGU4XHU5OGI5XHU0YjE5XHU5OGYxXHU1ODQ0XHU5OTBlXHU5OTE5XHU1MWI0XHU5OTFjXHU5OTM3XHU5OTQyXHU5OTVkXHU5OTYyXHU0YjcwXHU5OWM1XHU0YjlkXHU5YTNjXHU5YjBmXHU3YTgzXHU5YjY5XHU5YjgxXHU5YmRkXHU5YmYx''@;'; put 'put ''XHU5YmY0XHU0YzZkXHU5YzIwXHUzNzZmXHV7MjFiYzJ9XHU5ZDQ5XHU5YzNhIl0sWyI5YWExIiwiXHU5ZWZlXHU1NjUwXHU5ZDkzXHU5ZGJkXHU5ZGMwXHU5ZGZjXHU5NGY2XHU4ZmI2XHU5ZTdiXHU5ZWFjXHU5ZWIxXHU5ZWJkXHU5ZWM2XHU5NGRjXHU5ZWUyXHU5ZWYxXHU5ZWY4XHU3YWM4''@;'; put 'put ''XHU5ZjQ0XHV7MjAwOTR9XHV7MjAyYjd9XHV7MjAzYTB9XHU2OTFhXHU5NGMzXHU1OWFjXHV7MjA0ZDd9XHU1ODQwXHU5NGMxXHUzN2I5XHV7MjA1ZDV9XHV7MjA2MTV9XHV7MjA2NzZ9XHV7MjE2YmF9XHU1NzU3XHU3MTczXHV7MjBhYzJ9XHV7MjBhY2R9XHV7MjBiYmZ9XHU1NDZhXHV7MmY4''@;'; put 'put ''M2J9XHV7MjBiY2J9XHU1NDllXHV7MjBiZmJ9XHV7MjBjM2J9XHV7MjBjNTN9XHV7MjBjNjV9XHV7MjBjN2N9XHU2MGU3XHV7MjBjOGR9XHU1NjdhXHV7MjBjYjV9XHV7MjBjZGR9XHV7MjBjZWR9XHV7MjBkNmZ9XHV7MjBkYjJ9XHV7MjBkYzh9XHU2OTU1XHU5YzJmXHU4N2E1XHV7MjBlMDR9''@;'; put 'put ''XHV7MjBlMGV9XHV7MjBlZDd9XHV7MjBmOTB9XHV7MjBmMmR9XHV7MjBlNzN9XHU1YzIwXHV7MjBmYmN9XHU1ZTBiXHV7MjEwNWN9XHV7MjEwNGZ9XHV7MjEwNzZ9XHU2NzFlXHV7MjEwN2J9XHV7MjEwODh9XHV7MjEwOTZ9XHUzNjQ3XHV7MjEwYmZ9XHV7MjEwZDN9XHV7MjExMmZ9XHV7MjEx''@;'; put 'put ''M2J9XHU1MzY0XHU4NGFkXHV7MjEyZTN9XHV7MjEzNzV9XHV7MjEzMzZ9XHU4YjgxXHV7MjE1Nzd9XHV7MjE2MTl9XHV7MjE3YzN9XHV7MjE3Yzd9XHU0ZTc4XHU3MGJiXHV7MjE4MmR9XHV7MjE5NmF9Il0sWyI5YjQwIiwiXHV7MjFhMmR9XHV7MjFhNDV9XHV7MjFjMmF9XHV7MjFjNzB9XHV7''@;'; put 'put ''MjFjYWN9XHV7MjFlYzh9XHU2MmMzXHV7MjFlZDV9XHV7MjFmMTV9XHU3MTk4XHU2ODU1XHV7MjIwNDV9XHU2OWU5XHUzNmM4XHV7MjIyN2N9XHV7MjIzZDd9XHV7MjIzZmF9XHV7MjI3MmF9XHV7MjI4NzF9XHV7MjI5NGZ9XHU4MmZkXHV7MjI5Njd9XHV7MjI5OTN9XHV7MjJhZDV9XHU4OWE1''@;'; put 'put ''XHV7MjJhZTh9XHU4ZmEwXHV7MjJiMGV9XHU5N2I4XHV7MjJiM2Z9XHU5ODQ3XHU5YWJkXHV7MjJjNGN9Il0sWyI5YjYyIiwiXHV7MjJjODh9XHV7MjJjYjd9XHV7MjViZTh9XHV7MjJkMDh9XHV7MjJkMTJ9XHV7MjJkYjd9XHV7MjJkOTV9XHV7MjJlNDJ9XHV7MjJmNzR9XHV7MjJmY2N9XHV7''@;'; put 'put ''MjMwMzN9XHV7MjMwNjZ9XHV7MjMzMWZ9XHV7MjMzZGV9XHU1ZmIxXHU2NjQ4XHU2NmJmXHV7MjdhNzl9XHV7MjM1Njd9XHV7MjM1ZjN9XHU3MjAxXHV7MjQ5YmF9XHU3N2Q3XHV7MjM2MWF9XHV7MjM3MTZ9XHU3ZTg3XHV7MjAzNDZ9XHU1OGI1XHU2NzBlIl0sWyI5YmExIiwiXHU2OTE4XHV7''@;'; put 'put ''MjNhYTd9XHV7Mjc2NTd9XHV7MjVmZTJ9XHV7MjNlMTF9XHV7MjNlYjl9XHV7Mjc1ZmV9XHV7MjIwOWF9XHU0OGQwXHU0YWI4XHV7MjQxMTl9XHV7MjhhOWF9XHV7MjQyZWV9XHV7MjQzMGR9XHV7MjQwM2J9XHV7MjQzMzR9XHV7MjQzOTZ9XHV7MjRhNDV9XHV7MjA1Y2F9XHU1MWQyXHV7MjA2''@;'; put 'put ''MTF9XHU1OTlmXHV7MjFlYTh9XHUzYmJlXHV7MjNjZmZ9XHV7MjQ0MDR9XHV7MjQ0ZDZ9XHU1Nzg4XHV7MjQ2NzR9XHUzOTliXHV7MjQ3MmZ9XHV7Mjg1ZTh9XHV7Mjk5Yzl9XHUzNzYyXHV7MjIxYzN9XHU4YjVlXHV7MjhiNGV9XHU5OWQ2XHV7MjQ4MTJ9XHV7MjQ4ZmJ9XHV7MjRhMTV9XHU3''@;'; put 'put ''MjA5XHV7MjRhYzB9XHV7MjBjNzh9XHU1OTY1XHV7MjRlYTV9XHV7MjRmODZ9XHV7MjA3Nzl9XHU4ZWRhXHV7MjUwMmN9XHU1MjhmXHU1NzNmXHU3MTcxXHV7MjUyOTl9XHV7MjU0MTl9XHV7MjNmNGF9XHV7MjRhYTd9XHU1NWJjXHV7MjU0NDZ9XHV7MjU0NmV9XHV7MjZiNTJ9XHU5MWQ0XHUz''@;'; put 'put ''NDczXHV7MjU1M2Z9XHV7Mjc2MzJ9XHV7MjU1NWV9XHU0NzE4XHV7MjU1NjJ9XHV7MjU1NjZ9XHV7MjU3Yzd9XHV7MjQ5M2Z9XHV7MjU4NWR9XHU1MDY2XHUzNGZiXHV7MjMzY2N9XHU2MGRlXHV7MjU5MDN9XHU0NzdjXHV7Mjg5NDh9XHV7MjVhYWV9XHV7MjViODl9XHV7MjVjMDZ9XHV7MjFk''@;'; put 'put ''OTB9XHU1N2ExXHU3MTUxXHU2ZmI2XHV7MjYxMDJ9XHV7MjdjMTJ9XHU5MDU2XHV7MjYxYjJ9XHV7MjRmOWF9XHU4YjYyXHV7MjY0MDJ9XHV7MjY0NGF9Il0sWyI5YzQwIiwiXHU1ZDViXHV7MjZiZjd9XHU4ZjM2XHV7MjY0ODR9XHV7MjE5MWN9XHU4YWVhXHV7MjQ5ZjZ9XHV7MjY0ODh9XHV7''@;'; put 'put ''MjNmZWZ9XHV7MjY1MTJ9XHU0YmMwXHV7MjY1YmZ9XHV7MjY2YjV9XHV7MjI3MWJ9XHU5NDY1XHV7MjU3ZTF9XHU2MTk1XHU1YTI3XHV7MmY4Y2R9XHU0ZmJiXHU1NmI5XHV7MjQ1MjF9XHV7MjY2ZmN9XHU0ZTZhXHV7MjQ5MzR9XHU5NjU2XHU2ZDhmXHV7MjZjYmR9XHUzNjE4XHU4OTc3XHV7''@;'; put 'put ''MjY3OTl9XHV7MjY4NmV9XHV7MjY0MTF9XHV7MjY4NWV9XHU3MWRmXHV7MjY4Yzd9XHU3YjQyXHV7MjkwYzB9XHV7MjBhMTF9XHV7MjY5MjZ9XHU5MTA0XHV7MjY5Mzl9XHU3YTQ1XHU5ZGYwXHV7MjY5ZmF9XHU5YTI2XHV7MjZhMmR9XHUzNjVmXHV7MjY0Njl9XHV7MjAwMjF9XHU3OTgzXHV7''@;'; put 'put ''MjZhMzR9XHV7MjZiNWJ9XHU1ZDJjXHV7MjM1MTl9XHU4M2NmXHV7MjZiOWR9XHU0NmQwXHV7MjZjYTR9XHU3NTNiXHU4ODY1XHV7MjZkYWV9XHU1OGI2Il0sWyI5Y2ExIiwiXHUzNzFjXHV7MjI1OGR9XHV7MjcwNGJ9XHV7MjcxY2R9XHUzYzU0XHV7MjcyODB9XHV7MjcyODV9XHU5MjgxXHV7''@;'; put 'put ''MjIxN2F9XHV7MjcyOGJ9XHU5MzMwXHV7MjcyZTZ9XHV7MjQ5ZDB9XHU2YzM5XHU5NDlmXHV7Mjc0NTB9XHV7MjBlZjh9XHU4ODI3XHU4OGY1XHV7MjI5MjZ9XHV7Mjg0NzN9XHV7MjE3YjF9XHU2ZWI4XHV7MjRhMmF9XHV7MjE4MjB9XHUzOWE0XHUzNmI5XHU1YzEwXHU3OWUzXHU0NTNmXHU2''@;'; put 'put ''NmI2XHV7MjljYWR9XHV7Mjk4YTR9XHU4OTQzXHV7Mjc3Y2N9XHV7Mjc4NTh9XHU1NmQ2XHU0MGRmXHV7MjE2MGF9XHUzOWExXHV7MjM3MmZ9XHV7MjgwZTh9XHV7MjEzYzV9XHU3MWFkXHU4MzY2XHV7Mjc5ZGR9XHV7MjkxYTh9XHU1YTY3XHU0Y2I3XHV7MjcwYWZ9XHV7Mjg5YWJ9XHV7Mjc5''@;'; put 'put ''ZmR9XHV7MjdhMGF9XHV7MjdiMGJ9XHV7MjdkNjZ9XHV7MjQxN2F9XHU3YjQzXHU3OTdlXHV7MjgwMDl9XHU2ZmI1XHV7MmEyZGZ9XHU2YTAzXHV7MjgzMTh9XHU1M2EyXHV7MjZlMDd9XHU5M2JmXHU2ODM2XHU5NzVkXHV7MjgxNmZ9XHV7MjgwMjN9XHV7MjY5YjV9XHV7MjEzZWR9XHV7MjMy''@;'; put 'put ''MmZ9XHV7MjgwNDh9XHU1ZDg1XHV7MjhjMzB9XHV7MjgwODN9XHU1NzE1XHU5ODIzXHV7Mjg5NDl9XHU1ZGFiXHV7MjQ5ODh9XHU2NWJlXHU2OWQ1XHU1M2QyXHV7MjRhYTV9XHV7MjNmODF9XHUzYzExXHU2NzM2XHV7MjgwOTB9XHV7MjgwZjR9XHV7MjgxMmV9XHV7MjFmYTF9XHV7MjgxNGZ9''@;'; put 'put ''Il0sWyI5ZDQwIiwiXHV7MjgxODl9XHV7MjgxYWZ9XHV7MjgyMWF9XHV7MjgzMDZ9XHV7MjgzMmZ9XHV7MjgzOGF9XHUzNWNhXHV7Mjg0Njh9XHV7Mjg2YWF9XHU0OGZhXHU2M2U2XHV7Mjg5NTZ9XHU3ODA4XHU5MjU1XHV7Mjg5Yjh9XHU0M2YyXHV7Mjg5ZTd9XHU0M2RmXHV7Mjg5ZTh9XHV7''@;'; put 'put ''MjhiNDZ9XHV7MjhiZDR9XHU1OWY4XHV7MjhjMDl9XHU4ZjBiXHV7MjhmYzV9XHV7MjkwZWN9XHU3YjUxXHV7MjkxMTB9XHV7MjkxM2N9XHUzZGY3XHV7MjkxNWV9XHV7MjRhY2F9XHU4ZmQwXHU3MjhmXHU1NjhiXHV7Mjk0ZTd9XHV7Mjk1ZTl9XHV7Mjk1YjB9XHV7Mjk1Yjh9XHV7Mjk3MzJ9''@;'; put 'put ''XHV7Mjk4ZDF9XHV7Mjk5NDl9XHV7Mjk5NmF9XHV7Mjk5YzN9XHV7MjlhMjh9XHV7MjliMGV9XHV7MjlkNWF9XHV7MjlkOWJ9XHU3ZTlmXHV7MjllZjh9XHV7MjlmMjN9XHU0Y2E0XHU5NTQ3XHV7MmEyOTN9XHU3MWEyXHV7MmEyZmZ9XHU0ZDkxXHU5MDEyXHV7MmE1Y2J9XHU0ZDljXHV7MjBj''@;'; put 'put ''OWN9XHU4ZmJlXHU1NWMxIl0sWyI5ZGExIiwiXHU4ZmJhXHV7MjI0YjB9XHU4ZmI5XHV7MjRhOTN9XHU0NTA5XHU3ZTdmXHU2ZjU2XHU2YWIxXHU0ZWVhXHUzNGU0XHV7MjhiMmN9XHV7Mjc4OWR9XHUzNzNhXHU4ZTgwXHV7MjE3ZjV9XHV7MjgwMjR9XHV7MjhiNmN9XHV7MjhiOTl9XHV7Mjdh''@;'; put 'put ''M2V9XHV7MjY2YWZ9XHUzZGViXHV7Mjc2NTV9XHV7MjNjYjd9XHV7MjU2MzV9XHV7MjU5NTZ9XHU0ZTlhXHV7MjVlODF9XHV7MjYyNTh9XHU1NmJmXHV7MjBlNmR9XHU4ZTBlXHU1YjZkXHV7MjNlODh9XHV7MjRjOWV9XHU2M2RlXHU2MmQwXHV7MjE3ZjZ9XHV7MjE4N2J9XHU2NTMwXHU1NjJk''@;'; put 'put ''XHV7MjVjNGF9XHU1NDFhXHV7MjUzMTF9XHUzZGM2XHV7MjlkOTh9XHU0YzdkXHU1NjIyXHU1NjFlXHU3ZjQ5XHV7MjVlZDh9XHU1OTc1XHV7MjNkNDB9XHU4NzcwXHU0ZTFjXHV7MjBmZWF9XHV7MjBkNDl9XHV7MjM2YmF9XHU4MTE3XHU5ZDVlXHU4ZDE4XHU3NjNiXHU5YzQ1XHU3NjRlXHU3''@;'; put 'put ''N2I5XHU5MzQ1XHU1NDMyXHU4MTQ4XHU4MmY3XHU1NjI1XHU4MTMyXHU4NDE4XHU4MGJkXHU1NWVhXHU3OTYyXHU1NjQzXHU1NDE2XHV7MjBlOWR9XHUzNWNlXHU1NjA1XHU1NWYxXHU2NmYxXHV7MjgyZTJ9XHUzNjJkXHU3NTM0XHU1NWYwXHU1NWJhXHU1NDk3XHU1NTcyXHV7MjBjNDF9XHV7''@;'; put 'put ''MjBjOTZ9XHU1ZWQwXHV7MjUxNDh9XHV7MjBlNzZ9XHV7MjJjNjJ9Il0sWyI5ZTQwIiwiXHV7MjBlYTJ9XHU5ZWFiXHU3ZDVhXHU1NWRlXHV7MjEwNzV9XHU2MjlkXHU5NzZkXHU1NDk0XHU4Y2NkXHU3MWY2XHU5MTc2XHU2M2ZjXHU2M2I5XHU2M2ZlXHU1NTY5XHV7MjJiNDN9XHU5YzcyXHV7''@;'; put 'put ''MjJlYjN9XHU1MTlhXHUzNGRmXHV7MjBkYTd9XHU1MWE3XHU1NDRkXHU1NTFlXHU1NTEzXHU3NjY2XHU4ZTJkXHV7MjY4OGF9XHU3NWIxXHU4MGI2XHU4ODA0XHU4Nzg2XHU4OGM3XHU4MWI2XHU4NDFjXHV7MjEwYzF9XHU0NGVjXHU3MzA0XHV7MjQ3MDZ9XHU1YjkwXHU4MzBiXHV7MjY4OTN9''@;'; put 'put ''XHU1NjdiXHV7MjI2ZjR9XHV7MjdkMmZ9XHV7MjQxYTN9XHV7MjdkNzN9XHV7MjZlZDB9XHV7MjcyYjZ9XHU5MTcwXHV7MjExZDl9XHU5MjA4XHV7MjNjZmN9XHV7MmE2YTl9XHV7MjBlYWN9XHV7MjBlZjl9XHU3MjY2XHV7MjFjYTJ9XHU0NzRlXHV7MjRmYzJ9XHV7MjdmZjl9XHV7MjBmZWJ9''@;'; put 'put ''XHU0MGZhIl0sWyI5ZWExIiwiXHU5YzVkXHU2NTFmXHV7MjJkYTB9XHU0OGYzXHV7MjQ3ZTB9XHV7MjlkN2N9XHV7MjBmZWN9XHV7MjBlMGF9XHU2MDYyXHV7Mjc1YTN9XHV7MjBmZWR9Il0sWyI5ZWFkIiwiXHV7MjYwNDh9XHV7MjExODd9XHU3MWEzXHU3ZThlXHU5ZDUwXHU0ZTFhXHU0ZTA0''@;'; put 'put ''XHUzNTc3XHU1YjBkXHU2Y2IyXHU1MzY3XHUzNmFjXHUzOWRjXHU1MzdkXHUzNmE1XHV7MjQ2MTh9XHU1ODlhXHV7MjRiNmV9XHU4MjJkXHU1NDRiXHU1N2FhXHV7MjVhOTV9XHV7MjA5Nzl9Il0sWyI5ZWM1IiwiXHUzYTUyXHV7MjI0NjV9XHU3Mzc0XHV7MjllYWN9XHU0ZDA5XHU5YmVkXHV7''@;'; put 'put ''MjNjZmV9XHV7MjlmMzB9XHU0YzViXHV7MjRmYTl9XHV7Mjk1OWV9XHV7MjlmZGV9XHU4NDVjXHV7MjNkYjZ9XHV7MjcyYjJ9XHV7MjY3YjN9XHV7MjM3MjB9XHU2MzJlXHU3ZDI1XHV7MjNlZjd9XHV7MjNlMmN9XHUzYTJhXHU5MDA4XHU1MmNjXHUzZTc0XHUzNjdhXHU0NWU5XHV7MjA0OGV9''@;'; put 'put ''XHU3NjQwXHU1YWYwXHV7MjBlYjZ9XHU3ODdhXHV7MjdmMmV9XHU1OGE3XHU0MGJmXHU1NjdjXHU5YjhiXHU1ZDc0XHU3NjU0XHV7MmE0MzR9XHU5ZTg1XHU0Y2UxXHU3NWY5XHUzN2ZiXHU2MTE5XHV7MjMwZGF9XHV7MjQzZjJ9Il0sWyI5ZWY1IiwiXHU1NjVkXHV7MjEyYTl9XHU1N2E3XHV7''@;'; put 'put ''MjQ5NjN9XHV7MjllMDZ9XHU1MjM0XHV7MjcwYWV9XHUzNWFkXHU2YzRhXHU5ZDdjIl0sWyI5ZjQwIiwiXHU3YzU2XHU5YjM5XHU1N2RlXHV7MjE3NmN9XHU1YzUzXHU2NGQzXHV7Mjk0ZDB9XHV7MjYzMzV9XHV7MjcxNjR9XHU4NmFkXHV7MjBkMjh9XHV7MjZkMjJ9XHV7MjRhZTJ9XHV7MjBk''@;'; put 'put ''NzF9Il0sWyI5ZjRmIiwiXHU1MWZlXHV7MjFmMGZ9XHU1ZDhlXHU5NzAzXHV7MjFkZDF9XHU5ZTgxXHU5MDRjXHU3YjFmXHU5YjAyXHU1Y2QxXHU3YmEzXHU2MjY4XHU2MzM1XHU5YWZmXHU3YmNmXHU5YjJhXHU3YzdlXHU5YjJlXHU3YzQyXHU3Yzg2XHU5YzE1XHU3YmZjXHU5YjA5XHU5ZjE3''@;'; put 'put ''XHU5YzFiXHV7MjQ5M2V9XHU5ZjVhXHU1NTczXHU1YmMzXHU0ZmZkXHU5ZTk4XHU0ZmYyXHU1MjYwXHUzZTA2XHU1MmQxXHU1NzY3XHU1MDU2XHU1OWI3XHU1ZTEyXHU5N2M4XHU5ZGFiXHU4ZjVjXHU1NDY5XHU5N2I0XHU5OTQwXHU5N2JhXHU1MzJjXHU2MTMwIl0sWyI5ZmExIiwiXHU2OTJj''@;'; put 'put ''XHU1M2RhXHU5YzBhXHU5ZDAyXHU0YzNiXHU5NjQxXHU2OTgwXHU1MGE2XHU3NTQ2XHV7MjE3NmR9XHU5OWRhXHU1MjczIl0sWyI5ZmFlIiwiXHU5MTU5XHU5NjgxXHU5MTVjIl0sWyI5ZmIyIiwiXHU5MTUxXHV7MjhlOTd9XHU2MzdmXHV7MjZkMjN9XHU2YWNhXHU1NjExXHU5MThlXHU3NTdh''@;'; put 'put ''XHU2Mjg1XHV7MjAzZmN9XHU3MzRmXHU3YzcwXHV7MjVjMjF9XHV7MjNjZmR9Il0sWyI5ZmMxIiwiXHV7MjQ5MTl9XHU3NmQ2XHU5YjlkXHU0ZTJhXHV7MjBjZDR9XHU4M2JlXHU4ODQyIl0sWyI5ZmM5IiwiXHU1YzRhXHU2OWMwXHU1MGVkXHU1NzdhXHU1MjFmXHU1ZGY1XHU0ZWNlXHU2YzMx''@;'; put 'put ''XHV7MjAxZjJ9XHU0ZjM5XHU1NDljXHU1NGRhXHU1MjlhXHU4ZDgyXHUzNWZlXHU1ZjBjXHUzNWYzIl0sWyI5ZmRiIiwiXHU2YjUyXHU5MTdjXHU5ZmE1XHU5Yjk3XHU5ODJlXHU5OGI0XHU5YWJhXHU5ZWE4XHU5ZTg0XHU3MTdhXHU3YjE0Il0sWyI5ZmU3IiwiXHU2YmZhXHU4ODE4XHU3Zjc4''@;'; put 'put ''Il0sWyI5ZmViIiwiXHU1NjIwXHV7MmE2NGF9XHU4ZTc3XHU5ZjUzIl0sWyI5ZmYwIiwiXHU4ZGQ0XHU4ZTRmXHU5ZTFjXHU4ZTAxXHU2MjgyXHV7MjgzN2R9XHU4ZTI4XHU4ZTc1XHU3YWQzXHV7MjRhNzd9XHU3YTNlXHU3OGQ4XHU2Y2VhXHU4YTY3XHU3NjA3Il0sWyJhMDQwIiwiXHV7Mjhh''@;'; put 'put ''NWF9XHU5ZjI2XHU2Y2NlXHU4N2Q2XHU3NWMzXHV7MmEyYjJ9XHU3ODUzXHV7MmY4NDB9XHU4ZDBjXHU3MmUyXHU3MzcxXHU4YjJkXHU3MzAyXHU3NGYxXHU4Y2ViXHV7MjRhYmJ9XHU4NjJmXHU1ZmJhXHU4OGEwXHU0NGI3Il0sWyJhMDU1IiwiXHV7MjE4M2J9XHV7MjZlMDV9Il0sWyJhMDU4''@;'; put 'put ''IiwiXHU4YTdlXHV7MjI1MWJ9Il0sWyJhMDViIiwiXHU2MGZkXHU3NjY3XHU5YWQ3XHU5ZDQ0XHU5MzZlXHU5YjhmXHU4N2Y1Il0sWyJhMDYzIiwiXHU4ODBmXHU4Y2Y3XHU3MzJjXHU5NzIxXHU5YmIwXHUzNWQ2XHU3MmIyXHU0YzA3XHU3YzUxXHU5OTRhXHV7MjYxNTl9XHU2MTU5XHU0YzA0''@;'; put 'put ''XHU5ZTk2XHU2MTdkIl0sWyJhMDczIiwiXHU1NzVmXHU2MTZmXHU2MmE2XHU2MjM5XHU2MmNlXHUzYTVjXHU2MWUyXHU1M2FhXHV7MjMzZjV9XHU2MzY0XHU2ODAyXHUzNWQyIl0sWyJhMGExIiwiXHU1ZDU3XHV7MjhiYzJ9XHU4ZmRhXHV7MjhlMzl9Il0sWyJhMGE2IiwiXHU1MGQ5XHV7MjFk''@;'; put 'put ''NDZ9XHU3OTA2XHU1MzMyXHU5NjM4XHV7MjBmM2J9XHU0MDY1Il0sWyJhMGFlIiwiXHU3N2ZlIl0sWyJhMGIwIiwiXHU3Y2MyXHV7MjVmMWF9XHU3Y2RhXHU3YTJkXHU4MDY2XHU4MDYzXHU3ZDRkXHU3NTA1XHU3NGYyXHU4OTk0XHU4MjFhXHU2NzBjXHU4MDYyXHV7Mjc0ODZ9XHU4MDViXHU3''@;'; put 'put ''NGYwXHU4MTAzXHU3NzI0XHU4OTg5XHV7MjY3Y2N9XHU3NTUzXHV7MjZlZDF9XHU4N2E5XHU4N2NlXHU4MWM4XHU4NzhjXHU4YTQ5XHU4Y2FkXHU4YjQzXHU3NzJiXHU3NGY4XHU4NGRhXHUzNjM1XHU2OWIyXHU4ZGE2Il0sWyJhMGQ0IiwiXHU4OWE5XHU3NDY4XHU2ZGI5XHU4N2MxXHV7MjQw''@;'; put 'put ''MTF9XHU3NGU3XHUzZGRiXHU3MTc2XHU2MGE0XHU2MTljXHUzY2QxXHU3MTYyXHU2MDc3Il0sWyJhMGUyIiwiXHU3ZjcxXHV7MjhiMmR9XHU3MjUwXHU2MGU5XHU0YjdlXHU1MjIwXHUzYzE4XHV7MjNjYzd9XHV7MjVlZDd9XHV7Mjc2NTZ9XHV7MjU1MzF9XHV7MjE5NDR9XHV7MjEyZmV9XHV7''@;'; put 'put ''Mjk5MDN9XHV7MjZkZGN9XHV7MjcwYWR9XHU1Y2MxXHV7MjYxYWR9XHV7MjhhMGZ9XHV7MjM2Nzd9XHV7MjAwZWV9XHV7MjY4NDZ9XHV7MjRmMGV9XHU0NTYyXHU1YjFmXHV7MjYzNGN9XHU5ZjUwXHU5ZWE2XHV7MjYyNmJ9Il0sWyJhM2MwIiwiXHUyNDAwIiwzMSwiXHUyNDIxIl0sWyJjNmEx''@;'; put 'put ''IiwiXHUyNDYwIiw5LCJcdTI0NzQiLDksIlx1MjE3MCIsOSwiXHU0ZTM2XHU0ZTNmXHU0ZTg1XHU0ZWEwXHU1MTgyXHU1MTk2XHU1MWFiXHU1MmY5XHU1MzM4XHU1MzY5XHU1M2I2XHU1OTBhXHU1YjgwXHU1ZGRiXHUyZjMzXHU1ZTdmXHU1ZWY0XHU1ZjUwXHU1ZjYxXHU2NTM0XHU2NWUwXHU3''@;'; put 'put ''NTkyXHU3Njc2XHU4ZmI1XHU5NmI2XHhhOFx1MDJjNlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1ZmYzYlx1ZmYzZFx1MjczZFx1MzA0MSIsMjNdLFsiYzc0MCIsIlx1MzA1OSIsNTgsIlx1MzBhMVx1MzBhMlx1MzBhM1x1MzBh''@;'; put 'put ''NCJdLFsiYzdhMSIsIlx1MzBhNSIsODEsIlx1MDQxMCIsNSwiXHUwNDAxXHUwNDE2Iiw0XSxbImM4NDAiLCJcdTA0MWIiLDI2LCJcdTA0NTFcdTA0MzYiLDI1LCJcdTIxZTdcdTIxYjhcdTIxYjlcdTMxY2ZcdXsyMDBjY31cdTRlNWFcdXsyMDA4YX1cdTUyMDJcdTQ0OTEiXSxbImM4YTEiLCJc''@;'; put 'put ''dTlmYjBcdTUxODhcdTlmYjFcdXsyNzYwN30iXSxbImM4Y2QiLCJcdWZmZTJcdWZmZTRcdWZmMDdcdWZmMDJcdTMyMzFcdTIxMTZcdTIxMjFcdTMwOWJcdTMwOWNcdTJlODBcdTJlODRcdTJlODZcdTJlODdcdTJlODhcdTJlOGFcdTJlOGNcdTJlOGRcdTJlOTVcdTJlOWNcdTJlOWRcdTJlYTVc''@;'; put 'put ''dTJlYTdcdTJlYWFcdTJlYWNcdTJlYWVcdTJlYjZcdTJlYmNcdTJlYmVcdTJlYzZcdTJlY2FcdTJlY2NcdTJlY2RcdTJlY2ZcdTJlZDZcdTJlZDdcdTJlZGVcdTJlZTMiXSxbImM4ZjUiLCJcdTAyODNcdTAyNTBcdTAyNWJcdTAyNTRcdTAyNzVcdTAxNTNceGY4XHUwMTRiXHUwMjhhXHUwMjZh''@;'; put 'put ''Il0sWyJmOWZlIiwiXHVmZmVkIl0sWyJmYTQwIiwiXHV7MjA1NDd9XHU5MmRiXHV7MjA1ZGZ9XHV7MjNmYzV9XHU4NTRjXHU0MmI1XHU3M2VmXHU1MWI1XHUzNjQ5XHV7MjQ5NDJ9XHV7Mjg5ZTR9XHU5MzQ0XHV7MjE5ZGJ9XHU4MmVlXHV7MjNjYzh9XHU3ODNjXHU2NzQ0XHU2MmRmXHV7MjQ5''@;'; put 'put ''MzN9XHV7Mjg5YWF9XHV7MjAyYTB9XHV7MjZiYjN9XHV7MjEzMDV9XHU0ZmFiXHV7MjI0ZWR9XHU1MDA4XHV7MjZkMjl9XHV7MjdhODR9XHV7MjM2MDB9XHV7MjRhYjF9XHV7MjI1MTN9XHU1MDI5XHV7MjAzN2V9XHU1ZmE0XHV7MjAzODB9XHV7MjAzNDd9XHU2ZWRiXHV7MjA0MWZ9XHU1MDdk''@;'; put 'put ''XHU1MTAxXHUzNDdhXHU1MTBlXHU5ODZjXHUzNzQzXHU4NDE2XHV7MjQ5YTR9XHV7MjA0ODd9XHU1MTYwXHV7MjMzYjR9XHU1MTZhXHV7MjBiZmZ9XHV7MjIwZmN9XHV7MjAyZTV9XHV7MjI1MzB9XHV7MjA1OGV9XHV7MjMyMzN9XHV7MjE5ODN9XHU1YjgyXHU4NzdkXHV7MjA1YjN9XHV7MjNj''@;'; put 'put ''OTl9XHU1MWIyXHU1MWI4Il0sWyJmYWExIiwiXHU5ZDM0XHU1MWM5XHU1MWNmXHU1MWQxXHUzY2RjXHU1MWQzXHV7MjRhYTZ9XHU1MWIzXHU1MWUyXHU1MzQyXHU1MWVkXHU4M2NkXHU2OTNlXHV7MjM3MmR9XHU1ZjdiXHU1MjBiXHU1MjI2XHU1MjNjXHU1MmI1XHU1MjU3XHU1Mjk0XHU1MmI5''@;'; put 'put ''XHU1MmM1XHU3YzE1XHU4NTQyXHU1MmUwXHU4NjBkXHV7MjZiMTN9XHU1MzA1XHV7MjhhZGV9XHU1NTQ5XHU2ZWQ5XHV7MjNmODB9XHV7MjA5NTR9XHV7MjNmZWN9XHU1MzMzXHU1MzQ0XHV7MjBiZTJ9XHU2Y2NiXHV7MjE3MjZ9XHU2ODFiXHU3M2Q1XHU2MDRhXHUzZWFhXHUzOGNjXHV7MjE2''@;'; put 'put ''ZTh9XHU3MWRkXHU0NGEyXHU1MzZkXHU1Mzc0XHV7Mjg2YWJ9XHU1MzdlXHU1MzdmXHV7MjE1OTZ9XHV7MjE2MTN9XHU3N2U2XHU1MzkzXHV7MjhhOWJ9XHU1M2EwXHU1M2FiXHU1M2FlXHU3M2E3XHV7MjU3NzJ9XHUzZjU5XHU3MzljXHU1M2MxXHU1M2M1XHU2YzQ5XHU0ZTQ5XHU1N2ZlXHU1''@;'; put 'put ''M2Q5XHUzYWFiXHV7MjBiOGZ9XHU1M2UwXHV7MjNmZWJ9XHV7MjJkYTN9XHU1M2Y2XHV7MjBjNzd9XHU1NDEzXHU3MDc5XHU1NTJiXHU2NjU3XHU2ZDViXHU1NDZkXHV7MjZiNTN9XHV7MjBkNzR9XHU1NTVkXHU1NDhmXHU1NGE0XHU0N2E2XHV7MjE3MGR9XHV7MjBlZGR9XHUzZGI0XHV7MjBk''@;'; put 'put ''NGR9Il0sWyJmYjQwIiwiXHV7Mjg5YmN9XHV7MjI2OTh9XHU1NTQ3XHU0Y2VkXHU1NDJmXHU3NDE3XHU1NTg2XHU1NWE5XHU1NjA1XHV7MjE4ZDd9XHV7MjQwM2F9XHU0NTUyXHV7MjQ0MzV9XHU2NmIzXHV7MjEwYjR9XHU1NjM3XHU2NmNkXHV7MjMyOGF9XHU2NmE0XHU2NmFkXHU1NjRkXHU1''@;'; put 'put ''NjRmXHU3OGYxXHU1NmYxXHU5Nzg3XHU1M2ZlXHU1NzAwXHU1NmVmXHU1NmVkXHV7MjhiNjZ9XHUzNjIzXHV7MjEyNGZ9XHU1NzQ2XHV7MjQxYTV9XHU2YzZlXHU3MDhiXHU1NzQyXHUzNmIxXHV7MjZjN2V9XHU1N2U2XHV7MjE0MTZ9XHU1ODAzXHV7MjE0NTR9XHV7MjQzNjN9XHU1ODI2XHV7''@;'; put 'put ''MjRiZjV9XHU1ODVjXHU1OGFhXHUzNTYxXHU1OGUwXHU1OGRjXHV7MjEyM2N9XHU1OGZiXHU1YmZmXHU1NzQzXHV7MmExNTB9XHV7MjQyNzh9XHU5M2QzXHUzNWExXHU1OTFmXHU2OGE2XHUzNmMzXHU2ZTU5Il0sWyJmYmExIiwiXHV7MjE2M2V9XHU1YTI0XHU1NTUzXHV7MjE2OTJ9XHU4NTA1''@;'; put 'put ''XHU1OWM5XHV7MjBkNGV9XHV7MjZjODF9XHV7MjZkMmF9XHV7MjE3ZGN9XHU1OWQ5XHV7MjE3ZmJ9XHV7MjE3YjJ9XHV7MjZkYTZ9XHU2ZDcxXHV7MjE4Mjh9XHV7MjE2ZDV9XHU1OWY5XHV7MjZlNDV9XHU1YWFiXHU1YTYzXHUzNmU2XHV7MjQ5YTl9XHU1YTc3XHUzNzA4XHU1YTk2XHU3NDY1''@;'; put 'put ''XHU1YWQzXHV7MjZmYTF9XHV7MjI1NTR9XHUzZDg1XHV7MjE5MTF9XHUzNzMyXHV7MjE2Yjh9XHU1ZTgzXHU1MmQwXHU1Yjc2XHU2NTg4XHU1YjdjXHV7MjdhMGV9XHU0MDA0XHU0ODVkXHV7MjAyMDR9XHU1YmQ1XHU2MTYwXHV7MjFhMzR9XHV7MjU5Y2N9XHV7MjA1YTV9XHU1YmYzXHU1Yjlk''@;'; put 'put ''XHU0ZDEwXHU1YzA1XHV7MjFiNDR9XHU1YzEzXHU3M2NlXHU1YzE0XHV7MjFjYTV9XHV7MjZiMjh9XHU1YzQ5XHU0OGRkXHU1Yzg1XHU1Y2U5XHU1Y2VmXHU1ZDhiXHV7MjFkZjl9XHV7MjFlMzd9XHU1ZDEwXHU1ZDE4XHU1ZDQ2XHV7MjFlYTR9XHU1Y2JhXHU1ZGQ3XHU4MmZjXHUzODJkXHV7''@;'; put 'put ''MjQ5MDF9XHV7MjIwNDl9XHV7MjIxNzN9XHU4Mjg3XHUzODM2XHUzYmMyXHU1ZTJlXHU2YThhXHU1ZTc1XHU1ZTdhXHV7MjQ0YmN9XHV7MjBjZDN9XHU1M2E2XHU0ZWI3XHU1ZWQwXHU1M2E4XHV7MjE3NzF9XHU1ZTA5XHU1ZWY0XHV7Mjg0ODJ9Il0sWyJmYzQwIiwiXHU1ZWY5XHU1ZWZiXHUz''@;'; put 'put ''OGEwXHU1ZWZjXHU2ODNlXHU5NDFiXHU1ZjBkXHV7MjAxYzF9XHV7MmY4OTR9XHUzYWRlXHU0OGFlXHV7MjEzM2F9XHU1ZjNhXHV7MjY4ODh9XHV7MjIzZDB9XHU1ZjU4XHV7MjI0NzF9XHU1ZjYzXHU5N2JkXHV7MjZlNmV9XHU1ZjcyXHU5MzQwXHV7MjhhMzZ9XHU1ZmE3XHU1ZGI2XHUzZDVm''@;'; put 'put ''XHV7MjUyNTB9XHV7MjFmNmF9XHV7MjcwZjh9XHV7MjI2Njh9XHU5MWQ2XHV7MjAyOWV9XHV7MjhhMjl9XHU2MDMxXHU2Njg1XHV7MjE4Nzd9XHUzOTYzXHUzZGM3XHUzNjM5XHU1NzkwXHV7MjI3YjR9XHU3OTcxXHUzZTQwXHU2MDllXHU2MGE0XHU2MGIzXHV7MjQ5ODJ9XHV7MjQ5OGZ9XHV7''@;'; put 'put ''MjdhNTN9XHU3NGE0XHU1MGUxXHU1YWEwXHU2MTY0XHU4NDI0XHU2MTQyXHV7MmY4YTZ9XHV7MjZlZDJ9XHU2MTgxXHU1MWY0XHV7MjA2NTZ9XHU2MTg3XHU1YmFhXHV7MjNmYjd9Il0sWyJmY2ExIiwiXHV7MjI4NWZ9XHU2MWQzXHV7MjhiOWR9XHV7Mjk5NWR9XHU2MWQwXHUzOTMyXHV7MjI5''@;'; put 'put ''ODB9XHV7MjI4YzF9XHU2MDIzXHU2MTVjXHU2NTFlXHU2MzhiXHV7MjAxMTh9XHU2MmM1XHV7MjE3NzB9XHU2MmQ1XHV7MjJlMGR9XHU2MzZjXHV7MjQ5ZGZ9XHUzYTE3XHU2NDM4XHU2M2Y4XHV7MjEzOGV9XHV7MjE3ZmN9XHU2NDkwXHU2ZjhhXHV7MjJlMzZ9XHU5ODE0XHV7MjQwOGN9XHV7''@;'; put 'put ''MjU3MWR9XHU2NGUxXHU2NGU1XHU5NDdiXHUzYTY2XHU2NDNhXHUzYTU3XHU2NTRkXHU2ZjE2XHV7MjRhMjh9XHV7MjRhMjN9XHU2NTg1XHU2NTZkXHU2NTVmXHV7MjMwN2V9XHU2NWI1XHV7MjQ5NDB9XHU0YjM3XHU2NWQxXHU0MGQ4XHV7MjE4Mjl9XHU2NWUwXHU2NWUzXHU1ZmRmXHV7MjM0''@;'; put 'put ''MDB9XHU2NjE4XHV7MjMxZjd9XHV7MjMxZjh9XHU2NjQ0XHV7MjMxYTR9XHV7MjMxYTV9XHU2NjRiXHV7MjBlNzV9XHU2NjY3XHV7MjUxZTZ9XHU2NjczXHU2Njc0XHV7MjFlM2R9XHV7MjMyMzF9XHV7Mjg1ZjR9XHV7MjMxYzh9XHV7MjUzMTN9XHU3N2M1XHV7MjI4Zjd9XHU5OWE0XHU2NzAy''@;'; put 'put ''XHV7MjQzOWN9XHV7MjRhMjF9XHUzYjJiXHU2OWZhXHV7MjM3YzJ9XHU2NzVlXHU2NzY3XHU2NzYyXHV7MjQxY2R9XHV7MjkwZWR9XHU2N2Q3XHU0NGU5XHU2ODIyXHU2ZTUwXHU5MjNjXHU2ODAxXHV7MjMzZTZ9XHV7MjZkYTB9XHU2ODVkIl0sWyJmZDQwIiwiXHV7MjM0NmZ9XHU2OWUxXHU2''@;'; put 'put ''YTBiXHV7MjhhZGZ9XHU2OTczXHU2OGMzXHV7MjM1Y2R9XHU2OTAxXHU2OTAwXHUzZDMyXHUzYTAxXHV7MjM2M2N9XHUzYjgwXHU2N2FjXHU2OTYxXHV7MjhhNGF9XHU0MmZjXHU2OTM2XHU2OTk4XHUzYmExXHV7MjAzYzl9XHU4MzYzXHU1MDkwXHU2OWY5XHV7MjM2NTl9XHV7MjIxMmF9XHU2''@;'; put 'put ''YTQ1XHV7MjM3MDN9XHU2YTlkXHUzYmYzXHU2N2IxXHU2YWM4XHV7MjkxOWN9XHUzYzBkXHU2YjFkXHV7MjA5MjN9XHU2MGRlXHU2YjM1XHU2Yjc0XHV7MjI3Y2R9XHU2ZWI1XHV7MjNhZGJ9XHV7MjAzYjV9XHV7MjE5NTh9XHUzNzQwXHU1NDIxXHV7MjNiNWF9XHU2YmUxXHV7MjNlZmN9XHU2''@;'; put 'put ''YmRjXHU2YzM3XHV7MjI0OGJ9XHV7MjQ4ZjF9XHV7MjZiNTF9XHU2YzVhXHU4MjI2XHU2Yzc5XHV7MjNkYmN9XHU0NGM1XHV7MjNkYmR9XHV7MjQxYTR9XHV7MjQ5MGN9XHV7MjQ5MDB9Il0sWyJmZGExIiwiXHV7MjNjYzl9XHUzNmU1XHUzY2ViXHV7MjBkMzJ9XHU5YjgzXHV7MjMxZjl9XHV7''@;'; put 'put ''MjI0OTF9XHU3ZjhmXHU2ODM3XHV7MjZkMjV9XHV7MjZkYTF9XHV7MjZkZWJ9XHU2ZDk2XHU2ZDVjXHU2ZTdjXHU2ZjA0XHV7MjQ5N2Z9XHV7MjQwODV9XHV7MjZlNzJ9XHU4NTMzXHV7MjZmNzR9XHU1MWM3XHU2YzljXHU2ZTFkXHU4NDJlXHV7MjhiMjF9XHU2ZTJmXHV7MjNlMmZ9XHU3NDUz''@;'; put 'put ''XHV7MjNmODJ9XHU3OWNjXHU2ZTRmXHU1YTkxXHV7MjMwNGJ9XHU2ZmY4XHUzNzBkXHU2ZjlkXHV7MjNlMzB9XHU2ZWZhXHV7MjE0OTd9XHV7MjQwM2R9XHU0NTU1XHU5M2YwXHU2ZjQ0XHU2ZjVjXHUzZDRlXHU2Zjc0XHV7MjkxNzB9XHUzZDNiXHU2ZjlmXHV7MjQxNDR9XHU2ZmQzXHV7MjQw''@;'; put 'put ''OTF9XHV7MjQxNTV9XHV7MjQwMzl9XHV7MjNmZjB9XHV7MjNmYjR9XHV7MjQxM2Z9XHU1MWRmXHV7MjQxNTZ9XHV7MjQxNTd9XHV7MjQxNDB9XHV7MjYxZGR9XHU3MDRiXHU3MDdlXHU3MGE3XHU3MDgxXHU3MGNjXHU3MGQ1XHU3MGQ2XHU3MGRmXHU0MTA0XHUzZGU4XHU3MWI0XHU3MTk2XHV7''@;'; put 'put ''MjQyNzd9XHU3MTJiXHU3MTQ1XHU1YTg4XHU3MTRhXHU3MTZlXHU1YzljXHV7MjQzNjV9XHU3MTRmXHU5MzYyXHV7MjQyYzF9XHU3MTJjXHV7MjQ0NWF9XHV7MjRhMjd9XHV7MjRhMjJ9XHU3MWJhXHV7MjhiZTh9XHU3MGJkXHU3MjBlIl0sWyJmZTQwIiwiXHU5NDQyXHU3MjE1XHU1OTExXHU5''@;'; put 'put ''NDQzXHU3MjI0XHU5MzQxXHV7MjU2MDV9XHU3MjJlXHU3MjQwXHV7MjQ5NzR9XHU2OGJkXHU3MjU1XHU3MjU3XHUzZTU1XHV7MjMwNDR9XHU2ODBkXHU2ZjNkXHU3MjgyXHU3MzJhXHU3MzJiXHV7MjQ4MjN9XHV7Mjg4MmJ9XHU0OGVkXHV7Mjg4MDR9XHU3MzI4XHU3MzJlXHU3M2NmXHU3M2Fh''@;'; put 'put ''XHV7MjBjM2F9XHV7MjZhMmV9XHU3M2M5XHU3NDQ5XHV7MjQxZTJ9XHV7MjE2ZTd9XHV7MjRhMjR9XHU2NjIzXHUzNmM1XHV7MjQ5Yjd9XHV7MjQ5OGR9XHV7MjQ5ZmJ9XHU3M2Y3XHU3NDE1XHU2OTAzXHV7MjRhMjZ9XHU3NDM5XHV7MjA1YzN9XHUzZWQ3XHU3NDVjXHV7MjI4YWR9XHU3NDYw''@;'; put 'put ''XHV7MjhlYjJ9XHU3NDQ3XHU3M2U0XHU3NDc2XHU4M2I5XHU3NDZjXHUzNzMwXHU3NDc0XHU5M2YxXHU2YTJjXHU3NDgyXHU0OTUzXHV7MjRhOGN9Il0sWyJmZWExIiwiXHV7MjQxNWZ9XHV7MjRhNzl9XHV7MjhiOGZ9XHU1YjQ2XHV7MjhjMDN9XHV7MjE4OWV9XHU3NGM4XHV7MjE5ODh9XHU3''@;'; put 'put ''NTBlXHU3NGU5XHU3NTFlXHV7MjhlZDl9XHV7MjFhNGJ9XHU1YmQ3XHV7MjhlYWN9XHU5Mzg1XHU3NTRkXHU3NTRhXHU3NTY3XHU3NTZlXHV7MjRmODJ9XHUzZjA0XHV7MjRkMTN9XHU3NThlXHU3NDVkXHU3NTllXHU3NWI0XHU3NjAyXHU3NjJjXHU3NjUxXHU3NjRmXHU3NjZmXHU3Njc2XHV7''@;'; put 'put ''MjYzZjV9XHU3NjkwXHU4MWVmXHUzN2Y4XHV7MjY5MTF9XHV7MjY5MGV9XHU3NmExXHU3NmE1XHU3NmI3XHU3NmNjXHV7MjZmOWZ9XHU4NDYyXHV7MjUwOWR9XHV7MjUxN2R9XHV7MjFlMWN9XHU3NzFlXHU3NzI2XHU3NzQwXHU2NGFmXHV7MjUyMjB9XHU3NzU4XHV7MjMyYWN9XHU3N2FmXHV7''@;'; put 'put ''Mjg5NjR9XHV7Mjg5Njh9XHV7MjE2YzF9XHU3N2Y0XHU3ODA5XHV7MjEzNzZ9XHV7MjRhMTJ9XHU2OGNhXHU3OGFmXHU3OGM3XHU3OGQzXHU5NmE1XHU3OTJlXHV7MjU1ZTB9XHU3OGQ3XHU3OTM0XHU3OGIxXHV7Mjc2MGN9XHU4ZmI4XHU4ODg0XHV7MjhiMmJ9XHV7MjYwODN9XHV7MjI2MWN9''@;'; put 'put ''XHU3OTg2XHU4OTAwXHU2OTAyXHU3OTgwXHV7MjU4NTd9XHU3OTlkXHV7MjdiMzl9XHU3OTNjXHU3OWE5XHU2ZTJhXHV7MjcxMjZ9XHUzZWE4XHU3OWM2XHV7MjkxMGR9XHU3OWQ0Il1dJyl9LDEzMzM2OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxc''@;'; put 'put ''dTAwMDAiLDEyNywiXHUyMGFjIl0sWyI4MTQwIiwiXHU0ZTAyXHU0ZTA0XHU0ZTA1XHU0ZTA2XHU0ZTBmXHU0ZTEyXHU0ZTE3XHU0ZTFmXHU0ZTIwXHU0ZTIxXHU0ZTIzXHU0ZTI2XHU0ZTI5XHU0ZTJlXHU0ZTJmXHU0ZTMxXHU0ZTMzXHU0ZTM1XHU0ZTM3XHU0ZTNjXHU0ZTQwXHU0ZTQxXHU0''@;'; put 'put ''ZTQyXHU0ZTQ0XHU0ZTQ2XHU0ZTRhXHU0ZTUxXHU0ZTU1XHU0ZTU3XHU0ZTVhXHU0ZTViXHU0ZTYyXHU0ZTYzXHU0ZTY0XHU0ZTY1XHU0ZTY3XHU0ZTY4XHU0ZTZhIiw1LCJcdTRlNzJcdTRlNzQiLDksIlx1NGU3ZiIsNiwiXHU0ZTg3XHU0ZThhIl0sWyI4MTgwIiwiXHU0ZTkwXHU0ZTk2XHU0''@;'; put 'put ''ZTk3XHU0ZTk5XHU0ZTljXHU0ZTlkXHU0ZTllXHU0ZWEzXHU0ZWFhXHU0ZWFmXHU0ZWIwXHU0ZWIxXHU0ZWI0XHU0ZWI2XHU0ZWI3XHU0ZWI4XHU0ZWI5XHU0ZWJjXHU0ZWJkXHU0ZWJlXHU0ZWM4XHU0ZWNjXHU0ZWNmXHU0ZWQwXHU0ZWQyXHU0ZWRhXHU0ZWRiXHU0ZWRjXHU0ZWUwXHU0ZWUy''@;'; put 'put ''XHU0ZWU2XHU0ZWU3XHU0ZWU5XHU0ZWVkXHU0ZWVlXHU0ZWVmXHU0ZWYxXHU0ZWY0XHU0ZWY4XHU0ZWY5XHU0ZWZhXHU0ZWZjXHU0ZWZlXHU0ZjAwXHU0ZjAyIiw2LCJcdTRmMGJcdTRmMGNcdTRmMTIiLDQsIlx1NGYxY1x1NGYxZFx1NGYyMVx1NGYyM1x1NGYyOFx1NGYyOVx1NGYyY1x1NGYy''@;'; put 'put ''ZFx1NGYyZVx1NGYzMVx1NGYzM1x1NGYzNVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZSIsNCwiXHU0ZjQ0XHU0ZjQ1XHU0ZjQ3Iiw1LCJcdTRmNTJcdTRmNTRcdTRmNTZcdTRmNjFcdTRmNjJcdTRmNjZcdTRmNjhcdTRmNmFcdTRmNmJcdTRmNmRcdTRmNmVcdTRmNzFcdTRmNzJcdTRmNzVcdTRm''@;'; put 'put ''NzdcdTRmNzhcdTRmNzlcdTRmN2FcdTRmN2RcdTRmODBcdTRmODFcdTRmODJcdTRmODVcdTRmODZcdTRmODdcdTRmOGFcdTRmOGNcdTRmOGVcdTRmOTBcdTRmOTJcdTRmOTNcdTRmOTVcdTRmOTZcdTRmOThcdTRmOTlcdTRmOWFcdTRmOWNcdTRmOWVcdTRmOWZcdTRmYTFcdTRmYTIiXSxbIjgy''@;'; put 'put ''NDAiLCJcdTRmYTRcdTRmYWJcdTRmYWRcdTRmYjAiLDQsIlx1NGZiNiIsOCwiXHU0ZmMwXHU0ZmMxXHU0ZmMyXHU0ZmM2XHU0ZmM3XHU0ZmM4XHU0ZmM5XHU0ZmNiXHU0ZmNjXHU0ZmNkXHU0ZmQyIiw0LCJcdTRmZDlcdTRmZGJcdTRmZTBcdTRmZTJcdTRmZTRcdTRmZTVcdTRmZTdcdTRmZWJc''@;'; put 'put ''dTRmZWNcdTRmZjBcdTRmZjJcdTRmZjRcdTRmZjVcdTRmZjZcdTRmZjdcdTRmZjlcdTRmZmJcdTRmZmNcdTRmZmRcdTRmZmYiLDExXSxbIjgyODAiLCJcdTUwMGJcdTUwMGVcdTUwMTBcdTUwMTFcdTUwMTNcdTUwMTVcdTUwMTZcdTUwMTdcdTUwMWJcdTUwMWRcdTUwMWVcdTUwMjBcdTUwMjJc''@;'; put 'put ''dTUwMjNcdTUwMjRcdTUwMjdcdTUwMmJcdTUwMmYiLDEwLCJcdTUwM2JcdTUwM2RcdTUwM2ZcdTUwNDBcdTUwNDFcdTUwNDJcdTUwNDRcdTUwNDVcdTUwNDZcdTUwNDlcdTUwNGFcdTUwNGJcdTUwNGRcdTUwNTAiLDQsIlx1NTA1Nlx1NTA1N1x1NTA1OFx1NTA1OVx1NTA1Ylx1NTA1ZCIsNywi''@;'; put 'put ''XHU1MDY2Iiw1LCJcdTUwNmQiLDgsIlx1NTA3OFx1NTA3OVx1NTA3YVx1NTA3Y1x1NTA3ZFx1NTA4MVx1NTA4Mlx1NTA4M1x1NTA4NFx1NTA4Nlx1NTA4N1x1NTA4OVx1NTA4YVx1NTA4Ylx1NTA4Y1x1NTA4ZSIsMjAsIlx1NTBhNFx1NTBhNlx1NTBhYVx1NTBhYlx1NTBhZCIsNCwiXHU1MGIz''@;'; put 'put ''Iiw2LCJcdTUwYmMiXSxbIjgzNDAiLCJcdTUwYmQiLDE3LCJcdTUwZDAiLDUsIlx1NTBkN1x1NTBkOFx1NTBkOVx1NTBkYiIsMTAsIlx1NTBlOFx1NTBlOVx1NTBlYVx1NTBlYlx1NTBlZlx1NTBmMFx1NTBmMVx1NTBmMlx1NTBmNFx1NTBmNiIsNCwiXHU1MGZjIiw5LCJcdTUxMDgiXSxbIjgz''@;'; put 'put ''ODAiLCJcdTUxMDlcdTUxMGFcdTUxMGMiLDUsIlx1NTExMyIsMTMsIlx1NTEyMiIsMjgsIlx1NTE0Mlx1NTE0N1x1NTE0YVx1NTE0Y1x1NTE0ZVx1NTE0Zlx1NTE1MFx1NTE1Mlx1NTE1M1x1NTE1N1x1NTE1OFx1NTE1OVx1NTE1Ylx1NTE1ZCIsNCwiXHU1MTYzXHU1MTY0XHU1MTY2XHU1MTY3''@;'; put 'put ''XHU1MTY5XHU1MTZhXHU1MTZmXHU1MTcyXHU1MTdhXHU1MTdlXHU1MTdmXHU1MTgzXHU1MTg0XHU1MTg2XHU1MTg3XHU1MThhXHU1MThiXHU1MThlXHU1MThmXHU1MTkwXHU1MTkxXHU1MTkzXHU1MTk0XHU1MTk4XHU1MTlhXHU1MTlkXHU1MTllXHU1MTlmXHU1MWExXHU1MWEzXHU1MWE2Iiw0''@;'; put 'put ''LCJcdTUxYWRcdTUxYWVcdTUxYjRcdTUxYjhcdTUxYjlcdTUxYmFcdTUxYmVcdTUxYmZcdTUxYzFcdTUxYzJcdTUxYzNcdTUxYzVcdTUxYzhcdTUxY2FcdTUxY2RcdTUxY2VcdTUxZDBcdTUxZDIiLDVdLFsiODQ0MCIsIlx1NTFkOFx1NTFkOVx1NTFkYVx1NTFkY1x1NTFkZVx1NTFkZlx1NTFl''@;'; put 'put ''Mlx1NTFlM1x1NTFlNSIsNSwiXHU1MWVjXHU1MWVlXHU1MWYxXHU1MWYyXHU1MWY0XHU1MWY3XHU1MWZlXHU1MjA0XHU1MjA1XHU1MjA5XHU1MjBiXHU1MjBjXHU1MjBmXHU1MjEwXHU1MjEzXHU1MjE0XHU1MjE1XHU1MjFjXHU1MjFlXHU1MjFmXHU1MjIxXHU1MjIyXHU1MjIzXHU1MjI1XHU1''@;'; put 'put ''MjI2XHU1MjI3XHU1MjJhXHU1MjJjXHU1MjJmXHU1MjMxXHU1MjMyXHU1MjM0XHU1MjM1XHU1MjNjXHU1MjNlXHU1MjQ0Iiw1LCJcdTUyNGJcdTUyNGVcdTUyNGZcdTUyNTJcdTUyNTNcdTUyNTVcdTUyNTdcdTUyNTgiXSxbIjg0ODAiLCJcdTUyNTlcdTUyNWFcdTUyNWJcdTUyNWRcdTUyNWZc''@;'; put 'put ''dTUyNjBcdTUyNjJcdTUyNjNcdTUyNjRcdTUyNjZcdTUyNjhcdTUyNmJcdTUyNmNcdTUyNmRcdTUyNmVcdTUyNzBcdTUyNzFcdTUyNzMiLDksIlx1NTI3ZVx1NTI4MFx1NTI4MyIsNCwiXHU1Mjg5Iiw2LCJcdTUyOTFcdTUyOTJcdTUyOTQiLDYsIlx1NTI5Y1x1NTJhNFx1NTJhNVx1NTJhNlx1''@;'; put 'put ''NTJhN1x1NTJhZVx1NTJhZlx1NTJiMFx1NTJiNCIsOSwiXHU1MmMwXHU1MmMxXHU1MmMyXHU1MmM0XHU1MmM1XHU1MmM2XHU1MmM4XHU1MmNhXHU1MmNjXHU1MmNkXHU1MmNlXHU1MmNmXHU1MmQxXHU1MmQzXHU1MmQ0XHU1MmQ1XHU1MmQ3XHU1MmQ5Iiw1LCJcdTUyZTBcdTUyZTFcdTUyZTJc''@;'; put 'put ''dTUyZTNcdTUyZTUiLDEwLCJcdTUyZjEiLDcsIlx1NTJmYlx1NTJmY1x1NTJmZFx1NTMwMVx1NTMwMlx1NTMwM1x1NTMwNFx1NTMwN1x1NTMwOVx1NTMwYVx1NTMwYlx1NTMwY1x1NTMwZSJdLFsiODU0MCIsIlx1NTMxMVx1NTMxMlx1NTMxM1x1NTMxNFx1NTMxOFx1NTMxYlx1NTMxY1x1NTMx''@;'; put 'put ''ZVx1NTMxZlx1NTMyMlx1NTMyNFx1NTMyNVx1NTMyN1x1NTMyOFx1NTMyOVx1NTMyYlx1NTMyY1x1NTMyZFx1NTMyZiIsOSwiXHU1MzNjXHU1MzNkXHU1MzQwXHU1MzQyXHU1MzQ0XHU1MzQ2XHU1MzRiXHU1MzRjXHU1MzRkXHU1MzUwXHU1MzU0XHU1MzU4XHU1MzU5XHU1MzViXHU1MzVkXHU1''@;'; put 'put ''MzY1XHU1MzY4XHU1MzZhXHU1MzZjXHU1MzZkXHU1MzcyXHU1Mzc2XHU1Mzc5XHU1MzdiXHU1MzdjXHU1MzdkXHU1MzdlXHU1MzgwXHU1MzgxXHU1MzgzXHU1Mzg3XHU1Mzg4XHU1MzhhXHU1MzhlXHU1MzhmIl0sWyI4NTgwIiwiXHU1MzkwIiw0LCJcdTUzOTZcdTUzOTdcdTUzOTlcdTUzOWJc''@;'; put 'put ''dTUzOWNcdTUzOWVcdTUzYTBcdTUzYTFcdTUzYTRcdTUzYTdcdTUzYWFcdTUzYWJcdTUzYWNcdTUzYWRcdTUzYWYiLDYsIlx1NTNiN1x1NTNiOFx1NTNiOVx1NTNiYVx1NTNiY1x1NTNiZFx1NTNiZVx1NTNjMFx1NTNjMyIsNCwiXHU1M2NlXHU1M2NmXHU1M2QwXHU1M2QyXHU1M2QzXHU1M2Q1''@;'; put 'put ''XHU1M2RhXHU1M2RjXHU1M2RkXHU1M2RlXHU1M2UxXHU1M2UyXHU1M2U3XHU1M2Y0XHU1M2ZhXHU1M2ZlXHU1M2ZmXHU1NDAwXHU1NDAyXHU1NDA1XHU1NDA3XHU1NDBiXHU1NDE0XHU1NDE4XHU1NDE5XHU1NDFhXHU1NDFjXHU1NDIyXHU1NDI0XHU1NDI1XHU1NDJhXHU1NDMwXHU1NDMzXHU1''@;'; put 'put ''NDM2XHU1NDM3XHU1NDNhXHU1NDNkXHU1NDNmXHU1NDQxXHU1NDQyXHU1NDQ0XHU1NDQ1XHU1NDQ3XHU1NDQ5XHU1NDRjXHU1NDRkXHU1NDRlXHU1NDRmXHU1NDUxXHU1NDVhXHU1NDVkIiw0LCJcdTU0NjNcdTU0NjVcdTU0NjdcdTU0NjkiLDcsIlx1NTQ3NFx1NTQ3OVx1NTQ3YVx1NTQ3ZVx1''@;'; put 'put ''NTQ3Zlx1NTQ4MVx1NTQ4M1x1NTQ4NVx1NTQ4N1x1NTQ4OFx1NTQ4OVx1NTQ4YVx1NTQ4ZFx1NTQ5MVx1NTQ5M1x1NTQ5N1x1NTQ5OFx1NTQ5Y1x1NTQ5ZVx1NTQ5Zlx1NTRhMFx1NTRhMSJdLFsiODY0MCIsIlx1NTRhMlx1NTRhNVx1NTRhZVx1NTRiMFx1NTRiMlx1NTRiNVx1NTRiNlx1NTRi''@;'; put 'put ''N1x1NTRiOVx1NTRiYVx1NTRiY1x1NTRiZVx1NTRjM1x1NTRjNVx1NTRjYVx1NTRjYlx1NTRkNlx1NTRkOFx1NTRkYlx1NTRlMCIsNCwiXHU1NGViXHU1NGVjXHU1NGVmXHU1NGYwXHU1NGYxXHU1NGY0Iiw1LCJcdTU0ZmJcdTU0ZmVcdTU1MDBcdTU1MDJcdTU1MDNcdTU1MDRcdTU1MDVcdTU1''@;'; put 'put ''MDhcdTU1MGEiLDQsIlx1NTUxMlx1NTUxM1x1NTUxNSIsNSwiXHU1NTFjXHU1NTFkXHU1NTFlXHU1NTFmXHU1NTIxXHU1NTI1XHU1NTI2Il0sWyI4NjgwIiwiXHU1NTI4XHU1NTI5XHU1NTJiXHU1NTJkXHU1NTMyXHU1NTM0XHU1NTM1XHU1NTM2XHU1NTM4XHU1NTM5XHU1NTNhXHU1NTNiXHU1''@;'; put 'put ''NTNkXHU1NTQwXHU1NTQyXHU1NTQ1XHU1NTQ3XHU1NTQ4XHU1NTRiIiw0LCJcdTU1NTFcdTU1NTJcdTU1NTNcdTU1NTRcdTU1NTciLDQsIlx1NTU1ZFx1NTU1ZVx1NTU1Zlx1NTU2MFx1NTU2Mlx1NTU2M1x1NTU2OFx1NTU2OVx1NTU2Ylx1NTU2ZiIsNSwiXHU1NTc5XHU1NTdhXHU1NTdkXHU1''@;'; put 'put ''NTdmXHU1NTg1XHU1NTg2XHU1NThjXHU1NThkXHU1NThlXHU1NTkwXHU1NTkyXHU1NTkzXHU1NTk1XHU1NTk2XHU1NTk3XHU1NTlhXHU1NTliXHU1NTllXHU1NWEwIiw2LCJcdTU1YTgiLDgsIlx1NTViMlx1NTViNFx1NTViNlx1NTViOFx1NTViYVx1NTViY1x1NTViZiIsNCwiXHU1NWM2XHU1''@;'; put 'put ''NWM3XHU1NWM4XHU1NWNhXHU1NWNiXHU1NWNlXHU1NWNmXHU1NWQwXHU1NWQ1XHU1NWQ3Iiw0LCJcdTU1ZGVcdTU1ZTBcdTU1ZTJcdTU1ZTdcdTU1ZTlcdTU1ZWRcdTU1ZWVcdTU1ZjBcdTU1ZjFcdTU1ZjRcdTU1ZjZcdTU1ZjgiLDQsIlx1NTVmZlx1NTYwMlx1NTYwM1x1NTYwNFx1NTYwNSJd''@;'; put 'put ''LFsiODc0MCIsIlx1NTYwNlx1NTYwN1x1NTYwYVx1NTYwYlx1NTYwZFx1NTYxMCIsNywiXHU1NjE5XHU1NjFhXHU1NjFjXHU1NjFkXHU1NjIwXHU1NjIxXHU1NjIyXHU1NjI1XHU1NjI2XHU1NjI4XHU1NjI5XHU1NjJhXHU1NjJiXHU1NjJlXHU1NjJmXHU1NjMwXHU1NjMzXHU1NjM1XHU1NjM3''@;'; put 'put ''XHU1NjM4XHU1NjNhXHU1NjNjXHU1NjNkXHU1NjNlXHU1NjQwIiwxMSwiXHU1NjRmIiw0LCJcdTU2NTVcdTU2NTZcdTU2NWFcdTU2NWJcdTU2NWQiLDRdLFsiODc4MCIsIlx1NTY2M1x1NTY2NVx1NTY2Nlx1NTY2N1x1NTY2ZFx1NTY2ZVx1NTY2Zlx1NTY3MFx1NTY3Mlx1NTY3M1x1NTY3NFx1''@;'; put 'put ''NTY3NVx1NTY3N1x1NTY3OFx1NTY3OVx1NTY3YVx1NTY3ZCIsNywiXHU1Njg3Iiw2LCJcdTU2OTBcdTU2OTFcdTU2OTJcdTU2OTQiLDE0LCJcdTU2YTQiLDEwLCJcdTU2YjAiLDYsIlx1NTZiOFx1NTZiOVx1NTZiYVx1NTZiYlx1NTZiZCIsMTIsIlx1NTZjYiIsOCwiXHU1NmQ1XHU1NmQ2XHU1''@;'; put 'put ''NmQ4XHU1NmQ5XHU1NmRjXHU1NmUzXHU1NmU1Iiw1LCJcdTU2ZWNcdTU2ZWVcdTU2ZWZcdTU2ZjJcdTU2ZjNcdTU2ZjZcdTU2ZjdcdTU2ZjhcdTU2ZmJcdTU2ZmNcdTU3MDBcdTU3MDFcdTU3MDJcdTU3MDVcdTU3MDdcdTU3MGIiLDZdLFsiODg0MCIsIlx1NTcxMiIsOSwiXHU1NzFkXHU1NzFl''@;'; put 'put ''XHU1NzIwXHU1NzIxXHU1NzIyXHU1NzI0XHU1NzI1XHU1NzI2XHU1NzI3XHU1NzJiXHU1NzMxXHU1NzMyXHU1NzM0Iiw0LCJcdTU3M2NcdTU3M2RcdTU3M2ZcdTU3NDFcdTU3NDNcdTU3NDRcdTU3NDVcdTU3NDZcdTU3NDhcdTU3NDlcdTU3NGJcdTU3NTIiLDQsIlx1NTc1OFx1NTc1OVx1NTc2''@;'; put 'put ''Mlx1NTc2M1x1NTc2NVx1NTc2N1x1NTc2Y1x1NTc2ZVx1NTc3MFx1NTc3MVx1NTc3Mlx1NTc3NFx1NTc3NVx1NTc3OFx1NTc3OVx1NTc3YVx1NTc3ZFx1NTc3ZVx1NTc3Zlx1NTc4MCJdLFsiODg4MCIsIlx1NTc4MVx1NTc4N1x1NTc4OFx1NTc4OVx1NTc4YVx1NTc4ZCIsNCwiXHU1Nzk0Iiw2''@;'; put 'put ''LCJcdTU3OWNcdTU3OWRcdTU3OWVcdTU3OWZcdTU3YTVcdTU3YThcdTU3YWFcdTU3YWNcdTU3YWZcdTU3YjBcdTU3YjFcdTU3YjNcdTU3YjVcdTU3YjZcdTU3YjdcdTU3YjkiLDgsIlx1NTdjNCIsNiwiXHU1N2NjXHU1N2NkXHU1N2QwXHU1N2QxXHU1N2QzXHU1N2Q2XHU1N2Q3XHU1N2RiXHU1''@;'; put 'put ''N2RjXHU1N2RlXHU1N2UxXHU1N2UyXHU1N2UzXHU1N2U1Iiw3LCJcdTU3ZWVcdTU3ZjBcdTU3ZjFcdTU3ZjJcdTU3ZjNcdTU3ZjVcdTU3ZjZcdTU3ZjdcdTU3ZmJcdTU3ZmNcdTU3ZmVcdTU3ZmZcdTU4MDFcdTU4MDNcdTU4MDRcdTU4MDVcdTU4MDhcdTU4MDlcdTU4MGFcdTU4MGNcdTU4MGVc''@;'; put 'put ''dTU4MGZcdTU4MTBcdTU4MTJcdTU4MTNcdTU4MTRcdTU4MTZcdTU4MTdcdTU4MThcdTU4MWFcdTU4MWJcdTU4MWNcdTU4MWRcdTU4MWZcdTU4MjJcdTU4MjNcdTU4MjUiLDQsIlx1NTgyYiIsNCwiXHU1ODMxXHU1ODMyXHU1ODMzXHU1ODM0XHU1ODM2Iiw3XSxbIjg5NDAiLCJcdTU4M2UiLDUs''@;'; put 'put ''Ilx1NTg0NSIsNiwiXHU1ODRlXHU1ODRmXHU1ODUwXHU1ODUyXHU1ODUzXHU1ODU1XHU1ODU2XHU1ODU3XHU1ODU5Iiw0LCJcdTU4NWYiLDUsIlx1NTg2NiIsNCwiXHU1ODZkIiwxNiwiXHU1ODdmXHU1ODgyXHU1ODg0XHU1ODg2XHU1ODg3XHU1ODg4XHU1ODhhXHU1ODhiXHU1ODhjIl0sWyI4''@;'; put 'put ''OTgwIiwiXHU1ODhkIiw0LCJcdTU4OTQiLDQsIlx1NTg5Ylx1NTg5Y1x1NTg5ZFx1NThhMCIsNywiXHU1OGFhIiwxNywiXHU1OGJkXHU1OGJlXHU1OGJmXHU1OGMwXHU1OGMyXHU1OGMzXHU1OGM0XHU1OGM2IiwxMCwiXHU1OGQyXHU1OGQzXHU1OGQ0XHU1OGQ2IiwxMywiXHU1OGU1Iiw1LCJc''@;'; put 'put ''dTU4ZWRcdTU4ZWZcdTU4ZjFcdTU4ZjJcdTU4ZjRcdTU4ZjVcdTU4ZjdcdTU4ZjhcdTU4ZmEiLDcsIlx1NTkwM1x1NTkwNVx1NTkwNlx1NTkwOCIsNCwiXHU1OTBlXHU1OTEwXHU1OTExXHU1OTEyXHU1OTEzXHU1OTE3XHU1OTE4XHU1OTFiXHU1OTFkXHU1OTFlXHU1OTIwXHU1OTIxXHU1OTIy''@;'; put 'put ''XHU1OTIzXHU1OTI2XHU1OTI4XHU1OTJjXHU1OTMwXHU1OTMyXHU1OTMzXHU1OTM1XHU1OTM2XHU1OTNiIl0sWyI4YTQwIiwiXHU1OTNkXHU1OTNlXHU1OTNmXHU1OTQwXHU1OTQzXHU1OTQ1XHU1OTQ2XHU1OTRhXHU1OTRjXHU1OTRkXHU1OTUwXHU1OTUyXHU1OTUzXHU1OTU5XHU1OTViIiw0''@;'; put 'put ''LCJcdTU5NjFcdTU5NjNcdTU5NjRcdTU5NjYiLDEyLCJcdTU5NzVcdTU5NzdcdTU5N2FcdTU5N2JcdTU5N2NcdTU5N2VcdTU5N2ZcdTU5ODBcdTU5ODVcdTU5ODlcdTU5OGJcdTU5OGNcdTU5OGVcdTU5OGZcdTU5OTBcdTU5OTFcdTU5OTRcdTU5OTVcdTU5OThcdTU5OWFcdTU5OWJcdTU5OWNc''@;'; put 'put ''dTU5OWRcdTU5OWZcdTU5YTBcdTU5YTFcdTU5YTJcdTU5YTYiXSxbIjhhODAiLCJcdTU5YTdcdTU5YWNcdTU5YWRcdTU5YjBcdTU5YjFcdTU5YjMiLDUsIlx1NTliYVx1NTliY1x1NTliZFx1NTliZiIsNiwiXHU1OWM3XHU1OWM4XHU1OWM5XHU1OWNjXHU1OWNkXHU1OWNlXHU1OWNmXHU1OWQ1''@;'; put 'put ''XHU1OWQ2XHU1OWQ5XHU1OWRiXHU1OWRlIiw0LCJcdTU5ZTRcdTU5ZTZcdTU5ZTdcdTU5ZTlcdTU5ZWFcdTU5ZWJcdTU5ZWQiLDExLCJcdTU5ZmFcdTU5ZmNcdTU5ZmRcdTU5ZmVcdTVhMDBcdTVhMDJcdTVhMGFcdTVhMGJcdTVhMGRcdTVhMGVcdTVhMGZcdTVhMTBcdTVhMTJcdTVhMTRcdTVh''@;'; put 'put ''MTVcdTVhMTZcdTVhMTdcdTVhMTlcdTVhMWFcdTVhMWJcdTVhMWRcdTVhMWVcdTVhMjFcdTVhMjJcdTVhMjRcdTVhMjZcdTVhMjdcdTVhMjhcdTVhMmEiLDYsIlx1NWEzM1x1NWEzNVx1NWEzNyIsNCwiXHU1YTNkXHU1YTNlXHU1YTNmXHU1YTQxIiw0LCJcdTVhNDdcdTVhNDhcdTVhNGIiLDks''@;'; put 'put ''Ilx1NWE1Nlx1NWE1N1x1NWE1OFx1NWE1OVx1NWE1YiIsNV0sWyI4YjQwIiwiXHU1YTYxXHU1YTYzXHU1YTY0XHU1YTY1XHU1YTY2XHU1YTY4XHU1YTY5XHU1YTZiIiw4LCJcdTVhNzhcdTVhNzlcdTVhN2JcdTVhN2NcdTVhN2RcdTVhN2VcdTVhODAiLDE3LCJcdTVhOTMiLDYsIlx1NWE5YyIs''@;'; put 'put ''MTMsIlx1NWFhYlx1NWFhYyJdLFsiOGI4MCIsIlx1NWFhZCIsNCwiXHU1YWI0XHU1YWI2XHU1YWI3XHU1YWI5Iiw0LCJcdTVhYmZcdTVhYzBcdTVhYzMiLDUsIlx1NWFjYVx1NWFjYlx1NWFjZCIsNCwiXHU1YWQzXHU1YWQ1XHU1YWQ3XHU1YWQ5XHU1YWRhXHU1YWRiXHU1YWRkXHU1YWRlXHU1''@;'; put 'put ''YWRmXHU1YWUyXHU1YWU0XHU1YWU1XHU1YWU3XHU1YWU4XHU1YWVhXHU1YWVjIiw0LCJcdTVhZjIiLDIyLCJcdTViMGEiLDExLCJcdTViMTgiLDI1LCJcdTViMzNcdTViMzVcdTViMzZcdTViMzgiLDcsIlx1NWI0MSIsNl0sWyI4YzQwIiwiXHU1YjQ4Iiw3LCJcdTViNTJcdTViNTZcdTViNWVc''@;'; put 'put ''dTViNjBcdTViNjFcdTViNjdcdTViNjhcdTViNmJcdTViNmRcdTViNmVcdTViNmZcdTViNzJcdTViNzRcdTViNzZcdTViNzdcdTViNzhcdTViNzlcdTViN2JcdTViN2NcdTViN2VcdTViN2ZcdTViODJcdTViODZcdTViOGFcdTViOGRcdTViOGVcdTViOTBcdTViOTFcdTViOTJcdTViOTRcdTVi''@;'; put 'put ''OTZcdTViOWZcdTViYTdcdTViYThcdTViYTlcdTViYWNcdTViYWRcdTViYWVcdTViYWZcdTViYjFcdTViYjJcdTViYjdcdTViYmFcdTViYmJcdTViYmNcdTViYzBcdTViYzFcdTViYzNcdTViYzhcdTViYzlcdTViY2FcdTViY2JcdTViY2RcdTViY2VcdTViY2YiXSxbIjhjODAiLCJcdTViZDFc''@;'; put 'put ''dTViZDQiLDgsIlx1NWJlMFx1NWJlMlx1NWJlM1x1NWJlNlx1NWJlN1x1NWJlOSIsNCwiXHU1YmVmXHU1YmYxIiw2LCJcdTViZmRcdTViZmVcdTVjMDBcdTVjMDJcdTVjMDNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGJcdTVjMGNcdTVjMGRcdTVjMGVcdTVjMTBcdTVjMTJcdTVjMTNcdTVjMTdc''@;'; put 'put ''dTVjMTlcdTVjMWJcdTVjMWVcdTVjMWZcdTVjMjBcdTVjMjFcdTVjMjNcdTVjMjZcdTVjMjhcdTVjMjlcdTVjMmFcdTVjMmJcdTVjMmRcdTVjMmVcdTVjMmZcdTVjMzBcdTVjMzJcdTVjMzNcdTVjMzVcdTVjMzZcdTVjMzdcdTVjNDNcdTVjNDRcdTVjNDZcdTVjNDdcdTVjNGNcdTVjNGRcdTVj''@;'; put 'put ''NTJcdTVjNTNcdTVjNTRcdTVjNTZcdTVjNTdcdTVjNThcdTVjNWFcdTVjNWJcdTVjNWNcdTVjNWRcdTVjNWZcdTVjNjJcdTVjNjRcdTVjNjciLDYsIlx1NWM3MFx1NWM3MiIsNiwiXHU1YzdiXHU1YzdjXHU1YzdkXHU1YzdlXHU1YzgwXHU1YzgzIiw0LCJcdTVjODlcdTVjOGFcdTVjOGJcdTVj''@;'; put 'put ''OGVcdTVjOGZcdTVjOTJcdTVjOTNcdTVjOTVcdTVjOWQiLDQsIlx1NWNhNCIsNF0sWyI4ZDQwIiwiXHU1Y2FhXHU1Y2FlXHU1Y2FmXHU1Y2IwXHU1Y2IyXHU1Y2I0XHU1Y2I2XHU1Y2I5XHU1Y2JhXHU1Y2JiXHU1Y2JjXHU1Y2JlXHU1Y2MwXHU1Y2MyXHU1Y2MzXHU1Y2M1Iiw1LCJcdTVjY2Mi''@;'; put 'put ''LDUsIlx1NWNkMyIsNSwiXHU1Y2RhIiw2LCJcdTVjZTJcdTVjZTNcdTVjZTdcdTVjZTlcdTVjZWJcdTVjZWNcdTVjZWVcdTVjZWZcdTVjZjEiLDksIlx1NWNmYyIsNF0sWyI4ZDgwIiwiXHU1ZDAxXHU1ZDA0XHU1ZDA1XHU1ZDA4Iiw1LCJcdTVkMGYiLDQsIlx1NWQxNVx1NWQxN1x1NWQxOFx1''@;'; put 'put ''NWQxOVx1NWQxYVx1NWQxY1x1NWQxZFx1NWQxZiIsNCwiXHU1ZDI1XHU1ZDI4XHU1ZDJhXHU1ZDJiXHU1ZDJjXHU1ZDJmIiw0LCJcdTVkMzUiLDcsIlx1NWQzZiIsNywiXHU1ZDQ4XHU1ZDQ5XHU1ZDRkIiwxMCwiXHU1ZDU5XHU1ZDVhXHU1ZDVjXHU1ZDVlIiwxMCwiXHU1ZDZhXHU1ZDZkXHU1''@;'; put 'put ''ZDZlXHU1ZDcwXHU1ZDcxXHU1ZDcyXHU1ZDczXHU1ZDc1IiwxMiwiXHU1ZDgzIiwyMSwiXHU1ZDlhXHU1ZDliXHU1ZDljXHU1ZDllXHU1ZDlmXHU1ZGEwIl0sWyI4ZTQwIiwiXHU1ZGExIiwyMSwiXHU1ZGI4IiwxMiwiXHU1ZGM2Iiw2LCJcdTVkY2UiLDEyLCJcdTVkZGNcdTVkZGZcdTVkZTBc''@;'; put 'put ''dTVkZTNcdTVkZTRcdTVkZWFcdTVkZWNcdTVkZWQiXSxbIjhlODAiLCJcdTVkZjBcdTVkZjVcdTVkZjZcdTVkZjgiLDQsIlx1NWRmZlx1NWUwMFx1NWUwNFx1NWUwN1x1NWUwOVx1NWUwYVx1NWUwYlx1NWUwZFx1NWUwZVx1NWUxMlx1NWUxM1x1NWUxN1x1NWUxZSIsNywiXHU1ZTI4Iiw0LCJc''@;'; put 'put ''dTVlMmZcdTVlMzBcdTVlMzIiLDQsIlx1NWUzOVx1NWUzYVx1NWUzZVx1NWUzZlx1NWU0MFx1NWU0MVx1NWU0M1x1NWU0NiIsNSwiXHU1ZTRkIiw2LCJcdTVlNTYiLDQsIlx1NWU1Y1x1NWU1ZFx1NWU1Zlx1NWU2MFx1NWU2MyIsMTQsIlx1NWU3NVx1NWU3N1x1NWU3OVx1NWU3ZVx1NWU4MVx1''@;'; put 'put ''NWU4Mlx1NWU4M1x1NWU4NVx1NWU4OFx1NWU4OVx1NWU4Y1x1NWU4ZFx1NWU4ZVx1NWU5Mlx1NWU5OFx1NWU5Ylx1NWU5ZFx1NWVhMVx1NWVhMlx1NWVhM1x1NWVhNFx1NWVhOCIsNCwiXHU1ZWFlIiw0LCJcdTVlYjRcdTVlYmFcdTVlYmJcdTVlYmNcdTVlYmRcdTVlYmYiLDZdLFsiOGY0MCIs''@;'; put 'put ''Ilx1NWVjNlx1NWVjN1x1NWVjOFx1NWVjYiIsNSwiXHU1ZWQ0XHU1ZWQ1XHU1ZWQ3XHU1ZWQ4XHU1ZWQ5XHU1ZWRhXHU1ZWRjIiwxMSwiXHU1ZWU5XHU1ZWViIiw4LCJcdTVlZjVcdTVlZjhcdTVlZjlcdTVlZmJcdTVlZmNcdTVlZmRcdTVmMDVcdTVmMDZcdTVmMDdcdTVmMDlcdTVmMGNcdTVm''@;'; put 'put ''MGRcdTVmMGVcdTVmMTBcdTVmMTJcdTVmMTRcdTVmMTZcdTVmMTlcdTVmMWFcdTVmMWNcdTVmMWRcdTVmMWVcdTVmMjFcdTVmMjJcdTVmMjNcdTVmMjQiXSxbIjhmODAiLCJcdTVmMjhcdTVmMmJcdTVmMmNcdTVmMmVcdTVmMzBcdTVmMzIiLDYsIlx1NWYzYlx1NWYzZFx1NWYzZVx1NWYzZlx1''@;'; put 'put ''NWY0MSIsMTQsIlx1NWY1MVx1NWY1NFx1NWY1OVx1NWY1YVx1NWY1Ylx1NWY1Y1x1NWY1ZVx1NWY1Zlx1NWY2MFx1NWY2M1x1NWY2NVx1NWY2N1x1NWY2OFx1NWY2Ylx1NWY2ZVx1NWY2Zlx1NWY3Mlx1NWY3NFx1NWY3NVx1NWY3Nlx1NWY3OFx1NWY3YVx1NWY3ZFx1NWY3ZVx1NWY3Zlx1NWY4''@;'; put 'put ''M1x1NWY4Nlx1NWY4ZFx1NWY4ZVx1NWY4Zlx1NWY5MVx1NWY5M1x1NWY5NFx1NWY5Nlx1NWY5YVx1NWY5Ylx1NWY5ZFx1NWY5ZVx1NWY5Zlx1NWZhMFx1NWZhMiIsNSwiXHU1ZmE5XHU1ZmFiXHU1ZmFjXHU1ZmFmIiw1LCJcdTVmYjZcdTVmYjhcdTVmYjlcdTVmYmFcdTVmYmJcdTVmYmUiLDQs''@;'; put 'put ''Ilx1NWZjN1x1NWZjOFx1NWZjYVx1NWZjYlx1NWZjZVx1NWZkM1x1NWZkNFx1NWZkNVx1NWZkYVx1NWZkYlx1NWZkY1x1NWZkZVx1NWZkZlx1NWZlMlx1NWZlM1x1NWZlNVx1NWZlNlx1NWZlOFx1NWZlOVx1NWZlY1x1NWZlZlx1NWZmMFx1NWZmMlx1NWZmM1x1NWZmNFx1NWZmNlx1NWZmN1x1''@;'; put 'put ''NWZmOVx1NWZmYVx1NWZmY1x1NjAwNyJdLFsiOTA0MCIsIlx1NjAwOFx1NjAwOVx1NjAwYlx1NjAwY1x1NjAxMFx1NjAxMVx1NjAxM1x1NjAxN1x1NjAxOFx1NjAxYVx1NjAxZVx1NjAxZlx1NjAyMlx1NjAyM1x1NjAyNFx1NjAyY1x1NjAyZFx1NjAyZVx1NjAzMCIsNCwiXHU2MDM2Iiw0LCJc''@;'; put 'put ''dTYwM2RcdTYwM2VcdTYwNDBcdTYwNDQiLDYsIlx1NjA0Y1x1NjA0ZVx1NjA0Zlx1NjA1MVx1NjA1M1x1NjA1NFx1NjA1Nlx1NjA1N1x1NjA1OFx1NjA1Ylx1NjA1Y1x1NjA1ZVx1NjA1Zlx1NjA2MFx1NjA2MVx1NjA2NVx1NjA2Nlx1NjA2ZVx1NjA3MVx1NjA3Mlx1NjA3NFx1NjA3NVx1NjA3''@;'; put 'put ''N1x1NjA3ZVx1NjA4MCJdLFsiOTA4MCIsIlx1NjA4MVx1NjA4Mlx1NjA4NVx1NjA4Nlx1NjA4N1x1NjA4OFx1NjA4YVx1NjA4Ylx1NjA4ZVx1NjA4Zlx1NjA5MFx1NjA5MVx1NjA5M1x1NjA5NVx1NjA5N1x1NjA5OFx1NjA5OVx1NjA5Y1x1NjA5ZVx1NjBhMVx1NjBhMlx1NjBhNFx1NjBhNVx1''@;'; put 'put ''NjBhN1x1NjBhOVx1NjBhYVx1NjBhZVx1NjBiMFx1NjBiM1x1NjBiNVx1NjBiNlx1NjBiN1x1NjBiOVx1NjBiYVx1NjBiZCIsNywiXHU2MGM3XHU2MGM4XHU2MGM5XHU2MGNjIiw0LCJcdTYwZDJcdTYwZDNcdTYwZDRcdTYwZDZcdTYwZDdcdTYwZDlcdTYwZGJcdTYwZGVcdTYwZTEiLDQsIlx1''@;'; put 'put ''NjBlYVx1NjBmMVx1NjBmMlx1NjBmNVx1NjBmN1x1NjBmOFx1NjBmYiIsNCwiXHU2MTAyXHU2MTAzXHU2MTA0XHU2MTA1XHU2MTA3XHU2MTBhXHU2MTBiXHU2MTBjXHU2MTEwIiw0LCJcdTYxMTZcdTYxMTdcdTYxMThcdTYxMTlcdTYxMWJcdTYxMWNcdTYxMWRcdTYxMWVcdTYxMjFcdTYxMjJc''@;'; put 'put ''dTYxMjVcdTYxMjhcdTYxMjlcdTYxMmFcdTYxMmMiLDE4LCJcdTYxNDAiLDZdLFsiOTE0MCIsIlx1NjE0N1x1NjE0OVx1NjE0Ylx1NjE0ZFx1NjE0Zlx1NjE1MFx1NjE1Mlx1NjE1M1x1NjE1NFx1NjE1NiIsNiwiXHU2MTVlXHU2MTVmXHU2MTYwXHU2MTYxXHU2MTYzXHU2MTY0XHU2MTY1XHU2''@;'; put 'put ''MTY2XHU2MTY5Iiw2LCJcdTYxNzFcdTYxNzJcdTYxNzNcdTYxNzRcdTYxNzZcdTYxNzgiLDE4LCJcdTYxOGNcdTYxOGRcdTYxOGYiLDQsIlx1NjE5NSJdLFsiOTE4MCIsIlx1NjE5NiIsNiwiXHU2MTllIiw4LCJcdTYxYWFcdTYxYWJcdTYxYWQiLDksIlx1NjFiOCIsNSwiXHU2MWJmXHU2MWMw''@;'; put 'put ''XHU2MWMxXHU2MWMzIiw0LCJcdTYxYzlcdTYxY2MiLDQsIlx1NjFkM1x1NjFkNSIsMTYsIlx1NjFlNyIsMTMsIlx1NjFmNiIsOCwiXHU2MjAwIiw1LCJcdTYyMDdcdTYyMDlcdTYyMTNcdTYyMTRcdTYyMTlcdTYyMWNcdTYyMWRcdTYyMWVcdTYyMjBcdTYyMjNcdTYyMjZcdTYyMjdcdTYyMjhc''@;'; put 'put ''dTYyMjlcdTYyMmJcdTYyMmRcdTYyMmZcdTYyMzBcdTYyMzFcdTYyMzJcdTYyMzVcdTYyMzZcdTYyMzgiLDQsIlx1NjI0Mlx1NjI0NFx1NjI0NVx1NjI0Nlx1NjI0YSJdLFsiOTI0MCIsIlx1NjI0Zlx1NjI1MFx1NjI1NVx1NjI1Nlx1NjI1N1x1NjI1OVx1NjI1YVx1NjI1YyIsNiwiXHU2MjY0''@;'; put 'put ''XHU2MjY1XHU2MjY4XHU2MjcxXHU2MjcyXHU2Mjc0XHU2Mjc1XHU2Mjc3XHU2Mjc4XHU2MjdhXHU2MjdiXHU2MjdkXHU2MjgxXHU2MjgyXHU2MjgzXHU2Mjg1XHU2Mjg2XHU2Mjg3XHU2Mjg4XHU2MjhiIiw1LCJcdTYyOTRcdTYyOTlcdTYyOWNcdTYyOWRcdTYyOWVcdTYyYTNcdTYyYTZcdTYy''@;'; put 'put ''YTdcdTYyYTlcdTYyYWFcdTYyYWRcdTYyYWVcdTYyYWZcdTYyYjBcdTYyYjJcdTYyYjNcdTYyYjRcdTYyYjZcdTYyYjdcdTYyYjhcdTYyYmFcdTYyYmVcdTYyYzBcdTYyYzEiXSxbIjkyODAiLCJcdTYyYzNcdTYyY2JcdTYyY2ZcdTYyZDFcdTYyZDVcdTYyZGRcdTYyZGVcdTYyZTBcdTYyZTFc''@;'; put 'put ''dTYyZTRcdTYyZWFcdTYyZWJcdTYyZjBcdTYyZjJcdTYyZjVcdTYyZjhcdTYyZjlcdTYyZmFcdTYyZmJcdTYzMDBcdTYzMDNcdTYzMDRcdTYzMDVcdTYzMDZcdTYzMGFcdTYzMGJcdTYzMGNcdTYzMGRcdTYzMGZcdTYzMTBcdTYzMTJcdTYzMTNcdTYzMTRcdTYzMTVcdTYzMTdcdTYzMThcdTYz''@;'; put 'put ''MTlcdTYzMWNcdTYzMjZcdTYzMjdcdTYzMjlcdTYzMmNcdTYzMmRcdTYzMmVcdTYzMzBcdTYzMzFcdTYzMzMiLDUsIlx1NjMzYlx1NjMzY1x1NjMzZVx1NjMzZlx1NjM0MFx1NjM0MVx1NjM0NFx1NjM0N1x1NjM0OFx1NjM0YVx1NjM1MVx1NjM1Mlx1NjM1M1x1NjM1NFx1NjM1NiIsNywiXHU2''@;'; put 'put ''MzYwXHU2MzY0XHU2MzY1XHU2MzY2XHU2MzY4XHU2MzZhXHU2MzZiXHU2MzZjXHU2MzZmXHU2MzcwXHU2MzcyXHU2MzczXHU2Mzc0XHU2Mzc1XHU2Mzc4XHU2Mzc5XHU2MzdjXHU2MzdkXHU2MzdlXHU2MzdmXHU2MzgxXHU2MzgzXHU2Mzg0XHU2Mzg1XHU2Mzg2XHU2MzhiXHU2MzhkXHU2Mzkx''@;'; put 'put ''XHU2MzkzXHU2Mzk0XHU2Mzk1XHU2Mzk3XHU2Mzk5Iiw2LCJcdTYzYTFcdTYzYTRcdTYzYTZcdTYzYWJcdTYzYWZcdTYzYjFcdTYzYjJcdTYzYjVcdTYzYjZcdTYzYjlcdTYzYmJcdTYzYmRcdTYzYmZcdTYzYzAiXSxbIjkzNDAiLCJcdTYzYzFcdTYzYzJcdTYzYzNcdTYzYzVcdTYzYzdcdTYz''@;'; put 'put ''YzhcdTYzY2FcdTYzY2JcdTYzY2NcdTYzZDFcdTYzZDNcdTYzZDRcdTYzZDVcdTYzZDciLDYsIlx1NjNkZlx1NjNlMlx1NjNlNCIsNCwiXHU2M2ViXHU2M2VjXHU2M2VlXHU2M2VmXHU2M2YwXHU2M2YxXHU2M2YzXHU2M2Y1XHU2M2Y3XHU2M2Y5XHU2M2ZhXHU2M2ZiXHU2M2ZjXHU2M2ZlXHU2''@;'; put 'put ''NDAzXHU2NDA0XHU2NDA2Iiw0LCJcdTY0MGRcdTY0MGVcdTY0MTFcdTY0MTJcdTY0MTUiLDUsIlx1NjQxZFx1NjQxZlx1NjQyMlx1NjQyM1x1NjQyNCJdLFsiOTM4MCIsIlx1NjQyNVx1NjQyN1x1NjQyOFx1NjQyOVx1NjQyYlx1NjQyZSIsNSwiXHU2NDM1Iiw0LCJcdTY0M2JcdTY0M2NcdTY0''@;'; put 'put ''M2VcdTY0NDBcdTY0NDJcdTY0NDNcdTY0NDlcdTY0NGIiLDYsIlx1NjQ1M1x1NjQ1NVx1NjQ1Nlx1NjQ1N1x1NjQ1OSIsNCwiXHU2NDVmIiw3LCJcdTY0NjhcdTY0NmFcdTY0NmJcdTY0NmNcdTY0NmUiLDksIlx1NjQ3YiIsNiwiXHU2NDgzXHU2NDg2XHU2NDg4Iiw4LCJcdTY0OTNcdTY0OTRc''@;'; put 'put ''dTY0OTdcdTY0OThcdTY0OWFcdTY0OWJcdTY0OWNcdTY0OWRcdTY0OWYiLDQsIlx1NjRhNVx1NjRhNlx1NjRhN1x1NjRhOFx1NjRhYVx1NjRhYlx1NjRhZlx1NjRiMVx1NjRiMlx1NjRiM1x1NjRiNFx1NjRiNlx1NjRiOVx1NjRiYlx1NjRiZFx1NjRiZVx1NjRiZlx1NjRjMVx1NjRjM1x1NjRj''@;'; put 'put ''NFx1NjRjNiIsNiwiXHU2NGNmXHU2NGQxXHU2NGQzXHU2NGQ0XHU2NGQ1XHU2NGQ2XHU2NGQ5XHU2NGRhIl0sWyI5NDQwIiwiXHU2NGRiXHU2NGRjXHU2NGRkXHU2NGRmXHU2NGUwXHU2NGUxXHU2NGUzXHU2NGU1XHU2NGU3IiwyNCwiXHU2NTAxIiw3LCJcdTY1MGEiLDcsIlx1NjUxMyIsNCwi''@;'; put 'put ''XHU2NTE5Iiw4XSxbIjk0ODAiLCJcdTY1MjJcdTY1MjNcdTY1MjRcdTY1MjYiLDQsIlx1NjUyY1x1NjUyZFx1NjUzMFx1NjUzMVx1NjUzMlx1NjUzM1x1NjUzN1x1NjUzYVx1NjUzY1x1NjUzZFx1NjU0MCIsNCwiXHU2NTQ2XHU2NTQ3XHU2NTRhXHU2NTRiXHU2NTRkXHU2NTRlXHU2NTUwXHU2''@;'; put 'put ''NTUyXHU2NTUzXHU2NTU0XHU2NTU3XHU2NTU4XHU2NTVhXHU2NTVjXHU2NTVmXHU2NTYwXHU2NTYxXHU2NTY0XHU2NTY1XHU2NTY3XHU2NTY4XHU2NTY5XHU2NTZhXHU2NTZkXHU2NTZlXHU2NTZmXHU2NTcxXHU2NTczXHU2NTc1XHU2NTc2XHU2NTc4IiwxNCwiXHU2NTg4XHU2NTg5XHU2NThh''@;'; put 'put ''XHU2NThkXHU2NThlXHU2NThmXHU2NTkyXHU2NTk0XHU2NTk1XHU2NTk2XHU2NTk4XHU2NTlhXHU2NTlkXHU2NTllXHU2NWEwXHU2NWEyXHU2NWEzXHU2NWE2XHU2NWE4XHU2NWFhXHU2NWFjXHU2NWFlXHU2NWIxIiw3LCJcdTY1YmFcdTY1YmJcdTY1YmVcdTY1YmZcdTY1YzBcdTY1YzJcdTY1''@;'; put 'put ''YzdcdTY1YzhcdTY1YzlcdTY1Y2FcdTY1Y2RcdTY1ZDBcdTY1ZDFcdTY1ZDNcdTY1ZDRcdTY1ZDVcdTY1ZDgiLDcsIlx1NjVlMVx1NjVlM1x1NjVlNFx1NjVlYVx1NjVlYiJdLFsiOTU0MCIsIlx1NjVmMlx1NjVmM1x1NjVmNFx1NjVmNVx1NjVmOFx1NjVmOVx1NjVmYiIsNCwiXHU2NjAxXHU2''@;'; put 'put ''NjA0XHU2NjA1XHU2NjA3XHU2NjA4XHU2NjA5XHU2NjBiXHU2NjBkXHU2NjEwXHU2NjExXHU2NjEyXHU2NjE2XHU2NjE3XHU2NjE4XHU2NjFhXHU2NjFiXHU2NjFjXHU2NjFlXHU2NjIxXHU2NjIyXHU2NjIzXHU2NjI0XHU2NjI2XHU2NjI5XHU2NjJhXHU2NjJiXHU2NjJjXHU2NjJlXHU2NjMw''@;'; put 'put ''XHU2NjMyXHU2NjMzXHU2NjM3Iiw0LCJcdTY2M2RcdTY2M2ZcdTY2NDBcdTY2NDJcdTY2NDQiLDYsIlx1NjY0ZFx1NjY0ZVx1NjY1MFx1NjY1MVx1NjY1OCJdLFsiOTU4MCIsIlx1NjY1OVx1NjY1Ylx1NjY1Y1x1NjY1ZFx1NjY1ZVx1NjY2MFx1NjY2Mlx1NjY2M1x1NjY2NVx1NjY2N1x1NjY2''@;'; put 'put ''OSIsNCwiXHU2NjcxXHU2NjcyXHU2NjczXHU2Njc1XHU2Njc4XHU2Njc5XHU2NjdiXHU2NjdjXHU2NjdkXHU2NjdmXHU2NjgwXHU2NjgxXHU2NjgzXHU2Njg1XHU2Njg2XHU2Njg4XHU2Njg5XHU2NjhhXHU2NjhiXHU2NjhkXHU2NjhlXHU2NjhmXHU2NjkwXHU2NjkyXHU2NjkzXHU2Njk0XHU2''@;'; put 'put ''Njk1XHU2Njk4Iiw0LCJcdTY2OWUiLDgsIlx1NjZhOSIsNCwiXHU2NmFmIiw0LCJcdTY2YjVcdTY2YjZcdTY2YjdcdTY2YjhcdTY2YmFcdTY2YmJcdTY2YmNcdTY2YmRcdTY2YmYiLDI1LCJcdTY2ZGFcdTY2ZGUiLDcsIlx1NjZlN1x1NjZlOFx1NjZlYSIsNSwiXHU2NmYxXHU2NmY1XHU2NmY2''@;'; put 'put ''XHU2NmY4XHU2NmZhXHU2NmZiXHU2NmZkXHU2NzAxXHU2NzAyXHU2NzAzIl0sWyI5NjQwIiwiXHU2NzA0XHU2NzA1XHU2NzA2XHU2NzA3XHU2NzBjXHU2NzBlXHU2NzBmXHU2NzExXHU2NzEyXHU2NzEzXHU2NzE2XHU2NzE4XHU2NzE5XHU2NzFhXHU2NzFjXHU2NzFlXHU2NzIwIiw1LCJcdTY3''@;'; put 'put ''MjdcdTY3MjlcdTY3MmVcdTY3MzBcdTY3MzJcdTY3MzNcdTY3MzZcdTY3MzdcdTY3MzhcdTY3MzlcdTY3M2JcdTY3M2NcdTY3M2VcdTY3M2ZcdTY3NDFcdTY3NDRcdTY3NDVcdTY3NDdcdTY3NGFcdTY3NGJcdTY3NGRcdTY3NTJcdTY3NTRcdTY3NTVcdTY3NTciLDQsIlx1Njc1ZFx1Njc2Mlx1''@;'; put 'put ''Njc2M1x1Njc2NFx1Njc2Nlx1Njc2N1x1Njc2Ylx1Njc2Y1x1Njc2ZVx1Njc3MVx1Njc3NFx1Njc3NiJdLFsiOTY4MCIsIlx1Njc3OFx1Njc3OVx1Njc3YVx1Njc3Ylx1Njc3ZFx1Njc4MFx1Njc4Mlx1Njc4M1x1Njc4NVx1Njc4Nlx1Njc4OFx1Njc4YVx1Njc4Y1x1Njc4ZFx1Njc4ZVx1Njc4''@;'; put 'put ''Zlx1Njc5MVx1Njc5Mlx1Njc5M1x1Njc5NFx1Njc5Nlx1Njc5OVx1Njc5Ylx1Njc5Zlx1NjdhMFx1NjdhMVx1NjdhNFx1NjdhNlx1NjdhOVx1NjdhY1x1NjdhZVx1NjdiMVx1NjdiMlx1NjdiNFx1NjdiOSIsNywiXHU2N2MyXHU2N2M1Iiw5LCJcdTY3ZDVcdTY3ZDZcdTY3ZDdcdTY3ZGJcdTY3''@;'; put 'put ''ZGZcdTY3ZTFcdTY3ZTNcdTY3ZTRcdTY3ZTZcdTY3ZTdcdTY3ZThcdTY3ZWFcdTY3ZWJcdTY3ZWRcdTY3ZWVcdTY3ZjJcdTY3ZjUiLDcsIlx1NjdmZVx1NjgwMVx1NjgwMlx1NjgwM1x1NjgwNFx1NjgwNlx1NjgwZFx1NjgxMFx1NjgxMlx1NjgxNFx1NjgxNVx1NjgxOCIsNCwiXHU2ODFlXHU2''@;'; put 'put ''ODFmXHU2ODIwXHU2ODIyIiw2LCJcdTY4MmIiLDYsIlx1NjgzNFx1NjgzNVx1NjgzNlx1NjgzYVx1NjgzYlx1NjgzZlx1Njg0N1x1Njg0Ylx1Njg0ZFx1Njg0Zlx1Njg1Mlx1Njg1NiIsNV0sWyI5NzQwIiwiXHU2ODVjXHU2ODVkXHU2ODVlXHU2ODVmXHU2ODZhXHU2ODZjIiw3LCJcdTY4NzVc''@;'; put 'put ''dTY4NzgiLDgsIlx1Njg4Mlx1Njg4NFx1Njg4NyIsNywiXHU2ODkwXHU2ODkxXHU2ODkyXHU2ODk0XHU2ODk1XHU2ODk2XHU2ODk4Iiw5LCJcdTY4YTNcdTY4YTRcdTY4YTVcdTY4YTlcdTY4YWFcdTY4YWJcdTY4YWNcdTY4YWVcdTY4YjFcdTY4YjJcdTY4YjRcdTY4YjZcdTY4YjdcdTY4Yjgi''@;'; put 'put ''XSxbIjk3ODAiLCJcdTY4YjkiLDYsIlx1NjhjMVx1NjhjMyIsNSwiXHU2OGNhXHU2OGNjXHU2OGNlXHU2OGNmXHU2OGQwXHU2OGQxXHU2OGQzXHU2OGQ0XHU2OGQ2XHU2OGQ3XHU2OGQ5XHU2OGRiIiw0LCJcdTY4ZTFcdTY4ZTJcdTY4ZTQiLDksIlx1NjhlZlx1NjhmMlx1NjhmM1x1NjhmNFx1''@;'; put 'put ''NjhmNlx1NjhmN1x1NjhmOFx1NjhmYlx1NjhmZFx1NjhmZVx1NjhmZlx1NjkwMFx1NjkwMlx1NjkwM1x1NjkwNFx1NjkwNiIsNCwiXHU2OTBjXHU2OTBmXHU2OTExXHU2OTEzIiwxMSwiXHU2OTIxXHU2OTIyXHU2OTIzXHU2OTI1Iiw3LCJcdTY5MmVcdTY5MmZcdTY5MzFcdTY5MzJcdTY5MzNc''@;'; put 'put ''dTY5MzVcdTY5MzZcdTY5MzdcdTY5MzhcdTY5M2FcdTY5M2JcdTY5M2NcdTY5M2VcdTY5NDBcdTY5NDFcdTY5NDMiLDE2LCJcdTY5NTVcdTY5NTZcdTY5NThcdTY5NTlcdTY5NWJcdTY5NWNcdTY5NWYiXSxbIjk4NDAiLCJcdTY5NjFcdTY5NjJcdTY5NjRcdTY5NjVcdTY5NjdcdTY5NjhcdTY5''@;'; put 'put ''NjlcdTY5NmFcdTY5NmNcdTY5NmRcdTY5NmZcdTY5NzBcdTY5NzIiLDQsIlx1Njk3YVx1Njk3Ylx1Njk3ZFx1Njk3ZVx1Njk3Zlx1Njk4MVx1Njk4M1x1Njk4NVx1Njk4YVx1Njk4Ylx1Njk4Y1x1Njk4ZSIsNSwiXHU2OTk2XHU2OTk3XHU2OTk5XHU2OTlhXHU2OTlkIiw5LCJcdTY5YTlcdTY5''@;'; put 'put ''YWFcdTY5YWNcdTY5YWVcdTY5YWZcdTY5YjBcdTY5YjJcdTY5YjNcdTY5YjVcdTY5YjZcdTY5YjhcdTY5YjlcdTY5YmFcdTY5YmNcdTY5YmQiXSxbIjk4ODAiLCJcdTY5YmVcdTY5YmZcdTY5YzBcdTY5YzIiLDcsIlx1NjljYlx1NjljZFx1NjljZlx1NjlkMVx1NjlkMlx1NjlkM1x1NjlkNSIs''@;'; put 'put ''NSwiXHU2OWRjXHU2OWRkXHU2OWRlXHU2OWUxIiwxMSwiXHU2OWVlXHU2OWVmXHU2OWYwXHU2OWYxXHU2OWYzIiw5LCJcdTY5ZmVcdTZhMDAiLDksIlx1NmEwYiIsMTEsIlx1NmExOSIsNSwiXHU2YTIwXHU2YTIyIiw1LCJcdTZhMjlcdTZhMmJcdTZhMmNcdTZhMmRcdTZhMmVcdTZhMzBcdTZh''@;'; put 'put ''MzJcdTZhMzNcdTZhMzRcdTZhMzYiLDYsIlx1NmEzZiIsNCwiXHU2YTQ1XHU2YTQ2XHU2YTQ4Iiw3LCJcdTZhNTEiLDYsIlx1NmE1YSJdLFsiOTk0MCIsIlx1NmE1YyIsNCwiXHU2YTYyXHU2YTYzXHU2YTY0XHU2YTY2IiwxMCwiXHU2YTcyIiw2LCJcdTZhN2FcdTZhN2JcdTZhN2RcdTZhN2Vc''@;'; put 'put ''dTZhN2ZcdTZhODFcdTZhODJcdTZhODNcdTZhODUiLDgsIlx1NmE4Zlx1NmE5MiIsNCwiXHU2YTk4Iiw3LCJcdTZhYTEiLDVdLFsiOTk4MCIsIlx1NmFhN1x1NmFhOFx1NmFhYVx1NmFhZCIsMTE0LCJcdTZiMjVcdTZiMjZcdTZiMjgiLDZdLFsiOWE0MCIsIlx1NmIyZlx1NmIzMFx1NmIzMVx1''@;'; put 'put ''NmIzM1x1NmIzNFx1NmIzNVx1NmIzNlx1NmIzOFx1NmIzYlx1NmIzY1x1NmIzZFx1NmIzZlx1NmI0MFx1NmI0MVx1NmI0Mlx1NmI0NFx1NmI0NVx1NmI0OFx1NmI0YVx1NmI0Ylx1NmI0ZCIsMTEsIlx1NmI1YSIsNywiXHU2YjY4XHU2YjY5XHU2YjZiIiwxMywiXHU2YjdhXHU2YjdkXHU2Yjdl''@;'; put 'put ''XHU2YjdmXHU2YjgwXHU2Yjg1XHU2Yjg4Il0sWyI5YTgwIiwiXHU2YjhjXHU2YjhlXHU2YjhmXHU2YjkwXHU2YjkxXHU2Yjk0XHU2Yjk1XHU2Yjk3XHU2Yjk4XHU2Yjk5XHU2YjljIiw0LCJcdTZiYTIiLDcsIlx1NmJhYiIsNywiXHU2YmI2XHU2YmI4Iiw2LCJcdTZiYzBcdTZiYzNcdTZiYzRc''@;'; put 'put ''dTZiYzYiLDQsIlx1NmJjY1x1NmJjZVx1NmJkMFx1NmJkMVx1NmJkOFx1NmJkYVx1NmJkYyIsNCwiXHU2YmUyIiw3LCJcdTZiZWNcdTZiZWRcdTZiZWVcdTZiZjBcdTZiZjFcdTZiZjJcdTZiZjRcdTZiZjZcdTZiZjdcdTZiZjhcdTZiZmFcdTZiZmJcdTZiZmNcdTZiZmUiLDYsIlx1NmMwOCIs''@;'; put 'put ''NCwiXHU2YzBlXHU2YzEyXHU2YzE3XHU2YzFjXHU2YzFkXHU2YzFlXHU2YzIwXHU2YzIzXHU2YzI1XHU2YzJiXHU2YzJjXHU2YzJkXHU2YzMxXHU2YzMzXHU2YzM2XHU2YzM3XHU2YzM5XHU2YzNhXHU2YzNiXHU2YzNjXHU2YzNlXHU2YzNmXHU2YzQzXHU2YzQ0XHU2YzQ1XHU2YzQ4XHU2YzRi''@;'; put 'put ''Iiw0LCJcdTZjNTFcdTZjNTJcdTZjNTNcdTZjNTZcdTZjNTgiXSxbIjliNDAiLCJcdTZjNTlcdTZjNWFcdTZjNjJcdTZjNjNcdTZjNjVcdTZjNjZcdTZjNjdcdTZjNmIiLDQsIlx1NmM3MVx1NmM3M1x1NmM3NVx1NmM3N1x1NmM3OFx1NmM3YVx1NmM3Ylx1NmM3Y1x1NmM3Zlx1NmM4MFx1NmM4''@;'; put 'put ''NFx1NmM4N1x1NmM4YVx1NmM4Ylx1NmM4ZFx1NmM4ZVx1NmM5MVx1NmM5Mlx1NmM5NVx1NmM5Nlx1NmM5N1x1NmM5OFx1NmM5YVx1NmM5Y1x1NmM5ZFx1NmM5ZVx1NmNhMFx1NmNhMlx1NmNhOFx1NmNhY1x1NmNhZlx1NmNiMFx1NmNiNFx1NmNiNVx1NmNiNlx1NmNiN1x1NmNiYVx1NmNjMFx1''@;'; put 'put ''NmNjMVx1NmNjMlx1NmNjM1x1NmNjNlx1NmNjN1x1NmNjOFx1NmNjYlx1NmNjZFx1NmNjZVx1NmNjZlx1NmNkMVx1NmNkMlx1NmNkOCJdLFsiOWI4MCIsIlx1NmNkOVx1NmNkYVx1NmNkY1x1NmNkZFx1NmNkZlx1NmNlNFx1NmNlNlx1NmNlN1x1NmNlOVx1NmNlY1x1NmNlZFx1NmNmMlx1NmNm''@;'; put 'put ''NFx1NmNmOVx1NmNmZlx1NmQwMFx1NmQwMlx1NmQwM1x1NmQwNVx1NmQwNlx1NmQwOFx1NmQwOVx1NmQwYVx1NmQwZFx1NmQwZlx1NmQxMFx1NmQxMVx1NmQxM1x1NmQxNFx1NmQxNVx1NmQxNlx1NmQxOFx1NmQxY1x1NmQxZFx1NmQxZiIsNSwiXHU2ZDI2XHU2ZDI4XHU2ZDI5XHU2ZDJjXHU2''@;'; put 'put ''ZDJkXHU2ZDJmXHU2ZDMwXHU2ZDM0XHU2ZDM2XHU2ZDM3XHU2ZDM4XHU2ZDNhXHU2ZDNmXHU2ZDQwXHU2ZDQyXHU2ZDQ0XHU2ZDQ5XHU2ZDRjXHU2ZDUwXHU2ZDU1XHU2ZDU2XHU2ZDU3XHU2ZDU4XHU2ZDViXHU2ZDVkXHU2ZDVmXHU2ZDYxXHU2ZDYyXHU2ZDY0XHU2ZDY1XHU2ZDY3XHU2ZDY4''@;'; put 'put ''XHU2ZDZiXHU2ZDZjXHU2ZDZkXHU2ZDcwXHU2ZDcxXHU2ZDcyXHU2ZDczXHU2ZDc1XHU2ZDc2XHU2ZDc5XHU2ZDdhXHU2ZDdiXHU2ZDdkIiw0LCJcdTZkODNcdTZkODRcdTZkODZcdTZkODdcdTZkOGFcdTZkOGJcdTZkOGRcdTZkOGZcdTZkOTBcdTZkOTJcdTZkOTYiLDQsIlx1NmQ5Y1x1NmRh''@;'; put 'put ''Mlx1NmRhNVx1NmRhY1x1NmRhZFx1NmRiMFx1NmRiMVx1NmRiM1x1NmRiNFx1NmRiNlx1NmRiN1x1NmRiOSIsNSwiXHU2ZGMxXHU2ZGMyXHU2ZGMzXHU2ZGM4XHU2ZGM5XHU2ZGNhIl0sWyI5YzQwIiwiXHU2ZGNkXHU2ZGNlXHU2ZGNmXHU2ZGQwXHU2ZGQyXHU2ZGQzXHU2ZGQ0XHU2ZGQ1XHU2''@;'; put 'put ''ZGQ3XHU2ZGRhXHU2ZGRiXHU2ZGRjXHU2ZGRmXHU2ZGUyXHU2ZGUzXHU2ZGU1XHU2ZGU3XHU2ZGU4XHU2ZGU5XHU2ZGVhXHU2ZGVkXHU2ZGVmXHU2ZGYwXHU2ZGYyXHU2ZGY0XHU2ZGY1XHU2ZGY2XHU2ZGY4XHU2ZGZhXHU2ZGZkIiw3LCJcdTZlMDZcdTZlMDdcdTZlMDhcdTZlMDlcdTZlMGJc''@;'; put 'put ''dTZlMGZcdTZlMTJcdTZlMTNcdTZlMTVcdTZlMThcdTZlMTlcdTZlMWJcdTZlMWNcdTZlMWVcdTZlMWZcdTZlMjJcdTZlMjZcdTZlMjdcdTZlMjhcdTZlMmFcdTZlMmNcdTZlMmVcdTZlMzBcdTZlMzFcdTZlMzNcdTZlMzUiXSxbIjljODAiLCJcdTZlMzZcdTZlMzdcdTZlMzlcdTZlM2IiLDcs''@;'; put 'put ''Ilx1NmU0NSIsNywiXHU2ZTRmXHU2ZTUwXHU2ZTUxXHU2ZTUyXHU2ZTU1XHU2ZTU3XHU2ZTU5XHU2ZTVhXHU2ZTVjXHU2ZTVkXHU2ZTVlXHU2ZTYwIiwxMCwiXHU2ZTZjXHU2ZTZkXHU2ZTZmIiwxNCwiXHU2ZTgwXHU2ZTgxXHU2ZTgyXHU2ZTg0XHU2ZTg3XHU2ZTg4XHU2ZThhIiw0LCJcdTZl''@;'; put 'put ''OTEiLDYsIlx1NmU5OVx1NmU5YVx1NmU5Ylx1NmU5ZFx1NmU5ZVx1NmVhMFx1NmVhMVx1NmVhM1x1NmVhNFx1NmVhNlx1NmVhOFx1NmVhOVx1NmVhYlx1NmVhY1x1NmVhZFx1NmVhZVx1NmViMFx1NmViM1x1NmViNVx1NmViOFx1NmViOVx1NmViY1x1NmViZVx1NmViZlx1NmVjMFx1NmVjM1x1''@;'; put 'put ''NmVjNFx1NmVjNVx1NmVjNlx1NmVjOFx1NmVjOVx1NmVjYVx1NmVjY1x1NmVjZFx1NmVjZVx1NmVkMFx1NmVkMlx1NmVkNlx1NmVkOFx1NmVkOVx1NmVkYlx1NmVkY1x1NmVkZFx1NmVlM1x1NmVlN1x1NmVlYSIsNV0sWyI5ZDQwIiwiXHU2ZWYwXHU2ZWYxXHU2ZWYyXHU2ZWYzXHU2ZWY1XHU2''@;'; put 'put ''ZWY2XHU2ZWY3XHU2ZWY4XHU2ZWZhIiw3LCJcdTZmMDNcdTZmMDRcdTZmMDVcdTZmMDdcdTZmMDhcdTZmMGEiLDQsIlx1NmYxMFx1NmYxMVx1NmYxMlx1NmYxNiIsOSwiXHU2ZjIxXHU2ZjIyXHU2ZjIzXHU2ZjI1XHU2ZjI2XHU2ZjI3XHU2ZjI4XHU2ZjJjXHU2ZjJlXHU2ZjMwXHU2ZjMyXHU2''@;'; put 'put ''ZjM0XHU2ZjM1XHU2ZjM3Iiw2LCJcdTZmM2ZcdTZmNDBcdTZmNDFcdTZmNDIiXSxbIjlkODAiLCJcdTZmNDNcdTZmNDRcdTZmNDVcdTZmNDhcdTZmNDlcdTZmNGFcdTZmNGNcdTZmNGUiLDksIlx1NmY1OVx1NmY1YVx1NmY1Ylx1NmY1ZFx1NmY1Zlx1NmY2MFx1NmY2MVx1NmY2M1x1NmY2NFx1''@;'; put 'put ''NmY2NVx1NmY2NyIsNSwiXHU2ZjZmXHU2ZjcwXHU2ZjcxXHU2ZjczXHU2Zjc1XHU2Zjc2XHU2Zjc3XHU2Zjc5XHU2ZjdiXHU2ZjdkIiw2LCJcdTZmODVcdTZmODZcdTZmODdcdTZmOGFcdTZmOGJcdTZmOGYiLDEyLCJcdTZmOWRcdTZmOWVcdTZmOWZcdTZmYTBcdTZmYTIiLDQsIlx1NmZhOCIs''@;'; put 'put ''MTAsIlx1NmZiNFx1NmZiNVx1NmZiN1x1NmZiOFx1NmZiYSIsNSwiXHU2ZmMxXHU2ZmMzIiw1LCJcdTZmY2EiLDYsIlx1NmZkMyIsMTAsIlx1NmZkZlx1NmZlMlx1NmZlM1x1NmZlNFx1NmZlNSJdLFsiOWU0MCIsIlx1NmZlNiIsNywiXHU2ZmYwIiwzMiwiXHU3MDEyIiw3LCJcdTcwMWMiLDYs''@;'; put 'put ''Ilx1NzAyNCIsNl0sWyI5ZTgwIiwiXHU3MDJiIiw5LCJcdTcwMzZcdTcwMzdcdTcwMzhcdTcwM2EiLDE3LCJcdTcwNGRcdTcwNGVcdTcwNTAiLDEzLCJcdTcwNWYiLDExLCJcdTcwNmVcdTcwNzFcdTcwNzJcdTcwNzNcdTcwNzRcdTcwNzdcdTcwNzlcdTcwN2FcdTcwN2JcdTcwN2RcdTcwODFc''@;'; put 'put ''dTcwODJcdTcwODNcdTcwODRcdTcwODZcdTcwODdcdTcwODhcdTcwOGJcdTcwOGNcdTcwOGRcdTcwOGZcdTcwOTBcdTcwOTFcdTcwOTNcdTcwOTdcdTcwOThcdTcwOWFcdTcwOWJcdTcwOWUiLDEyLCJcdTcwYjBcdTcwYjJcdTcwYjRcdTcwYjVcdTcwYjZcdTcwYmFcdTcwYmVcdTcwYmZcdTcw''@;'; put 'put ''YzRcdTcwYzVcdTcwYzZcdTcwYzdcdTcwYzlcdTcwY2IiLDEyLCJcdTcwZGEiXSxbIjlmNDAiLCJcdTcwZGNcdTcwZGRcdTcwZGVcdTcwZTBcdTcwZTFcdTcwZTJcdTcwZTNcdTcwZTVcdTcwZWFcdTcwZWVcdTcwZjAiLDYsIlx1NzBmOFx1NzBmYVx1NzBmYlx1NzBmY1x1NzBmZSIsMTAsIlx1''@;'; put 'put ''NzEwYiIsNCwiXHU3MTExXHU3MTEyXHU3MTE0XHU3MTE3XHU3MTFiIiwxMCwiXHU3MTI3Iiw3LCJcdTcxMzJcdTcxMzNcdTcxMzQiXSxbIjlmODAiLCJcdTcxMzVcdTcxMzciLDEzLCJcdTcxNDZcdTcxNDdcdTcxNDhcdTcxNDlcdTcxNGJcdTcxNGRcdTcxNGYiLDEyLCJcdTcxNWRcdTcxNWYi''@;'; put 'put ''LDQsIlx1NzE2NVx1NzE2OSIsNCwiXHU3MTZmXHU3MTcwXHU3MTcxXHU3MTc0XHU3MTc1XHU3MTc2XHU3MTc3XHU3MTc5XHU3MTdiXHU3MTdjXHU3MTdlIiw1LCJcdTcxODUiLDQsIlx1NzE4Ylx1NzE4Y1x1NzE4ZFx1NzE4ZVx1NzE5MFx1NzE5MVx1NzE5Mlx1NzE5M1x1NzE5NVx1NzE5Nlx1''@;'; put 'put ''NzE5N1x1NzE5YSIsNCwiXHU3MWExIiw2LCJcdTcxYTlcdTcxYWFcdTcxYWJcdTcxYWQiLDUsIlx1NzFiNFx1NzFiNlx1NzFiN1x1NzFiOFx1NzFiYSIsOCwiXHU3MWM0Iiw5LCJcdTcxY2YiLDRdLFsiYTA0MCIsIlx1NzFkNiIsOSwiXHU3MWUxXHU3MWUyXHU3MWUzXHU3MWU0XHU3MWU2XHU3''@;'; put 'put ''MWU4Iiw1LCJcdTcxZWYiLDksIlx1NzFmYSIsMTEsIlx1NzIwNyIsMTldLFsiYTA4MCIsIlx1NzIxYlx1NzIxY1x1NzIxZSIsOSwiXHU3MjI5XHU3MjJiXHU3MjJkXHU3MjJlXHU3MjJmXHU3MjMyXHU3MjMzXHU3MjM0XHU3MjNhXHU3MjNjXHU3MjNlXHU3MjQwIiw2LCJcdTcyNDlcdTcyNGFc''@;'; put 'put ''dTcyNGJcdTcyNGVcdTcyNGZcdTcyNTBcdTcyNTFcdTcyNTNcdTcyNTRcdTcyNTVcdTcyNTdcdTcyNThcdTcyNWFcdTcyNWNcdTcyNWVcdTcyNjBcdTcyNjNcdTcyNjRcdTcyNjVcdTcyNjhcdTcyNmFcdTcyNmJcdTcyNmNcdTcyNmRcdTcyNzBcdTcyNzFcdTcyNzNcdTcyNzRcdTcyNzZcdTcy''@;'; put 'put ''NzdcdTcyNzhcdTcyN2JcdTcyN2NcdTcyN2RcdTcyODJcdTcyODNcdTcyODUiLDQsIlx1NzI4Y1x1NzI4ZVx1NzI5MFx1NzI5MVx1NzI5MyIsMTEsIlx1NzJhMCIsMTEsIlx1NzJhZVx1NzJiMVx1NzJiMlx1NzJiM1x1NzJiNVx1NzJiYSIsNiwiXHU3MmM1XHU3MmM2XHU3MmM3XHU3MmM5XHU3''@;'; put 'put ''MmNhXHU3MmNiXHU3MmNjXHU3MmNmXHU3MmQxXHU3MmQzXHU3MmQ0XHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRhXHU3MmRiIl0sWyJhMWExIiwiXHUzMDAwXHUzMDAxXHUzMDAyXHhiN1x1MDJjOVx1MDJjN1x4YThcdTMwMDNcdTMwMDVcdTIwMTRcdWZmNWVcdTIwMTZcdTIwMjZcdTIwMThcdTIw''@;'; put 'put ''MTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDgiLDcsIlx1MzAxNlx1MzAxN1x1MzAxMFx1MzAxMVx4YjFceGQ3XHhmN1x1MjIzNlx1MjIyN1x1MjIyOFx1MjIxMVx1MjIwZlx1MjIyYVx1MjIyOVx1MjIwOFx1MjIzN1x1MjIxYVx1MjJhNVx1MjIyNVx1MjIyMFx1MjMxMlx1MjI5OVx1''@;'; put 'put ''MjIyYlx1MjIyZVx1MjI2MVx1MjI0Y1x1MjI0OFx1MjIzZFx1MjIxZFx1MjI2MFx1MjI2ZVx1MjI2Zlx1MjI2NFx1MjI2NVx1MjIxZVx1MjIzNVx1MjIzNFx1MjY0Mlx1MjY0MFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdWZmMDRceGE0XHVmZmUwXHVmZmUxXHUyMDMwXHhhN1x1MjExNlx1MjYw''@;'; put 'put ''Nlx1MjYwNVx1MjVjYlx1MjVjZlx1MjVjZVx1MjVjN1x1MjVjNlx1MjVhMVx1MjVhMFx1MjViM1x1MjViMlx1MjAzYlx1MjE5Mlx1MjE5MFx1MjE5MVx1MjE5M1x1MzAxMyJdLFsiYTJhMSIsIlx1MjE3MCIsOV0sWyJhMmIxIiwiXHUyNDg4IiwxOSwiXHUyNDc0IiwxOSwiXHUyNDYwIiw5XSxb''@;'; put 'put ''ImEyZTUiLCJcdTMyMjAiLDldLFsiYTJmMSIsIlx1MjE2MCIsMTFdLFsiYTNhMSIsIlx1ZmYwMVx1ZmYwMlx1ZmYwM1x1ZmZlNVx1ZmYwNSIsODgsIlx1ZmZlMyJdLFsiYTRhMSIsIlx1MzA0MSIsODJdLFsiYTVhMSIsIlx1MzBhMSIsODVdLFsiYTZhMSIsIlx1MDM5MSIsMTYsIlx1MDNhMyIs''@;'; put 'put ''Nl0sWyJhNmMxIiwiXHUwM2IxIiwxNiwiXHUwM2MzIiw2XSxbImE2ZTAiLCJcdWZlMzVcdWZlMzZcdWZlMzlcdWZlM2FcdWZlM2ZcdWZlNDBcdWZlM2RcdWZlM2VcdWZlNDFcdWZlNDJcdWZlNDNcdWZlNDQiXSxbImE2ZWUiLCJcdWZlM2JcdWZlM2NcdWZlMzdcdWZlMzhcdWZlMzEiXSxbImE2''@;'; put 'put ''ZjQiLCJcdWZlMzNcdWZlMzQiXSxbImE3YTEiLCJcdTA0MTAiLDUsIlx1MDQwMVx1MDQxNiIsMjVdLFsiYTdkMSIsIlx1MDQzMCIsNSwiXHUwNDUxXHUwNDM2IiwyNV0sWyJhODQwIiwiXHUwMmNhXHUwMmNiXHUwMmQ5XHUyMDEzXHUyMDE1XHUyMDI1XHUyMDM1XHUyMTA1XHUyMTA5XHUyMTk2''@;'; put 'put ''XHUyMTk3XHUyMTk4XHUyMTk5XHUyMjE1XHUyMjFmXHUyMjIzXHUyMjUyXHUyMjY2XHUyMjY3XHUyMmJmXHUyNTUwIiwzNSwiXHUyNTgxIiw2XSxbImE4ODAiLCJcdTI1ODgiLDcsIlx1MjU5M1x1MjU5NFx1MjU5NVx1MjViY1x1MjViZFx1MjVlMlx1MjVlM1x1MjVlNFx1MjVlNVx1MjYwOVx1''@;'; put 'put ''MjI5NVx1MzAxMlx1MzAxZFx1MzAxZSJdLFsiYThhMSIsIlx1MDEwMVx4ZTFcdTAxY2VceGUwXHUwMTEzXHhlOVx1MDExYlx4ZThcdTAxMmJceGVkXHUwMWQwXHhlY1x1MDE0ZFx4ZjNcdTAxZDJceGYyXHUwMTZiXHhmYVx1MDFkNFx4ZjlcdTAxZDZcdTAxZDhcdTAxZGFcdTAxZGNceGZjXHhl''@;'; put 'put ''YVx1MDI1MSJdLFsiYThiZCIsIlx1MDE0NFx1MDE0OCJdLFsiYThjMCIsIlx1MDI2MSJdLFsiYThjNSIsIlx1MzEwNSIsMzZdLFsiYTk0MCIsIlx1MzAyMSIsOCwiXHUzMmEzXHUzMzhlXHUzMzhmXHUzMzljXHUzMzlkXHUzMzllXHUzM2ExXHUzM2M0XHUzM2NlXHUzM2QxXHUzM2QyXHUzM2Q1''@;'; put 'put ''XHVmZTMwXHVmZmUyXHVmZmU0Il0sWyJhOTU5IiwiXHUyMTIxXHUzMjMxIl0sWyJhOTVjIiwiXHUyMDEwIl0sWyJhOTYwIiwiXHUzMGZjXHUzMDliXHUzMDljXHUzMGZkXHUzMGZlXHUzMDA2XHUzMDlkXHUzMDllXHVmZTQ5Iiw5LCJcdWZlNTRcdWZlNTVcdWZlNTZcdWZlNTdcdWZlNTkiLDhd''@;'; put 'put ''LFsiYTk4MCIsIlx1ZmU2MiIsNCwiXHVmZTY4XHVmZTY5XHVmZTZhXHVmZTZiIl0sWyJhOTk2IiwiXHUzMDA3Il0sWyJhOWE0IiwiXHUyNTAwIiw3NV0sWyJhYTQwIiwiXHU3MmRjXHU3MmRkXHU3MmRmXHU3MmUyIiw1LCJcdTcyZWFcdTcyZWJcdTcyZjVcdTcyZjZcdTcyZjlcdTcyZmRcdTcy''@;'; put 'put ''ZmVcdTcyZmZcdTczMDBcdTczMDJcdTczMDQiLDUsIlx1NzMwYlx1NzMwY1x1NzMwZFx1NzMwZlx1NzMxMFx1NzMxMVx1NzMxMlx1NzMxNFx1NzMxOFx1NzMxOVx1NzMxYVx1NzMxZlx1NzMyMFx1NzMyM1x1NzMyNFx1NzMyNlx1NzMyN1x1NzMyOFx1NzMyZFx1NzMyZlx1NzMzMFx1NzMzMlx1''@;'; put 'put ''NzMzM1x1NzMzNVx1NzMzNlx1NzMzYVx1NzMzYlx1NzMzY1x1NzMzZFx1NzM0MCIsOF0sWyJhYTgwIiwiXHU3MzQ5XHU3MzRhXHU3MzRiXHU3MzRjXHU3MzRlXHU3MzRmXHU3MzUxXHU3MzUzXHU3MzU0XHU3MzU1XHU3MzU2XHU3MzU4Iiw3LCJcdTczNjEiLDEwLCJcdTczNmVcdTczNzBcdTcz''@;'; put 'put ''NzEiXSxbImFiNDAiLCJcdTczNzIiLDExLCJcdTczN2YiLDQsIlx1NzM4NVx1NzM4Nlx1NzM4OFx1NzM4YVx1NzM4Y1x1NzM4ZFx1NzM4Zlx1NzM5MFx1NzM5Mlx1NzM5M1x1NzM5NFx1NzM5NVx1NzM5N1x1NzM5OFx1NzM5OVx1NzM5YVx1NzM5Y1x1NzM5ZFx1NzM5ZVx1NzNhMFx1NzNhMVx1''@;'; put 'put ''NzNhMyIsNSwiXHU3M2FhXHU3M2FjXHU3M2FkXHU3M2IxXHU3M2I0XHU3M2I1XHU3M2I2XHU3M2I4XHU3M2I5XHU3M2JjXHU3M2JkXHU3M2JlXHU3M2JmXHU3M2MxXHU3M2MzIiw0XSxbImFiODAiLCJcdTczY2JcdTczY2NcdTczY2VcdTczZDIiLDYsIlx1NzNkYVx1NzNkYlx1NzNkY1x1NzNk''@;'; put 'put ''ZFx1NzNkZlx1NzNlMVx1NzNlMlx1NzNlM1x1NzNlNFx1NzNlNlx1NzNlOFx1NzNlYVx1NzNlYlx1NzNlY1x1NzNlZVx1NzNlZlx1NzNmMFx1NzNmMVx1NzNmMyIsNF0sWyJhYzQwIiwiXHU3M2Y4IiwxMCwiXHU3NDA0XHU3NDA3XHU3NDA4XHU3NDBiXHU3NDBjXHU3NDBkXHU3NDBlXHU3NDEx''@;'; put 'put ''Iiw4LCJcdTc0MWMiLDUsIlx1NzQyM1x1NzQyNFx1NzQyN1x1NzQyOVx1NzQyYlx1NzQyZFx1NzQyZlx1NzQzMVx1NzQzMlx1NzQzNyIsNCwiXHU3NDNkXHU3NDNlXHU3NDNmXHU3NDQwXHU3NDQyIiwxMV0sWyJhYzgwIiwiXHU3NDRlIiw2LCJcdTc0NTZcdTc0NThcdTc0NWRcdTc0NjAiLDEy''@;'; put 'put ''LCJcdTc0NmVcdTc0NmZcdTc0NzEiLDQsIlx1NzQ3OFx1NzQ3OVx1NzQ3YSJdLFsiYWQ0MCIsIlx1NzQ3Ylx1NzQ3Y1x1NzQ3ZFx1NzQ3Zlx1NzQ4Mlx1NzQ4NFx1NzQ4NVx1NzQ4Nlx1NzQ4OFx1NzQ4OVx1NzQ4YVx1NzQ4Y1x1NzQ4ZFx1NzQ4Zlx1NzQ5MSIsMTAsIlx1NzQ5ZFx1NzQ5ZiIs''@;'; put 'put ''NywiXHU3NGFhIiwxNSwiXHU3NGJiIiwxMl0sWyJhZDgwIiwiXHU3NGM4Iiw5LCJcdTc0ZDMiLDgsIlx1NzRkZFx1NzRkZlx1NzRlMVx1NzRlNVx1NzRlNyIsNiwiXHU3NGYwXHU3NGYxXHU3NGYyIl0sWyJhZTQwIiwiXHU3NGYzXHU3NGY1XHU3NGY4Iiw2LCJcdTc1MDBcdTc1MDFcdTc1MDJc''@;'; put 'put ''dTc1MDNcdTc1MDUiLDcsIlx1NzUwZVx1NzUxMFx1NzUxMlx1NzUxNFx1NzUxNVx1NzUxNlx1NzUxN1x1NzUxYlx1NzUxZFx1NzUxZVx1NzUyMCIsNCwiXHU3NTI2XHU3NTI3XHU3NTJhXHU3NTJlXHU3NTM0XHU3NTM2XHU3NTM5XHU3NTNjXHU3NTNkXHU3NTNmXHU3NTQxXHU3NTQyXHU3NTQz''@;'; put 'put ''XHU3NTQ0XHU3NTQ2XHU3NTQ3XHU3NTQ5XHU3NTRhXHU3NTRkXHU3NTUwXHU3NTUxXHU3NTUyXHU3NTUzXHU3NTU1XHU3NTU2XHU3NTU3XHU3NTU4Il0sWyJhZTgwIiwiXHU3NTVkIiw3LCJcdTc1NjdcdTc1NjhcdTc1NjlcdTc1NmIiLDYsIlx1NzU3M1x1NzU3NVx1NzU3Nlx1NzU3N1x1NzU3''@;'; put 'put ''YSIsNCwiXHU3NTgwXHU3NTgxXHU3NTgyXHU3NTg0XHU3NTg1XHU3NTg3Il0sWyJhZjQwIiwiXHU3NTg4XHU3NTg5XHU3NThhXHU3NThjXHU3NThkXHU3NThlXHU3NTkwXHU3NTkzXHU3NTk1XHU3NTk4XHU3NTliXHU3NTljXHU3NTllXHU3NWEyXHU3NWE2Iiw0LCJcdTc1YWRcdTc1YjZcdTc1''@;'; put 'put ''YjdcdTc1YmFcdTc1YmJcdTc1YmZcdTc1YzBcdTc1YzFcdTc1YzZcdTc1Y2JcdTc1Y2NcdTc1Y2VcdTc1Y2ZcdTc1ZDBcdTc1ZDFcdTc1ZDNcdTc1ZDdcdTc1ZDlcdTc1ZGFcdTc1ZGNcdTc1ZGRcdTc1ZGZcdTc1ZTBcdTc1ZTFcdTc1ZTVcdTc1ZTlcdTc1ZWNcdTc1ZWRcdTc1ZWVcdTc1ZWZc''@;'; put 'put ''dTc1ZjJcdTc1ZjNcdTc1ZjVcdTc1ZjZcdTc1ZjdcdTc1ZjhcdTc1ZmFcdTc1ZmJcdTc1ZmRcdTc1ZmVcdTc2MDJcdTc2MDRcdTc2MDZcdTc2MDciXSxbImFmODAiLCJcdTc2MDhcdTc2MDlcdTc2MGJcdTc2MGRcdTc2MGVcdTc2MGZcdTc2MTFcdTc2MTJcdTc2MTNcdTc2MTRcdTc2MTZcdTc2''@;'; put 'put ''MWFcdTc2MWNcdTc2MWRcdTc2MWVcdTc2MjFcdTc2MjNcdTc2MjdcdTc2MjhcdTc2MmNcdTc2MmVcdTc2MmZcdTc2MzFcdTc2MzJcdTc2MzZcdTc2MzdcdTc2MzlcdTc2M2FcdTc2M2JcdTc2M2RcdTc2NDFcdTc2NDJcdTc2NDQiXSxbImIwNDAiLCJcdTc2NDUiLDYsIlx1NzY0ZSIsNSwiXHU3''@;'; put 'put ''NjU1XHU3NjU3Iiw0LCJcdTc2NWRcdTc2NWZcdTc2NjBcdTc2NjFcdTc2NjJcdTc2NjQiLDYsIlx1NzY2Y1x1NzY2ZFx1NzY2ZVx1NzY3MCIsNywiXHU3Njc5XHU3NjdhXHU3NjdjXHU3NjdmXHU3NjgwXHU3NjgxXHU3NjgzXHU3Njg1XHU3Njg5XHU3NjhhXHU3NjhjXHU3NjhkXHU3NjhmXHU3''@;'; put 'put ''NjkwXHU3NjkyXHU3Njk0XHU3Njk1XHU3Njk3XHU3Njk4XHU3NjlhXHU3NjliIl0sWyJiMDgwIiwiXHU3NjljIiw3LCJcdTc2YTUiLDgsIlx1NzZhZlx1NzZiMFx1NzZiM1x1NzZiNSIsOSwiXHU3NmMwXHU3NmMxXHU3NmMzXHU1NTRhXHU5NjNmXHU1N2MzXHU2MzI4XHU1NGNlXHU1NTA5XHU1''@;'; put 'put ''NGMwXHU3NjkxXHU3NjRjXHU4NTNjXHU3N2VlXHU4MjdlXHU3ODhkXHU3MjMxXHU5Njk4XHU5NzhkXHU2YzI4XHU1Yjg5XHU0ZmZhXHU2MzA5XHU2Njk3XHU1Y2I4XHU4MGZhXHU2ODQ4XHU4MGFlXHU2NjAyXHU3NmNlXHU1MWY5XHU2NTU2XHU3MWFjXHU3ZmYxXHU4ODg0XHU1MGIyXHU1OTY1''@;'; put 'put ''XHU2MWNhXHU2ZmIzXHU4MmFkXHU2MzRjXHU2MjUyXHU1M2VkXHU1NDI3XHU3YjA2XHU1MTZiXHU3NWE0XHU1ZGY0XHU2MmQ0XHU4ZGNiXHU5Nzc2XHU2MjhhXHU4MDE5XHU1NzVkXHU5NzM4XHU3ZjYyXHU3MjM4XHU3NjdkXHU2N2NmXHU3NjdlXHU2NDQ2XHU0ZjcwXHU4ZDI1XHU2MmRjXHU3''@;'; put 'put ''YTE3XHU2NTkxXHU3M2VkXHU2NDJjXHU2MjczXHU4MjJjXHU5ODgxXHU2NzdmXHU3MjQ4XHU2MjZlXHU2MmNjXHU0ZjM0XHU3NGUzXHU1MzRhXHU1MjllXHU3ZWNhXHU5MGE2XHU1ZTJlXHU2ODg2XHU2OTljXHU4MTgwXHU3ZWQxXHU2OGQyXHU3OGM1XHU4NjhjXHU5NTUxXHU1MDhkXHU4YzI0''@;'; put 'put ''XHU4MmRlXHU4MGRlXHU1MzA1XHU4OTEyXHU1MjY1Il0sWyJiMTQwIiwiXHU3NmM0XHU3NmM3XHU3NmM5XHU3NmNiXHU3NmNjXHU3NmQzXHU3NmQ1XHU3NmQ5XHU3NmRhXHU3NmRjXHU3NmRkXHU3NmRlXHU3NmUwIiw0LCJcdTc2ZTYiLDcsIlx1NzZmMFx1NzZmM1x1NzZmNVx1NzZmNlx1NzZm''@;'; put 'put ''N1x1NzZmYVx1NzZmYlx1NzZmZFx1NzZmZlx1NzcwMFx1NzcwMlx1NzcwM1x1NzcwNVx1NzcwNlx1NzcwYVx1NzcwY1x1NzcwZSIsMTAsIlx1NzcxYlx1NzcxY1x1NzcxZFx1NzcxZVx1NzcyMVx1NzcyM1x1NzcyNFx1NzcyNVx1NzcyN1x1NzcyYVx1NzcyYiJdLFsiYjE4MCIsIlx1NzcyY1x1''@;'; put 'put ''NzcyZVx1NzczMCIsNCwiXHU3NzM5XHU3NzNiXHU3NzNkXHU3NzNlXHU3NzNmXHU3NzQyXHU3NzQ0XHU3NzQ1XHU3NzQ2XHU3NzQ4Iiw3LCJcdTc3NTIiLDcsIlx1Nzc1Y1x1ODU4NFx1OTZmOVx1NGZkZFx1NTgyMVx1OTk3MVx1NWI5ZFx1NjJiMVx1NjJhNVx1NjZiNFx1OGM3OVx1OWM4ZFx1''@;'; put 'put ''NzIwNlx1Njc2Zlx1Nzg5MVx1NjBiMlx1NTM1MVx1NTMxN1x1OGY4OFx1ODBjY1x1OGQxZFx1OTRhMVx1NTAwZFx1NzJjOFx1NTkwN1x1NjBlYlx1NzExOVx1ODhhYlx1NTk1NFx1ODJlZlx1NjcyY1x1N2IyOFx1NWQyOVx1N2VmN1x1NzUyZFx1NmNmNVx1OGU2Nlx1OGZmOFx1OTAzY1x1OWYz''@;'; put 'put ''Ylx1NmJkNFx1OTExOVx1N2IxNFx1NWY3Y1x1NzhhN1x1ODRkNlx1ODUzZFx1NmJkNVx1NmJkOVx1NmJkNlx1NWUwMVx1NWU4N1x1NzVmOVx1OTVlZFx1NjU1ZFx1NWYwYVx1NWZjNVx1OGY5Zlx1NThjMVx1ODFjMlx1OTA3Zlx1OTY1Ylx1OTdhZFx1OGZiOVx1N2YxNlx1OGQyY1x1NjI0MVx1''@;'; put 'put ''NGZiZlx1NTNkOFx1NTM1ZVx1OGZhOFx1OGZhOVx1OGZhYlx1OTA0ZFx1NjgwN1x1NWY2YVx1ODE5OFx1ODg2OFx1OWNkNlx1NjE4Ylx1NTIyYlx1NzYyYVx1NWY2Y1x1NjU4Y1x1NmZkMlx1NmVlOFx1NWJiZVx1NjQ0OFx1NTE3NVx1NTFiMFx1NjdjNFx1NGUxOVx1NzljOVx1OTk3Y1x1NzBi''@;'; put 'put ''MyJdLFsiYjI0MCIsIlx1Nzc1ZFx1Nzc1ZVx1Nzc1Zlx1Nzc2MFx1Nzc2NFx1Nzc2N1x1Nzc2OVx1Nzc2YVx1Nzc2ZCIsMTEsIlx1Nzc3YVx1Nzc3Ylx1Nzc3Y1x1Nzc4MVx1Nzc4Mlx1Nzc4M1x1Nzc4NiIsNSwiXHU3NzhmXHU3NzkwXHU3NzkzIiwxMSwiXHU3N2ExXHU3N2EzXHU3N2E0XHU3''@;'; put 'put ''N2E2XHU3N2E4XHU3N2FiXHU3N2FkXHU3N2FlXHU3N2FmXHU3N2IxXHU3N2IyXHU3N2I0XHU3N2I2Iiw0XSxbImIyODAiLCJcdTc3YmNcdTc3YmVcdTc3YzAiLDEyLCJcdTc3Y2UiLDgsIlx1NzdkOFx1NzdkOVx1NzdkYVx1NzdkZCIsNCwiXHU3N2U0XHU3NWM1XHU1ZTc2XHU3M2JiXHU4M2Uw''@;'; put 'put ''XHU2NGFkXHU2MmU4XHU5NGI1XHU2Y2UyXHU1MzVhXHU1MmMzXHU2NDBmXHU5NGMyXHU3Yjk0XHU0ZjJmXHU1ZTFiXHU4MjM2XHU4MTE2XHU4MThhXHU2ZTI0XHU2Y2NhXHU5YTczXHU2MzU1XHU1MzVjXHU1NGZhXHU4ODY1XHU1N2UwXHU0ZTBkXHU1ZTAzXHU2YjY1XHU3YzNmXHU5MGU4XHU2''@;'; put 'put ''MDE2XHU2NGU2XHU3MzFjXHU4OGMxXHU2NzUwXHU2MjRkXHU4ZDIyXHU3NzZjXHU4ZTI5XHU5MWM3XHU1ZjY5XHU4M2RjXHU4NTIxXHU5OTEwXHU1M2MyXHU4Njk1XHU2YjhiXHU2MGVkXHU2MGU4XHU3MDdmXHU4MmNkXHU4MjMxXHU0ZWQzXHU2Y2E3XHU4NWNmXHU2NGNkXHU3Y2Q5XHU2OWZk''@;'; put 'put ''XHU2NmY5XHU4MzQ5XHU1Mzk1XHU3YjU2XHU0ZmE3XHU1MThjXHU2ZDRiXHU1YzQyXHU4ZTZkXHU2M2QyXHU1M2M5XHU4MzJjXHU4MzM2XHU2N2U1XHU3OGI0XHU2NDNkXHU1YmRmXHU1Yzk0XHU1ZGVlXHU4YmU3XHU2MmM2XHU2N2Y0XHU4YzdhXHU2NDAwXHU2M2JhXHU4NzQ5XHU5OThiXHU4''@;'; put 'put ''YzE3XHU3ZjIwXHU5NGYyXHU0ZWE3XHU5NjEwXHU5OGE0XHU2NjBjXHU3MzE2Il0sWyJiMzQwIiwiXHU3N2U2XHU3N2U4XHU3N2VhXHU3N2VmXHU3N2YwXHU3N2YxXHU3N2YyXHU3N2Y0XHU3N2Y1XHU3N2Y3XHU3N2Y5XHU3N2ZhXHU3N2ZiXHU3N2ZjXHU3ODAzIiw1LCJcdTc4MGFcdTc4MGJc''@;'; put 'put ''dTc4MGVcdTc4MGZcdTc4MTBcdTc4MTNcdTc4MTVcdTc4MTlcdTc4MWJcdTc4MWVcdTc4MjBcdTc4MjFcdTc4MjJcdTc4MjRcdTc4MjhcdTc4MmFcdTc4MmJcdTc4MmVcdTc4MmZcdTc4MzFcdTc4MzJcdTc4MzNcdTc4MzVcdTc4MzZcdTc4M2RcdTc4M2ZcdTc4NDFcdTc4NDJcdTc4NDNcdTc4''@;'; put 'put ''NDRcdTc4NDZcdTc4NDhcdTc4NDlcdTc4NGFcdTc4NGJcdTc4NGRcdTc4NGZcdTc4NTFcdTc4NTNcdTc4NTRcdTc4NThcdTc4NTlcdTc4NWEiXSxbImIzODAiLCJcdTc4NWJcdTc4NWNcdTc4NWUiLDExLCJcdTc4NmYiLDcsIlx1Nzg3OFx1Nzg3OVx1Nzg3YVx1Nzg3Ylx1Nzg3ZCIsNiwiXHU1''@;'; put 'put ''NzNhXHU1YzFkXHU1ZTM4XHU5NTdmXHU1MDdmXHU4MGEwXHU1MzgyXHU2NTVlXHU3NTQ1XHU1NTMxXHU1MDIxXHU4ZDg1XHU2Mjg0XHU5NDllXHU2NzFkXHU1NjMyXHU2ZjZlXHU1ZGUyXHU1NDM1XHU3MDkyXHU4ZjY2XHU2MjZmXHU2NGE0XHU2M2EzXHU1ZjdiXHU2Zjg4XHU5MGY0XHU4MWUz''@;'; put 'put ''XHU4ZmIwXHU1YzE4XHU2NjY4XHU1ZmYxXHU2Yzg5XHU5NjQ4XHU4ZDgxXHU4ODZjXHU2NDkxXHU3OWYwXHU1N2NlXHU2YTU5XHU2MjEwXHU1NDQ4XHU0ZTU4XHU3YTBiXHU2MGU5XHU2Zjg0XHU4YmRhXHU2MjdmXHU5MDFlXHU5YThiXHU3OWU0XHU1NDAzXHU3NWY0XHU2MzAxXHU1MzE5XHU2''@;'; put 'put ''YzYwXHU4ZmRmXHU1ZjFiXHU5YTcwXHU4MDNiXHU5ZjdmXHU0Zjg4XHU1YzNhXHU4ZDY0XHU3ZmM1XHU2NWE1XHU3MGJkXHU1MTQ1XHU1MWIyXHU4NjZiXHU1ZDA3XHU1YmEwXHU2MmJkXHU5MTZjXHU3NTc0XHU4ZTBjXHU3YTIwXHU2MTAxXHU3Yjc5XHU0ZWM3XHU3ZWY4XHU3Nzg1XHU0ZTEx''@;'; put 'put ''XHU4MWVkXHU1MjFkXHU1MWZhXHU2YTcxXHU1M2E4XHU4ZTg3XHU5NTA0XHU5NmNmXHU2ZWMxXHU5NjY0XHU2OTVhIl0sWyJiNDQwIiwiXHU3ODg0XHU3ODg1XHU3ODg2XHU3ODg4XHU3ODhhXHU3ODhiXHU3ODhmXHU3ODkwXHU3ODkyXHU3ODk0XHU3ODk1XHU3ODk2XHU3ODk5XHU3ODlkXHU3''@;'; put 'put ''ODllXHU3OGEwXHU3OGEyXHU3OGE0XHU3OGE2XHU3OGE4Iiw3LCJcdTc4YjVcdTc4YjZcdTc4YjdcdTc4YjhcdTc4YmFcdTc4YmJcdTc4YmNcdTc4YmRcdTc4YmZcdTc4YzBcdTc4YzJcdTc4YzNcdTc4YzRcdTc4YzZcdTc4YzdcdTc4YzhcdTc4Y2NcdTc4Y2RcdTc4Y2VcdTc4Y2ZcdTc4ZDFc''@;'; put 'put ''dTc4ZDJcdTc4ZDNcdTc4ZDZcdTc4ZDdcdTc4ZDhcdTc4ZGEiLDldLFsiYjQ4MCIsIlx1NzhlNFx1NzhlNVx1NzhlNlx1NzhlN1x1NzhlOVx1NzhlYVx1NzhlYlx1NzhlZCIsNCwiXHU3OGYzXHU3OGY1XHU3OGY2XHU3OGY4XHU3OGY5XHU3OGZiIiw1LCJcdTc5MDJcdTc5MDNcdTc5MDRcdTc5''@;'; put 'put ''MDYiLDYsIlx1Nzg0MFx1NTBhOFx1NzdkN1x1NjQxMFx1ODllNlx1NTkwNFx1NjNlM1x1NWRkZFx1N2E3Zlx1NjkzZFx1NGYyMFx1ODIzOVx1NTU5OFx1NGUzMlx1NzVhZVx1N2E5N1x1NWU2Mlx1NWU4YVx1OTVlZlx1NTIxYlx1NTQzOVx1NzA4YVx1NjM3Nlx1OTUyNFx1NTc4Mlx1NjYyNVx1''@;'; put 'put ''NjkzZlx1OTE4N1x1NTUwN1x1NmRmM1x1N2VhZlx1ODgyMlx1NjIzM1x1N2VmMFx1NzViNVx1ODMyOFx1NzhjMVx1OTZjY1x1OGY5ZVx1NjE0OFx1NzRmN1x1OGJjZFx1NmI2NFx1NTIzYVx1OGQ1MFx1NmIyMVx1ODA2YVx1ODQ3MVx1NTZmMVx1NTMwNlx1NGVjZVx1NGUxYlx1NTFkMVx1N2M5''@;'; put 'put ''N1x1OTE4Ylx1N2MwN1x1NGZjM1x1OGU3Zlx1N2JlMVx1N2E5Y1x1NjQ2N1x1NWQxNFx1NTBhY1x1ODEwNlx1NzYwMVx1N2NiOVx1NmRlY1x1N2ZlMFx1Njc1MVx1NWI1OFx1NWJmOFx1NzhjYlx1NjRhZVx1NjQxM1x1NjNhYVx1NjMyYlx1OTUxOVx1NjQyZFx1OGZiZVx1N2I1NFx1NzYyOVx1''@;'; put 'put ''NjI1M1x1NTkyN1x1NTQ0Nlx1NmI3OVx1NTBhM1x1NjIzNFx1NWUyNlx1NmI4Nlx1NGVlM1x1OGQzN1x1ODg4Ylx1NWY4NVx1OTAyZSJdLFsiYjU0MCIsIlx1NzkwZCIsNSwiXHU3OTE0Iiw5LCJcdTc5MWYiLDQsIlx1NzkyNSIsMTQsIlx1NzkzNSIsNCwiXHU3OTNkXHU3OTNmXHU3OTQyXHU3''@;'; put 'put ''OTQzXHU3OTQ0XHU3OTQ1XHU3OTQ3XHU3OTRhIiw4LCJcdTc5NTRcdTc5NTVcdTc5NThcdTc5NTlcdTc5NjFcdTc5NjMiXSxbImI1ODAiLCJcdTc5NjRcdTc5NjZcdTc5NjlcdTc5NmFcdTc5NmJcdTc5NmNcdTc5NmVcdTc5NzAiLDYsIlx1Nzk3OVx1Nzk3YiIsNCwiXHU3OTgyXHU3OTgzXHU3''@;'; put 'put ''OTg2XHU3OTg3XHU3OTg4XHU3OTg5XHU3OThiXHU3OThjXHU3OThkXHU3OThlXHU3OTkwXHU3OTkxXHU3OTkyXHU2MDIwXHU4MDNkXHU2MmM1XHU0ZTM5XHU1MzU1XHU5MGY4XHU2M2I4XHU4MGM2XHU2NWU2XHU2YzJlXHU0ZjQ2XHU2MGVlXHU2ZGUxXHU4YmRlXHU1ZjM5XHU4NmNiXHU1ZjUz''@;'; put 'put ''XHU2MzIxXHU1MTVhXHU4MzYxXHU2ODYzXHU1MjAwXHU2MzYzXHU4ZTQ4XHU1MDEyXHU1YzliXHU3OTc3XHU1YmZjXHU1MjMwXHU3YTNiXHU2MGJjXHU5MDUzXHU3NmQ3XHU1ZmI3XHU1Zjk3XHU3Njg0XHU4ZTZjXHU3MDZmXHU3NjdiXHU3YjQ5XHU3N2FhXHU1MWYzXHU5MDkzXHU1ODI0XHU0''@;'; put 'put ''ZjRlXHU2ZWY0XHU4ZmVhXHU2NTRjXHU3YjFiXHU3MmM0XHU2ZGE0XHU3ZmRmXHU1YWUxXHU2MmI1XHU1ZTk1XHU1NzMwXHU4NDgyXHU3YjJjXHU1ZTFkXHU1ZjFmXHU5MDEyXHU3ZjE0XHU5OGEwXHU2MzgyXHU2ZWM3XHU3ODk4XHU3MGI5XHU1MTc4XHU5NzViXHU1N2FiXHU3NTM1XHU0ZjQz''@;'; put 'put ''XHU3NTM4XHU1ZTk3XHU2MGU2XHU1OTYwXHU2ZGMwXHU2YmJmXHU3ODg5XHU1M2ZjXHU5NmQ1XHU1MWNiXHU1MjAxXHU2Mzg5XHU1NDBhXHU5NDkzXHU4YzAzXHU4ZGNjXHU3MjM5XHU3ODlmXHU4Nzc2XHU4ZmVkXHU4YzBkXHU1M2UwIl0sWyJiNjQwIiwiXHU3OTkzIiw2LCJcdTc5OWIiLDEx''@;'; put 'put ''LCJcdTc5YTgiLDEwLCJcdTc5YjQiLDQsIlx1NzliY1x1NzliZlx1NzljMlx1NzljNFx1NzljNVx1NzljN1x1NzljOFx1NzljYVx1NzljY1x1NzljZVx1NzljZlx1NzlkMFx1NzlkM1x1NzlkNFx1NzlkNlx1NzlkN1x1NzlkOSIsNSwiXHU3OWUwXHU3OWUxXHU3OWUyXHU3OWU1XHU3OWU4XHU3''@;'; put 'put ''OWVhIl0sWyJiNjgwIiwiXHU3OWVjXHU3OWVlXHU3OWYxIiw2LCJcdTc5ZjlcdTc5ZmFcdTc5ZmNcdTc5ZmVcdTc5ZmZcdTdhMDFcdTdhMDRcdTdhMDVcdTdhMDdcdTdhMDhcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMGYiLDQsIlx1N2ExNVx1N2ExNlx1N2ExOFx1N2ExOVx1N2ExYlx1N2ExY1x1''@;'; put 'put ''NGUwMVx1NzZlZlx1NTNlZVx1OTQ4OVx1OTg3Nlx1OWYwZVx1OTUyZFx1NWI5YVx1OGJhMlx1NGUyMlx1NGUxY1x1NTFhY1x1ODQ2M1x1NjFjMlx1NTJhOFx1NjgwYlx1NGY5N1x1NjA2Ylx1NTFiYlx1NmQxZVx1NTE1Y1x1NjI5Nlx1NjU5N1x1OTY2MVx1OGM0Nlx1OTAxN1x1NzVkOFx1OTBm''@;'; put 'put ''ZFx1Nzc2M1x1NmJkMlx1NzI4YVx1NzJlY1x1OGJmYlx1NTgzNVx1Nzc3OVx1OGQ0Y1x1Njc1Y1x1OTU0MFx1ODA5YVx1NWVhNlx1NmUyMVx1NTk5Mlx1N2FlZlx1NzdlZFx1OTUzYlx1NmJiNVx1NjVhZFx1N2YwZVx1NTgwNlx1NTE1MVx1OTYxZlx1NWJmOVx1NThhOVx1NTQyOFx1OGU3Mlx1''@;'; put 'put ''NjU2Nlx1OTg3Zlx1NTZlNFx1OTQ5ZFx1NzZmZVx1OTA0MVx1NjM4N1x1NTRjNlx1NTkxYVx1NTkzYVx1NTc5Ylx1OGViMlx1NjczNVx1OGRmYVx1ODIzNVx1NTI0MVx1NjBmMFx1NTgxNVx1ODZmZVx1NWNlOFx1OWU0NVx1NGZjNFx1OTg5ZFx1OGJiOVx1NWEyNVx1NjA3Nlx1NTM4NFx1NjI3''@;'; put 'put ''Y1x1OTA0Zlx1OTEwMlx1OTk3Zlx1NjA2OVx1ODAwY1x1NTEzZlx1ODAzM1x1NWMxNFx1OTk3NVx1NmQzMVx1NGU4YyJdLFsiYjc0MCIsIlx1N2ExZFx1N2ExZlx1N2EyMVx1N2EyMlx1N2EyNCIsMTQsIlx1N2EzNFx1N2EzNVx1N2EzNlx1N2EzOFx1N2EzYVx1N2EzZVx1N2E0MCIsNSwiXHU3''@;'; put 'put ''YTQ3Iiw5LCJcdTdhNTIiLDQsIlx1N2E1OCIsMTZdLFsiYjc4MCIsIlx1N2E2OSIsNiwiXHU3YTcxXHU3YTcyXHU3YTczXHU3YTc1XHU3YTdiXHU3YTdjXHU3YTdkXHU3YTdlXHU3YTgyXHU3YTg1XHU3YTg3XHU3YTg5XHU3YThhXHU3YThiXHU3YThjXHU3YThlXHU3YThmXHU3YTkwXHU3YTkz''@;'; put 'put ''XHU3YTk0XHU3YTk5XHU3YTlhXHU3YTliXHU3YTllXHU3YWExXHU3YWEyXHU4ZDMwXHU1M2QxXHU3ZjVhXHU3YjRmXHU0ZjEwXHU0ZTRmXHU5NjAwXHU2Y2Q1XHU3M2QwXHU4NWU5XHU1ZTA2XHU3NTZhXHU3ZmZiXHU2YTBhXHU3N2ZlXHU5NDkyXHU3ZTQxXHU1MWUxXHU3MGU2XHU1M2NkXHU4''@;'; put 'put ''ZmQ0XHU4MzAzXHU4ZDI5XHU3MmFmXHU5OTZkXHU2Y2RiXHU1NzRhXHU4MmIzXHU2NWI5XHU4MGFhXHU2MjNmXHU5NjMyXHU1OWE4XHU0ZWZmXHU4YmJmXHU3ZWJhXHU2NTNlXHU4M2YyXHU5NzVlXHU1NTYxXHU5OGRlXHU4MGE1XHU1MzJhXHU4YmZkXHU1NDIwXHU4MGJhXHU1ZTlmXHU2Y2I4''@;'; put 'put ''XHU4ZDM5XHU4MmFjXHU5MTVhXHU1NDI5XHU2YzFiXHU1MjA2XHU3ZWI3XHU1NzVmXHU3MTFhXHU2YzdlXHU3Yzg5XHU1OTRiXHU0ZWZkXHU1ZmZmXHU2MTI0XHU3Y2FhXHU0ZTMwXHU1YzAxXHU2N2FiXHU4NzAyXHU1Y2YwXHU5NTBiXHU5OGNlXHU3NWFmXHU3MGZkXHU5MDIyXHU1MWFmXHU3''@;'; put 'put ''ZjFkXHU4YmJkXHU1OTQ5XHU1MWU0XHU0ZjViXHU1NDI2XHU1OTJiXHU2NTc3XHU4MGE0XHU1Yjc1XHU2Mjc2XHU2MmMyXHU4ZjkwXHU1ZTQ1XHU2YzFmXHU3YjI2XHU0ZjBmXHU0ZmQ4XHU2NzBkIl0sWyJiODQwIiwiXHU3YWEzXHU3YWE0XHU3YWE3XHU3YWE5XHU3YWFhXHU3YWFiXHU3YWFl''@;'; put 'put ''Iiw0LCJcdTdhYjQiLDEwLCJcdTdhYzAiLDEwLCJcdTdhY2MiLDksIlx1N2FkN1x1N2FkOFx1N2FkYVx1N2FkYlx1N2FkY1x1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNFx1N2FlNyIsNSwiXHU3YWVlXHU3YWYwXHU3YWYxXHU3YWYyXHU3YWYzIl0sWyJiODgwIiwiXHU3YWY0Iiw0LCJcdTdhZmJc''@;'; put 'put ''dTdhZmNcdTdhZmVcdTdiMDBcdTdiMDFcdTdiMDJcdTdiMDVcdTdiMDdcdTdiMDlcdTdiMGNcdTdiMGRcdTdiMGVcdTdiMTBcdTdiMTJcdTdiMTNcdTdiMTZcdTdiMTdcdTdiMThcdTdiMWFcdTdiMWNcdTdiMWRcdTdiMWZcdTdiMjFcdTdiMjJcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmRcdTZk''@;'; put 'put ''NmVcdTZkYWFcdTc5OGZcdTg4YjFcdTVmMTdcdTc1MmJcdTYyOWFcdThmODVcdTRmZWZcdTkxZGNcdTY1YTdcdTgxMmZcdTgxNTFcdTVlOWNcdTgxNTBcdThkNzRcdTUyNmZcdTg5ODZcdThkNGJcdTU5MGRcdTUwODVcdTRlZDhcdTk2MWNcdTcyMzZcdTgxNzlcdThkMWZcdTViY2NcdThiYTNc''@;'; put 'put ''dTk2NDRcdTU5ODdcdTdmMWFcdTU0OTBcdTU2NzZcdTU2MGVcdThiZTVcdTY1MzlcdTY5ODJcdTk0OTlcdTc2ZDZcdTZlODlcdTVlNzJcdTc1MThcdTY3NDZcdTY3ZDFcdTdhZmZcdTgwOWRcdThkNzZcdTYxMWZcdTc5YzZcdTY1NjJcdThkNjNcdTUxODhcdTUyMWFcdTk0YTJcdTdmMzhcdTgw''@;'; put 'put ''OWJcdTdlYjJcdTVjOTdcdTZlMmZcdTY3NjBcdTdiZDlcdTc2OGJcdTlhZDhcdTgxOGZcdTdmOTRcdTdjZDVcdTY0MWVcdTk1NTBcdTdhM2ZcdTU0NGFcdTU0ZTVcdTZiNGNcdTY0MDFcdTYyMDhcdTllM2RcdTgwZjNcdTc1OTlcdTUyNzJcdTk3NjlcdTg0NWJcdTY4M2NcdTg2ZTRcdTk2MDFc''@;'; put 'put ''dTk2OTRcdTk0ZWNcdTRlMmFcdTU0MDRcdTdlZDlcdTY4MzlcdThkZGZcdTgwMTVcdTY2ZjRcdTVlOWFcdTdmYjkiXSxbImI5NDAiLCJcdTdiMmZcdTdiMzBcdTdiMzJcdTdiMzRcdTdiMzVcdTdiMzZcdTdiMzdcdTdiMzlcdTdiM2JcdTdiM2RcdTdiM2YiLDUsIlx1N2I0Nlx1N2I0OFx1N2I0''@;'; put 'put ''YVx1N2I0ZFx1N2I0ZVx1N2I1M1x1N2I1NVx1N2I1N1x1N2I1OVx1N2I1Y1x1N2I1ZVx1N2I1Zlx1N2I2MVx1N2I2MyIsMTAsIlx1N2I2Zlx1N2I3MFx1N2I3M1x1N2I3NFx1N2I3Nlx1N2I3OFx1N2I3YVx1N2I3Y1x1N2I3ZFx1N2I3Zlx1N2I4MVx1N2I4Mlx1N2I4M1x1N2I4NFx1N2I4NiIs''@;'; put 'put ''NiwiXHU3YjhlXHU3YjhmIl0sWyJiOTgwIiwiXHU3YjkxXHU3YjkyXHU3YjkzXHU3Yjk2XHU3Yjk4XHU3Yjk5XHU3YjlhXHU3YjliXHU3YjllXHU3YjlmXHU3YmEwXHU3YmEzXHU3YmE0XHU3YmE1XHU3YmFlXHU3YmFmXHU3YmIwXHU3YmIyXHU3YmIzXHU3YmI1XHU3YmI2XHU3YmI3XHU3YmI5''@;'; put 'put ''Iiw3LCJcdTdiYzJcdTdiYzNcdTdiYzRcdTU3YzJcdTgwM2ZcdTY4OTdcdTVkZTVcdTY1M2JcdTUyOWZcdTYwNmRcdTlmOWFcdTRmOWJcdThlYWNcdTUxNmNcdTViYWJcdTVmMTNcdTVkZTlcdTZjNWVcdTYyZjFcdThkMjFcdTUxNzFcdTk0YTlcdTUyZmVcdTZjOWZcdTgyZGZcdTcyZDdcdTU3''@;'; put 'put ''YTJcdTY3ODRcdThkMmRcdTU5MWZcdThmOWNcdTgzYzdcdTU0OTVcdTdiOGRcdTRmMzBcdTZjYmRcdTViNjRcdTU5ZDFcdTlmMTNcdTUzZTRcdTg2Y2FcdTlhYThcdThjMzdcdTgwYTFcdTY1NDVcdTk4N2VcdTU2ZmFcdTk2YzdcdTUyMmVcdTc0ZGNcdTUyNTBcdTViZTFcdTYzMDJcdTg5MDJc''@;'; put 'put ''dTRlNTZcdTYyZDBcdTYwMmFcdTY4ZmFcdTUxNzNcdTViOThcdTUxYTBcdTg5YzJcdTdiYTFcdTk5ODZcdTdmNTBcdTYwZWZcdTcwNGNcdThkMmZcdTUxNDlcdTVlN2ZcdTkwMWJcdTc0NzBcdTg5YzRcdTU3MmRcdTc4NDVcdTVmNTJcdTlmOWZcdTk1ZmFcdThmNjhcdTliM2NcdThiZTFcdTc2''@;'; put 'put ''NzhcdTY4NDJcdTY3ZGNcdThkZWFcdThkMzVcdTUyM2RcdThmOGFcdTZlZGFcdTY4Y2RcdTk1MDVcdTkwZWRcdTU2ZmRcdTY3OWNcdTg4ZjlcdThmYzdcdTU0YzgiXSxbImJhNDAiLCJcdTdiYzVcdTdiYzhcdTdiYzlcdTdiY2FcdTdiY2JcdTdiY2RcdTdiY2VcdTdiY2ZcdTdiZDBcdTdiZDJc''@;'; put 'put ''dTdiZDQiLDQsIlx1N2JkYlx1N2JkY1x1N2JkZVx1N2JkZlx1N2JlMFx1N2JlMlx1N2JlM1x1N2JlNFx1N2JlN1x1N2JlOFx1N2JlOVx1N2JlYlx1N2JlY1x1N2JlZFx1N2JlZlx1N2JmMFx1N2JmMiIsNCwiXHU3YmY4XHU3YmY5XHU3YmZhXHU3YmZiXHU3YmZkXHU3YmZmIiw3LCJcdTdjMDhc''@;'; put 'put ''dTdjMDlcdTdjMGFcdTdjMGRcdTdjMGVcdTdjMTAiLDUsIlx1N2MxN1x1N2MxOFx1N2MxOSJdLFsiYmE4MCIsIlx1N2MxYSIsNCwiXHU3YzIwIiw1LCJcdTdjMjhcdTdjMjlcdTdjMmIiLDEyLCJcdTdjMzkiLDUsIlx1N2M0Mlx1OWFiOFx1NWI2OVx1NmQ3N1x1NmMyNlx1NGVhNVx1NWJiM1x1''@;'; put 'put ''OWE4N1x1OTE2M1x1NjFhOFx1OTBhZlx1OTdlOVx1NTQyYlx1NmRiNVx1NWJkMlx1NTFmZFx1NTU4YVx1N2Y1NVx1N2ZmMFx1NjRiY1x1NjM0ZFx1NjVmMVx1NjFiZVx1NjA4ZFx1NzEwYVx1NmM1N1x1NmM0OVx1NTkyZlx1Njc2ZFx1ODIyYVx1NThkNVx1NTY4ZVx1OGM2YVx1NmJlYlx1OTBk''@;'; put 'put ''ZFx1NTk3ZFx1ODAxN1x1NTNmN1x1NmQ2OVx1NTQ3NVx1NTU5ZFx1ODM3N1x1ODNjZlx1NjgzOFx1NzliZVx1NTQ4Y1x1NGY1NVx1NTQwOFx1NzZkMlx1OGM4OVx1OTYwMlx1NmNiM1x1NmRiOFx1OGQ2Ylx1ODkxMFx1OWU2NFx1OGQzYVx1NTYzZlx1OWVkMVx1NzVkNVx1NWY4OFx1NzJlMFx1''@;'; put 'put ''NjA2OFx1NTRmY1x1NGVhOFx1NmEyYVx1ODg2MVx1NjA1Mlx1OGY3MFx1NTRjNFx1NzBkOFx1ODY3OVx1OWUzZlx1NmQyYVx1NWI4Zlx1NWYxOFx1N2VhMlx1NTU4OVx1NGZhZlx1NzMzNFx1NTQzY1x1NTM5YVx1NTAxOVx1NTQwZVx1NTQ3Y1x1NGU0ZVx1NWZmZFx1NzQ1YVx1NThmNlx1ODQ2''@;'; put 'put ''Ylx1ODBlMVx1ODc3NFx1NzJkMFx1N2NjYVx1NmU1NiJdLFsiYmI0MCIsIlx1N2M0MyIsOSwiXHU3YzRlIiwzNiwiXHU3Yzc1Iiw1LCJcdTdjN2UiLDldLFsiYmI4MCIsIlx1N2M4OFx1N2M4YSIsNiwiXHU3YzkzXHU3Yzk0XHU3Yzk2XHU3Yzk5XHU3YzlhXHU3YzliXHU3Y2EwXHU3Y2ExXHU3''@;'; put 'put ''Y2EzXHU3Y2E2XHU3Y2E3XHU3Y2E4XHU3Y2E5XHU3Y2FiXHU3Y2FjXHU3Y2FkXHU3Y2FmXHU3Y2IwXHU3Y2I0Iiw0LCJcdTdjYmFcdTdjYmJcdTVmMjdcdTg2NGVcdTU1MmNcdTYyYTRcdTRlOTJcdTZjYWFcdTYyMzdcdTgyYjFcdTU0ZDdcdTUzNGVcdTczM2VcdTZlZDFcdTc1M2JcdTUyMTJc''@;'; put 'put ''dTUzMTZcdThiZGRcdTY5ZDBcdTVmOGFcdTYwMDBcdTZkZWVcdTU3NGZcdTZiMjJcdTczYWZcdTY4NTNcdThmZDhcdTdmMTNcdTYzNjJcdTYwYTNcdTU1MjRcdTc1ZWFcdThjNjJcdTcxMTVcdTZkYTNcdTViYTZcdTVlN2JcdTgzNTJcdTYxNGNcdTllYzRcdTc4ZmFcdTg3NTdcdTdjMjdcdTc2''@;'; put 'put ''ODdcdTUxZjBcdTYwZjZcdTcxNGNcdTY2NDNcdTVlNGNcdTYwNGRcdThjMGVcdTcwNzBcdTYzMjVcdThmODlcdTVmYmRcdTYwNjJcdTg2ZDRcdTU2ZGVcdTZiYzFcdTYwOTRcdTYxNjdcdTUzNDlcdTYwZTBcdTY2NjZcdThkM2ZcdTc5ZmRcdTRmMWFcdTcwZTlcdTZjNDdcdThiYjNcdThiZjJc''@;'; put 'put ''dTdlZDhcdTgzNjRcdTY2MGZcdTVhNWFcdTliNDJcdTZkNTFcdTZkZjdcdThjNDFcdTZkM2JcdTRmMTlcdTcwNmJcdTgzYjdcdTYyMTZcdTYwZDFcdTk3MGRcdThkMjdcdTc5NzhcdTUxZmJcdTU3M2VcdTU3ZmFcdTY3M2FcdTc1NzhcdTdhM2RcdTc5ZWZcdTdiOTUiXSxbImJjNDAiLCJcdTdj''@;'; put 'put ''YmZcdTdjYzBcdTdjYzJcdTdjYzNcdTdjYzRcdTdjYzZcdTdjYzlcdTdjY2JcdTdjY2UiLDYsIlx1N2NkOFx1N2NkYVx1N2NkYlx1N2NkZFx1N2NkZVx1N2NlMSIsNiwiXHU3Y2U5Iiw1LCJcdTdjZjAiLDcsIlx1N2NmOVx1N2NmYVx1N2NmYyIsMTMsIlx1N2QwYiIsNV0sWyJiYzgwIiwiXHU3''@;'; put 'put ''ZDExIiwxNCwiXHU3ZDIxXHU3ZDIzXHU3ZDI0XHU3ZDI1XHU3ZDI2XHU3ZDI4XHU3ZDI5XHU3ZDJhXHU3ZDJjXHU3ZDJkXHU3ZDJlXHU3ZDMwIiw2LCJcdTgwOGNcdTk5NjVcdThmZjlcdTZmYzBcdThiYTVcdTllMjFcdTU5ZWNcdTdlZTlcdTdmMDlcdTU0MDlcdTY3ODFcdTY4ZDhcdThmOTFc''@;'; put 'put ''dTdjNGRcdTk2YzZcdTUzY2FcdTYwMjVcdTc1YmVcdTZjNzJcdTUzNzNcdTVhYzlcdTdlYTdcdTYzMjRcdTUxZTBcdTgxMGFcdTVkZjFcdTg0ZGZcdTYyODBcdTUxODBcdTViNjNcdTRmMGVcdTc5NmRcdTUyNDJcdTYwYjhcdTZkNGVcdTViYzRcdTViYzJcdThiYTFcdThiYjBcdTY1ZTJcdTVm''@;'; put 'put ''Y2NcdTk2NDVcdTU5OTNcdTdlZTdcdTdlYWFcdTU2MDlcdTY3YjdcdTU5MzlcdTRmNzNcdTViYjZcdTUyYTBcdTgzNWFcdTk4OGFcdThkM2VcdTc1MzJcdTk0YmVcdTUwNDdcdTdhM2NcdTRlZjdcdTY3YjZcdTlhN2VcdTVhYzFcdTZiN2NcdTc2ZDFcdTU3NWFcdTVjMTZcdTdiM2FcdTk1ZjRc''@;'; put 'put ''dTcxNGVcdTUxN2NcdTgwYTlcdTgyNzBcdTU5NzhcdTdmMDRcdTgzMjdcdTY4YzBcdTY3ZWNcdTc4YjFcdTc4NzdcdTYyZTNcdTYzNjFcdTdiODBcdTRmZWRcdTUyNmFcdTUxY2ZcdTgzNTBcdTY5ZGJcdTkyNzRcdThkZjVcdThkMzFcdTg5YzFcdTk1MmVcdTdiYWRcdTRlZjYiXSxbImJkNDAi''@;'; put 'put ''LCJcdTdkMzciLDU0LCJcdTdkNmYiLDddLFsiYmQ4MCIsIlx1N2Q3OCIsMzIsIlx1NTA2NVx1ODIzMFx1NTI1MVx1OTk2Zlx1NmUxMFx1NmU4NVx1NmRhN1x1NWVmYVx1NTBmNVx1NTlkY1x1NWMwNlx1NmQ0Nlx1NmM1Zlx1NzU4Nlx1ODQ4Ylx1Njg2OFx1NTk1Nlx1OGJiMlx1NTMyMFx1OTE3''@;'; put 'put ''MVx1OTY0ZFx1ODU0OVx1NjkxMlx1NzkwMVx1NzEyNlx1ODBmNlx1NGVhNFx1OTBjYVx1NmQ0N1x1OWE4NFx1NWEwN1x1NTZiY1x1NjQwNVx1OTRmMFx1NzdlYlx1NGZhNVx1ODExYVx1NzJlMVx1ODlkMlx1OTk3YVx1N2YzNFx1N2VkZVx1NTI3Zlx1NjU1OVx1OTE3NVx1OGY3Zlx1OGY4M1x1''@;'; put 'put ''NTNlYlx1N2E5Nlx1NjNlZFx1NjNhNVx1NzY4Nlx1NzlmOFx1ODg1N1x1OTYzNlx1NjIyYVx1NTJhYlx1ODI4Mlx1Njg1NFx1Njc3MFx1NjM3N1x1Nzc2Ylx1N2FlZFx1NmQwMVx1N2VkM1x1ODllM1x1NTlkMFx1NjIxMlx1ODVjOVx1ODJhNVx1NzU0Y1x1NTAxZlx1NGVjYlx1NzVhNVx1OGJl''@;'; put 'put ''Ylx1NWM0YVx1NWRmZVx1N2I0Ylx1NjVhNFx1OTFkMVx1NGVjYVx1NmQyNVx1ODk1Zlx1N2QyN1x1OTUyNlx1NGVjNVx1OGMyOFx1OGZkYlx1OTc3M1x1NjY0Ylx1Nzk4MVx1OGZkMVx1NzBlY1x1NmQ3OCJdLFsiYmU0MCIsIlx1N2Q5OSIsMTIsIlx1N2RhNyIsNiwiXHU3ZGFmIiw0Ml0sWyJi''@;'; put 'put ''ZTgwIiwiXHU3ZGRhIiwzMiwiXHU1YzNkXHU1MmIyXHU4MzQ2XHU1MTYyXHU4MzBlXHU3NzViXHU2Njc2XHU5Y2I4XHU0ZWFjXHU2MGNhXHU3Y2JlXHU3Y2IzXHU3ZWNmXHU0ZTk1XHU4YjY2XHU2NjZmXHU5ODg4XHU5NzU5XHU1ODgzXHU2NTZjXHU5NTVjXHU1Zjg0XHU3NWM5XHU5NzU2XHU3''@;'; put 'put ''YWRmXHU3YWRlXHU1MWMwXHU3MGFmXHU3YTk4XHU2M2VhXHU3YTc2XHU3ZWEwXHU3Mzk2XHU5N2VkXHU0ZTQ1XHU3MDc4XHU0ZTVkXHU5MTUyXHU1M2E5XHU2NTUxXHU2NWU3XHU4MWZjXHU4MjA1XHU1NDhlXHU1YzMxXHU3NTlhXHU5N2EwXHU2MmQ4XHU3MmQ5XHU3NWJkXHU1YzQ1XHU5YTc5''@;'; put 'put ''XHU4M2NhXHU1YzQwXHU1NDgwXHU3N2U5XHU0ZTNlXHU2Y2FlXHU4MDVhXHU2MmQyXHU2MzZlXHU1ZGU4XHU1MTc3XHU4ZGRkXHU4ZTFlXHU5NTJmXHU0ZmYxXHU1M2U1XHU2MGU3XHU3MGFjXHU1MjY3XHU2MzUwXHU5ZTQzXHU1YTFmXHU1MDI2XHU3NzM3XHU1Mzc3XHU3ZWUyXHU2NDg1XHU2''@;'; put 'put ''NTJiXHU2Mjg5XHU2Mzk4XHU1MDE0XHU3MjM1XHU4OWM5XHU1MWIzXHU4YmMwXHU3ZWRkXHU1NzQ3XHU4M2NjXHU5NGE3XHU1MTliXHU1NDFiXHU1Y2ZiIl0sWyJiZjQwIiwiXHU3ZGZiIiw2Ml0sWyJiZjgwIiwiXHU3ZTNhXHU3ZTNjIiw0LCJcdTdlNDIiLDQsIlx1N2U0OCIsMjEsIlx1NGZj''@;'; put 'put ''YVx1N2FlM1x1NmQ1YVx1OTBlMVx1OWE4Zlx1NTU4MFx1NTQ5Nlx1NTM2MVx1NTRhZlx1NWYwMFx1NjNlOVx1Njk3N1x1NTFlZlx1NjE2OFx1NTIwYVx1NTgyYVx1NTJkOFx1NTc0ZVx1NzgwZFx1NzcwYlx1NWViN1x1NjE3N1x1N2NlMFx1NjI1Ylx1NjI5N1x1NGVhMlx1NzA5NVx1ODAwM1x1''@;'; put 'put ''NjJmN1x1NzBlNFx1OTc2MFx1NTc3N1x1ODJkYlx1NjdlZlx1NjhmNVx1NzhkNVx1OTg5N1x1NzlkMVx1NThmM1x1NTRiM1x1NTNlZlx1NmUzNFx1NTE0Ylx1NTIzYlx1NWJhMlx1OGJmZVx1ODBhZlx1NTU0M1x1NTdhNlx1NjA3M1x1NTc1MVx1NTQyZFx1N2E3YVx1NjA1MFx1NWI1NFx1NjNh''@;'; put 'put ''N1x1NjJhMFx1NTNlM1x1NjI2M1x1NWJjN1x1NjdhZlx1NTRlZFx1N2E5Zlx1ODJlNlx1OTE3N1x1NWU5M1x1ODhlNFx1NTkzOFx1NTdhZVx1NjMwZVx1OGRlOFx1ODBlZlx1NTc1N1x1N2I3N1x1NGZhOVx1NWZlYlx1NWJiZFx1NmIzZVx1NTMyMVx1N2I1MFx1NzJjMlx1Njg0Nlx1NzdmZlx1''@;'; put 'put ''NzczNlx1NjVmN1x1NTFiNVx1NGU4Zlx1NzZkNFx1NWNiZlx1N2FhNVx1ODQ3NVx1NTk0ZVx1OWI0MVx1NTA4MCJdLFsiYzA0MCIsIlx1N2U1ZSIsMzUsIlx1N2U4MyIsMjMsIlx1N2U5Y1x1N2U5ZFx1N2U5ZSJdLFsiYzA4MCIsIlx1N2VhZVx1N2ViNFx1N2ViYlx1N2ViY1x1N2VkNlx1N2Vl''@;'; put 'put ''NFx1N2VlY1x1N2VmOVx1N2YwYVx1N2YxMFx1N2YxZVx1N2YzN1x1N2YzOVx1N2YzYiIsNiwiXHU3ZjQzXHU3ZjQ2Iiw5LCJcdTdmNTJcdTdmNTNcdTk5ODhcdTYxMjdcdTZlODNcdTU3NjRcdTY2MDZcdTYzNDZcdTU2ZjBcdTYyZWNcdTYyNjlcdTVlZDNcdTk2MTRcdTU3ODNcdTYyYzlcdTU1''@;'; put 'put ''ODdcdTg3MjFcdTgxNGFcdThmYTNcdTU1NjZcdTgzYjFcdTY3NjVcdThkNTZcdTg0ZGRcdTVhNmFcdTY4MGZcdTYyZTZcdTdiZWVcdTk2MTFcdTUxNzBcdTZmOWNcdThjMzBcdTYzZmRcdTg5YzhcdTYxZDJcdTdmMDZcdTcwYzJcdTZlZTVcdTc0MDVcdTY5OTRcdTcyZmNcdTVlY2FcdTkwY2Vc''@;'; put 'put ''dTY3MTdcdTZkNmFcdTYzNWVcdTUyYjNcdTcyNjJcdTgwMDFcdTRmNmNcdTU5ZTVcdTkxNmFcdTcwZDlcdTZkOWRcdTUyZDJcdTRlNTBcdTk2ZjdcdTk1NmRcdTg1N2VcdTc4Y2FcdTdkMmZcdTUxMjFcdTU3OTJcdTY0YzJcdTgwOGJcdTdjN2JcdTZjZWFcdTY4ZjFcdTY5NWVcdTUxYjdcdTUz''@;'; put 'put ''OThcdTY4YThcdTcyODFcdTllY2VcdTdiZjFcdTcyZjhcdTc5YmJcdTZmMTNcdTc0MDZcdTY3NGVcdTkxY2NcdTljYTRcdTc5M2NcdTgzODlcdTgzNTRcdTU0MGZcdTY4MTdcdTRlM2RcdTUzODlcdTUyYjFcdTc4M2VcdTUzODZcdTUyMjlcdTUwODhcdTRmOGJcdTRmZDAiXSxbImMxNDAiLCJc''@;'; put 'put ''dTdmNTZcdTdmNTlcdTdmNWJcdTdmNWNcdTdmNWRcdTdmNWVcdTdmNjBcdTdmNjMiLDQsIlx1N2Y2Ylx1N2Y2Y1x1N2Y2ZFx1N2Y2Zlx1N2Y3MFx1N2Y3M1x1N2Y3NVx1N2Y3Nlx1N2Y3N1x1N2Y3OFx1N2Y3YVx1N2Y3Ylx1N2Y3Y1x1N2Y3ZFx1N2Y3Zlx1N2Y4MFx1N2Y4MiIsNywiXHU3Zjhi''@;'; put 'put ''XHU3ZjhkXHU3ZjhmIiw0LCJcdTdmOTUiLDQsIlx1N2Y5Ylx1N2Y5Y1x1N2ZhMFx1N2ZhMlx1N2ZhM1x1N2ZhNVx1N2ZhNlx1N2ZhOCIsNiwiXHU3ZmIxIl0sWyJjMTgwIiwiXHU3ZmIzIiw0LCJcdTdmYmFcdTdmYmJcdTdmYmVcdTdmYzBcdTdmYzJcdTdmYzNcdTdmYzRcdTdmYzZcdTdmYzdc''@;'; put 'put ''dTdmYzhcdTdmYzlcdTdmY2JcdTdmY2RcdTdmY2YiLDQsIlx1N2ZkNlx1N2ZkN1x1N2ZkOSIsNSwiXHU3ZmUyXHU3ZmUzXHU3NWUyXHU3YWNiXHU3YzkyXHU2Y2E1XHU5NmI2XHU1MjliXHU3NDgzXHU1NGU5XHU0ZmU5XHU4MDU0XHU4M2IyXHU4ZmRlXHU5NTcwXHU1ZWM5XHU2MDFjXHU2ZDlm''@;'; put 'put ''XHU1ZTE4XHU2NTViXHU4MTM4XHU5NGZlXHU2MDRiXHU3MGJjXHU3ZWMzXHU3Y2FlXHU1MWM5XHU2ODgxXHU3Y2IxXHU4MjZmXHU0ZTI0XHU4Zjg2XHU5MWNmXHU2NjdlXHU0ZWFlXHU4YzA1XHU2NGE5XHU4MDRhXHU1MGRhXHU3NTk3XHU3MWNlXHU1YmU1XHU4ZmJkXHU2ZjY2XHU0ZTg2XHU2''@;'; put 'put ''NDgyXHU5NTYzXHU1ZWQ2XHU2NTk5XHU1MjE3XHU4OGMyXHU3MGM4XHU1MmEzXHU3MzBlXHU3NDMzXHU2Nzk3XHU3OGY3XHU5NzE2XHU0ZTM0XHU5MGJiXHU5Y2RlXHU2ZGNiXHU1MWRiXHU4ZDQxXHU1NDFkXHU2MmNlXHU3M2IyXHU4M2YxXHU5NmY2XHU5Zjg0XHU5NGMzXHU0ZjM2XHU3Zjlh''@;'; put 'put ''XHU1MWNjXHU3MDc1XHU5Njc1XHU1Y2FkXHU5ODg2XHU1M2U2XHU0ZWU0XHU2ZTljXHU3NDA5XHU2OWI0XHU3ODZiXHU5OThmXHU3NTU5XHU1MjE4XHU3NjI0XHU2ZDQxXHU2N2YzXHU1MTZkXHU5Zjk5XHU4MDRiXHU1NDk5XHU3YjNjXHU3YWJmIl0sWyJjMjQwIiwiXHU3ZmU0XHU3ZmU3XHU3''@;'; put 'put ''ZmU4XHU3ZmVhXHU3ZmViXHU3ZmVjXHU3ZmVkXHU3ZmVmXHU3ZmYyXHU3ZmY0Iiw2LCJcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDJcdTgwMDdcdTgwMDhcdTgwMDlcdTgwMGFcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMWFcdTgwMWJcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjFcdTgwMjNc''@;'; put 'put ''dTgwMjRcdTgwMmIiLDUsIlx1ODAzMlx1ODAzNFx1ODAzOVx1ODAzYVx1ODAzY1x1ODAzZVx1ODA0MFx1ODA0MVx1ODA0NFx1ODA0NVx1ODA0N1x1ODA0OFx1ODA0OVx1ODA0ZVx1ODA0Zlx1ODA1MFx1ODA1MVx1ODA1M1x1ODA1NVx1ODA1Nlx1ODA1NyJdLFsiYzI4MCIsIlx1ODA1OVx1ODA1''@;'; put 'put ''YiIsMTMsIlx1ODA2YiIsNSwiXHU4MDcyIiwxMSwiXHU5Njg2XHU1Nzg0XHU2MmUyXHU5NjQ3XHU2OTdjXHU1YTA0XHU2NDAyXHU3YmQzXHU2ZjBmXHU5NjRiXHU4MmE2XHU1MzYyXHU5ODg1XHU1ZTkwXHU3MDg5XHU2M2IzXHU1MzY0XHU4NjRmXHU5YzgxXHU5ZTkzXHU3ODhjXHU5NzMyXHU4''@;'; put 'put ''ZGVmXHU4ZDQyXHU5ZTdmXHU2ZjVlXHU3OTg0XHU1ZjU1XHU5NjQ2XHU2MjJlXHU5YTc0XHU1NDE1XHU5NGRkXHU0ZmEzXHU2NWM1XHU1YzY1XHU1YzYxXHU3ZjE1XHU4NjUxXHU2YzJmXHU1ZjhiXHU3Mzg3XHU2ZWU0XHU3ZWZmXHU1Y2U2XHU2MzFiXHU1YjZhXHU2ZWU2XHU1Mzc1XHU0ZTcx''@;'; put 'put ''XHU2M2EwXHU3NTY1XHU2MmExXHU4ZjZlXHU0ZjI2XHU0ZWQxXHU2Y2E2XHU3ZWI2XHU4YmJhXHU4NDFkXHU4N2JhXHU3ZjU3XHU5MDNiXHU5NTIzXHU3YmE5XHU5YWExXHU4OGY4XHU4NDNkXHU2ZDFiXHU5YTg2XHU3ZWRjXHU1OTg4XHU5ZWJiXHU3MzliXHU3ODAxXHU4NjgyXHU5YTZjXHU5''@;'; put 'put ''YTgyXHU1NjFiXHU1NDE3XHU1N2NiXHU0ZTcwXHU5ZWE2XHU1MzU2XHU4ZmM4XHU4MTA5XHU3NzkyXHU5OTkyXHU4NmVlXHU2ZWUxXHU4NTEzXHU2NmZjXHU2MTYyXHU2ZjJiIl0sWyJjMzQwIiwiXHU4MDdlXHU4MDgxXHU4MDgyXHU4MDg1XHU4MDg4XHU4MDhhXHU4MDhkIiw1LCJcdTgwOTRc''@;'; put 'put ''dTgwOTVcdTgwOTdcdTgwOTlcdTgwOWVcdTgwYTNcdTgwYTZcdTgwYTdcdTgwYThcdTgwYWNcdTgwYjBcdTgwYjNcdTgwYjVcdTgwYjZcdTgwYjhcdTgwYjlcdTgwYmJcdTgwYzVcdTgwYzciLDQsIlx1ODBjZiIsNiwiXHU4MGQ4XHU4MGRmXHU4MGUwXHU4MGUyXHU4MGUzXHU4MGU2XHU4MGVl''@;'; put 'put ''XHU4MGY1XHU4MGY3XHU4MGY5XHU4MGZiXHU4MGZlXHU4MGZmXHU4MTAwXHU4MTAxXHU4MTAzXHU4MTA0XHU4MTA1XHU4MTA3XHU4MTA4XHU4MTBiIl0sWyJjMzgwIiwiXHU4MTBjXHU4MTE1XHU4MTE3XHU4MTE5XHU4MTFiXHU4MTFjXHU4MTFkXHU4MTFmIiwxMiwiXHU4MTJkXHU4MTJlXHU4''@;'; put 'put ''MTMwXHU4MTMzXHU4MTM0XHU4MTM1XHU4MTM3XHU4MTM5Iiw0LCJcdTgxM2ZcdThjMjlcdTgyOTJcdTgzMmJcdTc2ZjJcdTZjMTNcdTVmZDlcdTgzYmRcdTczMmJcdTgzMDVcdTk1MWFcdTZiZGJcdTc3ZGJcdTk0YzZcdTUzNmZcdTgzMDJcdTUxOTJcdTVlM2RcdThjOGNcdThkMzhcdTRlNDhc''@;'; put 'put ''dTczYWJcdTY3OWFcdTY4ODVcdTkxNzZcdTk3MDlcdTcxNjRcdTZjYTFcdTc3MDlcdTVhOTJcdTk1NDFcdTZiY2ZcdTdmOGVcdTY2MjdcdTViZDBcdTU5YjlcdTVhOWFcdTk1ZThcdTk1ZjdcdTRlZWNcdTg0MGNcdTg0OTlcdTZhYWNcdTc2ZGZcdTk1MzBcdTczMWJcdTY4YTZcdTViNWZcdTc3''@;'; put 'put ''MmZcdTkxOWFcdTk3NjFcdTdjZGNcdThmZjdcdThjMWNcdTVmMjVcdTdjNzNcdTc5ZDhcdTg5YzVcdTZjY2NcdTg3MWNcdTViYzZcdTVlNDJcdTY4YzlcdTc3MjBcdTdlZjVcdTUxOTVcdTUxNGRcdTUyYzlcdTVhMjlcdTdmMDVcdTk3NjJcdTgyZDdcdTYzY2ZcdTc3ODRcdTg1ZDBcdTc5ZDJc''@;'; put 'put ''dTZlM2FcdTVlOTlcdTU5OTlcdTg1MTFcdTcwNmRcdTZjMTFcdTYyYmZcdTc2YmZcdTY1NGZcdTYwYWZcdTk1ZmRcdTY2MGVcdTg3OWZcdTllMjNcdTk0ZWRcdTU0MGRcdTU0N2RcdThjMmNcdTY0NzgiXSxbImM0NDAiLCJcdTgxNDAiLDUsIlx1ODE0N1x1ODE0OVx1ODE0ZFx1ODE0ZVx1ODE0''@;'; put 'put ''Zlx1ODE1Mlx1ODE1Nlx1ODE1N1x1ODE1OFx1ODE1YiIsNCwiXHU4MTYxXHU4MTYyXHU4MTYzXHU4MTY0XHU4MTY2XHU4MTY4XHU4MTZhXHU4MTZiXHU4MTZjXHU4MTZmXHU4MTcyXHU4MTczXHU4MTc1XHU4MTc2XHU4MTc3XHU4MTc4XHU4MTgxXHU4MTgzIiw0LCJcdTgxODlcdTgxOGJcdTgx''@;'; put 'put ''OGNcdTgxOGRcdTgxOGVcdTgxOTBcdTgxOTIiLDUsIlx1ODE5OVx1ODE5YVx1ODE5ZSIsNCwiXHU4MWE0XHU4MWE1Il0sWyJjNDgwIiwiXHU4MWE3XHU4MWE5XHU4MWFiIiw3LCJcdTgxYjQiLDUsIlx1ODFiY1x1ODFiZFx1ODFiZVx1ODFiZlx1ODFjNFx1ODFjNVx1ODFjN1x1ODFjOFx1ODFj''@;'; put 'put ''OVx1ODFjYlx1ODFjZCIsNiwiXHU2NDc5XHU4NjExXHU2YTIxXHU4MTljXHU3OGU4XHU2NDY5XHU5YjU0XHU2MmI5XHU2NzJiXHU4M2FiXHU1OGE4XHU5ZWQ4XHU2Y2FiXHU2ZjIwXHU1YmRlXHU5NjRjXHU4YzBiXHU3MjVmXHU2N2QwXHU2MmM3XHU3MjYxXHU0ZWE5XHU1OWM2XHU2YmNkXHU1''@;'; put 'put ''ODkzXHU2NmFlXHU1ZTU1XHU1MmRmXHU2MTU1XHU2NzI4XHU3NmVlXHU3NzY2XHU3MjY3XHU3YTQ2XHU2MmZmXHU1NGVhXHU1NDUwXHU5NGEwXHU5MGEzXHU1YTFjXHU3ZWIzXHU2YzE2XHU0ZTQzXHU1OTc2XHU4MDEwXHU1OTQ4XHU1MzU3XHU3NTM3XHU5NmJlXHU1NmNhXHU2MzIwXHU4MTEx''@;'; put 'put ''XHU2MDdjXHU5NWY5XHU2ZGQ2XHU1NDYyXHU5OTgxXHU1MTg1XHU1YWU5XHU4MGZkXHU1OWFlXHU5NzEzXHU1MDJhXHU2Y2U1XHU1YzNjXHU2MmRmXHU0ZjYwXHU1MzNmXHU4MTdiXHU5MDA2XHU2ZWJhXHU4NTJiXHU2MmM4XHU1ZTc0XHU3OGJlXHU2NGI1XHU2MzdiXHU1ZmY1XHU1YTE4XHU5''@;'; put 'put ''MTdmXHU5ZTFmXHU1YzNmXHU2MzRmXHU4MDQyXHU1YjdkXHU1NTZlXHU5NTRhXHU5NTRkXHU2ZDg1XHU2MGE4XHU2N2UwXHU3MmRlXHU1MWRkXHU1YjgxIl0sWyJjNTQwIiwiXHU4MWQ0IiwxNCwiXHU4MWU0XHU4MWU1XHU4MWU2XHU4MWU4XHU4MWU5XHU4MWViXHU4MWVlIiw0LCJcdTgxZjUi''@;'; put 'put ''LDUsIlx1ODFmZFx1ODFmZlx1ODIwM1x1ODIwNyIsNCwiXHU4MjBlXHU4MjBmXHU4MjExXHU4MjEzXHU4MjE1Iiw1LCJcdTgyMWRcdTgyMjBcdTgyMjRcdTgyMjVcdTgyMjZcdTgyMjdcdTgyMjlcdTgyMmVcdTgyMzJcdTgyM2FcdTgyM2NcdTgyM2RcdTgyM2YiXSxbImM1ODAiLCJcdTgyNDBc''@;'; put 'put ''dTgyNDFcdTgyNDJcdTgyNDNcdTgyNDVcdTgyNDZcdTgyNDhcdTgyNGFcdTgyNGNcdTgyNGRcdTgyNGVcdTgyNTAiLDcsIlx1ODI1OVx1ODI1Ylx1ODI1Y1x1ODI1ZFx1ODI1ZVx1ODI2MCIsNywiXHU4MjY5XHU2MmU3XHU2Y2RlXHU3MjViXHU2MjZkXHU5NGFlXHU3ZWJkXHU4MTEzXHU2ZDUz''@;'; put 'put ''XHU1MTljXHU1ZjA0XHU1OTc0XHU1MmFhXHU2MDEyXHU1OTczXHU2Njk2XHU4NjUwXHU3NTlmXHU2MzJhXHU2MWU2XHU3Y2VmXHU4YmZhXHU1NGU2XHU2YjI3XHU5ZTI1XHU2YmI0XHU4NWQ1XHU1NDU1XHU1MDc2XHU2Y2E0XHU1NTZhXHU4ZGI0XHU3MjJjXHU1ZTE1XHU2MDE1XHU3NDM2XHU2''@;'; put 'put ''MmNkXHU2MzkyXHU3MjRjXHU1Zjk4XHU2ZTQzXHU2ZDNlXHU2NTAwXHU2ZjU4XHU3NmQ4XHU3OGQwXHU3NmZjXHU3NTU0XHU1MjI0XHU1M2RiXHU0ZTUzXHU1ZTllXHU2NWMxXHU4MDJhXHU4MGQ2XHU2MjliXHU1NDg2XHU1MjI4XHU3MGFlXHU4ODhkXHU4ZGQxXHU2Y2UxXHU1NDc4XHU4MGRh''@;'; put 'put ''XHU1N2Y5XHU4OGY0XHU4ZDU0XHU5NjZhXHU5MTRkXHU0ZjY5XHU2YzliXHU1NWI3XHU3NmM2XHU3ODMwXHU2MmE4XHU3MGY5XHU2ZjhlXHU1ZjZkXHU4NGVjXHU2OGRhXHU3ODdjXHU3YmY3XHU4MWE4XHU2NzBiXHU5ZTRmXHU2MzY3XHU3OGIwXHU1NzZmXHU3ODEyXHU5NzM5XHU2Mjc5XHU2''@;'; put 'put ''MmFiXHU1Mjg4XHU3NDM1XHU2YmQ3Il0sWyJjNjQwIiwiXHU4MjZhXHU4MjZiXHU4MjZjXHU4MjZkXHU4MjcxXHU4Mjc1XHU4Mjc2XHU4Mjc3XHU4Mjc4XHU4MjdiXHU4MjdjXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg1XHU4Mjg2XHU4Mjg3XHU4Mjg5XHU4MjhjXHU4MjkwXHU4MjkzXHU4Mjk0''@;'; put 'put ''XHU4Mjk1XHU4Mjk2XHU4MjlhXHU4MjliXHU4MjllXHU4MmEwXHU4MmEyXHU4MmEzXHU4MmE3XHU4MmIyXHU4MmI1XHU4MmI2XHU4MmJhXHU4MmJiXHU4MmJjXHU4MmJmXHU4MmMwXHU4MmMyXHU4MmMzXHU4MmM1XHU4MmM2XHU4MmM5XHU4MmQwXHU4MmQ2XHU4MmQ5XHU4MmRhXHU4MmRkXHU4''@;'; put 'put ''MmUyXHU4MmU3XHU4MmU4XHU4MmU5XHU4MmVhXHU4MmVjXHU4MmVkXHU4MmVlXHU4MmYwXHU4MmYyXHU4MmYzXHU4MmY1XHU4MmY2XHU4MmY4Il0sWyJjNjgwIiwiXHU4MmZhXHU4MmZjIiw0LCJcdTgzMGFcdTgzMGJcdTgzMGRcdTgzMTBcdTgzMTJcdTgzMTNcdTgzMTZcdTgzMThcdTgzMTlc''@;'; put 'put ''dTgzMWQiLDksIlx1ODMyOVx1ODMyYVx1ODMyZVx1ODMzMFx1ODMzMlx1ODMzN1x1ODMzYlx1ODMzZFx1NTU2NFx1ODEzZVx1NzViMlx1NzZhZVx1NTMzOVx1NzVkZVx1NTBmYlx1NWM0MVx1OGI2Y1x1N2JjN1x1NTA0Zlx1NzI0N1x1OWE5N1x1OThkOFx1NmYwMlx1NzRlMlx1Nzk2OFx1NjQ4''@;'; put 'put ''N1x1NzdhNVx1NjJmY1x1OTg5MVx1OGQyYlx1NTRjMVx1ODA1OFx1NGU1Mlx1NTc2YVx1ODJmOVx1ODQwZFx1NWU3M1x1NTFlZFx1NzRmNlx1OGJjNFx1NWM0Zlx1NTc2MVx1NmNmY1x1OTg4N1x1NWE0Nlx1NzgzNFx1OWI0NFx1OGZlYlx1N2M5NVx1NTI1Nlx1NjI1MVx1OTRmYVx1NGVjNlx1''@;'; put 'put ''ODM4Nlx1ODQ2MVx1ODNlOVx1ODRiMlx1NTdkNFx1NjczNFx1NTcwM1x1NjY2ZVx1NmQ2Nlx1OGMzMVx1NjZkZFx1NzAxMVx1NjcxZlx1NmIzYVx1NjgxNlx1NjIxYVx1NTliYlx1NGUwM1x1NTFjNFx1NmYwNlx1NjdkMlx1NmM4Zlx1NTE3Nlx1NjhjYlx1NTk0N1x1NmI2N1x1NzU2Nlx1NWQw''@;'; put 'put ''ZVx1ODExMFx1OWY1MFx1NjVkN1x1Nzk0OFx1Nzk0MVx1OWE5MVx1OGQ3N1x1NWM4Mlx1NGU1ZVx1NGYwMVx1NTQyZlx1NTk1MVx1NzgwY1x1NTY2OFx1NmMxNFx1OGZjNFx1NWYwM1x1NmM3ZFx1NmNlM1x1OGJhYlx1NjM5MCJdLFsiYzc0MCIsIlx1ODMzZVx1ODMzZlx1ODM0MVx1ODM0Mlx1''@;'; put 'put ''ODM0NFx1ODM0NVx1ODM0OFx1ODM0YSIsNCwiXHU4MzUzXHU4MzU1Iiw0LCJcdTgzNWRcdTgzNjJcdTgzNzAiLDYsIlx1ODM3OVx1ODM3YVx1ODM3ZSIsNiwiXHU4Mzg3XHU4Mzg4XHU4MzhhXHU4MzhiXHU4MzhjXHU4MzhkXHU4MzhmXHU4MzkwXHU4MzkxXHU4Mzk0XHU4Mzk1XHU4Mzk2XHU4''@;'; put 'put ''Mzk3XHU4Mzk5XHU4MzlhXHU4MzlkXHU4MzlmXHU4M2ExIiw2LCJcdTgzYWNcdTgzYWRcdTgzYWUiXSxbImM3ODAiLCJcdTgzYWZcdTgzYjVcdTgzYmJcdTgzYmVcdTgzYmZcdTgzYzJcdTgzYzNcdTgzYzRcdTgzYzZcdTgzYzhcdTgzYzlcdTgzY2JcdTgzY2RcdTgzY2VcdTgzZDBcdTgzZDFc''@;'; put 'put ''dTgzZDJcdTgzZDNcdTgzZDVcdTgzZDdcdTgzZDlcdTgzZGFcdTgzZGJcdTgzZGVcdTgzZTJcdTgzZTNcdTgzZTRcdTgzZTZcdTgzZTdcdTgzZThcdTgzZWJcdTgzZWNcdTgzZWRcdTYwNzBcdTZkM2RcdTcyNzVcdTYyNjZcdTk0OGVcdTk0YzVcdTUzNDNcdThmYzFcdTdiN2VcdTRlZGZcdThj''@;'; put 'put ''MjZcdTRlN2VcdTllZDRcdTk0YjFcdTk0YjNcdTUyNGRcdTZmNWNcdTkwNjNcdTZkNDVcdThjMzRcdTU4MTFcdTVkNGNcdTZiMjBcdTZiNDlcdTY3YWFcdTU0NWJcdTgxNTRcdTdmOGNcdTU4OTlcdTg1MzdcdTVmM2FcdTYyYTJcdTZhNDdcdTk1MzlcdTY1NzJcdTYwODRcdTY4NjVcdTc3YTdc''@;'; put 'put ''dTRlNTRcdTRmYThcdTVkZTdcdTk3OThcdTY0YWNcdTdmZDhcdTVjZWRcdTRmY2ZcdTdhOGRcdTUyMDdcdTgzMDRcdTRlMTRcdTYwMmZcdTdhODNcdTk0YTZcdTRmYjVcdTRlYjJcdTc5ZTZcdTc0MzRcdTUyZTRcdTgyYjlcdTY0ZDJcdTc5YmRcdTViZGRcdTZjODFcdTk3NTJcdThmN2JcdTZj''@;'; put 'put ''MjJcdTUwM2VcdTUzN2ZcdTZlMDVcdTY0Y2VcdTY2NzRcdTZjMzBcdTYwYzVcdTk4NzdcdThiZjdcdTVlODZcdTc0M2NcdTdhNzdcdTc5Y2JcdTRlMThcdTkwYjFcdTc0MDNcdTZjNDJcdTU2ZGFcdTkxNGJcdTZjYzVcdThkOGJcdTUzM2FcdTg2YzZcdTY2ZjJcdThlYWZcdTVjNDhcdTlhNzFc''@;'; put 'put ''dTZlMjAiXSxbImM4NDAiLCJcdTgzZWVcdTgzZWZcdTgzZjMiLDQsIlx1ODNmYVx1ODNmYlx1ODNmY1x1ODNmZVx1ODNmZlx1ODQwMFx1ODQwMlx1ODQwNVx1ODQwN1x1ODQwOFx1ODQwOVx1ODQwYVx1ODQxMFx1ODQxMiIsNSwiXHU4NDE5XHU4NDFhXHU4NDFiXHU4NDFlIiw1LCJcdTg0Mjki''@;'; put 'put ''LDcsIlx1ODQzMiIsNSwiXHU4NDM5XHU4NDNhXHU4NDNiXHU4NDNlIiw3LCJcdTg0NDdcdTg0NDhcdTg0NDkiXSxbImM4ODAiLCJcdTg0NGEiLDYsIlx1ODQ1MiIsNCwiXHU4NDU4XHU4NDVkXHU4NDVlXHU4NDVmXHU4NDYwXHU4NDYyXHU4NDY0Iiw0LCJcdTg0NmFcdTg0NmVcdTg0NmZcdTg0''@;'; put 'put ''NzBcdTg0NzJcdTg0NzRcdTg0NzdcdTg0NzlcdTg0N2JcdTg0N2NcdTUzZDZcdTVhMzZcdTlmOGJcdThkYTNcdTUzYmJcdTU3MDhcdTk4YTdcdTY3NDNcdTkxOWJcdTZjYzlcdTUxNjhcdTc1Y2FcdTYyZjNcdTcyYWNcdTUyMzhcdTUyOWRcdTdmM2FcdTcwOTRcdTc2MzhcdTUzNzRcdTllNGFc''@;'; put 'put ''dTY5YjdcdTc4NmVcdTk2YzBcdTg4ZDlcdTdmYTRcdTcxMzZcdTcxYzNcdTUxODlcdTY3ZDNcdTc0ZTRcdTU4ZTRcdTY1MThcdTU2YjdcdThiYTlcdTk5NzZcdTYyNzBcdTdlZDVcdTYwZjlcdTcwZWRcdTU4ZWNcdTRlYzFcdTRlYmFcdTVmY2RcdTk3ZTdcdTRlZmJcdThiYTRcdTUyMDNcdTU5''@;'; put 'put ''OGFcdTdlYWJcdTYyNTRcdTRlY2RcdTY1ZTVcdTYyMGVcdTgzMzhcdTg0YzlcdTgzNjNcdTg3OGRcdTcxOTRcdTZlYjZcdTViYjlcdTdlZDJcdTUxOTdcdTYzYzlcdTY3ZDRcdTgwODlcdTgzMzlcdTg4MTVcdTUxMTJcdTViN2FcdTU5ODJcdThmYjFcdTRlNzNcdTZjNWRcdTUxNjVcdTg5MjVc''@;'; put 'put ''dThmNmZcdTk2MmVcdTg1NGFcdTc0NWVcdTk1MTBcdTk1ZjBcdTZkYTZcdTgyZTVcdTVmMzFcdTY0OTJcdTZkMTJcdTg0MjhcdTgxNmVcdTljYzNcdTU4NWVcdThkNWJcdTRlMDlcdTUzYzEiXSxbImM5NDAiLCJcdTg0N2QiLDQsIlx1ODQ4M1x1ODQ4NFx1ODQ4NVx1ODQ4Nlx1ODQ4YVx1ODQ4''@;'; put 'put ''ZFx1ODQ4ZiIsNywiXHU4NDk4XHU4NDlhXHU4NDliXHU4NDlkXHU4NDllXHU4NDlmXHU4NGEwXHU4NGEyIiwxMiwiXHU4NGIwXHU4NGIxXHU4NGIzXHU4NGI1XHU4NGI2XHU4NGI3XHU4NGJiXHU4NGJjXHU4NGJlXHU4NGMwXHU4NGMyXHU4NGMzXHU4NGM1XHU4NGM2XHU4NGM3XHU4NGM4XHU4''@;'; put 'put ''NGNiXHU4NGNjXHU4NGNlXHU4NGNmXHU4NGQyXHU4NGQ0XHU4NGQ1XHU4NGQ3Il0sWyJjOTgwIiwiXHU4NGQ4Iiw0LCJcdTg0ZGVcdTg0ZTFcdTg0ZTJcdTg0ZTRcdTg0ZTciLDQsIlx1ODRlZFx1ODRlZVx1ODRlZlx1ODRmMSIsMTAsIlx1ODRmZFx1ODRmZVx1ODUwMFx1ODUwMVx1ODUwMlx1''@;'; put 'put ''NGYxZVx1NjU2M1x1Njg1MVx1NTVkM1x1NGUyN1x1NjQxNFx1OWE5YVx1NjI2Ylx1NWFjMlx1NzQ1Zlx1ODI3Mlx1NmRhOVx1NjhlZVx1NTBlN1x1ODM4ZVx1NzgwMlx1Njc0MFx1NTIzOVx1NmM5OVx1N2ViMVx1NTBiYlx1NTU2NVx1NzE1ZVx1N2I1Ylx1NjY1Mlx1NzNjYVx1ODJlYlx1Njc0''@;'; put 'put ''OVx1NWM3MVx1NTIyMFx1NzE3ZFx1ODg2Ylx1OTVlYVx1OTY1NVx1NjRjNVx1OGQ2MVx1ODFiM1x1NTU4NFx1NmM1NVx1NjI0N1x1N2YyZVx1NTg5Mlx1NGYyNFx1NTU0Nlx1OGQ0Zlx1NjY0Y1x1NGUwYVx1NWMxYVx1ODhmM1x1NjhhMlx1NjM0ZVx1N2EwZFx1NzBlN1x1ODI4ZFx1NTJmYVx1''@;'; put 'put ''OTdmNlx1NWMxMVx1NTRlOFx1OTBiNVx1N2VjZFx1NTk2Mlx1OGQ0YVx1ODZjN1x1ODIwY1x1ODIwZFx1OGQ2Nlx1NjQ0NFx1NWMwNFx1NjE1MVx1NmQ4OVx1NzkzZVx1OGJiZVx1NzgzN1x1NzUzM1x1NTQ3Ylx1NGYzOFx1OGVhYlx1NmRmMVx1NWEyMFx1N2VjNVx1Nzk1ZVx1NmM4OFx1NWJh''@;'; put 'put ''MVx1NWE3Nlx1NzUxYVx1ODBiZVx1NjE0ZVx1NmUxN1x1NThmMFx1NzUxZlx1NzUyNVx1NzI3Mlx1NTM0N1x1N2VmMyJdLFsiY2E0MCIsIlx1ODUwMyIsOCwiXHU4NTBkXHU4NTBlXHU4NTBmXHU4NTEwXHU4NTEyXHU4NTE0XHU4NTE1XHU4NTE2XHU4NTE4XHU4NTE5XHU4NTFiXHU4NTFjXHU4''@;'; put 'put ''NTFkXHU4NTFlXHU4NTIwXHU4NTIyIiw4LCJcdTg1MmQiLDksIlx1ODUzZSIsNCwiXHU4NTQ0XHU4NTQ1XHU4NTQ2XHU4NTQ3XHU4NTRiIiwxMF0sWyJjYTgwIiwiXHU4NTU3XHU4NTU4XHU4NTVhXHU4NTViXHU4NTVjXHU4NTVkXHU4NTVmIiw0LCJcdTg1NjVcdTg1NjZcdTg1NjdcdTg1Njki''@;'; put 'put ''LDgsIlx1ODU3M1x1ODU3NVx1ODU3Nlx1ODU3N1x1ODU3OFx1ODU3Y1x1ODU3ZFx1ODU3Zlx1ODU4MFx1ODU4MVx1NzcwMVx1NzZkYlx1NTI2OVx1ODBkY1x1NTcyM1x1NWUwOFx1NTkzMVx1NzJlZVx1NjViZFx1NmU3Zlx1OGJkN1x1NWMzOFx1ODY3MVx1NTM0MVx1NzdmM1x1NjJmZVx1NjVm''@;'; put 'put ''Nlx1NGVjMFx1OThkZlx1ODY4MFx1NWI5ZVx1OGJjNlx1NTNmMlx1NzdlMlx1NGY3Zlx1NWM0ZVx1OWE3Nlx1NTljYlx1NWYwZlx1NzkzYVx1NThlYlx1NGUxNlx1NjdmZlx1NGU4Ylx1NjJlZFx1OGE5M1x1OTAxZFx1NTJiZlx1NjYyZlx1NTVkY1x1NTY2Y1x1OTAwMlx1NGVkNVx1NGY4ZFx1''@;'; put 'put ''OTFjYVx1OTk3MFx1NmMwZlx1NWUwMlx1NjA0M1x1NWJhNFx1ODljNlx1OGJkNVx1NjUzNlx1NjI0Ylx1OTk5Nlx1NWI4OFx1NWJmZlx1NjM4OFx1NTUyZVx1NTNkN1x1NzYyNlx1NTE3ZFx1ODUyY1x1NjdhMlx1NjhiM1x1NmI4YVx1NjI5Mlx1OGY5M1x1NTNkNFx1ODIxMlx1NmRkMVx1NzU4''@;'; put 'put ''Zlx1NGU2Nlx1OGQ0ZVx1NWI3MFx1NzE5Zlx1ODVhZlx1NjY5MVx1NjZkOVx1N2Y3Mlx1ODcwMFx1OWVjZFx1OWYyMFx1NWM1ZVx1NjcyZlx1OGZmMFx1NjgxMVx1Njc1Zlx1NjIwZFx1N2FkNlx1NTg4NVx1NWViNlx1NjU3MFx1NmYzMSJdLFsiY2I0MCIsIlx1ODU4Mlx1ODU4M1x1ODU4Nlx1''@;'; put 'put ''ODU4OCIsNiwiXHU4NTkwIiwxMCwiXHU4NTlkIiw2LCJcdTg1YTVcdTg1YTZcdTg1YTdcdTg1YTlcdTg1YWJcdTg1YWNcdTg1YWRcdTg1YjEiLDUsIlx1ODViOFx1ODViYSIsNiwiXHU4NWMyIiw2LCJcdTg1Y2EiLDQsIlx1ODVkMVx1ODVkMiJdLFsiY2I4MCIsIlx1ODVkNFx1ODVkNiIsNSwi''@;'; put 'put ''XHU4NWRkIiw2LCJcdTg1ZTVcdTg1ZTZcdTg1ZTdcdTg1ZThcdTg1ZWEiLDE0LCJcdTYwNTVcdTUyMzdcdTgwMGRcdTY0NTRcdTg4NzBcdTc1MjlcdTVlMDVcdTY4MTNcdTYyZjRcdTk3MWNcdTUzY2NcdTcyM2RcdThjMDFcdTZjMzRcdTc3NjFcdTdhMGVcdTU0MmVcdTc3YWNcdTk4N2FcdTgy''@;'; put 'put ''MWNcdThiZjRcdTc4NTVcdTY3MTRcdTcwYzFcdTY1YWZcdTY0OTVcdTU2MzZcdTYwMWRcdTc5YzFcdTUzZjhcdTRlMWRcdTZiN2JcdTgwODZcdTViZmFcdTU1ZTNcdTU2ZGJcdTRmM2FcdTRmM2NcdTk5NzJcdTVkZjNcdTY3N2VcdTgwMzhcdTYwMDJcdTk4ODJcdTkwMDFcdTViOGJcdThiYmNc''@;'; put 'put ''dThiZjVcdTY0MWNcdTgyNThcdTY0ZGVcdTU1ZmRcdTgyY2ZcdTkxNjVcdTRmZDdcdTdkMjBcdTkwMWZcdTdjOWZcdTUwZjNcdTU4NTFcdTZlYWZcdTViYmZcdThiYzlcdTgwODNcdTkxNzhcdTg0OWNcdTdiOTdcdTg2N2RcdTk2OGJcdTk2OGZcdTdlZTVcdTlhZDNcdTc4OGVcdTVjODFcdTdh''@;'; put 'put ''NTdcdTkwNDJcdTk2YTdcdTc5NWZcdTViNTlcdTYzNWZcdTdiMGJcdTg0ZDFcdTY4YWRcdTU1MDZcdTdmMjlcdTc0MTBcdTdkMjJcdTk1MDFcdTYyNDBcdTU4NGNcdTRlZDZcdTViODNcdTU5NzlcdTU4NTQiXSxbImNjNDAiLCJcdTg1ZjlcdTg1ZmFcdTg1ZmNcdTg1ZmRcdTg1ZmVcdTg2MDAi''@;'; put 'put ''LDQsIlx1ODYwNiIsMTAsIlx1ODYxMlx1ODYxM1x1ODYxNFx1ODYxNVx1ODYxNyIsMTUsIlx1ODYyOFx1ODYyYSIsMTMsIlx1ODYzOVx1ODYzYVx1ODYzYlx1ODYzZFx1ODYzZVx1ODYzZlx1ODY0MCJdLFsiY2M4MCIsIlx1ODY0MSIsMTEsIlx1ODY1Mlx1ODY1M1x1ODY1NSIsNCwiXHU4NjVi''@;'; put 'put ''XHU4NjVjXHU4NjVkXHU4NjVmXHU4NjYwXHU4NjYxXHU4NjYzIiw3LCJcdTczNmRcdTYzMWVcdThlNGJcdThlMGZcdTgwY2VcdTgyZDRcdTYyYWNcdTUzZjBcdTZjZjBcdTkxNWVcdTU5MmFcdTYwMDFcdTZjNzBcdTU3NGRcdTY0NGFcdThkMmFcdTc2MmJcdTZlZTlcdTU3NWJcdTZhODBcdTc1''@;'; put 'put ''ZjBcdTZmNmRcdThjMmRcdThjMDhcdTU3NjZcdTZiZWZcdTg4OTJcdTc4YjNcdTYzYTJcdTUzZjlcdTcwYWRcdTZjNjRcdTU4NThcdTY0MmFcdTU4MDJcdTY4ZTBcdTgxOWJcdTU1MTBcdTdjZDZcdTUwMThcdThlYmFcdTZkY2NcdThkOWZcdTcwZWJcdTYzOGZcdTZkOWJcdTZlZDRcdTdlZTZc''@;'; put 'put ''dTg0MDRcdTY4NDNcdTkwMDNcdTZkZDhcdTk2NzZcdThiYThcdTU5NTdcdTcyNzlcdTg1ZTRcdTgxN2VcdTc1YmNcdThhOGFcdTY4YWZcdTUyNTRcdThlMjJcdTk1MTFcdTYzZDBcdTk4OThcdThlNDRcdTU1N2NcdTRmNTNcdTY2ZmZcdTU2OGZcdTYwZDVcdTZkOTVcdTUyNDNcdTVjNDlcdTU5''@;'; put 'put ''MjlcdTZkZmJcdTU4NmJcdTc1MzBcdTc1MWNcdTYwNmNcdTgyMTRcdTgxNDZcdTYzMTFcdTY3NjFcdThmZTJcdTc3M2FcdThkZjNcdThkMzRcdTk0YzFcdTVlMTZcdTUzODVcdTU0MmNcdTcwYzMiXSxbImNkNDAiLCJcdTg2NmRcdTg2NmZcdTg2NzBcdTg2NzIiLDYsIlx1ODY4MyIsNiwiXHU4''@;'; put 'put ''NjhlIiw0LCJcdTg2OTRcdTg2OTYiLDUsIlx1ODY5ZSIsNCwiXHU4NmE1XHU4NmE2XHU4NmFiXHU4NmFkXHU4NmFlXHU4NmIyXHU4NmIzXHU4NmI3XHU4NmI4XHU4NmI5XHU4NmJiIiw0LCJcdTg2YzFcdTg2YzJcdTg2YzNcdTg2YzVcdTg2YzhcdTg2Y2NcdTg2Y2RcdTg2ZDJcdTg2ZDNcdTg2''@;'; put 'put ''ZDVcdTg2ZDZcdTg2ZDdcdTg2ZGFcdTg2ZGMiXSxbImNkODAiLCJcdTg2ZGRcdTg2ZTBcdTg2ZTFcdTg2ZTJcdTg2ZTNcdTg2ZTVcdTg2ZTZcdTg2ZTdcdTg2ZThcdTg2ZWFcdTg2ZWJcdTg2ZWNcdTg2ZWZcdTg2ZjVcdTg2ZjZcdTg2ZjdcdTg2ZmFcdTg2ZmJcdTg2ZmNcdTg2ZmRcdTg2ZmZc''@;'; put 'put ''dTg3MDFcdTg3MDRcdTg3MDVcdTg3MDZcdTg3MGJcdTg3MGNcdTg3MGVcdTg3MGZcdTg3MTBcdTg3MTFcdTg3MTRcdTg3MTZcdTZjNDBcdTVlZjdcdTUwNWNcdTRlYWRcdTVlYWRcdTYzM2FcdTgyNDdcdTkwMWFcdTY4NTBcdTkxNmVcdTc3YjNcdTU0MGNcdTk0ZGNcdTVmNjRcdTdhZTVcdTY4''@;'; put 'put ''NzZcdTYzNDVcdTdiNTJcdTdlZGZcdTc1ZGJcdTUwNzdcdTYyOTVcdTU5MzRcdTkwMGZcdTUxZjhcdTc5YzNcdTdhODFcdTU2ZmVcdTVmOTJcdTkwMTRcdTZkODJcdTVjNjBcdTU3MWZcdTU0MTBcdTUxNTRcdTZlNGRcdTU2ZTJcdTYzYThcdTk4OTNcdTgxN2ZcdTg3MTVcdTg5MmFcdTkwMDBc''@;'; put 'put ''dTU0MWVcdTVjNmZcdTgxYzBcdTYyZDZcdTYyNThcdTgxMzFcdTllMzVcdTk2NDBcdTlhNmVcdTlhN2NcdTY5MmRcdTU5YTVcdTYyZDNcdTU1M2VcdTYzMTZcdTU0YzdcdTg2ZDlcdTZkM2NcdTVhMDNcdTc0ZTZcdTg4OWNcdTZiNmFcdTU5MTZcdThjNGNcdTVmMmZcdTZlN2VcdTczYTlcdTk4''@;'; put 'put ''N2RcdTRlMzhcdTcwZjdcdTViOGNcdTc4OTdcdTYzM2RcdTY2NWFcdTc2OTZcdTYwY2JcdTViOWJcdTVhNDlcdTRlMDdcdTgxNTVcdTZjNmFcdTczOGJcdTRlYTFcdTY3ODlcdTdmNTFcdTVmODBcdTY1ZmFcdTY3MWJcdTVmZDhcdTU5ODRcdTVhMDEiXSxbImNlNDAiLCJcdTg3MTlcdTg3MWJc''@;'; put 'put ''dTg3MWRcdTg3MWZcdTg3MjBcdTg3MjRcdTg3MjZcdTg3MjdcdTg3MjhcdTg3MmFcdTg3MmJcdTg3MmNcdTg3MmRcdTg3MmZcdTg3MzBcdTg3MzJcdTg3MzNcdTg3MzVcdTg3MzZcdTg3MzhcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3NDAiLDYsIlx1ODc0YVx1ODc0Ylx1ODc0ZFx1ODc0''@;'; put 'put ''Zlx1ODc1MFx1ODc1MVx1ODc1Mlx1ODc1NFx1ODc1NVx1ODc1Nlx1ODc1OFx1ODc1YSIsNSwiXHU4NzYxXHU4NzYyXHU4NzY2Iiw3LCJcdTg3NmZcdTg3NzFcdTg3NzJcdTg3NzNcdTg3NzUiXSxbImNlODAiLCJcdTg3NzdcdTg3NzhcdTg3NzlcdTg3N2FcdTg3N2ZcdTg3ODBcdTg3ODFcdTg3''@;'; put 'put ''ODRcdTg3ODZcdTg3ODdcdTg3ODlcdTg3OGFcdTg3OGNcdTg3OGUiLDQsIlx1ODc5NFx1ODc5NVx1ODc5Nlx1ODc5OCIsNiwiXHU4N2EwIiw0LCJcdTVkY2RcdTVmYWVcdTUzNzFcdTk3ZTZcdThmZGRcdTY4NDVcdTU2ZjRcdTU1MmZcdTYwZGZcdTRlM2FcdTZmNGRcdTdlZjRcdTgyYzdcdTg0''@;'; put 'put ''MGVcdTU5ZDRcdTRmMWZcdTRmMmFcdTVjM2VcdTdlYWNcdTY3MmFcdTg1MWFcdTU0NzNcdTc1NGZcdTgwYzNcdTU1ODJcdTliNGZcdTRmNGRcdTZlMmRcdThjMTNcdTVjMDlcdTYxNzBcdTUzNmJcdTc2MWZcdTZlMjlcdTg2OGFcdTY1ODdcdTk1ZmJcdTdlYjlcdTU0M2JcdTdhMzNcdTdkMGFc''@;'; put 'put ''dTk1ZWVcdTU1ZTFcdTdmYzFcdTc0ZWVcdTYzMWRcdTg3MTdcdTZkYTFcdTdhOWRcdTYyMTFcdTY1YTFcdTUzNjdcdTYzZTFcdTZjODNcdTVkZWJcdTU0NWNcdTk0YThcdTRlNGNcdTZjNjFcdThiZWNcdTVjNGJcdTY1ZTBcdTgyOWNcdTY4YTdcdTU0M2VcdTU0MzRcdTZiY2JcdTZiNjZcdTRl''@;'; put 'put ''OTRcdTYzNDJcdTUzNDhcdTgyMWVcdTRmMGRcdTRmYWVcdTU3NWVcdTYyMGFcdTk2ZmVcdTY2NjRcdTcyNjlcdTUyZmZcdTUyYTFcdTYwOWZcdThiZWZcdTY2MTRcdTcxOTlcdTY3OTBcdTg5N2ZcdTc4NTJcdTc3ZmRcdTY2NzBcdTU2M2JcdTU0MzhcdTk1MjFcdTcyN2EiXSxbImNmNDAiLCJc''@;'; put 'put ''dTg3YTVcdTg3YTZcdTg3YTdcdTg3YTlcdTg3YWFcdTg3YWVcdTg3YjBcdTg3YjFcdTg3YjJcdTg3YjRcdTg3YjZcdTg3YjdcdTg3YjhcdTg3YjlcdTg3YmJcdTg3YmNcdTg3YmVcdTg3YmZcdTg3YzEiLDQsIlx1ODdjN1x1ODdjOFx1ODdjOVx1ODdjYyIsNCwiXHU4N2Q0Iiw2LCJcdTg3ZGNc''@;'; put 'put ''dTg3ZGRcdTg3ZGVcdTg3ZGZcdTg3ZTFcdTg3ZTJcdTg3ZTNcdTg3ZTRcdTg3ZTZcdTg3ZTdcdTg3ZThcdTg3ZTlcdTg3ZWJcdTg3ZWNcdTg3ZWRcdTg3ZWYiLDldLFsiY2Y4MCIsIlx1ODdmYVx1ODdmYlx1ODdmY1x1ODdmZFx1ODdmZlx1ODgwMFx1ODgwMVx1ODgwMlx1ODgwNCIsNSwiXHU4''@;'; put 'put ''ODBiIiw3LCJcdTg4MTRcdTg4MTdcdTg4MThcdTg4MTlcdTg4MWFcdTg4MWMiLDQsIlx1ODgyM1x1N2EwMFx1NjA2Zlx1NWUwY1x1NjA4OVx1ODE5ZFx1NTkxNVx1NjBkY1x1NzE4NFx1NzBlZlx1NmVhYVx1NmM1MFx1NzI4MFx1NmE4NFx1ODhhZFx1NWUyZFx1NGU2MFx1NWFiM1x1NTU5Y1x1''@;'; put 'put ''OTRlM1x1NmQxN1x1N2NmYlx1OTY5OVx1NjIwZlx1N2VjNlx1Nzc4ZVx1ODY3ZVx1NTMyM1x1OTcxZVx1OGY5Nlx1NjY4N1x1NWNlMVx1NGZhMFx1NzJlZFx1NGUwYlx1NTNhNlx1NTkwZlx1NTQxM1x1NjM4MFx1OTUyOFx1NTE0OFx1NGVkOVx1OWM5Y1x1N2VhNFx1NTRiOFx1OGQyNFx1ODg1''@;'; put 'put ''NFx1ODIzN1x1OTVmMlx1NmQ4ZVx1NWYyNlx1NWFjY1x1NjYzZVx1OTY2OVx1NzNiMFx1NzMyZVx1NTNiZlx1ODE3YVx1OTk4NVx1N2ZhMVx1NWJhYVx1OTY3N1x1OTY1MFx1N2ViZlx1NzZmOFx1NTNhMlx1OTU3Nlx1OTk5OVx1N2JiMVx1ODk0NFx1NmU1OFx1NGU2MVx1N2ZkNFx1Nzk2NVx1''@;'; put 'put ''OGJlNlx1NjBmM1x1NTRjZFx1NGVhYlx1OTg3OVx1NWRmN1x1NmE2MVx1NTBjZlx1NTQxMVx1OGM2MVx1ODQyN1x1Nzg1ZFx1OTcwNFx1NTI0YVx1NTRlZVx1NTZhM1x1OTUwMFx1NmQ4OFx1NWJiNVx1NmRjNlx1NjY1MyJdLFsiZDA0MCIsIlx1ODgyNCIsMTMsIlx1ODgzMyIsNSwiXHU4ODNh''@;'; put 'put ''XHU4ODNiXHU4ODNkXHU4ODNlXHU4ODNmXHU4ODQxXHU4ODQyXHU4ODQzXHU4ODQ2Iiw1LCJcdTg4NGUiLDUsIlx1ODg1NVx1ODg1Nlx1ODg1OFx1ODg1YSIsNiwiXHU4ODY2XHU4ODY3XHU4ODZhXHU4ODZkXHU4ODZmXHU4ODcxXHU4ODczXHU4ODc0XHU4ODc1XHU4ODc2XHU4ODc4XHU4ODc5''@;'; put 'put ''XHU4ODdhIl0sWyJkMDgwIiwiXHU4ODdiXHU4ODdjXHU4ODgwXHU4ODgzXHU4ODg2XHU4ODg3XHU4ODg5XHU4ODhhXHU4ODhjXHU4ODhlXHU4ODhmXHU4ODkwXHU4ODkxXHU4ODkzXHU4ODk0XHU4ODk1XHU4ODk3Iiw0LCJcdTg4OWQiLDQsIlx1ODhhM1x1ODhhNSIsNSwiXHU1YzBmXHU1YjVk''@;'; put 'put ''XHU2ODIxXHU4MDk2XHU1NTc4XHU3YjExXHU2NTQ4XHU2OTU0XHU0ZTliXHU2YjQ3XHU4NzRlXHU5NzhiXHU1MzRmXHU2MzFmXHU2NDNhXHU5MGFhXHU2NTljXHU4MGMxXHU4YzEwXHU1MTk5XHU2OGIwXHU1Mzc4XHU4N2Y5XHU2MWM4XHU2Y2M0XHU2Y2ZiXHU4YzIyXHU1YzUxXHU4NWFhXHU4''@;'; put 'put ''MmFmXHU5NTBjXHU2YjIzXHU4ZjliXHU2NWIwXHU1ZmZiXHU1ZmMzXHU0ZmUxXHU4ODQ1XHU2NjFmXHU4MTY1XHU3MzI5XHU2MGZhXHU1MTc0XHU1MjExXHU1NzhiXHU1ZjYyXHU5MGEyXHU4ODRjXHU5MTkyXHU1ZTc4XHU2NzRmXHU2MDI3XHU1OWQzXHU1MTQ0XHU1MWY2XHU4MGY4XHU1MzA4''@;'; put 'put ''XHU2Yzc5XHU5NmM0XHU3MThhXHU0ZjExXHU0ZmVlXHU3ZjllXHU2NzNkXHU1NWM1XHU5NTA4XHU3OWMwXHU4ODk2XHU3ZWUzXHU1ODlmXHU2MjBjXHU5NzAwXHU4NjVhXHU1NjE4XHU5ODdiXHU1ZjkwXHU4YmI4XHU4NGM0XHU5MTU3XHU1M2Q5XHU2NWVkXHU1ZThmXHU3NTVjXHU2MDY0XHU3''@;'; put 'put ''ZDZlXHU1YTdmXHU3ZWVhXHU3ZWVkXHU4ZjY5XHU1NWE3XHU1YmEzXHU2MGFjXHU2NWNiXHU3Mzg0Il0sWyJkMTQwIiwiXHU4OGFjXHU4OGFlXHU4OGFmXHU4OGIwXHU4OGIyIiw0LCJcdTg4YjhcdTg4YjlcdTg4YmFcdTg4YmJcdTg4YmRcdTg4YmVcdTg4YmZcdTg4YzBcdTg4YzNcdTg4YzRc''@;'; put 'put ''dTg4YzdcdTg4YzhcdTg4Y2FcdTg4Y2JcdTg4Y2NcdTg4Y2RcdTg4Y2ZcdTg4ZDBcdTg4ZDFcdTg4ZDNcdTg4ZDZcdTg4ZDdcdTg4ZGEiLDQsIlx1ODhlMFx1ODhlMVx1ODhlNlx1ODhlN1x1ODhlOSIsNiwiXHU4OGYyXHU4OGY1XHU4OGY2XHU4OGY3XHU4OGZhXHU4OGZiXHU4OGZkXHU4OGZm''@;'; put 'put ''XHU4OTAwXHU4OTAxXHU4OTAzIiw1XSxbImQxODAiLCJcdTg5MDlcdTg5MGIiLDQsIlx1ODkxMVx1ODkxNCIsNCwiXHU4OTFjIiw0LCJcdTg5MjJcdTg5MjNcdTg5MjRcdTg5MjZcdTg5MjdcdTg5MjhcdTg5MjlcdTg5MmNcdTg5MmRcdTg5MmVcdTg5MmZcdTg5MzFcdTg5MzJcdTg5MzNcdTg5''@;'; put 'put ''MzVcdTg5MzdcdTkwMDlcdTc2NjNcdTc3MjlcdTdlZGFcdTk3NzRcdTg1OWJcdTViNjZcdTdhNzRcdTk2ZWFcdTg4NDBcdTUyY2JcdTcxOGZcdTVmYWFcdTY1ZWNcdThiZTJcdTViZmJcdTlhNmZcdTVkZTFcdTZiODlcdTZjNWJcdThiYWRcdThiYWZcdTkwMGFcdThmYzVcdTUzOGJcdTYyYmNc''@;'; put 'put ''dTllMjZcdTllMmRcdTU0NDBcdTRlMmJcdTgyYmRcdTcyNTlcdTg2OWNcdTVkMTZcdTg4NTlcdTZkYWZcdTk2YzVcdTU0ZDFcdTRlOWFcdThiYjZcdTcxMDlcdTU0YmRcdTk2MDlcdTcwZGZcdTZkZjlcdTc2ZDBcdTRlMjVcdTc4MTRcdTg3MTJcdTVjYTlcdTVlZjZcdThhMDBcdTk4OWNcdTk2''@;'; put 'put ''MGVcdTcwOGVcdTZjYmZcdTU5NDRcdTYzYTlcdTc3M2NcdTg4NGRcdTZmMTRcdTgyNzNcdTU4MzBcdTcxZDVcdTUzOGNcdTc4MWFcdTk2YzFcdTU1MDFcdTVmNjZcdTcxMzBcdTViYjRcdThjMWFcdTlhOGNcdTZiODNcdTU5MmVcdTllMmZcdTc5ZTdcdTY3NjhcdTYyNmNcdTRmNmZcdTc1YTFc''@;'; put 'put ''dTdmOGFcdTZkMGJcdTk2MzNcdTZjMjdcdTRlZjBcdTc1ZDJcdTUxN2JcdTY4MzdcdTZmM2VcdTkwODBcdTgxNzBcdTU5OTZcdTc0NzYiXSxbImQyNDAiLCJcdTg5MzgiLDgsIlx1ODk0Mlx1ODk0M1x1ODk0NSIsMjQsIlx1ODk2MCIsNSwiXHU4OTY3IiwxOSwiXHU4OTdjIl0sWyJkMjgwIiwi''@;'; put 'put ''XHU4OTdkXHU4OTdlXHU4OTgwXHU4OTgyXHU4OTg0XHU4OTg1XHU4OTg3IiwyNiwiXHU2NDQ3XHU1YzI3XHU5MDY1XHU3YTkxXHU4YzIzXHU1OWRhXHU1NGFjXHU4MjAwXHU4MzZmXHU4OTgxXHU4MDAwXHU2OTMwXHU1NjRlXHU4MDM2XHU3MjM3XHU5MWNlXHU1MWI2XHU0ZTVmXHU5ODc1XHU2''@;'; put 'put ''Mzk2XHU0ZTFhXHU1M2Y2XHU2NmYzXHU4MTRiXHU1OTFjXHU2ZGIyXHU0ZTAwXHU1OGY5XHU1MzNiXHU2M2Q2XHU5NGYxXHU0ZjlkXHU0ZjBhXHU4ODYzXHU5ODkwXHU1OTM3XHU5MDU3XHU3OWZiXHU0ZWVhXHU4MGYwXHU3NTkxXHU2YzgyXHU1YjljXHU1OWU4XHU1ZjVkXHU2OTA1XHU4Njgx''@;'; put 'put ''XHU1MDFhXHU1ZGYyXHU0ZTU5XHU3N2UzXHU0ZWU1XHU4MjdhXHU2MjkxXHU2NjEzXHU5MDkxXHU1Yzc5XHU0ZWJmXHU1Zjc5XHU4MWM2XHU5MDM4XHU4MDg0XHU3NWFiXHU0ZWE2XHU4OGQ0XHU2MTBmXHU2YmM1XHU1ZmM2XHU0ZTQ5XHU3NmNhXHU2ZWEyXHU4YmUzXHU4YmFlXHU4YzBhXHU4''@;'; put 'put ''YmQxXHU1ZjAyXHU3ZmZjXHU3ZmNjXHU3ZWNlXHU4MzM1XHU4MzZiXHU1NmUwXHU2YmI3XHU5N2YzXHU5NjM0XHU1OWZiXHU1NDFmXHU5NGY2XHU2ZGViXHU1YmM1XHU5OTZlXHU1YzM5XHU1ZjE1XHU5NjkwIl0sWyJkMzQwIiwiXHU4OWEyIiwzMCwiXHU4OWMzXHU4OWNkXHU4OWQzXHU4OWQ0''@;'; put 'put ''XHU4OWQ1XHU4OWQ3XHU4OWQ4XHU4OWQ5XHU4OWRiXHU4OWRkXHU4OWRmXHU4OWUwXHU4OWUxXHU4OWUyXHU4OWU0XHU4OWU3XHU4OWU4XHU4OWU5XHU4OWVhXHU4OWVjXHU4OWVkXHU4OWVlXHU4OWYwXHU4OWYxXHU4OWYyXHU4OWY0Iiw2XSxbImQzODAiLCJcdTg5ZmIiLDQsIlx1OGEwMSIs''@;'; put 'put ''NSwiXHU4YTA4IiwyMSwiXHU1MzcwXHU4MmYxXHU2YTMxXHU1YTc0XHU5ZTcwXHU1ZTk0XHU3ZjI4XHU4M2I5XHU4NDI0XHU4NDI1XHU4MzY3XHU4NzQ3XHU4ZmNlXHU4ZDYyXHU3NmM4XHU1ZjcxXHU5ODk2XHU3ODZjXHU2NjIwXHU1NGRmXHU2MmU1XHU0ZjYzXHU4MWMzXHU3NWM4XHU1ZWI4''@;'; put 'put ''XHU5NmNkXHU4ZTBhXHU4NmY5XHU1NDhmXHU2Y2YzXHU2ZDhjXHU2YzM4XHU2MDdmXHU1MmM3XHU3NTI4XHU1ZTdkXHU0ZjE4XHU2MGEwXHU1ZmU3XHU1YzI0XHU3NTMxXHU5MGFlXHU5NGMwXHU3MmI5XHU2Y2I5XHU2ZTM4XHU5MTQ5XHU2NzA5XHU1M2NiXHU1M2YzXHU0ZjUxXHU5MWM5XHU4''@;'; put 'put ''YmYxXHU1M2M4XHU1ZTdjXHU4ZmMyXHU2ZGU0XHU0ZThlXHU3NmMyXHU2OTg2XHU4NjVlXHU2MTFhXHU4MjA2XHU0ZjU5XHU0ZmRlXHU5MDNlXHU5YzdjXHU2MTA5XHU2ZTFkXHU2ZTE0XHU5Njg1XHU0ZTg4XHU1YTMxXHU5NmU4XHU0ZTBlXHU1YzdmXHU3OWI5XHU1Yjg3XHU4YmVkXHU3ZmJk''@;'; put 'put ''XHU3Mzg5XHU1N2RmXHU4MjhiXHU5MGMxXHU1NDAxXHU5MDQ3XHU1NWJiXHU1Y2VhXHU1ZmExXHU2MTA4XHU2YjMyXHU3MmYxXHU4MGIyXHU4YTg5Il0sWyJkNDQwIiwiXHU4YTFlIiwzMSwiXHU4YTNmIiw4LCJcdThhNDkiLDIxXSxbImQ0ODAiLCJcdThhNWYiLDI1LCJcdThhN2EiLDYsIlx1''@;'; put 'put ''NmQ3NFx1NWJkM1x1ODhkNVx1OTg4NFx1OGM2Ylx1OWE2ZFx1OWUzM1x1NmUwYVx1NTFhNFx1NTE0M1x1NTdhM1x1ODg4MVx1NTM5Zlx1NjNmNFx1OGY5NVx1NTZlZFx1NTQ1OFx1NTcwNlx1NzMzZlx1NmU5MFx1N2YxOFx1OGZkY1x1ODJkMVx1NjEzZlx1NjAyOFx1OTY2Mlx1NjZmMFx1N2Vh''@;'; put 'put ''Nlx1OGQ4YVx1OGRjM1x1OTRhNVx1NWNiM1x1N2NhNFx1NjcwOFx1NjBhNlx1OTYwNVx1ODAxOFx1NGU5MVx1OTBlN1x1NTMwMFx1OTY2OFx1NTE0MVx1OGZkMFx1ODU3NFx1OTE1ZFx1NjY1NVx1OTdmNVx1NWI1NVx1NTMxZFx1NzgzOFx1Njc0Mlx1NjgzZFx1NTRjOVx1NzA3ZVx1NWJiMFx1''@;'; put 'put ''OGY3ZFx1NTE4ZFx1NTcyOFx1NTRiMVx1NjUxMlx1NjY4Mlx1OGQ1ZVx1OGQ0M1x1ODEwZlx1ODQ2Y1x1OTA2ZFx1N2NkZlx1NTFmZlx1ODVmYlx1NjdhM1x1NjVlOVx1NmZhMVx1ODZhNFx1OGU4MVx1NTY2YVx1OTAyMFx1NzY4Mlx1NzA3Nlx1NzFlNVx1OGQyM1x1NjJlOVx1NTIxOVx1NmNm''@;'; put 'put ''ZFx1OGQzY1x1NjAwZVx1NTg5ZVx1NjE4ZVx1NjZmZVx1OGQ2MFx1NjI0ZVx1NTViM1x1NmUyM1x1NjcyZFx1OGY2NyJdLFsiZDU0MCIsIlx1OGE4MSIsNywiXHU4YThiIiw3LCJcdThhOTQiLDQ2XSxbImQ1ODAiLCJcdThhYzMiLDMyLCJcdTk0ZTFcdTk1ZjhcdTc3MjhcdTY4MDVcdTY5YThc''@;'; put 'put ''dTU0OGJcdTRlNGRcdTcwYjhcdThiYzhcdTY0NThcdTY1OGJcdTViODVcdTdhODRcdTUwM2FcdTViZThcdTc3YmJcdTZiZTFcdThhNzlcdTdjOThcdTZjYmVcdTc2Y2ZcdTY1YTlcdThmOTdcdTVkMmRcdTVjNTVcdTg2MzhcdTY4MDhcdTUzNjBcdTYyMThcdTdhZDlcdTZlNWJcdTdlZmRcdTZh''@;'; put 'put ''MWZcdTdhZTBcdTVmNzBcdTZmMzNcdTVmMjBcdTYzOGNcdTZkYThcdTY3NTZcdTRlMDhcdTVlMTBcdThkMjZcdTRlZDdcdTgwYzBcdTc2MzRcdTk2OWNcdTYyZGJcdTY2MmRcdTYyN2VcdTZjYmNcdThkNzVcdTcxNjdcdTdmNjlcdTUxNDZcdTgwODdcdTUzZWNcdTkwNmVcdTYyOThcdTU0ZjJc''@;'; put 'put ''dTg2ZjBcdThmOTlcdTgwMDVcdTk1MTdcdTg1MTdcdThmZDlcdTZkNTlcdTczY2RcdTY1OWZcdTc3MWZcdTc1MDRcdTc4MjdcdTgxZmJcdThkMWVcdTk0ODhcdTRmYTZcdTY3OTVcdTc1YjlcdThiY2FcdTk3MDdcdTYzMmZcdTk1NDdcdTk2MzVcdTg0YjhcdTYzMjNcdTc3NDFcdTVmODFcdTcy''@;'; put 'put ''ZjBcdTRlODlcdTYwMTRcdTY1NzRcdTYyZWZcdTZiNjNcdTY1M2YiXSxbImQ2NDAiLCJcdThhZTQiLDM0LCJcdThiMDgiLDI3XSxbImQ2ODAiLCJcdThiMjRcdThiMjVcdThiMjciLDMwLCJcdTVlMjdcdTc1YzdcdTkwZDFcdThiYzFcdTgyOWRcdTY3OWRcdTY1MmZcdTU0MzFcdTg3MThcdTc3''@;'; put 'put ''ZTVcdTgwYTJcdTgxMDJcdTZjNDFcdTRlNGJcdTdlYzdcdTgwNGNcdTc2ZjRcdTY5MGRcdTZiOTZcdTYyNjdcdTUwM2NcdTRmODRcdTU3NDBcdTYzMDdcdTZiNjJcdThkYmVcdTUzZWFcdTY1ZThcdTdlYjhcdTVmZDdcdTYzMWFcdTYzYjdcdTgxZjNcdTgxZjRcdTdmNmVcdTVlMWNcdTVjZDlc''@;'; put 'put ''dTUyMzZcdTY2N2FcdTc5ZTlcdTdhMWFcdThkMjhcdTcwOTlcdTc1ZDRcdTZlZGVcdTZjYmJcdTdhOTJcdTRlMmRcdTc2YzVcdTVmZTBcdTk0OWZcdTg4NzdcdTdlYzhcdTc5Y2RcdTgwYmZcdTkxY2RcdTRlZjJcdTRmMTdcdTgyMWZcdTU0NjhcdTVkZGVcdTZkMzJcdThiY2NcdTdjYTVcdThm''@;'; put 'put ''NzRcdTgwOThcdTVlMWFcdTU0OTJcdTc2YjFcdTViOTlcdTY2M2NcdTlhYTRcdTczZTBcdTY4MmFcdTg2ZGJcdTY3MzFcdTczMmFcdThiZjhcdThiZGJcdTkwMTBcdTdhZjlcdTcwZGJcdTcxNmVcdTYyYzRcdTc3YTlcdTU2MzFcdTRlM2JcdTg0NTdcdTY3ZjFcdTUyYTlcdTg2YzBcdThkMmVc''@;'; put 'put ''dTk0ZjhcdTdiNTEiXSxbImQ3NDAiLCJcdThiNDYiLDMxLCJcdThiNjciLDQsIlx1OGI2ZCIsMjVdLFsiZDc4MCIsIlx1OGI4NyIsMjQsIlx1OGJhY1x1OGJiMVx1OGJiYlx1OGJjN1x1OGJkMFx1OGJlYVx1OGMwOVx1OGMxZVx1NGY0Zlx1NmNlOFx1Nzk1ZFx1OWE3Ylx1NjI5M1x1NzIyYVx1''@;'; put 'put ''NjJmZFx1NGUxM1x1NzgxNlx1OGY2Y1x1NjRiMFx1OGQ1YVx1N2JjNlx1Njg2OVx1NWU4NFx1ODhjNVx1NTk4Nlx1NjQ5ZVx1NThlZVx1NzJiNlx1NjkwZVx1OTUyNVx1OGZmZFx1OGQ1OFx1NTc2MFx1N2YwMFx1OGMwNlx1NTFjNlx1NjM0OVx1NjJkOVx1NTM1M1x1Njg0Y1x1NzQyMlx1ODMw''@;'; put 'put ''MVx1OTE0Y1x1NTU0NFx1Nzc0MFx1NzA3Y1x1NmQ0YVx1NTE3OVx1NTRhOFx1OGQ0NFx1NTlmZlx1NmVjYlx1NmRjNFx1NWI1Y1x1N2QyYlx1NGVkNFx1N2M3ZFx1NmVkM1x1NWI1MFx1ODFlYVx1NmUwZFx1NWI1N1x1OWIwM1x1NjhkNVx1OGUyYVx1NWI5N1x1N2VmY1x1NjAzYlx1N2ViNVx1''@;'; put 'put ''OTBiOVx1OGQ3MFx1NTk0Zlx1NjNjZFx1NzlkZlx1OGRiM1x1NTM1Mlx1NjVjZlx1Nzk1Nlx1OGJjNVx1OTYzYlx1N2VjNFx1OTRiYlx1N2U4Mlx1NTYzNFx1OTE4OVx1NjcwMFx1N2Y2YVx1NWMwYVx1OTA3NVx1NjYyOFx1NWRlNlx1NGY1MFx1NjdkZVx1NTA1YVx1NGY1Y1x1NTc1MFx1NWVh''@;'; put 'put ''NyJdLFsiZDg0MCIsIlx1OGMzOCIsOCwiXHU4YzQyXHU4YzQzXHU4YzQ0XHU4YzQ1XHU4YzQ4XHU4YzRhXHU4YzRiXHU4YzRkIiw3LCJcdThjNTZcdThjNTdcdThjNThcdThjNTlcdThjNWIiLDUsIlx1OGM2MyIsNiwiXHU4YzZjIiw2LCJcdThjNzRcdThjNzVcdThjNzZcdThjNzdcdThjN2Ii''@;'; put 'put ''LDYsIlx1OGM4M1x1OGM4NFx1OGM4Nlx1OGM4NyJdLFsiZDg4MCIsIlx1OGM4OFx1OGM4Ylx1OGM4ZCIsNiwiXHU4Yzk1XHU4Yzk2XHU4Yzk3XHU4Yzk5IiwyMCwiXHU0ZThkXHU0ZTBjXHU1MTQwXHU0ZTEwXHU1ZWZmXHU1MzQ1XHU0ZTE1XHU0ZTk4XHU0ZTFlXHU5YjMyXHU1YjZjXHU1NjY5''@;'; put 'put ''XHU0ZTI4XHU3OWJhXHU0ZTNmXHU1MzE1XHU0ZTQ3XHU1OTJkXHU3MjNiXHU1MzZlXHU2YzEwXHU1NmRmXHU4MGU0XHU5OTk3XHU2YmQzXHU3NzdlXHU5ZjE3XHU0ZTM2XHU0ZTlmXHU5ZjEwXHU0ZTVjXHU0ZTY5XHU0ZTkzXHU4Mjg4XHU1YjViXHU1NTZjXHU1NjBmXHU0ZWM0XHU1MzhkXHU1''@;'; put 'put ''MzlkXHU1M2EzXHU1M2E1XHU1M2FlXHU5NzY1XHU4ZDVkXHU1MzFhXHU1M2Y1XHU1MzI2XHU1MzJlXHU1MzNlXHU4ZDVjXHU1MzY2XHU1MzYzXHU1MjAyXHU1MjA4XHU1MjBlXHU1MjJkXHU1MjMzXHU1MjNmXHU1MjQwXHU1MjRjXHU1MjVlXHU1MjYxXHU1MjVjXHU4NGFmXHU1MjdkXHU1Mjgy''@;'; put 'put ''XHU1MjgxXHU1MjkwXHU1MjkzXHU1MTgyXHU3ZjU0XHU0ZWJiXHU0ZWMzXHU0ZWM5XHU0ZWMyXHU0ZWU4XHU0ZWUxXHU0ZWViXHU0ZWRlXHU0ZjFiXHU0ZWYzXHU0ZjIyXHU0ZjY0XHU0ZWY1XHU0ZjI1XHU0ZjI3XHU0ZjA5XHU0ZjJiXHU0ZjVlXHU0ZjY3XHU2NTM4XHU0ZjVhXHU0ZjVkIl0s''@;'; put 'put ''WyJkOTQwIiwiXHU4Y2FlIiw2Ml0sWyJkOTgwIiwiXHU4Y2VkIiwzMiwiXHU0ZjVmXHU0ZjU3XHU0ZjMyXHU0ZjNkXHU0Zjc2XHU0Zjc0XHU0ZjkxXHU0Zjg5XHU0ZjgzXHU0ZjhmXHU0ZjdlXHU0ZjdiXHU0ZmFhXHU0ZjdjXHU0ZmFjXHU0Zjk0XHU0ZmU2XHU0ZmU4XHU0ZmVhXHU0ZmM1XHU0''@;'; put 'put ''ZmRhXHU0ZmUzXHU0ZmRjXHU0ZmQxXHU0ZmRmXHU0ZmY4XHU1MDI5XHU1MDRjXHU0ZmYzXHU1MDJjXHU1MDBmXHU1MDJlXHU1MDJkXHU0ZmZlXHU1MDFjXHU1MDBjXHU1MDI1XHU1MDI4XHU1MDdlXHU1MDQzXHU1MDU1XHU1MDQ4XHU1MDRlXHU1MDZjXHU1MDdiXHU1MGE1XHU1MGE3XHU1MGE5''@;'; put 'put ''XHU1MGJhXHU1MGQ2XHU1MTA2XHU1MGVkXHU1MGVjXHU1MGU2XHU1MGVlXHU1MTA3XHU1MTBiXHU0ZWRkXHU2YzNkXHU0ZjU4XHU0ZjY1XHU0ZmNlXHU5ZmEwXHU2YzQ2XHU3Yzc0XHU1MTZlXHU1ZGZkXHU5ZWM5XHU5OTk4XHU1MTgxXHU1OTE0XHU1MmY5XHU1MzBkXHU4YTA3XHU1MzEwXHU1''@;'; put 'put ''MWViXHU1OTE5XHU1MTU1XHU0ZWEwXHU1MTU2XHU0ZWIzXHU4ODZlXHU4OGE0XHU0ZWI1XHU4MTE0XHU4OGQyXHU3OTgwXHU1YjM0XHU4ODAzXHU3ZmI4XHU1MWFiXHU1MWIxXHU1MWJkXHU1MWJjIl0sWyJkYTQwIiwiXHU4ZDBlIiwxNCwiXHU4ZDIwXHU4ZDUxXHU4ZDUyXHU4ZDU3XHU4ZDVm''@;'; put 'put ''XHU4ZDY1XHU4ZDY4XHU4ZDY5XHU4ZDZhXHU4ZDZjXHU4ZDZlXHU4ZDZmXHU4ZDcxXHU4ZDcyXHU4ZDc4Iiw4LCJcdThkODJcdThkODNcdThkODZcdThkODdcdThkODhcdThkODlcdThkOGMiLDQsIlx1OGQ5Mlx1OGQ5M1x1OGQ5NSIsOSwiXHU4ZGEwXHU4ZGExIl0sWyJkYTgwIiwiXHU4ZGEy''@;'; put 'put ''XHU4ZGE0IiwxMiwiXHU4ZGIyXHU4ZGI2XHU4ZGI3XHU4ZGI5XHU4ZGJiXHU4ZGJkXHU4ZGMwXHU4ZGMxXHU4ZGMyXHU4ZGM1XHU4ZGM3XHU4ZGM4XHU4ZGM5XHU4ZGNhXHU4ZGNkXHU4ZGQwXHU4ZGQyXHU4ZGQzXHU4ZGQ0XHU1MWM3XHU1MTk2XHU1MWEyXHU1MWE1XHU4YmEwXHU4YmE2XHU4''@;'; put 'put ''YmE3XHU4YmFhXHU4YmI0XHU4YmI1XHU4YmI3XHU4YmMyXHU4YmMzXHU4YmNiXHU4YmNmXHU4YmNlXHU4YmQyXHU4YmQzXHU4YmQ0XHU4YmQ2XHU4YmQ4XHU4YmQ5XHU4YmRjXHU4YmRmXHU4YmUwXHU4YmU0XHU4YmU4XHU4YmU5XHU4YmVlXHU4YmYwXHU4YmYzXHU4YmY2XHU4YmY5XHU4YmZj''@;'; put 'put ''XHU4YmZmXHU4YzAwXHU4YzAyXHU4YzA0XHU4YzA3XHU4YzBjXHU4YzBmXHU4YzExXHU4YzEyXHU4YzE0XHU4YzE1XHU4YzE2XHU4YzE5XHU4YzFiXHU4YzE4XHU4YzFkXHU4YzFmXHU4YzIwXHU4YzIxXHU4YzI1XHU4YzI3XHU4YzJhXHU4YzJiXHU4YzJlXHU4YzJmXHU4YzMyXHU4YzMzXHU4''@;'; put 'put ''YzM1XHU4YzM2XHU1MzY5XHU1MzdhXHU5NjFkXHU5NjIyXHU5NjIxXHU5NjMxXHU5NjJhXHU5NjNkXHU5NjNjXHU5NjQyXHU5NjQ5XHU5NjU0XHU5NjVmXHU5NjY3XHU5NjZjXHU5NjcyXHU5Njc0XHU5Njg4XHU5NjhkXHU5Njk3XHU5NmIwXHU5MDk3XHU5MDliXHU5MDlkXHU5MDk5XHU5MGFj''@;'; put 'put ''XHU5MGExXHU5MGI0XHU5MGIzXHU5MGI2XHU5MGJhIl0sWyJkYjQwIiwiXHU4ZGQ1XHU4ZGQ4XHU4ZGQ5XHU4ZGRjXHU4ZGUwXHU4ZGUxXHU4ZGUyXHU4ZGU1XHU4ZGU2XHU4ZGU3XHU4ZGU5XHU4ZGVkXHU4ZGVlXHU4ZGYwXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGY2XHU4ZGZjXHU4ZGZlIiw2''@;'; put 'put ''LCJcdThlMDZcdThlMDdcdThlMDhcdThlMGJcdThlMGRcdThlMGVcdThlMTBcdThlMTFcdThlMTJcdThlMTNcdThlMTUiLDcsIlx1OGUyMFx1OGUyMVx1OGUyNCIsNCwiXHU4ZTJiXHU4ZTJkXHU4ZTMwXHU4ZTMyXHU4ZTMzXHU4ZTM0XHU4ZTM2XHU4ZTM3XHU4ZTM4XHU4ZTNiXHU4ZTNjXHU4''@;'; put 'put ''ZTNlIl0sWyJkYjgwIiwiXHU4ZTNmXHU4ZTQzXHU4ZTQ1XHU4ZTQ2XHU4ZTRjIiw0LCJcdThlNTMiLDUsIlx1OGU1YSIsMTEsIlx1OGU2N1x1OGU2OFx1OGU2YVx1OGU2Ylx1OGU2ZVx1OGU3MVx1OTBiOFx1OTBiMFx1OTBjZlx1OTBjNVx1OTBiZVx1OTBkMFx1OTBjNFx1OTBjN1x1OTBkM1x1''@;'; put 'put ''OTBlNlx1OTBlMlx1OTBkY1x1OTBkN1x1OTBkYlx1OTBlYlx1OTBlZlx1OTBmZVx1OTEwNFx1OTEyMlx1OTExZVx1OTEyM1x1OTEzMVx1OTEyZlx1OTEzOVx1OTE0M1x1OTE0Nlx1NTIwZFx1NTk0Mlx1NTJhMlx1NTJhY1x1NTJhZFx1NTJiZVx1NTRmZlx1NTJkMFx1NTJkNlx1NTJmMFx1NTNk''@;'; put 'put ''Zlx1NzFlZVx1NzdjZFx1NWVmNFx1NTFmNVx1NTFmY1x1OWIyZlx1NTNiNlx1NWYwMVx1NzU1YVx1NWRlZlx1NTc0Y1x1NTdhOVx1NTdhMVx1NTg3ZVx1NThiY1x1NThjNVx1NThkMVx1NTcyOVx1NTcyY1x1NTcyYVx1NTczM1x1NTczOVx1NTcyZVx1NTcyZlx1NTc1Y1x1NTczYlx1NTc0Mlx1''@;'; put 'put ''NTc2OVx1NTc4NVx1NTc2Ylx1NTc4Nlx1NTc3Y1x1NTc3Ylx1NTc2OFx1NTc2ZFx1NTc3Nlx1NTc3M1x1NTdhZFx1NTdhNFx1NTc4Y1x1NTdiMlx1NTdjZlx1NTdhN1x1NTdiNFx1NTc5M1x1NTdhMFx1NTdkNVx1NTdkOFx1NTdkYVx1NTdkOVx1NTdkMlx1NTdiOFx1NTdmNFx1NTdlZlx1NTdm''@;'; put 'put ''OFx1NTdlNFx1NTdkZCJdLFsiZGM0MCIsIlx1OGU3M1x1OGU3NVx1OGU3NyIsNCwiXHU4ZTdkXHU4ZTdlXHU4ZTgwXHU4ZTgyXHU4ZTgzXHU4ZTg0XHU4ZTg2XHU4ZTg4Iiw2LCJcdThlOTFcdThlOTJcdThlOTNcdThlOTUiLDYsIlx1OGU5ZFx1OGU5ZiIsMTEsIlx1OGVhZFx1OGVhZVx1OGVi''@;'; put 'put ''MFx1OGViMVx1OGViMyIsNiwiXHU4ZWJiIiw3XSxbImRjODAiLCJcdThlYzMiLDEwLCJcdThlY2YiLDIxLCJcdTU4MGJcdTU4MGRcdTU3ZmRcdTU3ZWRcdTU4MDBcdTU4MWVcdTU4MTlcdTU4NDRcdTU4MjBcdTU4NjVcdTU4NmNcdTU4ODFcdTU4ODlcdTU4OWFcdTU4ODBcdTk5YThcdTlmMTlc''@;'; put 'put ''dTYxZmZcdTgyNzlcdTgyN2RcdTgyN2ZcdTgyOGZcdTgyOGFcdTgyYThcdTgyODRcdTgyOGVcdTgyOTFcdTgyOTdcdTgyOTlcdTgyYWJcdTgyYjhcdTgyYmVcdTgyYjBcdTgyYzhcdTgyY2FcdTgyZTNcdTgyOThcdTgyYjdcdTgyYWVcdTgyY2JcdTgyY2NcdTgyYzFcdTgyYTlcdTgyYjRcdTgy''@;'; put 'put ''YTFcdTgyYWFcdTgyOWZcdTgyYzRcdTgyY2VcdTgyYTRcdTgyZTFcdTgzMDlcdTgyZjdcdTgyZTRcdTgzMGZcdTgzMDdcdTgyZGNcdTgyZjRcdTgyZDJcdTgyZDhcdTgzMGNcdTgyZmJcdTgyZDNcdTgzMTFcdTgzMWFcdTgzMDZcdTgzMTRcdTgzMTVcdTgyZTBcdTgyZDVcdTgzMWNcdTgzNTFc''@;'; put 'put ''dTgzNWJcdTgzNWNcdTgzMDhcdTgzOTJcdTgzM2NcdTgzMzRcdTgzMzFcdTgzOWJcdTgzNWVcdTgzMmZcdTgzNGZcdTgzNDdcdTgzNDNcdTgzNWZcdTgzNDBcdTgzMTdcdTgzNjBcdTgzMmRcdTgzM2FcdTgzMzNcdTgzNjZcdTgzNjUiXSxbImRkNDAiLCJcdThlZTUiLDYyXSxbImRkODAiLCJc''@;'; put 'put ''dThmMjQiLDMyLCJcdTgzNjhcdTgzMWJcdTgzNjlcdTgzNmNcdTgzNmFcdTgzNmRcdTgzNmVcdTgzYjBcdTgzNzhcdTgzYjNcdTgzYjRcdTgzYTBcdTgzYWFcdTgzOTNcdTgzOWNcdTgzODVcdTgzN2NcdTgzYjZcdTgzYTlcdTgzN2RcdTgzYjhcdTgzN2JcdTgzOThcdTgzOWVcdTgzYThcdTgz''@;'; put 'put ''YmFcdTgzYmNcdTgzYzFcdTg0MDFcdTgzZTVcdTgzZDhcdTU4MDdcdTg0MThcdTg0MGJcdTgzZGRcdTgzZmRcdTgzZDZcdTg0MWNcdTg0MzhcdTg0MTFcdTg0MDZcdTgzZDRcdTgzZGZcdTg0MGZcdTg0MDNcdTgzZjhcdTgzZjlcdTgzZWFcdTgzYzVcdTgzYzBcdTg0MjZcdTgzZjBcdTgzZTFc''@;'; put 'put ''dTg0NWNcdTg0NTFcdTg0NWFcdTg0NTlcdTg0NzNcdTg0ODdcdTg0ODhcdTg0N2FcdTg0ODlcdTg0NzhcdTg0M2NcdTg0NDZcdTg0NjlcdTg0NzZcdTg0OGNcdTg0OGVcdTg0MzFcdTg0NmRcdTg0YzFcdTg0Y2RcdTg0ZDBcdTg0ZTZcdTg0YmRcdTg0ZDNcdTg0Y2FcdTg0YmZcdTg0YmFcdTg0''@;'; put 'put ''ZTBcdTg0YTFcdTg0YjlcdTg0YjRcdTg0OTdcdTg0ZTVcdTg0ZTNcdTg1MGNcdTc1MGRcdTg1MzhcdTg0ZjBcdTg1MzlcdTg1MWZcdTg1M2EiXSxbImRlNDAiLCJcdThmNDUiLDMyLCJcdThmNmFcdThmODBcdThmOGNcdThmOTJcdThmOWRcdThmYTBcdThmYTFcdThmYTJcdThmYTRcdThmYTVc''@;'; put 'put ''dThmYTZcdThmYTdcdThmYWFcdThmYWNcdThmYWRcdThmYWVcdThmYWZcdThmYjJcdThmYjNcdThmYjRcdThmYjVcdThmYjdcdThmYjhcdThmYmFcdThmYmJcdThmYmNcdThmYmZcdThmYzBcdThmYzNcdThmYzYiXSxbImRlODAiLCJcdThmYzkiLDQsIlx1OGZjZlx1OGZkMlx1OGZkNlx1OGZk''@;'; put 'put ''N1x1OGZkYVx1OGZlMFx1OGZlMVx1OGZlM1x1OGZlN1x1OGZlY1x1OGZlZlx1OGZmMVx1OGZmMlx1OGZmNFx1OGZmNVx1OGZmNlx1OGZmYVx1OGZmYlx1OGZmY1x1OGZmZVx1OGZmZlx1OTAwN1x1OTAwOFx1OTAwY1x1OTAwZVx1OTAxM1x1OTAxNVx1OTAxOFx1ODU1Nlx1ODUzYlx1ODRmZlx1''@;'; put 'put ''ODRmY1x1ODU1OVx1ODU0OFx1ODU2OFx1ODU2NFx1ODU1ZVx1ODU3YVx1NzdhMlx1ODU0M1x1ODU3Mlx1ODU3Ylx1ODVhNFx1ODVhOFx1ODU4N1x1ODU4Zlx1ODU3OVx1ODVhZVx1ODU5Y1x1ODU4NVx1ODViOVx1ODViN1x1ODViMFx1ODVkM1x1ODVjMVx1ODVkY1x1ODVmZlx1ODYyN1x1ODYw''@;'; put 'put ''NVx1ODYyOVx1ODYxNlx1ODYzY1x1NWVmZVx1NWYwOFx1NTkzY1x1NTk0MVx1ODAzN1x1NTk1NVx1NTk1YVx1NTk1OFx1NTMwZlx1NWMyMlx1NWMyNVx1NWMyY1x1NWMzNFx1NjI0Y1x1NjI2YVx1NjI5Zlx1NjJiYlx1NjJjYVx1NjJkYVx1NjJkN1x1NjJlZVx1NjMyMlx1NjJmNlx1NjMzOVx1''@;'; put 'put ''NjM0Ylx1NjM0M1x1NjNhZFx1NjNmNlx1NjM3MVx1NjM3YVx1NjM4ZVx1NjNiNFx1NjM2ZFx1NjNhY1x1NjM4YVx1NjM2OVx1NjNhZVx1NjNiY1x1NjNmMlx1NjNmOFx1NjNlMFx1NjNmZlx1NjNjNFx1NjNkZVx1NjNjZVx1NjQ1Mlx1NjNjNlx1NjNiZVx1NjQ0NVx1NjQ0MVx1NjQwYlx1NjQx''@;'; put 'put ''Ylx1NjQyMFx1NjQwY1x1NjQyNlx1NjQyMVx1NjQ1ZVx1NjQ4NFx1NjQ2ZFx1NjQ5NiJdLFsiZGY0MCIsIlx1OTAxOVx1OTAxY1x1OTAyM1x1OTAyNFx1OTAyNVx1OTAyNyIsNSwiXHU5MDMwIiw0LCJcdTkwMzdcdTkwMzlcdTkwM2FcdTkwM2RcdTkwM2ZcdTkwNDBcdTkwNDNcdTkwNDVcdTkw''@;'; put 'put ''NDZcdTkwNDgiLDQsIlx1OTA0ZVx1OTA1NFx1OTA1NVx1OTA1Nlx1OTA1OVx1OTA1YVx1OTA1YyIsNSwiXHU5MDY0XHU5MDY2XHU5MDY3XHU5MDY5XHU5MDZhXHU5MDZiXHU5MDZjXHU5MDZmIiw0LCJcdTkwNzYiLDYsIlx1OTA3ZVx1OTA4MSJdLFsiZGY4MCIsIlx1OTA4NFx1OTA4NVx1OTA4''@;'; put 'put ''Nlx1OTA4N1x1OTA4OVx1OTA4YVx1OTA4YyIsNCwiXHU5MDkyXHU5MDk0XHU5MDk2XHU5MDk4XHU5MDlhXHU5MDljXHU5MDllXHU5MDlmXHU5MGEwXHU5MGE0XHU5MGE1XHU5MGE3XHU5MGE4XHU5MGE5XHU5MGFiXHU5MGFkXHU5MGIyXHU5MGI3XHU5MGJjXHU5MGJkXHU5MGJmXHU5MGMwXHU2''@;'; put 'put ''NDdhXHU2NGI3XHU2NGI4XHU2NDk5XHU2NGJhXHU2NGMwXHU2NGQwXHU2NGQ3XHU2NGU0XHU2NGUyXHU2NTA5XHU2NTI1XHU2NTJlXHU1ZjBiXHU1ZmQyXHU3NTE5XHU1ZjExXHU1MzVmXHU1M2YxXHU1M2ZkXHU1M2U5XHU1M2U4XHU1M2ZiXHU1NDEyXHU1NDE2XHU1NDA2XHU1NDRiXHU1NDUy''@;'; put 'put ''XHU1NDUzXHU1NDU0XHU1NDU2XHU1NDQzXHU1NDIxXHU1NDU3XHU1NDU5XHU1NDIzXHU1NDMyXHU1NDgyXHU1NDk0XHU1NDc3XHU1NDcxXHU1NDY0XHU1NDlhXHU1NDliXHU1NDg0XHU1NDc2XHU1NDY2XHU1NDlkXHU1NGQwXHU1NGFkXHU1NGMyXHU1NGI0XHU1NGQyXHU1NGE3XHU1NGE2XHU1''@;'; put 'put ''NGQzXHU1NGQ0XHU1NDcyXHU1NGEzXHU1NGQ1XHU1NGJiXHU1NGJmXHU1NGNjXHU1NGQ5XHU1NGRhXHU1NGRjXHU1NGE5XHU1NGFhXHU1NGE0XHU1NGRkXHU1NGNmXHU1NGRlXHU1NTFiXHU1NGU3XHU1NTIwXHU1NGZkXHU1NTE0XHU1NGYzXHU1NTIyXHU1NTIzXHU1NTBmXHU1NTExXHU1NTI3''@;'; put 'put ''XHU1NTJhXHU1NTY3XHU1NThmXHU1NWI1XHU1NTQ5XHU1NTZkXHU1NTQxXHU1NTU1XHU1NTNmXHU1NTUwXHU1NTNjIl0sWyJlMDQwIiwiXHU5MGMyXHU5MGMzXHU5MGM2XHU5MGM4XHU5MGM5XHU5MGNiXHU5MGNjXHU5MGNkXHU5MGQyXHU5MGQ0XHU5MGQ1XHU5MGQ2XHU5MGQ4XHU5MGQ5XHU5''@;'; put 'put ''MGRhXHU5MGRlXHU5MGRmXHU5MGUwXHU5MGUzXHU5MGU0XHU5MGU1XHU5MGU5XHU5MGVhXHU5MGVjXHU5MGVlXHU5MGYwXHU5MGYxXHU5MGYyXHU5MGYzXHU5MGY1XHU5MGY2XHU5MGY3XHU5MGY5XHU5MGZhXHU5MGZiXHU5MGZjXHU5MGZmXHU5MTAwXHU5MTAxXHU5MTAzXHU5MTA1IiwxOSwi''@;'; put 'put ''XHU5MTFhXHU5MTFiXHU5MTFjIl0sWyJlMDgwIiwiXHU5MTFkXHU5MTFmXHU5MTIwXHU5MTIxXHU5MTI0IiwxMCwiXHU5MTMwXHU5MTMyIiw2LCJcdTkxM2EiLDgsIlx1OTE0NFx1NTUzN1x1NTU1Nlx1NTU3NVx1NTU3Nlx1NTU3N1x1NTUzM1x1NTUzMFx1NTU1Y1x1NTU4Ylx1NTVkMlx1NTU4''@;'; put 'put ''M1x1NTViMVx1NTViOVx1NTU4OFx1NTU4MVx1NTU5Zlx1NTU3ZVx1NTVkNlx1NTU5MVx1NTU3Ylx1NTVkZlx1NTViZFx1NTViZVx1NTU5NFx1NTU5OVx1NTVlYVx1NTVmN1x1NTVjOVx1NTYxZlx1NTVkMVx1NTVlYlx1NTVlY1x1NTVkNFx1NTVlNlx1NTVkZFx1NTVjNFx1NTVlZlx1NTVlNVx1''@;'; put 'put ''NTVmMlx1NTVmM1x1NTVjY1x1NTVjZFx1NTVlOFx1NTVmNVx1NTVlNFx1OGY5NFx1NTYxZVx1NTYwOFx1NTYwY1x1NTYwMVx1NTYyNFx1NTYyM1x1NTVmZVx1NTYwMFx1NTYyN1x1NTYyZFx1NTY1OFx1NTYzOVx1NTY1N1x1NTYyY1x1NTY0ZFx1NTY2Mlx1NTY1OVx1NTY1Y1x1NTY0Y1x1NTY1''@;'; put 'put ''NFx1NTY4Nlx1NTY2NFx1NTY3MVx1NTY2Ylx1NTY3Ylx1NTY3Y1x1NTY4NVx1NTY5M1x1NTZhZlx1NTZkNFx1NTZkN1x1NTZkZFx1NTZlMVx1NTZmNVx1NTZlYlx1NTZmOVx1NTZmZlx1NTcwNFx1NTcwYVx1NTcwOVx1NTcxY1x1NWUwZlx1NWUxOVx1NWUxNFx1NWUxMVx1NWUzMVx1NWUzYlx1''@;'; put 'put ''NWUzYyJdLFsiZTE0MCIsIlx1OTE0NVx1OTE0N1x1OTE0OFx1OTE1MVx1OTE1M1x1OTE1NFx1OTE1NVx1OTE1Nlx1OTE1OFx1OTE1OVx1OTE1Ylx1OTE1Y1x1OTE1Zlx1OTE2MFx1OTE2Nlx1OTE2N1x1OTE2OFx1OTE2Ylx1OTE2ZFx1OTE3M1x1OTE3YVx1OTE3Ylx1OTE3Y1x1OTE4MCIsNCwi''@;'; put 'put ''XHU5MTg2XHU5MTg4XHU5MThhXHU5MThlXHU5MThmXHU5MTkzIiw2LCJcdTkxOWMiLDUsIlx1OTFhNCIsNSwiXHU5MWFiXHU5MWFjXHU5MWIwXHU5MWIxXHU5MWIyXHU5MWIzXHU5MWI2XHU5MWI3XHU5MWI4XHU5MWI5XHU5MWJiIl0sWyJlMTgwIiwiXHU5MWJjIiwxMCwiXHU5MWM4XHU5MWNi''@;'; put 'put ''XHU5MWQwXHU5MWQyIiw5LCJcdTkxZGQiLDgsIlx1NWUzN1x1NWU0NFx1NWU1NFx1NWU1Ylx1NWU1ZVx1NWU2MVx1NWM4Y1x1NWM3YVx1NWM4ZFx1NWM5MFx1NWM5Nlx1NWM4OFx1NWM5OFx1NWM5OVx1NWM5MVx1NWM5YVx1NWM5Y1x1NWNiNVx1NWNhMlx1NWNiZFx1NWNhY1x1NWNhYlx1NWNi''@;'; put 'put ''MVx1NWNhM1x1NWNjMVx1NWNiN1x1NWNjNFx1NWNkMlx1NWNlNFx1NWNjYlx1NWNlNVx1NWQwMlx1NWQwM1x1NWQyN1x1NWQyNlx1NWQyZVx1NWQyNFx1NWQxZVx1NWQwNlx1NWQxYlx1NWQ1OFx1NWQzZVx1NWQzNFx1NWQzZFx1NWQ2Y1x1NWQ1Ylx1NWQ2Zlx1NWQ1ZFx1NWQ2Ylx1NWQ0Ylx1''@;'; put 'put ''NWQ0YVx1NWQ2OVx1NWQ3NFx1NWQ4Mlx1NWQ5OVx1NWQ5ZFx1OGM3M1x1NWRiN1x1NWRjNVx1NWY3M1x1NWY3N1x1NWY4Mlx1NWY4N1x1NWY4OVx1NWY4Y1x1NWY5NVx1NWY5OVx1NWY5Y1x1NWZhOFx1NWZhZFx1NWZiNVx1NWZiY1x1ODg2Mlx1NWY2MVx1NzJhZFx1NzJiMFx1NzJiNFx1NzJi''@;'; put 'put ''N1x1NzJiOFx1NzJjM1x1NzJjMVx1NzJjZVx1NzJjZFx1NzJkMlx1NzJlOFx1NzJlZlx1NzJlOVx1NzJmMlx1NzJmNFx1NzJmN1x1NzMwMVx1NzJmM1x1NzMwM1x1NzJmYSJdLFsiZTI0MCIsIlx1OTFlNiIsNjJdLFsiZTI4MCIsIlx1OTIyNSIsMzIsIlx1NzJmYlx1NzMxN1x1NzMxM1x1NzMy''@;'; put 'put ''MVx1NzMwYVx1NzMxZVx1NzMxZFx1NzMxNVx1NzMyMlx1NzMzOVx1NzMyNVx1NzMyY1x1NzMzOFx1NzMzMVx1NzM1MFx1NzM0ZFx1NzM1N1x1NzM2MFx1NzM2Y1x1NzM2Zlx1NzM3ZVx1ODIxYlx1NTkyNVx1OThlN1x1NTkyNFx1NTkwMlx1OTk2M1x1OTk2NyIsNSwiXHU5OTc0XHU5OTc3XHU5''@;'; put 'put ''OTdkXHU5OTgwXHU5OTg0XHU5OTg3XHU5OThhXHU5OThkXHU5OTkwXHU5OTkxXHU5OTkzXHU5OTk0XHU5OTk1XHU1ZTgwXHU1ZTkxXHU1ZThiXHU1ZTk2XHU1ZWE1XHU1ZWEwXHU1ZWI5XHU1ZWI1XHU1ZWJlXHU1ZWIzXHU4ZDUzXHU1ZWQyXHU1ZWQxXHU1ZWRiXHU1ZWU4XHU1ZWVhXHU4MWJh''@;'; put 'put ''XHU1ZmM0XHU1ZmM5XHU1ZmQ2XHU1ZmNmXHU2MDAzXHU1ZmVlXHU2MDA0XHU1ZmUxXHU1ZmU0XHU1ZmZlXHU2MDA1XHU2MDA2XHU1ZmVhXHU1ZmVkXHU1ZmY4XHU2MDE5XHU2MDM1XHU2MDI2XHU2MDFiXHU2MDBmXHU2MDBkXHU2MDI5XHU2MDJiXHU2MDBhXHU2MDNmXHU2MDIxXHU2MDc4XHU2''@;'; put 'put ''MDc5XHU2MDdiXHU2MDdhXHU2MDQyIl0sWyJlMzQwIiwiXHU5MjQ2Iiw0NSwiXHU5Mjc1IiwxNl0sWyJlMzgwIiwiXHU5Mjg2Iiw3LCJcdTkyOGYiLDI0LCJcdTYwNmFcdTYwN2RcdTYwOTZcdTYwOWFcdTYwYWRcdTYwOWRcdTYwODNcdTYwOTJcdTYwOGNcdTYwOWJcdTYwZWNcdTYwYmJcdTYw''@;'; put 'put ''YjFcdTYwZGRcdTYwZDhcdTYwYzZcdTYwZGFcdTYwYjRcdTYxMjBcdTYxMjZcdTYxMTVcdTYxMjNcdTYwZjRcdTYxMDBcdTYxMGVcdTYxMmJcdTYxNGFcdTYxNzVcdTYxYWNcdTYxOTRcdTYxYTdcdTYxYjdcdTYxZDRcdTYxZjVcdTVmZGRcdTk2YjNcdTk1ZTlcdTk1ZWJcdTk1ZjFcdTk1ZjNc''@;'; put 'put ''dTk1ZjVcdTk1ZjZcdTk1ZmNcdTk1ZmVcdTk2MDNcdTk2MDRcdTk2MDZcdTk2MDhcdTk2MGFcdTk2MGJcdTk2MGNcdTk2MGRcdTk2MGZcdTk2MTJcdTk2MTVcdTk2MTZcdTk2MTdcdTk2MTlcdTk2MWFcdTRlMmNcdTcyM2ZcdTYyMTVcdTZjMzVcdTZjNTRcdTZjNWNcdTZjNGFcdTZjYTNcdTZj''@;'; put 'put ''ODVcdTZjOTBcdTZjOTRcdTZjOGNcdTZjNjhcdTZjNjlcdTZjNzRcdTZjNzZcdTZjODZcdTZjYTlcdTZjZDBcdTZjZDRcdTZjYWRcdTZjZjdcdTZjZjhcdTZjZjFcdTZjZDdcdTZjYjJcdTZjZTBcdTZjZDZcdTZjZmFcdTZjZWJcdTZjZWVcdTZjYjFcdTZjZDNcdTZjZWZcdTZjZmUiXSxbImU0''@;'; put 'put ''NDAiLCJcdTkyYTgiLDUsIlx1OTJhZiIsMjQsIlx1OTJjOSIsMzFdLFsiZTQ4MCIsIlx1OTJlOSIsMzIsIlx1NmQzOVx1NmQyN1x1NmQwY1x1NmQ0M1x1NmQ0OFx1NmQwN1x1NmQwNFx1NmQxOVx1NmQwZVx1NmQyYlx1NmQ0ZFx1NmQyZVx1NmQzNVx1NmQxYVx1NmQ0Zlx1NmQ1Mlx1NmQ1NFx1''@;'; put 'put ''NmQzM1x1NmQ5MVx1NmQ2Zlx1NmQ5ZVx1NmRhMFx1NmQ1ZVx1NmQ5M1x1NmQ5NFx1NmQ1Y1x1NmQ2MFx1NmQ3Y1x1NmQ2M1x1NmUxYVx1NmRjN1x1NmRjNVx1NmRkZVx1NmUwZVx1NmRiZlx1NmRlMFx1NmUxMVx1NmRlNlx1NmRkZFx1NmRkOVx1NmUxNlx1NmRhYlx1NmUwY1x1NmRhZVx1NmUy''@;'; put 'put ''Ylx1NmU2ZVx1NmU0ZVx1NmU2Ylx1NmViMlx1NmU1Zlx1NmU4Nlx1NmU1M1x1NmU1NFx1NmUzMlx1NmUyNVx1NmU0NFx1NmVkZlx1NmViMVx1NmU5OFx1NmVlMFx1NmYyZFx1NmVlMlx1NmVhNVx1NmVhN1x1NmViZFx1NmViYlx1NmViN1x1NmVkN1x1NmViNFx1NmVjZlx1NmU4Zlx1NmVjMlx1''@;'; put 'put ''NmU5Zlx1NmY2Mlx1NmY0Nlx1NmY0N1x1NmYyNFx1NmYxNVx1NmVmOVx1NmYyZlx1NmYzNlx1NmY0Ylx1NmY3NFx1NmYyYVx1NmYwOVx1NmYyOVx1NmY4OVx1NmY4ZFx1NmY4Y1x1NmY3OFx1NmY3Mlx1NmY3Y1x1NmY3YVx1NmZkMSJdLFsiZTU0MCIsIlx1OTMwYSIsNTEsIlx1OTMzZiIsMTBd''@;'; put 'put ''LFsiZTU4MCIsIlx1OTM0YSIsMzEsIlx1OTM2Ylx1NmZjOVx1NmZhN1x1NmZiOVx1NmZiNlx1NmZjMlx1NmZlMVx1NmZlZVx1NmZkZVx1NmZlMFx1NmZlZlx1NzAxYVx1NzAyM1x1NzAxYlx1NzAzOVx1NzAzNVx1NzA0Zlx1NzA1ZVx1NWI4MFx1NWI4NFx1NWI5NVx1NWI5M1x1NWJhNVx1NWJi''@;'; put 'put ''OFx1NzUyZlx1OWE5ZVx1NjQzNFx1NWJlNFx1NWJlZVx1ODkzMFx1NWJmMFx1OGU0N1x1OGIwN1x1OGZiNlx1OGZkM1x1OGZkNVx1OGZlNVx1OGZlZVx1OGZlNFx1OGZlOVx1OGZlNlx1OGZmM1x1OGZlOFx1OTAwNVx1OTAwNFx1OTAwYlx1OTAyNlx1OTAxMVx1OTAwZFx1OTAxNlx1OTAyMVx1''@;'; put 'put ''OTAzNVx1OTAzNlx1OTAyZFx1OTAyZlx1OTA0NFx1OTA1MVx1OTA1Mlx1OTA1MFx1OTA2OFx1OTA1OFx1OTA2Mlx1OTA1Ylx1NjZiOVx1OTA3NFx1OTA3ZFx1OTA4Mlx1OTA4OFx1OTA4M1x1OTA4Ylx1NWY1MFx1NWY1N1x1NWY1Nlx1NWY1OFx1NWMzYlx1NTRhYlx1NWM1MFx1NWM1OVx1NWI3''@;'; put 'put ''MVx1NWM2M1x1NWM2Nlx1N2ZiY1x1NWYyYVx1NWYyOVx1NWYyZFx1ODI3NFx1NWYzY1x1OWIzYlx1NWM2ZVx1NTk4MVx1NTk4M1x1NTk4ZFx1NTlhOVx1NTlhYVx1NTlhMyJdLFsiZTY0MCIsIlx1OTM2YyIsMzQsIlx1OTM5MCIsMjddLFsiZTY4MCIsIlx1OTNhYyIsMjksIlx1OTNjYlx1OTNj''@;'; put 'put ''Y1x1OTNjZFx1NTk5N1x1NTljYVx1NTlhYlx1NTk5ZVx1NTlhNFx1NTlkMlx1NTliMlx1NTlhZlx1NTlkN1x1NTliZVx1NWEwNVx1NWEwNlx1NTlkZFx1NWEwOFx1NTllM1x1NTlkOFx1NTlmOVx1NWEwY1x1NWEwOVx1NWEzMlx1NWEzNFx1NWExMVx1NWEyM1x1NWExM1x1NWE0MFx1NWE2N1x1''@;'; put 'put ''NWE0YVx1NWE1NVx1NWEzY1x1NWE2Mlx1NWE3NVx1ODBlY1x1NWFhYVx1NWE5Ylx1NWE3N1x1NWE3YVx1NWFiZVx1NWFlYlx1NWFiMlx1NWFkMlx1NWFkNFx1NWFiOFx1NWFlMFx1NWFlM1x1NWFmMVx1NWFkNlx1NWFlNlx1NWFkOFx1NWFkY1x1NWIwOVx1NWIxN1x1NWIxNlx1NWIzMlx1NWIz''@;'; put 'put ''N1x1NWI0MFx1NWMxNVx1NWMxY1x1NWI1YVx1NWI2NVx1NWI3M1x1NWI1MVx1NWI1M1x1NWI2Mlx1OWE3NVx1OWE3N1x1OWE3OFx1OWE3YVx1OWE3Zlx1OWE3ZFx1OWE4MFx1OWE4MVx1OWE4NVx1OWE4OFx1OWE4YVx1OWE5MFx1OWE5Mlx1OWE5M1x1OWE5Nlx1OWE5OFx1OWE5Ylx1OWE5Y1x1''@;'; put 'put ''OWE5ZFx1OWE5Zlx1OWFhMFx1OWFhMlx1OWFhM1x1OWFhNVx1OWFhN1x1N2U5Zlx1N2VhMVx1N2VhM1x1N2VhNVx1N2VhOFx1N2VhOSJdLFsiZTc0MCIsIlx1OTNjZSIsNywiXHU5M2Q3Iiw1NF0sWyJlNzgwIiwiXHU5NDBlIiwzMiwiXHU3ZWFkXHU3ZWIwXHU3ZWJlXHU3ZWMwXHU3ZWMxXHU3''@;'; put 'put ''ZWMyXHU3ZWM5XHU3ZWNiXHU3ZWNjXHU3ZWQwXHU3ZWQ0XHU3ZWQ3XHU3ZWRiXHU3ZWUwXHU3ZWUxXHU3ZWU4XHU3ZWViXHU3ZWVlXHU3ZWVmXHU3ZWYxXHU3ZWYyXHU3ZjBkXHU3ZWY2XHU3ZWZhXHU3ZWZiXHU3ZWZlXHU3ZjAxXHU3ZjAyXHU3ZjAzXHU3ZjA3XHU3ZjA4XHU3ZjBiXHU3ZjBj''@;'; put 'put ''XHU3ZjBmXHU3ZjExXHU3ZjEyXHU3ZjE3XHU3ZjE5XHU3ZjFjXHU3ZjFiXHU3ZjFmXHU3ZjIxIiw2LCJcdTdmMmFcdTdmMmJcdTdmMmNcdTdmMmRcdTdmMmYiLDQsIlx1N2YzNVx1NWU3YVx1NzU3Zlx1NWRkYlx1NzUzZVx1OTA5NVx1NzM4ZVx1NzM5MVx1NzNhZVx1NzNhMlx1NzM5Zlx1NzNj''@;'; put 'put ''Zlx1NzNjMlx1NzNkMVx1NzNiN1x1NzNiM1x1NzNjMFx1NzNjOVx1NzNjOFx1NzNlNVx1NzNkOVx1OTg3Y1x1NzQwYVx1NzNlOVx1NzNlN1x1NzNkZVx1NzNiYVx1NzNmMlx1NzQwZlx1NzQyYVx1NzQ1Ylx1NzQyNlx1NzQyNVx1NzQyOFx1NzQzMFx1NzQyZVx1NzQyYyJdLFsiZTg0MCIsIlx1''@;'; put 'put ''OTQyZiIsMTQsIlx1OTQzZiIsNDMsIlx1OTQ2Y1x1OTQ2ZFx1OTQ2ZVx1OTQ2ZiJdLFsiZTg4MCIsIlx1OTQ3MCIsMjAsIlx1OTQ5MVx1OTQ5Nlx1OTQ5OFx1OTRjN1x1OTRjZlx1OTRkM1x1OTRkNFx1OTRkYVx1OTRlNlx1OTRmYlx1OTUxY1x1OTUyMFx1NzQxYlx1NzQxYVx1NzQ0MVx1NzQ1''@;'; put 'put ''Y1x1NzQ1N1x1NzQ1NVx1NzQ1OVx1NzQ3N1x1NzQ2ZFx1NzQ3ZVx1NzQ5Y1x1NzQ4ZVx1NzQ4MFx1NzQ4MVx1NzQ4N1x1NzQ4Ylx1NzQ5ZVx1NzRhOFx1NzRhOVx1NzQ5MFx1NzRhN1x1NzRkMlx1NzRiYVx1OTdlYVx1OTdlYlx1OTdlY1x1Njc0Y1x1Njc1M1x1Njc1ZVx1Njc0OFx1Njc2OVx1''@;'; put 'put ''NjdhNVx1Njc4N1x1Njc2YVx1Njc3M1x1Njc5OFx1NjdhN1x1Njc3NVx1NjdhOFx1Njc5ZVx1NjdhZFx1Njc4Ylx1Njc3N1x1Njc3Y1x1NjdmMFx1NjgwOVx1NjdkOFx1NjgwYVx1NjdlOVx1NjdiMFx1NjgwY1x1NjdkOVx1NjdiNVx1NjdkYVx1NjdiM1x1NjdkZFx1NjgwMFx1NjdjM1x1Njdi''@;'; put 'put ''OFx1NjdlMlx1NjgwZVx1NjdjMVx1NjdmZFx1NjgzMlx1NjgzM1x1Njg2MFx1Njg2MVx1Njg0ZVx1Njg2Mlx1Njg0NFx1Njg2NFx1Njg4M1x1NjgxZFx1Njg1NVx1Njg2Nlx1Njg0MVx1Njg2N1x1Njg0MFx1NjgzZVx1Njg0YVx1Njg0OVx1NjgyOVx1NjhiNVx1Njg4Zlx1Njg3NFx1Njg3N1x1''@;'; put 'put ''Njg5M1x1Njg2Ylx1NjhjMlx1Njk2ZVx1NjhmY1x1NjkxZlx1NjkyMFx1NjhmOSJdLFsiZTk0MCIsIlx1OTUyN1x1OTUzM1x1OTUzZFx1OTU0M1x1OTU0OFx1OTU0Ylx1OTU1NVx1OTU1YVx1OTU2MFx1OTU2ZVx1OTU3NFx1OTU3NVx1OTU3NyIsNywiXHU5NTgwIiw0Ml0sWyJlOTgwIiwiXHU5''@;'; put 'put ''NWFiIiwzMiwiXHU2OTI0XHU2OGYwXHU2OTBiXHU2OTAxXHU2OTU3XHU2OGUzXHU2OTEwXHU2OTcxXHU2OTM5XHU2OTYwXHU2OTQyXHU2OTVkXHU2OTg0XHU2OTZiXHU2OTgwXHU2OTk4XHU2OTc4XHU2OTM0XHU2OWNjXHU2OTg3XHU2OTg4XHU2OWNlXHU2OTg5XHU2OTY2XHU2OTYzXHU2OTc5''@;'; put 'put ''XHU2OTliXHU2OWE3XHU2OWJiXHU2OWFiXHU2OWFkXHU2OWQ0XHU2OWIxXHU2OWMxXHU2OWNhXHU2OWRmXHU2OTk1XHU2OWUwXHU2OThkXHU2OWZmXHU2YTJmXHU2OWVkXHU2YTE3XHU2YTE4XHU2YTY1XHU2OWYyXHU2YTQ0XHU2YTNlXHU2YWEwXHU2YTUwXHU2YTViXHU2YTM1XHU2YThlXHU2''@;'; put 'put ''YTc5XHU2YTNkXHU2YTI4XHU2YTU4XHU2YTdjXHU2YTkxXHU2YTkwXHU2YWE5XHU2YTk3XHU2YWFiXHU3MzM3XHU3MzUyXHU2YjgxXHU2YjgyXHU2Yjg3XHU2Yjg0XHU2YjkyXHU2YjkzXHU2YjhkXHU2YjlhXHU2YjliXHU2YmExXHU2YmFhXHU4ZjZiXHU4ZjZkXHU4ZjcxXHU4ZjcyXHU4Zjcz''@;'; put 'put ''XHU4Zjc1XHU4Zjc2XHU4Zjc4XHU4Zjc3XHU4Zjc5XHU4ZjdhXHU4ZjdjXHU4ZjdlXHU4ZjgxXHU4ZjgyXHU4Zjg0XHU4Zjg3XHU4ZjhiIl0sWyJlYTQwIiwiXHU5NWNjIiwyNywiXHU5NWVjXHU5NWZmXHU5NjA3XHU5NjEzXHU5NjE4XHU5NjFiXHU5NjFlXHU5NjIwXHU5NjIzIiw2LCJcdTk2''@;'; put 'put ''MmJcdTk2MmNcdTk2MmRcdTk2MmZcdTk2MzBcdTk2MzdcdTk2MzhcdTk2MzlcdTk2M2FcdTk2M2VcdTk2NDFcdTk2NDNcdTk2NGFcdTk2NGVcdTk2NGZcdTk2NTFcdTk2NTJcdTk2NTNcdTk2NTZcdTk2NTciXSxbImVhODAiLCJcdTk2NThcdTk2NTlcdTk2NWFcdTk2NWNcdTk2NWRcdTk2NWVc''@;'; put 'put ''dTk2NjBcdTk2NjNcdTk2NjVcdTk2NjZcdTk2NmJcdTk2NmQiLDQsIlx1OTY3M1x1OTY3OCIsMTIsIlx1OTY4N1x1OTY4OVx1OTY4YVx1OGY4ZFx1OGY4ZVx1OGY4Zlx1OGY5OFx1OGY5YVx1OGVjZVx1NjIwYlx1NjIxN1x1NjIxYlx1NjIxZlx1NjIyMlx1NjIyMVx1NjIyNVx1NjIyNFx1NjIy''@;'; put 'put ''Y1x1ODFlN1x1NzRlZlx1NzRmNFx1NzRmZlx1NzUwZlx1NzUxMVx1NzUxM1x1NjUzNFx1NjVlZVx1NjVlZlx1NjVmMFx1NjYwYVx1NjYxOVx1Njc3Mlx1NjYwM1x1NjYxNVx1NjYwMFx1NzA4NVx1NjZmN1x1NjYxZFx1NjYzNFx1NjYzMVx1NjYzNlx1NjYzNVx1ODAwNlx1NjY1Zlx1NjY1NFx1''@;'; put 'put ''NjY0MVx1NjY0Zlx1NjY1Nlx1NjY2MVx1NjY1N1x1NjY3N1x1NjY4NFx1NjY4Y1x1NjZhN1x1NjY5ZFx1NjZiZVx1NjZkYlx1NjZkY1x1NjZlNlx1NjZlOVx1OGQzMlx1OGQzM1x1OGQzNlx1OGQzYlx1OGQzZFx1OGQ0MFx1OGQ0NVx1OGQ0Nlx1OGQ0OFx1OGQ0OVx1OGQ0N1x1OGQ0ZFx1OGQ1''@;'; put 'put ''NVx1OGQ1OVx1ODljN1x1ODljYVx1ODljYlx1ODljY1x1ODljZVx1ODljZlx1ODlkMFx1ODlkMVx1NzI2ZVx1NzI5Zlx1NzI1ZFx1NzI2Nlx1NzI2Zlx1NzI3ZVx1NzI3Zlx1NzI4NFx1NzI4Ylx1NzI4ZFx1NzI4Zlx1NzI5Mlx1NjMwOFx1NjMzMlx1NjNiMCJdLFsiZWI0MCIsIlx1OTY4Y1x1''@;'; put 'put ''OTY4ZVx1OTY5MVx1OTY5Mlx1OTY5M1x1OTY5NVx1OTY5Nlx1OTY5YVx1OTY5Ylx1OTY5ZCIsOSwiXHU5NmE4Iiw3LCJcdTk2YjFcdTk2YjJcdTk2YjRcdTk2YjVcdTk2YjdcdTk2YjhcdTk2YmFcdTk2YmJcdTk2YmZcdTk2YzJcdTk2YzNcdTk2YzhcdTk2Y2FcdTk2Y2JcdTk2ZDBcdTk2ZDFc''@;'; put 'put ''dTk2ZDNcdTk2ZDRcdTk2ZDYiLDksIlx1OTZlMSIsNiwiXHU5NmViIl0sWyJlYjgwIiwiXHU5NmVjXHU5NmVkXHU5NmVlXHU5NmYwXHU5NmYxXHU5NmYyXHU5NmY0XHU5NmY1XHU5NmY4XHU5NmZhXHU5NmZiXHU5NmZjXHU5NmZkXHU5NmZmXHU5NzAyXHU5NzAzXHU5NzA1XHU5NzBhXHU5NzBi''@;'; put 'put ''XHU5NzBjXHU5NzEwXHU5NzExXHU5NzEyXHU5NzE0XHU5NzE1XHU5NzE3Iiw0LCJcdTk3MWRcdTk3MWZcdTk3MjBcdTY0M2ZcdTY0ZDhcdTgwMDRcdTZiZWFcdTZiZjNcdTZiZmRcdTZiZjVcdTZiZjlcdTZjMDVcdTZjMDdcdTZjMDZcdTZjMGRcdTZjMTVcdTZjMThcdTZjMTlcdTZjMWFcdTZj''@;'; put 'put ''MjFcdTZjMjlcdTZjMjRcdTZjMmFcdTZjMzJcdTY1MzVcdTY1NTVcdTY1NmJcdTcyNGRcdTcyNTJcdTcyNTZcdTcyMzBcdTg2NjJcdTUyMTZcdTgwOWZcdTgwOWNcdTgwOTNcdTgwYmNcdTY3MGFcdTgwYmRcdTgwYjFcdTgwYWJcdTgwYWRcdTgwYjRcdTgwYjdcdTgwZTdcdTgwZThcdTgwZTlc''@;'; put 'put ''dTgwZWFcdTgwZGJcdTgwYzJcdTgwYzRcdTgwZDlcdTgwY2RcdTgwZDdcdTY3MTBcdTgwZGRcdTgwZWJcdTgwZjFcdTgwZjRcdTgwZWRcdTgxMGRcdTgxMGVcdTgwZjJcdTgwZmNcdTY3MTVcdTgxMTJcdThjNWFcdTgxMzZcdTgxMWVcdTgxMmNcdTgxMThcdTgxMzJcdTgxNDhcdTgxNGNcdTgx''@;'; put 'put ''NTNcdTgxNzRcdTgxNTlcdTgxNWFcdTgxNzFcdTgxNjBcdTgxNjlcdTgxN2NcdTgxN2RcdTgxNmRcdTgxNjdcdTU4NGRcdTVhYjVcdTgxODhcdTgxODJcdTgxOTFcdTZlZDVcdTgxYTNcdTgxYWFcdTgxY2NcdTY3MjZcdTgxY2FcdTgxYmIiXSxbImVjNDAiLCJcdTk3MjEiLDgsIlx1OTcyYlx1''@;'; put 'put ''OTcyY1x1OTcyZVx1OTcyZlx1OTczMVx1OTczMyIsNCwiXHU5NzNhXHU5NzNiXHU5NzNjXHU5NzNkXHU5NzNmIiwxOCwiXHU5NzU0XHU5NzU1XHU5NzU3XHU5NzU4XHU5NzVhXHU5NzVjXHU5NzVkXHU5NzVmXHU5NzYzXHU5NzY0XHU5NzY2XHU5NzY3XHU5NzY4XHU5NzZhIiw3XSxbImVjODAi''@;'; put 'put ''LCJcdTk3NzJcdTk3NzVcdTk3NzciLDQsIlx1OTc3ZCIsNywiXHU5Nzg2Iiw0LCJcdTk3OGNcdTk3OGVcdTk3OGZcdTk3OTBcdTk3OTNcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTkiLDQsIlx1ODFjMVx1ODFhNlx1NmIyNFx1NmIzN1x1NmIzOVx1NmI0M1x1NmI0Nlx1NmI1OVx1OThkMVx1OThk''@;'; put 'put ''Mlx1OThkM1x1OThkNVx1OThkOVx1OThkYVx1NmJiM1x1NWY0MFx1NmJjMlx1ODlmM1x1NjU5MFx1OWY1MVx1NjU5M1x1NjViY1x1NjVjNlx1NjVjNFx1NjVjM1x1NjVjY1x1NjVjZVx1NjVkMlx1NjVkNlx1NzA4MFx1NzA5Y1x1NzA5Nlx1NzA5ZFx1NzBiYlx1NzBjMFx1NzBiN1x1NzBhYlx1''@;'; put 'put ''NzBiMVx1NzBlOFx1NzBjYVx1NzExMFx1NzExM1x1NzExNlx1NzEyZlx1NzEzMVx1NzE3M1x1NzE1Y1x1NzE2OFx1NzE0NVx1NzE3Mlx1NzE0YVx1NzE3OFx1NzE3YVx1NzE5OFx1NzFiM1x1NzFiNVx1NzFhOFx1NzFhMFx1NzFlMFx1NzFkNFx1NzFlN1x1NzFmOVx1NzIxZFx1NzIyOFx1NzA2''@;'; put 'put ''Y1x1NzExOFx1NzE2Nlx1NzFiOVx1NjIzZVx1NjIzZFx1NjI0M1x1NjI0OFx1NjI0OVx1NzkzYlx1Nzk0MFx1Nzk0Nlx1Nzk0OVx1Nzk1Ylx1Nzk1Y1x1Nzk1M1x1Nzk1YVx1Nzk2Mlx1Nzk1N1x1Nzk2MFx1Nzk2Zlx1Nzk2N1x1Nzk3YVx1Nzk4NVx1Nzk4YVx1Nzk5YVx1NzlhN1x1NzliM1x1''@;'; put 'put ''NWZkMVx1NWZkMCJdLFsiZWQ0MCIsIlx1OTc5ZVx1OTc5Zlx1OTdhMVx1OTdhMlx1OTdhNCIsNiwiXHU5N2FjXHU5N2FlXHU5N2IwXHU5N2IxXHU5N2IzXHU5N2I1Iiw0Nl0sWyJlZDgwIiwiXHU5N2U0XHU5N2U1XHU5N2U4XHU5N2VlIiw0LCJcdTk3ZjRcdTk3ZjciLDIzLCJcdTYwM2NcdTYw''@;'; put 'put ''NWRcdTYwNWFcdTYwNjdcdTYwNDFcdTYwNTlcdTYwNjNcdTYwYWJcdTYxMDZcdTYxMGRcdTYxNWRcdTYxYTlcdTYxOWRcdTYxY2JcdTYxZDFcdTYyMDZcdTgwODBcdTgwN2ZcdTZjOTNcdTZjZjZcdTZkZmNcdTc3ZjZcdTc3ZjhcdTc4MDBcdTc4MDlcdTc4MTdcdTc4MThcdTc4MTFcdTY1YWJc''@;'; put 'put ''dTc4MmRcdTc4MWNcdTc4MWRcdTc4MzlcdTc4M2FcdTc4M2JcdTc4MWZcdTc4M2NcdTc4MjVcdTc4MmNcdTc4MjNcdTc4MjlcdTc4NGVcdTc4NmRcdTc4NTZcdTc4NTdcdTc4MjZcdTc4NTBcdTc4NDdcdTc4NGNcdTc4NmFcdTc4OWJcdTc4OTNcdTc4OWFcdTc4ODdcdTc4OWNcdTc4YTFcdTc4''@;'; put 'put ''YTNcdTc4YjJcdTc4YjlcdTc4YTVcdTc4ZDRcdTc4ZDlcdTc4YzlcdTc4ZWNcdTc4ZjJcdTc5MDVcdTc4ZjRcdTc5MTNcdTc5MjRcdTc5MWVcdTc5MzRcdTlmOWJcdTllZjlcdTllZmJcdTllZmNcdTc2ZjFcdTc3MDRcdTc3MGRcdTc2ZjlcdTc3MDdcdTc3MDhcdTc3MWFcdTc3MjJcdTc3MTlc''@;'; put 'put ''dTc3MmRcdTc3MjZcdTc3MzVcdTc3MzhcdTc3NTBcdTc3NTFcdTc3NDdcdTc3NDNcdTc3NWFcdTc3NjgiXSxbImVlNDAiLCJcdTk4MGYiLDYyXSxbImVlODAiLCJcdTk4NGUiLDMyLCJcdTc3NjJcdTc3NjVcdTc3N2ZcdTc3OGRcdTc3N2RcdTc3ODBcdTc3OGNcdTc3OTFcdTc3OWZcdTc3YTBc''@;'; put 'put ''dTc3YjBcdTc3YjVcdTc3YmRcdTc1M2FcdTc1NDBcdTc1NGVcdTc1NGJcdTc1NDhcdTc1NWJcdTc1NzJcdTc1NzlcdTc1ODNcdTdmNThcdTdmNjFcdTdmNWZcdThhNDhcdTdmNjhcdTdmNzRcdTdmNzFcdTdmNzlcdTdmODFcdTdmN2VcdTc2Y2RcdTc2ZTVcdTg4MzJcdTk0ODVcdTk0ODZcdTk0''@;'; put 'put ''ODdcdTk0OGJcdTk0OGFcdTk0OGNcdTk0OGRcdTk0OGZcdTk0OTBcdTk0OTRcdTk0OTdcdTk0OTVcdTk0OWFcdTk0OWJcdTk0OWNcdTk0YTNcdTk0YTRcdTk0YWJcdTk0YWFcdTk0YWRcdTk0YWNcdTk0YWZcdTk0YjBcdTk0YjJcdTk0YjRcdTk0YjYiLDQsIlx1OTRiY1x1OTRiZFx1OTRiZlx1''@;'; put 'put ''OTRjNFx1OTRjOCIsNiwiXHU5NGQwXHU5NGQxXHU5NGQyXHU5NGQ1XHU5NGQ2XHU5NGQ3XHU5NGQ5XHU5NGQ4XHU5NGRiXHU5NGRlXHU5NGRmXHU5NGUwXHU5NGUyXHU5NGU0XHU5NGU1XHU5NGU3XHU5NGU4XHU5NGVhIl0sWyJlZjQwIiwiXHU5ODZmIiw1LCJcdTk4OGJcdTk4OGVcdTk4OTJc''@;'; put 'put ''dTk4OTVcdTk4OTlcdTk4YTNcdTk4YTgiLDM3LCJcdTk4Y2ZcdTk4ZDBcdTk4ZDRcdTk4ZDZcdTk4ZDdcdTk4ZGJcdTk4ZGNcdTk4ZGRcdTk4ZTAiLDRdLFsiZWY4MCIsIlx1OThlNVx1OThlNlx1OThlOSIsMzAsIlx1OTRlOVx1OTRlYlx1OTRlZVx1OTRlZlx1OTRmM1x1OTRmNFx1OTRmNVx1''@;'; put 'put ''OTRmN1x1OTRmOVx1OTRmY1x1OTRmZFx1OTRmZlx1OTUwM1x1OTUwMlx1OTUwNlx1OTUwN1x1OTUwOVx1OTUwYVx1OTUwZFx1OTUwZVx1OTUwZlx1OTUxMiIsNCwiXHU5NTE4XHU5NTFiXHU5NTFkXHU5NTFlXHU5NTFmXHU5NTIyXHU5NTJhXHU5NTJiXHU5NTI5XHU5NTJjXHU5NTMxXHU5NTMy''@;'; put 'put ''XHU5NTM0XHU5NTM2XHU5NTM3XHU5NTM4XHU5NTNjXHU5NTNlXHU5NTNmXHU5NTQyXHU5NTM1XHU5NTQ0XHU5NTQ1XHU5NTQ2XHU5NTQ5XHU5NTRjXHU5NTRlXHU5NTRmXHU5NTUyXHU5NTUzXHU5NTU0XHU5NTU2XHU5NTU3XHU5NTU4XHU5NTU5XHU5NTViXHU5NTVlXHU5NTVmXHU5NTVkXHU5''@;'; put 'put ''NTYxXHU5NTYyXHU5NTY0Iiw4LCJcdTk1NmZcdTk1NzFcdTk1NzJcdTk1NzNcdTk1M2FcdTc3ZTdcdTc3ZWNcdTk2YzlcdTc5ZDVcdTc5ZWRcdTc5ZTNcdTc5ZWJcdTdhMDZcdTVkNDdcdTdhMDNcdTdhMDJcdTdhMWVcdTdhMTQiXSxbImYwNDAiLCJcdTk5MDgiLDQsIlx1OTkwZVx1OTkwZlx1''@;'; put 'put ''OTkxMSIsMjgsIlx1OTkyZiIsMjZdLFsiZjA4MCIsIlx1OTk0YSIsOSwiXHU5OTU2IiwxMiwiXHU5OTY0XHU5OTY2XHU5OTczXHU5OTc4XHU5OTc5XHU5OTdiXHU5OTdlXHU5OTgyXHU5OTgzXHU5OTg5XHU3YTM5XHU3YTM3XHU3YTUxXHU5ZWNmXHU5OWE1XHU3YTcwXHU3Njg4XHU3NjhlXHU3''@;'; put 'put ''NjkzXHU3Njk5XHU3NmE0XHU3NGRlXHU3NGUwXHU3NTJjXHU5ZTIwXHU5ZTIyXHU5ZTI4Iiw0LCJcdTllMzJcdTllMzFcdTllMzZcdTllMzhcdTllMzdcdTllMzlcdTllM2FcdTllM2VcdTllNDFcdTllNDJcdTllNDRcdTllNDZcdTllNDdcdTllNDhcdTllNDlcdTllNGJcdTllNGNcdTllNGVc''@;'; put 'put ''dTllNTFcdTllNTVcdTllNTdcdTllNWFcdTllNWJcdTllNWNcdTllNWVcdTllNjNcdTllNjYiLDYsIlx1OWU3MVx1OWU2ZFx1OWU3M1x1NzU5Mlx1NzU5NFx1NzU5Nlx1NzVhMFx1NzU5ZFx1NzVhY1x1NzVhM1x1NzViM1x1NzViNFx1NzViOFx1NzVjNFx1NzViMVx1NzViMFx1NzVjM1x1NzVj''@;'; put 'put ''Mlx1NzVkNlx1NzVjZFx1NzVlM1x1NzVlOFx1NzVlNlx1NzVlNFx1NzVlYlx1NzVlN1x1NzYwM1x1NzVmMVx1NzVmY1x1NzVmZlx1NzYxMFx1NzYwMFx1NzYwNVx1NzYwY1x1NzYxN1x1NzYwYVx1NzYyNVx1NzYxOFx1NzYxNVx1NzYxOSJdLFsiZjE0MCIsIlx1OTk4Y1x1OTk4ZVx1OTk5YSIs''@;'; put 'put ''MTAsIlx1OTlhNlx1OTlhN1x1OTlhOSIsNDddLFsiZjE4MCIsIlx1OTlkOSIsMzIsIlx1NzYxYlx1NzYzY1x1NzYyMlx1NzYyMFx1NzY0MFx1NzYyZFx1NzYzMFx1NzYzZlx1NzYzNVx1NzY0M1x1NzYzZVx1NzYzM1x1NzY0ZFx1NzY1ZVx1NzY1NFx1NzY1Y1x1NzY1Nlx1NzY2Ylx1NzY2Zlx1''@;'; put 'put ''N2ZjYVx1N2FlNlx1N2E3OFx1N2E3OVx1N2E4MFx1N2E4Nlx1N2E4OFx1N2E5NVx1N2FhNlx1N2FhMFx1N2FhY1x1N2FhOFx1N2FhZFx1N2FiM1x1ODg2NFx1ODg2OVx1ODg3Mlx1ODg3ZFx1ODg3Zlx1ODg4Mlx1ODhhMlx1ODhjNlx1ODhiN1x1ODhiY1x1ODhjOVx1ODhlMlx1ODhjZVx1ODhl''@;'; put 'put ''M1x1ODhlNVx1ODhmMVx1ODkxYVx1ODhmY1x1ODhlOFx1ODhmZVx1ODhmMFx1ODkyMVx1ODkxOVx1ODkxM1x1ODkxYlx1ODkwYVx1ODkzNFx1ODkyYlx1ODkzNlx1ODk0MVx1ODk2Nlx1ODk3Ylx1NzU4Ylx1ODBlNVx1NzZiMlx1NzZiNFx1NzdkY1x1ODAxMlx1ODAxNFx1ODAxNlx1ODAxY1x1''@;'; put 'put ''ODAyMFx1ODAyMlx1ODAyNVx1ODAyNlx1ODAyN1x1ODAyOVx1ODAyOFx1ODAzMVx1ODAwYlx1ODAzNVx1ODA0M1x1ODA0Nlx1ODA0ZFx1ODA1Mlx1ODA2OVx1ODA3MVx1ODk4M1x1OTg3OFx1OTg4MFx1OTg4MyJdLFsiZjI0MCIsIlx1OTlmYSIsNjJdLFsiZjI4MCIsIlx1OWEzOSIsMzIsIlx1''@;'; put 'put ''OTg4OVx1OTg4Y1x1OTg4ZFx1OTg4Zlx1OTg5NFx1OTg5YVx1OTg5Ylx1OTg5ZVx1OTg5Zlx1OThhMVx1OThhMlx1OThhNVx1OThhNlx1ODY0ZFx1ODY1NFx1ODY2Y1x1ODY2ZVx1ODY3Zlx1ODY3YVx1ODY3Y1x1ODY3Ylx1ODZhOFx1ODY4ZFx1ODY4Ylx1ODZhY1x1ODY5ZFx1ODZhN1x1ODZh''@;'; put 'put ''M1x1ODZhYVx1ODY5M1x1ODZhOVx1ODZiNlx1ODZjNFx1ODZiNVx1ODZjZVx1ODZiMFx1ODZiYVx1ODZiMVx1ODZhZlx1ODZjOVx1ODZjZlx1ODZiNFx1ODZlOVx1ODZmMVx1ODZmMlx1ODZlZFx1ODZmM1x1ODZkMFx1ODcxM1x1ODZkZVx1ODZmNFx1ODZkZlx1ODZkOFx1ODZkMVx1ODcwM1x1''@;'; put 'put ''ODcwN1x1ODZmOFx1ODcwOFx1ODcwYVx1ODcwZFx1ODcwOVx1ODcyM1x1ODczYlx1ODcxZVx1ODcyNVx1ODcyZVx1ODcxYVx1ODczZVx1ODc0OFx1ODczNFx1ODczMVx1ODcyOVx1ODczN1x1ODczZlx1ODc4Mlx1ODcyMlx1ODc3ZFx1ODc3ZVx1ODc3Ylx1ODc2MFx1ODc3MFx1ODc0Y1x1ODc2''@;'; put 'put ''ZVx1ODc4Ylx1ODc1M1x1ODc2M1x1ODc3Y1x1ODc2NFx1ODc1OVx1ODc2NVx1ODc5M1x1ODdhZlx1ODdhOFx1ODdkMiJdLFsiZjM0MCIsIlx1OWE1YSIsMTcsIlx1OWE3Mlx1OWE4M1x1OWE4OVx1OWE4ZFx1OWE4ZVx1OWE5NFx1OWE5NVx1OWE5OVx1OWFhNlx1OWFhOSIsNiwiXHU5YWIyXHU5''@;'; put 'put ''YWIzXHU5YWI0XHU5YWI1XHU5YWI5XHU5YWJiXHU5YWJkXHU5YWJlXHU5YWJmXHU5YWMzXHU5YWM0XHU5YWM2Iiw0LCJcdTlhY2RcdTlhY2VcdTlhY2ZcdTlhZDBcdTlhZDJcdTlhZDRcdTlhZDVcdTlhZDZcdTlhZDdcdTlhZDlcdTlhZGFcdTlhZGJcdTlhZGMiXSxbImYzODAiLCJcdTlhZGRc''@;'; put 'put ''dTlhZGVcdTlhZTBcdTlhZTJcdTlhZTNcdTlhZTRcdTlhZTVcdTlhZTdcdTlhZThcdTlhZTlcdTlhZWFcdTlhZWNcdTlhZWVcdTlhZjAiLDgsIlx1OWFmYVx1OWFmYyIsNiwiXHU5YjA0XHU5YjA1XHU5YjA2XHU4N2M2XHU4Nzg4XHU4Nzg1XHU4N2FkXHU4Nzk3XHU4NzgzXHU4N2FiXHU4N2U1''@;'; put 'put ''XHU4N2FjXHU4N2I1XHU4N2IzXHU4N2NiXHU4N2QzXHU4N2JkXHU4N2QxXHU4N2MwXHU4N2NhXHU4N2RiXHU4N2VhXHU4N2UwXHU4N2VlXHU4ODE2XHU4ODEzXHU4N2ZlXHU4ODBhXHU4ODFiXHU4ODIxXHU4ODM5XHU4ODNjXHU3ZjM2XHU3ZjQyXHU3ZjQ0XHU3ZjQ1XHU4MjEwXHU3YWZhXHU3''@;'; put 'put ''YWZkXHU3YjA4XHU3YjAzXHU3YjA0XHU3YjE1XHU3YjBhXHU3YjJiXHU3YjBmXHU3YjQ3XHU3YjM4XHU3YjJhXHU3YjE5XHU3YjJlXHU3YjMxXHU3YjIwXHU3YjI1XHU3YjI0XHU3YjMzXHU3YjNlXHU3YjFlXHU3YjU4XHU3YjVhXHU3YjQ1XHU3Yjc1XHU3YjRjXHU3YjVkXHU3YjYwXHU3YjZl''@;'; put 'put ''XHU3YjdiXHU3YjYyXHU3YjcyXHU3YjcxXHU3YjkwXHU3YmE2XHU3YmE3XHU3YmI4XHU3YmFjXHU3YjlkXHU3YmE4XHU3Yjg1XHU3YmFhXHU3YjljXHU3YmEyXHU3YmFiXHU3YmI0XHU3YmQxXHU3YmMxXHU3YmNjXHU3YmRkXHU3YmRhXHU3YmU1XHU3YmU2XHU3YmVhXHU3YzBjXHU3YmZlXHU3''@;'; put 'put ''YmZjXHU3YzBmXHU3YzE2XHU3YzBiIl0sWyJmNDQwIiwiXHU5YjA3XHU5YjA5Iiw1LCJcdTliMTBcdTliMTFcdTliMTJcdTliMTQiLDEwLCJcdTliMjBcdTliMjFcdTliMjJcdTliMjQiLDEwLCJcdTliMzBcdTliMzFcdTliMzMiLDcsIlx1OWIzZFx1OWIzZVx1OWIzZlx1OWI0MFx1OWI0Nlx1''@;'; put 'put ''OWI0YVx1OWI0Ylx1OWI0Y1x1OWI0ZVx1OWI1MFx1OWI1Mlx1OWI1M1x1OWI1NSIsNV0sWyJmNDgwIiwiXHU5YjViIiwzMiwiXHU3YzFmXHU3YzJhXHU3YzI2XHU3YzM4XHU3YzQxXHU3YzQwXHU4MWZlXHU4MjAxXHU4MjAyXHU4MjA0XHU4MWVjXHU4ODQ0XHU4MjIxXHU4MjIyXHU4MjIzXHU4''@;'; put 'put ''MjJkXHU4MjJmXHU4MjI4XHU4MjJiXHU4MjM4XHU4MjNiXHU4MjMzXHU4MjM0XHU4MjNlXHU4MjQ0XHU4MjQ5XHU4MjRiXHU4MjRmXHU4MjVhXHU4MjVmXHU4MjY4XHU4ODdlXHU4ODg1XHU4ODg4XHU4OGQ4XHU4OGRmXHU4OTVlXHU3ZjlkXHU3ZjlmXHU3ZmE3XHU3ZmFmXHU3ZmIwXHU3ZmIy''@;'; put 'put ''XHU3YzdjXHU2NTQ5XHU3YzkxXHU3YzlkXHU3YzljXHU3YzllXHU3Y2EyXHU3Y2IyXHU3Y2JjXHU3Y2JkXHU3Y2MxXHU3Y2M3XHU3Y2NjXHU3Y2NkXHU3Y2M4XHU3Y2M1XHU3Y2Q3XHU3Y2U4XHU4MjZlXHU2NmE4XHU3ZmJmXHU3ZmNlXHU3ZmQ1XHU3ZmU1XHU3ZmUxXHU3ZmU2XHU3ZmU5XHU3''@;'; put 'put ''ZmVlXHU3ZmYzXHU3Y2Y4XHU3ZDc3XHU3ZGE2XHU3ZGFlXHU3ZTQ3XHU3ZTliXHU5ZWI4XHU5ZWI0XHU4ZDczXHU4ZDg0XHU4ZDk0XHU4ZDkxXHU4ZGIxXHU4ZDY3XHU4ZDZkXHU4YzQ3XHU4YzQ5XHU5MTRhXHU5MTUwXHU5MTRlXHU5MTRmXHU5MTY0Il0sWyJmNTQwIiwiXHU5YjdjIiw2Ml0s''@;'; put 'put ''WyJmNTgwIiwiXHU5YmJiIiwzMiwiXHU5MTYyXHU5MTYxXHU5MTcwXHU5MTY5XHU5MTZmXHU5MTdkXHU5MTdlXHU5MTcyXHU5MTc0XHU5MTc5XHU5MThjXHU5MTg1XHU5MTkwXHU5MThkXHU5MTkxXHU5MWEyXHU5MWEzXHU5MWFhXHU5MWFkXHU5MWFlXHU5MWFmXHU5MWI1XHU5MWI0XHU5MWJh''@;'; put 'put ''XHU4YzU1XHU5ZTdlXHU4ZGI4XHU4ZGViXHU4ZTA1XHU4ZTU5XHU4ZTY5XHU4ZGI1XHU4ZGJmXHU4ZGJjXHU4ZGJhXHU4ZGM0XHU4ZGQ2XHU4ZGQ3XHU4ZGRhXHU4ZGRlXHU4ZGNlXHU4ZGNmXHU4ZGRiXHU4ZGM2XHU4ZGVjXHU4ZGY3XHU4ZGY4XHU4ZGUzXHU4ZGY5XHU4ZGZiXHU4ZGU0XHU4''@;'; put 'put ''ZTA5XHU4ZGZkXHU4ZTE0XHU4ZTFkXHU4ZTFmXHU4ZTJjXHU4ZTJlXHU4ZTIzXHU4ZTJmXHU4ZTNhXHU4ZTQwXHU4ZTM5XHU4ZTM1XHU4ZTNkXHU4ZTMxXHU4ZTQ5XHU4ZTQxXHU4ZTQyXHU4ZTUxXHU4ZTUyXHU4ZTRhXHU4ZTcwXHU4ZTc2XHU4ZTdjXHU4ZTZmXHU4ZTc0XHU4ZTg1XHU4ZThm''@;'; put 'put ''XHU4ZTk0XHU4ZTkwXHU4ZTljXHU4ZTllXHU4Yzc4XHU4YzgyXHU4YzhhXHU4Yzg1XHU4Yzk4XHU4Yzk0XHU2NTliXHU4OWQ2XHU4OWRlXHU4OWRhXHU4OWRjIl0sWyJmNjQwIiwiXHU5YmRjIiw2Ml0sWyJmNjgwIiwiXHU5YzFiIiwzMiwiXHU4OWU1XHU4OWViXHU4OWVmXHU4YTNlXHU4YjI2''@;'; put 'put ''XHU5NzUzXHU5NmU5XHU5NmYzXHU5NmVmXHU5NzA2XHU5NzAxXHU5NzA4XHU5NzBmXHU5NzBlXHU5NzJhXHU5NzJkXHU5NzMwXHU5NzNlXHU5ZjgwXHU5ZjgzXHU5Zjg1Iiw1LCJcdTlmOGNcdTllZmVcdTlmMGJcdTlmMGRcdTk2YjlcdTk2YmNcdTk2YmRcdTk2Y2VcdTk2ZDJcdTc3YmZcdTk2''@;'; put 'put ''ZTBcdTkyOGVcdTkyYWVcdTkyYzhcdTkzM2VcdTkzNmFcdTkzY2FcdTkzOGZcdTk0M2VcdTk0NmJcdTljN2ZcdTljODJcdTljODVcdTljODZcdTljODdcdTljODhcdTdhMjNcdTljOGJcdTljOGVcdTljOTBcdTljOTFcdTljOTJcdTljOTRcdTljOTVcdTljOWFcdTljOWJcdTljOWUiLDUsIlx1''@;'; put 'put ''OWNhNSIsNCwiXHU5Y2FiXHU5Y2FkXHU5Y2FlXHU5Y2IwIiw3LCJcdTljYmFcdTljYmJcdTljYmNcdTljYmRcdTljYzRcdTljYzVcdTljYzZcdTljYzdcdTljY2FcdTljY2IiXSxbImY3NDAiLCJcdTljM2MiLDYyXSxbImY3ODAiLCJcdTljN2JcdTljN2RcdTljN2VcdTljODBcdTljODNcdTlj''@;'; put 'put ''ODRcdTljODlcdTljOGFcdTljOGNcdTljOGZcdTljOTNcdTljOTZcdTljOTdcdTljOThcdTljOTlcdTljOWRcdTljYWFcdTljYWNcdTljYWZcdTljYjlcdTljYmUiLDQsIlx1OWNjOFx1OWNjOVx1OWNkMVx1OWNkMlx1OWNkYVx1OWNkYlx1OWNlMFx1OWNlMVx1OWNjYyIsNCwiXHU5Y2QzXHU5''@;'; put 'put ''Y2Q0XHU5Y2Q1XHU5Y2Q3XHU5Y2Q4XHU5Y2Q5XHU5Y2RjXHU5Y2RkXHU5Y2RmXHU5Y2UyXHU5NzdjXHU5Nzg1XHU5NzkxXHU5NzkyXHU5Nzk0XHU5N2FmXHU5N2FiXHU5N2EzXHU5N2IyXHU5N2I0XHU5YWIxXHU5YWIwXHU5YWI3XHU5ZTU4XHU5YWI2XHU5YWJhXHU5YWJjXHU5YWMxXHU5YWMw''@;'; put 'put ''XHU5YWM1XHU5YWMyXHU5YWNiXHU5YWNjXHU5YWQxXHU5YjQ1XHU5YjQzXHU5YjQ3XHU5YjQ5XHU5YjQ4XHU5YjRkXHU5YjUxXHU5OGU4XHU5OTBkXHU5OTJlXHU5OTU1XHU5OTU0XHU5YWRmXHU5YWUxXHU5YWU2XHU5YWVmXHU5YWViXHU5YWZiXHU5YWVkXHU5YWY5XHU5YjA4XHU5YjBmXHU5''@;'; put 'put ''YjEzXHU5YjFmXHU5YjIzXHU5ZWJkXHU5ZWJlXHU3ZTNiXHU5ZTgyXHU5ZTg3XHU5ZTg4XHU5ZThiXHU5ZTkyXHU5M2Q2XHU5ZTlkXHU5ZTlmXHU5ZWRiXHU5ZWRjXHU5ZWRkXHU5ZWUwXHU5ZWRmXHU5ZWUyXHU5ZWU5XHU5ZWU3XHU5ZWU1XHU5ZWVhXHU5ZWVmXHU5ZjIyXHU5ZjJjXHU5ZjJm''@;'; put 'put ''XHU5ZjM5XHU5ZjM3XHU5ZjNkXHU5ZjNlXHU5ZjQ0Il0sWyJmODQwIiwiXHU5Y2UzIiw2Ml0sWyJmODgwIiwiXHU5ZDIyIiwzMl0sWyJmOTQwIiwiXHU5ZDQzIiw2Ml0sWyJmOTgwIiwiXHU5ZDgyIiwzMl0sWyJmYTQwIiwiXHU5ZGEzIiw2Ml0sWyJmYTgwIiwiXHU5ZGUyIiwzMl0sWyJmYjQw''@;'; put 'put ''IiwiXHU5ZTAzIiwyNywiXHU5ZTI0XHU5ZTI3XHU5ZTJlXHU5ZTMwXHU5ZTM0XHU5ZTNiXHU5ZTNjXHU5ZTQwXHU5ZTRkXHU5ZTUwXHU5ZTUyXHU5ZTUzXHU5ZTU0XHU5ZTU2XHU5ZTU5XHU5ZTVkXHU5ZTVmXHU5ZTYwXHU5ZTYxXHU5ZTYyXHU5ZTY1XHU5ZTZlXHU5ZTZmXHU5ZTcyXHU5ZTc0''@;'; put 'put ''Iiw5LCJcdTllODAiXSxbImZiODAiLCJcdTllODFcdTllODNcdTllODRcdTllODVcdTllODZcdTllODlcdTllOGFcdTllOGMiLDUsIlx1OWU5NCIsOCwiXHU5ZTllXHU5ZWEwIiw1LCJcdTllYTdcdTllYThcdTllYTlcdTllYWEiXSxbImZjNDAiLCJcdTllYWIiLDgsIlx1OWViNVx1OWViNlx1''@;'; put 'put ''OWViN1x1OWViOVx1OWViYVx1OWViY1x1OWViZiIsNCwiXHU5ZWM1XHU5ZWM2XHU5ZWM3XHU5ZWM4XHU5ZWNhXHU5ZWNiXHU5ZWNjXHU5ZWQwXHU5ZWQyXHU5ZWQzXHU5ZWQ1XHU5ZWQ2XHU5ZWQ3XHU5ZWQ5XHU5ZWRhXHU5ZWRlXHU5ZWUxXHU5ZWUzXHU5ZWU0XHU5ZWU2XHU5ZWU4XHU5ZWVi''@;'; put 'put ''XHU5ZWVjXHU5ZWVkXHU5ZWVlXHU5ZWYwIiw4LCJcdTllZmFcdTllZmRcdTllZmYiLDZdLFsiZmM4MCIsIlx1OWYwNiIsNCwiXHU5ZjBjXHU5ZjBmXHU5ZjExXHU5ZjEyXHU5ZjE0XHU5ZjE1XHU5ZjE2XHU5ZjE4XHU5ZjFhIiw1LCJcdTlmMjFcdTlmMjMiLDgsIlx1OWYyZFx1OWYyZVx1OWYz''@;'; put 'put ''MFx1OWYzMSJdLFsiZmQ0MCIsIlx1OWYzMiIsNCwiXHU5ZjM4XHU5ZjNhXHU5ZjNjXHU5ZjNmIiw0LCJcdTlmNDUiLDEwLCJcdTlmNTIiLDM4XSxbImZkODAiLCJcdTlmNzkiLDUsIlx1OWY4MVx1OWY4Mlx1OWY4ZCIsMTEsIlx1OWY5Y1x1OWY5ZFx1OWY5ZVx1OWZhMSIsNCwiXHVmOTJjXHVm''@;'; put 'put ''OTc5XHVmOTk1XHVmOWU3XHVmOWYxIl0sWyJmZTQwIiwiXHVmYTBjXHVmYTBkXHVmYTBlXHVmYTBmXHVmYTExXHVmYTEzXHVmYTE0XHVmYTE4XHVmYTFmXHVmYTIwXHVmYTIxXHVmYTIzXHVmYTI0XHVmYTI3XHVmYTI4XHVmYTI5Il1dJyl9LDc3MzQ4OlhlPT57InVzZSBzdHJpY3QiO1hlLmV4''@;'; put 'put ''cG9ydHM9SlNPTi5wYXJzZSgnW1siMCIsIlxcdTAwMDAiLDEyN10sWyI4MTQxIiwiXHVhYzAyXHVhYzAzXHVhYzA1XHVhYzA2XHVhYzBiIiw0LCJcdWFjMThcdWFjMWVcdWFjMWZcdWFjMjFcdWFjMjJcdWFjMjNcdWFjMjUiLDYsIlx1YWMyZVx1YWMzMlx1YWMzM1x1YWMzNCJdLFsiODE2MSIs''@;'; put 'put ''Ilx1YWMzNVx1YWMzNlx1YWMzN1x1YWMzYVx1YWMzYlx1YWMzZFx1YWMzZVx1YWMzZlx1YWM0MSIsOSwiXHVhYzRjXHVhYzRlIiw1LCJcdWFjNTUiXSxbIjgxODEiLCJcdWFjNTZcdWFjNTdcdWFjNTlcdWFjNWFcdWFjNWJcdWFjNWQiLDE4LCJcdWFjNzJcdWFjNzNcdWFjNzVcdWFjNzZcdWFj''@;'; put 'put ''NzlcdWFjN2IiLDQsIlx1YWM4Mlx1YWM4N1x1YWM4OFx1YWM4ZFx1YWM4ZVx1YWM4Zlx1YWM5MVx1YWM5Mlx1YWM5M1x1YWM5NSIsNiwiXHVhYzllXHVhY2EyIiw1LCJcdWFjYWJcdWFjYWRcdWFjYWVcdWFjYjEiLDYsIlx1YWNiYVx1YWNiZVx1YWNiZlx1YWNjMFx1YWNjMlx1YWNjM1x1YWNj''@;'; put 'put ''NVx1YWNjNlx1YWNjN1x1YWNjOVx1YWNjYVx1YWNjYlx1YWNjZCIsNywiXHVhY2Q2XHVhY2Q4Iiw3LCJcdWFjZTJcdWFjZTNcdWFjZTVcdWFjZTZcdWFjZTlcdWFjZWJcdWFjZWRcdWFjZWVcdWFjZjJcdWFjZjRcdWFjZjciLDQsIlx1YWNmZVx1YWNmZlx1YWQwMVx1YWQwMlx1YWQwM1x1YWQw''@;'; put 'put ''NVx1YWQwNyIsNCwiXHVhZDBlXHVhZDEwXHVhZDEyXHVhZDEzIl0sWyI4MjQxIiwiXHVhZDE0XHVhZDE1XHVhZDE2XHVhZDE3XHVhZDE5XHVhZDFhXHVhZDFiXHVhZDFkXHVhZDFlXHVhZDFmXHVhZDIxIiw3LCJcdWFkMmFcdWFkMmJcdWFkMmUiLDVdLFsiODI2MSIsIlx1YWQzNlx1YWQzN1x1''@;'; put 'put ''YWQzOVx1YWQzYVx1YWQzYlx1YWQzZCIsNiwiXHVhZDQ2XHVhZDQ4XHVhZDRhIiw1LCJcdWFkNTFcdWFkNTJcdWFkNTNcdWFkNTVcdWFkNTZcdWFkNTciXSxbIjgyODEiLCJcdWFkNTkiLDcsIlx1YWQ2Mlx1YWQ2NCIsNywiXHVhZDZlXHVhZDZmXHVhZDcxXHVhZDcyXHVhZDc3XHVhZDc4XHVh''@;'; put 'put ''ZDc5XHVhZDdhXHVhZDdlXHVhZDgwXHVhZDgzIiw0LCJcdWFkOGFcdWFkOGJcdWFkOGRcdWFkOGVcdWFkOGZcdWFkOTEiLDEwLCJcdWFkOWUiLDUsIlx1YWRhNSIsMTcsIlx1YWRiOCIsNywiXHVhZGMyXHVhZGMzXHVhZGM1XHVhZGM2XHVhZGM3XHVhZGM5Iiw2LCJcdWFkZDJcdWFkZDQiLDcs''@;'; put 'put ''Ilx1YWRkZFx1YWRkZVx1YWRkZlx1YWRlMVx1YWRlMlx1YWRlM1x1YWRlNSIsMThdLFsiODM0MSIsIlx1YWRmYVx1YWRmYlx1YWRmZFx1YWRmZVx1YWUwMiIsNSwiXHVhZTBhXHVhZTBjXHVhZTBlIiw1LCJcdWFlMTUiLDddLFsiODM2MSIsIlx1YWUxZCIsMTgsIlx1YWUzMlx1YWUzM1x1YWUz''@;'; put 'put ''NVx1YWUzNlx1YWUzOVx1YWUzYlx1YWUzYyJdLFsiODM4MSIsIlx1YWUzZFx1YWUzZVx1YWUzZlx1YWU0Mlx1YWU0NFx1YWU0N1x1YWU0OFx1YWU0OVx1YWU0Ylx1YWU0Zlx1YWU1MVx1YWU1Mlx1YWU1M1x1YWU1NVx1YWU1NyIsNCwiXHVhZTVlXHVhZTYyXHVhZTYzXHVhZTY0XHVhZTY2XHVh''@;'; put 'put ''ZTY3XHVhZTZhXHVhZTZiXHVhZTZkXHVhZTZlXHVhZTZmXHVhZTcxIiw2LCJcdWFlN2FcdWFlN2UiLDUsIlx1YWU4NiIsNSwiXHVhZThkIiw0NiwiXHVhZWJmXHVhZWMxXHVhZWMyXHVhZWMzXHVhZWM1Iiw2LCJcdWFlY2VcdWFlZDIiLDUsIlx1YWVkYVx1YWVkYlx1YWVkZCIsOF0sWyI4NDQx''@;'; put 'put ''IiwiXHVhZWU2XHVhZWU3XHVhZWU5XHVhZWVhXHVhZWVjXHVhZWVlIiw1LCJcdWFlZjVcdWFlZjZcdWFlZjdcdWFlZjlcdWFlZmFcdWFlZmJcdWFlZmQiLDhdLFsiODQ2MSIsIlx1YWYwNlx1YWYwOVx1YWYwYVx1YWYwYlx1YWYwY1x1YWYwZVx1YWYwZlx1YWYxMSIsMThdLFsiODQ4MSIsIlx1''@;'; put 'put ''YWYyNCIsNywiXHVhZjJlXHVhZjJmXHVhZjMxXHVhZjMzXHVhZjM1Iiw2LCJcdWFmM2VcdWFmNDBcdWFmNDRcdWFmNDVcdWFmNDZcdWFmNDdcdWFmNGEiLDUsIlx1YWY1MSIsMTAsIlx1YWY1ZSIsNSwiXHVhZjY2IiwxOCwiXHVhZjdhIiw1LCJcdWFmODFcdWFmODJcdWFmODNcdWFmODVcdWFm''@;'; put 'put ''ODZcdWFmODdcdWFmODkiLDYsIlx1YWY5Mlx1YWY5M1x1YWY5NFx1YWY5NiIsNSwiXHVhZjlkIiwyNiwiXHVhZmJhXHVhZmJiXHVhZmJkXHVhZmJlIl0sWyI4NTQxIiwiXHVhZmJmXHVhZmMxIiw1LCJcdWFmY2FcdWFmY2NcdWFmY2YiLDQsIlx1YWZkNSIsNiwiXHVhZmRkIiw0XSxbIjg1NjEi''@;'; put 'put ''LCJcdWFmZTIiLDUsIlx1YWZlYSIsNSwiXHVhZmYyXHVhZmYzXHVhZmY1XHVhZmY2XHVhZmY3XHVhZmY5Iiw2LCJcdWIwMDJcdWIwMDMiXSxbIjg1ODEiLCJcdWIwMDUiLDYsIlx1YjAwZFx1YjAwZVx1YjAwZlx1YjAxMVx1YjAxMlx1YjAxM1x1YjAxNSIsNiwiXHViMDFlIiw5LCJcdWIwMjki''@;'; put 'put ''LDI2LCJcdWIwNDZcdWIwNDdcdWIwNDlcdWIwNGJcdWIwNGRcdWIwNGZcdWIwNTBcdWIwNTFcdWIwNTJcdWIwNTZcdWIwNThcdWIwNWFcdWIwNWJcdWIwNWNcdWIwNWUiLDI5LCJcdWIwN2VcdWIwN2ZcdWIwODFcdWIwODJcdWIwODNcdWIwODUiLDYsIlx1YjA4ZVx1YjA5MFx1YjA5MiIsNSwi''@;'; put 'put ''XHViMDliXHViMDlkXHViMDllXHViMGEzXHViMGE0Il0sWyI4NjQxIiwiXHViMGE1XHViMGE2XHViMGE3XHViMGFhXHViMGIwXHViMGIyXHViMGI2XHViMGI3XHViMGI5XHViMGJhXHViMGJiXHViMGJkIiw2LCJcdWIwYzZcdWIwY2EiLDUsIlx1YjBkMiJdLFsiODY2MSIsIlx1YjBkM1x1YjBk''@;'; put 'put ''NVx1YjBkNlx1YjBkN1x1YjBkOSIsNiwiXHViMGUxXHViMGUyXHViMGUzXHViMGU0XHViMGU2IiwxMF0sWyI4NjgxIiwiXHViMGYxIiwyMiwiXHViMTBhXHViMTBkXHViMTBlXHViMTBmXHViMTExXHViMTE0XHViMTE1XHViMTE2XHViMTE3XHViMTFhXHViMTFlIiw0LCJcdWIxMjZcdWIxMjdc''@;'; put 'put ''dWIxMjlcdWIxMmFcdWIxMmJcdWIxMmQiLDYsIlx1YjEzNlx1YjEzYSIsNSwiXHViMTQyXHViMTQzXHViMTQ1XHViMTQ2XHViMTQ3XHViMTQ5Iiw2LCJcdWIxNTJcdWIxNTNcdWIxNTZcdWIxNTdcdWIxNTlcdWIxNWFcdWIxNWJcdWIxNWRcdWIxNWVcdWIxNWZcdWIxNjEiLDIyLCJcdWIxN2Fc''@;'; put 'put ''dWIxN2JcdWIxN2RcdWIxN2VcdWIxN2ZcdWIxODFcdWIxODMiLDQsIlx1YjE4YVx1YjE4Y1x1YjE4ZVx1YjE4Zlx1YjE5MFx1YjE5MVx1YjE5NVx1YjE5Nlx1YjE5N1x1YjE5OVx1YjE5YVx1YjE5Ylx1YjE5ZCJdLFsiODc0MSIsIlx1YjE5ZSIsOSwiXHViMWE5IiwxNV0sWyI4NzYxIiwiXHVi''@;'; put 'put ''MWI5IiwxOCwiXHViMWNkXHViMWNlXHViMWNmXHViMWQxXHViMWQyXHViMWQzXHViMWQ1Il0sWyI4NzgxIiwiXHViMWQ2Iiw1LCJcdWIxZGVcdWIxZTAiLDcsIlx1YjFlYVx1YjFlYlx1YjFlZFx1YjFlZVx1YjFlZlx1YjFmMSIsNywiXHViMWZhXHViMWZjXHViMWZlIiw1LCJcdWIyMDZcdWIy''@;'; put 'put ''MDdcdWIyMDlcdWIyMGFcdWIyMGQiLDYsIlx1YjIxNlx1YjIxOFx1YjIxYSIsNSwiXHViMjIxIiwxOCwiXHViMjM1Iiw2LCJcdWIyM2QiLDI2LCJcdWIyNTlcdWIyNWFcdWIyNWJcdWIyNWRcdWIyNWVcdWIyNWZcdWIyNjEiLDYsIlx1YjI2YSIsNF0sWyI4ODQxIiwiXHViMjZmIiw0LCJcdWIy''@;'; put 'put ''NzYiLDUsIlx1YjI3ZCIsNiwiXHViMjg2XHViMjg3XHViMjg4XHViMjhhIiw0XSxbIjg4NjEiLCJcdWIyOGZcdWIyOTJcdWIyOTNcdWIyOTVcdWIyOTZcdWIyOTdcdWIyOWIiLDQsIlx1YjJhMlx1YjJhNFx1YjJhN1x1YjJhOFx1YjJhOVx1YjJhYlx1YjJhZFx1YjJhZVx1YjJhZlx1YjJiMVx1''@;'; put 'put ''YjJiMlx1YjJiM1x1YjJiNVx1YjJiNlx1YjJiNyJdLFsiODg4MSIsIlx1YjJiOCIsMTUsIlx1YjJjYVx1YjJjYlx1YjJjZFx1YjJjZVx1YjJjZlx1YjJkMVx1YjJkMyIsNCwiXHViMmRhXHViMmRjXHViMmRlXHViMmRmXHViMmUwXHViMmUxXHViMmUzXHViMmU3XHViMmU5XHViMmVhXHViMmYw''@;'; put 'put ''XHViMmYxXHViMmYyXHViMmY2XHViMmZjXHViMmZkXHViMmZlXHViMzAyXHViMzAzXHViMzA1XHViMzA2XHViMzA3XHViMzA5Iiw2LCJcdWIzMTJcdWIzMTYiLDUsIlx1YjMxZCIsNTQsIlx1YjM1N1x1YjM1OVx1YjM1YVx1YjM1ZFx1YjM2MFx1YjM2MVx1YjM2Mlx1YjM2MyJdLFsiODk0MSIs''@;'; put 'put ''Ilx1YjM2Nlx1YjM2OFx1YjM2YVx1YjM2Y1x1YjM2ZFx1YjM2Zlx1YjM3Mlx1YjM3M1x1YjM3NVx1YjM3Nlx1YjM3N1x1YjM3OSIsNiwiXHViMzgyXHViMzg2Iiw1LCJcdWIzOGQiXSxbIjg5NjEiLCJcdWIzOGVcdWIzOGZcdWIzOTFcdWIzOTJcdWIzOTNcdWIzOTUiLDEwLCJcdWIzYTIiLDUs''@;'; put 'put ''Ilx1YjNhOVx1YjNhYVx1YjNhYlx1YjNhZCJdLFsiODk4MSIsIlx1YjNhZSIsMjEsIlx1YjNjNlx1YjNjN1x1YjNjOVx1YjNjYVx1YjNjZFx1YjNjZlx1YjNkMVx1YjNkMlx1YjNkM1x1YjNkNlx1YjNkOFx1YjNkYVx1YjNkY1x1YjNkZVx1YjNkZlx1YjNlMVx1YjNlMlx1YjNlM1x1YjNlNVx1''@;'; put 'put ''YjNlNlx1YjNlN1x1YjNlOSIsMTgsIlx1YjNmZCIsMTgsIlx1YjQxMSIsNiwiXHViNDE5XHViNDFhXHViNDFiXHViNDFkXHViNDFlXHViNDFmXHViNDIxIiw2LCJcdWI0MmFcdWI0MmMiLDcsIlx1YjQzNSIsMTVdLFsiOGE0MSIsIlx1YjQ0NSIsMTAsIlx1YjQ1Mlx1YjQ1M1x1YjQ1NVx1YjQ1''@;'; put 'put ''Nlx1YjQ1N1x1YjQ1OSIsNiwiXHViNDYyXHViNDY0XHViNDY2Il0sWyI4YTYxIiwiXHViNDY3Iiw0LCJcdWI0NmQiLDE4LCJcdWI0ODFcdWI0ODIiXSxbIjhhODEiLCJcdWI0ODMiLDQsIlx1YjQ4OSIsMTksIlx1YjQ5ZSIsNSwiXHViNGE1XHViNGE2XHViNGE3XHViNGE5XHViNGFhXHViNGFi''@;'; put 'put ''XHViNGFkIiw3LCJcdWI0YjZcdWI0YjhcdWI0YmEiLDUsIlx1YjRjMVx1YjRjMlx1YjRjM1x1YjRjNVx1YjRjNlx1YjRjN1x1YjRjOSIsNiwiXHViNGQxXHViNGQyXHViNGQzXHViNGQ0XHViNGQ2Iiw1LCJcdWI0ZGVcdWI0ZGZcdWI0ZTFcdWI0ZTJcdWI0ZTVcdWI0ZTciLDQsIlx1YjRlZVx1''@;'; put 'put ''YjRmMFx1YjRmMiIsNSwiXHViNGY5IiwyNiwiXHViNTE2XHViNTE3XHViNTE5XHViNTFhXHViNTFkIl0sWyI4YjQxIiwiXHViNTFlIiw1LCJcdWI1MjZcdWI1MmIiLDQsIlx1YjUzMlx1YjUzM1x1YjUzNVx1YjUzNlx1YjUzN1x1YjUzOSIsNiwiXHViNTQyXHViNTQ2Il0sWyI4YjYxIiwiXHVi''@;'; put 'put ''NTQ3XHViNTQ4XHViNTQ5XHViNTRhXHViNTRlXHViNTRmXHViNTUxXHViNTUyXHViNTUzXHViNTU1Iiw2LCJcdWI1NWVcdWI1NjIiLDhdLFsiOGI4MSIsIlx1YjU2YiIsNTIsIlx1YjVhMlx1YjVhM1x1YjVhNVx1YjVhNlx1YjVhN1x1YjVhOVx1YjVhY1x1YjVhZFx1YjVhZVx1YjVhZlx1YjVi''@;'; put 'put ''Mlx1YjViNiIsNCwiXHViNWJlXHViNWJmXHViNWMxXHViNWMyXHViNWMzXHViNWM1Iiw2LCJcdWI1Y2VcdWI1ZDIiLDUsIlx1YjVkOSIsMTgsIlx1YjVlZCIsMThdLFsiOGM0MSIsIlx1YjYwMCIsMTUsIlx1YjYxMlx1YjYxM1x1YjYxNVx1YjYxNlx1YjYxN1x1YjYxOSIsNF0sWyI4YzYxIiwi''@;'; put 'put ''XHViNjFlIiw2LCJcdWI2MjYiLDUsIlx1YjYyZCIsNiwiXHViNjM1Iiw1XSxbIjhjODEiLCJcdWI2M2IiLDEyLCJcdWI2NDkiLDI2LCJcdWI2NjVcdWI2NjZcdWI2NjdcdWI2NjkiLDUwLCJcdWI2OWVcdWI2OWZcdWI2YTFcdWI2YTJcdWI2YTNcdWI2YTUiLDUsIlx1YjZhZFx1YjZhZVx1YjZh''@;'; put 'put ''Zlx1YjZiMFx1YjZiMiIsMTZdLFsiOGQ0MSIsIlx1YjZjMyIsMTYsIlx1YjZkNSIsOF0sWyI4ZDYxIiwiXHViNmRlIiwxNywiXHViNmYxXHViNmYyXHViNmYzXHViNmY1XHViNmY2XHViNmY3XHViNmY5XHViNmZhIl0sWyI4ZDgxIiwiXHViNmZiIiw0LCJcdWI3MDJcdWI3MDNcdWI3MDRcdWI3''@;'; put 'put ''MDYiLDMzLCJcdWI3MmFcdWI3MmJcdWI3MmRcdWI3MmVcdWI3MzEiLDYsIlx1YjczYVx1YjczYyIsNywiXHViNzQ1XHViNzQ2XHViNzQ3XHViNzQ5XHViNzRhXHViNzRiXHViNzRkIiw2LCJcdWI3NTYiLDksIlx1Yjc2MVx1Yjc2Mlx1Yjc2M1x1Yjc2NVx1Yjc2Nlx1Yjc2N1x1Yjc2OSIsNiwi''@;'; put 'put ''XHViNzcyXHViNzc0XHViNzc2Iiw1LCJcdWI3N2VcdWI3N2ZcdWI3ODFcdWI3ODJcdWI3ODNcdWI3ODUiLDYsIlx1Yjc4ZVx1Yjc5M1x1Yjc5NFx1Yjc5NVx1Yjc5YVx1Yjc5Ylx1Yjc5ZFx1Yjc5ZSJdLFsiOGU0MSIsIlx1Yjc5Zlx1YjdhMSIsNiwiXHViN2FhXHViN2FlIiw1LCJcdWI3YjZc''@;'; put 'put ''dWI3YjdcdWI3YjkiLDhdLFsiOGU2MSIsIlx1YjdjMiIsNCwiXHViN2M4XHViN2NhIiwxOV0sWyI4ZTgxIiwiXHViN2RlIiwxMywiXHViN2VlXHViN2VmXHViN2YxXHViN2YyXHViN2YzXHViN2Y1Iiw2LCJcdWI3ZmVcdWI4MDIiLDQsIlx1YjgwYVx1YjgwYlx1YjgwZFx1YjgwZVx1YjgwZlx1''@;'; put 'put ''YjgxMSIsNiwiXHViODFhXHViODFjXHViODFlIiw1LCJcdWI4MjZcdWI4MjdcdWI4MjlcdWI4MmFcdWI4MmJcdWI4MmQiLDYsIlx1YjgzNlx1YjgzYSIsNSwiXHViODQxXHViODQyXHViODQzXHViODQ1IiwxMSwiXHViODUyXHViODU0Iiw3LCJcdWI4NWVcdWI4NWZcdWI4NjFcdWI4NjJcdWI4''@;'; put 'put ''NjNcdWI4NjUiLDYsIlx1Yjg2ZVx1Yjg3MFx1Yjg3MiIsNSwiXHViODc5XHViODdhXHViODdiXHViODdkIiw3XSxbIjhmNDEiLCJcdWI4ODUiLDcsIlx1Yjg4ZSIsMTddLFsiOGY2MSIsIlx1YjhhMCIsNywiXHViOGE5Iiw2LCJcdWI4YjFcdWI4YjJcdWI4YjNcdWI4YjVcdWI4YjZcdWI4Yjdc''@;'; put 'put ''dWI4YjkiLDRdLFsiOGY4MSIsIlx1YjhiZVx1YjhiZlx1YjhjMlx1YjhjNFx1YjhjNiIsNSwiXHViOGNkXHViOGNlXHViOGNmXHViOGQxXHViOGQyXHViOGQzXHViOGQ1Iiw3LCJcdWI4ZGVcdWI4ZTBcdWI4ZTIiLDUsIlx1YjhlYVx1YjhlYlx1YjhlZFx1YjhlZVx1YjhlZlx1YjhmMSIsNiwi''@;'; put 'put ''XHViOGZhXHViOGZjXHViOGZlIiw1LCJcdWI5MDUiLDE4LCJcdWI5MTkiLDYsIlx1YjkyMSIsMjYsIlx1YjkzZVx1YjkzZlx1Yjk0MVx1Yjk0Mlx1Yjk0M1x1Yjk0NSIsNiwiXHViOTRkXHViOTRlXHViOTUwXHViOTUyIiw1XSxbIjkwNDEiLCJcdWI5NWFcdWI5NWJcdWI5NWRcdWI5NWVcdWI5''@;'; put 'put ''NWZcdWI5NjEiLDYsIlx1Yjk2YVx1Yjk2Y1x1Yjk2ZSIsNSwiXHViOTc2XHViOTc3XHViOTc5XHViOTdhXHViOTdiXHViOTdkIl0sWyI5MDYxIiwiXHViOTdlIiw1LCJcdWI5ODZcdWI5ODhcdWI5OGJcdWI5OGNcdWI5OGYiLDE1XSxbIjkwODEiLCJcdWI5OWYiLDEyLCJcdWI5YWVcdWI5YWZc''@;'; put 'put ''dWI5YjFcdWI5YjJcdWI5YjNcdWI5YjUiLDYsIlx1YjliZVx1YjljMFx1YjljMiIsNSwiXHViOWNhXHViOWNiXHViOWNkXHViOWQzIiw0LCJcdWI5ZGFcdWI5ZGNcdWI5ZGZcdWI5ZTBcdWI5ZTJcdWI5ZTZcdWI5ZTdcdWI5ZTlcdWI5ZWFcdWI5ZWJcdWI5ZWQiLDYsIlx1YjlmNlx1YjlmYiIs''@;'; put 'put ''NCwiXHViYTAyIiw1LCJcdWJhMDkiLDExLCJcdWJhMTYiLDMzLCJcdWJhM2FcdWJhM2JcdWJhM2RcdWJhM2VcdWJhM2ZcdWJhNDFcdWJhNDNcdWJhNDRcdWJhNDVcdWJhNDYiXSxbIjkxNDEiLCJcdWJhNDdcdWJhNGFcdWJhNGNcdWJhNGZcdWJhNTBcdWJhNTFcdWJhNTJcdWJhNTZcdWJhNTdc''@;'; put 'put ''dWJhNTlcdWJhNWFcdWJhNWJcdWJhNWQiLDYsIlx1YmE2Nlx1YmE2YSIsNV0sWyI5MTYxIiwiXHViYTcyXHViYTczXHViYTc1XHViYTc2XHViYTc3XHViYTc5Iiw5LCJcdWJhODZcdWJhODhcdWJhODlcdWJhOGFcdWJhOGJcdWJhOGQiLDVdLFsiOTE4MSIsIlx1YmE5MyIsMjAsIlx1YmFhYVx1''@;'; put 'put ''YmFhZFx1YmFhZVx1YmFhZlx1YmFiMVx1YmFiMyIsNCwiXHViYWJhXHViYWJjXHViYWJlIiw1LCJcdWJhYzVcdWJhYzZcdWJhYzdcdWJhYzkiLDE0LCJcdWJhZGEiLDMzLCJcdWJhZmRcdWJhZmVcdWJhZmZcdWJiMDFcdWJiMDJcdWJiMDNcdWJiMDUiLDcsIlx1YmIwZVx1YmIxMFx1YmIxMiIs''@;'; put 'put ''NSwiXHViYjE5XHViYjFhXHViYjFiXHViYjFkXHViYjFlXHViYjFmXHViYjIxIiw2XSxbIjkyNDEiLCJcdWJiMjhcdWJiMmFcdWJiMmMiLDcsIlx1YmIzN1x1YmIzOVx1YmIzYVx1YmIzZiIsNCwiXHViYjQ2XHViYjQ4XHViYjRhXHViYjRiXHViYjRjXHViYjRlXHViYjUxXHViYjUyIl0sWyI5''@;'; put 'put ''MjYxIiwiXHViYjUzXHViYjU1XHViYjU2XHViYjU3XHViYjU5Iiw3LCJcdWJiNjJcdWJiNjQiLDcsIlx1YmI2ZCIsNF0sWyI5MjgxIiwiXHViYjcyIiwyMSwiXHViYjg5XHViYjhhXHViYjhiXHViYjhkXHViYjhlXHViYjhmXHViYjkxIiwxOCwiXHViYmE1XHViYmE2XHViYmE3XHViYmE5XHVi''@;'; put 'put ''YmFhXHViYmFiXHViYmFkIiw2LCJcdWJiYjVcdWJiYjZcdWJiYjgiLDcsIlx1YmJjMVx1YmJjMlx1YmJjM1x1YmJjNVx1YmJjNlx1YmJjN1x1YmJjOSIsNiwiXHViYmQxXHViYmQyXHViYmQ0IiwzNSwiXHViYmZhXHViYmZiXHViYmZkXHViYmZlXHViYzAxIl0sWyI5MzQxIiwiXHViYzAzIiw0''@;'; put 'put ''LCJcdWJjMGFcdWJjMGVcdWJjMTBcdWJjMTJcdWJjMTNcdWJjMTlcdWJjMWFcdWJjMjBcdWJjMjFcdWJjMjJcdWJjMjNcdWJjMjZcdWJjMjhcdWJjMmFcdWJjMmJcdWJjMmNcdWJjMmVcdWJjMmZcdWJjMzJcdWJjMzNcdWJjMzUiXSxbIjkzNjEiLCJcdWJjMzZcdWJjMzdcdWJjMzkiLDYsIlx1''@;'; put 'put ''YmM0Mlx1YmM0Nlx1YmM0N1x1YmM0OFx1YmM0YVx1YmM0Ylx1YmM0ZVx1YmM0Zlx1YmM1MSIsOF0sWyI5MzgxIiwiXHViYzVhXHViYzViXHViYzVjXHViYzVlIiwzNywiXHViYzg2XHViYzg3XHViYzg5XHViYzhhXHViYzhkXHViYzhmIiw0LCJcdWJjOTZcdWJjOThcdWJjOWIiLDQsIlx1YmNh''@;'; put 'put ''Mlx1YmNhM1x1YmNhNVx1YmNhNlx1YmNhOSIsNiwiXHViY2IyXHViY2I2Iiw1LCJcdWJjYmVcdWJjYmZcdWJjYzFcdWJjYzJcdWJjYzNcdWJjYzUiLDcsIlx1YmNjZVx1YmNkMlx1YmNkM1x1YmNkNFx1YmNkNlx1YmNkN1x1YmNkOVx1YmNkYVx1YmNkYlx1YmNkZCIsMjIsIlx1YmNmN1x1YmNm''@;'; put 'put ''OVx1YmNmYVx1YmNmYlx1YmNmZCJdLFsiOTQ0MSIsIlx1YmNmZSIsNSwiXHViZDA2XHViZDA4XHViZDBhIiw1LCJcdWJkMTFcdWJkMTJcdWJkMTNcdWJkMTUiLDhdLFsiOTQ2MSIsIlx1YmQxZSIsNSwiXHViZDI1Iiw2LCJcdWJkMmQiLDEyXSxbIjk0ODEiLCJcdWJkM2EiLDUsIlx1YmQ0MSIs''@;'; put 'put ''NiwiXHViZDRhXHViZDRiXHViZDRkXHViZDRlXHViZDRmXHViZDUxIiw2LCJcdWJkNWEiLDksIlx1YmQ2NVx1YmQ2Nlx1YmQ2N1x1YmQ2OSIsMjIsIlx1YmQ4Mlx1YmQ4M1x1YmQ4NVx1YmQ4Nlx1YmQ4YiIsNCwiXHViZDkyXHViZDk0XHViZDk2XHViZDk3XHViZDk4XHViZDliXHViZDlkIiw2''@;'; put 'put ''LCJcdWJkYTUiLDEwLCJcdWJkYjEiLDYsIlx1YmRiOSIsMjRdLFsiOTU0MSIsIlx1YmRkMlx1YmRkM1x1YmRkNlx1YmRkN1x1YmRkOVx1YmRkYVx1YmRkYlx1YmRkZCIsMTEsIlx1YmRlYSIsNSwiXHViZGYxIl0sWyI5NTYxIiwiXHViZGYyXHViZGYzXHViZGY1XHViZGY2XHViZGY3XHViZGY5''@;'; put 'put ''Iiw2LCJcdWJlMDFcdWJlMDJcdWJlMDRcdWJlMDYiLDUsIlx1YmUwZVx1YmUwZlx1YmUxMVx1YmUxMlx1YmUxMyJdLFsiOTU4MSIsIlx1YmUxNSIsNiwiXHViZTFlXHViZTIwIiwzNSwiXHViZTQ2XHViZTQ3XHViZTQ5XHViZTRhXHViZTRiXHViZTRkXHViZTRmIiw0LCJcdWJlNTZcdWJlNThc''@;'; put 'put ''dWJlNWNcdWJlNWRcdWJlNWVcdWJlNWZcdWJlNjJcdWJlNjNcdWJlNjVcdWJlNjZcdWJlNjdcdWJlNjlcdWJlNmIiLDQsIlx1YmU3Mlx1YmU3NiIsNCwiXHViZTdlXHViZTdmXHViZTgxXHViZTgyXHViZTgzXHViZTg1Iiw2LCJcdWJlOGVcdWJlOTIiLDUsIlx1YmU5YSIsMTMsIlx1YmVhOSIs''@;'; put 'put ''MTRdLFsiOTY0MSIsIlx1YmViOCIsMjMsIlx1YmVkMlx1YmVkMyJdLFsiOTY2MSIsIlx1YmVkNVx1YmVkNlx1YmVkOSIsNiwiXHViZWUxXHViZWUyXHViZWU2Iiw1LCJcdWJlZWQiLDhdLFsiOTY4MSIsIlx1YmVmNiIsMTAsIlx1YmYwMiIsNSwiXHViZjBhIiwxMywiXHViZjFhXHViZjFlIiwz''@;'; put 'put ''MywiXHViZjQyXHViZjQzXHViZjQ1XHViZjQ2XHViZjQ3XHViZjQ5Iiw2LCJcdWJmNTJcdWJmNTNcdWJmNTRcdWJmNTYiLDQ0XSxbIjk3NDEiLCJcdWJmODMiLDE2LCJcdWJmOTUiLDhdLFsiOTc2MSIsIlx1YmY5ZSIsMTcsIlx1YmZiMSIsN10sWyI5NzgxIiwiXHViZmI5IiwxMSwiXHViZmM2''@;'; put 'put ''Iiw1LCJcdWJmY2VcdWJmY2ZcdWJmZDFcdWJmZDJcdWJmZDNcdWJmZDUiLDYsIlx1YmZkZFx1YmZkZVx1YmZlMFx1YmZlMiIsODksIlx1YzAzZFx1YzAzZVx1YzAzZiJdLFsiOTg0MSIsIlx1YzA0MCIsMTYsIlx1YzA1MiIsNSwiXHVjMDU5XHVjMDVhXHVjMDViIl0sWyI5ODYxIiwiXHVjMDVk''@;'; put 'put ''XHVjMDVlXHVjMDVmXHVjMDYxIiw2LCJcdWMwNmEiLDE1XSxbIjk4ODEiLCJcdWMwN2EiLDIxLCJcdWMwOTJcdWMwOTNcdWMwOTVcdWMwOTZcdWMwOTdcdWMwOTkiLDYsIlx1YzBhMlx1YzBhNFx1YzBhNiIsNSwiXHVjMGFlXHVjMGIxXHVjMGIyXHVjMGI3Iiw0LCJcdWMwYmVcdWMwYzJcdWMw''@;'; put 'put ''YzNcdWMwYzRcdWMwYzZcdWMwYzdcdWMwY2FcdWMwY2JcdWMwY2RcdWMwY2VcdWMwY2ZcdWMwZDEiLDYsIlx1YzBkYVx1YzBkZSIsNSwiXHVjMGU2XHVjMGU3XHVjMGU5XHVjMGVhXHVjMGViXHVjMGVkIiw2LCJcdWMwZjZcdWMwZjhcdWMwZmEiLDUsIlx1YzEwMVx1YzEwMlx1YzEwM1x1YzEw''@;'; put 'put ''NVx1YzEwNlx1YzEwN1x1YzEwOSIsNiwiXHVjMTExXHVjMTEyXHVjMTEzXHVjMTE0XHVjMTE2Iiw1LCJcdWMxMjFcdWMxMjJcdWMxMjVcdWMxMjhcdWMxMjlcdWMxMmFcdWMxMmJcdWMxMmUiXSxbIjk5NDEiLCJcdWMxMzJcdWMxMzNcdWMxMzRcdWMxMzVcdWMxMzdcdWMxM2FcdWMxM2JcdWMx''@;'; put 'put ''M2RcdWMxM2VcdWMxM2ZcdWMxNDEiLDYsIlx1YzE0YVx1YzE0ZSIsNSwiXHVjMTU2XHVjMTU3Il0sWyI5OTYxIiwiXHVjMTU5XHVjMTVhXHVjMTViXHVjMTVkIiw2LCJcdWMxNjZcdWMxNmEiLDUsIlx1YzE3MVx1YzE3Mlx1YzE3M1x1YzE3NVx1YzE3Nlx1YzE3N1x1YzE3OVx1YzE3YVx1YzE3''@;'; put 'put ''YiJdLFsiOTk4MSIsIlx1YzE3YyIsOCwiXHVjMTg2Iiw1LCJcdWMxOGZcdWMxOTFcdWMxOTJcdWMxOTNcdWMxOTVcdWMxOTciLDQsIlx1YzE5ZVx1YzFhMFx1YzFhMlx1YzFhM1x1YzFhNFx1YzFhNlx1YzFhN1x1YzFhYVx1YzFhYlx1YzFhZFx1YzFhZVx1YzFhZlx1YzFiMSIsMTEsIlx1YzFi''@;'; put 'put ''ZSIsNSwiXHVjMWM1XHVjMWM2XHVjMWM3XHVjMWM5XHVjMWNhXHVjMWNiXHVjMWNkIiw2LCJcdWMxZDVcdWMxZDZcdWMxZDkiLDYsIlx1YzFlMVx1YzFlMlx1YzFlM1x1YzFlNVx1YzFlNlx1YzFlN1x1YzFlOSIsNiwiXHVjMWYyXHVjMWY0Iiw3LCJcdWMxZmVcdWMxZmZcdWMyMDFcdWMyMDJc''@;'; put 'put ''dWMyMDNcdWMyMDUiLDYsIlx1YzIwZVx1YzIxMFx1YzIxMiIsNSwiXHVjMjFhXHVjMjFiXHVjMjFkXHVjMjFlXHVjMjIxXHVjMjIyXHVjMjIzIl0sWyI5YTQxIiwiXHVjMjI0XHVjMjI1XHVjMjI2XHVjMjI3XHVjMjJhXHVjMjJjXHVjMjJlXHVjMjMwXHVjMjMzXHVjMjM1IiwxNl0sWyI5YTYx''@;'; put 'put ''IiwiXHVjMjQ2XHVjMjQ3XHVjMjQ5Iiw2LCJcdWMyNTJcdWMyNTNcdWMyNTVcdWMyNTZcdWMyNTdcdWMyNTkiLDYsIlx1YzI2MVx1YzI2Mlx1YzI2M1x1YzI2NFx1YzI2NiJdLFsiOWE4MSIsIlx1YzI2NyIsNCwiXHVjMjZlXHVjMjZmXHVjMjcxXHVjMjcyXHVjMjczXHVjMjc1Iiw2LCJcdWMy''@;'; put 'put ''N2VcdWMyODBcdWMyODIiLDUsIlx1YzI4YSIsNSwiXHVjMjkxIiw2LCJcdWMyOTlcdWMyOWFcdWMyOWNcdWMyOWUiLDUsIlx1YzJhNlx1YzJhN1x1YzJhOVx1YzJhYVx1YzJhYlx1YzJhZSIsNSwiXHVjMmI2XHVjMmI4XHVjMmJhIiwzMywiXHVjMmRlXHVjMmRmXHVjMmUxXHVjMmUyXHVjMmU1''@;'; put 'put ''Iiw1LCJcdWMyZWVcdWMyZjBcdWMyZjJcdWMyZjNcdWMyZjRcdWMyZjVcdWMyZjdcdWMyZmFcdWMyZmRcdWMyZmVcdWMyZmZcdWMzMDEiLDYsIlx1YzMwYVx1YzMwYlx1YzMwZVx1YzMwZiJdLFsiOWI0MSIsIlx1YzMxMFx1YzMxMVx1YzMxMlx1YzMxNlx1YzMxN1x1YzMxOVx1YzMxYVx1YzMx''@;'; put 'put ''Ylx1YzMxZCIsNiwiXHVjMzI2XHVjMzI3XHVjMzJhIiw4XSxbIjliNjEiLCJcdWMzMzMiLDE3LCJcdWMzNDYiLDddLFsiOWI4MSIsIlx1YzM0ZSIsMjUsIlx1YzM2YVx1YzM2Ylx1YzM2ZFx1YzM2ZVx1YzM2Zlx1YzM3MVx1YzM3MyIsNCwiXHVjMzdhXHVjMzdiXHVjMzdlIiw1LCJcdWMzODVc''@;'; put 'put ''dWMzODZcdWMzODdcdWMzODlcdWMzOGFcdWMzOGJcdWMzOGQiLDUwLCJcdWMzYzEiLDIyLCJcdWMzZGEiXSxbIjljNDEiLCJcdWMzZGJcdWMzZGRcdWMzZGVcdWMzZTFcdWMzZTMiLDQsIlx1YzNlYVx1YzNlYlx1YzNlY1x1YzNlZSIsNSwiXHVjM2Y2XHVjM2Y3XHVjM2Y5Iiw1XSxbIjljNjEi''@;'; put 'put ''LCJcdWMzZmYiLDgsIlx1YzQwOSIsNiwiXHVjNDExIiw5XSxbIjljODEiLCJcdWM0MWIiLDgsIlx1YzQyNSIsNiwiXHVjNDJkXHVjNDJlXHVjNDJmXHVjNDMxXHVjNDMyXHVjNDMzXHVjNDM1Iiw2LCJcdWM0M2UiLDksIlx1YzQ0OSIsMjYsIlx1YzQ2Nlx1YzQ2N1x1YzQ2OVx1YzQ2YVx1YzQ2''@;'; put 'put ''Ylx1YzQ2ZCIsNiwiXHVjNDc2XHVjNDc3XHVjNDc4XHVjNDdhIiw1LCJcdWM0ODEiLDE4LCJcdWM0OTUiLDYsIlx1YzQ5ZCIsMTJdLFsiOWQ0MSIsIlx1YzRhYSIsMTMsIlx1YzRiOVx1YzRiYVx1YzRiYlx1YzRiZCIsOF0sWyI5ZDYxIiwiXHVjNGM2IiwyNV0sWyI5ZDgxIiwiXHVjNGUwIiw4''@;'; put 'put ''LCJcdWM0ZWEiLDUsIlx1YzRmMlx1YzRmM1x1YzRmNVx1YzRmNlx1YzRmN1x1YzRmOVx1YzRmYlx1YzRmY1x1YzRmZFx1YzRmZVx1YzUwMiIsOSwiXHVjNTBkXHVjNTBlXHVjNTBmXHVjNTExXHVjNTEyXHVjNTEzXHVjNTE1Iiw2LCJcdWM1MWQiLDEwLCJcdWM1MmFcdWM1MmJcdWM1MmRcdWM1''@;'; put 'put ''MmVcdWM1MmZcdWM1MzEiLDYsIlx1YzUzYVx1YzUzY1x1YzUzZSIsNSwiXHVjNTQ2XHVjNTQ3XHVjNTRiXHVjNTRmXHVjNTUwXHVjNTUxXHVjNTUyXHVjNTU2XHVjNTVhXHVjNTViXHVjNTVjXHVjNTVmXHVjNTYyXHVjNTYzXHVjNTY1XHVjNTY2XHVjNTY3XHVjNTY5Iiw2LCJcdWM1NzJcdWM1''@;'; put 'put ''NzYiLDUsIlx1YzU3ZVx1YzU3Zlx1YzU4MVx1YzU4Mlx1YzU4M1x1YzU4NVx1YzU4Nlx1YzU4OFx1YzU4OVx1YzU4YVx1YzU4Ylx1YzU4ZVx1YzU5MFx1YzU5Mlx1YzU5M1x1YzU5NCJdLFsiOWU0MSIsIlx1YzU5Nlx1YzU5OVx1YzU5YVx1YzU5Ylx1YzU5ZFx1YzU5ZVx1YzU5Zlx1YzVhMSIs''@;'; put 'put ''NywiXHVjNWFhIiw5LCJcdWM1YjYiXSxbIjllNjEiLCJcdWM1YjdcdWM1YmFcdWM1YmYiLDQsIlx1YzVjYlx1YzVjZFx1YzVjZlx1YzVkMlx1YzVkM1x1YzVkNVx1YzVkNlx1YzVkN1x1YzVkOSIsNiwiXHVjNWUyXHVjNWU0XHVjNWU2XHVjNWU3Il0sWyI5ZTgxIiwiXHVjNWU4XHVjNWU5XHVj''@;'; put 'put ''NWVhXHVjNWViXHVjNWVmXHVjNWYxXHVjNWYyXHVjNWYzXHVjNWY1XHVjNWY4XHVjNWY5XHVjNWZhXHVjNWZiXHVjNjAyXHVjNjAzXHVjNjA0XHVjNjA5XHVjNjBhXHVjNjBiXHVjNjBkXHVjNjBlXHVjNjBmXHVjNjExIiw2LCJcdWM2MWFcdWM2MWQiLDYsIlx1YzYyNlx1YzYyN1x1YzYyOVx1''@;'; put 'put ''YzYyYVx1YzYyYlx1YzYyZlx1YzYzMVx1YzYzMlx1YzYzNlx1YzYzOFx1YzYzYVx1YzYzY1x1YzYzZFx1YzYzZVx1YzYzZlx1YzY0Mlx1YzY0M1x1YzY0NVx1YzY0Nlx1YzY0N1x1YzY0OSIsNiwiXHVjNjUyXHVjNjU2Iiw1LCJcdWM2NWVcdWM2NWZcdWM2NjEiLDEwLCJcdWM2NmRcdWM2NmVc''@;'; put 'put ''dWM2NzBcdWM2NzIiLDUsIlx1YzY3YVx1YzY3Ylx1YzY3ZFx1YzY3ZVx1YzY3Zlx1YzY4MSIsNiwiXHVjNjhhXHVjNjhjXHVjNjhlIiw1LCJcdWM2OTZcdWM2OTdcdWM2OTlcdWM2OWFcdWM2OWJcdWM2OWQiLDYsIlx1YzZhNiJdLFsiOWY0MSIsIlx1YzZhOFx1YzZhYSIsNSwiXHVjNmIyXHVj''@;'; put 'put ''NmIzXHVjNmI1XHVjNmI2XHVjNmI3XHVjNmJiIiw0LCJcdWM2YzJcdWM2YzRcdWM2YzYiLDUsIlx1YzZjZSJdLFsiOWY2MSIsIlx1YzZjZlx1YzZkMVx1YzZkMlx1YzZkM1x1YzZkNSIsNiwiXHVjNmRlXHVjNmRmXHVjNmUyIiw1LCJcdWM2ZWFcdWM2ZWJcdWM2ZWRcdWM2ZWVcdWM2ZWZcdWM2''@;'; put 'put ''ZjFcdWM2ZjIiXSxbIjlmODEiLCJcdWM2ZjMiLDQsIlx1YzZmYVx1YzZmYlx1YzZmY1x1YzZmZSIsNSwiXHVjNzA2XHVjNzA3XHVjNzA5XHVjNzBhXHVjNzBiXHVjNzBkIiw2LCJcdWM3MTZcdWM3MThcdWM3MWEiLDUsIlx1YzcyMlx1YzcyM1x1YzcyNVx1YzcyNlx1YzcyN1x1YzcyOSIsNiwi''@;'; put 'put ''XHVjNzMyXHVjNzM0XHVjNzM2XHVjNzM4XHVjNzM5XHVjNzNhXHVjNzNiXHVjNzNlXHVjNzNmXHVjNzQxXHVjNzQyXHVjNzQzXHVjNzQ1Iiw0LCJcdWM3NGJcdWM3NGVcdWM3NTBcdWM3NTlcdWM3NWFcdWM3NWJcdWM3NWRcdWM3NWVcdWM3NWZcdWM3NjEiLDYsIlx1Yzc2OVx1Yzc2YVx1Yzc2''@;'; put 'put ''YyIsNywiXHVjNzc2XHVjNzc3XHVjNzc5XHVjNzdhXHVjNzdiXHVjNzdmXHVjNzgwXHVjNzgxXHVjNzgyXHVjNzg2XHVjNzhiXHVjNzhjXHVjNzhkXHVjNzhmXHVjNzkyXHVjNzkzXHVjNzk1XHVjNzk5XHVjNzliIiw0LCJcdWM3YTJcdWM3YTciLDQsIlx1YzdhZVx1YzdhZlx1YzdiMVx1Yzdi''@;'; put 'put ''Mlx1YzdiM1x1YzdiNVx1YzdiNlx1YzdiNyJdLFsiYTA0MSIsIlx1YzdiOFx1YzdiOVx1YzdiYVx1YzdiYlx1YzdiZVx1YzdjMiIsNSwiXHVjN2NhXHVjN2NiXHVjN2NkXHVjN2NmXHVjN2QxIiw2LCJcdWM3ZDlcdWM3ZGFcdWM3ZGJcdWM3ZGMiXSxbImEwNjEiLCJcdWM3ZGUiLDUsIlx1Yzdl''@;'; put 'put ''NVx1YzdlNlx1YzdlN1x1YzdlOVx1YzdlYVx1YzdlYlx1YzdlZCIsMTNdLFsiYTA4MSIsIlx1YzdmYiIsNCwiXHVjODAyXHVjODAzXHVjODA1XHVjODA2XHVjODA3XHVjODA5XHVjODBiIiw0LCJcdWM4MTJcdWM4MTRcdWM4MTciLDQsIlx1YzgxZVx1YzgxZlx1YzgyMVx1YzgyMlx1YzgyM1x1''@;'; put 'put ''YzgyNSIsNiwiXHVjODJlXHVjODMwXHVjODMyIiw1LCJcdWM4MzlcdWM4M2FcdWM4M2JcdWM4M2RcdWM4M2VcdWM4M2ZcdWM4NDEiLDYsIlx1Yzg0YVx1Yzg0Ylx1Yzg0ZSIsNSwiXHVjODU1IiwyNiwiXHVjODcyXHVjODczXHVjODc1XHVjODc2XHVjODc3XHVjODc5XHVjODdiIiw0LCJcdWM4''@;'; put 'put ''ODJcdWM4ODRcdWM4ODhcdWM4ODlcdWM4OGFcdWM4OGUiLDUsIlx1Yzg5NSIsNywiXHVjODllXHVjOGEwXHVjOGEyXHVjOGEzXHVjOGE0Il0sWyJhMTQxIiwiXHVjOGE1XHVjOGE2XHVjOGE3XHVjOGE5IiwxOCwiXHVjOGJlXHVjOGJmXHVjOGMwXHVjOGMxIl0sWyJhMTYxIiwiXHVjOGMyXHVj''@;'; put 'put ''OGMzXHVjOGM1XHVjOGM2XHVjOGM3XHVjOGM5XHVjOGNhXHVjOGNiXHVjOGNkIiw2LCJcdWM4ZDZcdWM4ZDhcdWM4ZGEiLDUsIlx1YzhlMlx1YzhlM1x1YzhlNSJdLFsiYTE4MSIsIlx1YzhlNiIsMTQsIlx1YzhmNiIsNSwiXHVjOGZlXHVjOGZmXHVjOTAxXHVjOTAyXHVjOTAzXHVjOTA3Iiw0''@;'; put 'put ''LCJcdWM5MGVcdTMwMDBcdTMwMDFcdTMwMDJceGI3XHUyMDI1XHUyMDI2XHhhOFx1MzAwM1x4YWRcdTIwMTVcdTIyMjVcdWZmM2NcdTIyM2NcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTMwMTRcdTMwMTVcdTMwMDgiLDksIlx4YjFceGQ3XHhmN1x1MjI2MFx1MjI2NFx1MjI2NVx1MjIxZVx1''@;'; put 'put ''MjIzNFx4YjBcdTIwMzJcdTIwMzNcdTIxMDNcdTIxMmJcdWZmZTBcdWZmZTFcdWZmZTVcdTI2NDJcdTI2NDBcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJceGE3XHUyMDNiXHUyNjA2XHUyNjA1XHUyNWNiXHUyNWNmXHUyNWNlXHUyNWM3XHUyNWM2XHUyNWExXHUy''@;'; put 'put ''NWEwXHUyNWIzXHUyNWIyXHUyNWJkXHUyNWJjXHUyMTkyXHUyMTkwXHUyMTkxXHUyMTkzXHUyMTk0XHUzMDEzXHUyMjZhXHUyMjZiXHUyMjFhXHUyMjNkXHUyMjFkXHUyMjM1XHUyMjJiXHUyMjJjXHUyMjA4XHUyMjBiXHUyMjg2XHUyMjg3XHUyMjgyXHUyMjgzXHUyMjJhXHUyMjI5XHUyMjI3''@;'; put 'put ''XHUyMjI4XHVmZmUyIl0sWyJhMjQxIiwiXHVjOTEwXHVjOTEyIiw1LCJcdWM5MTkiLDE4XSxbImEyNjEiLCJcdWM5MmQiLDYsIlx1YzkzNSIsMThdLFsiYTI4MSIsIlx1Yzk0OCIsNywiXHVjOTUyXHVjOTUzXHVjOTU1XHVjOTU2XHVjOTU3XHVjOTU5Iiw2LCJcdWM5NjJcdWM5NjQiLDcsIlx1''@;'; put 'put ''Yzk2ZFx1Yzk2ZVx1Yzk2Zlx1MjFkMlx1MjFkNFx1MjIwMFx1MjIwM1x4YjRcdWZmNWVcdTAyYzdcdTAyZDhcdTAyZGRcdTAyZGFcdTAyZDlceGI4XHUwMmRiXHhhMVx4YmZcdTAyZDBcdTIyMmVcdTIyMTFcdTIyMGZceGE0XHUyMTA5XHUyMDMwXHUyNWMxXHUyNWMwXHUyNWI3XHUyNWI2XHUy''@;'; put 'put ''NjY0XHUyNjYwXHUyNjYxXHUyNjY1XHUyNjY3XHUyNjYzXHUyMjk5XHUyNWM4XHUyNWEzXHUyNWQwXHUyNWQxXHUyNTkyXHUyNWE0XHUyNWE1XHUyNWE4XHUyNWE3XHUyNWE2XHUyNWE5XHUyNjY4XHUyNjBmXHUyNjBlXHUyNjFjXHUyNjFlXHhiNlx1MjAyMFx1MjAyMVx1MjE5NVx1MjE5N1x1''@;'; put 'put ''MjE5OVx1MjE5Nlx1MjE5OFx1MjY2ZFx1MjY2OVx1MjY2YVx1MjY2Y1x1MzI3Zlx1MzIxY1x1MjExNlx1MzNjN1x1MjEyMlx1MzNjMlx1MzNkOFx1MjEyMVx1MjBhY1x4YWUiXSxbImEzNDEiLCJcdWM5NzFcdWM5NzJcdWM5NzNcdWM5NzUiLDYsIlx1Yzk3ZCIsMTAsIlx1Yzk4YVx1Yzk4Ylx1''@;'; put 'put ''Yzk4ZFx1Yzk4ZVx1Yzk4ZiJdLFsiYTM2MSIsIlx1Yzk5MSIsNiwiXHVjOTlhXHVjOTljXHVjOTllIiwxNl0sWyJhMzgxIiwiXHVjOWFmIiwxNiwiXHVjOWMyXHVjOWMzXHVjOWM1XHVjOWM2XHVjOWM5XHVjOWNiIiw0LCJcdWM5ZDJcdWM5ZDRcdWM5ZDdcdWM5ZDhcdWM5ZGJcdWZmMDEiLDU4''@;'; put 'put ''LCJcdWZmZTZcdWZmM2QiLDMyLCJcdWZmZTMiXSxbImE0NDEiLCJcdWM5ZGVcdWM5ZGZcdWM5ZTFcdWM5ZTNcdWM5ZTVcdWM5ZTZcdWM5ZThcdWM5ZTlcdWM5ZWFcdWM5ZWJcdWM5ZWVcdWM5ZjIiLDUsIlx1YzlmYVx1YzlmYlx1YzlmZFx1YzlmZVx1YzlmZlx1Y2EwMVx1Y2EwMlx1Y2EwM1x1''@;'; put 'put ''Y2EwNCJdLFsiYTQ2MSIsIlx1Y2EwNVx1Y2EwNlx1Y2EwN1x1Y2EwYVx1Y2EwZSIsNSwiXHVjYTE1XHVjYTE2XHVjYTE3XHVjYTE5IiwxMl0sWyJhNDgxIiwiXHVjYTI2XHVjYTI3XHVjYTI4XHVjYTJhIiwyOCwiXHUzMTMxIiw5M10sWyJhNTQxIiwiXHVjYTQ3Iiw0LCJcdWNhNGVcdWNhNGZc''@;'; put 'put ''dWNhNTFcdWNhNTJcdWNhNTNcdWNhNTUiLDYsIlx1Y2E1ZVx1Y2E2MiIsNSwiXHVjYTY5XHVjYTZhIl0sWyJhNTYxIiwiXHVjYTZiIiwxNywiXHVjYTdlIiw1LCJcdWNhODVcdWNhODYiXSxbImE1ODEiLCJcdWNhODciLDE2LCJcdWNhOTkiLDE0LCJcdTIxNzAiLDldLFsiYTViMCIsIlx1MjE2''@;'; put 'put ''MCIsOV0sWyJhNWMxIiwiXHUwMzkxIiwxNiwiXHUwM2EzIiw2XSxbImE1ZTEiLCJcdTAzYjEiLDE2LCJcdTAzYzMiLDZdLFsiYTY0MSIsIlx1Y2FhOCIsMTksIlx1Y2FiZVx1Y2FiZlx1Y2FjMVx1Y2FjMlx1Y2FjM1x1Y2FjNSJdLFsiYTY2MSIsIlx1Y2FjNiIsNSwiXHVjYWNlXHVjYWQwXHVj''@;'; put 'put ''YWQyXHVjYWQ0XHVjYWQ1XHVjYWQ2XHVjYWQ3XHVjYWRhIiw1LCJcdWNhZTEiLDZdLFsiYTY4MSIsIlx1Y2FlOFx1Y2FlOVx1Y2FlYVx1Y2FlYlx1Y2FlZCIsNiwiXHVjYWY1IiwxOCwiXHVjYjA5XHVjYjBhXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE4XHUyNTE0XHUyNTFjXHUyNTJj''@;'; put 'put ''XHUyNTI0XHUyNTM0XHUyNTNjXHUyNTAxXHUyNTAzXHUyNTBmXHUyNTEzXHUyNTFiXHUyNTE3XHUyNTIzXHUyNTMzXHUyNTJiXHUyNTNiXHUyNTRiXHUyNTIwXHUyNTJmXHUyNTI4XHUyNTM3XHUyNTNmXHUyNTFkXHUyNTMwXHUyNTI1XHUyNTM4XHUyNTQyXHUyNTEyXHUyNTExXHUyNTFhXHUy''@;'; put 'put ''NTE5XHUyNTE2XHUyNTE1XHUyNTBlXHUyNTBkXHUyNTFlXHUyNTFmXHUyNTIxXHUyNTIyXHUyNTI2XHUyNTI3XHUyNTI5XHUyNTJhXHUyNTJkXHUyNTJlXHUyNTMxXHUyNTMyXHUyNTM1XHUyNTM2XHUyNTM5XHUyNTNhXHUyNTNkXHUyNTNlXHUyNTQwXHUyNTQxXHUyNTQzIiw3XSxbImE3NDEi''@;'; put 'put ''LCJcdWNiMGIiLDQsIlx1Y2IxMVx1Y2IxMlx1Y2IxM1x1Y2IxNVx1Y2IxNlx1Y2IxN1x1Y2IxOSIsNiwiXHVjYjIyIiw3XSxbImE3NjEiLCJcdWNiMmEiLDIyLCJcdWNiNDJcdWNiNDNcdWNiNDQiXSxbImE3ODEiLCJcdWNiNDVcdWNiNDZcdWNiNDdcdWNiNGFcdWNiNGJcdWNiNGRcdWNiNGVc''@;'; put 'put ''dWNiNGZcdWNiNTEiLDYsIlx1Y2I1YVx1Y2I1Ylx1Y2I1Y1x1Y2I1ZSIsNSwiXHVjYjY1Iiw3LCJcdTMzOTVcdTMzOTZcdTMzOTdcdTIxMTNcdTMzOThcdTMzYzRcdTMzYTNcdTMzYTRcdTMzYTVcdTMzYTZcdTMzOTkiLDksIlx1MzNjYVx1MzM4ZFx1MzM4ZVx1MzM4Zlx1MzNjZlx1MzM4OFx1''@;'; put 'put ''MzM4OVx1MzNjOFx1MzNhN1x1MzNhOFx1MzNiMCIsOSwiXHUzMzgwIiw0LCJcdTMzYmEiLDUsIlx1MzM5MCIsNCwiXHUyMTI2XHUzM2MwXHUzM2MxXHUzMzhhXHUzMzhiXHUzMzhjXHUzM2Q2XHUzM2M1XHUzM2FkXHUzM2FlXHUzM2FmXHUzM2RiXHUzM2E5XHUzM2FhXHUzM2FiXHUzM2FjXHUz''@;'; put 'put ''M2RkXHUzM2QwXHUzM2QzXHUzM2MzXHUzM2M5XHUzM2RjXHUzM2M2Il0sWyJhODQxIiwiXHVjYjZkIiwxMCwiXHVjYjdhIiwxNF0sWyJhODYxIiwiXHVjYjg5IiwxOCwiXHVjYjlkIiw2XSxbImE4ODEiLCJcdWNiYTQiLDE5LCJcdWNiYjkiLDExLCJceGM2XHhkMFx4YWFcdTAxMjYiXSxbImE4''@;'; put 'put ''YTYiLCJcdTAxMzIiXSxbImE4YTgiLCJcdTAxM2ZcdTAxNDFceGQ4XHUwMTUyXHhiYVx4ZGVcdTAxNjZcdTAxNGEiXSxbImE4YjEiLCJcdTMyNjAiLDI3LCJcdTI0ZDAiLDI1LCJcdTI0NjAiLDE0LCJceGJkXHUyMTUzXHUyMTU0XHhiY1x4YmVcdTIxNWJcdTIxNWNcdTIxNWRcdTIxNWUiXSxb''@;'; put 'put ''ImE5NDEiLCJcdWNiYzUiLDE0LCJcdWNiZDUiLDEwXSxbImE5NjEiLCJcdWNiZTBcdWNiZTFcdWNiZTJcdWNiZTNcdWNiZTVcdWNiZTZcdWNiZThcdWNiZWEiLDE4XSxbImE5ODEiLCJcdWNiZmQiLDE0LCJcdWNjMGVcdWNjMGZcdWNjMTFcdWNjMTJcdWNjMTNcdWNjMTUiLDYsIlx1Y2MxZVx1''@;'; put 'put ''Y2MxZlx1Y2MyMFx1Y2MyM1x1Y2MyNFx4ZTZcdTAxMTFceGYwXHUwMTI3XHUwMTMxXHUwMTMzXHUwMTM4XHUwMTQwXHUwMTQyXHhmOFx1MDE1M1x4ZGZceGZlXHUwMTY3XHUwMTRiXHUwMTQ5XHUzMjAwIiwyNywiXHUyNDljIiwyNSwiXHUyNDc0IiwxNCwiXHhiOVx4YjJceGIzXHUyMDc0XHUy''@;'; put 'put ''MDdmXHUyMDgxXHUyMDgyXHUyMDgzXHUyMDg0Il0sWyJhYTQxIiwiXHVjYzI1XHVjYzI2XHVjYzJhXHVjYzJiXHVjYzJkXHVjYzJmXHVjYzMxIiw2LCJcdWNjM2FcdWNjM2YiLDQsIlx1Y2M0Nlx1Y2M0N1x1Y2M0OVx1Y2M0YVx1Y2M0Ylx1Y2M0ZFx1Y2M0ZSJdLFsiYWE2MSIsIlx1Y2M0ZiIs''@;'; put 'put ''NCwiXHVjYzU2XHVjYzVhIiw1LCJcdWNjNjFcdWNjNjJcdWNjNjNcdWNjNjVcdWNjNjdcdWNjNjkiLDYsIlx1Y2M3MVx1Y2M3MiJdLFsiYWE4MSIsIlx1Y2M3M1x1Y2M3NFx1Y2M3NiIsMjksIlx1MzA0MSIsODJdLFsiYWI0MSIsIlx1Y2M5NFx1Y2M5NVx1Y2M5Nlx1Y2M5N1x1Y2M5YVx1Y2M5''@;'; put 'put ''Ylx1Y2M5ZFx1Y2M5ZVx1Y2M5Zlx1Y2NhMSIsNiwiXHVjY2FhXHVjY2FlIiw1LCJcdWNjYjZcdWNjYjdcdWNjYjkiXSxbImFiNjEiLCJcdWNjYmFcdWNjYmJcdWNjYmQiLDYsIlx1Y2NjNlx1Y2NjOFx1Y2NjYSIsNSwiXHVjY2QxXHVjY2QyXHVjY2QzXHVjY2Q1Iiw1XSxbImFiODEiLCJcdWNj''@;'; put 'put ''ZGIiLDgsIlx1Y2NlNSIsNiwiXHVjY2VkXHVjY2VlXHVjY2VmXHVjY2YxIiwxMiwiXHUzMGExIiw4NV0sWyJhYzQxIiwiXHVjY2ZlXHVjY2ZmXHVjZDAwXHVjZDAyIiw1LCJcdWNkMGFcdWNkMGJcdWNkMGRcdWNkMGVcdWNkMGZcdWNkMTEiLDYsIlx1Y2QxYVx1Y2QxY1x1Y2QxZVx1Y2QxZlx1''@;'; put 'put ''Y2QyMCJdLFsiYWM2MSIsIlx1Y2QyMVx1Y2QyMlx1Y2QyM1x1Y2QyNVx1Y2QyNlx1Y2QyN1x1Y2QyOVx1Y2QyYVx1Y2QyYlx1Y2QyZCIsMTEsIlx1Y2QzYSIsNF0sWyJhYzgxIiwiXHVjZDNmIiwyOCwiXHVjZDVkXHVjZDVlXHVjZDVmXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbImFj''@;'; put 'put ''ZDEiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsMjVdLFsiYWQ0MSIsIlx1Y2Q2MVx1Y2Q2Mlx1Y2Q2M1x1Y2Q2NSIsNiwiXHVjZDZlXHVjZDcwXHVjZDcyIiw1LCJcdWNkNzkiLDddLFsiYWQ2MSIsIlx1Y2Q4MSIsNiwiXHVjZDg5IiwxMCwiXHVjZDk2XHVjZDk3XHVjZDk5XHVjZDlhXHVj''@;'; put 'put ''ZDliXHVjZDlkXHVjZDllXHVjZDlmIl0sWyJhZDgxIiwiXHVjZGEwXHVjZGExXHVjZGEyXHVjZGEzXHVjZGE2XHVjZGE4XHVjZGFhIiw1LCJcdWNkYjEiLDE4LCJcdWNkYzUiXSxbImFlNDEiLCJcdWNkYzYiLDUsIlx1Y2RjZFx1Y2RjZVx1Y2RjZlx1Y2RkMSIsMTZdLFsiYWU2MSIsIlx1Y2Rl''@;'; put 'put ''MiIsNSwiXHVjZGU5XHVjZGVhXHVjZGViXHVjZGVkXHVjZGVlXHVjZGVmXHVjZGYxIiw2LCJcdWNkZmFcdWNkZmNcdWNkZmUiLDRdLFsiYWU4MSIsIlx1Y2UwM1x1Y2UwNVx1Y2UwNlx1Y2UwN1x1Y2UwOVx1Y2UwYVx1Y2UwYlx1Y2UwZCIsNiwiXHVjZTE1XHVjZTE2XHVjZTE3XHVjZTE4XHVj''@;'; put 'put ''ZTFhIiw1LCJcdWNlMjJcdWNlMjNcdWNlMjVcdWNlMjZcdWNlMjdcdWNlMjlcdWNlMmFcdWNlMmIiXSxbImFmNDEiLCJcdWNlMmNcdWNlMmRcdWNlMmVcdWNlMmZcdWNlMzJcdWNlMzRcdWNlMzYiLDE5XSxbImFmNjEiLCJcdWNlNGEiLDEzLCJcdWNlNWFcdWNlNWJcdWNlNWRcdWNlNWVcdWNl''@;'; put 'put ''NjIiLDUsIlx1Y2U2YVx1Y2U2YyJdLFsiYWY4MSIsIlx1Y2U2ZSIsNSwiXHVjZTc2XHVjZTc3XHVjZTc5XHVjZTdhXHVjZTdiXHVjZTdkIiw2LCJcdWNlODZcdWNlODhcdWNlOGEiLDUsIlx1Y2U5Mlx1Y2U5M1x1Y2U5NVx1Y2U5Nlx1Y2U5N1x1Y2U5OSJdLFsiYjA0MSIsIlx1Y2U5YSIsNSwi''@;'; put 'put ''XHVjZWEyXHVjZWE2Iiw1LCJcdWNlYWUiLDEyXSxbImIwNjEiLCJcdWNlYmIiLDUsIlx1Y2VjMiIsMTldLFsiYjA4MSIsIlx1Y2VkNiIsMTMsIlx1Y2VlNlx1Y2VlN1x1Y2VlOVx1Y2VlYVx1Y2VlZCIsNiwiXHVjZWY2XHVjZWZhIiw1LCJcdWFjMDBcdWFjMDFcdWFjMDRcdWFjMDdcdWFjMDhc''@;'; put 'put ''dWFjMDlcdWFjMGFcdWFjMTAiLDcsIlx1YWMxOSIsNCwiXHVhYzIwXHVhYzI0XHVhYzJjXHVhYzJkXHVhYzJmXHVhYzMwXHVhYzMxXHVhYzM4XHVhYzM5XHVhYzNjXHVhYzQwXHVhYzRiXHVhYzRkXHVhYzU0XHVhYzU4XHVhYzVjXHVhYzcwXHVhYzcxXHVhYzc0XHVhYzc3XHVhYzc4XHVhYzdh''@;'; put 'put ''XHVhYzgwXHVhYzgxXHVhYzgzXHVhYzg0XHVhYzg1XHVhYzg2XHVhYzg5XHVhYzhhXHVhYzhiXHVhYzhjXHVhYzkwXHVhYzk0XHVhYzljXHVhYzlkXHVhYzlmXHVhY2EwXHVhY2ExXHVhY2E4XHVhY2E5XHVhY2FhXHVhY2FjXHVhY2FmXHVhY2IwXHVhY2I4XHVhY2I5XHVhY2JiXHVhY2JjXHVh''@;'; put 'put ''Y2JkXHVhY2MxXHVhY2M0XHVhY2M4XHVhY2NjXHVhY2Q1XHVhY2Q3XHVhY2UwXHVhY2UxXHVhY2U0XHVhY2U3XHVhY2U4XHVhY2VhXHVhY2VjXHVhY2VmXHVhY2YwXHVhY2YxXHVhY2YzXHVhY2Y1XHVhY2Y2XHVhY2ZjXHVhY2ZkXHVhZDAwXHVhZDA0XHVhZDA2Il0sWyJiMTQxIiwiXHVjZjAy''@;'; put 'put ''XHVjZjAzXHVjZjA1XHVjZjA2XHVjZjA3XHVjZjA5Iiw2LCJcdWNmMTJcdWNmMTRcdWNmMTYiLDUsIlx1Y2YxZFx1Y2YxZVx1Y2YxZlx1Y2YyMVx1Y2YyMlx1Y2YyMyJdLFsiYjE2MSIsIlx1Y2YyNSIsNiwiXHVjZjJlXHVjZjMyIiw1LCJcdWNmMzkiLDExXSxbImIxODEiLCJcdWNmNDUiLDE0''@;'; put 'put ''LCJcdWNmNTZcdWNmNTdcdWNmNTlcdWNmNWFcdWNmNWJcdWNmNWQiLDYsIlx1Y2Y2Nlx1Y2Y2OFx1Y2Y2YVx1Y2Y2Ylx1Y2Y2Y1x1YWQwY1x1YWQwZFx1YWQwZlx1YWQxMVx1YWQxOFx1YWQxY1x1YWQyMFx1YWQyOVx1YWQyY1x1YWQyZFx1YWQzNFx1YWQzNVx1YWQzOFx1YWQzY1x1YWQ0NFx1''@;'; put 'put ''YWQ0NVx1YWQ0N1x1YWQ0OVx1YWQ1MFx1YWQ1NFx1YWQ1OFx1YWQ2MVx1YWQ2M1x1YWQ2Y1x1YWQ2ZFx1YWQ3MFx1YWQ3M1x1YWQ3NFx1YWQ3NVx1YWQ3Nlx1YWQ3Ylx1YWQ3Y1x1YWQ3ZFx1YWQ3Zlx1YWQ4MVx1YWQ4Mlx1YWQ4OFx1YWQ4OVx1YWQ4Y1x1YWQ5MFx1YWQ5Y1x1YWQ5ZFx1YWRh''@;'; put 'put ''NFx1YWRiN1x1YWRjMFx1YWRjMVx1YWRjNFx1YWRjOFx1YWRkMFx1YWRkMVx1YWRkM1x1YWRkY1x1YWRlMFx1YWRlNFx1YWRmOFx1YWRmOVx1YWRmY1x1YWRmZlx1YWUwMFx1YWUwMVx1YWUwOFx1YWUwOVx1YWUwYlx1YWUwZFx1YWUxNFx1YWUzMFx1YWUzMVx1YWUzNFx1YWUzN1x1YWUzOFx1''@;'; put 'put ''YWUzYVx1YWU0MFx1YWU0MVx1YWU0M1x1YWU0NVx1YWU0Nlx1YWU0YVx1YWU0Y1x1YWU0ZFx1YWU0ZVx1YWU1MFx1YWU1NFx1YWU1Nlx1YWU1Y1x1YWU1ZFx1YWU1Zlx1YWU2MFx1YWU2MVx1YWU2NVx1YWU2OFx1YWU2OVx1YWU2Y1x1YWU3MFx1YWU3OCJdLFsiYjI0MSIsIlx1Y2Y2ZFx1Y2Y2''@;'; put 'put ''ZVx1Y2Y2Zlx1Y2Y3Mlx1Y2Y3M1x1Y2Y3NVx1Y2Y3Nlx1Y2Y3N1x1Y2Y3OSIsNiwiXHVjZjgxXHVjZjgyXHVjZjgzXHVjZjg0XHVjZjg2Iiw1LCJcdWNmOGQiXSxbImIyNjEiLCJcdWNmOGUiLDE4LCJcdWNmYTIiLDUsIlx1Y2ZhOSJdLFsiYjI4MSIsIlx1Y2ZhYSIsNSwiXHVjZmIxIiwxOCwi''@;'; put 'put ''XHVjZmM1Iiw2LCJcdWFlNzlcdWFlN2JcdWFlN2NcdWFlN2RcdWFlODRcdWFlODVcdWFlOGNcdWFlYmNcdWFlYmRcdWFlYmVcdWFlYzBcdWFlYzRcdWFlY2NcdWFlY2RcdWFlY2ZcdWFlZDBcdWFlZDFcdWFlZDhcdWFlZDlcdWFlZGNcdWFlZThcdWFlZWJcdWFlZWRcdWFlZjRcdWFlZjhcdWFl''@;'; put 'put ''ZmNcdWFmMDdcdWFmMDhcdWFmMGRcdWFmMTBcdWFmMmNcdWFmMmRcdWFmMzBcdWFmMzJcdWFmMzRcdWFmM2NcdWFmM2RcdWFmM2ZcdWFmNDFcdWFmNDJcdWFmNDNcdWFmNDhcdWFmNDlcdWFmNTBcdWFmNWNcdWFmNWRcdWFmNjRcdWFmNjVcdWFmNzlcdWFmODBcdWFmODRcdWFmODhcdWFmOTBc''@;'; put 'put ''dWFmOTFcdWFmOTVcdWFmOWNcdWFmYjhcdWFmYjlcdWFmYmNcdWFmYzBcdWFmYzdcdWFmYzhcdWFmYzlcdWFmY2JcdWFmY2RcdWFmY2VcdWFmZDRcdWFmZGNcdWFmZThcdWFmZTlcdWFmZjBcdWFmZjFcdWFmZjRcdWFmZjhcdWIwMDBcdWIwMDFcdWIwMDRcdWIwMGNcdWIwMTBcdWIwMTRcdWIw''@;'; put 'put ''MWNcdWIwMWRcdWIwMjhcdWIwNDRcdWIwNDVcdWIwNDhcdWIwNGFcdWIwNGNcdWIwNGVcdWIwNTNcdWIwNTRcdWIwNTVcdWIwNTdcdWIwNTkiXSxbImIzNDEiLCJcdWNmY2MiLDE5LCJcdWNmZTJcdWNmZTNcdWNmZTVcdWNmZTZcdWNmZTdcdWNmZTkiXSxbImIzNjEiLCJcdWNmZWEiLDUsIlx1''@;'; put 'put ''Y2ZmMlx1Y2ZmNFx1Y2ZmNiIsNSwiXHVjZmZkXHVjZmZlXHVjZmZmXHVkMDAxXHVkMDAyXHVkMDAzXHVkMDA1Iiw1XSxbImIzODEiLCJcdWQwMGIiLDUsIlx1ZDAxMiIsNSwiXHVkMDE5IiwxOSwiXHViMDVkXHViMDdjXHViMDdkXHViMDgwXHViMDg0XHViMDhjXHViMDhkXHViMDhmXHViMDkx''@;'; put 'put ''XHViMDk4XHViMDk5XHViMDlhXHViMDljXHViMDlmXHViMGEwXHViMGExXHViMGEyXHViMGE4XHViMGE5XHViMGFiIiw0LCJcdWIwYjFcdWIwYjNcdWIwYjRcdWIwYjVcdWIwYjhcdWIwYmNcdWIwYzRcdWIwYzVcdWIwYzdcdWIwYzhcdWIwYzlcdWIwZDBcdWIwZDFcdWIwZDRcdWIwZDhcdWIw''@;'; put 'put ''ZTBcdWIwZTVcdWIxMDhcdWIxMDlcdWIxMGJcdWIxMGNcdWIxMTBcdWIxMTJcdWIxMTNcdWIxMThcdWIxMTlcdWIxMWJcdWIxMWNcdWIxMWRcdWIxMjNcdWIxMjRcdWIxMjVcdWIxMjhcdWIxMmNcdWIxMzRcdWIxMzVcdWIxMzdcdWIxMzhcdWIxMzlcdWIxNDBcdWIxNDFcdWIxNDRcdWIxNDhc''@;'; put 'put ''dWIxNTBcdWIxNTFcdWIxNTRcdWIxNTVcdWIxNThcdWIxNWNcdWIxNjBcdWIxNzhcdWIxNzlcdWIxN2NcdWIxODBcdWIxODJcdWIxODhcdWIxODlcdWIxOGJcdWIxOGRcdWIxOTJcdWIxOTNcdWIxOTRcdWIxOThcdWIxOWNcdWIxYThcdWIxY2NcdWIxZDBcdWIxZDRcdWIxZGNcdWIxZGQiXSxb''@;'; put 'put ''ImI0NDEiLCJcdWQwMmUiLDUsIlx1ZDAzNlx1ZDAzN1x1ZDAzOVx1ZDAzYVx1ZDAzYlx1ZDAzZCIsNiwiXHVkMDQ2XHVkMDQ4XHVkMDRhIiw1XSxbImI0NjEiLCJcdWQwNTFcdWQwNTJcdWQwNTNcdWQwNTVcdWQwNTZcdWQwNTdcdWQwNTkiLDYsIlx1ZDA2MSIsMTAsIlx1ZDA2ZVx1ZDA2ZiJd''@;'; put 'put ''LFsiYjQ4MSIsIlx1ZDA3MVx1ZDA3Mlx1ZDA3M1x1ZDA3NSIsNiwiXHVkMDdlXHVkMDdmXHVkMDgwXHVkMDgyIiwxOCwiXHViMWRmXHViMWU4XHViMWU5XHViMWVjXHViMWYwXHViMWY5XHViMWZiXHViMWZkXHViMjA0XHViMjA1XHViMjA4XHViMjBiXHViMjBjXHViMjE0XHViMjE1XHViMjE3''@;'; put 'put ''XHViMjE5XHViMjIwXHViMjM0XHViMjNjXHViMjU4XHViMjVjXHViMjYwXHViMjY4XHViMjY5XHViMjc0XHViMjc1XHViMjdjXHViMjg0XHViMjg1XHViMjg5XHViMjkwXHViMjkxXHViMjk0XHViMjk4XHViMjk5XHViMjlhXHViMmEwXHViMmExXHViMmEzXHViMmE1XHViMmE2XHViMmFhXHVi''@;'; put 'put ''MmFjXHViMmIwXHViMmI0XHViMmM4XHViMmM5XHViMmNjXHViMmQwXHViMmQyXHViMmQ4XHViMmQ5XHViMmRiXHViMmRkXHViMmUyXHViMmU0XHViMmU1XHViMmU2XHViMmU4XHViMmViIiw0LCJcdWIyZjNcdWIyZjRcdWIyZjVcdWIyZjciLDQsIlx1YjJmZlx1YjMwMFx1YjMwMVx1YjMwNFx1''@;'; put 'put ''YjMwOFx1YjMxMFx1YjMxMVx1YjMxM1x1YjMxNFx1YjMxNVx1YjMxY1x1YjM1NFx1YjM1NVx1YjM1Nlx1YjM1OFx1YjM1Ylx1YjM1Y1x1YjM1ZVx1YjM1Zlx1YjM2NFx1YjM2NSJdLFsiYjU0MSIsIlx1ZDA5NSIsMTQsIlx1ZDBhNlx1ZDBhN1x1ZDBhOVx1ZDBhYVx1ZDBhYlx1ZDBhZCIsNV0s''@;'; put 'put ''WyJiNTYxIiwiXHVkMGIzXHVkMGI2XHVkMGI4XHVkMGJhIiw1LCJcdWQwYzJcdWQwYzNcdWQwYzVcdWQwYzZcdWQwYzdcdWQwY2EiLDUsIlx1ZDBkMlx1ZDBkNiIsNF0sWyJiNTgxIiwiXHVkMGRiXHVkMGRlXHVkMGRmXHVkMGUxXHVkMGUyXHVkMGUzXHVkMGU1Iiw2LCJcdWQwZWVcdWQwZjIi''@;'; put 'put ''LDUsIlx1ZDBmOSIsMTEsIlx1YjM2N1x1YjM2OVx1YjM2Ylx1YjM2ZVx1YjM3MFx1YjM3MVx1YjM3NFx1YjM3OFx1YjM4MFx1YjM4MVx1YjM4M1x1YjM4NFx1YjM4NVx1YjM4Y1x1YjM5MFx1YjM5NFx1YjNhMFx1YjNhMVx1YjNhOFx1YjNhY1x1YjNjNFx1YjNjNVx1YjNjOFx1YjNjYlx1YjNj''@;'; put 'put ''Y1x1YjNjZVx1YjNkMFx1YjNkNFx1YjNkNVx1YjNkN1x1YjNkOVx1YjNkYlx1YjNkZFx1YjNlMFx1YjNlNFx1YjNlOFx1YjNmY1x1YjQxMFx1YjQxOFx1YjQxY1x1YjQyMFx1YjQyOFx1YjQyOVx1YjQyYlx1YjQzNFx1YjQ1MFx1YjQ1MVx1YjQ1NFx1YjQ1OFx1YjQ2MFx1YjQ2MVx1YjQ2M1x1''@;'; put 'put ''YjQ2NVx1YjQ2Y1x1YjQ4MFx1YjQ4OFx1YjQ5ZFx1YjRhNFx1YjRhOFx1YjRhY1x1YjRiNVx1YjRiN1x1YjRiOVx1YjRjMFx1YjRjNFx1YjRjOFx1YjRkMFx1YjRkNVx1YjRkY1x1YjRkZFx1YjRlMFx1YjRlM1x1YjRlNFx1YjRlNlx1YjRlY1x1YjRlZFx1YjRlZlx1YjRmMVx1YjRmOFx1YjUx''@;'; put 'put ''NFx1YjUxNVx1YjUxOFx1YjUxYlx1YjUxY1x1YjUyNFx1YjUyNVx1YjUyN1x1YjUyOFx1YjUyOVx1YjUyYVx1YjUzMFx1YjUzMVx1YjUzNFx1YjUzOCJdLFsiYjY0MSIsIlx1ZDEwNSIsNywiXHVkMTBlIiwxN10sWyJiNjYxIiwiXHVkMTIwIiwxNSwiXHVkMTMyXHVkMTMzXHVkMTM1XHVkMTM2''@;'; put 'put ''XHVkMTM3XHVkMTM5XHVkMTNiXHVkMTNjXHVkMTNkXHVkMTNlIl0sWyJiNjgxIiwiXHVkMTNmXHVkMTQyXHVkMTQ2Iiw1LCJcdWQxNGVcdWQxNGZcdWQxNTFcdWQxNTJcdWQxNTNcdWQxNTUiLDYsIlx1ZDE1ZVx1ZDE2MFx1ZDE2MiIsNSwiXHVkMTY5XHVkMTZhXHVkMTZiXHVkMTZkXHViNTQw''@;'; put 'put ''XHViNTQxXHViNTQzXHViNTQ0XHViNTQ1XHViNTRiXHViNTRjXHViNTRkXHViNTUwXHViNTU0XHViNTVjXHViNTVkXHViNTVmXHViNTYwXHViNTYxXHViNWEwXHViNWExXHViNWE0XHViNWE4XHViNWFhXHViNWFiXHViNWIwXHViNWIxXHViNWIzXHViNWI0XHViNWI1XHViNWJiXHViNWJjXHVi''@;'; put 'put ''NWJkXHViNWMwXHViNWM0XHViNWNjXHViNWNkXHViNWNmXHViNWQwXHViNWQxXHViNWQ4XHViNWVjXHViNjEwXHViNjExXHViNjE0XHViNjE4XHViNjI1XHViNjJjXHViNjM0XHViNjQ4XHViNjY0XHViNjY4XHViNjljXHViNjlkXHViNmEwXHViNmE0XHViNmFiXHViNmFjXHViNmIxXHViNmQ0''@;'; put 'put ''XHViNmYwXHViNmY0XHViNmY4XHViNzAwXHViNzAxXHViNzA1XHViNzI4XHViNzI5XHViNzJjXHViNzJmXHViNzMwXHViNzM4XHViNzM5XHViNzNiXHViNzQ0XHViNzQ4XHViNzRjXHViNzU0XHViNzU1XHViNzYwXHViNzY0XHViNzY4XHViNzcwXHViNzcxXHViNzczXHViNzc1XHViNzdjXHVi''@;'; put 'put ''NzdkXHViNzgwXHViNzg0XHViNzhjXHViNzhkXHViNzhmXHViNzkwXHViNzkxXHViNzkyXHViNzk2XHViNzk3Il0sWyJiNzQxIiwiXHVkMTZlIiwxMywiXHVkMTdkIiw2LCJcdWQxODVcdWQxODZcdWQxODdcdWQxODlcdWQxOGEiXSxbImI3NjEiLCJcdWQxOGIiLDIwLCJcdWQxYTJcdWQxYTNc''@;'; put 'put ''dWQxYTVcdWQxYTZcdWQxYTciXSxbImI3ODEiLCJcdWQxYTkiLDYsIlx1ZDFiMlx1ZDFiNFx1ZDFiNlx1ZDFiN1x1ZDFiOFx1ZDFiOVx1ZDFiYlx1ZDFiZFx1ZDFiZVx1ZDFiZlx1ZDFjMSIsMTQsIlx1Yjc5OFx1Yjc5OVx1Yjc5Y1x1YjdhMFx1YjdhOFx1YjdhOVx1YjdhYlx1YjdhY1x1Yjdh''@;'; put 'put ''ZFx1YjdiNFx1YjdiNVx1YjdiOFx1YjdjN1x1YjdjOVx1YjdlY1x1YjdlZFx1YjdmMFx1YjdmNFx1YjdmY1x1YjdmZFx1YjdmZlx1YjgwMFx1YjgwMVx1YjgwN1x1YjgwOFx1YjgwOVx1YjgwY1x1YjgxMFx1YjgxOFx1YjgxOVx1YjgxYlx1YjgxZFx1YjgyNFx1YjgyNVx1YjgyOFx1YjgyY1x1''@;'; put 'put ''YjgzNFx1YjgzNVx1YjgzN1x1YjgzOFx1YjgzOVx1Yjg0MFx1Yjg0NFx1Yjg1MVx1Yjg1M1x1Yjg1Y1x1Yjg1ZFx1Yjg2MFx1Yjg2NFx1Yjg2Y1x1Yjg2ZFx1Yjg2Zlx1Yjg3MVx1Yjg3OFx1Yjg3Y1x1Yjg4ZFx1YjhhOFx1YjhiMFx1YjhiNFx1YjhiOFx1YjhjMFx1YjhjMVx1YjhjM1x1Yjhj''@;'; put 'put ''NVx1YjhjY1x1YjhkMFx1YjhkNFx1YjhkZFx1YjhkZlx1YjhlMVx1YjhlOFx1YjhlOVx1YjhlY1x1YjhmMFx1YjhmOFx1YjhmOVx1YjhmYlx1YjhmZFx1YjkwNFx1YjkxOFx1YjkyMFx1YjkzY1x1YjkzZFx1Yjk0MFx1Yjk0NFx1Yjk0Y1x1Yjk0Zlx1Yjk1MVx1Yjk1OFx1Yjk1OVx1Yjk1Y1x1''@;'; put 'put ''Yjk2MFx1Yjk2OFx1Yjk2OSJdLFsiYjg0MSIsIlx1ZDFkMCIsNywiXHVkMWQ5IiwxN10sWyJiODYxIiwiXHVkMWViIiw4LCJcdWQxZjVcdWQxZjZcdWQxZjdcdWQxZjkiLDEzXSxbImI4ODEiLCJcdWQyMDhcdWQyMGEiLDUsIlx1ZDIxMSIsMjQsIlx1Yjk2Ylx1Yjk2ZFx1Yjk3NFx1Yjk3NVx1''@;'; put 'put ''Yjk3OFx1Yjk3Y1x1Yjk4NFx1Yjk4NVx1Yjk4N1x1Yjk4OVx1Yjk4YVx1Yjk4ZFx1Yjk4ZVx1YjlhY1x1YjlhZFx1YjliMFx1YjliNFx1YjliY1x1YjliZFx1YjliZlx1YjljMVx1YjljOFx1YjljOVx1YjljY1x1YjljZSIsNCwiXHViOWQ4XHViOWQ5XHViOWRiXHViOWRkXHViOWRlXHViOWUx''@;'; put 'put ''XHViOWUzXHViOWU0XHViOWU1XHViOWU4XHViOWVjXHViOWY0XHViOWY1XHViOWY3XHViOWY4XHViOWY5XHViOWZhXHViYTAwXHViYTAxXHViYTA4XHViYTE1XHViYTM4XHViYTM5XHViYTNjXHViYTQwXHViYTQyXHViYTQ4XHViYTQ5XHViYTRiXHViYTRkXHViYTRlXHViYTUzXHViYTU0XHVi''@;'; put 'put ''YTU1XHViYTU4XHViYTVjXHViYTY0XHViYTY1XHViYTY3XHViYTY4XHViYTY5XHViYTcwXHViYTcxXHViYTc0XHViYTc4XHViYTgzXHViYTg0XHViYTg1XHViYTg3XHViYThjXHViYWE4XHViYWE5XHViYWFiXHViYWFjXHViYWIwXHViYWIyXHViYWI4XHViYWI5XHViYWJiXHViYWJkXHViYWM0''@;'; put 'put ''XHViYWM4XHViYWQ4XHViYWQ5XHViYWZjIl0sWyJiOTQxIiwiXHVkMjJhXHVkMjJiXHVkMjJlXHVkMjJmXHVkMjMxXHVkMjMyXHVkMjMzXHVkMjM1Iiw2LCJcdWQyM2VcdWQyNDBcdWQyNDIiLDUsIlx1ZDI0OVx1ZDI0YVx1ZDI0Ylx1ZDI0YyJdLFsiYjk2MSIsIlx1ZDI0ZCIsMTQsIlx1ZDI1''@;'; put 'put ''ZCIsNiwiXHVkMjY1XHVkMjY2XHVkMjY3XHVkMjY4Il0sWyJiOTgxIiwiXHVkMjY5IiwyMiwiXHVkMjgyXHVkMjgzXHVkMjg1XHVkMjg2XHVkMjg3XHVkMjg5XHVkMjhhXHVkMjhiXHVkMjhjXHViYjAwXHViYjA0XHViYjBkXHViYjBmXHViYjExXHViYjE4XHViYjFjXHViYjIwXHViYjI5XHVi''@;'; put 'put ''YjJiXHViYjM0XHViYjM1XHViYjM2XHViYjM4XHViYjNiXHViYjNjXHViYjNkXHViYjNlXHViYjQ0XHViYjQ1XHViYjQ3XHViYjQ5XHViYjRkXHViYjRmXHViYjUwXHViYjU0XHViYjU4XHViYjYxXHViYjYzXHViYjZjXHViYjg4XHViYjhjXHViYjkwXHViYmE0XHViYmE4XHViYmFjXHViYmI0''@;'; put 'put ''XHViYmI3XHViYmMwXHViYmM0XHViYmM4XHViYmQwXHViYmQzXHViYmY4XHViYmY5XHViYmZjXHViYmZmXHViYzAwXHViYzAyXHViYzA4XHViYzA5XHViYzBiXHViYzBjXHViYzBkXHViYzBmXHViYzExXHViYzE0Iiw0LCJcdWJjMWIiLDQsIlx1YmMyNFx1YmMyNVx1YmMyN1x1YmMyOVx1YmMy''@;'; put 'put ''ZFx1YmMzMFx1YmMzMVx1YmMzNFx1YmMzOFx1YmM0MFx1YmM0MVx1YmM0M1x1YmM0NFx1YmM0NVx1YmM0OVx1YmM0Y1x1YmM0ZFx1YmM1MFx1YmM1ZFx1YmM4NFx1YmM4NVx1YmM4OFx1YmM4Ylx1YmM4Y1x1YmM4ZVx1YmM5NFx1YmM5NVx1YmM5NyJdLFsiYmE0MSIsIlx1ZDI4ZFx1ZDI4ZVx1''@;'; put 'put ''ZDI4Zlx1ZDI5Mlx1ZDI5M1x1ZDI5NFx1ZDI5NiIsNSwiXHVkMjlkXHVkMjllXHVkMjlmXHVkMmExXHVkMmEyXHVkMmEzXHVkMmE1Iiw2LCJcdWQyYWQiXSxbImJhNjEiLCJcdWQyYWVcdWQyYWZcdWQyYjBcdWQyYjIiLDUsIlx1ZDJiYVx1ZDJiYlx1ZDJiZFx1ZDJiZVx1ZDJjMVx1ZDJjMyIs''@;'; put 'put ''NCwiXHVkMmNhXHVkMmNjIiw1XSxbImJhODEiLCJcdWQyZDJcdWQyZDNcdWQyZDVcdWQyZDZcdWQyZDdcdWQyZDlcdWQyZGFcdWQyZGJcdWQyZGQiLDYsIlx1ZDJlNiIsOSwiXHVkMmYyXHVkMmYzXHVkMmY1XHVkMmY2XHVkMmY3XHVkMmY5XHVkMmZhXHViYzk5XHViYzlhXHViY2EwXHViY2Ex''@;'; put 'put ''XHViY2E0XHViY2E3XHViY2E4XHViY2IwXHViY2IxXHViY2IzXHViY2I0XHViY2I1XHViY2JjXHViY2JkXHViY2MwXHViY2M0XHViY2NkXHViY2NmXHViY2QwXHViY2QxXHViY2Q1XHViY2Q4XHViY2RjXHViY2Y0XHViY2Y1XHViY2Y2XHViY2Y4XHViY2ZjXHViZDA0XHViZDA1XHViZDA3XHVi''@;'; put 'put ''ZDA5XHViZDEwXHViZDE0XHViZDI0XHViZDJjXHViZDQwXHViZDQ4XHViZDQ5XHViZDRjXHViZDUwXHViZDU4XHViZDU5XHViZDY0XHViZDY4XHViZDgwXHViZDgxXHViZDg0XHViZDg3XHViZDg4XHViZDg5XHViZDhhXHViZDkwXHViZDkxXHViZDkzXHViZDk1XHViZDk5XHViZDlhXHViZDlj''@;'; put 'put ''XHViZGE0XHViZGIwXHViZGI4XHViZGQ0XHViZGQ1XHViZGQ4XHViZGRjXHViZGU5XHViZGYwXHViZGY0XHViZGY4XHViZTAwXHViZTAzXHViZTA1XHViZTBjXHViZTBkXHViZTEwXHViZTE0XHViZTFjXHViZTFkXHViZTFmXHViZTQ0XHViZTQ1XHViZTQ4XHViZTRjXHViZTRlXHViZTU0XHVi''@;'; put 'put ''ZTU1XHViZTU3XHViZTU5XHViZTVhXHViZTViXHViZTYwXHViZTYxXHViZTY0Il0sWyJiYjQxIiwiXHVkMmZiIiw0LCJcdWQzMDJcdWQzMDRcdWQzMDYiLDUsIlx1ZDMwZlx1ZDMxMVx1ZDMxMlx1ZDMxM1x1ZDMxNVx1ZDMxNyIsNCwiXHVkMzFlXHVkMzIyXHVkMzIzIl0sWyJiYjYxIiwiXHVk''@;'; put 'put ''MzI0XHVkMzI2XHVkMzI3XHVkMzJhXHVkMzJiXHVkMzJkXHVkMzJlXHVkMzJmXHVkMzMxIiw2LCJcdWQzM2FcdWQzM2UiLDUsIlx1ZDM0Nlx1ZDM0N1x1ZDM0OFx1ZDM0OSJdLFsiYmI4MSIsIlx1ZDM0YSIsMzEsIlx1YmU2OFx1YmU2YVx1YmU3MFx1YmU3MVx1YmU3M1x1YmU3NFx1YmU3NVx1''@;'; put 'put ''YmU3Ylx1YmU3Y1x1YmU3ZFx1YmU4MFx1YmU4NFx1YmU4Y1x1YmU4ZFx1YmU4Zlx1YmU5MFx1YmU5MVx1YmU5OFx1YmU5OVx1YmVhOFx1YmVkMFx1YmVkMVx1YmVkNFx1YmVkN1x1YmVkOFx1YmVlMFx1YmVlM1x1YmVlNFx1YmVlNVx1YmVlY1x1YmYwMVx1YmYwOFx1YmYwOVx1YmYxOFx1YmYx''@;'; put 'put ''OVx1YmYxYlx1YmYxY1x1YmYxZFx1YmY0MFx1YmY0MVx1YmY0NFx1YmY0OFx1YmY1MFx1YmY1MVx1YmY1NVx1YmY5NFx1YmZiMFx1YmZjNVx1YmZjY1x1YmZjZFx1YmZkMFx1YmZkNFx1YmZkY1x1YmZkZlx1YmZlMVx1YzAzY1x1YzA1MVx1YzA1OFx1YzA1Y1x1YzA2MFx1YzA2OFx1YzA2OVx1''@;'; put 'put ''YzA5MFx1YzA5MVx1YzA5NFx1YzA5OFx1YzBhMFx1YzBhMVx1YzBhM1x1YzBhNVx1YzBhY1x1YzBhZFx1YzBhZlx1YzBiMFx1YzBiM1x1YzBiNFx1YzBiNVx1YzBiNlx1YzBiY1x1YzBiZFx1YzBiZlx1YzBjMFx1YzBjMVx1YzBjNVx1YzBjOFx1YzBjOVx1YzBjY1x1YzBkMFx1YzBkOFx1YzBk''@;'; put 'put ''OVx1YzBkYlx1YzBkY1x1YzBkZFx1YzBlNCJdLFsiYmM0MSIsIlx1ZDM2YSIsMTcsIlx1ZDM3ZVx1ZDM3Zlx1ZDM4MVx1ZDM4Mlx1ZDM4M1x1ZDM4NVx1ZDM4Nlx1ZDM4NyJdLFsiYmM2MSIsIlx1ZDM4OFx1ZDM4OVx1ZDM4YVx1ZDM4Ylx1ZDM4ZVx1ZDM5MiIsNSwiXHVkMzlhXHVkMzliXHVk''@;'; put 'put ''MzlkXHVkMzllXHVkMzlmXHVkM2ExIiw2LCJcdWQzYWFcdWQzYWNcdWQzYWUiXSxbImJjODEiLCJcdWQzYWYiLDQsIlx1ZDNiNVx1ZDNiNlx1ZDNiN1x1ZDNiOVx1ZDNiYVx1ZDNiYlx1ZDNiZCIsNiwiXHVkM2M2XHVkM2M3XHVkM2NhIiw1LCJcdWQzZDEiLDUsIlx1YzBlNVx1YzBlOFx1YzBl''@;'; put 'put ''Y1x1YzBmNFx1YzBmNVx1YzBmN1x1YzBmOVx1YzEwMFx1YzEwNFx1YzEwOFx1YzExMFx1YzExNVx1YzExYyIsNCwiXHVjMTIzXHVjMTI0XHVjMTI2XHVjMTI3XHVjMTJjXHVjMTJkXHVjMTJmXHVjMTMwXHVjMTMxXHVjMTM2XHVjMTM4XHVjMTM5XHVjMTNjXHVjMTQwXHVjMTQ4XHVjMTQ5XHVj''@;'; put 'put ''MTRiXHVjMTRjXHVjMTRkXHVjMTU0XHVjMTU1XHVjMTU4XHVjMTVjXHVjMTY0XHVjMTY1XHVjMTY3XHVjMTY4XHVjMTY5XHVjMTcwXHVjMTc0XHVjMTc4XHVjMTg1XHVjMThjXHVjMThkXHVjMThlXHVjMTkwXHVjMTk0XHVjMTk2XHVjMTljXHVjMTlkXHVjMTlmXHVjMWExXHVjMWE1XHVjMWE4''@;'; put 'put ''XHVjMWE5XHVjMWFjXHVjMWIwXHVjMWJkXHVjMWM0XHVjMWM4XHVjMWNjXHVjMWQ0XHVjMWQ3XHVjMWQ4XHVjMWUwXHVjMWU0XHVjMWU4XHVjMWYwXHVjMWYxXHVjMWYzXHVjMWZjXHVjMWZkXHVjMjAwXHVjMjA0XHVjMjBjXHVjMjBkXHVjMjBmXHVjMjExXHVjMjE4XHVjMjE5XHVjMjFjXHVj''@;'; put 'put ''MjFmXHVjMjIwXHVjMjI4XHVjMjI5XHVjMjJiXHVjMjJkIl0sWyJiZDQxIiwiXHVkM2Q3XHVkM2Q5Iiw3LCJcdWQzZTJcdWQzZTQiLDcsIlx1ZDNlZVx1ZDNlZlx1ZDNmMVx1ZDNmMlx1ZDNmM1x1ZDNmNVx1ZDNmNlx1ZDNmNyJdLFsiYmQ2MSIsIlx1ZDNmOFx1ZDNmOVx1ZDNmYVx1ZDNmYlx1''@;'; put 'put ''ZDNmZVx1ZDQwMFx1ZDQwMiIsNSwiXHVkNDA5IiwxM10sWyJiZDgxIiwiXHVkNDE3Iiw1LCJcdWQ0MWUiLDI1LCJcdWMyMmZcdWMyMzFcdWMyMzJcdWMyMzRcdWMyNDhcdWMyNTBcdWMyNTFcdWMyNTRcdWMyNThcdWMyNjBcdWMyNjVcdWMyNmNcdWMyNmRcdWMyNzBcdWMyNzRcdWMyN2NcdWMy''@;'; put 'put ''N2RcdWMyN2ZcdWMyODFcdWMyODhcdWMyODlcdWMyOTBcdWMyOThcdWMyOWJcdWMyOWRcdWMyYTRcdWMyYTVcdWMyYThcdWMyYWNcdWMyYWRcdWMyYjRcdWMyYjVcdWMyYjdcdWMyYjlcdWMyZGNcdWMyZGRcdWMyZTBcdWMyZTNcdWMyZTRcdWMyZWJcdWMyZWNcdWMyZWRcdWMyZWZcdWMyZjFc''@;'; put 'put ''dWMyZjZcdWMyZjhcdWMyZjlcdWMyZmJcdWMyZmNcdWMzMDBcdWMzMDhcdWMzMDlcdWMzMGNcdWMzMGRcdWMzMTNcdWMzMTRcdWMzMTVcdWMzMThcdWMzMWNcdWMzMjRcdWMzMjVcdWMzMjhcdWMzMjlcdWMzNDVcdWMzNjhcdWMzNjlcdWMzNmNcdWMzNzBcdWMzNzJcdWMzNzhcdWMzNzlcdWMz''@;'; put 'put ''N2NcdWMzN2RcdWMzODRcdWMzODhcdWMzOGNcdWMzYzBcdWMzZDhcdWMzZDlcdWMzZGNcdWMzZGZcdWMzZTBcdWMzZTJcdWMzZThcdWMzZTlcdWMzZWRcdWMzZjRcdWMzZjVcdWMzZjhcdWM0MDhcdWM0MTBcdWM0MjRcdWM0MmNcdWM0MzAiXSxbImJlNDEiLCJcdWQ0MzgiLDcsIlx1ZDQ0MVx1''@;'; put 'put ''ZDQ0Mlx1ZDQ0M1x1ZDQ0NSIsMTRdLFsiYmU2MSIsIlx1ZDQ1NCIsNywiXHVkNDVkXHVkNDVlXHVkNDVmXHVkNDYxXHVkNDYyXHVkNDYzXHVkNDY1Iiw3LCJcdWQ0NmVcdWQ0NzBcdWQ0NzFcdWQ0NzIiXSxbImJlODEiLCJcdWQ0NzMiLDQsIlx1ZDQ3YVx1ZDQ3Ylx1ZDQ3ZFx1ZDQ3ZVx1ZDQ4''@;'; put 'put ''MVx1ZDQ4MyIsNCwiXHVkNDhhXHVkNDhjXHVkNDhlIiw1LCJcdWQ0OTUiLDgsIlx1YzQzNFx1YzQzY1x1YzQzZFx1YzQ0OFx1YzQ2NFx1YzQ2NVx1YzQ2OFx1YzQ2Y1x1YzQ3NFx1YzQ3NVx1YzQ3OVx1YzQ4MFx1YzQ5NFx1YzQ5Y1x1YzRiOFx1YzRiY1x1YzRlOVx1YzRmMFx1YzRmMVx1YzRm''@;'; put 'put ''NFx1YzRmOFx1YzRmYVx1YzRmZlx1YzUwMFx1YzUwMVx1YzUwY1x1YzUxMFx1YzUxNFx1YzUxY1x1YzUyOFx1YzUyOVx1YzUyY1x1YzUzMFx1YzUzOFx1YzUzOVx1YzUzYlx1YzUzZFx1YzU0NFx1YzU0NVx1YzU0OFx1YzU0OVx1YzU0YVx1YzU0Y1x1YzU0ZFx1YzU0ZVx1YzU1M1x1YzU1NFx1''@;'; put 'put ''YzU1NVx1YzU1N1x1YzU1OFx1YzU1OVx1YzU1ZFx1YzU1ZVx1YzU2MFx1YzU2MVx1YzU2NFx1YzU2OFx1YzU3MFx1YzU3MVx1YzU3M1x1YzU3NFx1YzU3NVx1YzU3Y1x1YzU3ZFx1YzU4MFx1YzU4NFx1YzU4N1x1YzU4Y1x1YzU4ZFx1YzU4Zlx1YzU5MVx1YzU5NVx1YzU5N1x1YzU5OFx1YzU5''@;'; put 'put ''Y1x1YzVhMFx1YzVhOVx1YzViNFx1YzViNVx1YzViOFx1YzViOVx1YzViYlx1YzViY1x1YzViZFx1YzViZVx1YzVjNCIsNiwiXHVjNWNjXHVjNWNlIl0sWyJiZjQxIiwiXHVkNDllIiwxMCwiXHVkNGFhIiwxNF0sWyJiZjYxIiwiXHVkNGI5IiwxOCwiXHVkNGNkXHVkNGNlXHVkNGNmXHVkNGQx''@;'; put 'put ''XHVkNGQyXHVkNGQzXHVkNGQ1Il0sWyJiZjgxIiwiXHVkNGQ2Iiw1LCJcdWQ0ZGRcdWQ0ZGVcdWQ0ZTAiLDcsIlx1ZDRlOVx1ZDRlYVx1ZDRlYlx1ZDRlZFx1ZDRlZVx1ZDRlZlx1ZDRmMSIsNiwiXHVkNGY5XHVkNGZhXHVkNGZjXHVjNWQwXHVjNWQxXHVjNWQ0XHVjNWQ4XHVjNWUwXHVjNWUx''@;'; put 'put ''XHVjNWUzXHVjNWU1XHVjNWVjXHVjNWVkXHVjNWVlXHVjNWYwXHVjNWY0XHVjNWY2XHVjNWY3XHVjNWZjIiw1LCJcdWM2MDVcdWM2MDZcdWM2MDdcdWM2MDhcdWM2MGNcdWM2MTBcdWM2MThcdWM2MTlcdWM2MWJcdWM2MWNcdWM2MjRcdWM2MjVcdWM2MjhcdWM2MmNcdWM2MmRcdWM2MmVcdWM2''@;'; put 'put ''MzBcdWM2MzNcdWM2MzRcdWM2MzVcdWM2MzdcdWM2MzlcdWM2M2JcdWM2NDBcdWM2NDFcdWM2NDRcdWM2NDhcdWM2NTBcdWM2NTFcdWM2NTNcdWM2NTRcdWM2NTVcdWM2NWNcdWM2NWRcdWM2NjBcdWM2NmNcdWM2NmZcdWM2NzFcdWM2NzhcdWM2NzlcdWM2N2NcdWM2ODBcdWM2ODhcdWM2ODlc''@;'; put 'put ''dWM2OGJcdWM2OGRcdWM2OTRcdWM2OTVcdWM2OThcdWM2OWNcdWM2YTRcdWM2YTVcdWM2YTdcdWM2YTlcdWM2YjBcdWM2YjFcdWM2YjRcdWM2YjhcdWM2YjlcdWM2YmFcdWM2YzBcdWM2YzFcdWM2YzNcdWM2YzVcdWM2Y2NcdWM2Y2RcdWM2ZDBcdWM2ZDRcdWM2ZGNcdWM2ZGRcdWM2ZTBcdWM2''@;'; put 'put ''ZTFcdWM2ZTgiXSxbImMwNDEiLCJcdWQ0ZmUiLDUsIlx1ZDUwNVx1ZDUwNlx1ZDUwN1x1ZDUwOVx1ZDUwYVx1ZDUwYlx1ZDUwZCIsNiwiXHVkNTE2XHVkNTE4Iiw1XSxbImMwNjEiLCJcdWQ1MWUiLDI1XSxbImMwODEiLCJcdWQ1MzhcdWQ1MzlcdWQ1M2FcdWQ1M2JcdWQ1M2VcdWQ1M2ZcdWQ1''@;'; put 'put ''NDFcdWQ1NDJcdWQ1NDNcdWQ1NDUiLDYsIlx1ZDU0ZVx1ZDU1MFx1ZDU1MiIsNSwiXHVkNTVhXHVkNTViXHVkNTVkXHVkNTVlXHVkNTVmXHVkNTYxXHVkNTYyXHVkNTYzXHVjNmU5XHVjNmVjXHVjNmYwXHVjNmY4XHVjNmY5XHVjNmZkXHVjNzA0XHVjNzA1XHVjNzA4XHVjNzBjXHVjNzE0XHVj''@;'; put 'put ''NzE1XHVjNzE3XHVjNzE5XHVjNzIwXHVjNzIxXHVjNzI0XHVjNzI4XHVjNzMwXHVjNzMxXHVjNzMzXHVjNzM1XHVjNzM3XHVjNzNjXHVjNzNkXHVjNzQwXHVjNzQ0XHVjNzRhXHVjNzRjXHVjNzRkXHVjNzRmXHVjNzUxIiw3LCJcdWM3NWNcdWM3NjBcdWM3NjhcdWM3NmJcdWM3NzRcdWM3NzVc''@;'; put 'put ''dWM3NzhcdWM3N2NcdWM3N2RcdWM3N2VcdWM3ODNcdWM3ODRcdWM3ODVcdWM3ODdcdWM3ODhcdWM3ODlcdWM3OGFcdWM3OGVcdWM3OTBcdWM3OTFcdWM3OTRcdWM3OTZcdWM3OTdcdWM3OThcdWM3OWFcdWM3YTBcdWM3YTFcdWM3YTNcdWM3YTRcdWM3YTVcdWM3YTZcdWM3YWNcdWM3YWRcdWM3''@;'; put 'put ''YjBcdWM3YjRcdWM3YmNcdWM3YmRcdWM3YmZcdWM3YzBcdWM3YzFcdWM3YzhcdWM3YzlcdWM3Y2NcdWM3Y2VcdWM3ZDBcdWM3ZDhcdWM3ZGRcdWM3ZTRcdWM3ZThcdWM3ZWNcdWM4MDBcdWM4MDFcdWM4MDRcdWM4MDhcdWM4MGEiXSxbImMxNDEiLCJcdWQ1NjRcdWQ1NjZcdWQ1NjdcdWQ1NmFc''@;'; put 'put ''dWQ1NmNcdWQ1NmUiLDUsIlx1ZDU3Nlx1ZDU3N1x1ZDU3OVx1ZDU3YVx1ZDU3Ylx1ZDU3ZCIsNiwiXHVkNTg2XHVkNThhXHVkNThiIl0sWyJjMTYxIiwiXHVkNThjXHVkNThkXHVkNThlXHVkNThmXHVkNTkxIiwxOSwiXHVkNWE2XHVkNWE3Il0sWyJjMTgxIiwiXHVkNWE4IiwzMSwiXHVjODEw''@;'; put 'put ''XHVjODExXHVjODEzXHVjODE1XHVjODE2XHVjODFjXHVjODFkXHVjODIwXHVjODI0XHVjODJjXHVjODJkXHVjODJmXHVjODMxXHVjODM4XHVjODNjXHVjODQwXHVjODQ4XHVjODQ5XHVjODRjXHVjODRkXHVjODU0XHVjODcwXHVjODcxXHVjODc0XHVjODc4XHVjODdhXHVjODgwXHVjODgxXHVj''@;'; put 'put ''ODgzXHVjODg1XHVjODg2XHVjODg3XHVjODhiXHVjODhjXHVjODhkXHVjODk0XHVjODlkXHVjODlmXHVjOGExXHVjOGE4XHVjOGJjXHVjOGJkXHVjOGM0XHVjOGM4XHVjOGNjXHVjOGQ0XHVjOGQ1XHVjOGQ3XHVjOGQ5XHVjOGUwXHVjOGUxXHVjOGU0XHVjOGY1XHVjOGZjXHVjOGZkXHVjOTAw''@;'; put 'put ''XHVjOTA0XHVjOTA1XHVjOTA2XHVjOTBjXHVjOTBkXHVjOTBmXHVjOTExXHVjOTE4XHVjOTJjXHVjOTM0XHVjOTUwXHVjOTUxXHVjOTU0XHVjOTU4XHVjOTYwXHVjOTYxXHVjOTYzXHVjOTZjXHVjOTcwXHVjOTc0XHVjOTdjXHVjOTg4XHVjOTg5XHVjOThjXHVjOTkwXHVjOTk4XHVjOTk5XHVj''@;'; put 'put ''OTliXHVjOTlkXHVjOWMwXHVjOWMxXHVjOWM0XHVjOWM3XHVjOWM4XHVjOWNhXHVjOWQwXHVjOWQxXHVjOWQzIl0sWyJjMjQxIiwiXHVkNWNhXHVkNWNiXHVkNWNkXHVkNWNlXHVkNWNmXHVkNWQxXHVkNWQzIiw0LCJcdWQ1ZGFcdWQ1ZGNcdWQ1ZGUiLDUsIlx1ZDVlNlx1ZDVlN1x1ZDVlOVx1''@;'; put 'put ''ZDVlYVx1ZDVlYlx1ZDVlZFx1ZDVlZSJdLFsiYzI2MSIsIlx1ZDVlZiIsNCwiXHVkNWY2XHVkNWY4XHVkNWZhIiw1LCJcdWQ2MDJcdWQ2MDNcdWQ2MDVcdWQ2MDZcdWQ2MDdcdWQ2MDkiLDYsIlx1ZDYxMiJdLFsiYzI4MSIsIlx1ZDYxNiIsNSwiXHVkNjFkXHVkNjFlXHVkNjFmXHVkNjIxXHVk''@;'; put 'put ''NjIyXHVkNjIzXHVkNjI1Iiw3LCJcdWQ2MmUiLDksIlx1ZDYzYVx1ZDYzYlx1YzlkNVx1YzlkNlx1YzlkOVx1YzlkYVx1YzlkY1x1YzlkZFx1YzllMFx1YzllMlx1YzllNFx1YzllN1x1YzllY1x1YzllZFx1YzllZlx1YzlmMFx1YzlmMVx1YzlmOFx1YzlmOVx1YzlmY1x1Y2EwMFx1Y2EwOFx1''@;'; put 'put ''Y2EwOVx1Y2EwYlx1Y2EwY1x1Y2EwZFx1Y2ExNFx1Y2ExOFx1Y2EyOVx1Y2E0Y1x1Y2E0ZFx1Y2E1MFx1Y2E1NFx1Y2E1Y1x1Y2E1ZFx1Y2E1Zlx1Y2E2MFx1Y2E2MVx1Y2E2OFx1Y2E3ZFx1Y2E4NFx1Y2E5OFx1Y2FiY1x1Y2FiZFx1Y2FjMFx1Y2FjNFx1Y2FjY1x1Y2FjZFx1Y2FjZlx1Y2Fk''@;'; put 'put ''MVx1Y2FkM1x1Y2FkOFx1Y2FkOVx1Y2FlMFx1Y2FlY1x1Y2FmNFx1Y2IwOFx1Y2IxMFx1Y2IxNFx1Y2IxOFx1Y2IyMFx1Y2IyMVx1Y2I0MVx1Y2I0OFx1Y2I0OVx1Y2I0Y1x1Y2I1MFx1Y2I1OFx1Y2I1OVx1Y2I1ZFx1Y2I2NFx1Y2I3OFx1Y2I3OVx1Y2I5Y1x1Y2JiOFx1Y2JkNFx1Y2JlNFx1''@;'; put 'put ''Y2JlN1x1Y2JlOVx1Y2MwY1x1Y2MwZFx1Y2MxMFx1Y2MxNFx1Y2MxY1x1Y2MxZFx1Y2MyMVx1Y2MyMlx1Y2MyN1x1Y2MyOFx1Y2MyOVx1Y2MyY1x1Y2MyZVx1Y2MzMFx1Y2MzOFx1Y2MzOVx1Y2MzYiJdLFsiYzM0MSIsIlx1ZDYzZFx1ZDYzZVx1ZDYzZlx1ZDY0MVx1ZDY0Mlx1ZDY0M1x1ZDY0''@;'; put 'put ''NFx1ZDY0Nlx1ZDY0N1x1ZDY0YVx1ZDY0Y1x1ZDY0ZVx1ZDY0Zlx1ZDY1MFx1ZDY1Mlx1ZDY1M1x1ZDY1Nlx1ZDY1N1x1ZDY1OVx1ZDY1YVx1ZDY1Ylx1ZDY1ZCIsNF0sWyJjMzYxIiwiXHVkNjYyIiw0LCJcdWQ2NjhcdWQ2NmEiLDUsIlx1ZDY3Mlx1ZDY3M1x1ZDY3NSIsMTFdLFsiYzM4MSIs''@;'; put 'put ''Ilx1ZDY4MVx1ZDY4Mlx1ZDY4NFx1ZDY4NiIsNSwiXHVkNjhlXHVkNjhmXHVkNjkxXHVkNjkyXHVkNjkzXHVkNjk1Iiw3LCJcdWQ2OWVcdWQ2YTBcdWQ2YTIiLDUsIlx1ZDZhOVx1ZDZhYVx1Y2MzY1x1Y2MzZFx1Y2MzZVx1Y2M0NFx1Y2M0NVx1Y2M0OFx1Y2M0Y1x1Y2M1NFx1Y2M1NVx1Y2M1''@;'; put 'put ''N1x1Y2M1OFx1Y2M1OVx1Y2M2MFx1Y2M2NFx1Y2M2Nlx1Y2M2OFx1Y2M3MFx1Y2M3NVx1Y2M5OFx1Y2M5OVx1Y2M5Y1x1Y2NhMFx1Y2NhOFx1Y2NhOVx1Y2NhYlx1Y2NhY1x1Y2NhZFx1Y2NiNFx1Y2NiNVx1Y2NiOFx1Y2NiY1x1Y2NjNFx1Y2NjNVx1Y2NjN1x1Y2NjOVx1Y2NkMFx1Y2NkNFx1''@;'; put 'put ''Y2NlNFx1Y2NlY1x1Y2NmMFx1Y2QwMVx1Y2QwOFx1Y2QwOVx1Y2QwY1x1Y2QxMFx1Y2QxOFx1Y2QxOVx1Y2QxYlx1Y2QxZFx1Y2QyNFx1Y2QyOFx1Y2QyY1x1Y2QzOVx1Y2Q1Y1x1Y2Q2MFx1Y2Q2NFx1Y2Q2Y1x1Y2Q2ZFx1Y2Q2Zlx1Y2Q3MVx1Y2Q3OFx1Y2Q4OFx1Y2Q5NFx1Y2Q5NVx1Y2Q5''@;'; put 'put ''OFx1Y2Q5Y1x1Y2RhNFx1Y2RhNVx1Y2RhN1x1Y2RhOVx1Y2RiMFx1Y2RjNFx1Y2RjY1x1Y2RkMFx1Y2RlOFx1Y2RlY1x1Y2RmMFx1Y2RmOFx1Y2RmOVx1Y2RmYlx1Y2RmZFx1Y2UwNFx1Y2UwOFx1Y2UwY1x1Y2UxNFx1Y2UxOVx1Y2UyMFx1Y2UyMVx1Y2UyNFx1Y2UyOFx1Y2UzMFx1Y2UzMVx1''@;'; put 'put ''Y2UzM1x1Y2UzNSJdLFsiYzQ0MSIsIlx1ZDZhYlx1ZDZhZFx1ZDZhZVx1ZDZhZlx1ZDZiMSIsNywiXHVkNmJhXHVkNmJjIiw3LCJcdWQ2YzZcdWQ2YzdcdWQ2YzlcdWQ2Y2FcdWQ2Y2IiXSxbImM0NjEiLCJcdWQ2Y2RcdWQ2Y2VcdWQ2Y2ZcdWQ2ZDBcdWQ2ZDJcdWQ2ZDNcdWQ2ZDVcdWQ2ZDZc''@;'; put 'put ''dWQ2ZDhcdWQ2ZGEiLDUsIlx1ZDZlMVx1ZDZlMlx1ZDZlM1x1ZDZlNVx1ZDZlNlx1ZDZlN1x1ZDZlOSIsNF0sWyJjNDgxIiwiXHVkNmVlXHVkNmVmXHVkNmYxXHVkNmYyXHVkNmYzXHVkNmY0XHVkNmY2Iiw1LCJcdWQ2ZmVcdWQ2ZmZcdWQ3MDFcdWQ3MDJcdWQ3MDNcdWQ3MDUiLDExLCJcdWQ3''@;'; put 'put ''MTJcdWQ3MTNcdWQ3MTRcdWNlNThcdWNlNTlcdWNlNWNcdWNlNWZcdWNlNjBcdWNlNjFcdWNlNjhcdWNlNjlcdWNlNmJcdWNlNmRcdWNlNzRcdWNlNzVcdWNlNzhcdWNlN2NcdWNlODRcdWNlODVcdWNlODdcdWNlODlcdWNlOTBcdWNlOTFcdWNlOTRcdWNlOThcdWNlYTBcdWNlYTFcdWNlYTNc''@;'; put 'put ''dWNlYTRcdWNlYTVcdWNlYWNcdWNlYWRcdWNlYzFcdWNlZTRcdWNlZTVcdWNlZThcdWNlZWJcdWNlZWNcdWNlZjRcdWNlZjVcdWNlZjdcdWNlZjhcdWNlZjlcdWNmMDBcdWNmMDFcdWNmMDRcdWNmMDhcdWNmMTBcdWNmMTFcdWNmMTNcdWNmMTVcdWNmMWNcdWNmMjBcdWNmMjRcdWNmMmNcdWNm''@;'; put 'put ''MmRcdWNmMmZcdWNmMzBcdWNmMzFcdWNmMzhcdWNmNTRcdWNmNTVcdWNmNThcdWNmNWNcdWNmNjRcdWNmNjVcdWNmNjdcdWNmNjlcdWNmNzBcdWNmNzFcdWNmNzRcdWNmNzhcdWNmODBcdWNmODVcdWNmOGNcdWNmYTFcdWNmYThcdWNmYjBcdWNmYzRcdWNmZTBcdWNmZTFcdWNmZTRcdWNmZThc''@;'; put 'put ''dWNmZjBcdWNmZjFcdWNmZjNcdWNmZjVcdWNmZmNcdWQwMDBcdWQwMDRcdWQwMTFcdWQwMThcdWQwMmRcdWQwMzRcdWQwMzVcdWQwMzhcdWQwM2MiXSxbImM1NDEiLCJcdWQ3MTVcdWQ3MTZcdWQ3MTdcdWQ3MWFcdWQ3MWJcdWQ3MWRcdWQ3MWVcdWQ3MWZcdWQ3MjEiLDYsIlx1ZDcyYVx1ZDcy''@;'; put 'put ''Y1x1ZDcyZSIsNSwiXHVkNzM2XHVkNzM3XHVkNzM5Il0sWyJjNTYxIiwiXHVkNzNhXHVkNzNiXHVkNzNkIiw2LCJcdWQ3NDVcdWQ3NDZcdWQ3NDhcdWQ3NGEiLDUsIlx1ZDc1Mlx1ZDc1M1x1ZDc1NVx1ZDc1YSIsNF0sWyJjNTgxIiwiXHVkNzVmXHVkNzYyXHVkNzY0XHVkNzY2XHVkNzY3XHVk''@;'; put 'put ''NzY4XHVkNzZhXHVkNzZiXHVkNzZkXHVkNzZlXHVkNzZmXHVkNzcxXHVkNzcyXHVkNzczXHVkNzc1Iiw2LCJcdWQ3N2VcdWQ3N2ZcdWQ3ODBcdWQ3ODIiLDUsIlx1ZDc4YVx1ZDc4Ylx1ZDA0NFx1ZDA0NVx1ZDA0N1x1ZDA0OVx1ZDA1MFx1ZDA1NFx1ZDA1OFx1ZDA2MFx1ZDA2Y1x1ZDA2ZFx1''@;'; put 'put ''ZDA3MFx1ZDA3NFx1ZDA3Y1x1ZDA3ZFx1ZDA4MVx1ZDBhNFx1ZDBhNVx1ZDBhOFx1ZDBhY1x1ZDBiNFx1ZDBiNVx1ZDBiN1x1ZDBiOVx1ZDBjMFx1ZDBjMVx1ZDBjNFx1ZDBjOFx1ZDBjOVx1ZDBkMFx1ZDBkMVx1ZDBkM1x1ZDBkNFx1ZDBkNVx1ZDBkY1x1ZDBkZFx1ZDBlMFx1ZDBlNFx1ZDBl''@;'; put 'put ''Y1x1ZDBlZFx1ZDBlZlx1ZDBmMFx1ZDBmMVx1ZDBmOFx1ZDEwZFx1ZDEzMFx1ZDEzMVx1ZDEzNFx1ZDEzOFx1ZDEzYVx1ZDE0MFx1ZDE0MVx1ZDE0M1x1ZDE0NFx1ZDE0NVx1ZDE0Y1x1ZDE0ZFx1ZDE1MFx1ZDE1NFx1ZDE1Y1x1ZDE1ZFx1ZDE1Zlx1ZDE2MVx1ZDE2OFx1ZDE2Y1x1ZDE3Y1x1''@;'; put 'put ''ZDE4NFx1ZDE4OFx1ZDFhMFx1ZDFhMVx1ZDFhNFx1ZDFhOFx1ZDFiMFx1ZDFiMVx1ZDFiM1x1ZDFiNVx1ZDFiYVx1ZDFiY1x1ZDFjMFx1ZDFkOFx1ZDFmNFx1ZDFmOFx1ZDIwN1x1ZDIwOVx1ZDIxMFx1ZDIyY1x1ZDIyZFx1ZDIzMFx1ZDIzNFx1ZDIzY1x1ZDIzZFx1ZDIzZlx1ZDI0MVx1ZDI0''@;'; put 'put ''OFx1ZDI1YyJdLFsiYzY0MSIsIlx1ZDc4ZFx1ZDc4ZVx1ZDc4Zlx1ZDc5MSIsNiwiXHVkNzlhXHVkNzljXHVkNzllIiw1XSxbImM2YTEiLCJcdWQyNjRcdWQyODBcdWQyODFcdWQyODRcdWQyODhcdWQyOTBcdWQyOTFcdWQyOTVcdWQyOWNcdWQyYTBcdWQyYTRcdWQyYWNcdWQyYjFcdWQyYjhc''@;'; put 'put ''dWQyYjlcdWQyYmNcdWQyYmZcdWQyYzBcdWQyYzJcdWQyYzhcdWQyYzlcdWQyY2JcdWQyZDRcdWQyZDhcdWQyZGNcdWQyZTRcdWQyZTVcdWQyZjBcdWQyZjFcdWQyZjRcdWQyZjhcdWQzMDBcdWQzMDFcdWQzMDNcdWQzMDVcdWQzMGNcdWQzMGRcdWQzMGVcdWQzMTBcdWQzMTRcdWQzMTZcdWQz''@;'; put 'put ''MWNcdWQzMWRcdWQzMWZcdWQzMjBcdWQzMjFcdWQzMjVcdWQzMjhcdWQzMjlcdWQzMmNcdWQzMzBcdWQzMzhcdWQzMzlcdWQzM2JcdWQzM2NcdWQzM2RcdWQzNDRcdWQzNDVcdWQzN2NcdWQzN2RcdWQzODBcdWQzODRcdWQzOGNcdWQzOGRcdWQzOGZcdWQzOTBcdWQzOTFcdWQzOThcdWQzOTlc''@;'; put 'put ''dWQzOWNcdWQzYTBcdWQzYThcdWQzYTlcdWQzYWJcdWQzYWRcdWQzYjRcdWQzYjhcdWQzYmNcdWQzYzRcdWQzYzVcdWQzYzhcdWQzYzlcdWQzZDBcdWQzZDhcdWQzZTFcdWQzZTNcdWQzZWNcdWQzZWRcdWQzZjBcdWQzZjRcdWQzZmNcdWQzZmRcdWQzZmZcdWQ0MDEiXSxbImM3YTEiLCJcdWQ0''@;'; put 'put ''MDhcdWQ0MWRcdWQ0NDBcdWQ0NDRcdWQ0NWNcdWQ0NjBcdWQ0NjRcdWQ0NmRcdWQ0NmZcdWQ0NzhcdWQ0NzlcdWQ0N2NcdWQ0N2ZcdWQ0ODBcdWQ0ODJcdWQ0ODhcdWQ0ODlcdWQ0OGJcdWQ0OGRcdWQ0OTRcdWQ0YTlcdWQ0Y2NcdWQ0ZDBcdWQ0ZDRcdWQ0ZGNcdWQ0ZGZcdWQ0ZThcdWQ0ZWNc''@;'; put 'put ''dWQ0ZjBcdWQ0ZjhcdWQ0ZmJcdWQ0ZmRcdWQ1MDRcdWQ1MDhcdWQ1MGNcdWQ1MTRcdWQ1MTVcdWQ1MTdcdWQ1M2NcdWQ1M2RcdWQ1NDBcdWQ1NDRcdWQ1NGNcdWQ1NGRcdWQ1NGZcdWQ1NTFcdWQ1NThcdWQ1NTlcdWQ1NWNcdWQ1NjBcdWQ1NjVcdWQ1NjhcdWQ1NjlcdWQ1NmJcdWQ1NmRcdWQ1''@;'; put 'put ''NzRcdWQ1NzVcdWQ1NzhcdWQ1N2NcdWQ1ODRcdWQ1ODVcdWQ1ODdcdWQ1ODhcdWQ1ODlcdWQ1OTBcdWQ1YTVcdWQ1YzhcdWQ1YzlcdWQ1Y2NcdWQ1ZDBcdWQ1ZDJcdWQ1ZDhcdWQ1ZDlcdWQ1ZGJcdWQ1ZGRcdWQ1ZTRcdWQ1ZTVcdWQ1ZThcdWQ1ZWNcdWQ1ZjRcdWQ1ZjVcdWQ1ZjdcdWQ1Zjlc''@;'; put 'put ''dWQ2MDBcdWQ2MDFcdWQ2MDRcdWQ2MDhcdWQ2MTBcdWQ2MTFcdWQ2MTNcdWQ2MTRcdWQ2MTVcdWQ2MWNcdWQ2MjAiXSxbImM4YTEiLCJcdWQ2MjRcdWQ2MmRcdWQ2MzhcdWQ2MzlcdWQ2M2NcdWQ2NDBcdWQ2NDVcdWQ2NDhcdWQ2NDlcdWQ2NGJcdWQ2NGRcdWQ2NTFcdWQ2NTRcdWQ2NTVcdWQ2''@;'; put 'put ''NThcdWQ2NWNcdWQ2NjdcdWQ2NjlcdWQ2NzBcdWQ2NzFcdWQ2NzRcdWQ2ODNcdWQ2ODVcdWQ2OGNcdWQ2OGRcdWQ2OTBcdWQ2OTRcdWQ2OWRcdWQ2OWZcdWQ2YTFcdWQ2YThcdWQ2YWNcdWQ2YjBcdWQ2YjlcdWQ2YmJcdWQ2YzRcdWQ2YzVcdWQ2YzhcdWQ2Y2NcdWQ2ZDFcdWQ2ZDRcdWQ2ZDdc''@;'; put 'put ''dWQ2ZDlcdWQ2ZTBcdWQ2ZTRcdWQ2ZThcdWQ2ZjBcdWQ2ZjVcdWQ2ZmNcdWQ2ZmRcdWQ3MDBcdWQ3MDRcdWQ3MTFcdWQ3MThcdWQ3MTlcdWQ3MWNcdWQ3MjBcdWQ3MjhcdWQ3MjlcdWQ3MmJcdWQ3MmRcdWQ3MzRcdWQ3MzVcdWQ3MzhcdWQ3M2NcdWQ3NDRcdWQ3NDdcdWQ3NDlcdWQ3NTBcdWQ3''@;'; put 'put ''NTFcdWQ3NTRcdWQ3NTZcdWQ3NTdcdWQ3NThcdWQ3NTlcdWQ3NjBcdWQ3NjFcdWQ3NjNcdWQ3NjVcdWQ3NjlcdWQ3NmNcdWQ3NzBcdWQ3NzRcdWQ3N2NcdWQ3N2RcdWQ3ODFcdWQ3ODhcdWQ3ODlcdWQ3OGNcdWQ3OTBcdWQ3OThcdWQ3OTlcdWQ3OWJcdWQ3OWQiXSxbImNhYTEiLCJcdTRmM2Rc''@;'; put 'put ''dTRmNzNcdTUwNDdcdTUwZjlcdTUyYTBcdTUzZWZcdTU0NzVcdTU0ZTVcdTU2MDlcdTVhYzFcdTViYjZcdTY2ODdcdTY3YjZcdTY3YjdcdTY3ZWZcdTZiNGNcdTczYzJcdTc1YzJcdTdhM2NcdTgyZGJcdTgzMDRcdTg4NTdcdTg4ODhcdThhMzZcdThjYzhcdThkY2ZcdThlZmJcdThmZTZcdTk5''@;'; put 'put ''ZDVcdTUyM2JcdTUzNzRcdTU0MDRcdTYwNmFcdTYxNjRcdTZiYmNcdTczY2ZcdTgxMWFcdTg5YmFcdTg5ZDJcdTk1YTNcdTRmODNcdTUyMGFcdTU4YmVcdTU5NzhcdTU5ZTZcdTVlNzJcdTVlNzlcdTYxYzdcdTYzYzBcdTY3NDZcdTY3ZWNcdTY4N2ZcdTZmOTdcdTc2NGVcdTc3MGJcdTc4ZjVc''@;'; put 'put ''dTdhMDhcdTdhZmZcdTdjMjFcdTgwOWRcdTgyNmVcdTgyNzFcdThhZWJcdTk1OTNcdTRlNmJcdTU1OWRcdTY2ZjdcdTZlMzRcdTc4YTNcdTdhZWRcdTg0NWJcdTg5MTBcdTg3NGVcdTk3YThcdTUyZDhcdTU3NGVcdTU4MmFcdTVkNGNcdTYxMWZcdTYxYmVcdTYyMjFcdTY1NjJcdTY3ZDFcdTZh''@;'; put 'put ''NDRcdTZlMWJcdTc1MThcdTc1YjNcdTc2ZTNcdTc3YjBcdTdkM2FcdTkwYWZcdTk0NTFcdTk0NTJcdTlmOTUiXSxbImNiYTEiLCJcdTUzMjNcdTVjYWNcdTc1MzJcdTgwZGJcdTkyNDBcdTk1OThcdTUyNWJcdTU4MDhcdTU5ZGNcdTVjYTFcdTVkMTdcdTVlYjdcdTVmM2FcdTVmNGFcdTYxNzdc''@;'; put 'put ''dTZjNWZcdTc1N2FcdTc1ODZcdTdjZTBcdTdkNzNcdTdkYjFcdTdmOGNcdTgxNTRcdTgyMjFcdTg1OTFcdTg5NDFcdThiMWJcdTkyZmNcdTk2NGRcdTljNDdcdTRlY2JcdTRlZjdcdTUwMGJcdTUxZjFcdTU4NGZcdTYxMzdcdTYxM2VcdTYxNjhcdTY1MzlcdTY5ZWFcdTZmMTFcdTc1YTVcdTc2''@;'; put 'put ''ODZcdTc2ZDZcdTdiODdcdTgyYTVcdTg0Y2JcdWY5MDBcdTkzYTdcdTk1OGJcdTU1ODBcdTViYTJcdTU3NTFcdWY5MDFcdTdjYjNcdTdmYjlcdTkxYjVcdTUwMjhcdTUzYmJcdTVjNDVcdTVkZThcdTYyZDJcdTYzNmVcdTY0ZGFcdTY0ZTdcdTZlMjBcdTcwYWNcdTc5NWJcdThkZGRcdThlMWVc''@;'; put 'put ''dWY5MDJcdTkwN2RcdTkyNDVcdTkyZjhcdTRlN2VcdTRlZjZcdTUwNjVcdTVkZmVcdTVlZmFcdTYxMDZcdTY5NTdcdTgxNzFcdTg2NTRcdThlNDdcdTkzNzVcdTlhMmJcdTRlNWVcdTUwOTFcdTY3NzBcdTY4NDBcdTUxMDlcdTUyOGRcdTUyOTJcdTZhYTIiXSxbImNjYTEiLCJcdTc3YmNcdTky''@;'; put 'put ''MTBcdTllZDRcdTUyYWJcdTYwMmZcdThmZjJcdTUwNDhcdTYxYTlcdTYzZWRcdTY0Y2FcdTY4M2NcdTZhODRcdTZmYzBcdTgxODhcdTg5YTFcdTk2OTRcdTU4MDVcdTcyN2RcdTcyYWNcdTc1MDRcdTdkNzlcdTdlNmRcdTgwYTlcdTg5OGJcdThiNzRcdTkwNjNcdTlkNTFcdTYyODlcdTZjN2Fc''@;'; put 'put ''dTZmNTRcdTdkNTBcdTdmM2FcdThhMjNcdTUxN2NcdTYxNGFcdTdiOWRcdThiMTlcdTkyNTdcdTkzOGNcdTRlYWNcdTRmZDNcdTUwMWVcdTUwYmVcdTUxMDZcdTUyYzFcdTUyY2RcdTUzN2ZcdTU3NzBcdTU4ODNcdTVlOWFcdTVmOTFcdTYxNzZcdTYxYWNcdTY0Y2VcdTY1NmNcdTY2NmZcdTY2''@;'; put 'put ''YmJcdTY2ZjRcdTY4OTdcdTZkODdcdTcwODVcdTcwZjFcdTc0OWZcdTc0YTVcdTc0Y2FcdTc1ZDlcdTc4NmNcdTc4ZWNcdTdhZGZcdTdhZjZcdTdkNDVcdTdkOTNcdTgwMTVcdTgwM2ZcdTgxMWJcdTgzOTZcdThiNjZcdThmMTVcdTkwMTVcdTkzZTFcdTk4MDNcdTk4MzhcdTlhNWFcdTliZThc''@;'; put 'put ''dTRmYzJcdTU1NTNcdTU4M2FcdTU5NTFcdTViNjNcdTVjNDZcdTYwYjhcdTYyMTJcdTY4NDJcdTY4YjAiXSxbImNkYTEiLCJcdTY4ZThcdTZlYWFcdTc1NGNcdTc2NzhcdTc4Y2VcdTdhM2RcdTdjZmJcdTdlNmJcdTdlN2NcdThhMDhcdThhYTFcdThjM2ZcdTk2OGVcdTlkYzRcdTUzZTRcdTUz''@;'; put 'put ''ZTlcdTU0NGFcdTU0NzFcdTU2ZmFcdTU5ZDFcdTViNjRcdTVjM2JcdTVlYWJcdTYyZjdcdTY1MzdcdTY1NDVcdTY1NzJcdTY2YTBcdTY3YWZcdTY5YzFcdTZjYmRcdTc1ZmNcdTc2OTBcdTc3N2VcdTdhM2ZcdTdmOTRcdTgwMDNcdTgwYTFcdTgxOGZcdTgyZTZcdTgyZmRcdTgzZjBcdTg1YzFc''@;'; put 'put ''dTg4MzFcdTg4YjRcdThhYTVcdWY5MDNcdThmOWNcdTkzMmVcdTk2YzdcdTk4NjdcdTlhZDhcdTlmMTNcdTU0ZWRcdTY1OWJcdTY2ZjJcdTY4OGZcdTdhNDBcdThjMzdcdTlkNjBcdTU2ZjBcdTU3NjRcdTVkMTFcdTY2MDZcdTY4YjFcdTY4Y2RcdTZlZmVcdTc0MjhcdTg4OWVcdTliZTRcdTZj''@;'; put 'put ''NjhcdWY5MDRcdTlhYThcdTRmOWJcdTUxNmNcdTUxNzFcdTUyOWZcdTViNTRcdTVkZTVcdTYwNTBcdTYwNmRcdTYyZjFcdTYzYTdcdTY1M2JcdTczZDlcdTdhN2FcdTg2YTNcdThjYTJcdTk3OGZcdTRlMzJcdTViZTFcdTYyMDhcdTY3OWNcdTc0ZGMiXSxbImNlYTEiLCJcdTc5ZDFcdTgzZDNc''@;'; put 'put ''dThhODdcdThhYjJcdThkZThcdTkwNGVcdTkzNGJcdTk4NDZcdTVlZDNcdTY5ZThcdTg1ZmZcdTkwZWRcdWY5MDVcdTUxYTBcdTViOThcdTViZWNcdTYxNjNcdTY4ZmFcdTZiM2VcdTcwNGNcdTc0MmZcdTc0ZDhcdTdiYTFcdTdmNTBcdTgzYzVcdTg5YzBcdThjYWJcdTk1ZGNcdTk5MjhcdTUy''@;'; put 'put ''MmVcdTYwNWRcdTYyZWNcdTkwMDJcdTRmOGFcdTUxNDlcdTUzMjFcdTU4ZDlcdTVlZTNcdTY2ZTBcdTZkMzhcdTcwOWFcdTcyYzJcdTczZDZcdTdiNTBcdTgwZjFcdTk0NWJcdTUzNjZcdTYzOWJcdTdmNmJcdTRlNTZcdTUwODBcdTU4NGFcdTU4ZGVcdTYwMmFcdTYxMjdcdTYyZDBcdTY5ZDBc''@;'; put 'put ''dTliNDFcdTViOGZcdTdkMThcdTgwYjFcdThmNWZcdTRlYTRcdTUwZDFcdTU0YWNcdTU1YWNcdTViMGNcdTVkYTBcdTVkZTdcdTY1MmFcdTY1NGVcdTY4MjFcdTZhNGJcdTcyZTFcdTc2OGVcdTc3ZWZcdTdkNWVcdTdmZjlcdTgxYTBcdTg1NGVcdTg2ZGZcdThmMDNcdThmNGVcdTkwY2FcdTk5''@;'; put 'put ''MDNcdTlhNTVcdTliYWJcdTRlMThcdTRlNDVcdTRlNWRcdTRlYzdcdTRmZjFcdTUxNzdcdTUyZmUiXSxbImNmYTEiLCJcdTUzNDBcdTUzZTNcdTUzZTVcdTU0OGVcdTU2MTRcdTU3NzVcdTU3YTJcdTViYzdcdTVkODdcdTVlZDBcdTYxZmNcdTYyZDhcdTY1NTFcdTY3YjhcdTY3ZTlcdTY5Y2Jc''@;'; put 'put ''dTZiNTBcdTZiYzZcdTZiZWNcdTZjNDJcdTZlOWRcdTcwNzhcdTcyZDdcdTczOTZcdTc0MDNcdTc3YmZcdTc3ZTlcdTdhNzZcdTdkN2ZcdTgwMDlcdTgxZmNcdTgyMDVcdTgyMGFcdTgyZGZcdTg4NjJcdThiMzNcdThjZmNcdThlYzBcdTkwMTFcdTkwYjFcdTkyNjRcdTkyYjZcdTk5ZDJcdTlh''@;'; put 'put ''NDVcdTljZTlcdTlkZDdcdTlmOWNcdTU3MGJcdTVjNDBcdTgzY2FcdTk3YTBcdTk3YWJcdTllYjRcdTU0MWJcdTdhOThcdTdmYTRcdTg4ZDlcdThlY2RcdTkwZTFcdTU4MDBcdTVjNDhcdTYzOThcdTdhOWZcdTViYWVcdTVmMTNcdTdhNzlcdTdhYWVcdTgyOGVcdThlYWNcdTUwMjZcdTUyMzhc''@;'; put 'put ''dTUyZjhcdTUzNzdcdTU3MDhcdTYyZjNcdTYzNzJcdTZiMGFcdTZkYzNcdTc3MzdcdTUzYTVcdTczNTdcdTg1NjhcdThlNzZcdTk1ZDVcdTY3M2FcdTZhYzNcdTZmNzBcdThhNmRcdThlY2NcdTk5NGJcdWY5MDZcdTY2NzdcdTZiNzhcdThjYjQiXSxbImQwYTEiLCJcdTliM2NcdWY5MDdcdTUz''@;'; put 'put ''ZWJcdTU3MmRcdTU5NGVcdTYzYzZcdTY5ZmJcdTczZWFcdTc4NDVcdTdhYmFcdTdhYzVcdTdjZmVcdTg0NzVcdTg5OGZcdThkNzNcdTkwMzVcdTk1YThcdTUyZmJcdTU3NDdcdTc1NDdcdTdiNjBcdTgzY2NcdTkyMWVcdWY5MDhcdTZhNThcdTUxNGJcdTUyNGJcdTUyODdcdTYyMWZcdTY4ZDhc''@;'; put 'put ''dTY5NzVcdTk2OTlcdTUwYzVcdTUyYTRcdTUyZTRcdTYxYzNcdTY1YTRcdTY4MzlcdTY5ZmZcdTc0N2VcdTdiNGJcdTgyYjlcdTgzZWJcdTg5YjJcdThiMzlcdThmZDFcdTk5NDlcdWY5MDlcdTRlY2FcdTU5OTdcdTY0ZDJcdTY2MTFcdTZhOGVcdTc0MzRcdTc5ODFcdTc5YmRcdTgyYTlcdTg4''@;'; put 'put ''N2VcdTg4N2ZcdTg5NWZcdWY5MGFcdTkzMjZcdTRmMGJcdTUzY2FcdTYwMjVcdTYyNzFcdTZjNzJcdTdkMWFcdTdkNjZcdTRlOThcdTUxNjJcdTc3ZGNcdTgwYWZcdTRmMDFcdTRmMGVcdTUxNzZcdTUxODBcdTU1ZGNcdTU2NjhcdTU3M2JcdTU3ZmFcdTU3ZmNcdTU5MTRcdTU5NDdcdTU5OTNc''@;'; put 'put ''dTViYzRcdTVjOTBcdTVkMGVcdTVkZjFcdTVlN2VcdTVmY2NcdTYyODBcdTY1ZDdcdTY1ZTMiXSxbImQxYTEiLCJcdTY3MWVcdTY3MWZcdTY3NWVcdTY4Y2JcdTY4YzRcdTZhNWZcdTZiM2FcdTZjMjNcdTZjN2RcdTZjODJcdTZkYzdcdTczOThcdTc0MjZcdTc0MmFcdTc0ODJcdTc0YTNcdTc1''@;'; put 'put ''NzhcdTc1N2ZcdTc4ODFcdTc4ZWZcdTc5NDFcdTc5NDdcdTc5NDhcdTc5N2FcdTdiOTVcdTdkMDBcdTdkYmFcdTdmODhcdTgwMDZcdTgwMmRcdTgwOGNcdThhMThcdThiNGZcdThjNDhcdThkNzdcdTkzMjFcdTkzMjRcdTk4ZTJcdTk5NTFcdTlhMGVcdTlhMGZcdTlhNjVcdTllOTJcdTdkY2Fc''@;'; put 'put ''dTRmNzZcdTU0MDlcdTYyZWVcdTY4NTRcdTkxZDFcdTU1YWJcdTUxM2FcdWY5MGJcdWY5MGNcdTVhMWNcdTYxZTZcdWY5MGRcdTYyY2ZcdTYyZmZcdWY5MGUiLDUsIlx1OTBhM1x1ZjkxNCIsNCwiXHU4YWZlXHVmOTE5XHVmOTFhXHVmOTFiXHVmOTFjXHU2Njk2XHVmOTFkXHU3MTU2XHVmOTFl''@;'; put 'put ''XHVmOTFmXHU5NmUzXHVmOTIwXHU2MzRmXHU2MzdhXHU1MzU3XHVmOTIxXHU2NzhmXHU2OTYwXHU2ZTczXHVmOTIyXHU3NTM3XHVmOTIzXHVmOTI0XHVmOTI1Il0sWyJkMmExIiwiXHU3ZDBkXHVmOTI2XHVmOTI3XHU4ODcyXHU1NmNhXHU1YTE4XHVmOTI4Iiw0LCJcdTRlNDNcdWY5MmRcdTUx''@;'; put 'put ''NjdcdTU5NDhcdTY3ZjBcdTgwMTBcdWY5MmVcdTU5NzNcdTVlNzRcdTY0OWFcdTc5Y2FcdTVmZjVcdTYwNmNcdTYyYzhcdTYzN2JcdTViZTdcdTViZDdcdTUyYWFcdWY5MmZcdTU5NzRcdTVmMjlcdTYwMTJcdWY5MzBcdWY5MzFcdWY5MzJcdTc0NTlcdWY5MzMiLDUsIlx1OTlkMVx1ZjkzOSIs''@;'; put 'put ''MTAsIlx1NmZjM1x1Zjk0NFx1Zjk0NVx1ODFiZlx1OGZiMlx1NjBmMVx1Zjk0Nlx1Zjk0N1x1ODE2Nlx1Zjk0OFx1Zjk0OVx1NWMzZlx1Zjk0YSIsNywiXHU1YWU5XHU4YTI1XHU2NzdiXHU3ZDEwXHVmOTUyIiw1LCJcdTgwZmRcdWY5NThcdWY5NTlcdTVjM2NcdTZjZTVcdTUzM2ZcdTZlYmFc''@;'; put 'put ''dTU5MWFcdTgzMzYiXSxbImQzYTEiLCJcdTRlMzlcdTRlYjZcdTRmNDZcdTU1YWVcdTU3MThcdTU4YzdcdTVmNTZcdTY1YjdcdTY1ZTZcdTZhODBcdTZiYjVcdTZlNGRcdTc3ZWRcdTdhZWZcdTdjMWVcdTdkZGVcdTg2Y2JcdTg4OTJcdTkxMzJcdTkzNWJcdTY0YmJcdTZmYmVcdTczN2FcdTc1''@;'; put 'put ''YjhcdTkwNTRcdTU1NTZcdTU3NGRcdTYxYmFcdTY0ZDRcdTY2YzdcdTZkZTFcdTZlNWJcdTZmNmRcdTZmYjlcdTc1ZjBcdTgwNDNcdTgxYmRcdTg1NDFcdTg5ODNcdThhYzdcdThiNWFcdTkzMWZcdTZjOTNcdTc1NTNcdTdiNTRcdThlMGZcdTkwNWRcdTU1MTBcdTU4MDJcdTU4NThcdTVlNjJc''@;'; put 'put ''dTYyMDdcdTY0OWVcdTY4ZTBcdTc1NzZcdTdjZDZcdTg3YjNcdTllZThcdTRlZTNcdTU3ODhcdTU3NmVcdTU5MjdcdTVjMGRcdTVjYjFcdTVlMzZcdTVmODVcdTYyMzRcdTY0ZTFcdTczYjNcdTgxZmFcdTg4OGJcdThjYjhcdTk2OGFcdTllZGJcdTViODVcdTVmYjdcdTYwYjNcdTUwMTJcdTUy''@;'; put 'put ''MDBcdTUyMzBcdTU3MTZcdTU4MzVcdTU4NTdcdTVjMGVcdTVjNjBcdTVjZjZcdTVkOGJcdTVlYTZcdTVmOTJcdTYwYmNcdTYzMTFcdTYzODlcdTY0MTdcdTY4NDMiXSxbImQ0YTEiLCJcdTY4ZjlcdTZhYzJcdTZkZDhcdTZlMjFcdTZlZDRcdTZmZTRcdTcxZmVcdTc2ZGNcdTc3NzlcdTc5YjFc''@;'; put 'put ''dTdhM2JcdTg0MDRcdTg5YTlcdThjZWRcdThkZjNcdThlNDhcdTkwMDNcdTkwMTRcdTkwNTNcdTkwZmRcdTkzNGRcdTk2NzZcdTk3ZGNcdTZiZDJcdTcwMDZcdTcyNThcdTcyYTJcdTczNjhcdTc3NjNcdTc5YmZcdTdiZTRcdTdlOWJcdThiODBcdTU4YTlcdTYwYzdcdTY1NjZcdTY1ZmRcdTY2''@;'; put 'put ''YmVcdTZjOGNcdTcxMWVcdTcxYzlcdThjNWFcdTk4MTNcdTRlNmRcdTdhODFcdTRlZGRcdTUxYWNcdTUxY2RcdTUyZDVcdTU0MGNcdTYxYTdcdTY3NzFcdTY4NTBcdTY4ZGZcdTZkMWVcdTZmN2NcdTc1YmNcdTc3YjNcdTdhZTVcdTgwZjRcdTg0NjNcdTkyODVcdTUxNWNcdTY1OTdcdTY3NWNc''@;'; put 'put ''dTY3OTNcdTc1ZDhcdTdhYzdcdTgzNzNcdWY5NWFcdThjNDZcdTkwMTdcdTk4MmRcdTVjNmZcdTgxYzBcdTgyOWFcdTkwNDFcdTkwNmZcdTkyMGRcdTVmOTdcdTVkOWRcdTZhNTlcdTcxYzhcdTc2N2JcdTdiNDlcdTg1ZTRcdThiMDRcdTkxMjdcdTlhMzBcdTU1ODdcdTYxZjZcdWY5NWJcdTc2''@;'; put 'put ''NjlcdTdmODUiXSxbImQ1YTEiLCJcdTg2M2ZcdTg3YmFcdTg4ZjhcdTkwOGZcdWY5NWNcdTZkMWJcdTcwZDlcdTczZGVcdTdkNjFcdTg0M2RcdWY5NWRcdTkxNmFcdTk5ZjFcdWY5NWVcdTRlODJcdTUzNzVcdTZiMDRcdTZiMTJcdTcwM2VcdTcyMWJcdTg2MmRcdTllMWVcdTUyNGNcdThmYTNc''@;'; put 'put ''dTVkNTBcdTY0ZTVcdTY1MmNcdTZiMTZcdTZmZWJcdTdjNDNcdTdlOWNcdTg1Y2RcdTg5NjRcdTg5YmRcdTYyYzlcdTgxZDhcdTg4MWZcdTVlY2FcdTY3MTdcdTZkNmFcdTcyZmNcdTc0MDVcdTc0NmZcdTg3ODJcdTkwZGVcdTRmODZcdTVkMGRcdTVmYTBcdTg0MGFcdTUxYjdcdTYzYTBcdTc1''@;'; put 'put ''NjVcdTRlYWVcdTUwMDZcdTUxNjlcdTUxYzlcdTY4ODFcdTZhMTFcdTdjYWVcdTdjYjFcdTdjZTdcdTgyNmZcdThhZDJcdThmMWJcdTkxY2ZcdTRmYjZcdTUxMzdcdTUyZjVcdTU0NDJcdTVlZWNcdTYxNmVcdTYyM2VcdTY1YzVcdTZhZGFcdTZmZmVcdTc5MmFcdTg1ZGNcdTg4MjNcdTk1YWRc''@;'; put 'put ''dTlhNjJcdTlhNmFcdTllOTdcdTllY2VcdTUyOWJcdTY2YzZcdTZiNzdcdTcwMWRcdTc5MmJcdThmNjJcdTk3NDJcdTYxOTBcdTYyMDBcdTY1MjNcdTZmMjMiXSxbImQ2YTEiLCJcdTcxNDlcdTc0ODlcdTdkZjRcdTgwNmZcdTg0ZWVcdThmMjZcdTkwMjNcdTkzNGFcdTUxYmRcdTUyMTdcdTUy''@;'; put 'put ''YTNcdTZkMGNcdTcwYzhcdTg4YzJcdTVlYzlcdTY1ODJcdTZiYWVcdTZmYzJcdTdjM2VcdTczNzVcdTRlZTRcdTRmMzZcdTU2ZjlcdWY5NWZcdTVjYmFcdTVkYmFcdTYwMWNcdTczYjJcdTdiMmRcdTdmOWFcdTdmY2VcdTgwNDZcdTkwMWVcdTkyMzRcdTk2ZjZcdTk3NDhcdTk4MThcdTlmNjFc''@;'; put 'put ''dTRmOGJcdTZmYTdcdTc5YWVcdTkxYjRcdTk2YjdcdTUyZGVcdWY5NjBcdTY0ODhcdTY0YzRcdTZhZDNcdTZmNWVcdTcwMThcdTcyMTBcdTc2ZTdcdTgwMDFcdTg2MDZcdTg2NWNcdThkZWZcdThmMDVcdTk3MzJcdTliNmZcdTlkZmFcdTllNzVcdTc4OGNcdTc5N2ZcdTdkYTBcdTgzYzlcdTkz''@;'; put 'put ''MDRcdTllN2ZcdTllOTNcdThhZDZcdTU4ZGZcdTVmMDRcdTY3MjdcdTcwMjdcdTc0Y2ZcdTdjNjBcdTgwN2VcdTUxMjFcdTcwMjhcdTcyNjJcdTc4Y2FcdThjYzJcdThjZGFcdThjZjRcdTk2ZjdcdTRlODZcdTUwZGFcdTViZWVcdTVlZDZcdTY1OTlcdTcxY2VcdTc2NDJcdTc3YWRcdTgwNGFc''@;'; put 'put ''dTg0ZmMiXSxbImQ3YTEiLCJcdTkwN2NcdTliMjdcdTlmOGRcdTU4ZDhcdTVhNDFcdTVjNjJcdTZhMTNcdTZkZGFcdTZmMGZcdTc2M2JcdTdkMmZcdTdlMzdcdTg1MWVcdTg5MzhcdTkzZTRcdTk2NGJcdTUyODlcdTY1ZDJcdTY3ZjNcdTY5YjRcdTZkNDFcdTZlOWNcdTcwMGZcdTc0MDlcdTc0''@;'; put 'put ''NjBcdTc1NTlcdTc2MjRcdTc4NmJcdThiMmNcdTk4NWVcdTUxNmRcdTYyMmVcdTk2NzhcdTRmOTZcdTUwMmJcdTVkMTlcdTZkZWFcdTdkYjhcdThmMmFcdTVmOGJcdTYxNDRcdTY4MTdcdWY5NjFcdTk2ODZcdTUyZDJcdTgwOGJcdTUxZGNcdTUxY2NcdTY5NWVcdTdhMWNcdTdkYmVcdTgzZjFc''@;'; put 'put ''dTk2NzVcdTRmZGFcdTUyMjlcdTUzOThcdTU0MGZcdTU1MGVcdTVjNjVcdTYwYTdcdTY3NGVcdTY4YThcdTZkNmNcdTcyODFcdTcyZjhcdTc0MDZcdTc0ODNcdWY5NjJcdTc1ZTJcdTdjNmNcdTdmNzlcdTdmYjhcdTgzODlcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTkxZDBcdTk2ZTJcdTliYzlcdTU0''@;'; put 'put ''MWRcdTZmN2VcdTcxZDBcdTc0OThcdTg1ZmFcdThlYWFcdTk2YTNcdTljNTdcdTllOWZcdTY3OTdcdTZkY2JcdTc0MzNcdTgxZThcdTk3MTZcdTc4MmMiXSxbImQ4YTEiLCJcdTdhY2JcdTdiMjBcdTdjOTJcdTY0NjlcdTc0NmFcdTc1ZjJcdTc4YmNcdTc4ZThcdTk5YWNcdTliNTRcdTllYmJc''@;'; put 'put ''dTViZGVcdTVlNTVcdTZmMjBcdTgxOWNcdTgzYWJcdTkwODhcdTRlMDdcdTUzNGRcdTVhMjlcdTVkZDJcdTVmNGVcdTYxNjJcdTYzM2RcdTY2NjlcdTY2ZmNcdTZlZmZcdTZmMmJcdTcwNjNcdTc3OWVcdTg0MmNcdTg1MTNcdTg4M2JcdThmMTNcdTk5NDVcdTljM2JcdTU1MWNcdTYyYjlcdTY3''@;'; put 'put ''MmJcdTZjYWJcdTgzMDlcdTg5NmFcdTk3N2FcdTRlYTFcdTU5ODRcdTVmZDhcdTVmZDlcdTY3MWJcdTdkYjJcdTdmNTRcdTgyOTJcdTgzMmJcdTgzYmRcdThmMWVcdTkwOTlcdTU3Y2JcdTU5YjlcdTVhOTJcdTViZDBcdTY2MjdcdTY3OWFcdTY4ODVcdTZiY2ZcdTcxNjRcdTdmNzVcdThjYjdc''@;'; put 'put ''dThjZTNcdTkwODFcdTliNDVcdTgxMDhcdThjOGFcdTk2NGNcdTlhNDBcdTllYTVcdTViNWZcdTZjMTNcdTczMWJcdTc2ZjJcdTc2ZGZcdTg0MGNcdTUxYWFcdTg5OTNcdTUxNGRcdTUxOTVcdTUyYzlcdTY4YzlcdTZjOTRcdTc3MDRcdTc3MjBcdTdkYmZcdTdkZWNcdTk3NjJcdTllYjVcdTZl''@;'; put 'put ''YzUiXSxbImQ5YTEiLCJcdTg1MTFcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTY2OWRcdTY5MjdcdTZlOWZcdTc2YmZcdTc3OTFcdTgzMTdcdTg0YzJcdTg3OWZcdTkxNjlcdTkyOThcdTljZjRcdTg4ODJcdTRmYWVcdTUxOTJcdTUyZGZcdTU5YzZcdTVlM2RcdTYxNTVcdTY0NzhcdTY0Nzlc''@;'; put 'put ''dTY2YWVcdTY3ZDBcdTZhMjFcdTZiY2RcdTZiZGJcdTcyNWZcdTcyNjFcdTc0NDFcdTc3MzhcdTc3ZGJcdTgwMTdcdTgyYmNcdTgzMDVcdThiMDBcdThiMjhcdThjOGNcdTY3MjhcdTZjOTBcdTcyNjdcdTc2ZWVcdTc3NjZcdTdhNDZcdTlkYTlcdTZiN2ZcdTZjOTJcdTU5MjJcdTY3MjZcdTg0''@;'; put 'put ''OTlcdTUzNmZcdTU4OTNcdTU5OTlcdTVlZGZcdTYzY2ZcdTY2MzRcdTY3NzNcdTZlM2FcdTczMmJcdTdhZDdcdTgyZDdcdTkzMjhcdTUyZDlcdTVkZWJcdTYxYWVcdTYxY2JcdTYyMGFcdTYyYzdcdTY0YWJcdTY1ZTBcdTY5NTlcdTZiNjZcdTZiY2JcdTcxMjFcdTczZjdcdTc1NWRcdTdlNDZc''@;'; put 'put ''dTgyMWVcdTgzMDJcdTg1NmFcdThhYTNcdThjYmZcdTk3MjdcdTlkNjFcdTU4YThcdTllZDhcdTUwMTFcdTUyMGVcdTU0M2JcdTU1NGZcdTY1ODciXSxbImRhYTEiLCJcdTZjNzZcdTdkMGFcdTdkMGJcdTgwNWVcdTg2OGFcdTk1ODBcdTk2ZWZcdTUyZmZcdTZjOTVcdTcyNjlcdTU0NzNcdTVh''@;'; put 'put ''OWFcdTVjM2VcdTVkNGJcdTVmNGNcdTVmYWVcdTY3MmFcdTY4YjZcdTY5NjNcdTZlM2NcdTZlNDRcdTc3MDlcdTdjNzNcdTdmOGVcdTg1ODdcdThiMGVcdThmZjdcdTk3NjFcdTllZjRcdTVjYjdcdTYwYjZcdTYxMGRcdTYxYWJcdTY1NGZcdTY1ZmJcdTY1ZmNcdTZjMTFcdTZjZWZcdTczOWZc''@;'; put 'put ''dTczYzlcdTdkZTFcdTk1OTRcdTViYzZcdTg3MWNcdThiMTBcdTUyNWRcdTUzNWFcdTYyY2RcdTY0MGZcdTY0YjJcdTY3MzRcdTZhMzhcdTZjY2FcdTczYzBcdTc0OWVcdTdiOTRcdTdjOTVcdTdlMWJcdTgxOGFcdTgyMzZcdTg1ODRcdThmZWJcdTk2ZjlcdTk5YzFcdTRmMzRcdTUzNGFcdTUz''@;'; put 'put ''Y2RcdTUzZGJcdTYyY2NcdTY0MmNcdTY1MDBcdTY1OTFcdTY5YzNcdTZjZWVcdTZmNThcdTczZWRcdTc1NTRcdTc2MjJcdTc2ZTRcdTc2ZmNcdTc4ZDBcdTc4ZmJcdTc5MmNcdTdkNDZcdTgyMmNcdTg3ZTBcdThmZDRcdTk4MTJcdTk4ZWZcdTUyYzNcdTYyZDRcdTY0YTVcdTZlMjRcdTZmNTEi''@;'; put 'put ''XSxbImRiYTEiLCJcdTc2N2NcdThkY2JcdTkxYjFcdTkyNjJcdTlhZWVcdTliNDNcdTUwMjNcdTUwOGRcdTU3NGFcdTU5YThcdTVjMjhcdTVlNDdcdTVmNzdcdTYyM2ZcdTY1M2VcdTY1YjlcdTY1YzFcdTY2MDlcdTY3OGJcdTY5OWNcdTZlYzJcdTc4YzVcdTdkMjFcdTgwYWFcdTgxODBcdTgy''@;'; put 'put ''MmJcdTgyYjNcdTg0YTFcdTg2OGNcdThhMmFcdThiMTdcdTkwYTZcdTk2MzJcdTlmOTBcdTUwMGRcdTRmZjNcdWY5NjNcdTU3ZjlcdTVmOThcdTYyZGNcdTYzOTJcdTY3NmZcdTZlNDNcdTcxMTlcdTc2YzNcdTgwY2NcdTgwZGFcdTg4ZjRcdTg4ZjVcdTg5MTlcdThjZTBcdThmMjlcdTkxNGRc''@;'; put 'put ''dTk2NmFcdTRmMmZcdTRmNzBcdTVlMWJcdTY3Y2ZcdTY4MjJcdTc2N2RcdTc2N2VcdTliNDRcdTVlNjFcdTZhMGFcdTcxNjlcdTcxZDRcdTc1NmFcdWY5NjRcdTdlNDFcdTg1NDNcdTg1ZTlcdTk4ZGNcdTRmMTBcdTdiNGZcdTdmNzBcdTk1YTVcdTUxZTFcdTVlMDZcdTY4YjVcdTZjM2VcdTZj''@;'; put 'put ''NGVcdTZjZGJcdTcyYWZcdTdiYzRcdTgzMDNcdTZjZDVcdTc0M2FcdTUwZmJcdTUyODhcdTU4YzFcdTY0ZDhcdTZhOTdcdTc0YTdcdTc2NTYiXSxbImRjYTEiLCJcdTc4YTdcdTg2MTdcdTk1ZTJcdTk3MzlcdWY5NjVcdTUzNWVcdTVmMDFcdThiOGFcdThmYThcdThmYWZcdTkwOGFcdTUyMjVc''@;'; put 'put ''dTc3YTVcdTljNDlcdTlmMDhcdTRlMTlcdTUwMDJcdTUxNzVcdTVjNWJcdTVlNzdcdTY2MWVcdTY2M2FcdTY3YzRcdTY4YzVcdTcwYjNcdTc1MDFcdTc1YzVcdTc5YzlcdTdhZGRcdThmMjdcdTk5MjBcdTlhMDhcdTRmZGRcdTU4MjFcdTU4MzFcdTViZjZcdTY2NmVcdTZiNjVcdTZkMTFcdTZl''@;'; put 'put ''N2FcdTZmN2RcdTczZTRcdTc1MmJcdTgzZTlcdTg4ZGNcdTg5MTNcdThiNWNcdThmMTRcdTRmMGZcdTUwZDVcdTUzMTBcdTUzNWNcdTViOTNcdTVmYTlcdTY3MGRcdTc5OGZcdTgxNzlcdTgzMmZcdTg1MTRcdTg5MDdcdTg5ODZcdThmMzlcdThmM2JcdTk5YTVcdTljMTJcdTY3MmNcdTRlNzZc''@;'; put 'put ''dTRmZjhcdTU5NDlcdTVjMDFcdTVjZWZcdTVjZjBcdTYzNjdcdTY4ZDJcdTcwZmRcdTcxYTJcdTc0MmJcdTdlMmJcdTg0ZWNcdTg3MDJcdTkwMjJcdTkyZDJcdTljZjNcdTRlMGRcdTRlZDhcdTRmZWZcdTUwODVcdTUyNTZcdTUyNmZcdTU0MjZcdTU0OTBcdTU3ZTBcdTU5MmJcdTVhNjYiXSxb''@;'; put 'put ''ImRkYTEiLCJcdTViNWFcdTViNzVcdTViY2NcdTVlOWNcdWY5NjZcdTYyNzZcdTY1NzdcdTY1YTdcdTZkNmVcdTZlYTVcdTcyMzZcdTdiMjZcdTdjM2ZcdTdmMzZcdTgxNTBcdTgxNTFcdTgxOWFcdTgyNDBcdTgyOTlcdTgzYTlcdThhMDNcdThjYTBcdThjZTZcdThjZmJcdThkNzRcdThkYmFc''@;'; put 'put ''dTkwZThcdTkxZGNcdTk2MWNcdTk2NDRcdTk5ZDlcdTljZTdcdTUzMTdcdTUyMDZcdTU0MjlcdTU2NzRcdTU4YjNcdTU5NTRcdTU5NmVcdTVmZmZcdTYxYTRcdTYyNmVcdTY2MTBcdTZjN2VcdTcxMWFcdTc2YzZcdTdjODlcdTdjZGVcdTdkMWJcdTgyYWNcdThjYzFcdTk2ZjBcdWY5NjdcdTRm''@;'; put 'put ''NWJcdTVmMTdcdTVmN2ZcdTYyYzJcdTVkMjlcdTY3MGJcdTY4ZGFcdTc4N2NcdTdlNDNcdTlkNmNcdTRlMTVcdTUwOTlcdTUzMTVcdTUzMmFcdTUzNTFcdTU5ODNcdTVhNjJcdTVlODdcdTYwYjJcdTYxOGFcdTYyNDlcdTYyNzlcdTY1OTBcdTY3ODdcdTY5YTdcdTZiZDRcdTZiZDZcdTZiZDdc''@;'; put 'put ''dTZiZDhcdTZjYjhcdWY5NjhcdTc0MzVcdTc1ZmFcdTc4MTJcdTc4OTFcdTc5ZDVcdTc5ZDhcdTdjODNcdTdkY2JcdTdmZTFcdTgwYTUiXSxbImRlYTEiLCJcdTgxM2VcdTgxYzJcdTgzZjJcdTg3MWFcdTg4ZThcdThhYjlcdThiNmNcdThjYmJcdTkxMTlcdTk3NWVcdTk4ZGJcdTlmM2JcdTU2''@;'; put 'put ''YWNcdTViMmFcdTVmNmNcdTY1OGNcdTZhYjNcdTZiYWZcdTZkNWNcdTZmZjFcdTcwMTVcdTcyNWRcdTczYWRcdThjYTdcdThjZDNcdTk4M2JcdTYxOTFcdTZjMzdcdTgwNThcdTlhMDFcdTRlNGRcdTRlOGJcdTRlOWJcdTRlZDVcdTRmM2FcdTRmM2NcdTRmN2ZcdTRmZGZcdTUwZmZcdTUzZjJc''@;'; put 'put ''dTUzZjhcdTU1MDZcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5NjJcdTVhMTFcdTViZWJcdTViZmFcdTVjMDRcdTVkZjNcdTVlMmJcdTVmOTlcdTYwMWRcdTYzNjhcdTY1OWNcdTY1YWZcdTY3ZjZcdTY3ZmJcdTY4YWRcdTZiN2JcdTZjOTlcdTZjZDdcdTZlMjNcdTcwMDlcdTczNDVcdTc4MDJcdTc5''@;'; put 'put ''M2VcdTc5NDBcdTc5NjBcdTc5YzFcdTdiZTlcdTdkMTdcdTdkNzJcdTgwODZcdTgyMGRcdTgzOGVcdTg0ZDFcdTg2YzdcdTg4ZGZcdThhNTBcdThhNWVcdThiMWRcdThjZGNcdThkNjZcdThmYWRcdTkwYWFcdTk4ZmNcdTk5ZGZcdTllOWRcdTUyNGFcdWY5NjlcdTY3MTRcdWY5NmEiXSxbImRm''@;'; put 'put ''YTEiLCJcdTUwOThcdTUyMmFcdTVjNzFcdTY1NjNcdTZjNTVcdTczY2FcdTc1MjNcdTc1OWRcdTdiOTdcdTg0OWNcdTkxNzhcdTk3MzBcdTRlNzdcdTY0OTJcdTZiYmFcdTcxNWVcdTg1YTlcdTRlMDlcdWY5NmJcdTY3NDlcdTY4ZWVcdTZlMTdcdTgyOWZcdTg1MThcdTg4NmJcdTYzZjdcdTZm''@;'; put 'put ''ODFcdTkyMTJcdTk4YWZcdTRlMGFcdTUwYjdcdTUwY2ZcdTUxMWZcdTU1NDZcdTU1YWFcdTU2MTdcdTViNDBcdTVjMTlcdTVjZTBcdTVlMzhcdTVlOGFcdTVlYTBcdTVlYzJcdTYwZjNcdTY4NTFcdTZhNjFcdTZlNThcdTcyM2RcdTcyNDBcdTcyYzBcdTc2ZjhcdTc5NjVcdTdiYjFcdTdmZDRc''@;'; put 'put ''dTg4ZjNcdTg5ZjRcdThhNzNcdThjNjFcdThjZGVcdTk3MWNcdTU4NWVcdTc0YmRcdThjZmRcdTU1YzdcdWY5NmNcdTdhNjFcdTdkMjJcdTgyNzJcdTcyNzJcdTc1MWZcdTc1MjVcdWY5NmRcdTdiMTlcdTU4ODVcdTU4ZmJcdTVkYmNcdTVlOGZcdTVlYjZcdTVmOTBcdTYwNTVcdTYyOTJcdTYz''@;'; put 'put ''N2ZcdTY1NGRcdTY2OTFcdTY2ZDlcdTY2ZjhcdTY4MTZcdTY4ZjJcdTcyODBcdTc0NWVcdTdiNmVcdTdkNmVcdTdkZDZcdTdmNzIiXSxbImUwYTEiLCJcdTgwZTVcdTgyMTJcdTg1YWZcdTg5N2ZcdThhOTNcdTkwMWRcdTkyZTRcdTllY2RcdTlmMjBcdTU5MTVcdTU5NmRcdTVlMmRcdTYwZGNc''@;'; put 'put ''dTY2MTRcdTY2NzNcdTY3OTBcdTZjNTBcdTZkYzVcdTZmNWZcdTc3ZjNcdTc4YTlcdTg0YzZcdTkxY2JcdTkzMmJcdTRlZDlcdTUwY2FcdTUxNDhcdTU1ODRcdTViMGJcdTViYTNcdTYyNDdcdTY1N2VcdTY1Y2JcdTZlMzJcdTcxN2RcdTc0MDFcdTc0NDRcdTc0ODdcdTc0YmZcdTc2NmNcdTc5''@;'; put 'put ''YWFcdTdkZGFcdTdlNTVcdTdmYThcdTgxN2FcdTgxYjNcdTgyMzlcdTg2MWFcdTg3ZWNcdThhNzVcdThkZTNcdTkwNzhcdTkyOTFcdTk0MjVcdTk5NGRcdTliYWVcdTUzNjhcdTVjNTFcdTY5NTRcdTZjYzRcdTZkMjlcdTZlMmJcdTgyMGNcdTg1OWJcdTg5M2JcdThhMmRcdThhYWFcdTk2ZWFc''@;'; put 'put ''dTlmNjdcdTUyNjFcdTY2YjlcdTZiYjJcdTdlOTZcdTg3ZmVcdThkMGRcdTk1ODNcdTk2NWRcdTY1MWRcdTZkODlcdTcxZWVcdWY5NmVcdTU3Y2VcdTU5ZDNcdTViYWNcdTYwMjdcdTYwZmFcdTYyMTBcdTY2MWZcdTY2NWZcdTczMjlcdTczZjlcdTc2ZGJcdTc3MDFcdTdiNmMiXSxbImUxYTEi''@;'; put 'put ''LCJcdTgwNTZcdTgwNzJcdTgxNjVcdThhYTBcdTkxOTJcdTRlMTZcdTUyZTJcdTZiNzJcdTZkMTdcdTdhMDVcdTdiMzlcdTdkMzBcdWY5NmZcdThjYjBcdTUzZWNcdTU2MmZcdTU4NTFcdTViYjVcdTVjMGZcdTVjMTFcdTVkZTJcdTYyNDBcdTYzODNcdTY0MTRcdTY2MmRcdTY4YjNcdTZjYmNc''@;'; put 'put ''dTZkODhcdTZlYWZcdTcwMWZcdTcwYTRcdTcxZDJcdTc1MjZcdTc1OGZcdTc1OGVcdTc2MTlcdTdiMTFcdTdiZTBcdTdjMmJcdTdkMjBcdTdkMzlcdTg1MmNcdTg1NmRcdTg2MDdcdThhMzRcdTkwMGRcdTkwNjFcdTkwYjVcdTkyYjdcdTk3ZjZcdTlhMzdcdTRmZDdcdTVjNmNcdTY3NWZcdTZk''@;'; put 'put ''OTFcdTdjOWZcdTdlOGNcdThiMTZcdThkMTZcdTkwMWZcdTViNmJcdTVkZmRcdTY0MGRcdTg0YzBcdTkwNWNcdTk4ZTFcdTczODdcdTViOGJcdTYwOWFcdTY3N2VcdTZkZGVcdThhMWZcdThhYTZcdTkwMDFcdTk4MGNcdTUyMzdcdWY5NzBcdTcwNTFcdTc4OGVcdTkzOTZcdTg4NzBcdTkxZDdc''@;'; put 'put ''dTRmZWVcdTUzZDdcdTU1ZmRcdTU2ZGFcdTU3ODJcdTU4ZmRcdTVhYzJcdTViODhcdTVjYWJcdTVjYzBcdTVlMjVcdTYxMDEiXSxbImUyYTEiLCJcdTYyMGRcdTYyNGJcdTYzODhcdTY0MWNcdTY1MzZcdTY1NzhcdTZhMzlcdTZiOGFcdTZjMzRcdTZkMTlcdTZmMzFcdTcxZTdcdTcyZTlcdTcz''@;'; put 'put ''NzhcdTc0MDdcdTc0YjJcdTc2MjZcdTc3NjFcdTc5YzBcdTdhNTdcdTdhZWFcdTdjYjlcdTdkOGZcdTdkYWNcdTdlNjFcdTdmOWVcdTgxMjlcdTgzMzFcdTg0OTBcdTg0ZGFcdTg1ZWFcdTg4OTZcdThhYjBcdThiOTBcdThmMzhcdTkwNDJcdTkwODNcdTkxNmNcdTkyOTZcdTkyYjlcdTk2OGJc''@;'; put 'put ''dTk2YTdcdTk2YThcdTk2ZDZcdTk3MDBcdTk4MDhcdTk5OTZcdTlhZDNcdTliMWFcdTUzZDRcdTU4N2VcdTU5MTlcdTViNzBcdTViYmZcdTZkZDFcdTZmNWFcdTcxOWZcdTc0MjFcdTc0YjlcdTgwODVcdTgzZmRcdTVkZTFcdTVmODdcdTVmYWFcdTYwNDJcdTY1ZWNcdTY4MTJcdTY5NmZcdTZh''@;'; put 'put ''NTNcdTZiODlcdTZkMzVcdTZkZjNcdTczZTNcdTc2ZmVcdTc3YWNcdTdiNGRcdTdkMTRcdTgxMjNcdTgyMWNcdTgzNDBcdTg0ZjRcdTg1NjNcdThhNjJcdThhYzRcdTkxODdcdTkzMWVcdTk4MDZcdTk5YjRcdTYyMGNcdTg4NTNcdThmZjBcdTkyNjVcdTVkMDdcdTVkMjciXSxbImUzYTEiLCJc''@;'; put 'put ''dTVkNjlcdTc0NWZcdTgxOWRcdTg3NjhcdTZmZDVcdTYyZmVcdTdmZDJcdTg5MzZcdTg5NzJcdTRlMWVcdTRlNThcdTUwZTdcdTUyZGRcdTUzNDdcdTYyN2ZcdTY2MDdcdTdlNjlcdTg4MDVcdTk2NWVcdTRmOGRcdTUzMTlcdTU2MzZcdTU5Y2JcdTVhYTRcdTVjMzhcdTVjNGVcdTVjNGRcdTVl''@;'; put 'put ''MDJcdTVmMTFcdTYwNDNcdTY1YmRcdTY2MmZcdTY2NDJcdTY3YmVcdTY3ZjRcdTczMWNcdTc3ZTJcdTc5M2FcdTdmYzVcdTg0OTRcdTg0Y2RcdTg5OTZcdThhNjZcdThhNjlcdThhZTFcdThjNTVcdThjN2FcdTU3ZjRcdTViZDRcdTVmMGZcdTYwNmZcdTYyZWRcdTY5MGRcdTZiOTZcdTZlNWNc''@;'; put 'put ''dTcxODRcdTdiZDJcdTg3NTVcdThiNThcdThlZmVcdTk4ZGZcdTk4ZmVcdTRmMzhcdTRmODFcdTRmZTFcdTU0N2JcdTVhMjBcdTViYjhcdTYxM2NcdTY1YjBcdTY2NjhcdTcxZmNcdTc1MzNcdTc5NWVcdTdkMzNcdTgxNGVcdTgxZTNcdTgzOThcdTg1YWFcdTg1Y2VcdTg3MDNcdThhMGFcdThl''@;'; put 'put ''YWJcdThmOWJcdWY5NzFcdThmYzVcdTU5MzFcdTViYTRcdTViZTZcdTYwODlcdTViZTlcdTVjMGJcdTVmYzNcdTZjODEiXSxbImU0YTEiLCJcdWY5NzJcdTZkZjFcdTcwMGJcdTc1MWFcdTgyYWZcdThhZjZcdTRlYzBcdTUzNDFcdWY5NzNcdTk2ZDlcdTZjMGZcdTRlOWVcdTRmYzRcdTUxNTJc''@;'; put 'put ''dTU1NWVcdTVhMjVcdTVjZThcdTYyMTFcdTcyNTlcdTgyYmRcdTgzYWFcdTg2ZmVcdTg4NTlcdThhMWRcdTk2M2ZcdTk2YzVcdTk5MTNcdTlkMDlcdTlkNWRcdTU4MGFcdTVjYjNcdTVkYmRcdTVlNDRcdTYwZTFcdTYxMTVcdTYzZTFcdTZhMDJcdTZlMjVcdTkxMDJcdTkzNTRcdTk4NGVcdTlj''@;'; put 'put ''MTBcdTlmNzdcdTViODlcdTVjYjhcdTYzMDlcdTY2NGZcdTY4NDhcdTc3M2NcdTk2YzFcdTk3OGRcdTk4NTRcdTliOWZcdTY1YTFcdThiMDFcdThlY2JcdTk1YmNcdTU1MzVcdTVjYTlcdTVkZDZcdTVlYjVcdTY2OTdcdTc2NGNcdTgzZjRcdTk1YzdcdTU4ZDNcdTYyYmNcdTcyY2VcdTlkMjhc''@;'; put 'put ''dTRlZjBcdTU5MmVcdTYwMGZcdTY2M2JcdTZiODNcdTc5ZTdcdTlkMjZcdTUzOTNcdTU0YzBcdTU3YzNcdTVkMTZcdTYxMWJcdTY2ZDZcdTZkYWZcdTc4OGRcdTgyN2VcdTk2OThcdTk3NDRcdTUzODRcdTYyN2NcdTYzOTZcdTZkYjJcdTdlMGFcdTgxNGJcdTk4NGQiXSxbImU1YTEiLCJcdTZh''@;'; put 'put ''ZmJcdTdmNGNcdTlkYWZcdTllMWFcdTRlNWZcdTUwM2JcdTUxYjZcdTU5MWNcdTYwZjlcdTYzZjZcdTY5MzBcdTcyM2FcdTgwMzZcdWY5NzRcdTkxY2VcdTVmMzFcdWY5NzVcdWY5NzZcdTdkMDRcdTgyZTVcdTg0NmZcdTg0YmJcdTg1ZTVcdThlOGRcdWY5NzdcdTRmNmZcdWY5NzhcdWY5Nzlc''@;'; put 'put ''dTU4ZTRcdTViNDNcdTYwNTlcdTYzZGFcdTY1MThcdTY1NmRcdTY2OThcdWY5N2FcdTY5NGFcdTZhMjNcdTZkMGJcdTcwMDFcdTcxNmNcdTc1ZDJcdTc2MGRcdTc5YjNcdTdhNzBcdWY5N2JcdTdmOGFcdWY5N2NcdTg5NDRcdWY5N2RcdThiOTNcdTkxYzBcdTk2N2RcdWY5N2VcdTk5MGFcdTU3''@;'; put 'put ''MDRcdTVmYTFcdTY1YmNcdTZmMDFcdTc2MDBcdTc5YTZcdThhOWVcdTk5YWRcdTliNWFcdTlmNmNcdTUxMDRcdTYxYjZcdTYyOTFcdTZhOGRcdTgxYzZcdTUwNDNcdTU4MzBcdTVmNjZcdTcxMDlcdThhMDBcdThhZmFcdTViN2NcdTg2MTZcdTRmZmFcdTUxM2NcdTU2YjRcdTU5NDRcdTYzYTlc''@;'; put 'put ''dTZkZjlcdTVkYWFcdTY5NmRcdTUxODZcdTRlODhcdTRmNTlcdWY5N2ZcdWY5ODBcdWY5ODFcdTU5ODJcdWY5ODIiXSxbImU2YTEiLCJcdWY5ODNcdTZiNWZcdTZjNWRcdWY5ODRcdTc0YjVcdTc5MTZcdWY5ODVcdTgyMDdcdTgyNDVcdTgzMzlcdThmM2ZcdThmNWRcdWY5ODZcdTk5MThcdWY5''@;'; put 'put ''ODdcdWY5ODhcdWY5ODlcdTRlYTZcdWY5OGFcdTU3ZGZcdTVmNzlcdTY2MTNcdWY5OGJcdWY5OGNcdTc1YWJcdTdlNzlcdThiNmZcdWY5OGRcdTkwMDZcdTlhNWJcdTU2YTVcdTU4MjdcdTU5ZjhcdTVhMWZcdTViYjRcdWY5OGVcdTVlZjZcdWY5OGZcdWY5OTBcdTYzNTBcdTYzM2JcdWY5OTFc''@;'; put 'put ''dTY5M2RcdTZjODdcdTZjYmZcdTZkOGVcdTZkOTNcdTZkZjVcdTZmMTRcdWY5OTJcdTcwZGZcdTcxMzZcdTcxNTlcdWY5OTNcdTcxYzNcdTcxZDVcdWY5OTRcdTc4NGZcdTc4NmZcdWY5OTVcdTdiNzVcdTdkZTNcdWY5OTZcdTdlMmZcdWY5OTdcdTg4NGRcdThlZGZcdWY5OThcdWY5OTlcdWY5''@;'; put 'put ''OWFcdTkyNWJcdWY5OWJcdTljZjZcdWY5OWNcdWY5OWRcdWY5OWVcdTYwODVcdTZkODVcdWY5OWZcdTcxYjFcdWY5YTBcdWY5YTFcdTk1YjFcdTUzYWRcdWY5YTJcdWY5YTNcdWY5YTRcdTY3ZDNcdWY5YTVcdTcwOGVcdTcxMzBcdTc0MzBcdTgyNzZcdTgyZDIiXSxbImU3YTEiLCJcdWY5YTZc''@;'; put 'put ''dTk1YmJcdTlhZTVcdTllN2RcdTY2YzRcdWY5YTdcdTcxYzFcdTg0NDlcdWY5YThcdWY5YTlcdTU4NGJcdWY5YWFcdWY5YWJcdTVkYjhcdTVmNzFcdWY5YWNcdTY2MjBcdTY2OGVcdTY5NzlcdTY5YWVcdTZjMzhcdTZjZjNcdTZlMzZcdTZmNDFcdTZmZGFcdTcwMWJcdTcwMmZcdTcxNTBcdTcx''@;'; put 'put ''ZGZcdTczNzBcdWY5YWRcdTc0NWJcdWY5YWVcdTc0ZDRcdTc2YzhcdTdhNGVcdTdlOTNcdWY5YWZcdWY5YjBcdTgyZjFcdThhNjBcdThmY2VcdWY5YjFcdTkzNDhcdWY5YjJcdTk3MTlcdWY5YjNcdWY5YjRcdTRlNDJcdTUwMmFcdWY5YjVcdTUyMDhcdTUzZTFcdTY2ZjNcdTZjNmRcdTZmY2Fc''@;'; put 'put ''dTczMGFcdTc3N2ZcdTdhNjJcdTgyYWVcdTg1ZGRcdTg2MDJcdWY5YjZcdTg4ZDRcdThhNjNcdThiN2RcdThjNmJcdWY5YjdcdTkyYjNcdWY5YjhcdTk3MTNcdTk4MTBcdTRlOTRcdTRmMGRcdTRmYzlcdTUwYjJcdTUzNDhcdTU0M2VcdTU0MzNcdTU1ZGFcdTU4NjJcdTU4YmFcdTU5NjdcdTVh''@;'; put 'put ''MWJcdTViZTRcdTYwOWZcdWY5YjlcdTYxY2FcdTY1NTZcdTY1ZmZcdTY2NjRcdTY4YTdcdTZjNWFcdTZmYjMiXSxbImU4YTEiLCJcdTcwY2ZcdTcxYWNcdTczNTJcdTdiN2RcdTg3MDhcdThhYTRcdTljMzJcdTlmMDdcdTVjNGJcdTZjODNcdTczNDRcdTczODlcdTkyM2FcdTZlYWJcdTc0NjVc''@;'; put 'put ''dTc2MWZcdTdhNjlcdTdlMTVcdTg2MGFcdTUxNDBcdTU4YzVcdTY0YzFcdTc0ZWVcdTc1MTVcdTc2NzBcdTdmYzFcdTkwOTVcdTk2Y2RcdTk5NTRcdTZlMjZcdTc0ZTZcdTdhYTlcdTdhYWFcdTgxZTVcdTg2ZDlcdTg3NzhcdThhMWJcdTVhNDlcdTViOGNcdTViOWJcdTY4YTFcdTY5MDBcdTZk''@;'; put 'put ''NjNcdTczYTlcdTc0MTNcdTc0MmNcdTc4OTdcdTdkZTlcdTdmZWJcdTgxMThcdTgxNTVcdTgzOWVcdThjNGNcdTk2MmVcdTk4MTFcdTY2ZjBcdTVmODBcdTY1ZmFcdTY3ODlcdTZjNmFcdTczOGJcdTUwMmRcdTVhMDNcdTZiNmFcdTc3ZWVcdTU5MTZcdTVkNmNcdTVkY2RcdTczMjVcdTc1NGZc''@;'; put 'put ''dWY5YmFcdWY5YmJcdTUwZTVcdTUxZjlcdTU4MmZcdTU5MmRcdTU5OTZcdTU5ZGFcdTViZTVcdWY5YmNcdWY5YmRcdTVkYTJcdTYyZDdcdTY0MTZcdTY0OTNcdTY0ZmVcdWY5YmVcdTY2ZGNcdWY5YmZcdTZhNDhcdWY5YzBcdTcxZmZcdTc0NjRcdWY5YzEiXSxbImU5YTEiLCJcdTdhODhcdTdh''@;'; put 'put ''YWZcdTdlNDdcdTdlNWVcdTgwMDBcdTgxNzBcdWY5YzJcdTg3ZWZcdTg5ODFcdThiMjBcdTkwNTlcdWY5YzNcdTkwODBcdTk5NTJcdTYxN2VcdTZiMzJcdTZkNzRcdTdlMWZcdTg5MjVcdThmYjFcdTRmZDFcdTUwYWRcdTUxOTdcdTUyYzdcdTU3YzdcdTU4ODlcdTViYjlcdTVlYjhcdTYxNDJc''@;'; put 'put ''dTY5OTVcdTZkOGNcdTZlNjdcdTZlYjZcdTcxOTRcdTc0NjJcdTc1MjhcdTc1MmNcdTgwNzNcdTgzMzhcdTg0YzlcdThlMGFcdTkzOTRcdTkzZGVcdWY5YzRcdTRlOGVcdTRmNTFcdTUwNzZcdTUxMmFcdTUzYzhcdTUzY2JcdTUzZjNcdTViODdcdTViZDNcdTVjMjRcdTYxMWFcdTYxODJcdTY1''@;'; put 'put ''ZjRcdTcyNWJcdTczOTdcdTc0NDBcdTc2YzJcdTc5NTBcdTc5OTFcdTc5YjlcdTdkMDZcdTdmYmRcdTgyOGJcdTg1ZDVcdTg2NWVcdThmYzJcdTkwNDdcdTkwZjVcdTkxZWFcdTk2ODVcdTk2ZThcdTk2ZTlcdTUyZDZcdTVmNjdcdTY1ZWRcdTY2MzFcdTY4MmZcdTcxNWNcdTdhMzZcdTkwYzFc''@;'; put 'put ''dTk4MGFcdTRlOTFcdWY5YzVcdTZhNTJcdTZiOWVcdTZmOTBcdTcxODlcdTgwMThcdTgyYjhcdTg1NTMiXSxbImVhYTEiLCJcdTkwNGJcdTk2OTVcdTk2ZjJcdTk3ZmJcdTg1MWFcdTliMzFcdTRlOTBcdTcxOGFcdTk2YzRcdTUxNDNcdTUzOWZcdTU0ZTFcdTU3MTNcdTU3MTJcdTU3YTNcdTVh''@;'; put 'put ''OWJcdTVhYzRcdTViYzNcdTYwMjhcdTYxM2ZcdTYzZjRcdTZjODVcdTZkMzlcdTZlNzJcdTZlOTBcdTcyMzBcdTczM2ZcdTc0NTdcdTgyZDFcdTg4ODFcdThmNDVcdTkwNjBcdWY5YzZcdTk2NjJcdTk4NThcdTlkMWJcdTY3MDhcdThkOGFcdTkyNWVcdTRmNGRcdTUwNDlcdTUwZGVcdTUzNzFc''@;'; put 'put ''dTU3MGRcdTU5ZDRcdTVhMDFcdTVjMDlcdTYxNzBcdTY2OTBcdTZlMmRcdTcyMzJcdTc0NGJcdTdkZWZcdTgwYzNcdTg0MGVcdTg0NjZcdTg1M2ZcdTg3NWZcdTg4NWJcdTg5MThcdThiMDJcdTkwNTVcdTk3Y2JcdTliNGZcdTRlNzNcdTRmOTFcdTUxMTJcdTUxNmFcdWY5YzdcdTU1MmZcdTU1''@;'; put 'put ''YTlcdTViN2FcdTViYTVcdTVlN2NcdTVlN2RcdTVlYmVcdTYwYTBcdTYwZGZcdTYxMDhcdTYxMDlcdTYzYzRcdTY1MzhcdTY3MDlcdWY5YzhcdTY3ZDRcdTY3ZGFcdWY5YzlcdTY5NjFcdTY5NjJcdTZjYjlcdTZkMjdcdWY5Y2FcdTZlMzhcdWY5Y2IiXSxbImViYTEiLCJcdTZmZTFcdTczMzZc''@;'; put 'put ''dTczMzdcdWY5Y2NcdTc0NWNcdTc1MzFcdWY5Y2RcdTc2NTJcdWY5Y2VcdWY5Y2ZcdTdkYWRcdTgxZmVcdTg0MzhcdTg4ZDVcdThhOThcdThhZGJcdThhZWRcdThlMzBcdThlNDJcdTkwNGFcdTkwM2VcdTkwN2FcdTkxNDlcdTkxYzlcdTkzNmVcdWY5ZDBcdWY5ZDFcdTU4MDlcdWY5ZDJcdTZi''@;'; put 'put ''ZDNcdTgwODlcdTgwYjJcdWY5ZDNcdWY5ZDRcdTUxNDFcdTU5NmJcdTVjMzlcdWY5ZDVcdWY5ZDZcdTZmNjRcdTczYTdcdTgwZTRcdThkMDdcdWY5ZDdcdTkyMTdcdTk1OGZcdWY5ZDhcdWY5ZDlcdWY5ZGFcdWY5ZGJcdTgwN2ZcdTYyMGVcdTcwMWNcdTdkNjhcdTg3OGRcdWY5ZGNcdTU3YTBc''@;'; put 'put ''dTYwNjlcdTYxNDdcdTZiYjdcdThhYmVcdTkyODBcdTk2YjFcdTRlNTlcdTU0MWZcdTZkZWJcdTg1MmRcdTk2NzBcdTk3ZjNcdTk4ZWVcdTYzZDZcdTZjZTNcdTkwOTFcdTUxZGRcdTYxYzlcdTgxYmFcdTlkZjlcdTRmOWRcdTUwMWFcdTUxMDBcdTViOWNcdTYxMGZcdTYxZmZcdTY0ZWNcdTY5''@;'; put 'put ''MDVcdTZiYzVcdTc1OTFcdTc3ZTNcdTdmYTlcdTgyNjRcdTg1OGZcdTg3ZmJcdTg4NjNcdThhYmMiXSxbImVjYTEiLCJcdThiNzBcdTkxYWJcdTRlOGNcdTRlZTVcdTRmMGFcdWY5ZGRcdWY5ZGVcdTU5MzdcdTU5ZThcdWY5ZGZcdTVkZjJcdTVmMWJcdTVmNWJcdTYwMjFcdWY5ZTBcdWY5ZTFc''@;'; put 'put ''dWY5ZTJcdWY5ZTNcdTcyM2VcdTczZTVcdWY5ZTRcdTc1NzBcdTc1Y2RcdWY5ZTVcdTc5ZmJcdWY5ZTZcdTgwMGNcdTgwMzNcdTgwODRcdTgyZTFcdTgzNTFcdWY5ZTdcdWY5ZThcdThjYmRcdThjYjNcdTkwODdcdWY5ZTlcdWY5ZWFcdTk4ZjRcdTk5MGNcdWY5ZWJcdWY5ZWNcdTcwMzdcdTc2''@;'; put 'put ''Y2FcdTdmY2FcdTdmY2NcdTdmZmNcdThiMWFcdTRlYmFcdTRlYzFcdTUyMDNcdTUzNzBcdWY5ZWRcdTU0YmRcdTU2ZTBcdTU5ZmJcdTViYzVcdTVmMTVcdTVmY2RcdTZlNmVcdWY5ZWVcdWY5ZWZcdTdkNmFcdTgzMzVcdWY5ZjBcdTg2OTNcdThhOGRcdWY5ZjFcdTk3NmRcdTk3NzdcdWY5ZjJc''@;'; put 'put ''dWY5ZjNcdTRlMDBcdTRmNWFcdTRmN2VcdTU4ZjlcdTY1ZTVcdTZlYTJcdTkwMzhcdTkzYjBcdTk5YjlcdTRlZmJcdTU4ZWNcdTU5OGFcdTU5ZDlcdTYwNDFcdWY5ZjRcdWY5ZjVcdTdhMTRcdWY5ZjZcdTgzNGZcdThjYzNcdTUxNjVcdTUzNDQiXSxbImVkYTEiLCJcdWY5ZjdcdWY5ZjhcdWY5''@;'; put 'put ''ZjlcdTRlY2RcdTUyNjlcdTViNTVcdTgyYmZcdTRlZDRcdTUyM2FcdTU0YThcdTU5YzlcdTU5ZmZcdTViNTBcdTViNTdcdTViNWNcdTYwNjNcdTYxNDhcdTZlY2JcdTcwOTlcdTcxNmVcdTczODZcdTc0ZjdcdTc1YjVcdTc4YzFcdTdkMmJcdTgwMDVcdTgxZWFcdTgzMjhcdTg1MTdcdTg1Yzlc''@;'; put 'put ''dThhZWVcdThjYzdcdTk2Y2NcdTRmNWNcdTUyZmFcdTU2YmNcdTY1YWJcdTY2MjhcdTcwN2NcdTcwYjhcdTcyMzVcdTdkYmRcdTgyOGRcdTkxNGNcdTk2YzBcdTlkNzJcdTViNzFcdTY4ZTdcdTZiOThcdTZmN2FcdTc2ZGVcdTVjOTFcdTY2YWJcdTZmNWJcdTdiYjRcdTdjMmFcdTg4MzZcdTk2''@;'; put 'put ''ZGNcdTRlMDhcdTRlZDdcdTUzMjBcdTU4MzRcdTU4YmJcdTU4ZWZcdTU5NmNcdTVjMDdcdTVlMzNcdTVlODRcdTVmMzVcdTYzOGNcdTY2YjJcdTY3NTZcdTZhMWZcdTZhYTNcdTZiMGNcdTZmM2ZcdTcyNDZcdWY5ZmFcdTczNTBcdTc0OGJcdTdhZTBcdTdjYTdcdTgxNzhcdTgxZGZcdTgxZTdc''@;'; put 'put ''dTgzOGFcdTg0NmNcdTg1MjNcdTg1OTRcdTg1Y2ZcdTg4ZGRcdThkMTNcdTkxYWNcdTk1NzciXSxbImVlYTEiLCJcdTk2OWNcdTUxOGRcdTU0YzlcdTU3MjhcdTViYjBcdTYyNGRcdTY3NTBcdTY4M2RcdTY4OTNcdTZlM2RcdTZlZDNcdTcwN2RcdTdlMjFcdTg4YzFcdThjYTFcdThmMDlcdTlm''@;'; put 'put ''NGJcdTlmNGVcdTcyMmRcdTdiOGZcdThhY2RcdTkzMWFcdTRmNDdcdTRmNGVcdTUxMzJcdTU0ODBcdTU5ZDBcdTVlOTVcdTYyYjVcdTY3NzVcdTY5NmVcdTZhMTdcdTZjYWVcdTZlMWFcdTcyZDlcdTczMmFcdTc1YmRcdTdiYjhcdTdkMzVcdTgyZTdcdTgzZjlcdTg0NTdcdTg1ZjdcdThhNWJc''@;'; put 'put ''dThjYWZcdThlODdcdTkwMTlcdTkwYjhcdTk2Y2VcdTlmNWZcdTUyZTNcdTU0MGFcdTVhZTFcdTViYzJcdTY0NThcdTY1NzVcdTZlZjRcdTcyYzRcdWY5ZmJcdTc2ODRcdTdhNGRcdTdiMWJcdTdjNGRcdTdlM2VcdTdmZGZcdTgzN2JcdThiMmJcdThjY2FcdThkNjRcdThkZTFcdThlNWZcdThm''@;'; put 'put ''ZWFcdThmZjlcdTkwNjlcdTkzZDFcdTRmNDNcdTRmN2FcdTUwYjNcdTUxNjhcdTUxNzhcdTUyNGRcdTUyNmFcdTU4NjFcdTU4N2NcdTU5NjBcdTVjMDhcdTVjNTVcdTVlZGJcdTYwOWJcdTYyMzBcdTY4MTNcdTZiYmZcdTZjMDhcdTZmYjEiXSxbImVmYTEiLCJcdTcxNGVcdTc0MjBcdTc1MzBc''@;'; put 'put ''dTc1MzhcdTc1NTFcdTc2NzJcdTdiNGNcdTdiOGJcdTdiYWRcdTdiYzZcdTdlOGZcdThhNmVcdThmM2VcdThmNDlcdTkyM2ZcdTkyOTNcdTkzMjJcdTk0MmJcdTk2ZmJcdTk4NWFcdTk4NmJcdTk5MWVcdTUyMDdcdTYyMmFcdTYyOThcdTZkNTlcdTc2NjRcdTdhY2FcdTdiYzBcdTdkNzZcdTUz''@;'; put 'put ''NjBcdTVjYmVcdTVlOTdcdTZmMzhcdTcwYjlcdTdjOThcdTk3MTFcdTliOGVcdTllZGVcdTYzYTVcdTY0N2FcdTg3NzZcdTRlMDFcdTRlOTVcdTRlYWRcdTUwNWNcdTUwNzVcdTU0NDhcdTU5YzNcdTViOWFcdTVlNDBcdTVlYWRcdTVlZjdcdTVmODFcdTYwYzVcdTYzM2FcdTY1M2ZcdTY1NzRc''@;'; put 'put ''dTY1Y2NcdTY2NzZcdTY2NzhcdTY3ZmVcdTY5NjhcdTZhODlcdTZiNjNcdTZjNDBcdTZkYzBcdTZkZThcdTZlMWZcdTZlNWVcdTcwMWVcdTcwYTFcdTczOGVcdTczZmRcdTc1M2FcdTc3NWJcdTc4ODdcdTc5OGVcdTdhMGJcdTdhN2RcdTdjYmVcdTdkOGVcdTgyNDdcdThhMDJcdThhZWFcdThj''@;'; put 'put ''OWVcdTkxMmRcdTkxNGFcdTkxZDhcdTkyNjZcdTkyY2NcdTkzMjBcdTk3MDZcdTk3NTYiXSxbImYwYTEiLCJcdTk3NWNcdTk4MDJcdTlmMGVcdTUyMzZcdTUyOTFcdTU1N2NcdTU4MjRcdTVlMWRcdTVmMWZcdTYwOGNcdTYzZDBcdTY4YWZcdTZmZGZcdTc5NmRcdTdiMmNcdTgxY2RcdTg1YmFc''@;'; put 'put ''dTg4ZmRcdThhZjhcdThlNDRcdTkxOGRcdTk2NjRcdTk2OWJcdTk3M2RcdTk4NGNcdTlmNGFcdTRmY2VcdTUxNDZcdTUxY2JcdTUyYTlcdTU2MzJcdTVmMTRcdTVmNmJcdTYzYWFcdTY0Y2RcdTY1ZTlcdTY2NDFcdTY2ZmFcdTY2ZjlcdTY3MWRcdTY4OWRcdTY4ZDdcdTY5ZmRcdTZmMTVcdTZm''@;'; put 'put ''NmVcdTcxNjdcdTcxZTVcdTcyMmFcdTc0YWFcdTc3M2FcdTc5NTZcdTc5NWFcdTc5ZGZcdTdhMjBcdTdhOTVcdTdjOTdcdTdjZGZcdTdkNDRcdTdlNzBcdTgwODdcdTg1ZmJcdTg2YTRcdThhNTRcdThhYmZcdThkOTlcdThlODFcdTkwMjBcdTkwNmRcdTkxZTNcdTk2M2JcdTk2ZDVcdTljZTVc''@;'; put 'put ''dTY1Y2ZcdTdjMDdcdThkYjNcdTkzYzNcdTViNThcdTVjMGFcdTUzNTJcdTYyZDlcdTczMWRcdTUwMjdcdTViOTdcdTVmOWVcdTYwYjBcdTYxNmJcdTY4ZDVcdTZkZDlcdTc0MmVcdTdhMmVcdTdkNDJcdTdkOWNcdTdlMzFcdTgxNmIiXSxbImYxYTEiLCJcdThlMmFcdThlMzVcdTkzN2VcdTk0''@;'; put 'put ''MThcdTRmNTBcdTU3NTBcdTVkZTZcdTVlYTdcdTYzMmJcdTdmNmFcdTRlM2JcdTRmNGZcdTRmOGZcdTUwNWFcdTU5ZGRcdTgwYzRcdTU0NmFcdTU0NjhcdTU1ZmVcdTU5NGZcdTViOTlcdTVkZGVcdTVlZGFcdTY2NWRcdTY3MzFcdTY3ZjFcdTY4MmFcdTZjZThcdTZkMzJcdTZlNGFcdTZmOGRc''@;'; put 'put ''dTcwYjdcdTczZTBcdTc1ODdcdTdjNGNcdTdkMDJcdTdkMmNcdTdkYTJcdTgyMWZcdTg2ZGJcdThhM2JcdThhODVcdThkNzBcdThlOGFcdThmMzNcdTkwMzFcdTkxNGVcdTkxNTJcdTk0NDRcdTk5ZDBcdTdhZjlcdTdjYTVcdTRmY2FcdTUxMDFcdTUxYzZcdTU3YzhcdTViZWZcdTVjZmJcdTY2''@;'; put 'put ''NTlcdTZhM2RcdTZkNWFcdTZlOTZcdTZmZWNcdTcxMGNcdTc1NmZcdTdhZTNcdTg4MjJcdTkwMjFcdTkwNzVcdTk2Y2JcdTk5ZmZcdTgzMDFcdTRlMmRcdTRlZjJcdTg4NDZcdTkxY2RcdTUzN2RcdTZhZGJcdTY5NmJcdTZjNDFcdTg0N2FcdTU4OWVcdTYxOGVcdTY2ZmVcdTYyZWZcdTcwZGRc''@;'; put 'put ''dTc1MTFcdTc1YzdcdTdlNTJcdTg0YjhcdThiNDlcdThkMDhcdTRlNGJcdTUzZWEiXSxbImYyYTEiLCJcdTU0YWJcdTU3MzBcdTU3NDBcdTVmZDdcdTYzMDFcdTYzMDdcdTY0NmZcdTY1MmZcdTY1ZThcdTY2N2FcdTY3OWRcdTY3YjNcdTZiNjJcdTZjNjBcdTZjOWFcdTZmMmNcdTc3ZTVcdTc4''@;'; put 'put ''MjVcdTc5NDlcdTc5NTdcdTdkMTlcdTgwYTJcdTgxMDJcdTgxZjNcdTgyOWRcdTgyYjdcdTg3MThcdThhOGNcdWY5ZmNcdThkMDRcdThkYmVcdTkwNzJcdTc2ZjRcdTdhMTlcdTdhMzdcdTdlNTRcdTgwNzdcdTU1MDdcdTU1ZDRcdTU4NzVcdTYzMmZcdTY0MjJcdTY2NDlcdTY2NGJcdTY4NmRc''@;'; put 'put ''dTY5OWJcdTZiODRcdTZkMjVcdTZlYjFcdTczY2RcdTc0NjhcdTc0YTFcdTc1NWJcdTc1YjlcdTc2ZTFcdTc3MWVcdTc3OGJcdTc5ZTZcdTdlMDlcdTdlMWRcdTgxZmJcdTg1MmZcdTg4OTdcdThhM2FcdThjZDFcdThlZWJcdThmYjBcdTkwMzJcdTkzYWRcdTk2NjNcdTk2NzNcdTk3MDdcdTRm''@;'; put 'put ''ODRcdTUzZjFcdTU5ZWFcdTVhYzlcdTVlMTlcdTY4NGVcdTc0YzZcdTc1YmVcdTc5ZTlcdTdhOTJcdTgxYTNcdTg2ZWRcdThjZWFcdThkY2NcdThmZWRcdTY1OWZcdTY3MTVcdWY5ZmRcdTU3ZjdcdTZmNTdcdTdkZGRcdThmMmYiXSxbImYzYTEiLCJcdTkzZjZcdTk2YzZcdTVmYjVcdTYxZjJc''@;'; put 'put ''dTZmODRcdTRlMTRcdTRmOThcdTUwMWZcdTUzYzlcdTU1ZGZcdTVkNmZcdTVkZWVcdTZiMjFcdTZiNjRcdTc4Y2JcdTdiOWFcdWY5ZmVcdThlNDlcdThlY2FcdTkwNmVcdTYzNDlcdTY0M2VcdTc3NDBcdTdhODRcdTkzMmZcdTk0N2ZcdTlmNmFcdTY0YjBcdTZmYWZcdTcxZTZcdTc0YThcdTc0''@;'; put 'put ''ZGFcdTdhYzRcdTdjMTJcdTdlODJcdTdjYjJcdTdlOThcdThiOWFcdThkMGFcdTk0N2RcdTk5MTBcdTk5NGNcdTUyMzlcdTViZGZcdTY0ZTZcdTY3MmRcdTdkMmVcdTUwZWRcdTUzYzNcdTU4NzlcdTYxNThcdTYxNTlcdTYxZmFcdTY1YWNcdTdhZDlcdThiOTJcdThiOTZcdTUwMDlcdTUwMjFc''@;'; put 'put ''dTUyNzVcdTU1MzFcdTVhM2NcdTVlZTBcdTVmNzBcdTYxMzRcdTY1NWVcdTY2MGNcdTY2MzZcdTY2YTJcdTY5Y2RcdTZlYzRcdTZmMzJcdTczMTZcdTc2MjFcdTdhOTNcdTgxMzlcdTgyNTlcdTgzZDZcdTg0YmNcdTUwYjVcdTU3ZjBcdTViYzBcdTViZThcdTVmNjlcdTYzYTFcdTc4MjZcdTdk''@;'; put 'put ''YjVcdTgzZGNcdTg1MjFcdTkxYzdcdTkxZjVcdTUxOGFcdTY3ZjVcdTdiNTYiXSxbImY0YTEiLCJcdThjYWNcdTUxYzRcdTU5YmJcdTYwYmRcdTg2NTVcdTUwMWNcdWY5ZmZcdTUyNTRcdTVjM2FcdTYxN2RcdTYyMWFcdTYyZDNcdTY0ZjJcdTY1YTVcdTZlY2NcdTc2MjBcdTgxMGFcdThlNjBc''@;'; put 'put ''dTk2NWZcdTk2YmJcdTRlZGZcdTUzNDNcdTU1OThcdTU5MjlcdTVkZGRcdTY0YzVcdTZjYzlcdTZkZmFcdTczOTRcdTdhN2ZcdTgyMWJcdTg1YTZcdThjZTRcdThlMTBcdTkwNzdcdTkxZTdcdTk1ZTFcdTk2MjFcdTk3YzZcdTUxZjhcdTU0ZjJcdTU1ODZcdTVmYjlcdTY0YTRcdTZmODhcdTdk''@;'; put 'put ''YjRcdThmMWZcdThmNGRcdTk0MzVcdTUwYzlcdTVjMTZcdTZjYmVcdTZkZmJcdTc1MWJcdTc3YmJcdTdjM2RcdTdjNjRcdThhNzlcdThhYzJcdTU4MWVcdTU5YmVcdTVlMTZcdTYzNzdcdTcyNTJcdTc1OGFcdTc3NmJcdThhZGNcdThjYmNcdThmMTJcdTVlZjNcdTY2NzRcdTZkZjhcdTgwN2Rc''@;'; put 'put ''dTgzYzFcdThhY2JcdTk3NTFcdTliZDZcdWZhMDBcdTUyNDNcdTY2ZmZcdTZkOTVcdTZlZWZcdTdkZTBcdThhZTZcdTkwMmVcdTkwNWVcdTlhZDRcdTUyMWRcdTUyN2ZcdTU0ZThcdTYxOTRcdTYyODRcdTYyZGJcdTY4YTIiXSxbImY1YTEiLCJcdTY5MTJcdTY5NWFcdTZhMzVcdTcwOTJcdTcx''@;'; put 'put ''MjZcdTc4NWRcdTc5MDFcdTc5MGVcdTc5ZDJcdTdhMGRcdTgwOTZcdTgyNzhcdTgyZDVcdTgzNDlcdTg1NDlcdThjODJcdThkODVcdTkxNjJcdTkxOGJcdTkxYWVcdTRmYzNcdTU2ZDFcdTcxZWRcdTc3ZDdcdTg3MDBcdTg5ZjhcdTViZjhcdTVmZDZcdTY3NTFcdTkwYThcdTUzZTJcdTU4NWFc''@;'; put 'put ''dTViZjVcdTYwYTRcdTYxODFcdTY0NjBcdTdlM2RcdTgwNzBcdTg1MjVcdTkyODNcdTY0YWVcdTUwYWNcdTVkMTRcdTY3MDBcdTU4OWNcdTYyYmRcdTYzYThcdTY5MGVcdTY5NzhcdTZhMWVcdTZlNmJcdTc2YmFcdTc5Y2JcdTgyYmJcdTg0MjlcdThhY2ZcdThkYThcdThmZmRcdTkxMTJcdTkx''@;'; put 'put ''NGJcdTkxOWNcdTkzMTBcdTkzMThcdTkzOWFcdTk2ZGJcdTlhMzZcdTljMGRcdTRlMTFcdTc1NWNcdTc5NWRcdTdhZmFcdTdiNTFcdTdiYzlcdTdlMmVcdTg0YzRcdThlNTlcdThlNzRcdThlZjhcdTkwMTBcdTY2MjVcdTY5M2ZcdTc0NDNcdTUxZmFcdTY3MmVcdTllZGNcdTUxNDVcdTVmZTBc''@;'; put 'put ''dTZjOTZcdTg3ZjJcdTg4NWRcdTg4NzdcdTYwYjRcdTgxYjVcdTg0MDMiXSxbImY2YTEiLCJcdThkMDVcdTUzZDZcdTU0MzlcdTU2MzRcdTVhMzZcdTVjMzFcdTcwOGFcdTdmZTBcdTgwNWFcdTgxMDZcdTgxZWRcdThkYTNcdTkxODlcdTlhNWZcdTlkZjJcdTUwNzRcdTRlYzRcdTUzYTBcdTYw''@;'; put 'put ''ZmJcdTZlMmNcdTVjNjRcdTRmODhcdTUwMjRcdTU1ZTRcdTVjZDlcdTVlNWZcdTYwNjVcdTY4OTRcdTZjYmJcdTZkYzRcdTcxYmVcdTc1ZDRcdTc1ZjRcdTc2NjFcdTdhMWFcdTdhNDlcdTdkYzdcdTdkZmJcdTdmNmVcdTgxZjRcdTg2YTlcdThmMWNcdTk2YzlcdTk5YjNcdTlmNTJcdTUyNDdc''@;'; put 'put ''dTUyYzVcdTk4ZWRcdTg5YWFcdTRlMDNcdTY3ZDJcdTZmMDZcdTRmYjVcdTViZTJcdTY3OTVcdTZjODhcdTZkNzhcdTc0MWJcdTc4MjdcdTkxZGRcdTkzN2NcdTg3YzRcdTc5ZTRcdTdhMzFcdTVmZWJcdTRlZDZcdTU0YTRcdTU1M2VcdTU4YWVcdTU5YTVcdTYwZjBcdTYyNTNcdTYyZDZcdTY3''@;'; put 'put ''MzZcdTY5NTVcdTgyMzVcdTk2NDBcdTk5YjFcdTk5ZGRcdTUwMmNcdTUzNTNcdTU1NDRcdTU3N2NcdWZhMDFcdTYyNThcdWZhMDJcdTY0ZTJcdTY2NmJcdTY3ZGRcdTZmYzFcdTZmZWZcdTc0MjJcdTc0MzhcdThhMTciXSxbImY3YTEiLCJcdTk0MzhcdTU0NTFcdTU2MDZcdTU3NjZcdTVmNDhc''@;'; put 'put ''dTYxOWFcdTZiNGVcdTcwNThcdTcwYWRcdTdkYmJcdThhOTVcdTU5NmFcdTgxMmJcdTYzYTJcdTc3MDhcdTgwM2RcdThjYWFcdTU4NTRcdTY0MmRcdTY5YmJcdTViOTVcdTVlMTFcdTZlNmZcdWZhMDNcdTg1NjlcdTUxNGNcdTUzZjBcdTU5MmFcdTYwMjBcdTYxNGJcdTZiODZcdTZjNzBcdTZj''@;'; put 'put ''ZjBcdTdiMWVcdTgwY2VcdTgyZDRcdThkYzZcdTkwYjBcdTk4YjFcdWZhMDRcdTY0YzdcdTZmYTRcdTY0OTFcdTY1MDRcdTUxNGVcdTU0MTBcdTU3MWZcdThhMGVcdTYxNWZcdTY4NzZcdWZhMDVcdTc1ZGJcdTdiNTJcdTdkNzFcdTkwMWFcdTU4MDZcdTY5Y2NcdTgxN2ZcdTg5MmFcdTkwMDBc''@;'; put 'put ''dTk4MzlcdTUwNzhcdTU5NTdcdTU5YWNcdTYyOTVcdTkwMGZcdTliMmFcdTYxNWRcdTcyNzlcdTk1ZDZcdTU3NjFcdTVhNDZcdTVkZjRcdTYyOGFcdTY0YWRcdTY0ZmFcdTY3NzdcdTZjZTJcdTZkM2VcdTcyMmNcdTc0MzZcdTc4MzRcdTdmNzdcdTgyYWRcdThkZGJcdTk4MTdcdTUyMjRcdTU3''@;'; put 'put ''NDJcdTY3N2ZcdTcyNDhcdTc0ZTNcdThjYTlcdThmYTZcdTkyMTEiXSxbImY4YTEiLCJcdTk2MmFcdTUxNmJcdTUzZWRcdTYzNGNcdTRmNjlcdTU1MDRcdTYwOTZcdTY1NTdcdTZjOWJcdTZkN2ZcdTcyNGNcdTcyZmRcdTdhMTdcdTg5ODdcdThjOWRcdTVmNmRcdTZmOGVcdTcwZjlcdTgxYThc''@;'; put 'put ''dTYxMGVcdTRmYmZcdTUwNGZcdTYyNDFcdTcyNDdcdTdiYzdcdTdkZThcdTdmZTlcdTkwNGRcdTk3YWRcdTlhMTlcdThjYjZcdTU3NmFcdTVlNzNcdTY3YjBcdTg0MGRcdThhNTVcdTU0MjBcdTViMTZcdTVlNjNcdTVlZTJcdTVmMGFcdTY1ODNcdTgwYmFcdTg1M2RcdTk1ODlcdTk2NWJcdTRm''@;'; put 'put ''NDhcdTUzMDVcdTUzMGRcdTUzMGZcdTU0ODZcdTU0ZmFcdTU3MDNcdTVlMDNcdTYwMTZcdTYyOWJcdTYyYjFcdTYzNTVcdWZhMDZcdTZjZTFcdTZkNjZcdTc1YjFcdTc4MzJcdTgwZGVcdTgxMmZcdTgyZGVcdTg0NjFcdTg0YjJcdTg4OGRcdTg5MTJcdTkwMGJcdTkyZWFcdTk4ZmRcdTliOTFc''@;'; put 'put ''dTVlNDVcdTY2YjRcdTY2ZGRcdTcwMTFcdTcyMDZcdWZhMDdcdTRmZjVcdTUyN2RcdTVmNmFcdTYxNTNcdTY3NTNcdTZhMTlcdTZmMDJcdTc0ZTJcdTc5NjhcdTg4NjhcdThjNzlcdTk4YzdcdTk4YzRcdTlhNDMiXSxbImY5YTEiLCJcdTU0YzFcdTdhMWZcdTY5NTNcdThhZjdcdThjNGFcdTk4''@;'; put 'put ''YThcdTk5YWVcdTVmN2NcdTYyYWJcdTc1YjJcdTc2YWVcdTg4YWJcdTkwN2ZcdTk2NDJcdTUzMzlcdTVmM2NcdTVmYzVcdTZjY2NcdTczY2NcdTc1NjJcdTc1OGJcdTdiNDZcdTgyZmVcdTk5OWRcdTRlNGZcdTkwM2NcdTRlMGJcdTRmNTVcdTUzYTZcdTU5MGZcdTVlYzhcdTY2MzBcdTZjYjNc''@;'; put 'put ''dTc0NTVcdTgzNzdcdTg3NjZcdThjYzBcdTkwNTBcdTk3MWVcdTljMTVcdTU4ZDFcdTViNzhcdTg2NTBcdThiMTRcdTlkYjRcdTViZDJcdTYwNjhcdTYwOGRcdTY1ZjFcdTZjNTdcdTZmMjJcdTZmYTNcdTcwMWFcdTdmNTVcdTdmZjBcdTk1OTFcdTk1OTJcdTk2NTBcdTk3ZDNcdTUyNzJcdThm''@;'; put 'put ''NDRcdTUxZmRcdTU0MmJcdTU0YjhcdTU1NjNcdTU1OGFcdTZhYmJcdTZkYjVcdTdkZDhcdTgyNjZcdTkyOWNcdTk2NzdcdTllNzlcdTU0MDhcdTU0YzhcdTc2ZDJcdTg2ZTRcdTk1YTRcdTk1ZDRcdTk2NWNcdTRlYTJcdTRmMDlcdTU5ZWVcdTVhZTZcdTVkZjdcdTYwNTJcdTYyOTdcdTY3NmRc''@;'; put 'put ''dTY4NDFcdTZjODZcdTZlMmZcdTdmMzhcdTgwOWJcdTgyMmEiXSxbImZhYTEiLCJcdWZhMDhcdWZhMDlcdTk4MDVcdTRlYTVcdTUwNTVcdTU0YjNcdTU3OTNcdTU5NWFcdTViNjlcdTViYjNcdTYxYzhcdTY5NzdcdTZkNzdcdTcwMjNcdTg3ZjlcdTg5ZTNcdThhNzJcdThhZTdcdTkwODJcdTk5''@;'; put 'put ''ZWRcdTlhYjhcdTUyYmVcdTY4MzhcdTUwMTZcdTVlNzhcdTY3NGZcdTgzNDdcdTg4NGNcdTRlYWJcdTU0MTFcdTU2YWVcdTczZTZcdTkxMTVcdTk3ZmZcdTk5MDlcdTk5NTdcdTk5OTlcdTU2NTNcdTU4OWZcdTg2NWJcdThhMzFcdTYxYjJcdTZhZjZcdTczN2JcdThlZDJcdTZiNDdcdTk2YWFc''@;'; put 'put ''dTlhNTdcdTU5NTVcdTcyMDBcdThkNmJcdTk3NjlcdTRmZDRcdTVjZjRcdTVmMjZcdTYxZjhcdTY2NWJcdTZjZWJcdTcwYWJcdTczODRcdTczYjlcdTczZmVcdTc3MjlcdTc3NGRcdTdkNDNcdTdkNjJcdTdlMjNcdTgyMzdcdTg4NTJcdWZhMGFcdThjZTJcdTkyNDlcdTk4NmZcdTViNTFcdTdh''@;'; put 'put ''NzRcdTg4NDBcdTk4MDFcdTVhY2NcdTRmZTBcdTUzNTRcdTU5M2VcdTVjZmRcdTYzM2VcdTZkNzlcdTcyZjlcdTgxMDVcdTgxMDdcdTgzYTJcdTkyY2ZcdTk4MzBcdTRlYThcdTUxNDRcdTUyMTFcdTU3OGIiXSxbImZiYTEiLCJcdTVmNjJcdTZjYzJcdTZlY2VcdTcwMDVcdTcwNTBcdTcwYWZc''@;'; put 'put ''dTcxOTJcdTczZTlcdTc0NjlcdTgzNGFcdTg3YTJcdTg4NjFcdTkwMDhcdTkwYTJcdTkzYTNcdTk5YThcdTUxNmVcdTVmNTdcdTYwZTBcdTYxNjdcdTY2YjNcdTg1NTlcdThlNGFcdTkxYWZcdTk3OGJcdTRlNGVcdTRlOTJcdTU0N2NcdTU4ZDVcdTU4ZmFcdTU5N2RcdTVjYjVcdTVmMjdcdTYy''@;'; put 'put ''MzZcdTYyNDhcdTY2MGFcdTY2NjdcdTZiZWJcdTZkNjlcdTZkY2ZcdTZlNTZcdTZlZjhcdTZmOTRcdTZmZTBcdTZmZTlcdTcwNWRcdTcyZDBcdTc0MjVcdTc0NWFcdTc0ZTBcdTc2OTNcdTc5NWNcdTdjY2FcdTdlMWVcdTgwZTFcdTgyYTZcdTg0NmJcdTg0YmZcdTg2NGVcdTg2NWZcdTg3NzRc''@;'; put 'put ''dThiNzdcdThjNmFcdTkzYWNcdTk4MDBcdTk4NjVcdTYwZDFcdTYyMTZcdTkxNzdcdTVhNWFcdTY2MGZcdTZkZjdcdTZlM2VcdTc0M2ZcdTliNDJcdTVmZmRcdTYwZGFcdTdiMGZcdTU0YzRcdTVmMThcdTZjNWVcdTZjZDNcdTZkMmFcdTcwZDhcdTdkMDVcdTg2NzlcdThhMGNcdTlkM2JcdTUz''@;'; put 'put ''MTZcdTU0OGNcdTViMDVcdTZhM2FcdTcwNmJcdTc1NzUiXSxbImZjYTEiLCJcdTc5OGRcdTc5YmVcdTgyYjFcdTgzZWZcdThhNzFcdThiNDFcdThjYThcdTk3NzRcdWZhMGJcdTY0ZjRcdTY1MmJcdTc4YmFcdTc4YmJcdTdhNmJcdTRlMzhcdTU1OWFcdTU5NTBcdTViYTZcdTVlN2JcdTYwYTNc''@;'; put 'put ''dTYzZGJcdTZiNjFcdTY2NjVcdTY4NTNcdTZlMTlcdTcxNjVcdTc0YjBcdTdkMDhcdTkwODRcdTlhNjlcdTljMjVcdTZkM2JcdTZlZDFcdTczM2VcdThjNDFcdTk1Y2FcdTUxZjBcdTVlNGNcdTVmYThcdTYwNGRcdTYwZjZcdTYxMzBcdTYxNGNcdTY2NDNcdTY2NDRcdTY5YTVcdTZjYzFcdTZl''@;'; put 'put ''NWZcdTZlYzlcdTZmNjJcdTcxNGNcdTc0OWNcdTc2ODdcdTdiYzFcdTdjMjdcdTgzNTJcdTg3NTdcdTkwNTFcdTk2OGRcdTllYzNcdTUzMmZcdTU2ZGVcdTVlZmJcdTVmOGFcdTYwNjJcdTYwOTRcdTYxZjdcdTY2NjZcdTY3MDNcdTZhOWNcdTZkZWVcdTZmYWVcdTcwNzBcdTczNmFcdTdlNmFc''@;'; put 'put ''dTgxYmVcdTgzMzRcdTg2ZDRcdThhYThcdThjYzRcdTUyODNcdTczNzJcdTViOTZcdTZhNmJcdTk0MDRcdTU0ZWVcdTU2ODZcdTViNWRcdTY1NDhcdTY1ODVcdTY2YzlcdTY4OWZcdTZkOGRcdTZkYzYiXSxbImZkYTEiLCJcdTcyM2JcdTgwYjRcdTkxNzVcdTlhNGRcdTRmYWZcdTUwMTlcdTUz''@;'; put 'put ''OWFcdTU0MGVcdTU0M2NcdTU1ODlcdTU1YzVcdTVlM2ZcdTVmOGNcdTY3M2RcdTcxNjZcdTczZGRcdTkwMDVcdTUyZGJcdTUyZjNcdTU4NjRcdTU4Y2VcdTcxMDRcdTcxOGZcdTcxZmJcdTg1YjBcdThhMTNcdTY2ODhcdTg1YThcdTU1YTdcdTY2ODRcdTcxNGFcdTg0MzFcdTUzNDlcdTU1OTlc''@;'; put 'put ''dTZiYzFcdTVmNTlcdTVmYmRcdTYzZWVcdTY2ODlcdTcxNDdcdThhZjFcdThmMWRcdTllYmVcdTRmMTFcdTY0M2FcdTcwY2JcdTc1NjZcdTg2NjdcdTYwNjRcdThiNGVcdTlkZjhcdTUxNDdcdTUxZjZcdTUzMDhcdTZkMzZcdTgwZjhcdTllZDFcdTY2MTVcdTZiMjNcdTcwOThcdTc1ZDVcdTU0''@;'; put 'put ''MDNcdTVjNzlcdTdkMDdcdThhMTZcdTZiMjBcdTZiM2RcdTZiNDZcdTU0MzhcdTYwNzBcdTZkM2RcdTdmZDVcdTgyMDhcdTUwZDZcdTUxZGVcdTU1OWNcdTU2NmJcdTU2Y2RcdTU5ZWNcdTViMDlcdTVlMGNcdTYxOTlcdTYxOThcdTYyMzFcdTY2NWVcdTY2ZTZcdTcxOTlcdTcxYjlcdTcxYmFc''@;'; put 'put ''dTcyYTdcdTc5YTdcdTdhMDBcdTdmYjJcdThhNzAiXV0nKX0sNzQyODQ6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCdbWyIwIiwiXFx1MDAwMCIsMTI3XSxbImExNDAiLCJcdTMwMDBcdWZmMGNcdTMwMDFcdTMwMDJcdWZmMGVcdTIwMjdcdWZmMWJcdWZmMWFcdWZm''@;'; put 'put ''MWZcdWZmMDFcdWZlMzBcdTIwMjZcdTIwMjVcdWZlNTBcdWZlNTFcdWZlNTJceGI3XHVmZTU0XHVmZTU1XHVmZTU2XHVmZTU3XHVmZjVjXHUyMDEzXHVmZTMxXHUyMDE0XHVmZTMzXHUyNTc0XHVmZTM0XHVmZTRmXHVmZjA4XHVmZjA5XHVmZTM1XHVmZTM2XHVmZjViXHVmZjVkXHVmZTM3XHVm''@;'; put 'put ''ZTM4XHUzMDE0XHUzMDE1XHVmZTM5XHVmZTNhXHUzMDEwXHUzMDExXHVmZTNiXHVmZTNjXHUzMDBhXHUzMDBiXHVmZTNkXHVmZTNlXHUzMDA4XHUzMDA5XHVmZTNmXHVmZTQwXHUzMDBjXHUzMDBkXHVmZTQxXHVmZTQyXHUzMDBlXHUzMDBmXHVmZTQzXHVmZTQ0XHVmZTU5XHVmZTVhIl0sWyJh''@;'; put 'put ''MWExIiwiXHVmZTViXHVmZTVjXHVmZTVkXHVmZTVlXHUyMDE4XHUyMDE5XHUyMDFjXHUyMDFkXHUzMDFkXHUzMDFlXHUyMDM1XHUyMDMyXHVmZjAzXHVmZjA2XHVmZjBhXHUyMDNiXHhhN1x1MzAwM1x1MjVjYlx1MjVjZlx1MjViM1x1MjViMlx1MjVjZVx1MjYwNlx1MjYwNVx1MjVjN1x1MjVj''@;'; put 'put ''Nlx1MjVhMVx1MjVhMFx1MjViZFx1MjViY1x1MzJhM1x1MjEwNVx4YWZcdWZmZTNcdWZmM2ZcdTAyY2RcdWZlNDlcdWZlNGFcdWZlNGRcdWZlNGVcdWZlNGJcdWZlNGNcdWZlNWZcdWZlNjBcdWZlNjFcdWZmMGJcdWZmMGRceGQ3XHhmN1x4YjFcdTIyMWFcdWZmMWNcdWZmMWVcdWZmMWRcdTIy''@;'; put 'put ''NjZcdTIyNjdcdTIyNjBcdTIyMWVcdTIyNTJcdTIyNjFcdWZlNjIiLDQsIlx1ZmY1ZVx1MjIyOVx1MjIyYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MzNkMlx1MzNkMVx1MjIyYlx1MjIyZVx1MjIzNVx1MjIzNFx1MjY0MFx1MjY0Mlx1MjI5NVx1MjI5OVx1MjE5MVx1MjE5M1x1MjE5MFx1''@;'; put 'put ''MjE5Mlx1MjE5Nlx1MjE5N1x1MjE5OVx1MjE5OFx1MjIyNVx1MjIyM1x1ZmYwZiJdLFsiYTI0MCIsIlx1ZmYzY1x1MjIxNVx1ZmU2OFx1ZmYwNFx1ZmZlNVx1MzAxMlx1ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYyMFx1MjEwM1x1MjEwOVx1ZmU2OVx1ZmU2YVx1ZmU2Ylx1MzNkNVx1MzM5Y1x1MzM5''@;'; put 'put ''ZFx1MzM5ZVx1MzNjZVx1MzNhMVx1MzM4ZVx1MzM4Zlx1MzNjNFx4YjBcdTUxNTlcdTUxNWJcdTUxNWVcdTUxNWRcdTUxNjFcdTUxNjNcdTU1ZTdcdTc0ZTlcdTdjY2VcdTI1ODEiLDcsIlx1MjU4Zlx1MjU4ZVx1MjU4ZFx1MjU4Y1x1MjU4Ylx1MjU4YVx1MjU4OVx1MjUzY1x1MjUzNFx1MjUy''@;'; put 'put ''Y1x1MjUyNFx1MjUxY1x1MjU5NFx1MjUwMFx1MjUwMlx1MjU5NVx1MjUwY1x1MjUxMFx1MjUxNFx1MjUxOFx1MjU2ZCJdLFsiYTJhMSIsIlx1MjU2ZVx1MjU3MFx1MjU2Zlx1MjU1MFx1MjU1ZVx1MjU2YVx1MjU2MVx1MjVlMlx1MjVlM1x1MjVlNVx1MjVlNFx1MjU3MVx1MjU3Mlx1MjU3M1x1''@;'; put 'put ''ZmYxMCIsOSwiXHUyMTYwIiw5LCJcdTMwMjEiLDgsIlx1NTM0MVx1NTM0NFx1NTM0NVx1ZmYyMSIsMjUsIlx1ZmY0MSIsMjFdLFsiYTM0MCIsIlx1ZmY1N1x1ZmY1OFx1ZmY1OVx1ZmY1YVx1MDM5MSIsMTYsIlx1MDNhMyIsNiwiXHUwM2IxIiwxNiwiXHUwM2MzIiw2LCJcdTMxMDUiLDEwXSxb''@;'; put 'put ''ImEzYTEiLCJcdTMxMTAiLDI1LCJcdTAyZDlcdTAyYzlcdTAyY2FcdTAyYzdcdTAyY2IiXSxbImEzZTEiLCJcdTIwYWMiXSxbImE0NDAiLCJcdTRlMDBcdTRlNTlcdTRlMDFcdTRlMDNcdTRlNDNcdTRlNWRcdTRlODZcdTRlOGNcdTRlYmFcdTUxM2ZcdTUxNjVcdTUxNmJcdTUxZTBcdTUyMDBc''@;'; put 'put ''dTUyMDFcdTUyOWJcdTUzMTVcdTUzNDFcdTUzNWNcdTUzYzhcdTRlMDlcdTRlMGJcdTRlMDhcdTRlMGFcdTRlMmJcdTRlMzhcdTUxZTFcdTRlNDVcdTRlNDhcdTRlNWZcdTRlNWVcdTRlOGVcdTRlYTFcdTUxNDBcdTUyMDNcdTUyZmFcdTUzNDNcdTUzYzlcdTUzZTNcdTU3MWZcdTU4ZWJcdTU5''@;'; put 'put ''MTVcdTU5MjdcdTU5NzNcdTViNTBcdTViNTFcdTViNTNcdTViZjhcdTVjMGZcdTVjMjJcdTVjMzhcdTVjNzFcdTVkZGRcdTVkZTVcdTVkZjFcdTVkZjJcdTVkZjNcdTVkZmVcdTVlNzJcdTVlZmVcdTVmMGJcdTVmMTNcdTYyNGQiXSxbImE0YTEiLCJcdTRlMTFcdTRlMTBcdTRlMGRcdTRlMmRc''@;'; put 'put ''dTRlMzBcdTRlMzlcdTRlNGJcdTVjMzlcdTRlODhcdTRlOTFcdTRlOTVcdTRlOTJcdTRlOTRcdTRlYTJcdTRlYzFcdTRlYzBcdTRlYzNcdTRlYzZcdTRlYzdcdTRlY2RcdTRlY2FcdTRlY2JcdTRlYzRcdTUxNDNcdTUxNDFcdTUxNjdcdTUxNmRcdTUxNmVcdTUxNmNcdTUxOTdcdTUxZjZcdTUy''@;'; put 'put ''MDZcdTUyMDdcdTUyMDhcdTUyZmJcdTUyZmVcdTUyZmZcdTUzMTZcdTUzMzlcdTUzNDhcdTUzNDdcdTUzNDVcdTUzNWVcdTUzODRcdTUzY2JcdTUzY2FcdTUzY2RcdTU4ZWNcdTU5MjlcdTU5MmJcdTU5MmFcdTU5MmRcdTViNTRcdTVjMTFcdTVjMjRcdTVjM2FcdTVjNmZcdTVkZjRcdTVlN2Jc''@;'; put 'put ''dTVlZmZcdTVmMTRcdTVmMTVcdTVmYzNcdTYyMDhcdTYyMzZcdTYyNGJcdTYyNGVcdTY1MmZcdTY1ODdcdTY1OTdcdTY1YTRcdTY1YjlcdTY1ZTVcdTY2ZjBcdTY3MDhcdTY3MjhcdTZiMjBcdTZiNjJcdTZiNzlcdTZiY2JcdTZiZDRcdTZiZGJcdTZjMGZcdTZjMzRcdTcwNmJcdTcyMmFcdTcy''@;'; put 'put ''MzZcdTcyM2JcdTcyNDdcdTcyNTlcdTcyNWJcdTcyYWNcdTczOGJcdTRlMTkiXSxbImE1NDAiLCJcdTRlMTZcdTRlMTVcdTRlMTRcdTRlMThcdTRlM2JcdTRlNGRcdTRlNGZcdTRlNGVcdTRlZTVcdTRlZDhcdTRlZDRcdTRlZDVcdTRlZDZcdTRlZDdcdTRlZTNcdTRlZTRcdTRlZDlcdTRlZGVc''@;'; put 'put ''dTUxNDVcdTUxNDRcdTUxODlcdTUxOGFcdTUxYWNcdTUxZjlcdTUxZmFcdTUxZjhcdTUyMGFcdTUyYTBcdTUyOWZcdTUzMDVcdTUzMDZcdTUzMTdcdTUzMWRcdTRlZGZcdTUzNGFcdTUzNDlcdTUzNjFcdTUzNjBcdTUzNmZcdTUzNmVcdTUzYmJcdTUzZWZcdTUzZTRcdTUzZjNcdTUzZWNcdTUz''@;'; put 'put ''ZWVcdTUzZTlcdTUzZThcdTUzZmNcdTUzZjhcdTUzZjVcdTUzZWJcdTUzZTZcdTUzZWFcdTUzZjJcdTUzZjFcdTUzZjBcdTUzZTVcdTUzZWRcdTUzZmJcdTU2ZGJcdTU2ZGFcdTU5MTYiXSxbImE1YTEiLCJcdTU5MmVcdTU5MzFcdTU5NzRcdTU5NzZcdTViNTVcdTViODNcdTVjM2NcdTVkZThc''@;'; put 'put ''dTVkZTdcdTVkZTZcdTVlMDJcdTVlMDNcdTVlNzNcdTVlN2NcdTVmMDFcdTVmMThcdTVmMTdcdTVmYzVcdTYyMGFcdTYyNTNcdTYyNTRcdTYyNTJcdTYyNTFcdTY1YTVcdTY1ZTZcdTY3MmVcdTY3MmNcdTY3MmFcdTY3MmJcdTY3MmRcdTZiNjNcdTZiY2RcdTZjMTFcdTZjMTBcdTZjMzhcdTZj''@;'; put 'put ''NDFcdTZjNDBcdTZjM2VcdTcyYWZcdTczODRcdTczODlcdTc0ZGNcdTc0ZTZcdTc1MThcdTc1MWZcdTc1MjhcdTc1MjlcdTc1MzBcdTc1MzFcdTc1MzJcdTc1MzNcdTc1OGJcdTc2N2RcdTc2YWVcdTc2YmZcdTc2ZWVcdTc3ZGJcdTc3ZTJcdTc3ZjNcdTc5M2FcdTc5YmVcdTdhNzRcdTdhY2Jc''@;'; put 'put ''dTRlMWVcdTRlMWZcdTRlNTJcdTRlNTNcdTRlNjlcdTRlOTlcdTRlYTRcdTRlYTZcdTRlYTVcdTRlZmZcdTRmMDlcdTRmMTlcdTRmMGFcdTRmMTVcdTRmMGRcdTRmMTBcdTRmMTFcdTRmMGZcdTRlZjJcdTRlZjZcdTRlZmJcdTRlZjBcdTRlZjNcdTRlZmRcdTRmMDFcdTRmMGJcdTUxNDlcdTUx''@;'; put 'put ''NDdcdTUxNDZcdTUxNDhcdTUxNjgiXSxbImE2NDAiLCJcdTUxNzFcdTUxOGRcdTUxYjBcdTUyMTdcdTUyMTFcdTUyMTJcdTUyMGVcdTUyMTZcdTUyYTNcdTUzMDhcdTUzMjFcdTUzMjBcdTUzNzBcdTUzNzFcdTU0MDlcdTU0MGZcdTU0MGNcdTU0MGFcdTU0MTBcdTU0MDFcdTU0MGJcdTU0MDRc''@;'; put 'put ''dTU0MTFcdTU0MGRcdTU0MDhcdTU0MDNcdTU0MGVcdTU0MDZcdTU0MTJcdTU2ZTBcdTU2ZGVcdTU2ZGRcdTU3MzNcdTU3MzBcdTU3MjhcdTU3MmRcdTU3MmNcdTU3MmZcdTU3MjlcdTU5MTlcdTU5MWFcdTU5MzdcdTU5MzhcdTU5ODRcdTU5NzhcdTU5ODNcdTU5N2RcdTU5NzlcdTU5ODJcdTU5''@;'; put 'put ''ODFcdTViNTdcdTViNThcdTViODdcdTViODhcdTViODVcdTViODlcdTViZmFcdTVjMTZcdTVjNzlcdTVkZGVcdTVlMDZcdTVlNzZcdTVlNzQiXSxbImE2YTEiLCJcdTVmMGZcdTVmMWJcdTVmZDlcdTVmZDZcdTYyMGVcdTYyMGNcdTYyMGRcdTYyMTBcdTYyNjNcdTYyNWJcdTYyNThcdTY1MzZc''@;'; put 'put ''dTY1ZTlcdTY1ZThcdTY1ZWNcdTY1ZWRcdTY2ZjJcdTY2ZjNcdTY3MDlcdTY3M2RcdTY3MzRcdTY3MzFcdTY3MzVcdTZiMjFcdTZiNjRcdTZiN2JcdTZjMTZcdTZjNWRcdTZjNTdcdTZjNTlcdTZjNWZcdTZjNjBcdTZjNTBcdTZjNTVcdTZjNjFcdTZjNWJcdTZjNGRcdTZjNGVcdTcwNzBcdTcy''@;'; put 'put ''NWZcdTcyNWRcdTc2N2VcdTdhZjlcdTdjNzNcdTdjZjhcdTdmMzZcdTdmOGFcdTdmYmRcdTgwMDFcdTgwMDNcdTgwMGNcdTgwMTJcdTgwMzNcdTgwN2ZcdTgwODlcdTgwOGJcdTgwOGNcdTgxZTNcdTgxZWFcdTgxZjNcdTgxZmNcdTgyMGNcdTgyMWJcdTgyMWZcdTgyNmVcdTgyNzJcdTgyN2Vc''@;'; put 'put ''dTg2NmJcdTg4NDBcdTg4NGNcdTg4NjNcdTg5N2ZcdTk2MjFcdTRlMzJcdTRlYThcdTRmNGRcdTRmNGZcdTRmNDdcdTRmNTdcdTRmNWVcdTRmMzRcdTRmNWJcdTRmNTVcdTRmMzBcdTRmNTBcdTRmNTFcdTRmM2RcdTRmM2FcdTRmMzhcdTRmNDNcdTRmNTRcdTRmM2NcdTRmNDZcdTRmNjMiXSxb''@;'; put 'put ''ImE3NDAiLCJcdTRmNWNcdTRmNjBcdTRmMmZcdTRmNGVcdTRmMzZcdTRmNTlcdTRmNWRcdTRmNDhcdTRmNWFcdTUxNGNcdTUxNGJcdTUxNGRcdTUxNzVcdTUxYjZcdTUxYjdcdTUyMjVcdTUyMjRcdTUyMjlcdTUyMmFcdTUyMjhcdTUyYWJcdTUyYTlcdTUyYWFcdTUyYWNcdTUzMjNcdTUzNzNc''@;'; put 'put ''dTUzNzVcdTU0MWRcdTU0MmRcdTU0MWVcdTU0M2VcdTU0MjZcdTU0NGVcdTU0MjdcdTU0NDZcdTU0NDNcdTU0MzNcdTU0NDhcdTU0NDJcdTU0MWJcdTU0MjlcdTU0NGFcdTU0MzlcdTU0M2JcdTU0MzhcdTU0MmVcdTU0MzVcdTU0MzZcdTU0MjBcdTU0M2NcdTU0NDBcdTU0MzFcdTU0MmJcdTU0''@;'; put 'put ''MWZcdTU0MmNcdTU2ZWFcdTU2ZjBcdTU2ZTRcdTU2ZWJcdTU3NGFcdTU3NTFcdTU3NDBcdTU3NGQiXSxbImE3YTEiLCJcdTU3NDdcdTU3NGVcdTU3M2VcdTU3NTBcdTU3NGZcdTU3M2JcdTU4ZWZcdTU5M2VcdTU5OWRcdTU5OTJcdTU5YThcdTU5OWVcdTU5YTNcdTU5OTlcdTU5OTZcdTU5OGRc''@;'; put 'put ''dTU5YTRcdTU5OTNcdTU5OGFcdTU5YTVcdTViNWRcdTViNWNcdTViNWFcdTViNWJcdTViOGNcdTViOGJcdTViOGZcdTVjMmNcdTVjNDBcdTVjNDFcdTVjM2ZcdTVjM2VcdTVjOTBcdTVjOTFcdTVjOTRcdTVjOGNcdTVkZWJcdTVlMGNcdTVlOGZcdTVlODdcdTVlOGFcdTVlZjdcdTVmMDRcdTVm''@;'; put 'put ''MWZcdTVmNjRcdTVmNjJcdTVmNzdcdTVmNzlcdTVmZDhcdTVmY2NcdTVmZDdcdTVmY2RcdTVmZjFcdTVmZWJcdTVmZjhcdTVmZWFcdTYyMTJcdTYyMTFcdTYyODRcdTYyOTdcdTYyOTZcdTYyODBcdTYyNzZcdTYyODlcdTYyNmRcdTYyOGFcdTYyN2NcdTYyN2VcdTYyNzlcdTYyNzNcdTYyOTJc''@;'; put 'put ''dTYyNmZcdTYyOThcdTYyNmVcdTYyOTVcdTYyOTNcdTYyOTFcdTYyODZcdTY1MzlcdTY1M2JcdTY1MzhcdTY1ZjFcdTY2ZjRcdTY3NWZcdTY3NGVcdTY3NGZcdTY3NTBcdTY3NTFcdTY3NWNcdTY3NTZcdTY3NWVcdTY3NDlcdTY3NDZcdTY3NjAiXSxbImE4NDAiLCJcdTY3NTNcdTY3NTdcdTZi''@;'; put 'put ''NjVcdTZiY2ZcdTZjNDJcdTZjNWVcdTZjOTlcdTZjODFcdTZjODhcdTZjODlcdTZjODVcdTZjOWJcdTZjNmFcdTZjN2FcdTZjOTBcdTZjNzBcdTZjOGNcdTZjNjhcdTZjOTZcdTZjOTJcdTZjN2RcdTZjODNcdTZjNzJcdTZjN2VcdTZjNzRcdTZjODZcdTZjNzZcdTZjOGRcdTZjOTRcdTZjOThc''@;'; put 'put ''dTZjODJcdTcwNzZcdTcwN2NcdTcwN2RcdTcwNzhcdTcyNjJcdTcyNjFcdTcyNjBcdTcyYzRcdTcyYzJcdTczOTZcdTc1MmNcdTc1MmJcdTc1MzdcdTc1MzhcdTc2ODJcdTc2ZWZcdTc3ZTNcdTc5YzFcdTc5YzBcdTc5YmZcdTdhNzZcdTdjZmJcdTdmNTVcdTgwOTZcdTgwOTNcdTgwOWRcdTgw''@;'; put 'put ''OThcdTgwOWJcdTgwOWFcdTgwYjJcdTgyNmZcdTgyOTIiXSxbImE4YTEiLCJcdTgyOGJcdTgyOGRcdTg5OGJcdTg5ZDJcdThhMDBcdThjMzdcdThjNDZcdThjNTVcdThjOWRcdThkNjRcdThkNzBcdThkYjNcdThlYWJcdThlY2FcdThmOWJcdThmYjBcdThmYzJcdThmYzZcdThmYzVcdThmYzRc''@;'; put 'put ''dTVkZTFcdTkwOTFcdTkwYTJcdTkwYWFcdTkwYTZcdTkwYTNcdTkxNDlcdTkxYzZcdTkxY2NcdTk2MzJcdTk2MmVcdTk2MzFcdTk2MmFcdTk2MmNcdTRlMjZcdTRlNTZcdTRlNzNcdTRlOGJcdTRlOWJcdTRlOWVcdTRlYWJcdTRlYWNcdTRmNmZcdTRmOWRcdTRmOGRcdTRmNzNcdTRmN2ZcdTRm''@;'; put 'put ''NmNcdTRmOWJcdTRmOGJcdTRmODZcdTRmODNcdTRmNzBcdTRmNzVcdTRmODhcdTRmNjlcdTRmN2JcdTRmOTZcdTRmN2VcdTRmOGZcdTRmOTFcdTRmN2FcdTUxNTRcdTUxNTJcdTUxNTVcdTUxNjlcdTUxNzdcdTUxNzZcdTUxNzhcdTUxYmRcdTUxZmRcdTUyM2JcdTUyMzhcdTUyMzdcdTUyM2Fc''@;'; put 'put ''dTUyMzBcdTUyMmVcdTUyMzZcdTUyNDFcdTUyYmVcdTUyYmJcdTUzNTJcdTUzNTRcdTUzNTNcdTUzNTFcdTUzNjZcdTUzNzdcdTUzNzhcdTUzNzlcdTUzZDZcdTUzZDRcdTUzZDdcdTU0NzNcdTU0NzUiXSxbImE5NDAiLCJcdTU0OTZcdTU0NzhcdTU0OTVcdTU0ODBcdTU0N2JcdTU0NzdcdTU0''@;'; put 'put ''ODRcdTU0OTJcdTU0ODZcdTU0N2NcdTU0OTBcdTU0NzFcdTU0NzZcdTU0OGNcdTU0OWFcdTU0NjJcdTU0NjhcdTU0OGJcdTU0N2RcdTU0OGVcdTU2ZmFcdTU3ODNcdTU3NzdcdTU3NmFcdTU3NjlcdTU3NjFcdTU3NjZcdTU3NjRcdTU3N2NcdTU5MWNcdTU5NDlcdTU5NDdcdTU5NDhcdTU5NDRc''@;'; put 'put ''dTU5NTRcdTU5YmVcdTU5YmJcdTU5ZDRcdTU5YjlcdTU5YWVcdTU5ZDFcdTU5YzZcdTU5ZDBcdTU5Y2RcdTU5Y2JcdTU5ZDNcdTU5Y2FcdTU5YWZcdTU5YjNcdTU5ZDJcdTU5YzVcdTViNWZcdTViNjRcdTViNjNcdTViOTdcdTViOWFcdTViOThcdTViOWNcdTViOTlcdTViOWJcdTVjMWFcdTVj''@;'; put 'put ''NDhcdTVjNDUiXSxbImE5YTEiLCJcdTVjNDZcdTVjYjdcdTVjYTFcdTVjYjhcdTVjYTlcdTVjYWJcdTVjYjFcdTVjYjNcdTVlMThcdTVlMWFcdTVlMTZcdTVlMTVcdTVlMWJcdTVlMTFcdTVlNzhcdTVlOWFcdTVlOTdcdTVlOWNcdTVlOTVcdTVlOTZcdTVlZjZcdTVmMjZcdTVmMjdcdTVmMjlc''@;'; put 'put ''dTVmODBcdTVmODFcdTVmN2ZcdTVmN2NcdTVmZGRcdTVmZTBcdTVmZmRcdTVmZjVcdTVmZmZcdTYwMGZcdTYwMTRcdTYwMmZcdTYwMzVcdTYwMTZcdTYwMmFcdTYwMTVcdTYwMjFcdTYwMjdcdTYwMjlcdTYwMmJcdTYwMWJcdTYyMTZcdTYyMTVcdTYyM2ZcdTYyM2VcdTYyNDBcdTYyN2ZcdTYy''@;'; put 'put ''YzlcdTYyY2NcdTYyYzRcdTYyYmZcdTYyYzJcdTYyYjlcdTYyZDJcdTYyZGJcdTYyYWJcdTYyZDNcdTYyZDRcdTYyY2JcdTYyYzhcdTYyYThcdTYyYmRcdTYyYmNcdTYyZDBcdTYyZDlcdTYyYzdcdTYyY2RcdTYyYjVcdTYyZGFcdTYyYjFcdTYyZDhcdTYyZDZcdTYyZDdcdTYyYzZcdTYyYWNc''@;'; put 'put ''dTYyY2VcdTY1M2VcdTY1YTdcdTY1YmNcdTY1ZmFcdTY2MTRcdTY2MTNcdTY2MGNcdTY2MDZcdTY2MDJcdTY2MGVcdTY2MDBcdTY2MGZcdTY2MTVcdTY2MGEiXSxbImFhNDAiLCJcdTY2MDdcdTY3MGRcdTY3MGJcdTY3NmRcdTY3OGJcdTY3OTVcdTY3NzFcdTY3OWNcdTY3NzNcdTY3NzdcdTY3''@;'; put 'put ''ODdcdTY3OWRcdTY3OTdcdTY3NmZcdTY3NzBcdTY3N2ZcdTY3ODlcdTY3N2VcdTY3OTBcdTY3NzVcdTY3OWFcdTY3OTNcdTY3N2NcdTY3NmFcdTY3NzJcdTZiMjNcdTZiNjZcdTZiNjdcdTZiN2ZcdTZjMTNcdTZjMWJcdTZjZTNcdTZjZThcdTZjZjNcdTZjYjFcdTZjY2NcdTZjZTVcdTZjYjNc''@;'; put 'put ''dTZjYmRcdTZjYmVcdTZjYmNcdTZjZTJcdTZjYWJcdTZjZDVcdTZjZDNcdTZjYjhcdTZjYzRcdTZjYjlcdTZjYzFcdTZjYWVcdTZjZDdcdTZjYzVcdTZjZjFcdTZjYmZcdTZjYmJcdTZjZTFcdTZjZGJcdTZjY2FcdTZjYWNcdTZjZWZcdTZjZGNcdTZjZDZcdTZjZTAiXSxbImFhYTEiLCJcdTcw''@;'; put 'put ''OTVcdTcwOGVcdTcwOTJcdTcwOGFcdTcwOTlcdTcyMmNcdTcyMmRcdTcyMzhcdTcyNDhcdTcyNjdcdTcyNjlcdTcyYzBcdTcyY2VcdTcyZDlcdTcyZDdcdTcyZDBcdTczYTlcdTczYThcdTczOWZcdTczYWJcdTczYTVcdTc1M2RcdTc1OWRcdTc1OTlcdTc1OWFcdTc2ODRcdTc2YzJcdTc2ZjJc''@;'; put 'put ''dTc2ZjRcdTc3ZTVcdTc3ZmRcdTc5M2VcdTc5NDBcdTc5NDFcdTc5YzlcdTc5YzhcdTdhN2FcdTdhNzlcdTdhZmFcdTdjZmVcdTdmNTRcdTdmOGNcdTdmOGJcdTgwMDVcdTgwYmFcdTgwYTVcdTgwYTJcdTgwYjFcdTgwYTFcdTgwYWJcdTgwYTlcdTgwYjRcdTgwYWFcdTgwYWZcdTgxZTVcdTgx''@;'; put 'put ''ZmVcdTgyMGRcdTgyYjNcdTgyOWRcdTgyOTlcdTgyYWRcdTgyYmRcdTgyOWZcdTgyYjlcdTgyYjFcdTgyYWNcdTgyYTVcdTgyYWZcdTgyYjhcdTgyYTNcdTgyYjBcdTgyYmVcdTgyYjdcdTg2NGVcdTg2NzFcdTUyMWRcdTg4NjhcdThlY2JcdThmY2VcdThmZDRcdThmZDFcdTkwYjVcdTkwYjhc''@;'; put 'put ''dTkwYjFcdTkwYjZcdTkxYzdcdTkxZDFcdTk1NzdcdTk1ODBcdTk2MWNcdTk2NDBcdTk2M2ZcdTk2M2JcdTk2NDQiXSxbImFiNDAiLCJcdTk2NDJcdTk2YjlcdTk2ZThcdTk3NTJcdTk3NWVcdTRlOWZcdTRlYWRcdTRlYWVcdTRmZTFcdTRmYjVcdTRmYWZcdTRmYmZcdTRmZTBcdTRmZDFcdTRm''@;'; put 'put ''Y2ZcdTRmZGRcdTRmYzNcdTRmYjZcdTRmZDhcdTRmZGZcdTRmY2FcdTRmZDdcdTRmYWVcdTRmZDBcdTRmYzRcdTRmYzJcdTRmZGFcdTRmY2VcdTRmZGVcdTRmYjdcdTUxNTdcdTUxOTJcdTUxOTFcdTUxYTBcdTUyNGVcdTUyNDNcdTUyNGFcdTUyNGRcdTUyNGNcdTUyNGJcdTUyNDdcdTUyYzdc''@;'; put 'put ''dTUyYzlcdTUyYzNcdTUyYzFcdTUzMGRcdTUzNTdcdTUzN2JcdTUzOWFcdTUzZGJcdTU0YWNcdTU0YzBcdTU0YThcdTU0Y2VcdTU0YzlcdTU0YjhcdTU0YTZcdTU0YjNcdTU0YzdcdTU0YzJcdTU0YmRcdTU0YWFcdTU0YzEiXSxbImFiYTEiLCJcdTU0YzRcdTU0YzhcdTU0YWZcdTU0YWJcdTU0''@;'; put 'put ''YjFcdTU0YmJcdTU0YTlcdTU0YTdcdTU0YmZcdTU2ZmZcdTU3ODJcdTU3OGJcdTU3YTBcdTU3YTNcdTU3YTJcdTU3Y2VcdTU3YWVcdTU3OTNcdTU5NTVcdTU5NTFcdTU5NGZcdTU5NGVcdTU5NTBcdTU5ZGNcdTU5ZDhcdTU5ZmZcdTU5ZTNcdTU5ZThcdTVhMDNcdTU5ZTVcdTU5ZWFcdTU5ZGFc''@;'; put 'put ''dTU5ZTZcdTVhMDFcdTU5ZmJcdTViNjlcdTViYTNcdTViYTZcdTViYTRcdTViYTJcdTViYTVcdTVjMDFcdTVjNGVcdTVjNGZcdTVjNGRcdTVjNGJcdTVjZDlcdTVjZDJcdTVkZjdcdTVlMWRcdTVlMjVcdTVlMWZcdTVlN2RcdTVlYTBcdTVlYTZcdTVlZmFcdTVmMDhcdTVmMmRcdTVmNjVcdTVm''@;'; put 'put ''ODhcdTVmODVcdTVmOGFcdTVmOGJcdTVmODdcdTVmOGNcdTVmODlcdTYwMTJcdTYwMWRcdTYwMjBcdTYwMjVcdTYwMGVcdTYwMjhcdTYwNGRcdTYwNzBcdTYwNjhcdTYwNjJcdTYwNDZcdTYwNDNcdTYwNmNcdTYwNmJcdTYwNmFcdTYwNjRcdTYyNDFcdTYyZGNcdTYzMTZcdTYzMDlcdTYyZmNc''@;'; put 'put ''dTYyZWRcdTYzMDFcdTYyZWVcdTYyZmRcdTYzMDdcdTYyZjFcdTYyZjciXSxbImFjNDAiLCJcdTYyZWZcdTYyZWNcdTYyZmVcdTYyZjRcdTYzMTFcdTYzMDJcdTY1M2ZcdTY1NDVcdTY1YWJcdTY1YmRcdTY1ZTJcdTY2MjVcdTY2MmRcdTY2MjBcdTY2MjdcdTY2MmZcdTY2MWZcdTY2MjhcdTY2''@;'; put 'put ''MzFcdTY2MjRcdTY2ZjdcdTY3ZmZcdTY3ZDNcdTY3ZjFcdTY3ZDRcdTY3ZDBcdTY3ZWNcdTY3YjZcdTY3YWZcdTY3ZjVcdTY3ZTlcdTY3ZWZcdTY3YzRcdTY3ZDFcdTY3YjRcdTY3ZGFcdTY3ZTVcdTY3YjhcdTY3Y2ZcdTY3ZGVcdTY3ZjNcdTY3YjBcdTY3ZDlcdTY3ZTJcdTY3ZGRcdTY3ZDJc''@;'; put 'put ''dTZiNmFcdTZiODNcdTZiODZcdTZiYjVcdTZiZDJcdTZiZDdcdTZjMWZcdTZjYzlcdTZkMGJcdTZkMzJcdTZkMmFcdTZkNDFcdTZkMjVcdTZkMGNcdTZkMzFcdTZkMWVcdTZkMTciXSxbImFjYTEiLCJcdTZkM2JcdTZkM2RcdTZkM2VcdTZkMzZcdTZkMWJcdTZjZjVcdTZkMzlcdTZkMjdcdTZk''@;'; put 'put ''MzhcdTZkMjlcdTZkMmVcdTZkMzVcdTZkMGVcdTZkMmJcdTcwYWJcdTcwYmFcdTcwYjNcdTcwYWNcdTcwYWZcdTcwYWRcdTcwYjhcdTcwYWVcdTcwYTRcdTcyMzBcdTcyNzJcdTcyNmZcdTcyNzRcdTcyZTlcdTcyZTBcdTcyZTFcdTczYjdcdTczY2FcdTczYmJcdTczYjJcdTczY2RcdTczYzBc''@;'; put 'put ''dTczYjNcdTc1MWFcdTc1MmRcdTc1NGZcdTc1NGNcdTc1NGVcdTc1NGJcdTc1YWJcdTc1YTRcdTc1YTVcdTc1YTJcdTc1YTNcdTc2NzhcdTc2ODZcdTc2ODdcdTc2ODhcdTc2YzhcdTc2YzZcdTc2YzNcdTc2YzVcdTc3MDFcdTc2ZjlcdTc2ZjhcdTc3MDlcdTc3MGJcdTc2ZmVcdTc2ZmNcdTc3''@;'; put 'put ''MDdcdTc3ZGNcdTc4MDJcdTc4MTRcdTc4MGNcdTc4MGRcdTc5NDZcdTc5NDlcdTc5NDhcdTc5NDdcdTc5YjlcdTc5YmFcdTc5ZDFcdTc5ZDJcdTc5Y2JcdTdhN2ZcdTdhODFcdTdhZmZcdTdhZmRcdTdjN2RcdTdkMDJcdTdkMDVcdTdkMDBcdTdkMDlcdTdkMDdcdTdkMDRcdTdkMDZcdTdmMzhc''@;'; put 'put ''dTdmOGVcdTdmYmZcdTgwMDQiXSxbImFkNDAiLCJcdTgwMTBcdTgwMGRcdTgwMTFcdTgwMzZcdTgwZDZcdTgwZTVcdTgwZGFcdTgwYzNcdTgwYzRcdTgwY2NcdTgwZTFcdTgwZGJcdTgwY2VcdTgwZGVcdTgwZTRcdTgwZGRcdTgxZjRcdTgyMjJcdTgyZTdcdTgzMDNcdTgzMDVcdTgyZTNcdTgy''@;'; put 'put ''ZGJcdTgyZTZcdTgzMDRcdTgyZTVcdTgzMDJcdTgzMDlcdTgyZDJcdTgyZDdcdTgyZjFcdTgzMDFcdTgyZGNcdTgyZDRcdTgyZDFcdTgyZGVcdTgyZDNcdTgyZGZcdTgyZWZcdTgzMDZcdTg2NTBcdTg2NzlcdTg2N2JcdTg2N2FcdTg4NGRcdTg4NmJcdTg5ODFcdTg5ZDRcdThhMDhcdThhMDJc''@;'; put 'put ''dThhMDNcdThjOWVcdThjYTBcdThkNzRcdThkNzNcdThkYjRcdThlY2RcdThlY2NcdThmZjBcdThmZTZcdThmZTJcdThmZWFcdThmZTUiXSxbImFkYTEiLCJcdThmZWRcdThmZWJcdThmZTRcdThmZThcdTkwY2FcdTkwY2VcdTkwYzFcdTkwYzNcdTkxNGJcdTkxNGFcdTkxY2RcdTk1ODJcdTk2''@;'; put 'put ''NTBcdTk2NGJcdTk2NGNcdTk2NGRcdTk3NjJcdTk3NjlcdTk3Y2JcdTk3ZWRcdTk3ZjNcdTk4MDFcdTk4YThcdTk4ZGJcdTk4ZGZcdTk5OTZcdTk5OTlcdTRlNThcdTRlYjNcdTUwMGNcdTUwMGRcdTUwMjNcdTRmZWZcdTUwMjZcdTUwMjVcdTRmZjhcdTUwMjlcdTUwMTZcdTUwMDZcdTUwM2Nc''@;'; put 'put ''dTUwMWZcdTUwMWFcdTUwMTJcdTUwMTFcdTRmZmFcdTUwMDBcdTUwMTRcdTUwMjhcdTRmZjFcdTUwMjFcdTUwMGJcdTUwMTlcdTUwMThcdTRmZjNcdTRmZWVcdTUwMmRcdTUwMmFcdTRmZmVcdTUwMmJcdTUwMDlcdTUxN2NcdTUxYTRcdTUxYTVcdTUxYTJcdTUxY2RcdTUxY2NcdTUxYzZcdTUx''@;'; put 'put ''Y2JcdTUyNTZcdTUyNWNcdTUyNTRcdTUyNWJcdTUyNWRcdTUzMmFcdTUzN2ZcdTUzOWZcdTUzOWRcdTUzZGZcdTU0ZThcdTU1MTBcdTU1MDFcdTU1MzdcdTU0ZmNcdTU0ZTVcdTU0ZjJcdTU1MDZcdTU0ZmFcdTU1MTRcdTU0ZTlcdTU0ZWRcdTU0ZTFcdTU1MDlcdTU0ZWVcdTU0ZWEiXSxbImFl''@;'; put 'put ''NDAiLCJcdTU0ZTZcdTU1MjdcdTU1MDdcdTU0ZmRcdTU1MGZcdTU3MDNcdTU3MDRcdTU3YzJcdTU3ZDRcdTU3Y2JcdTU3YzNcdTU4MDlcdTU5MGZcdTU5NTdcdTU5NThcdTU5NWFcdTVhMTFcdTVhMThcdTVhMWNcdTVhMWZcdTVhMWJcdTVhMTNcdTU5ZWNcdTVhMjBcdTVhMjNcdTVhMjlcdTVh''@;'; put 'put ''MjVcdTVhMGNcdTVhMDlcdTViNmJcdTVjNThcdTViYjBcdTViYjNcdTViYjZcdTViYjRcdTViYWVcdTViYjVcdTViYjlcdTViYjhcdTVjMDRcdTVjNTFcdTVjNTVcdTVjNTBcdTVjZWRcdTVjZmRcdTVjZmJcdTVjZWFcdTVjZThcdTVjZjBcdTVjZjZcdTVkMDFcdTVjZjRcdTVkZWVcdTVlMmRc''@;'; put 'put ''dTVlMmJcdTVlYWJcdTVlYWRcdTVlYTdcdTVmMzFcdTVmOTJcdTVmOTFcdTVmOTBcdTYwNTkiXSxbImFlYTEiLCJcdTYwNjNcdTYwNjVcdTYwNTBcdTYwNTVcdTYwNmRcdTYwNjlcdTYwNmZcdTYwODRcdTYwOWZcdTYwOWFcdTYwOGRcdTYwOTRcdTYwOGNcdTYwODVcdTYwOTZcdTYyNDdcdTYy''@;'; put 'put ''ZjNcdTYzMDhcdTYyZmZcdTYzNGVcdTYzM2VcdTYzMmZcdTYzNTVcdTYzNDJcdTYzNDZcdTYzNGZcdTYzNDlcdTYzM2FcdTYzNTBcdTYzM2RcdTYzMmFcdTYzMmJcdTYzMjhcdTYzNGRcdTYzNGNcdTY1NDhcdTY1NDlcdTY1OTlcdTY1YzFcdTY1YzVcdTY2NDJcdTY2NDlcdTY2NGZcdTY2NDNc''@;'; put 'put ''dTY2NTJcdTY2NGNcdTY2NDVcdTY2NDFcdTY2ZjhcdTY3MTRcdTY3MTVcdTY3MTdcdTY4MjFcdTY4MzhcdTY4NDhcdTY4NDZcdTY4NTNcdTY4MzlcdTY4NDJcdTY4NTRcdTY4MjlcdTY4YjNcdTY4MTdcdTY4NGNcdTY4NTFcdTY4M2RcdTY3ZjRcdTY4NTBcdTY4NDBcdTY4M2NcdTY4NDNcdTY4''@;'; put 'put ''MmFcdTY4NDVcdTY4MTNcdTY4MThcdTY4NDFcdTZiOGFcdTZiODlcdTZiYjdcdTZjMjNcdTZjMjdcdTZjMjhcdTZjMjZcdTZjMjRcdTZjZjBcdTZkNmFcdTZkOTVcdTZkODhcdTZkODdcdTZkNjZcdTZkNzhcdTZkNzdcdTZkNTlcdTZkOTMiXSxbImFmNDAiLCJcdTZkNmNcdTZkODlcdTZkNmVc''@;'; put 'put ''dTZkNWFcdTZkNzRcdTZkNjlcdTZkOGNcdTZkOGFcdTZkNzlcdTZkODVcdTZkNjVcdTZkOTRcdTcwY2FcdTcwZDhcdTcwZTRcdTcwZDlcdTcwYzhcdTcwY2ZcdTcyMzlcdTcyNzlcdTcyZmNcdTcyZjlcdTcyZmRcdTcyZjhcdTcyZjdcdTczODZcdTczZWRcdTc0MDlcdTczZWVcdTczZTBcdTcz''@;'; put 'put ''ZWFcdTczZGVcdTc1NTRcdTc1NWRcdTc1NWNcdTc1NWFcdTc1NTlcdTc1YmVcdTc1YzVcdTc1YzdcdTc1YjJcdTc1YjNcdTc1YmRcdTc1YmNcdTc1YjlcdTc1YzJcdTc1YjhcdTc2OGJcdTc2YjBcdTc2Y2FcdTc2Y2RcdTc2Y2VcdTc3MjlcdTc3MWZcdTc3MjBcdTc3MjhcdTc3ZTlcdTc4MzBc''@;'; put 'put ''dTc4MjdcdTc4MzhcdTc4MWRcdTc4MzRcdTc4MzciXSxbImFmYTEiLCJcdTc4MjVcdTc4MmRcdTc4MjBcdTc4MWZcdTc4MzJcdTc5NTVcdTc5NTBcdTc5NjBcdTc5NWZcdTc5NTZcdTc5NWVcdTc5NWRcdTc5NTdcdTc5NWFcdTc5ZTRcdTc5ZTNcdTc5ZTdcdTc5ZGZcdTc5ZTZcdTc5ZTlcdTc5''@;'; put 'put ''ZDhcdTdhODRcdTdhODhcdTdhZDlcdTdiMDZcdTdiMTFcdTdjODlcdTdkMjFcdTdkMTdcdTdkMGJcdTdkMGFcdTdkMjBcdTdkMjJcdTdkMTRcdTdkMTBcdTdkMTVcdTdkMWFcdTdkMWNcdTdkMGRcdTdkMTlcdTdkMWJcdTdmM2FcdTdmNWZcdTdmOTRcdTdmYzVcdTdmYzFcdTgwMDZcdTgwMThc''@;'; put 'put ''dTgwMTVcdTgwMTlcdTgwMTdcdTgwM2RcdTgwM2ZcdTgwZjFcdTgxMDJcdTgwZjBcdTgxMDVcdTgwZWRcdTgwZjRcdTgxMDZcdTgwZjhcdTgwZjNcdTgxMDhcdTgwZmRcdTgxMGFcdTgwZmNcdTgwZWZcdTgxZWRcdTgxZWNcdTgyMDBcdTgyMTBcdTgyMmFcdTgyMmJcdTgyMjhcdTgyMmNcdTgy''@;'; put 'put ''YmJcdTgzMmJcdTgzNTJcdTgzNTRcdTgzNGFcdTgzMzhcdTgzNTBcdTgzNDlcdTgzMzVcdTgzMzRcdTgzNGZcdTgzMzJcdTgzMzlcdTgzMzZcdTgzMTdcdTgzNDBcdTgzMzFcdTgzMjhcdTgzNDMiXSxbImIwNDAiLCJcdTg2NTRcdTg2OGFcdTg2YWFcdTg2OTNcdTg2YTRcdTg2YTlcdTg2OGNc''@;'; put 'put ''dTg2YTNcdTg2OWNcdTg4NzBcdTg4NzdcdTg4ODFcdTg4ODJcdTg4N2RcdTg4NzlcdThhMThcdThhMTBcdThhMGVcdThhMGNcdThhMTVcdThhMGFcdThhMTdcdThhMTNcdThhMTZcdThhMGZcdThhMTFcdThjNDhcdThjN2FcdThjNzlcdThjYTFcdThjYTJcdThkNzdcdThlYWNcdThlZDJcdThl''@;'; put 'put ''ZDRcdThlY2ZcdThmYjFcdTkwMDFcdTkwMDZcdThmZjdcdTkwMDBcdThmZmFcdThmZjRcdTkwMDNcdThmZmRcdTkwMDVcdThmZjhcdTkwOTVcdTkwZTFcdTkwZGRcdTkwZTJcdTkxNTJcdTkxNGRcdTkxNGNcdTkxZDhcdTkxZGRcdTkxZDdcdTkxZGNcdTkxZDlcdTk1ODNcdTk2NjJcdTk2NjNc''@;'; put 'put ''dTk2NjEiXSxbImIwYTEiLCJcdTk2NWJcdTk2NWRcdTk2NjRcdTk2NThcdTk2NWVcdTk2YmJcdTk4ZTJcdTk5YWNcdTlhYThcdTlhZDhcdTliMjVcdTliMzJcdTliM2NcdTRlN2VcdTUwN2FcdTUwN2RcdTUwNWNcdTUwNDdcdTUwNDNcdTUwNGNcdTUwNWFcdTUwNDlcdTUwNjVcdTUwNzZcdTUw''@;'; put 'put ''NGVcdTUwNTVcdTUwNzVcdTUwNzRcdTUwNzdcdTUwNGZcdTUwMGZcdTUwNmZcdTUwNmRcdTUxNWNcdTUxOTVcdTUxZjBcdTUyNmFcdTUyNmZcdTUyZDJcdTUyZDlcdTUyZDhcdTUyZDVcdTUzMTBcdTUzMGZcdTUzMTlcdTUzM2ZcdTUzNDBcdTUzM2VcdTUzYzNcdTY2ZmNcdTU1NDZcdTU1NmFc''@;'; put 'put ''dTU1NjZcdTU1NDRcdTU1NWVcdTU1NjFcdTU1NDNcdTU1NGFcdTU1MzFcdTU1NTZcdTU1NGZcdTU1NTVcdTU1MmZcdTU1NjRcdTU1MzhcdTU1MmVcdTU1NWNcdTU1MmNcdTU1NjNcdTU1MzNcdTU1NDFcdTU1NTdcdTU3MDhcdTU3MGJcdTU3MDlcdTU3ZGZcdTU4MDVcdTU4MGFcdTU4MDZcdTU3''@;'; put 'put ''ZTBcdTU3ZTRcdTU3ZmFcdTU4MDJcdTU4MzVcdTU3ZjdcdTU3ZjlcdTU5MjBcdTU5NjJcdTVhMzZcdTVhNDFcdTVhNDlcdTVhNjZcdTVhNmFcdTVhNDAiXSxbImIxNDAiLCJcdTVhM2NcdTVhNjJcdTVhNWFcdTVhNDZcdTVhNGFcdTViNzBcdTViYzdcdTViYzVcdTViYzRcdTViYzJcdTViYmZc''@;'; put 'put ''dTViYzZcdTVjMDlcdTVjMDhcdTVjMDdcdTVjNjBcdTVjNWNcdTVjNWRcdTVkMDdcdTVkMDZcdTVkMGVcdTVkMWJcdTVkMTZcdTVkMjJcdTVkMTFcdTVkMjlcdTVkMTRcdTVkMTlcdTVkMjRcdTVkMjdcdTVkMTdcdTVkZTJcdTVlMzhcdTVlMzZcdTVlMzNcdTVlMzdcdTVlYjdcdTVlYjhcdTVl''@;'; put 'put ''YjZcdTVlYjVcdTVlYmVcdTVmMzVcdTVmMzdcdTVmNTdcdTVmNmNcdTVmNjlcdTVmNmJcdTVmOTdcdTVmOTlcdTVmOWVcdTVmOThcdTVmYTFcdTVmYTBcdTVmOWNcdTYwN2ZcdTYwYTNcdTYwODlcdTYwYTBcdTYwYThcdTYwY2JcdTYwYjRcdTYwZTZcdTYwYmQiXSxbImIxYTEiLCJcdTYwYzVc''@;'; put 'put ''dTYwYmJcdTYwYjVcdTYwZGNcdTYwYmNcdTYwZDhcdTYwZDVcdTYwYzZcdTYwZGZcdTYwYjhcdTYwZGFcdTYwYzdcdTYyMWFcdTYyMWJcdTYyNDhcdTYzYTBcdTYzYTdcdTYzNzJcdTYzOTZcdTYzYTJcdTYzYTVcdTYzNzdcdTYzNjdcdTYzOThcdTYzYWFcdTYzNzFcdTYzYTlcdTYzODlcdTYz''@;'; put 'put ''ODNcdTYzOWJcdTYzNmJcdTYzYThcdTYzODRcdTYzODhcdTYzOTlcdTYzYTFcdTYzYWNcdTYzOTJcdTYzOGZcdTYzODBcdTYzN2JcdTYzNjlcdTYzNjhcdTYzN2FcdTY1NWRcdTY1NTZcdTY1NTFcdTY1NTlcdTY1NTdcdTU1NWZcdTY1NGZcdTY1NThcdTY1NTVcdTY1NTRcdTY1OWNcdTY1OWJc''@;'; put 'put ''dTY1YWNcdTY1Y2ZcdTY1Y2JcdTY1Y2NcdTY1Y2VcdTY2NWRcdTY2NWFcdTY2NjRcdTY2NjhcdTY2NjZcdTY2NWVcdTY2ZjlcdTUyZDdcdTY3MWJcdTY4ODFcdTY4YWZcdTY4YTJcdTY4OTNcdTY4YjVcdTY4N2ZcdTY4NzZcdTY4YjFcdTY4YTdcdTY4OTdcdTY4YjBcdTY4ODNcdTY4YzRcdTY4''@;'; put 'put ''YWRcdTY4ODZcdTY4ODVcdTY4OTRcdTY4OWRcdTY4YThcdTY4OWZcdTY4YTFcdTY4ODJcdTZiMzJcdTZiYmEiXSxbImIyNDAiLCJcdTZiZWJcdTZiZWNcdTZjMmJcdTZkOGVcdTZkYmNcdTZkZjNcdTZkZDlcdTZkYjJcdTZkZTFcdTZkY2NcdTZkZTRcdTZkZmJcdTZkZmFcdTZlMDVcdTZkYzdc''@;'; put 'put ''dTZkY2JcdTZkYWZcdTZkZDFcdTZkYWVcdTZkZGVcdTZkZjlcdTZkYjhcdTZkZjdcdTZkZjVcdTZkYzVcdTZkZDJcdTZlMWFcdTZkYjVcdTZkZGFcdTZkZWJcdTZkZDhcdTZkZWFcdTZkZjFcdTZkZWVcdTZkZThcdTZkYzZcdTZkYzRcdTZkYWFcdTZkZWNcdTZkYmZcdTZkZTZcdTcwZjlcdTcx''@;'; put 'put ''MDlcdTcxMGFcdTcwZmRcdTcwZWZcdTcyM2RcdTcyN2RcdTcyODFcdTczMWNcdTczMWJcdTczMTZcdTczMTNcdTczMTlcdTczODdcdTc0MDVcdTc0MGFcdTc0MDNcdTc0MDZcdTczZmVcdTc0MGRcdTc0ZTBcdTc0ZjYiXSxbImIyYTEiLCJcdTc0ZjdcdTc1MWNcdTc1MjJcdTc1NjVcdTc1NjZc''@;'; put 'put ''dTc1NjJcdTc1NzBcdTc1OGZcdTc1ZDRcdTc1ZDVcdTc1YjVcdTc1Y2FcdTc1Y2RcdTc2OGVcdTc2ZDRcdTc2ZDJcdTc2ZGJcdTc3MzdcdTc3M2VcdTc3M2NcdTc3MzZcdTc3MzhcdTc3M2FcdTc4NmJcdTc4NDNcdTc4NGVcdTc5NjVcdTc5NjhcdTc5NmRcdTc5ZmJcdTdhOTJcdTdhOTVcdTdi''@;'; put 'put ''MjBcdTdiMjhcdTdiMWJcdTdiMmNcdTdiMjZcdTdiMTlcdTdiMWVcdTdiMmVcdTdjOTJcdTdjOTdcdTdjOTVcdTdkNDZcdTdkNDNcdTdkNzFcdTdkMmVcdTdkMzlcdTdkM2NcdTdkNDBcdTdkMzBcdTdkMzNcdTdkNDRcdTdkMmZcdTdkNDJcdTdkMzJcdTdkMzFcdTdmM2RcdTdmOWVcdTdmOWFc''@;'; put 'put ''dTdmY2NcdTdmY2VcdTdmZDJcdTgwMWNcdTgwNGFcdTgwNDZcdTgxMmZcdTgxMTZcdTgxMjNcdTgxMmJcdTgxMjlcdTgxMzBcdTgxMjRcdTgyMDJcdTgyMzVcdTgyMzdcdTgyMzZcdTgyMzlcdTgzOGVcdTgzOWVcdTgzOThcdTgzNzhcdTgzYTJcdTgzOTZcdTgzYmRcdTgzYWJcdTgzOTJcdTgz''@;'; put 'put ''OGFcdTgzOTNcdTgzODlcdTgzYTBcdTgzNzdcdTgzN2JcdTgzN2MiXSxbImIzNDAiLCJcdTgzODZcdTgzYTdcdTg2NTVcdTVmNmFcdTg2YzdcdTg2YzBcdTg2YjZcdTg2YzRcdTg2YjVcdTg2YzZcdTg2Y2JcdTg2YjFcdTg2YWZcdTg2YzlcdTg4NTNcdTg4OWVcdTg4ODhcdTg4YWJcdTg4OTJc''@;'; put 'put ''dTg4OTZcdTg4OGRcdTg4OGJcdTg5OTNcdTg5OGZcdThhMmFcdThhMWRcdThhMjNcdThhMjVcdThhMzFcdThhMmRcdThhMWZcdThhMWJcdThhMjJcdThjNDlcdThjNWFcdThjYTlcdThjYWNcdThjYWJcdThjYThcdThjYWFcdThjYTdcdThkNjdcdThkNjZcdThkYmVcdThkYmFcdThlZGJcdThl''@;'; put 'put ''ZGZcdTkwMTlcdTkwMGRcdTkwMWFcdTkwMTdcdTkwMjNcdTkwMWZcdTkwMWRcdTkwMTBcdTkwMTVcdTkwMWVcdTkwMjBcdTkwMGZcdTkwMjJcdTkwMTZcdTkwMWJcdTkwMTQiXSxbImIzYTEiLCJcdTkwZThcdTkwZWRcdTkwZmRcdTkxNTdcdTkxY2VcdTkxZjVcdTkxZTZcdTkxZTNcdTkxZTdc''@;'; put 'put ''dTkxZWRcdTkxZTlcdTk1ODlcdTk2NmFcdTk2NzVcdTk2NzNcdTk2NzhcdTk2NzBcdTk2NzRcdTk2NzZcdTk2NzdcdTk2NmNcdTk2YzBcdTk2ZWFcdTk2ZTlcdTdhZTBcdTdhZGZcdTk4MDJcdTk4MDNcdTliNWFcdTljZTVcdTllNzVcdTllN2ZcdTllYTVcdTllYmJcdTUwYTJcdTUwOGRcdTUw''@;'; put 'put ''ODVcdTUwOTlcdTUwOTFcdTUwODBcdTUwOTZcdTUwOThcdTUwOWFcdTY3MDBcdTUxZjFcdTUyNzJcdTUyNzRcdTUyNzVcdTUyNjlcdTUyZGVcdTUyZGRcdTUyZGJcdTUzNWFcdTUzYTVcdTU1N2JcdTU1ODBcdTU1YTdcdTU1N2NcdTU1OGFcdTU1OWRcdTU1OThcdTU1ODJcdTU1OWNcdTU1YWFc''@;'; put 'put ''dTU1OTRcdTU1ODdcdTU1OGJcdTU1ODNcdTU1YjNcdTU1YWVcdTU1OWZcdTU1M2VcdTU1YjJcdTU1OWFcdTU1YmJcdTU1YWNcdTU1YjFcdTU1N2VcdTU1ODlcdTU1YWJcdTU1OTlcdTU3MGRcdTU4MmZcdTU4MmFcdTU4MzRcdTU4MjRcdTU4MzBcdTU4MzFcdTU4MjFcdTU4MWRcdTU4MjBcdTU4''@;'; put 'put ''ZjlcdTU4ZmFcdTU5NjAiXSxbImI0NDAiLCJcdTVhNzdcdTVhOWFcdTVhN2ZcdTVhOTJcdTVhOWJcdTVhYTdcdTViNzNcdTViNzFcdTViZDJcdTViY2NcdTViZDNcdTViZDBcdTVjMGFcdTVjMGJcdTVjMzFcdTVkNGNcdTVkNTBcdTVkMzRcdTVkNDdcdTVkZmRcdTVlNDVcdTVlM2RcdTVlNDBc''@;'; put 'put ''dTVlNDNcdTVlN2VcdTVlY2FcdTVlYzFcdTVlYzJcdTVlYzRcdTVmM2NcdTVmNmRcdTVmYTlcdTVmYWFcdTVmYThcdTYwZDFcdTYwZTFcdTYwYjJcdTYwYjZcdTYwZTBcdTYxMWNcdTYxMjNcdTYwZmFcdTYxMTVcdTYwZjBcdTYwZmJcdTYwZjRcdTYxNjhcdTYwZjFcdTYxMGVcdTYwZjZcdTYx''@;'; put 'put ''MDlcdTYxMDBcdTYxMTJcdTYyMWZcdTYyNDlcdTYzYTNcdTYzOGNcdTYzY2ZcdTYzYzBcdTYzZTlcdTYzYzlcdTYzYzZcdTYzY2QiXSxbImI0YTEiLCJcdTYzZDJcdTYzZTNcdTYzZDBcdTYzZTFcdTYzZDZcdTYzZWRcdTYzZWVcdTYzNzZcdTYzZjRcdTYzZWFcdTYzZGJcdTY0NTJcdTYzZGFc''@;'; put 'put ''dTYzZjlcdTY1NWVcdTY1NjZcdTY1NjJcdTY1NjNcdTY1OTFcdTY1OTBcdTY1YWZcdTY2NmVcdTY2NzBcdTY2NzRcdTY2NzZcdTY2NmZcdTY2OTFcdTY2N2FcdTY2N2VcdTY2NzdcdTY2ZmVcdTY2ZmZcdTY3MWZcdTY3MWRcdTY4ZmFcdTY4ZDVcdTY4ZTBcdTY4ZDhcdTY4ZDdcdTY5MDVcdTY4''@;'; put 'put ''ZGZcdTY4ZjVcdTY4ZWVcdTY4ZTdcdTY4ZjlcdTY4ZDJcdTY4ZjJcdTY4ZTNcdTY4Y2JcdTY4Y2RcdTY5MGRcdTY5MTJcdTY5MGVcdTY4YzlcdTY4ZGFcdTY5NmVcdTY4ZmJcdTZiM2VcdTZiM2FcdTZiM2RcdTZiOThcdTZiOTZcdTZiYmNcdTZiZWZcdTZjMmVcdTZjMmZcdTZjMmNcdTZlMmZc''@;'; put 'put ''dTZlMzhcdTZlNTRcdTZlMjFcdTZlMzJcdTZlNjdcdTZlNGFcdTZlMjBcdTZlMjVcdTZlMjNcdTZlMWJcdTZlNWJcdTZlNThcdTZlMjRcdTZlNTZcdTZlNmVcdTZlMmRcdTZlMjZcdTZlNmZcdTZlMzRcdTZlNGRcdTZlM2FcdTZlMmNcdTZlNDNcdTZlMWRcdTZlM2VcdTZlY2IiXSxbImI1NDAi''@;'; put 'put ''LCJcdTZlODlcdTZlMTlcdTZlNGVcdTZlNjNcdTZlNDRcdTZlNzJcdTZlNjlcdTZlNWZcdTcxMTlcdTcxMWFcdTcxMjZcdTcxMzBcdTcxMjFcdTcxMzZcdTcxNmVcdTcxMWNcdTcyNGNcdTcyODRcdTcyODBcdTczMzZcdTczMjVcdTczMzRcdTczMjlcdTc0M2FcdTc0MmFcdTc0MzNcdTc0MjJc''@;'; put 'put ''dTc0MjVcdTc0MzVcdTc0MzZcdTc0MzRcdTc0MmZcdTc0MWJcdTc0MjZcdTc0MjhcdTc1MjVcdTc1MjZcdTc1NmJcdTc1NmFcdTc1ZTJcdTc1ZGJcdTc1ZTNcdTc1ZDlcdTc1ZDhcdTc1ZGVcdTc1ZTBcdTc2N2JcdTc2N2NcdTc2OTZcdTc2OTNcdTc2YjRcdTc2ZGNcdTc3NGZcdTc3ZWRcdTc4''@;'; put 'put ''NWRcdTc4NmNcdTc4NmZcdTdhMGRcdTdhMDhcdTdhMGJcdTdhMDVcdTdhMDBcdTdhOTgiXSxbImI1YTEiLCJcdTdhOTdcdTdhOTZcdTdhZTVcdTdhZTNcdTdiNDlcdTdiNTZcdTdiNDZcdTdiNTBcdTdiNTJcdTdiNTRcdTdiNGRcdTdiNGJcdTdiNGZcdTdiNTFcdTdjOWZcdTdjYTVcdTdkNWVc''@;'; put 'put ''dTdkNTBcdTdkNjhcdTdkNTVcdTdkMmJcdTdkNmVcdTdkNzJcdTdkNjFcdTdkNjZcdTdkNjJcdTdkNzBcdTdkNzNcdTU1ODRcdTdmZDRcdTdmZDVcdTgwMGJcdTgwNTJcdTgwODVcdTgxNTVcdTgxNTRcdTgxNGJcdTgxNTFcdTgxNGVcdTgxMzlcdTgxNDZcdTgxM2VcdTgxNGNcdTgxNTNcdTgx''@;'; put 'put ''NzRcdTgyMTJcdTgyMWNcdTgzZTlcdTg0MDNcdTgzZjhcdTg0MGRcdTgzZTBcdTgzYzVcdTg0MGJcdTgzYzFcdTgzZWZcdTgzZjFcdTgzZjRcdTg0NTdcdTg0MGFcdTgzZjBcdTg0MGNcdTgzY2NcdTgzZmRcdTgzZjJcdTgzY2FcdTg0MzhcdTg0MGVcdTg0MDRcdTgzZGNcdTg0MDdcdTgzZDRc''@;'; put 'put ''dTgzZGZcdTg2NWJcdTg2ZGZcdTg2ZDlcdTg2ZWRcdTg2ZDRcdTg2ZGJcdTg2ZTRcdTg2ZDBcdTg2ZGVcdTg4NTdcdTg4YzFcdTg4YzJcdTg4YjFcdTg5ODNcdTg5OTZcdThhM2JcdThhNjBcdThhNTVcdThhNWVcdThhM2NcdThhNDEiXSxbImI2NDAiLCJcdThhNTRcdThhNWJcdThhNTBcdThh''@;'; put 'put ''NDZcdThhMzRcdThhM2FcdThhMzZcdThhNTZcdThjNjFcdThjODJcdThjYWZcdThjYmNcdThjYjNcdThjYmRcdThjYzFcdThjYmJcdThjYzBcdThjYjRcdThjYjdcdThjYjZcdThjYmZcdThjYjhcdThkOGFcdThkODVcdThkODFcdThkY2VcdThkZGRcdThkY2JcdThkZGFcdThkZDFcdThkY2Nc''@;'; put 'put ''dThkZGJcdThkYzZcdThlZmJcdThlZjhcdThlZmNcdThmOWNcdTkwMmVcdTkwMzVcdTkwMzFcdTkwMzhcdTkwMzJcdTkwMzZcdTkxMDJcdTkwZjVcdTkxMDlcdTkwZmVcdTkxNjNcdTkxNjVcdTkxY2ZcdTkyMTRcdTkyMTVcdTkyMjNcdTkyMDlcdTkyMWVcdTkyMGRcdTkyMTBcdTkyMDdcdTky''@;'; put 'put ''MTFcdTk1OTRcdTk1OGZcdTk1OGJcdTk1OTEiXSxbImI2YTEiLCJcdTk1OTNcdTk1OTJcdTk1OGVcdTk2OGFcdTk2OGVcdTk2OGJcdTk2N2RcdTk2ODVcdTk2ODZcdTk2OGRcdTk2NzJcdTk2ODRcdTk2YzFcdTk2YzVcdTk2YzRcdTk2YzZcdTk2YzdcdTk2ZWZcdTk2ZjJcdTk3Y2NcdTk4MDVc''@;'; put 'put ''dTk4MDZcdTk4MDhcdTk4ZTdcdTk4ZWFcdTk4ZWZcdTk4ZTlcdTk4ZjJcdTk4ZWRcdTk5YWVcdTk5YWRcdTllYzNcdTllY2RcdTllZDFcdTRlODJcdTUwYWRcdTUwYjVcdTUwYjJcdTUwYjNcdTUwYzVcdTUwYmVcdTUwYWNcdTUwYjdcdTUwYmJcdTUwYWZcdTUwYzdcdTUyN2ZcdTUyNzdcdTUy''@;'; put 'put ''N2RcdTUyZGZcdTUyZTZcdTUyZTRcdTUyZTJcdTUyZTNcdTUzMmZcdTU1ZGZcdTU1ZThcdTU1ZDNcdTU1ZTZcdTU1Y2VcdTU1ZGNcdTU1YzdcdTU1ZDFcdTU1ZTNcdTU1ZTRcdTU1ZWZcdTU1ZGFcdTU1ZTFcdTU1YzVcdTU1YzZcdTU1ZTVcdTU1YzlcdTU3MTJcdTU3MTNcdTU4NWVcdTU4NTFc''@;'; put 'put ''dTU4NThcdTU4NTdcdTU4NWFcdTU4NTRcdTU4NmJcdTU4NGNcdTU4NmRcdTU4NGFcdTU4NjJcdTU4NTJcdTU4NGJcdTU5NjdcdTVhYzFcdTVhYzlcdTVhY2NcdTVhYmVcdTVhYmRcdTVhYmMiXSxbImI3NDAiLCJcdTVhYjNcdTVhYzJcdTVhYjJcdTVkNjlcdTVkNmZcdTVlNGNcdTVlNzlcdTVl''@;'; put 'put ''YzlcdTVlYzhcdTVmMTJcdTVmNTlcdTVmYWNcdTVmYWVcdTYxMWFcdTYxMGZcdTYxNDhcdTYxMWZcdTYwZjNcdTYxMWJcdTYwZjlcdTYxMDFcdTYxMDhcdTYxNGVcdTYxNGNcdTYxNDRcdTYxNGRcdTYxM2VcdTYxMzRcdTYxMjdcdTYxMGRcdTYxMDZcdTYxMzdcdTYyMjFcdTYyMjJcdTY0MTNc''@;'; put 'put ''dTY0M2VcdTY0MWVcdTY0MmFcdTY0MmRcdTY0M2RcdTY0MmNcdTY0MGZcdTY0MWNcdTY0MTRcdTY0MGRcdTY0MzZcdTY0MTZcdTY0MTdcdTY0MDZcdTY1NmNcdTY1OWZcdTY1YjBcdTY2OTdcdTY2ODlcdTY2ODdcdTY2ODhcdTY2OTZcdTY2ODRcdTY2OThcdTY2OGRcdTY3MDNcdTY5OTRcdTY5''@;'; put 'put ''NmQiXSxbImI3YTEiLCJcdTY5NWFcdTY5NzdcdTY5NjBcdTY5NTRcdTY5NzVcdTY5MzBcdTY5ODJcdTY5NGFcdTY5NjhcdTY5NmJcdTY5NWVcdTY5NTNcdTY5NzlcdTY5ODZcdTY5NWRcdTY5NjNcdTY5NWJcdTZiNDdcdTZiNzJcdTZiYzBcdTZiYmZcdTZiZDNcdTZiZmRcdTZlYTJcdTZlYWZc''@;'; put 'put ''dTZlZDNcdTZlYjZcdTZlYzJcdTZlOTBcdTZlOWRcdTZlYzdcdTZlYzVcdTZlYTVcdTZlOThcdTZlYmNcdTZlYmFcdTZlYWJcdTZlZDFcdTZlOTZcdTZlOWNcdTZlYzRcdTZlZDRcdTZlYWFcdTZlYTdcdTZlYjRcdTcxNGVcdTcxNTlcdTcxNjlcdTcxNjRcdTcxNDlcdTcxNjdcdTcxNWNcdTcx''@;'; put 'put ''NmNcdTcxNjZcdTcxNGNcdTcxNjVcdTcxNWVcdTcxNDZcdTcxNjhcdTcxNTZcdTcyM2FcdTcyNTJcdTczMzdcdTczNDVcdTczM2ZcdTczM2VcdTc0NmZcdTc0NWFcdTc0NTVcdTc0NWZcdTc0NWVcdTc0NDFcdTc0M2ZcdTc0NTlcdTc0NWJcdTc0NWNcdTc1NzZcdTc1NzhcdTc2MDBcdTc1ZjBc''@;'; put 'put ''dTc2MDFcdTc1ZjJcdTc1ZjFcdTc1ZmFcdTc1ZmZcdTc1ZjRcdTc1ZjNcdTc2ZGVcdTc2ZGZcdTc3NWJcdTc3NmJcdTc3NjZcdTc3NWVcdTc3NjMiXSxbImI4NDAiLCJcdTc3NzlcdTc3NmFcdTc3NmNcdTc3NWNcdTc3NjVcdTc3NjhcdTc3NjJcdTc3ZWVcdTc4OGVcdTc4YjBcdTc4OTdcdTc4''@;'; put 'put ''OThcdTc4OGNcdTc4ODlcdTc4N2NcdTc4OTFcdTc4OTNcdTc4N2ZcdTc5N2FcdTc5N2ZcdTc5ODFcdTg0MmNcdTc5YmRcdTdhMWNcdTdhMWFcdTdhMjBcdTdhMTRcdTdhMWZcdTdhMWVcdTdhOWZcdTdhYTBcdTdiNzdcdTdiYzBcdTdiNjBcdTdiNmVcdTdiNjdcdTdjYjFcdTdjYjNcdTdjYjVc''@;'; put 'put ''dTdkOTNcdTdkNzlcdTdkOTFcdTdkODFcdTdkOGZcdTdkNWJcdTdmNmVcdTdmNjlcdTdmNmFcdTdmNzJcdTdmYTlcdTdmYThcdTdmYTRcdTgwNTZcdTgwNThcdTgwODZcdTgwODRcdTgxNzFcdTgxNzBcdTgxNzhcdTgxNjVcdTgxNmVcdTgxNzNcdTgxNmIiXSxbImI4YTEiLCJcdTgxNzlcdTgx''@;'; put 'put ''N2FcdTgxNjZcdTgyMDVcdTgyNDdcdTg0ODJcdTg0NzdcdTg0M2RcdTg0MzFcdTg0NzVcdTg0NjZcdTg0NmJcdTg0NDlcdTg0NmNcdTg0NWJcdTg0M2NcdTg0MzVcdTg0NjFcdTg0NjNcdTg0NjlcdTg0NmRcdTg0NDZcdTg2NWVcdTg2NWNcdTg2NWZcdTg2ZjlcdTg3MTNcdTg3MDhcdTg3MDdc''@;'; put 'put ''dTg3MDBcdTg2ZmVcdTg2ZmJcdTg3MDJcdTg3MDNcdTg3MDZcdTg3MGFcdTg4NTlcdTg4ZGZcdTg4ZDRcdTg4ZDlcdTg4ZGNcdTg4ZDhcdTg4ZGRcdTg4ZTFcdTg4Y2FcdTg4ZDVcdTg4ZDJcdTg5OWNcdTg5ZTNcdThhNmJcdThhNzJcdThhNzNcdThhNjZcdThhNjlcdThhNzBcdThhODdcdThh''@;'; put 'put ''N2NcdThhNjNcdThhYTBcdThhNzFcdThhODVcdThhNmRcdThhNjJcdThhNmVcdThhNmNcdThhNzlcdThhN2JcdThhM2VcdThhNjhcdThjNjJcdThjOGFcdThjODlcdThjY2FcdThjYzdcdThjYzhcdThjYzRcdThjYjJcdThjYzNcdThjYzJcdThjYzVcdThkZTFcdThkZGZcdThkZThcdThkZWZc''@;'; put 'put ''dThkZjNcdThkZmFcdThkZWFcdThkZTRcdThkZTZcdThlYjJcdThmMDNcdThmMDlcdThlZmVcdThmMGEiXSxbImI5NDAiLCJcdThmOWZcdThmYjJcdTkwNGJcdTkwNGFcdTkwNTNcdTkwNDJcdTkwNTRcdTkwM2NcdTkwNTVcdTkwNTBcdTkwNDdcdTkwNGZcdTkwNGVcdTkwNGRcdTkwNTFcdTkw''@;'; put 'put ''M2VcdTkwNDFcdTkxMTJcdTkxMTdcdTkxNmNcdTkxNmFcdTkxNjlcdTkxYzlcdTkyMzdcdTkyNTdcdTkyMzhcdTkyM2RcdTkyNDBcdTkyM2VcdTkyNWJcdTkyNGJcdTkyNjRcdTkyNTFcdTkyMzRcdTkyNDlcdTkyNGRcdTkyNDVcdTkyMzlcdTkyM2ZcdTkyNWFcdTk1OThcdTk2OThcdTk2OTRc''@;'; put 'put ''dTk2OTVcdTk2Y2RcdTk2Y2JcdTk2YzlcdTk2Y2FcdTk2ZjdcdTk2ZmJcdTk2ZjlcdTk2ZjZcdTk3NTZcdTk3NzRcdTk3NzZcdTk4MTBcdTk4MTFcdTk4MTNcdTk4MGFcdTk4MTJcdTk4MGNcdTk4ZmNcdTk4ZjQiXSxbImI5YTEiLCJcdTk4ZmRcdTk4ZmVcdTk5YjNcdTk5YjFcdTk5YjRcdTlh''@;'; put 'put ''ZTFcdTljZTlcdTllODJcdTlmMGVcdTlmMTNcdTlmMjBcdTUwZTdcdTUwZWVcdTUwZTVcdTUwZDZcdTUwZWRcdTUwZGFcdTUwZDVcdTUwY2ZcdTUwZDFcdTUwZjFcdTUwY2VcdTUwZTlcdTUxNjJcdTUxZjNcdTUyODNcdTUyODJcdTUzMzFcdTUzYWRcdTU1ZmVcdTU2MDBcdTU2MWJcdTU2MTdc''@;'; put 'put ''dTU1ZmRcdTU2MTRcdTU2MDZcdTU2MDlcdTU2MGRcdTU2MGVcdTU1ZjdcdTU2MTZcdTU2MWZcdTU2MDhcdTU2MTBcdTU1ZjZcdTU3MThcdTU3MTZcdTU4NzVcdTU4N2VcdTU4ODNcdTU4OTNcdTU4OGFcdTU4NzlcdTU4ODVcdTU4N2RcdTU4ZmRcdTU5MjVcdTU5MjJcdTU5MjRcdTU5NmFcdTU5''@;'; put 'put ''NjlcdTVhZTFcdTVhZTZcdTVhZTlcdTVhZDdcdTVhZDZcdTVhZDhcdTVhZTNcdTViNzVcdTViZGVcdTViZTdcdTViZTFcdTViZTVcdTViZTZcdTViZThcdTViZTJcdTViZTRcdTViZGZcdTVjMGRcdTVjNjJcdTVkODRcdTVkODdcdTVlNWJcdTVlNjNcdTVlNTVcdTVlNTdcdTVlNTRcdTVlZDNc''@;'; put 'put ''dTVlZDZcdTVmMGFcdTVmNDZcdTVmNzBcdTVmYjlcdTYxNDciXSxbImJhNDAiLCJcdTYxM2ZcdTYxNGJcdTYxNzdcdTYxNjJcdTYxNjNcdTYxNWZcdTYxNWFcdTYxNThcdTYxNzVcdTYyMmFcdTY0ODdcdTY0NThcdTY0NTRcdTY0YTRcdTY0NzhcdTY0NWZcdTY0N2FcdTY0NTFcdTY0NjdcdTY0''@;'; put 'put ''MzRcdTY0NmRcdTY0N2JcdTY1NzJcdTY1YTFcdTY1ZDdcdTY1ZDZcdTY2YTJcdTY2YThcdTY2OWRcdTY5OWNcdTY5YThcdTY5OTVcdTY5YzFcdTY5YWVcdTY5ZDNcdTY5Y2JcdTY5OWJcdTY5YjdcdTY5YmJcdTY5YWJcdTY5YjRcdTY5ZDBcdTY5Y2RcdTY5YWRcdTY5Y2NcdTY5YTZcdTY5YzNc''@;'; put 'put ''dTY5YTNcdTZiNDlcdTZiNGNcdTZjMzNcdTZmMzNcdTZmMTRcdTZlZmVcdTZmMTNcdTZlZjRcdTZmMjlcdTZmM2VcdTZmMjBcdTZmMmNcdTZmMGZcdTZmMDJcdTZmMjIiXSxbImJhYTEiLCJcdTZlZmZcdTZlZWZcdTZmMDZcdTZmMzFcdTZmMzhcdTZmMzJcdTZmMjNcdTZmMTVcdTZmMmJcdTZm''@;'; put 'put ''MmZcdTZmODhcdTZmMmFcdTZlZWNcdTZmMDFcdTZlZjJcdTZlY2NcdTZlZjdcdTcxOTRcdTcxOTlcdTcxN2RcdTcxOGFcdTcxODRcdTcxOTJcdTcyM2VcdTcyOTJcdTcyOTZcdTczNDRcdTczNTBcdTc0NjRcdTc0NjNcdTc0NmFcdTc0NzBcdTc0NmRcdTc1MDRcdTc1OTFcdTc2MjdcdTc2MGRc''@;'; put 'put ''dTc2MGJcdTc2MDlcdTc2MTNcdTc2ZTFcdTc2ZTNcdTc3ODRcdTc3N2RcdTc3N2ZcdTc3NjFcdTc4YzFcdTc4OWZcdTc4YTdcdTc4YjNcdTc4YTlcdTc4YTNcdTc5OGVcdTc5OGZcdTc5OGRcdTdhMmVcdTdhMzFcdTdhYWFcdTdhYTlcdTdhZWRcdTdhZWZcdTdiYTFcdTdiOTVcdTdiOGJcdTdi''@;'; put 'put ''NzVcdTdiOTdcdTdiOWRcdTdiOTRcdTdiOGZcdTdiYjhcdTdiODdcdTdiODRcdTdjYjlcdTdjYmRcdTdjYmVcdTdkYmJcdTdkYjBcdTdkOWNcdTdkYmRcdTdkYmVcdTdkYTBcdTdkY2FcdTdkYjRcdTdkYjJcdTdkYjFcdTdkYmFcdTdkYTJcdTdkYmZcdTdkYjVcdTdkYjhcdTdkYWRcdTdkZDJc''@;'; put 'put ''dTdkYzdcdTdkYWMiXSxbImJiNDAiLCJcdTdmNzBcdTdmZTBcdTdmZTFcdTdmZGZcdTgwNWVcdTgwNWFcdTgwODdcdTgxNTBcdTgxODBcdTgxOGZcdTgxODhcdTgxOGFcdTgxN2ZcdTgxODJcdTgxZTdcdTgxZmFcdTgyMDdcdTgyMTRcdTgyMWVcdTgyNGJcdTg0YzlcdTg0YmZcdTg0YzZcdTg0''@;'; put 'put ''YzRcdTg0OTlcdTg0OWVcdTg0YjJcdTg0OWNcdTg0Y2JcdTg0YjhcdTg0YzBcdTg0ZDNcdTg0OTBcdTg0YmNcdTg0ZDFcdTg0Y2FcdTg3M2ZcdTg3MWNcdTg3M2JcdTg3MjJcdTg3MjVcdTg3MzRcdTg3MThcdTg3NTVcdTg3MzdcdTg3MjlcdTg4ZjNcdTg5MDJcdTg4ZjRcdTg4ZjlcdTg4Zjhc''@;'; put 'put ''dTg4ZmRcdTg4ZThcdTg5MWFcdTg4ZWZcdThhYTZcdThhOGNcdThhOWVcdThhYTNcdThhOGRcdThhYTFcdThhOTNcdThhYTQiXSxbImJiYTEiLCJcdThhYWFcdThhYTVcdThhYThcdThhOThcdThhOTFcdThhOWFcdThhYTdcdThjNmFcdThjOGRcdThjOGNcdThjZDNcdThjZDFcdThjZDJcdThk''@;'; put 'put ''NmJcdThkOTlcdThkOTVcdThkZmNcdThmMTRcdThmMTJcdThmMTVcdThmMTNcdThmYTNcdTkwNjBcdTkwNThcdTkwNWNcdTkwNjNcdTkwNTlcdTkwNWVcdTkwNjJcdTkwNWRcdTkwNWJcdTkxMTlcdTkxMThcdTkxMWVcdTkxNzVcdTkxNzhcdTkxNzdcdTkxNzRcdTkyNzhcdTkyODBcdTkyODVc''@;'; put 'put ''dTkyOThcdTkyOTZcdTkyN2JcdTkyOTNcdTkyOWNcdTkyYThcdTkyN2NcdTkyOTFcdTk1YTFcdTk1YThcdTk1YTlcdTk1YTNcdTk1YTVcdTk1YTRcdTk2OTlcdTk2OWNcdTk2OWJcdTk2Y2NcdTk2ZDJcdTk3MDBcdTk3N2NcdTk3ODVcdTk3ZjZcdTk4MTdcdTk4MThcdTk4YWZcdTk4YjFcdTk5''@;'; put 'put ''MDNcdTk5MDVcdTk5MGNcdTk5MDlcdTk5YzFcdTlhYWZcdTlhYjBcdTlhZTZcdTliNDFcdTliNDJcdTljZjRcdTljZjZcdTljZjNcdTllYmNcdTlmM2JcdTlmNGFcdTUxMDRcdTUxMDBcdTUwZmJcdTUwZjVcdTUwZjlcdTUxMDJcdTUxMDhcdTUxMDlcdTUxMDVcdTUxZGMiXSxbImJjNDAiLCJc''@;'; put 'put ''dTUyODdcdTUyODhcdTUyODlcdTUyOGRcdTUyOGFcdTUyZjBcdTUzYjJcdTU2MmVcdTU2M2JcdTU2MzlcdTU2MzJcdTU2M2ZcdTU2MzRcdTU2MjlcdTU2NTNcdTU2NGVcdTU2NTdcdTU2NzRcdTU2MzZcdTU2MmZcdTU2MzBcdTU4ODBcdTU4OWZcdTU4OWVcdTU4YjNcdTU4OWNcdTU4YWVcdTU4''@;'; put 'put ''YTlcdTU4YTZcdTU5NmRcdTViMDlcdTVhZmJcdTViMGJcdTVhZjVcdTViMGNcdTViMDhcdTViZWVcdTViZWNcdTViZTlcdTViZWJcdTVjNjRcdTVjNjVcdTVkOWRcdTVkOTRcdTVlNjJcdTVlNWZcdTVlNjFcdTVlZTJcdTVlZGFcdTVlZGZcdTVlZGRcdTVlZTNcdTVlZTBcdTVmNDhcdTVmNzFc''@;'; put 'put ''dTVmYjdcdTVmYjVcdTYxNzZcdTYxNjdcdTYxNmVcdTYxNWRcdTYxNTVcdTYxODIiXSxbImJjYTEiLCJcdTYxN2NcdTYxNzBcdTYxNmJcdTYxN2VcdTYxYTdcdTYxOTBcdTYxYWJcdTYxOGVcdTYxYWNcdTYxOWFcdTYxYTRcdTYxOTRcdTYxYWVcdTYyMmVcdTY0NjlcdTY0NmZcdTY0NzlcdTY0''@;'; put 'put ''OWVcdTY0YjJcdTY0ODhcdTY0OTBcdTY0YjBcdTY0YTVcdTY0OTNcdTY0OTVcdTY0YTlcdTY0OTJcdTY0YWVcdTY0YWRcdTY0YWJcdTY0OWFcdTY0YWNcdTY0OTlcdTY0YTJcdTY0YjNcdTY1NzVcdTY1NzdcdTY1NzhcdTY2YWVcdTY2YWJcdTY2YjRcdTY2YjFcdTZhMjNcdTZhMWZcdTY5ZThc''@;'; put 'put ''dTZhMDFcdTZhMWVcdTZhMTlcdTY5ZmRcdTZhMjFcdTZhMTNcdTZhMGFcdTY5ZjNcdTZhMDJcdTZhMDVcdTY5ZWRcdTZhMTFcdTZiNTBcdTZiNGVcdTZiYTRcdTZiYzVcdTZiYzZcdTZmM2ZcdTZmN2NcdTZmODRcdTZmNTFcdTZmNjZcdTZmNTRcdTZmODZcdTZmNmRcdTZmNWJcdTZmNzhcdTZm''@;'; put 'put ''NmVcdTZmOGVcdTZmN2FcdTZmNzBcdTZmNjRcdTZmOTdcdTZmNThcdTZlZDVcdTZmNmZcdTZmNjBcdTZmNWZcdTcxOWZcdTcxYWNcdTcxYjFcdTcxYThcdTcyNTZcdTcyOWJcdTczNGVcdTczNTdcdTc0NjlcdTc0OGJcdTc0ODMiXSxbImJkNDAiLCJcdTc0N2VcdTc0ODBcdTc1N2ZcdTc2MjBc''@;'; put 'put ''dTc2MjlcdTc2MWZcdTc2MjRcdTc2MjZcdTc2MjFcdTc2MjJcdTc2OWFcdTc2YmFcdTc2ZTRcdTc3OGVcdTc3ODdcdTc3OGNcdTc3OTFcdTc3OGJcdTc4Y2JcdTc4YzVcdTc4YmFcdTc4Y2FcdTc4YmVcdTc4ZDVcdTc4YmNcdTc4ZDBcdTdhM2ZcdTdhM2NcdTdhNDBcdTdhM2RcdTdhMzdcdTdh''@;'; put 'put ''M2JcdTdhYWZcdTdhYWVcdTdiYWRcdTdiYjFcdTdiYzRcdTdiYjRcdTdiYzZcdTdiYzdcdTdiYzFcdTdiYTBcdTdiY2NcdTdjY2FcdTdkZTBcdTdkZjRcdTdkZWZcdTdkZmJcdTdkZDhcdTdkZWNcdTdkZGRcdTdkZThcdTdkZTNcdTdkZGFcdTdkZGVcdTdkZTlcdTdkOWVcdTdkZDlcdTdkZjJc''@;'; put 'put ''dTdkZjlcdTdmNzVcdTdmNzdcdTdmYWYiXSxbImJkYTEiLCJcdTdmZTlcdTgwMjZcdTgxOWJcdTgxOWNcdTgxOWRcdTgxYTBcdTgxOWFcdTgxOThcdTg1MTdcdTg1M2RcdTg1MWFcdTg0ZWVcdTg1MmNcdTg1MmRcdTg1MTNcdTg1MTFcdTg1MjNcdTg1MjFcdTg1MTRcdTg0ZWNcdTg1MjVcdTg0''@;'; put 'put ''ZmZcdTg1MDZcdTg3ODJcdTg3NzRcdTg3NzZcdTg3NjBcdTg3NjZcdTg3NzhcdTg3NjhcdTg3NTlcdTg3NTdcdTg3NGNcdTg3NTNcdTg4NWJcdTg4NWRcdTg5MTBcdTg5MDdcdTg5MTJcdTg5MTNcdTg5MTVcdTg5MGFcdThhYmNcdThhZDJcdThhYzdcdThhYzRcdThhOTVcdThhY2JcdThhZjhc''@;'; put 'put ''dThhYjJcdThhYzlcdThhYzJcdThhYmZcdThhYjBcdThhZDZcdThhY2RcdThhYjZcdThhYjlcdThhZGJcdThjNGNcdThjNGVcdThjNmNcdThjZTBcdThjZGVcdThjZTZcdThjZTRcdThjZWNcdThjZWRcdThjZTJcdThjZTNcdThjZGNcdThjZWFcdThjZTFcdThkNmRcdThkOWZcdThkYTNcdThl''@;'; put 'put ''MmJcdThlMTBcdThlMWRcdThlMjJcdThlMGZcdThlMjlcdThlMWZcdThlMjFcdThlMWVcdThlYmFcdThmMWRcdThmMWJcdThmMWZcdThmMjlcdThmMjZcdThmMmFcdThmMWNcdThmMWUiXSxbImJlNDAiLCJcdThmMjVcdTkwNjlcdTkwNmVcdTkwNjhcdTkwNmRcdTkwNzdcdTkxMzBcdTkxMmRc''@;'; put 'put ''dTkxMjdcdTkxMzFcdTkxODdcdTkxODlcdTkxOGJcdTkxODNcdTkyYzVcdTkyYmJcdTkyYjdcdTkyZWFcdTkyYWNcdTkyZTRcdTkyYzFcdTkyYjNcdTkyYmNcdTkyZDJcdTkyYzdcdTkyZjBcdTkyYjJcdTk1YWRcdTk1YjFcdTk3MDRcdTk3MDZcdTk3MDdcdTk3MDlcdTk3NjBcdTk3OGRcdTk3''@;'; put 'put ''OGJcdTk3OGZcdTk4MjFcdTk4MmJcdTk4MWNcdTk4YjNcdTk5MGFcdTk5MTNcdTk5MTJcdTk5MThcdTk5ZGRcdTk5ZDBcdTk5ZGZcdTk5ZGJcdTk5ZDFcdTk5ZDVcdTk5ZDJcdTk5ZDlcdTlhYjdcdTlhZWVcdTlhZWZcdTliMjdcdTliNDVcdTliNDRcdTliNzdcdTliNmZcdTlkMDZcdTlkMDki''@;'; put 'put ''XSxbImJlYTEiLCJcdTlkMDNcdTllYTlcdTllYmVcdTllY2VcdTU4YThcdTlmNTJcdTUxMTJcdTUxMThcdTUxMTRcdTUxMTBcdTUxMTVcdTUxODBcdTUxYWFcdTUxZGRcdTUyOTFcdTUyOTNcdTUyZjNcdTU2NTlcdTU2NmJcdTU2NzlcdTU2NjlcdTU2NjRcdTU2NzhcdTU2NmFcdTU2NjhcdTU2''@;'; put 'put ''NjVcdTU2NzFcdTU2NmZcdTU2NmNcdTU2NjJcdTU2NzZcdTU4YzFcdTU4YmVcdTU4YzdcdTU4YzVcdTU5NmVcdTViMWRcdTViMzRcdTViNzhcdTViZjBcdTVjMGVcdTVmNGFcdTYxYjJcdTYxOTFcdTYxYTlcdTYxOGFcdTYxY2RcdTYxYjZcdTYxYmVcdTYxY2FcdTYxYzhcdTYyMzBcdTY0YzVc''@;'; put 'put ''dTY0YzFcdTY0Y2JcdTY0YmJcdTY0YmNcdTY0ZGFcdTY0YzRcdTY0YzdcdTY0YzJcdTY0Y2RcdTY0YmZcdTY0ZDJcdTY0ZDRcdTY0YmVcdTY1NzRcdTY2YzZcdTY2YzlcdTY2YjlcdTY2YzRcdTY2YzdcdTY2YjhcdTZhM2RcdTZhMzhcdTZhM2FcdTZhNTlcdTZhNmJcdTZhNThcdTZhMzlcdTZh''@;'; put 'put ''NDRcdTZhNjJcdTZhNjFcdTZhNGJcdTZhNDdcdTZhMzVcdTZhNWZcdTZhNDhcdTZiNTlcdTZiNzdcdTZjMDVcdTZmYzJcdTZmYjFcdTZmYTEiXSxbImJmNDAiLCJcdTZmYzNcdTZmYTRcdTZmYzFcdTZmYTdcdTZmYjNcdTZmYzBcdTZmYjlcdTZmYjZcdTZmYTZcdTZmYTBcdTZmYjRcdTcxYmVc''@;'; put 'put ''dTcxYzlcdTcxZDBcdTcxZDJcdTcxYzhcdTcxZDVcdTcxYjlcdTcxY2VcdTcxZDlcdTcxZGNcdTcxYzNcdTcxYzRcdTczNjhcdTc0OWNcdTc0YTNcdTc0OThcdTc0OWZcdTc0OWVcdTc0ZTJcdTc1MGNcdTc1MGRcdTc2MzRcdTc2MzhcdTc2M2FcdTc2ZTdcdTc2ZTVcdTc3YTBcdTc3OWVcdTc3''@;'; put 'put ''OWZcdTc3YTVcdTc4ZThcdTc4ZGFcdTc4ZWNcdTc4ZTdcdTc5YTZcdTdhNGRcdTdhNGVcdTdhNDZcdTdhNGNcdTdhNGJcdTdhYmFcdTdiZDlcdTdjMTFcdTdiYzlcdTdiZTRcdTdiZGJcdTdiZTFcdTdiZTlcdTdiZTZcdTdjZDVcdTdjZDZcdTdlMGEiXSxbImJmYTEiLCJcdTdlMTFcdTdlMDhc''@;'; put 'put ''dTdlMWJcdTdlMjNcdTdlMWVcdTdlMWRcdTdlMDlcdTdlMTBcdTdmNzlcdTdmYjJcdTdmZjBcdTdmZjFcdTdmZWVcdTgwMjhcdTgxYjNcdTgxYTlcdTgxYThcdTgxZmJcdTgyMDhcdTgyNThcdTgyNTlcdTg1NGFcdTg1NTlcdTg1NDhcdTg1NjhcdTg1NjlcdTg1NDNcdTg1NDlcdTg1NmRcdTg1''@;'; put 'put ''NmFcdTg1NWVcdTg3ODNcdTg3OWZcdTg3OWVcdTg3YTJcdTg3OGRcdTg4NjFcdTg5MmFcdTg5MzJcdTg5MjVcdTg5MmJcdTg5MjFcdTg5YWFcdTg5YTZcdThhZTZcdThhZmFcdThhZWJcdThhZjFcdThiMDBcdThhZGNcdThhZTdcdThhZWVcdThhZmVcdThiMDFcdThiMDJcdThhZjdcdThhZWRc''@;'; put 'put ''dThhZjNcdThhZjZcdThhZmNcdThjNmJcdThjNmRcdThjOTNcdThjZjRcdThlNDRcdThlMzFcdThlMzRcdThlNDJcdThlMzlcdThlMzVcdThmM2JcdThmMmZcdThmMzhcdThmMzNcdThmYThcdThmYTZcdTkwNzVcdTkwNzRcdTkwNzhcdTkwNzJcdTkwN2NcdTkwN2FcdTkxMzRcdTkxOTJcdTkz''@;'; put 'put ''MjBcdTkzMzZcdTkyZjhcdTkzMzNcdTkzMmZcdTkzMjJcdTkyZmNcdTkzMmJcdTkzMDRcdTkzMWEiXSxbImMwNDAiLCJcdTkzMTBcdTkzMjZcdTkzMjFcdTkzMTVcdTkzMmVcdTkzMTlcdTk1YmJcdTk2YTdcdTk2YThcdTk2YWFcdTk2ZDVcdTk3MGVcdTk3MTFcdTk3MTZcdTk3MGRcdTk3MTNc''@;'; put 'put ''dTk3MGZcdTk3NWJcdTk3NWNcdTk3NjZcdTk3OThcdTk4MzBcdTk4MzhcdTk4M2JcdTk4MzdcdTk4MmRcdTk4MzlcdTk4MjRcdTk5MTBcdTk5MjhcdTk5MWVcdTk5MWJcdTk5MjFcdTk5MWFcdTk5ZWRcdTk5ZTJcdTk5ZjFcdTlhYjhcdTlhYmNcdTlhZmJcdTlhZWRcdTliMjhcdTliOTFcdTlk''@;'; put 'put ''MTVcdTlkMjNcdTlkMjZcdTlkMjhcdTlkMTJcdTlkMWJcdTllZDhcdTllZDRcdTlmOGRcdTlmOWNcdTUxMmFcdTUxMWZcdTUxMjFcdTUxMzJcdTUyZjVcdTU2OGVcdTU2ODBcdTU2OTBcdTU2ODVcdTU2ODciXSxbImMwYTEiLCJcdTU2OGZcdTU4ZDVcdTU4ZDNcdTU4ZDFcdTU4Y2VcdTViMzBc''@;'; put 'put ''dTViMmFcdTViMjRcdTViN2FcdTVjMzdcdTVjNjhcdTVkYmNcdTVkYmFcdTVkYmRcdTVkYjhcdTVlNmJcdTVmNGNcdTVmYmRcdTYxYzlcdTYxYzJcdTYxYzdcdTYxZTZcdTYxY2JcdTYyMzJcdTYyMzRcdTY0Y2VcdTY0Y2FcdTY0ZDhcdTY0ZTBcdTY0ZjBcdTY0ZTZcdTY0ZWNcdTY0ZjFcdTY0''@;'; put 'put ''ZTJcdTY0ZWRcdTY1ODJcdTY1ODNcdTY2ZDlcdTY2ZDZcdTZhODBcdTZhOTRcdTZhODRcdTZhYTJcdTZhOWNcdTZhZGJcdTZhYTNcdTZhN2VcdTZhOTdcdTZhOTBcdTZhYTBcdTZiNWNcdTZiYWVcdTZiZGFcdTZjMDhcdTZmZDhcdTZmZjFcdTZmZGZcdTZmZTBcdTZmZGJcdTZmZTRcdTZmZWJc''@;'; put 'put ''dTZmZWZcdTZmODBcdTZmZWNcdTZmZTFcdTZmZTlcdTZmZDVcdTZmZWVcdTZmZjBcdTcxZTdcdTcxZGZcdTcxZWVcdTcxZTZcdTcxZTVcdTcxZWRcdTcxZWNcdTcxZjRcdTcxZTBcdTcyMzVcdTcyNDZcdTczNzBcdTczNzJcdTc0YTlcdTc0YjBcdTc0YTZcdTc0YThcdTc2NDZcdTc2NDJcdTc2''@;'; put 'put ''NGNcdTc2ZWFcdTc3YjNcdTc3YWFcdTc3YjBcdTc3YWMiXSxbImMxNDAiLCJcdTc3YTdcdTc3YWRcdTc3ZWZcdTc4ZjdcdTc4ZmFcdTc4ZjRcdTc4ZWZcdTc5MDFcdTc5YTdcdTc5YWFcdTdhNTdcdTdhYmZcdTdjMDdcdTdjMGRcdTdiZmVcdTdiZjdcdTdjMGNcdTdiZTBcdTdjZTBcdTdjZGNc''@;'; put 'put ''dTdjZGVcdTdjZTJcdTdjZGZcdTdjZDlcdTdjZGRcdTdlMmVcdTdlM2VcdTdlNDZcdTdlMzdcdTdlMzJcdTdlNDNcdTdlMmJcdTdlM2RcdTdlMzFcdTdlNDVcdTdlNDFcdTdlMzRcdTdlMzlcdTdlNDhcdTdlMzVcdTdlM2ZcdTdlMmZcdTdmNDRcdTdmZjNcdTdmZmNcdTgwNzFcdTgwNzJcdTgw''@;'; put 'put ''NzBcdTgwNmZcdTgwNzNcdTgxYzZcdTgxYzNcdTgxYmFcdTgxYzJcdTgxYzBcdTgxYmZcdTgxYmRcdTgxYzlcdTgxYmVcdTgxZThcdTgyMDlcdTgyNzFcdTg1YWEiXSxbImMxYTEiLCJcdTg1ODRcdTg1N2VcdTg1OWNcdTg1OTFcdTg1OTRcdTg1YWZcdTg1OWJcdTg1ODdcdTg1YThcdTg1OGFc''@;'; put 'put ''dTg2NjdcdTg3YzBcdTg3ZDFcdTg3YjNcdTg3ZDJcdTg3YzZcdTg3YWJcdTg3YmJcdTg3YmFcdTg3YzhcdTg3Y2JcdTg5M2JcdTg5MzZcdTg5NDRcdTg5MzhcdTg5M2RcdTg5YWNcdThiMGVcdThiMTdcdThiMTlcdThiMWJcdThiMGFcdThiMjBcdThiMWRcdThiMDRcdThiMTBcdThjNDFcdThj''@;'; put 'put ''M2ZcdThjNzNcdThjZmFcdThjZmRcdThjZmNcdThjZjhcdThjZmJcdThkYThcdThlNDlcdThlNGJcdThlNDhcdThlNGFcdThmNDRcdThmM2VcdThmNDJcdThmNDVcdThmM2ZcdTkwN2ZcdTkwN2RcdTkwODRcdTkwODFcdTkwODJcdTkwODBcdTkxMzlcdTkxYTNcdTkxOWVcdTkxOWNcdTkzNGRc''@;'; put 'put ''dTkzODJcdTkzMjhcdTkzNzVcdTkzNGFcdTkzNjVcdTkzNGJcdTkzMThcdTkzN2VcdTkzNmNcdTkzNWJcdTkzNzBcdTkzNWFcdTkzNTRcdTk1Y2FcdTk1Y2JcdTk1Y2NcdTk1YzhcdTk1YzZcdTk2YjFcdTk2YjhcdTk2ZDZcdTk3MWNcdTk3MWVcdTk3YTBcdTk3ZDNcdTk4NDZcdTk4YjZcdTk5''@;'; put 'put ''MzVcdTlhMDEiXSxbImMyNDAiLCJcdTk5ZmZcdTliYWVcdTliYWJcdTliYWFcdTliYWRcdTlkM2JcdTlkM2ZcdTllOGJcdTllY2ZcdTllZGVcdTllZGNcdTllZGRcdTllZGJcdTlmM2VcdTlmNGJcdTUzZTJcdTU2OTVcdTU2YWVcdTU4ZDlcdTU4ZDhcdTViMzhcdTVmNWRcdTYxZTNcdTYyMzNc''@;'; put 'put ''dTY0ZjRcdTY0ZjJcdTY0ZmVcdTY1MDZcdTY0ZmFcdTY0ZmJcdTY0ZjdcdTY1YjdcdTY2ZGNcdTY3MjZcdTZhYjNcdTZhYWNcdTZhYzNcdTZhYmJcdTZhYjhcdTZhYzJcdTZhYWVcdTZhYWZcdTZiNWZcdTZiNzhcdTZiYWZcdTcwMDlcdTcwMGJcdTZmZmVcdTcwMDZcdTZmZmFcdTcwMTFcdTcw''@;'; put 'put ''MGZcdTcxZmJcdTcxZmNcdTcxZmVcdTcxZjhcdTczNzdcdTczNzVcdTc0YTdcdTc0YmZcdTc1MTVcdTc2NTZcdTc2NTgiXSxbImMyYTEiLCJcdTc2NTJcdTc3YmRcdTc3YmZcdTc3YmJcdTc3YmNcdTc5MGVcdTc5YWVcdTdhNjFcdTdhNjJcdTdhNjBcdTdhYzRcdTdhYzVcdTdjMmJcdTdjMjdc''@;'; put 'put ''dTdjMmFcdTdjMWVcdTdjMjNcdTdjMjFcdTdjZTdcdTdlNTRcdTdlNTVcdTdlNWVcdTdlNWFcdTdlNjFcdTdlNTJcdTdlNTlcdTdmNDhcdTdmZjlcdTdmZmJcdTgwNzdcdTgwNzZcdTgxY2RcdTgxY2ZcdTgyMGFcdTg1Y2ZcdTg1YTlcdTg1Y2RcdTg1ZDBcdTg1YzlcdTg1YjBcdTg1YmFcdTg1''@;'; put 'put ''YjlcdTg1YTZcdTg3ZWZcdTg3ZWNcdTg3ZjJcdTg3ZTBcdTg5ODZcdTg5YjJcdTg5ZjRcdThiMjhcdThiMzlcdThiMmNcdThiMmJcdThjNTBcdThkMDVcdThlNTlcdThlNjNcdThlNjZcdThlNjRcdThlNWZcdThlNTVcdThlYzBcdThmNDlcdThmNGRcdTkwODdcdTkwODNcdTkwODhcdTkxYWJc''@;'; put 'put ''dTkxYWNcdTkxZDBcdTkzOTRcdTkzOGFcdTkzOTZcdTkzYTJcdTkzYjNcdTkzYWVcdTkzYWNcdTkzYjBcdTkzOThcdTkzOWFcdTkzOTdcdTk1ZDRcdTk1ZDZcdTk1ZDBcdTk1ZDVcdTk2ZTJcdTk2ZGNcdTk2ZDlcdTk2ZGJcdTk2ZGVcdTk3MjRcdTk3YTNcdTk3YTYiXSxbImMzNDAiLCJcdTk3''@;'; put 'put ''YWRcdTk3ZjlcdTk4NGRcdTk4NGZcdTk4NGNcdTk4NGVcdTk4NTNcdTk4YmFcdTk5M2VcdTk5M2ZcdTk5M2RcdTk5MmVcdTk5YTVcdTlhMGVcdTlhYzFcdTliMDNcdTliMDZcdTliNGZcdTliNGVcdTliNGRcdTliY2FcdTliYzlcdTliZmRcdTliYzhcdTliYzBcdTlkNTFcdTlkNWRcdTlkNjBc''@;'; put 'put ''dTllZTBcdTlmMTVcdTlmMmNcdTUxMzNcdTU2YTVcdTU4ZGVcdTU4ZGZcdTU4ZTJcdTViZjVcdTlmOTBcdTVlZWNcdTYxZjJcdTYxZjdcdTYxZjZcdTYxZjVcdTY1MDBcdTY1MGZcdTY2ZTBcdTY2ZGRcdTZhZTVcdTZhZGRcdTZhZGFcdTZhZDNcdTcwMWJcdTcwMWZcdTcwMjhcdTcwMWFcdTcw''@;'; put 'put ''MWRcdTcwMTVcdTcwMThcdTcyMDZcdTcyMGRcdTcyNThcdTcyYTJcdTczNzgiXSxbImMzYTEiLCJcdTczN2FcdTc0YmRcdTc0Y2FcdTc0ZTNcdTc1ODdcdTc1ODZcdTc2NWZcdTc2NjFcdTc3YzdcdTc5MTlcdTc5YjFcdTdhNmJcdTdhNjlcdTdjM2VcdTdjM2ZcdTdjMzhcdTdjM2RcdTdjMzdc''@;'; put 'put ''dTdjNDBcdTdlNmJcdTdlNmRcdTdlNzlcdTdlNjlcdTdlNmFcdTdmODVcdTdlNzNcdTdmYjZcdTdmYjlcdTdmYjhcdTgxZDhcdTg1ZTlcdTg1ZGRcdTg1ZWFcdTg1ZDVcdTg1ZTRcdTg1ZTVcdTg1ZjdcdTg3ZmJcdTg4MDVcdTg4MGRcdTg3ZjlcdTg3ZmVcdTg5NjBcdTg5NWZcdTg5NTZcdTg5''@;'; put 'put ''NWVcdThiNDFcdThiNWNcdThiNThcdThiNDlcdThiNWFcdThiNGVcdThiNGZcdThiNDZcdThiNTlcdThkMDhcdThkMGFcdThlN2NcdThlNzJcdThlODdcdThlNzZcdThlNmNcdThlN2FcdThlNzRcdThmNTRcdThmNGVcdThmYWRcdTkwOGFcdTkwOGJcdTkxYjFcdTkxYWVcdTkzZTFcdTkzZDFc''@;'; put 'put ''dTkzZGZcdTkzYzNcdTkzYzhcdTkzZGNcdTkzZGRcdTkzZDZcdTkzZTJcdTkzY2RcdTkzZDhcdTkzZTRcdTkzZDdcdTkzZThcdTk1ZGNcdTk2YjRcdTk2ZTNcdTk3MmFcdTk3MjdcdTk3NjFcdTk3ZGNcdTk3ZmJcdTk4NWUiXSxbImM0NDAiLCJcdTk4NThcdTk4NWJcdTk4YmNcdTk5NDVcdTk5''@;'; put 'put ''NDlcdTlhMTZcdTlhMTlcdTliMGRcdTliZThcdTliZTdcdTliZDZcdTliZGJcdTlkODlcdTlkNjFcdTlkNzJcdTlkNmFcdTlkNmNcdTllOTJcdTllOTdcdTllOTNcdTllYjRcdTUyZjhcdTU2YThcdTU2YjdcdTU2YjZcdTU2YjRcdTU2YmNcdTU4ZTRcdTViNDBcdTViNDNcdTViN2RcdTViZjZc''@;'; put 'put ''dTVkYzlcdTYxZjhcdTYxZmFcdTY1MThcdTY1MTRcdTY1MTlcdTY2ZTZcdTY3MjdcdTZhZWNcdTcwM2VcdTcwMzBcdTcwMzJcdTcyMTBcdTczN2JcdTc0Y2ZcdTc2NjJcdTc2NjVcdTc5MjZcdTc5MmFcdTc5MmNcdTc5MmJcdTdhYzdcdTdhZjZcdTdjNGNcdTdjNDNcdTdjNGRcdTdjZWZcdTdj''@;'; put 'put ''ZjBcdThmYWVcdTdlN2RcdTdlN2MiXSxbImM0YTEiLCJcdTdlODJcdTdmNGNcdTgwMDBcdTgxZGFcdTgyNjZcdTg1ZmJcdTg1ZjlcdTg2MTFcdTg1ZmFcdTg2MDZcdTg2MGJcdTg2MDdcdTg2MGFcdTg4MTRcdTg4MTVcdTg5NjRcdTg5YmFcdTg5ZjhcdThiNzBcdThiNmNcdThiNjZcdThiNmZc''@;'; put 'put ''dThiNWZcdThiNmJcdThkMGZcdThkMGRcdThlODlcdThlODFcdThlODVcdThlODJcdTkxYjRcdTkxY2JcdTk0MThcdTk0MDNcdTkzZmRcdTk1ZTFcdTk3MzBcdTk4YzRcdTk5NTJcdTk5NTFcdTk5YThcdTlhMmJcdTlhMzBcdTlhMzdcdTlhMzVcdTljMTNcdTljMGRcdTllNzlcdTllYjVcdTll''@;'; put 'put ''ZThcdTlmMmZcdTlmNWZcdTlmNjNcdTlmNjFcdTUxMzdcdTUxMzhcdTU2YzFcdTU2YzBcdTU2YzJcdTU5MTRcdTVjNmNcdTVkY2RcdTYxZmNcdTYxZmVcdTY1MWRcdTY1MWNcdTY1OTVcdTY2ZTlcdTZhZmJcdTZiMDRcdTZhZmFcdTZiYjJcdTcwNGNcdTcyMWJcdTcyYTdcdTc0ZDZcdTc0ZDRc''@;'; put 'put ''dTc2NjlcdTc3ZDNcdTdjNTBcdTdlOGZcdTdlOGNcdTdmYmNcdTg2MTdcdTg2MmRcdTg2MWFcdTg4MjNcdTg4MjJcdTg4MjFcdTg4MWZcdTg5NmFcdTg5NmNcdTg5YmRcdThiNzQiXSxbImM1NDAiLCJcdThiNzdcdThiN2RcdThkMTNcdThlOGFcdThlOGRcdThlOGJcdThmNWZcdThmYWZcdTkx''@;'; put 'put ''YmFcdTk0MmVcdTk0MzNcdTk0MzVcdTk0M2FcdTk0MzhcdTk0MzJcdTk0MmJcdTk1ZTJcdTk3MzhcdTk3MzlcdTk3MzJcdTk3ZmZcdTk4NjdcdTk4NjVcdTk5NTdcdTlhNDVcdTlhNDNcdTlhNDBcdTlhM2VcdTlhY2ZcdTliNTRcdTliNTFcdTljMmRcdTljMjVcdTlkYWZcdTlkYjRcdTlkYzJc''@;'; put 'put ''dTlkYjhcdTllOWRcdTllZWZcdTlmMTlcdTlmNWNcdTlmNjZcdTlmNjdcdTUxM2NcdTUxM2JcdTU2YzhcdTU2Y2FcdTU2YzlcdTViN2ZcdTVkZDRcdTVkZDJcdTVmNGVcdTYxZmZcdTY1MjRcdTZiMGFcdTZiNjFcdTcwNTFcdTcwNThcdTczODBcdTc0ZTRcdTc1OGFcdTc2NmVcdTc2NmMiXSxb''@;'; put 'put ''ImM1YTEiLCJcdTc5YjNcdTdjNjBcdTdjNWZcdTgwN2VcdTgwN2RcdTgxZGZcdTg5NzJcdTg5NmZcdTg5ZmNcdThiODBcdThkMTZcdThkMTdcdThlOTFcdThlOTNcdThmNjFcdTkxNDhcdTk0NDRcdTk0NTFcdTk0NTJcdTk3M2RcdTk3M2VcdTk3YzNcdTk3YzFcdTk4NmJcdTk5NTVcdTlhNTVc''@;'; put 'put ''dTlhNGRcdTlhZDJcdTliMWFcdTljNDlcdTljMzFcdTljM2VcdTljM2JcdTlkZDNcdTlkZDdcdTlmMzRcdTlmNmNcdTlmNmFcdTlmOTRcdTU2Y2NcdTVkZDZcdTYyMDBcdTY1MjNcdTY1MmJcdTY1MmFcdTY2ZWNcdTZiMTBcdTc0ZGFcdTdhY2FcdTdjNjRcdTdjNjNcdTdjNjVcdTdlOTNcdTdl''@;'; put 'put ''OTZcdTdlOTRcdTgxZTJcdTg2MzhcdTg2M2ZcdTg4MzFcdThiOGFcdTkwOTBcdTkwOGZcdTk0NjNcdTk0NjBcdTk0NjRcdTk3NjhcdTk4NmZcdTk5NWNcdTlhNWFcdTlhNWJcdTlhNTdcdTlhZDNcdTlhZDRcdTlhZDFcdTljNTRcdTljNTdcdTljNTZcdTlkZTVcdTllOWZcdTllZjRcdTU2ZDFc''@;'; put 'put ''dTU4ZTlcdTY1MmNcdTcwNWVcdTc2NzFcdTc2NzJcdTc3ZDdcdTdmNTBcdTdmODhcdTg4MzZcdTg4MzlcdTg4NjJcdThiOTNcdThiOTIiXSxbImM2NDAiLCJcdThiOTZcdTgyNzdcdThkMWJcdTkxYzBcdTk0NmFcdTk3NDJcdTk3NDhcdTk3NDRcdTk3YzZcdTk4NzBcdTlhNWZcdTliMjJcdTli''@;'; put 'put ''NThcdTljNWZcdTlkZjlcdTlkZmFcdTllN2NcdTllN2RcdTlmMDdcdTlmNzdcdTlmNzJcdTVlZjNcdTZiMTZcdTcwNjNcdTdjNmNcdTdjNmVcdTg4M2JcdTg5YzBcdThlYTFcdTkxYzFcdTk0NzJcdTk0NzBcdTk4NzFcdTk5NWVcdTlhZDZcdTliMjNcdTllY2NcdTcwNjRcdTc3ZGFcdThiOWFc''@;'; put 'put ''dTk0NzdcdTk3YzlcdTlhNjJcdTlhNjVcdTdlOWNcdThiOWNcdThlYWFcdTkxYzVcdTk0N2RcdTk0N2VcdTk0N2NcdTljNzdcdTljNzhcdTllZjdcdThjNTRcdTk0N2ZcdTllMWFcdTcyMjhcdTlhNmFcdTliMzFcdTllMWJcdTllMWVcdTdjNzIiXSxbImM5NDAiLCJcdTRlNDJcdTRlNWNcdTUx''@;'; put 'put ''ZjVcdTUzMWFcdTUzODJcdTRlMDdcdTRlMGNcdTRlNDdcdTRlOGRcdTU2ZDdcdWZhMGNcdTVjNmVcdTVmNzNcdTRlMGZcdTUxODdcdTRlMGVcdTRlMmVcdTRlOTNcdTRlYzJcdTRlYzlcdTRlYzhcdTUxOThcdTUyZmNcdTUzNmNcdTUzYjlcdTU3MjBcdTU5MDNcdTU5MmNcdTVjMTBcdTVkZmZc''@;'; put 'put ''dTY1ZTFcdTZiYjNcdTZiY2NcdTZjMTRcdTcyM2ZcdTRlMzFcdTRlM2NcdTRlZThcdTRlZGNcdTRlZTlcdTRlZTFcdTRlZGRcdTRlZGFcdTUyMGNcdTUzMWNcdTUzNGNcdTU3MjJcdTU3MjNcdTU5MTdcdTU5MmZcdTViODFcdTViODRcdTVjMTJcdTVjM2JcdTVjNzRcdTVjNzNcdTVlMDRcdTVl''@;'; put 'put ''ODBcdTVlODJcdTVmYzlcdTYyMDlcdTYyNTBcdTZjMTUiXSxbImM5YTEiLCJcdTZjMzZcdTZjNDNcdTZjM2ZcdTZjM2JcdTcyYWVcdTcyYjBcdTczOGFcdTc5YjhcdTgwOGFcdTk2MWVcdTRmMGVcdTRmMThcdTRmMmNcdTRlZjVcdTRmMTRcdTRlZjFcdTRmMDBcdTRlZjdcdTRmMDhcdTRmMWRc''@;'; put 'put ''dTRmMDJcdTRmMDVcdTRmMjJcdTRmMTNcdTRmMDRcdTRlZjRcdTRmMTJcdTUxYjFcdTUyMTNcdTUyMDlcdTUyMTBcdTUyYTZcdTUzMjJcdTUzMWZcdTUzNGRcdTUzOGFcdTU0MDdcdTU2ZTFcdTU2ZGZcdTU3MmVcdTU3MmFcdTU3MzRcdTU5M2NcdTU5ODBcdTU5N2NcdTU5ODVcdTU5N2JcdTU5''@;'; put 'put ''N2VcdTU5NzdcdTU5N2ZcdTViNTZcdTVjMTVcdTVjMjVcdTVjN2NcdTVjN2FcdTVjN2JcdTVjN2VcdTVkZGZcdTVlNzVcdTVlODRcdTVmMDJcdTVmMWFcdTVmNzRcdTVmZDVcdTVmZDRcdTVmY2ZcdTYyNWNcdTYyNWVcdTYyNjRcdTYyNjFcdTYyNjZcdTYyNjJcdTYyNTlcdTYyNjBcdTYyNWFc''@;'; put 'put ''dTYyNjVcdTY1ZWZcdTY1ZWVcdTY3M2VcdTY3MzlcdTY3MzhcdTY3M2JcdTY3M2FcdTY3M2ZcdTY3M2NcdTY3MzNcdTZjMThcdTZjNDZcdTZjNTJcdTZjNWNcdTZjNGZcdTZjNGFcdTZjNTRcdTZjNGIiXSxbImNhNDAiLCJcdTZjNGNcdTcwNzFcdTcyNWVcdTcyYjRcdTcyYjVcdTczOGVcdTc1''@;'; put 'put ''MmFcdTc2N2ZcdTdhNzVcdTdmNTFcdTgyNzhcdTgyN2NcdTgyODBcdTgyN2RcdTgyN2ZcdTg2NGRcdTg5N2VcdTkwOTlcdTkwOTdcdTkwOThcdTkwOWJcdTkwOTRcdTk2MjJcdTk2MjRcdTk2MjBcdTk2MjNcdTRmNTZcdTRmM2JcdTRmNjJcdTRmNDlcdTRmNTNcdTRmNjRcdTRmM2VcdTRmNjdc''@;'; put 'put ''dTRmNTJcdTRmNWZcdTRmNDFcdTRmNThcdTRmMmRcdTRmMzNcdTRmM2ZcdTRmNjFcdTUxOGZcdTUxYjlcdTUyMWNcdTUyMWVcdTUyMjFcdTUyYWRcdTUyYWVcdTUzMDlcdTUzNjNcdTUzNzJcdTUzOGVcdTUzOGZcdTU0MzBcdTU0MzdcdTU0MmFcdTU0NTRcdTU0NDVcdTU0MTlcdTU0MWNcdTU0''@;'; put 'put ''MjVcdTU0MTgiXSxbImNhYTEiLCJcdTU0M2RcdTU0NGZcdTU0NDFcdTU0MjhcdTU0MjRcdTU0NDdcdTU2ZWVcdTU2ZTdcdTU2ZTVcdTU3NDFcdTU3NDVcdTU3NGNcdTU3NDlcdTU3NGJcdTU3NTJcdTU5MDZcdTU5NDBcdTU5YTZcdTU5OThcdTU5YTBcdTU5OTdcdTU5OGVcdTU5YTJcdTU5OTBc''@;'; put 'put ''dTU5OGZcdTU5YTdcdTU5YTFcdTViOGVcdTViOTJcdTVjMjhcdTVjMmFcdTVjOGRcdTVjOGZcdTVjODhcdTVjOGJcdTVjODlcdTVjOTJcdTVjOGFcdTVjODZcdTVjOTNcdTVjOTVcdTVkZTBcdTVlMGFcdTVlMGVcdTVlOGJcdTVlODlcdTVlOGNcdTVlODhcdTVlOGRcdTVmMDVcdTVmMWRcdTVm''@;'; put 'put ''NzhcdTVmNzZcdTVmZDJcdTVmZDFcdTVmZDBcdTVmZWRcdTVmZThcdTVmZWVcdTVmZjNcdTVmZTFcdTVmZTRcdTVmZTNcdTVmZmFcdTVmZWZcdTVmZjdcdTVmZmJcdTYwMDBcdTVmZjRcdTYyM2FcdTYyODNcdTYyOGNcdTYyOGVcdTYyOGZcdTYyOTRcdTYyODdcdTYyNzFcdTYyN2JcdTYyN2Fc''@;'; put 'put ''dTYyNzBcdTYyODFcdTYyODhcdTYyNzdcdTYyN2RcdTYyNzJcdTYyNzRcdTY1MzdcdTY1ZjBcdTY1ZjRcdTY1ZjNcdTY1ZjJcdTY1ZjVcdTY3NDVcdTY3NDciXSxbImNiNDAiLCJcdTY3NTlcdTY3NTVcdTY3NGNcdTY3NDhcdTY3NWRcdTY3NGRcdTY3NWFcdTY3NGJcdTZiZDBcdTZjMTlcdTZj''@;'; put 'put ''MWFcdTZjNzhcdTZjNjdcdTZjNmJcdTZjODRcdTZjOGJcdTZjOGZcdTZjNzFcdTZjNmZcdTZjNjlcdTZjOWFcdTZjNmRcdTZjODdcdTZjOTVcdTZjOWNcdTZjNjZcdTZjNzNcdTZjNjVcdTZjN2JcdTZjOGVcdTcwNzRcdTcwN2FcdTcyNjNcdTcyYmZcdTcyYmRcdTcyYzNcdTcyYzZcdTcyYzFc''@;'; put 'put ''dTcyYmFcdTcyYzVcdTczOTVcdTczOTdcdTczOTNcdTczOTRcdTczOTJcdTc1M2FcdTc1MzlcdTc1OTRcdTc1OTVcdTc2ODFcdTc5M2RcdTgwMzRcdTgwOTVcdTgwOTlcdTgwOTBcdTgwOTJcdTgwOWNcdTgyOTBcdTgyOGZcdTgyODVcdTgyOGVcdTgyOTFcdTgyOTMiXSxbImNiYTEiLCJcdTgy''@;'; put 'put ''OGFcdTgyODNcdTgyODRcdThjNzhcdThmYzlcdThmYmZcdTkwOWZcdTkwYTFcdTkwYTVcdTkwOWVcdTkwYTdcdTkwYTBcdTk2MzBcdTk2MjhcdTk2MmZcdTk2MmRcdTRlMzNcdTRmOThcdTRmN2NcdTRmODVcdTRmN2RcdTRmODBcdTRmODdcdTRmNzZcdTRmNzRcdTRmODlcdTRmODRcdTRmNzdc''@;'; put 'put ''dTRmNGNcdTRmOTdcdTRmNmFcdTRmOWFcdTRmNzlcdTRmODFcdTRmNzhcdTRmOTBcdTRmOWNcdTRmOTRcdTRmOWVcdTRmOTJcdTRmODJcdTRmOTVcdTRmNmJcdTRmNmVcdTUxOWVcdTUxYmNcdTUxYmVcdTUyMzVcdTUyMzJcdTUyMzNcdTUyNDZcdTUyMzFcdTUyYmNcdTUzMGFcdTUzMGJcdTUz''@;'; put 'put ''M2NcdTUzOTJcdTUzOTRcdTU0ODdcdTU0N2ZcdTU0ODFcdTU0OTFcdTU0ODJcdTU0ODhcdTU0NmJcdTU0N2FcdTU0N2VcdTU0NjVcdTU0NmNcdTU0NzRcdTU0NjZcdTU0OGRcdTU0NmZcdTU0NjFcdTU0NjBcdTU0OThcdTU0NjNcdTU0NjdcdTU0NjRcdTU2ZjdcdTU2ZjlcdTU3NmZcdTU3NzJc''@;'; put 'put ''dTU3NmRcdTU3NmJcdTU3NzFcdTU3NzBcdTU3NzZcdTU3ODBcdTU3NzVcdTU3N2JcdTU3NzNcdTU3NzRcdTU3NjIiXSxbImNjNDAiLCJcdTU3NjhcdTU3N2RcdTU5MGNcdTU5NDVcdTU5YjVcdTU5YmFcdTU5Y2ZcdTU5Y2VcdTU5YjJcdTU5Y2NcdTU5YzFcdTU5YjZcdTU5YmNcdTU5YzNcdTU5''@;'; put 'put ''ZDZcdTU5YjFcdTU5YmRcdTU5YzBcdTU5YzhcdTU5YjRcdTU5YzdcdTViNjJcdTViNjVcdTViOTNcdTViOTVcdTVjNDRcdTVjNDdcdTVjYWVcdTVjYTRcdTVjYTBcdTVjYjVcdTVjYWZcdTVjYThcdTVjYWNcdTVjOWZcdTVjYTNcdTVjYWRcdTVjYTJcdTVjYWFcdTVjYTdcdTVjOWRcdTVjYTVc''@;'; put 'put ''dTVjYjZcdTVjYjBcdTVjYTZcdTVlMTdcdTVlMTRcdTVlMTlcdTVmMjhcdTVmMjJcdTVmMjNcdTVmMjRcdTVmNTRcdTVmODJcdTVmN2VcdTVmN2RcdTVmZGVcdTVmZTVcdTYwMmRcdTYwMjZcdTYwMTlcdTYwMzJcdTYwMGIiXSxbImNjYTEiLCJcdTYwMzRcdTYwMGFcdTYwMTdcdTYwMzNcdTYw''@;'; put 'put ''MWFcdTYwMWVcdTYwMmNcdTYwMjJcdTYwMGRcdTYwMTBcdTYwMmVcdTYwMTNcdTYwMTFcdTYwMGNcdTYwMDlcdTYwMWNcdTYyMTRcdTYyM2RcdTYyYWRcdTYyYjRcdTYyZDFcdTYyYmVcdTYyYWFcdTYyYjZcdTYyY2FcdTYyYWVcdTYyYjNcdTYyYWZcdTYyYmJcdTYyYTlcdTYyYjBcdTYyYjhc''@;'; put 'put ''dTY1M2RcdTY1YThcdTY1YmJcdTY2MDlcdTY1ZmNcdTY2MDRcdTY2MTJcdTY2MDhcdTY1ZmJcdTY2MDNcdTY2MGJcdTY2MGRcdTY2MDVcdTY1ZmRcdTY2MTFcdTY2MTBcdTY2ZjZcdTY3MGFcdTY3ODVcdTY3NmNcdTY3OGVcdTY3OTJcdTY3NzZcdTY3N2JcdTY3OThcdTY3ODZcdTY3ODRcdTY3''@;'; put 'put ''NzRcdTY3OGRcdTY3OGNcdTY3N2FcdTY3OWZcdTY3OTFcdTY3OTlcdTY3ODNcdTY3N2RcdTY3ODFcdTY3NzhcdTY3NzlcdTY3OTRcdTZiMjVcdTZiODBcdTZiN2VcdTZiZGVcdTZjMWRcdTZjOTNcdTZjZWNcdTZjZWJcdTZjZWVcdTZjZDlcdTZjYjZcdTZjZDRcdTZjYWRcdTZjZTdcdTZjYjdc''@;'; put 'put ''dTZjZDBcdTZjYzJcdTZjYmFcdTZjYzNcdTZjYzZcdTZjZWRcdTZjZjIiXSxbImNkNDAiLCJcdTZjZDJcdTZjZGRcdTZjYjRcdTZjOGFcdTZjOWRcdTZjODBcdTZjZGVcdTZjYzBcdTZkMzBcdTZjY2RcdTZjYzdcdTZjYjBcdTZjZjlcdTZjY2ZcdTZjZTlcdTZjZDFcdTcwOTRcdTcwOThcdTcw''@;'; put 'put ''ODVcdTcwOTNcdTcwODZcdTcwODRcdTcwOTFcdTcwOTZcdTcwODJcdTcwOWFcdTcwODNcdTcyNmFcdTcyZDZcdTcyY2JcdTcyZDhcdTcyYzlcdTcyZGNcdTcyZDJcdTcyZDRcdTcyZGFcdTcyY2NcdTcyZDFcdTczYTRcdTczYTFcdTczYWRcdTczYTZcdTczYTJcdTczYTBcdTczYWNcdTczOWRc''@;'; put 'put ''dTc0ZGRcdTc0ZThcdTc1M2ZcdTc1NDBcdTc1M2VcdTc1OGNcdTc1OThcdTc2YWZcdTc2ZjNcdTc2ZjFcdTc2ZjBcdTc2ZjVcdTc3ZjhcdTc3ZmNcdTc3ZjlcdTc3ZmJcdTc3ZmEiXSxbImNkYTEiLCJcdTc3ZjdcdTc5NDJcdTc5M2ZcdTc5YzVcdTdhNzhcdTdhN2JcdTdhZmJcdTdjNzVcdTdj''@;'; put 'put ''ZmRcdTgwMzVcdTgwOGZcdTgwYWVcdTgwYTNcdTgwYjhcdTgwYjVcdTgwYWRcdTgyMjBcdTgyYTBcdTgyYzBcdTgyYWJcdTgyOWFcdTgyOThcdTgyOWJcdTgyYjVcdTgyYTdcdTgyYWVcdTgyYmNcdTgyOWVcdTgyYmFcdTgyYjRcdTgyYThcdTgyYTFcdTgyYTlcdTgyYzJcdTgyYTRcdTgyYzNc''@;'; put 'put ''dTgyYjZcdTgyYTJcdTg2NzBcdTg2NmZcdTg2NmRcdTg2NmVcdThjNTZcdThmZDJcdThmY2JcdThmZDNcdThmY2RcdThmZDZcdThmZDVcdThmZDdcdTkwYjJcdTkwYjRcdTkwYWZcdTkwYjNcdTkwYjBcdTk2MzlcdTk2M2RcdTk2M2NcdTk2M2FcdTk2NDNcdTRmY2RcdTRmYzVcdTRmZDNcdTRm''@;'; put 'put ''YjJcdTRmYzlcdTRmY2JcdTRmYzFcdTRmZDRcdTRmZGNcdTRmZDlcdTRmYmJcdTRmYjNcdTRmZGJcdTRmYzdcdTRmZDZcdTRmYmFcdTRmYzBcdTRmYjlcdTRmZWNcdTUyNDRcdTUyNDlcdTUyYzBcdTUyYzJcdTUzM2RcdTUzN2NcdTUzOTdcdTUzOTZcdTUzOTlcdTUzOThcdTU0YmFcdTU0YTFc''@;'; put 'put ''dTU0YWRcdTU0YTVcdTU0Y2YiXSxbImNlNDAiLCJcdTU0YzNcdTgzMGRcdTU0YjdcdTU0YWVcdTU0ZDZcdTU0YjZcdTU0YzVcdTU0YzZcdTU0YTBcdTU0NzBcdTU0YmNcdTU0YTJcdTU0YmVcdTU0NzJcdTU0ZGVcdTU0YjBcdTU3YjVcdTU3OWVcdTU3OWZcdTU3YTRcdTU3OGNcdTU3OTdcdTU3''@;'; put 'put ''OWRcdTU3OWJcdTU3OTRcdTU3OThcdTU3OGZcdTU3OTlcdTU3YTVcdTU3OWFcdTU3OTVcdTU4ZjRcdTU5MGRcdTU5NTNcdTU5ZTFcdTU5ZGVcdTU5ZWVcdTVhMDBcdTU5ZjFcdTU5ZGRcdTU5ZmFcdTU5ZmRcdTU5ZmNcdTU5ZjZcdTU5ZTRcdTU5ZjJcdTU5ZjdcdTU5ZGJcdTU5ZTlcdTU5ZjNc''@;'; put 'put ''dTU5ZjVcdTU5ZTBcdTU5ZmVcdTU5ZjRcdTU5ZWRcdTViYThcdTVjNGNcdTVjZDBcdTVjZDhcdTVjY2NcdTVjZDdcdTVjY2JcdTVjZGIiXSxbImNlYTEiLCJcdTVjZGVcdTVjZGFcdTVjYzlcdTVjYzdcdTVjY2FcdTVjZDZcdTVjZDNcdTVjZDRcdTVjY2ZcdTVjYzhcdTVjYzZcdTVjY2VcdTVj''@;'; put 'put ''ZGZcdTVjZjhcdTVkZjlcdTVlMjFcdTVlMjJcdTVlMjNcdTVlMjBcdTVlMjRcdTVlYjBcdTVlYTRcdTVlYTJcdTVlOWJcdTVlYTNcdTVlYTVcdTVmMDdcdTVmMmVcdTVmNTZcdTVmODZcdTYwMzdcdTYwMzlcdTYwNTRcdTYwNzJcdTYwNWVcdTYwNDVcdTYwNTNcdTYwNDdcdTYwNDlcdTYwNWJc''@;'; put 'put ''dTYwNGNcdTYwNDBcdTYwNDJcdTYwNWZcdTYwMjRcdTYwNDRcdTYwNThcdTYwNjZcdTYwNmVcdTYyNDJcdTYyNDNcdTYyY2ZcdTYzMGRcdTYzMGJcdTYyZjVcdTYzMGVcdTYzMDNcdTYyZWJcdTYyZjlcdTYzMGZcdTYzMGNcdTYyZjhcdTYyZjZcdTYzMDBcdTYzMTNcdTYzMTRcdTYyZmFcdTYz''@;'; put 'put ''MTVcdTYyZmJcdTYyZjBcdTY1NDFcdTY1NDNcdTY1YWFcdTY1YmZcdTY2MzZcdTY2MjFcdTY2MzJcdTY2MzVcdTY2MWNcdTY2MjZcdTY2MjJcdTY2MzNcdTY2MmJcdTY2M2FcdTY2MWRcdTY2MzRcdTY2MzlcdTY2MmVcdTY3MGZcdTY3MTBcdTY3YzFcdTY3ZjJcdTY3YzhcdTY3YmEiXSxbImNm''@;'; put 'put ''NDAiLCJcdTY3ZGNcdTY3YmJcdTY3ZjhcdTY3ZDhcdTY3YzBcdTY3YjdcdTY3YzVcdTY3ZWJcdTY3ZTRcdTY3ZGZcdTY3YjVcdTY3Y2RcdTY3YjNcdTY3ZjdcdTY3ZjZcdTY3ZWVcdTY3ZTNcdTY3YzJcdTY3YjlcdTY3Y2VcdTY3ZTdcdTY3ZjBcdTY3YjJcdTY3ZmNcdTY3YzZcdTY3ZWRcdTY3''@;'; put 'put ''Y2NcdTY3YWVcdTY3ZTZcdTY3ZGJcdTY3ZmFcdTY3YzlcdTY3Y2FcdTY3YzNcdTY3ZWFcdTY3Y2JcdTZiMjhcdTZiODJcdTZiODRcdTZiYjZcdTZiZDZcdTZiZDhcdTZiZTBcdTZjMjBcdTZjMjFcdTZkMjhcdTZkMzRcdTZkMmRcdTZkMWZcdTZkM2NcdTZkM2ZcdTZkMTJcdTZkMGFcdTZjZGFc''@;'; put 'put ''dTZkMzNcdTZkMDRcdTZkMTlcdTZkM2FcdTZkMWFcdTZkMTFcdTZkMDBcdTZkMWRcdTZkNDIiXSxbImNmYTEiLCJcdTZkMDFcdTZkMThcdTZkMzdcdTZkMDNcdTZkMGZcdTZkNDBcdTZkMDdcdTZkMjBcdTZkMmNcdTZkMDhcdTZkMjJcdTZkMDlcdTZkMTBcdTcwYjdcdTcwOWZcdTcwYmVcdTcw''@;'; put 'put ''YjFcdTcwYjBcdTcwYTFcdTcwYjRcdTcwYjVcdTcwYTlcdTcyNDFcdTcyNDlcdTcyNGFcdTcyNmNcdTcyNzBcdTcyNzNcdTcyNmVcdTcyY2FcdTcyZTRcdTcyZThcdTcyZWJcdTcyZGZcdTcyZWFcdTcyZTZcdTcyZTNcdTczODVcdTczY2NcdTczYzJcdTczYzhcdTczYzVcdTczYjlcdTczYjZc''@;'; put 'put ''dTczYjVcdTczYjRcdTczZWJcdTczYmZcdTczYzdcdTczYmVcdTczYzNcdTczYzZcdTczYjhcdTczY2JcdTc0ZWNcdTc0ZWVcdTc1MmVcdTc1NDdcdTc1NDhcdTc1YTdcdTc1YWFcdTc2NzlcdTc2YzRcdTc3MDhcdTc3MDNcdTc3MDRcdTc3MDVcdTc3MGFcdTc2ZjdcdTc2ZmJcdTc2ZmFcdTc3''@;'; put 'put ''ZTdcdTc3ZThcdTc4MDZcdTc4MTFcdTc4MTJcdTc4MDVcdTc4MTBcdTc4MGZcdTc4MGVcdTc4MDlcdTc4MDNcdTc4MTNcdTc5NGFcdTc5NGNcdTc5NGJcdTc5NDVcdTc5NDRcdTc5ZDVcdTc5Y2RcdTc5Y2ZcdTc5ZDZcdTc5Y2VcdTdhODAiXSxbImQwNDAiLCJcdTdhN2VcdTdhZDFcdTdiMDBc''@;'; put 'put ''dTdiMDFcdTdjN2FcdTdjNzhcdTdjNzlcdTdjN2ZcdTdjODBcdTdjODFcdTdkMDNcdTdkMDhcdTdkMDFcdTdmNThcdTdmOTFcdTdmOGRcdTdmYmVcdTgwMDdcdTgwMGVcdTgwMGZcdTgwMTRcdTgwMzdcdTgwZDhcdTgwYzdcdTgwZTBcdTgwZDFcdTgwYzhcdTgwYzJcdTgwZDBcdTgwYzVcdTgw''@;'; put 'put ''ZTNcdTgwZDlcdTgwZGNcdTgwY2FcdTgwZDVcdTgwYzlcdTgwY2ZcdTgwZDdcdTgwZTZcdTgwY2RcdTgxZmZcdTgyMjFcdTgyOTRcdTgyZDlcdTgyZmVcdTgyZjlcdTgzMDdcdTgyZThcdTgzMDBcdTgyZDVcdTgzM2FcdTgyZWJcdTgyZDZcdTgyZjRcdTgyZWNcdTgyZTFcdTgyZjJcdTgyZjVc''@;'; put 'put ''dTgzMGNcdTgyZmJcdTgyZjZcdTgyZjBcdTgyZWEiXSxbImQwYTEiLCJcdTgyZTRcdTgyZTBcdTgyZmFcdTgyZjNcdTgyZWRcdTg2NzdcdTg2NzRcdTg2N2NcdTg2NzNcdTg4NDFcdTg4NGVcdTg4NjdcdTg4NmFcdTg4NjlcdTg5ZDNcdThhMDRcdThhMDdcdThkNzJcdThmZTNcdThmZTFcdThm''@;'; put 'put ''ZWVcdThmZTBcdTkwZjFcdTkwYmRcdTkwYmZcdTkwZDVcdTkwYzVcdTkwYmVcdTkwYzdcdTkwY2JcdTkwYzhcdTkxZDRcdTkxZDNcdTk2NTRcdTk2NGZcdTk2NTFcdTk2NTNcdTk2NGFcdTk2NGVcdTUwMWVcdTUwMDVcdTUwMDdcdTUwMTNcdTUwMjJcdTUwMzBcdTUwMWJcdTRmZjVcdTRmZjRc''@;'; put 'put ''dTUwMzNcdTUwMzdcdTUwMmNcdTRmZjZcdTRmZjdcdTUwMTdcdTUwMWNcdTUwMjBcdTUwMjdcdTUwMzVcdTUwMmZcdTUwMzFcdTUwMGVcdTUxNWFcdTUxOTRcdTUxOTNcdTUxY2FcdTUxYzRcdTUxYzVcdTUxYzhcdTUxY2VcdTUyNjFcdTUyNWFcdTUyNTJcdTUyNWVcdTUyNWZcdTUyNTVcdTUy''@;'; put 'put ''NjJcdTUyY2RcdTUzMGVcdTUzOWVcdTU1MjZcdTU0ZTJcdTU1MTdcdTU1MTJcdTU0ZTdcdTU0ZjNcdTU0ZTRcdTU1MWFcdTU0ZmZcdTU1MDRcdTU1MDhcdTU0ZWJcdTU1MTFcdTU1MDVcdTU0ZjEiXSxbImQxNDAiLCJcdTU1MGFcdTU0ZmJcdTU0ZjdcdTU0ZjhcdTU0ZTBcdTU1MGVcdTU1MDNc''@;'; put 'put ''dTU1MGJcdTU3MDFcdTU3MDJcdTU3Y2NcdTU4MzJcdTU3ZDVcdTU3ZDJcdTU3YmFcdTU3YzZcdTU3YmRcdTU3YmNcdTU3YjhcdTU3YjZcdTU3YmZcdTU3YzdcdTU3ZDBcdTU3YjlcdTU3YzFcdTU5MGVcdTU5NGFcdTVhMTlcdTVhMTZcdTVhMmRcdTVhMmVcdTVhMTVcdTVhMGZcdTVhMTdcdTVh''@;'; put 'put ''MGFcdTVhMWVcdTVhMzNcdTViNmNcdTViYTdcdTViYWRcdTViYWNcdTVjMDNcdTVjNTZcdTVjNTRcdTVjZWNcdTVjZmZcdTVjZWVcdTVjZjFcdTVjZjdcdTVkMDBcdTVjZjlcdTVlMjlcdTVlMjhcdTVlYThcdTVlYWVcdTVlYWFcdTVlYWNcdTVmMzNcdTVmMzBcdTVmNjdcdTYwNWRcdTYwNWFc''@;'; put 'put ''dTYwNjciXSxbImQxYTEiLCJcdTYwNDFcdTYwYTJcdTYwODhcdTYwODBcdTYwOTJcdTYwODFcdTYwOWRcdTYwODNcdTYwOTVcdTYwOWJcdTYwOTdcdTYwODdcdTYwOWNcdTYwOGVcdTYyMTlcdTYyNDZcdTYyZjJcdTYzMTBcdTYzNTZcdTYzMmNcdTYzNDRcdTYzNDVcdTYzMzZcdTYzNDNcdTYz''@;'; put 'put ''ZTRcdTYzMzlcdTYzNGJcdTYzNGFcdTYzM2NcdTYzMjlcdTYzNDFcdTYzMzRcdTYzNThcdTYzNTRcdTYzNTlcdTYzMmRcdTYzNDdcdTYzMzNcdTYzNWFcdTYzNTFcdTYzMzhcdTYzNTdcdTYzNDBcdTYzNDhcdTY1NGFcdTY1NDZcdTY1YzZcdTY1YzNcdTY1YzRcdTY1YzJcdTY2NGFcdTY2NWZc''@;'; put 'put ''dTY2NDdcdTY2NTFcdTY3MTJcdTY3MTNcdTY4MWZcdTY4MWFcdTY4NDlcdTY4MzJcdTY4MzNcdTY4M2JcdTY4NGJcdTY4NGZcdTY4MTZcdTY4MzFcdTY4MWNcdTY4MzVcdTY4MmJcdTY4MmRcdTY4MmZcdTY4NGVcdTY4NDRcdTY4MzRcdTY4MWRcdTY4MTJcdTY4MTRcdTY4MjZcdTY4MjhcdTY4''@;'; put 'put ''MmVcdTY4NGRcdTY4M2FcdTY4MjVcdTY4MjBcdTZiMmNcdTZiMmZcdTZiMmRcdTZiMzFcdTZiMzRcdTZiNmRcdTgwODJcdTZiODhcdTZiZTZcdTZiZTQiXSxbImQyNDAiLCJcdTZiZThcdTZiZTNcdTZiZTJcdTZiZTdcdTZjMjVcdTZkN2FcdTZkNjNcdTZkNjRcdTZkNzZcdTZkMGRcdTZkNjFc''@;'; put 'put ''dTZkOTJcdTZkNThcdTZkNjJcdTZkNmRcdTZkNmZcdTZkOTFcdTZkOGRcdTZkZWZcdTZkN2ZcdTZkODZcdTZkNWVcdTZkNjdcdTZkNjBcdTZkOTdcdTZkNzBcdTZkN2NcdTZkNWZcdTZkODJcdTZkOThcdTZkMmZcdTZkNjhcdTZkOGJcdTZkN2VcdTZkODBcdTZkODRcdTZkMTZcdTZkODNcdTZk''@;'; put 'put ''N2JcdTZkN2RcdTZkNzVcdTZkOTBcdTcwZGNcdTcwZDNcdTcwZDFcdTcwZGRcdTcwY2JcdTdmMzlcdTcwZTJcdTcwZDdcdTcwZDJcdTcwZGVcdTcwZTBcdTcwZDRcdTcwY2RcdTcwYzVcdTcwYzZcdTcwYzdcdTcwZGFcdTcwY2VcdTcwZTFcdTcyNDJcdTcyNzgiXSxbImQyYTEiLCJcdTcyNzdc''@;'; put 'put ''dTcyNzZcdTczMDBcdTcyZmFcdTcyZjRcdTcyZmVcdTcyZjZcdTcyZjNcdTcyZmJcdTczMDFcdTczZDNcdTczZDlcdTczZTVcdTczZDZcdTczYmNcdTczZTdcdTczZTNcdTczZTlcdTczZGNcdTczZDJcdTczZGJcdTczZDRcdTczZGRcdTczZGFcdTczZDdcdTczZDhcdTczZThcdTc0ZGVcdTc0''@;'; put 'put ''ZGZcdTc0ZjRcdTc0ZjVcdTc1MjFcdTc1NWJcdTc1NWZcdTc1YjBcdTc1YzFcdTc1YmJcdTc1YzRcdTc1YzBcdTc1YmZcdTc1YjZcdTc1YmFcdTc2OGFcdTc2YzlcdTc3MWRcdTc3MWJcdTc3MTBcdTc3MTNcdTc3MTJcdTc3MjNcdTc3MTFcdTc3MTVcdTc3MTlcdTc3MWFcdTc3MjJcdTc3Mjdc''@;'; put 'put ''dTc4MjNcdTc4MmNcdTc4MjJcdTc4MzVcdTc4MmZcdTc4MjhcdTc4MmVcdTc4MmJcdTc4MjFcdTc4MjlcdTc4MzNcdTc4MmFcdTc4MzFcdTc5NTRcdTc5NWJcdTc5NGZcdTc5NWNcdTc5NTNcdTc5NTJcdTc5NTFcdTc5ZWJcdTc5ZWNcdTc5ZTBcdTc5ZWVcdTc5ZWRcdTc5ZWFcdTc5ZGNcdTc5''@;'; put 'put ''ZGVcdTc5ZGRcdTdhODZcdTdhODlcdTdhODVcdTdhOGJcdTdhOGNcdTdhOGFcdTdhODdcdTdhZDhcdTdiMTAiXSxbImQzNDAiLCJcdTdiMDRcdTdiMTNcdTdiMDVcdTdiMGZcdTdiMDhcdTdiMGFcdTdiMGVcdTdiMDlcdTdiMTJcdTdjODRcdTdjOTFcdTdjOGFcdTdjOGNcdTdjODhcdTdjOGRc''@;'; put 'put ''dTdjODVcdTdkMWVcdTdkMWRcdTdkMTFcdTdkMGVcdTdkMThcdTdkMTZcdTdkMTNcdTdkMWZcdTdkMTJcdTdkMGZcdTdkMGNcdTdmNWNcdTdmNjFcdTdmNWVcdTdmNjBcdTdmNWRcdTdmNWJcdTdmOTZcdTdmOTJcdTdmYzNcdTdmYzJcdTdmYzBcdTgwMTZcdTgwM2VcdTgwMzlcdTgwZmFcdTgw''@;'; put 'put ''ZjJcdTgwZjlcdTgwZjVcdTgxMDFcdTgwZmJcdTgxMDBcdTgyMDFcdTgyMmZcdTgyMjVcdTgzMzNcdTgzMmRcdTgzNDRcdTgzMTlcdTgzNTFcdTgzMjVcdTgzNTZcdTgzM2ZcdTgzNDFcdTgzMjZcdTgzMWNcdTgzMjIiXSxbImQzYTEiLCJcdTgzNDJcdTgzNGVcdTgzMWJcdTgzMmFcdTgzMDhc''@;'; put 'put ''dTgzM2NcdTgzNGRcdTgzMTZcdTgzMjRcdTgzMjBcdTgzMzdcdTgzMmZcdTgzMjlcdTgzNDdcdTgzNDVcdTgzNGNcdTgzNTNcdTgzMWVcdTgzMmNcdTgzNGJcdTgzMjdcdTgzNDhcdTg2NTNcdTg2NTJcdTg2YTJcdTg2YThcdTg2OTZcdTg2OGRcdTg2OTFcdTg2OWVcdTg2ODdcdTg2OTdcdTg2''@;'; put 'put ''ODZcdTg2OGJcdTg2OWFcdTg2ODVcdTg2YTVcdTg2OTlcdTg2YTFcdTg2YTdcdTg2OTVcdTg2OThcdTg2OGVcdTg2OWRcdTg2OTBcdTg2OTRcdTg4NDNcdTg4NDRcdTg4NmRcdTg4NzVcdTg4NzZcdTg4NzJcdTg4ODBcdTg4NzFcdTg4N2ZcdTg4NmZcdTg4ODNcdTg4N2VcdTg4NzRcdTg4N2Nc''@;'; put 'put ''dThhMTJcdThjNDdcdThjNTdcdThjN2JcdThjYTRcdThjYTNcdThkNzZcdThkNzhcdThkYjVcdThkYjdcdThkYjZcdThlZDFcdThlZDNcdThmZmVcdThmZjVcdTkwMDJcdThmZmZcdThmZmJcdTkwMDRcdThmZmNcdThmZjZcdTkwZDZcdTkwZTBcdTkwZDlcdTkwZGFcdTkwZTNcdTkwZGZcdTkw''@;'; put 'put ''ZTVcdTkwZDhcdTkwZGJcdTkwZDdcdTkwZGNcdTkwZTRcdTkxNTAiXSxbImQ0NDAiLCJcdTkxNGVcdTkxNGZcdTkxZDVcdTkxZTJcdTkxZGFcdTk2NWNcdTk2NWZcdTk2YmNcdTk4ZTNcdTlhZGZcdTliMmZcdTRlN2ZcdTUwNzBcdTUwNmFcdTUwNjFcdTUwNWVcdTUwNjBcdTUwNTNcdTUwNGJc''@;'; put 'put ''dTUwNWRcdTUwNzJcdTUwNDhcdTUwNGRcdTUwNDFcdTUwNWJcdTUwNGFcdTUwNjJcdTUwMTVcdTUwNDVcdTUwNWZcdTUwNjlcdTUwNmJcdTUwNjNcdTUwNjRcdTUwNDZcdTUwNDBcdTUwNmVcdTUwNzNcdTUwNTdcdTUwNTFcdTUxZDBcdTUyNmJcdTUyNmRcdTUyNmNcdTUyNmVcdTUyZDZcdTUy''@;'; put 'put ''ZDNcdTUzMmRcdTUzOWNcdTU1NzVcdTU1NzZcdTU1M2NcdTU1NGRcdTU1NTBcdTU1MzRcdTU1MmFcdTU1NTFcdTU1NjJcdTU1MzZcdTU1MzVcdTU1MzBcdTU1NTJcdTU1NDUiXSxbImQ0YTEiLCJcdTU1MGNcdTU1MzJcdTU1NjVcdTU1NGVcdTU1MzlcdTU1NDhcdTU1MmRcdTU1M2JcdTU1NDBc''@;'; put 'put ''dTU1NGJcdTU3MGFcdTU3MDdcdTU3ZmJcdTU4MTRcdTU3ZTJcdTU3ZjZcdTU3ZGNcdTU3ZjRcdTU4MDBcdTU3ZWRcdTU3ZmRcdTU4MDhcdTU3ZjhcdTU4MGJcdTU3ZjNcdTU3Y2ZcdTU4MDdcdTU3ZWVcdTU3ZTNcdTU3ZjJcdTU3ZTVcdTU3ZWNcdTU3ZTFcdTU4MGVcdTU3ZmNcdTU4MTBcdTU3''@;'; put 'put ''ZTdcdTU4MDFcdTU4MGNcdTU3ZjFcdTU3ZTlcdTU3ZjBcdTU4MGRcdTU4MDRcdTU5NWNcdTVhNjBcdTVhNThcdTVhNTVcdTVhNjdcdTVhNWVcdTVhMzhcdTVhMzVcdTVhNmRcdTVhNTBcdTVhNWZcdTVhNjVcdTVhNmNcdTVhNTNcdTVhNjRcdTVhNTdcdTVhNDNcdTVhNWRcdTVhNTJcdTVhNDRc''@;'; put 'put ''dTVhNWJcdTVhNDhcdTVhOGVcdTVhM2VcdTVhNGRcdTVhMzlcdTVhNGNcdTVhNzBcdTVhNjlcdTVhNDdcdTVhNTFcdTVhNTZcdTVhNDJcdTVhNWNcdTViNzJcdTViNmVcdTViYzFcdTViYzBcdTVjNTlcdTVkMWVcdTVkMGJcdTVkMWRcdTVkMWFcdTVkMjBcdTVkMGNcdTVkMjhcdTVkMGRcdTVk''@;'; put 'put ''MjZcdTVkMjVcdTVkMGYiXSxbImQ1NDAiLCJcdTVkMzBcdTVkMTJcdTVkMjNcdTVkMWZcdTVkMmVcdTVlM2VcdTVlMzRcdTVlYjFcdTVlYjRcdTVlYjlcdTVlYjJcdTVlYjNcdTVmMzZcdTVmMzhcdTVmOWJcdTVmOTZcdTVmOWZcdTYwOGFcdTYwOTBcdTYwODZcdTYwYmVcdTYwYjBcdTYwYmFc''@;'; put 'put ''dTYwZDNcdTYwZDRcdTYwY2ZcdTYwZTRcdTYwZDlcdTYwZGRcdTYwYzhcdTYwYjFcdTYwZGJcdTYwYjdcdTYwY2FcdTYwYmZcdTYwYzNcdTYwY2RcdTYwYzBcdTYzMzJcdTYzNjVcdTYzOGFcdTYzODJcdTYzN2RcdTYzYmRcdTYzOWVcdTYzYWRcdTYzOWRcdTYzOTdcdTYzYWJcdTYzOGVcdTYz''@;'; put 'put ''NmZcdTYzODdcdTYzOTBcdTYzNmVcdTYzYWZcdTYzNzVcdTYzOWNcdTYzNmRcdTYzYWVcdTYzN2NcdTYzYTRcdTYzM2JcdTYzOWYiXSxbImQ1YTEiLCJcdTYzNzhcdTYzODVcdTYzODFcdTYzOTFcdTYzOGRcdTYzNzBcdTY1NTNcdTY1Y2RcdTY2NjVcdTY2NjFcdTY2NWJcdTY2NTlcdTY2NWNc''@;'; put 'put ''dTY2NjJcdTY3MThcdTY4NzlcdTY4ODdcdTY4OTBcdTY4OWNcdTY4NmRcdTY4NmVcdTY4YWVcdTY4YWJcdTY5NTZcdTY4NmZcdTY4YTNcdTY4YWNcdTY4YTlcdTY4NzVcdTY4NzRcdTY4YjJcdTY4OGZcdTY4NzdcdTY4OTJcdTY4N2NcdTY4NmJcdTY4NzJcdTY4YWFcdTY4ODBcdTY4NzFcdTY4''@;'; put 'put ''N2VcdTY4OWJcdTY4OTZcdTY4OGJcdTY4YTBcdTY4ODlcdTY4YTRcdTY4NzhcdTY4N2JcdTY4OTFcdTY4OGNcdTY4OGFcdTY4N2RcdTZiMzZcdTZiMzNcdTZiMzdcdTZiMzhcdTZiOTFcdTZiOGZcdTZiOGRcdTZiOGVcdTZiOGNcdTZjMmFcdTZkYzBcdTZkYWJcdTZkYjRcdTZkYjNcdTZlNzRc''@;'; put 'put ''dTZkYWNcdTZkZTlcdTZkZTJcdTZkYjdcdTZkZjZcdTZkZDRcdTZlMDBcdTZkYzhcdTZkZTBcdTZkZGZcdTZkZDZcdTZkYmVcdTZkZTVcdTZkZGNcdTZkZGRcdTZkZGJcdTZkZjRcdTZkY2FcdTZkYmRcdTZkZWRcdTZkZjBcdTZkYmFcdTZkZDVcdTZkYzJcdTZkY2ZcdTZkYzkiXSxbImQ2NDAi''@;'; put 'put ''LCJcdTZkZDBcdTZkZjJcdTZkZDNcdTZkZmRcdTZkZDdcdTZkY2RcdTZkZTNcdTZkYmJcdTcwZmFcdTcxMGRcdTcwZjdcdTcxMTdcdTcwZjRcdTcxMGNcdTcwZjBcdTcxMDRcdTcwZjNcdTcxMTBcdTcwZmNcdTcwZmZcdTcxMDZcdTcxMTNcdTcxMDBcdTcwZjhcdTcwZjZcdTcxMGJcdTcxMDJc''@;'; put 'put ''dTcxMGVcdTcyN2VcdTcyN2JcdTcyN2NcdTcyN2ZcdTczMWRcdTczMTdcdTczMDdcdTczMTFcdTczMThcdTczMGFcdTczMDhcdTcyZmZcdTczMGZcdTczMWVcdTczODhcdTczZjZcdTczZjhcdTczZjVcdTc0MDRcdTc0MDFcdTczZmRcdTc0MDdcdTc0MDBcdTczZmFcdTczZmNcdTczZmZcdTc0''@;'; put 'put ''MGNcdTc0MGJcdTczZjRcdTc0MDhcdTc1NjRcdTc1NjNcdTc1Y2VcdTc1ZDJcdTc1Y2YiXSxbImQ2YTEiLCJcdTc1Y2JcdTc1Y2NcdTc1ZDFcdTc1ZDBcdTc2OGZcdTc2ODlcdTc2ZDNcdTc3MzlcdTc3MmZcdTc3MmRcdTc3MzFcdTc3MzJcdTc3MzRcdTc3MzNcdTc3M2RcdTc3MjVcdTc3M2Jc''@;'; put 'put ''dTc3MzVcdTc4NDhcdTc4NTJcdTc4NDlcdTc4NGRcdTc4NGFcdTc4NGNcdTc4MjZcdTc4NDVcdTc4NTBcdTc5NjRcdTc5NjdcdTc5NjlcdTc5NmFcdTc5NjNcdTc5NmJcdTc5NjFcdTc5YmJcdTc5ZmFcdTc5ZjhcdTc5ZjZcdTc5ZjdcdTdhOGZcdTdhOTRcdTdhOTBcdTdiMzVcdTdiNDdcdTdi''@;'; put 'put ''MzRcdTdiMjVcdTdiMzBcdTdiMjJcdTdiMjRcdTdiMzNcdTdiMThcdTdiMmFcdTdiMWRcdTdiMzFcdTdiMmJcdTdiMmRcdTdiMmZcdTdiMzJcdTdiMzhcdTdiMWFcdTdiMjNcdTdjOTRcdTdjOThcdTdjOTZcdTdjYTNcdTdkMzVcdTdkM2RcdTdkMzhcdTdkMzZcdTdkM2FcdTdkNDVcdTdkMmNc''@;'; put 'put ''dTdkMjlcdTdkNDFcdTdkNDdcdTdkM2VcdTdkM2ZcdTdkNGFcdTdkM2JcdTdkMjhcdTdmNjNcdTdmOTVcdTdmOWNcdTdmOWRcdTdmOWJcdTdmY2FcdTdmY2JcdTdmY2RcdTdmZDBcdTdmZDFcdTdmYzdcdTdmY2ZcdTdmYzlcdTgwMWYiXSxbImQ3NDAiLCJcdTgwMWVcdTgwMWJcdTgwNDdcdTgw''@;'; put 'put ''NDNcdTgwNDhcdTgxMThcdTgxMjVcdTgxMTlcdTgxMWJcdTgxMmRcdTgxMWZcdTgxMmNcdTgxMWVcdTgxMjFcdTgxMTVcdTgxMjdcdTgxMWRcdTgxMjJcdTgyMTFcdTgyMzhcdTgyMzNcdTgyM2FcdTgyMzRcdTgyMzJcdTgyNzRcdTgzOTBcdTgzYTNcdTgzYThcdTgzOGRcdTgzN2FcdTgzNzNc''@;'; put 'put ''dTgzYTRcdTgzNzRcdTgzOGZcdTgzODFcdTgzOTVcdTgzOTlcdTgzNzVcdTgzOTRcdTgzYTlcdTgzN2RcdTgzODNcdTgzOGNcdTgzOWRcdTgzOWJcdTgzYWFcdTgzOGJcdTgzN2VcdTgzYTVcdTgzYWZcdTgzODhcdTgzOTdcdTgzYjBcdTgzN2ZcdTgzYTZcdTgzODdcdTgzYWVcdTgzNzZcdTgz''@;'; put 'put ''OWFcdTg2NTlcdTg2NTZcdTg2YmZcdTg2YjciXSxbImQ3YTEiLCJcdTg2YzJcdTg2YzFcdTg2YzVcdTg2YmFcdTg2YjBcdTg2YzhcdTg2YjlcdTg2YjNcdTg2YjhcdTg2Y2NcdTg2YjRcdTg2YmJcdTg2YmNcdTg2YzNcdTg2YmRcdTg2YmVcdTg4NTJcdTg4ODlcdTg4OTVcdTg4YThcdTg4YTJc''@;'; put 'put ''dTg4YWFcdTg4OWFcdTg4OTFcdTg4YTFcdTg4OWZcdTg4OThcdTg4YTdcdTg4OTlcdTg4OWJcdTg4OTdcdTg4YTRcdTg4YWNcdTg4OGNcdTg4OTNcdTg4OGVcdTg5ODJcdTg5ZDZcdTg5ZDlcdTg5ZDVcdThhMzBcdThhMjdcdThhMmNcdThhMWVcdThjMzlcdThjM2JcdThjNWNcdThjNWRcdThj''@;'; put 'put ''N2RcdThjYTVcdThkN2RcdThkN2JcdThkNzlcdThkYmNcdThkYzJcdThkYjlcdThkYmZcdThkYzFcdThlZDhcdThlZGVcdThlZGRcdThlZGNcdThlZDdcdThlZTBcdThlZTFcdTkwMjRcdTkwMGJcdTkwMTFcdTkwMWNcdTkwMGNcdTkwMjFcdTkwZWZcdTkwZWFcdTkwZjBcdTkwZjRcdTkwZjJc''@;'; put 'put ''dTkwZjNcdTkwZDRcdTkwZWJcdTkwZWNcdTkwZTlcdTkxNTZcdTkxNThcdTkxNWFcdTkxNTNcdTkxNTVcdTkxZWNcdTkxZjRcdTkxZjFcdTkxZjNcdTkxZjhcdTkxZTRcdTkxZjlcdTkxZWEiXSxbImQ4NDAiLCJcdTkxZWJcdTkxZjdcdTkxZThcdTkxZWVcdTk1N2FcdTk1ODZcdTk1ODhcdTk2''@;'; put 'put ''N2NcdTk2NmRcdTk2NmJcdTk2NzFcdTk2NmZcdTk2YmZcdTk3NmFcdTk4MDRcdTk4ZTVcdTk5OTdcdTUwOWJcdTUwOTVcdTUwOTRcdTUwOWVcdTUwOGJcdTUwYTNcdTUwODNcdTUwOGNcdTUwOGVcdTUwOWRcdTUwNjhcdTUwOWNcdTUwOTJcdTUwODJcdTUwODdcdTUxNWZcdTUxZDRcdTUzMTJc''@;'; put 'put ''dTUzMTFcdTUzYTRcdTUzYTdcdTU1OTFcdTU1YThcdTU1YTVcdTU1YWRcdTU1NzdcdTU2NDVcdTU1YTJcdTU1OTNcdTU1ODhcdTU1OGZcdTU1YjVcdTU1ODFcdTU1YTNcdTU1OTJcdTU1YTRcdTU1N2RcdTU1OGNcdTU1YTZcdTU1N2ZcdTU1OTVcdTU1YTFcdTU1OGVcdTU3MGNcdTU4MjlcdTU4''@;'; put 'put ''MzciXSxbImQ4YTEiLCJcdTU4MTlcdTU4MWVcdTU4MjdcdTU4MjNcdTU4MjhcdTU3ZjVcdTU4NDhcdTU4MjVcdTU4MWNcdTU4MWJcdTU4MzNcdTU4M2ZcdTU4MzZcdTU4MmVcdTU4MzlcdTU4MzhcdTU4MmRcdTU4MmNcdTU4M2JcdTU5NjFcdTVhYWZcdTVhOTRcdTVhOWZcdTVhN2FcdTVhYTJc''@;'; put 'put ''dTVhOWVcdTVhNzhcdTVhYTZcdTVhN2NcdTVhYTVcdTVhYWNcdTVhOTVcdTVhYWVcdTVhMzdcdTVhODRcdTVhOGFcdTVhOTdcdTVhODNcdTVhOGJcdTVhYTlcdTVhN2JcdTVhN2RcdTVhOGNcdTVhOWNcdTVhOGZcdTVhOTNcdTVhOWRcdTViZWFcdTViY2RcdTViY2JcdTViZDRcdTViZDFcdTVi''@;'; put 'put ''Y2FcdTViY2VcdTVjMGNcdTVjMzBcdTVkMzdcdTVkNDNcdTVkNmJcdTVkNDFcdTVkNGJcdTVkM2ZcdTVkMzVcdTVkNTFcdTVkNGVcdTVkNTVcdTVkMzNcdTVkM2FcdTVkNTJcdTVkM2RcdTVkMzFcdTVkNTlcdTVkNDJcdTVkMzlcdTVkNDlcdTVkMzhcdTVkM2NcdTVkMzJcdTVkMzZcdTVkNDBc''@;'; put 'put ''dTVkNDVcdTVlNDRcdTVlNDFcdTVmNThcdTVmYTZcdTVmYTVcdTVmYWJcdTYwYzlcdTYwYjlcdTYwY2NcdTYwZTJcdTYwY2VcdTYwYzRcdTYxMTQiXSxbImQ5NDAiLCJcdTYwZjJcdTYxMGFcdTYxMTZcdTYxMDVcdTYwZjVcdTYxMTNcdTYwZjhcdTYwZmNcdTYwZmVcdTYwYzFcdTYxMDNcdTYx''@;'; put 'put ''MThcdTYxMWRcdTYxMTBcdTYwZmZcdTYxMDRcdTYxMGJcdTYyNGFcdTYzOTRcdTYzYjFcdTYzYjBcdTYzY2VcdTYzZTVcdTYzZThcdTYzZWZcdTYzYzNcdTY0OWRcdTYzZjNcdTYzY2FcdTYzZTBcdTYzZjZcdTYzZDVcdTYzZjJcdTYzZjVcdTY0NjFcdTYzZGZcdTYzYmVcdTYzZGRcdTYzZGNc''@;'; put 'put ''dTYzYzRcdTYzZDhcdTYzZDNcdTYzYzJcdTYzYzdcdTYzY2NcdTYzY2JcdTYzYzhcdTYzZjBcdTYzZDdcdTYzZDlcdTY1MzJcdTY1NjdcdTY1NmFcdTY1NjRcdTY1NWNcdTY1NjhcdTY1NjVcdTY1OGNcdTY1OWRcdTY1OWVcdTY1YWVcdTY1ZDBcdTY1ZDIiXSxbImQ5YTEiLCJcdTY2N2NcdTY2''@;'; put 'put ''NmNcdTY2N2JcdTY2ODBcdTY2NzFcdTY2NzlcdTY2NmFcdTY2NzJcdTY3MDFcdTY5MGNcdTY4ZDNcdTY5MDRcdTY4ZGNcdTY5MmFcdTY4ZWNcdTY4ZWFcdTY4ZjFcdTY5MGZcdTY4ZDZcdTY4ZjdcdTY4ZWJcdTY4ZTRcdTY4ZjZcdTY5MTNcdTY5MTBcdTY4ZjNcdTY4ZTFcdTY5MDdcdTY4Y2Nc''@;'; put 'put ''dTY5MDhcdTY5NzBcdTY4YjRcdTY5MTFcdTY4ZWZcdTY4YzZcdTY5MTRcdTY4ZjhcdTY4ZDBcdTY4ZmRcdTY4ZmNcdTY4ZThcdTY5MGJcdTY5MGFcdTY5MTdcdTY4Y2VcdTY4YzhcdTY4ZGRcdTY4ZGVcdTY4ZTZcdTY4ZjRcdTY4ZDFcdTY5MDZcdTY4ZDRcdTY4ZTlcdTY5MTVcdTY5MjVcdTY4''@;'; put 'put ''YzdcdTZiMzlcdTZiM2JcdTZiM2ZcdTZiM2NcdTZiOTRcdTZiOTdcdTZiOTlcdTZiOTVcdTZiYmRcdTZiZjBcdTZiZjJcdTZiZjNcdTZjMzBcdTZkZmNcdTZlNDZcdTZlNDdcdTZlMWZcdTZlNDlcdTZlODhcdTZlM2NcdTZlM2RcdTZlNDVcdTZlNjJcdTZlMmJcdTZlM2ZcdTZlNDFcdTZlNWRc''@;'; put 'put ''dTZlNzNcdTZlMWNcdTZlMzNcdTZlNGJcdTZlNDBcdTZlNTFcdTZlM2JcdTZlMDNcdTZlMmVcdTZlNWUiXSxbImRhNDAiLCJcdTZlNjhcdTZlNWNcdTZlNjFcdTZlMzFcdTZlMjhcdTZlNjBcdTZlNzFcdTZlNmJcdTZlMzlcdTZlMjJcdTZlMzBcdTZlNTNcdTZlNjVcdTZlMjdcdTZlNzhcdTZl''@;'; put 'put ''NjRcdTZlNzdcdTZlNTVcdTZlNzlcdTZlNTJcdTZlNjZcdTZlMzVcdTZlMzZcdTZlNWFcdTcxMjBcdTcxMWVcdTcxMmZcdTcwZmJcdTcxMmVcdTcxMzFcdTcxMjNcdTcxMjVcdTcxMjJcdTcxMzJcdTcxMWZcdTcxMjhcdTcxM2FcdTcxMWJcdTcyNGJcdTcyNWFcdTcyODhcdTcyODlcdTcyODZc''@;'; put 'put ''dTcyODVcdTcyOGJcdTczMTJcdTczMGJcdTczMzBcdTczMjJcdTczMzFcdTczMzNcdTczMjdcdTczMzJcdTczMmRcdTczMjZcdTczMjNcdTczMzVcdTczMGNcdTc0MmVcdTc0MmNcdTc0MzBcdTc0MmJcdTc0MTYiXSxbImRhYTEiLCJcdTc0MWFcdTc0MjFcdTc0MmRcdTc0MzFcdTc0MjRcdTc0''@;'; put 'put ''MjNcdTc0MWRcdTc0MjlcdTc0MjBcdTc0MzJcdTc0ZmJcdTc1MmZcdTc1NmZcdTc1NmNcdTc1ZTdcdTc1ZGFcdTc1ZTFcdTc1ZTZcdTc1ZGRcdTc1ZGZcdTc1ZTRcdTc1ZDdcdTc2OTVcdTc2OTJcdTc2ZGFcdTc3NDZcdTc3NDdcdTc3NDRcdTc3NGRcdTc3NDVcdTc3NGFcdTc3NGVcdTc3NGJc''@;'; put 'put ''dTc3NGNcdTc3ZGVcdTc3ZWNcdTc4NjBcdTc4NjRcdTc4NjVcdTc4NWNcdTc4NmRcdTc4NzFcdTc4NmFcdTc4NmVcdTc4NzBcdTc4NjlcdTc4NjhcdTc4NWVcdTc4NjJcdTc5NzRcdTc5NzNcdTc5NzJcdTc5NzBcdTdhMDJcdTdhMGFcdTdhMDNcdTdhMGNcdTdhMDRcdTdhOTlcdTdhZTZcdTdh''@;'; put 'put ''ZTRcdTdiNGFcdTdiM2JcdTdiNDRcdTdiNDhcdTdiNGNcdTdiNGVcdTdiNDBcdTdiNThcdTdiNDVcdTdjYTJcdTdjOWVcdTdjYThcdTdjYTFcdTdkNThcdTdkNmZcdTdkNjNcdTdkNTNcdTdkNTZcdTdkNjdcdTdkNmFcdTdkNGZcdTdkNmRcdTdkNWNcdTdkNmJcdTdkNTJcdTdkNTRcdTdkNjlc''@;'; put 'put ''dTdkNTFcdTdkNWZcdTdkNGVcdTdmM2VcdTdmM2ZcdTdmNjUiXSxbImRiNDAiLCJcdTdmNjZcdTdmYTJcdTdmYTBcdTdmYTFcdTdmZDdcdTgwNTFcdTgwNGZcdTgwNTBcdTgwZmVcdTgwZDRcdTgxNDNcdTgxNGFcdTgxNTJcdTgxNGZcdTgxNDdcdTgxM2RcdTgxNGRcdTgxM2FcdTgxZTZcdTgx''@;'; put 'put ''ZWVcdTgxZjdcdTgxZjhcdTgxZjlcdTgyMDRcdTgyM2NcdTgyM2RcdTgyM2ZcdTgyNzVcdTgzM2JcdTgzY2ZcdTgzZjlcdTg0MjNcdTgzYzBcdTgzZThcdTg0MTJcdTgzZTdcdTgzZTRcdTgzZmNcdTgzZjZcdTg0MTBcdTgzYzZcdTgzYzhcdTgzZWJcdTgzZTNcdTgzYmZcdTg0MDFcdTgzZGRc''@;'; put 'put ''dTgzZTVcdTgzZDhcdTgzZmZcdTgzZTFcdTgzY2JcdTgzY2VcdTgzZDZcdTgzZjVcdTgzYzlcdTg0MDlcdTg0MGZcdTgzZGVcdTg0MTFcdTg0MDZcdTgzYzJcdTgzZjMiXSxbImRiYTEiLCJcdTgzZDVcdTgzZmFcdTgzYzdcdTgzZDFcdTgzZWFcdTg0MTNcdTgzYzNcdTgzZWNcdTgzZWVcdTgz''@;'; put 'put ''YzRcdTgzZmJcdTgzZDdcdTgzZTJcdTg0MWJcdTgzZGJcdTgzZmVcdTg2ZDhcdTg2ZTJcdTg2ZTZcdTg2ZDNcdTg2ZTNcdTg2ZGFcdTg2ZWFcdTg2ZGRcdTg2ZWJcdTg2ZGNcdTg2ZWNcdTg2ZTlcdTg2ZDdcdTg2ZThcdTg2ZDFcdTg4NDhcdTg4NTZcdTg4NTVcdTg4YmFcdTg4ZDdcdTg4Yjlc''@;'; put 'put ''dTg4YjhcdTg4YzBcdTg4YmVcdTg4YjZcdTg4YmNcdTg4YjdcdTg4YmRcdTg4YjJcdTg5MDFcdTg4YzlcdTg5OTVcdTg5OThcdTg5OTdcdTg5ZGRcdTg5ZGFcdTg5ZGJcdThhNGVcdThhNGRcdThhMzlcdThhNTlcdThhNDBcdThhNTdcdThhNThcdThhNDRcdThhNDVcdThhNTJcdThhNDhcdThh''@;'; put 'put ''NTFcdThhNGFcdThhNGNcdThhNGZcdThjNWZcdThjODFcdThjODBcdThjYmFcdThjYmVcdThjYjBcdThjYjlcdThjYjVcdThkODRcdThkODBcdThkODlcdThkZDhcdThkZDNcdThkY2RcdThkYzdcdThkZDZcdThkZGNcdThkY2ZcdThkZDVcdThkZDlcdThkYzhcdThkZDdcdThkYzVcdThlZWZc''@;'; put 'put ''dThlZjdcdThlZmEiXSxbImRjNDAiLCJcdThlZjlcdThlZTZcdThlZWVcdThlZTVcdThlZjVcdThlZTdcdThlZThcdThlZjZcdThlZWJcdThlZjFcdThlZWNcdThlZjRcdThlZTlcdTkwMmRcdTkwMzRcdTkwMmZcdTkxMDZcdTkxMmNcdTkxMDRcdTkwZmZcdTkwZmNcdTkxMDhcdTkwZjlcdTkw''@;'; put 'put ''ZmJcdTkxMDFcdTkxMDBcdTkxMDdcdTkxMDVcdTkxMDNcdTkxNjFcdTkxNjRcdTkxNWZcdTkxNjJcdTkxNjBcdTkyMDFcdTkyMGFcdTkyMjVcdTkyMDNcdTkyMWFcdTkyMjZcdTkyMGZcdTkyMGNcdTkyMDBcdTkyMTJcdTkxZmZcdTkxZmRcdTkyMDZcdTkyMDRcdTkyMjdcdTkyMDJcdTkyMWNc''@;'; put 'put ''dTkyMjRcdTkyMTlcdTkyMTdcdTkyMDVcdTkyMTZcdTk1N2JcdTk1OGRcdTk1OGNcdTk1OTBcdTk2ODdcdTk2N2VcdTk2ODgiXSxbImRjYTEiLCJcdTk2ODlcdTk2ODNcdTk2ODBcdTk2YzJcdTk2YzhcdTk2YzNcdTk2ZjFcdTk2ZjBcdTk3NmNcdTk3NzBcdTk3NmVcdTk4MDdcdTk4YTlcdTk4''@;'; put 'put ''ZWJcdTljZTZcdTllZjlcdTRlODNcdTRlODRcdTRlYjZcdTUwYmRcdTUwYmZcdTUwYzZcdTUwYWVcdTUwYzRcdTUwY2FcdTUwYjRcdTUwYzhcdTUwYzJcdTUwYjBcdTUwYzFcdTUwYmFcdTUwYjFcdTUwY2JcdTUwYzlcdTUwYjZcdTUwYjhcdTUxZDdcdTUyN2FcdTUyNzhcdTUyN2JcdTUyN2Nc''@;'; put 'put ''dTU1YzNcdTU1ZGJcdTU1Y2NcdTU1ZDBcdTU1Y2JcdTU1Y2FcdTU1ZGRcdTU1YzBcdTU1ZDRcdTU1YzRcdTU1ZTlcdTU1YmZcdTU1ZDJcdTU1OGRcdTU1Y2ZcdTU1ZDVcdTU1ZTJcdTU1ZDZcdTU1YzhcdTU1ZjJcdTU1Y2RcdTU1ZDlcdTU1YzJcdTU3MTRcdTU4NTNcdTU4NjhcdTU4NjRcdTU4''@;'; put 'put ''NGZcdTU4NGRcdTU4NDlcdTU4NmZcdTU4NTVcdTU4NGVcdTU4NWRcdTU4NTlcdTU4NjVcdTU4NWJcdTU4M2RcdTU4NjNcdTU4NzFcdTU4ZmNcdTVhYzdcdTVhYzRcdTVhY2JcdTVhYmFcdTVhYjhcdTVhYjFcdTVhYjVcdTVhYjBcdTVhYmZcdTVhYzhcdTVhYmJcdTVhYzYiXSxbImRkNDAiLCJc''@;'; put 'put ''dTVhYjdcdTVhYzBcdTVhY2FcdTVhYjRcdTVhYjZcdTVhY2RcdTVhYjlcdTVhOTBcdTViZDZcdTViZDhcdTViZDlcdTVjMWZcdTVjMzNcdTVkNzFcdTVkNjNcdTVkNGFcdTVkNjVcdTVkNzJcdTVkNmNcdTVkNWVcdTVkNjhcdTVkNjdcdTVkNjJcdTVkZjBcdTVlNGZcdTVlNGVcdTVlNGFcdTVl''@;'; put 'put ''NGRcdTVlNGJcdTVlYzVcdTVlY2NcdTVlYzZcdTVlY2JcdTVlYzdcdTVmNDBcdTVmYWZcdTVmYWRcdTYwZjdcdTYxNDlcdTYxNGFcdTYxMmJcdTYxNDVcdTYxMzZcdTYxMzJcdTYxMmVcdTYxNDZcdTYxMmZcdTYxNGZcdTYxMjlcdTYxNDBcdTYyMjBcdTkxNjhcdTYyMjNcdTYyMjVcdTYyMjRc''@;'; put 'put ''dTYzYzVcdTYzZjFcdTYzZWJcdTY0MTBcdTY0MTJcdTY0MDlcdTY0MjBcdTY0MjQiXSxbImRkYTEiLCJcdTY0MzNcdTY0NDNcdTY0MWZcdTY0MTVcdTY0MThcdTY0MzlcdTY0MzdcdTY0MjJcdTY0MjNcdTY0MGNcdTY0MjZcdTY0MzBcdTY0MjhcdTY0NDFcdTY0MzVcdTY0MmZcdTY0MGFcdTY0''@;'; put 'put ''MWFcdTY0NDBcdTY0MjVcdTY0MjdcdTY0MGJcdTYzZTdcdTY0MWJcdTY0MmVcdTY0MjFcdTY0MGVcdTY1NmZcdTY1OTJcdTY1ZDNcdTY2ODZcdTY2OGNcdTY2OTVcdTY2OTBcdTY2OGJcdTY2OGFcdTY2OTlcdTY2OTRcdTY2NzhcdTY3MjBcdTY5NjZcdTY5NWZcdTY5MzhcdTY5NGVcdTY5NjJc''@;'; put 'put ''dTY5NzFcdTY5M2ZcdTY5NDVcdTY5NmFcdTY5MzlcdTY5NDJcdTY5NTdcdTY5NTlcdTY5N2FcdTY5NDhcdTY5NDlcdTY5MzVcdTY5NmNcdTY5MzNcdTY5M2RcdTY5NjVcdTY4ZjBcdTY5NzhcdTY5MzRcdTY5NjlcdTY5NDBcdTY5NmZcdTY5NDRcdTY5NzZcdTY5NThcdTY5NDFcdTY5NzRcdTY5''@;'; put 'put ''NGNcdTY5M2JcdTY5NGJcdTY5MzdcdTY5NWNcdTY5NGZcdTY5NTFcdTY5MzJcdTY5NTJcdTY5MmZcdTY5N2JcdTY5M2NcdTZiNDZcdTZiNDVcdTZiNDNcdTZiNDJcdTZiNDhcdTZiNDFcdTZiOWJcdWZhMGRcdTZiZmJcdTZiZmMiXSxbImRlNDAiLCJcdTZiZjlcdTZiZjdcdTZiZjhcdTZlOWJc''@;'; put 'put ''dTZlZDZcdTZlYzhcdTZlOGZcdTZlYzBcdTZlOWZcdTZlOTNcdTZlOTRcdTZlYTBcdTZlYjFcdTZlYjlcdTZlYzZcdTZlZDJcdTZlYmRcdTZlYzFcdTZlOWVcdTZlYzlcdTZlYjdcdTZlYjBcdTZlY2RcdTZlYTZcdTZlY2ZcdTZlYjJcdTZlYmVcdTZlYzNcdTZlZGNcdTZlZDhcdTZlOTlcdTZl''@;'; put 'put ''OTJcdTZlOGVcdTZlOGRcdTZlYTRcdTZlYTFcdTZlYmZcdTZlYjNcdTZlZDBcdTZlY2FcdTZlOTdcdTZlYWVcdTZlYTNcdTcxNDdcdTcxNTRcdTcxNTJcdTcxNjNcdTcxNjBcdTcxNDFcdTcxNWRcdTcxNjJcdTcxNzJcdTcxNzhcdTcxNmFcdTcxNjFcdTcxNDJcdTcxNThcdTcxNDNcdTcxNGJc''@;'; put 'put ''dTcxNzBcdTcxNWZcdTcxNTBcdTcxNTMiXSxbImRlYTEiLCJcdTcxNDRcdTcxNGRcdTcxNWFcdTcyNGZcdTcyOGRcdTcyOGNcdTcyOTFcdTcyOTBcdTcyOGVcdTczM2NcdTczNDJcdTczM2JcdTczM2FcdTczNDBcdTczNGFcdTczNDlcdTc0NDRcdTc0NGFcdTc0NGJcdTc0NTJcdTc0NTFcdTc0''@;'; put 'put ''NTdcdTc0NDBcdTc0NGZcdTc0NTBcdTc0NGVcdTc0NDJcdTc0NDZcdTc0NGRcdTc0NTRcdTc0ZTFcdTc0ZmZcdTc0ZmVcdTc0ZmRcdTc1MWRcdTc1NzlcdTc1NzdcdTY5ODNcdTc1ZWZcdTc2MGZcdTc2MDNcdTc1ZjdcdTc1ZmVcdTc1ZmNcdTc1ZjlcdTc1ZjhcdTc2MTBcdTc1ZmJcdTc1ZjZc''@;'; put 'put ''dTc1ZWRcdTc1ZjVcdTc1ZmRcdTc2OTlcdTc2YjVcdTc2ZGRcdTc3NTVcdTc3NWZcdTc3NjBcdTc3NTJcdTc3NTZcdTc3NWFcdTc3NjlcdTc3NjdcdTc3NTRcdTc3NTlcdTc3NmRcdTc3ZTBcdTc4ODdcdTc4OWFcdTc4OTRcdTc4OGZcdTc4ODRcdTc4OTVcdTc4ODVcdTc4ODZcdTc4YTFcdTc4''@;'; put 'put ''ODNcdTc4NzlcdTc4OTlcdTc4ODBcdTc4OTZcdTc4N2JcdTc5N2NcdTc5ODJcdTc5N2RcdTc5NzlcdTdhMTFcdTdhMThcdTdhMTlcdTdhMTJcdTdhMTdcdTdhMTVcdTdhMjJcdTdhMTMiXSxbImRmNDAiLCJcdTdhMWJcdTdhMTBcdTdhYTNcdTdhYTJcdTdhOWVcdTdhZWJcdTdiNjZcdTdiNjRc''@;'; put 'put ''dTdiNmRcdTdiNzRcdTdiNjlcdTdiNzJcdTdiNjVcdTdiNzNcdTdiNzFcdTdiNzBcdTdiNjFcdTdiNzhcdTdiNzZcdTdiNjNcdTdjYjJcdTdjYjRcdTdjYWZcdTdkODhcdTdkODZcdTdkODBcdTdkOGRcdTdkN2ZcdTdkODVcdTdkN2FcdTdkOGVcdTdkN2JcdTdkODNcdTdkN2NcdTdkOGNcdTdk''@;'; put 'put ''OTRcdTdkODRcdTdkN2RcdTdkOTJcdTdmNmRcdTdmNmJcdTdmNjdcdTdmNjhcdTdmNmNcdTdmYTZcdTdmYTVcdTdmYTdcdTdmZGJcdTdmZGNcdTgwMjFcdTgxNjRcdTgxNjBcdTgxNzdcdTgxNWNcdTgxNjlcdTgxNWJcdTgxNjJcdTgxNzJcdTY3MjFcdTgxNWVcdTgxNzZcdTgxNjdcdTgxNmYi''@;'; put 'put ''XSxbImRmYTEiLCJcdTgxNDRcdTgxNjFcdTgyMWRcdTgyNDlcdTgyNDRcdTgyNDBcdTgyNDJcdTgyNDVcdTg0ZjFcdTg0M2ZcdTg0NTZcdTg0NzZcdTg0NzlcdTg0OGZcdTg0OGRcdTg0NjVcdTg0NTFcdTg0NDBcdTg0ODZcdTg0NjdcdTg0MzBcdTg0NGRcdTg0N2RcdTg0NWFcdTg0NTlcdTg0''@;'; put 'put ''NzRcdTg0NzNcdTg0NWRcdTg1MDdcdTg0NWVcdTg0MzdcdTg0M2FcdTg0MzRcdTg0N2FcdTg0NDNcdTg0NzhcdTg0MzJcdTg0NDVcdTg0MjlcdTgzZDlcdTg0NGJcdTg0MmZcdTg0NDJcdTg0MmRcdTg0NWZcdTg0NzBcdTg0MzlcdTg0NGVcdTg0NGNcdTg0NTJcdTg0NmZcdTg0YzVcdTg0OGVc''@;'; put 'put ''dTg0M2JcdTg0NDdcdTg0MzZcdTg0MzNcdTg0NjhcdTg0N2VcdTg0NDRcdTg0MmJcdTg0NjBcdTg0NTRcdTg0NmVcdTg0NTBcdTg3MGJcdTg3MDRcdTg2ZjdcdTg3MGNcdTg2ZmFcdTg2ZDZcdTg2ZjVcdTg3NGRcdTg2ZjhcdTg3MGVcdTg3MDlcdTg3MDFcdTg2ZjZcdTg3MGRcdTg3MDVcdTg4''@;'; put 'put ''ZDZcdTg4Y2JcdTg4Y2RcdTg4Y2VcdTg4ZGVcdTg4ZGJcdTg4ZGFcdTg4Y2NcdTg4ZDBcdTg5ODVcdTg5OWJcdTg5ZGZcdTg5ZTVcdTg5ZTQiXSxbImUwNDAiLCJcdTg5ZTFcdTg5ZTBcdTg5ZTJcdTg5ZGNcdTg5ZTZcdThhNzZcdThhODZcdThhN2ZcdThhNjFcdThhM2ZcdThhNzdcdThhODJc''@;'; put 'put ''dThhODRcdThhNzVcdThhODNcdThhODFcdThhNzRcdThhN2FcdThjM2NcdThjNGJcdThjNGFcdThjNjVcdThjNjRcdThjNjZcdThjODZcdThjODRcdThjODVcdThjY2NcdThkNjhcdThkNjlcdThkOTFcdThkOGNcdThkOGVcdThkOGZcdThkOGRcdThkOTNcdThkOTRcdThkOTBcdThkOTJcdThk''@;'; put 'put ''ZjBcdThkZTBcdThkZWNcdThkZjFcdThkZWVcdThkZDBcdThkZTlcdThkZTNcdThkZTJcdThkZTdcdThkZjJcdThkZWJcdThkZjRcdThmMDZcdThlZmZcdThmMDFcdThmMDBcdThmMDVcdThmMDdcdThmMDhcdThmMDJcdThmMGJcdTkwNTJcdTkwM2YiXSxbImUwYTEiLCJcdTkwNDRcdTkwNDlc''@;'; put 'put ''dTkwM2RcdTkxMTBcdTkxMGRcdTkxMGZcdTkxMTFcdTkxMTZcdTkxMTRcdTkxMGJcdTkxMGVcdTkxNmVcdTkxNmZcdTkyNDhcdTkyNTJcdTkyMzBcdTkyM2FcdTkyNjZcdTkyMzNcdTkyNjVcdTkyNWVcdTkyODNcdTkyMmVcdTkyNGFcdTkyNDZcdTkyNmRcdTkyNmNcdTkyNGZcdTkyNjBcdTky''@;'; put 'put ''NjdcdTkyNmZcdTkyMzZcdTkyNjFcdTkyNzBcdTkyMzFcdTkyNTRcdTkyNjNcdTkyNTBcdTkyNzJcdTkyNGVcdTkyNTNcdTkyNGNcdTkyNTZcdTkyMzJcdTk1OWZcdTk1OWNcdTk1OWVcdTk1OWJcdTk2OTJcdTk2OTNcdTk2OTFcdTk2OTdcdTk2Y2VcdTk2ZmFcdTk2ZmRcdTk2ZjhcdTk2ZjVc''@;'; put 'put ''dTk3NzNcdTk3NzdcdTk3NzhcdTk3NzJcdTk4MGZcdTk4MGRcdTk4MGVcdTk4YWNcdTk4ZjZcdTk4ZjlcdTk5YWZcdTk5YjJcdTk5YjBcdTk5YjVcdTlhYWRcdTlhYWJcdTliNWJcdTljZWFcdTljZWRcdTljZTdcdTllODBcdTllZmRcdTUwZTZcdTUwZDRcdTUwZDdcdTUwZThcdTUwZjNcdTUw''@;'; put 'put ''ZGJcdTUwZWFcdTUwZGRcdTUwZTRcdTUwZDNcdTUwZWNcdTUwZjBcdTUwZWZcdTUwZTNcdTUwZTAiXSxbImUxNDAiLCJcdTUxZDhcdTUyODBcdTUyODFcdTUyZTlcdTUyZWJcdTUzMzBcdTUzYWNcdTU2MjdcdTU2MTVcdTU2MGNcdTU2MTJcdTU1ZmNcdTU2MGZcdTU2MWNcdTU2MDFcdTU2MTNc''@;'; put 'put ''dTU2MDJcdTU1ZmFcdTU2MWRcdTU2MDRcdTU1ZmZcdTU1ZjlcdTU4ODlcdTU4N2NcdTU4OTBcdTU4OThcdTU4ODZcdTU4ODFcdTU4N2ZcdTU4NzRcdTU4OGJcdTU4N2FcdTU4ODdcdTU4OTFcdTU4OGVcdTU4NzZcdTU4ODJcdTU4ODhcdTU4N2JcdTU4OTRcdTU4OGZcdTU4ZmVcdTU5NmJcdTVh''@;'; put 'put ''ZGNcdTVhZWVcdTVhZTVcdTVhZDVcdTVhZWFcdTVhZGFcdTVhZWRcdTVhZWJcdTVhZjNcdTVhZTJcdTVhZTBcdTVhZGJcdTVhZWNcdTVhZGVcdTVhZGRcdTVhZDlcdTVhZThcdTVhZGZcdTViNzdcdTViZTAiXSxbImUxYTEiLCJcdTViZTNcdTVjNjNcdTVkODJcdTVkODBcdTVkN2RcdTVkODZc''@;'; put 'put ''dTVkN2FcdTVkODFcdTVkNzdcdTVkOGFcdTVkODlcdTVkODhcdTVkN2VcdTVkN2NcdTVkOGRcdTVkNzlcdTVkN2ZcdTVlNThcdTVlNTlcdTVlNTNcdTVlZDhcdTVlZDFcdTVlZDdcdTVlY2VcdTVlZGNcdTVlZDVcdTVlZDlcdTVlZDJcdTVlZDRcdTVmNDRcdTVmNDNcdTVmNmZcdTVmYjZcdTYx''@;'; put 'put ''MmNcdTYxMjhcdTYxNDFcdTYxNWVcdTYxNzFcdTYxNzNcdTYxNTJcdTYxNTNcdTYxNzJcdTYxNmNcdTYxODBcdTYxNzRcdTYxNTRcdTYxN2FcdTYxNWJcdTYxNjVcdTYxM2JcdTYxNmFcdTYxNjFcdTYxNTZcdTYyMjlcdTYyMjdcdTYyMmJcdTY0MmJcdTY0NGRcdTY0NWJcdTY0NWRcdTY0NzRc''@;'; put 'put ''dTY0NzZcdTY0NzJcdTY0NzNcdTY0N2RcdTY0NzVcdTY0NjZcdTY0YTZcdTY0NGVcdTY0ODJcdTY0NWVcdTY0NWNcdTY0NGJcdTY0NTNcdTY0NjBcdTY0NTBcdTY0N2ZcdTY0M2ZcdTY0NmNcdTY0NmJcdTY0NTlcdTY0NjVcdTY0NzdcdTY1NzNcdTY1YTBcdTY2YTFcdTY2YTBcdTY2OWZcdTY3''@;'; put 'put ''MDVcdTY3MDRcdTY3MjJcdTY5YjFcdTY5YjZcdTY5YzkiXSxbImUyNDAiLCJcdTY5YTBcdTY5Y2VcdTY5OTZcdTY5YjBcdTY5YWNcdTY5YmNcdTY5OTFcdTY5OTlcdTY5OGVcdTY5YTdcdTY5OGRcdTY5YTlcdTY5YmVcdTY5YWZcdTY5YmZcdTY5YzRcdTY5YmRcdTY5YTRcdTY5ZDRcdTY5Yjlc''@;'; put 'put ''dTY5Y2FcdTY5OWFcdTY5Y2ZcdTY5YjNcdTY5OTNcdTY5YWFcdTY5YTFcdTY5OWVcdTY5ZDlcdTY5OTdcdTY5OTBcdTY5YzJcdTY5YjVcdTY5YTVcdTY5YzZcdTZiNGFcdTZiNGRcdTZiNGJcdTZiOWVcdTZiOWZcdTZiYTBcdTZiYzNcdTZiYzRcdTZiZmVcdTZlY2VcdTZlZjVcdTZlZjFcdTZm''@;'; put 'put ''MDNcdTZmMjVcdTZlZjhcdTZmMzdcdTZlZmJcdTZmMmVcdTZmMDlcdTZmNGVcdTZmMTlcdTZmMWFcdTZmMjdcdTZmMThcdTZmM2JcdTZmMTJcdTZlZWRcdTZmMGEiXSxbImUyYTEiLCJcdTZmMzZcdTZmNzNcdTZlZjlcdTZlZWVcdTZmMmRcdTZmNDBcdTZmMzBcdTZmM2NcdTZmMzVcdTZlZWJc''@;'; put 'put ''dTZmMDdcdTZmMGVcdTZmNDNcdTZmMDVcdTZlZmRcdTZlZjZcdTZmMzlcdTZmMWNcdTZlZmNcdTZmM2FcdTZmMWZcdTZmMGRcdTZmMWVcdTZmMDhcdTZmMjFcdTcxODdcdTcxOTBcdTcxODlcdTcxODBcdTcxODVcdTcxODJcdTcxOGZcdTcxN2JcdTcxODZcdTcxODFcdTcxOTdcdTcyNDRcdTcy''@;'; put 'put ''NTNcdTcyOTdcdTcyOTVcdTcyOTNcdTczNDNcdTczNGRcdTczNTFcdTczNGNcdTc0NjJcdTc0NzNcdTc0NzFcdTc0NzVcdTc0NzJcdTc0NjdcdTc0NmVcdTc1MDBcdTc1MDJcdTc1MDNcdTc1N2RcdTc1OTBcdTc2MTZcdTc2MDhcdTc2MGNcdTc2MTVcdTc2MTFcdTc2MGFcdTc2MTRcdTc2Yjhc''@;'; put 'put ''dTc3ODFcdTc3N2NcdTc3ODVcdTc3ODJcdTc3NmVcdTc3ODBcdTc3NmZcdTc3N2VcdTc3ODNcdTc4YjJcdTc4YWFcdTc4YjRcdTc4YWRcdTc4YThcdTc4N2VcdTc4YWJcdTc4OWVcdTc4YTVcdTc4YTBcdTc4YWNcdTc4YTJcdTc4YTRcdTc5OThcdTc5OGFcdTc5OGJcdTc5OTZcdTc5OTVcdTc5''@;'; put 'put ''OTRcdTc5OTMiXSxbImUzNDAiLCJcdTc5OTdcdTc5ODhcdTc5OTJcdTc5OTBcdTdhMmJcdTdhNGFcdTdhMzBcdTdhMmZcdTdhMjhcdTdhMjZcdTdhYThcdTdhYWJcdTdhYWNcdTdhZWVcdTdiODhcdTdiOWNcdTdiOGFcdTdiOTFcdTdiOTBcdTdiOTZcdTdiOGRcdTdiOGNcdTdiOWJcdTdiOGVc''@;'; put 'put ''dTdiODVcdTdiOThcdTUyODRcdTdiOTlcdTdiYTRcdTdiODJcdTdjYmJcdTdjYmZcdTdjYmNcdTdjYmFcdTdkYTdcdTdkYjdcdTdkYzJcdTdkYTNcdTdkYWFcdTdkYzFcdTdkYzBcdTdkYzVcdTdkOWRcdTdkY2VcdTdkYzRcdTdkYzZcdTdkY2JcdTdkY2NcdTdkYWZcdTdkYjlcdTdkOTZcdTdk''@;'; put 'put ''YmNcdTdkOWZcdTdkYTZcdTdkYWVcdTdkYTlcdTdkYTFcdTdkYzlcdTdmNzNcdTdmZTJcdTdmZTNcdTdmZTVcdTdmZGUiXSxbImUzYTEiLCJcdTgwMjRcdTgwNWRcdTgwNWNcdTgxODlcdTgxODZcdTgxODNcdTgxODdcdTgxOGRcdTgxOGNcdTgxOGJcdTgyMTVcdTg0OTdcdTg0YTRcdTg0YTFc''@;'; put 'put ''dTg0OWZcdTg0YmFcdTg0Y2VcdTg0YzJcdTg0YWNcdTg0YWVcdTg0YWJcdTg0YjlcdTg0YjRcdTg0YzFcdTg0Y2RcdTg0YWFcdTg0OWFcdTg0YjFcdTg0ZDBcdTg0OWRcdTg0YTdcdTg0YmJcdTg0YTJcdTg0OTRcdTg0YzdcdTg0Y2NcdTg0OWJcdTg0YTlcdTg0YWZcdTg0YThcdTg0ZDZcdTg0''@;'; put 'put ''OThcdTg0YjZcdTg0Y2ZcdTg0YTBcdTg0ZDdcdTg0ZDRcdTg0ZDJcdTg0ZGJcdTg0YjBcdTg0OTFcdTg2NjFcdTg3MzNcdTg3MjNcdTg3MjhcdTg3NmJcdTg3NDBcdTg3MmVcdTg3MWVcdTg3MjFcdTg3MTlcdTg3MWJcdTg3NDNcdTg3MmNcdTg3NDFcdTg3M2VcdTg3NDZcdTg3MjBcdTg3MzJc''@;'; put 'put ''dTg3MmFcdTg3MmRcdTg3M2NcdTg3MTJcdTg3M2FcdTg3MzFcdTg3MzVcdTg3NDJcdTg3MjZcdTg3MjdcdTg3MzhcdTg3MjRcdTg3MWFcdTg3MzBcdTg3MTFcdTg4ZjdcdTg4ZTdcdTg4ZjFcdTg4ZjJcdTg4ZmFcdTg4ZmVcdTg4ZWVcdTg4ZmNcdTg4ZjZcdTg4ZmIiXSxbImU0NDAiLCJcdTg4''@;'; put 'put ''ZjBcdTg4ZWNcdTg4ZWJcdTg5OWRcdTg5YTFcdTg5OWZcdTg5OWVcdTg5ZTlcdTg5ZWJcdTg5ZThcdThhYWJcdThhOTlcdThhOGJcdThhOTJcdThhOGZcdThhOTZcdThjM2RcdThjNjhcdThjNjlcdThjZDVcdThjY2ZcdThjZDdcdThkOTZcdThlMDlcdThlMDJcdThkZmZcdThlMGRcdThkZmRc''@;'; put 'put ''dThlMGFcdThlMDNcdThlMDdcdThlMDZcdThlMDVcdThkZmVcdThlMDBcdThlMDRcdThmMTBcdThmMTFcdThmMGVcdThmMGRcdTkxMjNcdTkxMWNcdTkxMjBcdTkxMjJcdTkxMWZcdTkxMWRcdTkxMWFcdTkxMjRcdTkxMjFcdTkxMWJcdTkxN2FcdTkxNzJcdTkxNzlcdTkxNzNcdTkyYTVcdTky''@;'; put 'put ''YTRcdTkyNzZcdTkyOWJcdTkyN2FcdTkyYTBcdTkyOTRcdTkyYWFcdTkyOGQiXSxbImU0YTEiLCJcdTkyYTZcdTkyOWFcdTkyYWJcdTkyNzlcdTkyOTdcdTkyN2ZcdTkyYTNcdTkyZWVcdTkyOGVcdTkyODJcdTkyOTVcdTkyYTJcdTkyN2RcdTkyODhcdTkyYTFcdTkyOGFcdTkyODZcdTkyOGNc''@;'; put 'put ''dTkyOTlcdTkyYTdcdTkyN2VcdTkyODdcdTkyYTlcdTkyOWRcdTkyOGJcdTkyMmRcdTk2OWVcdTk2YTFcdTk2ZmZcdTk3NThcdTk3N2RcdTk3N2FcdTk3N2VcdTk3ODNcdTk3ODBcdTk3ODJcdTk3N2JcdTk3ODRcdTk3ODFcdTk3N2ZcdTk3Y2VcdTk3Y2RcdTk4MTZcdTk4YWRcdTk4YWVcdTk5''@;'; put 'put ''MDJcdTk5MDBcdTk5MDdcdTk5OWRcdTk5OWNcdTk5YzNcdTk5YjlcdTk5YmJcdTk5YmFcdTk5YzJcdTk5YmRcdTk5YzdcdTlhYjFcdTlhZTNcdTlhZTdcdTliM2VcdTliM2ZcdTliNjBcdTliNjFcdTliNWZcdTljZjFcdTljZjJcdTljZjVcdTllYTdcdTUwZmZcdTUxMDNcdTUxMzBcdTUwZjhc''@;'; put 'put ''dTUxMDZcdTUxMDdcdTUwZjZcdTUwZmVcdTUxMGJcdTUxMGNcdTUwZmRcdTUxMGFcdTUyOGJcdTUyOGNcdTUyZjFcdTUyZWZcdTU2NDhcdTU2NDJcdTU2NGNcdTU2MzVcdTU2NDFcdTU2NGFcdTU2NDlcdTU2NDZcdTU2NTgiXSxbImU1NDAiLCJcdTU2NWFcdTU2NDBcdTU2MzNcdTU2M2RcdTU2''@;'; put 'put ''MmNcdTU2M2VcdTU2MzhcdTU2MmFcdTU2M2FcdTU3MWFcdTU4YWJcdTU4OWRcdTU4YjFcdTU4YTBcdTU4YTNcdTU4YWZcdTU4YWNcdTU4YTVcdTU4YTFcdTU4ZmZcdTVhZmZcdTVhZjRcdTVhZmRcdTVhZjdcdTVhZjZcdTViMDNcdTVhZjhcdTViMDJcdTVhZjlcdTViMDFcdTViMDdcdTViMDVc''@;'; put 'put ''dTViMGZcdTVjNjdcdTVkOTlcdTVkOTdcdTVkOWZcdTVkOTJcdTVkYTJcdTVkOTNcdTVkOTVcdTVkYTBcdTVkOWNcdTVkYTFcdTVkOWFcdTVkOWVcdTVlNjlcdTVlNWRcdTVlNjBcdTVlNWNcdTdkZjNcdTVlZGJcdTVlZGVcdTVlZTFcdTVmNDlcdTVmYjJcdTYxOGJcdTYxODNcdTYxNzlcdTYx''@;'; put 'put ''YjFcdTYxYjBcdTYxYTJcdTYxODkiXSxbImU1YTEiLCJcdTYxOWJcdTYxOTNcdTYxYWZcdTYxYWRcdTYxOWZcdTYxOTJcdTYxYWFcdTYxYTFcdTYxOGRcdTYxNjZcdTYxYjNcdTYyMmRcdTY0NmVcdTY0NzBcdTY0OTZcdTY0YTBcdTY0ODVcdTY0OTdcdTY0OWNcdTY0OGZcdTY0OGJcdTY0OGFc''@;'; put 'put ''dTY0OGNcdTY0YTNcdTY0OWZcdTY0NjhcdTY0YjFcdTY0OThcdTY1NzZcdTY1N2FcdTY1NzlcdTY1N2JcdTY1YjJcdTY1YjNcdTY2YjVcdTY2YjBcdTY2YTlcdTY2YjJcdTY2YjdcdTY2YWFcdTY2YWZcdTZhMDBcdTZhMDZcdTZhMTdcdTY5ZTVcdTY5ZjhcdTZhMTVcdTY5ZjFcdTY5ZTRcdTZh''@;'; put 'put ''MjBcdTY5ZmZcdTY5ZWNcdTY5ZTJcdTZhMWJcdTZhMWRcdTY5ZmVcdTZhMjdcdTY5ZjJcdTY5ZWVcdTZhMTRcdTY5ZjdcdTY5ZTdcdTZhNDBcdTZhMDhcdTY5ZTZcdTY5ZmJcdTZhMGRcdTY5ZmNcdTY5ZWJcdTZhMDlcdTZhMDRcdTZhMThcdTZhMjVcdTZhMGZcdTY5ZjZcdTZhMjZcdTZhMDdc''@;'; put 'put ''dTY5ZjRcdTZhMTZcdTZiNTFcdTZiYTVcdTZiYTNcdTZiYTJcdTZiYTZcdTZjMDFcdTZjMDBcdTZiZmZcdTZjMDJcdTZmNDFcdTZmMjZcdTZmN2VcdTZmODdcdTZmYzZcdTZmOTIiXSxbImU2NDAiLCJcdTZmOGRcdTZmODlcdTZmOGNcdTZmNjJcdTZmNGZcdTZmODVcdTZmNWFcdTZmOTZcdTZm''@;'; put 'put ''NzZcdTZmNmNcdTZmODJcdTZmNTVcdTZmNzJcdTZmNTJcdTZmNTBcdTZmNTdcdTZmOTRcdTZmOTNcdTZmNWRcdTZmMDBcdTZmNjFcdTZmNmJcdTZmN2RcdTZmNjdcdTZmOTBcdTZmNTNcdTZmOGJcdTZmNjlcdTZmN2ZcdTZmOTVcdTZmNjNcdTZmNzdcdTZmNmFcdTZmN2JcdTcxYjJcdTcxYWZc''@;'; put 'put ''dTcxOWJcdTcxYjBcdTcxYTBcdTcxOWFcdTcxYTlcdTcxYjVcdTcxOWRcdTcxYTVcdTcxOWVcdTcxYTRcdTcxYTFcdTcxYWFcdTcxOWNcdTcxYTdcdTcxYjNcdTcyOThcdTcyOWFcdTczNThcdTczNTJcdTczNWVcdTczNWZcdTczNjBcdTczNWRcdTczNWJcdTczNjFcdTczNWFcdTczNTkiXSxb''@;'; put 'put ''ImU2YTEiLCJcdTczNjJcdTc0ODdcdTc0ODlcdTc0OGFcdTc0ODZcdTc0ODFcdTc0N2RcdTc0ODVcdTc0ODhcdTc0N2NcdTc0NzlcdTc1MDhcdTc1MDdcdTc1N2VcdTc2MjVcdTc2MWVcdTc2MTlcdTc2MWRcdTc2MWNcdTc2MjNcdTc2MWFcdTc2MjhcdTc2MWJcdTc2OWNcdTc2OWRcdTc2OWVc''@;'; put 'put ''dTc2OWJcdTc3OGRcdTc3OGZcdTc3ODlcdTc3ODhcdTc4Y2RcdTc4YmJcdTc4Y2ZcdTc4Y2NcdTc4ZDFcdTc4Y2VcdTc4ZDRcdTc4YzhcdTc4YzNcdTc4YzRcdTc4YzlcdTc5OWFcdTc5YTFcdTc5YTBcdTc5OWNcdTc5YTJcdTc5OWJcdTZiNzZcdTdhMzlcdTdhYjJcdTdhYjRcdTdhYjNcdTdi''@;'; put 'put ''YjdcdTdiY2JcdTdiYmVcdTdiYWNcdTdiY2VcdTdiYWZcdTdiYjlcdTdiY2FcdTdiYjVcdTdjYzVcdTdjYzhcdTdjY2NcdTdjY2JcdTdkZjdcdTdkZGJcdTdkZWFcdTdkZTdcdTdkZDdcdTdkZTFcdTdlMDNcdTdkZmFcdTdkZTZcdTdkZjZcdTdkZjFcdTdkZjBcdTdkZWVcdTdkZGZcdTdmNzZc''@;'; put 'put ''dTdmYWNcdTdmYjBcdTdmYWRcdTdmZWRcdTdmZWJcdTdmZWFcdTdmZWNcdTdmZTZcdTdmZThcdTgwNjRcdTgwNjdcdTgxYTNcdTgxOWYiXSxbImU3NDAiLCJcdTgxOWVcdTgxOTVcdTgxYTJcdTgxOTlcdTgxOTdcdTgyMTZcdTgyNGZcdTgyNTNcdTgyNTJcdTgyNTBcdTgyNGVcdTgyNTFcdTg1''@;'; put 'put ''MjRcdTg1M2JcdTg1MGZcdTg1MDBcdTg1MjlcdTg1MGVcdTg1MDlcdTg1MGRcdTg1MWZcdTg1MGFcdTg1MjdcdTg1MWNcdTg0ZmJcdTg1MmJcdTg0ZmFcdTg1MDhcdTg1MGNcdTg0ZjRcdTg1MmFcdTg0ZjJcdTg1MTVcdTg0ZjdcdTg0ZWJcdTg0ZjNcdTg0ZmNcdTg1MTJcdTg0ZWFcdTg0ZTlc''@;'; put 'put ''dTg1MTZcdTg0ZmVcdTg1MjhcdTg1MWRcdTg1MmVcdTg1MDJcdTg0ZmRcdTg1MWVcdTg0ZjZcdTg1MzFcdTg1MjZcdTg0ZTdcdTg0ZThcdTg0ZjBcdTg0ZWZcdTg0ZjlcdTg1MThcdTg1MjBcdTg1MzBcdTg1MGJcdTg1MTlcdTg1MmZcdTg2NjIiXSxbImU3YTEiLCJcdTg3NTZcdTg3NjNcdTg3''@;'; put 'put ''NjRcdTg3NzdcdTg3ZTFcdTg3NzNcdTg3NThcdTg3NTRcdTg3NWJcdTg3NTJcdTg3NjFcdTg3NWFcdTg3NTFcdTg3NWVcdTg3NmRcdTg3NmFcdTg3NTBcdTg3NGVcdTg3NWZcdTg3NWRcdTg3NmZcdTg3NmNcdTg3N2FcdTg3NmVcdTg3NWNcdTg3NjVcdTg3NGZcdTg3N2JcdTg3NzVcdTg3NjJc''@;'; put 'put ''dTg3NjdcdTg3NjlcdTg4NWFcdTg5MDVcdTg5MGNcdTg5MTRcdTg5MGJcdTg5MTdcdTg5MThcdTg5MTlcdTg5MDZcdTg5MTZcdTg5MTFcdTg5MGVcdTg5MDlcdTg5YTJcdTg5YTRcdTg5YTNcdTg5ZWRcdTg5ZjBcdTg5ZWNcdThhY2ZcdThhYzZcdThhYjhcdThhZDNcdThhZDFcdThhZDRcdThh''@;'; put 'put ''ZDVcdThhYmJcdThhZDdcdThhYmVcdThhYzBcdThhYzVcdThhZDhcdThhYzNcdThhYmFcdThhYmRcdThhZDlcdThjM2VcdThjNGRcdThjOGZcdThjZTVcdThjZGZcdThjZDlcdThjZThcdThjZGFcdThjZGRcdThjZTdcdThkYTBcdThkOWNcdThkYTFcdThkOWJcdThlMjBcdThlMjNcdThlMjVc''@;'; put 'put ''dThlMjRcdThlMmVcdThlMTVcdThlMWJcdThlMTZcdThlMTFcdThlMTlcdThlMjZcdThlMjciXSxbImU4NDAiLCJcdThlMTRcdThlMTJcdThlMThcdThlMTNcdThlMWNcdThlMTdcdThlMWFcdThmMmNcdThmMjRcdThmMThcdThmMWFcdThmMjBcdThmMjNcdThmMTZcdThmMTdcdTkwNzNcdTkw''@;'; put 'put ''NzBcdTkwNmZcdTkwNjdcdTkwNmJcdTkxMmZcdTkxMmJcdTkxMjlcdTkxMmFcdTkxMzJcdTkxMjZcdTkxMmVcdTkxODVcdTkxODZcdTkxOGFcdTkxODFcdTkxODJcdTkxODRcdTkxODBcdTkyZDBcdTkyYzNcdTkyYzRcdTkyYzBcdTkyZDlcdTkyYjZcdTkyY2ZcdTkyZjFcdTkyZGZcdTkyZDhc''@;'; put 'put ''dTkyZTlcdTkyZDdcdTkyZGRcdTkyY2NcdTkyZWZcdTkyYzJcdTkyZThcdTkyY2FcdTkyYzhcdTkyY2VcdTkyZTZcdTkyY2RcdTkyZDVcdTkyYzlcdTkyZTBcdTkyZGVcdTkyZTdcdTkyZDFcdTkyZDMiXSxbImU4YTEiLCJcdTkyYjVcdTkyZTFcdTkyYzZcdTkyYjRcdTk1N2NcdTk1YWNcdTk1''@;'; put 'put ''YWJcdTk1YWVcdTk1YjBcdTk2YTRcdTk2YTJcdTk2ZDNcdTk3MDVcdTk3MDhcdTk3MDJcdTk3NWFcdTk3OGFcdTk3OGVcdTk3ODhcdTk3ZDBcdTk3Y2ZcdTk4MWVcdTk4MWRcdTk4MjZcdTk4MjlcdTk4MjhcdTk4MjBcdTk4MWJcdTk4MjdcdTk4YjJcdTk5MDhcdTk4ZmFcdTk5MTFcdTk5MTRc''@;'; put 'put ''dTk5MTZcdTk5MTdcdTk5MTVcdTk5ZGNcdTk5Y2RcdTk5Y2ZcdTk5ZDNcdTk5ZDRcdTk5Y2VcdTk5YzlcdTk5ZDZcdTk5ZDhcdTk5Y2JcdTk5ZDdcdTk5Y2NcdTlhYjNcdTlhZWNcdTlhZWJcdTlhZjNcdTlhZjJcdTlhZjFcdTliNDZcdTliNDNcdTliNjdcdTliNzRcdTliNzFcdTliNjZcdTli''@;'; put 'put ''NzZcdTliNzVcdTliNzBcdTliNjhcdTliNjRcdTliNmNcdTljZmNcdTljZmFcdTljZmRcdTljZmZcdTljZjdcdTlkMDdcdTlkMDBcdTljZjlcdTljZmJcdTlkMDhcdTlkMDVcdTlkMDRcdTllODNcdTllZDNcdTlmMGZcdTlmMTBcdTUxMWNcdTUxMTNcdTUxMTdcdTUxMWFcdTUxMTFcdTUxZGVc''@;'; put 'put ''dTUzMzRcdTUzZTFcdTU2NzBcdTU2NjBcdTU2NmUiXSxbImU5NDAiLCJcdTU2NzNcdTU2NjZcdTU2NjNcdTU2NmRcdTU2NzJcdTU2NWVcdTU2NzdcdTU3MWNcdTU3MWJcdTU4YzhcdTU4YmRcdTU4YzlcdTU4YmZcdTU4YmFcdTU4YzJcdTU4YmNcdTU4YzZcdTViMTdcdTViMTlcdTViMWJcdTVi''@;'; put 'put ''MjFcdTViMTRcdTViMTNcdTViMTBcdTViMTZcdTViMjhcdTViMWFcdTViMjBcdTViMWVcdTViZWZcdTVkYWNcdTVkYjFcdTVkYTlcdTVkYTdcdTVkYjVcdTVkYjBcdTVkYWVcdTVkYWFcdTVkYThcdTVkYjJcdTVkYWRcdTVkYWZcdTVkYjRcdTVlNjdcdTVlNjhcdTVlNjZcdTVlNmZcdTVlZTlc''@;'; put 'put ''dTVlZTdcdTVlZTZcdTVlZThcdTVlZTVcdTVmNGJcdTVmYmNcdTYxOWRcdTYxYThcdTYxOTZcdTYxYzVcdTYxYjRcdTYxYzZcdTYxYzFcdTYxY2NcdTYxYmEiXSxbImU5YTEiLCJcdTYxYmZcdTYxYjhcdTYxOGNcdTY0ZDdcdTY0ZDZcdTY0ZDBcdTY0Y2ZcdTY0YzlcdTY0YmRcdTY0ODlcdTY0''@;'; put 'put ''YzNcdTY0ZGJcdTY0ZjNcdTY0ZDlcdTY1MzNcdTY1N2ZcdTY1N2NcdTY1YTJcdTY2YzhcdTY2YmVcdTY2YzBcdTY2Y2FcdTY2Y2JcdTY2Y2ZcdTY2YmRcdTY2YmJcdTY2YmFcdTY2Y2NcdTY3MjNcdTZhMzRcdTZhNjZcdTZhNDlcdTZhNjdcdTZhMzJcdTZhNjhcdTZhM2VcdTZhNWRcdTZhNmRc''@;'; put 'put ''dTZhNzZcdTZhNWJcdTZhNTFcdTZhMjhcdTZhNWFcdTZhM2JcdTZhM2ZcdTZhNDFcdTZhNmFcdTZhNjRcdTZhNTBcdTZhNGZcdTZhNTRcdTZhNmZcdTZhNjlcdTZhNjBcdTZhM2NcdTZhNWVcdTZhNTZcdTZhNTVcdTZhNGRcdTZhNGVcdTZhNDZcdTZiNTVcdTZiNTRcdTZiNTZcdTZiYTdcdTZi''@;'; put 'put ''YWFcdTZiYWJcdTZiYzhcdTZiYzdcdTZjMDRcdTZjMDNcdTZjMDZcdTZmYWRcdTZmY2JcdTZmYTNcdTZmYzdcdTZmYmNcdTZmY2VcdTZmYzhcdTZmNWVcdTZmYzRcdTZmYmRcdTZmOWVcdTZmY2FcdTZmYThcdTcwMDRcdTZmYTVcdTZmYWVcdTZmYmFcdTZmYWNcdTZmYWFcdTZmY2ZcdTZmYmZc''@;'; put 'put ''dTZmYjgiXSxbImVhNDAiLCJcdTZmYTJcdTZmYzlcdTZmYWJcdTZmY2RcdTZmYWZcdTZmYjJcdTZmYjBcdTcxYzVcdTcxYzJcdTcxYmZcdTcxYjhcdTcxZDZcdTcxYzBcdTcxYzFcdTcxY2JcdTcxZDRcdTcxY2FcdTcxYzdcdTcxY2ZcdTcxYmRcdTcxZDhcdTcxYmNcdTcxYzZcdTcxZGFcdTcx''@;'; put 'put ''ZGJcdTcyOWRcdTcyOWVcdTczNjlcdTczNjZcdTczNjdcdTczNmNcdTczNjVcdTczNmJcdTczNmFcdTc0N2ZcdTc0OWFcdTc0YTBcdTc0OTRcdTc0OTJcdTc0OTVcdTc0YTFcdTc1MGJcdTc1ODBcdTc2MmZcdTc2MmRcdTc2MzFcdTc2M2RcdTc2MzNcdTc2M2NcdTc2MzVcdTc2MzJcdTc2MzBc''@;'; put 'put ''dTc2YmJcdTc2ZTZcdTc3OWFcdTc3OWRcdTc3YTFcdTc3OWNcdTc3OWJcdTc3YTJcdTc3YTNcdTc3OTVcdTc3OTkiXSxbImVhYTEiLCJcdTc3OTdcdTc4ZGRcdTc4ZTlcdTc4ZTVcdTc4ZWFcdTc4ZGVcdTc4ZTNcdTc4ZGJcdTc4ZTFcdTc4ZTJcdTc4ZWRcdTc4ZGZcdTc4ZTBcdTc5YTRcdTdh''@;'; put 'put ''NDRcdTdhNDhcdTdhNDdcdTdhYjZcdTdhYjhcdTdhYjVcdTdhYjFcdTdhYjdcdTdiZGVcdTdiZTNcdTdiZTdcdTdiZGRcdTdiZDVcdTdiZTVcdTdiZGFcdTdiZThcdTdiZjlcdTdiZDRcdTdiZWFcdTdiZTJcdTdiZGNcdTdiZWJcdTdiZDhcdTdiZGZcdTdjZDJcdTdjZDRcdTdjZDdcdTdjZDBc''@;'; put 'put ''dTdjZDFcdTdlMTJcdTdlMjFcdTdlMTdcdTdlMGNcdTdlMWZcdTdlMjBcdTdlMTNcdTdlMGVcdTdlMWNcdTdlMTVcdTdlMWFcdTdlMjJcdTdlMGJcdTdlMGZcdTdlMTZcdTdlMGRcdTdlMTRcdTdlMjVcdTdlMjRcdTdmNDNcdTdmN2JcdTdmN2NcdTdmN2FcdTdmYjFcdTdmZWZcdTgwMmFcdTgw''@;'; put 'put ''MjlcdTgwNmNcdTgxYjFcdTgxYTZcdTgxYWVcdTgxYjlcdTgxYjVcdTgxYWJcdTgxYjBcdTgxYWNcdTgxYjRcdTgxYjJcdTgxYjdcdTgxYTdcdTgxZjJcdTgyNTVcdTgyNTZcdTgyNTdcdTg1NTZcdTg1NDVcdTg1NmJcdTg1NGRcdTg1NTNcdTg1NjFcdTg1NTgiXSxbImViNDAiLCJcdTg1NDBc''@;'; put 'put ''dTg1NDZcdTg1NjRcdTg1NDFcdTg1NjJcdTg1NDRcdTg1NTFcdTg1NDdcdTg1NjNcdTg1M2VcdTg1NWJcdTg1NzFcdTg1NGVcdTg1NmVcdTg1NzVcdTg1NTVcdTg1NjdcdTg1NjBcdTg1OGNcdTg1NjZcdTg1NWRcdTg1NTRcdTg1NjVcdTg1NmNcdTg2NjNcdTg2NjVcdTg2NjRcdTg3OWJcdTg3''@;'; put 'put ''OGZcdTg3OTdcdTg3OTNcdTg3OTJcdTg3ODhcdTg3ODFcdTg3OTZcdTg3OThcdTg3NzlcdTg3ODdcdTg3YTNcdTg3ODVcdTg3OTBcdTg3OTFcdTg3OWRcdTg3ODRcdTg3OTRcdTg3OWNcdTg3OWFcdTg3ODlcdTg5MWVcdTg5MjZcdTg5MzBcdTg5MmRcdTg5MmVcdTg5MjdcdTg5MzFcdTg5MjJc''@;'; put 'put ''dTg5MjlcdTg5MjNcdTg5MmZcdTg5MmNcdTg5MWZcdTg5ZjFcdThhZTAiXSxbImViYTEiLCJcdThhZTJcdThhZjJcdThhZjRcdThhZjVcdThhZGRcdThiMTRcdThhZTRcdThhZGZcdThhZjBcdThhYzhcdThhZGVcdThhZTFcdThhZThcdThhZmZcdThhZWZcdThhZmJcdThjOTFcdThjOTJcdThj''@;'; put 'put ''OTBcdThjZjVcdThjZWVcdThjZjFcdThjZjBcdThjZjNcdThkNmNcdThkNmVcdThkYTVcdThkYTdcdThlMzNcdThlM2VcdThlMzhcdThlNDBcdThlNDVcdThlMzZcdThlM2NcdThlM2RcdThlNDFcdThlMzBcdThlM2ZcdThlYmRcdThmMzZcdThmMmVcdThmMzVcdThmMzJcdThmMzlcdThmMzdc''@;'; put 'put ''dThmMzRcdTkwNzZcdTkwNzlcdTkwN2JcdTkwODZcdTkwZmFcdTkxMzNcdTkxMzVcdTkxMzZcdTkxOTNcdTkxOTBcdTkxOTFcdTkxOGRcdTkxOGZcdTkzMjdcdTkzMWVcdTkzMDhcdTkzMWZcdTkzMDZcdTkzMGZcdTkzN2FcdTkzMzhcdTkzM2NcdTkzMWJcdTkzMjNcdTkzMTJcdTkzMDFcdTkz''@;'; put 'put ''NDZcdTkzMmRcdTkzMGVcdTkzMGRcdTkyY2JcdTkzMWRcdTkyZmFcdTkzMjVcdTkzMTNcdTkyZjlcdTkyZjdcdTkzMzRcdTkzMDJcdTkzMjRcdTkyZmZcdTkzMjlcdTkzMzlcdTkzMzVcdTkzMmFcdTkzMTRcdTkzMGMiXSxbImVjNDAiLCJcdTkzMGJcdTkyZmVcdTkzMDlcdTkzMDBcdTkyZmJc''@;'; put 'put ''dTkzMTZcdTk1YmNcdTk1Y2RcdTk1YmVcdTk1YjlcdTk1YmFcdTk1YjZcdTk1YmZcdTk1YjVcdTk1YmRcdTk2YTlcdTk2ZDRcdTk3MGJcdTk3MTJcdTk3MTBcdTk3OTlcdTk3OTdcdTk3OTRcdTk3ZjBcdTk3ZjhcdTk4MzVcdTk4MmZcdTk4MzJcdTk5MjRcdTk5MWZcdTk5MjdcdTk5MjlcdTk5''@;'; put 'put ''OWVcdTk5ZWVcdTk5ZWNcdTk5ZTVcdTk5ZTRcdTk5ZjBcdTk5ZTNcdTk5ZWFcdTk5ZTlcdTk5ZTdcdTlhYjlcdTlhYmZcdTlhYjRcdTlhYmJcdTlhZjZcdTlhZmFcdTlhZjlcdTlhZjdcdTliMzNcdTliODBcdTliODVcdTliODdcdTliN2NcdTliN2VcdTliN2JcdTliODJcdTliOTNcdTliOTJc''@;'; put 'put ''dTliOTBcdTliN2FcdTliOTUiXSxbImVjYTEiLCJcdTliN2RcdTliODhcdTlkMjVcdTlkMTdcdTlkMjBcdTlkMWVcdTlkMTRcdTlkMjlcdTlkMWRcdTlkMThcdTlkMjJcdTlkMTBcdTlkMTlcdTlkMWZcdTllODhcdTllODZcdTllODdcdTllYWVcdTllYWRcdTllZDVcdTllZDZcdTllZmFcdTlm''@;'; put 'put ''MTJcdTlmM2RcdTUxMjZcdTUxMjVcdTUxMjJcdTUxMjRcdTUxMjBcdTUxMjlcdTUyZjRcdTU2OTNcdTU2OGNcdTU2OGRcdTU2ODZcdTU2ODRcdTU2ODNcdTU2N2VcdTU2ODJcdTU2N2ZcdTU2ODFcdTU4ZDZcdTU4ZDRcdTU4Y2ZcdTU4ZDJcdTViMmRcdTViMjVcdTViMzJcdTViMjNcdTViMmNc''@;'; put 'put ''dTViMjdcdTViMjZcdTViMmZcdTViMmVcdTViN2JcdTViZjFcdTViZjJcdTVkYjdcdTVlNmNcdTVlNmFcdTVmYmVcdTVmYmJcdTYxYzNcdTYxYjVcdTYxYmNcdTYxZTdcdTYxZTBcdTYxZTVcdTYxZTRcdTYxZThcdTYxZGVcdTY0ZWZcdTY0ZTlcdTY0ZTNcdTY0ZWJcdTY0ZTRcdTY0ZThcdTY1''@;'; put 'put ''ODFcdTY1ODBcdTY1YjZcdTY1ZGFcdTY2ZDJcdTZhOGRcdTZhOTZcdTZhODFcdTZhYTVcdTZhODlcdTZhOWZcdTZhOWJcdTZhYTFcdTZhOWVcdTZhODdcdTZhOTNcdTZhOGUiXSxbImVkNDAiLCJcdTZhOTVcdTZhODNcdTZhYThcdTZhYTRcdTZhOTFcdTZhN2ZcdTZhYTZcdTZhOWFcdTZhODVc''@;'; put 'put ''dTZhOGNcdTZhOTJcdTZiNWJcdTZiYWRcdTZjMDlcdTZmY2NcdTZmYTlcdTZmZjRcdTZmZDRcdTZmZTNcdTZmZGNcdTZmZWRcdTZmZTdcdTZmZTZcdTZmZGVcdTZmZjJcdTZmZGRcdTZmZTJcdTZmZThcdTcxZTFcdTcxZjFcdTcxZThcdTcxZjJcdTcxZTRcdTcxZjBcdTcxZTJcdTczNzNcdTcz''@;'; put 'put ''NmVcdTczNmZcdTc0OTdcdTc0YjJcdTc0YWJcdTc0OTBcdTc0YWFcdTc0YWRcdTc0YjFcdTc0YTVcdTc0YWZcdTc1MTBcdTc1MTFcdTc1MTJcdTc1MGZcdTc1ODRcdTc2NDNcdTc2NDhcdTc2NDlcdTc2NDdcdTc2YTRcdTc2ZTlcdTc3YjVcdTc3YWJcdTc3YjJcdTc3YjdcdTc3YjYiXSxbImVk''@;'; put 'put ''YTEiLCJcdTc3YjRcdTc3YjFcdTc3YThcdTc3ZjBcdTc4ZjNcdTc4ZmRcdTc5MDJcdTc4ZmJcdTc4ZmNcdTc4ZjJcdTc5MDVcdTc4ZjlcdTc4ZmVcdTc5MDRcdTc5YWJcdTc5YThcdTdhNWNcdTdhNWJcdTdhNTZcdTdhNThcdTdhNTRcdTdhNWFcdTdhYmVcdTdhYzBcdTdhYzFcdTdjMDVcdTdj''@;'; put 'put ''MGZcdTdiZjJcdTdjMDBcdTdiZmZcdTdiZmJcdTdjMGVcdTdiZjRcdTdjMGJcdTdiZjNcdTdjMDJcdTdjMDlcdTdjMDNcdTdjMDFcdTdiZjhcdTdiZmRcdTdjMDZcdTdiZjBcdTdiZjFcdTdjMTBcdTdjMGFcdTdjZThcdTdlMmRcdTdlM2NcdTdlNDJcdTdlMzNcdTk4NDhcdTdlMzhcdTdlMmFc''@;'; put 'put ''dTdlNDlcdTdlNDBcdTdlNDdcdTdlMjlcdTdlNGNcdTdlMzBcdTdlM2JcdTdlMzZcdTdlNDRcdTdlM2FcdTdmNDVcdTdmN2ZcdTdmN2VcdTdmN2RcdTdmZjRcdTdmZjJcdTgwMmNcdTgxYmJcdTgxYzRcdTgxY2NcdTgxY2FcdTgxYzVcdTgxYzdcdTgxYmNcdTgxZTlcdTgyNWJcdTgyNWFcdTgy''@;'; put 'put ''NWNcdTg1ODNcdTg1ODBcdTg1OGZcdTg1YTdcdTg1OTVcdTg1YTBcdTg1OGJcdTg1YTNcdTg1N2JcdTg1YTRcdTg1OWFcdTg1OWUiXSxbImVlNDAiLCJcdTg1NzdcdTg1N2NcdTg1ODlcdTg1YTFcdTg1N2FcdTg1NzhcdTg1NTdcdTg1OGVcdTg1OTZcdTg1ODZcdTg1OGRcdTg1OTlcdTg1OWRc''@;'; put 'put ''dTg1ODFcdTg1YTJcdTg1ODJcdTg1ODhcdTg1ODVcdTg1NzlcdTg1NzZcdTg1OThcdTg1OTBcdTg1OWZcdTg2NjhcdTg3YmVcdTg3YWFcdTg3YWRcdTg3YzVcdTg3YjBcdTg3YWNcdTg3YjlcdTg3YjVcdTg3YmNcdTg3YWVcdTg3YzlcdTg3YzNcdTg3YzJcdTg3Y2NcdTg3YjdcdTg3YWZcdTg3''@;'; put 'put ''YzRcdTg3Y2FcdTg3YjRcdTg3YjZcdTg3YmZcdTg3YjhcdTg3YmRcdTg3ZGVcdTg3YjJcdTg5MzVcdTg5MzNcdTg5M2NcdTg5M2VcdTg5NDFcdTg5NTJcdTg5MzdcdTg5NDJcdTg5YWRcdTg5YWZcdTg5YWVcdTg5ZjJcdTg5ZjNcdThiMWUiXSxbImVlYTEiLCJcdThiMThcdThiMTZcdThiMTFc''@;'; put 'put ''dThiMDVcdThiMGJcdThiMjJcdThiMGZcdThiMTJcdThiMTVcdThiMDdcdThiMGRcdThiMDhcdThiMDZcdThiMWNcdThiMTNcdThiMWFcdThjNGZcdThjNzBcdThjNzJcdThjNzFcdThjNmZcdThjOTVcdThjOTRcdThjZjlcdThkNmZcdThlNGVcdThlNGRcdThlNTNcdThlNTBcdThlNGNcdThl''@;'; put 'put ''NDdcdThmNDNcdThmNDBcdTkwODVcdTkwN2VcdTkxMzhcdTkxOWFcdTkxYTJcdTkxOWJcdTkxOTlcdTkxOWZcdTkxYTFcdTkxOWRcdTkxYTBcdTkzYTFcdTkzODNcdTkzYWZcdTkzNjRcdTkzNTZcdTkzNDdcdTkzN2NcdTkzNThcdTkzNWNcdTkzNzZcdTkzNDlcdTkzNTBcdTkzNTFcdTkzNjBc''@;'; put 'put ''dTkzNmRcdTkzOGZcdTkzNGNcdTkzNmFcdTkzNzlcdTkzNTdcdTkzNTVcdTkzNTJcdTkzNGZcdTkzNzFcdTkzNzdcdTkzN2JcdTkzNjFcdTkzNWVcdTkzNjNcdTkzNjdcdTkzODBcdTkzNGVcdTkzNTlcdTk1YzdcdTk1YzBcdTk1YzlcdTk1YzNcdTk1YzVcdTk1YjdcdTk2YWVcdTk2YjBcdTk2''@;'; put 'put ''YWNcdTk3MjBcdTk3MWZcdTk3MThcdTk3MWRcdTk3MTlcdTk3OWFcdTk3YTFcdTk3OWMiXSxbImVmNDAiLCJcdTk3OWVcdTk3OWRcdTk3ZDVcdTk3ZDRcdTk3ZjFcdTk4NDFcdTk4NDRcdTk4NGFcdTk4NDlcdTk4NDVcdTk4NDNcdTk5MjVcdTk5MmJcdTk5MmNcdTk5MmFcdTk5MzNcdTk5MzJc''@;'; put 'put ''dTk5MmZcdTk5MmRcdTk5MzFcdTk5MzBcdTk5OThcdTk5YTNcdTk5YTFcdTlhMDJcdTk5ZmFcdTk5ZjRcdTk5ZjdcdTk5ZjlcdTk5ZjhcdTk5ZjZcdTk5ZmJcdTk5ZmRcdTk5ZmVcdTk5ZmNcdTlhMDNcdTlhYmVcdTlhZmVcdTlhZmRcdTliMDFcdTlhZmNcdTliNDhcdTliOWFcdTliYThcdTli''@;'; put 'put ''OWVcdTliOWJcdTliYTZcdTliYTFcdTliYTVcdTliYTRcdTliODZcdTliYTJcdTliYTBcdTliYWZcdTlkMzNcdTlkNDFcdTlkNjdcdTlkMzZcdTlkMmVcdTlkMmZcdTlkMzFcdTlkMzhcdTlkMzAiXSxbImVmYTEiLCJcdTlkNDVcdTlkNDJcdTlkNDNcdTlkM2VcdTlkMzdcdTlkNDBcdTlkM2Rc''@;'; put 'put ''dTdmZjVcdTlkMmRcdTllOGFcdTllODlcdTllOGRcdTllYjBcdTllYzhcdTllZGFcdTllZmJcdTllZmZcdTlmMjRcdTlmMjNcdTlmMjJcdTlmNTRcdTlmYTBcdTUxMzFcdTUxMmRcdTUxMmVcdTU2OThcdTU2OWNcdTU2OTdcdTU2OWFcdTU2OWRcdTU2OTlcdTU5NzBcdTViM2NcdTVjNjlcdTVj''@;'; put 'put ''NmFcdTVkYzBcdTVlNmRcdTVlNmVcdTYxZDhcdTYxZGZcdTYxZWRcdTYxZWVcdTYxZjFcdTYxZWFcdTYxZjBcdTYxZWJcdTYxZDZcdTYxZTlcdTY0ZmZcdTY1MDRcdTY0ZmRcdTY0ZjhcdTY1MDFcdTY1MDNcdTY0ZmNcdTY1OTRcdTY1ZGJcdTY2ZGFcdTY2ZGJcdTY2ZDhcdTZhYzVcdTZhYjlc''@;'; put 'put ''dTZhYmRcdTZhZTFcdTZhYzZcdTZhYmFcdTZhYjZcdTZhYjdcdTZhYzdcdTZhYjRcdTZhYWRcdTZiNWVcdTZiYzlcdTZjMGJcdTcwMDdcdTcwMGNcdTcwMGRcdTcwMDFcdTcwMDVcdTcwMTRcdTcwMGVcdTZmZmZcdTcwMDBcdTZmZmJcdTcwMjZcdTZmZmNcdTZmZjdcdTcwMGFcdTcyMDFcdTcx''@;'; put 'put ''ZmZcdTcxZjlcdTcyMDNcdTcxZmRcdTczNzYiXSxbImYwNDAiLCJcdTc0YjhcdTc0YzBcdTc0YjVcdTc0YzFcdTc0YmVcdTc0YjZcdTc0YmJcdTc0YzJcdTc1MTRcdTc1MTNcdTc2NWNcdTc2NjRcdTc2NTlcdTc2NTBcdTc2NTNcdTc2NTdcdTc2NWFcdTc2YTZcdTc2YmRcdTc2ZWNcdTc3YzJc''@;'; put 'put ''dTc3YmFcdTc4ZmZcdTc5MGNcdTc5MTNcdTc5MTRcdTc5MDlcdTc5MTBcdTc5MTJcdTc5MTFcdTc5YWRcdTc5YWNcdTdhNWZcdTdjMWNcdTdjMjlcdTdjMTlcdTdjMjBcdTdjMWZcdTdjMmRcdTdjMWRcdTdjMjZcdTdjMjhcdTdjMjJcdTdjMjVcdTdjMzBcdTdlNWNcdTdlNTBcdTdlNTZcdTdl''@;'; put 'put ''NjNcdTdlNThcdTdlNjJcdTdlNWZcdTdlNTFcdTdlNjBcdTdlNTdcdTdlNTNcdTdmYjVcdTdmYjNcdTdmZjdcdTdmZjhcdTgwNzVcdTgxZDFcdTgxZDIiXSxbImYwYTEiLCJcdTgxZDBcdTgyNWZcdTgyNWVcdTg1YjRcdTg1YzZcdTg1YzBcdTg1YzNcdTg1YzJcdTg1YjNcdTg1YjVcdTg1YmRc''@;'; put 'put ''dTg1YzdcdTg1YzRcdTg1YmZcdTg1Y2JcdTg1Y2VcdTg1YzhcdTg1YzVcdTg1YjFcdTg1YjZcdTg1ZDJcdTg2MjRcdTg1YjhcdTg1YjdcdTg1YmVcdTg2NjlcdTg3ZTdcdTg3ZTZcdTg3ZTJcdTg3ZGJcdTg3ZWJcdTg3ZWFcdTg3ZTVcdTg3ZGZcdTg3ZjNcdTg3ZTRcdTg3ZDRcdTg3ZGNcdTg3''@;'; put 'put ''ZDNcdTg3ZWRcdTg3ZDhcdTg3ZTNcdTg3YTRcdTg3ZDdcdTg3ZDlcdTg4MDFcdTg3ZjRcdTg3ZThcdTg3ZGRcdTg5NTNcdTg5NGJcdTg5NGZcdTg5NGNcdTg5NDZcdTg5NTBcdTg5NTFcdTg5NDlcdThiMmFcdThiMjdcdThiMjNcdThiMzNcdThiMzBcdThiMzVcdThiNDdcdThiMmZcdThiM2Nc''@;'; put 'put ''dThiM2VcdThiMzFcdThiMjVcdThiMzdcdThiMjZcdThiMzZcdThiMmVcdThiMjRcdThiM2JcdThiM2RcdThiM2FcdThjNDJcdThjNzVcdThjOTlcdThjOThcdThjOTdcdThjZmVcdThkMDRcdThkMDJcdThkMDBcdThlNWNcdThlNjJcdThlNjBcdThlNTdcdThlNTZcdThlNWVcdThlNjVcdThl''@;'; put 'put ''NjciXSxbImYxNDAiLCJcdThlNWJcdThlNWFcdThlNjFcdThlNWRcdThlNjlcdThlNTRcdThmNDZcdThmNDdcdThmNDhcdThmNGJcdTkxMjhcdTkxM2FcdTkxM2JcdTkxM2VcdTkxYThcdTkxYTVcdTkxYTdcdTkxYWZcdTkxYWFcdTkzYjVcdTkzOGNcdTkzOTJcdTkzYjdcdTkzOWJcdTkzOWRc''@;'; put 'put ''dTkzODlcdTkzYTdcdTkzOGVcdTkzYWFcdTkzOWVcdTkzYTZcdTkzOTVcdTkzODhcdTkzOTlcdTkzOWZcdTkzOGRcdTkzYjFcdTkzOTFcdTkzYjJcdTkzYTRcdTkzYThcdTkzYjRcdTkzYTNcdTkzYTVcdTk1ZDJcdTk1ZDNcdTk1ZDFcdTk2YjNcdTk2ZDdcdTk2ZGFcdTVkYzJcdTk2ZGZcdTk2''@;'; put 'put ''ZDhcdTk2ZGRcdTk3MjNcdTk3MjJcdTk3MjVcdTk3YWNcdTk3YWVcdTk3YThcdTk3YWJcdTk3YTRcdTk3YWEiXSxbImYxYTEiLCJcdTk3YTJcdTk3YTVcdTk3ZDdcdTk3ZDlcdTk3ZDZcdTk3ZDhcdTk3ZmFcdTk4NTBcdTk4NTFcdTk4NTJcdTk4YjhcdTk5NDFcdTk5M2NcdTk5M2FcdTlhMGZc''@;'; put 'put ''dTlhMGJcdTlhMDlcdTlhMGRcdTlhMDRcdTlhMTFcdTlhMGFcdTlhMDVcdTlhMDdcdTlhMDZcdTlhYzBcdTlhZGNcdTliMDhcdTliMDRcdTliMDVcdTliMjlcdTliMzVcdTliNGFcdTliNGNcdTliNGJcdTliYzdcdTliYzZcdTliYzNcdTliYmZcdTliYzFcdTliYjVcdTliYjhcdTliZDNcdTli''@;'; put 'put ''YjZcdTliYzRcdTliYjlcdTliYmRcdTlkNWNcdTlkNTNcdTlkNGZcdTlkNGFcdTlkNWJcdTlkNGJcdTlkNTlcdTlkNTZcdTlkNGNcdTlkNTdcdTlkNTJcdTlkNTRcdTlkNWZcdTlkNThcdTlkNWFcdTllOGVcdTllOGNcdTllZGZcdTlmMDFcdTlmMDBcdTlmMTZcdTlmMjVcdTlmMmJcdTlmMmFc''@;'; put 'put ''dTlmMjlcdTlmMjhcdTlmNGNcdTlmNTVcdTUxMzRcdTUxMzVcdTUyOTZcdTUyZjdcdTUzYjRcdTU2YWJcdTU2YWRcdTU2YTZcdTU2YTdcdTU2YWFcdTU2YWNcdTU4ZGFcdTU4ZGRcdTU4ZGJcdTU5MTJcdTViM2RcdTViM2VcdTViM2ZcdTVkYzNcdTVlNzAiXSxbImYyNDAiLCJcdTVmYmZcdTYx''@;'; put 'put ''ZmJcdTY1MDdcdTY1MTBcdTY1MGRcdTY1MDlcdTY1MGNcdTY1MGVcdTY1ODRcdTY1ZGVcdTY1ZGRcdTY2ZGVcdTZhZTdcdTZhZTBcdTZhY2NcdTZhZDFcdTZhZDlcdTZhY2JcdTZhZGZcdTZhZGNcdTZhZDBcdTZhZWJcdTZhY2ZcdTZhY2RcdTZhZGVcdTZiNjBcdTZiYjBcdTZjMGNcdTcwMTlc''@;'; put 'put ''dTcwMjdcdTcwMjBcdTcwMTZcdTcwMmJcdTcwMjFcdTcwMjJcdTcwMjNcdTcwMjlcdTcwMTdcdTcwMjRcdTcwMWNcdTcwMmFcdTcyMGNcdTcyMGFcdTcyMDdcdTcyMDJcdTcyMDVcdTcyYTVcdTcyYTZcdTcyYTRcdTcyYTNcdTcyYTFcdTc0Y2JcdTc0YzVcdTc0YjdcdTc0YzNcdTc1MTZcdTc2''@;'; put 'put ''NjBcdTc3YzlcdTc3Y2FcdTc3YzRcdTc3ZjFcdTc5MWRcdTc5MWIiXSxbImYyYTEiLCJcdTc5MjFcdTc5MWNcdTc5MTdcdTc5MWVcdTc5YjBcdTdhNjdcdTdhNjhcdTdjMzNcdTdjM2NcdTdjMzlcdTdjMmNcdTdjM2JcdTdjZWNcdTdjZWFcdTdlNzZcdTdlNzVcdTdlNzhcdTdlNzBcdTdlNzdc''@;'; put 'put ''dTdlNmZcdTdlN2FcdTdlNzJcdTdlNzRcdTdlNjhcdTdmNGJcdTdmNGFcdTdmODNcdTdmODZcdTdmYjdcdTdmZmRcdTdmZmVcdTgwNzhcdTgxZDdcdTgxZDVcdTgyNjRcdTgyNjFcdTgyNjNcdTg1ZWJcdTg1ZjFcdTg1ZWRcdTg1ZDlcdTg1ZTFcdTg1ZThcdTg1ZGFcdTg1ZDdcdTg1ZWNcdTg1''@;'; put 'put ''ZjJcdTg1ZjhcdTg1ZDhcdTg1ZGZcdTg1ZTNcdTg1ZGNcdTg1ZDFcdTg1ZjBcdTg1ZTZcdTg1ZWZcdTg1ZGVcdTg1ZTJcdTg4MDBcdTg3ZmFcdTg4MDNcdTg3ZjZcdTg3ZjdcdTg4MDlcdTg4MGNcdTg4MGJcdTg4MDZcdTg3ZmNcdTg4MDhcdTg3ZmZcdTg4MGFcdTg4MDJcdTg5NjJcdTg5NWFc''@;'; put 'put ''dTg5NWJcdTg5NTdcdTg5NjFcdTg5NWNcdTg5NThcdTg5NWRcdTg5NTlcdTg5ODhcdTg5YjdcdTg5YjZcdTg5ZjZcdThiNTBcdThiNDhcdThiNGFcdThiNDBcdThiNTNcdThiNTZcdThiNTRcdThiNGJcdThiNTUiXSxbImYzNDAiLCJcdThiNTFcdThiNDJcdThiNTJcdThiNTdcdThjNDNcdThj''@;'; put 'put ''NzdcdThjNzZcdThjOWFcdThkMDZcdThkMDdcdThkMDlcdThkYWNcdThkYWFcdThkYWRcdThkYWJcdThlNmRcdThlNzhcdThlNzNcdThlNmFcdThlNmZcdThlN2JcdThlYzJcdThmNTJcdThmNTFcdThmNGZcdThmNTBcdThmNTNcdThmYjRcdTkxNDBcdTkxM2ZcdTkxYjBcdTkxYWRcdTkzZGVc''@;'; put 'put ''dTkzYzdcdTkzY2ZcdTkzYzJcdTkzZGFcdTkzZDBcdTkzZjlcdTkzZWNcdTkzY2NcdTkzZDlcdTkzYTlcdTkzZTZcdTkzY2FcdTkzZDRcdTkzZWVcdTkzZTNcdTkzZDVcdTkzYzRcdTkzY2VcdTkzYzBcdTkzZDJcdTkzZTdcdTk1N2RcdTk1ZGFcdTk1ZGJcdTk2ZTFcdTk3MjlcdTk3MmJcdTk3''@;'; put 'put ''MmNcdTk3MjhcdTk3MjYiXSxbImYzYTEiLCJcdTk3YjNcdTk3YjdcdTk3YjZcdTk3ZGRcdTk3ZGVcdTk3ZGZcdTk4NWNcdTk4NTlcdTk4NWRcdTk4NTdcdTk4YmZcdTk4YmRcdTk4YmJcdTk4YmVcdTk5NDhcdTk5NDdcdTk5NDNcdTk5YTZcdTk5YTdcdTlhMWFcdTlhMTVcdTlhMjVcdTlhMWRc''@;'; put 'put ''dTlhMjRcdTlhMWJcdTlhMjJcdTlhMjBcdTlhMjdcdTlhMjNcdTlhMWVcdTlhMWNcdTlhMTRcdTlhYzJcdTliMGJcdTliMGFcdTliMGVcdTliMGNcdTliMzdcdTliZWFcdTliZWJcdTliZTBcdTliZGVcdTliZTRcdTliZTZcdTliZTJcdTliZjBcdTliZDRcdTliZDdcdTliZWNcdTliZGNcdTli''@;'; put 'put ''ZDlcdTliZTVcdTliZDVcdTliZTFcdTliZGFcdTlkNzdcdTlkODFcdTlkOGFcdTlkODRcdTlkODhcdTlkNzFcdTlkODBcdTlkNzhcdTlkODZcdTlkOGJcdTlkOGNcdTlkN2RcdTlkNmJcdTlkNzRcdTlkNzVcdTlkNzBcdTlkNjlcdTlkODVcdTlkNzNcdTlkN2JcdTlkODJcdTlkNmZcdTlkNzlc''@;'; put 'put ''dTlkN2ZcdTlkODdcdTlkNjhcdTllOTRcdTllOTFcdTllYzBcdTllZmNcdTlmMmRcdTlmNDBcdTlmNDFcdTlmNGRcdTlmNTZcdTlmNTdcdTlmNThcdTUzMzdcdTU2YjIiXSxbImY0NDAiLCJcdTU2YjVcdTU2YjNcdTU4ZTNcdTViNDVcdTVkYzZcdTVkYzdcdTVlZWVcdTVlZWZcdTVmYzBcdTVm''@;'; put 'put ''YzFcdTYxZjlcdTY1MTdcdTY1MTZcdTY1MTVcdTY1MTNcdTY1ZGZcdTY2ZThcdTY2ZTNcdTY2ZTRcdTZhZjNcdTZhZjBcdTZhZWFcdTZhZThcdTZhZjlcdTZhZjFcdTZhZWVcdTZhZWZcdTcwM2NcdTcwMzVcdTcwMmZcdTcwMzdcdTcwMzRcdTcwMzFcdTcwNDJcdTcwMzhcdTcwM2ZcdTcwM2Fc''@;'; put 'put ''dTcwMzlcdTcwNDBcdTcwM2JcdTcwMzNcdTcwNDFcdTcyMTNcdTcyMTRcdTcyYThcdTczN2RcdTczN2NcdTc0YmFcdTc2YWJcdTc2YWFcdTc2YmVcdTc2ZWRcdTc3Y2NcdTc3Y2VcdTc3Y2ZcdTc3Y2RcdTc3ZjJcdTc5MjVcdTc5MjNcdTc5MjdcdTc5MjhcdTc5MjRcdTc5MjkiXSxbImY0YTEi''@;'; put 'put ''LCJcdTc5YjJcdTdhNmVcdTdhNmNcdTdhNmRcdTdhZjdcdTdjNDlcdTdjNDhcdTdjNGFcdTdjNDdcdTdjNDVcdTdjZWVcdTdlN2JcdTdlN2VcdTdlODFcdTdlODBcdTdmYmFcdTdmZmZcdTgwNzlcdTgxZGJcdTgxZDlcdTgyMGJcdTgyNjhcdTgyNjlcdTg2MjJcdTg1ZmZcdTg2MDFcdTg1ZmVc''@;'; put 'put ''dTg2MWJcdTg2MDBcdTg1ZjZcdTg2MDRcdTg2MDlcdTg2MDVcdTg2MGNcdTg1ZmRcdTg4MTlcdTg4MTBcdTg4MTFcdTg4MTdcdTg4MTNcdTg4MTZcdTg5NjNcdTg5NjZcdTg5YjlcdTg5ZjdcdThiNjBcdThiNmFcdThiNWRcdThiNjhcdThiNjNcdThiNjVcdThiNjdcdThiNmRcdThkYWVcdThl''@;'; put 'put ''ODZcdThlODhcdThlODRcdThmNTlcdThmNTZcdThmNTdcdThmNTVcdThmNThcdThmNWFcdTkwOGRcdTkxNDNcdTkxNDFcdTkxYjdcdTkxYjVcdTkxYjJcdTkxYjNcdTk0MGJcdTk0MTNcdTkzZmJcdTk0MjBcdTk0MGZcdTk0MTRcdTkzZmVcdTk0MTVcdTk0MTBcdTk0MjhcdTk0MTlcdTk0MGRc''@;'; put 'put ''dTkzZjVcdTk0MDBcdTkzZjdcdTk0MDdcdTk0MGVcdTk0MTZcdTk0MTJcdTkzZmFcdTk0MDlcdTkzZjhcdTk0MGFcdTkzZmYiXSxbImY1NDAiLCJcdTkzZmNcdTk0MGNcdTkzZjZcdTk0MTFcdTk0MDZcdTk1ZGVcdTk1ZTBcdTk1ZGZcdTk3MmVcdTk3MmZcdTk3YjlcdTk3YmJcdTk3ZmRcdTk3''@;'; put 'put ''ZmVcdTk4NjBcdTk4NjJcdTk4NjNcdTk4NWZcdTk4YzFcdTk4YzJcdTk5NTBcdTk5NGVcdTk5NTlcdTk5NGNcdTk5NGJcdTk5NTNcdTlhMzJcdTlhMzRcdTlhMzFcdTlhMmNcdTlhMmFcdTlhMzZcdTlhMjlcdTlhMmVcdTlhMzhcdTlhMmRcdTlhYzdcdTlhY2FcdTlhYzZcdTliMTBcdTliMTJc''@;'; put 'put ''dTliMTFcdTljMGJcdTljMDhcdTliZjdcdTljMDVcdTljMTJcdTliZjhcdTljNDBcdTljMDdcdTljMGVcdTljMDZcdTljMTdcdTljMTRcdTljMDlcdTlkOWZcdTlkOTlcdTlkYTRcdTlkOWRcdTlkOTJcdTlkOThcdTlkOTBcdTlkOWIiXSxbImY1YTEiLCJcdTlkYTBcdTlkOTRcdTlkOWNcdTlk''@;'; put 'put ''YWFcdTlkOTdcdTlkYTFcdTlkOWFcdTlkYTJcdTlkYThcdTlkOWVcdTlkYTNcdTlkYmZcdTlkYTlcdTlkOTZcdTlkYTZcdTlkYTdcdTllOTlcdTllOWJcdTllOWFcdTllZTVcdTllZTRcdTllZTdcdTllZTZcdTlmMzBcdTlmMmVcdTlmNWJcdTlmNjBcdTlmNWVcdTlmNWRcdTlmNTlcdTlmOTFc''@;'; put 'put ''dTUxM2FcdTUxMzlcdTUyOThcdTUyOTdcdTU2YzNcdTU2YmRcdTU2YmVcdTViNDhcdTViNDdcdTVkY2JcdTVkY2ZcdTVlZjFcdTYxZmRcdTY1MWJcdTZiMDJcdTZhZmNcdTZiMDNcdTZhZjhcdTZiMDBcdTcwNDNcdTcwNDRcdTcwNGFcdTcwNDhcdTcwNDlcdTcwNDVcdTcwNDZcdTcyMWRcdTcy''@;'; put 'put ''MWFcdTcyMTlcdTczN2VcdTc1MTdcdTc2NmFcdTc3ZDBcdTc5MmRcdTc5MzFcdTc5MmZcdTdjNTRcdTdjNTNcdTdjZjJcdTdlOGFcdTdlODdcdTdlODhcdTdlOGJcdTdlODZcdTdlOGRcdTdmNGRcdTdmYmJcdTgwMzBcdTgxZGRcdTg2MThcdTg2MmFcdTg2MjZcdTg2MWZcdTg2MjNcdTg2MWNc''@;'; put 'put ''dTg2MTlcdTg2MjdcdTg2MmVcdTg2MjFcdTg2MjBcdTg2MjlcdTg2MWVcdTg2MjUiXSxbImY2NDAiLCJcdTg4MjlcdTg4MWRcdTg4MWJcdTg4MjBcdTg4MjRcdTg4MWNcdTg4MmJcdTg4NGFcdTg5NmRcdTg5NjlcdTg5NmVcdTg5NmJcdTg5ZmFcdThiNzlcdThiNzhcdThiNDVcdThiN2FcdThi''@;'; put 'put ''N2JcdThkMTBcdThkMTRcdThkYWZcdThlOGVcdThlOGNcdThmNWVcdThmNWJcdThmNWRcdTkxNDZcdTkxNDRcdTkxNDVcdTkxYjlcdTk0M2ZcdTk0M2JcdTk0MzZcdTk0MjlcdTk0M2RcdTk0M2NcdTk0MzBcdTk0MzlcdTk0MmFcdTk0MzdcdTk0MmNcdTk0NDBcdTk0MzFcdTk1ZTVcdTk1ZTRc''@;'; put 'put ''dTk1ZTNcdTk3MzVcdTk3M2FcdTk3YmZcdTk3ZTFcdTk4NjRcdTk4YzlcdTk4YzZcdTk4YzBcdTk5NThcdTk5NTZcdTlhMzlcdTlhM2RcdTlhNDZcdTlhNDRcdTlhNDJcdTlhNDFcdTlhM2EiXSxbImY2YTEiLCJcdTlhM2ZcdTlhY2RcdTliMTVcdTliMTdcdTliMThcdTliMTZcdTliM2FcdTli''@;'; put 'put ''NTJcdTljMmJcdTljMWRcdTljMWNcdTljMmNcdTljMjNcdTljMjhcdTljMjlcdTljMjRcdTljMjFcdTlkYjdcdTlkYjZcdTlkYmNcdTlkYzFcdTlkYzdcdTlkY2FcdTlkY2ZcdTlkYmVcdTlkYzVcdTlkYzNcdTlkYmJcdTlkYjVcdTlkY2VcdTlkYjlcdTlkYmFcdTlkYWNcdTlkYzhcdTlkYjFc''@;'; put 'put ''dTlkYWRcdTlkY2NcdTlkYjNcdTlkY2RcdTlkYjJcdTllN2FcdTllOWNcdTllZWJcdTllZWVcdTllZWRcdTlmMWJcdTlmMThcdTlmMWFcdTlmMzFcdTlmNGVcdTlmNjVcdTlmNjRcdTlmOTJcdTRlYjlcdTU2YzZcdTU2YzVcdTU2Y2JcdTU5NzFcdTViNGJcdTViNGNcdTVkZDVcdTVkZDFcdTVl''@;'; put 'put ''ZjJcdTY1MjFcdTY1MjBcdTY1MjZcdTY1MjJcdTZiMGJcdTZiMDhcdTZiMDlcdTZjMGRcdTcwNTVcdTcwNTZcdTcwNTdcdTcwNTJcdTcyMWVcdTcyMWZcdTcyYTlcdTczN2ZcdTc0ZDhcdTc0ZDVcdTc0ZDlcdTc0ZDdcdTc2NmRcdTc2YWRcdTc5MzVcdTc5YjRcdTdhNzBcdTdhNzFcdTdjNTdc''@;'; put 'put ''dTdjNWNcdTdjNTlcdTdjNWJcdTdjNWEiXSxbImY3NDAiLCJcdTdjZjRcdTdjZjFcdTdlOTFcdTdmNGZcdTdmODdcdTgxZGVcdTgyNmJcdTg2MzRcdTg2MzVcdTg2MzNcdTg2MmNcdTg2MzJcdTg2MzZcdTg4MmNcdTg4MjhcdTg4MjZcdTg4MmFcdTg4MjVcdTg5NzFcdTg5YmZcdTg5YmVcdTg5''@;'; put 'put ''ZmJcdThiN2VcdThiODRcdThiODJcdThiODZcdThiODVcdThiN2ZcdThkMTVcdThlOTVcdThlOTRcdThlOWFcdThlOTJcdThlOTBcdThlOTZcdThlOTdcdThmNjBcdThmNjJcdTkxNDdcdTk0NGNcdTk0NTBcdTk0NGFcdTk0NGJcdTk0NGZcdTk0NDdcdTk0NDVcdTk0NDhcdTk0NDlcdTk0NDZc''@;'; put 'put ''dTk3M2ZcdTk3ZTNcdTk4NmFcdTk4NjlcdTk4Y2JcdTk5NTRcdTk5NWJcdTlhNGVcdTlhNTNcdTlhNTRcdTlhNGNcdTlhNGZcdTlhNDhcdTlhNGEiXSxbImY3YTEiLCJcdTlhNDlcdTlhNTJcdTlhNTBcdTlhZDBcdTliMTlcdTliMmJcdTliM2JcdTliNTZcdTliNTVcdTljNDZcdTljNDhcdTlj''@;'; put 'put ''M2ZcdTljNDRcdTljMzlcdTljMzNcdTljNDFcdTljM2NcdTljMzdcdTljMzRcdTljMzJcdTljM2RcdTljMzZcdTlkZGJcdTlkZDJcdTlkZGVcdTlkZGFcdTlkY2JcdTlkZDBcdTlkZGNcdTlkZDFcdTlkZGZcdTlkZTlcdTlkZDlcdTlkZDhcdTlkZDZcdTlkZjVcdTlkZDVcdTlkZGRcdTllYjZc''@;'; put 'put ''dTllZjBcdTlmMzVcdTlmMzNcdTlmMzJcdTlmNDJcdTlmNmJcdTlmOTVcdTlmYTJcdTUxM2RcdTUyOTlcdTU4ZThcdTU4ZTdcdTU5NzJcdTViNGRcdTVkZDhcdTg4MmZcdTVmNGZcdTYyMDFcdTYyMDNcdTYyMDRcdTY1MjlcdTY1MjVcdTY1OTZcdTY2ZWJcdTZiMTFcdTZiMTJcdTZiMGZcdTZi''@;'; put 'put ''Y2FcdTcwNWJcdTcwNWFcdTcyMjJcdTczODJcdTczODFcdTczODNcdTc2NzBcdTc3ZDRcdTdjNjdcdTdjNjZcdTdlOTVcdTgyNmNcdTg2M2FcdTg2NDBcdTg2MzlcdTg2M2NcdTg2MzFcdTg2M2JcdTg2M2VcdTg4MzBcdTg4MzJcdTg4MmVcdTg4MzNcdTg5NzZcdTg5NzRcdTg5NzNcdTg5ZmUi''@;'; put 'put ''XSxbImY4NDAiLCJcdThiOGNcdThiOGVcdThiOGJcdThiODhcdThjNDVcdThkMTlcdThlOThcdThmNjRcdThmNjNcdTkxYmNcdTk0NjJcdTk0NTVcdTk0NWRcdTk0NTdcdTk0NWVcdTk3YzRcdTk3YzVcdTk4MDBcdTlhNTZcdTlhNTlcdTliMWVcdTliMWZcdTliMjBcdTljNTJcdTljNThcdTlj''@;'; put 'put ''NTBcdTljNGFcdTljNGRcdTljNGJcdTljNTVcdTljNTlcdTljNGNcdTljNGVcdTlkZmJcdTlkZjdcdTlkZWZcdTlkZTNcdTlkZWJcdTlkZjhcdTlkZTRcdTlkZjZcdTlkZTFcdTlkZWVcdTlkZTZcdTlkZjJcdTlkZjBcdTlkZTJcdTlkZWNcdTlkZjRcdTlkZjNcdTlkZThcdTlkZWRcdTllYzJc''@;'; put 'put ''dTllZDBcdTllZjJcdTllZjNcdTlmMDZcdTlmMWNcdTlmMzhcdTlmMzdcdTlmMzZcdTlmNDNcdTlmNGYiXSxbImY4YTEiLCJcdTlmNzFcdTlmNzBcdTlmNmVcdTlmNmZcdTU2ZDNcdTU2Y2RcdTViNGVcdTVjNmRcdTY1MmRcdTY2ZWRcdTY2ZWVcdTZiMTNcdTcwNWZcdTcwNjFcdTcwNWRcdTcw''@;'; put 'put ''NjBcdTcyMjNcdTc0ZGJcdTc0ZTVcdTc3ZDVcdTc5MzhcdTc5YjdcdTc5YjZcdTdjNmFcdTdlOTdcdTdmODlcdTgyNmRcdTg2NDNcdTg4MzhcdTg4MzdcdTg4MzVcdTg4NGJcdThiOTRcdThiOTVcdThlOWVcdThlOWZcdThlYTBcdThlOWRcdTkxYmVcdTkxYmRcdTkxYzJcdTk0NmJcdTk0Njhc''@;'; put 'put ''dTk0NjlcdTk2ZTVcdTk3NDZcdTk3NDNcdTk3NDdcdTk3YzdcdTk3ZTVcdTlhNWVcdTlhZDVcdTliNTlcdTljNjNcdTljNjdcdTljNjZcdTljNjJcdTljNWVcdTljNjBcdTllMDJcdTlkZmVcdTllMDdcdTllMDNcdTllMDZcdTllMDVcdTllMDBcdTllMDFcdTllMDlcdTlkZmZcdTlkZmRcdTll''@;'; put 'put ''MDRcdTllYTBcdTlmMWVcdTlmNDZcdTlmNzRcdTlmNzVcdTlmNzZcdTU2ZDRcdTY1MmVcdTY1YjhcdTZiMThcdTZiMTlcdTZiMTdcdTZiMWFcdTcwNjJcdTcyMjZcdTcyYWFcdTc3ZDhcdTc3ZDlcdTc5MzlcdTdjNjlcdTdjNmJcdTdjZjZcdTdlOWEiXSxbImY5NDAiLCJcdTdlOThcdTdlOWJc''@;'; put 'put ''dTdlOTlcdTgxZTBcdTgxZTFcdTg2NDZcdTg2NDdcdTg2NDhcdTg5NzlcdTg5N2FcdTg5N2NcdTg5N2JcdTg5ZmZcdThiOThcdThiOTlcdThlYTVcdThlYTRcdThlYTNcdTk0NmVcdTk0NmRcdTk0NmZcdTk0NzFcdTk0NzNcdTk3NDlcdTk4NzJcdTk5NWZcdTljNjhcdTljNmVcdTljNmRcdTll''@;'; put 'put ''MGJcdTllMGRcdTllMTBcdTllMGZcdTllMTJcdTllMTFcdTllYTFcdTllZjVcdTlmMDlcdTlmNDdcdTlmNzhcdTlmN2JcdTlmN2FcdTlmNzlcdTU3MWVcdTcwNjZcdTdjNmZcdTg4M2NcdThkYjJcdThlYTZcdTkxYzNcdTk0NzRcdTk0NzhcdTk0NzZcdTk0NzVcdTlhNjBcdTljNzRcdTljNzNc''@;'; put 'put ''dTljNzFcdTljNzVcdTllMTRcdTllMTNcdTllZjZcdTlmMGEiXSxbImY5YTEiLCJcdTlmYTRcdTcwNjhcdTcwNjVcdTdjZjdcdTg2NmFcdTg4M2VcdTg4M2RcdTg4M2ZcdThiOWVcdThjOWNcdThlYTlcdThlYzlcdTk3NGJcdTk4NzNcdTk4NzRcdTk4Y2NcdTk5NjFcdTk5YWJcdTlhNjRcdTlh''@;'; put 'put ''NjZcdTlhNjdcdTliMjRcdTllMTVcdTllMTdcdTlmNDhcdTYyMDdcdTZiMWVcdTcyMjdcdTg2NGNcdThlYThcdTk0ODJcdTk0ODBcdTk0ODFcdTlhNjlcdTlhNjhcdTliMmVcdTllMTlcdTcyMjlcdTg2NGJcdThiOWZcdTk0ODNcdTljNzlcdTllYjdcdTc2NzVcdTlhNmJcdTljN2FcdTllMWRc''@;'; put 'put ''dTcwNjlcdTcwNmFcdTllYTRcdTlmN2VcdTlmNDlcdTlmOThcdTc4ODFcdTkyYjlcdTg4Y2ZcdTU4YmJcdTYwNTJcdTdjYTdcdTVhZmFcdTI1NTRcdTI1NjZcdTI1NTdcdTI1NjBcdTI1NmNcdTI1NjNcdTI1NWFcdTI1NjlcdTI1NWRcdTI1NTJcdTI1NjRcdTI1NTVcdTI1NWVcdTI1NmFcdTI1''@;'; put 'put ''NjFcdTI1NThcdTI1NjdcdTI1NWJcdTI1NTNcdTI1NjVcdTI1NTZcdTI1NWZcdTI1NmJcdTI1NjJcdTI1NTlcdTI1NjhcdTI1NWNcdTI1NTFcdTI1NTBcdTI1NmRcdTI1NmVcdTI1NzBcdTI1NmZcdTI1OTMiXV0nKX0sMzE1MzI6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBh''@;'; put 'put ''cnNlKCdbWyIwIiwiXFx1MDAwMCIsMTI3XSxbIjhlYTEiLCJcdWZmNjEiLDYyXSxbImExYTEiLCJcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYzZlx1MzBm''@;'; put 'put ''ZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1ZmYzYlx1''@;'; put 'put ''ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOCIsOSwiXHVmZjBiXHVmZjBkXHhiMVx4ZDdceGY3XHVmZjFkXHUyMjYwXHVmZjFjXHVmZjFlXHUyMjY2XHUyMjY3XHUyMjFlXHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmZlNVx1ZmYwNFx1ZmZlMFx1ZmZlMVx1ZmYwNVx1''@;'; put 'put ''ZmYwM1x1ZmYwNlx1ZmYwYVx1ZmYyMFx4YTdcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzciXSxbImEyYTEiLCJcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTI1YmRcdTI1YmNcdTIwM2JcdTMwMTJcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMiXSxbImEy''@;'; put 'put ''YmEiLCJcdTIyMDhcdTIyMGJcdTIyODZcdTIyODdcdTIyODJcdTIyODNcdTIyMmFcdTIyMjkiXSxbImEyY2EiLCJcdTIyMjdcdTIyMjhcdWZmZTJcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDMiXSxbImEyZGMiLCJcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIyNTJcdTIy''@;'; put 'put ''NmFcdTIyNmJcdTIyMWFcdTIyM2RcdTIyMWRcdTIyMzVcdTIyMmJcdTIyMmMiXSxbImEyZjIiLCJcdTIxMmJcdTIwMzBcdTI2NmZcdTI2NmRcdTI2NmFcdTIwMjBcdTIwMjFceGI2Il0sWyJhMmZlIiwiXHUyNWVmIl0sWyJhM2IwIiwiXHVmZjEwIiw5XSxbImEzYzEiLCJcdWZmMjEiLDI1XSxb''@;'; put 'put ''ImEzZTEiLCJcdWZmNDEiLDI1XSxbImE0YTEiLCJcdTMwNDEiLDgyXSxbImE1YTEiLCJcdTMwYTEiLDg1XSxbImE2YTEiLCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsiYTZjMSIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyJhN2ExIiwiXHUwNDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxb''@;'; put 'put ''ImE3ZDEiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsMjVdLFsiYThhMSIsIlx1MjUwMFx1MjUwMlx1MjUwY1x1MjUxMFx1MjUxOFx1MjUxNFx1MjUxY1x1MjUyY1x1MjUyNFx1MjUzNFx1MjUzY1x1MjUwMVx1MjUwM1x1MjUwZlx1MjUxM1x1MjUxYlx1MjUxN1x1MjUyM1x1MjUzM1x1MjUy''@;'; put 'put ''Ylx1MjUzYlx1MjU0Ylx1MjUyMFx1MjUyZlx1MjUyOFx1MjUzN1x1MjUzZlx1MjUxZFx1MjUzMFx1MjUyNVx1MjUzOFx1MjU0MiJdLFsiYWRhMSIsIlx1MjQ2MCIsMTksIlx1MjE2MCIsOV0sWyJhZGMwIiwiXHUzMzQ5XHUzMzE0XHUzMzIyXHUzMzRkXHUzMzE4XHUzMzI3XHUzMzAzXHUzMzM2''@;'; put 'put ''XHUzMzUxXHUzMzU3XHUzMzBkXHUzMzI2XHUzMzIzXHUzMzJiXHUzMzRhXHUzMzNiXHUzMzljXHUzMzlkXHUzMzllXHUzMzhlXHUzMzhmXHUzM2M0XHUzM2ExIl0sWyJhZGRmIiwiXHUzMzdiXHUzMDFkXHUzMDFmXHUyMTE2XHUzM2NkXHUyMTIxXHUzMmE0Iiw0LCJcdTMyMzFcdTMyMzJcdTMy''@;'; put 'put ''MzlcdTMzN2VcdTMzN2RcdTMzN2NcdTIyNTJcdTIyNjFcdTIyMmJcdTIyMmVcdTIyMTFcdTIyMWFcdTIyYTVcdTIyMjBcdTIyMWZcdTIyYmZcdTIyMzVcdTIyMjlcdTIyMmEiXSxbImIwYTEiLCJcdTRlOWNcdTU1MTZcdTVhMDNcdTk2M2ZcdTU0YzBcdTYxMWJcdTYzMjhcdTU5ZjZcdTkwMjJc''@;'; put 'put ''dTg0NzVcdTgzMWNcdTdhNTBcdTYwYWFcdTYzZTFcdTZlMjVcdTY1ZWRcdTg0NjZcdTgyYTZcdTliZjVcdTY4OTNcdTU3MjdcdTY1YTFcdTYyNzFcdTViOWJcdTU5ZDBcdTg2N2JcdTk4ZjRcdTdkNjJcdTdkYmVcdTliOGVcdTYyMTZcdTdjOWZcdTg4YjdcdTViODlcdTVlYjVcdTYzMDlcdTY2''@;'; put 'put ''OTdcdTY4NDhcdTk1YzdcdTk3OGRcdTY3NGZcdTRlZTVcdTRmMGFcdTRmNGRcdTRmOWRcdTUwNDlcdTU2ZjJcdTU5MzdcdTU5ZDRcdTVhMDFcdTVjMDlcdTYwZGZcdTYxMGZcdTYxNzBcdTY2MTNcdTY5MDVcdTcwYmFcdTc1NGZcdTc1NzBcdTc5ZmJcdTdkYWRcdTdkZWZcdTgwYzNcdTg0MGVc''@;'; put 'put ''dTg4NjNcdThiMDJcdTkwNTVcdTkwN2FcdTUzM2JcdTRlOTVcdTRlYTVcdTU3ZGZcdTgwYjJcdTkwYzFcdTc4ZWZcdTRlMDBcdTU4ZjFcdTZlYTJcdTkwMzhcdTdhMzJcdTgzMjhcdTgyOGJcdTljMmZcdTUxNDFcdTUzNzBcdTU0YmRcdTU0ZTFcdTU2ZTBcdTU5ZmJcdTVmMTVcdTk4ZjJcdTZk''@;'; put 'put ''ZWJcdTgwZTRcdTg1MmQiXSxbImIxYTEiLCJcdTk2NjJcdTk2NzBcdTk2YTBcdTk3ZmJcdTU0MGJcdTUzZjNcdTViODdcdTcwY2ZcdTdmYmRcdThmYzJcdTk2ZThcdTUzNmZcdTlkNWNcdTdhYmFcdTRlMTFcdTc4OTNcdTgxZmNcdTZlMjZcdTU2MThcdTU1MDRcdTZiMWRcdTg1MWFcdTljM2Jc''@;'; put 'put ''dTU5ZTVcdTUzYTlcdTZkNjZcdTc0ZGNcdTk1OGZcdTU2NDJcdTRlOTFcdTkwNGJcdTk2ZjJcdTgzNGZcdTk5MGNcdTUzZTFcdTU1YjZcdTViMzBcdTVmNzFcdTY2MjBcdTY2ZjNcdTY4MDRcdTZjMzhcdTZjZjNcdTZkMjlcdTc0NWJcdTc2YzhcdTdhNGVcdTk4MzRcdTgyZjFcdTg4NWJcdThh''@;'; put 'put ''NjBcdTkyZWRcdTZkYjJcdTc1YWJcdTc2Y2FcdTk5YzVcdTYwYTZcdThiMDFcdThkOGFcdTk1YjJcdTY5OGVcdTUzYWRcdTUxODZcdTU3MTJcdTU4MzBcdTU5NDRcdTViYjRcdTVlZjZcdTYwMjhcdTYzYTlcdTYzZjRcdTZjYmZcdTZmMTRcdTcwOGVcdTcxMTRcdTcxNTlcdTcxZDVcdTczM2Zc''@;'; put 'put ''dTdlMDFcdTgyNzZcdTgyZDFcdTg1OTdcdTkwNjBcdTkyNWJcdTlkMWJcdTU4NjlcdTY1YmNcdTZjNWFcdTc1MjVcdTUxZjlcdTU5MmVcdTU5NjVcdTVmODBcdTVmZGMiXSxbImIyYTEiLCJcdTYyYmNcdTY1ZmFcdTZhMmFcdTZiMjdcdTZiYjRcdTczOGJcdTdmYzFcdTg5NTZcdTlkMmNcdTlk''@;'; put 'put ''MGVcdTllYzRcdTVjYTFcdTZjOTZcdTgzN2JcdTUxMDRcdTVjNGJcdTYxYjZcdTgxYzZcdTY4NzZcdTcyNjFcdTRlNTlcdTRmZmFcdTUzNzhcdTYwNjlcdTZlMjlcdTdhNGZcdTk3ZjNcdTRlMGJcdTUzMTZcdTRlZWVcdTRmNTVcdTRmM2RcdTRmYTFcdTRmNzNcdTUyYTBcdTUzZWZcdTU2MDlc''@;'; put 'put ''dTU5MGZcdTVhYzFcdTViYjZcdTViZTFcdTc5ZDFcdTY2ODdcdTY3OWNcdTY3YjZcdTZiNGNcdTZjYjNcdTcwNmJcdTczYzJcdTc5OGRcdTc5YmVcdTdhM2NcdTdiODdcdTgyYjFcdTgyZGJcdTgzMDRcdTgzNzdcdTgzZWZcdTgzZDNcdTg3NjZcdThhYjJcdTU2MjlcdThjYThcdThmZTZcdTkw''@;'; put 'put ''NGVcdTk3MWVcdTg2OGFcdTRmYzRcdTVjZThcdTYyMTFcdTcyNTlcdTc1M2JcdTgxZTVcdTgyYmRcdTg2ZmVcdThjYzBcdTk2YzVcdTk5MTNcdTk5ZDVcdTRlY2JcdTRmMWFcdTg5ZTNcdTU2ZGVcdTU4NGFcdTU4Y2FcdTVlZmJcdTVmZWJcdTYwMmFcdTYwOTRcdTYwNjJcdTYxZDBcdTYyMTJc''@;'; put 'put ''dTYyZDBcdTY1MzkiXSxbImIzYTEiLCJcdTliNDFcdTY2NjZcdTY4YjBcdTZkNzdcdTcwNzBcdTc1NGNcdTc2ODZcdTdkNzVcdTgyYTVcdTg3ZjlcdTk1OGJcdTk2OGVcdThjOWRcdTUxZjFcdTUyYmVcdTU5MTZcdTU0YjNcdTViYjNcdTVkMTZcdTYxNjhcdTY5ODJcdTZkYWZcdTc4OGRcdTg0''@;'; put 'put ''Y2JcdTg4NTdcdThhNzJcdTkzYTdcdTlhYjhcdTZkNmNcdTk5YThcdTg2ZDlcdTU3YTNcdTY3ZmZcdTg2Y2VcdTkyMGVcdTUyODNcdTU2ODdcdTU0MDRcdTVlZDNcdTYyZTFcdTY0YjlcdTY4M2NcdTY4MzhcdTZiYmJcdTczNzJcdTc4YmFcdTdhNmJcdTg5OWFcdTg5ZDJcdThkNmJcdThmMDNc''@;'; put 'put ''dTkwZWRcdTk1YTNcdTk2OTRcdTk3NjlcdTViNjZcdTVjYjNcdTY5N2RcdTk4NGRcdTk4NGVcdTYzOWJcdTdiMjBcdTZhMmJcdTZhN2ZcdTY4YjZcdTljMGRcdTZmNWZcdTUyNzJcdTU1OWRcdTYwNzBcdTYyZWNcdTZkM2JcdTZlMDdcdTZlZDFcdTg0NWJcdTg5MTBcdThmNDRcdTRlMTRcdTlj''@;'; put 'put ''MzlcdTUzZjZcdTY5MWJcdTZhM2FcdTk3ODRcdTY4MmFcdTUxNWNcdTdhYzNcdTg0YjJcdTkxZGNcdTkzOGNcdTU2NWJcdTlkMjhcdTY4MjJcdTgzMDVcdTg0MzEiXSxbImI0YTEiLCJcdTdjYTVcdTUyMDhcdTgyYzVcdTc0ZTZcdTRlN2VcdTRmODNcdTUxYTBcdTViZDJcdTUyMGFcdTUyZDhc''@;'; put 'put ''dTUyZTdcdTVkZmJcdTU1OWFcdTU4MmFcdTU5ZTZcdTViOGNcdTViOThcdTViZGJcdTVlNzJcdTVlNzlcdTYwYTNcdTYxMWZcdTYxNjNcdTYxYmVcdTYzZGJcdTY1NjJcdTY3ZDFcdTY4NTNcdTY4ZmFcdTZiM2VcdTZiNTNcdTZjNTdcdTZmMjJcdTZmOTdcdTZmNDVcdTc0YjBcdTc1MThcdTc2''@;'; put 'put ''ZTNcdTc3MGJcdTdhZmZcdTdiYTFcdTdjMjFcdTdkZTlcdTdmMzZcdTdmZjBcdTgwOWRcdTgyNjZcdTgzOWVcdTg5YjNcdThhY2NcdThjYWJcdTkwODRcdTk0NTFcdTk1OTNcdTk1OTFcdTk1YTJcdTk2NjVcdTk3ZDNcdTk5MjhcdTgyMThcdTRlMzhcdTU0MmJcdTVjYjhcdTVkY2NcdTczYTlc''@;'; put 'put ''dTc2NGNcdTc3M2NcdTVjYTlcdTdmZWJcdThkMGJcdTk2YzFcdTk4MTFcdTk4NTRcdTk4NThcdTRmMDFcdTRmMGVcdTUzNzFcdTU1OWNcdTU2NjhcdTU3ZmFcdTU5NDdcdTViMDlcdTViYzRcdTVjOTBcdTVlMGNcdTVlN2VcdTVmY2NcdTYzZWVcdTY3M2FcdTY1ZDdcdTY1ZTJcdTY3MWZcdTY4''@;'; put 'put ''Y2JcdTY4YzQiXSxbImI1YTEiLCJcdTZhNWZcdTVlMzBcdTZiYzVcdTZjMTdcdTZjN2RcdTc1N2ZcdTc5NDhcdTViNjNcdTdhMDBcdTdkMDBcdTVmYmRcdTg5OGZcdThhMThcdThjYjRcdThkNzdcdThlY2NcdThmMWRcdTk4ZTJcdTlhMGVcdTliM2NcdTRlODBcdTUwN2RcdTUxMDBcdTU5OTNc''@;'; put 'put ''dTViOWNcdTYyMmZcdTYyODBcdTY0ZWNcdTZiM2FcdTcyYTBcdTc1OTFcdTc5NDdcdTdmYTlcdTg3ZmJcdThhYmNcdThiNzBcdTYzYWNcdTgzY2FcdTk3YTBcdTU0MDlcdTU0MDNcdTU1YWJcdTY4NTRcdTZhNThcdThhNzBcdTc4MjdcdTY3NzVcdTllY2RcdTUzNzRcdTViYTJcdTgxMWFcdTg2''@;'; put 'put ''NTBcdTkwMDZcdTRlMThcdTRlNDVcdTRlYzdcdTRmMTFcdTUzY2FcdTU0MzhcdTViYWVcdTVmMTNcdTYwMjVcdTY1NTFcdTY3M2RcdTZjNDJcdTZjNzJcdTZjZTNcdTcwNzhcdTc0MDNcdTdhNzZcdTdhYWVcdTdiMDhcdTdkMWFcdTdjZmVcdTdkNjZcdTY1ZTdcdTcyNWJcdTUzYmJcdTVjNDVc''@;'; put 'put ''dTVkZThcdTYyZDJcdTYyZTBcdTYzMTlcdTZlMjBcdTg2NWFcdThhMzFcdThkZGRcdTkyZjhcdTZmMDFcdTc5YTZcdTliNWFcdTRlYThcdTRlYWJcdTRlYWMiXSxbImI2YTEiLCJcdTRmOWJcdTRmYTBcdTUwZDFcdTUxNDdcdTdhZjZcdTUxNzFcdTUxZjZcdTUzNTRcdTUzMjFcdTUzN2ZcdTUz''@;'; put 'put ''ZWJcdTU1YWNcdTU4ODNcdTVjZTFcdTVmMzdcdTVmNGFcdTYwMmZcdTYwNTBcdTYwNmRcdTYzMWZcdTY1NTlcdTZhNGJcdTZjYzFcdTcyYzJcdTcyZWRcdTc3ZWZcdTgwZjhcdTgxMDVcdTgyMDhcdTg1NGVcdTkwZjdcdTkzZTFcdTk3ZmZcdTk5NTdcdTlhNWFcdTRlZjBcdTUxZGRcdTVjMmRc''@;'; put 'put ''dTY2ODFcdTY5NmRcdTVjNDBcdTY2ZjJcdTY5NzVcdTczODlcdTY4NTBcdTdjODFcdTUwYzVcdTUyZTRcdTU3NDdcdTVkZmVcdTkzMjZcdTY1YTRcdTZiMjNcdTZiM2RcdTc0MzRcdTc5ODFcdTc5YmRcdTdiNGJcdTdkY2FcdTgyYjlcdTgzY2NcdTg4N2ZcdTg5NWZcdThiMzlcdThmZDFcdTkx''@;'; put 'put ''ZDFcdTU0MWZcdTkyODBcdTRlNWRcdTUwMzZcdTUzZTVcdTUzM2FcdTcyZDdcdTczOTZcdTc3ZTlcdTgyZTZcdThlYWZcdTk5YzZcdTk5YzhcdTk5ZDJcdTUxNzdcdTYxMWFcdTg2NWVcdTU1YjBcdTdhN2FcdTUwNzZcdTViZDNcdTkwNDdcdTk2ODVcdTRlMzJcdTZhZGJcdTkxZTdcdTVjNTFc''@;'; put 'put ''dTVjNDgiXSxbImI3YTEiLCJcdTYzOThcdTdhOWZcdTZjOTNcdTk3NzRcdThmNjFcdTdhYWFcdTcxOGFcdTk2ODhcdTdjODJcdTY4MTdcdTdlNzBcdTY4NTFcdTkzNmNcdTUyZjJcdTU0MWJcdTg1YWJcdThhMTNcdTdmYTRcdThlY2RcdTkwZTFcdTUzNjZcdTg4ODhcdTc5NDFcdTRmYzJcdTUw''@;'; put 'put ''YmVcdTUyMTFcdTUxNDRcdTU1NTNcdTU3MmRcdTczZWFcdTU3OGJcdTU5NTFcdTVmNjJcdTVmODRcdTYwNzVcdTYxNzZcdTYxNjdcdTYxYTlcdTYzYjJcdTY0M2FcdTY1NmNcdTY2NmZcdTY4NDJcdTZlMTNcdTc1NjZcdTdhM2RcdTdjZmJcdTdkNGNcdTdkOTlcdTdlNGJcdTdmNmJcdTgzMGVc''@;'; put 'put ''dTgzNGFcdTg2Y2RcdThhMDhcdThhNjNcdThiNjZcdThlZmRcdTk4MWFcdTlkOGZcdTgyYjhcdThmY2VcdTliZThcdTUyODdcdTYyMWZcdTY0ODNcdTZmYzBcdTk2OTlcdTY4NDFcdTUwOTFcdTZiMjBcdTZjN2FcdTZmNTRcdTdhNzRcdTdkNTBcdTg4NDBcdThhMjNcdTY3MDhcdTRlZjZcdTUw''@;'; put 'put ''MzlcdTUwMjZcdTUwNjVcdTUxN2NcdTUyMzhcdTUyNjNcdTU1YTdcdTU3MGZcdTU4MDVcdTVhY2NcdTVlZmFcdTYxYjJcdTYxZjhcdTYyZjNcdTYzNzIiXSxbImI4YTEiLCJcdTY5MWNcdTZhMjlcdTcyN2RcdTcyYWNcdTczMmVcdTc4MTRcdTc4NmZcdTdkNzlcdTc3MGNcdTgwYTlcdTg5OGJc''@;'; put 'put ''dThiMTlcdThjZTJcdThlZDJcdTkwNjNcdTkzNzVcdTk2N2FcdTk4NTVcdTlhMTNcdTllNzhcdTUxNDNcdTUzOWZcdTUzYjNcdTVlN2JcdTVmMjZcdTZlMWJcdTZlOTBcdTczODRcdTczZmVcdTdkNDNcdTgyMzdcdThhMDBcdThhZmFcdTk2NTBcdTRlNGVcdTUwMGJcdTUzZTRcdTU0N2NcdTU2''@;'; put 'put ''ZmFcdTU5ZDFcdTViNjRcdTVkZjFcdTVlYWJcdTVmMjdcdTYyMzhcdTY1NDVcdTY3YWZcdTZlNTZcdTcyZDBcdTdjY2FcdTg4YjRcdTgwYTFcdTgwZTFcdTgzZjBcdTg2NGVcdThhODdcdThkZThcdTkyMzdcdTk2YzdcdTk4NjdcdTlmMTNcdTRlOTRcdTRlOTJcdTRmMGRcdTUzNDhcdTU0NDlc''@;'; put 'put ''dTU0M2VcdTVhMmZcdTVmOGNcdTVmYTFcdTYwOWZcdTY4YTdcdTZhOGVcdTc0NWFcdTc4ODFcdThhOWVcdThhYTRcdThiNzdcdTkxOTBcdTRlNWVcdTliYzlcdTRlYTRcdTRmN2NcdTRmYWZcdTUwMTlcdTUwMTZcdTUxNDlcdTUxNmNcdTUyOWZcdTUyYjlcdTUyZmVcdTUzOWFcdTUzZTNcdTU0''@;'; put 'put ''MTEiXSxbImI5YTEiLCJcdTU0MGVcdTU1ODlcdTU3NTFcdTU3YTJcdTU5N2RcdTViNTRcdTViNWRcdTViOGZcdTVkZTVcdTVkZTdcdTVkZjdcdTVlNzhcdTVlODNcdTVlOWFcdTVlYjdcdTVmMThcdTYwNTJcdTYxNGNcdTYyOTdcdTYyZDhcdTYzYTdcdTY1M2JcdTY2MDJcdTY2NDNcdTY2ZjRc''@;'; put 'put ''dTY3NmRcdTY4MjFcdTY4OTdcdTY5Y2JcdTZjNWZcdTZkMmFcdTZkNjlcdTZlMmZcdTZlOWRcdTc1MzJcdTc2ODdcdTc4NmNcdTdhM2ZcdTdjZTBcdTdkMDVcdTdkMThcdTdkNWVcdTdkYjFcdTgwMTVcdTgwMDNcdTgwYWZcdTgwYjFcdTgxNTRcdTgxOGZcdTgyMmFcdTgzNTJcdTg4NGNcdTg4''@;'; put 'put ''NjFcdThiMWJcdThjYTJcdThjZmNcdTkwY2FcdTkxNzVcdTkyNzFcdTc4M2ZcdTkyZmNcdTk1YTRcdTk2NGRcdTk4MDVcdTk5OTlcdTlhZDhcdTlkM2JcdTUyNWJcdTUyYWJcdTUzZjdcdTU0MDhcdTU4ZDVcdTYyZjdcdTZmZTBcdThjNmFcdThmNWZcdTllYjlcdTUxNGJcdTUyM2JcdTU0NGFc''@;'; put 'put ''dTU2ZmRcdTdhNDBcdTkxNzdcdTlkNjBcdTllZDJcdTczNDRcdTZmMDlcdTgxNzBcdTc1MTFcdTVmZmRcdTYwZGFcdTlhYThcdTcyZGJcdThmYmMiXSxbImJhYTEiLCJcdTZiNjRcdTk4MDNcdTRlY2FcdTU2ZjBcdTU3NjRcdTU4YmVcdTVhNWFcdTYwNjhcdTYxYzdcdTY2MGZcdTY2MDZcdTY4''@;'; put 'put ''MzlcdTY4YjFcdTZkZjdcdTc1ZDVcdTdkM2FcdTgyNmVcdTliNDJcdTRlOWJcdTRmNTBcdTUzYzlcdTU1MDZcdTVkNmZcdTVkZTZcdTVkZWVcdTY3ZmJcdTZjOTlcdTc0NzNcdTc4MDJcdThhNTBcdTkzOTZcdTg4ZGZcdTU3NTBcdTVlYTdcdTYzMmJcdTUwYjVcdTUwYWNcdTUxOGRcdTY3MDBc''@;'; put 'put ''dTU0YzlcdTU4NWVcdTU5YmJcdTViYjBcdTVmNjlcdTYyNGRcdTYzYTFcdTY4M2RcdTZiNzNcdTZlMDhcdTcwN2RcdTkxYzdcdTcyODBcdTc4MTVcdTc4MjZcdTc5NmRcdTY1OGVcdTdkMzBcdTgzZGNcdTg4YzFcdThmMDlcdTk2OWJcdTUyNjRcdTU3MjhcdTY3NTBcdTdmNmFcdThjYTFcdTUx''@;'; put 'put ''YjRcdTU3NDJcdTk2MmFcdTU4M2FcdTY5OGFcdTgwYjRcdTU0YjJcdTVkMGVcdTU3ZmNcdTc4OTVcdTlkZmFcdTRmNWNcdTUyNGFcdTU0OGJcdTY0M2VcdTY2MjhcdTY3MTRcdTY3ZjVcdTdhODRcdTdiNTZcdTdkMjJcdTkzMmZcdTY4NWNcdTliYWRcdTdiMzlcdTUzMTlcdTUxOGFcdTUyMzci''@;'; put 'put ''XSxbImJiYTEiLCJcdTViZGZcdTYyZjZcdTY0YWVcdTY0ZTZcdTY3MmRcdTZiYmFcdTg1YTlcdTk2ZDFcdTc2OTBcdTliZDZcdTYzNGNcdTkzMDZcdTliYWJcdTc2YmZcdTY2NTJcdTRlMDlcdTUwOThcdTUzYzJcdTVjNzFcdTYwZThcdTY0OTJcdTY1NjNcdTY4NWZcdTcxZTZcdTczY2FcdTc1''@;'; put 'put ''MjNcdTdiOTdcdTdlODJcdTg2OTVcdThiODNcdThjZGJcdTkxNzhcdTk5MTBcdTY1YWNcdTY2YWJcdTZiOGJcdTRlZDVcdTRlZDRcdTRmM2FcdTRmN2ZcdTUyM2FcdTUzZjhcdTUzZjJcdTU1ZTNcdTU2ZGJcdTU4ZWJcdTU5Y2JcdTU5YzlcdTU5ZmZcdTViNTBcdTVjNGRcdTVlMDJcdTVlMmJc''@;'; put 'put ''dTVmZDdcdTYwMWRcdTYzMDdcdTY1MmZcdTViNWNcdTY1YWZcdTY1YmRcdTY1ZThcdTY3OWRcdTZiNjJcdTZiN2JcdTZjMGZcdTczNDVcdTc5NDlcdTc5YzFcdTdjZjhcdTdkMTlcdTdkMmJcdTgwYTJcdTgxMDJcdTgxZjNcdTg5OTZcdThhNWVcdThhNjlcdThhNjZcdThhOGNcdThhZWVcdThj''@;'; put 'put ''YzdcdThjZGNcdTk2Y2NcdTk4ZmNcdTZiNmZcdTRlOGJcdTRmM2NcdTRmOGRcdTUxNTBcdTViNTdcdTViZmFcdTYxNDhcdTYzMDFcdTY2NDIiXSxbImJjYTEiLCJcdTZiMjFcdTZlY2JcdTZjYmJcdTcyM2VcdTc0YmRcdTc1ZDRcdTc4YzFcdTc5M2FcdTgwMGNcdTgwMzNcdTgxZWFcdTg0OTRc''@;'; put 'put ''dThmOWVcdTZjNTBcdTllN2ZcdTVmMGZcdThiNThcdTlkMmJcdTdhZmFcdThlZjhcdTViOGRcdTk2ZWJcdTRlMDNcdTUzZjFcdTU3ZjdcdTU5MzFcdTVhYzlcdTViYTRcdTYwODlcdTZlN2ZcdTZmMDZcdTc1YmVcdThjZWFcdTViOWZcdTg1MDBcdTdiZTBcdTUwNzJcdTY3ZjRcdTgyOWRcdTVj''@;'; put 'put ''NjFcdTg1NGFcdTdlMWVcdTgyMGVcdTUxOTlcdTVjMDRcdTYzNjhcdThkNjZcdTY1OWNcdTcxNmVcdTc5M2VcdTdkMTdcdTgwMDVcdThiMWRcdThlY2FcdTkwNmVcdTg2YzdcdTkwYWFcdTUwMWZcdTUyZmFcdTVjM2FcdTY3NTNcdTcwN2NcdTcyMzVcdTkxNGNcdTkxYzhcdTkzMmJcdTgyZTVc''@;'; put 'put ''dTViYzJcdTVmMzFcdTYwZjlcdTRlM2JcdTUzZDZcdTViODhcdTYyNGJcdTY3MzFcdTZiOGFcdTcyZTlcdTczZTBcdTdhMmVcdTgxNmJcdThkYTNcdTkxNTJcdTk5OTZcdTUxMTJcdTUzZDdcdTU0NmFcdTViZmZcdTYzODhcdTZhMzlcdTdkYWNcdTk3MDBcdTU2ZGFcdTUzY2VcdTU0NjgiXSxb''@;'; put 'put ''ImJkYTEiLCJcdTViOTdcdTVjMzFcdTVkZGVcdTRmZWVcdTYxMDFcdTYyZmVcdTZkMzJcdTc5YzBcdTc5Y2JcdTdkNDJcdTdlNGRcdTdmZDJcdTgxZWRcdTgyMWZcdTg0OTBcdTg4NDZcdTg5NzJcdThiOTBcdThlNzRcdThmMmZcdTkwMzFcdTkxNGJcdTkxNmNcdTk2YzZcdTkxOWNcdTRlYzBc''@;'; put 'put ''dTRmNGZcdTUxNDVcdTUzNDFcdTVmOTNcdTYyMGVcdTY3ZDRcdTZjNDFcdTZlMGJcdTczNjNcdTdlMjZcdTkxY2RcdTkyODNcdTUzZDRcdTU5MTlcdTViYmZcdTZkZDFcdTc5NWRcdTdlMmVcdTdjOWJcdTU4N2VcdTcxOWZcdTUxZmFcdTg4NTNcdThmZjBcdTRmY2FcdTVjZmJcdTY2MjVcdTc3''@;'; put 'put ''YWNcdTdhZTNcdTgyMWNcdTk5ZmZcdTUxYzZcdTVmYWFcdTY1ZWNcdTY5NmZcdTZiODlcdTZkZjNcdTZlOTZcdTZmNjRcdTc2ZmVcdTdkMTRcdTVkZTFcdTkwNzVcdTkxODdcdTk4MDZcdTUxZTZcdTUyMWRcdTYyNDBcdTY2OTFcdTY2ZDlcdTZlMWFcdTVlYjZcdTdkZDJcdTdmNzJcdTY2Zjhc''@;'; put 'put ''dTg1YWZcdTg1ZjdcdThhZjhcdTUyYTlcdTUzZDlcdTU5NzNcdTVlOGZcdTVmOTBcdTYwNTVcdTkyZTRcdTk2NjRcdTUwYjdcdTUxMWYiXSxbImJlYTEiLCJcdTUyZGRcdTUzMjBcdTUzNDdcdTUzZWNcdTU0ZThcdTU1NDZcdTU1MzFcdTU2MTdcdTU5NjhcdTU5YmVcdTVhM2NcdTViYjVcdTVj''@;'; put 'put ''MDZcdTVjMGZcdTVjMTFcdTVjMWFcdTVlODRcdTVlOGFcdTVlZTBcdTVmNzBcdTYyN2ZcdTYyODRcdTYyZGJcdTYzOGNcdTYzNzdcdTY2MDdcdTY2MGNcdTY2MmRcdTY2NzZcdTY3N2VcdTY4YTJcdTZhMWZcdTZhMzVcdTZjYmNcdTZkODhcdTZlMDlcdTZlNThcdTcxM2NcdTcxMjZcdTcxNjdc''@;'; put 'put ''dTc1YzdcdTc3MDFcdTc4NWRcdTc5MDFcdTc5NjVcdTc5ZjBcdTdhZTBcdTdiMTFcdTdjYTdcdTdkMzlcdTgwOTZcdTgzZDZcdTg0OGJcdTg1NDlcdTg4NWRcdTg4ZjNcdThhMWZcdThhM2NcdThhNTRcdThhNzNcdThjNjFcdThjZGVcdTkxYTRcdTkyNjZcdTkzN2VcdTk0MThcdTk2OWNcdTk3''@;'; put 'put ''OThcdTRlMGFcdTRlMDhcdTRlMWVcdTRlNTdcdTUxOTdcdTUyNzBcdTU3Y2VcdTU4MzRcdTU4Y2NcdTViMjJcdTVlMzhcdTYwYzVcdTY0ZmVcdTY3NjFcdTY3NTZcdTZkNDRcdTcyYjZcdTc1NzNcdTdhNjNcdTg0YjhcdThiNzJcdTkxYjhcdTkzMjBcdTU2MzFcdTU3ZjRcdTk4ZmUiXSxbImJm''@;'; put 'put ''YTEiLCJcdTYyZWRcdTY5MGRcdTZiOTZcdTcxZWRcdTdlNTRcdTgwNzdcdTgyNzJcdTg5ZTZcdTk4ZGZcdTg3NTVcdThmYjFcdTVjM2JcdTRmMzhcdTRmZTFcdTRmYjVcdTU1MDdcdTVhMjBcdTViZGRcdTViZTlcdTVmYzNcdTYxNGVcdTYzMmZcdTY1YjBcdTY2NGJcdTY4ZWVcdTY5OWJcdTZk''@;'; put 'put ''NzhcdTZkZjFcdTc1MzNcdTc1YjlcdTc3MWZcdTc5NWVcdTc5ZTZcdTdkMzNcdTgxZTNcdTgyYWZcdTg1YWFcdTg5YWFcdThhM2FcdThlYWJcdThmOWJcdTkwMzJcdTkxZGRcdTk3MDdcdTRlYmFcdTRlYzFcdTUyMDNcdTU4NzVcdTU4ZWNcdTVjMGJcdTc1MWFcdTVjM2RcdTgxNGVcdThhMGFc''@;'; put 'put ''dThmYzVcdTk2NjNcdTk3NmRcdTdiMjVcdThhY2ZcdTk4MDhcdTkxNjJcdTU2ZjNcdTUzYThcdTkwMTdcdTU0MzlcdTU3ODJcdTVlMjVcdTYzYThcdTZjMzRcdTcwOGFcdTc3NjFcdTdjOGJcdTdmZTBcdTg4NzBcdTkwNDJcdTkxNTRcdTkzMTBcdTkzMThcdTk2OGZcdTc0NWVcdTlhYzRcdTVk''@;'; put 'put ''MDdcdTVkNjlcdTY1NzBcdTY3YTJcdThkYThcdTk2ZGJcdTYzNmVcdTY3NDlcdTY5MTlcdTgzYzVcdTk4MTdcdTk2YzBcdTg4ZmUiXSxbImMwYTEiLCJcdTZmODRcdTY0N2FcdTViZjhcdTRlMTZcdTcwMmNcdTc1NWRcdTY2MmZcdTUxYzRcdTUyMzZcdTUyZTJcdTU5ZDNcdTVmODFcdTYwMjdc''@;'; put 'put ''dTYyMTBcdTY1M2ZcdTY1NzRcdTY2MWZcdTY2NzRcdTY4ZjJcdTY4MTZcdTZiNjNcdTZlMDVcdTcyNzJcdTc1MWZcdTc2ZGJcdTdjYmVcdTgwNTZcdTU4ZjBcdTg4ZmRcdTg5N2ZcdThhYTBcdThhOTNcdThhY2JcdTkwMWRcdTkxOTJcdTk3NTJcdTk3NTlcdTY1ODlcdTdhMGVcdTgxMDZcdTk2''@;'; put 'put ''YmJcdTVlMmRcdTYwZGNcdTYyMWFcdTY1YTVcdTY2MTRcdTY3OTBcdTc3ZjNcdTdhNGRcdTdjNGRcdTdlM2VcdTgxMGFcdThjYWNcdThkNjRcdThkZTFcdThlNWZcdTc4YTlcdTUyMDdcdTYyZDlcdTYzYTVcdTY0NDJcdTYyOThcdThhMmRcdTdhODNcdTdiYzBcdThhYWNcdTk2ZWFcdTdkNzZc''@;'; put 'put ''dTgyMGNcdTg3NDlcdTRlZDlcdTUxNDhcdTUzNDNcdTUzNjBcdTViYTNcdTVjMDJcdTVjMTZcdTVkZGRcdTYyMjZcdTYyNDdcdTY0YjBcdTY4MTNcdTY4MzRcdTZjYzlcdTZkNDVcdTZkMTdcdTY3ZDNcdTZmNWNcdTcxNGVcdTcxN2RcdTY1Y2JcdTdhN2ZcdTdiYWRcdTdkZGEiXSxbImMxYTEi''@;'; put 'put ''LCJcdTdlNGFcdTdmYThcdTgxN2FcdTgyMWJcdTgyMzlcdTg1YTZcdThhNmVcdThjY2VcdThkZjVcdTkwNzhcdTkwNzdcdTkyYWRcdTkyOTFcdTk1ODNcdTliYWVcdTUyNGRcdTU1ODRcdTZmMzhcdTcxMzZcdTUxNjhcdTc5ODVcdTdlNTVcdTgxYjNcdTdjY2VcdTU2NGNcdTU4NTFcdTVjYThc''@;'; put 'put ''dTYzYWFcdTY2ZmVcdTY2ZmRcdTY5NWFcdTcyZDlcdTc1OGZcdTc1OGVcdTc5MGVcdTc5NTZcdTc5ZGZcdTdjOTdcdTdkMjBcdTdkNDRcdTg2MDdcdThhMzRcdTk2M2JcdTkwNjFcdTlmMjBcdTUwZTdcdTUyNzVcdTUzY2NcdTUzZTJcdTUwMDlcdTU1YWFcdTU4ZWVcdTU5NGZcdTcyM2RcdTVi''@;'; put 'put ''OGJcdTVjNjRcdTUzMWRcdTYwZTNcdTYwZjNcdTYzNWNcdTYzODNcdTYzM2ZcdTYzYmJcdTY0Y2RcdTY1ZTlcdTY2ZjlcdTVkZTNcdTY5Y2RcdTY5ZmRcdTZmMTVcdTcxZTVcdTRlODlcdTc1ZTlcdTc2ZjhcdTdhOTNcdTdjZGZcdTdkY2ZcdTdkOWNcdTgwNjFcdTgzNDlcdTgzNThcdTg0NmNc''@;'; put 'put ''dTg0YmNcdTg1ZmJcdTg4YzVcdThkNzBcdTkwMDFcdTkwNmRcdTkzOTdcdTk3MWNcdTlhMTJcdTUwY2ZcdTU4OTdcdTYxOGUiXSxbImMyYTEiLCJcdTgxZDNcdTg1MzVcdThkMDhcdTkwMjBcdTRmYzNcdTUwNzRcdTUyNDdcdTUzNzNcdTYwNmZcdTYzNDlcdTY3NWZcdTZlMmNcdThkYjNcdTkw''@;'; put 'put ''MWZcdTRmZDdcdTVjNWVcdThjY2FcdTY1Y2ZcdTdkOWFcdTUzNTJcdTg4OTZcdTUxNzZcdTYzYzNcdTViNThcdTViNmJcdTVjMGFcdTY0MGRcdTY3NTFcdTkwNWNcdTRlZDZcdTU5MWFcdTU5MmFcdTZjNzBcdThhNTFcdTU1M2VcdTU4MTVcdTU5YTVcdTYwZjBcdTYyNTNcdTY3YzFcdTgyMzVc''@;'; put 'put ''dTY5NTVcdTk2NDBcdTk5YzRcdTlhMjhcdTRmNTNcdTU4MDZcdTViZmVcdTgwMTBcdTVjYjFcdTVlMmZcdTVmODVcdTYwMjBcdTYxNGJcdTYyMzRcdTY2ZmZcdTZjZjBcdTZlZGVcdTgwY2VcdTgxN2ZcdTgyZDRcdTg4OGJcdThjYjhcdTkwMDBcdTkwMmVcdTk2OGFcdTllZGJcdTliZGJcdTRl''@;'; put 'put ''ZTNcdTUzZjBcdTU5MjdcdTdiMmNcdTkxOGRcdTk4NGNcdTlkZjlcdTZlZGRcdTcwMjdcdTUzNTNcdTU1NDRcdTViODVcdTYyNThcdTYyOWVcdTYyZDNcdTZjYTJcdTZmZWZcdTc0MjJcdThhMTdcdTk0MzhcdTZmYzFcdThhZmVcdTgzMzhcdTUxZTdcdTg2ZjhcdTUzZWEiXSxbImMzYTEiLCJc''@;'; put 'put ''dTUzZTlcdTRmNDZcdTkwNTRcdThmYjBcdTU5NmFcdTgxMzFcdTVkZmRcdTdhZWFcdThmYmZcdTY4ZGFcdThjMzdcdTcyZjhcdTljNDhcdTZhM2RcdThhYjBcdTRlMzlcdTUzNThcdTU2MDZcdTU3NjZcdTYyYzVcdTYzYTJcdTY1ZTZcdTZiNGVcdTZkZTFcdTZlNWJcdTcwYWRcdTc3ZWRcdTdh''@;'; put 'put ''ZWZcdTdiYWFcdTdkYmJcdTgwM2RcdTgwYzZcdTg2Y2JcdThhOTVcdTkzNWJcdTU2ZTNcdTU4YzdcdTVmM2VcdTY1YWRcdTY2OTZcdTZhODBcdTZiYjVcdTc1MzdcdThhYzdcdTUwMjRcdTc3ZTVcdTU3MzBcdTVmMWJcdTYwNjVcdTY2N2FcdTZjNjBcdTc1ZjRcdTdhMWFcdTdmNmVcdTgxZjRc''@;'; put 'put ''dTg3MThcdTkwNDVcdTk5YjNcdTdiYzlcdTc1NWNcdTdhZjlcdTdiNTFcdTg0YzRcdTkwMTBcdTc5ZTlcdTdhOTJcdTgzMzZcdTVhZTFcdTc3NDBcdTRlMmRcdTRlZjJcdTViOTlcdTVmZTBcdTYyYmRcdTY2M2NcdTY3ZjFcdTZjZThcdTg2NmJcdTg4NzdcdThhM2JcdTkxNGVcdTkyZjNcdTk5''@;'; put 'put ''ZDBcdTZhMTdcdTcwMjZcdTczMmFcdTgyZTdcdTg0NTdcdThjYWZcdTRlMDFcdTUxNDZcdTUxY2JcdTU1OGJcdTViZjUiXSxbImM0YTEiLCJcdTVlMTZcdTVlMzNcdTVlODFcdTVmMTRcdTVmMzVcdTVmNmJcdTVmYjRcdTYxZjJcdTYzMTFcdTY2YTJcdTY3MWRcdTZmNmVcdTcyNTJcdTc1M2Fc''@;'; put 'put ''dTc3M2FcdTgwNzRcdTgxMzlcdTgxNzhcdTg3NzZcdThhYmZcdThhZGNcdThkODVcdThkZjNcdTkyOWFcdTk1NzdcdTk4MDJcdTljZTVcdTUyYzVcdTYzNTdcdTc2ZjRcdTY3MTVcdTZjODhcdTczY2RcdThjYzNcdTkzYWVcdTk2NzNcdTZkMjVcdTU4OWNcdTY5MGVcdTY5Y2NcdThmZmRcdTkz''@;'; put 'put ''OWFcdTc1ZGJcdTkwMWFcdTU4NWFcdTY4MDJcdTYzYjRcdTY5ZmJcdTRmNDNcdTZmMmNcdTY3ZDhcdThmYmJcdTg1MjZcdTdkYjRcdTkzNTRcdTY5M2ZcdTZmNzBcdTU3NmFcdTU4ZjdcdTViMmNcdTdkMmNcdTcyMmFcdTU0MGFcdTkxZTNcdTlkYjRcdTRlYWRcdTRmNGVcdTUwNWNcdTUwNzVc''@;'; put 'put ''dTUyNDNcdThjOWVcdTU0NDhcdTU4MjRcdTViOWFcdTVlMWRcdTVlOTVcdTVlYWRcdTVlZjdcdTVmMWZcdTYwOGNcdTYyYjVcdTYzM2FcdTYzZDBcdTY4YWZcdTZjNDBcdTc4ODdcdTc5OGVcdTdhMGJcdTdkZTBcdTgyNDdcdThhMDJcdThhZTZcdThlNDRcdTkwMTMiXSxbImM1YTEiLCJcdTkw''@;'; put 'put ''YjhcdTkxMmRcdTkxZDhcdTlmMGVcdTZjZTVcdTY0NThcdTY0ZTJcdTY1NzVcdTZlZjRcdTc2ODRcdTdiMWJcdTkwNjlcdTkzZDFcdTZlYmFcdTU0ZjJcdTVmYjlcdTY0YTRcdThmNGRcdThmZWRcdTkyNDRcdTUxNzhcdTU4NmJcdTU5MjlcdTVjNTVcdTVlOTdcdTZkZmJcdTdlOGZcdTc1MWNc''@;'; put 'put ''dThjYmNcdThlZTJcdTk4NWJcdTcwYjlcdTRmMWRcdTZiYmZcdTZmYjFcdTc1MzBcdTk2ZmJcdTUxNGVcdTU0MTBcdTU4MzVcdTU4NTdcdTU5YWNcdTVjNjBcdTVmOTJcdTY1OTdcdTY3NWNcdTZlMjFcdTc2N2JcdTgzZGZcdThjZWRcdTkwMTRcdTkwZmRcdTkzNGRcdTc4MjVcdTc4M2FcdTUy''@;'; put 'put ''YWFcdTVlYTZcdTU3MWZcdTU5NzRcdTYwMTJcdTUwMTJcdTUxNWFcdTUxYWNcdTUxY2RcdTUyMDBcdTU1MTBcdTU4NTRcdTU4NThcdTU5NTdcdTViOTVcdTVjZjZcdTVkOGJcdTYwYmNcdTYyOTVcdTY0MmRcdTY3NzFcdTY4NDNcdTY4YmNcdTY4ZGZcdTc2ZDdcdTZkZDhcdTZlNmZcdTZkOWJc''@;'; put 'put ''dTcwNmZcdTcxYzhcdTVmNTNcdTc1ZDhcdTc5NzdcdTdiNDlcdTdiNTRcdTdiNTJcdTdjZDZcdTdkNzFcdTUyMzAiXSxbImM2YTEiLCJcdTg0NjNcdTg1NjlcdTg1ZTRcdThhMGVcdThiMDRcdThjNDZcdThlMGZcdTkwMDNcdTkwMGZcdTk0MTlcdTk2NzZcdTk4MmRcdTlhMzBcdTk1ZDhcdTUw''@;'; put 'put ''Y2RcdTUyZDVcdTU0MGNcdTU4MDJcdTVjMGVcdTYxYTdcdTY0OWVcdTZkMWVcdTc3YjNcdTdhZTVcdTgwZjRcdTg0MDRcdTkwNTNcdTkyODVcdTVjZTBcdTlkMDdcdTUzM2ZcdTVmOTdcdTVmYjNcdTZkOWNcdTcyNzlcdTc3NjNcdTc5YmZcdTdiZTRcdTZiZDJcdTcyZWNcdThhYWRcdTY4MDNc''@;'; put 'put ''dTZhNjFcdTUxZjhcdTdhODFcdTY5MzRcdTVjNGFcdTljZjZcdTgyZWJcdTViYzVcdTkxNDlcdTcwMWVcdTU2NzhcdTVjNmZcdTYwYzdcdTY1NjZcdTZjOGNcdThjNWFcdTkwNDFcdTk4MTNcdTU0NTFcdTY2YzdcdTkyMGRcdTU5NDhcdTkwYTNcdTUxODVcdTRlNGRcdTUxZWFcdTg1OTlcdThi''@;'; put 'put ''MGVcdTcwNThcdTYzN2FcdTkzNGJcdTY5NjJcdTk5YjRcdTdlMDRcdTc1NzdcdTUzNTdcdTY5NjBcdThlZGZcdTk2ZTNcdTZjNWRcdTRlOGNcdTVjM2NcdTVmMTBcdThmZTlcdTUzMDJcdThjZDFcdTgwODlcdTg2NzlcdTVlZmZcdTY1ZTVcdTRlNzNcdTUxNjUiXSxbImM3YTEiLCJcdTU5ODJc''@;'; put 'put ''dTVjM2ZcdTk3ZWVcdTRlZmJcdTU5OGFcdTVmY2RcdThhOGRcdTZmZTFcdTc5YjBcdTc5NjJcdTViZTdcdTg0NzFcdTczMmJcdTcxYjFcdTVlNzRcdTVmZjVcdTYzN2JcdTY0OWFcdTcxYzNcdTdjOThcdTRlNDNcdTVlZmNcdTRlNGJcdTU3ZGNcdTU2YTJcdTYwYTlcdTZmYzNcdTdkMGRcdTgw''@;'; put 'put ''ZmRcdTgxMzNcdTgxYmZcdThmYjJcdTg5OTdcdTg2YTRcdTVkZjRcdTYyOGFcdTY0YWRcdTg5ODdcdTY3NzdcdTZjZTJcdTZkM2VcdTc0MzZcdTc4MzRcdTVhNDZcdTdmNzVcdTgyYWRcdTk5YWNcdTRmZjNcdTVlYzNcdTYyZGRcdTYzOTJcdTY1NTdcdTY3NmZcdTc2YzNcdTcyNGNcdTgwY2Nc''@;'; put 'put ''dTgwYmFcdThmMjlcdTkxNGRcdTUwMGRcdTU3ZjlcdTVhOTJcdTY4ODVcdTY5NzNcdTcxNjRcdTcyZmRcdThjYjdcdTU4ZjJcdThjZTBcdTk2NmFcdTkwMTlcdTg3N2ZcdTc5ZTRcdTc3ZTdcdTg0MjlcdTRmMmZcdTUyNjVcdTUzNWFcdTYyY2RcdTY3Y2ZcdTZjY2FcdTc2N2RcdTdiOTRcdTdj''@;'; put 'put ''OTVcdTgyMzZcdTg1ODRcdThmZWJcdTY2ZGRcdTZmMjBcdTcyMDZcdTdlMWJcdTgzYWJcdTk5YzFcdTllYTYiXSxbImM4YTEiLCJcdTUxZmRcdTdiYjFcdTc4NzJcdTdiYjhcdTgwODdcdTdiNDhcdTZhZThcdTVlNjFcdTgwOGNcdTc1NTFcdTc1NjBcdTUxNmJcdTkyNjJcdTZlOGNcdTc2N2Fc''@;'; put 'put ''dTkxOTdcdTlhZWFcdTRmMTBcdTdmNzBcdTYyOWNcdTdiNGZcdTk1YTVcdTljZTlcdTU2N2FcdTU4NTlcdTg2ZTRcdTk2YmNcdTRmMzRcdTUyMjRcdTUzNGFcdTUzY2RcdTUzZGJcdTVlMDZcdTY0MmNcdTY1OTFcdTY3N2ZcdTZjM2VcdTZjNGVcdTcyNDhcdTcyYWZcdTczZWRcdTc1NTRcdTdl''@;'; put 'put ''NDFcdTgyMmNcdTg1ZTlcdThjYTlcdTdiYzRcdTkxYzZcdTcxNjlcdTk4MTJcdTk4ZWZcdTYzM2RcdTY2NjlcdTc1NmFcdTc2ZTRcdTc4ZDBcdTg1NDNcdTg2ZWVcdTUzMmFcdTUzNTFcdTU0MjZcdTU5ODNcdTVlODdcdTVmN2NcdTYwYjJcdTYyNDlcdTYyNzlcdTYyYWJcdTY1OTBcdTZiZDRc''@;'; put 'put ''dTZjY2NcdTc1YjJcdTc2YWVcdTc4OTFcdTc5ZDhcdTdkY2JcdTdmNzdcdTgwYTVcdTg4YWJcdThhYjlcdThjYmJcdTkwN2ZcdTk3NWVcdTk4ZGJcdTZhMGJcdTdjMzhcdTUwOTlcdTVjM2VcdTVmYWVcdTY3ODdcdTZiZDhcdTc0MzVcdTc3MDlcdTdmOGUiXSxbImM5YTEiLCJcdTlmM2JcdTY3''@;'; put 'put ''Y2FcdTdhMTdcdTUzMzlcdTc1OGJcdTlhZWRcdTVmNjZcdTgxOWRcdTgzZjFcdTgwOThcdTVmM2NcdTVmYzVcdTc1NjJcdTdiNDZcdTkwM2NcdTY4NjdcdTU5ZWJcdTVhOWJcdTdkMTBcdTc2N2VcdThiMmNcdTRmZjVcdTVmNmFcdTZhMTlcdTZjMzdcdTZmMDJcdTc0ZTJcdTc5NjhcdTg4Njhc''@;'; put 'put ''dThhNTVcdThjNzlcdTVlZGZcdTYzY2ZcdTc1YzVcdTc5ZDJcdTgyZDdcdTkzMjhcdTkyZjJcdTg0OWNcdTg2ZWRcdTljMmRcdTU0YzFcdTVmNmNcdTY1OGNcdTZkNWNcdTcwMTVcdThjYTdcdThjZDNcdTk4M2JcdTY1NGZcdTc0ZjZcdTRlMGRcdTRlZDhcdTU3ZTBcdTU5MmJcdTVhNjZcdTVi''@;'; put 'put ''Y2NcdTUxYThcdTVlMDNcdTVlOWNcdTYwMTZcdTYyNzZcdTY1NzdcdTY1YTdcdTY2NmVcdTZkNmVcdTcyMzZcdTdiMjZcdTgxNTBcdTgxOWFcdTgyOTlcdThiNWNcdThjYTBcdThjZTZcdThkNzRcdTk2MWNcdTk2NDRcdTRmYWVcdTY0YWJcdTZiNjZcdTgyMWVcdTg0NjFcdTg1NmFcdTkwZThc''@;'; put 'put ''dTVjMDFcdTY5NTNcdTk4YThcdTg0N2FcdTg1NTdcdTRmMGZcdTUyNmZcdTVmYTlcdTVlNDVcdTY3MGQiXSxbImNhYTEiLCJcdTc5OGZcdTgxNzlcdTg5MDdcdTg5ODZcdTZkZjVcdTVmMTdcdTYyNTVcdTZjYjhcdTRlY2ZcdTcyNjlcdTliOTJcdTUyMDZcdTU0M2JcdTU2NzRcdTU4YjNcdTYx''@;'; put 'put ''YTRcdTYyNmVcdTcxMWFcdTU5NmVcdTdjODlcdTdjZGVcdTdkMWJcdTk2ZjBcdTY1ODdcdTgwNWVcdTRlMTlcdTRmNzVcdTUxNzVcdTU4NDBcdTVlNjNcdTVlNzNcdTVmMGFcdTY3YzRcdTRlMjZcdTg1M2RcdTk1ODlcdTk2NWJcdTdjNzNcdTk4MDFcdTUwZmJcdTU4YzFcdTc2NTZcdTc4YTdc''@;'; put 'put ''dTUyMjVcdTc3YTVcdTg1MTFcdTdiODZcdTUwNGZcdTU5MDlcdTcyNDdcdTdiYzdcdTdkZThcdThmYmFcdThmZDRcdTkwNGRcdTRmYmZcdTUyYzlcdTVhMjlcdTVmMDFcdTk3YWRcdTRmZGRcdTgyMTdcdTkyZWFcdTU3MDNcdTYzNTVcdTZiNjlcdTc1MmJcdTg4ZGNcdThmMTRcdTdhNDJcdTUy''@;'; put 'put ''ZGZcdTU4OTNcdTYxNTVcdTYyMGFcdTY2YWVcdTZiY2RcdTdjM2ZcdTgzZTlcdTUwMjNcdTRmZjhcdTUzMDVcdTU0NDZcdTU4MzFcdTU5NDlcdTViOWRcdTVjZjBcdTVjZWZcdTVkMjlcdTVlOTZcdTYyYjFcdTYzNjdcdTY1M2VcdTY1YjlcdTY3MGIiXSxbImNiYTEiLCJcdTZjZDVcdTZjZTFc''@;'; put 'put ''dTcwZjlcdTc4MzJcdTdlMmJcdTgwZGVcdTgyYjNcdTg0MGNcdTg0ZWNcdTg3MDJcdTg5MTJcdThhMmFcdThjNGFcdTkwYTZcdTkyZDJcdTk4ZmRcdTljZjNcdTlkNmNcdTRlNGZcdTRlYTFcdTUwOGRcdTUyNTZcdTU3NGFcdTU5YThcdTVlM2RcdTVmZDhcdTVmZDlcdTYyM2ZcdTY2YjRcdTY3''@;'; put 'put ''MWJcdTY3ZDBcdTY4ZDJcdTUxOTJcdTdkMjFcdTgwYWFcdTgxYThcdThiMDBcdThjOGNcdThjYmZcdTkyN2VcdTk2MzJcdTU0MjBcdTk4MmNcdTUzMTdcdTUwZDVcdTUzNWNcdTU4YThcdTY0YjJcdTY3MzRcdTcyNjdcdTc3NjZcdTdhNDZcdTkxZTZcdTUyYzNcdTZjYTFcdTZiODZcdTU4MDBc''@;'; put 'put ''dTVlNGNcdTU5NTRcdTY3MmNcdTdmZmJcdTUxZTFcdTc2YzZcdTY0NjlcdTc4ZThcdTliNTRcdTllYmJcdTU3Y2JcdTU5YjlcdTY2MjdcdTY3OWFcdTZiY2VcdTU0ZTlcdTY5ZDlcdTVlNTVcdTgxOWNcdTY3OTVcdTliYWFcdTY3ZmVcdTljNTJcdTY4NWRcdTRlYTZcdTRmZTNcdTUzYzhcdTYy''@;'; put 'put ''YjlcdTY3MmJcdTZjYWJcdThmYzRcdTRmYWRcdTdlNmRcdTllYmZcdTRlMDdcdTYxNjJcdTZlODAiXSxbImNjYTEiLCJcdTZmMmJcdTg1MTNcdTU0NzNcdTY3MmFcdTliNDVcdTVkZjNcdTdiOTVcdTVjYWNcdTViYzZcdTg3MWNcdTZlNGFcdTg0ZDFcdTdhMTRcdTgxMDhcdTU5OTlcdTdjOGRc''@;'; put 'put ''dTZjMTFcdTc3MjBcdTUyZDlcdTU5MjJcdTcxMjFcdTcyNWZcdTc3ZGJcdTk3MjdcdTlkNjFcdTY5MGJcdTVhN2ZcdTVhMThcdTUxYTVcdTU0MGRcdTU0N2RcdTY2MGVcdTc2ZGZcdThmZjdcdTkyOThcdTljZjRcdTU5ZWFcdTcyNWRcdTZlYzVcdTUxNGRcdTY4YzlcdTdkYmZcdTdkZWNcdTk3''@;'; put 'put ''NjJcdTllYmFcdTY0NzhcdTZhMjFcdTgzMDJcdTU5ODRcdTViNWZcdTZiZGJcdTczMWJcdTc2ZjJcdTdkYjJcdTgwMTdcdTg0OTlcdTUxMzJcdTY3MjhcdTllZDlcdTc2ZWVcdTY3NjJcdTUyZmZcdTk5MDVcdTVjMjRcdTYyM2JcdTdjN2VcdThjYjBcdTU1NGZcdTYwYjZcdTdkMGJcdTk1ODBc''@;'; put 'put ''dTUzMDFcdTRlNWZcdTUxYjZcdTU5MWNcdTcyM2FcdTgwMzZcdTkxY2VcdTVmMjVcdTc3ZTJcdTUzODRcdTVmNzlcdTdkMDRcdTg1YWNcdThhMzNcdThlOGRcdTk3NTZcdTY3ZjNcdTg1YWVcdTk0NTNcdTYxMDlcdTYxMDhcdTZjYjlcdTc2NTIiXSxbImNkYTEiLCJcdThhZWRcdThmMzhcdTU1''@;'; put 'put ''MmZcdTRmNTFcdTUxMmFcdTUyYzdcdTUzY2JcdTViYTVcdTVlN2RcdTYwYTBcdTYxODJcdTYzZDZcdTY3MDlcdTY3ZGFcdTZlNjdcdTZkOGNcdTczMzZcdTczMzdcdTc1MzFcdTc5NTBcdTg4ZDVcdThhOThcdTkwNGFcdTkwOTFcdTkwZjVcdTk2YzRcdTg3OGRcdTU5MTVcdTRlODhcdTRmNTlc''@;'; put 'put ''dTRlMGVcdThhODlcdThmM2ZcdTk4MTBcdTUwYWRcdTVlN2NcdTU5OTZcdTViYjlcdTVlYjhcdTYzZGFcdTYzZmFcdTY0YzFcdTY2ZGNcdTY5NGFcdTY5ZDhcdTZkMGJcdTZlYjZcdTcxOTRcdTc1MjhcdTdhYWZcdTdmOGFcdTgwMDBcdTg0NDlcdTg0YzlcdTg5ODFcdThiMjFcdThlMGFcdTkw''@;'; put 'put ''NjVcdTk2N2RcdTk5MGFcdTYxN2VcdTYyOTFcdTZiMzJcdTZjODNcdTZkNzRcdTdmY2NcdTdmZmNcdTZkYzBcdTdmODVcdTg3YmFcdTg4ZjhcdTY3NjVcdTgzYjFcdTk4M2NcdTk2ZjdcdTZkMWJcdTdkNjFcdTg0M2RcdTkxNmFcdTRlNzFcdTUzNzVcdTVkNTBcdTZiMDRcdTZmZWJcdTg1Y2Rc''@;'; put 'put ''dTg2MmRcdTg5YTdcdTUyMjlcdTU0MGZcdTVjNjVcdTY3NGVcdTY4YThcdTc0MDZcdTc0ODMiXSxbImNlYTEiLCJcdTc1ZTJcdTg4Y2ZcdTg4ZTFcdTkxY2NcdTk2ZTJcdTk2NzhcdTVmOGJcdTczODdcdTdhY2JcdTg0NGVcdTYzYTBcdTc1NjVcdTUyODlcdTZkNDFcdTZlOWNcdTc0MDlcdTc1''@;'; put 'put ''NTlcdTc4NmJcdTdjOTJcdTk2ODZcdTdhZGNcdTlmOGRcdTRmYjZcdTYxNmVcdTY1YzVcdTg2NWNcdTRlODZcdTRlYWVcdTUwZGFcdTRlMjFcdTUxY2NcdTViZWVcdTY1OTlcdTY4ODFcdTZkYmNcdTczMWZcdTc2NDJcdTc3YWRcdTdhMWNcdTdjZTdcdTgyNmZcdThhZDJcdTkwN2NcdTkxY2Zc''@;'; put 'put ''dTk2NzVcdTk4MThcdTUyOWJcdTdkZDFcdTUwMmJcdTUzOThcdTY3OTdcdTZkY2JcdTcxZDBcdTc0MzNcdTgxZThcdThmMmFcdTk2YTNcdTljNTdcdTllOWZcdTc0NjBcdTU4NDFcdTZkOTlcdTdkMmZcdTk4NWVcdTRlZTRcdTRmMzZcdTRmOGJcdTUxYjdcdTUyYjFcdTVkYmFcdTYwMWNcdTcz''@;'; put 'put ''YjJcdTc5M2NcdTgyZDNcdTkyMzRcdTk2YjdcdTk2ZjZcdTk3MGFcdTllOTdcdTlmNjJcdTY2YTZcdTZiNzRcdTUyMTdcdTUyYTNcdTcwYzhcdTg4YzJcdTVlYzlcdTYwNGJcdTYxOTBcdTZmMjNcdTcxNDlcdTdjM2VcdTdkZjRcdTgwNmYiXSxbImNmYTEiLCJcdTg0ZWVcdTkwMjNcdTkzMmNc''@;'; put 'put ''dTU0NDJcdTliNmZcdTZhZDNcdTcwODlcdThjYzJcdThkZWZcdTk3MzJcdTUyYjRcdTVhNDFcdTVlY2FcdTVmMDRcdTY3MTdcdTY5N2NcdTY5OTRcdTZkNmFcdTZmMGZcdTcyNjJcdTcyZmNcdTdiZWRcdTgwMDFcdTgwN2VcdTg3NGJcdTkwY2VcdTUxNmRcdTllOTNcdTc5ODRcdTgwOGJcdTkz''@;'; put 'put ''MzJcdThhZDZcdTUwMmRcdTU0OGNcdThhNzFcdTZiNmFcdThjYzRcdTgxMDdcdTYwZDFcdTY3YTBcdTlkZjJcdTRlOTlcdTRlOThcdTljMTBcdThhNmJcdTg1YzFcdTg1NjhcdTY5MDBcdTZlN2VcdTc4OTdcdTgxNTUiXSxbImQwYTEiLCJcdTVmMGNcdTRlMTBcdTRlMTVcdTRlMmFcdTRlMzFc''@;'; put 'put ''dTRlMzZcdTRlM2NcdTRlM2ZcdTRlNDJcdTRlNTZcdTRlNThcdTRlODJcdTRlODVcdThjNmJcdTRlOGFcdTgyMTJcdTVmMGRcdTRlOGVcdTRlOWVcdTRlOWZcdTRlYTBcdTRlYTJcdTRlYjBcdTRlYjNcdTRlYjZcdTRlY2VcdTRlY2RcdTRlYzRcdTRlYzZcdTRlYzJcdTRlZDdcdTRlZGVcdTRl''@;'; put 'put ''ZWRcdTRlZGZcdTRlZjdcdTRmMDlcdTRmNWFcdTRmMzBcdTRmNWJcdTRmNWRcdTRmNTdcdTRmNDdcdTRmNzZcdTRmODhcdTRmOGZcdTRmOThcdTRmN2JcdTRmNjlcdTRmNzBcdTRmOTFcdTRmNmZcdTRmODZcdTRmOTZcdTUxMThcdTRmZDRcdTRmZGZcdTRmY2VcdTRmZDhcdTRmZGJcdTRmZDFc''@;'; put 'put ''dTRmZGFcdTRmZDBcdTRmZTRcdTRmZTVcdTUwMWFcdTUwMjhcdTUwMTRcdTUwMmFcdTUwMjVcdTUwMDVcdTRmMWNcdTRmZjZcdTUwMjFcdTUwMjlcdTUwMmNcdTRmZmVcdTRmZWZcdTUwMTFcdTUwMDZcdTUwNDNcdTUwNDdcdTY3MDNcdTUwNTVcdTUwNTBcdTUwNDhcdTUwNWFcdTUwNTZcdTUw''@;'; put 'put ''NmNcdTUwNzhcdTUwODBcdTUwOWFcdTUwODVcdTUwYjRcdTUwYjIiXSxbImQxYTEiLCJcdTUwYzlcdTUwY2FcdTUwYjNcdTUwYzJcdTUwZDZcdTUwZGVcdTUwZTVcdTUwZWRcdTUwZTNcdTUwZWVcdTUwZjlcdTUwZjVcdTUxMDlcdTUxMDFcdTUxMDJcdTUxMTZcdTUxMTVcdTUxMTRcdTUxMWFc''@;'; put 'put ''dTUxMjFcdTUxM2FcdTUxMzdcdTUxM2NcdTUxM2JcdTUxM2ZcdTUxNDBcdTUxNTJcdTUxNGNcdTUxNTRcdTUxNjJcdTdhZjhcdTUxNjlcdTUxNmFcdTUxNmVcdTUxODBcdTUxODJcdTU2ZDhcdTUxOGNcdTUxODlcdTUxOGZcdTUxOTFcdTUxOTNcdTUxOTVcdTUxOTZcdTUxYTRcdTUxYTZcdTUx''@;'; put 'put ''YTJcdTUxYTlcdTUxYWFcdTUxYWJcdTUxYjNcdTUxYjFcdTUxYjJcdTUxYjBcdTUxYjVcdTUxYmRcdTUxYzVcdTUxYzlcdTUxZGJcdTUxZTBcdTg2NTVcdTUxZTlcdTUxZWRcdTUxZjBcdTUxZjVcdTUxZmVcdTUyMDRcdTUyMGJcdTUyMTRcdTUyMGVcdTUyMjdcdTUyMmFcdTUyMmVcdTUyMzNc''@;'; put 'put ''dTUyMzlcdTUyNGZcdTUyNDRcdTUyNGJcdTUyNGNcdTUyNWVcdTUyNTRcdTUyNmFcdTUyNzRcdTUyNjlcdTUyNzNcdTUyN2ZcdTUyN2RcdTUyOGRcdTUyOTRcdTUyOTJcdTUyNzFcdTUyODhcdTUyOTFcdThmYTgiXSxbImQyYTEiLCJcdThmYTdcdTUyYWNcdTUyYWRcdTUyYmNcdTUyYjVcdTUy''@;'; put 'put ''YzFcdTUyY2RcdTUyZDdcdTUyZGVcdTUyZTNcdTUyZTZcdTk4ZWRcdTUyZTBcdTUyZjNcdTUyZjVcdTUyZjhcdTUyZjlcdTUzMDZcdTUzMDhcdTc1MzhcdTUzMGRcdTUzMTBcdTUzMGZcdTUzMTVcdTUzMWFcdTUzMjNcdTUzMmZcdTUzMzFcdTUzMzNcdTUzMzhcdTUzNDBcdTUzNDZcdTUzNDVc''@;'; put 'put ''dTRlMTdcdTUzNDlcdTUzNGRcdTUxZDZcdTUzNWVcdTUzNjlcdTUzNmVcdTU5MThcdTUzN2JcdTUzNzdcdTUzODJcdTUzOTZcdTUzYTBcdTUzYTZcdTUzYTVcdTUzYWVcdTUzYjBcdTUzYjZcdTUzYzNcdTdjMTJcdTk2ZDlcdTUzZGZcdTY2ZmNcdTcxZWVcdTUzZWVcdTUzZThcdTUzZWRcdTUz''@;'; put 'put ''ZmFcdTU0MDFcdTU0M2RcdTU0NDBcdTU0MmNcdTU0MmRcdTU0M2NcdTU0MmVcdTU0MzZcdTU0MjlcdTU0MWRcdTU0NGVcdTU0OGZcdTU0NzVcdTU0OGVcdTU0NWZcdTU0NzFcdTU0NzdcdTU0NzBcdTU0OTJcdTU0N2JcdTU0ODBcdTU0NzZcdTU0ODRcdTU0OTBcdTU0ODZcdTU0YzdcdTU0YTJc''@;'; put 'put ''dTU0YjhcdTU0YTVcdTU0YWNcdTU0YzRcdTU0YzhcdTU0YTgiXSxbImQzYTEiLCJcdTU0YWJcdTU0YzJcdTU0YTRcdTU0YmVcdTU0YmNcdTU0ZDhcdTU0ZTVcdTU0ZTZcdTU1MGZcdTU1MTRcdTU0ZmRcdTU0ZWVcdTU0ZWRcdTU0ZmFcdTU0ZTJcdTU1MzlcdTU1NDBcdTU1NjNcdTU1NGNcdTU1''@;'; put 'put ''MmVcdTU1NWNcdTU1NDVcdTU1NTZcdTU1NTdcdTU1MzhcdTU1MzNcdTU1NWRcdTU1OTlcdTU1ODBcdTU0YWZcdTU1OGFcdTU1OWZcdTU1N2JcdTU1N2VcdTU1OThcdTU1OWVcdTU1YWVcdTU1N2NcdTU1ODNcdTU1YTlcdTU1ODdcdTU1YThcdTU1ZGFcdTU1YzVcdTU1ZGZcdTU1YzRcdTU1ZGNc''@;'; put 'put ''dTU1ZTRcdTU1ZDRcdTU2MTRcdTU1ZjdcdTU2MTZcdTU1ZmVcdTU1ZmRcdTU2MWJcdTU1ZjlcdTU2NGVcdTU2NTBcdTcxZGZcdTU2MzRcdTU2MzZcdTU2MzJcdTU2MzhcdTU2NmJcdTU2NjRcdTU2MmZcdTU2NmNcdTU2NmFcdTU2ODZcdTU2ODBcdTU2OGFcdTU2YTBcdTU2OTRcdTU2OGZcdTU2''@;'; put 'put ''YTVcdTU2YWVcdTU2YjZcdTU2YjRcdTU2YzJcdTU2YmNcdTU2YzFcdTU2YzNcdTU2YzBcdTU2YzhcdTU2Y2VcdTU2ZDFcdTU2ZDNcdTU2ZDdcdTU2ZWVcdTU2ZjlcdTU3MDBcdTU2ZmZcdTU3MDRcdTU3MDkiXSxbImQ0YTEiLCJcdTU3MDhcdTU3MGJcdTU3MGRcdTU3MTNcdTU3MThcdTU3MTZc''@;'; put 'put ''dTU1YzdcdTU3MWNcdTU3MjZcdTU3MzdcdTU3MzhcdTU3NGVcdTU3M2JcdTU3NDBcdTU3NGZcdTU3NjlcdTU3YzBcdTU3ODhcdTU3NjFcdTU3N2ZcdTU3ODlcdTU3OTNcdTU3YTBcdTU3YjNcdTU3YTRcdTU3YWFcdTU3YjBcdTU3YzNcdTU3YzZcdTU3ZDRcdTU3ZDJcdTU3ZDNcdTU4MGFcdTU3''@;'; put 'put ''ZDZcdTU3ZTNcdTU4MGJcdTU4MTlcdTU4MWRcdTU4NzJcdTU4MjFcdTU4NjJcdTU4NGJcdTU4NzBcdTZiYzBcdTU4NTJcdTU4M2RcdTU4NzlcdTU4ODVcdTU4YjlcdTU4OWZcdTU4YWJcdTU4YmFcdTU4ZGVcdTU4YmJcdTU4YjhcdTU4YWVcdTU4YzVcdTU4ZDNcdTU4ZDFcdTU4ZDdcdTU4ZDlc''@;'; put 'put ''dTU4ZDhcdTU4ZTVcdTU4ZGNcdTU4ZTRcdTU4ZGZcdTU4ZWZcdTU4ZmFcdTU4ZjlcdTU4ZmJcdTU4ZmNcdTU4ZmRcdTU5MDJcdTU5MGFcdTU5MTBcdTU5MWJcdTY4YTZcdTU5MjVcdTU5MmNcdTU5MmRcdTU5MzJcdTU5MzhcdTU5M2VcdTdhZDJcdTU5NTVcdTU5NTBcdTU5NGVcdTU5NWFcdTU5''@;'; put 'put ''NThcdTU5NjJcdTU5NjBcdTU5NjdcdTU5NmNcdTU5NjkiXSxbImQ1YTEiLCJcdTU5NzhcdTU5ODFcdTU5OWRcdTRmNWVcdTRmYWJcdTU5YTNcdTU5YjJcdTU5YzZcdTU5ZThcdTU5ZGNcdTU5OGRcdTU5ZDlcdTU5ZGFcdTVhMjVcdTVhMWZcdTVhMTFcdTVhMWNcdTVhMDlcdTVhMWFcdTVhNDBc''@;'; put 'put ''dTVhNmNcdTVhNDlcdTVhMzVcdTVhMzZcdTVhNjJcdTVhNmFcdTVhOWFcdTVhYmNcdTVhYmVcdTVhY2JcdTVhYzJcdTVhYmRcdTVhZTNcdTVhZDdcdTVhZTZcdTVhZTlcdTVhZDZcdTVhZmFcdTVhZmJcdTViMGNcdTViMGJcdTViMTZcdTViMzJcdTVhZDBcdTViMmFcdTViMzZcdTViM2VcdTVi''@;'; put 'put ''NDNcdTViNDVcdTViNDBcdTViNTFcdTViNTVcdTViNWFcdTViNWJcdTViNjVcdTViNjlcdTViNzBcdTViNzNcdTViNzVcdTViNzhcdTY1ODhcdTViN2FcdTViODBcdTViODNcdTViYTZcdTViYjhcdTViYzNcdTViYzdcdTViYzlcdTViZDRcdTViZDBcdTViZTRcdTViZTZcdTViZTJcdTViZGVc''@;'; put 'put ''dTViZTVcdTViZWJcdTViZjBcdTViZjZcdTViZjNcdTVjMDVcdTVjMDdcdTVjMDhcdTVjMGRcdTVjMTNcdTVjMjBcdTVjMjJcdTVjMjhcdTVjMzhcdTVjMzlcdTVjNDFcdTVjNDZcdTVjNGVcdTVjNTMiXSxbImQ2YTEiLCJcdTVjNTBcdTVjNGZcdTViNzFcdTVjNmNcdTVjNmVcdTRlNjJcdTVj''@;'; put 'put ''NzZcdTVjNzlcdTVjOGNcdTVjOTFcdTVjOTRcdTU5OWJcdTVjYWJcdTVjYmJcdTVjYjZcdTVjYmNcdTVjYjdcdTVjYzVcdTVjYmVcdTVjYzdcdTVjZDlcdTVjZTlcdTVjZmRcdTVjZmFcdTVjZWRcdTVkOGNcdTVjZWFcdTVkMGJcdTVkMTVcdTVkMTdcdTVkNWNcdTVkMWZcdTVkMWJcdTVkMTFc''@;'; put 'put ''dTVkMTRcdTVkMjJcdTVkMWFcdTVkMTlcdTVkMThcdTVkNGNcdTVkNTJcdTVkNGVcdTVkNGJcdTVkNmNcdTVkNzNcdTVkNzZcdTVkODdcdTVkODRcdTVkODJcdTVkYTJcdTVkOWRcdTVkYWNcdTVkYWVcdTVkYmRcdTVkOTBcdTVkYjdcdTVkYmNcdTVkYzlcdTVkY2RcdTVkZDNcdTVkZDJcdTVk''@;'; put 'put ''ZDZcdTVkZGJcdTVkZWJcdTVkZjJcdTVkZjVcdTVlMGJcdTVlMWFcdTVlMTlcdTVlMTFcdTVlMWJcdTVlMzZcdTVlMzdcdTVlNDRcdTVlNDNcdTVlNDBcdTVlNGVcdTVlNTdcdTVlNTRcdTVlNWZcdTVlNjJcdTVlNjRcdTVlNDdcdTVlNzVcdTVlNzZcdTVlN2FcdTllYmNcdTVlN2ZcdTVlYTBc''@;'; put 'put ''dTVlYzFcdTVlYzJcdTVlYzhcdTVlZDBcdTVlY2YiXSxbImQ3YTEiLCJcdTVlZDZcdTVlZTNcdTVlZGRcdTVlZGFcdTVlZGJcdTVlZTJcdTVlZTFcdTVlZThcdTVlZTlcdTVlZWNcdTVlZjFcdTVlZjNcdTVlZjBcdTVlZjRcdTVlZjhcdTVlZmVcdTVmMDNcdTVmMDlcdTVmNWRcdTVmNWNcdTVm''@;'; put 'put ''MGJcdTVmMTFcdTVmMTZcdTVmMjlcdTVmMmRcdTVmMzhcdTVmNDFcdTVmNDhcdTVmNGNcdTVmNGVcdTVmMmZcdTVmNTFcdTVmNTZcdTVmNTdcdTVmNTlcdTVmNjFcdTVmNmRcdTVmNzNcdTVmNzdcdTVmODNcdTVmODJcdTVmN2ZcdTVmOGFcdTVmODhcdTVmOTFcdTVmODdcdTVmOWVcdTVmOTlc''@;'; put 'put ''dTVmOThcdTVmYTBcdTVmYThcdTVmYWRcdTVmYmNcdTVmZDZcdTVmZmJcdTVmZTRcdTVmZjhcdTVmZjFcdTVmZGRcdTYwYjNcdTVmZmZcdTYwMjFcdTYwNjBcdTYwMTlcdTYwMTBcdTYwMjlcdTYwMGVcdTYwMzFcdTYwMWJcdTYwMTVcdTYwMmJcdTYwMjZcdTYwMGZcdTYwM2FcdTYwNWFcdTYw''@;'; put 'put ''NDFcdTYwNmFcdTYwNzdcdTYwNWZcdTYwNGFcdTYwNDZcdTYwNGRcdTYwNjNcdTYwNDNcdTYwNjRcdTYwNDJcdTYwNmNcdTYwNmJcdTYwNTlcdTYwODFcdTYwOGRcdTYwZTdcdTYwODNcdTYwOWEiXSxbImQ4YTEiLCJcdTYwODRcdTYwOWJcdTYwOTZcdTYwOTdcdTYwOTJcdTYwYTdcdTYwOGJc''@;'; put 'put ''dTYwZTFcdTYwYjhcdTYwZTBcdTYwZDNcdTYwYjRcdTVmZjBcdTYwYmRcdTYwYzZcdTYwYjVcdTYwZDhcdTYxNGRcdTYxMTVcdTYxMDZcdTYwZjZcdTYwZjdcdTYxMDBcdTYwZjRcdTYwZmFcdTYxMDNcdTYxMjFcdTYwZmJcdTYwZjFcdTYxMGRcdTYxMGVcdTYxNDdcdTYxM2VcdTYxMjhcdTYx''@;'; put 'put ''MjdcdTYxNGFcdTYxM2ZcdTYxM2NcdTYxMmNcdTYxMzRcdTYxM2RcdTYxNDJcdTYxNDRcdTYxNzNcdTYxNzdcdTYxNThcdTYxNTlcdTYxNWFcdTYxNmJcdTYxNzRcdTYxNmZcdTYxNjVcdTYxNzFcdTYxNWZcdTYxNWRcdTYxNTNcdTYxNzVcdTYxOTlcdTYxOTZcdTYxODdcdTYxYWNcdTYxOTRc''@;'; put 'put ''dTYxOWFcdTYxOGFcdTYxOTFcdTYxYWJcdTYxYWVcdTYxY2NcdTYxY2FcdTYxYzlcdTYxZjdcdTYxYzhcdTYxYzNcdTYxYzZcdTYxYmFcdTYxY2JcdTdmNzlcdTYxY2RcdTYxZTZcdTYxZTNcdTYxZjZcdTYxZmFcdTYxZjRcdTYxZmZcdTYxZmRcdTYxZmNcdTYxZmVcdTYyMDBcdTYyMDhcdTYy''@;'; put 'put ''MDlcdTYyMGRcdTYyMGNcdTYyMTRcdTYyMWIiXSxbImQ5YTEiLCJcdTYyMWVcdTYyMjFcdTYyMmFcdTYyMmVcdTYyMzBcdTYyMzJcdTYyMzNcdTYyNDFcdTYyNGVcdTYyNWVcdTYyNjNcdTYyNWJcdTYyNjBcdTYyNjhcdTYyN2NcdTYyODJcdTYyODlcdTYyN2VcdTYyOTJcdTYyOTNcdTYyOTZc''@;'; put 'put ''dTYyZDRcdTYyODNcdTYyOTRcdTYyZDdcdTYyZDFcdTYyYmJcdTYyY2ZcdTYyZmZcdTYyYzZcdTY0ZDRcdTYyYzhcdTYyZGNcdTYyY2NcdTYyY2FcdTYyYzJcdTYyYzdcdTYyOWJcdTYyYzlcdTYzMGNcdTYyZWVcdTYyZjFcdTYzMjdcdTYzMDJcdTYzMDhcdTYyZWZcdTYyZjVcdTYzNTBcdTYz''@;'; put 'put ''M2VcdTYzNGRcdTY0MWNcdTYzNGZcdTYzOTZcdTYzOGVcdTYzODBcdTYzYWJcdTYzNzZcdTYzYTNcdTYzOGZcdTYzODlcdTYzOWZcdTYzYjVcdTYzNmJcdTYzNjlcdTYzYmVcdTYzZTlcdTYzYzBcdTYzYzZcdTYzZTNcdTYzYzlcdTYzZDJcdTYzZjZcdTYzYzRcdTY0MTZcdTY0MzRcdTY0MDZc''@;'; put 'put ''dTY0MTNcdTY0MjZcdTY0MzZcdTY1MWRcdTY0MTdcdTY0MjhcdTY0MGZcdTY0NjdcdTY0NmZcdTY0NzZcdTY0NGVcdTY1MmFcdTY0OTVcdTY0OTNcdTY0YTVcdTY0YTlcdTY0ODhcdTY0YmMiXSxbImRhYTEiLCJcdTY0ZGFcdTY0ZDJcdTY0YzVcdTY0YzdcdTY0YmJcdTY0ZDhcdTY0YzJcdTY0''@;'; put 'put ''ZjFcdTY0ZTdcdTgyMDlcdTY0ZTBcdTY0ZTFcdTYyYWNcdTY0ZTNcdTY0ZWZcdTY1MmNcdTY0ZjZcdTY0ZjRcdTY0ZjJcdTY0ZmFcdTY1MDBcdTY0ZmRcdTY1MThcdTY1MWNcdTY1MDVcdTY1MjRcdTY1MjNcdTY1MmJcdTY1MzRcdTY1MzVcdTY1MzdcdTY1MzZcdTY1MzhcdTc1NGJcdTY1NDhc''@;'; put 'put ''dTY1NTZcdTY1NTVcdTY1NGRcdTY1NThcdTY1NWVcdTY1NWRcdTY1NzJcdTY1NzhcdTY1ODJcdTY1ODNcdThiOGFcdTY1OWJcdTY1OWZcdTY1YWJcdTY1YjdcdTY1YzNcdTY1YzZcdTY1YzFcdTY1YzRcdTY1Y2NcdTY1ZDJcdTY1ZGJcdTY1ZDlcdTY1ZTBcdTY1ZTFcdTY1ZjFcdTY3NzJcdTY2''@;'; put 'put ''MGFcdTY2MDNcdTY1ZmJcdTY3NzNcdTY2MzVcdTY2MzZcdTY2MzRcdTY2MWNcdTY2NGZcdTY2NDRcdTY2NDlcdTY2NDFcdTY2NWVcdTY2NWRcdTY2NjRcdTY2NjdcdTY2NjhcdTY2NWZcdTY2NjJcdTY2NzBcdTY2ODNcdTY2ODhcdTY2OGVcdTY2ODlcdTY2ODRcdTY2OThcdTY2OWRcdTY2YzFc''@;'; put 'put ''dTY2YjlcdTY2YzlcdTY2YmVcdTY2YmMiXSxbImRiYTEiLCJcdTY2YzRcdTY2YjhcdTY2ZDZcdTY2ZGFcdTY2ZTBcdTY2M2ZcdTY2ZTZcdTY2ZTlcdTY2ZjBcdTY2ZjVcdTY2ZjdcdTY3MGZcdTY3MTZcdTY3MWVcdTY3MjZcdTY3MjdcdTk3MzhcdTY3MmVcdTY3M2ZcdTY3MzZcdTY3NDFcdTY3''@;'; put 'put ''MzhcdTY3MzdcdTY3NDZcdTY3NWVcdTY3NjBcdTY3NTlcdTY3NjNcdTY3NjRcdTY3ODlcdTY3NzBcdTY3YTlcdTY3N2NcdTY3NmFcdTY3OGNcdTY3OGJcdTY3YTZcdTY3YTFcdTY3ODVcdTY3YjdcdTY3ZWZcdTY3YjRcdTY3ZWNcdTY3YjNcdTY3ZTlcdTY3YjhcdTY3ZTRcdTY3ZGVcdTY3ZGRc''@;'; put 'put ''dTY3ZTJcdTY3ZWVcdTY3YjlcdTY3Y2VcdTY3YzZcdTY3ZTdcdTZhOWNcdTY4MWVcdTY4NDZcdTY4MjlcdTY4NDBcdTY4NGRcdTY4MzJcdTY4NGVcdTY4YjNcdTY4MmJcdTY4NTlcdTY4NjNcdTY4NzdcdTY4N2ZcdTY4OWZcdTY4OGZcdTY4YWRcdTY4OTRcdTY4OWRcdTY4OWJcdTY4ODNcdTZh''@;'; put 'put ''YWVcdTY4YjlcdTY4NzRcdTY4YjVcdTY4YTBcdTY4YmFcdTY5MGZcdTY4OGRcdTY4N2VcdTY5MDFcdTY4Y2FcdTY5MDhcdTY4ZDhcdTY5MjJcdTY5MjZcdTY4ZTFcdTY5MGNcdTY4Y2QiXSxbImRjYTEiLCJcdTY4ZDRcdTY4ZTdcdTY4ZDVcdTY5MzZcdTY5MTJcdTY5MDRcdTY4ZDdcdTY4ZTNc''@;'; put 'put ''dTY5MjVcdTY4ZjlcdTY4ZTBcdTY4ZWZcdTY5MjhcdTY5MmFcdTY5MWFcdTY5MjNcdTY5MjFcdTY4YzZcdTY5NzlcdTY5NzdcdTY5NWNcdTY5NzhcdTY5NmJcdTY5NTRcdTY5N2VcdTY5NmVcdTY5MzlcdTY5NzRcdTY5M2RcdTY5NTlcdTY5MzBcdTY5NjFcdTY5NWVcdTY5NWRcdTY5ODFcdTY5''@;'; put 'put ''NmFcdTY5YjJcdTY5YWVcdTY5ZDBcdTY5YmZcdTY5YzFcdTY5ZDNcdTY5YmVcdTY5Y2VcdTViZThcdTY5Y2FcdTY5ZGRcdTY5YmJcdTY5YzNcdTY5YTdcdTZhMmVcdTY5OTFcdTY5YTBcdTY5OWNcdTY5OTVcdTY5YjRcdTY5ZGVcdTY5ZThcdTZhMDJcdTZhMWJcdTY5ZmZcdTZiMGFcdTY5Zjlc''@;'; put 'put ''dTY5ZjJcdTY5ZTdcdTZhMDVcdTY5YjFcdTZhMWVcdTY5ZWRcdTZhMTRcdTY5ZWJcdTZhMGFcdTZhMTJcdTZhYzFcdTZhMjNcdTZhMTNcdTZhNDRcdTZhMGNcdTZhNzJcdTZhMzZcdTZhNzhcdTZhNDdcdTZhNjJcdTZhNTlcdTZhNjZcdTZhNDhcdTZhMzhcdTZhMjJcdTZhOTBcdTZhOGRcdTZh''@;'; put 'put ''YTBcdTZhODRcdTZhYTJcdTZhYTMiXSxbImRkYTEiLCJcdTZhOTdcdTg2MTdcdTZhYmJcdTZhYzNcdTZhYzJcdTZhYjhcdTZhYjNcdTZhYWNcdTZhZGVcdTZhZDFcdTZhZGZcdTZhYWFcdTZhZGFcdTZhZWFcdTZhZmJcdTZiMDVcdTg2MTZcdTZhZmFcdTZiMTJcdTZiMTZcdTliMzFcdTZiMWZc''@;'; put 'put ''dTZiMzhcdTZiMzdcdTc2ZGNcdTZiMzlcdTk4ZWVcdTZiNDdcdTZiNDNcdTZiNDlcdTZiNTBcdTZiNTlcdTZiNTRcdTZiNWJcdTZiNWZcdTZiNjFcdTZiNzhcdTZiNzlcdTZiN2ZcdTZiODBcdTZiODRcdTZiODNcdTZiOGRcdTZiOThcdTZiOTVcdTZiOWVcdTZiYTRcdTZiYWFcdTZiYWJcdTZi''@;'; put 'put ''YWZcdTZiYjJcdTZiYjFcdTZiYjNcdTZiYjdcdTZiYmNcdTZiYzZcdTZiY2JcdTZiZDNcdTZiZGZcdTZiZWNcdTZiZWJcdTZiZjNcdTZiZWZcdTllYmVcdTZjMDhcdTZjMTNcdTZjMTRcdTZjMWJcdTZjMjRcdTZjMjNcdTZjNWVcdTZjNTVcdTZjNjJcdTZjNmFcdTZjODJcdTZjOGRcdTZjOWFc''@;'; put 'put ''dTZjODFcdTZjOWJcdTZjN2VcdTZjNjhcdTZjNzNcdTZjOTJcdTZjOTBcdTZjYzRcdTZjZjFcdTZjZDNcdTZjYmRcdTZjZDdcdTZjYzVcdTZjZGRcdTZjYWVcdTZjYjFcdTZjYmUiXSxbImRlYTEiLCJcdTZjYmFcdTZjZGJcdTZjZWZcdTZjZDlcdTZjZWFcdTZkMWZcdTg4NGRcdTZkMzZcdTZk''@;'; put 'put ''MmJcdTZkM2RcdTZkMzhcdTZkMTlcdTZkMzVcdTZkMzNcdTZkMTJcdTZkMGNcdTZkNjNcdTZkOTNcdTZkNjRcdTZkNWFcdTZkNzlcdTZkNTlcdTZkOGVcdTZkOTVcdTZmZTRcdTZkODVcdTZkZjlcdTZlMTVcdTZlMGFcdTZkYjVcdTZkYzdcdTZkZTZcdTZkYjhcdTZkYzZcdTZkZWNcdTZkZGVc''@;'; put 'put ''dTZkY2NcdTZkZThcdTZkZDJcdTZkYzVcdTZkZmFcdTZkZDlcdTZkZTRcdTZkZDVcdTZkZWFcdTZkZWVcdTZlMmRcdTZlNmVcdTZlMmVcdTZlMTlcdTZlNzJcdTZlNWZcdTZlM2VcdTZlMjNcdTZlNmJcdTZlMmJcdTZlNzZcdTZlNGRcdTZlMWZcdTZlNDNcdTZlM2FcdTZlNGVcdTZlMjRcdTZl''@;'; put 'put ''ZmZcdTZlMWRcdTZlMzhcdTZlODJcdTZlYWFcdTZlOThcdTZlYzlcdTZlYjdcdTZlZDNcdTZlYmRcdTZlYWZcdTZlYzRcdTZlYjJcdTZlZDRcdTZlZDVcdTZlOGZcdTZlYTVcdTZlYzJcdTZlOWZcdTZmNDFcdTZmMTFcdTcwNGNcdTZlZWNcdTZlZjhcdTZlZmVcdTZmM2ZcdTZlZjJcdTZmMzFc''@;'; put 'put ''dTZlZWZcdTZmMzJcdTZlY2MiXSxbImRmYTEiLCJcdTZmM2VcdTZmMTNcdTZlZjdcdTZmODZcdTZmN2FcdTZmNzhcdTZmODFcdTZmODBcdTZmNmZcdTZmNWJcdTZmZjNcdTZmNmRcdTZmODJcdTZmN2NcdTZmNThcdTZmOGVcdTZmOTFcdTZmYzJcdTZmNjZcdTZmYjNcdTZmYTNcdTZmYTFcdTZm''@;'; put 'put ''YTRcdTZmYjlcdTZmYzZcdTZmYWFcdTZmZGZcdTZmZDVcdTZmZWNcdTZmZDRcdTZmZDhcdTZmZjFcdTZmZWVcdTZmZGJcdTcwMDlcdTcwMGJcdTZmZmFcdTcwMTFcdTcwMDFcdTcwMGZcdTZmZmVcdTcwMWJcdTcwMWFcdTZmNzRcdTcwMWRcdTcwMThcdTcwMWZcdTcwMzBcdTcwM2VcdTcwMzJc''@;'; put 'put ''dTcwNTFcdTcwNjNcdTcwOTlcdTcwOTJcdTcwYWZcdTcwZjFcdTcwYWNcdTcwYjhcdTcwYjNcdTcwYWVcdTcwZGZcdTcwY2JcdTcwZGRcdTcwZDlcdTcxMDlcdTcwZmRcdTcxMWNcdTcxMTlcdTcxNjVcdTcxNTVcdTcxODhcdTcxNjZcdTcxNjJcdTcxNGNcdTcxNTZcdTcxNmNcdTcxOGZcdTcx''@;'; put 'put ''ZmJcdTcxODRcdTcxOTVcdTcxYThcdTcxYWNcdTcxZDdcdTcxYjlcdTcxYmVcdTcxZDJcdTcxYzlcdTcxZDRcdTcxY2VcdTcxZTBcdTcxZWNcdTcxZTdcdTcxZjVcdTcxZmMiXSxbImUwYTEiLCJcdTcxZjlcdTcxZmZcdTcyMGRcdTcyMTBcdTcyMWJcdTcyMjhcdTcyMmRcdTcyMmNcdTcyMzBc''@;'; put 'put ''dTcyMzJcdTcyM2JcdTcyM2NcdTcyM2ZcdTcyNDBcdTcyNDZcdTcyNGJcdTcyNThcdTcyNzRcdTcyN2VcdTcyODJcdTcyODFcdTcyODdcdTcyOTJcdTcyOTZcdTcyYTJcdTcyYTdcdTcyYjlcdTcyYjJcdTcyYzNcdTcyYzZcdTcyYzRcdTcyY2VcdTcyZDJcdTcyZTJcdTcyZTBcdTcyZTFcdTcy''@;'; put 'put ''ZjlcdTcyZjdcdTUwMGZcdTczMTdcdTczMGFcdTczMWNcdTczMTZcdTczMWRcdTczMzRcdTczMmZcdTczMjlcdTczMjVcdTczM2VcdTczNGVcdTczNGZcdTllZDhcdTczNTdcdTczNmFcdTczNjhcdTczNzBcdTczNzhcdTczNzVcdTczN2JcdTczN2FcdTczYzhcdTczYjNcdTczY2VcdTczYmJc''@;'; put 'put ''dTczYzBcdTczZTVcdTczZWVcdTczZGVcdTc0YTJcdTc0MDVcdTc0NmZcdTc0MjVcdTczZjhcdTc0MzJcdTc0M2FcdTc0NTVcdTc0M2ZcdTc0NWZcdTc0NTlcdTc0NDFcdTc0NWNcdTc0NjlcdTc0NzBcdTc0NjNcdTc0NmFcdTc0NzZcdTc0N2VcdTc0OGJcdTc0OWVcdTc0YTdcdTc0Y2FcdTc0''@;'; put 'put ''Y2ZcdTc0ZDRcdTczZjEiXSxbImUxYTEiLCJcdTc0ZTBcdTc0ZTNcdTc0ZTdcdTc0ZTlcdTc0ZWVcdTc0ZjJcdTc0ZjBcdTc0ZjFcdTc0ZjhcdTc0ZjdcdTc1MDRcdTc1MDNcdTc1MDVcdTc1MGNcdTc1MGVcdTc1MGRcdTc1MTVcdTc1MTNcdTc1MWVcdTc1MjZcdTc1MmNcdTc1M2NcdTc1NDRc''@;'; put 'put ''dTc1NGRcdTc1NGFcdTc1NDlcdTc1NWJcdTc1NDZcdTc1NWFcdTc1NjlcdTc1NjRcdTc1NjdcdTc1NmJcdTc1NmRcdTc1NzhcdTc1NzZcdTc1ODZcdTc1ODdcdTc1NzRcdTc1OGFcdTc1ODlcdTc1ODJcdTc1OTRcdTc1OWFcdTc1OWRcdTc1YTVcdTc1YTNcdTc1YzJcdTc1YjNcdTc1YzNcdTc1''@;'; put 'put ''YjVcdTc1YmRcdTc1YjhcdTc1YmNcdTc1YjFcdTc1Y2RcdTc1Y2FcdTc1ZDJcdTc1ZDlcdTc1ZTNcdTc1ZGVcdTc1ZmVcdTc1ZmZcdTc1ZmNcdTc2MDFcdTc1ZjBcdTc1ZmFcdTc1ZjJcdTc1ZjNcdTc2MGJcdTc2MGRcdTc2MDlcdTc2MWZcdTc2MjdcdTc2MjBcdTc2MjFcdTc2MjJcdTc2MjRc''@;'; put 'put ''dTc2MzRcdTc2MzBcdTc2M2JcdTc2NDdcdTc2NDhcdTc2NDZcdTc2NWNcdTc2NThcdTc2NjFcdTc2NjJcdTc2NjhcdTc2NjlcdTc2NmFcdTc2NjdcdTc2NmNcdTc2NzAiXSxbImUyYTEiLCJcdTc2NzJcdTc2NzZcdTc2NzhcdTc2N2NcdTc2ODBcdTc2ODNcdTc2ODhcdTc2OGJcdTc2OGVcdTc2''@;'; put 'put ''OTZcdTc2OTNcdTc2OTlcdTc2OWFcdTc2YjBcdTc2YjRcdTc2YjhcdTc2YjlcdTc2YmFcdTc2YzJcdTc2Y2RcdTc2ZDZcdTc2ZDJcdTc2ZGVcdTc2ZTFcdTc2ZTVcdTc2ZTdcdTc2ZWFcdTg2MmZcdTc2ZmJcdTc3MDhcdTc3MDdcdTc3MDRcdTc3MjlcdTc3MjRcdTc3MWVcdTc3MjVcdTc3MjZc''@;'; put 'put ''dTc3MWJcdTc3MzdcdTc3MzhcdTc3NDdcdTc3NWFcdTc3NjhcdTc3NmJcdTc3NWJcdTc3NjVcdTc3N2ZcdTc3N2VcdTc3NzlcdTc3OGVcdTc3OGJcdTc3OTFcdTc3YTBcdTc3OWVcdTc3YjBcdTc3YjZcdTc3YjlcdTc3YmZcdTc3YmNcdTc3YmRcdTc3YmJcdTc3YzdcdTc3Y2RcdTc3ZDdcdTc3''@;'; put 'put ''ZGFcdTc3ZGNcdTc3ZTNcdTc3ZWVcdTc3ZmNcdTc4MGNcdTc4MTJcdTc5MjZcdTc4MjBcdTc5MmFcdTc4NDVcdTc4OGVcdTc4NzRcdTc4ODZcdTc4N2NcdTc4OWFcdTc4OGNcdTc4YTNcdTc4YjVcdTc4YWFcdTc4YWZcdTc4ZDFcdTc4YzZcdTc4Y2JcdTc4ZDRcdTc4YmVcdTc4YmNcdTc4YzVc''@;'; put 'put ''dTc4Y2FcdTc4ZWMiXSxbImUzYTEiLCJcdTc4ZTdcdTc4ZGFcdTc4ZmRcdTc4ZjRcdTc5MDdcdTc5MTJcdTc5MTFcdTc5MTlcdTc5MmNcdTc5MmJcdTc5NDBcdTc5NjBcdTc5NTdcdTc5NWZcdTc5NWFcdTc5NTVcdTc5NTNcdTc5N2FcdTc5N2ZcdTc5OGFcdTc5OWRcdTc5YTdcdTlmNGJcdTc5''@;'; put 'put ''YWFcdTc5YWVcdTc5YjNcdTc5YjlcdTc5YmFcdTc5YzlcdTc5ZDVcdTc5ZTdcdTc5ZWNcdTc5ZTFcdTc5ZTNcdTdhMDhcdTdhMGRcdTdhMThcdTdhMTlcdTdhMjBcdTdhMWZcdTc5ODBcdTdhMzFcdTdhM2JcdTdhM2VcdTdhMzdcdTdhNDNcdTdhNTdcdTdhNDlcdTdhNjFcdTdhNjJcdTdhNjlc''@;'; put 'put ''dTlmOWRcdTdhNzBcdTdhNzlcdTdhN2RcdTdhODhcdTdhOTdcdTdhOTVcdTdhOThcdTdhOTZcdTdhYTlcdTdhYzhcdTdhYjBcdTdhYjZcdTdhYzVcdTdhYzRcdTdhYmZcdTkwODNcdTdhYzdcdTdhY2FcdTdhY2RcdTdhY2ZcdTdhZDVcdTdhZDNcdTdhZDlcdTdhZGFcdTdhZGRcdTdhZTFcdTdh''@;'; put 'put ''ZTJcdTdhZTZcdTdhZWRcdTdhZjBcdTdiMDJcdTdiMGZcdTdiMGFcdTdiMDZcdTdiMzNcdTdiMThcdTdiMTlcdTdiMWVcdTdiMzVcdTdiMjhcdTdiMzZcdTdiNTAiXSxbImU0YTEiLCJcdTdiN2FcdTdiMDRcdTdiNGRcdTdiMGJcdTdiNGNcdTdiNDVcdTdiNzVcdTdiNjVcdTdiNzRcdTdiNjdc''@;'; put 'put ''dTdiNzBcdTdiNzFcdTdiNmNcdTdiNmVcdTdiOWRcdTdiOThcdTdiOWZcdTdiOGRcdTdiOWNcdTdiOWFcdTdiOGJcdTdiOTJcdTdiOGZcdTdiNWRcdTdiOTlcdTdiY2JcdTdiYzFcdTdiY2NcdTdiY2ZcdTdiYjRcdTdiYzZcdTdiZGRcdTdiZTlcdTdjMTFcdTdjMTRcdTdiZTZcdTdiZTVcdTdj''@;'; put 'put ''NjBcdTdjMDBcdTdjMDdcdTdjMTNcdTdiZjNcdTdiZjdcdTdjMTdcdTdjMGRcdTdiZjZcdTdjMjNcdTdjMjdcdTdjMmFcdTdjMWZcdTdjMzdcdTdjMmJcdTdjM2RcdTdjNGNcdTdjNDNcdTdjNTRcdTdjNGZcdTdjNDBcdTdjNTBcdTdjNThcdTdjNWZcdTdjNjRcdTdjNTZcdTdjNjVcdTdjNmNc''@;'; put 'put ''dTdjNzVcdTdjODNcdTdjOTBcdTdjYTRcdTdjYWRcdTdjYTJcdTdjYWJcdTdjYTFcdTdjYThcdTdjYjNcdTdjYjJcdTdjYjFcdTdjYWVcdTdjYjlcdTdjYmRcdTdjYzBcdTdjYzVcdTdjYzJcdTdjZDhcdTdjZDJcdTdjZGNcdTdjZTJcdTliM2JcdTdjZWZcdTdjZjJcdTdjZjRcdTdjZjZcdTdj''@;'; put 'put ''ZmFcdTdkMDYiXSxbImU1YTEiLCJcdTdkMDJcdTdkMWNcdTdkMTVcdTdkMGFcdTdkNDVcdTdkNGJcdTdkMmVcdTdkMzJcdTdkM2ZcdTdkMzVcdTdkNDZcdTdkNzNcdTdkNTZcdTdkNGVcdTdkNzJcdTdkNjhcdTdkNmVcdTdkNGZcdTdkNjNcdTdkOTNcdTdkODlcdTdkNWJcdTdkOGZcdTdkN2Rc''@;'; put 'put ''dTdkOWJcdTdkYmFcdTdkYWVcdTdkYTNcdTdkYjVcdTdkYzdcdTdkYmRcdTdkYWJcdTdlM2RcdTdkYTJcdTdkYWZcdTdkZGNcdTdkYjhcdTdkOWZcdTdkYjBcdTdkZDhcdTdkZGRcdTdkZTRcdTdkZGVcdTdkZmJcdTdkZjJcdTdkZTFcdTdlMDVcdTdlMGFcdTdlMjNcdTdlMjFcdTdlMTJcdTdl''@;'; put 'put ''MzFcdTdlMWZcdTdlMDlcdTdlMGJcdTdlMjJcdTdlNDZcdTdlNjZcdTdlM2JcdTdlMzVcdTdlMzlcdTdlNDNcdTdlMzdcdTdlMzJcdTdlM2FcdTdlNjdcdTdlNWRcdTdlNTZcdTdlNWVcdTdlNTlcdTdlNWFcdTdlNzlcdTdlNmFcdTdlNjlcdTdlN2NcdTdlN2JcdTdlODNcdTdkZDVcdTdlN2Rc''@;'; put 'put ''dThmYWVcdTdlN2ZcdTdlODhcdTdlODlcdTdlOGNcdTdlOTJcdTdlOTBcdTdlOTNcdTdlOTRcdTdlOTZcdTdlOGVcdTdlOWJcdTdlOWNcdTdmMzhcdTdmM2EiXSxbImU2YTEiLCJcdTdmNDVcdTdmNGNcdTdmNGRcdTdmNGVcdTdmNTBcdTdmNTFcdTdmNTVcdTdmNTRcdTdmNThcdTdmNWZcdTdm''@;'; put 'put ''NjBcdTdmNjhcdTdmNjlcdTdmNjdcdTdmNzhcdTdmODJcdTdmODZcdTdmODNcdTdmODhcdTdmODdcdTdmOGNcdTdmOTRcdTdmOWVcdTdmOWRcdTdmOWFcdTdmYTNcdTdmYWZcdTdmYjJcdTdmYjlcdTdmYWVcdTdmYjZcdTdmYjhcdThiNzFcdTdmYzVcdTdmYzZcdTdmY2FcdTdmZDVcdTdmZDRc''@;'; put 'put ''dTdmZTFcdTdmZTZcdTdmZTlcdTdmZjNcdTdmZjlcdTk4ZGNcdTgwMDZcdTgwMDRcdTgwMGJcdTgwMTJcdTgwMThcdTgwMTlcdTgwMWNcdTgwMjFcdTgwMjhcdTgwM2ZcdTgwM2JcdTgwNGFcdTgwNDZcdTgwNTJcdTgwNThcdTgwNWFcdTgwNWZcdTgwNjJcdTgwNjhcdTgwNzNcdTgwNzJcdTgw''@;'; put 'put ''NzBcdTgwNzZcdTgwNzlcdTgwN2RcdTgwN2ZcdTgwODRcdTgwODZcdTgwODVcdTgwOWJcdTgwOTNcdTgwOWFcdTgwYWRcdTUxOTBcdTgwYWNcdTgwZGJcdTgwZTVcdTgwZDlcdTgwZGRcdTgwYzRcdTgwZGFcdTgwZDZcdTgxMDlcdTgwZWZcdTgwZjFcdTgxMWJcdTgxMjlcdTgxMjNcdTgxMmZc''@;'; put 'put ''dTgxNGIiXSxbImU3YTEiLCJcdTk2OGJcdTgxNDZcdTgxM2VcdTgxNTNcdTgxNTFcdTgwZmNcdTgxNzFcdTgxNmVcdTgxNjVcdTgxNjZcdTgxNzRcdTgxODNcdTgxODhcdTgxOGFcdTgxODBcdTgxODJcdTgxYTBcdTgxOTVcdTgxYTRcdTgxYTNcdTgxNWZcdTgxOTNcdTgxYTlcdTgxYjBcdTgx''@;'; put 'put ''YjVcdTgxYmVcdTgxYjhcdTgxYmRcdTgxYzBcdTgxYzJcdTgxYmFcdTgxYzlcdTgxY2RcdTgxZDFcdTgxZDlcdTgxZDhcdTgxYzhcdTgxZGFcdTgxZGZcdTgxZTBcdTgxZTdcdTgxZmFcdTgxZmJcdTgxZmVcdTgyMDFcdTgyMDJcdTgyMDVcdTgyMDdcdTgyMGFcdTgyMGRcdTgyMTBcdTgyMTZc''@;'; put 'put ''dTgyMjlcdTgyMmJcdTgyMzhcdTgyMzNcdTgyNDBcdTgyNTlcdTgyNThcdTgyNWRcdTgyNWFcdTgyNWZcdTgyNjRcdTgyNjJcdTgyNjhcdTgyNmFcdTgyNmJcdTgyMmVcdTgyNzFcdTgyNzdcdTgyNzhcdTgyN2VcdTgyOGRcdTgyOTJcdTgyYWJcdTgyOWZcdTgyYmJcdTgyYWNcdTgyZTFcdTgy''@;'; put 'put ''ZTNcdTgyZGZcdTgyZDJcdTgyZjRcdTgyZjNcdTgyZmFcdTgzOTNcdTgzMDNcdTgyZmJcdTgyZjlcdTgyZGVcdTgzMDZcdTgyZGNcdTgzMDlcdTgyZDkiXSxbImU4YTEiLCJcdTgzMzVcdTgzMzRcdTgzMTZcdTgzMzJcdTgzMzFcdTgzNDBcdTgzMzlcdTgzNTBcdTgzNDVcdTgzMmZcdTgzMmJc''@;'; put 'put ''dTgzMTdcdTgzMThcdTgzODVcdTgzOWFcdTgzYWFcdTgzOWZcdTgzYTJcdTgzOTZcdTgzMjNcdTgzOGVcdTgzODdcdTgzOGFcdTgzN2NcdTgzYjVcdTgzNzNcdTgzNzVcdTgzYTBcdTgzODlcdTgzYThcdTgzZjRcdTg0MTNcdTgzZWJcdTgzY2VcdTgzZmRcdTg0MDNcdTgzZDhcdTg0MGJcdTgz''@;'; put 'put ''YzFcdTgzZjdcdTg0MDdcdTgzZTBcdTgzZjJcdTg0MGRcdTg0MjJcdTg0MjBcdTgzYmRcdTg0MzhcdTg1MDZcdTgzZmJcdTg0NmRcdTg0MmFcdTg0M2NcdTg1NWFcdTg0ODRcdTg0NzdcdTg0NmJcdTg0YWRcdTg0NmVcdTg0ODJcdTg0NjlcdTg0NDZcdTg0MmNcdTg0NmZcdTg0NzlcdTg0MzVc''@;'; put 'put ''dTg0Y2FcdTg0NjJcdTg0YjlcdTg0YmZcdTg0OWZcdTg0ZDlcdTg0Y2RcdTg0YmJcdTg0ZGFcdTg0ZDBcdTg0YzFcdTg0YzZcdTg0ZDZcdTg0YTFcdTg1MjFcdTg0ZmZcdTg0ZjRcdTg1MTdcdTg1MThcdTg1MmNcdTg1MWZcdTg1MTVcdTg1MTRcdTg0ZmNcdTg1NDBcdTg1NjNcdTg1NThcdTg1''@;'; put 'put ''NDgiXSxbImU5YTEiLCJcdTg1NDFcdTg2MDJcdTg1NGJcdTg1NTVcdTg1ODBcdTg1YTRcdTg1ODhcdTg1OTFcdTg1OGFcdTg1YThcdTg1NmRcdTg1OTRcdTg1OWJcdTg1ZWFcdTg1ODdcdTg1OWNcdTg1NzdcdTg1N2VcdTg1OTBcdTg1YzlcdTg1YmFcdTg1Y2ZcdTg1YjlcdTg1ZDBcdTg1ZDVc''@;'; put 'put ''dTg1ZGRcdTg1ZTVcdTg1ZGNcdTg1ZjlcdTg2MGFcdTg2MTNcdTg2MGJcdTg1ZmVcdTg1ZmFcdTg2MDZcdTg2MjJcdTg2MWFcdTg2MzBcdTg2M2ZcdTg2NGRcdTRlNTVcdTg2NTRcdTg2NWZcdTg2NjdcdTg2NzFcdTg2OTNcdTg2YTNcdTg2YTlcdTg2YWFcdTg2OGJcdTg2OGNcdTg2YjZcdTg2''@;'; put 'put ''YWZcdTg2YzRcdTg2YzZcdTg2YjBcdTg2YzlcdTg4MjNcdTg2YWJcdTg2ZDRcdTg2ZGVcdTg2ZTlcdTg2ZWNcdTg2ZGZcdTg2ZGJcdTg2ZWZcdTg3MTJcdTg3MDZcdTg3MDhcdTg3MDBcdTg3MDNcdTg2ZmJcdTg3MTFcdTg3MDlcdTg3MGRcdTg2ZjlcdTg3MGFcdTg3MzRcdTg3M2ZcdTg3Mzdc''@;'; put 'put ''dTg3M2JcdTg3MjVcdTg3MjlcdTg3MWFcdTg3NjBcdTg3NWZcdTg3NzhcdTg3NGNcdTg3NGVcdTg3NzRcdTg3NTdcdTg3NjhcdTg3NmVcdTg3NTkiXSxbImVhYTEiLCJcdTg3NTNcdTg3NjNcdTg3NmFcdTg4MDVcdTg3YTJcdTg3OWZcdTg3ODJcdTg3YWZcdTg3Y2JcdTg3YmRcdTg3YzBcdTg3''@;'; put 'put ''ZDBcdTk2ZDZcdTg3YWJcdTg3YzRcdTg3YjNcdTg3YzdcdTg3YzZcdTg3YmJcdTg3ZWZcdTg3ZjJcdTg3ZTBcdTg4MGZcdTg4MGRcdTg3ZmVcdTg3ZjZcdTg3ZjdcdTg4MGVcdTg3ZDJcdTg4MTFcdTg4MTZcdTg4MTVcdTg4MjJcdTg4MjFcdTg4MzFcdTg4MzZcdTg4MzlcdTg4MjdcdTg4M2Jc''@;'; put 'put ''dTg4NDRcdTg4NDJcdTg4NTJcdTg4NTlcdTg4NWVcdTg4NjJcdTg4NmJcdTg4ODFcdTg4N2VcdTg4OWVcdTg4NzVcdTg4N2RcdTg4YjVcdTg4NzJcdTg4ODJcdTg4OTdcdTg4OTJcdTg4YWVcdTg4OTlcdTg4YTJcdTg4OGRcdTg4YTRcdTg4YjBcdTg4YmZcdTg4YjFcdTg4YzNcdTg4YzRcdTg4''@;'; put 'put ''ZDRcdTg4ZDhcdTg4ZDlcdTg4ZGRcdTg4ZjlcdTg5MDJcdTg4ZmNcdTg4ZjRcdTg4ZThcdTg4ZjJcdTg5MDRcdTg5MGNcdTg5MGFcdTg5MTNcdTg5NDNcdTg5MWVcdTg5MjVcdTg5MmFcdTg5MmJcdTg5NDFcdTg5NDRcdTg5M2JcdTg5MzZcdTg5MzhcdTg5NGNcdTg5MWRcdTg5NjBcdTg5NWUi''@;'; put 'put ''XSxbImViYTEiLCJcdTg5NjZcdTg5NjRcdTg5NmRcdTg5NmFcdTg5NmZcdTg5NzRcdTg5NzdcdTg5N2VcdTg5ODNcdTg5ODhcdTg5OGFcdTg5OTNcdTg5OThcdTg5YTFcdTg5YTlcdTg5YTZcdTg5YWNcdTg5YWZcdTg5YjJcdTg5YmFcdTg5YmRcdTg5YmZcdTg5YzBcdTg5ZGFcdTg5ZGNcdTg5''@;'; put 'put ''ZGRcdTg5ZTdcdTg5ZjRcdTg5ZjhcdThhMDNcdThhMTZcdThhMTBcdThhMGNcdThhMWJcdThhMWRcdThhMjVcdThhMzZcdThhNDFcdThhNWJcdThhNTJcdThhNDZcdThhNDhcdThhN2NcdThhNmRcdThhNmNcdThhNjJcdThhODVcdThhODJcdThhODRcdThhYThcdThhYTFcdThhOTFcdThhYTVc''@;'; put 'put ''dThhYTZcdThhOWFcdThhYTNcdThhYzRcdThhY2RcdThhYzJcdThhZGFcdThhZWJcdThhZjNcdThhZTdcdThhZTRcdThhZjFcdThiMTRcdThhZTBcdThhZTJcdThhZjdcdThhZGVcdThhZGJcdThiMGNcdThiMDdcdThiMWFcdThhZTFcdThiMTZcdThiMTBcdThiMTdcdThiMjBcdThiMzNcdTk3''@;'; put 'put ''YWJcdThiMjZcdThiMmJcdThiM2VcdThiMjhcdThiNDFcdThiNGNcdThiNGZcdThiNGVcdThiNDlcdThiNTZcdThiNWJcdThiNWFcdThiNmIiXSxbImVjYTEiLCJcdThiNWZcdThiNmNcdThiNmZcdThiNzRcdThiN2RcdThiODBcdThiOGNcdThiOGVcdThiOTJcdThiOTNcdThiOTZcdThiOTlc''@;'; put 'put ''dThiOWFcdThjM2FcdThjNDFcdThjM2ZcdThjNDhcdThjNGNcdThjNGVcdThjNTBcdThjNTVcdThjNjJcdThjNmNcdThjNzhcdThjN2FcdThjODJcdThjODlcdThjODVcdThjOGFcdThjOGRcdThjOGVcdThjOTRcdThjN2NcdThjOThcdTYyMWRcdThjYWRcdThjYWFcdThjYmRcdThjYjJcdThj''@;'; put 'put ''YjNcdThjYWVcdThjYjZcdThjYzhcdThjYzFcdThjZTRcdThjZTNcdThjZGFcdThjZmRcdThjZmFcdThjZmJcdThkMDRcdThkMDVcdThkMGFcdThkMDdcdThkMGZcdThkMGRcdThkMTBcdTlmNGVcdThkMTNcdThjY2RcdThkMTRcdThkMTZcdThkNjdcdThkNmRcdThkNzFcdThkNzNcdThkODFc''@;'; put 'put ''dThkOTlcdThkYzJcdThkYmVcdThkYmFcdThkY2ZcdThkZGFcdThkZDZcdThkY2NcdThkZGJcdThkY2JcdThkZWFcdThkZWJcdThkZGZcdThkZTNcdThkZmNcdThlMDhcdThlMDlcdThkZmZcdThlMWRcdThlMWVcdThlMTBcdThlMWZcdThlNDJcdThlMzVcdThlMzBcdThlMzRcdThlNGEiXSxb''@;'; put 'put ''ImVkYTEiLCJcdThlNDdcdThlNDlcdThlNGNcdThlNTBcdThlNDhcdThlNTlcdThlNjRcdThlNjBcdThlMmFcdThlNjNcdThlNTVcdThlNzZcdThlNzJcdThlN2NcdThlODFcdThlODdcdThlODVcdThlODRcdThlOGJcdThlOGFcdThlOTNcdThlOTFcdThlOTRcdThlOTlcdThlYWFcdThlYTFc''@;'; put 'put ''dThlYWNcdThlYjBcdThlYzZcdThlYjFcdThlYmVcdThlYzVcdThlYzhcdThlY2JcdThlZGJcdThlZTNcdThlZmNcdThlZmJcdThlZWJcdThlZmVcdThmMGFcdThmMDVcdThmMTVcdThmMTJcdThmMTlcdThmMTNcdThmMWNcdThmMWZcdThmMWJcdThmMGNcdThmMjZcdThmMzNcdThmM2JcdThm''@;'; put 'put ''MzlcdThmNDVcdThmNDJcdThmM2VcdThmNGNcdThmNDlcdThmNDZcdThmNGVcdThmNTdcdThmNWNcdThmNjJcdThmNjNcdThmNjRcdThmOWNcdThmOWZcdThmYTNcdThmYWRcdThmYWZcdThmYjdcdThmZGFcdThmZTVcdThmZTJcdThmZWFcdThmZWZcdTkwODdcdThmZjRcdTkwMDVcdThmZjlc''@;'; put 'put ''dThmZmFcdTkwMTFcdTkwMTVcdTkwMjFcdTkwMGRcdTkwMWVcdTkwMTZcdTkwMGJcdTkwMjdcdTkwMzZcdTkwMzVcdTkwMzlcdThmZjgiXSxbImVlYTEiLCJcdTkwNGZcdTkwNTBcdTkwNTFcdTkwNTJcdTkwMGVcdTkwNDlcdTkwM2VcdTkwNTZcdTkwNThcdTkwNWVcdTkwNjhcdTkwNmZcdTkw''@;'; put 'put ''NzZcdTk2YThcdTkwNzJcdTkwODJcdTkwN2RcdTkwODFcdTkwODBcdTkwOGFcdTkwODlcdTkwOGZcdTkwYThcdTkwYWZcdTkwYjFcdTkwYjVcdTkwZTJcdTkwZTRcdTYyNDhcdTkwZGJcdTkxMDJcdTkxMTJcdTkxMTlcdTkxMzJcdTkxMzBcdTkxNGFcdTkxNTZcdTkxNThcdTkxNjNcdTkxNjVc''@;'; put 'put ''dTkxNjlcdTkxNzNcdTkxNzJcdTkxOGJcdTkxODlcdTkxODJcdTkxYTJcdTkxYWJcdTkxYWZcdTkxYWFcdTkxYjVcdTkxYjRcdTkxYmFcdTkxYzBcdTkxYzFcdTkxYzlcdTkxY2JcdTkxZDBcdTkxZDZcdTkxZGZcdTkxZTFcdTkxZGJcdTkxZmNcdTkxZjVcdTkxZjZcdTkyMWVcdTkxZmZcdTky''@;'; put 'put ''MTRcdTkyMmNcdTkyMTVcdTkyMTFcdTkyNWVcdTkyNTdcdTkyNDVcdTkyNDlcdTkyNjRcdTkyNDhcdTkyOTVcdTkyM2ZcdTkyNGJcdTkyNTBcdTkyOWNcdTkyOTZcdTkyOTNcdTkyOWJcdTkyNWFcdTkyY2ZcdTkyYjlcdTkyYjdcdTkyZTlcdTkzMGZcdTkyZmFcdTkzNDRcdTkzMmUiXSxbImVm''@;'; put 'put ''YTEiLCJcdTkzMTlcdTkzMjJcdTkzMWFcdTkzMjNcdTkzM2FcdTkzMzVcdTkzM2JcdTkzNWNcdTkzNjBcdTkzN2NcdTkzNmVcdTkzNTZcdTkzYjBcdTkzYWNcdTkzYWRcdTkzOTRcdTkzYjlcdTkzZDZcdTkzZDdcdTkzZThcdTkzZTVcdTkzZDhcdTkzYzNcdTkzZGRcdTkzZDBcdTkzYzhcdTkz''@;'; put 'put ''ZTRcdTk0MWFcdTk0MTRcdTk0MTNcdTk0MDNcdTk0MDdcdTk0MTBcdTk0MzZcdTk0MmJcdTk0MzVcdTk0MjFcdTk0M2FcdTk0NDFcdTk0NTJcdTk0NDRcdTk0NWJcdTk0NjBcdTk0NjJcdTk0NWVcdTk0NmFcdTkyMjlcdTk0NzBcdTk0NzVcdTk0NzdcdTk0N2RcdTk0NWFcdTk0N2NcdTk0N2Vc''@;'; put 'put ''dTk0ODFcdTk0N2ZcdTk1ODJcdTk1ODdcdTk1OGFcdTk1OTRcdTk1OTZcdTk1OThcdTk1OTlcdTk1YTBcdTk1YThcdTk1YTdcdTk1YWRcdTk1YmNcdTk1YmJcdTk1YjlcdTk1YmVcdTk1Y2FcdTZmZjZcdTk1YzNcdTk1Y2RcdTk1Y2NcdTk1ZDVcdTk1ZDRcdTk1ZDZcdTk1ZGNcdTk1ZTFcdTk1''@;'; put 'put ''ZTVcdTk1ZTJcdTk2MjFcdTk2MjhcdTk2MmVcdTk2MmZcdTk2NDJcdTk2NGNcdTk2NGZcdTk2NGJcdTk2NzdcdTk2NWNcdTk2NWUiXSxbImYwYTEiLCJcdTk2NWRcdTk2NWZcdTk2NjZcdTk2NzJcdTk2NmNcdTk2OGRcdTk2OThcdTk2OTVcdTk2OTdcdTk2YWFcdTk2YTdcdTk2YjFcdTk2YjJc''@;'; put 'put ''dTk2YjBcdTk2YjRcdTk2YjZcdTk2YjhcdTk2YjlcdTk2Y2VcdTk2Y2JcdTk2YzlcdTk2Y2RcdTg5NGRcdTk2ZGNcdTk3MGRcdTk2ZDVcdTk2ZjlcdTk3MDRcdTk3MDZcdTk3MDhcdTk3MTNcdTk3MGVcdTk3MTFcdTk3MGZcdTk3MTZcdTk3MTlcdTk3MjRcdTk3MmFcdTk3MzBcdTk3MzlcdTk3''@;'; put 'put ''M2RcdTk3M2VcdTk3NDRcdTk3NDZcdTk3NDhcdTk3NDJcdTk3NDlcdTk3NWNcdTk3NjBcdTk3NjRcdTk3NjZcdTk3NjhcdTUyZDJcdTk3NmJcdTk3NzFcdTk3NzlcdTk3ODVcdTk3N2NcdTk3ODFcdTk3N2FcdTk3ODZcdTk3OGJcdTk3OGZcdTk3OTBcdTk3OWNcdTk3YThcdTk3YTZcdTk3YTNc''@;'; put 'put ''dTk3YjNcdTk3YjRcdTk3YzNcdTk3YzZcdTk3YzhcdTk3Y2JcdTk3ZGNcdTk3ZWRcdTlmNGZcdTk3ZjJcdTdhZGZcdTk3ZjZcdTk3ZjVcdTk4MGZcdTk4MGNcdTk4MzhcdTk4MjRcdTk4MjFcdTk4MzdcdTk4M2RcdTk4NDZcdTk4NGZcdTk4NGJcdTk4NmJcdTk4NmZcdTk4NzAiXSxbImYxYTEi''@;'; put 'put ''LCJcdTk4NzFcdTk4NzRcdTk4NzNcdTk4YWFcdTk4YWZcdTk4YjFcdTk4YjZcdTk4YzRcdTk4YzNcdTk4YzZcdTk4ZTlcdTk4ZWJcdTk5MDNcdTk5MDlcdTk5MTJcdTk5MTRcdTk5MThcdTk5MjFcdTk5MWRcdTk5MWVcdTk5MjRcdTk5MjBcdTk5MmNcdTk5MmVcdTk5M2RcdTk5M2VcdTk5NDJc''@;'; put 'put ''dTk5NDlcdTk5NDVcdTk5NTBcdTk5NGJcdTk5NTFcdTk5NTJcdTk5NGNcdTk5NTVcdTk5OTdcdTk5OThcdTk5YTVcdTk5YWRcdTk5YWVcdTk5YmNcdTk5ZGZcdTk5ZGJcdTk5ZGRcdTk5ZDhcdTk5ZDFcdTk5ZWRcdTk5ZWVcdTk5ZjFcdTk5ZjJcdTk5ZmJcdTk5ZjhcdTlhMDFcdTlhMGZcdTlh''@;'; put 'put ''MDVcdTk5ZTJcdTlhMTlcdTlhMmJcdTlhMzdcdTlhNDVcdTlhNDJcdTlhNDBcdTlhNDNcdTlhM2VcdTlhNTVcdTlhNGRcdTlhNWJcdTlhNTdcdTlhNWZcdTlhNjJcdTlhNjVcdTlhNjRcdTlhNjlcdTlhNmJcdTlhNmFcdTlhYWRcdTlhYjBcdTlhYmNcdTlhYzBcdTlhY2ZcdTlhZDFcdTlhZDNc''@;'; put 'put ''dTlhZDRcdTlhZGVcdTlhZGZcdTlhZTJcdTlhZTNcdTlhZTZcdTlhZWZcdTlhZWJcdTlhZWVcdTlhZjRcdTlhZjFcdTlhZjciXSxbImYyYTEiLCJcdTlhZmJcdTliMDZcdTliMThcdTliMWFcdTliMWZcdTliMjJcdTliMjNcdTliMjVcdTliMjdcdTliMjhcdTliMjlcdTliMmFcdTliMmVcdTli''@;'; put 'put ''MmZcdTliMzJcdTliNDRcdTliNDNcdTliNGZcdTliNGRcdTliNGVcdTliNTFcdTliNThcdTliNzRcdTliOTNcdTliODNcdTliOTFcdTliOTZcdTliOTdcdTliOWZcdTliYTBcdTliYThcdTliYjRcdTliYzBcdTliY2FcdTliYjlcdTliYzZcdTliY2ZcdTliZDFcdTliZDJcdTliZTNcdTliZTJc''@;'; put 'put ''dTliZTRcdTliZDRcdTliZTFcdTljM2FcdTliZjJcdTliZjFcdTliZjBcdTljMTVcdTljMTRcdTljMDlcdTljMTNcdTljMGNcdTljMDZcdTljMDhcdTljMTJcdTljMGFcdTljMDRcdTljMmVcdTljMWJcdTljMjVcdTljMjRcdTljMjFcdTljMzBcdTljNDdcdTljMzJcdTljNDZcdTljM2VcdTlj''@;'; put 'put ''NWFcdTljNjBcdTljNjdcdTljNzZcdTljNzhcdTljZTdcdTljZWNcdTljZjBcdTlkMDlcdTlkMDhcdTljZWJcdTlkMDNcdTlkMDZcdTlkMmFcdTlkMjZcdTlkYWZcdTlkMjNcdTlkMWZcdTlkNDRcdTlkMTVcdTlkMTJcdTlkNDFcdTlkM2ZcdTlkM2VcdTlkNDZcdTlkNDgiXSxbImYzYTEiLCJc''@;'; put 'put ''dTlkNWRcdTlkNWVcdTlkNjRcdTlkNTFcdTlkNTBcdTlkNTlcdTlkNzJcdTlkODlcdTlkODdcdTlkYWJcdTlkNmZcdTlkN2FcdTlkOWFcdTlkYTRcdTlkYTlcdTlkYjJcdTlkYzRcdTlkYzFcdTlkYmJcdTlkYjhcdTlkYmFcdTlkYzZcdTlkY2ZcdTlkYzJcdTlkZDlcdTlkZDNcdTlkZjhcdTlk''@;'; put 'put ''ZTZcdTlkZWRcdTlkZWZcdTlkZmRcdTllMWFcdTllMWJcdTllMWVcdTllNzVcdTllNzlcdTllN2RcdTllODFcdTllODhcdTllOGJcdTllOGNcdTllOTJcdTllOTVcdTllOTFcdTllOWRcdTllYTVcdTllYTlcdTllYjhcdTllYWFcdTllYWRcdTk3NjFcdTllY2NcdTllY2VcdTllY2ZcdTllZDBc''@;'; put 'put ''dTllZDRcdTllZGNcdTllZGVcdTllZGRcdTllZTBcdTllZTVcdTllZThcdTllZWZcdTllZjRcdTllZjZcdTllZjdcdTllZjlcdTllZmJcdTllZmNcdTllZmRcdTlmMDdcdTlmMDhcdTc2YjdcdTlmMTVcdTlmMjFcdTlmMmNcdTlmM2VcdTlmNGFcdTlmNTJcdTlmNTRcdTlmNjNcdTlmNWZcdTlm''@;'; put 'put ''NjBcdTlmNjFcdTlmNjZcdTlmNjdcdTlmNmNcdTlmNmFcdTlmNzdcdTlmNzJcdTlmNzZcdTlmOTVcdTlmOWNcdTlmYTAiXSxbImY0YTEiLCJcdTU4MmZcdTY5YzdcdTkwNTlcdTc0NjRcdTUxZGNcdTcxOTkiXSxbImY5YTEiLCJcdTdlOGFcdTg5MWNcdTkzNDhcdTkyODhcdTg0ZGNcdTRmYzlc''@;'; put 'put ''dTcwYmJcdTY2MzFcdTY4YzhcdTkyZjlcdTY2ZmJcdTVmNDVcdTRlMjhcdTRlZTFcdTRlZmNcdTRmMDBcdTRmMDNcdTRmMzlcdTRmNTZcdTRmOTJcdTRmOGFcdTRmOWFcdTRmOTRcdTRmY2RcdTUwNDBcdTUwMjJcdTRmZmZcdTUwMWVcdTUwNDZcdTUwNzBcdTUwNDJcdTUwOTRcdTUwZjRcdTUw''@;'; put 'put ''ZDhcdTUxNGFcdTUxNjRcdTUxOWRcdTUxYmVcdTUxZWNcdTUyMTVcdTUyOWNcdTUyYTZcdTUyYzBcdTUyZGJcdTUzMDBcdTUzMDdcdTUzMjRcdTUzNzJcdTUzOTNcdTUzYjJcdTUzZGRcdWZhMGVcdTU0OWNcdTU0OGFcdTU0YTlcdTU0ZmZcdTU1ODZcdTU3NTlcdTU3NjVcdTU3YWNcdTU3Yzhc''@;'; put 'put ''dTU3YzdcdWZhMGZcdWZhMTBcdTU4OWVcdTU4YjJcdTU5MGJcdTU5NTNcdTU5NWJcdTU5NWRcdTU5NjNcdTU5YTRcdTU5YmFcdTViNTZcdTViYzBcdTc1MmZcdTViZDhcdTViZWNcdTVjMWVcdTVjYTZcdTVjYmFcdTVjZjVcdTVkMjdcdTVkNTNcdWZhMTFcdTVkNDJcdTVkNmRcdTVkYjhcdTVk''@;'; put 'put ''YjlcdTVkZDBcdTVmMjFcdTVmMzRcdTVmNjdcdTVmYjciXSxbImZhYTEiLCJcdTVmZGVcdTYwNWRcdTYwODVcdTYwOGFcdTYwZGVcdTYwZDVcdTYxMjBcdTYwZjJcdTYxMTFcdTYxMzdcdTYxMzBcdTYxOThcdTYyMTNcdTYyYTZcdTYzZjVcdTY0NjBcdTY0OWRcdTY0Y2VcdTY1NGVcdTY2MDBc''@;'; put 'put ''dTY2MTVcdTY2M2JcdTY2MDlcdTY2MmVcdTY2MWVcdTY2MjRcdTY2NjVcdTY2NTdcdTY2NTlcdWZhMTJcdTY2NzNcdTY2OTlcdTY2YTBcdTY2YjJcdTY2YmZcdTY2ZmFcdTY3MGVcdWY5MjlcdTY3NjZcdTY3YmJcdTY4NTJcdTY3YzBcdTY4MDFcdTY4NDRcdTY4Y2ZcdWZhMTNcdTY5NjhcdWZh''@;'; put 'put ''MTRcdTY5OThcdTY5ZTJcdTZhMzBcdTZhNmJcdTZhNDZcdTZhNzNcdTZhN2VcdTZhZTJcdTZhZTRcdTZiZDZcdTZjM2ZcdTZjNWNcdTZjODZcdTZjNmZcdTZjZGFcdTZkMDRcdTZkODdcdTZkNmZcdTZkOTZcdTZkYWNcdTZkY2ZcdTZkZjhcdTZkZjJcdTZkZmNcdTZlMzlcdTZlNWNcdTZlMjdc''@;'; put 'put ''dTZlM2NcdTZlYmZcdTZmODhcdTZmYjVcdTZmZjVcdTcwMDVcdTcwMDdcdTcwMjhcdTcwODVcdTcwYWJcdTcxMGZcdTcxMDRcdTcxNWNcdTcxNDZcdTcxNDdcdWZhMTVcdTcxYzFcdTcxZmVcdTcyYjEiXSxbImZiYTEiLCJcdTcyYmVcdTczMjRcdWZhMTZcdTczNzdcdTczYmRcdTczYzlcdTcz''@;'; put 'put ''ZDZcdTczZTNcdTczZDJcdTc0MDdcdTczZjVcdTc0MjZcdTc0MmFcdTc0MjlcdTc0MmVcdTc0NjJcdTc0ODlcdTc0OWZcdTc1MDFcdTc1NmZcdTc2ODJcdTc2OWNcdTc2OWVcdTc2OWJcdTc2YTZcdWZhMTdcdTc3NDZcdTUyYWZcdTc4MjFcdTc4NGVcdTc4NjRcdTc4N2FcdTc5MzBcdWZhMThc''@;'; put 'put ''dWZhMTlcdWZhMWFcdTc5OTRcdWZhMWJcdTc5OWJcdTdhZDFcdTdhZTdcdWZhMWNcdTdhZWJcdTdiOWVcdWZhMWRcdTdkNDhcdTdkNWNcdTdkYjdcdTdkYTBcdTdkZDZcdTdlNTJcdTdmNDdcdTdmYTFcdWZhMWVcdTgzMDFcdTgzNjJcdTgzN2ZcdTgzYzdcdTgzZjZcdTg0NDhcdTg0YjRcdTg1''@;'; put 'put ''NTNcdTg1NTlcdTg1NmJcdWZhMWZcdTg1YjBcdWZhMjBcdWZhMjFcdTg4MDdcdTg4ZjVcdThhMTJcdThhMzdcdThhNzlcdThhYTdcdThhYmVcdThhZGZcdWZhMjJcdThhZjZcdThiNTNcdThiN2ZcdThjZjBcdThjZjRcdThkMTJcdThkNzZcdWZhMjNcdThlY2ZcdWZhMjRcdWZhMjVcdTkwNjdc''@;'; put 'put ''dTkwZGVcdWZhMjZcdTkxMTVcdTkxMjdcdTkxZGEiXSxbImZjYTEiLCJcdTkxZDdcdTkxZGVcdTkxZWRcdTkxZWVcdTkxZTRcdTkxZTVcdTkyMDZcdTkyMTBcdTkyMGFcdTkyM2FcdTkyNDBcdTkyM2NcdTkyNGVcdTkyNTlcdTkyNTFcdTkyMzlcdTkyNjdcdTkyYTdcdTkyNzdcdTkyNzhcdTky''@;'; put 'put ''ZTdcdTkyZDdcdTkyZDlcdTkyZDBcdWZhMjdcdTkyZDVcdTkyZTBcdTkyZDNcdTkzMjVcdTkzMjFcdTkyZmJcdWZhMjhcdTkzMWVcdTkyZmZcdTkzMWRcdTkzMDJcdTkzNzBcdTkzNTdcdTkzYTRcdTkzYzZcdTkzZGVcdTkzZjhcdTk0MzFcdTk0NDVcdTk0NDhcdTk1OTJcdWY5ZGNcdWZhMjlc''@;'; put 'put ''dTk2OWRcdTk2YWZcdTk3MzNcdTk3M2JcdTk3NDNcdTk3NGRcdTk3NGZcdTk3NTFcdTk3NTVcdTk4NTdcdTk4NjVcdWZhMmFcdWZhMmJcdTk5MjdcdWZhMmNcdTk5OWVcdTlhNGVcdTlhZDlcdTlhZGNcdTliNzVcdTliNzJcdTliOGZcdTliYjFcdTliYmJcdTljMDBcdTlkNzBcdTlkNmJcdWZh''@;'; put 'put ''MmRcdTllMTlcdTllZDEiXSxbImZjZjEiLCJcdTIxNzAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMiJdLFsiOGZhMmFmIiwiXHUwMmQ4XHUwMmM3XHhiOFx1MDJkOVx1MDJkZFx4YWZcdTAyZGJcdTAyZGFcdWZmNWVcdTAzODRcdTAzODUiXSxbIjhmYTJjMiIsIlx4YTFceGE2XHhiZiJd''@;'; put 'put ''LFsiOGZhMmViIiwiXHhiYVx4YWFceGE5XHhhZVx1MjEyMlx4YTRcdTIxMTYiXSxbIjhmYTZlMSIsIlx1MDM4Nlx1MDM4OFx1MDM4OVx1MDM4YVx1MDNhYSJdLFsiOGZhNmU3IiwiXHUwMzhjIl0sWyI4ZmE2ZTkiLCJcdTAzOGVcdTAzYWIiXSxbIjhmYTZlYyIsIlx1MDM4ZiJdLFsiOGZhNmYx''@;'; put 'put ''IiwiXHUwM2FjXHUwM2FkXHUwM2FlXHUwM2FmXHUwM2NhXHUwMzkwXHUwM2NjXHUwM2MyXHUwM2NkXHUwM2NiXHUwM2IwXHUwM2NlIl0sWyI4ZmE3YzIiLCJcdTA0MDIiLDEwLCJcdTA0MGVcdTA0MGYiXSxbIjhmYTdmMiIsIlx1MDQ1MiIsMTAsIlx1MDQ1ZVx1MDQ1ZiJdLFsiOGZhOWExIiwi''@;'; put 'put ''XHhjNlx1MDExMCJdLFsiOGZhOWE0IiwiXHUwMTI2Il0sWyI4ZmE5YTYiLCJcdTAxMzIiXSxbIjhmYTlhOCIsIlx1MDE0MVx1MDEzZiJdLFsiOGZhOWFiIiwiXHUwMTRhXHhkOFx1MDE1MiJdLFsiOGZhOWFmIiwiXHUwMTY2XHhkZSJdLFsiOGZhOWMxIiwiXHhlNlx1MDExMVx4ZjBcdTAxMjdc''@;'; put 'put ''dTAxMzFcdTAxMzNcdTAxMzhcdTAxNDJcdTAxNDBcdTAxNDlcdTAxNGJceGY4XHUwMTUzXHhkZlx1MDE2N1x4ZmUiXSxbIjhmYWFhMSIsIlx4YzFceGMwXHhjNFx4YzJcdTAxMDJcdTAxY2RcdTAxMDBcdTAxMDRceGM1XHhjM1x1MDEwNlx1MDEwOFx1MDEwY1x4YzdcdTAxMGFcdTAxMGVceGM5''@;'; put 'put ''XHhjOFx4Y2JceGNhXHUwMTFhXHUwMTE2XHUwMTEyXHUwMTE4Il0sWyI4ZmFhYmEiLCJcdTAxMWNcdTAxMWVcdTAxMjJcdTAxMjBcdTAxMjRceGNkXHhjY1x4Y2ZceGNlXHUwMWNmXHUwMTMwXHUwMTJhXHUwMTJlXHUwMTI4XHUwMTM0XHUwMTM2XHUwMTM5XHUwMTNkXHUwMTNiXHUwMTQzXHUw''@;'; put 'put ''MTQ3XHUwMTQ1XHhkMVx4ZDNceGQyXHhkNlx4ZDRcdTAxZDFcdTAxNTBcdTAxNGNceGQ1XHUwMTU0XHUwMTU4XHUwMTU2XHUwMTVhXHUwMTVjXHUwMTYwXHUwMTVlXHUwMTY0XHUwMTYyXHhkYVx4ZDlceGRjXHhkYlx1MDE2Y1x1MDFkM1x1MDE3MFx1MDE2YVx1MDE3Mlx1MDE2ZVx1MDE2OFx1''@;'; put 'put ''MDFkN1x1MDFkYlx1MDFkOVx1MDFkNVx1MDE3NFx4ZGRcdTAxNzhcdTAxNzZcdTAxNzlcdTAxN2RcdTAxN2IiXSxbIjhmYWJhMSIsIlx4ZTFceGUwXHhlNFx4ZTJcdTAxMDNcdTAxY2VcdTAxMDFcdTAxMDVceGU1XHhlM1x1MDEwN1x1MDEwOVx1MDEwZFx4ZTdcdTAxMGJcdTAxMGZceGU5XHhl''@;'; put 'put ''OFx4ZWJceGVhXHUwMTFiXHUwMTE3XHUwMTEzXHUwMTE5XHUwMWY1XHUwMTFkXHUwMTFmIl0sWyI4ZmFiYmQiLCJcdTAxMjFcdTAxMjVceGVkXHhlY1x4ZWZceGVlXHUwMWQwIl0sWyI4ZmFiYzUiLCJcdTAxMmJcdTAxMmZcdTAxMjlcdTAxMzVcdTAxMzdcdTAxM2FcdTAxM2VcdTAxM2NcdTAx''@;'; put 'put ''NDRcdTAxNDhcdTAxNDZceGYxXHhmM1x4ZjJceGY2XHhmNFx1MDFkMlx1MDE1MVx1MDE0ZFx4ZjVcdTAxNTVcdTAxNTlcdTAxNTdcdTAxNWJcdTAxNWRcdTAxNjFcdTAxNWZcdTAxNjVcdTAxNjNceGZhXHhmOVx4ZmNceGZiXHUwMTZkXHUwMWQ0XHUwMTcxXHUwMTZiXHUwMTczXHUwMTZmXHUw''@;'; put 'put ''MTY5XHUwMWQ4XHUwMWRjXHUwMWRhXHUwMWQ2XHUwMTc1XHhmZFx4ZmZcdTAxNzdcdTAxN2FcdTAxN2VcdTAxN2MiXSxbIjhmYjBhMSIsIlx1NGUwMlx1NGUwNFx1NGUwNVx1NGUwY1x1NGUxMlx1NGUxZlx1NGUyM1x1NGUyNFx1NGUyOFx1NGUyYlx1NGUyZVx1NGUyZlx1NGUzMFx1NGUzNVx1''@;'; put 'put ''NGU0MFx1NGU0MVx1NGU0NFx1NGU0N1x1NGU1MVx1NGU1YVx1NGU1Y1x1NGU2M1x1NGU2OFx1NGU2OVx1NGU3NFx1NGU3NVx1NGU3OVx1NGU3Zlx1NGU4ZFx1NGU5Nlx1NGU5N1x1NGU5ZFx1NGVhZlx1NGViOVx1NGVjM1x1NGVkMFx1NGVkYVx1NGVkYlx1NGVlMFx1NGVlMVx1NGVlMlx1NGVl''@;'; put 'put ''OFx1NGVlZlx1NGVmMVx1NGVmM1x1NGVmNVx1NGVmZFx1NGVmZVx1NGVmZlx1NGYwMFx1NGYwMlx1NGYwM1x1NGYwOFx1NGYwYlx1NGYwY1x1NGYxMlx1NGYxNVx1NGYxNlx1NGYxN1x1NGYxOVx1NGYyZVx1NGYzMVx1NGY2MFx1NGYzM1x1NGYzNVx1NGYzN1x1NGYzOVx1NGYzYlx1NGYzZVx1''@;'; put 'put ''NGY0MFx1NGY0Mlx1NGY0OFx1NGY0OVx1NGY0Ylx1NGY0Y1x1NGY1Mlx1NGY1NFx1NGY1Nlx1NGY1OFx1NGY1Zlx1NGY2M1x1NGY2YVx1NGY2Y1x1NGY2ZVx1NGY3MVx1NGY3N1x1NGY3OFx1NGY3OVx1NGY3YVx1NGY3ZFx1NGY3ZVx1NGY4MVx1NGY4Mlx1NGY4NCJdLFsiOGZiMWExIiwiXHU0''@;'; put 'put ''Zjg1XHU0Zjg5XHU0ZjhhXHU0ZjhjXHU0ZjhlXHU0ZjkwXHU0ZjkyXHU0ZjkzXHU0Zjk0XHU0Zjk3XHU0Zjk5XHU0ZjlhXHU0ZjllXHU0ZjlmXHU0ZmIyXHU0ZmI3XHU0ZmI5XHU0ZmJiXHU0ZmJjXHU0ZmJkXHU0ZmJlXHU0ZmMwXHU0ZmMxXHU0ZmM1XHU0ZmM2XHU0ZmM4XHU0ZmM5XHU0ZmNi''@;'; put 'put ''XHU0ZmNjXHU0ZmNkXHU0ZmNmXHU0ZmQyXHU0ZmRjXHU0ZmUwXHU0ZmUyXHU0ZmYwXHU0ZmYyXHU0ZmZjXHU0ZmZkXHU0ZmZmXHU1MDAwXHU1MDAxXHU1MDA0XHU1MDA3XHU1MDBhXHU1MDBjXHU1MDBlXHU1MDEwXHU1MDEzXHU1MDE3XHU1MDE4XHU1MDFiXHU1MDFjXHU1MDFkXHU1MDFlXHU1''@;'; put 'put ''MDIyXHU1MDI3XHU1MDJlXHU1MDMwXHU1MDMyXHU1MDMzXHU1MDM1XHU1MDQwXHU1MDQxXHU1MDQyXHU1MDQ1XHU1MDQ2XHU1MDRhXHU1MDRjXHU1MDRlXHU1MDUxXHU1MDUyXHU1MDUzXHU1MDU3XHU1MDU5XHU1MDVmXHU1MDYwXHU1MDYyXHU1MDYzXHU1MDY2XHU1MDY3XHU1MDZhXHU1MDZk''@;'; put 'put ''XHU1MDcwXHU1MDcxXHU1MDNiXHU1MDgxXHU1MDgzXHU1MDg0XHU1MDg2XHU1MDhhXHU1MDhlXHU1MDhmXHU1MDkwIl0sWyI4ZmIyYTEiLCJcdTUwOTJcdTUwOTNcdTUwOTRcdTUwOTZcdTUwOWJcdTUwOWNcdTUwOWUiLDQsIlx1NTBhYVx1NTBhZlx1NTBiMFx1NTBiOVx1NTBiYVx1NTBiZFx1''@;'; put 'put ''NTBjMFx1NTBjM1x1NTBjNFx1NTBjN1x1NTBjY1x1NTBjZVx1NTBkMFx1NTBkM1x1NTBkNFx1NTBkOFx1NTBkY1x1NTBkZFx1NTBkZlx1NTBlMlx1NTBlNFx1NTBlNlx1NTBlOFx1NTBlOVx1NTBlZlx1NTBmMVx1NTBmNlx1NTBmYVx1NTBmZVx1NTEwM1x1NTEwNlx1NTEwN1x1NTEwOFx1NTEw''@;'; put 'put ''Ylx1NTEwY1x1NTEwZFx1NTEwZVx1NTBmMlx1NTExMFx1NTExN1x1NTExOVx1NTExYlx1NTExY1x1NTExZFx1NTExZVx1NTEyM1x1NTEyN1x1NTEyOFx1NTEyY1x1NTEyZFx1NTEyZlx1NTEzMVx1NTEzM1x1NTEzNFx1NTEzNVx1NTEzOFx1NTEzOVx1NTE0Mlx1NTE0YVx1NTE0Zlx1NTE1M1x1''@;'; put 'put ''NTE1NVx1NTE1N1x1NTE1OFx1NTE1Zlx1NTE2NFx1NTE2Nlx1NTE3ZVx1NTE4M1x1NTE4NFx1NTE4Ylx1NTE4ZVx1NTE5OFx1NTE5ZFx1NTFhMVx1NTFhM1x1NTFhZFx1NTFiOFx1NTFiYVx1NTFiY1x1NTFiZVx1NTFiZlx1NTFjMiJdLFsiOGZiM2ExIiwiXHU1MWM4XHU1MWNmXHU1MWQxXHU1''@;'; put 'put ''MWQyXHU1MWQzXHU1MWQ1XHU1MWQ4XHU1MWRlXHU1MWUyXHU1MWU1XHU1MWVlXHU1MWYyXHU1MWYzXHU1MWY0XHU1MWY3XHU1MjAxXHU1MjAyXHU1MjA1XHU1MjEyXHU1MjEzXHU1MjE1XHU1MjE2XHU1MjE4XHU1MjIyXHU1MjI4XHU1MjMxXHU1MjMyXHU1MjM1XHU1MjNjXHU1MjQ1XHU1MjQ5''@;'; put 'put ''XHU1MjU1XHU1MjU3XHU1MjU4XHU1MjVhXHU1MjVjXHU1MjVmXHU1MjYwXHU1MjYxXHU1MjY2XHU1MjZlXHU1Mjc3XHU1Mjc4XHU1Mjc5XHU1MjgwXHU1MjgyXHU1Mjg1XHU1MjhhXHU1MjhjXHU1MjkzXHU1Mjk1XHU1Mjk2XHU1Mjk3XHU1Mjk4XHU1MjlhXHU1MjljXHU1MmE0XHU1MmE1XHU1''@;'; put 'put ''MmE2XHU1MmE3XHU1MmFmXHU1MmIwXHU1MmI2XHU1MmI3XHU1MmI4XHU1MmJhXHU1MmJiXHU1MmJkXHU1MmMwXHU1MmM0XHU1MmM2XHU1MmM4XHU1MmNjXHU1MmNmXHU1MmQxXHU1MmQ0XHU1MmQ2XHU1MmRiXHU1MmRjXHU1MmUxXHU1MmU1XHU1MmU4XHU1MmU5XHU1MmVhXHU1MmVjXHU1MmYw''@;'; put 'put ''XHU1MmYxXHU1MmY0XHU1MmY2XHU1MmY3XHU1MzAwXHU1MzAzXHU1MzBhXHU1MzBiIl0sWyI4ZmI0YTEiLCJcdTUzMGNcdTUzMTFcdTUzMTNcdTUzMThcdTUzMWJcdTUzMWNcdTUzMWVcdTUzMWZcdTUzMjVcdTUzMjdcdTUzMjhcdTUzMjlcdTUzMmJcdTUzMmNcdTUzMmRcdTUzMzBcdTUzMzJc''@;'; put 'put ''dTUzMzVcdTUzM2NcdTUzM2RcdTUzM2VcdTUzNDJcdTUzNGNcdTUzNGJcdTUzNTlcdTUzNWJcdTUzNjFcdTUzNjNcdTUzNjVcdTUzNmNcdTUzNmRcdTUzNzJcdTUzNzlcdTUzN2VcdTUzODNcdTUzODdcdTUzODhcdTUzOGVcdTUzOTNcdTUzOTRcdTUzOTlcdTUzOWRcdTUzYTFcdTUzYTRcdTUz''@;'; put 'put ''YWFcdTUzYWJcdTUzYWZcdTUzYjJcdTUzYjRcdTUzYjVcdTUzYjdcdTUzYjhcdTUzYmFcdTUzYmRcdTUzYzBcdTUzYzVcdTUzY2ZcdTUzZDJcdTUzZDNcdTUzZDVcdTUzZGFcdTUzZGRcdTUzZGVcdTUzZTBcdTUzZTZcdTUzZTdcdTUzZjVcdTU0MDJcdTU0MTNcdTU0MWFcdTU0MjFcdTU0Mjdc''@;'; put 'put ''dTU0MjhcdTU0MmFcdTU0MmZcdTU0MzFcdTU0MzRcdTU0MzVcdTU0NDNcdTU0NDRcdTU0NDdcdTU0NGRcdTU0NGZcdTU0NWVcdTU0NjJcdTU0NjRcdTU0NjZcdTU0NjdcdTU0NjlcdTU0NmJcdTU0NmRcdTU0NmVcdTU0NzRcdTU0N2YiXSxbIjhmYjVhMSIsIlx1NTQ4MVx1NTQ4M1x1NTQ4NVx1''@;'; put 'put ''NTQ4OFx1NTQ4OVx1NTQ4ZFx1NTQ5MVx1NTQ5NVx1NTQ5Nlx1NTQ5Y1x1NTQ5Zlx1NTRhMVx1NTRhNlx1NTRhN1x1NTRhOVx1NTRhYVx1NTRhZFx1NTRhZVx1NTRiMVx1NTRiN1x1NTRiOVx1NTRiYVx1NTRiYlx1NTRiZlx1NTRjNlx1NTRjYVx1NTRjZFx1NTRjZVx1NTRlMFx1NTRlYVx1NTRl''@;'; put 'put ''Y1x1NTRlZlx1NTRmNlx1NTRmY1x1NTRmZVx1NTRmZlx1NTUwMFx1NTUwMVx1NTUwNVx1NTUwOFx1NTUwOVx1NTUwY1x1NTUwZFx1NTUwZVx1NTUxNVx1NTUyYVx1NTUyYlx1NTUzMlx1NTUzNVx1NTUzNlx1NTUzYlx1NTUzY1x1NTUzZFx1NTU0MVx1NTU0N1x1NTU0OVx1NTU0YVx1NTU0ZFx1''@;'; put 'put ''NTU1MFx1NTU1MVx1NTU1OFx1NTU1YVx1NTU1Ylx1NTU1ZVx1NTU2MFx1NTU2MVx1NTU2NFx1NTU2Nlx1NTU3Zlx1NTU4MVx1NTU4Mlx1NTU4Nlx1NTU4OFx1NTU4ZVx1NTU4Zlx1NTU5MVx1NTU5Mlx1NTU5M1x1NTU5NFx1NTU5N1x1NTVhM1x1NTVhNFx1NTVhZFx1NTViMlx1NTViZlx1NTVj''@;'; put 'put ''MVx1NTVjM1x1NTVjNlx1NTVjOVx1NTVjYlx1NTVjY1x1NTVjZVx1NTVkMVx1NTVkMiJdLFsiOGZiNmExIiwiXHU1NWQzXHU1NWQ3XHU1NWQ4XHU1NWRiXHU1NWRlXHU1NWUyXHU1NWU5XHU1NWY2XHU1NWZmXHU1NjA1XHU1NjA4XHU1NjBhXHU1NjBkIiw1LCJcdTU2MTlcdTU2MmNcdTU2MzBc''@;'; put 'put ''dTU2MzNcdTU2MzVcdTU2MzdcdTU2MzlcdTU2M2JcdTU2M2NcdTU2M2RcdTU2M2ZcdTU2NDBcdTU2NDFcdTU2NDNcdTU2NDRcdTU2NDZcdTU2NDlcdTU2NGJcdTU2NGRcdTU2NGZcdTU2NTRcdTU2NWVcdTU2NjBcdTU2NjFcdTU2NjJcdTU2NjNcdTU2NjZcdTU2NjlcdTU2NmRcdTU2NmZcdTU2''@;'; put 'put ''NzFcdTU2NzJcdTU2NzVcdTU2ODRcdTU2ODVcdTU2ODhcdTU2OGJcdTU2OGNcdTU2OTVcdTU2OTlcdTU2OWFcdTU2OWRcdTU2OWVcdTU2OWZcdTU2YTZcdTU2YTdcdTU2YThcdTU2YTlcdTU2YWJcdTU2YWNcdTU2YWRcdTU2YjFcdTU2YjNcdTU2YjdcdTU2YmVcdTU2YzVcdTU2YzlcdTU2Y2Fc''@;'; put 'put ''dTU2Y2JcdTU2Y2ZcdTU2ZDBcdTU2Y2NcdTU2Y2RcdTU2ZDlcdTU2ZGNcdTU2ZGRcdTU2ZGZcdTU2ZTFcdTU2ZTQiLDQsIlx1NTZmMVx1NTZlYlx1NTZlZCJdLFsiOGZiN2ExIiwiXHU1NmY2XHU1NmY3XHU1NzAxXHU1NzAyXHU1NzA3XHU1NzBhXHU1NzBjXHU1NzExXHU1NzE1XHU1NzFhXHU1''@;'; put 'put ''NzFiXHU1NzFkXHU1NzIwXHU1NzIyXHU1NzIzXHU1NzI0XHU1NzI1XHU1NzI5XHU1NzJhXHU1NzJjXHU1NzJlXHU1NzJmXHU1NzMzXHU1NzM0XHU1NzNkXHU1NzNlXHU1NzNmXHU1NzQ1XHU1NzQ2XHU1NzRjXHU1NzRkXHU1NzUyXHU1NzYyXHU1NzY1XHU1NzY3XHU1NzY4XHU1NzZiXHU1NzZk''@;'; put 'put ''Iiw0LCJcdTU3NzNcdTU3NzRcdTU3NzVcdTU3NzdcdTU3NzlcdTU3N2FcdTU3N2JcdTU3N2NcdTU3N2VcdTU3ODFcdTU3ODNcdTU3OGNcdTU3OTRcdTU3OTdcdTU3OTlcdTU3OWFcdTU3OWNcdTU3OWRcdTU3OWVcdTU3OWZcdTU3YTFcdTU3OTVcdTU3YTdcdTU3YThcdTU3YTlcdTU3YWNcdTU3''@;'; put 'put ''YjhcdTU3YmRcdTU3YzdcdTU3YzhcdTU3Y2NcdTU3Y2ZcdTU3ZDVcdTU3ZGRcdTU3ZGVcdTU3ZTRcdTU3ZTZcdTU3ZTdcdTU3ZTlcdTU3ZWRcdTU3ZjBcdTU3ZjVcdTU3ZjZcdTU3ZjhcdTU3ZmRcdTU3ZmVcdTU3ZmZcdTU4MDNcdTU4MDRcdTU4MDhcdTU4MDlcdTU3ZTEiXSxbIjhmYjhhMSIs''@;'; put 'put ''Ilx1NTgwY1x1NTgwZFx1NTgxYlx1NTgxZVx1NTgxZlx1NTgyMFx1NTgyNlx1NTgyN1x1NTgyZFx1NTgzMlx1NTgzOVx1NTgzZlx1NTg0OVx1NTg0Y1x1NTg0ZFx1NTg0Zlx1NTg1MFx1NTg1NVx1NTg1Zlx1NTg2MVx1NTg2NFx1NTg2N1x1NTg2OFx1NTg3OFx1NTg3Y1x1NTg3Zlx1NTg4MFx1''@;'; put 'put ''NTg4MVx1NTg4N1x1NTg4OFx1NTg4OVx1NTg4YVx1NTg4Y1x1NTg4ZFx1NTg4Zlx1NTg5MFx1NTg5NFx1NTg5Nlx1NTg5ZFx1NThhMFx1NThhMVx1NThhMlx1NThhNlx1NThhOVx1NThiMVx1NThiMlx1NThjNFx1NThiY1x1NThjMlx1NThjOFx1NThjZFx1NThjZVx1NThkMFx1NThkMlx1NThk''@;'; put 'put ''NFx1NThkNlx1NThkYVx1NThkZFx1NThlMVx1NThlMlx1NThlOVx1NThmM1x1NTkwNVx1NTkwNlx1NTkwYlx1NTkwY1x1NTkxMlx1NTkxM1x1NTkxNFx1ODY0MVx1NTkxZFx1NTkyMVx1NTkyM1x1NTkyNFx1NTkyOFx1NTkyZlx1NTkzMFx1NTkzM1x1NTkzNVx1NTkzNlx1NTkzZlx1NTk0M1x1''@;'; put 'put ''NTk0Nlx1NTk1Mlx1NTk1M1x1NTk1OVx1NTk1Ylx1NTk1ZFx1NTk1ZVx1NTk1Zlx1NTk2MVx1NTk2M1x1NTk2Ylx1NTk2ZCJdLFsiOGZiOWExIiwiXHU1OTZmXHU1OTcyXHU1OTc1XHU1OTc2XHU1OTc5XHU1OTdiXHU1OTdjXHU1OThiXHU1OThjXHU1OThlXHU1OTkyXHU1OTk1XHU1OTk3XHU1''@;'; put 'put ''OTlmXHU1OWE0XHU1OWE3XHU1OWFkXHU1OWFlXHU1OWFmXHU1OWIwXHU1OWIzXHU1OWI3XHU1OWJhXHU1OWJjXHU1OWMxXHU1OWMzXHU1OWM0XHU1OWM4XHU1OWNhXHU1OWNkXHU1OWQyXHU1OWRkXHU1OWRlXHU1OWRmXHU1OWUzXHU1OWU0XHU1OWU3XHU1OWVlXHU1OWVmXHU1OWYxXHU1OWYy''@;'; put 'put ''XHU1OWY0XHU1OWY3XHU1YTAwXHU1YTA0XHU1YTBjXHU1YTBkXHU1YTBlXHU1YTEyXHU1YTEzXHU1YTFlXHU1YTIzXHU1YTI0XHU1YTI3XHU1YTI4XHU1YTJhXHU1YTJkXHU1YTMwXHU1YTQ0XHU1YTQ1XHU1YTQ3XHU1YTQ4XHU1YTRjXHU1YTUwXHU1YTU1XHU1YTVlXHU1YTYzXHU1YTY1XHU1''@;'; put 'put ''YTY3XHU1YTZkXHU1YTc3XHU1YTdhXHU1YTdiXHU1YTdlXHU1YThiXHU1YTkwXHU1YTkzXHU1YTk2XHU1YTk5XHU1YTljXHU1YTllXHU1YTlmXHU1YWEwXHU1YWEyXHU1YWE3XHU1YWFjXHU1YWIxXHU1YWIyXHU1YWIzXHU1YWI1XHU1YWI4XHU1YWJhXHU1YWJiXHU1YWJmIl0sWyI4ZmJhYTEi''@;'; put 'put ''LCJcdTVhYzRcdTVhYzZcdTVhYzhcdTVhY2ZcdTVhZGFcdTVhZGNcdTVhZTBcdTVhZTVcdTVhZWFcdTVhZWVcdTVhZjVcdTVhZjZcdTVhZmRcdTViMDBcdTViMDFcdTViMDhcdTViMTdcdTViMzRcdTViMTlcdTViMWJcdTViMWRcdTViMjFcdTViMjVcdTViMmRcdTViMzhcdTViNDFcdTViNGJc''@;'; put 'put ''dTViNGNcdTViNTJcdTViNTZcdTViNWVcdTViNjhcdTViNmVcdTViNmZcdTViN2NcdTViN2RcdTViN2VcdTViN2ZcdTViODFcdTViODRcdTViODZcdTViOGFcdTViOGVcdTViOTBcdTViOTFcdTViOTNcdTViOTRcdTViOTZcdTViYThcdTViYTlcdTViYWNcdTViYWRcdTViYWZcdTViYjFcdTVi''@;'; put 'put ''YjJcdTViYjdcdTViYmFcdTViYmNcdTViYzBcdTViYzFcdTViY2RcdTViY2ZcdTViZDYiLDQsIlx1NWJlMFx1NWJlZlx1NWJmMVx1NWJmNFx1NWJmZFx1NWMwY1x1NWMxN1x1NWMxZVx1NWMxZlx1NWMyM1x1NWMyNlx1NWMyOVx1NWMyYlx1NWMyY1x1NWMyZVx1NWMzMFx1NWMzMlx1NWMzNVx1''@;'; put 'put ''NWMzNlx1NWM1OVx1NWM1YVx1NWM1Y1x1NWM2Mlx1NWM2M1x1NWM2N1x1NWM2OFx1NWM2OSJdLFsiOGZiYmExIiwiXHU1YzZkXHU1YzcwXHU1Yzc0XHU1Yzc1XHU1YzdhXHU1YzdiXHU1YzdjXHU1YzdkXHU1Yzg3XHU1Yzg4XHU1YzhhXHU1YzhmXHU1YzkyXHU1YzlkXHU1YzlmXHU1Y2EwXHU1''@;'; put 'put ''Y2EyXHU1Y2EzXHU1Y2E2XHU1Y2FhXHU1Y2IyXHU1Y2I0XHU1Y2I1XHU1Y2JhXHU1Y2M5XHU1Y2NiXHU1Y2QyXHU1Y2RkXHU1Y2Q3XHU1Y2VlXHU1Y2YxXHU1Y2YyXHU1Y2Y0XHU1ZDAxXHU1ZDA2XHU1ZDBkXHU1ZDEyXHU1ZDJiXHU1ZDIzXHU1ZDI0XHU1ZDI2XHU1ZDI3XHU1ZDMxXHU1ZDM0''@;'; put 'put ''XHU1ZDM5XHU1ZDNkXHU1ZDNmXHU1ZDQyXHU1ZDQzXHU1ZDQ2XHU1ZDQ4XHU1ZDU1XHU1ZDUxXHU1ZDU5XHU1ZDRhXHU1ZDVmXHU1ZDYwXHU1ZDYxXHU1ZDYyXHU1ZDY0XHU1ZDZhXHU1ZDZkXHU1ZDcwXHU1ZDc5XHU1ZDdhXHU1ZDdlXHU1ZDdmXHU1ZDgxXHU1ZDgzXHU1ZDg4XHU1ZDhhXHU1''@;'; put 'put ''ZDkyXHU1ZDkzXHU1ZDk0XHU1ZDk1XHU1ZDk5XHU1ZDliXHU1ZDlmXHU1ZGEwXHU1ZGE3XHU1ZGFiXHU1ZGIwXHU1ZGI0XHU1ZGI4XHU1ZGI5XHU1ZGMzXHU1ZGM3XHU1ZGNiXHU1ZGQwXHU1ZGNlXHU1ZGQ4XHU1ZGQ5XHU1ZGUwXHU1ZGU0Il0sWyI4ZmJjYTEiLCJcdTVkZTlcdTVkZjhcdTVk''@;'; put 'put ''ZjlcdTVlMDBcdTVlMDdcdTVlMGRcdTVlMTJcdTVlMTRcdTVlMTVcdTVlMThcdTVlMWZcdTVlMjBcdTVlMmVcdTVlMjhcdTVlMzJcdTVlMzVcdTVlM2VcdTVlNGJcdTVlNTBcdTVlNDlcdTVlNTFcdTVlNTZcdTVlNThcdTVlNWJcdTVlNWNcdTVlNWVcdTVlNjhcdTVlNmEiLDQsIlx1NWU3MFx1''@;'; put 'put ''NWU4MFx1NWU4Ylx1NWU4ZVx1NWVhMlx1NWVhNFx1NWVhNVx1NWVhOFx1NWVhYVx1NWVhY1x1NWViMVx1NWViM1x1NWViZFx1NWViZVx1NWViZlx1NWVjNlx1NWVjY1x1NWVjYlx1NWVjZVx1NWVkMVx1NWVkMlx1NWVkNFx1NWVkNVx1NWVkY1x1NWVkZVx1NWVlNVx1NWVlYlx1NWYwMlx1NWYw''@;'; put 'put ''Nlx1NWYwN1x1NWYwOFx1NWYwZVx1NWYxOVx1NWYxY1x1NWYxZFx1NWYyMVx1NWYyMlx1NWYyM1x1NWYyNFx1NWYyOFx1NWYyYlx1NWYyY1x1NWYyZVx1NWYzMFx1NWYzNFx1NWYzNlx1NWYzYlx1NWYzZFx1NWYzZlx1NWY0MFx1NWY0NFx1NWY0NVx1NWY0N1x1NWY0ZFx1NWY1MFx1NWY1NFx1''@;'; put 'put ''NWY1OFx1NWY1Ylx1NWY2MFx1NWY2M1x1NWY2NFx1NWY2NyJdLFsiOGZiZGExIiwiXHU1ZjZmXHU1ZjcyXHU1Zjc0XHU1Zjc1XHU1Zjc4XHU1ZjdhXHU1ZjdkXHU1ZjdlXHU1Zjg5XHU1ZjhkXHU1ZjhmXHU1Zjk2XHU1ZjljXHU1ZjlkXHU1ZmEyXHU1ZmE3XHU1ZmFiXHU1ZmE0XHU1ZmFjXHU1''@;'; put 'put ''ZmFmXHU1ZmIwXHU1ZmIxXHU1ZmI4XHU1ZmM0XHU1ZmM3XHU1ZmM4XHU1ZmM5XHU1ZmNiXHU1ZmQwIiw0LCJcdTVmZGVcdTVmZTFcdTVmZTJcdTVmZThcdTVmZTlcdTVmZWFcdTVmZWNcdTVmZWRcdTVmZWVcdTVmZWZcdTVmZjJcdTVmZjNcdTVmZjZcdTVmZmFcdTVmZmNcdTYwMDdcdTYwMGFc''@;'; put 'put ''dTYwMGRcdTYwMTNcdTYwMTRcdTYwMTdcdTYwMThcdTYwMWFcdTYwMWZcdTYwMjRcdTYwMmRcdTYwMzNcdTYwMzVcdTYwNDBcdTYwNDdcdTYwNDhcdTYwNDlcdTYwNGNcdTYwNTFcdTYwNTRcdTYwNTZcdTYwNTdcdTYwNWRcdTYwNjFcdTYwNjdcdTYwNzFcdTYwN2VcdTYwN2ZcdTYwODJcdTYw''@;'; put 'put ''ODZcdTYwODhcdTYwOGFcdTYwOGVcdTYwOTFcdTYwOTNcdTYwOTVcdTYwOThcdTYwOWRcdTYwOWVcdTYwYTJcdTYwYTRcdTYwYTVcdTYwYThcdTYwYjBcdTYwYjFcdTYwYjciXSxbIjhmYmVhMSIsIlx1NjBiYlx1NjBiZVx1NjBjMlx1NjBjNFx1NjBjOFx1NjBjOVx1NjBjYVx1NjBjYlx1NjBj''@;'; put 'put ''ZVx1NjBjZlx1NjBkNFx1NjBkNVx1NjBkOVx1NjBkYlx1NjBkZFx1NjBkZVx1NjBlMlx1NjBlNVx1NjBmMlx1NjBmNVx1NjBmOFx1NjBmY1x1NjBmZFx1NjEwMlx1NjEwN1x1NjEwYVx1NjEwY1x1NjExMCIsNCwiXHU2MTE2XHU2MTE3XHU2MTE5XHU2MTFjXHU2MTFlXHU2MTIyXHU2MTJhXHU2''@;'; put 'put ''MTJiXHU2MTMwXHU2MTMxXHU2MTM1XHU2MTM2XHU2MTM3XHU2MTM5XHU2MTQxXHU2MTQ1XHU2MTQ2XHU2MTQ5XHU2MTVlXHU2MTYwXHU2MTZjXHU2MTcyXHU2MTc4XHU2MTdiXHU2MTdjXHU2MTdmXHU2MTgwXHU2MTgxXHU2MTgzXHU2MTg0XHU2MThiXHU2MThkXHU2MTkyXHU2MTkzXHU2MTk3''@;'; put 'put ''XHU2MTk4XHU2MTljXHU2MTlkXHU2MTlmXHU2MWEwXHU2MWE1XHU2MWE4XHU2MWFhXHU2MWFkXHU2MWI4XHU2MWI5XHU2MWJjXHU2MWMwXHU2MWMxXHU2MWMyXHU2MWNlXHU2MWNmXHU2MWQ1XHU2MWRjXHU2MWRkXHU2MWRlXHU2MWRmXHU2MWUxXHU2MWUyXHU2MWU3XHU2MWU5XHU2MWU1Il0s''@;'; put 'put ''WyI4ZmJmYTEiLCJcdTYxZWNcdTYxZWRcdTYxZWZcdTYyMDFcdTYyMDNcdTYyMDRcdTYyMDdcdTYyMTNcdTYyMTVcdTYyMWNcdTYyMjBcdTYyMjJcdTYyMjNcdTYyMjdcdTYyMjlcdTYyMmJcdTYyMzlcdTYyM2RcdTYyNDJcdTYyNDNcdTYyNDRcdTYyNDZcdTYyNGNcdTYyNTBcdTYyNTFcdTYy''@;'; put 'put ''NTJcdTYyNTRcdTYyNTZcdTYyNWFcdTYyNWNcdTYyNjRcdTYyNmRcdTYyNmZcdTYyNzNcdTYyN2FcdTYyN2RcdTYyOGRcdTYyOGVcdTYyOGZcdTYyOTBcdTYyYTZcdTYyYThcdTYyYjNcdTYyYjZcdTYyYjdcdTYyYmFcdTYyYmVcdTYyYmZcdTYyYzRcdTYyY2VcdTYyZDVcdTYyZDZcdTYyZGFc''@;'; put 'put ''dTYyZWFcdTYyZjJcdTYyZjRcdTYyZmNcdTYyZmRcdTYzMDNcdTYzMDRcdTYzMGFcdTYzMGJcdTYzMGRcdTYzMTBcdTYzMTNcdTYzMTZcdTYzMThcdTYzMjlcdTYzMmFcdTYzMmRcdTYzMzVcdTYzMzZcdTYzMzlcdTYzM2NcdTYzNDFcdTYzNDJcdTYzNDNcdTYzNDRcdTYzNDZcdTYzNGFcdTYz''@;'; put 'put ''NGJcdTYzNGVcdTYzNTJcdTYzNTNcdTYzNTRcdTYzNThcdTYzNWJcdTYzNjVcdTYzNjZcdTYzNmNcdTYzNmRcdTYzNzFcdTYzNzRcdTYzNzUiXSxbIjhmYzBhMSIsIlx1NjM3OFx1NjM3Y1x1NjM3ZFx1NjM3Zlx1NjM4Mlx1NjM4NFx1NjM4N1x1NjM4YVx1NjM5MFx1NjM5NFx1NjM5NVx1NjM5''@;'; put 'put ''OVx1NjM5YVx1NjM5ZVx1NjNhNFx1NjNhNlx1NjNhZFx1NjNhZVx1NjNhZlx1NjNiZFx1NjNjMVx1NjNjNVx1NjNjOFx1NjNjZVx1NjNkMVx1NjNkM1x1NjNkNFx1NjNkNVx1NjNkY1x1NjNlMFx1NjNlNVx1NjNlYVx1NjNlY1x1NjNmMlx1NjNmM1x1NjNmNVx1NjNmOFx1NjNmOVx1NjQwOVx1''@;'; put 'put ''NjQwYVx1NjQxMFx1NjQxMlx1NjQxNFx1NjQxOFx1NjQxZVx1NjQyMFx1NjQyMlx1NjQyNFx1NjQyNVx1NjQyOVx1NjQyYVx1NjQyZlx1NjQzMFx1NjQzNVx1NjQzZFx1NjQzZlx1NjQ0Ylx1NjQ0Zlx1NjQ1MVx1NjQ1Mlx1NjQ1M1x1NjQ1NFx1NjQ1YVx1NjQ1Ylx1NjQ1Y1x1NjQ1ZFx1NjQ1''@;'; put 'put ''Zlx1NjQ2MFx1NjQ2MVx1NjQ2M1x1NjQ2ZFx1NjQ3M1x1NjQ3NFx1NjQ3Ylx1NjQ3ZFx1NjQ4NVx1NjQ4N1x1NjQ4Zlx1NjQ5MFx1NjQ5MVx1NjQ5OFx1NjQ5OVx1NjQ5Ylx1NjQ5ZFx1NjQ5Zlx1NjRhMVx1NjRhM1x1NjRhNlx1NjRhOFx1NjRhY1x1NjRiM1x1NjRiZFx1NjRiZVx1NjRiZiJd''@;'; put 'put ''LFsiOGZjMWExIiwiXHU2NGM0XHU2NGM5XHU2NGNhXHU2NGNiXHU2NGNjXHU2NGNlXHU2NGQwXHU2NGQxXHU2NGQ1XHU2NGQ3XHU2NGU0XHU2NGU1XHU2NGU5XHU2NGVhXHU2NGVkXHU2NGYwXHU2NGY1XHU2NGY3XHU2NGZiXHU2NGZmXHU2NTAxXHU2NTA0XHU2NTA4XHU2NTA5XHU2NTBhXHU2''@;'; put 'put ''NTBmXHU2NTEzXHU2NTE0XHU2NTE2XHU2NTE5XHU2NTFiXHU2NTFlXHU2NTFmXHU2NTIyXHU2NTI2XHU2NTI5XHU2NTJlXHU2NTMxXHU2NTNhXHU2NTNjXHU2NTNkXHU2NTQzXHU2NTQ3XHU2NTQ5XHU2NTUwXHU2NTUyXHU2NTU0XHU2NTVmXHU2NTYwXHU2NTY3XHU2NTZiXHU2NTdhXHU2NTdk''@;'; put 'put ''XHU2NTgxXHU2NTg1XHU2NThhXHU2NTkyXHU2NTk1XHU2NTk4XHU2NTlkXHU2NWEwXHU2NWEzXHU2NWE2XHU2NWFlXHU2NWIyXHU2NWIzXHU2NWI0XHU2NWJmXHU2NWMyXHU2NWM4XHU2NWM5XHU2NWNlXHU2NWQwXHU2NWQ0XHU2NWQ2XHU2NWQ4XHU2NWRmXHU2NWYwXHU2NWYyXHU2NWY0XHU2''@;'; put 'put ''NWY1XHU2NWY5XHU2NWZlXHU2NWZmXHU2NjAwXHU2NjA0XHU2NjA4XHU2NjA5XHU2NjBkXHU2NjExXHU2NjEyXHU2NjE1XHU2NjE2XHU2NjFkIl0sWyI4ZmMyYTEiLCJcdTY2MWVcdTY2MjFcdTY2MjJcdTY2MjNcdTY2MjRcdTY2MjZcdTY2MjlcdTY2MmFcdTY2MmJcdTY2MmNcdTY2MmVcdTY2''@;'; put 'put ''MzBcdTY2MzFcdTY2MzNcdTY2MzlcdTY2MzdcdTY2NDBcdTY2NDVcdTY2NDZcdTY2NGFcdTY2NGNcdTY2NTFcdTY2NGVcdTY2NTdcdTY2NThcdTY2NTlcdTY2NWJcdTY2NWNcdTY2NjBcdTY2NjFcdTY2ZmJcdTY2NmFcdTY2NmJcdTY2NmNcdTY2N2VcdTY2NzNcdTY2NzVcdTY2N2ZcdTY2Nzdc''@;'; put 'put ''dTY2NzhcdTY2NzlcdTY2N2JcdTY2ODBcdTY2N2NcdTY2OGJcdTY2OGNcdTY2OGRcdTY2OTBcdTY2OTJcdTY2OTlcdTY2OWFcdTY2OWJcdTY2OWNcdTY2OWZcdTY2YTBcdTY2YTRcdTY2YWRcdTY2YjFcdTY2YjJcdTY2YjVcdTY2YmJcdTY2YmZcdTY2YzBcdTY2YzJcdTY2YzNcdTY2YzhcdTY2''@;'; put 'put ''Y2NcdTY2Y2VcdTY2Y2ZcdTY2ZDRcdTY2ZGJcdTY2ZGZcdTY2ZThcdTY2ZWJcdTY2ZWNcdTY2ZWVcdTY2ZmFcdTY3MDVcdTY3MDdcdTY3MGVcdTY3MTNcdTY3MTlcdTY3MWNcdTY3MjBcdTY3MjJcdTY3MzNcdTY3M2VcdTY3NDVcdTY3NDdcdTY3NDhcdTY3NGNcdTY3NTRcdTY3NTVcdTY3NWQi''@;'; put 'put ''XSxbIjhmYzNhMSIsIlx1Njc2Nlx1Njc2Y1x1Njc2ZVx1Njc3NFx1Njc3Nlx1Njc3Ylx1Njc4MVx1Njc4NFx1Njc4ZVx1Njc4Zlx1Njc5MVx1Njc5M1x1Njc5Nlx1Njc5OFx1Njc5OVx1Njc5Ylx1NjdiMFx1NjdiMVx1NjdiMlx1NjdiNVx1NjdiYlx1NjdiY1x1NjdiZFx1NjdmOVx1NjdjMFx1''@;'; put 'put ''NjdjMlx1NjdjM1x1NjdjNVx1NjdjOFx1NjdjOVx1NjdkMlx1NjdkN1x1NjdkOVx1NjdkY1x1NjdlMVx1NjdlNlx1NjdmMFx1NjdmMlx1NjdmNlx1NjdmN1x1Njg1Mlx1NjgxNFx1NjgxOVx1NjgxZFx1NjgxZlx1NjgyOFx1NjgyN1x1NjgyY1x1NjgyZFx1NjgyZlx1NjgzMFx1NjgzMVx1Njgz''@;'; put 'put ''M1x1NjgzYlx1NjgzZlx1Njg0NFx1Njg0NVx1Njg0YVx1Njg0Y1x1Njg1NVx1Njg1N1x1Njg1OFx1Njg1Ylx1Njg2Ylx1Njg2ZSIsNCwiXHU2ODc1XHU2ODc5XHU2ODdhXHU2ODdiXHU2ODdjXHU2ODgyXHU2ODg0XHU2ODg2XHU2ODg4XHU2ODk2XHU2ODk4XHU2ODlhXHU2ODljXHU2OGExXHU2''@;'; put 'put ''OGEzXHU2OGE1XHU2OGE5XHU2OGFhXHU2OGFlXHU2OGIyXHU2OGJiXHU2OGM1XHU2OGM4XHU2OGNjXHU2OGNmIl0sWyI4ZmM0YTEiLCJcdTY4ZDBcdTY4ZDFcdTY4ZDNcdTY4ZDZcdTY4ZDlcdTY4ZGNcdTY4ZGRcdTY4ZTVcdTY4ZThcdTY4ZWFcdTY4ZWJcdTY4ZWNcdTY4ZWRcdTY4ZjBcdTY4''@;'; put 'put ''ZjFcdTY4ZjVcdTY4ZjZcdTY4ZmJcdTY4ZmNcdTY4ZmRcdTY5MDZcdTY5MDlcdTY5MGFcdTY5MTBcdTY5MTFcdTY5MTNcdTY5MTZcdTY5MTdcdTY5MzFcdTY5MzNcdTY5MzVcdTY5MzhcdTY5M2JcdTY5NDJcdTY5NDVcdTY5NDlcdTY5NGVcdTY5NTdcdTY5NWJcdTY5NjNcdTY5NjRcdTY5NjVc''@;'; put 'put ''dTY5NjZcdTY5NjhcdTY5NjlcdTY5NmNcdTY5NzBcdTY5NzFcdTY5NzJcdTY5N2FcdTY5N2JcdTY5N2ZcdTY5ODBcdTY5OGRcdTY5OTJcdTY5OTZcdTY5OThcdTY5YTFcdTY5YTVcdTY5YTZcdTY5YThcdTY5YWJcdTY5YWRcdTY5YWZcdTY5YjdcdTY5YjhcdTY5YmFcdTY5YmNcdTY5YzVcdTY5''@;'; put 'put ''YzhcdTY5ZDFcdTY5ZDZcdTY5ZDdcdTY5ZTJcdTY5ZTVcdTY5ZWVcdTY5ZWZcdTY5ZjFcdTY5ZjNcdTY5ZjVcdTY5ZmVcdTZhMDBcdTZhMDFcdTZhMDNcdTZhMGZcdTZhMTFcdTZhMTVcdTZhMWFcdTZhMWRcdTZhMjBcdTZhMjRcdTZhMjhcdTZhMzBcdTZhMzIiXSxbIjhmYzVhMSIsIlx1NmEz''@;'; put 'put ''NFx1NmEzN1x1NmEzYlx1NmEzZVx1NmEzZlx1NmE0NVx1NmE0Nlx1NmE0OVx1NmE0YVx1NmE0ZVx1NmE1MFx1NmE1MVx1NmE1Mlx1NmE1NVx1NmE1Nlx1NmE1Ylx1NmE2NFx1NmE2N1x1NmE2YVx1NmE3MVx1NmE3M1x1NmE3ZVx1NmE4MVx1NmE4M1x1NmE4Nlx1NmE4N1x1NmE4OVx1NmE4Ylx1''@;'; put 'put ''NmE5MVx1NmE5Ylx1NmE5ZFx1NmE5ZVx1NmE5Zlx1NmFhNVx1NmFhYlx1NmFhZlx1NmFiMFx1NmFiMVx1NmFiNFx1NmFiZFx1NmFiZVx1NmFiZlx1NmFjNlx1NmFjOVx1NmFjOFx1NmFjY1x1NmFkMFx1NmFkNFx1NmFkNVx1NmFkNlx1NmFkY1x1NmFkZFx1NmFlNFx1NmFlN1x1NmFlY1x1NmFm''@;'; put 'put ''MFx1NmFmMVx1NmFmMlx1NmFmY1x1NmFmZFx1NmIwMlx1NmIwM1x1NmIwNlx1NmIwN1x1NmIwOVx1NmIwZlx1NmIxMFx1NmIxMVx1NmIxN1x1NmIxYlx1NmIxZVx1NmIyNFx1NmIyOFx1NmIyYlx1NmIyY1x1NmIyZlx1NmIzNVx1NmIzNlx1NmIzYlx1NmIzZlx1NmI0Nlx1NmI0YVx1NmI0ZFx1''@;'; put 'put ''NmI1Mlx1NmI1Nlx1NmI1OFx1NmI1ZFx1NmI2MFx1NmI2N1x1NmI2Ylx1NmI2ZVx1NmI3MFx1NmI3NVx1NmI3ZCJdLFsiOGZjNmExIiwiXHU2YjdlXHU2YjgyXHU2Yjg1XHU2Yjk3XHU2YjliXHU2YjlmXHU2YmEwXHU2YmEyXHU2YmEzXHU2YmE4XHU2YmE5XHU2YmFjXHU2YmFkXHU2YmFlXHU2''@;'; put 'put ''YmIwXHU2YmI4XHU2YmI5XHU2YmJkXHU2YmJlXHU2YmMzXHU2YmM0XHU2YmM5XHU2YmNjXHU2YmQ2XHU2YmRhXHU2YmUxXHU2YmUzXHU2YmU2XHU2YmU3XHU2YmVlXHU2YmYxXHU2YmY3XHU2YmY5XHU2YmZmXHU2YzAyXHU2YzA0XHU2YzA1XHU2YzA5XHU2YzBkXHU2YzBlXHU2YzEwXHU2YzEy''@;'; put 'put ''XHU2YzE5XHU2YzFmXHU2YzI2XHU2YzI3XHU2YzI4XHU2YzJjXHU2YzJlXHU2YzMzXHU2YzM1XHU2YzM2XHU2YzNhXHU2YzNiXHU2YzNmXHU2YzRhXHU2YzRiXHU2YzRkXHU2YzRmXHU2YzUyXHU2YzU0XHU2YzU5XHU2YzViXHU2YzVjXHU2YzZiXHU2YzZkXHU2YzZmXHU2Yzc0XHU2Yzc2XHU2''@;'; put 'put ''Yzc4XHU2Yzc5XHU2YzdiXHU2Yzg1XHU2Yzg2XHU2Yzg3XHU2Yzg5XHU2Yzk0XHU2Yzk1XHU2Yzk3XHU2Yzk4XHU2YzljXHU2YzlmXHU2Y2IwXHU2Y2IyXHU2Y2I0XHU2Y2MyXHU2Y2M2XHU2Y2NkXHU2Y2NmXHU2Y2QwXHU2Y2QxXHU2Y2QyXHU2Y2Q0XHU2Y2Q2Il0sWyI4ZmM3YTEiLCJcdTZj''@;'; put 'put ''ZGFcdTZjZGNcdTZjZTBcdTZjZTdcdTZjZTlcdTZjZWJcdTZjZWNcdTZjZWVcdTZjZjJcdTZjZjRcdTZkMDRcdTZkMDdcdTZkMGFcdTZkMGVcdTZkMGZcdTZkMTFcdTZkMTNcdTZkMWFcdTZkMjZcdTZkMjdcdTZkMjhcdTZjNjdcdTZkMmVcdTZkMmZcdTZkMzFcdTZkMzlcdTZkM2NcdTZkM2Zc''@;'; put 'put ''dTZkNTdcdTZkNWVcdTZkNWZcdTZkNjFcdTZkNjVcdTZkNjdcdTZkNmZcdTZkNzBcdTZkN2NcdTZkODJcdTZkODdcdTZkOTFcdTZkOTJcdTZkOTRcdTZkOTZcdTZkOTdcdTZkOThcdTZkYWFcdTZkYWNcdTZkYjRcdTZkYjdcdTZkYjlcdTZkYmRcdTZkYmZcdTZkYzRcdTZkYzhcdTZkY2FcdTZk''@;'; put 'put ''Y2VcdTZkY2ZcdTZkZDZcdTZkZGJcdTZkZGRcdTZkZGZcdTZkZTBcdTZkZTJcdTZkZTVcdTZkZTlcdTZkZWZcdTZkZjBcdTZkZjRcdTZkZjZcdTZkZmNcdTZlMDBcdTZlMDRcdTZlMWVcdTZlMjJcdTZlMjdcdTZlMzJcdTZlMzZcdTZlMzlcdTZlM2JcdTZlM2NcdTZlNDRcdTZlNDVcdTZlNDhc''@;'; put 'put ''dTZlNDlcdTZlNGJcdTZlNGZcdTZlNTFcdTZlNTJcdTZlNTNcdTZlNTRcdTZlNTdcdTZlNWNcdTZlNWRcdTZlNWUiXSxbIjhmYzhhMSIsIlx1NmU2Mlx1NmU2M1x1NmU2OFx1NmU3M1x1NmU3Ylx1NmU3ZFx1NmU4ZFx1NmU5M1x1NmU5OVx1NmVhMFx1NmVhN1x1NmVhZFx1NmVhZVx1NmViMVx1''@;'; put 'put ''NmViM1x1NmViYlx1NmViZlx1NmVjMFx1NmVjMVx1NmVjM1x1NmVjN1x1NmVjOFx1NmVjYVx1NmVjZFx1NmVjZVx1NmVjZlx1NmVlYlx1NmVlZFx1NmVlZVx1NmVmOVx1NmVmYlx1NmVmZFx1NmYwNFx1NmYwOFx1NmYwYVx1NmYwY1x1NmYwZFx1NmYxNlx1NmYxOFx1NmYxYVx1NmYxYlx1NmYy''@;'; put 'put ''Nlx1NmYyOVx1NmYyYVx1NmYyZlx1NmYzMFx1NmYzM1x1NmYzNlx1NmYzYlx1NmYzY1x1NmYyZFx1NmY0Zlx1NmY1MVx1NmY1Mlx1NmY1M1x1NmY1N1x1NmY1OVx1NmY1YVx1NmY1ZFx1NmY1ZVx1NmY2MVx1NmY2Mlx1NmY2OFx1NmY2Y1x1NmY3ZFx1NmY3ZVx1NmY4M1x1NmY4N1x1NmY4OFx1''@;'; put 'put ''NmY4Ylx1NmY4Y1x1NmY4ZFx1NmY5MFx1NmY5Mlx1NmY5M1x1NmY5NFx1NmY5Nlx1NmY5YVx1NmY5Zlx1NmZhMFx1NmZhNVx1NmZhNlx1NmZhN1x1NmZhOFx1NmZhZVx1NmZhZlx1NmZiMFx1NmZiNVx1NmZiNlx1NmZiY1x1NmZjNVx1NmZjN1x1NmZjOFx1NmZjYSJdLFsiOGZjOWExIiwiXHU2''@;'; put 'put ''ZmRhXHU2ZmRlXHU2ZmU4XHU2ZmU5XHU2ZmYwXHU2ZmY1XHU2ZmY5XHU2ZmZjXHU2ZmZkXHU3MDAwXHU3MDA1XHU3MDA2XHU3MDA3XHU3MDBkXHU3MDE3XHU3MDIwXHU3MDIzXHU3MDJmXHU3MDM0XHU3MDM3XHU3MDM5XHU3MDNjXHU3MDQzXHU3MDQ0XHU3MDQ4XHU3MDQ5XHU3MDRhXHU3MDRi''@;'; put 'put ''XHU3MDU0XHU3MDU1XHU3MDVkXHU3MDVlXHU3MDRlXHU3MDY0XHU3MDY1XHU3MDZjXHU3MDZlXHU3MDc1XHU3MDc2XHU3MDdlXHU3MDgxXHU3MDg1XHU3MDg2XHU3MDk0Iiw0LCJcdTcwOWJcdTcwYTRcdTcwYWJcdTcwYjBcdTcwYjFcdTcwYjRcdTcwYjdcdTcwY2FcdTcwZDFcdTcwZDNcdTcw''@;'; put 'put ''ZDRcdTcwZDVcdTcwZDZcdTcwZDhcdTcwZGNcdTcwZTRcdTcwZmFcdTcxMDMiLDQsIlx1NzEwYlx1NzEwY1x1NzEwZlx1NzExZVx1NzEyMFx1NzEyYlx1NzEyZFx1NzEyZlx1NzEzMFx1NzEzMVx1NzEzOFx1NzE0MVx1NzE0NVx1NzE0Nlx1NzE0N1x1NzE0YVx1NzE0Ylx1NzE1MFx1NzE1Mlx1''@;'; put 'put ''NzE1N1x1NzE1YVx1NzE1Y1x1NzE1ZVx1NzE2MCJdLFsiOGZjYWExIiwiXHU3MTY4XHU3MTc5XHU3MTgwXHU3MTg1XHU3MTg3XHU3MThjXHU3MTkyXHU3MTlhXHU3MTliXHU3MWEwXHU3MWEyXHU3MWFmXHU3MWIwXHU3MWIyXHU3MWIzXHU3MWJhXHU3MWJmXHU3MWMwXHU3MWMxXHU3MWM0XHU3''@;'; put 'put ''MWNiXHU3MWNjXHU3MWQzXHU3MWQ2XHU3MWQ5XHU3MWRhXHU3MWRjXHU3MWY4XHU3MWZlXHU3MjAwXHU3MjA3XHU3MjA4XHU3MjA5XHU3MjEzXHU3MjE3XHU3MjFhXHU3MjFkXHU3MjFmXHU3MjI0XHU3MjJiXHU3MjJmXHU3MjM0XHU3MjM4XHU3MjM5XHU3MjQxXHU3MjQyXHU3MjQzXHU3MjQ1''@;'; put 'put ''XHU3MjRlXHU3MjRmXHU3MjUwXHU3MjUzXHU3MjU1XHU3MjU2XHU3MjVhXHU3MjVjXHU3MjVlXHU3MjYwXHU3MjYzXHU3MjY4XHU3MjZiXHU3MjZlXHU3MjZmXHU3MjcxXHU3Mjc3XHU3Mjc4XHU3MjdiXHU3MjdjXHU3MjdmXHU3Mjg0XHU3Mjg5XHU3MjhkXHU3MjhlXHU3MjkzXHU3MjliXHU3''@;'; put 'put ''MmE4XHU3MmFkXHU3MmFlXHU3MmIxXHU3MmI0XHU3MmJlXHU3MmMxXHU3MmM3XHU3MmM5XHU3MmNjXHU3MmQ1XHU3MmQ2XHU3MmQ4XHU3MmRmXHU3MmU1XHU3MmYzXHU3MmY0XHU3MmZhXHU3MmZiIl0sWyI4ZmNiYTEiLCJcdTcyZmVcdTczMDJcdTczMDRcdTczMDVcdTczMDdcdTczMGJcdTcz''@;'; put 'put ''MGRcdTczMTJcdTczMTNcdTczMThcdTczMTlcdTczMWVcdTczMjJcdTczMjRcdTczMjdcdTczMjhcdTczMmNcdTczMzFcdTczMzJcdTczMzVcdTczM2FcdTczM2JcdTczM2RcdTczNDNcdTczNGRcdTczNTBcdTczNTJcdTczNTZcdTczNThcdTczNWRcdTczNWVcdTczNWZcdTczNjBcdTczNjZc''@;'; put 'put ''dTczNjdcdTczNjlcdTczNmJcdTczNmNcdTczNmVcdTczNmZcdTczNzFcdTczNzdcdTczNzlcdTczN2NcdTczODBcdTczODFcdTczODNcdTczODVcdTczODZcdTczOGVcdTczOTBcdTczOTNcdTczOTVcdTczOTdcdTczOThcdTczOWNcdTczOWVcdTczOWZcdTczYTBcdTczYTJcdTczYTVcdTcz''@;'; put 'put ''YTZcdTczYWFcdTczYWJcdTczYWRcdTczYjVcdTczYjdcdTczYjlcdTczYmNcdTczYmRcdTczYmZcdTczYzVcdTczYzZcdTczYzlcdTczY2JcdTczY2NcdTczY2ZcdTczZDJcdTczZDNcdTczZDZcdTczZDlcdTczZGRcdTczZTFcdTczZTNcdTczZTZcdTczZTdcdTczZTlcdTczZjRcdTczZjVc''@;'; put 'put ''dTczZjdcdTczZjlcdTczZmFcdTczZmJcdTczZmQiXSxbIjhmY2NhMSIsIlx1NzNmZlx1NzQwMFx1NzQwMVx1NzQwNFx1NzQwN1x1NzQwYVx1NzQxMVx1NzQxYVx1NzQxYlx1NzQyNFx1NzQyNlx1NzQyOCIsOSwiXHU3NDM5XHU3NDQwXHU3NDQzXHU3NDQ0XHU3NDQ2XHU3NDQ3XHU3NDRiXHU3''@;'; put 'put ''NDRkXHU3NDUxXHU3NDUyXHU3NDU3XHU3NDVkXHU3NDYyXHU3NDY2XHU3NDY3XHU3NDY4XHU3NDZiXHU3NDZkXHU3NDZlXHU3NDcxXHU3NDcyXHU3NDgwXHU3NDgxXHU3NDg1XHU3NDg2XHU3NDg3XHU3NDg5XHU3NDhmXHU3NDkwXHU3NDkxXHU3NDkyXHU3NDk4XHU3NDk5XHU3NDlhXHU3NDlj''@;'; put 'put ''XHU3NDlmXHU3NGEwXHU3NGExXHU3NGEzXHU3NGE2XHU3NGE4XHU3NGE5XHU3NGFhXHU3NGFiXHU3NGFlXHU3NGFmXHU3NGIxXHU3NGIyXHU3NGI1XHU3NGI5XHU3NGJiXHU3NGJmXHU3NGM4XHU3NGM5XHU3NGNjXHU3NGQwXHU3NGQzXHU3NGQ4XHU3NGRhXHU3NGRiXHU3NGRlXHU3NGRmXHU3''@;'; put 'put ''NGU0XHU3NGU4XHU3NGVhXHU3NGViXHU3NGVmXHU3NGY0XHU3NGZhXHU3NGZiXHU3NGZjXHU3NGZmXHU3NTA2Il0sWyI4ZmNkYTEiLCJcdTc1MTJcdTc1MTZcdTc1MTdcdTc1MjBcdTc1MjFcdTc1MjRcdTc1MjdcdTc1MjlcdTc1MmFcdTc1MmZcdTc1MzZcdTc1MzlcdTc1M2RcdTc1M2VcdTc1''@;'; put 'put ''M2ZcdTc1NDBcdTc1NDNcdTc1NDdcdTc1NDhcdTc1NGVcdTc1NTBcdTc1NTJcdTc1NTdcdTc1NWVcdTc1NWZcdTc1NjFcdTc1NmZcdTc1NzFcdTc1NzkiLDUsIlx1NzU4MVx1NzU4NVx1NzU5MFx1NzU5Mlx1NzU5M1x1NzU5NVx1NzU5OVx1NzU5Y1x1NzVhMlx1NzVhNFx1NzViNFx1NzViYVx1''@;'; put 'put ''NzViZlx1NzVjMFx1NzVjMVx1NzVjNFx1NzVjNlx1NzVjY1x1NzVjZVx1NzVjZlx1NzVkN1x1NzVkY1x1NzVkZlx1NzVlMFx1NzVlMVx1NzVlNFx1NzVlN1x1NzVlY1x1NzVlZVx1NzVlZlx1NzVmMVx1NzVmOVx1NzYwMFx1NzYwMlx1NzYwM1x1NzYwNFx1NzYwN1x1NzYwOFx1NzYwYVx1NzYw''@;'; put 'put ''Y1x1NzYwZlx1NzYxMlx1NzYxM1x1NzYxNVx1NzYxNlx1NzYxOVx1NzYxYlx1NzYxY1x1NzYxZFx1NzYxZVx1NzYyM1x1NzYyNVx1NzYyNlx1NzYyOVx1NzYyZFx1NzYzMlx1NzYzM1x1NzYzNVx1NzYzOFx1NzYzOSJdLFsiOGZjZWExIiwiXHU3NjNhXHU3NjNjXHU3NjRhXHU3NjQwXHU3NjQx''@;'; put 'put ''XHU3NjQzXHU3NjQ0XHU3NjQ1XHU3NjQ5XHU3NjRiXHU3NjU1XHU3NjU5XHU3NjVmXHU3NjY0XHU3NjY1XHU3NjZkXHU3NjZlXHU3NjZmXHU3NjcxXHU3Njc0XHU3NjgxXHU3Njg1XHU3NjhjXHU3NjhkXHU3Njk1XHU3NjliXHU3NjljXHU3NjlkXHU3NjlmXHU3NmEwXHU3NmEyIiw2LCJcdTc2''@;'; put 'put ''YWFcdTc2YWRcdTc2YmRcdTc2YzFcdTc2YzVcdTc2YzlcdTc2Y2JcdTc2Y2NcdTc2Y2VcdTc2ZDRcdTc2ZDlcdTc2ZTBcdTc2ZTZcdTc2ZThcdTc2ZWNcdTc2ZjBcdTc2ZjFcdTc2ZjZcdTc2ZjlcdTc2ZmNcdTc3MDBcdTc3MDZcdTc3MGFcdTc3MGVcdTc3MTJcdTc3MTRcdTc3MTVcdTc3MTdc''@;'; put 'put ''dTc3MTlcdTc3MWFcdTc3MWNcdTc3MjJcdTc3MjhcdTc3MmRcdTc3MmVcdTc3MmZcdTc3MzRcdTc3MzVcdTc3MzZcdTc3MzlcdTc3M2RcdTc3M2VcdTc3NDJcdTc3NDVcdTc3NDZcdTc3NGFcdTc3NGRcdTc3NGVcdTc3NGZcdTc3NTJcdTc3NTZcdTc3NTdcdTc3NWNcdTc3NWVcdTc3NWZcdTc3''@;'; put 'put ''NjBcdTc3NjIiXSxbIjhmY2ZhMSIsIlx1Nzc2NFx1Nzc2N1x1Nzc2YVx1Nzc2Y1x1Nzc3MFx1Nzc3Mlx1Nzc3M1x1Nzc3NFx1Nzc3YVx1Nzc3ZFx1Nzc4MFx1Nzc4NFx1Nzc4Y1x1Nzc4ZFx1Nzc5NFx1Nzc5NVx1Nzc5Nlx1Nzc5YVx1Nzc5Zlx1NzdhMlx1NzdhN1x1NzdhYVx1NzdhZVx1Nzdh''@;'; put 'put ''Zlx1NzdiMVx1NzdiNVx1NzdiZVx1NzdjM1x1NzdjOVx1NzdkMVx1NzdkMlx1NzdkNVx1NzdkOVx1NzdkZVx1NzdkZlx1NzdlMFx1NzdlNFx1NzdlNlx1NzdlYVx1NzdlY1x1NzdmMFx1NzdmMVx1NzdmNFx1NzdmOFx1NzdmYlx1NzgwNVx1NzgwNlx1NzgwOVx1NzgwZFx1NzgwZVx1NzgxMVx1''@;'; put 'put ''NzgxZFx1NzgyMVx1NzgyMlx1NzgyM1x1NzgyZFx1NzgyZVx1NzgzMFx1NzgzNVx1NzgzN1x1Nzg0M1x1Nzg0NFx1Nzg0N1x1Nzg0OFx1Nzg0Y1x1Nzg0ZVx1Nzg1Mlx1Nzg1Y1x1Nzg1ZVx1Nzg2MFx1Nzg2MVx1Nzg2M1x1Nzg2NFx1Nzg2OFx1Nzg2YVx1Nzg2ZVx1Nzg3YVx1Nzg3ZVx1Nzg4''@;'; put 'put ''YVx1Nzg4Zlx1Nzg5NFx1Nzg5OFx1NzhhMVx1Nzg5ZFx1Nzg5ZVx1Nzg5Zlx1NzhhNFx1NzhhOFx1NzhhY1x1NzhhZFx1NzhiMFx1NzhiMVx1NzhiMlx1NzhiMyJdLFsiOGZkMGExIiwiXHU3OGJiXHU3OGJkXHU3OGJmXHU3OGM3XHU3OGM4XHU3OGM5XHU3OGNjXHU3OGNlXHU3OGQyXHU3OGQz''@;'; put 'put ''XHU3OGQ1XHU3OGQ2XHU3OGU0XHU3OGRiXHU3OGRmXHU3OGUwXHU3OGUxXHU3OGU2XHU3OGVhXHU3OGYyXHU3OGYzXHU3OTAwXHU3OGY2XHU3OGY3XHU3OGZhXHU3OGZiXHU3OGZmXHU3OTA2XHU3OTBjXHU3OTEwXHU3OTFhXHU3OTFjXHU3OTFlXHU3OTFmXHU3OTIwXHU3OTI1XHU3OTI3XHU3''@;'; put 'put ''OTI5XHU3OTJkXHU3OTMxXHU3OTM0XHU3OTM1XHU3OTNiXHU3OTNkXHU3OTNmXHU3OTQ0XHU3OTQ1XHU3OTQ2XHU3OTRhXHU3OTRiXHU3OTRmXHU3OTUxXHU3OTU0XHU3OTU4XHU3OTViXHU3OTVjXHU3OTY3XHU3OTY5XHU3OTZiXHU3OTcyXHU3OTc5XHU3OTdiXHU3OTdjXHU3OTdlXHU3OThi''@;'; put 'put ''XHU3OThjXHU3OTkxXHU3OTkzXHU3OTk0XHU3OTk1XHU3OTk2XHU3OTk4XHU3OTliXHU3OTljXHU3OWExXHU3OWE4XHU3OWE5XHU3OWFiXHU3OWFmXHU3OWIxXHU3OWI0XHU3OWI4XHU3OWJiXHU3OWMyXHU3OWM0XHU3OWM3XHU3OWM4XHU3OWNhXHU3OWNmXHU3OWQ0XHU3OWQ2XHU3OWRhXHU3''@;'; put 'put ''OWRkXHU3OWRlIl0sWyI4ZmQxYTEiLCJcdTc5ZTBcdTc5ZTJcdTc5ZTVcdTc5ZWFcdTc5ZWJcdTc5ZWRcdTc5ZjFcdTc5ZjhcdTc5ZmNcdTdhMDJcdTdhMDNcdTdhMDdcdTdhMDlcdTdhMGFcdTdhMGNcdTdhMTFcdTdhMTVcdTdhMWJcdTdhMWVcdTdhMjFcdTdhMjdcdTdhMmJcdTdhMmRcdTdh''@;'; put 'put ''MmZcdTdhMzBcdTdhMzRcdTdhMzVcdTdhMzhcdTdhMzlcdTdhM2FcdTdhNDRcdTdhNDVcdTdhNDdcdTdhNDhcdTdhNGNcdTdhNTVcdTdhNTZcdTdhNTlcdTdhNWNcdTdhNWRcdTdhNWZcdTdhNjBcdTdhNjVcdTdhNjdcdTdhNmFcdTdhNmRcdTdhNzVcdTdhNzhcdTdhN2VcdTdhODBcdTdhODJc''@;'; put 'put ''dTdhODVcdTdhODZcdTdhOGFcdTdhOGJcdTdhOTBcdTdhOTFcdTdhOTRcdTdhOWVcdTdhYTBcdTdhYTNcdTdhYWNcdTdhYjNcdTdhYjVcdTdhYjlcdTdhYmJcdTdhYmNcdTdhYzZcdTdhYzlcdTdhY2NcdTdhY2VcdTdhZDFcdTdhZGJcdTdhZThcdTdhZTlcdTdhZWJcdTdhZWNcdTdhZjFcdTdh''@;'; put 'put ''ZjRcdTdhZmJcdTdhZmRcdTdhZmVcdTdiMDdcdTdiMTRcdTdiMWZcdTdiMjNcdTdiMjdcdTdiMjlcdTdiMmFcdTdiMmJcdTdiMmRcdTdiMmVcdTdiMmZcdTdiMzAiXSxbIjhmZDJhMSIsIlx1N2IzMVx1N2IzNFx1N2IzZFx1N2IzZlx1N2I0MFx1N2I0MVx1N2I0N1x1N2I0ZVx1N2I1NVx1N2I2''@;'; put 'put ''MFx1N2I2NFx1N2I2Nlx1N2I2OVx1N2I2YVx1N2I2ZFx1N2I2Zlx1N2I3Mlx1N2I3M1x1N2I3N1x1N2I4NFx1N2I4OVx1N2I4ZVx1N2I5MFx1N2I5MVx1N2I5Nlx1N2I5Ylx1N2I5ZVx1N2JhMFx1N2JhNVx1N2JhY1x1N2JhZlx1N2JiMFx1N2JiMlx1N2JiNVx1N2JiNlx1N2JiYVx1N2JiYlx1''@;'; put 'put ''N2JiY1x1N2JiZFx1N2JjMlx1N2JjNVx1N2JjOFx1N2JjYVx1N2JkNFx1N2JkNlx1N2JkN1x1N2JkOVx1N2JkYVx1N2JkYlx1N2JlOFx1N2JlYVx1N2JmMlx1N2JmNFx1N2JmNVx1N2JmOFx1N2JmOVx1N2JmYVx1N2JmY1x1N2JmZVx1N2MwMVx1N2MwMlx1N2MwM1x1N2MwNFx1N2MwNlx1N2Mw''@;'; put 'put ''OVx1N2MwYlx1N2MwY1x1N2MwZVx1N2MwZlx1N2MxOVx1N2MxYlx1N2MyMFx1N2MyNVx1N2MyNlx1N2MyOFx1N2MyY1x1N2MzMVx1N2MzM1x1N2MzNFx1N2MzNlx1N2MzOVx1N2MzYVx1N2M0Nlx1N2M0YVx1N2M1NVx1N2M1MVx1N2M1Mlx1N2M1M1x1N2M1OSIsNV0sWyI4ZmQzYTEiLCJcdTdj''@;'; put 'put ''NjFcdTdjNjNcdTdjNjdcdTdjNjlcdTdjNmRcdTdjNmVcdTdjNzBcdTdjNzJcdTdjNzlcdTdjN2NcdTdjN2RcdTdjODZcdTdjODdcdTdjOGZcdTdjOTRcdTdjOWVcdTdjYTBcdTdjYTZcdTdjYjBcdTdjYjZcdTdjYjdcdTdjYmFcdTdjYmJcdTdjYmNcdTdjYmZcdTdjYzRcdTdjYzdcdTdjYzhc''@;'; put 'put ''dTdjYzlcdTdjY2RcdTdjY2ZcdTdjZDNcdTdjZDRcdTdjZDVcdTdjZDdcdTdjZDlcdTdjZGFcdTdjZGRcdTdjZTZcdTdjZTlcdTdjZWJcdTdjZjVcdTdkMDNcdTdkMDdcdTdkMDhcdTdkMDlcdTdkMGZcdTdkMTFcdTdkMTJcdTdkMTNcdTdkMTZcdTdkMWRcdTdkMWVcdTdkMjNcdTdkMjZcdTdk''@;'; put 'put ''MmFcdTdkMmRcdTdkMzFcdTdkM2NcdTdkM2RcdTdkM2VcdTdkNDBcdTdkNDFcdTdkNDdcdTdkNDhcdTdkNGRcdTdkNTFcdTdkNTNcdTdkNTdcdTdkNTlcdTdkNWFcdTdkNWNcdTdkNWRcdTdkNjVcdTdkNjdcdTdkNmFcdTdkNzBcdTdkNzhcdTdkN2FcdTdkN2JcdTdkN2ZcdTdkODFcdTdkODJc''@;'; put 'put ''dTdkODNcdTdkODVcdTdkODZcdTdkODhcdTdkOGJcdTdkOGNcdTdkOGRcdTdkOTFcdTdkOTZcdTdkOTdcdTdkOWQiXSxbIjhmZDRhMSIsIlx1N2Q5ZVx1N2RhNlx1N2RhN1x1N2RhYVx1N2RiM1x1N2RiNlx1N2RiN1x1N2RiOVx1N2RjMiIsNCwiXHU3ZGNjXHU3ZGNkXHU3ZGNlXHU3ZGQ3XHU3''@;'; put 'put ''ZGQ5XHU3ZTAwXHU3ZGUyXHU3ZGU1XHU3ZGU2XHU3ZGVhXHU3ZGViXHU3ZGVkXHU3ZGYxXHU3ZGY1XHU3ZGY2XHU3ZGY5XHU3ZGZhXHU3ZTA4XHU3ZTEwXHU3ZTExXHU3ZTE1XHU3ZTE3XHU3ZTFjXHU3ZTFkXHU3ZTIwXHU3ZTI3XHU3ZTI4XHU3ZTJjXHU3ZTJkXHU3ZTJmXHU3ZTMzXHU3ZTM2''@;'; put 'put ''XHU3ZTNmXHU3ZTQ0XHU3ZTQ1XHU3ZTQ3XHU3ZTRlXHU3ZTUwXHU3ZTUyXHU3ZTU4XHU3ZTVmXHU3ZTYxXHU3ZTYyXHU3ZTY1XHU3ZTZiXHU3ZTZlXHU3ZTZmXHU3ZTczXHU3ZTc4XHU3ZTdlXHU3ZTgxXHU3ZTg2XHU3ZTg3XHU3ZThhXHU3ZThkXHU3ZTkxXHU3ZTk1XHU3ZTk4XHU3ZTlhXHU3''@;'; put 'put ''ZTlkXHU3ZTllXHU3ZjNjXHU3ZjNiXHU3ZjNkXHU3ZjNlXHU3ZjNmXHU3ZjQzXHU3ZjQ0XHU3ZjQ3XHU3ZjRmXHU3ZjUyXHU3ZjUzXHU3ZjViXHU3ZjVjXHU3ZjVkXHU3ZjYxXHU3ZjYzXHU3ZjY0XHU3ZjY1XHU3ZjY2XHU3ZjZkIl0sWyI4ZmQ1YTEiLCJcdTdmNzFcdTdmN2RcdTdmN2VcdTdm''@;'; put 'put ''N2ZcdTdmODBcdTdmOGJcdTdmOGRcdTdmOGZcdTdmOTBcdTdmOTFcdTdmOTZcdTdmOTdcdTdmOWNcdTdmYTFcdTdmYTJcdTdmYTZcdTdmYWFcdTdmYWRcdTdmYjRcdTdmYmNcdTdmYmZcdTdmYzBcdTdmYzNcdTdmYzhcdTdmY2VcdTdmY2ZcdTdmZGJcdTdmZGZcdTdmZTNcdTdmZTVcdTdmZThc''@;'; put 'put ''dTdmZWNcdTdmZWVcdTdmZWZcdTdmZjJcdTdmZmFcdTdmZmRcdTdmZmVcdTdmZmZcdTgwMDdcdTgwMDhcdTgwMGFcdTgwMGRcdTgwMGVcdTgwMGZcdTgwMTFcdTgwMTNcdTgwMTRcdTgwMTZcdTgwMWRcdTgwMWVcdTgwMWZcdTgwMjBcdTgwMjRcdTgwMjZcdTgwMmNcdTgwMmVcdTgwMzBcdTgw''@;'; put 'put ''MzRcdTgwMzVcdTgwMzdcdTgwMzlcdTgwM2FcdTgwM2NcdTgwM2VcdTgwNDBcdTgwNDRcdTgwNjBcdTgwNjRcdTgwNjZcdTgwNmRcdTgwNzFcdTgwNzVcdTgwODFcdTgwODhcdTgwOGVcdTgwOWNcdTgwOWVcdTgwYTZcdTgwYTdcdTgwYWJcdTgwYjhcdTgwYjlcdTgwYzhcdTgwY2RcdTgwY2Zc''@;'; put 'put ''dTgwZDJcdTgwZDRcdTgwZDVcdTgwZDdcdTgwZDhcdTgwZTBcdTgwZWRcdTgwZWUiXSxbIjhmZDZhMSIsIlx1ODBmMFx1ODBmMlx1ODBmM1x1ODBmNlx1ODBmOVx1ODBmYVx1ODBmZVx1ODEwM1x1ODEwYlx1ODExNlx1ODExN1x1ODExOFx1ODExY1x1ODExZVx1ODEyMFx1ODEyNFx1ODEyN1x1''@;'; put 'put ''ODEyY1x1ODEzMFx1ODEzNVx1ODEzYVx1ODEzY1x1ODE0NVx1ODE0N1x1ODE0YVx1ODE0Y1x1ODE1Mlx1ODE1N1x1ODE2MFx1ODE2MVx1ODE2N1x1ODE2OFx1ODE2OVx1ODE2ZFx1ODE2Zlx1ODE3N1x1ODE4MVx1ODE5MFx1ODE4NFx1ODE4NVx1ODE4Nlx1ODE4Ylx1ODE4ZVx1ODE5Nlx1ODE5''@;'; put 'put ''OFx1ODE5Ylx1ODE5ZVx1ODFhMlx1ODFhZVx1ODFiMlx1ODFiNFx1ODFiYlx1ODFjYlx1ODFjM1x1ODFjNVx1ODFjYVx1ODFjZVx1ODFjZlx1ODFkNVx1ODFkN1x1ODFkYlx1ODFkZFx1ODFkZVx1ODFlMVx1ODFlNFx1ODFlYlx1ODFlY1x1ODFmMFx1ODFmMVx1ODFmMlx1ODFmNVx1ODFmNlx1''@;'; put 'put ''ODFmOFx1ODFmOVx1ODFmZFx1ODFmZlx1ODIwMFx1ODIwM1x1ODIwZlx1ODIxM1x1ODIxNFx1ODIxOVx1ODIxYVx1ODIxZFx1ODIyMVx1ODIyMlx1ODIyOFx1ODIzMlx1ODIzNFx1ODIzYVx1ODI0M1x1ODI0NFx1ODI0NVx1ODI0NiJdLFsiOGZkN2ExIiwiXHU4MjRiXHU4MjRlXHU4MjRmXHU4''@;'; put 'put ''MjUxXHU4MjU2XHU4MjVjXHU4MjYwXHU4MjYzXHU4MjY3XHU4MjZkXHU4Mjc0XHU4MjdiXHU4MjdkXHU4MjdmXHU4MjgwXHU4MjgxXHU4MjgzXHU4Mjg0XHU4Mjg3XHU4Mjg5XHU4MjhhXHU4MjhlXHU4MjkxXHU4Mjk0XHU4Mjk2XHU4Mjk4XHU4MjlhXHU4MjliXHU4MmEwXHU4MmExXHU4MmEz''@;'; put 'put ''XHU4MmE0XHU4MmE3XHU4MmE4XHU4MmE5XHU4MmFhXHU4MmFlXHU4MmIwXHU4MmIyXHU4MmI0XHU4MmI3XHU4MmJhXHU4MmJjXHU4MmJlXHU4MmJmXHU4MmM2XHU4MmQwXHU4MmQ1XHU4MmRhXHU4MmUwXHU4MmUyXHU4MmU0XHU4MmU4XHU4MmVhXHU4MmVkXHU4MmVmXHU4MmY2XHU4MmY3XHU4''@;'; put 'put ''MmZkXHU4MmZlXHU4MzAwXHU4MzAxXHU4MzA3XHU4MzA4XHU4MzBhXHU4MzBiXHU4MzU0XHU4MzFiXHU4MzFkXHU4MzFlXHU4MzFmXHU4MzIxXHU4MzIyXHU4MzJjXHU4MzJkXHU4MzJlXHU4MzMwXHU4MzMzXHU4MzM3XHU4MzNhXHU4MzNjXHU4MzNkXHU4MzQyXHU4MzQzXHU4MzQ0XHU4MzQ3''@;'; put 'put ''XHU4MzRkXHU4MzRlXHU4MzUxXHU4MzU1XHU4MzU2XHU4MzU3XHU4MzcwXHU4Mzc4Il0sWyI4ZmQ4YTEiLCJcdTgzN2RcdTgzN2ZcdTgzODBcdTgzODJcdTgzODRcdTgzODZcdTgzOGRcdTgzOTJcdTgzOTRcdTgzOTVcdTgzOThcdTgzOTlcdTgzOWJcdTgzOWNcdTgzOWRcdTgzYTZcdTgzYTdc''@;'; put 'put ''dTgzYTlcdTgzYWNcdTgzYmVcdTgzYmZcdTgzYzBcdTgzYzdcdTgzYzlcdTgzY2ZcdTgzZDBcdTgzZDFcdTgzZDRcdTgzZGRcdTgzNTNcdTgzZThcdTgzZWFcdTgzZjZcdTgzZjhcdTgzZjlcdTgzZmNcdTg0MDFcdTg0MDZcdTg0MGFcdTg0MGZcdTg0MTFcdTg0MTVcdTg0MTlcdTgzYWRcdTg0''@;'; put 'put ''MmZcdTg0MzlcdTg0NDVcdTg0NDdcdTg0NDhcdTg0NGFcdTg0NGRcdTg0NGZcdTg0NTFcdTg0NTJcdTg0NTZcdTg0NThcdTg0NTlcdTg0NWFcdTg0NWNcdTg0NjBcdTg0NjRcdTg0NjVcdTg0NjdcdTg0NmFcdTg0NzBcdTg0NzNcdTg0NzRcdTg0NzZcdTg0NzhcdTg0N2NcdTg0N2RcdTg0ODFc''@;'; put 'put ''dTg0ODVcdTg0OTJcdTg0OTNcdTg0OTVcdTg0OWVcdTg0YTZcdTg0YThcdTg0YTlcdTg0YWFcdTg0YWZcdTg0YjFcdTg0YjRcdTg0YmFcdTg0YmRcdTg0YmVcdTg0YzBcdTg0YzJcdTg0YzdcdTg0YzhcdTg0Y2NcdTg0Y2ZcdTg0ZDMiXSxbIjhmZDlhMSIsIlx1ODRkY1x1ODRlN1x1ODRlYVx1''@;'; put 'put ''ODRlZlx1ODRmMFx1ODRmMVx1ODRmMlx1ODRmN1x1ODUzMlx1ODRmYVx1ODRmYlx1ODRmZFx1ODUwMlx1ODUwM1x1ODUwN1x1ODUwY1x1ODUwZVx1ODUxMFx1ODUxY1x1ODUxZVx1ODUyMlx1ODUyM1x1ODUyNFx1ODUyNVx1ODUyN1x1ODUyYVx1ODUyYlx1ODUyZlx1ODUzM1x1ODUzNFx1ODUz''@;'; put 'put ''Nlx1ODUzZlx1ODU0Nlx1ODU0ZiIsNCwiXHU4NTU2XHU4NTU5XHU4NTVjIiw2LCJcdTg1NjRcdTg1NmJcdTg1NmZcdTg1NzlcdTg1N2FcdTg1N2JcdTg1N2RcdTg1N2ZcdTg1ODFcdTg1ODVcdTg1ODZcdTg1ODlcdTg1OGJcdTg1OGNcdTg1OGZcdTg1OTNcdTg1OThcdTg1OWRcdTg1OWZcdTg1''@;'; put 'put ''YTBcdTg1YTJcdTg1YTVcdTg1YTdcdTg1YjRcdTg1YjZcdTg1YjdcdTg1YjhcdTg1YmNcdTg1YmRcdTg1YmVcdTg1YmZcdTg1YzJcdTg1YzdcdTg1Y2FcdTg1Y2JcdTg1Y2VcdTg1YWRcdTg1ZDhcdTg1ZGFcdTg1ZGZcdTg1ZTBcdTg1ZTZcdTg1ZThcdTg1ZWRcdTg1ZjNcdTg1ZjZcdTg1ZmMi''@;'; put 'put ''XSxbIjhmZGFhMSIsIlx1ODVmZlx1ODYwMFx1ODYwNFx1ODYwNVx1ODYwZFx1ODYwZVx1ODYxMFx1ODYxMVx1ODYxMlx1ODYxOFx1ODYxOVx1ODYxYlx1ODYxZVx1ODYyMVx1ODYyN1x1ODYyOVx1ODYzNlx1ODYzOFx1ODYzYVx1ODYzY1x1ODYzZFx1ODY0MFx1ODY0Mlx1ODY0Nlx1ODY1Mlx1''@;'; put 'put ''ODY1M1x1ODY1Nlx1ODY1N1x1ODY1OFx1ODY1OVx1ODY1ZFx1ODY2MCIsNCwiXHU4NjY5XHU4NjZjXHU4NjZmXHU4Njc1XHU4Njc2XHU4Njc3XHU4NjdhXHU4NjhkXHU4NjkxXHU4Njk2XHU4Njk4XHU4NjlhXHU4NjljXHU4NmExXHU4NmE2XHU4NmE3XHU4NmE4XHU4NmFkXHU4NmIxXHU4NmIz''@;'; put 'put ''XHU4NmI0XHU4NmI1XHU4NmI3XHU4NmI4XHU4NmI5XHU4NmJmXHU4NmMwXHU4NmMxXHU4NmMzXHU4NmM1XHU4NmQxXHU4NmQyXHU4NmQ1XHU4NmQ3XHU4NmRhXHU4NmRjXHU4NmUwXHU4NmUzXHU4NmU1XHU4NmU3XHU4Njg4XHU4NmZhXHU4NmZjXHU4NmZkXHU4NzA0XHU4NzA1XHU4NzA3XHU4''@;'; put 'put ''NzBiXHU4NzBlXHU4NzBmXHU4NzEwXHU4NzEzXHU4NzE0XHU4NzE5XHU4NzFlXHU4NzFmXHU4NzIxXHU4NzIzIl0sWyI4ZmRiYTEiLCJcdTg3MjhcdTg3MmVcdTg3MmZcdTg3MzFcdTg3MzJcdTg3MzlcdTg3M2FcdTg3M2NcdTg3M2RcdTg3M2VcdTg3NDBcdTg3NDNcdTg3NDVcdTg3NGRcdTg3''@;'; put 'put ''NThcdTg3NWRcdTg3NjFcdTg3NjRcdTg3NjVcdTg3NmZcdTg3NzFcdTg3NzJcdTg3N2JcdTg3ODMiLDYsIlx1ODc4Ylx1ODc4Y1x1ODc5MFx1ODc5M1x1ODc5NVx1ODc5N1x1ODc5OFx1ODc5OVx1ODc5ZVx1ODdhMFx1ODdhM1x1ODdhN1x1ODdhY1x1ODdhZFx1ODdhZVx1ODdiMVx1ODdiNVx1''@;'; put 'put ''ODdiZVx1ODdiZlx1ODdjMVx1ODdjOFx1ODdjOVx1ODdjYVx1ODdjZVx1ODdkNVx1ODdkNlx1ODdkOVx1ODdkYVx1ODdkY1x1ODdkZlx1ODdlMlx1ODdlM1x1ODdlNFx1ODdlYVx1ODdlYlx1ODdlZFx1ODdmMVx1ODdmM1x1ODdmOFx1ODdmYVx1ODdmZlx1ODgwMVx1ODgwM1x1ODgwNlx1ODgw''@;'; put 'put ''OVx1ODgwYVx1ODgwYlx1ODgxMFx1ODgxOVx1ODgxMlx1ODgxM1x1ODgxNFx1ODgxOFx1ODgxYVx1ODgxYlx1ODgxY1x1ODgxZVx1ODgxZlx1ODgyOFx1ODgyZFx1ODgyZVx1ODgzMFx1ODgzMlx1ODgzNSJdLFsiOGZkY2ExIiwiXHU4ODNhXHU4ODNjXHU4ODQxXHU4ODQzXHU4ODQ1XHU4ODQ4''@;'; put 'put ''XHU4ODQ5XHU4ODRhXHU4ODRiXHU4ODRlXHU4ODUxXHU4ODU1XHU4ODU2XHU4ODU4XHU4ODVhXHU4ODVjXHU4ODVmXHU4ODYwXHU4ODY0XHU4ODY5XHU4ODcxXHU4ODc5XHU4ODdiXHU4ODgwXHU4ODk4XHU4ODlhXHU4ODliXHU4ODljXHU4ODlmXHU4OGEwXHU4OGE4XHU4OGFhXHU4OGJhXHU4''@;'; put 'put ''OGJkXHU4OGJlXHU4OGMwXHU4OGNhIiw0LCJcdTg4ZDFcdTg4ZDJcdTg4ZDNcdTg4ZGJcdTg4ZGVcdTg4ZTdcdTg4ZWZcdTg4ZjBcdTg4ZjFcdTg4ZjVcdTg4ZjdcdTg5MDFcdTg5MDZcdTg5MGRcdTg5MGVcdTg5MGZcdTg5MTVcdTg5MTZcdTg5MThcdTg5MTlcdTg5MWFcdTg5MWNcdTg5MjBc''@;'; put 'put ''dTg5MjZcdTg5MjdcdTg5MjhcdTg5MzBcdTg5MzFcdTg5MzJcdTg5MzVcdTg5MzlcdTg5M2FcdTg5M2VcdTg5NDBcdTg5NDJcdTg5NDVcdTg5NDZcdTg5NDlcdTg5NGZcdTg5NTJcdTg5NTdcdTg5NWFcdTg5NWJcdTg5NWNcdTg5NjFcdTg5NjJcdTg5NjNcdTg5NmJcdTg5NmVcdTg5NzBcdTg5''@;'; put 'put ''NzNcdTg5NzVcdTg5N2EiXSxbIjhmZGRhMSIsIlx1ODk3Ylx1ODk3Y1x1ODk3ZFx1ODk4OVx1ODk4ZFx1ODk5MFx1ODk5NFx1ODk5NVx1ODk5Ylx1ODk5Y1x1ODk5Zlx1ODlhMFx1ODlhNVx1ODliMFx1ODliNFx1ODliNVx1ODliNlx1ODliN1x1ODliY1x1ODlkNCIsNCwiXHU4OWU1XHU4OWU5''@;'; put 'put ''XHU4OWViXHU4OWVkXHU4OWYxXHU4OWYzXHU4OWY2XHU4OWY5XHU4OWZkXHU4OWZmXHU4YTA0XHU4YTA1XHU4YTA3XHU4YTBmXHU4YTExXHU4YTEyXHU4YTE0XHU4YTE1XHU4YTFlXHU4YTIwXHU4YTIyXHU4YTI0XHU4YTI2XHU4YTJiXHU4YTJjXHU4YTJmXHU4YTM1XHU4YTM3XHU4YTNkXHU4''@;'; put 'put ''YTNlXHU4YTQwXHU4YTQzXHU4YTQ1XHU4YTQ3XHU4YTQ5XHU4YTRkXHU4YTRlXHU4YTUzXHU4YTU2XHU4YTU3XHU4YTU4XHU4YTVjXHU4YTVkXHU4YTYxXHU4YTY1XHU4YTY3XHU4YTc1XHU4YTc2XHU4YTc3XHU4YTc5XHU4YTdhXHU4YTdiXHU4YTdlXHU4YTdmXHU4YTgwXHU4YTgzXHU4YTg2''@;'; put 'put ''XHU4YThiXHU4YThmXHU4YTkwXHU4YTkyXHU4YTk2XHU4YTk3XHU4YTk5XHU4YTlmXHU4YWE3XHU4YWE5XHU4YWFlXHU4YWFmXHU4YWIzIl0sWyI4ZmRlYTEiLCJcdThhYjZcdThhYjdcdThhYmJcdThhYmVcdThhYzNcdThhYzZcdThhYzhcdThhYzlcdThhY2FcdThhZDFcdThhZDNcdThhZDRc''@;'; put 'put ''dThhZDVcdThhZDdcdThhZGRcdThhZGZcdThhZWNcdThhZjBcdThhZjRcdThhZjVcdThhZjZcdThhZmNcdThhZmZcdThiMDVcdThiMDZcdThiMGJcdThiMTFcdThiMWNcdThiMWVcdThiMWZcdThiMGFcdThiMmRcdThiMzBcdThiMzdcdThiM2NcdThiNDIiLDQsIlx1OGI0OFx1OGI1Mlx1OGI1''@;'; put 'put ''M1x1OGI1NFx1OGI1OVx1OGI0ZFx1OGI1ZVx1OGI2M1x1OGI2ZFx1OGI3Nlx1OGI3OFx1OGI3OVx1OGI3Y1x1OGI3ZVx1OGI4MVx1OGI4NFx1OGI4NVx1OGI4Ylx1OGI4ZFx1OGI4Zlx1OGI5NFx1OGI5NVx1OGI5Y1x1OGI5ZVx1OGI5Zlx1OGMzOFx1OGMzOVx1OGMzZFx1OGMzZVx1OGM0NVx1''@;'; put 'put ''OGM0N1x1OGM0OVx1OGM0Ylx1OGM0Zlx1OGM1MVx1OGM1M1x1OGM1NFx1OGM1N1x1OGM1OFx1OGM1Ylx1OGM1ZFx1OGM1OVx1OGM2M1x1OGM2NFx1OGM2Nlx1OGM2OFx1OGM2OVx1OGM2ZFx1OGM3M1x1OGM3NVx1OGM3Nlx1OGM3Ylx1OGM3ZVx1OGM4NiJdLFsiOGZkZmExIiwiXHU4Yzg3XHU4''@;'; put 'put ''YzhiXHU4YzkwXHU4YzkyXHU4YzkzXHU4Yzk5XHU4YzliXHU4YzljXHU4Y2E0XHU4Y2I5XHU4Y2JhXHU4Y2M1XHU4Y2M2XHU4Y2M5XHU4Y2NiXHU4Y2NmXHU4Y2Q2XHU4Y2Q1XHU4Y2Q5XHU4Y2RkXHU4Y2UxXHU4Y2U4XHU4Y2VjXHU4Y2VmXHU4Y2YwXHU4Y2YyXHU4Y2Y1XHU4Y2Y3XHU4Y2Y4''@;'; put 'put ''XHU4Y2ZlXHU4Y2ZmXHU4ZDAxXHU4ZDAzXHU4ZDA5XHU4ZDEyXHU4ZDE3XHU4ZDFiXHU4ZDY1XHU4ZDY5XHU4ZDZjXHU4ZDZlXHU4ZDdmXHU4ZDgyXHU4ZDg0XHU4ZDg4XHU4ZDhkXHU4ZDkwXHU4ZDkxXHU4ZDk1XHU4ZDllXHU4ZDlmXHU4ZGEwXHU4ZGE2XHU4ZGFiXHU4ZGFjXHU4ZGFmXHU4''@;'; put 'put ''ZGIyXHU4ZGI1XHU4ZGI3XHU4ZGI5XHU4ZGJiXHU4ZGMwXHU4ZGM1XHU4ZGM2XHU4ZGM3XHU4ZGM4XHU4ZGNhXHU4ZGNlXHU4ZGQxXHU4ZGQ0XHU4ZGQ1XHU4ZGQ3XHU4ZGQ5XHU4ZGU0XHU4ZGU1XHU4ZGU3XHU4ZGVjXHU4ZGYwXHU4ZGJjXHU4ZGYxXHU4ZGYyXHU4ZGY0XHU4ZGZkXHU4ZTAx''@;'; put 'put ''XHU4ZTA0XHU4ZTA1XHU4ZTA2XHU4ZTBiXHU4ZTExXHU4ZTE0XHU4ZTE2XHU4ZTIwXHU4ZTIxXHU4ZTIyIl0sWyI4ZmUwYTEiLCJcdThlMjNcdThlMjZcdThlMjdcdThlMzFcdThlMzNcdThlMzZcdThlMzdcdThlMzhcdThlMzlcdThlM2RcdThlNDBcdThlNDFcdThlNGJcdThlNGRcdThlNGVc''@;'; put 'put ''dThlNGZcdThlNTRcdThlNWJcdThlNWNcdThlNWRcdThlNWVcdThlNjFcdThlNjJcdThlNjlcdThlNmNcdThlNmRcdThlNmZcdThlNzBcdThlNzFcdThlNzlcdThlN2FcdThlN2JcdThlODJcdThlODNcdThlODlcdThlOTBcdThlOTJcdThlOTVcdThlOWFcdThlOWJcdThlOWRcdThlOWVcdThl''@;'; put 'put ''YTJcdThlYTdcdThlYTlcdThlYWRcdThlYWVcdThlYjNcdThlYjVcdThlYmFcdThlYmJcdThlYzBcdThlYzFcdThlYzNcdThlYzRcdThlYzdcdThlY2ZcdThlZDFcdThlZDRcdThlZGNcdThlZThcdThlZWVcdThlZjBcdThlZjFcdThlZjdcdThlZjlcdThlZmFcdThlZWRcdThmMDBcdThmMDJc''@;'; put 'put ''dThmMDdcdThmMDhcdThmMGZcdThmMTBcdThmMTZcdThmMTdcdThmMThcdThmMWVcdThmMjBcdThmMjFcdThmMjNcdThmMjVcdThmMjdcdThmMjhcdThmMmNcdThmMmRcdThmMmVcdThmMzRcdThmMzVcdThmMzZcdThmMzdcdThmM2FcdThmNDBcdThmNDEiXSxbIjhmZTFhMSIsIlx1OGY0M1x1''@;'; put 'put ''OGY0N1x1OGY0Zlx1OGY1MSIsNCwiXHU4ZjU4XHU4ZjVkXHU4ZjVlXHU4ZjY1XHU4ZjlkXHU4ZmEwXHU4ZmExXHU4ZmE0XHU4ZmE1XHU4ZmE2XHU4ZmI1XHU4ZmI2XHU4ZmI4XHU4ZmJlXHU4ZmMwXHU4ZmMxXHU4ZmM2XHU4ZmNhXHU4ZmNiXHU4ZmNkXHU4ZmQwXHU4ZmQyXHU4ZmQzXHU4ZmQ1''@;'; put 'put ''XHU4ZmUwXHU4ZmUzXHU4ZmU0XHU4ZmU4XHU4ZmVlXHU4ZmYxXHU4ZmY1XHU4ZmY2XHU4ZmZiXHU4ZmZlXHU5MDAyXHU5MDA0XHU5MDA4XHU5MDBjXHU5MDE4XHU5MDFiXHU5MDI4XHU5MDI5XHU5MDJmXHU5MDJhXHU5MDJjXHU5MDJkXHU5MDMzXHU5MDM0XHU5MDM3XHU5MDNmXHU5MDQzXHU5''@;'; put 'put ''MDQ0XHU5MDRjXHU5MDViXHU5MDVkXHU5MDYyXHU5MDY2XHU5MDY3XHU5MDZjXHU5MDcwXHU5MDc0XHU5MDc5XHU5MDg1XHU5MDg4XHU5MDhiXHU5MDhjXHU5MDhlXHU5MDkwXHU5MDk1XHU5MDk3XHU5MDk4XHU5MDk5XHU5MDliXHU5MGEwXHU5MGExXHU5MGEyXHU5MGE1XHU5MGIwXHU5MGIy''@;'; put 'put ''XHU5MGIzXHU5MGI0XHU5MGI2XHU5MGJkXHU5MGNjXHU5MGJlXHU5MGMzIl0sWyI4ZmUyYTEiLCJcdTkwYzRcdTkwYzVcdTkwYzdcdTkwYzhcdTkwZDVcdTkwZDdcdTkwZDhcdTkwZDlcdTkwZGNcdTkwZGRcdTkwZGZcdTkwZTVcdTkwZDJcdTkwZjZcdTkwZWJcdTkwZWZcdTkwZjBcdTkwZjRc''@;'; put 'put ''dTkwZmVcdTkwZmZcdTkxMDBcdTkxMDRcdTkxMDVcdTkxMDZcdTkxMDhcdTkxMGRcdTkxMTBcdTkxMTRcdTkxMTZcdTkxMTdcdTkxMThcdTkxMWFcdTkxMWNcdTkxMWVcdTkxMjBcdTkxMjVcdTkxMjJcdTkxMjNcdTkxMjdcdTkxMjlcdTkxMmVcdTkxMmZcdTkxMzFcdTkxMzRcdTkxMzZcdTkx''@;'; put 'put ''MzdcdTkxMzlcdTkxM2FcdTkxM2NcdTkxM2RcdTkxNDNcdTkxNDdcdTkxNDhcdTkxNGZcdTkxNTNcdTkxNTdcdTkxNTlcdTkxNWFcdTkxNWJcdTkxNjFcdTkxNjRcdTkxNjdcdTkxNmRcdTkxNzRcdTkxNzlcdTkxN2FcdTkxN2JcdTkxODFcdTkxODNcdTkxODVcdTkxODZcdTkxOGFcdTkxOGVc''@;'; put 'put ''dTkxOTFcdTkxOTNcdTkxOTRcdTkxOTVcdTkxOThcdTkxOWVcdTkxYTFcdTkxYTZcdTkxYThcdTkxYWNcdTkxYWRcdTkxYWVcdTkxYjBcdTkxYjFcdTkxYjJcdTkxYjNcdTkxYjZcdTkxYmJcdTkxYmNcdTkxYmRcdTkxYmYiXSxbIjhmZTNhMSIsIlx1OTFjMlx1OTFjM1x1OTFjNVx1OTFkM1x1''@;'; put 'put ''OTFkNFx1OTFkN1x1OTFkOVx1OTFkYVx1OTFkZVx1OTFlNFx1OTFlNVx1OTFlOVx1OTFlYVx1OTFlYyIsNSwiXHU5MWY3XHU5MWY5XHU5MWZiXHU5MWZkXHU5MjAwXHU5MjAxXHU5MjA0XHU5MjA1XHU5MjA2XHU5MjA3XHU5MjA5XHU5MjBhXHU5MjBjXHU5MjEwXHU5MjEyXHU5MjEzXHU5MjE2''@;'; put 'put ''XHU5MjE4XHU5MjFjXHU5MjFkXHU5MjIzXHU5MjI0XHU5MjI1XHU5MjI2XHU5MjI4XHU5MjJlXHU5MjJmXHU5MjMwXHU5MjMzXHU5MjM1XHU5MjM2XHU5MjM4XHU5MjM5XHU5MjNhXHU5MjNjXHU5MjNlXHU5MjQwXHU5MjQyXHU5MjQzXHU5MjQ2XHU5MjQ3XHU5MjRhXHU5MjRkXHU5MjRlXHU5''@;'; put 'put ''MjRmXHU5MjUxXHU5MjU4XHU5MjU5XHU5MjVjXHU5MjVkXHU5MjYwXHU5MjYxXHU5MjY1XHU5MjY3XHU5MjY4XHU5MjY5XHU5MjZlXHU5MjZmXHU5MjcwXHU5Mjc1Iiw0LCJcdTkyN2JcdTkyN2NcdTkyN2RcdTkyN2ZcdTkyODhcdTkyODlcdTkyOGFcdTkyOGRcdTkyOGVcdTkyOTJcdTkyOTci''@;'; put 'put ''XSxbIjhmZTRhMSIsIlx1OTI5OVx1OTI5Zlx1OTJhMFx1OTJhNFx1OTJhNVx1OTJhN1x1OTJhOFx1OTJhYlx1OTJhZlx1OTJiMlx1OTJiNlx1OTJiOFx1OTJiYVx1OTJiYlx1OTJiY1x1OTJiZFx1OTJiZiIsNCwiXHU5MmM1XHU5MmM2XHU5MmM3XHU5MmM4XHU5MmNiXHU5MmNjXHU5MmNkXHU5''@;'; put 'put ''MmNlXHU5MmQwXHU5MmQzXHU5MmQ1XHU5MmQ3XHU5MmQ4XHU5MmQ5XHU5MmRjXHU5MmRkXHU5MmRmXHU5MmUwXHU5MmUxXHU5MmUzXHU5MmU1XHU5MmU3XHU5MmU4XHU5MmVjXHU5MmVlXHU5MmYwXHU5MmY5XHU5MmZiXHU5MmZmXHU5MzAwXHU5MzAyXHU5MzA4XHU5MzBkXHU5MzExXHU5MzE0''@;'; put 'put ''XHU5MzE1XHU5MzFjXHU5MzFkXHU5MzFlXHU5MzFmXHU5MzIxXHU5MzI0XHU5MzI1XHU5MzI3XHU5MzI5XHU5MzJhXHU5MzMzXHU5MzM0XHU5MzM2XHU5MzM3XHU5MzQ3XHU5MzQ4XHU5MzQ5XHU5MzUwXHU5MzUxXHU5MzUyXHU5MzU1XHU5MzU3XHU5MzU4XHU5MzVhXHU5MzVlXHU5MzY0XHU5''@;'; put 'put ''MzY1XHU5MzY3XHU5MzY5XHU5MzZhXHU5MzZkXHU5MzZmXHU5MzcwXHU5MzcxXHU5MzczXHU5Mzc0XHU5Mzc2Il0sWyI4ZmU1YTEiLCJcdTkzN2FcdTkzN2RcdTkzN2ZcdTkzODBcdTkzODFcdTkzODJcdTkzODhcdTkzOGFcdTkzOGJcdTkzOGRcdTkzOGZcdTkzOTJcdTkzOTVcdTkzOThcdTkz''@;'; put 'put ''OWJcdTkzOWVcdTkzYTFcdTkzYTNcdTkzYTRcdTkzYTZcdTkzYThcdTkzYWJcdTkzYjRcdTkzYjVcdTkzYjZcdTkzYmFcdTkzYTlcdTkzYzFcdTkzYzRcdTkzYzVcdTkzYzZcdTkzYzdcdTkzYzkiLDQsIlx1OTNkM1x1OTNkOVx1OTNkY1x1OTNkZVx1OTNkZlx1OTNlMlx1OTNlNlx1OTNlN1x1''@;'; put 'put ''OTNmOVx1OTNmN1x1OTNmOFx1OTNmYVx1OTNmYlx1OTNmZFx1OTQwMVx1OTQwMlx1OTQwNFx1OTQwOFx1OTQwOVx1OTQwZFx1OTQwZVx1OTQwZlx1OTQxNVx1OTQxNlx1OTQxN1x1OTQxZlx1OTQyZVx1OTQyZlx1OTQzMVx1OTQzMlx1OTQzM1x1OTQzNFx1OTQzYlx1OTQzZlx1OTQzZFx1OTQ0''@;'; put 'put ''M1x1OTQ0NVx1OTQ0OFx1OTQ0YVx1OTQ0Y1x1OTQ1NVx1OTQ1OVx1OTQ1Y1x1OTQ1Zlx1OTQ2MVx1OTQ2M1x1OTQ2OFx1OTQ2Ylx1OTQ2ZFx1OTQ2ZVx1OTQ2Zlx1OTQ3MVx1OTQ3Mlx1OTQ4NFx1OTQ4M1x1OTU3OFx1OTU3OSJdLFsiOGZlNmExIiwiXHU5NTdlXHU5NTg0XHU5NTg4XHU5NThj''@;'; put 'put ''XHU5NThkXHU5NThlXHU5NTlkXHU5NTllXHU5NTlmXHU5NWExXHU5NWE2XHU5NWE5XHU5NWFiXHU5NWFjXHU5NWI0XHU5NWI2XHU5NWJhXHU5NWJkXHU5NWJmXHU5NWM2XHU5NWM4XHU5NWM5XHU5NWNiXHU5NWQwXHU5NWQxXHU5NWQyXHU5NWQzXHU5NWQ5XHU5NWRhXHU5NWRkXHU5NWRlXHU5''@;'; put 'put ''NWRmXHU5NWUwXHU5NWU0XHU5NWU2XHU5NjFkXHU5NjFlXHU5NjIyXHU5NjI0XHU5NjI1XHU5NjI2XHU5NjJjXHU5NjMxXHU5NjMzXHU5NjM3XHU5NjM4XHU5NjM5XHU5NjNhXHU5NjNjXHU5NjNkXHU5NjQxXHU5NjUyXHU5NjU0XHU5NjU2XHU5NjU3XHU5NjU4XHU5NjYxXHU5NjZlXHU5Njc0''@;'; put 'put ''XHU5NjdiXHU5NjdjXHU5NjdlXHU5NjdmXHU5NjgxXHU5NjgyXHU5NjgzXHU5Njg0XHU5Njg5XHU5NjkxXHU5Njk2XHU5NjlhXHU5NjlkXHU5NjlmXHU5NmE0XHU5NmE1XHU5NmE2XHU5NmE5XHU5NmFlXHU5NmFmXHU5NmIzXHU5NmJhXHU5NmNhXHU5NmQyXHU1ZGIyXHU5NmQ4XHU5NmRhXHU5''@;'; put 'put ''NmRkXHU5NmRlXHU5NmRmXHU5NmU5XHU5NmVmXHU5NmYxXHU5NmZhXHU5NzAyIl0sWyI4ZmU3YTEiLCJcdTk3MDNcdTk3MDVcdTk3MDlcdTk3MWFcdTk3MWJcdTk3MWRcdTk3MjFcdTk3MjJcdTk3MjNcdTk3MjhcdTk3MzFcdTk3MzNcdTk3NDFcdTk3NDNcdTk3NGFcdTk3NGVcdTk3NGZcdTk3''@;'; put 'put ''NTVcdTk3NTdcdTk3NThcdTk3NWFcdTk3NWJcdTk3NjNcdTk3NjdcdTk3NmFcdTk3NmVcdTk3NzNcdTk3NzZcdTk3NzdcdTk3NzhcdTk3N2JcdTk3N2RcdTk3N2ZcdTk3ODBcdTk3ODlcdTk3OTVcdTk3OTZcdTk3OTdcdTk3OTlcdTk3OWFcdTk3OWVcdTk3OWZcdTk3YTJcdTk3YWNcdTk3YWVc''@;'; put 'put ''dTk3YjFcdTk3YjJcdTk3YjVcdTk3YjZcdTk3YjhcdTk3YjlcdTk3YmFcdTk3YmNcdTk3YmVcdTk3YmZcdTk3YzFcdTk3YzRcdTk3YzVcdTk3YzdcdTk3YzlcdTk3Y2FcdTk3Y2NcdTk3Y2RcdTk3Y2VcdTk3ZDBcdTk3ZDFcdTk3ZDRcdTk3ZDdcdTk3ZDhcdTk3ZDlcdTk3ZGRcdTk3ZGVcdTk3''@;'; put 'put ''ZTBcdTk3ZGJcdTk3ZTFcdTk3ZTRcdTk3ZWZcdTk3ZjFcdTk3ZjRcdTk3ZjdcdTk3ZjhcdTk3ZmFcdTk4MDdcdTk4MGFcdTk4MTlcdTk4MGRcdTk4MGVcdTk4MTRcdTk4MTZcdTk4MWNcdTk4MWVcdTk4MjBcdTk4MjNcdTk4MjYiXSxbIjhmZThhMSIsIlx1OTgyYlx1OTgyZVx1OTgyZlx1OTgz''@;'; put 'put ''MFx1OTgzMlx1OTgzM1x1OTgzNVx1OTgyNVx1OTgzZVx1OTg0NFx1OTg0N1x1OTg0YVx1OTg1MVx1OTg1Mlx1OTg1M1x1OTg1Nlx1OTg1N1x1OTg1OVx1OTg1YVx1OTg2Mlx1OTg2M1x1OTg2NVx1OTg2Nlx1OTg2YVx1OTg2Y1x1OThhYlx1OThhZFx1OThhZVx1OThiMFx1OThiNFx1OThiN1x1''@;'; put 'put ''OThiOFx1OThiYVx1OThiYlx1OThiZlx1OThjMlx1OThjNVx1OThjOFx1OThjY1x1OThlMVx1OThlM1x1OThlNVx1OThlNlx1OThlN1x1OThlYVx1OThmM1x1OThmNlx1OTkwMlx1OTkwN1x1OTkwOFx1OTkxMVx1OTkxNVx1OTkxNlx1OTkxN1x1OTkxYVx1OTkxYlx1OTkxY1x1OTkxZlx1OTky''@;'; put 'put ''Mlx1OTkyNlx1OTkyN1x1OTkyYlx1OTkzMSIsNCwiXHU5OTM5XHU5OTNhXHU5OTNiXHU5OTNjXHU5OTQwXHU5OTQxXHU5OTQ2XHU5OTQ3XHU5OTQ4XHU5OTRkXHU5OTRlXHU5OTU0XHU5OTU4XHU5OTU5XHU5OTViXHU5OTVjXHU5OTVlXHU5OTVmXHU5OTYwXHU5OTliXHU5OTlkXHU5OTlmXHU5''@;'; put 'put ''OWE2XHU5OWIwXHU5OWIxXHU5OWIyXHU5OWI1Il0sWyI4ZmU5YTEiLCJcdTk5YjlcdTk5YmFcdTk5YmRcdTk5YmZcdTk5YzNcdTk5YzlcdTk5ZDNcdTk5ZDRcdTk5ZDlcdTk5ZGFcdTk5ZGNcdTk5ZGVcdTk5ZTdcdTk5ZWFcdTk5ZWJcdTk5ZWNcdTk5ZjBcdTk5ZjRcdTk5ZjVcdTk5ZjlcdTk5''@;'; put 'put ''ZmRcdTk5ZmVcdTlhMDJcdTlhMDNcdTlhMDRcdTlhMGJcdTlhMGNcdTlhMTBcdTlhMTFcdTlhMTZcdTlhMWVcdTlhMjBcdTlhMjJcdTlhMjNcdTlhMjRcdTlhMjdcdTlhMmRcdTlhMmVcdTlhMzNcdTlhMzVcdTlhMzZcdTlhMzhcdTlhNDdcdTlhNDFcdTlhNDRcdTlhNGFcdTlhNGJcdTlhNGNc''@;'; put 'put ''dTlhNGVcdTlhNTFcdTlhNTRcdTlhNTZcdTlhNWRcdTlhYWFcdTlhYWNcdTlhYWVcdTlhYWZcdTlhYjJcdTlhYjRcdTlhYjVcdTlhYjZcdTlhYjlcdTlhYmJcdTlhYmVcdTlhYmZcdTlhYzFcdTlhYzNcdTlhYzZcdTlhYzhcdTlhY2VcdTlhZDBcdTlhZDJcdTlhZDVcdTlhZDZcdTlhZDdcdTlh''@;'; put 'put ''ZGJcdTlhZGNcdTlhZTBcdTlhZTRcdTlhZTVcdTlhZTdcdTlhZTlcdTlhZWNcdTlhZjJcdTlhZjNcdTlhZjVcdTlhZjlcdTlhZmFcdTlhZmRcdTlhZmYiLDRdLFsiOGZlYWExIiwiXHU5YjA0XHU5YjA1XHU5YjA4XHU5YjA5XHU5YjBiXHU5YjBjXHU5YjBkXHU5YjBlXHU5YjEwXHU5YjEyXHU5''@;'; put 'put ''YjE2XHU5YjE5XHU5YjFiXHU5YjFjXHU5YjIwXHU5YjI2XHU5YjJiXHU5YjJkXHU5YjMzXHU5YjM0XHU5YjM1XHU5YjM3XHU5YjM5XHU5YjNhXHU5YjNkXHU5YjQ4XHU5YjRiXHU5YjRjXHU5YjU1XHU5YjU2XHU5YjU3XHU5YjViXHU5YjVlXHU5YjYxXHU5YjYzXHU5YjY1XHU5YjY2XHU5YjY4''@;'; put 'put ''XHU5YjZhIiw0LCJcdTliNzNcdTliNzVcdTliNzdcdTliNzhcdTliNzlcdTliN2ZcdTliODBcdTliODRcdTliODVcdTliODZcdTliODdcdTliODlcdTliOGFcdTliOGJcdTliOGRcdTliOGZcdTliOTBcdTliOTRcdTliOWFcdTliOWRcdTliOWVcdTliYTZcdTliYTdcdTliYTlcdTliYWNcdTli''@;'; put 'put ''YjBcdTliYjFcdTliYjJcdTliYjdcdTliYjhcdTliYmJcdTliYmNcdTliYmVcdTliYmZcdTliYzFcdTliYzdcdTliYzhcdTliY2VcdTliZDBcdTliZDdcdTliZDhcdTliZGRcdTliZGZcdTliZTVcdTliZTdcdTliZWFcdTliZWJcdTliZWZcdTliZjNcdTliZjdcdTliZjgiXSxbIjhmZWJhMSIs''@;'; put 'put ''Ilx1OWJmOVx1OWJmYVx1OWJmZFx1OWJmZlx1OWMwMFx1OWMwMlx1OWMwYlx1OWMwZlx1OWMxMVx1OWMxNlx1OWMxOFx1OWMxOVx1OWMxYVx1OWMxY1x1OWMxZVx1OWMyMlx1OWMyM1x1OWMyNiIsNCwiXHU5YzMxXHU5YzM1XHU5YzM2XHU5YzM3XHU5YzNkXHU5YzQxXHU5YzQzXHU5YzQ0XHU5''@;'; put 'put ''YzQ1XHU5YzQ5XHU5YzRhXHU5YzRlXHU5YzRmXHU5YzUwXHU5YzUzXHU5YzU0XHU5YzU2XHU5YzU4XHU5YzViXHU5YzVkXHU5YzVlXHU5YzVmXHU5YzYzXHU5YzY5XHU5YzZhXHU5YzVjXHU5YzZiXHU5YzY4XHU5YzZlXHU5YzcwXHU5YzcyXHU5Yzc1XHU5Yzc3XHU5YzdiXHU5Y2U2XHU5Y2Yy''@;'; put 'put ''XHU5Y2Y3XHU5Y2Y5XHU5ZDBiXHU5ZDAyXHU5ZDExXHU5ZDE3XHU5ZDE4XHU5ZDFjXHU5ZDFkXHU5ZDFlXHU5ZDJmXHU5ZDMwXHU5ZDMyXHU5ZDMzXHU5ZDM0XHU5ZDNhXHU5ZDNjXHU5ZDQ1XHU5ZDNkXHU5ZDQyXHU5ZDQzXHU5ZDQ3XHU5ZDRhXHU5ZDUzXHU5ZDU0XHU5ZDVmXHU5ZDYzXHU5''@;'; put 'put ''ZDYyXHU5ZDY1XHU5ZDY5XHU5ZDZhXHU5ZDZiXHU5ZDcwXHU5ZDc2XHU5ZDc3XHU5ZDdiIl0sWyI4ZmVjYTEiLCJcdTlkN2NcdTlkN2VcdTlkODNcdTlkODRcdTlkODZcdTlkOGFcdTlkOGRcdTlkOGVcdTlkOTJcdTlkOTNcdTlkOTVcdTlkOTZcdTlkOTdcdTlkOThcdTlkYTFcdTlkYWFcdTlk''@;'; put 'put ''YWNcdTlkYWVcdTlkYjFcdTlkYjVcdTlkYjlcdTlkYmNcdTlkYmZcdTlkYzNcdTlkYzdcdTlkYzlcdTlkY2FcdTlkZDRcdTlkZDVcdTlkZDZcdTlkZDdcdTlkZGFcdTlkZGVcdTlkZGZcdTlkZTBcdTlkZTVcdTlkZTdcdTlkZTlcdTlkZWJcdTlkZWVcdTlkZjBcdTlkZjNcdTlkZjRcdTlkZmVc''@;'; put 'put ''dTllMGFcdTllMDJcdTllMDdcdTllMGVcdTllMTBcdTllMTFcdTllMTJcdTllMTVcdTllMTZcdTllMTlcdTllMWNcdTllMWRcdTllN2FcdTllN2JcdTllN2NcdTllODBcdTllODJcdTllODNcdTllODRcdTllODVcdTllODdcdTllOGVcdTllOGZcdTllOTZcdTllOThcdTllOWJcdTllOWVcdTll''@;'; put 'put ''YTRcdTllYThcdTllYWNcdTllYWVcdTllYWZcdTllYjBcdTllYjNcdTllYjRcdTllYjVcdTllYzZcdTllYzhcdTllY2JcdTllZDVcdTllZGZcdTllZTRcdTllZTdcdTllZWNcdTllZWRcdTllZWVcdTllZjBcdTllZjFcdTllZjJcdTllZjUiXSxbIjhmZWRhMSIsIlx1OWVmOFx1OWVmZlx1OWYw''@;'; put 'put ''Mlx1OWYwM1x1OWYwOVx1OWYwZlx1OWYxMFx1OWYxMVx1OWYxMlx1OWYxNFx1OWYxNlx1OWYxN1x1OWYxOVx1OWYxYVx1OWYxYlx1OWYxZlx1OWYyMlx1OWYyNlx1OWYyYVx1OWYyYlx1OWYyZlx1OWYzMVx1OWYzMlx1OWYzNFx1OWYzN1x1OWYzOVx1OWYzYVx1OWYzY1x1OWYzZFx1OWYzZlx1''@;'; put 'put ''OWY0MVx1OWY0MyIsNCwiXHU5ZjUzXHU5ZjU1XHU5ZjU2XHU5ZjU3XHU5ZjU4XHU5ZjVhXHU5ZjVkXHU5ZjVlXHU5ZjY4XHU5ZjY5XHU5ZjZkIiw0LCJcdTlmNzNcdTlmNzVcdTlmN2FcdTlmN2RcdTlmOGZcdTlmOTBcdTlmOTFcdTlmOTJcdTlmOTRcdTlmOTZcdTlmOTdcdTlmOWVcdTlmYTFc''@;'; put 'put ''dTlmYTJcdTlmYTNcdTlmYTUiXV0nKX0sMzYyNTg6WGU9PnsidXNlIHN0cmljdCI7WGUuZXhwb3J0cz1KU09OLnBhcnNlKCd7InVDaGFycyI6WzEyOCwxNjUsMTY5LDE3OCwxODQsMjE2LDIyNiwyMzUsMjM4LDI0NCwyNDgsMjUxLDI1MywyNTgsMjc2LDI4NCwzMDAsMzI1LDMyOSwzMzQsMzY0''@;'; put 'put ''LDQ2Myw0NjUsNDY3LDQ2OSw0NzEsNDczLDQ3NSw0NzcsNTA2LDU5NCw2MTAsNzEyLDcxNiw3MzAsOTMwLDkzOCw5NjIsOTcwLDEwMjYsMTEwNCwxMTA2LDgyMDksODIxNSw4MjE4LDgyMjIsODIzMSw4MjQxLDgyNDQsODI0Niw4MjUyLDgzNjUsODQ1Miw4NDU0LDg0NTgsODQ3MSw4NDgyLDg1''@;'; put 'put ''NTYsODU3MCw4NTk2LDg2MDIsODcxMyw4NzIwLDg3MjIsODcyNiw4NzMxLDg3MzcsODc0MCw4NzQyLDg3NDgsODc1MSw4NzYwLDg3NjYsODc3Nyw4NzgxLDg3ODcsODgwMiw4ODA4LDg4MTYsODg1NCw4ODU4LDg4NzAsODg5Niw4OTc5LDkzMjIsOTM3Miw5NTQ4LDk1ODgsOTYxNiw5NjIyLDk2''@;'; put 'put ''MzQsOTY1Miw5NjYyLDk2NzIsOTY3Niw5NjgwLDk3MDIsOTczNSw5NzM4LDk3OTMsOTc5NSwxMTkwNiwxMTkwOSwxMTkxMywxMTkxNywxMTkyOCwxMTk0NCwxMTk0NywxMTk1MSwxMTk1NiwxMTk2MCwxMTk2NCwxMTk3OSwxMjI4NCwxMjI5MiwxMjMxMiwxMjMxOSwxMjMzMCwxMjM1MSwxMjQz''@;'; put 'put ''NiwxMjQ0NywxMjUzNSwxMjU0MywxMjU4NiwxMjg0MiwxMjg1MCwxMjk2NCwxMzIwMCwxMzIxNSwxMzIxOCwxMzI1MywxMzI2MywxMzI2NywxMzI3MCwxMzM4NCwxMzQyOCwxMzcyNywxMzgzOSwxMzg1MSwxNDYxNywxNDcwMywxNDgwMSwxNDgxNiwxNDk2NCwxNTE4MywxNTQ3MSwxNTU4NSwx''@;'; put 'put ''NjQ3MSwxNjczNiwxNzIwOCwxNzMyNSwxNzMzMCwxNzM3NCwxNzYyMywxNzk5NywxODAxOCwxODIxMiwxODIxOCwxODMwMSwxODMxOCwxODc2MCwxODgxMSwxODgxNCwxODgyMCwxODgyMywxODg0NCwxODg0OCwxODg3MiwxOTU3NiwxOTYyMCwxOTczOCwxOTg4Nyw0MDg3MCw1OTI0NCw1OTMz''@;'; put 'put ''Niw1OTM2Nyw1OTQxMyw1OTQxNyw1OTQyMyw1OTQzMSw1OTQzNyw1OTQ0Myw1OTQ1Miw1OTQ2MCw1OTQ3OCw1OTQ5Myw2Mzc4OSw2Mzg2Niw2Mzg5NCw2Mzk3Niw2Mzk4Niw2NDAxNiw2NDAxOCw2NDAyMSw2NDAyNSw2NDAzNCw2NDAzNyw2NDA0Miw2NTA3NCw2NTA5Myw2NTEwNyw2NTExMiw2''@;'; put 'put ''NTEyNyw2NTEzMiw2NTM3NSw2NTUxMCw2NTUzNl0sImdiQ2hhcnMiOlswLDM2LDM4LDQ1LDUwLDgxLDg5LDk1LDk2LDEwMCwxMDMsMTA0LDEwNSwxMDksMTI2LDEzMywxNDgsMTcyLDE3NSwxNzksMjA4LDMwNiwzMDcsMzA4LDMwOSwzMTAsMzExLDMxMiwzMTMsMzQxLDQyOCw0NDMsNTQ0LDU0''@;'; put 'put ''NSw1NTgsNzQxLDc0Miw3NDksNzUwLDgwNSw4MTksODIwLDc5MjIsNzkyNCw3OTI1LDc5MjcsNzkzNCw3OTQzLDc5NDQsNzk0NSw3OTUwLDgwNjIsODE0OCw4MTQ5LDgxNTIsODE2NCw4MTc0LDgyMzYsODI0MCw4MjYyLDgyNjQsODM3NCw4MzgwLDgzODEsODM4NCw4Mzg4LDgzOTAsODM5Miw4''@;'; put 'put ''MzkzLDgzOTQsODM5Niw4NDAxLDg0MDYsODQxNiw4NDE5LDg0MjQsODQzNyw4NDM5LDg0NDUsODQ4Miw4NDg1LDg0OTYsODUyMSw4NjAzLDg5MzYsODk0Niw5MDQ2LDkwNTAsOTA2Myw5MDY2LDkwNzYsOTA5Miw5MTAwLDkxMDgsOTExMSw5MTEzLDkxMzEsOTE2Miw5MTY0LDkyMTgsOTIxOSwx''@;'; put 'put ''MTMyOSwxMTMzMSwxMTMzNCwxMTMzNiwxMTM0NiwxMTM2MSwxMTM2MywxMTM2NiwxMTM3MCwxMTM3MiwxMTM3NSwxMTM4OSwxMTY4MiwxMTY4NiwxMTY4NywxMTY5MiwxMTY5NCwxMTcxNCwxMTcxNiwxMTcyMywxMTcyNSwxMTczMCwxMTczNiwxMTk4MiwxMTk4OSwxMjEwMiwxMjMzNiwxMjM0''@;'; put 'put ''OCwxMjM1MCwxMjM4NCwxMjM5MywxMjM5NSwxMjM5NywxMjUxMCwxMjU1MywxMjg1MSwxMjk2MiwxMjk3MywxMzczOCwxMzgyMywxMzkxOSwxMzkzMywxNDA4MCwxNDI5OCwxNDU4NSwxNDY5OCwxNTU4MywxNTg0NywxNjMxOCwxNjQzNCwxNjQzOCwxNjQ4MSwxNjcyOSwxNzEwMiwxNzEyMiwx''@;'; put 'put ''NzMxNSwxNzMyMCwxNzQwMiwxNzQxOCwxNzg1OSwxNzkwOSwxNzkxMSwxNzkxNSwxNzkxNiwxNzkzNiwxNzkzOSwxNzk2MSwxODY2NCwxODcwMywxODgxNCwxODk2MiwxOTA0MywzMzQ2OSwzMzQ3MCwzMzQ3MSwzMzQ4NCwzMzQ4NSwzMzQ5MCwzMzQ5NywzMzUwMSwzMzUwNSwzMzUxMywzMzUy''@;'; put 'put ''MCwzMzUzNiwzMzU1MCwzNzg0NSwzNzkyMSwzNzk0OCwzODAyOSwzODAzOCwzODA2NCwzODA2NSwzODA2NiwzODA2OSwzODA3NSwzODA3NiwzODA3OCwzOTEwOCwzOTEwOSwzOTExMywzOTExNCwzOTExNSwzOTExNiwzOTI2NSwzOTM5NCwxODkwMDBdfScpfSw0NDM0NjpYZT0+eyJ1c2Ugc3Ry''@;'; put 'put ''aWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ1tbImExNDAiLCJcdWU0YzYiLDYyXSxbImExODAiLCJcdWU1MDUiLDMyXSxbImEyNDAiLCJcdWU1MjYiLDYyXSxbImEyODAiLCJcdWU1NjUiLDMyXSxbImEyYWIiLCJcdWU3NjYiLDVdLFsiYTJlMyIsIlx1MjBhY1x1ZTc2ZCJdLFsiYTJlZiIs''@;'; put 'put ''Ilx1ZTc2ZVx1ZTc2ZiJdLFsiYTJmZCIsIlx1ZTc3MFx1ZTc3MSJdLFsiYTM0MCIsIlx1ZTU4NiIsNjJdLFsiYTM4MCIsIlx1ZTVjNSIsMzEsIlx1MzAwMCJdLFsiYTQ0MCIsIlx1ZTVlNiIsNjJdLFsiYTQ4MCIsIlx1ZTYyNSIsMzJdLFsiYTRmNCIsIlx1ZTc3MiIsMTBdLFsiYTU0MCIsIlx1''@;'; put 'put ''ZTY0NiIsNjJdLFsiYTU4MCIsIlx1ZTY4NSIsMzJdLFsiYTVmNyIsIlx1ZTc3ZCIsN10sWyJhNjQwIiwiXHVlNmE2Iiw2Ml0sWyJhNjgwIiwiXHVlNmU1IiwzMl0sWyJhNmI5IiwiXHVlNzg1Iiw3XSxbImE2ZDkiLCJcdWU3OGQiLDZdLFsiYTZlYyIsIlx1ZTc5NFx1ZTc5NSJdLFsiYTZmMyIs''@;'; put 'put ''Ilx1ZTc5NiJdLFsiYTZmNiIsIlx1ZTc5NyIsOF0sWyJhNzQwIiwiXHVlNzA2Iiw2Ml0sWyJhNzgwIiwiXHVlNzQ1IiwzMl0sWyJhN2MyIiwiXHVlN2EwIiwxNF0sWyJhN2YyIiwiXHVlN2FmIiwxMl0sWyJhODk2IiwiXHVlN2JjIiwxMF0sWyJhOGJjIiwiXHVlN2M3Il0sWyJhOGJmIiwiXHUw''@;'; put 'put ''MWY5Il0sWyJhOGMxIiwiXHVlN2M5XHVlN2NhXHVlN2NiXHVlN2NjIl0sWyJhOGVhIiwiXHVlN2NkIiwyMF0sWyJhOTU4IiwiXHVlN2UyIl0sWyJhOTViIiwiXHVlN2UzIl0sWyJhOTVkIiwiXHVlN2U0XHVlN2U1XHVlN2U2Il0sWyJhOTg5IiwiXHUzMDNlXHUyZmYwIiwxMV0sWyJhOTk3Iiwi''@;'; put 'put ''XHVlN2Y0IiwxMl0sWyJhOWYwIiwiXHVlODAxIiwxNF0sWyJhYWExIiwiXHVlMDAwIiw5M10sWyJhYmExIiwiXHVlMDVlIiw5M10sWyJhY2ExIiwiXHVlMGJjIiw5M10sWyJhZGExIiwiXHVlMTFhIiw5M10sWyJhZWExIiwiXHVlMTc4Iiw5M10sWyJhZmExIiwiXHVlMWQ2Iiw5M10sWyJkN2Zh''@;'; put 'put ''IiwiXHVlODEwIiw0XSxbImY4YTEiLCJcdWUyMzQiLDkzXSxbImY5YTEiLCJcdWUyOTIiLDkzXSxbImZhYTEiLCJcdWUyZjAiLDkzXSxbImZiYTEiLCJcdWUzNGUiLDkzXSxbImZjYTEiLCJcdWUzYWMiLDkzXSxbImZkYTEiLCJcdWU0MGEiLDkzXSxbImZlNTAiLCJcdTJlODFcdWU4MTZcdWU4''@;'; put 'put ''MTdcdWU4MThcdTJlODRcdTM0NzNcdTM0NDdcdTJlODhcdTJlOGJcdWU4MWVcdTM1OWVcdTM2MWFcdTM2MGVcdTJlOGNcdTJlOTdcdTM5NmVcdTM5MThcdWU4MjZcdTM5Y2ZcdTM5ZGZcdTNhNzNcdTM5ZDBcdWU4MmJcdWU4MmNcdTNiNGVcdTNjNmVcdTNjZTBcdTJlYTdcdWU4MzFcdWU4MzJc''@;'; put 'put ''dTJlYWFcdTQwNTZcdTQxNWZcdTJlYWVcdTQzMzdcdTJlYjNcdTJlYjZcdTJlYjdcdWU4M2JcdTQzYjFcdTQzYWNcdTJlYmJcdTQzZGRcdTQ0ZDZcdTQ2NjFcdTQ2NGNcdWU4NDMiXSxbImZlODAiLCJcdTQ3MjNcdTQ3MjlcdTQ3N2NcdTQ3OGRcdTJlY2FcdTQ5NDdcdTQ5N2FcdTQ5N2RcdTQ5''@;'; put 'put ''ODJcdTQ5ODNcdTQ5ODVcdTQ5ODZcdTQ5OWZcdTQ5OWJcdTQ5YjdcdTQ5YjZcdWU4NTRcdWU4NTVcdTRjYTNcdTRjOWZcdTRjYTBcdTRjYTFcdTRjNzdcdTRjYTJcdTRkMTMiLDYsIlx1NGRhZVx1ZTg2NFx1ZTQ2OCIsOTNdXScpfSwyNzAxNDpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRz''@;'; put 'put ''PUpTT04ucGFyc2UoJ1tbIjAiLCJcXHUwMDAwIiwxMjhdLFsiYTEiLCJcdWZmNjEiLDYyXSxbIjgxNDAiLCJcdTMwMDBcdTMwMDFcdTMwMDJcdWZmMGNcdWZmMGVcdTMwZmJcdWZmMWFcdWZmMWJcdWZmMWZcdWZmMDFcdTMwOWJcdTMwOWNceGI0XHVmZjQwXHhhOFx1ZmYzZVx1ZmZlM1x1ZmYz''@;'; put 'put ''Zlx1MzBmZFx1MzBmZVx1MzA5ZFx1MzA5ZVx1MzAwM1x1NGVkZFx1MzAwNVx1MzAwNlx1MzAwN1x1MzBmY1x1MjAxNVx1MjAxMFx1ZmYwZlx1ZmYzY1x1ZmY1ZVx1MjIyNVx1ZmY1Y1x1MjAyNlx1MjAyNVx1MjAxOFx1MjAxOVx1MjAxY1x1MjAxZFx1ZmYwOFx1ZmYwOVx1MzAxNFx1MzAxNVx1''@;'; put 'put ''ZmYzYlx1ZmYzZFx1ZmY1Ylx1ZmY1ZFx1MzAwOCIsOSwiXHVmZjBiXHVmZjBkXHhiMVx4ZDciXSxbIjgxODAiLCJceGY3XHVmZjFkXHUyMjYwXHVmZjFjXHVmZjFlXHUyMjY2XHUyMjY3XHUyMjFlXHUyMjM0XHUyNjQyXHUyNjQwXHhiMFx1MjAzMlx1MjAzM1x1MjEwM1x1ZmZlNVx1ZmYwNFx1''@;'; put 'put ''ZmZlMFx1ZmZlMVx1ZmYwNVx1ZmYwM1x1ZmYwNlx1ZmYwYVx1ZmYyMFx4YTdcdTI2MDZcdTI2MDVcdTI1Y2JcdTI1Y2ZcdTI1Y2VcdTI1YzdcdTI1YzZcdTI1YTFcdTI1YTBcdTI1YjNcdTI1YjJcdTI1YmRcdTI1YmNcdTIwM2JcdTMwMTJcdTIxOTJcdTIxOTBcdTIxOTFcdTIxOTNcdTMwMTMi''@;'; put 'put ''XSxbIjgxYjgiLCJcdTIyMDhcdTIyMGJcdTIyODZcdTIyODdcdTIyODJcdTIyODNcdTIyMmFcdTIyMjkiXSxbIjgxYzgiLCJcdTIyMjdcdTIyMjhcdWZmZTJcdTIxZDJcdTIxZDRcdTIyMDBcdTIyMDMiXSxbIjgxZGEiLCJcdTIyMjBcdTIyYTVcdTIzMTJcdTIyMDJcdTIyMDdcdTIyNjFcdTIy''@;'; put 'put ''NTJcdTIyNmFcdTIyNmJcdTIyMWFcdTIyM2RcdTIyMWRcdTIyMzVcdTIyMmJcdTIyMmMiXSxbIjgxZjAiLCJcdTIxMmJcdTIwMzBcdTI2NmZcdTI2NmRcdTI2NmFcdTIwMjBcdTIwMjFceGI2Il0sWyI4MWZjIiwiXHUyNWVmIl0sWyI4MjRmIiwiXHVmZjEwIiw5XSxbIjgyNjAiLCJcdWZmMjEi''@;'; put 'put ''LDI1XSxbIjgyODEiLCJcdWZmNDEiLDI1XSxbIjgyOWYiLCJcdTMwNDEiLDgyXSxbIjgzNDAiLCJcdTMwYTEiLDYyXSxbIjgzODAiLCJcdTMwZTAiLDIyXSxbIjgzOWYiLCJcdTAzOTEiLDE2LCJcdTAzYTMiLDZdLFsiODNiZiIsIlx1MDNiMSIsMTYsIlx1MDNjMyIsNl0sWyI4NDQwIiwiXHUw''@;'; put 'put ''NDEwIiw1LCJcdTA0MDFcdTA0MTYiLDI1XSxbIjg0NzAiLCJcdTA0MzAiLDUsIlx1MDQ1MVx1MDQzNiIsN10sWyI4NDgwIiwiXHUwNDNlIiwxN10sWyI4NDlmIiwiXHUyNTAwXHUyNTAyXHUyNTBjXHUyNTEwXHUyNTE4XHUyNTE0XHUyNTFjXHUyNTJjXHUyNTI0XHUyNTM0XHUyNTNjXHUyNTAx''@;'; put 'put ''XHUyNTAzXHUyNTBmXHUyNTEzXHUyNTFiXHUyNTE3XHUyNTIzXHUyNTMzXHUyNTJiXHUyNTNiXHUyNTRiXHUyNTIwXHUyNTJmXHUyNTI4XHUyNTM3XHUyNTNmXHUyNTFkXHUyNTMwXHUyNTI1XHUyNTM4XHUyNTQyIl0sWyI4NzQwIiwiXHUyNDYwIiwxOSwiXHUyMTYwIiw5XSxbIjg3NWYiLCJc''@;'; put 'put ''dTMzNDlcdTMzMTRcdTMzMjJcdTMzNGRcdTMzMThcdTMzMjdcdTMzMDNcdTMzMzZcdTMzNTFcdTMzNTdcdTMzMGRcdTMzMjZcdTMzMjNcdTMzMmJcdTMzNGFcdTMzM2JcdTMzOWNcdTMzOWRcdTMzOWVcdTMzOGVcdTMzOGZcdTMzYzRcdTMzYTEiXSxbIjg3N2UiLCJcdTMzN2IiXSxbIjg3ODAi''@;'; put 'put ''LCJcdTMwMWRcdTMwMWZcdTIxMTZcdTMzY2RcdTIxMjFcdTMyYTQiLDQsIlx1MzIzMVx1MzIzMlx1MzIzOVx1MzM3ZVx1MzM3ZFx1MzM3Y1x1MjI1Mlx1MjI2MVx1MjIyYlx1MjIyZVx1MjIxMVx1MjIxYVx1MjJhNVx1MjIyMFx1MjIxZlx1MjJiZlx1MjIzNVx1MjIyOVx1MjIyYSJdLFsiODg5''@;'; put 'put ''ZiIsIlx1NGU5Y1x1NTUxNlx1NWEwM1x1OTYzZlx1NTRjMFx1NjExYlx1NjMyOFx1NTlmNlx1OTAyMlx1ODQ3NVx1ODMxY1x1N2E1MFx1NjBhYVx1NjNlMVx1NmUyNVx1NjVlZFx1ODQ2Nlx1ODJhNlx1OWJmNVx1Njg5M1x1NTcyN1x1NjVhMVx1NjI3MVx1NWI5Ylx1NTlkMFx1ODY3Ylx1OThm''@;'; put 'put ''NFx1N2Q2Mlx1N2RiZVx1OWI4ZVx1NjIxNlx1N2M5Zlx1ODhiN1x1NWI4OVx1NWViNVx1NjMwOVx1NjY5N1x1Njg0OFx1OTVjN1x1OTc4ZFx1Njc0Zlx1NGVlNVx1NGYwYVx1NGY0ZFx1NGY5ZFx1NTA0OVx1NTZmMlx1NTkzN1x1NTlkNFx1NWEwMVx1NWMwOVx1NjBkZlx1NjEwZlx1NjE3MFx1''@;'; put 'put ''NjYxM1x1NjkwNVx1NzBiYVx1NzU0Zlx1NzU3MFx1NzlmYlx1N2RhZFx1N2RlZlx1ODBjM1x1ODQwZVx1ODg2M1x1OGIwMlx1OTA1NVx1OTA3YVx1NTMzYlx1NGU5NVx1NGVhNVx1NTdkZlx1ODBiMlx1OTBjMVx1NzhlZlx1NGUwMFx1NThmMVx1NmVhMlx1OTAzOFx1N2EzMlx1ODMyOFx1ODI4''@;'; put 'put ''Ylx1OWMyZlx1NTE0MVx1NTM3MFx1NTRiZFx1NTRlMVx1NTZlMFx1NTlmYlx1NWYxNVx1OThmMlx1NmRlYlx1ODBlNFx1ODUyZCJdLFsiODk0MCIsIlx1OTY2Mlx1OTY3MFx1OTZhMFx1OTdmYlx1NTQwYlx1NTNmM1x1NWI4N1x1NzBjZlx1N2ZiZFx1OGZjMlx1OTZlOFx1NTM2Zlx1OWQ1Y1x1''@;'; put 'put ''N2FiYVx1NGUxMVx1Nzg5M1x1ODFmY1x1NmUyNlx1NTYxOFx1NTUwNFx1NmIxZFx1ODUxYVx1OWMzYlx1NTllNVx1NTNhOVx1NmQ2Nlx1NzRkY1x1OTU4Zlx1NTY0Mlx1NGU5MVx1OTA0Ylx1OTZmMlx1ODM0Zlx1OTkwY1x1NTNlMVx1NTViNlx1NWIzMFx1NWY3MVx1NjYyMFx1NjZmM1x1Njgw''@;'; put 'put ''NFx1NmMzOFx1NmNmM1x1NmQyOVx1NzQ1Ylx1NzZjOFx1N2E0ZVx1OTgzNFx1ODJmMVx1ODg1Ylx1OGE2MFx1OTJlZFx1NmRiMlx1NzVhYlx1NzZjYVx1OTljNVx1NjBhNlx1OGIwMVx1OGQ4YVx1OTViMlx1Njk4ZVx1NTNhZFx1NTE4NiJdLFsiODk4MCIsIlx1NTcxMlx1NTgzMFx1NTk0NFx1''@;'; put 'put ''NWJiNFx1NWVmNlx1NjAyOFx1NjNhOVx1NjNmNFx1NmNiZlx1NmYxNFx1NzA4ZVx1NzExNFx1NzE1OVx1NzFkNVx1NzMzZlx1N2UwMVx1ODI3Nlx1ODJkMVx1ODU5N1x1OTA2MFx1OTI1Ylx1OWQxYlx1NTg2OVx1NjViY1x1NmM1YVx1NzUyNVx1NTFmOVx1NTkyZVx1NTk2NVx1NWY4MFx1NWZk''@;'; put 'put ''Y1x1NjJiY1x1NjVmYVx1NmEyYVx1NmIyN1x1NmJiNFx1NzM4Ylx1N2ZjMVx1ODk1Nlx1OWQyY1x1OWQwZVx1OWVjNFx1NWNhMVx1NmM5Nlx1ODM3Ylx1NTEwNFx1NWM0Ylx1NjFiNlx1ODFjNlx1Njg3Nlx1NzI2MVx1NGU1OVx1NGZmYVx1NTM3OFx1NjA2OVx1NmUyOVx1N2E0Zlx1OTdmM1x1''@;'; put 'put ''NGUwYlx1NTMxNlx1NGVlZVx1NGY1NVx1NGYzZFx1NGZhMVx1NGY3M1x1NTJhMFx1NTNlZlx1NTYwOVx1NTkwZlx1NWFjMVx1NWJiNlx1NWJlMVx1NzlkMVx1NjY4N1x1Njc5Y1x1NjdiNlx1NmI0Y1x1NmNiM1x1NzA2Ylx1NzNjMlx1Nzk4ZFx1NzliZVx1N2EzY1x1N2I4N1x1ODJiMVx1ODJk''@;'; put 'put ''Ylx1ODMwNFx1ODM3N1x1ODNlZlx1ODNkM1x1ODc2Nlx1OGFiMlx1NTYyOVx1OGNhOFx1OGZlNlx1OTA0ZVx1OTcxZVx1ODY4YVx1NGZjNFx1NWNlOFx1NjIxMVx1NzI1OVx1NzUzYlx1ODFlNVx1ODJiZFx1ODZmZVx1OGNjMFx1OTZjNVx1OTkxM1x1OTlkNVx1NGVjYlx1NGYxYVx1ODllM1x1''@;'; put 'put ''NTZkZVx1NTg0YVx1NThjYVx1NWVmYlx1NWZlYlx1NjAyYVx1NjA5NFx1NjA2Mlx1NjFkMFx1NjIxMlx1NjJkMFx1NjUzOSJdLFsiOGE0MCIsIlx1OWI0MVx1NjY2Nlx1NjhiMFx1NmQ3N1x1NzA3MFx1NzU0Y1x1NzY4Nlx1N2Q3NVx1ODJhNVx1ODdmOVx1OTU4Ylx1OTY4ZVx1OGM5ZFx1NTFm''@;'; put 'put ''MVx1NTJiZVx1NTkxNlx1NTRiM1x1NWJiM1x1NWQxNlx1NjE2OFx1Njk4Mlx1NmRhZlx1Nzg4ZFx1ODRjYlx1ODg1N1x1OGE3Mlx1OTNhN1x1OWFiOFx1NmQ2Y1x1OTlhOFx1ODZkOVx1NTdhM1x1NjdmZlx1ODZjZVx1OTIwZVx1NTI4M1x1NTY4N1x1NTQwNFx1NWVkM1x1NjJlMVx1NjRiOVx1''@;'; put 'put ''NjgzY1x1NjgzOFx1NmJiYlx1NzM3Mlx1NzhiYVx1N2E2Ylx1ODk5YVx1ODlkMlx1OGQ2Ylx1OGYwM1x1OTBlZFx1OTVhM1x1OTY5NFx1OTc2OVx1NWI2Nlx1NWNiM1x1Njk3ZFx1OTg0ZFx1OTg0ZVx1NjM5Ylx1N2IyMFx1NmEyYiJdLFsiOGE4MCIsIlx1NmE3Zlx1NjhiNlx1OWMwZFx1NmY1''@;'; put 'put ''Zlx1NTI3Mlx1NTU5ZFx1NjA3MFx1NjJlY1x1NmQzYlx1NmUwN1x1NmVkMVx1ODQ1Ylx1ODkxMFx1OGY0NFx1NGUxNFx1OWMzOVx1NTNmNlx1NjkxYlx1NmEzYVx1OTc4NFx1NjgyYVx1NTE1Y1x1N2FjM1x1ODRiMlx1OTFkY1x1OTM4Y1x1NTY1Ylx1OWQyOFx1NjgyMlx1ODMwNVx1ODQzMVx1''@;'; put 'put ''N2NhNVx1NTIwOFx1ODJjNVx1NzRlNlx1NGU3ZVx1NGY4M1x1NTFhMFx1NWJkMlx1NTIwYVx1NTJkOFx1NTJlN1x1NWRmYlx1NTU5YVx1NTgyYVx1NTllNlx1NWI4Y1x1NWI5OFx1NWJkYlx1NWU3Mlx1NWU3OVx1NjBhM1x1NjExZlx1NjE2M1x1NjFiZVx1NjNkYlx1NjU2Mlx1NjdkMVx1Njg1''@;'; put 'put ''M1x1NjhmYVx1NmIzZVx1NmI1M1x1NmM1N1x1NmYyMlx1NmY5N1x1NmY0NVx1NzRiMFx1NzUxOFx1NzZlM1x1NzcwYlx1N2FmZlx1N2JhMVx1N2MyMVx1N2RlOVx1N2YzNlx1N2ZmMFx1ODA5ZFx1ODI2Nlx1ODM5ZVx1ODliM1x1OGFjY1x1OGNhYlx1OTA4NFx1OTQ1MVx1OTU5M1x1OTU5MVx1''@;'; put 'put ''OTVhMlx1OTY2NVx1OTdkM1x1OTkyOFx1ODIxOFx1NGUzOFx1NTQyYlx1NWNiOFx1NWRjY1x1NzNhOVx1NzY0Y1x1NzczY1x1NWNhOVx1N2ZlYlx1OGQwYlx1OTZjMVx1OTgxMVx1OTg1NFx1OTg1OFx1NGYwMVx1NGYwZVx1NTM3MVx1NTU5Y1x1NTY2OFx1NTdmYVx1NTk0N1x1NWIwOVx1NWJj''@;'; put 'put ''NFx1NWM5MFx1NWUwY1x1NWU3ZVx1NWZjY1x1NjNlZVx1NjczYVx1NjVkN1x1NjVlMlx1NjcxZlx1NjhjYlx1NjhjNCJdLFsiOGI0MCIsIlx1NmE1Zlx1NWUzMFx1NmJjNVx1NmMxN1x1NmM3ZFx1NzU3Zlx1Nzk0OFx1NWI2M1x1N2EwMFx1N2QwMFx1NWZiZFx1ODk4Zlx1OGExOFx1OGNiNFx1''@;'; put 'put ''OGQ3N1x1OGVjY1x1OGYxZFx1OThlMlx1OWEwZVx1OWIzY1x1NGU4MFx1NTA3ZFx1NTEwMFx1NTk5M1x1NWI5Y1x1NjIyZlx1NjI4MFx1NjRlY1x1NmIzYVx1NzJhMFx1NzU5MVx1Nzk0N1x1N2ZhOVx1ODdmYlx1OGFiY1x1OGI3MFx1NjNhY1x1ODNjYVx1OTdhMFx1NTQwOVx1NTQwM1x1NTVh''@;'; put 'put ''Ylx1Njg1NFx1NmE1OFx1OGE3MFx1NzgyN1x1Njc3NVx1OWVjZFx1NTM3NFx1NWJhMlx1ODExYVx1ODY1MFx1OTAwNlx1NGUxOFx1NGU0NVx1NGVjN1x1NGYxMVx1NTNjYVx1NTQzOFx1NWJhZVx1NWYxM1x1NjAyNVx1NjU1MSJdLFsiOGI4MCIsIlx1NjczZFx1NmM0Mlx1NmM3Mlx1NmNlM1x1''@;'; put 'put ''NzA3OFx1NzQwM1x1N2E3Nlx1N2FhZVx1N2IwOFx1N2QxYVx1N2NmZVx1N2Q2Nlx1NjVlN1x1NzI1Ylx1NTNiYlx1NWM0NVx1NWRlOFx1NjJkMlx1NjJlMFx1NjMxOVx1NmUyMFx1ODY1YVx1OGEzMVx1OGRkZFx1OTJmOFx1NmYwMVx1NzlhNlx1OWI1YVx1NGVhOFx1NGVhYlx1NGVhY1x1NGY5''@;'; put 'put ''Ylx1NGZhMFx1NTBkMVx1NTE0N1x1N2FmNlx1NTE3MVx1NTFmNlx1NTM1NFx1NTMyMVx1NTM3Zlx1NTNlYlx1NTVhY1x1NTg4M1x1NWNlMVx1NWYzN1x1NWY0YVx1NjAyZlx1NjA1MFx1NjA2ZFx1NjMxZlx1NjU1OVx1NmE0Ylx1NmNjMVx1NzJjMlx1NzJlZFx1NzdlZlx1ODBmOFx1ODEwNVx1''@;'; put 'put ''ODIwOFx1ODU0ZVx1OTBmN1x1OTNlMVx1OTdmZlx1OTk1N1x1OWE1YVx1NGVmMFx1NTFkZFx1NWMyZFx1NjY4MVx1Njk2ZFx1NWM0MFx1NjZmMlx1Njk3NVx1NzM4OVx1Njg1MFx1N2M4MVx1NTBjNVx1NTJlNFx1NTc0N1x1NWRmZVx1OTMyNlx1NjVhNFx1NmIyM1x1NmIzZFx1NzQzNFx1Nzk4''@;'; put 'put ''MVx1NzliZFx1N2I0Ylx1N2RjYVx1ODJiOVx1ODNjY1x1ODg3Zlx1ODk1Zlx1OGIzOVx1OGZkMVx1OTFkMVx1NTQxZlx1OTI4MFx1NGU1ZFx1NTAzNlx1NTNlNVx1NTMzYVx1NzJkN1x1NzM5Nlx1NzdlOVx1ODJlNlx1OGVhZlx1OTljNlx1OTljOFx1OTlkMlx1NTE3N1x1NjExYVx1ODY1ZVx1''@;'; put 'put ''NTViMFx1N2E3YVx1NTA3Nlx1NWJkM1x1OTA0N1x1OTY4NVx1NGUzMlx1NmFkYlx1OTFlN1x1NWM1MVx1NWM0OCJdLFsiOGM0MCIsIlx1NjM5OFx1N2E5Zlx1NmM5M1x1OTc3NFx1OGY2MVx1N2FhYVx1NzE4YVx1OTY4OFx1N2M4Mlx1NjgxN1x1N2U3MFx1Njg1MVx1OTM2Y1x1NTJmMlx1NTQx''@;'; put 'put ''Ylx1ODVhYlx1OGExM1x1N2ZhNFx1OGVjZFx1OTBlMVx1NTM2Nlx1ODg4OFx1Nzk0MVx1NGZjMlx1NTBiZVx1NTIxMVx1NTE0NFx1NTU1M1x1NTcyZFx1NzNlYVx1NTc4Ylx1NTk1MVx1NWY2Mlx1NWY4NFx1NjA3NVx1NjE3Nlx1NjE2N1x1NjFhOVx1NjNiMlx1NjQzYVx1NjU2Y1x1NjY2Zlx1''@;'; put 'put ''Njg0Mlx1NmUxM1x1NzU2Nlx1N2EzZFx1N2NmYlx1N2Q0Y1x1N2Q5OVx1N2U0Ylx1N2Y2Ylx1ODMwZVx1ODM0YVx1ODZjZFx1OGEwOFx1OGE2M1x1OGI2Nlx1OGVmZFx1OTgxYVx1OWQ4Zlx1ODJiOFx1OGZjZVx1OWJlOCJdLFsiOGM4MCIsIlx1NTI4N1x1NjIxZlx1NjQ4M1x1NmZjMFx1OTY5''@;'; put 'put ''OVx1Njg0MVx1NTA5MVx1NmIyMFx1NmM3YVx1NmY1NFx1N2E3NFx1N2Q1MFx1ODg0MFx1OGEyM1x1NjcwOFx1NGVmNlx1NTAzOVx1NTAyNlx1NTA2NVx1NTE3Y1x1NTIzOFx1NTI2M1x1NTVhN1x1NTcwZlx1NTgwNVx1NWFjY1x1NWVmYVx1NjFiMlx1NjFmOFx1NjJmM1x1NjM3Mlx1NjkxY1x1''@;'; put 'put ''NmEyOVx1NzI3ZFx1NzJhY1x1NzMyZVx1NzgxNFx1Nzg2Zlx1N2Q3OVx1NzcwY1x1ODBhOVx1ODk4Ylx1OGIxOVx1OGNlMlx1OGVkMlx1OTA2M1x1OTM3NVx1OTY3YVx1OTg1NVx1OWExM1x1OWU3OFx1NTE0M1x1NTM5Zlx1NTNiM1x1NWU3Ylx1NWYyNlx1NmUxYlx1NmU5MFx1NzM4NFx1NzNm''@;'; put 'put ''ZVx1N2Q0M1x1ODIzN1x1OGEwMFx1OGFmYVx1OTY1MFx1NGU0ZVx1NTAwYlx1NTNlNFx1NTQ3Y1x1NTZmYVx1NTlkMVx1NWI2NFx1NWRmMVx1NWVhYlx1NWYyN1x1NjIzOFx1NjU0NVx1NjdhZlx1NmU1Nlx1NzJkMFx1N2NjYVx1ODhiNFx1ODBhMVx1ODBlMVx1ODNmMFx1ODY0ZVx1OGE4N1x1''@;'; put 'put ''OGRlOFx1OTIzN1x1OTZjN1x1OTg2N1x1OWYxM1x1NGU5NFx1NGU5Mlx1NGYwZFx1NTM0OFx1NTQ0OVx1NTQzZVx1NWEyZlx1NWY4Y1x1NWZhMVx1NjA5Zlx1NjhhN1x1NmE4ZVx1NzQ1YVx1Nzg4MVx1OGE5ZVx1OGFhNFx1OGI3N1x1OTE5MFx1NGU1ZVx1OWJjOVx1NGVhNFx1NGY3Y1x1NGZh''@;'; put 'put ''Zlx1NTAxOVx1NTAxNlx1NTE0OVx1NTE2Y1x1NTI5Zlx1NTJiOVx1NTJmZVx1NTM5YVx1NTNlM1x1NTQxMSJdLFsiOGQ0MCIsIlx1NTQwZVx1NTU4OVx1NTc1MVx1NTdhMlx1NTk3ZFx1NWI1NFx1NWI1ZFx1NWI4Zlx1NWRlNVx1NWRlN1x1NWRmN1x1NWU3OFx1NWU4M1x1NWU5YVx1NWViN1x1''@;'; put 'put ''NWYxOFx1NjA1Mlx1NjE0Y1x1NjI5N1x1NjJkOFx1NjNhN1x1NjUzYlx1NjYwMlx1NjY0M1x1NjZmNFx1Njc2ZFx1NjgyMVx1Njg5N1x1NjljYlx1NmM1Zlx1NmQyYVx1NmQ2OVx1NmUyZlx1NmU5ZFx1NzUzMlx1NzY4N1x1Nzg2Y1x1N2EzZlx1N2NlMFx1N2QwNVx1N2QxOFx1N2Q1ZVx1N2Ri''@;'; put 'put ''MVx1ODAxNVx1ODAwM1x1ODBhZlx1ODBiMVx1ODE1NFx1ODE4Zlx1ODIyYVx1ODM1Mlx1ODg0Y1x1ODg2MVx1OGIxYlx1OGNhMlx1OGNmY1x1OTBjYVx1OTE3NVx1OTI3MVx1NzgzZlx1OTJmY1x1OTVhNFx1OTY0ZCJdLFsiOGQ4MCIsIlx1OTgwNVx1OTk5OVx1OWFkOFx1OWQzYlx1NTI1Ylx1''@;'; put 'put ''NTJhYlx1NTNmN1x1NTQwOFx1NThkNVx1NjJmN1x1NmZlMFx1OGM2YVx1OGY1Zlx1OWViOVx1NTE0Ylx1NTIzYlx1NTQ0YVx1NTZmZFx1N2E0MFx1OTE3N1x1OWQ2MFx1OWVkMlx1NzM0NFx1NmYwOVx1ODE3MFx1NzUxMVx1NWZmZFx1NjBkYVx1OWFhOFx1NzJkYlx1OGZiY1x1NmI2NFx1OTgw''@;'; put 'put ''M1x1NGVjYVx1NTZmMFx1NTc2NFx1NThiZVx1NWE1YVx1NjA2OFx1NjFjN1x1NjYwZlx1NjYwNlx1NjgzOVx1NjhiMVx1NmRmN1x1NzVkNVx1N2QzYVx1ODI2ZVx1OWI0Mlx1NGU5Ylx1NGY1MFx1NTNjOVx1NTUwNlx1NWQ2Zlx1NWRlNlx1NWRlZVx1NjdmYlx1NmM5OVx1NzQ3M1x1NzgwMlx1''@;'; put 'put ''OGE1MFx1OTM5Nlx1ODhkZlx1NTc1MFx1NWVhN1x1NjMyYlx1NTBiNVx1NTBhY1x1NTE4ZFx1NjcwMFx1NTRjOVx1NTg1ZVx1NTliYlx1NWJiMFx1NWY2OVx1NjI0ZFx1NjNhMVx1NjgzZFx1NmI3M1x1NmUwOFx1NzA3ZFx1OTFjN1x1NzI4MFx1NzgxNVx1NzgyNlx1Nzk2ZFx1NjU4ZVx1N2Qz''@;'; put 'put ''MFx1ODNkY1x1ODhjMVx1OGYwOVx1OTY5Ylx1NTI2NFx1NTcyOFx1Njc1MFx1N2Y2YVx1OGNhMVx1NTFiNFx1NTc0Mlx1OTYyYVx1NTgzYVx1Njk4YVx1ODBiNFx1NTRiMlx1NWQwZVx1NTdmY1x1Nzg5NVx1OWRmYVx1NGY1Y1x1NTI0YVx1NTQ4Ylx1NjQzZVx1NjYyOFx1NjcxNFx1NjdmNVx1''@;'; put 'put ''N2E4NFx1N2I1Nlx1N2QyMlx1OTMyZlx1Njg1Y1x1OWJhZFx1N2IzOVx1NTMxOVx1NTE4YVx1NTIzNyJdLFsiOGU0MCIsIlx1NWJkZlx1NjJmNlx1NjRhZVx1NjRlNlx1NjcyZFx1NmJiYVx1ODVhOVx1OTZkMVx1NzY5MFx1OWJkNlx1NjM0Y1x1OTMwNlx1OWJhYlx1NzZiZlx1NjY1Mlx1NGUw''@;'; put 'put ''OVx1NTA5OFx1NTNjMlx1NWM3MVx1NjBlOFx1NjQ5Mlx1NjU2M1x1Njg1Zlx1NzFlNlx1NzNjYVx1NzUyM1x1N2I5N1x1N2U4Mlx1ODY5NVx1OGI4M1x1OGNkYlx1OTE3OFx1OTkxMFx1NjVhY1x1NjZhYlx1NmI4Ylx1NGVkNVx1NGVkNFx1NGYzYVx1NGY3Zlx1NTIzYVx1NTNmOFx1NTNmMlx1''@;'; put 'put ''NTVlM1x1NTZkYlx1NThlYlx1NTljYlx1NTljOVx1NTlmZlx1NWI1MFx1NWM0ZFx1NWUwMlx1NWUyYlx1NWZkN1x1NjAxZFx1NjMwN1x1NjUyZlx1NWI1Y1x1NjVhZlx1NjViZFx1NjVlOFx1Njc5ZFx1NmI2MiJdLFsiOGU4MCIsIlx1NmI3Ylx1NmMwZlx1NzM0NVx1Nzk0OVx1NzljMVx1N2Nm''@;'; put 'put ''OFx1N2QxOVx1N2QyYlx1ODBhMlx1ODEwMlx1ODFmM1x1ODk5Nlx1OGE1ZVx1OGE2OVx1OGE2Nlx1OGE4Y1x1OGFlZVx1OGNjN1x1OGNkY1x1OTZjY1x1OThmY1x1NmI2Zlx1NGU4Ylx1NGYzY1x1NGY4ZFx1NTE1MFx1NWI1N1x1NWJmYVx1NjE0OFx1NjMwMVx1NjY0Mlx1NmIyMVx1NmVjYlx1''@;'; put 'put ''NmNiYlx1NzIzZVx1NzRiZFx1NzVkNFx1NzhjMVx1NzkzYVx1ODAwY1x1ODAzM1x1ODFlYVx1ODQ5NFx1OGY5ZVx1NmM1MFx1OWU3Zlx1NWYwZlx1OGI1OFx1OWQyYlx1N2FmYVx1OGVmOFx1NWI4ZFx1OTZlYlx1NGUwM1x1NTNmMVx1NTdmN1x1NTkzMVx1NWFjOVx1NWJhNFx1NjA4OVx1NmU3''@;'; put 'put ''Zlx1NmYwNlx1NzViZVx1OGNlYVx1NWI5Zlx1ODUwMFx1N2JlMFx1NTA3Mlx1NjdmNFx1ODI5ZFx1NWM2MVx1ODU0YVx1N2UxZVx1ODIwZVx1NTE5OVx1NWMwNFx1NjM2OFx1OGQ2Nlx1NjU5Y1x1NzE2ZVx1NzkzZVx1N2QxN1x1ODAwNVx1OGIxZFx1OGVjYVx1OTA2ZVx1ODZjN1x1OTBhYVx1''@;'; put 'put ''NTAxZlx1NTJmYVx1NWMzYVx1Njc1M1x1NzA3Y1x1NzIzNVx1OTE0Y1x1OTFjOFx1OTMyYlx1ODJlNVx1NWJjMlx1NWYzMVx1NjBmOVx1NGUzYlx1NTNkNlx1NWI4OFx1NjI0Ylx1NjczMVx1NmI4YVx1NzJlOVx1NzNlMFx1N2EyZVx1ODE2Ylx1OGRhM1x1OTE1Mlx1OTk5Nlx1NTExMlx1NTNk''@;'; put 'put ''N1x1NTQ2YVx1NWJmZlx1NjM4OFx1NmEzOVx1N2RhY1x1OTcwMFx1NTZkYVx1NTNjZVx1NTQ2OCJdLFsiOGY0MCIsIlx1NWI5N1x1NWMzMVx1NWRkZVx1NGZlZVx1NjEwMVx1NjJmZVx1NmQzMlx1NzljMFx1NzljYlx1N2Q0Mlx1N2U0ZFx1N2ZkMlx1ODFlZFx1ODIxZlx1ODQ5MFx1ODg0Nlx1''@;'; put 'put ''ODk3Mlx1OGI5MFx1OGU3NFx1OGYyZlx1OTAzMVx1OTE0Ylx1OTE2Y1x1OTZjNlx1OTE5Y1x1NGVjMFx1NGY0Zlx1NTE0NVx1NTM0MVx1NWY5M1x1NjIwZVx1NjdkNFx1NmM0MVx1NmUwYlx1NzM2M1x1N2UyNlx1OTFjZFx1OTI4M1x1NTNkNFx1NTkxOVx1NWJiZlx1NmRkMVx1Nzk1ZFx1N2Uy''@;'; put 'put ''ZVx1N2M5Ylx1NTg3ZVx1NzE5Zlx1NTFmYVx1ODg1M1x1OGZmMFx1NGZjYVx1NWNmYlx1NjYyNVx1NzdhY1x1N2FlM1x1ODIxY1x1OTlmZlx1NTFjNlx1NWZhYVx1NjVlY1x1Njk2Zlx1NmI4OVx1NmRmMyJdLFsiOGY4MCIsIlx1NmU5Nlx1NmY2NFx1NzZmZVx1N2QxNFx1NWRlMVx1OTA3NVx1''@;'; put 'put ''OTE4N1x1OTgwNlx1NTFlNlx1NTIxZFx1NjI0MFx1NjY5MVx1NjZkOVx1NmUxYVx1NWViNlx1N2RkMlx1N2Y3Mlx1NjZmOFx1ODVhZlx1ODVmN1x1OGFmOFx1NTJhOVx1NTNkOVx1NTk3M1x1NWU4Zlx1NWY5MFx1NjA1NVx1OTJlNFx1OTY2NFx1NTBiN1x1NTExZlx1NTJkZFx1NTMyMFx1NTM0''@;'; put 'put ''N1x1NTNlY1x1NTRlOFx1NTU0Nlx1NTUzMVx1NTYxN1x1NTk2OFx1NTliZVx1NWEzY1x1NWJiNVx1NWMwNlx1NWMwZlx1NWMxMVx1NWMxYVx1NWU4NFx1NWU4YVx1NWVlMFx1NWY3MFx1NjI3Zlx1NjI4NFx1NjJkYlx1NjM4Y1x1NjM3N1x1NjYwN1x1NjYwY1x1NjYyZFx1NjY3Nlx1Njc3ZVx1''@;'; put 'put ''NjhhMlx1NmExZlx1NmEzNVx1NmNiY1x1NmQ4OFx1NmUwOVx1NmU1OFx1NzEzY1x1NzEyNlx1NzE2N1x1NzVjN1x1NzcwMVx1Nzg1ZFx1NzkwMVx1Nzk2NVx1NzlmMFx1N2FlMFx1N2IxMVx1N2NhN1x1N2QzOVx1ODA5Nlx1ODNkNlx1ODQ4Ylx1ODU0OVx1ODg1ZFx1ODhmM1x1OGExZlx1OGEz''@;'; put 'put ''Y1x1OGE1NFx1OGE3M1x1OGM2MVx1OGNkZVx1OTFhNFx1OTI2Nlx1OTM3ZVx1OTQxOFx1OTY5Y1x1OTc5OFx1NGUwYVx1NGUwOFx1NGUxZVx1NGU1N1x1NTE5N1x1NTI3MFx1NTdjZVx1NTgzNFx1NThjY1x1NWIyMlx1NWUzOFx1NjBjNVx1NjRmZVx1Njc2MVx1Njc1Nlx1NmQ0NFx1NzJiNlx1''@;'; put 'put ''NzU3M1x1N2E2M1x1ODRiOFx1OGI3Mlx1OTFiOFx1OTMyMFx1NTYzMVx1NTdmNFx1OThmZSJdLFsiOTA0MCIsIlx1NjJlZFx1NjkwZFx1NmI5Nlx1NzFlZFx1N2U1NFx1ODA3N1x1ODI3Mlx1ODllNlx1OThkZlx1ODc1NVx1OGZiMVx1NWMzYlx1NGYzOFx1NGZlMVx1NGZiNVx1NTUwN1x1NWEy''@;'; put 'put ''MFx1NWJkZFx1NWJlOVx1NWZjM1x1NjE0ZVx1NjMyZlx1NjViMFx1NjY0Ylx1NjhlZVx1Njk5Ylx1NmQ3OFx1NmRmMVx1NzUzM1x1NzViOVx1NzcxZlx1Nzk1ZVx1NzllNlx1N2QzM1x1ODFlM1x1ODJhZlx1ODVhYVx1ODlhYVx1OGEzYVx1OGVhYlx1OGY5Ylx1OTAzMlx1OTFkZFx1OTcwN1x1''@;'; put 'put ''NGViYVx1NGVjMVx1NTIwM1x1NTg3NVx1NThlY1x1NWMwYlx1NzUxYVx1NWMzZFx1ODE0ZVx1OGEwYVx1OGZjNVx1OTY2M1x1OTc2ZFx1N2IyNVx1OGFjZlx1OTgwOFx1OTE2Mlx1NTZmM1x1NTNhOCJdLFsiOTA4MCIsIlx1OTAxN1x1NTQzOVx1NTc4Mlx1NWUyNVx1NjNhOFx1NmMzNFx1NzA4''@;'; put 'put ''YVx1Nzc2MVx1N2M4Ylx1N2ZlMFx1ODg3MFx1OTA0Mlx1OTE1NFx1OTMxMFx1OTMxOFx1OTY4Zlx1NzQ1ZVx1OWFjNFx1NWQwN1x1NWQ2OVx1NjU3MFx1NjdhMlx1OGRhOFx1OTZkYlx1NjM2ZVx1Njc0OVx1NjkxOVx1ODNjNVx1OTgxN1x1OTZjMFx1ODhmZVx1NmY4NFx1NjQ3YVx1NWJmOFx1''@;'; put 'put ''NGUxNlx1NzAyY1x1NzU1ZFx1NjYyZlx1NTFjNFx1NTIzNlx1NTJlMlx1NTlkM1x1NWY4MVx1NjAyN1x1NjIxMFx1NjUzZlx1NjU3NFx1NjYxZlx1NjY3NFx1NjhmMlx1NjgxNlx1NmI2M1x1NmUwNVx1NzI3Mlx1NzUxZlx1NzZkYlx1N2NiZVx1ODA1Nlx1NThmMFx1ODhmZFx1ODk3Zlx1OGFh''@;'; put 'put ''MFx1OGE5M1x1OGFjYlx1OTAxZFx1OTE5Mlx1OTc1Mlx1OTc1OVx1NjU4OVx1N2EwZVx1ODEwNlx1OTZiYlx1NWUyZFx1NjBkY1x1NjIxYVx1NjVhNVx1NjYxNFx1Njc5MFx1NzdmM1x1N2E0ZFx1N2M0ZFx1N2UzZVx1ODEwYVx1OGNhY1x1OGQ2NFx1OGRlMVx1OGU1Zlx1NzhhOVx1NTIwN1x1''@;'; put 'put ''NjJkOVx1NjNhNVx1NjQ0Mlx1NjI5OFx1OGEyZFx1N2E4M1x1N2JjMFx1OGFhY1x1OTZlYVx1N2Q3Nlx1ODIwY1x1ODc0OVx1NGVkOVx1NTE0OFx1NTM0M1x1NTM2MFx1NWJhM1x1NWMwMlx1NWMxNlx1NWRkZFx1NjIyNlx1NjI0N1x1NjRiMFx1NjgxM1x1NjgzNFx1NmNjOVx1NmQ0NVx1NmQx''@;'; put 'put ''N1x1NjdkM1x1NmY1Y1x1NzE0ZVx1NzE3ZFx1NjVjYlx1N2E3Zlx1N2JhZFx1N2RkYSJdLFsiOTE0MCIsIlx1N2U0YVx1N2ZhOFx1ODE3YVx1ODIxYlx1ODIzOVx1ODVhNlx1OGE2ZVx1OGNjZVx1OGRmNVx1OTA3OFx1OTA3N1x1OTJhZFx1OTI5MVx1OTU4M1x1OWJhZVx1NTI0ZFx1NTU4NFx1''@;'; put 'put ''NmYzOFx1NzEzNlx1NTE2OFx1Nzk4NVx1N2U1NVx1ODFiM1x1N2NjZVx1NTY0Y1x1NTg1MVx1NWNhOFx1NjNhYVx1NjZmZVx1NjZmZFx1Njk1YVx1NzJkOVx1NzU4Zlx1NzU4ZVx1NzkwZVx1Nzk1Nlx1NzlkZlx1N2M5N1x1N2QyMFx1N2Q0NFx1ODYwN1x1OGEzNFx1OTYzYlx1OTA2MVx1OWYy''@;'; put 'put ''MFx1NTBlN1x1NTI3NVx1NTNjY1x1NTNlMlx1NTAwOVx1NTVhYVx1NThlZVx1NTk0Zlx1NzIzZFx1NWI4Ylx1NWM2NFx1NTMxZFx1NjBlM1x1NjBmM1x1NjM1Y1x1NjM4M1x1NjMzZlx1NjNiYiJdLFsiOTE4MCIsIlx1NjRjZFx1NjVlOVx1NjZmOVx1NWRlM1x1NjljZFx1NjlmZFx1NmYxNVx1''@;'; put 'put ''NzFlNVx1NGU4OVx1NzVlOVx1NzZmOFx1N2E5M1x1N2NkZlx1N2RjZlx1N2Q5Y1x1ODA2MVx1ODM0OVx1ODM1OFx1ODQ2Y1x1ODRiY1x1ODVmYlx1ODhjNVx1OGQ3MFx1OTAwMVx1OTA2ZFx1OTM5N1x1OTcxY1x1OWExMlx1NTBjZlx1NTg5N1x1NjE4ZVx1ODFkM1x1ODUzNVx1OGQwOFx1OTAy''@;'; put 'put ''MFx1NGZjM1x1NTA3NFx1NTI0N1x1NTM3M1x1NjA2Zlx1NjM0OVx1Njc1Zlx1NmUyY1x1OGRiM1x1OTAxZlx1NGZkN1x1NWM1ZVx1OGNjYVx1NjVjZlx1N2Q5YVx1NTM1Mlx1ODg5Nlx1NTE3Nlx1NjNjM1x1NWI1OFx1NWI2Ylx1NWMwYVx1NjQwZFx1Njc1MVx1OTA1Y1x1NGVkNlx1NTkxYVx1''@;'; put 'put ''NTkyYVx1NmM3MFx1OGE1MVx1NTUzZVx1NTgxNVx1NTlhNVx1NjBmMFx1NjI1M1x1NjdjMVx1ODIzNVx1Njk1NVx1OTY0MFx1OTljNFx1OWEyOFx1NGY1M1x1NTgwNlx1NWJmZVx1ODAxMFx1NWNiMVx1NWUyZlx1NWY4NVx1NjAyMFx1NjE0Ylx1NjIzNFx1NjZmZlx1NmNmMFx1NmVkZVx1ODBj''@;'; put 'put ''ZVx1ODE3Zlx1ODJkNFx1ODg4Ylx1OGNiOFx1OTAwMFx1OTAyZVx1OTY4YVx1OWVkYlx1OWJkYlx1NGVlM1x1NTNmMFx1NTkyN1x1N2IyY1x1OTE4ZFx1OTg0Y1x1OWRmOVx1NmVkZFx1NzAyN1x1NTM1M1x1NTU0NFx1NWI4NVx1NjI1OFx1NjI5ZVx1NjJkM1x1NmNhMlx1NmZlZlx1NzQyMlx1''@;'; put 'put ''OGExN1x1OTQzOFx1NmZjMVx1OGFmZVx1ODMzOFx1NTFlN1x1ODZmOFx1NTNlYSJdLFsiOTI0MCIsIlx1NTNlOVx1NGY0Nlx1OTA1NFx1OGZiMFx1NTk2YVx1ODEzMVx1NWRmZFx1N2FlYVx1OGZiZlx1NjhkYVx1OGMzN1x1NzJmOFx1OWM0OFx1NmEzZFx1OGFiMFx1NGUzOVx1NTM1OFx1NTYw''@;'; put 'put ''Nlx1NTc2Nlx1NjJjNVx1NjNhMlx1NjVlNlx1NmI0ZVx1NmRlMVx1NmU1Ylx1NzBhZFx1NzdlZFx1N2FlZlx1N2JhYVx1N2RiYlx1ODAzZFx1ODBjNlx1ODZjYlx1OGE5NVx1OTM1Ylx1NTZlM1x1NThjN1x1NWYzZVx1NjVhZFx1NjY5Nlx1NmE4MFx1NmJiNVx1NzUzN1x1OGFjN1x1NTAyNFx1''@;'; put 'put ''NzdlNVx1NTczMFx1NWYxYlx1NjA2NVx1NjY3YVx1NmM2MFx1NzVmNFx1N2ExYVx1N2Y2ZVx1ODFmNFx1ODcxOFx1OTA0NVx1OTliM1x1N2JjOVx1NzU1Y1x1N2FmOVx1N2I1MVx1ODRjNCJdLFsiOTI4MCIsIlx1OTAxMFx1NzllOVx1N2E5Mlx1ODMzNlx1NWFlMVx1Nzc0MFx1NGUyZFx1NGVm''@;'; put 'put ''Mlx1NWI5OVx1NWZlMFx1NjJiZFx1NjYzY1x1NjdmMVx1NmNlOFx1ODY2Ylx1ODg3N1x1OGEzYlx1OTE0ZVx1OTJmM1x1OTlkMFx1NmExN1x1NzAyNlx1NzMyYVx1ODJlN1x1ODQ1N1x1OGNhZlx1NGUwMVx1NTE0Nlx1NTFjYlx1NTU4Ylx1NWJmNVx1NWUxNlx1NWUzM1x1NWU4MVx1NWYxNFx1''@;'; put 'put ''NWYzNVx1NWY2Ylx1NWZiNFx1NjFmMlx1NjMxMVx1NjZhMlx1NjcxZFx1NmY2ZVx1NzI1Mlx1NzUzYVx1NzczYVx1ODA3NFx1ODEzOVx1ODE3OFx1ODc3Nlx1OGFiZlx1OGFkY1x1OGQ4NVx1OGRmM1x1OTI5YVx1OTU3N1x1OTgwMlx1OWNlNVx1NTJjNVx1NjM1N1x1NzZmNFx1NjcxNVx1NmM4''@;'; put 'put ''OFx1NzNjZFx1OGNjM1x1OTNhZVx1OTY3M1x1NmQyNVx1NTg5Y1x1NjkwZVx1NjljY1x1OGZmZFx1OTM5YVx1NzVkYlx1OTAxYVx1NTg1YVx1NjgwMlx1NjNiNFx1NjlmYlx1NGY0M1x1NmYyY1x1NjdkOFx1OGZiYlx1ODUyNlx1N2RiNFx1OTM1NFx1NjkzZlx1NmY3MFx1NTc2YVx1NThmN1x1''@;'; put 'put ''NWIyY1x1N2QyY1x1NzIyYVx1NTQwYVx1OTFlM1x1OWRiNFx1NGVhZFx1NGY0ZVx1NTA1Y1x1NTA3NVx1NTI0M1x1OGM5ZVx1NTQ0OFx1NTgyNFx1NWI5YVx1NWUxZFx1NWU5NVx1NWVhZFx1NWVmN1x1NWYxZlx1NjA4Y1x1NjJiNVx1NjMzYVx1NjNkMFx1NjhhZlx1NmM0MFx1Nzg4N1x1Nzk4''@;'; put 'put ''ZVx1N2EwYlx1N2RlMFx1ODI0N1x1OGEwMlx1OGFlNlx1OGU0NFx1OTAxMyJdLFsiOTM0MCIsIlx1OTBiOFx1OTEyZFx1OTFkOFx1OWYwZVx1NmNlNVx1NjQ1OFx1NjRlMlx1NjU3NVx1NmVmNFx1NzY4NFx1N2IxYlx1OTA2OVx1OTNkMVx1NmViYVx1NTRmMlx1NWZiOVx1NjRhNFx1OGY0ZFx1''@;'; put 'put ''OGZlZFx1OTI0NFx1NTE3OFx1NTg2Ylx1NTkyOVx1NWM1NVx1NWU5N1x1NmRmYlx1N2U4Zlx1NzUxY1x1OGNiY1x1OGVlMlx1OTg1Ylx1NzBiOVx1NGYxZFx1NmJiZlx1NmZiMVx1NzUzMFx1OTZmYlx1NTE0ZVx1NTQxMFx1NTgzNVx1NTg1N1x1NTlhY1x1NWM2MFx1NWY5Mlx1NjU5N1x1Njc1''@;'; put 'put ''Y1x1NmUyMVx1NzY3Ylx1ODNkZlx1OGNlZFx1OTAxNFx1OTBmZFx1OTM0ZFx1NzgyNVx1NzgzYVx1NTJhYVx1NWVhNlx1NTcxZlx1NTk3NFx1NjAxMlx1NTAxMlx1NTE1YVx1NTFhYyJdLFsiOTM4MCIsIlx1NTFjZFx1NTIwMFx1NTUxMFx1NTg1NFx1NTg1OFx1NTk1N1x1NWI5NVx1NWNmNlx1''@;'; put 'put ''NWQ4Ylx1NjBiY1x1NjI5NVx1NjQyZFx1Njc3MVx1Njg0M1x1NjhiY1x1NjhkZlx1NzZkN1x1NmRkOFx1NmU2Zlx1NmQ5Ylx1NzA2Zlx1NzFjOFx1NWY1M1x1NzVkOFx1Nzk3N1x1N2I0OVx1N2I1NFx1N2I1Mlx1N2NkNlx1N2Q3MVx1NTIzMFx1ODQ2M1x1ODU2OVx1ODVlNFx1OGEwZVx1OGIw''@;'; put 'put ''NFx1OGM0Nlx1OGUwZlx1OTAwM1x1OTAwZlx1OTQxOVx1OTY3Nlx1OTgyZFx1OWEzMFx1OTVkOFx1NTBjZFx1NTJkNVx1NTQwY1x1NTgwMlx1NWMwZVx1NjFhN1x1NjQ5ZVx1NmQxZVx1NzdiM1x1N2FlNVx1ODBmNFx1ODQwNFx1OTA1M1x1OTI4NVx1NWNlMFx1OWQwN1x1NTMzZlx1NWY5N1x1''@;'; put 'put ''NWZiM1x1NmQ5Y1x1NzI3OVx1Nzc2M1x1NzliZlx1N2JlNFx1NmJkMlx1NzJlY1x1OGFhZFx1NjgwM1x1NmE2MVx1NTFmOFx1N2E4MVx1NjkzNFx1NWM0YVx1OWNmNlx1ODJlYlx1NWJjNVx1OTE0OVx1NzAxZVx1NTY3OFx1NWM2Zlx1NjBjN1x1NjU2Nlx1NmM4Y1x1OGM1YVx1OTA0MVx1OTgx''@;'; put 'put ''M1x1NTQ1MVx1NjZjN1x1OTIwZFx1NTk0OFx1OTBhM1x1NTE4NVx1NGU0ZFx1NTFlYVx1ODU5OVx1OGIwZVx1NzA1OFx1NjM3YVx1OTM0Ylx1Njk2Mlx1OTliNFx1N2UwNFx1NzU3N1x1NTM1N1x1Njk2MFx1OGVkZlx1OTZlM1x1NmM1ZFx1NGU4Y1x1NWMzY1x1NWYxMFx1OGZlOVx1NTMwMlx1''@;'; put 'put ''OGNkMVx1ODA4OVx1ODY3OVx1NWVmZlx1NjVlNVx1NGU3M1x1NTE2NSJdLFsiOTQ0MCIsIlx1NTk4Mlx1NWMzZlx1OTdlZVx1NGVmYlx1NTk4YVx1NWZjZFx1OGE4ZFx1NmZlMVx1NzliMFx1Nzk2Mlx1NWJlN1x1ODQ3MVx1NzMyYlx1NzFiMVx1NWU3NFx1NWZmNVx1NjM3Ylx1NjQ5YVx1NzFj''@;'; put 'put ''M1x1N2M5OFx1NGU0M1x1NWVmY1x1NGU0Ylx1NTdkY1x1NTZhMlx1NjBhOVx1NmZjM1x1N2QwZFx1ODBmZFx1ODEzM1x1ODFiZlx1OGZiMlx1ODk5N1x1ODZhNFx1NWRmNFx1NjI4YVx1NjRhZFx1ODk4N1x1Njc3N1x1NmNlMlx1NmQzZVx1NzQzNlx1NzgzNFx1NWE0Nlx1N2Y3NVx1ODJhZFx1''@;'; put 'put ''OTlhY1x1NGZmM1x1NWVjM1x1NjJkZFx1NjM5Mlx1NjU1N1x1Njc2Zlx1NzZjM1x1NzI0Y1x1ODBjY1x1ODBiYVx1OGYyOVx1OTE0ZFx1NTAwZFx1NTdmOVx1NWE5Mlx1Njg4NSJdLFsiOTQ4MCIsIlx1Njk3M1x1NzE2NFx1NzJmZFx1OGNiN1x1NThmMlx1OGNlMFx1OTY2YVx1OTAxOVx1ODc3''@;'; put 'put ''Zlx1NzllNFx1NzdlN1x1ODQyOVx1NGYyZlx1NTI2NVx1NTM1YVx1NjJjZFx1NjdjZlx1NmNjYVx1NzY3ZFx1N2I5NFx1N2M5NVx1ODIzNlx1ODU4NFx1OGZlYlx1NjZkZFx1NmYyMFx1NzIwNlx1N2UxYlx1ODNhYlx1OTljMVx1OWVhNlx1NTFmZFx1N2JiMVx1Nzg3Mlx1N2JiOFx1ODA4N1x1''@;'; put 'put ''N2I0OFx1NmFlOFx1NWU2MVx1ODA4Y1x1NzU1MVx1NzU2MFx1NTE2Ylx1OTI2Mlx1NmU4Y1x1NzY3YVx1OTE5N1x1OWFlYVx1NGYxMFx1N2Y3MFx1NjI5Y1x1N2I0Zlx1OTVhNVx1OWNlOVx1NTY3YVx1NTg1OVx1ODZlNFx1OTZiY1x1NGYzNFx1NTIyNFx1NTM0YVx1NTNjZFx1NTNkYlx1NWUw''@;'; put 'put ''Nlx1NjQyY1x1NjU5MVx1Njc3Zlx1NmMzZVx1NmM0ZVx1NzI0OFx1NzJhZlx1NzNlZFx1NzU1NFx1N2U0MVx1ODIyY1x1ODVlOVx1OGNhOVx1N2JjNFx1OTFjNlx1NzE2OVx1OTgxMlx1OThlZlx1NjMzZFx1NjY2OVx1NzU2YVx1NzZlNFx1NzhkMFx1ODU0M1x1ODZlZVx1NTMyYVx1NTM1MVx1''@;'; put 'put ''NTQyNlx1NTk4M1x1NWU4N1x1NWY3Y1x1NjBiMlx1NjI0OVx1NjI3OVx1NjJhYlx1NjU5MFx1NmJkNFx1NmNjY1x1NzViMlx1NzZhZVx1Nzg5MVx1NzlkOFx1N2RjYlx1N2Y3N1x1ODBhNVx1ODhhYlx1OGFiOVx1OGNiYlx1OTA3Zlx1OTc1ZVx1OThkYlx1NmEwYlx1N2MzOFx1NTA5OVx1NWMz''@;'; put 'put ''ZVx1NWZhZVx1Njc4N1x1NmJkOFx1NzQzNVx1NzcwOVx1N2Y4ZSJdLFsiOTU0MCIsIlx1OWYzYlx1NjdjYVx1N2ExN1x1NTMzOVx1NzU4Ylx1OWFlZFx1NWY2Nlx1ODE5ZFx1ODNmMVx1ODA5OFx1NWYzY1x1NWZjNVx1NzU2Mlx1N2I0Nlx1OTAzY1x1Njg2N1x1NTllYlx1NWE5Ylx1N2QxMFx1''@;'; put 'put ''NzY3ZVx1OGIyY1x1NGZmNVx1NWY2YVx1NmExOVx1NmMzN1x1NmYwMlx1NzRlMlx1Nzk2OFx1ODg2OFx1OGE1NVx1OGM3OVx1NWVkZlx1NjNjZlx1NzVjNVx1NzlkMlx1ODJkN1x1OTMyOFx1OTJmMlx1ODQ5Y1x1ODZlZFx1OWMyZFx1NTRjMVx1NWY2Y1x1NjU4Y1x1NmQ1Y1x1NzAxNVx1OGNh''@;'; put 'put ''N1x1OGNkM1x1OTgzYlx1NjU0Zlx1NzRmNlx1NGUwZFx1NGVkOFx1NTdlMFx1NTkyYlx1NWE2Nlx1NWJjY1x1NTFhOFx1NWUwM1x1NWU5Y1x1NjAxNlx1NjI3Nlx1NjU3NyJdLFsiOTU4MCIsIlx1NjVhN1x1NjY2ZVx1NmQ2ZVx1NzIzNlx1N2IyNlx1ODE1MFx1ODE5YVx1ODI5OVx1OGI1Y1x1''@;'; put 'put ''OGNhMFx1OGNlNlx1OGQ3NFx1OTYxY1x1OTY0NFx1NGZhZVx1NjRhYlx1NmI2Nlx1ODIxZVx1ODQ2MVx1ODU2YVx1OTBlOFx1NWMwMVx1Njk1M1x1OThhOFx1ODQ3YVx1ODU1N1x1NGYwZlx1NTI2Zlx1NWZhOVx1NWU0NVx1NjcwZFx1Nzk4Zlx1ODE3OVx1ODkwN1x1ODk4Nlx1NmRmNVx1NWYx''@;'; put 'put ''N1x1NjI1NVx1NmNiOFx1NGVjZlx1NzI2OVx1OWI5Mlx1NTIwNlx1NTQzYlx1NTY3NFx1NThiM1x1NjFhNFx1NjI2ZVx1NzExYVx1NTk2ZVx1N2M4OVx1N2NkZVx1N2QxYlx1OTZmMFx1NjU4N1x1ODA1ZVx1NGUxOVx1NGY3NVx1NTE3NVx1NTg0MFx1NWU2M1x1NWU3M1x1NWYwYVx1NjdjNFx1''@;'; put 'put ''NGUyNlx1ODUzZFx1OTU4OVx1OTY1Ylx1N2M3M1x1OTgwMVx1NTBmYlx1NThjMVx1NzY1Nlx1NzhhN1x1NTIyNVx1NzdhNVx1ODUxMVx1N2I4Nlx1NTA0Zlx1NTkwOVx1NzI0N1x1N2JjN1x1N2RlOFx1OGZiYVx1OGZkNFx1OTA0ZFx1NGZiZlx1NTJjOVx1NWEyOVx1NWYwMVx1OTdhZFx1NGZk''@;'; put 'put ''ZFx1ODIxN1x1OTJlYVx1NTcwM1x1NjM1NVx1NmI2OVx1NzUyYlx1ODhkY1x1OGYxNFx1N2E0Mlx1NTJkZlx1NTg5M1x1NjE1NVx1NjIwYVx1NjZhZVx1NmJjZFx1N2MzZlx1ODNlOVx1NTAyM1x1NGZmOFx1NTMwNVx1NTQ0Nlx1NTgzMVx1NTk0OVx1NWI5ZFx1NWNmMFx1NWNlZlx1NWQyOVx1''@;'; put 'put ''NWU5Nlx1NjJiMVx1NjM2N1x1NjUzZVx1NjViOVx1NjcwYiJdLFsiOTY0MCIsIlx1NmNkNVx1NmNlMVx1NzBmOVx1NzgzMlx1N2UyYlx1ODBkZVx1ODJiM1x1ODQwY1x1ODRlY1x1ODcwMlx1ODkxMlx1OGEyYVx1OGM0YVx1OTBhNlx1OTJkMlx1OThmZFx1OWNmM1x1OWQ2Y1x1NGU0Zlx1NGVh''@;'; put 'put ''MVx1NTA4ZFx1NTI1Nlx1NTc0YVx1NTlhOFx1NWUzZFx1NWZkOFx1NWZkOVx1NjIzZlx1NjZiNFx1NjcxYlx1NjdkMFx1NjhkMlx1NTE5Mlx1N2QyMVx1ODBhYVx1ODFhOFx1OGIwMFx1OGM4Y1x1OGNiZlx1OTI3ZVx1OTYzMlx1NTQyMFx1OTgyY1x1NTMxN1x1NTBkNVx1NTM1Y1x1NThhOFx1''@;'; put 'put ''NjRiMlx1NjczNFx1NzI2N1x1Nzc2Nlx1N2E0Nlx1OTFlNlx1NTJjM1x1NmNhMVx1NmI4Nlx1NTgwMFx1NWU0Y1x1NTk1NFx1NjcyY1x1N2ZmYlx1NTFlMVx1NzZjNiJdLFsiOTY4MCIsIlx1NjQ2OVx1NzhlOFx1OWI1NFx1OWViYlx1NTdjYlx1NTliOVx1NjYyN1x1Njc5YVx1NmJjZVx1NTRl''@;'; put 'put ''OVx1NjlkOVx1NWU1NVx1ODE5Y1x1Njc5NVx1OWJhYVx1NjdmZVx1OWM1Mlx1Njg1ZFx1NGVhNlx1NGZlM1x1NTNjOFx1NjJiOVx1NjcyYlx1NmNhYlx1OGZjNFx1NGZhZFx1N2U2ZFx1OWViZlx1NGUwN1x1NjE2Mlx1NmU4MFx1NmYyYlx1ODUxM1x1NTQ3M1x1NjcyYVx1OWI0NVx1NWRmM1x1''@;'; put 'put ''N2I5NVx1NWNhY1x1NWJjNlx1ODcxY1x1NmU0YVx1ODRkMVx1N2ExNFx1ODEwOFx1NTk5OVx1N2M4ZFx1NmMxMVx1NzcyMFx1NTJkOVx1NTkyMlx1NzEyMVx1NzI1Zlx1NzdkYlx1OTcyN1x1OWQ2MVx1NjkwYlx1NWE3Zlx1NWExOFx1NTFhNVx1NTQwZFx1NTQ3ZFx1NjYwZVx1NzZkZlx1OGZm''@;'; put 'put ''N1x1OTI5OFx1OWNmNFx1NTllYVx1NzI1ZFx1NmVjNVx1NTE0ZFx1NjhjOVx1N2RiZlx1N2RlY1x1OTc2Mlx1OWViYVx1NjQ3OFx1NmEyMVx1ODMwMlx1NTk4NFx1NWI1Zlx1NmJkYlx1NzMxYlx1NzZmMlx1N2RiMlx1ODAxN1x1ODQ5OVx1NTEzMlx1NjcyOFx1OWVkOVx1NzZlZVx1Njc2Mlx1''@;'; put 'put ''NTJmZlx1OTkwNVx1NWMyNFx1NjIzYlx1N2M3ZVx1OGNiMFx1NTU0Zlx1NjBiNlx1N2QwYlx1OTU4MFx1NTMwMVx1NGU1Zlx1NTFiNlx1NTkxY1x1NzIzYVx1ODAzNlx1OTFjZVx1NWYyNVx1NzdlMlx1NTM4NFx1NWY3OVx1N2QwNFx1ODVhY1x1OGEzM1x1OGU4ZFx1OTc1Nlx1NjdmM1x1ODVh''@;'; put 'put ''ZVx1OTQ1M1x1NjEwOVx1NjEwOFx1NmNiOVx1NzY1MiJdLFsiOTc0MCIsIlx1OGFlZFx1OGYzOFx1NTUyZlx1NGY1MVx1NTEyYVx1NTJjN1x1NTNjYlx1NWJhNVx1NWU3ZFx1NjBhMFx1NjE4Mlx1NjNkNlx1NjcwOVx1NjdkYVx1NmU2N1x1NmQ4Y1x1NzMzNlx1NzMzN1x1NzUzMVx1Nzk1MFx1''@;'; put 'put ''ODhkNVx1OGE5OFx1OTA0YVx1OTA5MVx1OTBmNVx1OTZjNFx1ODc4ZFx1NTkxNVx1NGU4OFx1NGY1OVx1NGUwZVx1OGE4OVx1OGYzZlx1OTgxMFx1NTBhZFx1NWU3Y1x1NTk5Nlx1NWJiOVx1NWViOFx1NjNkYVx1NjNmYVx1NjRjMVx1NjZkY1x1Njk0YVx1NjlkOFx1NmQwYlx1NmViNlx1NzE5''@;'; put 'put ''NFx1NzUyOFx1N2FhZlx1N2Y4YVx1ODAwMFx1ODQ0OVx1ODRjOVx1ODk4MVx1OGIyMVx1OGUwYVx1OTA2NVx1OTY3ZFx1OTkwYVx1NjE3ZVx1NjI5MVx1NmIzMiJdLFsiOTc4MCIsIlx1NmM4M1x1NmQ3NFx1N2ZjY1x1N2ZmY1x1NmRjMFx1N2Y4NVx1ODdiYVx1ODhmOFx1Njc2NVx1ODNiMVx1''@;'; put 'put ''OTgzY1x1OTZmN1x1NmQxYlx1N2Q2MVx1ODQzZFx1OTE2YVx1NGU3MVx1NTM3NVx1NWQ1MFx1NmIwNFx1NmZlYlx1ODVjZFx1ODYyZFx1ODlhN1x1NTIyOVx1NTQwZlx1NWM2NVx1Njc0ZVx1NjhhOFx1NzQwNlx1NzQ4M1x1NzVlMlx1ODhjZlx1ODhlMVx1OTFjY1x1OTZlMlx1OTY3OFx1NWY4''@;'; put 'put ''Ylx1NzM4N1x1N2FjYlx1ODQ0ZVx1NjNhMFx1NzU2NVx1NTI4OVx1NmQ0MVx1NmU5Y1x1NzQwOVx1NzU1OVx1Nzg2Ylx1N2M5Mlx1OTY4Nlx1N2FkY1x1OWY4ZFx1NGZiNlx1NjE2ZVx1NjVjNVx1ODY1Y1x1NGU4Nlx1NGVhZVx1NTBkYVx1NGUyMVx1NTFjY1x1NWJlZVx1NjU5OVx1Njg4MVx1''@;'; put 'put ''NmRiY1x1NzMxZlx1NzY0Mlx1NzdhZFx1N2ExY1x1N2NlN1x1ODI2Zlx1OGFkMlx1OTA3Y1x1OTFjZlx1OTY3NVx1OTgxOFx1NTI5Ylx1N2RkMVx1NTAyYlx1NTM5OFx1Njc5N1x1NmRjYlx1NzFkMFx1NzQzM1x1ODFlOFx1OGYyYVx1OTZhM1x1OWM1N1x1OWU5Zlx1NzQ2MFx1NTg0MVx1NmQ5''@;'; put 'put ''OVx1N2QyZlx1OTg1ZVx1NGVlNFx1NGYzNlx1NGY4Ylx1NTFiN1x1NTJiMVx1NWRiYVx1NjAxY1x1NzNiMlx1NzkzY1x1ODJkM1x1OTIzNFx1OTZiN1x1OTZmNlx1OTcwYVx1OWU5N1x1OWY2Mlx1NjZhNlx1NmI3NFx1NTIxN1x1NTJhM1x1NzBjOFx1ODhjMlx1NWVjOVx1NjA0Ylx1NjE5MFx1''@;'; put 'put ''NmYyM1x1NzE0OVx1N2MzZVx1N2RmNFx1ODA2ZiJdLFsiOTg0MCIsIlx1ODRlZVx1OTAyM1x1OTMyY1x1NTQ0Mlx1OWI2Zlx1NmFkM1x1NzA4OVx1OGNjMlx1OGRlZlx1OTczMlx1NTJiNFx1NWE0MVx1NWVjYVx1NWYwNFx1NjcxN1x1Njk3Y1x1Njk5NFx1NmQ2YVx1NmYwZlx1NzI2Mlx1NzJm''@;'; put 'put ''Y1x1N2JlZFx1ODAwMVx1ODA3ZVx1ODc0Ylx1OTBjZVx1NTE2ZFx1OWU5M1x1Nzk4NFx1ODA4Ylx1OTMzMlx1OGFkNlx1NTAyZFx1NTQ4Y1x1OGE3MVx1NmI2YVx1OGNjNFx1ODEwN1x1NjBkMVx1NjdhMFx1OWRmMlx1NGU5OVx1NGU5OFx1OWMxMFx1OGE2Ylx1ODVjMVx1ODU2OFx1NjkwMFx1''@;'; put 'put ''NmU3ZVx1Nzg5N1x1ODE1NSJdLFsiOTg5ZiIsIlx1NWYwY1x1NGUxMFx1NGUxNVx1NGUyYVx1NGUzMVx1NGUzNlx1NGUzY1x1NGUzZlx1NGU0Mlx1NGU1Nlx1NGU1OFx1NGU4Mlx1NGU4NVx1OGM2Ylx1NGU4YVx1ODIxMlx1NWYwZFx1NGU4ZVx1NGU5ZVx1NGU5Zlx1NGVhMFx1NGVhMlx1NGVi''@;'; put 'put ''MFx1NGViM1x1NGViNlx1NGVjZVx1NGVjZFx1NGVjNFx1NGVjNlx1NGVjMlx1NGVkN1x1NGVkZVx1NGVlZFx1NGVkZlx1NGVmN1x1NGYwOVx1NGY1YVx1NGYzMFx1NGY1Ylx1NGY1ZFx1NGY1N1x1NGY0N1x1NGY3Nlx1NGY4OFx1NGY4Zlx1NGY5OFx1NGY3Ylx1NGY2OVx1NGY3MFx1NGY5MVx1''@;'; put 'put ''NGY2Zlx1NGY4Nlx1NGY5Nlx1NTExOFx1NGZkNFx1NGZkZlx1NGZjZVx1NGZkOFx1NGZkYlx1NGZkMVx1NGZkYVx1NGZkMFx1NGZlNFx1NGZlNVx1NTAxYVx1NTAyOFx1NTAxNFx1NTAyYVx1NTAyNVx1NTAwNVx1NGYxY1x1NGZmNlx1NTAyMVx1NTAyOVx1NTAyY1x1NGZmZVx1NGZlZlx1NTAx''@;'; put 'put ''MVx1NTAwNlx1NTA0M1x1NTA0N1x1NjcwM1x1NTA1NVx1NTA1MFx1NTA0OFx1NTA1YVx1NTA1Nlx1NTA2Y1x1NTA3OFx1NTA4MFx1NTA5YVx1NTA4NVx1NTBiNFx1NTBiMiJdLFsiOTk0MCIsIlx1NTBjOVx1NTBjYVx1NTBiM1x1NTBjMlx1NTBkNlx1NTBkZVx1NTBlNVx1NTBlZFx1NTBlM1x1''@;'; put 'put ''NTBlZVx1NTBmOVx1NTBmNVx1NTEwOVx1NTEwMVx1NTEwMlx1NTExNlx1NTExNVx1NTExNFx1NTExYVx1NTEyMVx1NTEzYVx1NTEzN1x1NTEzY1x1NTEzYlx1NTEzZlx1NTE0MFx1NTE1Mlx1NTE0Y1x1NTE1NFx1NTE2Mlx1N2FmOFx1NTE2OVx1NTE2YVx1NTE2ZVx1NTE4MFx1NTE4Mlx1NTZk''@;'; put 'put ''OFx1NTE4Y1x1NTE4OVx1NTE4Zlx1NTE5MVx1NTE5M1x1NTE5NVx1NTE5Nlx1NTFhNFx1NTFhNlx1NTFhMlx1NTFhOVx1NTFhYVx1NTFhYlx1NTFiM1x1NTFiMVx1NTFiMlx1NTFiMFx1NTFiNVx1NTFiZFx1NTFjNVx1NTFjOVx1NTFkYlx1NTFlMFx1ODY1NVx1NTFlOVx1NTFlZCJdLFsiOTk4''@;'; put 'put ''MCIsIlx1NTFmMFx1NTFmNVx1NTFmZVx1NTIwNFx1NTIwYlx1NTIxNFx1NTIwZVx1NTIyN1x1NTIyYVx1NTIyZVx1NTIzM1x1NTIzOVx1NTI0Zlx1NTI0NFx1NTI0Ylx1NTI0Y1x1NTI1ZVx1NTI1NFx1NTI2YVx1NTI3NFx1NTI2OVx1NTI3M1x1NTI3Zlx1NTI3ZFx1NTI4ZFx1NTI5NFx1NTI5''@;'; put 'put ''Mlx1NTI3MVx1NTI4OFx1NTI5MVx1OGZhOFx1OGZhN1x1NTJhY1x1NTJhZFx1NTJiY1x1NTJiNVx1NTJjMVx1NTJjZFx1NTJkN1x1NTJkZVx1NTJlM1x1NTJlNlx1OThlZFx1NTJlMFx1NTJmM1x1NTJmNVx1NTJmOFx1NTJmOVx1NTMwNlx1NTMwOFx1NzUzOFx1NTMwZFx1NTMxMFx1NTMwZlx1''@;'; put 'put ''NTMxNVx1NTMxYVx1NTMyM1x1NTMyZlx1NTMzMVx1NTMzM1x1NTMzOFx1NTM0MFx1NTM0Nlx1NTM0NVx1NGUxN1x1NTM0OVx1NTM0ZFx1NTFkNlx1NTM1ZVx1NTM2OVx1NTM2ZVx1NTkxOFx1NTM3Ylx1NTM3N1x1NTM4Mlx1NTM5Nlx1NTNhMFx1NTNhNlx1NTNhNVx1NTNhZVx1NTNiMFx1NTNi''@;'; put 'put ''Nlx1NTNjM1x1N2MxMlx1OTZkOVx1NTNkZlx1NjZmY1x1NzFlZVx1NTNlZVx1NTNlOFx1NTNlZFx1NTNmYVx1NTQwMVx1NTQzZFx1NTQ0MFx1NTQyY1x1NTQyZFx1NTQzY1x1NTQyZVx1NTQzNlx1NTQyOVx1NTQxZFx1NTQ0ZVx1NTQ4Zlx1NTQ3NVx1NTQ4ZVx1NTQ1Zlx1NTQ3MVx1NTQ3N1x1''@;'; put 'put ''NTQ3MFx1NTQ5Mlx1NTQ3Ylx1NTQ4MFx1NTQ3Nlx1NTQ4NFx1NTQ5MFx1NTQ4Nlx1NTRjN1x1NTRhMlx1NTRiOFx1NTRhNVx1NTRhY1x1NTRjNFx1NTRjOFx1NTRhOCJdLFsiOWE0MCIsIlx1NTRhYlx1NTRjMlx1NTRhNFx1NTRiZVx1NTRiY1x1NTRkOFx1NTRlNVx1NTRlNlx1NTUwZlx1NTUx''@;'; put 'put ''NFx1NTRmZFx1NTRlZVx1NTRlZFx1NTRmYVx1NTRlMlx1NTUzOVx1NTU0MFx1NTU2M1x1NTU0Y1x1NTUyZVx1NTU1Y1x1NTU0NVx1NTU1Nlx1NTU1N1x1NTUzOFx1NTUzM1x1NTU1ZFx1NTU5OVx1NTU4MFx1NTRhZlx1NTU4YVx1NTU5Zlx1NTU3Ylx1NTU3ZVx1NTU5OFx1NTU5ZVx1NTVhZVx1''@;'; put 'put ''NTU3Y1x1NTU4M1x1NTVhOVx1NTU4N1x1NTVhOFx1NTVkYVx1NTVjNVx1NTVkZlx1NTVjNFx1NTVkY1x1NTVlNFx1NTVkNFx1NTYxNFx1NTVmN1x1NTYxNlx1NTVmZVx1NTVmZFx1NTYxYlx1NTVmOVx1NTY0ZVx1NTY1MFx1NzFkZlx1NTYzNFx1NTYzNlx1NTYzMlx1NTYzOCJdLFsiOWE4MCIs''@;'; put 'put ''Ilx1NTY2Ylx1NTY2NFx1NTYyZlx1NTY2Y1x1NTY2YVx1NTY4Nlx1NTY4MFx1NTY4YVx1NTZhMFx1NTY5NFx1NTY4Zlx1NTZhNVx1NTZhZVx1NTZiNlx1NTZiNFx1NTZjMlx1NTZiY1x1NTZjMVx1NTZjM1x1NTZjMFx1NTZjOFx1NTZjZVx1NTZkMVx1NTZkM1x1NTZkN1x1NTZlZVx1NTZmOVx1''@;'; put 'put ''NTcwMFx1NTZmZlx1NTcwNFx1NTcwOVx1NTcwOFx1NTcwYlx1NTcwZFx1NTcxM1x1NTcxOFx1NTcxNlx1NTVjN1x1NTcxY1x1NTcyNlx1NTczN1x1NTczOFx1NTc0ZVx1NTczYlx1NTc0MFx1NTc0Zlx1NTc2OVx1NTdjMFx1NTc4OFx1NTc2MVx1NTc3Zlx1NTc4OVx1NTc5M1x1NTdhMFx1NTdi''@;'; put 'put ''M1x1NTdhNFx1NTdhYVx1NTdiMFx1NTdjM1x1NTdjNlx1NTdkNFx1NTdkMlx1NTdkM1x1NTgwYVx1NTdkNlx1NTdlM1x1NTgwYlx1NTgxOVx1NTgxZFx1NTg3Mlx1NTgyMVx1NTg2Mlx1NTg0Ylx1NTg3MFx1NmJjMFx1NTg1Mlx1NTgzZFx1NTg3OVx1NTg4NVx1NThiOVx1NTg5Zlx1NThhYlx1''@;'; put 'put ''NThiYVx1NThkZVx1NThiYlx1NThiOFx1NThhZVx1NThjNVx1NThkM1x1NThkMVx1NThkN1x1NThkOVx1NThkOFx1NThlNVx1NThkY1x1NThlNFx1NThkZlx1NThlZlx1NThmYVx1NThmOVx1NThmYlx1NThmY1x1NThmZFx1NTkwMlx1NTkwYVx1NTkxMFx1NTkxYlx1NjhhNlx1NTkyNVx1NTky''@;'; put 'put ''Y1x1NTkyZFx1NTkzMlx1NTkzOFx1NTkzZVx1N2FkMlx1NTk1NVx1NTk1MFx1NTk0ZVx1NTk1YVx1NTk1OFx1NTk2Mlx1NTk2MFx1NTk2N1x1NTk2Y1x1NTk2OSJdLFsiOWI0MCIsIlx1NTk3OFx1NTk4MVx1NTk5ZFx1NGY1ZVx1NGZhYlx1NTlhM1x1NTliMlx1NTljNlx1NTllOFx1NTlkY1x1''@;'; put 'put ''NTk4ZFx1NTlkOVx1NTlkYVx1NWEyNVx1NWExZlx1NWExMVx1NWExY1x1NWEwOVx1NWExYVx1NWE0MFx1NWE2Y1x1NWE0OVx1NWEzNVx1NWEzNlx1NWE2Mlx1NWE2YVx1NWE5YVx1NWFiY1x1NWFiZVx1NWFjYlx1NWFjMlx1NWFiZFx1NWFlM1x1NWFkN1x1NWFlNlx1NWFlOVx1NWFkNlx1NWFm''@;'; put 'put ''YVx1NWFmYlx1NWIwY1x1NWIwYlx1NWIxNlx1NWIzMlx1NWFkMFx1NWIyYVx1NWIzNlx1NWIzZVx1NWI0M1x1NWI0NVx1NWI0MFx1NWI1MVx1NWI1NVx1NWI1YVx1NWI1Ylx1NWI2NVx1NWI2OVx1NWI3MFx1NWI3M1x1NWI3NVx1NWI3OFx1NjU4OFx1NWI3YVx1NWI4MCJdLFsiOWI4MCIsIlx1''@;'; put 'put ''NWI4M1x1NWJhNlx1NWJiOFx1NWJjM1x1NWJjN1x1NWJjOVx1NWJkNFx1NWJkMFx1NWJlNFx1NWJlNlx1NWJlMlx1NWJkZVx1NWJlNVx1NWJlYlx1NWJmMFx1NWJmNlx1NWJmM1x1NWMwNVx1NWMwN1x1NWMwOFx1NWMwZFx1NWMxM1x1NWMyMFx1NWMyMlx1NWMyOFx1NWMzOFx1NWMzOVx1NWM0''@;'; put 'put ''MVx1NWM0Nlx1NWM0ZVx1NWM1M1x1NWM1MFx1NWM0Zlx1NWI3MVx1NWM2Y1x1NWM2ZVx1NGU2Mlx1NWM3Nlx1NWM3OVx1NWM4Y1x1NWM5MVx1NWM5NFx1NTk5Ylx1NWNhYlx1NWNiYlx1NWNiNlx1NWNiY1x1NWNiN1x1NWNjNVx1NWNiZVx1NWNjN1x1NWNkOVx1NWNlOVx1NWNmZFx1NWNmYVx1''@;'; put 'put ''NWNlZFx1NWQ4Y1x1NWNlYVx1NWQwYlx1NWQxNVx1NWQxN1x1NWQ1Y1x1NWQxZlx1NWQxYlx1NWQxMVx1NWQxNFx1NWQyMlx1NWQxYVx1NWQxOVx1NWQxOFx1NWQ0Y1x1NWQ1Mlx1NWQ0ZVx1NWQ0Ylx1NWQ2Y1x1NWQ3M1x1NWQ3Nlx1NWQ4N1x1NWQ4NFx1NWQ4Mlx1NWRhMlx1NWQ5ZFx1NWRh''@;'; put 'put ''Y1x1NWRhZVx1NWRiZFx1NWQ5MFx1NWRiN1x1NWRiY1x1NWRjOVx1NWRjZFx1NWRkM1x1NWRkMlx1NWRkNlx1NWRkYlx1NWRlYlx1NWRmMlx1NWRmNVx1NWUwYlx1NWUxYVx1NWUxOVx1NWUxMVx1NWUxYlx1NWUzNlx1NWUzN1x1NWU0NFx1NWU0M1x1NWU0MFx1NWU0ZVx1NWU1N1x1NWU1NFx1''@;'; put 'put ''NWU1Zlx1NWU2Mlx1NWU2NFx1NWU0N1x1NWU3NVx1NWU3Nlx1NWU3YVx1OWViY1x1NWU3Zlx1NWVhMFx1NWVjMVx1NWVjMlx1NWVjOFx1NWVkMFx1NWVjZiJdLFsiOWM0MCIsIlx1NWVkNlx1NWVlM1x1NWVkZFx1NWVkYVx1NWVkYlx1NWVlMlx1NWVlMVx1NWVlOFx1NWVlOVx1NWVlY1x1NWVm''@;'; put 'put ''MVx1NWVmM1x1NWVmMFx1NWVmNFx1NWVmOFx1NWVmZVx1NWYwM1x1NWYwOVx1NWY1ZFx1NWY1Y1x1NWYwYlx1NWYxMVx1NWYxNlx1NWYyOVx1NWYyZFx1NWYzOFx1NWY0MVx1NWY0OFx1NWY0Y1x1NWY0ZVx1NWYyZlx1NWY1MVx1NWY1Nlx1NWY1N1x1NWY1OVx1NWY2MVx1NWY2ZFx1NWY3M1x1''@;'; put 'put ''NWY3N1x1NWY4M1x1NWY4Mlx1NWY3Zlx1NWY4YVx1NWY4OFx1NWY5MVx1NWY4N1x1NWY5ZVx1NWY5OVx1NWY5OFx1NWZhMFx1NWZhOFx1NWZhZFx1NWZiY1x1NWZkNlx1NWZmYlx1NWZlNFx1NWZmOFx1NWZmMVx1NWZkZFx1NjBiM1x1NWZmZlx1NjAyMVx1NjA2MCJdLFsiOWM4MCIsIlx1NjAx''@;'; put 'put ''OVx1NjAxMFx1NjAyOVx1NjAwZVx1NjAzMVx1NjAxYlx1NjAxNVx1NjAyYlx1NjAyNlx1NjAwZlx1NjAzYVx1NjA1YVx1NjA0MVx1NjA2YVx1NjA3N1x1NjA1Zlx1NjA0YVx1NjA0Nlx1NjA0ZFx1NjA2M1x1NjA0M1x1NjA2NFx1NjA0Mlx1NjA2Y1x1NjA2Ylx1NjA1OVx1NjA4MVx1NjA4ZFx1''@;'; put 'put ''NjBlN1x1NjA4M1x1NjA5YVx1NjA4NFx1NjA5Ylx1NjA5Nlx1NjA5N1x1NjA5Mlx1NjBhN1x1NjA4Ylx1NjBlMVx1NjBiOFx1NjBlMFx1NjBkM1x1NjBiNFx1NWZmMFx1NjBiZFx1NjBjNlx1NjBiNVx1NjBkOFx1NjE0ZFx1NjExNVx1NjEwNlx1NjBmNlx1NjBmN1x1NjEwMFx1NjBmNFx1NjBm''@;'; put 'put ''YVx1NjEwM1x1NjEyMVx1NjBmYlx1NjBmMVx1NjEwZFx1NjEwZVx1NjE0N1x1NjEzZVx1NjEyOFx1NjEyN1x1NjE0YVx1NjEzZlx1NjEzY1x1NjEyY1x1NjEzNFx1NjEzZFx1NjE0Mlx1NjE0NFx1NjE3M1x1NjE3N1x1NjE1OFx1NjE1OVx1NjE1YVx1NjE2Ylx1NjE3NFx1NjE2Zlx1NjE2NVx1''@;'; put 'put ''NjE3MVx1NjE1Zlx1NjE1ZFx1NjE1M1x1NjE3NVx1NjE5OVx1NjE5Nlx1NjE4N1x1NjFhY1x1NjE5NFx1NjE5YVx1NjE4YVx1NjE5MVx1NjFhYlx1NjFhZVx1NjFjY1x1NjFjYVx1NjFjOVx1NjFmN1x1NjFjOFx1NjFjM1x1NjFjNlx1NjFiYVx1NjFjYlx1N2Y3OVx1NjFjZFx1NjFlNlx1NjFl''@;'; put 'put ''M1x1NjFmNlx1NjFmYVx1NjFmNFx1NjFmZlx1NjFmZFx1NjFmY1x1NjFmZVx1NjIwMFx1NjIwOFx1NjIwOVx1NjIwZFx1NjIwY1x1NjIxNFx1NjIxYiJdLFsiOWQ0MCIsIlx1NjIxZVx1NjIyMVx1NjIyYVx1NjIyZVx1NjIzMFx1NjIzMlx1NjIzM1x1NjI0MVx1NjI0ZVx1NjI1ZVx1NjI2M1x1''@;'; put 'put ''NjI1Ylx1NjI2MFx1NjI2OFx1NjI3Y1x1NjI4Mlx1NjI4OVx1NjI3ZVx1NjI5Mlx1NjI5M1x1NjI5Nlx1NjJkNFx1NjI4M1x1NjI5NFx1NjJkN1x1NjJkMVx1NjJiYlx1NjJjZlx1NjJmZlx1NjJjNlx1NjRkNFx1NjJjOFx1NjJkY1x1NjJjY1x1NjJjYVx1NjJjMlx1NjJjN1x1NjI5Ylx1NjJj''@;'; put 'put ''OVx1NjMwY1x1NjJlZVx1NjJmMVx1NjMyN1x1NjMwMlx1NjMwOFx1NjJlZlx1NjJmNVx1NjM1MFx1NjMzZVx1NjM0ZFx1NjQxY1x1NjM0Zlx1NjM5Nlx1NjM4ZVx1NjM4MFx1NjNhYlx1NjM3Nlx1NjNhM1x1NjM4Zlx1NjM4OVx1NjM5Zlx1NjNiNVx1NjM2YiJdLFsiOWQ4MCIsIlx1NjM2OVx1''@;'; put 'put ''NjNiZVx1NjNlOVx1NjNjMFx1NjNjNlx1NjNlM1x1NjNjOVx1NjNkMlx1NjNmNlx1NjNjNFx1NjQxNlx1NjQzNFx1NjQwNlx1NjQxM1x1NjQyNlx1NjQzNlx1NjUxZFx1NjQxN1x1NjQyOFx1NjQwZlx1NjQ2N1x1NjQ2Zlx1NjQ3Nlx1NjQ0ZVx1NjUyYVx1NjQ5NVx1NjQ5M1x1NjRhNVx1NjRh''@;'; put 'put ''OVx1NjQ4OFx1NjRiY1x1NjRkYVx1NjRkMlx1NjRjNVx1NjRjN1x1NjRiYlx1NjRkOFx1NjRjMlx1NjRmMVx1NjRlN1x1ODIwOVx1NjRlMFx1NjRlMVx1NjJhY1x1NjRlM1x1NjRlZlx1NjUyY1x1NjRmNlx1NjRmNFx1NjRmMlx1NjRmYVx1NjUwMFx1NjRmZFx1NjUxOFx1NjUxY1x1NjUwNVx1''@;'; put 'put ''NjUyNFx1NjUyM1x1NjUyYlx1NjUzNFx1NjUzNVx1NjUzN1x1NjUzNlx1NjUzOFx1NzU0Ylx1NjU0OFx1NjU1Nlx1NjU1NVx1NjU0ZFx1NjU1OFx1NjU1ZVx1NjU1ZFx1NjU3Mlx1NjU3OFx1NjU4Mlx1NjU4M1x1OGI4YVx1NjU5Ylx1NjU5Zlx1NjVhYlx1NjViN1x1NjVjM1x1NjVjNlx1NjVj''@;'; put 'put ''MVx1NjVjNFx1NjVjY1x1NjVkMlx1NjVkYlx1NjVkOVx1NjVlMFx1NjVlMVx1NjVmMVx1Njc3Mlx1NjYwYVx1NjYwM1x1NjVmYlx1Njc3M1x1NjYzNVx1NjYzNlx1NjYzNFx1NjYxY1x1NjY0Zlx1NjY0NFx1NjY0OVx1NjY0MVx1NjY1ZVx1NjY1ZFx1NjY2NFx1NjY2N1x1NjY2OFx1NjY1Zlx1''@;'; put 'put ''NjY2Mlx1NjY3MFx1NjY4M1x1NjY4OFx1NjY4ZVx1NjY4OVx1NjY4NFx1NjY5OFx1NjY5ZFx1NjZjMVx1NjZiOVx1NjZjOVx1NjZiZVx1NjZiYyJdLFsiOWU0MCIsIlx1NjZjNFx1NjZiOFx1NjZkNlx1NjZkYVx1NjZlMFx1NjYzZlx1NjZlNlx1NjZlOVx1NjZmMFx1NjZmNVx1NjZmN1x1Njcw''@;'; put 'put ''Zlx1NjcxNlx1NjcxZVx1NjcyNlx1NjcyN1x1OTczOFx1NjcyZVx1NjczZlx1NjczNlx1Njc0MVx1NjczOFx1NjczN1x1Njc0Nlx1Njc1ZVx1Njc2MFx1Njc1OVx1Njc2M1x1Njc2NFx1Njc4OVx1Njc3MFx1NjdhOVx1Njc3Y1x1Njc2YVx1Njc4Y1x1Njc4Ylx1NjdhNlx1NjdhMVx1Njc4NVx1''@;'; put 'put ''NjdiN1x1NjdlZlx1NjdiNFx1NjdlY1x1NjdiM1x1NjdlOVx1NjdiOFx1NjdlNFx1NjdkZVx1NjdkZFx1NjdlMlx1NjdlZVx1NjdiOVx1NjdjZVx1NjdjNlx1NjdlN1x1NmE5Y1x1NjgxZVx1Njg0Nlx1NjgyOVx1Njg0MFx1Njg0ZFx1NjgzMlx1Njg0ZSJdLFsiOWU4MCIsIlx1NjhiM1x1Njgy''@;'; put 'put ''Ylx1Njg1OVx1Njg2M1x1Njg3N1x1Njg3Zlx1Njg5Zlx1Njg4Zlx1NjhhZFx1Njg5NFx1Njg5ZFx1Njg5Ylx1Njg4M1x1NmFhZVx1NjhiOVx1Njg3NFx1NjhiNVx1NjhhMFx1NjhiYVx1NjkwZlx1Njg4ZFx1Njg3ZVx1NjkwMVx1NjhjYVx1NjkwOFx1NjhkOFx1NjkyMlx1NjkyNlx1NjhlMVx1''@;'; put 'put ''NjkwY1x1NjhjZFx1NjhkNFx1NjhlN1x1NjhkNVx1NjkzNlx1NjkxMlx1NjkwNFx1NjhkN1x1NjhlM1x1NjkyNVx1NjhmOVx1NjhlMFx1NjhlZlx1NjkyOFx1NjkyYVx1NjkxYVx1NjkyM1x1NjkyMVx1NjhjNlx1Njk3OVx1Njk3N1x1Njk1Y1x1Njk3OFx1Njk2Ylx1Njk1NFx1Njk3ZVx1Njk2''@;'; put 'put ''ZVx1NjkzOVx1Njk3NFx1NjkzZFx1Njk1OVx1NjkzMFx1Njk2MVx1Njk1ZVx1Njk1ZFx1Njk4MVx1Njk2YVx1NjliMlx1NjlhZVx1NjlkMFx1NjliZlx1NjljMVx1NjlkM1x1NjliZVx1NjljZVx1NWJlOFx1NjljYVx1NjlkZFx1NjliYlx1NjljM1x1NjlhN1x1NmEyZVx1Njk5MVx1NjlhMFx1''@;'; put 'put ''Njk5Y1x1Njk5NVx1NjliNFx1NjlkZVx1NjllOFx1NmEwMlx1NmExYlx1NjlmZlx1NmIwYVx1NjlmOVx1NjlmMlx1NjllN1x1NmEwNVx1NjliMVx1NmExZVx1NjllZFx1NmExNFx1NjllYlx1NmEwYVx1NmExMlx1NmFjMVx1NmEyM1x1NmExM1x1NmE0NFx1NmEwY1x1NmE3Mlx1NmEzNlx1NmE3''@;'; put 'put ''OFx1NmE0N1x1NmE2Mlx1NmE1OVx1NmE2Nlx1NmE0OFx1NmEzOFx1NmEyMlx1NmE5MFx1NmE4ZFx1NmFhMFx1NmE4NFx1NmFhMlx1NmFhMyJdLFsiOWY0MCIsIlx1NmE5N1x1ODYxN1x1NmFiYlx1NmFjM1x1NmFjMlx1NmFiOFx1NmFiM1x1NmFhY1x1NmFkZVx1NmFkMVx1NmFkZlx1NmFhYVx1''@;'; put 'put ''NmFkYVx1NmFlYVx1NmFmYlx1NmIwNVx1ODYxNlx1NmFmYVx1NmIxMlx1NmIxNlx1OWIzMVx1NmIxZlx1NmIzOFx1NmIzN1x1NzZkY1x1NmIzOVx1OThlZVx1NmI0N1x1NmI0M1x1NmI0OVx1NmI1MFx1NmI1OVx1NmI1NFx1NmI1Ylx1NmI1Zlx1NmI2MVx1NmI3OFx1NmI3OVx1NmI3Zlx1NmI4''@;'; put 'put ''MFx1NmI4NFx1NmI4M1x1NmI4ZFx1NmI5OFx1NmI5NVx1NmI5ZVx1NmJhNFx1NmJhYVx1NmJhYlx1NmJhZlx1NmJiMlx1NmJiMVx1NmJiM1x1NmJiN1x1NmJiY1x1NmJjNlx1NmJjYlx1NmJkM1x1NmJkZlx1NmJlY1x1NmJlYlx1NmJmM1x1NmJlZiJdLFsiOWY4MCIsIlx1OWViZVx1NmMwOFx1''@;'; put 'put ''NmMxM1x1NmMxNFx1NmMxYlx1NmMyNFx1NmMyM1x1NmM1ZVx1NmM1NVx1NmM2Mlx1NmM2YVx1NmM4Mlx1NmM4ZFx1NmM5YVx1NmM4MVx1NmM5Ylx1NmM3ZVx1NmM2OFx1NmM3M1x1NmM5Mlx1NmM5MFx1NmNjNFx1NmNmMVx1NmNkM1x1NmNiZFx1NmNkN1x1NmNjNVx1NmNkZFx1NmNhZVx1NmNi''@;'; put 'put ''MVx1NmNiZVx1NmNiYVx1NmNkYlx1NmNlZlx1NmNkOVx1NmNlYVx1NmQxZlx1ODg0ZFx1NmQzNlx1NmQyYlx1NmQzZFx1NmQzOFx1NmQxOVx1NmQzNVx1NmQzM1x1NmQxMlx1NmQwY1x1NmQ2M1x1NmQ5M1x1NmQ2NFx1NmQ1YVx1NmQ3OVx1NmQ1OVx1NmQ4ZVx1NmQ5NVx1NmZlNFx1NmQ4NVx1''@;'; put 'put ''NmRmOVx1NmUxNVx1NmUwYVx1NmRiNVx1NmRjN1x1NmRlNlx1NmRiOFx1NmRjNlx1NmRlY1x1NmRkZVx1NmRjY1x1NmRlOFx1NmRkMlx1NmRjNVx1NmRmYVx1NmRkOVx1NmRlNFx1NmRkNVx1NmRlYVx1NmRlZVx1NmUyZFx1NmU2ZVx1NmUyZVx1NmUxOVx1NmU3Mlx1NmU1Zlx1NmUzZVx1NmUy''@;'; put 'put ''M1x1NmU2Ylx1NmUyYlx1NmU3Nlx1NmU0ZFx1NmUxZlx1NmU0M1x1NmUzYVx1NmU0ZVx1NmUyNFx1NmVmZlx1NmUxZFx1NmUzOFx1NmU4Mlx1NmVhYVx1NmU5OFx1NmVjOVx1NmViN1x1NmVkM1x1NmViZFx1NmVhZlx1NmVjNFx1NmViMlx1NmVkNFx1NmVkNVx1NmU4Zlx1NmVhNVx1NmVjMlx1''@;'; put 'put ''NmU5Zlx1NmY0MVx1NmYxMVx1NzA0Y1x1NmVlY1x1NmVmOFx1NmVmZVx1NmYzZlx1NmVmMlx1NmYzMVx1NmVlZlx1NmYzMlx1NmVjYyJdLFsiZTA0MCIsIlx1NmYzZVx1NmYxM1x1NmVmN1x1NmY4Nlx1NmY3YVx1NmY3OFx1NmY4MVx1NmY4MFx1NmY2Zlx1NmY1Ylx1NmZmM1x1NmY2ZFx1NmY4''@;'; put 'put ''Mlx1NmY3Y1x1NmY1OFx1NmY4ZVx1NmY5MVx1NmZjMlx1NmY2Nlx1NmZiM1x1NmZhM1x1NmZhMVx1NmZhNFx1NmZiOVx1NmZjNlx1NmZhYVx1NmZkZlx1NmZkNVx1NmZlY1x1NmZkNFx1NmZkOFx1NmZmMVx1NmZlZVx1NmZkYlx1NzAwOVx1NzAwYlx1NmZmYVx1NzAxMVx1NzAwMVx1NzAwZlx1''@;'; put 'put ''NmZmZVx1NzAxYlx1NzAxYVx1NmY3NFx1NzAxZFx1NzAxOFx1NzAxZlx1NzAzMFx1NzAzZVx1NzAzMlx1NzA1MVx1NzA2M1x1NzA5OVx1NzA5Mlx1NzBhZlx1NzBmMVx1NzBhY1x1NzBiOFx1NzBiM1x1NzBhZVx1NzBkZlx1NzBjYlx1NzBkZCJdLFsiZTA4MCIsIlx1NzBkOVx1NzEwOVx1NzBm''@;'; put 'put ''ZFx1NzExY1x1NzExOVx1NzE2NVx1NzE1NVx1NzE4OFx1NzE2Nlx1NzE2Mlx1NzE0Y1x1NzE1Nlx1NzE2Y1x1NzE4Zlx1NzFmYlx1NzE4NFx1NzE5NVx1NzFhOFx1NzFhY1x1NzFkN1x1NzFiOVx1NzFiZVx1NzFkMlx1NzFjOVx1NzFkNFx1NzFjZVx1NzFlMFx1NzFlY1x1NzFlN1x1NzFmNVx1''@;'; put 'put ''NzFmY1x1NzFmOVx1NzFmZlx1NzIwZFx1NzIxMFx1NzIxYlx1NzIyOFx1NzIyZFx1NzIyY1x1NzIzMFx1NzIzMlx1NzIzYlx1NzIzY1x1NzIzZlx1NzI0MFx1NzI0Nlx1NzI0Ylx1NzI1OFx1NzI3NFx1NzI3ZVx1NzI4Mlx1NzI4MVx1NzI4N1x1NzI5Mlx1NzI5Nlx1NzJhMlx1NzJhN1x1NzJi''@;'; put 'put ''OVx1NzJiMlx1NzJjM1x1NzJjNlx1NzJjNFx1NzJjZVx1NzJkMlx1NzJlMlx1NzJlMFx1NzJlMVx1NzJmOVx1NzJmN1x1NTAwZlx1NzMxN1x1NzMwYVx1NzMxY1x1NzMxNlx1NzMxZFx1NzMzNFx1NzMyZlx1NzMyOVx1NzMyNVx1NzMzZVx1NzM0ZVx1NzM0Zlx1OWVkOFx1NzM1N1x1NzM2YVx1''@;'; put 'put ''NzM2OFx1NzM3MFx1NzM3OFx1NzM3NVx1NzM3Ylx1NzM3YVx1NzNjOFx1NzNiM1x1NzNjZVx1NzNiYlx1NzNjMFx1NzNlNVx1NzNlZVx1NzNkZVx1NzRhMlx1NzQwNVx1NzQ2Zlx1NzQyNVx1NzNmOFx1NzQzMlx1NzQzYVx1NzQ1NVx1NzQzZlx1NzQ1Zlx1NzQ1OVx1NzQ0MVx1NzQ1Y1x1NzQ2''@;'; put 'put ''OVx1NzQ3MFx1NzQ2M1x1NzQ2YVx1NzQ3Nlx1NzQ3ZVx1NzQ4Ylx1NzQ5ZVx1NzRhN1x1NzRjYVx1NzRjZlx1NzRkNFx1NzNmMSJdLFsiZTE0MCIsIlx1NzRlMFx1NzRlM1x1NzRlN1x1NzRlOVx1NzRlZVx1NzRmMlx1NzRmMFx1NzRmMVx1NzRmOFx1NzRmN1x1NzUwNFx1NzUwM1x1NzUwNVx1''@;'; put 'put ''NzUwY1x1NzUwZVx1NzUwZFx1NzUxNVx1NzUxM1x1NzUxZVx1NzUyNlx1NzUyY1x1NzUzY1x1NzU0NFx1NzU0ZFx1NzU0YVx1NzU0OVx1NzU1Ylx1NzU0Nlx1NzU1YVx1NzU2OVx1NzU2NFx1NzU2N1x1NzU2Ylx1NzU2ZFx1NzU3OFx1NzU3Nlx1NzU4Nlx1NzU4N1x1NzU3NFx1NzU4YVx1NzU4''@;'; put 'put ''OVx1NzU4Mlx1NzU5NFx1NzU5YVx1NzU5ZFx1NzVhNVx1NzVhM1x1NzVjMlx1NzViM1x1NzVjM1x1NzViNVx1NzViZFx1NzViOFx1NzViY1x1NzViMVx1NzVjZFx1NzVjYVx1NzVkMlx1NzVkOVx1NzVlM1x1NzVkZVx1NzVmZVx1NzVmZiJdLFsiZTE4MCIsIlx1NzVmY1x1NzYwMVx1NzVmMFx1''@;'; put 'put ''NzVmYVx1NzVmMlx1NzVmM1x1NzYwYlx1NzYwZFx1NzYwOVx1NzYxZlx1NzYyN1x1NzYyMFx1NzYyMVx1NzYyMlx1NzYyNFx1NzYzNFx1NzYzMFx1NzYzYlx1NzY0N1x1NzY0OFx1NzY0Nlx1NzY1Y1x1NzY1OFx1NzY2MVx1NzY2Mlx1NzY2OFx1NzY2OVx1NzY2YVx1NzY2N1x1NzY2Y1x1NzY3''@;'; put 'put ''MFx1NzY3Mlx1NzY3Nlx1NzY3OFx1NzY3Y1x1NzY4MFx1NzY4M1x1NzY4OFx1NzY4Ylx1NzY4ZVx1NzY5Nlx1NzY5M1x1NzY5OVx1NzY5YVx1NzZiMFx1NzZiNFx1NzZiOFx1NzZiOVx1NzZiYVx1NzZjMlx1NzZjZFx1NzZkNlx1NzZkMlx1NzZkZVx1NzZlMVx1NzZlNVx1NzZlN1x1NzZlYVx1''@;'; put 'put ''ODYyZlx1NzZmYlx1NzcwOFx1NzcwN1x1NzcwNFx1NzcyOVx1NzcyNFx1NzcxZVx1NzcyNVx1NzcyNlx1NzcxYlx1NzczN1x1NzczOFx1Nzc0N1x1Nzc1YVx1Nzc2OFx1Nzc2Ylx1Nzc1Ylx1Nzc2NVx1Nzc3Zlx1Nzc3ZVx1Nzc3OVx1Nzc4ZVx1Nzc4Ylx1Nzc5MVx1NzdhMFx1Nzc5ZVx1Nzdi''@;'; put 'put ''MFx1NzdiNlx1NzdiOVx1NzdiZlx1NzdiY1x1NzdiZFx1NzdiYlx1NzdjN1x1NzdjZFx1NzdkN1x1NzdkYVx1NzdkY1x1NzdlM1x1NzdlZVx1NzdmY1x1NzgwY1x1NzgxMlx1NzkyNlx1NzgyMFx1NzkyYVx1Nzg0NVx1Nzg4ZVx1Nzg3NFx1Nzg4Nlx1Nzg3Y1x1Nzg5YVx1Nzg4Y1x1NzhhM1x1''@;'; put 'put ''NzhiNVx1NzhhYVx1NzhhZlx1NzhkMVx1NzhjNlx1NzhjYlx1NzhkNFx1NzhiZVx1NzhiY1x1NzhjNVx1NzhjYVx1NzhlYyJdLFsiZTI0MCIsIlx1NzhlN1x1NzhkYVx1NzhmZFx1NzhmNFx1NzkwN1x1NzkxMlx1NzkxMVx1NzkxOVx1NzkyY1x1NzkyYlx1Nzk0MFx1Nzk2MFx1Nzk1N1x1Nzk1''@;'; put 'put ''Zlx1Nzk1YVx1Nzk1NVx1Nzk1M1x1Nzk3YVx1Nzk3Zlx1Nzk4YVx1Nzk5ZFx1NzlhN1x1OWY0Ylx1NzlhYVx1NzlhZVx1NzliM1x1NzliOVx1NzliYVx1NzljOVx1NzlkNVx1NzllN1x1NzllY1x1NzllMVx1NzllM1x1N2EwOFx1N2EwZFx1N2ExOFx1N2ExOVx1N2EyMFx1N2ExZlx1Nzk4MFx1''@;'; put 'put ''N2EzMVx1N2EzYlx1N2EzZVx1N2EzN1x1N2E0M1x1N2E1N1x1N2E0OVx1N2E2MVx1N2E2Mlx1N2E2OVx1OWY5ZFx1N2E3MFx1N2E3OVx1N2E3ZFx1N2E4OFx1N2E5N1x1N2E5NVx1N2E5OFx1N2E5Nlx1N2FhOVx1N2FjOFx1N2FiMCJdLFsiZTI4MCIsIlx1N2FiNlx1N2FjNVx1N2FjNFx1N2Fi''@;'; put 'put ''Zlx1OTA4M1x1N2FjN1x1N2FjYVx1N2FjZFx1N2FjZlx1N2FkNVx1N2FkM1x1N2FkOVx1N2FkYVx1N2FkZFx1N2FlMVx1N2FlMlx1N2FlNlx1N2FlZFx1N2FmMFx1N2IwMlx1N2IwZlx1N2IwYVx1N2IwNlx1N2IzM1x1N2IxOFx1N2IxOVx1N2IxZVx1N2IzNVx1N2IyOFx1N2IzNlx1N2I1MFx1''@;'; put 'put ''N2I3YVx1N2IwNFx1N2I0ZFx1N2IwYlx1N2I0Y1x1N2I0NVx1N2I3NVx1N2I2NVx1N2I3NFx1N2I2N1x1N2I3MFx1N2I3MVx1N2I2Y1x1N2I2ZVx1N2I5ZFx1N2I5OFx1N2I5Zlx1N2I4ZFx1N2I5Y1x1N2I5YVx1N2I4Ylx1N2I5Mlx1N2I4Zlx1N2I1ZFx1N2I5OVx1N2JjYlx1N2JjMVx1N2Jj''@;'; put 'put ''Y1x1N2JjZlx1N2JiNFx1N2JjNlx1N2JkZFx1N2JlOVx1N2MxMVx1N2MxNFx1N2JlNlx1N2JlNVx1N2M2MFx1N2MwMFx1N2MwN1x1N2MxM1x1N2JmM1x1N2JmN1x1N2MxN1x1N2MwZFx1N2JmNlx1N2MyM1x1N2MyN1x1N2MyYVx1N2MxZlx1N2MzN1x1N2MyYlx1N2MzZFx1N2M0Y1x1N2M0M1x1''@;'; put 'put ''N2M1NFx1N2M0Zlx1N2M0MFx1N2M1MFx1N2M1OFx1N2M1Zlx1N2M2NFx1N2M1Nlx1N2M2NVx1N2M2Y1x1N2M3NVx1N2M4M1x1N2M5MFx1N2NhNFx1N2NhZFx1N2NhMlx1N2NhYlx1N2NhMVx1N2NhOFx1N2NiM1x1N2NiMlx1N2NiMVx1N2NhZVx1N2NiOVx1N2NiZFx1N2NjMFx1N2NjNVx1N2Nj''@;'; put 'put ''Mlx1N2NkOFx1N2NkMlx1N2NkY1x1N2NlMlx1OWIzYlx1N2NlZlx1N2NmMlx1N2NmNFx1N2NmNlx1N2NmYVx1N2QwNiJdLFsiZTM0MCIsIlx1N2QwMlx1N2QxY1x1N2QxNVx1N2QwYVx1N2Q0NVx1N2Q0Ylx1N2QyZVx1N2QzMlx1N2QzZlx1N2QzNVx1N2Q0Nlx1N2Q3M1x1N2Q1Nlx1N2Q0ZVx1''@;'; put 'put ''N2Q3Mlx1N2Q2OFx1N2Q2ZVx1N2Q0Zlx1N2Q2M1x1N2Q5M1x1N2Q4OVx1N2Q1Ylx1N2Q4Zlx1N2Q3ZFx1N2Q5Ylx1N2RiYVx1N2RhZVx1N2RhM1x1N2RiNVx1N2RjN1x1N2RiZFx1N2RhYlx1N2UzZFx1N2RhMlx1N2RhZlx1N2RkY1x1N2RiOFx1N2Q5Zlx1N2RiMFx1N2RkOFx1N2RkZFx1N2Rl''@;'; put 'put ''NFx1N2RkZVx1N2RmYlx1N2RmMlx1N2RlMVx1N2UwNVx1N2UwYVx1N2UyM1x1N2UyMVx1N2UxMlx1N2UzMVx1N2UxZlx1N2UwOVx1N2UwYlx1N2UyMlx1N2U0Nlx1N2U2Nlx1N2UzYlx1N2UzNVx1N2UzOVx1N2U0M1x1N2UzNyJdLFsiZTM4MCIsIlx1N2UzMlx1N2UzYVx1N2U2N1x1N2U1ZFx1''@;'; put 'put ''N2U1Nlx1N2U1ZVx1N2U1OVx1N2U1YVx1N2U3OVx1N2U2YVx1N2U2OVx1N2U3Y1x1N2U3Ylx1N2U4M1x1N2RkNVx1N2U3ZFx1OGZhZVx1N2U3Zlx1N2U4OFx1N2U4OVx1N2U4Y1x1N2U5Mlx1N2U5MFx1N2U5M1x1N2U5NFx1N2U5Nlx1N2U4ZVx1N2U5Ylx1N2U5Y1x1N2YzOFx1N2YzYVx1N2Y0''@;'; put 'put ''NVx1N2Y0Y1x1N2Y0ZFx1N2Y0ZVx1N2Y1MFx1N2Y1MVx1N2Y1NVx1N2Y1NFx1N2Y1OFx1N2Y1Zlx1N2Y2MFx1N2Y2OFx1N2Y2OVx1N2Y2N1x1N2Y3OFx1N2Y4Mlx1N2Y4Nlx1N2Y4M1x1N2Y4OFx1N2Y4N1x1N2Y4Y1x1N2Y5NFx1N2Y5ZVx1N2Y5ZFx1N2Y5YVx1N2ZhM1x1N2ZhZlx1N2ZiMlx1''@;'; put 'put ''N2ZiOVx1N2ZhZVx1N2ZiNlx1N2ZiOFx1OGI3MVx1N2ZjNVx1N2ZjNlx1N2ZjYVx1N2ZkNVx1N2ZkNFx1N2ZlMVx1N2ZlNlx1N2ZlOVx1N2ZmM1x1N2ZmOVx1OThkY1x1ODAwNlx1ODAwNFx1ODAwYlx1ODAxMlx1ODAxOFx1ODAxOVx1ODAxY1x1ODAyMVx1ODAyOFx1ODAzZlx1ODAzYlx1ODA0''@;'; put 'put ''YVx1ODA0Nlx1ODA1Mlx1ODA1OFx1ODA1YVx1ODA1Zlx1ODA2Mlx1ODA2OFx1ODA3M1x1ODA3Mlx1ODA3MFx1ODA3Nlx1ODA3OVx1ODA3ZFx1ODA3Zlx1ODA4NFx1ODA4Nlx1ODA4NVx1ODA5Ylx1ODA5M1x1ODA5YVx1ODBhZFx1NTE5MFx1ODBhY1x1ODBkYlx1ODBlNVx1ODBkOVx1ODBkZFx1''@;'; put 'put ''ODBjNFx1ODBkYVx1ODBkNlx1ODEwOVx1ODBlZlx1ODBmMVx1ODExYlx1ODEyOVx1ODEyM1x1ODEyZlx1ODE0YiJdLFsiZTQ0MCIsIlx1OTY4Ylx1ODE0Nlx1ODEzZVx1ODE1M1x1ODE1MVx1ODBmY1x1ODE3MVx1ODE2ZVx1ODE2NVx1ODE2Nlx1ODE3NFx1ODE4M1x1ODE4OFx1ODE4YVx1ODE4''@;'; put 'put ''MFx1ODE4Mlx1ODFhMFx1ODE5NVx1ODFhNFx1ODFhM1x1ODE1Zlx1ODE5M1x1ODFhOVx1ODFiMFx1ODFiNVx1ODFiZVx1ODFiOFx1ODFiZFx1ODFjMFx1ODFjMlx1ODFiYVx1ODFjOVx1ODFjZFx1ODFkMVx1ODFkOVx1ODFkOFx1ODFjOFx1ODFkYVx1ODFkZlx1ODFlMFx1ODFlN1x1ODFmYVx1''@;'; put 'put ''ODFmYlx1ODFmZVx1ODIwMVx1ODIwMlx1ODIwNVx1ODIwN1x1ODIwYVx1ODIwZFx1ODIxMFx1ODIxNlx1ODIyOVx1ODIyYlx1ODIzOFx1ODIzM1x1ODI0MFx1ODI1OVx1ODI1OFx1ODI1ZFx1ODI1YVx1ODI1Zlx1ODI2NCJdLFsiZTQ4MCIsIlx1ODI2Mlx1ODI2OFx1ODI2YVx1ODI2Ylx1ODIy''@;'; put 'put ''ZVx1ODI3MVx1ODI3N1x1ODI3OFx1ODI3ZVx1ODI4ZFx1ODI5Mlx1ODJhYlx1ODI5Zlx1ODJiYlx1ODJhY1x1ODJlMVx1ODJlM1x1ODJkZlx1ODJkMlx1ODJmNFx1ODJmM1x1ODJmYVx1ODM5M1x1ODMwM1x1ODJmYlx1ODJmOVx1ODJkZVx1ODMwNlx1ODJkY1x1ODMwOVx1ODJkOVx1ODMzNVx1''@;'; put 'put ''ODMzNFx1ODMxNlx1ODMzMlx1ODMzMVx1ODM0MFx1ODMzOVx1ODM1MFx1ODM0NVx1ODMyZlx1ODMyYlx1ODMxN1x1ODMxOFx1ODM4NVx1ODM5YVx1ODNhYVx1ODM5Zlx1ODNhMlx1ODM5Nlx1ODMyM1x1ODM4ZVx1ODM4N1x1ODM4YVx1ODM3Y1x1ODNiNVx1ODM3M1x1ODM3NVx1ODNhMFx1ODM4''@;'; put 'put ''OVx1ODNhOFx1ODNmNFx1ODQxM1x1ODNlYlx1ODNjZVx1ODNmZFx1ODQwM1x1ODNkOFx1ODQwYlx1ODNjMVx1ODNmN1x1ODQwN1x1ODNlMFx1ODNmMlx1ODQwZFx1ODQyMlx1ODQyMFx1ODNiZFx1ODQzOFx1ODUwNlx1ODNmYlx1ODQ2ZFx1ODQyYVx1ODQzY1x1ODU1YVx1ODQ4NFx1ODQ3N1x1''@;'; put 'put ''ODQ2Ylx1ODRhZFx1ODQ2ZVx1ODQ4Mlx1ODQ2OVx1ODQ0Nlx1ODQyY1x1ODQ2Zlx1ODQ3OVx1ODQzNVx1ODRjYVx1ODQ2Mlx1ODRiOVx1ODRiZlx1ODQ5Zlx1ODRkOVx1ODRjZFx1ODRiYlx1ODRkYVx1ODRkMFx1ODRjMVx1ODRjNlx1ODRkNlx1ODRhMVx1ODUyMVx1ODRmZlx1ODRmNFx1ODUx''@;'; put 'put ''N1x1ODUxOFx1ODUyY1x1ODUxZlx1ODUxNVx1ODUxNFx1ODRmY1x1ODU0MFx1ODU2M1x1ODU1OFx1ODU0OCJdLFsiZTU0MCIsIlx1ODU0MVx1ODYwMlx1ODU0Ylx1ODU1NVx1ODU4MFx1ODVhNFx1ODU4OFx1ODU5MVx1ODU4YVx1ODVhOFx1ODU2ZFx1ODU5NFx1ODU5Ylx1ODVlYVx1ODU4N1x1''@;'; put 'put ''ODU5Y1x1ODU3N1x1ODU3ZVx1ODU5MFx1ODVjOVx1ODViYVx1ODVjZlx1ODViOVx1ODVkMFx1ODVkNVx1ODVkZFx1ODVlNVx1ODVkY1x1ODVmOVx1ODYwYVx1ODYxM1x1ODYwYlx1ODVmZVx1ODVmYVx1ODYwNlx1ODYyMlx1ODYxYVx1ODYzMFx1ODYzZlx1ODY0ZFx1NGU1NVx1ODY1NFx1ODY1''@;'; put 'put ''Zlx1ODY2N1x1ODY3MVx1ODY5M1x1ODZhM1x1ODZhOVx1ODZhYVx1ODY4Ylx1ODY4Y1x1ODZiNlx1ODZhZlx1ODZjNFx1ODZjNlx1ODZiMFx1ODZjOVx1ODgyM1x1ODZhYlx1ODZkNFx1ODZkZVx1ODZlOVx1ODZlYyJdLFsiZTU4MCIsIlx1ODZkZlx1ODZkYlx1ODZlZlx1ODcxMlx1ODcwNlx1''@;'; put 'put ''ODcwOFx1ODcwMFx1ODcwM1x1ODZmYlx1ODcxMVx1ODcwOVx1ODcwZFx1ODZmOVx1ODcwYVx1ODczNFx1ODczZlx1ODczN1x1ODczYlx1ODcyNVx1ODcyOVx1ODcxYVx1ODc2MFx1ODc1Zlx1ODc3OFx1ODc0Y1x1ODc0ZVx1ODc3NFx1ODc1N1x1ODc2OFx1ODc2ZVx1ODc1OVx1ODc1M1x1ODc2''@;'; put 'put ''M1x1ODc2YVx1ODgwNVx1ODdhMlx1ODc5Zlx1ODc4Mlx1ODdhZlx1ODdjYlx1ODdiZFx1ODdjMFx1ODdkMFx1OTZkNlx1ODdhYlx1ODdjNFx1ODdiM1x1ODdjN1x1ODdjNlx1ODdiYlx1ODdlZlx1ODdmMlx1ODdlMFx1ODgwZlx1ODgwZFx1ODdmZVx1ODdmNlx1ODdmN1x1ODgwZVx1ODdkMlx1''@;'; put 'put ''ODgxMVx1ODgxNlx1ODgxNVx1ODgyMlx1ODgyMVx1ODgzMVx1ODgzNlx1ODgzOVx1ODgyN1x1ODgzYlx1ODg0NFx1ODg0Mlx1ODg1Mlx1ODg1OVx1ODg1ZVx1ODg2Mlx1ODg2Ylx1ODg4MVx1ODg3ZVx1ODg5ZVx1ODg3NVx1ODg3ZFx1ODhiNVx1ODg3Mlx1ODg4Mlx1ODg5N1x1ODg5Mlx1ODhh''@;'; put 'put ''ZVx1ODg5OVx1ODhhMlx1ODg4ZFx1ODhhNFx1ODhiMFx1ODhiZlx1ODhiMVx1ODhjM1x1ODhjNFx1ODhkNFx1ODhkOFx1ODhkOVx1ODhkZFx1ODhmOVx1ODkwMlx1ODhmY1x1ODhmNFx1ODhlOFx1ODhmMlx1ODkwNFx1ODkwY1x1ODkwYVx1ODkxM1x1ODk0M1x1ODkxZVx1ODkyNVx1ODkyYVx1''@;'; put 'put ''ODkyYlx1ODk0MVx1ODk0NFx1ODkzYlx1ODkzNlx1ODkzOFx1ODk0Y1x1ODkxZFx1ODk2MFx1ODk1ZSJdLFsiZTY0MCIsIlx1ODk2Nlx1ODk2NFx1ODk2ZFx1ODk2YVx1ODk2Zlx1ODk3NFx1ODk3N1x1ODk3ZVx1ODk4M1x1ODk4OFx1ODk4YVx1ODk5M1x1ODk5OFx1ODlhMVx1ODlhOVx1ODlh''@;'; put 'put ''Nlx1ODlhY1x1ODlhZlx1ODliMlx1ODliYVx1ODliZFx1ODliZlx1ODljMFx1ODlkYVx1ODlkY1x1ODlkZFx1ODllN1x1ODlmNFx1ODlmOFx1OGEwM1x1OGExNlx1OGExMFx1OGEwY1x1OGExYlx1OGExZFx1OGEyNVx1OGEzNlx1OGE0MVx1OGE1Ylx1OGE1Mlx1OGE0Nlx1OGE0OFx1OGE3Y1x1''@;'; put 'put ''OGE2ZFx1OGE2Y1x1OGE2Mlx1OGE4NVx1OGE4Mlx1OGE4NFx1OGFhOFx1OGFhMVx1OGE5MVx1OGFhNVx1OGFhNlx1OGE5YVx1OGFhM1x1OGFjNFx1OGFjZFx1OGFjMlx1OGFkYVx1OGFlYlx1OGFmM1x1OGFlNyJdLFsiZTY4MCIsIlx1OGFlNFx1OGFmMVx1OGIxNFx1OGFlMFx1OGFlMlx1OGFm''@;'; put 'put ''N1x1OGFkZVx1OGFkYlx1OGIwY1x1OGIwN1x1OGIxYVx1OGFlMVx1OGIxNlx1OGIxMFx1OGIxN1x1OGIyMFx1OGIzM1x1OTdhYlx1OGIyNlx1OGIyYlx1OGIzZVx1OGIyOFx1OGI0MVx1OGI0Y1x1OGI0Zlx1OGI0ZVx1OGI0OVx1OGI1Nlx1OGI1Ylx1OGI1YVx1OGI2Ylx1OGI1Zlx1OGI2Y1x1''@;'; put 'put ''OGI2Zlx1OGI3NFx1OGI3ZFx1OGI4MFx1OGI4Y1x1OGI4ZVx1OGI5Mlx1OGI5M1x1OGI5Nlx1OGI5OVx1OGI5YVx1OGMzYVx1OGM0MVx1OGMzZlx1OGM0OFx1OGM0Y1x1OGM0ZVx1OGM1MFx1OGM1NVx1OGM2Mlx1OGM2Y1x1OGM3OFx1OGM3YVx1OGM4Mlx1OGM4OVx1OGM4NVx1OGM4YVx1OGM4''@;'; put 'put ''ZFx1OGM4ZVx1OGM5NFx1OGM3Y1x1OGM5OFx1NjIxZFx1OGNhZFx1OGNhYVx1OGNiZFx1OGNiMlx1OGNiM1x1OGNhZVx1OGNiNlx1OGNjOFx1OGNjMVx1OGNlNFx1OGNlM1x1OGNkYVx1OGNmZFx1OGNmYVx1OGNmYlx1OGQwNFx1OGQwNVx1OGQwYVx1OGQwN1x1OGQwZlx1OGQwZFx1OGQxMFx1''@;'; put 'put ''OWY0ZVx1OGQxM1x1OGNjZFx1OGQxNFx1OGQxNlx1OGQ2N1x1OGQ2ZFx1OGQ3MVx1OGQ3M1x1OGQ4MVx1OGQ5OVx1OGRjMlx1OGRiZVx1OGRiYVx1OGRjZlx1OGRkYVx1OGRkNlx1OGRjY1x1OGRkYlx1OGRjYlx1OGRlYVx1OGRlYlx1OGRkZlx1OGRlM1x1OGRmY1x1OGUwOFx1OGUwOVx1OGRm''@;'; put 'put ''Zlx1OGUxZFx1OGUxZVx1OGUxMFx1OGUxZlx1OGU0Mlx1OGUzNVx1OGUzMFx1OGUzNFx1OGU0YSJdLFsiZTc0MCIsIlx1OGU0N1x1OGU0OVx1OGU0Y1x1OGU1MFx1OGU0OFx1OGU1OVx1OGU2NFx1OGU2MFx1OGUyYVx1OGU2M1x1OGU1NVx1OGU3Nlx1OGU3Mlx1OGU3Y1x1OGU4MVx1OGU4N1x1''@;'; put 'put ''OGU4NVx1OGU4NFx1OGU4Ylx1OGU4YVx1OGU5M1x1OGU5MVx1OGU5NFx1OGU5OVx1OGVhYVx1OGVhMVx1OGVhY1x1OGViMFx1OGVjNlx1OGViMVx1OGViZVx1OGVjNVx1OGVjOFx1OGVjYlx1OGVkYlx1OGVlM1x1OGVmY1x1OGVmYlx1OGVlYlx1OGVmZVx1OGYwYVx1OGYwNVx1OGYxNVx1OGYx''@;'; put 'put ''Mlx1OGYxOVx1OGYxM1x1OGYxY1x1OGYxZlx1OGYxYlx1OGYwY1x1OGYyNlx1OGYzM1x1OGYzYlx1OGYzOVx1OGY0NVx1OGY0Mlx1OGYzZVx1OGY0Y1x1OGY0OVx1OGY0Nlx1OGY0ZVx1OGY1N1x1OGY1YyJdLFsiZTc4MCIsIlx1OGY2Mlx1OGY2M1x1OGY2NFx1OGY5Y1x1OGY5Zlx1OGZhM1x1''@;'; put 'put ''OGZhZFx1OGZhZlx1OGZiN1x1OGZkYVx1OGZlNVx1OGZlMlx1OGZlYVx1OGZlZlx1OTA4N1x1OGZmNFx1OTAwNVx1OGZmOVx1OGZmYVx1OTAxMVx1OTAxNVx1OTAyMVx1OTAwZFx1OTAxZVx1OTAxNlx1OTAwYlx1OTAyN1x1OTAzNlx1OTAzNVx1OTAzOVx1OGZmOFx1OTA0Zlx1OTA1MFx1OTA1''@;'; put 'put ''MVx1OTA1Mlx1OTAwZVx1OTA0OVx1OTAzZVx1OTA1Nlx1OTA1OFx1OTA1ZVx1OTA2OFx1OTA2Zlx1OTA3Nlx1OTZhOFx1OTA3Mlx1OTA4Mlx1OTA3ZFx1OTA4MVx1OTA4MFx1OTA4YVx1OTA4OVx1OTA4Zlx1OTBhOFx1OTBhZlx1OTBiMVx1OTBiNVx1OTBlMlx1OTBlNFx1NjI0OFx1OTBkYlx1''@;'; put 'put ''OTEwMlx1OTExMlx1OTExOVx1OTEzMlx1OTEzMFx1OTE0YVx1OTE1Nlx1OTE1OFx1OTE2M1x1OTE2NVx1OTE2OVx1OTE3M1x1OTE3Mlx1OTE4Ylx1OTE4OVx1OTE4Mlx1OTFhMlx1OTFhYlx1OTFhZlx1OTFhYVx1OTFiNVx1OTFiNFx1OTFiYVx1OTFjMFx1OTFjMVx1OTFjOVx1OTFjYlx1OTFk''@;'; put 'put ''MFx1OTFkNlx1OTFkZlx1OTFlMVx1OTFkYlx1OTFmY1x1OTFmNVx1OTFmNlx1OTIxZVx1OTFmZlx1OTIxNFx1OTIyY1x1OTIxNVx1OTIxMVx1OTI1ZVx1OTI1N1x1OTI0NVx1OTI0OVx1OTI2NFx1OTI0OFx1OTI5NVx1OTIzZlx1OTI0Ylx1OTI1MFx1OTI5Y1x1OTI5Nlx1OTI5M1x1OTI5Ylx1''@;'; put 'put ''OTI1YVx1OTJjZlx1OTJiOVx1OTJiN1x1OTJlOVx1OTMwZlx1OTJmYVx1OTM0NFx1OTMyZSJdLFsiZTg0MCIsIlx1OTMxOVx1OTMyMlx1OTMxYVx1OTMyM1x1OTMzYVx1OTMzNVx1OTMzYlx1OTM1Y1x1OTM2MFx1OTM3Y1x1OTM2ZVx1OTM1Nlx1OTNiMFx1OTNhY1x1OTNhZFx1OTM5NFx1OTNi''@;'; put 'put ''OVx1OTNkNlx1OTNkN1x1OTNlOFx1OTNlNVx1OTNkOFx1OTNjM1x1OTNkZFx1OTNkMFx1OTNjOFx1OTNlNFx1OTQxYVx1OTQxNFx1OTQxM1x1OTQwM1x1OTQwN1x1OTQxMFx1OTQzNlx1OTQyYlx1OTQzNVx1OTQyMVx1OTQzYVx1OTQ0MVx1OTQ1Mlx1OTQ0NFx1OTQ1Ylx1OTQ2MFx1OTQ2Mlx1''@;'; put 'put ''OTQ1ZVx1OTQ2YVx1OTIyOVx1OTQ3MFx1OTQ3NVx1OTQ3N1x1OTQ3ZFx1OTQ1YVx1OTQ3Y1x1OTQ3ZVx1OTQ4MVx1OTQ3Zlx1OTU4Mlx1OTU4N1x1OTU4YVx1OTU5NFx1OTU5Nlx1OTU5OFx1OTU5OSJdLFsiZTg4MCIsIlx1OTVhMFx1OTVhOFx1OTVhN1x1OTVhZFx1OTViY1x1OTViYlx1OTVi''@;'; put 'put ''OVx1OTViZVx1OTVjYVx1NmZmNlx1OTVjM1x1OTVjZFx1OTVjY1x1OTVkNVx1OTVkNFx1OTVkNlx1OTVkY1x1OTVlMVx1OTVlNVx1OTVlMlx1OTYyMVx1OTYyOFx1OTYyZVx1OTYyZlx1OTY0Mlx1OTY0Y1x1OTY0Zlx1OTY0Ylx1OTY3N1x1OTY1Y1x1OTY1ZVx1OTY1ZFx1OTY1Zlx1OTY2Nlx1''@;'; put 'put ''OTY3Mlx1OTY2Y1x1OTY4ZFx1OTY5OFx1OTY5NVx1OTY5N1x1OTZhYVx1OTZhN1x1OTZiMVx1OTZiMlx1OTZiMFx1OTZiNFx1OTZiNlx1OTZiOFx1OTZiOVx1OTZjZVx1OTZjYlx1OTZjOVx1OTZjZFx1ODk0ZFx1OTZkY1x1OTcwZFx1OTZkNVx1OTZmOVx1OTcwNFx1OTcwNlx1OTcwOFx1OTcx''@;'; put 'put ''M1x1OTcwZVx1OTcxMVx1OTcwZlx1OTcxNlx1OTcxOVx1OTcyNFx1OTcyYVx1OTczMFx1OTczOVx1OTczZFx1OTczZVx1OTc0NFx1OTc0Nlx1OTc0OFx1OTc0Mlx1OTc0OVx1OTc1Y1x1OTc2MFx1OTc2NFx1OTc2Nlx1OTc2OFx1NTJkMlx1OTc2Ylx1OTc3MVx1OTc3OVx1OTc4NVx1OTc3Y1x1''@;'; put 'put ''OTc4MVx1OTc3YVx1OTc4Nlx1OTc4Ylx1OTc4Zlx1OTc5MFx1OTc5Y1x1OTdhOFx1OTdhNlx1OTdhM1x1OTdiM1x1OTdiNFx1OTdjM1x1OTdjNlx1OTdjOFx1OTdjYlx1OTdkY1x1OTdlZFx1OWY0Zlx1OTdmMlx1N2FkZlx1OTdmNlx1OTdmNVx1OTgwZlx1OTgwY1x1OTgzOFx1OTgyNFx1OTgy''@;'; put 'put ''MVx1OTgzN1x1OTgzZFx1OTg0Nlx1OTg0Zlx1OTg0Ylx1OTg2Ylx1OTg2Zlx1OTg3MCJdLFsiZTk0MCIsIlx1OTg3MVx1OTg3NFx1OTg3M1x1OThhYVx1OThhZlx1OThiMVx1OThiNlx1OThjNFx1OThjM1x1OThjNlx1OThlOVx1OThlYlx1OTkwM1x1OTkwOVx1OTkxMlx1OTkxNFx1OTkxOFx1''@;'; put 'put ''OTkyMVx1OTkxZFx1OTkxZVx1OTkyNFx1OTkyMFx1OTkyY1x1OTkyZVx1OTkzZFx1OTkzZVx1OTk0Mlx1OTk0OVx1OTk0NVx1OTk1MFx1OTk0Ylx1OTk1MVx1OTk1Mlx1OTk0Y1x1OTk1NVx1OTk5N1x1OTk5OFx1OTlhNVx1OTlhZFx1OTlhZVx1OTliY1x1OTlkZlx1OTlkYlx1OTlkZFx1OTlk''@;'; put 'put ''OFx1OTlkMVx1OTllZFx1OTllZVx1OTlmMVx1OTlmMlx1OTlmYlx1OTlmOFx1OWEwMVx1OWEwZlx1OWEwNVx1OTllMlx1OWExOVx1OWEyYlx1OWEzN1x1OWE0NVx1OWE0Mlx1OWE0MFx1OWE0MyJdLFsiZTk4MCIsIlx1OWEzZVx1OWE1NVx1OWE0ZFx1OWE1Ylx1OWE1N1x1OWE1Zlx1OWE2Mlx1''@;'; put 'put ''OWE2NVx1OWE2NFx1OWE2OVx1OWE2Ylx1OWE2YVx1OWFhZFx1OWFiMFx1OWFiY1x1OWFjMFx1OWFjZlx1OWFkMVx1OWFkM1x1OWFkNFx1OWFkZVx1OWFkZlx1OWFlMlx1OWFlM1x1OWFlNlx1OWFlZlx1OWFlYlx1OWFlZVx1OWFmNFx1OWFmMVx1OWFmN1x1OWFmYlx1OWIwNlx1OWIxOFx1OWIx''@;'; put 'put ''YVx1OWIxZlx1OWIyMlx1OWIyM1x1OWIyNVx1OWIyN1x1OWIyOFx1OWIyOVx1OWIyYVx1OWIyZVx1OWIyZlx1OWIzMlx1OWI0NFx1OWI0M1x1OWI0Zlx1OWI0ZFx1OWI0ZVx1OWI1MVx1OWI1OFx1OWI3NFx1OWI5M1x1OWI4M1x1OWI5MVx1OWI5Nlx1OWI5N1x1OWI5Zlx1OWJhMFx1OWJhOFx1''@;'; put 'put ''OWJiNFx1OWJjMFx1OWJjYVx1OWJiOVx1OWJjNlx1OWJjZlx1OWJkMVx1OWJkMlx1OWJlM1x1OWJlMlx1OWJlNFx1OWJkNFx1OWJlMVx1OWMzYVx1OWJmMlx1OWJmMVx1OWJmMFx1OWMxNVx1OWMxNFx1OWMwOVx1OWMxM1x1OWMwY1x1OWMwNlx1OWMwOFx1OWMxMlx1OWMwYVx1OWMwNFx1OWMy''@;'; put 'put ''ZVx1OWMxYlx1OWMyNVx1OWMyNFx1OWMyMVx1OWMzMFx1OWM0N1x1OWMzMlx1OWM0Nlx1OWMzZVx1OWM1YVx1OWM2MFx1OWM2N1x1OWM3Nlx1OWM3OFx1OWNlN1x1OWNlY1x1OWNmMFx1OWQwOVx1OWQwOFx1OWNlYlx1OWQwM1x1OWQwNlx1OWQyYVx1OWQyNlx1OWRhZlx1OWQyM1x1OWQxZlx1''@;'; put 'put ''OWQ0NFx1OWQxNVx1OWQxMlx1OWQ0MVx1OWQzZlx1OWQzZVx1OWQ0Nlx1OWQ0OCJdLFsiZWE0MCIsIlx1OWQ1ZFx1OWQ1ZVx1OWQ2NFx1OWQ1MVx1OWQ1MFx1OWQ1OVx1OWQ3Mlx1OWQ4OVx1OWQ4N1x1OWRhYlx1OWQ2Zlx1OWQ3YVx1OWQ5YVx1OWRhNFx1OWRhOVx1OWRiMlx1OWRjNFx1OWRj''@;'; put 'put ''MVx1OWRiYlx1OWRiOFx1OWRiYVx1OWRjNlx1OWRjZlx1OWRjMlx1OWRkOVx1OWRkM1x1OWRmOFx1OWRlNlx1OWRlZFx1OWRlZlx1OWRmZFx1OWUxYVx1OWUxYlx1OWUxZVx1OWU3NVx1OWU3OVx1OWU3ZFx1OWU4MVx1OWU4OFx1OWU4Ylx1OWU4Y1x1OWU5Mlx1OWU5NVx1OWU5MVx1OWU5ZFx1''@;'; put 'put ''OWVhNVx1OWVhOVx1OWViOFx1OWVhYVx1OWVhZFx1OTc2MVx1OWVjY1x1OWVjZVx1OWVjZlx1OWVkMFx1OWVkNFx1OWVkY1x1OWVkZVx1OWVkZFx1OWVlMFx1OWVlNVx1OWVlOFx1OWVlZiJdLFsiZWE4MCIsIlx1OWVmNFx1OWVmNlx1OWVmN1x1OWVmOVx1OWVmYlx1OWVmY1x1OWVmZFx1OWYw''@;'; put 'put ''N1x1OWYwOFx1NzZiN1x1OWYxNVx1OWYyMVx1OWYyY1x1OWYzZVx1OWY0YVx1OWY1Mlx1OWY1NFx1OWY2M1x1OWY1Zlx1OWY2MFx1OWY2MVx1OWY2Nlx1OWY2N1x1OWY2Y1x1OWY2YVx1OWY3N1x1OWY3Mlx1OWY3Nlx1OWY5NVx1OWY5Y1x1OWZhMFx1NTgyZlx1NjljN1x1OTA1OVx1NzQ2NFx1''@;'; put 'put ''NTFkY1x1NzE5OSJdLFsiZWQ0MCIsIlx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1NjhjOFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZj''@;'; put 'put ''ZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YVx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1''@;'; put 'put ''ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdjN1x1ZmEwZiJdLFsiZWQ4MCIsIlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJk''@;'; put 'put ''OFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1''@;'; put 'put ''NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYwOVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1Zjky''@;'; put 'put ''OVx1Njc2Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1''@;'; put 'put ''NmQ2Zlx1NmQ5Nlx1NmRhY1x1NmRjZlx1NmRmOFx1NmRmMlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUzY1x1NmViZlx1NmY4OFx1NmZiNVx1NmZmNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFjMVx1NzFm''@;'; put 'put ''ZVx1NzJiMSJdLFsiZWU0MCIsIlx1NzJiZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1''@;'; put 'put ''NzZhNlx1ZmExN1x1Nzc0Nlx1NTJhZlx1NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOVx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0''@;'; put 'put ''N1x1N2ZhMVx1ZmExZVx1ODMwMVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1ODU1OSJdLFsiZWU4MCIsIlx1ODU2Ylx1ZmExZlx1ODViMFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1''@;'; put 'put ''OGFmNlx1OGI1M1x1OGI3Zlx1OGNmMFx1OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBkZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0''@;'; put 'put ''MFx1OTIzY1x1OTI0ZVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1''@;'; put 'put ''OTNhNFx1OTNjNlx1OTNkZVx1OTNmOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTczM1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFk''@;'; put 'put ''OVx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1OWUxOVx1OWVkMSJdLFsiZWVlZiIsIlx1MjE3MCIsOSwiXHVmZmUyXHVmZmU0XHVmZjA3XHVmZjAyIl0sWyJmMDQwIiwiXHVlMDAwIiw2Ml0sWyJmMDgwIiwiXHVlMDNmIiwxMjRd''@;'; put 'put ''LFsiZjE0MCIsIlx1ZTBiYyIsNjJdLFsiZjE4MCIsIlx1ZTBmYiIsMTI0XSxbImYyNDAiLCJcdWUxNzgiLDYyXSxbImYyODAiLCJcdWUxYjciLDEyNF0sWyJmMzQwIiwiXHVlMjM0Iiw2Ml0sWyJmMzgwIiwiXHVlMjczIiwxMjRdLFsiZjQ0MCIsIlx1ZTJmMCIsNjJdLFsiZjQ4MCIsIlx1ZTMy''@;'; put 'put ''ZiIsMTI0XSxbImY1NDAiLCJcdWUzYWMiLDYyXSxbImY1ODAiLCJcdWUzZWIiLDEyNF0sWyJmNjQwIiwiXHVlNDY4Iiw2Ml0sWyJmNjgwIiwiXHVlNGE3IiwxMjRdLFsiZjc0MCIsIlx1ZTUyNCIsNjJdLFsiZjc4MCIsIlx1ZTU2MyIsMTI0XSxbImY4NDAiLCJcdWU1ZTAiLDYyXSxbImY4ODAi''@;'; put 'put ''LCJcdWU2MWYiLDEyNF0sWyJmOTQwIiwiXHVlNjljIl0sWyJmYTQwIiwiXHUyMTcwIiw5LCJcdTIxNjAiLDksIlx1ZmZlMlx1ZmZlNFx1ZmYwN1x1ZmYwMlx1MzIzMVx1MjExNlx1MjEyMVx1MjIzNVx1N2U4YVx1ODkxY1x1OTM0OFx1OTI4OFx1ODRkY1x1NGZjOVx1NzBiYlx1NjYzMVx1Njhj''@;'; put 'put ''OFx1OTJmOVx1NjZmYlx1NWY0NVx1NGUyOFx1NGVlMVx1NGVmY1x1NGYwMFx1NGYwM1x1NGYzOVx1NGY1Nlx1NGY5Mlx1NGY4YVx1NGY5YVx1NGY5NFx1NGZjZFx1NTA0MFx1NTAyMlx1NGZmZlx1NTAxZVx1NTA0Nlx1NTA3MFx1NTA0Mlx1NTA5NFx1NTBmNFx1NTBkOFx1NTE0YSJdLFsiZmE4''@;'; put 'put ''MCIsIlx1NTE2NFx1NTE5ZFx1NTFiZVx1NTFlY1x1NTIxNVx1NTI5Y1x1NTJhNlx1NTJjMFx1NTJkYlx1NTMwMFx1NTMwN1x1NTMyNFx1NTM3Mlx1NTM5M1x1NTNiMlx1NTNkZFx1ZmEwZVx1NTQ5Y1x1NTQ4YVx1NTRhOVx1NTRmZlx1NTU4Nlx1NTc1OVx1NTc2NVx1NTdhY1x1NTdjOFx1NTdj''@;'; put 'put ''N1x1ZmEwZlx1ZmExMFx1NTg5ZVx1NThiMlx1NTkwYlx1NTk1M1x1NTk1Ylx1NTk1ZFx1NTk2M1x1NTlhNFx1NTliYVx1NWI1Nlx1NWJjMFx1NzUyZlx1NWJkOFx1NWJlY1x1NWMxZVx1NWNhNlx1NWNiYVx1NWNmNVx1NWQyN1x1NWQ1M1x1ZmExMVx1NWQ0Mlx1NWQ2ZFx1NWRiOFx1NWRiOVx1''@;'; put 'put ''NWRkMFx1NWYyMVx1NWYzNFx1NWY2N1x1NWZiN1x1NWZkZVx1NjA1ZFx1NjA4NVx1NjA4YVx1NjBkZVx1NjBkNVx1NjEyMFx1NjBmMlx1NjExMVx1NjEzN1x1NjEzMFx1NjE5OFx1NjIxM1x1NjJhNlx1NjNmNVx1NjQ2MFx1NjQ5ZFx1NjRjZVx1NjU0ZVx1NjYwMFx1NjYxNVx1NjYzYlx1NjYw''@;'; put 'put ''OVx1NjYyZVx1NjYxZVx1NjYyNFx1NjY2NVx1NjY1N1x1NjY1OVx1ZmExMlx1NjY3M1x1NjY5OVx1NjZhMFx1NjZiMlx1NjZiZlx1NjZmYVx1NjcwZVx1ZjkyOVx1Njc2Nlx1NjdiYlx1Njg1Mlx1NjdjMFx1NjgwMVx1Njg0NFx1NjhjZlx1ZmExM1x1Njk2OFx1ZmExNFx1Njk5OFx1NjllMlx1''@;'; put 'put ''NmEzMFx1NmE2Ylx1NmE0Nlx1NmE3M1x1NmE3ZVx1NmFlMlx1NmFlNFx1NmJkNlx1NmMzZlx1NmM1Y1x1NmM4Nlx1NmM2Zlx1NmNkYVx1NmQwNFx1NmQ4N1x1NmQ2ZiJdLFsiZmI0MCIsIlx1NmQ5Nlx1NmRhY1x1NmRjZlx1NmRmOFx1NmRmMlx1NmRmY1x1NmUzOVx1NmU1Y1x1NmUyN1x1NmUz''@;'; put 'put ''Y1x1NmViZlx1NmY4OFx1NmZiNVx1NmZmNVx1NzAwNVx1NzAwN1x1NzAyOFx1NzA4NVx1NzBhYlx1NzEwZlx1NzEwNFx1NzE1Y1x1NzE0Nlx1NzE0N1x1ZmExNVx1NzFjMVx1NzFmZVx1NzJiMVx1NzJiZVx1NzMyNFx1ZmExNlx1NzM3N1x1NzNiZFx1NzNjOVx1NzNkNlx1NzNlM1x1NzNkMlx1''@;'; put 'put ''NzQwN1x1NzNmNVx1NzQyNlx1NzQyYVx1NzQyOVx1NzQyZVx1NzQ2Mlx1NzQ4OVx1NzQ5Zlx1NzUwMVx1NzU2Zlx1NzY4Mlx1NzY5Y1x1NzY5ZVx1NzY5Ylx1NzZhNlx1ZmExN1x1Nzc0Nlx1NTJhZlx1NzgyMVx1Nzg0ZVx1Nzg2NFx1Nzg3YVx1NzkzMFx1ZmExOFx1ZmExOSJdLFsiZmI4MCIs''@;'; put 'put ''Ilx1ZmExYVx1Nzk5NFx1ZmExYlx1Nzk5Ylx1N2FkMVx1N2FlN1x1ZmExY1x1N2FlYlx1N2I5ZVx1ZmExZFx1N2Q0OFx1N2Q1Y1x1N2RiN1x1N2RhMFx1N2RkNlx1N2U1Mlx1N2Y0N1x1N2ZhMVx1ZmExZVx1ODMwMVx1ODM2Mlx1ODM3Zlx1ODNjN1x1ODNmNlx1ODQ0OFx1ODRiNFx1ODU1M1x1''@;'; put 'put ''ODU1OVx1ODU2Ylx1ZmExZlx1ODViMFx1ZmEyMFx1ZmEyMVx1ODgwN1x1ODhmNVx1OGExMlx1OGEzN1x1OGE3OVx1OGFhN1x1OGFiZVx1OGFkZlx1ZmEyMlx1OGFmNlx1OGI1M1x1OGI3Zlx1OGNmMFx1OGNmNFx1OGQxMlx1OGQ3Nlx1ZmEyM1x1OGVjZlx1ZmEyNFx1ZmEyNVx1OTA2N1x1OTBk''@;'; put 'put ''ZVx1ZmEyNlx1OTExNVx1OTEyN1x1OTFkYVx1OTFkN1x1OTFkZVx1OTFlZFx1OTFlZVx1OTFlNFx1OTFlNVx1OTIwNlx1OTIxMFx1OTIwYVx1OTIzYVx1OTI0MFx1OTIzY1x1OTI0ZVx1OTI1OVx1OTI1MVx1OTIzOVx1OTI2N1x1OTJhN1x1OTI3N1x1OTI3OFx1OTJlN1x1OTJkN1x1OTJkOVx1''@;'; put 'put ''OTJkMFx1ZmEyN1x1OTJkNVx1OTJlMFx1OTJkM1x1OTMyNVx1OTMyMVx1OTJmYlx1ZmEyOFx1OTMxZVx1OTJmZlx1OTMxZFx1OTMwMlx1OTM3MFx1OTM1N1x1OTNhNFx1OTNjNlx1OTNkZVx1OTNmOFx1OTQzMVx1OTQ0NVx1OTQ0OFx1OTU5Mlx1ZjlkY1x1ZmEyOVx1OTY5ZFx1OTZhZlx1OTcz''@;'; put 'put ''M1x1OTczYlx1OTc0M1x1OTc0ZFx1OTc0Zlx1OTc1MVx1OTc1NVx1OTg1N1x1OTg2NVx1ZmEyYVx1ZmEyYlx1OTkyN1x1ZmEyY1x1OTk5ZVx1OWE0ZVx1OWFkOSJdLFsiZmM0MCIsIlx1OWFkY1x1OWI3NVx1OWI3Mlx1OWI4Zlx1OWJiMVx1OWJiYlx1OWMwMFx1OWQ3MFx1OWQ2Ylx1ZmEyZFx1''@;'; put 'put ''OWUxOVx1OWVkMSJdXScpfSwyMjU2MjpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ3siMi4xNi44NDAuMS4xMDEuMy40LjEuMSI6ImFlcy0xMjgtZWNiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMiI6ImFlcy0xMjgtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEu''@;'; put 'put ''MyI6ImFlcy0xMjgtb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNCI6ImFlcy0xMjgtY2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjEiOiJhZXMtMTkyLWVjYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjIyIjoiYWVzLTE5Mi1jYmMiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS4yMyI6ImFl''@;'; put 'put ''cy0xOTItb2ZiIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuMjQiOiJhZXMtMTkyLWNmYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQxIjoiYWVzLTI1Ni1lY2IiLCIyLjE2Ljg0MC4xLjEwMS4zLjQuMS40MiI6ImFlcy0yNTYtY2JjIiwiMi4xNi44NDAuMS4xMDEuMy40LjEuNDMiOiJhZXMtMjU2''@;'; put 'put ''LW9mYiIsIjIuMTYuODQwLjEuMTAxLjMuNC4xLjQ0IjoiYWVzLTI1Ni1jZmIifScpfSwxMjAzMDpYZT0+eyJ1c2Ugc3RyaWN0IjtYZS5leHBvcnRzPUpTT04ucGFyc2UoJ3sibG9jYWxlIjoiZW4iLCJkYXRlIjp7ImNhIjpbImdyZWdvcnkiLCJidWRkaGlzdCIsImNoaW5lc2UiLCJjb3B0aWMi''@;'; put 'put ''LCJkYW5naSIsImV0aGlvYWEiLCJldGhpb3BpYyIsImdlbmVyaWMiLCJoZWJyZXciLCJpbmRpYW4iLCJpc2xhbWljIiwiaXNsYW1pY2MiLCJqYXBhbmVzZSIsInBlcnNpYW4iLCJyb2MiXSwiaG91ck5vMCI6dHJ1ZSwiaG91cjEyIjp0cnVlLCJmb3JtYXRzIjp7InNob3J0IjoiezF9LCB7MH0i''@;'; put 'put ''LCJtZWRpdW0iOiJ7MX0sIHswfSIsImZ1bGwiOiJ7MX0gXCdhdFwnIHswfSIsImxvbmciOiJ7MX0gXCdhdFwnIHswfSIsImF2YWlsYWJsZUZvcm1hdHMiOnsiZCI6ImQiLCJFIjoiY2NjIiwiRWQiOiJkIEUiLCJFaG0iOiJFIGg6bW0gYSIsIkVIbSI6IkUgSEg6bW0iLCJFaG1zIjoiRSBoOm1t''@;'; put 'put ''OnNzIGEiLCJFSG1zIjoiRSBISDptbTpzcyIsIkd5IjoieSBHIiwiR3lNTU0iOiJNTU0geSBHIiwiR3lNTU1kIjoiTU1NIGQsIHkgRyIsIkd5TU1NRWQiOiJFLCBNTU0gZCwgeSBHIiwiaCI6ImggYSIsIkgiOiJISCIsImhtIjoiaDptbSBhIiwiSG0iOiJISDptbSIsImhtcyI6Img6bW06c3Mg''@;'; put 'put ''YSIsIkhtcyI6IkhIOm1tOnNzIiwiaG1zdiI6Img6bW06c3MgYSB2IiwiSG1zdiI6IkhIOm1tOnNzIHYiLCJobXYiOiJoOm1tIGEgdiIsIkhtdiI6IkhIOm1tIHYiLCJNIjoiTCIsIk1kIjoiTS9kIiwiTUVkIjoiRSwgTS9kIiwiTU1NIjoiTExMIiwiTU1NZCI6Ik1NTSBkIiwiTU1NRWQiOiJF''@;'; put 'put ''LCBNTU0gZCIsIk1NTU1kIjoiTU1NTSBkIiwibXMiOiJtbTpzcyIsInkiOiJ5IiwieU0iOiJNL3kiLCJ5TWQiOiJNL2QveSIsInlNRWQiOiJFLCBNL2QveSIsInlNTU0iOiJNTU0geSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TU1NRWQiOiJFLCBNTU0gZCwgeSIsInlNTU1NIjoiTU1NTSB5Iiwi''@;'; put 'put ''eVFRUSI6IlFRUSB5IiwieVFRUVEiOiJRUVFRIHkifSwiZGF0ZUZvcm1hdHMiOnsieU1NTU1FRUVFZCI6IkVFRUUsIE1NTU0gZCwgeSIsInlNTU1NZCI6Ik1NTU0gZCwgeSIsInlNTU1kIjoiTU1NIGQsIHkiLCJ5TWQiOiJNL2QveXkifSwidGltZUZvcm1hdHMiOnsiaG1tc3N6enp6IjoiaDpt''@;'; put 'put ''bTpzcyBhIHp6enoiLCJobXN6IjoiaDptbTpzcyBhIHoiLCJobXMiOiJoOm1tOnNzIGEiLCJobSI6Img6bW0gYSJ9fSwiY2FsZW5kYXJzIjp7ImJ1ZGRoaXN0Ijp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIsIkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sInNo''@;'; put 'put ''b3J0IjpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIs''@;'; put 'put ''Ik9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNk''@;'; put 'put ''YXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJCRSJdLCJzaG9ydCI6WyJCRSJdLCJsb25nIjpbIkJFIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJjaGluZXNlIjp7Im1vbnRocyI6eyJuYXJy''@;'; put 'put ''b3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk1vMSIsIk1vMiIsIk1vMyIsIk1vNCIsIk1vNSIsIk1vNiIsIk1vNyIsIk1vOCIsIk1vOSIsIk1vMTAiLCJNbzExIiwiTW8xMiJdLCJsb25nIjpbIk1vbnRoMSIsIk1vbnRo''@;'; put 'put ''MiIsIk1vbnRoMyIsIk1vbnRoNCIsIk1vbnRoNSIsIk1vbnRoNiIsIk1vbnRoNyIsIk1vbnRoOCIsIk1vbnRoOSIsIk1vbnRoMTAiLCJNb250aDExIiwiTW9udGgxMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24i''@;'; put 'put ''LCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiY29wdGljIjp7Im1vbnRo''@;'; put 'put ''cyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiXSwic2hvcnQiOlsiVG91dCIsIkJhYmEiLCJIYXRvciIsIktpYWhrIiwiVG9iYSIsIkFtc2hpciIsIkJhcmFtaGF0IiwiQmFyYW1vdWRhIiwiQmFzaGFucyIsIlBhb25h''@;'; put 'put ''IiwiRXBlcCIsIk1lc3JhIiwiTmFzaWUiXSwibG9uZyI6WyJUb3V0IiwiQmFiYSIsIkhhdG9yIiwiS2lhaGsiLCJUb2JhIiwiQW1zaGlyIiwiQmFyYW1oYXQiLCJCYXJhbW91ZGEiLCJCYXNoYW5zIiwiUGFvbmEiLCJFcGVwIiwiTWVzcmEiLCJOYXNpZSJdfSwiZGF5cyI6eyJuYXJyb3ciOlsi''@;'; put 'put ''UyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJh''@;'; put 'put ''cyI6eyJuYXJyb3ciOlsiRVJBMCIsIkVSQTEiXSwic2hvcnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZGFuZ2kiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYi''@;'; put 'put ''LCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiXSwic2hvcnQiOlsiTW8xIiwiTW8yIiwiTW8zIiwiTW80IiwiTW81IiwiTW82IiwiTW83IiwiTW84IiwiTW85IiwiTW8xMCIsIk1vMTEiLCJNbzEyIl0sImxvbmciOlsiTW9udGgxIiwiTW9udGgyIiwiTW9udGgzIiwiTW9udGg0IiwiTW9udGg1''@;'; put 'put ''IiwiTW9udGg2IiwiTW9udGg3IiwiTW9udGg4IiwiTW9udGg5IiwiTW9udGgxMCIsIk1vbnRoMTEiLCJNb250aDEyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNh''@;'; put 'put ''dCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJldGhpb3BpYyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIs''@;'; put 'put ''IjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIl0sInNob3J0IjpbIk1lc2tlcmVtIiwiVGVrZW10IiwiSGVkYXIiLCJUYWhzYXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1''@;'; put 'put ''bWVuIl0sImxvbmciOlsiTWVza2VyZW0iLCJUZWtlbXQiLCJIZWRhciIsIlRhaHNhcyIsIlRlciIsIllla2F0aXQiLCJNZWdhYml0IiwiTWlhemlhIiwiR2VuYm90IiwiU2VuZSIsIkhhbWxlIiwiTmVoYXNzZSIsIlBhZ3VtZW4iXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlci''@;'; put 'put ''LCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93Ijpb''@;'; put 'put ''IkVSQTAiLCJFUkExIl0sInNob3J0IjpbIkVSQTAiLCJFUkExIl0sImxvbmciOlsiRVJBMCIsIkVSQTEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImV0aGlvYWEiOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjki''@;'; put 'put ''LCIxMCIsIjExIiwiMTIiLCIxMyJdLCJzaG9ydCI6WyJNZXNrZXJlbSIsIlRla2VtdCIsIkhlZGFyIiwiVGFoc2FzIiwiVGVyIiwiWWVrYXRpdCIsIk1lZ2FiaXQiLCJNaWF6aWEiLCJHZW5ib3QiLCJTZW5lIiwiSGFtbGUiLCJOZWhhc3NlIiwiUGFndW1lbiJdLCJsb25nIjpbIk1lc2tlcmVt''@;'; put 'put ''IiwiVGVrZW10IiwiSGVkYXIiLCJUYWhzYXMiLCJUZXIiLCJZZWthdGl0IiwiTWVnYWJpdCIsIk1pYXppYSIsIkdlbmJvdCIsIlNlbmUiLCJIYW1sZSIsIk5laGFzc2UiLCJQYWd1bWVuIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0Ijpb''@;'; put 'put ''IlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJFUkEwIl0sInNob3J0IjpbIkVSQTAi''@;'; put 'put ''XSwibG9uZyI6WyJFUkEwIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJnZW5lcmljIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk0wMSIsIk0wMiIsIk0wMyIs''@;'; put 'put ''Ik0wNCIsIk0wNSIsIk0wNiIsIk0wNyIsIk0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdLCJsb25nIjpbIk0wMSIsIk0wMiIsIk0wMyIsIk0wNCIsIk0wNSIsIk0wNiIsIk0wNyIsIk0wOCIsIk0wOSIsIk0xMCIsIk0xMSIsIk0xMiJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJU''@;'; put 'put ''IiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJy''@;'; put 'put ''b3ciOlsiRVJBMCIsIkVSQTEiXSwic2hvcnQiOlsiRVJBMCIsIkVSQTEiXSwibG9uZyI6WyJFUkEwIiwiRVJBMSJdfSwiZGF5UGVyaW9kcyI6eyJhbSI6IkFNIiwicG0iOiJQTSJ9fSwiZ3JlZ29yeSI6eyJtb250aHMiOnsibmFycm93IjpbIkoiLCJGIiwiTSIsIkEiLCJNIiwiSiIsIkoiLCJB''@;'; put 'put ''IiwiUyIsIk8iLCJOIiwiRCJdLCJzaG9ydCI6WyJKYW4iLCJGZWIiLCJNYXIiLCJBcHIiLCJNYXkiLCJKdW4iLCJKdWwiLCJBdWciLCJTZXAiLCJPY3QiLCJOb3YiLCJEZWMiXSwibG9uZyI6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHki''@;'; put 'put ''LCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSwiZGF5cyI6eyJuYXJyb3ciOlsiUyIsIk0iLCJUIiwiVyIsIlQiLCJGIiwiUyJdLCJzaG9ydCI6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSwibG9uZyI6WyJT''@;'; put 'put ''dW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdfSwiZXJhcyI6eyJuYXJyb3ciOlsiQiIsIkEiLCJCQ0UiLCJDRSJdLCJzaG9ydCI6WyJCQyIsIkFEIiwiQkNFIiwiQ0UiXSwibG9uZyI6WyJCZWZvcmUgQ2hyaXN0Iiwi''@;'; put 'put ''QW5ubyBEb21pbmkiLCJCZWZvcmUgQ29tbW9uIEVyYSIsIkNvbW1vbiBFcmEiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImhlYnJldyI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIs''@;'; put 'put ''IjEzIiwiNyJdLCJzaG9ydCI6WyJUaXNocmkiLCJIZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXSwibG9uZyI6WyJUaXNocmkiLCJIZXNodmFuIiwiS2lz''@;'; put 'put ''bGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIEkiLCJBZGFyIiwiTmlzYW4iLCJJeWFyIiwiU2l2YW4iLCJUYW11eiIsIkF2IiwiRWx1bCIsIkFkYXIgSUkiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVl''@;'; put 'put ''IiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFNIl0sInNob3J0IjpbIkFNIl0sImxvbmciOlsiQU0iXX0sImRh''@;'; put 'put ''eVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImluZGlhbiI6eyJtb250aHMiOnsibmFycm93IjpbIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiJdLCJzaG9ydCI6WyJDaGFpdHJhIiwiVmFpc2FraGEiLCJKeWFpc3RoYSIsIkFzYWRoYSIs''@;'; put 'put ''IlNyYXZhbmEiLCJCaGFkcmEiLCJBc3ZpbmEiLCJLYXJ0aWthIiwiQWdyYWhheWFuYSIsIlBhdXNhIiwiTWFnaGEiLCJQaGFsZ3VuYSJdLCJsb25nIjpbIkNoYWl0cmEiLCJWYWlzYWtoYSIsIkp5YWlzdGhhIiwiQXNhZGhhIiwiU3JhdmFuYSIsIkJoYWRyYSIsIkFzdmluYSIsIkthcnRpa2Ei''@;'; put 'put ''LCJBZ3JhaGF5YW5hIiwiUGF1c2EiLCJNYWdoYSIsIlBoYWxndW5hIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRh''@;'; put 'put ''eSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJTYWthIl0sInNob3J0IjpbIlNha2EiXSwibG9uZyI6WyJTYWthIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJpc2xhbWljIjp7''@;'; put 'put ''Im1vbnRocyI6eyJuYXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJhbS4iLCJTaGF3LiIsIkRo''@;'; put 'put ''dVx1MDJiYmwtUS4iLCJEaHVcdTAyYmJsLUguIl0sImxvbmciOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHVcdTAyYmJs''@;'; put 'put ''LVFpXHUwMmJiZGFoIiwiRGh1XHUwMmJibC1IaWpqYWgiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVl''@;'; put 'put ''c2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImlzbGFtaWNjIjp7Im1vbnRocyI6eyJu''@;'; put 'put ''YXJyb3ciOlsiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIl0sInNob3J0IjpbIk11aC4iLCJTYWYuIiwiUmFiLiBJIiwiUmFiLiBJSSIsIkp1bS4gSSIsIkp1bS4gSUkiLCJSYWouIiwiU2hhLiIsIlJhbS4iLCJTaGF3LiIsIkRodVx1MDJiYmwtUS4i''@;'; put 'put ''LCJEaHVcdTAyYmJsLUguIl0sImxvbmciOlsiTXVoYXJyYW0iLCJTYWZhciIsIlJhYmlcdTAyYmIgSSIsIlJhYmlcdTAyYmIgSUkiLCJKdW1hZGEgSSIsIkp1bWFkYSBJSSIsIlJhamFiIiwiU2hhXHUwMmJiYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHVcdTAyYmJsLVFpXHUwMmJiZGFo''@;'; put 'put ''IiwiRGh1XHUwMmJibC1IaWpqYWgiXX0sImRheXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5l''@;'; put 'put ''c2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkFIIl0sInNob3J0IjpbIkFIIl0sImxvbmciOlsiQUgiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sImphcGFuZXNlIjp7Im1vbnRocyI6eyJuYXJyb3ciOlsiSiIs''@;'; put 'put ''IkYiLCJNIiwiQSIsIk0iLCJKIiwiSiIsIkEiLCJTIiwiTyIsIk4iLCJEIl0sInNob3J0IjpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLCJsb25nIjpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwi''@;'; put 'put ''QXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0IjpbIlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRo''@;'; put 'put ''dSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJUYWlrYSAoNjQ1XHUyMDEzNjUwKSIsIkhha3VjaGkgKDY1MFx1MjAxMzY3MSkiLCJI''@;'; put 'put ''YWt1aFx1MDE0ZCAoNjcyXHUyMDEzNjg2KSIsIlNodWNoXHUwMTRkICg2ODZcdTIwMTM3MDEpIiwiVGFpaFx1MDE0ZCAoNzAxXHUyMDEzNzA0KSIsIktlaXVuICg3MDRcdTIwMTM3MDgpIiwiV2FkXHUwMTRkICg3MDhcdTIwMTM3MTUpIiwiUmVpa2kgKDcxNVx1MjAxMzcxNykiLCJZXHUwMTRk''@;'; put 'put ''clx1MDE0ZCAoNzE3XHUyMDEzNzI0KSIsIkppbmtpICg3MjRcdTIwMTM3MjkpIiwiVGVucHlcdTAxNGQgKDcyOVx1MjAxMzc0OSkiLCJUZW5weVx1MDE0ZC1rYW1wXHUwMTRkICg3NDktNzQ5KSIsIlRlbnB5XHUwMTRkLXNoXHUwMTRkaFx1MDE0ZCAoNzQ5LTc1NykiLCJUZW5weVx1MDE0ZC1o''@;'; put 'put ''XHUwMTRkamkgKDc1Ny03NjUpIiwiVGVucHlcdTAxNGQtamluZ28gKDc2NS03NjcpIiwiSmluZ28ta2VpdW4gKDc2Ny03NzApIiwiSFx1MDE0ZGtpICg3NzBcdTIwMTM3ODApIiwiVGVuLVx1MDE0ZCAoNzgxLTc4MikiLCJFbnJ5YWt1ICg3ODJcdTIwMTM4MDYpIiwiRGFpZFx1MDE0ZCAoODA2''@;'; put 'put ''XHUyMDEzODEwKSIsIktcdTAxNGRuaW4gKDgxMFx1MjAxMzgyNCkiLCJUZW5jaFx1MDE0ZCAoODI0XHUyMDEzODM0KSIsIkpcdTAxNGR3YSAoODM0XHUyMDEzODQ4KSIsIkthalx1MDE0ZCAoODQ4XHUyMDEzODUxKSIsIk5pbmp1ICg4NTFcdTIwMTM4NTQpIiwiU2Fpa1x1MDE0ZCAoODU0XHUy''@;'; put 'put ''MDEzODU3KSIsIlRlbi1hbiAoODU3LTg1OSkiLCJKXHUwMTRkZ2FuICg4NTlcdTIwMTM4NzcpIiwiR2FuZ3lcdTAxNGQgKDg3N1x1MjAxMzg4NSkiLCJOaW5uYSAoODg1XHUyMDEzODg5KSIsIkthbnB5XHUwMTRkICg4ODlcdTIwMTM4OTgpIiwiU2hcdTAxNGR0YWkgKDg5OFx1MjAxMzkwMSki''@;'; put 'put ''LCJFbmdpICg5MDFcdTIwMTM5MjMpIiwiRW5jaFx1MDE0ZCAoOTIzXHUyMDEzOTMxKSIsIkpcdTAxNGRoZWkgKDkzMVx1MjAxMzkzOCkiLCJUZW5neVx1MDE0ZCAoOTM4XHUyMDEzOTQ3KSIsIlRlbnJ5YWt1ICg5NDdcdTIwMTM5NTcpIiwiVGVudG9rdSAoOTU3XHUyMDEzOTYxKSIsIlx1MDE0''@;'; put 'put ''Y3dhICg5NjFcdTIwMTM5NjQpIiwiS1x1MDE0ZGhcdTAxNGQgKDk2NFx1MjAxMzk2OCkiLCJBbm5hICg5NjhcdTIwMTM5NzApIiwiVGVucm9rdSAoOTcwXHUyMDEzOTczKSIsIlRlblx1MjAxOWVuICg5NzNcdTIwMTM5NzYpIiwiSlx1MDE0ZGdlbiAoOTc2XHUyMDEzOTc4KSIsIlRlbmdlbiAo''@;'; put 'put ''OTc4XHUyMDEzOTgzKSIsIkVpa2FuICg5ODNcdTIwMTM5ODUpIiwiS2FubmEgKDk4NVx1MjAxMzk4NykiLCJFaWVuICg5ODdcdTIwMTM5ODkpIiwiRWlzbyAoOTg5XHUyMDEzOTkwKSIsIlNoXHUwMTRkcnlha3UgKDk5MFx1MjAxMzk5NSkiLCJDaFx1MDE0ZHRva3UgKDk5NVx1MjAxMzk5OSki''@;'; put 'put ''LCJDaFx1MDE0ZGhcdTAxNGQgKDk5OVx1MjAxMzEwMDQpIiwiS2Fua1x1MDE0ZCAoMTAwNFx1MjAxMzEwMTIpIiwiQ2hcdTAxNGR3YSAoMTAxMlx1MjAxMzEwMTcpIiwiS2FubmluICgxMDE3XHUyMDEzMTAyMSkiLCJKaWFuICgxMDIxXHUyMDEzMTAyNCkiLCJNYW5qdSAoMTAyNFx1MjAxMzEw''@;'; put 'put ''MjgpIiwiQ2hcdTAxNGRnZW4gKDEwMjhcdTIwMTMxMDM3KSIsIkNoXHUwMTRkcnlha3UgKDEwMzdcdTIwMTMxMDQwKSIsIkNoXHUwMTRka3lcdTAxNmIgKDEwNDBcdTIwMTMxMDQ0KSIsIkthbnRva3UgKDEwNDRcdTIwMTMxMDQ2KSIsIkVpc2hcdTAxNGQgKDEwNDZcdTIwMTMxMDUzKSIsIlRl''@;'; put 'put ''bmdpICgxMDUzXHUyMDEzMTA1OCkiLCJLXHUwMTRkaGVpICgxMDU4XHUyMDEzMTA2NSkiLCJKaXJ5YWt1ICgxMDY1XHUyMDEzMTA2OSkiLCJFbmt5XHUwMTZiICgxMDY5XHUyMDEzMTA3NCkiLCJTaFx1MDE0ZGhvICgxMDc0XHUyMDEzMTA3NykiLCJTaFx1MDE0ZHJ5YWt1ICgxMDc3XHUyMDEz''@;'; put 'put ''MTA4MSkiLCJFaWhcdTAxNGQgKDEwODFcdTIwMTMxMDg0KSIsIlx1MDE0Y3Rva3UgKDEwODRcdTIwMTMxMDg3KSIsIkthbmppICgxMDg3XHUyMDEzMTA5NCkiLCJLYWhcdTAxNGQgKDEwOTRcdTIwMTMxMDk2KSIsIkVpY2hcdTAxNGQgKDEwOTZcdTIwMTMxMDk3KSIsIkpcdTAxNGR0b2t1ICgx''@;'; put 'put ''MDk3XHUyMDEzMTA5OSkiLCJLXHUwMTRkd2EgKDEwOTlcdTIwMTMxMTA0KSIsIkNoXHUwMTRkamkgKDExMDRcdTIwMTMxMTA2KSIsIkthc2hcdTAxNGQgKDExMDZcdTIwMTMxMTA4KSIsIlRlbm5pbiAoMTEwOFx1MjAxMzExMTApIiwiVGVuLWVpICgxMTEwLTExMTMpIiwiRWlreVx1MDE2YiAo''@;'; put 'put ''MTExM1x1MjAxMzExMTgpIiwiR2VuXHUyMDE5ZWkgKDExMThcdTIwMTMxMTIwKSIsIkhcdTAxNGRhbiAoMTEyMFx1MjAxMzExMjQpIiwiVGVuamkgKDExMjRcdTIwMTMxMTI2KSIsIkRhaWppICgxMTI2XHUyMDEzMTEzMSkiLCJUZW5zaFx1MDE0ZCAoMTEzMVx1MjAxMzExMzIpIiwiQ2hcdTAx''@;'; put 'put ''NGRzaFx1MDE0ZCAoMTEzMlx1MjAxMzExMzUpIiwiSFx1MDE0ZGVuICgxMTM1XHUyMDEzMTE0MSkiLCJFaWppICgxMTQxXHUyMDEzMTE0MikiLCJLXHUwMTRkamkgKDExNDJcdTIwMTMxMTQ0KSIsIlRlblx1MjAxOXlcdTAxNGQgKDExNDRcdTIwMTMxMTQ1KSIsIkt5XHUwMTZiYW4gKDExNDVc''@;'; put 'put ''dTIwMTMxMTUxKSIsIk5pbnBlaSAoMTE1MVx1MjAxMzExNTQpIiwiS3lcdTAxNmJqdSAoMTE1NFx1MjAxMzExNTYpIiwiSFx1MDE0ZGdlbiAoMTE1Nlx1MjAxMzExNTkpIiwiSGVpamkgKDExNTlcdTIwMTMxMTYwKSIsIkVpcnlha3UgKDExNjBcdTIwMTMxMTYxKSIsIlx1MDE0Y2hvICgxMTYx''@;'; put 'put ''XHUyMDEzMTE2MykiLCJDaFx1MDE0ZGthbiAoMTE2M1x1MjAxMzExNjUpIiwiRWltYW4gKDExNjVcdTIwMTMxMTY2KSIsIk5pblx1MjAxOWFuICgxMTY2XHUyMDEzMTE2OSkiLCJLYVx1MDE0ZCAoMTE2OVx1MjAxMzExNzEpIiwiU2hcdTAxNGRhbiAoMTE3MVx1MjAxMzExNzUpIiwiQW5nZW4g''@;'; put 'put ''KDExNzVcdTIwMTMxMTc3KSIsIkppc2hcdTAxNGQgKDExNzdcdTIwMTMxMTgxKSIsIllcdTAxNGR3YSAoMTE4MVx1MjAxMzExODIpIiwiSnVlaSAoMTE4Mlx1MjAxMzExODQpIiwiR2Vucnlha3UgKDExODRcdTIwMTMxMTg1KSIsIkJ1bmppICgxMTg1XHUyMDEzMTE5MCkiLCJLZW5reVx1MDE2''@;'; put 'put ''YiAoMTE5MFx1MjAxMzExOTkpIiwiU2hcdTAxNGRqaSAoMTE5OVx1MjAxMzEyMDEpIiwiS2VubmluICgxMjAxXHUyMDEzMTIwNCkiLCJHZW5reVx1MDE2YiAoMTIwNFx1MjAxMzEyMDYpIiwiS2VuXHUyMDE5ZWkgKDEyMDZcdTIwMTMxMjA3KSIsIkpcdTAxNGRnZW4gKDEyMDdcdTIwMTMxMjEx''@;'; put 'put ''KSIsIktlbnJ5YWt1ICgxMjExXHUyMDEzMTIxMykiLCJLZW5wXHUwMTRkICgxMjEzXHUyMDEzMTIxOSkiLCJKXHUwMTRka3lcdTAxNmIgKDEyMTlcdTIwMTMxMjIyKSIsIkpcdTAxNGRcdTAxNGQgKDEyMjJcdTIwMTMxMjI0KSIsIkdlbm5pbiAoMTIyNFx1MjAxMzEyMjUpIiwiS2Fyb2t1ICgx''@;'; put 'put ''MjI1XHUyMDEzMTIyNykiLCJBbnRlaSAoMTIyN1x1MjAxMzEyMjkpIiwiS2Fua2kgKDEyMjlcdTIwMTMxMjMyKSIsIkpcdTAxNGRlaSAoMTIzMlx1MjAxMzEyMzMpIiwiVGVucHVrdSAoMTIzM1x1MjAxMzEyMzQpIiwiQnVucnlha3UgKDEyMzRcdTIwMTMxMjM1KSIsIkthdGVpICgxMjM1XHUy''@;'; put 'put ''MDEzMTIzOCkiLCJSeWFrdW5pbiAoMTIzOFx1MjAxMzEyMzkpIiwiRW5cdTIwMTlcdTAxNGQgKDEyMzlcdTIwMTMxMjQwKSIsIk5pbmppICgxMjQwXHUyMDEzMTI0MykiLCJLYW5nZW4gKDEyNDNcdTIwMTMxMjQ3KSIsIkhcdTAxNGRqaSAoMTI0N1x1MjAxMzEyNDkpIiwiS2VuY2hcdTAxNGQg''@;'; put 'put ''KDEyNDlcdTIwMTMxMjU2KSIsIktcdTAxNGRnZW4gKDEyNTZcdTIwMTMxMjU3KSIsIlNoXHUwMTRka2EgKDEyNTdcdTIwMTMxMjU5KSIsIlNoXHUwMTRkZ2VuICgxMjU5XHUyMDEzMTI2MCkiLCJCdW5cdTIwMTlcdTAxNGQgKDEyNjBcdTIwMTMxMjYxKSIsIktcdTAxNGRjaFx1MDE0ZCAoMTI2''@;'; put 'put ''MVx1MjAxMzEyNjQpIiwiQnVuXHUyMDE5ZWkgKDEyNjRcdTIwMTMxMjc1KSIsIktlbmppICgxMjc1XHUyMDEzMTI3OCkiLCJLXHUwMTRkYW4gKDEyNzhcdTIwMTMxMjg4KSIsIlNoXHUwMTRkXHUwMTRkICgxMjg4XHUyMDEzMTI5MykiLCJFaW5pbiAoMTI5M1x1MjAxMzEyOTkpIiwiU2hcdTAx''@;'; put 'put ''NGRhbiAoMTI5OVx1MjAxMzEzMDIpIiwiS2VuZ2VuICgxMzAyXHUyMDEzMTMwMykiLCJLYWdlbiAoMTMwM1x1MjAxMzEzMDYpIiwiVG9rdWppICgxMzA2XHUyMDEzMTMwOCkiLCJFbmt5XHUwMTRkICgxMzA4XHUyMDEzMTMxMSkiLCJcdTAxNGNjaFx1MDE0ZCAoMTMxMVx1MjAxMzEzMTIpIiwi''@;'; put 'put ''U2hcdTAxNGR3YSAoMTMxMlx1MjAxMzEzMTcpIiwiQnVucFx1MDE0ZCAoMTMxN1x1MjAxMzEzMTkpIiwiR2VuXHUwMTRkICgxMzE5XHUyMDEzMTMyMSkiLCJHZW5rXHUwMTRkICgxMzIxXHUyMDEzMTMyNCkiLCJTaFx1MDE0ZGNoXHUwMTZiICgxMzI0XHUyMDEzMTMyNikiLCJLYXJ5YWt1ICgx''@;'; put 'put ''MzI2XHUyMDEzMTMyOSkiLCJHZW50b2t1ICgxMzI5XHUyMDEzMTMzMSkiLCJHZW5rXHUwMTRkICgxMzMxXHUyMDEzMTMzNCkiLCJLZW5tdSAoMTMzNFx1MjAxMzEzMzYpIiwiRW5nZW4gKDEzMzZcdTIwMTMxMzQwKSIsIktcdTAxNGRrb2t1ICgxMzQwXHUyMDEzMTM0NikiLCJTaFx1MDE0ZGhl''@;'; put 'put ''aSAoMTM0Nlx1MjAxMzEzNzApIiwiS2VudG9rdSAoMTM3MFx1MjAxMzEzNzIpIiwiQnVuY2hcdTAxNmIgKDEzNzJcdTIwMTMxMzc1KSIsIlRlbmp1ICgxMzc1XHUyMDEzMTM3OSkiLCJLXHUwMTRkcnlha3UgKDEzNzlcdTIwMTMxMzgxKSIsIktcdTAxNGR3YSAoMTM4MVx1MjAxMzEzODQpIiwi''@;'; put 'put ''R2VuY2hcdTAxNmIgKDEzODRcdTIwMTMxMzkyKSIsIk1laXRva3UgKDEzODRcdTIwMTMxMzg3KSIsIktha2VpICgxMzg3XHUyMDEzMTM4OSkiLCJLXHUwMTRkXHUwMTRkICgxMzg5XHUyMDEzMTM5MCkiLCJNZWl0b2t1ICgxMzkwXHUyMDEzMTM5NCkiLCJcdTAxNGNlaSAoMTM5NFx1MjAxMzE0''@;'; put 'put ''MjgpIiwiU2hcdTAxNGRjaFx1MDE0ZCAoMTQyOFx1MjAxMzE0MjkpIiwiRWlreVx1MDE0ZCAoMTQyOVx1MjAxMzE0NDEpIiwiS2FraXRzdSAoMTQ0MVx1MjAxMzE0NDQpIiwiQnVuXHUyMDE5YW4gKDE0NDRcdTIwMTMxNDQ5KSIsIkhcdTAxNGR0b2t1ICgxNDQ5XHUyMDEzMTQ1MikiLCJLeVx1''@;'; put 'put ''MDE0ZHRva3UgKDE0NTJcdTIwMTMxNDU1KSIsIktcdTAxNGRzaFx1MDE0ZCAoMTQ1NVx1MjAxMzE0NTcpIiwiQ2hcdTAxNGRyb2t1ICgxNDU3XHUyMDEzMTQ2MCkiLCJLYW5zaFx1MDE0ZCAoMTQ2MFx1MjAxMzE0NjYpIiwiQnVuc2hcdTAxNGQgKDE0NjZcdTIwMTMxNDY3KSIsIlx1MDE0Y25p''@;'; put 'put ''biAoMTQ2N1x1MjAxMzE0NjkpIiwiQnVubWVpICgxNDY5XHUyMDEzMTQ4NykiLCJDaFx1MDE0ZGt5XHUwMTRkICgxNDg3XHUyMDEzMTQ4OSkiLCJFbnRva3UgKDE0ODlcdTIwMTMxNDkyKSIsIk1laVx1MDE0ZCAoMTQ5Mlx1MjAxMzE1MDEpIiwiQnVua2kgKDE1MDFcdTIwMTMxNTA0KSIsIkVp''@;'; put 'put ''c2hcdTAxNGQgKDE1MDRcdTIwMTMxNTIxKSIsIlRhaWVpICgxNTIxXHUyMDEzMTUyOCkiLCJLeVx1MDE0ZHJva3UgKDE1MjhcdTIwMTMxNTMyKSIsIlRlbmJ1biAoMTUzMlx1MjAxMzE1NTUpIiwiS1x1MDE0ZGppICgxNTU1XHUyMDEzMTU1OCkiLCJFaXJva3UgKDE1NThcdTIwMTMxNTcwKSIs''@;'; put 'put ''IkdlbmtpICgxNTcwXHUyMDEzMTU3MykiLCJUZW5zaFx1MDE0ZCAoMTU3M1x1MjAxMzE1OTIpIiwiQnVucm9rdSAoMTU5Mlx1MjAxMzE1OTYpIiwiS2VpY2hcdTAxNGQgKDE1OTZcdTIwMTMxNjE1KSIsIkdlbm5hICgxNjE1XHUyMDEzMTYyNCkiLCJLYW5cdTIwMTllaSAoMTYyNFx1MjAxMzE2''@;'; put 'put ''NDQpIiwiU2hcdTAxNGRobyAoMTY0NFx1MjAxMzE2NDgpIiwiS2VpYW4gKDE2NDhcdTIwMTMxNjUyKSIsIkpcdTAxNGRcdTAxNGQgKDE2NTJcdTIwMTMxNjU1KSIsIk1laXJla2kgKDE2NTVcdTIwMTMxNjU4KSIsIk1hbmppICgxNjU4XHUyMDEzMTY2MSkiLCJLYW5idW4gKDE2NjFcdTIwMTMx''@;'; put 'put ''NjczKSIsIkVucFx1MDE0ZCAoMTY3M1x1MjAxMzE2ODEpIiwiVGVubmEgKDE2ODFcdTIwMTMxNjg0KSIsIkpcdTAxNGRreVx1MDE0ZCAoMTY4NFx1MjAxMzE2ODgpIiwiR2Vucm9rdSAoMTY4OFx1MjAxMzE3MDQpIiwiSFx1MDE0ZGVpICgxNzA0XHUyMDEzMTcxMSkiLCJTaFx1MDE0ZHRva3Ug''@;'; put 'put ''KDE3MTFcdTIwMTMxNzE2KSIsIkt5XHUwMTRkaFx1MDE0ZCAoMTcxNlx1MjAxMzE3MzYpIiwiR2VuYnVuICgxNzM2XHUyMDEzMTc0MSkiLCJLYW5wXHUwMTRkICgxNzQxXHUyMDEzMTc0NCkiLCJFbmt5XHUwMTRkICgxNzQ0XHUyMDEzMTc0OCkiLCJLYW5cdTIwMTllbiAoMTc0OFx1MjAxMzE3''@;'; put 'put ''NTEpIiwiSFx1MDE0ZHJla2kgKDE3NTFcdTIwMTMxNzY0KSIsIk1laXdhICgxNzY0XHUyMDEzMTc3MikiLCJBblx1MjAxOWVpICgxNzcyXHUyMDEzMTc4MSkiLCJUZW5tZWkgKDE3ODFcdTIwMTMxNzg5KSIsIkthbnNlaSAoMTc4OVx1MjAxMzE4MDEpIiwiS3lcdTAxNGR3YSAoMTgwMVx1MjAx''@;'; put 'put ''MzE4MDQpIiwiQnVua2EgKDE4MDRcdTIwMTMxODE4KSIsIkJ1bnNlaSAoMTgxOFx1MjAxMzE4MzApIiwiVGVucFx1MDE0ZCAoMTgzMFx1MjAxMzE4NDQpIiwiS1x1MDE0ZGthICgxODQ0XHUyMDEzMTg0OCkiLCJLYWVpICgxODQ4XHUyMDEzMTg1NCkiLCJBbnNlaSAoMTg1NFx1MjAxMzE4NjAp''@;'; put 'put ''IiwiTWFuXHUyMDE5ZW4gKDE4NjBcdTIwMTMxODYxKSIsIkJ1bmt5XHUwMTZiICgxODYxXHUyMDEzMTg2NCkiLCJHZW5qaSAoMTg2NFx1MjAxMzE4NjUpIiwiS2VpXHUwMTRkICgxODY1XHUyMDEzMTg2OCkiLCJNIiwiVCIsIlMiLCJIIl0sInNob3J0IjpbIlRhaWthICg2NDVcdTIwMTM2NTAp''@;'; put 'put ''IiwiSGFrdWNoaSAoNjUwXHUyMDEzNjcxKSIsIkhha3VoXHUwMTRkICg2NzJcdTIwMTM2ODYpIiwiU2h1Y2hcdTAxNGQgKDY4Nlx1MjAxMzcwMSkiLCJUYWloXHUwMTRkICg3MDFcdTIwMTM3MDQpIiwiS2VpdW4gKDcwNFx1MjAxMzcwOCkiLCJXYWRcdTAxNGQgKDcwOFx1MjAxMzcxNSkiLCJS''@;'; put 'put ''ZWlraSAoNzE1XHUyMDEzNzE3KSIsIllcdTAxNGRyXHUwMTRkICg3MTdcdTIwMTM3MjQpIiwiSmlua2kgKDcyNFx1MjAxMzcyOSkiLCJUZW5weVx1MDE0ZCAoNzI5XHUyMDEzNzQ5KSIsIlRlbnB5XHUwMTRkLWthbXBcdTAxNGQgKDc0OS03NDkpIiwiVGVucHlcdTAxNGQtc2hcdTAxNGRoXHUw''@;'; put 'put ''MTRkICg3NDktNzU3KSIsIlRlbnB5XHUwMTRkLWhcdTAxNGRqaSAoNzU3LTc2NSkiLCJUZW5weVx1MDE0ZC1qaW5nbyAoNzY1LTc2NykiLCJKaW5nby1rZWl1biAoNzY3LTc3MCkiLCJIXHUwMTRka2kgKDc3MFx1MjAxMzc4MCkiLCJUZW4tXHUwMTRkICg3ODEtNzgyKSIsIkVucnlha3UgKDc4''@;'; put 'put ''Mlx1MjAxMzgwNikiLCJEYWlkXHUwMTRkICg4MDZcdTIwMTM4MTApIiwiS1x1MDE0ZG5pbiAoODEwXHUyMDEzODI0KSIsIlRlbmNoXHUwMTRkICg4MjRcdTIwMTM4MzQpIiwiSlx1MDE0ZHdhICg4MzRcdTIwMTM4NDgpIiwiS2FqXHUwMTRkICg4NDhcdTIwMTM4NTEpIiwiTmluanUgKDg1MVx1''@;'; put 'put ''MjAxMzg1NCkiLCJTYWlrXHUwMTRkICg4NTRcdTIwMTM4NTcpIiwiVGVuLWFuICg4NTctODU5KSIsIkpcdTAxNGRnYW4gKDg1OVx1MjAxMzg3NykiLCJHYW5neVx1MDE0ZCAoODc3XHUyMDEzODg1KSIsIk5pbm5hICg4ODVcdTIwMTM4ODkpIiwiS2FucHlcdTAxNGQgKDg4OVx1MjAxMzg5OCki''@;'; put 'put ''LCJTaFx1MDE0ZHRhaSAoODk4XHUyMDEzOTAxKSIsIkVuZ2kgKDkwMVx1MjAxMzkyMykiLCJFbmNoXHUwMTRkICg5MjNcdTIwMTM5MzEpIiwiSlx1MDE0ZGhlaSAoOTMxXHUyMDEzOTM4KSIsIlRlbmd5XHUwMTRkICg5MzhcdTIwMTM5NDcpIiwiVGVucnlha3UgKDk0N1x1MjAxMzk1NykiLCJU''@;'; put 'put ''ZW50b2t1ICg5NTdcdTIwMTM5NjEpIiwiXHUwMTRjd2EgKDk2MVx1MjAxMzk2NCkiLCJLXHUwMTRkaFx1MDE0ZCAoOTY0XHUyMDEzOTY4KSIsIkFubmEgKDk2OFx1MjAxMzk3MCkiLCJUZW5yb2t1ICg5NzBcdTIwMTM5NzMpIiwiVGVuXHUyMDE5ZW4gKDk3M1x1MjAxMzk3NikiLCJKXHUwMTRk''@;'; put 'put ''Z2VuICg5NzZcdTIwMTM5NzgpIiwiVGVuZ2VuICg5NzhcdTIwMTM5ODMpIiwiRWlrYW4gKDk4M1x1MjAxMzk4NSkiLCJLYW5uYSAoOTg1XHUyMDEzOTg3KSIsIkVpZW4gKDk4N1x1MjAxMzk4OSkiLCJFaXNvICg5ODlcdTIwMTM5OTApIiwiU2hcdTAxNGRyeWFrdSAoOTkwXHUyMDEzOTk1KSIs''@;'; put 'put ''IkNoXHUwMTRkdG9rdSAoOTk1XHUyMDEzOTk5KSIsIkNoXHUwMTRkaFx1MDE0ZCAoOTk5XHUyMDEzMTAwNCkiLCJLYW5rXHUwMTRkICgxMDA0XHUyMDEzMTAxMikiLCJDaFx1MDE0ZHdhICgxMDEyXHUyMDEzMTAxNykiLCJLYW5uaW4gKDEwMTdcdTIwMTMxMDIxKSIsIkppYW4gKDEwMjFcdTIw''@;'; put 'put ''MTMxMDI0KSIsIk1hbmp1ICgxMDI0XHUyMDEzMTAyOCkiLCJDaFx1MDE0ZGdlbiAoMTAyOFx1MjAxMzEwMzcpIiwiQ2hcdTAxNGRyeWFrdSAoMTAzN1x1MjAxMzEwNDApIiwiQ2hcdTAxNGRreVx1MDE2YiAoMTA0MFx1MjAxMzEwNDQpIiwiS2FudG9rdSAoMTA0NFx1MjAxMzEwNDYpIiwiRWlz''@;'; put 'put ''aFx1MDE0ZCAoMTA0Nlx1MjAxMzEwNTMpIiwiVGVuZ2kgKDEwNTNcdTIwMTMxMDU4KSIsIktcdTAxNGRoZWkgKDEwNThcdTIwMTMxMDY1KSIsIkppcnlha3UgKDEwNjVcdTIwMTMxMDY5KSIsIkVua3lcdTAxNmIgKDEwNjlcdTIwMTMxMDc0KSIsIlNoXHUwMTRkaG8gKDEwNzRcdTIwMTMxMDc3''@;'; put 'put ''KSIsIlNoXHUwMTRkcnlha3UgKDEwNzdcdTIwMTMxMDgxKSIsIkVpaFx1MDE0ZCAoMTA4MVx1MjAxMzEwODQpIiwiXHUwMTRjdG9rdSAoMTA4NFx1MjAxMzEwODcpIiwiS2FuamkgKDEwODdcdTIwMTMxMDk0KSIsIkthaFx1MDE0ZCAoMTA5NFx1MjAxMzEwOTYpIiwiRWljaFx1MDE0ZCAoMTA5''@;'; put 'put ''Nlx1MjAxMzEwOTcpIiwiSlx1MDE0ZHRva3UgKDEwOTdcdTIwMTMxMDk5KSIsIktcdTAxNGR3YSAoMTA5OVx1MjAxMzExMDQpIiwiQ2hcdTAxNGRqaSAoMTEwNFx1MjAxMzExMDYpIiwiS2FzaFx1MDE0ZCAoMTEwNlx1MjAxMzExMDgpIiwiVGVubmluICgxMTA4XHUyMDEzMTExMCkiLCJUZW4t''@;'; put 'put ''ZWkgKDExMTAtMTExMykiLCJFaWt5XHUwMTZiICgxMTEzXHUyMDEzMTExOCkiLCJHZW5cdTIwMTllaSAoMTExOFx1MjAxMzExMjApIiwiSFx1MDE0ZGFuICgxMTIwXHUyMDEzMTEyNCkiLCJUZW5qaSAoMTEyNFx1MjAxMzExMjYpIiwiRGFpamkgKDExMjZcdTIwMTMxMTMxKSIsIlRlbnNoXHUw''@;'; put 'put ''MTRkICgxMTMxXHUyMDEzMTEzMikiLCJDaFx1MDE0ZHNoXHUwMTRkICgxMTMyXHUyMDEzMTEzNSkiLCJIXHUwMTRkZW4gKDExMzVcdTIwMTMxMTQxKSIsIkVpamkgKDExNDFcdTIwMTMxMTQyKSIsIktcdTAxNGRqaSAoMTE0Mlx1MjAxMzExNDQpIiwiVGVuXHUyMDE5eVx1MDE0ZCAoMTE0NFx1''@;'; put 'put ''MjAxMzExNDUpIiwiS3lcdTAxNmJhbiAoMTE0NVx1MjAxMzExNTEpIiwiTmlucGVpICgxMTUxXHUyMDEzMTE1NCkiLCJLeVx1MDE2Ymp1ICgxMTU0XHUyMDEzMTE1NikiLCJIXHUwMTRkZ2VuICgxMTU2XHUyMDEzMTE1OSkiLCJIZWlqaSAoMTE1OVx1MjAxMzExNjApIiwiRWlyeWFrdSAoMTE2''@;'; put 'put ''MFx1MjAxMzExNjEpIiwiXHUwMTRjaG8gKDExNjFcdTIwMTMxMTYzKSIsIkNoXHUwMTRka2FuICgxMTYzXHUyMDEzMTE2NSkiLCJFaW1hbiAoMTE2NVx1MjAxMzExNjYpIiwiTmluXHUyMDE5YW4gKDExNjZcdTIwMTMxMTY5KSIsIkthXHUwMTRkICgxMTY5XHUyMDEzMTE3MSkiLCJTaFx1MDE0''@;'; put 'put ''ZGFuICgxMTcxXHUyMDEzMTE3NSkiLCJBbmdlbiAoMTE3NVx1MjAxMzExNzcpIiwiSmlzaFx1MDE0ZCAoMTE3N1x1MjAxMzExODEpIiwiWVx1MDE0ZHdhICgxMTgxXHUyMDEzMTE4MikiLCJKdWVpICgxMTgyXHUyMDEzMTE4NCkiLCJHZW5yeWFrdSAoMTE4NFx1MjAxMzExODUpIiwiQnVuamkg''@;'; put 'put ''KDExODVcdTIwMTMxMTkwKSIsIktlbmt5XHUwMTZiICgxMTkwXHUyMDEzMTE5OSkiLCJTaFx1MDE0ZGppICgxMTk5XHUyMDEzMTIwMSkiLCJLZW5uaW4gKDEyMDFcdTIwMTMxMjA0KSIsIkdlbmt5XHUwMTZiICgxMjA0XHUyMDEzMTIwNikiLCJLZW5cdTIwMTllaSAoMTIwNlx1MjAxMzEyMDcp''@;'; put 'put ''IiwiSlx1MDE0ZGdlbiAoMTIwN1x1MjAxMzEyMTEpIiwiS2Vucnlha3UgKDEyMTFcdTIwMTMxMjEzKSIsIktlbnBcdTAxNGQgKDEyMTNcdTIwMTMxMjE5KSIsIkpcdTAxNGRreVx1MDE2YiAoMTIxOVx1MjAxMzEyMjIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTIyMlx1MjAxMzEyMjQpIiwiR2Vubmlu''@;'; put 'put ''ICgxMjI0XHUyMDEzMTIyNSkiLCJLYXJva3UgKDEyMjVcdTIwMTMxMjI3KSIsIkFudGVpICgxMjI3XHUyMDEzMTIyOSkiLCJLYW5raSAoMTIyOVx1MjAxMzEyMzIpIiwiSlx1MDE0ZGVpICgxMjMyXHUyMDEzMTIzMykiLCJUZW5wdWt1ICgxMjMzXHUyMDEzMTIzNCkiLCJCdW5yeWFrdSAoMTIz''@;'; put 'put ''NFx1MjAxMzEyMzUpIiwiS2F0ZWkgKDEyMzVcdTIwMTMxMjM4KSIsIlJ5YWt1bmluICgxMjM4XHUyMDEzMTIzOSkiLCJFblx1MjAxOVx1MDE0ZCAoMTIzOVx1MjAxMzEyNDApIiwiTmluamkgKDEyNDBcdTIwMTMxMjQzKSIsIkthbmdlbiAoMTI0M1x1MjAxMzEyNDcpIiwiSFx1MDE0ZGppICgx''@;'; put 'put ''MjQ3XHUyMDEzMTI0OSkiLCJLZW5jaFx1MDE0ZCAoMTI0OVx1MjAxMzEyNTYpIiwiS1x1MDE0ZGdlbiAoMTI1Nlx1MjAxMzEyNTcpIiwiU2hcdTAxNGRrYSAoMTI1N1x1MjAxMzEyNTkpIiwiU2hcdTAxNGRnZW4gKDEyNTlcdTIwMTMxMjYwKSIsIkJ1blx1MjAxOVx1MDE0ZCAoMTI2MFx1MjAx''@;'; put 'put ''MzEyNjEpIiwiS1x1MDE0ZGNoXHUwMTRkICgxMjYxXHUyMDEzMTI2NCkiLCJCdW5cdTIwMTllaSAoMTI2NFx1MjAxMzEyNzUpIiwiS2VuamkgKDEyNzVcdTIwMTMxMjc4KSIsIktcdTAxNGRhbiAoMTI3OFx1MjAxMzEyODgpIiwiU2hcdTAxNGRcdTAxNGQgKDEyODhcdTIwMTMxMjkzKSIsIkVp''@;'; put 'put ''bmluICgxMjkzXHUyMDEzMTI5OSkiLCJTaFx1MDE0ZGFuICgxMjk5XHUyMDEzMTMwMikiLCJLZW5nZW4gKDEzMDJcdTIwMTMxMzAzKSIsIkthZ2VuICgxMzAzXHUyMDEzMTMwNikiLCJUb2t1amkgKDEzMDZcdTIwMTMxMzA4KSIsIkVua3lcdTAxNGQgKDEzMDhcdTIwMTMxMzExKSIsIlx1MDE0''@;'; put 'put ''Y2NoXHUwMTRkICgxMzExXHUyMDEzMTMxMikiLCJTaFx1MDE0ZHdhICgxMzEyXHUyMDEzMTMxNykiLCJCdW5wXHUwMTRkICgxMzE3XHUyMDEzMTMxOSkiLCJHZW5cdTAxNGQgKDEzMTlcdTIwMTMxMzIxKSIsIkdlbmtcdTAxNGQgKDEzMjFcdTIwMTMxMzI0KSIsIlNoXHUwMTRkY2hcdTAxNmIg''@;'; put 'put ''KDEzMjRcdTIwMTMxMzI2KSIsIkthcnlha3UgKDEzMjZcdTIwMTMxMzI5KSIsIkdlbnRva3UgKDEzMjlcdTIwMTMxMzMxKSIsIkdlbmtcdTAxNGQgKDEzMzFcdTIwMTMxMzM0KSIsIktlbm11ICgxMzM0XHUyMDEzMTMzNikiLCJFbmdlbiAoMTMzNlx1MjAxMzEzNDApIiwiS1x1MDE0ZGtva3Ug''@;'; put 'put ''KDEzNDBcdTIwMTMxMzQ2KSIsIlNoXHUwMTRkaGVpICgxMzQ2XHUyMDEzMTM3MCkiLCJLZW50b2t1ICgxMzcwXHUyMDEzMTM3MikiLCJCdW5jaFx1MDE2YiAoMTM3Mlx1MjAxMzEzNzUpIiwiVGVuanUgKDEzNzVcdTIwMTMxMzc5KSIsIktcdTAxNGRyeWFrdSAoMTM3OVx1MjAxMzEzODEpIiwi''@;'; put 'put ''S1x1MDE0ZHdhICgxMzgxXHUyMDEzMTM4NCkiLCJHZW5jaFx1MDE2YiAoMTM4NFx1MjAxMzEzOTIpIiwiTWVpdG9rdSAoMTM4NFx1MjAxMzEzODcpIiwiS2FrZWkgKDEzODdcdTIwMTMxMzg5KSIsIktcdTAxNGRcdTAxNGQgKDEzODlcdTIwMTMxMzkwKSIsIk1laXRva3UgKDEzOTBcdTIwMTMx''@;'; put 'put ''Mzk0KSIsIlx1MDE0Y2VpICgxMzk0XHUyMDEzMTQyOCkiLCJTaFx1MDE0ZGNoXHUwMTRkICgxNDI4XHUyMDEzMTQyOSkiLCJFaWt5XHUwMTRkICgxNDI5XHUyMDEzMTQ0MSkiLCJLYWtpdHN1ICgxNDQxXHUyMDEzMTQ0NCkiLCJCdW5cdTIwMTlhbiAoMTQ0NFx1MjAxMzE0NDkpIiwiSFx1MDE0''@;'; put 'put ''ZHRva3UgKDE0NDlcdTIwMTMxNDUyKSIsIkt5XHUwMTRkdG9rdSAoMTQ1Mlx1MjAxMzE0NTUpIiwiS1x1MDE0ZHNoXHUwMTRkICgxNDU1XHUyMDEzMTQ1NykiLCJDaFx1MDE0ZHJva3UgKDE0NTdcdTIwMTMxNDYwKSIsIkthbnNoXHUwMTRkICgxNDYwXHUyMDEzMTQ2NikiLCJCdW5zaFx1MDE0''@;'; put 'put ''ZCAoMTQ2Nlx1MjAxMzE0NjcpIiwiXHUwMTRjbmluICgxNDY3XHUyMDEzMTQ2OSkiLCJCdW5tZWkgKDE0NjlcdTIwMTMxNDg3KSIsIkNoXHUwMTRka3lcdTAxNGQgKDE0ODdcdTIwMTMxNDg5KSIsIkVudG9rdSAoMTQ4OVx1MjAxMzE0OTIpIiwiTWVpXHUwMTRkICgxNDkyXHUyMDEzMTUwMSki''@;'; put 'put ''LCJCdW5raSAoMTUwMVx1MjAxMzE1MDQpIiwiRWlzaFx1MDE0ZCAoMTUwNFx1MjAxMzE1MjEpIiwiVGFpZWkgKDE1MjFcdTIwMTMxNTI4KSIsIkt5XHUwMTRkcm9rdSAoMTUyOFx1MjAxMzE1MzIpIiwiVGVuYnVuICgxNTMyXHUyMDEzMTU1NSkiLCJLXHUwMTRkamkgKDE1NTVcdTIwMTMxNTU4''@;'; put 'put ''KSIsIkVpcm9rdSAoMTU1OFx1MjAxMzE1NzApIiwiR2Vua2kgKDE1NzBcdTIwMTMxNTczKSIsIlRlbnNoXHUwMTRkICgxNTczXHUyMDEzMTU5MikiLCJCdW5yb2t1ICgxNTkyXHUyMDEzMTU5NikiLCJLZWljaFx1MDE0ZCAoMTU5Nlx1MjAxMzE2MTUpIiwiR2VubmEgKDE2MTVcdTIwMTMxNjI0''@;'; put 'put ''KSIsIkthblx1MjAxOWVpICgxNjI0XHUyMDEzMTY0NCkiLCJTaFx1MDE0ZGhvICgxNjQ0XHUyMDEzMTY0OCkiLCJLZWlhbiAoMTY0OFx1MjAxMzE2NTIpIiwiSlx1MDE0ZFx1MDE0ZCAoMTY1Mlx1MjAxMzE2NTUpIiwiTWVpcmVraSAoMTY1NVx1MjAxMzE2NTgpIiwiTWFuamkgKDE2NThcdTIw''@;'; put 'put ''MTMxNjYxKSIsIkthbmJ1biAoMTY2MVx1MjAxMzE2NzMpIiwiRW5wXHUwMTRkICgxNjczXHUyMDEzMTY4MSkiLCJUZW5uYSAoMTY4MVx1MjAxMzE2ODQpIiwiSlx1MDE0ZGt5XHUwMTRkICgxNjg0XHUyMDEzMTY4OCkiLCJHZW5yb2t1ICgxNjg4XHUyMDEzMTcwNCkiLCJIXHUwMTRkZWkgKDE3''@;'; put 'put ''MDRcdTIwMTMxNzExKSIsIlNoXHUwMTRkdG9rdSAoMTcxMVx1MjAxMzE3MTYpIiwiS3lcdTAxNGRoXHUwMTRkICgxNzE2XHUyMDEzMTczNikiLCJHZW5idW4gKDE3MzZcdTIwMTMxNzQxKSIsIkthbnBcdTAxNGQgKDE3NDFcdTIwMTMxNzQ0KSIsIkVua3lcdTAxNGQgKDE3NDRcdTIwMTMxNzQ4''@;'; put 'put ''KSIsIkthblx1MjAxOWVuICgxNzQ4XHUyMDEzMTc1MSkiLCJIXHUwMTRkcmVraSAoMTc1MVx1MjAxMzE3NjQpIiwiTWVpd2EgKDE3NjRcdTIwMTMxNzcyKSIsIkFuXHUyMDE5ZWkgKDE3NzJcdTIwMTMxNzgxKSIsIlRlbm1laSAoMTc4MVx1MjAxMzE3ODkpIiwiS2Fuc2VpICgxNzg5XHUyMDEz''@;'; put 'put ''MTgwMSkiLCJLeVx1MDE0ZHdhICgxODAxXHUyMDEzMTgwNCkiLCJCdW5rYSAoMTgwNFx1MjAxMzE4MTgpIiwiQnVuc2VpICgxODE4XHUyMDEzMTgzMCkiLCJUZW5wXHUwMTRkICgxODMwXHUyMDEzMTg0NCkiLCJLXHUwMTRka2EgKDE4NDRcdTIwMTMxODQ4KSIsIkthZWkgKDE4NDhcdTIwMTMx''@;'; put 'put ''ODU0KSIsIkFuc2VpICgxODU0XHUyMDEzMTg2MCkiLCJNYW5cdTIwMTllbiAoMTg2MFx1MjAxMzE4NjEpIiwiQnVua3lcdTAxNmIgKDE4NjFcdTIwMTMxODY0KSIsIkdlbmppICgxODY0XHUyMDEzMTg2NSkiLCJLZWlcdTAxNGQgKDE4NjVcdTIwMTMxODY4KSIsIk1laWppIiwiVGFpc2hcdTAx''@;'; put 'put ''NGQiLCJTaFx1MDE0ZHdhIiwiSGVpc2VpIl0sImxvbmciOlsiVGFpa2EgKDY0NVx1MjAxMzY1MCkiLCJIYWt1Y2hpICg2NTBcdTIwMTM2NzEpIiwiSGFrdWhcdTAxNGQgKDY3Mlx1MjAxMzY4NikiLCJTaHVjaFx1MDE0ZCAoNjg2XHUyMDEzNzAxKSIsIlRhaWhcdTAxNGQgKDcwMVx1MjAxMzcw''@;'; put 'put ''NCkiLCJLZWl1biAoNzA0XHUyMDEzNzA4KSIsIldhZFx1MDE0ZCAoNzA4XHUyMDEzNzE1KSIsIlJlaWtpICg3MTVcdTIwMTM3MTcpIiwiWVx1MDE0ZHJcdTAxNGQgKDcxN1x1MjAxMzcyNCkiLCJKaW5raSAoNzI0XHUyMDEzNzI5KSIsIlRlbnB5XHUwMTRkICg3MjlcdTIwMTM3NDkpIiwiVGVu''@;'; put 'put ''cHlcdTAxNGQta2FtcFx1MDE0ZCAoNzQ5LTc0OSkiLCJUZW5weVx1MDE0ZC1zaFx1MDE0ZGhcdTAxNGQgKDc0OS03NTcpIiwiVGVucHlcdTAxNGQtaFx1MDE0ZGppICg3NTctNzY1KSIsIlRlbnB5XHUwMTRkLWppbmdvICg3NjUtNzY3KSIsIkppbmdvLWtlaXVuICg3NjctNzcwKSIsIkhcdTAx''@;'; put 'put ''NGRraSAoNzcwXHUyMDEzNzgwKSIsIlRlbi1cdTAxNGQgKDc4MS03ODIpIiwiRW5yeWFrdSAoNzgyXHUyMDEzODA2KSIsIkRhaWRcdTAxNGQgKDgwNlx1MjAxMzgxMCkiLCJLXHUwMTRkbmluICg4MTBcdTIwMTM4MjQpIiwiVGVuY2hcdTAxNGQgKDgyNFx1MjAxMzgzNCkiLCJKXHUwMTRkd2Eg''@;'; put 'put ''KDgzNFx1MjAxMzg0OCkiLCJLYWpcdTAxNGQgKDg0OFx1MjAxMzg1MSkiLCJOaW5qdSAoODUxXHUyMDEzODU0KSIsIlNhaWtcdTAxNGQgKDg1NFx1MjAxMzg1NykiLCJUZW4tYW4gKDg1Ny04NTkpIiwiSlx1MDE0ZGdhbiAoODU5XHUyMDEzODc3KSIsIkdhbmd5XHUwMTRkICg4NzdcdTIwMTM4''@;'; put 'put ''ODUpIiwiTmlubmEgKDg4NVx1MjAxMzg4OSkiLCJLYW5weVx1MDE0ZCAoODg5XHUyMDEzODk4KSIsIlNoXHUwMTRkdGFpICg4OThcdTIwMTM5MDEpIiwiRW5naSAoOTAxXHUyMDEzOTIzKSIsIkVuY2hcdTAxNGQgKDkyM1x1MjAxMzkzMSkiLCJKXHUwMTRkaGVpICg5MzFcdTIwMTM5MzgpIiwi''@;'; put 'put ''VGVuZ3lcdTAxNGQgKDkzOFx1MjAxMzk0NykiLCJUZW5yeWFrdSAoOTQ3XHUyMDEzOTU3KSIsIlRlbnRva3UgKDk1N1x1MjAxMzk2MSkiLCJcdTAxNGN3YSAoOTYxXHUyMDEzOTY0KSIsIktcdTAxNGRoXHUwMTRkICg5NjRcdTIwMTM5NjgpIiwiQW5uYSAoOTY4XHUyMDEzOTcwKSIsIlRlbnJv''@;'; put 'put ''a3UgKDk3MFx1MjAxMzk3MykiLCJUZW5cdTIwMTllbiAoOTczXHUyMDEzOTc2KSIsIkpcdTAxNGRnZW4gKDk3Nlx1MjAxMzk3OCkiLCJUZW5nZW4gKDk3OFx1MjAxMzk4MykiLCJFaWthbiAoOTgzXHUyMDEzOTg1KSIsIkthbm5hICg5ODVcdTIwMTM5ODcpIiwiRWllbiAoOTg3XHUyMDEzOTg5''@;'; put 'put ''KSIsIkVpc28gKDk4OVx1MjAxMzk5MCkiLCJTaFx1MDE0ZHJ5YWt1ICg5OTBcdTIwMTM5OTUpIiwiQ2hcdTAxNGR0b2t1ICg5OTVcdTIwMTM5OTkpIiwiQ2hcdTAxNGRoXHUwMTRkICg5OTlcdTIwMTMxMDA0KSIsIkthbmtcdTAxNGQgKDEwMDRcdTIwMTMxMDEyKSIsIkNoXHUwMTRkd2EgKDEw''@;'; put 'put ''MTJcdTIwMTMxMDE3KSIsIkthbm5pbiAoMTAxN1x1MjAxMzEwMjEpIiwiSmlhbiAoMTAyMVx1MjAxMzEwMjQpIiwiTWFuanUgKDEwMjRcdTIwMTMxMDI4KSIsIkNoXHUwMTRkZ2VuICgxMDI4XHUyMDEzMTAzNykiLCJDaFx1MDE0ZHJ5YWt1ICgxMDM3XHUyMDEzMTA0MCkiLCJDaFx1MDE0ZGt5''@;'; put 'put ''XHUwMTZiICgxMDQwXHUyMDEzMTA0NCkiLCJLYW50b2t1ICgxMDQ0XHUyMDEzMTA0NikiLCJFaXNoXHUwMTRkICgxMDQ2XHUyMDEzMTA1MykiLCJUZW5naSAoMTA1M1x1MjAxMzEwNTgpIiwiS1x1MDE0ZGhlaSAoMTA1OFx1MjAxMzEwNjUpIiwiSmlyeWFrdSAoMTA2NVx1MjAxMzEwNjkpIiwi''@;'; put 'put ''RW5reVx1MDE2YiAoMTA2OVx1MjAxMzEwNzQpIiwiU2hcdTAxNGRobyAoMTA3NFx1MjAxMzEwNzcpIiwiU2hcdTAxNGRyeWFrdSAoMTA3N1x1MjAxMzEwODEpIiwiRWloXHUwMTRkICgxMDgxXHUyMDEzMTA4NCkiLCJcdTAxNGN0b2t1ICgxMDg0XHUyMDEzMTA4NykiLCJLYW5qaSAoMTA4N1x1''@;'; put 'put ''MjAxMzEwOTQpIiwiS2FoXHUwMTRkICgxMDk0XHUyMDEzMTA5NikiLCJFaWNoXHUwMTRkICgxMDk2XHUyMDEzMTA5NykiLCJKXHUwMTRkdG9rdSAoMTA5N1x1MjAxMzEwOTkpIiwiS1x1MDE0ZHdhICgxMDk5XHUyMDEzMTEwNCkiLCJDaFx1MDE0ZGppICgxMTA0XHUyMDEzMTEwNikiLCJLYXNo''@;'; put 'put ''XHUwMTRkICgxMTA2XHUyMDEzMTEwOCkiLCJUZW5uaW4gKDExMDhcdTIwMTMxMTEwKSIsIlRlbi1laSAoMTExMC0xMTEzKSIsIkVpa3lcdTAxNmIgKDExMTNcdTIwMTMxMTE4KSIsIkdlblx1MjAxOWVpICgxMTE4XHUyMDEzMTEyMCkiLCJIXHUwMTRkYW4gKDExMjBcdTIwMTMxMTI0KSIsIlRl''@;'; put 'put ''bmppICgxMTI0XHUyMDEzMTEyNikiLCJEYWlqaSAoMTEyNlx1MjAxMzExMzEpIiwiVGVuc2hcdTAxNGQgKDExMzFcdTIwMTMxMTMyKSIsIkNoXHUwMTRkc2hcdTAxNGQgKDExMzJcdTIwMTMxMTM1KSIsIkhcdTAxNGRlbiAoMTEzNVx1MjAxMzExNDEpIiwiRWlqaSAoMTE0MVx1MjAxMzExNDIp''@;'; put 'put ''IiwiS1x1MDE0ZGppICgxMTQyXHUyMDEzMTE0NCkiLCJUZW5cdTIwMTl5XHUwMTRkICgxMTQ0XHUyMDEzMTE0NSkiLCJLeVx1MDE2YmFuICgxMTQ1XHUyMDEzMTE1MSkiLCJOaW5wZWkgKDExNTFcdTIwMTMxMTU0KSIsIkt5XHUwMTZianUgKDExNTRcdTIwMTMxMTU2KSIsIkhcdTAxNGRnZW4g''@;'; put 'put ''KDExNTZcdTIwMTMxMTU5KSIsIkhlaWppICgxMTU5XHUyMDEzMTE2MCkiLCJFaXJ5YWt1ICgxMTYwXHUyMDEzMTE2MSkiLCJcdTAxNGNobyAoMTE2MVx1MjAxMzExNjMpIiwiQ2hcdTAxNGRrYW4gKDExNjNcdTIwMTMxMTY1KSIsIkVpbWFuICgxMTY1XHUyMDEzMTE2NikiLCJOaW5cdTIwMTlh''@;'; put 'put ''biAoMTE2Nlx1MjAxMzExNjkpIiwiS2FcdTAxNGQgKDExNjlcdTIwMTMxMTcxKSIsIlNoXHUwMTRkYW4gKDExNzFcdTIwMTMxMTc1KSIsIkFuZ2VuICgxMTc1XHUyMDEzMTE3NykiLCJKaXNoXHUwMTRkICgxMTc3XHUyMDEzMTE4MSkiLCJZXHUwMTRkd2EgKDExODFcdTIwMTMxMTgyKSIsIkp1''@;'; put 'put ''ZWkgKDExODJcdTIwMTMxMTg0KSIsIkdlbnJ5YWt1ICgxMTg0XHUyMDEzMTE4NSkiLCJCdW5qaSAoMTE4NVx1MjAxMzExOTApIiwiS2Vua3lcdTAxNmIgKDExOTBcdTIwMTMxMTk5KSIsIlNoXHUwMTRkamkgKDExOTlcdTIwMTMxMjAxKSIsIktlbm5pbiAoMTIwMVx1MjAxMzEyMDQpIiwiR2Vu''@;'; put 'put ''a3lcdTAxNmIgKDEyMDRcdTIwMTMxMjA2KSIsIktlblx1MjAxOWVpICgxMjA2XHUyMDEzMTIwNykiLCJKXHUwMTRkZ2VuICgxMjA3XHUyMDEzMTIxMSkiLCJLZW5yeWFrdSAoMTIxMVx1MjAxMzEyMTMpIiwiS2VucFx1MDE0ZCAoMTIxM1x1MjAxMzEyMTkpIiwiSlx1MDE0ZGt5XHUwMTZiICgx''@;'; put 'put ''MjE5XHUyMDEzMTIyMikiLCJKXHUwMTRkXHUwMTRkICgxMjIyXHUyMDEzMTIyNCkiLCJHZW5uaW4gKDEyMjRcdTIwMTMxMjI1KSIsIkthcm9rdSAoMTIyNVx1MjAxMzEyMjcpIiwiQW50ZWkgKDEyMjdcdTIwMTMxMjI5KSIsIkthbmtpICgxMjI5XHUyMDEzMTIzMikiLCJKXHUwMTRkZWkgKDEy''@;'; put 'put ''MzJcdTIwMTMxMjMzKSIsIlRlbnB1a3UgKDEyMzNcdTIwMTMxMjM0KSIsIkJ1bnJ5YWt1ICgxMjM0XHUyMDEzMTIzNSkiLCJLYXRlaSAoMTIzNVx1MjAxMzEyMzgpIiwiUnlha3VuaW4gKDEyMzhcdTIwMTMxMjM5KSIsIkVuXHUyMDE5XHUwMTRkICgxMjM5XHUyMDEzMTI0MCkiLCJOaW5qaSAo''@;'; put 'put ''MTI0MFx1MjAxMzEyNDMpIiwiS2FuZ2VuICgxMjQzXHUyMDEzMTI0NykiLCJIXHUwMTRkamkgKDEyNDdcdTIwMTMxMjQ5KSIsIktlbmNoXHUwMTRkICgxMjQ5XHUyMDEzMTI1NikiLCJLXHUwMTRkZ2VuICgxMjU2XHUyMDEzMTI1NykiLCJTaFx1MDE0ZGthICgxMjU3XHUyMDEzMTI1OSkiLCJT''@;'; put 'put ''aFx1MDE0ZGdlbiAoMTI1OVx1MjAxMzEyNjApIiwiQnVuXHUyMDE5XHUwMTRkICgxMjYwXHUyMDEzMTI2MSkiLCJLXHUwMTRkY2hcdTAxNGQgKDEyNjFcdTIwMTMxMjY0KSIsIkJ1blx1MjAxOWVpICgxMjY0XHUyMDEzMTI3NSkiLCJLZW5qaSAoMTI3NVx1MjAxMzEyNzgpIiwiS1x1MDE0ZGFu''@;'; put 'put ''ICgxMjc4XHUyMDEzMTI4OCkiLCJTaFx1MDE0ZFx1MDE0ZCAoMTI4OFx1MjAxMzEyOTMpIiwiRWluaW4gKDEyOTNcdTIwMTMxMjk5KSIsIlNoXHUwMTRkYW4gKDEyOTlcdTIwMTMxMzAyKSIsIktlbmdlbiAoMTMwMlx1MjAxMzEzMDMpIiwiS2FnZW4gKDEzMDNcdTIwMTMxMzA2KSIsIlRva3Vq''@;'; put 'put ''aSAoMTMwNlx1MjAxMzEzMDgpIiwiRW5reVx1MDE0ZCAoMTMwOFx1MjAxMzEzMTEpIiwiXHUwMTRjY2hcdTAxNGQgKDEzMTFcdTIwMTMxMzEyKSIsIlNoXHUwMTRkd2EgKDEzMTJcdTIwMTMxMzE3KSIsIkJ1bnBcdTAxNGQgKDEzMTdcdTIwMTMxMzE5KSIsIkdlblx1MDE0ZCAoMTMxOVx1MjAx''@;'; put 'put ''MzEzMjEpIiwiR2Vua1x1MDE0ZCAoMTMyMVx1MjAxMzEzMjQpIiwiU2hcdTAxNGRjaFx1MDE2YiAoMTMyNFx1MjAxMzEzMjYpIiwiS2FyeWFrdSAoMTMyNlx1MjAxMzEzMjkpIiwiR2VudG9rdSAoMTMyOVx1MjAxMzEzMzEpIiwiR2Vua1x1MDE0ZCAoMTMzMVx1MjAxMzEzMzQpIiwiS2VubXUg''@;'; put 'put ''KDEzMzRcdTIwMTMxMzM2KSIsIkVuZ2VuICgxMzM2XHUyMDEzMTM0MCkiLCJLXHUwMTRka29rdSAoMTM0MFx1MjAxMzEzNDYpIiwiU2hcdTAxNGRoZWkgKDEzNDZcdTIwMTMxMzcwKSIsIktlbnRva3UgKDEzNzBcdTIwMTMxMzcyKSIsIkJ1bmNoXHUwMTZiICgxMzcyXHUyMDEzMTM3NSkiLCJU''@;'; put 'put ''ZW5qdSAoMTM3NVx1MjAxMzEzNzkpIiwiS1x1MDE0ZHJ5YWt1ICgxMzc5XHUyMDEzMTM4MSkiLCJLXHUwMTRkd2EgKDEzODFcdTIwMTMxMzg0KSIsIkdlbmNoXHUwMTZiICgxMzg0XHUyMDEzMTM5MikiLCJNZWl0b2t1ICgxMzg0XHUyMDEzMTM4NykiLCJLYWtlaSAoMTM4N1x1MjAxMzEzODkp''@;'; put 'put ''IiwiS1x1MDE0ZFx1MDE0ZCAoMTM4OVx1MjAxMzEzOTApIiwiTWVpdG9rdSAoMTM5MFx1MjAxMzEzOTQpIiwiXHUwMTRjZWkgKDEzOTRcdTIwMTMxNDI4KSIsIlNoXHUwMTRkY2hcdTAxNGQgKDE0MjhcdTIwMTMxNDI5KSIsIkVpa3lcdTAxNGQgKDE0MjlcdTIwMTMxNDQxKSIsIktha2l0c3Ug''@;'; put 'put ''KDE0NDFcdTIwMTMxNDQ0KSIsIkJ1blx1MjAxOWFuICgxNDQ0XHUyMDEzMTQ0OSkiLCJIXHUwMTRkdG9rdSAoMTQ0OVx1MjAxMzE0NTIpIiwiS3lcdTAxNGR0b2t1ICgxNDUyXHUyMDEzMTQ1NSkiLCJLXHUwMTRkc2hcdTAxNGQgKDE0NTVcdTIwMTMxNDU3KSIsIkNoXHUwMTRkcm9rdSAoMTQ1''@;'; put 'put ''N1x1MjAxMzE0NjApIiwiS2Fuc2hcdTAxNGQgKDE0NjBcdTIwMTMxNDY2KSIsIkJ1bnNoXHUwMTRkICgxNDY2XHUyMDEzMTQ2NykiLCJcdTAxNGNuaW4gKDE0NjdcdTIwMTMxNDY5KSIsIkJ1bm1laSAoMTQ2OVx1MjAxMzE0ODcpIiwiQ2hcdTAxNGRreVx1MDE0ZCAoMTQ4N1x1MjAxMzE0ODkp''@;'; put 'put ''IiwiRW50b2t1ICgxNDg5XHUyMDEzMTQ5MikiLCJNZWlcdTAxNGQgKDE0OTJcdTIwMTMxNTAxKSIsIkJ1bmtpICgxNTAxXHUyMDEzMTUwNCkiLCJFaXNoXHUwMTRkICgxNTA0XHUyMDEzMTUyMSkiLCJUYWllaSAoMTUyMVx1MjAxMzE1MjgpIiwiS3lcdTAxNGRyb2t1ICgxNTI4XHUyMDEzMTUz''@;'; put 'put ''MikiLCJUZW5idW4gKDE1MzJcdTIwMTMxNTU1KSIsIktcdTAxNGRqaSAoMTU1NVx1MjAxMzE1NTgpIiwiRWlyb2t1ICgxNTU4XHUyMDEzMTU3MCkiLCJHZW5raSAoMTU3MFx1MjAxMzE1NzMpIiwiVGVuc2hcdTAxNGQgKDE1NzNcdTIwMTMxNTkyKSIsIkJ1bnJva3UgKDE1OTJcdTIwMTMxNTk2''@;'; put 'put ''KSIsIktlaWNoXHUwMTRkICgxNTk2XHUyMDEzMTYxNSkiLCJHZW5uYSAoMTYxNVx1MjAxMzE2MjQpIiwiS2FuXHUyMDE5ZWkgKDE2MjRcdTIwMTMxNjQ0KSIsIlNoXHUwMTRkaG8gKDE2NDRcdTIwMTMxNjQ4KSIsIktlaWFuICgxNjQ4XHUyMDEzMTY1MikiLCJKXHUwMTRkXHUwMTRkICgxNjUy''@;'; put 'put ''XHUyMDEzMTY1NSkiLCJNZWlyZWtpICgxNjU1XHUyMDEzMTY1OCkiLCJNYW5qaSAoMTY1OFx1MjAxMzE2NjEpIiwiS2FuYnVuICgxNjYxXHUyMDEzMTY3MykiLCJFbnBcdTAxNGQgKDE2NzNcdTIwMTMxNjgxKSIsIlRlbm5hICgxNjgxXHUyMDEzMTY4NCkiLCJKXHUwMTRka3lcdTAxNGQgKDE2''@;'; put 'put ''ODRcdTIwMTMxNjg4KSIsIkdlbnJva3UgKDE2ODhcdTIwMTMxNzA0KSIsIkhcdTAxNGRlaSAoMTcwNFx1MjAxMzE3MTEpIiwiU2hcdTAxNGR0b2t1ICgxNzExXHUyMDEzMTcxNikiLCJLeVx1MDE0ZGhcdTAxNGQgKDE3MTZcdTIwMTMxNzM2KSIsIkdlbmJ1biAoMTczNlx1MjAxMzE3NDEpIiwi''@;'; put 'put ''S2FucFx1MDE0ZCAoMTc0MVx1MjAxMzE3NDQpIiwiRW5reVx1MDE0ZCAoMTc0NFx1MjAxMzE3NDgpIiwiS2FuXHUyMDE5ZW4gKDE3NDhcdTIwMTMxNzUxKSIsIkhcdTAxNGRyZWtpICgxNzUxXHUyMDEzMTc2NCkiLCJNZWl3YSAoMTc2NFx1MjAxMzE3NzIpIiwiQW5cdTIwMTllaSAoMTc3Mlx1''@;'; put 'put ''MjAxMzE3ODEpIiwiVGVubWVpICgxNzgxXHUyMDEzMTc4OSkiLCJLYW5zZWkgKDE3ODlcdTIwMTMxODAxKSIsIkt5XHUwMTRkd2EgKDE4MDFcdTIwMTMxODA0KSIsIkJ1bmthICgxODA0XHUyMDEzMTgxOCkiLCJCdW5zZWkgKDE4MThcdTIwMTMxODMwKSIsIlRlbnBcdTAxNGQgKDE4MzBcdTIw''@;'; put 'put ''MTMxODQ0KSIsIktcdTAxNGRrYSAoMTg0NFx1MjAxMzE4NDgpIiwiS2FlaSAoMTg0OFx1MjAxMzE4NTQpIiwiQW5zZWkgKDE4NTRcdTIwMTMxODYwKSIsIk1hblx1MjAxOWVuICgxODYwXHUyMDEzMTg2MSkiLCJCdW5reVx1MDE2YiAoMTg2MVx1MjAxMzE4NjQpIiwiR2VuamkgKDE4NjRcdTIw''@;'; put 'put ''MTMxODY1KSIsIktlaVx1MDE0ZCAoMTg2NVx1MjAxMzE4NjgpIiwiTWVpamkiLCJUYWlzaFx1MDE0ZCIsIlNoXHUwMTRkd2EiLCJIZWlzZWkiXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX0sInBlcnNpYW4iOnsibW9udGhzIjp7Im5hcnJvdyI6WyIxIiwiMiIsIjMiLCI0''@;'; put 'put ''IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiXSwic2hvcnQiOlsiRmFydmFyZGluIiwiT3JkaWJlaGVzaHQiLCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNmYW5kIl0sImxvbmciOlsi''@;'; put 'put ''RmFydmFyZGluIiwiT3JkaWJlaGVzaHQiLCJLaG9yZGFkIiwiVGlyIiwiTW9yZGFkIiwiU2hhaHJpdmFyIiwiTWVociIsIkFiYW4iLCJBemFyIiwiRGV5IiwiQmFobWFuIiwiRXNmYW5kIl19LCJkYXlzIjp7Im5hcnJvdyI6WyJTIiwiTSIsIlQiLCJXIiwiVCIsIkYiLCJTIl0sInNob3J0Ijpb''@;'; put 'put ''IlN1biIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLCJsb25nIjpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LCJlcmFzIjp7Im5hcnJvdyI6WyJBUCJdLCJzaG9ydCI6WyJBUCJdLCJs''@;'; put 'put ''b25nIjpbIkFQIl19LCJkYXlQZXJpb2RzIjp7ImFtIjoiQU0iLCJwbSI6IlBNIn19LCJyb2MiOnsibW9udGhzIjp7Im5hcnJvdyI6WyJKIiwiRiIsIk0iLCJBIiwiTSIsIkoiLCJKIiwiQSIsIlMiLCJPIiwiTiIsIkQiXSwic2hvcnQiOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5Iiwi''@;'; put 'put ''SnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sImxvbmciOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXX0sImRh''@;'; put 'put ''eXMiOnsibmFycm93IjpbIlMiLCJNIiwiVCIsIlciLCJUIiwiRiIsIlMiXSwic2hvcnQiOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sImxvbmciOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5Iiwi''@;'; put 'put ''U2F0dXJkYXkiXX0sImVyYXMiOnsibmFycm93IjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXSwic2hvcnQiOlsiQmVmb3JlIFIuTy5DLiIsIk1pbmd1byJdLCJsb25nIjpbIkJlZm9yZSBSLk8uQy4iLCJNaW5ndW8iXX0sImRheVBlcmlvZHMiOnsiYW0iOiJBTSIsInBtIjoiUE0ifX19fSwi''@;'; put 'put ''bnVtYmVyIjp7Im51IjpbImxhdG4iXSwicGF0dGVybnMiOnsiZGVjaW1hbCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfSIsIm5lZ2F0aXZlUGF0dGVybiI6InttaW51c1NpZ259e251bWJlcn0ifSwiY3VycmVuY3kiOnsicG9zaXRpdmVQYXR0ZXJuIjoie2N1cnJlbmN5fXtudW1iZXJ9''@;'; put 'put ''IiwibmVnYXRpdmVQYXR0ZXJuIjoie21pbnVzU2lnbn17Y3VycmVuY3l9e251bWJlcn0ifSwicGVyY2VudCI6eyJwb3NpdGl2ZVBhdHRlcm4iOiJ7bnVtYmVyfXtwZXJjZW50U2lnbn0iLCJuZWdhdGl2ZVBhdHRlcm4iOiJ7bWludXNTaWdufXtudW1iZXJ9e3BlcmNlbnRTaWdufSJ9fSwic3lt''@;'; put 'put ''Ym9scyI6eyJsYXRuIjp7ImRlY2ltYWwiOiIuIiwiZ3JvdXAiOiIsIiwibmFuIjoiTmFOIiwicGx1c1NpZ24iOiIrIiwibWludXNTaWduIjoiLSIsInBlcmNlbnRTaWduIjoiJSIsImluZmluaXR5IjoiXHUyMjFlIn19LCJjdXJyZW5jaWVzIjp7IkFVRCI6IkEkIiwiQlJMIjoiUiQiLCJDQUQi''@;'; put 'put ''OiJDQSQiLCJDTlkiOiJDTlx4YTUiLCJFVVIiOiJcdTIwYWMiLCJHQlAiOiJceGEzIiwiSEtEIjoiSEskIiwiSUxTIjoiXHUyMGFhIiwiSU5SIjoiXHUyMGI5IiwiSlBZIjoiXHhhNSIsIktSVyI6Ilx1MjBhOSIsIk1YTiI6Ik1YJCIsIk5aRCI6Ik5aJCIsIlRXRCI6Ik5UJCIsIlVTRCI6IiQi''@;'; put 'put ''LCJWTkQiOiJcdTIwYWIiLCJYQUYiOiJGQ0ZBIiwiWENEIjoiRUMkIiwiWE9GIjoiQ0ZBIiwiWFBGIjoiQ0ZQRiJ9fX0nKX19LFhlPT57WGUoWGUucz02MDkzMil9XSk7'';'; put 'run;'; put '%sasjsout(JS64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=runtime.61e771b472ecb588-js; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''KCgpPT57InVzZSBzdHJpY3QiO3ZhciBlLHM9e30sdj17fTtmdW5jdGlvbiBhKGUpe3ZhciBuPXZbZV07aWYodm9pZCAwIT09bilyZXR1cm4gbi5leHBvcnRzO3ZhciByPXZbZV09e2lkOmUsbG9hZGVkOiExLGV4cG9ydHM6e319O3JldHVybiBzW2VdLmNhbGwoci5leHBvcnRzLHIsci5leHBv''@;'; put 'put ''cnRzLGEpLHIubG9hZGVkPSEwLHIuZXhwb3J0c31hLm09cyxlPVtdLGEuTz0obixyLG8sbCk9PntpZighcil7dmFyIHU9MS8wO2Zvcih0PTA7dDxlLmxlbmd0aDt0Kyspe2Zvcih2YXJbcixvLGxdPWVbdF0sZD0hMCxmPTA7ZjxyLmxlbmd0aDtmKyspKCExJmx8fHU+PWwpJiZPYmplY3Qua2V5''@;'; put 'put ''cyhhLk8pLmV2ZXJ5KHA9PmEuT1twXShyW2ZdKSk/ci5zcGxpY2UoZi0tLDEpOihkPSExLGw8dSYmKHU9bCkpO2lmKGQpe2Uuc3BsaWNlKHQtLSwxKTt2YXIgYz1vKCk7dm9pZCAwIT09YyYmKG49Yyl9fXJldHVybiBufWw9bHx8MDtmb3IodmFyIHQ9ZS5sZW5ndGg7dD4wJiZlW3QtMV1bMl0+''@;'; put 'put ''bDt0LS0pZVt0XT1lW3QtMV07ZVt0XT1bcixvLGxdfSxhLm49ZT0+e3ZhciBuPWUmJmUuX19lc01vZHVsZT8oKT0+ZS5kZWZhdWx0OigpPT5lO3JldHVybiBhLmQobix7YTpufSksbn0sYS5kPShlLG4pPT57Zm9yKHZhciByIGluIG4pYS5vKG4scikmJiFhLm8oZSxyKSYmT2JqZWN0LmRlZmlu''@;'; put 'put ''ZVByb3BlcnR5KGUscix7ZW51bWVyYWJsZTohMCxnZXQ6bltyXX0pfSxhLm89KGUsbik9Pk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG4pLGEucj1lPT57InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC50b1N0cmluZ1RhZyYmT2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KGUsU3ltYm9sLnRvU3RyaW5nVGFnLHt2YWx1ZToiTW9kdWxlIn0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0sYS5ubWQ9ZT0+KGUucGF0aHM9W10sZS5jaGlsZHJlbnx8KGUuY2hpbGRyZW49W10pLGUpLCgoKT0+e3ZhciBlPXs2NjY6''@;'; put 'put ''MH07YS5PLmo9bz0+MD09PWVbb107dmFyIG49KG8sbCk9Pnt2YXIgZixjLFt0LHUsZF09bCxpPTA7aWYodC5zb21lKF89PjAhPT1lW19dKSl7Zm9yKGYgaW4gdSlhLm8odSxmKSYmKGEubVtmXT11W2ZdKTtpZihkKXZhciBiPWQoYSl9Zm9yKG8mJm8obCk7aTx0Lmxlbmd0aDtpKyspYS5vKGUs''@;'; put 'put ''Yz10W2ldKSYmZVtjXSYmZVtjXVswXSgpLGVbY109MDtyZXR1cm4gYS5PKGIpfSxyPXNlbGYud2VicGFja0NodW5rZGF0YWNvbnRyb2xsZXI9c2VsZi53ZWJwYWNrQ2h1bmtkYXRhY29udHJvbGxlcnx8W107ci5mb3JFYWNoKG4uYmluZChudWxsLDApKSxyLnB1c2g9bi5iaW5kKG51bGwsci5w''@;'; put 'put ''dXNoLmJpbmQocikpfSkoKX0pKCk7'';'; put 'run;'; put '%sasjsout(JS64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=scripts.7cb1e94e2ffad0cd-js; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''KGZ1bmN0aW9uKFgsRjEsayl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihBKXt2YXIgZT17fTtmdW5jdGlvbiBsKHIpe2lmKGVbcl0pcmV0dXJuIGVbcl0uZXhwb3J0czt2YXIgYT1lW3JdPXtpOnIsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gQVtyXS5jYWxsKGEuZXhwb3J0cyxhLGEuZXhwb3J0''@;'; put 'put ''cyxsKSxhLmw9ITAsYS5leHBvcnRzfWwubT1BLGwuYz1lLGwuZD1mdW5jdGlvbihyLGEsYyl7bC5vKHIsYSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLGEse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLGdldDpjfSl9LGwubj1mdW5jdGlvbihyKXt2YXIgYT1yJiZyLl9fZXNNb2R1''@;'; put 'put ''bGU/ZnVuY3Rpb24oKXtyZXR1cm4gci5kZWZhdWx0fTpmdW5jdGlvbigpe3JldHVybiByfTtyZXR1cm4gbC5kKGEsImEiLGEpLGF9LGwubz1mdW5jdGlvbihyLGEpe3JldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocixhKX0sbC5wPSIiLGwobC5zPTEyOSl9KShb''@;'; put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDI2KSxjPWwoMTEpLG89bCgxMiksaD1sKDE4KSxmPSJwcm90b3R5cGUiLGc9ZnVuY3Rpb24odSxwLHYpe3ZhciBILEMsVixTLF89dSZnLkYsYj11JmcuRyxNPXUmZy5QLHg9dSZnLkIsRT1iP3I6dSZnLlM/cltwXXx8KHJbcF09e30pOihy''@;'; put 'put ''W3BdfHx7fSlbZl0sdz1iP2E6YVtwXXx8KGFbcF09e30pLE49d1tmXXx8KHdbZl09e30pO2ZvcihIIGluIGImJih2PXApLHYpVj0oKEM9IV8mJkUmJkVbSF0hPT1rKT9FOnYpW0hdLFM9eCYmQz9oKFYscik6TSYmImZ1bmN0aW9uIj09dHlwZW9mIFY/aChGdW5jdGlvbi5jYWxsLFYpOlYsRSYm''@;'; put 'put ''byhFLEgsVix1JmcuVSksd1tIXSE9ViYmYyh3LEgsUyksTSYmTltIXSE9ViYmKE5bSF09Vil9O3IuY29yZT1hLGcuRj0xLGcuRz0yLGcuUz00LGcuUD04LGcuQj0xNixnLlc9MzIsZy5VPTY0LGcuUj0xMjgsQS5leHBvcnRzPWd9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpO0EuZXhwb3J0''@;'; put 'put ''cz1mdW5jdGlvbihhKXtpZighcihhKSl0aHJvdyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhbiBvYmplY3QhIik7cmV0dXJuIGF9fSxmdW5jdGlvbihBLGUpe3ZhciBsPUEuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lk1hdGg9PU1hdGg/d2luZG93OiJ1bmRlZmlu''@;'; put 'put ''ZWQiIT10eXBlb2Ygc2VsZiYmc2VsZi5NYXRoPT1NYXRoP3NlbGY6RnVuY3Rpb24oInJldHVybiB0aGlzIikoKTsibnVtYmVyIj09dHlwZW9mIEYxJiYoRjE9bCl9LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe3RyeXtyZXR1cm4hIWwoKX1jYXRjaChyKXtyZXR1cm4hMH19''@;'; put 'put ''fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGw/bnVsbCE9PWw6ImZ1bmN0aW9uIj09dHlwZW9mIGx9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0NykoIndrcyIpLGE9bCgzMyksYz1sKDIpLlN5bWJvbCxvPSJmdW5jdGlvbiI9''@;'; put 'put ''PXR5cGVvZiBjOyhBLmV4cG9ydHM9ZnVuY3Rpb24oaCl7cmV0dXJuIHJbaF18fChyW2hdPW8mJmNbaF18fChvP2M6YSkoIlN5bWJvbC4iK2gpKX0pLnN0b3JlPXJ9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPU1hdGgubWluO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gMDxj''@;'; put 'put ''P2EocihjKSw5MDA3MTk5MjU0NzQwOTkxKTowfX0sZnVuY3Rpb24oQSxlLGwpe0EuZXhwb3J0cz0hbCgzKShmdW5jdGlvbigpe3JldHVybiA3IT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; put 'put ''cj1sKDEpLGE9bCg5MyksYz1sKDIyKSxvPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtlLmY9bCg3KT9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZixnLHUpe2lmKHIoZiksZz1jKGcsITApLHIodSksYSl0cnl7cmV0dXJuIG8oZixnLHUpfWNhdGNoKHApe31pZigiZ2V0ImluIHV8fCJz''@;'; put 'put ''ZXQiaW4gdSl0aHJvdyBUeXBlRXJyb3IoIkFjY2Vzc29ycyBub3Qgc3VwcG9ydGVkISIpO3JldHVybiJ2YWx1ZSJpbiB1JiYoZltnXT11LnZhbHVlKSxmfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihhKXtyZXR1cm4gT2JqZWN0KHIoYSkpfX0sZnVu''@;'; put 'put ''Y3Rpb24oQSxlKXtBLmV4cG9ydHM9ZnVuY3Rpb24obCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIGwpdGhyb3cgVHlwZUVycm9yKGwrIiBpcyBub3QgYSBmdW5jdGlvbiEiKTtyZXR1cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgzMik7QS5leHBvcnRzPWwoNyk/ZnVuY3Rp''@;'; put 'put ''b24oYyxvLGgpe3JldHVybiByLmYoYyxvLGEoMSxoKSl9OmZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gY1tvXT1oLGN9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMTEpLGM9bCgxNCksbz1sKDMzKSgic3JjIiksaD1sKDEzMSksZj0idG9TdHJpbmciLGc9KCIiK2gpLnNwbGl0KGYp''@;'; put 'put ''O2woMjYpLmluc3BlY3RTb3VyY2U9ZnVuY3Rpb24odSl7cmV0dXJuIGguY2FsbCh1KX0sKEEuZXhwb3J0cz1mdW5jdGlvbih1LHAsdixIKXt2YXIgQz0iZnVuY3Rpb24iPT10eXBlb2YgdjtDJiYoYyh2LCJuYW1lIil8fGEodiwibmFtZSIscCkpLHVbcF0hPT12JiYoQyYmKGModixvKXx8YSh2''@;'; put 'put ''LG8sdVtwXT8iIit1W3BdOmcuam9pbihTdHJpbmcocCkpKSksdT09PXI/dVtwXT12Okg/dVtwXT91W3BdPXY6YSh1LHAsdik6KGRlbGV0ZSB1W3BdLGEodSxwLHYpKSl9KShGdW5jdGlvbi5wcm90b3R5cGUsZixmdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzJiZ0aGlz''@;'; put 'put ''W29dfHxoLmNhbGwodGhpcyl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDMpLGM9bCgyMyksbz0vIi9nLGg9ZnVuY3Rpb24oZixnLHUscCl7dmFyIHY9U3RyaW5nKGMoZikpLEg9IjwiK2c7cmV0dXJuIiIhPT11JiYoSCs9IiAiK3UrJz0iJytTdHJpbmcocCkucmVwbGFjZShv''@;'; put 'put ''LCImcXVvdDsiKSsnIicpLEgrIj4iK3YrIjwvIitnKyI+In07QS5leHBvcnRzPWZ1bmN0aW9uKGYsZyl7dmFyIHU9e307dVtmXT1nKGgpLHIoci5QK3IuRiphKGZ1bmN0aW9uKCl7dmFyIHA9IiJbZl0oJyInKTtyZXR1cm4gcCE9PXAudG9Mb3dlckNhc2UoKXx8MzxwLnNwbGl0KCciJykubGVu''@;'; put 'put ''Z3RofSksIlN0cmluZyIsdSl9fSxmdW5jdGlvbihBLGUpe3ZhciBsPXt9Lmhhc093blByb3BlcnR5O0EuZXhwb3J0cz1mdW5jdGlvbihyLGEpe3JldHVybiBsLmNhbGwocixhKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQ4KSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1''@;'; put 'put ''cm4gcihhKGMpKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQ5KSxhPWwoMzIpLGM9bCgxNSksbz1sKDIyKSxoPWwoMTQpLGY9bCg5MyksZz1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO2UuZj1sKDcpP2c6ZnVuY3Rpb24ocCx2KXtpZihwPWMocCksdj1vKHYsITApLGYpdHJ5''@;'; put 'put ''e3JldHVybiBnKHAsdil9Y2F0Y2goSCl7fWlmKGgocCx2KSlyZXR1cm4gYSghci5mLmNhbGwocCx2KSxwW3ZdKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE0KSxhPWwoOSksYz1sKDY4KSgiSUVfUFJPVE8iKSxvPU9iamVjdC5wcm90b3R5cGU7QS5leHBvcnRzPU9iamVjdC5nZXRQcm90''@;'; put 'put ''b3R5cGVPZnx8ZnVuY3Rpb24oaCl7cmV0dXJuIGg9YShoKSxyKGgsYyk/aFtjXToiZnVuY3Rpb24iPT10eXBlb2YgaC5jb25zdHJ1Y3RvciYmaCBpbnN0YW5jZW9mIGguY29uc3RydWN0b3I/aC5jb25zdHJ1Y3Rvci5wcm90b3R5cGU6aCBpbnN0YW5jZW9mIE9iamVjdD9vOm51bGx9fSxmdW5j''@;'; put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgxMCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyxvKXtpZihyKGEpLGM9PT1rKXJldHVybiBhO3N3aXRjaChvKXtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBhLmNhbGwoYyxoKX07Y2FzZSAyOnJldHVybiBmdW5jdGlvbihoLGYpe3JldHVybiBh''@;'; put 'put ''LmNhbGwoYyxoLGYpfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKGgsZixnKXtyZXR1cm4gYS5jYWxsKGMsaCxmLGcpfX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYS5hcHBseShjLGFyZ3VtZW50cyl9fX0sZnVuY3Rpb24oQSxlKXt2YXIgbD17fS50b1N0cmluZztBLmV4cG9ydHM9ZnVuY3Rp''@;'; put 'put ''b24ocil7cmV0dXJuIGwuY2FsbChyKS5zbGljZSg4LC0xKX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9TWF0aC5jZWlsLHI9TWF0aC5mbG9vcjtBLmV4cG9ydHM9ZnVuY3Rpb24oYSl7cmV0dXJuIGlzTmFOKGE9K2EpPzA6KDA8YT9yOmwpKGEpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMyk7''@;'; put 'put ''QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7cmV0dXJuISFhJiZyKGZ1bmN0aW9uKCl7Yz9hLmNhbGwobnVsbCxmdW5jdGlvbigpe30sMSk6YS5jYWxsKG51bGwpfSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KTtBLmV4cG9ydHM9ZnVuY3Rpb24oYSxjKXtpZighcihhKSlyZXR1cm4gYTt2''@;'; put 'put ''YXIgbyxoO2lmKGMmJiJmdW5jdGlvbiI9PXR5cGVvZihvPWEudG9TdHJpbmcpJiYhcihoPW8uY2FsbChhKSl8fCJmdW5jdGlvbiI9PXR5cGVvZihvPWEudmFsdWVPZikmJiFyKGg9by5jYWxsKGEpKXx8IWMmJiJmdW5jdGlvbiI9PXR5cGVvZihvPWEudG9TdHJpbmcpJiYhcihoPW8uY2FsbChh''@;'; put 'put ''KSkpcmV0dXJuIGg7dGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX19LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe2lmKGw9PWspdGhyb3cgVHlwZUVycm9yKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAgIitsKTtyZXR1''@;'; put 'put ''cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNiksYz1sKDMpO0EuZXhwb3J0cz1mdW5jdGlvbihvLGgpe3ZhciBmPShhLk9iamVjdHx8e30pW29dfHxPYmplY3Rbb10sZz17fTtnW29dPWgoZikscihyLlMrci5GKmMoZnVuY3Rpb24oKXtmKDEpfSksIk9iamVjdCIsZyl9''@;'; put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOCksYT1sKDQ4KSxjPWwoOSksbz1sKDYpLGg9bCg4NCk7QS5leHBvcnRzPWZ1bmN0aW9uKGYsZyl7dmFyIHU9MT09ZixwPTI9PWYsdj0zPT1mLEg9ND09ZixDPTY9PWYsVj01PT1mfHxDLFM9Z3x8aDtyZXR1cm4gZnVuY3Rpb24oXyxiLE0pe2Zv''@;'; put 'put ''cih2YXIgeCxFLHc9YyhfKSxOPWEodyksST1yKGIsTSwzKSxXPW8oTi5sZW5ndGgpLE89MCxCPXU/UyhfLFcpOnA/UyhfLDApOms7TzxXO08rKylpZigoVnx8TyBpbiBOKSYmKEU9SSh4PU5bT10sTyx3KSxmKSlpZih1KUJbT109RTtlbHNlIGlmKEUpc3dpdGNoKGYpe2Nhc2UgMzpyZXR1cm4h''@;'; put 'put ''MDtjYXNlIDU6cmV0dXJuIHg7Y2FzZSA2OnJldHVybiBPO2Nhc2UgMjpCLnB1c2goeCl9ZWxzZSBpZihIKXJldHVybiExO3JldHVybiBDPy0xOnZ8fEg/SDpCfX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9QS5leHBvcnRzPXt2ZXJzaW9uOiIyLjYuMTEifTsibnVtYmVyIj09dHlwZW9mIFgmJihY''@;'; put 'put ''PWwpfSxmdW5jdGlvbihBLGUsbCl7aWYobCg3KSl7dmFyIHI9bCgyOSksYT1sKDIpLGM9bCgzKSxvPWwoMCksaD1sKDYyKSxmPWwoOTIpLGc9bCgxOCksdT1sKDM5KSxwPWwoMzIpLHY9bCgxMSksSD1sKDQxKSxDPWwoMjApLFY9bCg2KSxTPWwoMTIyKSxfPWwoMzUpLGI9bCgyMiksTT1sKDE0''@;'; put 'put ''KSx4PWwoNDQpLEU9bCg0KSx3PWwoOSksTj1sKDgxKSxJPWwoMzYpLFc9bCgxNyksTz1sKDM3KS5mLEI9bCg4MyksUj1sKDMzKSxsMT1sKDUpLGExPWwoMjUpLGgxPWwoNTIpLHUxPWwoNTEpLHAxPWwoODYpLHYxPWwoNDYpLEUxPWwoNTcpLGo9bCgzOCksYzE9bCg4NSksVjE9bCgxMTApLF8x''@;'; put 'put ''PWwoOCksUT1sKDE2KSxzMT1fMS5mLG0xPVEuZixiMT1hLlJhbmdlRXJyb3IsQjE9YS5UeXBlRXJyb3IsJD1hLlVpbnQ4QXJyYXksej0iQXJyYXlCdWZmZXIiLHk9IlNoYXJlZCIreixEPSJCWVRFU19QRVJfRUxFTUVOVCIsWj0icHJvdG90eXBlIixUPUFycmF5W1pdLFA9Zi5BcnJheUJ1ZmZl''@;'; put 'put ''cixlMT1mLkRhdGFWaWV3LHIxPWExKDApLFoxPWExKDIpLFk9YTEoMykscT1hMSg0KSxKPWExKDUpLEExPWExKDYpLE4xPWgxKCEwKSxTMT1oMSghMSksbjE9cDEudmFsdWVzLGkxPXAxLmtleXMsZjE9cDEuZW50cmllcyx4MT1ULmxhc3RJbmRleE9mLEkxPVQucmVkdWNlLEoxPVQucmVkdWNl''@;'; put 'put ''UmlnaHQsdDA9VC5qb2luLGYwPVQuc29ydCxNMD1ULnNsaWNlLF8wPVQudG9TdHJpbmcsaTI9VC50b0xvY2FsZVN0cmluZyx6MD1sMSgiaXRlcmF0b3IiKSxVMD1sMSgidG9TdHJpbmdUYWciKSxLMD1SKCJ0eXBlZF9jb25zdHJ1Y3RvciIpLGswPVIoImRlZl9jb25zdHJ1Y3RvciIpLHUyPWgu''@;'; put 'put ''Q09OU1RSLFgwPWguVFlQRUQsa3Q9aC5WSUVXLGEyPSJXcm9uZyBsZW5ndGghIixEMj1hMSgxLGZ1bmN0aW9uKHcxLGQxKXtyZXR1cm4gUTAodTEodzEsdzFbazBdKSxkMSl9KSxwMj1jKGZ1bmN0aW9uKCl7cmV0dXJuIDE9PT1uZXcgJChuZXcgVWludDE2QXJyYXkoWzFdKS5idWZmZXIpWzBd''@;'; put 'put ''fSksT3Q9ISEkJiYhISRbWl0uc2V0JiZjKGZ1bmN0aW9uKCl7bmV3ICQoMSkuc2V0KHt9KX0pLGYyPWZ1bmN0aW9uKHcxLGQxKXt2YXIgRDE9Qyh3MSk7aWYoRDE8MHx8RDElZDEpdGhyb3cgYjEoIldyb25nIG9mZnNldCEiKTtyZXR1cm4gRDF9LFkxPWZ1bmN0aW9uKHcxKXtpZihFKHcxKSYm''@;'; put 'put ''WDAgaW4gdzEpcmV0dXJuIHcxO3Rocm93IEIxKHcxKyIgaXMgbm90IGEgdHlwZWQgYXJyYXkhIil9LFEwPWZ1bmN0aW9uKHcxLGQxKXtpZighRSh3MSl8fCEoSzAgaW4gdzEpKXRocm93IEIxKCJJdCBpcyBub3QgYSB0eXBlZCBhcnJheSBjb25zdHJ1Y3RvciEiKTtyZXR1cm4gbmV3IHcxKGQx''@;'; put 'put ''KX0sZzI9ZnVuY3Rpb24odzEsZDEpe3JldHVybiBFMih1MSh3MSx3MVtrMF0pLGQxKX0sRTI9ZnVuY3Rpb24odzEsZDEpe2Zvcih2YXIgRDE9MCxQMT1kMS5sZW5ndGgsUjE9UTAodzEsUDEpO0QxPFAxOylSMVtEMV09ZDFbRDErK107cmV0dXJuIFIxfSxBMj1mdW5jdGlvbih3MSxkMSxEMSl7''@;'; put 'put ''czEodzEsZDEse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kW0QxXX19KX0sVDI9ZnVuY3Rpb24oZDEpe3ZhciBEMSxQMSxSMSxkMCxxMSxnMSx5MT13KGQxKSxXMD1hcmd1bWVudHMubGVuZ3RoLE8wPTE8VzA/YXJndW1lbnRzWzFdOmssSzE9TzAhPT1rLGUwPUIoeTEpO2lmKGUwIT1r''@;'; put 'put ''JiYhTihlMCkpe2ZvcihnMT1lMC5jYWxsKHkxKSxSMT1bXSxEMT0wOyEocTE9ZzEubmV4dCgpKS5kb25lO0QxKyspUjEucHVzaChxMS52YWx1ZSk7eTE9UjF9Zm9yKEsxJiYyPFcwJiYoTzA9ZyhPMCxhcmd1bWVudHNbMl0sMikpLEQxPTAsUDE9Vih5MS5sZW5ndGgpLGQwPVEwKHRoaXMsUDEp''@;'; put 'put ''O0QxPFAxO0QxKyspZDBbRDFdPUsxP08wKHkxW0QxXSxEMSk6eTFbRDFdO3JldHVybiBkMH0sWDI9ZnVuY3Rpb24oKXtmb3IodmFyIGQxPTAsRDE9YXJndW1lbnRzLmxlbmd0aCxQMT1RMCh0aGlzLEQxKTtkMTxEMTspUDFbZDFdPWFyZ3VtZW50c1tkMSsrXTtyZXR1cm4gUDF9LFEyPSEhJCYm''@;'; put 'put ''YyhmdW5jdGlvbigpe2kyLmNhbGwobmV3ICQoMSkpfSksTjI9ZnVuY3Rpb24oKXtyZXR1cm4gaTIuYXBwbHkoUTI/TTAuY2FsbChZMSh0aGlzKSk6WTEodGhpcyksYXJndW1lbnRzKX0sSjI9e2NvcHlXaXRoaW46ZnVuY3Rpb24oZDEsRDEpe3JldHVybiBWMS5jYWxsKFkxKHRoaXMpLGQxLEQx''@;'; put 'put ''LDI8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMl06ayl9LGV2ZXJ5OmZ1bmN0aW9uKGQxKXtyZXR1cm4gcShZMSh0aGlzKSxkMSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspfSxmaWxsOmZ1bmN0aW9uKGQxKXtyZXR1cm4gYzEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRz''@;'; put 'put ''KX0sZmlsdGVyOmZ1bmN0aW9uKGQxKXtyZXR1cm4gZzIodGhpcyxaMShZMSh0aGlzKSxkMSwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspKX0sZmluZDpmdW5jdGlvbihkMSl7cmV0dXJuIEooWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0s''@;'; put 'put ''ZmluZEluZGV4OmZ1bmN0aW9uKGQxKXtyZXR1cm4gQTEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0sZm9yRWFjaDpmdW5jdGlvbihkMSl7cjEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0saW5kZXhPZjpmdW5j''@;'; put 'put ''dGlvbihkMSl7cmV0dXJuIFMxKFkxKHRoaXMpLGQxLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06ayl9LGluY2x1ZGVzOmZ1bmN0aW9uKGQxKXtyZXR1cm4gTjEoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX0sam9pbjpmdW5jdGlvbihkMSl7''@;'; put 'put ''cmV0dXJuIHQwLmFwcGx5KFkxKHRoaXMpLGFyZ3VtZW50cyl9LGxhc3RJbmRleE9mOmZ1bmN0aW9uKGQxKXtyZXR1cm4geDEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRzKX0sbWFwOmZ1bmN0aW9uKGQxKXtyZXR1cm4gRDIoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50''@;'; put 'put ''c1sxXTprKX0scmVkdWNlOmZ1bmN0aW9uKGQxKXtyZXR1cm4gSTEuYXBwbHkoWTEodGhpcyksYXJndW1lbnRzKX0scmVkdWNlUmlnaHQ6ZnVuY3Rpb24oZDEpe3JldHVybiBKMS5hcHBseShZMSh0aGlzKSxhcmd1bWVudHMpfSxyZXZlcnNlOmZ1bmN0aW9uKCl7Zm9yKHZhciBkMSxEMT10aGlz''@;'; put 'put ''LFAxPVkxKEQxKS5sZW5ndGgsUjE9TWF0aC5mbG9vcihQMS8yKSxkMD0wO2QwPFIxOylkMT1EMVtkMF0sRDFbZDArK109RDFbLS1QMV0sRDFbUDFdPWQxO3JldHVybiBEMX0sc29tZTpmdW5jdGlvbihkMSl7cmV0dXJuIFkoWTEodGhpcyksZDEsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50''@;'; put 'put ''c1sxXTprKX0sc29ydDpmdW5jdGlvbihkMSl7cmV0dXJuIGYwLmNhbGwoWTEodGhpcyksZDEpfSxzdWJhcnJheTpmdW5jdGlvbihkMSxEMSl7dmFyIFAxPVkxKHRoaXMpLFIxPVAxLmxlbmd0aCxkMD1fKGQxLFIxKTtyZXR1cm4gbmV3KHUxKFAxLFAxW2swXSkpKFAxLmJ1ZmZlcixQMS5ieXRl''@;'; put 'put ''T2Zmc2V0K2QwKlAxLkJZVEVTX1BFUl9FTEVNRU5ULFYoKEQxPT09az9SMTpfKEQxLFIxKSktZDApKX19LEYyPWZ1bmN0aW9uKGQxLEQxKXtyZXR1cm4gZzIodGhpcyxNMC5jYWxsKFkxKHRoaXMpLGQxLEQxKSl9LEkyPWZ1bmN0aW9uKGQxKXtZMSh0aGlzKTt2YXIgRDE9ZjIoYXJndW1lbnRz''@;'; put 'put ''WzFdLDEpLFAxPXRoaXMubGVuZ3RoLFIxPXcoZDEpLGQwPVYoUjEubGVuZ3RoKSxxMT0wO2lmKFAxPGQwK0QxKXRocm93IGIxKGEyKTtmb3IoO3ExPGQwOyl0aGlzW0QxK3ExXT1SMVtxMSsrXX0sWjA9e2VudHJpZXM6ZnVuY3Rpb24oKXtyZXR1cm4gZjEuY2FsbChZMSh0aGlzKSl9LGtleXM6''@;'; put 'put ''ZnVuY3Rpb24oKXtyZXR1cm4gaTEuY2FsbChZMSh0aGlzKSl9LHZhbHVlczpmdW5jdGlvbigpe3JldHVybiBuMS5jYWxsKFkxKHRoaXMpKX19LGsyPWZ1bmN0aW9uKHcxLGQxKXtyZXR1cm4gRSh3MSkmJncxW1gwXSYmInN5bWJvbCIhPXR5cGVvZiBkMSYmZDEgaW4gdzEmJlN0cmluZygrZDEp''@;'; put 'put ''PT1TdHJpbmcoZDEpfSx0dD1mdW5jdGlvbihkMSxEMSl7cmV0dXJuIGsyKGQxLEQxPWIoRDEsITApKT9wKDIsZDFbRDFdKTptMShkMSxEMSl9LEEwPWZ1bmN0aW9uKGQxLEQxLFAxKXtyZXR1cm4hKGsyKGQxLEQxPWIoRDEsITApKSYmRShQMSkmJk0oUDEsInZhbHVlIikpfHxNKFAxLCJnZXQi''@;'; put 'put ''KXx8TShQMSwic2V0Iil8fFAxLmNvbmZpZ3VyYWJsZXx8TShQMSwid3JpdGFibGUiKSYmIVAxLndyaXRhYmxlfHxNKFAxLCJlbnVtZXJhYmxlIikmJiFQMS5lbnVtZXJhYmxlP3MxKGQxLEQxLFAxKTooZDFbRDFdPVAxLnZhbHVlLGQxKX07dTJ8fChRLmY9dHQsXzEuZj1BMCksbyhvLlMrby5G''@;'; put 'put ''KiF1MiwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnR0LGRlZmluZVByb3BlcnR5OkEwfSksYyhmdW5jdGlvbigpe18wLmNhbGwoe30pfSkmJihfMD1pMj1mdW5jdGlvbigpe3JldHVybiB0MC5jYWxsKHRoaXMpfSk7dmFyIHcwPUgoe30sSjIpO0godzAsWjApLHYodzAsejAs''@;'; put 'put ''WjAudmFsdWVzKSxIKHcwLHtzbGljZTpGMixzZXQ6STIsY29uc3RydWN0b3I6ZnVuY3Rpb24oKXt9LHRvU3RyaW5nOl8wLHRvTG9jYWxlU3RyaW5nOk4yfSksQTIodzAsImJ1ZmZlciIsImIiKSxBMih3MCwiYnl0ZU9mZnNldCIsIm8iKSxBMih3MCwiYnl0ZUxlbmd0aCIsImwiKSxBMih3MCwi''@;'; put 'put ''bGVuZ3RoIiwiZSIpLHMxKHcwLFUwLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc1tYMF19fSksQS5leHBvcnRzPWZ1bmN0aW9uKHcxLGQxLEQxLFAxKXt2YXIgUjE9dzErKChQMT0hIVAxKT8iQ2xhbXBlZCI6IiIpKyJBcnJheSIsZDA9ImdldCIrdzEscTE9InNldCIrdzEsZzE9YVtSMV0s''@;'; put 'put ''eTE9ZzF8fHt9LFcwPWcxJiZXKGcxKSxPMD17fSxLMT1nMSYmZzFbWl0sZTA9ZnVuY3Rpb24oZzAsWDEpe3MxKGcwLFgxLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4oSDA9dGhpcy5fZCkudltkMF0oWDEqZDErSDAubyxwMik7dmFyIEgwfSxzZXQ6ZnVuY3Rpb24oSDApe3JldHVybiBEMD1YMSx1''@;'; put 'put ''MD1IMCx4MD10aGlzLl9kLFAxJiYodTA9KHUwPU1hdGgucm91bmQodTApKTwwPzA6MjU1PHUwPzI1NToyNTUmdTApLHZvaWQgeDAudltxMV0oRDAqZDEreDAubyx1MCxwMik7dmFyIEQwLHUwLHgwfSxlbnVtZXJhYmxlOiEwfSl9O2cxJiZoLkFCVj9jKGZ1bmN0aW9uKCl7ZzEoMSl9KSYmYyhm''@;'; put 'put ''dW5jdGlvbigpe25ldyBnMSgtMSl9KSYmRTEoZnVuY3Rpb24oZzApe25ldyBnMSxuZXcgZzEobnVsbCksbmV3IGcxKDEuNSksbmV3IGcxKGcwKX0sITApfHwoZzE9RDEoZnVuY3Rpb24oZzAsWDEsSDAsRDApe3ZhciB1MDtyZXR1cm4gdShnMCxnMSxSMSksRShYMSk/WDEgaW5zdGFuY2VvZiBQ''@;'; put 'put ''fHwodTA9eChYMSkpPT16fHx1MD09eT9EMCE9PWs/bmV3IHkxKFgxLGYyKEgwLGQxKSxEMCk6SDAhPT1rP25ldyB5MShYMSxmMihIMCxkMSkpOm5ldyB5MShYMSk6WDAgaW4gWDE/RTIoZzEsWDEpOlQyLmNhbGwoZzEsWDEpOm5ldyB5MShTKFgxKSl9KSxyMShXMCE9PUZ1bmN0aW9uLnByb3Rv''@;'; put 'put ''dHlwZT9PKHkxKS5jb25jYXQoTyhXMCkpOk8oeTEpLGZ1bmN0aW9uKGcwKXtnMCBpbiBnMXx8dihnMSxnMCx5MVtnMF0pfSksZzFbWl09SzEscnx8KEsxLmNvbnN0cnVjdG9yPWcxKSk6KGcxPUQxKGZ1bmN0aW9uKGcwLFgxLEgwLEQwKXt1KGcwLGcxLFIxLCJfZCIpO3ZhciB1MCx4MCxCMCxQ''@;'; put 'put ''Mix2Mj0wLHIyPTA7aWYoRShYMSkpe2lmKCEoWDEgaW5zdGFuY2VvZiBQfHwoUDI9eChYMSkpPT16fHxQMj09eSkpcmV0dXJuIFgwIGluIFgxP0UyKGcxLFgxKTpUMi5jYWxsKGcxLFgxKTt1MD1YMSxyMj1mMihIMCxkMSk7dmFyIHMwPVgxLmJ5dGVMZW5ndGg7aWYoRDA9PT1rKXtpZihzMCVk''@;'; put 'put ''MXx8KHgwPXMwLXIyKTwwKXRocm93IGIxKGEyKX1lbHNlIGlmKHMwPCh4MD1WKEQwKSpkMSkrcjIpdGhyb3cgYjEoYTIpO0IwPXgwL2QxfWVsc2UgQjA9UyhYMSksdTA9bmV3IFAoeDA9QjAqZDEpO2Zvcih2KGcwLCJfZCIse2I6dTAsbzpyMixsOngwLGU6QjAsdjpuZXcgZTEodTApfSk7djI8''@;'; put 'put ''QjA7KWUwKGcwLHYyKyspfSksSzE9ZzFbWl09SSh3MCksdihLMSwiY29uc3RydWN0b3IiLGcxKSk7dmFyIEowPUsxW3owXSxQMD0hIUowJiYoInZhbHVlcyI9PUowLm5hbWV8fEowLm5hbWU9PWspLE8yPVowLnZhbHVlczt2KGcxLEswLCEwKSx2KEsxLFgwLFIxKSx2KEsxLGt0LCEwKSx2KEsx''@;'; put 'put ''LGswLGcxKSwoUDE/bmV3IGcxKDEpW1UwXT09UjE6VTAgaW4gSzEpfHxzMShLMSxVMCx7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFIxfX0pLG8oby5HK28uVytvLkYqKChPMFtSMV09ZzEpIT15MSksTzApLG8oby5TLFIxLHtCWVRFU19QRVJfRUxFTUVOVDpkMX0pLG8oby5TK28uRipjKGZ1bmN0''@;'; put 'put ''aW9uKCl7eTEub2YuY2FsbChnMSwxKX0pLFIxLHtmcm9tOlQyLG9mOlgyfSksRCBpbiBLMXx8dihLMSxELGQxKSxvKG8uUCxSMSxKMiksaihSMSksbyhvLlArby5GKk90LFIxLHtzZXQ6STJ9KSxvKG8uUCtvLkYqIVAwLFIxLFowKSxyfHxLMS50b1N0cmluZz09XzB8fChLMS50b1N0cmluZz1f''@;'; put 'put ''MCksbyhvLlArby5GKmMoZnVuY3Rpb24oKXtuZXcgZzEoMSkuc2xpY2UoKX0pLFIxLHtzbGljZTpGMn0pLG8oby5QK28uRiooYyhmdW5jdGlvbigpe3JldHVyblsxLDJdLnRvTG9jYWxlU3RyaW5nKCkhPW5ldyBnMShbMSwyXSkudG9Mb2NhbGVTdHJpbmcoKX0pfHwhYyhmdW5jdGlvbigpe0sx''@;'; put 'put ''LnRvTG9jYWxlU3RyaW5nLmNhbGwoWzEsMl0pfSkpLFIxLHt0b0xvY2FsZVN0cmluZzpOMn0pLHYxW1IxXT1QMD9KMDpPMixyfHxQMHx8dihLMSx6MCxPMil9fWVsc2UgQS5leHBvcnRzPWZ1bmN0aW9uKCl7fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTE2KSxhPWwoMCksYz1sKDQ3KSgi''@;'; put 'put ''bWV0YWRhdGEiKSxvPWMuc3RvcmV8fChjLnN0b3JlPW5ldyhsKDExOSkpKSxoPWZ1bmN0aW9uKGYsZyx1KXt2YXIgcD1vLmdldChmKTtpZighcCl7aWYoIXUpcmV0dXJuIGs7by5zZXQoZixwPW5ldyByKX12YXIgdj1wLmdldChnKTtpZighdil7aWYoIXUpcmV0dXJuIGs7cC5zZXQoZyx2PW5l''@;'; put 'put ''dyByKX1yZXR1cm4gdn07QS5leHBvcnRzPXtzdG9yZTpvLG1hcDpoLGhhczpmdW5jdGlvbihmLGcsdSl7dmFyIHA9aChnLHUsITEpO3JldHVybiBwIT09ayYmcC5oYXMoZil9LGdldDpmdW5jdGlvbihmLGcsdSl7dmFyIHA9aChnLHUsITEpO3JldHVybiBwPT09az9rOnAuZ2V0KGYpfSxzZXQ6''@;'; put 'put ''ZnVuY3Rpb24oZixnLHUscCl7aCh1LHAsITApLnNldChmLGcpfSxrZXlzOmZ1bmN0aW9uKGYsZyl7dmFyIHU9aChmLGcsITEpLHA9W107cmV0dXJuIHUmJnUuZm9yRWFjaChmdW5jdGlvbih2LEgpe3AucHVzaChIKX0pLHB9LGtleTpmdW5jdGlvbihmKXtyZXR1cm4gZj09PWt8fCJzeW1ib2wi''@;'; put 'put ''PT10eXBlb2YgZj9mOlN0cmluZyhmKX0sZXhwOmZ1bmN0aW9uKGYpe2EoYS5TLCJSZWZsZWN0IixmKX19fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz0hMX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMzMpKCJtZXRhIiksYT1sKDQpLGM9bCgxNCksbz1sKDgpLmYsaD0wLGY9T2JqZWN0Lmlz''@;'; put 'put ''RXh0ZW5zaWJsZXx8ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZz0hbCgzKShmdW5jdGlvbigpe3JldHVybiBmKE9iamVjdC5wcmV2ZW50RXh0ZW5zaW9ucyh7fSkpfSksdT1mdW5jdGlvbih2KXtvKHYscix7dmFsdWU6e2k6Ik8iKyArK2gsdzp7fX19KX0scD1BLmV4cG9ydHM9e0tFWTpyLE5FRUQ6''@;'; put 'put ''ITEsZmFzdEtleTpmdW5jdGlvbih2LEgpe2lmKCFhKHYpKXJldHVybiJzeW1ib2wiPT10eXBlb2Ygdj92Oigic3RyaW5nIj09dHlwZW9mIHY/IlMiOiJQIikrdjtpZighYyh2LHIpKXtpZighZih2KSlyZXR1cm4iRiI7aWYoIUgpcmV0dXJuIkUiO3Uodil9cmV0dXJuIHZbcl0uaX0sZ2V0V2Vh''@;'; put 'put ''azpmdW5jdGlvbih2LEgpe2lmKCFjKHYscikpe2lmKCFmKHYpKXJldHVybiEwO2lmKCFIKXJldHVybiExO3Uodil9cmV0dXJuIHZbcl0ud30sb25GcmVlemU6ZnVuY3Rpb24odil7cmV0dXJuIGcmJnAuTkVFRCYmZih2KSYmIWModixyKSYmdSh2KSx2fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; put 'put ''cj1sKDUpKCJ1bnNjb3BhYmxlcyIpLGE9QXJyYXkucHJvdG90eXBlO2Fbcl09PWsmJmwoMTEpKGEscix7fSksQS5leHBvcnRzPWZ1bmN0aW9uKGMpe2Fbcl1bY109ITB9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIpe3JldHVybntlbnVtZXJhYmxlOiEoMSZsKSxjb25m''@;'; put 'put ''aWd1cmFibGU6ISgyJmwpLHdyaXRhYmxlOiEoNCZsKSx2YWx1ZTpyfX19LGZ1bmN0aW9uKEEsZSl7dmFyIGw9MCxyPU1hdGgucmFuZG9tKCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3JldHVybiJTeW1ib2woIi5jb25jYXQoYT09PWs/IiI6YSwiKV8iLCgrK2wrcikudG9TdHJpbmcoMzYpKX19''@;'; put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDk1KSxhPWwoNjkpO0EuZXhwb3J0cz1PYmplY3Qua2V5c3x8ZnVuY3Rpb24obyl7cmV0dXJuIHIobyxhKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPU1hdGgubWF4LGM9TWF0aC5taW47QS5leHBvcnRzPWZ1bmN0aW9uKG8saCl7cmV0''@;'; put 'put ''dXJuKG89cihvKSk8MD9hKG8raCwwKTpjKG8saCl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoOTYpLGM9bCg2OSksbz1sKDY4KSgiSUVfUFJPVE8iKSxoPWZ1bmN0aW9uKCl7fSxmPSJwcm90b3R5cGUiLGc9ZnVuY3Rpb24oKXt2YXIgdSxwPWwoNjYpKCJpZnJhbWUiKSx2PWMu''@;'; put 'put ''bGVuZ3RoO2ZvcihwLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGwoNzApLmFwcGVuZENoaWxkKHApLHAuc3JjPSJqYXZhc2NyaXB0OiIsKHU9cC5jb250ZW50V2luZG93LmRvY3VtZW50KS5vcGVuKCksdS53cml0ZSgiPHNjcmlwdD5kb2N1bWVudC5GPU9iamVjdDxcL3NjcmlwdD4iKSx1LmNsb3Nl''@;'; put 'put ''KCksZz11LkY7di0tOylkZWxldGUgZ1tmXVtjW3ZdXTtyZXR1cm4gZygpfTtBLmV4cG9ydHM9T2JqZWN0LmNyZWF0ZXx8ZnVuY3Rpb24ocCx2KXt2YXIgSDtyZXR1cm4gbnVsbCE9PXA/KGhbZl09cihwKSxIPW5ldyBoLGhbZl09bnVsbCxIW29dPXApOkg9ZygpLHY9PT1rP0g6YShILHYpfX0s''@;'; put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOTUpLGE9bCg2OSkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtlLmY9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXN8fGZ1bmN0aW9uKG8pe3JldHVybiByKG8sYSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoOCksYz1sKDcp''@;'; put 'put ''LG89bCg1KSgic3BlY2llcyIpO0EuZXhwb3J0cz1mdW5jdGlvbihoKXt2YXIgZj1yW2hdO2MmJmYmJiFmW29dJiZhLmYoZixvLHtjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fSl9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIsYSxjKXtp''@;'; put 'put ''ZighKGwgaW5zdGFuY2VvZiByKXx8YyE9PWsmJmMgaW4gbCl0aHJvdyBUeXBlRXJyb3IoYSsiOiBpbmNvcnJlY3QgaW52b2NhdGlvbiEiKTtyZXR1cm4gbH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE4KSxhPWwoMTA4KSxjPWwoODEpLG89bCgxKSxoPWwoNiksZj1sKDgzKSxnPXt9LHU9''@;'; put 'put ''e307KGU9QS5leHBvcnRzPWZ1bmN0aW9uKHAsdixILEMsVil7dmFyIFMsXyxiLE0seD1WP2Z1bmN0aW9uKCl7cmV0dXJuIHB9OmYocCksRT1yKEgsQyx2PzI6MSksdz0wO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB4KXRocm93IFR5cGVFcnJvcihwKyIgaXMgbm90IGl0ZXJhYmxlISIpO2lmKGMo''@;'; put 'put ''eCkpe2ZvcihTPWgocC5sZW5ndGgpO3c8Uzt3KyspaWYoKE09dj9FKG8oXz1wW3ddKVswXSxfWzFdKTpFKHBbd10pKT09PWd8fE09PT11KXJldHVybiBNfWVsc2UgZm9yKGI9eC5jYWxsKHApOyEoXz1iLm5leHQoKSkuZG9uZTspaWYoKE09YShiLEUsXy52YWx1ZSx2KSk9PT1nfHxNPT09dSly''@;'; put 'put ''ZXR1cm4gTX0pLkJSRUFLPWcsZS5SRVRVUk49dX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTIpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyl7Zm9yKHZhciBoIGluIGMpcihhLGgsY1toXSxvKTtyZXR1cm4gYX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpO0EuZXhwb3J0cz1mdW5j''@;'; put 'put ''dGlvbihhLGMpe2lmKCFyKGEpfHxhLl90IT09Yyl0aHJvdyBUeXBlRXJyb3IoIkluY29tcGF0aWJsZSByZWNlaXZlciwgIitjKyIgcmVxdWlyZWQhIik7cmV0dXJuIGF9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg4KS5mLGE9bCgxNCksYz1sKDUpKCJ0b1N0cmluZ1RhZyIpO0EuZXhwb3J0''@;'; put 'put ''cz1mdW5jdGlvbihvLGgsZil7byYmIWEobz1mP286by5wcm90b3R5cGUsYykmJnIobyxjLHtjb25maWd1cmFibGU6ITAsdmFsdWU6aH0pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTkpLGE9bCg1KSgidG9TdHJpbmdUYWciKSxjPSJBcmd1bWVudHMiPT1yKGZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IGFyZ3VtZW50c30oKSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3ZhciBoLGYsZztyZXR1cm4gbz09PWs/IlVuZGVmaW5lZCI6bnVsbD09PW8/Ik51bGwiOiJzdHJpbmciPT10eXBlb2YoZj1mdW5jdGlvbih1LHApe3RyeXtyZXR1cm4gdVtwXX1jYXRjaCh2KXt9fShoPU9iamVjdChvKSxhKSk/''@;'; put 'put ''ZjpjP3IoaCk6Ik9iamVjdCI9PShnPXIoaCkpJiYiZnVuY3Rpb24iPT10eXBlb2YgaC5jYWxsZWU/IkFyZ3VtZW50cyI6Z319LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyMyksYz1sKDMpLG89bCg3MyksaD0iWyIrbysiXSIsZj1SZWdFeHAoIl4iK2graCsiKiIpLGc9UmVnRXhw''@;'; put 'put ''KGgraCsiKiQiKSx1PWZ1bmN0aW9uKHYsSCxDKXt2YXIgVj17fSxTPWMoZnVuY3Rpb24oKXtyZXR1cm4hIW9bdl0oKXx8Ilx1MjAwYlx4ODUiIT0iXHUyMDBiXHg4NSJbdl0oKX0pLF89Vlt2XT1TP0gocCk6b1t2XTtDJiYoVltDXT1fKSxyKHIuUCtyLkYqUywiU3RyaW5nIixWKX0scD11LnRy''@;'; put 'put ''aW09ZnVuY3Rpb24odixIKXtyZXR1cm4gdj1TdHJpbmcoYSh2KSksMSZIJiYodj12LnJlcGxhY2UoZiwiIikpLDImSCYmKHY9di5yZXBsYWNlKGcsIiIpKSx2fTtBLmV4cG9ydHM9dX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9e319LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDI2KSxhPWwo''@;'; put 'put ''MiksYz0iX19jb3JlLWpzX3NoYXJlZF9fIixvPWFbY118fChhW2NdPXt9KTsoQS5leHBvcnRzPWZ1bmN0aW9uKGgsZil7cmV0dXJuIG9baF18fChvW2hdPWYhPT1rP2Y6e30pfSkoInZlcnNpb25zIixbXSkucHVzaCh7dmVyc2lvbjpyLnZlcnNpb24sbW9kZTpsKDI5KT8icHVyZSI6Imdsb2Jh''@;'; put 'put ''bCIsY29weXJpZ2h0OiJceGE5IDIwMTkgRGVuaXMgUHVzaGthcmV2ICh6bG9pcm9jay5ydSkifSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE5KTtBLmV4cG9ydHM9T2JqZWN0KCJ6IikucHJvcGVydHlJc0VudW1lcmFibGUoMCk/T2JqZWN0OmZ1bmN0aW9uKGEpe3JldHVybiJTdHJpbmci''@;'; put 'put ''PT1yKGEpP2Euc3BsaXQoIiIpOk9iamVjdChhKX19LGZ1bmN0aW9uKEEsZSl7ZS5mPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKTtBLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgYT1yKHRoaXMpLGM9IiI7cmV0dXJuIGEuZ2xvYmFsJiYoYys9Imci''@;'; put 'put ''KSxhLmlnbm9yZUNhc2UmJihjKz0iaSIpLGEubXVsdGlsaW5lJiYoYys9Im0iKSxhLnVuaWNvZGUmJihjKz0idSIpLGEuc3RpY2t5JiYoYys9InkiKSxjfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMSksYT1sKDEwKSxjPWwoNSkoInNwZWNpZXMiKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyxo''@;'; put 'put ''KXt2YXIgZixnPXIobykuY29uc3RydWN0b3I7cmV0dXJuIGc9PT1rfHwoZj1yKGcpW2NdKT09az9oOmEoZil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxNSksYT1sKDYpLGM9bCgzNSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3JldHVybiBmdW5jdGlvbihoLGYsZyl7dmFyIHUscD1yKGgp''@;'; put 'put ''LHY9YShwLmxlbmd0aCksSD1jKGcsdik7aWYobyYmZiE9Zil7Zm9yKDtIPHY7KWlmKCh1PXBbSCsrXSkhPXUpcmV0dXJuITB9ZWxzZSBmb3IoO0g8djtIKyspaWYoKG98fEggaW4gcCkmJnBbSF09PT1mKXJldHVybiBvfHxIfHwwO3JldHVybiFvJiYtMX19fSxmdW5jdGlvbihBLGUpe2UuZj1P''@;'; put 'put ''YmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOSk7QS5leHBvcnRzPUFycmF5LmlzQXJyYXl8fGZ1bmN0aW9uKGMpe3JldHVybiJBcnJheSI9PXIoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyMCksYT1sKDIzKTtBLmV4cG9ydHM9ZnVu''@;'; put 'put ''Y3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKG8saCl7dmFyIGYsZyx1PVN0cmluZyhhKG8pKSxwPXIoaCksdj11Lmxlbmd0aDtyZXR1cm4gcDwwfHx2PD1wP2M/IiI6azooZj11LmNoYXJDb2RlQXQocCkpPDU1Mjk2fHw1NjMxOTxmfHxwKzE9PT12fHwoZz11LmNoYXJDb2RlQXQocCsxKSk8NTYz''@;'; put 'put ''MjB8fDU3MzQzPGc/Yz91LmNoYXJBdChwKTpmOmM/dS5zbGljZShwLHArMik6Zy01NjMyMCsoZi01NTI5Njw8MTApKzY1NTM2fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxOSksYz1sKDUpKCJtYXRjaCIpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgaDtyZXR1cm4gcihv''@;'; put 'put ''KSYmKChoPW9bY10pIT09az8hIWg6IlJlZ0V4cCI9PWEobykpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNSkoIml0ZXJhdG9yIiksYT0hMTt0cnl7dmFyIGM9WzddW3JdKCk7Yy5yZXR1cm49ZnVuY3Rpb24oKXthPSEwfSxBcnJheS5mcm9tKGMsZnVuY3Rpb24oKXt0aHJvdyAyfSl9Y2F0''@;'; put 'put ''Y2gobyl7fUEuZXhwb3J0cz1mdW5jdGlvbihvLGgpe2lmKCFoJiYhYSlyZXR1cm4hMTt2YXIgZj0hMTt0cnl7dmFyIGc9WzddLHU9Z1tyXSgpO3UubmV4dD1mdW5jdGlvbigpe3JldHVybntkb25lOmY9ITB9fSxnW3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHV9LG8oZyl9Y2F0Y2gocCl7fXJldHVy''@;'; put 'put ''biBmfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9UmVnRXhwLnByb3RvdHlwZS5leGVjO0EuZXhwb3J0cz1mdW5jdGlvbihjLG8pe3ZhciBoPWMuZXhlYztpZigiZnVuY3Rpb24iPT10eXBlb2YgaCl7dmFyIGY9aC5jYWxsKGMsbyk7aWYoIm9iamVjdCIhPXR5cGVvZiBmKXRocm93''@;'; put 'put ''IG5ldyBUeXBlRXJyb3IoIlJlZ0V4cCBleGVjIG1ldGhvZCByZXR1cm5lZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBhbiBPYmplY3Qgb3IgbnVsbCIpO3JldHVybiBmfWlmKCJSZWdFeHAiIT09cihjKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJSZWdFeHAjZXhlYyBjYWxsZWQgb24gaW5jb21wYXRp''@;'; put 'put ''YmxlIHJlY2VpdmVyIik7cmV0dXJuIGEuY2FsbChjLG8pfX0sZnVuY3Rpb24oQSxlLGwpe2woMTEyKTt2YXIgcj1sKDEyKSxhPWwoMTEpLGM9bCgzKSxvPWwoMjMpLGg9bCg1KSxmPWwoODcpLGc9aCgic3BlY2llcyIpLHU9IWMoZnVuY3Rpb24oKXt2YXIgdj0vLi87cmV0dXJuIHYuZXhlYz1m''@;'; put 'put ''dW5jdGlvbigpe3ZhciBIPVtdO3JldHVybiBILmdyb3Vwcz17YToiNyJ9LEh9LCI3IiE9PSIiLnJlcGxhY2UodiwiJDxhPiIpfSkscD1mdW5jdGlvbigpe3ZhciB2PS8oPzopLyxIPXYuZXhlYzt2LmV4ZWM9ZnVuY3Rpb24oKXtyZXR1cm4gSC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O3ZhciBD''@;'; put 'put ''PSJhYiIuc3BsaXQodik7cmV0dXJuIDI9PT1DLmxlbmd0aCYmImEiPT09Q1swXSYmImIiPT09Q1sxXX0oKTtBLmV4cG9ydHM9ZnVuY3Rpb24odixILEMpe3ZhciBWPWgodiksUz0hYyhmdW5jdGlvbigpe3ZhciBFPXt9O3JldHVybiBFW1ZdPWZ1bmN0aW9uKCl7cmV0dXJuIDd9LDchPSIiW3Zd''@;'; put 'put ''KEUpfSksXz1TPyFjKGZ1bmN0aW9uKCl7dmFyIEU9ITEsdz0vYS87cmV0dXJuIHcuZXhlYz1mdW5jdGlvbigpe3JldHVybiBFPSEwLG51bGx9LCJzcGxpdCI9PT12JiYody5jb25zdHJ1Y3Rvcj17fSx3LmNvbnN0cnVjdG9yW2ddPWZ1bmN0aW9uKCl7cmV0dXJuIHd9KSx3W1ZdKCIiKSwhRX0p''@;'; put 'put ''Oms7aWYoIVN8fCFffHwicmVwbGFjZSI9PT12JiYhdXx8InNwbGl0Ij09PXYmJiFwKXt2YXIgYj0vLi9bVl0sTT1DKG8sViwiIlt2XSxmdW5jdGlvbih3LE4sSSxXLE8pe3JldHVybiBOLmV4ZWM9PT1mP1MmJiFPP3tkb25lOiEwLHZhbHVlOmIuY2FsbChOLEksVyl9Ontkb25lOiEwLHZhbHVl''@;'; put 'put ''OncuY2FsbChJLE4sVyl9Ontkb25lOiExfX0pLHg9TVsxXTtyKFN0cmluZy5wcm90b3R5cGUsdixNWzBdKSxhKFJlZ0V4cC5wcm90b3R5cGUsViwyPT1IP2Z1bmN0aW9uKEUsdyl7cmV0dXJuIHguY2FsbChFLHRoaXMsdyl9OmZ1bmN0aW9uKEUpe3JldHVybiB4LmNhbGwoRSx0aGlzKX0pfX19''@;'; put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLm5hdmlnYXRvcjtBLmV4cG9ydHM9ciYmci51c2VyQWdlbnR8fCIifSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMCksYz1sKDEyKSxvPWwoNDEpLGg9bCgzMCksZj1sKDQwKSxnPWwoMzkpLHU9bCg0KSxwPWwoMyksdj1sKDU3KSxI''@;'; put 'put ''PWwoNDMpLEM9bCg3Mik7QS5leHBvcnRzPWZ1bmN0aW9uKFYsUyxfLGIsTSx4KXt2YXIgRT1yW1ZdLHc9RSxOPU0/InNldCI6ImFkZCIsST13JiZ3LnByb3RvdHlwZSxXPXt9LE89ZnVuY3Rpb24odTEpe3ZhciBwMT1JW3UxXTtjKEksdTEsImRlbGV0ZSI9PXUxP2Z1bmN0aW9uKHYxKXtyZXR1''@;'; put 'put ''cm4hKHgmJiF1KHYxKSkmJnAxLmNhbGwodGhpcywwPT09djE/MDp2MSl9OiJoYXMiPT11MT9mdW5jdGlvbihFMSl7cmV0dXJuISh4JiYhdShFMSkpJiZwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEpfToiZ2V0Ij09dTE/ZnVuY3Rpb24oRTEpe3JldHVybiB4JiYhdShFMSk/azpwMS5jYWxsKHRo''@;'; put 'put ''aXMsMD09PUUxPzA6RTEpfToiYWRkIj09dTE/ZnVuY3Rpb24oRTEpe3JldHVybiBwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEpLHRoaXN9OmZ1bmN0aW9uKEUxLGope3JldHVybiBwMS5jYWxsKHRoaXMsMD09PUUxPzA6RTEsaiksdGhpc30pfTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdyYmKHh8''@;'; put 'put ''fEkuZm9yRWFjaCYmIXAoZnVuY3Rpb24oKXsobmV3IHcpLmVudHJpZXMoKS5uZXh0KCl9KSkpe3ZhciBCPW5ldyB3LFI9QltOXSh4P3t9Oi0wLDEpIT1CLGwxPXAoZnVuY3Rpb24oKXtCLmhhcygxKX0pLGExPXYoZnVuY3Rpb24odTEpe25ldyB3KHUxKX0pLGgxPSF4JiZwKGZ1bmN0aW9uKCl7''@;'; put 'put ''Zm9yKHZhciB1MT1uZXcgdyxwMT01O3AxLS07KXUxW05dKHAxLHAxKTtyZXR1cm4hdTEuaGFzKC0wKX0pO2ExfHwoKCh3PVMoZnVuY3Rpb24odTEscDEpe2codTEsdyxWKTt2YXIgdjE9QyhuZXcgRSx1MSx3KTtyZXR1cm4gcDEhPWsmJmYocDEsTSx2MVtOXSx2MSksdjF9KSkucHJvdG90eXBl''@;'; put 'put ''PUkpLmNvbnN0cnVjdG9yPXcpLChsMXx8aDEpJiYoTygiZGVsZXRlIiksTygiaGFzIiksTSYmTygiZ2V0IikpLChoMXx8UikmJk8oTikseCYmSS5jbGVhciYmZGVsZXRlIEkuY2xlYXJ9ZWxzZSB3PWIuZ2V0Q29uc3RydWN0b3IoUyxWLE0sTiksbyh3LnByb3RvdHlwZSxfKSxoLk5FRUQ9ITA7''@;'; put 'put ''cmV0dXJuIEgodyxWKSxhKGEuRythLlcrYS5GKigoV1tWXT13KSE9RSksVykseHx8Yi5zZXRTdHJvbmcodyxWLE0pLHd9fSxmdW5jdGlvbihBLGUsbCl7Zm9yKHZhciByLGE9bCgyKSxjPWwoMTEpLG89bCgzMyksaD1vKCJ0eXBlZF9hcnJheSIpLGY9bygidmlldyIpLGc9ISghYS5BcnJheUJ1''@;'; put 'put ''ZmZlcnx8IWEuRGF0YVZpZXcpLHU9ZyxwPTAsdj0iSW50OEFycmF5LFVpbnQ4QXJyYXksVWludDhDbGFtcGVkQXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXkiLnNwbGl0KCIsIik7cDw5Oykocj1hW3Zb''@;'; put 'put ''cCsrXV0pPyhjKHIucHJvdG90eXBlLGgsITApLGMoci5wcm90b3R5cGUsZiwhMCkpOnU9ITE7QS5leHBvcnRzPXtBQlY6ZyxDT05TVFI6dSxUWVBFRDpoLFZJRVc6Zn19LGZ1bmN0aW9uKEEsZSxsKXtBLmV4cG9ydHM9bCgyOSl8fCFsKDMpKGZ1bmN0aW9uKCl7dmFyIHI9TWF0aC5yYW5kb20o''@;'; put 'put ''KTtfX2RlZmluZVNldHRlcl9fLmNhbGwobnVsbCxyLGZ1bmN0aW9uKCl7fSksZGVsZXRlIGwoMilbcl19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3Ioci5TLGEse29mOmZ1bmN0aW9uKCl7Zm9yKHZhciBvPWFyZ3VtZW50cy5sZW5ndGgsaD1u''@;'; put 'put ''ZXcgQXJyYXkobyk7by0tOyloW29dPWFyZ3VtZW50c1tvXTtyZXR1cm4gbmV3IHRoaXMoaCl9fSl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTApLGM9bCgxOCksbz1sKDQwKTtBLmV4cG9ydHM9ZnVuY3Rpb24oaCl7cihyLlMsaCx7ZnJvbTpmdW5jdGlvbihnKXt2YXIgdSxw''@;'; put 'put ''LHYsSCxDPWFyZ3VtZW50c1sxXTtyZXR1cm4gYSh0aGlzKSwodT1DIT09aykmJmEoQyksZz09az9uZXcgdGhpczoocD1bXSx1Pyh2PTAsSD1jKEMsYXJndW1lbnRzWzJdLDIpLG8oZywhMSxmdW5jdGlvbihWKXtwLnB1c2goSChWLHYrKykpfSkpOm8oZywhMSxwLnB1c2gscCksbmV3IHRoaXMo''@;'; put 'put ''cCkpfX0pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDIpLmRvY3VtZW50LGM9cihhKSYmcihhLmNyZWF0ZUVsZW1lbnQpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1cm4gYz9hLmNyZWF0ZUVsZW1lbnQobyk6e319fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwo''@;'; put 'put ''MjYpLGM9bCgyOSksbz1sKDk0KSxoPWwoOCkuZjtBLmV4cG9ydHM9ZnVuY3Rpb24oZil7dmFyIGc9YS5TeW1ib2x8fChhLlN5bWJvbD1jP3t9OnIuU3ltYm9sfHx7fSk7Il8iPT1mLmNoYXJBdCgwKXx8ZiBpbiBnfHxoKGcsZix7dmFsdWU6by5mKGYpfSl9fSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; put 'put ''IHI9bCg0NykoImtleXMiKSxhPWwoMzMpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gcltjXXx8KHJbY109YShjKSl9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz0iY29uc3RydWN0b3IsaGFzT3duUHJvcGVydHksaXNQcm90b3R5cGVPZixwcm9wZXJ0eUlzRW51bWVyYWJsZSx0b0xv''@;'; put 'put ''Y2FsZVN0cmluZyx0b1N0cmluZyx2YWx1ZU9mIi5zcGxpdCgiLCIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKS5kb2N1bWVudDtBLmV4cG9ydHM9ciYmci5kb2N1bWVudEVsZW1lbnR9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxKSxjPWZ1bmN0aW9uKG8saCl7aWYoYShv''@;'; put 'put ''KSwhcihoKSYmbnVsbCE9PWgpdGhyb3cgVHlwZUVycm9yKGgrIjogY2FuJ3Qgc2V0IGFzIHByb3RvdHlwZSEiKX07QS5leHBvcnRzPXtzZXQ6T2JqZWN0LnNldFByb3RvdHlwZU9mfHwoIl9fcHJvdG9fXyJpbnt9P2Z1bmN0aW9uKG8saCxmKXt0cnl7KGY9bCgxOCkoRnVuY3Rpb24uY2FsbCxs''@;'; put 'put ''KDE2KS5mKE9iamVjdC5wcm90b3R5cGUsIl9fcHJvdG9fXyIpLnNldCwyKSkobyxbXSksaD0hKG8gaW5zdGFuY2VvZiBBcnJheSl9Y2F0Y2goZyl7aD0hMH1yZXR1cm4gZnVuY3Rpb24odSxwKXtyZXR1cm4gYyh1LHApLGg/dS5fX3Byb3RvX189cDpmKHUscCksdX19KHt9LCExKTprKSxjaGVj''@;'; put 'put ''azpjfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDcxKS5zZXQ7QS5leHBvcnRzPWZ1bmN0aW9uKGMsbyxoKXt2YXIgZixnPW8uY29uc3RydWN0b3I7cmV0dXJuIGchPT1oJiYiZnVuY3Rpb24iPT10eXBlb2YgZyYmKGY9Zy5wcm90b3R5cGUpIT09aC5wcm90b3R5cGUmJnIoZikm''@;'; put 'put ''JmEmJmEoYyxmKSxjfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9Ilx0XG5cdlxmXHIgXHhhMFx1MTY4MFx1MTgwZVx1MjAwMFx1MjAwMVx1MjAwMlx1MjAwM1x1MjAwNFx1MjAwNVx1MjAwNlx1MjAwN1x1MjAwOFx1MjAwOVx1MjAwYVx1MjAyZlx1MjA1Zlx1MzAwMFx1MjAyOFx1MjAyOVx1''@;'; put 'put ''ZmVmZiJ9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIwKSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihvKXt2YXIgaD1TdHJpbmcoYSh0aGlzKSksZj0iIixnPXIobyk7aWYoZzwwfHxnPT0xLzApdGhyb3cgUmFuZ2VFcnJvcigiQ291bnQgY2FuJ3QgYmUgbmVnYXRpdmUiKTtmb3IoOzA8''@;'; put 'put ''ZzsoZz4+Pj0xKSYmKGgrPWgpKTEmZyYmKGYrPWgpO3JldHVybiBmfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9TWF0aC5zaWdufHxmdW5jdGlvbihyKXtyZXR1cm4gMD09KHI9K3IpfHxyIT1yP3I6cjwwPy0xOjF9fSxmdW5jdGlvbihBLGUpe3ZhciBsPU1hdGguZXhwbTE7QS5leHBvcnRz''@;'; put 'put ''PSFsfHwyMjAyNS40NjU3OTQ4MDY3MTg8bCgxMCl8fGwoMTApPDIyMDI1LjQ2NTc5NDgwNjcxOHx8LTJlLTE3IT1sKC0yZS0xNyk/ZnVuY3Rpb24oYSl7cmV0dXJuIDA9PShhPSthKT9hOi0xZS02PGEmJmE8MWUtNj9hK2EqYS8yOk1hdGguZXhwKGEpLTF9Omx9LGZ1bmN0aW9uKEEsZSxsKXt2''@;'; put 'put ''YXIgcj1sKDU2KSxhPWwoMjMpO0EuZXhwb3J0cz1mdW5jdGlvbihjLG8saCl7aWYocihvKSl0aHJvdyBUeXBlRXJyb3IoIlN0cmluZyMiK2grIiBkb2Vzbid0IGFjY2VwdCByZWdleCEiKTtyZXR1cm4gU3RyaW5nKGEoYykpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNSkoIm1hdGNoIik7''@;'; put 'put ''QS5leHBvcnRzPWZ1bmN0aW9uKGEpe3ZhciBjPS8uLzt0cnl7Ii8uLyJbYV0oYyl9Y2F0Y2gobyl7dHJ5e3JldHVybiBjW3JdPSExLCEiLy4vIlthXShjKX1jYXRjaChoKXt9fXJldHVybiEwfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjkpLGE9bCgwKSxjPWwoMTIpLG89bCgxMSksaD1s''@;'; put 'put ''KDQ2KSxmPWwoODApLGc9bCg0MyksdT1sKDE3KSxwPWwoNSkoIml0ZXJhdG9yIiksdj0hKFtdLmtleXMmJiJuZXh0ImluW10ua2V5cygpKSxIPSJ2YWx1ZXMiLEM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc307QS5leHBvcnRzPWZ1bmN0aW9uKFYsUyxfLGIsTSx4LEUpe2YoXyxTLGIpO3ZhciB3''@;'; put 'put ''LE4sSSxXPWZ1bmN0aW9uKHYxKXtpZighdiYmdjEgaW4gbDEpcmV0dXJuIGwxW3YxXTtzd2l0Y2godjEpe2Nhc2Uia2V5cyI6Y2FzZSBIOnJldHVybiBmdW5jdGlvbigpe3JldHVybiBuZXcgXyh0aGlzLHYxKX19cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBfKHRoaXMsdjEpfX0sTz1T''@;'; put 'put ''KyIgSXRlcmF0b3IiLEI9TT09SCxSPSExLGwxPVYucHJvdG90eXBlLGExPWwxW3BdfHxsMVsiQEBpdGVyYXRvciJdfHxNJiZsMVtNXSxoMT1hMXx8VyhNKSx1MT1NP0I/VygiZW50cmllcyIpOmgxOmsscDE9IkFycmF5Ij09UyYmbDEuZW50cmllc3x8YTE7aWYocDEmJihJPXUocDEuY2FsbChu''@;'; put 'put ''ZXcgVikpKSE9PU9iamVjdC5wcm90b3R5cGUmJkkubmV4dCYmKGcoSSxPLCEwKSxyfHwiZnVuY3Rpb24iPT10eXBlb2YgSVtwXXx8byhJLHAsQykpLEImJmExJiZhMS5uYW1lIT09SCYmKFI9ITAsaDE9ZnVuY3Rpb24oKXtyZXR1cm4gYTEuY2FsbCh0aGlzKX0pLHImJiFFfHwhdiYmIVImJmwx''@;'; put 'put ''W3BdfHxvKGwxLHAsaDEpLGhbU109aDEsaFtPXT1DLE0paWYodz17dmFsdWVzOkI/aDE6VyhIKSxrZXlzOng/aDE6Vygia2V5cyIpLGVudHJpZXM6dTF9LEUpZm9yKE4gaW4gdylOIGluIGwxfHxjKGwxLE4sd1tOXSk7ZWxzZSBhKGEuUCthLkYqKHZ8fFIpLFMsdyk7cmV0dXJuIHd9fSxmdW5j''@;'; put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgzNiksYT1sKDMyKSxjPWwoNDMpLG89e307bCgxMSkobyxsKDUpKCJpdGVyYXRvciIpLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxBLmV4cG9ydHM9ZnVuY3Rpb24oaCxmLGcpe2gucHJvdG90eXBlPXIobyx7bmV4dDphKDEsZyl9KSxjKGgsZisiIEl0ZXJh''@;'; put 'put ''dG9yIil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0NiksYT1sKDUpKCJpdGVyYXRvciIpLGM9QXJyYXkucHJvdG90eXBlO0EuZXhwb3J0cz1mdW5jdGlvbihvKXtyZXR1cm4gbyE9PWsmJihyLkFycmF5PT09b3x8Y1thXT09PW8pfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOCksYT1s''@;'; put 'put ''KDMyKTtBLmV4cG9ydHM9ZnVuY3Rpb24oYyxvLGgpe28gaW4gYz9yLmYoYyxvLGEoMCxoKSk6Y1tvXT1ofX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9bCg1KSgiaXRlcmF0b3IiKSxjPWwoNDYpO0EuZXhwb3J0cz1sKDI2KS5nZXRJdGVyYXRvck1ldGhvZD1mdW5jdGlvbihvKXtp''@;'; put 'put ''ZihvIT1rKXJldHVybiBvW2FdfHxvWyJAQGl0ZXJhdG9yIl18fGNbcihvKV19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyMTMpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMpe3JldHVybiBuZXcocihhKSkoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg5KSxhPWwoMzUpLGM9bCg2KTtB''@;'; put 'put ''LmV4cG9ydHM9ZnVuY3Rpb24oaCl7Zm9yKHZhciBmPXIodGhpcyksZz1jKGYubGVuZ3RoKSx1PWFyZ3VtZW50cy5sZW5ndGgscD1hKDE8dT9hcmd1bWVudHNbMV06ayxnKSx2PTI8dT9hcmd1bWVudHNbMl06ayxIPXY9PT1rP2c6YSh2LGcpO3A8SDspZltwKytdPWg7cmV0dXJuIGZ9fSxmdW5j''@;'; put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgzMSksYT1sKDExMSksYz1sKDQ2KSxvPWwoMTUpO0EuZXhwb3J0cz1sKDc5KShBcnJheSwiQXJyYXkiLGZ1bmN0aW9uKGgsZil7dGhpcy5fdD1vKGgpLHRoaXMuX2k9MCx0aGlzLl9rPWZ9LGZ1bmN0aW9uKCl7dmFyIGg9dGhpcy5fdCxmPXRoaXMuX2ssZz10''@;'; put 'put ''aGlzLl9pKys7cmV0dXJuIWh8fGgubGVuZ3RoPD1nPyh0aGlzLl90PWssYSgxKSk6YSgwLCJrZXlzIj09Zj9nOiJ2YWx1ZXMiPT1mP2hbZ106W2csaFtnXV0pfSwidmFsdWVzIiksYy5Bcmd1bWVudHM9Yy5BcnJheSxyKCJrZXlzIikscigidmFsdWVzIikscigiZW50cmllcyIpfSxmdW5jdGlv''@;'; put 'put ''bihBLGUsbCl7dmFyIHIsYSxjPWwoNTApLG89UmVnRXhwLnByb3RvdHlwZS5leGVjLGg9U3RyaW5nLnByb3RvdHlwZS5yZXBsYWNlLGY9byxnPSJsYXN0SW5kZXgiLHU9KGE9L2IqL2csby5jYWxsKHI9L2EvLCJhIiksby5jYWxsKGEsImEiKSwwIT09cltnXXx8MCE9PWFbZ10pLHA9LygpPz8v''@;'; put 'put ''LmV4ZWMoIiIpWzFdIT09azsodXx8cCkmJihmPWZ1bmN0aW9uKEgpe3ZhciBDLFYsUyxfLGI9dGhpcztyZXR1cm4gcCYmKFY9bmV3IFJlZ0V4cCgiXiIrYi5zb3VyY2UrIiQoPyFcXHMpIixjLmNhbGwoYikpKSx1JiYoQz1iW2ddKSxTPW8uY2FsbChiLEgpLHUmJlMmJihiW2ddPWIuZ2xvYmFs''@;'; put 'put ''P1MuaW5kZXgrU1swXS5sZW5ndGg6QykscCYmUyYmMTxTLmxlbmd0aCYmaC5jYWxsKFNbMF0sVixmdW5jdGlvbigpe2ZvcihfPTE7Xzxhcmd1bWVudHMubGVuZ3RoLTI7XysrKWFyZ3VtZW50c1tfXT09PWsmJihTW19dPWspfSksU30pLEEuZXhwb3J0cz1mfSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; put 'put ''IHI9bCg1NSkoITApO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyl7cmV0dXJuIGMrKG8/cihhLGMpLmxlbmd0aDoxKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcixhLGMsbz1sKDE4KSxoPWwoMTAxKSxmPWwoNzApLGc9bCg2NiksdT1sKDIpLHA9dS5wcm9jZXNzLHY9dS5zZXRJbW1lZGlhdGUs''@;'; put 'put ''SD11LmNsZWFySW1tZWRpYXRlLEM9dS5NZXNzYWdlQ2hhbm5lbCxWPXUuRGlzcGF0Y2gsUz0wLF89e30sYj0ib25yZWFkeXN0YXRlY2hhbmdlIixNPWZ1bmN0aW9uKCl7dmFyIEU9K3RoaXM7aWYoXy5oYXNPd25Qcm9wZXJ0eShFKSl7dmFyIHc9X1tFXTtkZWxldGUgX1tFXSx3KCl9fSx4PWZ1''@;'; put 'put ''bmN0aW9uKEUpe00uY2FsbChFLmRhdGEpfTt2JiZIfHwodj1mdW5jdGlvbih3KXtmb3IodmFyIE49W10sST0xO0k8YXJndW1lbnRzLmxlbmd0aDspTi5wdXNoKGFyZ3VtZW50c1tJKytdKTtyZXR1cm4gX1srK1NdPWZ1bmN0aW9uKCl7aCgiZnVuY3Rpb24iPT10eXBlb2Ygdz93OkZ1bmN0aW9u''@;'; put 'put ''KHcpLE4pfSxyKFMpLFN9LEg9ZnVuY3Rpb24odyl7ZGVsZXRlIF9bd119LCJwcm9jZXNzIj09bCgxOSkocCk/cj1mdW5jdGlvbihFKXtwLm5leHRUaWNrKG8oTSxFLDEpKX06ViYmVi5ub3c/cj1mdW5jdGlvbihFKXtWLm5vdyhvKE0sRSwxKSl9OkM/KGM9KGE9bmV3IEMpLnBvcnQyLGEucG9y''@;'; put 'put ''dDEub25tZXNzYWdlPXgscj1vKGMucG9zdE1lc3NhZ2UsYywxKSk6dS5hZGRFdmVudExpc3RlbmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgcG9zdE1lc3NhZ2UmJiF1LmltcG9ydFNjcmlwdHM/KHI9ZnVuY3Rpb24oRSl7dS5wb3N0TWVzc2FnZShFKyIiLCIqIil9LHUuYWRkRXZlbnRMaXN0ZW5l''@;'; put 'put ''cigibWVzc2FnZSIseCwhMSkpOnI9YiBpbiBnKCJzY3JpcHQiKT9mdW5jdGlvbihFKXtmLmFwcGVuZENoaWxkKGcoInNjcmlwdCIpKVtiXT1mdW5jdGlvbigpe2YucmVtb3ZlQ2hpbGQodGhpcyksTS5jYWxsKEUpfX06ZnVuY3Rpb24oRSl7c2V0VGltZW91dChvKE0sRSwxKSwwKX0pLEEuZXhw''@;'; put 'put ''b3J0cz17c2V0OnYsY2xlYXI6SH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLGE9bCg4OSkuc2V0LGM9ci5NdXRhdGlvbk9ic2VydmVyfHxyLldlYktpdE11dGF0aW9uT2JzZXJ2ZXIsbz1yLnByb2Nlc3MsaD1yLlByb21pc2UsZj0icHJvY2VzcyI9PWwoMTkpKG8pO0EuZXhwb3J0cz1m''@;'; put 'put ''dW5jdGlvbigpe3ZhciBnLHUscCx2PWZ1bmN0aW9uKCl7dmFyIFMsXztmb3IoZiYmKFM9by5kb21haW4pJiZTLmV4aXQoKTtnOyl7Xz1nLmZuLGc9Zy5uZXh0O3RyeXtfKCl9Y2F0Y2goYil7dGhyb3cgZz9wKCk6dT1rLGJ9fXU9ayxTJiZTLmVudGVyKCl9O2lmKGYpcD1mdW5jdGlvbigpe28u''@;'; put 'put ''bmV4dFRpY2sodil9O2Vsc2UgaWYoIWN8fHIubmF2aWdhdG9yJiZyLm5hdmlnYXRvci5zdGFuZGFsb25lKWlmKGgmJmgucmVzb2x2ZSl7dmFyIEg9aC5yZXNvbHZlKGspO3A9ZnVuY3Rpb24oKXtILnRoZW4odil9fWVsc2UgcD1mdW5jdGlvbigpe2EuY2FsbChyLHYpfTtlbHNle3ZhciBDPSEw''@;'; put 'put ''LFY9ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIpO25ldyBjKHYpLm9ic2VydmUoVix7Y2hhcmFjdGVyRGF0YTohMH0pLHA9ZnVuY3Rpb24oKXtWLmRhdGE9Qz0hQ319cmV0dXJuIGZ1bmN0aW9uKFMpe3ZhciBfPXtmbjpTLG5leHQ6a307dSYmKHUubmV4dD1fKSxnfHwoZz1fLHAoKSksdT1f''@;'; put 'put ''fX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEwKTtmdW5jdGlvbiBhKGMpe3ZhciBvLGg7dGhpcy5wcm9taXNlPW5ldyBjKGZ1bmN0aW9uKGYsZyl7aWYobyE9PWt8fGghPT1rKXRocm93IFR5cGVFcnJvcigiQmFkIFByb21pc2UgY29uc3RydWN0b3IiKTtvPWYsaD1nfSksdGhpcy5yZXNv''@;'; put 'put ''bHZlPXIobyksdGhpcy5yZWplY3Q9cihoKX1BLmV4cG9ydHMuZj1mdW5jdGlvbihjKXtyZXR1cm4gbmV3IGEoYyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoNyksYz1sKDI5KSxvPWwoNjIpLGg9bCgxMSksZj1sKDQxKSxnPWwoMyksdT1sKDM5KSxwPWwoMjApLHY9bCg2KSxI''@;'; put 'put ''PWwoMTIyKSxDPWwoMzcpLmYsVj1sKDgpLmYsUz1sKDg1KSxfPWwoNDMpLGI9IkFycmF5QnVmZmVyIixNPSJEYXRhVmlldyIseD0icHJvdG90eXBlIixFPSJXcm9uZyBpbmRleCEiLHc9cltiXSxOPXJbTV0sST1yLk1hdGgsVz1yLlJhbmdlRXJyb3IsTz1yLkluZmluaXR5LEI9dyxSPUkuYWJz''@;'; put 'put ''LGwxPUkucG93LGExPUkuZmxvb3IsaDE9SS5sb2csdTE9SS5MTjIscDE9ImJ5dGVMZW5ndGgiLHYxPSJieXRlT2Zmc2V0IixFMT1hPyJfYiI6ImJ1ZmZlciIsaj1hPyJfbCI6cDEsYzE9YT8iX28iOnYxO2Z1bmN0aW9uIFYxKFkscSxKKXt2YXIgQTEsTjEsUzEsbjE9bmV3IEFycmF5KEopLGkx''@;'; put 'put ''PTgqSi1xLTEsZjE9KDE8PGkxKS0xLHgxPWYxPj4xLEkxPTIzPT09cT9sMSgyLC0yNCktbDEoMiwtNzcpOjAsSjE9MCx0MD1ZPDB8fDA9PT1ZJiYxL1k8MD8xOjA7Zm9yKChZPVIoWSkpIT1ZfHxZPT09Tz8oTjE9WSE9WT8xOjAsQTE9ZjEpOihBMT1hMShoMShZKS91MSksWSooUzE9bDEoMiwt''@;'; put 'put ''QTEpKTwxJiYoQTEtLSxTMSo9MiksMjw9KFkrPTE8PUExK3gxP0kxL1MxOkkxKmwxKDIsMS14MSkpKlMxJiYoQTErKyxTMS89MiksZjE8PUExK3gxPyhOMT0wLEExPWYxKToxPD1BMSt4MT8oTjE9KFkqUzEtMSkqbDEoMixxKSxBMSs9eDEpOihOMT1ZKmwxKDIseDEtMSkqbDEoMixxKSxBMT0w''@;'; put 'put ''KSk7ODw9cTtuMVtKMSsrXT0yNTUmTjEsTjEvPTI1NixxLT04KTtmb3IoQTE9QTE8PHF8TjEsaTErPXE7MDxpMTtuMVtKMSsrXT0yNTUmQTEsQTEvPTI1NixpMS09OCk7cmV0dXJuIG4xWy0tSjFdfD0xMjgqdDAsbjF9ZnVuY3Rpb24gXzEoWSxxLEope3ZhciBBMSxOMT04KkotcS0xLFMxPSgx''@;'; put 'put ''PDxOMSktMSxuMT1TMT4+MSxpMT1OMS03LGYxPUotMSx4MT1ZW2YxLS1dLEkxPTEyNyZ4MTtmb3IoeDE+Pj03OzA8aTE7STE9MjU2KkkxK1lbZjFdLGYxLS0saTEtPTgpO2ZvcihBMT1JMSYoMTw8LWkxKS0xLEkxPj49LWkxLGkxKz1xOzA8aTE7QTE9MjU2KkExK1lbZjFdLGYxLS0saTEtPTgp''@;'; put 'put ''O2lmKDA9PT1JMSlJMT0xLW4xO2Vsc2V7aWYoSTE9PT1TMSlyZXR1cm4gQTE/TmFOOngxPy1POk87QTErPWwxKDIscSksSTEtPW4xfXJldHVybih4MT8tMToxKSpBMSpsMSgyLEkxLXEpfWZ1bmN0aW9uIFEoWSl7cmV0dXJuIFlbM108PDI0fFlbMl08PDE2fFlbMV08PDh8WVswXX1mdW5jdGlv''@;'; put 'put ''biBzMShZKXtyZXR1cm5bMjU1JlldfWZ1bmN0aW9uIG0xKFkpe3JldHVyblsyNTUmWSxZPj44JjI1NV19ZnVuY3Rpb24gYjEoWSl7cmV0dXJuWzI1NSZZLFk+PjgmMjU1LFk+PjE2JjI1NSxZPj4yNCYyNTVdfWZ1bmN0aW9uIEIxKFkpe3JldHVybiBWMShZLDUyLDgpfWZ1bmN0aW9uICQoWSl7''@;'; put 'put ''cmV0dXJuIFYxKFksMjMsNCl9ZnVuY3Rpb24geihZLHEsSil7VihZW3hdLHEse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzW0pdfX0pfWZ1bmN0aW9uIHkoWSxxLEosQTEpe3ZhciBOMT1IKCtKKTtpZihZW2pdPE4xK3EpdGhyb3cgVyhFKTt2YXIgUzE9TjErWVtjMV0sbjE9WVtFMV0uX2Iu''@;'; put 'put ''c2xpY2UoUzEsUzErcSk7cmV0dXJuIEExP24xOm4xLnJldmVyc2UoKX1mdW5jdGlvbiBEKFkscSxKLEExLE4xLFMxKXt2YXIgbjE9SCgrSik7aWYoWVtqXTxuMStxKXRocm93IFcoRSk7Zm9yKHZhciBpMT1ZW0UxXS5fYixmMT1uMStZW2MxXSx4MT1BMSgrTjEpLEkxPTA7STE8cTtJMSsrKWkx''@;'; put 'put ''W2YxK0kxXT14MVtTMT9JMTpxLUkxLTFdfWlmKG8uQUJWKXtpZighZyhmdW5jdGlvbigpe3coMSl9KXx8IWcoZnVuY3Rpb24oKXtuZXcgdygtMSl9KXx8ZyhmdW5jdGlvbigpe3JldHVybiBuZXcgdyxuZXcgdygxLjUpLG5ldyB3KE5hTiksdy5uYW1lIT1ifSkpe2Zvcih2YXIgWixUPSh3PWZ1''@;'; put 'put ''bmN0aW9uKHEpe3JldHVybiB1KHRoaXMsdyksbmV3IEIoSChxKSl9KVt4XT1CW3hdLFA9QyhCKSxlMT0wO2UxPFAubGVuZ3RoOykoWj1QW2UxKytdKWluIHd8fGgodyxaLEJbWl0pO2N8fChULmNvbnN0cnVjdG9yPXcpfXZhciByMT1uZXcgTihuZXcgdygyKSksWjE9Tlt4XS5zZXRJbnQ4O3Ix''@;'; put 'put ''LnNldEludDgoMCwyMTQ3NDgzNjQ4KSxyMS5zZXRJbnQ4KDEsMjE0NzQ4MzY0OSksIXIxLmdldEludDgoMCkmJnIxLmdldEludDgoMSl8fGYoTlt4XSx7c2V0SW50ODpmdW5jdGlvbihxLEope1oxLmNhbGwodGhpcyxxLEo8PDI0Pj4yNCl9LHNldFVpbnQ4OmZ1bmN0aW9uKHEsSil7WjEuY2Fs''@;'; put 'put ''bCh0aGlzLHEsSjw8MjQ+PjI0KX19LCEwKX1lbHNlIHc9ZnVuY3Rpb24ocSl7dSh0aGlzLHcsYik7dmFyIEo9SChxKTt0aGlzLl9iPVMuY2FsbChuZXcgQXJyYXkoSiksMCksdGhpc1tqXT1KfSxOPWZ1bmN0aW9uKHEsSixBMSl7dSh0aGlzLE4sTSksdShxLHcsTSk7dmFyIE4xPXFbal0sUzE9''@;'; put 'put ''cChKKTtpZihTMTwwfHxOMTxTMSl0aHJvdyBXKCJXcm9uZyBvZmZzZXQhIik7aWYoTjE8UzErKEExPUExPT09az9OMS1TMTp2KEExKSkpdGhyb3cgVygiV3JvbmcgbGVuZ3RoISIpO3RoaXNbRTFdPXEsdGhpc1tjMV09UzEsdGhpc1tqXT1BMX0sYSYmKHoodyxwMSwiX2wiKSx6KE4sImJ1ZmZl''@;'; put 'put ''ciIsIl9iIikseihOLHAxLCJfbCIpLHooTix2MSwiX28iKSksZihOW3hdLHtnZXRJbnQ4OmZ1bmN0aW9uKHEpe3JldHVybiB5KHRoaXMsMSxxKVswXTw8MjQ+PjI0fSxnZXRVaW50ODpmdW5jdGlvbihxKXtyZXR1cm4geSh0aGlzLDEscSlbMF19LGdldEludDE2OmZ1bmN0aW9uKHEpe3ZhciBK''@;'; put 'put ''PXkodGhpcywyLHEsYXJndW1lbnRzWzFdKTtyZXR1cm4oSlsxXTw8OHxKWzBdKTw8MTY+PjE2fSxnZXRVaW50MTY6ZnVuY3Rpb24ocSl7dmFyIEo9eSh0aGlzLDIscSxhcmd1bWVudHNbMV0pO3JldHVybiBKWzFdPDw4fEpbMF19LGdldEludDMyOmZ1bmN0aW9uKHEpe3JldHVybiBRKHkodGhp''@;'; put 'put ''cyw0LHEsYXJndW1lbnRzWzFdKSl9LGdldFVpbnQzMjpmdW5jdGlvbihxKXtyZXR1cm4gUSh5KHRoaXMsNCxxLGFyZ3VtZW50c1sxXSkpPj4+MH0sZ2V0RmxvYXQzMjpmdW5jdGlvbihxKXtyZXR1cm4gXzEoeSh0aGlzLDQscSxhcmd1bWVudHNbMV0pLDIzLDQpfSxnZXRGbG9hdDY0OmZ1bmN0''@;'; put 'put ''aW9uKHEpe3JldHVybiBfMSh5KHRoaXMsOCxxLGFyZ3VtZW50c1sxXSksNTIsOCl9LHNldEludDg6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsMSxxLHMxLEopfSxzZXRVaW50ODpmdW5jdGlvbihxLEope0QodGhpcywxLHEsczEsSil9LHNldEludDE2OmZ1bmN0aW9uKHEsSil7RCh0aGlzLDIscSxt''@;'; put 'put ''MSxKLGFyZ3VtZW50c1syXSl9LHNldFVpbnQxNjpmdW5jdGlvbihxLEope0QodGhpcywyLHEsbTEsSixhcmd1bWVudHNbMl0pfSxzZXRJbnQzMjpmdW5jdGlvbihxLEope0QodGhpcyw0LHEsYjEsSixhcmd1bWVudHNbMl0pfSxzZXRVaW50MzI6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsNCxxLGIx''@;'; put 'put ''LEosYXJndW1lbnRzWzJdKX0sc2V0RmxvYXQzMjpmdW5jdGlvbihxLEope0QodGhpcyw0LHEsJCxKLGFyZ3VtZW50c1syXSl9LHNldEZsb2F0NjQ6ZnVuY3Rpb24ocSxKKXtEKHRoaXMsOCxxLEIxLEosYXJndW1lbnRzWzJdKX19KTtfKHcsYiksXyhOLE0pLGgoTlt4XSxvLlZJRVcsITApLGVb''@;'; put 'put ''Yl09dyxlW01dPU59LGZ1bmN0aW9uKEEsZSxsKXtBLmV4cG9ydHM9IWwoNykmJiFsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsKDY2KSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSl9LGZ1bmN0aW9uKEEsZSxsKXtlLmY9''@;'; put 'put ''bCg1KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTQpLGE9bCgxNSksYz1sKDUyKSghMSksbz1sKDY4KSgiSUVfUFJPVE8iKTtBLmV4cG9ydHM9ZnVuY3Rpb24oaCxmKXt2YXIgZyx1PWEoaCkscD0wLHY9W107Zm9yKGcgaW4gdSlnIT1vJiZyKHUsZykmJnYucHVzaChnKTtmb3IoO3A8Zi5s''@;'; put 'put ''ZW5ndGg7KXIodSxnPWZbcCsrXSkmJih+Yyh2LGcpfHx2LnB1c2goZykpO3JldHVybiB2fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOCksYT1sKDEpLGM9bCgzNCk7QS5leHBvcnRzPWwoNyk/T2JqZWN0LmRlZmluZVByb3BlcnRpZXM6ZnVuY3Rpb24oaCxmKXthKGgpO2Zvcih2YXIgZyx1''@;'; put 'put ''PWMoZikscD11Lmxlbmd0aCx2PTA7djxwOylyLmYoaCxnPXVbdisrXSxmW2ddKTtyZXR1cm4gaH19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE1KSxhPWwoMzcpLmYsYz17fS50b1N0cmluZyxvPSJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cmJk9iamVjdC5nZXRPd25Qcm9wZXJ0''@;'; put 'put ''eU5hbWVzP09iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHdpbmRvdyk6W107QS5leHBvcnRzLmY9ZnVuY3Rpb24oZil7cmV0dXJuIG8mJiJbb2JqZWN0IFdpbmRvd10iPT1jLmNhbGwoZik/ZnVuY3Rpb24oZyl7dHJ5e3JldHVybiBhKGcpfWNhdGNoKHUpe3JldHVybiBvLnNsaWNlKCl9fShm''@;'; put 'put ''KTphKHIoZikpfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNyksYT1sKDM0KSxjPWwoNTMpLG89bCg0OSksaD1sKDkpLGY9bCg0OCksZz1PYmplY3QuYXNzaWduO0EuZXhwb3J0cz0hZ3x8bCgzKShmdW5jdGlvbigpe3ZhciB1PXt9LHA9e30sdj1TeW1ib2woKSxIPSJhYmNkZWZnaGlqa2xt''@;'; put 'put ''bm9wcXJzdCI7cmV0dXJuIHVbdl09NyxILnNwbGl0KCIiKS5mb3JFYWNoKGZ1bmN0aW9uKEMpe3BbQ109Q30pLDchPWcoe30sdSlbdl18fE9iamVjdC5rZXlzKGcoe30scCkpLmpvaW4oIiIpIT1IfSk/ZnVuY3Rpb24ocCx2KXtmb3IodmFyIEg9aChwKSxDPWFyZ3VtZW50cy5sZW5ndGgsVj0x''@;'; put 'put ''LFM9Yy5mLF89by5mO1Y8QzspZm9yKHZhciBiLE09Zihhcmd1bWVudHNbVisrXSkseD1TP2EoTSkuY29uY2F0KFMoTSkpOmEoTSksRT14Lmxlbmd0aCx3PTA7dzxFOyliPXhbdysrXSxyJiYhXy5jYWxsKE0sYil8fChIW2JdPU1bYl0pO3JldHVybiBIfTpnfSxmdW5jdGlvbihBLGUpe0EuZXhw''@;'; put 'put ''b3J0cz1PYmplY3QuaXN8fGZ1bmN0aW9uKHIsYSl7cmV0dXJuIHI9PT1hPzAhPT1yfHwxL3I9PTEvYTpyIT1yJiZhIT1hfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTApLGE9bCg0KSxjPWwoMTAxKSxvPVtdLnNsaWNlLGg9e307QS5leHBvcnRzPUZ1bmN0aW9uLmJpbmR8fGZ1bmN0aW9u''@;'; put 'put ''KGcpe3ZhciB1PXIodGhpcykscD1vLmNhbGwoYXJndW1lbnRzLDEpLHY9ZnVuY3Rpb24oKXt2YXIgSD1wLmNvbmNhdChvLmNhbGwoYXJndW1lbnRzKSk7cmV0dXJuIHRoaXMgaW5zdGFuY2VvZiB2P2Z1bmN0aW9uKEMsVixTKXtpZighKFYgaW4gaCkpe2Zvcih2YXIgXz1bXSxiPTA7YjxWO2Ir''@;'; put 'put ''KylfW2JdPSJhWyIrYisiXSI7aFtWXT1GdW5jdGlvbigiRixhIiwicmV0dXJuIG5ldyBGKCIrXy5qb2luKCIsIikrIikiKX1yZXR1cm4gaFtWXShDLFMpfSh1LEgubGVuZ3RoLEgpOmModSxILGcpfTtyZXR1cm4gYSh1LnByb3RvdHlwZSkmJih2LnByb3RvdHlwZT11LnByb3RvdHlwZSksdn19''@;'; put 'put ''LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwscixhKXt2YXIgYz1hPT09aztzd2l0Y2goci5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gYz9sKCk6bC5jYWxsKGEpO2Nhc2UgMTpyZXR1cm4gYz9sKHJbMF0pOmwuY2FsbChhLHJbMF0pO2Nhc2UgMjpyZXR1cm4gYz9sKHJbMF0sclsx''@;'; put 'put ''XSk6bC5jYWxsKGEsclswXSxyWzFdKTtjYXNlIDM6cmV0dXJuIGM/bChyWzBdLHJbMV0sclsyXSk6bC5jYWxsKGEsclswXSxyWzFdLHJbMl0pO2Nhc2UgNDpyZXR1cm4gYz9sKHJbMF0sclsxXSxyWzJdLHJbM10pOmwuY2FsbChhLHJbMF0sclsxXSxyWzJdLHJbM10pfXJldHVybiBsLmFwcGx5''@;'; put 'put ''KGEscil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxOSk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7aWYoIm51bWJlciIhPXR5cGVvZiBhJiYiTnVtYmVyIiE9cihhKSl0aHJvdyBUeXBlRXJyb3IoYyk7cmV0dXJuK2F9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPU1hdGguZmxv''@;'; put 'put ''b3I7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3JldHVybiFyKG8pJiZpc0Zpbml0ZShvKSYmYShvKT09PW99fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyKS5wYXJzZUZsb2F0LGE9bCg0NSkudHJpbTtBLmV4cG9ydHM9MS9yKGwoNzMpKyItMCIpIT0tMS8wP2Z1bmN0aW9uKG8pe3ZhciBoPWEo''@;'; put 'put ''U3RyaW5nKG8pLDMpLGY9cihoKTtyZXR1cm4gMD09PWYmJiItIj09aC5jaGFyQXQoMCk/LTA6Zn06cn0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMikucGFyc2VJbnQsYT1sKDQ1KS50cmltLGM9bCg3Myksbz0vXlstK10/MFt4WF0vO0EuZXhwb3J0cz04IT09cihjKyIwOCIpfHwyMiE9PXIo''@;'; put 'put ''YysiMHgxNiIpP2Z1bmN0aW9uKGYsZyl7dmFyIHU9YShTdHJpbmcoZiksMyk7cmV0dXJuIHIodSxnPj4+MHx8KG8udGVzdCh1KT8xNjoxMCkpfTpyfSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1NYXRoLmxvZzFwfHxmdW5jdGlvbihyKXtyZXR1cm4tMWUtODwocj0rcikmJnI8MWUtOD9yLXIq''@;'; put 'put ''ci8yOk1hdGgubG9nKDErcil9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg3NSksYT1NYXRoLnBvdyxjPWEoMiwtNTIpLG89YSgyLC0yMyksaD1hKDIsMTI3KSooMi1vKSxmPWEoMiwtMTI2KTtBLmV4cG9ydHM9TWF0aC5mcm91bmR8fGZ1bmN0aW9uKHUpe3ZhciBwLHYsSD1NYXRoLmFicyh1''@;'; put 'put ''KSxDPXIodSk7cmV0dXJuIEg8Zj9DKihIL2YvbysxL2MtMS9jKSpmKm86aDwodj0ocD0oMStvL2MpKkgpLShwLUgpKXx8diE9dj9DKigxLzApOkMqdn19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpO0EuZXhwb3J0cz1mdW5jdGlvbihhLGMsbyxoKXt0cnl7cmV0dXJuIGg/YyhyKG8pWzBd''@;'; put 'put ''LG9bMV0pOmMobyl9Y2F0Y2goZyl7dmFyIGY9YS5yZXR1cm47dGhyb3cgZiE9PWsmJnIoZi5jYWxsKGEpKSxnfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEwKSxhPWwoOSksYz1sKDQ4KSxvPWwoNik7QS5leHBvcnRzPWZ1bmN0aW9uKGgsZixnLHUscCl7cihmKTt2YXIgdj1hKGgpLEg9''@;'; put 'put ''Yyh2KSxDPW8odi5sZW5ndGgpLFY9cD9DLTE6MCxTPXA/LTE6MTtpZihnPDIpZm9yKDs7KXtpZihWIGluIEgpe3U9SFtWXSxWKz1TO2JyZWFrfWlmKFYrPVMscD9WPDA6Qzw9Vil0aHJvdyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKX1m''@;'; put 'put ''b3IoO3A/MDw9VjpWPEM7Vis9UylWIGluIEgmJih1PWYodSxIW1ZdLFYsdikpO3JldHVybiB1fX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoOSksYT1sKDM1KSxjPWwoNik7QS5leHBvcnRzPVtdLmNvcHlXaXRoaW58fGZ1bmN0aW9uKGgsZil7dmFyIGc9cih0aGlzKSx1PWMoZy5sZW5ndGgp''@;'; put 'put ''LHA9YShoLHUpLHY9YShmLHUpLEg9Mjxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1syXTprLEM9TWF0aC5taW4oKEg9PT1rP3U6YShILHUpKS12LHUtcCksVj0xO2Zvcih2PHAmJnA8ditDJiYoVj0tMSx2Kz1DLTEscCs9Qy0xKTswPEMtLTspdiBpbiBnP2dbcF09Z1t2XTpkZWxldGUgZ1tw''@;'; put 'put ''XSxwKz1WLHYrPVY7cmV0dXJuIGd9fSxmdW5jdGlvbihBLGUpe0EuZXhwb3J0cz1mdW5jdGlvbihsLHIpe3JldHVybnt2YWx1ZTpyLGRvbmU6ISFsfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDg3KTtsKDApKHt0YXJnZXQ6IlJlZ0V4cCIscHJvdG86ITAsZm9yY2VkOnIhPT0vLi8uZXhl''@;'; put 'put ''Y30se2V4ZWM6cn0pfSxmdW5jdGlvbihBLGUsbCl7bCg3KSYmImciIT0vLi9nLmZsYWdzJiZsKDgpLmYoUmVnRXhwLnByb3RvdHlwZSwiZmxhZ3MiLHtjb25maWd1cmFibGU6ITAsZ2V0OmwoNTApfSl9LGZ1bmN0aW9uKEEsZSl7QS5leHBvcnRzPWZ1bmN0aW9uKGwpe3RyeXtyZXR1cm57ZToh''@;'; put 'put ''MSx2OmwoKX19Y2F0Y2gocil7cmV0dXJue2U6ITAsdjpyfX19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoNCksYz1sKDkxKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyxoKXtpZihyKG8pLGEoaCkmJmguY29uc3RydWN0b3I9PT1vKXJldHVybiBoO3ZhciBmPWMuZihvKTtyZXR1cm4o''@;'; put 'put ''MCxmLnJlc29sdmUpKGgpLGYucHJvbWlzZX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDExNyksYT1sKDQyKTtBLmV4cG9ydHM9bCg2MSkoIk1hcCIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmsp''@;'; put 'put ''fX0se2dldDpmdW5jdGlvbihvKXt2YXIgaD1yLmdldEVudHJ5KGEodGhpcywiTWFwIiksbyk7cmV0dXJuIGgmJmgudn0sc2V0OmZ1bmN0aW9uKG8saCl7cmV0dXJuIHIuZGVmKGEodGhpcywiTWFwIiksMD09PW8/MDpvLGgpfX0sciwhMCl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLmYs''@;'; put 'put ''YT1sKDM2KSxjPWwoNDEpLG89bCgxOCksaD1sKDM5KSxmPWwoNDApLGc9bCg3OSksdT1sKDExMSkscD1sKDM4KSx2PWwoNyksSD1sKDMwKS5mYXN0S2V5LEM9bCg0MiksVj12PyJfcyI6InNpemUiLFM9ZnVuY3Rpb24oXyxiKXt2YXIgTSx4PUgoYik7aWYoIkYiIT09eClyZXR1cm4gXy5faVt4''@;'; put 'put ''XTtmb3IoTT1fLl9mO007TT1NLm4paWYoTS5rPT1iKXJldHVybiBNfTtBLmV4cG9ydHM9e2dldENvbnN0cnVjdG9yOmZ1bmN0aW9uKF8sYixNLHgpe3ZhciBFPV8oZnVuY3Rpb24odyxOKXtoKHcsRSxiLCJfaSIpLHcuX3Q9Yix3Ll9pPWEobnVsbCksdy5fZj1rLHcuX2w9ayx3W1ZdPTAsTiE9''@;'; put 'put ''ayYmZihOLE0sd1t4XSx3KX0pO3JldHVybiBjKEUucHJvdG90eXBlLHtjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgTj1DKHRoaXMsYiksST1OLl9pLFc9Ti5fZjtXO1c9Vy5uKVcucj0hMCxXLnAmJihXLnA9Vy5wLm49ayksZGVsZXRlIElbVy5pXTtOLl9mPU4uX2w9ayxOW1ZdPTB9LGRlbGV0''@;'; put 'put ''ZTpmdW5jdGlvbih3KXt2YXIgTj1DKHRoaXMsYiksST1TKE4sdyk7aWYoSSl7dmFyIFc9SS5uLE89SS5wO2RlbGV0ZSBOLl9pW0kuaV0sSS5yPSEwLE8mJihPLm49VyksVyYmKFcucD1PKSxOLl9mPT1JJiYoTi5fZj1XKSxOLl9sPT1JJiYoTi5fbD1PKSxOW1ZdLS19cmV0dXJuISFJfSxmb3JF''@;'; put 'put ''YWNoOmZ1bmN0aW9uKE4pe0ModGhpcyxiKTtmb3IodmFyIEksVz1vKE4sMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprLDMpO0k9ST9JLm46dGhpcy5fZjspZm9yKFcoSS52LEkuayx0aGlzKTtJJiZJLnI7KUk9SS5wfSxoYXM6ZnVuY3Rpb24oTil7cmV0dXJuISFTKEModGhpcyxi''@;'; put 'put ''KSxOKX19KSx2JiZyKEUucHJvdG90eXBlLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEModGhpcyxiKVtWXX19KSxFfSxkZWY6ZnVuY3Rpb24oXyxiLE0pe3ZhciB4LEUsdz1TKF8sYik7cmV0dXJuIHc/dy52PU06KF8uX2w9dz17aTpFPUgoYiwhMCksazpiLHY6TSxwOng9Xy5fbCxu''@;'; put 'put ''OmsscjohMX0sXy5fZnx8KF8uX2Y9dykseCYmKHgubj13KSxfW1ZdKyssIkYiIT09RSYmKF8uX2lbRV09dykpLF99LGdldEVudHJ5OlMsc2V0U3Ryb25nOmZ1bmN0aW9uKF8sYixNKXtnKF8sYixmdW5jdGlvbih4LEUpe3RoaXMuX3Q9Qyh4LGIpLHRoaXMuX2s9RSx0aGlzLl9sPWt9LGZ1bmN0''@;'; put 'put ''aW9uKCl7Zm9yKHZhciB4PXRoaXMsRT14Ll9rLHc9eC5fbDt3JiZ3LnI7KXc9dy5wO3JldHVybiB4Ll90JiYoeC5fbD13PXc/dy5uOnguX3QuX2YpP3UoMCwia2V5cyI9PUU/dy5rOiJ2YWx1ZXMiPT1FP3cudjpbdy5rLHcudl0pOih4Ll90PWssdSgxKSl9LE0/ImVudHJpZXMiOiJ2YWx1ZXMi''@;'; put 'put ''LCFNLCEwKSxwKGIpfX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDExNyksYT1sKDQyKTtBLmV4cG9ydHM9bCg2MSkoIlNldCIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGModGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmspfX0se2FkZDpmdW5j''@;'; put 'put ''dGlvbihvKXtyZXR1cm4gci5kZWYoYSh0aGlzLCJTZXQiKSxvPTA9PT1vPzA6byxvKX19LHIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHIsYT1sKDIpLGM9bCgyNSkoMCksbz1sKDEyKSxoPWwoMzApLGY9bCg5OCksZz1sKDEyMCksdT1sKDQpLHA9bCg0Miksdj1sKDQyKSxIPSFhLkFjdGl2ZVhP''@;'; put 'put ''YmplY3QmJiJBY3RpdmVYT2JqZWN0ImluIGEsQz0iV2Vha01hcCIsVj1oLmdldFdlYWssUz1PYmplY3QuaXNFeHRlbnNpYmxlLF89Zy51ZnN0b3JlLGI9ZnVuY3Rpb24oRSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIEUodGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmsp''@;'; put 'put ''fX0sTT17Z2V0OmZ1bmN0aW9uKHcpe2lmKHUodykpe3ZhciBOPVYodyk7cmV0dXJuITA9PT1OP18ocCh0aGlzLEMpKS5nZXQodyk6Tj9OW3RoaXMuX2ldOmt9fSxzZXQ6ZnVuY3Rpb24odyxOKXtyZXR1cm4gZy5kZWYocCh0aGlzLEMpLHcsTil9fSx4PUEuZXhwb3J0cz1sKDYxKShDLGIsTSxn''@;'; put 'put ''LCEwLCEwKTt2JiZIJiYoZigocj1nLmdldENvbnN0cnVjdG9yKGIsQykpLnByb3RvdHlwZSxNKSxoLk5FRUQ9ITAsYyhbImRlbGV0ZSIsImhhcyIsImdldCIsInNldCJdLGZ1bmN0aW9uKEUpe3ZhciB3PXgucHJvdG90eXBlLE49d1tFXTtvKHcsRSxmdW5jdGlvbihJLFcpe2lmKHUoSSkmJiFT''@;'; put 'put ''KEkpKXt0aGlzLl9mfHwodGhpcy5fZj1uZXcgcik7dmFyIE89dGhpcy5fZltFXShJLFcpO3JldHVybiJzZXQiPT1FP3RoaXM6T31yZXR1cm4gTi5jYWxsKHRoaXMsSSxXKX0pfSkpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0MSksYT1sKDMwKS5nZXRXZWFrLGM9bCgxKSxvPWwoNCksaD1s''@;'; put 'put ''KDM5KSxmPWwoNDApLGc9bCgyNSksdT1sKDE0KSxwPWwoNDIpLHY9Zyg1KSxIPWcoNiksQz0wLFY9ZnVuY3Rpb24oYil7cmV0dXJuIGIuX2x8fChiLl9sPW5ldyBTKX0sUz1mdW5jdGlvbigpe3RoaXMuYT1bXX0sXz1mdW5jdGlvbihiLE0pe3JldHVybiB2KGIuYSxmdW5jdGlvbih4KXtyZXR1''@;'; put 'put ''cm4geFswXT09PU19KX07Uy5wcm90b3R5cGU9e2dldDpmdW5jdGlvbihiKXt2YXIgTT1fKHRoaXMsYik7aWYoTSlyZXR1cm4gTVsxXX0saGFzOmZ1bmN0aW9uKGIpe3JldHVybiEhXyh0aGlzLGIpfSxzZXQ6ZnVuY3Rpb24oYixNKXt2YXIgeD1fKHRoaXMsYik7eD94WzFdPU06dGhpcy5hLnB1''@;'; put 'put ''c2goW2IsTV0pfSxkZWxldGU6ZnVuY3Rpb24oYil7dmFyIE09SCh0aGlzLmEsZnVuY3Rpb24oeCl7cmV0dXJuIHhbMF09PT1ifSk7cmV0dXJufk0mJnRoaXMuYS5zcGxpY2UoTSwxKSwhIX5NfX0sQS5leHBvcnRzPXtnZXRDb25zdHJ1Y3RvcjpmdW5jdGlvbihiLE0seCxFKXt2YXIgdz1iKGZ1''@;'; put 'put ''bmN0aW9uKE4sSSl7aChOLHcsTSwiX2kiKSxOLl90PU0sTi5faT1DKyssSSE9KE4uX2w9aykmJmYoSSx4LE5bRV0sTil9KTtyZXR1cm4gcih3LnByb3RvdHlwZSx7ZGVsZXRlOmZ1bmN0aW9uKE4pe2lmKCFvKE4pKXJldHVybiExO3ZhciBJPWEoTik7cmV0dXJuITA9PT1JP1YocCh0aGlzLE0p''@;'; put 'put ''KS5kZWxldGUoTik6SSYmdShJLHRoaXMuX2kpJiZkZWxldGUgSVt0aGlzLl9pXX0saGFzOmZ1bmN0aW9uKEkpe2lmKCFvKEkpKXJldHVybiExO3ZhciBXPWEoSSk7cmV0dXJuITA9PT1XP1YocCh0aGlzLE0pKS5oYXMoSSk6VyYmdShXLHRoaXMuX2kpfX0pLHd9LGRlZjpmdW5jdGlvbihiLE0s''@;'; put 'put ''eCl7dmFyIEU9YShjKE0pLCEwKTtyZXR1cm4hMD09PUU/VihiKS5zZXQoTSx4KTpFW2IuX2ldPXgsYn0sdWZzdG9yZTpWfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMzcpLGE9bCg1MyksYz1sKDEpLG89bCgyKS5SZWZsZWN0O0EuZXhwb3J0cz1vJiZvLm93bktleXN8fGZ1bmN0aW9uKGYp''@;'; put 'put ''e3ZhciBnPXIuZihjKGYpKSx1PWEuZjtyZXR1cm4gdT9nLmNvbmNhdCh1KGYpKTpnfX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjApLGE9bCg2KTtBLmV4cG9ydHM9ZnVuY3Rpb24oYyl7aWYoYz09PWspcmV0dXJuIDA7dmFyIG89cihjKSxoPWEobyk7aWYobyE9PWgpdGhyb3cgUmFuZ2VF''@;'; put 'put ''cnJvcigiV3JvbmcgbGVuZ3RoISIpO3JldHVybiBofX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNTQpLGE9bCg0KSxjPWwoNiksbz1sKDE4KSxoPWwoNSkoImlzQ29uY2F0U3ByZWFkYWJsZSIpO0EuZXhwb3J0cz1mdW5jdGlvbiBmKGcsdSxwLHYsSCxDLFYsUyl7Zm9yKHZhciBfLGIsTT1I''@;'; put 'put ''LHg9MCxFPSEhViYmbyhWLFMsMyk7eDx2Oyl7aWYoeCBpbiBwKXtpZihfPUU/RShwW3hdLHgsdSk6cFt4XSxiPSExLGEoXykmJihiPShiPV9baF0pIT09az8hIWI6cihfKSksYiYmMDxDKU09ZihnLHUsXyxjKF8ubGVuZ3RoKSxNLEMtMSktMTtlbHNle2lmKDkwMDcxOTkyNTQ3NDA5OTE8PU0p''@;'; put 'put ''dGhyb3cgVHlwZUVycm9yKCk7Z1tNXT1ffU0rK314Kyt9cmV0dXJuIE19fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg2KSxhPWwoNzQpLGM9bCgyMyk7QS5leHBvcnRzPWZ1bmN0aW9uKG8saCxmLGcpe3ZhciB1PVN0cmluZyhjKG8pKSxwPXUubGVuZ3RoLHY9Zj09PWs/IiAiOlN0cmluZyhm''@;'; put 'put ''KSxIPXIoaCk7aWYoSDw9cHx8IiI9PXYpcmV0dXJuIHU7dmFyIEM9SC1wLFY9YS5jYWxsKHYsTWF0aC5jZWlsKEMvdi5sZW5ndGgpKTtyZXR1cm4gQzxWLmxlbmd0aCYmKFY9Vi5zbGljZSgwLEMpKSxnP1YrdTp1K1Z9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg3KSxhPWwoMzQpLGM9bCgx''@;'; put 'put ''NSksbz1sKDQ5KS5mO0EuZXhwb3J0cz1mdW5jdGlvbihoKXtyZXR1cm4gZnVuY3Rpb24oZil7Zm9yKHZhciBnLHU9YyhmKSxwPWEodSksdj1wLmxlbmd0aCxIPTAsQz1bXTtIPHY7KWc9cFtIKytdLHImJiFvLmNhbGwodSxnKXx8Qy5wdXNoKGg/W2csdVtnXV06dVtnXSk7cmV0dXJuIEN9fX0s''@;'; put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNDQpLGE9bCgxMjcpO0EuZXhwb3J0cz1mdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oKXtpZihyKHRoaXMpIT1jKXRocm93IFR5cGVFcnJvcihjKyIjdG9KU09OIGlzbid0IGdlbmVyaWMiKTtyZXR1cm4gYSh0aGlzKX19fSxmdW5jdGlvbihBLGUs''@;'; put 'put ''bCl7dmFyIHI9bCg0MCk7QS5leHBvcnRzPWZ1bmN0aW9uKGEsYyl7dmFyIG89W107cmV0dXJuIHIoYSwhMSxvLnB1c2gsbyxjKSxvfX0sZnVuY3Rpb24oQSxlKXtBLmV4cG9ydHM9TWF0aC5zY2FsZXx8ZnVuY3Rpb24ocixhLGMsbyxoKXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGh8fHIh''@;'; put 'put ''PXJ8fGEhPWF8fGMhPWN8fG8hPW98fGghPWg/TmFOOnI9PT0xLzB8fHI9PT0tMS8wP3I6KHItYSkqKGgtbykvKGMtYSkrb319LGZ1bmN0aW9uKEEsZSxsKXtsKDEzMCksbCgxMzMpLGwoMTM0KSxsKDEzNSksbCgxMzYpLGwoMTM3KSxsKDEzOCksbCgxMzkpLGwoMTQwKSxsKDE0MSksbCgxNDIp''@;'; put 'put ''LGwoMTQzKSxsKDE0NCksbCgxNDUpLGwoMTQ2KSxsKDE0NyksbCgxNDgpLGwoMTQ5KSxsKDE1MCksbCgxNTEpLGwoMTUyKSxsKDE1MyksbCgxNTQpLGwoMTU1KSxsKDE1NiksbCgxNTcpLGwoMTU4KSxsKDE1OSksbCgxNjApLGwoMTYxKSxsKDE2MiksbCgxNjMpLGwoMTY0KSxsKDE2NSksbCgx''@;'; put 'put ''NjYpLGwoMTY3KSxsKDE2OCksbCgxNjkpLGwoMTcwKSxsKDE3MSksbCgxNzIpLGwoMTczKSxsKDE3NCksbCgxNzUpLGwoMTc2KSxsKDE3NyksbCgxNzgpLGwoMTc5KSxsKDE4MCksbCgxODEpLGwoMTgyKSxsKDE4MyksbCgxODQpLGwoMTg1KSxsKDE4NiksbCgxODcpLGwoMTg4KSxsKDE4OSks''@;'; put 'put ''bCgxOTApLGwoMTkxKSxsKDE5MiksbCgxOTMpLGwoMTk0KSxsKDE5NSksbCgxOTYpLGwoMTk3KSxsKDE5OCksbCgxOTkpLGwoMjAwKSxsKDIwMSksbCgyMDIpLGwoMjAzKSxsKDIwNCksbCgyMDUpLGwoMjA2KSxsKDIwNyksbCgyMDgpLGwoMjA5KSxsKDIxMCksbCgyMTEpLGwoMjEyKSxsKDIx''@;'; put 'put ''NCksbCgyMTUpLGwoMjE2KSxsKDIxNyksbCgyMTgpLGwoMjE5KSxsKDIyMCksbCgyMjEpLGwoMjIyKSxsKDIyMyksbCgyMjQpLGwoMjI1KSxsKDg2KSxsKDIyNiksbCgyMjcpLGwoMTEyKSxsKDIyOCksbCgxMTMpLGwoMjI5KSxsKDIzMCksbCgyMzEpLGwoMjMyKSxsKDIzMyksbCgxMTYpLGwo''@;'; put 'put ''MTE4KSxsKDExOSksbCgyMzQpLGwoMjM1KSxsKDIzNiksbCgyMzcpLGwoMjM4KSxsKDIzOSksbCgyNDApLGwoMjQxKSxsKDI0MiksbCgyNDMpLGwoMjQ0KSxsKDI0NSksbCgyNDYpLGwoMjQ3KSxsKDI0OCksbCgyNDkpLGwoMjUwKSxsKDI1MSksbCgyNTMpLGwoMjU0KSxsKDI1NiksbCgyNTcp''@;'; put 'put ''LGwoMjU4KSxsKDI1OSksbCgyNjApLGwoMjYxKSxsKDI2MiksbCgyNjMpLGwoMjY0KSxsKDI2NSksbCgyNjYpLGwoMjY3KSxsKDI2OCksbCgyNjkpLGwoMjcwKSxsKDI3MSksbCgyNzIpLGwoMjczKSxsKDI3NCksbCgyNzUpLGwoMjc2KSxsKDI3NyksbCgyNzgpLGwoMjc5KSxsKDI4MCksbCgy''@;'; put 'put ''ODEpLGwoMjgyKSxsKDI4MyksbCgyODQpLGwoMjg1KSxsKDI4NiksbCgyODcpLGwoMjg4KSxsKDI4OSksbCgyOTApLGwoMjkxKSxsKDI5MiksbCgyOTMpLGwoMjk0KSxsKDI5NSksbCgyOTYpLGwoMjk3KSxsKDI5OCksbCgyOTkpLGwoMzAwKSxsKDMwMSksbCgzMDIpLGwoMzAzKSxsKDMwNCks''@;'; put 'put ''bCgzMDUpLGwoMzA2KSxsKDMwNyksbCgzMDgpLGwoMzA5KSxsKDMxMCksbCgzMTEpLGwoMzEyKSxsKDMxMyksbCgzMTQpLGwoMzE1KSxsKDMxNiksbCgzMTcpLGwoMzE4KSxsKDMxOSksbCgzMjApLGwoMzIxKSxsKDMyMiksbCgzMjMpLGwoMzI0KSxBLmV4cG9ydHM9bCgzMjUpfSxmdW5jdGlv''@;'; put 'put ''bihBLGUsbCl7dmFyIHI9bCgyKSxhPWwoMTQpLGM9bCg3KSxvPWwoMCksaD1sKDEyKSxmPWwoMzApLktFWSxnPWwoMyksdT1sKDQ3KSxwPWwoNDMpLHY9bCgzMyksSD1sKDUpLEM9bCg5NCksVj1sKDY3KSxTPWwoMTMyKSxfPWwoNTQpLGI9bCgxKSxNPWwoNCkseD1sKDkpLEU9bCgxNSksdz1s''@;'; put 'put ''KDIyKSxOPWwoMzIpLEk9bCgzNiksVz1sKDk3KSxPPWwoMTYpLEI9bCg1MyksUj1sKDgpLGwxPWwoMzQpLGExPU8uZixoMT1SLmYsdTE9Vy5mLHAxPXIuU3ltYm9sLHYxPXIuSlNPTixFMT12MSYmdjEuc3RyaW5naWZ5LGo9InByb3RvdHlwZSIsYzE9SCgiX2hpZGRlbiIpLFYxPUgoInRvUHJp''@;'; put 'put ''bWl0aXZlIiksXzE9e30ucHJvcGVydHlJc0VudW1lcmFibGUsUT11KCJzeW1ib2wtcmVnaXN0cnkiKSxzMT11KCJzeW1ib2xzIiksbTE9dSgib3Atc3ltYm9scyIpLGIxPU9iamVjdFtqXSxCMT0iZnVuY3Rpb24iPT10eXBlb2YgcDEmJiEhQi5mLCQ9ci5RT2JqZWN0LHo9ISR8fCEkW2pdfHwh''@;'; put 'put ''JFtqXS5maW5kQ2hpbGQseT1jJiZnKGZ1bmN0aW9uKCl7cmV0dXJuIDchPUkoaDEoe30sImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaDEodGhpcywiYSIse3ZhbHVlOjd9KS5hfX0pKS5hfSk/ZnVuY3Rpb24objEsaTEsZjEpe3ZhciB4MT1hMShiMSxpMSk7eDEmJmRlbGV0ZSBiMVtpMV0s''@;'; put 'put ''aDEobjEsaTEsZjEpLHgxJiZuMSE9PWIxJiZoMShiMSxpMSx4MSl9OmgxLEQ9ZnVuY3Rpb24objEpe3ZhciBpMT1zMVtuMV09SShwMVtqXSk7cmV0dXJuIGkxLl9rPW4xLGkxfSxaPUIxJiYic3ltYm9sIj09dHlwZW9mIHAxLml0ZXJhdG9yP2Z1bmN0aW9uKG4xKXtyZXR1cm4ic3ltYm9sIj09''@;'; put 'put ''dHlwZW9mIG4xfTpmdW5jdGlvbihuMSl7cmV0dXJuIG4xIGluc3RhbmNlb2YgcDF9LFQ9ZnVuY3Rpb24oaTEsZjEseDEpe3JldHVybiBpMT09PWIxJiZUKG0xLGYxLHgxKSxiKGkxKSxmMT13KGYxLCEwKSxiKHgxKSxhKHMxLGYxKT8oeDEuZW51bWVyYWJsZT8oYShpMSxjMSkmJmkxW2MxXVtm''@;'; put 'put ''MV0mJihpMVtjMV1bZjFdPSExKSx4MT1JKHgxLHtlbnVtZXJhYmxlOk4oMCwhMSl9KSk6KGEoaTEsYzEpfHxoMShpMSxjMSxOKDEse30pKSxpMVtjMV1bZjFdPSEwKSx5KGkxLGYxLHgxKSk6aDEoaTEsZjEseDEpfSxQPWZ1bmN0aW9uKGkxLGYxKXtiKGkxKTtmb3IodmFyIHgxLEkxPVMoZjE9''@;'; put 'put ''RShmMSkpLEoxPTAsdDA9STEubGVuZ3RoO0oxPHQwOylUKGkxLHgxPUkxW0oxKytdLGYxW3gxXSk7cmV0dXJuIGkxfSxlMT1mdW5jdGlvbihpMSl7dmFyIGYxPV8xLmNhbGwodGhpcyxpMT13KGkxLCEwKSk7cmV0dXJuISh0aGlzPT09YjEmJmEoczEsaTEpJiYhYShtMSxpMSkpJiYoIShmMXx8''@;'; put 'put ''IWEodGhpcyxpMSl8fCFhKHMxLGkxKXx8YSh0aGlzLGMxKSYmdGhpc1tjMV1baTFdKXx8ZjEpfSxyMT1mdW5jdGlvbihpMSxmMSl7aWYoaTE9RShpMSksZjE9dyhmMSwhMCksaTEhPT1iMXx8IWEoczEsZjEpfHxhKG0xLGYxKSl7dmFyIHgxPWExKGkxLGYxKTtyZXR1cm4heDF8fCFhKHMxLGYx''@;'; put 'put ''KXx8YShpMSxjMSkmJmkxW2MxXVtmMV18fCh4MS5lbnVtZXJhYmxlPSEwKSx4MX19LFoxPWZ1bmN0aW9uKGkxKXtmb3IodmFyIGYxLHgxPXUxKEUoaTEpKSxJMT1bXSxKMT0wO0oxPHgxLmxlbmd0aDspYShzMSxmMT14MVtKMSsrXSl8fGYxPT1jMXx8ZjE9PWZ8fEkxLnB1c2goZjEpO3JldHVy''@;'; put 'put ''biBJMX0sWT1mdW5jdGlvbihpMSl7Zm9yKHZhciBmMSx4MT1pMT09PWIxLEkxPXUxKHgxP20xOkUoaTEpKSxKMT1bXSx0MD0wO3QwPEkxLmxlbmd0aDspIWEoczEsZjE9STFbdDArK10pfHx4MSYmIWEoYjEsZjEpfHxKMS5wdXNoKHMxW2YxXSk7cmV0dXJuIEoxfTtCMXx8KGgoKHAxPWZ1bmN0''@;'; put 'put ''aW9uKCl7aWYodGhpcyBpbnN0YW5jZW9mIHAxKXRocm93IFR5cGVFcnJvcigiU3ltYm9sIGlzIG5vdCBhIGNvbnN0cnVjdG9yISIpO3ZhciBpMT12KDA8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMF06ayksZjE9ZnVuY3Rpb24oeDEpe3RoaXM9PT1iMSYmZjEuY2FsbChtMSx4MSksYSh0''@;'; put 'put ''aGlzLGMxKSYmYSh0aGlzW2MxXSxpMSkmJih0aGlzW2MxXVtpMV09ITEpLHkodGhpcyxpMSxOKDEseDEpKX07cmV0dXJuIGMmJnomJnkoYjEsaTEse2NvbmZpZ3VyYWJsZTohMCxzZXQ6ZjF9KSxEKGkxKX0pW2pdLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fa30pLE8uZj1y''@;'; put 'put ''MSxSLmY9VCxsKDM3KS5mPVcuZj1aMSxsKDQ5KS5mPWUxLEIuZj1ZLGMmJiFsKDI5KSYmaChiMSwicHJvcGVydHlJc0VudW1lcmFibGUiLGUxLCEwKSxDLmY9ZnVuY3Rpb24objEpe3JldHVybiBEKEgobjEpKX0pLG8oby5HK28uVytvLkYqIUIxLHtTeW1ib2w6cDF9KTtmb3IodmFyIHE9Imhh''@;'; put 'put ''c0luc3RhbmNlLGlzQ29uY2F0U3ByZWFkYWJsZSxpdGVyYXRvcixtYXRjaCxyZXBsYWNlLHNlYXJjaCxzcGVjaWVzLHNwbGl0LHRvUHJpbWl0aXZlLHRvU3RyaW5nVGFnLHVuc2NvcGFibGVzIi5zcGxpdCgiLCIpLEo9MDtKPHEubGVuZ3RoOylIKHFbSisrXSk7Zm9yKHZhciBBMT1sMShILnN0''@;'; put 'put ''b3JlKSxOMT0wO04xPEExLmxlbmd0aDspVihBMVtOMSsrXSk7byhvLlMrby5GKiFCMSwiU3ltYm9sIix7Zm9yOmZ1bmN0aW9uKG4xKXtyZXR1cm4gYShRLG4xKz0iIik/UVtuMV06UVtuMV09cDEobjEpfSxrZXlGb3I6ZnVuY3Rpb24oaTEpe2lmKCFaKGkxKSl0aHJvdyBUeXBlRXJyb3IoaTEr''@;'; put 'put ''IiBpcyBub3QgYSBzeW1ib2whIik7Zm9yKHZhciBmMSBpbiBRKWlmKFFbZjFdPT09aTEpcmV0dXJuIGYxfSx1c2VTZXR0ZXI6ZnVuY3Rpb24oKXt6PSEwfSx1c2VTaW1wbGU6ZnVuY3Rpb24oKXt6PSExfX0pLG8oby5TK28uRiohQjEsIk9iamVjdCIse2NyZWF0ZTpmdW5jdGlvbihpMSxmMSl7''@;'; put 'put ''cmV0dXJuIGYxPT09az9JKGkxKTpQKEkoaTEpLGYxKX0sZGVmaW5lUHJvcGVydHk6VCxkZWZpbmVQcm9wZXJ0aWVzOlAsZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOnIxLGdldE93blByb3BlcnR5TmFtZXM6WjEsZ2V0T3duUHJvcGVydHlTeW1ib2xzOll9KTt2YXIgUzE9ZyhmdW5jdGlvbigp''@;'; put 'put ''e0IuZigxKX0pO28oby5TK28uRipTMSwiT2JqZWN0Iix7Z2V0T3duUHJvcGVydHlTeW1ib2xzOmZ1bmN0aW9uKGkxKXtyZXR1cm4gQi5mKHgoaTEpKX19KSx2MSYmbyhvLlMrby5GKighQjF8fGcoZnVuY3Rpb24oKXt2YXIgbjE9cDEoKTtyZXR1cm4iW251bGxdIiE9RTEoW24xXSl8fCJ7fSIh''@;'; put 'put ''PUUxKHthOm4xfSl8fCJ7fSIhPUUxKE9iamVjdChuMSkpfSkpLCJKU09OIix7c3RyaW5naWZ5OmZ1bmN0aW9uKGkxKXtmb3IodmFyIGYxLHgxLEkxPVtpMV0sSjE9MTtKMTxhcmd1bWVudHMubGVuZ3RoOylJMS5wdXNoKGFyZ3VtZW50c1tKMSsrXSk7aWYoeDE9ZjE9STFbMV0sKE0oZjEpfHxp''@;'; put 'put ''MSE9PWspJiYhWihpMSkpcmV0dXJuIF8oZjEpfHwoZjE9ZnVuY3Rpb24odDAsZjApe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB4MSYmKGYwPXgxLmNhbGwodGhpcyx0MCxmMCkpLCFaKGYwKSlyZXR1cm4gZjB9KSxJMVsxXT1mMSxFMS5hcHBseSh2MSxJMSl9fSkscDFbal1bVjFdfHxsKDExKShw''@;'; put 'put ''MVtqXSxWMSxwMVtqXS52YWx1ZU9mKSxwKHAxLCJTeW1ib2wiKSxwKE1hdGgsIk1hdGgiLCEwKSxwKHIuSlNPTiwiSlNPTiIsITApfSxmdW5jdGlvbihBLGUsbCl7QS5leHBvcnRzPWwoNDcpKCJuYXRpdmUtZnVuY3Rpb24tdG8tc3RyaW5nIixGdW5jdGlvbi50b1N0cmluZyl9LGZ1bmN0aW9u''@;'; put 'put ''KEEsZSxsKXt2YXIgcj1sKDM0KSxhPWwoNTMpLGM9bCg0OSk7QS5leHBvcnRzPWZ1bmN0aW9uKG8pe3ZhciBoPXIobyksZj1hLmY7aWYoZilmb3IodmFyIGcsdT1mKG8pLHA9Yy5mLHY9MDt2PHUubGVuZ3RoOylwLmNhbGwobyxnPXVbdisrXSkmJmgucHVzaChnKTtyZXR1cm4gaH19LGZ1bmN0''@;'; put 'put ''aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TK3IuRiohbCg3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydHk6bCg4KS5mfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TK3IuRiohbCg3KSwiT2JqZWN0Iix7ZGVmaW5lUHJvcGVydGllczpsKDk2KX0pfSxmdW5jdGlvbihBLGUs''@;'; put 'put ''bCl7dmFyIHI9bCgxNSksYT1sKDE2KS5mO2woMjQpKCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8saCl7cmV0dXJuIGEocihvKSxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk9iamVjdCIse2NyZWF0ZTpsKDM2''@;'; put 'put ''KX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg5KSxhPWwoMTcpO2woMjQpKCJnZXRQcm90b3R5cGVPZiIsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIGEocihvKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDkpLGE9bCgzNCk7bCgyNCkoImtleXMiLGZ1bmN0''@;'; put 'put ''aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiBhKHIobykpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgyNCkoImdldE93blByb3BlcnR5TmFtZXMiLGZ1bmN0aW9uKCl7cmV0dXJuIGwoOTcpLmZ9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDMwKS5vbkZyZWV6ZTtsKDI0''@;'; put 'put ''KSgiZnJlZXplIixmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJuIGMmJnIoaCk/YyhhKGgpKTpofX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPWwoMzApLm9uRnJlZXplO2woMjQpKCJzZWFsIixmdW5jdGlvbihjKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJu''@;'; put 'put ''IGMmJnIoaCk/YyhhKGgpKTpofX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg0KSxhPWwoMzApLm9uRnJlZXplO2woMjQpKCJwcmV2ZW50RXh0ZW5zaW9ucyIsZnVuY3Rpb24oYyl7cmV0dXJuIGZ1bmN0aW9uKGgpe3JldHVybiBjJiZyKGgpP2MoYShoKSk6aH19KX0sZnVuY3Rpb24oQSxl''@;'; put 'put ''LGwpe3ZhciByPWwoNCk7bCgyNCkoImlzRnJvemVuIixmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24obyl7cmV0dXJuIXIobyl8fCEhYSYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCk7bCgyNCkoImlzU2VhbGVkIixmdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24obyl7''@;'; put 'put ''cmV0dXJuIXIobyl8fCEhYSYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCk7bCgyNCkoImlzRXh0ZW5zaWJsZSIsZnVuY3Rpb24oYSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3JldHVybiEhcihvKSYmKCFhfHxhKG8pKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihy''@;'; put 'put ''LlMrci5GLCJPYmplY3QiLHthc3NpZ246bCg5OCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk9iamVjdCIse2lzOmwoOTkpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJPYmplY3QiLHtzZXRQcm90b3R5cGVPZjpsKDcxKS5zZXR9KX0sZnVuY3Rp''@;'; put 'put ''b24oQSxlLGwpe3ZhciByPWwoNDQpLGE9e307YVtsKDUpKCJ0b1N0cmluZ1RhZyIpXT0ieiIsYSsiIiE9IltvYmplY3Qgel0iJiZsKDEyKShPYmplY3QucHJvdG90eXBlLCJ0b1N0cmluZyIsZnVuY3Rpb24oKXtyZXR1cm4iW29iamVjdCAiK3IodGhpcykrIl0ifSwhMCl9LGZ1bmN0aW9uKEEs''@;'; put 'put ''ZSxsKXt2YXIgcj1sKDApO3Ioci5QLCJGdW5jdGlvbiIse2JpbmQ6bCgxMDApfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLmYsYT1GdW5jdGlvbi5wcm90b3R5cGUsYz0vXlxzKmZ1bmN0aW9uIChbXiAoXSopLzsibmFtZSJpbiBhfHxsKDcpJiZyKGEsIm5hbWUiLHtjb25maWd1cmFi''@;'; put 'put ''bGU6ITAsZ2V0OmZ1bmN0aW9uKCl7dHJ5e3JldHVybigiIit0aGlzKS5tYXRjaChjKVsxXX1jYXRjaChvKXtyZXR1cm4iIn19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDQpLGE9bCgxNyksYz1sKDUpKCJoYXNJbnN0YW5jZSIpLG89RnVuY3Rpb24ucHJvdG90eXBlO2MgaW4gb3x8bCg4''@;'; put 'put ''KS5mKG8sYyx7dmFsdWU6ZnVuY3Rpb24oaCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHRoaXN8fCFyKGgpKXJldHVybiExO2lmKCFyKHRoaXMucHJvdG90eXBlKSlyZXR1cm4gaCBpbnN0YW5jZW9mIHRoaXM7Zm9yKDtoPWEoaCk7KWlmKHRoaXMucHJvdG90eXBlPT09aClyZXR1cm4hMDtyZXR1''@;'; put 'put ''cm4hMX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDE0KSxjPWwoMTkpLG89bCg3MiksaD1sKDIyKSxmPWwoMyksZz1sKDM3KS5mLHU9bCgxNikuZixwPWwoOCkuZix2PWwoNDUpLnRyaW0sSD0iTnVtYmVyIixDPXJbSF0sVj1DLFM9Qy5wcm90b3R5cGUsXz1jKGwoMzYpKFMp''@;'; put 'put ''KT09SCxiPSJ0cmltImluIFN0cmluZy5wcm90b3R5cGUsTT1mdW5jdGlvbihOKXt2YXIgST1oKE4sITEpO2lmKCJzdHJpbmciPT10eXBlb2YgSSYmMjxJLmxlbmd0aCl7dmFyIFcsTyxCLFI9KEk9Yj9JLnRyaW0oKTp2KEksMykpLmNoYXJDb2RlQXQoMCk7aWYoNDM9PT1SfHw0NT09PVIpe2lm''@;'; put 'put ''KDg4PT09KFc9SS5jaGFyQ29kZUF0KDIpKXx8MTIwPT09VylyZXR1cm4gTmFOfWVsc2UgaWYoNDg9PT1SKXtzd2l0Y2goSS5jaGFyQ29kZUF0KDEpKXtjYXNlIDY2OmNhc2UgOTg6Tz0yLEI9NDk7YnJlYWs7Y2FzZSA3OTpjYXNlIDExMTpPPTgsQj01NTticmVhaztkZWZhdWx0OnJldHVybitJ''@;'; put 'put ''fWZvcih2YXIgbDEsYTE9SS5zbGljZSgyKSxoMT0wLHUxPWExLmxlbmd0aDtoMTx1MTtoMSsrKWlmKChsMT1hMS5jaGFyQ29kZUF0KGgxKSk8NDh8fEI8bDEpcmV0dXJuIE5hTjtyZXR1cm4gcGFyc2VJbnQoYTEsTyl9fXJldHVybitJfTtpZighQygiIDBvMSIpfHwhQygiMGIxIil8fEMoIisw''@;'; put 'put ''eDEiKSl7Qz1mdW5jdGlvbihJKXt2YXIgVz1hcmd1bWVudHMubGVuZ3RoPDE/MDpJLE89dGhpcztyZXR1cm4gTyBpbnN0YW5jZW9mIEMmJihfP2YoZnVuY3Rpb24oKXtTLnZhbHVlT2YuY2FsbChPKX0pOmMoTykhPUgpP28obmV3IFYoTShXKSksTyxDKTpNKFcpfTtmb3IodmFyIHgsRT1sKDcp''@;'; put 'put ''P2coVik6Ik1BWF9WQUxVRSxNSU5fVkFMVUUsTmFOLE5FR0FUSVZFX0lORklOSVRZLFBPU0lUSVZFX0lORklOSVRZLEVQU0lMT04saXNGaW5pdGUsaXNJbnRlZ2VyLGlzTmFOLGlzU2FmZUludGVnZXIsTUFYX1NBRkVfSU5URUdFUixNSU5fU0FGRV9JTlRFR0VSLHBhcnNlRmxvYXQscGFyc2VJ''@;'; put 'put ''bnQsaXNJbnRlZ2VyIi5zcGxpdCgiLCIpLHc9MDt3PEUubGVuZ3RoO3crKylhKFYseD1FW3ddKSYmIWEoQyx4KSYmcChDLHgsdShWLHgpKTsoQy5wcm90b3R5cGU9UykuY29uc3RydWN0b3I9QyxsKDEyKShyLEgsQyl9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjApLGM9bCgx''@;'; put 'put ''MDIpLG89bCg3NCksaD0xLi50b0ZpeGVkLGY9TWF0aC5mbG9vcixnPVswLDAsMCwwLDAsMF0sdT0iTnVtYmVyLnRvRml4ZWQ6IGluY29ycmVjdCBpbnZvY2F0aW9uISIscD1mdW5jdGlvbihWLFMpe2Zvcih2YXIgXz0tMSxiPVM7KytfPDY7KWdbX109KGIrPVYqZ1tfXSklMWU3LGI9ZihiLzFl''@;'; put 'put ''Nyl9LHY9ZnVuY3Rpb24oVil7Zm9yKHZhciBTPTYsXz0wOzA8PS0tUzspZ1tTXT1mKChfKz1nW1NdKS9WKSxfPV8lVioxZTd9LEg9ZnVuY3Rpb24oKXtmb3IodmFyIFY9NixTPSIiOzA8PS0tVjspaWYoIiIhPT1TfHwwPT09Vnx8MCE9PWdbVl0pe3ZhciBfPVN0cmluZyhnW1ZdKTtTPSIiPT09''@;'; put 'put ''Uz9fOlMrby5jYWxsKCIwIiw3LV8ubGVuZ3RoKStffXJldHVybiBTfSxDPWZ1bmN0aW9uKFYsUyxfKXtyZXR1cm4gMD09PVM/XzpTJTI9PTE/QyhWLFMtMSxfKlYpOkMoVipWLFMvMixfKX07cihyLlArci5GKighIWgmJigiMC4wMDAiIT09OGUtNS50b0ZpeGVkKDMpfHwiMSIhPT0uOS50b0Zp''@;'; put 'put ''eGVkKDApfHwiMS4yNSIhPT0xLjI1NS50b0ZpeGVkKDIpfHwiMTAwMDAwMDAwMDAwMDAwMDEyOCIhPT0oMHhkZTBiNmIzYTc2NDAwODApLnRvRml4ZWQoMCkpfHwhbCgzKShmdW5jdGlvbigpe2guY2FsbCh7fSl9KSksIk51bWJlciIse3RvRml4ZWQ6ZnVuY3Rpb24oUyl7dmFyIF8sYixNLHgs''@;'; put 'put ''RT1jKHRoaXMsdSksdz1hKFMpLE49IiIsST0iMCI7aWYodzwwfHwyMDx3KXRocm93IFJhbmdlRXJyb3IodSk7aWYoRSE9RSlyZXR1cm4iTmFOIjtpZihFPD0tMWUyMXx8MWUyMTw9RSlyZXR1cm4gU3RyaW5nKEUpO2lmKEU8MCYmKE49Ii0iLEU9LUUpLDFlLTIxPEUpaWYoYj0oXz1mdW5jdGlv''@;'; put 'put ''bihXKXtmb3IodmFyIE89MCxCPVc7NDA5Njw9QjspTys9MTIsQi89NDA5Njtmb3IoOzI8PUI7KU8rPTEsQi89MjtyZXR1cm4gT30oRSpDKDIsNjksMSkpLTY5KTwwP0UqQygyLC1fLDEpOkUvQygyLF8sMSksYio9NDUwMzU5OTYyNzM3MDQ5NiwwPChfPTUyLV8pKXtmb3IocCgwLGIpLE09dzs3''@;'; put 'put ''PD1NOylwKDFlNywwKSxNLT03O2ZvcihwKEMoMTAsTSwxKSwwKSxNPV8tMTsyMzw9TTspdigxPDwyMyksTS09MjM7digxPDxNKSxwKDEsMSksdigyKSxJPUgoKX1lbHNlIHAoMCxiKSxwKDE8PC1fLDApLEk9SCgpK28uY2FsbCgiMCIsdyk7cmV0dXJuIDA8dz9OKygoeD1JLmxlbmd0aCk8PXc/''@;'; put 'put ''IjAuIitvLmNhbGwoIjAiLHcteCkrSTpJLnNsaWNlKDAseC13KSsiLiIrSS5zbGljZSh4LXcpKTpOK0l9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgzKSxjPWwoMTAyKSxvPTEuLnRvUHJlY2lzaW9uO3Ioci5QK3IuRiooYShmdW5jdGlvbigpe3JldHVybiIxIiE9PW8uY2Fs''@;'; put 'put ''bCgxLGspfSl8fCFhKGZ1bmN0aW9uKCl7by5jYWxsKHt9KX0pKSwiTnVtYmVyIix7dG9QcmVjaXNpb246ZnVuY3Rpb24oZil7dmFyIGc9Yyh0aGlzLCJOdW1iZXIjdG9QcmVjaXNpb246IGluY29ycmVjdCBpbnZvY2F0aW9uISIpO3JldHVybiBmPT09az9vLmNhbGwoZyk6by5jYWxsKGcsZil9''@;'; put 'put ''fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJOdW1iZXIiLHtFUFNJTE9OOk1hdGgucG93KDIsLTUyKX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMikuaXNGaW5pdGU7cihyLlMsIk51bWJlciIse2lzRmluaXRlOmZ1bmN0aW9uKG8pe3JldHVybiJudW1i''@;'; put 'put ''ZXIiPT10eXBlb2YgbyYmYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk51bWJlciIse2lzSW50ZWdlcjpsKDEwMyl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk51bWJlciIse2lzTmFOOmZ1bmN0aW9uKGMpe3JldHVybiBjIT1jfX0pfSxm''@;'; put 'put ''dW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTAzKSxjPU1hdGguYWJzO3Ioci5TLCJOdW1iZXIiLHtpc1NhZmVJbnRlZ2VyOmZ1bmN0aW9uKGgpe3JldHVybiBhKGgpJiZjKGgpPD05MDA3MTk5MjU0NzQwOTkxfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTnVt''@;'; put 'put ''YmVyIix7TUFYX1NBRkVfSU5URUdFUjo5MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJOdW1iZXIiLHtNSU5fU0FGRV9JTlRFR0VSOi05MDA3MTk5MjU0NzQwOTkxfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDQpO3Ioci5T''@;'; put 'put ''K3IuRiooTnVtYmVyLnBhcnNlRmxvYXQhPWEpLCJOdW1iZXIiLHtwYXJzZUZsb2F0OmF9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEwNSk7cihyLlMrci5GKihOdW1iZXIucGFyc2VJbnQhPWEpLCJOdW1iZXIiLHtwYXJzZUludDphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIg''@;'; put 'put ''cj1sKDApLGE9bCgxMDUpO3Ioci5HK3IuRioocGFyc2VJbnQhPWEpLHtwYXJzZUludDphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDQpO3Ioci5HK3IuRioocGFyc2VGbG9hdCE9YSkse3BhcnNlRmxvYXQ6YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwo''@;'; put 'put ''MTA2KSxjPU1hdGguc3FydCxvPU1hdGguYWNvc2g7cihyLlMrci5GKiEobyYmNzEwPT1NYXRoLmZsb29yKG8oTnVtYmVyLk1BWF9WQUxVRSkpJiZvKDEvMCk9PTEvMCksIk1hdGgiLHthY29zaDpmdW5jdGlvbihmKXtyZXR1cm4oZj0rZik8MT9OYU46OTQ5MDYyNjUuNjI0MjUxNTY8Zj9NYXRo''@;'; put 'put ''LmxvZyhmKStNYXRoLkxOMjphKGYtMStjKGYtMSkqYyhmKzEpKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLmFzaW5oO3Ioci5TK3IuRiohKGEmJjA8MS9hKDApKSwiTWF0aCIse2FzaW5oOmZ1bmN0aW9uIGMobyl7cmV0dXJuIGlzRmluaXRlKG89K28pJiYwIT1vP288''@;'; put 'put ''MD8tYygtbyk6TWF0aC5sb2cobytNYXRoLnNxcnQobypvKzEpKTpvfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPU1hdGguYXRhbmg7cihyLlMrci5GKiEoYSYmMS9hKC0wKTwwKSwiTWF0aCIse2F0YW5oOmZ1bmN0aW9uKG8pe3JldHVybiAwPT0obz0rbyk/bzpNYXRoLmxvZygo''@;'; put 'put ''MStvKS8oMS1vKSkvMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc1KTtyKHIuUywiTWF0aCIse2NicnQ6ZnVuY3Rpb24obyl7cmV0dXJuIGEobz0rbykqTWF0aC5wb3coTWF0aC5hYnMobyksMS8zKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1h''@;'; put 'put ''dGgiLHtjbHozMjpmdW5jdGlvbihjKXtyZXR1cm4oYz4+Pj0wKT8zMS1NYXRoLmZsb29yKE1hdGgubG9nKGMrLjUpKk1hdGguTE9HMkUpOjMyfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPU1hdGguZXhwO3Ioci5TLCJNYXRoIix7Y29zaDpmdW5jdGlvbihvKXtyZXR1cm4oYShv''@;'; put 'put ''PStvKSthKC1vKSkvMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc2KTtyKHIuUytyLkYqKGEhPU1hdGguZXhwbTEpLCJNYXRoIix7ZXhwbTE6YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2Zyb3VuZDpsKDEwNyl9KX0sZnVuY3Rpb24o''@;'; put 'put ''QSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLmFicztyKHIuUywiTWF0aCIse2h5cG90OmZ1bmN0aW9uKG8saCl7Zm9yKHZhciBmLGcsdT0wLHA9MCx2PWFyZ3VtZW50cy5sZW5ndGgsSD0wO3A8djspSDwoZj1hKGFyZ3VtZW50c1twKytdKSk/KHU9dSooZz1IL2YpKmcrMSxIPWYpOnUrPTA8Zj8o''@;'; put 'put ''Zz1mL0gpKmc6ZjtyZXR1cm4gSD09PTEvMD8xLzA6SCpNYXRoLnNxcnQodSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9TWF0aC5pbXVsO3Ioci5TK3IuRipsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuLTUhPWEoNDI5NDk2NzI5NSw1KXx8MiE9YS5sZW5ndGh9KSwiTWF0aCIse2lt''@;'; put 'put ''dWw6ZnVuY3Rpb24obyxoKXt2YXIgZj02NTUzNSxnPStvLHU9K2gscD1mJmcsdj1mJnU7cmV0dXJuIDB8cCp2KygoZiZnPj4+MTYpKnYrcCooZiZ1Pj4+MTYpPDwxNj4+PjApfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2xvZzEwOmZ1bmN0aW9uKGMpe3Jl''@;'; put 'put ''dHVybiBNYXRoLmxvZyhjKSpNYXRoLkxPRzEwRX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtsb2cxcDpsKDEwNil9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtsb2cyOmZ1bmN0aW9uKGMpe3JldHVybiBNYXRoLmxvZyhj''@;'; put 'put ''KS9NYXRoLkxOMn19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtzaWduOmwoNzUpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg3NiksYz1NYXRoLmV4cDtyKHIuUytyLkYqbCgzKShmdW5jdGlvbigpe3JldHVybi0yZS0xNyE9IU1hdGguc2lu''@;'; put 'put ''aCgtMmUtMTcpfSksIk1hdGgiLHtzaW5oOmZ1bmN0aW9uKGgpe3JldHVybiBNYXRoLmFicyhoPStoKTwxPyhhKGgpLWEoLWgpKS8yOihjKGgtMSktYygtaC0xKSkqKE1hdGguRS8yKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDc2KSxjPU1hdGguZXhwO3Ioci5TLCJNYXRo''@;'; put 'put ''Iix7dGFuaDpmdW5jdGlvbihoKXt2YXIgZj1hKGg9K2gpLGc9YSgtaCk7cmV0dXJuIGY9PTEvMD8xOmc9PTEvMD8tMTooZi1nKS8oYyhoKStjKC1oKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7dHJ1bmM6ZnVuY3Rpb24oYyl7cmV0dXJuKDA8Yz9NYXRo''@;'; put 'put ''LmZsb29yOk1hdGguY2VpbCkoYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgzNSksYz1TdHJpbmcuZnJvbUNoYXJDb2RlLG89U3RyaW5nLmZyb21Db2RlUG9pbnQ7cihyLlMrci5GKighIW8mJjEhPW8ubGVuZ3RoKSwiU3RyaW5nIix7ZnJvbUNvZGVQb2ludDpmdW5jdGlv''@;'; put 'put ''bihmKXtmb3IodmFyIGcsdT1bXSxwPWFyZ3VtZW50cy5sZW5ndGgsdj0wO3Y8cDspe2lmKGc9K2FyZ3VtZW50c1t2KytdLGEoZywxMTE0MTExKSE9PWcpdGhyb3cgUmFuZ2VFcnJvcihnKyIgaXMgbm90IGEgdmFsaWQgY29kZSBwb2ludCIpO3UucHVzaChnPDY1NTM2P2MoZyk6Yyg1NTI5Niso''@;'; put 'put ''KGctPTY1NTM2KT4+MTApLGclMTAyNCs1NjMyMCkpfXJldHVybiB1LmpvaW4oIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTUpLGM9bCg2KTtyKHIuUywiU3RyaW5nIix7cmF3OmZ1bmN0aW9uKGgpe2Zvcih2YXIgZj1hKGgucmF3KSxnPWMoZi5sZW5ndGgpLHU9YXJn''@;'; put 'put ''dW1lbnRzLmxlbmd0aCxwPVtdLHY9MDt2PGc7KXAucHVzaChTdHJpbmcoZlt2KytdKSksdjx1JiZwLnB1c2goU3RyaW5nKGFyZ3VtZW50c1t2XSkpO3JldHVybiBwLmpvaW4oIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCg0NSkoInRyaW0iLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigp''@;'; put 'put ''e3JldHVybiByKHRoaXMsMyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg1NSkoITEpO3Ioci5QLCJTdHJpbmciLHtjb2RlUG9pbnRBdDpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNiksYz1sKDc3KSxv''@;'; put 'put ''PSJlbmRzV2l0aCIsaD0iIltvXTtyKHIuUCtyLkYqbCg3OCkobyksIlN0cmluZyIse2VuZHNXaXRoOmZ1bmN0aW9uKGcpe3ZhciB1PWModGhpcyxnLG8pLHA9MTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprLHY9YSh1Lmxlbmd0aCksSD1wPT09az92Ok1hdGgubWluKGEocCksdiks''@;'; put 'put ''Qz1TdHJpbmcoZyk7cmV0dXJuIGg/aC5jYWxsKHUsQyxIKTp1LnNsaWNlKEgtQy5sZW5ndGgsSCk9PT1DfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNzcpLGM9ImluY2x1ZGVzIjtyKHIuUCtyLkYqbCg3OCkoYyksIlN0cmluZyIse2luY2x1ZGVzOmZ1bmN0aW9uKGgpe3Jl''@;'; put 'put ''dHVybiEhfmEodGhpcyxoLGMpLmluZGV4T2YoaCwxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmspfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCwiU3RyaW5nIix7cmVwZWF0OmwoNzQpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg2KSxjPWwo''@;'; put 'put ''NzcpLG89InN0YXJ0c1dpdGgiLGg9IiJbb107cihyLlArci5GKmwoNzgpKG8pLCJTdHJpbmciLHtzdGFydHNXaXRoOmZ1bmN0aW9uKGcpe3ZhciB1PWModGhpcyxnLG8pLHA9YShNYXRoLm1pbigxPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzFdOmssdS5sZW5ndGgpKSx2PVN0cmluZyhn''@;'; put 'put ''KTtyZXR1cm4gaD9oLmNhbGwodSx2LHApOnUuc2xpY2UocCxwK3YubGVuZ3RoKT09PXZ9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDU1KSghMCk7bCg3OSkoU3RyaW5nLCJTdHJpbmciLGZ1bmN0aW9uKGEpe3RoaXMuX3Q9U3RyaW5nKGEpLHRoaXMuX2k9MH0sZnVuY3Rpb24oKXt2YXIg''@;'; put 'put ''YSxjPXRoaXMuX3Qsbz10aGlzLl9pO3JldHVybiBjLmxlbmd0aDw9bz97dmFsdWU6ayxkb25lOiEwfTooYT1yKGMsbyksdGhpcy5faSs9YS5sZW5ndGgse3ZhbHVlOmEsZG9uZTohMX0pfSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYW5jaG9yIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rp''@;'; put 'put ''b24oYyl7cmV0dXJuIHIodGhpcywiYSIsIm5hbWUiLGMpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImJpZyIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywiYmlnIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYmxpbmsiLGZ1bmN0aW9u''@;'; put 'put ''KHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsImJsaW5rIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiYm9sZCIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywiYiIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMyko''@;'; put 'put ''ImZpeGVkIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLCJ0dCIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImZvbnRjb2xvciIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMpe3JldHVybiByKHRoaXMsImZvbnQiLCJjb2xvciIsYyl9''@;'; put 'put ''fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiZm9udHNpemUiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gcih0aGlzLCJmb250Iiwic2l6ZSIsYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgiaXRhbGljcyIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7''@;'; put 'put ''cmV0dXJuIHIodGhpcywiaSIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoImxpbmsiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjKXtyZXR1cm4gcih0aGlzLCJhIiwiaHJlZiIsYyl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgic21hbGwiLGZ1bmN0aW9uKHIpe3Jl''@;'; put 'put ''dHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsInNtYWxsIiwiIiwiIil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDEzKSgic3RyaWtlIixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLCJzdHJpa2UiLCIiLCIiKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMTMp''@;'; put 'put ''KCJzdWIiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsInN1YiIsIiIsIiIpfX0pfSxmdW5jdGlvbihBLGUsbCl7bCgxMykoInN1cCIsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIodGhpcywic3VwIiwiIiwiIil9fSl9LGZ1bmN0aW9u''@;'; put 'put ''KEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJBcnJheSIse2lzQXJyYXk6bCg1NCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTgpLGE9bCgwKSxjPWwoOSksbz1sKDEwOCksaD1sKDgxKSxmPWwoNiksZz1sKDgyKSx1PWwoODMpO2EoYS5TK2EuRiohbCg1NykoZnVuY3Rpb24ocCl7QXJy''@;'; put 'put ''YXkuZnJvbShwKX0pLCJBcnJheSIse2Zyb206ZnVuY3Rpb24odil7dmFyIEgsQyxWLFMsXz1jKHYpLGI9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXM/dGhpczpBcnJheSxNPWFyZ3VtZW50cy5sZW5ndGgseD0xPE0/YXJndW1lbnRzWzFdOmssRT14IT09ayx3PTAsTj11KF8pO2lmKEUmJih4PXIo''@;'; put 'put ''eCwyPE0/YXJndW1lbnRzWzJdOmssMikpLE49PWt8fGI9PUFycmF5JiZoKE4pKWZvcihDPW5ldyBiKEg9ZihfLmxlbmd0aCkpO3c8SDt3KyspZyhDLHcsRT94KF9bd10sdyk6X1t3XSk7ZWxzZSBmb3IoUz1OLmNhbGwoXyksQz1uZXcgYjshKFY9Uy5uZXh0KCkpLmRvbmU7dysrKWcoQyx3LEU/''@;'; put 'put ''byhTLHgsW1YudmFsdWUsd10sITApOlYudmFsdWUpO3JldHVybiBDLmxlbmd0aD13LEN9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg4Mik7cihyLlMrci5GKmwoMykoZnVuY3Rpb24oKXtmdW5jdGlvbiBjKCl7fXJldHVybiEoQXJyYXkub2YuY2FsbChjKWluc3RhbmNlb2Yg''@;'; put 'put ''Yyl9KSwiQXJyYXkiLHtvZjpmdW5jdGlvbigpe2Zvcih2YXIgbz0wLGg9YXJndW1lbnRzLmxlbmd0aCxmPW5ldygiZnVuY3Rpb24iPT10eXBlb2YgdGhpcz90aGlzOkFycmF5KShoKTtvPGg7KWEoZixvLGFyZ3VtZW50c1tvKytdKTtyZXR1cm4gZi5sZW5ndGg9aCxmfX0pfSxmdW5jdGlvbihB''@;'; put 'put ''LGUsbCl7dmFyIHI9bCgwKSxhPWwoMTUpLGM9W10uam9pbjtyKHIuUCtyLkYqKGwoNDgpIT1PYmplY3R8fCFsKDIxKShjKSksIkFycmF5Iix7am9pbjpmdW5jdGlvbihoKXtyZXR1cm4gYy5jYWxsKGEodGhpcyksaD09PWs/IiwiOmgpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxh''@;'; put 'put ''PWwoNzApLGM9bCgxOSksbz1sKDM1KSxoPWwoNiksZj1bXS5zbGljZTtyKHIuUCtyLkYqbCgzKShmdW5jdGlvbigpe2EmJmYuY2FsbChhKX0pLCJBcnJheSIse3NsaWNlOmZ1bmN0aW9uKHUscCl7dmFyIHY9aCh0aGlzLmxlbmd0aCksSD1jKHRoaXMpO2lmKHA9cD09PWs/djpwLCJBcnJheSI9''@;'; put 'put ''PUgpcmV0dXJuIGYuY2FsbCh0aGlzLHUscCk7Zm9yKHZhciBDPW8odSx2KSxWPW8ocCx2KSxTPWgoVi1DKSxfPW5ldyBBcnJheShTKSxiPTA7YjxTO2IrKylfW2JdPSJTdHJpbmciPT1IP3RoaXMuY2hhckF0KEMrYik6dGhpc1tDK2JdO3JldHVybiBffX0pfSxmdW5jdGlvbihBLGUsbCl7dmFy''@;'; put 'put ''IHI9bCgwKSxhPWwoMTApLGM9bCg5KSxvPWwoMyksaD1bXS5zb3J0LGY9WzEsMiwzXTtyKHIuUCtyLkYqKG8oZnVuY3Rpb24oKXtmLnNvcnQoayl9KXx8IW8oZnVuY3Rpb24oKXtmLnNvcnQobnVsbCl9KXx8IWwoMjEpKGgpKSwiQXJyYXkiLHtzb3J0OmZ1bmN0aW9uKHUpe3JldHVybiB1PT09''@;'; put 'put ''az9oLmNhbGwoYyh0aGlzKSk6aC5jYWxsKGModGhpcyksYSh1KSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoMCksYz1sKDIxKShbXS5mb3JFYWNoLCEwKTtyKHIuUCtyLkYqIWMsIkFycmF5Iix7Zm9yRWFjaDpmdW5jdGlvbihoKXtyZXR1cm4gYSh0aGlzLGgsYXJn''@;'; put 'put ''dW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNCksYT1sKDU0KSxjPWwoNSkoInNwZWNpZXMiKTtBLmV4cG9ydHM9ZnVuY3Rpb24obyl7dmFyIGg7cmV0dXJuIGEobykmJigiZnVuY3Rpb24iIT10eXBlb2YoaD1vLmNvbnN0cnVjdG9yKXx8aCE9PUFycmF5JiYhYShoLnBy''@;'; put 'put ''b3RvdHlwZSl8fChoPWspLHIoaCkmJm51bGw9PT0oaD1oW2NdKSYmKGg9aykpLGg9PT1rP0FycmF5Omh9fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjUpKDEpO3Ioci5QK3IuRiohbCgyMSkoW10ubWFwLCEwKSwiQXJyYXkiLHttYXA6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhp''@;'; put 'put ''cyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoMik7cihyLlArci5GKiFsKDIxKShbXS5maWx0ZXIsITApLCJBcnJheSIse2ZpbHRlcjpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8sYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxl''@;'; put 'put ''LGwpe3ZhciByPWwoMCksYT1sKDI1KSgzKTtyKHIuUCtyLkYqIWwoMjEpKFtdLnNvbWUsITApLCJBcnJheSIse3NvbWU6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgyNSkoNCk7cihyLlArci5GKiFs''@;'; put 'put ''KDIxKShbXS5ldmVyeSwhMCksIkFycmF5Iix7ZXZlcnk6ZnVuY3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50c1sxXSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMDkpO3Ioci5QK3IuRiohbCgyMSkoW10ucmVkdWNlLCEwKSwiQXJyYXkiLHtyZWR1Y2U6ZnVu''@;'; put 'put ''Y3Rpb24obyl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCExKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEwOSk7cihyLlArci5GKiFsKDIxKShbXS5yZWR1Y2VSaWdodCwhMCksIkFycmF5Iix7cmVkdWNlUmlnaHQ6ZnVuY3Rpb24o''@;'; put 'put ''byl7cmV0dXJuIGEodGhpcyxvLGFyZ3VtZW50cy5sZW5ndGgsYXJndW1lbnRzWzFdLCEwKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDUyKSghMSksYz1bXS5pbmRleE9mLG89ISFjJiYxL1sxXS5pbmRleE9mKDEsLTApPDA7cihyLlArci5GKihvfHwhbCgyMSkoYykpLCJB''@;'; put 'put ''cnJheSIse2luZGV4T2Y6ZnVuY3Rpb24oZil7cmV0dXJuIG8/Yy5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDA6YSh0aGlzLGYsYXJndW1lbnRzWzFdKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDE1KSxjPWwoMjApLG89bCg2KSxoPVtdLmxhc3RJbmRleE9mLGY9ISFoJiYx''@;'; put 'put ''L1sxXS5sYXN0SW5kZXhPZigxLC0wKTwwO3Ioci5QK3IuRiooZnx8IWwoMjEpKGgpKSwiQXJyYXkiLHtsYXN0SW5kZXhPZjpmdW5jdGlvbih1KXtpZihmKXJldHVybiBoLmFwcGx5KHRoaXMsYXJndW1lbnRzKXx8MDt2YXIgcD1hKHRoaXMpLHY9byhwLmxlbmd0aCksSD12LTE7Zm9yKDE8YXJn''@;'; put 'put ''dW1lbnRzLmxlbmd0aCYmKEg9TWF0aC5taW4oSCxjKGFyZ3VtZW50c1sxXSkpKSxIPDAmJihIPXYrSCk7MDw9SDtILS0paWYoSCBpbiBwJiZwW0hdPT09dSlyZXR1cm4gSHx8MDtyZXR1cm4tMX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlAsIkFycmF5Iix7Y29weVdpdGhp''@;'; put 'put ''bjpsKDExMCl9KSxsKDMxKSgiY29weVdpdGhpbiIpfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCwiQXJyYXkiLHtmaWxsOmwoODUpfSksbCgzMSkoImZpbGwiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI1KSg1KSxjPSJmaW5kIixvPSEwO2MgaW5bXSYmQXJy''@;'; put 'put ''YXkoMSlbY10oZnVuY3Rpb24oKXtvPSExfSkscihyLlArci5GKm8sIkFycmF5Iix7ZmluZDpmdW5jdGlvbihmKXtyZXR1cm4gYSh0aGlzLGYsMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX19KSxsKDMxKShjKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI1KSg2''@;'; put 'put ''KSxjPSJmaW5kSW5kZXgiLG89ITA7YyBpbltdJiZBcnJheSgxKVtjXShmdW5jdGlvbigpe289ITF9KSxyKHIuUCtyLkYqbywiQXJyYXkiLHtmaW5kSW5kZXg6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06ayl9fSksbCgzMSkoYyl9''@;'; put 'put ''LGZ1bmN0aW9uKEEsZSxsKXtsKDM4KSgiQXJyYXkiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMiksYT1sKDcyKSxjPWwoOCkuZixvPWwoMzcpLmYsaD1sKDU2KSxmPWwoNTApLGc9ci5SZWdFeHAsdT1nLHA9Zy5wcm90b3R5cGUsdj0vYS9nLEg9L2EvZyxDPW5ldyBnKHYpIT09djtpZihs''@;'; put 'put ''KDcpJiYoIUN8fGwoMykoZnVuY3Rpb24oKXtyZXR1cm4gSFtsKDUpKCJtYXRjaCIpXT0hMSxnKHYpIT12fHxnKEgpPT1IfHwiL2EvaSIhPWcodiwiaSIpfSkpKXtnPWZ1bmN0aW9uKE0seCl7dmFyIEU9dGhpcyBpbnN0YW5jZW9mIGcsdz1oKE0pLE49eD09PWs7cmV0dXJuIUUmJncmJk0uY29u''@;'; put 'put ''c3RydWN0b3I9PT1nJiZOP006YShDP25ldyB1KHcmJiFOP00uc291cmNlOk0seCk6dSgodz1NIGluc3RhbmNlb2YgZyk/TS5zb3VyY2U6TSx3JiZOP2YuY2FsbChNKTp4KSxFP3RoaXM6cCxnKX07Zm9yKHZhciBWPWZ1bmN0aW9uKGIpe2IgaW4gZ3x8YyhnLGIse2NvbmZpZ3VyYWJsZTohMCxn''@;'; put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdVtiXX0sc2V0OmZ1bmN0aW9uKE0pe3VbYl09TX19KX0sUz1vKHUpLF89MDtfPFMubGVuZ3RoOylWKFNbXysrXSk7KHAuY29uc3RydWN0b3I9ZykucHJvdG90eXBlPXAsbCgxMikociwiUmVnRXhwIixnKX1sKDM4KSgiUmVnRXhwIil9LGZ1bmN0aW9uKEEs''@;'; put 'put ''ZSxsKXtsKDExMyk7dmFyIHI9bCgxKSxhPWwoNTApLGM9bCg3KSxvPSJ0b1N0cmluZyIsaD0vLi9bb10sZj1mdW5jdGlvbihnKXtsKDEyKShSZWdFeHAucHJvdG90eXBlLG8sZywhMCl9O2woMykoZnVuY3Rpb24oKXtyZXR1cm4iL2EvYiIhPWguY2FsbCh7c291cmNlOiJhIixmbGFnczoiYiJ9''@;'; put 'put ''KX0pP2YoZnVuY3Rpb24oKXt2YXIgdT1yKHRoaXMpO3JldHVybiIvIi5jb25jYXQodS5zb3VyY2UsIi8iLCJmbGFncyJpbiB1P3UuZmxhZ3M6IWMmJnUgaW5zdGFuY2VvZiBSZWdFeHA/YS5jYWxsKHUpOmspfSk6aC5uYW1lIT1vJiZmKGZ1bmN0aW9uKCl7cmV0dXJuIGguY2FsbCh0aGlzKX0p''@;'; put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxKSxhPWwoNiksYz1sKDg4KSxvPWwoNTgpO2woNTkpKCJtYXRjaCIsMSxmdW5jdGlvbihoLGYsZyx1KXtyZXR1cm5bZnVuY3Rpb24odil7dmFyIEg9aCh0aGlzKSxDPXY9PWs/azp2W2ZdO3JldHVybiBDIT09az9DLmNhbGwodixIKTpuZXcgUmVn''@;'; put 'put ''RXhwKHYpW2ZdKFN0cmluZyhIKSl9LGZ1bmN0aW9uKHApe3ZhciB2PXUoZyxwLHRoaXMpO2lmKHYuZG9uZSlyZXR1cm4gdi52YWx1ZTt2YXIgSD1yKHApLEM9U3RyaW5nKHRoaXMpO2lmKCFILmdsb2JhbClyZXR1cm4gbyhILEMpO2Zvcih2YXIgVixTPUgudW5pY29kZSxfPVtdLGI9SC5sYXN0''@;'; put 'put ''SW5kZXg9MDtudWxsIT09KFY9byhILEMpKTspe3ZhciBNPVN0cmluZyhWWzBdKTsiIj09PShfW2JdPU0pJiYoSC5sYXN0SW5kZXg9YyhDLGEoSC5sYXN0SW5kZXgpLFMpKSxiKyt9cmV0dXJuIDA9PT1iP251bGw6X31dfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCg5KSxjPWwo''@;'; put 'put ''Niksbz1sKDIwKSxoPWwoODgpLGY9bCg1OCksZz1NYXRoLm1heCx1PU1hdGgubWluLHA9TWF0aC5mbG9vcix2PS9cJChbJCZgJ118XGRcZD98PFtePl0qPikvZyxIPS9cJChbJCZgJ118XGRcZD8pL2c7bCg1OSkoInJlcGxhY2UiLDIsZnVuY3Rpb24oQyxWLFMsXyl7cmV0dXJuW2Z1bmN0aW9u''@;'; put 'put ''KHgsRSl7dmFyIHc9Qyh0aGlzKSxOPXg9PWs/azp4W1ZdO3JldHVybiBOIT09az9OLmNhbGwoeCx3LEUpOlMuY2FsbChTdHJpbmcodykseCxFKX0sZnVuY3Rpb24oTSx4KXt2YXIgRT1fKFMsTSx0aGlzLHgpO2lmKEUuZG9uZSlyZXR1cm4gRS52YWx1ZTt2YXIgdz1yKE0pLE49U3RyaW5nKHRo''@;'; put 'put ''aXMpLEk9ImZ1bmN0aW9uIj09dHlwZW9mIHg7SXx8KHg9U3RyaW5nKHgpKTt2YXIgVz13Lmdsb2JhbDtpZihXKXt2YXIgTz13LnVuaWNvZGU7dy5sYXN0SW5kZXg9MH1mb3IodmFyIEI9W107Oyl7dmFyIFI9Zih3LE4pO2lmKG51bGw9PT1SfHwoQi5wdXNoKFIpLCFXKSlicmVhazsiIj09PVN0''@;'; put 'put ''cmluZyhSWzBdKSYmKHcubGFzdEluZGV4PWgoTixjKHcubGFzdEluZGV4KSxPKSl9Zm9yKHZhciBsMSxhMT0iIixoMT0wLHUxPTA7dTE8Qi5sZW5ndGg7dTErKyl7Uj1CW3UxXTtmb3IodmFyIHAxPVN0cmluZyhSWzBdKSx2MT1nKHUobyhSLmluZGV4KSxOLmxlbmd0aCksMCksRTE9W10saj0x''@;'; put 'put ''O2o8Ui5sZW5ndGg7aisrKUUxLnB1c2goKGwxPVJbal0pPT09az9sMTpTdHJpbmcobDEpKTt2YXIgYzE9Ui5ncm91cHM7aWYoSSl7dmFyIFYxPVtwMV0uY29uY2F0KEUxLHYxLE4pO2MxIT09ayYmVjEucHVzaChjMSk7dmFyIF8xPVN0cmluZyh4LmFwcGx5KGssVjEpKX1lbHNlIF8xPWIocDEs''@;'; put 'put ''Tix2MSxFMSxjMSx4KTtoMTw9djEmJihhMSs9Ti5zbGljZShoMSx2MSkrXzEsaDE9djErcDEubGVuZ3RoKX1yZXR1cm4gYTErTi5zbGljZShoMSl9XTtmdW5jdGlvbiBiKE0seCxFLHcsTixJKXt2YXIgVz1FK00ubGVuZ3RoLE89dy5sZW5ndGgsQj1IO3JldHVybiBOIT09ayYmKE49YShOKSxC''@;'; put 'put ''PXYpLFMuY2FsbChJLEIsZnVuY3Rpb24oUixsMSl7dmFyIGExO3N3aXRjaChsMS5jaGFyQXQoMCkpe2Nhc2UiJCI6cmV0dXJuIiQiO2Nhc2UiJiI6cmV0dXJuIE07Y2FzZSJgIjpyZXR1cm4geC5zbGljZSgwLEUpO2Nhc2UiJyI6cmV0dXJuIHguc2xpY2UoVyk7Y2FzZSI8IjphMT1OW2wxLnNs''@;'; put 'put ''aWNlKDEsLTEpXTticmVhaztkZWZhdWx0OnZhciBoMT0rbDE7aWYoMD09PWgxKXJldHVybiBSO2lmKE88aDEpe3ZhciB1MT1wKGgxLzEwKTtyZXR1cm4gMD09PXUxP1I6dTE8PU8/d1t1MS0xXT09PWs/bDEuY2hhckF0KDEpOndbdTEtMV0rbDEuY2hhckF0KDEpOlJ9YTE9d1toMS0xXX1yZXR1''@;'; put 'put ''cm4gYTE9PT1rPyIiOmExfSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCg5OSksYz1sKDU4KTtsKDU5KSgic2VhcmNoIiwxLGZ1bmN0aW9uKG8saCxmLGcpe3JldHVybltmdW5jdGlvbihwKXt2YXIgdj1vKHRoaXMpLEg9cD09az9rOnBbaF07cmV0dXJuIEghPT1rP0guY2Fs''@;'; put 'put ''bChwLHYpOm5ldyBSZWdFeHAocClbaF0oU3RyaW5nKHYpKX0sZnVuY3Rpb24odSl7dmFyIHA9ZyhmLHUsdGhpcyk7aWYocC5kb25lKXJldHVybiBwLnZhbHVlO3ZhciB2PXIodSksSD1TdHJpbmcodGhpcyksQz12Lmxhc3RJbmRleDthKEMsMCl8fCh2Lmxhc3RJbmRleD0wKTt2YXIgVj1jKHYs''@;'; put 'put ''SCk7cmV0dXJuIGEodi5sYXN0SW5kZXgsQyl8fCh2Lmxhc3RJbmRleD1DKSxudWxsPT09Vj8tMTpWLmluZGV4fV19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoNTYpLGE9bCgxKSxjPWwoNTEpLG89bCg4OCksaD1sKDYpLGY9bCg1OCksZz1sKDg3KSx1PWwoMykscD1NYXRoLm1pbix2PVtd''@;'; put 'put ''LnB1c2gsSD0ic3BsaXQiLEM9Imxlbmd0aCIsVj0ibGFzdEluZGV4IixTPTQyOTQ5NjcyOTUsXz0hdShmdW5jdGlvbigpe1JlZ0V4cChTLCJ5Iil9KTtsKDU5KSgic3BsaXQiLDIsZnVuY3Rpb24oYixNLHgsRSl7dmFyIHc7cmV0dXJuIHc9ImMiPT0iYWJiYyJbSF0oLyhiKSovKVsxXXx8NCE9''@;'; put 'put ''InRlc3QiW0hdKC8oPzopLywtMSlbQ118fDIhPSJhYiJbSF0oLyg/OmFiKSovKVtDXXx8NCE9Ii4iW0hdKC8oLj8pKC4/KS8pW0NdfHwxPCIuIltIXSgvKCkoKS8pW0NdfHwiIltIXSgvLj8vKVtDXT9mdW5jdGlvbihOLEkpe3ZhciBXPVN0cmluZyh0aGlzKTtpZihOPT09ayYmMD09PUkpcmV0''@;'; put 'put ''dXJuW107aWYoIXIoTikpcmV0dXJuIHguY2FsbChXLE4sSSk7Zm9yKHZhciBPLEIsUixsMT1bXSxhMT0wLGgxPUk9PT1rP1M6ST4+PjAsdTE9bmV3IFJlZ0V4cChOLnNvdXJjZSwoTi5pZ25vcmVDYXNlPyJpIjoiIikrKE4ubXVsdGlsaW5lPyJtIjoiIikrKE4udW5pY29kZT8idSI6IiIpKyhO''@;'; put 'put ''LnN0aWNreT8ieSI6IiIpKyJnIik7KE89Zy5jYWxsKHUxLFcpKSYmIShhMTwoQj11MVtWXSkmJihsMS5wdXNoKFcuc2xpY2UoYTEsTy5pbmRleCkpLDE8T1tDXSYmTy5pbmRleDxXW0NdJiZ2LmFwcGx5KGwxLE8uc2xpY2UoMSkpLFI9T1swXVtDXSxhMT1CLGgxPD1sMVtDXSkpOyl1MVtWXT09''@;'; put 'put ''PU8uaW5kZXgmJnUxW1ZdKys7cmV0dXJuIGExPT09V1tDXT8hUiYmdTEudGVzdCgiIil8fGwxLnB1c2goIiIpOmwxLnB1c2goVy5zbGljZShhMSkpLGgxPGwxW0NdP2wxLnNsaWNlKDAsaDEpOmwxfToiMCJbSF0oaywwKVtDXT9mdW5jdGlvbihOLEkpe3JldHVybiBOPT09ayYmMD09PUk/W106''@;'; put 'put ''eC5jYWxsKHRoaXMsTixJKX06eCxbZnVuY3Rpb24oSSxXKXt2YXIgTz1iKHRoaXMpLEI9ST09az9rOklbTV07cmV0dXJuIEIhPT1rP0IuY2FsbChJLE8sVyk6dy5jYWxsKFN0cmluZyhPKSxJLFcpfSxmdW5jdGlvbihOLEkpe3ZhciBXPUUodyxOLHRoaXMsSSx3IT09eCk7aWYoVy5kb25lKXJl''@;'; put 'put ''dHVybiBXLnZhbHVlO3ZhciBPPWEoTiksQj1TdHJpbmcodGhpcyksUj1jKE8sUmVnRXhwKSxsMT1PLnVuaWNvZGUsYTE9bmV3IFIoXz9POiJeKD86IitPLnNvdXJjZSsiKSIsKE8uaWdub3JlQ2FzZT8iaSI6IiIpKyhPLm11bHRpbGluZT8ibSI6IiIpKyhPLnVuaWNvZGU/InUiOiIiKSsoXz8i''@;'; put 'put ''eSI6ImciKSksaDE9ST09PWs/UzpJPj4+MDtpZigwPT09aDEpcmV0dXJuW107aWYoMD09PUIubGVuZ3RoKXJldHVybiBudWxsPT09ZihhMSxCKT9bQl06W107Zm9yKHZhciB1MT0wLHAxPTAsdjE9W107cDE8Qi5sZW5ndGg7KXthMS5sYXN0SW5kZXg9Xz9wMTowO3ZhciBFMSxqPWYoYTEsXz9C''@;'; put 'put ''OkIuc2xpY2UocDEpKTtpZihudWxsPT09anx8KEUxPXAoaChhMS5sYXN0SW5kZXgrKF8/MDpwMSkpLEIubGVuZ3RoKSk9PT11MSlwMT1vKEIscDEsbDEpO2Vsc2V7aWYodjEucHVzaChCLnNsaWNlKHUxLHAxKSksdjEubGVuZ3RoPT09aDEpcmV0dXJuIHYxO2Zvcih2YXIgYzE9MTtjMTw9ai5s''@;'; put 'put ''ZW5ndGgtMTtjMSsrKWlmKHYxLnB1c2goaltjMV0pLHYxLmxlbmd0aD09PWgxKXJldHVybiB2MTtwMT11MT1FMX19cmV0dXJuIHYxLnB1c2goQi5zbGljZSh1MSkpLHYxfV19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByLGEsYyxvLGg9bCgyOSksZj1sKDIpLGc9bCgxOCksdT1sKDQ0KSxwPWwo''@;'; put 'put ''MCksdj1sKDQpLEg9bCgxMCksQz1sKDM5KSxWPWwoNDApLFM9bCg1MSksXz1sKDg5KS5zZXQsYj1sKDkwKSgpLE09bCg5MSkseD1sKDExNCksRT1sKDYwKSx3PWwoMTE1KSxOPSJQcm9taXNlIixJPWYuVHlwZUVycm9yLFc9Zi5wcm9jZXNzLE89VyYmVy52ZXJzaW9ucyxCPU8mJk8udjh8fCIi''@;'; put 'put ''LFI9ZltOXSxsMT0icHJvY2VzcyI9PXUoVyksYTE9ZnVuY3Rpb24oKXt9LGgxPWE9TS5mLHUxPSEhZnVuY3Rpb24oKXt0cnl7dmFyIFE9Ui5yZXNvbHZlKDEpLHMxPShRLmNvbnN0cnVjdG9yPXt9KVtsKDUpKCJzcGVjaWVzIildPWZ1bmN0aW9uKG0xKXttMShhMSxhMSl9O3JldHVybihsMXx8''@;'; put 'put ''ImZ1bmN0aW9uIj09dHlwZW9mIFByb21pc2VSZWplY3Rpb25FdmVudCkmJlEudGhlbihhMSlpbnN0YW5jZW9mIHMxJiYwIT09Qi5pbmRleE9mKCI2LjYiKSYmLTE9PT1FLmluZGV4T2YoIkNocm9tZS82NiIpfWNhdGNoKG0xKXt9fSgpLHAxPWZ1bmN0aW9uKFEpe3ZhciBzMTtyZXR1cm4hKCF2''@;'; put 'put ''KFEpfHwiZnVuY3Rpb24iIT10eXBlb2YoczE9US50aGVuKSkmJnMxfSx2MT1mdW5jdGlvbihRLHMxKXtpZighUS5fbil7US5fbj0hMDt2YXIgbTE9US5fYztiKGZ1bmN0aW9uKCl7Zm9yKHZhciBiMT1RLl92LEIxPTE9PVEuX3MsJD0wLHo9ZnVuY3Rpb24oeSl7dmFyIEQsWixULFA9QjE/eS5v''@;'; put 'put ''azp5LmZhaWwsZTE9eS5yZXNvbHZlLHIxPXkucmVqZWN0LFoxPXkuZG9tYWluO3RyeXtQPyhCMXx8KDI9PVEuX2gmJmMxKFEpLFEuX2g9MSksITA9PT1QP0Q9YjE6KFoxJiZaMS5lbnRlcigpLEQ9UChiMSksWjEmJihaMS5leGl0KCksVD0hMCkpLEQ9PT15LnByb21pc2U/cjEoSSgiUHJvbWlz''@;'; put 'put ''ZS1jaGFpbiBjeWNsZSIpKTooWj1wMShEKSk/Wi5jYWxsKEQsZTEscjEpOmUxKEQpKTpyMShiMSl9Y2F0Y2goWSl7WjEmJiFUJiZaMS5leGl0KCkscjEoWSl9fTskPG0xLmxlbmd0aDspeihtMVskKytdKTtRLl9jPVtdLFEuX249ITEsczEmJiFRLl9oJiZFMShRKX0pfX0sRTE9ZnVuY3Rpb24o''@;'; put 'put ''USl7Xy5jYWxsKGYsZnVuY3Rpb24oKXt2YXIgczEsbTEsYjEsQjE9US5fdiwkPWooUSk7aWYoJCYmKHMxPXgoZnVuY3Rpb24oKXtsMT9XLmVtaXQoInVuaGFuZGxlZFJlamVjdGlvbiIsQjEsUSk6KG0xPWYub251bmhhbmRsZWRyZWplY3Rpb24pP20xKHtwcm9taXNlOlEscmVhc29uOkIxfSk6''@;'; put 'put ''KGIxPWYuY29uc29sZSkmJmIxLmVycm9yJiZiMS5lcnJvcigiVW5oYW5kbGVkIHByb21pc2UgcmVqZWN0aW9uIixCMSl9KSxRLl9oPWwxfHxqKFEpPzI6MSksUS5fYT1rLCQmJnMxLmUpdGhyb3cgczEudn0pfSxqPWZ1bmN0aW9uKFEpe3JldHVybiAxIT09US5faCYmMD09PShRLl9hfHxRLl9j''@;'; put 'put ''KS5sZW5ndGh9LGMxPWZ1bmN0aW9uKFEpe18uY2FsbChmLGZ1bmN0aW9uKCl7dmFyIHMxO2wxP1cuZW1pdCgicmVqZWN0aW9uSGFuZGxlZCIsUSk6KHMxPWYub25yZWplY3Rpb25oYW5kbGVkKSYmczEoe3Byb21pc2U6USxyZWFzb246US5fdn0pfSl9LFYxPWZ1bmN0aW9uKFEpe3ZhciBzMT10''@;'; put 'put ''aGlzO3MxLl9kfHwoczEuX2Q9ITAsKHMxPXMxLl93fHxzMSkuX3Y9USxzMS5fcz0yLHMxLl9hfHwoczEuX2E9czEuX2Muc2xpY2UoKSksdjEoczEsITApKX0sXzE9ZnVuY3Rpb24oUSl7dmFyIHMxLG0xPXRoaXM7aWYoIW0xLl9kKXttMS5fZD0hMCxtMT1tMS5fd3x8bTE7dHJ5e2lmKG0xPT09''@;'; put 'put ''USl0aHJvdyBJKCJQcm9taXNlIGNhbid0IGJlIHJlc29sdmVkIGl0c2VsZiIpOyhzMT1wMShRKSk/YihmdW5jdGlvbigpe3ZhciBiMT17X3c6bTEsX2Q6ITF9O3RyeXtzMS5jYWxsKFEsZyhfMSxiMSwxKSxnKFYxLGIxLDEpKX1jYXRjaChCMSl7VjEuY2FsbChiMSxCMSl9fSk6KG0xLl92PVEs''@;'; put 'put ''bTEuX3M9MSx2MShtMSwhMSkpfWNhdGNoKGIxKXtWMS5jYWxsKHtfdzptMSxfZDohMX0sYjEpfX19O3UxfHwoUj1mdW5jdGlvbihzMSl7Qyh0aGlzLFIsTiwiX2giKSxIKHMxKSxyLmNhbGwodGhpcyk7dHJ5e3MxKGcoXzEsdGhpcywxKSxnKFYxLHRoaXMsMSkpfWNhdGNoKG0xKXtWMS5jYWxs''@;'; put 'put ''KHRoaXMsbTEpfX0sKHI9ZnVuY3Rpb24oczEpe3RoaXMuX2M9W10sdGhpcy5fYT1rLHRoaXMuX3M9MCx0aGlzLl9kPSExLHRoaXMuX3Y9ayx0aGlzLl9oPTAsdGhpcy5fbj0hMX0pLnByb3RvdHlwZT1sKDQxKShSLnByb3RvdHlwZSx7dGhlbjpmdW5jdGlvbihzMSxtMSl7dmFyIGIxPWgxKFMo''@;'; put 'put ''dGhpcyxSKSk7cmV0dXJuIGIxLm9rPSJmdW5jdGlvbiIhPXR5cGVvZiBzMXx8czEsYjEuZmFpbD0iZnVuY3Rpb24iPT10eXBlb2YgbTEmJm0xLGIxLmRvbWFpbj1sMT9XLmRvbWFpbjprLHRoaXMuX2MucHVzaChiMSksdGhpcy5fYSYmdGhpcy5fYS5wdXNoKGIxKSx0aGlzLl9zJiZ2MSh0aGlz''@;'; put 'put ''LCExKSxiMS5wcm9taXNlfSxjYXRjaDpmdW5jdGlvbihRKXtyZXR1cm4gdGhpcy50aGVuKGssUSl9fSksYz1mdW5jdGlvbigpe3ZhciBRPW5ldyByO3RoaXMucHJvbWlzZT1RLHRoaXMucmVzb2x2ZT1nKF8xLFEsMSksdGhpcy5yZWplY3Q9ZyhWMSxRLDEpfSxNLmY9aDE9ZnVuY3Rpb24oUSl7''@;'; put 'put ''cmV0dXJuIFE9PT1SfHxRPT09bz9uZXcgYyhRKTphKFEpfSkscChwLkcrcC5XK3AuRiohdTEse1Byb21pc2U6Un0pLGwoNDMpKFIsTiksbCgzOCkoTiksbz1sKDI2KVtOXSxwKHAuUytwLkYqIXUxLE4se3JlamVjdDpmdW5jdGlvbihzMSl7dmFyIG0xPWgxKHRoaXMpO3JldHVybigwLG0xLnJl''@;'; put 'put ''amVjdCkoczEpLG0xLnByb21pc2V9fSkscChwLlMrcC5GKihofHwhdTEpLE4se3Jlc29sdmU6ZnVuY3Rpb24oczEpe3JldHVybiB3KGgmJnRoaXM9PT1vP1I6dGhpcyxzMSl9fSkscChwLlMrcC5GKiEodTEmJmwoNTcpKGZ1bmN0aW9uKFEpe1IuYWxsKFEpLmNhdGNoKGExKX0pKSxOLHthbGw6''@;'; put 'put ''ZnVuY3Rpb24oczEpe3ZhciBtMT10aGlzLGIxPWgxKG0xKSxCMT1iMS5yZXNvbHZlLCQ9YjEucmVqZWN0LHo9eChmdW5jdGlvbigpe3ZhciB5PVtdLEQ9MCxaPTE7VihzMSwhMSxmdW5jdGlvbihUKXt2YXIgUD1EKyssZTE9ITE7eS5wdXNoKGspLForKyxtMS5yZXNvbHZlKFQpLnRoZW4oZnVu''@;'; put 'put ''Y3Rpb24ocjEpe2UxfHwoZTE9ITAseVtQXT1yMSwtLVp8fEIxKHkpKX0sJCl9KSwtLVp8fEIxKHkpfSk7cmV0dXJuIHouZSYmJCh6LnYpLGIxLnByb21pc2V9LHJhY2U6ZnVuY3Rpb24oczEpe3ZhciBtMT10aGlzLGIxPWgxKG0xKSxCMT1iMS5yZWplY3QsJD14KGZ1bmN0aW9uKCl7VihzMSwh''@;'; put 'put ''MSxmdW5jdGlvbih6KXttMS5yZXNvbHZlKHopLnRoZW4oYjEucmVzb2x2ZSxCMSl9KX0pO3JldHVybiAkLmUmJkIxKCQudiksYjEucHJvbWlzZX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTIwKSxhPWwoNDIpLGM9IldlYWtTZXQiO2woNjEpKGMsZnVuY3Rpb24obyl7cmV0dXJuIGZ1''@;'; put 'put ''bmN0aW9uKCl7cmV0dXJuIG8odGhpcywwPGFyZ3VtZW50cy5sZW5ndGg/YXJndW1lbnRzWzBdOmspfX0se2FkZDpmdW5jdGlvbihoKXtyZXR1cm4gci5kZWYoYSh0aGlzLGMpLGgsITApfX0sciwhMSwhMCl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMCksYz1sKDEpLG89KGwo''@;'; put 'put ''MikuUmVmbGVjdHx8e30pLmFwcGx5LGg9RnVuY3Rpb24uYXBwbHk7cihyLlMrci5GKiFsKDMpKGZ1bmN0aW9uKCl7byhmdW5jdGlvbigpe30pfSksIlJlZmxlY3QiLHthcHBseTpmdW5jdGlvbihnLHUscCl7dmFyIHY9YShnKSxIPWMocCk7cmV0dXJuIG8/byh2LHUsSCk6aC5jYWxsKHYsdSxI''@;'; put 'put ''KX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDM2KSxjPWwoMTApLG89bCgxKSxoPWwoNCksZj1sKDMpLGc9bCgxMDApLHU9KGwoMikuUmVmbGVjdHx8e30pLmNvbnN0cnVjdCxwPWYoZnVuY3Rpb24oKXtmdW5jdGlvbiBIKCl7fXJldHVybiEodShmdW5jdGlvbigpe30sW10s''@;'; put 'put ''SClpbnN0YW5jZW9mIEgpfSksdj0hZihmdW5jdGlvbigpe3UoZnVuY3Rpb24oKXt9KX0pO3Ioci5TK3IuRioocHx8diksIlJlZmxlY3QiLHtjb25zdHJ1Y3Q6ZnVuY3Rpb24oQyxWKXtjKEMpLG8oVik7dmFyIFM9YXJndW1lbnRzLmxlbmd0aDwzP0M6Yyhhcmd1bWVudHNbMl0pO2lmKHYmJiFw''@;'; put 'put ''KXJldHVybiB1KEMsVixTKTtpZihDPT1TKXtzd2l0Y2goVi5sZW5ndGgpe2Nhc2UgMDpyZXR1cm4gbmV3IEM7Y2FzZSAxOnJldHVybiBuZXcgQyhWWzBdKTtjYXNlIDI6cmV0dXJuIG5ldyBDKFZbMF0sVlsxXSk7Y2FzZSAzOnJldHVybiBuZXcgQyhWWzBdLFZbMV0sVlsyXSk7Y2FzZSA0OnJl''@;'; put 'put ''dHVybiBuZXcgQyhWWzBdLFZbMV0sVlsyXSxWWzNdKX12YXIgXz1bbnVsbF07cmV0dXJuIF8ucHVzaC5hcHBseShfLFYpLG5ldyhnLmFwcGx5KEMsXykpfXZhciBiPVMucHJvdG90eXBlLE09YShoKGIpP2I6T2JqZWN0LnByb3RvdHlwZSkseD1GdW5jdGlvbi5hcHBseS5jYWxsKEMsTSxWKTty''@;'; put 'put ''ZXR1cm4gaCh4KT94Ok19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgwKSxjPWwoMSksbz1sKDIyKTthKGEuUythLkYqbCgzKShmdW5jdGlvbigpe1JlZmxlY3QuZGVmaW5lUHJvcGVydHkoci5mKHt9LDEse3ZhbHVlOjF9KSwxLHt2YWx1ZToyfSl9KSwiUmVmbGVjdCIse2Rl''@;'; put 'put ''ZmluZVByb3BlcnR5OmZ1bmN0aW9uKGYsZyx1KXtjKGYpLGc9byhnLCEwKSxjKHUpO3RyeXtyZXR1cm4gci5mKGYsZyx1KSwhMH1jYXRjaChwKXtyZXR1cm4hMX19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxNikuZixjPWwoMSk7cihyLlMsIlJlZmxlY3QiLHtkZWxldGVQ''@;'; put 'put ''cm9wZXJ0eTpmdW5jdGlvbihoLGYpe3ZhciBnPWEoYyhoKSxmKTtyZXR1cm4hKGcmJiFnLmNvbmZpZ3VyYWJsZSkmJmRlbGV0ZSBoW2ZdfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMSksYz1mdW5jdGlvbihvKXt0aGlzLl90PWEobyksdGhpcy5faT0wO3ZhciBoLGY9dGhp''@;'; put 'put ''cy5faz1bXTtmb3IoaCBpbiBvKWYucHVzaChoKX07bCg4MCkoYywiT2JqZWN0IixmdW5jdGlvbigpe3ZhciBvLGg9dGhpcy5faztkb3tpZihoLmxlbmd0aDw9dGhpcy5faSlyZXR1cm57dmFsdWU6ayxkb25lOiEwfX13aGlsZSghKChvPWhbdGhpcy5faSsrXSlpbiB0aGlzLl90KSk7cmV0dXJu''@;'; put 'put ''e3ZhbHVlOm8sZG9uZTohMX19KSxyKHIuUywiUmVmbGVjdCIse2VudW1lcmF0ZTpmdW5jdGlvbihoKXtyZXR1cm4gbmV3IGMoaCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDE2KSxhPWwoMTcpLGM9bCgxNCksbz1sKDApLGg9bCg0KSxmPWwoMSk7byhvLlMsIlJlZmxlY3QiLHtnZXQ6''@;'; put 'put ''ZnVuY3Rpb24gZyh1LHApe3ZhciB2LEgsQz1hcmd1bWVudHMubGVuZ3RoPDM/dTphcmd1bWVudHNbMl07cmV0dXJuIGYodSk9PT1DP3VbcF06KHY9ci5mKHUscCkpP2ModiwidmFsdWUiKT92LnZhbHVlOnYuZ2V0IT09az92LmdldC5jYWxsKEMpOms6aChIPWEodSkpP2coSCxwLEMpOnZvaWQg''@;'; put 'put ''MH19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMTYpLGE9bCgwKSxjPWwoMSk7YShhLlMsIlJlZmxlY3QiLHtnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I6ZnVuY3Rpb24oaCxmKXtyZXR1cm4gci5mKGMoaCksZil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxNyksYz1s''@;'; put 'put ''KDEpO3Ioci5TLCJSZWZsZWN0Iix7Z2V0UHJvdG90eXBlT2Y6ZnVuY3Rpb24oaCl7cmV0dXJuIGEoYyhoKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJSZWZsZWN0Iix7aGFzOmZ1bmN0aW9uKGMsbyl7cmV0dXJuIG8gaW4gY319KX0sZnVuY3Rpb24oQSxlLGwpe3Zh''@;'; put 'put ''ciByPWwoMCksYT1sKDEpLGM9T2JqZWN0LmlzRXh0ZW5zaWJsZTtyKHIuUywiUmVmbGVjdCIse2lzRXh0ZW5zaWJsZTpmdW5jdGlvbihoKXtyZXR1cm4gYShoKSwhY3x8YyhoKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIlJlZmxlY3QiLHtvd25LZXlzOmwoMTIxKX0p''@;'; put 'put ''fSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMSksYz1PYmplY3QucHJldmVudEV4dGVuc2lvbnM7cihyLlMsIlJlZmxlY3QiLHtwcmV2ZW50RXh0ZW5zaW9uczpmdW5jdGlvbihoKXthKGgpO3RyeXtyZXR1cm4gYyYmYyhoKSwhMH1jYXRjaChmKXtyZXR1cm4hMX19fSl9LGZ1bmN0''@;'; put 'put ''aW9uKEEsZSxsKXt2YXIgcj1sKDgpLGE9bCgxNiksYz1sKDE3KSxvPWwoMTQpLGg9bCgwKSxmPWwoMzIpLGc9bCgxKSx1PWwoNCk7aChoLlMsIlJlZmxlY3QiLHtzZXQ6ZnVuY3Rpb24gcCh2LEgsQyl7dmFyIFYsUyxfPWFyZ3VtZW50cy5sZW5ndGg8ND92OmFyZ3VtZW50c1szXSxiPWEuZihn''@;'; put 'put ''KHYpLEgpO2lmKCFiKXtpZih1KFM9Yyh2KSkpcmV0dXJuIHAoUyxILEMsXyk7Yj1mKDApfWlmKG8oYiwidmFsdWUiKSl7aWYoITE9PT1iLndyaXRhYmxlfHwhdShfKSlyZXR1cm4hMTtpZihWPWEuZihfLEgpKXtpZihWLmdldHx8Vi5zZXR8fCExPT09Vi53cml0YWJsZSlyZXR1cm4hMTtWLnZh''@;'; put 'put ''bHVlPUMsci5mKF8sSCxWKX1lbHNlIHIuZihfLEgsZigwLEMpKTtyZXR1cm4hMH1yZXR1cm4gYi5zZXQhPT1rJiYoYi5zZXQuY2FsbChfLEMpLCEwKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDcxKTthJiZyKHIuUywiUmVmbGVjdCIse3NldFByb3RvdHlwZU9mOmZ1bmN0''@;'; put 'put ''aW9uKG8saCl7YS5jaGVjayhvLGgpO3RyeXtyZXR1cm4gYS5zZXQobyxoKSwhMH1jYXRjaChmKXtyZXR1cm4hMX19fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJEYXRlIix7bm93OmZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKS5nZXRUaW1lKCl9fSl9LGZ1bmN0aW9u''@;'; put 'put ''KEEsZSxsKXt2YXIgcj1sKDApLGE9bCg5KSxjPWwoMjIpO3Ioci5QK3IuRipsKDMpKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPT1uZXcgRGF0ZShOYU4pLnRvSlNPTigpfHwxIT09RGF0ZS5wcm90b3R5cGUudG9KU09OLmNhbGwoe3RvSVNPU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDF9fSl9''@;'; put 'put ''KSwiRGF0ZSIse3RvSlNPTjpmdW5jdGlvbihoKXt2YXIgZj1hKHRoaXMpLGc9YyhmKTtyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIGd8fGlzRmluaXRlKGcpP2YudG9JU09TdHJpbmcoKTpudWxsfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMjUyKTtyKHIuUCtyLkYqKERhdGUu''@;'; put 'put ''cHJvdG90eXBlLnRvSVNPU3RyaW5nIT09YSksIkRhdGUiLHt0b0lTT1N0cmluZzphfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDMpLGE9RGF0ZS5wcm90b3R5cGUuZ2V0VGltZSxjPURhdGUucHJvdG90eXBlLnRvSVNPU3RyaW5nLG89ZnVuY3Rpb24oaCl7cmV0dXJuIDk8aD9oOiIwIito''@;'; put 'put ''fTtBLmV4cG9ydHM9cihmdW5jdGlvbigpe3JldHVybiIwMzg1LTA3LTI1VDA3OjA2OjM5Ljk5OVoiIT1jLmNhbGwobmV3IERhdGUoLTUwMDAwMDAwMDAwMDAxKSl9KXx8IXIoZnVuY3Rpb24oKXtjLmNhbGwobmV3IERhdGUoTmFOKSl9KT9mdW5jdGlvbigpe2lmKCFpc0Zpbml0ZShhLmNhbGwo''@;'; put 'put ''dGhpcykpKXRocm93IFJhbmdlRXJyb3IoIkludmFsaWQgdGltZSB2YWx1ZSIpO3ZhciBmPXRoaXMsZz1mLmdldFVUQ0Z1bGxZZWFyKCksdT1mLmdldFVUQ01pbGxpc2Vjb25kcygpLHA9ZzwwPyItIjo5OTk5PGc/IisiOiIiO3JldHVybiBwKygiMDAwMDAiK01hdGguYWJzKGcpKS5zbGljZShw''@;'; put 'put ''Py02Oi00KSsiLSIrbyhmLmdldFVUQ01vbnRoKCkrMSkrIi0iK28oZi5nZXRVVENEYXRlKCkpKyJUIitvKGYuZ2V0VVRDSG91cnMoKSkrIjoiK28oZi5nZXRVVENNaW51dGVzKCkpKyI6IitvKGYuZ2V0VVRDU2Vjb25kcygpKSsiLiIrKDk5PHU/dToiMCIrbyh1KSkrIloifTpjfSxmdW5jdGlv''@;'; put 'put ''bihBLGUsbCl7dmFyIHI9RGF0ZS5wcm90b3R5cGUsYT0iSW52YWxpZCBEYXRlIixjPSJ0b1N0cmluZyIsbz1yW2NdLGg9ci5nZXRUaW1lO25ldyBEYXRlKE5hTikrIiIhPWEmJmwoMTIpKHIsYyxmdW5jdGlvbigpe3ZhciBnPWguY2FsbCh0aGlzKTtyZXR1cm4gZz09Zz9vLmNhbGwodGhpcyk6''@;'; put 'put ''YX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCg1KSgidG9QcmltaXRpdmUiKSxhPURhdGUucHJvdG90eXBlO3IgaW4gYXx8bCgxMSkoYSxyLGwoMjU1KSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDEpLGE9bCgyMik7QS5leHBvcnRzPWZ1bmN0aW9uKGMpe2lmKCJzdHJpbmciIT09YyYm''@;'; put 'put ''Im51bWJlciIhPT1jJiYiZGVmYXVsdCIhPT1jKXRocm93IFR5cGVFcnJvcigiSW5jb3JyZWN0IGhpbnQiKTtyZXR1cm4gYShyKHRoaXMpLCJudW1iZXIiIT1jKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg2MiksYz1sKDkyKSxvPWwoMSksaD1sKDM1KSxmPWwoNiksZz1sKDQp''@;'; put 'put ''LHU9bCgyKS5BcnJheUJ1ZmZlcixwPWwoNTEpLHY9Yy5BcnJheUJ1ZmZlcixIPWMuRGF0YVZpZXcsQz1hLkFCViYmdS5pc1ZpZXcsVj12LnByb3RvdHlwZS5zbGljZSxTPWEuVklFVyxfPSJBcnJheUJ1ZmZlciI7cihyLkcrci5XK3IuRioodSE9PXYpLHtBcnJheUJ1ZmZlcjp2fSkscihyLlMr''@;'; put 'put ''ci5GKiFhLkNPTlNUUixfLHtpc1ZpZXc6ZnVuY3Rpb24oTSl7cmV0dXJuIEMmJkMoTSl8fGcoTSkmJlMgaW4gTX19KSxyKHIuUCtyLlUrci5GKmwoMykoZnVuY3Rpb24oKXtyZXR1cm4hbmV3IHYoMikuc2xpY2UoMSxrKS5ieXRlTGVuZ3RofSksXyx7c2xpY2U6ZnVuY3Rpb24oTSx4KXtpZihW''@;'; put 'put ''IT09ayYmeD09PWspcmV0dXJuIFYuY2FsbChvKHRoaXMpLE0pO2Zvcih2YXIgRT1vKHRoaXMpLmJ5dGVMZW5ndGgsdz1oKE0sRSksTj1oKHg9PT1rP0U6eCxFKSxJPW5ldyhwKHRoaXMsdikpKGYoTi13KSksVz1uZXcgSCh0aGlzKSxPPW5ldyBIKEkpLEI9MDt3PE47KU8uc2V0VWludDgoQisr''@;'; put 'put ''LFcuZ2V0VWludDgodysrKSk7cmV0dXJuIEl9fSksbCgzOCkoXyl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5HK3IuVytyLkYqIWwoNjIpLkFCVix7RGF0YVZpZXc6bCg5MikuRGF0YVZpZXd9KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJJbnQ4IiwxLGZ1bmN0aW9uKHIpe3Jl''@;'; put 'put ''dHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiVWludDgiLDEsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJVaW50''@;'; put 'put ''OCIsMSxmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oYyxvLGgpe3JldHVybiByKHRoaXMsYyxvLGgpfX0sITApfSxmdW5jdGlvbihBLGUsbCl7bCgyNykoIkludDE2IiwyLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0''@;'; put 'put ''aW9uKEEsZSxsKXtsKDI3KSgiVWludDE2IiwyLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiSW50MzIiLDQsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0''@;'; put 'put ''aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJVaW50MzIiLDQsZnVuY3Rpb24ocil7cmV0dXJuIGZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gcih0aGlzLGMsbyxoKX19KX0sZnVuY3Rpb24oQSxlLGwpe2woMjcpKCJGbG9hdDMyIiw0LGZ1bmN0aW9uKHIpe3JldHVybiBmdW5j''@;'; put 'put ''dGlvbihjLG8saCl7cmV0dXJuIHIodGhpcyxjLG8saCl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDI3KSgiRmxvYXQ2NCIsOCxmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oYyxvLGgpe3JldHVybiByKHRoaXMsYyxvLGgpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoNTIp''@;'; put 'put ''KCEwKTtyKHIuUCwiQXJyYXkiLHtpbmNsdWRlczpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8sMTxhcmd1bWVudHMubGVuZ3RoP2FyZ3VtZW50c1sxXTprKX19KSxsKDMxKSgiaW5jbHVkZXMiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMyksYz1sKDkpLG89bCg2KSxo''@;'; put 'put ''PWwoMTApLGY9bCg4NCk7cihyLlAsIkFycmF5Iix7ZmxhdE1hcDpmdW5jdGlvbih1KXt2YXIgcCx2LEg9Yyh0aGlzKTtyZXR1cm4gaCh1KSxwPW8oSC5sZW5ndGgpLHY9ZihILDApLGEodixILEgscCwwLDEsdSxhcmd1bWVudHNbMV0pLHZ9fSksbCgzMSkoImZsYXRNYXAiKX0sZnVuY3Rpb24o''@;'; put 'put ''QSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMyksYz1sKDkpLG89bCg2KSxoPWwoMjApLGY9bCg4NCk7cihyLlAsIkFycmF5Iix7ZmxhdHRlbjpmdW5jdGlvbigpe3ZhciB1PWFyZ3VtZW50c1swXSxwPWModGhpcyksdj1vKHAubGVuZ3RoKSxIPWYocCwwKTtyZXR1cm4gYShILHAscCx2LDAsdT09''@;'; put 'put ''PWs/MTpoKHUpKSxIfX0pLGwoMzEpKCJmbGF0dGVuIil9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCg1NSkoITApO3Ioci5QLCJTdHJpbmciLHthdDpmdW5jdGlvbihvKXtyZXR1cm4gYSh0aGlzLG8pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTI0KSxjPWwo''@;'; put 'put ''NjApLG89L1ZlcnNpb25cLzEwXC5cZCsoXC5cZCspPyggTW9iaWxlXC9cdyspPyBTYWZhcmlcLy8udGVzdChjKTtyKHIuUCtyLkYqbywiU3RyaW5nIix7cGFkU3RhcnQ6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06aywhMCl9fSl9''@;'; put 'put ''LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApLGE9bCgxMjQpLGM9bCg2MCksbz0vVmVyc2lvblwvMTBcLlxkKyhcLlxkKyk/KCBNb2JpbGVcL1x3Kyk/IFNhZmFyaVwvLy50ZXN0KGMpO3Ioci5QK3IuRipvLCJTdHJpbmciLHtwYWRFbmQ6ZnVuY3Rpb24oZil7cmV0dXJuIGEodGhpcyxmLDE8''@;'; put 'put ''YXJndW1lbnRzLmxlbmd0aD9hcmd1bWVudHNbMV06aywhMSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDQ1KSgidHJpbUxlZnQiLGZ1bmN0aW9uKHIpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiByKHRoaXMsMSl9fSwidHJpbVN0YXJ0Iil9LGZ1bmN0aW9uKEEsZSxsKXtsKDQ1KSgidHJpbVJp''@;'; put 'put ''Z2h0IixmdW5jdGlvbihyKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gcih0aGlzLDIpfX0sInRyaW1FbmQiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDIzKSxjPWwoNiksbz1sKDU2KSxoPWwoNTApLGY9UmVnRXhwLnByb3RvdHlwZSxnPWZ1bmN0aW9uKHUscCl7dGhpcy5f''@;'; put 'put ''cj11LHRoaXMuX3M9cH07bCg4MCkoZywiUmVnRXhwIFN0cmluZyIsZnVuY3Rpb24oKXt2YXIgcD10aGlzLl9yLmV4ZWModGhpcy5fcyk7cmV0dXJue3ZhbHVlOnAsZG9uZTpudWxsPT09cH19KSxyKHIuUCwiU3RyaW5nIix7bWF0Y2hBbGw6ZnVuY3Rpb24ocCl7aWYoYSh0aGlzKSwhbyhwKSl0''@;'; put 'put ''aHJvdyBUeXBlRXJyb3IocCsiIGlzIG5vdCBhIHJlZ2V4cCEiKTt2YXIgdj1TdHJpbmcodGhpcyksSD0iZmxhZ3MiaW4gZj9TdHJpbmcocC5mbGFncyk6aC5jYWxsKHApLEM9bmV3IFJlZ0V4cChwLnNvdXJjZSx+SC5pbmRleE9mKCJnIik/SDoiZyIrSCk7cmV0dXJuIEMubGFzdEluZGV4PWMo''@;'; put 'put ''cC5sYXN0SW5kZXgpLG5ldyBnKEMsdil9fSl9LGZ1bmN0aW9uKEEsZSxsKXtsKDY3KSgiYXN5bmNJdGVyYXRvciIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NykoIm9ic2VydmFibGUiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyMSksYz1sKDE1KSxvPWwoMTYpLGg9bCg4Mik7''@;'; put 'put ''cihyLlMsIk9iamVjdCIse2dldE93blByb3BlcnR5RGVzY3JpcHRvcnM6ZnVuY3Rpb24oZyl7Zm9yKHZhciB1LHAsdj1jKGcpLEg9by5mLEM9YSh2KSxWPXt9LFM9MDtTPEMubGVuZ3RoOykocD1IKHYsdT1DW1MrK10pKSE9PWsmJmgoVix1LHApO3JldHVybiBWfX0pfSxmdW5jdGlvbihBLGUs''@;'; put 'put ''bCl7dmFyIHI9bCgwKSxhPWwoMTI1KSghMSk7cihyLlMsIk9iamVjdCIse3ZhbHVlczpmdW5jdGlvbihvKXtyZXR1cm4gYShvKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDEyNSkoITApO3Ioci5TLCJPYmplY3QiLHtlbnRyaWVzOmZ1bmN0aW9uKG8pe3JldHVybiBhKG8p''@;'; put 'put ''fX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDEwKSxvPWwoOCk7bCg3KSYmcihyLlArbCg2MyksIk9iamVjdCIse19fZGVmaW5lR2V0dGVyX186ZnVuY3Rpb24oZixnKXtvLmYoYSh0aGlzKSxmLHtnZXQ6YyhnKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZToh''@;'; put 'put ''MH0pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDEwKSxvPWwoOCk7bCg3KSYmcihyLlArbCg2MyksIk9iamVjdCIse19fZGVmaW5lU2V0dGVyX186ZnVuY3Rpb24oZixnKXtvLmYoYSh0aGlzKSxmLHtzZXQ6YyhnKSxlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJs''@;'; put 'put ''ZTohMH0pfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDIyKSxvPWwoMTcpLGg9bCgxNikuZjtsKDcpJiZyKHIuUCtsKDYzKSwiT2JqZWN0Iix7X19sb29rdXBHZXR0ZXJfXzpmdW5jdGlvbihnKXt2YXIgdSxwPWEodGhpcyksdj1jKGcsITApO2Rve2lmKHU9aChw''@;'; put 'put ''LHYpKXJldHVybiB1LmdldH13aGlsZShwPW8ocCkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoOSksYz1sKDIyKSxvPWwoMTcpLGg9bCgxNikuZjtsKDcpJiZyKHIuUCtsKDYzKSwiT2JqZWN0Iix7X19sb29rdXBTZXR0ZXJfXzpmdW5jdGlvbihnKXt2YXIgdSxwPWEodGhp''@;'; put 'put ''cyksdj1jKGcsITApO2Rve2lmKHU9aChwLHYpKXJldHVybiB1LnNldH13aGlsZShwPW8ocCkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUCtyLlIsIk1hcCIse3RvSlNPTjpsKDEyNikoIk1hcCIpfSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5QK3IuUiwi''@;'; put 'put ''U2V0Iix7dG9KU09OOmwoMTI2KSgiU2V0Iil9KX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJNYXAiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJTZXQiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjQpKCJXZWFrTWFwIil9LGZ1bmN0aW9uKEEsZSxsKXtsKDY0KSgiV2Vha1NldCIpfSxmdW5jdGlv''@;'; put 'put ''bihBLGUsbCl7bCg2NSkoIk1hcCIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NSkoIlNldCIpfSxmdW5jdGlvbihBLGUsbCl7bCg2NSkoIldlYWtNYXAiKX0sZnVuY3Rpb24oQSxlLGwpe2woNjUpKCJXZWFrU2V0Iil9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5HLHtnbG9iYWw6bCgy''@;'; put 'put ''KX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiU3lzdGVtIix7Z2xvYmFsOmwoMil9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDE5KTtyKHIuUywiRXJyb3IiLHtpc0Vycm9yOmZ1bmN0aW9uKG8pe3JldHVybiJFcnJvciI9PT1hKG8pfX0pfSxmdW5jdGlv''@;'; put 'put ''bihBLGUsbCl7dmFyIHI9bCgwKTtyKHIuUywiTWF0aCIse2NsYW1wOmZ1bmN0aW9uKGMsbyxoKXtyZXR1cm4gTWF0aC5taW4oaCxNYXRoLm1heChvLGMpKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtERUdfUEVSX1JBRDpNYXRoLlBJLzE4MH0pfSxmdW5j''@;'; put 'put ''dGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPTE4MC9NYXRoLlBJO3Ioci5TLCJNYXRoIix7ZGVncmVlczpmdW5jdGlvbihvKXtyZXR1cm4gbyphfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMTI4KSxjPWwoMTA3KTtyKHIuUywiTWF0aCIse2ZzY2FsZTpmdW5jdGlvbihoLGYs''@;'; put 'put ''Zyx1LHApe3JldHVybiBjKGEoaCxmLGcsdSxwKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7aWFkZGg6ZnVuY3Rpb24oYyxvLGgsZil7dmFyIGc9Yz4+PjAsdT1oPj4+MDtyZXR1cm4obz4+PjApKyhmPj4+MCkrKChnJnV8KGd8dSkmfihnK3U+Pj4wKSk+''@;'; put 'put ''Pj4zMSl8MH19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtpc3ViaDpmdW5jdGlvbihjLG8saCxmKXt2YXIgZz1jPj4+MCx1PWg+Pj4wO3JldHVybihvPj4+MCktKGY+Pj4wKS0oKH5nJnV8fihnXnUpJmctdT4+PjApPj4+MzEpfDB9fSl9LGZ1bmN0aW9uKEEs''@;'; put 'put ''ZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7aW11bGg6ZnVuY3Rpb24oYyxvKXt2YXIgaD0rYyxmPStvLGc9NjU1MzUmaCx1PTY1NTM1JmYscD1oPj4xNix2PWY+PjE2LEg9KHAqdT4+PjApKyhnKnU+Pj4xNik7cmV0dXJuIHAqdisoSD4+MTYpKygoZyp2Pj4+MCkrKDY1NTM1JkgpPj4x''@;'; put 'put ''Nil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7UkFEX1BFUl9ERUc6MTgwL01hdGguUEl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1NYXRoLlBJLzE4MDtyKHIuUywiTWF0aCIse3JhZGlhbnM6ZnVuY3Rpb24obyl7cmV0dXJuIG8qYX19KX0s''@;'; put 'put ''ZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHtzY2FsZTpsKDEyOCl9KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCk7cihyLlMsIk1hdGgiLHt1bXVsaDpmdW5jdGlvbihjLG8pe3ZhciBoPStjLGY9K28sZz02NTUzNSZoLHU9NjU1MzUmZixwPWg+Pj4xNix2PWY+''@;'; put 'put ''Pj4xNixIPShwKnU+Pj4wKSsoZyp1Pj4+MTYpO3JldHVybiBwKnYrKEg+Pj4xNikrKChnKnY+Pj4wKSsoNjU1MzUmSCk+Pj4xNil9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDApO3Ioci5TLCJNYXRoIix7c2lnbmJpdDpmdW5jdGlvbihjKXtyZXR1cm4oYz0rYykhPWM/YzowPT1jPzEv''@;'; put 'put ''Yz09MS8wOjA8Y319KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDI2KSxjPWwoMiksbz1sKDUxKSxoPWwoMTE1KTtyKHIuUCtyLlIsIlByb21pc2UiLHtmaW5hbGx5OmZ1bmN0aW9uKGYpe3ZhciBnPW8odGhpcyxhLlByb21pc2V8fGMuUHJvbWlzZSksdT0iZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgZjtyZXR1cm4gdGhpcy50aGVuKHU/ZnVuY3Rpb24ocCl7cmV0dXJuIGgoZyxmKCkpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gcH0pfTpmLHU/ZnVuY3Rpb24ocCl7cmV0dXJuIGgoZyxmKCkpLnRoZW4oZnVuY3Rpb24oKXt0aHJvdyBwfSl9OmYpfX0pfSxmdW5jdGlvbihBLGUsbCl7''@;'; put 'put ''dmFyIHI9bCgwKSxhPWwoOTEpLGM9bCgxMTQpO3Ioci5TLCJQcm9taXNlIix7dHJ5OmZ1bmN0aW9uKG8pe3ZhciBoPWEuZih0aGlzKSxmPWMobyk7cmV0dXJuKGYuZT9oLnJlamVjdDpoLnJlc29sdmUpKGYudiksaC5wcm9taXNlfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1s''@;'; put 'put ''KDEpLGM9ci5rZXksbz1yLnNldDtyLmV4cCh7ZGVmaW5lTWV0YWRhdGE6ZnVuY3Rpb24oZixnLHUscCl7byhmLGcsYSh1KSxjKHApKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjgpLGE9bCgxKSxjPXIua2V5LG89ci5tYXAsaD1yLnN0b3JlO3IuZXhwKHtkZWxldGVNZXRhZGF0YTpm''@;'; put 'put ''dW5jdGlvbihnLHUpe3ZhciBwPWFyZ3VtZW50cy5sZW5ndGg8Mz9rOmMoYXJndW1lbnRzWzJdKSx2PW8oYSh1KSxwLCExKTtpZih2PT09a3x8IXYuZGVsZXRlKGcpKXJldHVybiExO2lmKHYuc2l6ZSlyZXR1cm4hMDt2YXIgSD1oLmdldCh1KTtyZXR1cm4gSC5kZWxldGUocCksISFILnNpemV8''@;'; put 'put ''fGguZGVsZXRlKHUpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxNyksbz1yLmhhcyxoPXIuZ2V0LGY9ci5rZXksZz1mdW5jdGlvbih1LHAsdil7aWYobyh1LHAsdikpcmV0dXJuIGgodSxwLHYpO3ZhciBIPWMocCk7cmV0dXJuIG51bGwhPT1IP2codSxILHYp''@;'; put 'put ''Omt9O3IuZXhwKHtnZXRNZXRhZGF0YTpmdW5jdGlvbihwLHYpe3JldHVybiBnKHAsYSh2KSxhcmd1bWVudHMubGVuZ3RoPDM/azpmKGFyZ3VtZW50c1syXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgxMTgpLGE9bCgxMjcpLGM9bCgyOCksbz1sKDEpLGg9bCgxNyksZj1jLmtleXMs''@;'; put 'put ''Zz1jLmtleSx1PWZ1bmN0aW9uKHAsdil7dmFyIEg9ZihwLHYpLEM9aChwKTtpZihudWxsPT09QylyZXR1cm4gSDt2YXIgVj11KEMsdik7cmV0dXJuIFYubGVuZ3RoP0gubGVuZ3RoP2EobmV3IHIoSC5jb25jYXQoVikpKTpWOkh9O2MuZXhwKHtnZXRNZXRhZGF0YUtleXM6ZnVuY3Rpb24odil7''@;'; put 'put ''cmV0dXJuIHUobyh2KSxhcmd1bWVudHMubGVuZ3RoPDI/azpnKGFyZ3VtZW50c1sxXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9ci5nZXQsbz1yLmtleTtyLmV4cCh7Z2V0T3duTWV0YWRhdGE6ZnVuY3Rpb24oZixnKXtyZXR1cm4gYyhmLGEoZyksYXJndW1l''@;'; put 'put ''bnRzLmxlbmd0aDwzP2s6byhhcmd1bWVudHNbMl0pKX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMjgpLGE9bCgxKSxjPXIua2V5cyxvPXIua2V5O3IuZXhwKHtnZXRPd25NZXRhZGF0YUtleXM6ZnVuY3Rpb24oZil7cmV0dXJuIGMoYShmKSxhcmd1bWVudHMubGVuZ3RoPDI/azpvKGFy''@;'; put 'put ''Z3VtZW50c1sxXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxNyksbz1yLmhhcyxoPXIua2V5LGY9ZnVuY3Rpb24oZyx1LHApe2lmKG8oZyx1LHApKXJldHVybiEwO3ZhciB2PWModSk7cmV0dXJuIG51bGwhPT12JiZmKGcsdixwKX07ci5leHAoe2hhc01l''@;'; put 'put ''dGFkYXRhOmZ1bmN0aW9uKHUscCl7cmV0dXJuIGYodSxhKHApLGFyZ3VtZW50cy5sZW5ndGg8Mz9rOmgoYXJndW1lbnRzWzJdKSl9fSl9LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDI4KSxhPWwoMSksYz1yLmhhcyxvPXIua2V5O3IuZXhwKHtoYXNPd25NZXRhZGF0YTpmdW5jdGlvbihmLGcp''@;'; put 'put ''e3JldHVybiBjKGYsYShnKSxhcmd1bWVudHMubGVuZ3RoPDM/azpvKGFyZ3VtZW50c1syXSkpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgyOCksYT1sKDEpLGM9bCgxMCksbz1yLmtleSxoPXIuc2V0O3IuZXhwKHttZXRhZGF0YTpmdW5jdGlvbihnLHUpe3JldHVybiBmdW5jdGlvbih2''@;'; put 'put ''LEgpe2goZyx1LChIIT09az9hOmMpKHYpLG8oSCkpfX19KX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDkwKSgpLGM9bCgyKS5wcm9jZXNzLG89InByb2Nlc3MiPT1sKDE5KShjKTtyKHIuRyx7YXNhcDpmdW5jdGlvbihmKXt2YXIgZz1vJiZjLmRvbWFpbjthKGc/Zy5iaW5kKGYp''@;'; put 'put ''OmYpfX0pfSxmdW5jdGlvbihBLGUsbCl7dmFyIHI9bCgwKSxhPWwoMiksYz1sKDI2KSxvPWwoOTApKCksaD1sKDUpKCJvYnNlcnZhYmxlIiksZj1sKDEwKSxnPWwoMSksdT1sKDM5KSxwPWwoNDEpLHY9bCgxMSksSD1sKDQwKSxDPUguUkVUVVJOLFY9ZnVuY3Rpb24odyl7cmV0dXJuIG51bGw9''@;'; put 'put ''PXc/azpmKHcpfSxTPWZ1bmN0aW9uKHcpe3ZhciBOPXcuX2M7TiYmKHcuX2M9ayxOKCkpfSxfPWZ1bmN0aW9uKHcpe3JldHVybiB3Ll9vPT09a30sYj1mdW5jdGlvbih3KXtfKHcpfHwody5fbz1rLFModykpfSxNPWZ1bmN0aW9uKHcsTil7Zyh3KSx0aGlzLl9jPWssdGhpcy5fbz13LHc9bmV3''@;'; put 'put ''IHgodGhpcyk7dHJ5e3ZhciBJPU4odyksVz1JO251bGwhPUkmJigiZnVuY3Rpb24iPT10eXBlb2YgSS51bnN1YnNjcmliZT9JPWZ1bmN0aW9uKCl7Vy51bnN1YnNjcmliZSgpfTpmKEkpLHRoaXMuX2M9SSl9Y2F0Y2goTyl7cmV0dXJuIHZvaWQgdy5lcnJvcihPKX1fKHRoaXMpJiZTKHRoaXMp''@;'; put 'put ''fTtNLnByb3RvdHlwZT1wKHt9LHt1bnN1YnNjcmliZTpmdW5jdGlvbigpe2IodGhpcyl9fSk7dmFyIHg9ZnVuY3Rpb24odyl7dGhpcy5fcz13fTt4LnByb3RvdHlwZT1wKHt9LHtuZXh0OmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoIV8oSSkpe3ZhciBXPUkuX287dHJ5e3ZhciBPPVYo''@;'; put 'put ''Vy5uZXh0KTtpZihPKXJldHVybiBPLmNhbGwoVyxOKX1jYXRjaChCKXt0cnl7YihJKX1maW5hbGx5e3Rocm93IEJ9fX19LGVycm9yOmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoXyhJKSl0aHJvdyBOO3ZhciBXPUkuX287SS5fbz1rO3RyeXt2YXIgTz1WKFcuZXJyb3IpO2lmKCFPKXRo''@;'; put 'put ''cm93IE47Tj1PLmNhbGwoVyxOKX1jYXRjaChCKXt0cnl7UyhJKX1maW5hbGx5e3Rocm93IEJ9fXJldHVybiBTKEkpLE59LGNvbXBsZXRlOmZ1bmN0aW9uKE4pe3ZhciBJPXRoaXMuX3M7aWYoIV8oSSkpe3ZhciBXPUkuX287SS5fbz1rO3RyeXt2YXIgTz1WKFcuY29tcGxldGUpO049Tz9PLmNh''@;'; put 'put ''bGwoVyxOKTprfWNhdGNoKEIpe3RyeXtTKEkpfWZpbmFsbHl7dGhyb3cgQn19cmV0dXJuIFMoSSksTn19fSk7dmFyIEU9ZnVuY3Rpb24oTil7dSh0aGlzLEUsIk9ic2VydmFibGUiLCJfZiIpLl9mPWYoTil9O3AoRS5wcm90b3R5cGUse3N1YnNjcmliZTpmdW5jdGlvbihOKXtyZXR1cm4gbmV3''@;'; put 'put ''IE0oTix0aGlzLl9mKX0sZm9yRWFjaDpmdW5jdGlvbihOKXt2YXIgST10aGlzO3JldHVybiBuZXcoYy5Qcm9taXNlfHxhLlByb21pc2UpKGZ1bmN0aW9uKFcsTyl7ZihOKTt2YXIgQj1JLnN1YnNjcmliZSh7bmV4dDpmdW5jdGlvbihSKXt0cnl7cmV0dXJuIE4oUil9Y2F0Y2gobDEpe08obDEp''@;'; put 'put ''LEIudW5zdWJzY3JpYmUoKX19LGVycm9yOk8sY29tcGxldGU6V30pfSl9fSkscChFLHtmcm9tOmZ1bmN0aW9uKE4pe3ZhciBJPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6RSxXPVYoZyhOKVtoXSk7aWYoVyl7dmFyIE89ZyhXLmNhbGwoTikpO3JldHVybiBPLmNvbnN0cnVjdG9yPT09''@;'; put 'put ''ST9POm5ldyBJKGZ1bmN0aW9uKEIpe3JldHVybiBPLnN1YnNjcmliZShCKX0pfXJldHVybiBuZXcgSShmdW5jdGlvbihCKXt2YXIgUj0hMTtyZXR1cm4gbyhmdW5jdGlvbigpe2lmKCFSKXt0cnl7aWYoSChOLCExLGZ1bmN0aW9uKGwxKXtpZihCLm5leHQobDEpLFIpcmV0dXJuIEN9KT09PUMp''@;'; put 'put ''cmV0dXJufWNhdGNoKGwxKXtpZihSKXRocm93IGwxO3JldHVybiB2b2lkIEIuZXJyb3IobDEpfUIuY29tcGxldGUoKX19KSxmdW5jdGlvbigpe1I9ITB9fSl9LG9mOmZ1bmN0aW9uKCl7Zm9yKHZhciBOPTAsST1hcmd1bWVudHMubGVuZ3RoLFc9bmV3IEFycmF5KEkpO048STspV1tOXT1hcmd1''@;'; put 'put ''bWVudHNbTisrXTtyZXR1cm4gbmV3KCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzP3RoaXM6RSkoZnVuY3Rpb24oTyl7dmFyIEI9ITE7cmV0dXJuIG8oZnVuY3Rpb24oKXtpZighQil7Zm9yKHZhciBSPTA7UjxXLmxlbmd0aDsrK1IpaWYoTy5uZXh0KFdbUl0pLEIpcmV0dXJuO08uY29tcGxldGUo''@;'; put 'put ''KX19KSxmdW5jdGlvbigpe0I9ITB9fSl9fSksdihFLnByb3RvdHlwZSxoLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9KSxyKHIuRyx7T2JzZXJ2YWJsZTpFfSksbCgzOCkoIk9ic2VydmFibGUiKX0sZnVuY3Rpb24oQSxlLGwpe3ZhciByPWwoMCksYT1sKDg5KTtyKHIuRytyLkIse3NldEltbWVk''@;'; put 'put ''aWF0ZTphLnNldCxjbGVhckltbWVkaWF0ZTphLmNsZWFyfSl9LGZ1bmN0aW9uKEEsZSxsKXtmb3IodmFyIHI9bCg4NiksYT1sKDM0KSxjPWwoMTIpLG89bCgyKSxoPWwoMTEpLGY9bCg0NiksZz1sKDUpLHU9ZygiaXRlcmF0b3IiKSxwPWcoInRvU3RyaW5nVGFnIiksdj1mLkFycmF5LEg9e0NT''@;'; put 'put ''U1J1bGVMaXN0OiEwLENTU1N0eWxlRGVjbGFyYXRpb246ITEsQ1NTVmFsdWVMaXN0OiExLENsaWVudFJlY3RMaXN0OiExLERPTVJlY3RMaXN0OiExLERPTVN0cmluZ0xpc3Q6ITEsRE9NVG9rZW5MaXN0OiEwLERhdGFUcmFuc2Zlckl0ZW1MaXN0OiExLEZpbGVMaXN0OiExLEhUTUxBbGxDb2xs''@;'; put 'put ''ZWN0aW9uOiExLEhUTUxDb2xsZWN0aW9uOiExLEhUTUxGb3JtRWxlbWVudDohMSxIVE1MU2VsZWN0RWxlbWVudDohMSxNZWRpYUxpc3Q6ITAsTWltZVR5cGVBcnJheTohMSxOYW1lZE5vZGVNYXA6ITEsTm9kZUxpc3Q6ITAsUGFpbnRSZXF1ZXN0TGlzdDohMSxQbHVnaW46ITEsUGx1Z2luQXJy''@;'; put 'put ''YXk6ITEsU1ZHTGVuZ3RoTGlzdDohMSxTVkdOdW1iZXJMaXN0OiExLFNWR1BhdGhTZWdMaXN0OiExLFNWR1BvaW50TGlzdDohMSxTVkdTdHJpbmdMaXN0OiExLFNWR1RyYW5zZm9ybUxpc3Q6ITEsU291cmNlQnVmZmVyTGlzdDohMSxTdHlsZVNoZWV0TGlzdDohMCxUZXh0VHJhY2tDdWVMaXN0''@;'; put 'put ''OiExLFRleHRUcmFja0xpc3Q6ITEsVG91Y2hMaXN0OiExfSxDPWEoSCksVj0wO1Y8Qy5sZW5ndGg7VisrKXt2YXIgUyxfPUNbVl0sYj1IW19dLE09b1tfXSx4PU0mJk0ucHJvdG90eXBlO2lmKHgmJih4W3VdfHxoKHgsdSx2KSx4W3BdfHxoKHgscCxfKSxmW19dPXYsYikpZm9yKFMgaW4gcil4''@;'; put 'put ''W1NdfHxjKHgsUyxyW1NdLCEwKX19LGZ1bmN0aW9uKEEsZSxsKXt2YXIgcj1sKDIpLGE9bCgwKSxjPWwoNjApLG89W10uc2xpY2UsaD0vTVNJRSAuXC4vLnRlc3QoYyksZj1mdW5jdGlvbihnKXtyZXR1cm4gZnVuY3Rpb24odSxwKXt2YXIgdj0yPGFyZ3VtZW50cy5sZW5ndGgsSD0hIXYmJm8u''@;'; put 'put ''Y2FsbChhcmd1bWVudHMsMik7cmV0dXJuIGcodj9mdW5jdGlvbigpeygiZnVuY3Rpb24iPT10eXBlb2YgdT91OkZ1bmN0aW9uKHUpKS5hcHBseSh0aGlzLEgpfTp1LHApfX07YShhLkcrYS5CK2EuRipoLHtzZXRUaW1lb3V0OmYoci5zZXRUaW1lb3V0KSxzZXRJbnRlcnZhbDpmKHIuc2V0SW50''@;'; put 'put ''ZXJ2YWwpfSl9XSksInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGUmJm1vZHVsZS5leHBvcnRzP21vZHVsZS5leHBvcnRzPVg6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZnVuY3Rpb24oKXtyZXR1cm4gWH0pOkYxLmNvcmU9WH0pKDEsMSksd2luZG93Lk11''@;'; put 'put ''dGF0aW9uT2JzZXJ2ZXJ8fCh3aW5kb3cuTXV0YXRpb25PYnNlcnZlcj1mdW5jdGlvbihYKXtmdW5jdGlvbiBGMShDKXt0aGlzLmk9W10sdGhpcy5tPUN9ZnVuY3Rpb24gQShDKXt2YXIgUyxWPXt0eXBlOm51bGwsdGFyZ2V0Om51bGwsYWRkZWROb2RlczpbXSxyZW1vdmVkTm9kZXM6W10scHJl''@;'; put 'put ''dmlvdXNTaWJsaW5nOm51bGwsbmV4dFNpYmxpbmc6bnVsbCxhdHRyaWJ1dGVOYW1lOm51bGwsYXR0cmlidXRlTmFtZXNwYWNlOm51bGwsb2xkVmFsdWU6bnVsbH07Zm9yKFMgaW4gQylWW1NdIT09WCYmQ1tTXSE9PVgmJihWW1NdPUNbU10pO3JldHVybiBWfWZ1bmN0aW9uIGUoQyxWKXt2YXIg''@;'; put 'put ''Uz1vKEMsVik7cmV0dXJuIGZ1bmN0aW9uKF8pe3ZhciBiPV8ubGVuZ3RoO2lmKFYuYSYmMz09PUMubm9kZVR5cGUmJkMubm9kZVZhbHVlIT09Uy5hJiZfLnB1c2gobmV3IEEoe3R5cGU6ImNoYXJhY3RlckRhdGEiLHRhcmdldDpDLG9sZFZhbHVlOlMuYX0pKSxWLmImJlMuYiYmYShfLEMsUy5i''@;'; put 'put ''LFYuZiksVi5jfHxWLmcpdmFyIE09ZnVuY3Rpb24gYyhDLFYsUyxfKXtmdW5jdGlvbiBiKEUsdyxOLEksVyl7dmFyIEIsUixsMSxPPUUubGVuZ3RoLTE7Zm9yKFc9LX4oKE8tVykvMik7bDE9RS5wb3AoKTspQj1OW2wxLmpdLFI9SVtsMS5sXSxfLmMmJlcmJk1hdGguYWJzKGwxLmotbDEubCk+''@;'; put 'put ''PU8mJihDLnB1c2goQSh7dHlwZToiY2hpbGRMaXN0Iix0YXJnZXQ6dyxhZGRlZE5vZGVzOltCXSxyZW1vdmVkTm9kZXM6W0JdLG5leHRTaWJsaW5nOkIubmV4dFNpYmxpbmcscHJldmlvdXNTaWJsaW5nOkIucHJldmlvdXNTaWJsaW5nfSkpLFctLSksXy5iJiZSLmImJmEoQyxCLFIuYixfLmYp''@;'; put 'put ''LF8uYSYmMz09PUIubm9kZVR5cGUmJkIubm9kZVZhbHVlIT09Ui5hJiZDLnB1c2goQSh7dHlwZToiY2hhcmFjdGVyRGF0YSIsdGFyZ2V0OkIsb2xkVmFsdWU6Ui5hfSkpLF8uZyYmTShCLFIpfWZ1bmN0aW9uIE0oRSx3KXtmb3IodmFyIEIsUixsMSxhMSxoMSxOPUUuY2hpbGROb2RlcyxJPXcu''@;'; put 'put ''YyxXPU4ubGVuZ3RoLE89ST9JLmxlbmd0aDowLHUxPTAscDE9MCx2MT0wO3AxPFd8fHYxPE87KShhMT1OW3AxXSk9PT0oaDE9KGwxPUlbdjFdKSYmbDEubm9kZSk/KF8uYiYmbDEuYiYmYShDLGExLGwxLmIsXy5mKSxfLmEmJmwxLmEhPT1YJiZhMS5ub2RlVmFsdWUhPT1sMS5hJiZDLnB1c2go''@;'; put 'put ''QSh7dHlwZToiY2hhcmFjdGVyRGF0YSIsdGFyZ2V0OmExLG9sZFZhbHVlOmwxLmF9KSksUiYmYihSLEUsTixJLHUxKSxfLmcmJihhMS5jaGlsZE5vZGVzLmxlbmd0aHx8bDEuYyYmbDEuYy5sZW5ndGgpJiZNKGExLGwxKSxwMSsrLHYxKyspOih4PSEwLEJ8fChCPXt9LFI9W10pLGExJiYoQlts''@;'; put 'put ''MT1oKGExKV18fChCW2wxXT0hMCwtMT09PShsMT11KEksYTEsdjEsIm5vZGUiKSk/Xy5jJiYoQy5wdXNoKEEoe3R5cGU6ImNoaWxkTGlzdCIsdGFyZ2V0OkUsYWRkZWROb2RlczpbYTFdLG5leHRTaWJsaW5nOmExLm5leHRTaWJsaW5nLHByZXZpb3VzU2libGluZzphMS5wcmV2aW91c1NpYmxp''@;'; put 'put ''bmd9KSksdTErKyk6Ui5wdXNoKHtqOnAxLGw6bDF9KSkscDErKyksaDEmJmgxIT09TltwMV0mJihCW2wxPWgoaDEpXXx8KEJbbDFdPSEwLC0xPT09KGwxPXUoTixoMSxwMSkpP18uYyYmKEMucHVzaChBKHt0eXBlOiJjaGlsZExpc3QiLHRhcmdldDp3Lm5vZGUscmVtb3ZlZE5vZGVzOltoMV0s''@;'; put 'put ''bmV4dFNpYmxpbmc6SVt2MSsxXSxwcmV2aW91c1NpYmxpbmc6SVt2MS0xXX0pKSx1MS0tKTpSLnB1c2goe2o6bDEsbDp2MX0pKSx2MSsrKSk7UiYmYihSLEUsTixJLHUxKX12YXIgeDtyZXR1cm4gTShWLFMpLHh9KF8sQyxTLFYpOyhNfHxfLmxlbmd0aCE9PWIpJiYoUz1vKEMsVikpfX1mdW5j''@;'; put 'put ''dGlvbiBhKEMsVixTLF8pe2Zvcih2YXIgeCxFLGI9e30sTT1WLmF0dHJpYnV0ZXMsdz1NLmxlbmd0aDt3LS07KUU9KHg9TVt3XSkubmFtZSxfJiZfW0VdPT09WHx8KHYoVix4KSE9PVNbRV0mJkMucHVzaChBKHt0eXBlOiJhdHRyaWJ1dGVzIix0YXJnZXQ6VixhdHRyaWJ1dGVOYW1lOkUsb2xk''@;'; put 'put ''VmFsdWU6U1tFXSxhdHRyaWJ1dGVOYW1lc3BhY2U6eC5uYW1lc3BhY2VVUkl9KSksYltFXT0hMCk7Zm9yKEUgaW4gUyliW0VdfHxDLnB1c2goQSh7dGFyZ2V0OlYsdHlwZToiYXR0cmlidXRlcyIsYXR0cmlidXRlTmFtZTpFLG9sZFZhbHVlOlNbRV19KSl9ZnVuY3Rpb24gbyhDLFYpe3ZhciBT''@;'; put 'put ''PSEwO3JldHVybiBmdW5jdGlvbiBfKGIpe3ZhciBNPXtub2RlOmJ9O3JldHVybiFWLmF8fDMhPT1iLm5vZGVUeXBlJiY4IT09Yi5ub2RlVHlwZT8oVi5iJiZTJiYxPT09Yi5ub2RlVHlwZSYmKE0uYj1nKGIuYXR0cmlidXRlcyxmdW5jdGlvbih4LEUpe3JldHVybighVi5mfHxWLmZbRS5uYW1l''@;'; put 'put ''XSkmJih4W0UubmFtZV09dihiLEUpKSx4fSx7fSkpLFMmJihWLmN8fFYuYXx8Vi5iJiZWLmcpJiYoTS5jPWZ1bmN0aW9uIGYoQyxWKXtmb3IodmFyIFM9W10sXz0wO188Qy5sZW5ndGg7XysrKVNbX109VihDW19dLF8sQyk7cmV0dXJuIFN9KGIuY2hpbGROb2RlcyxfKSksUz1WLmcpOk0uYT1i''@;'; put 'put ''Lm5vZGVWYWx1ZSxNfShDKX1mdW5jdGlvbiBoKEMpe3RyeXtyZXR1cm4gQy5pZHx8KEMubW9faWQ9Qy5tb19pZHx8SCsrKX1jYXRjaChWKXt0cnl7cmV0dXJuIEMubm9kZVZhbHVlfWNhdGNoKFMpe3JldHVybiBIKyt9fX1mdW5jdGlvbiBnKEMsVixTKXtmb3IodmFyIF89MDtfPEMubGVuZ3Ro''@;'; put 'put ''O18rKylTPVYoUyxDW19dLF8sQyk7cmV0dXJuIFN9ZnVuY3Rpb24gdShDLFYsUyxfKXtmb3IoO1M8Qy5sZW5ndGg7UysrKWlmKChfP0NbU11bX106Q1tTXSk9PT1WKXJldHVybiBTO3JldHVybi0xfUYxLl9wZXJpb2Q9MzAsRjEucHJvdG90eXBlPXtvYnNlcnZlOmZ1bmN0aW9uKEMsVil7Zm9y''@;'; put 'put ''KHZhciBTPXtiOiEhKFYuYXR0cmlidXRlc3x8Vi5hdHRyaWJ1dGVGaWx0ZXJ8fFYuYXR0cmlidXRlT2xkVmFsdWUpLGM6ISFWLmNoaWxkTGlzdCxnOiEhVi5zdWJ0cmVlLGE6ISghVi5jaGFyYWN0ZXJEYXRhJiYhVi5jaGFyYWN0ZXJEYXRhT2xkVmFsdWUpfSxfPXRoaXMuaSxiPTA7YjxfLmxl''@;'; put 'put ''bmd0aDtiKyspX1tiXS5zPT09QyYmXy5zcGxpY2UoYiwxKTtWLmF0dHJpYnV0ZUZpbHRlciYmKFMuZj1nKFYuYXR0cmlidXRlRmlsdGVyLGZ1bmN0aW9uKE0seCl7cmV0dXJuIE1beF09ITAsTX0se30pKSxfLnB1c2goe3M6QyxvOmUoQyxTKX0pLHRoaXMuaHx8ZnVuY3Rpb24gayhDKXshZnVu''@;'; put 'put ''Y3Rpb24gVigpe3ZhciBTPUMudGFrZVJlY29yZHMoKTtTLmxlbmd0aCYmQy5tKFMsQyksQy5oPXNldFRpbWVvdXQoVixGMS5fcGVyaW9kKX0oKX0odGhpcyl9LHRha2VSZWNvcmRzOmZ1bmN0aW9uKCl7Zm9yKHZhciBDPVtdLFY9dGhpcy5pLFM9MDtTPFYubGVuZ3RoO1MrKylWW1NdLm8oQyk7''@;'; put 'put ''cmV0dXJuIEN9LGRpc2Nvbm5lY3Q6ZnVuY3Rpb24oKXt0aGlzLmk9W10sY2xlYXJUaW1lb3V0KHRoaXMuaCksdGhpcy5oPW51bGx9fTt2YXIgcD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpIik7cC5zdHlsZS50b3A9MDt2YXIgdj0ocD0ibnVsbCIhPXAuYXR0cmlidXRlcy5zdHlsZS52YWx1''@;'; put 'put ''ZSk/ZnVuY3Rpb24gbChDLFYpe3JldHVybiBWLnZhbHVlfTpmdW5jdGlvbiByKEMsVil7cmV0dXJuInN0eWxlIiE9PVYubmFtZT9WLnZhbHVlOkMuc3R5bGUuY3NzVGV4dH0sSD0xO3JldHVybiBGMX0odm9pZCAwKSksZnVuY3Rpb24oKXt2YXIgayxBLFg9e30sRjE9e307KGZ1bmN0aW9uKGss''@;'; put 'put ''QSl7ZnVuY3Rpb24gbCgpe3RoaXMuX2RlbGF5PTAsdGhpcy5fZW5kRGVsYXk9MCx0aGlzLl9maWxsPSJub25lIix0aGlzLl9pdGVyYXRpb25TdGFydD0wLHRoaXMuX2l0ZXJhdGlvbnM9MSx0aGlzLl9kdXJhdGlvbj0wLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2RpcmVjdGlvbj0ibm9y''@;'; put 'put ''bWFsIix0aGlzLl9lYXNpbmc9ImxpbmVhciIsdGhpcy5fZWFzaW5nRnVuY3Rpb249d31mdW5jdGlvbiByKCl7cmV0dXJuIGsuaXNEZXByZWNhdGVkKCJJbnZhbGlkIHRpbWluZyBpbnB1dHMiLCIyMDE2LTAzLTAyIiwiVHlwZUVycm9yIGV4Y2VwdGlvbnMgd2lsbCBiZSB0aHJvd24gaW5zdGVh''@;'; put 'put ''ZC4iLCEwKX1mdW5jdGlvbiBhKGosYzEsVjEpe3ZhciBfMT1uZXcgbDtyZXR1cm4gYzEmJihfMS5maWxsPSJib3RoIixfMS5kdXJhdGlvbj0iYXV0byIpLCJudW1iZXIiIT10eXBlb2Yganx8aXNOYU4oaik/dm9pZCAwIT09aiYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoaikuZm9yRWFj''@;'; put 'put ''aChmdW5jdGlvbihRKXtpZigiYXV0byIhPWpbUV0pe2lmKCgibnVtYmVyIj09dHlwZW9mIF8xW1FdfHwiZHVyYXRpb24iPT1RKSYmKCJudW1iZXIiIT10eXBlb2YgaltRXXx8aXNOYU4oaltRXSkpfHwiZmlsbCI9PVEmJi0xPT14LmluZGV4T2YoaltRXSl8fCJkaXJlY3Rpb24iPT1RJiYtMT09''@;'; put 'put ''RS5pbmRleE9mKGpbUV0pfHwicGxheWJhY2tSYXRlIj09USYmMSE9PWpbUV0mJmsuaXNEZXByZWNhdGVkKCJBbmltYXRpb25FZmZlY3RUaW1pbmcucGxheWJhY2tSYXRlIiwiMjAxNC0xMS0yOCIsIlVzZSBBbmltYXRpb24ucGxheWJhY2tSYXRlIGluc3RlYWQuIikpcmV0dXJuO18xW1FdPWpb''@;'; put 'put ''UV19fSk6XzEuZHVyYXRpb249aixfMX1mdW5jdGlvbiBoKGosYzEsVjEsXzEpe3JldHVybiBqPDB8fGo+MXx8VjE8MHx8VjE+MT93OmZ1bmN0aW9uKFEpe2Z1bmN0aW9uIHMxKEQsWixUKXtyZXR1cm4gMypEKigxLVQpKigxLVQpKlQrMypaKigxLVQpKlQqVCtUKlQqVH1pZihRPD0wKXt2YXIg''@;'; put 'put ''bTE9MDtyZXR1cm4gaj4wP20xPWMxL2o6IWMxJiZWMT4wJiYobTE9XzEvVjEpLG0xKlF9aWYoUT49MSl7dmFyIGIxPTA7cmV0dXJuIFYxPDE/YjE9KF8xLTEpLyhWMS0xKToxPT1WMSYmajwxJiYoYjE9KGMxLTEpLyhqLTEpKSwxK2IxKihRLTEpfWZvcih2YXIgQjE9MCwkPTE7QjE8JDspe3Zh''@;'; put 'put ''ciB6PShCMSskKS8yLHk9czEoaixWMSx6KTtpZihNYXRoLmFicyhRLXkpPDFlLTUpcmV0dXJuIHMxKGMxLF8xLHopO3k8UT9CMT16OiQ9en1yZXR1cm4gczEoYzEsXzEseil9fWZ1bmN0aW9uIGYoaixjMSl7cmV0dXJuIGZ1bmN0aW9uKFYxKXtpZihWMT49MSlyZXR1cm4gMTt2YXIgXzE9MS9q''@;'; put 'put ''O3JldHVybihWMSs9YzEqXzEpLVYxJV8xfX1mdW5jdGlvbiBnKGope0J8fChCPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLnN0eWxlKSxCLmFuaW1hdGlvblRpbWluZ0Z1bmN0aW9uPSIiLEIuYW5pbWF0aW9uVGltaW5nRnVuY3Rpb249ajt2YXIgYzE9Qi5hbmltYXRpb25UaW1pbmdG''@;'; put 'put ''dW5jdGlvbjtpZigiIj09YzEmJnIoKSl0aHJvdyBuZXcgVHlwZUVycm9yKGorIiBpcyBub3QgYSB2YWxpZCB2YWx1ZSBmb3IgZWFzaW5nIik7cmV0dXJuIGMxfWZ1bmN0aW9uIHUoail7aWYoImxpbmVhciI9PWopcmV0dXJuIHc7dmFyIGMxPWwxLmV4ZWMoaik7aWYoYzEpcmV0dXJuIGguYXBw''@;'; put 'put ''bHkodGhpcyxjMS5zbGljZSgxKS5tYXAoTnVtYmVyKSk7dmFyIFYxPWExLmV4ZWMoaik7aWYoVjEpcmV0dXJuIGYoTnVtYmVyKFYxWzFdKSxXKTt2YXIgXzE9aDEuZXhlYyhqKTtyZXR1cm4gXzE/ZihOdW1iZXIoXzFbMV0pLHtzdGFydDpOLG1pZGRsZTpJLGVuZDpXfVtfMVsyXV0pOk9bal18''@;'; put 'put ''fHd9ZnVuY3Rpb24gSChqLGMxLFYxKXtpZihudWxsPT1jMSlyZXR1cm4gdTE7dmFyIF8xPVYxLmRlbGF5K2orVjEuZW5kRGVsYXk7cmV0dXJuIGMxPE1hdGgubWluKFYxLmRlbGF5LF8xKT9wMTpjMT49TWF0aC5taW4oVjEuZGVsYXkraixfMSk/djE6RTF9dmFyIHg9ImJhY2t3YXJkc3xmb3J3''@;'; put 'put ''YXJkc3xib3RofG5vbmUiLnNwbGl0KCJ8IiksRT0icmV2ZXJzZXxhbHRlcm5hdGV8YWx0ZXJuYXRlLXJldmVyc2UiLnNwbGl0KCJ8Iiksdz1mdW5jdGlvbihqKXtyZXR1cm4gan07bC5wcm90b3R5cGU9e19zZXRNZW1iZXI6ZnVuY3Rpb24oaixjMSl7dGhpc1siXyIral09YzEsdGhpcy5fZWZm''@;'; put 'put ''ZWN0JiYodGhpcy5fZWZmZWN0Ll90aW1pbmdJbnB1dFtqXT1jMSx0aGlzLl9lZmZlY3QuX3RpbWluZz1rLm5vcm1hbGl6ZVRpbWluZ0lucHV0KHRoaXMuX2VmZmVjdC5fdGltaW5nSW5wdXQpLHRoaXMuX2VmZmVjdC5hY3RpdmVEdXJhdGlvbj1rLmNhbGN1bGF0ZUFjdGl2ZUR1cmF0aW9uKHRo''@;'; put 'put ''aXMuX2VmZmVjdC5fdGltaW5nKSx0aGlzLl9lZmZlY3QuX2FuaW1hdGlvbiYmdGhpcy5fZWZmZWN0Ll9hbmltYXRpb24uX3JlYnVpbGRVbmRlcmx5aW5nQW5pbWF0aW9uKCkpfSxnZXQgcGxheWJhY2tSYXRlKCl7cmV0dXJuIHRoaXMuX3BsYXliYWNrUmF0ZX0sc2V0IGRlbGF5KGope3RoaXMu''@;'; put 'put ''X3NldE1lbWJlcigiZGVsYXkiLGopfSxnZXQgZGVsYXkoKXtyZXR1cm4gdGhpcy5fZGVsYXl9LHNldCBlbmREZWxheShqKXt0aGlzLl9zZXRNZW1iZXIoImVuZERlbGF5IixqKX0sZ2V0IGVuZERlbGF5KCl7cmV0dXJuIHRoaXMuX2VuZERlbGF5fSxzZXQgZmlsbChqKXt0aGlzLl9zZXRNZW1i''@;'; put 'put ''ZXIoImZpbGwiLGopfSxnZXQgZmlsbCgpe3JldHVybiB0aGlzLl9maWxsfSxzZXQgaXRlcmF0aW9uU3RhcnQoail7aWYoKGlzTmFOKGopfHxqPDApJiZyKCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiaXRlcmF0aW9uU3RhcnQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIsIHJlY2VpdmVk''@;'; put 'put ''OiAiK2opO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9uU3RhcnQiLGopfSxnZXQgaXRlcmF0aW9uU3RhcnQoKXtyZXR1cm4gdGhpcy5faXRlcmF0aW9uU3RhcnR9LHNldCBkdXJhdGlvbihqKXtpZigiYXV0byIhPWomJihpc05hTihqKXx8ajwwKSYmcigpKXRocm93IG5ldyBUeXBlRXJyb3Io''@;'; put 'put ''ImR1cmF0aW9uIG11c3QgYmUgbm9uLW5lZ2F0aXZlIG9yIGF1dG8sIHJlY2VpdmVkOiAiK2opO3RoaXMuX3NldE1lbWJlcigiZHVyYXRpb24iLGopfSxnZXQgZHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZHVyYXRpb259LHNldCBkaXJlY3Rpb24oail7dGhpcy5fc2V0TWVtYmVyKCJkaXJlY3Rp''@;'; put 'put ''b24iLGopfSxnZXQgZGlyZWN0aW9uKCl7cmV0dXJuIHRoaXMuX2RpcmVjdGlvbn0sc2V0IGVhc2luZyhqKXt0aGlzLl9lYXNpbmdGdW5jdGlvbj11KGcoaikpLHRoaXMuX3NldE1lbWJlcigiZWFzaW5nIixqKX0sZ2V0IGVhc2luZygpe3JldHVybiB0aGlzLl9lYXNpbmd9LHNldCBpdGVyYXRp''@;'; put 'put ''b25zKGope2lmKChpc05hTihqKXx8ajwwKSYmcigpKXRocm93IG5ldyBUeXBlRXJyb3IoIml0ZXJhdGlvbnMgbXVzdCBiZSBub24tbmVnYXRpdmUsIHJlY2VpdmVkOiAiK2opO3RoaXMuX3NldE1lbWJlcigiaXRlcmF0aW9ucyIsail9LGdldCBpdGVyYXRpb25zKCl7cmV0dXJuIHRoaXMuX2l0''@;'; put 'put ''ZXJhdGlvbnN9fTt2YXIgTj0xLEk9LjUsVz0wLE89e2Vhc2U6aCguMjUsLjEsLjI1LDEpLCJlYXNlLWluIjpoKC40MiwwLDEsMSksImVhc2Utb3V0IjpoKDAsMCwuNTgsMSksImVhc2UtaW4tb3V0IjpoKC40MiwwLC41OCwxKSwic3RlcC1zdGFydCI6ZigxLE4pLCJzdGVwLW1pZGRsZSI6Zigx''@;'; put 'put ''LEkpLCJzdGVwLWVuZCI6ZigxLFcpfSxCPW51bGwsUj0iXFxzKigtP1xcZCtcXC4/XFxkKnwtP1xcLlxcZCspXFxzKiIsbDE9bmV3IFJlZ0V4cCgiY3ViaWMtYmV6aWVyXFwoIitSKyIsIitSKyIsIitSKyIsIitSKyJcXCkiKSxhMT0vc3RlcHNcKFxzKihcZCspXHMqXCkvLGgxPS9zdGVwc1wo''@;'; put 'put ''XHMqKFxkKylccyosXHMqKHN0YXJ0fG1pZGRsZXxlbmQpXHMqXCkvLHUxPTAscDE9MSx2MT0yLEUxPTM7ay5jbG9uZVRpbWluZ0lucHV0PWZ1bmN0aW9uIGUoail7aWYoIm51bWJlciI9PXR5cGVvZiBqKXJldHVybiBqO3ZhciBjMT17fTtmb3IodmFyIFYxIGluIGopYzFbVjFdPWpbVjFdO3Jl''@;'; put 'put ''dHVybiBjMX0say5tYWtlVGltaW5nPWEsay5udW1lcmljVGltaW5nVG9PYmplY3Q9ZnVuY3Rpb24gYyhqKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIGomJihqPWlzTmFOKGopP3tkdXJhdGlvbjowfTp7ZHVyYXRpb246an0pLGp9LGsubm9ybWFsaXplVGltaW5nSW5wdXQ9ZnVuY3Rpb24gbyhq''@;'; put 'put ''LGMxKXtyZXR1cm4gYShqPWsubnVtZXJpY1RpbWluZ1RvT2JqZWN0KGopLGMxKX0say5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbj1mdW5jdGlvbiBwKGope3JldHVybiBNYXRoLmFicyhmdW5jdGlvbiB2KGope3JldHVybiAwPT09ai5kdXJhdGlvbnx8MD09PWouaXRlcmF0aW9ucz8wOmouZHVy''@;'; put 'put ''YXRpb24qai5pdGVyYXRpb25zfShqKS9qLnBsYXliYWNrUmF0ZSl9LGsuY2FsY3VsYXRlSXRlcmF0aW9uUHJvZ3Jlc3M9ZnVuY3Rpb24gTShqLGMxLFYxKXt2YXIgXzE9SChqLGMxLFYxKSxRPWZ1bmN0aW9uIEMoaixjMSxWMSxfMSxRKXtzd2l0Y2goXzEpe2Nhc2UgcDE6cmV0dXJuImJhY2t3''@;'; put 'put ''YXJkcyI9PWMxfHwiYm90aCI9PWMxPzA6bnVsbDtjYXNlIEUxOnJldHVybiBWMS1RO2Nhc2UgdjE6cmV0dXJuImZvcndhcmRzIj09YzF8fCJib3RoIj09YzE/ajpudWxsO2Nhc2UgdTE6cmV0dXJuIG51bGx9fShqLFYxLmZpbGwsYzEsXzEsVjEuZGVsYXkpO2lmKG51bGw9PT1RKXJldHVybiBu''@;'; put 'put ''dWxsO3ZhciBzMT1mdW5jdGlvbiBWKGosYzEsVjEsXzEsUSl7dmFyIHMxPVE7cmV0dXJuIDA9PT1qP2MxIT09cDEmJihzMSs9VjEpOnMxKz1fMS9qLHMxfShWMS5kdXJhdGlvbixfMSxWMS5pdGVyYXRpb25zLFEsVjEuaXRlcmF0aW9uU3RhcnQpLG0xPWZ1bmN0aW9uIFMoaixjMSxWMSxfMSxR''@;'; put 'put ''LHMxKXt2YXIgbTE9aj09PTEvMD9jMSUxOmolMTtyZXR1cm4gMCE9PW0xfHxWMSE9PXYxfHwwPT09XzF8fDA9PT1RJiYwIT09czF8fChtMT0xKSxtMX0oczEsVjEuaXRlcmF0aW9uU3RhcnQsXzEsVjEuaXRlcmF0aW9ucyxRLFYxLmR1cmF0aW9uKSxiMT1mdW5jdGlvbiBfKGosYzEsVjEsXzEp''@;'; put 'put ''e3JldHVybiBqPT09djEmJmMxPT09MS8wPzEvMDoxPT09VjE/TWF0aC5mbG9vcihfMSktMTpNYXRoLmZsb29yKF8xKX0oXzEsVjEuaXRlcmF0aW9ucyxtMSxzMSksQjE9ZnVuY3Rpb24gYihqLGMxLFYxKXt2YXIgXzE9ajtpZigibm9ybWFsIiE9PWomJiJyZXZlcnNlIiE9PWope3ZhciBRPWMx''@;'; put 'put ''OyJhbHRlcm5hdGUtcmV2ZXJzZSI9PT1qJiYoUSs9MSksXzE9Im5vcm1hbCIsUSE9PTEvMCYmUSUyIT0wJiYoXzE9InJldmVyc2UiKX1yZXR1cm4ibm9ybWFsIj09PV8xP1YxOjEtVjF9KFYxLmRpcmVjdGlvbixiMSxtMSk7cmV0dXJuIFYxLl9lYXNpbmdGdW5jdGlvbihCMSl9LGsuY2FsY3Vs''@;'; put 'put ''YXRlUGhhc2U9SCxrLm5vcm1hbGl6ZUVhc2luZz1nLGsucGFyc2VFYXNpbmdGdW5jdGlvbj11fSkoWCksZnVuY3Rpb24oayxBKXtmdW5jdGlvbiBlKHUscCl7cmV0dXJuIHUgaW4gZyYmZ1t1XVtwXXx8cH1mdW5jdGlvbiByKHUscCx2KXtpZighZnVuY3Rpb24gbCh1KXtyZXR1cm4iZGlzcGxh''@;'; put 'put ''eSI9PT11fHwwPT09dS5sYXN0SW5kZXhPZigiYW5pbWF0aW9uIiwwKXx8MD09PXUubGFzdEluZGV4T2YoInRyYW5zaXRpb24iLDApfSh1KSl7dmFyIEg9b1t1XTtpZihIKWZvcih2YXIgQyBpbiBoLnN0eWxlW3VdPXAsSCl7dmFyIFY9SFtDXTt2W1ZdPWUoVixoLnN0eWxlW1ZdKX1lbHNlIHZb''@;'; put 'put ''dV09ZSh1LHApfX1mdW5jdGlvbiBhKHUpe3ZhciBwPVtdO2Zvcih2YXIgdiBpbiB1KWlmKCEodiBpblsiZWFzaW5nIiwib2Zmc2V0IiwiY29tcG9zaXRlIl0pKXt2YXIgSD11W3ZdO0FycmF5LmlzQXJyYXkoSCl8fChIPVtIXSk7Zm9yKHZhciBDLFY9SC5sZW5ndGgsUz0wO1M8VjtTKyspKEM9''@;'; put 'put ''e30pLm9mZnNldD0ib2Zmc2V0ImluIHU/dS5vZmZzZXQ6MT09Vj8xOlMvKFYtMSksImVhc2luZyJpbiB1JiYoQy5lYXNpbmc9dS5lYXNpbmcpLCJjb21wb3NpdGUiaW4gdSYmKEMuY29tcG9zaXRlPXUuY29tcG9zaXRlKSxDW3ZdPUhbU10scC5wdXNoKEMpfXJldHVybiBwLnNvcnQoZnVuY3Rp''@;'; put 'put ''b24oXyxiKXtyZXR1cm4gXy5vZmZzZXQtYi5vZmZzZXR9KSxwfXZhciBvPXtiYWNrZ3JvdW5kOlsiYmFja2dyb3VuZEltYWdlIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZEF0dGFjaG1lbnQiLCJiYWNrZ3JvdW5k''@;'; put 'put ''T3JpZ2luIiwiYmFja2dyb3VuZENsaXAiLCJiYWNrZ3JvdW5kQ29sb3IiXSxib3JkZXI6WyJib3JkZXJUb3BDb2xvciIsImJvcmRlclRvcFN0eWxlIiwiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJSaWdodENvbG9yIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3Jk''@;'; put 'put ''ZXJCb3R0b21Db2xvciIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJib3JkZXJMZWZ0Q29sb3IiLCJib3JkZXJMZWZ0U3R5bGUiLCJib3JkZXJMZWZ0V2lkdGgiXSxib3JkZXJCb3R0b206WyJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRlckJvdHRvbVN0eWxlIiwi''@;'; put 'put ''Ym9yZGVyQm90dG9tQ29sb3IiXSxib3JkZXJDb2xvcjpbImJvcmRlclRvcENvbG9yIiwiYm9yZGVyUmlnaHRDb2xvciIsImJvcmRlckJvdHRvbUNvbG9yIiwiYm9yZGVyTGVmdENvbG9yIl0sYm9yZGVyTGVmdDpbImJvcmRlckxlZnRXaWR0aCIsImJvcmRlckxlZnRTdHlsZSIsImJvcmRlckxl''@;'; put 'put ''ZnRDb2xvciJdLGJvcmRlclJhZGl1czpbImJvcmRlclRvcExlZnRSYWRpdXMiLCJib3JkZXJUb3BSaWdodFJhZGl1cyIsImJvcmRlckJvdHRvbVJpZ2h0UmFkaXVzIiwiYm9yZGVyQm90dG9tTGVmdFJhZGl1cyJdLGJvcmRlclJpZ2h0OlsiYm9yZGVyUmlnaHRXaWR0aCIsImJvcmRlclJpZ2h0''@;'; put 'put ''U3R5bGUiLCJib3JkZXJSaWdodENvbG9yIl0sYm9yZGVyVG9wOlsiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJUb3BTdHlsZSIsImJvcmRlclRvcENvbG9yIl0sYm9yZGVyV2lkdGg6WyJib3JkZXJUb3BXaWR0aCIsImJvcmRlclJpZ2h0V2lkdGgiLCJib3JkZXJCb3R0b21XaWR0aCIsImJvcmRl''@;'; put 'put ''ckxlZnRXaWR0aCJdLGZsZXg6WyJmbGV4R3JvdyIsImZsZXhTaHJpbmsiLCJmbGV4QmFzaXMiXSxmb250OlsiZm9udEZhbWlseSIsImZvbnRTaXplIiwiZm9udFN0eWxlIiwiZm9udFZhcmlhbnQiLCJmb250V2VpZ2h0IiwibGluZUhlaWdodCJdLG1hcmdpbjpbIm1hcmdpblRvcCIsIm1hcmdp''@;'; put 'put ''blJpZ2h0IiwibWFyZ2luQm90dG9tIiwibWFyZ2luTGVmdCJdLG91dGxpbmU6WyJvdXRsaW5lQ29sb3IiLCJvdXRsaW5lU3R5bGUiLCJvdXRsaW5lV2lkdGgiXSxwYWRkaW5nOlsicGFkZGluZ1RvcCIsInBhZGRpbmdSaWdodCIsInBhZGRpbmdCb3R0b20iLCJwYWRkaW5nTGVmdCJdfSxoPWRv''@;'; put 'put ''Y3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsImRpdiIpLGY9e3RoaW46IjFweCIsbWVkaXVtOiIzcHgiLHRoaWNrOiI1cHgifSxnPXtib3JkZXJCb3R0b21XaWR0aDpmLGJvcmRlckxlZnRXaWR0aDpmLGJvcmRlclJpZ2h0V2lkdGg6Zixib3Jk''@;'; put 'put ''ZXJUb3BXaWR0aDpmLGZvbnRTaXplOnsieHgtc21hbGwiOiI2MCUiLCJ4LXNtYWxsIjoiNzUlIixzbWFsbDoiODklIixtZWRpdW06IjEwMCUiLGxhcmdlOiIxMjAlIiwieC1sYXJnZSI6IjE1MCUiLCJ4eC1sYXJnZSI6IjIwMCUifSxmb250V2VpZ2h0Ontub3JtYWw6IjQwMCIsYm9sZDoiNzAw''@;'; put 'put ''In0sb3V0bGluZVdpZHRoOmYsdGV4dFNoYWRvdzp7bm9uZToiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQifSxib3hTaGFkb3c6e25vbmU6IjBweCAwcHggMHB4IDBweCB0cmFuc3BhcmVudCJ9fTtrLmNvbnZlcnRUb0FycmF5Rm9ybT1hLGsubm9ybWFsaXplS2V5ZnJhbWVzPWZ1bmN0aW9uIGMo''@;'; put 'put ''dSl7aWYobnVsbD09dSlyZXR1cm5bXTt3aW5kb3cuU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJkFycmF5LnByb3RvdHlwZS5mcm9tJiZ1W1N5bWJvbC5pdGVyYXRvcl0mJih1PUFycmF5LmZyb20odSkpLEFycmF5LmlzQXJyYXkodSl8fCh1PWEodSkpO2Zvcih2YXIgdj11Lm1hcChmdW5jdGlv''@;'; put 'put ''bihfKXt2YXIgYj17fTtmb3IodmFyIE0gaW4gXyl7dmFyIHg9X1tNXTtpZigib2Zmc2V0Ij09TSl7aWYobnVsbCE9eCl7aWYoeD1OdW1iZXIoeCksIWlzRmluaXRlKHgpKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lIG9mZnNldHMgbXVzdCBiZSBudW1iZXJzLiIpO2lmKHg8MHx8eD4x''@;'; put 'put ''KXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lIG9mZnNldHMgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDEuIil9fWVsc2UgaWYoImNvbXBvc2l0ZSI9PU0pe2lmKCJhZGQiPT14fHwiYWNjdW11bGF0ZSI9PXgpdGhyb3d7dHlwZTpET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIsbmFt''@;'; put 'put ''ZToiTm90U3VwcG9ydGVkRXJyb3IiLG1lc3NhZ2U6ImFkZCBjb21wb3NpdGluZyBpcyBub3Qgc3VwcG9ydGVkIn07aWYoInJlcGxhY2UiIT14KXRocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgY29tcG9zaXRlIG1vZGUgIit4KyIuIil9ZWxzZSB4PSJlYXNpbmciPT1NP2subm9ybWFsaXpl''@;'; put 'put ''RWFzaW5nKHgpOiIiK3g7cihNLHgsYil9cmV0dXJuIG51bGw9PWIub2Zmc2V0JiYoYi5vZmZzZXQ9bnVsbCksbnVsbD09Yi5lYXNpbmcmJihiLmVhc2luZz0ibGluZWFyIiksYn0pLEg9ITAsQz0tMS8wLFY9MDtWPHYubGVuZ3RoO1YrKyl7dmFyIFM9dltWXS5vZmZzZXQ7aWYobnVsbCE9Uyl7''@;'; put 'put ''aWYoUzxDKXRocm93IG5ldyBUeXBlRXJyb3IoIktleWZyYW1lcyBhcmUgbm90IGxvb3NlbHkgc29ydGVkIGJ5IG9mZnNldC4gU29ydCBvciBzcGVjaWZ5IG9mZnNldHMuIik7Qz1TfWVsc2UgSD0hMX1yZXR1cm4gdj12LmZpbHRlcihmdW5jdGlvbihfKXtyZXR1cm4gXy5vZmZzZXQ+PTAmJl8u''@;'; put 'put ''b2Zmc2V0PD0xfSksSHx8ZnVuY3Rpb24gcCgpe3ZhciBfPXYubGVuZ3RoO251bGw9PXZbXy0xXS5vZmZzZXQmJih2W18tMV0ub2Zmc2V0PTEpLF8+MSYmbnVsbD09dlswXS5vZmZzZXQmJih2WzBdLm9mZnNldD0wKTtmb3IodmFyIGI9MCxNPXZbMF0ub2Zmc2V0LHg9MTt4PF87eCsrKXt2YXIg''@;'; put 'put ''RT12W3hdLm9mZnNldDtpZihudWxsIT1FKXtmb3IodmFyIHc9MTt3PHgtYjt3KyspdltiK3ddLm9mZnNldD1NKyhFLU0pKncvKHgtYik7Yj14LE09RX19fSgpLHZ9fShYKSxBPXt9LChrPVgpLmlzRGVwcmVjYXRlZD1mdW5jdGlvbihlLGwscixhKXt2YXIgYz1hPyJhcmUiOiJpcyIsbz1uZXcg''@;'; put 'put ''RGF0ZSxoPW5ldyBEYXRlKGwpO3JldHVybiBoLnNldE1vbnRoKGguZ2V0TW9udGgoKSszKSwhKG88aCYmKGUgaW4gQXx8Y29uc29sZS53YXJuKCJXZWIgQW5pbWF0aW9uczogIitlKyIgIitjKyIgZGVwcmVjYXRlZCBhbmQgd2lsbCBzdG9wIHdvcmtpbmcgb24gIitoLnRvRGF0ZVN0cmluZygp''@;'; put 'put ''KyIuICIrciksQVtlXT0hMCwxKSl9LGsuZGVwcmVjYXRlZD1mdW5jdGlvbihlLGwscixhKXt2YXIgYz1hPyJhcmUiOiJpcyI7aWYoay5pc0RlcHJlY2F0ZWQoZSxsLHIsYSkpdGhyb3cgbmV3IEVycm9yKGUrIiAiK2MrIiBubyBsb25nZXIgc3VwcG9ydGVkLiAiK3IpfSxmdW5jdGlvbigpe2lm''@;'; put 'put ''KGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hbmltYXRlKXt2YXIgaz1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYW5pbWF0ZShbXSwwKSxBPSEwO2lmKGsmJihBPSExLCJwbGF5fGN1cnJlbnRUaW1lfHBhdXNlfHJldmVyc2V8cGxheWJhY2tSYXRlfGNhbmNlbHxmaW5pc2h8c3RhcnRUaW1l''@;'; put 'put ''fHBsYXlTdGF0ZSIuc3BsaXQoInwiKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZvaWQgMD09PWtbZV0mJihBPSEwKX0pKSwhQSlyZXR1cm59dmFyIGUsbDtlPVgsKGw9RjEpLmNvbnZlcnRFZmZlY3RJbnB1dD1mdW5jdGlvbihvKXt2YXIgZj1mdW5jdGlvbiBhKG8pe2Zvcih2YXIgaD17fSxmPTA7''@;'; put 'put ''ZjxvLmxlbmd0aDtmKyspZm9yKHZhciBnIGluIG9bZl0paWYoIm9mZnNldCIhPWcmJiJlYXNpbmciIT1nJiYiY29tcG9zaXRlIiE9Zyl7dmFyIHU9e29mZnNldDpvW2ZdLm9mZnNldCxlYXNpbmc6b1tmXS5lYXNpbmcsdmFsdWU6b1tmXVtnXX07aFtnXT1oW2ddfHxbXSxoW2ddLnB1c2godSl9''@;'; put 'put ''Zm9yKHZhciBwIGluIGgpe3ZhciB2PWhbcF07aWYoMCE9dlswXS5vZmZzZXR8fDEhPXZbdi5sZW5ndGgtMV0ub2Zmc2V0KXRocm93e3R5cGU6RE9NRXhjZXB0aW9uLk5PVF9TVVBQT1JURURfRVJSLG5hbWU6Ik5vdFN1cHBvcnRlZEVycm9yIixtZXNzYWdlOiJQYXJ0aWFsIGtleWZyYW1lcyBh''@;'; put 'put ''cmUgbm90IHN1cHBvcnRlZCJ9fXJldHVybiBofShlLm5vcm1hbGl6ZUtleWZyYW1lcyhvKSksZz1mdW5jdGlvbiBjKG8pe3ZhciBoPVtdO2Zvcih2YXIgZiBpbiBvKWZvcih2YXIgZz1vW2ZdLHU9MDt1PGcubGVuZ3RoLTE7dSsrKXt2YXIgcD11LHY9dSsxLEg9Z1twXS5vZmZzZXQsQz1nW3Zd''@;'; put 'put ''Lm9mZnNldCxWPUgsUz1DOzA9PXUmJihWPS0xLzAsMD09QyYmKHY9cCkpLHU9PWcubGVuZ3RoLTImJihTPTEvMCwxPT1IJiYocD12KSksaC5wdXNoKHthcHBseUZyb206VixhcHBseVRvOlMsc3RhcnRPZmZzZXQ6Z1twXS5vZmZzZXQsZW5kT2Zmc2V0Omdbdl0ub2Zmc2V0LGVhc2luZ0Z1bmN0''@;'; put 'put ''aW9uOmUucGFyc2VFYXNpbmdGdW5jdGlvbihnW3BdLmVhc2luZykscHJvcGVydHk6ZixpbnRlcnBvbGF0aW9uOmwucHJvcGVydHlJbnRlcnBvbGF0aW9uKGYsZ1twXS52YWx1ZSxnW3ZdLnZhbHVlKX0pfXJldHVybiBoLnNvcnQoZnVuY3Rpb24oXyxiKXtyZXR1cm4gXy5zdGFydE9mZnNldC1i''@;'; put 'put ''LnN0YXJ0T2Zmc2V0fSksaH0oZik7cmV0dXJuIGZ1bmN0aW9uKHUscCl7aWYobnVsbCE9cClnLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gcD49SC5hcHBseUZyb20mJnA8SC5hcHBseVRvfSkuZm9yRWFjaChmdW5jdGlvbihIKXt2YXIgVj1ILmVuZE9mZnNldC1ILnN0YXJ0T2Zmc2V0LFM9''@;'; put 'put ''MD09Vj8wOkguZWFzaW5nRnVuY3Rpb24oKHAtSC5zdGFydE9mZnNldCkvVik7bC5hcHBseSh1LEgucHJvcGVydHksSC5pbnRlcnBvbGF0aW9uKFMpKX0pO2Vsc2UgZm9yKHZhciB2IGluIGYpIm9mZnNldCIhPXYmJiJlYXNpbmciIT12JiYiY29tcG9zaXRlIiE9diYmbC5jbGVhcih1LHYpfX0s''@;'; put 'put ''ZnVuY3Rpb24oZSxsLHIpe2Z1bmN0aW9uIGEodSl7cmV0dXJuIHUucmVwbGFjZSgvLSguKS9nLGZ1bmN0aW9uKHAsdil7cmV0dXJuIHYudG9VcHBlckNhc2UoKX0pfWZ1bmN0aW9uIGModSxwLHYpe2Zbdl09Zlt2XXx8W10sZlt2XS5wdXNoKFt1LHBdKX12YXIgZj17fTtsLmFkZFByb3BlcnRp''@;'; put 'put ''ZXNIYW5kbGVyPWZ1bmN0aW9uIG8odSxwLHYpe2Zvcih2YXIgSD0wO0g8di5sZW5ndGg7SCsrKWModSxwLGEodltIXSkpfTt2YXIgZz17YmFja2dyb3VuZENvbG9yOiJ0cmFuc3BhcmVudCIsYmFja2dyb3VuZFBvc2l0aW9uOiIwJSAwJSIsYm9yZGVyQm90dG9tQ29sb3I6ImN1cnJlbnRDb2xv''@;'; put 'put ''ciIsYm9yZGVyQm90dG9tTGVmdFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21SaWdodFJhZGl1czoiMHB4Iixib3JkZXJCb3R0b21XaWR0aDoiM3B4Iixib3JkZXJMZWZ0Q29sb3I6ImN1cnJlbnRDb2xvciIsYm9yZGVyTGVmdFdpZHRoOiIzcHgiLGJvcmRlclJpZ2h0Q29sb3I6ImN1cnJlbnRD''@;'; put 'put ''b2xvciIsYm9yZGVyUmlnaHRXaWR0aDoiM3B4Iixib3JkZXJTcGFjaW5nOiIycHgiLGJvcmRlclRvcENvbG9yOiJjdXJyZW50Q29sb3IiLGJvcmRlclRvcExlZnRSYWRpdXM6IjBweCIsYm9yZGVyVG9wUmlnaHRSYWRpdXM6IjBweCIsYm9yZGVyVG9wV2lkdGg6IjNweCIsYm90dG9tOiJhdXRv''@;'; put 'put ''IixjbGlwOiJyZWN0KDBweCwgMHB4LCAwcHgsIDBweCkiLGNvbG9yOiJibGFjayIsZm9udFNpemU6IjEwMCUiLGZvbnRXZWlnaHQ6IjQwMCIsaGVpZ2h0OiJhdXRvIixsZWZ0OiJhdXRvIixsZXR0ZXJTcGFjaW5nOiJub3JtYWwiLGxpbmVIZWlnaHQ6IjEyMCUiLG1hcmdpbkJvdHRvbToiMHB4''@;'; put 'put ''IixtYXJnaW5MZWZ0OiIwcHgiLG1hcmdpblJpZ2h0OiIwcHgiLG1hcmdpblRvcDoiMHB4IixtYXhIZWlnaHQ6Im5vbmUiLG1heFdpZHRoOiJub25lIixtaW5IZWlnaHQ6IjBweCIsbWluV2lkdGg6IjBweCIsb3BhY2l0eToiMS4wIixvdXRsaW5lQ29sb3I6ImludmVydCIsb3V0bGluZU9mZnNl''@;'; put 'put ''dDoiMHB4IixvdXRsaW5lV2lkdGg6IjNweCIscGFkZGluZ0JvdHRvbToiMHB4IixwYWRkaW5nTGVmdDoiMHB4IixwYWRkaW5nUmlnaHQ6IjBweCIscGFkZGluZ1RvcDoiMHB4IixyaWdodDoiYXV0byIsc3Ryb2tlRGFzaGFycmF5OiJub25lIixzdHJva2VEYXNob2Zmc2V0OiIwcHgiLHRleHRJ''@;'; put 'put ''bmRlbnQ6IjBweCIsdGV4dFNoYWRvdzoiMHB4IDBweCAwcHggdHJhbnNwYXJlbnQiLHRvcDoiYXV0byIsdHJhbnNmb3JtOiIiLHZlcnRpY2FsQWxpZ246IjBweCIsdmlzaWJpbGl0eToidmlzaWJsZSIsd2lkdGg6ImF1dG8iLHdvcmRTcGFjaW5nOiJub3JtYWwiLHpJbmRleDoiYXV0byJ9O2wu''@;'; put 'put ''cHJvcGVydHlJbnRlcnBvbGF0aW9uPWZ1bmN0aW9uIGgodSxwLHYpe3ZhciBIPXU7Ly0vLnRlc3QodSkmJiFlLmlzRGVwcmVjYXRlZCgiSHlwaGVuYXRlZCBwcm9wZXJ0eSBuYW1lcyIsIjIwMTYtMDMtMjIiLCJVc2UgY2FtZWxDYXNlIGluc3RlYWQuIiwhMCkmJihIPWEodSkpLCJpbml0aWFs''@;'; put 'put ''IiE9cCYmImluaXRpYWwiIT12fHwoImluaXRpYWwiPT1wJiYocD1nW0hdKSwiaW5pdGlhbCI9PXYmJih2PWdbSF0pKTtmb3IodmFyIEM9cD09dj9bXTpmW0hdLFY9MDtDJiZWPEMubGVuZ3RoO1YrKyl7dmFyIFM9Q1tWXVswXShwKSxfPUNbVl1bMF0odik7aWYodm9pZCAwIT09UyYmdm9pZCAw''@;'; put 'put ''IT09Xyl7dmFyIGI9Q1tWXVsxXShTLF8pO2lmKGIpe3ZhciBNPWwuSW50ZXJwb2xhdGlvbi5hcHBseShudWxsLGIpO3JldHVybiBmdW5jdGlvbih4KXtyZXR1cm4gMD09eD9wOjE9PXg/djpNKHgpfX19fXJldHVybiBsLkludGVycG9sYXRpb24oITEsITAsZnVuY3Rpb24oeCl7cmV0dXJuIHg/''@;'; put 'put ''djpwfSl9fShYLEYxKSxmdW5jdGlvbihlLGwscil7bC5LZXlmcmFtZUVmZmVjdD1mdW5jdGlvbihjLG8saCxmKXt2YXIgZyx1PWZ1bmN0aW9uIGEoYyl7dmFyIG89ZS5jYWxjdWxhdGVBY3RpdmVEdXJhdGlvbihjKSxoPWZ1bmN0aW9uKGYpe3JldHVybiBlLmNhbGN1bGF0ZUl0ZXJhdGlvblBy''@;'; put 'put ''b2dyZXNzKG8sZixjKX07cmV0dXJuIGguX3RvdGFsRHVyYXRpb249Yy5kZWxheStvK2MuZW5kRGVsYXksaH0oZS5ub3JtYWxpemVUaW1pbmdJbnB1dChoKSkscD1sLmNvbnZlcnRFZmZlY3RJbnB1dChvKSx2PWZ1bmN0aW9uKCl7cChjLGcpfTtyZXR1cm4gdi5fdXBkYXRlPWZ1bmN0aW9uKEgp''@;'; put 'put ''e3JldHVybiBudWxsIT09KGc9dShIKSl9LHYuX2NsZWFyPWZ1bmN0aW9uKCl7cChjLG51bGwpfSx2Ll9oYXNTYW1lVGFyZ2V0PWZ1bmN0aW9uKEgpe3JldHVybiBjPT09SH0sdi5fdGFyZ2V0PWMsdi5fdG90YWxEdXJhdGlvbj11Ll90b3RhbER1cmF0aW9uLHYuX2lkPWYsdn19KFgsRjEpLGZ1''@;'; put 'put ''bmN0aW9uKGUsbCl7ZnVuY3Rpb24gYShILEMsVil7Vi5lbnVtZXJhYmxlPSEwLFYuY29uZmlndXJhYmxlPSEwLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShILEMsVil9ZnVuY3Rpb24gYyhIKXt0aGlzLl9lbGVtZW50PUgsdGhpcy5fc3Vycm9nYXRlU3R5bGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVu''@;'; put 'put ''dE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwiZGl2Iikuc3R5bGUsdGhpcy5fc3R5bGU9SC5zdHlsZSx0aGlzLl9sZW5ndGg9MCx0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHk9e30sdGhpcy5fdXBkYXRlU3ZnVHJhbnNmb3JtQXR0cj1mdW5jdGlvbiByKEgsQyl7cmV0dXJuISgh''@;'; put 'put ''Qy5uYW1lc3BhY2VVUkl8fC0xPT1DLm5hbWVzcGFjZVVSSS5pbmRleE9mKCIvc3ZnIikpJiYoaCBpbiBIfHwoSFtoXT0vVHJpZGVudHxNU0lFfElFTW9iaWxlfEVkZ2V8QW5kcm9pZCA0L2kudGVzdChILm5hdmlnYXRvci51c2VyQWdlbnQpKSxIW2hdKX0od2luZG93LEgpLHRoaXMuX3NhdmVk''@;'; put 'put ''VHJhbnNmb3JtQXR0cj1udWxsO2Zvcih2YXIgQz0wO0M8dGhpcy5fc3R5bGUubGVuZ3RoO0MrKyl7dmFyIFY9dGhpcy5fc3R5bGVbQ107dGhpcy5fc3Vycm9nYXRlU3R5bGVbVl09dGhpcy5fc3R5bGVbVl19dGhpcy5fdXBkYXRlSW5kaWNlcygpfXZhciBoPSJfd2ViQW5pbWF0aW9uc1VwZGF0''@;'; put 'put ''ZVN2Z1RyYW5zZm9ybUF0dHIiLGY9e2Nzc1RleHQ6MSxsZW5ndGg6MSxwYXJlbnRSdWxlOjF9LGc9e2dldFByb3BlcnR5Q1NTVmFsdWU6MSxnZXRQcm9wZXJ0eVByaW9yaXR5OjEsZ2V0UHJvcGVydHlWYWx1ZToxLGl0ZW06MSxyZW1vdmVQcm9wZXJ0eToxLHNldFByb3BlcnR5OjF9LHU9e3Jl''@;'; put 'put ''bW92ZVByb3BlcnR5OjEsc2V0UHJvcGVydHk6MX07Zm9yKHZhciBwIGluIGMucHJvdG90eXBlPXtnZXQgY3NzVGV4dCgpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZS5jc3NUZXh0fSxzZXQgY3NzVGV4dChIKXtmb3IodmFyIEM9e30sVj0wO1Y8dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVu''@;'; put 'put ''Z3RoO1YrKylDW3RoaXMuX3N1cnJvZ2F0ZVN0eWxlW1ZdXT0hMDtmb3IodGhpcy5fc3Vycm9nYXRlU3R5bGUuY3NzVGV4dD1ILHRoaXMuX3VwZGF0ZUluZGljZXMoKSxWPTA7Vjx0aGlzLl9zdXJyb2dhdGVTdHlsZS5sZW5ndGg7VisrKUNbdGhpcy5fc3Vycm9nYXRlU3R5bGVbVl1dPSEwO2Zv''@;'; put 'put ''cih2YXIgUyBpbiBDKXRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVtTXXx8dGhpcy5fc3R5bGUuc2V0UHJvcGVydHkoUyx0aGlzLl9zdXJyb2dhdGVTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKFMpKX0sZ2V0IGxlbmd0aCgpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZS5sZW5ndGh9LGdldCBw''@;'; put 'put ''YXJlbnRSdWxlKCl7cmV0dXJuIHRoaXMuX3N0eWxlLnBhcmVudFJ1bGV9LF91cGRhdGVJbmRpY2VzOmZ1bmN0aW9uKCl7Zm9yKDt0aGlzLl9sZW5ndGg8dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVuZ3RoOylPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0aGlzLl9sZW5ndGgse2NvbmZpZ3Vy''@;'; put 'put ''YWJsZTohMCxlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbihIKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3Vycm9nYXRlU3R5bGVbSF19fSh0aGlzLl9sZW5ndGgpfSksdGhpcy5fbGVuZ3RoKys7Zm9yKDt0aGlzLl9sZW5ndGg+dGhpcy5fc3Vycm9nYXRlU3R5bGUubGVuZ3Ro''@;'; put 'put ''Oyl0aGlzLl9sZW5ndGgtLSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyx0aGlzLl9sZW5ndGgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHZhbHVlOnZvaWQgMH0pfSxfc2V0OmZ1bmN0aW9uKEgsQyl7dGhpcy5fc3R5bGVbSF09Qyx0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHlb''@;'; put 'put ''SF09ITAsdGhpcy5fdXBkYXRlU3ZnVHJhbnNmb3JtQXR0ciYmInRyYW5zZm9ybSI9PWUudW5wcmVmaXhlZFByb3BlcnR5TmFtZShIKSYmKG51bGw9PXRoaXMuX3NhdmVkVHJhbnNmb3JtQXR0ciYmKHRoaXMuX3NhdmVkVHJhbnNmb3JtQXR0cj10aGlzLl9lbGVtZW50LmdldEF0dHJpYnV0ZSgi''@;'; put 'put ''dHJhbnNmb3JtIikpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLGUudHJhbnNmb3JtVG9TdmdNYXRyaXgoQykpKX0sX2NsZWFyOmZ1bmN0aW9uKEgpe3RoaXMuX3N0eWxlW0hdPXRoaXMuX3N1cnJvZ2F0ZVN0eWxlW0hdLHRoaXMuX3VwZGF0ZVN2Z1RyYW5zZm9ybUF0''@;'; put 'put ''dHImJiJ0cmFuc2Zvcm0iPT1lLnVucHJlZml4ZWRQcm9wZXJ0eU5hbWUoSCkmJih0aGlzLl9zYXZlZFRyYW5zZm9ybUF0dHI/dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdGhpcy5fc2F2ZWRUcmFuc2Zvcm1BdHRyKTp0aGlzLl9lbGVtZW50LnJlbW92ZUF0dHJpYnV0''@;'; put 'put ''ZSgidHJhbnNmb3JtIiksdGhpcy5fc2F2ZWRUcmFuc2Zvcm1BdHRyPW51bGwpLGRlbGV0ZSB0aGlzLl9pc0FuaW1hdGVkUHJvcGVydHlbSF19fSxnKWMucHJvdG90eXBlW3BdPWZ1bmN0aW9uKEgsQyl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIFY9dGhpcy5fc3Vycm9nYXRlU3R5bGVbSF0uYXBw''@;'; put 'put ''bHkodGhpcy5fc3Vycm9nYXRlU3R5bGUsYXJndW1lbnRzKTtyZXR1cm4gQyYmKHRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVthcmd1bWVudHNbMF1dfHx0aGlzLl9zdHlsZVtIXS5hcHBseSh0aGlzLl9zdHlsZSxhcmd1bWVudHMpLHRoaXMuX3VwZGF0ZUluZGljZXMoKSksVn19KHAscCBpbiB1''@;'; put 'put ''KTtmb3IodmFyIHYgaW4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlKXYgaW4gZnx8diBpbiBnfHxmdW5jdGlvbihIKXthKGMucHJvdG90eXBlLEgse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdXJyb2dhdGVTdHlsZVtIXX0sc2V0OmZ1bmN0aW9uKEMpe3RoaXMuX3N1cnJv''@;'; put 'put ''Z2F0ZVN0eWxlW0hdPUMsdGhpcy5fdXBkYXRlSW5kaWNlcygpLHRoaXMuX2lzQW5pbWF0ZWRQcm9wZXJ0eVtIXXx8KHRoaXMuX3N0eWxlW0hdPUMpfX0pfSh2KTtlLmFwcGx5PWZ1bmN0aW9uKEgsQyxWKXsoZnVuY3Rpb24gbyhIKXtpZighSC5fd2ViQW5pbWF0aW9uc1BhdGNoZWRTdHlsZSl7''@;'; put 'put ''dmFyIEM9bmV3IGMoSCk7dHJ5e2EoSCwic3R5bGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQ319KX1jYXRjaChWKXtILnN0eWxlLl9zZXQ9ZnVuY3Rpb24oUyxfKXtILnN0eWxlW1NdPV99LEguc3R5bGUuX2NsZWFyPWZ1bmN0aW9uKFMpe0guc3R5bGVbU109IiJ9fUguX3dlYkFuaW1hdGlv''@;'; put 'put ''bnNQYXRjaGVkU3R5bGU9SC5zdHlsZX19KShIKSxILnN0eWxlLl9zZXQoZS5wcm9wZXJ0eU5hbWUoQyksVil9LGUuY2xlYXI9ZnVuY3Rpb24oSCxDKXtILl93ZWJBbmltYXRpb25zUGF0Y2hlZFN0eWxlJiZILnN0eWxlLl9jbGVhcihlLnByb3BlcnR5TmFtZShDKSl9fShGMSksZnVuY3Rpb24o''@;'; put 'put ''ZSl7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obCxyKXt2YXIgYT0iIjtyZXR1cm4gciYmci5pZCYmKGE9ci5pZCksZS50aW1lbGluZS5fcGxheShlLktleWZyYW1lRWZmZWN0KHRoaXMsbCxyLGEpKX19KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoYSxj''@;'; put 'put ''LG8pe2lmKCJudW1iZXIiPT10eXBlb2YgYSYmIm51bWJlciI9PXR5cGVvZiBjKXJldHVybiBhKigxLW8pK2MqbztpZigiYm9vbGVhbiI9PXR5cGVvZiBhJiYiYm9vbGVhbiI9PXR5cGVvZiBjKXJldHVybiBvPC41P2E6YztpZihhLmxlbmd0aD09Yy5sZW5ndGgpe2Zvcih2YXIgaD1bXSxmPTA7''@;'; put 'put ''ZjxhLmxlbmd0aDtmKyspaC5wdXNoKHIoYVtmXSxjW2ZdLG8pKTtyZXR1cm4gaH10aHJvdyJNaXNtYXRjaGVkIGludGVycG9sYXRpb24gYXJndW1lbnRzICIrYSsiOiIrY31lLkludGVycG9sYXRpb249ZnVuY3Rpb24oYSxjLG8pe3JldHVybiBmdW5jdGlvbihoKXtyZXR1cm4gbyhyKGEsYyxo''@;'; put 'put ''KSl9fX0oRjEpLGZ1bmN0aW9uKGUsbCl7dmFyIGM9ZnVuY3Rpb24oKXtmdW5jdGlvbiBvKGcsdSl7Zm9yKHZhciBwPVtbMCwwLDAsMF0sWzAsMCwwLDBdLFswLDAsMCwwXSxbMCwwLDAsMF1dLHY9MDt2PDQ7disrKWZvcih2YXIgSD0wO0g8NDtIKyspZm9yKHZhciBDPTA7Qzw0O0MrKylwW3Zd''@;'; put 'put ''W0hdKz11W3ZdW0NdKmdbQ11bSF07cmV0dXJuIHB9cmV0dXJuIGZ1bmN0aW9uIGYoZyx1LHAsdixIKXtmb3IodmFyIEM9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAsMCwxLDBdLFswLDAsMCwxXV0sVj0wO1Y8NDtWKyspQ1tWXVszXT1IW1ZdO2ZvcihWPTA7VjwzO1YrKylmb3IodmFyIFM9MDtT''@;'; put 'put ''PDM7UysrKUNbM11bVl0rPWdbU10qQ1tTXVtWXTt2YXIgXz12WzBdLGI9dlsxXSxNPXZbMl0seD12WzNdLEU9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAsMCwxLDBdLFswLDAsMCwxXV07RVswXVswXT0xLTIqKGIqYitNKk0pLEVbMF1bMV09MiooXypiLU0qeCksRVswXVsyXT0yKihfKk0rYip4''@;'; put 'put ''KSxFWzFdWzBdPTIqKF8qYitNKngpLEVbMV1bMV09MS0yKihfKl8rTSpNKSxFWzFdWzJdPTIqKGIqTS1fKngpLEVbMl1bMF09MiooXypNLWIqeCksRVsyXVsxXT0yKihiKk0rXyp4KSxFWzJdWzJdPTEtMiooXypfK2IqYiksQz1vKEMsRSk7dmFyIHc9W1sxLDAsMCwwXSxbMCwxLDAsMF0sWzAs''@;'; put 'put ''MCwxLDBdLFswLDAsMCwxXV07Zm9yKHBbMl0mJih3WzJdWzFdPXBbMl0sQz1vKEMsdykpLHBbMV0mJih3WzJdWzFdPTAsd1syXVswXT1wWzBdLEM9byhDLHcpKSxwWzBdJiYod1syXVswXT0wLHdbMV1bMF09cFswXSxDPW8oQyx3KSksVj0wO1Y8MztWKyspZm9yKFM9MDtTPDM7UysrKUNbVl1b''@;'; put 'put ''U10qPXVbVl07cmV0dXJuIGZ1bmN0aW9uIGgoZyl7cmV0dXJuIDA9PWdbMF1bMl0mJjA9PWdbMF1bM10mJjA9PWdbMV1bMl0mJjA9PWdbMV1bM10mJjA9PWdbMl1bMF0mJjA9PWdbMl1bMV0mJjE9PWdbMl1bMl0mJjA9PWdbMl1bM10mJjA9PWdbM11bMl0mJjE9PWdbM11bM119KEMpP1tDWzBd''@;'; put 'put ''WzBdLENbMF1bMV0sQ1sxXVswXSxDWzFdWzFdLENbM11bMF0sQ1szXVsxXV06Q1swXS5jb25jYXQoQ1sxXSxDWzJdLENbM10pfX0oKTtlLmNvbXBvc2VNYXRyaXg9YyxlLnF1YXQ9ZnVuY3Rpb24gYShvLGgsZil7dmFyIGc9ZS5kb3QobyxoKTtnPWZ1bmN0aW9uIHIobyxoLGYpe3JldHVybiBN''@;'; put 'put ''YXRoLm1heChNYXRoLm1pbihvLGYpLGgpfShnLC0xLDEpO3ZhciB1PVtdO2lmKDE9PT1nKXU9bztlbHNlIGZvcih2YXIgcD1NYXRoLmFjb3MoZyksdj0xKk1hdGguc2luKGYqcCkvTWF0aC5zcXJ0KDEtZypnKSxIPTA7SDw0O0grKyl1LnB1c2gob1tIXSooTWF0aC5jb3MoZipwKS1nKnYpK2hb''@;'; put 'put ''SF0qdik7cmV0dXJuIHV9fShGMSksZnVuY3Rpb24oZSxsLHIpe2Uuc2VxdWVuY2VOdW1iZXI9MDt2YXIgYT1mdW5jdGlvbihjLG8saCl7dGhpcy50YXJnZXQ9Yyx0aGlzLmN1cnJlbnRUaW1lPW8sdGhpcy50aW1lbGluZVRpbWU9aCx0aGlzLnR5cGU9ImZpbmlzaCIsdGhpcy5idWJibGVzPSEx''@;'; put 'put ''LHRoaXMuY2FuY2VsYWJsZT0hMSx0aGlzLmN1cnJlbnRUYXJnZXQ9Yyx0aGlzLmRlZmF1bHRQcmV2ZW50ZWQ9ITEsdGhpcy5ldmVudFBoYXNlPUV2ZW50LkFUX1RBUkdFVCx0aGlzLnRpbWVTdGFtcD1EYXRlLm5vdygpfTtsLkFuaW1hdGlvbj1mdW5jdGlvbihjKXt0aGlzLmlkPSIiLGMmJmMu''@;'; put 'put ''X2lkJiYodGhpcy5pZD1jLl9pZCksdGhpcy5fc2VxdWVuY2VOdW1iZXI9ZS5zZXF1ZW5jZU51bWJlcisrLHRoaXMuX2N1cnJlbnRUaW1lPTAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3BsYXliYWNrUmF0ZT0xLHRoaXMuX2luVGltZWxpbmU9ITAsdGhpcy5f''@;'; put 'put ''ZmluaXNoZWRGbGFnPSEwLHRoaXMub25maW5pc2g9bnVsbCx0aGlzLl9maW5pc2hIYW5kbGVycz1bXSx0aGlzLl9lZmZlY3Q9Yyx0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSgwKSx0aGlzLl9pZGxlPSEwLHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMX0sbC5BbmltYXRp''@;'; put 'put ''b24ucHJvdG90eXBlPXtfZW5zdXJlQWxpdmU6ZnVuY3Rpb24oKXt0aGlzLl9pbkVmZmVjdD10aGlzLl9lZmZlY3QuX3VwZGF0ZSh0aGlzLnBsYXliYWNrUmF0ZTwwJiYwPT09dGhpcy5jdXJyZW50VGltZT8tMTp0aGlzLmN1cnJlbnRUaW1lKSx0aGlzLl9pblRpbWVsaW5lfHwhdGhpcy5faW5F''@;'; put 'put ''ZmZlY3QmJnRoaXMuX2ZpbmlzaGVkRmxhZ3x8KHRoaXMuX2luVGltZWxpbmU9ITAsbC50aW1lbGluZS5fYW5pbWF0aW9ucy5wdXNoKHRoaXMpKX0sX3RpY2tDdXJyZW50VGltZTpmdW5jdGlvbihjLG8pe2MhPXRoaXMuX2N1cnJlbnRUaW1lJiYodGhpcy5fY3VycmVudFRpbWU9Yyx0aGlzLl9p''@;'; put 'put ''c0ZpbmlzaGVkJiYhbyYmKHRoaXMuX2N1cnJlbnRUaW1lPXRoaXMuX3BsYXliYWNrUmF0ZT4wP3RoaXMuX3RvdGFsRHVyYXRpb246MCksdGhpcy5fZW5zdXJlQWxpdmUoKSl9LGdldCBjdXJyZW50VGltZSgpe3JldHVybiB0aGlzLl9pZGxlfHx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc/bnVs''@;'; put 'put ''bDp0aGlzLl9jdXJyZW50VGltZX0sc2V0IGN1cnJlbnRUaW1lKGMpe2M9K2MsaXNOYU4oYyl8fChsLnJlc3RhcnQoKSx0aGlzLl9wYXVzZWR8fG51bGw9PXRoaXMuX3N0YXJ0VGltZXx8KHRoaXMuX3N0YXJ0VGltZT10aGlzLl90aW1lbGluZS5jdXJyZW50VGltZS1jL3RoaXMuX3BsYXliYWNr''@;'; put 'put ''UmF0ZSksdGhpcy5fY3VycmVudFRpbWVQZW5kaW5nPSExLHRoaXMuX2N1cnJlbnRUaW1lIT1jJiYodGhpcy5faWRsZSYmKHRoaXMuX2lkbGU9ITEsdGhpcy5fcGF1c2VkPSEwKSx0aGlzLl90aWNrQ3VycmVudFRpbWUoYywhMCksbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpKX0sZ2V0''@;'; put 'put ''IHN0YXJ0VGltZSgpe3JldHVybiB0aGlzLl9zdGFydFRpbWV9LHNldCBzdGFydFRpbWUoYyl7Yz0rYyxpc05hTihjKXx8dGhpcy5fcGF1c2VkfHx0aGlzLl9pZGxlfHwodGhpcy5fc3RhcnRUaW1lPWMsdGhpcy5fdGlja0N1cnJlbnRUaW1lKCh0aGlzLl90aW1lbGluZS5jdXJyZW50VGltZS10''@;'; put 'put ''aGlzLl9zdGFydFRpbWUpKnRoaXMucGxheWJhY2tSYXRlKSxsLmFwcGx5RGlydGllZEFuaW1hdGlvbih0aGlzKSl9LGdldCBwbGF5YmFja1JhdGUoKXtyZXR1cm4gdGhpcy5fcGxheWJhY2tSYXRlfSxzZXQgcGxheWJhY2tSYXRlKGMpe2lmKGMhPXRoaXMuX3BsYXliYWNrUmF0ZSl7dmFyIG89''@;'; put 'put ''dGhpcy5jdXJyZW50VGltZTt0aGlzLl9wbGF5YmFja1JhdGU9Yyx0aGlzLl9zdGFydFRpbWU9bnVsbCwicGF1c2VkIiE9dGhpcy5wbGF5U3RhdGUmJiJpZGxlIiE9dGhpcy5wbGF5U3RhdGUmJih0aGlzLl9maW5pc2hlZEZsYWc9ITEsdGhpcy5faWRsZT0hMSx0aGlzLl9lbnN1cmVBbGl2ZSgp''@;'; put 'put ''LGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMpKSxudWxsIT1vJiYodGhpcy5jdXJyZW50VGltZT1vKX19LGdldCBfaXNGaW5pc2hlZCgpe3JldHVybiF0aGlzLl9pZGxlJiYodGhpcy5fcGxheWJhY2tSYXRlPjAmJnRoaXMuX2N1cnJlbnRUaW1lPj10aGlzLl90b3RhbER1cmF0aW9ufHx0''@;'; put 'put ''aGlzLl9wbGF5YmFja1JhdGU8MCYmdGhpcy5fY3VycmVudFRpbWU8PTApfSxnZXQgX3RvdGFsRHVyYXRpb24oKXtyZXR1cm4gdGhpcy5fZWZmZWN0Ll90b3RhbER1cmF0aW9ufSxnZXQgcGxheVN0YXRlKCl7cmV0dXJuIHRoaXMuX2lkbGU/ImlkbGUiOm51bGw9PXRoaXMuX3N0YXJ0VGltZSYm''@;'; put 'put ''IXRoaXMuX3BhdXNlZCYmMCE9dGhpcy5wbGF5YmFja1JhdGV8fHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz8icGVuZGluZyI6dGhpcy5fcGF1c2VkPyJwYXVzZWQiOnRoaXMuX2lzRmluaXNoZWQ/ImZpbmlzaGVkIjoicnVubmluZyJ9LF9yZXdpbmQ6ZnVuY3Rpb24oKXtpZih0aGlzLl9wbGF5''@;'; put 'put ''YmFja1JhdGU+PTApdGhpcy5fY3VycmVudFRpbWU9MDtlbHNle2lmKCEodGhpcy5fdG90YWxEdXJhdGlvbjwxLzApKXRocm93IG5ldyBET01FeGNlcHRpb24oIlVuYWJsZSB0byByZXdpbmQgbmVnYXRpdmUgcGxheWJhY2sgcmF0ZSBhbmltYXRpb24gd2l0aCBpbmZpbml0ZSBkdXJhdGlvbiIs''@;'; put 'put ''IkludmFsaWRTdGF0ZUVycm9yIik7dGhpcy5fY3VycmVudFRpbWU9dGhpcy5fdG90YWxEdXJhdGlvbn19LHBsYXk6ZnVuY3Rpb24oKXt0aGlzLl9wYXVzZWQ9ITEsKHRoaXMuX2lzRmluaXNoZWR8fHRoaXMuX2lkbGUpJiYodGhpcy5fcmV3aW5kKCksdGhpcy5fc3RhcnRUaW1lPW51bGwpLHRo''@;'; put 'put ''aXMuX2ZpbmlzaGVkRmxhZz0hMSx0aGlzLl9pZGxlPSExLHRoaXMuX2Vuc3VyZUFsaXZlKCksbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcyl9LHBhdXNlOmZ1bmN0aW9uKCl7dGhpcy5faXNGaW5pc2hlZHx8dGhpcy5fcGF1c2VkfHx0aGlzLl9pZGxlP3RoaXMuX2lkbGUmJih0aGlzLl9y''@;'; put 'put ''ZXdpbmQoKSx0aGlzLl9pZGxlPSExKTp0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITAsdGhpcy5fc3RhcnRUaW1lPW51bGwsdGhpcy5fcGF1c2VkPSEwfSxmaW5pc2g6ZnVuY3Rpb24oKXt0aGlzLl9pZGxlfHwodGhpcy5jdXJyZW50VGltZT10aGlzLl9wbGF5YmFja1JhdGU+MD90aGlzLl90''@;'; put 'put ''b3RhbER1cmF0aW9uOjAsdGhpcy5fc3RhcnRUaW1lPXRoaXMuX3RvdGFsRHVyYXRpb24tdGhpcy5jdXJyZW50VGltZSx0aGlzLl9jdXJyZW50VGltZVBlbmRpbmc9ITEsbC5hcHBseURpcnRpZWRBbmltYXRpb24odGhpcykpfSxjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLl9pbkVmZmVjdCYmKHRo''@;'; put 'put ''aXMuX2luRWZmZWN0PSExLHRoaXMuX2lkbGU9ITAsdGhpcy5fcGF1c2VkPSExLHRoaXMuX2ZpbmlzaGVkRmxhZz0hMCx0aGlzLl9jdXJyZW50VGltZT0wLHRoaXMuX3N0YXJ0VGltZT1udWxsLHRoaXMuX2VmZmVjdC5fdXBkYXRlKG51bGwpLGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uKHRoaXMp''@;'; put 'put ''KX0scmV2ZXJzZTpmdW5jdGlvbigpe3RoaXMucGxheWJhY2tSYXRlKj0tMSx0aGlzLnBsYXkoKX0sYWRkRXZlbnRMaXN0ZW5lcjpmdW5jdGlvbihjLG8peyJmdW5jdGlvbiI9PXR5cGVvZiBvJiYiZmluaXNoIj09YyYmdGhpcy5fZmluaXNoSGFuZGxlcnMucHVzaChvKX0scmVtb3ZlRXZlbnRM''@;'; put 'put ''aXN0ZW5lcjpmdW5jdGlvbihjLG8pe2lmKCJmaW5pc2giPT1jKXt2YXIgaD10aGlzLl9maW5pc2hIYW5kbGVycy5pbmRleE9mKG8pO2g+PTAmJnRoaXMuX2ZpbmlzaEhhbmRsZXJzLnNwbGljZShoLDEpfX0sX2ZpcmVFdmVudHM6ZnVuY3Rpb24oYyl7aWYodGhpcy5faXNGaW5pc2hlZCl7aWYo''@;'; put 'put ''IXRoaXMuX2ZpbmlzaGVkRmxhZyl7dmFyIG89bmV3IGEodGhpcyx0aGlzLl9jdXJyZW50VGltZSxjKSxoPXRoaXMuX2ZpbmlzaEhhbmRsZXJzLmNvbmNhdCh0aGlzLm9uZmluaXNoP1t0aGlzLm9uZmluaXNoXTpbXSk7c2V0VGltZW91dChmdW5jdGlvbigpe2guZm9yRWFjaChmdW5jdGlvbihm''@;'; put 'put ''KXtmLmNhbGwoby50YXJnZXQsbyl9KX0sMCksdGhpcy5fZmluaXNoZWRGbGFnPSEwfX1lbHNlIHRoaXMuX2ZpbmlzaGVkRmxhZz0hMX0sX3RpY2s6ZnVuY3Rpb24oYyxvKXt0aGlzLl9pZGxlfHx0aGlzLl9wYXVzZWR8fChudWxsPT10aGlzLl9zdGFydFRpbWU/byYmKHRoaXMuc3RhcnRUaW1l''@;'; put 'put ''PWMtdGhpcy5fY3VycmVudFRpbWUvdGhpcy5wbGF5YmFja1JhdGUpOnRoaXMuX2lzRmluaXNoZWR8fHRoaXMuX3RpY2tDdXJyZW50VGltZSgoYy10aGlzLl9zdGFydFRpbWUpKnRoaXMucGxheWJhY2tSYXRlKSksbyYmKHRoaXMuX2N1cnJlbnRUaW1lUGVuZGluZz0hMSx0aGlzLl9maXJlRXZl''@;'; put 'put ''bnRzKGMpKX0sZ2V0IF9uZWVkc1RpY2soKXtyZXR1cm4gdGhpcy5wbGF5U3RhdGUgaW57cGVuZGluZzoxLHJ1bm5pbmc6MX18fCF0aGlzLl9maW5pc2hlZEZsYWd9LF90YXJnZXRBbmltYXRpb25zOmZ1bmN0aW9uKCl7dmFyIGM9dGhpcy5fZWZmZWN0Ll90YXJnZXQ7cmV0dXJuIGMuX2FjdGl2''@;'; put 'put ''ZUFuaW1hdGlvbnN8fChjLl9hY3RpdmVBbmltYXRpb25zPVtdKSxjLl9hY3RpdmVBbmltYXRpb25zfSxfbWFya1RhcmdldDpmdW5jdGlvbigpe3ZhciBjPXRoaXMuX3RhcmdldEFuaW1hdGlvbnMoKTstMT09PWMuaW5kZXhPZih0aGlzKSYmYy5wdXNoKHRoaXMpfSxfdW5tYXJrVGFyZ2V0OmZ1''@;'; put 'put ''bmN0aW9uKCl7dmFyIGM9dGhpcy5fdGFyZ2V0QW5pbWF0aW9ucygpLG89Yy5pbmRleE9mKHRoaXMpOy0xIT09byYmYy5zcGxpY2UobywxKX19fShYLEYxKSxmdW5jdGlvbihlLGwscil7ZnVuY3Rpb24gYShiKXt2YXIgTT11O3U9W10sYjxfLmN1cnJlbnRUaW1lJiYoYj1fLmN1cnJlbnRUaW1l''@;'; put 'put ''KSxfLl9hbmltYXRpb25zLnNvcnQoYyksXy5fYW5pbWF0aW9ucz1mKGIsITAsXy5fYW5pbWF0aW9ucylbMF0sTS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3hbMV0oYil9KSxoKCl9ZnVuY3Rpb24gYyhiLE0pe3JldHVybiBiLl9zZXF1ZW5jZU51bWJlci1NLl9zZXF1ZW5jZU51bWJlcn1mdW5jdGlv''@;'; put 'put ''biBvKCl7dGhpcy5fYW5pbWF0aW9ucz1bXSx0aGlzLmN1cnJlbnRUaW1lPXdpbmRvdy5wZXJmb3JtYW5jZSYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOjB9ZnVuY3Rpb24gaCgpe1YuZm9yRWFjaChmdW5jdGlvbihiKXtiKCl9KSxWLmxlbmd0aD0wfWZ1bmN0aW9uIGYoYixN''@;'; put 'put ''LHgpe1M9ITAsQz0hMSxsLnRpbWVsaW5lLmN1cnJlbnRUaW1lPWIsSD0hMTt2YXIgRT1bXSx3PVtdLE49W10sST1bXTtyZXR1cm4geC5mb3JFYWNoKGZ1bmN0aW9uKFcpe1cuX3RpY2soYixNKSxXLl9pbkVmZmVjdD8ody5wdXNoKFcuX2VmZmVjdCksVy5fbWFya1RhcmdldCgpKTooRS5wdXNo''@;'; put 'put ''KFcuX2VmZmVjdCksVy5fdW5tYXJrVGFyZ2V0KCkpLFcuX25lZWRzVGljayYmKEg9ITApO3ZhciBPPVcuX2luRWZmZWN0fHxXLl9uZWVkc1RpY2s7Vy5faW5UaW1lbGluZT1PLE8/Ti5wdXNoKFcpOkkucHVzaChXKX0pLFYucHVzaC5hcHBseShWLEUpLFYucHVzaC5hcHBseShWLHcpLEgmJnJl''@;'; put 'put ''cXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLFM9ITEsW04sSV19dmFyIGc9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSx1PVtdLHA9MDt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lPWZ1bmN0aW9uKGIpe3ZhciBNPXArKztyZXR1cm4gMD09dS5sZW5ndGgmJmcoYSks''@;'; put 'put ''dS5wdXNoKFtNLGJdKSxNfSx3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWU9ZnVuY3Rpb24oYil7dS5mb3JFYWNoKGZ1bmN0aW9uKE0pe01bMF09PWImJihNWzFdPWZ1bmN0aW9uKCl7fSl9KX0sby5wcm90b3R5cGU9e19wbGF5OmZ1bmN0aW9uKGIpe2IuX3RpbWluZz1lLm5vcm1hbGl6ZVRp''@;'; put 'put ''bWluZ0lucHV0KGIudGltaW5nKTt2YXIgTT1uZXcgbC5BbmltYXRpb24oYik7cmV0dXJuIE0uX2lkbGU9ITEsTS5fdGltZWxpbmU9dGhpcyx0aGlzLl9hbmltYXRpb25zLnB1c2goTSksbC5yZXN0YXJ0KCksbC5hcHBseURpcnRpZWRBbmltYXRpb24oTSksTX19O3ZhciBIPSExLEM9ITE7bC5y''@;'; put 'put ''ZXN0YXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIEh8fChIPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe30pLEM9ITApLEN9LGwuYXBwbHlEaXJ0aWVkQW5pbWF0aW9uPWZ1bmN0aW9uKGIpe2lmKCFTKXtiLl9tYXJrVGFyZ2V0KCk7dmFyIE09Yi5fdGFyZ2V0QW5pbWF0aW9ucygp''@;'; put 'put ''O00uc29ydChjKSxmKGwudGltZWxpbmUuY3VycmVudFRpbWUsITEsTS5zbGljZSgpKVsxXS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBFPV8uX2FuaW1hdGlvbnMuaW5kZXhPZih4KTstMSE9PUUmJl8uX2FuaW1hdGlvbnMuc3BsaWNlKEUsMSl9KSxoKCl9fTt2YXIgVj1bXSxTPSExLF89bmV3''@;'; put 'put ''IG87bC50aW1lbGluZT1ffShYLEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIodSxwKXtmb3IodmFyIHY9MCxIPTA7SDx1Lmxlbmd0aDtIKyspdis9dVtIXSpwW0hdO3JldHVybiB2fWZ1bmN0aW9uIGEodSxwKXtyZXR1cm5bdVswXSpwWzBdK3VbNF0qcFsxXSt1WzhdKnBbMl0rdVsxMl0q''@;'; put 'put ''cFszXSx1WzFdKnBbMF0rdVs1XSpwWzFdK3VbOV0qcFsyXSt1WzEzXSpwWzNdLHVbMl0qcFswXSt1WzZdKnBbMV0rdVsxMF0qcFsyXSt1WzE0XSpwWzNdLHVbM10qcFswXSt1WzddKnBbMV0rdVsxMV0qcFsyXSt1WzE1XSpwWzNdLHVbMF0qcFs0XSt1WzRdKnBbNV0rdVs4XSpwWzZdK3VbMTJd''@;'; put 'put ''KnBbN10sdVsxXSpwWzRdK3VbNV0qcFs1XSt1WzldKnBbNl0rdVsxM10qcFs3XSx1WzJdKnBbNF0rdVs2XSpwWzVdK3VbMTBdKnBbNl0rdVsxNF0qcFs3XSx1WzNdKnBbNF0rdVs3XSpwWzVdK3VbMTFdKnBbNl0rdVsxNV0qcFs3XSx1WzBdKnBbOF0rdVs0XSpwWzldK3VbOF0qcFsxMF0rdVsx''@;'; put 'put ''Ml0qcFsxMV0sdVsxXSpwWzhdK3VbNV0qcFs5XSt1WzldKnBbMTBdK3VbMTNdKnBbMTFdLHVbMl0qcFs4XSt1WzZdKnBbOV0rdVsxMF0qcFsxMF0rdVsxNF0qcFsxMV0sdVszXSpwWzhdK3VbN10qcFs5XSt1WzExXSpwWzEwXSt1WzE1XSpwWzExXSx1WzBdKnBbMTJdK3VbNF0qcFsxM10rdVs4''@;'; put 'put ''XSpwWzE0XSt1WzEyXSpwWzE1XSx1WzFdKnBbMTJdK3VbNV0qcFsxM10rdVs5XSpwWzE0XSt1WzEzXSpwWzE1XSx1WzJdKnBbMTJdK3VbNl0qcFsxM10rdVsxMF0qcFsxNF0rdVsxNF0qcFsxNV0sdVszXSpwWzEyXSt1WzddKnBbMTNdK3VbMTFdKnBbMTRdK3VbMTVdKnBbMTVdXX1mdW5jdGlv''@;'; put 'put ''biBjKHUpe3JldHVybigodS5kZWd8fDApLzM2MCsodS5ncmFkfHwwKS80MDArKHUudHVybnx8MCkpKigyKk1hdGguUEkpKyh1LnJhZHx8MCl9ZnVuY3Rpb24gbyh1KXtzd2l0Y2godS50KXtjYXNlInJvdGF0ZXgiOnZhciBiPWModS5kWzBdKTtyZXR1cm5bMSwwLDAsMCwwLE1hdGguY29zKGIp''@;'; put 'put ''LE1hdGguc2luKGIpLDAsMCwtTWF0aC5zaW4oYiksTWF0aC5jb3MoYiksMCwwLDAsMCwxXTtjYXNlInJvdGF0ZXkiOnJldHVybiBiPWModS5kWzBdKSxbTWF0aC5jb3MoYiksMCwtTWF0aC5zaW4oYiksMCwwLDEsMCwwLE1hdGguc2luKGIpLDAsTWF0aC5jb3MoYiksMCwwLDAsMCwxXTtjYXNl''@;'; put 'put ''InJvdGF0ZSI6Y2FzZSJyb3RhdGV6IjpyZXR1cm4gYj1jKHUuZFswXSksW01hdGguY29zKGIpLE1hdGguc2luKGIpLDAsMCwtTWF0aC5zaW4oYiksTWF0aC5jb3MoYiksMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJyb3RhdGUzZCI6dmFyIE09dS5kWzBdLHg9dS5kWzFdLEU9dS5kWzJdLHA9''@;'; put 'put ''KGI9Yyh1LmRbM10pLE0qTSt4KngrRSpFKTtpZigwPT09cClNPTEseD0wLEU9MDtlbHNlIGlmKDEhPT1wKXt2YXIgdj1NYXRoLnNxcnQocCk7TS89dix4Lz12LEUvPXZ9dmFyIEg9TWF0aC5zaW4oYi8yKSxDPUgqTWF0aC5jb3MoYi8yKSxWPUgqSDtyZXR1cm5bMS0yKih4KngrRSpFKSpWLDIq''@;'; put 'put ''KE0qeCpWK0UqQyksMiooTSpFKlYteCpDKSwwLDIqKE0qeCpWLUUqQyksMS0yKihNKk0rRSpFKSpWLDIqKHgqRSpWK00qQyksMCwyKihNKkUqVit4KkMpLDIqKHgqRSpWLU0qQyksMS0yKihNKk0reCp4KSpWLDAsMCwwLDAsMV07Y2FzZSJzY2FsZSI6cmV0dXJuW3UuZFswXSwwLDAsMCwwLHUu''@;'; put 'put ''ZFsxXSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNjYWxleCI6cmV0dXJuW3UuZFswXSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07Y2FzZSJzY2FsZXkiOnJldHVyblsxLDAsMCwwLDAsdS5kWzBdLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Nhc2Uic2NhbGV6IjpyZXR1cm5bMSww''@;'; put 'put ''LDAsMCwwLDEsMCwwLDAsMCx1LmRbMF0sMCwwLDAsMCwxXTtjYXNlInNjYWxlM2QiOnJldHVyblt1LmRbMF0sMCwwLDAsMCx1LmRbMV0sMCwwLDAsMCx1LmRbMl0sMCwwLDAsMCwxXTtjYXNlInNrZXciOnZhciBTPWModS5kWzBdKSxfPWModS5kWzFdKTtyZXR1cm5bMSxNYXRoLnRhbihfKSww''@;'; put 'put ''LDAsTWF0aC50YW4oUyksMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNrZXd4IjpyZXR1cm4gYj1jKHUuZFswXSksWzEsMCwwLDAsTWF0aC50YW4oYiksMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInNrZXd5IjpyZXR1cm4gYj1jKHUuZFswXSksWzEsTWF0aC50YW4oYiksMCwwLDAs''@;'; put 'put ''MSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtjYXNlInRyYW5zbGF0ZSI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLE09dS5kWzBdLnB4fHwwLHg9dS5kWzFdLnB4fHwwLDAsMV07Y2FzZSJ0cmFuc2xhdGV4IjpyZXR1cm5bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsTT11LmRbMF0ucHh8''@;'; put 'put ''fDAsMCwwLDFdO2Nhc2UidHJhbnNsYXRleSI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAseD11LmRbMF0ucHh8fDAsMCwxXTtjYXNlInRyYW5zbGF0ZXoiOnJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsRT11LmRbMF0ucHh8fDAsMV07Y2FzZSJ0cmFuc2xhdGUz''@;'; put 'put ''ZCI6cmV0dXJuWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLE09dS5kWzBdLnB4fHwwLHg9dS5kWzFdLnB4fHwwLEU9dS5kWzJdLnB4fHwwLDFdO2Nhc2UicGVyc3BlY3RpdmUiOnJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsdS5kWzBdLnB4Py0xL3UuZFswXS5weDowLDAsMCwwLDFdO2Nh''@;'; put 'put ''c2UibWF0cml4IjpyZXR1cm5bdS5kWzBdLHUuZFsxXSwwLDAsdS5kWzJdLHUuZFszXSwwLDAsMCwwLDEsMCx1LmRbNF0sdS5kWzVdLDAsMV07Y2FzZSJtYXRyaXgzZCI6cmV0dXJuIHUuZH19ZnVuY3Rpb24gaCh1KXtyZXR1cm4gMD09PXUubGVuZ3RoP1sxLDAsMCwwLDAsMSwwLDAsMCwwLDEs''@;'; put 'put ''MCwwLDAsMCwxXTp1Lm1hcChvKS5yZWR1Y2UoYSl9dmFyIGc9ZnVuY3Rpb24oKXtmdW5jdGlvbiB1KE0pe3JldHVybiBNWzBdWzBdKk1bMV1bMV0qTVsyXVsyXStNWzFdWzBdKk1bMl1bMV0qTVswXVsyXStNWzJdWzBdKk1bMF1bMV0qTVsxXVsyXS1NWzBdWzJdKk1bMV1bMV0qTVsyXVswXS1N''@;'; put 'put ''WzFdWzJdKk1bMl1bMV0qTVswXVswXS1NWzJdWzJdKk1bMF1bMV0qTVsxXVswXX1mdW5jdGlvbiBDKE0pe3ZhciB4PVYoTSk7cmV0dXJuW01bMF0veCxNWzFdL3gsTVsyXS94XX1mdW5jdGlvbiBWKE0pe3JldHVybiBNYXRoLnNxcnQoTVswXSpNWzBdK01bMV0qTVsxXStNWzJdKk1bMl0pfWZ1''@;'; put 'put ''bmN0aW9uIFMoTSx4LEUsdyl7cmV0dXJuW0UqTVswXSt3KnhbMF0sRSpNWzFdK3cqeFsxXSxFKk1bMl0rdyp4WzJdXX1yZXR1cm4gZnVuY3Rpb24gYihNKXt2YXIgeD1bTS5zbGljZSgwLDQpLE0uc2xpY2UoNCw4KSxNLnNsaWNlKDgsMTIpLE0uc2xpY2UoMTIsMTYpXTtpZigxIT09eFszXVsz''@;'; put 'put ''XSlyZXR1cm4gbnVsbDtmb3IodmFyIEU9W10sdz0wO3c8NDt3KyspRS5wdXNoKHhbd10uc2xpY2UoKSk7Zm9yKHc9MDt3PDM7dysrKUVbd11bM109MDtpZigwPT09dShFKSlyZXR1cm4gbnVsbDt2YXIgTixJPVtdO3hbMF1bM118fHhbMV1bM118fHhbMl1bM10/KEkucHVzaCh4WzBdWzNdKSxJ''@;'; put 'put ''LnB1c2goeFsxXVszXSksSS5wdXNoKHhbMl1bM10pLEkucHVzaCh4WzNdWzNdKSxOPWZ1bmN0aW9uIEgoTSx4KXtmb3IodmFyIEU9W10sdz0wO3c8NDt3Kyspe2Zvcih2YXIgTj0wLEk9MDtJPDQ7SSsrKU4rPU1bSV0qeFtJXVt3XTtFLnB1c2goTil9cmV0dXJuIEV9KEksZnVuY3Rpb24gdihN''@;'; put 'put ''KXtyZXR1cm5bW01bMF1bMF0sTVsxXVswXSxNWzJdWzBdLE1bM11bMF1dLFtNWzBdWzFdLE1bMV1bMV0sTVsyXVsxXSxNWzNdWzFdXSxbTVswXVsyXSxNWzFdWzJdLE1bMl1bMl0sTVszXVsyXV0sW01bMF1bM10sTVsxXVszXSxNWzJdWzNdLE1bM11bM11dXX0oZnVuY3Rpb24gcChNKXtmb3Io''@;'; put 'put ''dmFyIHg9MS91KE0pLEU9TVswXVswXSx3PU1bMF1bMV0sTj1NWzBdWzJdLEk9TVsxXVswXSxXPU1bMV1bMV0sTz1NWzFdWzJdLEI9TVsyXVswXSxSPU1bMl1bMV0sbDE9TVsyXVsyXSxhMT1bWyhXKmwxLU8qUikqeCwoTipSLXcqbDEpKngsKHcqTy1OKlcpKngsMF0sWyhPKkItSSpsMSkqeCwo''@;'; put 'put ''RSpsMS1OKkIpKngsKE4qSS1FKk8pKngsMF0sWyhJKlItVypCKSp4LChCKnctRSpSKSp4LChFKlctdypJKSp4LDBdXSxoMT1bXSx1MT0wO3UxPDM7dTErKyl7Zm9yKHZhciBwMT0wLHYxPTA7djE8Mzt2MSsrKXAxKz1NWzNdW3YxXSphMVt2MV1bdTFdO2gxLnB1c2gocDEpfXJldHVybiBoMS5w''@;'; put 'put ''dXNoKDEpLGExLnB1c2goaDEpLGExfShFKSkpKTpOPVswLDAsMCwxXTt2YXIgVz14WzNdLnNsaWNlKDAsMyksTz1bXTtPLnB1c2goeFswXS5zbGljZSgwLDMpKTt2YXIgQj1bXTtCLnB1c2goVihPWzBdKSksT1swXT1DKE9bMF0pO3ZhciBSPVtdO08ucHVzaCh4WzFdLnNsaWNlKDAsMykpLFIu''@;'; put 'put ''cHVzaChyKE9bMF0sT1sxXSkpLE9bMV09UyhPWzFdLE9bMF0sMSwtUlswXSksQi5wdXNoKFYoT1sxXSkpLE9bMV09QyhPWzFdKSxSWzBdLz1CWzFdLE8ucHVzaCh4WzJdLnNsaWNlKDAsMykpLFIucHVzaChyKE9bMF0sT1syXSkpLE9bMl09UyhPWzJdLE9bMF0sMSwtUlsxXSksUi5wdXNoKHIo''@;'; put 'put ''T1sxXSxPWzJdKSksT1syXT1TKE9bMl0sT1sxXSwxLC1SWzJdKSxCLnB1c2goVihPWzJdKSksT1syXT1DKE9bMl0pLFJbMV0vPUJbMl0sUlsyXS89QlsyXTt2YXIgbDE9ZnVuY3Rpb24gXyhNLHgpe3JldHVybltNWzFdKnhbMl0tTVsyXSp4WzFdLE1bMl0qeFswXS1NWzBdKnhbMl0sTVswXSp4''@;'; put 'put ''WzFdLU1bMV0qeFswXV19KE9bMV0sT1syXSk7aWYocihPWzBdLGwxKTwwKWZvcih3PTA7dzwzO3crKylCW3ddKj0tMSxPW3ddWzBdKj0tMSxPW3ddWzFdKj0tMSxPW3ddWzJdKj0tMTt2YXIgYTEsaDEsdTE9T1swXVswXStPWzFdWzFdK09bMl1bMl0rMTtyZXR1cm4gdTE+MWUtND8oYTE9LjUv''@;'; put 'put ''TWF0aC5zcXJ0KHUxKSxoMT1bKE9bMl1bMV0tT1sxXVsyXSkqYTEsKE9bMF1bMl0tT1syXVswXSkqYTEsKE9bMV1bMF0tT1swXVsxXSkqYTEsLjI1L2ExXSk6T1swXVswXT5PWzFdWzFdJiZPWzBdWzBdPk9bMl1bMl0/aDE9Wy4yNSooYTE9MipNYXRoLnNxcnQoMStPWzBdWzBdLU9bMV1bMV0t''@;'; put 'put ''T1syXVsyXSkpLChPWzBdWzFdK09bMV1bMF0pL2ExLChPWzBdWzJdK09bMl1bMF0pL2ExLChPWzJdWzFdLU9bMV1bMl0pL2ExXTpPWzFdWzFdPk9bMl1bMl0/KGExPTIqTWF0aC5zcXJ0KDErT1sxXVsxXS1PWzBdWzBdLU9bMl1bMl0pLGgxPVsoT1swXVsxXStPWzFdWzBdKS9hMSwuMjUqYTEs''@;'; put 'put ''KE9bMV1bMl0rT1syXVsxXSkvYTEsKE9bMF1bMl0tT1syXVswXSkvYTFdKTooYTE9MipNYXRoLnNxcnQoMStPWzJdWzJdLU9bMF1bMF0tT1sxXVsxXSksaDE9WyhPWzBdWzJdK09bMl1bMF0pL2ExLChPWzFdWzJdK09bMl1bMV0pL2ExLC4yNSphMSwoT1sxXVswXS1PWzBdWzFdKS9hMV0pLFtX''@;'; put 'put ''LEIsUixoMSxOXX19KCk7ZS5kb3Q9cixlLm1ha2VNYXRyaXhEZWNvbXBvc2l0aW9uPWZ1bmN0aW9uIGYodSl7cmV0dXJuW2coaCh1KSldfSxlLnRyYW5zZm9ybUxpc3RUb01hdHJpeD1ofShGMSksZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbCh2LEgpe3ZhciBDPXYuZXhlYyhIKTtpZihDKXJldHVy''@;'; put 'put ''bltDPXYuaWdub3JlQ2FzZT9DWzBdLnRvTG93ZXJDYXNlKCk6Q1swXSxILnN1YnN0cihDLmxlbmd0aCldfWZ1bmN0aW9uIHIodixIKXt2YXIgQz12KEg9SC5yZXBsYWNlKC9eXHMqLywiIikpO2lmKEMpcmV0dXJuW0NbMF0sQ1sxXS5yZXBsYWNlKC9eXHMqLywiIildfWZ1bmN0aW9uIHUodixI''@;'; put 'put ''LEMsVixTKXtmb3IodmFyIF89W10sYj1bXSxNPVtdLHg9ZnVuY3Rpb24gbyh2LEgpe2Zvcih2YXIgQz12LFY9SDtDJiZWOylDPlY/QyU9VjpWJT1DO3JldHVybiB2KkgvKEMrVil9KFYubGVuZ3RoLFMubGVuZ3RoKSxFPTA7RTx4O0UrKyl7dmFyIHc9SChWW0UlVi5sZW5ndGhdLFNbRSVTLmxl''@;'; put 'put ''bmd0aF0pO2lmKCF3KXJldHVybjtfLnB1c2god1swXSksYi5wdXNoKHdbMV0pLE0ucHVzaCh3WzJdKX1yZXR1cm5bXyxiLGZ1bmN0aW9uKE4pe3ZhciBJPU4ubWFwKGZ1bmN0aW9uKFcsTyl7cmV0dXJuIE1bT10oVyl9KS5qb2luKEMpO3JldHVybiB2P3YoSSk6SX1dfWUuY29uc3VtZVRva2Vu''@;'; put 'put ''PWwsZS5jb25zdW1lVHJpbW1lZD1yLGUuY29uc3VtZVJlcGVhdGVkPWZ1bmN0aW9uIGEodixILEMpe3Y9ci5iaW5kKG51bGwsdik7Zm9yKHZhciBWPVtdOzspe3ZhciBTPXYoQyk7aWYoIVMpcmV0dXJuW1YsQ107aWYoVi5wdXNoKFNbMF0pLCEoUz1sKEgsQz1TWzFdKSl8fCIiPT1TWzFdKXJl''@;'; put 'put ''dHVybltWLENdO0M9U1sxXX19LGUuY29uc3VtZVBhcmVudGhlc2lzZWQ9ZnVuY3Rpb24gYyh2LEgpe2Zvcih2YXIgQz0wLFY9MDtWPEgubGVuZ3RoJiYoIS9cc3wsLy50ZXN0KEhbVl0pfHwwIT1DKTtWKyspaWYoIigiPT1IW1ZdKUMrKztlbHNlIGlmKCIpIj09SFtWXSYmKDA9PS0tQyYmVisr''@;'; put 'put ''LEM8PTApKWJyZWFrO3ZhciBTPXYoSC5zdWJzdHIoMCxWKSk7cmV0dXJuIG51bGw9PVM/dm9pZCAwOltTLEguc3Vic3RyKFYpXX0sZS5pZ25vcmU9ZnVuY3Rpb24gaCh2KXtyZXR1cm4gZnVuY3Rpb24oSCl7dmFyIEM9dihIKTtyZXR1cm4gQyYmKENbMF09dm9pZCAwKSxDfX0sZS5vcHRpb25h''@;'; put 'put ''bD1mdW5jdGlvbiBmKHYsSCl7cmV0dXJuIGZ1bmN0aW9uKEMpe3JldHVybiB2KEMpfHxbSCxDXX19LGUuY29uc3VtZUxpc3Q9ZnVuY3Rpb24gZyh2LEgpe2Zvcih2YXIgQz1bXSxWPTA7Vjx2Lmxlbmd0aDtWKyspe3ZhciBTPWUuY29uc3VtZVRyaW1tZWQodltWXSxIKTtpZighU3x8IiI9PVNb''@;'; put 'put ''MF0pcmV0dXJuO3ZvaWQgMCE9PVNbMF0mJkMucHVzaChTWzBdKSxIPVNbMV19aWYoIiI9PUgpcmV0dXJuIEN9LGUubWVyZ2VOZXN0ZWRSZXBlYXRlZD11LmJpbmQobnVsbCxudWxsKSxlLm1lcmdlV3JhcHBlZE5lc3RlZFJlcGVhdGVkPXUsZS5tZXJnZUxpc3Q9ZnVuY3Rpb24gcCh2LEgsQyl7''@;'; put 'put ''Zm9yKHZhciBWPVtdLFM9W10sXz1bXSxiPTAsTT0wO008Qy5sZW5ndGg7TSsrKWlmKCJmdW5jdGlvbiI9PXR5cGVvZiBDW01dKXt2YXIgeD1DW01dKHZbYl0sSFtiKytdKTtWLnB1c2goeFswXSksUy5wdXNoKHhbMV0pLF8ucHVzaCh4WzJdKX1lbHNlIWZ1bmN0aW9uKEUpe1YucHVzaCghMSks''@;'; put 'put ''Uy5wdXNoKCExKSxfLnB1c2goZnVuY3Rpb24oKXtyZXR1cm4gQ1tFXX0pfShNKTtyZXR1cm5bVixTLGZ1bmN0aW9uKEUpe2Zvcih2YXIgdz0iIixOPTA7TjxFLmxlbmd0aDtOKyspdys9X1tOXShFW05dKTtyZXR1cm4gd31dfX0oRjEpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGwoaCl7dmFyIGc9''@;'; put 'put ''e2luc2V0OiExLGxlbmd0aHM6W10sY29sb3I6bnVsbH0sdT1lLmNvbnN1bWVSZXBlYXRlZChmdW5jdGlvbiBmKHApe3ZhciB2PWUuY29uc3VtZVRva2VuKC9eaW5zZXQvaSxwKTtyZXR1cm4gdj8oZy5pbnNldD0hMCx2KToodj1lLmNvbnN1bWVMZW5ndGhPclBlcmNlbnQocCkpPyhnLmxlbmd0''@;'; put 'put ''aHMucHVzaCh2WzBdKSx2KToodj1lLmNvbnN1bWVDb2xvcihwKSk/KGcuY29sb3I9dlswXSx2KTp2b2lkIDB9LC9eLyxoKTtpZih1JiZ1WzBdLmxlbmd0aClyZXR1cm5bZyx1WzFdXX12YXIgbz1mdW5jdGlvbiBjKGgsZixnLHUpe2Z1bmN0aW9uIHAoXyl7cmV0dXJue2luc2V0Ol8sY29sb3I6''@;'; put 'put ''WzAsMCwwLDBdLGxlbmd0aHM6W3tweDowfSx7cHg6MH0se3B4OjB9LHtweDowfV19fWZvcih2YXIgdj1bXSxIPVtdLEM9MDtDPGcubGVuZ3RofHxDPHUubGVuZ3RoO0MrKyl7dmFyIFY9Z1tDXXx8cCh1W0NdLmluc2V0KSxTPXVbQ118fHAoZ1tDXS5pbnNldCk7di5wdXNoKFYpLEgucHVzaChT''@;'; put 'put ''KX1yZXR1cm4gZS5tZXJnZU5lc3RlZFJlcGVhdGVkKGgsZix2LEgpfS5iaW5kKG51bGwsZnVuY3Rpb24gYShoLGYpe2Zvcig7aC5sZW5ndGhzLmxlbmd0aDxNYXRoLm1heChoLmxlbmd0aHMubGVuZ3RoLGYubGVuZ3Rocy5sZW5ndGgpOyloLmxlbmd0aHMucHVzaCh7cHg6MH0pO2Zvcig7Zi5s''@;'; put 'put ''ZW5ndGhzLmxlbmd0aDxNYXRoLm1heChoLmxlbmd0aHMubGVuZ3RoLGYubGVuZ3Rocy5sZW5ndGgpOylmLmxlbmd0aHMucHVzaCh7cHg6MH0pO2lmKGguaW5zZXQ9PWYuaW5zZXQmJiEhaC5jb2xvcj09ISFmLmNvbG9yKXtmb3IodmFyIGcsdT1bXSxwPVtbXSwwXSx2PVtbXSwwXSxIPTA7SDxo''@;'; put 'put ''Lmxlbmd0aHMubGVuZ3RoO0grKyl7dmFyIEM9ZS5tZXJnZURpbWVuc2lvbnMoaC5sZW5ndGhzW0hdLGYubGVuZ3Roc1tIXSwyPT1IKTtwWzBdLnB1c2goQ1swXSksdlswXS5wdXNoKENbMV0pLHUucHVzaChDWzJdKX1pZihoLmNvbG9yJiZmLmNvbG9yKXt2YXIgVj1lLm1lcmdlQ29sb3JzKGgu''@;'; put 'put ''Y29sb3IsZi5jb2xvcik7cFsxXT1WWzBdLHZbMV09VlsxXSxnPVZbMl19cmV0dXJuW3AsdixmdW5jdGlvbihTKXtmb3IodmFyIF89aC5pbnNldD8iaW5zZXQgIjoiICIsYj0wO2I8dS5sZW5ndGg7YisrKV8rPXVbYl0oU1swXVtiXSkrIiAiO3JldHVybiBnJiYoXys9ZyhTWzFdKSksX31dfX0s''@;'; put 'put ''IiwgIik7ZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihmdW5jdGlvbiByKGgpe3ZhciBmPWUuY29uc3VtZVJlcGVhdGVkKGwsL14sLyxoKTtpZihmJiYiIj09ZlsxXSlyZXR1cm4gZlswXX0sbyxbImJveC1zaGFkb3ciLCJ0ZXh0LXNoYWRvdyJdKX0oRjEpLGZ1bmN0aW9uKGUsbCl7ZnVuY3Rpb24g''@;'; put 'put ''cihIKXtyZXR1cm4gSC50b0ZpeGVkKDMpLnJlcGxhY2UoLzArJC8sIiIpLnJlcGxhY2UoL1wuJC8sIiIpfWZ1bmN0aW9uIGEoSCxDLFYpe3JldHVybiBNYXRoLm1pbihDLE1hdGgubWF4KEgsVikpfWZ1bmN0aW9uIGMoSCl7aWYoL15ccypbLStdPyhcZCpcLik/XGQrXHMqJC8udGVzdChIKSly''@;'; put 'put ''ZXR1cm4gTnVtYmVyKEgpfWZ1bmN0aW9uIGcoSCxDKXtyZXR1cm4gZnVuY3Rpb24oVixTKXtyZXR1cm5bVixTLGZ1bmN0aW9uKF8pe3JldHVybiByKGEoSCxDLF8pKX1dfX1mdW5jdGlvbiB1KEgpe3ZhciBDPUgudHJpbSgpLnNwbGl0KC9ccypbXHMsXVxzKi8pO2lmKDAhPT1DLmxlbmd0aCl7''@;'; put 'put ''Zm9yKHZhciBWPVtdLFM9MDtTPEMubGVuZ3RoO1MrKyl7dmFyIF89YyhDW1NdKTtpZih2b2lkIDA9PT1fKXJldHVybjtWLnB1c2goXyl9cmV0dXJuIFZ9fWUuY2xhbXA9YSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKHUsZnVuY3Rpb24gcChILEMpe2lmKEgubGVuZ3RoPT1DLmxlbmd0aClyZXR1''@;'; put 'put ''cm5bSCxDLGZ1bmN0aW9uKFYpe3JldHVybiBWLm1hcChyKS5qb2luKCIgIil9XX0sWyJzdHJva2UtZGFzaGFycmF5Il0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxnKDAsMS8wKSxbImJvcmRlci1pbWFnZS13aWR0aCIsImxpbmUtaGVpZ2h0Il0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIo''@;'; put 'put ''YyxnKDAsMSksWyJvcGFjaXR5Iiwic2hhcGUtaW1hZ2UtdGhyZXNob2xkIl0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmdW5jdGlvbiBoKEgsQyl7aWYoMCE9SClyZXR1cm4gZygwLDEvMCkoSCxDKX0sWyJmbGV4LWdyb3ciLCJmbGV4LXNocmluayJdKSxlLmFkZFByb3BlcnRpZXNIYW5k''@;'; put 'put ''bGVyKGMsZnVuY3Rpb24gZihILEMpe3JldHVybltILEMsZnVuY3Rpb24oVil7cmV0dXJuIE1hdGgucm91bmQoYSgxLDEvMCxWKSl9XX0sWyJvcnBoYW5zIiwid2lkb3dzIl0pLGUuYWRkUHJvcGVydGllc0hhbmRsZXIoYyxmdW5jdGlvbiB2KEgsQyl7cmV0dXJuW0gsQyxNYXRoLnJvdW5kXX0s''@;'; put 'put ''WyJ6LWluZGV4Il0pLGUucGFyc2VOdW1iZXI9YyxlLnBhcnNlTnVtYmVyTGlzdD11LGUubWVyZ2VOdW1iZXJzPWZ1bmN0aW9uIG8oSCxDKXtyZXR1cm5bSCxDLHJdfSxlLm51bWJlclRvU3RyaW5nPXJ9KEYxKSxmdW5jdGlvbihlLGwpe2UuYWRkUHJvcGVydGllc0hhbmRsZXIoU3RyaW5nLGZ1''@;'; put 'put ''bmN0aW9uIHIoYSxjKXtpZigidmlzaWJsZSI9PWF8fCJ2aXNpYmxlIj09YylyZXR1cm5bMCwxLGZ1bmN0aW9uKG8pe3JldHVybiBvPD0wP2E6bz49MT9jOiJ2aXNpYmxlIn1dfSxbInZpc2liaWxpdHkiXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoaCl7aD1oLnRyaW0oKSxvLmZp''@;'; put 'put ''bGxTdHlsZT0iIzAwMCIsby5maWxsU3R5bGU9aDt2YXIgZj1vLmZpbGxTdHlsZTtpZihvLmZpbGxTdHlsZT0iI2ZmZiIsby5maWxsU3R5bGU9aCxmPT1vLmZpbGxTdHlsZSl7by5maWxsUmVjdCgwLDAsMSwxKTt2YXIgZz1vLmdldEltYWdlRGF0YSgwLDAsMSwxKS5kYXRhO28uY2xlYXJSZWN0''@;'; put 'put ''KDAsMCwxLDEpO3ZhciB1PWdbM10vMjU1O3JldHVybltnWzBdKnUsZ1sxXSp1LGdbMl0qdSx1XX19ZnVuY3Rpb24gYShoLGYpe3JldHVybltoLGYsZnVuY3Rpb24oZyl7aWYoZ1szXSlmb3IodmFyIHA9MDtwPDM7cCsrKWdbcF09TWF0aC5yb3VuZChNYXRoLm1heCgwLE1hdGgubWluKDI1NSxn''@;'; put 'put ''W3BdL2dbM10pKSk7cmV0dXJuIGdbM109ZS5udW1iZXJUb1N0cmluZyhlLmNsYW1wKDAsMSxnWzNdKSksInJnYmEoIitnLmpvaW4oIiwiKSsiKSJ9XX12YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCJjYW52YXMiKTtjLndpZHRo''@;'; put 'put ''PWMuaGVpZ2h0PTE7dmFyIG89Yy5nZXRDb250ZXh0KCIyZCIpO2UuYWRkUHJvcGVydGllc0hhbmRsZXIocixhLFsiYmFja2dyb3VuZC1jb2xvciIsImJvcmRlci1ib3R0b20tY29sb3IiLCJib3JkZXItbGVmdC1jb2xvciIsImJvcmRlci1yaWdodC1jb2xvciIsImJvcmRlci10b3AtY29sb3Ii''@;'; put 'put ''LCJjb2xvciIsImZpbGwiLCJmbG9vZC1jb2xvciIsImxpZ2h0aW5nLWNvbG9yIiwib3V0bGluZS1jb2xvciIsInN0b3AtY29sb3IiLCJzdHJva2UiLCJ0ZXh0LWRlY29yYXRpb24tY29sb3IiXSksZS5jb25zdW1lQ29sb3I9ZS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsciksZS5t''@;'; put 'put ''ZXJnZUNvbG9ycz1hfShGMSksZnVuY3Rpb24oZSxsKXtmdW5jdGlvbiByKF8pe2Z1bmN0aW9uIGIoKXt2YXIgVz1JLmV4ZWMoXyk7Tj1XP1dbMF06dm9pZCAwfWZ1bmN0aW9uIHgoKXtpZigiKCIhPT1OKXJldHVybiBmdW5jdGlvbiBNKCl7dmFyIFc9TnVtYmVyKE4pO3JldHVybiBiKCksV30o''@;'; put 'put ''KTtiKCk7dmFyIFc9dygpO3JldHVybiIpIiE9PU4/TmFOOihiKCksVyl9ZnVuY3Rpb24gRSgpe2Zvcih2YXIgVz14KCk7IioiPT09Tnx8Ii8iPT09Tjspe3ZhciBPPU47YigpO3ZhciBCPXgoKTsiKiI9PT1PP1cqPUI6Vy89Qn1yZXR1cm4gV31mdW5jdGlvbiB3KCl7Zm9yKHZhciBXPUUoKTsi''@;'; put 'put ''KyI9PT1OfHwiLSI9PT1OOyl7dmFyIE89TjtiKCk7dmFyIEI9RSgpOyIrIj09PU8/Vys9QjpXLT1CfXJldHVybiBXfXZhciBOLEk9LyhbXCtcLVx3XC5dK3xbXChcKVwqXC9dKS9nO3JldHVybiBiKCksdygpfWZ1bmN0aW9uIGEoXyxiKXtpZigiMCI9PShiPWIudHJpbSgpLnRvTG93ZXJDYXNl''@;'; put 'put ''KCkpJiYicHgiLnNlYXJjaChfKT49MClyZXR1cm57cHg6MH07aWYoL15bXihdKiR8XmNhbGMvLnRlc3QoYikpe2I9Yi5yZXBsYWNlKC9jYWxjXCgvZywiKCIpO3ZhciBNPXt9O2I9Yi5yZXBsYWNlKF8sZnVuY3Rpb24oTyl7cmV0dXJuIE1bT109bnVsbCwiVSIrT30pO2Zvcih2YXIgeD0iVSgi''@;'; put 'put ''K18uc291cmNlKyIpIixFPWIucmVwbGFjZSgvWy0rXT8oXGQqXC4pP1xkKyhbRWVdWy0rXT9cZCspPy9nLCJOIikucmVwbGFjZShuZXcgUmVnRXhwKCJOIit4LCJnIiksIkQiKS5yZXBsYWNlKC9cc1srLV1ccy9nLCJPIikucmVwbGFjZSgvXHMvZywiIiksdz1bL05cKihEKS9nLC8oTnxEKVsq''@;'; put 'put ''XC9dTi9nLC8oTnxEKU9cMS9nLC9cKChOfEQpXCkvZ10sTj0wO048dy5sZW5ndGg7KXdbTl0udGVzdChFKT8oRT1FLnJlcGxhY2Uod1tOXSwiJDEiKSxOPTApOk4rKztpZigiRCI9PUUpe2Zvcih2YXIgSSBpbiBNKXt2YXIgVz1yKGIucmVwbGFjZShuZXcgUmVnRXhwKCJVIitJLCJnIiksIiIp''@;'; put 'put ''LnJlcGxhY2UobmV3IFJlZ0V4cCh4LCJnIiksIiowIikpO2lmKCFpc0Zpbml0ZShXKSlyZXR1cm47TVtJXT1XfXJldHVybiBNfX19ZnVuY3Rpb24gYyhfLGIpe3JldHVybiBvKF8sYiwhMCl9ZnVuY3Rpb24gbyhfLGIsTSl7dmFyIHgsRT1bXTtmb3IoeCBpbiBfKUUucHVzaCh4KTtmb3IoeCBp''@;'; put 'put ''biBiKUUuaW5kZXhPZih4KTwwJiZFLnB1c2goeCk7cmV0dXJuIF89RS5tYXAoZnVuY3Rpb24odyl7cmV0dXJuIF9bd118fDB9KSxiPUUubWFwKGZ1bmN0aW9uKHcpe3JldHVybiBiW3ddfHwwfSksW18sYixmdW5jdGlvbih3KXt2YXIgTj13Lm1hcChmdW5jdGlvbihJLFcpe3JldHVybiAxPT13''@;'; put 'put ''Lmxlbmd0aCYmTSYmKEk9TWF0aC5tYXgoSSwwKSksZS5udW1iZXJUb1N0cmluZyhJKStFW1ddfSkuam9pbigiICsgIik7cmV0dXJuIHcubGVuZ3RoPjE/ImNhbGMoIitOKyIpIjpOfV19dmFyIGg9InB4fGVtfGV4fGNofHJlbXx2d3x2aHx2bWlufHZtYXh8Y218bW18aW58cHR8cGMiLGY9YS5i''@;'; put 'put ''aW5kKG51bGwsbmV3IFJlZ0V4cChoLCJnIikpLGc9YS5iaW5kKG51bGwsbmV3IFJlZ0V4cChoKyJ8JSIsImciKSksdT1hLmJpbmQobnVsbCwvZGVnfHJhZHxncmFkfHR1cm4vZyk7ZS5wYXJzZUxlbmd0aD1mLGUucGFyc2VMZW5ndGhPclBlcmNlbnQ9ZyxlLmNvbnN1bWVMZW5ndGhPclBlcmNl''@;'; put 'put ''bnQ9ZS5jb25zdW1lUGFyZW50aGVzaXNlZC5iaW5kKG51bGwsZyksZS5wYXJzZUFuZ2xlPXUsZS5tZXJnZURpbWVuc2lvbnM9bzt2YXIgcD1lLmNvbnN1bWVQYXJlbnRoZXNpc2VkLmJpbmQobnVsbCxmKSx2PWUuY29uc3VtZVJlcGVhdGVkLmJpbmQodm9pZCAwLHAsL14vKSxIPWUuY29uc3Vt''@;'; put 'put ''ZVJlcGVhdGVkLmJpbmQodm9pZCAwLHYsL14sLyk7ZS5jb25zdW1lU2l6ZVBhaXJMaXN0PUg7dmFyIFY9ZS5tZXJnZU5lc3RlZFJlcGVhdGVkLmJpbmQodm9pZCAwLGMsIiAiKSxTPWUubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKHZvaWQgMCxWLCIsIik7ZS5tZXJnZU5vbk5lZ2F0aXZlU2l6''@;'; put 'put ''ZVBhaXI9VixlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGZ1bmN0aW9uKF8pe3ZhciBiPUgoXyk7aWYoYiYmIiI9PWJbMV0pcmV0dXJuIGJbMF19LFMsWyJiYWNrZ3JvdW5kLXNpemUiXSksZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihnLGMsWyJib3JkZXItYm90dG9tLXdpZHRoIiwiYm9yZGVyLWlt''@;'; put 'put ''YWdlLXdpZHRoIiwiYm9yZGVyLWxlZnQtd2lkdGgiLCJib3JkZXItcmlnaHQtd2lkdGgiLCJib3JkZXItdG9wLXdpZHRoIiwiZmxleC1iYXNpcyIsImZvbnQtc2l6ZSIsImhlaWdodCIsImxpbmUtaGVpZ2h0IiwibWF4LWhlaWdodCIsIm1heC13aWR0aCIsIm91dGxpbmUtd2lkdGgiLCJ3aWR0''@;'; put 'put ''aCJdKSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGcsbyxbImJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXMiLCJib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cyIsImJvcmRlci10b3AtbGVmdC1yYWRpdXMiLCJib3JkZXItdG9wLXJpZ2h0LXJhZGl1cyIsImJvdHRvbSIsImxlZnQiLCJsZXR0ZXIt''@;'; put 'put ''c3BhY2luZyIsIm1hcmdpbi1ib3R0b20iLCJtYXJnaW4tbGVmdCIsIm1hcmdpbi1yaWdodCIsIm1hcmdpbi10b3AiLCJtaW4taGVpZ2h0IiwibWluLXdpZHRoIiwib3V0bGluZS1vZmZzZXQiLCJwYWRkaW5nLWJvdHRvbSIsInBhZGRpbmctbGVmdCIsInBhZGRpbmctcmlnaHQiLCJwYWRkaW5n''@;'; put 'put ''LXRvcCIsInBlcnNwZWN0aXZlIiwicmlnaHQiLCJzaGFwZS1tYXJnaW4iLCJzdHJva2UtZGFzaG9mZnNldCIsInRleHQtaW5kZW50IiwidG9wIiwidmVydGljYWwtYWxpZ24iLCJ3b3JkLXNwYWNpbmciXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIoZil7cmV0dXJuIGUuY29uc3Vt''@;'; put 'put ''ZUxlbmd0aE9yUGVyY2VudChmKXx8ZS5jb25zdW1lVG9rZW4oL15hdXRvLyxmKX1mdW5jdGlvbiBhKGYpe3ZhciBnPWUuY29uc3VtZUxpc3QoW2UuaWdub3JlKGUuY29uc3VtZVRva2VuLmJpbmQobnVsbCwvXnJlY3QvKSksZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZChudWxsLC9eXCgv''@;'; put 'put ''KSksZS5jb25zdW1lUmVwZWF0ZWQuYmluZChudWxsLHIsL14sLyksZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZChudWxsLC9eXCkvKSldLGYpO2lmKGcmJjQ9PWdbMF0ubGVuZ3RoKXJldHVybiBnWzBdfXZhciBoPWUubWVyZ2VXcmFwcGVkTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGZ1''@;'; put 'put ''bmN0aW9uIG8oZil7cmV0dXJuInJlY3QoIitmKyIpIn0sZnVuY3Rpb24gYyhmLGcpe3JldHVybiJhdXRvIj09Znx8ImF1dG8iPT1nP1shMCwhMSxmdW5jdGlvbih1KXt2YXIgcD11P2Y6ZztpZigiYXV0byI9PXApcmV0dXJuImF1dG8iO3ZhciB2PWUubWVyZ2VEaW1lbnNpb25zKHAscCk7cmV0''@;'; put 'put ''dXJuIHZbMl0odlswXSl9XTplLm1lcmdlRGltZW5zaW9ucyhmLGcpfSwiLCAiKTtlLnBhcnNlQm94PWEsZS5tZXJnZUJveGVzPWgsZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihhLGgsWyJjbGlwIl0pfShGMSksZnVuY3Rpb24oZSxsKXtmdW5jdGlvbiByKFYpe3JldHVybiBmdW5jdGlvbihTKXt2''@;'; put 'put ''YXIgXz0wO3JldHVybiBWLm1hcChmdW5jdGlvbihiKXtyZXR1cm4gYj09PXA/U1tfKytdOmJ9KX19ZnVuY3Rpb24gYShWKXtyZXR1cm4gVn1mdW5jdGlvbiBjKFYpe2lmKCJub25lIj09KFY9Vi50b0xvd2VyQ2FzZSgpLnRyaW0oKSkpcmV0dXJuW107Zm9yKHZhciBTLF89L1xzKihcdyspXCgo''@;'; put 'put ''W14pXSopXCkvZyxiPVtdLE09MDtTPV8uZXhlYyhWKTspe2lmKFMuaW5kZXghPU0pcmV0dXJuO009Uy5pbmRleCtTWzBdLmxlbmd0aDt2YXIgeD1TWzFdLEU9Q1t4XTtpZighRSlyZXR1cm47dmFyIHc9U1syXS5zcGxpdCgiLCIpLE49RVswXTtpZihOLmxlbmd0aDx3Lmxlbmd0aClyZXR1cm47''@;'; put 'put ''Zm9yKHZhciBJPVtdLFc9MDtXPE4ubGVuZ3RoO1crKyl7dmFyIE8sQj13W1ddLFI9TltXXTtpZih2b2lkIDA9PT0oTz1CP3tBOmZ1bmN0aW9uKGwxKXtyZXR1cm4iMCI9PWwxLnRyaW0oKT9IOmUucGFyc2VBbmdsZShsMSl9LE46ZS5wYXJzZU51bWJlcixUOmUucGFyc2VMZW5ndGhPclBlcmNl''@;'; put 'put ''bnQsTDplLnBhcnNlTGVuZ3RofVtSLnRvVXBwZXJDYXNlKCldKEIpOnthOkgsbjpJWzBdLHQ6dn1bUl0pKXJldHVybjtJLnB1c2goTyl9aWYoYi5wdXNoKHt0OngsZDpJfSksXy5sYXN0SW5kZXg9PVYubGVuZ3RoKXJldHVybiBifX1mdW5jdGlvbiBvKFYpe3JldHVybiBWLnRvRml4ZWQoNiku''@;'; put 'put ''cmVwbGFjZSgiLjAwMDAwMCIsIiIpfWZ1bmN0aW9uIGgoVixTKXtpZihWLmRlY29tcG9zaXRpb25QYWlyIT09Uyl7Vi5kZWNvbXBvc2l0aW9uUGFpcj1TO3ZhciBfPWUubWFrZU1hdHJpeERlY29tcG9zaXRpb24oVil9aWYoUy5kZWNvbXBvc2l0aW9uUGFpciE9PVYpe1MuZGVjb21wb3NpdGlv''@;'; put 'put ''blBhaXI9Vjt2YXIgYj1lLm1ha2VNYXRyaXhEZWNvbXBvc2l0aW9uKFMpfXJldHVybiBudWxsPT1fWzBdfHxudWxsPT1iWzBdP1tbITFdLFshMF0sZnVuY3Rpb24oTSl7cmV0dXJuIE0/U1swXS5kOlZbMF0uZH1dOihfWzBdLnB1c2goMCksYlswXS5wdXNoKDEpLFtfLGIsZnVuY3Rpb24oTSl7''@;'; put 'put ''dmFyIHg9ZS5xdWF0KF9bMF1bM10sYlswXVszXSxNWzVdKTtyZXR1cm4gZS5jb21wb3NlTWF0cml4KE1bMF0sTVsxXSxNWzJdLHgsTVs0XSkubWFwKG8pLmpvaW4oIiwiKX1dKX1mdW5jdGlvbiBmKFYpe3JldHVybiBWLnJlcGxhY2UoL1t4eV0vLCIiKX1mdW5jdGlvbiBnKFYpe3JldHVybiBW''@;'; put 'put ''LnJlcGxhY2UoLyh4fHl8enwzZCk/JC8sIjNkIil9dmFyIHA9bnVsbCx2PXtweDowfSxIPXtkZWc6MH0sQz17bWF0cml4OlsiTk5OTk5OIixbcCxwLDAsMCxwLHAsMCwwLDAsMCwxLDAscCxwLDAsMV0sYV0sbWF0cml4M2Q6WyJOTk5OTk5OTk5OTk5OTk5OIixhXSxyb3RhdGU6WyJBIl0scm90''@;'; put 'put ''YXRleDpbIkEiXSxyb3RhdGV5OlsiQSJdLHJvdGF0ZXo6WyJBIl0scm90YXRlM2Q6WyJOTk5BIl0scGVyc3BlY3RpdmU6WyJMIl0sc2NhbGU6WyJObiIscihbcCxwLDFdKSxhXSxzY2FsZXg6WyJOIixyKFtwLDEsMV0pLHIoW3AsMV0pXSxzY2FsZXk6WyJOIixyKFsxLHAsMV0pLHIoWzEscF0p''@;'; put 'put ''XSxzY2FsZXo6WyJOIixyKFsxLDEscF0pXSxzY2FsZTNkOlsiTk5OIixhXSxza2V3OlsiQWEiLG51bGwsYV0sc2tld3g6WyJBIixudWxsLHIoW3AsSF0pXSxza2V3eTpbIkEiLG51bGwscihbSCxwXSldLHRyYW5zbGF0ZTpbIlR0IixyKFtwLHAsdl0pLGFdLHRyYW5zbGF0ZXg6WyJUIixyKFtw''@;'; put 'put ''LHYsdl0pLHIoW3Asdl0pXSx0cmFuc2xhdGV5OlsiVCIscihbdixwLHZdKSxyKFt2LHBdKV0sdHJhbnNsYXRlejpbIkwiLHIoW3YsdixwXSldLHRyYW5zbGF0ZTNkOlsiVFRMIixhXX07ZS5hZGRQcm9wZXJ0aWVzSGFuZGxlcihjLGZ1bmN0aW9uIHUoVixTKXt2YXIgXz1lLm1ha2VNYXRyaXhE''@;'; put 'put ''ZWNvbXBvc2l0aW9uJiYhMCxiPSExO2lmKCFWLmxlbmd0aHx8IVMubGVuZ3RoKXtWLmxlbmd0aHx8KGI9ITAsVj1TLFM9W10pO2Zvcih2YXIgTT0wO008Vi5sZW5ndGg7TSsrKXt2YXIgRT1WW01dLmQsdz0ic2NhbGUiPT0oeD1WW01dLnQpLnN1YnN0cigwLDUpPzE6MDtTLnB1c2goe3Q6eCxk''@;'; put 'put ''OkUubWFwKGZ1bmN0aW9uKFEpe2lmKCJudW1iZXIiPT10eXBlb2YgUSlyZXR1cm4gdzt2YXIgczE9e307Zm9yKHZhciBtMSBpbiBRKXMxW20xXT13O3JldHVybiBzMX0pfSl9fXZhciBRLHMxLEk9W10sVz1bXSxPPVtdO2lmKFYubGVuZ3RoIT1TLmxlbmd0aCl7aWYoIV8pcmV0dXJuO0k9WyhC''@;'; put 'put ''PWgoVixTKSlbMF1dLFc9W0JbMV1dLE89W1sibWF0cml4IixbQlsyXV1dXX1lbHNlIGZvcihNPTA7TTxWLmxlbmd0aDtNKyspe3ZhciB4LFI9VltNXS50LGwxPVNbTV0udCxhMT1WW01dLmQsaDE9U1tNXS5kLHUxPUNbUl0scDE9Q1tsMV07aWYoczE9bDEsInBlcnNwZWN0aXZlIj09KFE9Uikm''@;'; put 'put ''JiJwZXJzcGVjdGl2ZSI9PXMxfHwoIm1hdHJpeCI9PVF8fCJtYXRyaXgzZCI9PVEpJiYoIm1hdHJpeCI9PXMxfHwibWF0cml4M2QiPT1zMSkpe2lmKCFfKXJldHVybjt2YXIgQj1oKFtWW01dXSxbU1tNXV0pO0kucHVzaChCWzBdKSxXLnB1c2goQlsxXSksTy5wdXNoKFsibWF0cml4IixbQlsy''@;'; put 'put ''XV1dKX1lbHNle2lmKFI9PWwxKXg9UjtlbHNlIGlmKHUxWzJdJiZwMVsyXSYmZihSKT09ZihsMSkpeD1mKFIpLGExPXUxWzJdKGExKSxoMT1wMVsyXShoMSk7ZWxzZXtpZighdTFbMV18fCFwMVsxXXx8ZyhSKSE9ZyhsMSkpe2lmKCFfKXJldHVybjtJPVsoQj1oKFYsUykpWzBdXSxXPVtCWzFd''@;'; put 'put ''XSxPPVtbIm1hdHJpeCIsW0JbMl1dXV07YnJlYWt9eD1nKFIpLGExPXUxWzFdKGExKSxoMT1wMVsxXShoMSl9Zm9yKHZhciB2MT1bXSxFMT1bXSxqPVtdLGMxPTA7YzE8YTEubGVuZ3RoO2MxKyspQj0oIm51bWJlciI9PXR5cGVvZiBhMVtjMV0/ZS5tZXJnZU51bWJlcnM6ZS5tZXJnZURpbWVu''@;'; put 'put ''c2lvbnMpKGExW2MxXSxoMVtjMV0pLHYxW2MxXT1CWzBdLEUxW2MxXT1CWzFdLGoucHVzaChCWzJdKTtJLnB1c2godjEpLFcucHVzaChFMSksTy5wdXNoKFt4LGpdKX19aWYoYil7dmFyIF8xPUk7ST1XLFc9XzF9cmV0dXJuW0ksVyxmdW5jdGlvbihRKXtyZXR1cm4gUS5tYXAoZnVuY3Rpb24o''@;'; put 'put ''czEsbTEpe3ZhciBiMT1zMS5tYXAoZnVuY3Rpb24oQjEsJCl7cmV0dXJuIE9bbTFdWzFdWyRdKEIxKX0pLmpvaW4oIiwiKTtyZXR1cm4ibWF0cml4Ij09T1ttMV1bMF0mJjE2PT1iMS5zcGxpdCgiLCIpLmxlbmd0aCYmKE9bbTFdWzBdPSJtYXRyaXgzZCIpLE9bbTFdWzBdKyIoIitiMSsiKSJ9''@;'; put 'put ''KS5qb2luKCIgIil9XX0sWyJ0cmFuc2Zvcm0iXSksZS50cmFuc2Zvcm1Ub1N2Z01hdHJpeD1mdW5jdGlvbihWKXt2YXIgUz1lLnRyYW5zZm9ybUxpc3RUb01hdHJpeChjKFYpKTtyZXR1cm4ibWF0cml4KCIrbyhTWzBdKSsiICIrbyhTWzFdKSsiICIrbyhTWzRdKSsiICIrbyhTWzVdKSsiICIr''@;'; put 'put ''byhTWzEyXSkrIiAiK28oU1sxM10pKyIpIn19KEYxKSxmdW5jdGlvbihlKXtmdW5jdGlvbiByKGMpe3JldHVybiBjPTEwMCpNYXRoLnJvdW5kKGMvMTAwKSw0MDA9PT0oYz1lLmNsYW1wKDEwMCw5MDAsYykpPyJub3JtYWwiOjcwMD09PWM/ImJvbGQiOlN0cmluZyhjKX1lLmFkZFByb3BlcnRp''@;'; put 'put ''ZXNIYW5kbGVyKGZ1bmN0aW9uIGwoYyl7dmFyIG89TnVtYmVyKGMpO2lmKCEoaXNOYU4obyl8fG88MTAwfHxvPjkwMHx8byUxMDAhPTApKXJldHVybiBvfSxmdW5jdGlvbiBhKGMsbyl7cmV0dXJuW2MsbyxyXX0sWyJmb250LXdlaWdodCJdKX0oRjEpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGwo''@;'; put 'put ''dSl7dmFyIHA9e307Zm9yKHZhciB2IGluIHUpcFt2XT0tdVt2XTtyZXR1cm4gcH1mdW5jdGlvbiByKHUpe3JldHVybiBlLmNvbnN1bWVUb2tlbigvXihsZWZ0fGNlbnRlcnxyaWdodHx0b3B8Ym90dG9tKVxiL2ksdSl8fGUuY29uc3VtZUxlbmd0aE9yUGVyY2VudCh1KX1mdW5jdGlvbiBhKHUs''@;'; put 'put ''cCl7dmFyIHY9ZS5jb25zdW1lUmVwZWF0ZWQociwvXi8scCk7aWYodiYmIiI9PXZbMV0pe3ZhciBIPXZbMF07aWYoSFswXT1IWzBdfHwiY2VudGVyIixIWzFdPUhbMV18fCJjZW50ZXIiLDM9PXUmJihIWzJdPUhbMl18fHtweDowfSksSC5sZW5ndGg9PXUpe2lmKC90b3B8Ym90dG9tLy50ZXN0''@;'; put 'put ''KEhbMF0pfHwvbGVmdHxyaWdodC8udGVzdChIWzFdKSl7dmFyIEM9SFswXTtIWzBdPUhbMV0sSFsxXT1DfWlmKC9sZWZ0fHJpZ2h0fGNlbnRlcnxPYmplY3QvLnRlc3QoSFswXSkmJi90b3B8Ym90dG9tfGNlbnRlcnxPYmplY3QvLnRlc3QoSFsxXSkpcmV0dXJuIEgubWFwKGZ1bmN0aW9uKFYp''@;'; put 'put ''e3JldHVybiJvYmplY3QiPT10eXBlb2YgVj9WOmhbVl19KX19fWZ1bmN0aW9uIGModSl7dmFyIHA9ZS5jb25zdW1lUmVwZWF0ZWQociwvXi8sdSk7aWYocCl7Zm9yKHZhciB2PXBbMF0sSD1beyIlIjo1MH0seyIlIjo1MH1dLEM9MCxWPSExLFM9MDtTPHYubGVuZ3RoO1MrKyl7dmFyIF89dltT''@;'; put 'put ''XTsic3RyaW5nIj09dHlwZW9mIF8/KFY9L2JvdHRvbXxyaWdodC8udGVzdChfKSxIW0M9e2xlZnQ6MCxyaWdodDowLGNlbnRlcjpDLHRvcDoxLGJvdHRvbToxfVtfXV09aFtfXSwiY2VudGVyIj09XyYmQysrKTooViYmKChfPWwoXykpWyIlIl09KF9bIiUiXXx8MCkrMTAwKSxIW0NdPV8sQysr''@;'; put 'put ''LFY9ITEpfXJldHVybltILHBbMV1dfX12YXIgaD17bGVmdDp7IiUiOjB9LGNlbnRlcjp7IiUiOjUwfSxyaWdodDp7IiUiOjEwMH0sdG9wOnsiJSI6MH0sYm90dG9tOnsiJSI6MTAwfX0sZj1lLm1lcmdlTmVzdGVkUmVwZWF0ZWQuYmluZChudWxsLGUubWVyZ2VEaW1lbnNpb25zLCIgIik7ZS5h''@;'; put 'put ''ZGRQcm9wZXJ0aWVzSGFuZGxlcihhLmJpbmQobnVsbCwzKSxmLFsidHJhbnNmb3JtLW9yaWdpbiJdKSxlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGEuYmluZChudWxsLDIpLGYsWyJwZXJzcGVjdGl2ZS1vcmlnaW4iXSksZS5jb25zdW1lUG9zaXRpb249YyxlLm1lcmdlT2Zmc2V0TGlzdD1mO3Zh''@;'; put 'put ''ciBnPWUubWVyZ2VOZXN0ZWRSZXBlYXRlZC5iaW5kKG51bGwsZiwiLCAiKTtlLmFkZFByb3BlcnRpZXNIYW5kbGVyKGZ1bmN0aW9uIG8odSl7dmFyIHA9ZS5jb25zdW1lUmVwZWF0ZWQoYywvXiwvLHUpO2lmKHAmJiIiPT1wWzFdKXJldHVybiBwWzBdfSxnLFsiYmFja2dyb3VuZC1wb3NpdGlv''@;'; put 'put ''biIsIm9iamVjdC1wb3NpdGlvbiJdKX0oRjEpLGZ1bmN0aW9uKGUpe3ZhciBhPWUuY29uc3VtZVBhcmVudGhlc2lzZWQuYmluZChudWxsLGUucGFyc2VMZW5ndGhPclBlcmNlbnQpLGM9ZS5jb25zdW1lUmVwZWF0ZWQuYmluZCh2b2lkIDAsYSwvXi8pLG89ZS5tZXJnZU5lc3RlZFJlcGVhdGVk''@;'; put 'put ''LmJpbmQodm9pZCAwLGUubWVyZ2VEaW1lbnNpb25zLCIgIiksaD1lLm1lcmdlTmVzdGVkUmVwZWF0ZWQuYmluZCh2b2lkIDAsbywiLCIpO2UuYWRkUHJvcGVydGllc0hhbmRsZXIoZnVuY3Rpb24gbChmKXt2YXIgZz1lLmNvbnN1bWVUb2tlbigvXmNpcmNsZS8sZik7aWYoZyYmZ1swXSlyZXR1''@;'; put 'put ''cm5bImNpcmNsZSJdLmNvbmNhdChlLmNvbnN1bWVMaXN0KFtlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwoLykpLGEsZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15hdC8pKSxlLmNvbnN1bWVQb3NpdGlvbixlLmlnbm9yZShlLmNvbnN1bWVUb2tl''@;'; put 'put ''bi5iaW5kKHZvaWQgMCwvXlwpLykpXSxnWzFdKSk7dmFyIHU9ZS5jb25zdW1lVG9rZW4oL15lbGxpcHNlLyxmKTtpZih1JiZ1WzBdKXJldHVyblsiZWxsaXBzZSJdLmNvbmNhdChlLmNvbnN1bWVMaXN0KFtlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwoLykpLGMsZS5p''@;'; put 'put ''Z25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15hdC8pKSxlLmNvbnN1bWVQb3NpdGlvbixlLmlnbm9yZShlLmNvbnN1bWVUb2tlbi5iaW5kKHZvaWQgMCwvXlwpLykpXSx1WzFdKSk7dmFyIHA9ZS5jb25zdW1lVG9rZW4oL15wb2x5Z29uLyxmKTtyZXR1cm4gcCYmcFswXT9bInBv''@;'; put 'put ''bHlnb24iXS5jb25jYXQoZS5jb25zdW1lTGlzdChbZS5pZ25vcmUoZS5jb25zdW1lVG9rZW4uYmluZCh2b2lkIDAsL15cKC8pKSxlLm9wdGlvbmFsKGUuY29uc3VtZVRva2VuLmJpbmQodm9pZCAwLC9ebm9uemVyb1xzKix8XmV2ZW5vZGRccyosLyksIm5vbnplcm8sIiksZS5jb25zdW1lU2l6''@;'; put 'put ''ZVBhaXJMaXN0LGUuaWdub3JlKGUuY29uc3VtZVRva2VuLmJpbmQodm9pZCAwLC9eXCkvKSldLHBbMV0pKTp2b2lkIDB9LGZ1bmN0aW9uIHIoZixnKXtpZihmWzBdPT09Z1swXSlyZXR1cm4iY2lyY2xlIj09ZlswXT9lLm1lcmdlTGlzdChmLnNsaWNlKDEpLGcuc2xpY2UoMSksWyJjaXJjbGUo''@;'; put 'put ''IixlLm1lcmdlRGltZW5zaW9ucywiIGF0ICIsZS5tZXJnZU9mZnNldExpc3QsIikiXSk6ImVsbGlwc2UiPT1mWzBdP2UubWVyZ2VMaXN0KGYuc2xpY2UoMSksZy5zbGljZSgxKSxbImVsbGlwc2UoIixlLm1lcmdlTm9uTmVnYXRpdmVTaXplUGFpciwiIGF0ICIsZS5tZXJnZU9mZnNldExpc3Qs''@;'; put 'put ''IikiXSk6InBvbHlnb24iPT1mWzBdJiZmWzFdPT1nWzFdP2UubWVyZ2VMaXN0KGYuc2xpY2UoMiksZy5zbGljZSgyKSxbInBvbHlnb24oIixmWzFdLGgsIikiXSk6dm9pZCAwfSxbInNoYXBlLW91dHNpZGUiXSl9KEYxKSxmdW5jdGlvbihlLGwpe2Z1bmN0aW9uIHIobyxoKXtoLmNvbmNhdChb''@;'; put 'put ''b10pLmZvckVhY2goZnVuY3Rpb24oZil7ZiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUmJihhW29dPWYpLGNbZl09b30pfXZhciBhPXt9LGM9e307cigidHJhbnNmb3JtIixbIndlYmtpdFRyYW5zZm9ybSIsIm1zVHJhbnNmb3JtIl0pLHIoInRyYW5zZm9ybU9yaWdpbiIsWyJ3''@;'; put 'put ''ZWJraXRUcmFuc2Zvcm1PcmlnaW4iXSkscigicGVyc3BlY3RpdmUiLFsid2Via2l0UGVyc3BlY3RpdmUiXSkscigicGVyc3BlY3RpdmVPcmlnaW4iLFsid2Via2l0UGVyc3BlY3RpdmVPcmlnaW4iXSksZS5wcm9wZXJ0eU5hbWU9ZnVuY3Rpb24obyl7cmV0dXJuIGFbb118fG99LGUudW5wcmVm''@;'; put 'put ''aXhlZFByb3BlcnR5TmFtZT1mdW5jdGlvbihvKXtyZXR1cm4gY1tvXXx8b319KEYxKX0oKSxmdW5jdGlvbigpe2lmKHZvaWQgMD09PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmFuaW1hdGUoW10pLm9uY2FuY2VsKXtpZih3aW5kb3cucGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5v''@;'; put 'put ''dyl2YXIgaz1mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX07ZWxzZSBrPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCl9O3ZhciBBPWZ1bmN0aW9uKGwscixhKXt0aGlzLnRhcmdldD1sLHRoaXMuY3VycmVudFRpbWU9cix0aGlzLnRpbWVsaW5lVGltZT1hLHRoaXMudHlw''@;'; put 'put ''ZT0iY2FuY2VsIix0aGlzLmJ1YmJsZXM9ITEsdGhpcy5jYW5jZWxhYmxlPSExLHRoaXMuY3VycmVudFRhcmdldD1sLHRoaXMuZGVmYXVsdFByZXZlbnRlZD0hMSx0aGlzLmV2ZW50UGhhc2U9RXZlbnQuQVRfVEFSR0VULHRoaXMudGltZVN0YW1wPURhdGUubm93KCl9LGU9d2luZG93LkVsZW1l''@;'; put 'put ''bnQucHJvdG90eXBlLmFuaW1hdGU7d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFuaW1hdGU9ZnVuY3Rpb24obCxyKXt2YXIgYT1lLmNhbGwodGhpcyxsLHIpO2EuX2NhbmNlbEhhbmRsZXJzPVtdLGEub25jYW5jZWw9bnVsbDt2YXIgYz1hLmNhbmNlbDthLmNhbmNlbD1mdW5jdGlvbigpe2Mu''@;'; put 'put ''Y2FsbCh0aGlzKTt2YXIgZj1uZXcgQSh0aGlzLG51bGwsaygpKSxnPXRoaXMuX2NhbmNlbEhhbmRsZXJzLmNvbmNhdCh0aGlzLm9uY2FuY2VsP1t0aGlzLm9uY2FuY2VsXTpbXSk7c2V0VGltZW91dChmdW5jdGlvbigpe2cuZm9yRWFjaChmdW5jdGlvbih1KXt1LmNhbGwoZi50YXJnZXQsZil9''@;'; put 'put ''KX0sMCl9O3ZhciBvPWEuYWRkRXZlbnRMaXN0ZW5lcjthLmFkZEV2ZW50TGlzdGVuZXI9ZnVuY3Rpb24oZixnKXsiZnVuY3Rpb24iPT10eXBlb2YgZyYmImNhbmNlbCI9PWY/dGhpcy5fY2FuY2VsSGFuZGxlcnMucHVzaChnKTpvLmNhbGwodGhpcyxmLGcpfTt2YXIgaD1hLnJlbW92ZUV2ZW50''@;'; put 'put ''TGlzdGVuZXI7cmV0dXJuIGEucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbihmLGcpe2lmKCJjYW5jZWwiPT1mKXt2YXIgdT10aGlzLl9jYW5jZWxIYW5kbGVycy5pbmRleE9mKGcpO3U+PTAmJnRoaXMuX2NhbmNlbEhhbmRsZXJzLnNwbGljZSh1LDEpfWVsc2UgaC5jYWxsKHRoaXMsZixn''@;'; put 'put ''KX0sYX19fSgpLGZ1bmN0aW9uKGspe3ZhciBBPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxlPW51bGwsbD0hMTt0cnl7dmFyIGE9IjAiPT1nZXRDb21wdXRlZFN0eWxlKEEpLmdldFByb3BlcnR5VmFsdWUoIm9wYWNpdHkiKT8iMSI6IjAiOyhlPUEuYW5pbWF0ZSh7b3BhY2l0eTpbYSxhXX0s''@;'; put 'put ''e2R1cmF0aW9uOjF9KSkuY3VycmVudFRpbWU9MCxsPWdldENvbXB1dGVkU3R5bGUoQSkuZ2V0UHJvcGVydHlWYWx1ZSgib3BhY2l0eSIpPT1hfWNhdGNoKG8pe31maW5hbGx5e2UmJmUuY2FuY2VsKCl9aWYoIWwpe3ZhciBjPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlO3dpbmRv''@;'; put 'put ''dy5FbGVtZW50LnByb3RvdHlwZS5hbmltYXRlPWZ1bmN0aW9uKG8saCl7cmV0dXJuIHdpbmRvdy5TeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmQXJyYXkucHJvdG90eXBlLmZyb20mJm9bU3ltYm9sLml0ZXJhdG9yXSYmKG89QXJyYXkuZnJvbShvKSksQXJyYXkuaXNBcnJheShvKXx8bnVsbD09''@;'; put 'put ''PW98fChvPWsuY29udmVydFRvQXJyYXlGb3JtKG8pKSxjLmNhbGwodGhpcyxvLGgpfX19KFgpfSgpLGZ1bmN0aW9uKFgsRjEpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU/RjEoZXhwb3J0cyk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYm''@;'; put 'put ''ZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sRjEpOkYxKChYPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOlh8fHNlbGYpLm1hcmtlZD17fSl9KHRoaXMsZnVuY3Rpb24oWCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEYxKCQseil7Zm9yKHZhciB5PTA7eTx6''@;'; put 'put ''Lmxlbmd0aDt5Kyspe3ZhciBEPXpbeV07RC5lbnVtZXJhYmxlPUQuZW51bWVyYWJsZXx8ITEsRC5jb25maWd1cmFibGU9ITAsInZhbHVlImluIEQmJihELndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoJCxELmtleSxEKX19ZnVuY3Rpb24gaygkLHopeyhudWxsPT16fHx6PiQu''@;'; put 'put ''bGVuZ3RoKSYmKHo9JC5sZW5ndGgpO2Zvcih2YXIgeT0wLEQ9bmV3IEFycmF5KHopO3k8ejt5KyspRFt5XT0kW3ldO3JldHVybiBEfWZ1bmN0aW9uIEEoJCx6KXt2YXIgeSxEPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiYkW1N5bWJvbC5pdGVyYXRvcl18fCRbIkBAaXRlcmF0b3IiXTtp''@;'; put 'put ''ZihEKXJldHVybihEPUQuY2FsbCgkKSkubmV4dC5iaW5kKEQpO2lmKEFycmF5LmlzQXJyYXkoJCl8fChEPWZ1bmN0aW9uKFosVCl7aWYoWil7aWYoInN0cmluZyI9PXR5cGVvZiBaKXJldHVybiBrKFosVCk7dmFyIFA9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKFopLnNsaWNlKDgs''@;'; put 'put ''LTEpO3JldHVybiJNYXAiPT09KFA9Ik9iamVjdCI9PT1QJiZaLmNvbnN0cnVjdG9yP1ouY29uc3RydWN0b3IubmFtZTpQKXx8IlNldCI9PT1QP0FycmF5LmZyb20oWik6IkFyZ3VtZW50cyI9PT1QfHwvXig/OlVpfEkpbnQoPzo4fDE2fDMyKSg/OkNsYW1wZWQpP0FycmF5JC8udGVzdChQKT9r''@;'; put 'put ''KFosVCk6dm9pZCAwfX0oJCkpfHx6JiYkJiYibnVtYmVyIj09dHlwZW9mICQubGVuZ3RoKXJldHVybiBEJiYoJD1EKSx5PTAsZnVuY3Rpb24oKXtyZXR1cm4geT49JC5sZW5ndGg/e2RvbmU6ITB9Ontkb25lOiExLHZhbHVlOiRbeSsrXX19O3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQg''@;'; put 'put ''YXR0ZW1wdCB0byBpdGVyYXRlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZS5cbkluIG9yZGVyIHRvIGJlIGl0ZXJhYmxlLCBub24tYXJyYXkgb2JqZWN0cyBtdXN0IGhhdmUgYSBbU3ltYm9sLml0ZXJhdG9yXSgpIG1ldGhvZC4iKX1mdW5jdGlvbiBlKCl7cmV0dXJue2Jhc2VVcmw6bnVsbCxicmVh''@;'; put 'put ''a3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50''@;'; put 'put ''OiExLHNtYXJ0TGlzdHM6ITEsc21hcnR5cGFudHM6ITEsdG9rZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfX1mdW5jdGlvbiBsKCQpe3JldHVybiBoWyRdfVguZGVmYXVsdHM9e2Jhc2VVcmw6bnVsbCxicmVha3M6ITEsZXh0ZW5zaW9uczpudWxsLGdmbTohMCxoZWFkZXJJ''@;'; put 'put ''ZHM6ITAsaGVhZGVyUHJlZml4OiIiLGhpZ2hsaWdodDpudWxsLGxhbmdQcmVmaXg6Imxhbmd1YWdlLSIsbWFuZ2xlOiEwLHBlZGFudGljOiExLHJlbmRlcmVyOm51bGwsc2FuaXRpemU6ITEsc2FuaXRpemVyOm51bGwsc2lsZW50OiExLHNtYXJ0TGlzdHM6ITEsc21hcnR5cGFudHM6ITEsdG9r''@;'; put 'put ''ZW5pemVyOm51bGwsd2Fsa1Rva2VuczpudWxsLHhodG1sOiExfTt2YXIgcj0vWyY8PiInXS8sYT0vWyY8PiInXS9nLGM9L1s8PiInXXwmKD8hIz9cdys7KS8sbz0vWzw+IiddfCYoPyEjP1x3KzspL2csaD17IiYiOiImYW1wOyIsIjwiOiImbHQ7IiwiPiI6IiZndDsiLCciJzoiJnF1b3Q7Iiwi''@;'; put 'put ''JyI6IiYjMzk7In07ZnVuY3Rpb24gZigkLHope2lmKHope2lmKHIudGVzdCgkKSlyZXR1cm4gJC5yZXBsYWNlKGEsbCl9ZWxzZSBpZihjLnRlc3QoJCkpcmV0dXJuICQucmVwbGFjZShvLGwpO3JldHVybiAkfXZhciBnPS8mKCMoPzpcZCspfCg/OiN4WzAtOUEtRmEtZl0rKXwoPzpcdyspKTs/''@;'; put 'put ''L2dpO2Z1bmN0aW9uIHUoJCl7cmV0dXJuICQucmVwbGFjZShnLGZ1bmN0aW9uKHoseSl7cmV0dXJuImNvbG9uIj09PSh5PXkudG9Mb3dlckNhc2UoKSk/IjoiOiIjIj09PXkuY2hhckF0KDApPyJ4Ij09PXkuY2hhckF0KDEpP1N0cmluZy5mcm9tQ2hhckNvZGUocGFyc2VJbnQoeS5zdWJzdHJp''@;'; put 'put ''bmcoMiksMTYpKTpTdHJpbmcuZnJvbUNoYXJDb2RlKCt5LnN1YnN0cmluZygxKSk6IiJ9KX12YXIgcD0vKF58W15cW10pXF4vZztmdW5jdGlvbiB2KCQseil7JD0ic3RyaW5nIj09dHlwZW9mICQ/JDokLnNvdXJjZSx6PXp8fCIiO3ZhciB5PXtyZXBsYWNlOmZ1bmN0aW9uKEQsWil7cmV0dXJu''@;'; put 'put ''IFo9KFo9Wi5zb3VyY2V8fFopLnJlcGxhY2UocCwiJDEiKSwkPSQucmVwbGFjZShELFopLHl9LGdldFJlZ2V4OmZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBSZWdFeHAoJCx6KX19O3JldHVybiB5fXZhciBIPS9bXlx3Ol0vZyxDPS9eJHxeW2Etel1bYS16MC05Ky4tXSo6fF5bPyNdL2k7ZnVuY3Rp''@;'; put 'put ''b24gVigkLHoseSl7aWYoJCl7dHJ5e0Q9ZGVjb2RlVVJJQ29tcG9uZW50KHUoeSkpLnJlcGxhY2UoSCwiIikudG9Mb3dlckNhc2UoKX1jYXRjaChaKXtyZXR1cm4gbnVsbH1pZigwPT09RC5pbmRleE9mKCJqYXZhc2NyaXB0OiIpfHwwPT09RC5pbmRleE9mKCJ2YnNjcmlwdDoiKXx8MD09PUQu''@;'; put 'put ''aW5kZXhPZigiZGF0YToiKSlyZXR1cm4gbnVsbH12YXIgRDt6JiYhQy50ZXN0KHkpJiYoJD15LFNbIiAiKyhEPXopXXx8KFNbIiAiK0RdPV8udGVzdChEKT9EKyIvIjp3KEQsIi8iLCEwKSksej0tMT09PShEPVNbIiAiK0RdKS5pbmRleE9mKCI6IikseT0iLy8iPT09JC5zdWJzdHJpbmcoMCwy''@;'; put 'put ''KT96PyQ6RC5yZXBsYWNlKGIsIiQxIikrJDoiLyI9PT0kLmNoYXJBdCgwKT96PyQ6RC5yZXBsYWNlKE0sIiQxIikrJDpEKyQpO3RyeXt5PWVuY29kZVVSSSh5KS5yZXBsYWNlKC8lMjUvZywiJSIpfWNhdGNoKFope3JldHVybiBudWxsfXJldHVybiB5fXZhciBTPXt9LF89L15bXjpdKzpcLypb''@;'; put 'put ''Xi9dKiQvLGI9L14oW146XSs6KVtcc1xTXSokLyxNPS9eKFteOl0rOlwvKlteL10qKVtcc1xTXSokLyxjMT17ZXhlYzpmdW5jdGlvbigpe319O2Z1bmN0aW9uIHgoJCl7Zm9yKHZhciB6LHksRD0xO0Q8YXJndW1lbnRzLmxlbmd0aDtEKyspZm9yKHkgaW4gej1hcmd1bWVudHNbRF0pT2JqZWN0''@;'; put 'put ''LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHoseSkmJigkW3ldPXpbeV0pO3JldHVybiAkfWZ1bmN0aW9uIEUoJCx6KXt2YXIgeT0kLnJlcGxhY2UoL1x8L2csZnVuY3Rpb24oWixULFApe2Zvcih2YXIgZTE9ITEscjE9VDswPD0tLXIxJiYiXFwiPT09UFtyMV07KWUxPSFlMTtyZXR1''@;'; put 'put ''cm4gZTE/InwiOiIgfCJ9KS5zcGxpdCgvIFx8LyksRD0wO2lmKHlbMF0udHJpbSgpfHx5LnNoaWZ0KCksMDx5Lmxlbmd0aCYmIXlbeS5sZW5ndGgtMV0udHJpbSgpJiZ5LnBvcCgpLHkubGVuZ3RoPnopeS5zcGxpY2Uoeik7ZWxzZSBmb3IoO3kubGVuZ3RoPHo7KXkucHVzaCgiIik7Zm9yKDtE''@;'; put 'put ''PHkubGVuZ3RoO0QrKyl5W0RdPXlbRF0udHJpbSgpLnJlcGxhY2UoL1xcXHwvZywifCIpO3JldHVybiB5fWZ1bmN0aW9uIHcoJCx6LHkpe3ZhciBEPSQubGVuZ3RoO2lmKDA9PT1EKXJldHVybiIiO2Zvcih2YXIgWj0wO1o8RDspe3ZhciBUPSQuY2hhckF0KEQtWi0xKTtpZihUIT09enx8eSl7''@;'; put 'put ''aWYoVD09PXp8fCF5KWJyZWFrO1orK31lbHNlIForK31yZXR1cm4gJC5zbGljZSgwLEQtWil9ZnVuY3Rpb24gTigkKXskJiYkLnNhbml0aXplJiYhJC5zaWxlbnQmJmNvbnNvbGUud2FybigibWFya2VkKCk6IHNhbml0aXplIGFuZCBzYW5pdGl6ZXIgcGFyYW1ldGVycyBhcmUgZGVwcmVjYXRl''@;'; put 'put ''ZCBzaW5jZSB2ZXJzaW9uIDAuNy4wLCBzaG91bGQgbm90IGJlIHVzZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgZnV0dXJlLiBSZWFkIG1vcmUgaGVyZTogaHR0cHM6Ly9tYXJrZWQuanMub3JnLyMvVVNJTkdfQURWQU5DRUQubWQjb3B0aW9ucyIpfWZ1bmN0aW9uIEkoJCx6KXtpZih6''@;'; put 'put ''PDEpcmV0dXJuIiI7Zm9yKHZhciB5PSIiOzE8ejspMSZ6JiYoeSs9JCksej4+PTEsJCs9JDtyZXR1cm4geSskfWZ1bmN0aW9uIFcoJCxULHksRCl7dmFyIFo9VC5ocmVmLFA9KFQ9VC50aXRsZT9mKFQudGl0bGUpOm51bGwsJFsxXS5yZXBsYWNlKC9cXChbXFtcXV0pL2csIiQxIikpO3JldHVy''@;'; put 'put ''biIhIiE9PSRbMF0uY2hhckF0KDApPyhELnN0YXRlLmluTGluaz0hMCwkPXt0eXBlOiJsaW5rIixyYXc6eSxocmVmOlosdGl0bGU6VCx0ZXh0OlAsdG9rZW5zOkQuaW5saW5lVG9rZW5zKFAsW10pfSxELnN0YXRlLmluTGluaz0hMSwkKTp7dHlwZToiaW1hZ2UiLHJhdzp5LGhyZWY6Wix0aXRs''@;'; put 'put ''ZTpULHRleHQ6ZihQKX19dmFyIE89ZnVuY3Rpb24oKXtmdW5jdGlvbiAkKHkpe3RoaXMub3B0aW9ucz15fHxYLmRlZmF1bHRzfXZhciB6PSQucHJvdG90eXBlO3JldHVybiB6LnNwYWNlPWZ1bmN0aW9uKHkpe2lmKCh5PXRoaXMucnVsZXMuYmxvY2submV3bGluZS5leGVjKHkpKSYmMDx5WzBd''@;'; put 'put ''Lmxlbmd0aClyZXR1cm57dHlwZToic3BhY2UiLHJhdzp5WzBdfX0sei5jb2RlPWZ1bmN0aW9uKFope3ZhciBEO2lmKFo9dGhpcy5ydWxlcy5ibG9jay5jb2RlLmV4ZWMoWikpcmV0dXJuIEQ9WlswXS5yZXBsYWNlKC9eIHsxLDR9L2dtLCIiKSx7dHlwZToiY29kZSIscmF3OlpbMF0sY29kZUJs''@;'; put 'put ''b2NrU3R5bGU6ImluZGVudGVkIix0ZXh0OnRoaXMub3B0aW9ucy5wZWRhbnRpYz9EOncoRCwiXG4iKX19LHouZmVuY2VzPWZ1bmN0aW9uKFQpe3ZhciBELFo7aWYoVD10aGlzLnJ1bGVzLmJsb2NrLmZlbmNlcy5leGVjKFQpKXJldHVybiBaPWZ1bmN0aW9uKFAsZTEpe2lmKG51bGw9PT0oUD1Q''@;'; put 'put ''Lm1hdGNoKC9eKFxzKykoPzpgYGApLykpKXJldHVybiBlMTt2YXIgcjE9UFsxXTtyZXR1cm4gZTEuc3BsaXQoIlxuIikubWFwKGZ1bmN0aW9uKFoxKXt2YXIgWT1aMS5tYXRjaCgvXlxzKy8pO3JldHVybiBudWxsIT09WSYmWVswXS5sZW5ndGg+PXIxLmxlbmd0aD9aMS5zbGljZShyMS5sZW5n''@;'; put 'put ''dGgpOloxfSkuam9pbigiXG4iKX0oRD1UWzBdLFRbM118fCIiKSx7dHlwZToiY29kZSIscmF3OkQsbGFuZzpUWzJdJiZUWzJdLnRyaW0oKSx0ZXh0Olp9fSx6LmhlYWRpbmc9ZnVuY3Rpb24oVCl7dmFyIEQsWjtpZihUPXRoaXMucnVsZXMuYmxvY2suaGVhZGluZy5leGVjKFQpKXJldHVybiBE''@;'; put 'put ''PVRbMl0udHJpbSgpLC8jJC8udGVzdChEKSYmKFo9dyhELCIjIiksIXRoaXMub3B0aW9ucy5wZWRhbnRpYyYmWiYmIS8gJC8udGVzdChaKXx8KEQ9Wi50cmltKCkpKSx0aGlzLmxleGVyLmlubGluZSgoWj17dHlwZToiaGVhZGluZyIscmF3OlRbMF0sZGVwdGg6VFsxXS5sZW5ndGgsdGV4dDpE''@;'; put 'put ''LHRva2VuczpbXX0pLnRleHQsWi50b2tlbnMpLFp9LHouaHI9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmJsb2NrLmhyLmV4ZWMoeSkpcmV0dXJue3R5cGU6ImhyIixyYXc6eVswXX19LHouYmxvY2txdW90ZT1mdW5jdGlvbihaKXt2YXIgRDtpZihaPXRoaXMucnVsZXMuYmxvY2suYmxv''@;'; put 'put ''Y2txdW90ZS5leGVjKFopKXJldHVybiBEPVpbMF0ucmVwbGFjZSgvXiAqPlsgXHRdPy9nbSwiIikse3R5cGU6ImJsb2NrcXVvdGUiLHJhdzpaWzBdLHRva2Vuczp0aGlzLmxleGVyLmJsb2NrVG9rZW5zKEQsW10pLHRleHQ6RH19LHoubGlzdD1mdW5jdGlvbih5KXt2YXIgRD10aGlzLnJ1bGVz''@;'; put 'put ''LmJsb2NrLmxpc3QuZXhlYyh5KTtpZihEKXt2YXIgWixULFAsZTEscjEsWjEsWSxxLEosQTEsTjEsUzE9MTwoaTE9RFsxXS50cmltKCkpLmxlbmd0aCxuMT17dHlwZToibGlzdCIscmF3OiIiLG9yZGVyZWQ6UzEsc3RhcnQ6UzE/K2kxLnNsaWNlKDAsLTEpOiIiLGxvb3NlOiExLGl0ZW1zOltd''@;'; put 'put ''fSxpMT1TMT8iXFxkezEsOX1cXCIraTEuc2xpY2UoLTEpOiJcXCIraTE7dGhpcy5vcHRpb25zLnBlZGFudGljJiYoaTE9UzE/aTE6IlsqKy1dIik7Zm9yKHZhciBmMT1uZXcgUmVnRXhwKCJeKCB7MCwzfSIraTErIikoKD86W1x0IF1bXlxcbl0qKT8oPzpcXG58JCkpIik7eSYmKE4xPSExLEQ9''@;'; put 'put ''ZjEuZXhlYyh5KSkmJiF0aGlzLnJ1bGVzLmJsb2NrLmhyLnRlc3QoeSk7KXtpZih5PXkuc3Vic3RyaW5nKChaPURbMF0pLmxlbmd0aCksWT1EWzJdLnNwbGl0KCJcbiIsMSlbMF0scT15LnNwbGl0KCJcbiIsMSlbMF0sdGhpcy5vcHRpb25zLnBlZGFudGljPyhlMT0yLEExPVkudHJpbUxlZnQo''@;'; put 'put ''KSk6KGUxPURbMl0uc2VhcmNoKC9bXiBdLyksQTE9WS5zbGljZShlMT00PGUxPzE6ZTEpLGUxKz1EWzFdLmxlbmd0aCkscjE9ITEsIVkmJi9eICokLy50ZXN0KHEpJiYoWis9cSsiXG4iLHk9eS5zdWJzdHJpbmcocS5sZW5ndGgrMSksTjE9ITApLCFOMSlmb3IodmFyIHgxPW5ldyBSZWdFeHAo''@;'; put 'put ''Il4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KD86WyorLV18XFxkezEsOX1bLildKSgoPzogW15cXG5dKik/KD86XFxufCQpKSIpLEkxPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KCg/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wk''@;'; put 'put ''KSIpLEoxPW5ldyBSZWdFeHAoIl4gezAsIitNYXRoLm1pbigzLGUxLTEpKyJ9KD86YGBgfH5+fikiKSx0MD1uZXcgUmVnRXhwKCJeIHswLCIrTWF0aC5taW4oMyxlMS0xKSsifSMiKTt5JiYoWT1KPXkuc3BsaXQoIlxuIiwxKVswXSx0aGlzLm9wdGlvbnMucGVkYW50aWMmJihZPVkucmVwbGFj''@;'; put 'put ''ZSgvXiB7MSw0fSg/PSggezR9KSpbXiBdKS9nLCIgICIpKSwhSjEudGVzdChZKSkmJiF0MC50ZXN0KFkpJiYheDEudGVzdChZKSYmIUkxLnRlc3QoeSk7KXtpZihZLnNlYXJjaCgvW14gXS8pPj1lMXx8IVkudHJpbSgpKUExKz0iXG4iK1kuc2xpY2UoZTEpO2Vsc2V7aWYocjEpYnJlYWs7QTEr''@;'; put 'put ''PSJcbiIrWX1yMXx8WS50cmltKCl8fChyMT0hMCksWis9SisiXG4iLHk9eS5zdWJzdHJpbmcoSi5sZW5ndGgrMSl9bjEubG9vc2V8fChaMT9uMS5sb29zZT0hMDovXG4gKlxuICokLy50ZXN0KFopJiYoWjE9ITApKSx0aGlzLm9wdGlvbnMuZ2ZtJiYoVD0vXlxbWyB4WF1cXSAvLmV4ZWMoQTEp''@;'; put 'put ''KSYmKFA9IlsgXSAiIT09VFswXSxBMT1BMS5yZXBsYWNlKC9eXFtbIHhYXVxdICsvLCIiKSksbjEuaXRlbXMucHVzaCh7dHlwZToibGlzdF9pdGVtIixyYXc6Wix0YXNrOiEhVCxjaGVja2VkOlAsbG9vc2U6ITEsdGV4dDpBMX0pLG4xLnJhdys9Wn1uMS5pdGVtc1tuMS5pdGVtcy5sZW5ndGgt''@;'; put 'put ''MV0ucmF3PVoudHJpbVJpZ2h0KCksbjEuaXRlbXNbbjEuaXRlbXMubGVuZ3RoLTFdLnRleHQ9QTEudHJpbVJpZ2h0KCksbjEucmF3PW4xLnJhdy50cmltUmlnaHQoKTtmb3IodmFyIGYwPW4xLml0ZW1zLmxlbmd0aCxNMD0wO00wPGYwO00wKyspe3RoaXMubGV4ZXIuc3RhdGUudG9wPSExLG4x''@;'; put 'put ''Lml0ZW1zW00wXS50b2tlbnM9dGhpcy5sZXhlci5ibG9ja1Rva2VucyhuMS5pdGVtc1tNMF0udGV4dCxbXSk7dmFyIF8wPW4xLml0ZW1zW00wXS50b2tlbnMuZmlsdGVyKGZ1bmN0aW9uKHowKXtyZXR1cm4ic3BhY2UiPT09ejAudHlwZX0pLGkyPV8wLmV2ZXJ5KGZ1bmN0aW9uKHowKXtmb3Io''@;'; put 'put ''dmFyIFUwLEswPTAsazA9QSh6MC5yYXcuc3BsaXQoIiIpKTshKFUwPWswKCkpLmRvbmU7KWlmKCJcbiI9PT1VMC52YWx1ZSYmKEswKz0xKSwxPEswKXJldHVybiEwO3JldHVybiExfSk7IW4xLmxvb3NlJiZfMC5sZW5ndGgmJmkyJiYobjEubG9vc2U9ITAsbjEuaXRlbXNbTTBdLmxvb3NlPSEw''@;'; put 'put ''KX1yZXR1cm4gbjF9fSx6Lmh0bWw9ZnVuY3Rpb24oWil7dmFyIEQ7aWYoWj10aGlzLnJ1bGVzLmJsb2NrLmh0bWwuZXhlYyhaKSlyZXR1cm4gRD17dHlwZToiaHRtbCIscmF3OlpbMF0scHJlOiF0aGlzLm9wdGlvbnMuc2FuaXRpemVyJiYoInByZSI9PT1aWzFdfHwic2NyaXB0Ij09PVpbMV18''@;'; put 'put ''fCJzdHlsZSI9PT1aWzFdKSx0ZXh0OlpbMF19LHRoaXMub3B0aW9ucy5zYW5pdGl6ZSYmKEQudHlwZT0icGFyYWdyYXBoIixELnRleHQ9dGhpcy5vcHRpb25zLnNhbml0aXplcj90aGlzLm9wdGlvbnMuc2FuaXRpemVyKFpbMF0pOmYoWlswXSksRC50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxp''@;'; put 'put ''bmUoRC50ZXh0LEQudG9rZW5zKSksRH0sei5kZWY9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmJsb2NrLmRlZi5leGVjKHkpKXJldHVybiB5WzNdJiYoeVszXT15WzNdLnN1YnN0cmluZygxLHlbM10ubGVuZ3RoLTEpKSx7dHlwZToiZGVmIix0YWc6eVsxXS50b0xvd2VyQ2FzZSgpLnJl''@;'; put 'put ''cGxhY2UoL1xzKy9nLCIgIikscmF3OnlbMF0saHJlZjp5WzJdLHRpdGxlOnlbM119fSx6LnRhYmxlPWZ1bmN0aW9uKHkpe2lmKHk9dGhpcy5ydWxlcy5ibG9jay50YWJsZS5leGVjKHkpKXt2YXIgRD17dHlwZToidGFibGUiLGhlYWRlcjpFKHlbMV0pLm1hcChmdW5jdGlvbihaMSl7cmV0dXJu''@;'; put 'put ''e3RleHQ6WjF9fSksYWxpZ246eVsyXS5yZXBsYWNlKC9eICp8XHwgKiQvZywiIikuc3BsaXQoLyAqXHwgKi8pLHJvd3M6eVszXSYmeVszXS50cmltKCk/eVszXS5yZXBsYWNlKC9cblsgXHRdKiQvLCIiKS5zcGxpdCgiXG4iKTpbXX07aWYoRC5oZWFkZXIubGVuZ3RoPT09RC5hbGlnbi5sZW5n''@;'; put 'put ''dGgpe0QucmF3PXlbMF07Zm9yKHZhciBaLFQsUCxlMT1ELmFsaWduLmxlbmd0aCxyMT0wO3IxPGUxO3IxKyspRC5hbGlnbltyMV09L14gKi0rOiAqJC8udGVzdChELmFsaWduW3IxXSk/InJpZ2h0IjovXiAqOi0rOiAqJC8udGVzdChELmFsaWduW3IxXSk/ImNlbnRlciI6L14gKjotKyAqJC8u''@;'; put 'put ''dGVzdChELmFsaWduW3IxXSk/ImxlZnQiOm51bGw7Zm9yKGUxPUQucm93cy5sZW5ndGgscjE9MDtyMTxlMTtyMSsrKUQucm93c1tyMV09RShELnJvd3NbcjFdLEQuaGVhZGVyLmxlbmd0aCkubWFwKGZ1bmN0aW9uKFoxKXtyZXR1cm57dGV4dDpaMX19KTtmb3IoZTE9RC5oZWFkZXIubGVuZ3Ro''@;'; put 'put ''LFo9MDtaPGUxO1orKylELmhlYWRlcltaXS50b2tlbnM9W10sdGhpcy5sZXhlci5pbmxpbmUoRC5oZWFkZXJbWl0udGV4dCxELmhlYWRlcltaXS50b2tlbnMpO2ZvcihlMT1ELnJvd3MubGVuZ3RoLFo9MDtaPGUxO1orKylmb3IoUD1ELnJvd3NbWl0sVD0wO1Q8UC5sZW5ndGg7VCsrKVBbVF0u''@;'; put 'put ''dG9rZW5zPVtdLHRoaXMubGV4ZXIuaW5saW5lKFBbVF0udGV4dCxQW1RdLnRva2Vucyk7cmV0dXJuIER9fX0sei5saGVhZGluZz1mdW5jdGlvbihEKXtpZihEPXRoaXMucnVsZXMuYmxvY2subGhlYWRpbmcuZXhlYyhEKSlyZXR1cm4gRD17dHlwZToiaGVhZGluZyIscmF3OkRbMF0sZGVwdGg6''@;'; put 'put ''Ij0iPT09RFsyXS5jaGFyQXQoMCk/MToyLHRleHQ6RFsxXSx0b2tlbnM6W119LHRoaXMubGV4ZXIuaW5saW5lKEQudGV4dCxELnRva2VucyksRH0sei5wYXJhZ3JhcGg9ZnVuY3Rpb24oRCl7aWYoRD10aGlzLnJ1bGVzLmJsb2NrLnBhcmFncmFwaC5leGVjKEQpKXJldHVybiBEPXt0eXBlOiJw''@;'; put 'put ''YXJhZ3JhcGgiLHJhdzpEWzBdLHRleHQ6IlxuIj09PURbMV0uY2hhckF0KERbMV0ubGVuZ3RoLTEpP0RbMV0uc2xpY2UoMCwtMSk6RFsxXSx0b2tlbnM6W119LHRoaXMubGV4ZXIuaW5saW5lKEQudGV4dCxELnRva2VucyksRH0sei50ZXh0PWZ1bmN0aW9uKEQpe2lmKEQ9dGhpcy5ydWxlcy5i''@;'; put 'put ''bG9jay50ZXh0LmV4ZWMoRCkpcmV0dXJuIHRoaXMubGV4ZXIuaW5saW5lKChEPXt0eXBlOiJ0ZXh0IixyYXc6RFswXSx0ZXh0OkRbMF0sdG9rZW5zOltdfSkudGV4dCxELnRva2VucyksRH0sei5lc2NhcGU9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS5lc2NhcGUuZXhlYyh5''@;'; put 'put ''KSlyZXR1cm57dHlwZToiZXNjYXBlIixyYXc6eVswXSx0ZXh0OmYoeVsxXSl9fSx6LnRhZz1mdW5jdGlvbih5KXtpZih5PXRoaXMucnVsZXMuaW5saW5lLnRhZy5leGVjKHkpKXJldHVybiF0aGlzLmxleGVyLnN0YXRlLmluTGluayYmL148YSAvaS50ZXN0KHlbMF0pP3RoaXMubGV4ZXIuc3Rh''@;'; put 'put ''dGUuaW5MaW5rPSEwOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rJiYvXjxcL2E+L2kudGVzdCh5WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rPSExKSwhdGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrJiYvXjwocHJlfGNvZGV8a2JkfHNjcmlwdCkoXHN8PikvaS50ZXN0KHlbMF0pP3Ro''@;'; put 'put ''aXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMDp0aGlzLmxleGVyLnN0YXRlLmluUmF3QmxvY2smJi9ePFwvKHByZXxjb2RlfGtiZHxzY3JpcHQpKFxzfD4pL2kudGVzdCh5WzBdKSYmKHRoaXMubGV4ZXIuc3RhdGUuaW5SYXdCbG9jaz0hMSkse3R5cGU6dGhpcy5vcHRpb25zLnNhbml0aXpl''@;'; put 'put ''PyJ0ZXh0IjoiaHRtbCIscmF3OnlbMF0saW5MaW5rOnRoaXMubGV4ZXIuc3RhdGUuaW5MaW5rLGluUmF3QmxvY2s6dGhpcy5sZXhlci5zdGF0ZS5pblJhd0Jsb2NrLHRleHQ6dGhpcy5vcHRpb25zLnNhbml0aXplP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXI/dGhpcy5vcHRpb25zLnNhbml0aXpl''@;'; put 'put ''cih5WzBdKTpmKHlbMF0pOnlbMF19fSx6Lmxpbms9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS5saW5rLmV4ZWMoeSkpe3ZhciBEPXlbMl0udHJpbSgpO2lmKCF0aGlzLm9wdGlvbnMucGVkYW50aWMmJi9ePC8udGVzdChEKSl7aWYoIS8+JC8udGVzdChEKSlyZXR1cm47dmFy''@;'; put 'put ''IFQ9dyhELnNsaWNlKDAsLTEpLCJcXCIpO2lmKChELmxlbmd0aC1ULmxlbmd0aCklMj09MClyZXR1cm59ZWxzZS0xPChUPWZ1bmN0aW9uKGUxLHIxKXtpZigtMSE9PWUxLmluZGV4T2YoIigpIlsxXSkpZm9yKHZhciBaMT1lMS5sZW5ndGgsWT0wLHE9MDtxPFoxO3ErKylpZigiXFwiPT09ZTFb''@;'; put 'put ''cV0pcSsrO2Vsc2UgaWYoZTFbcV09PT0iKCkiWzBdKVkrKztlbHNlIGlmKGUxW3FdPT09IigpIlsxXSYmLS1ZPDApcmV0dXJuIHE7cmV0dXJuLTF9KHlbMl0pKSYmKFA9KDA9PT15WzBdLmluZGV4T2YoIiEiKT81OjQpK3lbMV0ubGVuZ3RoK1QseVsyXT15WzJdLnN1YnN0cmluZygwLFQpLHlb''@;'; put 'put ''MF09eVswXS5zdWJzdHJpbmcoMCxQKS50cmltKCkseVszXT0iIik7VD15WzJdO3ZhciBaLFA9IiI7cmV0dXJuIHRoaXMub3B0aW9ucy5wZWRhbnRpYz8oWj0vXihbXiciXSpbXlxzXSlccysoWyciXSkoLiopXDIvLmV4ZWMoVCkpJiYoVD1aWzFdLFA9WlszXSk6UD15WzNdP3lbM10uc2xpY2Uo''@;'; put 'put ''MSwtMSk6IiIsVD1ULnRyaW0oKSxXKHkse2hyZWY6KFQ9L148Ly50ZXN0KFQpP3RoaXMub3B0aW9ucy5wZWRhbnRpYyYmIS8+JC8udGVzdChEKT9ULnNsaWNlKDEpOlQuc2xpY2UoMSwtMSk6VCkmJlQucmVwbGFjZSh0aGlzLnJ1bGVzLmlubGluZS5fZXNjYXBlcywiJDEiKSx0aXRsZTpQJiZQ''@;'; put 'put ''LnJlcGxhY2UodGhpcy5ydWxlcy5pbmxpbmUuX2VzY2FwZXMsIiQxIil9LHlbMF0sdGhpcy5sZXhlcil9fSx6LnJlZmxpbms9ZnVuY3Rpb24oeSxEKXt2YXIgWjtpZigoWj10aGlzLnJ1bGVzLmlubGluZS5yZWZsaW5rLmV4ZWMoeSkpfHwoWj10aGlzLnJ1bGVzLmlubGluZS5ub2xpbmsuZXhl''@;'; put 'put ''Yyh5KSkpcmV0dXJuKHk9RFsoeT0oWlsyXXx8WlsxXSkucmVwbGFjZSgvXHMrL2csIiAiKSkudG9Mb3dlckNhc2UoKV0pJiZ5LmhyZWY/VyhaLHksWlswXSx0aGlzLmxleGVyKTp7dHlwZToidGV4dCIscmF3OkQ9WlswXS5jaGFyQXQoMCksdGV4dDpEfX0sei5lbVN0cm9uZz1mdW5jdGlvbih5''@;'; put 'put ''LEQsWil7dm9pZCAwPT09WiYmKFo9IiIpO3ZhciBUPXRoaXMucnVsZXMuaW5saW5lLmVtU3Ryb25nLmxEZWxpbS5leGVjKHkpO2lmKFQmJighVFszXXx8IVoubWF0Y2goLyg/OlswLTlBLVphLXpceEFBXHhCMlx4QjNceEI1XHhCOVx4QkFceEJDLVx4QkVceEMwLVx4RDZceEQ4LVx4RjZceEY4''@;'; put 'put ''LVx1MDJDMVx1MDJDNi1cdTAyRDFcdTAyRTAtXHUwMkU0XHUwMkVDXHUwMkVFXHUwMzcwLVx1MDM3NFx1MDM3Nlx1MDM3N1x1MDM3QS1cdTAzN0RcdTAzN0ZcdTAzODZcdTAzODgtXHUwMzhBXHUwMzhDXHUwMzhFLVx1MDNBMVx1MDNBMy1cdTAzRjVcdTAzRjctXHUwNDgxXHUwNDhBLVx1MDUy''@;'; put 'put ''Rlx1MDUzMS1cdTA1NTZcdTA1NTlcdTA1NjAtXHUwNTg4XHUwNUQwLVx1MDVFQVx1MDVFRi1cdTA1RjJcdTA2MjAtXHUwNjRBXHUwNjYwLVx1MDY2OVx1MDY2RVx1MDY2Rlx1MDY3MS1cdTA2RDNcdTA2RDVcdTA2RTVcdTA2RTZcdTA2RUUtXHUwNkZDXHUwNkZGXHUwNzEwXHUwNzEyLVx1MDcy''@;'; put 'put ''Rlx1MDc0RC1cdTA3QTVcdTA3QjFcdTA3QzAtXHUwN0VBXHUwN0Y0XHUwN0Y1XHUwN0ZBXHUwODAwLVx1MDgxNVx1MDgxQVx1MDgyNFx1MDgyOFx1MDg0MC1cdTA4NThcdTA4NjAtXHUwODZBXHUwODcwLVx1MDg4N1x1MDg4OS1cdTA4OEVcdTA4QTAtXHUwOEM5XHUwOTA0LVx1MDkzOVx1MDkz''@;'; put 'put ''RFx1MDk1MFx1MDk1OC1cdTA5NjFcdTA5NjYtXHUwOTZGXHUwOTcxLVx1MDk4MFx1MDk4NS1cdTA5OENcdTA5OEZcdTA5OTBcdTA5OTMtXHUwOUE4XHUwOUFBLVx1MDlCMFx1MDlCMlx1MDlCNi1cdTA5QjlcdTA5QkRcdTA5Q0VcdTA5RENcdTA5RERcdTA5REYtXHUwOUUxXHUwOUU2LVx1MDlG''@;'; put 'put ''MVx1MDlGNC1cdTA5RjlcdTA5RkNcdTBBMDUtXHUwQTBBXHUwQTBGXHUwQTEwXHUwQTEzLVx1MEEyOFx1MEEyQS1cdTBBMzBcdTBBMzJcdTBBMzNcdTBBMzVcdTBBMzZcdTBBMzhcdTBBMzlcdTBBNTktXHUwQTVDXHUwQTVFXHUwQTY2LVx1MEE2Rlx1MEE3Mi1cdTBBNzRcdTBBODUtXHUwQThE''@;'; put 'put ''XHUwQThGLVx1MEE5MVx1MEE5My1cdTBBQThcdTBBQUEtXHUwQUIwXHUwQUIyXHUwQUIzXHUwQUI1LVx1MEFCOVx1MEFCRFx1MEFEMFx1MEFFMFx1MEFFMVx1MEFFNi1cdTBBRUZcdTBBRjlcdTBCMDUtXHUwQjBDXHUwQjBGXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzJc''@;'; put 'put ''dTBCMzNcdTBCMzUtXHUwQjM5XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI2Ni1cdTBCNkZcdTBCNzEtXHUwQjc3XHUwQjgzXHUwQjg1LVx1MEI4QVx1MEI4RS1cdTBCOTBcdTBCOTItXHUwQjk1XHUwQjk5XHUwQjlBXHUwQjlDXHUwQjlFXHUwQjlGXHUwQkEzXHUwQkE0XHUw''@;'; put 'put ''QkE4LVx1MEJBQVx1MEJBRS1cdTBCQjlcdTBCRDBcdTBCRTYtXHUwQkYyXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzOVx1MEMzRFx1MEM1OC1cdTBDNUFcdTBDNURcdTBDNjBcdTBDNjFcdTBDNjYtXHUwQzZGXHUwQzc4LVx1MEM3RVx1MEM4MFx1''@;'; put 'put ''MEM4NS1cdTBDOENcdTBDOEUtXHUwQzkwXHUwQzkyLVx1MENBOFx1MENBQS1cdTBDQjNcdTBDQjUtXHUwQ0I5XHUwQ0JEXHUwQ0REXHUwQ0RFXHUwQ0UwXHUwQ0UxXHUwQ0U2LVx1MENFRlx1MENGMVx1MENGMlx1MEQwNC1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQzQVx1MEQzRFx1''@;'; put 'put ''MEQ0RVx1MEQ1NC1cdTBENTZcdTBENTgtXHUwRDYxXHUwRDY2LVx1MEQ3OFx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwREU2LVx1MERFRlx1MEUwMS1cdTBFMzBcdTBFMzJcdTBFMzNcdTBFNDAtXHUwRTQ2''@;'; put 'put ''XHUwRTUwLVx1MEU1OVx1MEU4MVx1MEU4Mlx1MEU4NFx1MEU4Ni1cdTBFOEFcdTBFOEMtXHUwRUEzXHUwRUE1XHUwRUE3LVx1MEVCMFx1MEVCMlx1MEVCM1x1MEVCRFx1MEVDMC1cdTBFQzRcdTBFQzZcdTBFRDAtXHUwRUQ5XHUwRURDLVx1MEVERlx1MEYwMFx1MEYyMC1cdTBGMzNcdTBGNDAt''@;'; put 'put ''XHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGLVx1MTA0OVx1MTA1MC1cdTEwNTVcdTEwNUEtXHUxMDVEXHUxMDYxXHUxMDY1XHUxMDY2XHUxMDZFLVx1MTA3MFx1MTA3NS1cdTEwODFcdTEwOEVcdTEwOTAtXHUxMDk5XHUxMEEwLVx1MTBDNVx1MTBD''@;'; put 'put ''N1x1MTBDRFx1MTBEMC1cdTEwRkFcdTEwRkMtXHUxMjQ4XHUxMjRBLVx1MTI0RFx1MTI1MC1cdTEyNTZcdTEyNThcdTEyNUEtXHUxMjVEXHUxMjYwLVx1MTI4OFx1MTI4QS1cdTEyOERcdTEyOTAtXHUxMkIwXHUxMkIyLVx1MTJCNVx1MTJCOC1cdTEyQkVcdTEyQzBcdTEyQzItXHUxMkM1XHUx''@;'; put 'put ''MkM4LVx1MTJENlx1MTJEOC1cdTEzMTBcdTEzMTItXHUxMzE1XHUxMzE4LVx1MTM1QVx1MTM2OS1cdTEzN0NcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNVx1MTNGOC1cdTEzRkRcdTE0MDEtXHUxNjZDXHUxNjZGLVx1MTY3Rlx1MTY4MS1cdTE2OUFcdTE2QTAtXHUxNkVBXHUxNkVFLVx1MTZG''@;'; put 'put ''OFx1MTcwMC1cdTE3MTFcdTE3MUYtXHUxNzMxXHUxNzQwLVx1MTc1MVx1MTc2MC1cdTE3NkNcdTE3NkUtXHUxNzcwXHUxNzgwLVx1MTdCM1x1MTdEN1x1MTdEQ1x1MTdFMC1cdTE3RTlcdTE3RjAtXHUxN0Y5XHUxODEwLVx1MTgxOVx1MTgyMC1cdTE4NzhcdTE4ODAtXHUxODg0XHUxODg3LVx1''@;'; put 'put ''MThBOFx1MThBQVx1MThCMC1cdTE4RjVcdTE5MDAtXHUxOTFFXHUxOTQ2LVx1MTk2RFx1MTk3MC1cdTE5NzRcdTE5ODAtXHUxOUFCXHUxOUIwLVx1MTlDOVx1MTlEMC1cdTE5REFcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUE4MC1cdTFBODlcdTFBOTAtXHUxQTk5XHUxQUE3XHUxQjA1''@;'; put 'put ''LVx1MUIzM1x1MUI0NS1cdTFCNENcdTFCNTAtXHUxQjU5XHUxQjgzLVx1MUJBMFx1MUJBRS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzQwLVx1MUM0OVx1MUM0RC1cdTFDN0RcdTFDODAtXHUxQzg4XHUxQzkwLVx1MUNCQVx1MUNCRC1cdTFDQkZcdTFDRTktXHUxQ0VDXHUxQ0VFLVx1MUNGM1x1''@;'; put 'put ''MUNGNVx1MUNGNlx1MUNGQVx1MUQwMC1cdTFEQkZcdTFFMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMi1c''@;'; put 'put ''dTFGQzRcdTFGQzYtXHUxRkNDXHUxRkQwLVx1MUZEM1x1MUZENi1cdTFGREJcdTFGRTAtXHUxRkVDXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkNcdTIwNzBcdTIwNzFcdTIwNzQtXHUyMDc5XHUyMDdGLVx1MjA4OVx1MjA5MC1cdTIwOUNcdTIxMDJcdTIxMDdcdTIxMEEtXHUyMTEzXHUyMTE1''@;'; put 'put ''XHUyMTE5LVx1MjExRFx1MjEyNFx1MjEyNlx1MjEyOFx1MjEyQS1cdTIxMkRcdTIxMkYtXHUyMTM5XHUyMTNDLVx1MjEzRlx1MjE0NS1cdTIxNDlcdTIxNEVcdTIxNTAtXHUyMTg5XHUyNDYwLVx1MjQ5Qlx1MjRFQS1cdTI0RkZcdTI3NzYtXHUyNzkzXHUyQzAwLVx1MkNFNFx1MkNFQi1cdTJD''@;'; put 'put ''RUVcdTJDRjJcdTJDRjNcdTJDRkRcdTJEMDAtXHUyRDI1XHUyRDI3XHUyRDJEXHUyRDMwLVx1MkQ2N1x1MkQ2Rlx1MkQ4MC1cdTJEOTZcdTJEQTAtXHUyREE2XHUyREE4LVx1MkRBRVx1MkRCMC1cdTJEQjZcdTJEQjgtXHUyREJFXHUyREMwLVx1MkRDNlx1MkRDOC1cdTJEQ0VcdTJERDAtXHUy''@;'; put 'put ''REQ2XHUyREQ4LVx1MkRERVx1MkUyRlx1MzAwNS1cdTMwMDdcdTMwMjEtXHUzMDI5XHUzMDMxLVx1MzAzNVx1MzAzOC1cdTMwM0NcdTMwNDEtXHUzMDk2XHUzMDlELVx1MzA5Rlx1MzBBMS1cdTMwRkFcdTMwRkMtXHUzMEZGXHUzMTA1LVx1MzEyRlx1MzEzMS1cdTMxOEVcdTMxOTItXHUzMTk1''@;'; put 'put ''XHUzMUEwLVx1MzFCRlx1MzFGMC1cdTMxRkZcdTMyMjAtXHUzMjI5XHUzMjQ4LVx1MzI0Rlx1MzI1MS1cdTMyNUZcdTMyODAtXHUzMjg5XHUzMkIxLVx1MzJCRlx1MzQwMC1cdTREQkZcdTRFMDAtXHVBNDhDXHVBNEQwLVx1QTRGRFx1QTUwMC1cdUE2MENcdUE2MTAtXHVBNjJCXHVBNjQwLVx1''@;'; put 'put ''QTY2RVx1QTY3Ri1cdUE2OURcdUE2QTAtXHVBNkVGXHVBNzE3LVx1QTcxRlx1QTcyMi1cdUE3ODhcdUE3OEItXHVBN0NBXHVBN0QwXHVBN0QxXHVBN0QzXHVBN0Q1LVx1QTdEOVx1QTdGMi1cdUE4MDFcdUE4MDMtXHVBODA1XHVBODA3LVx1QTgwQVx1QTgwQy1cdUE4MjJcdUE4MzAtXHVBODM1''@;'; put 'put ''XHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RDAtXHVBOEQ5XHVBOEYyLVx1QThGN1x1QThGQlx1QThGRFx1QThGRVx1QTkwMC1cdUE5MjVcdUE5MzAtXHVBOTQ2XHVBOTYwLVx1QTk3Q1x1QTk4NC1cdUE5QjJcdUE5Q0YtXHVBOUQ5XHVBOUUwLVx1QTlFNFx1QTlFNi1cdUE5RkVcdUFB''@;'; put 'put ''MDAtXHVBQTI4XHVBQTQwLVx1QUE0Mlx1QUE0NC1cdUFBNEJcdUFBNTAtXHVBQTU5XHVBQTYwLVx1QUE3Nlx1QUE3QVx1QUE3RS1cdUFBQUZcdUFBQjFcdUFBQjVcdUFBQjZcdUFBQjktXHVBQUJEXHVBQUMwXHVBQUMyXHVBQURCLVx1QUFERFx1QUFFMC1cdUFBRUFcdUFBRjItXHVBQUY0XHVB''@;'; put 'put ''QjAxLVx1QUIwNlx1QUIwOS1cdUFCMEVcdUFCMTEtXHVBQjE2XHVBQjIwLVx1QUIyNlx1QUIyOC1cdUFCMkVcdUFCMzAtXHVBQjVBXHVBQjVDLVx1QUI2OVx1QUI3MC1cdUFCRTJcdUFCRjAtXHVBQkY5XHVBQzAwLVx1RDdBM1x1RDdCMC1cdUQ3QzZcdUQ3Q0ItXHVEN0ZCXHVGOTAwLVx1RkE2''@;'; put 'put ''RFx1RkE3MC1cdUZBRDlcdUZCMDAtXHVGQjA2XHVGQjEzLVx1RkIxN1x1RkIxRFx1RkIxRi1cdUZCMjhcdUZCMkEtXHVGQjM2XHVGQjM4LVx1RkIzQ1x1RkIzRVx1RkI0MFx1RkI0MVx1RkI0M1x1RkI0NFx1RkI0Ni1cdUZCQjFcdUZCRDMtXHVGRDNEXHVGRDUwLVx1RkQ4Rlx1RkQ5Mi1cdUZE''@;'; put 'put ''QzdcdUZERjAtXHVGREZCXHVGRTcwLVx1RkU3NFx1RkU3Ni1cdUZFRkNcdUZGMTAtXHVGRjE5XHVGRjIxLVx1RkYzQVx1RkY0MS1cdUZGNUFcdUZGNjYtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ118XHVEODAwW1x1REMwMC1cdURD''@;'; put 'put ''MEJcdURDMEQtXHVEQzI2XHVEQzI4LVx1REMzQVx1REMzQ1x1REMzRFx1REMzRi1cdURDNERcdURDNTAtXHVEQzVEXHVEQzgwLVx1RENGQVx1REQwNy1cdUREMzNcdURENDAtXHVERDc4XHVERDhBXHVERDhCXHVERTgwLVx1REU5Q1x1REVBMC1cdURFRDBcdURFRTEtXHVERUZCXHVERjAwLVx1''@;'; put 'put ''REYyM1x1REYyRC1cdURGNEFcdURGNTAtXHVERjc1XHVERjgwLVx1REY5RFx1REZBMC1cdURGQzNcdURGQzgtXHVERkNGXHVERkQxLVx1REZENV18XHVEODAxW1x1REMwMC1cdURDOURcdURDQTAtXHVEQ0E5XHVEQ0IwLVx1RENEM1x1RENEOC1cdURDRkJcdUREMDAtXHVERDI3XHVERDMwLVx1''@;'; put 'put ''REQ2M1x1REQ3MC1cdUREN0FcdUREN0MtXHVERDhBXHVERDhDLVx1REQ5Mlx1REQ5NFx1REQ5NVx1REQ5Ny1cdUREQTFcdUREQTMtXHVEREIxXHVEREIzLVx1RERCOVx1RERCQlx1RERCQ1x1REUwMC1cdURGMzZcdURGNDAtXHVERjU1XHVERjYwLVx1REY2N1x1REY4MC1cdURGODVcdURGODct''@;'; put 'put ''XHVERkIwXHVERkIyLVx1REZCQV18XHVEODAyW1x1REMwMC1cdURDMDVcdURDMDhcdURDMEEtXHVEQzM1XHVEQzM3XHVEQzM4XHVEQzNDXHVEQzNGLVx1REM1NVx1REM1OC1cdURDNzZcdURDNzktXHVEQzlFXHVEQ0E3LVx1RENBRlx1RENFMC1cdURDRjJcdURDRjRcdURDRjVcdURDRkItXHVE''@;'; put 'put ''RDFCXHVERDIwLVx1REQzOVx1REQ4MC1cdUREQjdcdUREQkMtXHVERENGXHVEREQyLVx1REUwMFx1REUxMC1cdURFMTNcdURFMTUtXHVERTE3XHVERTE5LVx1REUzNVx1REU0MC1cdURFNDhcdURFNjAtXHVERTdFXHVERTgwLVx1REU5Rlx1REVDMC1cdURFQzdcdURFQzktXHVERUU0XHVERUVC''@;'; put 'put ''LVx1REVFRlx1REYwMC1cdURGMzVcdURGNDAtXHVERjU1XHVERjU4LVx1REY3Mlx1REY3OC1cdURGOTFcdURGQTktXHVERkFGXXxcdUQ4MDNbXHVEQzAwLVx1REM0OFx1REM4MC1cdURDQjJcdURDQzAtXHVEQ0YyXHVEQ0ZBLVx1REQyM1x1REQzMC1cdUREMzlcdURFNjAtXHVERTdFXHVERTgw''@;'; put 'put ''LVx1REVBOVx1REVCMFx1REVCMVx1REYwMC1cdURGMjdcdURGMzAtXHVERjQ1XHVERjUxLVx1REY1NFx1REY3MC1cdURGODFcdURGQjAtXHVERkNCXHVERkUwLVx1REZGNl18XHVEODA0W1x1REMwMy1cdURDMzdcdURDNTItXHVEQzZGXHVEQzcxXHVEQzcyXHVEQzc1XHVEQzgzLVx1RENBRlx1''@;'; put 'put ''RENEMC1cdURDRThcdURDRjAtXHVEQ0Y5XHVERDAzLVx1REQyNlx1REQzNi1cdUREM0ZcdURENDRcdURENDdcdURENTAtXHVERDcyXHVERDc2XHVERDgzLVx1RERCMlx1RERDMS1cdUREQzRcdURERDAtXHVERERBXHVERERDXHVEREUxLVx1RERGNFx1REUwMC1cdURFMTFcdURFMTMtXHVERTJC''@;'; put 'put ''XHVERTgwLVx1REU4Nlx1REU4OFx1REU4QS1cdURFOERcdURFOEYtXHVERTlEXHVERTlGLVx1REVBOFx1REVCMC1cdURFREVcdURFRjAtXHVERUY5XHVERjA1LVx1REYwQ1x1REYwRlx1REYxMFx1REYxMy1cdURGMjhcdURGMkEtXHVERjMwXHVERjMyXHVERjMzXHVERjM1LVx1REYzOVx1REYz''@;'; put 'put ''RFx1REY1MFx1REY1RC1cdURGNjFdfFx1RDgwNVtcdURDMDAtXHVEQzM0XHVEQzQ3LVx1REM0QVx1REM1MC1cdURDNTlcdURDNUYtXHVEQzYxXHVEQzgwLVx1RENBRlx1RENDNFx1RENDNVx1RENDN1x1RENEMC1cdURDRDlcdUREODAtXHVEREFFXHVEREQ4LVx1REREQlx1REUwMC1cdURFMkZc''@;'; put 'put ''dURFNDRcdURFNTAtXHVERTU5XHVERTgwLVx1REVBQVx1REVCOFx1REVDMC1cdURFQzlcdURGMDAtXHVERjFBXHVERjMwLVx1REYzQlx1REY0MC1cdURGNDZdfFx1RDgwNltcdURDMDAtXHVEQzJCXHVEQ0EwLVx1RENGMlx1RENGRi1cdUREMDZcdUREMDlcdUREMEMtXHVERDEzXHVERDE1XHVE''@;'; put 'put ''RDE2XHVERDE4LVx1REQyRlx1REQzRlx1REQ0MVx1REQ1MC1cdURENTlcdUREQTAtXHVEREE3XHVEREFBLVx1REREMFx1RERFMVx1RERFM1x1REUwMFx1REUwQi1cdURFMzJcdURFM0FcdURFNTBcdURFNUMtXHVERTg5XHVERTlEXHVERUIwLVx1REVGOF18XHVEODA3W1x1REMwMC1cdURDMDhc''@;'; put 'put ''dURDMEEtXHVEQzJFXHVEQzQwXHVEQzUwLVx1REM2Q1x1REM3Mi1cdURDOEZcdUREMDAtXHVERDA2XHVERDA4XHVERDA5XHVERDBCLVx1REQzMFx1REQ0Nlx1REQ1MC1cdURENTlcdURENjAtXHVERDY1XHVERDY3XHVERDY4XHVERDZBLVx1REQ4OVx1REQ5OFx1RERBMC1cdUREQTlcdURFRTAt''@;'; put 'put ''XHVERUYyXHVERkIwXHVERkMwLVx1REZENF18XHVEODA4W1x1REMwMC1cdURGOTldfFx1RDgwOVtcdURDMDAtXHVEQzZFXHVEQzgwLVx1REQ0M118XHVEODBCW1x1REY5MC1cdURGRjBdfFtcdUQ4MENcdUQ4MUMtXHVEODIwXHVEODIyXHVEODQwLVx1RDg2OFx1RDg2QS1cdUQ4NkNcdUQ4NkYt''@;'; put 'put ''XHVEODcyXHVEODc0LVx1RDg3OVx1RDg4MC1cdUQ4ODNdW1x1REMwMC1cdURGRkZdfFx1RDgwRFtcdURDMDAtXHVEQzJFXXxcdUQ4MTFbXHVEQzAwLVx1REU0Nl18XHVEODFBW1x1REMwMC1cdURFMzhcdURFNDAtXHVERTVFXHVERTYwLVx1REU2OVx1REU3MC1cdURFQkVcdURFQzAtXHVERUM5''@;'; put 'put ''XHVERUQwLVx1REVFRFx1REYwMC1cdURGMkZcdURGNDAtXHVERjQzXHVERjUwLVx1REY1OVx1REY1Qi1cdURGNjFcdURGNjMtXHVERjc3XHVERjdELVx1REY4Rl18XHVEODFCW1x1REU0MC1cdURFOTZcdURGMDAtXHVERjRBXHVERjUwXHVERjkzLVx1REY5Rlx1REZFMFx1REZFMVx1REZFM118''@;'; put 'put ''XHVEODIxW1x1REMwMC1cdURGRjddfFx1RDgyM1tcdURDMDAtXHVEQ0Q1XHVERDAwLVx1REQwOF18XHVEODJCW1x1REZGMC1cdURGRjNcdURGRjUtXHVERkZCXHVERkZEXHVERkZFXXxcdUQ4MkNbXHVEQzAwLVx1REQyMlx1REQ1MC1cdURENTJcdURENjQtXHVERDY3XHVERDcwLVx1REVGQl18''@;'; put 'put ''XHVEODJGW1x1REMwMC1cdURDNkFcdURDNzAtXHVEQzdDXHVEQzgwLVx1REM4OFx1REM5MC1cdURDOTldfFx1RDgzNFtcdURFRTAtXHVERUYzXHVERjYwLVx1REY3OF18XHVEODM1W1x1REMwMC1cdURDNTRcdURDNTYtXHVEQzlDXHVEQzlFXHVEQzlGXHVEQ0EyXHVEQ0E1XHVEQ0E2XHVEQ0E5''@;'; put 'put ''LVx1RENBQ1x1RENBRS1cdURDQjlcdURDQkJcdURDQkQtXHVEQ0MzXHVEQ0M1LVx1REQwNVx1REQwNy1cdUREMEFcdUREMEQtXHVERDE0XHVERDE2LVx1REQxQ1x1REQxRS1cdUREMzlcdUREM0ItXHVERDNFXHVERDQwLVx1REQ0NFx1REQ0Nlx1REQ0QS1cdURENTBcdURENTItXHVERUE1XHVE''@;'; put 'put ''RUE4LVx1REVDMFx1REVDMi1cdURFREFcdURFREMtXHVERUZBXHVERUZDLVx1REYxNFx1REYxNi1cdURGMzRcdURGMzYtXHVERjRFXHVERjUwLVx1REY2RVx1REY3MC1cdURGODhcdURGOEEtXHVERkE4XHVERkFBLVx1REZDMlx1REZDNC1cdURGQ0JcdURGQ0UtXHVERkZGXXxcdUQ4MzdbXHVE''@;'; put 'put ''RjAwLVx1REYxRV18XHVEODM4W1x1REQwMC1cdUREMkNcdUREMzctXHVERDNEXHVERDQwLVx1REQ0OVx1REQ0RVx1REU5MC1cdURFQURcdURFQzAtXHVERUVCXHVERUYwLVx1REVGOV18XHVEODM5W1x1REZFMC1cdURGRTZcdURGRTgtXHVERkVCXHVERkVEXHVERkVFXHVERkYwLVx1REZGRV18''@;'; put 'put ''XHVEODNBW1x1REMwMC1cdURDQzRcdURDQzctXHVEQ0NGXHVERDAwLVx1REQ0M1x1REQ0Qlx1REQ1MC1cdURENTldfFx1RDgzQltcdURDNzEtXHVEQ0FCXHVEQ0FELVx1RENBRlx1RENCMS1cdURDQjRcdUREMDEtXHVERDJEXHVERDJGLVx1REQzRFx1REUwMC1cdURFMDNcdURFMDUtXHVERTFG''@;'; put 'put ''XHVERTIxXHVERTIyXHVERTI0XHVERTI3XHVERTI5LVx1REUzMlx1REUzNC1cdURFMzdcdURFMzlcdURFM0JcdURFNDJcdURFNDdcdURFNDlcdURFNEJcdURFNEQtXHVERTRGXHVERTUxXHVERTUyXHVERTU0XHVERTU3XHVERTU5XHVERTVCXHVERTVEXHVERTVGXHVERTYxXHVERTYyXHVERTY0''@;'; put 'put ''XHVERTY3LVx1REU2QVx1REU2Qy1cdURFNzJcdURFNzQtXHVERTc3XHVERTc5LVx1REU3Q1x1REU3RVx1REU4MC1cdURFODlcdURFOEItXHVERTlCXHVERUExLVx1REVBM1x1REVBNS1cdURFQTlcdURFQUItXHVERUJCXXxcdUQ4M0NbXHVERDAwLVx1REQwQ118XHVEODNFW1x1REZGMC1cdURG''@;'; put 'put ''RjldfFx1RDg2OVtcdURDMDAtXHVERURGXHVERjAwLVx1REZGRl18XHVEODZEW1x1REMwMC1cdURGMzhcdURGNDAtXHVERkZGXXxcdUQ4NkVbXHVEQzAwLVx1REMxRFx1REMyMC1cdURGRkZdfFx1RDg3M1tcdURDMDAtXHVERUExXHVERUIwLVx1REZGRl18XHVEODdBW1x1REMwMC1cdURGRTBd''@;'; put 'put ''fFx1RDg3RVtcdURDMDAtXHVERTFEXXxcdUQ4ODRbXHVEQzAwLVx1REY0QV0pLykpJiYoIVRbMV0mJiFUWzJdfHwiIj09PVp8fHRoaXMucnVsZXMuaW5saW5lLnB1bmN0dWF0aW9uLmV4ZWMoWikpKXt2YXIgZTE9VFswXS5sZW5ndGgtMSxyMT1lMSxaMT0wLFk9IioiPT09VFswXVswXT90aGlz''@;'; put 'put ''LnJ1bGVzLmlubGluZS5lbVN0cm9uZy5yRGVsaW1Bc3Q6dGhpcy5ydWxlcy5pbmxpbmUuZW1TdHJvbmcuckRlbGltVW5kO2ZvcihZLmxhc3RJbmRleD0wLEQ9RC5zbGljZSgtMSp5Lmxlbmd0aCtlMSk7bnVsbCE9KFQ9WS5leGVjKEQpKTspaWYocT1UWzFdfHxUWzJdfHxUWzNdfHxUWzRdfHxU''@;'; put 'put ''WzVdfHxUWzZdKWlmKHE9cS5sZW5ndGgsVFszXXx8VFs0XSlyMSs9cTtlbHNlIGlmKChUWzVdfHxUWzZdKSYmZTElMyYmISgoZTErcSklMykpWjErPXE7ZWxzZSBpZighKDA8KHIxLT1xKSkpe3ZhciBxPU1hdGgubWluKHEscStyMStaMSk7aWYoTWF0aC5taW4oZTEscSklMilyZXR1cm4gSj15''@;'; put 'put ''LnNsaWNlKDEsZTErVC5pbmRleCtxKSx7dHlwZToiZW0iLHJhdzp5LnNsaWNlKDAsZTErVC5pbmRleCtxKzEpLHRleHQ6Six0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVUb2tlbnMoSixbXSl9O3ZhciBKPXkuc2xpY2UoMixlMStULmluZGV4K3EtMSk7cmV0dXJue3R5cGU6InN0cm9uZyIscmF3''@;'; put 'put ''Onkuc2xpY2UoMCxlMStULmluZGV4K3ErMSksdGV4dDpKLHRva2Vuczp0aGlzLmxleGVyLmlubGluZVRva2VucyhKLFtdKX19fX0sei5jb2Rlc3Bhbj1mdW5jdGlvbihQKXt2YXIgRCxaLFQ7aWYoUD10aGlzLnJ1bGVzLmlubGluZS5jb2RlLmV4ZWMoUCkpcmV0dXJuIFQ9UFsyXS5yZXBsYWNl''@;'; put 'put ''KC9cbi9nLCIgIiksRD0vW14gXS8udGVzdChUKSxaPS9eIC8udGVzdChUKSYmLyAkLy50ZXN0KFQpLFQ9ZihUPUQmJlo/VC5zdWJzdHJpbmcoMSxULmxlbmd0aC0xKTpULCEwKSx7dHlwZToiY29kZXNwYW4iLHJhdzpQWzBdLHRleHQ6VH19LHouYnI9ZnVuY3Rpb24oeSl7aWYoeT10aGlzLnJ1''@;'; put 'put ''bGVzLmlubGluZS5ici5leGVjKHkpKXJldHVybnt0eXBlOiJiciIscmF3OnlbMF19fSx6LmRlbD1mdW5jdGlvbih5KXtpZih5PXRoaXMucnVsZXMuaW5saW5lLmRlbC5leGVjKHkpKXJldHVybnt0eXBlOiJkZWwiLHJhdzp5WzBdLHRleHQ6eVsyXSx0b2tlbnM6dGhpcy5sZXhlci5pbmxpbmVU''@;'; put 'put ''b2tlbnMoeVsyXSxbXSl9fSx6LmF1dG9saW5rPWZ1bmN0aW9uKFQsRCl7dmFyIFo7aWYoVD10aGlzLnJ1bGVzLmlubGluZS5hdXRvbGluay5leGVjKFQpKXJldHVybiBEPSJAIj09PVRbMl0/Im1haWx0bzoiKyhaPWYodGhpcy5vcHRpb25zLm1hbmdsZT9EKFRbMV0pOlRbMV0pKTpaPWYoVFsx''@;'; put 'put ''XSkse3R5cGU6ImxpbmsiLHJhdzpUWzBdLHRleHQ6WixocmVmOkQsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OlosdGV4dDpafV19fSx6LnVybD1mdW5jdGlvbih5LEQpe3ZhciBaLFQsUCxlMTtpZihaPXRoaXMucnVsZXMuaW5saW5lLnVybC5leGVjKHkpKXtpZigiQCI9PT1aWzJdKVA9Im1h''@;'; put 'put ''aWx0bzoiKyhUPWYodGhpcy5vcHRpb25zLm1hbmdsZT9EKFpbMF0pOlpbMF0pKTtlbHNle2Zvcig7ZTE9WlswXSxaWzBdPXRoaXMucnVsZXMuaW5saW5lLl9iYWNrcGVkYWwuZXhlYyhaWzBdKVswXSxlMSE9PVpbMF07KTtUPWYoWlswXSksUD0id3d3LiI9PT1aWzFdPyJodHRwOi8vIitUOlR9''@;'; put 'put ''cmV0dXJue3R5cGU6ImxpbmsiLHJhdzpaWzBdLHRleHQ6VCxocmVmOlAsdG9rZW5zOlt7dHlwZToidGV4dCIscmF3OlQsdGV4dDpUfV19fX0sei5pbmxpbmVUZXh0PWZ1bmN0aW9uKHksRCl7aWYoeT10aGlzLnJ1bGVzLmlubGluZS50ZXh0LmV4ZWMoeSkpcmV0dXJuIEQ9dGhpcy5sZXhlci5z''@;'; put 'put ''dGF0ZS5pblJhd0Jsb2NrP3RoaXMub3B0aW9ucy5zYW5pdGl6ZT90aGlzLm9wdGlvbnMuc2FuaXRpemVyP3RoaXMub3B0aW9ucy5zYW5pdGl6ZXIoeVswXSk6Zih5WzBdKTp5WzBdOmYodGhpcy5vcHRpb25zLnNtYXJ0eXBhbnRzP0QoeVswXSk6eVswXSkse3R5cGU6InRleHQiLHJhdzp5WzBd''@;'; put 'put ''LHRleHQ6RH19LCR9KCksQj17bmV3bGluZTovXig/OiAqKD86XG58JCkpKy8sY29kZTovXiggezR9W15cbl0rKD86XG4oPzogKig/OlxufCQpKSopPykrLyxmZW5jZXM6L14gezAsM30oYHszLH0oPz1bXmBcbl0qXG4pfH57Myx9KShbXlxuXSopXG4oPzp8KFtcc1xTXSo/KVxuKSg/OiB7MCwz''@;'; put 'put ''fVwxW35gXSogKig/PVxufCQpfCQpLyxocjovXiB7MCwzfSgoPzotW1x0IF0qKXszLH18KD86X1sgXHRdKil7Myx9fCg/OlwqWyBcdF0qKXszLH0pKD86XG4rfCQpLyxoZWFkaW5nOi9eIHswLDN9KCN7MSw2fSkoPz1cc3wkKSguKikoPzpcbit8JCkvLGJsb2NrcXVvdGU6L14oIHswLDN9PiA/''@;'; put 'put ''KHBhcmFncmFwaHxbXlxuXSopKD86XG58JCkpKy8sbGlzdDovXiggezAsM31idWxsKShbIFx0XVteXG5dKz8pPyg/OlxufCQpLyxodG1sOiJeIHswLDN9KD86PChzY3JpcHR8cHJlfHN0eWxlfHRleHRhcmVhKVtcXHM+XVtcXHNcXFNdKj8oPzo8L1xcMT5bXlxcbl0qXFxuK3wkKXxjb21tZW50''@;'; put 'put ''W15cXG5dKihcXG4rfCQpfDxcXD9bXFxzXFxTXSo/KD86XFw/Plxcbip8JCl8PCFbQS1aXVtcXHNcXFNdKj8oPzo+XFxuKnwkKXw8IVxcW0NEQVRBXFxbW1xcc1xcU10qPyg/OlxcXVxcXT5cXG4qfCQpfDwvPyh0YWcpKD86ICt8XFxufC8/PilbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwk''@;'; put 'put ''KXw8KD8hc2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYSkoW2Etel1bXFx3LV0qKSg/OmF0dHJpYnV0ZSkqPyAqLz8+KD89WyBcXHRdKig/OlxcbnwkKSlbXFxzXFxTXSo/KD86KD86XFxuICopK1xcbnwkKXw8Lyg/IXNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWEpW2Etel1bXFx3LV0qXFxzKj4o''@;'; put 'put ''Pz1bIFxcdF0qKD86XFxufCQpKVtcXHNcXFNdKj8oPzooPzpcXG4gKikrXFxufCQpKSIsZGVmOi9eIHswLDN9XFsobGFiZWwpXF06ICooPzpcbiAqKT88PyhbXlxzPl0rKT4/KD86KD86ICsoPzpcbiAqKT98ICpcbiAqKSh0aXRsZSkpPyAqKD86XG4rfCQpLyx0YWJsZTpjMSxsaGVhZGluZzov''@;'; put 'put ''XihbXlxuXSspXG4gezAsM30oPSt8LSspICooPzpcbit8JCkvLF9wYXJhZ3JhcGg6L14oW15cbl0rKD86XG4oPyFocnxoZWFkaW5nfGxoZWFkaW5nfGJsb2NrcXVvdGV8ZmVuY2VzfGxpc3R8aHRtbHx0YWJsZXwgK1xuKVteXG5dKykqKS8sdGV4dDovXlteXG5dKy8sX2xhYmVsOi8oPyFccypc''@;'; put 'put ''XSkoPzpcXC58W15cW1xdXFxdKSsvLF90aXRsZTovKD86Iig/OlxcIj98W14iXFxdKSoifCdbXidcbl0qKD86XG5bXidcbl0rKSpcbj8nfFwoW14oKV0qXCkpL30sUj0oQi5kZWY9dihCLmRlZikucmVwbGFjZSgibGFiZWwiLEIuX2xhYmVsKS5yZXBsYWNlKCJ0aXRsZSIsQi5fdGl0bGUpLmdl''@;'; put 'put ''dFJlZ2V4KCksQi5idWxsZXQ9Lyg/OlsqKy1dfFxkezEsOX1bLildKS8sQi5saXN0SXRlbVN0YXJ0PXYoL14oICopKGJ1bGwpICovKS5yZXBsYWNlKCJidWxsIixCLmJ1bGxldCkuZ2V0UmVnZXgoKSxCLmxpc3Q9dihCLmxpc3QpLnJlcGxhY2UoL2J1bGwvZyxCLmJ1bGxldCkucmVwbGFjZSgi''@;'; put 'put ''aHIiLCJcXG4rKD89XFwxPyg/Oig/Oi0gKil7Myx9fCg/Ol8gKil7Myx9fCg/OlxcKiAqKXszLH0pKD86XFxuK3wkKSkiKS5yZXBsYWNlKCJkZWYiLCJcXG4rKD89IitCLmRlZi5zb3VyY2UrIikiKS5nZXRSZWdleCgpLEIuX3RhZz0iYWRkcmVzc3xhcnRpY2xlfGFzaWRlfGJhc2V8YmFzZWZv''@;'; put 'put ''bnR8YmxvY2txdW90ZXxib2R5fGNhcHRpb258Y2VudGVyfGNvbHxjb2xncm91cHxkZHxkZXRhaWxzfGRpYWxvZ3xkaXJ8ZGl2fGRsfGR0fGZpZWxkc2V0fGZpZ2NhcHRpb258ZmlndXJlfGZvb3Rlcnxmb3JtfGZyYW1lfGZyYW1lc2V0fGhbMS02XXxoZWFkfGhlYWRlcnxocnxodG1sfGlmcmFt''@;'; put 'put ''ZXxsZWdlbmR8bGl8bGlua3xtYWlufG1lbnV8bWVudWl0ZW18bWV0YXxuYXZ8bm9mcmFtZXN8b2x8b3B0Z3JvdXB8b3B0aW9ufHB8cGFyYW18c2VjdGlvbnxzb3VyY2V8c3VtbWFyeXx0YWJsZXx0Ym9keXx0ZHx0Zm9vdHx0aHx0aGVhZHx0aXRsZXx0cnx0cmFja3x1bCIsQi5fY29tbWVudD0v''@;'; put 'put ''PCEtLSg/IS0/PilbXHNcU10qPyg/Oi0tPnwkKS8sQi5odG1sPXYoQi5odG1sLCJpIikucmVwbGFjZSgiY29tbWVudCIsQi5fY29tbWVudCkucmVwbGFjZSgidGFnIixCLl90YWcpLnJlcGxhY2UoImF0dHJpYnV0ZSIsLyArW2EtekEtWjpfXVtcdy46LV0qKD86ICo9ICoiW14iXG5dKiJ8ICo9''@;'; put 'put ''IConW14nXG5dKid8ICo9ICpbXlxzIic9PD5gXSspPy8pLmdldFJlZ2V4KCksQi5wYXJhZ3JhcGg9dihCLl9wYXJhZ3JhcGgpLnJlcGxhY2UoImhyIixCLmhyKS5yZXBsYWNlKCJoZWFkaW5nIiwiIHswLDN9I3sxLDZ9ICIpLnJlcGxhY2UoInxsaGVhZGluZyIsIiIpLnJlcGxhY2UoInx0YWJs''@;'; put 'put ''ZSIsIiIpLnJlcGxhY2UoImJsb2NrcXVvdGUiLCIgezAsM30+IikucmVwbGFjZSgiZmVuY2VzIiwiIHswLDN9KD86YHszLH0oPz1bXmBcXG5dKlxcbil8fnszLH0pW15cXG5dKlxcbiIpLnJlcGxhY2UoImxpc3QiLCIgezAsM30oPzpbKistXXwxWy4pXSkgIikucmVwbGFjZSgiaHRtbCIsIjwv''@;'; put 'put ''Pyg/OnRhZykoPzogK3xcXG58Lz8+KXw8KD86c2NyaXB0fHByZXxzdHlsZXx0ZXh0YXJlYXwhLS0pIikucmVwbGFjZSgidGFnIixCLl90YWcpLmdldFJlZ2V4KCksQi5ibG9ja3F1b3RlPXYoQi5ibG9ja3F1b3RlKS5yZXBsYWNlKCJwYXJhZ3JhcGgiLEIucGFyYWdyYXBoKS5nZXRSZWdleCgp''@;'; put 'put ''LEIubm9ybWFsPXgoe30sQiksQi5nZm09eCh7fSxCLm5vcm1hbCx7dGFibGU6Il4gKihbXlxcbiBdLipcXHwuKilcXG4gezAsM30oPzpcXHwgKik/KDo/LSs6PyAqKD86XFx8ICo6Py0rOj8gKikqKSg/OlxcfCAqKT8oPzpcXG4oKD86KD8hICpcXG58aHJ8aGVhZGluZ3xibG9ja3F1b3RlfGNv''@;'; put 'put ''ZGV8ZmVuY2VzfGxpc3R8aHRtbCkuKig/OlxcbnwkKSkqKVxcbip8JCkifSksQi5nZm0udGFibGU9dihCLmdmbS50YWJsZSkucmVwbGFjZSgiaHIiLEIuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVwbGFjZSgiYmxvY2txdW90ZSIsIiB7MCwzfT4iKS5yZXBsYWNl''@;'; put 'put ''KCJjb2RlIiwiIHs0fVteXFxuXSIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0IiwiIHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxu''@;'; put 'put ''fC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsQi5fdGFnKS5nZXRSZWdleCgpLEIuZ2ZtLnBhcmFncmFwaD12KEIuX3BhcmFncmFwaCkucmVwbGFjZSgiaHIiLEIuaHIpLnJlcGxhY2UoImhlYWRpbmciLCIgezAsM30jezEsNn0gIikucmVw''@;'; put 'put ''bGFjZSgifGxoZWFkaW5nIiwiIikucmVwbGFjZSgidGFibGUiLEIuZ2ZtLnRhYmxlKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoImZlbmNlcyIsIiB7MCwzfSg/OmB7Myx9KD89W15gXFxuXSpcXG4pfH57Myx9KVteXFxuXSpcXG4iKS5yZXBsYWNlKCJsaXN0Iiwi''@;'; put 'put ''IHswLDN9KD86WyorLV18MVsuKV0pICIpLnJlcGxhY2UoImh0bWwiLCI8Lz8oPzp0YWcpKD86ICt8XFxufC8/Pil8PCg/OnNjcmlwdHxwcmV8c3R5bGV8dGV4dGFyZWF8IS0tKSIpLnJlcGxhY2UoInRhZyIsQi5fdGFnKS5nZXRSZWdleCgpLEIucGVkYW50aWM9eCh7fSxCLm5vcm1hbCx7aHRt''@;'; put 'put ''bDp2KCJeICooPzpjb21tZW50ICooPzpcXG58XFxzKiQpfDwodGFnKVtcXHNcXFNdKz88L1xcMT4gKig/OlxcbnsyLH18XFxzKiQpfDx0YWcoPzpcIlteXCJdKlwifCdbXiddKid8XFxzW14nXCIvPlxcc10qKSo/Lz8+ICooPzpcXG57Mix9fFxccyokKSkiKS5yZXBsYWNlKCJjb21tZW50IixC''@;'; put 'put ''Ll9jb21tZW50KS5yZXBsYWNlKC90YWcvZywiKD8hKD86YXxlbXxzdHJvbmd8c21hbGx8c3xjaXRlfHF8ZGZufGFiYnJ8ZGF0YXx0aW1lfGNvZGV8dmFyfHNhbXB8a2JkfHN1YnxzdXB8aXxifHV8bWFya3xydWJ5fHJ0fHJwfGJkaXxiZG98c3Bhbnxicnx3YnJ8aW5zfGRlbHxpbWcpXFxiKVxc''@;'; put 'put ''dysoPyE6fFteXFx3XFxzQF0qQClcXGIiKS5nZXRSZWdleCgpLGRlZjovXiAqXFsoW15cXV0rKVxdOiAqPD8oW15ccz5dKyk+Pyg/OiArKFsiKF1bXlxuXStbIildKSk/ICooPzpcbit8JCkvLGhlYWRpbmc6L14oI3sxLDZ9KSguKikoPzpcbit8JCkvLGZlbmNlczpjMSxwYXJhZ3JhcGg6dihC''@;'; put 'put ''Lm5vcm1hbC5fcGFyYWdyYXBoKS5yZXBsYWNlKCJociIsQi5ocikucmVwbGFjZSgiaGVhZGluZyIsIiAqI3sxLDZ9ICpbXlxuXSIpLnJlcGxhY2UoImxoZWFkaW5nIixCLmxoZWFkaW5nKS5yZXBsYWNlKCJibG9ja3F1b3RlIiwiIHswLDN9PiIpLnJlcGxhY2UoInxmZW5jZXMiLCIiKS5yZXBs''@;'; put 'put ''YWNlKCJ8bGlzdCIsIiIpLnJlcGxhY2UoInxodG1sIiwiIikuZ2V0UmVnZXgoKX0pLHtlc2NhcGU6L15cXChbISIjJCUmJygpKissXC0uLzo7PD0+P0BcW1xdXFxeX2B7fH1+XSkvLGF1dG9saW5rOi9ePChzY2hlbWU6W15cc1x4MDAtXHgxZjw+XSp8ZW1haWwpPi8sdXJsOmMxLHRhZzoiXmNv''@;'; put 'put ''bW1lbnR8XjwvW2EtekEtWl1bXFx3Oi1dKlxccyo+fF48W2EtekEtWl1bXFx3LV0qKD86YXR0cmlidXRlKSo/XFxzKi8/PnxePFxcP1tcXHNcXFNdKj9cXD8+fF48IVthLXpBLVpdK1xcc1tcXHNcXFNdKj8+fF48IVxcW0NEQVRBXFxbW1xcc1xcU10qP1xcXVxcXT4iLGxpbms6L14hP1xbKGxh''@;'; put 'put ''YmVsKVxdXChccyooaHJlZikoPzpccysodGl0bGUpKT9ccypcKS8scmVmbGluazovXiE/XFsobGFiZWwpXF1cWyhyZWYpXF0vLG5vbGluazovXiE/XFsocmVmKVxdKD86XFtcXSk/LyxyZWZsaW5rU2VhcmNoOiJyZWZsaW5rfG5vbGluayg/IVxcKCkiLGVtU3Ryb25nOntsRGVsaW06L14oPzpc''@;'; put 'put ''KisoPzooW3B1bmN0X10pfFteXHMqXSkpfF5fKyg/OihbcHVuY3QqXSl8KFteXHNfXSkpLyxyRGVsaW1Bc3Q6L15bXl8qXSo/XF9cX1teXypdKj9cKlteXypdKj8oPz1cX1xfKXxbXipdKyg/PVteKl0pfFtwdW5jdF9dKFwqKykoPz1bXHNdfCQpfFtecHVuY3QqX1xzXShcKispKD89W3B1bmN0''@;'; put 'put ''X1xzXXwkKXxbcHVuY3RfXHNdKFwqKykoPz1bXnB1bmN0Kl9cc10pfFtcc10oXCorKSg/PVtwdW5jdF9dKXxbcHVuY3RfXShcKispKD89W3B1bmN0X10pfFtecHVuY3QqX1xzXShcKispKD89W15wdW5jdCpfXHNdKS8sckRlbGltVW5kOi9eW15fKl0qP1wqXCpbXl8qXSo/XF9bXl8qXSo/KD89''@;'; put 'put ''XCpcKil8W15fXSsoPz1bXl9dKXxbcHVuY3QqXShcXyspKD89W1xzXXwkKXxbXnB1bmN0Kl9cc10oXF8rKSg/PVtwdW5jdCpcc118JCl8W3B1bmN0KlxzXShcXyspKD89W15wdW5jdCpfXHNdKXxbXHNdKFxfKykoPz1bcHVuY3QqXSl8W3B1bmN0Kl0oXF8rKSg/PVtwdW5jdCpdKS99LGNvZGU6''@;'; put 'put ''L14oYCspKFteYF18W15gXVtcc1xTXSo/W15gXSlcMSg/IWApLyxicjovXiggezIsfXxcXClcbig/IVxzKiQpLyxkZWw6YzEsdGV4dDovXihgK3xbXmBdKSg/Oig/PSB7Mix9XG4pfFtcc1xTXSo/KD86KD89W1xcPCFcW2AqX118XGJffCQpfFteIF0oPz0gezIsfVxuKSkpLyxwdW5jdHVhdGlv''@;'; put 'put ''bjovXihbXHNwdW5jdHVhdGlvbl0pL30pO2Z1bmN0aW9uIGwxKCQpe3JldHVybiAkLnJlcGxhY2UoLy0tLS9nLCJcdTIwMTQiKS5yZXBsYWNlKC8tLS9nLCJcdTIwMTMiKS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7IlxzXSknL2csIiQxXHUyMDE4IikucmVwbGFjZSgvJy9nLCJcdTIwMTki''@;'; put 'put ''KS5yZXBsYWNlKC8oXnxbLVx1MjAxNC8oXFt7XHUyMDE4XHNdKSIvZywiJDFcdTIwMWMiKS5yZXBsYWNlKC8iL2csIlx1MjAxZCIpLnJlcGxhY2UoL1wuezN9L2csIlx1MjAyNiIpfWZ1bmN0aW9uIGExKCQpe2Zvcih2YXIgeix5PSIiLEQ9JC5sZW5ndGgsWj0wO1o8RDtaKyspej0kLmNoYXJD''@;'; put 'put ''b2RlQXQoWikseSs9IiYjIisoej0uNTxNYXRoLnJhbmRvbSgpPyJ4Iit6LnRvU3RyaW5nKDE2KTp6KSsiOyI7cmV0dXJuIHl9Ui5fcHVuY3R1YXRpb249IiFcIiMkJSYnKCkrXFwtLiwvOjs8PT4/QFxcW1xcXWBee3x9fiIsUi5wdW5jdHVhdGlvbj12KFIucHVuY3R1YXRpb24pLnJlcGxhY2Uo''@;'; put 'put ''L3B1bmN0dWF0aW9uL2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5ibG9ja1NraXA9L1xbW15cXV0qP1xdXChbXlwpXSo/XCl8YFteYF0qP2B8PFtePl0qPz4vZyxSLmVzY2FwZWRFbVN0PS9cXFwqfFxcXy9nLFIuX2NvbW1lbnQ9dihCLl9jb21tZW50KS5yZXBsYWNlKCIoPzotLVx4''@;'; put 'put ''M2V8JCkiLCItLVx4M2UiKS5nZXRSZWdleCgpLFIuZW1TdHJvbmcubERlbGltPXYoUi5lbVN0cm9uZy5sRGVsaW0pLnJlcGxhY2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5lbVN0cm9uZy5yRGVsaW1Bc3Q9dihSLmVtU3Ryb25nLnJEZWxpbUFzdCwiZyIpLnJlcGxh''@;'; put 'put ''Y2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5lbVN0cm9uZy5yRGVsaW1VbmQ9dihSLmVtU3Ryb25nLnJEZWxpbVVuZCwiZyIpLnJlcGxhY2UoL3B1bmN0L2csUi5fcHVuY3R1YXRpb24pLmdldFJlZ2V4KCksUi5fZXNjYXBlcz0vXFwoWyEiIyQlJicoKSorLFwtLi86''@;'; put 'put ''Ozw9Pj9AXFtcXVxcXl9ge3x9fl0pL2csUi5fc2NoZW1lPS9bYS16QS1aXVthLXpBLVowLTkrLi1dezEsMzF9LyxSLl9lbWFpbD0vW2EtekEtWjAtOS4hIyQlJicqKy89P15fYHt8fX4tXSsoQClbYS16QS1aMC05XSg/OlthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8oPzpcLlthLXpB''@;'; put 'put ''LVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPykrKD8hWy1fXSkvLFIuYXV0b2xpbms9dihSLmF1dG9saW5rKS5yZXBsYWNlKCJzY2hlbWUiLFIuX3NjaGVtZSkucmVwbGFjZSgiZW1haWwiLFIuX2VtYWlsKS5nZXRSZWdleCgpLFIuX2F0dHJpYnV0ZT0vXHMrW2EtekEt''@;'; put 'put ''WjpfXVtcdy46LV0qKD86XHMqPVxzKiJbXiJdKiJ8XHMqPVxzKidbXiddKid8XHMqPVxzKlteXHMiJz08PmBdKyk/LyxSLnRhZz12KFIudGFnKS5yZXBsYWNlKCJjb21tZW50IixSLl9jb21tZW50KS5yZXBsYWNlKCJhdHRyaWJ1dGUiLFIuX2F0dHJpYnV0ZSkuZ2V0UmVnZXgoKSxSLl9sYWJl''@;'; put 'put ''bD0vKD86XFsoPzpcXC58W15cW1xdXFxdKSpcXXxcXC58YFteYF0qYHxbXlxbXF1cXGBdKSo/LyxSLl9ocmVmPS88KD86XFwufFteXG48PlxcXSkrPnxbXlxzXHgwMC1ceDFmXSovLFIuX3RpdGxlPS8iKD86XFwiP3xbXiJcXF0pKiJ8Jyg/OlxcJz98W14nXFxdKSonfFwoKD86XFxcKT98W14p''@;'; put 'put ''XFxdKSpcKS8sUi5saW5rPXYoUi5saW5rKS5yZXBsYWNlKCJsYWJlbCIsUi5fbGFiZWwpLnJlcGxhY2UoImhyZWYiLFIuX2hyZWYpLnJlcGxhY2UoInRpdGxlIixSLl90aXRsZSkuZ2V0UmVnZXgoKSxSLnJlZmxpbms9dihSLnJlZmxpbmspLnJlcGxhY2UoImxhYmVsIixSLl9sYWJlbCkucmVw''@;'; put 'put ''bGFjZSgicmVmIixCLl9sYWJlbCkuZ2V0UmVnZXgoKSxSLm5vbGluaz12KFIubm9saW5rKS5yZXBsYWNlKCJyZWYiLEIuX2xhYmVsKS5nZXRSZWdleCgpLFIucmVmbGlua1NlYXJjaD12KFIucmVmbGlua1NlYXJjaCwiZyIpLnJlcGxhY2UoInJlZmxpbmsiLFIucmVmbGluaykucmVwbGFjZSgi''@;'; put 'put ''bm9saW5rIixSLm5vbGluaykuZ2V0UmVnZXgoKSxSLm5vcm1hbD14KHt9LFIpLFIucGVkYW50aWM9eCh7fSxSLm5vcm1hbCx7c3Ryb25nOntzdGFydDovXl9ffFwqXCovLG1pZGRsZTovXl9fKD89XFMpKFtcc1xTXSo/XFMpX18oPyFfKXxeXCpcKig/PVxTKShbXHNcU10qP1xTKVwqXCooPyFc''@;'; put 'put ''KikvLGVuZEFzdDovXCpcKig/IVwqKS9nLGVuZFVuZDovX18oPyFfKS9nfSxlbTp7c3RhcnQ6L15ffFwqLyxtaWRkbGU6L14oKVwqKD89XFMpKFtcc1xTXSo/XFMpXCooPyFcKil8Xl8oPz1cUykoW1xzXFNdKj9cUylfKD8hXykvLGVuZEFzdDovXCooPyFcKikvZyxlbmRVbmQ6L18oPyFfKS9n''@;'; put 'put ''fSxsaW5rOnYoL14hP1xbKGxhYmVsKVxdXCgoLio/KVwpLykucmVwbGFjZSgibGFiZWwiLFIuX2xhYmVsKS5nZXRSZWdleCgpLHJlZmxpbms6digvXiE/XFsobGFiZWwpXF1ccypcWyhbXlxdXSopXF0vKS5yZXBsYWNlKCJsYWJlbCIsUi5fbGFiZWwpLmdldFJlZ2V4KCl9KSxSLmdmbT14KHt9''@;'; put 'put ''LFIubm9ybWFsLHtlc2NhcGU6dihSLmVzY2FwZSkucmVwbGFjZSgiXSkiLCJ+fF0pIikuZ2V0UmVnZXgoKSxfZXh0ZW5kZWRfZW1haWw6L1tBLVphLXowLTkuXystXSsoQClbYS16QS1aMC05LV9dKyg/OlwuW2EtekEtWjAtOS1fXSpbYS16QS1aMC05XSkrKD8hWy1fXSkvLHVybDovXigoPzpm''@;'; put 'put ''dHB8aHR0cHM/KTpcL1wvfHd3d1wuKSg/OlthLXpBLVowLTlcLV0rXC4/KStbXlxzPF0qfF5lbWFpbC8sX2JhY2twZWRhbDovKD86W14/IS4sOjsqX34oKSZdK3xcKFteKV0qXCl8Jig/IVthLXpBLVowLTldKzskKXxbPyEuLDo7Kl9+KV0rKD8hJCkpKy8sZGVsOi9eKH5+PykoPz1bXlxzfl0p''@;'; put 'put ''KFtcc1xTXSo/W15cc35dKVwxKD89W15+XXwkKS8sdGV4dDovXihbYH5dK3xbXmB+XSkoPzooPz0gezIsfVxuKXwoPz1bYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXStAKXxbXHNcU10qPyg/Oig/PVtcXDwhXFtgKn5fXXxcYl98aHR0cHM/OlwvXC98ZnRwOlwvXC98d3d3XC58JCl8''@;'; put 'put ''W14gXSg/PSB7Mix9XG4pfFteYS16QS1aMC05LiEjJCUmJyorXC89P19ge1x8fX4tXSg/PVthLXpBLVowLTkuISMkJSYnKitcLz0/X2B7XHx9fi1dK0ApKSkvfSksUi5nZm0udXJsPXYoUi5nZm0udXJsLCJpIikucmVwbGFjZSgiZW1haWwiLFIuZ2ZtLl9leHRlbmRlZF9lbWFpbCkuZ2V0UmVn''@;'; put 'put ''ZXgoKSxSLmJyZWFrcz14KHt9LFIuZ2ZtLHticjp2KFIuYnIpLnJlcGxhY2UoInsyLH0iLCIqIikuZ2V0UmVnZXgoKSx0ZXh0OnYoUi5nZm0udGV4dCkucmVwbGFjZSgiXFxiXyIsIlxcYl98IHsyLH1cXG4iKS5yZXBsYWNlKC9cezIsXH0vZywiKiIpLmdldFJlZ2V4KCl9KTt2YXIgaDE9ZnVu''@;'; put 'put ''Y3Rpb24oKXtmdW5jdGlvbiAkKFope3RoaXMudG9rZW5zPVtdLHRoaXMudG9rZW5zLmxpbmtzPU9iamVjdC5jcmVhdGUobnVsbCksdGhpcy5vcHRpb25zPVp8fFguZGVmYXVsdHMsdGhpcy5vcHRpb25zLnRva2VuaXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyfHxuZXcgTyx0aGlzLnRva2Vu''@;'; put 'put ''aXplcj10aGlzLm9wdGlvbnMudG9rZW5pemVyLHRoaXMudG9rZW5pemVyLm9wdGlvbnM9dGhpcy5vcHRpb25zLCh0aGlzLnRva2VuaXplci5sZXhlcj10aGlzKS5pbmxpbmVRdWV1ZT1bXSx0aGlzLnN0YXRlPXtpbkxpbms6ITEsaW5SYXdCbG9jazohMSx0b3A6ITB9LFo9e2Jsb2NrOkIubm9y''@;'; put 'put ''bWFsLGlubGluZTpSLm5vcm1hbH0sdGhpcy5vcHRpb25zLnBlZGFudGljPyhaLmJsb2NrPUIucGVkYW50aWMsWi5pbmxpbmU9Ui5wZWRhbnRpYyk6dGhpcy5vcHRpb25zLmdmbSYmKFouYmxvY2s9Qi5nZm0sWi5pbmxpbmU9dGhpcy5vcHRpb25zLmJyZWFrcz9SLmJyZWFrczpSLmdmbSksdGhp''@;'; put 'put ''cy50b2tlbml6ZXIucnVsZXM9Wn0kLmxleD1mdW5jdGlvbihaLFQpe3JldHVybiBuZXcgJChUKS5sZXgoWil9LCQubGV4SW5saW5lPWZ1bmN0aW9uKFosVCl7cmV0dXJuIG5ldyAkKFQpLmlubGluZVRva2VucyhaKX07dmFyIHksRD0kLnByb3RvdHlwZTtyZXR1cm4gRC5sZXg9ZnVuY3Rpb24o''@;'; put 'put ''Wil7dmFyIFQ7Zm9yKFo9Wi5yZXBsYWNlKC9cclxufFxyL2csIlxuIiksdGhpcy5ibG9ja1Rva2VucyhaLHRoaXMudG9rZW5zKTtUPXRoaXMuaW5saW5lUXVldWUuc2hpZnQoKTspdGhpcy5pbmxpbmVUb2tlbnMoVC5zcmMsVC50b2tlbnMpO3JldHVybiB0aGlzLnRva2Vuc30sRC5ibG9ja1Rv''@;'; put 'put ''a2Vucz1mdW5jdGlvbihaLFQpe3ZhciBQLGUxLHIxLFoxLFk9dGhpcztmb3Iodm9pZCAwPT09VCYmKFQ9W10pLFo9dGhpcy5vcHRpb25zLnBlZGFudGljP1oucmVwbGFjZSgvXHQvZywiICAgICIpLnJlcGxhY2UoL14gKyQvZ20sIiIpOloucmVwbGFjZSgvXiggKikoXHQrKS9nbSxmdW5jdGlv''@;'; put 'put ''bihKLEExLE4xKXtyZXR1cm4gQTErIiAgICAiLnJlcGVhdChOMS5sZW5ndGgpfSk7WjspaWYoISh0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuYmxvY2smJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLmJsb2NrLnNvbWUoZnVuY3Rpb24oSil7cmV0dXJu''@;'; put 'put ''ISEoUD1KLmNhbGwoe2xleGVyOll9LFosVCkpJiYoWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKSwhMCl9KSkpaWYoUD10aGlzLnRva2VuaXplci5zcGFjZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksMT09PVAucmF3Lmxlbmd0aCYmMDxULmxlbmd0aD9UW1Qu''@;'; put 'put ''bGVuZ3RoLTFdLnJhdys9IlxuIjpULnB1c2goUCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmNvZGUoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLCEoZTE9VFtULmxlbmd0aC0xXSl8fCJwYXJhZ3JhcGgiIT09ZTEudHlwZSYmInRleHQiIT09ZTEudHlwZT9ULnB1c2goUCk6KGUx''@;'; put 'put ''LnJhdys9IlxuIitQLnJhdyxlMS50ZXh0Kz0iXG4iK1AudGV4dCx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1lMS50ZXh0KTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZmVuY2VzKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSxULnB1c2go''@;'; put 'put ''UCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmhlYWRpbmcoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuaHIoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tl''@;'; put 'put ''bml6ZXIuYmxvY2txdW90ZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5saXN0KFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSxULnB1c2goUCk7ZWxzZSBpZihQPXRoaXMudG9rZW5pemVyLmh0bWwoWikpWj1a''@;'; put 'put ''LnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZGVmKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwhKGUxPVRbVC5sZW5ndGgtMV0pfHwicGFyYWdyYXBoIiE9PWUxLnR5cGUmJiJ0ZXh0IiE9PWUxLnR5cGU/dGhpcy50b2tl''@;'; put 'put ''bnMubGlua3NbUC50YWddfHwodGhpcy50b2tlbnMubGlua3NbUC50YWddPXtocmVmOlAuaHJlZix0aXRsZTpQLnRpdGxlfSk6KGUxLnJhdys9IlxuIitQLnJhdyxlMS50ZXh0Kz0iXG4iK1AucmF3LHRoaXMuaW5saW5lUXVldWVbdGhpcy5pbmxpbmVRdWV1ZS5sZW5ndGgtMV0uc3JjPWUxLnRl''@;'; put 'put ''eHQpO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci50YWJsZShaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5saGVhZGluZyhaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYocjE9Wix0''@;'; put 'put ''aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jayYmZnVuY3Rpb24oKXt2YXIgSj0xLzAsQTE9Wi5zbGljZSgxKSxOMT12b2lkIDA7WS5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRCbG9jay5mb3JFYWNoKGZ1bmN0aW9uKFMxKXsibnVtYmVy''@;'; put 'put ''Ij09dHlwZW9mKE4xPVMxLmNhbGwoe2xleGVyOnRoaXN9LEExKSkmJjA8PU4xJiYoSj1NYXRoLm1pbihKLE4xKSl9KSxKPDEvMCYmMDw9SiYmKHIxPVouc3Vic3RyaW5nKDAsSisxKSl9KCksdGhpcy5zdGF0ZS50b3AmJihQPXRoaXMudG9rZW5pemVyLnBhcmFncmFwaChyMSkpKWUxPVRbVC5s''@;'; put 'put ''ZW5ndGgtMV0sWjEmJiJwYXJhZ3JhcGgiPT09ZTEudHlwZT8oZTEucmF3Kz0iXG4iK1AucmF3LGUxLnRleHQrPSJcbiIrUC50ZXh0LHRoaXMuaW5saW5lUXVldWUucG9wKCksdGhpcy5pbmxpbmVRdWV1ZVt0aGlzLmlubGluZVF1ZXVlLmxlbmd0aC0xXS5zcmM9ZTEudGV4dCk6VC5wdXNoKFAp''@;'; put 'put ''LFoxPXIxLmxlbmd0aCE9PVoubGVuZ3RoLFo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIudGV4dChaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksKGUxPVRbVC5sZW5ndGgtMV0pJiYidGV4dCI9PT1lMS50eXBlPyhlMS5yYXcrPSJcbiIr''@;'; put 'put ''UC5yYXcsZTEudGV4dCs9IlxuIitQLnRleHQsdGhpcy5pbmxpbmVRdWV1ZS5wb3AoKSx0aGlzLmlubGluZVF1ZXVlW3RoaXMuaW5saW5lUXVldWUubGVuZ3RoLTFdLnNyYz1lMS50ZXh0KTpULnB1c2goUCk7ZWxzZSBpZihaKXt2YXIgcT0iSW5maW5pdGUgbG9vcCBvbiBieXRlOiAiK1ouY2hh''@;'; put 'put ''ckNvZGVBdCgwKTtpZih0aGlzLm9wdGlvbnMuc2lsZW50KXtjb25zb2xlLmVycm9yKHEpO2JyZWFrfXRocm93IG5ldyBFcnJvcihxKX1yZXR1cm4gdGhpcy5zdGF0ZS50b3A9ITAsVH0sRC5pbmxpbmU9ZnVuY3Rpb24oWixUKXt0aGlzLmlubGluZVF1ZXVlLnB1c2goe3NyYzpaLHRva2VuczpU''@;'; put 'put ''fSl9LEQuaW5saW5lVG9rZW5zPWZ1bmN0aW9uKFosVCl7dmFyIFAsZTEscjEsWjEsWSxxLEo9dGhpcyxBMT0odm9pZCAwPT09VCYmKFQ9W10pLFopO2lmKHRoaXMudG9rZW5zLmxpbmtzKXt2YXIgTjE9T2JqZWN0LmtleXModGhpcy50b2tlbnMubGlua3MpO2lmKDA8TjEubGVuZ3RoKWZvcig7''@;'; put 'put ''bnVsbCE9KFoxPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5yZWZsaW5rU2VhcmNoLmV4ZWMoQTEpKTspTjEuaW5jbHVkZXMoWjFbMF0uc2xpY2UoWjFbMF0ubGFzdEluZGV4T2YoIlsiKSsxLC0xKSkmJihBMT1BMS5zbGljZSgwLFoxLmluZGV4KSsiWyIrSSgiYSIsWjFbMF0ubGVuZ3Ro''@;'; put 'put ''LTIpKyJdIitBMS5zbGljZSh0aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUucmVmbGlua1NlYXJjaC5sYXN0SW5kZXgpKX1mb3IoO251bGwhPShaMT10aGlzLnRva2VuaXplci5ydWxlcy5pbmxpbmUuYmxvY2tTa2lwLmV4ZWMoQTEpKTspQTE9QTEuc2xpY2UoMCxaMS5pbmRleCkrIlsiK0ko''@;'; put 'put ''ImEiLFoxWzBdLmxlbmd0aC0yKSsiXSIrQTEuc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmJsb2NrU2tpcC5sYXN0SW5kZXgpO2Zvcig7bnVsbCE9KFoxPXRoaXMudG9rZW5pemVyLnJ1bGVzLmlubGluZS5lc2NhcGVkRW1TdC5leGVjKEExKSk7KUExPUExLnNsaWNlKDAsWjEu''@;'; put 'put ''aW5kZXgpKyIrKyIrQTEuc2xpY2UodGhpcy50b2tlbml6ZXIucnVsZXMuaW5saW5lLmVzY2FwZWRFbVN0Lmxhc3RJbmRleCk7Zm9yKDtaOylpZihZfHwocT0iIiksWT0hMSwhKHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5pbmxpbmUmJnRoaXMub3B0''@;'; put 'put ''aW9ucy5leHRlbnNpb25zLmlubGluZS5zb21lKGZ1bmN0aW9uKG4xKXtyZXR1cm4hIShQPW4xLmNhbGwoe2xleGVyOkp9LFosVCkpJiYoWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKSwhMCl9KSkpaWYoUD10aGlzLnRva2VuaXplci5lc2NhcGUoWikpWj1aLnN1YnN0cmlu''@;'; put 'put ''ZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIudGFnKFopKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwoZTE9VFtULmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PVAudHlwZSYmInRleHQiPT09ZTEudHlwZT8oZTEucmF3Kz1QLnJhdyxlMS50ZXh0Kz1Q''@;'; put 'put ''LnRleHQpOlQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIubGluayhaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5yZWZsaW5rKFosdGhpcy50b2tlbnMubGlua3MpKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVu''@;'; put 'put ''Z3RoKSwoZTE9VFtULmxlbmd0aC0xXSkmJiJ0ZXh0Ij09PVAudHlwZSYmInRleHQiPT09ZTEudHlwZT8oZTEucmF3Kz1QLnJhdyxlMS50ZXh0Kz1QLnRleHQpOlQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuZW1TdHJvbmcoWixBMSxxKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxl''@;'; put 'put ''bmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5jb2Rlc3BhbihaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYoUD10aGlzLnRva2VuaXplci5icihaKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2Ug''@;'; put 'put ''aWYoUD10aGlzLnRva2VuaXplci5kZWwoWikpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKFA9dGhpcy50b2tlbml6ZXIuYXV0b2xpbmsoWixhMSkpWj1aLnN1YnN0cmluZyhQLnJhdy5sZW5ndGgpLFQucHVzaChQKTtlbHNlIGlmKCF0aGlzLnN0YXRlLmlu''@;'; put 'put ''TGluayYmKFA9dGhpcy50b2tlbml6ZXIudXJsKFosYTEpKSlaPVouc3Vic3RyaW5nKFAucmF3Lmxlbmd0aCksVC5wdXNoKFApO2Vsc2UgaWYocjE9Wix0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMuc3RhcnRJbmxpbmUmJmZ1bmN0aW9uKCl7dmFyIG4x''@;'; put 'put ''PTEvMCxpMT1aLnNsaWNlKDEpLGYxPXZvaWQgMDtKLm9wdGlvbnMuZXh0ZW5zaW9ucy5zdGFydElubGluZS5mb3JFYWNoKGZ1bmN0aW9uKHgxKXsibnVtYmVyIj09dHlwZW9mKGYxPXgxLmNhbGwoe2xleGVyOnRoaXN9LGkxKSkmJjA8PWYxJiYobjE9TWF0aC5taW4objEsZjEpKX0pLG4xPDEv''@;'; put 'put ''MCYmMDw9bjEmJihyMT1aLnN1YnN0cmluZygwLG4xKzEpKX0oKSxQPXRoaXMudG9rZW5pemVyLmlubGluZVRleHQocjEsbDEpKVo9Wi5zdWJzdHJpbmcoUC5yYXcubGVuZ3RoKSwiXyIhPT1QLnJhdy5zbGljZSgtMSkmJihxPVAucmF3LnNsaWNlKC0xKSksWT0hMCwoZTE9VFtULmxlbmd0aC0x''@;'; put 'put ''XSkmJiJ0ZXh0Ij09PWUxLnR5cGU/KGUxLnJhdys9UC5yYXcsZTEudGV4dCs9UC50ZXh0KTpULnB1c2goUCk7ZWxzZSBpZihaKXt2YXIgUzE9IkluZmluaXRlIGxvb3Agb24gYnl0ZTogIitaLmNoYXJDb2RlQXQoMCk7aWYodGhpcy5vcHRpb25zLnNpbGVudCl7Y29uc29sZS5lcnJvcihTMSk7''@;'; put 'put ''YnJlYWt9dGhyb3cgbmV3IEVycm9yKFMxKX1yZXR1cm4gVH0sRD0kLCh5PVt7a2V5OiJydWxlcyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2Jsb2NrOkIsaW5saW5lOlJ9fX1dKSYmRjEoRCx5KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoRCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSwkfSgp''@;'; put 'put ''LHUxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gJCh5KXt0aGlzLm9wdGlvbnM9eXx8WC5kZWZhdWx0c312YXIgej0kLnByb3RvdHlwZTtyZXR1cm4gei5jb2RlPWZ1bmN0aW9uKHksUCxaKXt2YXIgVDtyZXR1cm4gUD0oUHx8IiIpLm1hdGNoKC9cUyovKVswXSx0aGlzLm9wdGlvbnMuaGlnaGxpZ2h0''@;'; put 'put ''JiZudWxsIT0oVD10aGlzLm9wdGlvbnMuaGlnaGxpZ2h0KHksUCkpJiZUIT09eSYmKFo9ITAseT1UKSx5PXkucmVwbGFjZSgvXG4kLywiIikrIlxuIixQPyc8cHJlPjxjb2RlIGNsYXNzPSInK3RoaXMub3B0aW9ucy5sYW5nUHJlZml4K2YoUCwhMCkrJyI+JysoWj95OmYoeSwhMCkpKyI8L2Nv''@;'; put 'put ''ZGU+PC9wcmU+XG4iOiI8cHJlPjxjb2RlPiIrKFo/eTpmKHksITApKSsiPC9jb2RlPjwvcHJlPlxuIn0sei5ibG9ja3F1b3RlPWZ1bmN0aW9uKHkpe3JldHVybiI8YmxvY2txdW90ZT5cbiIreSsiPC9ibG9ja3F1b3RlPlxuIn0sei5odG1sPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmhlYWRp''@;'; put 'put ''bmc9ZnVuY3Rpb24oeSxELFosVCl7cmV0dXJuIHRoaXMub3B0aW9ucy5oZWFkZXJJZHM/IjxoIitEKycgaWQ9IicrKHRoaXMub3B0aW9ucy5oZWFkZXJQcmVmaXgrVC5zbHVnKFopKSsnIj4nK3krIjwvaCIrRCsiPlxuIjoiPGgiK0QrIj4iK3krIjwvaCIrRCsiPlxuIn0sei5ocj1mdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB0aGlzLm9wdGlvbnMueGh0bWw/Ijxoci8+XG4iOiI8aHI+XG4ifSx6Lmxpc3Q9ZnVuY3Rpb24oeSxELFope3ZhciBUPUQ/Im9sIjoidWwiO3JldHVybiI8IitUKyhEJiYxIT09Wj8nIHN0YXJ0PSInK1orJyInOiIiKSsiPlxuIit5KyI8LyIrVCsiPlxuIn0sei5saXN0aXRl''@;'; put 'put ''bT1mdW5jdGlvbih5KXtyZXR1cm4iPGxpPiIreSsiPC9saT5cbiJ9LHouY2hlY2tib3g9ZnVuY3Rpb24oeSl7cmV0dXJuIjxpbnB1dCAiKyh5PydjaGVja2VkPSIiICc6IiIpKydkaXNhYmxlZD0iIiB0eXBlPSJjaGVja2JveCInKyh0aGlzLm9wdGlvbnMueGh0bWw/IiAvIjoiIikrIj4gIn0s''@;'; put 'put ''ei5wYXJhZ3JhcGg9ZnVuY3Rpb24oeSl7cmV0dXJuIjxwPiIreSsiPC9wPlxuIn0sei50YWJsZT1mdW5jdGlvbih5LEQpe3JldHVybiI8dGFibGU+XG48dGhlYWQ+XG4iK3krIjwvdGhlYWQ+XG4iKyhEPUQmJiI8dGJvZHk+IitEKyI8L3Rib2R5PiIpKyI8L3RhYmxlPlxuIn0sei50YWJsZXJv''@;'; put 'put ''dz1mdW5jdGlvbih5KXtyZXR1cm4iPHRyPlxuIit5KyI8L3RyPlxuIn0sei50YWJsZWNlbGw9ZnVuY3Rpb24oeSxEKXt2YXIgWj1ELmhlYWRlcj8idGgiOiJ0ZCI7cmV0dXJuKEQuYWxpZ24/IjwiK1orJyBhbGlnbj0iJytELmFsaWduKyciPic6IjwiK1orIj4iKSt5KyI8LyIrWisiPlxuIn0s''@;'; put 'put ''ei5zdHJvbmc9ZnVuY3Rpb24oeSl7cmV0dXJuIjxzdHJvbmc+Iit5KyI8L3N0cm9uZz4ifSx6LmVtPWZ1bmN0aW9uKHkpe3JldHVybiI8ZW0+Iit5KyI8L2VtPiJ9LHouY29kZXNwYW49ZnVuY3Rpb24oeSl7cmV0dXJuIjxjb2RlPiIreSsiPC9jb2RlPiJ9LHouYnI9ZnVuY3Rpb24oKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5vcHRpb25zLnhodG1sPyI8YnIvPiI6Ijxicj4ifSx6LmRlbD1mdW5jdGlvbih5KXtyZXR1cm4iPGRlbD4iK3krIjwvZGVsPiJ9LHoubGluaz1mdW5jdGlvbih5LEQsWil7cmV0dXJuIG51bGw9PT0oeT1WKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVy''@;'; put 'put ''bCx5KSk/WjooeT0nPGEgaHJlZj0iJytmKHkpKyciJyxEJiYoeSs9JyB0aXRsZT0iJytEKyciJykseSs9Ij4iK1orIjwvYT4iKX0sei5pbWFnZT1mdW5jdGlvbih5LEQsWil7cmV0dXJuIG51bGw9PT0oeT1WKHRoaXMub3B0aW9ucy5zYW5pdGl6ZSx0aGlzLm9wdGlvbnMuYmFzZVVybCx5KSk/''@;'; put 'put ''WjooeT0nPGltZyBzcmM9IicreSsnIiBhbHQ9IicrWisnIicsRCYmKHkrPScgdGl0bGU9IicrRCsnIicpLHkrPXRoaXMub3B0aW9ucy54aHRtbD8iLz4iOiI+Iil9LHoudGV4dD1mdW5jdGlvbih5KXtyZXR1cm4geX0sJH0oKSxwMT1mdW5jdGlvbigpe2Z1bmN0aW9uICQoKXt9dmFyIHo9JC5w''@;'; put 'put ''cm90b3R5cGU7cmV0dXJuIHouc3Ryb25nPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmVtPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmNvZGVzcGFuPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6LmRlbD1mdW5jdGlvbih5KXtyZXR1cm4geX0sei5odG1sPWZ1bmN0aW9uKHkpe3JldHVybiB5fSx6''@;'; put 'put ''LnRleHQ9ZnVuY3Rpb24oeSl7cmV0dXJuIHl9LHoubGluaz1mdW5jdGlvbih5LEQsWil7cmV0dXJuIiIrWn0sei5pbWFnZT1mdW5jdGlvbih5LEQsWil7cmV0dXJuIiIrWn0sei5icj1mdW5jdGlvbigpe3JldHVybiIifSwkfSgpLHYxPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gJCgpe3RoaXMuc2Vl''@;'; put 'put ''bj17fX12YXIgej0kLnByb3RvdHlwZTtyZXR1cm4gei5zZXJpYWxpemU9ZnVuY3Rpb24oeSl7cmV0dXJuIHkudG9Mb3dlckNhc2UoKS50cmltKCkucmVwbGFjZSgvPFshXC9hLXpdLio/Pi9naSwiIikucmVwbGFjZSgvW1x1MjAwMC1cdTIwNkZcdTJFMDAtXHUyRTdGXFwnISIjJCUmKCkqKywu''@;'; put 'put ''Lzo7PD0+P0BbXF1eYHt8fX5dL2csIiIpLnJlcGxhY2UoL1xzL2csIi0iKX0sei5nZXROZXh0U2FmZVNsdWc9ZnVuY3Rpb24oeSxEKXt2YXIgWj15LFQ9MDtpZih0aGlzLnNlZW4uaGFzT3duUHJvcGVydHkoWikpZm9yKFQ9dGhpcy5zZWVuW3ldO1o9eSsiLSIrICsrVCx0aGlzLnNlZW4uaGFz''@;'; put 'put ''T3duUHJvcGVydHkoWik7KTtyZXR1cm4gRHx8KHRoaXMuc2Vlblt5XT1ULHRoaXMuc2VlbltaXT0wKSxafSx6LnNsdWc9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gdm9pZCAwPT09RCYmKEQ9e30pLHk9dGhpcy5zZXJpYWxpemUoeSksdGhpcy5nZXROZXh0U2FmZVNsdWcoeSxELmRyeXJ1bil9LCR9''@;'; put 'put ''KCksRTE9ZnVuY3Rpb24oKXtmdW5jdGlvbiAkKHkpe3RoaXMub3B0aW9ucz15fHxYLmRlZmF1bHRzLHRoaXMub3B0aW9ucy5yZW5kZXJlcj10aGlzLm9wdGlvbnMucmVuZGVyZXJ8fG5ldyB1MSx0aGlzLnJlbmRlcmVyPXRoaXMub3B0aW9ucy5yZW5kZXJlcix0aGlzLnJlbmRlcmVyLm9wdGlv''@;'; put 'put ''bnM9dGhpcy5vcHRpb25zLHRoaXMudGV4dFJlbmRlcmVyPW5ldyBwMSx0aGlzLnNsdWdnZXI9bmV3IHYxfSQucGFyc2U9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gbmV3ICQoRCkucGFyc2UoeSl9LCQucGFyc2VJbmxpbmU9ZnVuY3Rpb24oeSxEKXtyZXR1cm4gbmV3ICQoRCkucGFyc2VJbmxpbmUo''@;'; put 'put ''eSl9O3ZhciB6PSQucHJvdG90eXBlO3JldHVybiB6LnBhcnNlPWZ1bmN0aW9uKHksRCl7dm9pZCAwPT09RCYmKEQ9ITApO2Zvcih2YXIgWixULFAsZTEscjEsWjEsWSxxLEosQTEsTjEsUzEsbjEsaTEsZjEseDEsSTE9IiIsSjE9eS5sZW5ndGgsdDA9MDt0MDxKMTt0MCsrKWlmKHE9eVt0MF0s''@;'; put 'put ''dGhpcy5vcHRpb25zLmV4dGVuc2lvbnMmJnRoaXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVycyYmdGhpcy5vcHRpb25zLmV4dGVuc2lvbnMucmVuZGVyZXJzW3EudHlwZV0mJighMSE9PSh4MT10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbcS50eXBlXS5jYWxsKHtwYXJz''@;'; put 'put ''ZXI6dGhpc30scSkpfHwhWyJzcGFjZSIsImhyIiwiaGVhZGluZyIsImNvZGUiLCJ0YWJsZSIsImJsb2NrcXVvdGUiLCJsaXN0IiwiaHRtbCIsInBhcmFncmFwaCIsInRleHQiXS5pbmNsdWRlcyhxLnR5cGUpKSlJMSs9eDF8fCIiO2Vsc2Ugc3dpdGNoKHEudHlwZSl7Y2FzZSJzcGFjZSI6Y29u''@;'; put 'put ''dGludWU7Y2FzZSJociI6STErPXRoaXMucmVuZGVyZXIuaHIoKTtjb250aW51ZTtjYXNlImhlYWRpbmciOkkxKz10aGlzLnJlbmRlcmVyLmhlYWRpbmcodGhpcy5wYXJzZUlubGluZShxLnRva2VucykscS5kZXB0aCx1KHRoaXMucGFyc2VJbmxpbmUocS50b2tlbnMsdGhpcy50ZXh0UmVuZGVy''@;'; put 'put ''ZXIpKSx0aGlzLnNsdWdnZXIpO2NvbnRpbnVlO2Nhc2UiY29kZSI6STErPXRoaXMucmVuZGVyZXIuY29kZShxLnRleHQscS5sYW5nLHEuZXNjYXBlZCk7Y29udGludWU7Y2FzZSJ0YWJsZSI6Zm9yKFoxPUo9IiIsUD1xLmhlYWRlci5sZW5ndGgsWj0wO1o8UDtaKyspWjErPXRoaXMucmVuZGVy''@;'; put 'put ''ZXIudGFibGVjZWxsKHRoaXMucGFyc2VJbmxpbmUocS5oZWFkZXJbWl0udG9rZW5zKSx7aGVhZGVyOiEwLGFsaWduOnEuYWxpZ25bWl19KTtmb3IoSis9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhaMSksWT0iIixQPXEucm93cy5sZW5ndGgsWj0wO1o8UDtaKyspe2ZvcihaMT0iIixlMT0ocjE9''@;'; put 'put ''cS5yb3dzW1pdKS5sZW5ndGgsVD0wO1Q8ZTE7VCsrKVoxKz10aGlzLnJlbmRlcmVyLnRhYmxlY2VsbCh0aGlzLnBhcnNlSW5saW5lKHIxW1RdLnRva2Vucykse2hlYWRlcjohMSxhbGlnbjpxLmFsaWduW1RdfSk7WSs9dGhpcy5yZW5kZXJlci50YWJsZXJvdyhaMSl9STErPXRoaXMucmVuZGVy''@;'; put 'put ''ZXIudGFibGUoSixZKTtjb250aW51ZTtjYXNlImJsb2NrcXVvdGUiOlk9dGhpcy5wYXJzZShxLnRva2VucyksSTErPXRoaXMucmVuZGVyZXIuYmxvY2txdW90ZShZKTtjb250aW51ZTtjYXNlImxpc3QiOmZvcihKPXEub3JkZXJlZCxmMD1xLnN0YXJ0LEExPXEubG9vc2UsUD1xLml0ZW1zLmxl''@;'; put 'put ''bmd0aCxZPSIiLFo9MDtaPFA7WisrKW4xPShTMT1xLml0ZW1zW1pdKS5jaGVja2VkLGkxPVMxLnRhc2ssTjE9IiIsUzEudGFzayYmKGYxPXRoaXMucmVuZGVyZXIuY2hlY2tib3gobjEpLEExPzA8UzEudG9rZW5zLmxlbmd0aCYmInBhcmFncmFwaCI9PT1TMS50b2tlbnNbMF0udHlwZT8oUzEu''@;'; put 'put ''dG9rZW5zWzBdLnRleHQ9ZjErIiAiK1MxLnRva2Vuc1swXS50ZXh0LFMxLnRva2Vuc1swXS50b2tlbnMmJjA8UzEudG9rZW5zWzBdLnRva2Vucy5sZW5ndGgmJiJ0ZXh0Ij09PVMxLnRva2Vuc1swXS50b2tlbnNbMF0udHlwZSYmKFMxLnRva2Vuc1swXS50b2tlbnNbMF0udGV4dD1mMSsiICIr''@;'; put 'put ''UzEudG9rZW5zWzBdLnRva2Vuc1swXS50ZXh0KSk6UzEudG9rZW5zLnVuc2hpZnQoe3R5cGU6InRleHQiLHRleHQ6ZjF9KTpOMSs9ZjEpLE4xKz10aGlzLnBhcnNlKFMxLnRva2VucyxBMSksWSs9dGhpcy5yZW5kZXJlci5saXN0aXRlbShOMSxpMSxuMSk7STErPXRoaXMucmVuZGVyZXIubGlz''@;'; put 'put ''dChZLEosZjApO2NvbnRpbnVlO2Nhc2UiaHRtbCI6STErPXRoaXMucmVuZGVyZXIuaHRtbChxLnRleHQpO2NvbnRpbnVlO2Nhc2UicGFyYWdyYXBoIjpJMSs9dGhpcy5yZW5kZXJlci5wYXJhZ3JhcGgodGhpcy5wYXJzZUlubGluZShxLnRva2VucykpO2NvbnRpbnVlO2Nhc2UidGV4dCI6Zm9y''@;'; put 'put ''KFk9cS50b2tlbnM/dGhpcy5wYXJzZUlubGluZShxLnRva2Vucyk6cS50ZXh0O3QwKzE8SjEmJiJ0ZXh0Ij09PXlbdDArMV0udHlwZTspWSs9IlxuIisoKHE9eVsrK3QwXSkudG9rZW5zP3RoaXMucGFyc2VJbmxpbmUocS50b2tlbnMpOnEudGV4dCk7STErPUQ/dGhpcy5yZW5kZXJlci5wYXJh''@;'; put 'put ''Z3JhcGgoWSk6WTtjb250aW51ZTtkZWZhdWx0OnZhciBmMD0nVG9rZW4gd2l0aCAiJytxLnR5cGUrJyIgdHlwZSB3YXMgbm90IGZvdW5kLic7aWYodGhpcy5vcHRpb25zLnNpbGVudClyZXR1cm4gdm9pZCBjb25zb2xlLmVycm9yKGYwKTt0aHJvdyBuZXcgRXJyb3IoZjApfXJldHVybiBJMX0s''@;'; put 'put ''ei5wYXJzZUlubGluZT1mdW5jdGlvbih5LEQpe0Q9RHx8dGhpcy5yZW5kZXJlcjtmb3IodmFyIFosVCxQPSIiLGUxPXkubGVuZ3RoLHIxPTA7cjE8ZTE7cjErKylpZihaPXlbcjFdLHRoaXMub3B0aW9ucy5leHRlbnNpb25zJiZ0aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnMmJnRo''@;'; put 'put ''aXMub3B0aW9ucy5leHRlbnNpb25zLnJlbmRlcmVyc1taLnR5cGVdJiYoITEhPT0oVD10aGlzLm9wdGlvbnMuZXh0ZW5zaW9ucy5yZW5kZXJlcnNbWi50eXBlXS5jYWxsKHtwYXJzZXI6dGhpc30sWikpfHwhWyJlc2NhcGUiLCJodG1sIiwibGluayIsImltYWdlIiwic3Ryb25nIiwiZW0iLCJj''@;'; put 'put ''b2Rlc3BhbiIsImJyIiwiZGVsIiwidGV4dCJdLmluY2x1ZGVzKFoudHlwZSkpKVArPVR8fCIiO2Vsc2Ugc3dpdGNoKFoudHlwZSl7Y2FzZSJlc2NhcGUiOmNhc2UidGV4dCI6UCs9RC50ZXh0KFoudGV4dCk7YnJlYWs7Y2FzZSJodG1sIjpQKz1ELmh0bWwoWi50ZXh0KTticmVhaztjYXNlImxp''@;'; put 'put ''bmsiOlArPUQubGluayhaLmhyZWYsWi50aXRsZSx0aGlzLnBhcnNlSW5saW5lKFoudG9rZW5zLEQpKTticmVhaztjYXNlImltYWdlIjpQKz1ELmltYWdlKFouaHJlZixaLnRpdGxlLFoudGV4dCk7YnJlYWs7Y2FzZSJzdHJvbmciOlArPUQuc3Ryb25nKHRoaXMucGFyc2VJbmxpbmUoWi50b2tl''@;'; put 'put ''bnMsRCkpO2JyZWFrO2Nhc2UiZW0iOlArPUQuZW0odGhpcy5wYXJzZUlubGluZShaLnRva2VucyxEKSk7YnJlYWs7Y2FzZSJjb2Rlc3BhbiI6UCs9RC5jb2Rlc3BhbihaLnRleHQpO2JyZWFrO2Nhc2UiYnIiOlArPUQuYnIoKTticmVhaztjYXNlImRlbCI6UCs9RC5kZWwodGhpcy5wYXJzZUlu''@;'; put 'put ''bGluZShaLnRva2VucyxEKSk7YnJlYWs7ZGVmYXVsdDp2YXIgWjE9J1Rva2VuIHdpdGggIicrWi50eXBlKyciIHR5cGUgd2FzIG5vdCBmb3VuZC4nO2lmKHRoaXMub3B0aW9ucy5zaWxlbnQpcmV0dXJuIHZvaWQgY29uc29sZS5lcnJvcihaMSk7dGhyb3cgbmV3IEVycm9yKFoxKX1yZXR1cm4g''@;'; put 'put ''UH0sJH0oKTtmdW5jdGlvbiBqKCQseix5KXtpZihudWxsPT0kKXRocm93IG5ldyBFcnJvcigibWFya2VkKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3IgbnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgJCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZCgpOiBpbnB1dCBwYXJhbWV0''@;'; put 'put ''ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCgkKSsiLCBzdHJpbmcgZXhwZWN0ZWQiKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgeiYmKHk9eix6PW51bGwpLE4oej14KHt9LGouZGVmYXVsdHMsenx8e30pKSx5KXt2YXIgRCxaPXouaGlnaGxpZ2h0O3RyeXtE''@;'; put 'put ''PWgxLmxleCgkLHopfWNhdGNoKHIxKXtyZXR1cm4geShyMSl9dmFyIFQ9ZnVuY3Rpb24ocjEpe3ZhciBaMTtpZighcjEpdHJ5e3oud2Fsa1Rva2VucyYmai53YWxrVG9rZW5zKEQsei53YWxrVG9rZW5zKSxaMT1FMS5wYXJzZShELHopfWNhdGNoKFkpe3IxPVl9cmV0dXJuIHouaGlnaGxpZ2h0''@;'; put 'put ''PVoscjE/eShyMSk6eShudWxsLFoxKX07aWYoIVp8fFoubGVuZ3RoPDN8fChkZWxldGUgei5oaWdobGlnaHQsIUQubGVuZ3RoKSlyZXR1cm4gVCgpO3ZhciBQPTA7cmV0dXJuIGoud2Fsa1Rva2VucyhELGZ1bmN0aW9uKHIxKXsiY29kZSI9PT1yMS50eXBlJiYoUCsrLHNldFRpbWVvdXQoZnVu''@;'; put 'put ''Y3Rpb24oKXtaKHIxLnRleHQscjEubGFuZyxmdW5jdGlvbihaMSxZKXtpZihaMSlyZXR1cm4gVChaMSk7bnVsbCE9WSYmWSE9PXIxLnRleHQmJihyMS50ZXh0PVkscjEuZXNjYXBlZD0hMCksMD09LS1QJiZUKCl9KX0sMCkpfSksdm9pZCgwPT09UCYmVCgpKX10cnl7dmFyIGUxPWgxLmxleCgk''@;'; put 'put ''LHopO3JldHVybiB6LndhbGtUb2tlbnMmJmoud2Fsa1Rva2VucyhlMSx6LndhbGtUb2tlbnMpLEUxLnBhcnNlKGUxLHopfWNhdGNoKHIxKXtpZihyMS5tZXNzYWdlKz0iXG5QbGVhc2UgcmVwb3J0IHRoaXMgdG8gaHR0cHM6Ly9naXRodWIuY29tL21hcmtlZGpzL21hcmtlZC4iLHouc2lsZW50''@;'; put 'put ''KXJldHVybiI8cD5BbiBlcnJvciBvY2N1cnJlZDo8L3A+PHByZT4iK2YocjEubWVzc2FnZSsiIiwhMCkrIjwvcHJlPiI7dGhyb3cgcjF9fWoub3B0aW9ucz1qLnNldE9wdGlvbnM9ZnVuY3Rpb24oJCl7cmV0dXJuIHgoai5kZWZhdWx0cywkKSxYLmRlZmF1bHRzPSQ9ai5kZWZhdWx0cyxqfSxq''@;'; put 'put ''LmdldERlZmF1bHRzPWUsai5kZWZhdWx0cz1YLmRlZmF1bHRzLGoudXNlPWZ1bmN0aW9uKCl7Zm9yKHZhciAkPWFyZ3VtZW50cy5sZW5ndGgsej1uZXcgQXJyYXkoJCkseT0wO3k8JDt5Kyspelt5XT1hcmd1bWVudHNbeV07dmFyIEQsWj14LmFwcGx5KHZvaWQgMCxbe31dLmNvbmNhdCh6KSks''@;'; put 'put ''VD1qLmRlZmF1bHRzLmV4dGVuc2lvbnN8fHtyZW5kZXJlcnM6e30sY2hpbGRUb2tlbnM6e319O3ouZm9yRWFjaChmdW5jdGlvbihQKXtpZihQLmV4dGVuc2lvbnMmJihEPSEwLFAuZXh0ZW5zaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKEope2lmKCFKLm5hbWUpdGhyb3cgbmV3IEVycm9yKCJleHRl''@;'; put 'put ''bnNpb24gbmFtZSByZXF1aXJlZCIpO3ZhciBBMTtpZihKLnJlbmRlcmVyJiYoVC5yZW5kZXJlcnNbSi5uYW1lXT0oQTE9VC5yZW5kZXJlcnM/VC5yZW5kZXJlcnNbSi5uYW1lXTpudWxsKT9mdW5jdGlvbigpe2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEpLG4x''@;'; put 'put ''PTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9Si5yZW5kZXJlci5hcHBseSh0aGlzLFMxKTtyZXR1cm4hMT09PWkxP0ExLmFwcGx5KHRoaXMsUzEpOmkxfTpKLnJlbmRlcmVyKSxKLnRva2VuaXplcil7aWYoIUoubGV2ZWx8fCJibG9jayIhPT1KLmxldmVsJiYiaW5s''@;'; put 'put ''aW5lIiE9PUoubGV2ZWwpdGhyb3cgbmV3IEVycm9yKCJleHRlbnNpb24gbGV2ZWwgbXVzdCBiZSAnYmxvY2snIG9yICdpbmxpbmUnIik7VFtKLmxldmVsXT9UW0oubGV2ZWxdLnVuc2hpZnQoSi50b2tlbml6ZXIpOlRbSi5sZXZlbF09W0oudG9rZW5pemVyXSxKLnN0YXJ0JiYoImJsb2NrIj09''@;'; put 'put ''PUoubGV2ZWw/VC5zdGFydEJsb2NrP1Quc3RhcnRCbG9jay5wdXNoKEouc3RhcnQpOlQuc3RhcnRCbG9jaz1bSi5zdGFydF06ImlubGluZSI9PT1KLmxldmVsJiYoVC5zdGFydElubGluZT9ULnN0YXJ0SW5saW5lLnB1c2goSi5zdGFydCk6VC5zdGFydElubGluZT1bSi5zdGFydF0pKX1KLmNo''@;'; put 'put ''aWxkVG9rZW5zJiYoVC5jaGlsZFRva2Vuc1tKLm5hbWVdPUouY2hpbGRUb2tlbnMpfSkpLFAucmVuZGVyZXIpe3ZhciBlMSxyMT1qLmRlZmF1bHRzLnJlbmRlcmVyfHxuZXcgdTE7Zm9yKGUxIGluIFAucmVuZGVyZXIpIWZ1bmN0aW9uKEope3ZhciBBMT1yMVtKXTtyMVtKXT1mdW5jdGlvbigp''@;'; put 'put ''e2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEpLG4xPTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9UC5yZW5kZXJlcltKXS5hcHBseShyMSxTMSk7cmV0dXJuITE9PT1pMT9BMS5hcHBseShyMSxTMSk6aTF9fShlMSk7Wi5yZW5kZXJl''@;'; put 'put ''cj1yMX1pZihQLnRva2VuaXplcil7dmFyIFoxLFk9ai5kZWZhdWx0cy50b2tlbml6ZXJ8fG5ldyBPO2ZvcihaMSBpbiBQLnRva2VuaXplcikhZnVuY3Rpb24oSil7dmFyIEExPVlbSl07WVtKXT1mdW5jdGlvbigpe2Zvcih2YXIgTjE9YXJndW1lbnRzLmxlbmd0aCxTMT1uZXcgQXJyYXkoTjEp''@;'; put 'put ''LG4xPTA7bjE8TjE7bjErKylTMVtuMV09YXJndW1lbnRzW24xXTt2YXIgaTE9UC50b2tlbml6ZXJbSl0uYXBwbHkoWSxTMSk7cmV0dXJuITE9PT1pMT9BMS5hcHBseShZLFMxKTppMX19KFoxKTtaLnRva2VuaXplcj1ZfXZhciBxO1Aud2Fsa1Rva2VucyYmKHE9ai5kZWZhdWx0cy53YWxrVG9r''@;'; put 'put ''ZW5zLFoud2Fsa1Rva2Vucz1mdW5jdGlvbihKKXtQLndhbGtUb2tlbnMuY2FsbCh0aGlzLEopLHEmJnEuY2FsbCh0aGlzLEopfSksRCYmKFouZXh0ZW5zaW9ucz1UKSxqLnNldE9wdGlvbnMoWil9KX0sai53YWxrVG9rZW5zPWZ1bmN0aW9uKCQseil7Zm9yKHZhciB5LEQ9QSgkKTshKHk9RCgp''@;'; put 'put ''KS5kb25lOykhZnVuY3Rpb24oKXt2YXIgWj15LnZhbHVlO3N3aXRjaCh6LmNhbGwoaixaKSxaLnR5cGUpe2Nhc2UidGFibGUiOmZvcih2YXIgVD1BKFouaGVhZGVyKTshKFA9VCgpKS5kb25lOyl7dmFyIFA9UC52YWx1ZTtqLndhbGtUb2tlbnMoUC50b2tlbnMseil9Zm9yKHZhciBlMSxyMT1B''@;'; put 'put ''KFoucm93cyk7IShlMT1yMSgpKS5kb25lOylmb3IodmFyIFoxPUEoZTEudmFsdWUpOyEoWT1aMSgpKS5kb25lOyl7dmFyIFk9WS52YWx1ZTtqLndhbGtUb2tlbnMoWS50b2tlbnMseil9YnJlYWs7Y2FzZSJsaXN0IjpqLndhbGtUb2tlbnMoWi5pdGVtcyx6KTticmVhaztkZWZhdWx0OmouZGVm''@;'; put 'put ''YXVsdHMuZXh0ZW5zaW9ucyYmai5kZWZhdWx0cy5leHRlbnNpb25zLmNoaWxkVG9rZW5zJiZqLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnNbWi50eXBlXT9qLmRlZmF1bHRzLmV4dGVuc2lvbnMuY2hpbGRUb2tlbnNbWi50eXBlXS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2oud2Fsa1Rv''@;'; put 'put ''a2VucyhaW3FdLHopfSk6Wi50b2tlbnMmJmoud2Fsa1Rva2VucyhaLnRva2Vucyx6KX19KCl9LGoucGFyc2VJbmxpbmU9ZnVuY3Rpb24oJCx6KXtpZihudWxsPT0kKXRocm93IG5ldyBFcnJvcigibWFya2VkLnBhcnNlSW5saW5lKCk6IGlucHV0IHBhcmFtZXRlciBpcyB1bmRlZmluZWQgb3Ig''@;'; put 'put ''bnVsbCIpO2lmKCJzdHJpbmciIT10eXBlb2YgJCl0aHJvdyBuZXcgRXJyb3IoIm1hcmtlZC5wYXJzZUlubGluZSgpOiBpbnB1dCBwYXJhbWV0ZXIgaXMgb2YgdHlwZSAiK09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCgkKSsiLCBzdHJpbmcgZXhwZWN0ZWQiKTtOKHo9eCh7fSxqLmRl''@;'; put 'put ''ZmF1bHRzLHp8fHt9KSk7dHJ5e3ZhciB5PWgxLmxleElubGluZSgkLHopO3JldHVybiB6LndhbGtUb2tlbnMmJmoud2Fsa1Rva2Vucyh5LHoud2Fsa1Rva2VucyksRTEucGFyc2VJbmxpbmUoeSx6KX1jYXRjaChEKXtpZihELm1lc3NhZ2UrPSJcblBsZWFzZSByZXBvcnQgdGhpcyB0byBodHRw''@;'; put 'put ''czovL2dpdGh1Yi5jb20vbWFya2VkanMvbWFya2VkLiIsei5zaWxlbnQpcmV0dXJuIjxwPkFuIGVycm9yIG9jY3VycmVkOjwvcD48cHJlPiIrZihELm1lc3NhZ2UrIiIsITApKyI8L3ByZT4iO3Rocm93IER9fSxqLlBhcnNlcj1FMSxqLnBhcnNlcj1FMS5wYXJzZSxqLlJlbmRlcmVyPXUxLGou''@;'; put 'put ''VGV4dFJlbmRlcmVyPXAxLGouTGV4ZXI9aDEsai5sZXhlcj1oMS5sZXgsai5Ub2tlbml6ZXI9TyxqLlNsdWdnZXI9djEsYzE9KGoucGFyc2U9aikub3B0aW9uczt2YXIgVjE9ai5zZXRPcHRpb25zLF8xPWoudXNlLFE9ai53YWxrVG9rZW5zLHMxPWoucGFyc2VJbmxpbmUsbTE9aixiMT1FMS5w''@;'; put 'put ''YXJzZSxCMT1oMS5sZXg7WC5MZXhlcj1oMSxYLlBhcnNlcj1FMSxYLlJlbmRlcmVyPXUxLFguU2x1Z2dlcj12MSxYLlRleHRSZW5kZXJlcj1wMSxYLlRva2VuaXplcj1PLFguZ2V0RGVmYXVsdHM9ZSxYLmxleGVyPUIxLFgubWFya2VkPWosWC5vcHRpb25zPWMxLFgucGFyc2U9bTEsWC5wYXJz''@;'; put 'put ''ZUlubGluZT1zMSxYLnBhcnNlcj1iMSxYLnNldE9wdGlvbnM9VjEsWC51c2U9XzEsWC53YWxrVG9rZW5zPVEsT2JqZWN0LmRlZmluZVByb3BlcnR5KFgsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSksZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7IWZ1bmN0aW9uKCl7aWYodm9pZCAwPT09d2lu''@;'; put 'put ''ZG93LlJlZmxlY3R8fHZvaWQgMD09PXdpbmRvdy5jdXN0b21FbGVtZW50c3x8d2luZG93LmN1c3RvbUVsZW1lbnRzLnBvbHlmaWxsV3JhcEZsdXNoQ2FsbGJhY2spcmV0dXJuO2NvbnN0IFg9SFRNTEVsZW1lbnQ7d2luZG93LkhUTUxFbGVtZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFJlZmxlY3Qu''@;'; put 'put ''Y29uc3RydWN0KFgsW10sdGhpcy5jb25zdHJ1Y3Rvcil9LEhUTUxFbGVtZW50LnByb3RvdHlwZT1YLnByb3RvdHlwZSxIVE1MRWxlbWVudC5wcm90b3R5cGUuY29uc3RydWN0b3I9SFRNTEVsZW1lbnQsT2JqZWN0LnNldFByb3RvdHlwZU9mKEhUTUxFbGVtZW50LFgpfSgpfSgpLGZ1bmN0aW9u''@;'; put 'put ''KCl7InVzZSBzdHJpY3QiO3ZhciBYO2Z1bmN0aW9uIEYxKHQpe3ZhciBpPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGk8dC5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6dFtpKytdfTp7ZG9uZTohMH19fXZhciBvLGs9ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVz''@;'; put 'put ''P09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbih0LGksbil7cmV0dXJuIHQ9PUFycmF5LnByb3RvdHlwZXx8dD09T2JqZWN0LnByb3RvdHlwZXx8KHRbaV09bi52YWx1ZSksdH0sZT1mdW5jdGlvbiBBKHQpe3Q9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyx0''@;'; put 'put ''LCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7KytpKXt2YXIgbj10W2ldO2lmKG4mJm4uTWF0aD09TWF0aClyZXR1cm4gbn10aHJv''@;'; put 'put ''dyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpfSh0aGlzKTtmdW5jdGlvbiBsKHQsaSl7aWYoaSl0Ont2YXIgbj1lO3Q9dC5zcGxpdCgiLiIpO2Zvcih2YXIgcz0wO3M8dC5sZW5ndGgtMTtzKyspe3ZhciBkPXRbc107aWYoIShkIGluIG4pKWJyZWFrIHQ7bj1uW2RdfShpPWko''@;'; put 'put ''cz1uW3Q9dFt0Lmxlbmd0aC0xXV0pKSE9cyYmbnVsbCE9aSYmayhuLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTppfSl9fWZ1bmN0aW9uIHIodCl7cmV0dXJuKHQ9e25leHQ6dH0pW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sdH1mdW5jdGlv''@;'; put 'put ''biBhKHQpe3ZhciBpPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJnRbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gaT9pLmNhbGwodCk6e25leHQ6RjEodCl9fWZ1bmN0aW9uIGModCl7aWYoISh0IGluc3RhbmNlb2YgQXJyYXkpKXt0PWEodCk7Zm9yKHZhciBp''@;'; put 'put ''LG49W107IShpPXQubmV4dCgpKS5kb25lOyluLnB1c2goaS52YWx1ZSk7dD1ufXJldHVybiB0fWlmKGwoIlN5bWJvbCIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gbihkLG0pe3RoaXMuZz1kLGsodGhpcywiZGVzY3JpcHRpb24iLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6bX0p''@;'; put 'put ''fWlmKHQpcmV0dXJuIHQ7bi5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nfTt2YXIgcz0wO3JldHVybiBmdW5jdGlvbiBpKGQpe2lmKHRoaXMgaW5zdGFuY2VvZiBpKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3Jl''@;'; put 'put ''dHVybiBuZXcgbigianNjb21wX3N5bWJvbF8iKyhkfHwiIikrIl8iK3MrKyxkKX19KSxsKCJTeW1ib2wuaXRlcmF0b3IiLGZ1bmN0aW9uKHQpe2lmKHQpcmV0dXJuIHQ7dD1TeW1ib2woIlN5bWJvbC5pdGVyYXRvciIpO2Zvcih2YXIgaT0iQXJyYXkgSW50OEFycmF5IFVpbnQ4QXJyYXkgVWlu''@;'; put 'put ''dDhDbGFtcGVkQXJyYXkgSW50MTZBcnJheSBVaW50MTZBcnJheSBJbnQzMkFycmF5IFVpbnQzMkFycmF5IEZsb2F0MzJBcnJheSBGbG9hdDY0QXJyYXkiLnNwbGl0KCIgIiksbj0wO248aS5sZW5ndGg7bisrKXt2YXIgcz1lW2lbbl1dOyJmdW5jdGlvbiI9PXR5cGVvZiBzJiYiZnVuY3Rpb24i''@;'; put 'put ''IT10eXBlb2Ygcy5wcm90b3R5cGVbdF0mJmsocy5wcm90b3R5cGUsdCx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHIoRjEodGhpcykpfX0pfXJldHVybiB0fSksImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZilvPU9i''@;'; put 'put ''amVjdC5zZXRQcm90b3R5cGVPZjtlbHNle3ZhciBoO3Q6e3ZhciBnPXt9O3RyeXtnLl9fcHJvdG9fXz17YTohMH0saD1nLmE7YnJlYWsgdH1jYXRjaCh0KXt9aD0hMX1vPWg/ZnVuY3Rpb24odCxpKXtpZih0Ll9fcHJvdG9fXz1pLHQuX19wcm90b19fIT09aSl0aHJvdyBuZXcgVHlwZUVycm9y''@;'; put 'put ''KHQrIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiB0fTpudWxsfXZhciB1PW87ZnVuY3Rpb24gcCgpe3RoaXMudT0hMSx0aGlzLmg9bnVsbCx0aGlzLkthPXZvaWQgMCx0aGlzLmc9MSx0aGlzLmRhPTAsdGhpcy5pPW51bGx9ZnVuY3Rpb24gdih0KXtpZih0LnUpdGhyb3cgbmV3IFR5cGVF''@;'; put 'put ''cnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3QudT0hMH1mdW5jdGlvbiBIKHQsaSl7dC5pPXtXYTppLCRhOiEwfSx0Lmc9dC5kYX1mdW5jdGlvbiBDKHQsaSl7cmV0dXJuIHQuZz0zLHt2YWx1ZTppfX1mdW5jdGlvbiBWKHQpe3RoaXMuZz1uZXcgcCx0aGlzLmg9dH1mdW5j''@;'; put 'put ''dGlvbiBfKHQsaSxuLHMpe3RyeXt2YXIgZD1pLmNhbGwodC5nLmgsbik7aWYoIShkIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitkKyIgaXMgbm90IGFuIG9iamVjdCIpO2lmKCFkLmRvbmUpcmV0dXJuIHQuZy51PSExLGQ7dmFyIG09''@;'; put 'put ''ZC52YWx1ZX1jYXRjaChMKXtyZXR1cm4gdC5nLmg9bnVsbCxIKHQuZyxMKSxiKHQpfXJldHVybiB0LmcuaD1udWxsLHMuY2FsbCh0LmcsbSksYih0KX1mdW5jdGlvbiBiKHQpe2Zvcig7dC5nLmc7KXRyeXt2YXIgaT10LmgodC5nKTtpZihpKXJldHVybiB0LmcudT0hMSx7dmFsdWU6aS52YWx1''@;'; put 'put ''ZSxkb25lOiExfX1jYXRjaChuKXt0LmcuS2E9dm9pZCAwLEgodC5nLG4pfWlmKHQuZy51PSExLHQuZy5pKXtpZihpPXQuZy5pLHQuZy5pPW51bGwsaS4kYSl0aHJvdyBpLldhO3JldHVybnt2YWx1ZTppLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fWZ1bmN0''@;'; put 'put ''aW9uIE0odCl7dGhpcy5uZXh0PWZ1bmN0aW9uKGkpe3JldHVybiB2KHQuZyksdC5nLmg/aT1fKHQsdC5nLmgubmV4dCxpLHQuZy5PKToodC5nLk8oaSksaT1iKHQpKSxpfSx0aGlzLnRocm93PWZ1bmN0aW9uKGkpe3JldHVybiB2KHQuZyksdC5nLmg/aT1fKHQsdC5nLmgudGhyb3csaSx0Lmcu''@;'; put 'put ''Tyk6KEgodC5nLGkpLGk9Yih0KSksaX0sdGhpcy5yZXR1cm49ZnVuY3Rpb24oaSl7cmV0dXJuIGZ1bmN0aW9uIFModCxpKXt2KHQuZyk7dmFyIG49dC5nLmg7cmV0dXJuIG4/Xyh0LCJyZXR1cm4iaW4gbj9uLnJldHVybjpmdW5jdGlvbihzKXtyZXR1cm57dmFsdWU6cyxkb25lOiEwfX0saSx0''@;'; put 'put ''LmcucmV0dXJuKToodC5nLnJldHVybihpKSxiKHQpKX0odCxpKX0sdGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fWZ1bmN0aW9uIHgodCxpKXtyZXR1cm4gaT1uZXcgTShuZXcgVihpKSksdSYmdC5wcm90b3R5cGUmJnUoaSx0LnByb3RvdHlwZSksaX1wLnBy''@;'; put 'put ''b3RvdHlwZS5PPWZ1bmN0aW9uKHQpe3RoaXMuS2E9dH0scC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKHQpe3RoaXMuaT17cmV0dXJuOnR9LHRoaXMuZz10aGlzLmRhfSxBcnJheS5mcm9tfHwoQXJyYXkuZnJvbT1mdW5jdGlvbih0KXtyZXR1cm5bXS5zbGljZS5jYWxsKHQpfSksT2JqZWN0''@;'; put 'put ''LmFzc2lnbnx8KE9iamVjdC5hc3NpZ249ZnVuY3Rpb24odCl7Zm9yKHZhciBzLGk9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMSksbj0wO248aS5sZW5ndGg7bisrKWlmKHM9aVtuXSlmb3IodmFyIGQ9dCxtPU9iamVjdC5rZXlzKHMpLEw9MDtMPG0ubGVuZ3RoO0wrKyl7dmFyIEY9bVtMXTtk''@;'; put 'put ''W0ZdPXNbRl19cmV0dXJuIHR9KTt2YXIgRT1zZXRUaW1lb3V0O2Z1bmN0aW9uIHcoKXt9ZnVuY3Rpb24gSSh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBJKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm9taXNlcyBtdXN0IGJlIGNvbnN0cnVjdGVkIHZpYSBuZXciKTtpZigiZnVuY3Rpb24iIT10''@;'; put 'put ''eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJub3QgYSBmdW5jdGlvbiIpO3RoaXMuTj0wLHRoaXMuRWE9ITEsdGhpcy5JPXZvaWQgMCx0aGlzLmJhPVtdLGExKHQsdGhpcyl9ZnVuY3Rpb24gVyh0LGkpe2Zvcig7Mz09PXQuTjspdD10Lkk7MD09PXQuTj90LmJhLnB1c2goaSk6KHQuRWE9''@;'; put 'put ''ITAsRTEoZnVuY3Rpb24oKXt2YXIgbj0xPT09dC5OP2kuYmI6aS5jYjtpZihudWxsPT09bikoMT09PXQuTj9POkIpKGkucHJvbWlzZSx0LkkpO2Vsc2V7dHJ5e3ZhciBzPW4odC5JKX1jYXRjaChkKXtyZXR1cm4gdm9pZCBCKGkucHJvbWlzZSxkKX1PKGkucHJvbWlzZSxzKX19KSl9ZnVuY3Rp''@;'; put 'put ''b24gTyh0LGkpe3RyeXtpZihpPT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJBIHByb21pc2UgY2Fubm90IGJlIHJlc29sdmVkIHdpdGggaXRzZWxmLiIpO2lmKGkmJigib2JqZWN0Ij09dHlwZW9mIGl8fCJmdW5jdGlvbiI9PXR5cGVvZiBpKSl7dmFyIG49aS50aGVuO2lmKGkgaW5zdGFuY2Vv''@;'; put 'put ''ZiBJKXJldHVybiB0Lk49Myx0Lkk9aSx2b2lkIFIodCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIG4pcmV0dXJuIHZvaWQgYTEoZnVuY3Rpb24gTih0LGkpe3JldHVybiBmdW5jdGlvbigpe3QuYXBwbHkoaSxhcmd1bWVudHMpfX0obixpKSx0KX10Lk49MSx0Lkk9aSxSKHQpfWNhdGNoKHMpe0Io''@;'; put 'put ''dCxzKX19ZnVuY3Rpb24gQih0LGkpe3QuTj0yLHQuST1pLFIodCl9ZnVuY3Rpb24gUih0KXsyPT09dC5OJiYwPT09dC5iYS5sZW5ndGgmJkUxKGZ1bmN0aW9uKCl7dC5FYXx8InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZjb25zb2xlJiZjb25zb2xlLndhcm4oIlBvc3NpYmxlIFVuaGFu''@;'; put 'put ''ZGxlZCBQcm9taXNlIFJlamVjdGlvbjoiLHQuSSl9KTtmb3IodmFyIGk9MCxuPXQuYmEubGVuZ3RoO2k8bjtpKyspVyh0LHQuYmFbaV0pO3QuYmE9bnVsbH1mdW5jdGlvbiBsMSh0LGksbil7dGhpcy5iYj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Om51bGwsdGhpcy5jYj0iZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgaT9pOm51bGwsdGhpcy5wcm9taXNlPW59ZnVuY3Rpb24gYTEodCxpKXt2YXIgbj0hMTt0cnl7dChmdW5jdGlvbihzKXtufHwobj0hMCxPKGkscykpfSxmdW5jdGlvbihzKXtufHwobj0hMCxCKGkscykpfSl9Y2F0Y2gocyl7bnx8KG49ITAsQihpLHMpKX19ZnVuY3Rpb24gdTEodCl7''@;'; put 'put ''cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmdC5jb25zdHJ1Y3Rvcj09PUk/dDpuZXcgSShmdW5jdGlvbihpKXtpKHQpfSl9SS5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbihudWxsLHQpfSxJLnByb3RvdHlwZS50aGVuPWZ1bmN0aW9uKHQsaSl7dmFy''@;'; put 'put ''IG49bmV3IHRoaXMuY29uc3RydWN0b3Iodyk7cmV0dXJuIFcodGhpcyxuZXcgbDEodCxpLG4pKSxufSxJLnByb3RvdHlwZS5maW5hbGx5PWZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY29uc3RydWN0b3I7cmV0dXJuIHRoaXMudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gaS5yZXNvbHZlKHQoKSku''@;'; put 'put ''dGhlbihmdW5jdGlvbigpe3JldHVybiBufSl9LGZ1bmN0aW9uKG4pe3JldHVybiBpLnJlc29sdmUodCgpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGkucmVqZWN0KG4pfSl9KX07dmFyIHQsaSxtLG4scyxkLEUxPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRJbW1lZGlhdGUmJmZ1bmN0aW9uKHQp''@;'; put 'put ''e3NldEltbWVkaWF0ZSh0KX18fGZ1bmN0aW9uKHQpe0UodCwwKX07aWYoIXdpbmRvdy5Qcm9taXNlKXt3aW5kb3cuUHJvbWlzZT1JLEkucHJvdG90eXBlLnRoZW49SS5wcm90b3R5cGUudGhlbixJLmFsbD1mdW5jdGlvbiBoMSh0KXtyZXR1cm4gbmV3IEkoZnVuY3Rpb24oaSxuKXtmdW5jdGlv''@;'; put 'put ''biBzKEYsRyl7dHJ5e2lmKEcmJigib2JqZWN0Ij09dHlwZW9mIEd8fCJmdW5jdGlvbiI9PXR5cGVvZiBHKSl7dmFyIFU9Ry50aGVuO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBVKXJldHVybiB2b2lkIFUuY2FsbChHLGZ1bmN0aW9uKEspe3MoRixLKX0sbil9ZFtGXT1HLDA9PS0tbSYmaShkKX1j''@;'; put 'put ''YXRjaChLKXtuKEspfX1pZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5hbGwgYWNjZXB0cyBhbiBhcnJheSIpKTt2YXIgZD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTtpZigwPT09ZC5sZW5ndGgpcmV0dXJuIGkoW10pO2Zvcih2''@;'; put 'put ''YXIgbT1kLmxlbmd0aCxMPTA7TDxkLmxlbmd0aDtMKyspcyhMLGRbTF0pfSl9LEkucmFjZT1mdW5jdGlvbiB2MSh0KXtyZXR1cm4gbmV3IEkoZnVuY3Rpb24oaSxuKXtpZighdHx8dm9pZCAwPT09dC5sZW5ndGgpcmV0dXJuIG4obmV3IFR5cGVFcnJvcigiUHJvbWlzZS5yYWNlIGFjY2VwdHMg''@;'; put 'put ''YW4gYXJyYXkiKSk7Zm9yKHZhciBzPTAsZD10Lmxlbmd0aDtzPGQ7cysrKXUxKHRbc10pLnRoZW4oaSxuKX0pfSxJLnJlc29sdmU9dTEsSS5yZWplY3Q9ZnVuY3Rpb24gcDEodCl7cmV0dXJuIG5ldyBJKGZ1bmN0aW9uKGksbil7bih0KX0pfTt2YXIgaj1kb2N1bWVudC5jcmVhdGVUZXh0Tm9k''@;'; put 'put ''ZSgiIiksYzE9W107bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtmb3IodmFyIHQ9YzEubGVuZ3RoLGk9MDtpPHQ7aSsrKWMxW2ldKCk7YzEuc3BsaWNlKDAsdCl9KS5vYnNlcnZlKGose2NoYXJhY3RlckRhdGE6ITB9KSxFMT1mdW5jdGlvbih0KXtjMS5wdXNoKHQpLGoudGV4dENv''@;'; put 'put ''bnRlbnQ9MDxqLnRleHRDb250ZW50Lmxlbmd0aD8iIjoiYSJ9fShmdW5jdGlvbih0LGkpe2lmKCEoaSBpbiB0KSl7dmFyIG49dHlwZW9mIGdsb2JhbD09dHlwZW9mIG4/d2luZG93Omdsb2JhbCxzPTAsZD1TdHJpbmcoTWF0aC5yYW5kb20oKSksbT0iX19ceDAxc3ltYm9sQEAiK2QsTD10Lmdl''@;'; put 'put ''dE93blByb3BlcnR5TmFtZXMsRj10LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixHPXQuY3JlYXRlLFU9dC5rZXlzLEs9dC5mcmVlemV8fHQsSDE9dC5kZWZpbmVQcm9wZXJ0eSxRMT10LmRlZmluZVByb3BlcnRpZXMsajE9Rih0LCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiksTTE9dC5wcm90b3R5''@;'; put 'put ''cGUsJDE9TTEuaGFzT3duUHJvcGVydHksejE9TTEucHJvcGVydHlJc0VudW1lcmFibGUsbzA9TTEudG9TdHJpbmcsazE9ZnVuY3Rpb24oQzEsVTEsaTApeyQxLmNhbGwoQzEsbSl8fEgxKEMxLG0se2VudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiExLHdyaXRhYmxlOiExLHZhbHVlOnt9fSks''@;'; put 'put ''QzFbbV1bIkBAIitVMV09aTB9LG0wPWZ1bmN0aW9uKEMxLFUxKXt2YXIgaTA9RyhDMSk7cmV0dXJuIEwoVTEpLmZvckVhY2goZnVuY3Rpb24obzEpe2UyLmNhbGwoVTEsbzEpJiZLMihpMCxvMSxVMVtvMV0pfSksaTB9LFQxPWZ1bmN0aW9uKCl7fSx0Mj1mdW5jdGlvbihDMSl7cmV0dXJuIEMx''@;'; put 'put ''IT1tJiYhJDEuY2FsbChJMCxDMSl9LEYwPWZ1bmN0aW9uKEMxKXtyZXR1cm4gQzEhPW0mJiQxLmNhbGwoSTAsQzEpfSxlMj1mdW5jdGlvbihDMSl7dmFyIFUxPVN0cmluZyhDMSk7cmV0dXJuIEYwKFUxKT8kMS5jYWxsKHRoaXMsVTEpJiYhIXRoaXNbbV0mJnRoaXNbbV1bIkBAIitVMV06ejEu''@;'; put 'put ''Y2FsbCh0aGlzLEMxKX0sdDE9ZnVuY3Rpb24oQzEpe3JldHVybiBIMShNMSxDMSx7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsZ2V0OlQxLHNldDpmdW5jdGlvbihVMSl7ZDIodGhpcyxDMSx7ZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6VTF9''@;'; put 'put ''KSxrMSh0aGlzLEMxLCEwKX19KSxJMFtDMV09SDEodChDMSksImNvbnN0cnVjdG9yIixVZSksSyhJMFtDMV0pfSxsMD1mdW5jdGlvbiBDMShVMSl7aWYodGhpcyBpbnN0YW5jZW9mIEMxKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3JldHVybiB0''@;'; put 'put ''MSgiX19ceDAxc3ltYm9sOiIuY29uY2F0KFUxfHwiIixkLCsrcykpfSxJMD1HKG51bGwpLFVlPXt2YWx1ZTpsMH0sVHQ9ZnVuY3Rpb24oQzEpe3JldHVybiBJMFtDMV19LEsyPWZ1bmN0aW9uKEMxLFUxLGkwKXt2YXIgbzE9U3RyaW5nKFUxKTtpZihGMChvMSkpe2lmKFUxPWQyLGkwLmVudW1l''@;'; put 'put ''cmFibGUpe3ZhciBMMT1HKGkwKTtMMS5lbnVtZXJhYmxlPSExfWVsc2UgTDE9aTA7VTEoQzEsbzEsTDEpLGsxKEMxLG8xLCEhaTAuZW51bWVyYWJsZSl9ZWxzZSBIMShDMSxVMSxpMCk7cmV0dXJuIEMxfSxOdD1mdW5jdGlvbihDMSl7cmV0dXJuIEwoQzEpLmZpbHRlcihGMCkubWFwKFR0KX07''@;'; put 'put ''ajEudmFsdWU9SzIsSDEodCwiZGVmaW5lUHJvcGVydHkiLGoxKSxqMS52YWx1ZT1OdCxIMSh0LGksajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtyZXR1cm4gTChDMSkuZmlsdGVyKHQyKX0sSDEodCwiZ2V0T3duUHJvcGVydHlOYW1lcyIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxLFUxKXt2''@;'; put 'put ''YXIgaTA9TnQoVTEpO3JldHVybiBpMC5sZW5ndGg/VShVMSkuY29uY2F0KGkwKS5mb3JFYWNoKGZ1bmN0aW9uKG8xKXtlMi5jYWxsKFUxLG8xKSYmSzIoQzEsbzEsVTFbbzFdKX0pOlExKEMxLFUxKSxDMX0sSDEodCwiZGVmaW5lUHJvcGVydGllcyIsajEpLGoxLnZhbHVlPWUyLEgxKE0xLCJw''@;'; put 'put ''cm9wZXJ0eUlzRW51bWVyYWJsZSIsajEpLGoxLnZhbHVlPWwwLEgxKG4sIlN5bWJvbCIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtyZXR1cm4oQzE9Il9fXHgwMXN5bWJvbDoiLmNvbmNhdCgiX19ceDAxc3ltYm9sOiIsQzEsZCkpaW4gTTE/STBbQzFdOnQxKEMxKX0sSDEobDAsImZvciIs''@;'; put 'put ''ajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxKXtpZih0MihDMSkpdGhyb3cgbmV3IFR5cGVFcnJvcihDMSsiIGlzIG5vdCBhIHN5bWJvbCIpO2lmKCQxLmNhbGwoSTAsQzEpJiYiX19ceDAxc3ltYm9sOiI9PT0oQzE9QzEuc2xpY2UoMTApKS5zbGljZSgwLDEwKSYmKEMxPUMxLnNsaWNlKDEwKSkh''@;'; put 'put ''PT1kKXJldHVybiAwPChDMT1DMS5zbGljZSgwLEMxLmxlbmd0aC1kLmxlbmd0aCkpLmxlbmd0aD9DMTp2b2lkIDB9LEgxKGwwLCJrZXlGb3IiLGoxKSxqMS52YWx1ZT1mdW5jdGlvbihDMSxVMSl7dmFyIGkwPUYoQzEsVTEpO3JldHVybiBpMCYmRjAoVTEpJiYoaTAuZW51bWVyYWJsZT1lMi5j''@;'; put 'put ''YWxsKEMxLFUxKSksaTB9LEgxKHQsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsajEpLGoxLnZhbHVlPWZ1bmN0aW9uKEMxLFUxKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGh8fHZvaWQgMD09PVUxP0coQzEpOm0wKEMxLFUxKX0sSDEodCwiY3JlYXRlIixqMSksajEudmFsdWU9ZnVu''@;'; put 'put ''Y3Rpb24oKXt2YXIgQzE9bzAuY2FsbCh0aGlzKTtyZXR1cm4iW29iamVjdCBTdHJpbmddIj09PUMxJiZGMCh0aGlzKT8iW29iamVjdCBTeW1ib2xdIjpDMX0sSDEoTTEsInRvU3RyaW5nIixqMSk7dHJ5e2lmKCEwIT09RyhIMSh7fSwiX19ceDAxc3ltYm9sOiIse2dldDpmdW5jdGlvbigpe3Jl''@;'; put 'put ''dHVybiBIMSh0aGlzLCJfX1x4MDFzeW1ib2w6Iix7dmFsdWU6ITB9KVsiX19ceDAxc3ltYm9sOiJdfX0pKVsiX19ceDAxc3ltYm9sOiJdKXRocm93IklFMTEiO3ZhciBkMj1IMX1jYXRjaChDMSl7ZDI9ZnVuY3Rpb24oVTEsaTAsbzEpe3ZhciBMMT1GKE0xLGkwKTtkZWxldGUgTTFbaTBdLEgx''@;'; put 'put ''KFUxLGkwLG8xKSxIMShNMSxpMCxMMSl9fX19KShPYmplY3QsImdldE93blByb3BlcnR5U3ltYm9scyIpLHQ9T2JqZWN0LGk9U3ltYm9sLG49dC5kZWZpbmVQcm9wZXJ0eSxkPShzPXQucHJvdG90eXBlKS50b1N0cmluZywiaXRlcmF0b3IgbWF0Y2ggcmVwbGFjZSBzZWFyY2ggc3BsaXQgaGFz''@;'; put 'put ''SW5zdGFuY2UgaXNDb25jYXRTcHJlYWRhYmxlIHVuc2NvcGFibGVzIHNwZWNpZXMgdG9QcmltaXRpdmUgdG9TdHJpbmdUYWciLnNwbGl0KCIgIikuZm9yRWFjaChmdW5jdGlvbihMKXtMIGluIGl8fChuKGksTCx7dmFsdWU6aShMKX0pLCJ0b1N0cmluZ1RhZyI9PT1MJiYoKG09dC5nZXRPd25Q''@;'; put 'put ''cm9wZXJ0eURlc2NyaXB0b3IocywidG9TdHJpbmciKSkudmFsdWU9ZnVuY3Rpb24oKXt2YXIgRj1kLmNhbGwodGhpcyksRz1udWxsPT10aGlzP3RoaXM6dGhpc1tpLnRvU3RyaW5nVGFnXTtyZXR1cm4gbnVsbD09Rz9GOiJbb2JqZWN0ICIrRysiXSJ9LG4ocywidG9TdHJpbmciLG0pKSl9KSxm''@;'; put 'put ''dW5jdGlvbih0LGksbil7ZnVuY3Rpb24gcygpe3JldHVybiB0aGlzfWlbdF18fChpW3RdPWZ1bmN0aW9uKCl7dmFyIGQ9MCxtPXRoaXMsTD17bmV4dDpmdW5jdGlvbigpe3ZhciBGPW0ubGVuZ3RoPD1kO3JldHVybiBGP3tkb25lOkZ9Ontkb25lOkYsdmFsdWU6bVtkKytdfX19O3JldHVybiBM''@;'; put 'put ''W3RdPXMsTH0pLG5bdF18fChuW3RdPWZ1bmN0aW9uKCl7dmFyIGQ9U3RyaW5nLmZyb21Db2RlUG9pbnQsbT10aGlzLEw9MCxGPW0ubGVuZ3RoLEc9e25leHQ6ZnVuY3Rpb24oKXt2YXIgVT1GPD1MLEs9VT8iIjpkKG0uY29kZVBvaW50QXQoTCkpO3JldHVybiBMKz1LLmxlbmd0aCxVP3tkb25l''@;'; put 'put ''OlV9Ontkb25lOlUsdmFsdWU6S319fTtyZXR1cm4gR1t0XT1zLEd9KX0oU3ltYm9sLml0ZXJhdG9yLEFycmF5LnByb3RvdHlwZSxTdHJpbmcucHJvdG90eXBlKTt2YXIgVjE9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIHZvaWQgMD09PXRoaXM/IltvYmplY3QgVW5kZWZpbmVkXSI6bnVsbD09PXRoaXM/IltvYmplY3QgTnVsbF0iOlYxLmNhbGwodGhpcyl9LE9iamVjdC5rZXlzPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0''@;'; put 'put ''dXJuKGk9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGkpKSYmaS5lbnVtZXJhYmxlfSl9LFN0cmluZy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXSYmU3RyaW5nLnByb3RvdHlwZS5jb2RlUG9pbnRBdHx8KFN0cmluZy5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5j''@;'; put 'put ''dGlvbiB0KCl7dmFyIGksbj10aGlzO3JldHVybiB4KHQsZnVuY3Rpb24ocyl7aWYoMT09cy5nJiYoaT0wKSwzIT1zLmcpcmV0dXJuIGk8bi5sZW5ndGg/cz1DKHMsbltpXSk6KHMuZz0wLHM9dm9pZCAwKSxzO2krKyxzLmc9Mn0pfSksU2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdfHwo''@;'; put 'put ''U2V0LnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uIHQoKXt2YXIgaSxzLG49dGhpcztyZXR1cm4geCh0LGZ1bmN0aW9uKGQpe2lmKDE9PWQuZyYmKGk9W10sbi5mb3JFYWNoKGZ1bmN0aW9uKG0pe2kucHVzaChtKX0pLHM9MCksMyE9ZC5nKXJldHVybiBzPGkubGVuZ3RoP2Q9''@;'; put 'put ''QyhkLGlbc10pOihkLmc9MCxkPXZvaWQgMCksZDtzKyssZC5nPTJ9KX0pLE1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXXx8KE1hcC5wcm90b3R5cGVbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbiB0KCl7dmFyIGkscyxuPXRoaXM7cmV0dXJuIHgodCxmdW5jdGlvbihkKXtpZigxPT1k''@;'; put 'put ''LmcmJihpPVtdLG4uZm9yRWFjaChmdW5jdGlvbihtLEwpe2kucHVzaChbTCxtXSl9KSxzPTApLDMhPWQuZylyZXR1cm4gczxpLmxlbmd0aD9kPUMoZCxpW3NdKTooZC5nPTAsZD12b2lkIDApLGQ7cysrLGQuZz0yfSl9KTt2YXIgXzE9ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7aWYo''@;'; put 'put ''XzEuaW5pdEV2ZW50KCJmb28iLCEwLCEwKSxfMS5wcmV2ZW50RGVmYXVsdCgpLCFfMS5kZWZhdWx0UHJldmVudGVkKXt2YXIgUT1FdmVudC5wcm90b3R5cGUucHJldmVudERlZmF1bHQ7RXZlbnQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxhYmxlJiYo''@;'; put 'put ''US5jYWxsKHRoaXMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJkZWZhdWx0UHJldmVudGVkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGNvbmZpZ3VyYWJsZTohMH0pKX19dmFyIHMxPS9UcmlkZW50Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO2lmKCF3aW5kb3cuRXZlbnR8''@;'; put 'put ''fHMxJiYiZnVuY3Rpb24iIT10eXBlb2Ygd2luZG93LkV2ZW50KXt2YXIgbTE9d2luZG93LkV2ZW50O2lmKHdpbmRvdy5FdmVudD1mdW5jdGlvbih0LGkpe2k9aXx8e307dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50Iik7cmV0dXJuIG4uaW5pdEV2ZW50KHQsISFpLmJ1YmJsZXMs''@;'; put 'put ''ISFpLmNhbmNlbGFibGUpLG59LG0xKXtmb3IodmFyIGIxIGluIG0xKXdpbmRvdy5FdmVudFtiMV09bTFbYjFdO3dpbmRvdy5FdmVudC5wcm90b3R5cGU9bTEucHJvdG90eXBlfX1pZigoIXdpbmRvdy5DdXN0b21FdmVudHx8czEmJiJmdW5jdGlvbiIhPXR5cGVvZiB3aW5kb3cuQ3VzdG9tRXZl''@;'; put 'put ''bnQpJiYod2luZG93LkN1c3RvbUV2ZW50PWZ1bmN0aW9uKHQsaSl7aT1pfHx7fTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKTtyZXR1cm4gbi5pbml0Q3VzdG9tRXZlbnQodCwhIWkuYnViYmxlcywhIWkuY2FuY2VsYWJsZSxpLmRldGFpbCksbn0sd2luZG93LkN1''@;'; put 'put ''c3RvbUV2ZW50LnByb3RvdHlwZT13aW5kb3cuRXZlbnQucHJvdG90eXBlKSwhd2luZG93Lk1vdXNlRXZlbnR8fHMxJiYiZnVuY3Rpb24iIT10eXBlb2Ygd2luZG93Lk1vdXNlRXZlbnQpe3ZhciBCMT13aW5kb3cuTW91c2VFdmVudDtpZih3aW5kb3cuTW91c2VFdmVudD1mdW5jdGlvbih0LGkp''@;'; put 'put ''e2k9aXx8e307dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIk1vdXNlRXZlbnQiKTtyZXR1cm4gbi5pbml0TW91c2VFdmVudCh0LCEhaS5idWJibGVzLCEhaS5jYW5jZWxhYmxlLGkudmlld3x8d2luZG93LGkuZGV0YWlsLGkuc2NyZWVuWCxpLnNjcmVlblksaS5jbGllbnRYLGkuY2xpZW50''@;'; put 'put ''WSxpLmN0cmxLZXksaS5hbHRLZXksaS5zaGlmdEtleSxpLm1ldGFLZXksaS5idXR0b24saS5yZWxhdGVkVGFyZ2V0KSxufSxCMSlmb3IodmFyICQgaW4gQjEpd2luZG93Lk1vdXNlRXZlbnRbJF09QjFbJF07d2luZG93Lk1vdXNlRXZlbnQucHJvdG90eXBlPUIxLnByb3RvdHlwZX1PYmplY3Qu''@;'; put 'put ''Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLCJiYXNlVVJJIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShOb2RlLnByb3RvdHlwZSwiYmFzZVVSSSIse2dldDpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMpLnF1ZXJ5U2VsZWN0b3IoImJh''@;'; put 'put ''c2VbaHJlZl0iKTtyZXR1cm4gdCYmdC5ocmVmfHx3aW5kb3cubG9jYXRpb24uaHJlZn0sY29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITB9KTt2YXIgeix5LEQ9RWxlbWVudC5wcm90b3R5cGUsWj1udWxsIT09KHo9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihELCJhdHRyaWJ1''@;'; put 'put ''dGVzIikpJiZ2b2lkIDAhPT16P3o6T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwiYXR0cmlidXRlcyIpLFQ9bnVsbCE9PSh5PW51bGw9PVo/dm9pZCAwOlouZ2V0KSYmdm9pZCAwIT09eT95OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXR0cmlidXRlc30s''@;'; put 'put ''UD1BcnJheS5wcm90b3R5cGUubWFwO0QuaGFzT3duUHJvcGVydHkoImdldEF0dHJpYnV0ZU5hbWVzIil8fChELmdldEF0dHJpYnV0ZU5hbWVzPWZ1bmN0aW9uKCl7cmV0dXJuIFAuY2FsbChULmNhbGwodGhpcyksZnVuY3Rpb24odCl7cmV0dXJuIHQubmFtZX0pfSk7dmFyIGUxLHIxPUVsZW1l''@;'; put 'put ''bnQucHJvdG90eXBlO3IxLmhhc093blByb3BlcnR5KCJtYXRjaGVzIil8fChyMS5tYXRjaGVzPW51bGwhPT0oZTE9cjEud2Via2l0TWF0Y2hlc1NlbGVjdG9yKSYmdm9pZCAwIT09ZTE/ZTE6cjEubXNNYXRjaGVzU2VsZWN0b3IpO3ZhciBaMT1Ob2RlLnByb3RvdHlwZS5hcHBlbmRDaGlsZDtm''@;'; put 'put ''dW5jdGlvbiBZKHQpeyh0PXQucHJvdG90eXBlKS5oYXNPd25Qcm9wZXJ0eSgiYXBwZW5kIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJhcHBlbmQiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0w''@;'; put 'put ''O3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107Zm9yKHM9KG49YShuKSkubmV4dCgpOyFzLmRvbmU7cz1uLm5leHQoKSlaMS5jYWxsKHRoaXMsInN0cmluZyI9PXR5cGVvZihzPXMudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpOnMpfX0pfVkoRG9jdW1l''@;'; put 'put ''bnQpLFkoRG9jdW1lbnRGcmFnbWVudCksWShFbGVtZW50KTt2YXIgcSxKLEExPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxOMT1udWxsIT09KEo9bnVsbD09PShxPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsImZpcnN0Q2hpbGQiKSl8fHZvaWQg''@;'; put 'put ''MD09PXE/dm9pZCAwOnEuZ2V0KSYmdm9pZCAwIT09Sj9KOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07ZnVuY3Rpb24gUzEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJwcmVwZW5kIil8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJwcmVwZW5kIix7Y29u''@;'; put 'put ''ZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6ZnVuY3Rpb24oaSl7Zm9yKHZhciBuPVtdLHM9MDtzPGFyZ3VtZW50cy5sZW5ndGg7KytzKW5bc109YXJndW1lbnRzW3NdO3M9TjEuY2FsbCh0aGlzKTtmb3IodmFyIGQ9KG49YShuKSkubmV4dCgpOyFkLmRvbmU7''@;'; put 'put ''ZD1uLm5leHQoKSlBMS5jYWxsKHRoaXMsInN0cmluZyI9PXR5cGVvZihkPWQudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpOmQscyl9fSl9UzEoRG9jdW1lbnQpLFMxKERvY3VtZW50RnJhZ21lbnQpLFMxKEVsZW1lbnQpO3ZhciBuMSxpMSxmMT1Ob2RlLnByb3RvdHlwZS5hcHBl''@;'; put 'put ''bmRDaGlsZCx4MT1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxJMT1udWxsIT09KGkxPW51bGw9PT0objE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwiZmlyc3RDaGlsZCIpKXx8dm9pZCAwPT09bjE/dm9pZCAwOm4xLmdldCkmJnZvaWQgMCE9PWkx''@;'; put 'put ''P2kxOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmlyc3RDaGlsZH07ZnVuY3Rpb24gSjEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZXBsYWNlQ2hpbGRyZW4iKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJlcGxhY2VDaGlsZHJlbiIse2NvbmZpZ3VyYWJsZTohMCxl''@;'; put 'put ''bnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGkpe2Zvcih2YXIgbj1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoOysrcyluW3NdPWFyZ3VtZW50c1tzXTtmb3IoO251bGwhPT0ocz1JMS5jYWxsKHRoaXMpKTspeDEuY2FsbCh0aGlzLHMpO2ZvcihzPShuPWEobikpLm5l''@;'; put 'put ''eHQoKTshcy5kb25lO3M9bi5uZXh0KCkpZjEuY2FsbCh0aGlzLCJzdHJpbmciPT10eXBlb2Yocz1zLnZhbHVlKT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzKTpzKX19KX1KMShEb2N1bWVudCksSjEoRG9jdW1lbnRGcmFnbWVudCksSjEoRWxlbWVudCk7dmFyIHQwLGYwLE0wLF8wLGkyPU5v''@;'; put 'put ''ZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSx6MD1udWxsIT09KGYwPW51bGw9PT0odDA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09dDA/dm9pZCAwOnQwLmdldCkmJnZvaWQgMCE9PWYwP2YwOmZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX0sVTA9bnVsbCE9PShfMD1udWxsPT09KE0wPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsIm5leHRTaWJsaW5nIikpfHx2b2lkIDA9PT1NMD92b2lkIDA6TTAuZ2V0KSYmdm9pZCAwIT09XzA/XzA6ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4gdGhpcy5uZXh0U2libGluZ307ZnVuY3Rpb24gSzAodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJhZnRlciIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiYWZ0ZXIiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1''@;'; put 'put ''ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0wO3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107aWYobnVsbCE9PShzPXowLmNhbGwodGhpcykpKWZvcih2YXIgZD1VMC5jYWxsKHRoaXMpLG09KG49YShuKSkubmV4dCgpOyFtLmRvbmU7bT1uLm5leHQoKSlpMi5j''@;'; put 'put ''YWxsKHMsInN0cmluZyI9PXR5cGVvZihtPW0udmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKG0pOm0sZCl9fSl9SzAoQ2hhcmFjdGVyRGF0YSksSzAoRWxlbWVudCk7dmFyIGswLHUyLFgwPU5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxrdD1udWxsIT09KHUyPW51bGw9PT0oazA9''@;'; put 'put ''T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09azA/dm9pZCAwOmswLmdldCkmJnZvaWQgMCE9PXUyP3UyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gYTIodCl7KHQ9dC5wcm90''@;'; put 'put ''b3R5cGUpLmhhc093blByb3BlcnR5KCJiZWZvcmUiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImJlZm9yZSIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKGkpe2Zvcih2YXIgbj1bXSxzPTA7czxhcmd1bWVudHMubGVuZ3RoOysr''@;'; put 'put ''cyluW3NdPWFyZ3VtZW50c1tzXTtpZihudWxsIT09KHM9a3QuY2FsbCh0aGlzKSkpZm9yKHZhciBkPShuPWEobikpLm5leHQoKTshZC5kb25lO2Q9bi5uZXh0KCkpWDAuY2FsbChzLCJzdHJpbmciPT10eXBlb2YoZD1kLnZhbHVlKT9kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkKTpkLHRoaXMp''@;'; put 'put ''fX0pfWEyKENoYXJhY3RlckRhdGEpLGEyKEVsZW1lbnQpO3ZhciBEMixwMixPdD1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxmMj1udWxsIT09KHAyPW51bGw9PT0oRDI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9p''@;'; put 'put ''ZCAwPT09RDI/dm9pZCAwOkQyLmdldCkmJnZvaWQgMCE9PXAyP3AyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gWTEodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZW1vdmUiKXx8T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInJlbW92ZSIs''@;'; put 'put ''e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIGk9ZjIuY2FsbCh0aGlzKTtpJiZPdC5jYWxsKGksdGhpcyl9fSl9WTEoQ2hhcmFjdGVyRGF0YSksWTEoRWxlbWVudCk7dmFyIFEwLGcyLEUyPU5vZGUucHJvdG90eXBlLmluc2Vy''@;'; put 'put ''dEJlZm9yZSxBMj1Ob2RlLnByb3RvdHlwZS5yZW1vdmVDaGlsZCxUMj1udWxsIT09KGcyPW51bGw9PT0oUTA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOb2RlLnByb3RvdHlwZSwicGFyZW50Tm9kZSIpKXx8dm9pZCAwPT09UTA/dm9pZCAwOlEwLmdldCkmJnZvaWQgMCE9PWcy''@;'; put 'put ''P2cyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucGFyZW50Tm9kZX07ZnVuY3Rpb24gWDIodCl7KHQ9dC5wcm90b3R5cGUpLmhhc093blByb3BlcnR5KCJyZXBsYWNlV2l0aCIpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicmVwbGFjZVdpdGgiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJs''@;'; put 'put ''ZTohMCx3cml0YWJsZTohMCx2YWx1ZTpmdW5jdGlvbihpKXtmb3IodmFyIG49W10scz0wO3M8YXJndW1lbnRzLmxlbmd0aDsrK3MpbltzXT1hcmd1bWVudHNbc107aWYobnVsbCE9PShzPVQyLmNhbGwodGhpcykpKXtmb3IodmFyIGQ9KG49YShuKSkubmV4dCgpOyFkLmRvbmU7ZD1uLm5leHQo''@;'; put 'put ''KSlFMi5jYWxsKHMsInN0cmluZyI9PXR5cGVvZihkPWQudmFsdWUpP2RvY3VtZW50LmNyZWF0ZVRleHROb2RlKGQpOmQsdGhpcyk7QTIuY2FsbChzLHRoaXMpfX19KX1YMihDaGFyYWN0ZXJEYXRhKSxYMihFbGVtZW50KTt2YXIgUTI9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLE4yPXdpbmRv''@;'; put 'put ''dy5IVE1MRWxlbWVudC5wcm90b3R5cGUsSjI9d2luZG93LlNWR0VsZW1lbnQucHJvdG90eXBlOyFOMi5oYXNPd25Qcm9wZXJ0eSgiY2xhc3NMaXN0Iil8fFEyLmhhc093blByb3BlcnR5KCJjbGFzc0xpc3QiKXx8SjIuaGFzT3duUHJvcGVydHkoImNsYXNzTGlzdCIpfHxPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoUTIsImNsYXNzTGlzdCIsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihOMiwiY2xhc3NMaXN0IikpO3ZhciBGMj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0YyLnRleHRDb250ZW50PSJib2R5IHt0cmFuc2l0aW9uOiBvcGFjaXR5IGVhc2UtaW4gMC4y''@;'; put 'put ''czsgfSBcbmJvZHlbdW5yZXNvbHZlZF0ge29wYWNpdHk6IDA7IGRpc3BsYXk6IGJsb2NrOyBvdmVyZmxvdzogaGlkZGVuOyBwb3NpdGlvbjogcmVsYXRpdmU7IH0gXG4iO3ZhciBJMj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJoZWFkIik7STIuaW5zZXJ0QmVmb3JlKEYyLEkyLmZpcnN0Q2hp''@;'; put 'put ''bGQpO3ZhciBaMD13aW5kb3c7WjAuV2ViQ29tcG9uZW50cz1aMC5XZWJDb21wb25lbnRzfHx7ZmxhZ3M6e319O3ZhciBrMj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjKj0id2ViY29tcG9uZW50cy1idW5kbGUiXScpLHR0PS93Yy0oLispLyxBMD17fTtpZighQTAubm9PcHRz''@;'; put 'put ''KXtpZihsb2NhdGlvbi5zZWFyY2guc2xpY2UoMSkuc3BsaXQoIiYiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBpOyh0PXQuc3BsaXQoIj0iKSlbMF0mJihpPXRbMF0ubWF0Y2godHQpKSYmKEEwW2lbMV1dPXRbMV18fCEwKX0pLGsyKWZvcih2YXIgdzA9MCx3MT12b2lkIDA7dzE9azIuYXR0''@;'; put 'put ''cmlidXRlc1t3MF07dzArKykic3JjIiE9PXcxLm5hbWUmJihBMFt3MS5uYW1lXT13MS52YWx1ZXx8ITApO3ZhciBkMT17fTtBMC5sb2cmJkEwLmxvZy5zcGxpdCYmQTAubG9nLnNwbGl0KCIsIikuZm9yRWFjaChmdW5jdGlvbih0KXtkMVt0XT0hMH0pLEEwLmxvZz1kMX1aMC5XZWJDb21wb25l''@;'; put 'put ''bnRzLmZsYWdzPUEwO3ZhciBEMT1BMC5zaGFkeWRvbTtpZihEMSl7WjAuU2hhZHlET009WjAuU2hhZHlET018fHt9LFowLlNoYWR5RE9NLmZvcmNlPUQxO3ZhciBQMT1BMC5ub1BhdGNoO1owLlNoYWR5RE9NLm5vUGF0Y2g9InRydWUiPT09UDF8fFAxfXZhciBSMT1BMC5yZWdpc3Rlcnx8QTAu''@;'; put 'put ''Y2U7ZnVuY3Rpb24gZDAoKXt9ZnVuY3Rpb24gcTEodCl7cmV0dXJuIHQuX19zaGFkeXx8KHQuX19zaGFkeT1uZXcgZDApLHQuX19zaGFkeX1mdW5jdGlvbiBnMSh0KXtyZXR1cm4gdCYmdC5fX3NoYWR5fVIxJiZ3aW5kb3cuY3VzdG9tRWxlbWVudHMmJihaMC5jdXN0b21FbGVtZW50cy5mb3Jj''@;'; put 'put ''ZVBvbHlmaWxsPVIxKSxmdW5jdGlvbigpe2Z1bmN0aW9uIHQoKXt9ZnVuY3Rpb24gaShvMSxMMSl7aWYoIW8xLmNoaWxkTm9kZXMubGVuZ3RoKXJldHVybltdO3N3aXRjaChvMS5ub2RlVHlwZSl7Y2FzZSBOb2RlLkRPQ1VNRU5UX05PREU6cmV0dXJuICQxLmNhbGwobzEsTDEpO2Nhc2UgTm9k''@;'; put 'put ''ZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOnJldHVybiB6MS5jYWxsKG8xLEwxKTtkZWZhdWx0OnJldHVybiBNMS5jYWxsKG8xLEwxKX19dmFyIG49InVuZGVmaW5lZCI9PXR5cGVvZiBIVE1MVGVtcGxhdGVFbGVtZW50LHM9IShkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkuY2xv''@;'; put 'put ''bmVOb2RlKClpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpLGQ9ITE7L1RyaWRlbnQvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJmZ1bmN0aW9uKCl7ZnVuY3Rpb24gbzEoTzEscDApe2lmKE8xIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IodmFyIEZ0O0Z0PU8xLmZpcnN0''@;'; put 'put ''Q2hpbGQ7KVcxLmNhbGwodGhpcyxGdCxwMCk7ZWxzZSBXMS5jYWxsKHRoaXMsTzEscDApO3JldHVybiBPMX1kPSEwO3ZhciBMMT1Ob2RlLnByb3RvdHlwZS5jbG9uZU5vZGU7Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKE8xKXtyZXR1cm4gTzE9TDEuY2FsbCh0aGlzLE8xKSx0''@;'; put 'put ''aGlzIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudCYmKE8xLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSksTzF9LERvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGw9SFRNTEVsZW1lbnQucHJvdG90eXBlLnF1ZXJ5U2VsZWN0b3JBbGwsRG9j''@;'; put 'put ''dW1lbnRGcmFnbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3Rvcj1IVE1MRWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvcixPYmplY3QuZGVmaW5lUHJvcGVydGllcyhEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSx7bm9kZVR5cGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBOb2RlLkRP''@;'; put 'put ''Q1VNRU5UX0ZSQUdNRU5UX05PREV9LGNvbmZpZ3VyYWJsZTohMH0sbG9jYWxOYW1lOntnZXQ6ZnVuY3Rpb24oKXt9LGNvbmZpZ3VyYWJsZTohMH0sbm9kZU5hbWU6e2dldDpmdW5jdGlvbigpe3JldHVybiIjZG9jdW1lbnQtZnJhZ21lbnQifSxjb25maWd1cmFibGU6ITB9fSk7dmFyIFcxPU5v''@;'; put 'put ''ZGUucHJvdG90eXBlLmluc2VydEJlZm9yZTtOb2RlLnByb3RvdHlwZS5pbnNlcnRCZWZvcmU9bzE7dmFyIGEwPU5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkO05vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkPWZ1bmN0aW9uKE8xKXtyZXR1cm4gTzEgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdt''@;'; put 'put ''ZW50P28xLmNhbGwodGhpcyxPMSxudWxsKTphMC5jYWxsKHRoaXMsTzEpLE8xfTt2YXIgYjA9Tm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsUjA9Tm9kZS5wcm90b3R5cGUucmVwbGFjZUNoaWxkO05vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbihPMSxwMCl7cmV0dXJuIE8x''@;'; put 'put ''IGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudD8obzEuY2FsbCh0aGlzLE8xLHAwKSxiMC5jYWxsKHRoaXMscDApKTpSMC5jYWxsKHRoaXMsTzEscDApLHAwfSxEb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1mdW5jdGlvbigpe3ZhciBPMT10aGlzLmNyZWF0ZUVs''@;'; put 'put ''ZW1lbnQoImRmIik7cmV0dXJuIE8xLl9fcHJvdG9fXz1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxPMX07dmFyIGwyPURvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlO0RvY3VtZW50LnByb3RvdHlwZS5pbXBvcnROb2RlPWZ1bmN0aW9uKE8xLHAwKXtyZXR1cm4gcDA9bDIuY2FsbCh0''@;'; put 'put ''aGlzLE8xLHAwfHwhMSksTzEgaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50JiYocDAuX19wcm90b19fPURvY3VtZW50RnJhZ21lbnQucHJvdG90eXBlKSxwMH19KCk7dmFyIG09Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlLEw9RG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnQsRj1E''@;'; put 'put ''b2N1bWVudC5wcm90b3R5cGUuaW1wb3J0Tm9kZSxHPU5vZGUucHJvdG90eXBlLnJlbW92ZUNoaWxkLFU9Tm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsSz1Ob2RlLnByb3RvdHlwZS5yZXBsYWNlQ2hpbGQsSDE9RE9NUGFyc2VyLnByb3RvdHlwZS5wYXJzZUZyb21TdHJpbmcsUTE9T2JqZWN0''@;'; put 'put ''LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKXx8e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlubmVySFRNTH0sc2V0OmZ1bmN0aW9uKG8xKXt0aGlzLmlubmVySFRNTD1vMX19LGoxPU9iamVjdC5nZXRPd25Qcm9w''@;'; put 'put ''ZXJ0eURlc2NyaXB0b3Iod2luZG93Lk5vZGUucHJvdG90eXBlLCJjaGlsZE5vZGVzIil8fHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jaGlsZE5vZGVzfX0sTTE9RWxlbWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3RvckFsbCwkMT1Eb2N1bWVudC5wcm90b3R5cGUucXVlcnlTZWxlY3Rv''@;'; put 'put ''ckFsbCx6MT1Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5xdWVyeVNlbGVjdG9yQWxsLG8wPWZ1bmN0aW9uKCl7aWYoIW4pe3ZhciBvMT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpLEwxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIik7cmV0dXJuIEwxLmNv''@;'; put 'put ''bnRlbnQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLG8xLmNvbnRlbnQuYXBwZW5kQ2hpbGQoTDEpLDA9PT0obzE9bzEuY2xvbmVOb2RlKCEwKSkuY29udGVudC5jaGlsZE5vZGVzLmxlbmd0aHx8MD09PW8xLmNvbnRlbnQuZmlyc3RDaGlsZC5jb250ZW50LmNo''@;'; put 'put ''aWxkTm9kZXMubGVuZ3RofHxzfX0oKTtpZihuKXt2YXIgazE9ZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCJ0ZW1wbGF0ZSIpLG0wPSEwLFQxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7VDEudGV4dENvbnRlbnQ9InRlbXBsYXRle2Rpc3BsYXk6''@;'; put 'put ''bm9uZTt9Ijt2YXIgdDI9ZG9jdW1lbnQuaGVhZDt0Mi5pbnNlcnRCZWZvcmUoVDEsdDIuZmlyc3RFbGVtZW50Q2hpbGQpLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlKTt2YXIgRjA9IWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLmhhc093blBy''@;'; put 'put ''b3BlcnR5KCJpbm5lckhUTUwiKTt0Llo9ZnVuY3Rpb24obzEpe2lmKCFvMS5jb250ZW50JiZvMS5uYW1lc3BhY2VVUkk9PT1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubmFtZXNwYWNlVVJJKXtvMS5jb250ZW50PWsxLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtmb3IodmFyIEwxO0wxPW8x''@;'; put 'put ''LmZpcnN0Q2hpbGQ7KVUuY2FsbChvMS5jb250ZW50LEwxKTtpZihGMClvMS5fX3Byb3RvX189dC5wcm90b3R5cGU7ZWxzZSBpZihvMS5jbG9uZU5vZGU9ZnVuY3Rpb24oVzEpe3JldHVybiB0LnNhKHRoaXMsVzEpfSxtMCl0cnl7dDEobzEpLGwwKG8xKX1jYXRjaChXMSl7bTA9ITF9dC5ib290''@;'; put 'put ''c3RyYXAobzEuY29udGVudCl9fTt2YXIgZTI9e29wdGlvbjpbInNlbGVjdCJdLHRoZWFkOlsidGFibGUiXSxjb2w6WyJjb2xncm91cCIsInRhYmxlIl0sdHI6WyJ0Ym9keSIsInRhYmxlIl0sdGg6WyJ0ciIsInRib2R5IiwidGFibGUiXSx0ZDpbInRyIiwidGJvZHkiLCJ0YWJsZSJdfSx0MT1m''@;'; put 'put ''dW5jdGlvbihvMSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8xLCJpbm5lckhUTUwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDIodGhpcyl9LHNldDpmdW5jdGlvbihMMSl7dmFyIFcxPWUyWygvPChbYS16XVteL1wwPlx4MjBcdFxyXG5cZl0rKS9pLmV4ZWMoTDEpfHxbIiIsIiJdKVsxXS50''@;'; put 'put ''b0xvd2VyQ2FzZSgpXTtpZihXMSlmb3IodmFyIGEwPTA7YTA8VzEubGVuZ3RoO2EwKyspTDE9IjwiK1cxW2EwXSsiPiIrTDErIjwvIitXMVthMF0rIj4iO2ZvcihrMS5ib2R5LmlubmVySFRNTD1MMSx0LmJvb3RzdHJhcChrMSk7dGhpcy5jb250ZW50LmZpcnN0Q2hpbGQ7KUcuY2FsbCh0aGlz''@;'; put 'put ''LmNvbnRlbnQsdGhpcy5jb250ZW50LmZpcnN0Q2hpbGQpO2lmKEwxPWsxLmJvZHksVzEpZm9yKGEwPTA7YTA8VzEubGVuZ3RoO2EwKyspTDE9TDEubGFzdENoaWxkO2Zvcig7TDEuZmlyc3RDaGlsZDspVS5jYWxsKHRoaXMuY29udGVudCxMMS5maXJzdENoaWxkKX0sY29uZmlndXJhYmxlOiEw''@;'; put 'put ''fSl9LGwwPWZ1bmN0aW9uKG8xKXtPYmplY3QuZGVmaW5lUHJvcGVydHkobzEsIm91dGVySFRNTCIse2dldDpmdW5jdGlvbigpe3JldHVybiI8dGVtcGxhdGU+Iit0aGlzLmlubmVySFRNTCsiPC90ZW1wbGF0ZT4ifSxzZXQ6ZnVuY3Rpb24oTDEpe2lmKCF0aGlzLnBhcmVudE5vZGUpdGhyb3cg''@;'; put 'put ''RXJyb3IoIkZhaWxlZCB0byBzZXQgdGhlICdvdXRlckhUTUwnIHByb3BlcnR5IG9uICdFbGVtZW50JzogVGhpcyBlbGVtZW50IGhhcyBubyBwYXJlbnQgbm9kZS4iKTtmb3IoazEuYm9keS5pbm5lckhUTUw9TDEsTDE9dGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQo''@;'; put 'put ''KTtrMS5ib2R5LmZpcnN0Q2hpbGQ7KVUuY2FsbChMMSxrMS5ib2R5LmZpcnN0Q2hpbGQpO0suY2FsbCh0aGlzLnBhcmVudE5vZGUsTDEsdGhpcyl9LGNvbmZpZ3VyYWJsZTohMH0pfTt0MSh0LnByb3RvdHlwZSksbDAodC5wcm90b3R5cGUpLHQuYm9vdHN0cmFwPWZ1bmN0aW9uKG8xKXtmb3Io''@;'; put 'put ''dmFyIGEwLEwxPTAsVzE9KG8xPWkobzEsInRlbXBsYXRlIikpLmxlbmd0aDtMMTxXMSYmKGEwPW8xW0wxXSk7TDErKyl0LlooYTApfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe3QuYm9vdHN0cmFwKGRvY3VtZW50KX0pLERvY3VtZW50''@;'; put 'put ''LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKCl7dmFyIG8xPUwuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiJ0ZW1wbGF0ZSI9PT1vMS5sb2NhbE5hbWUmJnQuWihvMSksbzF9LERPTVBhcnNlci5wcm90b3R5cGUucGFyc2VGcm9tU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIG8x''@;'; put 'put ''PUgxLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdC5ib290c3RyYXAobzEpLG8xfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZDIodGhpcyl9LHNldDpmdW5jdGlvbihvMSl7UTEuc2V0''@;'; put 'put ''LmNhbGwodGhpcyxvMSksdC5ib290c3RyYXAodGhpcyl9LGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwfSk7dmFyIEkwPS9bJlx1MDBBMCJdL2csVWU9L1smXHUwMEEwPD5dL2csVHQ9ZnVuY3Rpb24obzEpe3N3aXRjaChvMSl7Y2FzZSImIjpyZXR1cm4iJmFtcDsiO2Nhc2UiPCI6cmV0''@;'; put 'put ''dXJuIiZsdDsiO2Nhc2UiPiI6cmV0dXJuIiZndDsiO2Nhc2UnIic6cmV0dXJuIiZxdW90OyI7Y2FzZSJceGEwIjpyZXR1cm4iJm5ic3A7In19LEsyPShUMT1mdW5jdGlvbihvMSl7Zm9yKHZhciBMMT17fSxXMT0wO1cxPG8xLmxlbmd0aDtXMSsrKUwxW28xW1cxXV09ITA7cmV0dXJuIEwxfSko''@;'; put 'put ''ImFyZWEgYmFzZSBiciBjb2wgY29tbWFuZCBlbWJlZCBociBpbWcgaW5wdXQga2V5Z2VuIGxpbmsgbWV0YSBwYXJhbSBzb3VyY2UgdHJhY2sgd2JyIi5zcGxpdCgiICIpKSxOdD1UMSgic3R5bGUgc2NyaXB0IHhtcCBpZnJhbWUgbm9lbWJlZCBub2ZyYW1lcyBwbGFpbnRleHQgbm9zY3JpcHQi''@;'; put 'put ''LnNwbGl0KCIgIikpLGQyPWZ1bmN0aW9uKG8xLEwxKXsidGVtcGxhdGUiPT09bzEubG9jYWxOYW1lJiYobzE9bzEuY29udGVudCk7Zm9yKHZhciBsMixXMT0iIixhMD1MMT9MMShvMSk6ajEuZ2V0LmNhbGwobzEpLGIwPTAsUjA9YTAubGVuZ3RoO2IwPFIwJiYobDI9YTBbYjBdKTtiMCsrKXt0''@;'; put 'put ''Ont2YXIgTzE9bDIscDA9bzEsRnQ9TDE7c3dpdGNoKE8xLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmZvcih2YXIgV2U9TzEubG9jYWxOYW1lLEl0PSI8IitXZSxVcj1PMS5hdHRyaWJ1dGVzLG9hPTA7cDA9VXJbb2FdO29hKyspSXQrPSIgIitwMC5uYW1lKyc9IicrcDAudmFs''@;'; put 'put ''dWUucmVwbGFjZShJMCxUdCkrJyInO0l0Kz0iPiIsTzE9SzJbV2VdP0l0Okl0K2QyKE8xLEZ0KSsiPC8iK1dlKyI+IjticmVhayB0O2Nhc2UgTm9kZS5URVhUX05PREU6TzE9TzEuZGF0YSxPMT1wMCYmTnRbcDAubG9jYWxOYW1lXT9PMTpPMS5yZXBsYWNlKFVlLFR0KTticmVhayB0O2Nhc2Ug''@;'; put 'put ''Tm9kZS5DT01NRU5UX05PREU6TzE9Ilx4M2MhLS0iK08xLmRhdGErIi0tXHgzZSI7YnJlYWsgdDtkZWZhdWx0OnRocm93IHdpbmRvdy5jb25zb2xlLmVycm9yKE8xKSxFcnJvcigibm90IGltcGxlbWVudGVkIil9fVcxKz1PMX1yZXR1cm4gVzF9fWlmKG58fG8wKXt0LnNhPWZ1bmN0aW9uKG8x''@;'; put 'put ''LEwxKXt2YXIgVzE9bS5jYWxsKG8xLCExKTtyZXR1cm4gdGhpcy5aJiZ0aGlzLlooVzEpLEwxJiYoVS5jYWxsKFcxLmNvbnRlbnQsbS5jYWxsKG8xLmNvbnRlbnQsITApKSxDMShXMS5jb250ZW50LG8xLmNvbnRlbnQpKSxXMX07dmFyIEMxPWZ1bmN0aW9uKG8xLEwxKXtpZihMMS5xdWVyeVNl''@;'; put 'put ''bGVjdG9yQWxsJiYwIT09KEwxPWkoTDEsInRlbXBsYXRlIikpLmxlbmd0aClmb3IodmFyIGIwLFIwLFcxPTAsYTA9KG8xPWkobzEsInRlbXBsYXRlIikpLmxlbmd0aDtXMTxhMDtXMSsrKVIwPUwxW1cxXSxiMD1vMVtXMV0sdCYmdC5aJiZ0LlooUjApLEsuY2FsbChiMC5wYXJlbnROb2RlLFUx''@;'; put 'put ''LmNhbGwoUjAsITApLGIwKX0sVTE9Tm9kZS5wcm90b3R5cGUuY2xvbmVOb2RlPWZ1bmN0aW9uKG8xKXtpZighZCYmcyYmdGhpcyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpe2lmKCFvMSlyZXR1cm4gdGhpcy5vd25lckRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIg''@;'; put 'put ''TDE9aTAuY2FsbCh0aGlzLm93bmVyRG9jdW1lbnQsdGhpcywhMCl9ZWxzZSBMMT10aGlzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJiJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZSYmdGhpcy5uYW1lc3BhY2VVUkk9PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VV''@;'; put 'put ''Ukk/dC5zYSh0aGlzLG8xKTptLmNhbGwodGhpcyxvMSk7cmV0dXJuIG8xJiZDMShMMSx0aGlzKSxMMX0saTA9RG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGU9ZnVuY3Rpb24obzEsTDEpe2lmKEwxPUwxfHwhMSwidGVtcGxhdGUiPT09bzEubG9jYWxOYW1lKXJldHVybiB0LnNhKG8xLEwx''@;'; put 'put ''KTt2YXIgVzE9Ri5jYWxsKHRoaXMsbzEsTDEpO2lmKEwxKXtDMShXMSxvMSksbzE9aShXMSwnc2NyaXB0Om5vdChbdHlwZV0pLHNjcmlwdFt0eXBlPSJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0Il0sc2NyaXB0W3R5cGU9InRleHQvamF2YXNjcmlwdCJdJyk7Zm9yKHZhciBhMCxiMD0wO2IwPG8x''@;'; put 'put ''Lmxlbmd0aDtiMCsrKXthMD1vMVtiMF0sKEwxPUwuY2FsbChkb2N1bWVudCwic2NyaXB0IikpLnRleHRDb250ZW50PWEwLnRleHRDb250ZW50O2Zvcih2YXIgTzEsUjA9YTAuYXR0cmlidXRlcyxsMj0wO2wyPFIwLmxlbmd0aDtsMisrKUwxLnNldEF0dHJpYnV0ZSgoTzE9UjBbbDJdKS5uYW1l''@;'; put 'put ''LE8xLnZhbHVlKTtLLmNhbGwoYTAucGFyZW50Tm9kZSxMMSxhMCl9fXJldHVybiBXMX19biYmKHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50PXQpfSgpLGQwLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57fX07dmFyIHkxPXdpbmRvdy5TaGFkeURPTXx8e307eTEuWWE9ISgh''@;'; put 'put ''RWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93fHwhTm9kZS5wcm90b3R5cGUuZ2V0Um9vdE5vZGUpO3ZhciBXMD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKE5vZGUucHJvdG90eXBlLCJmaXJzdENoaWxkIik7ZnVuY3Rpb24gTzAoKXtyZXR1cm4gRG9jdW1lbnQucHJvdG90''@;'; put 'put ''eXBlLm1zRWxlbWVudHNGcm9tUG9pbnQ/Im1zRWxlbWVudHNGcm9tUG9pbnQiOiJlbGVtZW50c0Zyb21Qb2ludCJ9ZnVuY3Rpb24gSzEodCl7cmV0dXJuKHQ9ZzEodCkpJiZ2b2lkIDAhPT10LmZpcnN0Q2hpbGR9ZnVuY3Rpb24gZTAodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBTaGFkb3dSb290''@;'; put 'put ''fWZ1bmN0aW9uIEowKHQpe3JldHVybih0PSh0PWcxKHQpKSYmdC5yb290KSYmJGwodCl9eTEuSD0hIShXMCYmVzAuY29uZmlndXJhYmxlJiZXMC5nZXQpLHkxLnlhPXkxLmZvcmNlfHwheTEuWWEseTEuSj15MS5ub1BhdGNofHwhMSx5MS5mYT15MS5wcmVmZXJQZXJmb3JtYW5jZSx5MS5BYT0i''@;'; put 'put ''b24tZGVtYW5kIj09PXkxLkoseTEuTmE9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiVHJpZGVudCIpO3ZhciBQMD1FbGVtZW50LnByb3RvdHlwZSxPMj1QMC5tYXRjaGVzfHxQMC5tYXRjaGVzU2VsZWN0b3J8fFAwLm1vek1hdGNoZXNTZWxlY3Rvcnx8UDAubXNNYXRjaGVzU2VsZWN0b3J8''@;'; put 'put ''fFAwLm9NYXRjaGVzU2VsZWN0b3J8fFAwLndlYmtpdE1hdGNoZXNTZWxlY3RvcixnMD1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIiksWDE9MCxIMD1bXTtmdW5jdGlvbiBEMCh0KXtIMC5wdXNoKHQpLGcwLnRleHRDb250ZW50PVgxKyt9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24o''@;'; put 'put ''KXtmb3IoO0gwLmxlbmd0aDspdHJ5e0gwLnNoaWZ0KCkoKX1jYXRjaCh0KXt0aHJvdyBnMC50ZXh0Q29udGVudD1YMSsrLHR9fSkub2JzZXJ2ZShnMCx7Y2hhcmFjdGVyRGF0YTohMH0pO3ZhciB1MD1kb2N1bWVudC5jb250YWlucz9mdW5jdGlvbih0LGkpe3JldHVybiB0Ll9fc2hhZHlfbmF0''@;'; put 'put ''aXZlX2NvbnRhaW5zKGkpfTpmdW5jdGlvbih0LGkpe3JldHVybiB0PT09aXx8dC5kb2N1bWVudEVsZW1lbnQmJnQuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKGkpfTtmdW5jdGlvbiB4MCh0LGkpe2Zvcig7aTspe2lmKGk9PXQpcmV0dXJuITA7aT1pLl9fc2hhZHlf''@;'; put 'put ''cGFyZW50Tm9kZX1yZXR1cm4hMX1mdW5jdGlvbiBCMCh0KXtmb3IodmFyIGk9dC5sZW5ndGgtMTswPD1pO2ktLSl7dmFyIG49dFtpXSxzPW4uZ2V0QXR0cmlidXRlKCJpZCIpfHxuLmdldEF0dHJpYnV0ZSgibmFtZSIpO3MmJiJsZW5ndGgiIT09cyYmaXNOYU4ocykmJih0W3NdPW4pfXJldHVy''@;'; put 'put ''biB0Lml0ZW09ZnVuY3Rpb24oZCl7cmV0dXJuIHRbZF19LHQubmFtZWRJdGVtPWZ1bmN0aW9uKGQpe2lmKCJsZW5ndGgiIT09ZCYmaXNOYU4oZCkmJnRbZF0pcmV0dXJuIHRbZF07Zm9yKHZhciBtPWEodCksTD1tLm5leHQoKTshTC5kb25lO0w9bS5uZXh0KCkpaWYoKChMPUwudmFsdWUpLmdl''@;'; put 'put ''dEF0dHJpYnV0ZSgiaWQiKXx8TC5nZXRBdHRyaWJ1dGUoIm5hbWUiKSk9PWQpcmV0dXJuIEw7cmV0dXJuIG51bGx9LHR9ZnVuY3Rpb24gUDIodCl7dmFyIGk9W107Zm9yKHQ9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKWkucHVz''@;'; put 'put ''aCh0KTtyZXR1cm4gaX1mdW5jdGlvbiB2Mih0KXt2YXIgaT1bXTtmb3IodD10Ll9fc2hhZHlfZmlyc3RDaGlsZDt0O3Q9dC5fX3NoYWR5X25leHRTaWJsaW5nKWkucHVzaCh0KTtyZXR1cm4gaX1mdW5jdGlvbiByMih0LGksbil7aWYobi5jb25maWd1cmFibGU9ITAsbi52YWx1ZSl0W2ldPW4u''@;'; put 'put ''dmFsdWU7ZWxzZSB0cnl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSxuKX1jYXRjaChzKXt9fWZ1bmN0aW9uIHMwKHQsaSxuLHMpe2Zvcih2YXIgZCBpbiBuPXZvaWQgMD09PW4/IiI6bixpKXMmJjA8PXMuaW5kZXhPZihkKXx8cjIodCxuK2QsaVtkXSl9ZnVuY3Rpb24gUHQodCxpKXtmb3Io''@;'; put 'put ''dmFyIG4gaW4gaSluIGluIHQmJnIyKHQsbixpW25dKX1mdW5jdGlvbiBuMCh0KXt2YXIgaT17fTtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkuZm9yRWFjaChmdW5jdGlvbihuKXtpW25dPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCxuKX0pLGl9ZnVuY3Rp''@;'; put 'put ''b24gQnQodCxpKXtmb3IodmFyIGQsbj1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhpKSxzPTA7czxuLmxlbmd0aDtzKyspdFtkPW5bc11dPWlbZF19ZnVuY3Rpb24gJGUodCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBOb2RlP3Q6ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIiIrdCl9ZnVuY3Rp''@;'; put 'put ''b24gSDIodCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO2lmKDE9PT1pLmxlbmd0aClyZXR1cm4gJGUoaVswXSk7bj1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Zm9yKHZhciBzPShpPWEoaSkpLm5leHQoKTshcy5k''@;'; put 'put ''b25lO3M9aS5uZXh0KCkpbi5hcHBlbmRDaGlsZCgkZShzLnZhbHVlKSk7cmV0dXJuIG59dmFyIEd0LEIyPVtdO2Z1bmN0aW9uIHFlKHQpe0d0fHwoR3Q9ITAsRDAoZXQpKSxCMi5wdXNoKHQpfWZ1bmN0aW9uIGV0KCl7R3Q9ITE7Zm9yKHZhciB0PSEhQjIubGVuZ3RoO0IyLmxlbmd0aDspQjIu''@;'; put 'put ''c2hpZnQoKSgpO3JldHVybiB0fWZ1bmN0aW9uIGp0KCl7dGhpcy5nPSExLHRoaXMuYWRkZWROb2Rlcz1bXSx0aGlzLnJlbW92ZWROb2Rlcz1bXSx0aGlzLm9hPW5ldyBTZXR9ZXQubGlzdD1CMixqdC5wcm90b3R5cGUuZmx1c2g9ZnVuY3Rpb24oKXtpZih0aGlzLmcpe3RoaXMuZz0hMTt2YXIg''@;'; put 'put ''dD10aGlzLnRha2VSZWNvcmRzKCk7dC5sZW5ndGgmJnRoaXMub2EuZm9yRWFjaChmdW5jdGlvbihpKXtpKHQpfSl9fSxqdC5wcm90b3R5cGUudGFrZVJlY29yZHM9ZnVuY3Rpb24oKXtpZih0aGlzLmFkZGVkTm9kZXMubGVuZ3RofHx0aGlzLnJlbW92ZWROb2Rlcy5sZW5ndGgpe3ZhciB0PVt7''@;'; put 'put ''YWRkZWROb2Rlczp0aGlzLmFkZGVkTm9kZXMscmVtb3ZlZE5vZGVzOnRoaXMucmVtb3ZlZE5vZGVzfV07cmV0dXJuIHRoaXMuYWRkZWROb2Rlcz1bXSx0aGlzLnJlbW92ZWROb2Rlcz1bXSx0fXJldHVybltdfTt2YXIgcGE9L1smXHUwMEEwIl0vZyxmYT0vWyZcdTAwQTA8Pl0vZztmdW5jdGlv''@;'; put 'put ''biBZZSh0KXtzd2l0Y2godCl7Y2FzZSImIjpyZXR1cm4iJmFtcDsiO2Nhc2UiPCI6cmV0dXJuIiZsdDsiO2Nhc2UiPiI6cmV0dXJuIiZndDsiO2Nhc2UnIic6cmV0dXJuIiZxdW90OyI7Y2FzZSJceGEwIjpyZXR1cm4iJm5ic3A7In19ZnVuY3Rpb24gS2UodCl7Zm9yKHZhciBpPXt9LG49MDtu''@;'; put 'put ''PHQubGVuZ3RoO24rKylpW3Rbbl1dPSEwO3JldHVybiBpfXZhciBnYT1LZSgiYXJlYSBiYXNlIGJyIGNvbCBjb21tYW5kIGVtYmVkIGhyIGltZyBpbnB1dCBrZXlnZW4gbGluayBtZXRhIHBhcmFtIHNvdXJjZSB0cmFjayB3YnIiLnNwbGl0KCIgIikpLEFhPUtlKCJzdHlsZSBzY3JpcHQgeG1w''@;'; put 'put ''IGlmcmFtZSBub2VtYmVkIG5vZnJhbWVzIHBsYWludGV4dCBub3NjcmlwdCIuc3BsaXQoIiAiKSk7ZnVuY3Rpb24gUnQodCxpKXsidGVtcGxhdGUiPT09dC5sb2NhbE5hbWUmJih0PXQuY29udGVudCk7Zm9yKHZhciBuPSIiLHM9aT9pKHQpOnQuY2hpbGROb2RlcyxkPTAsbT1zLmxlbmd0aCxM''@;'; put 'put ''PXZvaWQgMDtkPG0mJihMPXNbZF0pO2QrKyl7dDp7dmFyIEY9TCxHPXQsVT1pO3N3aXRjaChGLm5vZGVUeXBlKXtjYXNlIE5vZGUuRUxFTUVOVF9OT0RFOmZvcih2YXIgajEsSz0iPCIrKEc9Ri5sb2NhbE5hbWUpLEgxPUYuYXR0cmlidXRlcyxRMT0wO2oxPUgxW1ExXTtRMSsrKUsrPSIgIitq''@;'; put 'put ''MS5uYW1lKyc9IicrajEudmFsdWUucmVwbGFjZShwYSxZZSkrJyInO0srPSI+IixGPWdhW0ddP0s6SytSdChGLFUpKyI8LyIrRysiPiI7YnJlYWsgdDtjYXNlIE5vZGUuVEVYVF9OT0RFOkY9Ri5kYXRhLEY9RyYmQWFbRy5sb2NhbE5hbWVdP0Y6Ri5yZXBsYWNlKGZhLFllKTticmVhayB0O2Nh''@;'; put 'put ''c2UgTm9kZS5DT01NRU5UX05PREU6Rj0iXHgzYyEtLSIrRi5kYXRhKyItLVx4M2UiO2JyZWFrIHQ7ZGVmYXVsdDp0aHJvdyB3aW5kb3cuY29uc29sZS5lcnJvcihGKSxFcnJvcigibm90IGltcGxlbWVudGVkIil9fW4rPUZ9cmV0dXJuIG59dmFyIGx0PXkxLkgsenQ9e3F1ZXJ5U2VsZWN0b3I6''@;'; put 'put ''ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcXVlcnlTZWxlY3Rvcih0KX0scXVlcnlTZWxlY3RvckFsbDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9xdWVyeVNlbGVjdG9yQWxsKHQpfX0sWGU9e307ZnVuY3Rpb24gUWUodCl7WGVbdF09ZnVu''@;'; put 'put ''Y3Rpb24oaSl7cmV0dXJuIGlbIl9fc2hhZHlfbmF0aXZlXyIrdF19fWZ1bmN0aW9uIEcyKHQsaSl7Zm9yKHZhciBuIGluIHMwKHQsaSwiX19zaGFkeV9uYXRpdmVfIiksaSlRZShuKX1mdW5jdGlvbiBjMCh0LGkpe2k9dm9pZCAwPT09aT9bXTppO2Zvcih2YXIgbj0wO248aS5sZW5ndGg7bisr''@;'; put 'put ''KXt2YXIgcz1pW25dLGQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LHMpO2QmJihPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19zaGFkeV9uYXRpdmVfIitzLGQpLGQudmFsdWU/enRbc118fCh6dFtzXT1kLnZhbHVlKTpRZShzKSl9fXZhciB5MD1kb2N1bWVudC5jcmVhdGVU''@;'; put 'put ''cmVlV2Fsa2VyKGRvY3VtZW50LE5vZGVGaWx0ZXIuU0hPV19BTEwsbnVsbCwhMSksTDA9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihkb2N1bWVudCxOb2RlRmlsdGVyLlNIT1dfRUxFTUVOVCxudWxsLCExKSxVdD1kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQo''@;'; put 'put ''ImluZXJ0Iik7ZnVuY3Rpb24gSmUodCl7Zm9yKHZhciBpO2k9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkOyl0Ll9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGkpfXZhciBXdD1bImZpcnN0RWxlbWVudENoaWxkIiwibGFzdEVsZW1lbnRDaGlsZCIsImNoaWxkcmVuIiwiY2hpbGRFbGVt''@;'; put 'put ''ZW50Q291bnQiXSwkdD1bInF1ZXJ5U2VsZWN0b3IiLCJxdWVyeVNlbGVjdG9yQWxsIiwiYXBwZW5kIiwicHJlcGVuZCIsInJlcGxhY2VDaGlsZHJlbiJdLHF0PW4wKHtnZXQgY2hpbGROb2Rlcygpe3JldHVybiB0aGlzLl9fc2hhZHlfY2hpbGROb2Rlc30sZ2V0IGZpcnN0Q2hpbGQoKXtyZXR1''@;'; put 'put ''cm4gdGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGR9LGdldCBsYXN0Q2hpbGQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2xhc3RDaGlsZH0sZ2V0IGNoaWxkRWxlbWVudENvdW50KCl7cmV0dXJuIHRoaXMuX19zaGFkeV9jaGlsZEVsZW1lbnRDb3VudH0sZ2V0IGNoaWxkcmVuKCl7cmV0dXJuIHRoaXMu''@;'; put 'put ''X19zaGFkeV9jaGlsZHJlbn0sZ2V0IGZpcnN0RWxlbWVudENoaWxkKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9maXJzdEVsZW1lbnRDaGlsZH0sZ2V0IGxhc3RFbGVtZW50Q2hpbGQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X2xhc3RFbGVtZW50Q2hpbGR9LGdldCBzaGFkb3dSb290KCl7cmV0dXJu''@;'; put 'put ''IHRoaXMuX19zaGFkeV9zaGFkb3dSb290fX0pLFl0PW4wKHtnZXQgdGV4dENvbnRlbnQoKXtyZXR1cm4gdGhpcy5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQodCl7dGhpcy5fX3NoYWR5X3RleHRDb250ZW50PXR9LGdldCBpbm5lckhUTUwoKXtyZXR1cm4gdGhpcy5fX3No''@;'; put 'put ''YWR5X2lubmVySFRNTH0sc2V0IGlubmVySFRNTCh0KXt0aGlzLl9fc2hhZHlfaW5uZXJIVE1MPXR9fSksS3Q9bjAoe2dldCBwYXJlbnRFbGVtZW50KCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wYXJlbnRFbGVtZW50fSxnZXQgcGFyZW50Tm9kZSgpe3JldHVybiB0aGlzLl9fc2hhZHlfcGFyZW50''@;'; put 'put ''Tm9kZX0sZ2V0IG5leHRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uZXh0U2libGluZ30sZ2V0IHByZXZpb3VzU2libGluZygpe3JldHVybiB0aGlzLl9fc2hhZHlfcHJldmlvdXNTaWJsaW5nfSxnZXQgbmV4dEVsZW1lbnRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9uZXh0''@;'; put 'put ''RWxlbWVudFNpYmxpbmd9LGdldCBwcmV2aW91c0VsZW1lbnRTaWJsaW5nKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9wcmV2aW91c0VsZW1lbnRTaWJsaW5nfSxnZXQgY2xhc3NOYW1lKCl7cmV0dXJuIHRoaXMuX19zaGFkeV9jbGFzc05hbWV9LHNldCBjbGFzc05hbWUodCl7dGhpcy5fX3NoYWR5''@;'; put 'put ''X2NsYXNzTmFtZT10fX0pO2Z1bmN0aW9uIFh0KHQpe2Zvcih2YXIgaSBpbiB0KXt2YXIgbj10W2ldO24mJihuLmVudW1lcmFibGU9ITEpfX1YdChxdCksWHQoWXQpLFh0KEt0KTt2YXIgdGw9eTEuSHx8ITA9PT15MS5KLGVsPXRsP2Z1bmN0aW9uKCl7fTpmdW5jdGlvbih0KXt2YXIgaT1xMSh0''@;'; put 'put ''KTtpLlBhfHwoaS5QYT0hMCxQdCh0LEt0KSl9LGxsPXRsP2Z1bmN0aW9uKCl7fTpmdW5jdGlvbih0KXt2YXIgaT1xMSh0KTtpLk9hfHwoaS5PYT0hMCxQdCh0LHF0KSx3aW5kb3cuY3VzdG9tRWxlbWVudHMmJndpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNr''@;'; put 'put ''JiYheTEuSnx8UHQodCxZdCkpfSxqMj0iX19ldmVudFdyYXBwZXJzIitEYXRlLm5vdygpLFF0PWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsImNvbXBvc2VkIik7cmV0dXJuIHQ/ZnVuY3Rpb24oaSl7cmV0dXJuIHQuZ2V0''@;'; put 'put ''LmNhbGwoaSl9Om51bGx9KCksSGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7fXZhciBpPSExLG49e2dldCBjYXB0dXJlKCl7cmV0dXJuIGk9ITAsITF9fTtyZXR1cm4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLHQsbiksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRlc3Qi''@;'; put 'put ''LHQsbiksaX0oKTtmdW5jdGlvbiBpbCh0KXtpZih0JiYib2JqZWN0Ij09dHlwZW9mIHQpdmFyIGk9ISF0LmNhcHR1cmUsbj0hIXQub25jZSxzPSEhdC5wYXNzaXZlLGQ9dC5VO2Vsc2UgaT0hIXQscz1uPSExO3JldHVybntMYTpkLGNhcHR1cmU6aSxvbmNlOm4scGFzc2l2ZTpzLEphOkhhP3Q6''@;'; put 'put ''aX19dmFyIENhPXtibHVyOiEwLGZvY3VzOiEwLGZvY3VzaW46ITAsZm9jdXNvdXQ6ITAsY2xpY2s6ITAsZGJsY2xpY2s6ITAsbW91c2Vkb3duOiEwLG1vdXNlZW50ZXI6ITAsbW91c2VsZWF2ZTohMCxtb3VzZW1vdmU6ITAsbW91c2VvdXQ6ITAsbW91c2VvdmVyOiEwLG1vdXNldXA6ITAsd2hl''@;'; put 'put ''ZWw6ITAsYmVmb3JlaW5wdXQ6ITAsaW5wdXQ6ITAsa2V5ZG93bjohMCxrZXl1cDohMCxjb21wb3NpdGlvbnN0YXJ0OiEwLGNvbXBvc2l0aW9udXBkYXRlOiEwLGNvbXBvc2l0aW9uZW5kOiEwLHRvdWNoc3RhcnQ6ITAsdG91Y2hlbmQ6ITAsdG91Y2htb3ZlOiEwLHRvdWNoY2FuY2VsOiEwLHBv''@;'; put 'put ''aW50ZXJvdmVyOiEwLHBvaW50ZXJlbnRlcjohMCxwb2ludGVyZG93bjohMCxwb2ludGVybW92ZTohMCxwb2ludGVydXA6ITAscG9pbnRlcmNhbmNlbDohMCxwb2ludGVyb3V0OiEwLHBvaW50ZXJsZWF2ZTohMCxnb3Rwb2ludGVyY2FwdHVyZTohMCxsb3N0cG9pbnRlcmNhcHR1cmU6ITAsZHJh''@;'; put 'put ''Z3N0YXJ0OiEwLGRyYWc6ITAsZHJhZ2VudGVyOiEwLGRyYWdsZWF2ZTohMCxkcmFnb3ZlcjohMCxkcm9wOiEwLGRyYWdlbmQ6ITAsRE9NQWN0aXZhdGU6ITAsRE9NRm9jdXNJbjohMCxET01Gb2N1c091dDohMCxrZXlwcmVzczohMH0sYWw9e0RPTUF0dHJNb2RpZmllZDohMCxET01BdHRyaWJ1''@;'; put 'put ''dGVOYW1lQ2hhbmdlZDohMCxET01DaGFyYWN0ZXJEYXRhTW9kaWZpZWQ6ITAsRE9NRWxlbWVudE5hbWVDaGFuZ2VkOiEwLERPTU5vZGVJbnNlcnRlZDohMCxET01Ob2RlSW5zZXJ0ZWRJbnRvRG9jdW1lbnQ6ITAsRE9NTm9kZVJlbW92ZWQ6ITAsRE9NTm9kZVJlbW92ZWRGcm9tRG9jdW1lbnQ6''@;'; put 'put ''ITAsRE9NU3VidHJlZU1vZGlmaWVkOiEwfTtmdW5jdGlvbiBybCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE5vZGU/dC5fX3NoYWR5X2dldFJvb3ROb2RlKCk6dH1mdW5jdGlvbiBpdCh0LGkpe3ZhciBuPVtdLHM9dDtmb3IodD1ybCh0KTtzOyluLnB1c2gocykscz1zLl9fc2hhZHlfYXNzaWdu''@;'; put 'put ''ZWRTbG90P3MuX19zaGFkeV9hc3NpZ25lZFNsb3Q6cy5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSYmcy5ob3N0JiYoaXx8cyE9PXQpP3MuaG9zdDpzLl9fc2hhZHlfcGFyZW50Tm9kZTtyZXR1cm4gbltuLmxlbmd0aC0xXT09PWRvY3VtZW50JiZuLnB1c2god2luZG93''@;'; put 'put ''KSxufWZ1bmN0aW9uIEp0KHQsaSl7aWYoIWUwKXJldHVybiB0O3Q9aXQodCwhMCk7Zm9yKHZhciBzLG0sbj0wLGQ9dm9pZCAwLEw9dm9pZCAwO248aS5sZW5ndGg7bisrKWlmKChtPXJsKHM9aVtuXSkpIT09ZCYmKEw9dC5pbmRleE9mKG0pLGQ9bSksIWUwKG0pfHwtMTxMKXJldHVybiBzfWZ1''@;'; put 'put ''bmN0aW9uIHRlKHQpe2Z1bmN0aW9uIGkobixzKXtyZXR1cm4obj1uZXcgdChuLHMpKS5fX2NvbXBvc2VkPXMmJiEhcy5jb21wb3NlZCxufXJldHVybiBpLl9fcHJvdG9fXz10LGkucHJvdG90eXBlPXQucHJvdG90eXBlLGl9dmFyIG5sPXtmb2N1czohMCxibHVyOiEwfTtmdW5jdGlvbiBjbCh0''@;'; put 'put ''KXtyZXR1cm4gdC5fX3RhcmdldCE9PXQudGFyZ2V0fHx0Ll9fcmVsYXRlZFRhcmdldCE9PXQucmVsYXRlZFRhcmdldH1mdW5jdGlvbiBvbCh0LGksbil7aWYobj1pLl9faGFuZGxlcnMmJmkuX19oYW5kbGVyc1t0LnR5cGVdJiZpLl9faGFuZGxlcnNbdC50eXBlXVtuXSlmb3IodmFyIGQscz0w''@;'; put 'put ''OyhkPW5bc10pJiYoIWNsKHQpfHx0LnRhcmdldCE9PXQucmVsYXRlZFRhcmdldCkmJihkLmNhbGwoaSx0KSwhdC5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCk7cysrKTt9ZnVuY3Rpb24gc2wodCl7dmFyIGk9dC5jb21wb3NlZFBhdGgoKSxuPWkubWFwKGZ1bmN0aW9uKEcpe3JldHVy''@;'; put 'put ''biBKdChHLGkpfSkscz10LmJ1YmJsZXM7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsImN1cnJlbnRUYXJnZXQiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTH19KTt2YXIgZD1FdmVudC5DQVBUVVJJTkdfUEhBU0U7T2JqZWN0LmRlZmluZVBy''@;'; put 'put ''b3BlcnR5KHQsImV2ZW50UGhhc2UiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZH19KTtmb3IodmFyIG09aS5sZW5ndGgtMTswPD1tO20tLSl7dmFyIEw9aVttXTtpZihkPUw9PT1uW21dP0V2ZW50LkFUX1RBUkdFVDpFdmVudC5DQVBUVVJJ''@;'; put 'put ''TkdfUEhBU0Usb2wodCxMLCJjYXB0dXJlIiksdC5yYSlyZXR1cm59Zm9yKG09MDttPGkubGVuZ3RoO20rKyl7dmFyIEY9KEw9aVttXSk9PT1uW21dO2lmKChGfHxzKSYmKGQ9Rj9FdmVudC5BVF9UQVJHRVQ6RXZlbnQuQlVCQkxJTkdfUEhBU0Usb2wodCxMLCJidWJibGUiKSx0LnJhKSlyZXR1''@;'; put 'put ''cm59ZD0wLEw9bnVsbH1mdW5jdGlvbiBobCh0LGksbixzLGQsbSl7Zm9yKHZhciBMPTA7TDx0Lmxlbmd0aDtMKyspe3ZhciBGPXRbTF07aWYoaT09PUYubm9kZSYmbj09PUYudHlwZSYmcz09PUYuY2FwdHVyZSYmZD09PUYub25jZSYmbT09PUYucGFzc2l2ZSlyZXR1cm4gTH1yZXR1cm4tMX1m''@;'; put 'put ''dW5jdGlvbiBkbCh0KXtyZXR1cm4gZXQoKSwheTEuZmEmJnRoaXMgaW5zdGFuY2VvZiBOb2RlJiYhdTAoZG9jdW1lbnQsdGhpcyk/KHQuX190YXJnZXR8fGllKHQsdGhpcyksc2wodCkpOnRoaXMuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudCh0KX1mdW5jdGlvbiBlZSh0LGksbil7dmFy''@;'; put 'put ''IHM9aWwobiksZD1zLmNhcHR1cmUsbT1zLm9uY2UsTD1zLnBhc3NpdmUsRj1zLkxhO2lmKHM9cy5KYSxpKXt2YXIgRz10eXBlb2YgaTtpZigoImZ1bmN0aW9uIj09PUd8fCJvYmplY3QiPT09RykmJigib2JqZWN0IiE9PUd8fGkuaGFuZGxlRXZlbnQmJiJmdW5jdGlvbiI9PXR5cGVvZiBpLmhh''@;'; put 'put ''bmRsZUV2ZW50KSl7aWYoYWxbdF0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcih0LGkscyk7dmFyIFU9Rnx8dGhpcztpZihGPWlbajJdKXtpZigtMTxobChGLFUsdCxkLG0sTCkpcmV0dXJufWVsc2UgaVtqMl09W107Rj1mdW5jdGlvbihLKXtpZihtJiZ0aGlz''@;'; put 'put ''Ll9fc2hhZHlfcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGksbiksSy5fX3RhcmdldHx8aWUoSyksVSE9PXRoaXMpe3ZhciBIMT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEssImN1cnJlbnRUYXJnZXQiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoSywiY3VycmVudFRhcmdldCIse2dl''@;'; put 'put ''dDpmdW5jdGlvbigpe3JldHVybiBVfSxjb25maWd1cmFibGU6ITB9KTt2YXIgUTE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihLLCJldmVudFBoYXNlIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KEssImV2ZW50UGhhc2UiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxn''@;'; put 'put ''ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZD9FdmVudC5DQVBUVVJJTkdfUEhBU0U6RXZlbnQuQlVCQkxJTkdfUEhBU0V9fSl9aWYoSy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldD1LLmN1cnJlbnRUYXJnZXQsKCFlMChVKSYmInNsb3QiIT09VS5sb2NhbE5hbWV8fC0xIT1LLmNvbXBvc2VkUGF0aCgp''@;'; put 'put ''LmluZGV4T2YoVSkpJiYoSy5jb21wb3NlZHx8LTE8Sy5jb21wb3NlZFBhdGgoKS5pbmRleE9mKFUpKSlpZihjbChLKSYmSy50YXJnZXQ9PT1LLnJlbGF0ZWRUYXJnZXQpSy5ldmVudFBoYXNlPT09RXZlbnQuQlVCQkxJTkdfUEhBU0UmJksuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7ZWxz''@;'; put 'put ''ZSBpZihLLmV2ZW50UGhhc2U9PT1FdmVudC5DQVBUVVJJTkdfUEhBU0V8fEsuYnViYmxlc3x8Sy50YXJnZXQ9PT1VfHxVIGluc3RhbmNlb2YgV2luZG93KXt2YXIgajE9ImZ1bmN0aW9uIj09PUc/aS5jYWxsKFUsSyk6aS5oYW5kbGVFdmVudCYmaS5oYW5kbGVFdmVudChLKTtyZXR1cm4gVSE9''@;'; put 'put ''PXRoaXMmJihIMT8oT2JqZWN0LmRlZmluZVByb3BlcnR5KEssImN1cnJlbnRUYXJnZXQiLEgxKSxIMT1udWxsKTpkZWxldGUgSy5jdXJyZW50VGFyZ2V0LFExPyhPYmplY3QuZGVmaW5lUHJvcGVydHkoSywiZXZlbnRQaGFzZSIsUTEpLFExPW51bGwpOmRlbGV0ZSBLLmV2ZW50UGhhc2UpLGox''@;'; put 'put ''fX0saVtqMl0ucHVzaCh7bm9kZTpVLHR5cGU6dCxjYXB0dXJlOmQsb25jZTptLHBhc3NpdmU6TCxwYjpGfSksdGhpcy5fX2hhbmRsZXJzPXRoaXMuX19oYW5kbGVyc3x8e30sdGhpcy5fX2hhbmRsZXJzW3RdPXRoaXMuX19oYW5kbGVyc1t0XXx8e2NhcHR1cmU6W10sYnViYmxlOltdfSx0aGlz''@;'; put 'put ''Ll9faGFuZGxlcnNbdF1bZD8iY2FwdHVyZSI6ImJ1YmJsZSJdLnB1c2goRiksbmxbdF18fHRoaXMuX19zaGFkeV9uYXRpdmVfYWRkRXZlbnRMaXN0ZW5lcih0LEYscyl9fX1mdW5jdGlvbiBsZSh0LGksbil7aWYoaSl7dmFyIHM9aWwobik7bj1zLmNhcHR1cmU7dmFyIGQ9cy5vbmNlLG09cy5w''@;'; put 'put ''YXNzaXZlLEw9cy5MYTtpZihzPXMuSmEsYWxbdF0pcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfcmVtb3ZlRXZlbnRMaXN0ZW5lcih0LGkscyk7dmFyIEY9THx8dGhpcztMPXZvaWQgMDt2YXIgRz1udWxsO3RyeXtHPWlbajJdfWNhdGNoKFUpe31HJiYtMTwoZD1obChHLEYsdCxuLGQsbSkp''@;'; put 'put ''JiYoTD1HLnNwbGljZShkLDEpWzBdLnBiLEcubGVuZ3RofHwoaVtqMl09dm9pZCAwKSksdGhpcy5fX3NoYWR5X25hdGl2ZV9yZW1vdmVFdmVudExpc3RlbmVyKHQsTHx8aSxzKSxMJiZ0aGlzLl9faGFuZGxlcnMmJnRoaXMuX19oYW5kbGVyc1t0XSYmLTE8KGk9KHQ9dGhpcy5fX2hhbmRsZXJz''@;'; put 'put ''W3RdW24/ImNhcHR1cmUiOiJidWJibGUiXSkuaW5kZXhPZihMKSkmJnQuc3BsaWNlKGksMSl9fXZhciB1bD1uMCh7Z2V0IGNvbXBvc2VkKCl7cmV0dXJuIHZvaWQgMD09PXRoaXMuX19jb21wb3NlZCYmKFF0P3RoaXMuX19jb21wb3NlZD0iZm9jdXNpbiI9PT10aGlzLnR5cGV8fCJmb2N1c291''@;'; put 'put ''dCI9PT10aGlzLnR5cGV8fFF0KHRoaXMpOiExIT09dGhpcy5pc1RydXN0ZWQmJih0aGlzLl9fY29tcG9zZWQ9Q2FbdGhpcy50eXBlXSkpLHRoaXMuX19jb21wb3NlZHx8ITF9LGNvbXBvc2VkUGF0aDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9fY29tcG9zZWRQYXRofHwodGhpcy5fX2NvbXBv''@;'; put 'put ''c2VkUGF0aD1pdCh0aGlzLl9fdGFyZ2V0LHRoaXMuY29tcG9zZWQpKSx0aGlzLl9fY29tcG9zZWRQYXRofSxnZXQgdGFyZ2V0KCl7cmV0dXJuIEp0KHRoaXMuY3VycmVudFRhcmdldHx8dGhpcy5fX3ByZXZpb3VzQ3VycmVudFRhcmdldCx0aGlzLmNvbXBvc2VkUGF0aCgpKX0sZ2V0IHJlbGF0''@;'; put 'put ''ZWRUYXJnZXQoKXtyZXR1cm4gdGhpcy5fX3JlbGF0ZWRUYXJnZXQ/KHRoaXMuX19yZWxhdGVkVGFyZ2V0Q29tcG9zZWRQYXRofHwodGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGg9aXQodGhpcy5fX3JlbGF0ZWRUYXJnZXQsITApKSxKdCh0aGlzLmN1cnJlbnRUYXJnZXR8fHRoaXMu''@;'; put 'put ''X19wcmV2aW91c0N1cnJlbnRUYXJnZXQsdGhpcy5fX3JlbGF0ZWRUYXJnZXRDb21wb3NlZFBhdGgpKTpudWxsfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXtFdmVudC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uLmNhbGwodGhpcyksdGhpcy5yYT0hMH0sc3RvcEltbWVkaWF0ZVByb3Bh''@;'; put 'put ''Z2F0aW9uOmZ1bmN0aW9uKCl7RXZlbnQucHJvdG90eXBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbi5jYWxsKHRoaXMpLHRoaXMucmE9dGhpcy5fX2ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZD0hMH19KTtmdW5jdGlvbiBpZSh0LGkpe2lmKHQuX190YXJnZXQ9aT12b2lkIDA9PT1pP3Qu''@;'; put 'put ''dGFyZ2V0OmksdC5fX3JlbGF0ZWRUYXJnZXQ9dC5yZWxhdGVkVGFyZ2V0LHkxLkgpe2lmKCEoaT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpLmhhc093blByb3BlcnR5KCJfX3NoYWR5X3BhdGNoZWRQcm90byIpKXt2YXIgbj1PYmplY3QuY3JlYXRlKGkpO24uX19zaGFkeV9zb3VyY2VQcm90''@;'; put 'put ''bz1pLHMwKG4sdWwpLGkuX19zaGFkeV9wYXRjaGVkUHJvdG89bn10Ll9fcHJvdG9fXz1pLl9fc2hhZHlfcGF0Y2hlZFByb3RvfWVsc2UgczAodCx1bCl9dmFyIE1hPXRlKEV2ZW50KSxaYT10ZShDdXN0b21FdmVudCkseWE9dGUoTW91c2VFdmVudCkscGw9T2JqZWN0LmdldE93blByb3BlcnR5''@;'; put 'put ''TmFtZXMoRWxlbWVudC5wcm90b3R5cGUpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4ib24iPT09dC5zdWJzdHJpbmcoMCwyKX0pLGZsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKEhUTUxFbGVtZW50LnByb3RvdHlwZSkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiJvbiI9PT10LnN1''@;'; put 'put ''YnN0cmluZygwLDIpfSk7ZnVuY3Rpb24gZ2wodCl7cmV0dXJue3NldDpmdW5jdGlvbihpKXt2YXIgbj1xMSh0aGlzKSxzPXQuc3Vic3RyaW5nKDIpO24uVHx8KG4uVD17fSksbi5UW3RdJiZ0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIocyxuLlRbdF0pLHRoaXMuX19zaGFkeV9hZGRFdmVudExp''@;'; put 'put ''c3RlbmVyKHMsaSksbi5UW3RdPWl9LGdldDpmdW5jdGlvbigpe3ZhciBpPWcxKHRoaXMpO3JldHVybiBpJiZpLlQmJmkuVFt0XX0sY29uZmlndXJhYmxlOiEwfX1mdW5jdGlvbiBSMih0LGkpe3JldHVybntpbmRleDp0LGdhOltdLG5hOml9fWZ1bmN0aW9uIFNhKHQsaSxuLHMpe3ZhciBkPTAs''@;'; put 'put ''bT0wLEw9MCxGPTAsRz1NYXRoLm1pbihpLWQscy1tKTtpZigwPT1kJiYwPT1tKXQ6e2ZvcihMPTA7TDxHO0wrKylpZih0W0xdIT09bltMXSlicmVhayB0O0w9R31pZihpPT10Lmxlbmd0aCYmcz09bi5sZW5ndGgpe0Y9dC5sZW5ndGg7Zm9yKHZhciBVPW4ubGVuZ3RoLEs9MDtLPEctTCYmYmEo''@;'; put 'put ''dFstLUZdLG5bLS1VXSk7KUsrKztGPUt9aWYobSs9TCxzLT1GLChpLT1GKS0oZCs9TCk9PTAmJnMtbT09MClyZXR1cm5bXTtpZihkPT1pKXtmb3IoaT1SMihkLDApO208czspaS5nYS5wdXNoKG5bbSsrXSk7cmV0dXJuW2ldfWlmKG09PXMpcmV0dXJuW1IyKGQsaS1kKV07Zm9yKHM9cy0oTD1t''@;'; put 'put ''KSsxLEY9aS0oRz1kKSsxLGk9QXJyYXkocyksVT0wO1U8cztVKyspaVtVXT1BcnJheShGKSxpW1VdWzBdPVU7Zm9yKFU9MDtVPEY7VSsrKWlbMF1bVV09VTtmb3IoVT0xO1U8cztVKyspZm9yKEs9MTtLPEY7SysrKWlmKHRbRytLLTFdPT09bltMK1UtMV0paVtVXVtLXT1pW1UtMV1bSy0xXTtl''@;'; put 'put ''bHNle3ZhciBIMT1pW1UtMV1bS10rMSxRMT1pW1VdW0stMV0rMTtpW1VdW0tdPUgxPFExP0gxOlExfWZvcihzPWlbRz1pLmxlbmd0aC0xXVtMPWlbMF0ubGVuZ3RoLTFdLHQ9W107MDxHfHwwPEw7KTA9PUc/KHQucHVzaCgyKSxMLS0pOjA9PUw/KHQucHVzaCgzKSxHLS0pOihGPWlbRy0xXVtM''@;'; put 'put ''LTFdLChIMT0oVT1pW0ctMV1bTF0pPChLPWlbR11bTC0xXSk/VTxGP1U6RjpLPEY/SzpGKT09Rj8oRj09cz90LnB1c2goMCk6KHQucHVzaCgxKSxzPUYpLEctLSxMLS0pOkgxPT1VPyh0LnB1c2goMyksRy0tLHM9VSk6KHQucHVzaCgyKSxMLS0scz1LKSk7Zm9yKHQucmV2ZXJzZSgpLGk9dm9p''@;'; put 'put ''ZCAwLEc9W10sTD0wO0w8dC5sZW5ndGg7TCsrKXN3aXRjaCh0W0xdKXtjYXNlIDA6aSYmKEcucHVzaChpKSxpPXZvaWQgMCksZCsrLG0rKzticmVhaztjYXNlIDE6aXx8KGk9UjIoZCwwKSksaS5uYSsrLGQrKyxpLmdhLnB1c2goblttXSksbSsrO2JyZWFrO2Nhc2UgMjppfHwoaT1SMihkLDAp''@;'; put 'put ''KSxpLm5hKyssZCsrO2JyZWFrO2Nhc2UgMzppfHwoaT1SMihkLDApKSxpLmdhLnB1c2goblttXSksbSsrfXJldHVybiBpJiZHLnB1c2goaSksR31mdW5jdGlvbiBiYSh0LGkpe3JldHVybiB0PT09aX12YXIgQWw9bjAoe2Rpc3BhdGNoRXZlbnQ6ZGwsYWRkRXZlbnRMaXN0ZW5lcjplZSxyZW1v''@;'; put 'put ''dmVFdmVudExpc3RlbmVyOmxlfSksYWU9bnVsbDtmdW5jdGlvbiBuMigpe3JldHVybiBhZXx8KGFlPXdpbmRvdy5TaGFkeUNTUyYmd2luZG93LlNoYWR5Q1NTLlNjb3BpbmdTaGltKSxhZXx8bnVsbH1mdW5jdGlvbiB2bCh0LGksbil7dmFyIHM9bjIoKTtyZXR1cm4hKCFzfHwiY2xhc3MiIT09''@;'; put 'put ''aXx8KHMuc2V0RWxlbWVudENsYXNzKHQsbiksMCkpfWZ1bmN0aW9uIEhsKHQsaSl7dmFyIG49bjIoKTtuJiZuLnVuc2NvcGVOb2RlKHQsaSl9ZnVuY3Rpb24gQ2wodCxpKXt2YXIgbj1uMigpO2lmKCFuKXJldHVybiEwO2lmKHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05P''@;'; put 'put ''REUpe2ZvcihuPSEwLHQ9dC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dDt0PXQuX19zaGFkeV9uZXh0U2libGluZyluPW4mJkNsKHQsaSk7cmV0dXJuIG59cmV0dXJuIHQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERXx8bi5jdXJyZW50U2NvcGVGb3JOb2RlKHQpPT09aX1mdW5jdGlvbiBhdCh0''@;'; put 'put ''KXtpZih0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUpcmV0dXJuIiI7dmFyIGk9bjIoKTtyZXR1cm4gaT9pLmN1cnJlbnRTY29wZUZvck5vZGUodCk6IiJ9ZnVuY3Rpb24gcmUodCxpKXtpZih0KWZvcih0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUmJmkodCksdD10Ll9fc2hh''@;'; put 'put ''ZHlfZmlyc3RDaGlsZDt0O3Q9dC5fX3NoYWR5X25leHRTaWJsaW5nKXQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmcmUodCxpKX12YXIgbmU9d2luZG93LmRvY3VtZW50LGNlPXkxLmZhLFZsPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoTm9kZS5wcm90b3R5cGUsImlz''@;'; put 'put ''Q29ubmVjdGVkIiksbWw9VmwmJlZsLmdldDtmdW5jdGlvbiBvZSh0KXtmb3IodmFyIGk7aT10Ll9fc2hhZHlfZmlyc3RDaGlsZDspdC5fX3NoYWR5X3JlbW92ZUNoaWxkKGkpfWZ1bmN0aW9uIE1sKHQpe3ZhciBpPWcxKHQpO2lmKGkmJnZvaWQgMCE9PWkucWEpZm9yKGk9dC5fX3NoYWR5X2Zp''@;'; put 'put ''cnN0Q2hpbGQ7aTtpPWkuX19zaGFkeV9uZXh0U2libGluZylNbChpKTsodD1nMSh0KSkmJih0LnFhPXZvaWQgMCl9ZnVuY3Rpb24gWmwodCl7dmFyIGk9dDtpZih0JiYic2xvdCI9PT10LmxvY2FsTmFtZSl7dmFyIG49ZzEodCk7KG49biYmbi5hYSkmJihpPW4ubGVuZ3RoP25bMF06WmwodC5f''@;'; put 'put ''X3NoYWR5X25leHRTaWJsaW5nKSl9cmV0dXJuIGl9ZnVuY3Rpb24geWwodCxpLG4pe2lmKHQ9KHQ9ZzEodCkpJiZ0LmVhKXtpZihpKWlmKGkubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpZm9yKHZhciBzPTAsZD1pLmNoaWxkTm9kZXMubGVuZ3RoO3M8ZDtzKyspdC5h''@;'; put 'put ''ZGRlZE5vZGVzLnB1c2goaS5jaGlsZE5vZGVzW3NdKTtlbHNlIHQuYWRkZWROb2Rlcy5wdXNoKGkpO24mJnQucmVtb3ZlZE5vZGVzLnB1c2gobiksZnVuY3Rpb24gc2EodCl7dC5nfHwodC5nPSEwLEQwKGZ1bmN0aW9uKCl7dC5mbHVzaCgpfSkpfSh0KX19dmFyIHJ0PW4wKHtnZXQgcGFyZW50''@;'; put 'put ''Tm9kZSgpe3ZhciB0PWcxKHRoaXMpO3JldHVybiB2b2lkIDAhPT0odD10JiZ0LnBhcmVudE5vZGUpP3Q6dGhpcy5fX3NoYWR5X25hdGl2ZV9wYXJlbnROb2RlfSxnZXQgZmlyc3RDaGlsZCgpe3ZhciB0PWcxKHRoaXMpO3JldHVybiB2b2lkIDAhPT0odD10JiZ0LmZpcnN0Q2hpbGQpP3Q6dGhp''@;'; put 'put ''cy5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkfSxnZXQgbGFzdENoaWxkKCl7dmFyIHQ9ZzEodGhpcyk7cmV0dXJuIHZvaWQgMCE9PSh0PXQmJnQubGFzdENoaWxkKT90OnRoaXMuX19zaGFkeV9uYXRpdmVfbGFzdENoaWxkfSxnZXQgbmV4dFNpYmxpbmcoKXt2YXIgdD1nMSh0aGlzKTtyZXR1''@;'; put 'put ''cm4gdm9pZCAwIT09KHQ9dCYmdC5uZXh0U2libGluZyk/dDp0aGlzLl9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nfSxnZXQgcHJldmlvdXNTaWJsaW5nKCl7dmFyIHQ9ZzEodGhpcyk7cmV0dXJuIHZvaWQgMCE9PSh0PXQmJnQucHJldmlvdXNTaWJsaW5nKT90OnRoaXMuX19zaGFkeV9uYXRp''@;'; put 'put ''dmVfcHJldmlvdXNTaWJsaW5nfSxnZXQgY2hpbGROb2Rlcygpe2lmKEsxKHRoaXMpKXt2YXIgdD1nMSh0aGlzKTtpZighdC5jaGlsZE5vZGVzKXt0LmNoaWxkTm9kZXM9W107Zm9yKHZhciBpPXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpdC5jaGls''@;'; put 'put ''ZE5vZGVzLnB1c2goaSl9dmFyIG49dC5jaGlsZE5vZGVzfWVsc2Ugbj10aGlzLl9fc2hhZHlfbmF0aXZlX2NoaWxkTm9kZXM7cmV0dXJuIG4uaXRlbT1mdW5jdGlvbihzKXtyZXR1cm4gbltzXX0sbn0sZ2V0IHBhcmVudEVsZW1lbnQoKXt2YXIgdD1nMSh0aGlzKTtyZXR1cm4odD10JiZ0LnBh''@;'; put 'put ''cmVudE5vZGUpJiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREUmJih0PW51bGwpLHZvaWQgMCE9PXQ/dDp0aGlzLl9fc2hhZHlfbmF0aXZlX3BhcmVudEVsZW1lbnR9LGdldCBpc0Nvbm5lY3RlZCgpe2lmKG1sJiZtbC5jYWxsKHRoaXMpKXJldHVybiEwO2lmKHRoaXMubm9kZVR5cGU9''@;'; put 'put ''PU5vZGUuRE9DVU1FTlRfRlJBR01FTlRfTk9ERSlyZXR1cm4hMTt2YXIgdD10aGlzLm93bmVyRG9jdW1lbnQ7aWYobnVsbD09PXR8fHUwKHQsdGhpcykpcmV0dXJuITA7Zm9yKHQ9dGhpczt0JiYhKHQgaW5zdGFuY2VvZiBEb2N1bWVudCk7KXQ9dC5fX3NoYWR5X3BhcmVudE5vZGV8fChlMCh0''@;'; put 'put ''KT90Lmhvc3Q6dm9pZCAwKTtyZXR1cm4hISh0JiZ0IGluc3RhbmNlb2YgRG9jdW1lbnQpfSxnZXQgdGV4dENvbnRlbnQoKXtpZihLMSh0aGlzKSl7Zm9yKHZhciB0PVtdLGk9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7aTtpPWkuX19zaGFkeV9uZXh0U2libGluZylpLm5vZGVUeXBlIT09Tm9k''@;'; put 'put ''ZS5DT01NRU5UX05PREUmJnQucHVzaChpLl9fc2hhZHlfdGV4dENvbnRlbnQpO3JldHVybiB0LmpvaW4oIiIpfXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3RleHRDb250ZW50fSxzZXQgdGV4dENvbnRlbnQodCl7c3dpdGNoKG51bGw9PXQmJih0PSIiKSx0aGlzLm5vZGVUeXBlKXtjYXNl''@;'; put 'put ''IE5vZGUuRUxFTUVOVF9OT0RFOmNhc2UgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFOmlmKCFLMSh0aGlzKSYmeTEuSCl7dmFyIGk9dGhpcy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7KGkhPXRoaXMuX19zaGFkeV9sYXN0Q2hpbGR8fGkmJmkubm9kZVR5cGUhPU5vZGUuVEVYVF9OT0RFKSYmb2Uo''@;'; put 'put ''dGhpcyksdGhpcy5fX3NoYWR5X25hdGl2ZV90ZXh0Q29udGVudD10fWVsc2Ugb2UodGhpcyksKDA8dC5sZW5ndGh8fHRoaXMubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSkmJnRoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodCkpO2JyZWFrO2Rl''@;'; put 'put ''ZmF1bHQ6dGhpcy5ub2RlVmFsdWU9dH19LGluc2VydEJlZm9yZTpmdW5jdGlvbih0LGkpe2lmKHRoaXMub3duZXJEb2N1bWVudCE9PW5lJiZ0Lm93bmVyRG9jdW1lbnQhPT1uZSlyZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUodCxpKSx0O2lmKHQ9PT10aGlzKXRocm93''@;'; put 'put ''IEVycm9yKCJGYWlsZWQgdG8gZXhlY3V0ZSAnYXBwZW5kQ2hpbGQnIG9uICdOb2RlJzogVGhlIG5ldyBjaGlsZCBlbGVtZW50IGNvbnRhaW5zIHRoZSBwYXJlbnQuIik7aWYoaSl7dmFyIG49ZzEoaSk7aWYodm9pZCAwIT09KG49biYmbi5wYXJlbnROb2RlKSYmbiE9PXRoaXN8fHZvaWQgMD09''@;'; put 'put ''PW4mJmkuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSE9PXRoaXMpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBleGVjdXRlICdpbnNlcnRCZWZvcmUnIG9uICdOb2RlJzogVGhlIG5vZGUgYmVmb3JlIHdoaWNoIHRoZSBuZXcgbm9kZSBpcyB0byBiZSBpbnNlcnRlZCBpcyBub3QgYSBjaGlsZCBv''@;'; put 'put ''ZiB0aGlzIG5vZGUuIil9aWYoaT09PXQpcmV0dXJuIHQ7eWwodGhpcyx0KTt2YXIgcz1bXSxkPShuPW0yKHRoaXMpKT9uLmhvc3QubG9jYWxOYW1lOmF0KHRoaXMpLG09dC5fX3NoYWR5X3BhcmVudE5vZGU7aWYobSl7dmFyIEw9YXQodCksRj0hIW58fCFtMih0KXx8Y2UmJnZvaWQgMCE9PXRo''@;'; put 'put ''aXMuX19ub0luc2VydGlvblBvaW50O20uX19zaGFkeV9yZW1vdmVDaGlsZCh0LEYpfW09ITA7dmFyIEc9KCFjZXx8dm9pZCAwPT09dC5fX25vSW5zZXJ0aW9uUG9pbnQmJnZvaWQgMD09PXRoaXMuX19ub0luc2VydGlvblBvaW50KSYmIUNsKHQsZCksVT1uJiYhdC5fX25vSW5zZXJ0aW9uUG9p''@;'; put 'put ''bnQmJighY2V8fHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpO3JldHVybihVfHxHKSYmKEcmJihMPUx8fGF0KHQpKSxyZSh0LGZ1bmN0aW9uKEspe2lmKFUmJiJzbG90Ij09PUsubG9jYWxOYW1lJiZzLnB1c2goSyksRyl7dmFyIEgxPUw7bjIoKSYmKEgxJiZIbChL''@;'; put 'put ''LEgxKSwoSDE9bjIoKSkmJkgxLnNjb3BlTm9kZShLLGQpKX19KSkscy5sZW5ndGgmJih6bChuKSxuLmkucHVzaC5hcHBseShuLmksYyhzKSkscTAobikpLEsxKHRoaXMpJiYoZnVuY3Rpb24ga2EodCxpLG4pe290KGksMik7dmFyIHM9cTEoaSk7aWYodm9pZCAwIT09cy5maXJzdENoaWxkJiYo''@;'; put 'put ''cy5jaGlsZE5vZGVzPW51bGwpLHQubm9kZVR5cGU9PT1Ob2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUpZm9yKHQ9dC5fX3NoYWR5X25hdGl2ZV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmF0aXZlX25leHRTaWJsaW5nKUlsKHQsaSxzLG4pO2Vsc2UgSWwodCxpLHMsbil9KHQsdGhpcyxp''@;'; put 'put ''KSwoRj1nMSh0aGlzKSkucm9vdD8obT0hMSxKMCh0aGlzKSYmcTAoRi5yb290KSk6biYmInNsb3QiPT09dGhpcy5sb2NhbE5hbWUmJihtPSExLHEwKG4pKSksbT8obj1lMCh0aGlzKT90aGlzLmhvc3Q6dGhpcyxpPyhpPVpsKGkpLG4uX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKHQsaSkp''@;'; put 'put ''Om4uX19zaGFkeV9uYXRpdmVfYXBwZW5kQ2hpbGQodCkpOnQub3duZXJEb2N1bWVudCE9PXRoaXMub3duZXJEb2N1bWVudCYmdGhpcy5vd25lckRvY3VtZW50LmFkb3B0Tm9kZSh0KSx0fSxhcHBlbmRDaGlsZDpmdW5jdGlvbih0KXtpZih0aGlzIT10fHwhZTAodCkpcmV0dXJuIHRoaXMuX19z''@;'; put 'put ''aGFkeV9pbnNlcnRCZWZvcmUodCl9LHJlbW92ZUNoaWxkOmZ1bmN0aW9uKHQsaSl7aWYoaT12b2lkIDAhPT1pJiZpLHRoaXMub3duZXJEb2N1bWVudCE9PW5lKXJldHVybiB0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKHQpO2lmKHQuX19zaGFkeV9wYXJlbnROb2RlIT09dGhpcyl0''@;'; put 'put ''aHJvdyBFcnJvcigiVGhlIG5vZGUgdG8gYmUgcmVtb3ZlZCBpcyBub3QgYSBjaGlsZCBvZiB0aGlzIG5vZGU6ICIrdCk7eWwodGhpcyxudWxsLHQpO3ZhciBuPW0yKHQpLHM9biYmZnVuY3Rpb24gQmEodCxpKXtpZih0Lmcpe3B0KHQpO3ZhciBzLG49dC5oO2ZvcihzIGluIG4pZm9yKHZhciBk''@;'; put 'put ''PW5bc10sbT0wO208ZC5sZW5ndGg7bSsrKXt2YXIgTD1kW21dO2lmKHgwKGksTCkpe2Quc3BsaWNlKG0sMSk7dmFyIEY9dC5nLmluZGV4T2YoTCk7aWYoMDw9RiYmKHQuZy5zcGxpY2UoRiwxKSwoRj1nMShMLl9fc2hhZHlfcGFyZW50Tm9kZSkpJiZGLmlhJiZGLmlhLS0pLG0tLSxGPShMPWcx''@;'; put 'put ''KEwpKS5hYSlmb3IodmFyIEc9MDtHPEYubGVuZ3RoO0crKyl7dmFyIFU9RltHXSxLPVUuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZTtLJiZLLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKFUpfUwuYWE9W10sTC5hc3NpZ25lZE5vZGVzPVtdLEY9ITB9fXJldHVybiBGfX0obix0KSxkPWcx''@;'; put 'put ''KHRoaXMpO2lmKEsxKHRoaXMpJiYoZnVuY3Rpb24gT2EodCxpKXt2YXIgbj1xMSh0KTt0PT09KGk9cTEoaSkpLmZpcnN0Q2hpbGQmJihpLmZpcnN0Q2hpbGQ9bi5uZXh0U2libGluZyksdD09PWkubGFzdENoaWxkJiYoaS5sYXN0Q2hpbGQ9bi5wcmV2aW91c1NpYmxpbmcpO3ZhciBzPW4ubmV4''@;'; put 'put ''dFNpYmxpbmc7KHQ9bi5wcmV2aW91c1NpYmxpbmcpJiYocTEodCkubmV4dFNpYmxpbmc9cykscyYmKHExKHMpLnByZXZpb3VzU2libGluZz10KSxuLnBhcmVudE5vZGU9bi5wcmV2aW91c1NpYmxpbmc9bi5uZXh0U2libGluZz12b2lkIDAsdm9pZCAwIT09aS5jaGlsZE5vZGVzJiYoaS5jaGls''@;'; put 'put ''ZE5vZGVzPW51bGwpfSh0LHRoaXMpLEowKHRoaXMpKSl7cTAoZC5yb290KTt2YXIgbT0hMH1pZihuMigpJiYhaSYmbiYmdC5ub2RlVHlwZSE9PU5vZGUuVEVYVF9OT0RFKXt2YXIgTD1hdCh0KTtyZSh0LGZ1bmN0aW9uKEYpe0hsKEYsTCl9KX1yZXR1cm4gTWwodCksbiYmKChpPSJzbG90Ij09''@;'; put 'put ''PXRoaXMubG9jYWxOYW1lKSYmKG09ITApLChzfHxpKSYmcTAobikpLG18fChtPWUwKHRoaXMpP3RoaXMuaG9zdDp0aGlzLCghZC5yb290JiYic2xvdCIhPT10LmxvY2FsTmFtZXx8bT09PXQuX19zaGFkeV9uYXRpdmVfcGFyZW50Tm9kZSkmJm0uX19zaGFkeV9uYXRpdmVfcmVtb3ZlQ2hpbGQo''@;'; put 'put ''dCkpLHR9LHJlcGxhY2VDaGlsZDpmdW5jdGlvbih0LGkpe3JldHVybiB0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKHQsaSksdGhpcy5fX3NoYWR5X3JlbW92ZUNoaWxkKGkpLHR9LGNsb25lTm9kZTpmdW5jdGlvbih0KXtpZigidGVtcGxhdGUiPT10aGlzLmxvY2FsTmFtZSlyZXR1cm4gdGhp''@;'; put 'put ''cy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUodCk7dmFyIGk9dGhpcy5fX3NoYWR5X25hdGl2ZV9jbG9uZU5vZGUoITEpO2lmKHQmJmkubm9kZVR5cGUhPT1Ob2RlLkFUVFJJQlVURV9OT0RFKXt0PXRoaXMuX19zaGFkeV9maXJzdENoaWxkO2Zvcih2YXIgbjt0O3Q9dC5fX3NoYWR5X25leHRT''@;'; put 'put ''aWJsaW5nKW49dC5fX3NoYWR5X2Nsb25lTm9kZSghMCksaS5fX3NoYWR5X2FwcGVuZENoaWxkKG4pfXJldHVybiBpfSxnZXRSb290Tm9kZTpmdW5jdGlvbih0KXtpZih0aGlzJiZ0aGlzLm5vZGVUeXBlKXt2YXIgaT1xMSh0aGlzKSxuPWkucWE7cmV0dXJuIHZvaWQgMD09PW4mJihlMCh0aGlz''@;'; put 'put ''KT9pLnFhPW49dGhpczoobj0obj10aGlzLl9fc2hhZHlfcGFyZW50Tm9kZSk/bi5fX3NoYWR5X2dldFJvb3ROb2RlKHQpOnRoaXMsZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Ll9fc2hhZHlfbmF0aXZlX2NvbnRhaW5zKHRoaXMpJiYoaS5xYT1uKSkpLG59fSxjb250YWluczpmdW5jdGlvbih0''@;'; put 'put ''KXtyZXR1cm4geDAodGhpcyx0KX19KSx6Mj1uMCh7Z2V0IGFzc2lnbmVkU2xvdCgpe3ZhciB0PXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO3JldHVybih0PXQmJnQuX19zaGFkeV9zaGFkb3dSb290KSYmdXQodCksKHQ9ZzEodGhpcykpJiZ0LmFzc2lnbmVkU2xvdHx8bnVsbH19KTtmdW5jdGlv''@;'; put 'put ''biBzZSh0LGksbil7dmFyIHM9W107cmV0dXJuIExsKHQsaSxuLHMpLHN9ZnVuY3Rpb24gTGwodCxpLG4scyl7Zm9yKHQ9dC5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dDt0PXQuX19zaGFkeV9uZXh0U2libGluZyl7dmFyIGQ7aWYoZD10Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREUpe3ZhciBt''@;'; put 'put ''PWksTD1uLEY9cyxHPW0oZD10KTtHJiZGLnB1c2goZCksTCYmTChHKT9kPUc6KExsKGQsbSxMLEYpLGQ9dm9pZCAwKX1pZihkKWJyZWFrfX12YXIgbnQ9e2dldCBmaXJzdEVsZW1lbnRDaGlsZCgpe3ZhciB0PWcxKHRoaXMpO2lmKHQmJnZvaWQgMCE9PXQuZmlyc3RDaGlsZCl7Zm9yKHQ9dGhp''@;'; put 'put ''cy5fX3NoYWR5X2ZpcnN0Q2hpbGQ7dCYmdC5ub2RlVHlwZSE9PU5vZGUuRUxFTUVOVF9OT0RFOyl0PXQuX19zaGFkeV9uZXh0U2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9maXJzdEVsZW1lbnRDaGlsZH0sZ2V0IGxhc3RFbGVtZW50Q2hpbGQoKXt2YXIgdD1n''@;'; put 'put ''MSh0aGlzKTtpZih0JiZ2b2lkIDAhPT10Lmxhc3RDaGlsZCl7Zm9yKHQ9dGhpcy5fX3NoYWR5X2xhc3RDaGlsZDt0JiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVNRU5UX05PREU7KXQ9dC5fX3NoYWR5X3ByZXZpb3VzU2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9s''@;'; put 'put ''YXN0RWxlbWVudENoaWxkfSxnZXQgY2hpbGRyZW4oKXtyZXR1cm4gSzEodGhpcyk/QjAoQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKHYyKHRoaXMpLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5UX05PREV9KSk6dGhpcy5fX3NoYWR5X25hdGl2ZV9jaGls''@;'; put 'put ''ZHJlbn0sZ2V0IGNoaWxkRWxlbWVudENvdW50KCl7dmFyIHQ9dGhpcy5fX3NoYWR5X2NoaWxkcmVuO3JldHVybiB0P3QubGVuZ3RoOjB9fSxDMj1uMCgobnQuYXBwZW5kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tu''@;'; put 'put ''XTt0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKEgyLmFwcGx5KG51bGwsYyhpKSksbnVsbCl9LG50LnByZXBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3RoaXMuX19zaGFkeV9pbnNlcnRCZWZvcmUoSDIu''@;'; put 'put ''YXBwbHkobnVsbCxjKGkpKSx0aGlzLl9fc2hhZHlfZmlyc3RDaGlsZCl9LG50LnJlcGxhY2VDaGlsZHJlbj1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07Zm9yKDtudWxsIT09KG49dGhpcy5fX3NoYWR5X2ZpcnN0''@;'; put 'put ''Q2hpbGQpOyl0aGlzLl9fc2hhZHlfcmVtb3ZlQ2hpbGQobik7dGhpcy5fX3NoYWR5X2luc2VydEJlZm9yZShIMi5hcHBseShudWxsLGMoaSkpLG51bGwpfSxudCkpLF9hPW4wKHtxdWVyeVNlbGVjdG9yOmZ1bmN0aW9uKHQpe3JldHVybiBzZSh0aGlzLGZ1bmN0aW9uKGkpe3JldHVybiBPMi5j''@;'; put 'put ''YWxsKGksdCl9LGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pWzBdfHxudWxsfSxxdWVyeVNlbGVjdG9yQWxsOmZ1bmN0aW9uKHQsaSl7aWYoaSl7aT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0aGlzLl9fc2hhZHlfbmF0aXZlX3F1ZXJ5U2VsZWN0b3JBbGwodCkpO3ZhciBuPXRoaXMuX19z''@;'; put 'put ''aGFkeV9nZXRSb290Tm9kZSgpO3JldHVybiBCMChpLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk9PW59KSl9cmV0dXJuIEIwKHNlKHRoaXMsZnVuY3Rpb24ocyl7cmV0dXJuIE8yLmNhbGwocyx0KX0pKX19KSxTbD15MS5mYSYmIXkxLko/QnQoe30s''@;'; put 'put ''QzIpOkMyO0J0KEMyLF9hKTt2YXIgYmw9bjAoe2FmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtpZihudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5vZGUpKXt2YXIgcz10aGlzLl9fc2hhZHlfbmV4''@;'; put 'put ''dFNpYmxpbmc7bi5fX3NoYWR5X2luc2VydEJlZm9yZShIMi5hcHBseShudWxsLGMoaSkpLHMpfX0sYmVmb3JlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5v''@;'; put 'put ''ZGUpJiZuLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKEgyLmFwcGx5KG51bGwsYyhpKSksdGhpcyl9LHJlbW92ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO251bGwhPT10JiZ0Ll9fc2hhZHlfcmVtb3ZlQ2hpbGQodGhpcyl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKHQp''@;'; put 'put ''e2Zvcih2YXIgaT1bXSxuPTA7bjxhcmd1bWVudHMubGVuZ3RoOysrbilpW25dPWFyZ3VtZW50c1tuXTtpZihudWxsIT09KG49dGhpcy5fX3NoYWR5X3BhcmVudE5vZGUpKXt2YXIgcz10aGlzLl9fc2hhZHlfbmV4dFNpYmxpbmc7bi5fX3NoYWR5X3JlbW92ZUNoaWxkKHRoaXMpLG4uX19zaGFk''@;'; put 'put ''eV9pbnNlcnRCZWZvcmUoSDIuYXBwbHkobnVsbCxjKGkpKSxzKX19fSksX2w9d2luZG93LmRvY3VtZW50O2Z1bmN0aW9uIHdsKHQsaSl7aWYoInNsb3QiPT09aSlKMCh0PXQuX19zaGFkeV9wYXJlbnROb2RlKSYmcTAoZzEodCkucm9vdCk7ZWxzZSBpZigic2xvdCI9PT10LmxvY2FsTmFtZSYm''@;'; put 'put ''Im5hbWUiPT09aSYmKGk9bTIodCkpKXtpZihpLmcpe3B0KGkpO3ZhciBuPXQuUWEscz1VbCh0KTtpZihzIT09bil7dmFyIGQ9KG49aS5oW25dKS5pbmRleE9mKHQpOzA8PWQmJm4uc3BsaWNlKGQsMSksKG49aS5oW3NdfHwoaS5oW3NdPVtdKSkucHVzaCh0KSwxPG4ubGVuZ3RoJiYoaS5oW3Nd''@;'; put 'put ''PVdsKG4pKX19cTAoaSl9fXZhciBjdD1uMCh7Z2V0IHByZXZpb3VzRWxlbWVudFNpYmxpbmcoKXt2YXIgdD1nMSh0aGlzKTtpZih0JiZ2b2lkIDAhPT10LnByZXZpb3VzU2libGluZyl7Zm9yKHQ9dGhpcy5fX3NoYWR5X3ByZXZpb3VzU2libGluZzt0JiZ0Lm5vZGVUeXBlIT09Tm9kZS5FTEVN''@;'; put 'put ''RU5UX05PREU7KXQ9dC5fX3NoYWR5X3ByZXZpb3VzU2libGluZztyZXR1cm4gdH1yZXR1cm4gdGhpcy5fX3NoYWR5X25hdGl2ZV9wcmV2aW91c0VsZW1lbnRTaWJsaW5nfSxnZXQgbmV4dEVsZW1lbnRTaWJsaW5nKCl7dmFyIHQ9ZzEodGhpcyk7aWYodCYmdm9pZCAwIT09dC5uZXh0U2libGlu''@;'; put 'put ''Zyl7Zm9yKHQ9dGhpcy5fX3NoYWR5X25leHRTaWJsaW5nO3QmJnQubm9kZVR5cGUhPT1Ob2RlLkVMRU1FTlRfTk9ERTspdD10Ll9fc2hhZHlfbmV4dFNpYmxpbmc7cmV0dXJuIHR9cmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfbmV4dEVsZW1lbnRTaWJsaW5nfSxnZXQgc2xvdCgpe3JldHVy''@;'; put 'put ''biB0aGlzLmdldEF0dHJpYnV0ZSgic2xvdCIpfSxzZXQgc2xvdCh0KXt0aGlzLl9fc2hhZHlfc2V0QXR0cmlidXRlKCJzbG90Iix0KX0sZ2V0IGNsYXNzTmFtZSgpe3JldHVybiB0aGlzLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9LHNldCBjbGFzc05hbWUodCl7dGhpcy5fX3NoYWR5X3Nl''@;'; put 'put ''dEF0dHJpYnV0ZSgiY2xhc3MiLHQpfSxzZXRBdHRyaWJ1dGU6ZnVuY3Rpb24odCxpKXt0aGlzLm93bmVyRG9jdW1lbnQhPT1fbD90aGlzLl9fc2hhZHlfbmF0aXZlX3NldEF0dHJpYnV0ZSh0LGkpOnZsKHRoaXMsdCxpKXx8KHRoaXMuX19zaGFkeV9uYXRpdmVfc2V0QXR0cmlidXRlKHQsaSks''@;'; put 'put ''d2wodGhpcyx0KSl9LHJlbW92ZUF0dHJpYnV0ZTpmdW5jdGlvbih0KXt0aGlzLm93bmVyRG9jdW1lbnQhPT1fbD90aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZSh0KTp2bCh0aGlzLHQsIiIpPyIiPT09dGhpcy5nZXRBdHRyaWJ1dGUodCkmJnRoaXMuX19zaGFkeV9uYXRpdmVf''@;'; put 'put ''cmVtb3ZlQXR0cmlidXRlKHQpOih0aGlzLl9fc2hhZHlfbmF0aXZlX3JlbW92ZUF0dHJpYnV0ZSh0KSx3bCh0aGlzLHQpKX19KTt5MS5mYXx8cGwuZm9yRWFjaChmdW5jdGlvbih0KXtjdFt0XT1nbCh0KX0pO3ZhciB4bD1uMCh7YXR0YWNoU2hhZG93OmZ1bmN0aW9uKHQpe2lmKCF0aGlzKXRo''@;'; put 'put ''cm93IEVycm9yKCJNdXN0IHByb3ZpZGUgYSBob3N0LiIpO2lmKCF0KXRocm93IEVycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cy4iKTtpZih0LnNoYWR5VXBncmFkZUZyYWdtZW50JiYheTEuTmEpe3ZhciBpPXQuc2hhZHlVcGdyYWRlRnJhZ21lbnQ7aWYoaS5fX3Byb3RvX189U2hhZG93Um9v''@;'; put 'put ''dC5wcm90b3R5cGUsQmwoaSx0aGlzLHQpLHN0KGksaSksdD1pLl9fbm9JbnNlcnRpb25Qb2ludD9udWxsOmkucXVlcnlTZWxlY3RvckFsbCgic2xvdCIpLGkuX19ub0luc2VydGlvblBvaW50PXZvaWQgMCx0JiZ0Lmxlbmd0aCl7dmFyIG49aTt6bChuKSxuLmkucHVzaC5hcHBseShuLmksYyh0''@;'; put 'put ''KSkscTAoaSl9aS5ob3N0Ll9fc2hhZHlfbmF0aXZlX2FwcGVuZENoaWxkKGkpfWVsc2UgaT1uZXcgZHQoT2wsdGhpcyx0KTtyZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9aX0sZ2V0IHNoYWRvd1Jvb3QoKXt2YXIgdD1nMSh0aGlzKTtyZXR1cm4gdCYmdC5nYnx8bnVsbH19KTtCdChjdCx4''@;'; put 'put ''bCk7dmFyIGhlPWRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiaW5lcnQiKSxkZT1uMCh7Z2V0IGlubmVySFRNTCgpe3JldHVybiBLMSh0aGlzKT9SdCgidGVtcGxhdGUiPT09dGhpcy5sb2NhbE5hbWU/dGhpcy5jb250ZW50OnRoaXMsdjIpOnRoaXMuX19zaGFk''@;'; put 'put ''eV9uYXRpdmVfaW5uZXJIVE1MfSxzZXQgaW5uZXJIVE1MKHQpe2lmKCJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZSl0aGlzLl9fc2hhZHlfbmF0aXZlX2lubmVySFRNTD10O2Vsc2V7b2UodGhpcyk7dmFyIGk9dGhpcy5sb2NhbE5hbWV8fCJkaXYiO2ZvcihpPXRoaXMubmFtZXNwYWNlVVJJ''@;'; put 'put ''JiZ0aGlzLm5hbWVzcGFjZVVSSSE9PWhlLm5hbWVzcGFjZVVSST9oZS5jcmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkksaSk6aGUuY3JlYXRlRWxlbWVudChpKSx5MS5IP2kuX19zaGFkeV9uYXRpdmVfaW5uZXJIVE1MPXQ6aS5pbm5lckhUTUw9dDt0PWkuX19zaGFkeV9maXJzdENo''@;'; put 'put ''aWxkOyl0aGlzLl9fc2hhZHlfaW5zZXJ0QmVmb3JlKHQpfX19KSxEbD1uMCh7Ymx1cjpmdW5jdGlvbigpe3ZhciB0PWcxKHRoaXMpOyh0PSh0PXQmJnQucm9vdCkmJnQuYWN0aXZlRWxlbWVudCk/dC5fX3NoYWR5X2JsdXIoKTp0aGlzLl9fc2hhZHlfbmF0aXZlX2JsdXIoKX19KTt5MS5mYXx8''@;'; put 'put ''ZmwuZm9yRWFjaChmdW5jdGlvbih0KXtEbFt0XT1nbCh0KX0pO3ZhciBFbD1uMCh7YXNzaWduZWROb2RlczpmdW5jdGlvbih0KXtpZigic2xvdCI9PT10aGlzLmxvY2FsTmFtZSl7dmFyIGk9dGhpcy5fX3NoYWR5X2dldFJvb3ROb2RlKCk7cmV0dXJuIGkmJmUwKGkpJiZ1dChpKSwoaT1nMSh0''@;'; put 'put ''aGlzKSkmJih0JiZ0LmZsYXR0ZW4/aS5hYTppLmFzc2lnbmVkTm9kZXMpfHxbXX19LGFkZEV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4pe2lmKCJzbG90IiE9PXRoaXMubG9jYWxOYW1lfHwic2xvdGNoYW5nZSI9PT10KWVlLmNhbGwodGhpcyx0LGksbik7ZWxzZXsib2JqZWN0IiE9dHlw''@;'; put 'put ''ZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0pO3ZhciBzPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKCFzKXRocm93IEVycm9yKCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYCIpO24uVT10aGlzLHMuX19zaGFkeV9hZGRF''@;'; put 'put ''dmVudExpc3RlbmVyKHQsaSxuKX19LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4pe2lmKCJzbG90IiE9PXRoaXMubG9jYWxOYW1lfHwic2xvdGNoYW5nZSI9PT10KWxlLmNhbGwodGhpcyx0LGksbik7ZWxzZXsib2JqZWN0IiE9dHlwZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0p''@;'; put 'put ''O3ZhciBzPXRoaXMuX19zaGFkeV9wYXJlbnROb2RlO2lmKCFzKXRocm93IEVycm9yKCJTaGFkeURPTSBjYW5ub3QgYXR0YWNoIGV2ZW50IHRvIHNsb3QgdW5sZXNzIGl0IGhhcyBhIGBwYXJlbnROb2RlYCIpO24uVT10aGlzLHMuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX19''@;'; put 'put ''fSksdWU9bjAoe2dldEVsZW1lbnRCeUlkOmZ1bmN0aW9uKHQpe3JldHVybiIiPT09dD9udWxsOnNlKHRoaXMsZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PXR9LGZ1bmN0aW9uKGkpe3JldHVybiEhaX0pWzBdfHxudWxsfX0pO2Z1bmN0aW9uIHdhKHQsaSl7Zm9yKHZhciBuO2kmJiF0Lmhhcyhu''@;'; put 'put ''PWkuX19zaGFkeV9nZXRSb290Tm9kZSgpKTspaT1uLmhvc3Q7cmV0dXJuIGl9dmFyIERhPSJfX3NoYWR5X25hdGl2ZV8iK08wKCkscGU9bjAoe2dldCBhY3RpdmVFbGVtZW50KCl7dmFyIHQ9eTEuSD9kb2N1bWVudC5fX3NoYWR5X25hdGl2ZV9hY3RpdmVFbGVtZW50OmRvY3VtZW50LmFjdGl2''@;'; put 'put ''ZUVsZW1lbnQ7aWYoIXR8fCF0Lm5vZGVUeXBlKXJldHVybiBudWxsO3ZhciBpPSEhZTAodGhpcyk7aWYoISh0aGlzPT09ZG9jdW1lbnR8fGkmJnRoaXMuaG9zdCE9PXQmJnRoaXMuaG9zdC5fX3NoYWR5X25hdGl2ZV9jb250YWlucyh0KSkpcmV0dXJuIG51bGw7Zm9yKGk9bTIodCk7aSYmaSE9''@;'; put 'put ''PXRoaXM7KWk9bTIodD1pLmhvc3QpO3JldHVybiB0aGlzPT09ZG9jdW1lbnQ/aT9udWxsOnQ6aT09PXRoaXM/dDpudWxsfSxlbGVtZW50c0Zyb21Qb2ludDpmdW5jdGlvbih0LGkpe3Q9W10uc2xpY2UuY2FsbChkb2N1bWVudFtEYV0odCxpKSksaT1mdW5jdGlvbiB4YSh0KXt2YXIgaT1uZXcg''@;'; put 'put ''U2V0O2ZvcihpLmFkZCh0KTtlMCh0KSYmdC5ob3N0Oyl0PXQuaG9zdC5fX3NoYWR5X2dldFJvb3ROb2RlKCksaS5hZGQodCk7cmV0dXJuIGl9KHRoaXMpO2Zvcih2YXIgbj1uZXcgU2V0LHM9MDtzPHQubGVuZ3RoO3MrKyluLmFkZCh3YShpLHRbc10pKTt2YXIgZD1bXTtyZXR1cm4gbi5mb3JF''@;'; put 'put ''YWNoKGZ1bmN0aW9uKG0pe3JldHVybiBkLnB1c2gobSl9KSxkfSxlbGVtZW50RnJvbVBvaW50OmZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMuX19zaGFkeV9lbGVtZW50c0Zyb21Qb2ludCh0LGkpWzBdfHxudWxsfX0pLEVhPXdpbmRvdy5kb2N1bWVudCxUYT1uMCh7aW1wb3J0Tm9kZTpmdW5j''@;'; put 'put ''dGlvbih0LGkpe2lmKHQub3duZXJEb2N1bWVudCE9PUVhfHwidGVtcGxhdGUiPT09dC5sb2NhbE5hbWUpcmV0dXJuIHRoaXMuX19zaGFkeV9uYXRpdmVfaW1wb3J0Tm9kZSh0LGkpO3ZhciBuPXRoaXMuX19zaGFkeV9uYXRpdmVfaW1wb3J0Tm9kZSh0LCExKTtpZihpKWZvcih0PXQuX19zaGFk''@;'; put 'put ''eV9maXJzdENoaWxkO3Q7dD10Ll9fc2hhZHlfbmV4dFNpYmxpbmcpaT10aGlzLl9fc2hhZHlfaW1wb3J0Tm9kZSh0LCEwKSxuLl9fc2hhZHlfYXBwZW5kQ2hpbGQoaSk7cmV0dXJuIG59fSksVGw9bjAoe2Rpc3BhdGNoRXZlbnQ6ZGwsYWRkRXZlbnRMaXN0ZW5lcjplZS5iaW5kKHdpbmRvdyks''@;'; put 'put ''cmVtb3ZlRXZlbnRMaXN0ZW5lcjpsZS5iaW5kKHdpbmRvdyl9KSxWMj17fTtPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwicGFyZW50RWxlbWVudCIpJiYoVjIucGFyZW50RWxlbWVudD1ydC5wYXJlbnRFbGVtZW50KSxPYmplY3QuZ2V0T3du''@;'; put 'put ''UHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY29udGFpbnMiKSYmKFYyLmNvbnRhaW5zPXJ0LmNvbnRhaW5zKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY2hpbGRyZW4iKSYmKFYyLmNoaWxkcmVuPUMyLmNo''@;'; put 'put ''aWxkcmVuKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiaW5uZXJIVE1MIikmJihWMi5pbm5lckhUTUw9ZGUuaW5uZXJIVE1MKSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEhUTUxFbGVtZW50LnByb3RvdHlwZSwiY2xhc3NO''@;'; put 'put ''YW1lIikmJihWMi5jbGFzc05hbWU9Y3QuY2xhc3NOYW1lKTt2YXIgRTA9e0V2ZW50VGFyZ2V0OltBbF0sTm9kZTpbcnQsd2luZG93LkV2ZW50VGFyZ2V0P251bGw6QWxdLFRleHQ6W3oyXSxDb21tZW50Olt6Ml0sQ0RBVEFTZWN0aW9uOlt6Ml0sUHJvY2Vzc2luZ0luc3RydWN0aW9uOlt6Ml0s''@;'; put 'put ''RWxlbWVudDpbY3QsQzIsYmwsejIsIXkxLkh8fCJpbm5lckhUTUwiaW4gRWxlbWVudC5wcm90b3R5cGU/ZGU6bnVsbCx3aW5kb3cuSFRNTFNsb3RFbGVtZW50P251bGw6RWxdLEhUTUxFbGVtZW50OltEbCxWMl0sSFRNTFNsb3RFbGVtZW50OltFbF0sRG9jdW1lbnRGcmFnbWVudDpbU2wsdWVd''@;'; put 'put ''LERvY3VtZW50OltUYSxTbCx1ZSxwZV0sV2luZG93OltUbF0sQ2hhcmFjdGVyRGF0YTpbYmxdfSxOYT15MS5IP251bGw6WyJpbm5lckhUTUwiLCJ0ZXh0Q29udGVudCJdO2Z1bmN0aW9uICQwKHQsaSxuLHMpe2kuZm9yRWFjaChmdW5jdGlvbihkKXtyZXR1cm4gdCYmZCYmczAodCxkLG4scyl9''@;'; put 'put ''KX1mdW5jdGlvbiBObCh0KXt2YXIgbixpPXQ/bnVsbDpOYTtmb3IobiBpbiBFMCkkMCh3aW5kb3dbbl0mJndpbmRvd1tuXS5wcm90b3R5cGUsRTBbbl0sdCxpKX1mdW5jdGlvbiBGbCh0KXtyZXR1cm4gdC5fX3NoYWR5X3Byb3RvSXNQYXRjaGVkPSEwLCQwKHQsRTAuRXZlbnRUYXJnZXQpLCQw''@;'; put 'put ''KHQsRTAuTm9kZSksJDAodCxFMC5FbGVtZW50KSwkMCh0LEUwLkhUTUxFbGVtZW50KSwkMCh0LEUwLkhUTUxTbG90RWxlbWVudCksdH1bIlRleHQiLCJDb21tZW50IiwiQ0RBVEFTZWN0aW9uIiwiUHJvY2Vzc2luZ0luc3RydWN0aW9uIl0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgaT13aW5k''@;'; put 'put ''b3dbdF0sbj1PYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKTtuLl9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQ9ITAsJDAobixFMC5FdmVudFRhcmdldCksJDAobixFMC5Ob2RlKSxFMFt0XSYmJDAobixFMFt0XSksaS5wcm90b3R5cGUuX19zaGFkeV9wYXRjaGVkUHJvdG89bn0pO3ZhciBGYT15MS5B''@;'; put 'put ''YSxJYT15MS5IO2Z1bmN0aW9uIG90KHQsaSl7aWYoRmEmJiF0Ll9fc2hhZHlfcHJvdG9Jc1BhdGNoZWQmJiFlMCh0KSl7dmFyIG49T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpLHM9bi5oYXNPd25Qcm9wZXJ0eSgiX19zaGFkeV9wYXRjaGVkUHJvdG8iKSYmbi5fX3NoYWR5X3BhdGNoZWRQcm90''@;'; put 'put ''bztzfHwoRmwocz1PYmplY3QuY3JlYXRlKG4pKSxuLl9fc2hhZHlfcGF0Y2hlZFByb3RvPXMpLE9iamVjdC5zZXRQcm90b3R5cGVPZih0LHMpfUlhfHwoMT09PWk/ZWwodCk6Mj09PWkmJmxsKHQpKX1mdW5jdGlvbiBJbCh0LGksbixzKXtvdCh0LDEpLHM9c3x8bnVsbDt2YXIgZD1xMSh0KSxt''@;'; put 'put ''PXM/cTEocyk6bnVsbDtkLnByZXZpb3VzU2libGluZz1zP20ucHJldmlvdXNTaWJsaW5nOmkuX19zaGFkeV9sYXN0Q2hpbGQsKG09ZzEoZC5wcmV2aW91c1NpYmxpbmcpKSYmKG0ubmV4dFNpYmxpbmc9dCksKG09ZzEoZC5uZXh0U2libGluZz1zKSkmJihtLnByZXZpb3VzU2libGluZz10KSxk''@;'; put 'put ''LnBhcmVudE5vZGU9aSxzP3M9PT1uLmZpcnN0Q2hpbGQmJihuLmZpcnN0Q2hpbGQ9dCk6KG4ubGFzdENoaWxkPXQsbi5maXJzdENoaWxkfHwobi5maXJzdENoaWxkPXQpKSxuLmNoaWxkTm9kZXM9bnVsbH1mdW5jdGlvbiBzdCh0LGkpe3ZhciBuPXExKHQpO2lmKGl8fHZvaWQgMD09PW4uZmly''@;'; put 'put ''c3RDaGlsZCl7bi5jaGlsZE5vZGVzPW51bGw7dmFyIHM9bi5maXJzdENoaWxkPXQuX19zaGFkeV9uYXRpdmVfZmlyc3RDaGlsZDtmb3Iobi5sYXN0Q2hpbGQ9dC5fX3NoYWR5X25hdGl2ZV9sYXN0Q2hpbGQsb3QodCwyKSxuPXMscz12b2lkIDA7bjtuPW4uX19zaGFkeV9uYXRpdmVfbmV4dFNp''@;'; put 'put ''Ymxpbmcpe3ZhciBkPXExKG4pO2QucGFyZW50Tm9kZT1pfHx0LGQubmV4dFNpYmxpbmc9bi5fX3NoYWR5X25hdGl2ZV9uZXh0U2libGluZyxkLnByZXZpb3VzU2libGluZz1zfHxudWxsLHM9bixvdChuLDEpfX19dmFyIFBhPW4wKHthZGRFdmVudExpc3RlbmVyOmZ1bmN0aW9uKHQsaSxuKXsi''@;'; put 'put ''b2JqZWN0IiE9dHlwZW9mIG4mJihuPXtjYXB0dXJlOiEhbn0pLG4uVT1uLlV8fHRoaXMsdGhpcy5ob3N0Ll9fc2hhZHlfYWRkRXZlbnRMaXN0ZW5lcih0LGksbil9LHJlbW92ZUV2ZW50TGlzdGVuZXI6ZnVuY3Rpb24odCxpLG4peyJvYmplY3QiIT10eXBlb2YgbiYmKG49e2NhcHR1cmU6ISFu''@;'; put 'put ''fSksbi5VPW4uVXx8dGhpcyx0aGlzLmhvc3QuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX19KTtmdW5jdGlvbiBrbCh0LGkpe3MwKHQsUGEsaSksczAodCxwZSxpKSxzMCh0LGRlLGkpLHMwKHQsQzIsaSkseTEuSiYmIWk/KHMwKHQscnQsaSksczAodCx1ZSxpKSk6eTEuSHx8''@;'; put 'put ''KHMwKHQsS3QpLHMwKHQscXQpLHMwKHQsWXQpKX12YXIgaHQsT2w9e30sYzI9eTEuZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzJiYibG9hZGluZyI9PT1kb2N1bWVudC5yZWFkeVN0YXRlO2Z1bmN0aW9uIFBsKHQpe3ZhciBpPVtdO2Rve2kudW5zaGlmdCh0KX13aGlsZSh0PXQuX19zaGFkeV9w''@;'; put 'put ''YXJlbnROb2RlKTtyZXR1cm4gaX1mdW5jdGlvbiBkdCh0LGksbil7aWYodCE9PU9sKXRocm93IG5ldyBUeXBlRXJyb3IoIklsbGVnYWwgY29uc3RydWN0b3IiKTt0aGlzLmc9bnVsbCxCbCh0aGlzLGksbil9ZnVuY3Rpb24gQmwodCxpLG4pe2lmKHQuaG9zdD1pLHQubW9kZT1uJiZuLm1vZGUs''@;'; put 'put ''c3QodC5ob3N0KSwoaT1xMSh0Lmhvc3QpKS5yb290PXQsaS5nYj0iY2xvc2VkIiE9PXQubW9kZT90Om51bGwsKGk9cTEodCkpLmZpcnN0Q2hpbGQ9aS5sYXN0Q2hpbGQ9aS5wYXJlbnROb2RlPWkubmV4dFNpYmxpbmc9aS5wcmV2aW91c1NpYmxpbmc9bnVsbCx5MS5wcmVmZXJQZXJmb3JtYW5j''@;'; put 'put ''ZSlmb3IoO2k9dC5ob3N0Ll9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KXQuaG9zdC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChpKTtlbHNlIHEwKHQpfWZ1bmN0aW9uIHEwKHQpe3QuWXx8KHQuWT0hMCxxZShmdW5jdGlvbigpe3JldHVybiB1dCh0KX0pKX1mdW5jdGlvbiB1dCh0KXt2''@;'; put 'put ''YXIgaTtpZihpPXQuWSl7Zm9yKHZhciBuO3Q7KXQuWSYmKG49dCksZTAodD0oaT10KS5ob3N0Ll9fc2hhZHlfZ2V0Um9vdE5vZGUoKSkmJihpPWcxKGkuaG9zdCkpJiYwPGkuaWF8fCh0PXZvaWQgMCk7aT1ufShuPWkpJiZuLl9yZW5kZXJTZWxmKCl9ZnVuY3Rpb24gR2wodCxpLG4pe3ZhciBz''@;'; put 'put ''PXExKGkpLGQ9cy51YTtzLnVhPW51bGwsbnx8KG49KHQ9dC5oW2kuX19zaGFkeV9zbG90fHwiX19jYXRjaGFsbCJdKSYmdFswXSksbj8ocTEobikuYXNzaWduZWROb2Rlcy5wdXNoKGkpLHMuYXNzaWduZWRTbG90PW4pOnMuYXNzaWduZWRTbG90PXZvaWQgMCxkIT09cy5hc3NpZ25lZFNsb3Qm''@;'; put 'put ''JnMuYXNzaWduZWRTbG90JiYocTEocy5hc3NpZ25lZFNsb3QpLnhhPSEwKX1mdW5jdGlvbiBqbCh0LGksbil7Zm9yKHZhciBzPTAsZD12b2lkIDA7czxuLmxlbmd0aCYmKGQ9bltzXSk7cysrKWlmKCJzbG90Ij09ZC5sb2NhbE5hbWUpe3ZhciBtPWcxKGQpLmFzc2lnbmVkTm9kZXM7bSYmbS5s''@;'; put 'put ''ZW5ndGgmJmpsKHQsaSxtKX1lbHNlIGkucHVzaChuW3NdKX1mdW5jdGlvbiBSbCh0LGkpe2kuX19zaGFkeV9uYXRpdmVfZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoInNsb3RjaGFuZ2UiKSksKGk9ZzEoaSkpLmFzc2lnbmVkU2xvdCYmUmwodCxpLmFzc2lnbmVkU2xvdCl9ZnVuY3Rpb24gemwo''@;'; put 'put ''dCl7dC5pPXQuaXx8W10sdC5nPXQuZ3x8W10sdC5oPXQuaHx8e319ZnVuY3Rpb24gcHQodCl7aWYodC5pJiZ0LmkubGVuZ3RoKXtmb3IodmFyIG4saT10Lmkscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgZD1pW3NdO3N0KGQpO3ZhciBtPWQuX19zaGFkeV9wYXJlbnROb2RlO3N0KG0pLChtPWcx''@;'; put 'put ''KG0pKS5pYT0obS5pYXx8MCkrMSxtPVVsKGQpLHQuaFttXT8oKG49bnx8e30pW21dPSEwLHQuaFttXS5wdXNoKGQpKTp0LmhbbV09W2RdLHQuZy5wdXNoKGQpfWlmKG4pZm9yKHZhciBMIGluIG4pdC5oW0xdPVdsKHQuaFtMXSk7dC5pPVtdfX1mdW5jdGlvbiBVbCh0KXt2YXIgaT10Lm5hbWV8''@;'; put 'put ''fHQuZ2V0QXR0cmlidXRlKCJuYW1lIil8fCJfX2NhdGNoYWxsIjtyZXR1cm4gdC5RYT1pfWZ1bmN0aW9uIFdsKHQpe3JldHVybiB0LnNvcnQoZnVuY3Rpb24oaSxuKXtpPVBsKGkpO2Zvcih2YXIgcz1QbChuKSxkPTA7ZDxpLmxlbmd0aDtkKyspe3ZhciBtPXNbZF07aWYoKG49aVtkXSkhPT1t''@;'; put 'put ''KXJldHVybihpPXYyKG4uX19zaGFkeV9wYXJlbnROb2RlKSkuaW5kZXhPZihuKS1pLmluZGV4T2YobSl9fSl9ZnVuY3Rpb24gJGwodCl7cmV0dXJuIHB0KHQpLCEoIXQuZ3x8IXQuZy5sZW5ndGgpfWlmKGR0LnByb3RvdHlwZS5fcmVuZGVyU2VsZj1mdW5jdGlvbigpe3ZhciB0PWMyO2lmKGMy''@;'; put 'put ''PSEwLHRoaXMuWT0hMSx0aGlzLmcpe3B0KHRoaXMpO2Zvcih2YXIgbixpPTA7aTx0aGlzLmcubGVuZ3RoO2krKyl7dmFyIHM9ZzEobj10aGlzLmdbaV0pLGQ9cy5hc3NpZ25lZE5vZGVzO2lmKHMuYXNzaWduZWROb2Rlcz1bXSxzLmFhPVtdLHMuR2E9ZClmb3Iocz0wO3M8ZC5sZW5ndGg7cysr''@;'; put 'put ''KXt2YXIgbT1nMShkW3NdKTttLnVhPW0uYXNzaWduZWRTbG90LG0uYXNzaWduZWRTbG90PT09biYmKG0uYXNzaWduZWRTbG90PW51bGwpfX1mb3IoaT10aGlzLmhvc3QuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpR2wodGhpcyxpKTtmb3IoaT0wO2k8dGhp''@;'; put 'put ''cy5nLmxlbmd0aDtpKyspe2lmKCEoZD1nMShuPXRoaXMuZ1tpXSkpLmFzc2lnbmVkTm9kZXMubGVuZ3RoKWZvcihzPW4uX19zaGFkeV9maXJzdENoaWxkO3M7cz1zLl9fc2hhZHlfbmV4dFNpYmxpbmcpR2wodGhpcyxzLG4pO2lmKChzPShzPWcxKG4uX19zaGFkeV9wYXJlbnROb2RlKSkmJnMu''@;'; put 'put ''cm9vdCkmJigkbChzKXx8cy5ZKSYmcy5fcmVuZGVyU2VsZigpLGpsKHRoaXMsZC5hYSxkLmFzc2lnbmVkTm9kZXMpLHM9ZC5HYSl7Zm9yKG09MDttPHMubGVuZ3RoO20rKylnMShzW21dKS51YT1udWxsO2QuR2E9bnVsbCxzLmxlbmd0aD5kLmFzc2lnbmVkTm9kZXMubGVuZ3RoJiYoZC54YT0h''@;'; put 'put ''MCl9ZC54YSYmKGQueGE9ITEsUmwodGhpcyxuKSl9Zm9yKG49dGhpcy5nLGk9W10sZD0wO2Q8bi5sZW5ndGg7ZCsrKShtPWcxKHM9bltkXS5fX3NoYWR5X3BhcmVudE5vZGUpKSYmbS5yb290fHwhKDA+aS5pbmRleE9mKHMpKXx8aS5wdXNoKHMpO2ZvcihuPTA7bjxpLmxlbmd0aDtuKyspe2Zv''@;'; put 'put ''cihkPShtPWlbbl0pPT09dGhpcz90aGlzLmhvc3Q6bSxzPVtdLG09bS5fX3NoYWR5X2ZpcnN0Q2hpbGQ7bTttPW0uX19zaGFkeV9uZXh0U2libGluZylpZigic2xvdCI9PW0ubG9jYWxOYW1lKWZvcih2YXIgTD1nMShtKS5hYSxGPTA7RjxMLmxlbmd0aDtGKyspcy5wdXNoKExbRl0pO2Vsc2Ug''@;'; put 'put ''cy5wdXNoKG0pO209UDIoZCksTD1TYShzLHMubGVuZ3RoLG0sbS5sZW5ndGgpO2Zvcih2YXIgRz1GPTAsVT12b2lkIDA7RjxMLmxlbmd0aCYmKFU9TFtGXSk7RisrKXtmb3IodmFyIEs9MCxIMT12b2lkIDA7SzxVLmdhLmxlbmd0aCYmKEgxPVUuZ2FbS10pO0srKylIMS5fX3NoYWR5X25hdGl2''@;'; put 'put ''ZV9wYXJlbnROb2RlPT09ZCYmZC5fX3NoYWR5X25hdGl2ZV9yZW1vdmVDaGlsZChIMSksbS5zcGxpY2UoVS5pbmRleCtHLDEpO0ctPVUubmF9Zm9yKEc9MCxVPXZvaWQgMDtHPEwubGVuZ3RoJiYoVT1MW0ddKTtHKyspZm9yKEY9bVtVLmluZGV4XSxLPVUuaW5kZXg7SzxVLmluZGV4K1UubmE7''@;'; put 'put ''SysrKWQuX19zaGFkeV9uYXRpdmVfaW5zZXJ0QmVmb3JlKEgxPXNbS10sRiksbS5zcGxpY2UoSywwLEgxKX19aWYoIXkxLnByZWZlclBlcmZvcm1hbmNlJiYhdGhpcy5GYSlmb3IoaT10aGlzLmhvc3QuX19zaGFkeV9maXJzdENoaWxkO2k7aT1pLl9fc2hhZHlfbmV4dFNpYmxpbmcpbj1nMShp''@;'; put 'put ''KSxpLl9fc2hhZHlfbmF0aXZlX3BhcmVudE5vZGUhPT10aGlzLmhvc3R8fCJzbG90IiE9PWkubG9jYWxOYW1lJiZuLmFzc2lnbmVkU2xvdHx8dGhpcy5ob3N0Ll9fc2hhZHlfbmF0aXZlX3JlbW92ZUNoaWxkKGkpO3RoaXMuRmE9ITAsYzI9dCxodCYmaHQoKX0sZnVuY3Rpb24odCl7dC5fX3By''@;'; put 'put ''b3RvX189RG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsa2wodCwiX19zaGFkeV8iKSxrbCh0KSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0LHtub2RlVHlwZTp7dmFsdWU6Tm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFLGNvbmZpZ3VyYWJsZTohMH0sbm9kZU5hbWU6e3ZhbHVlOiIjZG9j''@;'; put 'put ''dW1lbnQtZnJhZ21lbnQiLGNvbmZpZ3VyYWJsZTohMH0sbm9kZVZhbHVlOnt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMH19KSxbImxvY2FsTmFtZSIsIm5hbWVzcGFjZVVSSSIsInByZWZpeCJdLmZvckVhY2goZnVuY3Rpb24oaSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsaSx7dmFsdWU6''@;'; put 'put ''dm9pZCAwLGNvbmZpZ3VyYWJsZTohMH0pfSksWyJvd25lckRvY3VtZW50IiwiYmFzZVVSSSIsImlzQ29ubmVjdGVkIl0uZm9yRWFjaChmdW5jdGlvbihpKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxpLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ob3N0W2ldfSxjb25maWd1cmFibGU6''@;'; put 'put ''ITB9KX0pfShkdC5wcm90b3R5cGUpLHdpbmRvdy5jdXN0b21FbGVtZW50cyYmd2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSYmeTEueWEmJiF5MS5wcmVmZXJQZXJmb3JtYW5jZSl7dmFyIGZ0PW5ldyBNYXA7aHQ9ZnVuY3Rpb24oKXt2YXIgdD1bXTtmdC5mb3JFYWNoKGZ1bmN0aW9uKHMs''@;'; put 'put ''ZCl7dC5wdXNoKFtkLHNdKX0pLGZ0LmNsZWFyKCk7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBuPXRbaV1bMF07dFtpXVsxXT9uLl9fc2hhZHlkb21fY29ubmVjdGVkQ2FsbGJhY2soKTpuLl9fc2hhZHlkb21fZGlzY29ubmVjdGVkQ2FsbGJhY2soKX19LGMyJiZkb2N1bWVudC5h''@;'; put 'put ''ZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpe2MyPSExLGh0KCl9LHtvbmNlOiEwfSk7dmFyIGphPXdpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUscWw9ZnVuY3Rpb24odCxpKXt2YXIgbj1pLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjayxzPWkucHJv''@;'; put 'put ''dG90eXBlLmRpc2Nvbm5lY3RlZENhbGxiYWNrO2phLmNhbGwod2luZG93LmN1c3RvbUVsZW1lbnRzLHQsZnVuY3Rpb24odCxpLG4pe3ZhciBzPTAsZD0iX19pc0Nvbm5lY3RlZCIrcysrO3JldHVybihpfHxuKSYmKHQucHJvdG90eXBlLmNvbm5lY3RlZENhbGxiYWNrPXQucHJvdG90eXBlLl9f''@;'; put 'put ''c2hhZHlkb21fY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24oKXtjMj9mdC5zZXQodGhpcywhMCk6dGhpc1tkXXx8KHRoaXNbZF09ITAsaSYmaS5jYWxsKHRoaXMpKX0sdC5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9dC5wcm90b3R5cGUuX19zaGFkeWRvbV9kaXNjb25uZWN0ZWRD''@;'; put 'put ''YWxsYmFjaz1mdW5jdGlvbigpe2MyP3RoaXMuaXNDb25uZWN0ZWR8fGZ0LnNldCh0aGlzLCExKTp0aGlzW2RdJiYodGhpc1tkXT0hMSxuJiZuLmNhbGwodGhpcykpfSksdH0oaSxuLHMpKSxpLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1uLGkucHJvdG90eXBlLmRpc2Nvbm5lY3RlZENh''@;'; put 'put ''bGxiYWNrPXN9O3dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmU9cWwsT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdy5DdXN0b21FbGVtZW50UmVnaXN0cnkucHJvdG90eXBlLCJkZWZpbmUiLHt2YWx1ZTpxbCxjb25maWd1cmFibGU6ITB9KX1mdW5jdGlvbiBtMih0KXtpZihlMCh0PXQu''@;'; put 'put ''X19zaGFkeV9nZXRSb290Tm9kZSgpKSlyZXR1cm4gdH1mdW5jdGlvbiBNMih0KXt0aGlzLm5vZGU9dH1mdW5jdGlvbiBZbCh0KXtPYmplY3QuZGVmaW5lUHJvcGVydHkoTTIucHJvdG90eXBlLHQse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGVbIl9fc2hhZHlfIit0XX0sc2V0OmZ1''@;'; put 'put ''bmN0aW9uKGkpe3RoaXMubm9kZVsiX19zaGFkeV8iK3RdPWl9LGNvbmZpZ3VyYWJsZTohMH0pfShYPU0yLnByb3RvdHlwZSkuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGksbil7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FkZEV2ZW50TGlzdGVuZXIodCxpLG4pfSxYLnJlbW92ZUV2''@;'; put 'put ''ZW50TGlzdGVuZXI9ZnVuY3Rpb24odCxpLG4pe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVFdmVudExpc3RlbmVyKHQsaSxuKX0sWC5hcHBlbmRDaGlsZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXBwZW5kQ2hpbGQodCl9LFguaW5zZXJ0QmVmb3JlPWZ1''@;'; put 'put ''bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2luc2VydEJlZm9yZSh0LGkpfSxYLnJlbW92ZUNoaWxkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmVDaGlsZCh0KX0sWC5yZXBsYWNlQ2hpbGQ9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5u''@;'; put 'put ''b2RlLl9fc2hhZHlfcmVwbGFjZUNoaWxkKHQsaSl9LFguY2xvbmVOb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jbG9uZU5vZGUodCl9LFguZ2V0Um9vdE5vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2dldFJvb3ROb2RlKHQpfSxYLmNv''@;'; put 'put ''bnRhaW5zPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jb250YWlucyh0KX0sWC5kaXNwYXRjaEV2ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9kaXNwYXRjaEV2ZW50KHQpfSxYLnNldEF0dHJpYnV0ZT1mdW5jdGlvbih0LGkpe3RoaXMubm9k''@;'; put 'put ''ZS5fX3NoYWR5X3NldEF0dHJpYnV0ZSh0LGkpfSxYLmdldEF0dHJpYnV0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbmF0aXZlX2dldEF0dHJpYnV0ZSh0KX0sWC5oYXNBdHRyaWJ1dGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X25hdGl2ZV9o''@;'; put 'put ''YXNBdHRyaWJ1dGUodCl9LFgucmVtb3ZlQXR0cmlidXRlPWZ1bmN0aW9uKHQpe3RoaXMubm9kZS5fX3NoYWR5X3JlbW92ZUF0dHJpYnV0ZSh0KX0sWC5hdHRhY2hTaGFkb3c9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2F0dGFjaFNoYWRvdyh0KX0sWC5mb2N1cz1mdW5j''@;'; put 'put ''dGlvbigpe3RoaXMubm9kZS5fX3NoYWR5X25hdGl2ZV9mb2N1cygpfSxYLmJsdXI9ZnVuY3Rpb24oKXt0aGlzLm5vZGUuX19zaGFkeV9ibHVyKCl9LFguaW1wb3J0Tm9kZT1mdW5jdGlvbih0LGkpe2lmKHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhp''@;'; put 'put ''cy5ub2RlLl9fc2hhZHlfaW1wb3J0Tm9kZSh0LGkpfSxYLmdldEVsZW1lbnRCeUlkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZ2V0RWxlbWVudEJ5SWQodCl9LFguZWxlbWVudHNGcm9tUG9p''@;'; put 'put ''bnQ9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfZWxlbWVudHNGcm9tUG9pbnQodCxpKX0sWC5lbGVtZW50RnJvbVBvaW50PWZ1bmN0aW9uKHQsaSl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2VsZW1lbnRGcm9tUG9pbnQodCxpKX0sWC5xdWVyeVNlbGVjdG9yPWZ1''@;'; put 'put ''bmN0aW9uKHQpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9xdWVyeVNlbGVjdG9yKHQpfSxYLnF1ZXJ5U2VsZWN0b3JBbGw9ZnVuY3Rpb24odCxpKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcXVlcnlTZWxlY3RvckFsbCh0LGkpfSxYLmFzc2lnbmVkTm9kZXM9ZnVuY3Rpb24odCl7aWYo''@;'; put 'put ''InNsb3QiPT09dGhpcy5ub2RlLmxvY2FsTmFtZSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfYXNzaWduZWROb2Rlcyh0KX0sWC5hcHBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5v''@;'; put 'put ''ZGUuX19zaGFkeV9hcHBlbmQuYXBwbHkodGhpcy5ub2RlLGMoaSkpfSxYLnByZXBlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9wcmVwZW5kLmFwcGx5KHRoaXMu''@;'; put 'put ''bm9kZSxjKGkpKX0sWC5hZnRlcj1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2FmdGVyLmFwcGx5KHRoaXMubm9kZSxjKGkpKX0sWC5iZWZvcmU9ZnVuY3Rpb24odCl7''@;'; put 'put ''Zm9yKHZhciBpPVtdLG49MDtuPGFyZ3VtZW50cy5sZW5ndGg7KytuKWlbbl09YXJndW1lbnRzW25dO3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9iZWZvcmUuYXBwbHkodGhpcy5ub2RlLGMoaSkpfSxYLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9yZW1vdmUo''@;'; put 'put ''KX0sWC5yZXBsYWNlV2l0aD1mdW5jdGlvbih0KXtmb3IodmFyIGk9W10sbj0wO248YXJndW1lbnRzLmxlbmd0aDsrK24paVtuXT1hcmd1bWVudHNbbl07cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3JlcGxhY2VXaXRoLmFwcGx5KHRoaXMubm9kZSxjKGkpKX0sZS5PYmplY3QuZGVmaW5lUHJv''@;'; put 'put ''cGVydGllcyhNMi5wcm90b3R5cGUse2FjdGl2ZUVsZW1lbnQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGUwKHRoaXMubm9kZSl8fHRoaXMubm9kZS5ub2RlVHlwZT09PU5vZGUuRE9DVU1FTlRfTk9ERSlyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlf''@;'; put 'put ''YWN0aXZlRWxlbWVudH19LF9hY3RpdmVFbGVtZW50Ontjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmVFbGVtZW50fX0saG9zdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7aWYoZTAodGhp''@;'; put 'put ''cy5ub2RlKSlyZXR1cm4gdGhpcy5ub2RlLmhvc3R9fSxwYXJlbnROb2RlOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcGFyZW50Tm9kZX19LGZpcnN0Q2hpbGQ6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxl''@;'; put 'put ''OiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9maXJzdENoaWxkfX0sbGFzdENoaWxkOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfbGFzdENoaWxkfX0sbmV4dFNpYmxpbmc6e2Nv''@;'; put 'put ''bmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0U2libGluZ319LHByZXZpb3VzU2libGluZzp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3No''@;'; put 'put ''YWR5X3ByZXZpb3VzU2libGluZ319LGNoaWxkTm9kZXM6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9jaGlsZE5vZGVzfX0scGFyZW50RWxlbWVudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0''@;'; put 'put ''OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3BhcmVudEVsZW1lbnR9fSxmaXJzdEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2ZpcnN0RWxlbWVudENoaWxkfX0sbGFz''@;'; put 'put ''dEVsZW1lbnRDaGlsZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2xhc3RFbGVtZW50Q2hpbGR9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlv''@;'; put 'put ''bigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9uZXh0RWxlbWVudFNpYmxpbmd9fSxwcmV2aW91c0VsZW1lbnRTaWJsaW5nOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfcHJldmlvdXNFbGVtZW50U2libGlu''@;'; put 'put ''Z319LGNoaWxkcmVuOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2hpbGRyZW59fSxjaGlsZEVsZW1lbnRDb3VudDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJu''@;'; put 'put ''IHRoaXMubm9kZS5fX3NoYWR5X2NoaWxkRWxlbWVudENvdW50fX0sc2hhZG93Um9vdDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3NoYWRvd1Jvb3R9fSxhc3NpZ25lZFNsb3Q6e2NvbmZpZ3VyYWJsZTohMCxl''@;'; put 'put ''bnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9hc3NpZ25lZFNsb3R9fSxpc0Nvbm5lY3RlZDp7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X2lzQ29ubmVjdGVkfX0s''@;'; put 'put ''aW5uZXJIVE1MOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfaW5uZXJIVE1MPXR9fSx0ZXh0Q29udGVudDp7Y29uZmlndXJhYmxl''@;'; put 'put ''OiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubm9kZS5fX3NoYWR5X3RleHRDb250ZW50fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfdGV4dENvbnRlbnQ9dH19LHNsb3Q6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5j''@;'; put 'put ''dGlvbigpe3JldHVybiB0aGlzLm5vZGUuX19zaGFkeV9zbG90fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfc2xvdD10fX0sY2xhc3NOYW1lOntjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ub2RlLl9fc2hhZHlfY2xh''@;'; put 'put ''c3NOYW1lfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5ub2RlLl9fc2hhZHlfY2xhc3NOYW1lPXR9fX0pLHBsLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIFlsKHQpfSksZmwuZm9yRWFjaChmdW5jdGlvbih0KXtyZXR1cm4gWWwodCl9KTt2YXIgS2w9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gWGwo''@;'; put 'put ''dCl7aWYoZTAodCl8fHQgaW5zdGFuY2VvZiBNMilyZXR1cm4gdDt2YXIgaT1LbC5nZXQodCk7cmV0dXJuIGl8fChpPW5ldyBNMih0KSxLbC5zZXQodCxpKSksaX1pZih5MS55YSl7dmFyIFFsPXkxLkg/ZnVuY3Rpb24odCl7cmV0dXJuIHR9OmZ1bmN0aW9uKHQpe3JldHVybiBsbCh0KSxlbCh0''@;'; put 'put ''KSx0fSxSYT17aW5Vc2U6eTEueWEscGF0Y2g6UWwsaXNTaGFkeVJvb3Q6ZTAsZW5xdWV1ZTpxZSxmbHVzaDpldCxmbHVzaEluaXRpYWw6ZnVuY3Rpb24odCl7IXQuRmEmJnQuWSYmdXQodCl9LHNldHRpbmdzOnkxLGZpbHRlck11dGF0aW9uczpmdW5jdGlvbiB1YSh0LGkpe3ZhciBuPWkuZ2V0''@;'; put 'put ''Um9vdE5vZGUoKTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24ocyl7dmFyIGQ9bj09PXMudGFyZ2V0LmdldFJvb3ROb2RlKCk7aWYoZCYmcy5hZGRlZE5vZGVzKXtpZihkPVtdLnNsaWNlLmNhbGwocy5hZGRlZE5vZGVzKS5maWx0ZXIoZnVuY3Rpb24obSl7cmV0dXJuIG49PT1tLmdldFJvb3ROb2Rl''@;'; put 'put ''KCl9KSxkLmxlbmd0aClyZXR1cm4gcz1PYmplY3QuY3JlYXRlKHMpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJhZGRlZE5vZGVzIix7dmFsdWU6ZCxjb25maWd1cmFibGU6ITB9KSxzfWVsc2UgaWYoZClyZXR1cm4gc30pLmZpbHRlcihmdW5jdGlvbihzKXtyZXR1cm4gc30pfSxvYnNlcnZl''@;'; put 'put ''Q2hpbGRyZW46ZnVuY3Rpb24gaGEodCxpKXt2YXIgbj1xMSh0KTtuLmVhfHwobi5lYT1uZXcganQpLG4uZWEub2EuYWRkKGkpO3ZhciBzPW4uZWE7cmV0dXJue1JhOmksWDpzLFNhOnQsdGFrZVJlY29yZHM6ZnVuY3Rpb24oKXtyZXR1cm4gcy50YWtlUmVjb3JkcygpfX19LHVub2JzZXJ2ZUNo''@;'; put 'put ''aWxkcmVuOmZ1bmN0aW9uIGRhKHQpe3ZhciBpPXQmJnQuWDtpJiYoaS5vYS5kZWxldGUodC5SYSksaS5vYS5zaXplfHwocTEodC5TYSkuZWE9bnVsbCkpfSxkZWZlckNvbm5lY3Rpb25DYWxsYmFja3M6eTEuZGVmZXJDb25uZWN0aW9uQ2FsbGJhY2tzLHByZWZlclBlcmZvcm1hbmNlOnkxLnBy''@;'; put 'put ''ZWZlclBlcmZvcm1hbmNlLGhhbmRsZXNEeW5hbWljU2NvcGluZzohMCx3cmFwOnkxLko/WGw6UWwsd3JhcElmTmVlZGVkOiEwPT09eTEuSj9YbDpmdW5jdGlvbih0KXtyZXR1cm4gdH0sV3JhcHBlcjpNMixjb21wb3NlZFBhdGg6ZnVuY3Rpb24gVmEodCl7cmV0dXJuIHQuX19jb21wb3NlZFBh''@;'; put 'put ''dGh8fCh0Ll9fY29tcG9zZWRQYXRoPWl0KHQudGFyZ2V0LCEwKSksdC5fX2NvbXBvc2VkUGF0aH0sbm9QYXRjaDp5MS5KLHBhdGNoT25EZW1hbmQ6eTEuQWEsbmF0aXZlTWV0aG9kczp6dCxuYXRpdmVUcmVlOlhlLHBhdGNoRWxlbWVudFByb3RvOkZsfTt3aW5kb3cuU2hhZHlET009UmEsZnVu''@;'; put 'put ''Y3Rpb24gdmEoKXt2YXIgdD1bImRpc3BhdGNoRXZlbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciJdO3dpbmRvdy5FdmVudFRhcmdldD8oYzAod2luZG93LkV2ZW50VGFyZ2V0LnByb3RvdHlwZSx0KSx2b2lkIDA9PT13aW5kb3cuX19zaGFkeV9uYXRpdmVfYWRk''@;'; put 'put ''RXZlbnRMaXN0ZW5lciYmYzAoV2luZG93LnByb3RvdHlwZSx0KSk6KGMwKE5vZGUucHJvdG90eXBlLHQpLGMwKFdpbmRvdy5wcm90b3R5cGUsdCkpLGx0P2MwKE5vZGUucHJvdG90eXBlLCJwYXJlbnROb2RlIGZpcnN0Q2hpbGQgbGFzdENoaWxkIHByZXZpb3VzU2libGluZyBuZXh0U2libGlu''@;'; put 'put ''ZyBjaGlsZE5vZGVzIHBhcmVudEVsZW1lbnQgdGV4dENvbnRlbnQiLnNwbGl0KCIgIikpOkcyKE5vZGUucHJvdG90eXBlLHtwYXJlbnROb2RlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5wYXJlbnROb2RlKCl9fSxmaXJzdENoaWxkOntnZXQ6ZnVuY3Rp''@;'; put 'put ''b24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5maXJzdENoaWxkKCl9fSxsYXN0Q2hpbGQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB5MC5jdXJyZW50Tm9kZT10aGlzLHkwLmxhc3RDaGlsZCgpfX0scHJldmlvdXNTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3Vy''@;'; put 'put ''cmVudE5vZGU9dGhpcyx5MC5wcmV2aW91c1NpYmxpbmcoKX19LG5leHRTaWJsaW5nOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4geTAuY3VycmVudE5vZGU9dGhpcyx5MC5uZXh0U2libGluZygpfX0sY2hpbGROb2Rlczp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGk9W107eTAuY3VycmVudE5vZGU9dGhp''@;'; put 'put ''cztmb3IodmFyIG49eTAuZmlyc3RDaGlsZCgpO247KWkucHVzaChuKSxuPXkwLm5leHRTaWJsaW5nKCk7cmV0dXJuIGl9fSxwYXJlbnRFbGVtZW50OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTDAuY3VycmVudE5vZGU9dGhpcyxMMC5wYXJlbnROb2RlKCl9fSx0ZXh0Q29udGVudDp7Z2V0OmZ1''@;'; put 'put ''bmN0aW9uKCl7c3dpdGNoKHRoaXMubm9kZVR5cGUpe2Nhc2UgTm9kZS5FTEVNRU5UX05PREU6Y2FzZSBOb2RlLkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6Zm9yKHZhciBzLGk9ZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcih0aGlzLE5vZGVGaWx0ZXIuU0hPV19URVhULG51bGwsITEpLG49IiI7''@;'; put 'put ''cz1pLm5leHROb2RlKCk7KW4rPXMubm9kZVZhbHVlO3JldHVybiBuO2RlZmF1bHQ6cmV0dXJuIHRoaXMubm9kZVZhbHVlfX0sc2V0OmZ1bmN0aW9uKGkpe3N3aXRjaChudWxsPT1pJiYoaT0iIiksdGhpcy5ub2RlVHlwZSl7Y2FzZSBOb2RlLkVMRU1FTlRfTk9ERTpjYXNlIE5vZGUuRE9DVU1F''@;'; put 'put ''TlRfRlJBR01FTlRfTk9ERTpKZSh0aGlzKSwoMDxpLmxlbmd0aHx8dGhpcy5ub2RlVHlwZT09PU5vZGUuRUxFTUVOVF9OT0RFKSYmdGhpcy5fX3NoYWR5X25hdGl2ZV9pbnNlcnRCZWZvcmUoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoaSksdm9pZCAwKTticmVhaztkZWZhdWx0OnRoaXMubm9k''@;'; put 'put ''ZVZhbHVlPWl9fX19KSxjMChOb2RlLnByb3RvdHlwZSwiYXBwZW5kQ2hpbGQgaW5zZXJ0QmVmb3JlIHJlbW92ZUNoaWxkIHJlcGxhY2VDaGlsZCBjbG9uZU5vZGUgY29udGFpbnMiLnNwbGl0KCIgIikpLGMwKEhUTUxFbGVtZW50LnByb3RvdHlwZSxbInBhcmVudEVsZW1lbnQiLCJjb250YWlu''@;'; put 'put ''cyJdKSx0PXtmaXJzdEVsZW1lbnRDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJlbnROb2RlPXRoaXMsTDAuZmlyc3RDaGlsZCgpfX0sbGFzdEVsZW1lbnRDaGlsZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJlbnROb2RlPXRoaXMsTDAubGFzdENoaWxkKCl9fSxj''@;'; put 'put ''aGlsZHJlbjp7Z2V0OmZ1bmN0aW9uKCl7dmFyIGk9W107TDAuY3VycmVudE5vZGU9dGhpcztmb3IodmFyIG49TDAuZmlyc3RDaGlsZCgpO247KWkucHVzaChuKSxuPUwwLm5leHRTaWJsaW5nKCk7cmV0dXJuIEIwKGkpfX0sY2hpbGRFbGVtZW50Q291bnQ6e2dldDpmdW5jdGlvbigpe3JldHVy''@;'; put 'put ''biB0aGlzLmNoaWxkcmVuP3RoaXMuY2hpbGRyZW4ubGVuZ3RoOjB9fX0sbHQ/KGMwKEVsZW1lbnQucHJvdG90eXBlLFd0KSxjMChFbGVtZW50LnByb3RvdHlwZSxbInByZXZpb3VzRWxlbWVudFNpYmxpbmciLCJuZXh0RWxlbWVudFNpYmxpbmciLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSks''@;'; put 'put ''YzAoSFRNTEVsZW1lbnQucHJvdG90eXBlLFsiY2hpbGRyZW4iLCJpbm5lckhUTUwiLCJjbGFzc05hbWUiXSkpOihHMihFbGVtZW50LnByb3RvdHlwZSx0KSxHMihFbGVtZW50LnByb3RvdHlwZSx7cHJldmlvdXNFbGVtZW50U2libGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEwwLmN1cnJl''@;'; put 'put ''bnROb2RlPXRoaXMsTDAucHJldmlvdXNTaWJsaW5nKCl9fSxuZXh0RWxlbWVudFNpYmxpbmc6e2dldDpmdW5jdGlvbigpe3JldHVybiBMMC5jdXJyZW50Tm9kZT10aGlzLEwwLm5leHRTaWJsaW5nKCl9fSxpbm5lckhUTUw6e2dldDpmdW5jdGlvbigpe3JldHVybiBSdCh0aGlzLFAyKX0sc2V0''@;'; put 'put ''OmZ1bmN0aW9uKGkpe3ZhciBuPSJ0ZW1wbGF0ZSI9PT10aGlzLmxvY2FsTmFtZT90aGlzLmNvbnRlbnQ6dGhpcztKZShuKTt2YXIgcz10aGlzLmxvY2FsTmFtZXx8ImRpdiI7Zm9yKChzPXRoaXMubmFtZXNwYWNlVVJJJiZ0aGlzLm5hbWVzcGFjZVVSSSE9PVV0Lm5hbWVzcGFjZVVSST9VdC5j''@;'; put 'put ''cmVhdGVFbGVtZW50TlModGhpcy5uYW1lc3BhY2VVUkkscyk6VXQuY3JlYXRlRWxlbWVudChzKSkuaW5uZXJIVE1MPWksaT0idGVtcGxhdGUiPT09dGhpcy5sb2NhbE5hbWU/cy5jb250ZW50OnM7cz1pLl9fc2hhZHlfbmF0aXZlX2ZpcnN0Q2hpbGQ7KW4uX19zaGFkeV9uYXRpdmVfaW5zZXJ0''@;'; put 'put ''QmVmb3JlKHMsdm9pZCAwKX19LGNsYXNzTmFtZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn0sc2V0OmZ1bmN0aW9uKGkpe3RoaXMuc2V0QXR0cmlidXRlKCJjbGFzcyIsaSl9fX0pKSxjMChFbGVtZW50LnByb3RvdHlwZSwic2V0QXR0cmli''@;'; put 'put ''dXRlIGdldEF0dHJpYnV0ZSBoYXNBdHRyaWJ1dGUgcmVtb3ZlQXR0cmlidXRlIGZvY3VzIGJsdXIiLnNwbGl0KCIgIikpLGMwKEVsZW1lbnQucHJvdG90eXBlLCR0KSxjMChIVE1MRWxlbWVudC5wcm90b3R5cGUsWyJmb2N1cyIsImJsdXIiXSksd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQm''@;'; put 'put ''JmMwKHdpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50LnByb3RvdHlwZSxbImlubmVySFRNTCJdKSxsdD9jMChEb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZSxXdCk6RzIoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsdCksYzAoRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUsJHQpLGx0Pyhj''@;'; put 'put ''MChEb2N1bWVudC5wcm90b3R5cGUsV3QpLGMwKERvY3VtZW50LnByb3RvdHlwZSxbImFjdGl2ZUVsZW1lbnQiXSkpOkcyKERvY3VtZW50LnByb3RvdHlwZSx0KSxjMChEb2N1bWVudC5wcm90b3R5cGUsWyJpbXBvcnROb2RlIiwiZ2V0RWxlbWVudEJ5SWQiLCJlbGVtZW50RnJvbVBvaW50IixP''@;'; put 'put ''MCgpXSksYzAoRG9jdW1lbnQucHJvdG90eXBlLCR0KX0oKSxObCgiX19zaGFkeV8iKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZG9jdW1lbnQsIl9hY3RpdmVFbGVtZW50IixwZS5hY3RpdmVFbGVtZW50KSxzMChXaW5kb3cucHJvdG90eXBlLFRsLCJfX3NoYWR5XyIpLHkxLko/eTEuQWEmJnMw''@;'; put 'put ''KEVsZW1lbnQucHJvdG90eXBlLHhsKTooTmwoKSxmdW5jdGlvbiBMYSgpe2lmKCFRdCYmT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihFdmVudC5wcm90b3R5cGUsImlzVHJ1c3RlZCIpKXt2YXIgdD1mdW5jdGlvbigpe3ZhciBpPW5ldyBNb3VzZUV2ZW50KCJjbGljayIse2J1YmJs''@;'; put 'put ''ZXM6ITAsY2FuY2VsYWJsZTohMCxjb21wb3NlZDohMH0pO3RoaXMuX19zaGFkeV9kaXNwYXRjaEV2ZW50KGkpfTtFbGVtZW50LnByb3RvdHlwZS5jbGljaz9FbGVtZW50LnByb3RvdHlwZS5jbGljaz10OkhUTUxFbGVtZW50LnByb3RvdHlwZS5jbGljayYmKEhUTUxFbGVtZW50LnByb3RvdHlw''@;'; put 'put ''ZS5jbGljaz10KX19KCkpLGZ1bmN0aW9uIG1hKCl7Zm9yKHZhciB0IGluIG5sKXdpbmRvdy5fX3NoYWR5X25hdGl2ZV9hZGRFdmVudExpc3RlbmVyKHQsZnVuY3Rpb24oaSl7aS5fX3RhcmdldHx8KGllKGkpLHNsKGkpKX0sITApfSgpLHdpbmRvdy5FdmVudD1NYSx3aW5kb3cuQ3VzdG9tRXZl''@;'; put 'put ''bnQ9WmEsd2luZG93Lk1vdXNlRXZlbnQ9eWEsd2luZG93LlNoYWRvd1Jvb3Q9ZHR9dmFyIGZlPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuY3JlYXRlRWxlbWVudCxnZT13aW5kb3cuRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnROUyx6YT13aW5kb3cuRG9jdW1lbnQucHJvdG90''@;'; put 'put ''eXBlLmltcG9ydE5vZGUsVWE9d2luZG93LkRvY3VtZW50LnByb3RvdHlwZS5wcmVwZW5kLFdhPXdpbmRvdy5Eb2N1bWVudC5wcm90b3R5cGUuYXBwZW5kLCRhPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3RvdHlwZS5wcmVwZW5kLHFhPXdpbmRvdy5Eb2N1bWVudEZyYWdtZW50LnByb3Rv''@;'; put 'put ''dHlwZS5hcHBlbmQsSmw9d2luZG93Lk5vZGUucHJvdG90eXBlLmNsb25lTm9kZSxndD13aW5kb3cuTm9kZS5wcm90b3R5cGUuYXBwZW5kQ2hpbGQsdGk9d2luZG93Lk5vZGUucHJvdG90eXBlLmluc2VydEJlZm9yZSxBZT13aW5kb3cuTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQsZWk9d2lu''@;'; put 'put ''ZG93Lk5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZCx2ZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHdpbmRvdy5Ob2RlLnByb3RvdHlwZSwidGV4dENvbnRlbnQiKSxsaT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuYXR0YWNoU2hhZG93LEhlPU9iamVjdC5nZXRPd25Qcm9w''@;'; put 'put ''ZXJ0eURlc2NyaXB0b3Iod2luZG93LkVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKSxDZT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlLGlpPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGUsYWk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJl''@;'; put 'put ''bW92ZUF0dHJpYnV0ZSxBdD13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUuZ2V0QXR0cmlidXRlTlMscmk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnNldEF0dHJpYnV0ZU5TLG5pPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5yZW1vdmVBdHRyaWJ1dGVOUyxjaT13aW5kb3cuRWxlbWVudC5w''@;'; put 'put ''cm90b3R5cGUuaW5zZXJ0QWRqYWNlbnRFbGVtZW50LG9pPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5pbnNlcnRBZGphY2VudEhUTUwsWWE9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnByZXBlbmQsS2E9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLmFwcGVuZCxzaT13aW5kb3cuRWxlbWVu''@;'; put 'put ''dC5wcm90b3R5cGUuYmVmb3JlLGhpPXdpbmRvdy5FbGVtZW50LnByb3RvdHlwZS5hZnRlcixkaT13aW5kb3cuRWxlbWVudC5wcm90b3R5cGUucmVwbGFjZVdpdGgsdWk9d2luZG93LkVsZW1lbnQucHJvdG90eXBlLnJlbW92ZSxYYT13aW5kb3cuSFRNTEVsZW1lbnQsVmU9T2JqZWN0LmdldE93''@;'; put 'put ''blByb3BlcnR5RGVzY3JpcHRvcih3aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLCJpbm5lckhUTUwiKSxwaT13aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50RWxlbWVudCxmaT13aW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlLmluc2VydEFkamFjZW50SFRN''@;'; put 'put ''TCxnaT1uZXcgU2V0O2Z1bmN0aW9uIEFpKHQpe3ZhciBpPWdpLmhhcyh0KTtyZXR1cm4gdD0vXlthLXpdWy4wLTlfYS16XSotWy0uMC05X2Etel0qJC8udGVzdCh0KSwhaSYmdH0iYW5ub3RhdGlvbi14bWwgY29sb3ItcHJvZmlsZSBmb250LWZhY2UgZm9udC1mYWNlLXNyYyBmb250LWZhY2Ut''@;'; put 'put ''dXJpIGZvbnQtZmFjZS1mb3JtYXQgZm9udC1mYWNlLW5hbWUgbWlzc2luZy1nbHlwaCIuc3BsaXQoIiAiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBnaS5hZGQodCl9KTt2YXIgUWE9ZG9jdW1lbnQuY29udGFpbnM/ZG9jdW1lbnQuY29udGFpbnMuYmluZChkb2N1bWVudCk6ZG9jdW1l''@;'; put 'put ''bnQuZG9jdW1lbnRFbGVtZW50LmNvbnRhaW5zLmJpbmQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTtmdW5jdGlvbiByMCh0KXt2YXIgaT10LmlzQ29ubmVjdGVkO2lmKHZvaWQgMCE9PWkpcmV0dXJuIGk7aWYoUWEodCkpcmV0dXJuITA7Zm9yKDt0JiYhKHQuX19DRV9pc0ltcG9ydERvY3Vt''@;'; put 'put ''ZW50fHx0IGluc3RhbmNlb2YgRG9jdW1lbnQpOyl0PXQucGFyZW50Tm9kZXx8KHdpbmRvdy5TaGFkb3dSb290JiZ0IGluc3RhbmNlb2YgU2hhZG93Um9vdD90Lmhvc3Q6dm9pZCAwKTtyZXR1cm4hKCF0fHwhKHQuX19DRV9pc0ltcG9ydERvY3VtZW50fHx0IGluc3RhbmNlb2YgRG9jdW1lbnQp''@;'; put 'put ''KX1mdW5jdGlvbiBtZSh0KXt2YXIgaT10LmNoaWxkcmVuO2lmKGkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGkpO2ZvcihpPVtdLHQ9dC5maXJzdENoaWxkO3Q7dD10Lm5leHRTaWJsaW5nKXQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmaS5wdXNoKHQpO3JldHVy''@;'; put 'put ''biBpfWZ1bmN0aW9uIE1lKHQsaSl7Zm9yKDtpJiZpIT09dCYmIWkubmV4dFNpYmxpbmc7KWk9aS5wYXJlbnROb2RlO3JldHVybiBpJiZpIT09dD9pLm5leHRTaWJsaW5nOm51bGx9ZnVuY3Rpb24gWmUodCxpLG4pe2Zvcih2YXIgcz10O3M7KXtpZihzLm5vZGVUeXBlPT09Tm9kZS5FTEVNRU5U''@;'; put 'put ''X05PREUpe3ZhciBkPXM7aShkKTt2YXIgbT1kLmxvY2FsTmFtZTtpZigibGluayI9PT1tJiYiaW1wb3J0Ij09PWQuZ2V0QXR0cmlidXRlKCJyZWwiKSl7aWYocz1kLmltcG9ydCx2b2lkIDA9PT1uJiYobj1uZXcgU2V0KSxzIGluc3RhbmNlb2YgTm9kZSYmIW4uaGFzKHMpKWZvcihuLmFkZChz''@;'; put 'put ''KSxzPXMuZmlyc3RDaGlsZDtzO3M9cy5uZXh0U2libGluZylaZShzLGksbik7cz1NZSh0LGQpO2NvbnRpbnVlfWlmKCJ0ZW1wbGF0ZSI9PT1tKXtzPU1lKHQsZCk7Y29udGludWV9aWYoZD1kLl9fQ0Vfc2hhZG93Um9vdClmb3IoZD1kLmZpcnN0Q2hpbGQ7ZDtkPWQubmV4dFNpYmxpbmcpWmUo''@;'; put 'put ''ZCxpLG4pfXM9cy5maXJzdENoaWxkP3MuZmlyc3RDaGlsZDpNZSh0LHMpfX1mdW5jdGlvbiB2dCgpe3ZhciB0PSEobnVsbD09ajB8fCFqMC5ub0RvY3VtZW50Q29uc3RydWN0aW9uT2JzZXJ2ZXIpLGk9IShudWxsPT1qMHx8IWowLnNoYWR5RG9tRmFzdFdhbGspO3RoaXMuY2E9W10sdGhpcy5n''@;'; put 'put ''PVtdLHRoaXMuVz0hMSx0aGlzLnNoYWR5RG9tRmFzdFdhbGs9aSx0aGlzLm5iPSF0fWZ1bmN0aW9uIFUyKHQsaSxuLHMpe3ZhciBkPXdpbmRvdy5TaGFkeURPTTtpZih0LnNoYWR5RG9tRmFzdFdhbGsmJmQmJmQuaW5Vc2Upe2lmKGkubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSYmbihp''@;'; put 'put ''KSxpLnF1ZXJ5U2VsZWN0b3JBbGwpZm9yKHQ9ZC5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwuY2FsbChpLCIqIiksaT0wO2k8dC5sZW5ndGg7aSsrKW4odFtpXSl9ZWxzZSBaZShpLG4scyl9ZnVuY3Rpb24geWUodCxpKXt0LlcmJlUyKHQsaSxmdW5jdGlvbihuKXtyZXR1cm4gWjIo''@;'; put 'put ''dCxuKX0pfWZ1bmN0aW9uIFoyKHQsaSl7aWYodC5XJiYhaS5fX0NFX3BhdGNoZWQpe2kuX19DRV9wYXRjaGVkPSEwO2Zvcih2YXIgbj0wO248dC5jYS5sZW5ndGg7bisrKXQuY2Fbbl0oaSk7Zm9yKG49MDtuPHQuZy5sZW5ndGg7bisrKXQuZ1tuXShpKX19ZnVuY3Rpb24gRzAodCxpKXt2YXIg''@;'; put 'put ''bj1bXTtmb3IoVTIodCxpLGZ1bmN0aW9uKGQpe3JldHVybiBuLnB1c2goZCl9KSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBzPW5baV07MT09PXMuX19DRV9zdGF0ZT90LmNvbm5lY3RlZENhbGxiYWNrKHMpOkh0KHQscyl9fWZ1bmN0aW9uIFMwKHQsaSl7dmFyIG49W107Zm9yKFUyKHQsaSxm''@;'; put 'put ''dW5jdGlvbihkKXtyZXR1cm4gbi5wdXNoKGQpfSksaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcz1uW2ldOzE9PT1zLl9fQ0Vfc3RhdGUmJnQuZGlzY29ubmVjdGVkQ2FsbGJhY2socyl9fWZ1bmN0aW9uIFkwKHQsaSxuKXt2YXIgcz0obj12b2lkIDA9PT1uP3t9Om4pLm9iLGQ9bi51cGdyYWRl''@;'; put 'put ''fHxmdW5jdGlvbihMKXtyZXR1cm4gSHQodCxMKX0sbT1bXTtmb3IoVTIodCxpLGZ1bmN0aW9uKEwpe2lmKHQuVyYmWjIodCxMKSwibGluayI9PT1MLmxvY2FsTmFtZSYmImltcG9ydCI9PT1MLmdldEF0dHJpYnV0ZSgicmVsIikpe3ZhciBGPUwuaW1wb3J0O0YgaW5zdGFuY2VvZiBOb2RlJiYo''@;'; put 'put ''Ri5fX0NFX2lzSW1wb3J0RG9jdW1lbnQ9ITAsRi5fX0NFX3JlZ2lzdHJ5PWRvY3VtZW50Ll9fQ0VfcmVnaXN0cnkpLEYmJiJjb21wbGV0ZSI9PT1GLnJlYWR5U3RhdGU/Ri5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQ9ITA6TC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbigpe3Zh''@;'; put 'put ''ciBHPUwuaW1wb3J0O2lmKCFHLl9fQ0VfZG9jdW1lbnRMb2FkSGFuZGxlZCl7Ry5fX0NFX2RvY3VtZW50TG9hZEhhbmRsZWQ9ITA7dmFyIFU9bmV3IFNldDtzJiYocy5mb3JFYWNoKGZ1bmN0aW9uKEspe3JldHVybiBVLmFkZChLKX0pLFUuZGVsZXRlKEcpKSxZMCh0LEcse29iOlUsdXBncmFk''@;'; put 'put ''ZTpkfSl9fSl9ZWxzZSBtLnB1c2goTCl9LHMpLGk9MDtpPG0ubGVuZ3RoO2krKylkKG1baV0pfWZ1bmN0aW9uIEh0KHQsaSl7dHJ5e3ZhciBuPWkub3duZXJEb2N1bWVudCxzPW4uX19DRV9yZWdpc3RyeSxkPXMmJihuLmRlZmF1bHRWaWV3fHxuLl9fQ0VfaXNJbXBvcnREb2N1bWVudCk/Q3Qo''@;'; put 'put ''cyxpLmxvY2FsTmFtZSk6dm9pZCAwO2lmKGQmJnZvaWQgMD09PWkuX19DRV9zdGF0ZSl7ZC5jb25zdHJ1Y3Rpb25TdGFjay5wdXNoKGkpO3RyeXt0cnl7aWYobmV3IGQuY29uc3RydWN0b3JGdW5jdGlvbiE9PWkpdGhyb3cgRXJyb3IoIlRoZSBjdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBk''@;'; put 'put ''aWQgbm90IHByb2R1Y2UgdGhlIGVsZW1lbnQgYmVpbmcgdXBncmFkZWQuIil9ZmluYWxseXtkLmNvbnN0cnVjdGlvblN0YWNrLnBvcCgpfX1jYXRjaChHKXt0aHJvdyBpLl9fQ0Vfc3RhdGU9MixHfWlmKGkuX19DRV9zdGF0ZT0xLGkuX19DRV9kZWZpbml0aW9uPWQsZC5hdHRyaWJ1dGVDaGFu''@;'; put 'put ''Z2VkQ2FsbGJhY2smJmkuaGFzQXR0cmlidXRlcygpKXt2YXIgbT1kLm9ic2VydmVkQXR0cmlidXRlcztmb3IoZD0wO2Q8bS5sZW5ndGg7ZCsrKXt2YXIgTD1tW2RdLEY9aS5nZXRBdHRyaWJ1dGUoTCk7bnVsbCE9PUYmJnQuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKGksTCxudWxsLEYsbnVs''@;'; put 'put ''bCl9fXIwKGkpJiZ0LmNvbm5lY3RlZENhbGxiYWNrKGkpfX1jYXRjaChHKXt5MihHKX19ZnVuY3Rpb24gdmkodCxpLG4scyl7dmFyIGQ9aS5fX0NFX3JlZ2lzdHJ5O2lmKGQmJihudWxsPT09c3x8Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPT09cykmJihkPUN0KGQsbikpKXRyeXt2''@;'; put 'put ''YXIgbT1uZXcgZC5jb25zdHJ1Y3RvckZ1bmN0aW9uO2lmKHZvaWQgMD09PW0uX19DRV9zdGF0ZXx8dm9pZCAwPT09bS5fX0NFX2RlZmluaXRpb24pdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIHJldHVybmVkIHZhbHVlIHdhcyBub3QgY29uc3RydWN0ZWQg''@;'; put 'put ''d2l0aCB0aGUgSFRNTEVsZW1lbnQgY29uc3RydWN0b3IuIik7aWYoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIT09bS5uYW1lc3BhY2VVUkkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQncyBuYW1lc3BhY2Ug''@;'; put 'put ''bXVzdCBiZSB0aGUgSFRNTCBuYW1lc3BhY2UuIik7aWYobS5oYXNBdHRyaWJ1dGVzKCkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhbnkgYXR0cmlidXRlcy4iKTtpZihudWxsIT09bS5maXJz''@;'; put 'put ''dENoaWxkKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0ICciK24rIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50IG11c3Qgbm90IGhhdmUgYW55IGNoaWxkcmVuLiIpO2lmKG51bGwhPT1tLnBhcmVudE5vZGUpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisi''@;'; put 'put ''JzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQgbXVzdCBub3QgaGF2ZSBhIHBhcmVudCBub2RlLiIpO2lmKG0ub3duZXJEb2N1bWVudCE9PWkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrbisiJzogVGhlIGNvbnN0cnVjdGVkIGVsZW1lbnQncyBvd25lciBkb2N1bWVudCBp''@;'; put 'put ''cyBpbmNvcnJlY3QuIik7aWYobS5sb2NhbE5hbWUhPT1uKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0ICciK24rIic6IFRoZSBjb25zdHJ1Y3RlZCBlbGVtZW50J3MgbG9jYWwgbmFtZSBpcyBpbmNvcnJlY3QuIik7cmV0dXJuIG19Y2F0Y2goTCl7cmV0dXJuIHkyKEwpLGk9bnVs''@;'; put 'put ''bD09PXM/ZmUuY2FsbChpLG4pOmdlLmNhbGwoaSxzLG4pLE9iamVjdC5zZXRQcm90b3R5cGVPZihpLEhUTUxVbmtub3duRWxlbWVudC5wcm90b3R5cGUpLGkuX19DRV9zdGF0ZT0yLGkuX19DRV9kZWZpbml0aW9uPXZvaWQgMCxaMih0LGkpLGl9cmV0dXJuIFoyKHQsaT1udWxsPT09cz9mZS5j''@;'; put 'put ''YWxsKGksbik6Z2UuY2FsbChpLHMsbikpLGl9ZnVuY3Rpb24geTIodCl7dmFyIGk9dC5tZXNzYWdlLG49dC5zb3VyY2VVUkx8fHQuZmlsZU5hbWV8fCIiLHM9dC5saW5lfHx0LmxpbmVOdW1iZXJ8fDAsbT12b2lkIDA7dm9pZCAwPT09RXJyb3JFdmVudC5wcm90b3R5cGUuaW5pdEVycm9yRXZl''@;'; put 'put ''bnQ/bT1uZXcgRXJyb3JFdmVudCgiZXJyb3IiLHtjYW5jZWxhYmxlOiEwLG1lc3NhZ2U6aSxmaWxlbmFtZTpuLGxpbmVubzpzLGNvbG5vOnQuY29sdW1ufHx0LmNvbHVtbk51bWJlcnx8MCxlcnJvcjp0fSk6KChtPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFcnJvckV2ZW50IikpLmluaXRFcnJv''@;'; put 'put ''ckV2ZW50KCJlcnJvciIsITEsITAsaSxuLHMpLG0ucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiZGVmYXVsdFByZXZlbnRlZCIse2NvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KX0pLHZvaWQgMD09PW0uZXJyb3Im''@;'; put 'put ''Jk9iamVjdC5kZWZpbmVQcm9wZXJ0eShtLCJlcnJvciIse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiB0fX0pLHdpbmRvdy5kaXNwYXRjaEV2ZW50KG0pLG0uZGVmYXVsdFByZXZlbnRlZHx8Y29uc29sZS5lcnJvcih0KX1mdW5jdGlvbiBIaSgp''@;'; put 'put ''e3ZhciB0PXRoaXM7dGhpcy5JPXZvaWQgMCx0aGlzLkhhPW5ldyBQcm9taXNlKGZ1bmN0aW9uKGkpe3QuZz1pfSl9ZnVuY3Rpb24gQ2kodCl7dmFyIGk9ZG9jdW1lbnQ7dGhpcy5YPXZvaWQgMCx0aGlzLlM9dCx0aGlzLmc9aSxZMCh0aGlzLlMsdGhpcy5nKSwibG9hZGluZyI9PT10aGlzLmcu''@;'; put 'put ''cmVhZHlTdGF0ZSYmKHRoaXMuWD1uZXcgTXV0YXRpb25PYnNlcnZlcih0aGlzLmguYmluZCh0aGlzKSksdGhpcy5YLm9ic2VydmUodGhpcy5nLHtjaGlsZExpc3Q6ITAsc3VidHJlZTohMH0pKX1mdW5jdGlvbiBWaSh0KXt0LlgmJnQuWC5kaXNjb25uZWN0KCl9ZnVuY3Rpb24gdjAodCl7dGhp''@;'; put 'put ''cy5rYT1uZXcgTWFwLHRoaXMubGE9bmV3IE1hcCx0aGlzLkNhPW5ldyBNYXAsdGhpcy50YT0hMSx0aGlzLndhPW5ldyBNYXAsdGhpcy5qYT1mdW5jdGlvbihpKXtyZXR1cm4gaSgpfSx0aGlzLlY9ITEsdGhpcy5tYT1bXSx0aGlzLlM9dCx0aGlzLkRhPXQubmI/bmV3IENpKHQpOnZvaWQgMH1m''@;'; put 'put ''dW5jdGlvbiBtaSh0LGkpe2lmKCFBaShpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIlRoZSBlbGVtZW50IG5hbWUgJyIraSsiJyBpcyBub3QgdmFsaWQuIik7aWYoQ3QodCxpKSl0aHJvdyBFcnJvcigiQSBjdXN0b20gZWxlbWVudCB3aXRoIG5hbWUgJyIraSsiJyBoYXMgYWxyZWFkeSBiZWVu''@;'; put 'put ''IGRlZmluZWQuIik7aWYodC50YSl0aHJvdyBFcnJvcigiQSBjdXN0b20gZWxlbWVudCBpcyBhbHJlYWR5IGJlaW5nIGRlZmluZWQuIil9ZnVuY3Rpb24gTWkodCxpLG4pe3ZhciBzO3QudGE9ITA7dHJ5e3ZhciBkPW4ucHJvdG90eXBlO2lmKCEoZCBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cg''@;'; put 'put ''bmV3IFR5cGVFcnJvcigiVGhlIGN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yJ3MgcHJvdG90eXBlIGlzIG5vdCBhbiBvYmplY3QuIik7dmFyIG09ZnVuY3Rpb24oSyl7dmFyIEgxPWRbS107aWYodm9pZCAwIT09SDEmJiEoSDEgaW5zdGFuY2VvZiBGdW5jdGlvbikpdGhyb3cgRXJyb3IoIlRo''@;'; put 'put ''ZSAnIitLKyInIGNhbGxiYWNrIG11c3QgYmUgYSBmdW5jdGlvbi4iKTtyZXR1cm4gSDF9LEw9bSgiY29ubmVjdGVkQ2FsbGJhY2siKSxGPW0oImRpc2Nvbm5lY3RlZENhbGxiYWNrIiksRz1tKCJhZG9wdGVkQ2FsbGJhY2siKSxVPShzPW0oImF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjayIpKSYm''@;'; put 'put ''bi5vYnNlcnZlZEF0dHJpYnV0ZXN8fFtdfWNhdGNoKEspe3Rocm93IEt9ZmluYWxseXt0LnRhPSExfXJldHVybiB0LmxhLnNldChpLG49e2xvY2FsTmFtZTppLGNvbnN0cnVjdG9yRnVuY3Rpb246bixjb25uZWN0ZWRDYWxsYmFjazpMLGRpc2Nvbm5lY3RlZENhbGxiYWNrOkYsYWRvcHRlZENh''@;'; put 'put ''bGxiYWNrOkcsYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrOnMsb2JzZXJ2ZWRBdHRyaWJ1dGVzOlUsY29uc3RydWN0aW9uU3RhY2s6W119KSx0LkNhLnNldChuLmNvbnN0cnVjdG9yRnVuY3Rpb24sbiksbn1mdW5jdGlvbiBaaSh0KXtpZighMSE9PXQuVil7dC5WPSExO2Zvcih2YXIgaT1bXSxu''@;'; put 'put ''PXQubWEscz1uZXcgTWFwLGQ9MDtkPG4ubGVuZ3RoO2QrKylzLnNldChuW2RdLFtdKTtmb3IoWTAodC5TLGRvY3VtZW50LHt1cGdyYWRlOmZ1bmN0aW9uKEcpe2lmKHZvaWQgMD09PUcuX19DRV9zdGF0ZSl7dmFyIFU9Ry5sb2NhbE5hbWUsSz1zLmdldChVKTtLP0sucHVzaChHKTp0LmxhLmhh''@;'; put 'put ''cyhVKSYmaS5wdXNoKEcpfX19KSxkPTA7ZDxpLmxlbmd0aDtkKyspSHQodC5TLGlbZF0pO2ZvcihkPTA7ZDxuLmxlbmd0aDtkKyspe2Zvcih2YXIgbT1uW2RdLEw9cy5nZXQobSksRj0wO0Y8TC5sZW5ndGg7RisrKUh0KHQuUyxMW0ZdKTsobT10LndhLmdldChtKSkmJm0ucmVzb2x2ZSh2b2lk''@;'; put 'put ''IDApfW4ubGVuZ3RoPTB9fWZ1bmN0aW9uIEN0KHQsaSl7dmFyIG49dC5sYS5nZXQoaSk7aWYobilyZXR1cm4gbjtpZihuPXQua2EuZ2V0KGkpKXt0LmthLmRlbGV0ZShpKTt0cnl7cmV0dXJuIE1pKHQsaSxuKCkpfWNhdGNoKHMpe3kyKHMpfX19ZnVuY3Rpb24gTGUodCxpLG4pe2Z1bmN0aW9u''@;'; put 'put ''IHMoZCl7cmV0dXJuIGZ1bmN0aW9uKG0pe2Zvcih2YXIgTD1bXSxGPTA7Rjxhcmd1bWVudHMubGVuZ3RoOysrRilMW0ZdPWFyZ3VtZW50c1tGXTtGPVtdO2Zvcih2YXIgRz1bXSxVPTA7VTxMLmxlbmd0aDtVKyspe3ZhciBLPUxbVV07aWYoSyBpbnN0YW5jZW9mIEVsZW1lbnQmJnIwKEspJiZH''@;'; put 'put ''LnB1c2goSyksSyBpbnN0YW5jZW9mIERvY3VtZW50RnJhZ21lbnQpZm9yKEs9Sy5maXJzdENoaWxkO0s7Sz1LLm5leHRTaWJsaW5nKUYucHVzaChLKTtlbHNlIEYucHVzaChLKX1mb3IoZC5hcHBseSh0aGlzLEwpLEw9MDtMPEcubGVuZ3RoO0wrKylTMCh0LEdbTF0pO2lmKHIwKHRoaXMpKWZv''@;'; put 'put ''cihMPTA7TDxGLmxlbmd0aDtMKyspKEc9RltMXSlpbnN0YW5jZW9mIEVsZW1lbnQmJkcwKHQsRyl9fXZvaWQgMCE9PW4ucHJlcGVuZCYmKGkucHJlcGVuZD1zKG4ucHJlcGVuZCkpLHZvaWQgMCE9PW4uYXBwZW5kJiYoaS5hcHBlbmQ9cyhuLmFwcGVuZCkpfXZ0LnByb3RvdHlwZS5jb25uZWN0''@;'; put 'put ''ZWRDYWxsYmFjaz1mdW5jdGlvbih0KXt2YXIgaT10Ll9fQ0VfZGVmaW5pdGlvbjtpZihpLmNvbm5lY3RlZENhbGxiYWNrKXRyeXtpLmNvbm5lY3RlZENhbGxiYWNrLmNhbGwodCl9Y2F0Y2gobil7eTIobil9fSx2dC5wcm90b3R5cGUuZGlzY29ubmVjdGVkQ2FsbGJhY2s9ZnVuY3Rpb24odCl7''@;'; put 'put ''dmFyIGk9dC5fX0NFX2RlZmluaXRpb247aWYoaS5kaXNjb25uZWN0ZWRDYWxsYmFjayl0cnl7aS5kaXNjb25uZWN0ZWRDYWxsYmFjay5jYWxsKHQpfWNhdGNoKG4pe3kyKG4pfX0sdnQucHJvdG90eXBlLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjaz1mdW5jdGlvbih0LGksbixzLGQpe3ZhciBt''@;'; put 'put ''PXQuX19DRV9kZWZpbml0aW9uO2lmKG0uYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrJiYtMTxtLm9ic2VydmVkQXR0cmlidXRlcy5pbmRleE9mKGkpKXRyeXttLmF0dHJpYnV0ZUNoYW5nZWRDYWxsYmFjay5jYWxsKHQsaSxuLHMsZCl9Y2F0Y2goTCl7eTIoTCl9fSxIaS5wcm90b3R5cGUucmVz''@;'; put 'put ''b2x2ZT1mdW5jdGlvbih0KXtpZih0aGlzLkkpdGhyb3cgRXJyb3IoIkFscmVhZHkgcmVzb2x2ZWQuIik7dGhpcy5JPXQsdGhpcy5nKHQpfSxDaS5wcm90b3R5cGUuaD1mdW5jdGlvbih0KXt2YXIgaT10aGlzLmcucmVhZHlTdGF0ZTtmb3IoImludGVyYWN0aXZlIiE9PWkmJiJjb21wbGV0ZSIh''@;'; put 'put ''PT1pfHxWaSh0aGlzKSxpPTA7aTx0Lmxlbmd0aDtpKyspZm9yKHZhciBuPXRbaV0uYWRkZWROb2RlcyxzPTA7czxuLmxlbmd0aDtzKyspWTAodGhpcy5TLG5bc10pfSwoWD12MC5wcm90b3R5cGUpLmViPWZ1bmN0aW9uKHQsaSl7dmFyIG49dGhpcztpZighKGkgaW5zdGFuY2VvZiBGdW5jdGlv''@;'; put 'put ''bikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgZ2V0dGVycyBtdXN0IGJlIGZ1bmN0aW9ucy4iKTttaSh0aGlzLHQpLHRoaXMua2Euc2V0KHQsaSksdGhpcy5tYS5wdXNoKHQpLHRoaXMuVnx8KHRoaXMuVj0hMCx0aGlzLmphKGZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIFppKG4pfSkpfSxYLmRlZmluZT1mdW5jdGlvbih0LGkpe3ZhciBuPXRoaXM7aWYoIShpIGluc3RhbmNlb2YgRnVuY3Rpb24pKXRocm93IG5ldyBUeXBlRXJyb3IoIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9ycyBtdXN0IGJlIGZ1bmN0aW9ucy4iKTttaSh0aGlzLHQpLE1pKHRoaXMs''@;'; put 'put ''dCxpKSx0aGlzLm1hLnB1c2godCksdGhpcy5WfHwodGhpcy5WPSEwLHRoaXMuamEoZnVuY3Rpb24oKXtyZXR1cm4gWmkobil9KSl9LFgudXBncmFkZT1mdW5jdGlvbih0KXtZMCh0aGlzLlMsdCl9LFguZ2V0PWZ1bmN0aW9uKHQpe2lmKHQ9Q3QodGhpcyx0KSlyZXR1cm4gdC5jb25zdHJ1Y3Rv''@;'; put 'put ''ckZ1bmN0aW9ufSxYLndoZW5EZWZpbmVkPWZ1bmN0aW9uKHQpe2lmKCFBaSh0KSlyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFN5bnRheEVycm9yKCInIit0KyInIGlzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUuIikpO3ZhciBpPXRoaXMud2EuZ2V0KHQpO2lmKGkpcmV0dXJu''@;'; put 'put ''IGkuSGE7aT1uZXcgSGksdGhpcy53YS5zZXQodCxpKTt2YXIgbj10aGlzLmxhLmhhcyh0KXx8dGhpcy5rYS5oYXModCk7cmV0dXJuIHQ9LTE9PT10aGlzLm1hLmluZGV4T2YodCksbiYmdCYmaS5yZXNvbHZlKHZvaWQgMCksaS5IYX0sWC5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrPWZ1bmN0''@;'; put 'put ''aW9uKHQpe3RoaXMuRGEmJlZpKHRoaXMuRGEpO3ZhciBpPXRoaXMuamE7dGhpcy5qYT1mdW5jdGlvbihuKXtyZXR1cm4gdChmdW5jdGlvbigpe3JldHVybiBpKG4pfSl9fSx3aW5kb3cuQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5PXYwLHYwLnByb3RvdHlwZS5kZWZpbmU9djAucHJvdG90eXBlLmRl''@;'; put 'put ''ZmluZSx2MC5wcm90b3R5cGUudXBncmFkZT12MC5wcm90b3R5cGUudXBncmFkZSx2MC5wcm90b3R5cGUuZ2V0PXYwLnByb3RvdHlwZS5nZXQsdjAucHJvdG90eXBlLndoZW5EZWZpbmVkPXYwLnByb3RvdHlwZS53aGVuRGVmaW5lZCx2MC5wcm90b3R5cGUucG9seWZpbGxEZWZpbmVMYXp5PXYw''@;'; put 'put ''LnByb3RvdHlwZS5lYix2MC5wcm90b3R5cGUucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjaz12MC5wcm90b3R5cGUucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjazt2YXIgeWk9e30sajA9d2luZG93LmN1c3RvbUVsZW1lbnRzO2Z1bmN0aW9uIExpKCl7dmFyIHQ9bmV3IHZ0OyhmdW5jdGlvbiBh''@;'; put 'put ''cih0KXtmdW5jdGlvbiBpKCl7dmFyIG49dGhpcy5jb25zdHJ1Y3RvcixzPWRvY3VtZW50Ll9fQ0VfcmVnaXN0cnkuQ2EuZ2V0KG4pO2lmKCFzKXRocm93IEVycm9yKCJGYWlsZWQgdG8gY29uc3RydWN0IGEgY3VzdG9tIGVsZW1lbnQ6IFRoZSBjb25zdHJ1Y3RvciB3YXMgbm90IHJlZ2lzdGVy''@;'; put 'put ''ZWQgd2l0aCBgY3VzdG9tRWxlbWVudHNgLiIpO3ZhciBkPXMuY29uc3RydWN0aW9uU3RhY2s7aWYoMD09PWQubGVuZ3RoKXJldHVybiBkPWZlLmNhbGwoZG9jdW1lbnQscy5sb2NhbE5hbWUpLE9iamVjdC5zZXRQcm90b3R5cGVPZihkLG4ucHJvdG90eXBlKSxkLl9fQ0Vfc3RhdGU9MSxkLl9f''@;'; put 'put ''Q0VfZGVmaW5pdGlvbj1zLFoyKHQsZCksZDt2YXIgbT1kLmxlbmd0aC0xLEw9ZFttXTtpZihMPT09eWkpdGhyb3cgRXJyb3IoIkZhaWxlZCB0byBjb25zdHJ1Y3QgJyIrcy5sb2NhbE5hbWUrIic6IFRoaXMgZWxlbWVudCB3YXMgYWxyZWFkeSBjb25zdHJ1Y3RlZC4iKTtyZXR1cm4gZFttXT15''@;'; put 'put ''aSxPYmplY3Quc2V0UHJvdG90eXBlT2YoTCxuLnByb3RvdHlwZSksWjIodCxMKSxMfWkucHJvdG90eXBlPVhhLnByb3RvdHlwZSxPYmplY3QuZGVmaW5lUHJvcGVydHkoSFRNTEVsZW1lbnQucHJvdG90eXBlLCJjb25zdHJ1Y3RvciIse3dyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxlbnVt''@;'; put 'put ''ZXJhYmxlOiExLHZhbHVlOml9KSx3aW5kb3cuSFRNTEVsZW1lbnQ9aX0pKHQpLGZ1bmN0aW9uIGVyKHQpe0RvY3VtZW50LnByb3RvdHlwZS5jcmVhdGVFbGVtZW50PWZ1bmN0aW9uKGkpe3JldHVybiB2aSh0LHRoaXMsaSxudWxsKX0sRG9jdW1lbnQucHJvdG90eXBlLmltcG9ydE5vZGU9ZnVu''@;'; put 'put ''Y3Rpb24oaSxuKXtyZXR1cm4gaT16YS5jYWxsKHRoaXMsaSwhIW4pLHRoaXMuX19DRV9yZWdpc3RyeT9ZMCh0LGkpOnllKHQsaSksaX0sRG9jdW1lbnQucHJvdG90eXBlLmNyZWF0ZUVsZW1lbnROUz1mdW5jdGlvbihpLG4pe3JldHVybiB2aSh0LHRoaXMsbixpKX0sTGUodCxEb2N1bWVudC5w''@;'; put 'put ''cm90b3R5cGUse3ByZXBlbmQ6VWEsYXBwZW5kOldhfSl9KHQpLExlKHQsRG9jdW1lbnRGcmFnbWVudC5wcm90b3R5cGUse3ByZXBlbmQ6JGEsYXBwZW5kOnFhfSksZnVuY3Rpb24gcnIodCl7ZnVuY3Rpb24gaShuLHMpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJ0ZXh0Q29udGVudCIse2Vu''@;'; put 'put ''dW1lcmFibGU6cy5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZTohMCxnZXQ6cy5nZXQsc2V0OmZ1bmN0aW9uKGQpe2lmKHRoaXMubm9kZVR5cGU9PT1Ob2RlLlRFWFRfTk9ERSlzLnNldC5jYWxsKHRoaXMsZCk7ZWxzZXt2YXIgbT12b2lkIDA7aWYodGhpcy5maXJzdENoaWxkKXt2YXIgTD10aGlz''@;'; put 'put ''LmNoaWxkTm9kZXMsRj1MLmxlbmd0aDtpZigwPEYmJnIwKHRoaXMpKXttPUFycmF5KEYpO2Zvcih2YXIgRz0wO0c8RjtHKyspbVtHXT1MW0ddfX1pZihzLnNldC5jYWxsKHRoaXMsZCksbSlmb3IoZD0wO2Q8bS5sZW5ndGg7ZCsrKVMwKHQsbVtkXSl9fX0pfU5vZGUucHJvdG90eXBlLmluc2Vy''@;'; put 'put ''dEJlZm9yZT1mdW5jdGlvbihuLHMpe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZD1tZShuKTtpZihuPXRpLmNhbGwodGhpcyxuLHMpLHIwKHRoaXMpKWZvcihzPTA7czxkLmxlbmd0aDtzKyspRzAodCxkW3NdKTtyZXR1cm4gbn1yZXR1cm4gZD1uIGluc3RhbmNlb2Yg''@;'; put 'put ''RWxlbWVudCYmcjAobikscz10aS5jYWxsKHRoaXMsbixzKSxkJiZTMCh0LG4pLHIwKHRoaXMpJiZHMCh0LG4pLHN9LE5vZGUucHJvdG90eXBlLmFwcGVuZENoaWxkPWZ1bmN0aW9uKG4pe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgcz1tZShuKTtpZihuPWd0LmNhbGwo''@;'; put 'put ''dGhpcyxuKSxyMCh0aGlzKSlmb3IodmFyIGQ9MDtkPHMubGVuZ3RoO2QrKylHMCh0LHNbZF0pO3JldHVybiBufXJldHVybiBzPW4gaW5zdGFuY2VvZiBFbGVtZW50JiZyMChuKSxkPWd0LmNhbGwodGhpcyxuKSxzJiZTMCh0LG4pLHIwKHRoaXMpJiZHMCh0LG4pLGR9LE5vZGUucHJvdG90eXBl''@;'; put 'put ''LmNsb25lTm9kZT1mdW5jdGlvbihuKXtyZXR1cm4gbj1KbC5jYWxsKHRoaXMsISFuKSx0aGlzLm93bmVyRG9jdW1lbnQuX19DRV9yZWdpc3RyeT9ZMCh0LG4pOnllKHQsbiksbn0sTm9kZS5wcm90b3R5cGUucmVtb3ZlQ2hpbGQ9ZnVuY3Rpb24obil7dmFyIHM9biBpbnN0YW5jZW9mIEVsZW1l''@;'; put 'put ''bnQmJnIwKG4pLGQ9QWUuY2FsbCh0aGlzLG4pO3JldHVybiBzJiZTMCh0LG4pLGR9LE5vZGUucHJvdG90eXBlLnJlcGxhY2VDaGlsZD1mdW5jdGlvbihuLHMpe2lmKG4gaW5zdGFuY2VvZiBEb2N1bWVudEZyYWdtZW50KXt2YXIgZD1tZShuKTtpZihuPWVpLmNhbGwodGhpcyxuLHMpLHIwKHRo''@;'; put 'put ''aXMpKWZvcihTMCh0LHMpLHM9MDtzPGQubGVuZ3RoO3MrKylHMCh0LGRbc10pO3JldHVybiBufWQ9biBpbnN0YW5jZW9mIEVsZW1lbnQmJnIwKG4pO3ZhciBtPWVpLmNhbGwodGhpcyxuLHMpLEw9cjAodGhpcyk7cmV0dXJuIEwmJlMwKHQscyksZCYmUzAodCxuKSxMJiZHMCh0LG4pLG19LHZl''@;'; put 'put ''JiZ2ZS5nZXQ/aShOb2RlLnByb3RvdHlwZSx2ZSk6ZnVuY3Rpb24gSmEodCxpKXt0Llc9ITAsdC5jYS5wdXNoKGkpfSh0LGZ1bmN0aW9uKG4pe2kobix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7Zm9yKHZhciBzPVtdLGQ9dGhpcy5maXJzdENoaWxkO2Q7''@;'; put 'put ''ZD1kLm5leHRTaWJsaW5nKWQubm9kZVR5cGUhPT1Ob2RlLkNPTU1FTlRfTk9ERSYmcy5wdXNoKGQudGV4dENvbnRlbnQpO3JldHVybiBzLmpvaW4oIiIpfSxzZXQ6ZnVuY3Rpb24ocyl7Zm9yKDt0aGlzLmZpcnN0Q2hpbGQ7KUFlLmNhbGwodGhpcyx0aGlzLmZpcnN0Q2hpbGQpO251bGwhPXMm''@;'; put 'put ''JiIiIT09cyYmZ3QuY2FsbCh0aGlzLGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHMpKX19KX0pfSh0KSxmdW5jdGlvbiBpcih0KXtmdW5jdGlvbiBpKGQsbSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGQsImlubmVySFRNTCIse2VudW1lcmFibGU6bS5lbnVtZXJhYmxlLGNvbmZpZ3VyYWJsZToh''@;'; put 'put ''MCxnZXQ6bS5nZXQsc2V0OmZ1bmN0aW9uKEwpe3ZhciBGPXRoaXMsRz12b2lkIDA7aWYocjAodGhpcykmJihHPVtdLFUyKHQsdGhpcyxmdW5jdGlvbihIMSl7SDEhPT1GJiZHLnB1c2goSDEpfSkpLG0uc2V0LmNhbGwodGhpcyxMKSxHKWZvcih2YXIgVT0wO1U8Ry5sZW5ndGg7VSsrKXt2YXIg''@;'; put 'put ''Sz1HW1VdOzE9PT1LLl9fQ0Vfc3RhdGUmJnQuZGlzY29ubmVjdGVkQ2FsbGJhY2soSyl9cmV0dXJuIHRoaXMub3duZXJEb2N1bWVudC5fX0NFX3JlZ2lzdHJ5P1kwKHQsdGhpcyk6eWUodCx0aGlzKSxMfX0pfWZ1bmN0aW9uIG4oZCxtKXtkLmluc2VydEFkamFjZW50RWxlbWVudD1mdW5jdGlv''@;'; put 'put ''bihMLEYpe3ZhciBHPXIwKEYpO3JldHVybiBMPW0uY2FsbCh0aGlzLEwsRiksRyYmUzAodCxGKSxyMChMKSYmRzAodCxGKSxMfX1mdW5jdGlvbiBzKGQsbSl7ZnVuY3Rpb24gTChGLEcpe2Zvcih2YXIgVT1bXTtGIT09RztGPUYubmV4dFNpYmxpbmcpVS5wdXNoKEYpO2ZvcihHPTA7RzxVLmxl''@;'; put 'put ''bmd0aDtHKyspWTAodCxVW0ddKX1kLmluc2VydEFkamFjZW50SFRNTD1mdW5jdGlvbihGLEcpe2lmKCJiZWZvcmViZWdpbiI9PT0oRj1GLnRvTG93ZXJDYXNlKCkpKXt2YXIgVT10aGlzLnByZXZpb3VzU2libGluZzttLmNhbGwodGhpcyxGLEcpLEwoVXx8dGhpcy5wYXJlbnROb2RlLmZpcnN0''@;'; put 'put ''Q2hpbGQsdGhpcyl9ZWxzZSBpZigiYWZ0ZXJiZWdpbiI9PT1GKVU9dGhpcy5maXJzdENoaWxkLG0uY2FsbCh0aGlzLEYsRyksTCh0aGlzLmZpcnN0Q2hpbGQsVSk7ZWxzZSBpZigiYmVmb3JlZW5kIj09PUYpVT10aGlzLmxhc3RDaGlsZCxtLmNhbGwodGhpcyxGLEcpLEwoVXx8dGhpcy5maXJz''@;'; put 'put ''dENoaWxkLG51bGwpO2Vsc2V7aWYoImFmdGVyZW5kIiE9PUYpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJUaGUgdmFsdWUgcHJvdmlkZWQgKCIrU3RyaW5nKEYpKyIpIGlzIG5vdCBvbmUgb2YgJ2JlZm9yZWJlZ2luJywgJ2FmdGVyYmVnaW4nLCAnYmVmb3JlZW5kJywgb3IgJ2FmdGVyZW5kJy4i''@;'; put 'put ''KTtVPXRoaXMubmV4dFNpYmxpbmcsbS5jYWxsKHRoaXMsRixHKSxMKHRoaXMubmV4dFNpYmxpbmcsVSl9fX1saSYmKEVsZW1lbnQucHJvdG90eXBlLmF0dGFjaFNoYWRvdz1mdW5jdGlvbihkKXtpZihkPWxpLmNhbGwodGhpcyxkKSx0LlcmJiFkLl9fQ0VfcGF0Y2hlZCl7ZC5fX0NFX3BhdGNo''@;'; put 'put ''ZWQ9ITA7Zm9yKHZhciBtPTA7bTx0LmNhLmxlbmd0aDttKyspdC5jYVttXShkKX1yZXR1cm4gdGhpcy5fX0NFX3NoYWRvd1Jvb3Q9ZH0pLEhlJiZIZS5nZXQ/aShFbGVtZW50LnByb3RvdHlwZSxIZSk6VmUmJlZlLmdldD9pKEhUTUxFbGVtZW50LnByb3RvdHlwZSxWZSk6ZnVuY3Rpb24gdHIo''@;'; put 'put ''dCxpKXt0Llc9ITAsdC5nLnB1c2goaSl9KHQsZnVuY3Rpb24oZCl7aShkLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gSmwuY2FsbCh0aGlzLCEwKS5pbm5lckhUTUx9LHNldDpmdW5jdGlvbihtKXt2YXIgTD0idGVtcGxhdGUiPT09dGhpcy5s''@;'; put 'put ''b2NhbE5hbWUsRj1MP3RoaXMuY29udGVudDp0aGlzLEc9Z2UuY2FsbChkb2N1bWVudCx0aGlzLm5hbWVzcGFjZVVSSSx0aGlzLmxvY2FsTmFtZSk7Zm9yKEcuaW5uZXJIVE1MPW07MDxGLmNoaWxkTm9kZXMubGVuZ3RoOylBZS5jYWxsKEYsRi5jaGlsZE5vZGVzWzBdKTtmb3IobT1MP0cuY29u''@;'; put 'put ''dGVudDpHOzA8bS5jaGlsZE5vZGVzLmxlbmd0aDspZ3QuY2FsbChGLG0uY2hpbGROb2Rlc1swXSl9fSl9KSxFbGVtZW50LnByb3RvdHlwZS5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24oZCxtKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBpaS5jYWxsKHRoaXMsZCxtKTt2YXIgTD1DZS5j''@;'; put 'put ''YWxsKHRoaXMsZCk7aWkuY2FsbCh0aGlzLGQsbSksbT1DZS5jYWxsKHRoaXMsZCksdC5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxkLEwsbSxudWxsKX0sRWxlbWVudC5wcm90b3R5cGUuc2V0QXR0cmlidXRlTlM9ZnVuY3Rpb24oZCxtLEwpe2lmKDEhPT10aGlzLl9fQ0Vfc3RhdGUp''@;'; put 'put ''cmV0dXJuIHJpLmNhbGwodGhpcyxkLG0sTCk7dmFyIEY9QXQuY2FsbCh0aGlzLGQsbSk7cmkuY2FsbCh0aGlzLGQsbSxMKSxMPUF0LmNhbGwodGhpcyxkLG0pLHQuYXR0cmlidXRlQ2hhbmdlZENhbGxiYWNrKHRoaXMsbSxGLEwsZCl9LEVsZW1lbnQucHJvdG90eXBlLnJlbW92ZUF0dHJpYnV0''@;'; put 'put ''ZT1mdW5jdGlvbihkKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBhaS5jYWxsKHRoaXMsZCk7dmFyIG09Q2UuY2FsbCh0aGlzLGQpO2FpLmNhbGwodGhpcyxkKSxudWxsIT09bSYmdC5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxkLG0sbnVsbCxudWxsKX0sRWxlbWVudC5w''@;'; put 'put ''cm90b3R5cGUucmVtb3ZlQXR0cmlidXRlTlM9ZnVuY3Rpb24oZCxtKXtpZigxIT09dGhpcy5fX0NFX3N0YXRlKXJldHVybiBuaS5jYWxsKHRoaXMsZCxtKTt2YXIgTD1BdC5jYWxsKHRoaXMsZCxtKTtuaS5jYWxsKHRoaXMsZCxtKTt2YXIgRj1BdC5jYWxsKHRoaXMsZCxtKTtMIT09RiYmdC5h''@;'; put 'put ''dHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sodGhpcyxtLEwsRixkKX0scGk/bihIVE1MRWxlbWVudC5wcm90b3R5cGUscGkpOmNpJiZuKEVsZW1lbnQucHJvdG90eXBlLGNpKSxmaT9zKEhUTUxFbGVtZW50LnByb3RvdHlwZSxmaSk6b2kmJnMoRWxlbWVudC5wcm90b3R5cGUsb2kpLExlKHQsRWxl''@;'; put 'put ''bWVudC5wcm90b3R5cGUse3ByZXBlbmQ6WWEsYXBwZW5kOkthfSksZnVuY3Rpb24gbHIodCl7ZnVuY3Rpb24gaShzKXtyZXR1cm4gZnVuY3Rpb24oZCl7Zm9yKHZhciBtPVtdLEw9MDtMPGFyZ3VtZW50cy5sZW5ndGg7KytMKW1bTF09YXJndW1lbnRzW0xdO0w9W107Zm9yKHZhciBGPVtdLEc9''@;'; put 'put ''MDtHPG0ubGVuZ3RoO0crKyl7dmFyIFU9bVtHXTtpZihVIGluc3RhbmNlb2YgRWxlbWVudCYmcjAoVSkmJkYucHVzaChVKSxVIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IoVT1VLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpTC5wdXNoKFUpO2Vsc2UgTC5wdXNoKFUpfWZv''@;'; put 'put ''cihzLmFwcGx5KHRoaXMsbSksbT0wO208Ri5sZW5ndGg7bSsrKVMwKHQsRlttXSk7aWYocjAodGhpcykpZm9yKG09MDttPEwubGVuZ3RoO20rKykoRj1MW21dKWluc3RhbmNlb2YgRWxlbWVudCYmRzAodCxGKX19dmFyIG49RWxlbWVudC5wcm90b3R5cGU7dm9pZCAwIT09c2kmJihuLmJlZm9y''@;'; put 'put ''ZT1pKHNpKSksdm9pZCAwIT09aGkmJihuLmFmdGVyPWkoaGkpKSx2b2lkIDAhPT1kaSYmKG4ucmVwbGFjZVdpdGg9ZnVuY3Rpb24ocyl7Zm9yKHZhciBkPVtdLG09MDttPGFyZ3VtZW50cy5sZW5ndGg7KyttKWRbbV09YXJndW1lbnRzW21dO209W107Zm9yKHZhciBMPVtdLEY9MDtGPGQubGVu''@;'; put 'put ''Z3RoO0YrKyl7dmFyIEc9ZFtGXTtpZihHIGluc3RhbmNlb2YgRWxlbWVudCYmcjAoRykmJkwucHVzaChHKSxHIGluc3RhbmNlb2YgRG9jdW1lbnRGcmFnbWVudClmb3IoRz1HLmZpcnN0Q2hpbGQ7RztHPUcubmV4dFNpYmxpbmcpbS5wdXNoKEcpO2Vsc2UgbS5wdXNoKEcpfWZvcihGPXIwKHRo''@;'; put 'put ''aXMpLGRpLmFwcGx5KHRoaXMsZCksZD0wO2Q8TC5sZW5ndGg7ZCsrKVMwKHQsTFtkXSk7aWYoRilmb3IoUzAodCx0aGlzKSxkPTA7ZDxtLmxlbmd0aDtkKyspKEw9bVtkXSlpbnN0YW5jZW9mIEVsZW1lbnQmJkcwKHQsTCl9KSx2b2lkIDAhPT11aSYmKG4ucmVtb3ZlPWZ1bmN0aW9uKCl7dmFy''@;'; put 'put ''IHM9cjAodGhpcyk7dWkuY2FsbCh0aGlzKSxzJiZTMCh0LHRoaXMpfSl9KHQpfSh0KSx0PW5ldyB2MCh0KSxkb2N1bWVudC5fX0NFX3JlZ2lzdHJ5PXQsT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywiY3VzdG9tRWxlbWVudHMiLHtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx2''@;'; put 'put ''YWx1ZTp0fSl9ZnVuY3Rpb24gU2UoKXt0aGlzLmVuZD10aGlzLnN0YXJ0PTAsdGhpcy5ydWxlcz10aGlzLnBhcmVudD10aGlzLnByZXZpb3VzPW51bGwsdGhpcy5jc3NUZXh0PXRoaXMucGFyc2VkQ3NzVGV4dD0iIix0aGlzLmF0UnVsZT0hMSx0aGlzLnR5cGU9MCx0aGlzLnBhcnNlZFNlbGVj''@;'; put 'put ''dG9yPXRoaXMuc2VsZWN0b3I9dGhpcy5rZXlmcmFtZXNOYW1lPSIifWZ1bmN0aW9uIGJlKHQpe3ZhciBpPXQ9dC5yZXBsYWNlKGNyLCIiKS5yZXBsYWNlKG9yLCIiKSxuPW5ldyBTZTtuLnN0YXJ0PTAsbi5lbmQ9aS5sZW5ndGg7Zm9yKHZhciBzPW4sZD0wLG09aS5sZW5ndGg7ZDxtO2QrKylp''@;'; put 'put ''ZigieyI9PT1pW2RdKXtzLnJ1bGVzfHwocy5ydWxlcz1bXSk7dmFyIEw9cyxGPUwucnVsZXNbTC5ydWxlcy5sZW5ndGgtMV18fG51bGw7KHM9bmV3IFNlKS5zdGFydD1kKzEscy5wYXJlbnQ9TCxzLnByZXZpb3VzPUYsTC5ydWxlcy5wdXNoKHMpfWVsc2UifSI9PT1pW2RdJiYocy5lbmQ9ZCsx''@;'; put 'put ''LHM9cy5wYXJlbnR8fG4pO3JldHVybiBTaShuLHQpfWZ1bmN0aW9uIFNpKHQsaSl7dmFyIG49aS5zdWJzdHJpbmcodC5zdGFydCx0LmVuZC0xKTtpZih0LnBhcnNlZENzc1RleHQ9dC5jc3NUZXh0PW4udHJpbSgpLHQucGFyZW50JiYobj1mdW5jdGlvbiBucih0KXtyZXR1cm4gdC5yZXBsYWNl''@;'; put 'put ''KC9cXChbMC05YS1mXXsxLDZ9KVxzL2dpLGZ1bmN0aW9uKGksbil7Zm9yKG49Ni0oaT1uKS5sZW5ndGg7bi0tOylpPSIwIitpO3JldHVybiJcXCIraX0pfShuPWkuc3Vic3RyaW5nKHQucHJldmlvdXM/dC5wcmV2aW91cy5lbmQ6dC5wYXJlbnQuc3RhcnQsdC5zdGFydC0xKSksbj0obj1uLnJl''@;'; put 'put ''cGxhY2UoVGksIiAiKSkuc3Vic3RyaW5nKG4ubGFzdEluZGV4T2YoIjsiKSsxKSxuPXQucGFyc2VkU2VsZWN0b3I9dC5zZWxlY3Rvcj1uLnRyaW0oKSx0LmF0UnVsZT0wPT09bi5pbmRleE9mKCJAIiksdC5hdFJ1bGU/MD09PW4uaW5kZXhPZigiQG1lZGlhIik/dC50eXBlPXdpOm4ubWF0Y2go''@;'; put 'put ''ZHIpJiYodC50eXBlPV9lLHQua2V5ZnJhbWVzTmFtZT10LnNlbGVjdG9yLnNwbGl0KFRpKS5wb3AoKSk6dC50eXBlPTA9PT1uLmluZGV4T2YoIi0tIik/eGk6X2kpLG49dC5ydWxlcylmb3IodmFyIHM9MCxkPW4ubGVuZ3RoLG09dm9pZCAwO3M8ZCYmKG09bltzXSk7cysrKVNpKG0saSk7cmV0''@;'; put 'put ''dXJuIHR9ZnVuY3Rpb24gYmkodCxpLG4pe249dm9pZCAwPT09bj8iIjpuO3ZhciBzPSIiO2lmKHQuY3NzVGV4dHx8dC5ydWxlcyl7dmFyIG0sZD10LnJ1bGVzO2lmKChtPWQpJiYobT0hKChtPWRbMF0pJiZtLnNlbGVjdG9yJiYwPT09bS5zZWxlY3Rvci5pbmRleE9mKCItLSIpKSksbSl7bT0w''@;'; put 'put ''O2Zvcih2YXIgTD1kLmxlbmd0aCxGPXZvaWQgMDttPEwmJihGPWRbbV0pO20rKylzPWJpKEYsaSxzKX1lbHNlKHM9KGk9aT90LmNzc1RleHQ6KGk9KGk9dC5jc3NUZXh0KS5yZXBsYWNlKERpLCIiKS5yZXBsYWNlKEVpLCIiKSkucmVwbGFjZShzciwiIikucmVwbGFjZShociwiIikpLnRyaW0o''@;'; put 'put ''KSkmJihzPSIgICIrcysiXG4iKX1yZXR1cm4gcyYmKHQuc2VsZWN0b3ImJihuKz10LnNlbGVjdG9yKyIge1xuIiksbis9cyx0LnNlbGVjdG9yJiYobis9In1cblxuIikpLG59ajAmJiFqMC5mb3JjZVBvbHlmaWxsJiYiZnVuY3Rpb24iPT10eXBlb2YgajAuZGVmaW5lJiYiZnVuY3Rpb24iPT10''@;'; put 'put ''eXBlb2YgajAuZ2V0fHxMaSgpLHdpbmRvdy5fX0NFX2luc3RhbGxQb2x5ZmlsbD1MaTt2YXIgd2UsVnQsX2k9MSxfZT03LHdpPTQseGk9MWUzLGNyPS9cL1wqW14qXSpcKisoW14vKl1bXipdKlwqKykqXC8vZ2ltLG9yPS9AaW1wb3J0W147XSo7L2dpbSxEaT0vKD86XlteO1wtXHN9XSspPy0t''@;'; put 'put ''W147e31dKj86W157fTtdKj8oPzpbO1xuXXwkKS9naW0sRWk9Lyg/Ol5bXjtcLVxzfV0rKT8tLVteO3t9XSo/Oltee307XSo/e1tefV0qP30oPzpbO1xuXXwkKT8vZ2ltLHNyPS9AYXBwbHlccypcKD9bXik7XSpcKT9ccyooPzpbO1xuXXwkKT8vZ2ltLGhyPS9bXjs6XSo/OlteO10qP3Zhclwo''@;'; put 'put ''W147XSpcKSg/Ols7XG5dfCQpPy9naW0sZHI9L15AW15cc10qa2V5ZnJhbWVzLyxUaT0vXHMrL2csaDA9ISh3aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS5pblVzZSk7ZnVuY3Rpb24gTmkodCl7d2U9KCF0fHwhdC5zaGltY3NzcHJvcGVydGllcykmJihoMHx8IShuYXZpZ2F0b3Iu''@;'; put 'put ''dXNlckFnZW50Lm1hdGNoKC9BcHBsZVdlYktpdFwvNjAxfEVkZ2VcLzE1Lyl8fCF3aW5kb3cuQ1NTfHwhQ1NTLnN1cHBvcnRzfHwhQ1NTLnN1cHBvcnRzKCJib3gtc2hhZG93IiwiMCAwIDAgdmFyKC0tZm9vKSIpKSl9d2luZG93LlNoYWR5Q1NTJiZ2b2lkIDAhPT13aW5kb3cuU2hhZHlDU1Mu''@;'; put 'put ''Y3NzQnVpbGQmJihWdD13aW5kb3cuU2hhZHlDU1MuY3NzQnVpbGQpO3ZhciBMMj0hKCF3aW5kb3cuU2hhZHlDU1N8fCF3aW5kb3cuU2hhZHlDU1MuZGlzYWJsZVJ1bnRpbWUpO3dpbmRvdy5TaGFkeUNTUyYmdm9pZCAwIT09d2luZG93LlNoYWR5Q1NTLm5hdGl2ZUNzcz93ZT13aW5kb3cuU2hh''@;'; put 'put ''ZHlDU1MubmF0aXZlQ3NzOndpbmRvdy5TaGFkeUNTUz8oTmkod2luZG93LlNoYWR5Q1NTKSx3aW5kb3cuU2hhZHlDU1M9dm9pZCAwKTpOaSh3aW5kb3cuV2ViQ29tcG9uZW50cyYmd2luZG93LldlYkNvbXBvbmVudHMuZmxhZ3MpO3ZhciBDMD13ZSxtdD0vKD86XnxbO1xze11ccyopKC0tW1x3''@;'; put 'put ''LV0qPylccyo6XHMqKD86KCg/OicoPzpcXCd8LikqPyd8Iig/OlxcInwuKSo/InxcKFteKV0qP1wpfFtefTt7XSkrKXxceyhbXn1dKilcfSg/Oig/PVs7XHN9XSl8JCkpL2dpLE10PS8oPzpefFxXKylAYXBwbHlccypcKD8oW14pO1xuXSopXCk/L2dpLHVyPS8oLS1bXHctXSspXHMqKFs6LDsp''@;'; put 'put ''XXwkKS9naSxwcj0vKGFuaW1hdGlvblxzKjopfChhbmltYXRpb24tbmFtZVxzKjopLyxmcj0vQG1lZGlhXHMoLiopLyxncj0vXHtbXn1dKlx9L2csRmk9bmV3IFNldDtmdW5jdGlvbiBTMih0LGkpe3JldHVybiB0Pygic3RyaW5nIj09dHlwZW9mIHQmJih0PWJlKHQpKSxpJiZiMih0LGkpLGJp''@;'; put 'put ''KHQsQzApKToiIn1mdW5jdGlvbiBXMih0KXtyZXR1cm4hdC5fX2Nzc1J1bGVzJiZ0LnRleHRDb250ZW50JiYodC5fX2Nzc1J1bGVzPWJlKHQudGV4dENvbnRlbnQpKSx0Ll9fY3NzUnVsZXN8fG51bGx9ZnVuY3Rpb24gSWkodCl7cmV0dXJuISF0LnBhcmVudCYmdC5wYXJlbnQudHlwZT09PV9l''@;'; put 'put ''fWZ1bmN0aW9uIGIyKHQsaSxuLHMpe2lmKHQpe3ZhciBkPSExLG09dC50eXBlO2lmKHMmJm09PT13aSl7dmFyIEw9dC5zZWxlY3Rvci5tYXRjaChmcik7TCYmKHdpbmRvdy5tYXRjaE1lZGlhKExbMV0pLm1hdGNoZXN8fChkPSEwKSl9aWYobT09PV9pP2kodCk6biYmbT09PV9lP24odCk6bT09''@;'; put 'put ''PXhpJiYoZD0hMCksKHQ9dC5ydWxlcykmJiFkKWZvcihkPTAsbT10Lmxlbmd0aCxMPXZvaWQgMDtkPG0mJihMPXRbZF0pO2QrKyliMihMLGksbixzKX19ZnVuY3Rpb24geGUodCxpLG4scyl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTtyZXR1cm4gaSYmZC5zZXRBdHRy''@;'; put 'put ''aWJ1dGUoInNjb3BlIixpKSxkLnRleHRDb250ZW50PXQsT2koZCxuLHMpLGR9dmFyIG8yPW51bGw7ZnVuY3Rpb24ga2kodCl7dD1kb2N1bWVudC5jcmVhdGVDb21tZW50KCIgU2hhZHkgRE9NIHN0eWxlcyBmb3IgIit0KyIgIik7dmFyIGk9ZG9jdW1lbnQuaGVhZDtyZXR1cm4gaS5pbnNlcnRC''@;'; put 'put ''ZWZvcmUodCwobzI/bzIubmV4dFNpYmxpbmc6bnVsbCl8fGkuZmlyc3RDaGlsZCksbzI9dH1mdW5jdGlvbiBPaSh0LGksbil7KGk9aXx8ZG9jdW1lbnQuaGVhZCkuaW5zZXJ0QmVmb3JlKHQsbiYmbi5uZXh0U2libGluZ3x8aS5maXJzdENoaWxkKSxvMj90LmNvbXBhcmVEb2N1bWVudFBvc2l0''@;'; put 'put ''aW9uKG8yKT09PU5vZGUuRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HJiYobzI9dCk6bzI9dH1mdW5jdGlvbiBEZSh0LGkpe2Zvcih2YXIgbj0wLHM9dC5sZW5ndGg7aTxzO2krKylpZigiKCI9PT10W2ldKW4rKztlbHNlIGlmKCIpIj09PXRbaV0mJjA9PS0tbilyZXR1cm4gaTtyZXR1cm4t''@;'; put 'put ''MX1mdW5jdGlvbiBQaSh0LGkpe3ZhciBuPXQuaW5kZXhPZigidmFyKCIpO2lmKC0xPT09bilyZXR1cm4gaSh0LCIiLCIiLCIiKTt2YXIgcz1EZSh0LG4rMyksZD10LnN1YnN0cmluZyhuKzQscyk7cmV0dXJuIG49dC5zdWJzdHJpbmcoMCxuKSx0PVBpKHQuc3Vic3RyaW5nKHMrMSksaSksLTE9''@;'; put 'put ''PT0ocz1kLmluZGV4T2YoIiwiKSk/aShuLGQudHJpbSgpLCIiLHQpOmkobixkLnN1YnN0cmluZygwLHMpLnRyaW0oKSxkLnN1YnN0cmluZyhzKzEpLnRyaW0oKSx0KX1mdW5jdGlvbiBadCh0LGkpe2gwP3Quc2V0QXR0cmlidXRlKCJjbGFzcyIsaSk6d2luZG93LlNoYWR5RE9NLm5hdGl2ZU1l''@;'; put 'put ''dGhvZHMuc2V0QXR0cmlidXRlLmNhbGwodCwiY2xhc3MiLGkpfXZhciAkMj13aW5kb3cuU2hhZHlET00mJndpbmRvdy5TaGFkeURPTS53cmFwfHxmdW5jdGlvbih0KXtyZXR1cm4gdH07ZnVuY3Rpb24gczIodCl7dmFyIGk9dC5sb2NhbE5hbWUsbj0iIjtyZXR1cm4gaT8tMTxpLmluZGV4T2Yo''@;'; put 'put ''Ii0iKXx8KG49aSxpPXQuZ2V0QXR0cmlidXRlJiZ0LmdldEF0dHJpYnV0ZSgiaXMiKXx8IiIpOihpPXQuaXMsbj10LmV4dGVuZHMpLHtpczppLGhhOm59fWZ1bmN0aW9uIEJpKHQpe2Zvcih2YXIgaT1bXSxuPSIiLHM9MDswPD1zJiZzPHQubGVuZ3RoO3MrKylpZigiKCI9PT10W3NdKXt2YXIg''@;'; put 'put ''ZD1EZSh0LHMpO24rPXQuc2xpY2UocyxkKzEpLHM9ZH1lbHNlIiwiPT09dFtzXT8oaS5wdXNoKG4pLG49IiIpOm4rPXRbc107cmV0dXJuIG4mJmkucHVzaChuKSxpfWZ1bmN0aW9uIF8yKHQpe2lmKHZvaWQgMCE9PVZ0KXJldHVybiBWdDtpZih2b2lkIDA9PT10Ll9fY3NzQnVpbGQpe3ZhciBp''@;'; put 'put ''PXQuZ2V0QXR0cmlidXRlKCJjc3MtYnVpbGQiKTtpZihpKXQuX19jc3NCdWlsZD1pO2Vsc2V7aWYoIiIhPT0oaT0oaT0idGVtcGxhdGUiPT09dC5sb2NhbE5hbWU/dC5jb250ZW50LmZpcnN0Q2hpbGQ6dC5maXJzdENoaWxkKWluc3RhbmNlb2YgQ29tbWVudCYmImNzcy1idWlsZCI9PT0oaT1p''@;'; put 'put ''LnRleHRDb250ZW50LnRyaW0oKS5zcGxpdCgiOiIpKVswXT9pWzFdOiIiKSl7dmFyIG49InRlbXBsYXRlIj09PXQubG9jYWxOYW1lP3QuY29udGVudC5maXJzdENoaWxkOnQuZmlyc3RDaGlsZDtuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9dC5fX2Nzc0J1aWxkPWl9fXJldHVybiB0Ll9f''@;'; put 'put ''Y3NzQnVpbGR8fCIifWZ1bmN0aW9uIEVlKHQpe3JldHVybiEoIiI9PT0odD12b2lkIDA9PT10PyIiOnQpfHwhQzApJiYoaDA/InNoYWRvdyI9PT10OiJzaGFkeSI9PT10KX1mdW5jdGlvbiB5dCgpe31mdW5jdGlvbiBMdCh0LGksbil7dmFyIHM7aWYoaS5ub2RlVHlwZT09PU5vZGUuRUxFTUVO''@;'; put 'put ''VF9OT0RFJiZuKGkpLHM9InRlbXBsYXRlIj09PWkubG9jYWxOYW1lPyhpLmNvbnRlbnR8fGkuX2NvbnRlbnR8fGkpLmNoaWxkTm9kZXM6aS5jaGlsZHJlbnx8aS5jaGlsZE5vZGVzKWZvcihpPTA7aTxzLmxlbmd0aDtpKyspTHQodCxzW2ldLG4pfWZ1bmN0aW9uIGgyKHQsaSxuKXtpZihpKWlm''@;'; put 'put ''KHQuY2xhc3NMaXN0KW4/KHQuY2xhc3NMaXN0LnJlbW92ZSgic3R5bGUtc2NvcGUiKSx0LmNsYXNzTGlzdC5yZW1vdmUoaSkpOih0LmNsYXNzTGlzdC5hZGQoInN0eWxlLXNjb3BlIiksdC5jbGFzc0xpc3QuYWRkKGkpKTtlbHNlIGlmKHQuZ2V0QXR0cmlidXRlKXt2YXIgcz10LmdldEF0dHJp''@;'; put 'put ''YnV0ZSgiY2xhc3MiKTtuP3MmJlp0KHQsaT1zLnJlcGxhY2UoInN0eWxlLXNjb3BlIiwiIikucmVwbGFjZShpLCIiKSk6WnQodCwocz9zKyIgIjoiIikrInN0eWxlLXNjb3BlICIraSl9fWZ1bmN0aW9uIHZyKHQsaSxuKXtMdChUMCx0LGZ1bmN0aW9uKHMpe2gyKHMsaSwhMCksaDIocyxuKX0p''@;'; put 'put ''fWZ1bmN0aW9uIEhyKHQsaSl7THQoVDAsdCxmdW5jdGlvbihuKXtoMihuLGl8fCIiLCEwKX0pfWZ1bmN0aW9uIFN0KHQsaSxuLHMsZCl7dmFyIG09VDA7cmV0dXJuIiI9PT0oZD12b2lkIDA9PT1kPyIiOmQpJiYoZD1oMHx8InNoYWR5Ij09PSh2b2lkIDA9PT1zPyIiOnMpP1MyKGksbik6ZnVu''@;'; put 'put ''Y3Rpb24gQ3IodCxpLG4scyxkKXt2YXIgbT1UZShuLHMpO3JldHVybiBuPW4/Ii4iK246IiIsUzIoaSxmdW5jdGlvbihMKXtMLml8fChMLnNlbGVjdG9yPUwuRj1OZSh0LEwsdC5oLG4sbSksTC5pPSEwKSxkJiZkKEwsbixtKX0pfShtLGksKHQ9czIodCkpLmlzLHQuaGEsbikrIlxuXG4iKSxk''@;'; put 'put ''LnRyaW0oKX1mdW5jdGlvbiBUZSh0LGkpe3JldHVybiBpPyJbaXM9Iit0KyJdIjp0fWZ1bmN0aW9uIE5lKHQsaSxuLHMsZCl7dmFyIG09QmkoaS5zZWxlY3Rvcik7aWYoIUlpKGkpKXtpPTA7Zm9yKHZhciBMPW0ubGVuZ3RoLEY9dm9pZCAwO2k8TCYmKEY9bVtpXSk7aSsrKW1baV09bi5jYWxs''@;'; put 'put ''KHQsRixzLGQpfXJldHVybiBtLmZpbHRlcihmdW5jdGlvbihHKXtyZXR1cm4hIUd9KS5qb2luKCIsIil9ZnVuY3Rpb24gR2kodCl7cmV0dXJuIHQucmVwbGFjZShGZSxmdW5jdGlvbihpLG4scyl7cmV0dXJuLTE8cy5pbmRleE9mKCIrIik/cz1zLnJlcGxhY2UoL1wrL2csIl9fXyIpOi0xPHMu''@;'; put 'put ''aW5kZXhPZigiX19fIikmJihzPXMucmVwbGFjZSgvX19fL2csIisiKSksIjoiK24rIigiK3MrIikifSl9ZnVuY3Rpb24gamkodCxpKXt0PXQuc3BsaXQoLyhcWy4rP1xdKS8pO2Zvcih2YXIgbj1bXSxzPTA7czx0Lmxlbmd0aDtzKyspaWYocyUyPT0xKW4ucHVzaCh0W3NdKTtlbHNle3ZhciBk''@;'; put 'put ''PXRbc107KCIiIT09ZHx8cyE9PXQubGVuZ3RoLTEpJiYoKGQ9ZC5zcGxpdCgiOiIpKVswXSs9aSxuLnB1c2goZC5qb2luKCI6IikpKX1yZXR1cm4gbi5qb2luKCIiKX1mdW5jdGlvbiBSaSh0KXsiOnJvb3QiPT09dC5zZWxlY3RvciYmKHQuc2VsZWN0b3I9Imh0bWwiKX15dC5wcm90b3R5cGUu''@;'; put 'put ''aD1mdW5jdGlvbih0LGksbil7dmFyIHM9ITE7dD10LnRyaW0oKTt2YXIgZD1GZS50ZXN0KHQpO2QmJih0PUdpKHQ9dC5yZXBsYWNlKEZlLGZ1bmN0aW9uKEYsRyxVKXtyZXR1cm4iOiIrRysiKCIrVS5yZXBsYWNlKC9ccy9nLCIiKSsiKSJ9KSkpO3ZhciBtPVdpLnRlc3QodCk7aWYobSl7dmFy''@;'; put 'put ''IEw9ZnVuY3Rpb24gVnIodCl7Zm9yKHZhciBuLGk9W107bj10Lm1hdGNoKFdpKTspe3ZhciBzPW4uaW5kZXgsZD1EZSh0LHMpO2lmKC0xPT09ZCl0aHJvdyBFcnJvcihuLmlucHV0KyIgc2VsZWN0b3IgbWlzc2luZyAnKSciKTtuPXQuc2xpY2UocyxkKzEpLHQ9dC5yZXBsYWNlKG4sIlx1ZTAw''@;'; put 'put ''MCIpLGkucHVzaChuKX1yZXR1cm57QmE6dCxtYXRjaGVzOml9fSh0KTt0PUwuQmEsTD1MLm1hdGNoZXN9cmV0dXJuIHQ9KHQ9dC5yZXBsYWNlKExyLCI6aG9zdCAkMSIpKS5yZXBsYWNlKHlyLGZ1bmN0aW9uKEYsRyxVKXtyZXR1cm4gc3x8KEY9ZnVuY3Rpb24gTXIodCxpLG4scyl7dmFyIGQ9''@;'; put 'put ''dC5pbmRleE9mKCI6OnNsb3R0ZWQiKTtpZigwPD10LmluZGV4T2YoIjpob3N0Iik/dD1mdW5jdGlvbiBacih0LGkpe3ZhciBuPXQubWF0Y2goVWkpO3JldHVybihuPW4mJm5bMl0udHJpbSgpfHwiIik/blswXS5tYXRjaCh6aSk/dC5yZXBsYWNlKFVpLGZ1bmN0aW9uKHMsZCxtKXtyZXR1cm4g''@;'; put 'put ''aSttfSk6bi5zcGxpdCh6aSlbMF09PT1pP246InNob3VsZF9ub3RfbWF0Y2giOnQucmVwbGFjZSgiOmhvc3QiLGkpfSh0LHMpOjAhPT1kJiYodD1uP2ppKHQsbik6dCksbj0hMSwwPD1kJiYoaT0iIixuPSEwKSxuKXt2YXIgbT0hMDtuJiYodD10LnJlcGxhY2UoU3IsZnVuY3Rpb24oTCxGKXty''@;'; put 'put ''ZXR1cm4iID4gIitGfSkpfXJldHVybnt2YWx1ZTp0LFVhOmksc3RvcDptfX0oVSxHLGksbikscz1zfHxGLnN0b3AsRz1GLlVhLFU9Ri52YWx1ZSksRytVfSksbSYmKHQ9ZnVuY3Rpb24gbXIodCxpKXt2YXIgbj10LnNwbGl0KCJcdWUwMDAiKTtyZXR1cm4gaS5yZWR1Y2UoZnVuY3Rpb24ocyxk''@;'; put 'put ''LG0pe3JldHVybiBzK2QrblttKzFdfSxuWzBdKX0odCxMKSksZCYmKHQ9R2kodCkpLHQucmVwbGFjZShicixmdW5jdGlvbihGLEcsVSxLKXtyZXR1cm4nW2Rpcj0iJytVKyciXSAnK0crSysiLCAiK0crJ1tkaXI9IicrVSsnIl0nK0t9KX0seXQucHJvdG90eXBlLmk9ZnVuY3Rpb24odCl7cmV0''@;'; put 'put ''dXJuIHQubWF0Y2goIjpob3N0Iik/IiI6dC5tYXRjaCgiOjpzbG90dGVkIik/dGhpcy5oKHQsIjpub3QoLnN0eWxlLXNjb3BlKSIpOmppKHQudHJpbSgpLCI6bm90KC5zdHlsZS1zY29wZSkiKX0sZS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyh5dC5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJs''@;'; put 'put ''ZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJzdHlsZS1zY29wZSJ9fX0pO3ZhciBGZT0vOihudGhbLVx3XSspXCgoW14pXSspXCkvLHlyPS8oXnxbXHM+K35dKykoKD86XFsuKz9cXXxbXlxzPit+PVtdKSspL2csemk9L1tbLjojKl0vLExyPS9eKDo6c2xvdHRlZCkv''@;'; put 'put ''LFVpPS8oOmhvc3QpKD86XCgoKD86XChbXikoXSpcKXxbXikoXSopKz8pXCkpLyxTcj0vKD86OjpzbG90dGVkKSg/OlwoKCg/OlwoW14pKF0qXCl8W14pKF0qKSs/KVwpKS8sYnI9LyguKik6ZGlyXCgoPzoobHRyfHJ0bCkpXCkoLiopLyxXaT0vOig/Om1hdGNoZXN8YW55fC0oPzp3ZWJraXR8''@;'; put 'put ''bW96KS1hbnkpLyxUMD1uZXcgeXQ7ZnVuY3Rpb24gdzIodCxpLG4scyxkKXt0aGlzLk09dHx8bnVsbCx0aGlzLmg9aXx8bnVsbCx0aGlzLnphPW58fFtdLHRoaXMuSz1udWxsLHRoaXMuY3NzQnVpbGQ9ZHx8IiIsdGhpcy5oYT1zfHwiIix0aGlzLmc9dGhpcy5MPXRoaXMuUj1udWxsfWZ1bmN0''@;'; put 'put ''aW9uIE4wKHQpe3JldHVybiB0P3QuX19zdHlsZUluZm86bnVsbH1mdW5jdGlvbiBJZSh0LGkpe3JldHVybiB0Ll9fc3R5bGVJbmZvPWl9ZnVuY3Rpb24gJGkodCl7dmFyIGk9dGhpcy5tYXRjaGVzfHx0aGlzLm1hdGNoZXNTZWxlY3Rvcnx8dGhpcy5tb3pNYXRjaGVzU2VsZWN0b3J8fHRoaXMu''@;'; put 'put ''bXNNYXRjaGVzU2VsZWN0b3J8fHRoaXMub01hdGNoZXNTZWxlY3Rvcnx8dGhpcy53ZWJraXRNYXRjaGVzU2VsZWN0b3I7cmV0dXJuIGkmJmkuY2FsbCh0aGlzLHQpfXcyLnByb3RvdHlwZS5fZ2V0U3R5bGVSdWxlcz13Mi5wcm90b3R5cGUuaT1mdW5jdGlvbigpe3JldHVybiB0aGlzLk19O3Zh''@;'; put 'put ''ciBfcj0vOmhvc3Rccyo+XHMqLyx3cj1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJUcmlkZW50Iik7ZnVuY3Rpb24gcWkoKXt9ZnVuY3Rpb24gYnQodCl7aWYoIXQuRCl7dmFyIGk9e30sbj17fTtfdCh0LG4pJiYoaS5QPW4sdC5ydWxlcz1udWxsKSxpLmNzc1RleHQ9dC5wYXJzZWRDc3NU''@;'; put 'put ''ZXh0LnJlcGxhY2UoZ3IsIiIpLnJlcGxhY2UobXQsIiIpLHQuRD1pfX1mdW5jdGlvbiBfdCh0LGkpe3ZhciBuPXQuRDtpZighbil7bj10LnBhcnNlZENzc1RleHQ7Zm9yKHZhciBzO3Q9bXQuZXhlYyhuKTspKCJpbmhlcml0IiE9PShzPSh0WzJdfHx0WzNdKS50cmltKCkpfHwidW5zZXQiIT09''@;'; put 'put ''cykmJihpW3RbMV0udHJpbSgpXT1zKSxzPSEwO3JldHVybiBzfWlmKG4uUClyZXR1cm4gT2JqZWN0LmFzc2lnbihpLG4uUCksITB9ZnVuY3Rpb24gcTIodCxpLG4pe3JldHVybiBpJiYoaT0wPD1pLmluZGV4T2YoIjsiKT9rZSh0LGksbik6UGkoaSxmdW5jdGlvbihzLGQsbSxMKXtyZXR1cm4g''@;'; put 'put ''ZD8oKGQ9cTIodCxuW2RdLG4pKSYmImluaXRpYWwiIT09ZD8iYXBwbHktc2hpbS1pbmhlcml0Ij09PWQmJihkPSJpbmhlcml0Iik6ZD1xMih0LG5bbV18fG0sbil8fG0scysoZHx8IiIpK0wpOnMrTH0pKSxpJiZpLnRyaW0oKXx8IiJ9ZnVuY3Rpb24ga2UodCxpLG4pe2k9aS5zcGxpdCgiOyIp''@;'; put 'put ''O2Zvcih2YXIgZCxtLHM9MDtzPGkubGVuZ3RoO3MrKylpZihkPWlbc10pe2lmKE10Lmxhc3RJbmRleD0wLG09TXQuZXhlYyhkKSlkPXEyKHQsblttWzFdXSxuKTtlbHNlIGlmKC0xIT09KG09ZC5pbmRleE9mKCI6IikpKXt2YXIgTD1kLnN1YnN0cmluZyhtKTtMPXEyKHQsTD1MLnRyaW0oKSxu''@;'; put 'put ''KXx8TCxkPWQuc3Vic3RyaW5nKDAsbSkrTH1pW3NdPWQmJmQubGFzdEluZGV4T2YoIjsiKT09PWQubGVuZ3RoLTE/ZC5zbGljZSgwLC0xKTpkfHwiIn1yZXR1cm4gaS5qb2luKCI7Iil9ZnVuY3Rpb24gSXIodCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBpLnJlcGxhY2UodC51LHQuZyl9''@;'; put 'put ''fWZ1bmN0aW9uIGtyKHQsaSl7dmFyIG49d3Qscz1XMih0KTt0LnRleHRDb250ZW50PVMyKHMsZnVuY3Rpb24oZCl7dmFyIG09ZC5jc3NUZXh0PWQucGFyc2VkQ3NzVGV4dDtkLkQmJmQuRC5jc3NUZXh0JiYobT1tLnJlcGxhY2UoRGksIiIpLnJlcGxhY2UoRWksIiIpLGQuY3NzVGV4dD1rZShu''@;'; put 'put ''LG0saSkpfSl9ZS5PYmplY3QuZGVmaW5lUHJvcGVydGllcyhxaS5wcm90b3R5cGUse2c6e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiJ4LXNjb3BlIn19fSk7dmFyIHd0PW5ldyBxaSx4Mj17fSx4dD13aW5kb3cuY3VzdG9tRWxlbWVudHM7aWYo''@;'; put 'put ''eHQmJiFoMCYmIUwyKXt2YXIgT3I9eHQuZGVmaW5lO3h0LmRlZmluZT1mdW5jdGlvbih0LGksbil7eDJbdF18fCh4Mlt0XT1raSh0KSksT3IuY2FsbCh4dCx0LGksbil9fWZ1bmN0aW9uIFlpKCl7dGhpcy5jYWNoZT17fX1mdW5jdGlvbiBLaSgpe31ZaS5wcm90b3R5cGUuc3RvcmU9ZnVuY3Rp''@;'; put 'put ''b24odCxpLG4scyl7dmFyIGQ9dGhpcy5jYWNoZVt0XXx8W107ZC5wdXNoKHtQOmksc3R5bGVFbGVtZW50Om4sTDpzfSksMTAwPGQubGVuZ3RoJiZkLnNoaWZ0KCksdGhpcy5jYWNoZVt0XT1kfTt2YXIgUHI9bmV3IFJlZ0V4cChUMC5nKyJcXHMqKFteXFxzXSopIik7ZnVuY3Rpb24gWGkodCl7''@;'; put 'put ''cmV0dXJuKHQ9KHQuY2xhc3NMaXN0JiZ0LmNsYXNzTGlzdC52YWx1ZT90LmNsYXNzTGlzdC52YWx1ZTp0LmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiIpLm1hdGNoKFByKSk/dFsxXToiIn1mdW5jdGlvbiBPZSh0KXt2YXIgaT0kMih0KS5nZXRSb290Tm9kZSgpO3JldHVybiBpPT09dHx8aT09''@;'; put 'put ''PXQub3duZXJEb2N1bWVudD8iIjoodD1pLmhvc3QpP3MyKHQpLmlzOiIifWZ1bmN0aW9uIFFpKHQpe2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgbj10W2ldO2lmKG4udGFyZ2V0IT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiZuLnRhcmdldCE9PWRvY3VtZW50LmhlYWQpZm9y''@;'; put 'put ''KHZhciBzPTA7czxuLmFkZGVkTm9kZXMubGVuZ3RoO3MrKyl7dmFyIGQ9bi5hZGRlZE5vZGVzW3NdO2lmKGQubm9kZVR5cGU9PT1Ob2RlLkVMRU1FTlRfTk9ERSl7dmFyIG09ZC5nZXRSb290Tm9kZSgpLEw9WGkoZCk7aWYoTCYmbT09PWQub3duZXJEb2N1bWVudCYmKCJzdHlsZSIhPT1kLmxv''@;'; put 'put ''Y2FsTmFtZSYmInRlbXBsYXRlIiE9PWQubG9jYWxOYW1lfHwiIj09PV8yKGQpKSlIcihkLEwpO2Vsc2UgaWYobSBpbnN0YW5jZW9mIFNoYWRvd1Jvb3QpZm9yKChtPU9lKGQpKSE9PUwmJnZyKGQsTCxtKSxkPXdpbmRvdy5TaGFkeURPTS5uYXRpdmVNZXRob2RzLnF1ZXJ5U2VsZWN0b3JBbGwu''@;'; put 'put ''Y2FsbChkLCI6bm90KC4iK1QwLmcrIikiKSxMPTA7TDxkLmxlbmd0aDtMKyspe3ZhciBGPU9lKG09ZFtMXSk7RiYmaDIobSxGKX19fX19aWYoIShoMHx8d2luZG93LlNoYWR5RE9NJiZ3aW5kb3cuU2hhZHlET00uaGFuZGxlc0R5bmFtaWNTY29waW5nKSl7dmFyIEppPW5ldyBNdXRhdGlvbk9i''@;'; put 'put ''c2VydmVyKFFpKSx0YT1mdW5jdGlvbih0KXtKaS5vYnNlcnZlKHQse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSl9O2lmKHdpbmRvdy5jdXN0b21FbGVtZW50cyYmIXdpbmRvdy5jdXN0b21FbGVtZW50cy5wb2x5ZmlsbFdyYXBGbHVzaENhbGxiYWNrKXRhKGRvY3VtZW50KTtlbHNle3ZhciBQ''@;'; put 'put ''ZT1mdW5jdGlvbigpe3RhKGRvY3VtZW50LmJvZHkpfTt3aW5kb3cuSFRNTEltcG9ydHM/d2luZG93LkhUTUxJbXBvcnRzLndoZW5SZWFkeShQZSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoImxvYWRpbmciPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSl7dmFyIHQ9ZnVuY3Rp''@;'; put 'put ''b24oKXtQZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlYWR5c3RhdGVjaGFuZ2UiLHQpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIix0KX1lbHNlIFBlKCl9KX1LaT1mdW5jdGlvbigpe1FpKEppLnRha2VSZWNvcmRzKCkpfX12YXIgRHQ9''@;'; put 'put ''e30sQnI9UHJvbWlzZS5yZXNvbHZlKCk7ZnVuY3Rpb24gR3IodCl7KHQ9RHRbdF0pJiYodC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249dC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb258fDAsdC5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNpb249dC5fYXBwbHlTaGltVmFsaWRhdGluZ1ZlcnNp''@;'; put 'put ''b258fDAsdC5fYXBwbHlTaGltTmV4dFZlcnNpb249KHQuX2FwcGx5U2hpbU5leHRWZXJzaW9ufHwwKSsxKX1mdW5jdGlvbiBlYSh0KXtyZXR1cm4gdC5fYXBwbHlTaGltQ3VycmVudFZlcnNpb249PT10Ll9hcHBseVNoaW1OZXh0VmVyc2lvbn12YXIgbGE9e30saWE9bmV3IFlpO2Z1bmN0aW9u''@;'; put 'put ''IEcxKCl7dGhpcy5kYT17fSx0aGlzLmk9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O3ZhciB0PW5ldyBTZTt0LnJ1bGVzPVtdLHRoaXMudT1JZSh0aGlzLmksbmV3IHcyKHQpKSx0aGlzLk89ITEsdGhpcy5nPXRoaXMuaD1udWxsfWZ1bmN0aW9uIGFhKHQpe3ZhciBpPXMyKHQpLG49aS5pcztp''@;'; put 'put ''PWkuaGE7dmFyIHM9eDJbbl18fG51bGwsZD1EdFtuXTtpZihkKXJldHVybiBJZSh0LGk9bmV3IHcyKG49ZC5fc3R5bGVBc3QscyxkLmcsaSxkPV8yKGQpKSksaX1mdW5jdGlvbiBZMih0KXtpZighdC5oJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5BcHBseVNoaW0pe3QuaD13''@;'; put 'put ''aW5kb3cuU2hhZHlDU1MuQXBwbHlTaGltLHQuaC5pbnZhbGlkQ2FsbGJhY2s9R3I7dmFyIGk9ITB9ZWxzZSBpPSExO3JldHVybiBmdW5jdGlvbiBScih0KXshdC5nJiZ3aW5kb3cuU2hhZHlDU1MmJndpbmRvdy5TaGFkeUNTUy5DdXN0b21TdHlsZUludGVyZmFjZSYmKHQuZz13aW5kb3cuU2hh''@;'; put 'put ''ZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2UsdC5nLnRyYW5zZm9ybUNhbGxiYWNrPWZ1bmN0aW9uKGkpe3QuTWEoaSl9LHQuZy52YWxpZGF0ZUNhbGxiYWNrPWZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7KHQuZy5lbnF1ZXVlZHx8dC5PKSYmdC5mbHVzaEN1''@;'; put 'put ''c3RvbVN0eWxlcygpfSl9KX0odCksaX1mdW5jdGlvbiByYSh0LGksbil7dmFyIHM9czIoaSkuaXM7aWYobi5LKXt2YXIgbSxkPW4uSztmb3IobSBpbiBkKW51bGw9PT1tP2kuc3R5bGUucmVtb3ZlUHJvcGVydHkobSk6aS5zdHlsZS5zZXRQcm9wZXJ0eShtLGRbbV0pfSEoIShkPUR0W3NdKSYm''@;'; put 'put ''aSE9PXQuaXx8ZCYmIiIhPT1fMihkKSkmJmQmJmQuX3N0eWxlJiYhZWEoZCkmJigoZWEoZCl8fGQuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uIT09ZC5fYXBwbHlTaGltTmV4dFZlcnNpb24pJiYoWTIodCksdC5oJiZ0LmgudHJhbnNmb3JtUnVsZXMoZC5fc3R5bGVBc3QscyksZC5fc3R5''@;'; put 'put ''bGUudGV4dENvbnRlbnQ9U3QoaSxuLk0pLGZ1bmN0aW9uIGpyKHQpe3QuX2FwcGx5U2hpbVZhbGlkYXRpbmdWZXJzaW9uPXQuX2FwcGx5U2hpbU5leHRWZXJzaW9uLHQuX3ZhbGlkYXRpbmd8fCh0Ll92YWxpZGF0aW5nPSEwLEJyLnRoZW4oZnVuY3Rpb24oKXt0Ll9hcHBseVNoaW1DdXJyZW50''@;'; put 'put ''VmVyc2lvbj10Ll9hcHBseVNoaW1OZXh0VmVyc2lvbix0Ll92YWxpZGF0aW5nPSExfSkpfShkKSksaDAmJih0PWkuc2hhZG93Um9vdCkmJih0PXQucXVlcnlTZWxlY3Rvcigic3R5bGUiKSkmJih0LnRleHRDb250ZW50PVN0KGksbi5NKSksbi5NPWQuX3N0eWxlQXN0KX1mdW5jdGlvbiBCZSh0''@;'; put 'put ''LGkpe3JldHVybihpPSQyKGkpLmdldFJvb3ROb2RlKCkuaG9zdCk/TjAoaSl8fGFhKGkpP2k6QmUodCxpKTp0Lml9ZnVuY3Rpb24gR2UodCxpLG4pe3ZhciBzPUJlKHQsaSksZD1OMChzKSxtPWQuUjtmb3IodmFyIEwgaW4gcz09PXQuaXx8bXx8KEdlKHQscyxkKSxtPWQuUiksdD1PYmplY3Qu''@;'; put 'put ''Y3JlYXRlKG18fG51bGwpLHM9ZnVuY3Rpb24gVHIodCxpLG4pe3ZhciBzPXt9LGQ9e307cmV0dXJuIGIyKGksZnVuY3Rpb24obSl7IWZ1bmN0aW9uIEVyKHQsaSxuLHMpe2lmKGkuRHx8YnQoaSksaS5ELlApe3ZhciBkPXMyKHQpO3Q9ZC5pcyxkPWQuaGEsZD10P1RlKHQsZCk6Imh0bWwiO3Zh''@;'; put 'put ''ciBtPWkucGFyc2VkU2VsZWN0b3IsTD0hIW0ubWF0Y2goX3IpfHwiaHRtbCI9PT1kJiYtMTxtLmluZGV4T2YoImh0bWwiKSxGPTA9PT1tLmluZGV4T2YoIjpob3N0IikmJiFMOyJzaGFkeSI9PT1uJiYoRj0hKEw9bT09PWQrIiA+ICouIitkfHwtMSE9PW0uaW5kZXhPZigiaHRtbCIpKSYmMD09''@;'; put 'put ''PW0uaW5kZXhPZihkKSksKEx8fEYpJiYobj1kLEYmJihpLkZ8fChpLkY9TmUoVDAsaSxUMC5oLHQ/Ii4iK3Q6IiIsZCkpLG49aS5GfHxkKSxMJiYiaHRtbCI9PT1kJiYobj1pLkZ8fGkuTykscyh7QmE6bixhYjpGLHFiOkx9KSl9fSh0LG0sbixmdW5jdGlvbihMKXskaS5jYWxsKHQuX2VsZW1l''@;'; put 'put ''bnR8fHQsTC5CYSkmJl90KG0sTC5hYj9zOmQpfSl9LG51bGwsITApLHtoYjpkLFphOnN9fShpLG4uTSxuLmNzc0J1aWxkKSxpPWZ1bmN0aW9uIERyKHQsaSl7dmFyIG49e30scz1bXTtyZXR1cm4gYjIodCxmdW5jdGlvbihkKXtkLkR8fGJ0KGQpO3ZhciBtPWQuRnx8ZC5wYXJzZWRTZWxlY3Rv''@;'; put 'put ''cjtpJiZkLkQuUCYmbSYmJGkuY2FsbChpLG0pJiYoX3QoZCxuKSxkPWQuaW5kZXgsbT1wYXJzZUludChkLzMyLDEwKSxzW21dPShzW21dfHwwKXwxPDxkJTMyKX0sbnVsbCwhMCkse1A6bixrZXk6c319KGQuTSxpKS5QLE9iamVjdC5hc3NpZ24odCxzLlphLGkscy5oYiksaT1uLkspKChkPWlb''@;'; put 'put ''TF0pfHwwPT09ZCkmJih0W0xdPWQpO2ZvcihMPXd0LGk9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCksZD0wO2Q8aS5sZW5ndGg7ZCsrKXRbcz1pW2RdXT1xMihMLHRbc10sdCk7bi5SPXR9KFg9RzEucHJvdG90eXBlKS5mbHVzaD1mdW5jdGlvbigpe0tpKCl9LFguWGE9ZnVuY3Rpb24o''@;'; put 'put ''dCl7cmV0dXJuIFcyKHQpfSxYLmxiPWZ1bmN0aW9uKHQpe3JldHVybiBTMih0KX0sWC5wcmVwYXJlVGVtcGxhdGU9ZnVuY3Rpb24odCxpLG4pe3RoaXMucHJlcGFyZVRlbXBsYXRlRG9tKHQsaSksdGhpcy5wcmVwYXJlVGVtcGxhdGVTdHlsZXModCxpLG4pfSxYLnByZXBhcmVUZW1wbGF0ZVN0''@;'; put 'put ''eWxlcz1mdW5jdGlvbih0LGksbil7aWYoIXQuX3ByZXBhcmVkJiYhTDIpe2gwfHx4MltpXXx8KHgyW2ldPWtpKGkpKSx0Ll9wcmVwYXJlZD0hMCx0Lm5hbWU9aSx0LmV4dGVuZHM9bixEdFtpXT10O3ZhciBzPV8yKHQpLGQ9RWUocyk7bj17aXM6aSxleHRlbmRzOm59O2Zvcih2YXIgbT1bXSxM''@;'; put 'put ''PXQuY29udGVudC5xdWVyeVNlbGVjdG9yQWxsKCJzdHlsZSIpLEY9MDtGPEwubGVuZ3RoO0YrKyl7dmFyIEc9TFtGXTtpZihHLmhhc0F0dHJpYnV0ZSgic2hhZHktdW5zY29wZWQiKSl7aWYoIWgwKXt2YXIgVT1HLnRleHRDb250ZW50O2lmKCFGaS5oYXMoVSkpe0ZpLmFkZChVKTt2YXIgSz1k''@;'; put 'put ''b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpO0suc2V0QXR0cmlidXRlKCJzaGFkeS11bnNjb3BlZCIsIiIpLEsudGV4dENvbnRlbnQ9VSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKEspfUcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHKX19ZWxzZSBtLnB1c2goRy50ZXh0Q29udGVu''@;'; put 'put ''dCksRy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEcpfW09bS5qb2luKCIiKS50cmltKCkrKGxhW2ldfHwiIiksWTIodGhpcyksZHx8KChMPSFzKSYmKEw9TXQudGVzdChtKXx8bXQudGVzdChtKSxNdC5sYXN0SW5kZXg9MCxtdC5sYXN0SW5kZXg9MCksRj1iZShtKSxMJiZDMCYmdGhpcy5oJiZ0''@;'; put 'put ''aGlzLmgudHJhbnNmb3JtUnVsZXMoRixpKSx0Ll9zdHlsZUFzdD1GKSxMPVtdLEMwfHwoTD1mdW5jdGlvbiB4cih0KXt2YXIgaT17fSxuPVtdLHM9MDtmb3IodmFyIGQgaW4gYjIodCxmdW5jdGlvbihtKXtidChtKSxtLmluZGV4PXMrKyxtPW0uRC5jc3NUZXh0O2Zvcih2YXIgTDtMPXVyLmV4''@;'; put 'put ''ZWMobSk7KSI6IiE9PUxbMl0mJihpW0xbMV1dPSEwKX0sZnVuY3Rpb24obSl7bi5wdXNoKG0pfSksdC5oPW4sdD1bXSxpKXQucHVzaChkKTtyZXR1cm4gdH0odC5fc3R5bGVBc3QpKSwoIUwubGVuZ3RofHxDMCkmJihGPWgwP3QuY29udGVudDpudWxsLGk9eDJbaV18fG51bGwscz0ocz1TdChu''@;'; put 'put ''LHQuX3N0eWxlQXN0LG51bGwscyxkP206IiIpKS5sZW5ndGg/eGUocyxuLmlzLEYsaSk6bnVsbCx0Ll9zdHlsZT1zKSx0Lmc9TH19LFguZmI9ZnVuY3Rpb24odCxpKXtsYVtpXT10LmpvaW4oIiAiKX0sWC5wcmVwYXJlVGVtcGxhdGVEb209ZnVuY3Rpb24odCxpKXtpZighTDIpe3ZhciBuPV8y''@;'; put 'put ''KHQpO2gwfHwic2hhZHkiPT09bnx8dC5fZG9tUHJlcGFyZWR8fCh0Ll9kb21QcmVwYXJlZD0hMCxmdW5jdGlvbiBBcih0LGkpe0x0KFQwLHQsZnVuY3Rpb24obil7aDIobixpfHwiIil9KX0odC5jb250ZW50LGkpKX19LFguZmx1c2hDdXN0b21TdHlsZXM9ZnVuY3Rpb24oKXtpZighTDIpe3Zh''@;'; put 'put ''ciB0PVkyKHRoaXMpO2lmKHRoaXMuZyl7dmFyIGk9dGhpcy5nLnByb2Nlc3NTdHlsZXMoKTtpZigodHx8dGhpcy5nLmVucXVldWVkKSYmIUVlKHRoaXMudS5jc3NCdWlsZCkpe2lmKEMwKXtpZighdGhpcy51LmNzc0J1aWxkKWZvcih0PTA7dDxpLmxlbmd0aDt0Kyspe3ZhciBuPXRoaXMuZy5n''@;'; put 'put ''ZXRTdHlsZUZvckN1c3RvbVN0eWxlKGlbdF0pO2lmKG4mJkMwJiZ0aGlzLmgpe3ZhciBzPVcyKG4pO1kyKHRoaXMpLHRoaXMuaC50cmFuc2Zvcm1SdWxlcyhzKSxuLnRleHRDb250ZW50PVMyKHMpfX19ZWxzZXtmb3IoZnVuY3Rpb24genIodCxpKXtpPWkubWFwKGZ1bmN0aW9uKG4pe3JldHVy''@;'; put 'put ''biB0LmcuZ2V0U3R5bGVGb3JDdXN0b21TdHlsZShuKX0pLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hIW59KSxpLnNvcnQoZnVuY3Rpb24obixzKXtyZXR1cm4obj1zLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG4pKSZOb2RlLkRPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORz8xOm4mTm9k''@;'; put 'put ''ZS5ET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc/LTE6MH0pLHQudS5NLnJ1bGVzPWkubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBXMihuKX0pfSh0aGlzLGkpLEdlKHRoaXMsdGhpcy5pLHRoaXMudSksdD0wO3Q8aS5sZW5ndGg7dCsrKShuPXRoaXMuZy5nZXRTdHlsZUZvckN1c3RvbVN0eWxl''@;'; put 'put ''KGlbdF0pKSYma3Iobix0aGlzLnUuUik7dGhpcy5PJiZ0aGlzLnN0eWxlRG9jdW1lbnQoKX10aGlzLmcuZW5xdWV1ZWQ9ITF9fX19LFguc3R5bGVFbGVtZW50PWZ1bmN0aW9uKHQsaSl7aWYoTDIpe2lmKGkpe04wKHQpfHxJZSh0LG5ldyB3MihudWxsKSk7dmFyIG49TjAodCk7bi5LPW4uS3x8''@;'; put 'put ''e30sT2JqZWN0LmFzc2lnbihuLkssaSkscmEodGhpcyx0LG4pfX1lbHNlIGlmKG49TjAodCl8fGFhKHQpKWlmKHQhPT10aGlzLmkmJih0aGlzLk89ITApLGkmJihuLks9bi5LfHx7fSxPYmplY3QuYXNzaWduKG4uSyxpKSksQzApcmEodGhpcyx0LG4pO2Vsc2UgaWYodGhpcy5mbHVzaCgpLEdl''@;'; put 'put ''KHRoaXMsdCxuKSxuLnphJiZuLnphLmxlbmd0aCl7dmFyIHM7aT1zMih0KS5pczt0OntpZihzPWlhLmNhY2hlW2ldKWZvcih2YXIgZD1zLmxlbmd0aC0xOzA8PWQ7ZC0tKXt2YXIgbT1zW2RdO2U6e2Zvcih2YXIgTD1uLnphLEY9MDtGPEwubGVuZ3RoO0YrKyl7dmFyIEc9TFtGXTtpZihtLlBb''@;'; put 'put ''R10hPT1uLlJbR10pe0w9ITE7YnJlYWsgZX19TD0hMH1pZihMKXtzPW07YnJlYWsgdH19cz12b2lkIDB9TD1zP3Muc3R5bGVFbGVtZW50Om51bGwsZD1uLkwsKG09cyYmcy5MKXx8KG09aSsiLSIrKG09dGhpcy5kYVtpXT0odGhpcy5kYVtpXXx8MCkrMSkpLG4uTD1tLG09bi5MLEY9d3QsRj1M''@;'; put 'put ''P0wudGV4dENvbnRlbnR8fCIiOmZ1bmN0aW9uIE5yKHQsaSxuLHMpe3ZhciBkPXMyKGkpLG09VGUoZC5pcyxkLmhhKSxMPW5ldyBSZWdFeHAoIig/Ol58W14uI1s6XSkiKyhpLmV4dGVuZHM/IlxcIittLnNsaWNlKDAsLTEpKyJcXF0iOm0pKyIoJHxbLjpbXFxzPit+XSkiKSxGPU4wKGkpO2Q9''@;'; put 'put ''Ri5NLEY9Ri5jc3NCdWlsZDt2YXIgRz1mdW5jdGlvbiBGcih0LGkpe3Q9dC5oO3ZhciBuPXt9O2lmKCFoMCYmdClmb3IodmFyIHM9MCxkPXRbc107czx0Lmxlbmd0aDtkPXRbKytzXSl7dmFyIG09ZCxMPWk7bS51PW5ldyBSZWdFeHAoIlxcYiIrbS5rZXlmcmFtZXNOYW1lKyIoPyFcXEJ8LSki''@;'; put 'put ''LCJnIiksbS5nPW0ua2V5ZnJhbWVzTmFtZSsiLSIrTCxtLkY9bS5GfHxtLnNlbGVjdG9yLG0uc2VsZWN0b3I9bS5GLnJlcGxhY2UobS5rZXlmcmFtZXNOYW1lLG0uZyksbltkLmtleWZyYW1lc05hbWVdPUlyKGQpfXJldHVybiBufShkLHMpO3JldHVybiBTdChpLGQsZnVuY3Rpb24oVSl7dmFy''@;'; put 'put ''IEs9IiI7aWYoVS5EfHxidChVKSxVLkQuY3NzVGV4dCYmKEs9a2UodCxVLkQuY3NzVGV4dCxuKSksVS5jc3NUZXh0PUssIWgwJiYhSWkoVSkmJlUuY3NzVGV4dCl7dmFyIEgxPUs9VS5jc3NUZXh0O2lmKG51bGw9PVUuSWEmJihVLklhPXByLnRlc3QoSykpLFUuSWEpaWYobnVsbD09VS5wYSlm''@;'; put 'put ''b3IodmFyIFExIGluIFUucGE9W10sRylLIT09KEgxPShIMT1HW1ExXSkoSykpJiYoSz1IMSxVLnBhLnB1c2goUTEpKTtlbHNle2ZvcihRMT0wO1ExPFUucGEubGVuZ3RoOysrUTEpSz0oSDE9R1tVLnBhW1ExXV0pKEspO0gxPUt9VS5jc3NUZXh0PUgxLFUuRj1VLkZ8fFUuc2VsZWN0b3IsSz0i''@;'; put 'put ''LiIrcyxIMT0wO2Zvcih2YXIgajE9KFExPUJpKFUuRikpLmxlbmd0aCxNMT12b2lkIDA7SDE8ajEmJihNMT1RMVtIMV0pO0gxKyspUTFbSDFdPU0xLm1hdGNoKEwpP00xLnJlcGxhY2UobSxLKTpLKyIgIitNMTtVLnNlbGVjdG9yPVExLmpvaW4oIiwiKX19LEYpfShGLHQsbi5SLG0pO3ZhciBV''@;'; put 'put ''PShHPU4wKHQpKS5nO1UmJiFoMCYmVSE9PUwmJihVLl91c2VDb3VudC0tLDA+PVUuX3VzZUNvdW50JiZVLnBhcmVudE5vZGUmJlUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChVKSksaDA/Ry5nPyhHLmcudGV4dENvbnRlbnQ9RixMPUcuZyk6RiYmKEw9eGUoRixtLHQuc2hhZG93Um9vdCxHLmgp''@;'; put 'put ''KTpMP0wucGFyZW50Tm9kZXx8KHdyJiYtMTxGLmluZGV4T2YoIkBtZWRpYSIpJiYoTC50ZXh0Q29udGVudD1GKSxPaShMLG51bGwsRy5oKSk6RiYmKEw9eGUoRixtLG51bGwsRy5oKSksTCYmKEwuX3VzZUNvdW50PUwuX3VzZUNvdW50fHwwLEcuZyE9TCYmTC5fdXNlQ291bnQrKyxHLmc9TCks''@;'; put 'put ''bT1MLGgwfHwoTD1uLkwsRz1GPXQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIixkJiYoRz1GLnJlcGxhY2UobmV3IFJlZ0V4cCgiXFxzKngtc2NvcGVcXHMqIitkKyJcXHMqIiwiZyIpLCIgIikpLEYhPT0oRys9KEc/IiAiOiIiKSsieC1zY29wZSAiK0wpJiZadCh0LEcpKSxzfHxpYS5zdG9y''@;'; put 'put ''ZShpLG4uUixtLG4uTCl9fSxYLnN0eWxlRG9jdW1lbnQ9ZnVuY3Rpb24odCl7dGhpcy5zdHlsZVN1YnRyZWUodGhpcy5pLHQpfSxYLnN0eWxlU3VidHJlZT1mdW5jdGlvbih0LGkpe3ZhciBuPSQyKHQpLHM9bi5zaGFkb3dSb290LGQ9dD09PXRoaXMuaTtpZigoc3x8ZCkmJnRoaXMuc3R5bGVF''@;'; put 'put ''bGVtZW50KHQsaSksdD1kP246cylmb3IodD1BcnJheS5mcm9tKHQucXVlcnlTZWxlY3RvckFsbCgiKiIpKS5maWx0ZXIoZnVuY3Rpb24obSl7cmV0dXJuICQyKG0pLnNoYWRvd1Jvb3R9KSxpPTA7aTx0Lmxlbmd0aDtpKyspdGhpcy5zdHlsZVN1YnRyZWUodFtpXSl9LFguTWE9ZnVuY3Rpb24o''@;'; put 'put ''dCl7dmFyIGk9dGhpcyxuPV8yKHQpO2lmKG4hPT10aGlzLnUuY3NzQnVpbGQmJih0aGlzLnUuY3NzQnVpbGQ9biksIUVlKG4pKXt2YXIgcz1XMih0KTtiMihzLGZ1bmN0aW9uKGQpe2lmKGgwKVJpKGQpO2Vsc2V7dmFyIG09VDA7ZC5zZWxlY3Rvcj1kLnBhcnNlZFNlbGVjdG9yLFJpKGQpLGQu''@;'; put 'put ''c2VsZWN0b3I9ZC5GPU5lKG0sZCxtLmksdm9pZCAwLHZvaWQgMCl9QzAmJiIiPT09biYmKFkyKGkpLGkuaCYmaS5oLnRyYW5zZm9ybVJ1bGUoZCkpfSksQzA/dC50ZXh0Q29udGVudD1TMihzKTp0aGlzLnUuTS5ydWxlcy5wdXNoKHMpfX0sWC5nZXRDb21wdXRlZFN0eWxlVmFsdWU9ZnVuY3Rp''@;'; put 'put ''b24odCxpKXt2YXIgbjtyZXR1cm4gQzB8fChuPShOMCh0KXx8TjAoQmUodGhpcyx0KSkpLlJbaV0pLChuPW58fHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQpLmdldFByb3BlcnR5VmFsdWUoaSkpP24udHJpbSgpOiIifSxYLmtiPWZ1bmN0aW9uKHQsaSl7dmFyIG49JDIodCkuZ2V0Um9vdE5v''@;'; put 'put ''ZGUoKTtpZihpPWk/KCJzdHJpbmciPT10eXBlb2YgaT9pOlN0cmluZyhpKSkuc3BsaXQoL1xzLyk6W10sIShuPW4uaG9zdCYmbi5ob3N0LmxvY2FsTmFtZSkpe3ZhciBzPXQuZ2V0QXR0cmlidXRlKCJjbGFzcyIpO2lmKHMpe3M9cy5zcGxpdCgvXHMvKTtmb3IodmFyIGQ9MDtkPHMubGVuZ3Ro''@;'; put 'put ''O2QrKylpZihzW2RdPT09VDAuZyl7bj1zW2QrMV07YnJlYWt9fX1uJiZpLnB1c2goVDAuZyxuKSxDMHx8KG49TjAodCkpJiZuLkwmJmkucHVzaCh3dC5nLG4uTCksWnQodCxpLmpvaW4oIiAiKSl9LFguVGE9ZnVuY3Rpb24odCl7cmV0dXJuIE4wKHQpfSxYLmpiPWZ1bmN0aW9uKHQsaSl7aDIo''@;'; put 'put ''dCxpKX0sWC5tYj1mdW5jdGlvbih0LGkpe2gyKHQsaSwhMCl9LFguaWI9ZnVuY3Rpb24odCl7cmV0dXJuIE9lKHQpfSxYLlZhPWZ1bmN0aW9uKHQpe3JldHVybiBYaSh0KX0sRzEucHJvdG90eXBlLmZsdXNoPUcxLnByb3RvdHlwZS5mbHVzaCxHMS5wcm90b3R5cGUucHJlcGFyZVRlbXBsYXRl''@;'; put 'put ''PUcxLnByb3RvdHlwZS5wcmVwYXJlVGVtcGxhdGUsRzEucHJvdG90eXBlLnN0eWxlRWxlbWVudD1HMS5wcm90b3R5cGUuc3R5bGVFbGVtZW50LEcxLnByb3RvdHlwZS5zdHlsZURvY3VtZW50PUcxLnByb3RvdHlwZS5zdHlsZURvY3VtZW50LEcxLnByb3RvdHlwZS5zdHlsZVN1YnRyZWU9RzEu''@;'; put 'put ''cHJvdG90eXBlLnN0eWxlU3VidHJlZSxHMS5wcm90b3R5cGUuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlPUcxLnByb3RvdHlwZS5nZXRDb21wdXRlZFN0eWxlVmFsdWUsRzEucHJvdG90eXBlLnNldEVsZW1lbnRDbGFzcz1HMS5wcm90b3R5cGUua2IsRzEucHJvdG90eXBlLl9zdHlsZUluZm9Gb3JO''@;'; put 'put ''b2RlPUcxLnByb3RvdHlwZS5UYSxHMS5wcm90b3R5cGUudHJhbnNmb3JtQ3VzdG9tU3R5bGVGb3JEb2N1bWVudD1HMS5wcm90b3R5cGUuTWEsRzEucHJvdG90eXBlLmdldFN0eWxlQXN0PUcxLnByb3RvdHlwZS5YYSxHMS5wcm90b3R5cGUuc3R5bGVBc3RUb1N0cmluZz1HMS5wcm90b3R5cGUu''@;'; put 'put ''bGIsRzEucHJvdG90eXBlLmZsdXNoQ3VzdG9tU3R5bGVzPUcxLnByb3RvdHlwZS5mbHVzaEN1c3RvbVN0eWxlcyxHMS5wcm90b3R5cGUuc2NvcGVOb2RlPUcxLnByb3RvdHlwZS5qYixHMS5wcm90b3R5cGUudW5zY29wZU5vZGU9RzEucHJvdG90eXBlLm1iLEcxLnByb3RvdHlwZS5zY29wZUZv''@;'; put 'put ''ck5vZGU9RzEucHJvdG90eXBlLmliLEcxLnByb3RvdHlwZS5jdXJyZW50U2NvcGVGb3JOb2RlPUcxLnByb3RvdHlwZS5WYSxHMS5wcm90b3R5cGUucHJlcGFyZUFkb3B0ZWRDc3NUZXh0PUcxLnByb3RvdHlwZS5mYixPYmplY3QuZGVmaW5lUHJvcGVydGllcyhHMS5wcm90b3R5cGUse25hdGl2''@;'; put 'put ''ZVNoYWRvdzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgwfX0sbmF0aXZlQ3NzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gQzB9fX0pO3ZhciBqZSxSZSxWMD1uZXcgRzE7d2luZG93LlNoYWR5Q1NTJiYoamU9d2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbSxSZT13aW5kb3cuU2hhZHlDU1MuQ3Vz''@;'; put 'put ''dG9tU3R5bGVJbnRlcmZhY2UpLHdpbmRvdy5TaGFkeUNTUz17U2NvcGluZ1NoaW06VjAscHJlcGFyZVRlbXBsYXRlOmZ1bmN0aW9uKHQsaSxuKXtWMC5mbHVzaEN1c3RvbVN0eWxlcygpLFYwLnByZXBhcmVUZW1wbGF0ZSh0LGksbil9LHByZXBhcmVUZW1wbGF0ZURvbTpmdW5jdGlvbih0LGkp''@;'; put 'put ''e1YwLnByZXBhcmVUZW1wbGF0ZURvbSh0LGkpfSxwcmVwYXJlVGVtcGxhdGVTdHlsZXM6ZnVuY3Rpb24odCxpLG4pe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAucHJlcGFyZVRlbXBsYXRlU3R5bGVzKHQsaSxuKX0sc3R5bGVTdWJ0cmVlOmZ1bmN0aW9uKHQsaSl7VjAuZmx1c2hDdXN0b21T''@;'; put 'put ''dHlsZXMoKSxWMC5zdHlsZVN1YnRyZWUodCxpKX0sc3R5bGVFbGVtZW50OmZ1bmN0aW9uKHQpe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAuc3R5bGVFbGVtZW50KHQpfSxzdHlsZURvY3VtZW50OmZ1bmN0aW9uKHQpe1YwLmZsdXNoQ3VzdG9tU3R5bGVzKCksVjAuc3R5bGVEb2N1bWVudCh0''@;'; put 'put ''KX0sZmx1c2hDdXN0b21TdHlsZXM6ZnVuY3Rpb24oKXtWMC5mbHVzaEN1c3RvbVN0eWxlcygpfSxnZXRDb21wdXRlZFN0eWxlVmFsdWU6ZnVuY3Rpb24odCxpKXtyZXR1cm4gVjAuZ2V0Q29tcHV0ZWRTdHlsZVZhbHVlKHQsaSl9LG5hdGl2ZUNzczpDMCxuYXRpdmVTaGFkb3c6aDAsY3NzQnVp''@;'; put 'put ''bGQ6VnQsZGlzYWJsZVJ1bnRpbWU6TDJ9LGplJiYod2luZG93LlNoYWR5Q1NTLkFwcGx5U2hpbT1qZSksUmUmJih3aW5kb3cuU2hhZHlDU1MuQ3VzdG9tU3R5bGVJbnRlcmZhY2U9UmUpLGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGkoTTEpe3JldHVybiIiPT1NMSYmKG0uY2FsbCh0aGlzKSx0aGlz''@;'; put 'put ''Lm09ITApLE0xLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24gbihNMSl7dmFyICQxPU0xLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDMyPCQxJiYxMjc+JDEmJi0xPT1bMzQsMzUsNjAsNjIsNjMsOTZdLmluZGV4T2YoJDEpP00xOmVuY29kZVVSSUNvbXBvbmVudChNMSl9ZnVuY3Rpb24gcyhNMSl7dmFy''@;'; put 'put ''ICQxPU0xLmNoYXJDb2RlQXQoMCk7cmV0dXJuIDMyPCQxJiYxMjc+JDEmJi0xPT1bMzQsMzUsNjAsNjIsOTZdLmluZGV4T2YoJDEpP00xOmVuY29kZVVSSUNvbXBvbmVudChNMSl9ZnVuY3Rpb24gZChNMSwkMSx6MSl7ZnVuY3Rpb24gbzAoSTApe2UyLnB1c2goSTApfXZhciBrMT0kMXx8InNj''@;'; put 'put ''aGVtZSBzdGFydCIsbTA9MCxUMT0iIix0Mj0hMSxGMD0hMSxlMj1bXTt0OmZvcig7KG51bGwhPU0xW20wLTFdfHwwPT1tMCkmJiF0aGlzLm07KXt2YXIgdDE9TTFbbTBdO3N3aXRjaChrMSl7Y2FzZSJzY2hlbWUgc3RhcnQiOmlmKCF0MXx8IUgxLnRlc3QodDEpKXtpZigkMSl7bzAoIkludmFs''@;'; put 'put ''aWQgc2NoZW1lLiIpO2JyZWFrIHR9VDE9IiIsazE9Im5vIHNjaGVtZSI7Y29udGludWV9VDErPXQxLnRvTG93ZXJDYXNlKCksazE9InNjaGVtZSI7YnJlYWs7Y2FzZSJzY2hlbWUiOmlmKHQxJiZRMS50ZXN0KHQxKSlUMSs9dDEudG9Mb3dlckNhc2UoKTtlbHNle2lmKCI6IiE9dDEpe2lmKCQx''@;'; put 'put ''KXtudWxsIT10MSYmbzAoIkNvZGUgcG9pbnQgbm90IGFsbG93ZWQgaW4gc2NoZW1lOiAiK3QxKTticmVhayB0fVQxPSIiLG0wPTAsazE9Im5vIHNjaGVtZSI7Y29udGludWV9aWYodGhpcy5sPVQxLFQxPSIiLCQxKWJyZWFrIHQ7dm9pZCAwIT09VVt0aGlzLmxdJiYodGhpcy5HPSEwKSxrMT0i''@;'; put 'put ''ZmlsZSI9PXRoaXMubD8icmVsYXRpdmUiOnRoaXMuRyYmejEmJnoxLmw9PXRoaXMubD8icmVsYXRpdmUgb3IgYXV0aG9yaXR5Ijp0aGlzLkc/ImF1dGhvcml0eSBmaXJzdCBzbGFzaCI6InNjaGVtZSBkYXRhIn1icmVhaztjYXNlInNjaGVtZSBkYXRhIjoiPyI9PXQxPyh0aGlzLkE9Ij8iLGsx''@;'; put 'put ''PSJxdWVyeSIpOiIjIj09dDE/KHRoaXMuQz0iIyIsazE9ImZyYWdtZW50Iik6bnVsbCE9dDEmJiJcdCIhPXQxJiYiXG4iIT10MSYmIlxyIiE9dDEmJih0aGlzLnZhKz1uKHQxKSk7YnJlYWs7Y2FzZSJubyBzY2hlbWUiOmlmKHoxJiZ2b2lkIDAhPT1VW3oxLmxdKXtrMT0icmVsYXRpdmUiO2Nv''@;'; put 'put ''bnRpbnVlfW8wKCJNaXNzaW5nIHNjaGVtZS4iKSxtLmNhbGwodGhpcyksdGhpcy5tPSEwO2JyZWFrO2Nhc2UicmVsYXRpdmUgb3IgYXV0aG9yaXR5IjppZigiLyIhPXQxfHwiLyIhPU0xW20wKzFdKXtvMCgiRXhwZWN0ZWQgLywgZ290OiAiK3QxKSxrMT0icmVsYXRpdmUiO2NvbnRpbnVlfWsx''@;'; put 'put ''PSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2JyZWFrO2Nhc2UicmVsYXRpdmUiOmlmKHRoaXMuRz0hMCwiZmlsZSIhPXRoaXMubCYmKHRoaXMubD16MS5sKSxudWxsPT10MSl7dGhpcy5vPXoxLm8sdGhpcy52PXoxLnYsdGhpcy5zPXoxLnMuc2xpY2UoKSx0aGlzLkE9ejEuQSx0aGlzLkI9''@;'; put 'put ''ejEuQix0aGlzLmo9ejEuajticmVhayB0fWlmKCIvIj09dDF8fCJcXCI9PXQxKSJcXCI9PXQxJiZvMCgiXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LiIpLGsxPSJyZWxhdGl2ZSBzbGFzaCI7ZWxzZSBpZigiPyI9PXQxKXRoaXMubz16MS5vLHRoaXMudj16MS52LHRoaXMucz16MS5zLnNs''@;'; put 'put ''aWNlKCksdGhpcy5BPSI/Iix0aGlzLkI9ejEuQix0aGlzLmo9ejEuaixrMT0icXVlcnkiO2Vsc2V7aWYoIiMiIT10MSl7azE9TTFbbTArMV07dmFyIGwwPU0xW20wKzJdOygiZmlsZSIhPXRoaXMubHx8IUgxLnRlc3QodDEpfHwiOiIhPWsxJiYifCIhPWsxfHxudWxsIT1sMCYmIi8iIT1sMCYm''@;'; put 'put ''IlxcIiE9bDAmJiI/IiE9bDAmJiIjIiE9bDApJiYodGhpcy5vPXoxLm8sdGhpcy52PXoxLnYsdGhpcy5CPXoxLkIsdGhpcy5qPXoxLmosdGhpcy5zPXoxLnMuc2xpY2UoKSx0aGlzLnMucG9wKCkpLGsxPSJyZWxhdGl2ZSBwYXRoIjtjb250aW51ZX10aGlzLm89ejEubyx0aGlzLnY9ejEudix0''@;'; put 'put ''aGlzLnM9ejEucy5zbGljZSgpLHRoaXMuQT16MS5BLHRoaXMuQz0iIyIsdGhpcy5CPXoxLkIsdGhpcy5qPXoxLmosazE9ImZyYWdtZW50In1icmVhaztjYXNlInJlbGF0aXZlIHNsYXNoIjppZigiLyIhPXQxJiYiXFwiIT10MSl7ImZpbGUiIT10aGlzLmwmJih0aGlzLm89ejEubyx0aGlzLnY9''@;'; put 'put ''ejEudix0aGlzLkI9ejEuQix0aGlzLmo9ejEuaiksazE9InJlbGF0aXZlIHBhdGgiO2NvbnRpbnVlfSJcXCI9PXQxJiZvMCgiXFwgaXMgYW4gaW52YWxpZCBjb2RlIHBvaW50LiIpLGsxPSJmaWxlIj09dGhpcy5sPyJmaWxlIGhvc3QiOiJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2JyZWFr''@;'; put 'put ''O2Nhc2UiYXV0aG9yaXR5IGZpcnN0IHNsYXNoIjppZigiLyIhPXQxKXtvMCgiRXhwZWN0ZWQgJy8nLCBnb3Q6ICIrdDEpLGsxPSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiO2NvbnRpbnVlfWsxPSJhdXRob3JpdHkgc2Vjb25kIHNsYXNoIjticmVhaztjYXNlImF1dGhvcml0eSBzZWNvbmQg''@;'; put 'put ''c2xhc2giOmlmKGsxPSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiLCIvIiE9dDEpe28wKCJFeHBlY3RlZCAnLycsIGdvdDogIit0MSk7Y29udGludWV9YnJlYWs7Y2FzZSJhdXRob3JpdHkgaWdub3JlIHNsYXNoZXMiOmlmKCIvIiE9dDEmJiJcXCIhPXQxKXtrMT0iYXV0aG9yaXR5Ijtjb250''@;'; put 'put ''aW51ZX1vMCgiRXhwZWN0ZWQgYXV0aG9yaXR5LCBnb3Q6ICIrdDEpO2JyZWFrO2Nhc2UiYXV0aG9yaXR5IjppZigiQCI9PXQxKXtmb3IodDImJihvMCgiQCBhbHJlYWR5IHNlZW4uIiksVDErPSIlNDAiKSx0Mj0hMCx0MT0wO3QxPFQxLmxlbmd0aDt0MSsrKSJcdCI9PShsMD1UMVt0MV0pfHwi''@;'; put 'put ''XG4iPT1sMHx8IlxyIj09bDA/bzAoIkludmFsaWQgd2hpdGVzcGFjZSBpbiBhdXRob3JpdHkuIik6IjoiPT1sMCYmbnVsbD09PXRoaXMuaj90aGlzLmo9IiI6KGwwPW4obDApLG51bGwhPT10aGlzLmo/dGhpcy5qKz1sMDp0aGlzLkIrPWwwKTtUMT0iIn1lbHNle2lmKG51bGw9PXQxfHwiLyI9''@;'; put 'put ''PXQxfHwiXFwiPT10MXx8Ij8iPT10MXx8IiMiPT10MSl7bTAtPVQxLmxlbmd0aCxUMT0iIixrMT0iaG9zdCI7Y29udGludWV9VDErPXQxfWJyZWFrO2Nhc2UiZmlsZSBob3N0IjppZihudWxsPT10MXx8Ii8iPT10MXx8IlxcIj09dDF8fCI/Ij09dDF8fCIjIj09dDEpezIhPVQxLmxlbmd0aHx8''@;'; put 'put ''IUgxLnRlc3QoVDFbMF0pfHwiOiIhPVQxWzFdJiYifCIhPVQxWzFdPygwIT1UMS5sZW5ndGgmJih0aGlzLm89aS5jYWxsKHRoaXMsVDEpLFQxPSIiKSxrMT0icmVsYXRpdmUgcGF0aCBzdGFydCIpOmsxPSJyZWxhdGl2ZSBwYXRoIjtjb250aW51ZX0iXHQiPT10MXx8IlxuIj09dDF8fCJcciI9''@;'; put 'put ''PXQxP28wKCJJbnZhbGlkIHdoaXRlc3BhY2UgaW4gZmlsZSBob3N0LiIpOlQxKz10MTticmVhaztjYXNlImhvc3QiOmNhc2UiaG9zdG5hbWUiOmlmKCI6IiE9dDF8fEYwKXtpZihudWxsPT10MXx8Ii8iPT10MXx8IlxcIj09dDF8fCI/Ij09dDF8fCIjIj09dDEpe2lmKHRoaXMubz1pLmNhbGwo''@;'; put 'put ''dGhpcyxUMSksVDE9IiIsazE9InJlbGF0aXZlIHBhdGggc3RhcnQiLCQxKWJyZWFrIHQ7Y29udGludWV9Ilx0IiE9dDEmJiJcbiIhPXQxJiYiXHIiIT10MT8oIlsiPT10MT9GMD0hMDoiXSI9PXQxJiYoRjA9ITEpLFQxKz10MSk6bzAoIkludmFsaWQgY29kZSBwb2ludCBpbiBob3N0L2hvc3Ru''@;'; put 'put ''YW1lOiAiK3QxKX1lbHNlIGlmKHRoaXMubz1pLmNhbGwodGhpcyxUMSksVDE9IiIsazE9InBvcnQiLCJob3N0bmFtZSI9PSQxKWJyZWFrIHQ7YnJlYWs7Y2FzZSJwb3J0IjppZigvWzAtOV0vLnRlc3QodDEpKVQxKz10MTtlbHNle2lmKG51bGw9PXQxfHwiLyI9PXQxfHwiXFwiPT10MXx8Ij8i''@;'; put 'put ''PT10MXx8IiMiPT10MXx8JDEpe2lmKCIiIT1UMSYmKChUMT1wYXJzZUludChUMSwxMCkpIT1VW3RoaXMubF0mJih0aGlzLnY9VDErIiIpLFQxPSIiKSwkMSlicmVhayB0O2sxPSJyZWxhdGl2ZSBwYXRoIHN0YXJ0Ijtjb250aW51ZX0iXHQiPT10MXx8IlxuIj09dDF8fCJcciI9PXQxP28wKCJJ''@;'; put 'put ''bnZhbGlkIGNvZGUgcG9pbnQgaW4gcG9ydDogIit0MSk6KG0uY2FsbCh0aGlzKSx0aGlzLm09ITApfWJyZWFrO2Nhc2UicmVsYXRpdmUgcGF0aCBzdGFydCI6aWYoIlxcIj09dDEmJm8wKCInXFwnIG5vdCBhbGxvd2VkIGluIHBhdGguIiksazE9InJlbGF0aXZlIHBhdGgiLCIvIiE9dDEmJiJc''@;'; put 'put ''XCIhPXQxKWNvbnRpbnVlO2JyZWFrO2Nhc2UicmVsYXRpdmUgcGF0aCI6bnVsbCE9dDEmJiIvIiE9dDEmJiJcXCIhPXQxJiYoJDF8fCI/IiE9dDEmJiIjIiE9dDEpPyJcdCIhPXQxJiYiXG4iIT10MSYmIlxyIiE9dDEmJihUMSs9bih0MSkpOigiXFwiPT10MSYmbzAoIlxcIG5vdCBhbGxvd2Vk''@;'; put 'put ''IGluIHJlbGF0aXZlIHBhdGguIiksKGwwPUtbVDEudG9Mb3dlckNhc2UoKV0pJiYoVDE9bDApLCIuLiI9PVQxPyh0aGlzLnMucG9wKCksIi8iIT10MSYmIlxcIiE9dDEmJnRoaXMucy5wdXNoKCIiKSk6Ii4iPT1UMSYmIi8iIT10MSYmIlxcIiE9dDE/dGhpcy5zLnB1c2goIiIpOiIuIiE9VDEm''@;'; put 'put ''JigiZmlsZSI9PXRoaXMubCYmMD09dGhpcy5zLmxlbmd0aCYmMj09VDEubGVuZ3RoJiZIMS50ZXN0KFQxWzBdKSYmInwiPT1UMVsxXSYmKFQxPVQxWzBdKyI6IiksdGhpcy5zLnB1c2goVDEpKSxUMT0iIiwiPyI9PXQxPyh0aGlzLkE9Ij8iLGsxPSJxdWVyeSIpOiIjIj09dDEmJih0aGlzLkM9''@;'; put 'put ''IiMiLGsxPSJmcmFnbWVudCIpKTticmVhaztjYXNlInF1ZXJ5IjokMXx8IiMiIT10MT9udWxsIT10MSYmIlx0IiE9dDEmJiJcbiIhPXQxJiYiXHIiIT10MSYmKHRoaXMuQSs9cyh0MSkpOih0aGlzLkM9IiMiLGsxPSJmcmFnbWVudCIpO2JyZWFrO2Nhc2UiZnJhZ21lbnQiOm51bGwhPXQxJiYi''@;'; put 'put ''XHQiIT10MSYmIlxuIiE9dDEmJiJcciIhPXQxJiYodGhpcy5DKz10MSl9bTArK319ZnVuY3Rpb24gbSgpe3RoaXMuQj10aGlzLnZhPXRoaXMubD0iIix0aGlzLmo9bnVsbCx0aGlzLnY9dGhpcy5vPSIiLHRoaXMucz1bXSx0aGlzLkM9dGhpcy5BPSIiLHRoaXMuRz10aGlzLm09ITF9ZnVuY3Rp''@;'; put 'put ''b24gTChNMSwkMSl7dm9pZCAwPT09JDF8fCQxIGluc3RhbmNlb2YgTHx8KCQxPW5ldyBMKFN0cmluZygkMSkpKSx0aGlzLmc9TTEsbS5jYWxsKHRoaXMpLGQuY2FsbCh0aGlzLHRoaXMuZy5yZXBsYWNlKC9eWyBcdFxyXG5cZl0rfFsgXHRcclxuXGZdKyQvZywiIiksbnVsbCwkMSl9dmFyIEY9''@;'; put 'put ''ITE7dHJ5e3ZhciBHPW5ldyBVUkwoImIiLCJodHRwOi8vYSIpO0cucGF0aG5hbWU9ImMlMjBkIixGPSJodHRwOi8vYS9jJTIwZCI9PT1HLmhyZWZ9Y2F0Y2goTTEpe31pZighRil7dmFyIFU9T2JqZWN0LmNyZWF0ZShudWxsKTtVLmZ0cD0yMSxVLmZpbGU9MCxVLmdvcGhlcj03MCxVLmh0dHA9''@;'; put 'put ''ODAsVS5odHRwcz00NDMsVS53cz04MCxVLndzcz00NDM7dmFyIEs9T2JqZWN0LmNyZWF0ZShudWxsKTtLWyIlMmUiXT0iLiIsS1siLiUyZSJdPSIuLiIsS1siJTJlLiJdPSIuLiIsS1siJTJlJTJlIl09Ii4uIjt2YXIgSDE9L1thLXpBLVpdLyxRMT0vW2EtekEtWjAtOStcLS5dLztMLnByb3Rv''@;'; put 'put ''dHlwZT17dG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ocmVmfSxnZXQgaHJlZigpe2lmKHRoaXMubSlyZXR1cm4gdGhpcy5nO3ZhciBNMT0iIjtyZXR1cm4oIiIhPXRoaXMuQnx8bnVsbCE9dGhpcy5qKSYmKE0xPXRoaXMuQisobnVsbCE9dGhpcy5qPyI6Iit0aGlzLmo6IiIpKyJA''@;'; put 'put ''IiksdGhpcy5wcm90b2NvbCsodGhpcy5HPyIvLyIrTTErdGhpcy5ob3N0OiIiKSt0aGlzLnBhdGhuYW1lK3RoaXMuQSt0aGlzLkN9LHNldCBocmVmKE0xKXttLmNhbGwodGhpcyksZC5jYWxsKHRoaXMsTTEpfSxnZXQgcHJvdG9jb2woKXtyZXR1cm4gdGhpcy5sKyI6In0sc2V0IHByb3RvY29s''@;'; put 'put ''KE0xKXt0aGlzLm18fGQuY2FsbCh0aGlzLE0xKyI6Iiwic2NoZW1lIHN0YXJ0Iil9LGdldCBob3N0KCl7cmV0dXJuIHRoaXMubT8iIjp0aGlzLnY/dGhpcy5vKyI6Iit0aGlzLnY6dGhpcy5vfSxzZXQgaG9zdChNMSl7IXRoaXMubSYmdGhpcy5HJiZkLmNhbGwodGhpcyxNMSwiaG9zdCIpfSxn''@;'; put 'put ''ZXQgaG9zdG5hbWUoKXtyZXR1cm4gdGhpcy5vfSxzZXQgaG9zdG5hbWUoTTEpeyF0aGlzLm0mJnRoaXMuRyYmZC5jYWxsKHRoaXMsTTEsImhvc3RuYW1lIil9LGdldCBwb3J0KCl7cmV0dXJuIHRoaXMudn0sc2V0IHBvcnQoTTEpeyF0aGlzLm0mJnRoaXMuRyYmZC5jYWxsKHRoaXMsTTEsInBv''@;'; put 'put ''cnQiKX0sZ2V0IHBhdGhuYW1lKCl7cmV0dXJuIHRoaXMubT8iIjp0aGlzLkc/Ii8iK3RoaXMucy5qb2luKCIvIik6dGhpcy52YX0sc2V0IHBhdGhuYW1lKE0xKXshdGhpcy5tJiZ0aGlzLkcmJih0aGlzLnM9W10sZC5jYWxsKHRoaXMsTTEsInJlbGF0aXZlIHBhdGggc3RhcnQiKSl9LGdldCBz''@;'; put 'put ''ZWFyY2goKXtyZXR1cm4gdGhpcy5tfHwhdGhpcy5BfHwiPyI9PXRoaXMuQT8iIjp0aGlzLkF9LHNldCBzZWFyY2goTTEpeyF0aGlzLm0mJnRoaXMuRyYmKHRoaXMuQT0iPyIsIj8iPT1NMVswXSYmKE0xPU0xLnNsaWNlKDEpKSxkLmNhbGwodGhpcyxNMSwicXVlcnkiKSl9LGdldCBoYXNoKCl7''@;'; put 'put ''cmV0dXJuIHRoaXMubXx8IXRoaXMuQ3x8IiMiPT10aGlzLkM/IiI6dGhpcy5DfSxzZXQgaGFzaChNMSl7dGhpcy5tfHwoTTE/KHRoaXMuQz0iIyIsIiMiPT1NMVswXSYmKE0xPU0xLnNsaWNlKDEpKSxkLmNhbGwodGhpcyxNMSwiZnJhZ21lbnQiKSk6dGhpcy5DPSIiKX0sZ2V0IG9yaWdpbigp''@;'; put 'put ''e3ZhciBNMTtpZih0aGlzLm18fCF0aGlzLmwpcmV0dXJuIiI7c3dpdGNoKHRoaXMubCl7Y2FzZSJkYXRhIjpjYXNlImZpbGUiOmNhc2UiamF2YXNjcmlwdCI6Y2FzZSJtYWlsdG8iOnJldHVybiJudWxsIn1yZXR1cm4oTTE9dGhpcy5ob3N0KT90aGlzLmwrIjovLyIrTTE6IiJ9fTt2YXIgajE9''@;'; put 'put ''dC5VUkw7ajEmJihMLmNyZWF0ZU9iamVjdFVSTD1mdW5jdGlvbihNMSl7cmV0dXJuIGoxLmNyZWF0ZU9iamVjdFVSTC5hcHBseShqMSxhcmd1bWVudHMpfSxMLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbihNMSl7ajEucmV2b2tlT2JqZWN0VVJMKE0xKX0pLHQuVVJMPUx9fSh3aW5kb3cpO3Zh''@;'; put 'put ''ciBuYT13aW5kb3cuY3VzdG9tRWxlbWVudHMsY2E9ITEsemU9bnVsbDtmdW5jdGlvbiBFdCgpe3dpbmRvdy5IVE1MVGVtcGxhdGVFbGVtZW50LmJvb3RzdHJhcCYmd2luZG93LkhUTUxUZW1wbGF0ZUVsZW1lbnQuYm9vdHN0cmFwKHdpbmRvdy5kb2N1bWVudCksemUmJnplKCksY2E9ITAsd2lu''@;'; put 'put ''ZG93LldlYkNvbXBvbmVudHMucmVhZHk9ITAsZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoIldlYkNvbXBvbmVudHNSZWFkeSIse2J1YmJsZXM6ITB9KSl9bmEucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjayYmbmEucG9seWZpbGxXcmFwRmx1c2hDYWxsYmFjayhmdW5j''@;'; put 'put ''dGlvbih0KXt6ZT10LGNhJiZ0KCl9KSwiY29tcGxldGUiIT09ZG9jdW1lbnQucmVhZHlTdGF0ZT8od2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLEV0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRM''@;'; put 'put ''aXN0ZW5lcigibG9hZCIsRXQpLEV0KCl9KSk6RXQoKX0uY2FsbCh0aGlzKSxmdW5jdGlvbihYLEYxKXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPUYxKCk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5l''@;'; put 'put ''JiZkZWZpbmUuYW1kKWRlZmluZShbXSxGMSk7ZWxzZXt2YXIgayxBPUYxKCk7Zm9yKGsgaW4gQSkoIm9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHM6WClba109QVtrXX19KHRoaXMsZnVuY3Rpb24oKXtyZXR1cm4gRjE9eyIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBp''@;'; put 'put ''LnRzIjpmdW5jdGlvbihBLGUsYyl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsYXJpdHlJY29uc0FwaT12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2''@;'; put 'put ''ZXIudHMiKSxhPXt9O2Z1bmN0aW9uIG8oKXt9T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sImluc3RhbmNlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uc2luZ2xlSW5zdGFuY2U9by5zaW5nbGVJbnN0YW5jZT9vLnNpbmdsZUluc3RhbmNlOm5ldyBvfSxlbnVtZXJhYmxlOiExLGNvbmZpZ3Vy''@;'; put 'put ''YWJsZTohMH0pLG8ucHJvdG90eXBlLnZhbGlkYXRlTmFtZT1mdW5jdGlvbihoKXtpZigwPT09aC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJTaGFwZSBuYW1lIG9yIGFsaWFzIG11c3QgYmUgYSBub24tZW1wdHkgc3RyaW5nISIpO2lmKC9ccy8udGVzdChoKSl0aHJvdyBuZXcgRXJyb3IoIlNo''@;'; put 'put ''YXBlIG5hbWUgb3IgYWxpYXMgbXVzdCBub3QgY29udGFpbiBhbnkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzISIpO3JldHVybiEwfSxvLnByb3RvdHlwZS5ub3JtYWxpemVTaGFwZU5hbWU9ZnVuY3Rpb24oaCl7cmV0dXJuIGgudG9Mb3dlckNhc2UoKX0sby5wcm90b3R5cGUuc2V0SWNvblRlbXBs''@;'; put 'put ''YXRlPWZ1bmN0aW9uKGgsZil7Zj1mLnRyaW0oKSx0aGlzLnZhbGlkYXRlTmFtZShoKSYmKGg9dGhpcy5ub3JtYWxpemVTaGFwZU5hbWUoaCksYVtoXSYmZGVsZXRlIGFbaF0sYVtoXT1mLHIuU2hhcGVUZW1wbGF0ZU9ic2VydmVyLmluc3RhbmNlLmVtaXRDaGFuZ2VzKGgsZikpfSxvLnByb3Rv''@;'; put 'put ''dHlwZS5zZXRJY29uQWxpYXNlcz1mdW5jdGlvbihoLGYsZyl7Zm9yKHZhciB1PTAscD1nO3U8cC5sZW5ndGg7dSsrKXt2YXIgdj1wW3VdO3RoaXMudmFsaWRhdGVOYW1lKHYpJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoaCx2LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaFtmXX0sZW51bWVyYWJs''@;'; put 'put ''ZTohMCxjb25maWd1cmFibGU6ITB9KX19LG8ucHJvdG90eXBlLmFkZD1mdW5jdGlvbihoKXtpZigib2JqZWN0IiE9dHlwZW9mIGgpdGhyb3cgbmV3IEVycm9yKCdUaGUgYXJndW1lbnQgbXVzdCBiZSBhbiBvYmplY3QgbGl0ZXJhbCBwYXNzZWQgaW4gdGhlIGZvbGxvd2luZyBwYXR0ZXJuOlxu''@;'; put 'put ''ICAgICAgICAgICAgICAgIHsgInNoYXBlLW5hbWUiOiAic2hhcGUtdGVtcGxhdGUiIH0nKTtmb3IodmFyIGYgaW4gaCloLmhhc093blByb3BlcnR5KGYpJiZ0aGlzLnNldEljb25UZW1wbGF0ZShmLGhbZl0pfSxvLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oaCl7cmV0dXJuISFhW3RoaXMubm9y''@;'; put 'put ''bWFsaXplU2hhcGVOYW1lKGgpXX0sby5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGgpe2lmKCFoKXJldHVybiBhO2lmKCJzdHJpbmciIT10eXBlb2YgaCl0aHJvdyBuZXcgVHlwZUVycm9yKCJPbmx5IHN0cmluZyBhcmd1bWVudCBpcyBhbGxvd2VkIGluIHRoaXMgbWV0aG9kLiIpO3JldHVybiBh''@;'; put 'put ''W3RoaXMubm9ybWFsaXplU2hhcGVOYW1lKGgpXX0sby5wcm90b3R5cGUuYWxpYXM9ZnVuY3Rpb24oaCl7aWYoIm9iamVjdCIhPXR5cGVvZiBoKXRocm93IG5ldyBFcnJvcignVGhlIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IGxpdGVyYWwgcGFzc2VkIGluIHRoZSBmb2xsb3dpbmcgcGF0''@;'; put 'put ''dGVybjpcbiAgICAgICAgICAgICAgICB7ICJzaGFwZS1uYW1lIjogWyJhbGlhcy1uYW1lIiwgLi4uXSB9Jyk7Zm9yKHZhciBmIGluIGgpaWYoaC5oYXNPd25Qcm9wZXJ0eShmKSl7aWYoIWEuaGFzT3duUHJvcGVydHkoZikpdGhyb3cgbmV3IEVycm9yKCdBbiBpY29uICInK2YrIlwiIHlvdSBh''@;'; put 'put ''cmUgdHJ5aW5nIHRvIHNldCBhbGlhc2VzIHRvIGRvZXNuJ3QgZXhpc3QgaW4gdGhlIENsYXJpdHkgSWNvbnMgc2V0cyEiKTt0aGlzLnNldEljb25BbGlhc2VzKGEsZixoW2ZdKX19LGUuQ2xhcml0eUljb25zQXBpPWM9b30sIi4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1lbGVtZW50''@;'; put 'put ''LnRzIjpmdW5jdGlvbihBLGUsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsYXJpdHlJY29uRWxlbWVudD12b2lkIDA7dmFyIHI9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLWFwaS50cyIpLGE9bCgi''@;'; put 'put ''Li9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc2hhcGUtdGVtcGxhdGUtb2JzZXJ2ZXIudHMiKSxjPTAsbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7by5jbGFzc05hbWU9ImlzLW9mZi1zY3JlZW4iO3ZhciBoPWZ1bmN0aW9uKCl7cmV0dXJuIEhUTUxFbGVtZW50LmFwcGx5KHRo''@;'; put 'put ''aXMsYXJndW1lbnRzKX07ZnVuY3Rpb24gZigpe3ZhciBnPWguYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBnLmNsckljb25VbmlxSWQ9Il9jbHJfaWNvbl8iK2MsYysrLGd9Im9iamVjdCI9PXR5cGVvZiBSZWZsZWN0JiYoaD1mdW5jdGlvbigpe3JldHVybiBSZWZsZWN0LmNvbnN0cnVj''@;'; put 'put ''dChIVE1MRWxlbWVudCxhcmd1bWVudHMsdGhpcy5jb25zdHJ1Y3Rvcil9KSwoZS5DbGFyaXR5SWNvbkVsZW1lbnQ9Zikub2JzZXJ2ZWRBdHRyaWJ1dGVzPVsic2hhcGUiLCJzaXplIiwidGl0bGUiXSwoKGYucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoSFRNTEVsZW1lbnQucHJvdG90eXBlLHtj''@;'; put 'put ''b25zdHJ1Y3Rvcjp7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmZ9fSkpLmNvbnN0cnVjdG9yPWYpLnByb3RvdHlwZS5fYXBwZW5kQ3VzdG9tVGl0bGU9ZnVuY3Rpb24oKXt2YXIgZz1vLmNsb25lTm9kZSghMSk7Zy5pZD10aGlzLmNsckljb25VbmlxSWQsZy50ZXh0Q29udGVu''@;'; put 'put ''dD10aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwsdGhpcy5hcHBlbmRDaGlsZChnKX0sZi5wcm90b3R5cGUuX3NldEljb25TaXplPWZ1bmN0aW9uKGcpeyFOdW1iZXIoZyl8fE51bWJlcihnKTwwPyh0aGlzLnN0eWxlLndpZHRoPW51bGwsdGhpcy5zdHlsZS5oZWlnaHQ9bnVsbCk6KHRoaXMuc3R5''@;'; put 'put ''bGUud2lkdGg9ZysicHgiLHRoaXMuc3R5bGUuaGVpZ2h0PWcrInB4Iil9LGYucHJvdG90eXBlLl9ub3JtYWxpemVTaGFwZT1mdW5jdGlvbihnKXtyZXR1cm4gZy5zcGxpdCgvXHMvKVswXS50b0xvd2VyQ2FzZSgpfSxmLnByb3RvdHlwZS5jb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3Zh''@;'; put 'put ''ciBnLHU9dGhpcztpZih0aGlzLmdldEF0dHJpYnV0ZSgicm9sZSIpfHx0aGlzLnNldEF0dHJpYnV0ZSgicm9sZSIsIm5vbmUiKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2l6ZSIpJiYoZz10aGlzLmdldEF0dHJpYnV0ZSgic2l6ZSIpLHRoaXMuY3VycmVudFNpemVBdHRyVmFsIT09ZyYmKHRoaXMu''@;'; put 'put ''Y3VycmVudFNpemVBdHRyVmFsPWcsdGhpcy5fc2V0SWNvblNpemUoZykpKSx0aGlzLmhhc0F0dHJpYnV0ZSgic2hhcGUiKSl7dmFyIHA9dGhpcy5fbm9ybWFsaXplU2hhcGUodGhpcy5nZXRBdHRyaWJ1dGUoInNoYXBlIikpO2lmKHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb249YS5T''@;'; put 'put ''aGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8ocCxmdW5jdGlvbih2KXt1Ll9pbmplY3RUZW1wbGF0ZSh2KX0pLHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD1wLCFyLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKSly''@;'; put 'put ''ZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7aWYoKHA9ci5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KHRoaXMuY3VycmVudFNoYXBlQXR0clZhbCkpPT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSlyZXR1cm47dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZT1w''@;'; put 'put ''fXRoaXMuaGFzQXR0cmlidXRlKCJ0aXRsZSIpJiYocD10aGlzLmdldEF0dHJpYnV0ZSgidGl0bGUiKSx0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwhPT1wJiYodGhpcy5jdXJyZW50VGl0bGVBdHRyVmFsPXApLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfHx0aGlzLl9pbmplY3RUZW1wbGF0''@;'; put 'put ''ZSgpfSxmLnByb3RvdHlwZS5hdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2s9ZnVuY3Rpb24oZyx1LHApe3ZhciB2PXRoaXM7aWYoInNpemUiPT09ZyYmdGhpcy5fc2V0SWNvblNpemUocCksInNoYXBlIj09PWcpe2lmKHRoaXMuY3VycmVudFNoYXBlQXR0clZhbD10aGlzLl9ub3JtYWxpemVTaGFw''@;'; put 'put ''ZShwKSx0aGlzLl9zaGFwZVRlbXBsYXRlU3Vic2NyaXB0aW9uJiYodGhpcy5fc2hhcGVUZW1wbGF0ZVN1YnNjcmlwdGlvbigpLHRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb249YS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXIuaW5zdGFuY2Uuc3Vic2NyaWJlVG8odGhpcy5jdXJyZW50U2hh''@;'; put 'put ''cGVBdHRyVmFsLGZ1bmN0aW9uKEgpe3YuX2luamVjdFRlbXBsYXRlKEgpfSkpLCFyLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5oYXModGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKSlyZXR1cm4gdm9pZCB0aGlzLl9pbmplY3RFcnJvclRlbXBsYXRlKCk7dGhpcy5jdXJyZW50U2hhcGVUZW1w''@;'; put 'put ''bGF0ZT1yLkNsYXJpdHlJY29uc0FwaS5pbnN0YW5jZS5nZXQodGhpcy5jdXJyZW50U2hhcGVBdHRyVmFsKX0idGl0bGUiPT09ZyYmKHRoaXMuY3VycmVudFRpdGxlQXR0clZhbD1wLCF0aGlzLmN1cnJlbnRTaGFwZUF0dHJWYWwpfHx0aGlzLl9pbmplY3RUZW1wbGF0ZSgpfSxmLnByb3RvdHlw''@;'; put 'put ''ZS5kaXNjb25uZWN0ZWRDYWxsYmFjaz1mdW5jdGlvbigpe3RoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24mJnRoaXMuX3NoYXBlVGVtcGxhdGVTdWJzY3JpcHRpb24oKX0sZi5wcm90b3R5cGUuX3NldEFyaWFMYWJlbGxlZEJ5PWZ1bmN0aW9uKCl7dmFyIGc9dGhpcy5nZXRBdHRyaWJ1''@;'; put 'put ''dGUoImFyaWEtbGFiZWxsZWRieSIpLHU9KHU9dGhpcy5xdWVyeVNlbGVjdG9yKCJzdmciKSl8fHRoaXM7Zz9nJiZnLmluZGV4T2YodGhpcy5jbHJJY29uVW5pcUlkKTwwJiZ1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixnKyIgIit0aGlzLmNsckljb25VbmlxSWQpOnUuc2V0QXR0''@;'; put 'put ''cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLHRoaXMuY2xySWNvblVuaXFJZCl9LGYucHJvdG90eXBlLl9pbmplY3RUZW1wbGF0ZT1mdW5jdGlvbihnKXtnJiZnIT09dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSYmKHRoaXMuY3VycmVudFNoYXBlVGVtcGxhdGU9ZyksdGhpcy5pbm5lckhUTUw9''@;'; put 'put ''dGhpcy5jdXJyZW50U2hhcGVUZW1wbGF0ZSx0aGlzLmN1cnJlbnRUaXRsZUF0dHJWYWwmJih0aGlzLl9zZXRBcmlhTGFiZWxsZWRCeSgpLHRoaXMuX2FwcGVuZEN1c3RvbVRpdGxlKCkpfSxmLnByb3RvdHlwZS5faW5qZWN0RXJyb3JUZW1wbGF0ZT1mdW5jdGlvbigpe3RoaXMuY3VycmVudFNo''@;'; put 'put ''YXBlVGVtcGxhdGU9ci5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UuZ2V0KCJlcnJvciIpLHRoaXMuX2luamVjdFRlbXBsYXRlKCl9fSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvY2xyLWljb25zLXNmeC50cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVy''@;'; put 'put ''dHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DbGFyaXR5SWNvbnM9dm9pZCAwO3ZhciByPWwoIi4vcHJvamVjdHMvaWNvbnMvc3JjL2luZGV4LnRzIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIkNsYXJpdHlJY29ucyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0''@;'; put 'put ''dXJuIHIuQ2xhcml0eUljb25zfX0pLGw9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2FsbC1zaGFwZXMudHMiKSxyLkNsYXJpdHlJY29ucy5hZGQobC5BbGxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvaW5kZXgudHMiOmZ1bmN0aW9uKEEsZSxhKXsidXNlIHN0cmljdCI7''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ2xhcml0eUljb25zPXZvaWQgMDt2YXIgYz1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtYXBpLnRzIikscj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy9jbHItaWNvbnMtZWxlbWVudC50''@;'; put 'put ''cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NvcmUtc2hhcGVzLnRzIiksKGUuQ2xhcml0eUljb25zPWM9Yy5DbGFyaXR5SWNvbnNBcGkuaW5zdGFuY2UpLmFkZChhLkNvcmVTaGFwZXMpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93Lmhhc093blByb3Bl''@;'; put 'put ''cnR5KCJDbGFyaXR5SWNvbnMiKXx8KHdpbmRvdy5DbGFyaXR5SWNvbnM9YyksY3VzdG9tRWxlbWVudHMuZ2V0KCJjbHItaWNvbiIpfHxjdXN0b21FbGVtZW50cy5kZWZpbmUoImNsci1pY29uIixyLkNsYXJpdHlJY29uRWxlbWVudCkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2Fs''@;'; put 'put ''bC1zaGFwZXMudHMiOmZ1bmN0aW9uKEEsZSx1KXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQWxsU2hhcGVzPXZvaWQgMDt2YXIgcj11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY2hhcnQtc2hhcGVzLnRzIiks''@;'; put 'put ''YT11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29tbWVyY2Utc2hhcGVzLnRzIiksYz11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxvPXUoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9lc3NlbnRpYWwtc2hhcGVzLnRzIiksaD11KCIu''@;'; put 'put ''L3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvbWVkaWEtc2hhcGVzLnRzIiksZj11KCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50cyIpLGc9dSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RlY2hub2xvZ3ktc2hhcGVzLnRzIikscD11KCIuL3Byb2pl''@;'; put 'put ''Y3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyIpLHY9KHU9dSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RyYXZlbC1zaGFwZXMudHMiKSxwPVtjLkNvcmVTaGFwZXMsYS5Db21tZXJjZVNoYXBlcyxvLkVzc2VudGlhbFNoYXBlcyxoLk1lZGlhU2hhcGVzLGYu''@;'; put 'put ''U29jaWFsU2hhcGVzLGcuVGVjaG5vbG9neVNoYXBlcyx1LlRyYXZlbFNoYXBlcyxyLkNoYXJ0U2hhcGVzLHAuVGV4dEVkaXRTaGFwZXNdLHt9KTtlLkFsbFNoYXBlcz12O2Zvcih2YXIgSD0wLEM9cDtIPEMubGVuZ3RoO0grKyl7dmFyIFYsUz1DW0hdO2ZvcihWIGluIFMpUy5oYXNPd25Qcm9w''@;'; put 'put ''ZXJ0eShWKSYmKHZbVl09U1tWXSl9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKHYpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2NoYXJ0LXNoYXBlcy50cyI6ZnVu''@;'; put 'put ''Y3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5DaGFydFNoYXBlcz1lLkNsclNoYXBlQmVsbEN1cnZlPWUuQ2xyU2hhcGVUaWNrQ2hhcnQ9ZS5DbHJTaGFwZVNjYXR0ZXJQbG90PWUuQ2xyU2hhcGVQaWVD''@;'; put 'put ''aGFydD1lLkNsclNoYXBlTGluZUNoYXJ0PWUuQ2xyU2hhcGVIZWF0TWFwPWUuQ2xyU2hhcGVHcmlkQ2hhcnQ9ZS5DbHJTaGFwZUN1cnZlQ2hhcnQ9ZS5DbHJTaGFwZUNsb3VkQ2hhcnQ9ZS5DbHJTaGFwZUJ1YmJsZUNoYXJ0PWUuQ2xyU2hhcGVCb3hQbG90PWUuQ2xyU2hhcGVCYXJDaGFydD1l''@;'; put 'put ''LkNsclNoYXBlQXhpc0NoYXJ0PXZvaWQgMDt2YXIgcj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNoYXBlQXhpc0NoYXJ0PSgwLGEu''@;'; put 'put ''Y2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1''@;'; put 'put ''IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5''@;'; put 'put ''IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcg''@;'; put 'put ''MjYuNzMxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1''@;'; put 'put ''IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQuNzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAx''@;'; put 'put ''IEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkg''@;'; put 'put ''TCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAz''@;'; put 'put ''MSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gNi4wMDcgMjYuNzMxIEwgMjcuNzMg''@;'; put 'put ''MjYuNzMgQyAyOC40OSAyNi42NyAyOC45MSAyNS44IDI4LjQ3IDI1LjE3IEMgMjguMyAyNC45MiAyOC4wMyAyNC43NiAyNy43MyAyNC43NCBMIDguMDAxIDI0LjczNiBMIDguMDEgMTEuMDEgQyA4LjAxIDEwLjIzIDcuMTcgOS43NSA2LjUgMTAuMTQgQyA2LjE5IDEwLjMxIDYgMTAuNjUgNiAx''@;'; put 'put ''MS4wMSBMIDYuMDA3IDI2LjczMSBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIxLjk2OSA5LjIzMyAy''@;'; put 'put ''NS4wNSAxMy4xIDI5LjMxIDEzLjQ2IEwgMzAuMzIgMTMuNDggQyAzMS42MjYgMTMuNDI5IDMyLjg5NSAxMy4wMzYgMzQgMTIuMzQgWiBNIDYuMDA3IDI2LjczMSBMIDI3LjczIDI2LjczIEMgMjguNDkgMjYuNjcgMjguOTEgMjUuOCAyOC40NyAyNS4xNyBDIDI4LjMgMjQuOTIgMjguMDMgMjQu''@;'; put 'put ''NzYgMjcuNzMgMjQuNzQgTCA4LjAwMSAyNC43MzYgTCA4LjAxIDExLjAxIEMgOC4wMSAxMC4yMyA3LjE3IDkuNzUgNi41IDEwLjE0IEMgNi4xOSAxMC4zMSA2IDEwLjY1IDYgMTEuMDEgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''Mi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAy''@;'; put 'put ''Ljg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDgu''@;'; put 'put ''MDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIEwgNi4wMDcgMjYuNzMxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0g''@;'; put 'put ''MjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0''@;'; put 'put ''Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQg''@;'; put 'put ''MTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA2LjAwNyAyNi43MzEgTCAyNy43MyAyNi43MyBDIDI4LjQ5IDI2LjY3IDI4LjkxIDI1LjggMjguNDcgMjUuMTcgQyAyOC4zIDI0LjkyIDI4LjAzIDI0''@;'; put 'put ''Ljc2IDI3LjczIDI0Ljc0IEwgOC4wMDEgMjQuNzM2IEwgOC4wMSAxMS4wMSBDIDguMDEgMTAuMjMgNy4xNyA5Ljc1IDYuNSAxMC4xNCBDIDYuMTkgMTAuMzEgNiAxMC42NSA2IDExLjAxIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''Mi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAz''@;'; put 'put ''NC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz4nKSxlLkNsclNoYXBlQmFyQ2hhcnQ9''@;'; put 'put ''KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwv''@;'; put 'put ''cGF0aD5cbiAgPHBhdGggZD0iTSA3IDEwIEwgMTMgMTAgTCAxMyAyNiBMIDExLjQgMjYgTCAxMS40IDExLjYgTCA4LjYgMTEuNiBMIDguNiAyNiBMIDcgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBM''@;'; put 'put ''IDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjMgMTYgTCAyOSAxNiBMIDI5IDI2IEwgMjcuNCAy''@;'; put 'put ''NiBMIDI3LjQgMTcuNiBMIDI0LjYgMTcuNiBMIDI0LjYgMjYgTCAyMyAyNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBD''@;'; put 'put ''IDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gNyAyNiBMIDEzIDI2IEwgMTMgMTAgTCA3IDEwIFogTSAxNSAyNiBMIDIx''@;'; put 'put ''IDI2IEwgMjEgMTkgTCAxNSAxOSBaIE0gMjMgMjYgTCAyOSAyNiBMIDI5IDE2IEwgMjMgMTYgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0''@;'; put 'put ''IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAz''@;'; put 'put ''NCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDcgMTAgTCAxMyAxMCBMIDEzIDI2IEwgMTEuNCAyNiBMIDExLjQgMTEuNiBMIDguNiAxMS42IEwgOC42IDI2IEwgNyAyNiBaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxOSBMIDIxIDE5IEwgMjEgMjYgTCAxOS40IDI2IEwgMTkuNCAyMC42IEwgMTYuNiAyMC42IEwgMTYuNiAyNiBMIDE1IDI2IFoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIzIDE2IEwgMjkgMTYgTCAyOSAyNiBMIDI3LjQgMjYgTCAyNy40IDE3LjYgTCAyNC42IDE3LjYgTCAyNC42IDI2IEwgMjMgMjYgWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUg''@;'; put 'put ''NSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNSAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gNyAyNiBMIDEzIDI2IEwgMTMgMTAgTCA3IDEwIFogTSAxNSAyNiBMIDIxIDI2IEwgMjEgMTkg''@;'; put 'put ''TCAxNSAxOSBaIE0gMjMgMjYgTCAyOSAyNiBMIDI5IDE2IEwgMjMgMTYgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1''@;'; put 'put ''IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMCBMIDEzIDEwIEwgMTMgMjYgTCAxMS40IDI2IEwgMTEuNCAxMS42IEwgOC42IDExLjYgTCA4LjYgMjYgTCA3IDI2IFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTUgMTkgTCAyMSAxOSBMIDIxIDI2IEwgMTkuNCAyNiBMIDE5LjQgMjAuNiBMIDE2LjYgMjAuNiBMIDE2LjYgMjYgTCAxNSAyNiBaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDIzIDE2IEwgMjkgMTYgTCAyOSAyNiBMIDI3LjQgMjYgTCAyNy40IDE3LjYgTCAyNC42IDE3LjYgTCAyNC42IDI2IEwgMjMgMjYgWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEu''@;'; put 'put ''MTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44''@;'; put 'put ''MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; put 'put ''ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUgMTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2''@;'; put 'put ''NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSA3IDI2IEwgMTMgMjYgTCAxMyAxMCBMIDcgMTAgWiBNIDE1IDI2IEwgMjEgMjYgTCAyMSAxOSBMIDE1IDE5IFogTSAyMyAyNiBMIDI5IDI2IEwgMjkgMTYgTCAyMyAxNiBa''@;'; put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAx''@;'; put 'put ''IEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMg''@;'; put 'put ''MjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksZS5DbHJTaGFwZUJveFBsb3Q9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsNUg0QTIsMiwwLDAsMCwyLDdW''@;'; put 'put ''MjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsMjlWN0gzMlYyOVoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDEyIEwgMTcgMTIgTCAxNyAyNiBMIDcgMjYgTCA3IDEyIFogTSA4LjYgMjQuNCBMIDE1LjQgMjQuNCBMIDE1LjQgMTguOCBMIDgu''@;'; put 'put ''NiAxOC44IEwgOC42IDI0LjQgWiBNIDE1LjQgMTMuNiBMIDguNiAxMy42IEwgOC42IDE3LjIgTCAxNS40IDE3LjIgTCAxNS40IDEzLjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxOSAyNCBMIDI5IDI0IEwgMjkg''@;'; put 'put ''MTAgTCAxOSAxMCBMIDE5IDI0IFogTSAyMC42IDExLjYgTCAyNy40IDExLjYgTCAyNy40IDE3LjIgTCAyMC42IDE3LjIgTCAyMC42IDExLjYgWiBNIDI3LjQgMjIuNCBMIDIwLjYgMjIuNCBMIDIwLjYgMTguOCBMIDI3LjQgMTguOCBMIDI3LjQgMjIuNCBaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBD''@;'; put 'put ''IDIgNS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gNyAyNiBMIDE3IDI2IEwgMTcgMTIgTCA3IDEyIFogTSA5IDE5IEwgMTUgMTkgTCAxNSAyNCBMIDkgMjQgWiBNIDE1IDE3IEwgOSAxNyBMIDkgMTQgTCAxNSAxNCBaIE0gMTkgMjQgTCAyOSAy''@;'; put 'put ''NCBMIDI5IDEwIEwgMTkgMTAgWiBNIDIxIDEyIEwgMjcgMTIgTCAyNyAxNyBMIDIxIDE3IFogTSAyNyAyMiBMIDIxIDIyIEwgMjEgMTkgTCAyNyAxOSBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIg''@;'; put 'put ''ZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44''@;'; put 'put ''OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMiBMIDE3IDEyIEwgMTcgMjYgTCA3IDI2IEwgNyAxMiBaIE0gOC42IDI0''@;'; put 'put ''LjQgTCAxNS40IDI0LjQgTCAxNS40IDE4LjggTCA4LjYgMTguOCBMIDguNiAyNC40IFogTSAxNS40IDEzLjYgTCA4LjYgMTMuNiBMIDguNiAxNy4yIEwgMTUuNCAxNy4yIEwgMTUuNCAxMy42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh''@;'; put 'put ''ZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDEwIEwgMjMuNzI4IDEwIEMgMjQuMTA1IDEwLjU5NiAyNC41NjQgMTEuMTM1IDI1LjA5IDExLjYgTCAyMC42IDExLjYgTCAyMC42IDE3LjIgTCAyNy40IDE3LjIgTCAyNy40IDEyLjk4NyBDIDI3LjkwOSAxMy4xNzcgMjguNDQ1IDEzLjMx''@;'; put 'put ''MyAyOSAxMy4zODcgTCAyOSAyNCBMIDE5IDI0IFogTSAyNy40IDE4LjggTCAyMC42IDE4LjggTCAyMC42IDIyLjQgTCAyNy40IDIyLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0g''@;'; put 'put ''MzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMi41NyA1IEMgMjIuMzEyIDYuODE3IDIyLjczMiA4LjU2NiAyMy42MzMgMTAgTCAxOSAxMCBMIDE5''@;'; put 'put ''IDI0IEwgMjkgMjQgTCAyOSAxMy40MjcgQyAyOS4xMDMgMTMuNDQgMjkuMjA2IDEzLjQ1MSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA3IDI2IEwgMTcgMjYgTCAxNyAxMiBMIDcgMTIgWiBNIDkgMTkgTCAxNSAx''@;'; put 'put ''OSBMIDE1IDI0IEwgOSAyNCBaIE0gMTUgMTcgTCA5IDE3IEwgOSAxNCBMIDE1IDE0IFogTSAyMSAxMiBMIDI1LjQ3MiAxMiBDIDI1Ljk0IDEyLjM1MiAyNi40NTIgMTIuNjUgMjcgMTIuODg1IEwgMjcgMTcgTCAyMSAxNyBaIE0gMjcgMjIgTCAyMSAyMiBMIDIxIDE5IEwgMjcgMTkgWiI+PC9w''@;'; put 'put ''YXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMy''@;'; put 'put ''IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMiBMIDE3IDEyIEwgMTcgMjYgTCA3IDI2IEwgNyAxMiBaIE0gOC42IDI0LjQgTCAxNS40IDI0LjQgTCAxNS40IDE4LjggTCA4LjYgMTguOCBMIDguNiAyNC40IFogTSAxNS40IDEzLjYgTCA4LjYgMTMuNiBM''@;'; put 'put ''IDguNiAxNy4yIEwgMTUuNCAxNy4yIEwgMTUuNCAxMy42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMjQgTCAxOSAyNCBMIDE5IDE1LjM0NSBDIDE5LjAyMSAxNS4zNDggMjAu''@;'; put 'put ''NiAxNS4zNiAyMC42IDE1LjM2IEwgMjAuNiAxNy4yIEwgMjcuNCAxNy4yIEwgMjcuNCAxNS4zNiBMIDI5IDE1LjM1NyBMIDI5IDI0IFogTSAyNy40IDE4LjggTCAyMC42IDE4LjggTCAyMC42IDIyLjQgTCAyNy40IDIyLjQgTCAyNy40IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIw''@;'; put 'put ''LjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0Ljgx''@;'; put 'put ''IDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkg''@;'; put 'put ''QyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAxOS4wMjggMTAgTCAxOSAxMCBMIDE5IDEwLjA0OCBMIDE3LjYyNSAxMi4zOTUgQyAxNi44MDcgMTMuNTgzIDE3''@;'; put 'put ''LjU3MSAxNS4xOTcgMTkgMTUuMzQ1IEwgMTkgMjQgTCAyOSAyNCBMIDI5IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNyAyNiBMIDE3IDI2IEwgMTcgMTIgTCA3IDEyIFogTSA5IDE5IEwgMTUgMTkgTCAxNSAyNCBMIDkgMjQgWiBNIDE1IDE3IEwgOSAxNyBMIDkgMTQgTCAxNSAxNCBaIE0gMjcg''@;'; put 'put ''MTcgTCAyMSAxNyBMIDIxIDE1LjM1NyBMIDI3IDE1LjM1NyBaIE0gMjcgMjIgTCAyMSAyMiBMIDIxIDE5IEwgMjcgMTkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2''@;'; put 'put ''Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44''@;'; put 'put ''NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVCdWJibGVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAz''@;'; put 'put ''NCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyOSAxOCBDIDI5IDE5LjY1NyAyNy42NTcgMjEgMjYgMjEgQyAyNC4zNDMgMjEgMjMgMTkuNjU3IDIzIDE4IEMgMjMgMTYuMzQzIDI0LjM0MyAxNSAyNiAx''@;'; put 'put ''NSBDIDI3LjY1NyAxNSAyOSAxNi4zNDMgMjkgMTggWiBNIDI2IDE2LjYgQyAyNS4yMjcgMTYuNiAyNC42IDE3LjIyNyAyNC42IDE4IEMgMjQuNiAxOC43NzMgMjUuMjI3IDE5LjQgMjYgMTkuNCBDIDI2Ljc3MyAxOS40IDI3LjQgMTguNzczIDI3LjQgMTggQyAyNy40IDE3LjIyNyAyNi43NzMg''@;'; put 'put ''MTYuNiAyNiAxNi42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAx''@;'; put 'put ''MCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1''@;'; put 'put ''IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMSAyMyBDIDIxIDI0LjY1NyAxOS42NTcgMjYgMTggMjYgQyAxNi4zNDMgMjYgMTUgMjQuNjU3IDE1IDIzIEMgMTUgMjEuMzQzIDE2''@;'; put 'put ''LjM0MyAyMCAxOCAyMCBDIDE5LjY1NyAyMCAyMSAyMS4zNDMgMjEgMjMgWiBNIDE4IDIxLjYgQyAxNy4yMjcgMjEuNiAxNi42IDIyLjIyNyAxNi42IDIzIEMgMTYuNiAyMy43NzMgMTcuMjI3IDI0LjQgMTggMjQuNCBDIDE4Ljc3MyAyNC40IDE5LjQgMjMuNzczIDE5LjQgMjMgQyAxOS40IDIy''@;'; put 'put ''LjIyNyAxOC43NzMgMjEuNiAxOCAyMS42IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAz''@;'; put 'put ''My4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMTEgMTAgQyA4Ljc5MSAxMCA3IDExLjc5MSA3IDE0IEMgNyAxNi4yMDkgOC43OTEgMTggMTEg''@;'; put 'put ''MTggQyAxMy4yMDkgMTggMTUgMTYuMjA5IDE1IDE0IEMgMTUgMTEuNzkxIDEzLjIwOSAxMCAxMSAxMCBaIE0gMjYgMTUgQyAyNC4zNDMgMTUgMjMgMTYuMzQzIDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAyNiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkgMTggQyAyOSAxNi4zNDMg''@;'; put 'put ''MjcuNjU3IDE1IDI2IDE1IFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3''@;'; put 'put ''IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0''@;'; put 'put ''aCBkPSJNIDI5IDE4IEMgMjkgMTkuNjU3IDI3LjY1NyAyMSAyNiAyMSBDIDI0LjM0MyAyMSAyMyAxOS42NTcgMjMgMTggQyAyMyAxNi4zNDMgMjQuMzQzIDE1IDI2IDE1IEMgMjcuNjU3IDE1IDI5IDE2LjM0MyAyOSAxOCBaIE0gMjYgMTYuNiBDIDI1LjIyNyAxNi42IDI0LjYgMTcuMjI3IDI0''@;'; put 'put ''LjYgMTggQyAyNC42IDE4Ljc3MyAyNS4yMjcgMTkuNCAyNiAxOS40IEMgMjYuNzczIDE5LjQgMjcuNCAxOC43NzMgMjcuNCAxOCBDIDI3LjQgMTcuMjI3IDI2Ljc3MyAxNi42IDI2IDE2LjYgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFk''@;'; put 'put ''Z2VkIiByeD0iMyI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1IDE0IEMgMTUgMTYuMjA5IDEzLjIwOSAxOCAxMSAxOCBDIDguNzkxIDE4IDcgMTYuMjA5IDcgMTQgQyA3IDExLjc5MSA4Ljc5MSAxMCAxMSAxMCBDIDEzLjIwOSAxMCAxNSAxMS43OTEgMTUgMTQgWiBNIDExIDExLjYgQyA5LjY3''@;'; put 'put ''NSAxMS42IDguNiAxMi42NzUgOC42IDE0IEMgOC42IDE1LjMyNSA5LjY3NSAxNi40IDExIDE2LjQgQyAxMi4zMjUgMTYuNCAxMy40IDE1LjMyNSAxMy40IDE0IEMgMTMuNCAxMi42NzUgMTIuMzI1IDExLjYgMTEgMTEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjEgMjMgQyAyMSAyNC42NTcgMTkuNjU3IDI2IDE4IDI2IEMgMTYuMzQzIDI2IDE1IDI0LjY1NyAxNSAyMyBDIDE1IDIxLjM0MyAxNi4zNDMgMjAgMTggMjAgQyAxOS42NTcgMjAgMjEgMjEuMzQzIDIx''@;'; put 'put ''IDIzIFogTSAxOCAyMS42IEMgMTcuMjI3IDIxLjYgMTYuNiAyMi4yMjcgMTYuNiAyMyBDIDE2LjYgMjMuNzczIDE3LjIyNyAyNC40IDE4IDI0LjQgQyAxOC43NzMgMjQuNCAxOS40IDIzLjc3MyAxOS40IDIzIEMgMTkuNCAyMi4yMjcgMTguNzczIDIxLjYgMTggMjEuNiBaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1''@;'; put 'put ''Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBD''@;'; put 'put ''IDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gMTEgMTAgQyA4Ljc5MSAxMCA3IDExLjc5MSA3IDE0IEMgNyAxNi4y''@;'; put 'put ''MDkgOC43OTEgMTggMTEgMTggQyAxMy4yMDkgMTggMTUgMTYuMjA5IDE1IDE0IEMgMTUgMTEuNzkxIDEzLjIwOSAxMCAxMSAxMCBaIE0gMjYgMTUgQyAyNC4zNDMgMTUgMjMgMTYuMzQzIDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAyNiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkg''@;'; put 'put ''MTggQyAyOSAxNi4zNDMgMjcuNjU3IDE1IDI2IDE1IFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9wYXRoPlxu''@;'; put 'put ''ICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1''@;'; put 'put ''NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjkgMTggQyAyOSAxOS42NTcgMjcuNjU3IDIxIDI2IDIxIEMgMjQuMzQzIDIxIDIzIDE5LjY1NyAyMyAxOCBDIDIzIDE2LjM0MyAyNC4zNDMgMTUgMjYgMTUgQyAyNy42NTcgMTUgMjkgMTYuMzQzIDI5IDE4IFogTSAyNiAx''@;'; put 'put ''Ni42IEMgMjUuMjI3IDE2LjYgMjQuNiAxNy4yMjcgMjQuNiAxOCBDIDI0LjYgMTguNzczIDI1LjIyNyAxOS40IDI2IDE5LjQgQyAyNi43NzMgMTkuNCAyNy40IDE4Ljc3MyAyNy40IDE4IEMgMjcuNCAxNy4yMjcgMjYuNzczIDE2LjYgMjYgMTYuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; put 'put ''YWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNSAxNCBDIDE1IDE2LjIwOSAxMy4yMDkgMTggMTEgMTggQyA4Ljc5MSAxOCA3IDE2LjIwOSA3IDE0IEMgNyAxMS43OTEgOC43OTEgMTAgMTEgMTAgQyAxMy4yMDkgMTAg''@;'; put 'put ''MTUgMTEuNzkxIDE1IDE0IFogTSAxMSAxMS42IEMgOS42NzUgMTEuNiA4LjYgMTIuNjc1IDguNiAxNCBDIDguNiAxNS4zMjUgOS42NzUgMTYuNCAxMSAxNi40IEMgMTIuMzI1IDE2LjQgMTMuNCAxNS4zMjUgMTMuNCAxNCBDIDEzLjQgMTIuNjc1IDEyLjMyNSAxMS42IDExIDExLjYgWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIHJ4PSIzIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjEgMjMgQyAyMSAyNC42NTcgMTkuNjU3IDI2IDE4IDI2IEMgMTYuMzQzIDI2IDE1IDI0LjY1NyAxNSAyMyBDIDE1IDIxLjM0MyAxNi4z''@;'; put 'put ''NDMgMjAgMTggMjAgQyAxOS42NTcgMjAgMjEgMjEuMzQzIDIxIDIzIFogTSAxOCAyMS42IEMgMTcuMjI3IDIxLjYgMTYuNiAyMi4yMjcgMTYuNiAyMyBDIDE2LjYgMjMuNzczIDE3LjIyNyAyNC40IDE4IDI0LjQgQyAxOC43NzMgMjQuNCAxOS40IDIzLjc3MyAxOS40IDIzIEMgMTkuNCAyMi4y''@;'; put 'put ''MjcgMTguNzczIDIxLjYgMTggMjEuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgcng9IjMiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5''@;'; put 'put ''IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjEuOTU4IDUgTCAxNy42MjUg''@;'; put 'put ''MTIuMzk1IEMgMTYuNzk1IDEzLjYwMSAxNy41OTQgMTUuMjQ1IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUuMzU3IEwgMjQuNTc5IDE1LjM1NyBDIDIzLjYzOSAxNS44NjMgMjMgMTYuODU3IDIzIDE4IEMgMjMgMTkuNjU3IDI0LjM0MyAyMSAy''@;'; put 'put ''NiAyMSBDIDI3LjY1NyAyMSAyOSAxOS42NTcgMjkgMTggQyAyOSAxNi44NTcgMjguMzYxIDE1Ljg2MyAyNy40MjEgMTUuMzU3IEwgMzQgMTUuMzU3IFogTSAxMSAxMCBDIDguNzkxIDEwIDcgMTEuNzkxIDcgMTQgQyA3IDE2LjIwOSA4Ljc5MSAxOCAxMSAxOCBDIDEzLjIwOSAxOCAxNSAxNi4y''@;'; put 'put ''MDkgMTUgMTQgQyAxNSAxMS43OTEgMTMuMjA5IDEwIDExIDEwIFogTSAxOCAyMCBDIDE2LjM0MyAyMCAxNSAyMS4zNDMgMTUgMjMgQyAxNSAyNC42NTcgMTYuMzQzIDI2IDE4IDI2IEMgMTkuNjU3IDI2IDIxIDI0LjY1NyAyMSAyMyBDIDIxIDIxLjM0MyAxOS42NTcgMjAgMTggMjAgWiI+PC9w''@;'; put 'put ''YXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIy''@;'; put 'put ''LjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3''@;'; put 'put ''IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVDbG91ZENoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDI5VjdIMzJWMjlaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjAuOTcxIDExLjI0MyBDIDIzLjMxNCAxMy41ODYgMjIuMzY0IDE4LjMzNSAxOC44NDkgMjEuODQ5IEMgMTUuMzM0IDI1LjM2NCAxMC41''@;'; put 'put ''ODYgMjYuMzE0IDguMjQzIDIzLjk3IEMgNS44OTkgMjEuNjI3IDYuODQ5IDE2Ljg3OCAxMC4zNjQgMTMuMzY0IEMgMTMuODc5IDkuODQ5IDE4LjYyOCA4LjkgMjAuOTcxIDExLjI0MyBaIE0gMTEuNjM2IDE0LjYzNyBDIDguODI0IDE3LjQ0OSA3Ljg3NSAyMS4wNTggOS41MTUgMjIuNjk4IEMg''@;'; put 'put ''MTEuMTU1IDI0LjMzOCAxNC43NjQgMjMuMzg5IDE3LjU3NiAyMC41NzcgQyAyMC4zODggMTcuNzY1IDIxLjMzOCAxNC4xNTYgMTkuNjk3IDEyLjUxNiBDIDE4LjA1NyAxMC44NzYgMTQuNDQ4IDExLjgyNSAxMS42MzYgMTQuNjM3IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0yIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBDIDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMg''@;'; put 'put ''MjQuMjI3IDIwLjYgMjMuNiAyMS4yMjcgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNyAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40IDIyIEMgMjYuNCAyMS4yMjcgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMyIgeD0iNyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIg''@;'; put 'put ''NS44OTUgMi44OTUgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTUgMzQgNyBaIE0gMTAuMzY0IDEzLjM2NCBDIDYuODQ5IDE2Ljg3OCA1Ljg5OSAyMS42MjcgOC4yNDMgMjMuOTcgQyAxMC41ODYgMjYuMzE0IDE1LjMzNCAyNS4zNjQgMTguODQ5IDIxLjg0OSBDIDIyLjM2NCAxOC4z''@;'; put 'put ''MzUgMjMuMzE0IDEzLjU4NiAyMC45NzEgMTEuMjQzIEMgMTguNjI4IDguOSAxMy44NzkgOS44NDkgMTAuMzY0IDEzLjM2NCBaIE0gMjUgMTkgQyAyMy4zNDMgMTkgMjIgMjAuMzQzIDIyIDIyIEMgMjIgMjMuNjU3IDIzLjM0MyAyNSAyNSAyNSBDIDI2LjY1NyAyNSAyOCAyMy42NTcgMjggMjIg''@;'; put 'put ''QyAyOCAyMC4zNDMgMjYuNjU3IDE5IDI1IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2''@;'; put 'put ''OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQg''@;'; put 'put ''QyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyMC45NzEgMTEuMjQzIEMgMjMuMzE0IDEzLjU4NiAyMi4zNjQgMTguMzM1IDE4Ljg0OSAyMS44NDkgQyAxNS4zMzQgMjUuMzY0IDEwLjU4NiAyNi4zMTQgOC4yNDMgMjMuOTcgQyA1''@;'; put 'put ''Ljg5OSAyMS42MjcgNi44NDkgMTYuODc4IDEwLjM2NCAxMy4zNjQgQyAxMy44NzkgOS44NDkgMTguNjI4IDguOSAyMC45NzEgMTEuMjQzIFogTSAxMS42MzYgMTQuNjM3IEMgOC44MjQgMTcuNDQ5IDcuODc1IDIxLjA1OCA5LjUxNSAyMi42OTggQyAxMS4xNTUgMjQuMzM4IDE0Ljc2NCAyMy4z''@;'; put 'put ''ODkgMTcuNTc2IDIwLjU3NyBDIDIwLjM4OCAxNy43NjUgMjEuMzM4IDE0LjE1NiAxOS42OTcgMTIuNTE2IEMgMTguMDU3IDEwLjg3NiAxNC40NDggMTEuODI1IDExLjYzNiAxNC42MzcgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk''@;'; put 'put ''Ij48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBDIDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMgMjQuMjI2IDIw''@;'; put 'put ''LjYgMjMuNiAyMS4yMjYgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNiAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40IDIyIEMgMjYuNCAyMS4yMjYgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zLS1iYWRnZWQiIHg9IjciPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIyLjU3''@;'; put 'put ''IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI1IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4z''@;'; put 'put ''MTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjIuMzY0IDE4LjMzNSAyMy4zMTQgMTMuNTg2IDIwLjk3MSAxMS4yNDMgQyAxOC42MjggOC45IDEzLjg3OSA5Ljg0OSAxMC4zNjQgMTMuMzY0IFogTSAyNSAxOSBDIDIzLjM0MyAxOSAyMiAyMC4zNDMgMjIgMjIgQyAyMiAyMy42NTcg''@;'; put 'put ''MjMuMzQzIDI1IDI1IDI1IEMgMjYuNjU3IDI1IDI4IDIzLjY1NyAyOCAyMiBDIDI4IDIwLjM0MyAyNi42NTcgMTkgMjUgMTkgWiI+PC9wYXRoPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0i''@;'; put 'put ''MzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIg''@;'; put 'put ''MjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTguODQ5IDIxLjg0OSBDIDE1LjMzNCAyNS4zNjQgMTAuNTg2IDI2LjMx''@;'; put 'put ''NCA4LjI0MyAyMy45NyBDIDUuODk5IDIxLjYyNyA2Ljg0OSAxNi44NzggMTAuMzY0IDEzLjM2NCBDIDEzLjA0OSAxMC42NzkgMTYuNDUzIDkuNDkyIDE4Ljk1NiAxMC4xMjQgTCAxOC4wMDggMTEuNzQxIEMgMTYuMTggMTEuNTE4IDEzLjY5NSAxMi41NzggMTEuNjM2IDE0LjYzNyBDIDguODI0''@;'; put 'put ''IDE3LjQ0OSA3Ljg3NSAyMS4wNTggOS41MTUgMjIuNjk4IEMgMTEuMTU1IDI0LjMzOCAxNC43NjQgMjMuMzg5IDE3LjU3NiAyMC41NzcgQyAxOS4yMjggMTguOTI1IDIwLjIzNyAxNi45OTggMjAuNDU2IDE1LjM1NyBMIDIyLjIyIDE1LjM1NyBDIDIyLjAwNiAxNy40NzcgMjAuODM4IDE5Ljg2''@;'; put 'put ''MSAxOC44NDkgMjEuODQ5IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMjggMjIgQyAyOCAyMy42NTcgMjYuNjU3IDI1IDI1IDI1IEMgMjMuMzQzIDI1IDIyIDIzLjY1NyAyMiAyMiBD''@;'; put 'put ''IDIyIDIwLjM0MyAyMy4zNDMgMTkgMjUgMTkgQyAyNi42NTcgMTkgMjggMjAuMzQzIDI4IDIyIFogTSAyNSAyMC42IEMgMjQuMjI2IDIwLjYgMjMuNiAyMS4yMjYgMjMuNiAyMiBDIDIzLjYgMjIuNzczIDI0LjIyNiAyMy40IDI1IDIzLjQgQyAyNS43NzMgMjMuNCAyNi40IDIyLjc3MyAyNi40''@;'; put 'put ''IDIyIEMgMjYuNCAyMS4yMjYgMjUuNzczIDIwLjYgMjUgMjAuNiBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgeD0iNyI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAx''@;'; put 'put ''My4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBh''@;'; put 'put ''dGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45''@;'; put 'put ''NTggNSBMIDE4Ljk1NiAxMC4xMjQgQyAxNi40NTMgOS40OTIgMTMuMDQ5IDEwLjY3OSAxMC4zNjQgMTMuMzY0IEMgNi44NDkgMTYuODc4IDUuODk5IDIxLjYyNyA4LjI0MyAyMy45NyBDIDEwLjU4NiAyNi4zMTQgMTUuMzM0IDI1LjM2NCAxOC44NDkgMjEuODQ5IEMgMjAuODM4IDE5Ljg2MSAy''@;'; put 'put ''Mi4wMDYgMTcuNDc3IDIyLjIyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMjUgMTkgQyAyMy4zNDMgMTkgMjIgMjAuMzQzIDIyIDIyIEMgMjIgMjMuNjU3IDIzLjM0MyAyNSAyNSAyNSBDIDI2LjY1NyAyNSAyOCAyMy42NTcgMjggMjIgQyAyOCAyMC4zNDMgMjYuNjU3IDE5IDI1IDE5IFoiPjwv''@;'; put 'put ''cGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAy''@;'; put 'put ''Mi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41''@;'; put 'put ''NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlQ3VydmVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUg''@;'; put 'put ''MiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0i''@;'; put 'put ''TSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEy''@;'; put 'put ''OSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAyNC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAy''@;'; put 'put ''NS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQgMTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEu''@;'; put 'put ''OCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNIDM0IDcgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMx''@;'; put 'put ''IEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMTMgMTIgQyAxNC44MTcgMTIgMTUuNjc0IDEzLjQ5OSAxNy4wMzkgMTguMjc1IEMgMTcuODEzIDIwLjk4NCAxOC4yMDEgMjIuMTE4''@;'; put 'put ''IDE4Ljg4MiAyMy4zMDkgQyAxOS44NyAyNS4wMzggMjEuMjA1IDI2IDIzIDI2IEwgMjkgMjYgQyAyOS41NTIgMjYgMzAgMjUuNTUyIDMwIDI1IEMgMzAgMjQuNDQ4IDI5LjU1MiAyNCAyOSAyNCBMIDIzIDI0IEMgMjEuMTgzIDI0IDIwLjMyNiAyMi41MDEgMTguOTYyIDE3LjcyNSBDIDE4LjE4''@;'; put 'put ''OCAxNS4wMTYgMTcuNzk5IDEzLjg4MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIgNyAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzMiAxMy4yMiBMIDMyIDI5IEwgNCAyOSBMIDQgNyBMIDIyLjU3IDcgQyAyMi41MjQgNi42NjggMjIuNTAxIDYuMzM0IDIyLjUgNiBDIDIyLjUwMSA1LjY2NSAyMi41MjQgNS4zMzEgMjIuNTcgNSBMIDQgNSBDIDIu''@;'; put 'put ''ODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDQgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA0IDMxIDM0IDMwLjEwNCAzNCAyOSBMIDM0IDEyLjM0IEMgMzMuMzggMTIuNzMgMzIuNzA2IDEzLjAyNiAzMiAxMy4yMiBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gNyAxMS44''@;'; put 'put ''IEMgNi41NTggMTEuOCA2LjIgMTEuNDQyIDYuMiAxMSBDIDYuMiAxMC41NTggNi41NTggMTAuMiA3IDEwLjIgTCAxMyAxMC4yIEMgMTUuNDA0IDEwLjIgMTYuMzY4IDExLjkwNyAxNy42NTMgMTYuNDc4IEMgMTcuNjk1IDE2LjYyOCAxNy43NDQgMTYuODAzIDE3LjgzNSAxNy4xMjkgQyAxNy45''@;'; put 'put ''MDkgMTcuMzkyIDE3Ljk2NCAxNy41ODggMTguMDE5IDE3Ljc4IEMgMTkuMzMyIDIyLjM3NSAyMC41NDkgMjQuMiAyMyAyNC4yIEwgMjkgMjQuMiBDIDI5LjQ0MiAyNC4yIDI5LjggMjQuNTU4IDI5LjggMjUgQyAyOS44IDI1LjQ0MiAyOS40NDIgMjUuOCAyOSAyNS44IEwgMjMgMjUuOCBDIDE5''@;'; put 'put ''LjUzNSAyNS44IDE3Ljk4MSAyMy40NjkgMTYuNDgxIDE4LjIyIEMgMTYuNDI1IDE4LjAyNSAxNi4zNjkgMTcuODI2IDE2LjI5NSAxNy41NiBDIDE2LjIwMyAxNy4yMzQgMTYuMTU0IDE3LjA2IDE2LjExMyAxNi45MTEgQyAxNS4wNDMgMTMuMTA1IDE0LjMwNSAxMS44IDEzIDExLjggTCA3IDEx''@;'; put 'put ''LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5''@;'; put 'put ''PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAy''@;'; put 'put ''OSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gMTMgMTIgQyAxNC44MTcgMTIgMTUuNjc0IDEzLjQ5''@;'; put 'put ''OSAxNy4wMzkgMTguMjc1IEMgMTcuODEzIDIwLjk4NCAxOC4yMDEgMjIuMTE4IDE4Ljg4MiAyMy4zMDkgQyAxOS44NyAyNS4wMzggMjEuMjA1IDI2IDIzIDI2IEwgMjkgMjYgQyAyOS41NTIgMjYgMzAgMjUuNTUyIDMwIDI1IEMgMzAgMjQuNDQ4IDI5LjU1MiAyNCAyOSAyNCBMIDIzIDI0IEMg''@;'; put 'put ''MjEuMTgzIDI0IDIwLjMyNiAyMi41MDEgMTguOTYyIDE3LjcyNSBDIDE4LjE4OCAxNS4wMTYgMTcuNzk5IDEzLjg4MiAxNy4xMTggMTIuNjkxIEMgMTYuMTMgMTAuOTYyIDE0Ljc5NSAxMCAxMyAxMCBMIDcgMTAgQyA2LjQ0OCAxMCA2IDEwLjQ0OCA2IDExIEMgNiAxMS41NTIgNi40NDggMTIg''@;'; put 'put ''NyAxMiBaIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBM''@;'; put 'put ''IDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSA3IDExLjggQyA2LjU1OCAxMS44IDYuMiAxMS40NDIgNi4yIDExIEMgNi4yIDEwLjU1OCA2LjU1OCAxMC4yIDcgMTAuMiBMIDEzIDEwLjIgQyAxNS40MDQgMTAuMiAxNi4zNjggMTEuOTA3IDE3''@;'; put 'put ''LjY1MyAxNi40NzggQyAxNy42OTUgMTYuNjI4IDE3Ljc0NCAxNi44MDMgMTcuODM1IDE3LjEyOSBDIDE3LjkwOSAxNy4zOTIgMTcuOTY0IDE3LjU4OCAxOC4wMTkgMTcuNzggQyAxOS4zMzIgMjIuMzc1IDIwLjU0OSAyNC4yIDIzIDI0LjIgTCAyOSAyNC4yIEMgMjkuNDQyIDI0LjIgMjkuOCAy''@;'; put 'put ''NC41NTggMjkuOCAyNSBDIDI5LjggMjUuNDQyIDI5LjQ0MiAyNS44IDI5IDI1LjggTCAyMyAyNS44IEMgMTkuNTM1IDI1LjggMTcuOTgxIDIzLjQ2OSAxNi40ODEgMTguMjIgQyAxNi40MjUgMTguMDI1IDE2LjM2OSAxNy44MjYgMTYuMjk1IDE3LjU2IEMgMTYuMjAzIDE3LjIzNCAxNi4xNTQg''@;'; put 'put ''MTcuMDYgMTYuMTEzIDE2LjkxMSBDIDE1LjA0MyAxMy4xMDUgMTQuMzA1IDExLjggMTMgMTEuOCBMIDcgMTEuOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIu''@;'; put 'put ''MjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEu''@;'; put 'put ''MTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44''@;'; put 'put ''OTYgMi44OTYgNSA0IDUgTCAyMS45NTggNSBMIDE3LjYyNSAxMi4zOTUgQyAxNy40NzYgMTIuNjEyIDE3LjM3OSAxMi44NDMgMTcuMzMgMTMuMDc3IEMgMTcuMjYyIDEyLjk0OCAxNy4xOTIgMTIuODIgMTcuMTE4IDEyLjY5MSBDIDE2LjEzIDEwLjk2MiAxNC43OTUgMTAgMTMgMTAgTCA3IDEw''@;'; put 'put ''IEMgNi40NDggMTAgNiAxMC40NDggNiAxMSBDIDYgMTEuNTUyIDYuNDQ4IDEyIDcgMTIgTCAxMyAxMiBDIDE0LjgxNyAxMiAxNS42NzQgMTMuNDk5IDE3LjAzOSAxOC4yNzUgQyAxNy44MTMgMjAuOTg0IDE4LjIwMSAyMi4xMTggMTguODgyIDIzLjMwOSBDIDE5Ljg3IDI1LjAzOCAyMS4yMDUg''@;'; put 'put ''MjYgMjMgMjYgTCAyOSAyNiBDIDI5LjU1MiAyNiAzMCAyNS41NTIgMzAgMjUgQyAzMCAyNC40NDggMjkuNTUyIDI0IDI5IDI0IEwgMjMgMjQgQyAyMS4xODMgMjQgMjAuMzI2IDIyLjUwMSAxOC45NjIgMTcuNzI1IEMgMTguNjQgMTYuNTk4IDE4LjM4NSAxNS43NDQgMTguMTQ3IDE1LjA0NCBD''@;'; put 'put ''IDE4LjQwNyAxNS4yMTUgMTguNzE3IDE1LjMyNiAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQu''@;'; put 'put ''NjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIj48L3BhdGg+JyksZS5DbHJTaGFwZUdyaWRD''@;'; put 'put ''aGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNSwxN0g0YTIsMiwwLDAsMS0yLTJWOEEyLDIsMCwwLDEsNCw2SDE1YTIsMiwwLDAsMSwyLDJ2N0EyLDIsMCwwLDEsMTUsMTdaTTQsOHY3SDE1Vjha''@;'; put 'put ''Ii8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTdIMjFhMiwyLDAsMCwxLTItMlY4YTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwxN1pNMjEsOHY3SDMyVjhaIi8+XG4gIDxwYXRoIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMyLDMwSDIxYTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; put 'put ''IiBkPSJNIDE1IDE3IEwgNCAxNyBDIDIuODk1IDE3IDIgMTYuMTA1IDIgMTUgTCAyIDggQyAyIDYuODk1IDIuODk1IDYgNCA2IEwgMTUgNiBDIDE2LjEwNSA2IDE3IDYuODk1IDE3IDggTCAxNyAxNSBDIDE3IDE2LjEwNSAxNi4xMDUgMTcgMTUgMTcgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAxOS44OTUgMTcgMTkgMTYuMTA1IDE5IDE1IEwgMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAzMiA2IEMgMzMuMTA1IDYgMzQgNi44OTUgMzQgOCBMIDM0IDE1IEMgMzQgMTYuMTA1IDMzLjEw''@;'; put 'put ''NSAxNyAzMiAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0gMTUgMzAgTCA0IDMwIEMgMi44OTUgMzAgMiAyOS4xMDUgMiAyOCBMIDIgMjEgQyAyIDE5Ljg5NSAyLjg5NSAxOSA0IDE5IEwgMTUgMTkgQyAxNi4xMDUgMTkgMTcgMTku''@;'; put 'put ''ODk1IDE3IDIxIEwgMTcgMjggQyAxNyAyOS4xMDUgMTYuMTA1IDMwIDE1IDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTSAzMiAzMCBMIDIxIDMwIEMgMTkuODk1IDMwIDE5IDI5LjEwNSAxOSAyOCBMIDE5IDIxIEMgMTkgMTkuODk1''@;'; put 'put ''IDE5Ljg5NSAxOSAyMSAxOSBMIDMyIDE5IEMgMzMuMTA1IDE5IDM0IDE5Ljg5NSAzNCAyMSBMIDM0IDI4IEMgMzQgMjkuMTA1IDMzLjEwNSAzMCAzMiAzMCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtYWxlcnRlZCIgZD0i''@;'; put 'put ''TTE1LDE3SDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwxN1pNNCw4djdIMTVWOFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi1hbGVydGVkIiBkPSJNIDMy''@;'; put 'put ''IDE3IEwgMjEgMTcgQyAyMC4wMTQgMTcgMTkuMTk1IDE2LjI4NyAxOS4wMyAxNS4zNDggQyAxOS4wNDEgMTUuMzQ5IDE5LjA1MyAxNS4zNSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDMzLjk2OCAxNS4zNTcgQyAzMy44IDE2LjI5''@;'; put 'put ''MiAzMi45ODMgMTcgMzIgMTcgWiBNIDE5IDggQyAxOSA2Ljg5NSAxOS44OTUgNiAyMSA2IEwgMjEuMzcyIDYgTCAxOSAxMC4wNDggWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLWFsZXJ0ZWQiIGQ9Ik0xNSwzMEg0YTIsMiww''@;'; put 'put ''LDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtYWxlcnRlZCIgZD0iTTMyLDMwSDIxYTIsMiww''@;'; put 'put ''LDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgzMmEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDMyLDMwWk0yMSwyMXY3SDMyVjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0i''@;'; put 'put ''TSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEg''@;'; put 'put ''MzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAxNSAxNyBMIDQgMTcgQyAyLjg5NSAxNyAyIDE2LjEwNSAyIDE1IEwgMiA4IEMgMiA2Ljg5NSAyLjg5NSA2IDQgNiBMIDE1IDYgQyAxNi4xMDUgNiAxNyA2Ljg5NSAxNyA4IEwgMTcgMTUgQyAxNyAxNi4xMDUgMTYuMTA1IDE3IDE1IDE3IFoiLz5cbiAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgZD0iTSAzMiAxNyBMIDIxIDE3IEMgMjAuMDE0IDE3IDE5LjE5NSAxNi4yODcgMTkuMDMgMTUuMzQ4IEMgMTkuMDQxIDE1LjM0OSAxOS4wNTMgMTUuMzUgMTkuMDY0IDE1LjM1MSBD''@;'; put 'put ''IDE5LjEzNCAxNS4zNTcgMTkuMjAxIDE1LjM1OSAxOS4yNyAxNS4zNTcgTCAzMy45NjggMTUuMzU3IEMgMzMuOCAxNi4yOTIgMzIuOTgzIDE3IDMyIDE3IFogTSAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIxLjM3MiA2IEwgMTkgMTAuMDQ4IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgZD0iTSAxNSAzMCBMIDQgMzAgQyAyLjg5NSAzMCAyIDI5LjEwNSAyIDI4IEwgMiAyMSBDIDIgMTkuODk1IDIuODk1IDE5IDQgMTkgTCAxNSAxOSBDIDE2LjEwNSAxOSAxNyAxOS44OTUgMTcgMjEgTCAx''@;'; put 'put ''NyAyOCBDIDE3IDI5LjEwNSAxNi4xMDUgMzAgMTUgMzAgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAx''@;'; put 'put ''OS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkgMzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2''@;'; put 'put ''IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0gMzIgMTcgTCAyMSAxNyBDIDE5Ljg5NSAxNyAxOSAxNi4xMDUgMTkgMTUgTCAxOSA4IEMgMTkgNi44OTUgMTkuODk1IDYgMjEgNiBMIDIyLjU5IDYgQyAyMi41OSA2LjAxOSAyMi41OSA2LjAzNyAyMi41OSA2LjA1NiBDIDIyLjU5''@;'; put 'put ''IDYuNzI5IDIyLjY4IDcuMzgxIDIyLjg0OCA4IEwgMjEgOCBMIDIxIDE1IEwgMzIgMTUgTCAzMiAxMy4xNzUgQyAzMi43MTcgMTIuOTcyIDMzLjM4OSAxMi42NjQgMzQgMTIuMjY5IEwgMzQgMTUgQyAzNCAxNi4xMDUgMzMuMTA1IDE3IDMyIDE3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTUsMzBINGEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMTVhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwxNSwzMFpNNCwyMXY3SDE1VjIxWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMTUgMTcgTCA0IDE3''@;'; put 'put ''IEMgMi44OTUgMTcgMiAxNi4xMDUgMiAxNSBMIDIgOCBDIDIgNi44OTUgMi44OTUgNiA0IDYgTCAxNSA2IEMgMTYuMTA1IDYgMTcgNi44OTUgMTcgOCBMIDE3IDE1IEMgMTcgMTYuMTA1IDE2LjEwNSAxNyAxNSAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDMyIDE3IEwgMjEgMTcgQyAxOS44OTUgMTcgMTkgMTYuMTA1IDE5IDE1IEwgMTkgOCBDIDE5IDYuODk1IDE5Ljg5NSA2IDIxIDYgTCAyMi41OSA2IEMgMjIuNTkgNi4wMTkgMjIuNTkgNi4wMzcgMjIuNTkgNi4wNTYgQyAyMi41OSAxMC4x''@;'; put 'put ''NDEgMjUuOTAxIDEzLjQ1MiAyOS45ODYgMTMuNDUyIEMgMzEuNDY2IDEzLjQ1MiAzMi44NDQgMTMuMDE4IDM0IDEyLjI2OSBMIDM0IDE1IEMgMzQgMTYuMTA1IDMzLjEwNSAxNyAzMiAxNyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''My0tYmFkZ2VkIiBkPSJNIDE1IDMwIEwgNCAzMCBDIDIuODk1IDMwIDIgMjkuMTA1IDIgMjggTCAyIDIxIEMgMiAxOS44OTUgMi44OTUgMTkgNCAxOSBMIDE1IDE5IEMgMTYuMTA1IDE5IDE3IDE5Ljg5NSAxNyAyMSBMIDE3IDI4IEMgMTcgMjkuMTA1IDE2LjEwNSAzMCAxNSAzMCBaIi8+XG4g''@;'; put 'put ''IDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBkPSJNIDMyIDMwIEwgMjEgMzAgQyAxOS44OTUgMzAgMTkgMjkuMTA1IDE5IDI4IEwgMTkgMjEgQyAxOSAxOS44OTUgMTkuODk1IDE5IDIxIDE5IEwgMzIgMTkgQyAzMy4xMDUgMTkg''@;'; put 'put ''MzQgMTkuODk1IDM0IDIxIEwgMzQgMjggQyAzNCAyOS4xMDUgMzMuMTA1IDMwIDMyIDMwIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGUuQ2xy''@;'; put 'put ''U2hhcGVIZWF0TWFwPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAz''@;'; put 'put ''My4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAzMiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDggMTAgTCAyOCAxMCBMIDI4IDI2IEwgOCAyNiBaIE0gOS42IDI0IEwgMTQuMSAyNCBMIDE0''@;'; put 'put ''LjEgMTguOCBMIDkuNiAxOC44IFogTSAxNC4xIDExLjYgTCA5LjYgMTEuNiBMIDkuNiAxNy4yIEwgMTQuMSAxNy4yIFogTSAyNiAyNCBMIDI2IDE4LjggTCAyMS45IDE4LjggTCAyMS45IDI0IFogTSAyNiAxMS42IEwgMjEuOSAxMS42IEwgMjEuOSAxNy4yIEwgMjYgMTcuMiBaIE0gMTUuNyAx''@;'; put 'put ''MS42IEwgMTUuNyAxNy4yIEwgMjAuMyAxNy4yIEwgMjAuMyAxMS42IFogTSAxNS43IDI0IEwgMjAuMyAyNCBMIDIwLjMgMTguOCBMIDE1LjcgMTguOCBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUg''@;'; put 'put ''QyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDgg''@;'; put 'put ''MTAgTCAyMy43MjggMTAgQyAyNC4xMDUgMTAuNTk2IDI0LjU2NCAxMS4xMzUgMjUuMDkgMTEuNiBMIDIxLjkgMTEuNiBMIDIxLjkgMTcuMiBMIDI2IDE3LjIgTCAyNiAxMi4yODcgQyAyNi42MTEgMTIuNjc5IDI3LjI4NCAxMi45ODMgMjggMTMuMTgyIEwgMjggMjYgTCA4IDI2IFogTSA5LjYg''@;'; put 'put ''MjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDE1LjcgMTEuNiBMIDE1LjcgMTcuMiBMIDIwLjMgMTcuMiBM''@;'; put 'put ''IDIwLjMgMTEuNiBaIE0gMTUuNyAyNCBMIDIwLjMgMjQgTCAyMC4zIDE4LjggTCAxNS43IDE4LjggWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMjItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAu''@;'; put 'put ''MTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0''@;'; put 'put ''aCBkPSJNIDggMTAgTCAxOS4wMjggMTAgTCAxOC4wOTEgMTEuNiBMIDE1LjcgMTEuNiBMIDE1LjcgMTcuMiBMIDIwLjMgMTcuMiBMIDIwLjMgMTUuMzU3IEwgMjEuOSAxNS4zNTcgTCAyMS45IDE3LjIgTCAyNiAxNy4yIEwgMjYgMTUuMzU3IEwgMjggMTUuMzU3IEwgMjggMjYgTCA4IDI2IFog''@;'; put 'put ''TSA5LjYgMjQgTCAxNC4xIDI0IEwgMTQuMSAxOC44IEwgOS42IDE4LjggWiBNIDE0LjEgMTEuNiBMIDkuNiAxMS42IEwgOS42IDE3LjIgTCAxNC4xIDE3LjIgWiBNIDI2IDI0IEwgMjYgMTguOCBMIDIxLjkgMTguOCBMIDIxLjkgMjQgWiBNIDE1LjcgMjQgTCAyMC4zIDI0IEwgMjAuMyAxOC44''@;'; put 'put ''IEwgMTUuNyAxOC44IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yMi0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; put 'put ''dCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAx''@;'; put 'put ''MS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMzIgNSBDIDMzLjEwNSA1IDM0IDUuODk2IDM0IDcgWiBNIDggMjYgTCAyOCAy''@;'; put 'put ''NiBMIDI4IDEwIEwgOCAxMCBaIE0gMTAgMTkgTCAxNCAxOSBMIDE0IDI0IEwgMTAgMjQgWiBNIDIyIDI0IEwgMjIgMTkgTCAyNiAxOSBMIDI2IDI0IFogTSAyMCAxOSBMIDIwIDI0IEwgMTYgMjQgTCAxNiAxOSBaIE0gMjYgMTcgTCAyMiAxNyBMIDIyIDEyIEwgMjYgMTIgWiBNIDIwIDEyIEwg''@;'; put 'put ''MjAgMTcgTCAxNiAxNyBMIDE2IDEyIFogTSAxNCAxMiBMIDE0IDE3IEwgMTAgMTcgTCAxMCAxMiBaIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDM0IDEyLjM0IEwgMzQgMjkgQyAzNCAzMC4xMDUg''@;'; put 'put ''MzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk2IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk2IDIuODk2IDUgNCA1IEwgMjIuNTcgNSBDIDIyLjMxMiA2LjgxNyAyMi43MzIgOC41NjYgMjMuNjMzIDEwIEwgOCAxMCBMIDggMjYgTCAyOCAyNiBMIDI4IDEzLjIzMiBDIDI4LjQy''@;'; put 'put ''MSAxMy4zNDUgMjguODU5IDEzLjQyMiAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAzMi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSAxMCAxOSBMIDE0IDE5IEwgMTQgMjQgTCAxMCAyNCBaIE0gMjIgMjQgTCAyMiAxOSBMIDI2IDE5IEwgMjYgMjQgWiBNIDIwIDE5''@;'; put 'put ''IEwgMjAgMjQgTCAxNiAyNCBMIDE2IDE5IFogTSAyNiAxNyBMIDIyIDE3IEwgMjIgMTIgTCAyNS41ODQgMTIgQyAyNS43MTkgMTIuMSAyNS44NTggMTIuMTk2IDI2IDEyLjI4NyBaIE0gMjAgMTIgTCAyMCAxNyBMIDE2IDE3IEwgMTYgMTIgWiBNIDE0IDEyIEwgMTQgMTcgTCAxMCAxNyBMIDEw''@;'; put 'put ''IDEyIFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTIyLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiPjwvY2lyY2xlPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTkuMDI4IDEwIEwgOCAxMCBMIDggMjYgTCAy''@;'; put 'put ''OCAyNiBMIDI4IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMTAgMTkgTCAxNCAxOSBMIDE0IDI0IEwgMTAgMjQgWiBNIDIyIDI0IEwgMjIgMTkgTCAyNiAxOSBMIDI2IDI0IFogTSAyMCAxOSBMIDIwIDI0IEwgMTYgMjQgTCAxNiAxOSBaIE0gMjYgMTcgTCAyMiAxNyBMIDIyIDE1LjM1NyBMIDI2''@;'; put 'put ''IDE1LjM1NyBaIE0gMjAgMTcgTCAxNiAxNyBMIDE2IDEyIEwgMTcuODU2IDEyIEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDIwIDE1LjM1NyBaIE0g''@;'; put 'put ''MTQgMTIgTCAxNCAxNyBMIDEwIDE3IEwgMTAgMTIgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDEx''@;'; put 'put ''LjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAxMS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQy''@;'; put 'put ''IDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlTGluZUNoYXJ0PSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMSIgZD0iTSAzMiA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNSAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDUgMzEgMzQgMzAuMTA1IDM0IDI5IEwgMzQgNyBDIDM0IDUuODk1IDMzLjEwNSA1IDMyIDUgWiBNIDQgMjkgTCA0IDcgTCAz''@;'; put 'put ''MiA3IEwgMzIgMjkgWiI+PC9wYXRoPlxuICA8cG9seWdvbiBwb2ludHM9IjE1LjYyIDE1LjIyMiA5LjYwMiAyMy45NjggNS41NSAyMC4zODQgNi42MSAxOS4xODYgOS4zMDggMjEuNTcyIDE1LjYzNCAxMi4zOCAyMi4zODQgMjIuMzk1IDI5LjEzOCAxMy40NyAzMC40MTQgMTQuNDM2IDIyLjMw''@;'; put 'put ''OCAyNS4xNDUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIj48L3BvbHlnb24+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk2IDUgMiA1Ljg5NiAyIDcgTCAyIDI5IEMgMiAzMC4x''@;'; put 'put ''MDUgMi44OTYgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NiAzMy4xMDUgNSAzMiA1IFogTSAyMi41NiAyNS45NCBMIDE1LjQ2IDE1LjM2IEwgOS4xMiAyNC42NCBMIDQuNjIgMjAuNjQgTCA2IDE5LjA1IEwgOC43IDIxLjQ0IEwg''@;'; put 'put ''MTUuNDYgMTEuNTYgTCAyMi42NSAyMi4yNyBMIDI5LjY1IDEzIEwgMzEuMzUgMTQuMjggWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0IDcg''@;'; put 'put ''TCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAzNCAz''@;'; put 'put ''MC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cG9seWdvbiBwb2ludHM9IjE1LjYyIDE1LjIyMiA5LjYwMiAyMy45NjggNS41NSAyMC4zODQgNi42MSAxOS4xODYgOS4zMDggMjEuNTcyIDE1LjYzNCAxMi4z''@;'; put 'put ''OCAyMi4zODQgMjIuMzk1IDI5LjEzOCAxMy40NyAzMC40MTQgMTQuNDM2IDIyLjMwOCAyNS4xNDUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wb2x5Z29uPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMwLjMyIDEzLjQ4IEwgMzEuMzgg''@;'; put 'put ''MTQuMjggTCAyMi41NiAyNS45NCBMIDE1LjQ2IDE1LjM2IEwgOS4xMiAyNC42NCBMIDQuNjIgMjAuNjQgTCA2IDE5LjA1IEwgOC43IDIxLjQ0IEwgMTUuNDYgMTEuNTYgTCAyMi42NSAyMi4yNyBMIDI5LjMxIDEzLjQ2IEMgMjUuMDUgMTMuMSAyMS45NjkgOS4yMzMgMjIuNTcgNSBMIDQgNSBD''@;'; put 'put ''IDIuODk2IDUgMiA1Ljg5NiAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTYgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDEyLjM0IEMgMzIuODk1IDEzLjAzNiAzMS42MjYgMTMuNDI5IDMwLjMyIDEzLjQ4IFoiPjwvcGF0aD5cbiAgPGNpcmNsZSBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSI+PC9jaXJjbGU+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; put 'put ''IiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NSAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NSAyLjg5NSA1IDQgNSBMIDIxLjk1OCA1IEwgMjAuNzg2IDcgTCA0IDcgTCA0IDI5IEwgMzIgMjkgTCAzMiAxNS4zNTcgTCAzNCAxNS4z''@;'; put 'put ''NTcgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE1LjYyIDE1LjIyMiBMIDkuNjAyIDIzLjk2OCBMIDUuNTUgMjAuMzg0IEwgNi42MSAxOS4xODYgTCA5LjMwOCAyMS41NzIgTCAxNS42MzQgMTIuMzggTCAyMi4zODQgMjIuMzk1IEwgMjcuNzE3IDE1LjM0OCBMIDI5LjcyNCAxNS4zNDggTCAy''@;'; put 'put ''Mi4zMDggMjUuMTQ1IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0''@;'; put 'put ''IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDEx''@;'; put 'put ''Ljk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2Ljc5NSAx''@;'; put 'put ''My42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDI3LjQ1MiAxNS4zNTcgTCAyMi4zOCAyMi4wNiBMIDE1LjYzIDEyIEwgOS4yOCAyMS4yOCBMIDYuNzUgMTkuMDQgTCA1LjQyIDIwLjUzIEwgOS42NSAy''@;'; put 'put ''NC4yOCBMIDE1LjYxIDE1LjU2IEwgMjIuMjggMjUuNSBMIDI5Ljk1OSAxNS4zNTcgTCAzNCAxNS4zNTcgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0''@;'; put 'put ''NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIy''@;'; put 'put ''IEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRoPicpLGUuQ2xyU2hhcGVQaWVDaGFydD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4x''@;'; put 'put ''MDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAxNyAyNyBDIDEyLjU4MiAyNyA5IDIzLjQxOCA5IDE5IEMgOSAxNC41ODIgMTIuNTgyIDExIDE3IDExIEwgMTcgMTkgTCAyNSAxOSBDIDI1IDIzLjQxOCAyMS40MTggMjcgMTcg''@;'; put 'put ''MjcgWiBNIDIzLjI0NyAyMC40IEwgMTUuNCAyMC40IEwgMTUuNCAxMi44MDIgQyAxMi42NCAxMy41MTMgMTAuNjAxIDE2LjAxOCAxMC42IDE5IEMgMTAuNiAyMi41MzUgMTMuNDY1IDI1LjQgMTcgMjUuNCBDIDIwLjA1NCAyNS40MDEgMjIuNjA4IDIzLjI2MSAyMy4yNDcgMjAuNCBaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDkgQyAyMy40MTggOSAyNyAxMi41ODIgMjcgMTcgTCAxOSAxNyBaIE0gMjUuMTk4IDE1LjQgQyAyNC42MiAxMy4xNSAyMi44NDkgMTEuMzggMjAuNiAxMC44MDEgTCAyMC42IDE1''@;'; put 'put ''LjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTSAzNCA3IEwgMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEMgMzIgMzEgMiAzMC4x''@;'; put 'put ''MDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAzMiA1IEMgMzMuMTA1IDUgMzQgNS44OTYgMzQgNyBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMgMTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMu''@;'; put 'put ''NDE4IDI1IDE5IFogTSAxOSAxNyBMIDI3IDE3IEMgMjcgMTIuNTgyIDIzLjQxOCA5IDE5IDkgWiI+PC9wYXRoPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzIgMTMuMjIgTCAzMiAyOSBMIDQgMjkgTCA0''@;'; put 'put ''IDcgTCAyMi41NyA3IEMgMjIuNTI0IDYuNjY4IDIyLjUwMSA2LjMzNCAyMi41IDYgQyAyMi41MDEgNS42NjUgMjIuNTI0IDUuMzMxIDIyLjU3IDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA0IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNCAzMSAz''@;'; put 'put ''NCAzMC4xMDQgMzQgMjkgTCAzNCAxMi4zNCBDIDMzLjM4IDEyLjczIDMyLjcwNiAxMy4wMjYgMzIgMTMuMjIgWiI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE3IDI3IEMgMTIuNTgyIDI3IDkgMjMuNDE4IDkgMTkgQyA5IDE0LjU4MiAxMi41ODIgMTEgMTcgMTEgTCAxNyAxOSBMIDI1IDE5IEMg''@;'; put 'put ''MjUgMjMuNDE4IDIxLjQxOCAyNyAxNyAyNyBaIE0gMjMuMjQ3IDIwLjQgTCAxNS40IDIwLjQgTCAxNS40IDEyLjgwMiBDIDEyLjY0IDEzLjUxMyAxMC42MDEgMTYuMDE4IDEwLjYgMTkgQyAxMC42IDIyLjUzNSAxMy40NjUgMjUuNCAxNyAyNS40IEMgMjAuMDU0IDI1LjQwMSAyMi42MDggMjMu''@;'; put 'put ''MjYxIDIzLjI0NyAyMC40IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCI+PC9wYXRoPlxuICA8cGF0aCBkPSJNIDE5IDkgQyAyMy40MTggOSAyNyAxMi41ODIgMjcgMTcgTCAxOSAxNyBaIE0gMjUuMTk4IDE1LjQgQyAyNC42MiAx''@;'; put 'put ''My4xNSAyMi44NDkgMTEuMzggMjAuNiAxMC44MDEgTCAyMC42IDE1LjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIj48L3BhdGg+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUg''@;'; put 'put ''MzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAx''@;'; put 'put ''Mi4zNCBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMgMTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMuNDE4IDI1IDE5IFogTSAxOSAxNyBMIDI3IDE3IEMgMjcgMTIuNTgyIDIzLjQxOCA5IDE5IDkgWiI+PC9wYXRo''@;'; put 'put ''PlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ij48L2NpcmNsZT5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1''@;'; put 'put ''LjM1NyBMIDM0IDE1LjM1NyBaIj48L3BhdGg+XG4gIDxwYXRoIGQ9Ik0gMTcgMjcgQyAxMi41ODIgMjcgOSAyMy40MTggOSAxOSBDIDkgMTQuNTgyIDEyLjU4MiAxMSAxNyAxMSBMIDE3IDE5IEwgMjUgMTkgQyAyNSAyMy40MTggMjEuNDE4IDI3IDE3IDI3IFogTSAyMy4yNDcgMjAuNCBMIDE1''@;'; put 'put ''LjQgMjAuNCBMIDE1LjQgMTIuODAyIEMgMTIuNjQgMTMuNTEzIDEwLjYwMSAxNi4wMTggMTAuNiAxOSBDIDEwLjYgMjIuNTM1IDEzLjQ2NSAyNS40IDE3IDI1LjQgQyAyMC4wNTQgMjUuNDAxIDIyLjYwOCAyMy4yNjEgMjMuMjQ3IDIwLjQgWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiPjwvcGF0aD5cbiAgPHBhdGggZD0iTSAyNyAxNyBMIDE5IDE3IEwgMTkgMTUuMzQ1IEMgMTkuMDIxIDE1LjM0OCAxOS4wNDMgMTUuMzQ5IDE5LjA2NCAxNS4zNTEgQyAxOS4xMzQgMTUuMzU3IDE5LjIwMSAxNS4zNTkgMTkuMjcgMTUu''@;'; put 'put ''MzU3IEwgMjYuODMxIDE1LjM1NyBDIDI2Ljk0MiAxNS44ODcgMjcgMTYuNDM3IDI3IDE3IFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIj48L3BhdGg+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwg''@;'; put 'put ''MzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiI+PC9wYXRo''@;'; put 'put ''PlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQg''@;'; put 'put ''NSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2LjgwNyAxMy41ODMgMTcuNTcxIDE1LjE5NyAxOSAxNS4zNDUgTCAxOSAxNyBMIDI3IDE3IEMgMjcgMTYuNDM3IDI2Ljk0MiAxNS44ODcgMjYuODMxIDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gMjUgMTkgTCAxNyAxOSBMIDE3IDExIEMg''@;'; put 'put ''MTIuNTgyIDExIDkgMTQuNTgyIDkgMTkgQyA5IDIzLjQxOCAxMi41ODIgMjcgMTcgMjcgQyAyMS40MTggMjcgMjUgMjMuNDE4IDI1IDE5IFoiPjwvcGF0aD5cbiAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; put 'put ''dCIgZD0iTSAyNi44NTQgMS4xNDQgTCAyMS4xMzQgMTEuMDA0IEMgMjAuNTc5IDExLjgxOCAyMS4xMTQgMTIuOTI4IDIyLjA5NyAxMy4wMDEgQyAyMi4xNDIgMTMuMDA1IDIyLjE4OCAxMy4wMDYgMjIuMjM0IDEzLjAwNCBMIDMzLjY4NCAxMy4wMDQgQyAzNC42NjkgMTMuMDM2IDM1LjMxOSAx''@;'; put 'put ''MS45OTEgMzQuODU1IDExLjEyMiBDIDM0LjgzNCAxMS4wODEgMzQuODEgMTEuMDQyIDM0Ljc4NCAxMS4wMDQgTCAyOS4wNjQgMS4xNDQgQyAyOC41NyAwLjI5OSAyNy4zNDggMC4yOTkgMjYuODU0IDEuMTQ0IFoiPjwvcGF0aD4nKSxlLkNsclNoYXBlU2NhdHRlclBsb3Q9KDAsYS5jbHJJY29u''@;'; put 'put ''U1ZHKSgnXG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNIDMyIDUgTCA0IDUgQyAyLjg5NSA1IDIgNS44OTUgMiA3IEwgMiAyOSBDIDIgMzAuMTA1IDIuODk1IDMxIDQgMzEgTCAzMiAzMSBDIDMzLjEwNSAzMSAzNCAzMC4xMDUgMzQgMjkg''@;'; put 'put ''TCAzNCA3IEMgMzQgNS44OTUgMzMuMTA1IDUgMzIgNSBaIE0gNCAyOSBMIDQgNyBMIDMyIDcgTCAzMiAyOSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEw''@;'; put 'put ''LjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcg''@;'; put 'put ''MTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2''@;'; put 'put ''OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNIDE1LjE3NiAyNS41MzYg''@;'; put 'put ''QyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAx''@;'; put 'put ''OC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1''@;'; put 'put ''LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43''@;'; put 'put ''MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAx''@;'; put 'put ''NS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYg''@;'; put 'put ''MTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwg''@;'; put 'put ''MiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA5LjEwMSAxNS44IEMgOS40MTMgMTYuMTExIDkuOTE5IDE2LjExMSAxMC4yMzEgMTUuOCBMIDExLjM5MSAxNC42NCBMIDEyLjU1MSAxNS44IEMgMTIuOTY0IDE2LjI1NiAxMy43MTcg''@;'; put 'put ''MTYuMDk0IDEzLjkwNSAxNS41MDcgQyAxNC4wMDIgMTUuMjA4IDEzLjkxNCAxNC44ODEgMTMuNjgxIDE0LjY3IEwgMTIuNTMxIDEzLjU0IEwgMTMuNjkxIDEyLjM4IEMgMTQuMTQ3IDExLjk2NiAxMy45ODUgMTEuMjE0IDEzLjM5OSAxMS4wMjUgQyAxMy4xIDEwLjkyOSAxMi43NzIgMTEuMDE3''@;'; put 'put ''IDEyLjU2MSAxMS4yNSBMIDExLjQwMSAxMi40MSBMIDEwLjIzMSAxMS4yMiBDIDkuODE3IDEwLjc2MyA5LjA2NSAxMC45MjYgOC44NzcgMTEuNTEyIEMgOC43OCAxMS44MTEgOC44NjggMTIuMTM5IDkuMTAxIDEyLjM1IEwgMTAuMjYxIDEzLjU0IEwgOS4xMDEgMTQuNjcgQyA4Ljc4OSAxNC45''@;'; put 'put ''ODIgOC43ODkgMTUuNDg3IDkuMTAxIDE1LjggWiBNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMg''@;'; put 'put ''MjAuMDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcu''@;'; put 'put ''NDc2IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQu''@;'; put 'put ''ODY0IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFogTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAuNjM3IDI3LjcxNiAyMC4wNSBDIDI3''@;'; put 'put ''LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYgMjYuMzcyIDE1Ljc5MyBMIDI1LjIx''@;'; put 'put ''MiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEzIEMgMjIuNiAxOS41MjUgMjIuNiAy''@;'; put 'put ''MC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQg''@;'; put 'put ''MjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAz''@;'; put 'put ''Mi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQxMyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0''@;'; put 'put ''IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQgTCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMu''@;'; put 'put ''Mzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAxMS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAx''@;'; put 'put ''MC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgZD0iTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4''@;'; put 'put ''IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAzOSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIz''@;'; put 'put ''LjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAuNjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42''@;'; put 'put ''NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTSAyMi45MTIgMjAuMzQzIEMgMjMuMjI0IDIwLjY1NCAyMy43MyAyMC42NTQgMjQuMDQyIDIwLjM0MyBMIDI1LjIwMiAxOS4xODMgTCAyNi4zNjIgMjAuMzQzIEMgMjYuNzc1IDIwLjc5OSAyNy41MjggMjAu''@;'; put 'put ''NjM3IDI3LjcxNiAyMC4wNSBDIDI3LjgxMyAxOS43NTEgMjcuNzI1IDE5LjQyNCAyNy40OTIgMTkuMjEzIEwgMjYuMzQyIDE4LjA4MyBMIDI3LjUwMiAxNi45MjMgQyAyNy45NTggMTYuNTA5IDI3Ljc5NiAxNS43NTcgMjcuMjEgMTUuNTY4IEMgMjYuOTExIDE1LjQ3MiAyNi41ODMgMTUuNTYg''@;'; put 'put ''MjYuMzcyIDE1Ljc5MyBMIDI1LjIxMiAxNi45NTMgTCAyNC4wNDIgMTUuNzYzIEMgMjMuNjI4IDE1LjMwNiAyMi44NzYgMTUuNDY5IDIyLjY4OCAxNi4wNTUgQyAyMi41OTEgMTYuMzU0IDIyLjY3OSAxNi42ODIgMjIuOTEyIDE2Ljg5MyBMIDI0LjA3MiAxOC4wODMgTCAyMi45MTIgMTkuMjEz''@;'; put 'put ''IEMgMjIuNiAxOS41MjUgMjIuNiAyMC4wMyAyMi45MTIgMjAuMzQzIFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0gMzQgMTIuMzQgTCAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTYgMzEgMiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTYgMi44OTYgNSA0IDUgTCAyMi41''@;'; put 'put ''NyA1IEMgMjEuOTY5IDkuMjMzIDI1LjA1IDEzLjEgMjkuMzEgMTMuNDYgTCAzMC4zMiAxMy40OCBDIDMxLjYyNiAxMy40MjkgMzIuODk1IDEzLjAzNiAzNCAxMi4zNCBaIE0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQg''@;'; put 'put ''TCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4z''@;'; put 'put ''OTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEw''@;'; put 'put ''LjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFogTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAz''@;'; put 'put ''OSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAu''@;'; put 'put ''NjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3''@;'; put 'put ''NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIE0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAy''@;'; put 'put ''MC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40''@;'; put 'put ''NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgz''@;'; put 'put ''IEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0gMzQgMjkgQyAzNCAzMC4xMDUgMzMuMTA1IDMxIDMyIDMxIEwgNCAzMSBDIDIuODk1IDMxIDIgMzAuMTA1IDIgMjkgTCAyIDcgQyAyIDUuODk1IDIuODk1IDUgNCA1''@;'; put 'put ''IEwgMjEuOTU4IDUgTCAyMC43ODYgNyBMIDQgNyBMIDQgMjkgTCAzMiAyOSBMIDMyIDE1LjM1NyBMIDM0IDE1LjM1NyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNIDkuMTAxIDE1LjggQyA5LjQx''@;'; put 'put ''MyAxNi4xMTEgOS45MTkgMTYuMTExIDEwLjIzMSAxNS44IEwgMTEuMzkxIDE0LjY0IEwgMTIuNTUxIDE1LjggQyAxMi45NjQgMTYuMjU2IDEzLjcxNyAxNi4wOTQgMTMuOTA1IDE1LjUwNyBDIDE0LjAwMiAxNS4yMDggMTMuOTE0IDE0Ljg4MSAxMy42ODEgMTQuNjcgTCAxMi41MzEgMTMuNTQg''@;'; put 'put ''TCAxMy42OTEgMTIuMzggQyAxNC4xNDcgMTEuOTY2IDEzLjk4NSAxMS4yMTQgMTMuMzk5IDExLjAyNSBDIDEzLjEgMTAuOTI5IDEyLjc3MiAxMS4wMTcgMTIuNTYxIDExLjI1IEwgMTEuNDAxIDEyLjQxIEwgMTAuMjMxIDExLjIyIEMgOS44MTcgMTAuNzYzIDkuMDY1IDEwLjkyNiA4Ljg3NyAx''@;'; put 'put ''MS41MTIgQyA4Ljc4IDExLjgxMSA4Ljg2OCAxMi4xMzkgOS4xMDEgMTIuMzUgTCAxMC4yNjEgMTMuNTQgTCA5LjEwMSAxNC42NyBDIDguNzg5IDE0Ljk4MiA4Ljc4OSAxNS40ODcgOS4xMDEgMTUuOCBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBkPSJNIDE1LjE3NiAyNS41MzYgQyAxNS40ODggMjUuODQ3IDE1Ljk5NCAyNS44NDcgMTYuMzA2IDI1LjUzNiBMIDE3LjQ2NiAyNC4zNzYgTCAxOC42MjYgMjUuNTM2IEMgMTkuMDM5IDI1Ljk5MiAxOS43OTIgMjUuODMgMTkuOTggMjUuMjQzIEMgMjAu''@;'; put 'put ''MDc3IDI0Ljk0NCAxOS45ODkgMjQuNjE3IDE5Ljc1NiAyNC40MDYgTCAxOC42MDYgMjMuMjc2IEwgMTkuNzY2IDIyLjExNiBDIDIwLjIyMiAyMS43MDIgMjAuMDYgMjAuOTUgMTkuNDc0IDIwLjc2MSBDIDE5LjE3NSAyMC42NjUgMTguODQ3IDIwLjc1MyAxOC42MzYgMjAuOTg2IEwgMTcuNDc2''@;'; put 'put ''IDIyLjE0NiBMIDE2LjMwNiAyMC45NTYgQyAxNS44OTIgMjAuNDk5IDE1LjE0IDIwLjY2MiAxNC45NTIgMjEuMjQ4IEMgMTQuODU1IDIxLjU0NyAxNC45NDMgMjEuODc1IDE1LjE3NiAyMi4wODYgTCAxNi4zMzYgMjMuMjc2IEwgMTUuMTc2IDI0LjQwNiBDIDE0Ljg2NCAyNC43MTggMTQuODY0''@;'; put 'put ''IDI1LjIyMyAxNS4xNzYgMjUuNTM2IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4y''@;'; put 'put ''MDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAyMC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43''@;'; put 'put ''OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42Nzkg''@;'; put 'put ''MTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgzIEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVk''@;'; put 'put ''IGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAxMy4w''@;'; put 'put ''MzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBDIDE2''@;'; put 'put ''Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gOS4xMDEgMTUuOCBDIDkuNDEzIDE2LjExMSA5LjkxOSAxNi4xMTEgMTAuMjMxIDE1LjggTCAxMS4zOTEgMTQuNjQg''@;'; put 'put ''TCAxMi41NTEgMTUuOCBDIDEyLjk2NCAxNi4yNTYgMTMuNzE3IDE2LjA5NCAxMy45MDUgMTUuNTA3IEMgMTQuMDAyIDE1LjIwOCAxMy45MTQgMTQuODgxIDEzLjY4MSAxNC42NyBMIDEyLjUzMSAxMy41NCBMIDEzLjY5MSAxMi4zOCBDIDE0LjE0NyAxMS45NjYgMTMuOTg1IDExLjIxNCAxMy4z''@;'; put 'put ''OTkgMTEuMDI1IEMgMTMuMSAxMC45MjkgMTIuNzcyIDExLjAxNyAxMi41NjEgMTEuMjUgTCAxMS40MDEgMTIuNDEgTCAxMC4yMzEgMTEuMjIgQyA5LjgxNyAxMC43NjMgOS4wNjUgMTAuOTI2IDguODc3IDExLjUxMiBDIDguNzggMTEuODExIDguODY4IDEyLjEzOSA5LjEwMSAxMi4zNSBMIDEw''@;'; put 'put ''LjI2MSAxMy41NCBMIDkuMTAxIDE0LjY3IEMgOC43ODkgMTQuOTgyIDguNzg5IDE1LjQ4NyA5LjEwMSAxNS44IFogTSAxNS4xNzYgMjUuNTM2IEMgMTUuNDg4IDI1Ljg0NyAxNS45OTQgMjUuODQ3IDE2LjMwNiAyNS41MzYgTCAxNy40NjYgMjQuMzc2IEwgMTguNjI2IDI1LjUzNiBDIDE5LjAz''@;'; put 'put ''OSAyNS45OTIgMTkuNzkyIDI1LjgzIDE5Ljk4IDI1LjI0MyBDIDIwLjA3NyAyNC45NDQgMTkuOTg5IDI0LjYxNyAxOS43NTYgMjQuNDA2IEwgMTguNjA2IDIzLjI3NiBMIDE5Ljc2NiAyMi4xMTYgQyAyMC4yMjIgMjEuNzAyIDIwLjA2IDIwLjk1IDE5LjQ3NCAyMC43NjEgQyAxOS4xNzUgMjAu''@;'; put 'put ''NjY1IDE4Ljg0NyAyMC43NTMgMTguNjM2IDIwLjk4NiBMIDE3LjQ3NiAyMi4xNDYgTCAxNi4zMDYgMjAuOTU2IEMgMTUuODkyIDIwLjQ5OSAxNS4xNCAyMC42NjIgMTQuOTUyIDIxLjI0OCBDIDE0Ljg1NSAyMS41NDcgMTQuOTQzIDIxLjg3NSAxNS4xNzYgMjIuMDg2IEwgMTYuMzM2IDIzLjI3''@;'; put 'put ''NiBMIDE1LjE3NiAyNC40MDYgQyAxNC44NjQgMjQuNzE4IDE0Ljg2NCAyNS4yMjMgMTUuMTc2IDI1LjUzNiBaIE0gMjIuOTEyIDIwLjM0MyBDIDIzLjIyNCAyMC42NTQgMjMuNzMgMjAuNjU0IDI0LjA0MiAyMC4zNDMgTCAyNS4yMDIgMTkuMTgzIEwgMjYuMzYyIDIwLjM0MyBDIDI2Ljc3NSAy''@;'; put 'put ''MC43OTkgMjcuNTI4IDIwLjYzNyAyNy43MTYgMjAuMDUgQyAyNy44MTMgMTkuNzUxIDI3LjcyNSAxOS40MjQgMjcuNDkyIDE5LjIxMyBMIDI2LjM0MiAxOC4wODMgTCAyNy41MDIgMTYuOTIzIEMgMjcuOTU4IDE2LjUwOSAyNy43OTYgMTUuNzU3IDI3LjIxIDE1LjU2OCBDIDI2LjkxMSAxNS40''@;'; put 'put ''NzIgMjYuNTgzIDE1LjU2IDI2LjM3MiAxNS43OTMgTCAyNS4yMTIgMTYuOTUzIEwgMjQuMDQyIDE1Ljc2MyBDIDIzLjYyOCAxNS4zMDYgMjIuODc2IDE1LjQ2OSAyMi42ODggMTYuMDU1IEMgMjIuNTkxIDE2LjM1NCAyMi42NzkgMTYuNjgyIDIyLjkxMiAxNi44OTMgTCAyNC4wNzIgMTguMDgz''@;'; put 'put ''IEwgMjIuOTEyIDE5LjIxMyBDIDIyLjYgMTkuNTI1IDIyLjYgMjAuMDMgMjIuOTEyIDIwLjM0MyBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0''@;'; put 'put ''IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMuMDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQg''@;'; put 'put ''MTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+XG4gIDxyZWN0IHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgZmlsbC1vcGFjaXR5PSIwIi8+JyksZS5DbHJTaGFwZVRpY2tDaGFy''@;'; put 'put ''dD0oMCxhLmNsckljb25TVkcpKCdcbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0gMzIgNSBMIDQgNSBDIDIuODk1IDUgMiA1Ljg5NSAyIDcgTCAyIDI5IEMgMiAzMC4xMDUgMi44OTUgMzEgNCAzMSBMIDMyIDMxIEMgMzMuMTA1IDMxIDM0''@;'; put 'put ''IDMwLjEwNSAzNCAyOSBMIDM0IDcgQyAzNCA1Ljg5NSAzMy4xMDUgNSAzMiA1IFogTSA0IDI5IEwgNCA3IEwgMzIgNyBMIDMyIDI5IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIg''@;'; put 'put ''TCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAyNSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAz''@;'; put 'put ''IDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0gMzQgNyBMIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMw''@;'; put 'put ''LjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDMyIDUgQyAzMy4xMDUgNSAzNCA1Ljg5NiAzNCA3IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4w''@;'; put 'put ''MiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIwIDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNIDMyIDEzLjIyIEwgMzIgMjkgTCA0IDI5IEwgNCA3IEwgMjIuNTcgNyBDIDIyLjUyNCA2LjY2OCAyMi41MDEgNi4zMzQgMjIuNSA2IEMgMjIuNTAxIDUuNjY1IDIyLjUyNCA1LjMzMSAyMi41''@;'; put 'put ''NyA1IEwgNCA1IEMgMi44OTUgNSAyIDUuODk1IDIgNyBMIDIgMjkgQyAyIDMwLjEwNCAyLjg5NSAzMSA0IDMxIEwgMzIgMzEgQyAzMy4xMDQgMzEgMzQgMzAuMTA0IDM0IDI5IEwgMzQgMTIuMzQgQyAzMy4zOCAxMi43MyAzMi43MDYgMTMuMDI2IDMyIDEzLjIyIFoiLz5cbiAgPHBhdGggY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNIDYgMjUgTCA4IDI1IEwgOCAyMiBMIDEwIDIyIEwgMTAgMjUgTCAxMyAyNSBMIDEzIDIyIEwgMTUgMjIgTCAxNSAyNSBMIDE4IDI1IEwgMTggMjIgTCAyMCAyMiBMIDIwIDI1IEwgMjMg''@;'; put 'put ''MjUgTCAyMyAyMiBMIDI1IDIyIEwgMjUgMjUgTCAyNy43MjMgMjUgQyAyOC4wMjMgMjUuMDIgMjguMjkzIDI1LjE4IDI4LjQ2MyAyNS40MyBDIDI4LjkwMyAyNi4wNiAyOC40ODMgMjYuOTMgMjcuNzIzIDI2Ljk5IEwgNiAyNi45OTEgWiIvPlxuICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTSAzNCAxMi4zNCBMIDM0IDI5IEMg''@;'; put 'put ''MzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIyLjU3IDUgQyAyMS45NjkgOS4yMzMgMjUuMDUgMTMuMSAyOS4zMSAxMy40NiBMIDMwLjMyIDEzLjQ4IEMgMzEuNjI2IDEzLjQyOSAz''@;'; put 'put ''Mi44OTUgMTMuMDM2IDM0IDEyLjM0IFogTSA2IDI2Ljk5MSBMIDI3LjcyMyAyNi45OSBDIDI4LjQ4MyAyNi45MyAyOC45MDMgMjYuMDYgMjguNDYzIDI1LjQzIEMgMjguMjkzIDI1LjE4IDI4LjAyMyAyNS4wMiAyNy43MjMgMjUgTCAyNSAyNSBMIDI1IDIyIEwgMjMgMjIgTCAyMyAyNSBMIDIw''@;'; put 'put ''IDI1IEwgMjAgMjIgTCAxOCAyMiBMIDE4IDI1IEwgMTUgMjUgTCAxNSAyMiBMIDEzIDIyIEwgMTMgMjUgTCAxMCAyNSBMIDEwIDIyIEwgOCAyMiBMIDggMjUgTCA2IDI1IFoiLz5cbiAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTSAzNCAyOSBDIDM0IDMwLjEwNSAzMy4xMDUgMzEgMzIgMzEgTCA0IDMxIEMgMi44OTUgMzEg''@;'; put 'put ''MiAzMC4xMDUgMiAyOSBMIDIgNyBDIDIgNS44OTUgMi44OTUgNSA0IDUgTCAyMS45NTggNSBMIDIwLjc4NiA3IEwgNCA3IEwgNCAyOSBMIDMyIDI5IEwgMzIgMTUuMzU3IEwgMzQgMTUuMzU3IFoiLz5cbiAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0gNiAyNSBMIDggMjUgTCA4IDIyIEwgMTAgMjIgTCAxMCAyNSBMIDEzIDI1IEwgMTMgMjIgTCAxNSAyMiBMIDE1IDI1IEwgMTggMjUgTCAxOCAyMiBMIDIwIDIyIEwgMjAgMjUgTCAyMyAyNSBMIDIzIDIyIEwgMjUgMjIgTCAyNSAyNSBMIDI3LjcyMyAy''@;'; put 'put ''NSBDIDI4LjAyMyAyNS4wMiAyOC4yOTMgMjUuMTggMjguNDYzIDI1LjQzIEMgMjguOTAzIDI2LjA2IDI4LjQ4MyAyNi45MyAyNy43MjMgMjYuOTkgTCA2IDI2Ljk5MSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLWFsZXJ0IiBkPSJNIDI2Ljg1NCAxLjE0NCBMIDIxLjEzNCAxMS4wMDQgQyAyMC41NzkgMTEuODE4IDIxLjExNCAxMi45MjggMjIuMDk3IDEzLjAwMSBDIDIyLjE0MiAxMy4wMDUgMjIuMTg4IDEzLjAwNiAyMi4yMzQgMTMuMDA0IEwgMzMuNjg0IDEzLjAwNCBDIDM0LjY2OSAx''@;'; put 'put ''My4wMzYgMzUuMzE5IDExLjk5MSAzNC44NTUgMTEuMTIyIEMgMzQuODM0IDExLjA4MSAzNC44MSAxMS4wNDIgMzQuNzg0IDExLjAwNCBMIDI5LjA2NCAxLjE0NCBDIDI4LjU3IDAuMjk5IDI3LjM0OCAwLjI5OSAyNi44NTQgMS4xNDQgWiIvPlxuICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNIDM0IDI5IEMgMzQgMzAuMTA1IDMzLjEwNSAzMSAzMiAzMSBMIDQgMzEgQyAyLjg5NiAzMSAyIDMwLjEwNSAyIDI5IEwgMiA3IEMgMiA1Ljg5NiAyLjg5NiA1IDQgNSBMIDIxLjk1OCA1IEwgMTcuNjI1IDEyLjM5NSBD''@;'; put 'put ''IDE2Ljc5NSAxMy42MDEgMTcuNTk0IDE1LjI0NSAxOS4wNjQgMTUuMzUxIEMgMTkuMTM0IDE1LjM1NyAxOS4yMDEgMTUuMzU5IDE5LjI3IDE1LjM1NyBMIDM0IDE1LjM1NyBaIE0gNiAyNi45OTEgTCAyNy43MjMgMjYuOTkgQyAyOC40ODMgMjYuOTMgMjguOTAzIDI2LjA2IDI4LjQ2MyAyNS40''@;'; put 'put ''MyBDIDI4LjI5MyAyNS4xOCAyOC4wMjMgMjUuMDIgMjcuNzIzIDI1IEwgMjUgMjUgTCAyNSAyMiBMIDIzIDIyIEwgMjMgMjUgTCAyMCAyNSBMIDIwIDIyIEwgMTggMjIgTCAxOCAyNSBMIDE1IDI1IEwgMTUgMjIgTCAxMyAyMiBMIDEzIDI1IEwgMTAgMjUgTCAxMCAyMiBMIDggMjIgTCA4IDI1''@;'; put 'put ''IEwgNiAyNSBaIi8+XG4gIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0gMjYuODU0IDEuMTQ0IEwgMjEuMTM0IDExLjAwNCBDIDIwLjU3OSAxMS44MTggMjEuMTE0IDEyLjkyOCAyMi4wOTcgMTMu''@;'; put 'put ''MDAxIEMgMjIuMTQyIDEzLjAwNSAyMi4xODggMTMuMDA2IDIyLjIzNCAxMy4wMDQgTCAzMy42ODQgMTMuMDA0IEMgMzQuNjY5IDEzLjAzNiAzNS4zMTkgMTEuOTkxIDM0Ljg1NSAxMS4xMjIgQyAzNC44MzQgMTEuMDgxIDM0LjgxIDExLjA0MiAzNC43ODQgMTEuMDA0IEwgMjkuMDY0IDEuMTQ0''@;'; put 'put ''IEMgMjguNTcgMC4yOTkgMjcuMzQ4IDAuMjk5IDI2Ljg1NCAxLjE0NCBaIi8+JyksZS5DbHJTaGFwZUJlbGxDdXJ2ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMjlIM0ExLDEsMCwxLDEsMywyN0gzM0ExLDEsMCwxLDEsMzMsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjVoLS42MmE4LjExLDguMTEsMCwwLDEtOC02LjY3QzIzLjYyLDE0LjQ0LDIxLjg5LDcuOTQsMTgsNy45NHMtNS42OSw2LjUxLTYuMzgsMTAuMzlhOC4xMSw4LjExLDAsMCwxLTgsNi42NUgzYTEsMSwwLDEsMSwwLTJoLjZBNi4xMSw2''@;'; put 'put ''LjExLDAsMCwwLDkuNiwxOGMxLjQxLTcuODgsNC4zLTEyLDguMzUtMTJzNi45Myw0LjE2LDguMzMsMTJhNi4xMSw2LjExLDAsMCwwLDYsNUgzM2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DaGFydFNoYXBlcz17ImF4''@;'; put 'put ''aXMtY2hhcnQiOmUuQ2xyU2hhcGVBeGlzQ2hhcnQsImJhci1jaGFydCI6ZS5DbHJTaGFwZUJhckNoYXJ0LCJidWJibGUtY2hhcnQiOmUuQ2xyU2hhcGVCdWJibGVDaGFydCwiY2xvdWQtY2hhcnQiOmUuQ2xyU2hhcGVDbG91ZENoYXJ0LCJjdXJ2ZS1jaGFydCI6ZS5DbHJTaGFwZUN1cnZlQ2hh''@;'; put 'put ''cnQsImdyaWQtY2hhcnQiOmUuQ2xyU2hhcGVHcmlkQ2hhcnQsImxpbmUtY2hhcnQiOmUuQ2xyU2hhcGVMaW5lQ2hhcnQsInBpZS1jaGFydCI6ZS5DbHJTaGFwZVBpZUNoYXJ0LCJ0aWNrLWNoYXJ0IjplLkNsclNoYXBlVGlja0NoYXJ0LCJzY2F0dGVyLXBsb3QiOmUuQ2xyU2hhcGVTY2F0dGVy''@;'; put 'put ''UGxvdCwiYm94LXBsb3QiOmUuQ2xyU2hhcGVCb3hQbG90LCJoZWF0LW1hcCI6ZS5DbHJTaGFwZUhlYXRNYXAsImJlbGwtY3VydmUiOmUuQ2xyU2hhcGVCZWxsQ3VydmV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNoYXJ0U2hhcGVzLCJhbmFseXRpY3MiLCgwLHIuZGVzY3JpcHRvckNvbmZp''@;'; put 'put ''ZykoZS5DaGFydFNoYXBlc1sibGluZS1jaGFydCJdKSksInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGUuQ2hhcnRTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hh''@;'; put 'put ''cGVzL2NvbW1lcmNlLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Db21tZXJjZVNoYXBlcz1lLkNsclNoYXBlRmFjdG9yeT1lLkNsclNoYXBlRW1wbG95ZWU9ZS5DbHJTaGFw''@;'; put 'put ''ZUVtcGxveWVlR3JvdXA9ZS5DbHJTaGFwZVJ1YmxlPWUuQ2xyU2hhcGVQZXNvPWUuQ2xyU2hhcGVDb2luQmFnPWUuQ2xyU2hhcGVCaXRjb2luPWUuQ2xyU2hhcGVZZW49ZS5DbHJTaGFwZVdvbj1lLkNsclNoYXBlUnVwZWU9ZS5DbHJTaGFwZVBvdW5kPWUuQ2xyU2hhcGVFQ2hlY2s9ZS5DbHJT''@;'; put 'put ''aGFwZURvbGxhckJpbGw9ZS5DbHJTaGFwZUJhbms9ZS5DbHJTaGFwZUNyZWRpdENhcmQ9ZS5DbHJTaGFwZURvbGxhcj1lLkNsclNoYXBlRXVybz1lLkNsclNoYXBlU3RvcmU9ZS5DbHJTaGFwZVdhbGxldD1lLkNsclNoYXBlU2hvcHBpbmdDYXJ0PWUuQ2xyU2hhcGVQaWdneUJhbms9ZS5DbHJT''@;'; put 'put ''aGFwZVNob3BwaW5nQmFnPWUuQ2xyU2hhcGVDYWxjdWxhdG9yPXZvaWQgMDt2YXIgcj1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9kZXNjcmlwdG9yLWNvbmZpZy50cyIpO2E9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNo''@;'; put 'put ''YXBlQ2FsY3VsYXRvcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk04LDMyVjRI''@;'; put 'put ''MjhWMzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEyLDhIMjUuNjdWNkgxMWExLDEsMCwwLDAtMSwxdjQuNjdoMloiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0zIiBwb2ludHM9IjEyIDE2IDEwIDE2IDEwIDE4IDE0IDE4IDE0IDE0IDEyIDE0IDEyIDE2Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgcG9pbnRzPSIyNCAxNiAyMiAxNiAyMiAxOCAyNiAx''@;'; put 'put ''OCAyNiAxNCAyNCAxNCAyNCAxNiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHBvaW50cz0iMTggMTYgMTYgMTYgMTYgMTggMjAgMTggMjAgMTQgMTggMTQgMTggMTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBwb2ludHM9IjEyIDIyIDEwIDIyIDEwIDI0IDE0IDI0IDE0IDIwIDEyIDIwIDEyIDIyIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgcG9pbnRz''@;'; put 'put ''PSIyNCAyMiAyMiAyMiAyMiAyNCAyNiAyNCAyNiAyMCAyNCAyMCAyNCAyMiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHBvaW50cz0iMTggMjIgMTYgMjIgMTYgMjQgMjAgMjQgMjAgMjAgMTggMjAgMTggMjIiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiBwb2ludHM9IjEyIDI4IDEwIDI4IDEwIDMwIDE0IDMwIDE0IDI2IDEyIDI2IDEyIDI4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMTAiIHBvaW50cz0iMjQgMjggMjIgMjggMjIgMzAgMjYgMzAgMjYgMjYgMjQgMjYgMjQgMjgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgcG9pbnRzPSIxOCAyOCAxNiAyOCAxNiAzMCAy''@;'; put 'put ''MCAzMCAyMCAyNiAxOCAyNiAxOCAyOCIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0xMiwy''@;'; put 'put ''OEgxMFYyNmgyWm0wLTZIMTBWMjBoMlptMC02SDEwVjE0aDJabTcsMTJIMTdWMjZoMlptMC02SDE3VjIwaDJabTAtNkgxN1YxNGgyWm03LDEySDI0VjI2aDJabTAtNkgyNFYyMGgyWm0wLTZIMjRWMTRoMlptMC03SDEwVjVIMjZaIi8+JyksZS5DbHJTaGFwZVNob3BwaW5nQmFnPSgwLGEuY2xy''@;'; put 'put ''SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjUsMTJWOS4wNWE3LDcsMCwxLDAtMTQsMHY3YTEsMSwwLDAsMCwyLDBWMTRoOFYxMkgxM1Y5LjA1YTUsNSwwLDEsMSwxMCwwVjE2YTEsMSwwLDEsMCwyLDBWMTRoNVYzMkg2VjE0''@;'; put 'put ''SDlWMTJINFYzMi4wOUExLjkxLDEuOTEsMCwwLDAsNS45MSwzNEgzMC4wOUExLjkxLDEuOTEsMCwwLDAsMzIsMzIuMDlWMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTMsOS4yMmE1LDUsMCwxLDEsMTAsMFYxMmgy''@;'; put 'put ''VjkuMjJhNyw3LDAsMSwwLTE0LDBWMTJoMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNSwxMnYzLjFhMSwxLDAsMSwxLTIsMFYxMkgxM3YzLjFhMSwxLDAsMCwxLTIsMFYxMkg0VjMyYTIsMiwwLDAsMCwyLDJIMzBh''@;'; put 'put ''MiwyLDAsMCwwLDItMlYxMloiLz4nKSxlLkNsclNoYXBlUGlnZ3lCYW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTkuNzIsMTAuNDdhMTEuNjUsMTEuNjUsMCwwLDAtNi4zMS41MkEuOC44LDAsMSwwLDE0''@;'; put 'put ''LDEyLjQ4LDEwLjExLDEwLjExLDAsMCwxLDE5LjQ0LDEyYS44LjgsMCwxLDAsLjI4LTEuNTdaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMjUuMzgiIGN5PSIxNi43MSIgcj0iMS4zNiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zNS41MSwxOC42M2ExLDEsMCwwLDAtLjg0LS40NCwzLjQyLDMuNDIsMCwwLDEtMi4wOS0xLjEyLDE3LjM1LDE3LjM1LDAsMCwxLTIuNjMtMy43OGwyLjg4LTQuNUExLjg5LDEuODksMCwwLDAs''@;'; put 'put ''MzMsN2ExLjc3LDEuNzcsMCwwLDAtMS4zMy0xLDEwLjEyLDEwLjEyLDAsMCwwLTUuMzkuNzUsMTIuNzIsMTIuNzIsMCwwLDAtMi43MiwxLjYzLDE2Ljk0LDE2Ljk0LDAsMCwwLTUuMTYtMS4zOUMxMS4zMSw2LjMsNC44MywxMC45LDQsMTdINGEyLjU2LDIuNTYsMCwwLDEtMS4zOC0xLjUzLDEu''@;'; put 'put ''ODEsMS44MSwwLDAsMSwuMTQtMS40LDEuMTksMS4xOSwwLDAsMSwuNDMtLjQzLDEuMDgsMS4wOCwwLDAsMC0xLjEyLTEuODVBMy4zMSwzLjMxLDAsMCwwLC45MSwxM2E0LDQsMCwwLDAtLjMzLDMuMDhBNC43Niw0Ljc2LDAsMCwwLDMsMTguOTVsLjkyLjQ2YTE3LjU4LDE3LjU4LDAsMCwwLDEu''@;'; put 'put ''ODIsN2wuMTcuMzhBMjMsMjMsMCwwLDAsOS4yLDMxLjg4YTEsMSwwLDAsMCwuNzUuMzRoNC41MmExLDEsMCwwLDAsLjkyLTEuMzhMMTUsMjkuOTRsMS4xOC4xM2EyMC4zMywyMC4zMywwLDAsMCw0LDBjLjM3LjYuNzcsMS4yLDEuMjEsMS43OWExLDEsMCwwLDAsLjguNDFoNC4zNGExLDEsMCww''@;'; put 'put ''LDAsLjkyLTEuMzljLS4xNy0uNC0uMzQtLjgzLS40Ny0xLjItLjE4LS41My0uMzItMS0uNDMtMS40NUExMy4xOCwxMy4xOCwwLDAsMCwyOS41NiwyNmExMi41LDEyLjUsMCwwLDAsMywwLDEsMSwwLDAsMCwuNzgtLjYybDIuMjYtNS44MUExLDEsMCwwLDAsMzUuNTEsMTguNjNabS0zLjc4LDUu''@;'; put 'put ''NDRhMTEuMzcsMTEuMzcsMCwwLDEtMi4zNS0uMTFoMGE4LjIsOC4yLDAsMCwxLTIuNTMtLjg3LDEsMSwwLDAsMC0uOTMsMS43NywxMS43MiwxMS43MiwwLDAsMCwxLjI5LjU4LDgsOCwwLDAsMS0xLjgsMS4xNmwtMS4wNi40OHMuNDksMi4xOS44MiwzLjE2SDIyLjc5Yy0uMjQtLjM0LTEuNDUt''@;'; put 'put ''Mi4zNi0xLjQ1LTIuMzZsLS42Ny4wOWExOC41MywxOC41MywwLDAsMS00LjI1LjEyYy0uNjYtLjA2LTEuNzYtLjItMi42Mi0uMzVsLTEuNTUtLjI3cy42MywyLjQzLjc1LDIuNzR2MEgxMC40MkEyMC41NywyMC41NywwLDAsMSw3Ljc2LDI2bC0uMTgtLjM5QTE0LjYyLDE0LjYyLDAsMCwxLDYs''@;'; put 'put ''MTcuNDhjLjU0LTUuMTksNi4xMi05LjExLDEyLjE5LTguNTRhMTUuNDcsMTUuNDcsMCwwLDEsNS4wOCwxLjQ4bC42Mi4yOS41LS40N0ExMC4yOSwxMC4yOSwwLDAsMSwyNyw4LjU0YTguMjUsOC4yNSwwLDAsMSw0LS42NWwtMy4zOCw1LjI5LjI1LjVoMGEyMS4xNiwyMS4xNiwwLDAsMCwzLjMx''@;'; put 'put ''LDQuODQsNi40OSw2LjQ5LDAsMCwwLDIuMTQsMS4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNSwxOC44N0E1LjgzLDUuODMsMCwwLDEsMzMsMTcuNjFhMjEuNjMsMjEuNjMsMCwwLDEtMy4yOS00Ljg0bDMuMzkt''@;'; put 'put ''NS4yOWEuOS45LDAsMCwwLS41NC0xLjM4LDkuNjcsOS42NywwLDAsMC01LjEzLjcyLDEyLDEyLDAsMCwwLTMuMTMsMkExNy4zNywxNy4zNywwLDAsMCwxOC42LDcuMTVDMTEuOCw2LjUyLDUuMjcsMTAuOSw0LjU0LDE3bC0uMTQtLjA3QTIuNzYsMi43NiwwLDAsMSwyLjksMTUuMjlhMiwyLDAs''@;'; put 'put ''MCwxLC4xNS0xLjU1LDEuMzIsMS4zMiwwLDAsMSwuNDctLjQ4LDEuMDgsMS4wOCwwLDEsMC0xLjEyLTEuODUsMy40NSwzLjQ1LDAsMCwwLTEuMjMsMS4yNUE0LjE2LDQuMTYsMCwwLDAsLjg0LDE1LjlhNSw1LDAsMCwwLDIuNTcsM2wxLC41NGExOC42MiwxOC42MiwwLDAsMCwyLDcuMywyMywy''@;'; put 'put ''MywwLDAsMCwzLDQuNzksMSwxLDAsMCwwLC44LjM4aDMuNjFhLjUyLjUyLDAsMCwwLC40LS43NUwxNCwzMC4zOGExMSwxMSwwLDAsMS0uMzMtMS4xOGMuOTEuMTYsMi4wOC4zMSwyLjg3LjM4YTIwLjA3LDIwLjA3LDAsMCwwLDMuMTIsMGMuMzkuNy43OSwxLjMzLDEuMTUsMS44NWEuOTMuOTMs''@;'; put 'put ''MCwwLDAsLjc3LjQxaDMuMTFhLjY1LjY1LDAsMCwwLC42MS0uODVjLS4yMy0uNzQtLjUzLTEuNzUtLjcxLTIuMzdhMTUuOSwxNS45LDAsMCwwLDMuNzUtMS43NmMuMTYtLjExLjMyLS4yNi40OC0uMzlhMTMuNzcsMTMuNzcsMCwwLDEtMi40Mi0xLC44LjgsMCwwLDEsLjc0LTEuNDIsMTEuNjQs''@;'; put 'put ''MTEuNjQsMCwwLDAsMy4xOCwxLjEsMTMuMzEsMTMuMzEsMCwwLDAsMi42OC4xMiwxLDEsMCwwLDAsLjktLjY2bDEuNzMtNC40NEExLDEsMCwwLDAsMzUsMTguODdaTTEzLjc5LDExLjU5YS44Ni44NiwwLDAsMS0uMy4wNS44NS44NSwwLDAsMS0uMy0xLjY0LDEyLjQxLDEyLjQxLDAsMCwxLDYu''@;'; put 'put ''NjktLjU1Ljg1Ljg1LDAsMSwxLS4zLDEuNjdBMTAuNzUsMTAuNzUsMCwwLDAsMTMuNzksMTEuNTlabTEyLjUyLDYuMTJhMS40NCwxLjQ0LDAsMSwxLDEuNDQtMS40NEExLjQ0LDEuNDQsMCwwLDEsMjYuMzIsMTcuNzJaIi8+JyksZS5DbHJTaGFwZVNob3BwaW5nQ2FydD0oMCxhLmNsckljb25T''@;'; put 'put ''VkcpKCc8Y2lyY2xlIGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3IiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjA4LDUuMzdBMSwxLDAsMCwwLDMyLjMxLDVIMTEuNDlsLjY1LDJIMzFMMjguMzMsMTloLTE1TDguNzYsNC41M2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjJhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42NGw0LjU5''@;'; put 'put ''LDE0LjVMOS45NSwyMS40OGwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAsMS0uNTYtMWwyLjQxLTJIMjkuMTNhMSwxLDAsMCwwLDEtLjc4bDMuMTctMTRBMSwxLDAsMCwwLDMz''@;'; put 'put ''LjA4LDUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjEzLjMzIiBjeT0iMjkuNzUiIHI9IjIuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVy''@;'; put 'put ''dGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjciIGN5PSIyOS43NSIgcj0iMi4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjIwLjcxIDcgMjEuODcg''@;'; put 'put ''NSAxMS40OSA1IDEyLjE0IDcgMjAuNzEgNyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMTUsMTUuNCwyOC4zMywxOWgtMTVMOC43Niw0LjUzYTEsMSwwLDAsMC0uNjYtLjY1''@;'; put 'put ''TDQsMi42MmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY0bDQuNTksMTQuNUw5Ljk1LDIxLjQ4bC0uMTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4x''@;'; put 'put ''M2ExLDEsMCwwLDAsMS0uNzhsMS4wOS00LjgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMu''@;'; put 'put ''NjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; put 'put ''IGN4PSIxMy4zMyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNyIgY3k9IjI5Ljc1IiByPSIyLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTcsN2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xSDExLjQ5bC42NSwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVsLS40MiwwTDI4LjMzLDE5aC0xNUw4Ljc2LDQuNTNhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjYyYTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjRsNC41OSwxNC41TDkuOTUsMjEuNDhsLS4xMy4x''@;'; put 'put ''M0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEzYTEsMSwwLDAsMCwxLS43OGwxLjU3LTYuOTFBNy41MSw3LjUxLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFk''@;'; put 'put ''Z2UiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMy41IiBjeT0iMjkuNSIgcj0iMi41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xLDYuMzlBMSwxLDAsMCwwLDMyLjMxLDZIOS4yMUw4Ljc2LDQuNTdhMSwxLDAsMCwwLS42Ni0uNjVMNCwyLjY2YTEsMSwwLDEsMC0uNTksMS45Mkw3LDUuNjhsNC41OCwxNC40N0w5Ljk1LDIxLjQ5bC0u''@;'; put 'put ''MTMuMTNBMi42NiwyLjY2LDAsMCwwLDkuNzQsMjUsMi43NSwyLjc1LDAsMCwwLDEyLDI2SDI4LjY5YTEsMSwwLDAsMCwwLTJIMTEuODRhLjY3LjY3LDAsMCwxLS41Ni0xbDIuNDEtMkgyOS4xMmExLDEsMCwwLDAsMS0uNzZsMy4yLTEzQTEsMSwwLDAsMCwzMy4xLDYuMzlaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTMuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9''@;'; put 'put ''IjI2LjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDkuMjFMOC43Niw0LjU3''@;'; put 'put ''YTEsMSwwLDAsMC0uNjYtLjY1TDQsMi42NmExLDEsMCwxLDAtLjU5LDEuOTJMNyw1LjY4bDQuNTgsMTQuNDdMOS45NSwyMS40OWwtLjEzLjEzQTIuNjYsMi42NiwwLDAsMCw5Ljc0LDI1LDIuNzUsMi43NSwwLDAsMCwxMiwyNkgyOC42OWExLDEsMCwwLDAsMC0ySDExLjg0YS42Ny42NywwLDAs''@;'; put 'put ''MS0uNTYtMWwyLjQxLTJIMjkuMTJhMSwxLDAsMCwwLDEtLjc2bDEuMTktNC44NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCww''@;'; put 'put ''LDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxjaXJjbGUgY3g9IjEzLjUiIGN5PSIyOS41IiByPSIyLjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjYuNSIgY3k9IjI5LjUiIHI9IjIuNSIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg5LjIxTDguNzYsNC41N2ExLDEsMCwwLDAtLjY2LS42NUw0LDIuNjZhMSwxLDAsMSwwLS41OSwxLjkyTDcsNS42OGw0LjU4LDE0''@;'; put 'put ''LjQ3TDkuOTUsMjEuNDlsLS4xMy4xM0EyLjY2LDIuNjYsMCwwLDAsOS43NCwyNSwyLjc1LDIuNzUsMCwwLDAsMTIsMjZIMjguNjlhMSwxLDAsMCwwLDAtMkgxMS44NGEuNjcuNjcsMCwwLDEtLjU2LTFsMi40MS0ySDI5LjEyYTEsMSwwLDAsMCwxLS43NmwxLjcxLTdBNy40OSw3LjQ5LDAsMCwx''@;'; put 'put ''LDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVXYWxsZXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiwxNUgzMVY5YTEsMSwwLDAsMC0xLTFINmExLDEsMCwwLDEtMS0uODJWNi44MkExLDEsMCwwLDEs''@;'; put 'put ''Niw2SDI5LjU4YTEsMSwwLDAsMCwwLTJINkEzLDMsMCwwLDAsMyw3YTMuMDgsMy4wOCwwLDAsMCwwLC4zNlYyNy45M0E0LjEsNC4xLDAsMCwwLDcuMTMsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNWgxYTEsMSwwLDAsMCwxLTFWMTZBMSwxLDAsMCwwLDMyLDE1Wk0yOSwzMEg3LjEzQTIuMTEsMi4x''@;'; put 'put ''MSwwLDAsMSw1LDI3LjkzVjkuODhBMy4xMSwzLjExLDAsMCwwLDYsMTBIMjl2NUgyMmE1LDUsMCwwLDAsMCwxMGg3Wm0yLTdIMjJhMywzLDAsMCwxLDAtNkgzMVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIy''@;'; put 'put ''My4wMSIgY3k9IjIwIiByPSIxLjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi45NCwxNEgzMVY5YTEsMSwwLDAsMC0xLTFINkExLDEsMCwwLDEsNSw3SDVWN0ExLDEsMCwwLDEsNiw2SDI5LjZhMSwxLDAsMSwwLDAt''@;'; put 'put ''Mkg2QTIuOTQsMi45NCwwLDAsMCwzLDYuODh2MjFBNC4xMyw0LjEzLDAsMCwwLDcuMTUsMzJIMzBhMSwxLDAsMCwwLDEtMVYyNmgxLjk0YS45My45MywwLDAsMCwxLS45MXYtMTBBMS4wOCwxLjA4LDAsMCwwLDMyLjk0LDE0Wk0zMiwyNGwtOC41OCwwYTMuODcsMy44NywwLDAsMS0zLjczLTQs''@;'; put 'put ''My44NywzLjg3LDAsMCwxLDMuNzMtNEwzMiwxNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgY3g9IjI0LjA0IiBjeT0iMTkuOTIiIHI9IjEuNSIvPicpLGUuQ2xyU2hhcGVTdG9yZT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI4LDMwSDE2VjIySDE0djhIOFYyMkg2djhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjIySDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTIiIGQ9Ik0zMy43OSwxMy4yNywyOS43MSw1LjExQTIsMiwwLDAsMCwyNy45Miw0SDguMDhBMiwyLDAsMCwwLDYuMjksNS4xMUwyLjIxLDEzLjI3YTIsMiwwLDAsMC0uMjEuOXYzLjA4YTIsMiwwLDAsMCwuNDYsMS4yOEE0LjY3LDQuNjcsMCwwLDAsNiwyMC4xM2E0LjcyLDQu''@;'; put 'put ''NzIsMCwwLDAsMy0xLjA3LDQuNzMsNC43MywwLDAsMCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzIsNC43MiwwLDAsMCw2LjUzLS41MkEyLDIsMCwwLDAsMzQsMTcuMjZWMTQuMTdBMiwyLDAsMCwwLDMzLjc5LDEzLjI3Wk0zMCwxOC4xM0EyLjY4LDIu''@;'; put 'put ''NjgsMCwwLDEsMjcuODIsMTdMMjcsMTUuODgsMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OCwyMC4xOSwxN2EyLjcxLDIuNzEsMCwwLDEtNC4zNywwTDE1LDE1Ljg4LDE0LjE5LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OCw4LjE4LDE3QTIuNjgsMi42''@;'; put 'put ''OCwwLDAsMSw2LDE4LjEzYTIuNjQsMi42NCwwLDAsMS0yLS44OFYxNC4xN0w4LjA4LDZIMjcuOTJMMzIsMTQuMTZ2LjY3bDAsMi4zOUEyLjY3LDIuNjcsMCwwLDEsMzAsMTguMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBk''@;'; put 'put ''PSJNMjgsMzBIMTZWMjJIMTR2OEg4VjIySDZ2OGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMjJIMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuNzksMTMuMjcsMjkuNzEsNS4xMUEyLDIsMCwwLDAs''@;'; put 'put ''MjcuOTIsNEg4LjA4QTIsMiwwLDAsMCw2LjI5LDUuMTFMMi4yMSwxMy4yN2EyLDIsMCwwLDAtLjIxLjl2My4wOGEyLDIsMCwwLDAsLjQ2LDEuMjhBNC42Nyw0LjY3LDAsMCwwLDYsMjAuMTNhNC43Miw0LjcyLDAsMCwwLDMtMS4wNyw0LjczLDQuNzMsMCwwLDAsNiwwLDQuNzMsNC43MywwLDAs''@;'; put 'put ''MCw2LDAsNC43Myw0LjczLDAsMCwwLDYsMCw0LjcyLDQuNzIsMCwwLDAsNi41My0uNTJBMiwyLDAsMCwwLDM0LDE3LjI2VjE0LjE3QTIsMiwwLDAsMCwzMy43OSwxMy4yN1pNMTUsMTQuNHYxLjUyTDE0LjE4LDE3YTIuNzEsMi43MSwwLDAsMS00LjM3LDBMOSwxNS44OFYxNC40TDExLjU5LDZI''@;'; put 'put ''MTZabTEyLDEuNDhMMjYuMTksMTdhMi43MSwyLjcxLDAsMCwxLTQuMzcsMEwyMSwxNS44OGwwLDBWMTQuNEwyMCw2aDQuNDVMMjcsMTQuNFoiLz4nKSxlLkNsclNoYXBlRXVybz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgZD0iTTMxLjQ4LDI4LjQ5YTEsMSwwLDAsMC0xLjM4LS4zMkExMiwxMiwwLDAsMSwxMi40NSwyMkgyNC4xNmExLDEsMCwwLDAsMC0ySDExLjkzYTExLjE2LDExLjE2LDAsMCwxLDAtNEgyNC4xNmExLDEsMCwwLDAsMC0ySDEyLjQ1QTEyLDEyLDAsMCwxLDMwLjA2LDcuOGExLDEsMCwwLDAs''@;'; put 'put ''MS4wNi0xLjdBMTQsMTQsMCwwLDAsMTAuMzQsMTRIMy41NGExLDEsMCwxLDAsMCwySDkuOTFhMTQsMTQsMCwwLDAtLjE2LDIsMTQsMTQsMCwwLDAsLjE2LDJIMy41NGExLDEsMCwxLDAsMCwyaDYuOGExNCwxNCwwLDAsMCwyMC44Myw3Ljg3QTEsMSwwLDAsMCwzMS40OCwyOC40OVoiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNDIsMjUuMTZBMTAuODgsMTAuODgsMCwwLDEsOS4yMywyMUg1Ljg0YTEsMSwwLDAsMSwwLTJoM2MwLS4zNS0u''@;'; put 'put ''MDUtLjcxLS4wNS0xLjA3czAtLjYzLDAtLjkzaC0zYTEsMSwwLDAsMSwwLTJIOS4xOUExMC44NiwxMC44NiwwLDAsMSwyNS4zOCw4LjY5YTEuMjUsMS4yNSwwLDAsMS0xLjMyLDIuMTJBOC4zNiw4LjM2LDAsMCwwLDExLjgyLDE1aDkuMzZhMSwxLDAsMCwxLDAsMkgxMS4zM2E3LjcyLDcuNzIs''@;'; put 'put ''MCwwLDAsMCwyaDkuODJhMSwxLDAsMCwxLDAsMkgxMS44N2E4LjM2LDguMzYsMCwwLDAsMTIuMjIsNCwxLjI1LDEuMjUsMCwxLDEsMS4zMywyLjEyWiIvPicpLGUuQ2xyU2hhcGVEb2xsYXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEiIGQ9Ik0yNiwyMS4xNWE2LjkxLDYuOTEsMCwwLDAtNC4zOC0zLjMyQTI2LDI2LDAsMCwwLDE5LDE3LjE5VjguMTJBMTAuMDUsMTAuMDUsMCwwLDEsMjMuODYsMTBhMSwxLDAsMCwwLDEuMzMtMS41QTExLjc1LDExLjc1LDAsMCwwLDE5LDYuMVYzYTEsMSwwLDAsMC0yLDBWNmMt''@;'; put 'put ''NC40LjEtNi44MywyLjI5LTcuNTcsNC4xOEE1LjU2LDUuNTYsMCwwLDAsMTEuNjYsMTcsMTMuMiwxMy4yLDAsMCwwLDE3LDE4Ljg0VjI4YTEyLjMsMTIuMywwLDAsMS03LjE0LTIuNzRBMSwxLDAsMSwwLDguNDksMjYuNywxNC4wOSwxNC4wOSwwLDAsMCwxNywzMHYzYTEsMSwwLDAsMCwyLDBW''@;'; put 'put ''MzBjMi44Mi0uMTksNi4wNy0xLjA5LDcuMy00Ljc2QTUuMzMsNS4zMywwLDAsMCwyNiwyMS4xNVpNMTIuNzksMTUuMzJhMy41NywzLjU3LDAsMCwxLTEuNDktNC4zOUMxMS40MSwxMC42MywxMi41Myw4LjEyLDE3LDh2OC44QTEwLjcsMTAuNywwLDAsMSwxMi43OSwxNS4zMlpNMjQuNCwyNC41''@;'; put 'put ''NmMtLjcyLDIuMTQtMi4zMiwzLjE3LTUuNCwzLjRWMTkuMjNjLjY0LjE0LDEuMy4zLDIsLjUxYTUsNSwwLDAsMSwzLjE5LDIuMzJBMy4zNCwzLjM0LDAsMCwxLDI0LjQsMjQuNTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIlxu''@;'; put 'put ''ICAgICAgICAgICAgICAgIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTcuNjUsMjEuNTljLTEsMy0zLjYxLDMuODQtNS45LDR2MmExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjcuNTlBMTEuNDcsMTEuNDcsMCwwLDEsMTEsMjVhMS4yNSwxLjI1LDAsMSwxLDEu''@;'; put 'put ''NzEtMS44Myw5LjExLDkuMTEsMCwwLDAsNC41NSwxLjk0VjE4LjgzYTkuNjMsOS42MywwLDAsMS0zLjczLTEuNDEsNC44LDQuOCwwLDAsMS0xLjkxLTUuODRjLjU5LTEuNTEsMi40Mi0zLjIzLDUuNjQtMy41MVY2LjI1YTEuMjUsMS4yNSwwLDAsMSwyLjUsMFY4LjExYTkuNjcsOS42NywwLDAs''@;'; put 'put ''MSw0LjksMkExLjI1LDEuMjUsMCwwLDEsMjMsMTEuOTVhNy4xNCw3LjE0LDAsMCwwLTMuMjQtMS4zMXY2LjEzYy42LjEzLDEuMjQuMjcsMS45MS40OGE1Ljg1LDUuODUsMCwwLDEsMy42OSwyLjgyQTQuNjQsNC42NCwwLDAsMSwyNS42NSwyMy41OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yMC45MiwxOS42NGMtLjQtLjEyLS43OS0uMjItMS4xNy0uM3Y1Ljc2YzItLjIsMy4wNy0uOSwzLjUzLTIuM2EyLjE1LDIuMTUsMCwwLDAtLjE1LTEuNThBMy40OSwzLjQ5LDAsMCwwLDIwLjkyLDE5LjY0WiIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTEzLjk0LDEyLjQ4YTIuMzEsMi4zMSwwLDAsMCwxLDIuODcsNi41Myw2LjUzLDAsMCwwLDIuMzIuOTJWMTAuNTVDMTUuMTYsMTAuOCwxNC4xOSwxMS44NCwxMy45NCwxMi40OFoiLz4nKSxl''@;'; put 'put ''LkNsclNoYXBlQ3JlZGl0Q2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMiwwLDEySDRMNCw4Wk00LDI4VjI0SDMydjRaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjMiIHdpZHRoPSIyMiIgaGVpZ2h0PSIzMCIgcng9IjAuOTYiIHJ5PSIwLjk2IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzNikgcm90YXRlKDkwKSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIj''@;'; put 'put ''MDAwIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0y''@;'; put 'put ''VjhBMiwyLDAsMCwwLDMyLDZabTAsMThINFYyMEgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUJhbms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMuNSwxMy41NiwxOCw1LjIzbDE0LjUsOC4zM2ExLDEsMCwwLDAsMS0xLjcz''@;'; put 'put ''TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYz''@;'; put 'put ''SDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI1LjAyIiB5PSIxNCIgd2lkdGg9IjI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjE1LDExLjU4''@;'; put 'put ''aDMuMjFMMTguNjUsNy43MmEuOC44LDAsMCwwLS44LDBsLTYuNzIsMy44NmgzLjIxbDMuOS0yLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI2YTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDAtMkgy''@;'; put 'put ''OFYxNy42M0gyNlYyNUgxOVYxNy42M0gxN1YyNUgxMFYxNy42M0g4VjI1SDVBMSwxLDAsMCwwLDQsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjUuMDIiIHk9IjE0IiB3aWR0aD0i''@;'; put 'put ''MjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4xNSwxMS41OGgzLjIxTDE4LjY1LDcuNzJhLjguOCwwLDAsMC0uOCwwbC02LjcyLDMuODZoMy4yMWwzLjktMi4yNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmMwLS4xNiwwLS4zMiwwLS40OEwxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjIuNzcsOEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTQsMTMuMjRsLjU2LjMyYTEsMSwwLDAsMCwxLjQ0LTEuMTlBNy40NSw3LjQ1LDAsMCwxLDMxLjk0LDEzLjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTQsMjZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDI4VjE3LjYzSDI2VjI1SDE5VjE3LjYzSDE3VjI1SDEwVjE3LjYzSDhWMjVINUExLDEsMCwwLDAsNCwyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMjlIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsMTVBMy41''@;'; put 'put ''MSwzLjUxLDAsMCwxLDIwLDE0SDV2MkgzMVYxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuNDYsOS43NGwuNjgtMS4xNy0xLjQ5LS44NWEuOC44LDAsMCwwLS44LDBsLTYu''@;'; put 'put ''NzIsMy44NmgzLjIxbDMuOS0yLjI0LDEuMS42M0MxOS4zOSw5Ljg5LDE5LjQyLDkuODEsMTkuNDYsOS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMDUsNS4yNSwxOCwy''@;'; put 'put ''LjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczTDE4LDUuMjMsMjEuMDUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgs''@;'; put 'put ''MCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTMuNSwxMy41Niw1LDEyLjY4VjE2SDMxVjEyLjcxbDEuNDguODVhMSwxLDAsMCwwLDEtMS43M0wxOCwyLjkyLDIuNSwxMS44M2ExLDEsMCwxLDAsMSwxLjczWk0xNy44NSw3LjExYS44LjgsMCwwLDEsLjgsMEwyNS4zNywxMUgyMi4xNWwtMy45LTIuMjRMMTQu''@;'; put 'put ''MzUsMTFIMTEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuODUsMjdIMzJ2LS44NUExLjE1LDEuMTUsMCwwLDAsMzAuODUsMjVIMjhWMTcuNjNIMjRWMjVIMjBWMTcuNjNIMTZWMjVIMTJWMTcuNjNIOFYyNUg1''@;'; put 'put ''LjE1QTEuMTUsMS4xNSwwLDAsMCw0LDI2LjE1VjI3SDMuMTVBMS4xNSwxLjE1LDAsMCwwLDIsMjguMTVWMzFIMzRWMjguMTVBMS4xNSwxLjE1LDAsMCwwLDMyLjg1LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMy''@;'; put 'put ''Ljg1LDI3SDMydi0uODVBMS4xNSwxLjE1LDAsMCwwLDMwLjg1LDI1SDI4VjE3LjYzSDI0VjI1SDIwVjE3LjYzSDE2VjI1SDEyVjE3LjYzSDhWMjVINS4xNUExLjE1LDEuMTUsMCwwLDAsNCwyNi4xNVYyN0gzLjE1QTEuMTUsMS4xNSwwLDAsMCwyLDI4LjE1VjMxSDM0VjI4LjE1QTEuMTUsMS4x''@;'; put 'put ''NSwwLDAsMCwzMi44NSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzksMTFIMjIuMTVsLTMuOS0yLjI0TDE0LjM1LDExSDExLjE0bDYu''@;'; put 'put ''NzItMy44NmEuOC44LDAsMCwxLC44LDBsNSwyLjg3QTcuNDUsNy40NSwwLDAsMSwyMi41LDZjMC0uMTYsMC0uMzIsMC0uNDhMMTgsMi45MiwyLjUsMTEuODNhMSwxLDAsMSwwLDEsMS43M0w1LDEyLjY4VjE2SDMxVjEzLjQyQTcuNTMsNy41MywwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45NCwxMy4yNGwuNTYuMzJhMSwxLDAsMCwwLDEuNDQtMS4xOUE3LjQ1LDcuNDUsMCwwLDEsMzEuOTQsMTMuMjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; put 'put ''Mi44NSwyN0gzMnYtLjg1QTEuMTUsMS4xNSwwLDAsMCwzMC44NSwyNUgyOFYxNy42M0gyNFYyNUgyMFYxNy42M0gxNlYyNUgxMlYxNy42M0g4VjI1SDUuMTVBMS4xNSwxLjE1LDAsMCwwLDQsMjYuMTVWMjdIMy4xNUExLjE1LDEuMTUsMCwwLDAsMiwyOC4xNVYzMUgzNFYyOC4xNUExLjE1LDEu''@;'; put 'put ''MTUsMCwwLDAsMzIuODUsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSwxNWEzLjUxLDMuNTEsMCwwLDEtMy01LjI2bC4xNC0uMjQtMS4zNS0uNzhMMTQuMzUsMTFIMTEuMTRs''@;'; put 'put ''Ni43Mi0zLjg2YS44LjgsMCwwLDEsLjgsMGwxLjc1LDEsMS42NS0yLjg2TDE4LDIuOTIsMi41LDExLjgzYTEsMSwwLDEsMCwxLDEuNzNMNSwxMi42OFYxNkgzMVYxNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz4nKSxlLkNsclNoYXBlRG9sbGFyQmlsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwy''@;'; put 'put ''LDJIMzJhMiwyLDAsMCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFptMCw2YTQuMjUsNC4yNSwwLDAsMS0zLjktNEgzMlptMCwxLjYydjQuODNBNS44Nyw1Ljg3LDAsMCwwLDI2LjQ5LDI2aC0xN0E1Ljg3LDUuODcsMCwwLDAsNCwyMC40NFYxNS42QTUuODcsNS44NywwLDAsMCw5LjUxLDEwaDE3''@;'; put 'put ''QTUuODcsNS44NywwLDAsMCwzMiwxNS42Wk03LjksMTBBNC4yNSw0LjI1LDAsMCwxLDQsMTRWMTBaTTQsMjIuMDZBNC4yNSw0LjI1LDAsMCwxLDcuOSwyNkg0Wk0yOC4xLDI2QTQuMjUsNC4yNSwwLDAsMSwzMiwyMi4wNlYyNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMTAuODVjLTMuNDcsMC02LjMsMy4yMS02LjMsNy4xNXMyLjgzLDcuMTUsNi4zLDcuMTUsNi4zLTMuMjEsNi4zLTcuMTVTMjEuNDcsMTAuODUsMTgsMTAuODVabTAsMTIuNjljLTIuNTksMC00LjctMi40OS00LjctNS41NXMyLjEx''@;'; put 'put ''LTUuNTUsNC43LTUuNTUsNC43LDIuNDksNC43LDUuNTVTMjAuNTksMjMuNTUsMTgsMjMuNTVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIsOEg0YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIs''@;'; put 'put ''MCwwLDAsMi0yVjEwQTIsMiwwLDAsMCwzMiw4Wk00LDI2VjIxLjE1QTUuMTgsNS4xOCwwLDAsMSw4Ljc5LDI2Wk00LDE0Ljg1VjEwSDguNzlBNS4xOCw1LjE4LDAsMCwxLDQsMTQuODVaTTE4LDI1LjE1Yy0zLjQ3LDAtNi4zLTMuMjEtNi4zLTcuMTVzMi44My03LjE1LDYuMy03LjE1LDYuMywz''@;'; put 'put ''LjIxLDYuMyw3LjE1UzIxLjQ3LDI1LjE1LDE4LDI1LjE1Wk0zMiwyNkgyNy4yNUE1LjE4LDUuMTgsMCwwLDEsMzIsMjEuMTVabTAtMTEuMTVBNS4xOCw1LjE4LDAsMCwxLDI3LjI1LDEwSDMyWiIvPlxuICAgICAgICAgICAgPGVsbGlwc2UgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMiIgY3g9IjE4IiBjeT0iMTgiIHJ4PSI0IiByeT0iNC43MiIvPicpLGUuQ2xyU2hhcGVFQ2hlY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjE2IiB5PSIxNiIgd2lkdGg9IjE1IiBoZWlnaHQ9IjIi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMCIgeT0iMjEiIHdpZHRoPSIxMSIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIg''@;'; put 'put ''ZD0iTTM0LDhIMTIuOTNhOC4zNSw4LjM1LDAsMCwxLC43OSwySDMzVjI2SDNWMTkuOWE3LjgzLDcuODMsMCwwLDEtMi0xLjM0VjI3YTEsMSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik02LjU3LDE4LjY4YTYuMTcsNi4xNywwLDAsMCw0LjMyLTEuNTksMS4yLDEuMiwwLDAsMCwuMzYtLjg0LDEuMDgsMS4wOCwwLDAsMC0xLjA5LTEuMTEsMSwxLDAsMCwwLS43MS4yNSw0LjMyLDQuMzIsMCwwLDEtMi44NCwxLDMuMzUsMy4zNSww''@;'; put 'put ''LDAsMS0zLjQ2LTNoNy41M0ExLjI5LDEuMjksMCwwLDAsMTIsMTIuMDYsNS42OCw1LjY4LDAsMCwwLDYuMjcsNi4xNCw2LDYsMCwwLDAsLjQsMTIuNHYwQTYsNiwwLDAsMCw2LjU3LDE4LjY4Wk02LjI1LDguMzljMS44MiwwLDIuODcsMS4zOSwzLDMuMTZIMy4xM0MzLjM4LDkuNjksNC41Niw4''@;'; put 'put ''LjM5LDYuMjUsOC4zOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCw4SDEyLjkxYTguNjEsOC42MSwwLDAsMSwxLjIsNC4zOSw4LDgsMCwwLDEtNy43OCw4LjI3QTcuNTEsNy41MSwwLDAsMSwxLDE4LjQxVjI3YTEs''@;'; put 'put ''MSwwLDAsMCwxLDFIMzRhMSwxLDAsMCwwLDEtMVY5QTEsMSwwLDAsMCwzNCw4Wk0zMSwyM0gyMFYyMUgzMVptMC01SDE2VjE2SDMxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTYuNTcsMTguNjhBNiw2LDAsMCwxLC40''@;'; put 'put ''LDEyLjQ0djBBNiw2LDAsMCwxLDYuMjcsNi4xNCw1LjY4LDUuNjgsMCwwLDEsMTIsMTIuMDZhMS4yOSwxLjI5LDAsMCwxLTEuMywxLjMySDMuMTVhMy4zNSwzLjM1LDAsMCwwLDMuNDYsMyw0LjMyLDQuMzIsMCwwLDAsMi44NC0xLDEsMSwwLDAsMSwuNzEtLjI1LDEuMDgsMS4wOCwwLDAsMSwx''@;'; put 'put ''LjA5LDEuMTEsMS4yLDEuMiwwLDAsMS0uMzYuODRBNi4xNyw2LjE3LDAsMCwxLDYuNTcsMTguNjhaTTkuMywxMS41NWMtLjE4LTEuNzctMS4yMy0zLjE2LTMtMy4xNnMtMi44NywxLjMtMy4xMiwzLjE2WiIvPicpLGUuQ2xyU2hhcGVQb3VuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjksMzBIMTMuNEE4LjQ1LDguNDUsMCwwLDAsMTUsMjQuNjVWMjFoNC4zMWExLDEsMCwwLDAsMC0ySDE1VjExLjMxQTUuMjQsNS4yNCwwLDAsMSwyMC4yMSw2LDUuMTksNS4xOSwwLDAsMSwyNCw3LjczYTEsMSww''@;'; put 'put ''LDAsMCwxLjQ4LTEuMzVBNy4xOSw3LjE5LDAsMCwwLDEzLDExLjMxVjE5SDguNzJhMSwxLDAsMSwwLDAsMkgxM3YzLjY1QzEzLDI5LjM4LDEwLjEyLDMwLDEwLDMwYTEsMSwwLDAsMCwuMTcsMkgyNy45YTEsMSwwLDEsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm02LjUsMjUuOTJIMTEuNzRhMS4yNSwxLjI1LDAsMCwxLS4yMi0yLjQ4Yy4xNSwwLDEuNzItLjQ5LDEuNzItMy41NFYxOWgtMi41YTEsMSwwLDAsMSwwLTJoMi41VjEx''@;'; put 'put ''Ljg4YTUuODUsNS44NSwwLDAsMSw1LjcyLTYsNS42Myw1LjYzLDAsMCwxLDQuMjEsMS45NEExLjI1LDEuMjUsMCwxLDEsMjEuMyw5LjUxLDMuMDgsMy4wOCwwLDAsMCwxOSw4LjQyYTMuMzUsMy4zNSwwLDAsMC0zLjIyLDMuNDZWMTdoM2ExLDEsMCwwLDEsMCwyaC0zdjIuOUE3LjY1LDcuNjUs''@;'; put 'put ''MCwwLDEsMTUsMjUuNDJIMjQuNWExLjI1LDEuMjUsMCwwLDEsMCwyLjVaIi8+JyksZS5DbHJTaGFwZVJ1cGVlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjgsOEgyNC4xNEE3LjUyLDcuNTIsMCwwLDAsMjIu''@;'; put 'put ''Niw2SDI4YTEsMSwwLDAsMCwwLTJIMTBhMSwxLDAsMCwwLDAsMmg3LjU1YTUuNDIsNS40MiwwLDAsMSw0LjIsMkgxMGExLDEsMCwwLDAsMCwySDIyLjc5QTUuNTQsNS41NCwwLDAsMSwyMywxMS41MSw1LjQ4LDUuNDgsMCwwLDEsMTcuNTUsMTdIMTEuMTRhMSwxLDAsMCwwLS43NSwxLjY2TDIy''@;'; put 'put ''LjA2LDMyYTEsMSwwLDEsMCwxLjUtMS4zMkwxMy4zNSwxOWg0LjIxYTcuNTEsNy41MSwwLDAsMCw3LjMtOUgyOGExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQs''@;'; put 'put ''MTgsMTYsMTYsMCwwLDAsMTgsMlptNS44OCw5SDI2YTEsMSwwLDAsMSwwLDJIMjQuMjZjMCwuMDYsMCwuMTIsMCwuMTlhNi4wOSw2LjA5LDAsMCwxLTYsNi4yaC0ybDYuODIsOC4wNmExLjI1LDEuMjUsMCwwLDEtMS45MSwxLjYyTDEyLjYzLDE4Ljk0YTEuMjUsMS4yNSwwLDAsMSwxLTIuMDZo''@;'; put 'put ''NC43MWEzLjU5LDMuNTksMCwwLDAsMy40OC0zLjY5YzAtLjA3LDAtLjEzLDAtLjJoLTlhMSwxLDAsMCwxLDAtMmg4LjMyYTMuNDEsMy40MSwwLDAsMC0yLjc4LTEuNUgxMi43NWExLjI1LDEuMjUsMCwwLDEsMC0yLjVIMjZhMSwxLDAsMCwxLDAsMkgyMi42OEE2LjIzLDYuMjMsMCwwLDEsMjMu''@;'; put 'put ''ODgsMTFaIi8+JyksZS5DbHJTaGFwZVdvbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLDE4SDI4Ljc1bC41LTJIMzNhMSwxLDAsMCwwLDAtMkgyOS43NGwyLjE3LTguNzZBMSwxLDAsMCwwLDMwLDQuNzZM''@;'; put 'put ''MjcuNjgsMTRIMjEuMzFMMTksNC43NmExLDEsMCwwLDAtMS45NCwwTDE0Ljc5LDE0SDguNDJMNi4xMyw0Ljc2YTEsMSwwLDAsMC0xLjk0LjQ4TDYuMzYsMTRIM2ExLDEsMCwwLDAsMCwySDYuODVsLjUsMkgzYTEsMSwwLDAsMCwwLDJINy44NGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBM''@;'; put 'put ''MTUuMzYsMjBoNS4zOGwyLjc5LDExLjI0YTEsMSwwLDAsMCwxLjk0LDBMMjguMjUsMjBIMzNhMSwxLDAsMCwwLDAtMlptLTUuODItMi0uNSwySDIyLjNsLS41LTJaTTE4LDkuMTYsMTkuMjUsMTRoLTIuNFpNOC45MSwxNmg1LjM4bC0uNSwySDkuNDFaTTExLjYsMjYuODQsOS45MSwyMEgxMy4z''@;'; put 'put ''Wk0xNS44NSwxOGwuNS0yaDMuMzlsLjUsMlptOC42NCw4Ljg0TDIyLjgsMjBoMy4zOVoiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIHBvaW50cz0iMTcuNzQgMTYgMTcuMjIgMTggMTguODUgMTggMTguMzIgMTYgMTcuNzQg''@;'; put 'put ''MTYiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHBvaW50cz0iMTEuOTQgMTggMTQuNjMgMTggMTUuMTYgMTYgMTEuNDEgMTYgMTEuOTQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTMiIHBvaW50cz0iMTMuMjkgMjMuMSAxNC4xIDIwIDEyLjQ3IDIwIDEzLjI5IDIzLjEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHBvaW50cz0iMjEuNDQgMTggMjQuMTMgMTggMjQuNjYgMTYg''@;'; put 'put ''MjAuOTEgMTYgMjEuNDQgMTgiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIHBvaW50cz0iMjIuNzggMjMuMSAyMy42IDIwIDIxLjk3IDIwIDIyLjc4IDIzLjEiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTYiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTI5LDIwSDI2LjE5TDI0LDI4LjMyYTEuMjUsMS4yNSwwLDAsMS0yLjQyLDBMMTkuMzgsMjBIMTYuNjlsLTIuMTksOC4zMmExLjI1LDEuMjUsMCwwLDEtMi40MiwwTDku''@;'; put 'put ''ODgsMjBIN2ExLDEsMCwwLDEsMC0ySDkuMzVsLS41My0ySDdhMSwxLDAsMCwxLDAtMkg4LjNsLTEtMy42OGExLjI1LDEuMjUsMCwwLDEsMi40Mi0uNjRMMTAuODgsMTRoNC44bDEuMTQtNC4zMmExLjI1LDEuMjUsMCwwLDEsMi40MiwwTDIwLjM4LDE0aDQuOGwxLjE0LTQuMzJhMS4yNSwxLjI1''@;'; put 'put ''LDAsMCwxLDIuNDIuNjRsLTEsMy42OEgyOWExLDEsMCwwLDEsMCwySDI3LjI0bC0uNTMsMkgyOWExLDEsMCwwLDEsMCwyWiIvPicpLGUuQ2xyU2hhcGVZZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS4z''@;'; put 'put ''NCw0LjU1YTEsMSwwLDEsMC0xLjY3LTEuMUwxOCwxOC4yMyw4LjMzLDMuNDVhMSwxLDAsMCwwLTEuNjcsMS4xTDE3LDIwLjM1VjIyLjJIMTJhLjguOCwwLDAsMCwwLDEuNmg1djIuNEgxMmEuOC44LDAsMCwwLDAsMS42aDVWMzJhMSwxLDAsMCwwLDIsMFYyNy44aDVhLjguOCwwLDAsMCwwLTEu''@;'; put 'put ''NkgxOVYyMy44aDVhLjguOCwwLDAsMCwwLTEuNkgxOVYyMC4zNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTguMDcsNy45MUwxOS43NCwyMEgy''@;'; put 'put ''MmExLDEsMCwwLDEsMCwySDE5LjI1djJIMjJhMSwxLDAsMCwxLDAsMkgxOS4yNXYyLjc1YTEuMjUsMS4yNSwwLDAsMS0yLjUsMFYyNkgxNGExLDEsMCwxLDEsMC0yaDIuNzVWMjJIMTRhMSwxLDAsMSwxLDAtMmgyLjI2TDkuOTMsOS45MWExLjI1LDEuMjUsMCwxLDEsMi4xMi0xLjMzTDE4LDE4''@;'; put 'put ''LjA4bDUuOTUtOS40OWExLjI1LDEuMjUsMCwxLDEsMi4xMiwxLjMzWiIvPicpLGUuQ2xyU2hhcGVCaXRjb2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC4xMSwxNi44OEE1LjQ5LDUuNDksMCwwLDAsMjEsN1Y0YTEsMSwwLDAsMC0yLDBWN0gxNlY0YTEsMSwwLDAsMC0yLDBWN0gx''@;'; put 'put ''MWExLDEsMCwwLDAtMSwxVjI4YTEsMSwwLDAsMCwxLDFoM3YzYTEsMSwwLDAsMCwyLDBWMjloM3YzYTEsMSwwLDAsMCwyLDBWMjloLjA4QTYuMDcsNi4wNywwLDAsMCwyNywyMi44MXYtLjYyQTYuMjUsNi4yNSwwLDAsMCwyNC4xMSwxNi44OFpNMTIsOWg4LjY5YTMuNTksMy41OSwwLDAsMSwz''@;'; put 'put ''LjQzLDIuMzZBMy41MSwzLjUxLDAsMCwxLDIwLjc5LDE2SDEyWk0yNSwyMi44MUE0LjA4LDQuMDgsMCwwLDEsMjEuMDYsMjdIMTJWMThoOS4wNkE0LjA4LDQuMDgsMCwwLDEsMjUsMjIuMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0yMS4xOCwxOC40N0gxNC41djZoNi42OGEyLjcsMi43LDAsMCwwLDIuNjMtMi43N3YtLjQ4QTIuNzEsMi43MSwwLDAsMCwyMS4xOCwxOC40N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMs''@;'; put 'put ''MTMuNzVhMi4yNCwyLjI0LDAsMCwwLTIuMjMtMi4yNUgxNC41VjE2aDYuM0EyLjIyLDIuMjIsMCwwLDAsMjMsMTMuNzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYs''@;'; put 'put ''MCwwLDAsMTgsMlptOC4zMSwxOS43M0E1LjIyLDUuMjIsMCwwLDEsMjEuMTgsMjdIMjF2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTd2MS45YTEsMSwwLDAsMS0yLDBWMjdIMTMuMjVBMS4yNSwxLjI1LDAsMCwxLDEyLDI1Ljc1VjE3LjIzaDB2LTdBMS4yNSwxLjI1LDAsMCwxLDEzLjI1LDlIMTVW''@;'; put 'put ''Ny4wN2ExLDEsMCwwLDEsMiwwVjloMlY3LjA3YTEsMSwwLDAsMSwyLDBWOWE0LjcyLDQuNzIsMCwwLDEsMy4yLDgsNS4zMSw1LjMxLDAsMCwxLDIuMTEsNC4yNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUNvaW5CYWc9KDAsYS5jbHJJ''@;'; put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTIxLjYsMjlhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjIuNTQsMjRoLTZhMSwxLDAsMCwwLDAsMmg2YTEs''@;'; put 'put ''MSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIsMzJIMTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJN''@;'; put 'put ''MzIuNywzMmgtN2ExLDEsMCwwLDAsMCwyaDdhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMy43LDI4aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjc0LDI2YTI4LDI4LDAsMCwwLTIuODItMTAuMTJBMjAuMjQsMjAuMjQsMCwwLDAsMjQuNiw4LjcxTDI3LDMuNDJhMSwxLDAsMCwwLS4wNy0xQTEsMSwwLDAsMCwyNi4xMywySDkuOGExLDEsMCwwLDAtLjkxLDEuNDJsMi40NSw1LjMx''@;'; put 'put ''YTIwLjMzLDIwLjMzLDAsMCwwLTYuMjgsNy4xNWMtMi4xNSw0LTIuODIsOC44OS0zLDEyLjI4YTMuNiwzLjYsMCwwLDAsMSwyLjcxQTMuNzksMy43OSwwLDAsMCw1LjgsMzEuOTRIMTJWMzBINS43MmExLjY4LDEuNjgsMCwwLDEtMS4yMS0uNTIsMS42MiwxLjYyLDAsMCwxLS40NS0xLjIzYy4x''@;'; put 'put ''NC0yLjYxLjY5LTcuNTgsMi43Ni0xMS40NUExOCwxOCwwLDAsMSwxMy4wOCwxMGgxYTMwLjgxLDMwLjgxLDAsMCwwLTEuODcsMi45MiwyMi43OCwyMi43OCwwLDAsMC0xLjQ3LDMuMzRsMS4zNy45MmEyNCwyNCwwLDAsMSwxLjQ5LTMuNDdBMjkuMSwyOS4xLDAsMCwxLDE2LjA1LDEwaDFhMjEu''@;'; put 'put ''NDUsMjEuNDUsMCwwLDEsMS40MSw1LDIyLjU0LDIyLjU0LDAsMCwxLC4zMiwzLjg2bDEuNTgtMS4xMWEyNC4xNSwyNC4xNSwwLDAsMC0uMzItM0EyNC44MiwyNC44MiwwLDAsMCwxOC43NiwxMGguNzhsLjkxLTJIMTMuMjFMMTEuMzYsNEgyNC41N2wtMi41LDUuNDdhOS45Myw5LjkzLDAsMCwx''@;'; put 'put ''LDEuMjMuNzgsMTguNjMsMTguNjMsMCwwLDEsNS44Niw2LjU3QTI2LjU5LDI2LjU5LDAsMCwxLDMxLjczLDI2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgPHBhdGggZD0iTTI0Ljg5LDI2aDcuODZjLS42Ni04LjcxLTQuNDEtMTQuMTItOS4y''@;'; put 'put ''Mi0xNy4zMkwyNS43MiwzLjlhMSwxLDAsMCwwLS45MS0xLjRIMTEuMWExLDEsMCwwLDAtLjkxLDEuNGwxLjIsMi42SDIxLjUxbC0uOSwySDE4Ljc2QTI0LjksMjQuOSwwLDAsMSwyMCwxMy4xOWEyNC40OSwyNC40OSwwLDAsMSwuMzIsM2wtMS41OCwxLjExYTIyLjU0LDIyLjU0LDAsMCwwLS4z''@;'; put 'put ''Mi0zLjg2QTIxLjc0LDIxLjc0LDAsMCwwLDE3LDguNWgtMWEyOC4yMiwyOC4yMiwwLDAsMC0yLjQ4LDMuNywyMy45MSwyMy45MSwwLDAsMC0xLjQ5LDMuNDZsLTEuMzctLjkxYTIyLjc4LDIyLjc4LDAsMCwxLDEuNDctMy4zNEEzMC44MSwzMC44MSwwLDAsMSwxNC4wNSw4LjVIMTIuM2wuMDgu''@;'; put 'put ''MTdDNy4wOCwxMi4yLDMuMDUsMTguNCwzLjA1LDI4Ljc1QTEuNjUsMS42NSwwLDAsMCw0LjYxLDMwLjVoOEEyLjY3LDIuNjcsMCwwLDEsMTQuMjEsMjZhMi42NywyLjY3LDAsMCwxLS4zNy0xLjM0LDIuNywyLjcsMCwwLDEsMi43LTIuN2g2YTIuNywyLjcsMCwwLDEsMi43LDIuN0EyLjYzLDIu''@;'; put 'put ''NjMsMCwwLDEsMjQuODksMjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMS42LDI4LjVhMSwxLDAsMCwwLTEtMWgtNmExLDEsMCwwLDAsMCwyaDZBMSwxLDAsMCwwLDIxLjYsMjguNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTIiIC8+PHBhdGggZD0iTTIyLjU0LDIzLjVoLTZhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwzMS41SDE2YTEsMSwwLDAsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNMzIuNywzMS41aC03YTEsMSwwLDAsMCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzMuNywyNy41aC03YTEsMSwwLDAs''@;'; put 'put ''MCwwLDJoN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlUGVzbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEsMTMuMkgyNy44OUE2LjgxLDYuODEsMCwwLDAsMjgsMTJhNy44NSw3Ljg1LDAsMCwwLS4x''@;'; put 'put ''LTEuMTloMi45M2EuOC44LDAsMCwwLDAtMS42SDI3LjQ2QTguNDQsOC40NCwwLDAsMCwxOS41Nyw0SDExYTEsMSwwLDAsMC0xLDFWOS4ySDdhLjguOCwwLDAsMCwwLDEuNmgzdjIuNEg3YS44LjgsMCwwLDAsMCwxLjZoM1YzMWExLDEsMCwwLDAsMiwwVjIwaDcuNTdhOC40NSw4LjQ1LDAsMCww''@;'; put 'put ''LDcuODktNS4ySDMxYS44LjgsMCwwLDAsMC0xLjZaTTEyLDZoNy41N2E2LjUxLDYuNTEsMCwwLDEsNS42OCwzLjJIMTJabTAsNC44SDI1Ljg3YTUuNiw1LjYsMCwwLDEsMCwyLjRIMTJaTTE5LjU3LDE4SDEyVjE0LjhIMjUuMjVBNi41MSw2LjUxLDAsMCwxLDE5LjU3LDE4WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE0LjE4LDEzLjhWMTZoOS40NWE1LjI2LDUuMjYsMCwwLDAsLjA4LS44OSw0LjcyLDQuNzIsMCwwLDAtLjItMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0i''@;'; put 'put ''TTE0LjE4LDE5LjdoNS4xOWE0LjI4LDQuMjgsMCwwLDAsMy41LTEuOUgxNC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTE5LjM3LDEwLjUxSDE0LjE4VjEyaDguMzdBNC4yMSw0LjIxLDAsMCwwLDE5LjM3LDEwLjUxWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cGF0aCBkPSJNMTcuNjcsMmExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAsMCwxNy42NywyWm0xMC41LDE1LjhIMjUuN2E2Ljg3LDYuODcsMCwwLDEtNi4zMyw0LjRIMTQuMTh2Ni41NGExLjI1LDEuMjUsMCwxLDEtMi41LDBWMTcu''@;'; put 'put ''OEg4Ljc2YS45LjksMCwxLDEsMC0xLjhoMi45MlYxMy44SDguNzZhLjkuOSwwLDEsMSwwLTEuOGgyLjkyVjkuMjZBMS4yNSwxLjI1LDAsMCwxLDEyLjkzLDhoNi40NGE2Ljg0LDYuODQsMCwwLDEsNi4xNSw0aDIuNjVhLjkuOSwwLDAsMSwwLDEuOEgyNi4wOWE2LjkxLDYuOTEsMCwwLDEsLjEy''@;'; put 'put ''LDEuMyw2LjgsNi44LDAsMCwxLS4wNi45aDJhLjkuOSwwLDAsMSwwLDEuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVJ1YmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC41NywyMEE4LjIzLDguMjMsMCwwLDAsMjksMTJh''@;'; put 'put ''OC4yMyw4LjIzLDAsMCwwLTguNDMtOEgxMmExLDEsMCwwLDAtMSwxVjE4SDlhMSwxLDAsMCwwLDAsMmgydjJIOWExLDEsMCwwLDAsMCwyaDJ2N2ExLDEsMCwwLDAsMiwwVjI0aDlhMSwxLDAsMCwwLDAtMkgxM1YyMFpNMTMsNmg3LjU3QTYuMjQsNi4yNCwwLDAsMSwyNywxMmE2LjIzLDYuMjMs''@;'; put 'put ''MCwwLDEtNi40Myw2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIwLjc1LDkuMjVIMTV2OC44MWg1Ljc5YTQuNjYsNC42NiwwLDAsMCw0Ljg2LTQuNEE0LjY1LDQuNjUsMCwwLDAsMjAuNzUsOS4yNVoiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMi43NSwxOC41NkgxNVYyMmg4LjI5YTEsMSwwLDAsMSwwLDJIMTV2NWExLjI1LDEuMjUsMCwwLDEtMi41LDBWMjRIMTEuMjVhMSwxLDAsMCwxLDAtMmgx''@;'; put 'put ''LjIxVjIwLjU2SDExLjI1YTEuMjUsMS4yNSwwLDAsMSwwLTIuNWgxLjIxVjhhMS4yNSwxLjI1LDAsMCwxLDEuMjUtMS4yNWg3YTcuMTQsNy4xNCwwLDAsMSw3LjM2LDYuOUE3LjE1LDcuMTUsMCwwLDEsMjAuNzUsMjAuNTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0y''@;'; put 'put ''IiAvPicpLGUuQ2xyU2hhcGVFbXBsb3llZUdyb3VwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMuN0EzLjc0LDMuNzQsMCww''@;'; put 'put ''LDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwxNi4zMWE1LjcsNS43LDAsMSwxLDUuNzYtNS43QTUuNzQsNS43NCwwLDAsMSwxOC40MiwxNi4zMVptMC05LjRhMy43LDMuNywwLDEsMCwzLjc2LDMu''@;'; put 'put ''N0EzLjc0LDMuNzQsMCwwLDAsMTguNDIsNi45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMS45MSwxNy42NWEyMC42LDIwLjYsMCwwLDAtMTMsMkExLjc3LDEuNzcsMCwwLDAsOCwyMS4yNXYzLjU2YTEsMSwwLDAsMCwyLDBW''@;'; put 'put ''MjEuMzhhMTguOTIsMTguOTIsMCwwLDEsMTItMS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMywyMkgyNi4zVjIwLjUyYTEsMSwwLDAsMC0yLDBWMjJIMTdhMSwxLDAsMCwwLTEsMVYzM2ExLDEsMCwwLDAsMSwxSDMzYTEs''@;'; put 'put ''MSwwLDAsMCwxLTFWMjNBMSwxLDAsMCwwLDMzLDIyWk0zMiwzMkgxOFYyNGg2LjN2LjQxYTEsMSwwLDAsMCwyLDBWMjRIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cmVjdCB4PSIyMS44MSIgeT0iMjcuNDIiIHdpZHRoPSI1Ljk2IiBoZWln''@;'; put 'put ''aHQ9IjEuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgPHBhdGggZD0iTTEwLjg0LDEyLjI0YTE4LDE4LDAsMCwwLTcuOTUsMkExLjY3LDEuNjcsMCwwLDAsMiwxNS43MXYzLjFhMSwxLDAsMCwwLDIsMHYtMi45YTE2LDE2LDAsMCwxLDcuNTgtMS42''@;'; put 'put ''N0E3LjI4LDcuMjgsMCwwLDEsMTAuODQsMTIuMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzMuMTEsMTQuMjNhMTcuOCwxNy44LDAsMCwwLTcuMTItMiw3LjQ2LDcuNDYsMCwwLDEtLjczLDJBMTUuODksMTUuODksMCwwLDEs''@;'; put 'put ''MzIsMTUuOTF2Mi45YTEsMSwwLDEsMCwyLDB2LTMuMUExLjY3LDEuNjcsMCwwLDAsMzMuMTEsMTQuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cGF0aCBkPSJNMTAuNjYsMTAuNjFjMC0uMjMsMC0uNDUsMC0uNjdhMy4wNywzLjA3LDAsMCwx''@;'; put 'put ''LC41NC02LjExLDMuMTUsMy4xNSwwLDAsMSwyLjIuODksOC4xNiw4LjE2LDAsMCwxLDEuNy0xLjA4LDUuMTMsNS4xMywwLDAsMC05LDMuMjcsNS4xLDUuMSwwLDAsMCw0LjcsNUE3LjQyLDcuNDIsMCwwLDEsMTAuNjYsMTAuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtOCIvPlxuICA8cGF0aCBkPSJNMjQuNzcsMS44M2E1LjE3LDUuMTcsMCwwLDAtMy42OSwxLjU1LDcuODcsNy44NywwLDAsMSwxLjksMSwzLjE0LDMuMTQsMCwwLDEsNC45MywyLjUyLDMuMDksMy4wOSwwLDAsMS0xLjc5LDIuNzcsNy4xNCw3LjE0LDAsMCwxLC4wNi45Myw3Ljg4LDcu''@;'; put 'put ''ODgsMCwwLDEtLjEsMS4yLDUuMSw1LjEsMCwwLDAsMy44My00LjlBNS4xMiw1LjEyLDAsMCwwLDI0Ljc3LDEuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICBcbiAgPGVsbGlwc2UgY3g9IjE4IiBjeT0iMTEuMjgiIHJ4PSI0Ljc2IiByeT0iNC43''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xMC43OCwxMS43NWMuMTYsMCwuMzIsMCwuNDgsMCwwLS4xNSwwLS4yOCwwLS40M2E2LjcsNi43LDAsMCwxLDMuNzUtNiw0LjYyLDQuNjIsMCwxLDAtNC4yMSw2LjQ2WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjQuNzYsMTEuMjhjMCwuMTUsMCwuMjgsMCwuNDMuMTYsMCwuMzIsMCwuNDgsMEE0LjU4LDQuNTgsMCwxLDAsMjEsNS4yOSw2LjcsNi43LDAsMCwxLDI0Ljc2LDExLjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMjIuMjksMTYuNDVhMjEuNDUsMjEuNDUsMCwwLDEsNS43MSwyLDIuNzEsMi43MSwwLDAsMSwuNjguNTNIMzRWMTUuNTZhLjcyLjcyLDAsMCwwLS4zOC0uNjQsMTgsMTgsMCwwLDAtOC40LTIuMDVsLS42NiwwQTYuNjYsNi42NiwwLDAsMSwy''@;'; put 'put ''Mi4yOSwxNi40NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTYuNTMsMjAuOTJBMi43NiwyLjc2LDAsMCwxLDgsMTguNDdhMjEuNDUsMjEuNDUsMCwwLDEsNS43MS0yLDYuNjYsNi42NiwwLDAsMS0yLjI3LTMuNTVsLS42NiwwYTE4LDE4''@;'; put 'put ''LDAsMCwwLTguNCwyLjA1LjcyLjcyLDAsMCwwLS4zOC42NFYyMkg2LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICA8cmVjdCB4PSIyMS40NiIgeT0iMjYuNjkiIHdpZHRoPSI1Ljk2IiBoZWlnaHQ9IjEuNCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMzIuODEsMjEuMjZIMjUuOTR2LTFhMSwxLDAsMCwwLTIsMHYxSDIyVjE4LjQzQTIwLjE3LDIwLjE3LDAsMCwwLDE4LDE4YTE5LjI3LDE5LjI3LDAsMCwwLTkuMDYsMi4yMi43Ni43NiwwLDAsMC0uNDEuNjh2NS42MWg3LjExdjYuMDlhMSwx''@;'; put 'put ''LDAsMCwwLDEsMUgzMi44MWExLDEsMCwwLDAsMS0xVjIyLjI2QTEsMSwwLDAsMCwzMi44MSwyMS4yNlptLTEsMTAuMzZIMTcuNjRWMjMuMjZoNi4zdi45MWExLDEsMCwwLDAsMiwwdi0uOTFoNS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTciLz4nKSxlLkNsclNo''@;'; put 'put ''YXBlRW1wbG95ZWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LjQzLDE2LjY5YTcsNywwLDEsMSw3LTdBNyw3LDAsMCwxLDE2LjQzLDE2LjY5Wm0wLTExLjkyYTUsNSwwLDEsMCw1LDVBNSw1LDAsMCwwLDE2LjQzLDQuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIsMTcuOUEyNS40MSwyNS40MSwwLDAsMCw1Ljg4LDE5LjU3YTQuMDYsNC4wNiwwLDAsMC0yLjMxLDMuNjhWMjkuMmExLDEsMCwxLDAsMiwwVjIzLjI1YTIsMiwwLDAsMSwxLjE2LTEuODYsMjIuOTEsMjIuOTEsMCwwLDEsOS43LTIuMTEsMjMu''@;'; put 'put ''NTgsMjMuNTgsMCwwLDEsNS41Ny42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIyLjE0IiB5PSIyNy40MSIgd2lkdGg9IjYuMTQiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MyIvPlxuICA8cGF0aCBkPSJNMzMuMTcsMjEuNDdIMjh2Mmg0LjE3djguMzdIMThWMjMuNDdoNi4zdi40MmExLDEsMCwwLDAsMiwwVjIwYTEsMSwwLDAsMC0yLDB2MS40N0gxN2ExLDEsMCwwLDAtMSwxVjMyLjg0YTEsMSwwLDAsMCwxLDFIMzMuMTdhMSwxLDAsMCwwLDEtMVYyMi40N0ExLDEs''@;'; put 'put ''MCwwLDAsMzMuMTcsMjEuNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICBcbiAgPGNpcmNsZSBjeD0iMTYuODYiIGN5PSI5LjczIiByPSI2LjQ2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gIDxyZWN0IHg9IjIx''@;'; put 'put ''IiB5PSIyOCIgd2lkdGg9IjciIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xNSwzMHYzYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVYyM2ExLDEsMCwwLDAtMS0xSDI2VjIwLjUzYTEsMSwwLDAsMC0yLDBW''@;'; put 'put ''MjJIMjJWMTguNDJBMzIuMTIsMzIuMTIsMCwwLDAsMTYuODYsMThhMjYsMjYsMCwwLDAtMTEsMi4zOSwzLjI4LDMuMjgsMCwwLDAtMS44OCwzVjMwWm0xNywySDE3VjI0aDd2LjQyYTEsMSwwLDAsMCwyLDBWMjRoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4n''@;'; put 'put ''KSxlLkNsclNoYXBlRmFjdG9yeT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNDcsNy4zN2ExLDEsMCwwLDAtMSwuMDZMMjMsMTMuNzdWOC4yNmExLDEsMCwwLDAtMS42NC0uNzdMMTMuNDgsMTRIMTBWNC42MmExLDEsMCwwLDAtLjc4LTFsLTQtLjlhMSwxLDAsMCwwLS44NS4yQTEs''@;'; put 'put ''MSwwLDAsMCw0LDMuNzNWMTRIM2ExLDEsMCwwLDAtMSwxVjMxYTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY4LjI2QTEsMSwwLDAsMCwzMy40Nyw3LjM3Wk02LDVsMiwuNDRWMTRINlpNMzIsMzBINFYxNmg5LjgzYTEsMSwwLDAsMCwuNjQtLjIzTDIxLDEwLjM3djUuMjhhMSwxLDAs''@;'; put 'put ''MCwwLDEuNTYuODNMMzIsMTAuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI2IiB5PSIxNy45OSIgd2lkdGg9IjgiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJl''@;'; put 'put ''Y3QgeD0iNiIgeT0iMjEuOTkiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxyZWN0IHg9IjYiIHk9IjI1Ljk5IiB3aWR0aD0iOCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtNCIvPlxuICA8cmVjdCB4PSIxOSIgeT0iMTguOTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxyZWN0IHg9IjE5IiB5PSIyNC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgPHJlY3QgeD0iMjMiIHk9IjE4Ljk5IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIvPlxuICA8cmVjdCB4PSIyMyIgeT0iMjQuOTkiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; put 'put ''IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjI3IiB5PSIxOC45OSIgd2lkdGg9IjIiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgPHJlY3QgeD0iMjciIHk9IjI0Ljk5''@;'; put 'put ''IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0zMi40NSw4LjQ0LDIyLDE1LjNWOS41MWExLDEsMCwwLDAtMS42My0uNzhMMTQuMDcsMTRIMTBWNC4wNkw0LDIuNzFWMTRIMlYzMWExLDEs''@;'; put 'put ''MCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWOS4yN0ExLDEsMCwwLDAsMzIuNDUsOC40NFpNMTQsMjlINlYyN2g4Wm0wLTRINlYyM2g4Wm0wLTRINlYxOWg4Wm04LDhIMjBWMjZoMlptMC02SDIwVjIwaDJabTQsNkgyNFYyNmgyWm0wLTZIMjRWMjBoMlptNCw2SDI4VjI2aDJabTAtNkgyOFYy''@;'; put 'put ''MGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGUuQ29tbWVyY2VTaGFwZXM9e2NhbGN1bGF0b3I6ZS5DbHJTaGFwZUNhbGN1bGF0b3IsInBpZ2d5LWJhbmsiOmUuQ2xyU2hhcGVQaWdneUJhbmssInNob3BwaW5nLWJhZyI6ZS5DbHJTaGFwZVNob3BwaW5n''@;'; put 'put ''QmFnLCJzaG9wcGluZy1jYXJ0IjplLkNsclNoYXBlU2hvcHBpbmdDYXJ0LHdhbGxldDplLkNsclNoYXBlV2FsbGV0LHN0b3JlOmUuQ2xyU2hhcGVTdG9yZSxldXJvOmUuQ2xyU2hhcGVFdXJvLGRvbGxhcjplLkNsclNoYXBlRG9sbGFyLHBlc286ZS5DbHJTaGFwZVBlc28sImNyZWRpdC1jYXJk''@;'; put 'put ''IjplLkNsclNoYXBlQ3JlZGl0Q2FyZCxiYW5rOmUuQ2xyU2hhcGVCYW5rLCJkb2xsYXItYmlsbCI6ZS5DbHJTaGFwZURvbGxhckJpbGwsImUtY2hlY2siOmUuQ2xyU2hhcGVFQ2hlY2sscG91bmQ6ZS5DbHJTaGFwZVBvdW5kLHJ1cGVlOmUuQ2xyU2hhcGVSdXBlZSx3b246ZS5DbHJTaGFwZVdv''@;'; put 'put ''bix5ZW46ZS5DbHJTaGFwZVllbixiaXRjb2luOmUuQ2xyU2hhcGVCaXRjb2luLHJ1YmxlOmUuQ2xyU2hhcGVSdWJsZSwiY29pbi1iYWciOmUuQ2xyU2hhcGVDb2luQmFnLCJlbXBsb3llZS1ncm91cCI6ZS5DbHJTaGFwZUVtcGxveWVlR3JvdXAsZW1wbG95ZWU6ZS5DbHJTaGFwZUVtcGxveWVl''@;'; put 'put ''LGZhY3Rvcnk6ZS5DbHJTaGFwZUZhY3Rvcnl9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvbW1lcmNlU2hhcGVzLCJzYXZpbmdzIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29tbWVyY2VTaGFwZXNbInBpZ2d5LWJhbmsiXSkpLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5k''@;'; put 'put ''b3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChlLkNvbW1lcmNlU2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy9jb3JlLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGEpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Db3JlU2hhcGVzPWUuQ2xyU2hhcGVBcnJvdz1lLkNsclNoYXBlU3RlcEZvcndhcmQyPWUuQ2xyU2hhcGVFeWVIaWRlPWUuQ2xyU2hhcGVFeWU9ZS5DbHJTaGFwZUV2ZW50PWUuQ2xyU2hhcGVDYWxlbmRhcj1lLkNsclNoYXBl''@;'; put 'put ''QW5nbGVEb3VibGU9ZS5DbHJTaGFwZVZpZXdDb2x1bW5zPWUuQ2xyU2hhcGVTZWFyY2g9ZS5DbHJTaGFwZVZtQnVnPWUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPWUuQ2xyU2hhcGVGaWx0ZXJHcmlkPWUuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPWUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6''@;'; put 'put ''b250YWw9ZS5DbHJTaGFwZUNsb3VkPWUuQ2xyU2hhcGVJbWFnZT1lLkNsclNoYXBlQmVsbD1lLkNsclNoYXBlRm9sZGVyT3Blbj1lLkNsclNoYXBlRm9sZGVyPWUuQ2xyU2hhcGVBbmdsZT1lLkNsclNoYXBlVXNlcj1lLkNsclNoYXBlQmFycz1lLkNsclNoYXBlSGVscEluZm89ZS5DbHJTaGFw''@;'; put 'put ''ZVdhcm5pbmdTdGFuZGFyZD1lLkNsclNoYXBlRXJyb3JTdGFuZGFyZD1lLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkPWUuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9ZS5DbHJTaGFwZUluZm9DaXJjbGU9ZS5DbHJTaGFwZUNoZWNrQ2lyY2xlPWUuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT1lLkNs''@;'; put 'put ''clNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT1lLkNsclNoYXBlVGltZXM9ZS5DbHJTaGFwZUNoZWNrPWUuQ2xyU2hhcGVDb2c9ZS5DbHJTaGFwZUhvbWU9ZS5DbHJTaGFwZVVua25vd25TdGF0dXM9dm9pZCAwO3ZhciByPWEoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL2Rlc2NyaXB0b3It''@;'; put 'put ''Y29uZmlnLnRzIik7YT1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGUuQ2xyU2hhcGVVbmtub3duU3RhdHVzPSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIx''@;'; put 'put ''Ny41OCIgY3k9IjI2LjIzIiByPSIxLjQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI0LjcsMTNhNS4xOCw1LjE4LDAsMCwwLTIuMTYtMy41Niw3LjI2LDcuMjYsMCwwLDAtNS43MS0xLjA5QTExLjM0LDEx''@;'; put 'put ''LjM0LDAsMCwwLDEyLDEwLjQ0LDEsMSwwLDEsMCwxMy4yNiwxMmE5LjMyLDkuMzIsMCwwLDEsMy45NC0xLjcyLDUuMjksNS4yOSwwLDAsMSw0LjE2Ljc0LDMuMjEsMy4yMSwwLDAsMSwxLjM1LDIuMTljLjMzLDIuNjktMy4xOSwzLjc1LTUuMzIsNC4xNGwtLjgyLjE1djQuMzZhMSwxLDAsMCww''@;'; put 'put ''LDIsMFYxOS4xN0MyNC42MSwxNy43OSwyNC44OCwxNC40MSwyNC43LDEzWiIvPicpLGUuQ2xyU2hhcGVIb21lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMuNzEsMTcuMjlsLTE1LTE1YTEsMSwwLDAsMC0x''@;'; put 'put ''LjQxLDBsLTE1LDE1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTgsNC40MSwzMi4yOSwxOC43MWExLDEsMCwwLDAsMS40MS0xLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjgsMzJoLTVWMjJIMTNWMzJI''@;'; put 'put ''OFYxOEw2LDIwVjMyYTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NmwtMi0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywxOWExLDEsMCwwLDEtLjcxLS4yOUwxOCw0LjQx''@;'; put 'put ''LDMuNzEsMTguNzFhMSwxLDAsMCwxLTEuNDEtMS40MWwxNS0xNWExLDEsMCwwLDEsMS40MSwwbDE1LDE1QTEsMSwwLDAsMSwzMywxOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTgsNy43OSw2LDE5LjgzVjMy''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJoN1YyNGg2VjM0aDdhMiwyLDAsMCwwLDItMlYxOS43NloiLz4nKSxlLkNsclNoYXBlQ29nPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTguMSwxMWMtMy45LDAtNywzLjEtNyw3czMu''@;'; put 'put ''MSw3LDcsN2MzLjksMCw3LTMuMSw3LTdTMjIsMTEsMTguMSwxMXogTTE4LjEsMjNjLTIuOCwwLTUtMi4yLTUtNXMyLjItNSw1LTVjMi44LDAsNSwyLjIsNSw1UzIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMiIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjYtMS41bDEuNC0yLjZjMC4zLTAuNiwwLjItMS40LTAuMy0xLjlsLTIuNC0yLjRjLTAuNS0wLjUtMS4zLTAuNi0xLjktMC4zbC0yLjYsMS40bC0xLjUtMC42bC0wLjktMi44QzIxLDIuNSwyMC40LDIsMTkuNywyaC0zLjRjLTAu''@;'; put 'put ''NywwLTEuMywwLjUtMS40LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42''@;'; put 'put ''LDIsMTYuM3YzLjRjMCwwLjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMu''@;'; put 'put ''NGMwLjcsMCwxLjMtMC41LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNS42''@;'; put 'put ''LDMzLjUsMTQuOSwzMi44LDE0Ljd6IE0zMiwxOS40bC0zLjYsMS4xTDI4LjMsMjFjLTAuMywwLjctMC42LDEuNC0wLjksMi4xbC0wLjMsMC41bDEuOCwzLjNsLTIsMmwtMy4zLTEuOGwtMC41LDAuM2MtMC43LDAuNC0xLjQsMC43LTIuMSwwLjlsLTAuNSwwLjFMMTkuNCwzMmgtMi44bC0xLjEt''@;'; put 'put ''My42TDE1LDI4LjNjLTAuNy0wLjMtMS40LTAuNi0yLjEtMC45bC0wLjUtMC4zbC0zLjMsMS44bC0yLTJsMS44LTMuM2wtMC4zLTAuNWMtMC40LTAuNy0wLjctMS40LTAuOS0yLjFsLTAuMS0wLjVMNCwxOS40di0yLjhsMy40LTFsMC4yLTAuNWMwLjItMC44LDAuNS0xLjUsMC45LTIuMmwwLjMt''@;'; put 'put ''MC41TDcuMSw5LjFsMi0ybDMuMiwxLjhsMC41LTAuM2MwLjctMC40LDEuNC0wLjcsMi4yLTAuOWwwLjUtMC4yTDE2LjYsNGgyLjhsMS4xLDMuNUwyMSw3LjdjMC43LDAuMiwxLjQsMC41LDIuMSwwLjlsMC41LDAuM2wzLjMtMS44bDIsMmwtMS44LDMuM2wwLjMsMC41YzAuNCwwLjcsMC43LDEu''@;'; put 'put ''NCwwLjksMi4xbDAuMSwwLjVsMy42LDEuMVYxOS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjEsMThjMCwzLjksMy4xLDcsNyw3YzMuOSwwLDctMy4xLDctN3MtMy4x''@;'; put 'put ''LTctNy03QzE0LjIsMTEsMTEuMSwxNC4xLDExLjEsMTh6IE0yMy4xLDE4YzAsMi44LTIuMiw1LTUsNWMtMi44LDAtNS0yLjItNS01czIuMi01LDUtNUMyMC45LDEzLDIzLjEsMTUuMiwyMy4xLDE4eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjgsMTQuN0wzMCwxMy44bC0wLjEtMC4zYy0wLjgsMC0xLjYtMC4yLTIuNC0wLjRjMC4zLDAuNiwwLjYsMS4zLDAuOCwxLjlsMC4xLDAuNWwzLjYsMS4xdjIuOGwtMy42LDEuMUwyOC4zLDIxYy0wLjMsMC43LTAuNiwxLjQt''@;'; put 'put ''MC45LDIuMWwtMC4zLDAuNWwxLjgsMy4zbC0yLDJsLTMuMy0xLjhsLTAuNSwwLjNjLTAuNywwLjQtMS40LDAuNy0yLjEsMC45bC0wLjUsMC4xTDE5LjQsMzJoLTIuOGwtMS4xLTMuNkwxNSwyOC4zYy0wLjctMC4zLTEuNC0wLjYtMi4xLTAuOWwtMC41LTAuM2wtMy4zLDEuOGwtMi0ybDEuOC0z''@;'; put 'put ''LjNsLTAuMy0wLjVjLTAuNC0wLjctMC43LTEuNC0wLjktMi4xbC0wLjEtMC41TDQsMTkuNHYtMi44bDMuNC0xbDAuMi0wLjVjMC4yLTAuOCwwLjUtMS41LDAuOS0yLjJsMC4zLTAuNUw3LjEsOS4xbDItMmwzLjIsMS44bDAuNS0wLjNjMC43LTAuNCwxLjQtMC43LDIuMi0wLjlsMC41LTAuMkwx''@;'; put 'put ''Ni42LDRoMi44bDEuMSwzLjVMMjEsNy43YzAuNywwLjIsMS4zLDAuNSwxLjksMC44Yy0wLjMtMC44LTAuNC0xLjYtMC40LTIuNWwtMC40LTAuMmwtMC45LTIuOEMyMSwyLjUsMjAuNCwyLDE5LjcsMmgtMy40Yy0wLjcsMC0xLjMsMC41LTEuNCwxLjJMMTQsNmMtMC42LDAuMS0xLjEsMC4zLTEu''@;'; put 'put ''NiwwLjZMOS44LDUuMkM5LjIsNC45LDguNCw1LDcuOSw1LjVMNS41LDcuOUM1LDguNCw0LjksOS4yLDUuMiw5LjhsMS4zLDIuNWMtMC4yLDAuNS0wLjQsMS4xLTAuNiwxLjZsLTIuOCwwLjlDMi41LDE1LDIsMTUuNiwyLDE2LjN2My40YzAsMC43LDAuNSwxLjMsMS4yLDEuNUw2LDIyLjFsMC42''@;'; put 'put ''LDEuNWwtMS40LDIuNmMtMC4zLDAuNi0wLjIsMS40LDAuMywxLjlsMi40LDIuNGMwLjUsMC41LDEuMywwLjYsMS45LDAuM2wyLjYtMS40bDEuNSwwLjZsMC45LDIuOWMwLjIsMC42LDAuOCwxLjEsMS41LDEuMWgzLjRjMC43LDAsMS4zLTAuNSwxLjUtMS4xbDAuOS0yLjlsMS41LTAuNmwyLjYs''@;'; put 'put ''MS40YzAuNiwwLjMsMS40LDAuMiwxLjktMC4zbDIuNC0yLjRjMC41LTAuNSwwLjYtMS4zLDAuMy0xLjlsLTEuNC0yLjZsMC42LTEuNWwyLjktMC45YzAuNi0wLjIsMS4xLTAuOCwxLjEtMS41di0zLjRDMzQsMTUuNiwzMy41LDE0LjksMzIuOCwxNC43eiIvPlxuICAgICAgICAgICAgICAgIDxj''@;'; put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy43LDE1LjRoLTUuM3YwLjFsMy42LDEuMXYyLjhsLTMuNiwxLjFMMjguMywyMWMtMC4zLDAuNy0wLjYsMS40LTAuOSwyLjFsLTAuMywwLjVsMS44LDMuM2wtMiwybC0zLjMtMS44bC0wLjUsMC4zYy0wLjcsMC40LTEuNCwwLjctMi4xLDAuOWwtMC41''@;'; put 'put ''LDAuMUwxOS40LDMyaC0yLjhsLTEuMS0zLjZMMTUsMjguM2MtMC43LTAuMy0xLjQtMC42LTIuMS0wLjlsLTAuNS0wLjNsLTMuMywxLjhsLTItMmwxLjgtMy4zbC0wLjMtMC41Yy0wLjQtMC43LTAuNy0xLjQtMC45LTIuMWwtMC4xLTAuNUw0LDE5LjR2LTIuOGwzLjQtMWwwLjItMC41YzAuMi0w''@;'; put 'put ''LjgsMC41LTEuNSwwLjktMi4ybDAuMy0wLjVMNy4xLDkuMWwyLTJsMy4yLDEuOGwwLjUtMC4zYzAuNy0wLjQsMS40LTAuNywyLjItMC45bDAuNS0wLjJMMTYuNiw0aDIuOGwxLjEsMy40bDEuNC0yLjNsLTAuNi0yQzIxLDIuNCwyMC40LDIsMTkuNywyaC0zLjRjLTAuNywwLTEuMywwLjUtMS40''@;'; put 'put ''LDEuMkwxNCw2Yy0wLjYsMC4xLTEuMSwwLjMtMS42LDAuNkw5LjgsNS4yQzkuMiw0LjksOC40LDUsNy45LDUuNUw1LjUsNy45QzUsOC40LDQuOSw5LjIsNS4yLDkuOGwxLjMsMi41Yy0wLjIsMC41LTAuNCwxLjEtMC42LDEuNmwtMi44LDAuOUMyLjUsMTUsMiwxNS42LDIsMTYuM3YzLjRjMCww''@;'; put 'put ''LjcsMC41LDEuMywxLjIsMS41TDYsMjIuMWwwLjYsMS41bC0xLjQsMi42Yy0wLjMsMC42LTAuMiwxLjQsMC4zLDEuOWwyLjQsMi40YzAuNSwwLjUsMS4zLDAuNiwxLjksMC4zbDIuNi0xLjRsMS41LDAuNmwwLjksMi45YzAuMiwwLjYsMC44LDEuMSwxLjUsMS4xaDMuNGMwLjcsMCwxLjMtMC41''@;'; put 'put ''LDEuNS0xLjFsMC45LTIuOWwxLjUtMC42bDIuNiwxLjRjMC42LDAuMywxLjQsMC4yLDEuOS0wLjNsMi40LTIuNGMwLjUtMC41LDAuNi0xLjMsMC4zLTEuOWwtMS40LTIuNmwwLjYtMS41bDIuOS0wLjljMC42LTAuMiwxLjEtMC44LDEuMS0xLjV2LTMuNEMzNCwxNiwzMy45LDE1LjcsMzMuNywx''@;'; put 'put ''NS40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTguMSwyM2MtMi44LDAtNS0yLjItNS01czIuMi01LDUtNWMwLjIsMCwwLjUsMCwwLjcsMC4xYy0wLjItMC42LTAuMy0x''@;'; put 'put ''LjMtMC4yLTJoLTAuNWMtMy45LDAtNywzLjEtNyw3YzAsMy45LDMuMSw3LDcsN2MzLjksMCw3LTMuMSw3LTdjMC0wLjktMC4yLTEuOC0wLjUtMi42aC0yLjJjMC41LDAuOCwwLjcsMS42LDAuNywyLjVDMjMuMSwyMC44LDIwLjksMjMsMTguMSwyM3oiLz5cbiAgICAgICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwx''@;'; put 'put ''LjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNTcsMTUu''@;'; put 'put ''NzJsLTMuMzUtMWExMS42NSwxMS42NSwwLDAsMC0uOTUtMi4zM2wxLjY0LTMuMDdhLjYxLjYxLDAsMCwwLS4xMS0uNzJMMjcuNDEsNi4yYS42MS42MSwwLDAsMC0uNzItLjExTDIzLjY0LDcuNzJhMTEuNjIsMTEuNjIsMCwwLDAtMi4zNi0xbC0xLTMuMzFBLjYxLjYxLDAsMCwwLDE5LjY5LDNI''@;'; put 'put ''MTYuMzFhLjYxLjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCww''@;'; put 'put ''LDAtLjQzLjU4djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEs''@;'; put 'put ''My4zN2EuNjEuNjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDEx''@;'; put 'put ''LjYzLDAsMCwwLC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaTTE4LDIzLjVBNS41LDUuNSwwLDEsMSwyMy41LDE4LDUuNSw1LjUsMCwwLDEsMTgsMjMuNVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLjU3LDE1LjcybC0zLjM1LTFhMTIuMTIsMTIuMTIsMCwwLDAtLjQ3LTEuMzIsNy40OSw3LjQ5LDAsMCwxLTYuMTQtNi4xNiwxMS44MiwxMS44MiwwLDAsMC0xLjMzLS40OGwtMS0zLjMxQS42MS42''@;'; put 'put ''MSwwLDAsMCwxOS42OSwzSDE2LjMxYS42MS42MSwwLDAsMC0uNTguNDNsLTEsMy4zYTExLjYzLDExLjYzLDAsMCwwLTIuMzgsMWwtMy0xLjYyYS42MS42MSwwLDAsMC0uNzIuMTFMNi4yLDguNTlhLjYxLjYxLDAsMCwwLS4xMS43MmwxLjYyLDNhMTEuNjMsMTEuNjMsMCwwLDAtMSwyLjM3bC0z''@;'; put 'put ''LjMxLDFhLjYxLjYxLDAsMCwwLS40My41OHYzLjM4YS42MS42MSwwLDAsMCwuNDMuNThsMy4zMywxYTExLjYyLDExLjYyLDAsMCwwLDEsMi4zM0w2LjA5LDI2LjY5YS42MS42MSwwLDAsMCwuMTEuNzJMOC41OSwyOS44YS42MS42MSwwLDAsMCwuNzIuMTFsMy4wOS0xLjY1YTExLjY1LDExLjY1''@;'; put 'put ''LDAsMCwwLDIuMy45NGwxLDMuMzdhLjYxLjYxLDAsMCwwLC41OC40M2gzLjM4YS42MS42MSwwLDAsMCwuNTgtLjQzbDEtMy4zOGExMS42MywxMS42MywwLDAsMCwyLjI4LS45NGwzLjExLDEuNjZhLjYxLjYxLDAsMCwwLC43Mi0uMTFsMi4zOS0yLjM5YS42MS42MSwwLDAsMCwuMTEtLjcybC0x''@;'; put 'put ''LjY2LTMuMWExMS42MywxMS42MywwLDAsMCwuOTUtMi4yOWwzLjM3LTFhLjYxLjYxLDAsMCwwLC40My0uNThWMTYuMzFBLjYxLjYxLDAsMCwwLDMyLjU3LDE1LjcyWk0xOCwyMy41QTUuNSw1LjUsMCwxLDEsMjMuNSwxOCw1LjUsNS41LDAsMCwxLDE4LDIzLjVaIi8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMi41NywxNS43MiwzMS41LDE1LjRIMjIuODVBNS41LDUuNSwwLDEsMSwxOCwxMi41YTUuNTMsNS41MywwLDAsMSwuNjUsMEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwyLjA5LTMuNjItLjg2LTIuODNBLjYxLjYxLDAsMCwwLDE5LjY5LDNIMTYuMzFhLjYx''@;'; put 'put ''LjYxLDAsMCwwLS41OC40M2wtMSwzLjNhMTEuNjMsMTEuNjMsMCwwLDAtMi4zOCwxbC0zLTEuNjJhLjYxLjYxLDAsMCwwLS43Mi4xMUw2LjIsOC41OWEuNjEuNjEsMCwwLDAtLjExLjcybDEuNjIsM2ExMS42MywxMS42MywwLDAsMC0xLDIuMzdsLTMuMzEsMWEuNjEuNjEsMCwwLDAtLjQzLjU4''@;'; put 'put ''djMuMzhhLjYxLjYxLDAsMCwwLC40My41OGwzLjMzLDFhMTEuNjIsMTEuNjIsMCwwLDAsMSwyLjMzTDYuMDksMjYuNjlhLjYxLjYxLDAsMCwwLC4xMS43Mkw4LjU5LDI5LjhhLjYxLjYxLDAsMCwwLC43Mi4xMWwzLjA5LTEuNjVhMTEuNjUsMTEuNjUsMCwwLDAsMi4zLjk0bDEsMy4zN2EuNjEu''@;'; put 'put ''NjEsMCwwLDAsLjU4LjQzaDMuMzhhLjYxLjYxLDAsMCwwLC41OC0uNDNsMS0zLjM4YTExLjYzLDExLjYzLDAsMCwwLDIuMjgtLjk0bDMuMTEsMS42NmEuNjEuNjEsMCwwLDAsLjcyLS4xMWwyLjM5LTIuMzlhLjYxLjYxLDAsMCwwLC4xMS0uNzJsLTEuNjYtMy4xYTExLjYzLDExLjYzLDAsMCww''@;'; put 'put ''LC45NS0yLjI5bDMuMzctMWEuNjEuNjEsMCwwLDAsLjQzLS41OFYxNi4zMUEuNjEuNjEsMCwwLDAsMzIuNTcsMTUuNzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIg''@;'; put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVDaGVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTEzLjcyLDI3LjY5LDMuMjksMTcuMjdhMSwxLDAsMCwxLDEuNDEtMS40MWw5LDlMMzEuMjksNy4yOWExLDEsMCwwLDEsMS40MSwxLjQxWiIvPicpLGUuQ2xyU2hhcGVUaW1lcz0oMCxhLmNsckljb25TVkcpKCc8''@;'; put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE5LjQxLDE4bDguMjktOC4yOWExLDEsMCwwLDAtMS40MS0xLjQxTDE4LDE2LjU5LDkuNzEsOC4yOUExLDEsMCwwLDAsOC4yOSw5LjcxTDE2LjU5LDE4LDguMjksMjYuMjlhMSwxLDAsMSwwLDEuNDEs''@;'; put 'put ''MS40MUwxOCwxOS40MWw4LjI5LDguMjlhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz4nKSxlLkNsclNoYXBlRXhjbGFtYXRpb25UcmlhbmdsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LDIxLjMyYTEuMywx''@;'; put 'put ''LjMsMCwwLDAsMS4zLTEuM1YxNGExLjMsMS4zLDAsMSwwLTIuNiwwdjZBMS4zLDEuMywwLDAsMCwxOCwyMS4zMloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBjeD0iMTcuOTUiIGN5PSIyNC4yNyIgcj0iMS41''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMC4zMywyNS41NCwyMC41OSw3LjZhMywzLDAsMCwwLTUuMjcsMEw1LjU3LDI1LjU0QTMsMywwLDAsMCw4LjIxLDMwSDI3LjY5YTMsMywwLDAsMCwyLjY0LTQu''@;'; put 'put ''NDNabS0xLjc4LDEuOTRhMSwxLDAsMCwxLS44Ni40OUg4LjIxYTEsMSwwLDAsMS0uODgtMS40OEwxNy4wNyw4LjU1YTEsMSwwLDAsMSwxLjc2LDBsOS43NCwxNy45NEExLDEsMCwwLDEsMjguNTUsMjcuNDhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjMzLDI1LjU0LDIwLjU5LDcuNmEzLDMsMCwwLDAtNS4yNywwTDUuNTcsMjUuNTRBMywzLDAsMCwwLDguMjEsMzBIMjcuNjlhMywzLDAsMCwwLDIuNjQtNC40M1pNMTYuNDYsMTIuNzRhMS40OSwxLjQ5LDAsMCwxLDMsMHY2Ljg5YTEuNDksMS40OSww''@;'; put 'put ''LDEsMS0zLDBaTTE4LDI2LjI1YTEuNzIsMS43MiwwLDEsMSwxLjcyLTEuNzJBMS43MiwxLjcyLDAsMCwxLDE4LDI2LjI1WiIvPicpLGUuQ2xyU2hhcGVFeGNsYW1hdGlvbkNpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0i''@;'; put 'put ''TTE4LDIwLjA3YTEuMywxLjMsMCwwLDEtMS4zLTEuM3YtNmExLjMsMS4zLDAsMSwxLDIuNiwwdjZBMS4zLDEuMywwLDAsMSwxOCwyMC4wN1oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTcuOTUiIGN5''@;'; put 'put ''PSIyMy4wMiIgcj0iMS41Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptLTEuNDksNmExLjQ5LDEuNDksMCwwLDEsMywwdjYuODlhMS40OSwx''@;'; put 'put ''LjQ5LDAsMSwxLTMsMFpNMTgsMjUuNWExLjcyLDEuNzIsMCwxLDEsMS43Mi0xLjcyQTEuNzIsMS43MiwwLDAsMSwxOCwyNS41WiIvPicpLGUuQ2xyU2hhcGVDaGVja0NpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEsMSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE2''@;'; put 'put ''LjM0LDIzLjc0bC01LTVhMSwxLDAsMCwxLDEuNDEtMS40MWwzLjU5LDMuNTksNi43OC02Ljc4YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDE4QTEyLDEyLDAsMSwxLDE4''@;'; put 'put ''LDYsMTIsMTIsMCwwLDEsMzAsMThabS00Ljc3LTIuMTZhMS40LDEuNCwwLDAsMC0yLTJsLTYuNzcsNi43N0wxMywxNy4xNmExLjQsMS40LDAsMCwwLTIsMmw1LjQ1LDUuNDVaIi8+JyksZS5DbHJTaGFwZUluZm9DaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgIGN4PSIxNy45MyIgY3k9IjExLjkiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAgZD0iTTIxLDIzSDE5VjE1SDE2YTEsMSwwLDAsMCwwLDJoMXY2''@;'; put 'put ''SDE1YTEsMSwwLDEsMCwwLDJoNmExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAgZD0iTTE4LDZBMTIsMTIsMCwxLDAsMzAsMTgsMTIsMTIsMCwwLDAsMTgsNlptMCwyMkExMCwxMCwwLDEs''@;'; put 'put ''MSwyOCwxOCwxMCwxMCwwLDAsMSwxOCwyOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsNkExMiwxMiwwLDEsMCwzMCwxOCwxMiwxMiwwLDAsMCwxOCw2Wm0tMiw1LjE1YTIsMiwwLDEsMSwyLDJBMiwyLDAs''@;'; put 'put ''MCwxLDE1LjksMTEuMTVaTTIzLDI0YTEsMSwwLDAsMS0xLDFIMTVhMSwxLDAsMSwxLDAtMmgyVjE3SDE2YTEsMSwwLDAsMSwwLTJoNHY4aDJBMSwxLDAsMCwxLDIzLDI0WiIvPicpLGUuQ2xyU2hhcGVJbmZvU3RhbmRhcmQ9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjE3Ljk3IiBjeT0iMTAuNDUiIHI9IjEuNCIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjEsMjVIMTlWMTQuMUgxNmExLDEsMCwwLDAsMCwyaDFW''@;'; put 'put ''MjVIMTVhMSwxLDAsMCwwLDAsMmg2YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCww''@;'; put 'put ''LDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWm0tLjEsNS4yOGEyLDIsMCwxLDEtMiwy''@;'; put 'put ''QTIsMiwwLDAsMSwxNy45LDcuMzhabTMuNiwyMS4yNWgtN2ExLjQsMS40LDAsMSwxLDAtMi44aDIuMXYtOS4ySDE1YTEuNCwxLjQsMCwxLDEsMC0yLjhoNC40djEyaDIuMWExLjQsMS40LDAsMSwxLDAsMi44WiIvPicpLGUuQ2xyU2hhcGVTdWNjZXNzU3RhbmRhcmQ9KDAsYS5jbHJJY29uU1ZH''@;'; put 'put ''KSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOCwxMi4xYTEsMSwwLDAsMC0xLjQxLDBMMTUuNDksMjMuMTVsLTYtNkExLDEsMCwwLDAsOCwxOC41M0wxNS40OSwyNiwyOCwxMy41MkExLDEsMCwwLDAsMjgsMTIuMVoiLz5cbiAgICAgICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk0yOC40NSwxMi42MywxNS4zMSwyNS43Niw3LjU1LDE4YTEuNCwxLjQsMCwwLDEsMi0ybDUuNzgsNS43OEwyNi40NywxMC42NWExLjQs''@;'; put 'put ''MS40LDAsMSwxLDIsMloiLz4nKSxlLkNsclNoYXBlRXJyb3JTdGFuZGFyZD0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBjeD0iMTgiIGN5PSIyNi4wNiIgcj0iMS4zMyIvPlxuICAgICAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjIuNjFhMSwxLDAsMCwxLTEtMXYtMTJhMSwxLDAsMSwxLDIsMHYxMkExLDEsMCwwLDEsMTgsMjIuNjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwzNEExNiwxNiwwLDEsMSwzNCwxOCwxNiwxNiwwLDAsMSwxOCwzNFpNMTgsNEExNCwxNCwwLDEsMCwzMiwxOCwxNCwxNCwwLDAsMCwxOCw0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTEiIGQ9Ik0xOCwyLjFhMTYsMTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTgsMi4xWk0xNi42LDguOGExLjQsMS40LDAsMCwxLDIuOCwwdjEyYTEuNCwxLjQsMCwwLDEtMi44LDBaTTE4LDI4LjZhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjguNloiLz4nKSxl''@;'; put 'put ''LkNsclNoYXBlV2FybmluZ1N0YW5kYXJkPSgwLGEuY2xySWNvblNWRykoJzxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGN4PSIxOCIgY3k9IjI2LjA2IiByPSIxLjMzIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyMi42MWExLDEsMCwwLDEtMS0xdi0xMmExLDEsMCwxLDEsMiwwdjEyQTEsMSwwLDAsMSwxOCwyMi42MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0i''@;'; put 'put ''TTE1LjA2MjA3ODIsMS42ODExOTYgQzE1LjYyOTg4MTksMC42NDkyNjYzNTUgMTYuNzEwOTA5MSwwLjAxMDIyMTkzOTYgMTcuODg1LDAuMDEwMjIxOTM5NiBDMTkuMDU5MDkwOSwwLjAxMDIyMTkzOTYgMjAuMTQwMTE4MSwwLjY0OTI2NjM1NSAyMC43MDg2NDMzLDEuNjgyNTIxMjkgTDM0LjU5''@;'; put 'put ''ODY0NCwyNy4yNDI1MjI1IEMzNS4xNDA3NzQ2LDI4LjI0MDEzOTcgMzUuMTE3NDM0NSwyOS40NDk1MzczIDM0LjUzNzIxNjEsMzAuNDI1NDk0MyBDMzMuOTU2OTk3NywzMS40MDE0NTE0IDMyLjkwNTY3MSwzMS45OTk2OTg0IDMxLjc3LDMyIEw0LjAyMjM5MzIzLDMxLjk5OTc0OTIgQzIuODc0''@;'; put 'put ''MDkwMDksMzIuMDI1NDY5OSAxLjc5OTAyODQzLDMxLjQzNzU3NTMgMS4yMDEwNjMzNSwzMC40NTY5MTI2IEMwLjYwMzA5ODI2NSwyOS40NzYyNDk5IDAuNTcyNzc3ODk5LDI4LjI1MTMxNzkgMS4xMjIwNzgxOCwyNy4yNDExOTYgTDE1LjA2MjA3ODIsMS42ODExOTYgWiBNMi44Nzg1MDc2Nywy''@;'; put 'put ''OC4xOTc3MjgyIEMyLjY3MDYwOTY2LDI4LjU4MDAzNzYgMi42ODIwOTc1LDI5LjA0NDE0MjMgMi45MDg2NTU3LDI5LjQxNTY5NzcgQzMuMTM1MjEzOSwyOS43ODcyNTMyIDMuNTQyNTM1NCwzMC4wMDk5OTU5IDQsMzAgTDMxLjc2OTczNDQsMzAgQzMyLjE5OTkxOTEsMjkuOTk5ODg1OCAzMi41''@;'; put 'put ''OTgyNDc4LDI5Ljc3MzIyMDggMzIuODE4MDgyMSwyOS40MDM0NDgyIEMzMy4wMzc5MTY0LDI5LjAzMzY3NTcgMzMuMDQ2NzU5NSwyOC41NzU0NTY3IDMyLjg0MTM1NjcsMjguMTk3NDc4NyBMMTguOTUzODczOSwyLjY0MjA4MTk1IEMxOC43Mzk0MjM2LDIuMjUyMzQ0MzYgMTguMzI5ODQxOSwy''@;'; put 'put ''LjAxMDIyMTk0IDE3Ljg4NSwyLjAxMDIyMTk0IEMxNy40NDA2ODg5LDIuMDEwMjIxOTQgMTcuMDMxNTUzOCwyLjI1MTc2NjkyIDE2LjgxNjg5NDYsMi42NDA2ODc1MyBMMi44Nzg1MDc2NywyOC4xOTc3MjgyIFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuNiwyOS4yMSwyMC43MSwzLjY1YTMuMjIsMy4yMiwwLDAsMC01LjY2LDBMMS4xNywyOS4yMUEzLjIyLDMuMjIsMCwwLDAsNCwzNEgzMS43N2EzLjIyLDMuMjIsMCwwLDAsMi44My00Ljc1Wk0xNi42LDEwYTEuNCwxLjQsMCwwLDEsMi44LDB2MTJh''@;'; put 'put ''MS40LDEuNCwwLDAsMS0yLjgsMFpNMTgsMjkuODVhMS44LDEuOCwwLDEsMSwxLjgtMS44QTEuOCwxLjgsMCwwLDEsMTgsMjkuODVaIi8+JyksZS5DbHJTaGFwZUhlbHBJbmZvPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4zOSwyNS40NWExLDEsMCwwLDAtMS4zOC4yOWMtMS40MSwy''@;'; put 'put ''LjE2LTQsNC44MS02LjMxLDUuN3MtNC4xMi41Ny00Ljg0LDBjLS4zMS0uMjctMS4xMi0xLS40My0zLjQ5LjQ2LTEuNjYsMy4zMi05LjQ4LDQtMTEuMzhsLTIuMTguMjhjLS42OSwxLjg2LTMuMjksOC44NC0zLjc2LDEwLjU4LS42OCwyLjQ5LS4zNCw0LjMsMS4wOSw1LjU2QTUuNTksNS41OSww''@;'; put 'put ''LDAsMCwxNSwzNGE5LjUzLDkuNTMsMCwwLDAsMy40NS0uN2MyLjc5LTEuMDksNS43Mi00LjEyLDcuMjYtNi40N0ExLDEsMCwwLDAsMjUuMzksMjUuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS4zLDEx''@;'; put 'put ''YTQuNSw0LjUsMCwxLDAtNC41LTQuNUE0LjUsNC41LDAsMCwwLDE5LjMsMTFabTAtN2EyLjUsMi41LDAsMSwxLTIuNSwyLjVBMi41LDIuNSwwLDAsMSwxOS4zLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0x''@;'; put 'put ''MS44MSwxNWMuMDYsMCw2LjI3LS44Miw3LjczLTEsLjY1LS4xLDEuMTQsMCwxLjMuMTVzLjIxLjgtLjA3LDEuNjhjLS42MSwxLjg2LTMuNjksMTEtNC41OSwxMy43MWE4LDgsMCwwLDAsMS4yOS0uMzgsNy4zMiw3LjMyLDAsMCwwLDEuMTUtLjZDMTkuODUsMjUsMjIuMTUsMTguMSwyMi42Nywx''@;'; put 'put ''Ni41MnMuMzktMi43OC0uMy0zLjZhMy4xNiwzLjE2LDAsMCwwLTMuMDgtLjgzYy0xLjQzLjE1LTcuNDcuOTQtNy43MywxYTEsMSwwLDAsMCwuMjYsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjAuNzUi''@;'; put 'put ''IGN5PSI2IiByPSI0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0Ljg0LDI2LjIzYTEsMSwwLDAsMC0xLjQuMjksMTYuNiwxNi42LDAsMCwxLTMuNTEsMy43N2MtLjMzLjI1LTEuNTYsMS4yLTIuMDgsMS0uMzYtLjEx''@;'; put 'put ''LS4xNS0uODItLjA4LTEuMTJsLjUzLTEuNTdjLjIyLS42NCw0LjA1LTEyLDQuNDctMTMuMy42Mi0xLjkuMzUtMy43Ny0yLjQ4LTMuMzItLjc3LjA4LTguNTgsMS4wOS04LjcyLDEuMWExLDEsMCwwLDAsLjEzLDJzMy0uMzksMy4zMy0uNDJhLjg4Ljg4LDAsMCwxLC44NS40NCwyLjQ3LDIuNDcs''@;'; put 'put ''MCwwLDEtLjA3LDEuNzFjLS4yNiwxLTQuMzcsMTIuNTgtNC41LDEzLjI1YTIuNzgsMi43OCwwLDAsMCwxLjE4LDMsNSw1LDAsMCwwLDMuMDguODNoMGE4LjUzLDguNTMsMCwwLDAsMy4wOS0uNjJjMi40OS0xLDUuMDktMy42Niw2LjQ2LTUuNzVBMSwxLDAsMCwwLDI0Ljg0LDI2LjIzWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmFycz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDI5SDRhMSwxLDAsMCwxLDAtMkgzMmExLDEsMCwwLDEsMCwy''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTlINGExLDEsMCwwLDEsMC0ySDMyYTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0zMiw5SDRBMSwxLDAsMCwxLDQsN0gzMmExLDEsMCwwLDEsMCwyWiIvPicpLGUuQ2xyU2hhcGVVc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwxLDAtNy03QTcsNywwLDAsMCwxOCwxN1pNMTgsNWE1LDUsMCwxLDEtNSw1''@;'; put 'put ''QTUsNSwwLDAsMSwxOCw1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNDcsMjQuMzdhMTcuMTYsMTcuMTYsMCwwLDAtMjQuOTMsMEEyLDIsMCwwLDAsNSwyNS43NFYzMWEyLDIsMCwwLDAsMiwySDI5YTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWMjUuNzRBMiwyLDAsMCwwLDMwLjQ3LDI0LjM3Wk0yOSwzMUg3VjI1LjczYTE1LjE3LDE1LjE3LDAsMCwxLDIyLDBoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjQ3LDI0LjM3YTE3''@;'; put 'put ''LjE2LDE3LjE2LDAsMCwwLTI0LjkzLDBBMiwyLDAsMCwwLDUsMjUuNzRWMzFhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjI1Ljc0QTIsMiwwLDAsMCwzMC40NywyNC4zN1pNMjksMzFIN1YyNS43M2ExNS4xNywxNS4xNywwLDAsMSwyMiwwaDBaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMjAsMTQuNmE1LDUsMCwxLDEsMS4yNC04LjQybDEtMS43NkE3LDcsMCwxLDAsMTgsMTda''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFM''@;'; put 'put ''MjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC40NywyNC4zN2ExNy4xNiwxNy4xNiww''@;'; put 'put ''LDAsMC0yNC45MywwQTIsMiwwLDAsMCw1LDI1Ljc0VjMxYTIsMiwwLDAsMCwyLDJIMjlhMiwyLDAsMCwwLDItMlYyNS43NEEyLDIsMCwwLDAsMzAuNDcsMjQuMzdaTTI5LDMxSDdWMjUuNzNhMTUuMTcsMTUuMTcsMCwwLDEsMjIsMGgwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNywwLDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3Wk0xOCw1YTUsNSwwLDEsMS01LDVBNSw1LDAsMCwxLDE4LDVaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFk''@;'; put 'put ''Z2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQuNTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0''@;'; put 'put ''LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTAiIHI9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuNjEsMjQu''@;'; put 'put ''NTJhMTcuMTYsMTcuMTYsMCwwLDAtMjUuMjIsMCwxLjUxLDEuNTEsMCwwLDAtLjM5LDF2NkExLjUsMS41LDAsMCwwLDYuNSwzM2gyM0ExLjUsMS41LDAsMCwwLDMxLDMxLjV2LTZBMS41MSwxLjUxLDAsMCwwLDMwLjYxLDI0LjUyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxN2E3LDcsMCwwLDAsNC40NS0xLjZoLS4yMkEzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwzLjE2LTUuNDdBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoi''@;'; put 'put ''ICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjYxLDI0LjUyYTE3LjE2LDE3LjE2LDAsMCwwLTI1LjIyLDAsMS41MSwxLjUxLDAsMCwwLS4zOSwxdjZBMS41LDEu''@;'; put 'put ''NSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41di02QTEuNTEsMS41MSwwLDAsMCwzMC42MSwyNC41MloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE3YTcsNyww''@;'; put 'put ''LDAsMCw2Ljg1LTUuNTYsNy40LDcuNCwwLDAsMS0yLjI0LTYuNjlBNyw3LDAsMSwwLDE4LDE3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlQW5nbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yOS41MiwyMi41Miwx''@;'; put 'put ''OCwxMC42LDYuNDgsMjIuNTJhMS43LDEuNywwLDAsMCwyLjQ1LDIuMzZMMTgsMTUuNDlsOS4wOCw5LjM5YTEuNywxLjcsMCwwLDAsMi40NS0yLjM2WiIvPicpLGUuQ2xyU2hhcGVGb2xkZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVptMCwyMEg2VjEzaDcuMzFhMiwyLDAsMCwwLDItMkg2VjdoNi40OWwyLjYx''@;'; put 'put ''LDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEs''@;'; put 'put ''My41OWExLDEsMCwwLDAsLjgxLjQxaDguNTFhNy41LDcuNSwwLDAsMS0xLjI5LTJIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMCwxNS40VjI5SDZWMTNoNy4zMWEyLDIsMCwwLDAsMi0ySDZWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4xMSw1''@;'; put 'put ''LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJj''@;'; put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMCw5SDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5YTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzAsOVpNNiwxMVY3aDYuNDlsMi43Miw0WiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yMywxNS40QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2''@;'; put 'put ''QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFs''@;'; put 'put ''ZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; put 'put ''bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwxMy41QTcuNSw3LjUsMCwwLDEsMjMuMTMsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJB''@;'; put 'put ''Ny40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaTTYsMTFWN2g2LjQ5bDIuNzIsNFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+Jyks''@;'; put 'put ''ZS5DbHJTaGFwZUZvbGRlck9wZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEuNzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEs''@;'; put 'put ''MCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzJhMiwyLDAsMCwwLTItMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAs''@;'; put 'put ''MS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45bDMuODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzUuMzIsMTMuNzRBMS43MSwxLjcxLDAsMCwwLDMzLjg3LDEzSDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDguNTJhNy40OSw3LjQ5LDAsMCwx''@;'; put 'put ''LTEuMjktMkgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xQTEuNjQsMS42NCwwLDAsMCwzNS4zMiwxMy43NFpNMjkuNTUsMjlINi45bDMu''@;'; put 'put ''ODgtMTMuODFhLjY2LjY2LDAsMCwxLC4zOC0uMjRIMzMuNDlaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLS4zTDI5LjU1LDI5SDYuOWwzLjg4LTEzLjgxYS42Ni42NiwwLDAsMSwuMzgtLjI0aDkuNDJBMy42NywzLjY3LDAsMCwxLDE5''@;'; put 'put ''LDEzLjU2YTMuNjMsMy42MywwLDAsMS0uMjYtLjU2SDExLjE3YTIuNTksMi41OSwwLDAsMC0yLjI1LDEuNTIsMSwxLDAsMCwwLDAsLjE0TDYsMjVWN2g2LjQ5bDIuNjEsMy41OWExLDEsMCwwLDAsLjgxLjQxaDIuNzNBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMTkuNTYsOUgxNi40MkwxNC4x''@;'; put 'put ''MSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOS42OUExLjM3LDEuMzcsMCwwLDAsNS40MSwzMUgzMC4zNGExLDEsMCwwLDAsMS0uNzJsNC4xOS0xNS4xYTEuNjgsMS42OCwwLDAsMCwuMDctLjMyQTMuNjcsMy42NywwLDAsMSwzMy42OCwxNS40WiIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4''@;'; put 'put ''LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTM1LjMyLDEzLjc0QTEuNzEsMS43MSwwLDAsMCwzMy44NywxM0gxMS4xN2EyLjU5LDIuNTks''@;'; put 'put ''MCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MUgzMmEyLDIsMCwwLDAtMi0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQx''@;'; put 'put ''LDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMy42OCwxNS40SDIy''@;'; put 'put ''LjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41NkgxMS4xN2EyLjU5LDIuNTksMCwwLDAtMi4yNSwxLjUyLDEsMSwwLDAsMCwwLC4xNEw2LDI1VjdoNi40OWwyLjYxLDMuNTlhMSwxLDAsMCwwLC44MS40MWgyLjczQTMuNjYsMy42NiwwLDAsMSwxOSw5''@;'; put 'put ''Ljg5TDE5LjU2LDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjkuNjlBMS4zNywxLjM3LDAsMCwwLDUuNDEsMzFIMzAuMzRhMSwxLDAsMCwwLDEtLjcybDQuMTktMTUuMWExLjY4LDEuNjgsMCwwLDAsLjA3LS4zMkEzLjY3LDMuNjcsMCwwLDEs''@;'; put 'put ''MzMuNjgsMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4y''@;'; put 'put ''OCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zNS4zMiwxMy43NEExLjcxLDEu''@;'; put 'put ''NzEsMCwwLDAsMzMuODcsMTNIMTEuMTdhMi41OSwyLjU5LDAsMCwwLTIuMjUsMS41MiwxLDEsMCwwLDAsMCwuMTRMNiwyNVY3aDYuNDlsMi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFoOC41MmE3LjQ5LDcuNDksMCwwLDEtMS4zMS0ySDE2LjQyTDE0LjExLDUuODJBMiwyLDAsMCwwLDEyLjQ5''@;'; put 'put ''LDVINkEyLDIsMCwwLDAsNCw3VjI5LjY5QTEuMzcsMS4zNywwLDAsMCw1LjQxLDMxSDMwLjM0YTEsMSwwLDAsMCwxLS43Mmw0LjE5LTE1LjFBMS42NCwxLjY0LDAsMCwwLDM1LjMyLDEzLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBlQmVsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjUxLDI3LjgzQTE0''@;'; put 'put ''LjQsMTQuNCwwLDAsMSwzMCwyNC45YTEyLjYzLDEyLjYzLDAsMCwxLTEuMzUtNC44MVYxNS4xNUExMC44MSwxMC44MSwwLDAsMCwxOS4yMSw0LjRWMy4xMWExLjMzLDEuMzMsMCwxLDAtMi42NywwVjQuNDJBMTAuODEsMTAuODEsMCwwLDAsNy4yMSwxNS4xNXY0Ljk0QTEyLjYzLDEyLjYzLDAs''@;'; put 'put ''MCwxLDUuODYsMjQuOWExNC40LDE0LjQsMCwwLDEtMi40NywyLjkzLDEsMSwwLDAsMC0uMzQuNzV2MS4zNmExLDEsMCwwLDAsMSwxaDI3LjhhMSwxLDAsMCwwLDEtMVYyOC41OEExLDEsMCwwLDAsMzIuNTEsMjcuODNaTTUuMTMsMjguOTRhMTYuMTcsMTYuMTcsMCwwLDAsMi40NC0zLDE0LjI0''@;'; put 'put ''LDE0LjI0LDAsMCwwLDEuNjUtNS44NVYxNS4xNWE4Ljc0LDguNzQsMCwxLDEsMTcuNDcsMHY0Ljk0YTE0LjI0LDE0LjI0LDAsMCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4yOEEyLjY3LDIuNjcsMCwwLDAsMjAuNTgsMzJIMTUuMzJBMi42NywyLjY3LDAsMCwwLDE4LDM0LjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJh''@;'; put 'put ''ZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJN''@;'; put 'put ''MzIuNTEsMjcuODNBMTQuNCwxNC40LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5LDcuNDQsNy40NCwwLDAsMS0yLjI0LS44NCw4Ljg5LDguODksMCwwLDEsLjQsMi42NHY0Ljk0YTE0LjI0LDE0LjI0LDAs''@;'; put 'put ''MCwwLDEuNjUsNS44NSwxNi4xNywxNi4xNywwLDAsMCwyLjQ0LDNINS4xM2ExNi4xNywxNi4xNywwLDAsMCwyLjQ0LTMsMTQuMjQsMTQuMjQsMCwwLDAsMS42NS01Ljg1VjE1LjE1QTguOCw4LjgsMCwwLDEsMTgsNi4zMWE4LjYxLDguNjEsMCwwLDEsNC43NiwxLjQ0QTcuNDksNy40OSwwLDAs''@;'; put 'put ''MSwyMi41LDZjMC0uMjEsMC0uNDIsMC0uNjNhMTAuNTgsMTAuNTgsMCwwLDAtMy4zMi0xVjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAsMCwxLTIu''@;'; put 'put ''NDcsMi45MywxLDEsMCwwLDAtLjM0Ljc1djEuMzZhMSwxLDAsMCwwLDEsMWgyNy44YTEsMSwwLDAsMCwxLTFWMjguNThBMSwxLDAsMCwwLDMyLjUxLDI3LjgzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLjg1LDI4LjEzbC0uMzQtLjNBMTQuMzcsMTQuMzcsMCwwLDEsMzAsMjQuOWExMi42''@;'; put 'put ''MywxMi42MywwLDAsMS0xLjM1LTQuODFWMTUuMTVBMTAuODEsMTAuODEsMCwwLDAsMTkuMjEsNC40VjMuMTFhMS4zMywxLjMzLDAsMSwwLTIuNjcsMFY0LjQyQTEwLjgxLDEwLjgxLDAsMCwwLDcuMjEsMTUuMTV2NC45NEExMi42MywxMi42MywwLDAsMSw1Ljg2LDI0LjlhMTQuNCwxNC40LDAs''@;'; put 'put ''MCwxLTIuNDcsMi45M2wtLjM0LjN2Mi44MkgzMi44NVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTUuMzIsMzJhMi42NSwyLjY1LDAsMCwwLDUuMjUsMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTE4LDM0LjI4QTIuNjcsMi42NywwLDAsMCwyMC41OCwzMkgxNS4zMkEyLjY3LDIuNjcsMCwwLDAsMTgsMzQuMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMi44NSwyOC4xM2wtLjM0LS4zQTE0LjM3LDE0LjM3LDAsMCwxLDMwLDI0LjlhMTIuNjMsMTIuNjMsMCwwLDEtMS4zNS00LjgxVjE1LjE1YTEwLjkyLDEwLjkyLDAsMCwwLS4xNi0xLjc5QTcuNSw3LjUsMCwwLDEsMjIu''@;'; put 'put ''NSw2YzAtLjIxLDAtLjQyLDAtLjYzYTEwLjU3LDEwLjU3LDAsMCwwLTMuMzItMVYzLjExYTEuMzMsMS4zMywwLDEsMC0yLjY3LDBWNC40MkExMC44MSwxMC44MSwwLDAsMCw3LjIxLDE1LjE1djQuOTRBMTIuNjMsMTIuNjMsMCwwLDEsNS44NiwyNC45YTE0LjQsMTQuNCwwLDAsMS0yLjQ3LDIu''@;'; put 'put ''OTNsLS4zNC4zdjIuODJIMzIuODVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPicpLGUuQ2xyU2hhcGVJbWFnZT0oMCxhLmNs''@;'; put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsMzBWNkgzMlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBkPSJNOC45MiwxNGEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjkyLDE0Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcuMzMsMTEsMS42LDEuNiwwLDAsMSw4LjkyLDkuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTIyLjc4LDE1LjM3bC01LjQsNS40LTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUtOC40NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxQTEsMSwwLDAsMCwyMi43OCwxNS4zN1oiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTMsMTFhMywzLDAsMSwwLTMsM0EzLDMsMCwwLDAsMTEuOTMsMTFabS00LjYsMGExLjYsMS42LDAsMSwxLDEuNiwxLjZBMS42LDEuNiwwLDAsMSw3LjMzLDExWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuMzgsMjAuNzdsLTQtNGExLDEsMCwwLDAtMS40MSwwTDUuOTIsMjIuOXYyLjgzbDYuNzktNi43OUwxNiwyMi4xOGwtMy43NSwzLjc1SDE1bDguNDUtOC40''@;'; put 'put ''NUwzMCwyNFYyMS4xOGwtNS44MS01LjgxYTEsMSwwLDAsMC0xLjQxLDBaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwxMy4yMlYzMEg0VjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEs''@;'; put 'put ''LjI4LTJINEEyLDIsMCwwLDAsMiw2VjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj''@;'; put 'put ''aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEy''@;'; put 'put ''LDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEsMSwwLDAsMSwxLjQx''@;'; put 'put ''LDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0''@;'; put 'put ''QTcuNDYsNy40NiwwLDAsMSwzMCwxMy41Wk04LjkyLDhhMywzLDAsMSwxLTMsM0EzLDMsMCwwLDEsOC45Miw4Wk02LDI3VjIyLjlsNi02LjA4YTEsMSwwLDAsMSwxLjQxLDBMMTYsMTkuMzUsOC4zMiwyN1ptMjQsMEgxMS4xNWw2LjIzLTYuMjMsNS40LTUuNGExLDEsMCwwLDEsMS40MSwwTDMw''@;'; put 'put ''LDIxLjE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzM0gxMC42MkM1LjY3LDMzLDEsMjguMTksMSwyMy4xYTEwLDEwLDAsMCwxLDgtOS43NSwxMC4xOSwx''@;'; put 'put ''MC4xOSwwLDAsMSwyMC4zMywxLjA2QTEwLjA3LDEwLjA3LDAsMCwxLDI5LDE2LjY2YTguMjksOC4yOSwwLDAsMSw2LDhDMzUsMjkuMSwzMS4zMywzMywyNy4xNCwzM1pNMTkuMDksNi4yM2E4LjI0LDguMjQsMCwwLDAtOC4xOSw4bDAsLjg3LS44Ni4xQTcuOTQsNy45NCwwLDAsMCwzLDIzLjFj''@;'; put 'put ''MCw0LDMuNzcsNy45LDcuNjIsNy45SDI3LjE0QzMwLjIxLDMxLDMzLDI4LDMzLDI0LjY1YTYuMzEsNi4zMSwwLDAsMC01LjM3LTYuMjZsLTEuMTgtLjE4LjM5LTEuMTNBOC4xOCw4LjE4LDAsMCwwLDE5LjA5LDYuMjNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjksMTYuNjZhMTAuMDcsMTAuMDcsMCwwLDAsLjI1LTIuMjRjMC0uMzMsMC0uNjUsMC0xYTcuNDUsNy40NSwwLDAsMS0yLjEtLjU0LDgsOCwwLDAsMS0uMyw0LjE2bC0uMzksMS4xMywxLjE4LjE4YTYuMzEs''@;'; put 'put ''Ni4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdhOC4yNCw4LjI0LDAsMCwxLDguMTktOEE4LjEzLDguMTMsMCwwLDEsMjIuNTgsN2E3''@;'; put 'put ''LjUzLDcuNTMsMCwwLDEtLjA4LTEsNy41MSw3LjUxLDAsMCwxLC4wOS0xLjEyQTEwLjEzLDEwLjEzLDAsMCwwLDE5LDQuMjMsMTAuMjYsMTAuMjYsMCwwLDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2LTMu''@;'; put 'put ''OSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAg''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNCwxMC4xNCwwLDAsMCwuMi0xLjNoLTJhOC4yOCw4LjI4LDAsMCwxLS4zNywxLjcybC0uMzksMS4xMywxLjE4LjE4YTYu''@;'; put 'put ''MzEsNi4zMSwwLDAsMSw1LjM3LDYuMjZDMzIuOTUsMjgsMzAuMTYsMzEsMjcuMDksMzFIMTAuNTdjLTMuODQsMC03LjYyLTMuOTEtNy42Mi03LjlhNy45NCw3Ljk0LDAsMCwxLDctNy44OWwuODYtLjEsMC0uODdBOC4xNiw4LjE2LDAsMCwxLDIxLDYuNDdsMS0xLjhBMTAuMTksMTAuMTksMCww''@;'; put 'put ''LDAsOC45MSwxMy4zNmExMCwxMCwwLDAsMC04LDkuNzVjMCw1LjA5LDQuNjcsOS45LDkuNjIsOS45SDI3LjA5YzQuMTksMCw3Ljg2LTMuOSw3Ljg2LTguMzVBOC4yOSw4LjI5LDAsMCwwLDI5LDE2LjY2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEu''@;'; put 'put ''MTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI5LDE2LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0QTEwLjE5LDEwLjE5LDAsMCwwLDguOTEsMTMuMzYsMTAsMTAsMCwwLDAsMSwyMy4xQzEsMjguMTks''@;'; put 'put ''NS42MiwzMywxMC41NywzM0gyNy4wOUMzMS4yOCwzMywzNSwyOS4xLDM1LDI0LjY1QTguMjksOC4yOSwwLDAsMCwyOSwxNi42NloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTI5LDE2''@;'; put 'put ''LjY2YTEwLjA3LDEwLjA3LDAsMCwwLC4yNS0yLjI0YzAtLjMzLDAtLjY1LDAtMWE3LjQ0LDcuNDQsMCwwLDEtNi42LTguNThBMTAuMTMsMTAuMTMsMCwwLDAsMTksNC4yMywxMC4yNiwxMC4yNiwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAu''@;'; put 'put ''NTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMw''@;'; put 'put ''IiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNi42NmExMC4xNSwxMC4xNSwwLDAsMCwuMi0xLjI2aC03QTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDMt''@;'; put 'put ''NS4yMUExMC4xOSwxMC4xOSwwLDAsMCw4LjkxLDEzLjM2LDEwLDEwLDAsMCwwLDEsMjMuMUMxLDI4LjE5LDUuNjIsMzMsMTAuNTcsMzNIMjcuMDlDMzEuMjgsMzMsMzUsMjkuMSwzNSwyNC42NUE4LjI5LDguMjksMCwwLDAsMjksMTYuNjZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y''@;'; put 'put ''OCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWw9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjQuOSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzEuMSIgY3k9IjE4IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNC45IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVFbGxpcHNpc1ZlcnRpY2FsPSgwLGEuY2xySWNvblNWRykoJzxj''@;'; put 'put ''aXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMzEuMSIgcj0iMi45IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iNC45IiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTgiIHI9IjIuOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNs''@;'; put 'put ''ZSBjeD0iMTgiIGN5PSIzMS4xIiByPSIyLjkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlRmlsdGVyR3JpZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE1LDI1Ljg2bDIsMVYyMC4yN2ExLDEsMCwwLDAt''@;'; put 'put ''LjI5LS43TDEwLjIzLDEzSDI1Ljc5bC02LjQ3LDYuNTdhMSwxLDAsMCwwLS4yOS43TDE5LDI4bDIsMVYyMC42OEwyNy41OCwxNEExLjQ2LDEuNDYsMCwwLDAsMjgsMTNWMTJhMSwxLDAsMCwwLTEtMUg5YTEsMSwwLDAsMC0xLDF2MWExLjQ2LDEuNDYsMCwwLDAsLjQyLDFMMTUsMjAuNjhaIi8+''@;'; put 'put ''XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTgsMTF2MS4xMmEuNS41LDAsMCwwLC4xNS4zNWw3LjI4LDcuMzZhLjUuNSwwLDAsMSwuMTUuMzV2Ni44OWEuNS41LDAsMCwwLC4yOC40NWwzLjk1LDEuNDFhLjUuNSwwLDAs''@;'; put 'put ''MCwuNzItLjQ1bDAtOC4zOWEuNTQuNTQsMCwwLDEsLjE4LS4zNWw3LjEyLTcuMjVhLjUuNSwwLDAsMCwuMTUtLjM1VjExWiIvPicpLGUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xIiBkPSJNMTUsMjUuODZsMiwxVjIwLjI3YTEsMSwwLDAsMC0uMjktLjdMMTAuMjMsMTNIMjUuNzlsLTYuNDcsNi41N2ExLDEsMCwwLDAtLjI5LjdMMTksMjhsMiwxVjIwLjY4TDI3LjU4LDE0QTEuNDYsMS40NiwwLDAsMCwyOCwxM1YxMmExLDEsMCwwLDAtMS0xSDlhMSwxLDAsMCwwLTEs''@;'; put 'put ''MXYxYTEuNDYsMS40NiwwLDAsMCwuNDIsMUwxNSwyMC42OFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEs''@;'; put 'put ''MSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0''@;'; put 'put ''LDAsMCwxLDE4LDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik04LDExdjEuMTJhLjUuNSwwLDAsMCwuMTUuMzVsNy4yOCw3LjM2YS41LjUsMCwwLDEsLjE1LjM1djYuODlhLjUuNSwwLDAsMCwuMjguNDVsMy45''@;'; put 'put ''NSwxLjQxYS41LjUsMCwwLDAsLjcyLS40NWwwLTguMzlhLjU0LjU0LDAsMCwxLC4xOC0uMzVsNy4xMi03LjI1YS41LjUsMCwwLDAsLjE1LS4zNVYxMVoiLz4nKSxlLkNsclNoYXBlVm1CdWc9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3Qgd2lkdGg9IjM2IiBoZWlnaHQ9IjM2IiByeD0iMyIgZmls''@;'; put 'put ''bD0iI2ZmZmZmZiIgb3BhY2l0eT0iMC4xNSIgc3R5bGU9Imlzb2xhdGlvbjppc29sYXRlIi8+PHBhdGggZD0iTTMuNzksMTQuODNhMS4wOSwxLjA5LDAsMCwwLTEuNDctLjU2LDEuMDksMS4wOSwwLDAsMC0uNTQsMS40OWwyLjQ3LDUuNGMuMzkuODUuOCwxLjI5LDEuNTcsMS4yOVM3LDIyLDcu''@;'; put 'put ''MzksMjEuMTZsMi4xNy00Ljc3YS4zMy4zMywwLDAsMSwuMzEtLjIuMzUuMzUsMCwwLDEsLjM1LjM1djQuNjFhMS4xNSwxLjE1LDAsMCwwLDEuMTQsMS4zLDEuMTcsMS4xNywwLDAsMCwxLjE3LTEuM1YxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEuMTgs''@;'; put 'put ''MS4ydjMuNzdhMS4xNywxLjE3LDAsMSwwLDIuMzIsMFYxNy4zOGExLjE1LDEuMTUsMCwwLDEsMS4yMi0xLjIsMS4xMywxLjEzLDAsMCwxLDEuMTgsMS4ydjMuNzdhMS4xNiwxLjE2LDAsMSwwLDIuMzEsMFYxNi44NmEyLjY5LDIuNjksMCwwLDAtMi43OC0yLjY5LDMuNTcsMy41NywwLDAsMC0y''@;'; put 'put ''LjQ3LDEuMDUsMi43NSwyLjc1LDAsMCwwLTIuMzgtMS4wNUEzLjkzLDMuOTMsMCwwLDAsMTIsMTUuMjJhMi44MiwyLjgyLDAsMCwwLTIuMDgtMS4wNUEyLjU1LDIuNTUsMCwwLDAsNy40LDE1Ljg5TDUuODIsMTkuNjNsLTItNC44IiBmaWxsPSIjZmZmZmZmIi8+PHBhdGggZD0iTTMzLDE0LjE4''@;'; put 'put ''QTEuMTQsMS4xNCwwLDAsMCwzMS45LDE1bC0xLjE5LDMuNzNMMjkuNSwxNS4wNWExLjE4LDEuMTgsMCwwLDAtMS4xNS0uODdoLS4xYTEuMiwxLjIsMCwwLDAtMS4xNS44N2wtMS4xOSwzLjcxLTEuMTgtMy43MWExLjE1LDEuMTUsMCwwLDAtMS4xMS0uODcsMS4wOCwxLjA4LDAsMCwwLTEuMTIs''@;'; put 'put ''MS4wNywxLjY4LDEuNjgsMCwwLDAsLjEuNTRsMiw1LjdhMS4yNywxLjI3LDAsMCwwLDEuMjcsMSwxLjI0LDEuMjQsMCwwLDAsMS4yLS45M2wxLjItMy42NCwxLjIsMy42NGExLjI1LDEuMjUsMCwwLDAsMS4yNi45M0ExLjI3LDEuMjcsMCwwLDAsMzIsMjEuNUwzNCwxNS43M2ExLjc3LDEuNzcs''@;'; put 'put ''MCwwLDAsLjA4LS40OEExLjA3LDEuMDcsMCwwLDAsMzMsMTQuMThaIiBmaWxsPSIjZmZmZmZmIi8+JyksZS5DbHJTaGFwZVNlYXJjaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjMzLDUuMDVBMTAuOTUs''@;'; put 'put ''MTAuOTUsMCwxLDEsNS4zOSwxNiwxMSwxMSwwLDAsMSwxNi4zMyw1LjA1bTAtMi4wNWExMywxMywwLDEsMCwxMywxMywxMywxMywwLDAsMC0xMy0xM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM1LDMz''@;'; put 'put ''LjI5bC03LjM3LTcuNDItMS40MiwxLjQxLDcuMzcsNy40MkExLDEsMCwxLDAsMzUsMzMuMjlaIi8+JyksZS5DbHJTaGFwZVZpZXdDb2x1bW5zPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzEsNUg1QTIsMiww''@;'; put 'put ''LDAsMCwzLDdWMjlhMiwyLDAsMCwwLDIsMkgzMWEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMxLDVaTTEzLDI5SDVWN2g4Wm0xMCwwSDE1VjdoOFoiLz4nKSxlLkNsclNoYXBlQW5nbGVEb3VibGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEiIGQ9Ik0yOSwxOS40MWExLDEsMCwwLDEtLjcxLS4yOUwxOCw4LjgzLDcuNzEsMTkuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCw2LDI5LjcxLDE3LjcxQTEsMSwwLDAsMSwyOSwxOS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDMwLjQxYTEsMSwwLDAsMS0uNzEtLjI5TDE4LDE5LjgzLDcuNzEsMzAuMTJhMSwxLDAsMCwxLTEuNDEtMS40MUwxOCwxNywyOS43MSwyOC43MUExLDEsMCwwLDEsMjksMzAuNDFaIi8+JyksZS5DbHJTaGFwZUNhbGVuZGFyPSgwLGEu''@;'; put 'put ''Y2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIuMjUsNkgyOVY4aDNWMzBINFY4SDdWNkgzLjc1QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgs''@;'; put 'put ''MCwwLDAsMzQsMzAuMTlWNy44MUExLjc4LDEuNzgsMCwwLDAsMzIuMjUsNloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjIwIiB5PSIx''@;'; put 'put ''NCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyNiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgeD0iMTQiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIy''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjIwIiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC05IiB4PSIyNiIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAg''@;'; put 'put ''PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiB4PSIxNCIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIHg9IjIwIiB5PSIy''@;'; put 'put ''NCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMyIgeD0iMjYiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiBkPSJN''@;'; put 'put ''MjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE2IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41''@;'; put 'put ''QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSI4IiB5PSIxNCIgd2lkdGg9IjIi''@;'; put 'put ''IGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSIyMCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRn''@;'; put 'put ''ZWQiIHg9IjI2IiB5PSIxNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgeD0iOCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgeD0iMjAiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIiB4PSIyNiIgeT0iMTkiIHdp''@;'; put 'put ''ZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIiB4PSI4IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEyLS1iYWRnZWQiIHg9IjIwIiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEzLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE0LS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNS0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMzMuNjgs''@;'; put 'put ''MTUuNEgzMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxl''@;'; put 'put ''cnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iOCIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgeD0iMTQiIHk9''@;'; put 'put ''IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIHg9IjgiIHk9IjE5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAg''@;'; put 'put ''PHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIHg9IjE0IiB5PSIxOSIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC02LS1hbGVydGVkIiB4PSIyMCIgeT0iMTkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgeD0iMjYiIHk9IjE5IiB3aWR0aD0i''@;'; put 'put ''MiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWFsZXJ0ZWQiIHg9IjgiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQiIHg9IjE0IiB5PSIyNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''MC0tYWxlcnRlZCIgeD0iMjAiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTExLS1hbGVydGVkIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSIyIiBoZWlnaHQ9''@;'; put 'put ''IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz48cG9seWdvbiBwb2lu''@;'; put 'put ''dHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4y''@;'; put 'put ''OCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4y''@;'; put 'put ''NSw2aC00VjlhMi4yLDIuMiwwLDEsMS00LjQsMFY2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVY3LjgxQTEuNzgsMS43OCwwLDAs''@;'; put 'put ''MCwzMi4yNSw2Wk0xMCwyNkg4VjI0aDJabTAtNUg4VjE5aDJabTAtNUg4VjE0aDJabTYsMTBIMTRWMjRoMlptMC01SDE0VjE5aDJabTAtNUgxNFYxNGgyWm02LDEwSDIwVjI0aDJabTAtNUgyMFYxOWgyWm0wLTVIMjBWMTRoMlptNiwxMEgyNlYyNGgyWm0wLTVIMjZWMTloMlptMC01SDI2VjE0''@;'; put 'put ''aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yNiwxMGExLDEsMCwwLDAsMS0xVjNhMSwxLDAsMCwwLTIsMFY5QTEsMSwwLDAsMCwyNiwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdl''@;'; put 'put ''ZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzAsMTMuNUE3LjUsNy41LDAs''@;'; put 'put ''MCwxLDIyLjUsNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTIuMzRBNy40NSw3LjQ1LDAsMCwxLDMwLDEzLjVaTTEwLDI2SDhW''@;'; put 'put ''MjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTAtNUgyMFYxNGgyWm02LDEwSDI2VjI0aDJabTAtNUgyNlYxOWgyWm0wLTVIMjZWMTRoMloiLz5cbiAgICAgICAgICAg''@;'; put 'put ''ICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEuMjksNkgxMi4yVjlBMi4yLDIuMiwwLDAsMSw3LjgsOVY2aC00QTEuNzgsMS43OCwwLDAsMCwyLDcuODFWMzAuMTlBMS43OCwxLjc4LDAsMCwwLDMuNzUsMzJoMjguNUExLjc4''@;'; put 'put ''LDEuNzgsMCwwLDAsMzQsMzAuMTlWMTUuMzhaTTEwLDI2SDhWMjRoMlptMC01SDhWMTloMlptMC01SDhWMTRoMlptNiwxMEgxNFYyNGgyWm0wLTVIMTRWMTloMlptMC01SDE0VjE0aDJabTYsMTBIMjBWMjRoMlptMC01SDIwVjE5aDJabTYsNUgyNlYyNGgyWm0wLTVIMjZWMTloMloiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTAsMTBhMSwxLDAsMCwwLDEtMVYzQTEsMSwwLDAsMCw5LDNWOUExLDEsMCwwLDAsMTAsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xh''@;'; put 'put ''c3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4y''@;'; put 'put ''OCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVFdmVudD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE2LjE3LDI1Ljg2LDEwLjgxLDIwLjVhMSwxLDAsMCwxLDEuNDEtMS40MUwxNi4xNywyM2w4''@;'; put 'put ''LjY0LTguNjRhMSwxLDAsMCwxLDEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjI1LDZIMjlWOGgzVjMwSDRWOEg3VjZIMy43NUExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEu''@;'; put 'put ''NzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xMCwxMGExLDEs''@;'; put 'put ''MCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTI2LDEwYTEsMSwwLDAsMCwxLTFWM2ExLDEsMCwwLDAtMiwwVjlBMSwxLDAsMCww''@;'; put 'put ''LDI2LDEwWiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMyIgeT0iNiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMC44MSwyMC41bDUuMzYsNS4zNkwyNi4yMiwxNS44MWExLDEsMCwwLDAtMS40MS0xLjQxTDE2LjE3LDIzbC0zLjk0LTMuOTRhMSwxLDAsMCwwLTEuNDEsMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0zMiwxMy4yMlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIs''@;'; put 'put ''MTMuMjJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMjIuNSw2SDEzVjhoOS43OEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2WiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEtLWFsZXJ0ZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTEw''@;'; put 'put ''LjgxLDIwLjVsNS4zNiw1LjM2TDI2LjIyLDE1LjgxYTEsMSwwLDAsMCwuMjMtLjQxSDIzLjhMMTYuMTcsMjNsLTMuOTQtMy45NGExLDEsMCwwLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjI5IDYgMTMgNiAxMyA4IDIwLjE0IDggMjEuMjkgNiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzMuNjgsMTUuNEgz''@;'; put 'put ''MlYzMEg0VjhIN1Y2SDMuNzVBMS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjYsMTBhMSwxLDAsMCwwLDEtMVYzYTEsMSwwLDAsMC0yLDBWOUExLDEsMCwwLDAsMjYsMTBaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTMyLjI1LDZoLTRWOWEyLjIs''@;'; put 'put ''Mi4yLDAsMCwxLTQuNCwwVjZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAsMCwwLDM0LDMwLjE5VjcuODFBMS43OCwxLjc4LDAsMCwwLDMyLjI1LDZaTTI1''@;'; put 'put ''Ljk0LDE2LjU4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4TDI0LDE0LjY2YTEuMzYsMS4zNiwwLDEsMSwxLjkzLDEuOTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTEwLDEwYTEsMSwwLDAsMCwxLTFWM0ExLDEsMCwwLDAsOSwzVjlBMSwxLDAsMCwwLDEwLDEwWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0z''@;'; put 'put ''My42OCwxNS40SDI2LjNhMS4zNCwxLjM0LDAsMCwxLS4zNiwxLjE4bC05LjY3LDkuNjdMMTEsMjAuOTRBMS4zNiwxLjM2LDAsMCwxLDEyLjksMTlsMy4zOCwzLjM4LDctN2gtMUEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDEyLjJWOUEyLjIsMi4yLDAsMCwxLDcuOCw5VjZoLTRB''@;'; put 'put ''MS43OCwxLjc4LDAsMCwwLDIsNy44MVYzMC4xOUExLjc4LDEuNzgsMCwwLDAsMy43NSwzMmgyOC41QTEuNzgsMS43OCwwLDAsMCwzNCwzMC4xOVYxNS4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMCwxMGExLDEsMCwwLDAsMS0xVjNBMSwxLDAsMCwwLDksM1Y5QTEsMSwwLDAsMCwxMCwxMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZIMTIuMlY5QTIuMiwyLjIsMCwwLDEsNy44LDlWNmgtNEExLjc4LDEuNzgsMCwwLDAsMiw3LjgxVjMwLjE5QTEuNzgsMS43OCwwLDAsMCwzLjc1LDMyaDI4LjVBMS43OCwxLjc4LDAs''@;'; put 'put ''MCwwLDM0LDMwLjE5VjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wm0tNC4wNiwzLjA4LTkuNjcsOS42N0wxMSwyMC45NEExLjM2LDEuMzYsMCwwLDEsMTIuOSwxOWwzLjM4LDMuMzhMMjQsMTQuNjZhMS4zNiwxLjM2LDAsMSwxLDEuOTMsMS45M1oiLz5cbiAgICAgICAgICAgICAgICA8''@;'; put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZUV5ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuNjIsMTcuNTNjLTMuMzctNi4yMy05''@;'; put 'put ''LjI4LTEwLTE1LjgyLTEwUzUuMzQsMTEuMywyLDE3LjUzTDEuNzIsMThsLjI2LjQ4YzMuMzcsNi4yMyw5LjI4LDEwLDE1LjgyLDEwczEyLjQ2LTMuNzIsMTUuODItMTBsLjI2LS40OFpNMTcuOCwyNi40M0MxMi4xNywyNi40Myw3LDIzLjI5LDQsMThjMy01LjI5LDguMTctOC40MywxMy44LTgu''@;'; put 'put ''NDNTMjguNTQsMTIuNzIsMzEuNTksMThDMjguNTQsMjMuMjksMjMuNDIsMjYuNDMsMTcuOCwyNi40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDksMTEuMTdBNi44Niw2Ljg2LDAsMSwwLDI1LDE4LDYu''@;'; put 'put ''ODYsNi44NiwwLDAsMCwxOC4wOSwxMS4xN1ptMCwxMS43MkE0Ljg2LDQuODYsMCwxLDEsMjMsMTgsNC44Nyw0Ljg3LDAsMCwxLDE4LjA5LDIyLjg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42MiwxNy41''@;'; put 'put ''M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBTNS4zNCwxMS4zLDIsMTcuNTNMMS43MiwxOGwuMjYuNDhjMy4zNyw2LjIzLDkuMjgsMTAsMTUuODIsMTBzMTIuNDYtMy43MiwxNS44Mi0xMGwuMjYtLjQ4Wk0xNy44LDI2LjQzQzEyLjE3LDI2LjQzLDcsMjMuMjksNCwxOGMzLTUuMjksOC4x''@;'; put 'put ''Ny04LjQzLDEzLjgtOC40M1MyOC41NCwxMi43MiwzMS41OSwxOEMyOC41NCwyMy4yOSwyMy40MiwyNi40MywxNy44LDI2LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTguMDkiIGN5PSIxOC4wMyIgcj0iNi44''@;'; put 'put ''NiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPicpLGUuQ2xyU2hhcGVFeWVIaWRlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNS4xOSwyMC40QTYuNzgsNi43OCwwLDAsMCwyNS42MiwxOGE2Ljg2LDYuODYsMCwwLDAtNi44Ni02Ljg2LDYuNzksNi43OSww''@;'; put 'put ''LDAsMC0yLjM3LjQzTDE4LDEzLjIzYTQuNzgsNC43OCwwLDAsMSwuNzQtLjA2QTQuODcsNC44NywwLDAsMSwyMy42MiwxOGE0Ljc5LDQuNzksMCwwLDEtLjA2Ljc0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0z''@;'; put 'put ''NC4yOSwxNy41M2MtMy4zNy02LjIzLTkuMjgtMTAtMTUuODItMTBhMTYuODIsMTYuODIsMCwwLDAtNS4yNC44NUwxNC44NCwxMGExNC43OCwxNC43OCwwLDAsMSwzLjYzLS40N2M1LjYzLDAsMTAuNzUsMy4xNCwxMy44LDguNDNhMTcuNzUsMTcuNzUsMCwwLDEtNC4zNyw1LjFsMS40MiwxLjQy''@;'; put 'put ''YTE5LjkzLDE5LjkzLDAsMCwwLDUtNmwuMjYtLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUyLDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMz''@;'; put 'put ''LjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm05Ljc1LDkuNzUsNi42NSw2LjY1YTQuODEsNC44MSwwLDAsMS0yLjUuNzJBNC44Nyw0Ljg3LDAsMCwxLDEzLjksMTgsNC44MSw0LjgxLDAsMCwxLDE0LjYyLDE1''@;'; put 'put ''LjUzWm0tMS40NS0xLjQ1YTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAsMS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4zNywxMS4xN0E2Ljc5LDYuNzksMCwwLDAsMTYsMTEuNmw4LjgsOC44QTYuNzgsNi43OCwwLDAsMCwyNS4yMywxOCw2Ljg2LDYuODYsMCwwLDAsMTguMzcsMTEuMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMjksMTcuNTNjLTMuMzctNi4yMy05LjI4LTEwLTE1LjgyLTEwYTE2LjgyLDE2LjgyLDAsMCwwLTUuMjQuODVMMTQuODQsMTBhMTQuNzgsMTQuNzgsMCwwLDEsMy42My0uNDdjNS42MywwLDEwLjc1LDMuMTQsMTMuOCw4LjQz''@;'; put 'put ''YTE3Ljc1LDE3Ljc1LDAsMCwxLTQuMzcsNS4xbDEuNDIsMS40MmExOS45MywxOS45MywwLDAsMCw1LTZsLjI2LS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00Ljg3LDUuNzhsNC40Niw0LjQ2YTE5LjUyLDE5LjUy''@;'; put 'put ''LDAsMCwwLTYuNjksNy4yOUwyLjM4LDE4bC4yNi40OGMzLjM3LDYuMjMsOS4yOCwxMCwxNS44MiwxMGExNi45MywxNi45MywwLDAsMCw3LjM3LTEuNjlsNSw1LDEuNzUtMS41LTI2LTI2Wm04LjMsOC4zYTYuODUsNi44NSwwLDAsMCw5LjU1LDkuNTVsMS42LDEuNmExNC45MSwxNC45MSwwLDAs''@;'; put 'put ''MS01Ljg2LDEuMmMtNS42MywwLTEwLjc1LTMuMTQtMTMuOC04LjQzYTE3LjI5LDE3LjI5LDAsMCwxLDYuMTItNi4zWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIvPicpLGUuQ2xyU2hhcGVTdGVwRm9yd2FyZDI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTcu''@;'; put 'put ''MDgsNi41MmExLjY4LDEuNjgsMCwwLDAsMCwyLjRMMTYuNTEsMTgsNy4xMiwyNy4wOGExLjcsMS43LDAsMCwwLDIuMzYsMi40NGgwTDIxLjQsMTgsOS40OCw2LjQ3QTEuNjksMS42OSwwLDAsMCw3LjA4LDYuNTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIg''@;'; put 'put ''Lz48cGF0aCBkPSJNMjYuNDksNWExLjcsMS43LDAsMCwwLTEuNywxLjdWMjkuM2ExLjcsMS43LDAsMCwwLDMuNCwwVjYuN0ExLjcsMS43LDAsMCwwLDI2LjQ5LDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQXJyb3c9KDAsYS5j''@;'; put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LjY2LDE1LjYxLDE4LDYsOC4zNCwxNS42MUExLDEsMCwxLDAsOS43NSwxN0wxNyw5LjgxVjI4Ljk0YTEsMSwwLDEsMCwyLDBWOS44MUwyNi4yNSwxN2ExLDEsMCwwLDAsMS40MS0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEiLz4nKSxlLkNvcmVTaGFwZXM9eyJ1bmtub3duLXN0YXR1cyI6ZS5DbHJTaGFwZVVua25vd25TdGF0dXMsaG9tZTplLkNsclNoYXBlSG9tZSxjb2c6ZS5DbHJTaGFwZUNvZyxjaGVjazplLkNsclNoYXBlQ2hlY2ssdGltZXM6ZS5DbHJTaGFwZVRpbWVzLCJleGNsYW1hdGlvbi10''@;'; put 'put ''cmlhbmdsZSI6ZS5DbHJTaGFwZUV4Y2xhbWF0aW9uVHJpYW5nbGUsImV4Y2xhbWF0aW9uLWNpcmNsZSI6ZS5DbHJTaGFwZUV4Y2xhbWF0aW9uQ2lyY2xlLCJjaGVjay1jaXJjbGUiOmUuQ2xyU2hhcGVDaGVja0NpcmNsZSwiaW5mby1jaXJjbGUiOmUuQ2xyU2hhcGVJbmZvQ2lyY2xlLCJpbmZv''@;'; put 'put ''LXN0YW5kYXJkIjplLkNsclNoYXBlSW5mb1N0YW5kYXJkLCJzdWNjZXNzLXN0YW5kYXJkIjplLkNsclNoYXBlU3VjY2Vzc1N0YW5kYXJkLCJlcnJvci1zdGFuZGFyZCI6ZS5DbHJTaGFwZUVycm9yU3RhbmRhcmQsIndhcm5pbmctc3RhbmRhcmQiOmUuQ2xyU2hhcGVXYXJuaW5nU3RhbmRhcmQs''@;'; put 'put ''ImhlbHAtaW5mbyI6ZS5DbHJTaGFwZUhlbHBJbmZvLGJhcnM6ZS5DbHJTaGFwZUJhcnMsdXNlcjplLkNsclNoYXBlVXNlcixhbmdsZTplLkNsclNoYXBlQW5nbGUsZm9sZGVyOmUuQ2xyU2hhcGVGb2xkZXIsImZvbGRlci1vcGVuIjplLkNsclNoYXBlRm9sZGVyT3BlbixiZWxsOmUuQ2xyU2hh''@;'; put 'put ''cGVCZWxsLGltYWdlOmUuQ2xyU2hhcGVJbWFnZSxjbG91ZDplLkNsclNoYXBlQ2xvdWQsImVsbGlwc2lzLWhvcml6b250YWwiOmUuQ2xyU2hhcGVFbGxpcHNpc0hvcml6b250YWwsImVsbGlwc2lzLXZlcnRpY2FsIjplLkNsclNoYXBlRWxsaXBzaXNWZXJ0aWNhbCwiZmlsdGVyLWdyaWQiOmUu''@;'; put 'put ''Q2xyU2hhcGVGaWx0ZXJHcmlkLCJmaWx0ZXItZ3JpZC1jaXJjbGUiOmUuQ2xyU2hhcGVGaWx0ZXJHcmlkQ2lyY2xlLCJ2bS1idWciOmUuQ2xyU2hhcGVWbUJ1ZyxzZWFyY2g6ZS5DbHJTaGFwZVNlYXJjaCwidmlldy1jb2x1bW5zIjplLkNsclNoYXBlVmlld0NvbHVtbnMsImFuZ2xlLWRvdWJs''@;'; put 'put ''ZSI6ZS5DbHJTaGFwZUFuZ2xlRG91YmxlLGNhbGVuZGFyOmUuQ2xyU2hhcGVDYWxlbmRhcixldmVudDplLkNsclNoYXBlRXZlbnQsZXllOmUuQ2xyU2hhcGVFeWUsImV5ZS1oaWRlIjplLkNsclNoYXBlRXllSGlkZSwic3RlcC1mb3J3YXJkLTIiOmUuQ2xyU2hhcGVTdGVwRm9yd2FyZDIsYXJy''@;'; put 'put ''b3c6ZS5DbHJTaGFwZUFycm93fSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Db3JlU2hhcGVzLCJob3VzZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuaG9tZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsInNldHRpbmdzIiwoMCxyLmRlc2NyaXB0''@;'; put 'put ''b3JDb25maWcpKGUuQ29yZVNoYXBlcy5jb2cpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Db3JlU2hhcGVzLCJzdWNjZXNzIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5jaGVjaykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImNsb3NlIiwoMCxy''@;'; put 'put ''LmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy50aW1lcykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsIndhcm5pbmciLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi10cmlhbmdsZSJdKSksT2JqZWN0LmRlZmluZVByb3Bl''@;'; put 'put ''cnR5KGUuQ29yZVNoYXBlcywiZXJyb3IiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJleGNsYW1hdGlvbi1jaXJjbGUiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImluZm8iLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJp''@;'; put 'put ''bmZvLWNpcmNsZSJdKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywibWVudSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuYmFycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImF2YXRhciIsKDAsci5kZXNjcmlwdG9yQ29uZmln''@;'; put 'put ''KShlLkNvcmVTaGFwZXMudXNlcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImNhcmV0IiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5hbmdsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkNvcmVTaGFwZXMsImRpcmVjdG9yeSIsKDAsci5kZXNj''@;'; put 'put ''cmlwdG9yQ29uZmlnKShlLkNvcmVTaGFwZXMuZm9sZGVyKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywibm90aWZpY2F0aW9uIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuQ29yZVNoYXBlcy5iZWxsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuQ29yZVNoYXBlcywi''@;'; put 'put ''Y29sbGFwc2UiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Db3JlU2hhcGVzWyJhbmdsZS1kb3VibGUiXSkpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL2Vzc2VudGlhbC1zaGFwZXMudHMiOmZ1bmN0aW9uKEEsZSxjKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5''@;'; put 'put ''KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuQ2xyU2hhcGVMb2dvdXQ9ZS5DbHJTaGFwZUxvZ2luPWUuQ2xyU2hhcGVIZWxwPWUuQ2xyU2hhcGVDb3B5PWUuQ2xyU2hhcGVDaGlsZEFycm93PWUuQ2xyU2hhcGVDaXJjbGVBcnJvdz1lLkNsclNoYXBlQWxhcm1DbG9jaz1lLkNsclNoYXBl''@;'; put 'put ''Q2xvY2s9ZS5DbHJTaGFwZUhpc3Rvcnk9ZS5DbHJTaGFwZVRhZ3M9ZS5DbHJTaGFwZVRhZz1lLkNsclNoYXBlVHJhc2g9ZS5DbHJTaGFwZVRpbWVzQ2lyY2xlPWUuQ2xyU2hhcGVCYW49ZS5DbHJTaGFwZVBsdXNDaXJjbGU9ZS5DbHJTaGFwZU1pbnVzQ2lyY2xlPWUuQ2xyU2hhcGVNaW51cz1l''@;'; put 'put ''LkNsclNoYXBlUGx1cz1lLkNsclNoYXBlRmlsZT1lLkNsclNoYXBlUGluPWUuQ2xyU2hhcGVGaWx0ZXI9ZS5DbHJTaGFwZVBvcE91dD1lLkNsclNoYXBlVXNlcnM9ZS5DbHJTaGFwZVVubG9jaz1lLkNsclNoYXBlTG9jaz1lLkNsclNoYXBlVXBsb2FkPWUuQ2xyU2hhcGVEb3dubG9hZD1lLkNs''@;'; put 'put ''clNoYXBlTGlnaHRidWxiPWUuQ2xyU2hhcGVWaWV3Q2FyZHM9ZS5DbHJTaGFwZVZpZXdMaXN0PWUuQ2xyU2hhcGVTeW5jPWUuQ2xyU2hhcGVSZWZyZXNoPWUuQ2xyU2hhcGVOb3RlPWUuQ2xyU2hhcGVQZW5jaWw9ZS5DbHJTaGFwZVRoZXJtb21ldGVyPWUuQ2xyU2hhcGVCdWc9ZS5DbHJTaGFw''@;'; put 'put ''ZVNjaXNzb3JzPWUuQ2xyU2hhcGVBc3Rlcmlzaz1lLkNsclNoYXBlQm9vaz1lLkNsclNoYXBlT2JqZWN0cz1lLkNsclNoYXBlUmVzaXplPWUuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9ZS5DbHJTaGFwZUN1cnNvckhhbmQ9ZS5DbHJTaGFwZUN1cnNvckFycm93PWUuQ2xyU2hhcGVHcmlkVmll''@;'; put 'put ''dz1lLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249ZS5DbHJTaGFwZU5ldz1lLkNsclNoYXBlQWxhcm1PZmY9ZS5DbHJTaGFwZVBpbmJvYXJkPWUuQ2xyU2hhcGVBZGRUZXh0PXZvaWQgMCxlLkNsclNoYXBlQ2xvbmU9ZS5DbHJTaGFwZUN1cnNvck1vdmU9ZS5DbHJTaGFwZVdhbmQ9ZS5DbHJT''@;'; put 'put ''aGFwZVN1bj1lLkNsclNoYXBlTW9vbj1lLkNsclNoYXBlRmlsdGVyMj1lLkNsclNoYXBlRHJhZ0hhbmRsZT1lLkNsclNoYXBlQ29weVRvQ2xpcGJvYXJkPWUuQ2xyU2hhcGVDb2xvclBpY2tlcj1lLkNsclNoYXBlQnJpZWZjYXNlPWUuQ2xyU2hhcGVFeHBhbmRDYXJkPWUuQ2xyU2hhcGVDb2xs''@;'; put 'put ''YXBzZUNhcmQ9ZS5DbHJTaGFwZVNvcnRCeT1lLkNsclNoYXBlQWNjZXNzaWJpbGl0eTI9ZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxPWUuQ2xyU2hhcGVTaHJpbms9ZS5DbHJTaGFwZVBhcGVyY2xpcD1lLkNsclNoYXBlRmlsZUdyb3VwPWUuQ2xyU2hhcGVSZXBlYXQ9ZS5DbHJTaGFwZUlkQmFk''@;'; put 'put ''Z2U9ZS5DbHJTaGFwZUJhbGFuY2U9ZS5DbHJTaGFwZU9yZ2FuaXphdGlvbj1lLkNsclNoYXBlTm9BY2Nlc3M9ZS5DbHJTaGFwZUhvdXJnbGFzcz1lLkNsclNoYXBlRmxhbWU9ZS5DbHJTaGFwZVRhcmdldD1lLkNsclNoYXBlQnVsbHNleWU9ZS5DbHJTaGFwZVdyZW5jaD1lLkNsclNoYXBlQm9s''@;'; put 'put ''dD1lLkNsclNoYXBlTGlicmFyeT1lLkNsclNoYXBlS2V5PWUuQ2xyU2hhcGVab29tT3V0PWUuQ2xyU2hhcGVab29tSW49ZS5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9ZS5DbHJTaGFwZVdpbmRvd01pbj1lLkNsclNoYXBlV2luZG93TWF4PWUuQ2xyU2hhcGVXaW5kb3dDbG9zZT1lLkNsclNoYXBl''@;'; put 'put ''VG9vbHM9ZS5DbHJTaGFwZVN3aXRjaD1lLkNsclNoYXBlVHdvV2F5QXJyb3dzPWUuQ2xyU2hhcGVGaWxlU2V0dGluZ3M9ZS5DbHJTaGFwZVNjcm9sbD1lLkNsclNoYXBlVW5kbz1lLkNsclNoYXBlUmVkbz1lLkNsclNoYXBlTGlzdD1lLkNsclNoYXBlRmlyZXdhbGw9ZS5DbHJTaGFwZUNsaXBi''@;'; put 'put ''b2FyZD1lLkNsclNoYXBlU2xpZGVyPWUuQ2xyU2hhcGVXb3JsZD1lLkNsclNoYXBlUHJpbnRlcj12b2lkIDAsZS5Fc3NlbnRpYWxTaGFwZXM9ZS5DbHJTaGFwZUNvbG9yUGFsZXR0ZT1lLkNsclNoYXBlRmlyc3RBaWQ9ZS5DbHJTaGFwZUJldGE9ZS5DbHJTaGFwZURvdENpcmNsZT1lLkNsclNo''@;'; put 'put ''YXBlQ2lyY2xlPWUuQ2xyU2hhcGVDcm9zc2hhaXJzPWUuQ2xyU2hhcGVWb2x1bWU9ZS5DbHJTaGFwZVRhYmxlPWUuQ2xyU2hhcGVTbm93Zmxha2U9ZS5DbHJTaGFwZUZ1ZWw9ZS5DbHJTaGFwZUZvcm09ZS5DbHJTaGFwZUZpc2g9ZS5DbHJTaGFwZVRyZWU9ZS5DbHJTaGFwZVJlY3ljbGU9ZS5D''@;'; put 'put ''bHJTaGFwZUZpbHRlck9mZj1lLkNsclNoYXBlRmlsZVppcD1lLkNsclNoYXBlQ3Vyc29ySGFuZE9wZW49ZS5DbHJTaGFwZUN1cnNvckhhbmRHcmFiPWUuQ2xyU2hhcGVUcmVlVmlldz1lLkNsclNoYXBlUG9ydHJhaXQ9ZS5DbHJTaGFwZVBhc3RlPWUuQ2xyU2hhcGVMYW5kc2NhcGU9ZS5DbHJT''@;'; put 'put ''aGFwZUVyYXNlcj1lLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcj1lLkNsclNoYXBlRGV0YWlscz12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxhPWMoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2Vu''@;'; put 'put ''ZXJhdG9yLnRzIik7Yz1jKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxlLkNsclNoYXBlQWRkVGV4dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDIxSDEzYTEsMSww''@;'; put 'put ''LDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTIsMTZhMSwxLDAsMCwwLDEsMUgzMWExLDEsMCwwLDAsMC0ySDEzQTEsMSwwLDAsMCwxMiwxNloiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjcsMjdIMTNhMSwxLDAsMCwwLDAsMkgyN2ExLDEsMCwwLDAsMC0yWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9''@;'; put 'put ''Ik0xNS44OSw5YTEsMSwwLDAsMC0xLTFIMTBWMy4yMWExLDEsMCwwLDAtMiwwVjhIMi44OWExLDEsMCwwLDAsMCwySDh2NS4yMWExLDEsMCwwLDAsMiwwVjEwaDQuODlBMSwxLDAsMCwwLDE1Ljg5LDlaIi8+JyksZS5DbHJTaGFwZVBpbmJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzAsNiwzMCw2LDZIMjJWNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE0SDMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdhMSwxLDAsMCwwLTEuNDEsMS40MWw3LDdhMSwxLDAsMSwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjIuMSwxMS4x''@;'; put 'put ''OWwuNy41TDI2LjQ2LDgsMjUsNi41NiwyMi41MSw5LjEzYy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTIsMS42OC01LjkzbDIuNTQtMi41N0wy''@;'; put 'put ''Ny44OCw5LjM4LDI0LjIxLDEzLjFsLjQ5LjY5Yy43NiwxLC4yNSwyLjM3LS40MSwzLjMzTDE4Ljc3LDExLjZDMTkuODQsMTAuODYsMjEuMTUsMTAuNSwyMi4xLDExLjE5WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMw''@;'; put 'put ''LDMwLDYsMzAsNiw2SDIyVjRINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlYxNEgzMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMy41Nyw5LjMzbC03LTdhMSwxLDAsMCww''@;'; put 'put ''LTEuNDEsMS40MWwxLjM4LDEuMzgtNCw0Yy0yLS44Ny00LjM1LjE0LTUuOTIsMS42OGwtLjcyLjcxLDMuNTQsMy41NC0zLjY3LDMuNjcsMS40MSwxLjQxLDMuNjctMy42N0wyNC4zNywyMGwuNzEtLjcyYzEuNTQtMS41NywyLjU1LTMuOTEsMS42OC01LjkybDQtNCwxLjM4LDEuMzhhMSwxLDAs''@;'; put 'put ''MSwwLDEuNDEtMS40MVoiLz4nKSxlLkNsclNoYXBlQWxhcm1PZmY9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMS40NywzLjg0YTUuNzgsNS43OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4''@;'; put 'put ''LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuMzMsMjEuNTRhLjkuOSwwLDAsMC0uNDEtMS4ybC0zLjItMS41NkwyNC44OSwyMkEuODkuODksMCww''@;'; put 'put ''LDAsMjUuMzMsMjEuNTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDguNmEuOS45LDAsMCwwLS45Ljl2NC42bDEuOCwxLjgxVjkuNUEuOS45LDAsMCwwLDE4LDguNloiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiBkPSJNMTEuNDIsMy40M2E1LjgsNS44LDAsMCwwLTUuODEtLjgxTDguMyw1LjMyQTE2LDE2LDAsMCwxLDExLjQyLDMuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtNSIgZD0iTTE4LDRhMTMuOTEsMTMuOTEsMCwwLDAtOC4zLDIuNzVsMS40MiwxLjQzQTEyLDEyLDAsMCwxLDI3LjgyLDI0LjlsMS40MiwxLjQzQTE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNiIgZD0iTTEuNTYsNC4yMSwyLjczLDUuMzhhNS43LDUuNywwLDAsMCwuNjcsNi4xQTE1Ljc4LDE1Ljc4LDAsMCwxLDUuNDYsOC4xMkw2Ljg4LDkuNTVBMTMuOTQsMTMuOTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmEx''@;'; put 'put ''My44OSwxMy44OSwwLDAsMCwxNi44LDBsNC4xNCw0LjE1TDMyLDMxLjksMywyLjhaTTI1LDI3LjcyQTExLjg5LDExLjg5LDAsMCwxLDE4LDMwLDEyLDEyLDAsMCwxLDYsMThhMTEuODksMTEuODksMCwwLDEsMi4yOS03WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMiIgZD0iTTExLjQyLDMuNDNhNS44LDUuOCwwLDAsMC01Ljc3LS44Mkw4LjMzLDUuM0ExNiwxNiwwLDAsMSwxMS40MiwzLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI0LjkyLDIxLjk0bDQuMzQs''@;'; put 'put ''NC4zNkExNCwxNCwwLDAsMCw5Ljc1LDYuNzNMMTcsMTRWOS42OWExLDEsMCwwLDEsMiwwVjE2bDIuMzMsMi4zNEwyNSwyMC4xYTEsMSwwLDAsMSwuNDcsMS4zM0ExLDEsMCwwLDEsMjQuOTIsMjEuOTRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC00IiBkPSJNMS42MSw0LjIxLDIuNzMsNS4zNGE1LjczLDUuNzMsMCwwLDAsLjY3LDYuMTVBMTUuODgsMTUuODgsMCwwLDEsNS40OCw4LjFMNi45MSw5LjUyQTEzLjk0LDEzLjk0LDAsMCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZh''@;'; put 'put ''MTMuODksMTMuODksMCwwLDAsMTYuODMsMGw0LjE2LDQuMTdMMzIsMzEuOSwzLDIuOFoiLz4nKSxlLkNsclNoYXBlTmV3PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQuNTksMjNsLTQuMDgtNSw0LTQuOWEx''@;'; put 'put ''LjgyLDEuODIsMCwwLDAsLjIzLTEuOTRBMS45MywxLjkzLDAsMCwwLDMyLjk0LDEwaC0zMUExLjkxLDEuOTEsMCwwLDAsMCwxMS44OFYyNC4xM0ExLjkxLDEuOTEsMCwwLDAsMS45NCwyNkgzMy4wNWExLjkzLDEuOTMsMCwwLDAsMS43Ny0xLjA5QTEuODIsMS44MiwwLDAsMCwzNC41OSwyM1pN''@;'; put 'put ''MiwyNFYxMkgzMi43OGwtNC44NCw1LjkzTDMyLjg1LDI0WiIvPlxuICAgICAgICAgICAgPHBvbHlnb24gIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBwb2ludHM9IjkuMzkgMTkuMzUgNi4xMyAxNSA1IDE1IDUgMjEuMTggNi4xMyAyMS4xOCA2LjEzIDE2Ljg0''@;'; put 'put ''IDkuMzkgMjEuMTggMTAuNTEgMjEuMTggMTAuNTEgMTUgOS4zOSAxNSA5LjM5IDE5LjM1Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHBvaW50cz0iMTIuMTggMjEuMTggMTYuODQgMjEuMTggMTYuODQgMjAuMTYg''@;'; put 'put ''MTMuMzEgMjAuMTYgMTMuMzEgMTguNTUgMTYuNSAxOC41NSAxNi41IDE3LjUyIDEzLjMxIDE3LjUyIDEzLjMxIDE2LjAzIDE2Ljg0IDE2LjAzIDE2Ljg0IDE1IDEyLjE4IDE1IDEyLjE4IDIxLjE4Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTQiIHBvaW50cz0iMjQuNTIgMTkuNDMgMjMuMDYgMTUgMjEuODQgMTUgMjAuMzcgMTkuNDMgMTkuMDUgMTUgMTcuODIgMTUgMTkuNzggMjEuMTggMjAuODkgMjEuMTggMjIuNDUgMTYuNTkgMjQgMjEuMTggMjUuMTMgMjEuMTggMjcuMDggMTUgMjUuODUgMTUgMjQuNTIg''@;'; put 'put ''MTkuNDMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNC4xMSwyNC40OWwtMy45Mi02LjYyLDMuODgtNi4zNUExLDEsMCwwLDAsMzMuMjIsMTBIMmEyLDIsMCwwLDAtMiwyVjI0YTIsMiwwLDAsMCwyLDJIMzMuMjVBMSwx''@;'; put 'put ''LDAsMCwwLDM0LjExLDI0LjQ5Wm0tMjMuNi0zLjMxSDkuMzlMNi4xMywxNi44NHY0LjM1SDVWMTVINi4xM2wzLjI3LDQuMzVWMTVoMS4xMlpNMTYuODQsMTZIMTMuMzF2MS40OWgzLjJ2MWgtMy4ydjEuNjFoMy41M3YxSDEyLjE4VjE1aDQuNjVabTguMjksNS4xNkgyNGwtMS41NS00LjU5TDIw''@;'; put 'put ''LjksMjEuMThIMTkuNzhsLTItNi4xOEgxOWwxLjMyLDQuNDNMMjEuODQsMTVoMS4yMmwxLjQ2LDQuNDNMMjUuODUsMTVoMS4yM1oiLz4nKSxlLkNsclNoYXBlQnViYmxlRXhjbGFtYXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMjguMjks''@;'; put 'put ''MjQuNjFhMSwxLDAsMCwwLS4zMi43M2wwLDUuMzQtNC4zOC0yLjc5YTEsMSwwLDAsMC0uODMtLjExQTE2LDE2LDAsMCwxLDE4LDI4LjVjLTcuNzIsMC0xNC01LjM4LTE0LTEyczYuMjgtMTIsMTQtMTIsMTQsNS4zOCwxNCwxMkExMS4wOCwxMS4wOCwwLDAsMSwyOC4yOSwyNC42MVoiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjAuNjNhMSwxLDAsMCwwLDEtMVY4LjQ4YTEsMSwwLDEsMC0yLDBWMTkuNjFBMSwxLDAsMCwwLDE4LDIwLjYzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgY3g9IjE4IiBjeT0iMjQuMDQiIHI9IjEuMzMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYs''@;'; put 'put ''MTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05LjI3QzM0LDguNzgsMjYuODIsMi41LDE4LDIuNVpNMTYuOTMsOS4xM2ExLjQxLDEuNDEsMCwxLDEsMi44MSwwVjE4LjlhMS40MSwxLjQxLDAsMSwxLTIuODEs''@;'; put 'put ''MFptMS40MSwxNy4zNWExLjg3LDEuODcsMCwxLDEsMS44Ny0xLjg3QTEuODcsMS44NywwLDAsMSwxOC4zNCwyNi40N1oiLz4nKSxlLkNsclNoYXBlR3JpZFZpZXc9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0x''@;'; put 'put ''NCw0SDZBMiwyLDAsMCwwLDQsNnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDE0LDRaTTYsMTRWNmg4djhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLDRIMjJhMiwyLDAs''@;'; put 'put ''MCwwLTIsMnY4YTIsMiwwLDAsMCwyLDJoOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTIyLDE0VjZoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xNCwyMEg2YTIsMiwwLDAsMC0yLDJ2OGEy''@;'; put 'put ''LDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYyMkEyLDIsMCwwLDAsMTQsMjBaTTYsMzBWMjJoOHY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0zMCwyMEgyMmEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCww''@;'; put 'put ''LDIsMmg4YTIsMiwwLDAsMCwyLTJWMjJBMiwyLDAsMCwwLDMwLDIwWk0yMiwzMFYyMmg4djhaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSI0IiB5PSI0IiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIiByeT0iMiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgeD0iMjAiIHk9IjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgcng9IjIiIHJ5PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0zIiB4PSI0IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIHg9IjIwIiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIgcnk9IjIi''@;'; put 'put ''Lz4nKSxlLkNsclNoYXBlQ3Vyc29yQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xNC41OCwzMi4zMWExLDEsMCwwLDEtLjk0LS42NUw0LDUuNjVBMSwxLDAsMCwxLDUuMjUsNC4zN2wyNiw5LjY4YTEs''@;'; put 'put ''MSwwLDAsMS0uMDUsMS44OWwtOC4zNiwyLjU3LDguMyw4LjNhMSwxLDAsMCwxLDAsMS40MWwtMy4yNiwzLjI2YTEsMSwwLDAsMS0uNzEuMjloMGExLDEsMCwwLDEtLjcxLS4yOWwtOC4zMy04LjMzLTIuNiw4LjQ1YTEsMSwwLDAsMS0uOTMuNzFabTMuMDktMTJhMSwxLDAsMCwxLC43MS4yOWw4''@;'; put 'put ''Ljc5LDguNzlMMjksMjcuNTFsLTguNzYtOC43NmExLDEsMCwwLDEsLjQxLTEuNjZsNy4xMy0yLjJMNi42LDdsNy44OSwyMS4yTDE2LjcxLDIxYTEsMSwwLDAsMSwuNzEtLjY4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0i''@;'; put 'put ''TTI5LDEyLjM2LDMuODgsM0ExLDEsMCwwLDAsMi41OSw0LjI4TDEyLDI5LjQ0YTEsMSwwLDAsMCwxLjg5LS4wNWwyLjY5LTguNzUsOS4xMiw4LjlhMSwxLDAsMCwwLDEuNDEsMGwyLjM1LTIuMzVhMSwxLDAsMCwwLDAtMS40MWwtOS4wOS04Ljg2TDI5LDE0LjI1QTEsMSwwLDAsMCwyOSwxMi4z''@;'; put 'put ''NloiLz4nKSxlLkNsclNoYXBlQ3Vyc29ySGFuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLjc0LDE1LjE5YTEzLjY2LDEzLjY2LDAsMCwwLTYuODctMy44M0EyNiwyNiwwLDAsMCwxOCwxMC41OFY1LjI4''@;'; put 'put ''QTMuNCwzLjQsMCwwLDAsMTQuNSwyLDMuNCwzLjQsMCwwLDAsMTEsNS4yOHYxMEw5LjQsMTMuN2EzLjc3LDMuNzcsMCwwLDAtNS4yOCwwQTMuNjcsMy42NywwLDAsMCwzLDE2LjMzYTMuNiwzLjYsMCwwLDAsMSwyLjU2bDQuNjYsNS41MmExMS41MywxMS41MywwLDAsMCwxLjQzLDQsMTAuMTIs''@;'; put 'put ''MTAuMTIsMCwwLDAsMiwyLjU0djEuOTJhMS4wNywxLjA3LDAsMCwwLDEsMS4wOEgyN2ExLjA3LDEuMDcsMCwwLDAsMS0xLjA4di0yLjdhMTIuODEsMTIuODEsMCwwLDAsMy04LjM2di02QTEsMSwwLDAsMCwzMC43NCwxNS4xOVpNMjksMjEuODZhMTAuNzIsMTAuNzIsMCwwLDEtMi42LDcuMjYs''@;'; put 'put ''MS4xMSwxLjExLDAsMCwwLS40LjcyVjMySDE0LjE0VjMwLjUyYTEsMSwwLDAsMC0uNDQtLjgzLDcuMjYsNy4yNiwwLDAsMS0xLjgyLTIuMjMsOS4xNCw5LjE0LDAsMCwxLTEuMi0zLjUyLDEsMSwwLDAsMC0uMjMtLjU5TDUuNTMsMTcuNTNhMS43LDEuNywwLDAsMSwwLTIuNDIsMS43NiwxLjc2''@;'; put 'put ''LDAsMCwxLDIuNDcsMGwzLDN2My4xNGwyLTFWNS4yOEExLjQyLDEuNDIsMCwwLDEsMTQuNSw0LDEuNDIsMS40MiwwLDAsMSwxNiw1LjI4djExLjhsMiwuNDNWMTIuNTlhMjQuMjcsMjQuMjcsMCwwLDEsMi41MS4xOFYxOGwxLjYuMzVWMTNjLjQxLjA4LjgzLjE3LDEuMjYuMjhhMTQuODgsMTQu''@;'; put 'put ''ODgsMCwwLDEsMS41My40OXY1LjE1bDEuNi4zNVYxNC41QTExLjA2LDExLjA2LDAsMCwxLDI5LDE2LjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI4LjY5LDE0LjMzdjQuODNsLTItLjQzVjEzLjI0YTE2LjE5LDE2''@;'; put 'put ''LjE5LDAsMCwwLTIuMzMtLjg0djUuODJsLTItLjQzVjEyYy0xLjEtLjE4LTIuMTgtLjMtMy4wOC0uMzZ2NS41MWwtMi0uNDNWMTEuNDhoMFY0LjM0YTIuNTMsMi41MywwLDAsMC0yLjYtMi40MywyLjUzLDIuNTMsMCwwLDAtMi42LDIuNDNWMTcuMjdoMHYyLjU5bC0yLDFWMTUuNkw3Ljc1LDEz''@;'; put 'put ''LjIxYTIuODMsMi44MywwLDAsMC00LDAsMi45MywyLjkzLDAsMCwwLDAsNC4wOWw2LDcuMWExMC44MiwxMC44MiwwLDAsMCwxLjM5LDQuMjIsOC40Miw4LjQyLDAsMCwwLDIuMjEsMi43M3YyLjU2SDI3Ljc5VjMwLjYyYTEyLjU0LDEyLjU0LDAsMCwwLDMtOC41di02QTEwLDEwLDAsMCwwLDI4''@;'; put 'put ''LjY5LDE0LjMzWiIvPicpLGUuQ2xyU2hhcGVDdXJzb3JIYW5kQ2xpY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMC40LDE3LjZjLTEuOC0xLjktNC4yLTMuMi02LjctMy43Yy0xLjEtMC4zLTIuMi0wLjUt''@;'; put 'put ''My4zLTAuNmMyLjgtMy4zLDIuMy04LjMtMS0xMS4xcy04LjMtMi4zLTExLjEsMXMtMi4zLDguMywxLDExLjFcbiAgICAgICAgICAgICAgICAgICAgYzAuNiwwLjUsMS4yLDAuOSwxLjgsMS4xdjIuMmwtMS42LTEuNWMtMS40LTEuNC0zLjctMS40LTUuMiwwYy0xLjQsMS40LTEuNSwzLjYtMC4x''@;'; put 'put ''LDVsNC42LDUuNGMwLjIsMS40LDAuNywyLjcsMS40LDMuOVxuICAgICAgICAgICAgICAgICAgICBjMC41LDAuOSwxLjIsMS44LDEuOSwyLjV2MS45YzAsMC42LDAuNCwxLDEsMWgxMy42YzAuNSwwLDEtMC41LDEtMXYtMi42YzEuOS0yLjMsMi45LTUuMiwyLjktOC4xdi01LjhcbiAgICAgICAg''@;'; put 'put ''ICAgICAgICAgICAgQzMwLjcsMTcuOSwzMC42LDE3LjcsMzAuNCwxNy42eiBNOC40LDguMmMwLTMuMywyLjctNS45LDYtNS44YzMuMywwLDUuOSwyLjcsNS44LDZjMCwxLjgtMC44LDMuNC0yLjIsNC41VjcuOVxuICAgICAgICAgICAgICAgICAgICBjLTAuMS0xLjgtMS42LTMuMi0zLjQtMy4y''@;'; put 'put ''Yy0xLjgtMC4xLTMuNCwxLjQtMy40LDMuMnY1LjJDOS41LDEyLjEsOC41LDEwLjIsOC40LDguMkw4LjQsOC4yeiBNMjguNywyNGMwLjEsMi42LTAuOCw1LjEtMi41LDcuMVxuICAgICAgICAgICAgICAgICAgICBjLTAuMiwwLjItMC40LDAuNC0wLjQsMC43djIuMUgxNC4ydi0xLjRjMC0wLjMt''@;'; put 'put ''MC4yLTAuNi0wLjQtMC44Yy0wLjctMC42LTEuMy0xLjMtMS44LTIuMmMtMC42LTEtMS0yLjItMS4yLTMuNFxuICAgICAgICAgICAgICAgICAgICBjMC0wLjItMC4xLTAuNC0wLjItMC42bC00LjgtNS43Yy0wLjMtMC4zLTAuNS0wLjctMC41LTEuMmMwLTAuNCwwLjItMC45LDAuNS0xLjJjMC43''@;'; put 'put ''LTAuNiwxLjctMC42LDIuNCwwbDIuOSwyLjl2M2wxLjktMVY3LjlcbiAgICAgICAgICAgICAgICAgICAgYzAuMS0wLjcsMC43LTEuMywxLjUtMS4yYzAuNywwLDEuNCwwLjUsMS40LDEuMnYxMS41bDIsMC40di00LjZjMC4xLTAuMSwwLjItMC4xLDAuMy0wLjJjMC43LDAsMS40LDAuMSwyLjEs''@;'; put 'put ''MC4ydjUuMWwxLjYsMC4zdi01LjJcbiAgICAgICAgICAgICAgICAgICAgbDEuMiwwLjNjMC41LDAuMSwxLDAuMywxLjUsMC41djVsMS42LDAuM3YtNC42YzAuOSwwLjQsMS43LDEsMi40LDEuN0wyOC43LDI0eiIvPicpLGUuQ2xyU2hhcGVSZXNpemU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSw0YTEsMSwwLDAsMCwwLDJoOS41OWwtOS4yNSw5LjI1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzAsNy40MVYxN2ExLDEsMCwwLDAsMiwwVjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwxLDIsMHY5LjU5bDkuMjUtOS4yNWExLDEsMCwxLDEsMS40MSwxLjQxTDcuNDEsMzBIMTdhMSwxLDAsMCwxLDAsMkg0WiIvPicpLGUuQ2xyU2hhcGVPYmplY3RzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTYuMDgsMTQuOWExMC40MSwxMC40MSwwLDAsMSwxLjg3LS43MWwtNC0xMC43N2EyLDIsMCwwLDAtMy43NSwwTDIsMjUuMjZBMiwyLDAsMCwwLDMuOTIsMjhoNi45NGExMCwxMCwwLDAsMS0uNTItMkgzLjkyTDEy''@;'; put 'put ''LjA2LDQuMTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLDlIMjJhMiwyLDAsMCwwLTIsMnYyLjg1Yy4yMywwLC40NiwwLC42OSwwQTEwLjUxLDEwLjUxLDAsMCwxLDIyLDEzLjlWMTFIMzJWMjFIMzAuNjVh''@;'; put 'put ''MTAuNDIsMTAuNDIsMCwwLDEsLjQ1LDJIMzJhMiwyLDAsMCwwLDItMlYxMUEyLDIsMCwwLDAsMzIsOVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAuNjksMTUuODFhOC41LDguNSwwLDEsMCw4LjUsOC41QTgu''@;'; put 'put ''NTEsOC41MSwwLDAsMCwyMC42OSwxNS44MVptMCwxNWE2LjUsNi41LDAsMSwxLDYuNS02LjVBNi41MSw2LjUxLDAsMCwxLDIwLjY5LDMwLjgxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTEwLjY1LDI0LjQ0YTkuNTEs''@;'; put 'put ''OS41MSwwLDAsMSw3LjA2LTkuMTdMMTMsM2ExLDEsMCwwLDAtMS44NywwTDIuMDcsMjYuNTZBMSwxLDAsMCwwLDMsMjcuOTJoOC4zMkE5LjQ0LDkuNDQsMCwwLDEsMTAuNjUsMjQuNDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0y''@;'; put 'put ''IiBkPSJNMzIsMTBIMjBhMSwxLDAsMCwwLTEsMXY0YTkuNDMsOS40MywwLDAsMSwxMC42Myw5SDMyYTEsMSwwLDAsMCwxLTFWMTFBMSwxLDAsMCwwLDMyLDEwWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBjeD0iMjAuMTUi''@;'; put 'put ''IGN5PSIyNC40NCIgcj0iNy41Ii8+JyksZS5DbHJTaGFwZUJvb2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIHg9IjEwIiB5PSI1LjIiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxLjU1Ii8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI5LDhIOS44NkExLjg5LDEuODksMCwwLDEsOCw2LDIsMiwwLDAsMSw5Ljg2LDRIMjlhMSwxLDAsMCwwLDAtMkg5Ljg2QTQsNCwwLDAsMCw2LDZhNC4xNCw0LjE0LDAsMCwwLDAsLjQ5LDEsMSwwLDAsMCww''@;'; put 'put ''LC4yNFYzMGE0LDQsMCwwLDAsMy44Niw0SDI5YTEsMSwwLDAsMCwxLTFWOS4yNXMwLS4wNiwwLS4wOSwwLS4wNiwwLS4wOUExLjA3LDEuMDcsMCwwLDAsMjksOFpNMjgsMzJIOS44NkEyLDIsMCwwLDEsOCwzMFY5LjU1QTMuNjMsMy42MywwLDAsMCw5Ljg2LDEwSDI4WiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMTAiIHk9IjUuMiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEuNTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOSw4SDkuODZBMS44''@;'; put 'put ''OSwxLjg5LDAsMCwxLDgsNiwyLDIsMCwwLDEsOS44Niw0SDI5YTEsMSwwLDEsMCwwLTJIOS44NkE0LDQsMCwwLDAsNiw2YTQuMTQsNC4xNCwwLDAsMCwwLC40OSwxLDEsMCwwLDAsMCwuMjRWMzBhNCw0LDAsMCwwLDMuODYsNEgyOWExLDEsMCwwLDAsMS0xVjkuMjVzMC0uMDYsMC0uMDksMC0u''@;'; put 'put ''MDYsMC0uMDlBMS4wNywxLjA3LDAsMCwwLDI5LDhaIi8+JyksZS5DbHJTaGFwZUFzdGVyaXNrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZhMy4xMSwzLjEx''@;'; put 'put ''LDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1LDIuOTFMNy4yLDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4xNEwxNSwyMy4y''@;'; put 'put ''NFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4Wk0yOC4yNCwyNGExLDEsMCwwLDEtMS4zNy4zNkwxOSwxOS43NVYyOWExLDEsMCwwLDEtMiwwVjE5Ljc1TDkuMTMsMjQuMzZhMSwxLDAsMCwxLTEtMS43MkwxNiwx''@;'; put 'put ''OGwtNy45LTQuNjRhMSwxLDAsMSwxLDEtMS43MkwxNywxNi4yNVY3YTEsMSwwLDAsMSwyLDB2OS4yNWw3Ljg3LTQuNjJhMSwxLDAsMCwxLDEsMS43MkwyMCwxOGw3LjksNC42NEExLDEsMCwwLDEsMjguMjQsMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0xIiBkPSJNMjguODksMjAuOTFsLTUtMi45MSw0Ljg3LTIuODZhMy4xMSwzLjExLDAsMCwwLDEuMTQtMS4wOCwzLDMsMCwwLDAtNC4wOS00LjE1TDIxLDEyLjc2VjdhMywzLDAsMCwwLTYsMHY1Ljc2TDEwLjE1LDkuOTFhMywzLDAsMSwwLTMsNS4xOGw1LDIuOTFMNy4y''@;'; put 'put ''LDIwLjg2YTMuMTEsMy4xMSwwLDAsMC0xLjE0LDEuMDgsMywzLDAsMCwwLDQuMDksNC4xNEwxNSwyMy4yNFYyOC45YTMsMywwLDAsMCwyLDIuOTRBMywzLDAsMCwwLDIxLDI5VjIzLjI0bDQuODUsMi44NWEzLDMsMCwxLDAsMy01LjE4WiIvPicpLGUuQ2xyU2hhcGVTY2lzc29ycz0oMCxhLmNs''@;'; put 'put ''ckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSJcbiAgICAgICAgICAgIGQ9Ik0yNC4wNiwxOC4xOGw5LjYxLTguNzdhMSwxLDAsMCwwLS4wOS0xLjU1bC0yLjI0LTEuNmEzLjU3LDMuNTcsMCwwLDAtNC4yOC4xMkwxNS44OCwxNS4zbC0z''@;'; put 'put ''LjI2LTIuNTJhNS40NSw1LjQ1LDAsMSwwLTEsMS43N2wyLjYyLDJMMTAsMjBhNS40OCw1LjQ4LDAsMSwwLDEuNTksMS4yOUwyOC4zLDcuOTRhMS41NywxLjU3LDAsMCwxLDEuODgtLjA1bDEuMjMuODhMMjEuMSwxOC4xOWwxMC4zMSw5LjQtMS4yMy44OGExLjU3LDEuNTcsMCwwLDEtMS44OC0u''@;'; put 'put ''MDVsLTkuODEtNy44NUwxNywyMS45M2wxMC4wNiw4YTMuNTcsMy41NywwLDAsMCw0LjI5LjEybDIuMjQtMS42YTEsMSwwLDAsMCwuMDktMS41NVpNNy40NSwxNC41NGEzLjQ2LDMuNDYsMCwxLDEsMy40NS0zLjQ2QTMuNDYsMy40NiwwLDAsMSw3LjQ1LDE0LjU0Wm0wLDEzLjcyQTMuNDYsMy40''@;'; put 'put ''NiwwLDEsMSwxMC45LDI0LjgsMy40NiwzLjQ2LDAsMCwxLDcuNDUsMjguMjZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzMuODEsOC4xMywzMS42Myw2LjQ4YTEuOTIsMS45MiwwLDAsMC0yLjM2LDBMMTAsMjIuMDZh''@;'; put 'put ''NS40Niw1LjQ2LDAsMSwwLDIsMS44MWwzLjktMy4xMkwyOS4yNywzMS41MmExLjkyLDEuOTIsMCwwLDAsMi4zNiwwbDIuMTgtMS42NEwyMC45NCwxOVpNNy40NSwyOS43NWEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODcsMi44NywwLDAsMSw3LjQ1LDI5Ljc1WiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTE0LjMsMTUuMjQsMTIsMTMuMzhhNS40Niw1LjQ2LDAsMSwwLTIsMS44MUwxMi4xNiwxN1ptLTYuODUtMmEyLjg2LDIuODYsMCwxLDEsMi44Ni0yLjg2QTIuODYsMi44NiwwLDAsMSw3LjQ1LDEzLjIz''@;'; put 'put ''WiIvPicpLGUuQ2xyU2hhcGVCdWc9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgY3g9IjIzLjU2IiBjeT0iMTcuNzQiIHI9IjEuOTUiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTIiIGN4PSIyMi40MiIgY3k9IjI1Ljg4IiByPSIxLjU4Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBjeD0iMTIuODYiIGN5PSIxNy43NCIgcj0iMS45NSIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgY3g9IjEzLjk5IiBjeT0iMjUuODgiIHI9IjEuNTgiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMzAuODMsMjBIMjlhMTku''@;'; put 'put ''MjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjY0QTE3LjY1LDE3LjY1LDAsMCwxLDI3LDIwLjcyQzI3LDI3LDIzLjgsMzEuMjMsMTguOCwzMS42MlYxNUgxNy4yVjMxLjYyQzEyLjIyLDMxLjIxLDksMjcsOSwyMC43MmExNy43NCwxNy43''@;'; put 'put ''NCwwLDAsMSwxLjczLTcuMzRMNy43LDExLjcyYTEsMSwwLDAsMC0uOTUsMS43NmwxLjUuOEExOS4zOCwxOS4zOCwwLDAsMCw3LjA3LDIwSDUuMTdhMSwxLDAsMCwwLDAsMkg3LjFhMTQuNjIsMTQuNjIsMCwwLDAsMS42Niw2LjE3TDYuODcsMjkuNDlBMSwxLDAsMSwwLDgsMzEuMTJsMS44NC0x''@;'; put 'put ''LjI5QTEwLjM4LDEwLjM4LDAsMCwwLDE4LDMzLjY2YTEwLjM4LDEwLjM4LDAsMCwwLDguMTQtMy44MUwyOCwzMS4xMmExLDEsMCwxLDAsMS4xNS0xLjY0bC0xLjg2LTEuM0ExNC42MSwxNC42MSwwLDAsMCwyOC45NCwyMmgxLjg5YTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgZD0iTTExLjUxLDUuMzZhMS42NywxLjY3LDAsMCwwLDEuMDctLjUxQTMuMjEsMy4yMSwwLDAsMSwxMy43Niw2YTE2LjM4LDE2LjM4LDAsMCwwLTIuNjUsMi44OSwyLDIsMCwwLDAsMS42MSwzLjE5SDIzLjMyQTIs''@;'; put 'put ''MiwwLDAsMCwyNS4xLDExYTIsMiwwLDAsMC0uMTctMi4xQTE2LjM0LDE2LjM0LDAsMCwwLDIyLjI1LDZhMy4yMSwzLjIxLDAsMCwxLDEuMTctMS4xMUExLjY4LDEuNjgsMCwxLDAsMjMsMy4yNyw0Ljc3LDQuNzcsMCwwLDAsMjEsNWE1LjgxLDUuODEsMCwwLDAtMi45My0xLDUuODMsNS44Myww''@;'; put 'put ''LDAsMC0zLDFBNC43Nyw0Ljc3LDAsMCwwLDEzLDMuMjdhMS42OCwxLjY4LDAsMSwwLTEuNDksMi4wOVpNMTgsNi4wN2MxLjQ1LDAsMy41MywxLjU3LDUuMzEsNGgwbC0xMC42LDBDMTQuNDksNy42MywxNi41Niw2LjA3LDE4LDYuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzAuODMsMjBIMjlhMTkuMjksMTkuMjksMCwwLDAtMS4xOC01LjczbDEuNDYtLjc5YTEsMSwwLDAsMC0uOTUtMS43NmwtMywxLjI4SDEwLjc4TDcuNywxMS43MmExLDEsMCwwLDAtLjk1LDEuNzZsMS41LjhBMTkuMzgsMTkuMzgsMCww''@;'; put 'put ''LDAsNy4wNywyMEg1LjE3YTEsMSwwLDAsMCwwLDJINy4xYTE0LjYyLDE0LjYyLDAsMCwwLDEuNjYsNi4xN0w2Ljg3LDI5LjQ5QTEsMSwwLDEsMCw4LDMxLjEybDEuODQtMS4yOUExMC4yOSwxMC4yOSwwLDAsMCwxNywzMy42VjE1aDJWMzMuNmExMC4yOSwxMC4yOSwwLDAsMCw3LjE2LTMuNzVM''@;'; put 'put ''MjgsMzEuMTJhMSwxLDAsMSwwLDEuMTUtMS42NGwtMS44Ni0xLjNBMTQuNjEsMTQuNjEsMCwwLDAsMjguOTQsMjJoMS44OWExLDEsMCwwLDAsMC0yWk0xMC45MSwxNy43NGExLjk1LDEuOTUsMCwxLDEsMS45NSwxLjk1QTEuOTUsMS45NSwwLDAsMSwxMC45MSwxNy43NFpNMTQsMjcuNDZhMS41''@;'; put 'put ''OCwxLjU4LDAsMSwxLDEuNTgtMS41OEExLjU4LDEuNTgsMCwwLDEsMTQsMjcuNDZabTguNDMsMEExLjU4LDEuNTgsMCwxLDEsMjQsMjUuODgsMS41OCwxLjU4LDAsMCwxLDIyLjQyLDI3LjQ2Wm0xLjEzLTcuNzdhMS45NSwxLjk1LDAsMSwxLDEuOTUtMS45NUExLjk1LDEuOTUsMCwwLDEsMjMu''@;'; put 'put ''NTYsMTkuNjlaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTEuMjMsNS4yNmExLjY3LDEuNjcsMCwwLDAsLjU0LS4zMiw1LjksNS45LDAsMCwxLC44OS41OCw3LjQ0LDcuNDQsMCwwLDEsLjk1Ljk0QTE4LjQ4LDE4LjQ4''@;'; put 'put ''LDAsMCwwLDEwLjc5LDkuN2MtLjQuNTcuMDksMS4yOC44NiwxLjI4SDI0LjQ0Yy43NywwLDEuMjYtLjcxLjg2LTEuMjhhMTguMzgsMTguMzgsMCwwLDAtMi44OC0zLjI4LDcuMjgsNy4yOCwwLDAsMSwuOTEtLjksNS45LDUuOSwwLDAsMSwuODktLjU4LDEuNjksMS42OSwwLDEsMC0uNTYtMS41''@;'; put 'put ''MSw3LjQ5LDcuNDksMCwwLDAtMS4zMi44Myw5LjA2LDkuMDYsMCwwLDAtMS4xOSwxLjE4QTUuODUsNS44NSwwLDAsMCwxOCw0LjNhNS45MSw1LjkxLDAsMCwwLTMuMTcsMS4xOSw5LjIsOS4yLDAsMCwwLTEuMjItMS4yMSw3LjQ5LDcuNDksMCwwLDAtMS4zMi0uODMsMS42OCwxLjY4LDAsMSww''@;'; put 'put ''LTEuMTEsMS44M1oiLz4nKSxlLkNsclNoYXBlVGhlcm1vbWV0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOSwyMy4xN1YxMS40NkgxN1YyMy4yYTMsMywwLDEsMCwyLDBaIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1YTEsMSwwLDAsMCwwLTJIMjMuOTJWMTFIMjZhMSwxLDAsMCwwLDAtMkgyMy45MlY4YTYsNiwwLDAsMC0xMiwwVjIwLjgxYTgsOCwwLDEsMCwxMi0uMlYxOUgyNmExLDEsMCwwLDAsMC0ySDIz''@;'; put 'put ''LjkyVjE1Wk0yNCwyNmE2LDYsMCwxLDEtMTAuMzYtNC4xMmwuMjctLjI5VjhhNCw0LDAsMCwxLDgsMFYyMS40NGwuMy4yOUE2LDYsMCwwLDEsMjQsMjZaIi8+JyksZS5DbHJTaGFwZVBlbmNpbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMSIgZD0iTTMzLjg3LDguMzIsMjgsMi40MmEyLjA3LDIuMDcsMCwwLDAtMi45MiwwTDQuMjcsMjMuMmwtMS45LDguMmEyLjA2LDIuMDYsMCwwLDAsMiwyLjUsMi4xNCwyLjE0LDAsMCwwLC40MywwTDEzLjA5LDMyLDMzLjg3LDExLjI0QTIuMDcsMi4wNywwLDAsMCwzMy44Nyw4''@;'; put 'put ''LjMyWk0xMi4wOSwzMC4yLDQuMzIsMzEuODNsMS43Ny03LjYyTDIxLjY2LDguN2w2LDZaTTI5LDEzLjI1bC02LTYsMy40OC0zLjQ2LDUuOSw2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik00LjIyLDIzLjJsLTEu''@;'; put 'put ''OSw4LjJhMi4wNiwyLjA2LDAsMCwwLDIsMi41LDIuMTQsMi4xNCwwLDAsMCwuNDMsMEwxMywzMiwyOC44NCwxNi4yMiwyMCw3LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMzLjgyLDguMzJsLTUuOS01Ljlh''@;'; put 'put ''Mi4wNywyLjA3LDAsMCwwLTIuOTIsMEwyMS43Miw1LjdsOC44Myw4LjgzLDMuMjgtMy4yOEEyLjA3LDIuMDcsMCwwLDAsMzMuODIsOC4zMloiLz4nKSxlLkNsclNoYXBlTm90ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsMzBINlY4SDE5LjIybDItMkg2QTIsMiwwLDAsMCw0LDhW''@;'; put 'put ''MzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1bC0yLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy41Myw1Ljg0LDMwLjE2LDIuNDdhMS42MSwxLjYxLDAsMCwwLTIuMjgsMEwxNC4xNywx''@;'; put 'put ''Ni4yNmwtMS4xMSw0LjgxQTEuNjEsMS42MSwwLDAsMCwxNC42MywyMywxLjY5LDEuNjksMCwwLDAsMTUsMjNsNC44NS0xLjA3TDMzLjUzLDguMTJBMS42MSwxLjYxLDAsMCwwLDMzLjUzLDUuODRaTTE4LjgxLDIwLjA4bC0zLjY2LjgxTDE2LDE3LjI2LDI2LjMyLDYuODdsMi44MiwyLjgyWk0z''@;'; put 'put ''MC4yNyw4LjU2LDI3LjQ1LDUuNzQsMjksNC4xNiwzMS44NCw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNi40LDI5LjMsMi43YTEuNzEsMS43MSwwLDAsMC0yLjM2LDBMMjMuNjUsNkg2QTIsMiwwLDAs''@;'; put 'put ''MCw0LDhWMzBhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjExLjc2bDMtM0ExLjY3LDEuNjcsMCwwLDAsMzMsNi40Wk0xOC44MywyMC4xM2wtNC4xOS45MywxLTQuMTUsOS41NS05LjU3LDMuMjMsMy4yM1pNMjkuNSw5LjQzLDI2LjI3LDYuMmwxLjg1LTEuODUsMy4yMywzLjIzWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmVmcmVzaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIyLjQsMTEuNjVhMS4wOSwxLjA5LDAsMCwwLDEuMDks''@;'; put 'put ''MS4wOUgzNC40M1YxLjgxYTEuMDksMS4wOSwwLDEsMC0yLjE5LDBWOC45NWExNi40MSwxNi40MSwwLDEsMCwxLjQ3LDE1Ljg2LDEuMTIsMS4xMiwwLDAsMC0yLjA1LS45LDE0LjE4LDE0LjE4LDAsMSwxLTEuMDUtMTMuMzZIMjMuNUExLjA5LDEuMDksMCwwLDAsMjIuNCwxMS42NVoiLz4nKSxl''@;'; put 'put ''LkNsclNoYXBlU3luYz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLjg0LDE1LjcyYTEsMSwwLDEsMC0yLC4yOUExMy4xNSwxMy4xNSwwLDAsMSwzMSwxNy45NCwxMywxMywwLDAsMSw4LjcsMjdoNS4zNmEx''@;'; put 'put ''LDEsMCwwLDAsMC0yaC05djlhMSwxLDAsMSwwLDIsMFYyOC4yQTE1LDE1LDAsMCwwLDMyLjg0LDE1LjcyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuMDYsMUExLjA1LDEuMDUsMCwwLDAsMjksMlY3''@;'; put 'put ''LjgzQTE0Ljk0LDE0Ljk0LDAsMCwwLDMsMTcuOTRhMTUuMTYsMTUuMTYsMCwwLDAsLjIsMi40OCwxLDEsMCwwLDAsMSwuODRoLjE2YTEsMSwwLDAsMCwuODItMS4xNUExMy4yMywxMy4yMywwLDAsMSw1LDE3Ljk0YTEzLDEzLDAsMCwxLDEzLTEzQTEyLjg3LDEyLjg3LDAsMCwxLDI3LjQ0LDlI''@;'; put 'put ''MjIuMDZhMSwxLDAsMCwwLDAsMkgzMVYyQTEsMSwwLDAsMCwzMC4wNiwxWiIvPicpLGUuQ2xyU2hhcGVWaWV3TGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0i''@;'; put 'put ''MiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNNywxMEgzMWExLDEsMCwwLDAsMC0ySDdhMSwxLDAsMCwwLDAsMloiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgeD0iMiIgeT0iMTQiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMxLDE0SDdhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0yWiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIyIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC02IiBkPSJNMzEsMjBIN2ExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjIiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIGQ9Ik0zMSwyNkg3YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz4nKSxlLkNsclNoYXBlVmlld0NhcmRzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTUsMTdINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDE3Wk00LDh2N0gxNVY4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzIsMTdIMjFhMiwyLDAsMCwxLTItMlY4YTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwxN1pNMjEsOHY3SDMyVjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTMiIGQ9Ik0xNSwzMEg0YTIsMiwwLDAsMS0yLTJWMjFhMiwyLDAsMCwxLDItMkgxNWEyLDIsMCwwLDEsMiwydjdBMiwyLDAsMCwxLDE1LDMwWk00LDIxdjdIMTVWMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTQiIGQ9Ik0zMiwzMEgyMWEyLDIsMCwwLDEtMi0yVjIxYTIsMiwwLDAsMSwyLTJIMzJhMiwyLDAsMCwxLDIsMnY3QTIsMiwwLDAsMSwzMiwzMFpNMjEsMjF2N0gzMlYyMVoiLz4nKSxlLkNsclNoYXBlTGlnaHRidWxiPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwy''@;'; put 'put ''LjI1YTExLDExLDAsMCwwLTExLDExLDEwLjY4LDEwLjY4LDAsMCwwLDEsNC42MywxNi4zNiwxNi4zNiwwLDAsMCwxLjEyLDEuNzgsMTcsMTcsMCwwLDEsMiwzLjQ3LDE2LjE5LDE2LjE5LDAsMCwxLC41OSw0aDJBMTguMTcsMTguMTcsMCwwLDAsMTMsMjIuNDRhMTguNDYsMTguNDYsMCwwLDAt''@;'; put 'put ''Mi4yMi0zLjkyLDE1Ljc5LDE1Ljc5LDAsMCwxLTEtMS41NEE4LjY0LDguNjQsMCwwLDEsOSwxMy4yM2E5LDksMCwwLDEsMTguMDcsMEE4LjY0LDguNjQsMCwwLDEsMjYuMjEsMTdhMTUuNzksMTUuNzksMCwwLDEtMSwxLjU0QTE4LjQ2LDE4LjQ2LDAsMCwwLDIzLDIyLjQ0YTE4LjE3LDE4LjE3''@;'; put 'put ''LDAsMCwwLS43MSw0LjcxaDJhMTYuMTksMTYuMTksMCwwLDEsLjU5LTQsMTcsMTcsMCwwLDEsMi0zLjQ3QTE2LjMxLDE2LjMxLDAsMCwwLDI4LDE3Ljg2YTEwLjY4LDEwLjY4LDAsMCwwLDEtNC42M0ExMSwxMSwwLDAsMCwxOCwyLjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC42MywxNS41MWEuOC44LDAsMCwwLTEuMTMsMGwtMywzLDIuODYsMy4xM3Y1LjU0SDE5VjIxbC0yLjI0LTIuNDUsMS44OS0xLjg5QS44LjgsMCwwLDAsMTguNjMsMTUuNTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjg2LDI5LjE1SDEyLjExYS44LjgsMCwxLDAsMCwxLjZIMjMuODZhLjguOCwwLDAsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zMiwxMC44OWwtMi43MywyLjczYS44LjgsMCwwLDAsMS4xMywx''@;'; put 'put ''LjEzTDE4LjQ1LDEyYS44LjgsMCwxLDAtMS4xMy0xLjEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyNy4xNVYyMWwtMi4yNC0yLjQ1LDEuODktMS44OWEuOC44LDAsMCwwLTEuMTMtMS4xM2wtMywzLDIu''@;'; put 'put ''ODYsMy4xM3Y1LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMzIuMTVIMTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNzIsMTQuNzUsMTguNDUsMTJhLjguOCwwLDEsMC0xLjEzLTEuMTNsLTIuNzMsMi43M2EuOC44LDAsMCwwLDEuMTMsMS4xM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LDEyLjg4YzAsLjEyLDAsLjIzLDAsLjM1QTguNjQsOC42NCwwLDAsMSwyNi4yMSwxN2ExNS43OSwxNS43OSwwLDAsMS0xLDEuNTRBMTguNDYsMTguNDYsMCwwLDAsMjMsMjIuNDRhMTguMTcsMTguMTcsMCwwLDAt''@;'; put 'put ''LjcxLDQuNzFoMmExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNDUsNy40NSwwLDAsMSwyNywxMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjcxLDI3LjE1QTE4LjE3LDE4LjE3LDAsMCwwLDEzLDIyLjQ0YTE4LjQ2LDE4LjQ2LDAsMCwwLTIuMjItMy45MiwxNS43OSwxNS43OSwwLDAsMS0xLTEuNTRBOC42NCw4LjY0LDAsMCwxLDksMTMu''@;'; put 'put ''MjMsOSw5LDAsMCwxLDIyLjUzLDUuNDdhNy40NSw3LjQ1LDAsMCwxLC40My0yLDExLDExLDAsMCwwLTE2LDkuOCwxMC42OCwxMC42OCwwLDAsMCwxLDQuNjMsMTYuMzYsMTYuMzYsMCwwLDAsMS4xMiwxLjc4LDE3LDE3LDAsMCwxLDIsMy40NywxNi4xOSwxNi4xOSwwLDAsMSwuNTksNFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''YmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44NiwyOS4xNUgxMi4xMWEuOC44LDAsMSwwLDAsMS42SDIzLjg2YS44LjgsMCwwLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsMzIuMTVI''@;'; put 'put ''MTRhLjguOCwwLDEsMCwwLDEuNkgyMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuMjVhMTEsMTEsMCwwLDAtMTEsMTEsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2''@;'; put 'put ''LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42MWwtMi44Ni0zLjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywx''@;'; put 'put ''NywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjgsMTAuNjgsMCwwLDAsMS00LjYzQTExLDExLDAsMCwwLDE4LDIuMjVaTTE4LjQ1LDEybC0yLjczLDIuNzNhLjguOCwwLDEsMS0xLjEzLTEuMTNsMi43My0yLjczQS44LjgsMCwxLDEsMTguNDUsMTJaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMjkuMTVIMTIuMTFhLjguOCwwLDEsMCwwLDEuNkgyMy44NmEuOC44LDAsMCwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0x''@;'; put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwzMi4xNUgxNGEuOC44LDAsMSwwLDAsMS42SDIyYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTIyLjUsNkE3LjQ3LDcuNDcsMCwwLDEsMjMsMy40NGExMSwxMSwwLDAsMC0xNiw5LjgsMTAuNjgsMTAuNjgsMCwwLDAsMSw0LjYzLDE2LjM2LDE2LjM2LDAsMCwwLDEuMTIsMS43OCwxNywxNywwLDAsMSwyLDMuNDcsMTYuMTksMTYuMTksMCwwLDEsLjU5LDRoNS42OVYyMS42MWwtMi44Ni0z''@;'; put 'put ''LjEzLDMtM2EuOC44LDAsMCwxLDEuMTMsMS4xM2wtMS44OSwxLjg5TDE5LDIxdjYuMTdIMjQuM2ExNi4xOSwxNi4xOSwwLDAsMSwuNTktNCwxNywxNywwLDAsMSwyLTMuNDdBMTYuMzEsMTYuMzEsMCwwLDAsMjgsMTcuODZhMTAuNjMsMTAuNjMsMCwwLDAsMS00LjQzQTcuNSw3LjUsMCwwLDEs''@;'; put 'put ''MjIuNSw2Wm0tNCw2LTIuNzMsMi43M2EuOC44LDAsMSwxLTEuMTMtMS4xM2wyLjczLTIuNzNBLjguOCwwLDEsMSwxOC40NSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9''@;'; put 'put ''IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+JyksZS5DbHJTaGFwZURvd25sb2FkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''IiBkPSJNMzEsMzFINWExLDEsMCwwLDAsMCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwyOS40OCwyOC42MSwxOC44N2ExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDI1''@;'; put 'put ''LjY1VjVhMSwxLDAsMCwwLTIsMFYyNS42NUw4LjgxLDE3LjQ2YTEsMSwwLDEsMC0xLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzEsMzFINWExLDEsMCwwLDAs''@;'; put 'put ''MCwySDMxYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTgsMjkuNDgsMjguNjEsMTguODdhMSwxLDAsMCwwLTEuNDEtMS40MUwxOSwyNS42NVY1YTEs''@;'; put 'put ''MSwwLDAsMC0yLDBWMjUuNjVMOC44MSwxNy40NmExLDEsMCwxLDAtMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiBy''@;'; put 'put ''PSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCwwLDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTE4LDI5LjQ4LDI4LjYxLDE4Ljg3YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMjUuNjVWNWExLDEsMCwwLDAtMiwwVjI1LjY1TDguODEsMTcuNDZhMSwxLDAsMSwwLTEuNDEsMS40MVoi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCww''@;'; put 'put ''LDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPicpLGUuQ2xyU2hhcGVVcGxvYWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMSwzMUg1YTEsMSwwLDAsMCww''@;'; put 'put ''LDJIMzFhMSwxLDAsMCwwLDAtMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEuNDEtMS40MUwx''@;'; put 'put ''OCwzLDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0zMSwzMUg1Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDI2YzAu''@;'; put 'put ''NiwwLDEtMC40LDEtMVMzMS42LDMxLDMxLDMxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNOC44LDE1TDE3LDYuOHYyMC42YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTFW''@;'; put 'put ''Ni44TDIwLjEsOGwxLTEuOEwxOCwzTDcuNCwxMy42QzcsMTQsNi45LDE0LjYsNy4yLDE1czEsMC41LDEuNCwwLjFDOC43LDE1LjEsOC44LDE1LjEsOC44LDE1eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxLjFMMjEuMSwxMWMtMC40LDAuNi0wLjIsMS40LDAuMywxLjhjMC4yLDAuMiwwLjUsMC4yLDAuOCwwLjJoMTEuNWMwLjcsMCwxLjMtMC41LDEuMy0xLjJjMC0wLjMtMC4xLTAuNS0wLjItMC44bC01LjctOS45Yy0wLjQtMC42LTEu''@;'; put 'put ''MS0wLjgtMS44LTAuNUMyNy4xLDAuOCwyNywxLDI2LjksMS4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTMxLDMxSDVhMSwxLDAsMCwwLDAsMkgzMWExLDEsMCwwLDAsMC0y''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTguODEsMTUsMTcsNi44M1YyNy40OGExLDEsMCwwLDAsMiwwVjYuODNMMjcuMTksMTVhMSwxLDAsMCwwLDEuNDEtMS40MUwxOCwz''@;'; put 'put ''LDcuMzksMTMuNjFBMSwxLDAsMSwwLDguODEsMTVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBl''@;'; put 'put ''TG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE4LjA5LDIwLjU5QTIuNDEsMi40MSwwLDAsMCwxNywyNS4xNFYyOGgyVjI1LjIzYTIuNDEsMi40MSwwLDAsMC0uOTEtNC42NFoiLz5cbiAgICAgICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDE1VjEwLjcyYTguMiw4LjIsMCwwLDAtOC04LjM2LDguMiw4LjIsMCwwLDAtOCw4LjM2VjE1SDdWMzJhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjE1Wk0xMiwxMC43MmE2''@;'; put 'put ''LjIsNi4yLDAsMCwxLDYtNi4zNiw2LjIsNi4yLDAsMCwxLDYsNi4zNlYxNUgxMlpNOSwzMlYxN0gyN1YzMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYsMTVWMTAuNzJhOC4yLDguMiwwLDAsMC04LTguMzYs''@;'; put 'put ''OC4yLDguMiwwLDAsMC04LDguMzZWMTVIN1YzMmEyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMTVaTTE5LDI1LjIzVjI4SDE3VjI1LjE0YTIuNCwyLjQsMCwxLDEsMiwuMDlaTTI0LDE1SDEyVjEwLjcyYTYuMiw2LjIsMCwwLDEsNi02LjM2LDYuMiw2LjIsMCwwLDEsNiw2LjM2WiIv''@;'; put 'put ''PicpLGUuQ2xyU2hhcGVVbmxvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMiwyNS4xNFYyOGgyVjI1LjIzYTIuNDIsMi40MiwwLDEsMC0yLS4wOVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYzMmEyLDIsMCwwLDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2LjM2djYuODNh''@;'; put 'put ''MSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTIyLDE3VjMySDRWMTdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI2LDJhOC4yLDguMiwwLDAsMC04LDguMzZWMTVIMlYzMmEyLDIsMCww''@;'; put 'put ''LDAsMiwySDIyYTIsMiwwLDAsMCwyLTJWMTVIMjBWMTAuMzZBNi4yLDYuMiwwLDAsMSwyNiw0YTYuMiw2LjIsMCwwLDEsNiw2LjM2djYuODNhMSwxLDAsMCwwLDIsMFYxMC4zNkE4LjIsOC4yLDAsMCwwLDI2LDJaTTE0LDI1LjIzVjI4SDEyVjI1LjE0YTIuNCwyLjQsMCwxLDEsMiwuMDlaIi8+''@;'; put 'put ''JyksZS5DbHJTaGFwZVVzZXJzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuOSwxNy4zYzIuNywwLDQuOC0yLjIsNC44LTQuOWMwLTIuNy0yLjItNC44LTQuOS00LjhjLTIuNywwLTQuOCwyLjItNC44LDQu''@;'; put 'put ''OEMxMywxNS4xLDE1LjIsMTcuMywxNy45LDE3LjN6IE0xNy44LDkuNkMxNy45LDkuNiwxNy45LDkuNiwxNy44LDkuNmMxLjYsMCwyLjksMS4zLDIuOSwyLjlzLTEuMywyLjgtMi45LDIuOGMtMS42LDAtMi44LTEuMy0yLjgtMi44QzE1LDEwLjksMTYuMyw5LjYsMTcuOCw5LjZ6Ii8+XG4gICAg''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMi43LDE2LjdjLTEuOS0xLjctNC40LTIuNi03LTIuNWMtMC4zLDAtMC41LDAtMC44LDBjLTAuMiwwLjgtMC41LDEuNS0wLjksMi4xYzAuNi0wLjEsMS4xLTAuMSwxLjctMC4x''@;'; put 'put ''YzEuOS0wLjEsMy44LDAuNSw1LjMsMS42VjI1aDJ2LThMMzIuNywxNi43eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjMuNCw3LjhjMC41LTEuMiwxLjktMS44LDMuMi0xLjNjMS4yLDAuNSwxLjgsMS45''@;'; put 'put ''LDEuMywzLjJjLTAuNCwwLjktMS4zLDEuNS0yLjIsMS41Yy0wLjIsMC0wLjUsMC0wLjctMC4xYzAuMSwwLjUsMC4xLDEsMC4xLDEuNGMwLDAuMiwwLDAuNCwwLDAuNmMwLjIsMCwwLjQsMC4xLDAuNiwwLjFjMi41LDAsNC41LTIsNC41LTQuNGMwLTIuNS0yLTQuNS00LjQtNC41Yy0xLjYsMC0z''@;'; put 'put ''LDAuOC0zLjgsMi4yQzIyLjUsNi44LDIzLDcuMiwyMy40LDcuOHoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTEyLDE2LjRjLTAuNC0wLjYtMC43LTEuMy0wLjktMi4xYy0wLjMsMC0wLjUsMC0wLjgsMGMt''@;'; put 'put ''Mi42LTAuMS01LjEsMC44LTcsMi40TDMsMTd2OGgydi03LjJjMS42LTEuMSwzLjQtMS43LDUuMy0xLjZDMTAuOSwxNi4yLDExLjUsMTYuMywxMiwxNi40eiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMTAu''@;'; put 'put ''MywxMy4xYzAuMiwwLDAuNCwwLDAuNi0wLjFjMC0wLjIsMC0wLjQsMC0wLjZjMC0wLjUsMC0xLDAuMS0xLjRjLTAuMiwwLjEtMC41LDAuMS0wLjcsMC4xYy0xLjMsMC0yLjQtMS4xLTIuNC0yLjRjMC0xLjMsMS4xLTIuNCwyLjQtMi40YzEsMCwxLjksMC42LDIuMywxLjVjMC40LTAuNSwxLTEs''@;'; put 'put ''MS41LTEuNGMtMS4zLTIuMS00LTIuOC02LjEtMS41Yy0yLjEsMS4zLTIuOCw0LTEuNSw2LjFDNy4zLDEyLjMsOC43LDEzLjEsMTAuMywxMy4xeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMjYuMSwyMi43''@;'; put 'put ''bC0wLjItMC4zYy0yLTIuMi00LjgtMy41LTcuOC0zLjRjLTMtMC4xLTUuOSwxLjItNy45LDMuNEwxMCwyMi43djcuNmMwLDAuOSwwLjcsMS43LDEuNywxLjdjMCwwLDAsMCwwLDBoMTIuOGMwLjksMCwxLjctMC44LDEuNy0xLjdjMCwwLDAsMCwwLDBWMjIuN3ogTTI0LjEsMzBIMTJ2LTYuNmMx''@;'; put 'put ''LjYtMS42LDMuOC0yLjQsNi4xLTIuNGMyLjItMC4xLDQuNCwwLjgsNiwyLjRWMzB6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xMS4wOSwxNC41N2MuMSwwLC4yLDAsLjMx''@;'; put 'put ''LDBhNi40Myw2LjQzLDAsMCwxLC4wOS0yLDIuMDksMi4wOSwwLDEsMSwxLjQ3LTMsNi41OCw2LjU4LDAsMCwxLDEuNTUtMS4zMSw0LjA5LDQuMDksMCwxLDAtMy40Miw2LjMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMTMsMTguMTRhNi41Myw2LjUzLDAsMCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRaIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zMS4zNSwxOC40MkE4LjU5LDguNTksMCwwLDAsMjUsMTUuOTFjLS4zMiwwLS42LDAtLjkuMDZhNi41Myw2LjUzLDAsMCwxLTEuMzUsMi4yNUE3''@;'; put 'put ''LjksNy45LDAsMCwxLDI1LDE3LjkxYTYuOTQsNi45NCwwLDAsMSw0LjY0LDEuNTh2Ni4yN2gyVjE4LjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIGQ9Ik0xOC4xLDE5LjczQTku''@;'; put 'put ''NjksOS42OSwwLDAsMCwxMSwyMi40N2wtLjI1LjI4djcuMzNhMS41NywxLjU3LDAsMCwwLDEuNjEsMS41NEgyMy44M2ExLjU3LDEuNTcsMCwwLDAsMS42MS0xLjU0VjIyLjczbC0uMjUtLjI4QTkuNTgsOS41OCwwLDAsMCwxOC4xLDE5LjczWm01LjMzLDkuODhIMTIuNzNWMjMuNTVhOC4wOCw4''@;'; put 'put ''LjA4LDAsMCwxLDUuMzctMS44Miw4LDgsMCwwLDEsNS4zMywxLjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yMC4yOCwxNC4yN2EyLjQ2LDIuNDYsMCwxLDEtMi40Mi0y''@;'; put 'put ''Ljg5LDIuNDQsMi40NCwwLDAsMSwxLC4yNCwzLjY3LDMuNjcsMCwwLDEsLjQzLTIsNC40MSw0LjQxLDAsMCwwLTEuNDgtLjI3QTQuNDcsNC40NywwLDEsMCwyMi4xNCwxNSwzLjY5LDMuNjksMCwwLDEsMjAuMjgsMTQuMjdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNy4xOC44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDM0YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4zOS44QTEuMjgsMS4yOCwwLDAsMCwyNy4x''@;'; put 'put ''OC44WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgZD0iTTExLjA5LDE0LjU3Yy4xLDAsLjIsMCwuMzEsMGE2LjQzLDYuNDMsMCwwLDEsLjA5LTIsMi4wOSwyLjA5LDAsMSwxLDEuNDct''@;'; put 'put ''Myw2LjU4LDYuNTgsMCwwLDEsMS41NS0xLjMxLDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMTMsMTguMTRhNi41Myw2LjUzLDAs''@;'; put 'put ''MCwxLTEuMjgtMi4ybC0uNjMsMGE4LjY3LDguNjcsMCwwLDAtNi40MywyLjUybC0uMjQuMjh2N2gyVjE5LjUxYTcsNywwLDAsMSw0LjY3LTEuNkE4LjA5LDguMDksMCwwLDEsMTMsMTguMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzEuMzUsMTguNDJBOC41OSw4LjU5LDAsMCwwLDI1LDE1LjkxYy0uMzIsMC0uNiwwLS45LjA2YTYuNTMsNi41MywwLDAsMS0xLjM1LDIuMjVBNy45LDcuOSwwLDAsMSwyNSwxNy45MWE2Ljk0LDYuOTQsMCwwLDEsNC42NCwxLjU4djYu''@;'; put 'put ''MjdoMlYxOC43WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgZD0iTTE3Ljg2LDE4LjNhNC40Nyw0LjQ3LDAsMSwwLTQuNDctNC40N0E0LjQ3LDQuNDcsMCwwLDAsMTcuODYsMTguM1pt''@;'; put 'put ''MC02LjkzYTIuNDcsMi40NywwLDEsMS0yLjQ3LDIuNDdBMi40NywyLjQ3LDAsMCwxLDE3Ljg2LDExLjM3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjEsMTkuNzNBOS42''@;'; put 'put ''OSw5LjY5LDAsMCwwLDExLDIyLjQ3bC0uMjUuMjh2Ny4zM2ExLjU3LDEuNTcsMCwwLDAsMS42MSwxLjU0SDIzLjgzYTEuNTcsMS41NywwLDAsMCwxLjYxLTEuNTRWMjIuNzNsLS4yNS0uMjhBOS41OCw5LjU4LDAsMCwwLDE4LjEsMTkuNzNabTUuMzMsOS44OEgxMi43M1YyMy41NWE4LjA4LDgu''@;'; put 'put ''MDgsMCwwLDEsNS4zNy0xLjgyLDgsOCwwLDAsMSw1LjMzLDEuOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0yNi4zNywxMmEyLDIsMCwwLDEtMi4wOS40Miw2LjUzLDYuNTMs''@;'; put 'put ''MCwwLDEsLjE1LDEuMzgsNi41OSw2LjU5LDAsMCwxLDAsLjY4LDQsNCwwLDAsMCwuNTcuMDYsNC4wOCw0LjA4LDAsMCwwLDMuMy0xLjdBNy40NSw3LjQ1LDAsMCwxLDI2LjM3LDEyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTctLWJhZGdlZCIgZD0iTTIyLjk1LDYuOTNhNC4xNiw0LjE2LDAsMCwwLTEuNDcsMS40NEE2LjU5LDYuNTksMCwwLDEsMjMsOS43N2EyLjEsMi4xLDAsMCwxLC41OS0uODNBNy40NCw3LjQ0LDAsMCwxLDIyLjk1LDYuOTNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNs''@;'; put 'put ''ZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMC4zMyIgY3k9IjUuNjciIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBk''@;'; put 'put ''PSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQu''@;'; put 'put ''NzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMjQuNDMsMTMuNDRhNi41NCw2LjU0LDAsMCwxLDAsLjY5LDQuMDksNC4wOSwwLDAsMCwuNTguMDVoLjE5QTQuMDksNC4wOSwwLDEsMCwyMS40Nyw4LDYuNTMsNi41Myww''@;'; put 'put ''LDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIGN4PSIxNy44NyIgY3k9IjEzLjQ1IiByPSI0LjQ3Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtNiIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5c''@;'; put 'put ''biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTIsMTYuMTRxLS40MywwLS44NywwYTguNjcsOC42NywwLDAsMC02LjQzLDIuNTJsLS4yNC4yOHY4LjI4SDguNTR2LTQuN2wuNTUtLjYyLjI1''@;'; put 'put ''LS4yOWExMSwxMSwwLDAsMSw0LjcxLTIuODZBNi41OSw2LjU5LDAsMCwxLDEyLDE2LjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCww''@;'; put 'put ''LDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwxMC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTEuMSwxNC4xOWMuMTEsMCwuMiwwLC4zMSwwYTYuNDUsNi40NSwwLDAsMSwzLjExLTYuMjksNC4wOSw0LjA5LDAsMSwwLTMuNDIsNi4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIiBkPSJNMTguMTEsMjAuM0E5LjY5LDkuNjksMCwwLDAsMTEsMjNsLS4yNS4yOHY2LjMzYTEuNTcsMS41NywwLDAsMCwxLjYsMS41NEgyMy44NGExLjU3LDEuNTcsMCwwLDAsMS42LTEuNTRWMjMuM0wyNS4yLDIzQTkuNTgsOS41OCww''@;'; put 'put ''LDAsMCwxOC4xMSwyMC4zWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0xNy44NywxNy45MmE0LjQ2LDQuNDYsMCwwLDAsNC0yLjU0QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5bC4z''@;'; put 'put ''NS0uNjFBNC40Miw0LjQyLDAsMCwwLDE3Ljg3LDlhNC40Nyw0LjQ3LDAsMSwwLDAsOC45M1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwy''@;'; put 'put ''MS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMiwxNi4xNHEtLjQzLDAtLjg3LDBhOC42Nyw4LjY3LDAsMCwwLTYuNDMsMi41MmwtLjI0LjI4djguMjhIOC41NHYtNC43bC41NS0uNjIuMjUtLjI5YTExLDExLDAsMCwxLDQuNzEtMi44NkE2LjU4LDYuNTgsMCwwLDEsMTIsMTYuMTRaIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0zMS4zNCwxOC42M2E4LjY3LDguNjcsMCwwLDAtNi40My0yLjUyLDEwLjQ3LDEwLjQ3LDAsMCwwLTEuMDkuMDYsNi41OSw2LjU5LDAsMCwxLTIsMi40NSwx''@;'; put 'put ''MC45MSwxMC45MSwwLDAsMSw1LDNsLjI1LjI4LjU0LjYydjQuNzFoMy45NFYxOC45MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTExLjEsMTQuMTljLjExLDAsLjIsMCwuMzEsMGE2''@;'; put 'put ''LjQ1LDYuNDUsMCwwLDEsMy4xMS02LjI5LDQuMDksNC4wOSwwLDEsMC0zLjQyLDYuMzNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgY3g9IjE3Ljg3IiBjeT0iMTMuNDUiIHI9IjQuNDci''@;'; put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJhZGdlZCIgZD0iTTE4LjExLDIwLjNBOS42OSw5LjY5LDAsMCwwLDExLDIzbC0uMjUuMjh2Ni4zM2ExLjU3LDEuNTcsMCwwLDAsMS42LDEuNTRIMjMuODRhMS41''@;'; put 'put ''NywxLjU3LDAsMCwwLDEuNi0xLjU0VjIzLjNMMjUuMiwyM0E5LjU4LDkuNTgsMCwwLDAsMTguMTEsMjAuM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTYtLWJhZGdlZCIgZD0iTTI0LjQzLDEzLjQ0YTYuNTQs''@;'; put 'put ''Ni41NCwwLDAsMSwwLC42OSw0LjA5LDQuMDksMCwwLDAsLjU4LjA1aC4xOWE0LjA1LDQuMDUsMCwwLDAsMi41Mi0xLDcuNSw3LjUsMCwwLDEtNS4xNC02LjMyQTQuMTMsNC4xMywwLDAsMCwyMS40Nyw4LDYuNTMsNi41MywwLDAsMSwyNC40MywxMy40NFoiLz5cbiAgICAgICAgICAgICAgICA8''@;'; put 'put ''Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZVBvcE91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LDMzSDVhMiwyLDAsMCwxLTItMlY5QTIsMiwwLDAsMSw1LDdIMTVWOUg1VjMxSDI3VjIxaDJWMzFBMiwyLDAsMCwxLDI3LDMzWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; put 'put ''IiBkPSJNMTgsM2ExLDEsMCwwLDAsMCwySDI5LjU5TDE1Ljc0LDE4Ljg1YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzEsNi40MVYxOGExLDEsMCwwLDAsMiwwVjNaIi8+JyksZS5DbHJTaGFwZUZpbHRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMSIgZD0iTTMzLDRIM0ExLDEsMCwwLDAsMiw1VjYuNjdhMS43OSwxLjc5LDAsMCwwLC41MywxLjI3TDE0LDE5LjU4djEwLjJsMiwuNzZWMTlhMSwxLDAsMCwwLS4yOS0uNzFMNCw2LjU5VjZIMzJ2LjYxTDIwLjMzLDE4LjI5QTEsMSwwLDAsMCwyMCwxOWwwLDEzLjIxTDIy''@;'; put 'put ''LDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEsMCwwLDAsMzQsNi43VjVBMSwxLDAsMCwwLDMzLDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIyLDMzVjE5LjVMMzMuNDcsOEExLjgxLDEuODEsMCwwLDAsMzQs''@;'; put 'put ''Ni43VjVhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDVWNi42N2ExLjc5LDEuNzksMCwwLDAsLjUzLDEuMjdMMTQsMTkuNTh2MTAuMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMzMuNDgsNGgtMzFBLjUyLjUyLDAsMCwwLDIsNC41MlY2LjI0YTEuMzMsMS4zMywwLDAsMCwu''@;'; put 'put ''MzkuOTVsMTIsMTJ2MTBsNy4yNSwzLjYxVjE5LjE3bDEyLTEyQTEuMzUsMS4zNSwwLDAsMCwzNCw2LjI2VjQuNTJBLjUyLjUyLDAsMCwwLDMzLjQ4LDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVQaW49KDAsYS5jbHJJY29uU1ZHKSgn''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywxNi41OWExLDEsMCwwLDEtLjcxLS4yOUwxOS43LDMuNzFhMSwxLDAsMCwxLDEuNDEtMS40MUwzMy43MSwxNC44OUExLDEsMCwwLDEsMzMsMTYuNTlaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yOC41MiwxNS41NmwtMS40MS0xLjQxLTcuMiw3LjJhMSwxLDAsMCwwLS4yNSwxLDksOSwwLDAsMS0xLjUzLDguMDlMNS41OCwxNy44N2E5LDksMCwwLDEsOC4wOS0xLjUzLDEsMSwwLDAsMCwxLS4yNWw3''@;'; put 'put ''LjItNy4yTDIwLjQ0LDcuNDhsLTYuNzksNi43OUExMC45NCwxMC45NCwwLDAsMCwzLjQxLDE3LjExYTEsMSwwLDAsMCwwLDEuNDJsNi4zMyw2LjMzTDIuMjksMzIuMjlhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGExLDEsMCwwLDAs''@;'; put 'put ''LjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMzLDE2LjcxYTEsMSwwLDAsMS0uNzEtLjI5TDE5LjcsMy44MmExLDEsMCwwLDEsMS40MS0xLjQxTDMzLjcxLDE1''@;'; put 'put ''QTEsMSwwLDAsMSwzMywxNi43MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjAuNDQsNy41OWwtNi43OSw2Ljc5QTEwLjk0LDEwLjk0LDAsMCwwLDMuNDEsMTcuMjJhMSwxLDAsMCwwLDAsMS40Mkw5LjczLDI1''@;'; put 'put ''LDIuMjksMzIuNDFhMSwxLDAsMSwwLDEuNDEsMS40MWw3LjQ0LTcuNDQsNi4zMyw2LjMzYTEsMSwwLDAsMCwuNzEuMjloMGExLDEsMCwwLDAsLjcxLS4zLDExLDExLDAsMCwwLDIuODQtMTAuMjRsNi43OS02Ljc5WiIvPicpLGUuQ2xyU2hhcGVGaWxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRo''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWm0tLjMsMi40OSw2LDUu''@;'; put 'put ''OWgtNlpNOCwzMFY2SDIwdjhoOFYzMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yMS41OSwxMi4zOVY2LjQ5bDEuMDcsMWE3LjMxLDcuMzEsMCwwLDEsMC0yLjgyTDIxLjg5''@;'; put 'put ''LDRINy44M0ExLjg4LDEuODgsMCwwLDAsNiw1LjkxVjMwLjA5QTEuODgsMS44OCwwLDAsMCw3LjgzLDMySDI4LjE3QTEuODgsMS44OCwwLDAsMCwzMCwzMC4wOVYxMy41YTcuNDUsNy40NSwwLDAsMS0zLjkxLTEuMTFaTTI4LDMwSDhWNkgyMHY4aDhaIi8+XG4gICAgICAgICAgICAgICAgPGNp''@;'; put 'put ''cmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMS0tYWxlcnRlZCIgZD0iTTI4LDE1LjRWMzBIOFY2SDIwVjguMjVsMi4yNS0zLjlMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjE1LjRaIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQu''@;'; put 'put ''NzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4''@;'; put 'put ''LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjExLjkyWk0yMSwxM1Y1Ljg0TDI4LjMsMTNaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNy4yNSwx''@;'; put 'put ''M0gyMVY1Ljg0bDEuNjQsMS42YTcuMjUsNy4yNSwwLDAsMSwwLTIuNzRMMjEuODksNEg3LjgzQTEuODgsMS44OCwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OCwxLjg4LDAsMCwwLDcuODMsMzJIMjguMTdBMS44OCwxLjg4LDAsMCwwLDMwLDMwLjA5VjEzLjVBNy40Nyw3LjQ3LDAsMCwxLDI3LjI1''@;'; put 'put ''LDEzWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjIuMiwxNS40Yy0yLDAtMy43LTEuNi0zLjctMy42YzAtMC43LDAuMi0xLjMsMC41LTEuOWwzLjItNS41TDIxLjksNEg3LjhDNi44LDQsNiw0LjksNiw1Ljl2MjQuMmMwLDEsMC44LDEuOSwxLjgsMS45aDIwLjNjMSww''@;'; put 'put ''LDEuOC0wLjksMS44LTEuOVYxNS40SDIyLjJ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMs''@;'; put 'put ''MS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz4nKSxlLkNsclNoYXBlUGx1cz0oMCxhLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMwLDE3SDE5VjZhMSwxLDAsMSwwLTIsMFYxN0g2YTEsMSwwLDAsMC0xLDEsLjkxLjkxLDAsMCwwLDEsLjk0SDE3VjMwYTEsMSwwLDEsMCwyLDBWMTlIMzBhMSwxLDAsMCwwLDEtMUEx''@;'; put 'put ''LDEsMCwwLDAsMzAsMTdaIi8+JyksZS5DbHJTaGFwZU1pbnVzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNiwxN0gxMGExLDEsMCwwLDAsMCwySDI2YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBl''@;'; put 'put ''TWludXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDE3SDEyYTEsMSwwLDAsMCwwLDJIMjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYs''@;'; put 'put ''MTYsMCwwLDAsMTgsMlptNiwxNy41SDEyYTEuNSwxLjUsMCwwLDEsMC0zSDI0YTEuNSwxLjUsMCwwLDEsMCwzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUGx1c0NpcmNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuMTcs''@;'; put 'put ''MTdIMTlWOS44M2ExLDEsMCwwLDAtMiwwVjE3SDkuODNhMSwxLDAsMCwwLDAsMkgxN3Y3LjE3YTEsMSwwLDAsMCwyLDBWMTloNy4xN2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwy''@;'; put 'put ''QTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTM0LDE4QTE2LDE2LDAsMSwx''@;'; put 'put ''LDE4LDIsMTYsMTYsMCwwLDEsMzQsMThabS04LjQxLTEuNUgxOS41VjEwLjQxYTEuNSwxLjUsMCwwLDAtMywwVjE2LjVIMTAuNDFhMS41LDEuNSwwLDAsMCwwLDNIMTYuNXY2LjA5YTEuNSwxLjUsMCwwLDAsMywwVjE5LjVoNi4wOWExLjUsMS41LDAsMCwwLDAtM1oiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlQmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWk00LDE4QTEzLjkz''@;'; put 'put ''LDEzLjkzLDAsMCwxLDcuNDMsOC44NUwyNy4xNSwyOC41N0ExNCwxNCwwLDAsMSw0LDE4Wm0yNC41Nyw5LjE1TDguODUsNy40M0ExNCwxNCwwLDAsMSwyOC41NywyNy4xNVoiLz4nKSxlLkNsclNoYXBlVGltZXNDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOS42MSwxOGw0Ljg2LTQuODZhMSwxLDAsMCwwLTEuNDEtMS40MUwxOC4yLDE2LjU0bC00Ljg5LTQuODlhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi43OCwxOCwxMiwyMi43MmExLDEsMCwxLDAsMS40MSwxLjQxbDQuNzctNC43Nyw0Ljc0''@;'; put 'put ''LDQuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4''@;'; put 'put ''LDE0LDE0LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptOCwyMi4xYTEuNCwxLjQsMCwwLDEtMiwybC02LTZMMTIsMjYu''@;'; put 'put ''MTJhMS40LDEuNCwwLDEsMS0yLTJMMTYsMTguMDgsOS44MywxMS44NmExLjQsMS40LDAsMSwxLDItMkwxOCwxNi4xbDYuMTctNi4xN2ExLjQsMS40LDAsMSwxLDIsMkwyMCwxOC4wOFoiLz4nKSxlLkNsclNoYXBlVHJhc2g9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy4xNCwzNEg4Ljg2QTIuOTMsMi45MywwLDAsMSw2LDMxVjExLjIzSDhWMzFhLjkzLjkzLDAsMCwwLC44NiwxSDI3LjE0QS45My45MywwLDAsMCwyOCwzMVYxMS4yM2gyVjMxQTIuOTMsMi45MywwLDAsMSwyNy4xNCwzNFoiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMwLjc4LDlINUExLDEsMCwwLDEsNSw3SDMwLjc4YTEsMSwwLDAsMSwwLDJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTMiIHg9IjIxIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMTUiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgeD0iMTMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIxNSIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiBkPSJNMjMsNS44NkgyMS4xVjRIMTQuOVY1Ljg2SDEzVjRhMiwyLDAsMCwxLDEuOS0yaDYuMkEyLDIsMCwwLDEsMjMsNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNNiw5VjMxYTIuOTMsMi45MywwLDAsMCwyLjg2LDNIMjcuMDlBMi45MywyLjkzLDAsMCwwLDMwLDMxVjlabTksMjBIMTNWMTRoMlptOCwwSDIxVjE0aDJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjczLDVIMjNWNEEyLDIsMCwwLDAsMjEsMmgtNi4yQTIsMiwwLDAsMCwxMyw0VjVINUExLDEsMCwxLDAsNSw3SDMwLjczYTEsMSwwLDAsMCwwLTJaIi8+JyksZS5DbHJTaGFwZVRhZz0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMC41''@;'; put 'put ''MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2bDAsOS45MmEyLDIsMCwwLDAs''@;'; put 'put ''LjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNMjAuNjIsMzAuNTIsNiwxNS45MVY2aDkuOTJsMTQuNiwxNC42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjJsLTMuOC0zLjhIMjUuMzFsNS4yMiw1LjIyLTkuOSw5''@;'; put 'put ''LjlMNiwxNS45MVY2aDkuOTJsMy40MSwzLjQxLDEtMS43OC0zLTNBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4x''@;'; put 'put ''NEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC41MiIgY3k9IjEwLjUyIiByPSIxLjQzIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS45MywxOS4yLDE3LjMzLDQuNkEyLDIsMCwwLDAsMTUuOTIsNEw2LDRBMiwyLDAsMCwwLDQsNmwwLDkuOTJhMiwyLDAsMCwwLC41OSwxLjQxbDE0LjYs''@;'; put 'put ''MTQuNmEyLDIsMCwwLDAsMi44MywwbDkuOS05LjlBMiwyLDAsMCwwLDMxLjkzLDE5LjJaTTIwLjYyLDMwLjUyLDYsMTUuOTFWNmg5LjkybDE0LjYsMTQuNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuOTMsMTkuMiwxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRM''@;'; put 'put ''Niw0QTIsMiwwLDAsMCw0LDZsMCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45QTIsMiwwLDAsMCwzMS45MywxOS4yWk05LjY1LDExLjMxYTEuNjYsMS42NiwwLDEsMSwxLjY2LTEuNjZBMS42NiwxLjY2LDAsMCwxLDkuNjUsMTEuMzFa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNDYsMTUuNzNIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDEwLjIybDEuNDMtMi40N0wxNy4zMyw0LjZBMiwyLDAsMCwwLDE1LjkyLDRMNiw0QTIsMiwwLDAsMCw0LDZs''@;'; put 'put ''MCw5LjkyYTIsMiwwLDAsMCwuNTksMS40MWwxNC42LDE0LjZhMiwyLDAsMCwwLDIuODMsMGw5LjktOS45YTIsMiwwLDAsMCwwLTIuODNaTTkuNjUsMTEuMzFhMS42NiwxLjY2LDAsMSwxLDEuNjYtMS42NkExLjY2LDEuNjYsMCwwLDEsOS42NSwxMS4zMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjQ3bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjQ3QTEuMjgsMS4yOCwwLDAs''@;'; put 'put ''MCwyNi44NSwxLjQ3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjkzLDE5LjIsMTcuMzMsNC42QTIsMiwwLDAsMCwxNS45Miw0TDYsNEEyLDIsMCwwLDAsNCw2''@;'; put 'put ''bDAsOS45MmEyLDIsMCwwLDAsLjU5LDEuNDFsMTQuNiwxNC42YTIsMiwwLDAsMCwyLjgzLDBsOS45LTkuOUEyLDIsMCwwLDAsMzEuOTMsMTkuMlpNOS42NSwxMS4zMWExLjY2LDEuNjYsMCwxLDEsMS42Ni0xLjY2QTEuNjYsMS42NiwwLDAsMSw5LjY1LDExLjMxWiIgY2xhc3M9ImNsci1pLXNv''@;'; put 'put ''bGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNi4zMyIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNo''@;'; put 'put ''YXBlVGFncz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwzMS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0y''@;'; put 'put ''LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgzLDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkz''@;'; put 'put ''LDAsMCwwLDI3Ljc4LDE5LjE3Wk0xNy4yNiwyOS42OSwzLjY5LDE2LjE1VjdoOS4xTDI2LjM3LDIwLjQ4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNzgsMTkuMTcsMTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIs''@;'; put 'put ''MS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4xN1pNMTcuMjYsMjkuNjksMy42OSwxNi4xNVY3aDkuMUwyNi4zNywyMC40OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFh''@;'; put 'put ''MS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjcuODEiIGN5PSIxMS4xNCIgcj0iMS4zMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzQTMuNjUsMy42NSwwLDAsMSwyMSwxNS4xOWw1LjMzLDUuMjktOS4xMSw5LjIxTDMuNjksMTYuMTVWN2g5LjFsNiw1Ljk0YTMuNjgsMy42OCwwLDAsMSwuMS0yLjY5TDE0LjIsNS41OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYx''@;'; put 'put ''QTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjgzLDYuOCwxOS41OCw1LjU1QTEuOTIsMS45MiwwLDAsMCwxOC4yMSw1SDE2LjEyTDE5Ljc5LDguNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMjkuNDMsMTUuNEgyNi42NWw1LjEsNUwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs''@;'; put 'put ''MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTYsMTkuMTMsMTkuNTgsNS41NUExLjkyLDEuOTIsMCwwLDAsMTguMjEsNUgxNi4xMkwz''@;'; put 'put ''MS43NSwyMC40NSwyMS4yMiwzMS4wN2ExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMWExLjkzLDEuOTMsMCwwLDAsMC0yLjczWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3Ljc4LDE5LjE3LDE0LjIsNS41''@;'; put 'put ''OEExLjkyLDEuOTIsMCwwLDAsMTIuODMsNUgzLjYxQTEuOTMsMS45MywwLDAsMCwxLjY4LDYuOTN2OS4yMmExLjkyLDEuOTIsMCwwLDAsLjU3LDEuMzZMMTUuODQsMzEuMWExLjkzLDEuOTMsMCwwLDAsMi43MywwbDkuMjEtOS4yMUExLjkzLDEuOTMsMCwwLDAsMjcuNzgsMTkuMTdaTTYuNjcs''@;'; put 'put ''MTEuNzJBMS43MywxLjczLDAsMSwxLDguNCwxMCwxLjczLDEuNzMsMCwwLDEsNi42NywxMS43MloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywxNC4yLDUuNThBMS45MiwxLjkyLDAsMCwwLDEyLjgz''@;'; put 'put ''LDVIMy42MUExLjkzLDEuOTMsMCwwLDAsMS42OCw2LjkzdjkuMjJhMS45MiwxLjkyLDAsMCwwLC41NywxLjM2TDE1Ljg0LDMxLjFhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFBMS45MywxLjkzLDAsMCwwLDI3Ljc4LDE5LjE3Wk02LjY3LDExLjcyQTEuNzMsMS43MywwLDEsMSw4''@;'; put 'put ''LjQsMTAsMS43MywxLjczLDAsMCwxLDYuNjcsMTEuNzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYu''@;'; put 'put ''MTJMMzEuNzUsMjAuNDUsMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIxLTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4''@;'; put 'put ''PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAuODMsNi44LDE5LjU4LDUuNTVBMS45MiwxLjkyLDAsMCwwLDE4LjIxLDVIMTYuMTJMMTku''@;'; put 'put ''NzksOC42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjE2LDE5LjEzLDI5LjQzLDE1LjRIMjYuNjVsNS4xLDVMMjEuMjIsMzEuMDdhMS45MywxLjkzLDAsMCwwLDIuNzMsMGw5LjIx''@;'; put 'put ''LTkuMjFhMS45MywxLjkzLDAsMCwwLDAtMi43M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy43OCwxOS4xNywyNCwxNS40SDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjM2LTUuMTVM''@;'; put 'put ''MTQuMiw1LjU4QTEuOTIsMS45MiwwLDAsMCwxMi44Myw1SDMuNjFBMS45MywxLjkzLDAsMCwwLDEuNjgsNi45M3Y5LjIyYTEuOTIsMS45MiwwLDAsMCwuNTcsMS4zNkwxNS44NCwzMS4xYTEuOTMsMS45MywwLDAsMCwyLjczLDBsOS4yMS05LjIxQTEuOTMsMS45MywwLDAsMCwyNy43OCwxOS4x''@;'; put 'put ''N1pNNi42NywxMS43MkExLjczLDEuNzMsMCwxLDEsOC40LDEwLDEuNzMsMS43MywwLDAsMSw2LjY3LDExLjcyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMs''@;'; put 'put ''MTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVy''@;'; put 'put ''dCIvPicpLGUuQ2xyU2hhcGVIaXN0b3J5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw5LjgzYTEsMSwwLDAsMC0xLDF2OC43Mmw1LjksNEExLDEsMCwwLDAsMjQsMjEuODhsLTUtMy4zOVYxMC44M0ExLDEsMCwwLDAsMTgsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNi4wOSwxNi4wOSwwLDAsMCw0LDEwLjI2VjUuMmExLDEsMCwwLDAtMiwwVjE0aDguOGExLDEsMCwwLDAsMC0ySDUuMzVBMTQsMTQsMCwxLDEsOC41OCwyOC4zNWExLDEsMCwwLDAtMS4zNSwxLjQ4QTE2LDE2''@;'; put 'put ''LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPicpLGUuQ2xyU2hhcGVDbG9jaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMy''@;'; put 'put ''LDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxOC40VjEwLjc1YTEsMSwwLDAsMC0yLDB2OC43Mmw1LjksNGExLDEsMCwxLDAsMS4xMS0xLjY2WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LDE3Ljk0QTkuOTQsOS45NCwwLDAsMSwyMy40MSw5LjU5bC44NS0xLjM2YTExLjU1LDExLjU1LDAsMSwwLTguNTMsMjFMMTYsMjcuN0ExMCwxMCwwLDAsMSw4LDE3Ljk0WiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC45MiwxMC43NWExLDEsMCwwLDAtMiwwdjguNzJsNS45LDRhMSwxLDAsMSwwLDEuMTEtMS42NmwtNS0zLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40NCw3LjQ0LDAsMCwxLTEuOTEuNTgsMTQuMDUsMTQuMDUsMCwxLDEtOC42LTguNiw3LjQ0LDcuNDQsMCwwLDEsLjU4LTEuOTEsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNi4zOGExMS41NiwxMS41NiwwLDAsMC0yLjI3LDIyLjg5TDE2LDI3LjdhMTAsMTAsMCwxLDEsNy4zOS0xOC4xaDBhNy40NSw3LjQ1LDAs''@;'; put 'put ''MCwxLS43OC0yLjIzQTExLjQ1LDExLjQ1LDAsMCwwLDE4LDYuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguOTIsMTAuNzVhMSwxLDAsMCwwLTIsMHY4LjcybDUuOSw0YTEsMSwwLDEsMCwxLjExLTEuNjZsLTUtMy4zOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMTUuMzloLTJBMTQsMTQsMCwxLDEsMjIuMDksNC42MWwxLTEuNzZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDhhOS44MSw5LjgxLDAsMCwxLDIsLjIzbC44NS0xLjQ2YTExLjU1LDExLjU1LDAsMSwwLTUuMTMsMjIuNTJMMTYsMjcuN0ExMCwxMCwwLDAsMSwxOCw4WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjku''@;'; put 'put ''MDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiww''@;'; put 'put ''LDAsMCwxOCwyWm02LjIsMjEuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwyLDBWMTguNGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaTTIzLjg1LDguMjNhMTEuMzksMTEuMzksMCwxLDAtOC41NCwyMC44M0wxNSwzMC42M2ExMywxMywwLDEsMSw5Ljct''@;'; put 'put ''MjMuNzdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFBNy40OCw3LjQ4LDAsMCwxLDIyLjY4LDcuNjMsMTEuMjQsMTEuMjQsMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIuNjksMjIuNDdM''@;'; put 'put ''MTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44MSwxMi44MSwwLDAsMSw0LjUxLjgyLDcuNDYsNy40NiwwLDAsMSwuNjgtMi45NCwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaTTI0LjIsMjMuMThhMSwxLDAsMCwxLTEuMzkuMjhsLTUuOS00VjEwLjc1YTEsMSwwLDAsMSwyLDBWMTgu''@;'; put 'put ''NGw1LDMuMzlBMSwxLDAsMCwxLDI0LjIsMjMuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc3LDE1LjM5SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmMwLS4wOS0uMDktLjE4LS4xMy0uMjdWMTguNGw1LDMuMzlhMSwxLDAsMCwxLTEuMTEsMS42NmwtNS45LTRWMTAu''@;'; put 'put ''NzVhMSwxLDAsMCwxLDEuOTEtLjQxQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDIwLjc0LDdBMTEuMTksMTEuMTksMCwwLDAsMTgsNi42YTExLjM5LDExLjM5LDAsMCwwLTIuNjksMjIuNDdMMTUsMzAuNjNBMTMsMTMsMCwwLDEsMTgsNWExMi44LDEyLjgsMCwwLDEsMy41Ny41MWwxLjUzLTIu''@;'; put 'put ''NjZBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMzMuNzcsMTUuMzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAs''@;'; put 'put ''MjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+JyksZS5DbHJTaGFwZUFs''@;'; put 'put ''YXJtQ2xvY2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQ3LDMuODRhNS43OCw1Ljc4LDAsMCwwLTcuMzctLjYzLDE2LjA4LDE2LjA4LDAsMCwxLDguMiw3LjY1QTUuNzMsNS43MywwLDAsMCwzMS40NywzLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40LDQuMDlBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4LDI3Ljc4QTE0''@;'; put 'put ''LDE0LDAsMCwwLDE2LjQsNC4wOVpNMTkuNTgsMjkuOUExMiwxMiwwLDEsMSwyOS45MiwxOS41NiwxMiwxMiwwLDAsMSwxOS41OCwyOS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC45MiwyMC4zNGwtNi4w''@;'; put 'put ''Ni0zVjkuNWEuOS45LDAsMCwwLTEuOCwwdjlMMjQuMTIsMjJhLjkuOSwwLDEsMCwuNzktMS42MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuNDIsMy40M2E1Ljc3LDUuNzcsMCwwLDAtNy42NC40MSw1Ljcy''@;'; put 'put ''LDUuNzIsMCwwLDAtLjM4LDcuNjRBMTYuMDgsMTYuMDgsMCwwLDEsMTEuNDIsMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODYsOS41YS45LjksMCwwLDAtMS44LDB2''@;'; put 'put ''OUwyNC4xMiwyMmEuOS45LDAsMSwwLC43OS0xLjYybC02LjA2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCwwLDMxLjc3LDE1LjRo''@;'; put 'put ''LTJhMTIuMDcsMTIuMDcsMCwxLDEtOC42Ny05bDEtMS44YTE0LDE0LDAsMCwwLTE0LDIzLjI3TDUuNTYsMzAuNDNBMSwxLDAsMSwwLDcsMzEuODRsMi42Ni0yLjY2YTEzLjksMTMuOSwwLDAsMCwxNi44OC0uMDhsMi43NCwyLjc0YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgs''@;'; put 'put ''MS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03LjY0LjQxLDUuNzIsNS43''@;'; put 'put ''MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4QTEzLjg4LDEzLjg4LDAsMCwwLDMxLjc3LDE1''@;'; put 'put ''LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2TDE5LDEzLjR2My43OEwyNSwyMC4xYTEsMSwwLDEsMS0uODcsMS44TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMFYxMEwxOSw5Ljg5bDMtNS4yOGExNCwxNCwwLDAsMC0xNCwyMy4yN0w1LjU2LDMwLjQzQTEsMSwwLDEsMCw3LDMx''@;'; put 'put ''Ljg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQs''@;'; put 'put ''MjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHIt''@;'; put 'put ''aS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzlBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNmE3LjUyLDcuNTIsMCwwLDEsLjExLTEuMjFBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQzQTEsMSww''@;'; put 'put ''LDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxWm0tMi41Mi02LjM1YTEsMSwwLDAsMS0xLjMzLjQ3TDE3LDE4LjQ0VjkuNjlhMSwxLDAsMCwxLDIsMHY3LjVMMjUsMjAuMUExLDEsMCwwLDEsMjUuNDks''@;'; put 'put ''MjEuNDNaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHIt''@;'; put 'put ''aS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTExLjQyLDMuNDNhNS43Nyw1Ljc3LDAsMCwwLTcuNjQuNDEsNS43Miw1LjcyLDAsMCwwLS4zOCw3LjY0QTE2LjA4LDE2LjA4LDAsMCwxLDExLjQyLDMuNDNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC44Niw5LjVhLjkuOSwwLDAsMC0xLjgsMHY5TDI0LjEyLDIyYS45LjksMCwxLDAsLjc5LTEuNjJsLTYuMDYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJh''@;'; put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDI3Ljc4YTEzLjg5LDEzLjg5LDAsMCwwLDMuMjEtMTQuMzksNyw3LDAsMCwxLTIuMTEuMDVBMTIsMTIsMCwxLDEsMjIuNTYsNi45LDcuNTQsNy41NCwwLDAsMSwyMi41LDZhNy41Miw3LjUyLDAsMCwxLC4xMS0xLjIxQTE0LDE0LDAs''@;'; put 'put ''MCwwLDguMTEsMjcuODhMNS41NiwzMC40M0ExLDEsMCwxLDAsNywzMS44NGwyLjY2LTIuNjZhMTMuOSwxMy45LDAsMCwwLDE2Ljg4LS4wOGwyLjc0LDIuNzRhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJh''@;'; put 'put ''ZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS40NywzLjg0YTUuNzgsNS43''@;'; put 'put ''OCwwLDAsMC03LjM3LS42MywxNi4wOCwxNi4wOCwwLDAsMSw4LjIsNy42NUE1LjczLDUuNzMsMCwwLDAsMzEuNDcsMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS40MiwzLjQzYTUuNzcsNS43NywwLDAsMC03''@;'; put 'put ''LjY0LjQxLDUuNzIsNS43MiwwLDAsMC0uMzgsNy42NEExNi4wOCwxNi4wOCwwLDAsMSwxMS40MiwzLjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDRBMTQsMTQsMCwwLDAsOC4xMSwyNy44OEw1LjU2LDMwLjQz''@;'; put 'put ''QTEsMSwwLDEsMCw3LDMxLjg0bDIuNjYtMi42NmExMy45LDEzLjksMCwwLDAsMTYuODgtLjA4bDIuNzQsMi43NGExLDEsMCwwLDAsMS40MS0xLjQxTDI4LDI3Ljc4QTE0LDE0LDAsMCwwLDE4LDRabTcuNDcsMTcuNDNhMSwxLDAsMCwxLTEuMzMuNDdMMTcsMTguNDRWOS42OWExLDEsMCwwLDEs''@;'; put 'put ''MiwwdjcuNUwyNSwyMC4xQTEsMSwwLDAsMSwyNS40OSwyMS40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxlLkNsclNoYXBlQ2lyY2xlQXJyb3c9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCww''@;'; put 'put ''LDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMDgsOC4yNmwtNy42MSw3LjYxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTcs''@;'; put 'put ''MTIuMTh2MTVhMSwxLDAsMCwwLDIsMFYxMmw1LjI4LDUuMjhhMSwxLDAsMSwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwy''@;'; put 'put ''Wm04LDE1LjU3YTEuNDMsMS40MywwLDAsMS0yLDBMMTkuNCwxM1YyNy4xNGExLjQsMS40LDAsMCwxLTIuOCwwdi0xNGwtNC40Myw0LjQzYTEuNCwxLjQsMCwwLDEtMi0yTDE4LjA4LDcuNywyNiwxNS41OUExLjQsMS40LDAsMCwxLDI2LDE3LjU3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVDaGlsZEFycm93PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC44MiwxNS44YTEsMSwwLDAsMC0xLjQxLDAsMSwxLDAsMCwwLDAsMS40MUwyNy4yLDIxSDlWMy43OGExLDEsMCwxLDAtMiwwVjIxYTIsMiwwLDAsMCwyLDJIMjcuMTVs''@;'; put 'put ''LTMuNzQsMy43NWExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMSwyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDb3B5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS41''@;'; put 'put ''LDdoLTE5QTEuNSwxLjUsMCwwLDAsOSw4LjV2MjRBMS41LDEuNSwwLDAsMCwxMC41LDM0aDE5QTEuNSwxLjUsMCwwLDAsMzEsMzIuNVY4LjVBMS41LDEuNSwwLDAsMCwyOS41LDdaTTI5LDMySDExVjlIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMuNUExLjUsMS41LDAsMCwwLDI0LjUsMkg1LjVBMS41LDEuNSwwLDAsMCw0LDMuNXYyNEExLjUsMS41LDAsMCwwLDUuNSwyOUg2VjRIMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTI3LDMuNTZBMS41NiwxLjU2LDAsMCwwLDI1LjQzLDJINS41N0ExLjU2LDEuNTYsMCwwLDAsNCwzLjU2VjI4LjQ0QTEuNTYsMS41NiwwLDAsMCw1LjU3LDMwaC41MlY0LjA3SDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgeD0iOCIgeT0iNiIgd2lkdGg9IjIzIiBoZWlnaHQ9IjI4IiByeD0iMS41IiByeT0iMS41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksZS5DbHJTaGFwZUhlbHA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs''@;'; put 'put ''MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguMjksOC45MmE3LjM4LDcuMzgsMCwwLDAtNS43''@;'; put 'put ''MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEuOC44LDAsMCwwLS43Ni45MnMw''@;'; put 'put ''LDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NWMzLS40Miw1LjQzLTIsNS40My01LjI4di0uMDVDMjQuMTgsMTEuMTIsMjEuODQsOC45MiwxOC4yOSw4LjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljc4IiBjeT0iMjYuMiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNC4xOCwxNC4xN3YtLjA1YzAtMy0yLjM0LTUuMi01Ljg4LTUuMmE3LjM4LDcuMzgs''@;'; put 'put ''MCwwLDAtNS43MiwyLjU3LDEsMSwwLDAsMC0uMzIuNzEuOTIuOTIsMCwwLDAsLjk1LjkyLDEuMDgsMS4wOCwwLDAsMCwuNzEtLjI5LDUuNyw1LjcsMCwwLDEsNC4zMy0yYzIuMzYsMCwzLjgzLDEuNTIsMy44MywzLjQxdi4wNWMwLDIuMjEtMS43NiwzLjQ0LTQuNTQsMy42NWEuOC44LDAsMCww''@;'; put 'put ''LS43Ni45MnMwLDIuMzIsMCwyLjc1YTEsMSwwLDAsMCwxLC45aC4xMWExLDEsMCwwLDAsLjktMVYxOS40NUMyMS43NSwxOSwyNC4xOCwxNy40NSwyNC4xOCwxNC4xN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPGNpcmNsZSBjeD0iMTcuNzgiIGN5PSIyNi4yIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4xMiwxMi44MWE3LjQzLDcuNDMsMCwwLDEtMS45MS41OCwx''@;'; put 'put ''NC4wNSwxNC4wNSwwLDEsMS04LjYtOC42LDcuNDQsNy40NCwwLDAsMSwuNTgtMS45MSwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9''@;'; put 'put ''IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuMTIsMTIuODFhNy40OSw3LjQ5LDAsMCwxLTkuOTMtOS45MywxNi4wNiwxNi4wNiww''@;'; put 'put ''LDEsMCw5LjkzLDkuOTNabS0xNS4zNCwxNWExLjY1LDEuNjUsMCwxLDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0LDAtMi43Niww''@;'; put 'put ''LTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4zMWMxLjU3LS4xMiw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3Ljc3LDcuNzcs''@;'; put 'put ''MCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYuMjgsNS42QzI0LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; put 'put ''IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptLS4yMiwyNS44NWExLjY1LDEuNjUsMCwx''@;'; put 'put ''LDEsMS42NS0xLjY1QTEuNjUsMS42NSwwLDAsMSwxNy43OCwyNy44NVptMS4zNy04LjA2djEuNzJhMS4zNywxLjM3LDAsMCwxLTEuMywxLjM2aC0uMTFhMS4zNCwxLjM0LDAsMCwxLTEuMzktMS4zYzAtLjQ0LDAtMi43NiwwLTIuNzZhMS4xOSwxLjE5LDAsMCwxLDEuMTItMS4zMWMxLjU3LS4x''@;'; put 'put ''Miw0LjE4LS43LDQuMTgtMy4yNSwwLTEuODMtMS40MS0zLjA3LTMuNDMtMy4wN2E1LjMxLDUuMzEsMCwwLDAtNCwxLjkyLDEuMzYsMS4zNiwwLDAsMS0yLjM1LS45LDEuNDMsMS40MywwLDAsMSwuNDMtMSw3Ljc3LDcuNzcsMCwwLDEsNi0yLjY5YzMuNywwLDYuMjgsMi4zLDYuMjgsNS42QzI0''@;'; put 'put ''LjU4LDE3LjE2LDIyLjYxLDE5LjIsMTkuMTUsMTkuNzlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksZS5DbHJTaGFwZUxvZ2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAsMC0yLDJIMjhWMzBIMTJWMjAuMkgxMFYzMGEy''@;'; put 'put ''LDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LjEyLDE4LjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFsNS43OS01Ljc5TDE2LjU0''@;'; put 'put ''LDguMjlhMSwxLDAsMCwwLTEuNDEsMS40MUwxOC41LDEzSDRhMSwxLDAsMCwwLTEsMSwxLDEsMCwwLDAsMSwxSDE4LjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDEyYTIsMiwwLDAsMC0yLDJ2N2g4''@;'; put 'put ''LjVMMTUuMTIsOS43MWExLDEsMCwwLDEsMS40MS0xLjQxbDUuNzksNS43OS01Ljc5LDUuNzlhMSwxLDAsMCwxLTEuNDEtMS40MUwxOC41LDE1SDEwVjMwYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwyOCw0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMCwxM0g0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlTG9nb3V0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; put 'put ''Ik03LDZIMjN2OS44aDJWNmEyLDIsMCwwLDAtMi0ySDdBMiwyLDAsMCwwLDUsNlYzMGEyLDIsMCwwLDAsMiwySDIzYTIsMiwwLDAsMCwyLTJIN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMTYsMTcuMjhh''@;'; put 'put ''MSwxLDAsMCwwLTEuNDEsMS40MUwzMC4xMywyMkgxNS42M2ExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoMTQuNWwtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTIzLDRIN0EyLDIsMCwwLDAsNSw2VjMwYTIsMiwwLDAsMCwyLDJIMjNhMiwyLDAsMCwwLDItMlYyNEgxNS42M2ExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLTFIMjVWNkEyLDIsMCwwLDAsMjMsNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4xNiwxNy4yOGExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjEzLDIySDI1djJoNS4xM2wtMy4zOCwzLjQ2YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzQsMjMuMDdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+JyksZS5D''@;'; put 'put ''bHJTaGFwZVByaW50ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDlIMjdWNUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVYxM2EyLDIsMCwwLDEsMi0ySDI5YTIsMiwwLDAsMSwyLDJ2OUgyOS4wOFYyNEgzM1YxM0E0LDQsMCwwLDAsMjksOVpNMjUsOUgxMVY3''@;'; put 'put ''SDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEsMSwwLDAsMCwwLDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxOEg4YTEsMSwwLDAsMCww''@;'; put 'put ''LDJIOVYzMkgyN1YyMGgxYTEsMSwwLDAsMCwwLTJaTTI1LDMwSDExVjIwSDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAyMi4wOSAyOS4wOCAy''@;'; put 'put ''Mi4wOSAyOS4wOCAyNCAzMyAyNCAzMyAxNS40IDMxIDE1LjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxM2EyLDIsMCwwLDEsMi0ySDE4LjY0QTMuNjUsMy42NSwwLDAsMSwx''@;'; put 'put ''OSw5Ljg5TDE5LjU0LDlIMTFWN2g5LjcxbDEuMTMtMkg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDYuOTJWMjIuMDlINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4x''@;'; put 'put ''NCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE4SDhhMSwxLDAsMCwwLDAsMkg5VjMySDI3VjIwaDFhMSwxLDAsMCwwLDAtMlpNMjUsMzBIMTFWMjBIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIxMy4wNCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTIuODhhNy40NSw3LjQ1LDAs''@;'; put 'put ''MCwxLTIsLjU1djguNjZIMjkuMDhWMjRIMzNWMTNDMzMsMTMsMzMsMTIuOTMsMzMsMTIuODhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEzYTIsMiwwLDAsMSwyLTJIMjQuNDJh''@;'; put 'put ''Ny41LDcuNSwwLDAsMS0xLjI3LTJIMTFWN0gyMi41N2E3LjUyLDcuNTIsMCwwLDEtLjA3LTEsNy41NCw3LjU0LDAsMCwxLC4wNy0xSDlWOUg3YTQsNCwwLDAsMC00LDRWMjRINi45MlYyMi4wOUg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0t''@;'; put 'put ''YmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LDlIMjdWNUg5VjlIN2E0''@;'; put 'put ''LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQTQsNCwwLDAsMCwyOSw5Wk0yNSwyNHY2SDExVjE5SDI1Wk0yNSw5SDExVjdIMjVabTQsNkgyN1YxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1''@;'; put 'put ''LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMTkuNTQsOUgxMVY3aDkuNzFsMS4xMy0ySDlWOUg3YTQsNCwwLDAsMC00LDRWMjRIOXY4SDI3VjI0aDZWMTUuNFpNMjUsMjR2NkgxMVYxOUgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0''@;'; put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMywxMi44OGE3LjMsNy4zLDAsMCwxLTQsLjU1VjE1SDI3VjEzaC4zMmE3LjUyLDcuNTIsMCwwLDEtNC4xOC00SDExVjdIMjIuNTdhNy41Miw3LjUyLDAsMCwx''@;'; put 'put ''LS4wNy0xLDcuNTQsNy41NCwwLDAsMSwuMDctMUg5VjlIN2E0LDQsMCwwLDAtNCw0VjI0SDl2OEgyN1YyNGg2VjEzQzMzLDEzLDMzLDEyLjkzLDMzLDEyLjg4Wk0yNSwyNHY2SDExVjE5SDI1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlV29ybGQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LjU0''@;'; put 'put ''LDE4YTE5LjM4LDE5LjM4LDAsMCwwLS40My00aDMuNmExMi4zLDEyLjMsMCwwLDAtLjY3LTEuNkgyNS42OUExOS43MiwxOS43MiwwLDAsMCwyMi44LDYuNTNhMTIuMywxMi4zLDAsMCwwLTIuNTUtLjc2LDE3LjgzLDE3LjgzLDAsMCwxLDMuODksNi41OUgxOC43NVY1LjZjLS4yNSwwLS41MSww''@;'; put 'put ''LS43Nywwcy0uNDksMC0uNzMsMHY2Ljc3SDExLjg2YTE3LjgzLDE3LjgzLDAsMCwxLDMuOS02LjYsMTIuMjgsMTIuMjgsMCwwLDAtMi41NC43NSwxOS43MiwxOS43MiwwLDAsMC0yLjkxLDUuODVINi45NEExMi4zLDEyLjMsMCwwLDAsNi4yNiwxNEg5Ljg5YTE5LjM4LDE5LjM4LDAsMCwwLS40''@;'; put 'put ''Myw0LDE5LjY3LDE5LjY3LDAsMCwwLC41LDQuMzdINi40MkExMi4zNCwxMi4zNCwwLDAsMCw3LjE2LDI0aDMuMjNhMTkuMzIsMTkuMzIsMCwwLDAsMi42OSw1LjM2LDEyLjI4LDEyLjI4LDAsMCwwLDIuNjEuNzlBMTcuOTEsMTcuOTEsMCwwLDEsMTIsMjRoNS4yNnY2LjM0Yy4yNCwwLC40OSww''@;'; put 'put ''LC43Mywwcy41MSwwLC43NywwVjI0SDI0YTE3LjksMTcuOSwwLDAsMS0zLjcsNi4xNSwxMi4yOCwxMi4yOCwwLDAsMCwyLjYyLS44MUExOS4zMiwxOS4zMiwwLDAsMCwyNS42MSwyNGgzLjJhMTIuMzQsMTIuMzQsMCwwLDAsLjc0LTEuNkgyNkExOS42NywxOS42NywwLDAsMCwyNi41NCwxOFpt''@;'; put 'put ''LTkuMjksNC4zN0gxMS41MWExNy42OSwxNy42OSwwLDAsMS0uMDktOC40aDUuODNabTcuMjQsMEgxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4LDE4LjEyLDE4LjEyLDAsMCwxLDI0LjQ5LDIyLjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTMzLjEyLDEyLjgxYTcuNDQsNy40NCwwLDAsMS0xLjkxLjU4LDE0LjA1LDE0LjA1LDAsMSwxLTguNi04LjYsNy40Myw3LjQzLDAsMCwxLC41OC0xLjkxLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLjI1LDUuNzdhMTcuODMsMTcuODMsMCwwLDEsMy44OSw2LjU5SDE4Ljc1VjUuNmMtLjI1LDAtLjUxLDAtLjc3LDBzLS40OSwwLS43MywwdjYuNzdIMTEuODZhMTcuODMsMTcuODMsMCwwLDEsMy45''@;'; put 'put ''LTYuNiwxMi4yOCwxMi4yOCwwLDAsMC0yLjU0Ljc1LDE5LjcyLDE5LjcyLDAsMCwwLTIuOTEsNS44NUg2Ljk0QTEyLjMsMTIuMywwLDAsMCw2LjI2LDE0SDkuODlhMTkuMzgsMTkuMzgsMCwwLDAtLjQzLDQsMTkuNjcsMTkuNjcsMCwwLDAsLjUsNC4zN0g2LjQyQTEyLjM0LDEyLjM0LDAsMCww''@;'; put 'put ''LDcuMTYsMjRoMy4yM2ExOS4zMiwxOS4zMiwwLDAsMCwyLjY5LDUuMzYsMTIuMjgsMTIuMjgsMCwwLDAsMi42MS43OUExNy45MSwxNy45MSwwLDAsMSwxMiwyNGg1LjI2djYuMzRjLjI0LDAsLjQ5LDAsLjczLDBzLjUxLDAsLjc3LDBWMjRIMjRhMTcuOSwxNy45LDAsMCwxLTMuNyw2LjE1LDEy''@;'; put 'put ''LjI4LDEyLjI4LDAsMCwwLDIuNjItLjgxQTE5LjMyLDE5LjMyLDAsMCwwLDI1LjYxLDI0aDMuMmExMi4zNCwxMi4zNCwwLDAsMCwuNzQtMS42SDI2YTE5LjY3LDE5LjY3LDAsMCwwLC41LTQuMzcsMTkuMzgsMTkuMzgsMCwwLDAtLjQzLTRoMy42Yy0uMDYtLjE3LS4xMi0uMzMtLjE5LS40OWE3''@;'; put 'put ''LjQ1LDcuNDUsMCwwLDEtMy40Ny0xLjExaC0uMzZjMC0uMTEtLjA4LS4yMS0uMTEtLjMyYTcuNDgsNy40OCwwLDAsMS0zLjA2LTUuNjJBMTIuNDEsMTIuNDEsMCwwLDAsMjAuMjUsNS43N1ptLTMsMTYuNTlIMTEuNTFhMTcuNjksMTcuNjksMCwwLDEtLjA5LTguNGg1LjgzWk0yNSwxOGExOC4x''@;'; put 'put ''MiwxOC4xMiwwLDAsMS0uNTUsNC4zN0gxOC43NVYxNGg1LjgzQTE4LjIxLDE4LjIxLDAsMCwxLDI1LDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjA1LDE4YTIwLjQ2LDIwLjQ2LDAsMCwwLC42Miw0LjkzaDYuNDhWMTMuNDVIMTAuNThBMjAuNTUsMjAuNTUsMCww''@;'; put 'put ''LDAsMTAuMDUsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguODUsMTMuNDV2OS40OGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlpNMzAuMjIsMjQuNzFIMjYuNmEyMS44LDIxLjgsMCwwLDEtMyw2LDEzLjg2LDEzLjg2LDAsMCwxLTMsLjkyLDIwLjIxLDIwLjIx''@;'; put 'put ''LDAsMCwwLDQuMTgtNi45NEgxOC44NnY3LjE1Yy0uMjksMC0uNTcsMC0uODYsMHMtLjU1LDAtLjgzLDBWMjQuNzFIMTEuMjJhMjAuMjEsMjAuMjEsMCwwLDAsNC4xOCw2Ljk1LDEzLjg2LDEzLjg2LDAsMCwxLTIuOTQtLjksMjEuOCwyMS44LDAsMCwxLTMtNi4wNUg1Ljc4YTEzLjk0LDEzLjk0''@;'; put 'put ''LDAsMCwxLS44My0xLjgxaDRBMjIuMiwyMi4yLDAsMCwxLDguMzcsMThhMjEuODgsMjEuODgsMCwwLDEsLjQ4LTQuNTVINC43NmExMy44OCwxMy44OCwwLDAsMSwuNzYtMS44MUg5LjMzQTIyLjI2LDIyLjI2LDAsMCwxLDEyLjYxLDVhMTMuODYsMTMuODYsMCwwLDEsMi44Ny0uODQsMjAuMTMs''@;'; put 'put ''MjAuMTMsMCwwLDAtNC40LDcuNDVoNi4wOVY0Yy4yOCwwLC41NSwwLC44Mywwcy41OCwwLC44NiwwdjcuNjRoNi4wOWEyMC4xMywyMC4xMywwLDAsMC00LjM5LTcuNDRBMTMuODksMTMuODksMCwwLDEsMjMuNDMsNWEyMi4yNiwyMi4yNiwwLDAsMSwzLjI3LDYuNTloMy43N2ExMy44OSwxMy44''@;'; put 'put ''OSwwLDAsMSwuNzYsMS44MUgyNy4xN0EyMS44OCwyMS44OCwwLDAsMSwyNy42NiwxOGEyMi4yLDIyLjIsMCwwLDEtLjU3LDQuOTNoNEExMy45NCwxMy45NCwwLDAsMSwzMC4yMiwyNC43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0xMC4wNSwxOGEyMC40NiwyMC40NiwwLDAsMCwuNjIsNC45M2g2LjQ4VjEzLjQ1SDEwLjU4QTIwLjU1LDIwLjU1LDAsMCwwLDEwLjA1LDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0xOC44NSwyMi45NGg2LjQ4QTIwLjQ2LDIwLjQ2LDAsMCwwLDI2LDE4YTIwLjU1LDIwLjU1LDAsMCwwLS41Mi00LjU1SDE4Ljg1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4x''@;'; put 'put ''MiwxMi44MWE3LjQ0LDcuNDQsMCwwLDEtMS45LjU4djBIMzFhNi43Nyw2Ljc3LDAsMCwxLTIuMDcsMGgtMS44QTIxLjg4LDIxLjg4LDAsMCwxLDI3LjY2LDE4YTIyLjIsMjIuMiwwLDAsMS0uNTcsNC45M2g0YTEzLjk0LDEzLjk0LDAsMCwxLS44MywxLjgxSDI2LjZhMjEuOCwyMS44LDAsMCwx''@;'; put 'put ''LTMsNiwxMy44NiwxMy44NiwwLDAsMS0zLC45MiwyMC4yMSwyMC4yMSwwLDAsMCw0LjE4LTYuOTRIMTguODZ2Ny4xNWMtLjI5LDAtLjU3LDAtLjg2LDBzLS41NSwwLS44MywwVjI0LjcxSDExLjIyYTIwLjIxLDIwLjIxLDAsMCwwLDQuMTgsNi45NSwxMy44NiwxMy44NiwwLDAsMS0yLjk0LS45''@;'; put 'put ''LDIxLjgsMjEuOCwwLDAsMS0zLTYuMDVINS43OGExMy45NCwxMy45NCwwLDAsMS0uODMtMS44MWg0QTIyLjIsMjIuMiwwLDAsMSw4LjM3LDE4YTIxLjg4LDIxLjg4LDAsMCwxLC40OC00LjU1SDQuNzZhMTMuODgsMTMuODgsMCwwLDEsLjc2LTEuODFIOS4zM0EyMi4yNiwyMi4yNiwwLDAsMSwx''@;'; put 'put ''Mi42MSw1YTEzLjg2LDEzLjg2LDAsMCwxLDIuODctLjg0LDIwLjEzLDIwLjEzLDAsMCwwLTQuNCw3LjQ1aDYuMDlWNGMuMjgsMCwuNTUsMCwuODMsMHMuNTgsMCwuODYsMHY3LjY0aDYuMDlsMC0uMTNhNy40Nyw3LjQ3LDAsMCwxLTIuMzYtNC43NiwyMC4zNywyMC4zNywwLDAsMC0yLTIuNTUs''@;'; put 'put ''MTQuMjMsMTQuMjMsMCwwLDEsMi4wNi41Niw3LjQ0LDcuNDQsMCwwLDEsLjU3LTEuODYsMTYuMDYsMTYuMDYsMCwxLDAsOS45Myw5LjkzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMw''@;'; put 'put ''IiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz4nKSxlLkNsclNoYXBlU2xpZGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMiwxMi4zN0E0LDQsMCwwLDAsOSw4LjQ4VjVBMSwxLDAs''@;'; put 'put ''MSwwLDcsNVY4LjQ4YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxNi4yNkE0LDQsMCwwLDAsMTIsMTIuMzdabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsOCwxNC40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0zMiwxNS44M2E0LDQsMCwwLDAtMy0zLjg5VjVhMSwxLDAsMSwwLTIsMHY2Ljk0YTQsNCwwLDAsMCwwLDcuNzhWMzFhMSwxLDAsMSwwLDIsMFYxOS43MkE0LDQsMCwwLDAsMzIsMTUuODNabS00LDJhMiwyLDAsMSwxLDItMkEyLDIsMCwwLDEsMjgsMTcuODdaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDI0LjVhNCw0LDAsMCwwLTMtMy44OVY1YTEsMSwwLDEsMC0yLDBWMjAuNjFhNCw0LDAsMCwwLDAsNy43OFYzMWExLDEsMCwxLDAsMiwwVjI4LjM5QTQsNCwwLDAsMCwyMiwy''@;'; put 'put ''NC41Wm0tNCwyYTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDI2LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LDkuMjlWNUExLDEsMCwxLDAsNyw1VjkuM2EzLjIyLDMuMjIsMCwwLDAsMCw2LjExVjMx''@;'; put 'put ''YTEsMSwwLDEsMCwyLDBWMTUuNDNBMy4yMiwzLjIyLDAsMCwwLDksOS4yOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwyMS40NVY1YTEsMSwwLDEsMC0yLDBWMjEuNDdhMy4yMiwzLjIyLDAsMCwwLDAsNi4xMVYz''@;'; put 'put ''MWExLDEsMCwxLDAsMiwwVjI3LjZhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOSwxMi43NVY1YTEsMSwwLDEsMC0yLDB2Ny43NmEzLjIyLDMuMjIsMCwwLDAsMCw2LjExVjMx''@;'; put 'put ''YTEsMSwwLDEsMCwyLDBWMTguODlhMy4yMiwzLjIyLDAsMCwwLDAtNi4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz4nKSxlLkNsclNoYXBlQ2xpcGJvYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4yOSw1SDI3VjdoMlYzMkg3VjdIOVY1SDdB''@;'; put 'put ''MS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTI2LDcuMzNBMi4zNCwyLjM0LDAsMCwwLDIzLjY3LDVIMjEuODdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNlpNMjQsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDMuNjdh''@;'; put 'put ''LjMzLjMzLDAsMCwxLC4zMy4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE0IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjIiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI2IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; put 'put ''MSIgeT0iMTQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTgiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjIiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUgxMlY3LjMzQS4zMy4zMywwLDAs''@;'; put 'put ''MSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMUgyNC40MkE3LjUsNy41LDAsMCwxLDIzLjEzLDlaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEuNzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNyww''@;'; put 'put ''LDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIg''@;'; put 'put ''Y3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjksNUgyMi4xN2E0LjQ1LDQuNDUsMCwwLDAtNC4xMS0zQTQuNDYsNC40NiwwLDAsMCwx''@;'; put 'put ''NCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVY2LjY5QTEuNywxLjcsMCwwLDAsMjkuMjksNVptLTE4LDNhMSwxLDAsMCwxLDEtMWgzLjQ0VjYuMzFhMi4zMSwyLjMxLDAsMSwxLDQuNjMs''@;'; put 'put ''MFY3aDMuNDRhMSwxLDAsMCwxLDEsMXYySDExLjMxWk0yNSwyOEgxMVYyNkgyNVptMC00SDExVjIySDI1Wm0wLTRIMTFWMThIMjVabTAtNEgxMVYxNEgyNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3''@;'; put 'put ''LjQ5LDcuNDksMCwwLDEsMjMuNjYsMTBIMTEuMzFWOGExLDEsMCwwLDEsMS0xaDMuNDRWNi4zMWEyLjMxLDIuMzEsMCwxLDEsNC42MywwVjdoMi4xOWE3LjU0LDcuNTQsMCwwLDEtLjA3LTEsNy41Miw3LjUyLDAsMCwxLC4wNy0xaC0uNGE0LjQ1LDQuNDUsMCwwLDAtNC4xMS0zQTQuNDYsNC40''@;'; put 'put ''NiwwLDAsMCwxNCw1SDdBMS43NSwxLjc1LDAsMCwwLDUsNi42OVYzMi4zMUExLjcsMS43LDAsMCwwLDYuNzEsMzRIMjkuMjlBMS43LDEuNywwLDAsMCwzMSwzMi4zMVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjUsMjhIMTFWMjZIMjVabTAtNEgxMVYyMkgyNVptMC00SDExVjE4''@;'; put 'put ''SDI1Wm0wLTRIMTFWMTRIMjVaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''Mi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVGaXJld2FsbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTQsOEgzMnY1LjA4SDIzLjh2''@;'; put 'put ''LTRIMjJ2NEgxNHYtNEgxMnY0SDRabTAsN0gzMnY2LjA4SDI4LjkyVjE2LjI3SDI3djQuODFIMTguOTJWMTYuMjdIMTd2NC44MUg4LjlWMTYuMjdIN3Y0LjgxSDRaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJ2NS42OEgyOC45MlYxNi4yN0gyN3Y0LjgxSDE4LjkyVjE2LjI3SDE3djQuODFIOC45VjE2LjI3SDd2NC44MUg0VjE1SDIwLjU4YTMuNTgsMy41OCwwLDAsMS0xLjc2LTEuOTJIMTR2''@;'; put 'put ''LTRIMTJ2NEg0VjhIMjAuMTRsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTIzLjgsMjhWMjQuMjdIMjIuMlYyOEgxNFYyNC4yN2gtMS42VjI4SDRWMjNIMzJ2NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwx''@;'; put 'put ''LjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40Nyw3LjQ3LDAsMCwxLTIuNDUtLjQySDIzLjhWMTAuMjJhNy41LDcuNSwwLDAsMS0u''@;'; put 'put ''NjMtMS4xNEgyMnY0SDE0di00SDEydjRINFY4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk00LDE1SDMydjYuMDhIMjguOTJWMTYuMjdIMjd2''@;'; put 'put ''NC44MUgxOC45MlYxNi4yN0gxN3Y0LjgxSDguOVYxNi4yN0g3djQuODFINFpNMjMuOCwyOFYyNC4yN0gyMi4yVjI4SDE0VjI0LjI3aC0xLjZWMjhINFYyM0gzMnY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAs''@;'; put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0xNCwyOEgxMlYyNGgyWm0xMCwwSDIyVjI0aDJabTgtNkg0VjIwSDdWMTZIOXY0aDhWMTZoMnY0aDhWMTZoMnY0aDNabTAtOEg0VjEyaDhWOGgydjRoOFY4aDJ2NGg4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOS4zNSwxNEg0VjEyaDhWOGgydjRoNC41N0EzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMy''@;'; put 'put ''YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTE0LDI4SDEyVjI0aDJabTEwLDBIMjJWMjRoMlptOC02SDRWMjBIN1YxNkg5djRoOFYxNmgydjRoOFYxNmgydjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNCwxMC40OVYxMmgxLjUxQTcuNTMsNy41MywwLDAsMSwyNCwxMC40OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjE0SDRWMTJoOFY4aDJ2NGg4VjhoLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMlpNMTQsMjhIMTJWMjRo''@;'; put 'put ''MlptMTAsMEgyMlYyNGgyWm04LTZINFYyMEg3VjE2SDl2NGg4VjE2aDJ2NGg4VjE2aDJ2NGgzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlTGlzdD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSIxNSIgeT0iOCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTIiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE2IiB3aWR0aD0iOSIgaGVp''@;'; put 'put ''Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCB4PSIxNSIgeT0iMjQiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxNiIgd2lkdGg9IjIi''@;'; put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMjAiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC05IiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCww''@;'; put 'put ''LDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTExIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjEyIiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMTYiIHdpZHRoPSI5IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IHg9IjE1IiB5PSIyMCIgd2lkdGg9IjkiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI0IiB3aWR0aD0iOSIgaGVpZ2h0PSIyIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2Vk''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTYiIHdpZHRoPSIyIiBo''@;'; put 'put ''ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtOC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUs''@;'; put 'put ''OHYyaDguNjZhNy40NSw3LjQ1LDAsMCwxLS44OS0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTAtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OC0ySDhB''@;'; put 'put ''MiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBj''@;'; put 'put ''eD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwySDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiww''@;'; put 'put ''LDAsMCwyLTJWNEEyLDIsMCwwLDAsMjgsMlpNMTMsMjZIMTFWMjRoMlptMC00SDExVjIwaDJabTAtNEgxMVYxNmgyWm0wLTRIMTFWMTJoMlptMC00SDExVjhoMlpNMjUsMjZIMTVWMjRIMjVabTAtNEgxNVYyMEgyNVptMC00SDE1VjE2SDI1Wm0wLTRIMTVWMTJIMjVabTAtNEgxNVY4SDI1WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy42NiwxMEgxNVY4aDcuNzhhNy40Miw3LjQyLDAsMCwxLC44OS02SDhBMiwyLDAsMCwwLDYsNFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5''@;'; put 'put ''LDcuNDksMCwwLDEsMjMuNjYsMTBaTTEzLDI2SDExVjI0aDJabTAtNEgxMVYyMGgyWm0wLTRIMTFWMTZoMlptMC00SDExVjEyaDJabTAtNEgxMVY4aDJaTTI1LDI2SDE1VjI0SDI1Wm0wLTRIMTVWMjBIMjVabTAtNEgxNVYxNkgyNVptMC00SDE1VjEySDI1WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBl''@;'; put 'put ''UmVkbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjQsNC4yMmExLDEsMCwwLDAtMS40MSwxLjQybDUuNTYsNS40OWgtMTNBMTEsMTEsMCwwLDAsMTAuMDcsMzIsMSwxLDAsMCwwLDExLDMwLjE4YTksOSwwLDAsMS01LTgsOS4wOCw5LjA4LDAsMCwxLDkuMTMtOWgxM2wtNS41NCw1LjQ4''@;'; put 'put ''QTEsMSwwLDAsMCwyNCwyMGw4LTcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlVW5kbz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjAuODcsMTEuMTRoLTEzbDUuNTYtNS40OUExLDEsMCwwLDAsMTIsNC4yMkw0LDEy''@;'; put 'put ''LjEzLDEyLDIwYTEsMSwwLDAsMCwxLjQxLTEuNDJMNy44NiwxMy4xNGgxM2E5LjA4LDkuMDgsMCwwLDEsOS4xMyw5LDksOSwwLDAsMS01LDhBMSwxLDAsMCwwLDI1LjkzLDMyYTExLDExLDAsMCwwLTUuMDYtMjAuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgLz4nKSxlLkNsclNoYXBlU2Nyb2xsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZINy4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCww''@;'; put 'put ''LDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTMuMTNoLTJWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0Wm0tNC41LTdBMi41LDIuNSwwLDAsMSwzMiw2LjU4VjkuMTJI''@;'; put 'put ''MThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjA4LDE1LjRWMjkuNTRhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwu''@;'; put 'put ''NzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDIuNjFBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQ0LS43NkgxOFY2LjU4YTQuNDgsNC40OCwwLDAsMC0uNzYtMi41SDIyLjRsMS4xNS0ySDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNTh2MjNhMi41LDIuNSwwLDEsMS01LDBWMjZI''@;'; put 'put ''Ny4xOVYyNEgydjUuNUE0LjUsNC41LDAsMCwwLDYuNSwzNEgyNS41OGE0LjUsNC41LDAsMCwwLDQuNS00LjVWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDguNTRh''@;'; put 'put ''Ny41LDcuNSwwLDAsMS0xLjM1LTJIMThWNi41OGE0LjQ4LDQuNDgsMCwwLDAtLjc2LTIuNWg1LjUyYTcuNDQsNy40NCwwLDAsMSwuODYtMkgxMy41QTQuNSw0LjUsMCwwLDAsOSw2LjU4djIzYTIuNSwyLjUsMCwxLDEtNSwwVjI2SDcuMTlWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRI''@;'; put 'put ''MjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwxMS4xMlY2LjU4YTQuNSw0LjUsMCwwLDAtNC41LTQuNWgtMTZBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUu''@;'; put 'put ''NThhNC41LDQuNSwwLDAsMCw0LjUtNC41VjEzLjEzaC0yVjI5LjU0YTIuNSwyLjUsMCwwLDEtMi41LDIuNUgxMC4yNGE0LjQ3LDQuNDcsMCwwLDAsLjc2LTIuNXYtMjNhMi41LDIuNSwwLDAsMSw1LDB2NC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjguMDgsMTUuNFYyOS41NGEyLjUsMi41LDAsMCwxLTIuNSwyLjVIMTAuMjRhNC40Nyw0LjQ3LDAsMCwwLC43Ni0yLjV2LTIzYTIuNSwyLjUsMCwwLDEsNSwwdjQuNTRoMi42MUEzLjY2LDMuNjYsMCwwLDEsMTksOS44OWw0LjUxLTcuOEgxMy41QTQuNSw0''@;'; put 'put ''LjUsMCwwLDAsOSw2LjU4VjI0SDJ2NS41QTQuNSw0LjUsMCwwLDAsNi41LDM0SDI1LjU4YTQuNSw0LjUsMCwwLDAsNC41LTQuNVYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; put 'put ''Ni44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTEuOTItLjI2djE2LjNhMi41LDIuNSwwLDAsMS0yLjUsMi41SDEwLjI0YTQuNDcsNC40NywwLDAsMCwuNzYtMi41di0yM2EyLjUsMi41LDAsMCwxLDUsMHY0LjU0aDgu''@;'; put 'put ''NTRhNy40Niw3LjQ2LDAsMCwxLS45Mi05SDEzLjVBNC41LDQuNSwwLDAsMCw5LDYuNThWMjRIMnY1LjVBNC41LDQuNSwwLDAsMCw2LjUsMzRIMjUuNThhNC41LDQuNSwwLDAsMCw0LjUtNC41di0xNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFk''@;'; put 'put ''Z2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksZS5DbHJTaGFwZUZpbGVTZXR0aW5ncz0oMCxhLmNsckljb25TVkcpKCc8''@;'; put 'put ''cGF0aCBkPSJNMzMuODMsMjMuNDNhMS4xNiwxLjE2LDAsMCwwLS43MS0xLjEybC0xLjY4LS41Yy0uMDktLjI0LS4xOC0uNDgtLjI5LS43MWwuNzgtMS40NGExLjE2LDEuMTYsMCwwLDAtLjIxLTEuMzdsLTEuNDItMS40MWExLjE2LDEuMTYsMCwwLDAtMS4zNy0uMmwtMS40NS43NmE3Ljg0LDcu''@;'; put 'put ''ODQsMCwwLDAtLjc2LS4zMmwtLjQ4LTEuNThhMS4xNSwxLjE1LDAsMCwwLTEuMTEtLjc3aC0yYTEuMTYsMS4xNiwwLDAsMC0xLjExLjgybC0uNDcsMS41NGE3Ljc2LDcuNzYsMCwwLDAtLjc3LjMybC0xLjQyLS43NmExLjE2LDEuMTYsMCwwLDAtMS4zNi4ybC0xLjQ1LDEuNGExLjE2LDEuMTYs''@;'; put 'put ''MCwwLDAtLjIxLDEuMzhMMTcuMDgsMjFhNy42NCw3LjY0LDAsMCwwLS4zMS43NGwtMS41OC40N2ExLjE1LDEuMTUsMCwwLDAtLjgzLDEuMTF2MmExLjE1LDEuMTUsMCwwLDAsLjgzLDEuMWwxLjU5LjQ3YTcuNTMsNy41MywwLDAsMCwuMzEuNzJsLS43OCwxLjQ2YTEuMTYsMS4xNiwwLDAsMCwu''@;'; put 'put ''MjEsMS4zN2wxLjQyLDEuNGExLjE2LDEuMTYsMCwwLDAsMS4zNy4yMWwxLjQ4LS43OGMuMjMuMTEuNDcuMi43Mi4yOUwyMiwzMy4xOGExLjE2LDEuMTYsMCwwLDAsMS4xMS44MWgyYTEuMTYsMS4xNiwwLDAsMCwxLjExLS44MmwuNDctMS41OGMuMjQtLjA4LjQ3LS4xOC43LS4yOWwxLjUuNzlh''@;'; put 'put ''MS4xNiwxLjE2LDAsMCwwLDEuMzYtLjJsMS40Mi0xLjRhMS4xNiwxLjE2LDAsMCwwLC4yMS0xLjM4bC0uNzktMS40NXEuMTYtLjM0LjI5LS42OUwzMywyNi41YTEuMTUsMS4xNSwwLDAsMCwuODMtMS4xMVptLTEuNiwxLjYzLTIuMTEuNjItLjEyLjQyYTYsNiwwLDAsMS0uNSwxLjE5bC0uMjEu''@;'; put 'put ''MzgsMSwxLjkxLTEsMS0yLTEtLjM3LjJhNi4yMSw2LjIxLDAsMCwxLTEuMi40OWwtLjQyLjEyLS42MywyLjA5SDIzLjQybC0uNjMtMi4wOC0uNDItLjEyYTYuMjMsNi4yMywwLDAsMS0xLjIxLS40OWwtLjM3LS4yLTEuOTQsMS0xLTEsMS0xLjk0LS4yMi0uMzhBNiw2LDAsMCwxLDE4LjE3LDI2''@;'; put 'put ''TDE4LDI1LjYzLDE2LDI1VjIzLjY5TDE4LDIzLjA4bC4xMy0uNDFhNS45NCw1Ljk0LDAsMCwxLC41My0xLjIzTDE4LjksMjFsLTEtMS44NSwxLS45NCwxLjg5LDEsLjM4LS4yMWE2LjIzLDYuMjMsMCwwLDEsMS4yNi0uNTJsLjQxLS4xMi42My0yaDEuMzhsLjYyLDIsLjQxLjEyQTYuMjEsNi4y''@;'; put 'put ''MSwwLDAsMSwyNy4xLDE5bC4zOC4yMSwxLjkyLTEsMSwxLTEsMS44OS4yMS4zOGE2LjA4LDYuMDgsMCwwLDEsLjUsMS4yMWwuMTIuNDIsMi4wNi42MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIw''@;'; put 'put ''LjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQuMTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjZ2Ny44OWEzLjIsMy4yLDAsMCwxLDIsMS43MlY1YTIsMiwwLDAsMC0yLTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjEyLDIwLjM1YTQsNCwwLDEsMCw0LjA4LDRBNC4wNiw0LjA2LDAsMCwwLDI0LjEyLDIwLjM1Wm0wLDYuNDZhMi40MywyLjQzLDAsMSwxLDIuNDgtMi40M0EyLjQ2LDIuNDYsMCwwLDEsMjQu''@;'; put 'put ''MTIsMjYuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy40M2ExLjE2LDEuMTYsMCwwLDAtLjcxLTEuMTJsLTEuNjgtLjVjLS4wOS0uMjQtLjE4LS40OC0uMjkt''@;'; put 'put ''LjcxbC43OC0xLjQ0YTEuMTYsMS4xNiwwLDAsMC0uMjEtMS4zN2wtMS40Mi0xLjQxYTEuMTYsMS4xNiwwLDAsMC0xLjM3LS4ybC0xLjQ1Ljc2YTcuODQsNy44NCwwLDAsMC0uNzYtLjMybC0uNDgtMS41OGExLjE1LDEuMTUsMCwwLDAtMS4xMS0uNzdoLTJhMS4xNiwxLjE2LDAsMCwwLTEuMTEu''@;'; put 'put ''ODJsLS40NywxLjU0YTcuNzYsNy43NiwwLDAsMC0uNzcuMzJsLTEuNDItLjc2YTEuMTYsMS4xNiwwLDAsMC0xLjM2LjJsLTEuNDUsMS40YTEuMTYsMS4xNiwwLDAsMC0uMjEsMS4zOEwxNy4wOCwyMWE3LjY0LDcuNjQsMCwwLDAtLjMxLjc0bC0xLjU4LjQ3YTEuMTUsMS4xNSwwLDAsMC0uODMs''@;'; put 'put ''MS4xMXYyYTEuMTUsMS4xNSwwLDAsMCwuODMsMS4xbDEuNTkuNDdhNy41Myw3LjUzLDAsMCwwLC4zMS43MmwtLjc4LDEuNDZhMS4xNiwxLjE2LDAsMCwwLC4yMSwxLjM3bDEuNDIsMS40YTEuMTYsMS4xNiwwLDAsMCwxLjM3LjIxbDEuNDgtLjc4Yy4yMy4xMS40Ny4yLjcyLjI5TDIyLDMzLjE4''@;'; put 'put ''YTEuMTYsMS4xNiwwLDAsMCwxLjExLjgxaDJhMS4xNiwxLjE2LDAsMCwwLDEuMTEtLjgybC40Ny0xLjU4Yy4yNC0uMDguNDctLjE4LjctLjI5bDEuNS43OWExLjE2LDEuMTYsMCwwLDAsMS4zNi0uMmwxLjQyLTEuNGExLjE2LDEuMTYsMCwwLDAsLjIxLTEuMzhsLS43OS0xLjQ1cS4xNi0uMzQu''@;'; put 'put ''MjktLjY5TDMzLDI2LjVhMS4xNSwxLjE1LDAsMCwwLC44My0xLjExWm0tMS42LDEuNjMtMi4xMS42Mi0uMTIuNDJhNiw2LDAsMCwxLS41LDEuMTlsLS4yMS4zOCwxLDEuOTEtMSwxLTItMS0uMzcuMmE2LjIxLDYuMjEsMCwwLDEtMS4yLjQ5bC0uNDIuMTItLjYzLDIuMDlIMjMuNDJsLS42My0y''@;'; put 'put ''LjA4LS40Mi0uMTJhNi4yMyw2LjIzLDAsMCwxLTEuMjEtLjQ5bC0uMzctLjItMS45NCwxLTEtMSwxLTEuOTQtLjIyLS4zOEE2LDYsMCwwLDEsMTguMTcsMjZMMTgsMjUuNjMsMTYsMjVWMjMuNjlMMTgsMjMuMDhsLjEzLS40MWE1Ljk0LDUuOTQsMCwwLDEsLjUzLTEuMjNMMTguOSwyMWwtMS0x''@;'; put 'put ''Ljg1LDEtLjk0LDEuODksMSwuMzgtLjIxYTYuMjMsNi4yMywwLDAsMSwxLjI2LS41MmwuNDEtLjEyLjYzLTJoMS4zOGwuNjIsMiwuNDEuMTJBNi4yMSw2LjIxLDAsMCwxLDI3LjEsMTlsLjM4LjIxLDEuOTItMSwxLDEtMSwxLjg5LjIxLjM4YTYuMDgsNi4wOCwwLDAsMSwuNSwxLjIxbC4xMi40''@;'; put 'put ''MiwyLjA2LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNDksMzFINlY1SDIxLjg3TDIzLDNINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEu''@;'; put 'put ''MS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEz''@;'; put 'put ''SDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTMzLjgzLDIzLjQzYTEuMTYsMS4xNiwwLDAsMC0uNzEtMS4xMmwtMS42OC0uNWMtLjA5LS4yNC0uMTgtLjQ4LS4yOS0uNzFsLjc4LTEuNDRhMS4xNiwxLjE2LDAsMCwwLS4yMS0xLjM3bC0xLjQyLTEuNDFhMS4xNiwxLjE2LDAsMCwwLTEuMzctLjJsLTEuNDUuNzZhNy44NCw3Ljg0''@;'; put 'put ''LDAsMCwwLS43Ni0uMzJsLS40OC0xLjU4YTEuMTUsMS4xNSwwLDAsMC0xLjExLS43N2gtMmExLjE2LDEuMTYsMCwwLDAtMS4xMS44MmwtLjQ3LDEuNTRhNy43Niw3Ljc2LDAsMCwwLS43Ny4zMmwtMS40Mi0uNzZhMS4xNiwxLjE2LDAsMCwwLTEuMzYuMmwtMS40NSwxLjRhMS4xNiwxLjE2LDAs''@;'; put 'put ''MCwwLS4yMSwxLjM4TDE3LjA4LDIxYTcuNjQsNy42NCwwLDAsMC0uMzEuNzRsLTEuNTguNDdhMS4xNSwxLjE1LDAsMCwwLS44MywxLjExdjJhMS4xNSwxLjE1LDAsMCwwLC44MywxLjFsMS41OS40N2E3LjUzLDcuNTMsMCwwLDAsLjMxLjcybC0uNzgsMS40NmExLjE2LDEuMTYsMCwwLDAsLjIx''@;'; put 'put ''LDEuMzdsMS40MiwxLjRhMS4xNiwxLjE2LDAsMCwwLDEuMzcuMjFsMS40OC0uNzhjLjIzLjExLjQ3LjIuNzIuMjlMMjIsMzMuMThhMS4xNiwxLjE2LDAsMCwwLDEuMTEuODFoMmExLjE2LDEuMTYsMCwwLDAsMS4xMS0uODJsLjQ3LTEuNThjLjI0LS4wOC40Ny0uMTguNy0uMjlsMS41Ljc5YTEu''@;'; put 'put ''MTYsMS4xNiwwLDAsMCwxLjM2LS4ybDEuNDItMS40YTEuMTYsMS4xNiwwLDAsMCwuMjEtMS4zOGwtLjc5LTEuNDVxLjE2LS4zNC4yOS0uNjlMMzMsMjYuNWExLjE1LDEuMTUsMCwwLDAsLjgzLTEuMTFabS0xLjYsMS42My0yLjExLjYyLS4xMi40MmE2LDYsMCwwLDEtLjUsMS4xOWwtLjIxLjM4''@;'; put 'put ''LDEsMS45MS0xLDEtMi0xLS4zNy4yYTYuMjEsNi4yMSwwLDAsMS0xLjIuNDlsLS40Mi4xMi0uNjMsMi4wOUgyMy40MmwtLjYzLTIuMDgtLjQyLS4xMmE2LjIzLDYuMjMsMCwwLDEtMS4yMS0uNDlsLS4zNy0uMi0xLjk0LDEtMS0xLDEtMS45NC0uMjItLjM4QTYsNiwwLDAsMSwxOC4xNywyNkwx''@;'; put 'put ''OCwyNS42MywxNiwyNVYyMy42OUwxOCwyMy4wOGwuMTMtLjQxYTUuOTQsNS45NCwwLDAsMSwuNTMtMS4yM0wxOC45LDIxbC0xLTEuODUsMS0uOTQsMS44OSwxLC4zOC0uMjFhNi4yMyw2LjIzLDAsMCwxLDEuMjYtLjUybC40MS0uMTIuNjMtMmgxLjM4bC42MiwyLC40MS4xMkE2LjIxLDYuMjEs''@;'; put 'put ''MCwwLDEsMjcuMSwxOWwuMzguMjEsMS45Mi0xLDEsMS0xLDEuODkuMjEuMzhhNi4wOCw2LjA4LDAsMCwxLC41LDEuMjFsLjEyLjQyLDIuMDYuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMjQuMTIsMjAuMzVhNCw0LDAsMSwwLDQuMDgsNEE0LjA2LDQuMDYsMCwwLDAsMjQuMTIsMjAuMzVabTAsNi40NmEyLjQzLDIuNDMsMCwxLDEsMi40OC0yLjQzQTIuNDYsMi40NiwwLDAsMSwyNC4xMiwyNi44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC40OSwzMUg2VjVIMjMuMDhhNi45NCw2Ljk0LDAsMCwxLC42LTJINkEyLDIsMCwwLDAsNCw1VjMxYTIsMiwwLDAsMCwyLDJIMTYuMjNsLTEuMS0xLjA4QTMuMTEsMy4xMSwwLDAsMSwxNC40OSwzMVoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxNS4zM1YxMi43MWE3LDcsMCwwLDEtMi0xdjEuODhBMy4yLDMuMiwwLDAsMSwyOCwxNS4zM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjZ2OC43OGEyLjM3LDIuMzcsMCwwLDEsMiwxLjU3VjVhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNTQsMjMuNDdsLTItLjYxYTcuMDYsNy4wNiwwLDAsMC0uNTgtMS40MWwxLTEuODZhLjM3LjM3LDAsMCwwLS4wNy0uNDRMMzAuNDEsMTcuN2EuMzcuMzcsMCwwLDAtLjQ0LS4wN2wtMS44NSwxQTcsNywwLDAs''@;'; put 'put ''MCwyNi42OSwxOGwtLjYxLTJhLjM3LjM3LDAsMCwwLS4zNi0uMjVoLTJhLjM3LjM3LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNjFsLTEuODItMWEuMzcuMzcsMCwwLDAtLjQ0LjA3bC0xLjQ3LDEuNDRhLjM3LjM3LDAsMCwwLS4wNy40NGwxLDEuODJhNyw3LDAsMCwwLS42''@;'; put 'put ''MSwxLjQ0bC0yLC42MWEuMzcuMzcsMCwwLDAtLjI2LjM1djJhLjM3LjM3LDAsMCwwLC4yNi4zNWwyLC42MWE3LDcsMCwwLDAsLjYxLDEuNDFsLTEsMS45YS4zNy4zNywwLDAsMCwuMDcuNDRMMTksMzJhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTds''@;'; put 'put ''LjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhhNy4wNiw3LjA2LDAsMCwwLC41OC0xLjM5''@;'; put 'put ''bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjIzLjgzQS4zNy4zNywwLDAsMCwzMy41NCwyMy40N1pNMjQuNywyOC4xOUEzLjMzLDMuMzMsMCwxLDEsMjgsMjQuODYsMy4zMywzLjMzLDAsMCwxLDI0LjcsMjguMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42MS0yYS4z''@;'; put 'put ''Ny4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFhLjM3LjM3''@;'; put 'put ''LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNywwLDAsMCwu''@;'; put 'put ''MzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcsMCwwLDAs''@;'; put 'put ''LjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNS41NSwzMUg2VjVIMjEuODdMMjMsM0g2QTIsMiwwLDAsMCw0LDVWMzFhMiwyLDAsMCwwLDIsMkgxNy4xNmwtMS0xQTIuMzgsMi4zOCwwLDAsMSwxNS41NSwzMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTIt''@;'; put 'put ''LWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJh''@;'; put 'put ''ZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjU0LDIzLjQ3bC0yLS42MWE3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4zNy4zNywwLDAsMC0uMDctLjQ0TDMwLjQxLDE3LjdhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMUE3LDcsMCwwLDAsMjYuNjksMThsLS42''@;'; put 'put ''MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxbC0xLjgyLTFhLjM3LjM3LDAsMCwwLS40NC4wN2wtMS40NywxLjQ0YS4zNy4zNywwLDAsMC0uMDcuNDRsMSwxLjgyYTcsNywwLDAsMC0uNjEsMS40NGwtMiwuNjFh''@;'; put 'put ''LjM3LjM3LDAsMCwwLS4yNi4zNXYyYS4zNy4zNywwLDAsMCwuMjYuMzVsMiwuNjFhNyw3LDAsMCwwLC42MSwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LDMyYS4zNy4zNywwLDAsMCwuNDQuMDdsMS44Ny0xYTcuMDYsNy4wNiwwLDAsMCwxLjM5LjU3bC42MSwyYS4zNy4zNyww''@;'; put 'put ''LDAsMCwuMzUuMjZoMmEuMzcuMzcsMCwwLDAsLjM1LS4yNmwuNjEtMmE3LDcsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zNy4zNywwLDAsMCwuNDQtLjA3bDEuNDUtMS40NWEuMzcuMzcsMCwwLDAsLjA3LS40NGwtMS0xLjg4YTcuMDYsNy4wNiwwLDAsMCwuNTgtMS4zOWwyLS42MWEuMzcuMzcs''@;'; put 'put ''MCwwLDAsLjI2LS4zNVYyMy44M0EuMzcuMzcsMCwwLDAsMzMuNTQsMjMuNDdaTTI0LjcsMjguMTlBMy4zMywzLjMzLDAsMSwxLDI4LDI0Ljg2LDMuMzMsMy4zMywwLDAsMSwyNC43LDI4LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUuNTUsMzFINlY1SDIzLjA4YTYuOTQsNi45NCwwLDAsMSwuNi0ySDZBMiwyLDAsMCwwLDQsNVYzMWEyLDIsMCwwLDAsMiwySDE3LjE2bC0xLTFBMi4zOCwyLjM4LDAsMCwxLDE1LjU1LDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuMzZWMTIuNzFhNyw3LDAsMCwxLTItMXYyQTIuMzcsMi4zNywwLDAsMSwyOCwxNS4zNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2Vk''@;'; put 'put ''IiAvPicpLGUuQ2xyU2hhcGVUd29XYXlBcnJvd3M9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjQzLDE2LjgzQTEsMSwwLDAsMCwyMiwxOC4yNEwyNS43MiwyMkg3LjgzYTEsMSwwLDAsMCwwLDJIMjUuNzJMMjIsMjcuN2ExLDEsMCwxLDAsMS40MiwxLjQxTDI5LjUzLDIzWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuMjQsMTguNDVhMSwxLDAsMCwwLC43MS0xLjcxTDEwLjI0LDEzSDI4LjEyYTEsMSwwLDAsMCwwLTJIMTAuMjRsMy43MS0zLjczYTEsMSwwLDAsMC0xLjQyLTEuNDFMNi40''@;'; put 'put ''MiwxMmw2LjExLDYuMTRBMSwxLDAsMCwwLDEzLjI0LDE4LjQ1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVN3aXRjaD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNS43MSwxNEgyMC45MlYxMkg1LjcxTDkuNDIsOC4yN0Ex''@;'; put 'put ''LDEsMCwxLDAsOCw2Ljg2TDEuODksMTMsOCwxOS4xNGExLDEsMCwxLDAsMS40Mi0xLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxMiIgd2lkdGg9IjMiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyOCIgeT0iMTIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI3LjkyLDE3''@;'; put 'put ''Ljg2YTEsMSwwLDAsMC0xLjQyLDEuNDFMMzAuMjEsMjNIMTV2MkgzMC4yMUwyNi41LDI4Ljc0YTEsMSwwLDEsMCwxLjQyLDEuNEwzNCwyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTAiIHk9IjIzIiB3aWR0''@;'; put 'put ''aD0iMyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxl''@;'; put 'put ''LkNsclNoYXBlVG9vbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLDE0SDE2YTEsMSwwLDAsMC0xLDF2NmExLDEsMCwwLDAsMSwxaDRhMSwxLDAsMCwwLDEtMVYxNUExLDEsMCwwLDAsMjAsMTRabS0uNCw2LjZIMTYuNFYxNS40aDMuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjcxLDEyLjM4LDI5LjYyLDguMjlBMSwxLDAsMCwwLDI4LjkyLDhoLTVWNi4wNUEyLDIsMCwwLDAsMjIsNEgxMy44NEExLjkyLDEuOTIsMCwwLDAsMTIsNi4wNVY4SDcuMDhhMSwxLDAsMCwwLS43MS4yOUwy''@;'; put 'put ''LjI5LDEyLjM4YTEsMSwwLDAsMC0uMjkuNzFWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEzLjA4QTEsMSwwLDAsMCwzMy43MSwxMi4zOFpNMTQsNmg4VjhIMTRaTTMyLDE3SDIydjEuOTNIMzJWMjhINFYxOC45M0gxNFYxN0g0VjEzLjVMNy41LDEwaDIxTDMyLDEzLjVaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2LjQiIHk9IjE1LjQiIHdpZHRoPSIzLjIiIGhlaWdodD0iNS4yIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTIxLDIxYTEsMSwwLDAsMS0xLDFIMTZhMSwxLDAsMCwxLTEtMVYxOUgydjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5SDIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy43MSwxMi4z''@;'; put 'put ''OCwyOS42Miw4LjI5QTEsMSwwLDAsMCwyOC45Miw4aC01VjYuMDVBMiwyLDAsMCwwLDIyLDRIMTMuODRBMS45MiwxLjkyLDAsMCwwLDEyLDYuMDVWOEg3LjA4YTEsMSwwLDAsMC0uNzEuMjlMMi4yOSwxMi4zOGExLDEsMCwwLDAtLjI5LjcxVjE3SDE1VjE1YTEsMSwwLDAsMSwxLTFoNGExLDEs''@;'; put 'put ''MCwwLDEsMSwxdjJIMzRWMTMuMDhBMSwxLDAsMCwwLDMzLjcxLDEyLjM4Wk0yMiw4SDE0VjZoOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVdpbmRvd0Nsb3NlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS40MSwxOGw3LjI5''@;'; put 'put ''LTcuMjlhMSwxLDAsMCwwLTEuNDEtMS40MUwxOCwxNi41OSwxMC43MSw5LjI5YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTYuNTksMTgsOS4yOSwyNS4yOWExLDEsMCwxLDAsMS40MSwxLjQxTDE4LDE5LjQxbDcuMjksNy4yOWExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVdpbmRvd01heD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuODksOWgtMjBhMiwyLDAsMCwwLTIsMlYyNWEyLDIsMCwwLDAsMiwyaDIwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDI3Ljg5LDlabS0yMCwx''@;'; put 'put ''NlYxMWgyMFYyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVXaW5kb3dNaW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDI3SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVdpbmRvd1Jlc3RvcmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LDhIMTRhMiwyLDAsMCwwLTIsMnYyaDJWMTBIMjhWMjBIMjZ2MmgyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDI4LDhaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMiwxNEg4YTIsMiwwLDAsMC0yLDJWMjZhMiwyLDAsMCwwLDIsMkgyMmEyLDIsMCwwLDAsMi0yVjE2QTIsMiwwLDAsMCwyMiwxNFpNOCwyNlYxNkgyMlYyNloiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVab29tSW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE2LDRBMTIsMTIsMCwxLDAsMjgsMTYsMTIsMTIsMCwwLDAsMTYsNFptMCwyMS45MUExMCwxMCwwLDEsMSwyNiwxNiwxMCwxMCwwLDAsMSwx''@;'; put 'put ''NiwyNS45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjcxLDI5LjY5bC01LjE3LTUuMTdBMTMuNjgsMTMuNjgsMCwwLDEsMjUuMTUsMjZsNS4xNSw1LjE1YTEsMSwwLDAsMCwxLjQxLTEuNDFaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMSwxNUgxN1YxMWExLDEsMCwwLDAtMiwwdjRIMTFhMSwxLDAsMCwwLDAsMmg0djRhMSwxLDAsMCwwLDIsMFYxN2g0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlWm9vbU91dD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTYsNEExMiwxMiwwLDEsMCwyOCwxNiwxMiwxMiwwLDAsMCwxNiw0Wm0wLDIxLjkxQTEwLDEwLDAsMSwxLDI2LDE2LDEwLDEwLDAsMCwxLDE2LDI1Ljkx''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNzEsMjkuNjlsLTUuMTctNS4xN0ExMy42OCwxMy42OCwwLDAsMSwyNS4xNSwyNmw1LjE1LDUuMTVhMSwxLDAsMCwwLDEuNDEtMS40MVoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIwLDE1SDEyYTEsMSwwLDAsMCwwLDJoOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUtleT0oMCxh''@;'; put 'put ''LmNsckljb25TVkcpKCc8cmVjdCB4PSI2LjMzIiB5PSIxMC43MSIgd2lkdGg9IjkuNzEiIGhlaWdodD0iMi41NyIgcng9IjEiIHJ5PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNS4yMSAxMS40Mykgcm90YXRlKC00NSkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDho''@;'; put 'put ''My40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBsNS4yNiw1LjI2''@;'; put 'put ''YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNi4zMyIgeT0iMTAuNzEiIHdpZHRoPSI5LjcxIiBoZWlnaHQ9IjIuNTciIHJ4PSIxIiByeT0iMSIgdHJhbnNm''@;'; put 'put ''b3JtPSJ0cmFuc2xhdGUoLTUuMjEgMTEuNDMpIHJvdGF0ZSgtNDUpIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zNSwxNi44bC42My0uNjNhNSw1LDAsMCwwLC42My0uNzdI''@;'; put 'put ''MjIuMjNsLS4yOSwwTDIwLjUyLDE2LjgsMzIsMjguMjhWMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTMtM0wxNCwyMy4zMWEzLDMsMCwwLDEtNC4yNCwwTDQuNSwxOGEzLDMsMCwwLDEsMC00LjI0bDguNTYtOC41NmEzLDMsMCwwLDEsNC4yNCwwTDIwLjEsOC4wNmwx''@;'; put 'put ''LTEuNzlMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNC0uNEwxOCwyNi40OGgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMzMiIHk9IjEwLjcxIiB3aWR0aD0iOS43MSIgaGVpZ2h0PSIyLjU3IiByeD0iMSIgcnk9IjEi''@;'; put 'put ''IHRyYW5zZm9ybT0idHJhbnNsYXRlKC01LjIxIDExLjQzKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjM1LDE2LjhsLjYzLS42M0E1LDUsMCwwLDAsMjQs''@;'; put 'put ''OS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQtLjRMMTgsMjYuNDhoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMu''@;'; put 'put ''NDF2LTNIMTguOGwtMy0zTDE0LDIzLjMxYTMsMywwLDAsMS00LjI0LDBMNC41LDE4YTMsMywwLDAsMSwwLTQuMjRsOC41Ni04LjU2YTMsMywwLDAsMSw0LjI0LDBsNS4yNiw1LjI2YTMsMywwLDAsMSwwLDQuMjRsLTIsMkwzMiwyOC4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNkE1LDUsMCwwLDAsMjQsOS4xTDE4LjcxLDMuODRhNSw1LDAsMCwwLTcuMDcsMEwzLjA5LDEyLjM5YTUsNSwwLDAsMCwwLDcuMDdsNS4yNiw1LjI2YTUsNSwwLDAsMCw3LjA3LDBsLjQ1LS40NSwyLjEsMi4yaDMuNDR2M2gzLjY5djEuNjNMMjgsMzRo''@;'; put 'put ''NlYyNy40NVptLTguNTYtNi41OUw5LjM3LDE1LjY0YTEsMSwwLDAsMS0xLjQxLDBsLS40LS40YTEsMSwwLDAsMSwwLTEuNDFMMTMsOC4zNmExLDEsMCwwLDEsMS40MSwwbC40LjRBMSwxLDAsMCwxLDE0LjgyLDEwLjE4Wk0zMiwzMkgyOC44NmwtMS43Ny0xLjc2di0yLjhIMjMuNDF2LTNIMTgu''@;'; put 'put ''OGwtMS41Mi0xLjYxTDIyLDE4LjE4LDMyLDI4LjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4zOCwxNi43N2wuNi0uNmE1LDUsMCwwLDAsLjYzLS43N0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OWwy''@;'; put 'put ''LjA5LTMuNjJMMTguNzEsMy44NGE1LDUsMCwwLDAtNy4wNywwTDMuMDksMTIuMzlhNSw1LDAsMCwwLDAsNy4wN2w1LjI2LDUuMjZhNSw1LDAsMCwwLDcuMDcsMGwuNDUtLjQ1LDIuMSwyLjJoMy40NHYzaDMuNjl2MS42M0wyOCwzNGg2VjI3LjQ1Wm0tOC41Ni02LjU5TDkuMzcsMTUuNjRhMSwx''@;'; put 'put ''LDAsMCwxLTEuNDEsMGwtLjQtLjRhMSwxLDAsMCwxLDAtMS40MUwxMyw4LjM2YTEsMSwwLDAsMSwxLjQxLDBsLjQuNEExLDEsMCwwLDEsMTQuODIsMTAuMThaTTMyLDMySDI4Ljg2bC0xLjc3LTEuNzZ2LTIuOEgyMy40MXYtM0gxOC44bC0xLjUyLTEuNjFMMjIsMTguMTgsMzIsMjguMjhaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwx''@;'; put 'put ''LjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMzgsMTYuNzdsLjYtLjZBNSw1LDAsMCwwLDI0LDkuMUwx''@;'; put 'put ''OC43MSwzLjg0YTUsNSwwLDAsMC03LjA3LDBMMy4wOSwxMi4zOWE1LDUsMCwwLDAsMCw3LjA3bDUuMjYsNS4yNmE1LDUsMCwwLDAsNy4wNywwbC40NS0uNDUsMi4xLDIuMmgzLjQ0djNoMy42OXYxLjYzTDI4LDM0aDZWMjcuNDVabS04LjU2LTYuNTlMOS4zNywxNS42NGExLDEsMCwwLDEtMS40''@;'; put 'put ''MSwwbC0uNC0uNGExLDEsMCwwLDEsMC0xLjQxTDEzLDguMzZhMSwxLDAsMCwxLDEuNDEsMGwuNC40QTEsMSwwLDAsMSwxNC44MiwxMC4xOFpNMzIsMzJIMjguODZsLTEuNzctMS43NnYtMi44SDIzLjQxdi0zSDE4LjhsLTEuNTItMS42MUwyMiwxOC4xOCwzMiwyOC4yOFoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+JyksZS5D''@;'; put 'put ''bHJTaGFwZUxpYnJhcnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjQ4LDI5LjYzLDI2Ljc0LDExLjgyYTIsMiwwLDAsMC0yLjU4LTEuMTZMMjEsMTEuODVWOC45MkExLjkyLDEuOTIsMCwwLDAsMTkuMDgsN0gxNFY0LjkyQTEuOTIsMS45MiwwLDAsMCwxMi4wOCwzSDVBMiwyLDAs''@;'; put 'put ''MCwwLDMsNVYzMmExLDEsMCwwLDAsMSwxSDIwYTEsMSwwLDAsMCwxLTFWMTkuMjdsNSwxMy4yMWExLDEsMCwwLDAsMS4yOS41OGw1LjYxLTIuMTRhMSwxLDAsMCwwLC41OC0xLjI5Wk0xMiw4LjgzVjMxSDVWNWg3Wk0xOSwzMUgxNFY5aDVabTguNTEtLjI1TDIxLjEzLDEzLjkybDMuNzQtMS40''@;'; put 'put ''Miw2LjM5LDE2LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuNzUsM0g1LjI1QTEuMTUsMS4xNSwwLDAsMCw0LDRWMzNIMTRWNEExLjE1LDEuMTUsMCwwLDAsMTIuNzUsM1oiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzcsMzEuMDlsLTYuOTQtMTguM2ExLDEsMCwwLDAtMS4yOS0uNThMMjIsMTMuNTlWOWExLDEsMCwwLDAtMS0xSDE2VjMzaDZWMTQuNjlMMjguOTMsMzNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVCb2x0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC41MiwzNGgtM2ExLDEsMCwwLDEtLjg4LTEuNDRMMTIuNTUsMjFINmExLDEsMCwwLDEtLjg1LTEuNTRsMTAuNjgtMTdBMSwxLDAsMCwxLDE2LjY0LDJIMzAuMDdhMSwxLDAs''@;'; put 'put ''MCwxLC43NywxLjY5TDIxLjc4LDE0aDUuMzhhMSwxLDAsMCwxLC43MywxLjY2bC0xNi42MywxOEExLDEsMCwwLDEsMTAuNTIsMzRaTTkuMTgsMzJoLjkxTDI0Ljg2LDE2SDE5LjU5YTEsMSwwLDAsMS0uNzctMS42OUwyNy44OCw0SDE3LjE5TDcuNzcsMTlIMTQuMmExLDEsMCwwLDEsLjg4LDEu''@;'; put 'put ''NDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC44LDIuMjlBLjQ5LjQ5LDAsMCwwLDMwLjM1LDJIMTYuNDJhLjUuNSwwLDAsMC0uNDIuMjNsLTEwLjcxLDE3QS40OS40OSwwLDAsMCw1LjcsMjBoNy42N0w2''@;'; put 'put ''LjYsMzMuMjVhLjUyLjUyLDAsMCwwLC40Ni43NWgzYS41LjUsMCwwLDAsLjM3LS4xNkwyOCwxNC44NWEuNS41LDAsMCwwLS4zNy0uODVIMjAuODlMMzAuNzIsMi44MkEuNDkuNDksMCwwLDAsMzAuOCwyLjI5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxl''@;'; put 'put ''LkNsclNoYXBlV3JlbmNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy4xOCwyNi4xMSwyMC4zNSwxMy4yOEE5LjI4LDkuMjgsMCwwLDAsNy41NCwyLjc5bC0xLjM0LjU5LDUuMzgsNS4zOEw4Ljc2LDExLjU5LDMuMzgsNi4yMSwyLjc5LDcuNTRBOS4yNyw5LjI3LDAsMCwwLDEzLjI4''@;'; put 'put ''LDIwLjM1TDI2LjExLDMzLjE4YTIsMiwwLDAsMCwyLjgzLDBsNC4yNC00LjI0QTIsMiwwLDAsMCwzMy4xOCwyNi4xMVptLTUuNjYsNS42NkwxMy44OCwxOC4xMmwtLjU3LjE2YTcuMjcsNy4yNywwLDAsMS05LjMxLTcsNy4yLDcuMiwwLDAsMSwuMTUtMS40OGw0LjYxLDQuNjEsNS42Ni01LjY2''@;'; put 'put ''TDkuODEsNC4xNWE3LjI3LDcuMjcsMCwwLDEsOC40Nyw5LjE2bC0uMTYuNTdMMzEuNzcsMjcuNTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI3LjEzIiBjeT0iMjcuMDkiIHI9IjEuMyIgdHJhbnNmb3Jt''@;'; put 'put ''PSJ0cmFuc2xhdGUoLTExLjIxIDI3LjEyKSByb3RhdGUoLTQ1KSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNzMsMjcuNzIsMTkuNjcsMTMuNjZhOC43OSw4Ljc5LDAsMCwwLTEyLTEwLjVMMTMsOC41Myw4''@;'; put 'put ''LjUzLDEzLDMuMTYsNy42N2E4Ljc5LDguNzksMCwwLDAsMTAuNSwxMkwyNy43MiwzMy43M2ExLjA3LDEuMDcsMCwwLDAsMS41LDBsNC41MS00LjUxQTEuMDcsMS4wNywwLDAsMCwzMy43MywyNy43MlpNMjksMjlhMS4zOCwxLjM4LDAsMSwxLDAtMkExLjM4LDEuMzgsMCwwLDEsMjksMjlaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVCdWxsc2V5ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMmExNS45MiwxNS45MiwwLDAsMC00LjI1LjU5bC43NywxLjg2YTE0LjA3LDE0LjA3LDAsMSwxLTEwLDEwbC0xLjg2LS43OEEx''@;'; put 'put ''NiwxNiwwLDEsMCwxOCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNy40NSwxNS43YTEwLjgxLDEwLjgxLDAsMSwwLDguMy04LjI2TDE2LjM3LDlBOS4yNCw5LjI0LDAsMSwxLDksMTYuMzJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMi4wOWE0LjA4LDQuMDgsMCwwLDEtNC0zLjY4bC0xLjYzLS42OGMwLC4wOSwwLC4xOCwwLC4yN0E1LjY5LDUuNjksMCwxLDAsMTgsMTIuMzFoLS4yNEwxOC40MywxNEE0LjA3''@;'; put 'put ''LDQuMDcsMCwwLDEsMTgsMjIuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjIsMTMuMzRhLjUuNSwwLDAsMCwuMzUuMTVIMTIuMmw1LjM3LDUuMzdBMSwxLDAsMCwwLDE5LDE3LjQ0TDEzLjUzLDEyVjgu''@;'; put 'put ''NTFhLjUuNSwwLDAsMC0uMTUtLjM1TDcuNzksMi41N2EuNS41LDAsMCwwLS44NS4zNXY0SDNhLjUuNSwwLDAsMC0uMzUuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxOC44NWExLDEsMCwwLDEtMS40''@;'; put 'put ''MSwwbC0zLTNBNCw0LDAsMCwwLDEzLjkxLDE4LDQuMDksNC4wOSwwLDEsMCwxOCwxMy45MWE0LDQsMCwwLDAtMiwuNTVsMywzQTEsMSwwLDAsMSwxOSwxOC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMmEx''@;'; put 'put ''NS45MiwxNS45MiwwLDAsMC00LjI1LjU5bDEuNiwzLjg5QTExLjg5LDExLjg5LDAsMSwxLDYuNDksMTUuM0wyLjYxLDEzLjY4QTE2LDE2LDAsMSwwLDE4LDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTUuOTRB''@;'; put 'put ''MTAuMTcsMTAuMTcsMCwxLDAsMTYsOGwxLjY5LDQuMTEuMzEsMEE1Ljg4LDUuODgsMCwxLDEsMTIuMTIsMThjMC0uMTIsMC0uMjMsMC0uMzVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguMiwxMy4zNGEuNS41LDAs''@;'; put 'put ''MCwwLC4zNS4xNUgxMi4ybDIuMzUsMi4zNUE0LjA5LDQuMDksMCwwLDEsMTYsMTQuNDZMMTMuNTMsMTJWOC41MWEuNS41LDAsMCwwLS4xNS0uMzVMNy43OSwyLjU3YS41LjUsMCwwLDAtLjg1LjM1djRIM2EuNS41LDAsMCwwLS4zNS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVRhcmdldD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsNy4yQTEwLjgsMTAuOCwwLDEsMCwyOC44LDE4LDEwLjgxLDEwLjgxLDAsMCwwLDE4LDcuMlptMCwyMEE5LjIsOS4yLDAsMSwxLDI3LjIsMTgsOS4yMSw5LjIxLDAsMCwxLDE4LDI3LjJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMi4zMUE1LjY5LDUuNjksMCwxLDAsMjMuNjksMTgsNS42OSw1LjY5LDAsMCwwLDE4LDEyLjMxWm0wLDkuNzdBNC4wOSw0LjA5LDAsMSwxLDIyLjA5LDE4LDQuMDksNC4wOSww''@;'; put 'put ''LDAsMSwxOCwyMi4wOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iNC4wOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0xOCw3LjgzQTEwLjE3LDEwLjE3LDAsMSwwLDI4LjE3LDE4LDEwLjE4LDEwLjE4LDAsMCwwLDE4LDcuODNabTAsMTZBNS44OCw1Ljg4LDAsMSwxLDIzLjg4LDE4LDUuODgsNS44OCwwLDAsMSwxOCwyMy44OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDI3LjgzQTExLjgzLDExLjgzLDAsMSwxLDI5LjgzLDE4LDExLjg1LDExLjg1LDAsMCwxLDE4LDI5LjgzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBh''@;'; put 'put ''dGgtMyIgLz4nKSxlLkNsclNoYXBlRmxhbWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjMsMTYuNjZjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcuNzgsNC40Miwx''@;'; put 'put ''OS41QTkuMyw5LjMsMCwwLDAsMywyNC42MUMzLDI5LjcyLDUuODYsMzQsMTEuNjcsMzRIMjIuNDhDMjguMjgsMzQsMzMsMjksMzMsMjIuNzhBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi42NlpNMjIuNDgsMzJIMTEuNzdDOC4xMywzMiw1LDI4LjY2LDUsMjQuNjFhNy40Myw3LjQzLDAsMCwx''@;'; put 'put ''LDEuMTYtNC4xM2MuNzMtMS4yOSw0LjA1LTcuMjEsNS42NS0xMC4wN2wzLDUuMjhhMSwxLDAsMCwwLC44Ny41MWgwYTEsMSwwLDAsMCwuODctLjUxTDIyLjQ5LDVjMS44NiwzLjMzLDYuMTUsMTEsNy4wNywxMi42QTkuMjQsOS4yNCwwLDAsMSwzMSwyMi43OEMzMSwyNy44NywyNy4xOCwzMiwy''@;'; put 'put ''Mi40OCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1Ljc1LDIxLjczYy0uNjUtMS4xNi00LjM4LTcuODEtNC4zOC03LjgxYS44LjgsMCwwLDAtMS40LDBsLTQuMiw3LjQ4LTEuNTktMi40OWEuOC44LDAs''@;'; put 'put ''MCwwLTEuMzUsMEw5LjM3LDI0LjM1YTQuMzUsNC4zNSwwLDAsMC0uODIsMi42LDQuNDksNC40OSwwLDAsMCwuNSwySDExYTMsMywwLDAsMS0uODMtMiwyLjc4LDIuNzgsMCwwLDEsLjU2LTEuNzNsMi44LTQuMzgsMS42NiwyLjZhLjguOCwwLDAsMCwxLjQxLS4xMiw3LjgyLDcuODIsMCwwLDEs''@;'; put 'put ''LjQtLjhMMjAuNjcsMTZsMy42OSw2LjU3YTQuODMsNC44MywwLDAsMSwuNzcsMi43MUE1LDUsMCwwLDEsMjMuNDYsMjloMi4xM2E2LjY4LDYuNjgsMCwwLDAsMS4xNC0zLjc0LDYuNDUsNi40NSwwLDAsMC0xLTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjMsMTYuMzJjLTEuMTktMi4wOS03Ljk0LTE0LjE1LTcuOTQtMTQuMTVhMSwxLDAsMCwwLTEuNzUsMGwtNiwxMC42NC0zLTUuMjhhMSwxLDAsMCwwLTEuNzUsMFM1LjQsMTcuNDMsNC40MiwxOS4xNUE5LjMsOS4zLDAsMCwwLDMsMjQuMjZj''@;'; put 'put ''MCw1LjExLDMuODgsOS42NSw4LjY3LDkuNzRIMjIuNDhDMjguMjgsMzQsMzMsMjguNjIsMzMsMjIuNDRBMTEuMTMsMTEuMTMsMCwwLDAsMzEuMywxNi4zMlpNMjEuNDgsMzJIMTQuNTRBNC42OCw0LjY4LDAsMCwxLDEwLDI3LjQxYTMuOTEsMy45MSwwLDAsMSwuNzUtMi4zNGwzLjM1LTUuMjFh''@;'; put 'put ''LjUuNSwwLDAsMSwuODQsMGwxLjc4LDIuNzcsMC0uMDhjLjYzLTEuMTEsNC4yMy03LjQ4LDQuMjMtNy40OGEuNS41LDAsMCwxLC44NywwczMuNiw2LjM4LDQuMjMsNy40OEE1LjgzLDUuODMsMCwwLDEsMjcsMjUuNzZDMjcsMzIsMjIuMSwzMiwyMS40OCwzMloiIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUhvdXJnbGFzcz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwx''@;'; put 'put ''LS42MmwxLjI4LTFBNi42Nyw2LjY3LDAsMCwwLDI2LDExLjA5VjRoM2ExLDEsMCwwLDAsMC0ySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wxLjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFB''@;'; put 'put ''Ni42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWk0xMiwyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMsMSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42''@;'; put 'put ''NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjR2Ny4wOWE0LjY2LDQuNjYsMCwwLDEtMS44OCwzLjcybC0xLjI4LDFoMGE0LjY2LDQuNjYsMCwwLDEtMS4xOC42MywxLDEsMCwwLDAtLjY1Ljk0djEuMzRhMSwxLDAsMCww''@;'; put 'put ''LC42NS45NCw0LjY3LDQuNjcsMCwwLDEsMS4xOS42M2wxLjI4LDFBNC42Niw0LjY2LDAsMCwxLDI0LDI0LjkxVjMySDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3''@;'; put 'put ''LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwxOGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42NCw2LjY0LDAsMCwwLDEuMDktMUgyMi4yM2EzLjY0LDMuNjQsMCwwLDEtLjc4LS4wOWwtLjYyLjQ2aDBhNC42Niw0LjY2LDAsMCwxLTEuMTguNjMs''@;'; put 'put ''MSwxLDAsMCwwLS42NS45NHYxLjM0YTEsMSwwLDAsMCwuNjUuOTQsNC42Nyw0LjY3LDAsMCwxLDEuMTkuNjNsMS4yOCwxQTQuNjYsNC42NiwwLDAsMSwyNCwyNC45MVYzMkgxMlYyNC45MWE0LjY2LDQuNjYsMCwwLDEsMS44OC0zLjcybDEuMjgtMWE0LjY2LDQuNjYsMCwwLDEsMS4xOC0uNjMs''@;'; put 'put ''MSwxLDAsMCwwLC42NS0uOTRWMTcuMzNhMSwxLDAsMCwwLS42NS0uOTQsNC42Nyw0LjY3LDAsMCwxLTEuMTktLjYzbC0xLjI4LTFBNC42Niw0LjY2LDAsMCwxLDEyLDExLjA5VjRIMjIuNDVMMjMuNiwySDdBMSwxLDAsMCwwLDcsNGgzdjcuMDlhNi42Nyw2LjY3LDAsMCwwLDIuNjksNS4zM2wx''@;'; put 'put ''LjI4LDFBNi4zNiw2LjM2LDAsMCwwLDE1LDE4aDBhNi4yNyw2LjI3LDAsMCwwLTEsLjYybC0xLjI4LDFBNi42Nyw2LjY3LDAsMCwwLDEwLDI0LjkxVjMySDdhMSwxLDAsMCwwLDAsMkgyOWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjksMzJIMjZWMjQuOTFhNi42Nyw2LjY3LDAsMCwwLTIuNjktNS4zM2wtMS4yOC0xQTYuMzYsNi4zNiwwLDAsMCwyMSwx''@;'; put 'put ''OGgwYTYuMjksNi4yOSwwLDAsMCwxLS42MmwxLjI4LTFhNi42OCw2LjY4LDAsMCwwLDIuNTctNC4xNkE3LjUzLDcuNTMsMCwwLDEsMjQsMTAuNDl2LjYxYTQuNjYsNC42NiwwLDAsMS0xLjg4LDMuNzJsLTEuMjgsMWgwYTQuNjYsNC42NiwwLDAsMS0xLjE4LjYzLDEsMSwwLDAsMC0uNjUuOTR2''@;'; put 'put ''MS4zNGExLDEsMCwwLDAsLjY1Ljk0LDQuNjcsNC42NywwLDAsMSwxLjE5LjYzbDEuMjgsMUE0LjY2LDQuNjYsMCwwLDEsMjQsMjQuOTFWMzJIMTJWMjQuOTFhNC42Niw0LjY2LDAsMCwxLDEuODgtMy43MmwxLjI4LTFhNC42Niw0LjY2LDAsMCwxLDEuMTgtLjYzLDEsMSwwLDAsMCwuNjUtLjk0''@;'; put 'put ''VjE3LjMzYTEsMSwwLDAsMC0uNjUtLjk0LDQuNjcsNC42NywwLDAsMS0xLjE5LS42M2wtMS4yOC0xQTQuNjYsNC42NiwwLDAsMSwxMiwxMS4wOVY0SDIyLjc4YTcuNDUsNy40NSwwLDAsMSwuODktMkg3QTEsMSwwLDAsMCw3LDRoM3Y3LjA5YTYuNjcsNi42NywwLDAsMCwyLjY5LDUuMzNsMS4y''@;'; put 'put ''OCwxQTYuMzYsNi4zNiwwLDAsMCwxNSwxOGgwYTYuMjcsNi4yNywwLDAsMC0xLC42MmwtMS4yOCwxQTYuNjcsNi42NywwLDAsMCwxMCwyNC45MVYzMkg3YTEsMSwwLDAsMCwwLDJIMjlhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRo''@;'; put 'put ''MjJhMSwxLDAsMCwwLDAtMmgtMjJhMSwxLDAsMSwwLDAsMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguNjcsMzJoLTIyYTEsMSwwLDAsMCwwLDJoMjJhMSwxLDAsMSwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTUsMTUuNjdBNi4wNyw2LjA3LDAsMCwwLDI1LDExLjEyVjZIMTAuMDZ2NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2YTExLjQ4LDEx''@;'; put 'put ''LjQ4LDAsMCwwLTIuOTEsMS43Miw2LjA3LDYuMDcsMCwwLDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlBMTEuNDgsMTEuNDgsMCwwLDAsMjIuNTUsMTUuNjdaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTYuNjcsNEgyMi40NUwyMy42LDJINi42N2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi41MSwyMC4yN2E2LjA3LDYuMDcsMCww''@;'; put 'put ''LDAtMi40NSw0LjU1djUuMTJIMjVWMjQuODJhNi4wNyw2LjA3LDAsMCwwLTIuNDUtNC41NSwxMS40OCwxMS40OCwwLDAsMC0yLjkxLTEuNzJWMTcuMzlhMTEuNDgsMTEuNDgsMCwwLDAsMi45MS0xLjcybC4zLS4yN2gtLjYyQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5TDIxLjI5LDZIMTAuMDZ2''@;'; put 'put ''NS4xMmE2LjA3LDYuMDcsMCwwLDAsMi40NSw0LjU1LDExLjQ4LDExLjQ4LDAsMCwwLDIuOTEsMS43MnYxLjE2QTExLjQ4LDExLjQ4LDAsMCwwLDEyLjUxLDIwLjI3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjY3LDMyaC0yMmExLDEsMCwwLDAsMCwyaDIyYTEsMSwwLDEsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjY3LDRIMjIuNzhhNy40NSw3LjQ1LDAsMCwxLC44OS0yaC0xN2ExLDEsMCwxLDAsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNTUs''@;'; put 'put ''MjAuMjdhMTEuNDgsMTEuNDgsMCwwLDAtMi45MS0xLjcyVjE3LjM5YTExLjQ4LDExLjQ4LDAsMCwwLDIuOTEtMS43MkE2LjI1LDYuMjUsMCwwLDAsMjUsMTEuNTUsNy40Nyw3LjQ3LDAsMCwxLDIyLjUsNkgxMC4wNnY1LjEyYTYuMDcsNi4wNywwLDAsMCwyLjQ1LDQuNTUsMTEuNDgsMTEuNDgs''@;'; put 'put ''MCwwLDAsMi45MSwxLjcydjEuMTZhMTEuNDgsMTEuNDgsMCwwLDAtMi45MSwxLjcyLDYuMDcsNi4wNywwLDAsMC0yLjQ1LDQuNTV2NS4xMkgyNVYyNC44MkE2LjA3LDYuMDcsMCwwLDAsMjIuNTUsMjAuMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMt''@;'; put 'put ''LWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVOb0FjY2Vzcz0oMCxhLmNsckljb25TVkcpKCc8''@;'; put 'put ''cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm0wLDMwQTE0LDE0LDAsMSwxLDMyLDE4LDE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcu''@;'; put 'put ''MTUsMTVIOC44NUExLjg1LDEuODUsMCwwLDAsNywxNi44NXYyLjI5QTEuODUsMS44NSwwLDAsMCw4Ljg1LDIxSDI3LjE1QTEuODUsMS44NSwwLDAsMCwyOSwxOS4xNVYxNi44NUExLjg1LDEuODUsMCwwLDAsMjcuMTUsMTVabS4yNSw0LjE1YS4yNS4yNSwwLDAsMS0uMjUuMjVIOC44NWEuMjUu''@;'; put 'put ''MjUsMCwwLDEtLjI1LS4yNVYxNi44NWEuMjUuMjUsMCwwLDEsLjI1LS4yNUgyNy4xNWEuMjUuMjUsMCwwLDEsLjI1LjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwx''@;'; put 'put ''NiwxNiwwLDAsMCwxOCwyWk0yOS4xNSwyMEg2Ljg1QS44NS44NSwwLDAsMSw2LDE5LjE1VjE2Ljg1QS44NS44NSwwLDAsMSw2Ljg1LDE2SDI5LjE1YS44NS44NSwwLDAsMSwuODUuODV2Mi4yOUEuODUuODUsMCwwLDEsMjkuMTUsMjBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVPcmdhbml6YXRpb249KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjggMTguOCAyNi4yIDE4LjggMjYuMiAyMS44OCAyNy44IDIxLjg4IDI3LjggMTcuMiAxOC44IDE3LjIgMTguOCAxNCAxNy4yIDE0IDE3LjIgMTcuMiA4LjIgMTcu''@;'; put 'put ''MiA4LjIgMjEuODggOS44IDIxLjg4IDkuOCAxOC44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyM0g0YTIsMiwwLDAsMC0yLDJ2NmEyLDIsMCwwLDAsMiwySDE0YTIsMiwwLDAsMCwyLTJWMjVBMiwyLDAs''@;'; put 'put ''MCwwLDE0LDIzWk00LDMxVjI1SDE0djZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiwyM0gyMmEyLDIsMCwwLDAtMiwydjZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI1QTIsMiwwLDAsMCwz''@;'; put 'put ''MiwyM1pNMjIsMzFWMjVIMzJ2NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDEzSDIzYTIsMiwwLDAsMCwyLTJWNWEyLDIsMCwwLDAtMi0ySDEzYTIsMiwwLDAsMC0yLDJ2NkEyLDIsMCwwLDAsMTMsMTNa''@;'; put 'put ''bTAtOEgyM3Y2SDEzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjkuOCAxOC44IDI2LjIgMTguOCAyNi4yIDIxLjg4IDI3LjggMjEuODggMjcuOCAxNy4yIDE4LjggMTcuMiAxOC44IDE0IDE3LjIg''@;'; put 'put ''MTQgMTcuMiAxNy4yIDguMiAxNy4yIDguMiAyMS44OCA5LjggMjEuODggOS44IDE4LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyIiB5PSIyMyIgd2lkdGg9IjE0IiBoZWlnaHQ9IjEwIiByeD0iMiIgcnk9IjIiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMCIgeT0iMjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHJlY3QgeD0iMTEiIHk9IjMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMCIgcng9IjIiIHJ5PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPicpLGUuQ2xyU2hhcGVCYWxhbmNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNCwzM0gxMmExLDEsMCwwLDEs''@;'; put 'put ''MC0ySDI0YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE3IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyMi41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw3SDhBMSwxLDAsMCwxLDgsNUgyOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuOTMsMjQuNzlhNy4yMyw3LjIzLDAsMCwx''@;'; put 'put ''LTUuODEtMi44OWwtLjYtLjgsMS41OS0xLjIxLjYuOGE1LjI4LDUuMjgsMCwwLDAsOC40MiwwbC42LS44LDEuNTksMS4yMS0uNi44QTcuMjMsNy4yMywwLDAsMSwyNi45MywyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTMwLjUxLDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEwyNi45MywxMi4ybC0yLjg1LDYuNTdhLjguOCwwLDAsMS0xLjQ3LS42NEwyNi4yLDkuODdhLjgzLjgzLDAsMCwxLDEuNDcsMGwzLjU4LDguMjZhLjguOCwwLDAsMS0uNzMsMS4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTkuNjgsMjQuNzlBNy4yMyw3LjIzLDAsMCwxLDMuODgsMjEuOWwtLjYtLjhMNC44NiwxOS45bC42LjhhNS4yOCw1LjI4LDAsMCwwLDguNDIsMGwuNi0uOCwxLjU5LDEuMjEtLjYuOEE3LjIzLDcuMjMsMCww''@;'; put 'put ''LDEsOS42OCwyNC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLjI2LDE5LjI1YS44LjgsMCwwLDEtLjczLS40OEw5LjY4LDEyLjIsNi44NCwxOC43N2EuOC44LDAsMCwxLTEuNDctLjY0TDguOTUsOS44''@;'; put 'put ''N2EuODMuODMsMCwwLDEsMS40NywwTDE0LDE4LjEzYS44LjgsMCwwLDEtLjczLDEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz4nKSxlLkNsclNoYXBlSWRCYWRnZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMjJhNC4yMyw0LjIzLDAs''@;'; put 'put ''MSwwLTQuMjMtNC4yM0E0LjIzLDQuMjMsMCwwLDAsMTgsMjJabTAtNi44NmEyLjYzLDIuNjMsMCwxLDEtMi42MywyLjYzQTIuNjMsMi42MywwLDAsMSwxOCwxNS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTIyLDRhMiwyLDAsMCwwLTItMkgxNmEyLDIsMCwwLDAtMiwydjdoOFpNMjAsOUgxNlY0aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMFYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5''@;'; put 'put ''LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMzLDAsMCwxLDYuNCwyLjU5VjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsNkgyNFY4aDRWMzJIOFY4aDRWNkg4QTIsMiwwLDAsMCw2LDhWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDI4LDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMmE0LjIzLDQuMjMsMCwxLDAtNC4yMy00LjIzQTQuMjMsNC4yMywwLDAsMCwxOCwyMlptMC02Ljg2YTIuNjMsMi42MywwLDEsMS0yLjYzLDIuNjNBMi42MywyLjYzLDAsMCwxLDE4LDE1LjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMGgxLjZWMjcuODdBOC4zMyw4LjMzLDAsMCwxLDE4LDI1LjI5YTguMzMsOC4zMywwLDAsMSw2LjQsMi41OVYz''@;'; put 'put ''MEgyNlYyNy43YTEuMTIsMS4xMiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTE5LDkuODksMTkuNTYsOUgxNlY0aDRWOC4yNGwyLTMuNDZWNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g0LjY0QTMuNjYsMy42NiwwLDAsMSwxOSw5Ljg5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMkg4VjhoNFY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIyYTQuMjMsNC4yMywwLDEsMC00LjIzLTQuMjNBNC4yMyw0LjIzLDAsMCwwLDE4LDIyWm0wLTYuODZhMi42MywyLjYzLDAsMSwxLTIuNjMsMi42M0Ey''@;'; put 'put ''LjYzLDIuNjMsMCwwLDEsMTgsMTUuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNGEyLDIsMCwwLDAtMi0ySDE2YTIsMiwwLDAsMC0yLDJ2N2g4Wk0yMCw5SDE2VjRoNFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwaDEuNlYyNy44N0E4LjMzLDguMzMsMCwwLDEsMTgsMjUuMjlhOC4zMyw4LjMz''@;'; put 'put ''LDAsMCwxLDYuNCwyLjU5VjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyVjMySDhWOGg0VjZIOEEyLDIsMCwwLDAsNiw4VjMyYTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBj''@;'; put 'put ''eT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEsNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIg''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yNiwyN2ExLjEzLDEuMTMsMCwwLDAtLjI2LjczVjMwSDI2VjI3LjdhMS4xMiwxLjEyLDAsMCwwLS4yNi0uNzNBOS45LDkuOSwwLDAsMCwxOCwyMy42OSw5LjksOS45LDAsMCwwLDEwLjI2LDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw2SDIzVjhoNVYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMjgsNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksOS44OSwyMSw2LjVWNGEyLDIsMCwwLDAtMi0ySDE3YTIsMiwwLDAsMC0yLDJ2Nmg0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxjaXJj''@;'; put 'put ''bGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjYsMjdhMS4xMywxLjEzLDAsMCwwLS4yNi43M1YzMEgyNlYyNy43YTEuMTIsMS4x''@;'; put 'put ''MiwwLDAsMC0uMjYtLjczQTkuOSw5LjksMCwwLDAsMTgsMjMuNjksOS45LDkuOSwwLDAsMCwxMC4yNiwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjgsMTUuNFYzMkg4VjhoNVY2''@;'; put 'put ''SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4''@;'; put 'put ''LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE4IiBjeT0iMTcuNzciIHI9IjQuMjMiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDRhMiwyLDAsMCwwLTItMkgxN2EyLDIsMCwwLDAtMiwy''@;'; put 'put ''djZoNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjI2LDI3YTEuMTMsMS4xMywwLDAsMC0uMjYuNzNWMzBIMjZWMjcuN2ExLjEyLDEuMTIsMCwwLDAtLjI2LS43M0E5LjksOS45LDAs''@;'; put 'put ''MCwwLDE4LDIzLjY5LDkuOSw5LjksMCwwLDAsMTAuMjYsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwxMy4yMlYzMkg4VjhoNVY2SDhBMiwyLDAsMCwwLDYsOFYzMmEyLDIsMCww''@;'; put 'put ''LDAsMiwySDI4YTIsMiwwLDAsMCwyLTJWMTMuNUE3LjQ5LDcuNDksMCwwLDEsMjgsMTMuMjJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJj''@;'; put 'put ''bHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hhcGVSZXBlYXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik02LDE0LjE1QTMuMTcs''@;'; put 'put ''My4xNywwLDAsMSw5LjE3LDExSDI4LjRsLTQuMjgsNC41NGExLDEsMCwxLDAsMS40NiwxLjM3TDMyLjA5LDEwLDI1LjU4LDMuMDlhMSwxLDAsMSwwLTEuNDYsMS4zN0wyOC40LDlIOS4xN0E1LjE3LDUuMTcsMCwwLDAsNCwxNC4xNXY2LjFsMi0yLjEyWiIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMCwyMS44NUEzLjE3LDMuMTcsMCwwLDEsMjYuODMsMjVINy42bDQuMjgtNC41NGExLDEsMCwxLDAtMS40Ni0xLjM3TDMuOTEsMjZsNi41MSw2LjkxYTEsMSwwLDEsMCwxLjQ2LTEuMzdMNy42LDI3SDI2Ljgz''@;'; put 'put ''QTUuMTcsNS4xNywwLDAsMCwzMiwyMS44NXYtNi4xbC0yLDIuMTJaIi8+JyksZS5DbHJTaGFwZUZpbGVHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMxLDM0SDEzYTEsMSwwLDAsMS0xLTFWMTFhMSwx''@;'; put 'put ''LDAsMCwxLDEtMUgzMWExLDEsMCwwLDEsMSwxVjMzQTEsMSwwLDAsMSwzMSwzNFpNMTQsMzJIMzBWMTJIMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTYiIHk9IjE2IiB3aWR0aD0iMTIiIGhlaWdodD0iMiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjE2IiB5PSIyMCIgd2lkdGg9IjEyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4''@;'; put 'put ''PSIxNiIgeT0iMjQiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTYsMjRWNEgyNFYzYTEsMSwwLDAsMC0xLTFINUExLDEsMCwwLDAsNCwzVjI1YTEsMSwwLDAsMCwxLDFINloi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMSwxMEgxM2ExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwxLDFIMzFhMSwxLDAsMCwwLDEtMVYxMUExLDEsMCwwLDAsMzEsMTBaTTI4LDI2SDE2VjI0SDI4Wm0wLTRIMTZWMjBIMjhabTAtNEgxNlYxNkgyOFoiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik02LDI0VjRIMjRWM2ExLDEsMCwwLDAtMS0xSDVBMSwxLDAsMCwwLDQsM1YyNWExLDEsMCwwLDAsMSwxSDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0zIiBkPSJNMTAsMjhWOEgyOFY3YTEsMSwwLDAsMC0xLTFIOUExLDEsMCwwLDAsOCw3VjI5YTEsMSwwLDAsMCwxLDFoMVoiLz4nKSxlLkNsclNoYXBlUGFwZXJjbGlwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xIiBkPSJNOC40MiwzMi42QTYuMyw2LjMsMCwwLDEsNCwzMC43OWwtLjEzLS4xM0E2LjIsNi4yLDAsMCwxLDIsMjYuMjIsNi43Nyw2Ljc3LDAsMCwxLDQsMjEuNEwxOS41LDYuMDdhOC42Nyw4LjY3LDAsMCwxLDEyLjE1LS4zNUE4LDgsMCwwLDEsMzQsMTEuNDRhOSw5LDAsMCwxLTIuNyw2''@;'; put 'put ''LjM2TDE3LjM3LDMxLjZBMSwxLDAsMSwxLDE2LDMwLjE4TDI5Ljg5LDE2LjM4QTcsNywwLDAsMCwzMiwxMS40NGE2LDYsMCwwLDAtMS43Ni00LjMsNi42Nyw2LjY3LDAsMCwwLTkuMzQuMzVMNS40NSwyMi44MkE0Ljc4LDQuNzgsMCwwLDAsNCwyNi4yMmE0LjIxLDQuMjEsMCwwLDAsMS4yNCwz''@;'; put 'put ''bC4xMy4xM2E0LjY0LDQuNjQsMCwwLDAsNi41LS4yMUwyNS4yMiwxNS45NEEyLjcsMi43LDAsMCwwLDI2LDE0YTIuMzUsMi4zNSwwLDAsMC0uNjktMS42OCwyLjYxLDIuNjEsMCwwLDAtMy42Ni4xM2wtOS4yLDkuMTJhMSwxLDAsMSwxLTEuNDEtMS40MkwyMC4yOCwxMWE0LjYyLDQuNjIsMCww''@;'; put 'put ''LDEsNi40OC0uMTNBNC4zMyw0LjMzLDAsMCwxLDI4LDE0YTQuNjgsNC42OCwwLDAsMS0xLjQxLDMuMzRMMTMuMjgsMzAuNThBNi45MSw2LjkxLDAsMCwxLDguNDIsMzIuNloiLz4nKSxlLkNsclNoYXBlU2hyaW5rPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTVIMjIuNDFsOS4yNS05LjI1YTEsMSwwLDAsMC0xLjQxLTEuNDFMMjEsMTMuNTlWNGExLDEsMCwwLDAtMiwwVjE3SDMyYTEsMSwwLDAsMCwwLTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMiIgZD0iTTQsMTlhMSwxLDAsMCwwLDAsMmg5LjU5TDQuMzMsMzAuMjVhMSwxLDAsMSwwLDEuNDEsMS40MUwxNSwyMi40MVYzMmExLDEsMCwwLDAsMiwwVjE5WiIvPicpLGUuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5MT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQu''@;'; put 'put ''NDQsMzEuOTRhNy4zMSw3LjMxLDAsMCwxLTUuNy0xMS44OEw3LjMyLDE4LjY0YTkuMyw5LjMsMCwwLDAsMTMuMSwxMy4xMUwxOSwzMC4zM0E3LjI5LDcuMjksMCwwLDEsMTQuNDQsMzEuOTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0yNS4zNiwxLjY3YTQuMTIsNC4xMiwwLDEsMCw0LjExLDQuMTFBNC4xMiw0LjEyLDAsMCwwLDI1LjM2LDEuNjdabTAsNi4yM2EyLjEyLDIuMTIsMCwxLDEsMi4xMS0yLjEyQTIuMTIsMi4xMiwwLDAsMSwyNS4zNiw3LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi41NiwxOC4xOGgtNWExLDEsMCwwLDAtLjI0LjA1bDMuMDktMy41NWEyLjgzLDIuODMsMCwwLDAtLjY5LTQuMzNsLTgtNC42YTEsMSwwLDAsMC0xLjEyLjA4TDkuODMsOS41OEExLDEsMCwwLDAsOS42NiwxMWEx''@;'; put 'put ''LDEsMCwwLDAsLjc5LjM4LDEsMSwwLDAsMCwuNjEtLjIxbDQuMjctMy4zNCwzLjExLDEuNzctNS4wOCw1Ljc4aDBhOS4yOCw5LjI4LDAsMCwwLTQuNTMsMS44M2wxLjQzLDEuNDNBNy4zLDcuMywwLDAsMSwyMC40MiwyOC44MWwxLjQyLDEuNDNhOS4yNyw5LjI3LDAsMCwwLC43Ny0xMC4wNmgy''@;'; put 'put ''LjgybC0uNzcsNi41MWExLDEsMCwwLDAsLjg4LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi41NiwxOC4xOFptLTYuMzctNy41NiwyLjUyLDEuNDZhLjc5Ljc5LDAsMCwxLC40LjU5LjgxLjgxLDAsMCwxLS4yLjY5TDE5Ljc1''@;'; put 'put ''LDE3QTkuMTcsOS4xNywwLDAsMCwxNiwxNS40NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0Ljc3LDMxLjk0YTcuMzEsNy4zMSwwLDAsMS01LjctMTEuODhMNy42NSwxOC42NGE5LjMsOS4zLDAsMCwwLDEz''@;'; put 'put ''LjEsMTMuMTFsLTEuNDItMS40MkE3LjI5LDcuMjksMCwwLDEsMTQuNzcsMzEuOTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjY1LDIuMWEzLjEyLDMuMTIsMCwxLDAsMy4xMSwzLjEyQTMuMTIsMy4xMiwwLDAs''@;'; put 'put ''MCwyNi42NSwyLjFaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjgxLDE4LjE4SDIxLjQ3cS0uMzEtLjMzLS42Ni0uNjNsNC4zOC00Ljg2YTIuMTQsMi4xNCwwLDAsMC0uNTMtMy4yN0wyMC45LDcuMjNsMCwwTDE3''@;'; put 'put ''LjA1LDUuMDdhMSwxLDAsMCwwLTEuMTEuMDhMMTEuMTUsOC45YTEsMSwwLDAsMCwxLjIzLDEuNThsNC4yNy0zLjM0LDIuODcsMS42M0wxMy42LDE1LjM5YTkuMzMsOS4zMywwLDAsMC00LjQ0LDEuODJsMS40MiwxLjQzQTcuMyw3LjMsMCwwLDEsMjAuNzUsMjguODFsMS40MywxLjQzQTkuMjcs''@;'; put 'put ''OS4yNywwLDAsMCwyMywyMC4xOGgyLjc0bC0uNzcsNi41MWExLDEsMCwwLDAsLjg3LDEuMTFoLjEyYTEsMSwwLDAsMCwxLS44OGwuOS03LjYyYTEsMSwwLDAsMC0uMjUtLjc4QTEsMSwwLDAsMCwyNi44MSwxOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+''@;'; put 'put ''JyksZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMC4wNiwxMWgtMjRhMSwxLDAsMSwwLDAsMkgxNHY5LjY1czAsMCwwLDBsLTMuNzUsMTBhMSwxLDAsMCwwLC41OCwxLjI5LDEuMTMsMS4xMywwLDAsMCwuMzYuMDYsMSwxLDAsMCwwLC45My0u''@;'; put 'put ''NjVMMTUuNjIsMjRoNC43NmwzLjUyLDkuMzVhMSwxLDAsMCwwLC45My42NSwxLjEzLDEuMTMsMCwwLDAsLjM2LS4wNiwxLDEsMCwwLDAsLjU4LTEuMjlMMjIsMjIuNjhzMCwwLDAsMFYxM2g4LjA2YTEsMSwwLDEsMCwwLTJaTTIwLDIySDE2VjEzaDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMGE0LDQsMCwxLDAtNC00QTQsNCwwLDAsMCwxOCwxMFptMC02YTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxjaXJjbGUgY3g9IjE3Ljk2IiBjeT0iNSIgcj0iMyIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEg2YTEsMSwwLDAsMCwwLDJoOHY4LjM2czAsMCwwLDBMMTAuMTEsMzMuMTdhMSwxLDAs''@;'; put 'put ''MCwwLC42NiwxLjI1LDEuNTUsMS41NSwwLDAsMCwuMjksMCwxLDEsMCwwLDAsMS0uNzFsMy4yOS0xMC44NGg1LjM4TDI0LDMzLjc1YTEsMSwwLDAsMCwxLC43MSwxLjU1LDEuNTUsMCwwLDAsLjI5LDAsMSwxLDAsMCwwLC42Ni0xLjI1TDIyLDIwLjRzMCwwLDAsMFYxMmg4YTEsMSwwLDAsMCww''@;'; put 'put ''LTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVTb3J0Qnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI4LjU0LDEzSDcuNDZhMSwxLDAsMCwxLDAtMkgyOC41NGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuMTcsMTlINy40NmExLDEsMCwwLDEsMC0ySDIxLjE3YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; put 'put ''Ik0xMy43NCwyNUg3LjQ2YTEsMSwwLDAsMSwwLTJoNi4yOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUNvbGxhcHNlQ2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMjFIM2ExLDEsMCww''@;'; put 'put ''LDAtMSwxdjZhMSwxLDAsMCwwLDEsMUgzM2ExLDEsMCwwLDAsMS0xVjIyQTEsMSwwLDAsMCwzMywyMVptLTEsNkg0VjIzSDMyWiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuMjJsNS42NS01LjY1YS44''@;'; put 'put ''MS44MSwwLDAsMCwwLTEuMTQuOC44LDAsMCwwLTEuMTMsMEwxOCwxOGwtNC41Mi00LjUyYS44LjgsMCwwLDAtMS4xMywwLC44MS44MSwwLDAsMCwwLDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwx''@;'; put 'put ''NC4yMmw1LjY1LTUuNjVhLjgxLjgxLDAsMCwwLDAtMS4xNC44LjgsMCwwLDAtMS4xMywwTDE4LDEyLDEzLjQ4LDcuNDNhLjguOCwwLDAsMC0xLjEzLDAsLjgxLjgxLDAsMCwwLDAsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgeD0iMiIgeT0iMjIiIHdpZHRoPSIzMiIgaGVpZ2h0PSI4IiByeD0iMSIgcnk9IjEiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjAuN2wtNS43OS01Ljc5YTEsMSwwLDAsMSwwLTEuNDEsMSwxLDAs''@;'; put 'put ''MCwxLDEuNDEsMEwxOCwxNy44N2w0LjM4LTQuMzdhMSwxLDAsMCwxLDEuNDEsMCwxLDEsMCwwLDEsMCwxLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC41LDEyLjIxLDguNzFhMSwxLDAsMCwxLDAtMS40''@;'; put 'put ''MiwxLDEsMCwwLDEsMS40MSwwTDE4LDExLjY3bDQuMzgtNC4zOGExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVFeHBhbmRDYXJkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; put 'put ''Ik0zMyw2SDNBMSwxLDAsMCwwLDIsN1YyOWExLDEsMCwwLDAsMSwxSDMzYTEsMSwwLDAsMCwxLTFWN0ExLDEsMCwwLDAsMzMsNlpNMzIsMjhINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy40OCwx''@;'; put 'put ''NS44NiwxOCwxMS4zNGw0LjUyLDQuNTJhLjc3Ljc3LDAsMCwwLC41Ni4yNC44MS44MSwwLDAsMCwuNTctMS4zN0wxOCw5LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTEzLjQ4LDIxLjg2LDE4LDE3LjM0bDQuNTIsNC41MmEuNzcuNzcsMCwwLDAsLjU2LjI0LjgxLjgxLDAsMCwwLC41Ny0xLjM3TDE4LDE1LjA4bC01LjY1LDUuNjVhLjguOCwwLDEsMCwxLjEzLDEuMTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDZIM0ExLDEsMCwwLDAsMiw3VjI5YTEsMSwwLDAsMCwxLDFIMzNhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCwzMyw2Wk0yMy43OSwyMS40MWExLDEsMCwwLDEtMS40MSwwTDE4LDE3bC00LjM4LDQuMzhhMSwxLDAsMCwxLTEuNDEsMCwx''@;'; put 'put ''LDEsMCwwLDEsMC0xLjQyTDE4LDE0LjIsMjMuNzksMjBBMSwxLDAsMCwxLDIzLjc5LDIxLjQxWm0wLTYuMmExLDEsMCwwLDEtMS40MSwwTDE4LDEwLjgzbC00LjM4LDQuMzhhMSwxLDAsMCwxLTEuNDEsMCwxLDEsMCwwLDEsMC0xLjQyTDE4LDhsNS43OSw1Ljc5QTEsMSwwLDAsMSwyMy43OSwx''@;'; put 'put ''NS4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUJyaWVmY2FzZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsMjhhMCwwLDAsMCwxLDAsMEg0VjIxLjMyYTcuMSw3LjEsMCwwLDEtMi0xLjQzVjI4YTIsMiwwLDAsMCwyLDJI''@;'; put 'put ''MzJhMiwyLDAsMCwwLDItMlYxOS44OWE2Ljc0LDYuNzQsMCwwLDEtMiwxLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMjUsMjIuNGExLDEsMCwwLDAsMS0xVjE1Ljk0SDI0VjE4SDE0djJIMjR2MS40QTEsMSwwLDAsMCwyNSwy''@;'; put 'put ''Mi40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMzMsNkgyNFY0LjM4QTIuNDIsMi40MiwwLDAsMCwyMS41NSwyaC03LjFBMi40MiwyLjQyLDAsMCwwLDEyLDQuMzhWNkgzQTEsMSwwLDAsMCwyLDd2OGE1LDUsMCwwLDAsNSw1aDN2''@;'; put 'put ''MS40YTEsMSwwLDAsMCwyLDBWMTUuOTRIMTBWMThIN2EzLDMsMCwwLDEtMy0zVjhIMzJ2N2EzLDMsMCwwLDEtMywzSDI4djJoMWE1LDUsMCwwLDAsNS01VjdBMSwxLDAsMCwwLDMzLDZaTTIyLDZIMTRWNC40M0EuNDUuNDUsMCwwLDEsMTQuNDUsNGg3LjExYS40My40MywwLDAsMSwuNDQuNDJa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0zMCwxOEE0LjA2LDQuMDYsMCwwLDAsMzQsMTRWNkgyNFY0LjQzQTIuNDQsMi40NCwwLDAsMCwyMS41NSwyaC03LjFBMi40NCwyLjQ0LDAsMCwwLDEyLDQuNDNWNkgydjhBNC4wNiw0LjA2''@;'; put 'put ''LDAsMCwwLDYuMDUsMThoNFYxNS45MmgydjUuN2ExLDEsMCwxLDEtMiwwVjIwLjA2SDYuMDZBNi4wNiw2LjA2LDAsMCwxLDIsMTguNDl2OS40NWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTguNDlhNiw2LDAsMCwxLTQuMDYsMS41N0gyOFYxOFpNMTQsNC40M0EuNDUuNDUsMCww''@;'; put 'put ''LDEsMTQuNDUsNGg3LjFhLjQ1LjQ1LDAsMCwxLC40NS40M1Y2SDE0Wk0yNiwyMS42MmExLDEsMCwxLDEtMiwwVjIwLjA2SDE0VjE4SDI0VjE1LjkyaDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDb2xvclBpY2tlcj0oMCxhLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzMsMTAuMDVhNS4wNyw1LjA3LDAsMCwwLC4xLTcuMTdBNS4wNiw1LjA2LDAsMCwwLDI2LDNMMjAuNzgsOC4xNWEyLjEzLDIuMTMsMCwwLDEtMywwbC0uNjctLjY3TDE1LjcyLDguOTIsMjcuMDgsMjAuMjhsMS40Mi0xLjQyLS42Ny0uNjdhMi4xMywyLjEzLDAs''@;'; put 'put ''MCwxLDAtM1pNMjYuNDQsMTMuOGE0LjA3LDQuMDcsMCwwLDAtMS4wOCwxLjkybC01LjA4LTUuMDhBNC4wNyw0LjA3LDAsMCwwLDIyLjIsOS41Nmw1LjE2LTUuMTdhMy4wOSwzLjA5LDAsMCwxLDQuMzUtLjEsMy4wOSwzLjA5LDAsMCwxLS4xLDQuMzVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik03LjMsMzEuNTFhMiwyLDAsMSwxLTIuODMtMi44M0wxOC41OCwxNC41N2wtMS40Mi0xLjQxTDMuMDUsMjcuMjdhNCw0LDAsMCwwLS42OCw0LjhMLjg5LDMzLjU1QTEsMSwwLDAsMCwuODksMzVhMSwxLDAsMCwwLDEuNDIsMGwxLjQz''@;'; put 'put ''LTEuNDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjIuODIsMTguODEsMjEuNDEsMTcuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTMzLjczLDIuMTFhNC4wOSw0LjA5LDAsMCwwLTUu''@;'; put 'put ''NzYuMUwyMi44MSw3LjM4YTMuMTMsMy4xMywwLDAsMS00LjMuMTFMMTcuMDksOC45MSwyNywxOC43OWwxLjQyLTEuNDJBMy4xOCwzLjE4LDAsMCwxLDI4LjQ2LDEzbDUuMTctNS4xN0E0LjA4LDQuMDgsMCwwLDAsMzMuNzMsMi4xMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEiIC8+XG48cGF0aCBkPSJNMjIuMTgsMTYuNzksNy40NiwzMS41MWEyLDIsMCwxLDEtMi44Mi0yLjgzTDE5LjM1LDE0bC0xLjQxLTEuNDFMMy4yMiwyNy4yN2E0LDQsMCwwLDAtLjY4LDQuOEwxLjA2LDMzLjU1YTEsMSwwLDAsMCwwLDEuNDEsMSwxLDAsMCwwLDEuNDEsMGwxLjQ0LTEu''@;'; put 'put ''NDRhMy45MywzLjkzLDAsMCwwLDIuMDkuNiw0LjA2LDQuMDYsMCwwLDAsMi44OC0xLjJMMjMuNiwxOC4yMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUNvcHlUb0NsaXBib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjIu''@;'; put 'put ''Niw0SDIxLjU1YTMuODksMy44OSwwLDAsMC03LjMxLDBIMTMuNEEyLjQxLDIuNDEsMCwwLDAsMTEsNi40VjEwSDI1VjYuNEEyLjQxLDIuNDEsMCwwLDAsMjIuNiw0Wk0yMyw4SDEzVjYuMjVBLjI1LjI1LDAsMCwxLDEzLjI1LDZoMi42OWwuMTItMS4xMUExLjI0LDEuMjQsMCwwLDEsMTYuNjEs''@;'; put 'put ''NGEyLDIsMCwwLDEsMy4xNSwxLjE4bC4wOS44NGgyLjlhLjI1LjI1LDAsMCwxLC4yNS4yNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuPHBhdGggZD0iTTMzLjI1LDE4LjA2SDIxLjMzbDIuODQtMi44M2ExLDEsMCwxLDAtMS40Mi0xLjQyTDE3LjUs''@;'; put 'put ''MTkuMDZsNS4yNSw1LjI1YTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43MS0xLjdsLTIuODQtMi44NEgzMy4yNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG48cGF0aCBkPSJNMjksMTZoMlY2LjY4QTEuNjYsMS42Niww''@;'; put 'put ''LDAsMCwyOS4zNSw1SDI3LjA4VjdIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbjxwYXRoIGQ9Ik0yOSwzMUg3VjdIOVY1SDYuNjRBMS42NiwxLjY2LDAsMCwwLDUsNi42N1YzMS4zMkExLjY2LDEuNjYsMCwwLDAsNi42NSwzM0gyOS4zNkExLjY2''@;'; put 'put ''LDEuNjYsMCwwLDAsMzEsMzEuMzNWMjIuMDZIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlRHJhZ0hhbmRsZT0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxNSIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE1IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMjEiIGN5PSIxMiIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyMSIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjIxIiBjeT0iMTgiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTUiIC8+PGNpcmNsZSBjeD0iMTUiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlRmlsdGVyMj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzMsMTFIM2ExLDEsMCwwLDAsMCwySDMzYTEsMSww''@;'; put 'put ''LDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0yOCwxN0g4YTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0i''@;'; put 'put ''TTIzLDIzSDEzYTEsMSwwLDAsMCwwLDJIMjNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVNb29uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyNy4xOWExLDEsMCwwLDAtMS0uNTZjLS4yOCww''@;'; put 'put ''LS41NiwwLS44NSwwQTExLDExLDAsMCwxLDI0LjkyLDUuNjFhMSwxLDAsMCwwLC42MS0xLDEsMSwwLDAsMC0uNjctLjkxLDE0LjcsMTQuNywwLDAsMC01LS44NywxNS4xMiwxNS4xMiwwLDAsMCwwLDMwLjI0LDE0Ljc4LDE0Ljc4LDAsMCwwLDExLTQuODFBMSwxLDAsMCwwLDMxLDI3LjE5Wk0x''@;'; put 'put ''OS44OSwzMS4xMmExMy4xMiwxMy4xMiwwLDAsMSwwLTI2LjI0LDExLjgxLDExLjgxLDAsMCwxLDIsLjE2LDEzLDEzLDAsMCwwLDUuNzIsMjMuNTNBMTIuNzUsMTIuNzUsMCwwLDEsMTkuODksMzEuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxw''@;'; put 'put ''YXRoIGQ9Ik0yOS4yLDI2LjcyQTEyLjA3LDEyLjA3LDAsMCwxLDIyLjksNC40NCwxMy42OCwxMy42OCwwLDAsMCwxOS40OSw0YTE0LDE0LDAsMCwwLDAsMjgsMTMuODIsMTMuODIsMCwwLDAsMTAuOS01LjM0QTExLjcxLDExLjcxLDAsMCwxLDI5LjIsMjYuNzJaIiBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVTdW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDYuMzFhMSwxLDAsMCwwLDEtMVYxLjkxYTEsMSwwLDAsMC0yLDB2My40QTEsMSwwLDAsMCwxOCw2LjMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMTgsMjkuNjlhMSwxLDAsMCwwLTEsMXYzLjRhMSwxLDAsMCwwLDIsMHYtMy40QTEsMSwwLDAsMCwxOCwyOS42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuPHBhdGggZD0iTTguMzIsOS43NEExLDEs''@;'; put 'put ''MCwwLDAsOSwxMGExLDEsMCwwLDAsLjcxLS4yOSwxLDEsMCwwLDAsMC0xLjQyTDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjY4LDI2LjI2YTEsMSwwLDEsMC0xLjQyLDEuNDJs''@;'; put 'put ''Mi40MSwyLjRhMSwxLDAsMCwwLC43MS4zLDEsMSwwLDAsMCwuNy0uMywxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTYuMzEsMThhMSwxLDAsMCwwLTEtMUgxLjkxYTEsMSwwLDAsMCwwLDJoMy40QTEsMSww''@;'; put 'put ''LDAsMCw2LjMxLDE4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTM0LjA5LDE3aC0zLjRhMSwxLDAsMSwwLDAsMmgzLjRhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxw''@;'; put 'put ''YXRoIGQ9Ik04LjMyLDI2LjI2bC0yLjQsMi40MWExLDEsMCwwLDAsLjcsMS43MSwxLDEsMCwwLDAsLjcxLS4zbDIuNDEtMi40YTEsMSwwLDEsMC0xLjQyLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcsMTBhMSwxLDAsMCww''@;'; put 'put ''LC43MS0uMjlsMi40LTIuNDFhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MSwwbC0yLjQxLDIuNGExLDEsMCwwLDAsMCwxLjQyQTEsMSwwLDAsMCwyNywxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxwYXRoIGQ9Ik0xOC4xMyw3Ljc1YTEw''@;'; put 'put ''LjEzLDEwLjEzLDAsMSwwLDEwLDEwLjEzQTEwLjA4LDEwLjA4LDAsMCwwLDE4LjEzLDcuNzVabTAsMTguMjVhOC4xMyw4LjEzLDAsMSwxLDgtOC4xMkE4LjA4LDguMDgsMCwwLDEsMTguMTMsMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cGF0aCBk''@;'; put 'put ''PSJNMTgsNi40MmExLDEsMCwwLDAsMS0xVjEuOTFhMSwxLDAsMCwwLTIsMFY1LjQyQTEsMSwwLDAsMCwxOCw2LjQyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjkuNThhMSwxLDAsMCwwLTEsMXYzLjUxYTEsMSwwLDAsMCwyLDBWMzAu''@;'; put 'put ''NThBMSwxLDAsMCwwLDE4LDI5LjU4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNOC40LDkuODFBMSwxLDAsMCwwLDkuODEsOC40TDcuMzMsNS45MkExLDEsMCwwLDAsNS45Miw3LjMzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMyIgLz48cGF0aCBkPSJNMjcuNiwyNi4xOWExLDEsMCwwLDAtMS40MSwxLjQxbDIuNDgsMi40OGExLDEsMCwwLDAsMS40MS0xLjQxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cGF0aCBkPSJNNi40MiwxOGExLDEsMCwwLDAtMS0xSDEuOTFhMSwx''@;'; put 'put ''LDAsMCwwLDAsMkg1LjQyQTEsMSwwLDAsMCw2LjQyLDE4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIgLz48cGF0aCBkPSJNMzQuMDksMTdIMzAuNThhMSwxLDAsMCwwLDAsMmgzLjUxYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC02IiAvPjxwYXRoIGQ9Ik04LjQsMjYuMTksNS45MiwyOC42N2ExLDEsMCwwLDAsMS40MSwxLjQxTDkuODEsMjcuNkExLDEsMCwwLDAsOC40LDI2LjE5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIgLz48cGF0aCBkPSJNMjcuNiw5LjgxbDIuNDgtMi40''@;'; put 'put ''OGExLDEsMCwwLDAtMS40MS0xLjQxTDI2LjE5LDguNEExLDEsMCwwLDAsMjcuNiw5LjgxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOCIgLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE4IiByPSIxMCIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtOSIg''@;'; put 'put ''Lz4nKSxlLkNsclNoYXBlV2FuZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LjEsNCwzMS43MSwxLjZhMS44MywxLjgzLDAsMCwwLTEuMzEtLjU0aDBhMi4wNSwyLjA1LDAsMCwwLTEuNDUuNjJMMS43Niwy''@;'; put 'put ''OS4yM0EyLDIsMCwwLDAsMS42OCwzMmwyLjQsMi40M0ExLjgzLDEuODMsMCwwLDAsNS4zOSwzNWgwYTIuMDUsMi4wNSwwLDAsMCwxLjQ1LS42MkwzNCw2Ljc5QTIsMiwwLDAsMCwzNC4xLDRaTTUuNDIsMzIuOTMsMy4xNiwzMC42NWgwTDI0LjExLDkuNDNsMi4yNSwyLjI4Wk0zMi42MSw1LjM5''@;'; put 'put ''bC01LjEyLDUuMThMMjUuMjQsOC4yOWw1LjEzLTUuMiwyLjI1LDIuMjhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTMyLjUzLDIwLjQ3bDIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMtMS4xM2wtMi4wOSwyLjA5''@;'; put 'put ''LTIuMDktMi4wOWEuOC44LDAsMCwwLTEuMTMsMS4xM2wyLjA5LDIuMDktMi4wOSwyLjA5YS44LjgsMCwwLDAsMS4xMywxLjEzbDIuMDktMi4wOSwyLjA5LDIuMDlhLjguOCwwLDAsMCwxLjEzLTEuMTNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMyIgZD0iTTE0Ljc4LDYuNTFhLjguOCwwLDAsMCwxLjEzLDBMMTcuNCw1bDEuNDksMS40OUEuOC44LDAsMCwwLDIwLDUuMzhMMTguNTQsMy44OSwyMCwyLjRhLjguOCwwLDAsMC0xLjEzLTEuMTNMMTcuNCwyLjc2LDE1LjkxLDEuMjdBLjguOCwwLDEsMCwxNC43OCwyLjRs''@;'; put 'put ''MS40OSwxLjQ5TDE0Ljc4LDUuMzhBLjguOCwwLDAsMCwxNC43OCw2LjUxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik04LjMzLDE1LjI2YS44LjgsMCwwLDAsMS4xMywwbDEuMTYtMS4xNiwxLjE2LDEuMTZhLjgu''@;'; put 'put ''OCwwLDEsMCwxLjEzLTEuMTNMMTEuNzYsMTNsMS4xNi0xLjE2YS44LjgsMCwxLDAtMS4xMy0xLjEzbC0xLjE2LDEuMTZMOS40NiwxMC42OGEuOC44LDAsMSwwLTEuMTMsMS4xM0w5LjQ5LDEzLDguMzMsMTQuMTNBLjguOCwwLDAsMCw4LjMzLDE1LjI2WiIvPicpLGUuQ2xyU2hhcGVDdXJzb3JN''@;'; put 'put ''b3ZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOC44NSwxMi44OWExLDEsMCwwLDAtMS40MiwwLDEsMSwwLDAsMCwwLDEuNDFMMzAuMTQsMTdIMTlWNS44NmwyLjY5LDIuN2ExLDEsMCwwLDAsMS40MSwwLDEsMSwwLDAsMCwwLTEuNDJMMTgsMiwxMi44OSw3LjE1YTEsMSwwLDAsMC0u''@;'; put 'put ''MjkuNzEsMSwxLDAsMCwwLDEuNzEuN0wxNyw1Ljg2VjE3SDUuODZsMi43LTIuNjlhMSwxLDAsMCwwLDAtMS40MSwxLDEsMCwwLDAtMS40MiwwTDIsMThsNS4xNCw1LjExYTEsMSwwLDAsMCwuNzEuMjksMSwxLDAsMCwwLC43LTEuNzFMNS44NiwxOUgxN1YzMC4xNGwtMi42OS0yLjdhMSwxLDAs''@;'; put 'put ''MCwwLTEuNzEuNywxLDEsMCwwLDAsLjI5LjcxTDE4LDM0bDUuMTEtNS4xNGExLDEsMCwwLDAsMC0xLjQyLDEsMSwwLDAsMC0xLjQxLDBMMTksMzAuMTRWMTlIMzAuMTRsLTIuNywyLjY5YTEsMSwwLDAsMCwuNywxLjcxLDEsMSwwLDAsMCwuNzEtLjI5TDM0LDE4WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUNsb25lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LDZIMjJ2NGgyVjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjIySDZaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzAsMTJIMTRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTRBMiwyLDAsMCwwLDMwLDEyWm0wLDE4SDE0VjE0SDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMSAyOCAyMyAyOCAyMyAyMyAyOCAyMyAyOCAyMSAyMyAyMSAyMyAxNiAyMSAxNiAyMSAyMSAxNiAyMSAxNiAyMyAyMSAyMyAyMSAyOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI0LDEw''@;'; put 'put ''VjZhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDZWMjJhMiwyLDAsMCwwLDIsMmg0VjEyYTIsMiwwLDAsMSwyLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxMkgxNGEyLDIsMCwwLDAtMiwyVjMwYTIsMiwwLDAsMCwyLDJIMzBh''@;'; put 'put ''MiwyLDAsMCwwLDItMlYxNEEyLDIsMCwwLDAsMzAsMTJaTTI4LDIzSDIzdjVIMjFWMjNIMTZWMjFoNVYxNmgydjVoNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZURldGFpbHM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZI''@;'; put 'put ''NEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik05LDE0SDI3YTEsMSwwLDAsMCwwLTJIOWExLDEs''@;'; put 'put ''MCwwLDAsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTksMThIMjdhMSwxLDAsMCwwLDAtMkg5YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNOSwy''@;'; put 'put ''MkgxOWExLDEsMCwwLDAsMC0ySDlhMSwxLDAsMCwwLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpN''@;'; put 'put ''MTksMjJIOWExLDEsMCwwLDEsMC0ySDE5YTEsMSwwLDAsMSwwLDJabTgtNEg5YTEsMSwwLDAsMSwwLTJIMjdhMSwxLDAsMCwxLDAsMlptMC00SDlhMSwxLDAsMCwxLDAtMkgyN2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNs''@;'; put 'put ''clNoYXBlRHJhZ0hhbmRsZUNvcm5lcj0oMCxhLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSIxMiIgY3k9IjI0IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE4IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48Y2lyY2xlIGN4PSIyNCIgY3k9IjEyIiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC00IiAvPjxjaXJjbGUgY3g9IjI0IiBjeT0iMjQiIHI9IjEuNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PGNpcmNsZSBjeD0iMjQiIGN5PSIxOCIgcj0iMS41IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNiIgLz4nKSxlLkNsclNoYXBlRXJhc2VyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNS42MiwxMmEyLjgyLDIuODIsMCwwLDAtLjg0LTJMMjcuNDksMi42NWEyLjksMi45LDAsMCwwLTQsMEwyLjgzLDIzLjI4YTIuODQsMi44NCwwLDAsMCwwLDRMNy41MywzMkgzYTEsMSwwLDAs''@;'; put 'put ''MCwwLDJIMjhhMSwxLDAsMCwwLDAtMkgxNi43NGwxOC0xOEEyLjgyLDIuODIsMCwwLDAsMzUuNjIsMTJaTTEzLjkxLDMySDEwLjM2TDQuMjUsMjUuODlhLjg0Ljg0LDAsMCwxLDAtMS4xOWw1LjUxLTUuNTIsOC40OSw4LjQ4Wk0zMy4zNywxMi41NCwxOS42NiwyNi4yNWwtOC40OC04LjQ5LDEz''@;'; put 'put ''LjctMTMuN2EuODYuODYsMCwwLDEsMS4xOSwwbDcuMyw3LjI5YS44Ni44NiwwLDAsMSwuMjUuNkEuODIuODIsMCwwLDEsMzMuMzcsMTIuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgsMzJIMTUuMzNMMTksMjguMzdsLTkuOS05''@;'; put 'put ''LjlMMy41NCwyNGExLjgzLDEuODMsMCwwLDAsMCwyLjZMOSwzMkgzYTEsMSwwLDAsMCwwLDJIMjhhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTM0LjA4LDEwLjY1bC03LjMtNy4zYTEuODMsMS44MywwLDAsMC0yLjYs''@;'; put 'put ''MEwxMC40NywxNy4wNmw5LjksOS45TDM0LjA4LDEzLjI1QTEuODUsMS44NSwwLDAsMCwzNC4wOCwxMC42NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUxhbmRzY2FwZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNkg0QTIs''@;'; put 'put ''MiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZabTAsMjJINFY4SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTksMjJhLjgyLjgyLDAsMCwwLC41NS0uMjEuOC44LDAs''@;'; put 'put ''MCwwLDAtMS4xM0w3LjgzLDE4LjhIMjguMTdsLTEuNzIsMS44NmEuOC44LDAsMCwwLDAsMS4xM0EuODIuODIsMCwwLDAsMjcsMjJhLjc4Ljc4LDAsMCwwLC41OC0uMjZMMzEuMDksMThsLTMuNDctMy43NGEuNzkuNzksMCwwLDAtMS4xMywwLC44LjgsMCwwLDAsMCwxLjEzbDEuNzIsMS44Nkg3''@;'; put 'put ''LjgzbDEuNzItMS44NmEuOC44LDAsMCwwLDAtMS4xMy43OS43OSwwLDAsMC0xLjEzLDBMNC45MSwxOGwzLjQ3LDMuNzRBLjc4Ljc4LDAsMCwwLDksMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhW''@;'; put 'put ''MjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTI3Ljc3LDIxLjg4YTEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjcsMSwxLDAsMCwxLS4wNi0xLjQxTDI3LjcxLDE5SDguMjlMOS43LDIwLjUyYTEsMSwwLDAsMS0uMDYsMS40MUExLDEs''@;'; put 'put ''MCwwLDEsOSwyMi4yYTEsMSwwLDAsMS0uNzMtLjMyTDQuNjQsMThsMy41OS0zLjg4QTEsMSwwLDAsMSw5LjcsMTUuNDhMOC4yOSwxN0gyNy43MUwyNi4zLDE1LjQ4YTEsMSwwLDAsMSwxLjQ3LTEuMzZMMzEuMzYsMThaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAv''@;'; put 'put ''PicpLGUuQ2xyU2hhcGVQYXN0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMTJIMjZ2Mmg0djJoMlYxNEEyLDIsMCwwLDAsMzAsMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWln''@;'; put 'put ''aHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMEgyOHYyaDJhMiwyLDAsMCwwLDItMlYyNkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwyMlY2YTIsMiww''@;'; put 'put ''LDAsMC0yLTJINkEyLDIsMCwwLDAsNCw2VjIyYTIsMiwwLDAsMCwyLDJIMjJBMiwyLDAsMCwwLDI0LDIyWk02LDZIMjJWMjJINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjIwIiB5PSIzMCIgd2lkdGg9IjYiIGhlaWdodD0iMiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTMwLDEySDI2djJoNHYyaDJWMTRBMiwy''@;'; put 'put ''LDAsMCwwLDMwLDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cmVjdCB4PSIzMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMwLDMwSDI4djJoMmEyLDIs''@;'; put 'put ''MCwwLDAsMi0yVjI2SDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz48cmVjdCB4PSI0IiB5PSI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz48cmVjdCB4PSIy''@;'; put 'put ''MCIgeT0iMzAiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+PHBhdGggZD0iTTE0LDI2SDEydjRhMiwyLDAsMCwwLDIsMmg0VjMwSDE0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNiIgLz4nKSxlLkNs''@;'; put 'put ''clNoYXBlUG9ydHJhaXQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LjM0LDI2LjQ1YS44LjgsMCwwLDAtMS4xMywwLC43OS43OSwwLDAsMCwwLDEuMTNMMTgsMzEuMDlsMy43NC0zLjQ3YS43OS43OSwwLDAsMCwuMDUtMS4xMy44LjgsMCwwLDAtMS4xMywwTDE4LjgsMjguMTdWNy44''@;'; put 'put ''M2wxLjg2LDEuNzJhLjguOCwwLDEsMCwxLjA4LTEuMTdMMTgsNC45MSwxNC4yNiw4LjM4YS43OS43OSwwLDAsMCwwLDEuMTMuOC44LDAsMCwwLDEuMTMsMEwxNy4yLDcuODNWMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjgs''@;'; put 'put ''Mkg4QTIsMiwwLDAsMCw2LDRWMzJhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjRBMiwyLDAsMCwwLDI4LDJabTAsMzBIOFY0SDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI4LDJIOEEyLDIsMCwwLDAsNiw0VjMyYTIs''@;'; put 'put ''MiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlY0QTIsMiwwLDAsMCwyOCwyWk0yMC41MiwyNi4zYTEsMSwwLDAsMSwxLjM2LDEuNDdMMTgsMzEuMzZsLTMuODgtMy41OWExLDEsMCwwLDEsMS4zNi0xLjQ3TDE3LDI3LjcxVjguMjlMMTUuNDgsOS43YTEsMSwwLDAsMS0xLjM2LTEuNDdMMTgs''@;'; put 'put ''NC42NGwzLjg4LDMuNTlhMSwxLDAsMCwxLC4wNSwxLjQxLDEsMSwwLDAsMS0uNzMuMzIsMSwxLDAsMCwxLS42OC0uMjZMMTksOC4yOVYyNy43MVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZVRyZWVWaWV3PSgwLGEuY2xySWNvblNWRyko''@;'; put 'put ''JzxwYXRoIGQ9Ik0xNSwzMkgxMWExLDEsMCwwLDEtMS0xVjI3YTEsMSwwLDAsMSwxLTFoNGExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDE1LDMyWm0tMy0yaDJWMjhIMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTZIMTFh''@;'; put 'put ''MSwxLDAsMCwwLTEsMXYxLjJINS44VjEySDdhMSwxLDAsMCwwLDEtMVY3QTEsMSwwLDAsMCw3LDZIM0ExLDEsMCwwLDAsMiw3djRhMSwxLDAsMCwwLDEsMUg0LjJWMjkuOGg2LjM2YS44LjgsMCwwLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFW''@;'; put 'put ''MTdBMSwxLDAsMCwwLDE1LDE2Wk00LDhINnYySDRaTTE0LDIwSDEyVjE4aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQsOWExLDEsMCwwLDAtMS0xSDEwdjJIMzNBMSwxLDAsMCwwLDM0LDlaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMThIMTh2MkgzM2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMzLDI4SDE4djJIMzNhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxyZWN0IHg9IjEwIiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xNSwxNkgxMWExLDEsMCwwLDAtMSwxdjEuMkg1''@;'; put 'put ''LjhWMTJIN2ExLDEsMCwwLDAsMS0xVjdBMSwxLDAsMCwwLDcsNkgzQTEsMSwwLDAsMCwyLDd2NGExLDEsMCwwLDAsMSwxSDQuMlYyOS44SDExYS44LjgsMCwxLDAsMC0xLjZINS44VjE5LjhIMTBWMjFhMSwxLDAsMCwwLDEsMWg0YTEsMSwwLDAsMCwxLTFWMTdBMSwxLDAsMCwwLDE1LDE2WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOEgxMHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMywxOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMywyOEgxOHYySDMzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGUuQ2xyU2hhcGVDdXJzb3JIYW5kR3JhYj0oMCxhLmNsckljb25TVkcpKCc8''@;'; put 'put ''cGF0aCBkPSJNMjguMDksOS43NGE0LDQsMCwwLDAtMS4xNi4xOWMtLjE5LTEuMjQtMS41NS0yLjE4LTMuMjctMi4xOEE0LDQsMCwwLDAsMjIuMTMsOCwzLjM3LDMuMzcsMCwwLDAsMTksNi4zYTMuNDUsMy40NSwwLDAsMC0yLjg3LDEuMzIsMy42NSwzLjY1LDAsMCwwLTEuODktLjUxQTMuMDUs''@;'; put 'put ''My4wNSwwLDAsMCwxMSw5Ljg5di45MWMtMS4wNi40LTQuMTEsMS44LTQuOTEsNC44NHMuMzQsOCwyLjY5LDExLjc4YTI1LjIxLDI1LjIxLDAsMCwwLDUuOSw2LjQxLjkuOSwwLDAsMCwuNTMuMTdIMjUuNTVhLjkyLjkyLDAsMCwwLC41NS0uMTksMTMuMTMsMTMuMTMsMCwwLDAsMy43NS02LjEz''@;'; put 'put ''QTI1LjgsMjUuOCwwLDAsMCwzMS40MSwxOHYtNS41QTMuMDgsMy4wOCwwLDAsMCwyOC4wOSw5Ljc0Wk0yOS42MSwxOGEyNCwyNCwwLDAsMS0xLjQ3LDkuMTVBMTIuNDYsMTIuNDYsMCwwLDEsMjUuMiwzMi4ySDE1LjQ3YTIzLjc1LDIzLjc1LDAsMCwxLTUuMi01LjcyYy0yLjM3LTMuODYtMy04''@;'; put 'put ''LjIzLTIuNDgtMTAuMzlBNS43LDUuNywwLDAsMSwxMSwxMi43NnY3LjY1YS45LjksMCwwLDAsMS44LDBWOS44OWMwLS40Ny41OS0xLDEuNDYtMXMxLjQ5LjUyLDEuNDksMXY1LjcyaDEuOFY4LjgxYzAtLjI4LjU4LS43MSwxLjQ2LS43MXMxLjUzLjQ4LDEuNTMuNzV2Ni44OWgxLjhWMTBsLjE3''@;'; put 'put ''LS4xMmEyLjEsMi4xLDAsMCwxLDEuMTgtLjMyYy45MywwLDEuNS40NCwxLjUuNjhsMCw2LjVIMjdWMTEuODdhMS45MSwxLjkxLDAsMCwxLDEuMTItLjMzYy44NiwwLDEuNTIuNTEsMS41Mi45NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xy''@;'; put 'put ''U2hhcGVDdXJzb3JIYW5kT3Blbj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuNDYsOC41N0EzLjExLDMuMTEsMCwwLDAsMjcsNS43NWEzLjE5LDMuMTksMCwwLDAtNC42Ni0yLjY0LDMuMjksMy4yOSwwLDAsMC02LjQyLS43NiwzLjIzLDMuMjMsMCwwLDAtMS42Ni0uNDZBMy4yNywz''@;'; put 'put ''LjI3LDAsMCwwLDExLDUuMThWMTcuODRjLTEuMjgtMS42LTIuNTMtMy4xOC0yLjcyLTMuNDVBMy4xOSwzLjE5LDAsMCwwLDUuNTYsMTIuOWEzLjM3LDMuMzcsMCwwLDAtMy40NywzLjQ4QzIuMTgsMTguMTgsNS42NiwyNC41NCw4LDI4YzMuNTQsNS4yNCw2LjkyLDYsNy4wNyw2bC4xOCwwSDI1''@;'; put 'put ''LjU5YS45Mi45MiwwLDAsMCwuNTUtLjE5LDEzLjEzLDEzLjEzLDAsMCwwLDMuNzUtNi4xM2MxLTMuMDksMS41My03LjUzLDEuNTgtMTMuNTZaTTI4LjE4LDI3LjEyYTEyLjQ2LDEyLjQ2LDAsMCwxLTIuOTQsNS4wOEgxNS4zM2MtLjQ3LS4xNC0zLjA3LTEuMS01Ljg3LTUuMjVTMy45NCwxNy4y''@;'; put 'put ''NywzLjg5LDE2LjI5YTEuNSwxLjUsMCwwLDEsLjQ1LTEuMTMsMS41MiwxLjUyLDAsMCwxLDEuMTQtLjQ2LDEuNDMsMS40MywwLDAsMSwxLjMyLjcxYy4yOS40MywyLjM2LDMsMy41Nyw0LjUzTDEyLjgsMTguM1Y1LjE4YTEuNDgsMS40OCwwLDEsMSwyLjk1LDBWMTYuMzJoMS44di0xM2ExLjUx''@;'; put 'put ''LDEuNTEsMCwwLDEsMywwVjE2LjQ1aDEuOFY2YTEuNDMsMS40MywwLDEsMSwyLjg1LDBWMTcuNDRIMjdWOC41NGExLjMzLDEuMzMsMCwwLDEsMi42NSwwdjUuNTVDMjkuNjIsMjAsMjkuMTQsMjQuMjEsMjguMTgsMjcuMTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMSIgLz4nKSxlLkNsclNoYXBlRmlsZVppcD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsMzAuMlYxMmwtOC4xLTcuOUg3LjhDNi44LDQuMSw2LDQuOSw2LDZjMCwwLDAsMCwwLDB2MjQuMmMwLDEsMC43LDEuOCwxLjcsMS44YzAsMCwwLjEsMCwwLjEsMGgyMC4zXG5cdFx0YzEs''@;'; put 'put ''MCwxLjgtMC43LDEuOC0xLjdDMzAsMzAuMywzMCwzMC4yLDMwLDMwLjJ6IE0yMiw2LjZsNS42LDUuNEgyMlY2LjZ6IE0yOCwzMEg3LjlMOCw2aDEydjhoOFYzMHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xMiwyNGMwLDEuNywxLjMs''@;'; put 'put ''MywzLDNzMy0xLjMsMy0zdi00aC02VjI0eiBNMTMuNCwyNHYtMi42aDMuMlYyNGMwLjEsMC45LTAuNiwxLjctMS41LDEuN2MtMC45LDAuMS0xLjctMC42LTEuNy0xLjVcblx0XHRDMTMuNCwyNC4yLDEzLjQsMjQuMSwxMy40LDI0eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTE4LjIsOWMwLTAuNi0wLjQtMS0xLTFIMTV2MmgyLjJDMTcuOCwxMCwxOC4yLDkuNiwxOC4yLDl6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMTIuNywxMGMtMC42LDAtMSwwLjQtMSwxczAuNCwx''@;'; put 'put ''LDEsMUgxNXYtMkgxMi43eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTE3LjIsMTRjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFIMTV2MkgxNy4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+''@;'; put 'put ''PHBhdGggZD0iTTExLjcsMTVjMCwwLjYsMC40LDEsMSwxSDE1di0yaC0yLjNDMTIuMiwxNCwxMS43LDE0LjQsMTEuNywxNXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNy4yLDE4YzAuNiwwLDEtMC40LDEtMXMtMC40LTEtMS0xSDE1''@;'; put 'put ''djJIMTcuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9Ik0xNSwyNS42YzAuOSwwLDEuNi0wLjcsMS42LTEuNnYtMi42aC0zLjJWMjRDMTMuNCwyNC45LDE0LjEsMjUuNiwxNSwyNS42eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOSw0SDcuOEM2LjgsNCw2LDQuOSw2LDUuOXYyNC4yYzAsMSwwLjgsMS45LDEuOCwxLjloMjAuM2MxLDAsMS44LTAuOSwxLjgtMS45VjExLjlMMjEuOSw0eiBNMTgsMjRjMCwxLjctMS4zLDMtMywzXG5cdFx0cy0zLTEuMy0zLTN2LTRoNlYyNHog''@;'; put 'put ''TTE3LjIsMTJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2MmgyLjJjMC42LDAsMSwwLjQsMSwxcy0wLjQsMS0xLDFIMTV2LTJoLTIuMmMtMC42LDAtMS0wLjQtMS0xXG5cdFx0czAuNC0xLDEtMUgxNXYtMmgtMi4yYy0wLjYsMC0xLTAuNC0xLTFzMC40LTEsMS0xSDE1VjhoMi4yYzAu''@;'; put 'put ''NiwwLDEsMC40LDEsMXMtMC40LDEtMSwxSDE1djJIMTcuMnogTTIxLjksMTJWNi41bDUuNyw1LjVIMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUZpbHRlck9mZj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsNi40QzM0''@;'; put 'put ''LDUuNiwzMy4zLDUsMzIuNSw1SDEwLjNsMiwySDMydjAuNmwtOS42LDkuNmwxLjQsMS40TDMzLjQsOUMzMy44LDguNiwzNCw4LjEsMzQsNy42VjYuNUMzNCw2LjUsMzQsNi40LDM0LDYuNHoiXG5cdFx0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo''@;'; put 'put ''IGQ9Ik0yLjcsM2wyLDJoLTFDMi45LDQuOSwyLjEsNS41LDIsNi4zdjEuMWMwLDAuNSwwLjIsMSwwLjYsMS40TDE0LDIwLjJ2MTAuM2wxLjksMC44VjE5LjRMNCw3LjVWN2gyLjdMMjAsMjAuM3YxMi45bDIsMC44XG5cdFx0YzAsMCwwLDAsMC0wLjFWMjIuM2wxMC4xLDEwLjFsMS40LTEuNEw0''@;'; put 'put ''LjEsMS42TDIuNywzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIzLjksMTguNkwxMC4zLDUuMWgyMi4yQzMzLjMsNSwzNCw1LjYsMzQsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LTAuMiwxLTAuNiwxLjRMMjMuOSwxOC42eiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMuNSwzMUw0LjEsMS42TDIuNiwzbDIuMSwyLjFIMy41QzIuNyw1LDIsNS42LDIsNi40YzAsMCwwLDAsMCwwLjF2MS4xYzAsMC41LDAuMiwxLDAuNiwxLjRMMTQsMjAuNXYxMC4xbDgsMy40VjIyLjRc''@;'; put 'put ''blx0bDEwLjEsMTAuMUwzMy41LDMxeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlUmVjeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi40LDE3LjRjMC4yLDAuMSwwLjMsMC4xLDAuNSwwLjFjMC4yLDAsMC40LTAuMSwwLjUt''@;'; put 'put ''MC4xbDctNC4xYzAuMy0wLjIsMC41LTAuNSwwLjUtMC45YzAtMC40LTAuMi0wLjctMC41LTAuOUwxMS45LDEwXG5cdFx0TDE0LDYuMmMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC4zYzAsMCwwLDAsMC4xLDBjMC40LTAu''@;'; put 'put ''MywwLjUtMC45LDAuMy0xLjNcblx0XHRjLTAuNi0xLTEuNC0xLjktMi40LTIuNGMtMy0xLjYtNi43LTAuNi04LjMsMi40TDkuNiw5LjljLTAuMywwLjUtMC4xLDEuMSwwLjMsMS40bDIsMS4ybC00LDIuNFY4LjJjMC0wLjYtMC40LTEtMS0xXG5cdFx0QzYuNCw3LjMsNiw3LjcsNiw4LjN2OC4z''@;'; put 'put ''QzYsMTYuOSw2LjIsMTcuMiw2LjQsMTcuNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMi4xLDIxbC0zLjUtNi4yYy0wLjEtMC4yLTAuNC0wLjQtMC42LTAuNWMtMC4zLTAuMS0wLjUsMC0wLjgsMC4xbC0yLjIsMS4zVjExbDUuNSwz''@;'; put 'put ''LjNjMC4xLDAsMC4xLDAuMSwwLjIsMC4xXG5cdFx0YzAuNSwwLjIsMS4xLDAsMS4zLTAuNWMwLjItMC41LDAtMS4xLTAuNS0xLjNsLTctNC4yYy0wLjMtMC4yLTAuNy0wLjItMSwwQzIzLjEsOC41LDIzLDguOCwyMyw5LjJ2OC4zYzAsMC40LDAuMSwwLjgsMC40LDFcblx0XHRjMC4zLDAuMiww''@;'; put 'put ''LjcsMC4yLDEsMGwyLjktMS43bDMsNS4zYzAuNywxLjMsMC43LDIuOCwwLDQuMWMtMC42LDEuMi0xLjksMS45LTMuMiwxLjloLTAuOWMtMC41LDAtMS4yLDAuNC0xLjIsMVxuXHRcdGMwLjEsMC42LDAuNiwxLDEuMiwxaDAuOWMyLjEsMCw0LTEuMSw1LTIuOUMzMy4yLDI1LjIsMzMuMiwyMi45''@;'; put 'put ''LDMyLjEsMjF6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNCwyOC4ybC03LTQuMmMtMC4zLTAuMi0wLjctMC4yLTEsMGMtMC4zLDAuMi0wLjQsMC41LTAuNCwwLjl2My4zSDkuMWMtMS41LTAuMS0yLjktMC45LTMuNi0yLjNcblx0''@;'; put 'put ''XHRjLTAuOC0xLjQtMC44LTMuMiwwLTQuNmMwLjMtMC41LDAuMS0xLjEtMC40LTEuNGMtMC41LTAuMy0xLjEtMC4xLTEuNCwwLjRjLTEuMiwyLjEtMS4xLDQuNiwwLjEsNi42QzQuOSwyOC44LDcsMzAsOS4yLDMwSDE1XG5cdFx0YzAuNiwwLDEtMC40LDEtMXYtMi40bDQsMi40bC01LjYsMy4z''@;'; put 'put ''Yy0wLjMsMC4yLTAuNSwwLjUtMC41LDAuOWMwLDAuNiwwLjUsMSwxLDFjMC4yLDAsMC4zLTAuMSwwLjUtMC4ybDctNC4yXG5cdFx0YzAuMi0wLjEsMC4zLTAuMiwwLjQtMC40QzIzLjEsMjksMjIuOSwyOC40LDIyLjQsMjguMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMC44LDMuMWMtMy0xLjYtNi43LTAuNi04LjQsMi40bC0yLjIsMy44bC0yLTEuMUM4LjIsOCw4LDgsNy45LDhDNy40LDgsNyw4LjQsNyw4Ljl2Ny4yYzAsMC4zLDAuMSwwLjYsMC40LDAuOFxuXHRcdGMwLjEsMC4xLDAuMywwLjEsMC40LDAuMWMwLjIsMCww''@;'; put 'put ''LjMsMCwwLjQtMC4xbDYuMy0zLjZjMC4zLTAuMiwwLjQtMC40LDAuNC0wLjhjMC0wLjMtMC4yLTAuNi0wLjQtMC44TDEyLDEwLjNsMi4yLTMuOFxuXHRcdGMwLjQtMC43LDEtMS4zLDEuNy0xLjdjMi0xLjEsNC41LTAuMyw1LjYsMS43YzAuMywwLjUsMC45LDAuNiwxLjQsMC40YzAuNS0wLjMs''@;'; put 'put ''MC42LTAuOSwwLjQtMS40QzIyLjYsNC41LDIxLjgsMy42LDIwLjgsMy4xeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMiwyMS4xbC0zLTUuM2wyLjMtMS4zYzAuMy0wLjIsMC40LTAuNCwwLjQtMC44YzAtMC4zLTAuMi0wLjYtMC40LTAu''@;'; put 'put ''OGwtNi4yLTMuNmMtMC4xLTAuMS0wLjMtMC4xLTAuNC0wLjFcblx0XHRjLTAuNSwwLTAuOSwwLjQtMC45LDAuOXY3LjJjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMiwwLDAuMy0wLjEsMC40LTAuMWwyLjItMS4zbDMsNS4zXG5cdFx0YzAuNywxLjIs''@;'; put 'put ''MC43LDIuOCwwLDRjLTAuNywxLjItMS45LDEuOS0zLjIsMS45aC0wLjljLTAuNiwwLTEsMC40LTEsMWMwLDAuNiwwLjQsMSwxLDFoMC45YzIuMSwwLDQtMS4xLDUtM1xuXHRcdEMzMy4yLDI1LjMsMzMuMiwyMywzMi4yLDIxLjF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0yIiAvPjxwYXRoIGQ9Ik0yMS43LDI4LjRsLTYuMi0zLjZjLTAuMS0wLjEtMC4zLTAuMS0wLjQtMC4xYy0wLjUsMC0wLjksMC40LTAuOSwwLjl2Mi42SDkuM2MtMS41LDAtMi45LTAuOC0zLjYtMi4xXG5cdFx0Yy0wLjgtMS40LTAuOC0zLjEsMC00LjVjMC4zLTAuNSwwLjEtMS4xLTAuNC0x''@;'; put 'put ''LjRjLTAuNS0wLjMtMS4xLTAuMS0xLjQsMC40Yy0xLjIsMi0xLjIsNC41LDAsNi41YzEuMSwxLjksMy4xLDMuMSw1LjQsMy4xaDQuOHYyLjZcblx0XHRjMCwwLjMsMC4yLDAuNiwwLjQsMC44YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuMSwwLDAuMywwLDAuNC0wLjFsNi4zLTMuNmMwLjMt''@;'; put 'put ''MC4yLDAuNC0wLjQsMC40LTAuOFxuXHRcdEMyMi4xLDI4LjgsMjEuOSwyOC41LDIxLjcsMjguNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVRyZWU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjYsMTEuN0MyOS4yLDUuOCwy''@;'; put 'put ''NCwxLjcsMTgsMS43Yy03LjIsMC0xMyw1LjgtMTMsMTNjMCw2LjgsNS4zLDEyLjQsMTIsMTIuOXY1YzAsMC42LDAuNCwxLDEsMXMxLTAuNCwxLTF2LTV2LTJWMjJcblx0YzAsMCwwLDAsMC0wLjF2LTMuNmw0LjctNC43YzAuNC0wLjQsMC40LTEsMC0xLjRjLTAuNC0wLjQtMS0wLjQtMS40LDBM''@;'; put 'put ''MTksMTUuNnYtM2wtMy4zLTMuM2MtMC40LTAuNC0xLTAuNC0xLjQsMFxuXHRjLTAuNCwwLjQtMC40LDEsMCwxLjRsMi43LDIuN3Y2LjJsLTMuOC0zLjhjLTAuNC0wLjQtMS0wLjQtMS40LDBjLTAuNCwwLjQtMC40LDEsMCwxLjRsNS4yLDUuMnYzLjJjLTUuNi0wLjUtMTAtNS4yLTEwLTEwLjlc''@;'; put 'put ''blx0YzAtNi4xLDQuOS0xMSwxMS0xMXMxMSw0LjksMTEsMTFjMCw0LjktMy4zLDkuMi04LDEwLjZ2Mi4xQzI4LDI1LjcsMzIuMywxOC43LDMwLjYsMTEuN3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0xOCwyQzEwLjgsMS43LDQuOCw3''@;'; put 'put ''LjMsNC41LDE0LjVDNC4yLDIxLjcsOS44LDI3LjcsMTcsMjh2LTUuMmwtNS4yLTUuMmMtMC40LTAuNC0wLjQtMSwwLTEuNGMwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGwzLjgsMy44di02LjJsLTIuNy0yLjdjLTAuNC0wLjQtMC40LTEsMC0xLjRjMC40LTAuNCwxLTAuNCwx''@;'; put 'put ''LjQsMGMwLDAsMCwwLDAsMGwzLjMsMy4zdjNsMy4zLTMuM2MwLjQtMC40LDEtMC40LDEuNCwwXG5cdGMwLDAsMCwwLDAsMGMwLjQsMC40LDAuNCwxLDAsMS40TDE5LDE4LjhWMjhjNy4yLTAuMywxMi44LTYuMywxMi41LTEzLjVTMjUuMiwxLjcsMTgsMnoiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDI4Yy0wLjMsMC0wLjYsMC0xLDB2NWMwLDAuNiwwLjQsMSwxLDFzMS0wLjQsMS0xdi01QzE4LjcsMjgsMTguMywyOCwxOCwyOHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUZp''@;'; put 'put ''c2g9KDAsYS5jbHJJY29uU1ZHKSgnPGNpcmNsZSBjeD0iMTEuNDkiIGN5PSIxNy41IiByPSIxLjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMy40OCw5LjI5YTEsMSwwLDAsMC0xLDBjLTMuMzcsMi01LjkxLDUuODEtNi45LDcuNDVM''@;'; put 'put ''MjQuODUsMThzLTEsMS42Mi0xLDEuNjJjLTEuNzYsMi40OS01LjEsNi4zNi04Ljc5LDYuMzYtNC42NSwwLTguNzUtNi4xNS05Ljg0LTcuOTQsMS4wOS0xLjc5LDUuMTgtNy45NCw5Ljg0LTcuOTQsMy41NCwwLDYuNzcsMy41OCw4LjU4LDYuMDdsLjI4LS40OHMuMzYtLjUxLjkzLTEuMjVDMjIu''@;'; put 'put ''NzIsMTEuNjQsMTkuMTgsOC4wNiwxNSw4LjA2Yy02LjU5LDAtMTEuNjcsOS4wNy0xMS44OCw5LjQ2TDIuODksMThsLjI3LjQ4Yy4yMS4zOSw1LjI5LDkuNDYsMTEuODgsOS40Niw1LjA2LDAsOS4yMi01LjM0LDExLThDMjYsMjAsMjcuMTgsMTgsMjcuMTgsMThoMGwuMDctLjExYTE4LjA2LDE4''@;'; put 'put ''LjA2LDAsMCwxLDEuODgtMi43NXMwLDAsMCwwYTIwLjMxLDIwLjMxLDAsMCwxLDIuODYtM1YyMy44OGEyMC45MywyMC45MywwLDAsMS0zLjYxLTRsLS4xNi4yNmgwbC0xLDEuNTlhMTguNzQsMTguNzQsMCwwLDAsNS4yMSw0Ljk1LDEsMSwwLDAsMCwuNS4xNCwxLjEzLDEuMTMsMCwwLDAsLjUt''@;'; put 'put ''LjEzLDEsMSwwLDAsMCwuNS0uODdWMTAuMTZBMSwxLDAsMCwwLDMzLjQ4LDkuMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlRm9ybT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEsMTJIN2ExLDEsMCwwLDEtMS0xVjdB''@;'; put 'put ''MSwxLDAsMCwxLDcsNkgyMWExLDEsMCwwLDEsMSwxdjRBMSwxLDAsMCwxLDIxLDEyWk04LDEwSDIwVjcuOTRIOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwxNC4wOEg3YTEsMSwwLDAsMC0xLDFWMTlhMSwxLDAsMCwwLDEsMUgx''@;'; put 'put ''OC4zNkwyMiwxNi4zVjE1LjA4QTEsMSwwLDAsMCwyMSwxNC4wOFpNMjAsMThIOFYxNkgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xMS4wNiwzMS41MXYtLjA2bC4zMi0xLjM5SDRWNGgyMFYxNC4yNUwyNiwxMi4zNlYzYTEsMSww''@;'; put 'put ''LDAsMC0xLTFIM0ExLDEsMCwwLDAsMiwzVjMxYTEsMSwwLDAsMCwxLDFoOEEzLjQ0LDMuNDQsMCwwLDEsMTEuMDYsMzEuNTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMjIsMTkuMTdsLS43OC43OUExLDEsMCwwLDAsMjIsMTkuMTda''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNNiwyNi45NGExLDEsMCwwLDAsMSwxaDQuODRsLjMtMS4zLjEzLS41NSwwLS4wNUg4VjI0aDYuMzRsMi0ySDdhMSwxLDAsMCwwLTEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMy40OSwxNi42NywzMC4xMiwxMy4zYTEuNjEsMS42MSwwLDAsMC0yLjI4LDBoMEwxNC4xMywyNy4wOSwxMywzMS45YTEuNjEsMS42MSwwLDAsMCwxLjI2LDEuOSwxLjU1LDEuNTUsMCwwLDAsLjMxLDAsMS4xNSwxLjE1LDAsMCwwLC4zNywwbDQu''@;'; put 'put ''ODUtMS4wN0wzMy40OSwxOWExLjYsMS42LDAsMCwwLDAtMi4yN1pNMTguNzcsMzAuOTFsLTMuNjYuODFMMTYsMjguMDksMjYuMjgsMTcuN2wyLjgyLDIuODJaTTMwLjIzLDE5LjM5bC0yLjgyLTIuODJMMjksMTVsMi44NCwyLjg0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUZ1ZWw9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIwLjEyLDM0SDUuOUEyLjgxLDIuODEsMCwwLDEsMywzMS4xOVY0Ljg2QTIuOSwyLjksMCwwLDEsNiwyLjA3SDIwLjIyQTIuNzIsMi43MiwwLDAsMSwyMyw0Ljg2VjMxLjE5QTIuODIsMi44''@;'; put 'put ''MiwwLDAsMSwyMC4xMiwzNFpNNS45LDRBLjg3Ljg3LDAsMCwwLDUsNC44NlYzMS4xOWEuODcuODcsMCwwLDAsLjg3Ljg3SDIwLjEyYS45NC45NCwwLDAsMCwuOTUtLjg3VjQuODZBLjk0Ljk0LDAsMCwwLDIwLjEyLDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgLz48cGF0aCBkPSJNMjkuNTMsMzRBMy41LDMuNSwwLDAsMSwyNiwzMC41VjIzYTIsMiwwLDAsMC0yLTJIMjIuNTdhMSwxLDAsMCwxLDAtMkgyNGE0LDQsMCwwLDEsNCw0VjMwLjVhMS41LDEuNSwwLDAsMCwzLDBWMTcuM2wtMy4xMy03QTIuMjksMi4yOSwwLDAsMCwyNS44LDloLS43M2Ex''@;'; put 'put ''LDEsMCwxLDEsMC0yaC43M2E0LjMsNC4zLDAsMCwxLDMuOTMsMi41NWwzLjIxLDcuMTZhMSwxLDAsMCwxLC4wOS40MVYzMC41QTMuNSwzLjUsMCwwLDEsMjkuNTMsMzRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTgsOUg4QTEsMSww''@;'; put 'put ''LDEsMSw4LDdIMThhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwxM0g4QTEsMSwwLDEsMSw4LDExSDE4QTEsMSwwLDEsMSwxOCwxM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC00IiAvPjxwYXRoIGQ9Ik0yNSwxMi4wOGExLDEsMCwwLDEtMS0xdi02YTEsMSwwLDAsMSwyLDB2NkExLDEsMCwwLDEsMjUsMTIuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz4nKSxlLkNsclNoYXBlU25vd2ZsYWtlPSgwLGEuY2xySWNvblNWRyko''@;'; put 'put ''JzxwYXRoIGQ9Ik0xOC4wNSwzMy42MWExLDEsMCwwLDEtMS0xVjMuMzdhMSwxLDAsMSwxLDEuOTUsMFYzMi42M0ExLDEsMCwwLDEsMTguMDUsMzMuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsMTAuMDcsMTQuNTIsNi41''@;'; put 'put ''NGExLDEsMCwwLDEsMC0xLjQxLDEsMSwwLDAsMSwxLjQxLDBsMi4xMywyLjEyLDIuMTItMi4xMmExLDEsMCwwLDEsMS40MSwwLDEsMSwwLDAsMSwwLDEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAuODUsMzEuMTdhMSwxLDAs''@;'; put 'put ''MCwxLS43LS4yOUwxOCwyOC43NiwxNS45LDMwLjg4YTEsMSwwLDAsMS0xLjQxLDAsMSwxLDAsMCwxLDAtMS40MkwxOCwyNS45M2wzLjU0LDMuNTNhMSwxLDAsMCwxLDAsMS40MkExLDEsMCwwLDEsMjAuODUsMzEuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MyIgLz48cGF0aCBkPSJNMzAuOTIsMjYuNWExLDEsMCwwLDEtLjUtLjEzbC0yNi0xNUExLDEsMCwwLDEsNC4wNywxMGExLDEsMCwwLDEsMS4zNy0uMzZsMjYsMTVhMSwxLDAsMCwxLS41LDEuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBk''@;'; put 'put ''PSJNNiwxNS4zN2ExLDEsMCwwLDEtLjI2LTJsMi45LS43OEw3Ljg0LDkuNzNhMSwxLDAsMSwxLDEuOTMtLjUyTDExLjA3LDE0LDYuMjQsMTUuMzNBLjgyLjgyLDAsMCwxLDYsMTUuMzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjcu''@;'; put 'put ''MDUsMjcuNTRhMSwxLDAsMCwxLTEtLjc1TDI0LjgsMjJsNC44Mi0xLjNhMSwxLDAsMSwxLC41MiwxLjkzbC0yLjkuNzguNzgsMi45YTEsMSwwLDAsMS0uNzEsMS4yMkEuNzUuNzUsMCwwLDEsMjcuMDUsMjcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIg''@;'; put 'put ''Lz48cGF0aCBkPSJNNC45NCwyNi41YTEsMSwwLDAsMS0uNS0xLjg3bDI2LTE1YTEsMSwwLDAsMSwxLjM2LjM2LDEsMSwwLDAsMS0uMzYsMS4zN2wtMjYsMTVBMSwxLDAsMCwxLDQuOTQsMjYuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwYXRoIGQ9''@;'; put 'put ''Ik04LjgxLDI3LjU0YS43NS43NSwwLDAsMS0uMjYsMCwxLDEsMCwwLDEtLjcxLTEuMjJsLjc4LTIuOS0yLjktLjc4QTEsMSwwLDAsMSw1LDIxLjM4YTEsMSwwLDAsMSwxLjIzLS43MUwxMS4wNywyMmwtMS4zLDQuODJBMSwxLDAsMCwxLDguODEsMjcuNTRaIiBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz48cGF0aCBkPSJNMjkuODgsMTUuMzdhLjgyLjgyLDAsMCwxLS4yNiwwTDI0LjgsMTRsMS4yOS00LjgzQTEsMSwwLDEsMSwyOCw5LjczbC0uNzgsMi44OSwyLjkuNzhhMSwxLDAsMCwxLS4yNiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTkiIC8+JyksZS5DbHJTaGFwZVRhYmxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDM0YTEsMSwwLDAsMS0xLTFWMi45MmExLDEsMCwwLDEsMiwwVjMzQTEsMSwwLDAsMSw4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; put 'put ''IC8+PHBhdGggZD0iTTE3LDMzLjkyYTEsMSwwLDAsMS0xLTFWOS4xYTEsMSwwLDEsMSwyLDBWMzIuOTJBMSwxLDAsMCwxLDE3LDMzLjkyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI2LDM0YTEsMSwwLDAsMS0xLTFWOWExLDEsMCww''@;'; put 'put ''LDEsMiwwVjMzQTEsMSwwLDAsMSwyNiwzNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy4xMSwxOGgtMjVhMSwxLDAsMSwxLDAtMmgyNWExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTQiIC8+PHBhdGggZD0iTTMzLjEsMjYuOTRIOC4xQTEsMSwwLDEsMSw4LjEsMjVoMjVhMSwxLDAsMSwxLDAsMS45MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMyw4LjkySDNBMSwxLDAsMSwxLDMsN0gzM2ExLDEsMCwxLDEs''@;'; put 'put ''MCwxLjk0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZVZvbHVtZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUuODgsMzJIMTJhNCw0LDAsMCwxLTQtNFYxMS40NkwyLjMxLDUuNzdhMSwxLDAsMCwxLS4yMi0xLjA5QTEs''@;'; put 'put ''MSwwLDAsMSwzLDQuMDZIMjguODZhMSwxLDAsMCwxLDEsMVYyOEE0LDQsMCwwLDEsMjUuODgsMzJaTTUuNDMsNmw0LjI4LDQuMzRhLjc1Ljc1LDAsMCwxLC4yMS42M3YxN0EyLjEzLDIuMTMsMCwwLDAsMTIsMzBIMjUuODhBMi4xLDIuMSwwLDAsMCwyOCwyOFY2WiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMzLDE2YTEsMSwwLDAsMS0xLTFWNkgyOC44NmEuOTIuOTIsMCwwLDEtMS0uOSwxLDEsMCwwLDEsMS0xSDMzYTEsMSwwLDAsMSwxLDFWMTVBMSwxLDAsMCwxLDMzLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LDExSDE4YTEsMSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNCwxNUgyMWExLDEsMCwxLDEsMC0ySDI0YTEsMSwwLDEsMSwwLDJa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNMjQsMTlIMThhMSwxLDAsMSwxLDAtMkgyNGExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTI0LDI3SDE4YTEs''@;'; put 'put ''MSwwLDEsMSwwLTJIMjRhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yNCwyM0gyMUExLDEsMCwxLDEsMjEsMjFIMjRBMSwxLDAsMSwxLDI0LDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTciIC8+JyksZS5DbHJTaGFwZUNyb3NzaGFpcnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI5QTExLDExLDAsMSwxLDI5LDE4LDExLDExLDAsMCwxLDE4LDI5Wk0xOCw5YTksOSwwLDEsMCw5LDlBOSw5LDAsMCwwLDE4LDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMjNhNSw1LDAsMSwxLDUtNUE1LDUsMCwwLDEsMTgsMjNabTAtOGEzLDMsMCwxLDAsMywzQTMsMywwLDAsMCwxOCwxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOCw5''@;'; put 'put ''YTEsMSwwLDAsMS0xLTFWMi44YTEsMSwwLDAsMSwyLDBWOEExLDEsMCwwLDEsMTgsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xOCwzNGExLDEsMCwwLDEtMS0xVjI4YTEsMSwwLDAsMSwyLDB2NUExLDEsMCwwLDEsMTgsMzRaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cGF0aCBkPSJNOCwxOUgzLjE3YTEsMSwwLDAsMSwwLTJIOGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMzLjEsMTlIMjhhMSwx''@;'; put 'put ''LDAsMCwxLDAtMmg1LjFhMSwxLDAsMCwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPicpLGUuQ2xyU2hhcGVDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDM0QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0''@;'; put 'put ''Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRBMTYsMTYsMCwxLDEsMzQsMTgsMTYsMTYsMCwwLDEsMTgsMzRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVEb3RDaXJjbGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDExYTcsNywwLDEsMS03LDcsNyw3LDAsMCwxLDctNyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDM0''@;'; put 'put ''QTE2LDE2LDAsMSwxLDM0LDE4LDE2LDE2LDAsMCwxLDE4LDM0Wk0xOCw0QTE0LDE0LDAsMSwwLDMyLDE4LDE0LDE0LDAsMCwwLDE4LDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmV0YT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; put 'put ''aCBkPSJNNy4yMSwxNC4wN2gzYTEuNjEsMS42MSwwLDAsMSwxLjgxLDEuNSwxLjQ0LDEuNDQsMCwwLDEtLjg0LDEuMzQsMS42NywxLjY3LDAsMCwxLDEuMSwxLjUzLDEuNzUsMS43NSwwLDAsMS0yLDEuNjNINy4yMVptMi43MSwyLjQyYy40OCwwLC44Mi0uMjguODItLjY3cy0uMzQtLjY1LS44''@;'; put 'put ''Mi0uNjVIOC40OXYxLjMyWm0uMiwyLjQ4YS43NS43NSwwLDEsMCwwLTEuNDdIOC40OVYxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNC41NSwxNS4yM3YxLjJoM3YxLjE2aC0zdjEuMzJoMy4zM3YxLjE2SDEzLjI2di02aDQu''@;'; put 'put ''NjJ2MS4xNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0yMC40MSwxNS4yM0gxOC41NFYxNC4wN2g1djEuMTZIMjEuN3Y0Ljg0SDIwLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAg''@;'; put 'put ''PHBhdGggZD0iTTI4LDE5LjEySDI1LjMybC0uMzguOTVIMjMuNWwyLjQ0LTZoMS40NGwyLjQ1LDZIMjguMzhaTTI3LjU1LDE4bC0uODktMi4xOUwyNS43NywxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik04LjA2LDMwYS44NC44''@;'; put 'put ''NCwwLDAsMS0uMzgtLjA4QTEsMSwwLDAsMSw3LjA2LDI5VjI1aC00YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDEtMWgzMGExLDEsMCwwLDEsMSwxVjI0YTEsMSwwLDAsMS0xLDFIMTMuNDhMOC43NywyOS43MUExLDEsMCwwLDEsOC4wNiwzMFptLTQtN2g0YTEsMSwwLDAsMSwxLDF2Mi41''@;'; put 'put ''OWwzLjMtMy4zYTEsMSwwLDAsMSwuNy0uMjloMTlWMTFoLTI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cblxuICA8cG9seWdvbiBwb2ludHM9IjI1LjgsMTggMjcuNSwxOCAyNi43LDE1LjgiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTEiLz5cblx0PHBhdGggZD0iTTEwLjQsMTcuNWMtMC4xLDAtMC4yLDAtMC4zLDBIOC41VjE5bDEuNiwwYzAuNCwwLjEsMC44LTAuMiwwLjktMC42QzExLjEsMTgsMTAuOCwxNy42LDEwLjQsMTcuNXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cblx0PHBh''@;'; put 'put ''dGggZD0iTTEwLjcsMTUuOGMwLTAuNC0wLjMtMC43LTAuOC0wLjdIOC41djEuM2gxLjRDMTAuNCwxNi41LDEwLjcsMTYuMiwxMC43LDE1Ljh6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG5cdDxwYXRoIGQ9Ik0zMy4xLDloLTMwYy0wLjYsMC0xLDAuNC0xLDF2''@;'; put 'put ''MTRjMCwwLjYsMC40LDEsMSwxaDR2NGMwLDAuNCwwLjIsMC44LDAuNiwwLjlDNy44LDMwLDcuOSwzMCw4LjEsMzBjMC4zLDAsMC41LTAuMSwwLjctMC4zXG5cdFx0bDQuNy00LjdoMTkuNmMwLjYsMCwxLTAuNCwxLTFWMTBDMzQuMSw5LjQsMzMuNiw5LDMzLjEsOXogTTEwLjQsMjAuMWMtMC4x''@;'; put 'put ''LDAtMC4xLDAtMC4yLDBINy4ydi02aDNjMC45LTAuMSwxLjcsMC41LDEuOCwxLjRcblx0XHRjMCwwLDAsMC4xLDAsMC4xYzAsMC42LTAuMywxLjEtMC44LDEuM2MwLjYsMC4yLDEuMSwwLjgsMS4xLDEuNUMxMi4yLDE5LjQsMTEuNCwyMC4xLDEwLjQsMjAuMXogTTE3LjksMTUuMmgtMy4zdjEu''@;'; put 'put ''MmgzdjEuMmgtM3YxLjNcblx0XHRoMy4zdjEuMmgtNC42di02aDQuNlYxNS4yeiBNMjEuNywyMC4xaC0xLjN2LTQuOGgtMS45di0xLjJoNXYxLjJoLTEuOFYyMC4xeiBNMjguNCwyMC4xbC0wLjQtMWgtMi43bC0wLjQsMWgtMS40bDIuNC02aDEuNGwyLjUsNlxuXHRcdEgyOC40eiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIvPlxuJyksZS5DbHJTaGFwZUZpcnN0QWlkPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsNkgyMy45MVY0LjVBMi41LDIuNSwwLDAsMCwyMS40MSwyaC03YTIuNSwyLjUsMCwwLDAtMi41LDIuNVY2SDRBMiwyLDAsMCww''@;'; put 'put ''LDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNMTMuOTEsNC41YS41LjUsMCwwLDEsLjUtLjVoN2EuNS41LDAsMCwxLC41LjVWNmgtOFpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; put 'put ''Lz5cbiAgPHBhdGggZD0iTTIwLjE1LDI1LjJIMTYuNzRhMS4zLDEuMywwLDAsMS0xLjMtMS4zVjIxLjJoLTIuN2ExLjMsMS4zLDAsMCwxLTEuMy0xLjNWMTYuNWExLjMsMS4zLDAsMCwxLDEuMy0xLjNoMi43VjEyLjVhMS4zLDEuMywwLDAsMSwxLjMtMS4zaDMuNDFhMS4zLDEuMywwLDAsMSwx''@;'; put 'put ''LjI5LDEuM3YyLjdoMi43MWExLjMsMS4zLDAsMCwxLDEuMjksMS4zdjMuNGExLjMsMS4zLDAsMCwxLTEuMjksMS4zSDIxLjQ0djIuN0ExLjMsMS4zLDAsMCwxLDIwLjE1LDI1LjJaTTE3LDIzLjZoMi44MXYtNGg0VjE2LjhoLTR2LTRIMTd2NEgxM3YyLjhoNFptNy4xMS02LjhaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0zMiw2SDIzLjkxVjQuNUEyLjUsMi41LDAsMCwwLDIxLjQxLDJoLTdhMi41LDIuNSwwLDAsMC0yLjUsMi41VjZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; put 'put ''MlY4QTIsMiwwLDAsMCwzMiw2Wk0xMy45MSw0LjVhLjUuNSwwLDAsMSwuNS0uNWg3YS41LjUsMCwwLDEsLjUuNVY2aC04Wk0yNC42NCwxOS45YS41LjUsMCwwLDEtLjUuNWgtMy41djMuNWEuNS41LDAsMCwxLS41LjVoLTMuNGEuNS41LDAsMCwxLS41LS41VjIwLjRoLTMuNWEuNS41LDAsMCwx''@;'; put 'put ''LS41LS41VjE2LjVhLjUuNSwwLDAsMSwuNS0uNWgzLjVWMTIuNWEuNS41LDAsMCwxLC41LS41aDMuNGEuNS41LDAsMCwxLC41LjVWMTZoMy41YS41LjUsMCwwLDEsLjUuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksZS5DbHJTaGFwZUNvbG9yUGFs''@;'; put 'put ''ZXR0ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuNTQsMjMuMDVhMy4yMiwzLjIyLDAsMCwxLTMtMS43N0EzLjA1LDMuMDUsMCwwLDEsMTguNSwxOWEzLjc0LDMuNzQsMCwwLDEsMS45NS0yLjA2QTMuNCwzLjQsMCwwLDEsMjUsMTguM2EzLDMsMCwwLDEsLjA4LDIuMzIsMy42OSwz''@;'; put 'put ''LjY5LDAsMCwxLTIsMi4wN0EzLjg1LDMuODUsMCwwLDEsMjEuNTQsMjMuMDVabS41NC00LjkxYTIuNDEsMi40MSwwLDAsMC0xLC4yMWgwQTIuMTMsMi4xMywwLDAsMCwyMCwxOS41MWExLjM3LDEuMzcsMCwwLDAsMCwxLjA5LDEuODEsMS44MSwwLDAsMCwyLjQ1LjYzLDIuMSwyLjEsMCwwLDAs''@;'; put 'put ''MS4xMi0xLjE1LDEuNCwxLjQsMCwwLDAsMC0xLjFBMS41OSwxLjU5LDAsMCwwLDIyLjA4LDE4LjE0Wm0tMS4yOS0uNTJoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xNi4xOSwzMy44N0ExMy43MiwxMy43MiwwLDAsMSw2LjQs''@;'; put 'put ''MzAsMTMuODYsMTMuODYsMCwwLDEsMiwyMGMwLTQuNCwyLTguODQsNS42OC0xMi41YTE4LjIsMTguMiwwLDAsMSwxMy4xLTUuMzdoLjEyYzMuMzMsMCw2Ljg1LDEuNDksNy4yNCw0LjczLjIxLDEuNzctLjU5LDMuNDctMS4yOSw1LS41NSwxLjE3LTEuMTEsMi4zOS0uNzIsMi44MXMxLC4xMiwy''@;'; put 'put ''LjA5LS4yYTYuMjcsNi4yNywwLDAsMSwzLjM4LS4zNiwzLDMsMCwwLDEsMS44NywxLjU2Yy45NCwxLjgzLjQ3LDQuNjctLjIzLDYuNTRoMEExNy4zOCwxNy4zOCwwLDAsMSwyOSwyOC43NCwxOS40MywxOS40MywwLDAsMSwxNi4xOSwzMy44N1pNMjAuNzgsNC4xNkExNi4yMiwxNi4yMiwwLDAs''@;'; put 'put ''MCw5LjA5LDlDNS43OSwxMi4yMyw0LDE2LjE2LDQsMjBBMTEuOTIsMTEuOTIsMCwwLDAsNy44LDI4LjZjNS4zOCw1LjI1LDE0LjYyLDMuNTUsMTkuODctMS4zM2ExNS41MiwxNS41MiwwLDAsMCwzLjctNS43NWgwYy43LTEuOS44NC0zLjkyLjMyLTQuOTJhMSwxLDAsMCwwLS42MS0uNTUsNC44''@;'; put 'put ''Niw0Ljg2LDAsMCwwLTIuMjkuMzVjLTEuMzEuMzktMywuODktNC4xMi0uMzUtMS4zMi0xLjQtLjQ2LTMuMjUuMzctNWE3LjkzLDcuOTMsMCwwLDAsMS4xMS0zLjljLS4yNC0yLTIuODEtMi45NS01LjI2LTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxu''@;'; put 'put ''ICA8cGF0aCBkPSJNMjMuODcsMjYuNjVBMi41OSwyLjU5LDAsMCwwLDIyLjM1LDI1TDIyLDI0LjlsLS40NiwxLjUzLjE2LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDctMS44OC0uNjZsLTEuNTQuNDNoMGEyLjgzLDIuODMsMCwwLDAsMi44NCwx''@;'; put 'put ''LjkxLDQsNCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMjMuODcsMjYuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cGF0aCBkPSJNMTUuMDcsMjUuNTloMGEyLjczLDIuNzMsMCwwLDAtMi4yNC0xLjg0bC0uMjcsMS41OGExLjEyLDEuMTIsMCww''@;'; put 'put ''LDEsMSwuN2MuMTcuNTktLjQxLDEuMy0xLjI2LDEuNTRBMS45MiwxLjkyLDAsMCwxLDExLDI3LjUyYTEsMSwwLDAsMS0uNi0uNjFzMC0uMDksMC0uMTNsLTEuNTguMTZhMiwyLDAsMCwwLC4wNi40MUEyLjU5LDIuNTksMCwwLDAsMTAuMzcsMjlhMy4zNiwzLjM2LDAsMCwwLDEuMzEuMjUsMy43''@;'; put 'put ''LDMuNywwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTUuMDcsMjUuNTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTAuNzgsMTkuMTdhMi41OSwyLjU5LDAsMCwwLTEuNTItMS42NSwyLjkxLDIuOTEsMCwwLDAtLjUtLjE2bC0uMzcs''@;'; put 'put ''MS41NmExLjIxLDEuMjEsMCwwLDEsLjI1LjA4LDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NXMtMS43MS0uMDYtMS44OC0uNjZhLjg2Ljg2LDAsMCwxLDAtLjM5bC0xLjU2LS4zNGEyLjQsMi40LDAsMCwwLDAsMS4xNkEyLjgzLDIuODMsMCwwLDAsNy40LDIyLjgzYTQs''@;'; put 'put ''NCwwLDAsMCwxLS4xNEEzLDMsMCwwLDAsMTAuNzgsMTkuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNMTMuNDUsMTEuNGEyLjU5LDIuNTksMCwwLDAtMS41Mi0xLjY1LDEuMTcsMS4xNywwLDAsMC0uMi0uMDZsLS41MiwxLjUx''@;'; put 'put ''YS4zOC4zOCwwLDAsMSwuMSwwLDEsMSwwLDAsMSwuNi42Yy4xNy42LS40MSwxLjMxLTEuMjYsMS41NWEyLjA2LDIuMDYsMCwwLDEtMS4yOC0uMDUsMSwxLDAsMCwxLS42LS42MS44NS44NSwwLDAsMSwwLS4zMmwtMS41OC0uMTlhMi4zLDIuMywwLDAsMCwuMDYuOTRBMi41NiwyLjU2LDAsMCww''@;'; put 'put ''LDguNzUsMTQuOGEzLjM3LDMuMzcsMCwwLDAsMS4zMS4yNiw0LDQsMCwwLDAsMS0uMTRBMywzLDAsMCwwLDEzLjQ1LDExLjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cGF0aCBkPSJNMjEsNi43OGEyLjU2LDIuNTYsMCwwLDAtMS41Mi0xLjY1''@;'; put 'put ''bC0uMy0uMUwxOC43LDYuNTZsLjE1LDBhMSwxLDAsMCwxLC42LjYxYy4xNy42LS40MSwxLjMtMS4yNiwxLjU0cy0xLjcxLS4wNi0xLjg4LS42NWEuOS45LDAsMCwxLC4wNi0uNThMMTQuODksNi45YTIuNDcsMi40NywwLDAsMC0uMTIsMS42MywyLjg0LDIuODQsMCwwLDAsMi44NCwxLjkxLDMu''@;'; put 'put ''NTgsMy41OCwwLDAsMCwxLS4xNUEzLDMsMCwwLDAsMjEsNi43OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG5cbiAgPHBhdGggZD0iTTMyLjIzLDE0Ljg5Yy0yLjEtLjU2LTQuOTMsMS44LTYuMzQuMy0xLjcxLTEuODIsMi4yNy01LjUzLDEuODYtOC45''@;'; put 'put ''Mi0uMzMtMi43OC0zLjUxLTQuMDgtNi42Ni00LjFBMTguNSwxOC41LDAsMCwwLDcuNzQsNy41OWMtNi42NCw2LjU5LTguMDcsMTYtMS4zNywyMi40OCw2LjIxLDYsMTYuNjEsNC4yMywyMi42Ny0xLjRhMTcuNzMsMTcuNzMsMCwwLDAsNC4yMi02LjU0QzM0LjM0LDE5LjIzLDM0LjQ0LDE1LjQ5''@;'; put 'put ''LDMyLjIzLDE0Ljg5Wk05LjQsMTAuNTdhMi4yMywyLjIzLDAsMCwxLDIuODcsMS4yMSwyLjIyLDIuMjIsMCwwLDEtMS44MSwyLjUzQTIuMjIsMi4yMiwwLDAsMSw3LjU5LDEzLjEsMi4yMywyLjIzLDAsMCwxLDkuNCwxMC41N1pNNS4wNywyMC44MmEyLjIyLDIuMjIsMCwwLDEsMS44Mi0yLjUz''@;'; put 'put ''QTIuMjIsMi4yMiwwLDAsMSw5Ljc1LDE5LjUsMi4yMywyLjIzLDAsMCwxLDcuOTQsMjIsMi4yNCwyLjI0LDAsMCwxLDUuMDcsMjAuODJabTcsOC4zM2EyLjIyLDIuMjIsMCwwLDEtMi44Ny0xLjIxQTIuMjMsMi4yMywwLDAsMSwxMSwyNS40MWEyLjIzLDIuMjMsMCwwLDEsMi44NywxLjIxQTIu''@;'; put 'put ''MjIsMi4yMiwwLDAsMSwxMiwyOS4xNVpNMTUsOC4yNmEyLjIzLDIuMjMsMCwwLDEsMS44MS0yLjUzLDIuMjQsMi4yNCwwLDAsMSwyLjg3LDEuMjEsMi4yMiwyLjIyLDAsMCwxLTEuODIsMi41M0EyLjIxLDIuMjEsMCwwLDEsMTUsOC4yNlptNS44MiwyMi4xOWEyLjIyLDIuMjIsMCwwLDEtMi44''@;'; put 'put ''Ny0xLjIxLDIuMjMsMi4yMywwLDAsMSwxLjgxLTIuNTMsMi4yNCwyLjI0LDAsMCwxLDIuODcsMS4yMUEyLjIyLDIuMjIsMCwwLDEsMjAuNzgsMzAuNDVabTUtMTAuNDZhMy4yLDMuMiwwLDAsMS0xLjY5LDEuNzYsMy41MywzLjUzLDAsMCwxLTEuNC4zLDIuNzgsMi43OCwwLDAsMS0yLjU2LTEu''@;'; put 'put ''NSwyLjQ5LDIuNDksMCwwLDEtLjA3LTIsMy4yLDMuMiwwLDAsMSwxLjY5LTEuNzYsMywzLDAsMCwxLDQsMS4yQTIuNTQsMi41NCwwLDAsMSwyNS43OSwyMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkVzc2VudGlhbFNoYXBlcz17ImFkZC10ZXh0Ijpl''@;'; put 'put ''LkNsclNoYXBlQWRkVGV4dCwiYWxhcm0tb2ZmIjplLkNsclNoYXBlQWxhcm1PZmYscGluYm9hcmQ6ZS5DbHJTaGFwZVBpbmJvYXJkLG5ldzplLkNsclNoYXBlTmV3LCJidWJibGUtZXhjbGFtYXRpb24iOmUuQ2xyU2hhcGVCdWJibGVFeGNsYW1hdGlvbiwiZ3JpZC12aWV3IjplLkNsclNoYXBl''@;'; put 'put ''R3JpZFZpZXcsImN1cnNvci1hcnJvdyI6ZS5DbHJTaGFwZUN1cnNvckFycm93LCJjdXJzb3ItaGFuZCI6ZS5DbHJTaGFwZUN1cnNvckhhbmQsImN1cnNvci1oYW5kLWNsaWNrIjplLkNsclNoYXBlQ3Vyc29ySGFuZENsaWNrLCJjdXJzb3ItaGFuZC1ncmFiIjplLkNsclNoYXBlQ3Vyc29ySGFu''@;'; put 'put ''ZEdyYWIsImN1cnNvci1oYW5kLW9wZW4iOmUuQ2xyU2hhcGVDdXJzb3JIYW5kT3BlbiwiY3Vyc29yLW1vdmUiOmUuQ2xyU2hhcGVDdXJzb3JNb3ZlLCJmaXJzdC1haWQiOmUuQ2xyU2hhcGVGaXJzdEFpZCxyZXNpemU6ZS5DbHJTaGFwZVJlc2l6ZSxvYmplY3RzOmUuQ2xyU2hhcGVPYmplY3Rz''@;'; put 'put ''LGJvb2s6ZS5DbHJTaGFwZUJvb2ssYXN0ZXJpc2s6ZS5DbHJTaGFwZUFzdGVyaXNrLGJ1ZzplLkNsclNoYXBlQnVnLHNjaXNzb3JzOmUuQ2xyU2hhcGVTY2lzc29ycyx0aGVybW9tZXRlcjplLkNsclNoYXBlVGhlcm1vbWV0ZXIscGVuY2lsOmUuQ2xyU2hhcGVQZW5jaWwsbm90ZTplLkNsclNo''@;'; put 'put ''YXBlTm90ZSxyZWZyZXNoOmUuQ2xyU2hhcGVSZWZyZXNoLHN5bmM6ZS5DbHJTaGFwZVN5bmMsInZpZXctbGlzdCI6ZS5DbHJTaGFwZVZpZXdMaXN0LCJ2aWV3LWNhcmRzIjplLkNsclNoYXBlVmlld0NhcmRzLCJ0cmVlLXZpZXciOmUuQ2xyU2hhcGVUcmVlVmlldyxsaWdodGJ1bGI6ZS5DbHJT''@;'; put 'put ''aGFwZUxpZ2h0YnVsYixkb3dubG9hZDplLkNsclNoYXBlRG93bmxvYWQsdXBsb2FkOmUuQ2xyU2hhcGVVcGxvYWQsbG9jazplLkNsclNoYXBlTG9jayx1bmxvY2s6ZS5DbHJTaGFwZVVubG9jayx1c2VyczplLkNsclNoYXBlVXNlcnMsInBvcC1vdXQiOmUuQ2xyU2hhcGVQb3BPdXQsZmlsdGVy''@;'; put 'put ''OmUuQ2xyU2hhcGVGaWx0ZXIscGluOmUuQ2xyU2hhcGVQaW4sZmlsZTplLkNsclNoYXBlRmlsZSxwbHVzOmUuQ2xyU2hhcGVQbHVzLG1pbnVzOmUuQ2xyU2hhcGVNaW51cywibWludXMtY2lyY2xlIjplLkNsclNoYXBlTWludXNDaXJjbGUsInBsdXMtY2lyY2xlIjplLkNsclNoYXBlUGx1c0Np''@;'; put 'put ''cmNsZSxiYW46ZS5DbHJTaGFwZUJhbiwidGltZXMtY2lyY2xlIjplLkNsclNoYXBlVGltZXNDaXJjbGUsdHJhc2g6ZS5DbHJTaGFwZVRyYXNoLGNpcmNsZTplLkNsclNoYXBlQ2lyY2xlLHRhZzplLkNsclNoYXBlVGFnLHRhZ3M6ZS5DbHJTaGFwZVRhZ3MsaGlzdG9yeTplLkNsclNoYXBlSGlz''@;'; put 'put ''dG9yeSxjbG9jazplLkNsclNoYXBlQ2xvY2ssImFsYXJtLWNsb2NrIjplLkNsclNoYXBlQWxhcm1DbG9jayxhcnJvdzpjLkNsclNoYXBlQXJyb3csImNpcmNsZS1hcnJvdyI6ZS5DbHJTaGFwZUNpcmNsZUFycm93LCJjaGlsZC1hcnJvdyI6ZS5DbHJTaGFwZUNoaWxkQXJyb3csY29weTplLkNs''@;'; put 'put ''clNoYXBlQ29weSxoZWxwOmUuQ2xyU2hhcGVIZWxwLGxvZ2luOmUuQ2xyU2hhcGVMb2dpbixsb2dvdXQ6ZS5DbHJTaGFwZUxvZ291dCxwcmludGVyOmUuQ2xyU2hhcGVQcmludGVyLHdvcmxkOmUuQ2xyU2hhcGVXb3JsZCxzbGlkZXI6ZS5DbHJTaGFwZVNsaWRlcixjbGlwYm9hcmQ6ZS5DbHJT''@;'; put 'put ''aGFwZUNsaXBib2FyZCxmaXJld2FsbDplLkNsclNoYXBlRmlyZXdhbGwsbGlzdDplLkNsclNoYXBlTGlzdCxyZWRvOmUuQ2xyU2hhcGVSZWRvLHVuZG86ZS5DbHJTaGFwZVVuZG8sc2Nyb2xsOmUuQ2xyU2hhcGVTY3JvbGwsImZpbGUtc2V0dGluZ3MiOmUuQ2xyU2hhcGVGaWxlU2V0dGluZ3Ms''@;'; put 'put ''InR3by13YXktYXJyb3dzIjplLkNsclNoYXBlVHdvV2F5QXJyb3dzLHN3aXRjaDplLkNsclNoYXBlU3dpdGNoLHRvb2xzOmUuQ2xyU2hhcGVUb29scywid2luZG93LWNsb3NlIjplLkNsclNoYXBlV2luZG93Q2xvc2UsIndpbmRvdy1tYXgiOmUuQ2xyU2hhcGVXaW5kb3dNYXgsIndpbmRvdy1t''@;'; put 'put ''aW4iOmUuQ2xyU2hhcGVXaW5kb3dNaW4sIndpbmRvdy1yZXN0b3JlIjplLkNsclNoYXBlV2luZG93UmVzdG9yZSwiem9vbS1pbiI6ZS5DbHJTaGFwZVpvb21Jbiwiem9vbS1vdXQiOmUuQ2xyU2hhcGVab29tT3V0LGtleTplLkNsclNoYXBlS2V5LGxpYnJhcnk6ZS5DbHJTaGFwZUxpYnJhcnks''@;'; put 'put ''Ym9sdDplLkNsclNoYXBlQm9sdCx3cmVuY2g6ZS5DbHJTaGFwZVdyZW5jaCxidWxsc2V5ZTplLkNsclNoYXBlQnVsbHNleWUsdGFyZ2V0OmUuQ2xyU2hhcGVUYXJnZXQsZmxhbWU6ZS5DbHJTaGFwZUZsYW1lLGhvdXJnbGFzczplLkNsclNoYXBlSG91cmdsYXNzLCJuby1hY2Nlc3MiOmUuQ2xy''@;'; put 'put ''U2hhcGVOb0FjY2Vzcyxvcmdhbml6YXRpb246ZS5DbHJTaGFwZU9yZ2FuaXphdGlvbixiYWxhbmNlOmUuQ2xyU2hhcGVCYWxhbmNlLCJpZC1iYWRnZSI6ZS5DbHJTaGFwZUlkQmFkZ2UscmVwZWF0OmUuQ2xyU2hhcGVSZXBlYXQsImZpbGUtZ3JvdXAiOmUuQ2xyU2hhcGVGaWxlR3JvdXAscGFw''@;'; put 'put ''ZXJjbGlwOmUuQ2xyU2hhcGVQYXBlcmNsaXAsc2hyaW5rOmUuQ2xyU2hhcGVTaHJpbmssImFjY2Vzc2liaWxpdHktMSI6ZS5DbHJTaGFwZUFjY2Vzc2liaWxpdHkxLCJhY2Nlc3NpYmlsaXR5LTIiOmUuQ2xyU2hhcGVBY2Nlc3NpYmlsaXR5Miwic29ydC1ieSI6ZS5DbHJTaGFwZVNvcnRCeSwi''@;'; put 'put ''Y29sbGFwc2UtY2FyZCI6ZS5DbHJTaGFwZUNvbGxhcHNlQ2FyZCwiZXhwYW5kLWNhcmQiOmUuQ2xyU2hhcGVFeHBhbmRDYXJkLGJyaWVmY2FzZTplLkNsclNoYXBlQnJpZWZjYXNlLCJjb2xvci1waWNrZXIiOmUuQ2xyU2hhcGVDb2xvclBpY2tlciwiY29weS10by1jbGlwYm9hcmQiOmUuQ2xy''@;'; put 'put ''U2hhcGVDb3B5VG9DbGlwYm9hcmQsImZpbHRlci0yIjplLkNsclNoYXBlRmlsdGVyMiwiZHJhZy1oYW5kbGUiOmUuQ2xyU2hhcGVEcmFnSGFuZGxlLG1vb246ZS5DbHJTaGFwZU1vb24sc3VuOmUuQ2xyU2hhcGVTdW4sd2FuZDplLkNsclNoYXBlV2FuZCxjbG9uZTplLkNsclNoYXBlQ2xvbmUs''@;'; put 'put ''ZGV0YWlsczplLkNsclNoYXBlRGV0YWlscywiZHJhZy1oYW5kbGUtY29ybmVyIjplLkNsclNoYXBlRHJhZ0hhbmRsZUNvcm5lcixlcmFzZXI6ZS5DbHJTaGFwZUVyYXNlcixsYW5kc2NhcGU6ZS5DbHJTaGFwZUxhbmRzY2FwZSxwYXN0ZTplLkNsclNoYXBlUGFzdGUscG9ydHJhaXQ6ZS5DbHJT''@;'; put 'put ''aGFwZVBvcnRyYWl0LCJmaWxlLXppcCI6ZS5DbHJTaGFwZUZpbGVaaXAsImZpbHRlci1vZmYiOmUuQ2xyU2hhcGVGaWx0ZXJPZmYscmVjeWNsZTplLkNsclNoYXBlUmVjeWNsZSx0cmVlOmUuQ2xyU2hhcGVUcmVlLGZpc2g6ZS5DbHJTaGFwZUZpc2gsZm9ybTplLkNsclNoYXBlRm9ybSxmdWVs''@;'; put 'put ''OmUuQ2xyU2hhcGVGdWVsLHNub3dmbGFrZTplLkNsclNoYXBlU25vd2ZsYWtlLHRhYmxlOmUuQ2xyU2hhcGVUYWJsZSwiZG90LWNpcmNsZSI6ZS5DbHJTaGFwZURvdENpcmNsZSx2b2x1bWU6ZS5DbHJTaGFwZVZvbHVtZSxjcm9zc2hhaXJzOmUuQ2xyU2hhcGVDcm9zc2hhaXJzLGJldGE6ZS5D''@;'; put 'put ''bHJTaGFwZUJldGEsImNvbG9yLXBhbGV0dGUiOmUuQ2xyU2hhcGVDb2xvclBhbGV0dGV9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiZWRpdCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5wZW5jaWwpKSxPYmplY3QuZGVmaW5lUHJv''@;'; put 'put ''cGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsIm5vdGUtZWRpdCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5ub3RlKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJncm91cCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlh''@;'; put 'put ''bFNoYXBlcy51c2VycykpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiZG9jdW1lbnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMuZmlsZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiYWRkIiwoMCxy''@;'; put 'put ''LmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLnBsdXMpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImNhbmNlbCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5iYW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5F''@;'; put 'put ''c3NlbnRpYWxTaGFwZXMsInJlbW92ZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlc1sidGltZXMtY2lyY2xlIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInNpZ24taW4iLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRp''@;'; put 'put ''YWxTaGFwZXMubG9naW4pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInNpZ24tb3V0IiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLmxvZ291dCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywibGlnaHRu''@;'; put 'put ''aW5nIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuRXNzZW50aWFsU2hhcGVzLmJvbHQpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImZsb3ctY2hhcnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMub3JnYW5pemF0aW9uKSksT2Jq''@;'; put 'put ''ZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJhbGVydCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlc1siYnViYmxlLWV4Y2xhbWF0aW9uIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInBpbm5lZCIsKDAsci5k''@;'; put 'put ''ZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5waW5ib2FyZCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLkVzc2VudGlhbFNoYXBlcywiYXR0YWNobWVudCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5wYXBlcmNsaXApKSxPYmplY3QuZGVmaW5l''@;'; put 'put ''UHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsImF0dGFjaG1lbnQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Fc3NlbnRpYWxTaGFwZXMucGFwZXJjbGlwKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuRXNzZW50aWFsU2hhcGVzLCJyZXNpemUtZG93biIsKDAsci5kZXNjcmlwdG9yQ29u''@;'; put 'put ''ZmlnKShlLkVzc2VudGlhbFNoYXBlcy5zaHJpbmspKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Fc3NlbnRpYWxTaGFwZXMsInJlc2l6ZS11cCIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLkVzc2VudGlhbFNoYXBlcy5yZXNpemUpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2lu''@;'; put 'put ''ZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5Fc3NlbnRpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL21lZGlhLXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVm''@;'; put 'put ''aW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5NZWRpYVNoYXBlcz1lLkNsclNoYXBlTWljcm9waG9uZU11dGU9ZS5DbHJTaGFwZU1pY3JvcGhvbmU9ZS5DbHJTaGFwZVZpZGVvR2FsbGVyeT1lLkNsclNoYXBlUmVwbGF5T25lPWUuQ2xyU2hhcGVSZXBsYXlBbGw9ZS5D''@;'; put 'put ''bHJTaGFwZUltYWdlR2FsbGVyeT1lLkNsclNoYXBlTXVzaWNOb3RlPWUuQ2xyU2hhcGVGaWxtU3RyaXA9ZS5DbHJTaGFwZUhlYWRwaG9uZXM9ZS5DbHJTaGFwZVZvbHVtZU11dGU9ZS5DbHJTaGFwZVZvbHVtZVVwPWUuQ2xyU2hhcGVWb2x1bWVEb3duPWUuQ2xyU2hhcGVTaHVmZmxlPWUuQ2xy''@;'; put 'put ''U2hhcGVWaWRlb0NhbWVyYT1lLkNsclNoYXBlQ2FtZXJhPWUuQ2xyU2hhcGVGYXN0Rm9yd2FyZD1lLkNsclNoYXBlUmV3aW5kPWUuQ2xyU2hhcGVQb3dlcj1lLkNsclNoYXBlU3RvcD1lLkNsclNoYXBlU3RlcEZvcndhcmQ9ZS5DbHJTaGFwZVBhdXNlPWUuQ2xyU2hhcGVQbGF5PXZvaWQgMCxs''@;'; put 'put ''PWwoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksZS5DbHJTaGFwZVBsYXk9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik04LjA3LDMxLjZBMi4wNywyLjA3LDAsMCwx''@;'; put 'put ''LDYsMjkuNTNWNi4zMkEyLjA3LDIuMDcsMCwwLDEsOSw0LjQ3TDMyLjIxLDE2LjA4YTIuMDcsMi4wNywwLDAsMSwwLDMuN0w5LDMxLjM4QTIuMDYsMi4wNiwwLDAsMSw4LjA3LDMxLjZabTAtMjUuMzRMOCw2LjMyVjI5LjUzbC4xLjA2TDMxLjMxLDE4YS4wNi4wNiwwLDAsMCwwLS4wNloiLz5c''@;'; put 'put ''biAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTYuMDgsOC45NCw0LjQ3QTIuMDcsMi4wNywwLDAsMCw2LDYuMzJWMjkuNTNhMi4wNiwyLjA2LDAsMCwwLDMsMS44NUwzMi4xNiwxOS43N2EyLjA3LDIuMDcsMCww''@;'; put 'put ''LDAsMC0zLjdaIi8+JyksZS5DbHJTaGFwZVBhdXNlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTIuOTMsMzJINi4wN0EyLjA3LDIuMDcsMCwwLDEsNCwyOS45M1Y2LjA3QTIuMDcsMi4wNywwLDAsMSw2LjA3''@;'; put 'put ''LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMTUsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMTIuOTMsMzJaTTEzLDZINlYzMGg3WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjkuOTMsMzJIMjMuMDdB''@;'; put 'put ''Mi4wNywyLjA3LDAsMCwxLDIxLDI5LjkzVjYuMDdBMi4wNywyLjA3LDAsMCwxLDIzLjA3LDRoNi44N0EyLjA3LDIuMDcsMCwwLDEsMzIsNi4wN1YyOS45M0EyLjA3LDIuMDcsMCwwLDEsMjkuOTMsMzJaTTMwLDZIMjNWMzBoN1oiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiB4PSIzLjk1IiB5PSI0IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIHg9IjIwLjk1IiB5PSI0''@;'; put 'put ''IiB3aWR0aD0iMTEiIGhlaWdodD0iMjgiIHJ4PSIyLjA3IiByeT0iMi4wNyIvPicpLGUuQ2xyU2hhcGVTdGVwRm9yd2FyZD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTUsMzIuMjNhMiwyLDAsMCwxLTItMlY1''@;'; put 'put ''Ljc3QTIsMiwwLDAsMSw2LjE3LDQuMTRMMjMuMjMsMTYuMzhhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTcsMzEuODZBMiwyLDAsMCwxLDUsMzIuMjNaTTUsNS43N1YzMC4yM0wyMi4wNywxOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMiIgZD0iTTMxLDMySDI4YTIsMiwwLDAsMS0yLTJWNmEyLDIsMCwwLDEsMi0yaDNhMiwyLDAsMCwxLDIsMlYzMEEyLDIsMCwwLDEsMzEsMzJaTTI4LDZWMzBoM1Y2WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTEiIGQ9Ik01LDMxLjlhMiwyLDAsMCwxLTItMlY1LjQ0QTIsMiwwLDAsMSw2LjEyLDMuODFMMjMuMTgsMTZhMiwyLDAsMCwxLDAsMy4yNWgwTDYuMTIsMzEuNTJBMiwyLDAsMCwxLDUsMzEuOVoiLz5cbiAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0yIiB4PSIyNS45NSIgeT0iMy42NyIgd2lkdGg9IjciIGhlaWdodD0iMjgiIHJ4PSIyIiByeT0iMiIvPicpLGUuQ2xyU2hhcGVTdG9wPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAsMzJINmEy''@;'; put 'put ''LDIsMCwwLDEtMi0yVjZBMiwyLDAsMCwxLDYsNEgzMGEyLDIsMCwwLDEsMiwyVjMwQTIsMiwwLDAsMSwzMCwzMlpNNiw2VjMwSDMwVjZaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgeD0iMy45NiIgeT0iNCIgd2lkdGg9''@;'; put 'put ''IjI3Ljk5IiBoZWlnaHQ9IjI4IiByeD0iMiIgcnk9IjIiLz4nKSxlLkNsclNoYXBlUG93ZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMWExLDEsMCwwLDEtMS0xVjRhMSwxLDAsMCwxLDIsMFYyMEEx''@;'; put 'put ''LDEsMCwwLDEsMTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCwzNC4xNWExNSwxNSwwLDAsMS03LjUyLTI4LDEsMSwwLDAsMSwxLDEuNzMsMTMsMTMsMCwxLDAsMTMsMCwxLDEsMCwxLDEsMS0x''@;'; put 'put ''LjczLDE1LDE1LDAsMCwxLTcuNTIsMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOCwyMWExLDEsMCwwLDAsMS0xVjRhMSwxLDAsMCwwLTIsMFYyMEExLDEsMCwwLDAs''@;'; put 'put ''MTgsMjFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0zMi41MSwxNS40SDMwLjQ0YTEzLDEzLDAsMSwxLTE5LTcuNSwxLDEsMCwwLDAtMS0xLjczQTE1LDE1LDAsMSwwLDMz''@;'; put 'put ''LDE5LjE1LDE0LjksMTQuOSwwLDAsMCwzMi41MSwxNS40WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEu''@;'; put 'put ''MjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0t''@;'; put 'put ''YmFkZ2VkIiBkPSJNMTgsMjFhMSwxLDAsMCwxLTEtMVY0YTEsMSwwLDAsMSwyLDBWMjBBMSwxLDAsMCwxLDE4LDIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVs''@;'; put 'put ''LS4zMSwwQTEzLDEzLDAsMSwxLDExLjQ4LDcuOWExLDEsMCwwLDAtMS0xLjczLDE1LDE1LDAsMSwwLDIxLjMxLDcuMUE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabS4wNiwxNy42''@;'; put 'put ''OGExLjI4LDEuMjgsMCwwLDEtMS4yOS0xLjI4VjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMFYxOC40QTEuMjgsMS4yOCwwLDAsMSwxOC4wNiwxOS42OFpNMTgsMjcuNzlBOS44OCw5Ljg4LDAsMCwxLDEyLjE3LDkuODVhMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0u''@;'; put 'put ''MzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywxLjM3LDAsMCwxLDIyLDEwLjJhMS40LDEuNCwwLDAsMSwxLjk0LS4yOUE5Ljg4LDkuODgsMCwwLDEsMTgsMjcuNzlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjRoLTZBOS43LDkuNywwLDAsMSwyOCwxNy44OWExMCwxMCwwLDEsMS0xNS44My04LDEuNCwxLjQsMCwwLDEsMS45NC4zMSwxLjM3LDEuMzcsMCwwLDEtLjMxLDEuOTIsNy4xOCw3LjE4''@;'; put 'put ''LDAsMSwwLDExLjQzLDUuOCw3LjA4LDcuMDgsMCwwLDAtLjQ1LTIuNDlIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0djQuNGExLjI5LDEuMjksMCwwLDEtMi41OCwwVjguNjVhMS4yOSwxLjI5LDAsMCwxLDIuNTgsMHYuNzFsMy43Ni02LjUxQTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2''@;'; put 'put ''LDAsMCwwLS4yMy0yLjYxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42''@;'; put 'put ''OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40Nyw3''@;'; put 'put ''LjQ3LDAsMCwxLTMuNTctLjlBOS44Myw5LjgzLDAsMCwxLDI4LDE3Ljg5YTEwLDEwLDAsMSwxLTE1LjgzLTgsMS40LDEuNCwwLDAsMSwxLjk0LjMxLDEuMzcsMS4zNywwLDAsMS0uMzEsMS45Miw3LjE4LDcuMTgsMCwxLDAsMTEuNDMsNS44LDcuMDcsNy4wNywwLDAsMC0zLTUuNzZBMS4zNywx''@;'; put 'put ''LjM3LDAsMCwxLDIyLDEwLjJhMS4zOCwxLjM4LDAsMCwxLDEuNTItLjQ5LDcuNDUsNy40NSwwLDAsMS0uMy02LjgzLDE2LjA2LDE2LjA2LDAsMSwwLDkuOTMsOS45M0E3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuNzcsOC42NWExLjI5LDEuMjksMCwwLDEsMi41OCwwVjE4LjRhMS4yOSwx''@;'; put 'put ''LjI5LDAsMCwxLTIuNTgsMFoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+JyksZS5DbHJTaGFwZVJld2luZD0oMCxsLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTE3LjA5LDMxLjU4bC0xNS4zMi0xMmEyLDIsMCwwLDEsMC0zLjE1bDE1LjMyLTEyYTEuOTMsMS45MywwLDAsMSwyLjA2LS4yMkExLjc3LDEuNzcsMCwwLDEsMjAsNnY2LjdMMzAuODMs''@;'; put 'put ''NC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDM0LDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS43NywxLjc3LDAsMCwxLS44NSwxLjc5LDEuOTQsMS45NCwwLDAsMS0yLjA2LS4yMlpNMzIsMzBsLjA2''@;'; put 'put ''LTI0TDE4LDE2LjhWNkwzLDE4LDE4LDMwVjE5LjJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTYuOTIsMzEuNTgsMS42LDE5LjU3YTIsMiwwLDAsMSwwLTMuMTVsMTUuMzItMTJBMS45MywxLjkzLDAsMCwxLDE5LDQu''@;'; put 'put ''MiwxLjg5LDEuODksMCwwLDEsMjAsNnY2LjdMMzAuNjYsNC40MmExLjkzLDEuOTMsMCwwLDEsMi4wNi0uMjJBMiwyLDAsMCwxLDMzLjgzLDZWMzBhMiwyLDAsMCwxLTEuMTEsMS43OSwxLjk0LDEuOTQsMCwwLDEtMi4wNi0uMjJMMjAsMjMuMzFWMzBhMS44OSwxLjg5LDAsMCwxLTEsMS43OSwx''@;'; put 'put ''Ljk0LDEuOTQsMCwwLDEtMi4wNi0uMjJaIi8+JyksZS5DbHJTaGFwZUZhc3RGb3J3YXJkPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTcuNzcsMzEuOTJhMiwyLDAsMCwxLS44Ni0uMkExLjgxLDEuODEsMCww''@;'; put 'put ''LDEsMTYsMjkuOTN2LTYuN0w1LjI0LDMxLjVhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjIsMiwyLDAsMCwxLTEuMTEtMS43OXYtMjRBMiwyLDAsMCwxLDMuMTgsNC4xMmExLjkzLDEuOTMsMCwwLDEsMi4wNi4yMkwxNiwxMi42MVY1LjkxYTEuODEsMS44MSwwLDAsMSwuOTEtMS43OUExLjkzLDEu''@;'; put 'put ''OTMsMCwwLDEsMTksNC4zNGwxNS4zMiwxMmEyLDIsMCwwLDEsMCwzLjE1TDE5LDMxLjVBMiwyLDAsMCwxLDE3Ljc3LDMxLjkyWm0wLTEyLjhWMjkuOTNsMTUuMjYtMTItMTUuMzItMTIsLjA2LDEwLjgxTDQsNS45MXYyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNy43MSwzMmEyLDIsMCwwLDEtLjg2LS4yQTEuNzcsMS43NywwLDAsMSwxNiwzMHYtNi43TDUuMTcsMzEuNThhMS45NCwxLjk0LDAsMCwxLTIuMDYuMjJBMiwyLDAsMCwxLDIsMzBWNkEyLDIsMCwwLDEsMy4xMSw0LjJhMS45MywxLjkzLDAsMCwx''@;'; put 'put ''LDIuMDYuMjJMMTYsMTIuNjlWNmExLjc3LDEuNzcsMCwwLDEsLjg1LTEuNzksMS45MywxLjkzLDAsMCwxLDIuMDYuMjJsMTUuMzIsMTJhMiwyLDAsMCwxLDAsMy4xNWwtMTUuMzIsMTJBMiwyLDAsMCwxLDE3LjcxLDMyWiIvPicpLGUuQ2xyU2hhcGVDYW1lcmE9KDAsbC5jbHJJY29uU1ZHKSgn''@;'; put 'put ''PHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMjJINFYxMGg4LjY3''@;'; put 'put ''bDEuNTUtNGg3LjU2bDEuNTUsNEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwxOWE5LDksMCwxLDAsOS05QTksOSwwLDAsMCw5LDE5Wm0xNi40LDBBNy40LDcuNCwwLDEsMSwxOCwxMS42LDcuNDEsNy40''@;'; put 'put ''MSwwLDAsMSwyNS40LDE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik05LjM3LDEyLjgzYS44LjgsMCwwLDAtLjgtLjhINi4xN2EuOC44LDAsMCwwLDAsMS42aDIuNEEuOC44LDAsMCwwLDkuMzcsMTIuODNaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjM0LDE5YTUuNTcsNS41NywwLDAsMCwzLjI0LDVsLjg1LTEuMzdhNCw0LDAsMSwxLDQuMTEtNi42MWwuODYtMS4zOEE1LjU2LDUuNTYsMCwwLDAsMTIuMzQsMTlaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDhIMjQuN0wyMy42NCw1LjI4QTIsMiwwLDAsMCwyMS43OCw0SDE0LjIyYTIsMiwwLDAsMC0xLjg3LDEuMjhMMTEuMyw4SDRhMiwyLDAsMCwwLTIsMlYzMGEyLDIsMCww''@;'; put 'put ''LDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhaTTYuMTcsMTMuNjNhLjguOCwwLDAsMSwwLTEuNmgyLjRhLjguOCwwLDAsMSwwLDEuNlpNMTgsMjhhOSw5LDAsMSwxLDktOUE5LDksMCwwLDEsMTgsMjhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuMTEsMTkuMDZhNy4wNyw3LjA3LDAsMCwwLDQuMTEsNi40MWwxLjA5LTEuNzRhNSw1LDAsMSwxLDUuMjItOC4zOWwxLjA5LTEuNzZhNy4wNiw3LjA2LDAsMCwwLTExLjUxLDUuNDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0yIi8+JyksZS5DbHJTaGFwZVZpZGVvQ2FtZXJhPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzQsMTAuMzRhMi4xMSwyLjExLDAsMCwwLTEuMTYtMS45LDIsMiwwLDAsMC0yLjEzLjE1TDI2LDEx''@;'; put 'put ''LjZWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjQuNGw0LjY0LDNhMi4wNywyLjA3LDAsMCwwLDIuMi4yQTIuMTEsMi4xMSwwLDAsMCwzNCwyNS42NlpNMzEuOTMsMjUuNzdjLS4wNiwwLS4xMSwwLS4xOS0uMDZMMjQs''@;'; put 'put ''MjAuNzdWMjhINmEyLDIsMCwwLDEtMi0yVjEwQTIsMiwwLDAsMSw2LDhIMjR2Ny4yM2w3LjgtNWEuMTEuMTEsMCwwLDEsLjEzLDAsLjExLjExLDAsMCwxLC4wNy4xMVYyNS42NkEuMTEuMTEsMCwwLDEsMzEuOTMsMjUuNzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMyw5LjM1LDI2LDEyLjlWOGEyLDIsMCwwLDAtMi0ySDZhNCw0LDAsMCwwLTQsNFYyNmE0LDQsMCwwLDAsNCw0SDI0YTIsMiwwLDAsMCwyLTJWMjMuMDhsNi4zLDMuNTVBMS4xLDEuMSwwLDAsMCwzNCwyNS43N1YxMC4yQTEuMSwxLjEsMCww''@;'; put 'put ''LDAsMzIuMyw5LjM1WiIvPicpLGUuQ2xyU2hhcGVTaHVmZmxlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjEuNjEsMTFoOC42MmwtMy4zLDMuM2ExLDEsMCwxLDAsMS40MSwxLjQyTDM0LDEwLjA4bC0uNzEt''@;'; put 'put ''LjcxaDBMMjguMzQsNC40M2ExLDEsMCwwLDAtMS40MSwxLjQyTDMwLjExLDlIMjFhMSwxLDAsMCwwLS44Ni41TDE3LjUsMTQuMDlsMS4xNiwyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xMS4wNywyNS4wN0gz''@;'; put 'put ''YTEsMSwwLDAsMCwwLDJoOC42NWExLDEsMCwwLDAsLjg2LS41TDE1LjE4LDIyLDE0LDIwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yOC4zNCwyMC4xN2ExLDEsMCwwLDAtMS40MSwxLjQybDMuNSwzLjVIMjEu''@;'; put 'put ''NjFMMTIuNTEsOS41M2ExLDEsMCwwLDAtLjg2LS41SDNhMSwxLDAsMSwwLDAsMmg4LjA3bDkuMSwxNS41NWExLDEsMCwwLDAsLjg2LjVIMjkuOWwtMywzYTEsMSwwLDAsMCwxLjQxLDEuNDJsNC45NS00Ljk0aDBsLjcxLS43MVoiLz4nKSxlLkNsclNoYXBlVm9sdW1lRG93bj0oMCxsLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjExYTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEuNzNBOC4yMSw4LjIxLDAsMCwxLDIzLjk0LDI1LDEsMSww''@;'; put 'put ''LDAsMSwyMy40MSwyNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMzJhMiwyLDAsMCwxLTEuNDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcu''@;'; put 'put ''NDFBMiwyLDAsMCwxLDIwLDZWMzBhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzJaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuMjhMMTgsMzBWNmwtNy42NSw3LjY4YTEsMSwwLDAsMS0uNzEuM1pNMTgsNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yMy40MSwyNS4xMWExLDEsMCwwLDEtLjU0LTEuODUsNi4yMSw2LjIxLDAsMCwwLS4xOS0xMC42NSwxLDEsMCwxLDEsMS0xLjczQTguMjEsOC4yMSwwLDAsMSwyMy45NCwyNSwxLDEsMCwwLDEsMjMuNDEsMjUuMTFaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTguMzQsMy44Nyw5LDEySDNhMSwxLDAsMCwwLTEsMVYyM2ExLDEsMCwwLDAsMSwxSDguODNsOS41MSw4LjNBMSwxLDAsMCwwLDIwLDMxLjU1VjQuNjJBMSwxLDAsMCwwLDE4LjM0LDMuODdaIi8+Jyks''@;'; put 'put ''ZS5DbHJTaGFwZVZvbHVtZVVwPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjMuNDEsMjUuMjVhMSwxLDAsMCwxLS41NC0xLjg1LDYuMjEsNi4yMSwwLDAsMC0uMTktMTAuNjUsMSwxLDAsMSwxLDEtMS43Myw4''@;'; put 'put ''LjIxLDguMjEsMCwwLDEsLjI0LDE0LjA2QTEsMSwwLDAsMSwyMy40MSwyNS4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCww''@;'; put 'put ''LDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQuNDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTgsMzIuMDZhMiwyLDAsMCwxLTEu''@;'; put 'put ''NDItLjU5TDkuMTQsMjRINGEyLDIsMCwwLDEtMi0yVjE0YTIsMiwwLDAsMSwyLTJIOS4yMmw3LjMzLTcuMzlBMiwyLDAsMCwxLDIwLDZ2MjRhMiwyLDAsMCwxLTEuMjQsMS44NUEyLDIsMCwwLDEsMTgsMzIuMDZaTTQsMTR2OEg5LjU2YTEsMSwwLDAsMSwuNzEuM0wxOCwzMC4wNlY2TDEwLjM1''@;'; put 'put ''LDEzLjdhMSwxLDAsMCwxLS43MS4zWk0xOCw2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTIzLjQxLDI1LjI1YTEsMSwwLDAsMS0uNTQtMS44NSw2LjIxLDYuMjEsMCwwLDAtLjE5LTEwLjY1LDEsMSwwLDEsMSwxLTEu''@;'; put 'put ''NzMsOC4yMSw4LjIxLDAsMCwxLC4yNCwxNC4wNkExLDEsMCwwLDEsMjMuNDEsMjUuMjVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjUuNjIsMzEuMThhMSwxLDAsMCwxLS40NS0xLjg5QTEyLjQ0LDEyLjQ0LDAsMCww''@;'; put 'put ''LDI1LDYuODlhMSwxLDAsMSwxLC44Ny0xLjgsMTQuNDQsMTQuNDQsMCwwLDEsLjI0LDI2QTEsMSwwLDAsMSwyNS42MiwzMS4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOC4zMyw0LDkuMDcsMTJoLTZhMSwxLDAs''@;'; put 'put ''MCwwLTEsMXY5LjkyYTEsMSwwLDAsMCwxLDFIOC44OGw5LjQ2LDguMjRBMSwxLDAsMCwwLDIwLDMxLjQzVjQuNzJBMSwxLDAsMCwwLDE4LjMzLDRaIi8+JyksZS5DbHJTaGFwZVZvbHVtZU11dGU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTEiIGQ9Ik0zLjYxLDYuNDEsOS4xOSwxMkg0YTIsMiwwLDAsMC0yLDJ2OGEyLDIsMCwwLDAsMiwySDkuMTRsNy40MSw3LjQ3QTIsMiwwLDAsMCwxOCwzMmEyLDIsMCwwLDAsLjc2LS4xNUEyLDIsMCwwLDAsMjAsMzBWMjIuNzdsNS44OSw1Ljg5Yy0uMjUuMTUtLjQ5LjI5LS43''@;'; put 'put ''NS40MmExLDEsMCwwLDAsLjksMS43OSwxNC40LDE0LjQsMCwwLDAsMS4zMS0uNzVsMi4yOCwyLjI4TDMxLDMxLDUsNVpNMTgsMzBsLTcuNzMtNy43N0ExLDEsMCwwLDAsOS41NiwyMkg0VjE0SDkuNjRhMSwxLDAsMCwwLC43MS0uM2wuMjYtLjI2TDE4LDIwLjgxWiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yNC44OSw2LjY5QTEyLjQyLDEyLjQyLDAsMCwxLDI5LDI2LjFsMS40MiwxLjQyQTE0LjQyLDE0LjQyLDAsMCwwLDI1Ljc2LDQuODhhMSwxLDAsMSwwLS44NywxLjhaIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjI0LDMuNzFMMjYsMjMuMTNBOC4xNSw4LjE1LDAsMCwwLDI3LjgsMThhOC4yOCw4LjI4LDAsMCwwLTQu''@;'; put 'put ''MS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTE4LDZ2OS4xNWwyLDJWNmEyLDIsMCwwLDAtMy40Mi0xLjQxTDEyLDkuMTdsMS40MSwxLjQxWiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTI0Ljg3LDYuNjlBMTIuNDIsMTIuNDIsMCwwLDEsMjguNzUsMjYuM2wxLjQyLDEuNDJBMTQuNDMsMTQuNDMsMCwwLDAsMjUuNzQsNC44OGExLDEsMCwwLDAtLjg3LDEuOFoiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yNy4zLDI3LjY3aDBsLTMuODQtMy44NC0uNTctLjU3aDBMNC42Myw1LDMuMjEsNi40MSw4LjgsMTJIM2ExLDEsMCwwLDAtMSwxVjIzYTEsMSwwLDAsMCwxLDFIOC44M2w5LjUxLDguM0ExLDEsMCwwLDAsMjAs''@;'; put 'put ''MzEuNTVWMjMuMmw1LjU5LDUuNTljLS4xNy4xLS4zNC4yLS41MS4yOWExLDEsMCwwLDAsLjksMS43OWMuMzctLjE5LjcyLS40LDEuMDgtLjYybDIuMTQsMi4xNEwzMC42MSwzMWwtMy4yNS0zLjI1WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMyIgZD0iTTIyLjY5LDEyLjYyQTYuMjcsNi4yNywwLDAsMSwyNS44LDE4YTYuMTcsNi4xNywwLDAsMS0xLjQyLDMuOTJsMS40MiwxLjQyYTguMTYsOC4xNiwwLDAsMCwyLTUuMzQsOC4yOCw4LjI4LDAsMCwwLTQuMS03LjExLDEsMSwwLDEsMC0xLDEuNzNaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMjAsNC42MmExLDEsMCwwLDAtMS42Ni0uNzVsLTYuNDIsNS42TDIwLDE3LjU0WiIvPicpLGUuQ2xyU2hhcGVIZWFkcGhvbmVzPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsM0ExNC4yNywxNC4yNywwLDAsMCw0LDE3LjVWMzFIOS4yQTIuNzQsMi43NCwwLDAsMCwxMiwyOC4zM1YyMS42N0EyLjc0LDIuNzQsMCwwLDAsOS4yLDE5SDZWMTcuNUExMi4yNywxMi4yNywwLDAsMSwxOCw1LDEyLjI3LDEyLjI3LDAs''@;'; put 'put ''MCwxLDMwLDE3LjVWMTlIMjYuOEEyLjc0LDIuNzQsMCwwLDAsMjQsMjEuNjd2Ni42N0EyLjc0LDIuNzQsMCwwLDAsMjYuOCwzMUgzMlYxNy41QTE0LjI3LDE0LjI3LDAsMCwwLDE4LDNaTTkuMiwyMWEuNzUuNzUsMCwwLDEsLjguNjd2Ni42N2EuNzUuNzUsMCwwLDEtLjguNjdINlYyMVpNMjYs''@;'; put 'put ''MjguMzNWMjEuNjdhLjc1Ljc1LDAsMCwxLC44LS42N0gzMHY4SDI2LjhBLjc1Ljc1LDAsMCwxLDI2LDI4LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTE4LDNBMTQuMjcsMTQuMjcsMCwwLDAsNCwxNy41VjMxSDgu''@;'; put 'put ''MkExLjc0LDEuNzQsMCwwLDAsMTAsMjkuMzNWMjIuNjdBMS43NCwxLjc0LDAsMCwwLDguMiwyMUg2VjE3LjVBMTIuMjcsMTIuMjcsMCwwLDEsMTgsNSwxMi4yNywxMi4yNywwLDAsMSwzMCwxNy41VjIxSDI3LjhBMS43NCwxLjc0LDAsMCwwLDI2LDIyLjY3djYuNjdBMS43NCwxLjc0LDAsMCww''@;'; put 'put ''LDI3LjgsMzFIMzJWMTcuNUExNC4yNywxNC4yNywwLDAsMCwxOCwzWiIvPicpLGUuQ2xyU2hhcGVGaWxtU3RyaXA9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIs''@;'; put 'put ''MCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzAsNFptMCwyNkg2VjZIMzBaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE0LjYsMjMuMDdhMS4yOSwxLjI5LDAsMCwwLDEuMjQuMDlsOC43''@;'; put 'put ''My00YTEuMywxLjMsMCwwLDAsMC0yLjM3aDBsLTguNzMtNEExLjMsMS4zLDAsMCwwLDE0LDE0djhBMS4yOSwxLjI5LDAsMCwwLDE0LjYsMjMuMDdabTEtOC42TDIzLjMxLDE4LDE1LjYsMjEuNTFaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMyIgeD0iOCIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE0IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgeD0iMjAiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjMiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiB4PSIyNiIgeT0iNyIgd2lkdGg9IjIiIGhl''@;'; put 'put ''aWdodD0iMyIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjgiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtOCIgeD0iMTQiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMjAiIHk9IjI2IiB3aWR0aD0iMiIgaGVpZ2h0PSIzIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjIiIGhlaWdodD0iMyIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDRINkEyLDIsMCwwLDAsNCw2VjMwYTIs''@;'; put 'put ''MiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY2QTIsMiwwLDAsMCwzMCw0Wk0yMCw3aDJ2M0gyMFpNMTQsN2gydjNIMTRaTTEwLDI5SDhWMjZoMlptMC0xOUg4VjdoMlptNiwxOUgxNFYyNmgyWm02LDBIMjBWMjZoMlptMy4xNi0xMC4xNkwxNS4zOSwyMy4yQTEsMSwwLDAsMSwxNCwyMi4y''@;'; put 'put ''OFYxMy41N2ExLDEsMCwwLDEsMS40MS0uOTFMMjUuMTYsMTdBMSwxLDAsMCwxLDI1LjE2LDE4Ljg0Wk0yOCwyOUgyNlYyNmgyWm0wLTE5SDI2VjdoMloiLz4nKSxlLkNsclNoYXBlTXVzaWNOb3RlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0xIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMS42OCw2LjE2Yy0xLjkyLTMuMy0xMC42LTQtMTEuNTgtNC4wOUwxOSwyVjIyLjM0YTUuODksNS44OSwwLDAsMC0uODItLjU2LDguMzMsOC4zMywwLDAsMC02LjUzLS40MUM3LjU3LDIyLjcsNC45MiwyNi41LDUuNzgsMjkuODRh''@;'; put 'put ''NS4zMyw1LjMzLDAsMCwwLDIuNjYsMy4zMiw3LjQ4LDcuNDgsMCwwLDAsMy42MS44OEE5LjU0LDkuNTQsMCwwLDAsMTUsMzMuNTdjMy42Ny0xLjE4LDYuMTctNC4zMyw2LjA2LTcuMzZWOS4zNGEyOS4xNCwyOS4xNCwwLDAsMSw2LjU1LDEuNDMsMSwxLDAsMSwwLC43Mi0xLjg3QTMxLjM3LDMx''@;'; put 'put ''LjM3LDAsMCwwLDIxLDcuMzNWNC4xN2MzLjMzLjM2LDgsMS4zOCw4LjkyLDMsMiwzLjQxLTIuMzMsNy4zNi0yLjM3LDcuNGExLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNlpNMTQuMzUsMzEuNjdhNi40Myw2LjQzLDAsMCwxLTUtLjI2LDMuMzEsMy4z''@;'; put 'put ''MSwwLDAsMS0xLjY5LTIuMDdjLS42LTIuMzMsMS40NS01LjA1LDQuNTgtNi4wNmE3LjUyLDcuNTIsMCwwLDEsMi4zLS4zNyw1LjUyLDUuNTIsMCwwLDEsMi42NS42MiwzLjMxLDMuMzEsMCwwLDEsMS42OSwyLjA3QzE5LjU0LDI3Ljk0LDE3LjQ5LDMwLjY2LDE0LjM1LDMxLjY3WiIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSJcbiAgICAgICAgICAgICAgICBkPSJNMzEuNjgsNi4xNmMtMS45Mi0zLjMtMTAuNi00LTExLjU4LTQuMDlMMTksMlYyMi4yOWE1Ljg4LDUuODgsMCwwLDAtLjgxLS41NSw4LjMzLDguMzMsMCwwLDAt''@;'; put 'put ''Ni41My0uNDFjLTQuMTIsMS4zMy02Ljc3LDUuMTMtNS45MSw4LjQ3YTUuMzMsNS4zMywwLDAsMCwyLjY2LDMuMzIsNy40OCw3LjQ4LDAsMCwwLDMuNjEuODhBOS41NCw5LjU0LDAsMCwwLDE1LDMzLjUyYzMuNy0xLjE5LDYuMi00LjM3LDYuMDYtNy40MiwwLDAsMCwwLDAsMFY4LjQ5YzEsLjEy''@;'; put 'put ''LDIuMzcuMzMsMy44Mi42NGExMS4xNywxMS4xNywwLDAsMSw0LjA2LDEuNDZjMSwuNjYuMzgsMS45LjMzLDJhMTEuOCwxMS44LDAsMCwxLTEuNjYsMiwxLDEsMCwwLDAsMS4zMywxLjQ5QzI5LjE1LDE1Ljg1LDM0LjUsMTEsMzEuNjgsNi4xNloiLz4nKSxlLkNsclNoYXBlSW1hZ2VHYWxsZXJ5''@;'; put 'put ''PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi4xMiwxMEgzLjg4QTEuODgsMS44OCwwLDAsMCwyLDExLjg4VjMwLjEyQTEuODgsMS44OCwwLDAsMCwzLjg4LDMySDMyLjEyQTEuODgsMS44OCwwLDAsMCwzNCwzMC4xMlYxMS44OEExLjg4LDEuODgsMCwwLDAsMzIuMTIsMTBaTTMyLDMw''@;'; put 'put ''SDRWMTJIMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOC41NiwxOS40NWEzLDMsMCwxLDAtMy0zQTMsMywwLDAsMCw4LjU2LDE5LjQ1Wm0wLTQuNkExLjYsMS42LDAsMSwxLDcsMTYuNDUsMS42LDEuNiwwLDAsMSw4LjU2LDE0Ljg1''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuOSwyOGw2LTYsMy4xOCwzLjE4TDE0LjI2LDI4aDJsNy40Ni03LjQ2TDMwLDI2Ljc3di0yTDI0LjIsMTlhLjcxLjcxLDAsMCwwLTEsMGwtNS4xNiw1LjE2TDE0LjM3LDIwLjVhLjcxLjcx''@;'; put 'put ''LDAsMCwwLTEsMEw1LjkyLDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC00IiAvPjxwYXRoIGQ9Ik0zMi4xMiw3VjdhMSwxLDAsMCwwLTEtMWgtMjZhMSwxLDAsMCwwLTEsMWgwVjhoMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzAuMTQsM2gwYTEsMSwwLDAsMC0xLTFoLTIyYTEsMSwwLDAsMC0xLDFo''@;'; put 'put ''MFY0aDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIu''@;'; put 'put ''MTIsMTBIMy44OEExLjg4LDEuODgsMCwwLDAsMiwxMS44OFYzMC4xMkExLjg4LDEuODgsMCwwLDAsMy44OCwzMkgzMi4xMkExLjg4LDEuODgsMCwwLDAsMzQsMzAuMTJWMTEuODhBMS44OCwxLjg4LDAsMCwwLDMyLjEyLDEwWk04LjU2LDEzLjQ1YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDgu''@;'; put 'put ''NTYsMTMuNDVaTTMwLDI4aC0yNGw3LjQ2LTcuNDdhLjcxLjcxLDAsMCwxLDEsMGwzLjY4LDMuNjhMMjMuMjEsMTlhLjcxLjcxLDAsMCwxLDEsMEwzMCwyNC43OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZVJlcGxheUFsbD0oMCxsLmNs''@;'; put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNDYsMjYuMjJhMS40LDEuNCwwLDAsMCwxLS40Mmw1LjU5LTUuNTZhMS40MywxLjQzLDAsMCwwLC40Mi0xLDEuNDYsMS40NiwwLDAsMC0uNDItMWwtNS41OS01LjU2YTEuNDMsMS40MywwLDAsMC0yLjQ0LDFWMjQuNzlhMS40MSwxLjQxLDAsMCwwLC44''@;'; put 'put ''OCwxLjMyQTEuNTQsMS41NCwwLDAsMCwxNy40NiwyNi4yMlptLjE2LTEyLjE2LDUuMTksNS4xNi01LjE5LDUuMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTItMi42NEExLDEsMCwwLDAsMTIuOTQuODhM''@;'; put 'put ''Ny4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgsMCwxLDAsMTguMDYsNVoiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVSZXBsYXlPbmU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LDI3LjI3YTEsMSwwLDAsMCwxLTFWMTRhMSwxLDAsMCwwLTEtMUgxOWEzLjgsMy44LDAsMCwwLTEuMS4yM2wtMiwuNjJhLjkyLjky''@;'; put 'put ''LDAsMCwwLS43Mi44Ni44OC44OCwwLDAsMCwuODguODYsMS40NiwxLjQ2LDAsMCwwLC40My0uMDhMMTgsMTUuMDd2MTEuMkExLDEsMCwwLDAsMTksMjcuMjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTguMDYsNWgtNi43bDIuOTIt''@;'; put 'put ''Mi42NEExLDEsMCwwLDAsMTIuOTQuODhMNy4zMiw2LDEyLjk0LDExYTEsMSwwLDAsMCwuNjcuMjYsMSwxLDAsMCwwLC43NC0uMzMsMSwxLDAsMCwwLS4wNy0xLjQyTDExLjQ2LDdoNi42QTExLjc4LDExLjc4LDAsMSwxLDcuNzEsMjQuNDEsMSwxLDAsMCwwLDYsMjUuMzYsMTMuNzgsMTMuNzgs''@;'; put 'put ''MCwxLDAsMTguMDYsNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVWaWRlb0dhbGxlcnk9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwx''@;'; put 'put ''Ljg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwxLjg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMzIsMzBINFYxMkgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4xNCwzaDBhMSwx''@;'; put 'put ''LDAsMCwwLTEtMWgtMjJhMSwxLDAsMCwwLTEsMWgwVjRoMjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzIuMTIsN1Y3YTEsMSwwLDAsMC0xLTFoLTI2YTEsMSwwLDAsMC0xLDFoMFY4aDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTEyLjgyLDI2Ljc5YTEuNzQsMS43NCwwLDAsMCwuOTMuMjgsMS42OCwxLjY4LDAsMCwwLC42OS0uMTVsOS43Ny00LjM2YTEuNjksMS42OSwwLDAsMCwwLTMuMUwxNC40NCwxNS4xYTEuNywxLjcsMCwwLDAtMi4zOSwxLjU1djguNzJB''@;'; put 'put ''MS43LDEuNywwLDAsMCwxMi44MiwyNi43OVptLjYzLTEwLjE0YS4yOS4yOSwwLDAsMSwuMTQtLjI1LjMuMywwLDAsMSwuMTYsMCwuMjcuMjcsMCwwLDEsLjEyLDBsOS43Nyw0LjM1YS4yOS4yOSwwLDAsMSwuMTguMjguMjguMjgsMCwwLDEtLjE4LjI3bC05Ljc3LDQuMzZhLjI4LjI4LDAsMCwx''@;'; put 'put ''LS4yOCwwLC4zMS4zMSwwLDAsMS0uMTQtLjI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMyLjEyLDEwSDMuODhBMS44OCwxLjg4LDAsMCwwLDIsMTEuODhWMzAuMTJBMS44OCwxLjg4LDAsMCwwLDMuODgsMzJIMzIuMTJBMS44OCwx''@;'; put 'put ''Ljg4LDAsMCwwLDM0LDMwLjEyVjExLjg4QTEuODgsMS44OCwwLDAsMCwzMi4xMiwxMFpNMjQuMTgsMjEuODNsLTkuNzcsNC4zNkExLDEsMCwwLDEsMTMsMjUuMjhWMTYuNTZhMSwxLDAsMCwxLDEuNDEtLjkxTDI0LjE4LDIwQTEsMSwwLDAsMSwyNC4xOCwyMS44M1oiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTMwLjE0LDNoMGExLDEsMCwwLDAtMS0xaC0yMmExLDEsMCwwLDAtMSwxaDBWNGgyNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTMyLjEyLDdWN2ExLDEsMCwwLDAtMS0xaC0y''@;'; put 'put ''NmExLDEsMCwwLDAtMSwxaDBWOGgyOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZU1pY3JvcGhvbmU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDI0YzMuOSwwLDctMy4xLDctN1Y5YzAtMy45LTMuMS03LTctN3MtNywzLjEt''@;'; put 'put ''Nyw3djhDMTEsMjAuOSwxNC4xLDI0LDE4LDI0eiBNMTMsOWMwLTIuOCwyLjItNSw1LTVzNSwyLjIsNSw1djhcblx0XHRjMCwyLjgtMi4yLDUtNSw1cy01LTIuMi01LTVWOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMw''@;'; put 'put ''LDUuNS00LjUsMTAtMTAsMTBTOCwyMi41LDgsMTdINmMwLDYuMyw0LjgsMTEuNCwxMSwxMS45VjMyaC0zYy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDhjMC42LDAsMS0wLjQsMS0xXG5cdFx0cy0wLjQtMS0xLTFoLTN2LTMuMUMyNS4yLDI4LjQsMzAsMjMuMywzMCwxN3oiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOCwyNGMzLjksMCw3LTMuMSw3LTdWOWMwLTMuOS0zLjEtNy03LTdzLTcsMy4xLTcsN3Y4QzExLDIwLjksMTQuMSwyNCwxOCwyNHoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; put 'put ''PHBhdGggZD0iTTMwLDE3aC0yYzAsNS41LTQuNSwxMC0xMCwxMFM4LDIyLjUsOCwxN0g2YzAsNi4zLDQuOCwxMS40LDExLDExLjlWMzJoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtMy4xQzI1LjIsMjguNCwzMCwy''@;'; put 'put ''My4zLDMwLDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlTWljcm9waG9uZU11dGU9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLDE3aC0yYzAsMS44LTAuNSwzLjUtMS40LDVsMS41LDEuNUMyOS4zLDIxLjUsMjkuOSwxOS4z''@;'; put 'put ''LDMwLDE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTE4LDRjMi44LDAsNSwyLjIsNSw1djhjMCwwLjQtMC4xLDAuOC0wLjIsMS4ybDEuNiwxLjZjMC40LTAuOSwwLjYtMS44LDAuNi0yLjhWOWMwLTMuOS0zLjItNy03LjEtNi45XG5c''@;'; put 'put ''dFx0Yy0yLjksMC01LjYsMS45LTYuNSw0LjdMMTMsOC4zQzEzLjUsNS45LDE1LjYsNC4yLDE4LDR6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYsNGw4LjQsOC40VjE3YzAs''@;'; put 'put ''My45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiwwLTEsMC40LTEsMXMwLjQs''@;'; put 'put ''MSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IE0xMy44LDE5LjdDMTMuMywxOC45LDEzLDE4LDEzLDE3di0yLjZsNy4xLDcuMUMxNy45LDIyLjUsMTUuMiwyMS44LDEzLjgsMTkuN3oiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMCwxN2gtMmMwLDEuOC0wLjUsMy41LTEuNCw1bDEuNSwxLjVDMjkuMywyMS41LDI5LjksMTkuMywzMCwxN3oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+PHBhdGggZD0iTTI1LDE3''@;'; put 'put ''VjljMC0zLjktMy4yLTctNy4xLTYuOWMtMi45LDAtNS42LDEuOS02LjUsNC43bDEzLDEzQzI0LjgsMTguOSwyNSwxNy45LDI1LDE3eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJNMjUuMiwyNi42bDYuOSw2LjlsMS40LTEuNEw0LDIuNkwyLjYs''@;'; put 'put ''NGw4LjQsOC40VjE3YzAsMy45LDMuMSw3LDcsN2MxLjMsMCwyLjUtMC4zLDMuNi0xbDIuMiwyLjJDMjIuMSwyNi40LDIwLjEsMjcsMTgsMjdcblx0XHRjLTUuNCwwLjItOS44LTQuMS0xMC05LjRjMC0wLjIsMC0wLjQsMC0wLjZINmMwLjEsNi4yLDQuOCwxMS40LDExLDEydjNoLTNjLTAuNiww''@;'; put 'put ''LTEsMC40LTEsMXMwLjQsMSwxLDFoOGMwLjYsMCwxLTAuNCwxLTFcblx0XHRzLTAuNC0xLTEtMWgtM3YtM0MyMS4yLDI4LjgsMjMuNCwyOCwyNS4yLDI2LjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPicpLGUuTWVkaWFTaGFwZXM9e3BsYXk6ZS5DbHJTaGFw''@;'; put 'put ''ZVBsYXkscGF1c2U6ZS5DbHJTaGFwZVBhdXNlLCJzdGVwLWZvcndhcmQiOmUuQ2xyU2hhcGVTdGVwRm9yd2FyZCxzdG9wOmUuQ2xyU2hhcGVTdG9wLHBvd2VyOmUuQ2xyU2hhcGVQb3dlcixyZXdpbmQ6ZS5DbHJTaGFwZVJld2luZCwiZmFzdC1mb3J3YXJkIjplLkNsclNoYXBlRmFzdEZvcndh''@;'; put 'put ''cmQsY2FtZXJhOmUuQ2xyU2hhcGVDYW1lcmEsInZpZGVvLWNhbWVyYSI6ZS5DbHJTaGFwZVZpZGVvQ2FtZXJhLHNodWZmbGU6ZS5DbHJTaGFwZVNodWZmbGUsInZvbHVtZS11cCI6ZS5DbHJTaGFwZVZvbHVtZVVwLCJ2b2x1bWUtZG93biI6ZS5DbHJTaGFwZVZvbHVtZURvd24sInZvbHVtZS1t''@;'; put 'put ''dXRlIjplLkNsclNoYXBlVm9sdW1lTXV0ZSxoZWFkcGhvbmVzOmUuQ2xyU2hhcGVIZWFkcGhvbmVzLCJmaWxtLXN0cmlwIjplLkNsclNoYXBlRmlsbVN0cmlwLCJtdXNpYy1ub3RlIjplLkNsclNoYXBlTXVzaWNOb3RlLCJpbWFnZS1nYWxsZXJ5IjplLkNsclNoYXBlSW1hZ2VHYWxsZXJ5LCJy''@;'; put 'put ''ZXBsYXktYWxsIjplLkNsclNoYXBlUmVwbGF5QWxsLCJyZXBsYXktb25lIjplLkNsclNoYXBlUmVwbGF5T25lLCJ2aWRlby1nYWxsZXJ5IjplLkNsclNoYXBlVmlkZW9HYWxsZXJ5LG1pY3JvcGhvbmU6ZS5DbHJTaGFwZU1pY3JvcGhvbmUsIm1pY3JvcGhvbmUtbXV0ZSI6ZS5DbHJTaGFwZU1p''@;'; put 'put ''Y3JvcGhvbmVNdXRlfSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5NZWRpYVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvc29jaWFsLXNoYXBlcy50''@;'; put 'put ''cyI6ZnVuY3Rpb24oQSxlLGMpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5Tb2NpYWxTaGFwZXM9ZS5DbHJTaGFwZUhhc2h0YWc9ZS5DbHJTaGFwZUNyb3duPWUuQ2xyU2hhcGVUaHVtYnNEb3duPWUuQ2xyU2hhcGVUaHVt''@;'; put 'put ''YnNVcD1lLkNsclNoYXBlU2FkRmFjZT1lLkNsclNoYXBlTmV1dHJhbEZhY2U9ZS5DbHJTaGFwZUhhcHB5RmFjZT1lLkNsclNoYXBlUGljdHVyZT1lLkNsclNoYXBlQ2hhdEJ1YmJsZT1lLkNsclNoYXBlVGFsa0J1YmJsZXM9ZS5DbHJTaGFwZUhlYXJ0QnJva2VuPWUuQ2xyU2hhcGVIZWFydD1l''@;'; put 'put ''LkNsclNoYXBlSW5ib3g9ZS5DbHJTaGFwZUZsYWc9ZS5DbHJTaGFwZVRhc2tzPWUuQ2xyU2hhcGVFbnZlbG9wZT1lLkNsclNoYXBlQm9va21hcms9ZS5DbHJTaGFwZUhhbGZTdGFyPWUuQ2xyU2hhcGVTdGFyPWUuQ2xyU2hhcGVTaGFyZT12b2lkIDA7dmFyIHI9YygiLi9wcm9qZWN0cy9pY29u''@;'; put 'put ''cy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiKSxhPWMoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIik7Yz1jKCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvY29yZS1zaGFwZXMudHMiKSxlLkNsclNoYXBlU2hhcmU9KDAsYS5jbHJJ''@;'; put 'put ''Y29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYuMjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5''@;'; put 'put ''LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVptMC0yMGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSwyNy41Myw0Wk03LDIxYTMsMywwLDEsMSwzLTNBMywzLDAsMCwxLDcsMjFaTTI3LjUzLDMyYTMsMywwLDEs''@;'; put 'put ''MSwzLTNBMywzLDAsMCwxLDI3LjUzLDMyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNy41MywyNGE1LDUsMCwwLDAtMy42LDEuNTVMMTEuNzQsMTkuNDVhNC40Nyw0LjQ3LDAsMCwwLDAtMi44bDEyLjIxLTYu''@;'; put 'put ''MjFhNS4xMiw1LjEyLDAsMSwwLTEuMDctMS43TDEwLjc5LDE0Ljg5YTUsNSwwLDEsMCwwLDYuMzNsMTIuMDYsNi4wN0E0LjkzLDQuOTMsMCwwLDAsMjIuNTQsMjlhNSw1LDAsMSwwLDUtNVoiLz4nKSxlLkNsclNoYXBlU3Rhcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI3LjE5LDM0YTIuMjIsMi4yMiwwLDAsMS0xLjI0LS4zOGwtNy40Ni01YS4yMi4yMiwwLDAsMC0uMjUsMGwtNy40Niw1QTIuMjIsMi4yMiwwLDAsMSw3LjQsMzEuMjFsMi40NS04LjY0YS4yMy4yMywwLDAsMC0uMDgtLjI0TDIuNzEs''@;'; put 'put ''MTYuNzhhMi4yMiwyLjIyLDAsMCwxLDEuMjktNGw5LS4zNGEuMjMuMjMsMCwwLDAsLjItLjE1bDMuMS04LjQzYTIuMjIsMi4yMiwwLDAsMSw0LjE3LDBsMy4xLDguNDNhLjIzLjIzLDAsMCwwLC4yLjE1bDksLjM0YTIuMjIsMi4yMiwwLDAsMSwxLjI5LDRMMjcsMjIuMzNhLjIyLjIyLDAsMCww''@;'; put 'put ''LS4wOC4yNGwyLjQ1LDguNjRBMi4yMywyLjIzLDAsMCwxLDI3LjE5LDM0Wm0tOC44Mi03LjQyQTIuMjEsMi4yMSwwLDAsMSwxOS42LDI3bDcuNDYsNWEuMjIuMjIsMCwwLDAsLjM0LS4yNWwtMi40NS04LjY0YTIuMjEsMi4yMSwwLDAsMSwuNzctMi4zNWw3LjA2LTUuNTVhLjIyLjIyLDAsMCww''@;'; put 'put ''LS4xMy0uNGwtOS0uMzRhMi4yMiwyLjIyLDAsMCwxLTItMS40NmwtMy4xLTguNDNhLjIyLjIyLDAsMCwwLS40MiwwTDE1LjA2LDEzYTIuMjIsMi4yMiwwLDAsMS0yLDEuNDZsLTksLjM0YS4yMi4yMiwwLDAsMC0uMTMuNEwxMSwyMC43NmEyLjIyLDIuMjIsMCwwLDEsLjc3LDIuMzVMOS4zMywz''@;'; put 'put ''MS43NWEuMjEuMjEsMCwwLDAsLjA4LjI0LjIuMiwwLDAsMCwuMjYsMGw3LjQ2LTVBMi4yMiwyLjIyLDAsMCwxLDE4LjM2LDI2LjYyWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zNCwxNi43OGEyLjIyLDIuMjIs''@;'; put 'put ''MCwwLDAtMS4yOS00bC05LS4zNGEuMjMuMjMsMCwwLDEtLjItLjE1TDIwLjQsMy44OWEyLjIyLDIuMjIsMCwwLDAtNC4xNywwbC0zLjEsOC40M2EuMjMuMjMsMCwwLDEtLjIuMTVsLTksLjM0YTIuMjIsMi4yMiwwLDAsMC0xLjI5LDRsNy4wNiw1LjU1YS4yMy4yMywwLDAsMSwuMDguMjRMNy4z''@;'; put 'put ''NSwzMS4yMWEyLjIyLDIuMjIsMCwwLDAsMy4zOCwyLjQ1bDcuNDYtNWEuMjIuMjIsMCwwLDEsLjI1LDBsNy40Niw1YTIuMiwyLjIsMCwwLDAsMi41NSwwLDIuMiwyLjIsMCwwLDAsLjgzLTIuNGwtMi40NS04LjY0YS4yMi4yMiwwLDAsMSwuMDgtLjI0WiIvPicpLGUuQ2xyU2hhcGVIYWxmU3Rh''@;'; put 'put ''cj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTM0LDE2Ljc4YTIuMjIsMi4yMiwwLDAsMC0xLjI5LTRsLTktLjM0YS4yMy4yMywwLDAsMS0uMi0uMTVMMjAuNCwzLjg5YTIuMjIsMi4yMiwwLDAsMC00LjE3LDBs''@;'; put 'put ''LTMuMSw4LjQzYS4yMy4yMywwLDAsMS0uMi4xNWwtOSwuMzRhMi4yMiwyLjIyLDAsMCwwLTEuMjksNGw3LjA2LDUuNTVhLjIyLjIyLDAsMCwxLC4wOC4yNEw3LjM1LDMxLjIxQTIuMjMsMi4yMywwLDAsMCw5LjQ5LDM0YTIuMjIsMi4yMiwwLDAsMCwxLjI0LS4zOGw3LjQ2LTVhLjIyLjIyLDAs''@;'; put 'put ''MCwxLC4yNSwwbDcuNDYsNWEyLjIyLDIuMjIsMCwwLDAsMy4zOC0yLjQ1bC0yLjQ1LTguNjRhLjIzLjIzLDAsMCwxLC4wOC0uMjRaTTE4LjMzLDI2LjYyaDBhMi4yMSwyLjIxLDAsMCwwLTEuMjQuMzhMOS42MiwzMmEuMjIuMjIsMCwwLDEtLjM0LS4yNWwyLjQ1LTguNjRBMi4yMSwyLjIxLDAs''@;'; put 'put ''MCwwLDExLDIwLjc2TDMuOSwxNS4yMWEuMjIuMjIsMCwwLDEsLjEzLS40bDktLjM0QTIuMjIsMi4yMiwwLDAsMCwxNSwxM2wzLjEtOC40M2EuMi4yLDAsMCwxLC4yMS0uMTVoMFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; put 'put ''IiBkPSJNMzQsMTYuNzhhMi4yMiwyLjIyLDAsMCwwLTEuMjktNGwtOS0uMzRhLjIzLjIzLDAsMCwxLS4yLS4xNUwyMC40LDMuODlhMi4yMiwyLjIyLDAsMCwwLTQuMTcsMGwtMy4xLDguNDNhLjIzLjIzLDAsMCwxLS4yLjE1bC05LC4zNGEyLjIyLDIuMjIsMCwwLDAtMS4yOSw0bDcuMDYsNS41''@;'; put 'put ''NWEuMjMuMjMsMCwwLDEsLjA4LjI0TDcuMzUsMzEuMjFhMi4yMiwyLjIyLDAsMCwwLDMuMzgsMi40NWw3LjQ2LTVhLjIyLjIyLDAsMCwxLC4yNSwwbDcuNDYsNWEyLjIsMi4yLDAsMCwwLDIuNTUsMCwyLjIsMi4yLDAsMCwwLC44My0yLjRsLTIuNDUtOC42NGEuMjIuMjIsMCwwLDEsLjA4LS4y''@;'; put 'put ''NFpNMjQuOSwyMy4xMWwyLjQ1LDguNjRBLjIyLjIyLDAsMCwxLDI3LDMybC03LjQ2LTVhMi4yMSwyLjIxLDAsMCwwLTEuMjQtLjM4aDBWNC40NGgwYS4yLjIsMCwwLDEsLjIxLjE1TDIxLjYyLDEzYTIuMjIsMi4yMiwwLDAsMCwyLDEuNDZsOSwuMzRhLjIyLjIyLDAsMCwxLC4xMy40bC03LjA2''@;'; put 'put ''LDUuNTVBMi4yMSwyLjIxLDAsMCwwLDI0LjksMjMuMTFaIi8+JyksZS5DbHJTaGFwZUJvb2ttYXJrPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjYsMzRhMiwyLDAsMCwxLTEuNDEtLjU4TDE4LDI2LjgybC02''@;'; put 'put ''LjU0LDYuNTJBMiwyLDAsMCwxLDgsMzEuOTNWNGEyLDIsMCwwLDEsMi0ySDI2YTIsMiwwLDAsMSwyLDJWMzJhMiwyLDAsMCwxLTIsMlptMC0yaDBWNEgxMFYzMS45M0wxOCwyNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; put 'put ''IiBkPSJNMjYsMkgxMEEyLDIsMCwwLDAsOCw0VjMxLjkzYTIsMiwwLDAsMCwzLjQyLDEuNDFsNi41NC02LjUyLDYuNjMsNi42QTIsMiwwLDAsMCwyOCwzMlY0QTIsMiwwLDAsMCwyNiwyWiIvPicpLGUuQ2xyU2hhcGVFbnZlbG9wZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk0zMC40NiwyOEg1LjY2bDctNy4yNC0xLjQ0LTEuMzlMNCwyNi44NFY5LjUyTDE2LjQzLDIxLjg5''@;'; put 'put ''YTIsMiwwLDAsMCwyLjgyLDBMMzIsOS4yMXYxNy41bC03LjM2LTcuMzYtMS40MSwxLjQxWk01LjMxLDhIMzAuMzhMMTcuODQsMjAuNDdaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBk''@;'; put 'put ''PSJNMzIsMTMuMDhWMjYuNzFsLTcuMzYtNy4zNi0xLjQxLDEuNDFMMzAuNDYsMjhINS42Nmw3LTcuMjQtMS40NC0xLjM5TDQsMjYuODRWOS41MkwxNi40MywyMS44OWEyLDIsMCwwLDAsMi44MiwwbDguODMtOC43OGE3LjQ0LDcuNDQsMCwwLDEtMi0uODVsLTguMjYsOC4yMUw1LjMxLDhIMjIu''@;'; put 'put ''ODFhNy40OSw3LjQ5LDAsMCwxLS4zMS0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTIuMkE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMDhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjUuODYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTMzLjY4LDE1LjI2''@;'; put 'put ''SDMyVjI2LjcxbC03LjM2LTcuMzYtMS40MSwxLjQxTDMwLjQ2LDI4SDUuNjZsNy03LjI0LTEuNDQtMS4zOUw0LDI2Ljg0VjkuNTJMMTYuNDMsMjEuODlhMiwyLDAsMCwwLDIuODIsMGw2LjY2LTYuNjNIMjMuMDhsLTUuMjQsNS4yMUw1LjMxLDhIMjAuMDZsMS4xNS0ySDRBMiwyLDAsMCwwLDIs''@;'; put 'put ''OFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFh''@;'; put 'put ''MS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMi4zMyw2''@;'; put 'put ''YTIsMiwwLDAsMC0uNDEsMGgtMjhhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMzMuODEsNy4zOSwxOS4yNSwyMS44OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41''@;'; put 'put ''YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzMuODEsNy4zOVpNNS4zLDI4SDMuOTFWMjYuNTdsNy4yNy03LjIxLDEuNDEsMS40MVptMjYuNjEsMEgzMC41MWwtNy4yOS03LjIzLDEuNDEtMS40MSw3LjI3LDcuMjFaIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yNiwxMi4zNEE3LjQ5LDcuNDksMCwwLDEsMjIuNSw2SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTMwLDEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI5bC04LjcxLDguNjhhMiwyLDAsMCwxLTIuODIsMEwyLDcuNWEyLDIsMCwwLDAtLjA3LjVWMjhhMiwyLDAsMCwwLDIsMmgy''@;'; put 'put ''OGEyLDIsMCwwLDAsMi0yVjEyLjM5QTcuNDUsNy40NSwwLDAsMSwzMCwxMy41Wk01LjMsMjhIMy45MVYyNi41N2w3LjI3LTcuMjEsMS40MSwxLjQxWm0yNi42MSwwSDMwLjUxbC03LjI5LTcuMjMsMS40MS0xLjQxLDcuMjcsNy4yMVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIg''@;'; put 'put ''ZD0iTTMzLjY4LDE1LjRIMjUuNzdsLTYuNTIsNi40OWEyLDIsMCwwLDEtMi44MiwwTDIsNy41YTIsMiwwLDAsMC0uMDcuNVYyOGEyLDIsMCwwLDAsMiwyaDI4YTIsMiwwLDAsMCwyLTJWMTUuMzhaTTUuMywyOEgzLjkxVjI2LjU3bDcuMjctNy4yMSwxLjQxLDEuNDFabTI2LjYxLDBIMzAuNTFs''@;'; put 'put ''LTcuMjktNy4yMywxLjQxLTEuNDEsNy4yNyw3LjIxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0yMi45NCwxNS40aC0uN0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2''@;'; put 'put ''SDMuOTJhMiwyLDAsMCwwLS41My4wOEwxNy44NCwyMC40N1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgs''@;'; put 'put ''MCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+JyksZS5DbHJTaGFwZVRhc2tzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xIiBkPSJNMjkuMjksMzRINi43MUExLjcsMS43LDAsMCwxLDUsMzIuMzFWNi42OUExLjc1LDEuNzUsMCwwLDEsNyw1SDlWN0g3VjMySDI5VjdIMjdWNWgyLjI1QTEuNywxLjcsMCwwLDEsMzEsNi42OVYzMi4zMUExLjcsMS43LDAsMCwxLDI5LjI5LDM0WiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTYuNjYsMjUuNzYsMTEuMywyMC40QTEsMSwwLDAsMSwxMi43MiwxOWwzLjk0LDMuOTQsOC42NC04LjY0YTEsMSwwLDAsMSwxLjQxLDEuNDFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0yNiwxMUgxMFY3LjMzQTIuMzQsMi4zNCwwLDAsMSwxMi4zMyw1aDEuNzlhNCw0LDAsMCwxLDcuNzUsMGgxLjc5QTIuMzQsMi4zNCwwLDAsMSwyNiw3LjMzWk0xMiw5SDI0VjcuMzNBLjMzLjMzLDAsMCwwLDIz''@;'; put 'put ''LjY3LDdIMjBWNmEyLDIsMCwwLDAtNCwwVjdIMTIuMzNhLjMzLjMzLDAsMCwwLS4zMy4zM1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE5LDkuODksMTkuNTYsOUgxMlY3''@;'; put 'put ''LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aC43MWwxLjE2LTJhNCw0LDAsMCwwLTcuNzQsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1YxMWg4LjY0QTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjQuMTksMTUuNGwtNy41Myw3LjUzTDEyLjcyLDE5QTEsMSwwLDAsMCwxMS4zLDIwLjRsNS4zNiw1LjM2TDI2LjcxLDE1LjcxYTEsMSwwLDAsMCwuMi0uMzFaIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0yOSwxNS40VjMySDdWN0g5VjVIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY5VjMyLjMxQTEuNywxLjcsMCwwLDAsNi43MSwzNEgyOS4yOUExLjcsMS43''@;'; put 'put ''LDAsMCwwLDMxLDMyLjMxVjE1LjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4y''@;'; put 'put ''MywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0x''@;'; put 'put ''Mi43MiwxOUExLDEsMCwwLDAsMTEuMywyMC40bDUuMzYsNS4zNkwyNi43MSwxNS43MWExLDEsMCwwLDAtMS40MS0xLjQxbC04LjY0LDguNjRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2Vk''@;'; put 'put ''IiBkPSJNMjMuMTMsOUgxMlY3LjMzQS4zMy4zMywwLDAsMSwxMi4zMyw3SDE2VjZhMiwyLDAsMCwxLDQsMFY3aDIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMWgtLjdhNCw0LDAsMCwwLTcuNzUsMEgxMi4zM0EyLjM0LDIuMzQsMCwwLDAsMTAsNy4zM1Yx''@;'; put 'put ''MUgyNC40MkE3LjUsNy41LDAsMCwxLDIzLjEzLDlaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAsMTMuNWE3LjUyLDcuNTIsMCwwLDEtMS0uMDdWMzJIN1Y3SDlWNUg3QTEu''@;'; put 'put ''NzUsMS43NSwwLDAsMCw1LDYuNjlWMzIuMzFBMS43LDEuNywwLDAsMCw2LjcxLDM0SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMzFWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjkuMjksNC45NWgtNy4yYTQuMzEsNC4zMSwwLDAsMC04''@;'; put 'put ''LjE3LDBIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWNi42NEExLjcsMS43LDAsMCwwLDI5LjI5LDQuOTVabS0xOCwzYTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAs''@;'; put 'put ''MSw0LjYzLDBWN2gzLjQ0YTEsMSwwLDAsMSwxLDFWOS44SDExLjI1Wm0xNC41Miw5LjIzLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDcuMTQtNy4xNGExLjQsMS40LDAsMSwxLDIsMloiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMjUuODgsMTUuNGExLjM4LDEuMzgsMCwwLDEtLjExLDEuODFsLTkuMTIsOS4xMi01LjI0LTUuMjRhMS40LDEuNCwwLDAsMSwyLTJsMy4yNiwzLjI2LDctN0gyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTks''@;'; put 'put ''OS44OWwwLS4wOUgxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2guNDJMMjIsNC43NmE0LjMsNC4zLDAsMCwwLTguMDkuMTlIN0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEu''@;'; put 'put ''NywxLjcsMCwwLDAsMzEsMzIuMjZWMTUuNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIu''@;'; put 'put ''MjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0zMCwx''@;'; put 'put ''My41YTcuNDksNy40OSwwLDAsMS02LjQ2LTMuN0gxMS4yNVY4YTEsMSwwLDAsMSwxLTFoMy40NFY2LjMyYTIuMzEsMi4zMSwwLDAsMSw0LjYzLDBWN2gyLjI2YTcuNTMsNy41MywwLDAsMS0uMDctMSw3LjUzLDcuNTMsMCwwLDEsLjA4LTEuMDVoLS41YTQuMzEsNC4zMSwwLDAsMC04LjE3LDBI''@;'; put 'put ''N0ExLjc1LDEuNzUsMCwwLDAsNSw2LjY0VjMyLjI2YTEuNywxLjcsMCwwLDAsMS43MSwxLjY5SDI5LjI5QTEuNywxLjcsMCwwLDAsMzEsMzIuMjZWMTMuNDNBNy41Miw3LjUyLDAsMCwxLDMwLDEzLjVabS00LjIzLDMuNzEtOS4xMiw5LjEyLTUuMjQtNS4yNGExLjQsMS40LDAsMCwxLDItMmwz''@;'; put 'put ''LjI2LDMuMjYsNy4xNC03LjE0YTEuNCwxLjQsMCwxLDEsMiwyWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNo''@;'; put 'put ''YXBlRmxhZz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTYsMzRhMSwxLDAsMCwxLTEtMVYzQTEsMSwwLDAsMSw3LDNWMzNBMSwxLDAsMCwxLDYsMzRaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0zMC41NSwzLjgyYTEsMSwwLDAsMC0xLDAsMTQuOSwxNC45LDAsMCwxLTYuMTMsMS4xNiwxMy4xMSwxMy4xMSwwLDAsMS01LjE4LTEuNDksMTIuNzgsMTIuNzgsMCwwLDAtNS0xLjQ1QTEwLjg2LDEwLjg2LDAsMCwwLDks''@;'; put 'put ''Mi44NVY1LjA4QTguOCw4LjgsMCwwLDEsMTMuMjUsNGExMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjZBMTguNzUsMTguNzUsMCwwLDAsMjksNi4xMlYxOC45NWExNi4xNiwxNi4xNiwwLDAsMS01LjU4LjkzLDEzLjExLDEzLjExLDAsMCwxLTUuMTgt''@;'; put 'put ''MS40OSwxMi43OCwxMi43OCwwLDAsMC01LTEuNDVBMTAuODYsMTAuODYsMCwwLDAsOSwxNy43OVYyMGE4LjgsOC44LDAsMCwxLDQuMjUtMS4wOCwxMS4yMiwxMS4yMiwwLDAsMSw0LjIsMS4yOCwxNC44NCwxNC44NCwwLDAsMCw2LDEuNjYsMTYuNzksMTYuNzksMCwwLDAsNy0xLjM3LDEsMSww''@;'; put 'put ''LDAsMCwuNTUtLjg5VjQuNjdBMSwxLDAsMCwwLDMwLjU1LDMuODJaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTUuOTIsMmExLDEsMCwwLDAtMSwxVjMzYTEsMSwwLDAsMCwyLDBWM0ExLDEsMCwwLDAsNS45Miwy''@;'; put 'put ''WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zMC41LDMuODJhMSwxLDAsMCwwLTEsMCwxNC45LDE0LjksMCwwLDEtNi4xMywxLjE2LDEzLjExLDEzLjExLDAsMCwxLTUuMTgtMS40OUExMi43OCwxMi43OCwwLDAs''@;'; put 'put ''MCwxMy4yLDIsMTAuODYsMTAuODYsMCwwLDAsOSwyLjg1VjIwYTguOCw4LjgsMCwwLDEsNC4yNS0xLjA4LDExLjIyLDExLjIyLDAsMCwxLDQuMiwxLjI4LDE0Ljg0LDE0Ljg0LDAsMCwwLDYsMS42NiwxNi43OSwxNi43OSwwLDAsMCw3LTEuMzcsMSwxLDAsMCwwLC41NS0uODlWNC42N0ExLDEs''@;'; put 'put ''MCwwLDAsMzAuNSwzLjgyWiIvPicpLGUuQ2xyU2hhcGVJbmJveD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMjMsMTMuMDlhMSwxLDAsMCwwLDAsMS40MUwxOCwyMC4zbDUuNzktNS43OWExLDEsMCwwLDAtMS40MS0xLjQxTDE5LDE2LjQ3VjJBMSwxLDAsMCwwLDE4LDFhMSwxLDAs''@;'; put 'put ''MCwwLTEsMXYxNC41bC0zLjM4LTMuMzhBMSwxLDAsMCwwLDEyLjIzLDEzLjA5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41LDVIMjJWN2g3VjIxSDIzLjYxbC0uMS44OWE1LjQyLDUuNDIsMCwwLDEtMTAu''@;'; put 'put ''NzcsMGwtLjEtLjg5SDdWN2g3VjVINi41QTEuNSwxLjUsMCwwLDAsNSw2LjV2MjVBMS41LDEuNSwwLDAsMCw2LjUsMzNoMjNBMS41LDEuNSwwLDAsMCwzMSwzMS41VjYuNUExLjUsMS41LDAsMCwwLDI5LjUsNVpNMjksMzFIN1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi4yMywxMy4wOWExLDEsMCwwLDAsMCwxLjQxTDE4LDIwLjNsNS43OS01Ljc5YTEsMSwwLDAsMC0xLjQxLTEuNDFMMTksMTYuNDdWMkExLDEsMCwwLDAsMTgsMWExLDEs''@;'; put 'put ''MCwwLDAtMSwxdjE0LjVsLTMuMzgtMy4zOEExLDEsMCwwLDAsMTIuMjMsMTMuMDlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNTIsNy41MiwwLDAsMS0xLS4wN1Yy''@;'; put 'put ''MUgyMy42MWwtLjEuODlhNS40Miw1LjQyLDAsMCwxLTEwLjc3LDBsLS4xLS44OUg3VjdoN1Y1SDYuNUExLjUsMS41LDAsMCwwLDUsNi41djI1QTEuNSwxLjUsMCwwLDAsNi41LDMzaDIzQTEuNSwxLjUsMCwwLDAsMzEsMzEuNVYxMy40M0E3LjUyLDcuNTIsMCwwLDEsMzAsMTMuNVpNMjksMzFI''@;'; put 'put ''N1YyM2gzLjkxYTcuNDIsNy40MiwwLDAsMCwxNC40NCwwSDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGUuQ2xyU2hhcGVIZWFydD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzIuNDNhMSwxLDAsMCwxLS42MS0uMjFDMTEuODMsMjcuOSw4LDI0LjE4LDUuMzIsMjAuNTEsMS45LDE1LjgyLDEu''@;'; put 'put ''MTIsMTEuNDksMyw3LjY0YzEuMzQtMi43NSw1LjE5LTUsOS42OS0zLjY5QTkuODcsOS44NywwLDAsMSwxOCw3LjcyYTkuODcsOS44NywwLDAsMSw1LjMxLTMuNzdjNC40OS0xLjI5LDguMzUuOTQsOS42OSwzLjY5LDEuODgsMy44NSwxLjEsOC4xOC0yLjMyLDEyLjg3QzI4LDI0LjE4LDI0LjE3''@;'; put 'put ''LDI3LjksMTguNjEsMzIuMjJBMSwxLDAsMCwxLDE4LDMyLjQzWk0xMC4xMyw1LjU4QTUuOSw1LjksMCwwLDAsNC44LDguNTFjLTEuNTUsMy4xOC0uODUsNi43MiwyLjE0LDEwLjgxQTU3LjEzLDU3LjEzLDAsMCwwLDE4LDMwLjE2LDU3LjEzLDU3LjEzLDAsMCwwLDI5LjA2LDE5LjMzYzMtNC4x''@;'; put 'put ''LDMuNjktNy42NCwyLjE0LTEwLjgxLTEtMi00LTMuNTktNy4zNC0yLjY1YTgsOCwwLDAsMC00Ljk0LDQuMiwxLDEsMCwwLDEtMS44NSwwLDcuOTMsNy45MywwLDAsMC00Ljk0LTQuMkE3LjMxLDcuMzEsMCwwLDAsMTAuMTMsNS41OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsNy42NGMtMS4zNC0yLjc1LTUuMi01LTkuNjktMy42OUE5Ljg3LDkuODcsMCwwLDAsMTgsNy43MmE5Ljg3LDkuODcsMCwwLDAtNS4zMS0zLjc3QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDgu''@;'; put 'put ''MTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMsNy42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4n''@;'; put 'put ''KSxlLkNsclNoYXBlSGVhcnRCcm9rZW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjA5LTUtOS42OS0zLjY5YTkuODcsOS44NywwLDAsMC02LDQuODQsMTguOSwxOC45LDAsMCwwLTIuMjMsNS4zM2w1LjI4LDIuMzQtNC42LDQuMzcsMy40OSw0LjEs''@;'; put 'put ''MS41Mi0xLjNMMTguNTQsMjFsNS40LTUuMTNMMTcuNTgsMTNBMTYuMjMsMTYuMjMsMCwwLDEsMTkuNzUsOC45YTcuNjgsNy42OCwwLDAsMSw0LjExLTNjMy4zNC0uODksNi4zNC42LDcuMzQsMi42NSwxLjU1LDMuMTguODUsNi43Mi0yLjE0LDEwLjgxQTU3LjE2LDU3LjE2LDAsMCwxLDE4LDMw''@;'; put 'put ''LjE2LDU3LjE2LDU3LjE2LDAsMCwxLDYuOTQsMTkuMzNjLTMtNC4xLTMuNjktNy42NC0yLjE0LTEwLjgxYTUuOSw1LjksMCwwLDEsNS4zMy0yLjkzLDcuMzEsNy4zMSwwLDAsMSwyLC4yOSw3LjcsNy43LDAsMCwxLDMuMzgsMmwuMTUtLjNhMTAuNjYsMTAuNjYsMCwwLDEsMS0xLjQxLDkuNjQs''@;'; put 'put ''OS42NCwwLDAsMC0zLjk0LTIuMjJDOC4yLDIuNjYsNC4zNCw0Ljg5LDMsNy42NGMtMS44OCwzLjg1LTEuMSw4LjE4LDIuMzIsMTIuODdDOCwyNC4xOCwxMS44MywyNy45LDE3LjM5LDMyLjIyYTEsMSwwLDAsMCwxLjIzLDBjNS41NS00LjMxLDkuMzktOCwxMi4wNy0xMS43MUMzNC4xLDE1Ljgy''@;'; put 'put ''LDM0Ljg4LDExLjQ5LDMzLDcuNjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLDcuNjRjLTEuMzQtMi43NS01LjItNS05LjY5LTMuNjlBMTEuNTUsMTEuNTUsMCwwLDAsMTguMTksNy41YTE2Ljg5LDE2Ljg5''@;'; put 'put ''LDAsMCwwLTIuNDgsNC41NkwyMi4yNywxNSwxNi43LDIwLjI2LDE5LDIzbC0xLjU3LDEuMzQtMy42LTQuMjIsNC43NC00LjUxLTUuNDQtMi40MWExOS40OSwxOS40OSwwLDAsMSwyLjMtNS41LDE0Ljc3LDE0Ljc3LDAsMCwxLDEuMDYtMS41NGwuMDYsMGE5LjY2LDkuNjYsMCwwLDAtMy44OS0y''@;'; put 'put ''LjE4QzguMTksMi42Niw0LjM0LDQuODksMyw3LjY0Yy0xLjg4LDMuODUtMS4xLDguMTgsMi4zMiwxMi44N0M4LDI0LjE4LDExLjgzLDI3LjksMTcuMzksMzIuMjJhMSwxLDAsMCwwLDEuMjMsMGM1LjU1LTQuMzEsOS4zOS04LDEyLjA3LTExLjcxQzM0LjEsMTUuODIsMzQuODgsMTEuNDksMzMs''@;'; put 'put ''Ny42NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlVGFsa0J1YmJsZXM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRhMSwxLDAsMCwxLDEtMUg4''@;'; put 'put ''Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0zMSw0SDE0YTMsMywwLDAsMC0zLDNWMTlhMywzLDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWN0EzLDMsMCwwLDAsMzEsNFpNMzIsMjIuOTQsMjguNSwyMC4yMWExLDEsMCwwLDAtLjYxLS4yMUgxNGExLDEsMCwwLDEt''@;'; put 'put ''MS0xVjdhMSwxLDAsMCwxLDEtMUgzMUExLjEsMS4xLDAsMCwxLDMyLDcuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLDI2YTEsMSwwLDAsMS0xLDFIOGMtLjIyLDAtLjQzLjItLjYxLjMzTDQsMzBWMTRh''@;'; put 'put ''MSwxLDAsMCwxLDEtMUg4Ljg2VjExSDVhMywzLDAsMCwwLTMsM1YzMmExLDEsMCwwLDAsLjU2Ljg5LDEsMSwwLDAsMCwxLS4xTDguNzEsMjlIMjIuMTVBMi43NywyLjc3LDAsMCwwLDI1LDI2LjEzVjI1SDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2OS43MkwyOC41LDIwLjIxYTEsMSwwLDAsMC0uNjEtLjIxSDE0YTEsMSwwLDAsMS0xLTFWN2ExLDEsMCwwLDEsMS0xSDIyLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDE0YTMsMywwLDAsMC0zLDNWMTlhMywz''@;'; put 'put ''LDAsMCwwLDMsM0gyNy41NWw0Ljc4LDMuNzFhMSwxLDAsMCwwLDEsLjExLDEsMSwwLDAsMCwuNTctLjlWMTIuMzdBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTgsMTlWMTFINWEzLDMsMCwwLDAtMywzVjMyYTEsMSwwLDAsMCwu''@;'; put 'put ''NTYuODksMSwxLDAsMCwwLDEtLjFMOC43MSwyOUgyMi4xNUEyLjc3LDIuNzcsMCwwLDAsMjUsMjYuMTNWMjVIMTRBNiw2LDAsMCwxLDgsMTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsNEgxNGEzLDMsMCwwLDAt''@;'; put 'put ''MywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjdBMywzLDAsMCwwLDMxLDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOCwxOVYxMUg1YTMs''@;'; put 'put ''MywwLDAsMC0zLDNWMzJhMSwxLDAsMCwwLC41Ni44OSwxLDEsMCwwLDAsMS0uMUw4LjcxLDI5SDIyLjE1QTIuNzcsMi43NywwLDAsMCwyNSwyNi4xM1YyNUgxNEE2LDYsMCwwLDEsOCwxOVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjQ4LDcuNDgsMCwwLDEsMjIuNzgsNEgxNGEzLDMsMCwwLDAtMywzVjE5YTMsMywwLDAsMCwzLDNIMjcuNTVsNC43OCwzLjcxYTEsMSwwLDAsMCwxLC4xMSwxLDEsMCwwLDAsLjU3LS45VjEyLjM3QTcuNDUsNy40NSwwLDAsMSwzMCwx''@;'; put 'put ''My41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''YmFkZ2UiLz4nKSxlLkNsclNoYXBlQ2hhdEJ1YmJsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMi41Yy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEz''@;'; put 'put ''LDAsMCwwLDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI4LjI5LDI0LjYxYTEsMSwwLDAsMC0uMzIuNzNsMCw1LjM0LTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMUExNiwxNiwwLDAsMSwxOCwyOC41Yy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUu''@;'; put 'put ''MzgsMTQsMTJBMTEuMDgsMTEuMDgsMCwwLDEsMjguMjksMjQuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxNS41SDExYTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLjc1LDIwLjVoLTcuNWExLDEsMCwwLDAsMCwyaDcuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBkPSJNMTEuMjgsMTIuNUgyNC43MmExLDEsMCwwLDAsMC0ySDExLjI4YTEsMSwwLDAsMCwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4zOCwxMi42OWE3LjQzLDcuNDMsMCwwLDEtMS44''@;'; put 'put ''OS42NkExMC4zNSwxMC4zNSwwLDAsMSwzMiwxNi41YTExLjA4LDExLjA4LDAsMCwxLTMuNzEsOC4xMSwxLDEsMCwwLDAtLjMyLjczbDAsNS4zNC00LjM4LTIuNzlhMSwxLDAsMCwwLS44My0uMTFBMTYsMTYsMCwwLDEsMTgsMjguNWMtNy43MiwwLTE0LTUuMzgtMTQtMTJzNi4yOC0xMiwxNC0x''@;'; put 'put ''MmExNiwxNiwwLDAsMSw0LjU1LjY2QTcuNDQsNy40NCwwLDAsMSwyMywzLjIyYTE4LDE4LDAsMCwwLTUtLjcyYy04LjgyLDAtMTYsNi4yOC0xNiwxNHM3LjE4LDE0LDE2LDE0YTE4LDE4LDAsMCwwLDQuODgtLjY4bDUuNTMsMy41MmExLDEsMCwwLDAsMS41NC0uODRsMC02LjczYTEzLDEzLDAs''@;'; put 'put ''MCwwLDQtOS4yN0ExMi4zMiwxMi4zMiwwLDAsMCwzMy4zOCwxMi42OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMSwxNS41YTEsMSwwLDAsMCwwLDJIMjVhMSwxLDAsMCwwLDAt''@;'; put 'put ''MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC4yNSwyMC41YTEsMSwwLDAsMCwwLDJoNy41YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuMjgsMTEuNWExLDEsMCwwLDAsMSwxSDI0LjcyYTEsMSwwLDAsMCwuODMtLjQ3QTcuNTMsNy41MywwLDAsMSwyNCwxMC41SDExLjI4QTEsMSwwLDAsMCwxMC4yOCwxMS41WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIuNWMtOC44MiwwLTE2LDYuMjgtMTYsMTRzNy4xOCwxNCwxNiwxNGExOCwxOCwwLDAsMCw0Ljg4LS42OGw1LjUzLDMuNTJhMSwxLDAsMCwwLDEuNTQtLjg0bDAtNi43M2ExMywxMywwLDAsMCw0LTkuMjdDMzQsOC43OCwyNi44MiwyLjUs''@;'; put 'put ''MTgsMi41Wm04LDE0YTEsMSwwLDAsMS0xLDFIMTFhMSwxLDAsMCwxLDAtMkgyNUExLDEsMCwwLDEsMjYsMTYuNVptLTMuMjUsNWExLDEsMCwwLDEtMSwxaC03LjVhMSwxLDAsMCwxLDAtMmg3LjVBMSwxLDAsMCwxLDIyLjc1LDIxLjVabS0xMi40Ny0xMGExLDEsMCwwLDEsMS0xSDI0LjcyYTEs''@;'; put 'put ''MSwwLDAsMSwwLDJIMTEuMjhBMSwxLDAsMCwxLDEwLjI4LDExLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjI1YTcuNDYsNy40NiwwLDAsMS00LjM1LTEuNCwxLDEsMCwwLDEtLjkzLjY1SDExLjI4YTEs''@;'; put 'put ''MSwwLDAsMSwwLTJIMjQuMkE3LjQ2LDcuNDYsMCwwLDEsMjMsMy4yYTE4LDE4LDAsMCwwLTUtLjdjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTgsMTgsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjU0LS44NGwwLTYuNzNhMTMsMTMsMCwwLDAsNC05''@;'; put 'put ''LjI3LDEyLjM0LDEyLjM0LDAsMCwwLS42OC00QTcuNDYsNy40NiwwLDAsMSwzMCwxMy4yNVpNMjEuNzUsMjIuNWgtNy41YTEsMSwwLDAsMSwwLTJoNy41YTEsMSwwLDAsMSwwLDJabTMuMjUtNUgxMWExLDEsMCwwLDEsMC0ySDI1YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktc29saWQt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNS43NSIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPicpLGUuQ2xyU2hh''@;'; put 'put ''cGVQaWN0dXJlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNNCwzMFY2SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik04LjkyLDE0YTMsMywwLDEsMC0zLTNBMywzLDAsMCwwLDguOTIsMTRabTAtNC42QTEuNiwxLjYsMCwxLDEsNy4zMywxMSwxLjYsMS42LDAsMCwxLDguOTIsOS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0y''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNzgsMTUuMzdsLTUuNCw1LjQtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFBMSwxLDAsMCwwLDIyLjc4''@;'; put 'put ''LDE1LjM3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45MywxMWEzLDMsMCwxLDAtMywzQTMsMywwLDAsMCwxMS45MywxMVptLTQuNiwwYTEuNiwxLjYsMCwxLDEsMS42LDEuNkExLjYsMS42LDAsMCwxLDcu''@;'; put 'put ''MzMsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4zOCwyMC43N2wtNC00YTEsMSwwLDAsMC0xLjQxLDBMNS45MiwyMi45djIuODNsNi43OS02Ljc5TDE2LDIyLjE4bC0zLjc1''@;'; put 'put ''LDMuNzVIMTVsOC40NS04LjQ1TDMwLDI0VjIxLjE4bC01LjgxLTUuODFhMSwxLDAsMCwwLTEuNDEsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDEzLjIyVjMwSDRWNkgyMi41''@;'; put 'put ''YTcuNDksNy40OSwwLDAsMSwuMjgtMkg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw0SDRBMiwyLDAsMCwwLDIsNlYzMGEy''@;'; put 'put ''LDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMzIsNFpNOC45Miw4YTMsMywwLDEsMS0zLDNBMywzLDAsMCwxLDguOTIsOFpNNiwyN1YyMi45bDYtNi4wOGExLDEsMCwwLDEsMS40MSwwTDE2LDE5LjM1LDguMzIsMjdabTI0LDBIMTEuMTVsNi4yMy02LjIzLDUuNC01''@;'; put 'put ''LjRhMSwxLDAsMCwxLDEuNDEsMEwzMCwyMS4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41QTcuNDgsNy40OCwwLDAsMSwyMi43OCw0SDRBMiwyLDAsMCwwLDIsNlYzMGEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWMTIuMzRBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTguOTIsOGEzLDMsMCwxLDEtMywzQTMsMywwLDAsMSw4LjkyLDhaTTYsMjdWMjIuOWw2LTYuMDhhMSwxLDAsMCwxLDEuNDEsMEwxNiwxOS4zNSw4LjMyLDI3Wm0yNCwwSDExLjE1bDYuMjMtNi4yMyw1LjQtNS40YTEs''@;'; put 'put ''MSwwLDAsMSwxLjQxLDBMMzAsMjEuMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPicpLGUuQ2xyU2hhcGVIYXBweUZhY2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMC44OSIgY3k9IjEzLjg5IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUu''@;'; put 'put ''MDUiIGN5PSIxMy44OSIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC4xMywyOC4yMWE4LjY3LDguNjcsMCwwLDAsOC4yNi02SDkuODdBOC42Nyw4LjY3LDAsMCwwLDE4LjEzLDI4LjIxWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTguODksMTMuODlhMiwyLDAsMSwxLDIsMkEyLDIsMCwwLDEsOC44OSwxMy44OVptOS4yNCwxNC4zMmE4LjY3''@;'; put 'put ''LDguNjcsMCwwLDEtOC4yNi02SDI2LjM4QTguNjcsOC42NywwLDAsMSwxOC4xMywyOC4yMVptNi45My0xMi4zMmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwyNS4wNSwxNS44OVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLkNsclNoYXBlTmV1dHJhbEZh''@;'; put 'put ''Y2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjA1LDIyLjA2aC0xMmExLDEsMCwwLDAsMCwyaDEyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAs''@;'; put 'put ''MzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEExNCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyNS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIxMS4xNiIgY3k9IjE0LjI4IiByPSIxLjgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgs''@;'; put 'put ''MkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm03LjA1LDIxLjA2YTEsMSwwLDAsMS0xLDFoLTEyYTEsMSwwLDAsMSwwLTJoMTJBMSwxLDAsMCwxLDI1LjA1LDIzLjA2Wk0yNywxNC4yOGExLjgsMS44LDAsMSwxLTEuOC0xLjhBMS44LDEuOCwwLDAsMSwyNywxNC4yOFptLTE1''@;'; put 'put ''LjgsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjE2LDE2LjA4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVTYWRGYWNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0''@;'; put 'put ''LDE4LDE2LDE2LDAsMCwwLDE4LDJabTAsMzBBMTQsMTQsMCwxLDEsMzIsMTgsMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMjUuMTYiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTEuNDEiIGN5PSIxNC4yOCIgcj0iMS44IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjE2''@;'; put 'put ''LDIwYTksOSwwLDAsMC03LjMzLDMuNzgsMSwxLDAsMSwwLDEuNjMsMS4xNiw3LDcsMCwwLDEsMTEuMzEtLjEzLDEsMSwwLDAsMCwxLjYtMS4yQTksOSwwLDAsMCwxOC4xNiwyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMTgsMkExNiwxNiwwLDEsMCwzNCwxOCwxNiwxNiwwLDAsMCwxOCwyWm05LDEyLjI4YTEuOCwxLjgsMCwxLDEtMS44LTEuOEExLjgsMS44LDAsMCwxLDI3LDE0LjI4Wm0tMTUuNTUsMS44YTEuOCwxLjgsMCwxLDEsMS44LTEuOEExLjgsMS44LDAsMCwxLDExLjQxLDE2LjA4Wm0xNCw3''@;'; put 'put ''LjUzYTEsMSwwLDAsMS0xLjYsMS4yLDcsNywwLDAsMC0xMS4zMS4xMywxLDEsMCwxLDEtMS42My0xLjE2LDksOSwwLDAsMSwxNC41NC0uMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+JyksZS5DbHJTaGFwZVRodW1ic1VwPSgwLGEuY2xySWNvblNWRykoJzxw''@;'; put 'put ''YXRoIGQ9Ik0yNCwyNmMtMi45MiwxLjgyLTcuMyw0LTkuMzcsNGgtNmExNi42OCwxNi42OCwwLDAsMS0zLjMxLTYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsNCwxNmg5VjZhMi4wNSwyLjA1LDAsMCwxLDEuMjYtMS42OWMuNzcsMiwyLjYyLDYuNTcsNC4yMyw4LjcyQTExLjM5LDExLjM5LDAsMCww''@;'; put 'put ''LDI0LDE2LjkxVjE0Ljc4YTkuMTMsOS4xMywwLDAsMS0zLjkxLTNjLTEuODgtMi41MS00LjI5LTkuMTEtNC4zMS05LjE3QTEsMSwwLDAsMCwxNC41OSwyQzEzLjI1LDIuMzgsMTEsMy42LDExLDZ2OEgzYTEsMSwwLDAsMC0xLDEsMjksMjksMCwwLDAsMS40LDkuNjJjMS44OSw1LjQsNC4xLDcu''@;'; put 'put ''MTQsNC4yLDcuMjJhMSwxLDAsMCwwLC42MS4yMWg2LjQyYzIuNDMsMCw2LjU1LTIsOS4zNy0zLjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMzFIMjdhMSwxLDAsMCwxLTEtMVYxNGExLDEsMCwwLDEs''@;'; put 'put ''MS0xaDdabS02LTJoNFYxNUgyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjYzLDEyLjEyQzE3LjUxLDkuMjgsMTQuODgsMiwxNC44OCwyUzEyLDIuODMsMTIsNS4yNVYxNUgyLjIzYTI5LjQ2LDI5LjQ2''@;'; put 'put ''LDAsMCwwLDEuNDQsOS43NEM1LjYxLDMwLjI3LDcuOCwzMiw3LjgsMzJoNi44NkMxNi45LDMyLDIxLDMwLjA2LDI0LDI4LjMxVjE1LjUxQTEwLjg0LDEwLjg0LDAsMCwxLDE5LjYzLDEyLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik0yNywxM2ExLDEsMCwwLDAtMSwxVjMwYTEsMSwwLDAsMCwxLDFoN1YxM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVRodW1ic0Rvd249KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEyLDEwYzIuOTItMS44Miw3''@;'; put 'put ''LjMtNCw5LjM3LTRoNmExNi42OCwxNi42OCwwLDAsMSwzLjMxLDYuMDhBMjYuNzEsMjYuNzEsMCwwLDEsMzIsMjBIMjNWMzBhMi4wNSwyLjA1LDAsMCwxLTEuMjYsMS42OWMtLjc3LTItMi42Mi02LjU3LTQuMjMtOC43MkExMS4zOSwxMS4zOSwwLDAsMCwxMiwxOS4wOXYyLjEzYTkuMTMsOS4x''@;'; put 'put ''MywwLDAsMSwzLjkxLDNjMS44OCwyLjUxLDQuMjksOS4xMSw0LjMxLDkuMTdhMSwxLDAsMCwwLDEuMTkuNjNDMjIuNzUsMzMuNjIsMjUsMzIuNCwyNSwzMFYyMmg4YTEsMSwwLDAsMCwxLTEsMjksMjksMCwwLDAtMS40LTkuNjJjLTEuODktNS40LTQuMS03LjE0LTQuMi03LjIyQTEsMSwwLDAs''@;'; put 'put ''MCwyNy43OSw0SDIxLjM3QzE4Ljk0LDQsMTQuODMsNiwxMiw3LjYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMiw1SDlhMSwxLDAsMCwxLDEsMVYyMmExLDEsMCwwLDEtMSwxSDJaTTgsN0g0VjIxSDhaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi4zNywyMy44NGMyLjEyLDIuODQsNC43NiwxMC4wNyw0Ljc2LDEwLjA3UzI0LDMzLjEzLDI0LDMwLjcxVjIxaDkuNzdhMjkuNDYsMjkuNDYsMCwwLDAtMS40NC05Ljc0''@;'; put 'put ''QzMwLjM5LDUuNjgsMjguMiw0LDI4LjIsNEgyMS4zNUMxOS4xLDQsMTUsNS45LDEyLDcuNjV2MTIuOEExMC44NCwxMC44NCwwLDAsMSwxNi4zNywyMy44NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOSwyM2ExLDEs''@;'; put 'put ''MCwwLDAsMS0xVjZBMSwxLDAsMCwwLDksNUgyVjIzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQ3Jvd249KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik00LDEzLjMzQTEuMzksMS4zOSwwLDEsMCwyLjYsMTQuNzIsMS4zOSwx''@;'; put 'put ''LjM5LDAsMCwwLDQsMTMuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuODEsMTUuODRhMjAuMzUsMjAuMzUsMCwwLDAtNC41OCwxLjQzLDIyLjcsMjIuNywwLDAsMC0zLjQ4LDIuMUExNy42OSwxNy42OSwwLDAsMSwyMiwx''@;'; put 'put ''Ni41N2E0Ny42NSw0Ny42NSwwLDAsMS0yLjgtNy42OSwxLDEsMCwwLDAtMS0uNzQsMSwxLDAsMCwwLTEsLjc0LDQ2LjcxLDQ2LjcxLDAsMCwxLTIuOCw3LjY5LDE3LDE3LDAsMCwxLTEuNzYsMi44LDIyLjcsMjIuNywwLDAsMC0zLjQ4LTIuMSwyMC42NiwyMC42NiwwLDAsMC00LjU4LTEuNDMs''@;'; put 'put ''MSwxLDAsMCwwLTEsLjM5LDEsMSwwLDAsMC0uMDksMS4wNUE1MC4xMyw1MC4xMywwLDAsMSw3LjgyLDMxLjE3YTEsMSwwLDAsMCwxLC44M0gyNy42MmExLDEsMCwwLDAsMS0uODMsNTAuMTUsNTAuMTUsMCwwLDEsNC4yNi0xMy44OSwxLDEsMCwwLDAtLjA5LTEuMDVBMSwxLDAsMCwwLDMxLjgx''@;'; put 'put ''LDE1Ljg0Wk0yNi43OSwzMEg5LjY0YTU1LjY2LDU1LjY2LDAsMCwwLTMuNC0xMS43MSwxNS43NSwxNS43NSwwLDAsMSwyLjA5Ljc4LDIwLDIwLDAsMCwxLDMuODUsMi40NSwxLDEsMCwwLDAsMS4zOS0uMDksMTkuMjgsMTkuMjgsMCwwLDAsMi42Ny00LDQzLjQ2LDQzLjQ2LDAsMCwwLDItNC44''@;'; put 'put ''OSw0MS43NCw0MS43NCwwLDAsMCwyLDQuODksMTkuOTIsMTkuOTIsMCwwLDAsMi42Niw0LDEsMSwwLDAsMCwxLjQuMDksMTkuMjEsMTkuMjEsMCwwLDEsMy44NS0yLjQ1LDE0Ljc3LDE0Ljc3LDAsMCwxLDIuMDktLjc4QTU1LjA3LDU1LjA3LDAsMCwwLDI2Ljc5LDMwWiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE4LjIyLDYuMzlBMS4zOSwxLjM5''@;'; put 'put ''LDAsMSwwLDE2Ljg0LDUsMS4zOSwxLjM5LDAsMCwwLDE4LjIyLDYuMzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMTguMjMsMjYuMzRhMS4xMSwxLjExLDAsMSwwLDEuMSwxLjFBMS4xLDEuMSwwLDAsMCwxOC4yMywyNi4zNFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik0xMi41OCwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4xLDEuMUExLjEsMS4xLDAsMCwwLDEyLjU4LDI2LjM0WiIvPjxwYXRoIGQ9Ik0yMy44OSwyNi4zNGExLjExLDEuMTEsMCwxLDAsMS4x''@;'; put 'put ''LDEuMUExLjEsMS4xLDAsMCwwLDIzLjg5LDI2LjM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cblxuICA8cGF0aCBkPSJNMi42LDExLjkzQTEuNCwxLjQsMCwxLDAsNCwxMy4zMywxLjQsMS40LDAsMCwwLDIuNiwxMS45M1oiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgPGVsbGlwc2UgY3g9IjMzLjgzIiBjeT0iMTMuMzMiIHJ4PSIxLjM5IiByeT0iMS4zOSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTguMjIsNi4zOUExLjM5LDEuMzksMCwxLDAsMTYu''@;'; put 'put ''ODQsNSwxLjM5LDEuMzksMCwwLDAsMTguMjIsNi4zOVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjYzLDE2LjFBMTguNjEsMTguNjEsMCwwLDAsMjgsMTcuMzRhMjEuNTcsMjEuNTcsMCwwLDAtNCwyLjQ5LDE5LjIsMTkuMiwwLDAs''@;'; put 'put ''MS0yLjI2LTMuNDksNDguOTIsNDguOTIsMCwwLDEtMi41Mi02LjU4LDEsMSwwLDAsMC0xLS43MWgwYTEsMSwwLDAsMC0xLC43MSw0OC40Miw0OC40MiwwLDAsMS0yLjUyLDYuNTgsMTguNjksMTguNjksMCwwLDEtMi4yNiwzLjQ4LDIyLjgxLDIyLjgxLDAsMCwwLTQtMi40OEExOC44MywxOC44''@;'; put 'put ''MywwLDAsMCw0LjksMTYuMWExLDEsMCwwLDAtMSwuMzMsMSwxLDAsMCwwLS4xMywxLjA3LDU1LjksNTUuOSwwLDAsMSw0LDEzLjUsMSwxLDAsMCwwLDEsLjgzaDE5YTEsMSwwLDAsMCwxLS44Myw1NS45LDU1LjksMCwwLDEsNC0xMy41LDEsMSwwLDAsMC0uMTMtMS4wN0ExLDEsMCwwLDAsMzEu''@;'; put 'put ''NjMsMTYuMVpNMTEuMDgsMjguNTVhMS4xMSwxLjExLDAsMSwxLDEuMS0xLjExQTEuMTEsMS4xMSwwLDAsMSwxMS4wOCwyOC41NVptNy4xNSwwYTEuMTEsMS4xMSwwLDAsMSwwLTIuMjEsMS4xMSwxLjExLDAsMCwxLDAsMi4yMVptNy4xNiwwYTEuMTEsMS4xMSwwLDEsMSwxLjEtMS4xMUExLjEx''@;'; put 'put ''LDEuMTEsMCwwLDEsMjUuMzksMjguNTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00Ii8+XG4gICcpLGUuQ2xyU2hhcGVIYXNodGFnPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzIsMTJIMjUuMzRsMS41NS03Ljc0YTEsMSwwLDAsMC0yLS4zOUwyMy4z''@;'; put 'put ''LDEySDE1LjExbDEuNTUtNy43NGExLDEsMCwwLDAtMi0uMzlMMTMuMDcsMTJINmExLDEsMCwwLDAsMCwyaDYuNjdsLTEuNiw4SDRhMSwxLDAsMCwwLDAsMmg2LjY2TDkuMTEsMzEuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjY4LjY4LDAsMCwwLC4yLDAsMSwxLDAsMCwwLDEtLjhMMTIuNywyNGg4''@;'; put 'put ''LjE5bC0xLjU1LDcuNzRhMSwxLDAsMCwwLC43OSwxLjE3LjYyLjYyLDAsMCwwLC4xOSwwLDEsMSwwLDAsMCwxLS44TDIyLjkzLDI0SDMwYTEsMSwwLDAsMCwwLTJIMjMuMzNsMS42MS04SDMyYTEsMSwwLDAsMCwwLTJaTTIxLjI5LDIySDEzLjFsMS42MS04SDIyLjlaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuXG4gIDxwYXRoIGQ9Ik0zMS44NywxMEgyNi4zMmwxLTQuODNBMSwxLDAsMCwwLDI2LjM1LDRoLTJhMSwxLDAsMCwwLTEsLjc4TDIyLjMzLDEwaC01LjRsMS00LjgzQTEsMSwwLDAsMCwxNyw0SDE1YTEsMSwwLDAsMC0xLC43OEwxMywx''@;'; put 'put ''MEg3YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJoNS41NUwxMC41LDIyaC02YTEsMSwwLDAsMC0xLC44bC0uNDEsMmExLDEsMCwwLDAsMSwxLjJIOS42OGwtMSw0LjgzYTEsMSwwLDAsMCwxLDEuMTdoMmExLDEsMCwwLDAsLjk1LS43OEwxMy42NywyNmg1LjRsLTEsNC44''@;'; put 'put ''M0ExLDEsMCwwLDAsMTksMzJoMmExLDEsMCwwLDAsMS0uNzhMMjMuMDUsMjZoNmExLDEsMCwwLDAsMS0uOGwuNC0yYTEsMSwwLDAsMC0xLTEuMkgyMy44N2wxLjYzLThoNmExLDEsMCwwLDAsMS0uOGwuNDEtMkExLDEsMCwwLDAsMzEuODcsMTBabS0xMiwxMmgtNS40bDEuNjQtOGg1LjRaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICcpLGUuU29jaWFsU2hhcGVzPXtjcm93bjplLkNsclNoYXBlQ3Jvd24sc2hhcmU6ZS5DbHJTaGFwZVNoYXJlLHN0YXI6ZS5DbHJTaGFwZVN0YXIsImhhbGYtc3RhciI6ZS5DbHJTaGFwZUhhbGZTdGFyLGJvb2ttYXJr''@;'; put 'put ''OmUuQ2xyU2hhcGVCb29rbWFyayxlbnZlbG9wZTplLkNsclNoYXBlRW52ZWxvcGUsY2FsZW5kYXI6Yy5DbHJTaGFwZUNhbGVuZGFyLGV2ZW50OmMuQ2xyU2hhcGVFdmVudCx0YXNrczplLkNsclNoYXBlVGFza3MsZmxhZzplLkNsclNoYXBlRmxhZyxpbmJveDplLkNsclNoYXBlSW5ib3gsaGFz''@;'; put 'put ''aHRhZzplLkNsclNoYXBlSGFzaHRhZyxoZWFydDplLkNsclNoYXBlSGVhcnQsImhlYXJ0LWJyb2tlbiI6ZS5DbHJTaGFwZUhlYXJ0QnJva2VuLCJ0YWxrLWJ1YmJsZXMiOmUuQ2xyU2hhcGVUYWxrQnViYmxlcywiY2hhdC1idWJibGUiOmUuQ2xyU2hhcGVDaGF0QnViYmxlLHBpY3R1cmU6ZS5D''@;'; put 'put ''bHJTaGFwZVBpY3R1cmUsImhhcHB5LWZhY2UiOmUuQ2xyU2hhcGVIYXBweUZhY2UsIm5ldXRyYWwtZmFjZSI6ZS5DbHJTaGFwZU5ldXRyYWxGYWNlLCJzYWQtZmFjZSI6ZS5DbHJTaGFwZVNhZEZhY2UsInRodW1icy11cCI6ZS5DbHJTaGFwZVRodW1ic1VwLCJ0aHVtYnMtZG93biI6ZS5DbHJT''@;'; put 'put ''aGFwZVRodW1ic0Rvd259LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlNvY2lhbFNoYXBlcywiZmF2b3JpdGUiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuc3RhcikpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlNvY2lhbFNoYXBlcywiZW1haWwiLCgwLHIuZGVzY3Jp''@;'; put 'put ''cHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuZW52ZWxvcGUpKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5Tb2NpYWxTaGFwZXMsImRhdGUiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5Tb2NpYWxTaGFwZXMuY2FsZW5kYXIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93''@;'; put 'put ''Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNsYXJpdHlJY29ucy5hZGQoZS5Tb2NpYWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvc2hhcGVzL3RlY2hub2xvZ3ktc2hhcGVzLnRzIjpmdW5jdGlvbihBLGUsYSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZp''@;'; put 'put ''bmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLkNsclNoYXBlVk1XQXBwPWUuQ2xyU2hhcGVWTT1lLkNsclNoYXBlUm91dGVyPWUuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPWUuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9ZS5DbHJTaGFwZU5ldHdvcmtHbG9iZT1lLkNsclNo''@;'; put 'put ''YXBlVGFibGV0PWUuQ2xyU2hhcGVNb2JpbGU9ZS5DbHJTaGFwZUJhdHRlcnk9ZS5DbHJTaGFwZUFwcGxpY2F0aW9uPWUuQ2xyU2hhcGVDb2RlPWUuQ2xyU2hhcGVUZXJtaW5hbD1lLkNsclNoYXBlRGlzcGxheT1lLkNsclNoYXBlQ29tcHV0ZXI9ZS5DbHJTaGFwZUZsb3BweT1lLkNsclNoYXBl''@;'; put 'put ''UGx1Z2luPWUuQ2xyU2hhcGVEb3dubG9hZENsb3VkPWUuQ2xyU2hhcGVVcGxvYWRDbG91ZD1lLkNsclNoYXBlRXhwb3J0PWUuQ2xyU2hhcGVJbXBvcnQ9ZS5DbHJTaGFwZVNoaWVsZFg9ZS5DbHJTaGFwZVNoaWVsZD1lLkNsclNoYXBlU2hpZWxkQ2hlY2s9ZS5DbHJTaGFwZVJlc291cmNlUG9v''@;'; put 'put ''bD1lLkNsclNoYXBlRGF0YUNsdXN0ZXI9ZS5DbHJTaGFwZU1lbW9yeT1lLkNsclNoYXBlQ1BVPWUuQ2xyU2hhcGVCdWlsZGluZz1lLkNsclNoYXBlQXBwbGljYXRpb25zPWUuQ2xyU2hhcGVDbHVzdGVyPWUuQ2xyU2hhcGVTdG9yYWdlPWUuQ2xyU2hhcGVIb3N0PWUuQ2xyU2hhcGVEYXNoYm9h''@;'; put 'put ''cmQ9ZS5DbHJTaGFwZU1vdXNlPWUuQ2xyU2hhcGVLZXlib2FyZD1lLkNsclNoYXBlRGV2aWNlcz1lLkNsclNoYXBlQmFja3VwPWUuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlPWUuQ2xyU2hhcGVIYXJkRGlzaz1lLkNsclNoYXBlUmFja1NlcnZlcj1lLkNsclNoYXBlV2lmaT1lLkNsclNoYXBlQnVu''@;'; put 'put ''ZGxlPWUuQ2xyU2hhcGVCbG9ja3NHcm91cD1lLkNsclNoYXBlQmxvY2s9ZS5DbHJTaGFwZUxheWVycz1lLkNsclNoYXBlVW5pbnN0YWxsPWUuQ2xyU2hhcGVJbnN0YWxsPWUuQ2xyU2hhcGVOb1dpZmk9ZS5DbHJTaGFwZVBob25lSGFuZHNldD1lLkNsclNoYXBlUnVsZXJQZW5jaWw9dm9pZCAw''@;'; put 'put ''LGUuVGVjaG5vbG9neVNoYXBlcz1lLkNsclNoYXBlRmlsZVNoYXJlMj1lLkNsclNoYXBlQ2lDZD1lLkNsclNoYXBlQW5pbWF0aW9uPWUuQ2xyU2hhcGVUYXBlRHJpdmU9ZS5DbHJTaGFwZU1lZGlhQ2hhbmdlcj1lLkNsckNvbnRyb2xMdW49ZS5DbHJTaGFwZVBvZD1lLkNsclNoYXBlTm9kZT1l''@;'; put 'put ''LkNsclNoYXBlTmFtZXNwYWNlPWUuQ2xyU2hhcGVOb2Rlcz1lLkNsclNoYXBlTm9kZUdyb3VwPWUuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj1lLkNsclNoYXBlSG9zdEdyb3VwPWUuQ2xyU2hhcGVTcXVpZD1lLkNsclNoYXBlQ2FwYWNpdG9yPWUuQ2xyU2hhcGVSZXNpc3Rvcj1lLkNsclNoYXBl''@;'; put 'put ''SW5kdWN0b3I9ZS5DbHJTaGFwZVJhZGFyPWUuQ2xyU2hhcGVVc2I9ZS5DbHJTaGFwZVFyQ29kZT1lLkNsclNoYXBlRmlsZVNoYXJlPWUuQ2xyU2hhcGVDb250YWluZXJWb2x1bWU9ZS5DbHJTaGFwZUNvbnRhaW5lcj1lLkNsclNoYXBlQ2REdmQ9ZS5DbHJTaGFwZUJhckNvZGU9ZS5DbHJTaGFw''@;'; put 'put ''ZUF0b209ZS5DbHJTaGFwZUFzc2lnblVzZXI9ZS5DbHJTaGFwZVByb2Nlc3NPblZNPWUuQ2xyU2hhcGVCbHVldG9vdGhPZmY9ZS5DbHJTaGFwZUJsdWV0b290aD1lLkNsclNoYXBlU1NEPWUuQ2xyU2hhcGVOVk1lPWUuQ2xyU2hhcGVIYXJkRHJpdmVEaXNrcz1lLkNsclNoYXBlSGFyZERyaXZl''@;'; put 'put ''PWUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPWUuQ2xyU2hhcGVGbGFzaz1lLkNsclNoYXBlSGVsaXg9ZS5DbHJTaGFwZURlcGxveT1lLkNsclNoYXBlQ2xvdWRUcmFmZmljPWUuQ2xyU2hhcGVDbG91ZFNjYWxlPWUuQ2xyU2hhcGVDbG91ZE5ldHdvcms9ZS5DbHJTaGFwZVVubGluaz1lLkNsclNo''@;'; put 'put ''YXBlTGluaz1lLkNsclNoYXBlRGlzY29ubmVjdD1lLkNsclNoYXBlQ29ubmVjdD1lLkNsclNoYXBlVW5hcmNoaXZlPWUuQ2xyU2hhcGVBcmNoaXZlPWUuQ2xyU2hhcGVDZXJ0aWZpY2F0ZT12b2lkIDA7dmFyIHI9YSgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25m''@;'; put 'put ''aWcudHMiKTthPWEoIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9yLnRzIiksZS5DbHJTaGFwZVJ1bGVyUGVuY2lsPSgwLGEuY2xySWNvblNWRykoJzxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBwb2ludHM9Ijkg''@;'; put 'put ''MTcuNDEgOSAyNyAxOC41OSAyNyAxNi41OSAyNSAxMSAyNSAxMSAxOS40MSA5IDE3LjQxIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTM0Ljg3LDMyLjI5LDMyLDI5LjM4VjMySDRWMjcuODVINnYtMS42SDRWMTku''@;'; put 'put ''Nkg2VjE4SDRWMTEuNkg2VjEwSDRWNC40MUwxOS45NCwyMC4yNlYxNy40NEwzLjcxLDEuMjlBMSwxLDAsMCwwLDIsMlYzM2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0zIiBkPSJNMjQsMzBoNGEyLDIsMCwwLDAsMi0yVjguN0wyNy43LDQuNDdhMiwyLDAsMCwwLTEuNzYtMWgwYTIsMiwwLDAsMC0xLjc2LDEuMDhMMjIsOC43MlYyOEEyLDIsMCwwLDAsMjQsMzBaTTI0LDkuMmwxLjk0LTMuNzdMMjgsOS4yMVYyNEgyNFptMCwxNi40M2g0djIuNDRI''@;'; put 'put ''MjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzQuODcsMzIuMjEsMzAsMjcuMzdWOC43NUwyNy43LDQuNTJhMiwyLDAsMCwwLTMuNTQsMEwyMiw4Ljc2VjE5LjQxTDMuNzEsMS4yMUExLDEsMCwwLDAsMiwxLjkyVjEw''@;'; put 'put ''SDQuMTd2MS42SDJWMThINC4xN3YxLjZIMnY2LjY1SDQuMTd2MS42SDJ2NS4wN2ExLDEsMCwwLDAsMSwxSDM0LjE2YTEsMSwwLDAsMCwuNzEtMS43MVpNMTAsMjZWMTYuOTRMMTkuMDcsMjZabTE4LDIuMTFIMjRWMjUuNjhoNFptMC00SDI0VjkuMjVsMS45NC0zLjc3TDI4LDkuMjZaIi8+XG4n''@;'; put 'put ''KSxlLkNsclNoYXBlUGhvbmVIYW5kc2V0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMjcuNzMsMzUuNDRhNC43Miw0LjcyLDAsMCwxLTEtLjExLDMzLjkxLDMzLjkxLDAsMCwxLTE2LjYyLTguNzUsMzIuNzEs''@;'; put 'put ''MzIuNzEsMCwwLDEtOS0xNi4yNUE0LjU4LDQuNTgsMCwwLDEsMi40Niw2LjA1bDQtMy44NUEyLDIsMCwwLDEsOCwxLjY2YTIsMiwwLDAsMSwxLjQ1Ljg3bDUsNy4zOWExLjYsMS42LDAsMCwxLS4xMSwxLjlsLTIuNTEsM2ExOC45NCwxOC45NCwwLDAsMCw0LjE3LDUuODloMGExOS4yNiwxOS4y''@;'; put 'put ''NiwwLDAsMCw2LjA3LDQuMDlsMy4xMS0yLjQ3YTEuNjQsMS42NCwwLDAsMSwxLjg2LS4xMmw3LjU1LDQuODhBMiwyLDAsMCwxLDM1LDMwLjJsLTMuOSwzLjg2QTQuNzQsNC43NCwwLDAsMSwyNy43MywzNS40NFpNNy44NCwzLjY0bC00LDMuODVhMi41NCwyLjU0LDAsMCwwLS43NSwyLjQsMzAu''@;'; put 'put ''NywzMC43LDAsMCwwLDguNDEsMTUuMjYsMzEuOSwzMS45LDAsMCwwLDE1LjY0LDguMjMsMi43NSwyLjc1LDAsMCwwLDIuNS0uNzRsMy45LTMuODYtNy4yOS00LjcxLTMuMzQsMi42NmExLDEsMCwwLDEtLjkyLjE3LDIwLjA2LDIwLjA2LDAsMCwxLTcuMzYtNC43NWgwYTE5LjQ5LDE5LjQ5LDAs''@;'; put 'put ''MCwxLTQuODctNy4yQTEsMSwwLDAsMSwxMCwxNGwyLjctMy4yM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4yMiwyMC42NGEyMC4zNywyMC4zNywwLDAsMCw3LjQsNC43OWwzLjc3LTNhLjY3LjY3LDAsMCwxLC43''@;'; put 'put ''NiwwbDcsNC41MWEyLDIsMCwwLDEsLjMzLDMuMThsLTMuMjgsMy4yNGE0LDQsMCwwLDEtMy42MywxLjA3LDM1LjA5LDM1LjA5LDAsMCwxLTE3LjE1LTlBMzMuNzksMzMuNzksMCwwLDEsMS4xNSw4LjZhMy43OCwzLjc4LDAsMCwxLDEuMS0zLjU1bDMuNC0zLjI4YTIsMiwwLDAsMSwzLjEyLjMy''@;'; put 'put ''TDEzLjQzLDlhLjYzLjYzLDAsMCwxLDAsLjc1bC0zLjA3LDMuNjlBMTkuNzUsMTkuNzUsMCwwLDAsMTUuMjIsMjAuNjRaIi8+XG4nKSxlLkNsclNoYXBlTm9XaWZpPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJN''@;'; put 'put ''MTgsMjQuNDJhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMjQuNDJabTAsNmEyLDIsMCwxLDEsMi0yQTIsMiwwLDAsMSwxOCwzMC40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMjYuMjEsMjEuODVhMSwx''@;'; put 'put ''LDAsMCwwLS4yMy0xLjQsMTMuNTYsMTMuNTYsMCwwLDAtNS0yLjIzbDMuODcsMy44N0ExLDEsMCwwLDAsMjYuMjEsMjEuODVaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDEwLjcyYTIwLjg4LDIwLjg4''@;'; put 'put ''LDAsMCwwLTQuMTYuNDNsMS43NCwxLjc0YTE5LDE5LDAsMCwxLDIuNDItLjE3QTE4Ljc2LDE4Ljc2LDAsMCwxLDI4LjY0LDE2YTEsMSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMzLjU1LDguMkEyOC4xMSwyOC4xMSwwLDAsMCw4LjExLDUuMzZMOS42OSw2LjkzQTI2LDI2LDAsMCwxLDMyLjQ1LDkuODdhMSwxLDAsMCwwLDEuMS0xLjY3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0xLjg0LDQuNzUsNC4yNyw3LjE4Yy0uNjIuMzQtMS4yMy43LTEuODMsMS4xQTEsMSwwLDEsMCwzLjU2LDkuOTRDNC4yNiw5LjQ3LDUsOSw1Ljc0LDguNjVsMy44NywzLjg3QTIwLjU5LDIwLjU5LDAsMCwwLDYuMjMsMTQuNCwxLDEsMCwwLDAsNy4zNiwx''@;'; put 'put ''NmExOC44MiwxOC44MiwwLDAsMSwzLjc3LTJsNC4xNiw0LjE2QTEzLjUxLDEzLjUxLDAsMCwwLDEwLDIwLjU1YTEsMSwwLDAsMCwxLjE4LDEuNjFBMTEuNTIsMTEuNTIsMCwwLDEsMTcsMjBsMTAuOCwxMC44LDEuNDEtMS40MS0yNi0yNloiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgY3g9IjE4IiBjeT0iMjkuNTQiIHI9IjMiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0yOS4xOCwxNy43MWwuMTEtLjE3YTEuNTEsMS41MSwwLDAsMC0uNDctMi4x''@;'; put 'put ''QTIwLjU3LDIwLjU3LDAsMCwwLDE4LDEyLjM3Yy0uNTYsMC0xLjExLDAtMS42NS4wN2wzLjIxLDMuMjFhMTcuNDEsMTcuNDEsMCwwLDEsNy42LDIuNTJBMS40OSwxLjQ5LDAsMCwwLDI5LjE4LDE3LjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMyIgZD0iTTMyLjc2LDkuMzhBMjcuOSwyNy45LDAsMCwwLDEwLjE4LDYuMjdMMTIuODEsOC45QTI0LjY4LDI0LjY4LDAsMCwxLDMxLjEsMTIuMTJhMS40OSwxLjQ5LDAsMCwwLDItLjQ2bC4xMS0uMTdBMS41MSwxLjUxLDAsMCwwLDMyLjc2LDkuMzhaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiBkPSJNMyw0Ljc1bDMuMSwzLjFBMjcuMjgsMjcuMjgsMCwwLDAsMy4xOCw5LjQyYTEuNTEsMS41MSwwLDAsMC0uNDgsMi4xMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDI0LjY5LDI0LjY5LDAsMCwx''@;'; put 'put ''LDMuNjctMS45bDMuMTQsMy4xNGEyMC42MywyMC42MywwLDAsMC00LjUzLDIuMDksMS41MSwxLjUxLDAsMCwwLS40NiwyLjFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NkExNy40NiwxNy40NiwwLDAsMSwxNC4yNSwxNmwzLjYsMy42YTEzLjM5LDEzLjM5LDAsMCwwLTYuNzksMS45Mywx''@;'; put 'put ''LjUsMS41LDAsMCwwLS40NiwyLjA5bC4xLjE2YTEuNTIsMS41MiwwLDAsMCwyLjA2LjQ0LDEwLjIsMTAuMiwwLDAsMSw5LS43TDI5LDMwLjc1bDEuNDEtMS40MS0yNi0yNloiLz5cbicpLGUuQ2xyU2hhcGVJbnN0YWxsPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCwwLDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMw''@;'; put 'put ''LjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEwLjMsMTguODdsNyw2Ljg5YTEsMSwwLDAsMCwxLjQsMGw3LTYuODlhMSwxLDAsMCwwLTEuNC0xLjQzTDE5LDIyLjY1VjRhMSwxLDAsMCwwLTIsMFYyMi42''@;'; put 'put ''NWwtNS4zLTUuMjFhMSwxLDAsMCwwLTEuNCwxLjQzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCww''@;'; put 'put ''LDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCwwLDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+PHBhdGggZD0iTTMxLDEzLjQzVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45''@;'; put 'put ''MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTAuMywxOC44N2w3LDYuODlhMSwxLDAsMCwwLDEuNCwwbDctNi44OWExLDEsMCwwLDAtMS40LTEuNDNMMTksMjIuNjVWNGExLDEsMCww''@;'; put 'put ''LDAtMiwwVjIyLjY1bC01LjMtNS4yMWExLDEsMCwwLDAtMS40LDEuNDNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJI''@;'; put 'put ''NS4wOEEyLDIsMCwwLDAsMywxMFYzMGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9''@;'; put 'put ''Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLGUuQ2xyU2hhcGVVbmluc3RhbGw9KDAsYS5jbHJJY29uU1ZHKSgnPHBh''@;'; put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42''@;'; put 'put ''OGwtNS4zLTUuMjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMzAuOTIsOEgyNi41NWExLDEsMCww''@;'; put 'put ''LDAsMCwySDMxVjMwSDVWMTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTBBMiwyLDAsMCwwLDMwLjkyLDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xMS4yOSwyNi43MmExLDEsMCwwLDAsMS40MSwwTDE4LDIxLjQ5bDUuMyw1LjIzQTEsMSwwLDAsMCwyNC43LDI1LjNsLTUuMjgtNS4yMSw1LjI4LTUuMjFhMSwxLDAsMCwwLTEuNDEtMS40MkwxOCwxOC42OGwtNS4zLTUu''@;'; put 'put ''MjNhMSwxLDAsMCwwLTEuNDEsMS40Mmw1LjI4LDUuMjFMMTEuMywyNS4zQTEsMSwwLDAsMCwxMS4yOSwyNi43MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMxLDEzLjQzVjMwSDVW''@;'; put 'put ''MTBIOS4zOGExLDEsMCwwLDAsMC0ySDUuMDhBMiwyLDAsMCwwLDMsMTBWMzBhMiwyLDAsMCwwLDIuMDgsMkgzMC45MkEyLDIsMCwwLDAsMzMsMzBWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTEuMjksMjYuNzJh''@;'; put 'put ''MSwxLDAsMCwwLDEuNDEsMEwxOCwyMS40OWw1LjMsNS4yM0ExLDEsMCwwLDAsMjQuNywyNS4zbC01LjI4LTUuMjEsNC43NS00LjY5SDIyLjIzYTMuNjUsMy42NSwwLDAsMS0uODEtLjFMMTgsMTguNjhsLTUuMy01LjIzYTEsMSwwLDAsMC0xLjQxLDEuNDJsNS4yOCw1LjIxTDExLjMsMjUuM0Ex''@;'; put 'put ''LDEsMCwwLDAsMTEuMjksMjYuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgZD0iTTMxLDE1LjRWMzBINVYxMEg5LjM4YTEsMSwwLDAsMCwwLTJINS4wOEEyLDIsMCwwLDAsMywxMFYz''@;'; put 'put ''MGEyLDIsMCwwLDAsMi4wOCwySDMwLjkyQTIsMiwwLDAsMCwzMywzMFYxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDEx''@;'; put 'put ''QTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbicpLGUuQ2xyU2hhcGVMYXllcnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVpNNS4zNCwxMi4x''@;'; put 'put ''NmwxMi42Niw2LDEyLjY2LTZMMTgsNi4xOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTgsMjYuMTZhMSwxLDAsMCwxLS40My0uMUwyLjU3LDE5YTEsMSwwLDEsMSwuODUtMS44MUwxOCwyNC4wNmwxNC41Ny02''@;'; put 'put ''Ljg5QTEsMSwwLDEsMSwzMy40MywxOWwtMTUsNy4wOUExLDEsMCwwLDEsMTgsMjYuMTZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LDMyLjA3YTEsMSwwLDAsMS0uNDMtLjFsLTE1LTcuMDlhMSwxLDAsMCwx''@;'; put 'put ''LC44NS0xLjgxTDE4LDMwbDE0LjU3LTYuODlhMSwxLDAsMSwxLC44NSwxLjgxTDE4LjQzLDMyQTEsMSwwLDAsMSwxOCwzMi4wN1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyMC4yNWExLDEsMCwwLDEtLjQzLS4x''@;'; put 'put ''bC0xNS03LjA5YTEsMSwwLDAsMSwwLTEuODFsMTUtNy4wOWExLDEsMCwwLDEsLjg1LDBsMTUsNy4wOWExLDEsMCwwLDEsMCwxLjgxbC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyMC4yNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIi''@;'; put 'put ''IGQ9Ik0xOCwyNi4xNmExLDEsMCwwLDEtLjQzLS4xTDIuNTcsMTlhMSwxLDAsMSwxLC44NS0xLjgxTDE4LDI0LjA2bDE0LjU3LTYuODlBMSwxLDAsMSwxLDMzLjQzLDE5bC0xNSw3LjA5QTEsMSwwLDAsMSwxOCwyNi4xNloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xOCwzMi4wN2ExLDEsMCwwLDEtLjQzLS4xbC0xNS03LjA5YTEsMSwwLDAsMSwuODUtMS44MUwxOCwzMGwxNC41Ny02Ljg5YTEsMSwwLDEsMSwuODUsMS44MUwxOC40MywzMkExLDEsMCwwLDEsMTgsMzIuMDdaIi8+XG4nKSxlLkNsclNoYXBlQmxv''@;'; put 'put ''Y2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQyLDkuMDlsLTEzLTZhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTBBMSwxLDAsMCwwLDMxLjQy''@;'; put 'put ''LDkuMDlaTTE4LDUuMSwyOC42MSwxMCwxOCwxNC45LDcuMzksMTBaTTYsMTEuNTZsMTEsNS4wOHYxNC44TDYsMjYuMzZaTTE5LDMxLjQ0VjE2LjY0bDExLTUuMDh2MTQuOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTMwLDE1LjUzVjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDIuNTctMS4xOWEzLjY3LDMuNjcsMCwwLDEtMi4xMS0xLjIyTDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsMy4wOCwxLjQyLDEtMS43NEwxOC40MiwzLjA5YTEsMSwwLDAsMC0uODQsMGwtMTMsNkExLDEsMCwwLDAsNCwxMFYyN2ExLDEs''@;'; put 'put ''MCwwLDAsLjU4LjkxbDEzLDZhMSwxLDAsMCwwLC44NCwwbDEzLTZBMSwxLDAsMCwwLDMyLDI3VjE1LjUzWk0xNywzMS40NCw2LDI2LjM2VjExLjU2bDExLDUuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NywxLjI2bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkySDMzLjdhMS4yOCwxLjI4LDAsMCwwLDEuMS0xLjkyTDI5LjA4LDEuMjZBMS4yOCwxLjI4LDAsMCwwLDI2Ljg3LDEuMjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcu''@;'; put 'put ''MTIsNy4xMiwwLDAsMSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAs''@;'; put 'put ''MCwxLDMwLDEzLjVaTTE3LDMxLjQ0LDYsMjYuMzZWMTEuNTZsMTEsNS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDIsOS4wOWwtMTMtNmExLDEsMCwwLDAtLjg0LDBsLTEzLDZBMSwxLDAsMCwwLDQsMTBWMjdhMSwxLDAsMCwwLC41''@;'; put 'put ''OC45MWwxMyw2YTEsMSwwLDAsMCwuODQsMGwxMy02QTEsMSwwLDAsMCwzMiwyN1YxMEExLDEsMCwwLDAsMzEuNDIsOS4wOVpNMTgsMTQuOSw3LjM5LDEwLDE4LDUuMSwyOC42MSwxMFpNMzAsMjYuMzYsMTksMzEuNDRWMTYuNjRsMTEtNS4wOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuMzh2MTFMMTksMzEuNDRWMTYuNjRsMi43OS0xLjI5YTMuNjgsMy42OCwwLDAsMS0yLjI1LTEuMTZMMTgsMTQuOSw3LjM5LDEwLDE4LDUuMWwzLDEuMzksMS0xLjc1TDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCww''@;'; put 'put ''bC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTIsMjEuMTMsMTFhMS4yNywxLjI3LDAsMCwwLDEuMSwxLjkxSDMzLjY4QTEuMjcsMS4yNywwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjEyQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjI2LjM2TDE5LDMxLjQ0VjE2LjY0bDguMDgtMy43M2E3LjU3LDcuNTcsMCwwLDEtMi0xLjI3TDE4LDE0LjksNy4zOSwxMCwxOCw1LjFsNC42MSwyLjEzQTcuMTIsNy4xMiwwLDAs''@;'; put 'put ''MSwyMi41LDZhOCw4LDAsMCwxLC4wNy0xTDE4LjQyLDMuMDlhMSwxLDAsMCwwLS44NCwwbC0xMyw2QTEsMSwwLDAsMCw0LDEwVjI3YTEsMSwwLDAsMCwuNTguOTFsMTMsNmExLDEsMCwwLDAsLjg0LDBsMTMtNkExLDEsMCwwLDAsMzIsMjdWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFk''@;'; put 'put ''Z2UiIC8+JyksZS5DbHJTaGFwZUJsb2Nrc0dyb3VwPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIu''@;'; put 'put ''NjgsMTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTgu''@;'; put 'put ''NzZabS0yLjgxLjkxTDI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1Wk0xOC4xLDQuMDhsNS4xMSwyLjM1TDE4LjEsOC43OCwxMyw2LjQzWk0xMC42LDE3LjMxbDUuMTEsMi4zNUwxMC42LDIyLDUuNDksMTkuNjdabTYuNSwxMS40OS02LjUsMy02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEs''@;'; put 'put ''MCwwLDAsMTEsMjRsNi4wOC0yLjhaTTExLjYsMTUuNTdoMFY4bDYuMDgsMi44YTEsMSwwLDAsMCwuODQsMEwyNC42LDh2Ny41OGgwbC02LjUsM1pNMzIuMTEsMjguODFsLTYuNSwzLTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjhaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3aC0ydjBsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAsMCwwLC44NCwwbC4yNC0uMTFhNC4xNyw0LjE3LDAsMCwxLC4yOS0uNjVsMS4zMy0yLjMxLTIuMjgsMUwxMyw2''@;'; put 'put ''LjQzbDUuMS0yLjM1LDMuNDcsMS42LDEtMS43M0wxOC41LDIuMDhhMSwxLDAsMCwwLS44NCwwbC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4''@;'; put 'put ''LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40OSwxOS42N1ptMCwxNC40OS02LjUtM1YyMS4yM0wxMC4xOCwyNEExLDEsMCww''@;'; put 'put ''LDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTE1LTE0LjQ4LDUuMTEsMi4zNUwyNS42MSwyMiwyMC41LDE5LjY3Wm0wLDE0LjQ5LTYuNTEtM1YyMS4yMkwyNS4xOSwyNEExLDEsMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG48cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuPHBhdGggZD0iTTMzLjUzLDE4Ljc2LDI2LjYsMTUuNTdWMTIuN2E3LjU4LDcuNTgsMCwwLDEtMi0xLjUxdjQuMzlsLTYuNSwzLTYuNS0zVjhsNi4wOCwyLjhhMSwxLDAs''@;'; put 'put ''MCwwLC44NCwwTDIzLDguNzJhNy4wNSw3LjA1LDAsMCwxLS40Ny0ybC00LjQ3LDJMMTMsNi40M2w1LjEtMi4zNSw0LjQ0LDJzMC0uMDYsMC0uMDlhNy41NSw3LjU1LDAsMCwxLC4yNy0ybC00LjMtMmExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45''@;'; put 'put ''LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwxLDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlpNMTAu''@;'; put 'put ''NiwxNy4zMWw1LjExLDIuMzVMMTAuNiwyMiw1LjQ5LDE5LjY3Wm0wLDE0LjQ5LTYuNS0zVjIxLjIzTDEwLjE4LDI0QTEsMSwwLDAsMCwxMSwyNGw2LjA4LTIuOCwwLDcuNlptMTUtMTQuNDgsNS4xMSwyLjM1TDI1LjYxLDIyLDIwLjUsMTkuNjdabTAsMTQuNDktNi41MS0zVjIxLjIyTDI1LjE5''@;'; put 'put ''LDI0QTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG48Y2lyY2xlIGN4PSIzMC4wMyIgY3k9IjYuMDMiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbjxwYXRoIGQ9Ik0zMy41MywxOC43NiwyNi42LDE1LjU3VjYuNDNBMSwxLDAsMCwwLDI2LDUuNTNsLTcuNS0zLjQ1YTEsMSwwLDAsMC0uODQsMGwtNy41LDMuNDVhMSwxLDAsMCwwLS41OC45MXY5LjE0TDIuNjgs''@;'; put 'put ''MTguNzZhMSwxLDAsMCwwLS41OC45MXY5Ljc4aDBhMSwxLDAsMCwwLC41OC45MWw3LjUsMy40NWExLDEsMCwwLDAsLjg0LDBsNy4wOC0zLjI2LDcuMDgsMy4yNmExLDEsMCwwLDAsLjg0LDBsNy41LTMuNDVhMSwxLDAsMCwwLC41OC0uOTFoMFYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZa''@;'; put 'put ''TTI1LjYxLDIyLDIwLjUsMTkuNjdsNS4xMS0yLjM1LDUuMTEsMi4zNVptLTEtNi40NC02LjQ0LDNWMTAuODdhMSwxLDAsMCwwLC4zNS0uMDhMMjQuNiw4djcuNThaTTE4LjEsNC4wOGw1LjExLDIuMzVMMTguMSw4Ljc4LDEzLDYuNDNaTTEwLjYsMTcuMzFsNS4xMSwyLjM1TDEwLjYsMjIsNS40''@;'; put 'put ''OSwxOS42N1ptNi41LDExLjQ5LTYuNSwzaDBWMjQuMTFoMEExLDEsMCwwLDAsMTEsMjRsNi4wOC0yLjhabTE1LDAtNi40NiwzVjI0LjExQTEsMSwwLDAsMCwyNiwyNGw2LjA4LTIuOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG48cGF0aCBkPSJNMzMuNTMs''@;'; put 'put ''MTguNzYsMjYuNiwxNS41N3YwaC0ydjBsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOGwuMTQtLjA2QTMuMjMsMy4yMywwLDAsMSwxOSwxMGwxLjI4LTIuMjItMi4xNCwxTDEzLDYuNDNsNS4xLTIuMzUsMy4zOSwxLjU2LDEtMS43My00LTEuODNhMSwxLDAsMCwwLS44NCww''@;'; put 'put ''bC03LjUsMy40NWExLDEsMCwwLDAtLjU4LjkxdjkuMTRsLTYuOSwzLjE4YTEsMSwwLDAsMC0uNTguOTF2OS43OGExLDEsMCwwLDAsLjU4LjkxbDcuNSwzLjQ1YTEsMSwwLDAsMCwuODQsMGw3LjA4LTMuMjYsNy4wOCwzLjI2YTEsMSwwLDAsMCwuODQsMGw3LjUtMy40NWExLDEsMCwwLDAsLjU4''@;'; put 'put ''LS45MVYxOS42N0ExLDEsMCwwLDAsMzMuNTMsMTguNzZabS0yOCwuOTEsNS4xMS0yLjM2LDUuMTEsMi4zNUwxMC42LDIyWk0xMC42LDMxLjhWMjQuMTFBMS4wOCwxLjA4LDAsMCwwLDExLDI0bDYuMDgtMi44LDAsNy42Wm05LjktMTIuMTMsNS4xMS0yLjM1LDUuMTEsMi4zNUwyNS42MSwyMlpN''@;'; put 'put ''MjUuNjQsMzEuOFYyNC4xMUEuODkuODksMCwwLDAsMjYsMjRsNi4wOC0yLjgsMCw3LjZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuPHBhdGggZD0iTTI2Ljg5LDEuMTRsLTUuNzIsOS45MUExLjI3LDEuMjcsMCwwLDAsMjIu''@;'; put 'put ''MjcsMTNIMzMuNzJhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjEsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODksMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG48cGF0aCBkPSJNMzMuNTMs''@;'; put 'put ''MTguNzYsMjYuNiwxNS41N1YxMi42OWE3LjY2LDcuNjYsMCwwLDEtMi0xLjQ3djQuMzRsLTYuNDMsM1YxMC44N2ExLjA1LDEuMDUsMCwwLDAsLjM1LS4wOEwyMyw4LjczYTcuNjUsNy42NSwwLDAsMS0uNDgtMmwtNC40MiwyTDEzLDYuNDNsNS4xLTIuMzUsNC4zOCwyVjZhNy41NSw3LjU1LDAs''@;'; put 'put ''MCwxLC4yNy0yTDE4LjUsMi4wOGExLDEsMCwwLDAtLjg0LDBsLTcuNSwzLjQ1YTEsMSwwLDAsMC0uNTguOTF2OS4xNGwtNi45LDMuMThhMSwxLDAsMCwwLS41OC45MXY5Ljc4YTEsMSwwLDAsMCwuNTguOTFsNy41LDMuNDVhMSwxLDAsMCwwLC44NCwwbDcuMDgtMy4yNiw3LjA4LDMuMjZhMSwx''@;'; put 'put ''LDAsMCwwLC44NCwwbDcuNS0zLjQ1YTEsMSwwLDAsMCwuNTgtLjkxVjE5LjY3QTEsMSwwLDAsMCwzMy41MywxOC43NlptLTI4LC45MSw1LjExLTIuMzYsNS4xMSwyLjM1TDEwLjYsMjJaTTEwLjYsMzEuOFYyNC4xMUExLjA4LDEuMDgsMCwwLDAsMTEsMjRsNi4wOC0yLjgsMCw3LjZabTkuOS0x''@;'; put 'put ''Mi4xMyw1LjExLTIuMzUsNS4xMSwyLjM1TDI1LjYxLDIyWk0yNS42NCwzMS44VjI0LjExQS44OS44OSwwLDAsMCwyNiwyNGw2LjA4LTIuOCwwLDcuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuPGNpcmNsZSBjeD0iMjkuOTgi''@;'; put 'put ''IGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgLz4nKSxlLkNsclNoYXBlQnVuZGxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAsMCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4z''@;'; put 'put ''NVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWk01LDEyLjEzLDE2LDE3LjRWMzEuNDZMNSwyNi4yWk0xOCwzMS40NVYxNy4zNmwxMy02LjI5djE0LjFaIi8+XG4gICAgICAgICAgICA8cGF0aCBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuNDMsOC4zNWwtMTMtNi4yMWExLDEsMCwwLDAtLjg3LDBsLTE1LDcuMjRhMSwxLDAsMCwwLS41Ny45VjI2LjgzYTEsMSwwLDAsMCwuNi45MmwxMyw2LjE5YTEsMSwwLDAsMCwuODcsMGwxNS03LjI0YTEsMSwwLDAs''@;'; put 'put ''MCwuNTctLjlWOS4yNUExLDEsMCwwLDAsMzIuNDMsOC4zNVpNMTksNC4xNSwyOS45Myw5LjM3bC01LjA1LDIuNDRMMTQuMjEsNi40NlpNMTcsMTUuNjQsNiwxMC40MWw1LjktMi44NUwyMi42LDEyLjkxWm0xLDE1LjhWMTcuMzZsMTMtNi4yOXYxNC4xWiIvPlxuJyksZS5DbHJTaGFwZVdpZmk9''@;'; put 'put ''KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMy41NSw4LjJhMjguMSwyOC4xLDAsMCwwLTMxLjExLjA4QTEsMSwwLDEsMCwzLjU2LDkuOTRhMjYuMTEsMjYuMTEsMCwwLDEsMjguODktLjA3LDEsMSwwLDAsMCwx''@;'; put 'put ''LjEtMS42N1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiBkPSJNMTguMDUsMTAuNzJBMjAuNzQsMjAuNzQsMCwwLDAsNi4yMywxNC40LDEsMSwwLDAsMCw3LjM2LDE2LDE4Ljg1LDE4Ljg1LDAsMCwxLDI4LjY0LDE2YTEs''@;'; put 'put ''MSwwLDAsMCwxLjEyLTEuNjVBMjAuNzUsMjAuNzUsMCwwLDAsMTguMDUsMTAuNzJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE4LjA1LDE3LjlhMTMuNTEsMTMuNTEsMCwwLDAtOCwyLjY0LDEsMSwwLDAsMCwx''@;'; put 'put ''LjE4LDEuNjEsMTEuNTYsMTEuNTYsMCwwLDEsMTMuNjItLjA4QTEsMSwwLDEsMCwyNiwyMC40NiwxMy41MiwxMy41MiwwLDAsMCwxOC4wNSwxNy45WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOCwyNC40MmE0''@;'; put 'put ''LDQsMCwxLDAsNCw0QTQsNCwwLDAsMCwxOCwyNC40MlptMCw2YTIsMiwwLDEsMSwyLTJBMiwyLDAsMCwxLDE4LDMwLjQyWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBjeD0iMTgiIGN5PSIyOS41NCIgcj0iMyIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLjc2LDkuMzhhMjcuODcsMjcuODcsMCwwLDAtMjkuNTcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ4LDIuMTFsLjExLjE3YTEuNDksMS40OSwwLDAsMCwyLC40NiwyNC42OCwyNC42OCwwLDAs''@;'; put 'put ''MSwyNi4yNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwzMi43Niw5LjM4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgZD0iTTI4LjgyLDE1LjQ0YTIwLjU5LDIwLjU5LDAsMCwwLTIx''@;'; put 'put ''LjcsMCwxLjUxLDEuNTEsMCwwLDAtLjQ2LDIuMWwuMTEuMTdhMS40OSwxLjQ5LDAsMCwwLDIsLjQ2LDE3LjQsMTcuNCwwLDAsMSwxOC4zNiwwLDEuNDksMS40OSwwLDAsMCwyLS40NmwuMTEtLjE3QTEuNTEsMS41MSwwLDAsMCwyOC44MiwxNS40NFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0yNC44OCwyMS40OWExMy40MSwxMy40MSwwLDAsMC0xMy44MiwwLDEuNSwxLjUsMCwwLDAtLjQ2LDIuMDlsLjEuMTZhMS41MiwxLjUyLDAsMCwwLDIuMDYuNDQsMTAuMjcsMTAuMjcsMCwwLDEsMTAuNDIsMCwxLjUyLDEu''@;'; put 'put ''NTIsMCwwLDAsMi4wNi0uNDVsLjEtLjE2QTEuNDksMS40OSwwLDAsMCwyNC44OCwyMS40OVoiLz5cbicpLGUuQ2xyU2hhcGVSYWNrU2VydmVyPSgwLGEuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVk''@;'; put 'put ''IiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LjY0LDExQTMuNjUsMy42NSwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIMTB2MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiBkPSJNMzMu''@;'; put 'put ''NjgsMTUuNEgzMlYyMUg0VjE1SDIwLjU4QTMuNjcsMy42NywwLDAsMSwxOSwxMy41NmEzLjYzLDMuNjMsMCwwLDEtLjI2LS41Nkg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaTTQsMjlWMjNIMzJ2NloiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0''@;'; put 'put ''Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIHg9IjYiIHk9IjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgeD0iMTAiIHk9IjE3IiB3aWR0aD0iMTQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiB4PSI2IiB5PSIyNSIgd2lkdGg9IjIiIGhl''@;'; put 'put ''aWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiIGQ9Ik0xMCwxMUgyNHYtLjUxQTcuNDgsNy40OCwwLDAsMSwyMy4xMyw5SDEwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2Vk''@;'; put 'put ''IiBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi42OC0uNUg0VjdIMjIuNTdhNy41Miw3LjUyLDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDYsNy40NiwwLDAsMSwz''@;'; put 'put ''MCwxMy41Wk00LDE1SDMydjZINFpNNCwyOVYyM0gzMnY2WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSI5IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0iMTAiIHk9IjkiIHdpZHRo''@;'; put 'put ''PSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgeD0iNiIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC00IiB4PSIxMCIgeT0iMTciIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgZD0iTTMyLDVINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; put 'put ''MCwwLDItMlY3QTIsMiwwLDAsMCwzMiw1Wk00LDdIMzJ2Nkg0Wm0wLDhIMzJ2Nkg0Wk00LDI5VjIzSDMydjZaIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgeD0iNiIgeT0iMjUiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiB4PSIxMCIgeT0iMjUiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0x''@;'; put 'put ''LS1hbGVydGVkIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJN''@;'; put 'put ''MTksOS44OSwxOS41Niw5SDEwVjdIMjAuNzFsMS43My0zSDRBMiwyLDAsMCwwLDIsNnY2SDE4LjU3QTMuNjcsMy42NywwLDAsMSwxOSw5Ljg5Wk04LDlINlY3SDhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1h''@;'; put 'put ''bGVydGVkIiBkPSJNMzMuNjgsMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTkuMzUsMTRIMnY4SDM0VjE1LjM4Wk04LDE5SDZWMTdIOFptMTYsMEgxMFYxN0gyNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMiwxNHY4SDM0VjE0Wm02LDVINlYxN0g4Wm0xNiwwSDEwVjE3SDI0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; put 'put ''LS1iYWRnZWQiIGQ9Ik0yLDMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNEgyWm04LTNIMjR2MkgxMFpNNiwyN0g4djJINloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMjMu''@;'; put 'put ''MTMsOUgxMFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjQ5LDcuNDksMCwwLDEsLjI4LTJINEEyLDIsMCwwLDAsMiw2djZIMjUuNTFBNy41Miw3LjUyLDAsMCwxLDIzLjEzLDlaTTgsOUg2VjdIOFoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yLDIySDM0VjE0SDJabTgtNUgyNHYySDEwWk02LDE3SDh2''@;'; put 'put ''Mkg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMyLDRINEEyLDIsMCwwLDAsMiw2djZIMzRWNkEyLDIsMCwwLDAsMzIsNFpNOCw5SDZWN0g4Wk0yNCw5SDEwVjdIMjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMiwzMGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRIMlptOC0zSDI0djJIMTBaTTYsMjdIOHYySDZaIi8+XG4nKSxlLkNsclNoYXBlSGFyZERpc2s9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIwIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0''@;'; put 'put ''ZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0zNCwyMS4wOGwtMS40LTUuNjhIMzAuNTFsMS40OSw2VjI5SDRWMjEu''@;'; put 'put ''NDRMNy4wNiw5aDEyLjVsMS4xNS0ySDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCww''@;'; put 'put ''LDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgeD0iNiIgeT0iMjAiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNCIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJN''@;'; put 'put ''MzQsMjEuMDgsMzIsMTMuMjFhNy40OSw3LjQ5LDAsMCwxLTIsLjI5bDIsNy45NFYyOUg0VjIxLjQ0TDcuMDYsOUgyMy4xM2E3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIsMjEuMDhhMSwxLDAsMCwwLDAsLjI0VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwy''@;'; put 'put ''LDAsMCwwLDItMlYyMS4zMUExLDEsMCwwLDAsMzQsMjEuMDhaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNCwyMS4wOCwzMC44Niw4LjQzQTIsMiwwLDAsMCwyOC45NCw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLDIxLjA4YTEsMSwwLDAsMCwwLC4yNFYyOWEyLDIsMCwwLDAsMiwySDMyYTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWMjEuMzFBMSwxLDAsMCwwLDM0LDIxLjA4Wk00LDI5VjIxLjQ0TDcuMDYsOUgyOC45M0wzMiwyMS40NFYyOVoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI2IiB5PSIyMCIgd2lkdGg9IjI0IiBo''@;'; put 'put ''ZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyNiIgeT0iMjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBkPSJN''@;'; put 'put ''MzIuNTgsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDIydjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyWm0yOCw1SDI2VjI1aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTEtLWJhZGdlZCIgZD0iTTMyLDEzLjIxQTcuNDcsNy40NywwLDAsMSwyMi41Nyw3SDcuMDZBMiwyLDAsMCwwLDUuMTMsOC40N0wyLjI5LDIwSDMzLjcxWiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLjg2LDguNDNBMiwyLDAsMCwwLDI4Ljk0LDdINy4wNkEyLDIsMCwwLDAsNS4xMyw4LjQ3TDIuMjks''@;'; put 'put ''MjBIMzMuNzFaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMiwyMnY3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMlptMjgsNUgyNlYyNWg0WiIvPlxuJyksZS5DbHJTaGFwZUJhY2t1cFJlc3RvcmU9KDAs''@;'; put 'put ''YS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3''@;'; put 'put ''LDZWMTlhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTMx''@;'; put 'put ''LjU4LDE1LjRIMjkuNDZjMSwyLjg1LDIuMzEsNi4zNywyLjU0LDcuMDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCww''@;'; put 'put ''LDItMlYyMi4zM0MzNCwyMi4xMiwzNCwyMiwzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4y''@;'; put 'put ''OCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl''@;'; put 'put ''ZCIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMTMsOS45MiwxNyw2VjE5YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVhMSwxLDAsMCwwLC43MS4yOWwuMTEsMGE3LjQ2LDcuNDYsMCwwLDEtMS4yNS0zLjUyTDE4LDIu''@;'; put 'put ''MTYsMTEuNjEsOC41QTEsMSwwLDAsMCwxMyw5LjkyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCww''@;'; put 'put ''LDEsMjUuNTEsMTJIMjF2Mmg3Ljk1QzMwLDE2Ljk0LDMxLjcyLDIxLjY1LDMyLDIyLjQ4VjMwSDRWMjIuNDhDNC4yOCwyMS42NSw3LjA1LDE0LDcuMDUsMTRIMTVWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMiwyMiwyLDIyLjEsMiwyMi4zM1YzMGEyLDIsMCwwLDAsMiwySDMy''@;'; put 'put ''YTIsMiwwLDAsMCwyLTJWMjIuMzNDMzQsMjIuMSwzNCwyMiwzMC44NywxMy40NVoiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2IiByPSI1Ii8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgeD0iNiIgeT0iMjIiIHdpZHRoPSIyNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgeD0i''@;'; put 'put ''MjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTEzLDkuOTIsMTcsNlYxOWExLDEsMCwxLDAsMiwwVjZsNCwzLjk1QTEsMSwwLDEsMCwyNC4zOCw4LjVMMTgsMi4x''@;'; put 'put ''NiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXYyaDcuOTVDMzAsMTYuOTQsMzEuNzIsMjEu''@;'; put 'put ''NjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEgxNVYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0''@;'; put 'put ''LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDVIMjZWMjdoNFoiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIGQ9Ik0xMyw5LjkyLDE3LDZWMThhMSwxLDAsMSwwLDIsMFY2bDEuNDcsMS40NiwxLTEuNzlMMTgsMi4xNiwxMS42MSw4LjVBMSwxLDAsMCwwLDEzLDkuOTJaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyMi4yM0EzLjYyLDMuNjIsMCwwLDEsMjEsMTUuMTZWMThhMywzLDAsMSwxLTYsMFYxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2''@;'; put 'put ''LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgzMy45M0MzMy43OSwyMS40OSwzMy4yOCwyMC4wNywzMS41OCwxNS40WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2''@;'; put 'put ''Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw1SDI2VjI3aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0i''@;'; put 'put ''TTEzLDkuOTIsMTcsNlYxOGExLDEsMCwxLDAsMiwwVjZsNCwzLjk1YTEsMSwwLDAsMCwuNzEuMjlsLjExLDBhNy40Niw3LjQ2LDAsMCwxLTEuMjUtMy41MkwxOCwyLjE2LDExLjYxLDguNUExLDEsMCwwLDAsMTMsOS45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIiBkPSJNMzAuODcsMTMuNDVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNUE3LjQ2LDcuNDYsMCwwLDEsMjUuNTEsMTJIMjF2NmEzLDMsMCwxLDEtNiwwVjEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgs''@;'; put 'put ''Mi4yNCwyMS40MywyLjA3LDIySDMzLjkzQzMzLjc3LDIxLjQzLDMzLjE1LDE5LjcsMzAuODcsMTMuNDVaIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5PSI2''@;'; put 'put ''IiByPSI1Ii8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMiwyNHY2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyNFptMjgsNUgyNlYyN2g0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNv''@;'; put 'put ''bGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTMwLjg0LDEzLjM3QTEuOTQsMS45NCwwLDAsMCwyOC45MywxMkgyMXY2YTMsMywwLDEsMS02LDBWMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMzMuOTNDMzMuNzcsMjEuNDMs''@;'; put 'put ''MzMuMTQsMTkuNjksMzAuODQsMTMuMzdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMTMsOS45MiwxNyw2VjE4YTEsMSwwLDEsMCwyLDBWNmw0LDMuOTVBMSwxLDAsMSwwLDI0LjM4LDguNUwxOCwyLjE2LDExLjYxLDgu''@;'; put 'put ''NUExLDEsMCwwLDAsMTMsOS45MloiLz5cbicpLGUuQ2xyU2hhcGVCYWNrdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIHg9IjYiIHk9IjIyIiB3aWR0aD0iMjQiIGhlaWdodD0iMiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjI2IiB5PSIyNiIgd2lkdGg9IjQiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIGQ9Ik0xOCwxOS44NGw0LjQ3LTQuNDRoLS4yM2EzLjY3LDMuNjcsMCwwLDEtMi0uNjFMMTksMTZWNGExLDEsMCwxLDAtMiwwVjE2bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMzEuNTgsMTUuNEgyOS40NmMxLDIuODUsMi4zMSw2LjM3LDIuNTQsNy4wOFYzMEg0VjIyLjQ4QzQuMjgsMjEuNjUsNy4wNSwxNCw3LjA1LDE0SDkuNThhMywzLDAsMCwxLS4xNC0ySDcu''@;'; put 'put ''MDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIsMjIsMiwyMi4xLDIsMjIuMzNWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjIyLjMzQzM0LDIyLjEyLDM0LDIyLDMxLjU4LDE1LjRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYu''@;'; put 'put ''MzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9Ik0zMC44''@;'; put 'put ''NywxMy40NWE3LjU1LDcuNTUsMCwwLDEtLjg3LjA1LDcuNDYsNy40NiwwLDAsMS0zLjM1LS44LDMsMywwLDAsMS0uMjQsMS4zaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQt''@;'; put 'put ''Mkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIyLjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg3LDEzLjQ1WiIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSI2IiB5PSIyMiIgd2lkdGg9IjI0IiBoZWlnaHQ9''@;'; put 'put ''IjIiLz48cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIlxuICAgICAgICAgICAgICAgIGQ9Ik0zMC44NCwxMy4zN0ExLjk0LDEuOTQsMCwwLDAsMjguOTMs''@;'; put 'put ''MTJIMjYuNTVhMywzLDAsMCwxLS4xNCwyaDIuNTRDMzAsMTYuOTQsMzEuNzIsMjEuNjUsMzIsMjIuNDhWMzBINFYyMi40OEM0LjI4LDIxLjY1LDcuMDUsMTQsNy4wNSwxNEg5LjU4YTMsMywwLDAsMS0uMTQtMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLDIyLDIsMjIuMSwyLDIy''@;'; put 'put ''LjMzVjMwYTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYyMi4zM0MzNCwyMi4xLDM0LDIyLDMwLjg0LDEzLjM3WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAs''@;'; put 'put ''MSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiBkPSJNMTYuNTgsMjEuMjYsMTAu''@;'; put 'put ''MiwxNC45MUEzLDMsMCwwLDEsOS40NCwxMkg3LjA3YTEuOTIsMS45MiwwLDAsMC0xLjksMS4zMkMyLjg2LDE5LjY4LDIuMjQsMjEuNDMsMi4wNywyMkgxNy4zM1oiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFs''@;'; put 'put ''ZXJ0ZWQiIGQ9Ik0yLDI0djZhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjI0Wm0yOCw0SDI2VjI2aDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiBkPSJNMTguNjYsMjJIMzMuOTNj''@;'; put 'put ''LS4xNS0uNTEtLjY1LTEuOTMtMi4zNS02LjZIMjUuM2wtNS44OSw1Ljg2WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIgZD0iTTE4LDE5Ljg0bDQuNDctNC40NGgtLjIzYTMuNjQsMy42NCwwLDAs''@;'; put 'put ''MS0yLS42MUwxOSwxNlY0YTEsMSwwLDEsMC0yLDBWMTZsLTQtMy45NWExLDEsMCwwLDAtMS40MSwxLjQyWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEu''@;'; put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCwxOS44NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgZD0iTTE2LjU4LDIxLjI2LDEwLjIsMTQuOTFBMywzLDAsMCwxLDkuNDQsMTJINy4wN2ExLjkyLDEuOTIsMCwwLDAtMS45LDEuMzJDMi44NiwxOS42OCwyLjI0LDIxLjQzLDIuMDcsMjJIMTcuMzNaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCIgZD0iTTIsMjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtNC0tYmFkZ2VkIiBkPSJNMTguNjYsMjJIMzMuOTNjLS4xNy0uNTctLjc5LTIuMy0zLjA2LTguNTVhNy41NSw3LjU1LDAsMCwxLS44Ny4wNSw3LjQ2LDcuNDYsMCwwLDEtMy4zNS0uOCwzLDMsMCwwLDEtLjg2LDIuMjFsLTYuMzgsNi4zNVoiLz5cbiAgICAgICAgICAgIDxj''@;'; put 'put ''aXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwxOS44''@;'; put 'put ''NGw2LjM4LTYuMzVBMSwxLDAsMSwwLDIzLDEyLjA4TDE5LDE2VjRhMSwxLDAsMSwwLTIsMFYxNmwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTkuNDEsMjEuMjZsLS43''@;'; put 'put ''NC43NEgzMy45M2MtLjE3LS41Ny0uNzktMi4zMS0zLjA5LTguNjNBMS45NCwxLjk0LDAsMCwwLDI4LjkzLDEySDI2LjU1YTMsMywwLDAsMS0uNzYsMi45MloiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0xNi41OCwyMS4y''@;'; put 'put ''NiwxMC4yLDE0LjkxQTMsMywwLDAsMSw5LjQ0LDEySDcuMDdhMS45MiwxLjkyLDAsMCwwLTEuOSwxLjMyQzIuODYsMTkuNjgsMi4yNCwyMS40MywyLjA3LDIySDE3LjMzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgZD0iTTIs''@;'; put 'put ''MjR2NmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjRabTI4LDRIMjZWMjZoNFoiLz5cbicpLGUuQ2xyU2hhcGVEZXZpY2VzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzIsMTNIMjRhMiwyLDAs''@;'; put 'put ''MCwwLTIsMlYzMGEyLDIsMCwwLDAsMiwyaDhhMiwyLDAsMCwwLDItMlYxNUEyLDIsMCwwLDAsMzIsMTNabTAsMlYyNkgyNFYxNVpNMjQsMzBWMjcuNmg4VjMwWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0yMCwy''@;'; put 'put ''Mkg0VjZIMjh2NWgyVjZhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMkgyMFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMjAsMjZIOWExLDEsMCwwLDAsMCwySDIwWiIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDEzSDI0YTIsMiwwLDAsMC0yLDJWMzBhMiwyLDAsMCwwLDIsMmg4YTIsMiwwLDAsMCwyLTJWMTVBMiwyLDAsMCwwLDMyLDEzWm0wLDJWMjhIMjRWMTVaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMjgsNEg0QTIsMiwwLDAsMCwyLDZWMjJhMiwyLDAsMCwwLDIsMmg4djJIOS4zMkExLjIsMS4yLDAsMCwwLDgsMjdhMS4yLDEuMiwwLDAsMCwxLjMyLDFIMTkuOTJ2LS4zN0gyMFYyMkg0VjZIMjh2NWgy''@;'; put 'put ''VjZBMiwyLDAsMCwwLDI4LDRaIi8+XG4nKSxlLkNsclNoYXBlS2V5Ym9hcmQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMiw4SDRhMiwyLDAsMCwwLTIsMlYyNmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAs''@;'; put 'put ''MCwyLTJWMTBBMiwyLDAsMCwwLDMyLDhabTAsMThINFYxMEgzMloiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjExIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIHg9IjE1IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdo''@;'; put 'put ''dD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIHg9IjE5IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTYiIHg9IjIzIiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIHg9IjI3IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIHg9IjciIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgeD0iMTEiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0''@;'; put 'put ''PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTAiIHg9IjE1IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTExIiB4PSIxOSIgeT0iMTciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIgeD0iMjMiIHk9IjE3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIi8+XG4gICAgICAgICAgICA8cmVjdCBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiIHg9IjI3IiB5PSIxNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiB4PSIyNyIgeT0iMjIiIHdpZHRoPSIxLjk0''@;'; put 'put ''IiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNSIgeD0iNyIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xNiIgeD0iMTEuMTMiIHk9IjIyIiB3aWR0aD0iMTMuNzUiIGhlaWdodD0iMiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMyLDhINGEyLDIsMCwwLDAtMiwyVjI2YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAs''@;'; put 'put ''MCwwLDItMlYxMEEyLDIsMCwwLDAsMzIsOFpNMTksMTNoMnYySDE5Wm0wLDRoMnYySDE5Wm0tNC00aDJ2MkgxNVptMCw0aDJ2MkgxNVptLTQtNGgydjJIMTFaTTksMjRIN1YyMkg5Wm0wLTVIN1YxN0g5Wm0wLTRIN1YxM0g5Wm0yLDJoMnYySDExWm0xMy44OCw3SDExLjEzVjIySDI0Ljg4Wk0y''@;'; put 'put ''NSwxOUgyM1YxN2gyWm0wLTRIMjNWMTNoMlptMy45NCw5SDI3VjIyaDEuOTRaTTI5LDE5SDI3VjE3aDJabTAtNEgyN1YxM2gyWiIvPlxuJyksZS5DbHJTaGFwZU1vdXNlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBk''@;'; put 'put ''PSJNMTgsMzRBMTAsMTAsMCwwLDEsOCwyNFYxMmExMCwxMCwwLDAsMSwyMCwwVjI0QTEwLDEwLDAsMCwxLDE4LDM0Wk0xOCw0YTgsOCwwLDAsMC04LDhWMjRhOCw4LDAsMCwwLDE2LDBWMTJBOCw4LDAsMCwwLDE4LDRaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDE1YTEsMSwwLDAsMS0xLTFWMTBhMSwxLDAsMCwxLDIsMHY0QTEsMSwwLDAsMSwxOCwxNVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTEwLDEwLDAsMCww''@;'; put 'put ''LDgsMTJWMjRhMTAsMTAsMCwwLDAsMjAsMFYxMkExMCwxMCwwLDAsMCwxOCwyWm0xLjMsMTEuNDRhMS4zLDEuMywwLDAsMS0yLjYsMFYxMGExLjMsMS4zLDAsMCwxLDIuNiwwWiIvPlxuJyksZS5DbHJTaGFwZURhc2hib2FyZD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTI1LjE4LDEyLjMybC01LjkxLDUuODFhMywzLDAsMSwwLDEuNDEsMS40Mmw1LjkyLTUuODFaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik0xOCw0''@;'; put 'put ''LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwzMS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTExLjM0LDI1LjVINi42NmExNC40MywxNC40MywwLDAsMS0zLjExLTcuODRIN3YtMkgzLjU1QTE0LjQxLDE0LjQxLDAsMCwxLDcsMTEuMjlsMi40NSwyLjQ1''@;'; put 'put ''LDEuNDEtMS40MUw4LjQzLDkuODdBMTQuNDEsMTQuNDEsMCwwLDEsMTcsNi4yOXYzLjVoMlY2LjNhMTQuNDcsMTQuNDcsMCwwLDEsMTMuNCwxMy42MUgyOC45MnYyaDMuNTNBMTQuNDMsMTQuNDMsMCwwLDEsMjkuMzQsMjkuNzVaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTUuODUsMTguNjlhMywzLDAsMSwwLDQuODMuODVsNS45Mi01LjgxLTEuNDEtMS40MS01LjkxLDUuODFBMywzLDAsMCwwLDE1Ljg1LDE4LjY5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgZD0iTTMyLjU4LDEzYTcuNDUsNy40NSwwLDAsMS0yLjA2LjQ0LDE0LjQsMTQuNCwwLDAsMSwxLjkzLDYuNDNIMjguOTJ2MmgzLjUzYTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEsNy44NEg2LjY2''@;'; put 'put ''YTE0LjQzLDE0LjQzLDAsMCwxLTMuMTEtNy44NEg3di0ySDMuNTVBMTQuNDEsMTQuNDEsMCwwLDEsNywxMS4yOWwyLjQ1LDIuNDUsMS40MS0xLjQxTDguNDMsOS44N0ExNC40MSwxNC40MSwwLDAsMSwxNyw2LjI5djMuNWgyVjYuM0ExNC40MSwxNC40MSwwLDAsMSwyMi41OCw3YTcuNTIsNy41''@;'; put 'put ''MiwwLDAsMS0uMDgtMSw3LjUyLDcuNTIsMCwwLDEsLjA5LTEuMDlBMTYuNDksMTYuNDksMCwwLDAsNS40LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNloiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCw0LjI1QTE2LjQ5LDE2LjQ5LDAsMCwwLDUuNCwz''@;'; put 'put ''MS40bC4zLjM1SDMwLjNsLjMtLjM1QTE2LjQ5LDE2LjQ5LDAsMCwwLDE4LDQuMjVabTguNiw5LjQ4LTUuOTIsNS44MWEzLDMsMCwxLDEtMS40MS0xLjQybDUuOTEtNS44MVptLTIzLDYuMTdIN3YySDMuNTZjMC0uMzktLjA1LS43Ny0uMDUtMS4xN1MzLjUzLDIwLjE4LDMuNTUsMTkuOVptNC44''@;'; put 'put ''OC0xMCwyLjQ2LDIuNDZMOS40NywxMy43NCw3LDExLjI5QTE0LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N1pNMTksOS43OUgxN1Y2LjI5Yy4zMiwwLC42MywwLDEsMHMuNywwLDEsLjA1Wk0zMi40OSwyMC43NGMwLC4zOSwwLC43OS0uMDUsMS4xN0gyOC45MnYtMmgzLjUzQzMyLjQ3LDIwLjE4''@;'; put 'put ''LDMyLjQ5LDIwLjQ2LDMyLjQ5LDIwLjc0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMzIuNTgsMTNhNy40Niw3LjQ2LDAsMCwxLTEwLTguMTJBMTYuNDksMTYuNDksMCwwLDAsNS40''@;'; put 'put ''LDMxLjRsLjMuMzVIMzAuM2wuMy0uMzVhMTYuNDUsMTYuNDUsMCwwLDAsMi0xOC4zNlpNMTcsNi4yOWMuMzIsMCwuNjMsMCwxLDBzLjcsMCwxLC4wNXYzLjVIMTdaTTcsMjEuOTFIMy41NmMwLS4zOS0uMDUtLjc3LS4wNS0xLjE3czAtLjU2LDAtLjgzSDdabTIuNTEtOC4xNkw3LDExLjI5QTE0''@;'; put 'put ''LjU3LDE0LjU3LDAsMCwxLDguNDMsOS44N2wyLjQ2LDIuNDZabTEwLjYyLDkuMTlhMywzLDAsMSwxLS44Mi00LjgxbDUuOTEtNS44MSwxLjQxLDEuNDEtNS45Miw1LjgxQTMsMywwLDAsMSwyMC4wOSwyMi45M1ptMTIuMzUtMUgyOC45MnYtMmgzLjUzYzAsLjI4LDAsLjU1LDAsLjgzUzMyLjQ3''@;'; put 'put ''LDIxLjUyLDMyLjQ0LDIxLjkxWiIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbicpLGUuQ2xyU2hhcGVIb3N0PSgwLGEuY2xy''@;'; put 'put ''SWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMTgsMjQuM2EyLjQ4LDIuNDgsMCwxLDAsMi40OCwyLjQ3QTIuNDgsMi40OCwwLDAsMCwxOCwyNC4zWm0wLDMuNmExLjEzLDEuMTMsMCwxLDEsMS4xMy0xLjEyQTEuMTMsMS4xMyww''@;'; put 'put ''LDAsMSwxOCwyNy45WiIvPjxyZWN0IHg9IjEzLjUiIHk9IjIwLjciIHdpZHRoPSI5IiBoZWlnaHQ9IjEuNDQiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTI1LjY1LDMuNkgxMC4zNUExLjM1LDEuMzUsMCww''@;'; put 'put ''LDAsOSw0Ljk1VjMyLjRIMjdWNC45NUExLjM1LDEuMzUsMCwwLDAsMjUuNjUsMy42Wm0tLjQ1LDI3SDEwLjhWNS40SDI1LjJaIi8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIHg9IjEyLjYiIHk9IjcuMiIgd2lkdGg9''@;'; put 'put ''IjEwLjgiIGhlaWdodD0iMS40NCIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4PSIxMi42IiB5PSIxMC44IiB3aWR0aD0iMTAuOCIgaGVpZ2h0PSIxLjQ0Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIuOCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEu''@;'; put 'put ''Mi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAgICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIHg9IjEzIiB5PSIyMSIg''@;'; put 'put ''d2lkdGg9IjEwIiBoZWlnaHQ9IjEuNiIvPlxuICAgICAgICAgICAgICAgIDxwb2x5Z29uIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiBwb2ludHM9IjIxLjMsNiAxMiw2IDEyLDcuNiAyMC40LDcuNiIvPlxuICAgICAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiBkPSJNMTIsMTEuNmg2LjZjMC0wLjYsMC4yLTEuMSwwLjQtMS42aC03VjExLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiIGQ9Ik0yNiwxNS40VjMySDEwVjRoMTIuNWwxLjEtMkg5LjVDOC43LDIsOCwyLjcsOCwzLjVWMzRoMjBWMTUuNEgyNnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2LjksMS4xTDIxLjEsMTFjLTAuNCwwLjYtMC4yLDEuNCwwLjMsMS44YzAuMiwwLjIsMC41LDAuMiwwLjgsMC4yaDExLjVjMC43LDAsMS4zLTAuNSwxLjMtMS4yYzAtMC4zLTAuMS0wLjUtMC4yLTAuOGwtNS43''@;'; put 'put ''LTkuOWMtMC40LTAuNi0xLjEtMC44LTEuOC0wLjVDMjcuMSwwLjgsMjcsMSwyNi45LDEuMXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xNS4yLDI3LjhjMCwxLjUsMS4yLDIu''@;'; put 'put ''OCwyLjgsMi44czIuOC0xLjIsMi44LTIuOFMxOS41LDI1LDE4LDI1UzE1LjIsMjYuMiwxNS4yLDI3Ljh6IE0xOS4yLDI3LjhjMCwwLjctMC42LDEuMi0xLjIsMS4ycy0xLjItMC42LTEuMi0xLjJzMC42LTEuMiwxLjItMS4yUzE5LjIsMjcuMSwxOS4yLDI3Ljh6Ii8+XG4gICAgICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiB4PSIxMyIgeT0iMjEiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIGQ9Ik0yNCwxMC41Yy0wLjEtMC4yLTAuMi0wLjMtMC4zLTAuNUgxMnYxLjZoMTJWMTAuNXoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIGQ9''@;'; put 'put ''Ik0xMiw2djEuNmgxMC43Yy0wLjEtMC41LTAuMi0xLjEtMC4yLTEuNkgxMnoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQiIGQ9Ik0yNiwxMi4zVjMySDEwVjRoMTIuOGMwLjItMC43LDAu''@;'; put 'put ''NS0xLjQsMC45LTJIOS41QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjEzLjJDMjcuMywxMywyNi42LDEyLjcsMjYsMTIuM3oiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCBjbHItaS1i''@;'; put 'put ''YWRnZSIgY3g9IjMwIiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0yNi41LDJoLTE3QzguNywyLDgsMi43LDgsMy41VjM0aDIwVjMuNUMyOCwyLjcsMjcuMywyLDI2LjUsMnogTTE4LDMwLjVj''@;'; put 'put ''LTEuNSwwLTIuOC0xLjItMi44LTIuOFMxNi41LDI1LDE4LDI1czIuOCwxLjIsMi44LDIuOFMxOS41LDMwLjUsMTgsMzAuNXogTTIzLDIyLjZIMTNWMjFoMTBWMjIuNnogTTI0LDExLjZIMTJWMTBoMTJWMTEuNnogTTI0LDcuNkgxMlY2aDEyVjcuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2ly''@;'; put 'put ''Y2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjI3LjgiIHI9IjEuMiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0yMi4yLDE1LjNj''@;'; put 'put ''LTIsMC0zLjctMS42LTMuNy0zLjdIMTJWMTBoNi45YzAtMC4xLDAuMS0wLjIsMC4xLTAuMmwxLjItMi4ySDEyVjZoOS4ybDIuMy00aC0xNEM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxNS4zSDIyLjJ6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgs''@;'; put 'put ''MS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6IE0yMywyMi42SDEzVjIxaDEwVjIyLjZ6Ii8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0IiBkPSJNMjYuOSwxbC01LjcsOS45Yy0wLjMsMC42LTAuMSwxLjQsMC41LDEuN2MwLjIsMC4xLDAuNCwwLjIsMC42LDAuMmgx''@;'; put 'put ''MS40YzAuNywwLDEuMy0wLjYsMS4zLTEuM2MwLTAuMi0wLjEtMC40LTAuMi0wLjZMMjkuMSwxYy0wLjQtMC42LTEuMS0wLjgtMS44LTAuNUMyNy4xLDAuNywyNywwLjgsMjYuOSwxeiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMjQsMTAuM3YxLjJIMTJWMTBoMTEuOGMtMC41LTAuNy0wLjgtMS41LTEtMi40SDEyVjZoMTAuNWMwLDAsMC0wLjEsMC0wLjFjMC0xLjQsMC40LTIuNywxLjEtMy45SDkuNUM4LjcsMiw4LDIuNyw4LDMuNVYzNGgyMFYxMy4xQzI2LjQsMTIuNiwyNSwx''@;'; put 'put ''MS43LDI0LDEwLjN6IE0xOCwzMC41Yy0xLjUsMC0yLjgtMS4yLTIuOC0yLjhTMTYuNSwyNSwxOCwyNXMyLjgsMS4yLDIuOCwyLjhTMTkuNSwzMC41LDE4LDMwLjV6TTIzLDIyLjZIMTNWMjFoMTBWMjIuNnoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIyNy44IiByPSIxLjIiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiBjeD0iMzAiIGN5''@;'; put 'put ''PSI1LjkiIHI9IjUiLz5cbicpLGUuQ2xyU2hhcGVTdG9yYWdlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBkPSJNMzMsNi42OWgwYy0uMTgtMy40MS05LjQ3LTQuMzMtMTUtNC4zM1MzLDMuMjksMyw2Ljc4VjI5LjM3''@;'; put 'put ''YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUtNC40M1Y2Ljc4czAsMCwwLDBTMzMsNi43LDMzLDYuNjlabS0yLDcuNTZjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDE1LjM0djIuMDhBNDMuMzIsNDMuMzIsMCwwLDAsMTgsMTguN2M0LDAs''@;'; put 'put ''OS45My0uNDgsMTMtMnY1LjE3Yy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywyMi45MlYyNWE0My4zMiw0My4zMiwwLDAsMCwxMSwxLjI4YzQsMCw5LjkzLS40OCwxMy0ydjUuMWMtLjM1Ljg2LTUuMDgsMi40NS0xMywyLjQ1UzUuMywzMC4yLDUsMjkuMzdW''@;'; put 'put ''Ni44MkM1LjMsNiwxMCw0LjM2LDE4LDQuMzZjNy43NywwLDEyLjQ2LDEuNTMsMTMsMi4zNy0uNTIuODctNS4yMSwyLjM5LTEzLDIuMzlBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdjNCwwLDkuOTMtLjQ4LDEzLTJaIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIGQ9Ik0xOS41MSw5LjA5LDE4LDkuMTFBMzcuNiwzNy42LDAsMCwxLDcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjdoLjYxQTMuNjYsMy42Niww''@;'; put 'put ''LDAsMSwxOSw5Ljg5WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiBkPSJNMjguODMsMTUuNEEzOC4zNywzOC4zNywwLDAsMSwxOCwxNi43LDM3LjQ1LDM3LjQ1LDAsMCwxLDcsMTUu''@;'; put 'put ''MzR2Mi4wOEE0My4zMyw0My4zMywwLDAsMCwxOCwxOC43YzQsMCw5LjkzLS40OCwxMy0ydjUuMTdjLS4zMy44Ni01LjA2LDIuNDUtMTMsMi40NUEzNy40NSwzNy40NSwwLDAsMSw3LDIyLjkyVjI1YTQzLjMzLDQzLjMzLDAsMCwwLDExLDEuMjhjNCwwLDkuOTMtLjQ4LDEzLTJ2NS4xYy0uMzUu''@;'; put 'put ''ODYtNS4wOCwyLjQ1LTEzLDIuNDVTNS4zLDMwLjIsNSwyOS4zN1Y2LjgyQzUuMyw2LDEwLDQuMzYsMTgsNC4zNmMxLjUsMCwyLjg5LjA2LDQuMTUuMTZsMS4xLTEuOWMtMS44Ni0uMTgtMy43LS4yNi01LjI1LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMzdjMCwzLjQ5LDkuNDMsNC40''@;'; put 'put ''MywxNSw0LjQzczE1LS45MywxNS00LjQzdi0xNFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIgZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs''@;'; put 'put ''MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdl''@;'; put 'put ''ZCIgZD0iTTcsNy43NlY5Ljg1YTQzLjUzLDQzLjUzLDAsMCwwLDExLDEuMjcsNTQuODIsNTQuODIsMCwwLDAsNi4yLS4zNiw3LjUsNy41LDAsMCwxLTEuMTMtMS44OGMtMS41LjE1LTMuMi4yNC01LjA3LjI0QTM3LjYsMzcuNiwwLDAsMSw3LDcuNzZaIi8+XG4gICAgICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiBkPSJNMzEsMTMuNDN2LjgyYy0uMzMuODYtNS4wNiwyLjQ1LTEzLDIuNDVBMzcuNDUsMzcuNDUsMCwwLDEsNywxNS4zNHYyLjA4QTQzLjMzLDQzLjMzLDAsMCwwLDE4LDE4LjdjNCww''@;'; put 'put ''LDkuOTMtLjQ4LDEzLTJ2NS4xN2MtLjMzLjg2LTUuMDYsMi40NS0xMywyLjQ1QTM3LjQ1LDM3LjQ1LDAsMCwxLDcsMjIuOTJWMjVhNDMuMzMsNDMuMzMsMCwwLDAsMTEsMS4yOGM0LDAsOS45My0uNDgsMTMtMnY1LjFjLS4zNS44Ni01LjA4LDIuNDUtMTMsMi40NVM1LjMsMzAuMiw1LDI5LjM3''@;'; put 'put ''VjYuODJDNS4zLDYsMTAsNC4zNiwxOCw0LjM2YzEuNywwLDMuMjUuMDgsNC42NC4yYTcuNDQsNy40NCwwLDAsMSwuNjctMS45NGMtMS44OC0uMTgtMy43NS0uMjYtNS4zMS0uMjYtNS41NywwLTE1LC45My0xNSw0LjQzVjI5LjM3YzAsMy40OSw5LjQzLDQuNDMsMTUsNC40M3MxNS0uOTMsMTUt''@;'; put 'put ''NC40M1YxMi44N0E3LjQ1LDcuNDUsMCwwLDEsMzEsMTMuNDNaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NFY4LjU5Yy0uNDMsMi4yLTcsMy45NC0xNS4wOSwzLjk0QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzkuNCwz''@;'; put 'put ''OS40LDAsMCwwLDExLjY2LDEuNTFDMjYsMTAuNTMsMzIuNTIsOC43OSwzMyw2LjYxaDBDMzIuOCwzLjIsMjMuNTIsMi4yOCwxOCwyLjI4UzMsMy4yMSwzLDYuNzFWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3''@;'; put 'put ''LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4yNSwxOC43N3YtMkEzOS40LDM5LjQsMCww''@;'; put 'put ''LDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgZD0iTTE3LjkxLDIwLjI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDE4Ljc3di0yYTM5LjQsMzkuNCwwLDAsMCwxMS42''@;'; put 'put ''NiwxLjUxYzYuOSwwLDEyLjctMS4yNywxNC41MS0zSDIyLjIzYTMuNjcsMy42NywwLDAsMS0zLjU1LTIuNzVoLS43N0EzOS40LDM5LjQsMCwwLDEsNi4yNSwxMVY5YTM5LjQsMzkuNCwwLDAsMCwxMS42NiwxLjUxaC44MkEzLjY0LDMuNjQsMCwwLDEsMTksOS43NWw0LjE3LTcuMjJjLTEuODUt''@;'; put 'put ''LjE4LTMuNjgtLjI1LTUuMjEtLjI1LTUuNTcsMC0xNSwuOTMtMTUsNC40M1YyOS4yOWMwLDMuNDksOS40Myw0LjQzLDE1LDQuNDNzMTUtLjkzLDE1LTQuNDNWMjQuMDlDMzIuNTcsMjYuMjgsMjYsMjgsMTcuOTEsMjhBMzkuNCwzOS40LDAsMCwxLDYuMjUsMjYuNTJ2LTJBMzkuNCwzOS40LDAs''@;'; put 'put ''MCwwLDE3LjkxLDI2QzI2LDI2LDMyLjU3LDI0LjI4LDMzLDIyLjA5VjE2LjM0QzMyLjU3LDE4LjUzLDI2LDIwLjI4LDE3LjkxLDIwLjI4WiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktYWxlcnQiIGQ9Ik0yNi44NSwxbC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEuMSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNiwxQTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxWiIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xp''@;'; put 'put ''ZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiBkPSJNMTcuOTEsMTguMjhjOC4wOCwwLDE0LjY2LTEuNzQsMTUuMDktMy45NHYtMS42YTcuNDcsNy40NywwLDAsMS03LjM4LS44LDQ4LjMsNDguMywwLDAsMS03LjcxLjU5QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDExVjlhMzku''@;'; put 'put ''NCwzOS40LDAsMCwwLDExLjY2LDEuNTEsNTEsNTEsMCwwLDAsNi0uMzQsNy40Niw3LjQ2LDAsMCwxLS41OS03LjY1Yy0xLjg3LS4xOC0zLjczLS4yNi01LjI4LS4yNi01LjU3LDAtMTUsLjkzLTE1LDQuNDNWMjkuMjljMCwzLjQ5LDkuNDMsNC40MywxNSw0LjQzczE1LS45MywxNS00LjQzVjI0''@;'; put 'put ''LjA5QzMyLjU3LDI2LjI4LDI2LDI4LDE3LjkxLDI4QTM5LjQsMzkuNCwwLDAsMSw2LjI1LDI2LjUydi0yQTM5LjQsMzkuNCwwLDAsMCwxNy45MSwyNkMyNiwyNiwzMi41NywyNC4yOCwzMywyMi4wOVYxNi4zNGMtLjQzLDIuMi03LDMuOTQtMTUuMDksMy45NEEzOS40LDM5LjQsMCwwLDEsNi4y''@;'; put 'put ''NSwxOC43N3YtMkEzOS40LDM5LjQsMCwwLDAsMTcuOTEsMTguMjhaIi8+XG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMwIiBjeT0iNS44NiIgcj0iNSIvPlxuJyks''@;'; put 'put ''ZS5DbHJTaGFwZUNsdXN0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjM2LDhIMjcuNXYySDMxVjMwSDI3LjV2MkgzM1Y5LjY3QTEuNjUsMS42NSwwLDAsMCwzMS4zNiw4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+PGVsbGlwc2UgY3g9IjE4LjAxIiBjeT0iMjUuOTkiIHJ4PSIxLjgiIHJ5PSIxLjc5IiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMjQsMzBIMTJWNkgyNFoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNSwxMEg4''@;'; put 'put ''LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdWMzJIOC41VjMwSDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSw5Ljg5bC4zOS0uNjhIMTMuNXYxLjZoNS4xN0EzLjY1LDMuNjUsMCwwLDEsMTksOS44OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVk''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQsMzBIMTJWNmg5LjI5bDEuMTUtMkgxMS42OEExLjY4LDEuNjgsMCwwLDAsMTAsNS42OFYzMkgyNlYxNS40SDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTQtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzEgMTUuNCAzMSAzMCAyNy41IDMwIDI3LjUgMzIgMzMgMzIgMzMgMTUuNCAzMSAxNS40IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRl''@;'; put 'put ''ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDEwSDguNVY4SDQuNjRBMS42NSwxLjY1LDAsMCwwLDMsOS42N1YzMkg4LjVWMzBINVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPjxlbGxpcHNlIGN4PSIxOC4wMSIgY3k9IjI1Ljk5IiByeD0iMS44IiByeT0iMS43OSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMy41IiB5''@;'; put 'put ''PSI5LjIxIiB3aWR0aD0iOSIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LDEwLjQ5VjMwSDEyVjZIMjIuNWE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhB''@;'; put 'put ''MS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy41Myw3LjUzLDAsMCwxLDI0LDEwLjQ5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzEsMTMuNDNWMzBIMjcuNXYy''@;'; put 'put ''SDMzVjEyLjg3QTcuNDUsNy40NSwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4zNiw4SDI3LjVWMzJIMzNWOS42N0ExLjY1LDEuNjUsMCwwLDAsMzEuMzYsOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAg''@;'; put 'put ''ICAgICAgICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI0LjMyLDRIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUu''@;'; put 'put ''NjhWMzJIMjZWNS42OEExLjY4LDEuNjgsMCwwLDAsMjQuMzIsNFpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik0zLDkuNjdWMzJIOC41VjhINC42NEExLjY1LDEuNjUsMCwwLDAsMyw5LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuNSIgeT0iMTUuNCIgd2lkdGg9IjUu''@;'; put 'put ''NSIgaGVpZ2h0PSIxNi42IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZhMy42OCwzLjY4LDAsMCwxLS4zMS0zSDEzVjloNi41NmwyLjg5LTVIMTEuNjhBMS42OCwxLjY4LDAs''@;'; put 'put ''MCwwLDEwLDUuNjhWMzJIMjZWMTUuNEgyMi4yM0EzLjY5LDMuNjksMCwwLDEsMTksMTMuNTZaTTE4LDI3Ljc5QTEuNzksMS43OSwwLDEsMSwxOS44MSwyNiwxLjgsMS44LDAsMCwxLDE4LDI3Ljc5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxl''@;'; put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsOS42N1YzMkg4LjVWOEg0LjY0QTEuNjUsMS42NSwwLDAsMCwzLDkuNjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMTEuNjhBMS42OCwxLjY4LDAsMCwwLDEwLDUuNjhWMzJIMjZWMTIuMzRBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNlpNMTgsMjcuNzlBMS43OSwxLjc5LDAsMSwxLDE5LjgxLDI2''@;'; put 'put ''LDEuOCwxLjgsMCwwLDEsMTgsMjcuNzlaTTIzLDEwLjZIMTNWOUgyM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ3LDcuNDcsMCwwLDEtMi41LS40NFYzMkgzM1YxMi44''@;'; put 'put ''N0E3LjQ3LDcuNDcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVBcHBsaWNhdGlvbnM9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAgNCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSA4IDE1IDggMTUgMTAgMjEgMTAgMjEgNCAxOSA0IDE5IDgiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDQgMzAg''@;'; put 'put ''OCAyNiA4IDI2IDEwIDMyIDEwIDMyIDQgMzAgNCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBv''@;'; put 'put ''aW50cz0iMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUgMzAgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUgMzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI4IDggNCA4IDQgMTAgMTAgMTAgMTAg''@;'; put 'put ''NCA4IDQgOCA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgOCAxNSA4IDE1IDEwIDIxIDEwIDIxIDQgMTkgNCAxOSA4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMTkgMTUgMTkgMTUgMjEgMjEgMjEgMjEgMTUgMTkgMTUgMTkgMTkiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIz''@;'; put 'put ''MCAxOSAyNiAxOSAyNiAyMSAzMiAyMSAzMiAxNSAzMCAxNSAzMCAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYg''@;'; put 'put ''OCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjE5IDMwIDE1IDMwIDE1IDMyIDIxIDMyIDIxIDI2IDE5IDI2IDE5IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMzAgMjYgMzAgMjYgMzIgMzIgMzIgMzIgMjYgMzAgMjYgMzAgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdl''@;'; put 'put ''ZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCA4IDQgOCA0IDEwIDEw''@;'; put 'put ''IDEwIDEwIDQgOCA0IDggOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxOSA0IDE5IDQgMjEgMTAgMjEgMTAgMTUgOCAxNSA4IDE5IiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxOSAxOSAxNSAxOSAxNSAyMSAyMSAyMSAyMSAxNSAxOSAxNSAxOSAxOSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMzAgMTUgMzAgMTkgMjYgMTkgMjYgMjEgMzIgMjEgMzIgMTUgMzAgMTUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cG9seWdvbiBwb2ludHM9IjggMzAgNCAzMCA0IDMyIDEwIDMyIDEwIDI2IDggMjYgOCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTkgMzAgMTUgMzAgMTUg''@;'; put 'put ''MzIgMjEgMzIgMjEgMjYgMTkgMjYgMTkgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjMwIDMwIDI2IDMwIDI2IDMyIDMyIDMyIDMyIDI2IDMwIDI2IDMwIDMwIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDhIMTV2Mmg0TDE5LDkuODksMjEsNi41VjRIMTlaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtOC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTktLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtMyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNiIgeT0i''@;'; put 'put ''NCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNyIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC04Ii8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cmVjdCB4PSIyNiIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjQiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVj''@;'; put 'put ''dCB4PSI0IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTUiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjYiIHk9IjI2IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMTBoNEwxOSw5Ljg5LDIxLDYuNVY0SDE1WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtOC0tYWxlcnRlZCIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtOS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IHg9IjQiIHk9IjE1IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iNCIgeT0iMjYiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1z''@;'; put 'put ''b2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC00LS1iYWRnZWQiLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IHg9IjE1IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE1IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI2IiB5PSIxNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC03LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxyZWN0IHg9IjI2IiB5PSIyNiIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC05LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUJ1aWxkaW5nPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOS44OCwzSDYuMTJBMi4xMiwyLjEyLDAsMCwwLDQsNS4xMlYzM0gyMlY1LjEyQTIuMTIsMi4xMiww''@;'; put 'put ''LDAsMCwxOS44OCwzWk0yMCwzMUgxN1YyOEg5djNINlY1LjEyQS4xMi4xMiwwLDAsMSw2LjEyLDVIMTkuODhhLjEyLjEyLDAsMCwxLC4xMi4xMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; put 'put ''eD0iOCIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8cmVjdCB4PSI4IiB5PSIxMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRn''@;'; put 'put ''ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC04LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhl''@;'; put 'put ''aWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0i''@;'; put 'put ''MjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEyLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjMiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cmVjdCB4PSIyNyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE1LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTYtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYmFk''@;'; put 'put ''Z2VkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIi''@;'; put 'put ''IGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDEzLjQzVjMxSDIzdjJIMzNWMTIuODdBNy40NSw3LjQ1LDAsMCwxLDMxLDEzLjQzWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMjAtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yMS0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjEzIiB3''@;'; put 'put ''aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC03LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cmVjdCB4PSIxMiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC04LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1hbGVy''@;'; put 'put ''dGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTYiIHk9IjIzIiB3aWR0aD0i''@;'; put 'put ''MiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTEzLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJl''@;'; put 'put ''Y3QgeD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE2LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjAsMzFIMTdWMjhIOXYzSDZWNS4xMkEuMTIuMTIsMCwwLDEsNi4xMiw1SDE5Ljg4YS4xMi4xMiwwLDAsMSwuMTIuMTJWOC4yNGwyLTMuNDFBMi4xMiwy''@;'; put 'put ''LjEyLDAsMCwwLDE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjE1LjM4YTMuNjgsMy42OCwwLDAsMS0yLS43NFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xNy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHln''@;'; put 'put ''b24gcG9pbnRzPSIzMSAxNS40IDMxIDMxIDIzIDMxIDIzIDMzIDMzIDMzIDMzIDE1LjQgMzEgMTUuNCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTE4LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywx''@;'; put 'put ''MUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMTktLWFsZXJ0ZWQgY2xyLWkt''@;'; put 'put ''YWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSw4SDIyVjMzSDMzVjEwQTIsMiwwLDAsMCwzMSw4Wk0yNiwyNUgyNFYyM2gyWm0wLTVIMjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJabTAtNUgyOFYxM2gyWiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''IGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDlabTAt''@;'; put 'put ''NUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTE3Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDlWMzBoNnYzaDVWMTQuNjRhMy42NywzLjY3LDAsMCwxLTEtNC43NmwxLTEuNjVWNS4xMkEyLjEyLDIuMTIsMCwwLDAsMTcuODgsM1pNOSwyNUg3VjIzSDlabTAtNUg3VjE4SDlabTAtNUg3VjEzSDla''@;'; put 'put ''bTAtNUg3VjhIOVptNCwxNUgxMVYyM2gyWm0wLTVIMTFWMThoMlptMC01SDExVjEzaDJabTAtNUgxMVY4aDJabTQsMTVIMTVWMjNoMlptMC01SDE1VjE4aDJabTAtNUgxNVYxM2gyWm0wLTVIMTVWOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0t''@;'; put 'put ''YWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRsLS4yMywwVjMzSDMzVjE1LjRaTTI2LDI1SDI0VjIzaDJabTAtNUgyNFYxOGgyWm00LDVIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0y''@;'; put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcuODgsM0g2LjEyQTIuMTIsMi4xMiwwLDAsMCw0LDUuMTJWMzNIOVYzMGg2djNoNVY1LjEyQTIuMTIsMi4xMiwwLDAsMCwxNy44OCwzWk05LDI1''@;'; put 'put ''SDdWMjNIOVptMC01SDdWMThIOVptMC01SDdWMTNIOVptMC01SDdWOEg5Wm00LDE1SDExVjIzaDJabTAtNUgxMVYxOGgyWm0wLTVIMTFWMTNoMlptMC01SDExVjhoMlptNCwxNUgxNVYyM2gyWm0wLTVIMTVWMThoMlptMC01SDE1VjEzaDJabTAtNUgxNVY4aDJaIiBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVWMTVIMjhWMTMuMjJBNy41LDcuNSwwLDAsMSwyMi43OCw4SDIyVjMzSDMzVjEyLjg3QTcuNDcsNy40NywwLDAsMSwzMCwxMy41Wk0yNiwyNUgyNFYyM2gyWm0wLTVI''@;'; put 'put ''MjRWMThoMlptMC01SDI0VjEzaDJabTQsMTBIMjhWMjNoMlptMC01SDI4VjE4aDJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLDhIMjN2Mmg4VjMxSDIzdjJIMzNWMTBBMiwyLDAsMCwwLDMxLDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg4LDNINi4xMkEyLjEyLDIuMTIsMCwwLDAsNCw1LjEyVjMzSDIyVjUuMTJBMi4xMiwyLjEyLDAsMCwwLDE5Ljg4LDNaTTIwLDMxSDE3VjI4SDl2M0g2VjUuMTJBLjEyLjEyLDAsMCwxLDYuMTIsNUgxOS44OGEuMTIuMTIsMCwwLDEsLjEyLjEyWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; put 'put ''MiIgeT0iOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSI4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSI4IiB5''@;'; put 'put ''PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEyIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEwIi8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNiIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOCIgeT0iMjMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMiIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTMiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2''@;'; put 'put ''IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyMyIgeT0iMTMiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xNSIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjciIHk9IjEzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjIzIiB5PSIxOCIgd2lkdGg9IjIiIGhlaWdodD0iMiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE3Ii8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNyIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xOCIvPlxuICAgICAgICAgICAgPHJlY3Qg''@;'; put 'put ''eD0iMjMiIHk9IjIzIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTkiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI3IiB5PSIyMyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTIwIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDUFU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjA4LDIzLjA3aC0xMXYxLjVIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTEuMzNoLTEuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwxOC4xNWEuOC44LDAsMSwwLDAtMS42SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWOC4xQTIuMSwyLjEsMCwwLDAsMjcuOSw2SDI2LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEs''@;'; put 'put ''MC0xLjYsMFY2aC01LjRWMy44YS44LjgsMCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDgu''@;'; put 'put ''MSwzMGgyLjY1djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNFpNMjgsMjcuOWEuMS4x''@;'; put 'put ''LDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhIMjcuOWEuMS4xLDAsMCwxLC4xLjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEyLjA2LDI0LjU3SDIzLjgzYS43''@;'; put 'put ''NS43NSwwLDAsMCwuNzUtLjc1VjExLjMzaC0xLjVWMjMuMDdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42''@;'; put 'put ''SDMwVjEzLjVhNy40OSw3LjQ5LDAsMCwxLTItLjI4VjI3LjlhLjEuMSwwLDAsMS0uMS4xSDguMWEuMS4xLDAsMCwxLS4xLS4xVjguMUEuMS4xLDAsMCwxLDguMSw4SDIyLjc4YTcuNDksNy40OSwwLDAsMS0uMjgtMkgxOS4zNVYzLjhhLjguOCwwLDEsMC0xLjYsMFY2aC01LjRWMy44YS44Ljgs''@;'; put 'put ''MCwxLDAtMS42LDBWNkg4LjFBMi4xLDIuMSwwLDAsMCw2LDguMVY5LjU1SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZ2NS40SDMuOGEuOC44LDAsMSwwLDAsMS42SDZWMjcuOUEyLjEsMi4xLDAsMCwwLDguMSwzMGgyLjY1djIuMmEuOC44LDAsMSww''@;'; put 'put ''LDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBIMjcuOUEyLjEsMi4xLDAsMCwwLDMwLDI3LjlWMjUuMTVoMi4yYS44LjgsMCwxLDAsMC0xLjZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuMiwyMy41''@;'; put 'put ''NUgzMHYtNS40aDIuMmEuOC44LDAsMSwwLDAtMS42SDMwVjE1LjRIMjhWMjcuOWEuMS4xLDAsMCwxLS4xLjFIOC4xYS4xLjEsMCwwLDEtLjEtLjFWOC4xQS4xLjEsMCwwLDEsOC4xLDhoMTJsMS4xNS0ySDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0x''@;'; put 'put ''LjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBW''@;'; put 'put ''MzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTIuMDYsMjQuNTdIMjMuODNhLjc1Ljc1LDAsMCwwLC43NS0uNzVWMTUuNGgtMS41djcuNjdoLTExWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjIsMjMuNTVIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFYxNS40SDI1djguNDFBMS4xOCwxLjE4LDAsMCwxLDI0LDI1SDEzVjIzSDIzVjE1LjRoLS43N0Ez''@;'; put 'put ''LjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMS4yOSw2SDE5LjM1VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDguMUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZI''@;'; put 'put ''NnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcu''@;'; put 'put ''OVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEEx''@;'; put 'put ''LjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDIz''@;'; put 'put ''LjU1SDMwdi01LjRoMi4yYS44LjgsMCwxLDAsMC0xLjZIMzBWMTMuNWE3LjQ2LDcuNDYsMCwwLDEtNS0xLjkyVjIzLjgxQTEuMTgsMS4xOCwwLDAsMSwyNCwyNUgxM1YyM0gyM1YxMWgxLjQyQTcuNDYsNy40NiwwLDAsMSwyMi41LDZIMTkuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40''@;'; put 'put ''VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZIOC4xQTIuMSwyLjEsMCwwLDAsNiw4LjFWOS41NUgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2djUuNEgzLjhhLjguOCwwLDEsMCwwLDEuNkg2VjI3LjlBMi4xLDIuMSwwLDAsMCw4LjEsMzBoMi42NXYyLjJh''@;'; put 'put ''LjguOCwwLDEsMCwxLjYsMFYzMGg1LjR2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIuMmEuOC44LDAsMSwwLDEuNiwwVjMwSDI3LjlBMi4xLDIuMSwwLDAsMCwzMCwyNy45VjI1LjE1aDIuMmEuOC44LDAsMSwwLDAtMS42WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yLDE4''@;'; put 'put ''LjE1YS44LjgsMCwxLDAsMC0xLjZIMzB2LTUuNGgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMFY4LjFBMi4xLDIuMSwwLDAsMCwyNy45LDZIMjYuMzVWMy44YS44LjgsMCwxLDAtMS42LDBWNmgtNS40VjMuOGEuOC44LDAsMSwwLTEuNiwwVjZoLTUuNFYzLjhhLjguOCwwLDEsMC0xLjYsMFY2SDgu''@;'; put 'put ''MUEyLjEsMi4xLDAsMCwwLDYsOC4xVjkuNTVIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINnY1LjRIMy44YS44LjgsMCwxLDAsMCwxLjZINlYyNy45QTIuMSwyLjEsMCwwLDAsOC4xLDMwaDIuNjV2Mi4yYS44LjgsMCwxLDAsMS42LDBWMzBoNS40djIu''@;'; put 'put ''MmEuOC44LDAsMSwwLDEuNiwwVjMwaDUuNHYyLjJhLjguOCwwLDEsMCwxLjYsMFYzMEgyNy45QTIuMSwyLjEsMCwwLDAsMzAsMjcuOVYyNS4xNWgyLjJhLjguOCwwLDEsMCwwLTEuNkgzMHYtNS40Wk0yNSwyMy44MUExLjE4LDEuMTgsMCwwLDEsMjQsMjVIMTNWMjNIMjNWMTFoMloiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZU1lbW9yeT0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4PSI4IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI0IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwyN0g0VjE3SDJWMjdhMiwyLDAsMCwwLDIsMkgxNi42MVYyNS41NWgyLjI2VjI0SDE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMiw3SDRBMiwyLDAsMCwwLDIsOXY0SDRWOUgzMnY0aDJWOUEyLDIsMCwwLDAsMzIsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMjdIMTl2MkgzMmEyLDIsMCwwLDAsMi0y''@;'; put 'put ''VjE3SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRl''@;'; put 'put ''ZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE1LDI3SDRWMTdIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1LjU1aDIuMjZWMjRIMTVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTksMTMuNTZBMy42NiwzLjY2LDAsMCwxLDE4LjU3LDEySDE2djho''@;'; put 'put ''NFYxNC42NEEzLjY3LDMuNjcsMCwwLDEsMTksMTMuNTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjQiIHk9IjE1LjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjQuNiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMTkuNTZsMS4xNS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''Ni0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTctLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjgiIHk9IjEyIiB3aWR0aD0iNCIgaGVpZ2h0PSI4IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE2IiB5PSIxMiIgd2lkdGg9IjQiIGhlaWdodD0iOCIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMjdINFYxN0gyVjI3''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVoMi4yNlYyNEgxNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDE3VjI3SDE5djJIMzJhMiwyLDAsMCwwLDItMlYxN1oiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDEzLjIyQTcuNDYsNy40NiwwLDAsMSwyNS41MSwxMkgyNHY4aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC01LS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDlIMjMuMTNhNy40NSw3LjQ1LDAsMCwxLS41NS0ySDRBMiwyLDAsMCwwLDIsOXY0SDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC02LS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQsMTNWOWEyLDIsMCwwLDAtMi0ySDRBMiwyLDAsMCwwLDIs''@;'; put 'put ''OXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN0gzMlYxM1pNMTIsMjBIOFYxMmg0Wm04LDBIMTZWMTJoNFptOCwwSDI0VjEyaDRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBkPSJNMzIsMTdWMTUuMDdIMjhWMjBIMjRWMTUuMDdIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDIwLDE0LjMxVjIwSDE2VjEyaDIuNjFBMy42OCwzLjY4LDAsMCwxLDE5LDkuNTVMMjAuNTIsN0g0QTIsMiwwLDAsMCwyLDl2NEg0djRIMlYyN2EyLDIsMCwwLDAsMiwySDE2LjYxVjI1''@;'; put 'put ''LjU1SDE5VjI5SDMyYTIsMiwwLDAsMCwyLTJWMTdaTTEyLDIwSDhWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NS44bC01LjcyLDkuOTFhMS4yOCwxLjI4LDAsMCwwLDEu''@;'; put 'put ''MSwxLjkxSDMzLjY4YTEuMjgsMS4yOCwwLDAsMCwxLjEtMS45MUwyOS4wNi44QTEuMjgsMS4yOCwwLDAsMCwyNi44NS44WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTMyLDE3VjEzLjIyYTcuMzMsNy4zMywwLDAsMS00LDBWMjBIMjRWMTJoMS41MWE3LjQ4LDcuNDgsMCwwLDEtMi45NC01SDRBMiwyLDAsMCwwLDIsOXY0SDR2NEgyVjI3YTIsMiwwLDAsMCwyLDJIMTYuNjFWMjUuNTVIMTlWMjlIMzJhMiwyLDAsMCwwLDItMlYxN1pNMTIsMjBIOFYxMmg0Wm04''@;'; put 'put ''LDBIMTZWMTJoNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEYXRhQ2x1c3Rlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNSw0LjA4QzIyLjc3LDQuMDgsMTksNS40LDE5LDcuOTFWOS41YTE4Ljc1LDE4Ljc1LDAsMCwxLDIsLjJWNy45MWMwLS42NSwyLjA5LTEuODQsNS41''@;'; put 'put ''LTEuODRTMzIsNy4yNywzMiw3LjkxVjE4LjI0YzAsLjU0LTEuNDYsMS40NC0zLjksMS43M3YyYzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEu''@;'; put 'put ''NjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0''@;'; put 'put ''LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjE1LjIzQzI2LjY1LDEyLjczLDIyLjkzLDEwLjg1LDE4LDEwLjg1Wm02LjY1LDcuNjdjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43Niwx''@;'; put 'put ''Mi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIuMzhzLTYuNjUt''@;'; put 'put ''MS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOHM2LjY1LDEuNDMsNi42NSwyLjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDE4LjI0VjcuOTFjMC0uNjUsMi4wOS0xLjg0''@;'; put 'put ''LDUuNS0xLjg0UzE1LDcuMjcsMTUsNy45MVY5LjdhMTguNzUsMTguNzUsMCwwLDEsMi0uMlY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMlYyMEM1LjQ2LDE5LjY4LDQsMTguNzgsNCwxOC4yNFoiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjQuNjUsMTguNTJjLS44NSwxLTMuNDIsMi02LjY1LDJBMTQuNDksMTQuNDksMCwwLDEsMTQsMjB2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40''@;'; put 'put ''NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2My4xMmMtLjg1LDEtMy40MiwyLTYuNjUsMmExNC40OSwxNC40OSwwLDAsMS00LS41M3YxLjQ2YTE2LjMzLDE2LjMzLDAsMCwwLDQsLjQ3LDEyLjc2LDEyLjc2LDAsMCwwLDYuNjUtMS41NnYyLjI5YzAsLjk1LTIuNjUsMi4zOC02LjY1LDIu''@;'; put 'put ''MzhzLTYuNjUtMS40My02LjY1LTIuMzhWMTUuMjNjMC0uOTUsMi42NS0yLjM4LDYuNjUtMi4zOGwuNzUsMGEzLjY5LDMuNjksMCwwLDEtLjA4LTJsLS42NiwwYy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42NSw0LjM4czguNjUtMS44OCw4LjY1''@;'; put 'put ''LTQuMzhWMTUuNGgtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNC44Yy0xLjc1LjYzLTMsMS42OC0zLDMuMTJWOS41bC4yNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjIuODRjMCwuNTQtMS40NiwxLjQ0LTMuOSwxLjczdjJjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5l''@;'; put 'put ''LS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAs''@;'; put 'put ''MCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMTguMjRWNy45MWMwLS42NSwyLjA5LTEuODQsNS41LTEuODRTMTUsNy4yNywxNSw3''@;'; put 'put ''LjkxVjkuN2ExOC43NSwxOC43NSwwLDAsMSwyLS4yVjcuOTFjMC0yLjUyLTMuNzctMy44NC03LjUtMy44NFMyLDUuNCwyLDcuOTFWMTguMjRDMiwyMC40LDQuNzcsMjEuNjcsNy45LDIyVjIwQzUuNDYsMTkuNjgsNCwxOC43OCw0LDE4LjI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTAuODVjLTQuOTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYxNS4yM0MyNi42NSwxMi43Mywy''@;'; put 'put ''Mi45MywxMC44NSwxOCwxMC44NVptNi42NSw3LjY3Yy0uODUsMS0zLjQyLDItNi42NSwyQTE0LjQ5LDE0LjQ5LDAsMCwxLDE0LDIwdjEuNDZhMTYuMzMsMTYuMzMsMCwwLDAsNCwuNDcsMTIuNzYsMTIuNzYsMCwwLDAsNi42NS0xLjU2djMuMTJjLS44NSwxLTMuNDIsMi02LjY1LDJhMTQuNDks''@;'; put 'put ''MTQuNDksMCwwLDEtNC0uNTN2MS40NmExNi4zMywxNi4zMywwLDAsMCw0LC40NywxMi43NiwxMi43NiwwLDAsMCw2LjY1LTEuNTZ2Mi4yOWMwLC45NS0yLjY1LDIuMzgtNi42NSwyLjM4cy02LjY1LTEuNDMtNi42NS0yLjM4VjE1LjIzYzAtLjk1LDIuNjUtMi4zOCw2LjY1LTIuMzhzNi42NSwx''@;'; put 'put ''LjQzLDYuNjUsMi4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIxLDcuOTFjMC0uMzMuNTUtLjgsMS41NC0xLjE4LDAtLjI0LDAtLjQ4LDAtLjczYTcuNTIsNy41MiwwLDAsMSwu''@;'; put 'put ''MTQtMS40MUMyMC41NSw1LjE5LDE5LDYuMywxOSw3LjkxVjkuNWExOC43NSwxOC43NSwwLDAsMSwyLC4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2NWMwLC41NC0x''@;'; put 'put ''LjQ2LDEuNDQtMy45LDEuNzN2MmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1di01LjlBNy40NSw3LjQ1LDAsMCwxLDMyLDEzLjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIz''@;'; put 'put ''MCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjUsNC4wOEMyMi43Nyw0LjA4LDE5LDUuNCwxOSw3LjkxVjkuNDhjNS4zLjI2LDksMi42''@;'; put 'put ''LDksNS43NnY2LjdsLjA1LjA2YzMuMTMtLjMyLDUuOS0xLjYsNS45LTMuNzVWNy45MUMzNCw1LjQsMzAuMjMsNC4wOCwyNi41LDQuMDhaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0z''@;'; put 'put ''Ljc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; put 'put ''Ik0xOCwxMC44NWMtNC45MywwLTguNjUsMS44OC04LjY1LDQuMzhWMjcuNTRjMCwyLjUsMy43Miw0LjM4LDguNjUsNC4zOHM4LjY1LTEuODgsOC42NS00LjM4VjI1LjM4QTEzLjU4LDEzLjU4LDAsMCwxLDE4LDI4YTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyNS4yN2ExNC41LDE0LjUsMCwwLDAs''@;'; put 'put ''NiwxLjE3YzQuMjEsMCw3LjY1LTEuMjMsOC42My0zLjIzVjIwLjQ3QzI0LjgsMjIsMjEuNzIsMjMsMTgsMjNhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjIwLjIzYTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4xMSw4LjYzLTMuMTFWMTUuMjNDMjYuNjUsMTIuNzMsMjIuOTMs''@;'; put 'put ''MTAuODUsMTgsMTAuODVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsOS40OFY3LjkxYzAtMi41Mi0zLjc3LTMuODQtNy41LTMuODRTMiw1LjQsMiw3LjkxVjE4LjI0QzIsMjAuNCw0Ljc3LDIxLjY3LDcuOSwyMkw4''@;'; put 'put ''LDIxLjkzdi02LjdDOCwxMi4wOCwxMS43LDkuNzQsMTcsOS40OFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NmEzLjY4LDMuNjgsMCwwLDEtLjM5LTIuN2wtLjY2LDBjLTQu''@;'; put 'put ''OTMsMC04LjY1LDEuODgtOC42NSw0LjM4VjI3LjU0YzAsMi41LDMuNzIsNC4zOCw4LjY1LDQuMzhzOC42NS0xLjg4LDguNjUtNC4zOFYyNS4zOEExMy41OCwxMy41OCwwLDAsMSwxOCwyOGExNi43NywxNi43NywwLDAsMS02LTFWMjUuMjdhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAs''@;'; put 'put ''Ny42NS0xLjIzLDguNjMtMy4yM1YyMC40N0MyNC44LDIyLDIxLjcyLDIzLDE4LDIzYTE2Ljc3LDE2Ljc3LDAsMCwxLTYtMVYyMC4yM2ExNC41LDE0LjUsMCwwLDAsNiwxLjE3YzQuMjEsMCw3LjY1LTEuMTEsOC42My0zLjExVjE1LjRIMjIuMjNBMy42OSwzLjY5LDAsMCwxLDE5LDEzLjU2WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDQuOGMtMS43NS42My0zLDEuNjgtMywzLjEyVjkuNDhsLjI3LDBaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC0zLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgyOHY2LjUzbC4wNS4wNmMzLjEzLS4zMiw1LjktMS42LDUuOS0zLjc1VjE1LjM4WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNs''@;'; put 'put ''ci1pLXNvbGlkLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3LDkuNDhWNy45MWMwLTIuNTItMy43Ny0zLjg0LTcuNS0zLjg0UzIsNS40LDIsNy45MVYxOC4yNEMyLDIwLjQsNC43NywyMS42Nyw3LjksMjJMOCwyMS45M3YtNi43QzgsMTIu''@;'; put 'put ''MDgsMTEuNyw5Ljc0LDE3LDkuNDhaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDEwLjg1Yy00LjkzLDAtOC42NSwxLjg4LTguNjUsNC4zOFYyNy41NGMwLDIuNSwzLjcyLDQuMzgsOC42''@;'; put 'put ''NSw0LjM4czguNjUtMS44OCw4LjY1LTQuMzhWMjUuMzhBMTMuNTgsMTMuNTgsMCwwLDEsMTgsMjhhMTYuNzcsMTYuNzcsMCwwLDEtNi0xVjI1LjI3YTE0LjUsMTQuNSwwLDAsMCw2LDEuMTdjNC4yMSwwLDcuNjUtMS4yMyw4LjYzLTMuMjNWMjAuNDdDMjQuOCwyMiwyMS43MiwyMywxOCwyM2Ex''@;'; put 'put ''Ni43NywxNi43NywwLDAsMS02LTFWMjAuMjNhMTQuNSwxNC41LDAsMCwwLDYsMS4xN2M0LjIxLDAsNy42NS0xLjExLDguNjMtMy4xMVYxNS4yM0MyNi42NSwxMi43MywyMi45MywxMC44NSwxOCwxMC44NVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0t''@;'; put 'put ''YmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuNSw2YTcuNTIsNy41MiwwLDAsMSwuMTQtMS40QzIwLjU1LDUuMTksMTksNi4zLDE5LDcuOTFWOS40OGExNS4zMywxNS4zMywwLDAsMSw1LDFBNy40Niw3LjQ2LDAsMCwxLDIyLjUsNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNDlBNy40Nyw3LjQ3LDAsMCwxLDI3LjM1LDEzYTQsNCwwLDAsMSwuNywyLjIzdjYuN2wuMDUuMDZjMy4xMy0uMzIsNS45LTEuNiw1LjktMy43NVYxMi4zM0E3LjQ2LDcuNDYsMCww''@;'; put 'put ''LDEsMzAsMTMuNDlaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI1Ljk5IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTUtLWJh''@;'; put 'put ''ZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUmVzb3VyY2VQb29sPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy42OCwxNS40SDMxLjczYTE0LDE0LDAsMCwxLC4yMiwxLjZIMTcuNDlMOC4zLDI4LjA3QTE0LDE0LDAsMCwxLDIyLjA5LDQuNjJsMS0xLjc2''@;'; put 'put ''QTE2LDE2LDAsMSwwLDM0LDE4YTE2LDE2LDAsMCwwLS4yMy0yLjYxWk0xOCwzMmExMy45MSwxMy45MSwwLDAsMS04LjE2LTIuNjVMMTguNDMsMTlIMzEuOTVBMTQsMTQsMCwwLDEsMTgsMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxl''@;'; put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJaTTQsMThhMTQsMTQsMCwwLDEsMjcuOTUtMUgxNy40OUw4LjMsMjguMDdBMTQs''@;'; put 'put ''MTQsMCwwLDEsNCwxOFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEtOC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS4yLDEzLjRhMTMu''@;'; put 'put ''OTEsMTMuOTEsMCwwLDEsLjc1LDMuNkgxNy40OUw4LjMsMjguMDdBMTQsMTQsMCwwLDEsMjIuNjEsNC44YTcuNDMsNy40MywwLDAsMSwuNTgtMS45MiwxNi4wNiwxNi4wNiwwLDEsMCw5LjkzLDkuOTNBNy40Myw3LjQzLDAsMCwxLDMxLjIsMTMuNFpNMTgsMzJhMTMuOTEsMTMuOTEsMCwwLDEt''@;'; put 'put ''OC4xNi0yLjY1TDE4LjQzLDE5SDMxLjk1QTE0LDE0LDAsMCwxLDE4LDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTguNTcsMzAuOUExNiwxNiwwLDAsMCwzMy45NSwxOUgxOC40M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN0ExNiwxNiwwLDEsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45NSwxN2ExNS45MSwxNS45MSwwLDAsMC0uODQtNC4xOCw3LjQ5LDcuNDksMCwwLDEtOS45Mi05Ljk0QTE2LDE2LDAsMCwwLDcsMjkuNkwxNy40OSwxN1oi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdl''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNOC41NywzMC45QTE2LDE2LDAsMCwwLDMzLjk1LDE5SDE4LjQzWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjk1LDE3YTE2LDE2LDAs''@;'; put 'put ''MCwwLS4xOC0xLjYxSDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bDQuMDYtN0ExNiwxNiwwLDAsMCw3LDI5LjZMMTcuNDksMTdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYu''@;'; put 'put ''ODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTaGllbGRDaGVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCww''@;'; put 'put ''LDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVpNMzAsMTUuOTNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0y''@;'; put 'put ''LS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLDNBNDcuNTQsNDcuNTQsMCwwLDAsMzAsOS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAuODgsMTYuODdhMSwxLDAsMCwwLTEuNDEsMS40MWw2LDZMMjYuNCwxMy43N0ExLDEsMCwwLDAsMjUsMTIuMzNsLTkuNDcsOS4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMzEuMjUsNy40YTQzLjc5LDQzLjc5LDAsMCwxLTYuNjItMi4zNSw0NSw0NSwwLDAsMS02LjA4LTMuMjFMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEtNi4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMu''@;'; put 'put ''NTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWNy41OVptLTQuNTcsNi42NUwxNS41MSwyNC45LDkuMTksMTguNTdhMS40LDEuNCwwLDAsMSwyLTJMMTUuNTQsMjEsMjQuNzMsMTJhMS40LDEuNCwwLDEsMSwyLDJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTaGllbGQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1''@;'; put 'put ''YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEt''@;'; put 'put ''MTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDE1LjR2LjUzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0xMi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTNjMSwu''@;'; put 'put ''NjQsMi4yLDEuMjcsMy40MywxLjg5bDEtMS43NGE0MS4xLDQxLjEsMCwwLDEtMy44OS0yLjE4TDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0''@;'; put 'put ''LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjE1LjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAs''@;'; put 'put ''MCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41djIuNDNjMCwxMS0xMCwxNS42MS0xMiwxNi40My0yLS44Mi0xMi01LjQ0LTEyLTE2LjQzVjkuMTRhNDcuNTQsNDcuNTQsMCwwLDAsNi4xOC0yLjI1LDQ4LjIzLDQ4LjIzLDAsMCwwLDUuODItMyw0Ni4xOSw0Ni4xOSwwLDAsMCw0LjUxLDIuNDJjMC0u''@;'; put 'put ''MSwwLS4xOSwwLS4yOWE3LjQ5LDcuNDksMCwwLDEsLjIzLTEuODMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMu''@;'; put 'put ''NjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCww''@;'; put 'put ''LDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1Vjcu''@;'; put 'put ''NTlaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjMsMTUuNEEzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMi40Myw0YTQxLjEsNDEuMSwwLDAsMS0zLjg5LTIuMThMMTgsMS41bC0uNTQuMzVhNDUsNDUsMCwwLDEt''@;'; put 'put ''Ni4wOCwzLjIxQTQzLjc5LDQzLjc5LDAsMCwxLDQuNzUsNy40TDQsNy41OXY4LjM0YzAsMTMuMzksMTMuNTMsMTguNCwxMy42NiwxOC40NWwuMzQuMTIuMzQtLjEyYy4xNCwwLDEzLjY2LTUuMDUsMTMuNjYtMTguNDVWMTUuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDcsNy40NywwLDAsMS03LjI3LTkuMzMsNDEuNjEsNDEuNjEsMCwwLDEtNC4xOS0yLjMzTDE4LDEuNWwtLjU0''@;'; put 'put ''LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwx''@;'; put 'put ''My41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWkt''@;'; put 'put ''YmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZVNoaWVsZFg9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwtLjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0''@;'; put 'put ''My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTMwLDE1LjkzYzAsMTEtMTAsMTUuNjEtMTIsMTYuNDMtMi0uODItMTItNS40NC0x''@;'; put 'put ''Mi0xNi40M1Y5LjE0YTQ3LjU0LDQ3LjU0LDAsMCwwLDYuMTgtMi4yNSw0OC4yMyw0OC4yMywwLDAsMCw1LjgyLTMsNDguMjMsNDguMjMsMCwwLDAsNS44MiwzQTQ3LjU0LDQ3LjU0LDAsMCwwLDMwLDkuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTIyLjgxLDEwLjc5LDE4LDE1LjYxbC00LjgxLTQuODFhMSwxLDAsMCwwLTEuNDEsMS40MUwxNi41OSwxN2wtNC44MSw0LjgxYTEsMSwwLDEsMCwxLjQxLDEuNDFMMTgsMTguNDNsNC44MSw0LjgxYTEsMSwwLDAsMCwxLjQxLTEuNDFMMTkuNDEsMTdsNC44''@;'; put 'put ''MS00LjgxYTEsMSwwLDAsMC0xLjQxLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjI1LDcuNGE0My43OSw0My43OSwwLDAsMS02LjYyLTIuMzUsNDUsNDUsMCwwLDEtNi4wOC0zLjIxTDE4LDEuNWwt''@;'; put 'put ''LjU0LjM1YTQ1LDQ1LDAsMCwxLTYuMDgsMy4yMUE0My43OSw0My43OSwwLDAsMSw0Ljc1LDcuNEw0LDcuNTl2OC4zNGMwLDEzLjM5LDEzLjUzLDE4LjQsMTMuNjYsMTguNDVsLjM0LjEyLjM0LS4xMmMuMTQsMCwxMy42Ni01LjA1LDEzLjY2LTE4LjQ1VjcuNTlaTTI0LjUxLDIxLjU1YTEuNCwx''@;'; put 'put ''LjQsMCwwLDEtMiwyTDE4LDE5bC00LjUzLDQuNTNhMS40MywxLjQzLDAsMCwxLTIsMCwxLjQsMS40LDAsMCwxLDAtMkwxNiwxN2wtNC41My00LjUzYTEuNCwxLjQsMCwxLDEsMi0yTDE4LDE1bDQuNTMtNC41M2ExLjQsMS40LDAsMCwxLDIsMkwyMCwxN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBj''@;'; put 'put ''bHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUltcG9ydD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjgsNEgxNC44N0w4LDEwLjg2VjE1aDJWMTMuNjFoNy42MVY2SDI4VjMwSDhhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCww''@;'; put 'put ''LDI4LDRaTTE2LDEySDEwdi0uMzJMMTUuNyw2SDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS45NCwyNi4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDE5LDIybC01LjY4LTUuNjhhMSwxLDAsMCwwLTEuNDEs''@;'; put 'put ''MS40MUwxNS4yLDIxSDNhMSwxLDAsMSwwLDAsMkgxNS4yM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0x''@;'; put 'put ''LjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LDE1LjRWMzBIOGEyLDIsMCwwLDAsMiwySDI4YTIsMiwwLDAs''@;'; put 'put ''MCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTAsMTMuNjFoNy42MVY2aDMuNjhsMS4xNS0ySDE0Ljg3TDgsMTAuODZWMTVoMlptMC0xLjkyTDE1LjcsNkgxNnY2''@;'; put 'put ''SDEwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgs''@;'; put 'put ''MTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTEuOTQsMjYuMjhhMSwxLDAsMSwwLDEu''@;'; put 'put ''NDEsMS40MUwxOSwyMmwtNS42OC01LjY4YTEsMSwwLDAsMC0xLjQxLDEuNDFMMTUuMiwyMUgzYTEsMSwwLDEsMCwwLDJIMTUuMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCwx''@;'; put 'put ''My4yMlYzMEg4YTIsMiwwLDAsMCwyLDJIMjhhMiwyLDAsMCwwLDItMlYxMy41QTcuNDksNy40OSwwLDAsMSwyOCwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDEzLjYx''@;'; put 'put ''aDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjE1aDJabTAtMS45MkwxNS43LDZIMTZ2NkgxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0i''@;'; put 'put ''MzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1z''@;'; put 'put ''b2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOCw0SDE0Ljg3TDgsMTAuODZWMjFIMTUuMmwtMy4yNS0zLjI1YTEsMSwwLDAsMSwxLjQxLTEuNDFMMTksMjJsLTUuNjgsNS42OGExLDEsMCwwLDEtMS40MS0xLjQxTDE1LjIzLDIzSDh2N2EyLDIsMCwwLDAsMiwySDI4YTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjgsNFpNMTYsMTJIMTB2LS4zMkwxNS42OSw2SDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMsMjFhMSwxLDAsMSwwLDAsMkg4VjIxWiIgY2xhc3M9ImNsci1pLXNvbGlk''@;'; put 'put ''LS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIy''@;'; put 'put ''bC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxl''@;'; put 'put ''cnRlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zLDIxYTEsMSwwLDEsMCwwLDJIOFYyMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBkPSJNMjIuNSw2YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxNC44N0w4LDEwLjg2VjIxSDE1LjJsLTMuMjUtMy4yNWExLDEsMCwwLDEsMS40MS0xLjQxTDE5LDIybC01LjY4LDUuNjhhMSwxLDAsMCwxLTEuNDEtMS40MUwxNS4yMywyM0g4djdhMiwyLDAsMCwwLDIsMkgyOGEyLDIs''@;'; put 'put ''MCwwLDAsMi0yVjEzLjVBNy41LDcuNSwwLDAsMSwyMi41LDZaTTE2LDEySDEwdi0uMzJMMTUuNjksNkgxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVFeHBvcnQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTYsMTMuNjFoNy42MVY2SDI0djguMzhoMlY2YTIsMiwwLDAsMC0yLTJI''@;'; put 'put ''MTAuODdMNCwxMC44N1YzMGEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJINlptMC0xLjkyTDExLjY5LDZIMTJ2Nkg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAt''@;'; put 'put ''MS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEs''@;'; put 'put ''MCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAsMS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik02LDEzLjYxaDcuNjFWNmg3LjY4bDEuMTUtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEuNjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxl''@;'; put 'put ''cnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMwLjE2LDIxSDE4YTEsMSwwLDAsMCwwLDJIMzAuMTlsLTMuMjgsMy4yOGExLDEsMCwxLDAs''@;'; put 'put ''MS40MSwxLjQxTDM0LDIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMTIuMzRhNy41Myw3LjUzLDAsMCwxLTItMS44NXYzLjg5aDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LDEzLjYxaDcuNjFWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkgxMC44N0w0LDEwLjg3VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMkg2Wm0wLTEuOTJMMTEu''@;'; put 'put ''NjksNkgxMnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''NC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjZhMiwyLDAsMCwwLTItMkgxMC44N0w0LDEwLjg2VjMwYTIsMiwwLDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2''@;'; put 'put ''LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwz''@;'; put 'put ''NSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS4zMiwxNi4zNWExLDEsMCwwLDAtMS40MSwxLjQxTDMxLjE2LDIxSDI2djJoNS4xOWwtMy4yOCwzLjI4YTEsMSwwLDEsMCwxLjQxLDEuNDFMMzUsMjJaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgxMC44N0w0LDEwLjg2VjMwYTIsMiww''@;'; put 'put ''LDAsMCwyLDJIMjRhMiwyLDAsMCwwLDItMlYyM0gxOEExLDEsMCwwLDEsMTcsMjJaTTEyLDEySDZ2LS4zMkwxMS42OSw2SDEyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEu''@;'; put 'put ''MTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjMyLDE2LjM1YTEsMSwwLDAsMC0xLjQxLDEuNDFMMzEuMTYsMjFIMjZ2Mmg1LjE5bC0zLjI4LDMuMjhhMSwxLDAsMSwwLDEuNDEsMS40MUwzNSwyMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTcsMjJhMSwxLDAsMCwxLDEtMWg4VjEyLjM0QTcuNDYsNy40NiwwLDAsMSwyMi43OCw0SDEwLjg3TDQsMTAuODZWMzBhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjIzSDE4QTEsMSwwLDAsMSwxNywyMlpN''@;'; put 'put ''MTIsMTJINnYtLjMyTDExLjY5LDZIMTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlVXBsb2FkQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42''@;'; put 'put ''LDYuMUE5Ljc0LDkuNzQsMCwwLDAsMS42LDE4LjQsOS42Miw5LjYyLDAsMCwwLDExLjI1LDI4SDE1VjI2SDExLjI1QTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjI2LDguMjYsMCwwLDEsOC40NSw4LDcuNzUsNy43NSwwLDAs''@;'; put 'put ''MSwwLC44bC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCwzLjkzLTE1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyMS44NUExLDEsMCwwLDAsMjMsMjAu''@;'; put 'put ''MTRsLTUtNS01LDVhMSwxLDAsMCwwLDEuNDEsMS40MUwxNywxOVYzMS4yNWExLDEsMCwxLDAsMiwwVjE5bDIuNTcsMi41N0ExLDEsMCwwLDAsMjIuMjgsMjEuODVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIy''@;'; put 'put ''LjI4LDIxLjg1QTEsMSwwLDAsMCwyMywyMC4xNGwtNS01LTUsNWExLDEsMCwwLDAsMS40MSwxLjQxTDE3LDE5VjMxLjI1YTEsMSwwLDEsMCwyLDBWMTlsMi41NywyLjU3QTEsMSwwLDAsMCwyMi4yOCwyMS44NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4LjgxLDguODEsMCwwLDEsMiwuMjVsMS0xLjhhMTAuOCwxMC44LDAsMCwwLTMuMDctLjQ1''@;'; put 'put ''LDEwLjQ3LDEwLjQ3LDAsMCwwLTkuNiw2LjFBOS43NCw5Ljc0LDAsMCwwLDEuNiwxOC40LDkuNjIsOS42MiwwLDAsMCwxMS4yNSwyOEgxNVYyNkgxMS4yNUE3LjY2LDcuNjYsMCwwLDEsMy42LDE4LjM4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDIxdjJoNS4zOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjEuODVBMSwxLDAsMCwwLDIzLDIwLjE0bC01LTUtNSw1YTEsMSwwLDAsMCwxLjQxLDEuNDFMMTcsMTlWMzEuMjVhMSwxLDAsMSwwLDIsMFYxOWwy''@;'; put 'put ''LjU3LDIuNTdBMSwxLDAsMCwwLDIyLjI4LDIxLjg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAsLjA4LDAsLjE1''@;'; put 'put ''LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjF2Mmg1LjM4YTgsOCwwLDAsMCw0LjU0LTE0LjU2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMy42LDE4LjM4''@;'; put 'put ''QTcuNzEsNy43MSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzYTguNDMsOC40MywwLDAsMSw4LTUuNCw4Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTku''@;'; put 'put ''NzQsOS43NCwwLDAsMCwxLjYsMTguNCw5LjYyLDkuNjIsMCwwLDAsMTEuMjUsMjhIMTVWMjZIMTEuMjVBNy42Niw3LjY2LDAsMCwxLDMuNiwxOC4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNp''@;'; put 'put ''cmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZURvd25sb2FkQ2xvdWQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMw''@;'; put 'put ''LjMxLDEzYzAtLjEsMC0uMjEsMC0uMzJhMTAuMjYsMTAuMjYsMCwwLDAtMTAuNDUtMTAsMTAuNDcsMTAuNDcsMCwwLDAtOS42LDYuMUE5LjY1LDkuNjUsMCwwLDAsMTAuODksMjhhMywzLDAsMCwxLDAtMkE3LjY1LDcuNjUsMCwwLDEsMTEsMTAuNzRsLjY3LDAsLjIzLS42M2E4LjQzLDguNDMs''@;'; put 'put ''MCwwLDEsOC01LjQsOC4yNiw4LjI2LDAsMCwxLDguNDUsOCw3Ljc1LDcuNzUsMCwwLDEsMCwuOGwtLjA4LjcyLjY1LjNBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOGE4LDgsMCwwLDAsMy45My0xNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0xIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAtMiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi4yOCwyNi4wN2ExLDEsMCwwLDAtLjcxLjI5TDE5LDI4Ljk0VjE2LjY4YTEsMSwwLDEsMC0yLDBWMjguOTRsLTIuNTctMi41N0ExLDEsMCwwLDAsMTMsMjcuNzhsNSw1LDUtNWEx''@;'; put 'put ''LDEsMCwwLDAtLjcxLTEuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5Ljg3LDQuNjlhOC44MSw4LjgxLDAsMCwxLDIsLjI1bDEtMS44YTEwLjgsMTAuOCwwLDAsMC0zLjA3''@;'; put 'put ''LS40NSwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwuNjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi45LDE1LjRIMzAuMjFBNiw2LDAsMCwxLDI2LjM4LDI2SDI1LjA5YTMsMywwLDAsMSwwLDJoMS4yOEE4LDgsMCwwLDAsMzIuOSwxNS40WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFs''@;'; put 'put ''ZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAs''@;'; put 'put ''MjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIuMjgsMjYuMDdhMSwxLDAsMCwwLS43MS4yOUwxOSwyOC45NFYxNi42OGExLDEsMCwxLDAt''@;'; put 'put ''MiwwVjI4Ljk0bC0yLjU3LTIuNTdBMSwxLDAsMCwwLDEzLDI3Ljc4bDUsNSw1LTVhMSwxLDAsMCwwLS43MS0xLjcxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuODcsNC42OWE4''@;'; put 'put ''Ljc5LDguNzksMCwwLDEsMi42OC40Miw3LjQ1LDcuNDUsMCwwLDEsLjUtMS45NCwxMC43OSwxMC43OSwwLDAsMC0zLjE4LS40OCwxMC40NywxMC40NywwLDAsMC05LjYsNi4xQTkuNjUsOS42NSwwLDAsMCwxMC44OSwyOGEzLDMsMCwwLDEsMC0yQTcuNjUsNy42NSwwLDAsMSwxMSwxMC43NGwu''@;'; put 'put ''NjcsMCwuMjMtLjYzQTguNDMsOC40MywwLDAsMSwxOS44Nyw0LjY5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuOTIsMTMuNDRhNy4xMyw3LjEzLDAsMCwxLTIuNjMtLjE0YzAs''@;'; put 'put ''LjA4LDAsLjE1LDAsLjIzbC0uMDguNzIuNjUuM0E2LDYsMCwwLDEsMjYuMzgsMjZIMjUuMDlhMywzLDAsMCwxLDAsMmgxLjI4YTgsOCwwLDAsMCw0LjU0LTE0LjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAg''@;'; put 'put ''ICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUGx1Z2luPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0y''@;'; put 'put ''OS44MSwxNkgyOVY4LjgzYTIsMiwwLDAsMC0yLTJIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIs''@;'; put 'put ''MiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2Wm0yLjQxLDdBMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEsMTVINFY4LjgzaDlW''@;'; put 'put ''N2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoOFYxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIv''@;'; put 'put ''PlxuICAgICAgICAgICAgPHBhdGggZD0iTTI5LjgxLDE2SDI5di0uNkgyN1YxOGgyLjgxQTMuMTMsMy4xMywwLDAsMSwzMywyMC42OSwzLDMsMCwwLDEsMzIuMjIsMjMsMywzLDAsMCwxLDMwLDI0SDI3djcuODNINFYyNUg1YTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDQuODEs''@;'; put 'put ''MTVINFY4LjgzaDlWN2EzLDMsMCwwLDEsMS0yLjIyQTMsMywwLDAsMSwxNi4zMSw0LDMuMTMsMy4xMywwLDAsMSwxOSw3LjE5VjguODNoLjY2TDIxLDYuNTlBNS4xMiw1LjEyLDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEz''@;'; put 'put ''LDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNIMnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUs''@;'; put 'put ''MS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWMTMuNDNhNy40NSw3LjQ1LDAsMCwxLTItLjU1VjE4aDIuODFBMy4xMywzLjEzLDAs''@;'; put 'put ''MCwxLDMzLDIwLjY5LDMsMywwLDAsMSwzMi4yMiwyMywzLDMsMCwwLDEsMzAsMjRIMjd2Ny44M0g0VjI1SDVhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsNC44MSwxNUg0VjguODNoOVY3YTMsMywwLDAsMSwxLTIuMjJBMywzLDAsMCwxLDE2LjMxLDQsMy4xMywzLjEzLDAsMCwx''@;'; put 'put ''LDE5LDcuMTlWOC44M2g0LjA2YTcuNDQsNy40NCwwLDAsMS0uNTEtMkgyMUE1LjE0LDUuMTQsMCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwy''@;'; put 'put ''M0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCwwLDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxj''@;'; put 'put ''aXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuODEsMTZIMjlWOC44M2EyLDIsMCwwLDAtMi0ySDIxQTUuMTQsNS4x''@;'; put 'put ''NCwwLDAsMCwxNi41MSwyLDUsNSwwLDAsMCwxMSw2LjgzSDRhMiwyLDAsMCwwLTIsMlYxN0g0LjgxQTMuMTMsMy4xMywwLDAsMSw4LDE5LjY5LDMsMywwLDAsMSw3LjIyLDIyLDMsMywwLDAsMSw1LDIzSDJ2OC44M2EyLDIsMCwwLDAsMiwySDI3YTIsMiwwLDAsMCwyLTJWMjZoMWE1LDUsMCww''@;'; put 'put ''LDAsNS01LjUxQTUuMTUsNS4xNSwwLDAsMCwyOS44MSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS44MSwxNkgyOXYtLjZIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LDkuODlMMjEsNi41OUE1LjEyLDUuMTIs''@;'; put 'put ''MCwwLDAsMTYuNTEsMiw1LDUsMCwwLDAsMTEsNi44M0g0YTIsMiwwLDAsMC0yLDJWMTdINC44MUEzLjEzLDMuMTMsMCwwLDEsOCwxOS42OSwzLDMsMCwwLDEsNy4yMiwyMiwzLDMsMCwwLDEsNSwyM0gydjguODNhMiwyLDAsMCwwLDIsMkgyN2EyLDIsMCwwLDAsMi0yVjI2aDFhNSw1LDAsMCww''@;'; put 'put ''LDUtNS41MUE1LjE1LDUuMTUsMCwwLDAsMjkuODEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMu''@;'; put 'put ''NjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjku''@;'; put 'put ''ODEsMTZIMjlWMTMuNDNhNy41LDcuNSwwLDAsMS02LjQ1LTYuNTlIMjFBNS4xNCw1LjE0LDAsMCwwLDE2LjUxLDIsNSw1LDAsMCwwLDExLDYuODNINGEyLDIsMCwwLDAtMiwyVjE3SDQuODFBMy4xMywzLjEzLDAsMCwxLDgsMTkuNjksMywzLDAsMCwxLDcuMjIsMjIsMywzLDAsMCwxLDUsMjNI''@;'; put 'put ''MnY4LjgzYTIsMiwwLDAsMCwyLDJIMjdhMiwyLDAsMCwwLDItMlYyNmgxYTUsNSwwLDAsMCw1LTUuNTFBNS4xNSw1LjE1LDAsMCwwLDI5LjgxLDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUg''@;'; put 'put ''Y3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUZsb3BweT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjcuMzYsNEg2QTIsMiwwLDAs''@;'; put 'put ''MCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjguNzhaTTI1LDMwSDExVjIySDI1Wm01LDBIMjdWMjJhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhINlY2aDR2NmEyLDIsMCwwLDAsMiwySDI0YTIsMiwwLDAsMCwyLTJIMTJWNkgyNi41MUwzMCw5LjU5WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWgwVjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0xLjY4bC0u''@;'; put 'put ''NDMtLjNIMTJWNkgyMi41YTcuNDksNy40OSwwLDAsMSwuMjgtMkg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNSwzMEgxMVYyMkgyNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0zMCwxNS40VjMwSDI3VjIyYTIsMiwwLDAsMC0yLTJIMTFhMiwyLDAsMCwwLTIsMnY4SDZWNmg0djZhMiwyLDAsMCwwLDIsMmg3LjM1YTMuNTQsMy41NCwwLDAsMS0uNzctMkgxMlY2aDkuMjlsMS4xNS0ySDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAs''@;'; put 'put ''MCwyLTJWMTUuNFpNMjUsMzBIMTFWMjJIMjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4''@;'; put 'put ''QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; put 'put ''Ny4zNiw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWOC43OFpNMjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41Wk0yNCwxNEgxMmEyLDIsMCwwLDEtMi0yVjZoMnY2SDI2QTIsMiwwLDAs''@;'; put 'put ''MSwyNCwxNFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41YTcuNDYsNy40NiwwLDAsMS00LTEuMThBMiwyLDAsMCwxLDI0LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZIMjUuNTRhNy40NSw3LjQ1LDAsMCwx''@;'; put 'put ''LTIuNzYtOEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk0yNiwzMEgxMFYyMS41QTEuNSwxLjUsMCwwLDEsMTEuNSwyMGgxM0ExLjUsMS41LDAsMCwxLDI2LDIxLjVaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''c29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42OSwzLjY5LDAsMCwxLDE5LjM1LDE0SDEyYTIsMiwwLDAsMS0yLTJWNmgydjZoNi41OEEzLjY3LDMuNjcsMCwwLDEsMTksOS44OUwyMi40NSw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFpN''@;'; put 'put ''MjYsMzBIMTBWMjEuNUExLjUsMS41LDAsMCwxLDExLjUsMjBoMTNBMS41LDEuNSwwLDAsMSwyNiwyMS41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFB''@;'; put 'put ''MS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCBjbHItaS1hbGVydCIv''@;'; put 'put ''PlxuICAgICAgICAnKSxlLkNsclNoYXBlQ29tcHV0ZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBvbHlnb24gcG9pbnRzPSI5LjYgMjIuODggOS42IDEwLjYgMjQuNCAxMC42IDI1Ljk4IDkgOCA5IDggMjIuODggOS42IDIyLjg4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYsN0gzMFYyM2gyVjYuNUExLjUsMS41LDAsMCwwLDMwLjUsNUg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; put 'put ''Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEu''@;'; put 'put ''NS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xLDI1djMuNEEyLjYsMi42LDAsMCwwLDMuNiwzMUgzMi4zNGEyLjYsMi42LDAsMCwwLDIuNi0yLjZWMjVabTMyLDMuNGEuNi42LDAsMCwxLS42LjZIMy41''@;'; put 'put ''NmEuNi42LDAsMCwxLS42LS42VjI2LjUzaDkuOTVhMS42NCwxLjY0LDAsMCwwLDEuNSwxaDcuMTNhMS42NCwxLjY0LDAsMCwwLDEuNS0xSDMzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik05LjYsMjIuODhWMTAuNmg5LjE0QTMuNjQsMy42NCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlIOFYyMi44OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNNiw3SDIwLjcxbDEu''@;'; put 'put ''MTUtMkg1LjVBMS41LDEuNSwwLDAsMCw0LDYuNVYyM0g2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjMwIiB5PSIxNS40IiB3aWR0aD0iMiIgaGVpZ2h0PSI3LjYiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRB''@;'; put 'put ''MS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEsMjV2My40QTIuNiwyLjYsMCwwLDAsMy42LDMxSDMyLjM0YTIu''@;'; put 'put ''NiwyLjYsMCwwLDAsMi42LTIuNlYyNVptMzIsMy40YS42LjYsMCwwLDEtLjYuNkgzLjU2YS42LjYsMCwwLDEtLjYtLjZWMjYuNTNoOS45NWExLjY0LDEuNjQsMCwwLDAsMS41LDFoNy4xM2ExLjY0LDEuNjQsMCwwLDAsMS41LTFIMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMi41LDZhNy41Miw3LjUyLDAsMCwxLC4wNy0xSDUuNUExLjUsMS41LDAsMCwwLDQsNi41VjIzSDZWN0gyMi41N0E3LjUyLDcuNTIsMCwwLDEsMjIuNSw2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUt''@;'; put 'put ''LWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNVYyM2gyVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2Vk''@;'; put 'put ''Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuMTMsOUg4VjIyLjg4SDkuNlYxMC42SDI0LjA4QTcuNDksNy40OSwwLDAsMSwyMy4xMyw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEsMS41SDEzLjc0Yy0uNjgsMC0x''@;'; put 'put ''LjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTcsMTBIMjlWMjRoM1Y3LjU3QTEu''@;'; put 'put ''NTQsMS41NCwwLDAsMCwzMC41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy44MSwyNmMtLjM1LjktLjk0LDEuNS0xLjYxLDEuNUgxMy43NGMtLjY4LDAt''@;'; put 'put ''MS4yNi0uNi0xLjYxLTEuNUgxdjEuNzVBMi40NSwyLjQ1LDAsMCwwLDMuNiwzMEgzMi40QTIuNDUsMi40NSwwLDAsMCwzNSwyNy43NVYyNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI5''@;'; put 'put ''IiB5PSIxNS40IiB3aWR0aD0iMyIgaGVpZ2h0PSI4LjYiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDEwSDE5TDE5LDkuODksMjEuMjksNkg1LjVBMS41NCwxLjU0LDAsMCwwLDQsNy41''@;'; put 'put ''N1YyNEg3WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwx''@;'; put 'put ''MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjgxLDI2Yy0uMzUuOS0uOTQsMS41LTEuNjEs''@;'; put 'put ''MS41SDEzLjc0Yy0uNjgsMC0xLjI2LS42LTEuNjEtMS41SDF2MS43NUEyLjQ1LDIuNDUsMCwwLDAsMy42LDMwSDMyLjRBMi40NSwyLjQ1LDAsMCwwLDM1LDI3Ljc1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgIDxwYXRoIGQ9Ik03LDEwSDIzLjY2QTcuNDYsNy40NiwwLDAsMSwyMi41LDZINS41QTEuNTQsMS41NCwwLDAsMCw0LDcuNTdWMjRIN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIs''@;'; put 'put ''MTMuMjJhNy4xNCw3LjE0LDAsMCwxLTMsLjJWMjRoM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1p''@;'; put 'put ''LXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEaXNwbGF5PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAs''@;'; put 'put ''MCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUsM1pNMzIsMjVINFY1SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iNy43IDguNzYgMjguMTMgOC43NiAyOS45NCA3LjE2IDYuMSA3LjE2''@;'; put 'put ''IDYuMSAyMyA3LjcgMjMgNy43IDguNzYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4x''@;'; put 'put ''NywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4yLDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42''@;'; put 'put ''MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; put 'put ''PSJNMzMuNjgsMTUuNEgzMlYyNUg0VjVIMjEuODdMMjMsM0gzLjVBMS41LDEuNSwwLDAsMCwyLDQuNXYyMUExLjUsMS41LDAsMCwwLDMuNSwyN2gyOUExLjUsMS41LDAsMCwwLDM0LDI1LjVWMTUuMzhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''Mi0tYWxlcnRlZCIvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3LjcgMjMgNy43IDguNzYgMTkuNyA4Ljc2IDIwLjYyIDcuMTYgNi4xIDcuMTYgNi4xIDIzIDcuNyAyMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQi''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1h''@;'; put 'put ''bGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDIxLjI0VjI5LjVBNC4yLDQuMiwwLDAsMCwyMi4xNywzMkgxMy44M2E0LjIsNC4y''@;'; put 'put ''LDAsMCwwLC45My0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEtLWJhZGdlZCIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTYuMSwyM0g3LjdWOC43NkgyM2E3LjQ0LDcuNDQsMCwwLDEtLjQzLTEuNkg2LjFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0zMiwxMy4yMlYyNUg0VjVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxMi4zNEE3LjQ1LDcuNDUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsMzJIMjQuMjZhMy42MSwzLjYxLDAsMCwxLTEuNS0yLjUyVjI4LjEzSDEzLjI0VjI5LjVBMy42MSwzLjYxLDAsMCwxLDExLjc0LDMySDkuOTRhMSwxLDAsMSwwLDAsMkgyNi4wNmEuOTIuOTIsMCwwLDAsMS0xQTEsMSwwLDAsMCwyNiwzMloiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi41LDNIMy41QTEuNSwxLjUsMCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjQuNUExLjUsMS41LDAsMCwwLDMyLjUs''@;'; put 'put ''M1pNMzEsMjEuODNINVY3SDMxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LDMySDI0LjI2YTMuNjEsMy42MSwwLDAsMS0xLjUtMi41MlYyOC4xM0gxMy4yNFYyOS41QTMuNjEsMy42MSwwLDAsMSwxMS43NCwzMkg5''@;'; put 'put ''Ljk0YTEsMSwwLDEsMCwwLDJIMjYuMDZhLjkyLjkyLDAsMCwwLDEtMUExLDEsMCwwLDAsMjYsMzJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMXY2LjQzSDVWN0gy''@;'; put 'put ''MC43MUwyMywzSDMuNUExLjUsMS41LDAsMCwwLDIsNC41djIxQTEuNSwxLjUsMCwwLDAsMy41LDI3aDI5QTEuNSwxLjUsMCwwLDAsMzQsMjUuNVYxNS4zOFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1w''@;'; put 'put ''YXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNiwzMkgyNC4yNmEzLjYxLDMuNjEsMCwwLDEtMS41LTIuNTJWMjguMTNIMTMuMjRWMjkuNUEzLjYxLDMuNjEsMCwwLDEsMTEuNzQsMzJIOS45NGExLDEsMCwxLDAsMCwySDI2LjA2YS45Mi45Miww''@;'; put 'put ''LDAsMCwxLTFBMSwxLDAsMCwwLDI2LDMyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMSwxMy40M3Y4LjQxSDVWN0gyMi41N2E3LjI5LDcuMjksMCwwLDEsLjU1LTRIMy41QTEuNSwxLjUs''@;'; put 'put ''MCwwLDAsMiw0LjV2MjFBMS41LDEuNSwwLDAsMCwzLjUsMjdoMjlBMS41LDEuNSwwLDAsMCwzNCwyNS41VjEyLjM0QTcuNDQsNy40NCwwLDAsMSwzMSwxMy40M1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVUZXJtaW5hbD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzIsNUg0QTIs''@;'; put 'put ''MiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjdBMiwyLDAsMCwwLDMyLDVaTTQsN0gzMlY5LjJINFpNNCwyOVYxMC44SDMyVjI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIx''@;'; put 'put ''NyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDE1LjY4IDEzLjc5IDE4LjggNyAyMS45MSA3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcg''@;'; put 'put ''MTMuNDggNyAxNS42OCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjMiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSI3IDI0LjExIDE2LjYgMTkuNyAxNi42IDE3Ljg5IDcgMTMuNDggNyAxNS42OCAxMy43OSAxOC44IDcgMjEuOTEgNyAyNC4xMSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMlYyOUg0VjEwLjhIMTguNjhBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlsLjQtLjY5SDRWN0gyMC43MWwxLjE1LTJINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDIt''@;'; put 'put ''MlYxNS4zOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwz''@;'; put 'put ''NC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTciIHk9IjIzIiB3aWR0aD0i''@;'; put 'put ''NiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cG9seWdvbiBwb2ludHM9IjcgMjQuMTEgMTYuNiAxOS43IDE2LjYgMTcuODkgNyAxMy40OCA3IDE1LjY4IDEzLjc5IDE4LjggNyAy''@;'; put 'put ''MS45MSA3IDI0LjExIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJWMjlINFYxMC44SDI0LjI0YTcuNTEsNy41MSwwLDAsMS0xLTEuNkg0VjdIMjIuNTdhNy41Miw3LjUy''@;'; put 'put ''LDAsMCwxLS4wNy0xLDcuNTIsNy41MiwwLDAsMSwuMDctMUg0QTIsMiwwLDAsMCwyLDdWMjlhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMiw1SDRBMiwy''@;'; put 'put ''LDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWN0EyLDIsMCwwLDAsMzIsNVpNNi44LDE1LjgxVjEzLjE3bDEwLDQuNTl2Mi4wOGwtMTAsNC41OVYyMS43OGw2LjUxLTNaTTIzLjQsMjUuNEgxN1YyM2g2LjRaTTQsOS4yVjdIMzJWOS4yWiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDIyLjIzQTMuNjgsMy42OCwwLDAsMSwxOSw5Ljg5bC40LS42OUg0VjdIMjAuNzFsMS4xNS0ySDRBMiwyLDAsMCwwLDIsN1YyOWEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwy''@;'; put 'put ''LTJWMTUuMzhaTTE2LjgsMTkuODNsLTEwLDQuNTlWMjEuNzhsNi41MS0zLTYuNTEtM1YxMy4xN2wxMCw0LjU5Wm02LjYsNS41N0gxN1YyM2g2LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGgg''@;'; put 'put ''ZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTItLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNi43OC00LjNINFY3SDIyLjU3YTcuNTIsNy41MiwwLDAsMS0uMDctMSw3LjUyLDcuNTIsMCwwLDEsLjA3LTFINEEyLDIsMCwwLDAsMiw3VjI5YTIsMiwwLDAs''@;'; put 'put ''MCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjQ2LDcuNDYsMCwwLDEsMzAsMTMuNVpNMTYuOCwxOS44M2wtMTAsNC41OVYyMS43OGw2LjUxLTMtNi41MS0zVjEzLjE3bDEwLDQuNTlabTYuNiw1LjU3SDE3VjIzaDYuNFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDb2RlPSgw''@;'; put 'put ''LGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTYuNTMtNC40NUExLDEsMCwxLDAsMjIuNTUsMTRsNS4zMiwzLjYzLTUuMzIsMy42M2ExLDEsMCwwLDAsMS4xMywxLjY1bDYuNTMtNC40NWExLDEsMCwwLDAs''@;'; put 'put ''MC0xLjY1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsOS44M2EuOS45LDAsMCwwLTEuMDkuNjZMMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhs''@;'; put 'put ''My40NC0xMy44MUEuOS45LDAsMCwwLDE5Ljk0LDkuODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYu''@;'; put 'put ''NTMsNC40NWExLDEsMCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTguNTYs''@;'; put 'put ''MTEuNjIsMTUuNDEsMjQuMjlhLjkuOSwwLDAsMCwuNjYsMS4wOWwuMjIsMGEuOS45LDAsMCwwLC44Ny0uNjhMMTkuNzMsMTQuNGEzLjU5LDMuNTksMCwwLDEtMS4xNi0yLjc5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMjEsMTYuNzhsLTItMS4zOEgyNC42NGwzLjI0LDIuMjEtNS4zMiwzLjYzYTEsMSwwLDAsMCwxLjEzLDEuNjVsNi41My00LjQ1YTEsMSwwLDAsMCwwLTEuNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMy43MSwxMi41OWExLDEsMCwwLDAtMS4zOS0uMjZMNS43OSwxNi43OGExLDEsMCwwLDAsMCwxLjY1bDYuNTMsNC40NWExLDEs''@;'; put 'put ''MCwxLDAsMS4xMy0xLjY1TDguMTMsMTcuNjEsMTMuNDUsMTRBMSwxLDAsMCwwLDEzLjcxLDEyLjU5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjIxLDE2Ljc4bC02LjUzLTQu''@;'; put 'put ''NDVBMSwxLDAsMSwwLDIyLjU1LDE0bDUuMzIsMy42My01LjMyLDMuNjNhMSwxLDAsMCwwLDEuMTMsMS42NWw2LjUzLTQuNDVhMSwxLDAsMCwwLDAtMS42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik0xOS45NCw5LjgzYS45LjksMCwwLDAtMS4wOS42NkwxNS40MSwyNC4yOWEuOS45LDAsMCwwLC42NiwxLjA5bC4yMiwwYS45LjksMCwwLDAsLjg3LS42OGwzLjQ0LTEzLjgxQS45LjksMCwwLDAsMTkuOTQsOS44M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksZS5DbHJT''@;'; put 'put ''aGFwZUFwcGxpY2F0aW9uPSgwLGEuY2xySWNvblNWRykoJzxyZWN0IHg9IjUiIHk9IjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdo''@;'; put 'put ''dD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMyIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRaTTQsNkgzMnY0LjJINFpNNCwzMFYxMS44SDMyVjMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBkPSJNMzIsNEg0QTIsMiwwLDAsMCwyLDZWMzBhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMyLDRabTAsNi4ySDRWNkgzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cmVj''@;'; put 'put ''dCB4PSI1IiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iOSIgeT0iNyIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''MyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSI3IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQmF0dGVyeT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTguNTks''@;'; put 'put ''MTEuNzdhMSwxLDAsMCwwLTEuNzMsMWwyLjUsNC4zNC02LjA3LTEsNS4yOSwxMC41OWExLDEsMCwwLDAsMS43OS0uODlsLTMuNTMtNy4wOCw2LjM4LDEuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNS4x''@;'; put 'put ''Miw0SDIzVjMuNThBMS41OCwxLjU4LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAsMCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWNS44OEEx''@;'; put 'put ''Ljg4LDEuODgsMCwwLDAsMjUuMTIsNFpNMjUsMzJIMTFWNmg0VjRoNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOC41OSwxMS43N2ExLDEsMCwwLDAtMS43MywxbDIuNSw0LjM0LTYuMDctMSw1LjI5''@;'; put 'put ''LDEwLjU5YTEsMSwwLDAsMCwxLjc5LS44OWwtMy41My03LjA4LDYuMzgsMS4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4''@;'; put 'put ''LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTI1LDE1LjRWMzJIMTFWNmg0VjRoNlY2aC4yOGwxLjY0LTIuODVBMS41NywxLjU3LDAsMCwwLDIxLjQyLDJIMTQuNThBMS41OCwxLjU4LDAsMCwwLDEzLDMuNThWNEgxMC44OEExLjg4LDEuODgsMCwwLDAsOSw1Ljg4VjMyLjEyQTEuODgsMS44OCwwLDAs''@;'; put 'put ''MCwxMC44OCwzNEgyNS4xMkExLjg4LDEuODgsMCwwLDAsMjcsMzIuMTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LjU5LDExLjc3YTEsMSwwLDAsMC0xLjczLDFsMi41LDQuMzQtNi4wNy0xLDUuMjksMTAuNTlhMSwxLDAsMCwwLDEuNzktLjg5bC0z''@;'; put 'put ''LjUzLTcuMDgsNi4zOCwxLjA2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDExLjU4VjMySDExVjZoNFY0aDZWNkgyMi41QTcuNDcsNy40NywwLDAsMSwyMywzLjM4LDEuNTcs''@;'; put 'put ''MS41NywwLDAsMCwyMS40MiwySDE0LjU4QTEuNTgsMS41OCwwLDAsMCwxMywzLjU4VjRIMTAuODhBMS44OCwxLjg4LDAsMCwwLDksNS44OFYzMi4xMkExLjg4LDEuODgsMCwwLDAsMTAuODgsMzRIMjUuMTJBMS44OCwxLjg4LDAsMCwwLDI3LDMyLjEyVjEyLjg3QTcuNSw3LjUsMCwwLDEsMjUs''@;'; put 'put ''MTEuNThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjIsNFYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAs''@;'; put 'put ''MCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NHYtMjhBMS4wOSwxLjA5LDAsMCwwLDI2LDRaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdM''@;'; put 'put ''MTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEEx''@;'; put 'put ''LjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjIzLDE1LjRBMy42NiwzLjY2LDAsMCwxLDIwLjU1LDE1bDIuNzYs''@;'; put 'put ''NC43OUwxNi45LDE4LjdsMy4zNiw2LjczYTEuMiwxLjIsMCwwLDEtMi4xNSwxLjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmwuMDkuMTVBMy42NiwzLjY2LDAsMCwxLDE5LDkuODlMMjIuNDUsNEgyMlYyLjYyQS42LjYsMCwwLDAsMjEuNDIsMkgxNC41''@;'; put 'put ''OGEuNi42LDAsMCwwLS41OC42MlY0SDEwQTEuMDksMS4wOSwwLDAsMCw5LDUuMDd2MjhBMSwxLDAsMCwwLDEwLDM0SDI2YTEsMSwwLDAsMCwxLS45NFYxNS40WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLjUsNmE3LjQ5LDcuNDksMCwwLDEsLjI4LTJIMjJWMi42MkEuNi42''@;'; put 'put ''LDAsMCwwLDIxLjQyLDJIMTQuNThhLjYuNiwwLDAsMC0uNTguNjJWNEgxMEExLjA5LDEuMDksMCwwLDAsOSw1LjA3djI4QTEsMSwwLDAsMCwxMCwzNEgyNmExLDEsMCwwLDAsMS0uOTRWMTIuODdBNy41LDcuNSwwLDAsMSwyMi41LDZaTTIwLjI2LDI1LjQ0YTEuMiwxLjIsMCwwLDEtMi4xNSwx''@;'; put 'put ''LjA3TDEyLjY1LDE1LjU2bDYsMS0yLjI5LTRhMS4yLDEuMiwwLDEsMSwyLjA4LTEuMmw0LjgzLDguMzdMMTYuOSwxOC43WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVNb2JpbGU9KDAsYS5j''@;'; put 'put ''bHJJY29uU1ZHKSgnPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAsMiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTEsNkgyNVYyNEgxMVptMCwyNFYyNkgyNXY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNyIgeT0iMjciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDRIMTFBMiwyLDAsMCwwLDksNlYzMGEyLDIsMCwwLDAs''@;'; put 'put ''MiwySDI1YTIsMiwwLDAsMCwyLTJWNkEyLDIsMCwwLDAsMjUsNFpNMTksMzBIMTdWMjhoMlptLTgtNFY2SDI1VjI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZVRhYmxldD0oMCxhLmNsckljb25TVkcpKCc8cmVjdCB4''@;'; put 'put ''PSIxNyIgeT0iMjkiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDJINkEyLDIsMCwwLDAsNCw0VjMyYTIsMiwwLDAsMCwyLDJIMzBhMiwyLDAsMCwwLDItMlY0QTIsMiww''@;'; put 'put ''LDAsMCwzMCwyWm0wLDJWMjYuMzhINlY0Wk02LDMyVjI4SDMwdjRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwySDZBMiwyLDAsMCwwLDQsNFYzMmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJW''@;'; put 'put ''NEEyLDIsMCwwLDAsMzAsMlpNMTksMzJIMTdWMzBoMlpNNiwyOFY0SDMwVjI4WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZU5ldHdvcmtHbG9iZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjYuNTgsMzJoLTE4''@;'; put 'put ''YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEs''@;'; put 'put ''MCwxNy43NSwyWm0wLDJhMTIsMTIsMCwwLDEsOC40NCwzLjQ4YzAsLjMzLDAsLjY2LDAsMUExOC41MSwxOC41MSwwLDAsMCwxNCw4LjUzYTIuMzMsMi4zMywwLDAsMC0xLjE0LS42MWwtLjI1LDBjLS4xMi0uNDItLjIzLS44NC0uMzItMS4yN3MtLjE0LS44MS0uMTktMS4yMkExMS45MiwxMS45''@;'; put 'put ''MiwwLDAsMSwxNy43NSw0Wm0tMyw1Ljg3QTE3LDE3LDAsMCwxLDI1LjkyLDEwYTE2LjksMTYuOSwwLDAsMS0zLjExLDcsMi4yOCwyLjI4LDAsMCwwLTIuNTguNTdjLS4zNS0uMi0uNy0uNC0xLS42M2ExNiwxNiwwLDAsMS00LjkzLTUuMjMsMi4yNSwyLjI1LDAsMCwwLC40Ny0xLjc3Wm0tNC0z''@;'; put 'put ''LjZjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDEx''@;'; put 'put ''Ljk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCww''@;'; put 'put ''LDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSww''@;'; put 'put ''LDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4Wm02LjUxLTguOWEyLjMzLDIuMzMsMCwwLDAtLjMzLTEuMTksMTguNCwxOC40LDAsMCwwLDMuMzktNy4zN3EuNzUuMzUsMS40OC43OGExMiwxMiwwLDAsMSwuNDIsOC4yQTE2LDE2LDAsMCwxLDI0LjI3LDE5LjExWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1h''@;'; put 'put ''bGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMxLjczLDE1LjRoLTJjMCwuMiwwLC40LDAsLjYxYTEyLDEyLDAsMCwxLS41MywzLjUyLDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC44NywxOC44NywwLDAsMCwxLjYyLTIuNTJIMjMuODNhMTcu''@;'; put 'put ''MjksMTcuMjksMCwwLDEtMSwxLjU0LDIuMjgsMi4yOCwwLDAsMC0yLjU4LjU3Yy0uMzUtLjItLjctLjQtMS0uNjNhMTYsMTYsMCwwLDEtNC45My01LjIzLDIuMjUsMi4yNSwwLDAsMCwuNDctMS43N0ExNy4wOCwxNy4wOCwwLDAsMSwxOS41Niw5bC44Ny0xLjUxYTE4LjU5LDE4LjU5LDAsMCww''@;'; put 'put ''LTYuMzksMSwyLjMzLDIuMzMsMCwwLDAtMS4xNC0uNjFsLS4yNSwwYy0uMTItLjQyLS4yMy0uODQtLjMyLTEuMjdzLS4xNC0uODEtLjE5LTEuMjJBMTEuODgsMTEuODgsMCwwLDEsMjIsNC43OUwyMywzQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwx''@;'; put 'put ''NCwwLDAsMCwzMS43NiwxNkMzMS43NiwxNS44LDMxLjc0LDE1LjYsMzEuNzMsMTUuNFptLTIxLTkuMTNjMCwuMjEuMDYuNDMuMS42NC4wOS40NC4yMS44Ny4zMywxLjNhMi4yOCwyLjI4LDAsMCwwLTEuMSwyLjI1QTE4LjMyLDE4LjMyLDAsMCwwLDUuOSwxNC4yMiwxMiwxMiwwLDAsMSwxMC43''@;'; put 'put ''Niw2LjI3Wm0wLDE1LjcxQTIuMzQsMi4zNCwwLDAsMCw5LjIsMjMuNzRsLS42NCwwQTExLjk0LDExLjk0LDAsMCwxLDUuOCwxNi45MmwuMTEtLjE5YTE2LjksMTYuOSwwLDAsMSw0LjgxLTQuODksMi4zMSwyLjMxLDAsMCwwLDIuMjguNjMsMTcuNTMsMTcuNTMsMCwwLDAsNS4zNSw1LjY1Yy40''@;'; put 'put ''MS4yNy44My41MiwxLjI1Ljc2QTIuMzIsMi4zMiwwLDAsMCwxOS43OCwyMGExNi45NCwxNi45NCwwLDAsMS02LjIsMy4xMUEyLjM0LDIuMzQsMCwwLDAsMTAuNzYsMjJabTcsNmExMS45MiwxMS45MiwwLDAsMS01LjgxLTEuNTFsLjI4LS4wNmEyLjM0LDIuMzQsMCwwLDAsMS41Ny0xLjc5LDE4''@;'; put 'put ''LjQzLDE4LjQzLDAsMCwwLDctMy41LDIuMjksMi4yOSwwLDAsMCwzLS42MiwxNy40MSwxNy40MSwwLDAsMCw0LjMyLjU2bC41MywwQTEyLDEyLDAsMCwxLDE3Ljc1LDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0''@;'; put 'put ''ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRo''@;'; put 'put ''LTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMS41LDEzLjM1YTcuNTQsNy41NCwwLDAsMS0xLjUuMTVsLS41MSwwYTExLjkxLDExLjkxLDAsMCwxLS4yNSw2LDE2LDE2LDAsMCwxLTUtLjQxLDIuMzMsMi4zMywwLDAsMC0uMzMtMS4xOSwxOC41OSwxOC41OSwwLDAsMCwy''@;'; put 'put ''Ljc4LTUuMTgsNy40OSw3LjQ5LDAsMCwxLTEuMzEtLjgyLDE3LDE3LDAsMCwxLTIuNjEsNSwyLjI4LDIuMjgsMCwwLDAtMi41OC41N2MtLjM1LS4yLS43LS40LTEtLjYzYTE2LDE2LDAsMCwxLTQuOTMtNS4yMywyLjI1LDIuMjUsMCwwLDAsLjQ3LTEuNzcsMTcsMTcsMCwwLDEsOC41My0uNjIs''@;'; put 'put ''Ny40Myw3LjQzLDAsMCwxLS41Ni0xLjU5QTE4LjU2LDE4LjU2LDAsMCwwLDE0LDguNTNhMi4zMywyLjMzLDAsMCwwLTEuMTQtLjYxbC0uMjUsMGMtLjEyLS40Mi0uMjMtLjg0LS4zMi0xLjI3cy0uMTQtLjgxLS4xOS0xLjIyQTExLjkyLDExLjkyLDAsMCwxLDIyLjU3LDVhNy40NSw3LjQ1LDAs''@;'; put 'put ''MCwxLC41My0yQTE0LDE0LDAsMCwwLDMuNzUsMTZjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMGExNCwxNCwwLDEsMCwyNy42OC00Wk0xMC43Niw2LjI3YzAsLjIxLjA2LjQzLjEuNjQuMDkuNDQuMjEuODcuMzMsMS4zYTIuMjgsMi4yOCwwLDAsMC0xLjEsMi4yNUExOC4zMiwxOC4zMiwwLDAs''@;'; put 'put ''MCw1LjksMTQuMjIsMTIsMTIsMCwwLDEsMTAuNzYsNi4yN1ptMCwxNS43MUEyLjM0LDIuMzQsMCwwLDAsOS4yLDIzLjc0bC0uNjQsMEExMS45NCwxMS45NCwwLDAsMSw1LjgsMTYuOTJsLjExLS4xOWExNi45LDE2LjksMCwwLDEsNC44MS00Ljg5LDIuMzEsMi4zMSwwLDAsMCwyLjI4LjYzLDE3''@;'; put 'put ''LjUzLDE3LjUzLDAsMCwwLDUuMzUsNS42NWMuNDEuMjcuODMuNTIsMS4yNS43NkEyLjMyLDIuMzIsMCwwLDAsMTkuNzgsMjBhMTYuOTQsMTYuOTQsMCwwLDEtNi4yLDMuMTFBMi4zNCwyLjM0LDAsMCwwLDEwLjc2LDIyWm03LDZhMTEuOTIsMTEuOTIsMCwwLDEtNS44MS0xLjUxbC4yOC0uMDZh''@;'; put 'put ''Mi4zNCwyLjM0LDAsMCwwLDEuNTctMS43OSwxOC40MywxOC40MywwLDAsMCw3LTMuNSwyLjI5LDIuMjksMCwwLDAsMy0uNjIsMTcuNDEsMTcuNDEsMCwwLDAsNC4zMi41NmwuNTMsMEExMiwxMiwwLDAsMSwxNy43NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0y''@;'; put 'put ''Ni41OCwzMmgtMThhMSwxLDAsMSwwLDAsMmgxOGExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNC43Miw5Ljg3YTIuMjUsMi4yNSwwLDAsMS0uNDcsMS43NywxNiwxNiwwLDAsMCw0LjkzLDUu''@;'; put 'put ''MjNjLjM0LjIzLjY5LjQzLDEsLjYzYTIuMjgsMi4yOCwwLDAsMSwyLjU4LS41NywxNi45LDE2LjksMCwwLDAsMy4xMS03QTE3LDE3LDAsMCwwLDE0LjcyLDkuODdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE3Ljc1''@;'; put 'put ''LDJhMTQsMTQsMCwwLDAtMTQsMTRjMCwuNDUsMCwuODkuMDcsMS4zM2wwLDBoMEExNCwxNCwwLDEsMCwxNy43NSwyWk0yOC4xLDIxLjA5YTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSwwLDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCww''@;'; put 'put ''LDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiwwLDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3''@;'; put 'put ''LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40''@;'; put 'put ''My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQsOC41M2ExOC41MSwxOC41MSwwLDAsMSwxMi4xMS0uMDdjMC0uMzIsMC0uNjUsMC0x''@;'; put 'put ''aDBhMTIsMTIsMCwwLDEsMi42MiwzLjg1aDBxLS43My0uNDMtMS40OC0uNzhhMTguNCwxOC40LDAsMCwxLTMuMzksNy4zNywyLjMzLDIuMzMsMCwwLDEsLjMzLDEuMTksMjIsMjIsMCwwLDAsNSwuNDUsMTEuODgsMTEuODgsMCwwLDEtLjYxLDEuNTNaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2LjU4LDMyaC0xOGExLDEsMCwxLDAsMCwyaDE4YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTMxLjczLDE1LjRIMjUuNTZhMTguODcsMTguODcsMCwwLDEtMS42MiwyLjUyLDIuMzMsMi4zMywwLDAsMSwuMzMsMS4xOSwyMiwyMiwwLDAsMCw1LC40NSwxMS44OCwxMS44OCwwLDAsMS0uNjEsMS41M0gyOC4xYTE3LjQxLDE3LjQxLDAsMCwxLTQuMzItLjU2LDIuMjksMi4yOSww''@;'; put 'put ''LDAsMS0zLC42MiwxOC40MywxOC40MywwLDAsMS03LDMuNSwyLjM0LDIuMzQsMCwwLDEtMS41NywxLjc5bC0uMjkuMDZhMTEuOTMsMTEuOTMsMCwwLDEtMy4zOS0yLjhsLjY2LDBhMi4zMywyLjMzLDAsMCwxLDQuMzctLjU4QTE2Ljk0LDE2Ljk0LDAsMCwwLDE5Ljc4LDIwYTIuMzIsMi4zMiww''@;'; put 'put ''LDAsMS0uMTgtMS4xN2MtLjQyLS4yNC0uODQtLjQ5LTEuMjUtLjc2QTE3LjUzLDE3LjUzLDAsMCwxLDEzLDEyLjQ3YTIuMzEsMi4zMSwwLDAsMS0yLjI4LS42MywyNy4zMSwyNy4zMSwwLDAsMC01LDQuNzRjMC0uMiwwLS4zOSwwLS41N2ExMiwxMiwwLDAsMSwuMTQtMS43MywxOC43NSwxOC43''@;'; put 'put ''NSwwLDAsMSw0LjItMy44LDIuMjgsMi4yOCwwLDAsMSwxLjEtMi4yNWMtLjEyLS40My0uMjQtLjg2LS4zMy0xLjMsMC0uMTQsMC0uMjktLjExLS42NGExMiwxMiwwLDAsMSwxLjM3LS44N2MuMS41OS4xNC45LjIxLDEuMjFzLjIuODUuMzIsMS4yN2wuMjUsMEEyLjMzLDIuMzMsMCwwLDEsMTQs''@;'; put 'put ''OC41M2ExOC41OSwxOC41OSwwLDAsMSw2LjM5LTFMMjMsM0ExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBBMTQsMTQsMCwwLDAsMzEuNzYsMTZDMzEuNzYsMTUuOCwzMS43NCwxNS42LDMxLjczLDE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE0LjI2LDExLjY0YTE2LDE2LDAsMCwwLDQuOTMsNS4yM2MuMzQuMjMuNjkuNDMsMSwuNjNhMi4yOCwyLjI4LDAsMCwxLDIuNTgtLjU3LDE3LjI5LDE3LjI5LDAsMCwwLDEtMS41NGgtMS42QTMu''@;'; put 'put ''NjgsMy42OCwwLDAsMSwxOSw5Ljg5TDE5LjU2LDlhMTcuMDgsMTcuMDgsMCwwLDAtNC44NC44OCwyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0i''@;'; put 'put ''TTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQt''@;'; put 'put ''LWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuNTgsMzJoLTE4YTEsMSwwLDEsMCwwLDJoMThhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cGF0aCBkPSJNMzEuNSwxMy4zNWE3LjU0LDcuNTQsMCwwLDEtMS41LjE1LDcuNDYsNy40NiwwLDAsMS0zLjI4LS43NiwxOC41OSwxOC41OSwwLDAsMS0yLjc4LDUuMTgsMi4zMywyLjMzLDAsMCwxLC4zMywxLjE5LDIyLDIyLDAsMCwwLDUsLjQ1LDExLjg4LDExLjg4LDAsMCwxLS42MSwxLjUz''@;'; put 'put ''SDI4LjFhMTcuNDEsMTcuNDEsMCwwLDEtNC4zMi0uNTYsMi4yOSwyLjI5LDAsMCwxLTMsLjYyLDE4LjQzLDE4LjQzLDAsMCwxLTcsMy41LDIuMzQsMi4zNCwwLDAsMS0xLjU3LDEuNzlsLS4yOS4wNmExMS45MywxMS45MywwLDAsMS0zLjM5LTIuOGwuNjYsMGEyLjMzLDIuMzMsMCwwLDEsNC4z''@;'; put 'put ''Ny0uNThBMTYuOTQsMTYuOTQsMCwwLDAsMTkuNzgsMjBhMi4zMiwyLjMyLDAsMCwxLS4xOC0xLjE3Yy0uNDItLjI0LS44NC0uNDktMS4yNS0uNzZBMTcuNTMsMTcuNTMsMCwwLDEsMTMsMTIuNDdhMi4zMSwyLjMxLDAsMCwxLTIuMjgtLjYzLDI3LjMxLDI3LjMxLDAsMCwwLTUsNC43NGMwLS4y''@;'; put 'put ''LDAtLjM5LDAtLjU3YTEyLDEyLDAsMCwxLC4xNC0xLjczLDE4Ljc1LDE4Ljc1LDAsMCwxLDQuMi0zLjgsMi4yOCwyLjI4LDAsMCwxLDEuMS0yLjI1Yy0uMTItLjQzLS4yNC0uODYtLjMzLTEuMywwLS4xNCwwLS4yOS0uMTEtLjY0YTEyLDEyLDAsMCwxLDEuMzctLjg3Yy4xLjU5LjE0LjkuMjEs''@;'; put 'put ''MS4yMXMuMi44NS4zMiwxLjI3bC4yNSwwQTIuMzMsMi4zMywwLDAsMSwxNCw4LjUzYTE4LjU2LDE4LjU2LDAsMCwxLDguNjUtLjg3LDcuNDUsNy40NSwwLDAsMSwuNDEtNC41OUExNCwxNCwwLDAsMCwzLjc1LDE2YzAsLjQ1LDAsLjg5LjA3LDEuMzNsMCwwaDBhMTQsMTQsMCwxLDAsMjcuNjgt''@;'; put 'put ''NFoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQuNzIsOS44N2EyLjI1LDIuMjUsMCwwLDEtLjQ3LDEuNzcsMTYsMTYsMCwwLDAsNC45Myw1LjIzYy4zNC4yMy42OS40MywxLC42M2EyLjI4''@;'; put 'put ''LDIuMjgsMCwwLDEsMi41OC0uNTcsMTcsMTcsMCwwLDAsMi42MS01LDcuNTIsNy41MiwwLDAsMS0yLjE2LTIuNjdBMTcsMTcsMCwwLDAsMTQuNzIsOS44N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIi8+XG4gICAgICAgICAgICA8Y2ly''@;'; put 'put ''Y2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtNC0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVOZXR3b3JrU2V0dGluZ3M9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjg1''@;'; put 'put ''LDI3LjQ0YTIuMjksMi4yOSwwLDAsMCwxLjc0LTEuNjhjLjU0LS4xNCwxLjA2LS4zMiwxLjU5LS41MXYtMS4yYTIuNzcsMi43NywwLDAsMSwuMDYtLjUxLDE3LjQ0LDE3LjQ0LDAsMCwxLTEuODIuNjIsMi4yOCwyLjI4LDAsMCwwLTQuMjguNjNsLS40NSwwaDBhMTEuOTMsMTEuOTMsMCwwLDEt''@;'; put 'put ''Mi44OC03LjI3LDE3Ljc5LDE3Ljc5LDAsMCwxLDUtNC43MiwyLjIzLDIuMjMsMCwwLDAsMi4yOS41NiwxOC41MiwxOC41MiwwLDAsMCw0LjQ3LDUsMi43NCwyLjc0LDAsMCwxLC4yMS0uMjRsLjk1LS45MWExNi45LDE2LjksMCwwLDEtNC4zNS00Ljc5LDIuMjcsMi4yNywwLDAsMCwuMzUtMS4y''@;'; put 'put ''YzAtLjA3LDAtLjE0LDAtLjIyQTE3LjY5LDE3LjY5LDAsMCwxLDI1LDExYTE3LjQ5LDE3LjQ5LDAsMCwxLTEuMTUsMy4zNGwuMTksMGgxLjU2YTE5LDE5LDAsMCwwLC45MS0yLjcyYy40My4xOS44NC40MSwxLjI2LjY0YTExLjk0LDExLjk0LDAsMCwxLDEsNC4wOWwwLDBBMi43NywyLjc3LDAs''@;'; put 'put ''MCwxLDMwLDE2YTIuNzMsMi43MywwLDAsMSwuNjguMUExNCwxNCwwLDEsMCwxNi4wOCwzMWEyLjcyLDIuNzIsMCwwLDEsMC0yQTExLjkzLDExLjkzLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEs''@;'; put 'put ''MCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIuNTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40''@;'; put 'put ''NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI1LDIxLjE5QTMuODQsMy44NCwwLDEsMCwyOC44OCwyNSwzLjg3LDMuODcsMCwwLDAs''@;'; put 'put ''MjUsMjEuMTlabTAsNi4wOEEyLjI0LDIuMjQsMCwxLDEsMjcuMjgsMjUsMi4yNiwyLjI2LDAsMCwxLDI1LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzQuMTcsMjQuMTRhMS4xNCwxLjE0LDAsMCww''@;'; put 'put ''LS43LTEuMWwtMS41Ni0uNDZxLS4xMS0uMzItLjI2LS42M2wuNzItMS4zM2ExLjE0LDEuMTQsMCwwLDAtLjIxLTEuMzRsLTEuMzQtMS4zMmExLjE0LDEuMTQsMCwwLDAtMS4zNC0uMmwtMS4zNC43MWE3LjI4LDcuMjgsMCwwLDAtLjY3LS4yOEwyNywxNi43MWExLjE0LDEuMTQsMCwwLDAtMS4w''@;'; put 'put ''OC0uNzZIMjRhMS4xNCwxLjE0LDAsMCwwLTEuMDguOGwtLjQ0LDEuNDNhNy4zMiw3LjMyLDAsMCwwLS42OC4yOGwtMS4zMi0uN2ExLjE0LDEuMTQsMCwwLDAtMS4zMy4xOWwtMS4zNywxLjMxYTEuMTQsMS4xNCwwLDAsMC0uMjEsMS4zNWwuNywxLjI4cS0uMTYuMzItLjI4LjY1TDE2LjU4LDIz''@;'; put 'put ''YTEuMTMsMS4xMywwLDAsMC0uODEsMS4wOXYxLjg3QTEuMTQsMS4xNCwwLDAsMCwxNi41OSwyN2wxLjQ3LjQ0cS4xMi4zMi4yOC42NGwtLjcyLDEuMzVhMS4xNCwxLjE0LDAsMCwwLC4yLDEuMzVsMS4zNCwxLjMyYTEuMTQsMS4xNCwwLDAsMCwxLjM0LjJsMS4zNy0uNzJxLjMxLjE0LjYzLjI2''@;'; put 'put ''bC40NCwxLjQ3YTEuMTQsMS4xNCwwLDAsMCwxLjA5LjhoMS45QTEuMTQsMS4xNCwwLDAsMCwyNywzMy4zMWwuNDQtMS40N2MuMjEtLjA3LjQyLS4xNi42Mi0uMjVsMS4zOC43M2ExLjE0LDEuMTQsMCwwLDAsMS4zMy0uMmwxLjM0LTEuMzJhMS4xNCwxLjE0LDAsMCwwLC4yMS0xLjM1bC0uNzMt''@;'; put 'put ''MS4zNHEuMTQtLjMuMjUtLjZsMS41LS40NEExLjEzLDEuMTMsMCwwLDAsMzQuMTcsMjZabS0xLjYsMS41LTIsLjU4LS4xMi40MkE1LjU1LDUuNTUsMCwwLDEsMzAsMjcuNzNsLS4yMS4zOCwxLDEuNzktLjg2Ljg0LTEuODItMS0uMzcuMmE1Ljc4LDUuNzgsMCwwLDEtMS4xMi40NmwtLjQyLjEy''@;'; put 'put ''LS41OSwySDI0LjM4bC0uNTktMS45NS0uNDItLjEyQTUuODYsNS44NiwwLDAsMSwyMi4yNCwzMGwtLjM3LS4yLTEuODEsMS0uODYtLjg1LDEtMS44Mi0uMjItLjM4YTUuNiw1LjYsMCwwLDEtLjQ5LTEuMTNsLS4xMy0uNDEtMS45NS0uNThWMjQuNDJsMS45NC0uNTguMTItLjQxYTUuNTMsNS41''@;'; put 'put ''MywwLDAsMSwuNDktMS4xNGwuMjItLjM5LTEtMS43My44Ny0uODQsMS43Ny45NC4zOC0uMjFhNS44LDUuOCwwLDAsMSwxLjE3LS40OWwuNDEtLjEyLjU5LTEuOTFoMS4yM2wuNTgsMS45LjQxLjEyYTUuNzksNS43OSwwLDAsMSwxLjE2LjQ4bC4zOC4yMSwxLjgtLjk1Ljg2Ljg1LTEsMS43Ny4y''@;'; put 'put ''MS4zOGE1LjUzLDUuNTMsMCwwLDEsLjQ3LDEuMTNsLjEyLjQyLDEuOTMuNTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNCwyMy42MywzMiwyM2E3LjA2LDcuMDYsMCwwLDAtLjU4LTEuNDFsMS0xLjg2YS4z''@;'; put 'put ''Ny4zNywwLDAsMC0uMDctLjQ0TDMwLjksMTcuODZhLjM3LjM3LDAsMCwwLS40NC0uMDdsLTEuODUsMWE3LDcsMCwwLDAtMS40My0uNjFsLS42MS0yYS4zNy4zNywwLDAsMC0uMzYtLjI1aC0yYS4zNy4zNywwLDAsMC0uMzUuMjZsLS42MSwyYTcsNywwLDAsMC0xLjQ0LjYxTDIwLDE3LjhhLjM3''@;'; put 'put ''LjM3LDAsMCwwLS40NC4wN0wxOCwxOS4zMWEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LDcsMCwwLDAsMTguMzUsMjNsLTIsLjYxYS4zNy4zNywwLDAsMC0uMjYuMzV2MmEuMzcuMzcsMCwwLDAsLjI2LjM1bDIsLjYxQTcsNywwLDAsMCwxOSwyOC4zN2wtMSwxLjlhLjM3LjM3LDAsMCww''@;'; put 'put ''LC4wNy40NGwxLjQ1LDEuNDVhLjM3LjM3LDAsMCwwLC40NC4wN2wxLjg3LTFhNy4wNiw3LjA2LDAsMCwwLDEuMzkuNTdsLjYxLDJhLjM3LjM3LDAsMCwwLC4zNS4yNmgyYS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yYTcsNywwLDAsMCwxLjM4LS41N2wxLjg5LDFhLjM3LjM3LDAsMCwwLC40''@;'; put 'put ''NC0uMDdsMS40NS0xLjQ1YS4zNy4zNywwLDAsMCwuMDctLjQ0bC0xLTEuODhBNyw3LDAsMCwwLDMxLjk1LDI3bDItLjYxYS4zNy4zNywwLDAsMCwuMjYtLjM1VjI0QS4zNy4zNywwLDAsMCwzNCwyMy42M1ptLTguODMsNC43MkEzLjMzLDMuMzMsMCwxLDEsMjguNTMsMjUsMy4zMywzLjMzLDAs''@;'; put 'put ''MCwxLDI1LjE5LDI4LjM0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC44NSwyNy40NGEyLjI5LDIuMjksMCwwLDAsMS43NC0xLjY4LDE5LjcxLDE5LjcxLDAsMCwwLDEuODktLjZWMjMuOTVhMiwyLDAsMCwxLC4w''@;'; put 'put ''OS0uNTUsMTcuNDIsMTcuNDIsMCwwLDEtMi4xNy43OCwyLjI4LDIuMjgsMCwwLDAtNC4yOC42M2wtLjQ1LDBoMGExMS45MywxMS45MywwLDAsMS0yLjg4LTcuMjcsMTcuNzksMTcuNzksMCwwLDEsNS00LjcyLDIuMjMsMi4yMywwLDAsMCwyLjI5LjU2LDE4LjUyLDE4LjUyLDAsMCwwLDQuNjUs''@;'; put 'put ''NS4wOSwxLjkzLDEuOTMsMCwwLDEsLjIzLS4zMmwuODktLjg3YTE2Ljg5LDE2Ljg5LDAsMCwxLTQuNDktNC44OSwyLjI3LDIuMjcsMCwwLDAsLjM1LTEuMmMwLS4wNywwLS4xNCwwLS4yMkExNy42OSwxNy42OSwwLDAsMSwyNSwxMWExNy40OSwxNy40OSwwLDAsMS0xLjE1LDMuMzUsMS45NCwx''@;'; put 'put ''Ljk0LDAsMCwxLC4zMS0uMDVoMS40NWExOS4wNiwxOS4wNiwwLDAsMCwuOS0yLjdjLjQzLjE5Ljg0LjQxLDEuMjYuNjRhMTEuOTMsMTEuOTMsMCwwLDEsMSw0LjYzbDEtLjUxYTIsMiwwLDAsMSwuOTItLjIzaC4wOEExNCwxNCwwLDEsMCwxNi40NCwzMWExLjk0LDEuOTQsMCwwLDEsLjEyLTEu''@;'; put 'put ''NDZsLjI4LS41M2gtLjA3QTExLjkxLDExLjkxLDAsMCwxLDEwLjg1LDI3LjQ0Wk0xNi43Niw1YTEyLDEyLDAsMCwxLDguNjEsMy42NmMwLC4yNSwwLC41MS0uMDguNzZhMTkuMjEsMTkuMjEsMCwwLDAtMTIuMzUuMTFBMi4yOCwyLjI4LDAsMCwwLDExLjc0LDlhMTcsMTcsMCwwLDEtLjYxLTIu''@;'; put 'put ''NTNBMTEuOTIsMTEuOTIsMCwwLDEsMTYuNzYsNVpNOS42Niw3LjM2YTE4LjcyLDE4LjcyLDAsMCwwLC40OSwxLjkyLDIuMjgsMi4yOCwwLDAsMC0xLjA3LDEuOTNzMCwuMSwwLC4xNUExOS40NSwxOS40NSwwLDAsMCw1LDE0Ljc5LDEyLDEyLDAsMCwxLDkuNjYsNy4zNloiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVOZXR3b3JrU3dpdGNoPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMC43OCw4LjQxQTIsMiwwLDAsMCwyOC44Nyw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5''@;'; put 'put ''LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2QTIsMiwwLDAsMCwzMy45MSwxOC40N1pNMzIsMjdINFYxOS4wNkw3LjEzLDlIMjguODdMMzIsMTkuMDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9''@;'; put 'put ''IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9Ijcu''@;'; put 'put ''MTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTIuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTcuMTEiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0z''@;'; put 'put ''LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIyNy4xIiB5''@;'; put 'put ''PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjYuMjMiIHk9IjE4IiB3aWR0aD0iMjMuNjkiIGhlaWdodD0iMS40IiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40NywzMywxNS40SDMwLjg2TDMyLDE5LjA2VjI3SDRWMTkuMDZMNy4xMyw5SDE5LjU2bDEuMTUtMkg3LjEzQTIsMiwwLDAsMCw1LjIyLDgu''@;'; put 'put ''NDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNkEyLDIsMCwwLDAsMzMuOTEsMTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjcuMTIiIHk9IjIyIiB3aWR0aD0iMS44IiBoZWlnaHQ9IjMiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxyZWN0IHg9IjEyLjEyIiB5PSIyMiIgd2lkdGg9IjEuOCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxNy4xMSIgeT0iMjIiIHdpZHRoPSIx''@;'; put 'put ''LjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjIuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjcuMSIgeT0iMjIiIHdpZHRoPSIxLjgiIGhlaWdodD0iMyIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHJlY3QgeD0iNi4yMyIgeT0iMTgiIHdpZHRoPSIyMy42OSIgaGVpZ2h0PSIxLjQiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTYtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy45MSwxOC40N2wtMS42NS01LjMyYTcuNDksNy40''@;'; put 'put ''OSwwLDAsMS0yLC4zM0wzMiwxOS4wNlYyN0g0VjE5LjA2TDcuMTMsOWgxNmE3LjQ1LDcuNDUsMCwwLDEtLjU1LTJINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAs''@;'; put 'put ''MCwwLDMzLjkxLDE4LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtOC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjkxLDE4LjQ3LDMwLjc4LDguNDFBMiwyLDAsMCwwLDI4Ljg3LDdINy4xM0EyLDIsMCwwLDAsNS4yMiw4LjQxTDIuMDksMTguNDhhMiwyLDAsMCwwLS4wOS41OVYyN2EyLDIsMCwwLDAsMiwy''@;'; put 'put ''SDMyYTIsMiwwLDAsMCwyLTJWMTkuMDZBMiwyLDAsMCwwLDMzLjkxLDE4LjQ3Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMsMTUuNEgyMi4yM0EzLjY4LDMuNjgsMCwwLDEsMTksOS44OUwyMC43MSw3SDcuMTNBMiwyLDAsMCwwLDUuMjIsOC40MUwyLjA5LDE4LjQ4YTIsMiwwLDAsMC0uMDkuNTlWMjdhMiwyLDAsMCww''@;'; put 'put ''LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE5LjA2YTIsMiwwLDAsMC0uMDktLjU5Wk04LjkyLDI1SDcuMTJWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMGgtMS44VjIyaDEuOFptNSwwSDIyLjFWMjJoMS44Wm01LDBIMjcuMVYyMmgxLjhaTTMxLDE5LjRINVYxOEgzMVoiIGNsYXNzPSJjbHIt''@;'; put 'put ''aS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwx''@;'; put 'put ''LjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMy4xNUE3LjQ5LDcuNDksMCwwLDEsMjIuNTcsN0g3LjEzQTIsMiww''@;'; put 'put ''LDAsMCw1LjIyLDguNDFMMi4wOSwxOC40OGEyLDIsMCwwLDAtLjA5LjU5VjI3YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxOS4wNmEyLDIsMCwwLDAtLjA5LS41OVpNOC45MiwyNUg3LjEyVjIyaDEuOFptNSwwaC0xLjhWMjJoMS44Wm01LDBoLTEuOFYyMmgxLjhabTUsMEgyMi4x''@;'; put 'put ''VjIyaDEuOFptNSwwSDI3LjFWMjJoMS44Wk0zMSwxOS40SDVWMThIMzFaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlUm91dGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCwxNC44N2w1LjExLTUuMTRhMSwxLDAsMSwwLTEuNDItMS40MUwxOSwxMVYzLjMzYTEsMSwwLDAs''@;'; put 'put ''MC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMjEuMTNsLTUuMTEsNS4xNGExLDEsMCwwLDAsMS40MiwxLjQxTDE3LDI1djcuNjlhMSwx''@;'; put 'put ''LDAsMCwwLDIsMFYyNWwyLjY5LDIuNzFhMSwxLDAsMCwwLDEuNDItMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJMMzAuMTUsMTdIMjIuNDZhMSwx''@;'; put 'put ''LDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTUuODUsMTloNy42OWExLDEsMCwwLDAsMC0ySDUuODVsMi43MS0yLjY5''@;'; put 'put ''YTEsMSwwLDEsMC0xLjQxLTEuNDJMMiwxOGw1LjE0LDUuMTFhMSwxLDAsMSwwLDEuNDEtMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxLjEzbC01LjExLDUuMTRhMSwxLDAsMCwwLDEuNDIsMS40''@;'; put 'put ''MUwxNywyNXY3LjY5YTEsMSwwLDAsMCwyLDBWMjVsMi42OSwyLjcxYTEsMSwwLDAsMCwxLjQyLTEuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5aDcuNjlhMSwx''@;'; put 'put ''LDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGQ9Ik0zMS4zOCwxNS40SDI4LjU0TDMwLjE1LDE3SDIyLjQ2YTEsMSwwLDEsMCwwLDJoNy42OWwtMi43MSwyLjY5YTEsMSwwLDAsMCwxLjQxLDEuNDJMMzQsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xOCwxNC44N2wxLjE1LTEuMTYtLjEtLjE1QTMuNjgsMy42OCwwLDAsMSwxOSwxMFYzLjMzYTEsMSwwLDAsMC0yLDBWMTFMMTQuMzEsOC4zMmExLDEsMCwxLDAtMS40MiwxLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCwwLDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTQuODdsNS4xMS01LjE0YTEsMSwwLDEsMC0xLjQyLTEuNDFMMTksMTFWMy4zM2ExLDEsMCwwLDAtMiwwVjExTDE0LjMx''@;'; put 'put ''LDguMzJhMSwxLDAsMSwwLTEuNDIsMS40MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyMS4xM2wtNS4xMSw1LjE0YTEsMSwwLDAsMCwxLjQyLDEuNDFMMTcsMjV2Ny42OWEx''@;'; put 'put ''LDEsMCwwLDAsMiwwVjI1bDIuNjksMi43MWExLDEsMCwwLDAsMS40Mi0xLjQxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4Ljg1LDEyLjg5YTEsMSwwLDAsMC0xLjQxLDEuNDJM''@;'; put 'put ''MzAuMTUsMTdIMjIuNDZhMSwxLDAsMSwwLDAsMmg3LjY5bC0yLjcxLDIuNjlhMSwxLDAsMCwwLDEuNDEsMS40MkwzNCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01Ljg1LDE5''@;'; put 'put ''aDcuNjlhMSwxLDAsMCwwLDAtMkg1Ljg1bDIuNzEtMi42OWExLDEsMCwxLDAtMS40MS0xLjQyTDIsMThsNS4xNCw1LjExYTEsMSwwLDEsMCwxLjQxLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMS42N2ExNiwxNiwwLDEsMCwxNiwxNkExNiwxNiwwLDAs''@;'; put 'put ''MCwxOCwxLjY3Wk0xMy44Niw5LjkyYS44LjgsMCwwLDEsMS4xMywwbDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2Ni4xOEwyMSw5LjkyYS44LjgsMCwxLDEsMS4xMywxLjE0TDE4LDE1LjE1bC00LjE0LTQuMUEuOC44LDAsMCwxLDEzLjg2LDkuOTJaTTEwLjMyLDIxLjc0YS44Ljgs''@;'; put 'put ''MCwwLDEtMS4xMywwTDUsMTcuNjdsNC4xOS00LjA5YS44LjgsMCwxLDEsMS4xMiwxLjE0bC0yLjIsMi4xNGg2LjI3YS44LjgsMCwwLDEsMCwxLjZIOC4xMWwyLjIsMi4xNUEuOC44LDAsMCwxLDEwLjMyLDIxLjc0Wm0xMS44MiwzLjY3YS44LjgsMCwwLDEtMS4xMywwTDE4LjgsMjMuMjNWMjku''@;'; put 'put ''NGEuOC44LDAsMCwxLTEuNiwwVjIzLjIzTDE1LDI1LjQyYS44LjgsMCwxLDEtMS4xMy0xLjE0TDE4LDIwLjE4bDQuMTQsNC4xQS44LjgsMCwwLDEsMjIuMTQsMjUuNDFabTQuNjctMy42NmEuOC44LDAsMSwxLTEuMTItMS4xNGwyLjItMi4xNUgyMS42M2EuOC44LDAsMCwxLDAtMS42aDYuMjds''@;'; put 'put ''LTIuMi0yLjE0YS44LjgsMCwxLDEsMS4xMi0xLjE0TDMxLDE3LjY3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MiwxNS4zOUgyOC42OEwzMSwxNy42N2wtNC4xOSw0LjA5YS44LjgsMCwxLDEtMS4xMi0xLjE0''@;'; put 'put ''bDIuMi0yLjE1SDIxLjYzYS44LjgsMCwwLDEsMC0xLjZoNi4yN2wtMS41LTEuNDdIMjIuMjNhMy42OCwzLjY4LDAsMCwxLTMtMS41MUwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDEsMSwxNSw5LjkybDIuMjEsMi4xOVY1LjkzYS44LjgsMCwwLDEsMS42LDB2NC40OUEzLjY1LDMuNjUsMCww''@;'; put 'put ''LDEsMTksOS44OWw0LjIyLTcuMzFBMTYsMTYsMCwxLDAsMzQsMTcuNjcsMTYsMTYsMCwwLDAsMzMuODIsMTUuMzlabS0yMy41LDYuMzVhLjguOCwwLDAsMS0xLjEzLDBMNSwxNy42N2w0LjE5LTQuMDlhLjguOCwwLDEsMSwxLjEyLDEuMTRsLTIuMiwyLjE0aDYuMjdhLjguOCwwLDAsMSwwLDEu''@;'; put 'put ''Nkg4LjExbDIuMiwyLjE1QS44LjgsMCwwLDEsMTAuMzIsMjEuNzRabTExLjgyLDMuNjdhLjguOCwwLDAsMS0xLjEzLDBMMTguOCwyMy4yM1YyOS40YS44LjgsMCwwLDEtMS42LDBWMjMuMjNMMTUsMjUuNDJhLjguOCwwLDEsMS0xLjEzLTEuMTRMMTgsMjAuMThsNC4xNCw0LjFBLjguOCwwLDAs''@;'; put 'put ''MSwyMi4xNCwyNS40MVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODUsMS4xNCwyMS4xMywxMUExLjI4LDEuMjgsMCwwLDAsMjIuMjMsMTNIMzMuNjhBMS4yOCwxLjI4LDAsMCww''@;'; put 'put ''LDM0Ljc4LDExTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiAgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy4yMiwxMi43NkE3LjQ5LDcu''@;'; put 'put ''NDksMCwwLDEsMjMuMzIsMi42YTE2LDE2LDAsMSwwLDkuOSwxMC4xN1pNMTMuODYsOS45MmEuOC44LDAsMCwxLDEuMTMsMGwyLjIxLDIuMTlWNS45M2EuOC44LDAsMCwxLDEuNiwwdjYuMThMMjEsOS45MmEuOC44LDAsMSwxLDEuMTMsMS4xNEwxOCwxNS4xNWwtNC4xNC00LjFBLjguOCwwLDAs''@;'; put 'put ''MSwxMy44Niw5LjkyWk0xMC4zMiwyMS43NGEuOC44LDAsMCwxLTEuMTMsMEw1LDE3LjY3bDQuMTktNC4wOWEuOC44LDAsMSwxLDEuMTIsMS4xNGwtMi4yLDIuMTRoNi4yN2EuOC44LDAsMCwxLDAsMS42SDguMTFsMi4yLDIuMTVBLjguOCwwLDAsMSwxMC4zMiwyMS43NFptMTEuODIsMy42N2Eu''@;'; put 'put ''OC44LDAsMCwxLTEuMTMsMEwxOC44LDIzLjIzVjI5LjRhLjguOCwwLDAsMS0xLjYsMFYyMy4yM0wxNSwyNS40MmEuOC44LDAsMSwxLTEuMTMtMS4xNEwxOCwyMC4xOGw0LjE0LDQuMUEuOC44LDAsMCwxLDIyLjE0LDI1LjQxWm00LjY3LTMuNjZhLjguOCwwLDEsMS0xLjEyLTEuMTRsMi4yLTIu''@;'; put 'put ''MTVIMjEuNjNhLjguOCwwLDAsMSwwLTEuNmg2LjI3bC0yLjItMi4xNGEuOC44LDAsMSwxLDEuMTItMS4xNEwzMSwxNy42N1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2''@;'; put 'put ''IiByPSI1IiAgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVWTT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTEsNUgyNVY4aDJWNWEyLDIsMCwwLDAtMi0ySDExQTIs''@;'; put 'put ''MiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTBIMTd2Mmg4djZoMlYxMmgzVjI2SDIyVjE3YTIsMiwwLDAsMC0yLTJINmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwy''@;'; put 'put ''LDJIMjBhMiwyLDAsMCwwLDItMlYyOGg4YTIsMiwwLDAsMCwyLTJWMTJBMiwyLDAsMCwwLDMwLDEwWk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwyaDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBh''@;'; put 'put ''dGggZD0iTTExLDVIMjEuODdMMjMsM0gxMUEyLDIsMCwwLDAsOSw1djYuODVoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMjUuMDEiIHk9IjE1LjQiIHdpZHRoPSIxLjk5IiBo''@;'; put 'put ''ZWlnaHQ9IjIuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTUuNFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIw''@;'; put 'put ''YTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjE1LjRaTTYsMzFWMTdIMjB2OUgxNlYyMEgxNHY2YTIsMiwwLDAsMCwyLDJoNHYzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0''@;'; put 'put ''aCBkPSJNMTcsMTB2MmgxLjU3QTMuNjcsMy42NywwLDAsMSwxOSwxMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC00LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCww''@;'; put 'put ''LDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0IiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHBhdGggZD0iTTExLDVIMjIuNTdhNy40NSw3LjQ1LDAsMCwxLC41NS0ySDExQTIsMiwwLDAsMCw5LDV2Ni44NWgyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEz''@;'; put 'put ''LjVoMFYyNkgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjhoOGEyLDIsMCwwLDAsMi0yVjEzLjIyQTcuNDksNy40OSwwLDAsMSwzMCwxMy41Wk02LDMxVjE3SDIwdjlIMTZWMjBIMTR2NmEyLDIsMCwwLDAsMiwy''@;'; put 'put ''aDR2M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMmg4djZoMlYxMi44N0E3LjUyLDcuNTIsMCwwLDEsMjMuNjYsMTBIMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFk''@;'; put 'put ''Z2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQgY2xyLWktYmFkZ2UiIC8+XG4gICAgICAgICAg''@;'; put 'put ''ICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDI3VjVhMiwyLDAsMCwwLTItMkgxMUEyLDIsMCwwLDAsOSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMEgxNy4x''@;'; put 'put ''OWEyLDIsMCwwLDAtMiwydjEuNEgyMEEzLjYsMy42LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIsMiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAs''@;'; put 'put ''MCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjEyQTIsMiwwLDAsMCwzMCwxMFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42aDIuNzJMMjMsM0gxMUEyLDIsMCwwLDAs''@;'; put 'put ''OSw1djguNGg0LjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy4xOSwxMGEyLDIsMCwwLDAtMiwydjEuNEgxOUEzLjY4LDMuNjgsMCwwLDEsMTksMTBaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''c29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIzLjIxLDE1LjRBMy41NSwzLjU1LDAsMCwxLDIzLjYsMTd2OEgyMlYxN2EyLDIsMCwwLDAtMi0ySDZhMiwyLDAsMCwwLTIsMlYzMWEyLDIsMCwwLDAsMiwySDIwYTIs''@;'; put 'put ''MiwwLDAsMCwyLTJWMjkuNkgxNy4xOWEzLjYsMy42LDAsMCwxLTMuNi0zLjZWMjBoMS42djZhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjE1LjRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAg''@;'; put 'put ''PHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMuNTksMTJhMy42LDMuNiwwLDAsMSwzLjYtMy42SDIyLjlBNy40NSw3LjQ1LDAsMCwxLDIzLjEzLDNIMTFBMiwyLDAsMCwwLDksNXY4LjRoNC41OVoiIGNsYXNzPSJjbHItaS1zb2xpZC0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLDEzLjVBNy40OSw3LjQ5LDAsMCwxLDIzLjY2LDEwSDE3LjE5YTIsMiwwLDAsMC0yLDJ2MS40SDIwQTMuNiwzLjYsMCwwLDEsMjMuNiwxN3Y4SDIyVjE3YTIsMiwwLDAsMC0yLTJI''@;'; put 'put ''NmEyLDIsMCwwLDAtMiwyVjMxYTIsMiwwLDAsMCwyLDJIMjBhMiwyLDAsMCwwLDItMlYyOS42SDE3LjE5YTMuNiwzLjYsMCwwLDEtMy42LTMuNlYyMGgxLjZ2NmEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy40OSw3LjQ5LDAsMCwxLDMwLDEzLjVaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMy0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAg''@;'; put 'put ''ICAgICAnKSxlLkNsclNoYXBlVk1XQXBwPSgwLGEuY2xySWNvblNWRykoJzxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIgMzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNCAzMCA2IDMwIDYgMjIgOCAyMiA4IDIwIDQgMjAgNCAzMiAxNiAzMiAxNiAyOCAxNCAyOCAxNCAzMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cG9seWdv''@;'; put 'put ''biBwb2ludHM9IjggMTQgNiAxNCA2IDYgMTQgNiAxNCA4IDE2IDggMTYgNCA0IDQgNCAxNiA4IDE2IDggMTQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIyMCA0IDIwIDggMjIgOCAyMiA2IDMwIDYg''@;'; put 'put ''MzAgMTQgMjggMTQgMjggMTYgMzIgMTYgMzIgNCAyMCA0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxOSIgeT0iMTEiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0''@;'; put 'put ''PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhlaWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8''@;'; put 'put ''cG9seWdvbiBwb2ludHM9IjI4IDIyIDMwIDIyIDMwIDMwIDIyIDMwIDIyIDI4IDIwIDI4IDIwIDMyIDMyIDMyIDMyIDIwIDI4IDIwIDI4IDIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5''@;'; put 'put ''Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQgMjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRz''@;'; put 'put ''PSI4IDE0IDYgMTQgNiA2IDE0IDYgMTQgOCAxNiA4IDE2IDQgNCA0IDQgMTYgOCAxNiA4IDE0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjExIiB5PSIxMSIgd2lkdGg9IjYiIGhl''@;'; put 'put ''aWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTQtLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTkiIHk9IjE5IiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9''@;'; put 'put ''Ik0yNSwxNS40SDIyLjIzQTMuNjksMy42OSwwLDAsMSwxOSwxMy41NmwwLS4xVjE3aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjIuNDUgNCAyMCA0IDIwIDgg''@;'; put 'put ''MjAuMTQgOCAyMi40NSA0IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtOC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI4IiB5PSIxNS40IiB3aWR0aD0iNCIgaGVpZ2h0PSIwLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVy''@;'; put 'put ''dGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwy''@;'; put 'put ''Ni44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMjggMjIgMzAgMjIgMzAgMzAgMjIgMzAgMjIgMjggMjAgMjggMjAgMzIgMzIg''@;'; put 'put ''MzIgMzIgMjAgMjggMjAgMjggMjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iMTQgMzAgNiAzMCA2IDIyIDggMjIgOCAyMCA0IDIwIDQgMzIgMTYgMzIgMTYgMjggMTQg''@;'; put 'put ''MjggMTQgMzAiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwb2x5Z29uIHBvaW50cz0iOCAxNCA2IDE0IDYgNiAxNCA2IDE0IDggMTYgOCAxNiA0IDQgNCA0IDE2IDggMTYgOCAxNCIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHJlY3QgeD0iMTEiIHk9IjExIiB3aWR0aD0iNiIgaGVpZ2h0PSI2IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSIxMSIgeT0iMTkiIHdpZHRoPSI2IiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjE5IiB5PSIxOSIgd2lkdGg9IjYiIGhl''@;'; put 'put ''aWdodD0iNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTIyLDZoLjVhNy40OSw3LjQ5LDAsMCwxLC4yOC0ySDIwVjhoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTctLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCwxMy41VjE0SDI4djJoNFYxMy4yMkE3LjQ5LDcuNDksMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTgtLWJhZGdlZCIgLz5c''@;'; put 'put ''biAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNSwxMS41OGE3LjUzLDcuNTMsMCwwLDEtLjU4LS41OEgxOXY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC05LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIzMCIgY3k9IjYiIHI9''@;'; put 'put ''IjUiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMC0tYmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQ2VydGlmaWNhdGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhINFY4SDMybDAsOC41NmE4LjQxLDguNDEsMCwwLDEsMiwxLjgxVjhBMiwyLDAsMCwwLDMyLDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9''@;'; put 'put ''IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYs''@;'; put 'put ''MCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEs''@;'; put 'put ''MjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjE2IiB3aWR0aD0iMTEiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MS0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40Niwx''@;'; put 'put ''Ny4yM2E2LjM2LDYuMzYsMCwwLDAtNC40LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0''@;'; put 'put ''LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcuOTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOSwxMy41NkEzLjY2LDMuNjYsMCwwLDEsMTguNTcsMTJIN3YxLjZIMTkuMDdaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwxNS40SDMydjEuMTZhOC40MSw4LjQxLDAsMCwxLDIsMS44MXYtM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTQsMjhWOEgyMC4xNGwxLjE1LTJINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRMMjAuNDEsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRl''@;'; put 'put ''ZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYWxlcnRlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNi44NSwxLjE0LDIxLjEzLDExQTEuMjgsMS4yOCwwLDAsMCwyMi4yMywxM0gzMy42OEExLjI4LDEuMjgsMCwwLDAsMzQuNzgsMTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYu''@;'; put 'put ''ODUsMS4xNFoiICBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCBjbHItaS1hbGVydCIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjciIHk9IjEyIiB3aWR0aD0iMTciIGhlaWdodD0iMS42IiBjbGFzcz0iY2xyLWktb3V0bGluZS0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI3IiB5PSIxNiIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuNiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMi0tYmFkZ2VkIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPHJlY3QgeD0iNyIgeT0iMjMiIHdpZHRoPSIxMCIgaGVpZ2h0PSIxLjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yNy40NiwxNy4yM2E2LjM2LDYuMzYsMCwwLDAtNC40''@;'; put 'put ''LDExbC0xLjk0LDIuMzcuOSwzLjYxLDMuNjYtNC40NmE2LjI2LDYuMjYsMCwwLDAsMy41NSwwbDMuNjYsNC40Ni45LTMuNjEtMS45NC0yLjM3YTYuMzYsNi4zNiwwLDAsMC00LjQtMTFabTAsMTAuNjhhNC4zMSw0LjMxLDAsMSwxLDQuMzctNC4zMUE0LjM1LDQuMzUsMCwwLDEsMjcuNDYsMjcu''@;'; put 'put ''OTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsMTMuMjJ2My4zNGE4LjQxLDguNDEsMCwwLDEsMiwxLjgxdi02QTcuNDUsNy40NSwwLDAsMSwzMiwxMy4yMloiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTUtLWJhZGdlZCIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik00LDI4VjhIMjIuNzhhNy40OSw3LjQ5LDAsMCwxLS4yOC0ySDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDE5bC41Ny0uNy45My0xLjE0TDIw''@;'; put 'put ''LjQxLDI4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiAgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0t''@;'; put 'put ''YmFkZ2VkIGNsci1pLWJhZGdlIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LDMwSDRhMiwyLDAsMCwxLTItMlY4QTIsMiwwLDAsMSw0LDZIMzJhMiwyLDAsMCwxLDIsMlYxOC4zN2E4LjM0LDguMzQsMCwwLDAtMTMuNDksOS43OWwtLjkzLDEuMTRaTTcsMTJ2MS42SDI0VjEyWm0wLDUu''@;'; put 'put ''NkgxOFYxNkg3Wm0wLDdIMTdWMjNIN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuODMsMjMuNTlhNi4zNyw2LjM3LDAsMSwwLTEwLjc3LDQuNTlsLTEuOTQsMi4zNy45LDMuNjEsMy42Ni00LjQ2YTYuMjYsNi4y''@;'; put 'put ''NiwwLDAsMCwzLjU1LDBsMy42Niw0LjQ2LjktMy42MS0xLjk0LTIuMzdBNi4zNCw2LjM0LDAsMCwwLDMzLjgzLDIzLjU5Wm0tMTAuNzQsMGE0LjM3LDQuMzcsMCwxLDEsNC4zNyw0LjMxQTQuMzUsNC4zNSwwLDAsMSwyMy4xLDIzLjU5WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy44MywyMy41OWE2LjM3LDYuMzcsMCwxLDAtMTAuNzcsNC41OWwtMS45NCwyLjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN0E2LjM0LDYuMzQsMCww''@;'; put 'put ''LDAsMzMuODMsMjMuNTlabS0xMC43NCwwYTQuMzcsNC4zNywwLDEsMSw0LjM3LDQuMzFBNC4zNSw0LjM1LDAsMCwxLDIzLjEsMjMuNTlaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMz''@;'; put 'put ''LjY4LDE1LjRIMjkuMjVhOC4zNiw4LjM2LDAsMCwxLDQuNzUsM3YtM1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTItLWFsZXJ0ZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDcsMTMuNkg3VjEySDE4LjU3QTMuNjcsMy42NywwLDAsMSwx''@;'; put 'put ''OSw5Ljg5TDIxLjI5LDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMTlsLjU3LS43LjkzLTEuMTRBOC4zNCw4LjM0LDAsMCwxLDI1LjY2LDE1LjRIMjIuMjNBMy42OCwzLjY4LDAsMCwxLDE5LjA3LDEzLjZaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI2Ljg1LDEuMTQsMjEuMTMsMTFBMS4yOCwxLjI4LDAsMCwwLDIyLjIzLDEzSDMzLjY4QTEuMjgsMS4yOCwwLDAsMCwzNC43OCwxMUwyOS4wNiwxLjE0QTEu''@;'; put 'put ''MjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWFsZXJ0ZWQgY2xyLWktYWxlcnQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjcuNDYsMTcuMjNhNi4zNiw2LjM2LDAsMCwwLTQuNCwxMWwtMS45NCwy''@;'; put 'put ''LjM3LjksMy42MSwzLjY2LTQuNDZhNi4yNiw2LjI2LDAsMCwwLDMuNTUsMGwzLjY2LDQuNDYuOS0zLjYxLTEuOTQtMi4zN2E2LjM2LDYuMzYsMCwwLDAtNC40LTExWm0wLDEwLjY4YTQuMzEsNC4zMSwwLDEsMSw0LjM3LTQuMzFBNC4zNSw0LjM1LDAsMCwxLDI3LjQ2LDI3LjkxWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAsMTMuNUE3LjUsNy41LDAsMCwxLDIyLjUsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgxOWwuNTctLjcuOTMtMS4xNEE4LjM0LDguMzQs''@;'; put 'put ''MCwwLDEsMzQsMTguMzd2LTZBNy40Niw3LjQ2LDAsMCwxLDMwLDEzLjVaTTE3LDI0LjZIN1YyM0gxN1ptMS03SDdWMTZIMThabTYtNEg3VjEySDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0yLS1iYWRnZWQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xl''@;'; put 'put ''IGN4PSIzMCIgY3k9IjYiIHI9IjUiICBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUFyY2hpdmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDMySDdWMjJINVYz''@;'; put 'put ''MmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjJIMjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwyNGExLDEsMCwwLDAsMSwxaDZhMSwxLDAsMCwwLDAtMkgxNUExLDEsMCwwLDAsMTQsMjRa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNCwxOEg2VjE0aDRhMywzLDAsMCwxLS42OC0xLjg3czAtLjA5LDAtLjEzSDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNloiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNBMywzLDAsMCwxLDI2LDE0aDR2NEgyMmwtMiwySDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTgsMTkuMThsNi4zOC02LjM1QTEsMSwwLDEsMCwyMywxMS40MWwtNCwzLjk1VjNhMSwxLDAsMSwwLTIsMHYxMi40bC00LTMuOTVhMSwxLDAsMCwwLTEuNDEsMS40MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE5LjQxLDIwLjYsMTgsMjJsLTEuNDEtMS40TDE2LDIwSDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIwSDIwWk0yMiwyNGExLDEsMCwwLDEtMSwxSDE1YTEsMSwwLDAsMSwwLTJoNkExLDEsMCww''@;'; put 'put ''LDEsMjIsMjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjYuNjZzMCwuMDksMCwuMTNhMywzLDAsMCwxLS44OCwyLjEyTDIyLDE4SDMyVjEzLjVBMS41LDEuNSwwLDAsMCwzMC41LDEyWiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMC4yLDE0LjI1YTMsMywwLDAsMS0uODgtMi4xMnMwLS4wOSwwLS4xM0g1LjVBMS41LDEuNSwwLDAsMCw0LDEzLjVWMThIMTRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQt''@;'; put 'put ''cGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDE5LjE4bDYuMzgtNi4zNUExLDEsMCwxLDAsMjMsMTEuNDFsLTQsMy45NVYzYTEsMSwwLDEsMC0yLDB2MTIuNGwtNC0zLjk1YTEsMSwwLDAsMC0xLjQxLDEuNDJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlVW5hcmNoaXZlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOSwzMkg3VjIySDVWMzJhMiwyLDAsMCwwLDIsMkgyOWEyLDIsMCwwLDAsMi0yVjIySDI5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTQsMjRhMSwxLDAsMCwwLDEsMWg2YTEsMSwwLDAsMCwwLTJIMTVBMSwxLDAsMCwwLDE0LDI0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTUsMThINlYxNGg5''@;'; put 'put ''VjEySDUuNUExLjUsMS41LDAsMCwwLDQsMTMuNVYyMEgxNS43OEEzLDMsMCwwLDEsMTUsMThaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMC41LDEySDIxdjJoOXY0SDIxYTMsMywwLDAsMS0uNzgsMkgzMlYx''@;'; put 'put ''My41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEzLDkuNTUsMTcsNS42VjE4YTEsMSwwLDEsMCwyLDBWNS42bDQsMy45NWExLDEsMCwxLDAsMS40MS0xLjQyTDE4LDEu''@;'; put 'put ''NzgsMTEuNjEsOC4xM0ExLDEsMCwwLDAsMTMsOS41NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDIxYTMsMywwLDAsMS0yLjIyLTFINVYzMmEyLDIsMCwwLDAsMiwySDI5YTIsMiwwLDAsMCwyLTJWMjBI''@;'; put 'put ''MjAuMjFBMywzLDAsMCwxLDE4LDIxWm00LDNhMSwxLDAsMCwxLTEsMUgxNWExLDEsMCwwLDEsMC0yaDZBMSwxLDAsMCwxLDIyLDI0WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNSwxMkg1LjVBMS41LDEuNSwwLDAs''@;'; put 'put ''MCw0LDEzLjVWMThIMTVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMwLjUsMTJIMjF2NkgzMlYxMy41QTEuNSwxLjUsMCwwLDAsMzAuNSwxMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTMsOS41NSwxNyw1LjZWMThhMSwxLDAsMSwwLDIsMFY1LjZsNCwzLjk1YTEsMSwwLDEsMCwxLjQxLTEuNDJMMTgsMS43OCwxMS42MSw4LjEzQTEsMSwwLDAsMCwxMyw5LjU1WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgt''@;'; put 'put ''NCIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUNvbm5lY3Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDE3SDI4LjIzQTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMjJhNi4y''@;'; put 'put ''Miw2LjIyLDAsMCwwLDYuMjItNUgzNFpNMTcuMDgsMjJIMTQuMTVhNC4xNyw0LjE3LDAsMCwxLTQuMzEtNCw0LjE3LDQuMTcsMCwwLDEsNC4zMS00aDIuOTRaTTIyLDIySDE5VjE0aDNhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjIsMjJaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNywxMkgxNC4xNWE2LjI1LDYuMjUsMCwwLDAtNi4yMSw1SDJ2Mkg3LjkzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLDVIMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0x''@;'; put 'put ''IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTI4LjIzLDE3QTYuMjUsNi4yNSwwLDAsMCwyMiwxMkgxOVYyNGgzYTYuMjIsNi4yMiwwLDAsMCw2LjIyLTVIMzRWMTdaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlRGlz''@;'; put 'put ''Y29ubmVjdD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTcsNkE2LjIxLDYuMjEsMCwwLDAsNiwxMUgyLjEzdjJINmE2LjIzLDYuMjMsMCwwLDAsNi4yMSw1SDE3VjZaTTE1LjEsMTZIMTIuMTdhNC4yLDQuMiwwLDAsMS00LjMxLTQsNC4xNyw0LjE3LDAsMCwxLDQuMzEtNEgxNS4x''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuOTIsMjNIMzAuMTRhNi4yNSw2LjI1LDAsMCwwLTYuMjEtNUgxOXYySDE0YTEsMSwwLDEsMCwwLDJoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEs''@;'; put 'put ''MWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNzZabS0xMCw1SDIxVjIwaDIuOTRhNC4xNyw0LjE3LDAsMCwxLDQuMzEsNEE0LjE3LDQuMTcsMCwwLDEsMjMuOTQsMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik0xMiw2YTYuMjEsNi4yMSwwLDAsMC02LjIxLDVIMnYySDUuODNBNi4yMyw2LjIzLDAsMCwwLDEyLDE4SDE3VjZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMzLjc5LDIzSDMwLjE0YTYuMjUsNi4y''@;'; put 'put ''NSwwLDAsMC02LjIxLTVIMTl2MkgxNGExLDEsMCwwLDAtMSwxLDEsMSwwLDAsMCwxLDFoNXY0SDE0YTEsMSwwLDAsMC0xLDEsMSwxLDAsMCwwLDEsMWg1djJoNC45NGE2LjIzLDYuMjMsMCwwLDAsNi4yMi01aDMuNjRaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAv''@;'; put 'put ''PlxuICAgICAgICAnKSxlLkNsclNoYXBlTGluaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTcuNiwyNC4zMmwtMi40NiwyLjQ0YTQsNCwwLDAsMS01LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAtNS41NWw0LjY5LTQuNjVhNCw0LDAsMCwxLDUuNjIsMCwzLjg2LDMuODYsMCwwLDEsMSwx''@;'; put 'put ''LjcxQTIsMiwwLDAsMCwyMS4xLDE4bDEuMjktMS4yOGE1Ljg5LDUuODksMCwwLDAtMS4xNS0xLjYyLDYsNiwwLDAsMC04LjQ0LDBMOC4xLDE5Ljc5YTUuOTEsNS45MSwwLDAsMCwwLDguMzksNiw2LDAsMCwwLDguNDQsMGwzLjY1LTMuNjJjLS4xNywwLS4zMywwLS41LDBBOCw4LDAsMCwxLDE3''@;'; put 'put ''LjYsMjQuMzJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOC42MSw3LjgyYTYsNiwwLDAsMC04LjQ0LDBsLTMuNjUsMy42MmMuMTcsMCwuMzMsMCwuNDksMGgwYTgsOCwwLDAsMSwyLjEuMjhsMi40Ni0yLjQ0''@;'; put 'put ''YTQsNCwwLDAsMSw1LjYyLDAsMy45MiwzLjkyLDAsMCwxLDAsNS41NWwtNC42OSw0LjY1YTQsNCwwLDAsMS01LjYyLDAsMy44NiwzLjg2LDAsMCwxLTEtMS43MSwyLDIsMCwwLDAtLjI4LjIzbC0xLjI5LDEuMjhhNS44OSw1Ljg5LDAsMCwwLDEuMTUsMS42Miw2LDYsMCwwLDAsOC40NCwwbDQu''@;'; put 'put ''NjktNC42NWE1LjkyLDUuOTIsMCwwLDAsMC04LjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVVbmxpbms9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUsNSwzLjU5LDYuNDFsOSw5TDguMSwxOS43OWE1''@;'; put 'put ''LjkxLDUuOTEsMCwwLDAsMCw4LjM5LDYsNiwwLDAsMCw4LjQ0LDBMMjEsMjMuNzhsOC42Myw4LjYzTDMxLDMxWk0xNS4xMywyNi43NmE0LDQsMCwwLDEtNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLTUuNTVMMTQsMTYuNzlsNS41OCw1LjU4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuNTMsOS4yMmE0LDQsMCwwLDEsNS42MiwwLDMuOTIsMy45MiwwLDAsMSwwLDUuNTVsLTQuNzksNC43NkwyMy43OCwyMWw0Ljc5LTQuNzZhNS45Miw1LjkyLDAsMCwwLDAtOC4zOSw2LDYsMCwwLDAtOC40NCwwbC00''@;'; put 'put ''Ljc2LDQuNzRMMTYuNzgsMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgJyksZS5DbHJTaGFwZUNsb3VkTmV0d29yaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAuNzEsMTUuMTh2LTFBMTEuMjgsMTEuMjgsMCwwLDAsMTku''@;'; put 'put ''NTYsMi44M2gtLjExYTExLjI4LDExLjI4LDAsMCwwLTExLDguOTMsNy40Nyw3LjQ3LDAsMCwwLDAsMTQuOTRIMjkuMTNhNS44Niw1Ljg2LDAsMCwwLDEuNTgtMTEuNTJaTTI5LjEzLDI0LjdIOC40NmE1LjQ3LDUuNDcsMCwxLDEsMC0xMC45NGgxLjY5bC4xMS0uODdhOS4yNyw5LjI3LDAsMCwx''@;'; put 'put ''LDE4LjQ1LDEuM3YxLjI4YzAsLjA5LDAsLjE4LDAsLjI3bC0uMDcsMS4xNS45NC4xMWEzLjg2LDMuODYsMCwwLDEtLjQzLDcuNzFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS41OCwzMS4xOEgxOC44NXYt''@;'; put 'put ''Mi40aC0ydjIuNEg2LjA4YTEsMSwwLDAsMCwwLDJoMjMuNWExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVDbG91ZFNjYWxlPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik02LjMyLDEx''@;'; put 'put ''LjExSDcuODRMOCwxMC4yNEE3LjE5LDcuMTksMCwwLDEsMTUuMDcsNGguMDdhNy4xNSw3LjE1LDAsMCwxLDQuNzEsMS44MywxMS4xLDExLjEsMCwwLDEsMy4wOS42NEE5LjE4LDkuMTgsMCwwLDAsMTUuMTYsMmgtLjA5QTkuMiw5LjIsMCwwLDAsNi4xMyw5LjExLDYuMTUsNi4xNSwwLDAsMCwy''@;'; put 'put ''LjMzLDE5Ljk1LDguMDksOC4wOSwwLDAsMSwzLDE3LjcxYTQuMTIsNC4xMiwwLDAsMS0uODEtMi40NEE0LjE2LDQuMTYsMCwwLDEsNi4zMiwxMS4xMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLjQsMTYu''@;'; put 'put ''OTFoMS41MkwxMiwxNmE3LjE5LDcuMTksMCwwLDEsNy4xMi02LjI1aC4wN2E3LjE3LDcuMTcsMCwwLDEsNS43LDIuOTIsMTEuMDUsMTEuMDUsMCwwLDEsMi43Mi43Nyw5LjIsOS4yLDAsMCwwLTguNC01LjY5aC0uMDlhOS4yLDkuMiwwLDAsMC04Ljk0LDcuMTIsNi4xNSw2LjE1LDAsMCwwLTMu''@;'; put 'put ''NjQsMTEsOC4xMSw4LjExLDAsMCwxLC43OS0yLDQuMTQsNC4xNCwwLDAsMSwzLTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi40MiwyNC40N3YtLjYyYTkuMTgsOS4xOCwwLDAsMC0xOC4xMy0yLjE2QTYu''@;'; put 'put ''MTYsNi4xNiwwLDAsMCwxNC40OCwzNEgzMWE0Ljg4LDQuODgsMCwwLDAsMS40Ni05LjUzWk0zMSwzMkgxNC40OGE0LjE2LDQuMTYsMCwxLDEsMC04LjMySDE2bC4xMS0uODdhNy4xOSw3LjE5LDAsMCwxLDcuMTItNi4yNWguMDdhNy4yMSw3LjIxLDAsMCwxLDcuMTIsNy4yNXYxYzAsLjA3LDAs''@;'; put 'put ''LjEzLDAsLjJsLS4wNywxLjExLjk0LjExQTIuODgsMi44OCwwLDAsMSwzMSwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQ2xvdWRUcmFmZmljPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNi41NCwy''@;'; put 'put ''MC44MmEuODguODgsMCwwLDAtLjg4LS44OEgyMC43NWwxLjEtMS4xQS44OC44OCwwLDAsMCwyMC42LDE3LjZsLTMuMjEsMy4yMkwyMC42LDI0YS44OC44OCwwLDEsMCwxLjI1LTEuMjRMMjAuNzYsMjEuN2g0LjlBLjg4Ljg4LDAsMCwwLDI2LjU0LDIwLjgyWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuMjcsMjEuN2EuODguODgsMCwxLDAsMC0xLjc2aC0uNThhLjg4Ljg4LDAsMSwwLDAsMS43NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggZD0iTTMyLjIxLDIwaC0uMDZhLjg1Ljg1LDAsMCwwLS44NS44OC45MS45MSwwLDAsMCwuOTEuODguODguODgsMCwxLDAsMC0xLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIuNTksMTFh''@;'; put 'put ''Ljg4Ljg4LDAsMCwwLTEuMjUsMS4yNGwxLjEsMS4xSDI3LjUzYS44OC44OCwwLDEsMCwwLDEuNzZoNC45bC0xLjA5LDEuMDlhLjg4Ljg4LDAsMCwwLDEuMjUsMS4yNGwzLjIxLTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAg''@;'; put 'put ''IDxwYXRoIGQ9Ik0yNC41LDE1LjA3YS44OC44OCwwLDEsMCwwLTEuNzZoLS41OGEuODguODgsMCwxLDAsMCwxLjc2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjEuOSwxNC4yN2EuODUuODUsMCwwLDAtLjg1''@;'; put 'put ''LS44OEgyMWEuODguODgsMCwxLDAsMCwxLjc2QS45MS45MSwwLDAsMCwyMS45LDE0LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzAuMzYsMjMuNjVjMCwuMTMsMCwuMjYsMCwuMzlhMy43NywzLjc3LDAs''@;'; put 'put ''MCwxLTMuNjIsMy44OUg3LjI4YTUuMzIsNS4zMiwwLDAsMS01LjEzLTUuNDhBNS4zMiw1LjMyLDAsMCwxLDcuMjgsMTdIOC45MUw5LDE2LjEyYTguOTIsOC45MiwwLDAsMSw4LjYyLThoLjA4YTguNDksOC40OSwwLDAsMSw2LjU2LDMuMjloMi4zN2ExMC41NSwxMC41NSwwLDAsMC04LjkxLTUu''@;'; put 'put ''MjVoLS4xMUExMC44MiwxMC44MiwwLDAsMCw3LjIyLDE1YTcuMjgsNy4yOCwwLDAsMC03LDcuNDMsNy4yNyw3LjI3LDAsMCwwLDcuMDgsNy40M0gyNi43N0E1LjcyLDUuNzIsMCwwLDAsMzIuMzUsMjRhMy43NywzLjc3LDAsMCwwLDAtLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVEZXBsb3k9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSww''@;'; put 'put ''LDEuNDMsMS40TDMyLDUuNDZWMTMuOWExLDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTExLjU0LDEwLjczbC05LDUuMTdhMSwxLDAsMCwwLS41Ljg3djExYTEs''@;'; put 'put ''MSwwLDAsMCwuNS44N2w5LDUuMTVhMSwxLDAsMCwwLDEsMGw5LTUuMTVhMSwxLDAsMCwwLC41LS44N3YtMTFhMSwxLDAsMCwwLS41LS44N2wtOS01LjE3QTEsMSwwLDAsMCwxMS41NCwxMC43M1pNMTEsMzEuMDhsLTctNFYxOC40NGw3LDRaTTEyLDIxLDQuODEsMTYuODcsMTIsMTIuNzhsNy4y''@;'; put 'put ''MSw0LjEyWm04LDYuMDktNyw0VjIyLjQ0bDctNFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMywySDIyLjFhMSwxLDAsMCwwLDAsMmg4LjUzbC04LjgyLDlhMSwxLDAsMSwwLDEuNDMsMS40TDMyLDUuNDZWMTMuOWEx''@;'; put 'put ''LDEsMCwwLDAsMiwwVjNBMSwxLDAsMCwwLDMzLDJaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiBkPSJNMTIuNDYsMTAuNzNhMSwxLDAsMCwwLTEsMGwtOC42OCw1TDEyLDIxbDkuMTktNS4yNloiLz5cbiAgICAgICAgICAgIDxw''@;'; put 'put ''YXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIGQ9Ik0yLDI3LjczYTEsMSwwLDAsMCwuNS44N0wxMSwzMy40NnYtMTFMMiwxNy4yOFoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIGQ9Ik0xMywzMy40''@;'; put 'put ''Nmw4LjUtNC44NmExLDEsMCwwLDAsLjUtLjg3VjE3LjI5bC05LDUuMTVaIi8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVIZWxpeD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTguODgsMTMuMDdhLjkuOSwwLDAs''@;'; put 'put ''MS0uNDktMS42Nmw4LjkzLTUuNzNhLjkuOSwwLDEsMSwxLDEuNTJMOS4zNywxMi45MkEuOS45LDAsMCwxLDguODgsMTMuMDdaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTEzLjI1LDE1LjExYS45LjksMCwwLDEt''@;'; put 'put ''LjQ5LTEuNjZMMTgsMTAuMDhhLjkuOSwwLDEsMSwxLDEuNTJMMTMuNzQsMTVBLjkuOSwwLDAsMSwxMy4yNSwxNS4xMVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiBkPSJNMTkuNzIsMzAuMjNhLjkuOSwwLDAsMS0uNDkt''@;'; put 'put ''MS42Nmw4LjkzLTUuNzNhLjkuOSwwLDAsMSwxLDEuNTJMMjAuMiwzMC4wOUEuOS45LDAsMCwxLDE5LjcyLDMwLjIzWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIGQ9Ik0xOC45MiwyNS45NGEuOS45LDAsMCwxLS40OS0x''@;'; put 'put ''LjY2bDUuMjUtMy4zN2EuOS45LDAsMSwxLDEsMS41MUwxOS40LDI1LjhBLjg5Ljg5LDAsMCwxLDE4LjkyLDI1Ljk0WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIGQ9Ik0yMS41Niw1LjY5YTMuNTksMy41OSwwLDAsMSwu''@;'; put 'put ''MTUsMy41M0wxOC44MywxNWgyLjI1bDIuNDMtNC44N2E1LjYxLDUuNjEsMCwwLDAtNS04LjE0SDEzLjI2bC0xLDJoNi4yMkEzLjYxLDMuNjEsMCwwLDEsMjEuNTYsNS42OVoiLz5cbiAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiBk''@;'; put 'put ''PSJNMzIuOTEsMjAuNzhBNS41Myw1LjUzLDAsMCwwLDI3LjY2LDE3SDkuMzFhMy41NCwzLjU0LDAsMCwxLTMuNTYtMy42NywzLjYxLDMuNjEsMCwwLDEsLjQyLTEuNTRsNC4yNi04LjQ5YTEsMSwwLDEsMC0xLjc5LS45TDQuNCwxMC44NEE1LjY3LDUuNjcsMCwwLDAsNCwxNS4yMiw1LjUzLDUu''@;'; put 'put ''NTMsMCwwLDAsOS4yOCwxOWg3LjZsLTMuNDQsNi44N2E1LjY0LDUuNjQsMCwwLDAsMS41LDYuOTJBNS4zOCw1LjM4LDAsMCwwLDE4LjQxLDM0aDUuMjVsMS0ySDE4LjQzYTMuNTgsMy41OCwwLDAsMS0zLjIyLTUuMjFMMTkuMTEsMTloOC41NGEzLjQyLDMuNDIsMCwwLDEsMi4xNS43MSwzLjU3''@;'; put 'put ''LDMuNTcsMCwwLDEsMSw0LjQzbC00LjEyLDguMjJhMSwxLDAsMSwwLDEuNzkuOWw0LjA2LTguMUE1LjY3LDUuNjcsMCwwLDAsMzIuOTEsMjAuNzhaIi8+XG4gICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMzIuMTYsMTkuNjNBNS41''@;'; put 'put ''NSw1LjU1LDAsMCwwLDI3LjQyLDE3SDEwLjA2YTQuMzYsNC4zNiwwLDAsMS0zLjY3LTIsNC4wNyw0LjA3LDAsMCwxLS4xOS00LjEzbDMuNjItNywxLjQyLDEuNjMtMi43NCw1LjMsOC44NC01LjY2YS45MS45MSwwLDAsMSwxLDEuNTNMNy44NCwxMy4zOGEyLjEzLDIuMTMsMCwwLDAsLjI0LjUy''@;'; put 'put ''LDIuMjgsMi4yOCwwLDAsMCwxLjY1LDFMMTguMTEsOS41YS45MS45MSwwLDAsMSwxLDEuNTJMMTMsMTQuOTRIMjAuOGwyLjQxLTQuODJhNS42LDUuNiwwLDAsMC01LTguMTJIOWExLDEsMCwwLDAtLjkuNTZMMy44OCwxMC44OWE1LjYsNS42LDAsMCwwLDUsOC4xMmg3LjY1bC0zLjQzLDYuODdh''@;'; put 'put ''NS42LDUuNiwwLDAsMCw1LDguMTJoOS4yOGExLDEsMCwwLDAsLjkzLS42NWw0LjE0LTguMjRBNS41OCw1LjU4LDAsMCwwLDMyLjE2LDE5LjYzWk0xNy43NSwyNS41N0EuOTEuOTEsMCwwLDEsMTgsMjQuMzFsNi0zLjg4QS45MS45MSwwLDEsMSwyNSwyMmwtNiwzLjg4YS45MS45MSwwLDAsMS0x''@;'; put 'put ''LjI2LS4yN1pNMjksMjQuMzRsLTksNS43OGEuOTEuOTEsMCwxLDEtMS0xLjUzbDktNS43OGEuOTEuOTEsMCwxLDEsMSwxLjUzWiIvPlxuICAgICAgICAnKSxlLkNsclNoYXBlRmxhc2s9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLjQzLDI3LjI4LDIzLDE0Ljg0VjRoMWExLDEsMCww''@;'; put 'put ''LDAsMC0ySDEyYTEsMSwwLDAsMCwwLDJoMVYxNC44NEw0LjUxLDI3LjM2QTQuMjksNC4yOSwwLDAsMCw1LDMyLjgsNC4zOCw0LjM4LDAsMCwwLDguMTUsMzRIMjhhNC4yNCw0LjI0LDAsMCwwLDMuNDItNi43MlpNMjkuODUsMzFhMi42MiwyLjYyLDAsMCwxLTIsMUg4YTIuMiwyLjIsMCwwLDEt''@;'; put 'put ''Mi4wNi0xLjQxLDIuNjgsMi42OCwwLDAsMSwuMjktMi4xN2wzLTQuNDQsMTQsMC0xLjMxLTJIMTAuNTdMMTUsMTUuNDZWNGg2VjE1LjQ2bDguODQsMTMuMDVBMi4yMywyLjIzLDAsMCwxLDI5Ljg1LDMxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG4g''@;'; put 'put ''ICAgICAgICAgICA8cGF0aCBkPSJNMzEuNDksMjcuNCwyMywxNC45NFY0aDFhMSwxLDAsMCwwLDAtMkgxMi4wOGExLDEsMCwwLDAsMCwySDEzVjE0Ljk0TDQuNTgsMjcuMzFhNC4zMSw0LjMxLDAsMCwwLS43OCwzQTQuMjMsNC4yMywwLDAsMCw4LDM0SDI3Ljg2QTQuMzYsNC4zNiwwLDAsMCwz''@;'; put 'put ''MSwzMi44LDQuMjMsNC4yMywwLDAsMCwzMS40OSwyNy40Wk0xNSwxNS40OVY0aDZWMTUuNDlMMjYuMTUsMjNIOS44NVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yPSgwLGEuY2xySWNvblNWRyko''@;'; put 'put ''JzxwYXRoIGQ9Ik0xNC42OCwxNC44MWE2Ljc2LDYuNzYsMCwxLDEsNi43Ni02Ljc1QTYuNzcsNi43NywwLDAsMSwxNC42OCwxNC44MVptMC0xMS41MWE0Ljc2LDQuNzYsMCwxLDAsNC43Niw0Ljc2QTQuNzYsNC43NiwwLDAsMCwxNC42OCwzLjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNi40MiwzMS42OEEyLjE0LDIuMTQsMCwwLDEsMTUuOCwzMEg0VjI0LjIyYTE0LjgxLDE0LjgxLDAsMCwxLDExLjA5LTQuNjhsLjcyLDBhMi4yLDIuMiwwLDAsMSwuNjItMS44NWwuMTItLjExYy0uNDcsMC0xLS4w''@;'; put 'put ''Ni0xLjQ2LS4wNkExNi40NywxNi40NywwLDAsMCwyLjIsMjMuMjZhMSwxLDAsMCwwLS4yLjZWMzBhMiwyLDAsMCwwLDIsMkgxNi43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYuODcsMTYuMjlhLjM3LjM3''@;'; put 'put ''LDAsMCwxLC4xNSwwLC40Mi40MiwwLDAsMC0uMTUsMFoiICBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMy42OCwyMy4zMmwtMi0uNjFhNy4yMSw3LjIxLDAsMCwwLS41OC0xLjQxbDEtMS44NkEuMzguMzgsMCww''@;'; put 'put ''LDAsMzIsMTlsLTEuNDUtMS40NWEuMzYuMzYsMCwwLDAtLjQ0LS4wN2wtMS44NCwxYTcuMTUsNy4xNSwwLDAsMC0xLjQzLS42MWwtLjYxLTJhLjM2LjM2LDAsMCwwLS4zNi0uMjRIMjMuODJhLjM2LjM2LDAsMCwwLS4zNS4yNmwtLjYxLDJhNyw3LDAsMCwwLTEuNDQuNmwtMS44Mi0xYS4zNS4z''@;'; put 'put ''NSwwLDAsMC0uNDMuMDdMMTcuNjksMTlhLjM4LjM4LDAsMCwwLS4wNi40NGwxLDEuODJBNi43Nyw2Ljc3LDAsMCwwLDE4LDIyLjY5bC0yLC42YS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNUEuMzUuMzUsMCwwLDAsMTYsMjZsMiwuNjFhNyw3LDAsMCwwLC42LDEuNDFsLTEsMS45MWEuMzYuMzYs''@;'; put 'put ''MCwwLDAsLjA2LjQzbDEuNDUsMS40NWEuMzguMzgsMCwwLDAsLjQ0LjA3bDEuODctMWE3LjA5LDcuMDksMCwwLDAsMS40LjU3bC42LDJhLjM4LjM4LDAsMCwwLC4zNS4yNmgyLjA1YS4zNy4zNywwLDAsMCwuMzUtLjI2bC42MS0yLjA1YTYuOTIsNi45MiwwLDAsMCwxLjM4LS41N2wxLjg5LDFh''@;'; put 'put ''LjM2LjM2LDAsMCwwLC40My0uMDdMMzIsMzAuNEEuMzUuMzUsMCwwLDAsMzIsMzBsLTEtMS44OGE3LDcsMCwwLDAsLjU4LTEuMzlsMi0uNjFhLjM2LjM2LDAsMCwwLC4yNi0uMzVWMjMuNjdBLjM2LjM2LDAsMCwwLDMzLjY4LDIzLjMyWk0yNC44NSwyOGEzLjM0LDMuMzQsMCwxLDEsMy4zMy0z''@;'; put 'put ''LjMzQTMuMzQsMy4zNCwwLDAsMSwyNC44NSwyOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iMTQuNjciIGN5PSI4LjMiIHI9IjYiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; put 'put ''XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTYuNDQsMzEuODJhMi4xNSwyLjE1LDAsMCwxLS4zOC0yLjU1bC41My0xLTEuMDktLjMzQTIuMTQsMi4xNCwwLDAsMSwxNCwyNS44NFYyMy43OWEyLjE2LDIuMTYsMCwwLDEsMS41My0yLjA3bDEuMDktLjMzLS41Mi0xYTIuMTcsMi4xNywwLDAsMSwu''@;'; put 'put ''MzUtMi41MiwxOC45MiwxOC45MiwwLDAsMC0yLjMyLS4xNkExNS41OCwxNS41OCwwLDAsMCwyLDIzLjA3djcuNzVhMSwxLDAsMCwwLDEsMUgxNi40NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzMuNywyMy40Nmwt''@;'; put 'put ''Mi0uNmE2LjczLDYuNzMsMCwwLDAtLjU4LTEuNDJsMS0xLjg2YS4zNS4zNSwwLDAsMC0uMDctLjQzbC0xLjQ1LTEuNDZhLjM4LjM4LDAsMCwwLS40My0uMDdsLTEuODUsMWE3Ljc0LDcuNzQsMCwwLDAtMS40My0uNmwtLjYxLTJhLjM4LjM4LDAsMCwwLS4zNi0uMjVIMjMuODRhLjM4LjM4LDAs''@;'; put 'put ''MCwwLS4zNS4yNmwtLjYsMmE2Ljg1LDYuODUsMCwwLDAtMS40NS42MWwtMS44MS0xYS4zOC4zOCwwLDAsMC0uNDQuMDZsLTEuNDcsMS40NGEuMzcuMzcsMCwwLDAtLjA3LjQ0bDEsMS44MkE3LjI0LDcuMjQsMCwwLDAsMTgsMjIuODNsLTIsLjYxYS4zNi4zNiwwLDAsMC0uMjYuMzV2Mi4wNWEu''@;'; put 'put ''MzYuMzYsMCwwLDAsLjI2LjM1bDIsLjYxYTcuMjksNy4yOSwwLDAsMCwuNiwxLjQxbC0xLDEuOWEuMzcuMzcsMCwwLDAsLjA3LjQ0TDE5LjE2LDMyYS4zOC4zOCwwLDAsMCwuNDQuMDZsMS44Ny0xYTcuMDksNy4wOSwwLDAsMCwxLjQuNTdsLjYsMi4wNWEuMzguMzgsMCwwLDAsLjM2LjI2aDIu''@;'; put 'put ''MDVhLjM4LjM4LDAsMCwwLC4zNS0uMjZsLjYtMi4wNWE2LjY4LDYuNjgsMCwwLDAsMS4zOC0uNTdsMS44OSwxYS4zOC4zOCwwLDAsMCwuNDQtLjA2TDMyLDMwLjU1YS4zOC4zOCwwLDAsMCwuMDYtLjQ0bC0xLTEuODhhNi45Miw2LjkyLDAsMCwwLC41Ny0xLjM4bDItLjYxYS4zOS4zOSwwLDAs''@;'; put 'put ''MCwuMjctLjM1VjIzLjgyQS40LjQsMCwwLDAsMzMuNywyMy40NlptLTguODMsNC43MmEzLjM0LDMuMzQsMCwxLDEsMy4zMy0zLjM0QTMuMzQsMy4zNCwwLDAsMSwyNC44NywyOC4xOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiIC8+XG4gICAgICAgICcpLGUuQ2xy''@;'; put 'put ''U2hhcGVIYXJkRHJpdmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDhhMiwyLDAsMCwwLTItMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yWk0zMiwyOEg0VjhIMzJWMjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIxMC4yNSIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIyOS44MSIgY3k9IjEwLjI1IiByPSIxLjI1IiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjYuMjEiIGN5PSIyNS40MiIgcj0iMS4yNSIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8Y2lyY2xlIGN4PSIy''@;'; put 'put ''OS44MSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMS44OCwxOC4wOGEzLjU5LDMuNTksMCwxLDAsMy41OS0zLjU5LDMuODQsMy44NCwwLDAsMC0uOTEuMTNMMTUsMTYuMTZh''@;'; put 'put ''Mi4wOCwyLjA4LDAsMCwxLC41LS4wNywyLDIsMCwxLDEtMiwyLDEuNjQsMS42NCwwLDAsMSwuMDgtLjVMMTIsMTcuMTZBMy41MywzLjUzLDAsMCwwLDExLjg4LDE4LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBk''@;'; put 'put ''PSJNMTUuNDcsMjUuNzNhNy42Niw3LjY2LDAsMCwxLTcuNjUtNy42NSw3LjU1LDcuNTUsMCwwLDEsLjI3LTJMNi41NCwxNS43YTkuMjQsOS4yNCwwLDAsMCwxNy44LDQuOTVIMjIuNjZBNy42NCw3LjY0LDAsMCwxLDE1LjQ3LDI1LjczWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTciIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjguMjIsMTcuODNhLjguOCwwLDAsMC0uOC0uOEgyNC42NmE5LjI2LDkuMjYsMCwwLDAtOS4xOS04LjIsOS4zNiw5LjM2LDAsMCwwLTIuMzguMzJsLjQyLDEuNTRhNy44Niw3Ljg2LDAsMCwxLDItLjI2QTcuNjYsNy42Niww''@;'; put 'put ''LDAsMSwyMywxN0gyMC45MmEuOC44LDAsMCwwLDAsMS42aDYuNUEuOC44LDAsMCwwLDI4LjIyLDE3LjgzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTgiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMzIsNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCww''@;'; put 'put ''LDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTEyLDE3LjE2bDEuNTQuNDJhMS42NCwxLjY0LDAsMCwwLS4wOC41LDIsMiwwLDEsMCwyLTIsMi4wOCwyLjA4LDAsMCwwLS41LjA3bC0uNDEtMS41NGEzLjg0LDMuODQsMCwwLDEsLjkxLS4xMywzLjU5LDMuNTksMCwxLDEt''@;'; put 'put ''My41OSwzLjU5QTMuNTMsMy41MywwLDAsMSwxMiwxNy4xNlpNNS4zMSw4QTEuMjUsMS4yNSwwLDEsMSw0LjA2LDkuMjUsMS4yNSwxLjI1LDAsMCwxLDUuMzEsOFptMCwyMC4wNmExLjI1LDEuMjUsMCwxLDEsMS4yNS0xLjI1QTEuMjUsMS4yNSwwLDAsMSw1LjMxLDI4LjA2Wm0xMC4xNi0uNzNB''@;'; put 'put ''OS4yMiw5LjIyLDAsMCwxLDYuNTQsMTUuN2wxLjU1LjQxYTcuNTUsNy41NSwwLDAsMC0uMjcsMiw3LjY0LDcuNjQsMCwwLDAsMTQuODQsMi41N2gxLjY4QTkuMjUsOS4yNSwwLDAsMSwxNS40NywyNy4zM1ptMTItOC43aC02LjVhLjguOCwwLDAsMSwwLTEuNkgyM2E3LjY2LDcuNjYsMCwwLDAt''@;'; put 'put ''Ny41Ny02LjYsNy44Niw3Ljg2LDAsMCwwLTIsLjI2bC0uNDItMS41NGE5LjM2LDkuMzYsMCwwLDEsMi4zOC0uMzJBOS4yNiw5LjI2LDAsMCwxLDI0LjY2LDE3aDIuNzZhLjguOCwwLDAsMSwwLDEuNlptMy4zOSw5LjQzYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwx''@;'; put 'put ''LDMwLjgxLDI4LjA2Wm0wLTE3LjU2YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjgxLDEwLjVaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlSGFyZERyaXZlRGlza3M9KDAsYS5jbHJJ''@;'; put 'put ''Y29uU1ZHKSgnPHBhdGggZD0iTTI2LDUuNzRBMS43NCwxLjc0LDAsMCwwLDI0LjI2LDRIMy43NEExLjc0LDEuNzQsMCwwLDAsMiw1Ljc0VjIwLjI2QTEuNzQsMS43NCwwLDAsMCwzLjc0LDIySDRWNkgyNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxu''@;'; put 'put ''ICAgICAgICAgICAgPHBhdGggZD0iTTMwLDkuNzRBMS43NCwxLjc0LDAsMCwwLDI4LjI2LDhINy43NEExLjc0LDEuNzQsMCwwLDAsNiw5Ljc0VjI0LjI2QTEuNzQsMS43NCwwLDAsMCw3Ljc0LDI2SDhWMTBIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIg''@;'; put 'put ''Lz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMi4yNiwxMkgxMS43NEExLjc0LDEuNzQsMCwwLDAsMTAsMTMuNzRWMjguMjZBMS43NCwxLjc0LDAsMCwwLDExLjc0LDMwSDMyLjI2QTEuNzQsMS43NCwwLDAsMCwzNCwyOC4yNlYxMy43NEExLjc0LDEuNzQsMCwwLDAsMzIuMjYsMTJaTTMyLDI4''@;'; put 'put ''SDEyVjE0SDMyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMjMuNjhhMi42NCwyLjY0LDAsMSwwLTIuNy0yLjYzQTIuNjcsMi42NywwLDAsMCwxOS45NCwyMy42OFptMC0zLjg3YTEuMjQsMS4yNCww''@;'; put 'put ''LDEsMS0xLjI5LDEuMjRBMS4yNywxLjI3LDAsMCwxLDE5Ljk0LDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMTkuOTQsMTYuMjJhNC45Myw0LjkzLDAsMCwxLDQuOTUsNC4zNUgyMy43MVYyMmg0LjQx''@;'; put 'put ''YS43LjcsMCwwLDAsMC0xLjRIMjYuMzFhNi4zMyw2LjMzLDAsMCwwLTYuMzctNS43NSw2LjU4LDYuNTgsMCwwLDAtMS40OC4xN2wuMzUsMS4zN0E0LjczLDQuNzMsMCwwLDEsMTkuOTQsMTYuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAg''@;'; put 'put ''ICAgICAgIDxwYXRoIGQ9Ik0xOS45NCwyNy4yN2E2LjQyLDYuNDIsMCwwLDAsNS42Ny0zLjM1SDIzLjkzYTUsNSwwLDAsMS00LDEuOTUsNC45MSw0LjkxLDAsMCwxLTUtNC44Miw1LjE2LDUuMTYsMCwwLDEsLjA4LS43OUwxMy42MywyMGE3LDcsMCwwLDAtLjA5LDFBNi4zMiw2LjMyLDAsMCww''@;'; put 'put ''LDE5Ljk0LDI3LjI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjYsNS43NEExLjc0LDEuNzQsMCwwLDAsMjQuMjYsNEgzLjc0QTEuNzQsMS43NCwwLDAsMCwyLDUuNzRWMjAuMjZBMS43NCwxLjc0LDAsMCww''@;'; put 'put ''LDMuNzQsMjJINFY2SDI2WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0zMCw5Ljc0QTEuNzQsMS43NCwwLDAsMCwyOC4yNiw4SDcuNzRBMS43NCwxLjc0LDAsMCwwLDYsOS43NFYyNC4yNkExLjc0LDEuNzQsMCwwLDAs''@;'; put 'put ''Ny43NCwyNkg4VjEwSDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOS42MiwyMi42QTEuNTUsMS41NSwwLDEsMCwxOCwyMS4wNSwxLjYsMS42LDAsMCwwLDE5LjYyLDIyLjZaIiBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0zIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLjI2LDEySDExLjc0QTEuNzQsMS43NCwwLDAsMCwxMCwxMy43NFYyOC4yNkExLjc0LDEuNzQsMCwwLDAsMTEuNzQsMzBIMzIuMjZBMS43NCwxLjc0LDAsMCwwLDM0LDI4LjI2VjEzLjc0QTEuNzQsMS43NCww''@;'; put 'put ''LDAsMCwzMi4yNiwxMlpNMTkuNjIsMTcuNzRhMy4zMSwzLjMxLDAsMSwxLTMuMzgsMy4zMUEzLjM1LDMuMzUsMCwwLDEsMTkuNjIsMTcuNzRabTAsMTEuMTNhNy45NCw3Ljk0LDAsMCwxLTgtNy44Miw3LjgzLDcuODMsMCwwLDEsLjExLTEuMjlsMS43NS4zYTUuMzYsNS4zNiwwLDAsMC0uMTEs''@;'; put 'put ''MSw2LjE4LDYuMTgsMCwwLDAsNi4yOCw2LjA2LDYuMzUsNi4zNSwwLDAsMCw1LTIuNDZoMi4xQTguMDYsOC4wNiwwLDAsMSwxOS42MiwyOC44N1pNMjkuODksMjIuMkgyNC4zNlYyMC40NGgxLjQ4QTYuMTksNi4xOSwwLDAsMCwxOS42MiwxNWE2LjQ4LDYuNDgsMCwwLDAtMS40MS4xNmwtLjQ1''@;'; put 'put ''LTEuN2E4LjE2LDguMTYsMCwwLDEsMS44Ni0uMjIsOCw4LDAsMCwxLDgsNy4yMWgyLjI2YS44OC44OCwwLDAsMSwwLDEuNzZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlTlZNZT0oMCxhLmNsckljb25TVkcpKCc8cGF0''@;'; put 'put ''aCBkPSJNMjcsMjJWMTRhMiwyLDAsMCwwLTItMkgxMWEyLDIsMCwwLDAtMiwydjhhMiwyLDAsMCwwLDIsMkgyNUEyLDIsMCwwLDAsMjcsMjJaTTExLDE0SDI1djhIMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9''@;'; put 'put ''IjE5IiB5PSI2IiB3aWR0aD0iNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjI1LjAxIiB5PSI2IiB3aWR0aD0iMS45NyIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtMyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LjgsOEgxNi44N1Y2aC0xMUw3Ljc4LDQuMDhhMSwxLDAsMCwwLDAtMS40MiwxLDEsMCwwLDAtMS40MSwwTDIsNyw2LjM3LDExLjRhMSwxLDAsMCwwLDEuNDEsMCwxLDEsMCwwLDAsMC0xLjQxWiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjkuNjEsMjQuNjhhMSwxLDAsMCwwLTEuNDEsMCwxLDEsMCwwLDAsMCwxLjQyTDMwLjEsMjhIMTl2MkgzMC4ybC0yLDJhMSwxLDAsMCwwLDAsMS40MSwxLDEsMCwwLDAsLjcuMjksMSwxLDAs''@;'; put 'put ''MCwwLC43MS0uMjlMMzQsMjkuMDVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz5cbiAgICAgICAgICAgIDxyZWN0IHg9IjEzIiB5PSIyOCIgd2lkdGg9IjQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYi''@;'; put 'put ''IC8+XG4gICAgICAgICAgICA8cmVjdCB4PSI5IiB5PSIyOCIgd2lkdGg9IjEuOTciIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+XG4gICAgICAgICcpLGUuQ2xyU2hhcGVTU0Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMyLDZI''@;'; put 'put ''NEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wm0wLDIySDRWOEgzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjEw''@;'; put 'put ''LjI1IiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMTAuMjUiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuICAgICAg''@;'; put 'put ''ICAgICAgPGNpcmNsZSBjeD0iNi4yMSIgY3k9IjI1LjQyIiByPSIxLjI1IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz5cbiAgICAgICAgICAgIDxjaXJjbGUgY3g9IjI5LjgxIiBjeT0iMjUuNDIiIHI9IjEuMjUiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNs''@;'; put 'put ''ci1pLW91dGxpbmUtcGF0aC01IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTEwLDE4LjYyYzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJzLS41MywxLjA5LTEuNTUsMS4wOWE0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEt''@;'; put 'put ''Mi41MnMtMS4xNS0yLjA1LTIuODctMi40NGMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDEwLDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMUE0LjU4LDQuNTgsMCwwLDAsMTAsMTMuNjljLTEuNzQsMC0zLDEuMDUtMywyLjQ5UzguMjYsMTguMjIs''@;'; put 'put ''MTAsMTguNjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNy44MywyMC45M2E0LDQsMCwwLDEtMi43MS0xLjExbC0uODYsMS4wNmE1LDUsMCwwLDAsMy41MiwxLjM0YzIsMCwzLjEtMSwzLjEtMi41MlMxOS43''@;'; put 'put ''MywxNy42NSwxOCwxNy4yNmMtMS4zMS0uMy0xLjkyLS41NC0xLjkyLTEuMjFBMS4yNSwxLjI1LDAsMCwxLDE3LjQ4LDE1YTMuNjgsMy42OCwwLDAsMSwyLjM3LDFsLjgxLTEuMWE0LjU2LDQuNTYsMCwwLDAtMy4xMi0xLjE1Yy0xLjczLDAtMywxLjA1LTMsMi40OXMxLjE5LDIsMi44OSwyLjQ0''@;'; put 'put ''YzEuMzIuMzEsMS45MS41NCwxLjkxLDEuMjJTMTguODUsMjAuOTMsMTcuODMsMjAuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNyIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yOS45LDE4YzAtMi40MS0xLjkyLTQuMTItNC42NC00LjEyaC0yLjl2OC4y''@;'; put 'put ''NGgyLjlDMjgsMjIuMDgsMjkuOSwyMC4zNywyOS45LDE4Wm0tNi0yLjc2aDEuNTZhMi43NywyLjc3LDAsMSwxLDAsNS41M0gyMy44NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAs''@;'; put 'put ''Miw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4QTIsMiwwLDAsMCwzMiw2Wk01LjIxLDhBMS4yNSwxLjI1LDAsMSwxLDQsOS4yNSwxLjI1LDEuMjUsMCwwLDEsNS4yMSw4Wm0wLDIwYTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDUuMjEsMjha''@;'; put 'put ''bTUuMDYtNS43OGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIyLTIuNDksMy0yLjQ5YTQuNTgsNC41OCwwLDAsMSwzLjEy''@;'; put 'put ''LDEuMTVsLS44MSwxLjFBMy42OCwzLjY4LDAsMCwwLDEwLDE1YTEuMjUsMS4yNSwwLDAsMC0xLjM5LDEuMDhjMCwuNjcuNjEuOTEsMS45MiwxLjIxLDEuNzIuMzksMi44Ny45NCwyLjg3LDIuNDRTMTIuMjQsMjIuMjIsMTAuMjcsMjIuMjJabTcuNTEsMGE1LDUsMCwwLDEtMy41Mi0xLjM0bC44''@;'; put 'put ''Ni0xLjA2YTQsNCwwLDAsMCwyLjcxLDEuMTFjMSwwLDEuNTUtLjUsMS41NS0xLjA5cy0uNTktLjkxLTEuOTEtMS4yMmMtMS43LS40LTIuODktLjg5LTIuODktMi40NHMxLjIzLTIuNDksMy0yLjQ5YTQuNTYsNC41NiwwLDAsMSwzLjEyLDEuMTVsLS44MSwxLjFhMy42OCwzLjY4LDAsMCwwLTIu''@;'; put 'put ''MzctMSwxLjI1LDEuMjUsMCwwLDAtMS4zOSwxLjA4YzAsLjY3LjYxLjkxLDEuOTIsMS4yMSwxLjcyLjM5LDIuODcuOTQsMi44NywyLjQ0UzE5Ljc1LDIyLjIyLDE3Ljc4LDIyLjIyWm00LjU4LS4xNFYxMy44NGgyLjljMi43MiwwLDQuNjQsMS43MSw0LjY0LDQuMTJTMjgsMjIuMDgsMjUuMjYs''@;'; put 'put ''MjIuMDhaTTMwLjY5LDI4YTEuMjUsMS4yNSwwLDEsMSwxLjI1LTEuMjVBMS4yNSwxLjI1LDAsMCwxLDMwLjY5LDI4Wm0wLTE3LjVhMS4yNSwxLjI1LDAsMSwxLDEuMjUtMS4yNUExLjI1LDEuMjUsMCwwLDEsMzAuNjksMTAuNVoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRo''@;'; put 'put ''LTEiIC8+XG4gICAgICAgICAgICA8cGF0aCBkPSJNMjMuODYsMTUuMmgxLjU2YTIuNzcsMi43NywwLDEsMSwwLDUuNTNIMjMuODZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPlxuICAgICAgICAnKSxlLkNsclNoYXBlQmx1ZXRvb3RoPSgwLGEuY2xySWNvblNW''@;'; put 'put ''RykoJzxwYXRoIGQ9Ik0yNi42NCwyNS4yNywxOSwxNy41MywxOSwzLDI1LjIxLDkuNGwtNS42NSw1Ljc5TDIxLDE2LjYybDUuNjgtNS44MmEyLDIsMCwwLDAsMC0yLjc4TDIwLjQ4LDEuN0EyLjA4LDIuMDgsMCwwLDAsMTguODUsMSwyLDIsMCwwLDAsMTcsM1YxNS4zOEwxMC4wNSw4LjI3QTEs''@;'; put 'put ''MSwwLDAsMCw4LjYyLDkuNjZMMTYuNzksMTgsOS4wNiwyNmExLDEsMCwwLDAsMCwxLjQxLDEsMSwwLDAsMCwuNy4yOSwxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzM2EyLjA3LDIuMDcsMCwwLDAsLjcxLDEuNjJBMiwyLDAsMCwwLDE5LDM1YTEuOTQsMS45NCwwLDAsMCwxLjQyLS42bDYu''@;'; put 'put ''MjMtNi4zOEEyLDIsMCwwLDAsMjYuNjQsMjUuMjdaTTE5LDMzLjA1VjIwLjI5bDYuMjEsNi4zNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPlxuICA8cGF0aCBkPSJNMjYuNTIsMjQuNTJsLTUuNjUtNS44My0xLjQ2LTEuNXYtMTJMMjMuNzksOS43bC0z''@;'; put 'put ''LjYsMy43MSwyLjI0LDIuMjksNC4wOS00LjIyYTIuNTQsMi41NCwwLDAsMCwwLTMuNTZMMjAuNTcsMS43OEEyLjU0LDIuNTQsMCwwLDAsMTYuMiwzLjU1VjEzLjg2bC01LjUzLTUuN2ExLjYsMS42LDAsMSwwLTIuMywyLjIzTDE1Ljc1LDE4bC03LDcuMTlhMS42LDEuNiwwLDAsMCwwLDIuMjYs''@;'; put 'put ''MS42MywxLjYzLDAsMCwwLDEuMTIuNDUsMS41OCwxLjU4LDAsMCwwLDEuMTUtLjQ5bDUuMTEtNS4yN1YzMi40NWEyLjUzLDIuNTMsMCwwLDAsMS41OSwyLjM2LDIuNDQsMi40NCwwLDAsMCwuOTUuMTksMi41NiwyLjU2LDAsMCwwLDEuODMtLjc3bDUuOTUtNi4xNUEyLjU0LDIuNTQsMCwwLDAs''@;'; put 'put ''MjYuNTIsMjQuNTJaTTE5LjQsMzAuODNWMjEuNzdsNC4zOSw0LjUzWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQmx1ZXRvb3RoT2ZmPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOSwzLDI1LjIyLDkuNGwtNS42Niw1LjhMMjEs''@;'; put 'put ''MTYuNjNsNS42OC01LjgzYTIsMiwwLDAsMCwwLTIuNzhMMjAuNDgsMS43QTIsMiwwLDAsMCwxOC44NSwxLDIsMiwwLDAsMCwxNywzdjExLjRsMiwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQuNzcsNSwzLjM2LDYuNDIsMTUuODks''@;'; put 'put ''MTksOS4wNiwyNmExLDEsMCwwLDAsLjcxLDEuNywxLDEsMCwwLDAsLjcyLS4zMUwxNywyMC42OFYzMi45NGEyLjA4LDIuMDgsMCwwLDAsLjcxLDEuNjNBMiwyLDAsMCwwLDE5LDM1YTIsMiwwLDAsMCwxLjQyLS42bDUuNDEtNS41NCwzLjU0LDMuNTNMMzAuNzcsMzFaTTE5LDMzLjA1di0xMWw1''@;'; put 'put ''LjQxLDUuNDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTkuMzEsNS4xNywyMy43LDkuN2wtMy41OSwzLjcxLDIuMjQsMi4yOSw0LjA5LTQuMjJhMi41NiwyLjU2LDAsMCwwLDAtMy41NmwtNi02LjE0YTIuNTEsMi41MSwwLDAsMC0y''@;'; put 'put ''Ljc3LS41OSwyLjU0LDIuNTQsMCwwLDAtMS42LDIuMzZ2MTBsMy4yMSwzLjIxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNNC41LDUsMy4wOSw2LjQyLDE1LjE3LDE4LjUxLDguNywyNS4xOUExLjYsMS42LDAsMCwwLDkuODUsMjcuOSwxLjU3''@;'; put 'put ''LDEuNTcsMCwwLDAsMTEsMjcuNDFsNS4xMS01LjI3VjMyLjQ1YTIuNTQsMi41NCwwLDAsMCwxLjYsMi4zNiwyLjQ0LDIuNDQsMCwwLDAsLjk1LjE5LDIuNTUsMi41NSwwLDAsMCwxLjgyLS43N2w1LjEyLTUuMjksMy40OSwzLjQ4TDMwLjUsMzFaTTE5LjgxLDMwLjgzVjIyLjY1bDQsNFoiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVByb2Nlc3NPblZNPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMy40OSwyNi4yOGExLDEsMCwwLDAtMS4yLS43bC0yLjQ5LjY3YTE0LjIzLDE0LjIzLDAsMCwwLDIuNC02Ljc1QTE0LjQ4LDE0''@;'; put 'put ''LjQ4LDAsMCwwLDI3LjM3LDcuMzUsMSwxLDAsMCwwLDI2LDcuNDRhMSwxLDAsMCwwLC4wOSwxLjQxLDEyLjQ1LDEyLjQ1LDAsMCwxLDQuMTYsMTAuNDYsMTIuMTksMTIuMTksMCwwLDEtMiw1Ljc0TDI4LDIyLjU0YTEsMSwwLDEsMC0xLjk1LjE2bC41LDYuNDQsNi4yNS0xLjY2QTEsMSwwLDAs''@;'; put 'put ''MCwzMy40OSwyNi4yOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjMxLDE3LjA4YTEuMDYsMS4wNiwwLDAsMCwuNDQuMTYsMSwxLDAsMCwwLDEuMTItLjg1QTEyLjIxLDEyLjIxLDAsMCwxLDE4LjY5LDUuODRMMTYuNDUsNy4zN2Ex''@;'; put 'put ''LDEsMCwwLDAsLjQ3LDEuNzlBMSwxLDAsMCwwLDE3LjU2LDlsNS4zMy0zLjY2TDE4LjMzLjc2YTEsMSwwLDEsMC0xLjM5LDEuMzhsMS43LDEuN0ExNC4yLDE0LjIsMCwwLDAsMy44OSwxNi4xMiwxLDEsMCwwLDAsNC4zMSwxNy4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yMS43MywyOS45M2ExMiwxMiwwLDAsMS00Ljg0LjUxLDEyLjMsMTIuMywwLDAsMS05LjU3LTYuM2wyLjQ5LjkzYTEsMSwwLDAsMCwuNjktMS44NGwtNC41OS0xLjdoMEw0LjQ0LDIxLDMuMzMsMjcuMzVhMSwxLDAsMCwwLC43OSwxLjEzbC4xNywwYTEs''@;'; put 'put ''MSwwLDAsMCwxLS44MWwuNDItMi40YTE0LjMsMTQuMywwLDAsMCwxMSw3LjE0LDEzLjkxLDEzLjkxLDAsMCwwLDUuNjMtLjYsMSwxLDAsMCwwLS42LTEuOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMiwxM0gxNGExLDEsMCwwLDAt''@;'; put 'put ''MSwxdjhhMSwxLDAsMCwwLDEsMWg4YTEsMSwwLDAsMCwxLTFWMTRBMSwxLDAsMCwwLDIyLDEzWm0tMSw4SDE1VjE1aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQXNzaWduVXNlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; put 'put ''PSJNMTgsMTdhNy40Niw3LjQ2LDAsMSwwLTcuNDUtNy40NkE3LjQ2LDcuNDYsMCwwLDAsMTgsMTdaTTE4LDQuMDdhNS40Niw1LjQ2LDAsMSwxLTUuNDUsNS40NUE1LjQ2LDUuNDYsMCwwLDEsMTgsNC4wN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxw''@;'; put 'put ''YXRoIGQ9Ik02LDMxLjg5VjI1Ljc3YTE2LjEzLDE2LjEzLDAsMCwxLDEyLTUsMTYuNjEsMTYuNjEsMCwwLDEsOC43MSwyLjMzbDEuMzUtMS41MUExOC41MywxOC41MywwLDAsMCwxOCwxOC43NCwxNy43LDE3LjcsMCwwLDAsNC4yMSwyNC44YTEsMSwwLDAsMC0uMjEuNnY2LjQ5QTIuMDYsMi4w''@;'; put 'put ''NiwwLDAsMCw2LDM0SDE4LjM5bC0xLjktMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMCwzMS44OSwzMCwzMkgyNi44NWwtMS44LDJIMzBhMi4wNiwyLjA2LDAsMCwwLDItMi4wN1YyNi4ybC0yLDIuMjNaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzQuNzYsMTguNjJhMSwxLDAsMCwwLTEuNDEuMDhsLTExLjYyLDEzLTUuMi01LjU5QTEsMSwwLDAsMCwxNS4xMiwyNmExLDEsMCwwLDAtLjA2LDEuNDJsNi42OSw3LjJMMzQuODQsMjBBMSwxLDAsMCwwLDM0Ljc2LDE4''@;'; put 'put ''LjYyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PGNpcmNsZSBjeD0iMTcuOTkiIGN5PSIxMC4zNiIgcj0iNi44MSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTIsMjYuNjVhMi44LDIuOCwwLDAsMSw0''@;'; put 'put ''Ljg1LTEuOEwyMC43MSwyOWw2Ljg0LTcuNjNBMTYuODEsMTYuODEsMCwwLDAsMTgsMTguNTUsMTYuMTMsMTYuMTMsMCwwLDAsNS41LDI0YTEsMSwwLDAsMC0uMi42MVYzMGEyLDIsMCwwLDAsMS45NCwyaDguNTdsLTMuMDctMy4zQTIuODEsMi44MSwwLDAsMSwxMiwyNi42NVoiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI4Ljc2LDMyYTIsMiwwLDAsMCwxLjk0LTJWMjYuMjRMMjUuNTcsMzJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMy43NywxOC42MmExLDEsMCwwLDAtMS40Mi4w''@;'; put 'put ''OGwtMTEuNjIsMTMtNS4yLTUuNTlBMSwxLDAsMCwwLDE0LjEyLDI2YTEsMSwwLDAsMCwwLDEuNDJsNi42OCw3LjJMMzMuODQsMjBBMSwxLDAsMCwwLDMzLjc3LDE4LjYyWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQXRvbT0oMCxhLmNs''@;'; put 'put ''ckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMTQuMDVhNCw0LDAsMSwwLDQsNEE0LDQsMCwwLDAsMTgsMTQuMDVabTAsNi40NGEyLjQyLDIuNDIsMCwxLDEsMi40Mi0yLjQyQTIuNDIsMi40MiwwLDAsMSwxOCwyMC40OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0x''@;'; put 'put ''IiAvPjxwYXRoIGQ9Ik0yNC4yMywxMS43MWEzOS4xNCwzOS4xNCwwLDAsMC00LjU3LTMuOTIsMjIuODYsMjIuODYsMCwwLDEsMy40OC0xLjcyYy4zMi0uMTIuNjItLjIxLjkyLS4zYTIuMjgsMi4yOCwwLDAsMCwzLjgxLS40NiwzLjMxLDMuMzEsMCwwLDEsMS45Mi44NGMxLjE5LDEuMTksMS4y''@;'; put 'put ''MiwzLjU5LjEsNi41OC40OS42NS45NCwxLjMxLDEuMzUsMiwuMTctLjQuMzUtLjc5LjQ5LTEuMTgsMS40Ny0zLjg1LDEuMjgtNy0uNTMtOC43OGE1LjI5LDUuMjksMCwwLDAtMy4zMy0xLjQ0LDIuMjksMi4yOSwwLDAsMC00LjMxLjU0Yy0uMzcuMTEtLjc0LjIyLTEuMTMuMzdhMjUuNzksMjUu''@;'; put 'put ''NzksMCwwLDAtNC41NywyLjM1QTI2LjIxLDI2LjIxLDAsMCwwLDEzLjI4LDQuMmMtMy44NS0xLjQ2LTctMS4yOC04Ljc3LjUzQzIuODUsNi40LDIuNTgsOS4xNywzLjY4LDEyLjU5YTIuMjgsMi4yOCwwLDAsMCwxLjU5LDMuNjdjLjMyLjYxLjY3LDEuMjIsMS4wNiwxLjgyQTI1LjU0LDI1LjU0''@;'; put 'put ''LDAsMCwwLDQsMjIuNjZjLTEuNDcsMy44NC0xLjI4LDcsLjUzLDguNzdhNS42Myw1LjYzLDAsMCwwLDQuMTIsMS41MSwxMy4zNCwxMy4zNCwwLDAsMCw0LjY1LTEsMjYuMjEsMjYuMjEsMCwwLDAsNC41OC0yLjM1QTI1Ljc5LDI1Ljc5LDAsMCwwLDIyLjQzLDMyYTE0LjE2LDE0LjE2LDAsMCww''@;'; put 'put ''LDMuNjUuOUEyLjMsMi4zLDAsMCwwLDMwLjQ2LDMyYTQuNTUsNC41NSwwLDAsMCwuNzQtLjU3YzEuODEtMS44MSwyLTQuOTMuNTMtOC43N0EzMi42OCwzMi42OCwwLDAsMCwyNC4yMywxMS43MVpNMTIuNTcsMzAuMDljLTMsMS4xNS01LjQ1LDEuMTMtNi42NS0uMDhzLTEuMjMtMy42Mi0uMDct''@;'; put 'put ''Ni42NGEyMi43NywyMi43NywwLDAsMSwxLjcxLTMuNDgsNDAuMTksNDAuMTksMCwwLDAsMy45Miw0LjU2Yy40My40My44Ny44NSwxLjMxLDEuMjVxLjktLjQ2LDEuODMtMS4wNWMtLjU4LS41Mi0xLjE2LTEtMS43Mi0xLjYxYTM0LDM0LDAsMCwxLTUuNzQtNy40N0EyLjI5LDIuMjksMCwwLDAs''@;'; put 'put ''NS41LDExLjY5aDBjLS43NS0yLjUtLjYyLTQuNDkuNDMtNS41NGEzLjcyLDMuNzIsMCwwLDEsMi43Mi0uOTIsMTEuNCwxMS40LDAsMCwxLDMuOTMuODQsMjIuODYsMjIuODYsMCwwLDEsMy40OCwxLjcyLDM5LjE0LDM5LjE0LDAsMCwwLTQuNTcsMy45MmMtLjQ0LjQ0LS44Ny45LTEuMjksMS4z''@;'; put 'put ''NmEyMC4yNywyMC4yNywwLDAsMCwxLDEuODVjLjU0LS42MSwxLjA5LTEuMjEsMS42OC0xLjhhMzYuMzMsMzYuMzMsMCwwLDEsNS00LjE3LDM2Ljg4LDM2Ljg4LDAsMCwxLDQuOTUsNC4xNywzNi4yNiwzNi4yNiwwLDAsMSw0LjE3LDUsMzcsMzcsMCwwLDEtNC4xNyw1QTMwLjY4LDMwLjY4LDAs''@;'; put 'put ''MCwxLDEyLjU3LDMwLjA5Wk0yOS43OSwzMGwtLjE2LjEzYTIuMjcsMi4yNywwLDAsMC0zLjUuNzIsMTIuNTcsMTIuNTcsMCwwLDEtMy0uNzcsMjIsMjIsMCwwLDEtMy40OC0xLjcyLDM5LjE0LDM5LjE0LDAsMCwwLDQuNTctMy45MiwzOC4yNiwzOC4yNiwwLDAsMCwzLjkyLTQuNTYsMjIuODgs''@;'; put 'put ''MjIuODgsMCwwLDEsMS43MiwzLjQ4QzMxLDI2LjM5LDMxLDI4LjgxLDI5Ljc5LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTI0LjIzLDExLjcxYTM5LjE0LDM5LjE0LDAsMCwwLTQuNTctMy45MiwyMi44NiwyMi44NiwwLDAsMSwz''@;'; put 'put ''LjQ4LTEuNzJjLjMyLS4xMi42Mi0uMjEuOTItLjNhMi4yOCwyLjI4LDAsMCwwLDMuODEtLjQ2LDMuMzEsMy4zMSwwLDAsMSwxLjkyLjg0YzEuMTksMS4xOSwxLjIyLDMuNTkuMSw2LjU4LjQ5LjY1Ljk0LDEuMzEsMS4zNSwyLC4xNy0uNC4zNS0uNzkuNDktMS4xOCwxLjQ3LTMuODUsMS4yOC03''@;'; put 'put ''LS41My04Ljc4YTUuMjksNS4yOSwwLDAsMC0zLjMzLTEuNDQsMi4yOSwyLjI5LDAsMCwwLTQuMzEuNTRjLS4zNy4xMS0uNzQuMjItMS4xMy4zN2EyNS43OSwyNS43OSwwLDAsMC00LjU3LDIuMzVBMjYuMjEsMjYuMjEsMCwwLDAsMTMuMjgsNC4yYy0zLjg1LTEuNDYtNy0xLjI4LTguNzcuNTND''@;'; put 'put ''Mi44NSw2LjQsMi41OCw5LjE3LDMuNjgsMTIuNTlhMi4yOCwyLjI4LDAsMCwwLDEuNTksMy42N2MuMzIuNjEuNjcsMS4yMiwxLjA2LDEuODJBMjUuNTQsMjUuNTQsMCwwLDAsNCwyMi42NmMtMS40NywzLjg0LTEuMjgsNywuNTMsOC43N2E1LjYzLDUuNjMsMCwwLDAsNC4xMiwxLjUxLDEzLjM0''@;'; put 'put ''LDEzLjM0LDAsMCwwLDQuNjUtMSwyNi4yMSwyNi4yMSwwLDAsMCw0LjU4LTIuMzVBMjUuNzksMjUuNzksMCwwLDAsMjIuNDMsMzJhMTQuMTYsMTQuMTYsMCwwLDAsMy42NS45QTIuMywyLjMsMCwwLDAsMzAuNDYsMzJhNC41NSw0LjU1LDAsMCwwLC43NC0uNTdjMS44MS0xLjgxLDItNC45My41''@;'; put 'put ''My04Ljc3QTMyLjY4LDMyLjY4LDAsMCwwLDI0LjIzLDExLjcxWk0xMi41NywzMC4wOWMtMywxLjE1LTUuNDUsMS4xMy02LjY1LS4wOHMtMS4yMy0zLjYyLS4wNy02LjY0YTIyLjc3LDIyLjc3LDAsMCwxLDEuNzEtMy40OCw0MC4xOSw0MC4xOSwwLDAsMCwzLjkyLDQuNTZjLjQzLjQzLjg3Ljg1''@;'; put 'put ''LDEuMzEsMS4yNXEuOS0uNDYsMS44My0xLjA1Yy0uNTgtLjUyLTEuMTYtMS0xLjcyLTEuNjFhMzQsMzQsMCwwLDEtNS43NC03LjQ3QTIuMjksMi4yOSwwLDAsMCw1LjUsMTEuNjloMGMtLjc1LTIuNS0uNjItNC40OS40My01LjU0YTMuNzIsMy43MiwwLDAsMSwyLjcyLS45MiwxMS40LDExLjQs''@;'; put 'put ''MCwwLDEsMy45My44NCwyMi44NiwyMi44NiwwLDAsMSwzLjQ4LDEuNzIsMzkuMTQsMzkuMTQsMCwwLDAtNC41NywzLjkyYy0uNDQuNDQtLjg3LjktMS4yOSwxLjM2YTIwLjI3LDIwLjI3LDAsMCwwLDEsMS44NWMuNTQtLjYxLDEuMDktMS4yMSwxLjY4LTEuOGEzNi4zMywzNi4zMywwLDAsMSw1''@;'; put 'put ''LTQuMTcsMzYuODgsMzYuODgsMCwwLDEsNC45NSw0LjE3LDM2LjI2LDM2LjI2LDAsMCwxLDQuMTcsNSwzNywzNywwLDAsMS00LjE3LDVBMzAuNjgsMzAuNjgsMCwwLDEsMTIuNTcsMzAuMDlaTTI5Ljc5LDMwbC0uMTYuMTNhMi4yNywyLjI3LDAsMCwwLTMuNS43MiwxMi41NywxMi41NywwLDAs''@;'; put 'put ''MS0zLS43NywyMiwyMiwwLDAsMS0zLjQ4LTEuNzIsMzkuMTQsMzkuMTQsMCwwLDAsNC41Ny0zLjkyLDM4LjI2LDM4LjI2LDAsMCwwLDMuOTItNC41NiwyMi44OCwyMi44OCwwLDAsMSwxLjcyLDMuNDhDMzEsMjYuMzksMzEsMjguODEsMjkuNzksMzBaIiBjbGFzcz0iY2xyLWktc29saWQgY2xy''@;'; put 'put ''LWktc29saWQtcGF0aC0xIiAvPjxjaXJjbGUgY3g9IjE3Ljk5IiBjeT0iMTguMDciIHI9IjMuMyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTIuNjYgMy4xMSkgcm90YXRlKC05LjIyKSIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQmFyQ29k''@;'; put 'put ''ZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSw3QTEsMSwwLDAsMCw0LDhWMzBhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCw1LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSw3QTEsMSwwLDAsMCw4LDhWMjZhMSwxLDAs''@;'; put 'put ''MCwwLDIsMFY4QTEsMSwwLDAsMCw5LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMTMsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xNyw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwxNyw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTIxLDdhMSwxLDAsMCwwLTEsMVYyNmExLDEsMCww''@;'; put 'put ''LDAsMiwwVjhBMSwxLDAsMCwwLDIxLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsN2ExLDEsMCwwLDAtMSwxVjI2YTEsMSwwLDAsMCwyLDBWOEExLDEsMCwwLDAsMjUsN1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSw3YTEsMSwwLDAsMC0xLDFWMjZhMSwxLDAsMCwwLDIsMFY4QTEsMSwwLDAsMCwyOSw3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciIC8+PHBhdGggZD0iTTMzLDdhMSwxLDAsMCwwLTEsMVYzMGExLDEsMCww''@;'; put 'put ''LDAsMiwwVjhBMSwxLDAsMCwwLDMzLDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOCIgLz4nKSxlLkNsclNoYXBlQ2REdmQ9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgsMTYsMTYsMCwwLDAsMTgsMlptMCwzMEEx''@;'; put 'put ''NCwxNCwwLDEsMSwzMiwxOCwxNCwxNCwwLDAsMSwxOCwzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMi4zMywxOGE0LjQ2LDQuNDYsMCwxLDAtNC40NSw0LjQ2QTQuNDYsNC40NiwwLDAsMCwyMi4zMywxOFpNMTcuODgsMjAuOUEy''@;'; put 'put ''Ljg2LDIuODYsMCwxLDEsMjAuNzMsMTgsMi44NiwyLjg2LDAsMCwxLDE3Ljg4LDIwLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTcuODgsNy40M0gxOFY1Ljg0aC0uMTJBMTIuMjEsMTIuMjEsMCwwLDAsNS42OCwxNy43NWgxLjZB''@;'; put 'put ''MTAuNjEsMTAuNjEsMCwwLDEsMTcuODgsNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMC4wOCwxOEgyOC40OXYwQTEwLjYxLDEwLjYxLDAsMCwxLDE4LjI1LDI4LjYzdjEuNkExMi4yMiwxMi4yMiwwLDAsMCwzMC4wOSwxOFMz''@;'; put 'put ''MC4wOCwxOCwzMC4wOCwxOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxMVY5LjQ0aC0uMTJhOC42Miw4LjYyLDAsMCwwLTguNiw4LjMyaDEuNmE3LDcsMCwwLDEsNy02LjcyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTE4LjI1LDI1djEuNkE4LjYxLDguNjEsMCwwLDAsMjYuNDgsMTh2MGgtMS42djBBNyw3LDAsMCwxLDE4LjI1LDI1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+PHBhdGggZD0iTTE4LjE3LDEuOTJhMTYs''@;'; put 'put ''MTYsMCwxLDAsMTYsMTZBMTYsMTYsMCwwLDAsMTguMTcsMS45MlpNMjYuMjMsMThoMS41NGE5LjYxLDkuNjEsMCwwLDEtOS42LDkuNTNIMThWMjZoLjE3QTguMDcsOC4wNywwLDAsMCwyNi4yMywxOFpNNi4wNSwxOEg0LjQ1di0uMDhBMTMuNzIsMTMuNzIsMCwwLDEsMTgsNC4yMXYxLjZBMTIu''@;'; put 'put ''MTMsMTIuMTMsMCwwLDAsNi4wNSwxNy45MlptNC4wNSwwSDguNTZ2LS4wOEE5LjYxLDkuNjEsMCwwLDEsMTgsOC4zMlY5Ljg2YTguMDcsOC4wNywwLDAsMC03LjksOC4wNlptNC4zMi0uMDhhMy43NSwzLjc1LDAsMSwxLDMuNzUsMy43NUEzLjc1LDMuNzUsMCwwLDEsMTQuNDIsMTcuOTJabTMu''@;'; put 'put ''NzUsMTMuNzFIMThWMzBoLjE3QTEyLjEzLDEyLjEzLDAsMCwwLDMwLjI4LDE4aDEuNkExMy43MywxMy43MywwLDAsMSwxOC4xNywzMS42M1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUNvbnRhaW5lcj0oMCxhLmNsckljb25TVkcpKCc8''@;'; put 'put ''cGF0aCBkPSJNMzIsMzBINGEyLDIsMCwwLDEtMi0yVjhBMiwyLDAsMCwxLDQsNkgzMmEyLDIsMCwwLDEsMiwyVjI4QTIsMiwwLDAsMSwzMiwzMFpNNCw4VjI4SDMyVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNOSwyNS4zYS44Ljgs''@;'; put 'put ''MCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSw5LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuOTIsMjUuM2EuOC44LDAsMCwxLS44LS44di0xM2EuOC44LDAsMCwxLDEuNiwwdjEzQS44''@;'; put 'put ''LjgsMCwwLDEsMTQuOTIsMjUuM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yMSwyNS4zYS44LjgsMCwwLDEtLjgtLjh2LTEzYS44LjgsMCwwLDEsMS42LDB2MTNBLjguOCwwLDAsMSwyMSwyNS4zWiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTI3LDI1LjNhLjguOCwwLDAsMS0uOC0uOHYtMTNhLjguOCwwLDAsMSwxLjYsMHYxM0EuOC44LDAsMCwxLDI3LDI1LjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzIs''@;'; put 'put ''Nkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjhBMiwyLDAsMCwwLDMyLDZaTTkuNjMsMjQuMjNhLjc5Ljc5LDAsMCwxLS44MS43N0EuNzkuNzksMCwwLDEsOCwyNC4yM1YxMS43N0EuNzkuNzksMCwwLDEsOC44MiwxMWEuNzkuNzksMCwwLDEsLjgx''@;'; put 'put ''Ljc3Wm02LDBhLjc5Ljc5LDAsMCwxLS44Mi43Ny43OS43OSwwLDAsMS0uODEtLjc3VjExLjc3YS43OS43OSwwLDAsMSwuODEtLjc3Ljc5Ljc5LDAsMCwxLC44Mi43N1ptNi4yMSwwYS43OS43OSwwLDAsMS0uODIuNzcuNzkuNzksMCwwLDEtLjgxLS43N1YxMS43N2EuNzkuNzksMCwwLDEsLjgx''@;'; put 'put ''LS43Ny43OS43OSwwLDAsMSwuODIuNzdabTYuMTIsMGEuNzkuNzksMCwwLDEtLjgyLjc3Ljc5Ljc5LDAsMCwxLS44MS0uNzdWMTEuNzdhLjc5Ljc5LDAsMCwxLC44MS0uNzcuNzkuNzksMCwwLDEsLjgyLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxl''@;'; put 'put ''LkNsclNoYXBlQ29udGFpbmVyVm9sdW1lPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik04LDE3LjU4YTMyLjM1LDMyLjM1LDAsMCwwLDYuMy45Miw0LjEzLDQuMTMsMCwwLDEsLjkyLTEuMzcsMzAuOTQsMzAuOTQsMCwwLDEtNy4yMi0xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYsMjhWOC4xOWMuMzQtLjc2LDQuMzEtMi4xMSwxMS0yLjExczEwLjY3LDEuMzUsMTEsMnYuM2MtLjgyLjc5LTQuNTgsMi4wNS0xMS4xMSwyLjA1QTMzLjQ4LDMzLjQ4LDAsMCwxLDgsOS40NHYxLjQ0YTM1LjYsMzUuNiwwLDAsMCw4Ljg5LDFj''@;'; put 'put ''NC4yOSwwLDguOC0uNTgsMTEuMTEtMS44MnY1LjA3YTUuMyw1LjMsMCwwLDEtMS44MS44OEgzMFY4LjEyYzAtMy4xOS04LjE3LTQtMTMtNHMtMTMsLjg1LTEzLDRWMjhDNCwzMC42Myw5LjM5LDMxLjY4LDE0LDMyVjMwQzkuMTMsMjkuNjYsNi4yOCwyOC42Miw2LDI4WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTgsMjQuMjhhMzEuMywzMS4zLDAsMCwwLDYsLjg5di0xLjRhMjguOTMsMjguOTMsMCwwLDEtNi0uOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzIsMThI''@;'; put 'put ''MThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yMSwyMS43YS43LjcsMCwwLDAtLjcu''@;'; put 'put ''N3Y3LjQ5YS43LjcsMCwwLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDIxLDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMjUsMjEuODJhLjcuNywwLDAsMC0uNy43VjMwYS43LjcsMCwxLDAsMS40LDBWMjIuNTJBLjcuNywwLDAs''@;'; put 'put ''MCwyNSwyMS44MloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtNyIgLz48cGF0aCBkPSJNMzIsMThIMThhMiwyLDAsMCwwLTIsMlYzMmEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMjBBMiwyLDAsMCwwLDMyLDE4Wk0xOCwzMlYyMEgzMlYzMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIC8+''@;'; put 'put ''PHBhdGggZD0iTTIxLDIxLjdhLjcuNywwLDAsMC0uNy43djcuNDlhLjcuNywwLDAsMCwxLjQsMFYyMi40QS43LjcsMCwwLDAsMjEsMjEuN1oiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIC8+PHBhdGggZD0iTTI1LDIxLjgyYS43LjcsMCwwLDAtLjcuN1YzMGEuNy43''@;'; put 'put ''LDAsMSwwLDEuNCwwVjIyLjUyQS43LjcsMCwwLDAsMjUsMjEuODJaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yOSwyMS43YS43LjcsMCwwLDAtLjcuN3Y3LjQ5YS43LjcsMCwxLDAsMS40LDBWMjIuNEEuNy43LDAsMCwwLDI5LDIxLjdaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC00IiAvPjxwYXRoIGQ9Ik0xOCwxNkgyOFY4LjEyYzAtMS42OC01LjM4LTMtMTItM1M0LDYuNDQsNCw4LjEyVjI4YzAsMS41LDQuMzMsMi43NSwxMCwzVjI1LjIyYTI5LjE3LDI5LjE3LDAsMCwxLTgtMS4yOVYyMi40NGwuMjQuMUEy''@;'; put 'put ''Ni42MywyNi42MywwLDAsMCwxNCwyMy44MlYyMGE0LDQsMCwwLDEsLjI5LTEuNDdBMjkuMTksMjkuMTksMCwwLDEsNiwxNy4yM1YxNS43NWwuMjQuMDlhMjksMjksMCwwLDAsOSwxLjMyaDBBNCw0LDAsMCwxLDE4LDE2Wk02LDEwLjU0VjkuMDVsLjI0LjA5QTMwLjEyLDMwLjEyLDAsMCwwLDE2''@;'; put 'put ''LDEwLjQ3LDI4LjMzLDI4LjMzLDAsMCwwLDI2LDkuMDV2MS41YTMyLjUzLDMyLjUzLDAsMCwxLTEwLDEuMzJBMzIuNDQsMzIuNDQsMCwwLDEsNiwxMC41NFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTUiIC8+JyksZS5DbHJTaGFwZUZpbGVTaGFyZT0oMCxhLmNscklj''@;'; put 'put ''b25TVkcpKCc8cGF0aCBkPSJNMzAsOUgxNi40MkwxNC4xMSw1LjgyQTIsMiwwLDAsMCwxMi40OSw1SDZBMiwyLDAsMCwwLDQsN1YyOWEyLDIsMCwwLDAsMiwySDMwYTIsMiwwLDAsMCwyLTJWMTFBMiwyLDAsMCwwLDMwLDlabTAsMjBINlYxM2g3LjMxYTIsMiwwLDAsMCwyLTJINlY3aDYuNDls''@;'; put 'put ''Mi42MSwzLjU5YTEsMSwwLDAsMCwuODEuNDFIMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjEuOTEsMjIuNDhhMi4wNiwyLjA2LDAsMCwwLTEuNDQuNjJsLTUuNzItMi42NlYyMGw1LjY2LTIuNjVhMi4wOCwyLjA4LDAsMSwwLC4w''@;'; put 'put ''Ni0yLjk0LDIuMTIsMi4xMiwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNhMi4wOSwyLjA5LDAsMSwwLDIuMDgtMi4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+''@;'; put 'put ''PHBhdGggZD0iTTMwLDlIMTYuNDJMMTQuMTEsNS44MkEyLDIsMCwwLDAsMTIuNDksNUg2QTIsMiwwLDAsMCw0LDdWMjlhMiwyLDAsMCwwLDIsMkgzMGEyLDIsMCwwLDAsMi0yVjExQTIsMiwwLDAsMCwzMCw5Wk02LDdoNi40OWwyLjcyLDRINlpNMjEuOTQsMjYuNjRhMi4wOSwyLjA5LDAsMCwx''@;'; put 'put ''LTIuMTEtMi4wNmwwLS4zLTUuNjctMi42Ni0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMDgsMi4wOCwwLDEsMSwuNTgsMS40NkwxNC43NSwyMHYuNDdsNS43MiwyLjY2YTIuMDcsMi4wNywwLDEsMSwxLjQ3LDMuNTRaIiBjbGFzcz0iY2xyLWktc29s''@;'; put 'put ''aWQgY2xyLWktc29saWQtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVRckNvZGU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTUuNiw0QTEuNiwxLjYsMCwwLDAsNCw1LjZWMTJoOFY0Wk0xMCwxMEg2VjZoNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAv''@;'; put 'put ''PjxwYXRoIGQ9Ik00LDMwLjRBMS42LDEuNiwwLDAsMCw1LjYsMzJIMTJWMjRINFpNNiwyNmg0djRINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwzMmg2LjRBMS42LDEuNiwwLDAsMCwzMiwzMC40VjI0SDI0Wm0yLTZoNHY0SDI2''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMwLjQsNEgyNHY4aDhWNS42QTEuNiwxLjYsMCwwLDAsMzAuNCw0Wk0zMCwxMEgyNlY2aDRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz48cG9seWdv''@;'; put 'put ''biBwb2ludHM9IjIwIDEwIDIwIDggMTYgOCAxNiAxMiAxOCAxMiAxOCAxMCAyMCAxMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHJlY3QgeD0iMTIiIHk9IjEyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1v''@;'; put 'put ''dXRsaW5lLXBhdGgtNiIgLz48cmVjdCB4PSIxNCIgeT0iMTQiIHdpZHRoPSI0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC03IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgNiAyMCA4IDIyIDggMjIgNCAxNCA0IDE0IDggMTYgOCAxNiA2IDIwIDYi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04IiAvPjxyZWN0IHg9IjQiIHk9IjE0IiB3aWR0aD0iMiIgaGVpZ2h0PSI0IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIgLz48cG9seWdvbiBwb2ludHM9IjEyIDE2IDEyIDE4IDEwIDE4''@;'; put 'put ''IDEwIDE0IDggMTQgOCAxOCA2IDE4IDYgMjAgNCAyMCA0IDIyIDggMjIgOCAyMCAxMCAyMCAxMCAyMiAxMiAyMiAxMiAyMCAxNCAyMCAxNCAxNiAxMiAxNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIiAvPjxwb2x5Z29uIHBvaW50cz0iMjAgMTYgMjIgMTYg''@;'; put 'put ''MjIgMTggMjQgMTggMjQgMTYgMjYgMTYgMjYgMTQgMjIgMTQgMjIgMTAgMjAgMTAgMjAgMTIgMTggMTIgMTggMTQgMjAgMTQgMjAgMTYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xMSIgLz48cG9seWdvbiBwb2ludHM9IjE4IDMwIDE0IDMwIDE0IDMyIDIyIDMy''@;'; put 'put ''IDIyIDMwIDIwIDMwIDIwIDI4IDE4IDI4IDE4IDMwIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTIiIC8+PHBvbHlnb24gcG9pbnRzPSIyMiAyMCAyMiAxOCAyMCAxOCAyMCAxNiAxOCAxNiAxOCAxOCAxNiAxOCAxNiAyMCAxOCAyMCAxOCAyMiAyMCAyMiAyMCAy''@;'; put 'put ''MCAyMiAyMCIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEzIiAvPjxyZWN0IHg9IjMwIiB5PSIyMCIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE0IiAvPjxyZWN0IHg9IjIyIiB5PSIyMCIgd2lk''@;'; put 'put ''dGg9IjYiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTE1IiAvPjxwb2x5Z29uIHBvaW50cz0iMzAgMTQgMjggMTQgMjggMTYgMjYgMTYgMjYgMTggMjggMTggMjggMjAgMzAgMjAgMzAgMTggMzIgMTggMzIgMTYgMzAgMTYgMzAgMTQiIGNsYXNz''@;'; put 'put ''PSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNiIgLz48cmVjdCB4PSIyMCIgeT0iMjIiIHdpZHRoPSIyIiBoZWlnaHQ9IjYiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xNyIgLz48cG9seWdvbiBwb2ludHM9IjE0IDI4IDE2IDI4IDE2IDI2IDE4''@;'; put 'put ''IDI2IDE4IDI0IDE2IDI0IDE2IDIwIDE0IDIwIDE0IDI4IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMTgiIC8+JyksZS5DbHJTaGFwZVVzYj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTQuMjksMTEuNGExLjQ5LDEuNDksMCwwLDEsMS4yOC0uNzJoMWEy''@;'; put 'put ''Ljg5LDIuODksMCwwLDAsMi43NSwyLjA5LDMsMywwLDAsMCwwLTUuOTEsMi45LDIuOSwwLDAsMC0yLjY3LDEuODJIMTUuNTdhMy40OSwzLjQ5LDAsMCwwLTMsMS42NmwtMyw0LjgzaDIuMzZabTUtMi45NEExLjM2LDEuMzYsMCwxLDEsMTgsOS44MSwxLjMyLDEuMzIsMCwwLDEsMTkuMzMsOC40''@;'; put 'put ''NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zNC4zLDE3LjM3bC02LjExLTMuNjZhLjcuNywwLDAsMC0uNywwLC43MS43MSwwLDAsMC0uMzYuNjFWMTdINi45MmEyLjMzLDIuMzMsMCwwLDEsLjMyLDEuMTcsMi40NywyLjQ3LDAsMSwx''@;'; put 'put ''LTIuNDctMi40NiwyLjM3LDIuMzcsMCwwLDEsMS4xNS4zbC45My0xLjc2QTQuNDQsNC40NCwwLDEsMCw5LjE1LDE5aDMuNThsNC4xNyw2LjY1YTMuNDksMy40OSwwLDAsMCwzLDEuNjZoMS42NnYxLjI4YS43OS43OSwwLDAsMCwuOC43OWg0LjQ5YS43OS43OSwwLDAsMCwuOC0uNzl2LTQuNGEu''@;'; put 'put ''NzkuNzksMCwwLDAtLjgtLjhIMjIuMzRhLjguOCwwLDAsMC0uOC44djEuMTJIMTkuODhhMS41MSwxLjUxLDAsMCwxLTEuMjgtLjcyTDE1LjA5LDE5aDEydjIuNjZhLjY5LjY5LDAsMCwwLC4zNi42MS42Ny42NywwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDYuMTEtMy42NmEuNjku''@;'; put 'put ''NjksMCwwLDAsLjM0LS42QS43MS43MSwwLDAsMCwzNC4zLDE3LjM3Wk0yMy4xNCwyNUgyNnYyLjhIMjMuMTRabTUuMzktNC41NlYxNS41NWw0LDIuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzQuNzIsMTcuMzdsLTUuNTEtMy4z''@;'; put 'put ''MWEuNzEuNzEsMCwwLDAtMS4wNy42VjE3SDExLjc3bDMuNTItNS42YTEuNDksMS40OSwwLDAsMSwxLjI4LS43MmgxLjY0YTIuNDEsMi40MSwwLDAsMCwyLjI1LDEuNjEsMi40OCwyLjQ4LDAsMCwwLDAtNC45NSwyLjM4LDIuMzgsMCwwLDAtMi4xMywxLjM0SDE2LjU3YTMuNDksMy40OSwwLDAs''@;'; put 'put ''MC0zLDEuNjZMOS40MSwxN0g4YTMuNDYsMy40NiwwLDEsMCwuMDgsMmg1LjY0bDQuMTUsNi42MmEzLjQ5LDMuNDksMCwwLDAsMywxLjY2aDIuNTl2LjkyaDQuNFYyMy44aC00LjR2MS40OEgyMC44OGExLjUxLDEuNTEsMCwwLDEtMS4yOC0uNzJMMTYuMTEsMTloMTJ2Mi4yOGEuNy43LDAsMCww''@;'; put 'put ''LC4zNi42MS43Mi43MiwwLDAsMCwuMzQuMDkuNjUuNjUsMCwwLDAsLjM2LS4xbDUuNTItMy4zMWEuNy43LDAsMCwwLDAtMS4yWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmFkYXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMy''@;'; put 'put ''LDE4YzAsNy43LTYuMywxNC0xNCwxNGMtNy43LDAtMTQtNi4zLTE0LTE0QzQsMTAuNiw5LjcsNC41LDE3LjEsNHYzLjdjLTUuNywwLjUtOS45LDUuNS05LjQsMTEuMnM1LjUsOS45LDExLjIsOS40XG5cdGM1LjMtMC41LDkuNC00LjksOS40LTEwLjNoLTJjMCw0LjYtMy43LDguMy04LjMsOC4z''@;'; put 'put ''cy04LjMtMy43LTguMy04LjNjMC00LjIsMy4xLTcuOCw3LjMtOC4zdjQuNGMtMS44LDAuNC0zLjEsMi0zLjEsMy45XG5cdGMwLDIuMiwxLjgsNCw0LDRzNC0xLjgsNC00YzAtMS44LTEuMy0zLjQtMy0zLjhWMi4xQzE4LjYsMiwxOC4zLDIsMTgsMkM5LjIsMiwyLDkuMiwyLDE4czcuMiwxNiwx''@;'; put 'put ''NiwxNnMxNi03LjIsMTYtMTZIMzJ6IE0yMCwxOFxuXHRjMCwxLjEtMC45LDItMiwycy0yLTAuOS0yLTJzMC45LTIsMi0yUzIwLDE2LjksMjAsMTh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIsMThjMCw3LjctNi4yLDE0LTE0LDE0''@;'; put 'put ''UzQsMjUuOCw0LDE4YzAtNy40LDUuNy0xMy41LDEzLjEtMTR2My43Yy01LjcsMC41LTkuOCw1LjUtOS4zLDExLjJzNS41LDkuOCwxMS4yLDkuM1xuXHRcdGM1LjMtMC41LDkuMy00LjksOS4zLTEwLjJoLTJjMCw0LjYtMy43LDguMy04LjMsOC4zUzkuNywyMi42LDkuNywxOGMwLTQuMiwzLjIt''@;'; put 'put ''Ny44LDcuMy04LjJ2NC40Yy0yLjEsMC42LTMuNCwyLjctMi45LDQuOVxuXHRcdGMwLjYsMi4xLDIuNywzLjQsNC45LDIuOWMyLjEtMC42LDMuNC0yLjcsMi45LTQuOWMtMC40LTEuNC0xLjUtMi41LTIuOS0yLjlWMmMtMC40LDAtMC43LDAtMS4xLDBjLTguOCwwLTE2LDcuMi0xNiwxNlxuXHRc''@;'; put 'put ''dGMwLDguOCw3LjIsMTYsMTYsMTZzMTYtNy4yLDE2LTE2YzAsMCwwLDAsMCwwSDMyeiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlSW5kdWN0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI0LjMxLDI1LjgxYy0xLjc1LDAtMy0y''@;'; put 'put ''LjQ5LTMtNmExMi43OSwxMi43OSwwLDAsMSwxLjcyLTYuNywyLjU3LDIuNTcsMCwwLDAtMy43OSwwQTEyLjc5LDEyLjc5LDAsMCwxLDIxLDE5Ljc2YzAsMy41Ni0xLjIzLDYtMyw2cy0zLTIuNDktMy02YTEyLjc5LDEyLjc5LDAsMCwxLDEuNzItNi43LDIuNTcsMi41NywwLDAsMC0zLjc5LDAs''@;'; put 'put ''MTIuNzksMTIuNzksMCwwLDEsMS43Miw2LjdjMCwzLjU2LTEuMjMsNi0zLDZzLTMtMi40OS0zLTZhMTIuODgsMTIuODgsMCwwLDEsMS43MS02LjcsMi43LDIuNywwLDAsMC0xLjg5LS44N0M3LjEsMTIuMTksNS42OSwxMy43LDUsMTZsLS4yMy43SDJhMSwxLDAsMCwxLDAtMkgzLjI5YzEuMS0y''@;'; put 'put ''LjgzLDMuMDYtNC41NSw1LjI0LTQuNTVhNC42Nyw0LjY3LDAsMCwxLDMuMTYsMS4zMiw0LjYyLDQuNjIsMCwwLDEsMy4xNS0xLjMyQTQuNjUsNC42NSwwLDAsMSwxOCwxMS41MWE0LjQzLDQuNDMsMCwwLDEsNi4zMSwwLDQuNjcsNC42NywwLDAsMSwzLjE2LTEuMzJjMi4xOCwwLDQuMTQsMS43''@;'; put 'put ''Miw1LjI0LDQuNTVIMzRhMSwxLDAsMCwxLDAsMkgzMS4yOGwtLjIzLS43Yy0uNzQtMi4zNC0yLjE1LTMuODUtMy41OC0zLjg1YTIuNywyLjcsMCwwLDAtMS44OS44NywxMi44OCwxMi44OCwwLDAsMSwxLjcxLDYuN0MyNy4yOSwyMy4zMiwyNi4wNywyNS44MSwyNC4zMSwyNS44MVpNMTgsMTQu''@;'; put 'put ''OTNhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTgsMTQuOTNabTYuMzEsMGExMS43MSwxMS43MSwwLDAsMC0xLDQuODNjMCwyLjU0LjY2LDMuNzUsMSw0LC4zMi0uMjcsMS0xLjQ4LDEtNEEx''@;'; put 'put ''MS43MSwxMS43MSwwLDAsMCwyNC4zMSwxNC45M1ptLTEyLjYyLDBhMTEuNzEsMTEuNzEsMCwwLDAtMSw0LjgzYzAsMi41NC42NiwzLjc1LDEsNCwuMzItLjI3LDEtMS40OCwxLTRBMTEuNzEsMTEuNzEsMCwwLDAsMTEuNjksMTQuOTNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlUmVzaXN0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LjQzLDI2LjM0aDBBMS40NywxLjQ3LDAsMCwxLDI4LDI1LjIyTDI0Ljg2LDEzLjE1LDIxLjc0LDI1LjIyYTEuNDksMS40OSwwLDAsMS0xLjQ1LDEuMTJoMGExLjQ5LDEuNDks''@;'; put 'put ''MCwwLDEtMS40Ni0xLjEyTDE1LjcxLDEzLjE1LDEyLjYsMjUuMjJhMS41MSwxLjUxLDAsMCwxLTIuOTEsMEw2LjU3LDEzLjE1LDUuMjIsMTguMzdIMmExLDEsMCwwLDEsMC0ySDMuNjdsMS40NS01LjU5QTEuNDgsMS40OCwwLDAsMSw2LjU3LDkuNjZoMEExLjQ3LDEuNDcsMCwwLDEsOCwxMC43''@;'; put 'put ''OGwzLjEyLDEyLjA3LDMuMTItMTIuMDdhMS40OSwxLjQ5LDAsMCwxLDEuNDUtMS4xMmgwYTEuNDksMS40OSwwLDAsMSwxLjQ2LDEuMTJsMy4xMiwxMi4wNywzLjEyLTEyLjA3YTEuNSwxLjUsMCwwLDEsMi45LDBsMy4xMiwxMi4wNywxLjM1LTUuMjJIMzRhMSwxLDAsMCwxLDAsMkgzMi4zM2wt''@;'; put 'put ''MS40NSw1LjU5QTEuNDgsMS40OCwwLDAsMSwyOS40MywyNi4zNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xyU2hhcGVDYXBhY2l0b3I9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LDM0LjA2YTEsMSwwLDAsMS0xLTFWMy4xNWEx''@;'; put 'put ''LDEsMCwxLDEsMiwwVjMzLjA2QTEsMSwwLDAsMSwxNSwzNC4wNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yMSwzNC4wNmExLDEsMCwwLDEtMS0xVjMuMTVhMSwxLDAsMSwxLDIsMFYzMy4wNkExLDEsMCwwLDEsMjEsMzQuMDZaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTQuNDYsMTlIM2ExLDEsMCwwLDEsMC0ySDE0LjQ2YTEsMSwwLDAsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzMsMTlIMjEu''@;'; put 'put ''NTRhMSwxLDAsMCwxLDAtMkgzM2ExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZVNxdWlkPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xOCw3YTEsMSwwLDAsMS0xLTFWMy4xOWExLDEsMCwwLDEsMiww''@;'; put 'put ''VjZBMSwxLDAsMCwxLDE4LDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMTgsMzRhMSwxLDAsMCwxLTEtMVYzMGExLDEsMCwwLDEsMiwwdjNBMSwxLDAsMCwxLDE4LDM0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGlu''@;'; put 'put ''ZS1wYXRoLTIiIC8+PHBhdGggZD0iTTcuNDEsMThsMS43OC0xLjc3YTEsMSwwLDEsMC0xLjQyLTEuNDJMNiwxNi41OSw0LjIzLDE0LjgxYTEsMSwwLDEsMC0xLjQyLDEuNDJMNC41OSwxOCwyLjgxLDE5Ljc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcx''@;'; put 'put ''LS4yOUw2LDE5LjQxbDEuNzcsMS43OGExLDEsMCwwLDAsMS40MiwwLDEsMSwwLDAsMCwwLTEuNDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNNiwxMy43NmwuMzYtLjM2YTMsMywwLDAsMSwyLjExLS44OCwxMSwxMSwwLDAsMSwxOSww''@;'; put 'put ''LDMsMywwLDAsMSwyLjEyLjg4bC4zNi4zNi4yLS4yYTEzLDEzLDAsMCwwLTI0LjQsMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMCwyMi4yNGwtLjM2LjM2YTMsMywwLDAsMS0yLjEyLjg4LDExLDExLDAsMCwxLTE5LDAsMywzLDAs''@;'; put 'put ''MCwxLTIuMTItLjg4TDYsMjIuMjRsLS4yLjJhMTMsMTMsMCwwLDAsMjQuNCwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+PHBhdGggZD0iTTMxLjQxLDE4bDEuNzgtMS43N2ExLDEsMCwwLDAtMS40Mi0xLjQyTDMwLDE2LjU5bC0xLjc3LTEuNzhhMSwx''@;'; put 'put ''LDAsMSwwLTEuNDIsMS40MkwyOC41OSwxOGwtMS43OCwxLjc3YTEsMSwwLDAsMCwwLDEuNDIsMSwxLDAsMCwwLC43MS4yOSwxLDEsMCwwLDAsLjcxLS4yOUwzMCwxOS40MWwxLjc3LDEuNzhhMSwxLDAsMCwwLDEuNDIsMCwxLDEsMCwwLDAsMC0xLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUhvc3RHcm91cD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjEuMDgsMzRoLTE0QTEuMDgsMS4wOCwwLDAsMSw2LDMzVjEyYTEuMDgsMS4wOCwwLDAsMSwxLjA4LTEuMDhoMTRBMS4wOCwxLjA4LDAsMCwxLDIyLjE2LDEy''@;'; put 'put ''VjMzQTEuMDgsMS4wOCwwLDAsMSwyMS4wOCwzNFpNOC4xNiwzMS44OEgyMFYxM0g4LjE2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+XG48cmVjdCB4PSIxMC4wOCIgeT0iMTQuOTYiIHdpZHRoPSI4IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNi4xLDI3LjgxaC0yVjloLTEyVjdoMTNhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPlxuPHBhdGggZD0iTTMwLjA4LDIzaC0yVjVoLTExVjNoMTJhMSwxLDAs''@;'; put 'put ''MCwxLDEsMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxyZWN0IHg9IjEzLjA4IiB5PSIyNy44OCIgd2lkdGg9IjIiIGhlaWdodD0iMi4xNiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiIC8+XG5cbjxwYXRoIGNsYXNz''@;'; put 'put ''PSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xNS4wOCwzMSBMMS4wOCwzMSBDMC41MTM0MjcxOTcsMzEuMDAxNTU2NCAwLjA0MTk2NjM3NjUsMzAuNTY1MDE4NiAwLDMwIEwwLDkgQzAsOC40MDM1MzI0NyAwLjQ4MzUzMjQ3LDcuOTIgMS4wOCw3LjkyIEwxNS4wOCw3Ljky''@;'; put 'put ''IEMxNS42NzY0Njc1LDcuOTIgMTYuMTYsOC40MDM1MzI0NyAxNi4xNiw5IEwxNi4xNiwzMCBDMTYuMTE4MDMzNiwzMC41NjUwMTg2IDE1LjY0NjU3MjgsMzEuMDAxNTU2NCAxNS4wOCwzMSBaIE00LjA4LDExLjk2IEw0LjA4LDEzLjk2IEwxMi4wOCwxMy45NiBMMTIuMDgsMTEuOTYgTDQuMDgs''@;'; put 'put ''MTEuOTYgWiBNNy4wOCwyNC44OCBMNy4wOCwyNy4wNCBMOS4wOCwyNy4wNCBMOS4wOCwyNC44OCBMNy4wOCwyNC44OCBaIiAvPlxuPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgZD0iTTIwLjEsMjQuODEgTDE4LjEsMjQuODEgTDE4LjEsNiBMNi4xLDYgTDYu''@;'; put 'put ''MSw0IEwxOS4xLDQgQzE5LjY1MjI4NDcsNCAyMC4xLDQuNDQ3NzE1MjUgMjAuMSw1IEwyMC4xLDI0LjgxIFoiIC8+XG48cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiBkPSJNMjQuMDgsMjAgTDIyLjA4LDIwIEwyMi4wOCwyIEwxMS4wOCwyIEwxMS4wOCwwIEwy''@;'; put 'put ''My4wOCwwIEMyMy42MzIyODQ3LDAgMjQuMDgsMC40NDc3MTUyNSAyNC4wOCwxIEwyNC4wOCwyMCBaIiAvPicpLGUuQ2xyU2hhcGVTdG9yYWdlQWRhcHRlcj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNi4wNiwzMGExLDEsMCwwLDEtMS0xVjhoLTJhMSwxLDAsMCwxLDAtMmg0VjI5QTEs''@;'; put 'put ''MSwwLDAsMSw2LjA2LDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMwLjA2LDI3aC0yNVY5aDI1YTMsMywwLDAsMSwzLDNWMjRBMywzLDAsMCwxLDMwLjA2LDI3Wm0tMjMtMmgyM2ExLDEsMCwwLDAsMS0xVjEyYTEsMSwwLDAs''@;'; put 'put ''MC0xLTFoLTIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHJlY3QgeD0iMjIuMDYiIHk9IjIwIiB3aWR0aD0iNiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIvPlxuICA8cmVjdCB4PSIyMi4w''@;'; put 'put ''NiIgeT0iMTQiIHdpZHRoPSI2IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOS4wNiwyMmgtOFYyMGg3VjE0aDJ2N0ExLDEsMCwwLDEsMTkuMDYsMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNSIvPicpLGUuQ2xyU2hhcGVOb2RlR3JvdXA9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMzLjUzLDIxLjU4bC00Ljk0LTIuODNWMTMuMDlhMSwxLDAsMCwwLS41MS0uODdMMjIuNjQsOS4xYTEsMSwwLDAsMC0xLDBMMTYuMiwxMi4yMmExLDEsMCwwLDAtLjUxLjg3djUu''@;'; put 'put ''NjZsLTQuOTQsMi44M2ExLDEsMCwwLDAtLjUuODd2Ni4yNGExLDEsMCwwLDAsLjUuODZsNS40NSwzLjEyYTEsMSwwLDAsMCwxLDBsNC45NS0yLjgzLDQuOTUsMi44M2ExLDEsMCwwLDAsLjUuMTQsMSwxLDAsMCwwLC40OS0uMTRsNS40NS0zLjEyYTEsMSwwLDAsMCwuNS0uODZWMjIuNDVBMSwx''@;'; put 'put ''LDAsMCwwLDMzLjUzLDIxLjU4Wk0yMi4xNCwxMS4xMmw0LjQ1LDIuNTVWMTlsLTQuNDYsMi41Ni00LjQ0LTIuNlYxMy42N1pNMTYuNjksMzAuNjVsLTQuNDQtMi41NFYyM2w0LjY4LTIuNjgsNC40LDIuNTdWMjhaTTMyLDI4LjExbC00LjQ0LDIuNTRMMjIuOTMsMjhWMjIuOTNsNC40Ni0yLjU3''@;'; put 'put ''TDMyLDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcsMjcuNDNhMSwxLDAsMCwxLTEtMVYxOS45QTEsMSwwLDAsMSw2LjUsMTlsNC45NS0yLjgzVjEwLjU0YTEsMSwwLDAsMSwuNS0uODdsNS4yMS0zYTEsMSwwLDAsMSwxLjM3''@;'; put 'put ''LjM3LDEsMSwwLDAsMS0uMzgsMS4zN2wtNC43LDIuNjh2NS42NmExLDEsMCwwLDEtLjUxLjg3TDgsMjAuNDh2NS45NUExLDEsMCwwLDEsNywyNy40M1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zLDI1LjA1YTEsMSwwLDAsMS0x''@;'; put 'put ''LTFWMTcuNTNhMSwxLDAsMCwxLC41LS44Nmw1LTIuODRWOC4xN0ExLDEsMCwwLDEsOCw3LjMxbDUuMjUtM2ExLDEsMCwwLDEsMSwxLjc0TDkuNDUsOC43NXY1LjY2YTEsMSwwLDAsMS0uNTEuODdMNCwxOC4xMXY1Ljk0QTEsMSwwLDAsMSwzLDI1LjA1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxlLkNsclNoYXBlTm9kZXM9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEwLjUsMzQuMjksMiwyOS4zOVYxOS41OGw4LjUtNC45LDguNSw0Ljl2OS44MVpNNCwyOC4yMywxMC41LDMyLDE3LDI4LjIzVjIwLjc0TDEwLjUsMTcsNCwyMC43NFoi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yNS41LDM0LjI5LDE3LDI5LjM5VjE5LjU4bDguNS00LjksOC41LDQuOXY5LjgxWk0xOSwyOC4yMywyNS41LDMyLDMyLDI4LjIzVjIwLjc0TDI1LjUsMTcsMTksMjAuNzRaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTgsMjEuMzJsLTguNS00LjlWNi42MUwxOCwxLjcxbDguNSw0Ljl2OS44MVptLTYuNS02LjA2TDE4LDE5bDYuNS0zLjc1VjcuNzdMMTgsNCwxMS41LDcuNzdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIvPicpLGUuQ2xyU2hhcGVOYW1lc3BhY2U9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI3LDQuMThhMSwxLDAsMSwwLTEsMS43M2w2LDMuNDdWMjYuNjJsLTYsMy40N2ExLDEsMCwwLDAtLjM3LDEuMzYsMSwxLDAsMCwwLDEuMzcuMzdsNy00LjA1Vjgu''@;'; put 'put ''MjNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNOS42OCwyOS45LDQsMjYuNjJWOS4zOEw5LjY4LDYuMWExLDEsMCwxLDAtMS0xLjczTDIsOC4yM1YyNy43N2w2LjY4LDMuODZhMSwxLDAsMCwwLDEuMzctLjM3QTEsMSwwLDAsMCw5''@;'; put 'put ''LjY4LDI5LjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMTAsMTJWMjRhMiwyLDAsMCwwLDIsMkgyNGEyLDIsMCwwLDAsMi0yVjEyYTIsMiwwLDAsMC0yLTJIMTJBMiwyLDAsMCwwLDEwLDEyWm03LDB2NUgxMlYxMlptLTUsN2g1''@;'; put 'put ''djVIMTJabTcsNVYxOWg1djVabTUtN0gxOVYxMmg1WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz4nKSxlLkNsclNoYXBlTm9kZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTgsMzAuNjYsNywyNC4zM1YxMS42N0wxOCw1LjM0bDExLDYuMzNWMjQu''@;'; put 'put ''MzNaTTksMjMuMThsOSw1LjE3LDktNS4xN1YxMi44MkwxOCw3LjY1LDksMTIuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPicpLGUuQ2xyU2hhcGVQb2Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI2LDMySDEwYTYsNiwwLDAsMS02LTZWMTBh''@;'; put 'put ''Niw2LDAsMCwxLDYtNkgyNmE2LDYsMCwwLDEsNiw2VjI2QTYsNiwwLDAsMSwyNiwzMlpNMTAsNmE0LDQsMCwwLDAtNCw0VjI2YTQsNCwwLDAsMCw0LDRIMjZhNCw0LDAsMCwwLDQtNFYxMGE0LDQsMCwwLDAtNC00WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; put 'put ''Lz5cbiAgPHBhdGggZD0iTTI2LjU2LDE1SDE1LjQ0QTEuNDMsMS40MywwLDAsMCwxNCwxNi40NHY4LjEyQTEuNDMsMS40MywwLDAsMCwxNS40NCwyNkgyNi41NkExLjQzLDEuNDMsMCwwLDAsMjgsMjQuNTZWMTYuNDRBMS40MywxLjQzLDAsMCwwLDI2LjU2LDE1Wk0yNiwyNEgxNlYxN0gyNloi''@;'; put 'put ''IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0xMi40LDE5SDEwVjEySDIwdjEuNGgydi0yQTEuNDMsMS40MywwLDAsMCwyMC41NiwxMEg5LjQ0QTEuNDMsMS40MywwLDAsMCw4LDExLjQ0djguMTJBMS40MywxLjQzLDAsMCwwLDkuNDQs''@;'; put 'put ''MjFoM1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+JyksZS5DbHJDb250cm9sTHVuPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0u''@;'; put 'put ''ODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNiwyNy41M1YxMC4zYzIuOSwxLjQzLDguMzQsMS44OCwxMiwxLjg4czkuMS0uNDUsMTItMS44OHY1LjExYy0uOTEuODItNSwyLjEzLTEyLDIuMTNBMzQuODEsMzQuODEsMCwwLDEs''@;'; put 'put ''OCwxNi4zM1YxOGE0MC44Niw0MC44NiwwLDAsMCwxMCwxLjE2YzMuNDYsMCw5LjEzLS40NSwxMi0xLjkxdjMuMjNoMlY4aDBzMCwwLDAtLjA3YzAtMy4zNS04LjgtNC4yNS0xNC00LjI1UzQsNC41OCw0LDcuOTN2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjgu''@;'; put 'put ''MjgsNi4xMywyNy44NCw2LDI3LjUzWk0xOCw1LjY4YzcuMTUsMCwxMS41MywxLjQ0LDEyLDIuMjUtLjQ2LjgxLTQuODQsMi4yNS0xMiwyLjI1UzYuMzEsOC42OSw2LDhDNi4zMSw3LjE4LDEwLjcxLDUuNjgsMTgsNS42OFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0''@;'; put 'put ''aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIuMDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cblxuICA8cGF0aCBkPSJNOCwyNC41OWEyNS41LDI1LjUsMCwwLDAsMi43''@;'; put 'put ''NS41OWwxLjIxLTEuNDFhMjQuMTMsMjQuMTMsMCwwLDEtNC0uODNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLjA5LDIySDE1LjQ2bC01LjQxLDYuMzFMMTUuNDksMzRoMTYuNmEyLDIsMCwwLDAs''@;'; put 'put ''Mi0yVjIzLjkzQTIsMiwwLDAsMCwzMi4wOSwyMlptMCwxMEgxNi4zNGwtMy41OS0zLjc3TDE2LjM4LDI0SDMyLjA5djhaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwx''@;'; put 'put ''LDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtMy0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0xOCwxNy41NEEzNC44MSwzNC44MSwwLDAsMSw4LDE2LjMzVjE4YTQwLjg2LDQwLjg2LDAsMCwwLDEwLDEuMTZjMy40''@;'; put 'put ''NiwwLDkuMTMtLjQ1LDEyLTEuOTF2My4yM2gyVjEzLjIyYTcuMzIsNy4zMiwwLDAsMS0yLC4yOHYxLjkxQzI5LjA5LDE2LjIzLDI1LDE3LjU0LDE4LDE3LjU0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9''@;'; put 'put ''Ik02LDI3LjUzVjEwLjNjMi45LDEuNDMsOC4zNCwxLjg4LDEyLDEuODhhNDcuNjYsNDcuNjYsMCwwLDAsNy4wOS0uNTIsNy40NSw3LjQ1LDAsMCwxLTEuNTEtMS44LDQ3LjQsNDcuNCwwLDAsMS01LjU4LjMyQzEwLjcxLDEwLjE4LDYuMzEsOC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIu''@;'; put 'put ''MywxLjY2LDAsMy4xNi4wOCw0LjUxLjIxYTcuNTYsNy41NiwwLDAsMSwuMjktMmMtMS43LS4xNy0zLjM4LS4yNC00LjgtLjI0LTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywyNy44NCw2LDI3LjUzWiIgY2xh''@;'; put 'put ''c3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNS0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5c''@;'; put 'put ''biAgPHBhdGggZD0iTTgsMjQuNTlhMjUuNSwyNS41LDAsMCwwLDIuNzUuNTlsMS4yMS0xLjQxYTI0LjEzLDI0LjEzLDAsMCwxLTQtLjgzWiIvPjxwYXRoIGQ9Ik0zMi4wOSwyMkgxNS40NmwtNS40MSw2LjMxTDE1LjQ5LDM0aDE2LjZhMiwyLDAsMCwwLDItMlYyMy45M0EyLDIsMCwwLDAsMzIu''@;'; put 'put ''MDksMjJabTAsMTBIMTYuMzRsLTMuNTktMy43N0wxNi4zOCwyNEgzMi4wOXY4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3''@;'; put 'put ''WiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTYsMjcuNTNWMTAuM2MyLjksMS40Myw4LjM0LDEuODgsMTIsMS44OGguNTlhMy41OSwzLjU5LDAsMCwxLC4zMi0ySDE4QzEwLjcxLDEwLjE4LDYuMzEs''@;'; put 'put ''OC42OSw2LDhjLjMyLS44LDQuNzItMi4zLDEyLTIuMywxLjIyLDAsMi4zNS4wNSwzLjQxLjEybDEuMS0xLjkxYy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMiwwLTE0LC45LTE0LDQuMjV2MTkuNmMwLDIsMy4xNywzLjE0LDYuODMsMy43Mkw4LjM4LDI4LjY4QzcsMjguMjgsNi4xMywy''@;'; put 'put ''Ny44NCw2LDI3LjUzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTgsMTYuMzNWMThhNDAuODYsNDAuODYsMCwwLDAsMTAsMS4xNmMzLjQ2LDAsOS4xMy0uNDUsMTItMS45MXYzLjIzaDJWMTUuNEgz''@;'; put 'put ''MGMtLjkxLjgyLTUsMi4xMy0xMiwyLjEzQTM0LjgxLDM0LjgxLDAsMCwxLDgsMTYuMzNaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAs''@;'; put 'put ''MCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBh''@;'; put 'put ''dGggZD0iTTE2LjExLDI3YTEsMSwwLDEsMCwxLDFBMSwxLDAsMCwwLDE2LjExLDI3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzIuMDksMjFIMzJWMTcuMzJjLTEuOSwyLjkzLTEwLjQ2LDMuMy0xNCwzLjNBNDIuNDMsNDIuNDMsMCww''@;'; put 'put ''LDEsOCwxOS41NlYxNy44OEE0MC41OSw0MC41OSwwLDAsMCwxOCwxOWM1LDAsMTMuMi0uODIsMTQtMy44MlYxMC43MmMtMi4yMSwzLjM2LTEwLjQ5LDMuNDYtMTQsMy40NkE0Mi4xMiw0Mi4xMiwwLDAsMSw4LDEzLjExVjExYTQwLjU5LDQwLjU5LDAsMCwwLDEwLDEuMTRjNSwwLDEzLjI4LS44''@;'; put 'put ''MywxNC0zLjg4VjcuODNoMGMtLjE5LTMuMjctOC44NC00LjE1LTE0LTQuMTVTNC4yMSw0LjU2LDQsNy44M0g0djE5LjdjMCwyLjE2LDMuNjQsMy4zLDcuNjMsMy44NGwyLjg0LDMsLjU5LjYyaDE3YTMsMywwLDAsMCwzLTNWMjMuOTNBMywzLDAsMCwwLDMyLjA5LDIxWk04LDI2LjA4VjI0LjRh''@;'; put 'put ''MjUuNzksMjUuNzksMCwwLDAsMy40Ni43bC0xLjI0LDEuNDRDOS40NiwyNi40Miw4LjcxLDI2LjI3LDgsMjYuMDhaTTMzLjA5LDMyYTEsMSwwLDAsMS0xLDFIMTUuOTJMMTEuNCwyOC4yMywxNS45MiwyM0gzMi4wOWExLDEsMCwwLDEsMSwxWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNv''@;'; put 'put ''bGlkLXBhdGgtMiIvPlxuXG4gIDxwYXRoIGQ9Ik0xNi4xMSwyN2ExLDEsMCwxLDAsMSwxQTEsMSwwLDAsMCwxNi4xMSwyN1oiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45''@;'; put 'put ''LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzUsMCwxMy4yLS44MiwxNC0zLjgydi0yYTcuMzQsNy4zNCwwLDAsMS00LjEyLDAsMzkuNDcsMzkuNDcsMCwwLDEtOS44OCwxQTQyLjEyLDQyLjEyLDAs''@;'; put 'put ''MCwxLDgsMTMuMTFWMTFhNDAuNTksNDAuNTksMCwwLDAsMTAsMS4xNCw0Ny43Niw0Ny43NiwwLDAsMCw3LjA5LS41MkE3LjQ1LDcuNDUsMCwwLDEsMjIuOCwzLjkyYy0xLjctLjE3LTMuMzgtLjI0LTQuOC0uMjQtNS4xNCwwLTEzLjc5Ljg4LTE0LDQuMTVINHYxOS43YzAsMi4xNiwzLjY0LDMu''@;'; put 'put ''Myw3LjYzLDMuODRsMi44NCwzLC41OS42MmgxN2EzLDMsMCwwLDAsMy0zVjIzLjkzQTMsMywwLDAsMCwzMi4wOSwyMVpNOCwyNi4wOFYyNC40YTI1Ljc5LDI1Ljc5LDAsMCwwLDMuNDYuN2wtMS4yNCwxLjQ0QzkuNDYsMjYuNDIsOC43MSwyNi4yNyw4LDI2LjA4Wk0zMy4wOSwzMmExLDEsMCww''@;'; put 'put ''LDEtMSwxSDE1LjkyTDExLjQsMjguMjMsMTUuOTIsMjNIMzIuMDlhMSwxLDAsMCwxLDEsMVoiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxjaXJjbGUgY3g9IjMwIiBjeT0iNiIgcj0iNSIgY2xhc3M9ImNsci1pLXNvbGlkLS1i''@;'; put 'put ''YWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNMTYuMTEsMjdhMSwxLDAsMSwwLDEsMUExLDEsMCwwLDAsMTYuMTEsMjdaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+''@;'; put 'put ''XG4gIDxwYXRoIGQ9Ik0zMi4wOSwyMUgzMlYxNy4zMmMtMS45LDIuOTMtMTAuNDYsMy4zLTE0LDMuM0E0Mi40Myw0Mi40MywwLDAsMSw4LDE5LjU2VjE3Ljg4QTQwLjU5LDQwLjU5LDAsMCwwLDE4LDE5YzQuODUsMCwxMi44LS43OSwxMy45MS0zLjYySDIyLjIzYTMuNjgsMy42OCwwLDAsMS0y''@;'; put 'put ''LjczLTEuMjNIMThBNDIuMTIsNDIuMTIsMCwwLDEsOCwxMy4xMVYxMWE0MC41OSw0MC41OSwwLDAsMCwxMCwxLjE0aC41OWEzLjYxLDMuNjEsMCwwLDEsLjQ2LTIuMjlsMy40Ni02Yy0xLjYtLjE1LTMuMTctLjIxLTQuNTEtLjIxLTUuMTQsMC0xMy43OS44OC0xNCw0LjE1SDR2MTkuN2MwLDIu''@;'; put 'put ''MTYsMy42NCwzLjMsNy42MywzLjg0bDIuODQsMywuNTkuNjJoMTdhMywzLDAsMCwwLDMtM1YyMy45M0EzLDMsMCwwLDAsMzIuMDksMjFaTTgsMjYuMDhWMjQuNGEyNS43OSwyNS43OSwwLDAsMCwzLjQ2LjdsLTEuMjQsMS40NEM5LjQ2LDI2LjQyLDguNzEsMjYuMjcsOCwyNi4wOFpNMzMuMDks''@;'; put 'put ''MzJhMSwxLDAsMCwxLTEsMUgxNS45MkwxMS40LDI4LjIzLDE1LjkyLDIzSDMyLjA5YTEsMSwwLDAsMSwxLDFaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywx''@;'; put 'put ''LjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMy0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAn''@;'; put 'put ''KSxlLkNsclNoYXBlTWVkaWFDaGFuZ2VyPSgwLGEuY2xySWNvblNWRykoJ1xuICA8cGF0aCBkPSJNMzAsNEg2QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlY2''@;'; put 'put ''QTIsMiwwLDAsMCwzMCw0Wk02LDMwVjZIMzBWMzBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSIyMCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiLz48cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNs''@;'; put 'put ''YXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIg''@;'; put 'put ''aGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMjcuMjIsMTBIMjB2NGEuOC44LDAsMSwwLDEuNTksMFYxMS42aDUuNjNhLjguOCwwLDEsMCwwLTEuNloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC01Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjEwIiB3aWR0aD0iOC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTciLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTgiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC04Ii8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjIyIiB3aWR0aD0iOC4xNCIg''@;'; put 'put ''aGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtOSIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEwIi8+XG5cbiAgPHJlY3QgeD0i''@;'; put 'put ''MjAiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjE4IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2Vk''@;'; put 'put ''IGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjAiIHk9IjIyIiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0''@;'; put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTAiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTUtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxNCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtNi0tYmFkZ2VkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0i''@;'; put 'put ''OC4xNCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC03LS1iYWRnZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjIiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTgtLWJhZGdlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyNiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWJhZGdlZCBjbHItaS1vdXRsaW5lLXBhdGgtOS0tYmFkZ2VkIi8+XG4gIDxwYXRoIGQ9Ik0yMCwxNGEuOC44LDAsMSwwLDEu''@;'; put 'put ''NTksMFYxMS42SDI1QTcuNzQsNy43NCwwLDAsMSwyMy42NiwxMEgyMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTEwLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMwLDEzLjVoMFYzMEg2VjZIMjIuNVY2YTcuMzcsNy4zNywwLDAsMSwuMjgtMkg2''@;'; put 'put ''QTIsMiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxMy4yMkE3LjM3LDcuMzcsMCwwLDEsMzAsMTMuNVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xy''@;'; put 'put ''LWktb3V0bGluZS1wYXRoLTExLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xMi0tYmFkZ2VkIGNsci1pLWJhZGdlIi8+XG5cbiAgPHJlY3QgeD0iMjAiIHk9IjE4IiB3aWR0''@;'; put 'put ''aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtMS0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSIyNCIgeT0iMTgiIHdpZHRoPSIyIiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0yLS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjIwIiB5PSIyMiIgd2lkdGg9IjIiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iMjQiIHk9IjIyIiB3aWR0aD0iMiIgaGVp''@;'; put 'put ''Z2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIxMCIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTUtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMTQiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC02LS1hbGVydGVkIi8+XG4gIDxyZWN0IHg9IjguODEiIHk9IjE4IiB3aWR0aD0iOC4x''@;'; put 'put ''NCIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNy0tYWxlcnRlZCIvPlxuICA8cmVjdCB4PSI4LjgxIiB5PSIyMiIgd2lkdGg9IjguMTQiIGhlaWdodD0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTgtLWFsZXJ0ZWQiLz5cbiAgPHJlY3QgeD0iOC44MSIgeT0iMjYiIHdpZHRoPSI4LjE0IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC05LS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0zMCwxNS40VjMwSDZWNkgy''@;'; put 'put ''MS4yN2wxLjE4LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTUuNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0xMC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgsMCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xMS0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuXG4gIDxwYXRoIGQ9Ik0zMCw0SDZBMiwyLDAsMCwwLDQsNlYzMGEyLDIsMCwwLDAsMiwySDcuODh2MS41N2ExLDEsMCwwLDAsMiwwVjMyaDE2djEuNTdhMSwxLDAsMCwwLDIsMFYz''@;'; put 'put ''MkgzMGEyLDIsMCwwLDAsMi0yVjZBMiwyLDAsMCwwLDMwLDRaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIySDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgy''@;'; put 'put ''NFYxOGgyWm0wLTZIMjBWMTBoNloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cblxuICA8cGF0aCBkPSJNMzAsMTMuNWE3LjQ5LDcuNDksMCwwLDEtNC0xLjE2VjE0SDIwVjEwaDMuNjZBNy40OSw3LjQ5LDAsMCwxLDIyLjUsNmE3LjM3LDcuMzcsMCwwLDEsLjI4''@;'; put 'put ''LTJINkEyLDIsMCwwLDAsNCw2VjMwYTIsMiwwLDAsMCwyLDJINy44OHYxLjU3YTEsMSwwLDAsMCwyLDBWMzJoMTZ2MS41N2ExLDEsMCwwLDAsMiwwVjMySDMwYTIsMiwwLDAsMCwyLTJWMTMuMjJBNy4zNyw3LjM3LDAsMCwxLDMwLDEzLjVaTTE3LDI4SDguODFWMjZIMTdabTAtNEg4LjgxVjIy''@;'; put 'put ''SDE3Wm0wLTRIOC44MVYxOEgxN1ptMC00SDguODFWMTRIMTdabTAtNEg4LjgxVjEwSDE3Wk0yMiwyNEgyMFYyMmgyWm0wLTRIMjBWMThoMlptNCw0SDI0VjIyaDJabTAtNEgyNFYxOGgyWiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0xLS1iYWRnZWQiLz5c''@;'; put 'put ''biAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTItLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik0yMi4yMywxNS40YTMuNjgsMy42OCwwLDAsMS0zLjE4LTUuNTFMMjIuNDUsNEg2QTIs''@;'; put 'put ''MiwwLDAsMCw0LDZWMzBhMiwyLDAsMCwwLDIsMkg3Ljg4djEuNTdhMSwxLDAsMCwwLDIsMFYzMmgxNnYxLjU3YTEsMSwwLDAsMCwyLDBWMzJIMzBhMiwyLDAsMCwwLDItMlYxNS40Wk0xNywyOEg4LjgxVjI2SDE3Wm0wLTRIOC44MVYyMkgxN1ptMC00SDguODFWMThIMTdabTAtNEg4LjgxVjE0''@;'; put 'put ''SDE3Wm0wLTRIOC44MVYxMEgxN1pNMjIsMjRIMjBWMjJoMlptMC00SDIwVjE4aDJabTQsNEgyNFYyMmgyWm0wLTRIMjRWMThoMloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYWxlcnRlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTI2Ljg1LDEuMTRsLTUuNzIs''@;'; put 'put ''OS45MUExLjI3LDEuMjcsMCwwLDAsMjIuMjMsMTNIMzMuNjhhMS4yNywxLjI3LDAsMCwwLDEuMS0xLjkxTDI5LjA2LDEuMTRBMS4yOCwxLjI4LDAsMCwwLDI2Ljg1LDEuMTRaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0yLS1hbGVydGVkIGNsci1pLWFs''@;'; put 'put ''ZXJ0Ii8+XG4gICcpLGUuQ2xyU2hhcGVUYXBlRHJpdmU9KDAsYS5jbHJJY29uU1ZHKSgnXG4gIDxwYXRoIGQ9Ik0zMiw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWOEEyLDIsMCwwLDAsMzIsNlpNNCwyOFY4SDMyVjI4WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTEzLjMzLDEzLjM1YTQuNTIsNC41MiwwLDEsMCw0LjUzLDQuNTJBNC41Myw0LjUzLDAsMCwwLDEzLjMzLDEzLjM1Wm0wLDcuNDRhMi45MiwyLjkyLDAsMSwxLDIuOTMtMi45MkEyLjkyLDIuOTIsMCwwLDEsMTMu''@;'; put 'put ''MzMsMjAuNzlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjMuNjIsMTMuMzVhNC41Miw0LjUyLDAsMSwwLDQuNTIsNC41MkE0LjUzLDQuNTMsMCwwLDAsMjMuNjIsMTMuMzVabTAsNy40NGEyLjkyLDIuOTIsMCwxLDEsMi45Mi0y''@;'; put 'put ''LjkyQTIuOTIsMi45MiwwLDAsMSwyMy42MiwyMC43OVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik02LDExVjIzLjU1SDhWMTJIMjkuMzRWMTBIN0ExLDEsMCwwLDAsNiwxMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91''@;'; put 'put ''dGxpbmUtcGF0aC00Ii8+XG5cbiAgPHBhdGggZD0iTTguODEsMTcuODdhNC41Myw0LjUzLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsOC44MSwxNy44N1ptNy40NSwwQTIuOTMsMi45MywwLDEsMSwxMy4zMywxNSwyLjkzLDIuOTMsMCwwLDEsMTYuMjYsMTcuODdaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTE5LjEsMTcuODdhNC41Miw0LjUyLDAsMSwwLDQuNTItNC41MkE0LjUzLDQuNTMsMCwwLDAsMTkuMSwxNy44N1ptNy40NCwwQTIuOTIsMi45MiwwLDEsMSwyMy42MiwxNSwy''@;'; put 'put ''LjkyLDIuOTIsMCwwLDEsMjYuNTQsMTcuODdaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTMyLDEzLjIyVjI4SDRWOEgyMi43OGE3LjM3LDcuMzcsMCwwLDEtLjI4LTJINEEyLDIsMCwwLDAsMiw4VjI4''@;'; put 'put ''YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlYxMi4zNEE3LjY1LDcuNjUsMCwwLDEsMzIsMTMuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPHBhdGggZD0iTTYsMTFWMjMuNTVIOFYxMkgyNS41MWE3LjY2''@;'; put 'put ''LDcuNjYsMCwwLDEtMS44NS0ySDdBMSwxLDAsMCwwLDYsMTFaIiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC00LS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC01LS1iYWRnZWQgY2xyLWktYmFkZ2UiLz5cblxuICA8cGF0aCBkPSJNOC44MSwxNy44N2E0LjUzLDQuNTMsMCwxLDAsNC41Mi00LjUyQTQuNTMsNC41MywwLDAsMCw4LjgxLDE3Ljg3Wm03LjQ1LDBBMi45MywyLjkzLDAsMSwxLDEzLjMzLDE1LDIuOTMsMi45MywwLDAs''@;'; put 'put ''MSwxNi4yNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik03LDEwYTEsMSwwLDAsMC0xLDFWMjMuNTVIOFYxMkgxOC41N0EzLjcsMy43LDAsMCwxLDE5LDEwWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTItLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTMzLjY4LDE1LjRIMzJWMjhINFY4SDIwLjE0bDEuMTUtMkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjE1LjM4WiIgY2xhc3M9ImNsci1p''@;'; put 'put ''LW91dGxpbmUtLWFsZXJ0ZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWFsZXJ0ZWQiLz5cbiAgPHBhdGggZD0iTTIyLjA5LDE1LjM5YTMuNjUsMy42NSwwLDAsMS0xLjgtLjU1LDQuNTEsNC41MSwwLDEsMCw3LjExLjU2SDI1LjE3YTIuOTIsMi45MiwwLDEsMS0zLjA4LDBaIiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZS0tYWxlcnRlZCBjbHItaS1vdXRsaW5lLXBhdGgtNC0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMjYuODUsMS4xNGwtNS43Miw5LjkxQTEuMjcsMS4yNywwLDAsMCwyMi4yMywxM0gzMy42OGExLjI3LDEuMjcsMCwwLDAsMS4xLTEuOTFMMjkuMDYsMS4xNEExLjI4LDEuMjgs''@;'; put 'put ''MCwwLDAsMjYuODUsMS4xNFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1hbGVydGVkIGNsci1pLW91dGxpbmUtcGF0aC01LS1hbGVydGVkIGNsci1pLWFsZXJ0Ii8+XG5cbiAgPHBhdGggZD0iTTMyLDZINEEyLDIsMCwwLDAsMiw4VjI4YTIsMiwwLDAsMCwyLDJIMzJhMiwyLDAsMCwwLDItMlY4''@;'; put 'put ''QTIsMiwwLDAsMCwzMiw2Wk0zMCwyNEg2VjEySDMwWiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMTIuMjEsMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMTIuMjEsMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwxMi4yMSwx''@;'; put 'put ''NloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTIzLjc5LDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDIzLjc5LDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMjMuNzksMTZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWkt''@;'; put 'put ''c29saWQtcGF0aC0zIi8+XG5cbiAgPHBhdGggZD0iTTEyLjIxLDIzYTUsNSwwLDEsMC01LTVBNSw1LDAsMCwwLDEyLjIxLDIzWm0wLTdhMiwyLDAsMSwxLTIsMkEyLDIsMCwwLDEsMTIuMjEsMTZaIiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTEtLWJhZGdl''@;'; put 'put ''ZCIvPlxuICA8cGF0aCBkPSJNMjMuNzksMjNhNSw1LDAsMSwwLTUtNUE1LDUsMCwwLDAsMjMuNzksMjNabTAtN2EyLDIsMCwxLDEtMiwyQTIsMiwwLDAsMSwyMy43OSwxNloiIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIi8+XG4gIDxwYXRo''@;'; put 'put ''IGQ9Ik0zMCwxMy41VjI0SDZWMTJIMjUuNTFhNy40OSw3LjQ5LDAsMCwxLTMtNkg0QTIsMiwwLDAsMCwyLDhWMjhhMiwyLDAsMCwwLDIsMkgzMmEyLDIsMCwwLDAsMi0yVjEyLjM0QTcuNDksNy40OSwwLDAsMSwzMCwxMy41WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0zLS1iYWRnZWQiLz5cbiAgPGNpcmNsZSBjeD0iMzAiIGN5PSI2IiByPSI1IiBjbGFzcz0iY2xyLWktc29saWQtLWJhZGdlZCBjbHItaS1zb2xpZC1wYXRoLTQtLWJhZGdlZCBjbHItaS1iYWRnZSIvPlxuXG4gIDxwYXRoIGQ9Ik03LjIsMThhNSw1LDAsMSwwLDUtNUE1LDUsMCww''@;'; put 'put ''LDAsNy4yLDE4Wm03LDBhMiwyLDAsMSwxLTItMkEyLDIsMCwwLDEsMTQuMjIsMThaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0xLS1hbGVydGVkIi8+XG4gIDxwYXRoIGQ9Ik0xOC43OCwxOGE1LDUsMCwxLDAsOS4yNy0yLjZIMjIuMjNhMy43MSwzLjcx''@;'; put 'put ''LDAsMCwxLTIuMTctLjcxQTUsNSwwLDAsMCwxOC43OCwxOFptNS0yYTIsMiwwLDEsMS0yLDJBMiwyLDAsMCwxLDIzLjc5LDE2WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlkLXBhdGgtMi0tYWxlcnRlZCIvPlxuICA8cGF0aCBkPSJNMzMuNjgsMTUuNEgzMFYyNEg2''@;'; put 'put ''VjEySDE4LjU3YTMuNjUsMy42NSwwLDAsMSwuNDgtMi4xMUwyMS4yOSw2SDRBMiwyLDAsMCwwLDIsOFYyOGEyLDIsMCwwLDAsMiwySDMyYTIsMiwwLDAsMCwyLTJWMTUuMzhaIiBjbGFzcz0iY2xyLWktc29saWQtLWFsZXJ0ZWQgY2xyLWktc29saWQtcGF0aC0zLS1hbGVydGVkIi8+XG4gIDxw''@;'; put 'put ''YXRoIGQ9Ik0yNi44NSwxLjE0bC01LjcyLDkuOTFBMS4yNywxLjI3LDAsMCwwLDIyLjIzLDEzSDMzLjY4YTEuMjcsMS4yNywwLDAsMCwxLjEtMS45MUwyOS4wNiwxLjE0QTEuMjgsMS4yOCwwLDAsMCwyNi44NSwxLjE0WiIgY2xhc3M9ImNsci1pLXNvbGlkLS1hbGVydGVkIGNsci1pLXNvbGlk''@;'; put 'put ''LXBhdGgtNC0tYWxlcnRlZCBjbHItaS1hbGVydCIvPlxuICAnKSxlLkNsclNoYXBlQW5pbWF0aW9uPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMC4xNiwzMS43MWE0LjQsNC40LDAsMCwxLTQuNjQtMUE0LjM0LDQuMzQsMCwwLDEsNC4yMywyNy42YTQuNDEsNC40MSwwLDAsMSwuMTgt''@;'; put 'put ''MS4yLDExLjYxLDExLjYxLDAsMCwxLTEtMi41Niw2LjQsNi40LDAsMCwwLDkuMzMsOC42M0ExMS41NSwxMS41NSwwLDAsMSwxMC4xNiwzMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0xOC40MSwyNy42OGE3LjYxLDcuNjEs''@;'; put 'put ''MCwwLDEtOS4wOC0xLjI2LDcuNTgsNy41OCwwLDAsMS0xLjI3LTkuMDYsMTQuMjYsMTQuMjYsMCwwLDEtLjM3LTIuODUsOS41OCw5LjU4LDAsMCwwLC4yMiwxMy4zMyw5LjYzLDkuNjMsMCwwLDAsMTMuMzUuMjJBMTQuNDYsMTQuNDYsMCwwLDEsMTguNDEsMjcuNjhaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNjYsMjYuMjFhMTIuMSwxMi4xLDAsMSwxLDguNTctMy41NGgwQTEyLjExLDEyLjExLDAsMCwxLDIxLjY2LDI2LjIxWk0yMS42Niw0QTEwLjExLDEwLjExLDAsMCwwLDExLjU0LDE0LjExYTEwLDEwLDAsMCww''@;'; put 'put ''LDMsNy4xNCwxMC4xMiwxMC4xMiwwLDAsMCwxNC4zMSwwQTEwLjExLDEwLjExLDAsMCwwLDIxLjY2LDRabTcuODYsMThoMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIFxuICA8cGF0aCBkPSJNMy41LDIzLjc3YTYuNDEsNi40MSwwLDAsMCw5LjMz''@;'; put 'put ''LDguNjdBMTEuNjUsMTEuNjUsMCwwLDEsMy41LDIzLjc3WiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNNy42OCwxNC41M2E5LjYsOS42LDAsMCwwLDEzLjQsMTMuN0ExNC4xMSwxNC4xMSwwLDAsMSw3LjY4LDE0LjUzWiIgY2xhc3M9ImNs''@;'; put 'put ''ci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEuNzgsMkExMi4xMiwxMi4xMiwwLDEsMSw5LjY2LDE0LjE1LDEyLjEyLDEyLjEyLDAsMCwxLDIxLjc4LDIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTMiLz5cbiAgJyksZS5DbHJTaGFw''@;'; put 'put ''ZUNpQ2Q9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTIzLjUzLDE5LjgxYTcuNDUsNy40NSwwLDAsMS0xLjY1LS4xOCwxMC40OCwxMC40OCwwLDAsMSwuNzIsMi4xM2MuMywwLC42MSwwLC45MywwYTkuNTIsOS41MiwwLDAsMCwzLS40OWwtLjkzLTEuODFBNy42Nyw3LjY3LDAsMCwxLDIz''@;'; put 'put ''LjUzLDE5LjgxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTE4LjM2LDE3Ljg3LDE4LDE3LjQ5YTcuNCw3LjQsMCwwLDEtMi4yLTUuOTIsNy4zMSw3LjMxLDAsMCwxLDEuNTQtNEwxNy4yNiw5QTEsMSwwLDAsMCwxOC4xNywxMGgu''@;'; put 'put ''MDlhMSwxLDAsMCwwLDEtLjkxTDE5LjYsNWExLDEsMCwwLDAtLjI5LS43OUExLDEsMCwwLDAsMTguNTIsNGwtNC4wOS4zNWExLDEsMCwwLDAsLjE3LDJsMS4yOS0uMTFhOS40NSw5LjQ1LDAsMCwwLTIuMDUsNS4zMiw5LjI4LDkuMjgsMCwwLDAsMi42Nyw3LjI2bC4zMS4zN2E3LjMzLDcuMzMs''@;'; put 'put ''MCwwLDEsMi4wNiw0LjkxLDcuMzksNy4zOSwwLDAsMS0uMjYsMi40N2wxLjguOTFhOC43Niw4Ljc2LDAsMCwwLC40NS0zLjUxQTkuMjgsOS4yOCwwLDAsMCwxOC4zNiwxNy44N1oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMi40''@;'; put 'put ''LDE3LjkxLDMxLjE5LDE4QTkuNjUsOS42NSwwLDAsMCwyMy41MywyLjQ1YTkuMzMsOS4zMywwLDAsMC0zLC40OWwuOTEsMS44YTcuNjcsNy42NywwLDAsMSw5Ljc2LDcuMzksNy41OCw3LjU4LDAsMCwxLTEuNjUsNC43MmwuMS0xLjU0YTEsMSwwLDEsMC0yLS4xM2wtLjI4LDQuMDhhMSwxLDAs''@;'; put 'put ''MCwwLC4zMS43OC45NC45NCwwLDAsMCwuNjkuMjhoLjFsNC4wOC0uNDJhMSwxLDAsMCwwLC45LTEuMUExLDEsMCwwLDAsMzIuNCwxNy45MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik00LjA3LDIwLjQ0aC4wOGw0LjA5LS4zNWEx''@;'; put 'put ''LDEsMCwxLDAtLjE3LTJsLTEuMzkuMTJhNy42Myw3LjYzLDAsMCwxLDQuNTItMS40OSw3LjksNy45LDAsMCwxLDEuNjMuMTgsMTAuMjMsMTAuMjMsMCwwLDEtLjcxLTIuMTNjLS4zLDAtLjYxLDAtLjkyLDBhOS42Niw5LjY2LDAsMCwwLTUuOSwybC4xMi0xLjMxYTEsMSwwLDAsMC0uOTItMS4w''@;'; put 'put ''OCwxLDEsMCwwLDAtMS4wOC45MWwtLjM1LDQuMDhhMSwxLDAsMCwwLDEsMS4wOFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xOC40MiwyOC4yM2wtNC4wOS4yN2ExLDEsMCwwLDAsLjEzLDJMMTYsMzAuMzlhNy43MSw3LjcxLDAs''@;'; put 'put ''MCwxLTEyLjU0LTYsNy42LDcuNiwwLDAsMSwuMjktMkwyLDIxLjQ2YTkuNTksOS41OSwwLDAsMC0uNDcsMi45NUE5LjcsOS43LDAsMCwwLDE3LjE5LDMybC0uMTIsMS4xOGExLDEsMCwwLDAsLjg5LDEuMWguMTFhMSwxLDAsMCwwLDEtLjlsLjQyLTQuMDZhMSwxLDAsMCwwLTEuMDYtMS4xWiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxlLkNsclNoYXBlRmlsZVNoYXJlMj0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjUsNEg3LjgzQTEuODksMS44OSwwLDAsMCw2LDUuOTFWMzAuMDlBMS44OSwxLjg5LDAsMCwwLDcuODMsMzJIMjguMTdB''@;'; put 'put ''MS44NywxLjg3LDAsMCwwLDMwLDMwLjA5VjlaTTI0LDUuNzgsMjguMiwxMEgyNFpNOCwzMFY2SDIydjZoNlYzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIi8+XG4gIDxwYXRoIGQ9Ik0yMiwyMS44MWEyLjExLDIuMTEsMCwwLDAtMS40NC42MmwtNS43Mi0y''@;'; put 'put ''LjY2di0uNDRsNS42Ni0yLjY1YTIuMDgsMi4wOCwwLDEsMCwuMDYtMi45NGgwYTIuMTQsMi4xNCwwLDAsMC0uNjQsMS40OHYuMjNsLTUuNjQsMi42NmEyLjA4LDIuMDgsMCwxLDAtLjA4LDIuOTVsLjA4LS4wOCw1LjY3LDIuNjZ2LjNBMi4wOSwyLjA5LDAsMSwwLDIyLDIxLjg0WiIgY2xhc3M9''@;'; put 'put ''ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0yNSw0LjA2SDcuODNBMS44OSwxLjg5LDAsMCwwLDYsNlYzMC4xNWExLjg5LDEuODksMCwwLDAsMS44MywxLjkxSDI4LjE3QTEuODcsMS44NywwLDAsMCwzMCwzMC4xNVY5Wk0yMiwyNmEyLjA5''@;'; put 'put ''LDIuMDksMCwwLDEtMi4xLTIuMDh2LS4zTDE0LjI3LDIxbC0uMDguMDhhMi4wOCwyLjA4LDAsMSwxLC4wOC0yLjk1bDUuNjQtMi42NnYtLjIzYTIuMTQsMi4xNCwwLDAsMSwuNjQtMS40OGgwYTIuMDgsMi4wOCwwLDEsMS0uMDYsMi45NGwtNS42NiwyLjY1di40NGw1LjcyLDIuNjZBMi4xMSwy''@;'; put 'put ''LjExLDAsMCwxLDIyLDIxLjgxbDAsMEEyLjA5LDIuMDksMCwwLDEsMjIsMjZabTItMTZWNS44NGw0LjIsNC4yMloiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz4nKSxlLlRlY2hub2xvZ3lTaGFwZXM9eyJydWxlci1wZW5jaWwiOmUuQ2xyU2hhcGVSdWxlclBlbmNp''@;'; put 'put ''bCwicGhvbmUtaGFuZHNldCI6ZS5DbHJTaGFwZVBob25lSGFuZHNldCwibm8td2lmaSI6ZS5DbHJTaGFwZU5vV2lmaSxpbnN0YWxsOmUuQ2xyU2hhcGVJbnN0YWxsLHVuaW5zdGFsbDplLkNsclNoYXBlVW5pbnN0YWxsLGxheWVyczplLkNsclNoYXBlTGF5ZXJzLGJsb2NrOmUuQ2xyU2hhcGVC''@;'; put 'put ''bG9jaywiYmxvY2tzLWdyb3VwIjplLkNsclNoYXBlQmxvY2tzR3JvdXAsYnVuZGxlOmUuQ2xyU2hhcGVCdW5kbGUsd2lmaTplLkNsclNoYXBlV2lmaSwicmFjay1zZXJ2ZXIiOmUuQ2xyU2hhcGVSYWNrU2VydmVyLCJoYXJkLWRpc2siOmUuQ2xyU2hhcGVIYXJkRGlzaywiYmFja3VwLXJlc3Rv''@;'; put 'put ''cmUiOmUuQ2xyU2hhcGVCYWNrdXBSZXN0b3JlLGJhY2t1cDplLkNsclNoYXBlQmFja3VwLGRldmljZXM6ZS5DbHJTaGFwZURldmljZXMsa2V5Ym9hcmQ6ZS5DbHJTaGFwZUtleWJvYXJkLG1vdXNlOmUuQ2xyU2hhcGVNb3VzZSxkYXNoYm9hcmQ6ZS5DbHJTaGFwZURhc2hib2FyZCxob3N0OmUu''@;'; put 'put ''Q2xyU2hhcGVIb3N0LHN0b3JhZ2U6ZS5DbHJTaGFwZVN0b3JhZ2UsY2x1c3RlcjplLkNsclNoYXBlQ2x1c3RlcixhcHBsaWNhdGlvbnM6ZS5DbHJTaGFwZUFwcGxpY2F0aW9ucyxidWlsZGluZzplLkNsclNoYXBlQnVpbGRpbmcsY3B1OmUuQ2xyU2hhcGVDUFUsbWVtb3J5OmUuQ2xyU2hhcGVN''@;'; put 'put ''ZW1vcnksImRhdGEtY2x1c3RlciI6ZS5DbHJTaGFwZURhdGFDbHVzdGVyLCJyZXNvdXJjZS1wb29sIjplLkNsclNoYXBlUmVzb3VyY2VQb29sLHNoaWVsZDplLkNsclNoYXBlU2hpZWxkLCJzaGllbGQtY2hlY2siOmUuQ2xyU2hhcGVTaGllbGRDaGVjaywic2hpZWxkLXgiOmUuQ2xyU2hhcGVT''@;'; put 'put ''aGllbGRYLGltcG9ydDplLkNsclNoYXBlSW1wb3J0LGV4cG9ydDplLkNsclNoYXBlRXhwb3J0LCJ1cGxvYWQtY2xvdWQiOmUuQ2xyU2hhcGVVcGxvYWRDbG91ZCwiZG93bmxvYWQtY2xvdWQiOmUuQ2xyU2hhcGVEb3dubG9hZENsb3VkLHBsdWdpbjplLkNsclNoYXBlUGx1Z2luLGZsb3BweTpl''@;'; put 'put ''LkNsclNoYXBlRmxvcHB5LGNvbXB1dGVyOmUuQ2xyU2hhcGVDb21wdXRlcixkaXNwbGF5OmUuQ2xyU2hhcGVEaXNwbGF5LHRlcm1pbmFsOmUuQ2xyU2hhcGVUZXJtaW5hbCxjb2RlOmUuQ2xyU2hhcGVDb2RlLGFwcGxpY2F0aW9uOmUuQ2xyU2hhcGVBcHBsaWNhdGlvbixiYXR0ZXJ5OmUuQ2xy''@;'; put 'put ''U2hhcGVCYXR0ZXJ5LG1vYmlsZTplLkNsclNoYXBlTW9iaWxlLHRhYmxldDplLkNsclNoYXBlVGFibGV0LCJuZXR3b3JrLWdsb2JlIjplLkNsclNoYXBlTmV0d29ya0dsb2JlLCJuZXR3b3JrLXNldHRpbmdzIjplLkNsclNoYXBlTmV0d29ya1NldHRpbmdzLCJuZXR3b3JrLXN3aXRjaCI6ZS5D''@;'; put 'put ''bHJTaGFwZU5ldHdvcmtTd2l0Y2gscm91dGVyOmUuQ2xyU2hhcGVSb3V0ZXIsdm06ZS5DbHJTaGFwZVZNLCJ2bXctYXBwIjplLkNsclNoYXBlVk1XQXBwLGNlcnRpZmljYXRlOmUuQ2xyU2hhcGVDZXJ0aWZpY2F0ZSxhcmNoaXZlOmUuQ2xyU2hhcGVBcmNoaXZlLHVuYXJjaGl2ZTplLkNsclNo''@;'; put 'put ''YXBlVW5hcmNoaXZlLGNvbm5lY3Q6ZS5DbHJTaGFwZUNvbm5lY3QsZGlzY29ubmVjdDplLkNsclNoYXBlRGlzY29ubmVjdCxsaW5rOmUuQ2xyU2hhcGVMaW5rLHVubGluazplLkNsclNoYXBlVW5saW5rLCJjbG91ZC1uZXR3b3JrIjplLkNsclNoYXBlQ2xvdWROZXR3b3JrLCJjbG91ZC1zY2Fs''@;'; put 'put ''ZSI6ZS5DbHJTaGFwZUNsb3VkU2NhbGUsImNsb3VkLXRyYWZmaWMiOmUuQ2xyU2hhcGVDbG91ZFRyYWZmaWMsImNvbnRyb2wtbHVuIjplLkNsckNvbnRyb2xMdW4sZGVwbG95OmUuQ2xyU2hhcGVEZXBsb3ksaGVsaXg6ZS5DbHJTaGFwZUhlbGl4LGZsYXNrOmUuQ2xyU2hhcGVGbGFzayxhZG1p''@;'; put 'put ''bmlzdHJhdG9yOmUuQ2xyU2hhcGVBZG1pbmlzdHJhdG9yLCJoYXJkLWRyaXZlIjplLkNsclNoYXBlSGFyZERyaXZlLCJoYXJkLWRyaXZlLWRpc2tzIjplLkNsclNoYXBlSGFyZERyaXZlRGlza3MsbnZtZTplLkNsclNoYXBlTlZNZSxzc2Q6ZS5DbHJTaGFwZVNTRCxibHVldG9vdGg6ZS5DbHJT''@;'; put 'put ''aGFwZUJsdWV0b290aCwiYmx1ZXRvb3RoLW9mZiI6ZS5DbHJTaGFwZUJsdWV0b290aE9mZiwicHJvY2Vzcy1vbi12bSI6ZS5DbHJTaGFwZVByb2Nlc3NPblZNLCJhc3NpZ24tdXNlciI6ZS5DbHJTaGFwZUFzc2lnblVzZXIsYXRvbTplLkNsclNoYXBlQXRvbSwiYmFyLWNvZGUiOmUuQ2xyU2hh''@;'; put 'put ''cGVCYXJDb2RlLCJjZC1kdmQiOmUuQ2xyU2hhcGVDZER2ZCxjb250YWluZXI6ZS5DbHJTaGFwZUNvbnRhaW5lciwiY29udGFpbmVyLXZvbHVtZSI6ZS5DbHJTaGFwZUNvbnRhaW5lclZvbHVtZSwiZmlsZS1zaGFyZSI6ZS5DbHJTaGFwZUZpbGVTaGFyZSwicXItY29kZSI6ZS5DbHJTaGFwZVFy''@;'; put 'put ''Q29kZSx1c2I6ZS5DbHJTaGFwZVVzYixyYWRhcjplLkNsclNoYXBlUmFkYXIsY2FwYWNpdG9yOmUuQ2xyU2hhcGVDYXBhY2l0b3Isc3F1aWQ6ZS5DbHJTaGFwZVNxdWlkLGluZHVjdG9yOmUuQ2xyU2hhcGVJbmR1Y3RvcixyZXNpc3RvcjplLkNsclNoYXBlUmVzaXN0b3IsImhvc3QtZ3JvdXAi''@;'; put 'put ''OmUuQ2xyU2hhcGVIb3N0R3JvdXAsInN0b3JhZ2UtYWRhcHRlciI6ZS5DbHJTaGFwZVN0b3JhZ2VBZGFwdGVyLCJub2RlLWdyb3VwIjplLkNsclNoYXBlTm9kZUdyb3VwLG5vZGVzOmUuQ2xyU2hhcGVOb2RlcyxuYW1lc3BhY2U6ZS5DbHJTaGFwZU5hbWVzcGFjZSxub2RlOmUuQ2xyU2hhcGVO''@;'; put 'put ''b2RlLHBvZDplLkNsclNoYXBlUG9kLCJtZWRpYS1jaGFuZ2VyIjplLkNsclNoYXBlTWVkaWFDaGFuZ2VyLCJ0YXBlLWRyaXZlIjplLkNsclNoYXBlVGFwZURyaXZlLGFuaW1hdGlvbjplLkNsclNoYXBlQW5pbWF0aW9uLCJjaS1jZCI6ZS5DbHJTaGFwZUNpQ2QsImZpbGUtc2hhcmUtMiI6ZS5D''@;'; put 'put ''bHJTaGFwZUZpbGVTaGFyZTJ9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsInNlcnZlciIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRlY2hub2xvZ3lTaGFwZXMuaG9zdCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsImNvbW1h''@;'; put 'put ''bmQiLCgwLHIuZGVzY3JpcHRvckNvbmZpZykoZS5UZWNobm9sb2d5U2hhcGVzLnRlcm1pbmFsKSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywibW9iaWxlLXBob25lIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlcy5tb2JpbGUpKSxP''@;'; put 'put ''YmplY3QuZGVmaW5lUHJvcGVydHkoZS5UZWNobm9sb2d5U2hhcGVzLCJsaWNlbnNlIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlcy5jZXJ0aWZpY2F0ZSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsImRpc2Nvbm5lY3RlZCIsKDAs''@;'; put 'put ''ci5kZXNjcmlwdG9yQ29uZmlnKShlLlRlY2hub2xvZ3lTaGFwZXNbIm5vLXdpZmkiXSkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRlY2hub2xvZ3lTaGFwZXMsInJlY2VpdmVyIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1sicGhvbmUtaGFuZHNldCJdKSks''@;'; put 'put ''T2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywiZGVzaWduIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1sicnVsZXItcGVuY2lsIl0pKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZS5UZWNobm9sb2d5U2hhcGVzLCJkbmEiLCgwLHIuZGVz''@;'; put 'put ''Y3JpcHRvckNvbmZpZykoZS5UZWNobm9sb2d5U2hhcGVzLmhlbGl4KSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVGVjaG5vbG9neVNoYXBlcywiZm9sZGVyLXNoYXJlIiwoMCxyLmRlc2NyaXB0b3JDb25maWcpKGUuVGVjaG5vbG9neVNoYXBlc1siZmlsZS1zaGFyZSJdKSksInVuZGVmaW5l''@;'; put 'put ''ZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5oYXNPd25Qcm9wZXJ0eSgiQ2xhcml0eUljb25zIikmJndpbmRvdy5DbGFyaXR5SWNvbnMuYWRkKGUuVGVjaG5vbG9neVNoYXBlcyl9LCIuL3Byb2plY3RzL2ljb25zL3NyYy9zaGFwZXMvdGV4dC1lZGl0LXNoYXBlcy50cyI6ZnVuY3Rpb24oQSxl''@;'; put 'put ''LGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5UZXh0RWRpdFNoYXBlcz1lLkNsclNoYXBlU3VwZXJzY3JpcHQ9ZS5DbHJTaGFwZVN1YnNjcmlwdD1lLkNsclNoYXBlU3RyaWtldGhyb3VnaD1lLkNsclNoYXBlSW5kZW50''@;'; put 'put ''PWUuQ2xyU2hhcGVPdXRkZW50PWUuQ2xyU2hhcGVIaWdobGlnaHRlcj1lLkNsclNoYXBlVGV4dENvbG9yPWUuQ2xyU2hhcGVMYW5ndWFnZT1lLkNsclNoYXBlQWxpZ25Ub3A9ZS5DbHJTaGFwZUFsaWduTWlkZGxlPWUuQ2xyU2hhcGVBbGlnbkJvdHRvbT1lLkNsclNoYXBlVW5kZXJsaW5lPWUu''@;'; put 'put ''Q2xyU2hhcGVUZXh0PWUuQ2xyU2hhcGVBbGlnblJpZ2h0VGV4dD1lLkNsclNoYXBlQmxvY2tRdW90ZT1lLkNsclNoYXBlUGFpbnRSb2xsZXI9ZS5DbHJTaGFwZU51bWJlckxpc3Q9ZS5DbHJTaGFwZUFsaWduTGVmdFRleHQ9ZS5DbHJTaGFwZUp1c3RpZnlUZXh0PWUuQ2xyU2hhcGVJdGFsaWM9''@;'; put 'put ''ZS5DbHJTaGFwZUFsaWduUmlnaHQ9ZS5DbHJTaGFwZUFsaWduTGVmdD1lLkNsclNoYXBlQWxpZ25DZW50ZXI9ZS5DbHJTaGFwZUZvbnRTaXplPWUuQ2xyU2hhcGVDaGVja2JveExpc3Q9ZS5DbHJTaGFwZUNlbnRlclRleHQ9ZS5DbHJTaGFwZUJ1bGxldExpc3Q9ZS5DbHJTaGFwZUJvbGQ9dm9p''@;'; put 'put ''ZCAwLGw9bCgiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvc3ZnLXRhZy1nZW5lcmF0b3IudHMiKSxlLkNsclNoYXBlQm9sZD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMjIuNDMsMTcuNTRhNC42Nyw0LjY3LDAsMCwwLDIuOC00LjM3di0uMDZhNC40Myw0LjQzLDAsMCwwLTEuMzEt''@;'; put 'put ''My4yNSw3LjA5LDcuMDksMCwwLDAtNS4xMy0xLjczaC03QTEuNzEsMS43MSwwLDAsMCwxMCw5Ljg2VjI2YTEuNzIsMS43MiwwLDAsMCwxLjc0LDEuNzRoNy4zM2M0LjM3LDAsNy4yNS0xLjg4LDcuMjUtNS4zOFYyMi4zQzI2LjMyLDE5LjY0LDI0LjczLDE4LjMyLDIyLjQzLDE3LjU0Wk0xMy42''@;'; put 'put ''OCwxMS40aDQuNTRjMiwwLDMuMTUuODksMy4xNSwyLjMzdi4wNmMwLDEuNjgtMS4zNiwyLjQ5LTMuMzgsMi40OUgxMy42OFpNMjIuMzcsMjJjMCwxLjU5LTEuMzEsMi40My0zLjQ2LDIuNDNIMTMuNjhWMTkuNjJoNWMyLjQ5LDAsMy42OS44OCwzLjY5LDIuMzdaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQnVsbGV0TGlzdD0oMCxsLmNsckljb25TVkcpKCc8Y2lyY2xlIGN4PSI1LjIxIiBjeT0iOS4xNyIgcj0iMiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PGNpcmNsZSBjeD0iNS4y''@;'; put 'put ''MSIgY3k9IjE3LjE3IiByPSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48Y2lyY2xlIGN4PSI1LjIxIiBjeT0iMjUuMTciIHI9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMi40Miw5YTEs''@;'; put 'put ''MSwwLDAsMC0xLTFIMTB2MkgzMS40MkExLDEsMCwwLDAsMzIuNDIsOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zMS40MiwxNkgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNSIgLz48cGF0aCBkPSJNMzEuNDIsMjRIMTB2MkgzMS40MmExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTYiIC8+JyksZS5DbHJTaGFwZUNlbnRlclRleHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMwLjg4LDhI''@;'; put 'put ''NS4xMmExLjEsMS4xLDAsMCwwLDAsMi4ySDMwLjg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMjUuNSwxNi4yYTEuMSwxLjEsMCwxLDAsMC0yLjJoLTE1YTEuMSwxLjEsMCwxLDAsMCwyLjJaIiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAuMjUsMjBINS43NWExLjEsMS4xLDAsMCwwLDAsMi4yaDI0LjVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRo''@;'; put 'put ''IGQ9Ik0yNC44OCwyNkgxMS4xMmExLjEsMS4xLDAsMSwwLDAsMi4ySDI0Ljg4YTEuMSwxLjEsMCwxLDAsMC0yLjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlQ2hlY2tib3hMaXN0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9''@;'; put 'put ''Ik0zMS40MywxNkgxMHYySDMxLjQzYTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEuNDMsMjRIMTB2MkgzMS40M2ExLDEsMCwwLDAsMC0yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTIiIC8+PHBhdGggZD0iTTE1LjQ1LDEwaDE2YTEsMSwwLDAsMCwwLTJoLTE0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTE3LjUsMy40MmExLjA5LDEuMDksMCwwLDAtMS41NSwwTDcuODksMTEuNDgsNC41MSw3Ljg0QTEuMSwx''@;'; put 'put ''LjEsMCwxLDAsMi45LDkuMzRsNC45NCw1LjNMMTcuNSw1QTEuMSwxLjEsMCwwLDAsMTcuNSwzLjQyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiIC8+JyksZS5DbHJTaGFwZUZvbnRTaXplPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMSw5LjA4QTEu''@;'; put 'put ''MTMsMS4xMywwLDAsMCwxOS44Niw4SDQuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMTlIMTFWMjdhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxMC4xOWg2LjY5QTEuMTQsMS4xNCwwLDAsMCwyMSw5LjA4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGgg''@;'; put 'put ''ZD0iTTMwLjY3LDE1SDIxLjE1YTEuMSwxLjEsMCwxLDAsMCwyLjE5SDI1VjI2LjVhMS4wOSwxLjA5LDAsMCwwLDIuMTcsMFYxNy4yM2gzLjU0YTEuMSwxLjEsMCwxLDAsMC0yLjE5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZUFs''@;'; put 'put ''aWduQ2VudGVyPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwyMEgxOVYxNmg2YTEsMSwwLDAsMCwxLTFWN2ExLDEsMCwwLDAtMS0xSDE5VjJhMSwxLDAsMCwwLTIsMFY2SDExYTEsMSwwLDAsMC0xLDF2OGExLDEsMCwwLDAsMSwxaDZ2NEg1YTEsMSwwLDAsMC0xLDF2OGExLDEsMCww''@;'; put 'put ''LDAsMSwxSDE3djRhMSwxLDAsMCwwLDIsMFYzMEgzMWExLDEsMCwwLDAsMS0xVjIxQTEsMSwwLDAsMCwzMSwyMFpNMTIsMTRWOEgyNHY2Wk0zMCwyOEg2VjIySDMwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+JyksZS5DbHJTaGFwZUFsaWduTGVmdD0o''@;'; put 'put ''MCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNSwxQTEsMSwwLDAsMCw0LDJWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCw1LDFaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEsMjBIOFYzMEgzMWExLDEsMCwwLDAsMS0xVjIx''@;'; put 'put ''QTEsMSwwLDAsMCwzMSwyMFptLTEsOEgxMFYyMkgzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yNCwxNVY3YTEsMSwwLDAsMC0xLTFIOFYxNkgyM0ExLDEsMCwwLDAsMjQsMTVabS0yLTFIMTBWOEgyMloiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVBbGlnblJpZ2h0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMSwxYTEsMSwwLDAsMC0xLDFWMzRhMSwxLDAsMCwwLDIsMFYyQTEsMSwwLDAsMCwzMSwxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTQsMjF2OGExLDEsMCwwLDAsMSwxSDI4VjIwSDVBMSwxLDAsMCwwLDQsMjFabTIsMUgyNnY2SDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTIsN3Y4YTEsMSwwLDAsMCwxLDFIMjhW''@;'; put 'put ''NkgxM0ExLDEsMCwwLDAsMTIsN1ptMiwxSDI2djZIMTRaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlSXRhbGljPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yNC40Miw4SDE3LjFhMS4xLDEuMSwwLDEsMCwwLDIuMTloMi4x''@;'; put 'put ''M0wxMy4xMSwyNS41NUgxMC40N2ExLjEsMS4xLDAsMSwwLDAsMi4xOUgxNy44YTEuMSwxLjEsMCwxLDAsMC0yLjE5SDE1LjUxbDYuMTMtMTUuMzZoMi43OGExLjEsMS4xLDAsMSwwLDAtMi4xOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPicpLGUuQ2xy''@;'; put 'put ''U2hhcGVKdXN0aWZ5VGV4dD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNNiwxMC4ySDMxLjc1YTEuMSwxLjEsMCwxLDAsMC0yLjJINmExLjEsMS4xLDAsMSwwLDAsMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTMxLjc1LDE0''@;'; put 'put ''SDZhMS4xLDEuMSwwLDEsMCwwLDIuMkgzMS43NWExLjEsMS4xLDAsMSwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTMxLjEyLDIwSDYuNjJhMS4xLDEuMSwwLDEsMCwwLDIuMmgyNC41YTEuMSwxLjEsMCwxLDAsMC0yLjJa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMyIgLz48cGF0aCBkPSJNMzAuNDUsMjUuODNINi42YTEuMSwxLjEsMCwwLDAsMCwyLjJIMzAuNDVhMS4xLDEuMSwwLDAsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAv''@;'; put 'put ''PicpLGUuQ2xyU2hhcGVBbGlnbkxlZnRUZXh0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC4yNSwyNkg2djIuMkgyMC4yNWExLjEsMS4xLDAsMCwwLDAtMi4yWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTI4LDIwSDZ2Mi4y''@;'; put 'put ''SDI4QTEuMSwxLjEsMCwwLDAsMjgsMjBaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjIuNiwxNS4xQTEuMSwxLjEsMCwwLDAsMjEuNSwxNEg2djIuMkgyMS41QTEuMSwxLjEsMCwwLDAsMjIuNiwxNS4xWiIgY2xhc3M9ImNsci1pLW91''@;'; put 'put ''dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTI5LjI1LDhINnYyLjJIMjkuMjVhMS4xLDEuMSwwLDEsMCwwLTIuMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPicpLGUuQ2xyU2hhcGVOdW1iZXJMaXN0PSgwLGwuY2xySWNvblNW''@;'; put 'put ''RykoJzxwb2x5Z29uIHBvaW50cz0iNS40NiA3LjQxIDUuNDYgMTEuNTYgNi42NSAxMS41NiA2LjY1IDYuMDUgNS43IDYuMDUgNC4wNSA3LjE2IDQuNTIgOCA1LjQ2IDcuNDEiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjU3LDE0Ljgy''@;'; put 'put ''YS43Ni43NiwwLDAsMSwuODMuNzNjMCwuMzgtLjIxLjc0LS44NywxLjI3bC0yLDEuNTd2MUg3LjY3VjE4LjI4SDUuMzNsMS0uNzdjMS0uNywxLjI4LTEuMjcsMS4yOC0yYTEuODMsMS44MywwLDAsMC0yLTEuNzYsMi42MywyLjYzLDAsMCwwLTIuMTQsMS4wOGwuNzYuNzNBMS43NSwxLjc1LDAs''@;'; put 'put ''MCwxLDUuNTcsMTQuODJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNNi41NiwyNC42NGExLjMyLDEuMzIsMCwwLDAsMS0xLjI3YzAtLjg3LS43OC0xLjUxLTItMS41MWEyLjYxLDIuNjEsMCwwLDAtMi4xLDFsLjY5LjcyYTEuNzgsMS43''@;'; put 'put ''OCwwLDAsMSwxLjMtLjY0Yy41NCwwLC45Mi4yNi45Mi42NnMtLjM2LjYyLTEsLjYySDQuNzl2MWguNjRjLjc0LDAsMS4wNy4yMSwxLjA3LjYzcy0uMzUuNjgtMSwuNjhhMiwyLDAsMCwxLTEuNDYtLjY1bC0uNy43OGEyLjg1LDIuODUsMCwwLDAsMi4yMS45M2MxLjI5LDAsMi4xMy0uNjksMi4x''@;'; put 'put ''My0xLjY0QTEuMzMsMS4zMywwLDAsMCw2LjU2LDI0LjY0WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTMyLjQyLDlhMSwxLDAsMCwwLTEtMUgxMHYySDMxLjQyQTEsMSwwLDAsMCwzMi40Miw5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUg''@;'; put 'put ''Y2xyLWktb3V0bGluZS1wYXRoLTQiIC8+PHBhdGggZD0iTTMxLjQyLDE2SDEwdjJIMzEuNDJhMSwxLDAsMCwwLDAtMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0zMS40MiwyNEgxMHYySDMxLjQyYTEsMSwwLDAsMCwwLTJaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz4nKSxlLkNsclNoYXBlUGFpbnRSb2xsZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTMxLDEwVjRhMiwyLDAsMCwwLTItMkg2QTIsMiwwLDAsMCw0LDR2NmEyLDIsMCwwLDAsMiwySDI5QTIsMiwwLDAsMCwzMSwx''@;'; put 'put ''MFpNNiw0SDI5djZINloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjlMMTguNywxNi41NGExLDEsMCwwLDAtLjcsMVYxOUgxNlYzM2EyLDIsMCwwLDAsMiwyaDJhMiwyLDAsMCwwLDItMlYxOUgyMHYtLjczTDMzLjMs''@;'; put 'put ''MTRhMSwxLDAsMCwwLC43LTFWN0ExLDEsMCwwLDAsMzMsNlpNMjAsMzNIMThWMjFoMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxyZWN0IHg9IjQiIHk9IjIiIHdpZHRoPSIyNyIgaGVpZ2h0PSIxMCIgcng9IjEiIHJ5PSIxIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''c29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMyw2SDMydjYuMjRMMTguNzEsMTYuNDVhMSwxLDAsMCwwLS43MSwxVjE5SDE2VjM0YTEsMSwwLDAsMCwxLDFoNGExLDEsMCwwLDAsMS0xVjE5SDIwdi0uODJMMzMuMjksMTRBMSwxLDAsMCwwLDM0LDEzVjdBMSwxLDAsMCww''@;'; put 'put ''LDMzLDZaIiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVCbG9ja1F1b3RlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xMS44NiwxNi41NWE0LjMxLDQuMzEsMCwwLDAtMi4xMS41NiwxNC40NCwxNC40NCwwLDAsMSw0LjM2LTYsMS4x''@;'; put 'put ''LDEuMSwwLDAsMC0xLjQtMS43Yy00LDMuMjUtNS43OCw3Ljc1LTUuNzgsMTAuNTRBNS4wOCw1LjA4LDAsMCwwLDEwLDI0LjU4YTQuNCw0LjQsMCwwLDAsMS44OC40NCw0LjI0LDQuMjQsMCwxLDAsMC04LjQ3WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+''@;'; put 'put ''PHBhdGggZD0iTTIzLDE2LjU1YTQuMjksNC4yOSwwLDAsMC0yLjExLjU2LDE0LjUsMTQuNSwwLDAsMSw0LjM1LTYsMS4xLDEuMSwwLDEsMC0xLjM5LTEuN2MtNCwzLjI1LTUuNzgsNy43NS01Ljc4LDEwLjU0YTUuMDgsNS4wOCwwLDAsMCwzLDQuNjFBNC4zNyw0LjM3LDAsMCwwLDIzLDI1YTQu''@;'; put 'put ''MjQsNC4yNCwwLDEsMCwwLTguNDdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz4nKSxlLkNsclNoYXBlQWxpZ25SaWdodFRleHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjY1LDI3LjFhMS4xLDEuMSwwLDAsMCwxLjEsMS4xSDMwVjI2SDE1''@;'; put 'put ''Ljc1QTEuMSwxLjEsMCwwLDAsMTQuNjUsMjcuMVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LjksMjEuMUExLjEsMS4xLDAsMCwwLDgsMjIuMkgzMFYyMEg4QTEuMSwxLjEsMCwwLDAsNi45LDIxLjFaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMTMuNCwxNS4xYTEuMSwxLjEsMCwwLDAsMS4xLDEuMUgzMFYxNEgxNC41QTEuMSwxLjEsMCwwLDAsMTMuNCwxNS4xWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBhdGggZD0iTTYu''@;'; put 'put ''NzUsOGExLjEsMS4xLDAsMSwwLDAsMi4ySDMwVjhaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIgLz4nKSxlLkNsclNoYXBlVGV4dD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMTIuMTksOC44NGExLjQ1LDEuNDUsMCwwLDAtMS40LTFoLS4xMmExLjQ2''@;'; put 'put ''LDEuNDYsMCwwLDAtMS40MiwxTDEuMTQsMjYuNTZhMS4yOSwxLjI5LDAsMCwwLS4xNC41OSwxLDEsMCwwLDAsMSwxLDEuMTIsMS4xMiwwLDAsMCwxLjA4LS43N2wyLjA4LTQuNjVoMTFsMi4wOCw0LjU5YTEuMjQsMS4yNCwwLDAsMCwxLjEyLjgzLDEuMDgsMS4wOCwwLDAsMCwxLjA4LTEuMDgs''@;'; put 'put ''MS42NCwxLjY0LDAsMCwwLS4xNC0uNTdaTTYuMDgsMjAuNzFsNC41OS0xMC4yMiw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzIuMjQsMTQuNzhBNi4zNSw2LjM1LDAsMCwwLDI3LjYsMTMuMmExMS4zNiwxMS4zNiww''@;'; put 'put ''LDAsMC00LjcsMSwxLDEsMCwwLDAtLjU4Ljg5LDEsMSwwLDAsMCwuOTQuOTIsMS4yMywxLjIzLDAsMCwwLC4zOS0uMDgsOC44Nyw4Ljg3LDAsMCwxLDMuNzItLjgxYzIuNywwLDQuMjgsMS4zMyw0LjI4LDMuOTJ2LjVhMTUuMjksMTUuMjksMCwwLDAtNC40Mi0uNjFjLTMuNjQsMC02LjE0LDEu''@;'; put 'put ''NjEtNi4xNCw0LjY0di4wNWMwLDIuOTUsMi43LDQuNDgsNS4zNyw0LjQ4YTYuMjksNi4yOSwwLDAsMCw1LjE5LTIuNDhWMjYuOWExLDEsMCwwLDAsMSwxLDEsMSwwLDAsMCwxLTEuMDZWMTlBNS43MSw1LjcxLDAsMCwwLDMyLjI0LDE0Ljc4Wm0tLjU2LDcuN2MwLDIuMjgtMi4xNywzLjg5LTQu''@;'; put 'put ''ODEsMy44OS0xLjk0LDAtMy42MS0xLjA2LTMuNjEtMi44NnYtLjA2YzAtMS44LDEuNS0zLDQuMi0zYTE1LjIsMTUuMiwwLDAsMSw0LjIyLjYxWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+JyksZS5DbHJTaGFwZVVuZGVybGluZT0oMCxsLmNsckljb25T''@;'; put 'put ''VkcpKCc8cGF0aCBkPSJNMTgsMjguMTdjNS4wOCwwLDguNDgtMy4wOCw4LjQ4LTlWOC41NGExLjE1LDEuMTUsMCwxLDAtMi4zLDB2MTAuOGMwLDQuNDQtMi4zOCw2LjcxLTYuMTMsNi43MXMtNi4yMS0yLjQ3LTYuMjEtNi44NVY4LjU0YTEuMTUsMS4xNSwwLDEsMC0yLjMsMHYxMC44QzkuNTMs''@;'; put 'put ''MjUuMDksMTMsMjguMTcsMTgsMjguMTdaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzEsMzBINWExLjExLDEuMTEsMCwwLDAsMCwyLjIxSDMxQTEuMTEsMS4xMSwwLDAsMCwzMSwzMFoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1p''@;'; put 'put ''LW91dGxpbmUtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVBbGlnbkJvdHRvbT0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzQsMzBIMmExLDEsMCwwLDAsMCwySDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBk''@;'; put 'put ''PSJNMTYsNWExLDEsMCwwLDAtMS0xSDdBMSwxLDAsMCwwLDYsNVYyOEgxNlpNMTQsMjZIOFY2aDZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzAsMTNhMSwxLDAsMCwwLTEtMUgyMWExLDEsMCwwLDAtMSwxVjI4SDMwWk0yOCwyNkgy''@;'; put 'put ''MlYxNGg2WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+JyksZS5DbHJTaGFwZUFsaWduTWlkZGxlPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zNCwxN0gzMFYxMWExLDEsMCwwLDAtMS0xSDIxYTEsMSwwLDAsMC0xLDF2NkgxNlY1YTEsMSwwLDAs''@;'; put 'put ''MC0xLTFIN0ExLDEsMCwwLDAsNiw1VjE3SDJhMSwxLDAsMCwwLDAsMkg2VjMxYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0xVjE5aDR2NmExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVYxOWg0YTEsMSwwLDAsMCwwLTJaTTE0LDMwSDhWNmg2Wm0xNC02SDIyVjEyaDZaIiBjbGFz''@;'; put 'put ''cz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz4nKSxlLkNsclNoYXBlQWxpZ25Ub3A9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTM0LDRIMkExLDEsMCwwLDAsMiw2SDM0YTEsMSwwLDAsMCwwLTJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5l''@;'; put 'put ''LXBhdGgtMSIgLz48cGF0aCBkPSJNNiwzMWExLDEsMCwwLDAsMSwxaDhhMSwxLDAsMCwwLDEtMVY4SDZaTTgsMTBoNlYzMEg4WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIC8+PHBhdGggZD0iTTIwLDIzYTEsMSwwLDAsMCwxLDFoOGExLDEsMCwwLDAsMS0x''@;'; put 'put ''VjhIMjBabTItMTNoNlYyMkgyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPicpLGUuQ2xyU2hhcGVMYW5ndWFnZT0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBkPSJNMzAsM0gxNHY1aDJWNWgxNGMwLjYsMCwxLDAuNCwxLDF2MTFjMCwwLjYtMC40LDEt''@;'; put 'put ''MSwxSDE3djdoLTUuM0w4LDI3LjlWMjVINWMtMC42LDAtMS0wLjQtMS0xVjEzYzAtMC42LDAuNC0xLDEtMWgxM3YtMkg1XG5cdFx0Yy0xLjcsMC0zLDEuMy0zLDN2MTFjMCwxLjcsMS4zLDMsMywzaDF2NS4xbDYuMy01LjFIMTl2LTdoMTFjMS43LDAsMy0xLjMsMy0zVjZDMzMsNC4zLDMxLjcs''@;'; put 'put ''MywzMCwzeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTYuMiwyMi45aDIuNGwwLjYtMS42aDMuMWwwLjYsMS42aDIuNEwxMS45LDE0SDkuNUw2LjIsMjIuOXogTTEwLjcsMTYuNWwxLDMuMWgtMkwxMC43LDE2LjV6IiBjbGFzcz0iY2xy''@;'; put 'put ''LWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjAsMTdjMS4xLDAsMi42LTAuMyw0LTFjMS40LDAuNywzLDEsNCwxdi0yYzAsMC0xLDAtMi4xLTAuNGMxLjItMS4yLDIuMS0zLDIuMS01LjZWOGgtM1Y2aC0ydjJoLTN2Mmg1Ljlcblx0XHRjLTAuMiwxLjgtMSwy''@;'; put 'put ''LjktMS45LDMuNmMtMC42LTAuNS0xLjItMS4yLTEuNi0yLjFoLTIuMWMwLjQsMS4zLDEsMi4zLDEuOCwzLjFDMjEuMSwxNSwyMC4yLDE1LDIwLDE1VjE3eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHBvbHlnb24gcG9pbnRzPSIxMSwxNi41IDEwLDE5''@;'; put 'put ''LjYgMTIsMTkuNiAxMSwxNi41IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0zMC4zLDNoLTE2djVoNHYyaC0xM2MtMS43LDAtMywxLjMtMywzdjExYzAsMS43LDEuMywzLDMsM2gxdjUuMWw2LjMtNS4xaDYuN3YtN2gxMWMxLjcsMCwzLTEu''@;'; put 'put ''MywzLTNWNlxuXHRcdEMzMy4zLDQuMywzMiwzLDMwLjMsM3ogTTEzLjEsMjIuOWwtMC41LTEuNkg5LjVsLTAuNiwxLjZINi41TDkuOCwxNGgyLjRsMy4zLDguOUwxMy4xLDIyLjl6IE0yOC4zLDE1djJjLTEuMywwLTIuNy0wLjQtMy45LTFcblx0XHRjLTEuMiwwLjYtMi42LDAuOS00LDFsLTAu''@;'; put 'put ''MS0yYzAuNywwLDEuNC0wLjEsMi4xLTAuM2MtMC45LTAuOS0xLjUtMi0xLjgtMy4yaDIuMWMwLjMsMC45LDAuOSwxLjYsMS42LDIuMmMxLjEtMC45LDEuOC0yLjIsMS45LTMuN1xuXHRcdGgtNlY4aDNWNmgydjJoMy4zbDAuMSwxYzAuMSwyLjEtMC43LDQuMi0yLjIsNS43QzI3LjEsMTQuOSwy''@;'; put 'put ''Ny43LDE1LDI4LjMsMTV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVUZXh0Q29sb3I9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE5LjQ3LDMuODRhMS40NSwxLjQ1LDAsMCwwLTEuNC0xSDE4YTEuNDUsMS40NSwwLDAsMC0xLjQy''@;'; put 'put ''LDFMOC40MiwyMS41NmExLjM1LDEuMzUsMCwwLDAtLjE0LjU5LDEsMSwwLDAsMCwxLDEsMS4xMSwxLjExLDAsMCwwLDEuMDgtLjc3bDIuMDgtNC42NWgxMWwyLjA4LDQuNTlhMS4yNCwxLjI0LDAsMCwwLDEuMTIuODMsMS4wOCwxLjA4LDAsMCwwLDEuMDgtMS4wOCwxLjU5LDEuNTksMCwwLDAt''@;'; put 'put ''LjE0LS41N1pNMTMuMzYsMTUuNzEsMTgsNS40OWw0LjYsMTAuMjJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cmVjdCB4PSI0LjA2IiB5PSIyNSIgd2lkdGg9IjI4IiBoZWlnaHQ9IjgiIHJ4PSIyIiByeT0iMiIgY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxlLkNsclNoYXBlSGlnaGxpZ2h0ZXI9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE1LjgyLDI2LjA2YTEsMSwwLDAsMS0uNzEtLjI5TDguNjcsMTkuMzNhMSwxLDAsMCwxLS4yOS0uNzEsMSwxLDAsMCwxLC4yOS0uNzFMMjMsMy41NGE1''@;'; put 'put ''LjU1LDUuNTUsMCwxLDEsNy44NSw3Ljg2TDE2LjUzLDI1Ljc3QTEsMSwwLDAsMSwxNS44MiwyNi4wNlptLTUtNy40NCw1LDVMMjkuNDgsMTBhMy41NCwzLjU0LDAsMCwwLDAtNSwzLjYzLDMuNjMsMCwwLDAtNSwwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEi''@;'; put 'put ''Lz5cbiAgPHBhdGggZD0iTTEwLjM4LDI4LjI4QTEsMSwwLDAsMSw5LjY3LDI4TDYuNDUsMjQuNzdhMSwxLDAsMCwxLS4yMi0xLjA5bDIuMjItNS40NGExLDEsMCwwLDEsMS42My0uMzNsNi40NSw2LjQ0QTEsMSwwLDAsMSwxNi4yLDI2bC01LjQ0LDIuMjJBMS4zMywxLjMzLDAsMCwxLDEwLjM4''@;'; put 'put ''LDI4LjI4Wk04LjMzLDIzLjgybDIuMjksMi4yOCwzLjQzLTEuNEw5Ljc0LDIwLjM5WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz5cbiAgPHBhdGggZD0iTTguOTQsMzBoLTVhMSwxLDAsMCwxLS44NC0xLjU1bDMuMjItNC45NGExLDEsMCwwLDEsMS41NS0u''@;'; put 'put ''MTZsMy4yMSwzLjIyYTEsMSwwLDAsMSwuMDYsMS4zNUw5LjcsMjkuNjRBMSwxLDAsMCwxLDguOTQsMzBaTTUuNzgsMjhIOC40N0w5LDI3LjM0bC0xLjctMS43WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHJlY3QgeD0iMy4wNiIgeT0iMzEiIHdp''@;'; put 'put ''ZHRoPSIzMCIgaGVpZ2h0PSIzIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNCIvPicpLGUuQ2xyU2hhcGVPdXRkZW50PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMS4wNiw5aC0yNmExLDEsMCwxLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0i''@;'; put 'put ''Y2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTRoLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwxOWgt''@;'; put 'put ''MTdhMSwxLDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHIt''@;'; put 'put ''aS1vdXRsaW5lLXBhdGgtNCIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMjloLTI2YTEsMSwwLDAsMSwwLTJoMjZhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01Ii8+XG4gIDxwYXRoIGQ9Ik05LjU2LDIyLjU0YTEsMSwwLDAsMS0uNy0uM0w0''@;'; put 'put ''LjYxLDE4bDQuMjUtNC4yNGExLDEsMCwwLDEsMS40MSwxLjQxTDcuNDQsMThsMi44MywyLjgzYTEsMSwwLDAsMS0uNzEsMS43MVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02Ii8+JyksZS5DbHJTaGFwZUluZGVudD0oMCxsLmNsckljb25TVkcpKCc8cGF0aCBk''@;'; put 'put ''PSJNMzEuMDYsOWgtMjZhMSwxLDAsMSwxLDAtMmgyNmExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDE0aC0xN2ExLDEsMCwwLDEsMC0yaDE3YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMzEuMDYsMTloLTE3YTEsMSwwLDAsMSwwLTJoMTdhMSwxLDAsMSwxLDAsMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIi8+XG4gIDxwYXRoIGQ9Ik0zMS4wNiwyNGgtMTdhMSwx''@;'; put 'put ''LDAsMCwxLDAtMmgxN2ExLDEsMCwxLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTQiLz5cbiAgPHBhdGggZD0iTTMxLjA2LDI5aC0yNmExLDEsMCwwLDEsMC0yaDI2YTEsMSwwLDEsMSwwLDJaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRs''@;'; put 'put ''aW5lLXBhdGgtNSIvPlxuICA8cGF0aCBkPSJNNS41NiwyMi41NGExLDEsMCwwLDEtLjctMS43MUw3LjY4LDE4LDQuODYsMTUuMTdhMSwxLDAsMCwxLDAtMS40MSwxLDEsMCwwLDEsMS40MSwwTDEwLjUxLDE4LDYuMjcsMjIuMjRBMSwxLDAsMCwxLDUuNTYsMjIuNTRaIiBjbGFzcz0iY2xyLWkt''@;'; put 'put ''b3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIvPicpLGUuQ2xyU2hhcGVTdHJpa2V0aHJvdWdoPSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0zMi44OCwxOS45MmgtMzBhMSwxLDAsMSwxLDAtMmgzMGExLDEsMCwwLDEsMCwyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTcuMjcsMTUuODZhMTIuOSwxMi45LDAsMCwxLDEuMjktLjUyQTUuNjksNS42OSwwLDAsMSwxMC4zOSwxNWEzLjE4LDMuMTgsMCwwLDEsMi43NSwxLjExQTQuNDQsNC40NCwwLDAsMSwxNCwxOC44NXYuNDlhMTMuODMsMTMuODMsMCwwLDAtNC4y''@;'; put 'put ''OS0uNzQsNi4xOSw2LjE5LDAsMCwwLTIuNTkuNTRBNSw1LDAsMCwwLDUuODEsMjBIMTUuODhWMTguODVhNS42Nyw1LjY3LDAsMCwwLTEuMzctNCw1LjE2LDUuMTYsMCwwLDAtNC0xLjQ5LDEwLDEwLDAsMCwwLTMuOTEuODguODcuODcsMCwwLDAtLjQ0LDEuMThBLjg0Ljg0LDAsMCwwLDcuMjcs''@;'; put 'put ''MTUuODZaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIvPlxuICA8cGF0aCBkPSJNMjEsMjBhNS45NCw1Ljk0LDAsMCwxLC41NC0yLjMxLDQuMzUsNC4zNSwwLDAsMSwxLjU4LTEuODMsNC4yNyw0LjI3LDAsMCwxLDQuNTksMCw0LjQ3LDQuNDcsMCwwLDEsMS41''@;'; put 'put ''NywxLjgzQTYuMTIsNi4xMiwwLDAsMSwyOS44NSwyMGgyYTcuNzMsNy43MywwLDAsMC0uNzgtMy4xOSw2LDYsMCwwLDAtMi4xOC0yLjQ1LDUuNzQsNS43NCwwLDAsMC0zLjEtLjg4LDUuMzksNS4zOSwwLDAsMC0yLjguNzMsNS41NSw1LjU1LDAsMCwwLTIsMi4wNVYxMGEuODcuODcsMCwwLDAt''@;'; put 'put ''Ljg2LS44NkgyMGEuODcuODcsMCwwLDAtLjg2Ljg2VjIwWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiLz5cbiAgPHBhdGggZD0iTTI5LjY3LDIyYTUuNjEsNS42MSwwLDAsMS0uMzYsMS4wNyw0LjQ3LDQuNDcsMCwwLDEtMS41NywxLjg1LDQuMzIsNC4zMiww''@;'; put 'put ''LDAsMS00LjU5LDAsNC4zNSw0LjM1LDAsMCwxLTEuNTgtMS44NUE1LjY0LDUuNjQsMCwwLDEsMjEuMiwyMkgxOS4wOXY0LjEzQS44Ny44NywwLDAsMCwyMCwyN2guMmEuODcuODcsMCwwLDAsLjg2LS44NlYyNC41MWE1LjU4LDUuNTgsMCwwLDAsMiwyLjA2LDUuNDgsNS40OCwwLDAsMCwyLjgu''@;'; put 'put ''NzIsNS42Niw1LjY2LDAsMCwwLDMuMS0uODhBNS44OCw1Ljg4LDAsMCwwLDMxLjA5LDI0LDcuMDksNy4wOSwwLDAsMCwzMS43MywyMloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00Ii8+XG4gIDxwYXRoIGQ9Ik0xNCwyMnYuNzZhMy4zNCwzLjM0LDAsMCwxLTEu''@;'; put 'put ''NjIsMiw1LjM0LDUuMzQsMCwwLDEtMi42OS43MiwzLjc4LDMuNzgsMCwwLDEtMi4zNi0uNywyLjI0LDIuMjQsMCwwLDEtLjk0LTEuOSwyLjI5LDIuMjksMCwwLDEsLjItLjkxSDQuNjJhNCw0LDAsMCwwLS4xMywxLDMuODMsMy44MywwLDAsMCwxLjM1LDMuMDZBNS4xNSw1LjE1LDAsMCwwLDku''@;'; put 'put ''MzEsMjcuMiw2LDYsMCwwLDAsMTIsMjYuNTdhNC42Miw0LjYyLDAsMCwwLDItMS43NFYyNmEuODYuODYsMCwwLDAsLjg2Ljg2SDE1YS44Ni44NiwwLDAsMCwuODYtLjg2VjIyWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTUiLz4nKSxlLkNsclNoYXBlU3Vic2Ny''@;'; put 'put ''aXB0PSgwLGwuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNC41NSwxOGw2LjgsOC42YTEuMTcsMS4xNywwLDAsMS0uOTIsMS45aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0uNDRMMTMsMTkuOTEsNi42LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEuMTcsMCwwLDEtLjkyLTEuOUwx''@;'; put 'put ''MS41NSwxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMTcsMS4xNywwLDAsMSw2LjYzLDhsNi40NCw4LjEzTDE5LjUsOGExLjE3LDEuMTcsMCwwLDEsLjkyLS40NGgwYTEuMTcsMS4xNywwLDAsMSwuOTIsMS45WiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTIzLDMxLjgsMjcuNDksMjhhOS45LDkuOSwwLDAsMCwxLjg4LTIuMDVBMy40NCwzLjQ0LDAsMCwwLDMwLDI0YTIuMzUsMi4zNSwwLDAsMC0uMzUtMS4yNywyLjQ0LDIuNDQsMCwwLDAtMS0uODQsMi45LDIuOSwwLDAsMC0xLjI2LS4yOCwzLjM2''@;'; put 'put ''LDMuMzYsMCwwLDAtMS44My41LDUuNjQsNS42NCwwLDAsMC0xLjQ4LDEuNDJsLTEtLjgxYTUuMTEsNS4xMSwwLDAsMSw0LjM2LTIuMzcsNC4zNSw0LjM1LDAsMCwxLDIsLjQ1LDMuNDMsMy40MywwLDAsMSwyLDMuMTgsNC40NSw0LjQ1LDAsMCwxLS42OCwyLjM1LDEwLjksMTAuOSwwLDAsMS0y''@;'; put 'put ''LjI0LDIuNDZsLTMuMjQsMi44MUgzMS41VjMzSDIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTIiLz4nKSxlLkNsclNoYXBlU3VwZXJzY3JpcHQ9KDAsbC5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE0LjQzLDE4bDYuNzksOC42YTEuMTcsMS4xNywwLDAsMS0u''@;'; put 'put ''OTIsMS45aDBhMS4xNywxLjE3LDAsMCwxLS45Mi0uNDRsLTYuNDQtOC4xM0w2LjQ3LDI4YTEuMTcsMS4xNywwLDAsMS0uOTIuNDRoMGExLjE3LDEuMTcsMCwwLDEtLjkyLTEuOUwxMS40MywxOGwtNi44LTguNmExLjE3LDEuMTcsMCwwLDEsLjkyLTEuOWgwQTEuMiwxLjIsMCwwLDEsNi41MSw4''@;'; put 'put ''bDYuNDMsOC4xM0wxOS4zOCw4YTEuMTcsMS4xNywwLDAsMSwuOTItLjQ0aDBhMS4xNywxLjE3LDAsMCwxLC45MiwxLjlaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIvPlxuICA8cGF0aCBkPSJNMjIuODUsMTQuNDdsNC41MS0zLjg1YTkuMzcsOS4zNywwLDAs''@;'; put 'put ''MCwxLjg4LTIsMy40MywzLjQzLDAsMCwwLC41OS0xLjg2LDIuMjcsMi4yNywwLDAsMC0uMzYtMS4yNywyLjM4LDIuMzgsMCwwLDAtLjk1LS44MywyLjc3LDIuNzcsMCwwLDAtMS4yNi0uMjksMy4zOSwzLjM5LDAsMCwwLTEuODMuNSw1LjgzLDUuODMsMCwwLDAtMS40OSwxLjQybC0xLS44MWE1''@;'; put 'put ''LjEyLDUuMTIsMCwwLDEsNC4zNi0yLjM3LDQuMzYsNC4zNiwwLDAsMSwyLC40NSwzLjQ3LDMuNDcsMCwwLDEsMiwzLjE4QTQuNDQsNC40NCwwLDAsMSwzMC41OCw5YTExLjE0LDExLjE0LDAsMCwxLTIuMjQsMi40NkwyNS4xLDE0LjMxaDYuMjh2MS4zM0gyMi44NVoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIi8+JyksZS5UZXh0RWRpdFNoYXBlcz17Ym9sZDplLkNsclNoYXBlQm9sZCwiYnVsbGV0LWxpc3QiOmUuQ2xyU2hhcGVCdWxsZXRMaXN0LCJjaGVja2JveC1saXN0IjplLkNsclNoYXBlQ2hlY2tib3hMaXN0LCJudW1iZXItbGlzdCI6ZS5DbHJT''@;'; put 'put ''aGFwZU51bWJlckxpc3QsImZvbnQtc2l6ZSI6ZS5DbHJTaGFwZUZvbnRTaXplLGl0YWxpYzplLkNsclNoYXBlSXRhbGljLCJqdXN0aWZ5LXRleHQiOmUuQ2xyU2hhcGVKdXN0aWZ5VGV4dCwiY2VudGVyLXRleHQiOmUuQ2xyU2hhcGVDZW50ZXJUZXh0LCJhbGlnbi1sZWZ0LXRleHQiOmUuQ2xy''@;'; put 'put ''U2hhcGVBbGlnbkxlZnRUZXh0LCJhbGlnbi1yaWdodC10ZXh0IjplLkNsclNoYXBlQWxpZ25SaWdodFRleHQsInBhaW50LXJvbGxlciI6ZS5DbHJTaGFwZVBhaW50Um9sbGVyLCJibG9jay1xdW90ZSI6ZS5DbHJTaGFwZUJsb2NrUXVvdGUsdGV4dDplLkNsclNoYXBlVGV4dCx1bmRlcmxpbmU6''@;'; put 'put ''ZS5DbHJTaGFwZVVuZGVybGluZSwiYWxpZ24tY2VudGVyIjplLkNsclNoYXBlQWxpZ25DZW50ZXIsImFsaWduLWxlZnQiOmUuQ2xyU2hhcGVBbGlnbkxlZnQsImFsaWduLXJpZ2h0IjplLkNsclNoYXBlQWxpZ25SaWdodCwiYWxpZ24tYm90dG9tIjplLkNsclNoYXBlQWxpZ25Cb3R0b20sImFs''@;'; put 'put ''aWduLW1pZGRsZSI6ZS5DbHJTaGFwZUFsaWduTWlkZGxlLCJhbGlnbi10b3AiOmUuQ2xyU2hhcGVBbGlnblRvcCxsYW5ndWFnZTplLkNsclNoYXBlTGFuZ3VhZ2UsInRleHQtY29sb3IiOmUuQ2xyU2hhcGVUZXh0Q29sb3IsaGlnaGxpZ2h0ZXI6ZS5DbHJTaGFwZUhpZ2hsaWdodGVyLGluZGVu''@;'; put 'put ''dDplLkNsclNoYXBlSW5kZW50LG91dGRlbnQ6ZS5DbHJTaGFwZU91dGRlbnQsc3RyaWtldGhyb3VnaDplLkNsclNoYXBlU3RyaWtldGhyb3VnaCxzdWJzY3JpcHQ6ZS5DbHJTaGFwZVN1YnNjcmlwdCxzdXBlcnNjcmlwdDplLkNsclNoYXBlU3VwZXJzY3JpcHR9LCJ1bmRlZmluZWQiIT10eXBl''@;'; put 'put ''b2Ygd2luZG93JiZ3aW5kb3cuaGFzT3duUHJvcGVydHkoIkNsYXJpdHlJY29ucyIpJiZ3aW5kb3cuQ2xhcml0eUljb25zLmFkZChlLlRleHRFZGl0U2hhcGVzKX0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3NoYXBlcy90cmF2ZWwtc2hhcGVzLnRzIjpmdW5jdGlvbihBLGUsYSl7InVzZSBzdHJp''@;'; put 'put ''Y3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLlRyYXZlbFNoYXBlcz1lLkNsclNoYXBlT25Ib2xpZGF5PWUuQ2xyU2hhcGVUcmFpbGVyPWUuQ2xyU2hhcGVGZXJyeT1lLkNsclNoYXBlQ2FyYXZhbj1lLkNsclNoYXBlQ2FtcGVydmFuPWUuQ2xy''@;'; put 'put ''U2hhcGVCb2F0PWUuQ2xyU2hhcGVCaWN5Y2xlPWUuQ2xyU2hhcGVNYXBNYXJrZXI9ZS5DbHJTaGFwZUNvbXBhc3M9ZS5DbHJTaGFwZU1hcD1lLkNsclNoYXBlQ2FyPWUuQ2xyU2hhcGVBaXJwbGFuZT1lLkNsclNoYXBlVHJ1Y2s9dm9pZCAwO3ZhciByPWEoIi4vcHJvamVjdHMvaWNvbnMvc3Jj''@;'; put 'put ''L3V0aWxzL2Rlc2NyaXB0b3ItY29uZmlnLnRzIik7YT1hKCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zdmctdGFnLWdlbmVyYXRvci50cyIpLGUuQ2xyU2hhcGVUcnVjaz0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgt''@;'; put 'put ''MSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCwwLTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMTkuN2E2LjQ1LDYuNDUsMCwwLDEsMS41Ni0uMmMuMTUsMCwuMjksMCwuNDQsMFYxNGg0YTIsMiwwLDAsMSwyLDJ2MUgyOHYyaDR2NUgyOS42YTQuNTQsNC41NCww''@;'; put 'put ''LDAsMC04LjM0LDBIMTQuNDNhNC41LDQuNSwwLDAsMC00LjE3LTIuNzZBNC4zOCw0LjM4LDAsMSwwLDE0LjcyLDI2SDIxYTQuNDksNC40OSwwLDAsMCw4LjkyLDBIMzNhMSwxLDAsMCwwLDEtMVYxNkE0LDQsMCwwLDAsMzAsMTJaTTEwLjI2LDI4YTIuMzgsMi4zOCwwLDEsMSwwLTQuNzUsMi4z''@;'; put 'put ''OCwyLjM4LDAsMSwxLDAsNC43NVptMTUuMTcsMGEyLjM4LDIuMzgsMCwxLDEsMi41LTIuMzdBMi40NCwyLjQ0LDAsMCwxLDI1LjQzLDI4WiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTMwLDEySDI2VjdhMSwxLDAsMCww''@;'; put 'put ''LTEtMUgzQTEsMSwwLDAsMCwyLDdWMjVhMSwxLDAsMCwwLDEsMUg0VjhIMjRWMjEuNDlBNC40NSw0LjQ1LDAsMCwwLDIxLjI1LDI0SDE0LjQzYTQuNSw0LjUsMCwwLDAtNC4xNy0yLjc2QTQuMzgsNC4zOCwwLDEsMCwxNC43MiwyNkgyMWE0LjQ4LDQuNDgsMCwwLDAsOC45MSwwSDM0VjE2QTQs''@;'; put 'put ''NCwwLDAsMCwzMCwxMlpNMTAuMjYsMjhhMi4zOCwyLjM4LDAsMSwxLDAtNC43NSwyLjM4LDIuMzgsMCwxLDEsMCw0Ljc1Wm0xNS4xNywwYTIuMzgsMi4zOCwwLDEsMSwyLjUtMi4zN0EyLjQ0LDIuNDQsMCwwLDEsMjUuNDIsMjhaTTMyLDE3SDI2VjE0aDRhMiwyLDAsMCwxLDIsMloiLz4nKSxl''@;'; put 'put ''LkNsclNoYXBlQWlycGxhbmU9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0zNS43Nyw4LjE2YTIuNDMsMi40MywwLDAsMC0xLjktMkwyOCw0Ljg3YTQuNSw0LjUsMCwwLDAtMy42NS43OUw3LDE4LjMsMi4xNCwx''@;'; put 'put ''OC4xQTEuODYsMS44NiwwLDAsMCwuOTEsMjEuNDFsNSwzLjkzYy42LjczLDEsLjU5LDEwLjkzLTQuODJsLjkzLDkuNDJhMS4zNiwxLjM2LDAsMCwwLC44NSwxLjE4LDEuNDMsMS40MywwLDAsMCwuNTQuMSwxLjU0LDEuNTQsMCwwLDAsMS0uNDFsMi4zOS0yLjE4YTEuNTIsMS41MiwwLDAsMCwu''@;'; put 'put ''NDYtLjgzTDI1LjIsMTUuOWMzLjU3LTIsNi45NS0zLjg4LDkuMzYtNS4yNUEyLjQzLDIuNDMsMCwwLDAsMzUuNzcsOC4xNlptLTIuMi43NWMtMi41LDEuNDItNiwzLjQxLTkuNzYsNS40N2wtLjQxLjIzTDIxLjA3LDI3LjI4bC0xLjQ3LDEuMzRMMTguNSwxNy4zMiwxNy4xNywxOEMxMCwyMiw3''@;'; put 'put ''LjYxLDIzLjE2LDYuNzksMjMuNTJsLTQuMy0zLjQxLDUuMDguMjIsMTgtMTMuMDZhMi41MSwyLjUxLDAsMCwxLDItLjQ1bDUuODUsMS4yNmEuNDMuNDMsMCwwLDEsLjM1LjM3QS40Mi40MiwwLDAsMSwzMy41Nyw4LjkxWiIvPlxuICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLW91dGxp''@;'; put 'put ''bmUgY2xyLWktb3V0bGluZS1wYXRoLTIiIGQ9Ik03LDEyLjU0bDMuNTYsMSwxLjY0LTEuMTktNC0xLjE2TDEwLDEwLjA5bDUuNDctLjE2LDIuMy0xLjY3TDEwLDguNWExLjI1LDEuMjUsMCwwLDAtLjcuMTdMNi42NywxMC4yQTEuMjgsMS4yOCwwLDAsMCw3LDEyLjU0WiIvPlxuICAgICAgICAg''@;'; put 'put ''ICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgZD0iTTYuMjUsMTEuNSwxMiwxMy4xNmw2LjMyLTQuNTktOS4wNy4yNkEuNTIuNTIsMCwwLDAsOSw4LjkxTDYuMTMsMTAuNTZBLjUxLjUxLDAsMCwwLDYuMjUsMTEuNVoiLz5cbiAgICAgICAgICAgIDxwYXRo''@;'; put 'put ''IGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGQ9Ik0zNC41Miw2LjM2LDI4LjIyLDVhMy43OCwzLjc4LDAsMCwwLTMuMDcuNjdMNi4xMiwxOS41bC00LjU3LS4yYTEuMjUsMS4yNSwwLDAsMC0uODMsMi4yMmw0LjQ1LDMuNTNhLjU1LjU1LDAsMCwwLC41My4wOWMxLjI3''@;'; put 'put ''LS40OSw2LTMsMTEuNTktNi4wN2wxLjEyLDExLjUxYS41NS41NSwwLDAsMCwuOS4zN2wyLjUtMi4wOGEuNzYuNzYsMCwwLDAsLjI2LS40NWwyLjM3LTEzLjI5YzQtMi4yMiw3LjgyLTQuMzcsMTAuNTEtNS44OUExLjU1LDEuNTUsMCwwLDAsMzQuNTIsNi4zNloiLz4nKSxlLkNsclNoYXBlQ2Fy''@;'; put 'put ''PSgwLGEuY2xySWNvblNWRykoJzxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiB4PSIxNSIgeT0iMTciIHdpZHRoPSIzIiBoZWlnaHQ9IjIiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBh''@;'; put 'put ''dGgtMiIgZD0iTTI2LjQ1LDE0LjE3QTIyLjEsMjIuMSwwLDAsMCwxOS4zOCw3YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40Ny0uMTQuOTItLjIsMS4zNkE0LDQsMCwwLDAsMiwxOHY2LjEzYTIsMiwwLDAsMCwyLDJWMjBINFYxOGEyLDIsMCwwLDEs''@;'; put 'put ''Mi0ySDI0LjczQTcuMjgsNy4yOCwwLDAsMSwzMiwyMy4yN1YyNGgtMmE0LjUzLDQuNTMsMCwxLDAsLjMzLDJIMzJhMiwyLDAsMCwwLDItMnYtLjczQTkuMjgsOS4yOCwwLDAsMCwyNi40NSwxNC4xN1pNMTEsMTRINi45M2MwLS4zMS4wOS0uNjMuMTUtMUE2LjUyLDYuNTIsMCwwLDEsMTEsOGgw''@;'; put 'put ''Wm0yLDBWNy41OGE4LjE3LDguMTcsMCwwLDEsNS4zNiwxLjE2QTE5LDE5LDAsMCwxLDIzLjksMTRaTTI1LjgsMjguMzhhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjUuOCwyOC4zOFoiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBj''@;'; put 'put ''bHItaS1vdXRsaW5lLXBhdGgtMyIgZD0iTTE0LjE3LDI0YTQuNTMsNC41MywwLDEsMCwuMzMsMmg1LjNjMC0uMDgsMC0uMTcsMC0uMjVBNiw2LDAsMCwxLDIwLDI0Wk0xMCwyOC4zOGEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMCwyOC4zOFoiLz5cbiAgICAgICAgICAg''@;'; put 'put ''ICAgICA8cGF0aCBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiBkPSJNMjYuODcsMTQuMjhBMjIuMzYsMjIuMzYsMCwwLDAsMTkuNjUsNi45YTkuNjQsOS42NCwwLDAsMC05LS43LDguNiw4LjYsMCwwLDAtNC44Miw2LjRjLS4wOC40OS0uMTUsMS0uMjEsMS40aC0xQTIu''@;'; put 'put ''NTksMi41OSwwLDAsMCwyLDE2LjU5djguNTVhLjg2Ljg2LDAsMCwwLC44Ni44Nkg0LjU5YzAtLjEzLDAtLjI2LDAtLjM5YTUuNzcsNS43NywwLDAsMSw3LjcxLTUuNDVsLTEsMWE0LjU2LDQuNTYsMCwwLDAtNC4zNCwxLjU4LDMsMywwLDAsMC0uNjMuOTNBNC41LDQuNSwwLDEsMCwxNC44Miwy''@;'; put 'put ''Nmg1LjQ4YzAtLjEzLDAtLjI2LDAtLjM5QTUuNzcsNS43NywwLDAsMSwyOCwyMC4xNmwtMSwxYTQuNTYsNC41NiwwLDAsMC00LjM0LDEuNTgsMywzLDAsMCwwLS42My45M0E0LjUsNC41LDAsMSwwLDMwLjUzLDI2aDIuNjFhLjg2Ljg2LDAsMCwwLC44Ni0uODZWMjMuMzZBOS4zOSw5LjM5LDAs''@;'; put 'put ''MCwwLDI2Ljg3LDE0LjI4Wk0xMiwxNEg4YzAtLjM1LjEtLjcxLjE2LTEuMDdhNi41Miw2LjUyLDAsMCwxLDMuODctNWgwWk0xMC4zNiwyOC4zNmEyLjUsMi41LDAsMSwxLDIuNS0yLjVBMi41LDIuNSwwLDAsMSwxMC4zNiwyOC4zNlpNMTksMTlIMTZWMTdoM1ptLTYtNVY3LjQ3YTguMTYsOC4x''@;'; put 'put ''NiwwLDAsMSw1LjQsMS4xNUExOS4xNSwxOS4xNSwwLDAsMSwyNCwxNFpNMjYuMDYsMjguMzZhMi41LDIuNSwwLDEsMSwyLjUtMi41QTIuNSwyLjUsMCwwLDEsMjYuMDYsMjguMzZaIi8+JyksZS5DbHJTaGFwZU1hcD0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGlu''@;'; put 'put ''ZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgZD0iTTMzLjU5LDYuMTlBMSwxLDAsMCwwLDMyLjcsNkwyMy4wOSw5LDEzLjQ2LDQuMTFhMSwxLDAsMCwwLS44NCwwTDIuNjIsOC4yQTEsMSwwLDAsMCwyLDkuMTNWMjkuNjFhMSwxLDAsMCwwLDEuMzguOTJMMTMsMjYuNThsOS41OSw0LjkyYTEsMSww''@;'; put 'put ''LDAsMCwuNDYuMTEsMSwxLDAsMCwwLC4zLDBsMTAtMy4xMmExLDEsMCwwLDAsLjctMVY3QTEsMSwwLDAsMCwzMy41OSw2LjE5Wk0zMiwyNi43NWwtOC4zMiwyLjZWMjcuMDZoLTEuNnYybC04LjQtNC4zMVYyMy4wNmgtMS42djEuNzJMNCwyOC4xMVY5Ljc5bDguMDgtMy4zM1Y4LjgxaDEuNlY2''@;'; put 'put ''LjQ3bDguNCw0LjN2Mi4xaDEuNlYxMUwzMiw4LjM2WiIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiB4PSIyMi4wOCIgeT0iMTUuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAg''@;'; put 'put ''IDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiB4PSIyMi4wOCIgeT0iMjEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiB4''@;'; put 'put ''PSIxMi4wOCIgeT0iMTEuMDYiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy44MSIvPlxuICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiB4PSIxMi4wOCIgeT0iMTcuMTMiIHdpZHRoPSIxLjYiIGhlaWdodD0iMy43NSIvPlxuICAg''@;'; put 'put ''ICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0zMy4zMSw3LjM1LDI1LDkuOTRWMTRIMjNWMTAuMjlMMTQsNS42OFY5SDEyVjUuMjdsLTkuNjcsNEEuNTMuNTMsMCwwLDAsMiw5Ljc1VjMwLjQ1YS41My41MywwLDAsMCwuNzQuNDlM''@;'; put 'put ''MTIsMjcuMTJWMjNoMnY0LjUzbDksNC42MVYyOGgydjMuNzlsOC42My0yLjdhLjUzLjUzLDAsMCwwLC4zNy0uNTFWNy44NkEuNTMuNTMsMCwwLDAsMzMuMzEsNy4zNVpNMTQsMjFIMTJWMTdoMlptMC02SDEyVjExaDJaTTI1LDI2SDIzVjIyaDJabTAtNkgyM1YxNmgyWiIvPicpLGUuQ2xyU2hh''@;'; put 'put ''cGVDb21wYXNzPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yMC44MiwxNS4zMWgwTDEwLjQ2LDljLS40Ni0uMjYtMS4xMS4zNy0uODYuODRsNi4xNSwxMC41NiwxMC41Niw2LjE1YS42Ni42NiwwLDAsMCwuODQtLjg2Wm0tNCw0LDMtMyw0LjU1LDcuNDRaIiBjbGFzcz0iY2xyLWktb3V0''@;'; put 'put ''bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz5cbiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xOCwyQTE2LDE2LDAsMSwwLDM0LDE4LDE2LDE2LDAsMCwwLDE4LDJabTEsMjkuOTVWMjkuNTNIMTd2Mi40MkExNCwxNCwwLDAsMSw0LjA1LDE5SDYuNDdWMTdINC4wNUExNCwxNCwwLDAsMSwxNyw0''@;'; put 'put ''LjA1VjYuNDdoMlY0LjA1QTE0LDE0LDAsMCwxLDMxLjk1LDE3SDI5LjUzdjJoMi40MkExNCwxNCwwLDAsMSwxOSwzMS45NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPlxuICAgICAgICAgICAgPHBhdGggZD0iTTE4LDJBMTYsMTYsMCwxLDAsMzQsMTgs''@;'; put 'put ''MTYsMTYsMCwwLDAsMTgsMlpNNi40NywxOUg0LjA1YzAtLjMzLS4wNS0uNjYtLjA1LTFzMC0uNjcuMDUtMUg2LjQ3Wk0xNyw0LjA1Yy4zMywwLC42Ni0uMDUsMS0uMDVzLjY3LDAsMSwuMDVWNi40N0gxN1ptMiwyNy45Yy0uMzMsMC0uNjYuMDUtMSwuMDVzLS42NywwLTEtLjA1VjI5LjUzaDJa''@;'; put 'put ''bTgtNS41OGEuNTkuNTksMCwwLDEtLjY5LjE2TDE1Ljc1LDIwLjM4LDkuNiw5LjgyYy0uMjUtLjQ3LjM5LTEuMS44Ni0uODRsMTAuMzcsNi4zM2gwbDYuMzMsMTAuMzdBLjU5LjU5LDAsMCwxLDI3LDI2LjM3Wk0yOS41MywxOVYxN2gyLjQyYzAsLjMzLjA1LjY2LjA1LDFzMCwuNjctLjA1LDFa''@;'; put 'put ''IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPlxuICAgICAgICAgICAgPHBvbHlnb24gcG9pbnRzPSIxNi43NyAxOS4zNSAyNC4zNSAyMy43NyAxOS44IDE2LjMzIDE2Ljc3IDE5LjM1IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicp''@;'; put 'put ''LGUuQ2xyU2hhcGVNYXBNYXJrZXI9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMu''@;'; put 'put ''NzMsMCwxLDEsMy43My0zLjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgZD0iTTE4LDJBMTEuNzksMTEuNzksMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4''@;'; put 'put ''LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkExMS43OSwxMS43OSwwLDAsMCwxOCwyWk0yMy41OSwyNGwtLjM2LjUz''@;'; put 'put ''Yy0xLjcyLDIuNTgtNCw1LjQ3LTUuMjMsNi45LTEuMTgtMS40My0zLjUxLTQuMzItNS4yMy02LjlMMTIuNDIsMjRjLTEuNzctMi42NC00LjItNi4yNS00LjItMTAuMzFhOS43OCw5Ljc4LDAsMSwxLDE5LjU2LDBDMjcuNzgsMTcuNzksMjUuMzYsMjEuNCwyMy41OSwyNFoiLz5cbiAgICAgICAg''@;'; put 'put ''ICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0xLS1iYWRnZWQiIGQ9Ik0xOCw2LjcyYTUuNzMsNS43MywwLDEsMCw1LjczLDUuNzNBNS43Myw1LjczLDAsMCwwLDE4LDYuNzJabTAsOS40NmEzLjczLDMuNzMsMCwxLDEsMy43My0z''@;'; put 'put ''LjczQTMuNzMsMy43MywwLDAsMSwxOCwxNi4xN1oiLz5cbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz0iY2xyLWktb3V0bGluZS0tYmFkZ2VkIGNsci1pLW91dGxpbmUtcGF0aC0yLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OWE3LjQ5LDcuNDksMCwwLDEtMi0uMzNjMCwuMTksMCwuMzgs''@;'; put 'put ''MCwuNTcsMCw0LjA2LTIuNDIsNy42Ny00LjE5LDEwLjMxbC0uMzYuNTNjLTEuNzIsMi41OC00LDUuNDctNS4yMyw2LjktMS4xOC0xLjQzLTMuNTEtNC4zMi01LjIzLTYuOUwxMi40MiwyNGMtMS43Ny0yLjY0LTQuMi02LjI1LTQuMi0xMC4zMUE5Ljc3LDkuNzcsMCwwLDEsMjIuNTYsNS4wOWE3''@;'; put 'put ''LjQ1LDcuNDUsMCwwLDEsLjUyLTJBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUyYTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44''@;'; put 'put ''NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1vdXRsaW5lLS1iYWRnZWQgY2xyLWktb3V0bGluZS1wYXRoLTMtLWJhZGdlZCBjbHItaS1iYWRnZSIgY3g9IjMw''@;'; put 'put ''IiBjeT0iNiIgcj0iNSIvPlxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiIGQ9Ik0xOCwyQTExLjc5LDExLjc5LDAsMCwwLDYuMjIsMTMuNzNjMCw0LjY3LDIuNjIsOC41OCw0LjU0LDExLjQzbC4zNS41MmE5OS42MSw5OS42MSww''@;'; put 'put ''LDAsMCw2LjE0LDhsLjc2Ljg5Ljc2LS44OWE5OS44Miw5OS44MiwwLDAsMCw2LjE0LThsLjM1LS41M2MxLjkxLTIuODUsNC41My02Ljc1LDQuNTMtMTEuNDJBMTEuNzksMTEuNzksMCwwLDAsMTgsMlptMCwxN2E2LjU2LDYuNTYsMCwxLDEsNi41Ni02LjU2QTYuNTYsNi41NiwwLDAsMSwxOCwx''@;'; put 'put ''OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTIiIGN4PSIxOCIgY3k9IjEyLjQ0IiByPSIzLjczIi8+XG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0''@;'; put 'put ''aC0xLS1iYWRnZWQiIGQ9Ik0yOS43NywxMy40OUE3LjQ3LDcuNDcsMCwwLDEsMjQuMzgsMTFhNi41OCw2LjU4LDAsMSwxLTEuNjEtMyw3LjQyLDcuNDIsMCwwLDEsLjMxLTQuODRBMTEuNzUsMTEuNzUsMCwwLDAsNi4yMiwxMy43M2MwLDQuNjcsMi42Miw4LjU4LDQuNTQsMTEuNDNsLjM1LjUy''@;'; put 'put ''YTk5LjYxLDk5LjYxLDAsMCwwLDYuMTQsOGwuNzYuODkuNzYtLjg5YTk5LjgyLDk5LjgyLDAsMCwwLDYuMTQtOGwuMzUtLjUzYzEuOTEtMi44NSw0LjUzLTYuNzUsNC41My0xMS40MkMyOS43OCwxMy42NSwyOS43NywxMy41NywyOS43NywxMy40OVoiLz5cbiAgICAgICAgICAgICAgICA8Y2ly''@;'; put 'put ''Y2xlIGNsYXNzPSJjbHItaS1zb2xpZC0tYmFkZ2VkIGNsci1pLXNvbGlkLXBhdGgtMi0tYmFkZ2VkIiBjeD0iMTgiIGN5PSIxMi40NCIgcj0iMy43MyIvPlxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9ImNsci1pLXNvbGlkLS1iYWRnZWQgY2xyLWktc29saWQtcGF0aC0zLS1iYWRn''@;'; put 'put ''ZWQgY2xyLWktYmFkZ2UiIGN4PSIzMCIgY3k9IjYiIHI9IjUiLz4nKSxlLkNsclNoYXBlQmljeWNsZT0oMCxhLmNsckljb25TVkcpKCc8cGF0aCBkPSJNOC41LDI5LjY1QTYuNTEsNi41MSwwLDAsMSwyLDIzLjE1YTYuMzksNi4zOSwwLDAsMSw2LjUtNi4zNkE2LjM5LDYuMzksMCwwLDEsMTUs''@;'; put 'put ''MjMuMTUsNi41MSw2LjUxLDAsMCwxLDguNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDguNSwxOC42NVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik0yNy41LDI5LjY1YTYuNTEsNi41MSww''@;'; put 'put ''LDAsMS02LjUtNi41LDYuNSw2LjUsMCwwLDEsMTMsMEE2LjUxLDYuNTEsMCwwLDEsMjcuNSwyOS42NVptMC0xMWE0LjUsNC41LDAsMSwwLDQuNSw0LjVBNC41MSw0LjUxLDAsMCwwLDI3LjUsMTguNjVaIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0''@;'; put 'put ''aCBkPSJNMTksMjQuNjZIOGExLDEsMCwwLDEtLjg5LTEuNDVsNS0xMCwxLjc4LjlMOS42MiwyMi43M0gxOVoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxyZWN0IHg9IjEzIiB5PSIxMi42OCIgd2lkdGg9IjExIiBoZWlnaHQ9IjEuOTEiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0yOCwyNC42NmExLDEsMCwwLDEtLjk0LS42NkwyMi4yOSwxMC42NkgyMGExLDEsMCwwLDEtMS0xLDEsMSwwLDAsMSwxLS45M2gzYS45NC45NCwwLDAsMSwuOTQuNmw1LDE0YTEsMSwwLDAsMS0uNiwxLjI3QTEs''@;'; put 'put ''MSwwLDAsMSwyOCwyNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01IiAvPjxwYXRoIGQ9Ik0xMywxNC42NmExLDEsMCwwLDEtLjcxLS4yOWwtMS43LTEuNzFIOGExLDEsMCwwLDEtMS0xLC45NC45NCwwLDAsMSwxLTFoM2ExLjA4LDEuMDgsMCwwLDEsLjc1''@;'; put 'put ''LjI3bDIsMmExLDEsMCwwLDEsMCwxLjQxQTEsMSwwLDAsMSwxMywxNC42NloiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC02IiAvPjxwYXRoIGQ9Ik0xNSwyMS45Yy0wLjItMi0xLjItMy44LTIuOS00LjlsLTIuNSw0LjlIMTV6IiBjbGFzcz0iY2xyLWktc29saWQg''@;'; put 'put ''Y2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik03LjIsMjMuNGMtMC4yLTAuMy0wLjItMC43LDAtMWwzLjItNi4zYy0wLjYtMC4yLTEuMi0wLjItMS44LTAuMkM1LDE1LjksMiwxOC44LDIsMjIuNGMwLDMuNiwyLjksNi41LDYuNSw2LjVcblx0YzMsMCw1LjYtMi4xLDYuMy01SDhDNy43''@;'; put 'put ''LDIzLjksNy4zLDIzLjcsNy4yLDIzLjR6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xOSwyMS45aC00YzAsMC4yLDAsMC4zLDAsMC41YzAsMC41LTAuMSwxLTAuMiwxLjVIMTlWMjEuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xp''@;'; put 'put ''ZC1wYXRoLTMiIC8+PHBhdGggZD0iTTI3LjUsMTUuOWMtMC4zLDAtMC42LDAtMC45LDAuMWwyLjQsNi42YzAuMiwwLjUtMC4xLDEuMS0wLjYsMS4zYy0wLjEsMC0wLjIsMC4xLTAuMywwLjFjLTAuNCwwLTAuOC0wLjMtMC45LTAuN2wtMi40LTYuN1xuXHRjLTMuMiwxLjYtNC41LDUuNS0zLDgu''@;'; put 'put ''N2MxLjYsMy4yLDUuNSw0LjUsOC43LDNjMy4yLTEuNiw0LjUtNS41LDMtOC43QzMyLjIsMTcuMywzMCwxNS45LDI3LjUsMTUuOXoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBhdGggZD0iTTI0LjcsMTYuN2MwLjYtMC4zLDEuMy0wLjUsMS45LTAuNmwtMi43''@;'; put 'put ''LTcuNEMyMy44LDguMiwyMy40LDgsMjMsNy45aC0zYy0wLjYsMC0xLDAuNS0xLDEuMWMwLDAuNSwwLjQsMC45LDEsMC45XG5cdGMwLDAsMCwwLDAsMGgyLjNsMC43LDJoLTkuNmwtMS43LTEuN0MxMS41LDEwLjEsMTEuMywxMCwxMSwxMEg4Yy0wLjYsMC0xLDAuNC0xLDFzMC40LDEsMSwxaDIu''@;'; put 'put ''NmwxLjIsMS4ybC0xLjUsM1xuXHRjMC42LDAuMiwxLjMsMC41LDEuOCwwLjhsMS42LTMuMmgxMEwyNC43LDE2Ljd6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPicpLGUuQ2xyU2hhcGVCb2F0PSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0yOS4xLDI3LjFD''@;'; put 'put ''MjgsMjcsMjYuOSwyNy40LDI2LDI4LjJjLTEuMSwxLjEtMi45LDEuMS00LjEsMGMtMS0wLjctMi4xLTEuMS0zLjMtMS4xYy0xLjItMC4xLTIuNCwwLjMtMy4zLDEuMVxuXHRcdEMxNC43LDI4LjcsMTQsMjksMTMuMiwyOXMtMS41LTAuMy0yLjEtMC44Yy0xLTAuOC0yLjItMS4yLTMuNC0xLjJz''@;'; put 'put ''LTIuNCwwLjQtMy40LDEuMkMzLjcsMjguNywyLjgsMjksMiwyOXYyXG5cdFx0YzEuMywwLjEsMi42LTAuMywzLjYtMS4yQzYuMiwyOS4zLDcuMSwyOSw3LjksMjljMC43LDAsMS41LDAuMywyLjEsMC44YzEuOCwxLjYsNC42LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOFxuXHRc''@;'; put 'put ''dGMwLjcsMCwxLjQsMC4zLDIsMC44YzEuOSwxLjYsNC42LDEuNiw2LjUsMGMwLjUtMC41LDEuMy0wLjgsMi0wLjhjMC43LDAsMS40LDAuMywxLjksMC44YzAuOSwwLjcsMS45LDEuMSwzLDEuMnYtMlxuXHRcdGMtMSwwLTEuMi0wLjQtMS43LTAuOEMzMS40LDI3LjUsMzAuMywyNy4xLDI5LjEs''@;'; put 'put ''MjcuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRoIGQ9Ik02LDIzYzAtMC42LDAuNS0xLDEuMS0xSDMybC0zLjUsMy4xaDAuMmMwLjgsMCwxLjYsMC4yLDIuMiwwLjVsMi41LTIuMmwwLjItMC4yYzAuNy0wLjgsMC42LTIuMS0wLjItMi44XG5c''@;'; put 'put ''dFx0QzMzLDIwLjIsMzIuNiwyMCwzMi4xLDIwaC0yNWMtMS43LDAtMywxLjMtMywzdjMuMmMwLjUtMC41LDEuMi0wLjgsMS45LTEuMVYyM3oiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik04LjksMTlIMTV2LTcuOGMwLTAuNi0wLjMtMS4y''@;'; put 'put ''LTAuOC0xLjZDMTMuMyw4LjksMTIsOS4xLDExLjQsMTBsLTQuMSw1LjljLTAuNCwwLjYtMC40LDEuNC0wLjEsMi4xQzcuNSwxOC42LDguMiwxOSw4LjksMTlcblx0XHR6IE0xMy4xLDExLjJMMTMsMTdIOC45TDEzLjEsMTEuMnoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUt''@;'; put 'put ''cGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNiwxOGMwLjQtMC42LDAuNC0xLjQsMC0yTDE5LjcsNS42Yy0wLjQtMC42LTEtMS0xLjctMWMtMS4xLDAtMiwwLjktMiwyVjE5aDguM0MyNSwxOSwyNS43LDE4LjYsMjYsMTh6IE0xNy45LDYuNlxuXHRcdGw2LjQsMTAuNWgtNi40VjYuNnoiIGNsYXNzPSJj''@;'; put 'put ''bHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwYXRoIGQ9Ik0zNCwzMWMtMS4xLTAuMS0yLjEtMC41LTMtMS4yYy0wLjUtMC41LTEuMi0wLjgtMi0wLjhjLTAuNywwLTEuNSwwLjMtMiwwLjhjLTAuOSwwLjgtMiwxLjEtMy4xLDEuMWMtMS4yLDAtMi40LTAuNC0zLjMtMS4x''@;'; put 'put ''XG5cdGMtMS4yLTEuMS0zLTEuMS00LjEsMGMtMC45LDAuOC0yLjEsMS4yLTMuNCwxLjJjLTEuMiwwLTIuMy0wLjQtMy4yLTEuMmMtMC42LTAuNS0xLjMtMC44LTItMC44Yy0wLjgsMC0xLjcsMC4zLTIuMywwLjhcblx0Yy0xLDAuOC0yLjMsMS4yLTMuNSwxLjFWMjljMC44LDAsMS43LTAuMywy''@;'; put 'put ''LjMtMC45YzEtMC44LDIuMi0xLjIsMy40LTEuMWMxLjIsMCwyLjQsMC40LDMuMywxLjJjMS4yLDEuMSwzLDEuMSw0LjIsMFxuXHRjMS45LTEuNiw0LjctMS42LDYuNSwwYzEuMiwxLjEsMywxLjEsNC4xLDBjMC45LTAuOCwyLjEtMS4yLDMuMy0xLjJjMS4xLDAsMi4yLDAuNCwzLDEuMkMzMi44''@;'; put 'put ''LDI4LjcsMzMsMjksMzQsMjlMMzQsMzF6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik00LjEsMjYuMmMwLjYtMC41LDEuMi0wLjgsMS45LTFWMjNjMC0wLjYsMC40LTEuMSwxLTEuMWgyNUwyOC40LDI1aDAuMmMwLjgsMCwxLjYsMC4yLDIuMiww''@;'; put 'put ''LjVsMi41LTIuMmwwLjItMC4yXG5cdGMwLjctMC45LDAuNS0yLjEtMC40LTIuOEMzMi45LDIwLjEsMzIuNCwyMCwzMiwyMEg3Yy0xLjcsMC0zLDEuMy0zLDNMNC4xLDI2LjJMNC4xLDI2LjJ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNC45''@;'; put 'put ''LDE4LjlIOC45Yy0xLjEsMC0yLTAuOS0yLTJjMC0wLjQsMC4xLTAuOCwwLjQtMS4ybDQuMS01LjhjMC42LTAuOSwxLjktMS4xLDIuOC0wLjVjMC41LDAuNCwwLjgsMSwwLjgsMS42VjE4Ljl6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0yNC4z''@;'; put 'put ''LDE4LjlIMTZWNi40YzAtMS4xLDAuOS0yLDItMmMwLjcsMCwxLjMsMC40LDEuNywxTDI2LDE1LjhjMC42LDEsMC4yLDIuMi0wLjcsMi43QzI1LDE4LjcsMjQuNiwxOC44LDI0LjMsMTguOVxuXHRMMjQuMywxOC45eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtNCIgLz4n''@;'; put 'put ''KSxlLkNsclNoYXBlQ2FtcGVydmFuPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik05LjUsMjRDOS41LDI0LDkuNSwyNCw5LjUsMjRDNy42LDI0LDYsMjUuNiw2LDI3LjVjMCwwLDAsMCwwLDBDNiwyOS40LDcuNiwzMSw5LjUsMzFjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzExLjQs''@;'; put 'put ''MjQsOS41LDI0eiBNOS41LDI5QzguNywyOSw4LDI4LjMsOCwyNy41UzguNywyNiw5LjUsMjZzMS41LDAuNywxLjUsMS41UzEwLjMsMjksOS41LDI5eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiIC8+PHBhdGggZD0iTTIzLjUsMjRDMjMuNSwyNCwyMy41LDI0''@;'; put 'put ''LDIzLjUsMjRjLTEuOSwwLTMuNSwxLjYtMy41LDMuNWMwLDAsMCwwLDAsMGMwLDEuOSwxLjUsMy41LDMuNSwzLjVjMS45LDAsMy41LTEuNiwzLjUtMy41XG5cdFx0UzI1LjQsMjQsMjMuNSwyNHogTTIzLjUsMjljLTAuOCwwLTEuNS0wLjctMS41LTEuNXMwLjctMS41LDEuNS0xLjVzMS41LDAu''@;'; put 'put ''NywxLjUsMS41UzI0LjMsMjksMjMuNSwyOXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0zMywyMC4xVjIwaC0wLjFsLTMuNS01LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4zVjkuN0MzMiw3LjEsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjks''@;'; put 'put ''MC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM1xuXHRcdHYxN2gyVjExYzAtMC42LDAuNC0xLDEtMWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI0djloNy44XG5cdFx0''@;'; put 'put ''bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wzMywyMC4xeiBNMjYsMjB2LTVoMS41bDMuMSw1SDI2eiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTMiIC8+PHJlY3QgeD0iMTkiIHk9IjkiIHdpZHRoPSI4IiBo''@;'; put 'put ''ZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC00IiAvPjxwb2x5Z29uIHBvaW50cz0iMjAsMjIgMjIsMjIgMjIsMTMgMTUsMTMgMTUsMjggMTcsMjggMTcsMTUgMjAsMTUgXHQiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC01''@;'; put 'put ''IiAvPjxwYXRoIGQ9Ik02LDIwaDd2LTdINlYyMHogTTgsMTVoM3YzSDhWMTV6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtNiIgLz48cGF0aCBkPSJNOS41LDI0QzcuNiwyNCw2LDI1LjYsNiwyNy41UzcuNiwzMSw5LjUsMzFjMCwwLDAsMCwwLDBjMS45LDAsMy41''@;'; put 'put ''LTEuNiwzLjUtMy41YzAsMCwwLTAuMSwwLTAuMUMxMywyNS41LDExLjQsMjQsOS41LDI0eiJcblx0XHQgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48Y2lyY2xlIGN4PSIyMy41IiBjeT0iMjcuNSIgcj0iMy41IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29s''@;'; put 'put ''aWQtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0yOS41LDE0LjVDMzEsMTMuNiwzMiwxMiwzMiwxMC4yVjkuN2MwLDAsMCwwLDAtMC4xQzMyLDcsMjkuOSw1LDI3LjMsNWgtOC41Yy0xLjksMC0zLjcsMS4yLTQuNCwzSDVjLTEuNywwLTMsMS4zLTMsM3YxN1xuXHRcdGgyVjExYzAtMC42LDAuNC0xLDEt''@;'; put 'put ''MWgxMC45TDE2LDkuMkMxNi4zLDcuOSwxNy40LDcsMTguNyw3aDguNUMyOC44LDcsMzAsOC4yLDMwLDkuN3YwLjVjMCwxLjUtMS4yLDIuNy0yLjcsMi43SDI3aC0zdjloNy44XG5cdFx0bDAuMiwwLjNWMjVjMCwwLjYtMC40LDEtMSwxaC0ydjJoMmMxLjcsMCwzLTEuMywzLTN2LTMuM0wyOS41''@;'; put 'put ''LDE0LjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0zIiAvPjxyZWN0IHg9IjE5IiB5PSI5IiB3aWR0aD0iNy45IiBoZWlnaHQ9IjIiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTQiIC8+PHBvbHlnb24gcG9pbnRzPSIyMCwyMiAyMS45LDIyIDIx''@;'; put 'put ''LjksMTMgMTUsMTMgMTUsMjggMTYuOSwyOCAxNi45LDE1IDIwLDE1IFx0IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC01IiAvPjxyZWN0IHg9IjYiIHk9IjEzIiB3aWR0aD0iNi45IiBoZWlnaHQ9IjciIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTYi''@;'; put 'put ''IC8+JyksZS5DbHJTaGFwZUNhcmF2YW49KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTEzLjUsMjFDMTEsMjEsOSwyMyw5LDI1LjVzMiw0LjUsNC41LDQuNWMyLjUsMCw0LjUtMiw0LjUtNC41QzE4LDIzLDE2LDIxLDEzLjUsMjF6IE0xMy41LDI4Yy0xLjQsMC0yLjUtMS4xLTIuNS0yLjVc''@;'; put 'put ''blx0XHRzMS4xLTIuNSwyLjUtMi41czIuNSwxLjEsMi41LDIuNVMxNC45LDI4LDEzLjUsMjh6IiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMSIgLz48cGF0aCBkPSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUt''@;'; put 'put ''MS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRcdGMtMC42LDAtMS0wLjQtMS0xVjljMC0wLjYsMC40LTEsMS0xaDE4LjhjMC40LDAsMC43LDAuMiwwLjksMC41bDQuMiw3LjVjMC4xLDAuMSwwLjEsMC4zLDAuMSwwLjVWMjRoLTRWMTJo''@;'; put 'put ''LTd2OGgydi02aDN2MTBoLTN2MmgxM1xuXHRcdGMwLjYsMCwxLTAuNCwxLTFTMzMuNiwyNCwzMywyNHoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0yIiAvPjxwYXRoIGQ9Ik0xNiwxMkg3djZoOVYxMnogTTE0LDE2SDl2LTJoNVYxNnoiIGNsYXNzPSJjbHItaS1v''@;'; put 'put ''dXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0xMy41LDMwQzExLDMwLDksMjgsOSwyNS41czItNC41LDQuNS00LjVzNC41LDIsNC41LDQuNUMxOCwyOCwxNiwzMCwxMy41LDMweiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBk''@;'; put 'put ''PSJNMzMsMjRoLTJ2LTcuNWMwLTAuNS0wLjEtMS0wLjQtMS41bC00LjItNy41Yy0wLjUtMS0xLjUtMS41LTIuNi0xLjVINUMzLjMsNiwyLDcuMywyLDl2MTRjMCwxLjcsMS4zLDMsMywzaDJ2LTJINVxuXHRjLTAuNiwwLTEtMC40LTEtMVY5YzAtMC42LDAuNC0xLDEtMWgxOC44YzAuNCwwLDAu''@;'; put 'put ''NywwLjIsMC45LDAuNWw0LjIsNy41YzAuMSwwLjEsMC4xLDAuMywwLjEsMC41VjI0aC00VjEyaC03djhoMnYtNmgzdjEwaC0zdjJoMTNcblx0YzAuNiwwLDEtMC40LDEtMVMzMy42LDI0LDMzLDI0eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMiIgLz48cGF0aCBkPSJN''@;'; put 'put ''MTYsMThIN3YtNmg5VjE4eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMyIgLz4nKSxlLkNsclNoYXBlRmVycnk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTI5LDI1LjFjLTEuMiwwLTIuMywwLjQtMy4zLDEuMWMwLDAsMCwwLDAsMGMtMS4xLDEuMS0zLDEuMS00''@;'; put 'put ''LjEsMGMtMC45LTAuOC0yLjEtMS4yLTMuMy0xLjJjLTEuMiwwLTIuMywwLjQtMy4yLDEuMlxuXHRcdGMtMS4yLDEuMS0zLDEuMS00LjIsMEMxMCwyNS40LDguOCwyNSw3LjYsMjVjLTEuMiwwLTIuNCwwLjQtMy40LDEuMUMzLjYsMjYuNywyLjgsMjcsMiwyN3YyYzEuMywwLjEsMi41LTAuNCwz''@;'; put 'put ''LjQtMS4yXG5cdFx0QzYuMSwyNy4zLDYuOSwyNyw3LjcsMjdjMC44LDAsMS41LDAuMywyLjEsMC44YzEuOSwxLjYsNC43LDEuNiw2LjUsMGMwLjYtMC41LDEuMy0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhcblx0XHRjMS45LDEuNiw0LjYsMS42LDYuNSwwYzAuNS0wLjUsMS4z''@;'; put 'put ''LTAuOCwyLTAuOGMwLjcsMCwxLjUsMC4zLDIsMC44YzAuOSwwLjcsMiwxLjEsMy4xLDEuMnYtMS45Yy0wLjcsMC0xLjQtMC4zLTEuOS0wLjlcblx0XHRDMzEuMywyNS40LDMwLjEsMjUsMjksMjUuMXoiIGNsYXNzPSJjbHItaS1vdXRsaW5lIGNsci1pLW91dGxpbmUtcGF0aC0xIiAvPjxwYXRo''@;'; put 'put ''IGQ9Ik01LjksMjMuMlYyMEgzMmwtMy41LDNoMC4yYzAuOCwwLDEuNiwwLjIsMi4yLDAuNWwyLjUtMi4ybDAuMi0wLjJjMC41LTAuNiwwLjUtMS40LDAuMi0yLjFjLTAuNC0wLjctMS0xLTEuOC0xaC00LjRcblx0XHRMMjIuNSwxMUgxN2MtMS43LDAtMywxLjMtMywzaC0yVjguMUg2djYuMWMt''@;'; put 'put ''MS4yLDAuNC0yLDEuNS0yLDIuOHYxLjFWMjB2NC4zbDAuMS0wLjFDNC42LDIzLjcsNS4yLDIzLjQsNS45LDIzLjJ6IE04LDEwaDJ2NEg4VjEwelxuXHRcdCBNNiwxN2MwLTAuNiwwLjQtMSwxLTFoOXYtMmMwLTAuNiwwLjQtMSwxLTFoNWwwLjYsMUgxOHYyaDUuOGwxLjIsMi4xSDZWMTd6IiBj''@;'; put 'put ''bGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMjguMiwyNWMtMS4yLDAtMi40LDAuNC0zLjMsMS4yYy0xLjIsMS4xLTMsMS4xLTQuMSwwYy0xLjktMS42LTQuNi0xLjYtNi41LDBjLTEuMiwxLjEtMi45LDEuMS00LjEsMFxuXHRcdGMtMC45LTAu''@;'; put 'put ''OC0yLTEuMi0zLjItMS4yYy0xLjIsMC0yLjMsMC40LTMuMiwxLjJDMy40LDI2LjcsMi43LDI3LDIsMjd2MmMxLjEtMC4xLDIuMi0wLjUsMy4xLTEuMkM1LjYsMjcuMyw2LjMsMjcsNywyN1xuXHRcdGMwLjcsMCwxLjUsMC4zLDIsMC44YzEuOSwxLjYsNC43LDEuNiw2LjYsMGMwLjYtMC41LDEu''@;'; put 'put ''My0wLjgsMi4xLTAuOGMwLjgsMCwxLjUsMC4zLDIuMSwwLjhjMS45LDEuNiw0LjcsMS42LDYuNSwwXG5cdFx0YzAuNi0wLjUsMS4zLTAuOCwyLjEtMC44YzAuOCwwLDEuNiwwLjMsMi4xLDAuOGMwLjksMC44LDIuMiwxLjMsMy40LDEuMnYtMmMtMC44LDAtMS42LTAuMy0yLjItMC44QzMwLjcs''@;'; put 'put ''MjUuNCwyOS41LDI1LDI4LjIsMjV6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0xIiAvPjxwYXRoIGQ9Ik01LjgsMjMuMnYtMy4zaDI2LjFMMjguNCwyM2gwLjJjMC44LDAsMS42LDAuMiwyLjIsMC41bDIuNS0yLjJsMC4xLTAuMmMwLjctMC45LDAuNS0yLjEtMC40LTIu''@;'; put 'put ''OGMtMC4zLTAuMy0wLjgtMC40LTEuMi0wLjRcblx0XHRoLTQuMWwtNS40LTdoLTUuNWMtMS43LDAtMywxLjMtMywzaC0yVjhINnY2LjJjLTEuMiwwLjQtMi4xLDEuNS0yLjEsMi44bDAsNy4ybDAuMSwwQzQuNSwyMy43LDUuMSwyMy40LDUuOCwyMy4yeiBNMTcuOSwxNGg0LjJcblx0XHRsMS40''@;'; put 'put ''LDJoLTUuN1YxNHogTTcuOSwxMGgydjRoLTJWMTB6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVUcmFpbGVyPSgwLGEuY2xySWNvblNWRykoJzxwYXRoIGQ9Ik0xNSwxOS4yYy0zLjIsMC01LjgsMi42LTUuOCw1LjhzMi42LDUuOCw1Ljgs''@;'; put 'put ''NS44czUuOC0yLjYsNS44LTUuOFMxOC4yLDE5LjIsMTUsMTkuMnogTTE1LDI5LjJjLTIuMywwLTQuMi0xLjktNC4yLTQuMlxuXHRcdHMxLjktNC4yLDQuMi00LjJzNC4yLDEuOSw0LjIsNC4yUzE3LjMsMjkuMiwxNSwyOS4yeiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1w''@;'; put 'put ''YXRoLTEiIC8+PHJlY3QgeD0iMTQiIHk9IjI0IiB3aWR0aD0iMiIgaGVpZ2h0PSIyIiBjbGFzcz0iY2xyLWktb3V0bGluZSBjbHItaS1vdXRsaW5lLXBhdGgtMiIgLz48cGF0aCBkPSJNMzMsOUgydjEzLjFjMCwwLDAsMCwwLDBDMiwyNC4zLDMuNywyNiw1LjksMjZIN3YtMkg1LjljLTEsMC0x''@;'; put 'put ''LjgtMC44LTEuOS0xLjlWMTVoMjJ2Ny4xYzAsMS0wLjgsMS44LTEuOSwxLjlIMjN2MmgxLjFcblx0XHRjMCwwLDAsMCwwLDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiBNMjYsMTNINHYtMmgyMlYxM3oiIGNsYXNzPSJjbHItaS1vdXRs''@;'; put 'put ''aW5lIGNsci1pLW91dGxpbmUtcGF0aC0zIiAvPjxwYXRoIGQ9Ik0zMyw5SDJ2MTMuMWMwLDAsMCwwLDAsMEMyLDI0LjMsMy43LDI2LDUuOSwyNkg3di0ySDUuOWMtMSwwLTEuOC0wLjgtMS45LTEuOVYxNWgyMnY3LjFjMCwxLTAuOCwxLjgtMS45LDEuOUgyM3YyaDEuMVxuXHRjMCwwLDAsMCww''@;'; put 'put ''LDBjMi4xLDAsMy44LTEuNywzLjgtMy45VjExaDVjMC42LDAsMS0wLjQsMS0xUzMzLjYsOSwzMyw5eiIgY2xhc3M9ImNsci1pLXNvbGlkIGNsci1pLXNvbGlkLXBhdGgtMSIgLz48cGF0aCBkPSJNMTUsMTkuMmMtMy4yLDAtNS44LDIuNi01LjgsNS44czIuNiw1LjgsNS44LDUuOHM1LjgtMi42''@;'; put 'put ''LDUuOC01LjhsMCwwQzIwLjgsMjEuOCwxOC4yLDE5LjIsMTUsMTkuMnogTTE2LDI2aC0ydi0yaDJWMjZ6IiBjbGFzcz0iY2xyLWktc29saWQgY2xyLWktc29saWQtcGF0aC0yIiAvPicpLGUuQ2xyU2hhcGVPbkhvbGlkYXk9KDAsYS5jbHJJY29uU1ZHKSgnPHBhdGggZD0iTTE4LjA4LDIuMzRj''@;'; put 'put ''LTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRBMTcuOTEsMTcuOTEsMCwwLDAsMjMsMjkuNjZsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zLDEsMSwwLDAsMCwuMTYtLjU0VjI1LjYxYTEzLDEzLDAsMCwwLDQtOS4yN0MzNC4wOCw4LjYyLDI2LjksMi4zNCwxOC4wOCwyLjM0''@;'; put 'put ''Wk0yOC4zNywyNC40NWExLDEsMCwwLDAtLjMyLjczdjUuMzRsLTQuMzgtMi43OWExLDEsMCwwLDAtLjgzLS4xMSwxNiwxNiwwLDAsMS00Ljc2LjcyYy03LjcyLDAtMTQtNS4zOC0xNC0xMnM2LjI4LTEyLDE0LTEyLDE0LDUuMzgsMTQsMTJBMTEuMSwxMS4xLDAsMCwxLDI4LjM3LDI0LjQ1WiIg''@;'; put 'put ''Y2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0bGluZS1wYXRoLTEiLz5cbiAgPHBhdGggZD0iTTMxLjEsMTUuODIsMzEsMTUuNjcsMjguNSwxMy40NGEzLjI1LDMuMjUsMCwwLDAtMi4zOS0uODRsLTUuMzguMzQtMy41OS0zYS44MS44MSwwLDAsMC0uNTItLjE5SDEzLjU2YS43OC43OCww''@;'; put 'put ''LDAsMC0uNjkuNC43Ny43NywwLDAsMCwwLC43OWwxLjM2LDIuNDQtNC43MS4yOSwxLjMxLDEuNTIsMTUuMzktMWExLjY1LDEuNjUsMCwwLDEsMS4yMi40M2wyLjM2LDIuMTNhLjExLjExLDAsMCwxLDAsLjA3YzAsLjA2LS4wOS4wNS0uMS4wNkgyMS44MmwtLjM1LjM3LTUuMTksNS41M0gxNC42''@;'; put 'put ''NGwyLjczLTUuOUg4LjU0TDcuMTMsMTQuMTYsNi41MSwxM2EuOC44LDAsMCwwLTEtLjJBLjgxLjgxLDAsMCwwLDUuMiwxMy45bDIsMy45NGExLjIxLDEuMjEsMCwwLDAsMS4wOC42NWg2LjU3bC0xLjk0LDQuMThBMS4yLDEuMiwwLDAsMCwxMywyMy44M2ExLjIyLDEuMjIsMCwwLDAsMSwuNTZo''@;'; put 'put ''Mi40M2ExLjE3LDEuMTcsMCwwLDAsLjg4LS4zOWw1LjE4LTUuNTFoNy4xNmExLjY1LDEuNjUsMCwwLDAsMS41Mi0uOTFBMS43NCwxLjc0LDAsMCwwLDMxLjEsMTUuODJaTTE0LjkyLDExLjMxaDEuNDFsMi4wOSwxLjc3TDE2LDEzLjIzWiIgY2xhc3M9ImNsci1pLW91dGxpbmUgY2xyLWktb3V0''@;'; put 'put ''bGluZS1wYXRoLTIiLz5cbiAgXG4gIDxwYXRoIGQ9Ik0xOCwyLjVjLTguODIsMC0xNiw2LjI4LTE2LDE0czcuMTgsMTQsMTYsMTRhMTcuOTEsMTcuOTEsMCwwLDAsNC44OC0uNjhsNS41MywzLjUyYTEsMSwwLDAsMCwxLjM4LS4zQTEsMSwwLDAsMCwzMCwzMi41VjI1Ljc3YTEzLDEzLDAsMCww''@;'; put 'put ''LDQtOS4yN0MzNCw4Ljc4LDI2LjgyLDIuNSwxOCwyLjVaTTI5Ljg0LDE4SDIxLjUxYS40Mi40MiwwLDAsMC0uMy4xM2wtNS4zLDUuNjRhLjM5LjM5LDAsMCwxLS4yOS4xM0gxMy4xOWEuNDEuNDEsMCwwLDEtLjM3LS41OGwyLjQ3LTUuMzJINy40NmEuNDIuNDIsMCwwLDEtLjM2LS4yMmwtMi43''@;'; put 'put ''LTVINi4yNGEuNTMuNTMsMCwwLDEsLjM5LjE4bDEuNTYsMS42OWEuMzguMzgsMCwwLDAsLjMzLjE0bDYuMTgtLjM4LTItMy41NWgyLjg5YS40Ny40NywwLDAsMSwuMzEuMTFMMTkuNjMsMTRsNi42OS0uMzVhMi40NCwyLjQ0LDAsMCwxLDEuODEuNjNsMi40NywyLjIzQS45Mi45MiwwLDAsMSwy''@;'; put 'put ''OS44NCwxOFoiIGNsYXNzPSJjbHItaS1zb2xpZCBjbHItaS1zb2xpZC1wYXRoLTEiLz5cbiAgJyksZS5UcmF2ZWxTaGFwZXM9e3RydWNrOmUuQ2xyU2hhcGVUcnVjayxhaXJwbGFuZTplLkNsclNoYXBlQWlycGxhbmUsY2FyOmUuQ2xyU2hhcGVDYXIsbWFwOmUuQ2xyU2hhcGVNYXAsY29tcGFz''@;'; put 'put ''czplLkNsclNoYXBlQ29tcGFzcywibWFwLW1hcmtlciI6ZS5DbHJTaGFwZU1hcE1hcmtlcixiaWN5Y2xlOmUuQ2xyU2hhcGVCaWN5Y2xlLGJvYXQ6ZS5DbHJTaGFwZUJvYXQsY2FtcGVydmFuOmUuQ2xyU2hhcGVDYW1wZXJ2YW4sY2FyYXZhbjplLkNsclNoYXBlQ2FyYXZhbixmZXJyeTplLkNs''@;'; put 'put ''clNoYXBlRmVycnksdHJhaWxlcjplLkNsclNoYXBlVHJhaWxlciwib24taG9saWRheSI6ZS5DbHJTaGFwZU9uSG9saWRheX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUuVHJhdmVsU2hhcGVzLCJwbGFuZSIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRyYXZlbFNoYXBlcy5haXJwbGFuZSkp''@;'; put 'put ''LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLlRyYXZlbFNoYXBlcywiYXV0byIsKDAsci5kZXNjcmlwdG9yQ29uZmlnKShlLlRyYXZlbFNoYXBlcy5jYXIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93Lmhhc093blByb3BlcnR5KCJDbGFyaXR5SWNvbnMiKSYmd2luZG93LkNs''@;'; put 'put ''YXJpdHlJY29ucy5hZGQoZS5UcmF2ZWxTaGFwZXMpfSwiLi9wcm9qZWN0cy9pY29ucy9zcmMvdXRpbHMvZGVzY3JpcHRvci1jb25maWcudHMiOmZ1bmN0aW9uKEEsZSxsKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLGUuZGVz''@;'; put 'put ''Y3JpcHRvckNvbmZpZz12b2lkIDAsZS5kZXNjcmlwdG9yQ29uZmlnPWZ1bmN0aW9uKHIpe3JldHVybntlbnVtZXJhYmxlOiEwLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx2YWx1ZTpyfX19LCIuL3Byb2plY3RzL2ljb25zL3NyYy91dGlscy9zaGFwZS10ZW1wbGF0ZS1vYnNlcnZlci50''@;'; put 'put ''cyI6ZnVuY3Rpb24oQSxlLGwpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksZS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXI9ZS5jaGFuZ2VIYW5kbGVyQ2FsbGJhY2tzPXZvaWQgMCxlLmNoYW5nZUhhbmRsZXJDYWxsYmFja3M9e307''@;'; put 'put ''dmFyIHI9KE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJpbnN0YW5jZSIse2dldDpmdW5jdGlvbigpe3JldHVybiBhLnNpbmdsZUluc3RhbmNlPWEuc2luZ2xlSW5zdGFuY2U/YS5zaW5nbGVJbnN0YW5jZTpuZXcgYX0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxhLnByb3RvdHlw''@;'; put 'put ''ZS5zdWJzY3JpYmVUbz1mdW5jdGlvbihjLG8pe3ZhciBoPXRoaXM7cmV0dXJuIHRoaXMuY2FsbGJhY2tzW2NdPy0xPT09dGhpcy5jYWxsYmFja3NbY10uaW5kZXhPZihvKSYmdGhpcy5jYWxsYmFja3NbY10ucHVzaChvKTp0aGlzLmNhbGxiYWNrc1tjXT1bb10sZnVuY3Rpb24oKXt2YXIgZj1o''@;'; put 'put ''LmNhbGxiYWNrc1tjXS5pbmRleE9mKG8pO2guY2FsbGJhY2tzW2NdLnNwbGljZShmLDEpLDA9PT1oLmNhbGxiYWNrc1tjXS5sZW5ndGgmJmRlbGV0ZSBoLmNhbGxiYWNrc1tjXX19LGEucHJvdG90eXBlLmVtaXRDaGFuZ2VzPWZ1bmN0aW9uKGMsbyl7dGhpcy5jYWxsYmFja3NbY10mJnRoaXMu''@;'; put 'put ''Y2FsbGJhY2tzW2NdLm1hcChmdW5jdGlvbihoKXtoKG8pfSl9LGEpO2Z1bmN0aW9uIGEoKXt0aGlzLmNhbGxiYWNrcz1lLmNoYW5nZUhhbmRsZXJDYWxsYmFja3N9ZS5TaGFwZVRlbXBsYXRlT2JzZXJ2ZXI9cn0sIi4vcHJvamVjdHMvaWNvbnMvc3JjL3V0aWxzL3N2Zy10YWctZ2VuZXJhdG9y''@;'; put 'put ''LnRzIjpmdW5jdGlvbihBLGUsbCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxlLmNsckljb25TVkc9dm9pZCAwLGUuY2xySWNvblNWRz1mdW5jdGlvbihyKXt2YXIgYT0iIjtyZXR1cm4tMTxyLmluZGV4T2YoIi0tYmFkZ2Vk''@;'; put 'put ''IikmJihhKz0iY2FuLWJhZGdlICIpLC0xPHIuaW5kZXhPZigiLS1hbGVydGVkIikmJihhKz0iY2FuLWFsZXJ0ICIpLC0xPHIuaW5kZXhPZigiY2xyLWktc29saWQiKSYmKGErPSJoYXMtc29saWQgIiksKGE/JzxzdmcgdmVyc2lvbj0iMS4xIiBjbGFzcz0iJythKyciIHZpZXdCb3g9IjAgMCAz''@;'; put 'put ''NiAzNiIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgbWVldCJcbiAgICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmb2N1c2FibGU9ImZhbHNlIiByb2xlPSJpbWciPic6JzxzdmcgdmVy''@;'; put 'put ''c2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgMzYgMzYiIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaWRZTWlkIG1lZXQiXG4gICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgZm9jdXNhYmxlPSJmYWxz''@;'; put 'put ''ZSIgcm9sZT0iaW1nIj4nKStyKyI8L3N2Zz4ifX19LGs9e30sWC5tPUYxLFguYz1rLFguZD1mdW5jdGlvbihBLGUsbCl7WC5vKEEsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLGUse2VudW1lcmFibGU6ITAsZ2V0Omx9KX0sWC5yPWZ1bmN0aW9uKEEpeyJ1bmRlZmluZWQiIT10eXBlb2Yg''@;'; put 'put ''U3ltYm9sJiZTeW1ib2wudG9TdHJpbmdUYWcmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6Ik1vZHVsZSJ9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9LFgudD1mdW5jdGlvbihBLGUpe2lmKDEmZSYm''@;'; put 'put ''KEE9WChBKSksOCZlfHw0JmUmJiJvYmplY3QiPT10eXBlb2YgQSYmQSYmQS5fX2VzTW9kdWxlKXJldHVybiBBO3ZhciBsPU9iamVjdC5jcmVhdGUobnVsbCk7aWYoWC5yKGwpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTpBfSksMiZlJiYi''@;'; put 'put ''c3RyaW5nIiE9dHlwZW9mIEEpZm9yKHZhciByIGluIEEpWC5kKGwscixmdW5jdGlvbihhKXtyZXR1cm4gQVthXX0uYmluZChudWxsLHIpKTtyZXR1cm4gbH0sWC5uPWZ1bmN0aW9uKEEpe3ZhciBlPUEmJkEuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBBLmRlZmF1bHR9OmZ1bmN0aW9u''@;'; put 'put ''KCl7cmV0dXJuIEF9O3JldHVybiBYLmQoZSwiYSIsZSksZX0sWC5vPWZ1bmN0aW9uKEEsZSl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChBLGUpfSxYLnA9IiIsWChYLnM9Ii4vcHJvamVjdHMvaWNvbnMvc3JjL2Nsci1pY29ucy1zZngudHMiKTtmdW5jdGlv''@;'; put 'put ''biBYKEEpe2lmKGtbQV0pcmV0dXJuIGtbQV0uZXhwb3J0czt2YXIgZT1rW0FdPXtpOkEsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gRjFbQV0uY2FsbChlLmV4cG9ydHMsZSxlLmV4cG9ydHMsWCksZS5sPSEwLGUuZXhwb3J0c312YXIgRjEsa30pOw=='';'; put 'run;'; put '%sasjsout(JS64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=styles.55907fc751e07558-css; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''ZGl2LmNvZGUtdG9vbGJhcntwb3NpdGlvbjpyZWxhdGl2ZX1kaXYuY29kZS10b29sYmFyPi50b29sYmFye3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA7dG9wOi4zZW07cmlnaHQ6LjJlbTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UtaW4tb3V0O29wYWNpdHk6MH1kaXYuY29kZS10''@;'; put 'put ''b29sYmFyOmhvdmVyPi50b29sYmFye29wYWNpdHk6MX1kaXYuY29kZS10b29sYmFyOmZvY3VzLXdpdGhpbj4udG9vbGJhcntvcGFjaXR5OjF9ZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVte2Rpc3BsYXk6aW5saW5lLWJsb2NrfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xi''@;'; put 'put ''YXI+LnRvb2xiYXItaXRlbT5he2N1cnNvcjpwb2ludGVyfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5idXR0b257YmFja2dyb3VuZDpub25lO2JvcmRlcjowO2NvbG9yOmluaGVyaXQ7Zm9udDppbmhlcml0O2xpbmUtaGVpZ2h0Om5vcm1hbDtvdmVyZmxvdzp2aXNp''@;'; put 'put ''YmxlO3BhZGRpbmc6MDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lfWRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5hLGRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5i''@;'; put 'put ''dXR0b24sZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW57Y29sb3I6I2JiYjtmb250LXNpemU6LjhlbTtwYWRkaW5nOjAgLjVlbTtiYWNrZ3JvdW5kOiNmNWYyZjA7YmFja2dyb3VuZDpyZ2JhKDIyNCwyMjQsMjI0LC4yKTtib3gtc2hhZG93OjAgMnB4ICMwMDAz''@;'; put 'put ''O2JvcmRlci1yYWRpdXM6LjVlbX1kaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YTpob3ZlcixkaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YTpmb2N1cyxkaXYuY29kZS10b29sYmFyPi50b29sYmFyPi50b29sYmFyLWl0ZW0+YnV0dG9uOmhv''@;'; put 'put ''dmVyLGRpdi5jb2RlLXRvb2xiYXI+LnRvb2xiYXI+LnRvb2xiYXItaXRlbT5idXR0b246Zm9jdXMsZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW46aG92ZXIsZGl2LmNvZGUtdG9vbGJhcj4udG9vbGJhcj4udG9vbGJhci1pdGVtPnNwYW46Zm9jdXN7Y29sb3I6''@;'; put 'put ''aW5oZXJpdDt0ZXh0LWRlY29yYXRpb246bm9uZX0vKiEKICogQ29weXJpZ2h0IChjKSBIQU5EU09OQ09ERSBzcC4geiBvLiBvLgogKiAKICogSEFORFNPTlRBQkxFIGlzIGEgc29mdHdhcmUgZGlzdHJpYnV0ZWQgYnkgSEFORFNPTkNPREUgc3AuIHogby4gby4sIGEgUG9saXNoIGNvcnBvcmF0''@;'; put 'put ''aW9uIGJhc2VkIGluCiAqIEdkeW5pYSwgUG9sYW5kLCBhdCBBbGVqYSBad3ljaWXMqHN0d2EgOTYtOTgsIHJlZ2lzdGVyZWQgYnkgdGhlIERpc3RyaWN0IENvdXJ0IGluIEdkYW5zayB1bmRlciBudW1iZXIKICogNTM4NjUxLCBFVSB0YXggSUQgbnVtYmVyOiBQTDU4NjIyOTQwMDIsIHNoYXJl''@;'; put 'put ''IGNhcGl0YWw6IFBMTiA2Miw4MDAuMDAuCiAqIAogKiBUaGlzIHNvZnR3YXJlIGlzIHByb3RlY3RlZCBieSBhcHBsaWNhYmxlIGNvcHlyaWdodCBsYXdzLCBpbmNsdWRpbmcgaW50ZXJuYXRpb25hbCB0cmVhdGllcywgYW5kIGR1YWwtCiAqIGxpY2Vuc2VkIOKAkyBkZXBlbmRpbmcgb24gd2hl''@;'; put 'put ''dGhlciB5b3VyIHVzZSBmb3IgY29tbWVyY2lhbCBwdXJwb3NlcywgbWVhbmluZyBpbnRlbmRlZCBmb3Igb3IKICogcmVzdWx0aW5nIGluIGNvbW1lcmNpYWwgYWR2YW50YWdlIG9yIG1vbmV0YXJ5IGNvbXBlbnNhdGlvbiwgb3Igbm90LgogKiAKICogSWYgeW91ciB1c2UgaXMgc3RyaWN0bHkg''@;'; put 'put ''cGVyc29uYWwgb3Igc29sZWx5IGZvciBldmFsdWF0aW9uIHB1cnBvc2VzLCBtZWFuaW5nIGZvciB0aGUgcHVycG9zZXMgb2YgdGVzdGluZwogKiB0aGUgc3VpdGFiaWxpdHksIHBlcmZvcm1hbmNlLCBhbmQgdXNlZnVsbmVzcyBvZiB0aGlzIHNvZnR3YXJlIG91dHNpZGUgdGhlIHByb2R1Y3Rp''@;'; put 'put ''b24gZW52aXJvbm1lbnQsCiAqIHlvdSBhZ3JlZSB0byBiZSBib3VuZCBieSB0aGUgdGVybXMgaW5jbHVkZWQgaW4gdGhlICJoYW5kc29udGFibGUtbm9uLWNvbW1lcmNpYWwtbGljZW5zZS5wZGYiIGZpbGUuCiAqIAogKiBZb3VyIHVzZSBvZiB0aGlzIHNvZnR3YXJlIGZvciBjb21tZXJjaWFs''@;'; put 'put ''IHB1cnBvc2VzIGlzIHN1YmplY3QgdG8gdGhlIHRlcm1zIGluY2x1ZGVkIGluIGFuIGFwcGxpY2FibGUKICogbGljZW5zZSBhZ3JlZW1lbnQuCiAqIAogKiBJbiBhbnkgY2FzZSwgeW91IG11c3Qgbm90IG1ha2UgYW55IHN1Y2ggdXNlIG9mIHRoaXMgc29mdHdhcmUgYXMgdG8gZGV2ZWxvcCBz''@;'; put 'put ''b2Z0d2FyZSB3aGljaCBtYXkgYmUKICogY29uc2lkZXJlZCBjb21wZXRpdGl2ZSB3aXRoIHRoaXMgc29mdHdhcmUuCiAqIAogKiBVTkxFU1MgRVhQUkVTU0xZIEFHUkVFRCBPVEhFUldJU0UsIEhBTkRTT05DT0RFIFBST1ZJREVTIFRISVMgU09GVFdBUkUgT04gQU4gIkFTIElTIgogKiBCQVNJ''@;'; put 'put ''UywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEFORCBJTiBOTyBFVkVOVCBBTkQgVU5ERVIgTk8KICogTEVHQUwgVEhFT1JZLCBTSEFMTCBIQU5EU09OQ09ERSBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLCBJTkNMVURJTkcgQU5ZIERJUkVDVCwK''@;'; put 'put ''ICogSU5ESVJFQ1QsIFNQRUNJQUwsIElOQ0lERU5UQUwsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPRiBBTlkgQ0hBUkFDVEVSIEFSSVNJTkcgRlJPTQogKiBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSElTIFNPRlRXQVJFLgogKiAKICogVmVyc2lvbjogMTIuMS4yCiAqIFJlbGVhc2Ug''@;'; put 'put ''ZGF0ZTogMDgvMDcvMjAyMiAoYnVpbHQgYXQgMDgvMDcvMjAyMiAwOToyNTo0MCkKICovLmhhbmRzb250YWJsZSAudGFibGUgdGgsLmhhbmRzb250YWJsZSAudGFibGUgdGR7Ym9yZGVyLXRvcDpub25lfS5oYW5kc29udGFibGUgdHJ7YmFja2dyb3VuZDojZmZmfS5oYW5kc29udGFibGUgdGR7''@;'; put 'put ''YmFja2dyb3VuZC1jb2xvcjppbmhlcml0fS5oYW5kc29udGFibGUgLnRhYmxlIGNhcHRpb24rdGhlYWQgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSAudGFibGUgY2FwdGlvbit0aGVhZCB0cjpmaXJzdC1jaGlsZCB0ZCwuaGFuZHNvbnRhYmxlIC50YWJsZSBjb2xncm91cCt0aGVh''@;'; put 'put ''ZCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSBjb2xncm91cCt0aGVhZCB0cjpmaXJzdC1jaGlsZCB0ZCwuaGFuZHNvbnRhYmxlIC50YWJsZSB0aGVhZDpmaXJzdC1jaGlsZCB0cjpmaXJzdC1jaGlsZCB0aCwuaGFuZHNvbnRhYmxlIC50YWJsZSB0aGVhZDpmaXJzdC1j''@;'; put 'put ''aGlsZCB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjQ0NDQ0NDfS5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVke2JvcmRlcjowO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZX0uaGFuZHNvbnRhYmxlIC50YWJsZS1ib3JkZXJlZCB0aCwuaGFuZHNvbnRhYmxlIC50''@;'; put 'put ''YWJsZS1ib3JkZXJlZCB0ZHtib3JkZXItbGVmdDpub25lfS5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRoOmZpcnN0LWNoaWxkLC5oYW5kc29udGFibGUgLnRhYmxlLWJvcmRlcmVkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQ0NDQ0NDfS5oYW5kc29udGFi''@;'; put 'put ''bGUgLnRhYmxlPnRib2R5PnRyPnRkLC5oYW5kc29udGFibGUgLnRhYmxlPnRib2R5PnRyPnRoLC5oYW5kc29udGFibGUgLnRhYmxlPnRmb290PnRyPnRkLC5oYW5kc29udGFibGUgLnRhYmxlPnRmb290PnRyPnRoLC5oYW5kc29udGFibGUgLnRhYmxlPnRoZWFkPnRyPnRkLC5oYW5kc29udGFi''@;'; put 'put ''bGUgLnRhYmxlPnRoZWFkPnRyPnRoe2xpbmUtaGVpZ2h0OjIxcHg7cGFkZGluZzowfS5jb2wtbGctMS5oYW5kc29udGFibGUsLmNvbC1sZy0xMC5oYW5kc29udGFibGUsLmNvbC1sZy0xMS5oYW5kc29udGFibGUsLmNvbC1sZy0xMi5oYW5kc29udGFibGUsLmNvbC1sZy0yLmhhbmRzb250YWJs''@;'; put 'put ''ZSwuY29sLWxnLTMuaGFuZHNvbnRhYmxlLC5jb2wtbGctNC5oYW5kc29udGFibGUsLmNvbC1sZy01LmhhbmRzb250YWJsZSwuY29sLWxnLTYuaGFuZHNvbnRhYmxlLC5jb2wtbGctNy5oYW5kc29udGFibGUsLmNvbC1sZy04LmhhbmRzb250YWJsZSwuY29sLWxnLTkuaGFuZHNvbnRhYmxlLC5j''@;'; put 'put ''b2wtbWQtMS5oYW5kc29udGFibGUsLmNvbC1tZC0xMC5oYW5kc29udGFibGUsLmNvbC1tZC0xMS5oYW5kc29udGFibGUsLmNvbC1tZC0xMi5oYW5kc29udGFibGUsLmNvbC1tZC0yLmhhbmRzb250YWJsZSwuY29sLW1kLTMuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNC5oYW5kc29udGFibGUsLmNv''@;'; put 'put ''bC1tZC01LmhhbmRzb250YWJsZSwuY29sLW1kLTYuaGFuZHNvbnRhYmxlLC5jb2wtbWQtNy5oYW5kc29udGFibGUsLmNvbC1tZC04LmhhbmRzb250YWJsZSwuY29sLW1kLTkuaGFuZHNvbnRhYmxlIC5jb2wtc20tMS5oYW5kc29udGFibGUsLmNvbC1zbS0xMC5oYW5kc29udGFibGUsLmNvbC1z''@;'; put 'put ''bS0xMS5oYW5kc29udGFibGUsLmNvbC1zbS0xMi5oYW5kc29udGFibGUsLmNvbC1zbS0yLmhhbmRzb250YWJsZSwuY29sLXNtLTMuaGFuZHNvbnRhYmxlLC5jb2wtc20tNC5oYW5kc29udGFibGUsLmNvbC1zbS01LmhhbmRzb250YWJsZSwuY29sLXNtLTYuaGFuZHNvbnRhYmxlLC5jb2wtc20t''@;'; put 'put ''Ny5oYW5kc29udGFibGUsLmNvbC1zbS04LmhhbmRzb250YWJsZSwuY29sLXNtLTkuaGFuZHNvbnRhYmxlIC5jb2wteHMtMS5oYW5kc29udGFibGUsLmNvbC14cy0xMC5oYW5kc29udGFibGUsLmNvbC14cy0xMS5oYW5kc29udGFibGUsLmNvbC14cy0xMi5oYW5kc29udGFibGUsLmNvbC14cy0y''@;'; put 'put ''LmhhbmRzb250YWJsZSwuY29sLXhzLTMuaGFuZHNvbnRhYmxlLC5jb2wteHMtNC5oYW5kc29udGFibGUsLmNvbC14cy01LmhhbmRzb250YWJsZSwuY29sLXhzLTYuaGFuZHNvbnRhYmxlLC5jb2wteHMtNy5oYW5kc29udGFibGUsLmNvbC14cy04LmhhbmRzb250YWJsZSwuY29sLXhzLTkuaGFu''@;'; put 'put ''ZHNvbnRhYmxle3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uaGFuZHNvbnRhYmxlIC50YWJsZS1zdHJpcGVkPnRib2R5PnRyOm50aC1vZi10eXBlKGV2ZW4pe2JhY2tncm91bmQtY29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxle3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUg''@;'; put 'put ''LmhpZGV7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLnd0SGlkZXJ7d2lkdGg6MH0uaGFuZHNvbnRhYmxlIC53dFNwcmVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjA7aGVpZ2h0OmF1dG99LmhhbmRzb250''@;'; put 'put ''YWJsZSB0YWJsZSwuaGFuZHNvbnRhYmxlIHRib2R5LC5oYW5kc29udGFibGUgdGhlYWQsLmhhbmRzb250YWJsZSB0ZCwuaGFuZHNvbnRhYmxlIHRoLC5oYW5kc29udGFibGUgaW5wdXQsLmhhbmRzb250YWJsZSB0ZXh0YXJlYSwuaGFuZHNvbnRhYmxlIGRpdntib3gtc2l6aW5nOmNvbnRlbnQt''@;'; put 'put ''Ym94Oy13ZWJraXQtYm94LXNpemluZzpjb250ZW50LWJveDstbW96LWJveC1zaXppbmc6Y29udGVudC1ib3h9LmhhbmRzb250YWJsZSBpbnB1dCwuaGFuZHNvbnRhYmxlIHRleHRhcmVhe21pbi1oZWlnaHQ6aW5pdGlhbH0uaGFuZHNvbnRhYmxlIHRhYmxlLmh0Q29yZXtib3JkZXItY29sbGFw''@;'; put 'put ''c2U6c2VwYXJhdGU7Ym9yZGVyLXNwYWNpbmc6MDttYXJnaW46MDtib3JkZXItd2lkdGg6MDt0YWJsZS1sYXlvdXQ6Zml4ZWQ7d2lkdGg6MDtvdXRsaW5lLXdpZHRoOjA7Y3Vyc29yOmRlZmF1bHQ7bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDpub25lfS5oYW5kc29udGFibGUgY29sLC5oYW5k''@;'; put 'put ''c29udGFibGUgY29sLnJvd0hlYWRlcnt3aWR0aDo1MHB4fS5oYW5kc29udGFibGUgdGgsLmhhbmRzb250YWJsZSB0ZHtib3JkZXItdG9wLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzto''@;'; put 'put ''ZWlnaHQ6MjJweDtlbXB0eS1jZWxsczpzaG93O2xpbmUtaGVpZ2h0OjIxcHg7cGFkZGluZzowIDRweDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93OmhpZGRlbjtvdXRsaW5lLXdpZHRoOjA7d2hpdGUtc3BhY2U6cHJlLXdyYXB9W2Rpcj1ydGxdLmhh''@;'; put 'put ''bmRzb250YWJsZSB0aCxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRke2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItbGVmdDpub25lO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjYztib3Jk''@;'; put 'put ''ZXItYm90dG9tOjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGg6bGFzdC1jaGlsZHtib3JkZXItcmlnaHQ6bm9uZTtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY30uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLC5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIp''@;'; put 'put ''LC5oYW5kc29udGFibGUgdGQ6Zmlyc3Qtb2YtdHlwZXtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIHRoOmZpcnN0LWNoaWxkLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGg6bnRoLWNoaWxkKDIpLFtkaXI9cnRsXS5oYW5kc29udGFibGUgdGQ6Zmly''@;'; put 'put ''c3Qtb2YtdHlwZXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkICNjY2N9LmhhbmRzb250YWJsZSAuaHRfY2xvbmVfdG9wIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odF9jbG9uZV90''@;'; put 'put ''b3AgdGg6bnRoLWNoaWxkKDIpe2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUuaHRSb3dIZWFkZXJzIHRoZWFkIHRyIHRoOm50aC1jaGlsZCgyKXtib3JkZXItbGVmdDoxcHggc29saWQgI2NjY31bZGlyPXJ0bF0uaGFuZHNvbnRh''@;'; put 'put ''YmxlLmh0Um93SGVhZGVycyB0aGVhZCB0ciB0aDpudGgtY2hpbGQoMil7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjfS5oYW5kc29udGFibGUgdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjFweCBzb2xpZCAjY2NjfS5odF9t''@;'; put 'put ''YXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9keSB0ciB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9u''@;'; put 'put ''ZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjY2NjfVtkaXI9cnRsXS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlcklubGluZVN0YXJ0KTpub3QoLmVtcHR5Q29sdW1ucyl+LmhhbmRzb250YWJsZSB0Ym9k''@;'; put 'put ''eSB0ciB0aCxbZGlyPXJ0bF0uaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJJbmxpbmVTdGFydCk6bm90KC5lbXB0eUNvbHVtbnMpfi5oYW5kc29udGFibGU6bm90KC5odF9jbG9uZV90b3ApIHRoZWFkIHRyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1sZWZ0LXdpZHRoOjA7Ym9yZGVyLXJpZ2h0''@;'; put 'put ''OjFweCBzb2xpZCAjY2NjfS5odF9tYXN0ZXI6bm90KC5pbm5lckJvcmRlclRvcCk6bm90KC5pbm5lckJvcmRlckJvdHRvbSkgdGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29udGFibGUg''@;'; put 'put ''dGhlYWQgdHI6bGFzdC1jaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pIHRoZWFkIHRyLmxhc3RDaGlsZCB0aCwuaHRfbWFzdGVyOm5vdCguaW5uZXJCb3JkZXJUb3ApOm5vdCguaW5uZXJCb3JkZXJCb3R0b20pfi5oYW5kc29u''@;'; put 'put ''dGFibGUgdGhlYWQgdHIubGFzdENoaWxkIHRoe2JvcmRlci1ib3R0b20td2lkdGg6MH0uaGFuZHNvbnRhYmxlIHRoe2JhY2tncm91bmQtY29sb3I6I2YwZjBmMDtjb2xvcjojMjIyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmhhbmRzb250''@;'; put 'put ''YWJsZSB0aGVhZCB0aHtwYWRkaW5nOjB9LmhhbmRzb250YWJsZSB0aC5hY3RpdmV7YmFja2dyb3VuZC1jb2xvcjojY2NjfS5oYW5kc29udGFibGUgdGhlYWQgdGggLnJlbGF0aXZle3BhZGRpbmc6MnB4IDRweH0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVye2Rpc3BsYXk6aW5saW5lLWJs''@;'; put 'put ''b2NrO2xpbmUtaGVpZ2h0OjEuMX0uaGFuZHNvbnRhYmxlIC53dEJvcmRlcntwb3NpdGlvbjphYnNvbHV0ZTtmb250LXNpemU6MH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC53dEJvcmRlci5jdXJyZW50e3otaW5k''@;'; put 'put ''ZXg6MTB9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuYXJlYXt6LWluZGV4Ojh9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuZmlsbHt6LWluZGV4OjZ9LmhhbmRzb250YWJsZSAud3RCb3JkZXIuY29ybmVye2ZvbnQtc2l6ZTowO2N1cnNvcjpjcm9zc2hhaXJ9Lmh0X2Nsb25lX21hc3Rlcnt6LWlu''@;'; put 'put ''ZGV4OjEwMH0uaHRfY2xvbmVfaW5saW5lX3N0YXJ0e3otaW5kZXg6MTIwfS5odF9jbG9uZV9ib3R0b217ei1pbmRleDoxMzB9Lmh0X2Nsb25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTUwfS5odF9jbG9uZV90b3B7ei1pbmRleDoxNjB9Lmh0X2Nsb25lX3RvcF9pbmxp''@;'; put 'put ''bmVfc3RhcnRfY29ybmVye3otaW5kZXg6MTgwfS5oYW5kc29udGFibGUgY29sLmhpZGRlbnt3aWR0aDowIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0ZCwuaGFuZHNvbnRhYmxlIHRyLmhpZGRlbiB0aHtkaXNwbGF5Om5vbmV9Lmh0''@;'; put 'put ''X21hc3RlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odF9jbG9uZV90b3AsLmh0X2Nsb25lX2JvdHRvbXtvdmVyZmxvdzpoaWRkZW59Lmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3c6YXV0b30uaGFuZHNvbnRhYmxlIC5odF9tYXN0ZXIgdGhlYWQsLmhhbmRzb250YWJsZSAuaHRfbWFz''@;'; put 'put ''dGVyIHRyIHRoLC5oYW5kc29udGFibGUgLmh0X2Nsb25lX2lubGluZV9zdGFydCB0aGVhZHt2aXNpYmlsaXR5OmhpZGRlbn0uaHRfY2xvbmVfdG9wIC53dEhvbGRlciwuaHRfY2xvbmVfaW5saW5lX3N0YXJ0IC53dEhvbGRlciwuaHRfY2xvbmVfYm90dG9tIC53dEhvbGRlcntvdmVyZmxvdzpo''@;'; put 'put ''aWRkZW59LmhhbmRzb250YWJsZXt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO2ZvbnQtZmFtaWx5Oi1hcHBsZS1zeXN0ZW0sQmxpbmtNYWNTeXN0ZW1Gb250LFNlZ29lIFVJLFJvYm90byxPeHlnZW4sVWJ1bnR1LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjEz''@;'; put 'put ''cHg7Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOiMzNzM3Mzd9LmhhbmRzb250YWJsZSBhe2NvbG9yOiMxMDRhY2N9LmhhbmRzb250YWJsZS5odEF1dG9TaXple3Zpc2liaWxpdHk6aGlkZGVuO2xlZnQ6LTk5MDAwcHg7cG9zaXRpb246YWJzb2x1dGU7dG9wOi05OTAwMHB4fS5oYW5kc29udGFibGUg''@;'; put 'put ''dGQuaHRJbnZhbGlke2JhY2tncm91bmQtY29sb3I6I2ZmNGM0MiFpbXBvcnRhbnR9LmhhbmRzb250YWJsZSB0ZC5odE5vV3JhcHt3aGl0ZS1zcGFjZTpub3dyYXB9I2hvdC1kaXNwbGF5LWxpY2Vuc2UtaW5mb3tmb250LWZhbWlseTotYXBwbGUtc3lzdGVtLEJsaW5rTWFjU3lzdGVtRm9udCxT''@;'; put 'put ''ZWdvZSBVSSxSb2JvdG8sT3h5Z2VuLFVidW50dSxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtc2l6ZToxMHB4O2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjojMzczNzM3O3BhZGRpbmc6NXB4IDAgM3B4O3RleHQtYWxpZ246bGVmdH0jaG90LWRpc3BsYXktbGljZW5zZS1pbmZv''@;'; put 'put ''IGF7Y29sb3I6IzEwNGFjYztmb250LXNpemU6MTBweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2N1cnNvcjpjb2wtcmVzaXplO3otaW5kZXg6MjEwO3dpZHRoOjVweDtoZWlnaHQ6MjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxS''@;'; put 'put ''b3dSZXNpemVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtjdXJzb3I6cm93LXJlc2l6ZTt6LWluZGV4OjIxMDtoZWlnaHQ6NXB4O3dpZHRoOjUwcHh9LmhhbmRzb250YWJsZSAubWFudWFsQ29sdW1uUmVzaXplcjpob3ZlciwuaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyLmFj''@;'; put 'put ''dGl2ZSwuaGFuZHNvbnRhYmxlIC5tYW51YWxSb3dSZXNpemVyOmhvdmVyLC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXIuYWN0aXZle2JhY2tncm91bmQtY29sb3I6IzM0YTlkYn0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGV7cG9zaXRpb246YWJzb2x1dGU7''@;'; put 'put ''cmlnaHQ6dW5zZXQ7dG9wOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRiO2Rpc3BsYXk6bm9uZTt3aWR0aDowO2JvcmRlci1yaWdodDoxcHggZGFzaGVkICM3Nzc7Ym9yZGVyLWxlZnQ6bm9uZTttYXJnaW4tbGVmdDo1cHg7bWFyZ2luLXJpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFi''@;'; put 'put ''bGUgLm1hbnVhbENvbHVtblJlc2l6ZXJHdWlkZXtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjFweCBkYXNoZWQgIzc3Nztib3JkZXItcmlnaHQ6bm9uZTttYXJnaW4tcmlnaHQ6NXB4O21hcmdpbi1sZWZ0OnVuc2V0fS5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZXtwb3NpdGlv''@;'; put 'put ''bjphYnNvbHV0ZTtsZWZ0OjA7Ym90dG9tOjA7YmFja2dyb3VuZC1jb2xvcjojMzRhOWRiO2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MDtib3JkZXItYm90dG9tOjFweCBkYXNoZWQgIzc3NzttYXJnaW4tdG9wOjVweH0uaGFuZHNvbnRhYmxlIC5tYW51YWxDb2x1bW5SZXNpemVyR3VpZGUuYWN0aXZl''@;'; put 'put ''LC5oYW5kc29udGFibGUgLm1hbnVhbFJvd1Jlc2l6ZXJHdWlkZS5hY3RpdmV7ZGlzcGxheTpibG9jazt6LWluZGV4OjIwOX0uaGFuZHNvbnRhYmxlIC5jb2x1bW5Tb3J0aW5ne3Bvc2l0aW9uOnJlbGF0aXZlfS5oYW5kc29udGFibGUgLmNvbHVtblNvcnRpbmcuc29ydEFjdGlvbjpob3Zlcnt0''@;'; put 'put ''ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzpiZWZvcmV7dG9wOjUwJTttYXJnaW4tdG9wOi02cHg7cGFkZGluZy1sZWZ0OjhweDtwYWRkaW5nLXJpZ2h0OjA7cG9zaXRpb246YWJzb2x1dGU7''@;'; put 'put ''cmlnaHQ6LTlweDtsZWZ0OnVuc2V0O2NvbnRlbnQ6IiI7aGVpZ2h0OjEwcHg7d2lkdGg6NXB4O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6cmlnaHR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSBzcGFuLmNv''@;'; put 'put ''bEhlYWRlci5jb2x1bW5Tb3J0aW5nOmJlZm9yZXtwYWRkaW5nLXJpZ2h0OjhweDtwYWRkaW5nLWxlZnQ6MDtsZWZ0Oi05cHg7cmlnaHQ6dW5zZXQ7YmFja2dyb3VuZC1wb3NpdGlvbi14OmxlZnR9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLmFzY2VuZGluZzpi''@;'; put 'put ''ZWZvcmV7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFvQ0FNQUFBREo3eXJwQUFBQUtsQk1WRVVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUtFODZJ''@;'; put 'put ''QUFBQURYUlNUbE1BQkJFbVJHcHJsSlc3MmU3N3RUa1RLd0FBQUZOSlJFRlVlQUh0emprU2dDQVVCTkhQZ3NveTk3K3VsR1hScUpFNUwreGt4b1l0MlVkc0xiNWJxRklOeithTHV1TG41ckl1MlJrTzNmWnBXRU5pbU5naXc2aUJZUlRQTUxKakdGeFFaMWh4eGIveEJJMXFDOGszOUNkS0FBQUFB''@;'; put 'put ''RWxGVGtTdVFtQ0MpfS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5kZXNjZW5kaW5nOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQW9DQU1BQUFESjd5cnBBQUFB''@;'; put 'put ''S2xCTVZFVUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBS0U4NklBQUFBRFhSU1RsTUFCQkVtUkdwcmxKVzcyZTc3dFRrVEt3QUFBRkpKUkVGVWVBSHR6amtTZ0NBUVJORm1RWVVaN245ZEtVdnJ1MFRtdlBBbjNicjBRZmdkWjV4eDZ4K3JR''@;'; put 'put ''bjIzR3FUWW5xMUZEY251elpJTzJXbWVkVnFJUlZ4Z0dLRXlqTmdZUmpLR2taMWhGSVozSTcwTHlNMFZ0VThBQUFBQVNVVk9SSzVDWUlJPSl9Lmh0R2hvc3RUYWJsZSAuaHRDb3JlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6bm90KC5pbmRpY2F0b3JEaXNhYmxlZCk6YWZ0ZXJ7Y29u''@;'; put 'put ''dGVudDoiKiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDoyMHB4fS5oYW5kc29udGFibGUgdGQuYXJlYSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMywuaGFu''@;'; put 'put ''ZHNvbnRhYmxlIHRkLmFyZWEtNCwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNiwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtN3twb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS0xOmJl''@;'; put 'put ''Zm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMjpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTM6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS00OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTY6YmVmb3JlLC5oYW5k''@;'; put 'put ''c29udGFibGUgdGQuYXJlYS03OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2JvdHRvbTotMTAwJSBcCTtiYWNrZ3JvdW5kOiMwMDVlZmZ9QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUp''@;'; put 'put ''LCgtbXMtaGlnaC1jb250cmFzdDogbm9uZSl7LmhhbmRzb250YWJsZSB0ZC5hcmVhOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtMTpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS0zOmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRk''@;'; put 'put ''LmFyZWEtNDpiZWZvcmUsLmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3JlLC5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZSwuaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7Ym90dG9tOi0xMDAlfX0uaGFuZHNvbnRhYmxlIHRkLmFyZWE6YmVmb3Jle29wYWNpdHk6LjF9Lmhh''@;'; put 'put ''bmRzb250YWJsZSB0ZC5hcmVhLTE6YmVmb3Jle29wYWNpdHk6LjJ9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTI6YmVmb3Jle29wYWNpdHk6LjI3fS5oYW5kc29udGFibGUgdGQuYXJlYS0zOmJlZm9yZXtvcGFjaXR5Oi4zNX0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNDpiZWZvcmV7b3BhY2l0eTou''@;'; put 'put ''NDF9LmhhbmRzb250YWJsZSB0ZC5hcmVhLTU6YmVmb3Jle29wYWNpdHk6LjQ3fS5oYW5kc29udGFibGUgdGQuYXJlYS02OmJlZm9yZXtvcGFjaXR5Oi41NH0uaGFuZHNvbnRhYmxlIHRkLmFyZWEtNzpiZWZvcmV7b3BhY2l0eTouNTh9LmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9faGlnaGxp''@;'; put 'put ''Z2h0LC5oYW5kc29udGFibGUgdGhlYWQgdGguaHRfX2hpZ2hsaWdodHtiYWNrZ3JvdW5kLWNvbG9yOiNkY2RjZGN9LmhhbmRzb250YWJsZSB0Ym9keSB0aC5odF9fYWN0aXZlX2hpZ2hsaWdodCwuaGFuZHNvbnRhYmxlIHRoZWFkIHRoLmh0X19hY3RpdmVfaGlnaGxpZ2h0e2JhY2tncm91bmQt''@;'; put 'put ''Y29sb3I6IzhlYjBlNztjb2xvcjojMDAwfS5oYW5kc29udGFibGVJbnB1dHtib3JkZXI6bm9uZTtvdXRsaW5lLXdpZHRoOjA7bWFyZ2luOjA7cGFkZGluZzoxcHggNXB4IDA7Zm9udC1mYW1pbHk6aW5oZXJpdDtsaW5lLWhlaWdodDoyMXB4O2ZvbnQtc2l6ZTppbmhlcml0O2JveC1zaGFkb3c6''@;'; put 'put ''MCAwIDAgMnB4ICM1MjkyZjcgaW5zZXQ7cmVzaXplOm5vbmU7ZGlzcGxheTpibG9jaztjb2xvcjojMDAwO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LmhhbmRzb250YWJsZUlucHV0OmZvY3Vze291dGxpbmU6bm9uZX0uaGFuZHNvbnRhYmxlSW5wdXRIb2xkZXJ7cG9z''@;'; put 'put ''aXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowfS5odFNlbGVjdEVkaXRvcnstd2Via2l0LWFwcGVhcmFuY2U6bWVudWxpc3QtYnV0dG9uIWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDphdXRvfS5odFNlbGVjdEVkaXRvcjpmb2N1c3tvdXRsaW5lOm5vbmV9LmhhbmRzb250YWJs''@;'; put 'put ''ZSAuaHREaW1tZWR7Y29sb3I6Izc3N30uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnV7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSAuaHRTdWJtZW51IDphZnRlcntjb250ZW50OiJcMjViNiI7Y29sb3I6Izc3Nztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo1cHg7Zm9udC1zaXplOjlw''@;'; put 'put ''eH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFN1Ym1lbnUgOmFmdGVye2NvbnRlbnQ6IiJ9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRTdWJtZW51IDpiZWZvcmV7Y29udGVudDoiXDI1YzAiO2NvbG9yOiM3Nzc7cG9zaXRpb246YWJzb2x1dGU7bGVmdDo1cHg7Zm9udC1zaXplOjlweH0u''@;'; put 'put ''aGFuZHNvbnRhYmxlIC5odExlZnR7dGV4dC1hbGlnbjpsZWZ0fS5oYW5kc29udGFibGUgLmh0Q2VudGVye3RleHQtYWxpZ246Y2VudGVyfS5oYW5kc29udGFibGUgLmh0UmlnaHR7dGV4dC1hbGlnbjpyaWdodH0uaGFuZHNvbnRhYmxlIC5odEp1c3RpZnl7dGV4dC1hbGlnbjpqdXN0aWZ5fS5o''@;'; put 'put ''YW5kc29udGFibGUgLmh0VG9we3ZlcnRpY2FsLWFsaWduOnRvcH0uaGFuZHNvbnRhYmxlIC5odE1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhhbmRzb250YWJsZSAuaHRCb3R0b217dmVydGljYWwtYWxpZ246Ym90dG9tfS5oYW5kc29udGFibGUgLmh0UGxhY2Vob2xkZXJ7Y29sb3I6''@;'; put 'put ''Izk5OX0uaGFuZHNvbnRhYmxlLmxpc3Rib3h7bWFyZ2luOjB9LmhhbmRzb250YWJsZS5saXN0Ym94IC5odF9tYXN0ZXIgdGFibGV7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtiYWNrZ3JvdW5kOndoaXRlfS5oYW5kc29udGFibGUubGlzdGJveCB0aCwu''@;'; put 'put ''aGFuZHNvbnRhYmxlLmxpc3Rib3ggdHI6Zmlyc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmxhc3QtY2hpbGQgdGgsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmZpcnN0LWNoaWxkIHRkLC5oYW5kc29udGFibGUubGlzdGJveCB0ZHtib3JkZXItY29sb3I6dHJhbnNwYXJl''@;'; put 'put ''bnQhaW1wb3J0YW50fS5oYW5kc29udGFibGUubGlzdGJveCB0aCwuaGFuZHNvbnRhYmxlLmxpc3Rib3ggdGR7d2hpdGUtc3BhY2U6bm93cmFwO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmhhbmRzb250YWJsZS5saXN0Ym94IHRkLmh0RGltbWVke2N1cnNvcjpkZWZhdWx0O2NvbG9yOmluaGVy''@;'; put 'put ''aXQ7Zm9udC1zdHlsZTppbmhlcml0fS5oYW5kc29udGFibGUubGlzdGJveCAud3RCb3JkZXJ7dmlzaWJpbGl0eTpoaWRkZW59LmhhbmRzb250YWJsZS5saXN0Ym94IHRyIHRkLmN1cnJlbnQsLmhhbmRzb250YWJsZS5saXN0Ym94IHRyOmhvdmVyIHRke2JhY2tncm91bmQ6I2VlZX0uaHRfZWRp''@;'; put 'put ''dG9yX2hpZGRlbnt6LWluZGV4Oi0xfS5odF9lZGl0b3JfdmlzaWJsZXt6LWluZGV4OjIwMH0uaGFuZHNvbnRhYmxlIHRkLmh0U2VhcmNoUmVzdWx0e2JhY2tncm91bmQ6I2ZjZWRkOTtjb2xvcjojNTgzNzA3fS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxlSW5kaWNhdG9ye3Bvc2l0aW9uOmFi''@;'; put 'put ''c29sdXRlO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7bGVmdDp1bnNldDtyaWdodDo1cHg7Ym9yZGVyOjFweCBzb2xpZCAjQTZBNkE2O2xpbmUtaGVpZ2h0OjhweDtjb2xvcjojMjIyO2JvcmRlci1yYWRpdXM6MTBweDtmb250LXNpemU6MTBweDt3aWR0aDoxMHB4O2hlaWdo''@;'; put 'put ''dDoxMHB4O2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAwIDAgNnB4ICNlZWU7YmFja2dyb3VuZDojZWVlO3RleHQtYWxpZ246Y2VudGVyfVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmNvbGxhcHNpYmxlSW5kaWNhdG9ye3JpZ2h0OnVuc2V0O2xlZnQ6NXB4fS5oYW5kc29udGFibGUubW9i''@;'; put 'put ''aWxlLC5oYW5kc29udGFibGUubW9iaWxlIC53dEhvbGRlcnstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6cmdiYSgwLDAsMCwwKTstd2Via2l0LW92ZXJmbG93LXNj''@;'; put 'put ''cm9sbGluZzp0b3VjaH0uaGFuZHNvbnRhYmxlLm1vYmlsZSAuaGFuZHNvbnRhYmxlSW5wdXQ6Zm9jdXN7Ym94LXNoYWRvdzowIDAgMCAycHggIzUyOTJmNyBpbnNldDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0udG9wU2VsZWN0aW9uSGFuZGxlOm5vdCguaHRfbWFzdGVyIC50b3BTZWxlY3Rp''@;'; put 'put ''b25IYW5kbGUpLC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYTpub3QoLmh0X21hc3RlciAudG9wU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWEpe3otaW5kZXg6OTk5OX0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUsLmhhbmRzb250YWJsZSAudG9wU2VsZWN0aW9uSGFuZGxlLUhp''@;'; put 'put ''dEFyZWEsLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLC5oYW5kc29udGFibGUgLmJvdHRvbVNlbGVjdGlvbkhhbmRsZS1IaXRBcmVhe2xlZnQ6LTEwMDAwcHg7cmlnaHQ6dW5zZXQ7dG9wOi0xMDAwMHB4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLnRvcFNlbGVjdGlvbkhh''@;'; put 'put ''bmRsZSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC50b3BTZWxlY3Rpb25IYW5kbGUtSGl0QXJlYSxbZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5ib3R0b21TZWxlY3Rpb25IYW5kbGUsW2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuYm90dG9tU2VsZWN0aW9uSGFuZGxlLUhpdEFyZWF7cmlnaHQ6LTEw''@;'; put 'put ''MDAwcHg7bGVmdDp1bnNldH0uaGFuZHNvbnRhYmxlLmhpZGUtdHdlZW57YW5pbWF0aW9uOm9wYWNpdHktaGlkZSAuM3M7YW5pbWF0aW9uLWZpbGwtbW9kZTpmb3J3YXJkczstd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHN9LmhhbmRzb250YWJsZS5zaG93LXR3ZWVue2FuaW1h''@;'; put 'put ''dGlvbjpvcGFjaXR5LXNob3cgLjNzO2FuaW1hdGlvbi1maWxsLW1vZGU6Zm9yd2FyZHM7LXdlYmtpdC1hbmltYXRpb24tZmlsbC1tb2RlOmZvcndhcmRzfS8qIQogKiBQaWthZGF5CiAqIENvcHlyaWdodCDCqSAyMDE0IERhdmlkIEJ1c2hlbGwgfCBCU0QgJiBNSVQgbGljZW5zZSB8IGh0dHBz''@;'; put 'put ''Oi8vZGJ1c2hlbGwuY29tLwogKi8ucGlrYS1zaW5nbGV7ei1pbmRleDo5OTk5O2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246cmVsYXRpdmU7Y29sb3I6IzMzMztiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JvcmRlci1ib3R0b20tY29sb3I6I2JiYjtmb250LWZhbWlseTpI''@;'; put 'put ''ZWx2ZXRpY2EgTmV1ZSxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZn0ucGlrYS1zaW5nbGU6YmVmb3JlLC5waWthLXNpbmdsZTphZnRlcntjb250ZW50OiIgIjtkaXNwbGF5OnRhYmxlfS5waWthLXNpbmdsZTphZnRlcntjbGVhcjpib3RofS5waWthLXNpbmdsZS5pcy1oaWRkZW57ZGlzcGxh''@;'; put 'put ''eTpub25lfS5waWthLXNpbmdsZS5pcy1ib3VuZHtwb3NpdGlvbjphYnNvbHV0ZTtib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCAjMDAwMDAwODB9LnBpa2EtbGVuZGFye2Zsb2F0OmxlZnQ7d2lkdGg6MjQwcHg7bWFyZ2luOjhweH0ucGlrYS10aXRsZXtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0''@;'; put 'put ''LWFsaWduOmNlbnRlcn0ucGlrYS1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbjowO3BhZGRpbmc6NXB4IDNweDtmb250LXNpemU6MTRweDtsaW5lLWhlaWdodDoyMHB4O2ZvbnQtd2VpZ2h0Ojcw''@;'; put 'put ''MDtiYWNrZ3JvdW5kLWNvbG9yOiNmZmZ9LnBpa2EtdGl0bGUgc2VsZWN0e2N1cnNvcjpwb2ludGVyO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6OTk5ODttYXJnaW46MDtsZWZ0OjA7dG9wOjVweDtvcGFjaXR5OjB9LnBpa2EtcHJldiwucGlrYS1uZXh0e2Rpc3BsYXk6YmxvY2s7Y3Vyc29y''@;'; put 'put ''OnBvaW50ZXI7cG9zaXRpb246cmVsYXRpdmU7b3V0bGluZTpub25lO2JvcmRlcjowO3BhZGRpbmc6MDt3aWR0aDoyMHB4O2hlaWdodDozMHB4O3RleHQtaW5kZW50OjIwcHg7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2Jh''@;'; put 'put ''Y2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjc1JSA3NSU7b3BhY2l0eTouNX0ucGlrYS1wcmV2OmhvdmVyLC5waWthLW5leHQ6aG92ZXJ7b3BhY2l0eToxfS5waWthLXByZXYsLmlzLXJ0bCAucGlrYS1u''@;'; put 'put ''ZXh0e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCUUFBQUFlQ0FZQUFBQXNFajVyQUFBQVVrbEVRVlI0MnUzVk1Rb0FJQkFEUWY4UGdqK09EOWhHMkN0T05KQjJ5bVFrS2UwSGJ3QVAweHVjRGlR''@;'; put 'put ''V0FSSVRJREVCRW5NZ01ROFM4K0FxQklsNmtLZ0hpWHFRcUFlSmVwQm8vejM4Si9VMHVBSGxhQmtCbDlJNEd3QUFBQUJKUlU1RXJrSmdnZz09KX0ucGlrYS1uZXh0LC5pcy1ydGwgLnBpa2EtcHJldntmbG9hdDpyaWdodDtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNl''@;'; put 'put ''NjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJRQUFBQWVDQVlBQUFBc0VqNXJBQUFBVTBsRVFWUjQydTNWT3dvQU1BZ0UwZHdmQW5OalUyNmJZa0JDRkd3ZmlMOVZWV29PK0JKNEdmM2d0c0VLS29GQk5UQ29DQVlWd2FBaUdOUUdNVUhNa2pHYmdqazJtSU9OdVhvMG5DOFhuQ2YxSlhnQXJW''@;'; put 'put ''SVpBUWg1VEtZQUFBQUFTVVZPUks1Q1lJST0pfS5waWthLXByZXYuaXMtZGlzYWJsZWQsLnBpa2EtbmV4dC5pcy1kaXNhYmxlZHtjdXJzb3I6ZGVmYXVsdDtvcGFjaXR5Oi4yfS5waWthLXNlbGVjdHtkaXNwbGF5OmlubGluZS1ibG9ja30ucGlrYS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1j''@;'; put 'put ''b2xsYXBzZTpjb2xsYXBzZTtib3JkZXItc3BhY2luZzowO2JvcmRlcjowfS5waWthLXRhYmxlIHRoLC5waWthLXRhYmxlIHRke3dpZHRoOjE0LjI4NTcxNDI4NTclO3BhZGRpbmc6MH0ucGlrYS10YWJsZSB0aHtjb2xvcjojOTk5O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjI1cHg7Zm9u''@;'; put 'put ''dC13ZWlnaHQ6NzAwO3RleHQtYWxpZ246Y2VudGVyfS5waWthLWJ1dHRvbntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDstbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtvdXRsaW5lOm5vbmU7Ym9yZGVyOjA7bWFyZ2luOjA7d2lkdGg6MTAwJTtw''@;'; put 'put ''YWRkaW5nOjVweDtjb2xvcjojNjY2O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjE1cHg7dGV4dC1hbGlnbjpyaWdodDtiYWNrZ3JvdW5kOiNmNWY1ZjU7aGVpZ2h0OmluaXRpYWx9LnBpa2Etd2Vla3tmb250LXNpemU6MTFweDtjb2xvcjojOTk5fS5pcy10b2RheSAucGlrYS1idXR0b257''@;'; put 'put ''Y29sb3I6IzNhZjtmb250LXdlaWdodDo3MDB9LmlzLXNlbGVjdGVkIC5waWthLWJ1dHRvbiwuaGFzLWV2ZW50IC5waWthLWJ1dHRvbntjb2xvcjojZmZmO2ZvbnQtd2VpZ2h0OjcwMDtiYWNrZ3JvdW5kOiMzM2FhZmY7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzE3OGZlNTtib3JkZXIt''@;'; put 'put ''cmFkaXVzOjNweH0uaGFzLWV2ZW50IC5waWthLWJ1dHRvbntiYWNrZ3JvdW5kOiMwMDVkYTk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAzcHggIzAwNzZjOX0uaXMtZGlzYWJsZWQgLnBpa2EtYnV0dG9uLC5pcy1pbnJhbmdlIC5waWthLWJ1dHRvbntiYWNrZ3JvdW5kOiNENUU5Rjd9LmlzLXN0''@;'; put 'put ''YXJ0cmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojNkNCMzFEO2JveC1zaGFkb3c6bm9uZTtib3JkZXItcmFkaXVzOjNweH0uaXMtZW5kcmFuZ2UgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMzNhYWZmO2JveC1zaGFkb3c6bm9uZTtib3JkZXIt''@;'; put 'put ''cmFkaXVzOjNweH0uaXMtZGlzYWJsZWQgLnBpa2EtYnV0dG9ue3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHQ7Y29sb3I6Izk5OTtvcGFjaXR5Oi4zfS5pcy1vdXRzaWRlLWN1cnJlbnQtbW9udGggLnBpa2EtYnV0dG9ue2NvbG9yOiM5OTk7b3BhY2l0eTouM30uaXMtc2VsZWN0''@;'; put 'put ''aW9uLWRpc2FibGVke3BvaW50ZXItZXZlbnRzOm5vbmU7Y3Vyc29yOmRlZmF1bHR9LnBpa2EtYnV0dG9uOmhvdmVyLC5waWthLXJvdy5waWNrLXdob2xlLXdlZWs6aG92ZXIgLnBpa2EtYnV0dG9ue2NvbG9yOiNmZmY7YmFja2dyb3VuZDojZmY4MDAwO2JveC1zaGFkb3c6bm9uZTtib3JkZXIt''@;'; put 'put ''cmFkaXVzOjNweH0ucGlrYS10YWJsZSBhYmJye2JvcmRlci1ib3R0b206bm9uZTtjdXJzb3I6aGVscH0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNlZWU7Y3Vyc29yOmRlZmF1bHQ7d2lkdGg6MTZweDt0ZXh0LWFs''@;'; put 'put ''aWduOmNlbnRlcn1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odEF1dG9jb21wbGV0ZUFycm93e2Zsb2F0OmxlZnR9LmhhbmRzb250YWJsZSB0ZCAuaHRBdXRvY29tcGxldGVBcnJvdzpob3Zlcntjb2xvcjojNzc3fS5oYW5kc29udGFibGUgdGQuYXJlYSAuaHRBdXRvY29tcGxldGVBcnJvd3tj''@;'; put 'put ''b2xvcjojZDNkM2QzfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0Lm5vVmFsdWV7b3BhY2l0eTouNX0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJM''@;'; put 'put ''YWJlbHtmb250LXNpemU6aW5oZXJpdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRzb250YWJsZSAuaHRDaGVja2JveFJlbmRlcmVyTGFiZWwuZnVsbFdpZHRoe3dpZHRoOjEwMCV9LmhhbmRzb250YWJsZSAuaHRDb21tZW50''@;'; put 'put ''Q2VsbHtwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6MDtsZWZ0OnVuc2V0O2JvcmRlci1sZWZ0OjZweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6bm9uZTti''@;'; put 'put ''b3JkZXItdG9wOjZweCBzb2xpZCBibGFja31bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odENvbW1lbnRDZWxsOmFmdGVye2xlZnQ6MDtyaWdodDp1bnNldDtib3JkZXItcmlnaHQ6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0Om5vbmV9Lmh0Q29tbWVudHNDb250YWluZXIgLmh0''@;'; put 'put ''Q29tbWVudHN7ZGlzcGxheTpub25lO3otaW5kZXg6MTA1OTtwb3NpdGlvbjphYnNvbHV0ZX0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWF7Ym94LXNoYWRvdzojMDAwMDAwMWUgMCAxcHggM3B4LCMwMDAwMDAzZCAwIDFweCAycHg7Ym94LXNpemluZzpib3JkZXItYm94''@;'; put 'put ''O2JvcmRlcjpub25lO2JvcmRlci1sZWZ0OjNweCBzb2xpZCAjY2NjO2JvcmRlci1yaWdodDpub25lO2JhY2tncm91bmQtY29sb3I6I2ZmZjt3aWR0aDoyMTVweDtoZWlnaHQ6OTBweDtmb250LXNpemU6MTJweDtwYWRkaW5nOjVweDtvdXRsaW5lOjBweCFpbXBvcnRhbnQ7LXdlYmtpdC1hcHBl''@;'; put 'put ''YXJhbmNlOm5vbmV9W2Rpcj1ydGxdLmh0Q29tbWVudHNDb250YWluZXIgLmh0Q29tbWVudFRleHRBcmVhe2JvcmRlci1yaWdodDozcHggc29saWQgI2NjYztib3JkZXItbGVmdDpub25lfS5odENvbW1lbnRzQ29udGFpbmVyIC5odENvbW1lbnRUZXh0QXJlYTpmb2N1c3tib3gtc2hhZG93OiMw''@;'; put 'put ''MDAwMDAxZSAwIDFweCAzcHgsIzAwMDAwMDNkIDAgMXB4IDJweCxpbnNldCAwIDAgMCAxcHggIzUyOTJmNztib3JkZXItbGVmdDozcHggc29saWQgIzUyOTJmNztib3JkZXItcmlnaHQ6bm9uZX1bZGlyPXJ0bF0uaHRDb21tZW50c0NvbnRhaW5lciAuaHRDb21tZW50VGV4dEFyZWE6Zm9jdXN7''@;'; put 'put ''Ym9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjNTI5MmY3O2JvcmRlci1sZWZ0Om5vbmV9LyohCiAqIEhhbmRzb250YWJsZSBDb250ZXh0TWVudQogKi8uaHRDb250ZXh0TWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA2MH0uaHRD''@;'; put 'put ''b250ZXh0TWVudSAuaHRfY2xvbmVfdG9wLC5odENvbnRleHRNZW51IC5odF9jbG9uZV9ib3R0b20sLmh0Q29udGV4dE1lbnUgLmh0X2Nsb25lX2lubGluZV9zdGFydCwuaHRDb250ZXh0TWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0Q29udGV4dE1lbnUgLmh0X2Ns''@;'; put 'put ''b25lX2JvdHRvbV9pbmxpbmVfc3RhcnRfY29ybmVye2Rpc3BsYXk6bm9uZX0uaHRDb250ZXh0TWVudSAuaHRfbWFzdGVyIHRhYmxlLmh0Q29yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7''@;'; put 'put ''Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoycHh9W2Rpcj1ydGxdLmh0Q29udGV4dE1lbnUgLmh0X21hc3RlciB0YWJsZS5odENvcmV7Ym9yZGVyLXJpZ2h0LXdpZHRoOjFweDtib3JkZXItbGVmdC13aWR0aDoycHh9Lmh0Q29udGV4dE1lbnUgLnd0Qm9yZGVye3Zp''@;'; put 'put ''c2liaWxpdHk6aGlkZGVufS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRke2JhY2tncm91bmQ6d2hpdGU7Ym9yZGVyLXdpZHRoOjA7cGFkZGluZzo0cHggNnB4IDA7Y3Vyc29yOnBvaW50ZXI7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVs''@;'; put 'put ''bGlwc2lzfS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkOmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MDtib3JkZXItYm90dG9tLXdpZHRoOjA7Ym9yZGVyLWxlZnQtd2lkdGg6MDtib3JkZXItcmlnaHQtd2lkdGg6MH1bZGlyPXJ0bF0uaHRDb250ZXh0TWVudSB0YWJsZSB0''@;'; put 'put ''Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItcmlnaHQtd2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfS5odENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGltbWVke2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOiMzMjMyMzJ9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkg''@;'; put 'put ''dHIgdGQuY3VycmVudCwuaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6I2YzZjNmM30uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odFNlcGFyYXRvcntib3JkZXItdG9wOjFweCBzb2xpZCAjZTZlNmU2O2hl''@;'; put 'put ''aWdodDowO3BhZGRpbmc6MDtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpc2FibGVke2NvbG9yOiM5OTk7Y3Vyc29yOmRlZmF1bHR9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNm''@;'; put 'put ''ZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHRDb250ZXh0TWVudSB0YWJsZSB0Ym9keSB0ci5odEhpZGRlbntkaXNwbGF5Om5vbmV9Lmh0Q29udGV4dE1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6NnB4fS5o''@;'; put 'put ''dENvbnRleHRNZW51IHRhYmxlIHRib2R5IHRyIHRkIGRpdiBzcGFuLnNlbGVjdGVke21hcmdpbi10b3A6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjRweH0uaHRDb250ZXh0TWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRkZW59dGV4dGFyZWEuSGFuZHNvbnRhYmxl''@;'; put 'put ''Q29weVBhc3Rle3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt0b3A6MCFpbXBvcnRhbnQ7cmlnaHQ6MTAwJSFpbXBvcnRhbnQ7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDtvdXRsaW5lOjAgbm9uZSFpbXBvcnRhbnR9LyohCiAqIEhhbmRzb250YWJsZSBEcm9wZG93bk1lbnUKICovLmhhbmRz''@;'; put 'put ''b250YWJsZSAuY2hhbmdlVHlwZXtiYWNrZ3JvdW5kOiNlZWU7Ym9yZGVyLXJhZGl1czoycHg7Ym9yZGVyOjFweCBzb2xpZCAjYmJiO2NvbG9yOiNiYmI7Zm9udC1zaXplOjlweDtsaW5lLWhlaWdodDo5cHg7cGFkZGluZzoycHg7bWFyZ2luOjNweCAxcHggMCA1cHg7ZmxvYXQ6cmlnaHR9W2Rp''@;'; put 'put ''cj1ydGxdLmhhbmRzb250YWJsZSAuY2hhbmdlVHlwZXtmbG9hdDpsZWZ0fS5oYW5kc29udGFibGUgLmNoYW5nZVR5cGU6YmVmb3Jle2NvbnRlbnQ6IlwyNWJjICAifS5oYW5kc29udGFibGUgLmNoYW5nZVR5cGU6aG92ZXJ7Ym9yZGVyOjFweCBzb2xpZCAjNzc3O2NvbG9yOiM3Nzc7Y3Vyc29y''@;'; put 'put ''OnBvaW50ZXJ9Lmh0RHJvcGRvd25NZW51Om5vdCguaHRHaG9zdFRhYmxlKXtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDYwfS5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfdG9wLC5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfYm90dG9tLC5odERyb3Bkb3duTWVu''@;'; put 'put ''dSAuaHRfY2xvbmVfaW5saW5lX3N0YXJ0LC5odERyb3Bkb3duTWVudSAuaHRfY2xvbmVfdG9wX2lubGluZV9zdGFydF9jb3JuZXIsLmh0RHJvcGRvd25NZW51IC5odF9jbG9uZV9ib3R0b21faW5saW5lX3N0YXJ0X2Nvcm5lcntkaXNwbGF5Om5vbmV9Lmh0RHJvcGRvd25NZW51IHRhYmxlLmh0''@;'; put 'put ''Q29yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDoxcHg7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoycHh9W2Rpcj1ydGxdLmh0RHJvcGRvd25NZW51IHRhYmxlLmh0''@;'; put 'put ''Q29yZXtib3JkZXItcmlnaHQtd2lkdGg6MXB4O2JvcmRlci1sZWZ0LXdpZHRoOjJweH0uaHREcm9wZG93bk1lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVufS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZHtiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci13aWR0aDowO3BhZGRp''@;'; put 'put ''bmc6NHB4IDZweCAwO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1yaWdodC13''@;'; put 'put ''aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfVtkaXI9cnRsXS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowfS5odERyb3Bkb3duTWVudSB0YWJs''@;'; put 'put ''ZSB0Ym9keSB0ciB0ZC5odERpbW1lZHtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojMzIzMjMyfS5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50LC5odERyb3Bkb3duTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6''@;'; put 'put ''I2U5ZTllOX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHRTZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNjtoZWlnaHQ6MDtwYWRkaW5nOjA7Y3Vyc29yOmRlZmF1bHR9Lmh0RHJvcGRvd25NZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGlzYWJsZWR7Y29s''@;'; put 'put ''b3I6Izk5OX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHREcm9wZG93bk1lbnU6bm90KC5odEdob3N0VGFibGUpIHRhYmxlIHRib2R5IHRyLmh0SGlkZGVue2Rpc3Bs''@;'; put 'put ''YXk6bm9uZX0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBweH0uaHREcm9wZG93bk1lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0ZWR7bWFyZ2luLXRvcDotMnB4O3Bvc2l0''@;'; put 'put ''aW9uOmFic29sdXRlO2xlZnQ6NHB4fS5odERyb3Bkb3duTWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRkZW59LyohCiAqIEhhbmRzb250YWJsZSBGaWx0ZXJzCiAqLy5odEZpbHRlcnNDb25kaXRpb25zTWVudTpub3QoLmh0R2hvc3RUYWJsZSl7ZGlzcGxheTpub25lO3Bv''@;'; put 'put ''c2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTA3MH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX3RvcCwuaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX2lubGluZV9zdGFydCwuaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLmh0X2Nsb25lX2Nvcm5lcntkaXNwbGF5''@;'; put 'put ''Om5vbmV9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlLmh0Q29yZXtib3JkZXI6MXB4IHNvbGlkICNiYmI7Ym9yZGVyLWJvdHRvbS13aWR0aDoycHg7Ym9yZGVyLXJpZ2h0LXdpZHRoOjJweH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgLnd0Qm9yZGVye3Zpc2liaWxpdHk6aGlkZGVu''@;'; put 'put ''fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZHtiYWNrZ3JvdW5kOndoaXRlO2JvcmRlci13aWR0aDowO3BhZGRpbmc6NHB4IDZweCAwO2N1cnNvcjpwb2ludGVyO292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1vdmVyZmxvdzplbGxpcHNp''@;'; put 'put ''c30uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowO2JvcmRlci1ib3R0b20td2lkdGg6MDtib3JkZXItbGVmdC13aWR0aDowfVtkaXI9cnRsXS5odEZpbHRlcnNDb25kaXRp''@;'; put 'put ''b25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZDpmaXJzdC1jaGlsZHtib3JkZXItbGVmdC13aWR0aDowO2JvcmRlci1yaWdodC13aWR0aDowfS5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5odERpbW1lZHtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjojMzIzMjMyfS5o''@;'; put 'put ''dEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC5jdXJyZW50LC5odEZpbHRlcnNDb25kaXRpb25zTWVudSB0YWJsZSB0Ym9keSB0ciB0ZC56ZXJvY2xpcGJvYXJkLWlzLWhvdmVye2JhY2tncm91bmQ6I2U5ZTllOX0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUg''@;'; put 'put ''dGJvZHkgdHIgdGQuaHRTZXBhcmF0b3J7Ym9yZGVyLXRvcDoxcHggc29saWQgI2U2ZTZlNjtoZWlnaHQ6MDtwYWRkaW5nOjB9Lmh0RmlsdGVyc0NvbmRpdGlvbnNNZW51IHRhYmxlIHRib2R5IHRyIHRkLmh0RGlzYWJsZWR7Y29sb3I6Izk5OX0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFi''@;'; put 'put ''bGUgdGJvZHkgdHIgdGQuaHREaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQgLmh0SXRlbVdyYXBwZXJ7bWFyZ2luLWxlZnQ6MTBweDttYXJnaW4tcmlnaHQ6MTBw''@;'; put 'put ''eH0uaHRGaWx0ZXJzQ29uZGl0aW9uc01lbnUgdGFibGUgdGJvZHkgdHIgdGQgZGl2IHNwYW4uc2VsZWN0ZWR7bWFyZ2luLXRvcDotMnB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6NHB4fS5odEZpbHRlcnNDb25kaXRpb25zTWVudSAuaHRfbWFzdGVyIC53dEhvbGRlcntvdmVyZmxvdzpoaWRk''@;'; put 'put ''ZW59LmhhbmRzb250YWJsZSAuaHRNZW51RmlsdGVyaW5ne2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjO2hlaWdodDoxMzVweDtvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZSAuaHRfbWFzdGVyIHRhYmxlIHRkLmh0Q3VzdG9tTWVudVJlbmRlcmVye2JhY2tncm91bmQtY29sb3I6''@;'; put 'put ''I2ZmZjtjdXJzb3I6YXV0b30uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51TGFiZWx7Zm9udC1zaXplOi43NWVtfS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVBY3Rpb25CYXJ7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6MTBweDtwYWRkaW5nLWJvdHRvbTozcHh9LmhhbmRz''@;'; put 'put ''b250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbi5ib3JkZXJ7Ym9yZGVyLWJvdHRvbToxcHggZG90dGVkICNjY2MhaW1wb3J0YW50fS5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVDb25kaXRpb24gLmh0VUlJbnB1dHtwYWRkaW5nOjAgMCA1cHh9LmhhbmRzb250YWJsZSAuaHRGaWx0''@;'; put 'put ''ZXJzTWVudVZhbHVle2JvcmRlci1ib3R0b206MXB4IGRvdHRlZCAjY2NjIWltcG9ydGFudH0uaGFuZHNvbnRhYmxlIC5odEZpbHRlcnNNZW51VmFsdWUgLmh0VUlNdWx0aXBsZVNlbGVjdFNlYXJjaHtwYWRkaW5nOjB9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudUNvbmRpdGlvbiAuaHRV''@;'; put 'put ''SUlucHV0IGlucHV0LC5oYW5kc29udGFibGUgLmh0RmlsdGVyc01lbnVWYWx1ZSAuaHRVSU11bHRpcGxlU2VsZWN0U2VhcmNoIGlucHV0e2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOi43NWVtO3BhZGRpbmc6NHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDt3aWR0aDoxMDAlfS5odFVJ''@;'; put 'put ''TXVsdGlwbGVTZWxlY3QgLmh0X21hc3RlciAud3RIb2xkZXJ7b3ZlcmZsb3cteTpzY3JvbGx9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzQWN0aXZlIC5jaGFuZ2VUeXBle2JvcmRlcjoxcHggc29saWQgIzUwOTI3Mjtjb2xvcjojMTg4MDRlO2JhY2tncm91bmQtY29sb3I6I2QyZTBkOX0uaGFu''@;'; put 'put ''ZHNvbnRhYmxlIC5odFVJU2VsZWN0QWxse21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjEwcHh9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdEFsbHttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDoxMHB4fS5oYW5kc29udGFibGUgLmh0VUlDbGVhckFsbCwuaGFuZHNvbnRh''@;'; put 'put ''YmxlIC5odFVJU2VsZWN0QWxse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgLmh0VUlDbGVhckFsbCBhLC5oYW5kc29udGFibGUgLmh0VUlTZWxlY3RBbGwgYXtmb250LXNpemU6Ljc1ZW19LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdGlvbkNvbnRyb2xze3RleHQtYWxpZ246''@;'; put 'put ''cmlnaHR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdGlvbkNvbnRyb2xze3RleHQtYWxpZ246bGVmdH0uaGFuZHNvbnRhYmxlIC5odENoZWNrYm94UmVuZGVyZXJJbnB1dHttYXJnaW46MCA1cHggMCAwO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTtoZWlnaHQ6MWVtfVtkaXI9cnRs''@;'; put 'put ''XS5oYW5kc29udGFibGUgLmh0Q2hlY2tib3hSZW5kZXJlcklucHV0e21hcmdpbi1sZWZ0OjVweDttYXJnaW4tcmlnaHQ6MH0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXR7cGFkZGluZzozcHggMCA3cHg7cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpjZW50ZXJ9LmhhbmRzb250YWJsZSAu''@;'; put 'put ''aHRVSUlucHV0IGlucHV0e2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMX0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQgaW5wdXQ6Zm9jdXN7b3V0bGluZTowfS5oYW5kc29udGFibGUgLmh0VUlJbnB1dEljb257cG9zaXRpb246YWJzb2x1dGV9LmhhbmRzb250YWJs''@;'; put 'put ''ZSAuaHRVSUlucHV0Lmh0VUlCdXR0b257Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b24gaW5wdXR7YmFja2dyb3VuZC1jb2xvcjojZWVlO2NvbG9yOiMwMDA7Y3Vyc29yOnBvaW50ZXI7Zm9udC1mYW1pbHk6aW5o''@;'; put 'put ''ZXJpdDtmb250LXNpemU6Ljc1ZW07Zm9udC13ZWlnaHQ6NzAwO2hlaWdodDoxOXB4O21pbi13aWR0aDo2NHB4fS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0dG9uIGlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojYjliOWI5fS5oYW5kc29udGFibGUgLmh0VUlJbnB1dC5odFVJQnV0''@;'; put 'put ''dG9uT0t7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MTBweH1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9Le21hcmdpbi1yaWdodDowO21hcmdpbi1sZWZ0OjEwcHh9LmhhbmRzb250YWJsZSAuaHRVSUlucHV0Lmh0VUlCdXR0b25PSyBpbnB1dHtiYWNr''@;'; put 'put ''Z3JvdW5kLWNvbG9yOiMwZjlkNTg7Ym9yZGVyLWNvbG9yOiMxODgwNGU7Y29sb3I6I2ZmZn0uaGFuZHNvbnRhYmxlIC5odFVJSW5wdXQuaHRVSUJ1dHRvbk9LIGlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojMWE2ZjQ2fS5oYW5kc29udGFibGUgLmh0VUlTZWxlY3R7Y3Vyc29yOnBvaW50ZXI7''@;'; put 'put ''bWFyZ2luLWJvdHRvbTo3cHg7cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb257YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JvcmRlci1yYWRpdXM6MnB4O2JvcmRlcjoxcHggc29saWQgI2QyZDFkMTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6''@;'; put 'put ''ZTouNzVlbTtmb250LXdlaWdodDo3MDA7cGFkZGluZzozcHggMjBweCAzcHggMTBweDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LmhhbmRzb250YWJsZSAuaHRVSVNlbGVjdENhcHRpb246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj''@;'; put 'put ''ZThlOGU4O2JvcmRlcjoxcHggc29saWQgI2I5YjliOX0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0RHJvcGRvd246YWZ0ZXJ7Y29udGVudDoiXDI1YjIiO2ZvbnQtc2l6ZTo3cHg7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTBweDt0b3A6MH0uaGFuZHNvbnRhYmxlIC5odFVJU2VsZWN0RHJv''@;'; put 'put ''cGRvd246YmVmb3Jle2NvbnRlbnQ6IlwyNWJjIjtmb250LXNpemU6N3B4O3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7dG9wOjhweH0uaGFuZHNvbnRhYmxlIC5odFVJTXVsdGlwbGVTZWxlY3QgLmhhbmRzb250YWJsZSAuaHRDb3Jle2JvcmRlcjpub25lfS5oYW5kc29udGFibGUgLmh0''@;'; put 'put ''VUlNdWx0aXBsZVNlbGVjdCAuaGFuZHNvbnRhYmxlIC5odENvcmUgdGQ6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZjVmNWY1fS5oYW5kc29udGFibGUgLmh0VUlNdWx0aXBsZVNlbGVjdFNlYXJjaCBpbnB1dHtib3JkZXItcmFkaXVzOjJweDtib3JkZXI6MXB4IHNvbGlkICNkMmQxZDE7cGFk''@;'; put 'put ''ZGluZzozcHh9LmhhbmRzb250YWJsZSAuaHRVSVJhZGlve2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1sZWZ0OjA7bWFyZ2luLXJpZ2h0OjVweDtoZWlnaHQ6MTAwJX1bZGlyPXJ0bF0uaGFuZHNvbnRhYmxlIC5odFVJUmFkaW97bWFyZ2luLXJpZ2h0OjA7bWFyZ2luLWxlZnQ6NXB4fS5o''@;'; put 'put ''YW5kc29udGFibGUgLmh0VUlSYWRpbzpsYXN0LWNoaWxke21hcmdpbi1yaWdodDowfS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0eXBlPXJhZGlvXXttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDouNWV4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgLmh0VUlSYWRpbz5pbnB1dFt0''@;'; put 'put ''eXBlPXJhZGlvXXttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDouNWV4fS5oYW5kc29udGFibGUgLmh0VUlSYWRpbyBsYWJlbHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhhbmRzb250YWJsZSAuaHRGaWx0ZXJzTWVudU9wZXJhdG9yc3twYWRkaW5nLWJvdHRvbTo1cHh9LmhhbmRzb250YWJs''@;'; put 'put ''ZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW57cG9zaXRpb246cmVsYXRpdmV9LmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Db2x1bW46YWZ0ZXIsLmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbjpiZWZvcmV7Y29sb3I6I2JiYjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO2Zv''@;'; put 'put ''bnQtc2l6ZTo1cHQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSl9LmhhbmRzb250YWJsZSB0aC5hZnRlckhpZGRlbkNvbHVtbntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlbkNvbHVtbjphZnRlcntyaWdodDoxcHg7Y29udGVudDoiXDI1YzAifVtkaXI9''@;'; put 'put ''cnRsXS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuQ29sdW1uOmFmdGVye3JpZ2h0OmluaXRpYWw7bGVmdDoxcHg7Y29udGVudDoiXDI1YjYifS5oYW5kc29udGFibGUgdGguYWZ0ZXJIaWRkZW5Db2x1bW46YmVmb3Jle2xlZnQ6MXB4O2NvbnRlbnQ6IlwyNWI2In1bZGlyPXJ0bF0uaGFu''@;'; put 'put ''ZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuQ29sdW1uOmJlZm9yZXtyaWdodDoxcHg7bGVmdDppbml0aWFsO2NvbnRlbnQ6IlwyNWMwIn0vKiEKICogSGFuZHNvbnRhYmxlIEhpZGRlblJvd3MKICovLmhhbmRzb250YWJsZSB0aC5iZWZvcmVIaWRkZW5Sb3c6YmVmb3JlLC5oYW5kc29udGFibGUg''@;'; put 'put ''dGguYWZ0ZXJIaWRkZW5Sb3c6YWZ0ZXJ7Y29sb3I6I2JiYjtmb250LXNpemU6NnB0O2xpbmUtaGVpZ2h0OjZwdDtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjJweH0uaGFuZHNvbnRhYmxlIHRoLmJlZm9yZUhpZGRlblJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93e3Bvc2l0aW9u''@;'; put 'put ''OnJlbGF0aXZlfS5oYW5kc29udGFibGUgdGguYmVmb3JlSGlkZGVuUm93OmJlZm9yZXtjb250ZW50OiJcMjViMiI7Ym90dG9tOjJweH0uaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93OmFmdGVye2NvbnRlbnQ6IlwyNWJjIjt0b3A6MnB4fS5oYW5kc29udGFibGUuaHRfX3NlbGVjdGlv''@;'; put 'put ''bi0tcm93cyB0Ym9keSB0aC5iZWZvcmVIaWRkZW5Sb3cuaHRfX2hpZ2hsaWdodDpiZWZvcmUsLmhhbmRzb250YWJsZS5odF9fc2VsZWN0aW9uLS1yb3dzIHRib2R5IHRoLmFmdGVySGlkZGVuUm93Lmh0X19oaWdobGlnaHQ6YWZ0ZXJ7Y29sb3I6I2VlZX0uaGFuZHNvbnRhYmxlIHRkLmFmdGVy''@;'; put 'put ''SGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvdywuaGFuZHNvbnRhYmxlIHRoLmFmdGVySGlkZGVuUm93LmZpcnN0VmlzaWJsZVJvd3tib3JkZXItdG9wOjFweCBzb2xpZCAjQ0NDfS5odFJvd0hlYWRlcnMgLmh0X21hc3Rlci5pbm5lckJvcmRlcklubGluZVN0YXJ0fi5odF9jbG9uZV90b3BfaW5s''@;'; put 'put ''aW5lX3N0YXJ0X2Nvcm5lciB0aDpudGgtY2hpbGQoMiksLmh0Um93SGVhZGVycyAuaHRfbWFzdGVyLmlubmVyQm9yZGVySW5saW5lU3RhcnR+Lmh0X2Nsb25lX2lubGluZV9zdGFydCB0ZDpmaXJzdC1vZi10eXBle2JvcmRlci1sZWZ0OjAgbm9uZX0uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxD''@;'; put 'put ''b2x1bW5Nb3ZlLmFmdGVyLXNlbGVjdGlvbi0tY29sdW1ucyB0aGVhZCB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVtbk1vdmUub24tbW92aW5nLS1jb2x1bW5zLC5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVt''@;'; put 'put ''bk1vdmUub24tbW92aW5nLS1jb2x1bW5zIHRoZWFkIHRoLmh0X19oaWdobGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29yOmdyYWJiaW5nfS5oYW5kc29udGFibGUuaHRfX21hbnVhbENvbHVtbk1vdmUub24tbW92aW5nLS1jb2x1bW5zIC5tYW51YWxDb2x1bW5SZXNpemVye2Rpc3BsYXk6bm9uZX0u''@;'; put 'put ''aGFuZHNvbnRhYmxlIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lLC5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1bW5Nb3ZlLS1iYWNrbGlnaHR7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpub25lfS5oYW5kc29udGFibGUgLmh0X19tYW51YWxDb2x1''@;'; put 'put ''bW5Nb3ZlLS1ndWlkZWxpbmV7YmFja2dyb3VuZDojNzU3NTc1O3dpZHRoOjJweDt0b3A6MDttYXJnaW4taW5saW5lLXN0YXJ0Oi0xcHg7bWFyZ2luLWlubGluZS1lbmQ6MDt6LWluZGV4OjIwNX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0e2JhY2tncm91''@;'; put 'put ''bmQ6IzM0MzQzNDtiYWNrZ3JvdW5kOnJnYmEoNTIsNTIsNTIsLjI1KTtkaXNwbGF5Om5vbmU7ei1pbmRleDoyMDU7cG9pbnRlci1ldmVudHM6bm9uZX0uaGFuZHNvbnRhYmxlLm9uLW1vdmluZy0tY29sdW1ucy5zaG93LXVpIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tZ3VpZGVsaW5lLC5oYW5k''@;'; put 'put ''c29udGFibGUub24tbW92aW5nLS1jb2x1bW5zIC5odF9fbWFudWFsQ29sdW1uTW92ZS0tYmFja2xpZ2h0e2Rpc3BsYXk6YmxvY2t9LmhhbmRzb250YWJsZSAud3RIaWRlcntwb3NpdGlvbjpyZWxhdGl2ZX0uaGFuZHNvbnRhYmxlLmh0X19tYW51YWxSb3dNb3ZlLmFmdGVyLXNlbGVjdGlvbi0t''@;'; put 'put ''cm93cyB0Ym9keSB0aC5odF9faGlnaGxpZ2h0e2N1cnNvcjptb3ZlO2N1cnNvcjpncmFifS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzLC5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzIHRib2R5IHRoLmh0X19oaWdo''@;'; put 'put ''bGlnaHR7Y3Vyc29yOm1vdmU7Y3Vyc29yOmdyYWJiaW5nfS5oYW5kc29udGFibGUuaHRfX21hbnVhbFJvd01vdmUub24tbW92aW5nLS1yb3dzIC5tYW51YWxSb3dSZXNpemVye2Rpc3BsYXk6bm9uZX0uaGFuZHNvbnRhYmxlIC5odF9fbWFudWFsUm93TW92ZS0tZ3VpZGVsaW5lLC5oYW5kc29u''@;'; put 'put ''dGFibGUgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJTtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSAuaHRfX21hbnVhbFJvd01vdmUtLWd1aWRlbGluZXtiYWNrZ3JvdW5kOiM3NTc1NzU7aGVpZ2h0OjJweDtsZWZ0OjA7bWFyZ2lu''@;'; put 'put ''LXRvcDotMXB4O3otaW5kZXg6MjA1fS5oYW5kc29udGFibGUgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7YmFja2dyb3VuZDojMzQzNDM0O2JhY2tncm91bmQ6cmdiYSg1Miw1Miw1MiwuMjUpO2Rpc3BsYXk6bm9uZTt6LWluZGV4OjIwNTtwb2ludGVyLWV2ZW50czpub25lfS5oYW5k''@;'; put 'put ''c29udGFibGUub24tbW92aW5nLS1yb3dzLnNob3ctdWkgLmh0X19tYW51YWxSb3dNb3ZlLS1ndWlkZWxpbmUsLmhhbmRzb250YWJsZS5vbi1tb3ZpbmctLXJvd3MgLmh0X19tYW51YWxSb3dNb3ZlLS1iYWNrbGlnaHR7ZGlzcGxheTpibG9ja30uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3Nw''@;'; put 'put ''YW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XTpub3QoW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbF0pOmJlZm9yZXtvcGFjaXR5OjB9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5''@;'; put 'put ''U2VsZWN0ZWRNZXJnZWRDZWxsLW11bHRpcGxlXTpiZWZvcmV7b3BhY2l0eTouMX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtMF06YmVmb3Jle29wYWNpdHk6LjF9Lmhh''@;'; put 'put ''bmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTFdOmJlZm9yZXtvcGFjaXR5Oi4yfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xhc3MqPWFyZWFdW2NsYXNzKj1o''@;'; put 'put ''aWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC0yXTpiZWZvcmV7b3BhY2l0eTouMjd9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRNZXJnZWRDZWxsLTNdOmJlZm9y''@;'; put 'put ''ZXtvcGFjaXR5Oi4zNX0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtNF06YmVmb3Jle29wYWNpdHk6LjQxfS5oYW5kc29udGFibGUgdGJvZHkgdGRbcm93c3Bhbl1bY2xh''@;'; put 'put ''c3MqPWFyZWFdW2NsYXNzKj1oaWdobGlnaHRdW2NsYXNzKj1mdWxseVNlbGVjdGVkTWVyZ2VkQ2VsbC01XTpiZWZvcmV7b3BhY2l0eTouNDd9LmhhbmRzb250YWJsZSB0Ym9keSB0ZFtyb3dzcGFuXVtjbGFzcyo9YXJlYV1bY2xhc3MqPWhpZ2hsaWdodF1bY2xhc3MqPWZ1bGx5U2VsZWN0ZWRN''@;'; put 'put ''ZXJnZWRDZWxsLTZdOmJlZm9yZXtvcGFjaXR5Oi41NH0uaGFuZHNvbnRhYmxlIHRib2R5IHRkW3Jvd3NwYW5dW2NsYXNzKj1hcmVhXVtjbGFzcyo9aGlnaGxpZ2h0XVtjbGFzcyo9ZnVsbHlTZWxlY3RlZE1lcmdlZENlbGwtN106YmVmb3Jle29wYWNpdHk6LjU4fS5oYW5kc29udGFibGUgc3Bh''@;'; put 'put ''bi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzphZnRlcnt0b3A6NTAlO21hcmdpbi10b3A6LTJweDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMTVweDtsZWZ0OnVuc2V0O3BhZGRpbmctbGVmdDo1cHg7cGFkZGluZy1yaWdodDp1bnNldDtmb250LXNpemU6OHB4O2hlaWdodDo4cHg7bGluZS1o''@;'; put 'put ''ZWlnaHQ6MS4xO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nOmFmdGVye2xlZnQ6LTE1cHg7cmlnaHQ6dW5zZXQ7cGFkZGluZy1yaWdodDo1cHg7cGFkZGluZy1sZWZ0OnVuc2V0fS5oYW5kc29udGFi''@;'; put 'put ''bGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZzphZnRlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmdbY2xhc3NePXNvcnQtXTphZnRlciwuaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmdb''@;'; put 'put ''Y2xhc3MqPSIgc29ydC0iXTphZnRlcntjb250ZW50OiIrIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC0xOmFmdGVye2NvbnRlbnQ6IjEifS5oYW5kc29udGFibGUgc3Bhbi5jb2xIZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTI6YWZ0ZXJ7Y29udGVu''@;'; put 'put ''dDoiMiJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtMzphZnRlcntjb250ZW50OiIzIn0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC00OmFmdGVye2NvbnRlbnQ6IjQifS5oYW5kc29udGFibGUgc3Bhbi5jb2xI''@;'; put 'put ''ZWFkZXIuY29sdW1uU29ydGluZy5zb3J0LTU6YWZ0ZXJ7Y29udGVudDoiNSJ9LmhhbmRzb250YWJsZSBzcGFuLmNvbEhlYWRlci5jb2x1bW5Tb3J0aW5nLnNvcnQtNjphZnRlcntjb250ZW50OiI2In0uaGFuZHNvbnRhYmxlIHNwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmcuc29ydC03OmFm''@;'; put 'put ''dGVye2NvbnRlbnQ6IjcifS5odEdob3N0VGFibGUgdGggZGl2IGJ1dHRvbi5jaGFuZ2VUeXBlK3NwYW4uY29sSGVhZGVyLmNvbHVtblNvcnRpbmc6bm90KC5pbmRpY2F0b3JEaXNhYmxlZCl7cGFkZGluZy1yaWdodDo1cHh9LmhhbmRzb250YWJsZSB0aGVhZCB0aC5oaWRkZW5IZWFkZXI6bm90''@;'; put 'put ''KDpmaXJzdC1vZi10eXBlKXtkaXNwbGF5Om5vbmV9LmhhbmRzb250YWJsZSB0aC5odF9uZXN0aW5nTGV2ZWxze3RleHQtYWxpZ246bGVmdDtwYWRkaW5nLWxlZnQ6N3B4fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGguaHRfbmVzdGluZ0xldmVsc3t0ZXh0LWFsaWduOnJpZ2h0O3BhZGRpbmct''@;'; put 'put ''cmlnaHQ6N3B4fS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxMXB4O3JpZ2h0OnVuc2V0fVtkaXI9cnRsXS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdMZXZlbHN7cmlnaHQ6MTFw''@;'; put 'put ''eDtsZWZ0OnVuc2V0fS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0xldmVscywuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0xldmVsc3tyaWdodDoxMHB4O2xlZnQ6''@;'; put 'put ''dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxzLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9uZXN0aW5nTGV2ZWxze2xlZnQ6''@;'; put 'put ''MTBweDtyaWdodDp1bnNldH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5oYW5kc29udGFibGUgdGggc3Bhbi5odF9uZXN0aW5nTGV2ZWxfZW1wdHl7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MXB4O2Zs''@;'; put 'put ''b2F0OmxlZnR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZSB0aCBzcGFuLmh0X25lc3RpbmdMZXZlbF9lbXB0eXtmbG9hdDpyaWdodH0uaGFuZHNvbnRhYmxlIHRoIHNwYW4uaHRfbmVzdGluZ0xldmVsOmFmdGVye2NvbnRlbnQ6IlwyNTEwIjtmb250LXNpemU6OXB4O2Rpc3BsYXk6aW5saW5lLWJs''@;'; put 'put ''b2NrO3Bvc2l0aW9uOnJlbGF0aXZlO2JvdHRvbTozcHh9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDotMnB4O2xlZnQ6dW5zZXQ7Y3Vyc29yOnBvaW50ZXJ9W2Rpcj1ydGxdLmhhbmRzb250''@;'; put 'put ''YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbntsZWZ0Oi0ycHg7cmlnaHQ6dW5zZXR9LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbi5odF9uZXN0aW5nRXhwYW5kOmFmdGVye2NvbnRlbnQ6IisifS5oYW5kc29udGFibGUgdGggZGl2Lmh0X25lc3RpbmdCdXR0b24uaHRf''@;'; put 'put ''bmVzdGluZ0NvbGxhcHNlOmFmdGVye2NvbnRlbnQ6Ii0ifS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydCB0aCBkaXYuaHRfbmVzdGluZ0J1dHRvbiwuaGFuZHNvbnRhYmxlLmlubmVyQm9yZGVySW5saW5lU3RhcnR+LmhhbmRzb250YWJsZSB0aCBkaXYuaHRfbmVzdGluZ0J1''@;'; put 'put ''dHRvbntyaWdodDowO2xlZnQ6dW5zZXR9W2Rpcj1ydGxdLmhhbmRzb250YWJsZS5pbm5lckJvcmRlcklubGluZVN0YXJ0IHRoIGRpdi5odF9uZXN0aW5nQnV0dG9uLFtkaXI9cnRsXS5oYW5kc29udGFibGUuaW5uZXJCb3JkZXJJbmxpbmVTdGFydH4uaGFuZHNvbnRhYmxlIHRoIGRpdi5odF9u''@;'; put 'put ''ZXN0aW5nQnV0dG9ue2xlZnQ6MDtyaWdodDp1bnNldH06cm9vdHstLWNkcy1nbG9iYWwtYmFzZToyMH1odG1se2ZvbnQtZmFtaWx5OnNhbnMtc2VyaWY7bGluZS1oZWlnaHQ6MS4xNTstbXMtdGV4dC1zaXplLWFkanVzdDoxMDAlOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlfWJvZHl7''@;'; put 'put ''bWFyZ2luOjB9YXJ0aWNsZSxhc2lkZSxkZXRhaWxzLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsbWFpbixtZW51LG5hdixzZWN0aW9uLHN1bW1hcnl7ZGlzcGxheTpibG9ja31hdWRpbyxjYW52YXMscHJvZ3Jlc3MsdmlkZW97ZGlzcGxheTppbmxpbmUtYmxvY2t9YXVkaW86bm90''@;'; put 'put ''KFtjb250cm9sc10pe2Rpc3BsYXk6bm9uZTtoZWlnaHQ6MH1wcm9ncmVzc3t2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX10ZW1wbGF0ZSxbaGlkZGVuXXtkaXNwbGF5Om5vbmV9YXtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50Oy13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6b2JqZWN0''@;'; put 'put ''c31hOmFjdGl2ZSxhOmhvdmVye291dGxpbmUtd2lkdGg6MH1hYmJyW3RpdGxlXXtib3JkZXItYm90dG9tOm5vbmU7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTstd2Via2l0LXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVkO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUgZG90dGVk''@;'; put 'put ''fWIsc3Ryb25ne2ZvbnQtd2VpZ2h0OmluaGVyaXR9YixzdHJvbmd7Zm9udC13ZWlnaHQ6Ym9sZGVyfWRmbntmb250LXN0eWxlOml0YWxpY31oMXtmb250LXNpemU6MmVtO21hcmdpbjouNjdlbSAwfW1hcmt7YmFja2dyb3VuZC1jb2xvcjojZmYwO2NvbG9yOiMwMDB9c21hbGx7Zm9udC1zaXpl''@;'; put 'put ''OjgwJX1zdWIsc3Vwe2ZvbnQtc2l6ZTo3NSU7bGluZS1oZWlnaHQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZX1zdWJ7Ym90dG9tOi0uMjVlbX1zdXB7dG9wOi0uNWVtfWltZ3tib3JkZXItc3R5bGU6bm9uZX1zdmc6bm90KDpyb290KXtvdmVyZmxvdzpoaWRk''@;'; put 'put ''ZW59Y29kZSxrYmQscHJlLHNhbXB7Zm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxZW19ZmlndXJle21hcmdpbjoxZW0gNDBweH1ocntib3gtc2l6aW5nOmNvbnRlbnQtYm94O2hlaWdodDowO292ZXJmbG93OnZpc2libGV9YnV0dG9uLGlucHV0LG9wdGdyb3VwLHNlbGVjdCx0ZXh0''@;'; put 'put ''YXJlYXtmb250OmluaGVyaXQ7bWFyZ2luOjB9dGV4dGFyZWF7bGluZS1oZWlnaHQ6MS4xNX1vcHRncm91cHtmb250LXdlaWdodDo3MDB9YnV0dG9uLGlucHV0e292ZXJmbG93OnZpc2libGV9YnV0dG9uLHNlbGVjdHt0ZXh0LXRyYW5zZm9ybTpub25lfWJ1dHRvbixodG1sIFt0eXBlPWJ1dHRv''@;'; put 'put ''bl0sW3R5cGU9cmVzZXRdLFt0eXBlPXN1Ym1pdF17LXdlYmtpdC1hcHBlYXJhbmNlOmJ1dHRvbn1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9YnV0dG9uXTo6LW1vei1mb2N1cy1pbm5lcixbdHlwZT1yZXNldF06Oi1tb3otZm9jdXMtaW5uZXIsW3R5cGU9c3VibWl0XTo6LW1vei1m''@;'; put 'put ''b2N1cy1pbm5lcntib3JkZXItc3R5bGU6bm9uZTtwYWRkaW5nOjB9YnV0dG9uOi1tb3otZm9jdXNyaW5nLFt0eXBlPWJ1dHRvbl06LW1vei1mb2N1c3JpbmcsW3R5cGU9cmVzZXRdOi1tb3otZm9jdXNyaW5nLFt0eXBlPXN1Ym1pdF06LW1vei1mb2N1c3Jpbmd7b3V0bGluZToxcHggZG90dGVk''@;'; put 'put ''IEJ1dHRvblRleHR9ZmllbGRzZXR7Ym9yZGVyOjFweCBzb2xpZCBzaWx2ZXI7bWFyZ2luOjAgMnB4O3BhZGRpbmc6LjM1ZW0gLjYyNWVtIC43NWVtfWxlZ2VuZHtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6aW5oZXJpdDtkaXNwbGF5OnRhYmxlO21heC13aWR0aDoxMDAlO3BhZGRpbmc6''@;'; put 'put ''MDt3aGl0ZS1zcGFjZTpub3JtYWx9dGV4dGFyZWF7b3ZlcmZsb3c6YXV0b31bdHlwZT1jaGVja2JveF0sW3R5cGU9cmFkaW9de2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjB9W3R5cGU9bnVtYmVyXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixbdHlwZT1udW1iZXJdOjotd2Vi''@;'; put 'put ''a2l0LW91dGVyLXNwaW4tYnV0dG9ue2hlaWdodDphdXRvfVt0eXBlPXNlYXJjaF17LXdlYmtpdC1hcHBlYXJhbmNlOnRleHRmaWVsZDtvdXRsaW5lLW9mZnNldDotMnB4fVt0eXBlPXNlYXJjaF06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sW3R5cGU9c2VhcmNoXTo6LXdlYmtpdC1z''@;'; put 'put ''ZWFyY2gtZGVjb3JhdGlvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX06Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uey13ZWJraXQtYXBwZWFyYW5jZTpidXR0b247Zm9udDppbmhlcml0fTpyb290ey0tY2xyLWNvbG9yLW5ldXRyYWwtMDp3aGl0ZTstLWNsci1jb2xvci1uZXV0cmFsLTUw''@;'; put 'put ''OiNmYWZhZmE7LS1jbHItY29sb3ItbmV1dHJhbC0xMDA6I2YyZjJmMjstLWNsci1jb2xvci1uZXV0cmFsLTIwMDojZThlOGU4Oy0tY2xyLWNvbG9yLW5ldXRyYWwtMzAwOiNkZWRlZGU7LS1jbHItY29sb3ItbmV1dHJhbC00MDA6I2NjY2NjYzstLWNsci1jb2xvci1uZXV0cmFsLTUwMDojYjNi''@;'; put 'put ''M2IzOy0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwOiM4YzhjOGM7LS1jbHItY29sb3ItbmV1dHJhbC03MDA6IzY2NjY2NjstLWNsci1jb2xvci1uZXV0cmFsLTgwMDojNDU0NTQ1Oy0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwOiMzMzMzMzM7LS1jbHItY29sb3ItbmV1dHJhbC0xMDAwOmJsYWNrOy0t''@;'; put 'put ''Y2xyLWNvbG9yLW9uLW5ldXRyYWwtMDpibGFjazstLWNsci1jb2xvci1vbi1uZXV0cmFsLTUwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtMjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtMzAwOmJsYWNrOy0tY2xy''@;'; put 'put ''LWNvbG9yLW9uLW5ldXRyYWwtNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtNTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtNjAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtNzAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtODAwOndoaXRlOy0tY2xy''@;'; put 'put ''LWNvbG9yLW9uLW5ldXRyYWwtOTAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLW5ldXRyYWwtMTAwMDp3aGl0ZTstLWNsci1jb2xvci1hY3Rpb24tNTA6I2UzZjVmYzstLWNsci1jb2xvci1hY3Rpb24tMTAwOiNjOGVhZjk7LS1jbHItY29sb3ItYWN0aW9uLTIwMDojOWJkOGYzOy0tY2xyLWNvbG9y''@;'; put 'put ''LWFjdGlvbi0zMDA6Izc5YzZlNjstLWNsci1jb2xvci1hY3Rpb24tNDAwOiM0OWFlZGE7LS1jbHItY29sb3ItYWN0aW9uLTUwMDojMTc5YmQzOy0tY2xyLWNvbG9yLWFjdGlvbi02MDA6IzAwNzJhMzstLWNsci1jb2xvci1hY3Rpb24tNzAwOiMwMDY0OGY7LS1jbHItY29sb3ItYWN0aW9uLTgw''@;'; put 'put ''MDojMDA1NjdhOy0tY2xyLWNvbG9yLWFjdGlvbi05MDA6IzAwNGI2YjstLWNsci1jb2xvci1hY3Rpb24tMTAwMDojMDAzNjRkOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi01MDpibGFjazstLWNsci1jb2xvci1vbi1hY3Rpb24tMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi0yMDA6Ymxh''@;'; put 'put ''Y2s7LS1jbHItY29sb3Itb24tYWN0aW9uLTMwMDpibGFjazstLWNsci1jb2xvci1vbi1hY3Rpb24tNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWFjdGlvbi01MDA6YmxhY2s7LS1jbHItY29sb3Itb24tYWN0aW9uLTYwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1hY3Rpb24tNzAwOndoaXRlOy0t''@;'; put 'put ''Y2xyLWNvbG9yLW9uLWFjdGlvbi04MDA6d2hpdGU7LS1jbHItY29sb3Itb24tYWN0aW9uLTkwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1hY3Rpb24tMTAwMDp3aGl0ZTstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTUwOiNmN2U2ZmY7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi0x''@;'; put 'put ''MDA6I2U2Y2FmMTstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTIwMDojZDJhYWU0Oy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tMzAwOiNjMDkwZDU7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi00MDA6I2FmNzNjOTstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTUw''@;'; put 'put ''MDojOWU1N2JjOy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNjAwOiM4YTM5YWM7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi03MDA6Izc4MWQ5ZjstLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTgwMDojNjgwMDk0Oy0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tOTAw''@;'; put 'put ''OiM0ZjAwNzA7LS1jbHItY29sb3Itc2Vjb25kYXJ5LWFjdGlvbi0xMDAwOiMzMjAwNDc7LS1jbHItY29sb3Itb24tc2Vjb25kYXJ5LWFjdGlvbi01MDpibGFjazstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTEwMDpibGFjazstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9u''@;'; put 'put ''LTIwMDpibGFjazstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTMwMDpibGFjazstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTQwMDpibGFjazstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTUwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0''@;'; put 'put ''aW9uLTYwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTcwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTgwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnktYWN0aW9uLTkwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1zZWNvbmRhcnkt''@;'; put 'put ''YWN0aW9uLTEwMDA6d2hpdGU7LS1jbHItY29sb3ItZGFuZ2VyLTUwOiNmZmYyZjA7LS1jbHItY29sb3ItZGFuZ2VyLTEwMDojZmVkZGQ3Oy0tY2xyLWNvbG9yLWRhbmdlci0yMDA6I2ZjYzViYjstLWNsci1jb2xvci1kYW5nZXItMzAwOiNmNTllOGY7LS1jbHItY29sb3ItZGFuZ2VyLTQwMDoj''@;'; put 'put ''ZjI3OTYzOy0tY2xyLWNvbG9yLWRhbmdlci01MDA6I2YzNWU0NDstLWNsci1jb2xvci1kYW5nZXItNjAwOiNmNTJkMGE7LS1jbHItY29sb3ItZGFuZ2VyLTcwMDojZGIyMTAwOy0tY2xyLWNvbG9yLWRhbmdlci04MDA6I2MyMWQwMDstLWNsci1jb2xvci1kYW5nZXItOTAwOiM5OTE3MDA7LS1j''@;'; put 'put ''bHItY29sb3ItZGFuZ2VyLTEwMDA6IzY2MGYwMDstLWNsci1jb2xvci1vbi1kYW5nZXItNTA6YmxhY2s7LS1jbHItY29sb3Itb24tZGFuZ2VyLTEwMDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItMjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci0zMDA6YmxhY2s7LS1jbHItY29s''@;'; put 'put ''b3Itb24tZGFuZ2VyLTQwMDpibGFjazstLWNsci1jb2xvci1vbi1kYW5nZXItNTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLWRhbmdlci02MDA6YmxhY2s7LS1jbHItY29sb3Itb24tZGFuZ2VyLTcwMDp3aGl0ZTstLWNsci1jb2xvci1vbi1kYW5nZXItODAwOndoaXRlOy0tY2xyLWNvbG9yLW9u''@;'; put 'put ''LWRhbmdlci05MDA6d2hpdGU7LS1jbHItY29sb3Itb24tZGFuZ2VyLTEwMDA6d2hpdGU7LS1jbHItY29sb3Itd2FybmluZy01MDojZmZmYWU2Oy0tY2xyLWNvbG9yLXdhcm5pbmctMTAwOiNmZmY0Yzc7LS1jbHItY29sb3Itd2FybmluZy0yMDA6I2ZmZWVhODstLWNsci1jb2xvci13YXJuaW5n''@;'; put 'put ''LTMwMDojZmVlMjcyOy0tY2xyLWNvbG9yLXdhcm5pbmctNDAwOiNmOGNmMmE7LS1jbHItY29sb3Itd2FybmluZy01MDA6I2VmYzAwNjstLWNsci1jb2xvci13YXJuaW5nLTYwMDojZTZiMDAwOy0tY2xyLWNvbG9yLXdhcm5pbmctNzAwOiNkNjlhMDA7LS1jbHItY29sb3Itd2FybmluZy04MDA6''@;'; put 'put ''I2FkNzYwMDstLWNsci1jb2xvci13YXJuaW5nLTkwMDojOGY1YTAwOy0tY2xyLWNvbG9yLXdhcm5pbmctMTAwMDojNjEzMjAwOy0tY2xyLWNvbG9yLW9uLXdhcm5pbmctNTA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy0xMDA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy0yMDA6''@;'; put 'put ''YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy0zMDA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy00MDA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy01MDA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy02MDA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy03MDA6''@;'; put 'put ''YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy04MDA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy05MDA6YmxhY2s7LS1jbHItY29sb3Itb24td2FybmluZy0xMDAwOndoaXRlOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTA6I2RmZjBkMDstLWNsci1jb2xvci1zdWNjZXNzLTEwMDojYmNl''@;'; put 'put ''NDlhOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtMjAwOiM3M2RjMWU7LS1jbHItY29sb3Itc3VjY2Vzcy0zMDA6IzY4YzcxYTstLWNsci1jb2xvci1zdWNjZXNzLTQwMDojNWViNzE1Oy0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTAwOiM1YWEyMjA7LS1jbHItY29sb3Itc3VjY2Vzcy02MDA6IzRiOTcwYzst''@;'; put 'put ''LWNsci1jb2xvci1zdWNjZXNzLTcwMDojM2M4NTAwOy0tY2xyLWNvbG9yLXN1Y2Nlc3MtODAwOiMzMDZiMDA7LS1jbHItY29sb3Itc3VjY2Vzcy05MDA6IzI1NTIwMDstLWNsci1jb2xvci1zdWNjZXNzLTEwMDA6IzFlNDIwMDstLWNsci1jb2xvci1vbi1zdWNjZXNzLTUwOmJsYWNrOy0tY2xy''@;'; put 'put ''LWNvbG9yLW9uLXN1Y2Nlc3MtMTAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtMjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtMzAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtNDAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtNTAwOmJsYWNrOy0tY2xy''@;'; put 'put ''LWNvbG9yLW9uLXN1Y2Nlc3MtNjAwOmJsYWNrOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtNzAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtODAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtOTAwOndoaXRlOy0tY2xyLWNvbG9yLW9uLXN1Y2Nlc3MtMTAwMDp3aGl0ZX06cm9v''@;'; put 'put ''dHstLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzOi4xNXJlbTstLWNsci1nbG9iYWwtYm9yZGVyd2lkdGg6LjA1cmVtOy0tY2xyLWdsb2JhbC1hcHAtYmFja2dyb3VuZDojZmFmYWZhOy0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3I6I2Q4ZTNlOTstLWNsci1nbG9iYWwtb24tc2VsZWN0aW9u''@;'; put 'put ''LWNvbG9yOmJsYWNrOy0tY2xyLWdsb2JhbC1ob3Zlci1jb2xvcjojZThlOGU4Oy0tY2xyLWdsb2JhbC1jb250ZW50LWhlYWRlci1mb250LWNvbG9yOmJsYWNrOy0tY2xyLWdsb2JhbC1mb250LWNvbG9yOiM2NjY2NjY7LS1jbHItZ2xvYmFsLXN1Y2Nlc3MtY29sb3I6IzVhYTIyMDstLWNsci1n''@;'; put 'put ''bG9iYWwtZXJyb3ItY29sb3I6I2MyMWQwMDstLWNsci1jbG9zZS1jb2xvci0tbm9ybWFsOiM4YzhjOGM7LS1jbHItY2xvc2UtY29sb3ItLW5vcm1hbC1vcGFjaXR5Oi4yOy0tY2xyLWNsb3NlLWNvbG9yLS1ob3ZlcjpibGFjazstLWNsci1jbG9zZS1jb2xvci0taG92ZXItb3BhY2l0eTouNTst''@;'; put 'put ''LWNsci1wb3BvdmVyLWJveC1zaGFkb3ctY29sb3I6cmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpfTpyb290ey0tY2xyLWZvbnQ6TWV0cm9wb2xpcywgQXZlbmlyIE5leHQsIEhlbHZldGljYSBOZXVlLCBBcmlhbCwgc2Fucy1zZXJpZjstLWNsci1kaXNwbGF5LWZvbnQ6dmFyKC0tY2xyLWZvbnQp''@;'; put 'put ''Oy0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0OjIwMDstLWNsci1mb250LXdlaWdodC1yZWd1bGFyOjQwMDstLWNsci1mb250LXdlaWdodC1zZW1pYm9sZDo1MDA7LS1jbHItZm9udC13ZWlnaHQtYm9sZDo2MDA7LS1jbHItZm9udC13ZWlnaHQtZXh0cmFib2xkOjYwMDstLWNsci1oMS1jb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItZ2xvYmFsLWNvbnRlbnQtaGVhZGVyLWZvbnQtY29sb3IpOy0tY2xyLWgxLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCk7LS1jbHItaDEtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItaDItY29sb3I6dmFyKC0tY2xyLWds''@;'; put 'put ''b2JhbC1jb250ZW50LWhlYWRlci1mb250LWNvbG9yKTstLWNsci1oMi1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtbGlnaHQpOy0tY2xyLWgyLWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLWgzLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtY29udGVu''@;'; put 'put ''dC1oZWFkZXItZm9udC1jb2xvcik7LS1jbHItaDMtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1oMy1mb250LWZhbWlseTp2YXIoLS1jbHItZGlzcGxheS1mb250KTstLWNsci1oNC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWNvbnRlbnQtaGVhZGVyLWZv''@;'; put 'put ''bnQtY29sb3IpOy0tY2xyLWg0LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCk7LS1jbHItaDQtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItaDUtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1oNS1mb250LXdl''@;'; put 'put ''aWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtcmVndWxhcik7LS1jbHItaDUtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWRpc3BsYXktZm9udCk7LS1jbHItaDYtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNsci1oNi1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWln''@;'; put 'put ''aHQtc2VtaWJvbGQpOy0tY2xyLWg2LWZvbnQtZmFtaWx5OnZhcigtLWNsci1kaXNwbGF5LWZvbnQpOy0tY2xyLXAwLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtZm9udC1jb2xvcik7LS1jbHItcDAtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0LWxpZ2h0KTstLWNsci1wMS1jb2xv''@;'; put 'put ''cjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXAxLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1yZWd1bGFyKTstLWNsci1wMi1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXAyLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdl''@;'; put 'put ''aWdodC1zZW1pYm9sZCk7LS1jbHItcDMtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wMy1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtcmVndWxhcik7LS1jbHItcDQtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wNC1m''@;'; put 'put ''b250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCk7LS1jbHItcDUtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wNS1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtcmVndWxhcik7LS1jbHItcDYtY29sb3I6dmFyKC0tY2xyLWdsb2Jh''@;'; put 'put ''bC1mb250LWNvbG9yKTstLWNsci1wNi1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCk7LS1jbHItcDctY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wNy1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtcmVndWxhcik7LS1jbHIt''@;'; put 'put ''cDgtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1mb250LWNvbG9yKTstLWNsci1wOC1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtcmVndWxhcil9LmNsci1hbGlnbi1iYXNlbGluZXt2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi10b3B7dmVydGlj''@;'; put 'put ''YWwtYWxpZ246dG9wIWltcG9ydGFudH0uY2xyLWFsaWduLW1pZGRsZXt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50fS5jbHItYWxpZ24tYm90dG9te3ZlcnRpY2FsLWFsaWduOmJvdHRvbSFpbXBvcnRhbnR9LmNsci1hbGlnbi10ZXh0LWJvdHRvbXt2ZXJ0aWNhbC1hbGlnbjp0ZXh0''@;'; put 'put ''LWJvdHRvbSFpbXBvcnRhbnR9LmNsci1hbGlnbi10ZXh0LXRvcHt2ZXJ0aWNhbC1hbGlnbjp0ZXh0LXRvcCFpbXBvcnRhbnR9LmNsci1jbGVhcmZpeDphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6dGFibGU7Y2xlYXI6Ym90aH0uY2xyLWRpc3BsYXktYmxvY2t7ZGlzcGxheTpibG9jayFpbXBv''@;'; put 'put ''cnRhbnR9LmNsci1kaXNwbGF5LWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmNsci1kaXNwbGF5LWlubGluZXtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmNsci1mbGV4LXJvd3tmbGV4LWRpcmVjdGlvbjpyb3chaW1wb3J0YW50fS5jbHItZmxleC1jb2x1''@;'; put 'put ''bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uY2xyLWZsZXgtcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1jb2x1bW4tcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1m''@;'; put 'put ''bGV4LXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5jbHItZmxleC1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtZmlsbHtmbGV4OjEgMSBhdXRvIWlt''@;'; put 'put ''cG9ydGFudH0uY2xyLWZsZXgtZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgtZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uY2xyLWZsZXgtc2hyaW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmNsci1mbGV4LXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1w''@;'; put 'put ''b3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1jZW50ZXJ7anVzdGlm''@;'; put 'put ''eS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5j''@;'; put 'put ''bHItYWxpZ24taXRlbXMtc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmNsci1h''@;'; put 'put ''bGlnbi1pdGVtcy1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50''@;'; put 'put ''fS5jbHItYWxpZ24tY29udGVudC1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3''@;'; put 'put ''ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtYXJvdW5ke2FsaWduLWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1hdXRve2FsaWduLXNl''@;'; put 'put ''bGY6YXV0byFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXN0YXJ0e2FsaWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWlt''@;'; put 'put ''cG9ydGFudH0uY2xyLWFsaWduLXNlbGYtYmFzZWxpbmV7YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LXNtLXJvd3tmbGV4LWRp''@;'; put 'put ''cmVjdGlvbjpyb3chaW1wb3J0YW50fS5jbHItZmxleC1zbS1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1uIWltcG9ydGFudH0uY2xyLWZsZXgtc20tcm93LXJldmVyc2V7ZmxleC1kaXJlY3Rpb246cm93LXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1zbS1jb2x1bW4tcmV2ZXJzZXtm''@;'; put 'put ''bGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLXdyYXB7ZmxleC13cmFwOndyYXAhaW1wb3J0YW50fS5jbHItZmxleC1zbS1ub3dyYXB7ZmxleC13cmFwOm5vd3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLXdyYXAtcmV2ZXJzZXtmbGV4LXdyYXA6''@;'; put 'put ''d3JhcC1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtc20tZmlsbHtmbGV4OjEgMSBhdXRvIWltcG9ydGFudH0uY2xyLWZsZXgtc20tZ3Jvdy0we2ZsZXgtZ3JvdzowIWltcG9ydGFudH0uY2xyLWZsZXgtc20tZ3Jvdy0xe2ZsZXgtZ3JvdzoxIWltcG9ydGFudH0uY2xyLWZsZXgtc20tc2hy''@;'; put 'put ''aW5rLTB7ZmxleC1zaHJpbms6MCFpbXBvcnRhbnR9LmNsci1mbGV4LXNtLXNocmluay0xe2ZsZXgtc2hyaW5rOjEhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXNtLXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1z''@;'; put 'put ''bS1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1zbS1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc20tYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vl''@;'; put 'put ''biFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtc20tYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc20tc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zbS1lbmR7''@;'; put 'put ''YWxpZ24taXRlbXM6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtc20tY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1zbS1iYXNlbGluZXthbGlnbi1pdGVtczpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1z''@;'; put 'put ''bS1zdHJldGNoe2FsaWduLWl0ZW1zOnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1zdGFydHthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1zbS1lbmR7YWxpZ24tY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNs''@;'; put 'put ''ci1hbGlnbi1jb250ZW50LXNtLWNlbnRlcnthbGlnbi1jb250ZW50OmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXNtLWJldHdlZW57YWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tYXJvdW5ke2FsaWduLWNvbnRl''@;'; put 'put ''bnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtc20tc3RyZXRjaHthbGlnbi1jb250ZW50OnN0cmV0Y2ghaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1zbS1hdXRve2FsaWduLXNlbGY6YXV0byFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLXN0YXJ0e2Fs''@;'; put 'put ''aWduLXNlbGY6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLWVuZHthbGlnbi1zZWxmOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tY2VudGVye2FsaWduLXNlbGY6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtc20tYmFzZWxpbmV7''@;'; put 'put ''YWxpZ24tc2VsZjpiYXNlbGluZSFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXNtLXN0cmV0Y2h7YWxpZ24tc2VsZjpzdHJldGNoIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxleC1tZC1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uY2xyLWZs''@;'; put 'put ''ZXgtbWQtY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2Uh''@;'; put 'put ''aW1wb3J0YW50fS5jbHItZmxleC1tZC13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtbWQtbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC1tZC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1m''@;'; put 'put ''bGV4LW1kLWZpbGx7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLWdyb3ctMHtmbGV4LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50''@;'; put 'put ''fS5jbHItZmxleC1tZC1zaHJpbmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1tZC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbWQtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVu''@;'; put 'put ''ZCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbWQtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LW1kLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250''@;'; put 'put ''ZW50LW1kLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLW1kLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbWQtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFu''@;'; put 'put ''dH0uY2xyLWFsaWduLWl0ZW1zLW1kLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbWQtYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMtbWQtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNo''@;'; put 'put ''IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbWQtc3RhcnR7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbWQtZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1jZW50ZXJ7YWxp''@;'; put 'put ''Z24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1tZC1iZXR3ZWVue2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LW1kLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNs''@;'; put 'put ''ci1hbGlnbi1jb250ZW50LW1kLXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbWQtYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1tZC1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50''@;'; put 'put ''fS5jbHItYWxpZ24tc2VsZi1tZC1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLW1kLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50''@;'; put 'put ''fS5jbHItYWxpZ24tc2VsZi1tZC1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWZsZXgtbGctcm93e2ZsZXgtZGlyZWN0aW9uOnJvdyFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWNvbHVtbntmbGV4LWRpcmVjdGlvbjpj''@;'; put 'put ''b2x1bW4haW1wb3J0YW50fS5jbHItZmxleC1sZy1yb3ctcmV2ZXJzZXtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLWNvbHVtbi1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgtbGctd3JhcHtm''@;'; put 'put ''bGV4LXdyYXA6d3JhcCFpbXBvcnRhbnR9LmNsci1mbGV4LWxnLW5vd3JhcHtmbGV4LXdyYXA6bm93cmFwIWltcG9ydGFudH0uY2xyLWZsZXgtbGctd3JhcC1yZXZlcnNle2ZsZXgtd3JhcDp3cmFwLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC1sZy1maWxse2ZsZXg6MSAxIGF1dG8haW1w''@;'; put 'put ''b3J0YW50fS5jbHItZmxleC1sZy1ncm93LTB7ZmxleC1ncm93OjAhaW1wb3J0YW50fS5jbHItZmxleC1sZy1ncm93LTF7ZmxleC1ncm93OjEhaW1wb3J0YW50fS5jbHItZmxleC1sZy1zaHJpbmstMHtmbGV4LXNocmluazowIWltcG9ydGFudH0uY2xyLWZsZXgtbGctc2hyaW5rLTF7ZmxleC1z''@;'; put 'put ''aHJpbms6MSFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQtbGctc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LWxnLWVuZHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250''@;'; put 'put ''ZW50LWxnLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1sZy1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuIWltcG9ydGFudH0uY2xyLWp1c3RpZnktY29udGVudC1sZy1hcm91bmR7anVzdGlmeS1jb250ZW50''@;'; put 'put ''OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1sZy1zdGFydHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWxnLWVuZHthbGlnbi1pdGVtczpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1pdGVtcy1sZy1jZW50ZXJ7''@;'; put 'put ''YWxpZ24taXRlbXM6Y2VudGVyIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWxnLWJhc2VsaW5le2FsaWduLWl0ZW1zOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLWxnLXN0cmV0Y2h7YWxpZ24taXRlbXM6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50''@;'; put 'put ''LWxnLXN0YXJ0e2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LWxnLWVuZHthbGlnbi1jb250ZW50OmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQtbGctY2VudGVye2FsaWduLWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0u''@;'; put 'put ''Y2xyLWFsaWduLWNvbnRlbnQtbGctYmV0d2VlbnthbGlnbi1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1hcm91bmR7YWxpZ24tY29udGVudDpzcGFjZS1hcm91bmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC1sZy1zdHJldGNoe2Fs''@;'; put 'put ''aWduLWNvbnRlbnQ6c3RyZXRjaCFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLWxnLWF1dG97YWxpZ24tc2VsZjphdXRvIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctZW5ke2FsaWdu''@;'; put 'put ''LXNlbGY6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1sZy1jZW50ZXJ7YWxpZ24tc2VsZjpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi1sZy1iYXNlbGluZXthbGlnbi1zZWxmOmJhc2VsaW5lIWltcG9ydGFudH0uY2xyLWFsaWduLXNlbGYtbGctc3RyZXRjaHth''@;'; put 'put ''bGlnbi1zZWxmOnN0cmV0Y2ghaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDoxMjAwcHgpey5jbHItZmxleC14bC1yb3d7ZmxleC1kaXJlY3Rpb246cm93IWltcG9ydGFudH0uY2xyLWZsZXgteGwtY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbiFpbXBvcnRhbnR9LmNsci1mbGV4LXhs''@;'; put 'put ''LXJvdy1yZXZlcnNle2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlIWltcG9ydGFudH0uY2xyLWZsZXgteGwtY29sdW1uLXJldmVyc2V7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2UhaW1wb3J0YW50fS5jbHItZmxleC14bC13cmFwe2ZsZXgtd3JhcDp3cmFwIWltcG9ydGFudH0uY2xy''@;'; put 'put ''LWZsZXgteGwtbm93cmFwe2ZsZXgtd3JhcDpub3dyYXAhaW1wb3J0YW50fS5jbHItZmxleC14bC13cmFwLXJldmVyc2V7ZmxleC13cmFwOndyYXAtcmV2ZXJzZSFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLWZpbGx7ZmxleDoxIDEgYXV0byFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLWdyb3ctMHtm''@;'; put 'put ''bGV4LWdyb3c6MCFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLWdyb3ctMXtmbGV4LWdyb3c6MSFpbXBvcnRhbnR9LmNsci1mbGV4LXhsLXNocmluay0we2ZsZXgtc2hyaW5rOjAhaW1wb3J0YW50fS5jbHItZmxleC14bC1zaHJpbmstMXtmbGV4LXNocmluazoxIWltcG9ydGFudH0uY2xyLWp1c3Rp''@;'; put 'put ''ZnktY29udGVudC14bC1zdGFydHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZCFpbXBvcnRhbnR9LmNsci1qdXN0aWZ5LWNvbnRlbnQteGwtY2VudGVye2p1c3RpZnktY29udGVu''@;'; put 'put ''dDpjZW50ZXIhaW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXhsLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW4haW1wb3J0YW50fS5jbHItanVzdGlmeS1jb250ZW50LXhsLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kIWltcG9ydGFudH0uY2xy''@;'; put 'put ''LWFsaWduLWl0ZW1zLXhsLXN0YXJ0e2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMteGwtZW5ke2FsaWduLWl0ZW1zOmZsZXgtZW5kIWltcG9ydGFudH0uY2xyLWFsaWduLWl0ZW1zLXhsLWNlbnRlcnthbGlnbi1pdGVtczpjZW50ZXIhaW1wb3J0YW50''@;'; put 'put ''fS5jbHItYWxpZ24taXRlbXMteGwtYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24taXRlbXMteGwtc3RyZXRjaHthbGlnbi1pdGVtczpzdHJldGNoIWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtc3RhcnR7YWxpZ24tY29udGVudDpmbGV4''@;'; put 'put ''LXN0YXJ0IWltcG9ydGFudH0uY2xyLWFsaWduLWNvbnRlbnQteGwtZW5ke2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1jZW50ZXJ7YWxpZ24tY29udGVudDpjZW50ZXIhaW1wb3J0YW50fS5jbHItYWxpZ24tY29udGVudC14bC1iZXR3ZWVu''@;'; put 'put ''e2FsaWduLWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLWFyb3VuZHthbGlnbi1jb250ZW50OnNwYWNlLWFyb3VuZCFpbXBvcnRhbnR9LmNsci1hbGlnbi1jb250ZW50LXhsLXN0cmV0Y2h7YWxpZ24tY29udGVudDpzdHJldGNoIWltcG9ydGFu''@;'; put 'put ''dH0uY2xyLWFsaWduLXNlbGYteGwtYXV0b3thbGlnbi1zZWxmOmF1dG8haW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1zdGFydHthbGlnbi1zZWxmOmZsZXgtc3RhcnQhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1lbmR7YWxpZ24tc2VsZjpmbGV4LWVuZCFpbXBvcnRhbnR9LmNs''@;'; put 'put ''ci1hbGlnbi1zZWxmLXhsLWNlbnRlcnthbGlnbi1zZWxmOmNlbnRlciFpbXBvcnRhbnR9LmNsci1hbGlnbi1zZWxmLXhsLWJhc2VsaW5le2FsaWduLXNlbGY6YmFzZWxpbmUhaW1wb3J0YW50fS5jbHItYWxpZ24tc2VsZi14bC1zdHJldGNoe2FsaWduLXNlbGY6c3RyZXRjaCFpbXBvcnRhbnR9''@;'; put 'put ''fS5jbHItZmxleC14cy1maXJzdHtvcmRlcjotMX0uY2xyLWZsZXgteHMtbGFzdHtvcmRlcjoxfS5jbHItZmxleC14cy11bm9yZGVyZWR7b3JkZXI6MH0uY2xyLWZsZXgtaXRlbXMteHMtdG9we2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXhzLW1pZGRsZXthbGlnbi1p''@;'; put 'put ''dGVtczpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLXhzLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH0uY2xyLWZsZXgteHMtdG9we2FsaWduLXNlbGY6ZmxleC1zdGFydH0uY2xyLWZsZXgteHMtbWlkZGxle2FsaWduLXNlbGY6Y2VudGVyfS5jbHItZmxleC14cy1ib3R0b217YWxpZ24tc2Vs''@;'; put 'put ''ZjpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMteHMtbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMteHMtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLXhzLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xy''@;'; put 'put ''LWZsZXgtaXRlbXMteHMtYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1mbGV4LWl0ZW1zLXhzLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1zbS1maXJzdHtvcmRlcjotMX0uY2xy''@;'; put 'put ''LWZsZXgtc20tbGFzdHtvcmRlcjoxfS5jbHItZmxleC1zbS11bm9yZGVyZWR7b3JkZXI6MH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItZmxleC1pdGVtcy1zbS10b3B7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtc20tbWlkZGxle2FsaWduLWl0ZW1zOmNl''@;'; put 'put ''bnRlcn0uY2xyLWZsZXgtaXRlbXMtc20tYm90dG9te2FsaWduLWl0ZW1zOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo1NzZweCl7LmNsci1mbGV4LXNtLXRvcHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmNsci1mbGV4LXNtLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgt''@;'; put 'put ''c20tYm90dG9te2FsaWduLXNlbGY6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsZXgtaXRlbXMtc20tbGVmdHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWZsZXgtaXRlbXMtc20tY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmNsci1mbGV4''@;'; put 'put ''LWl0ZW1zLXNtLXJpZ2h0e2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uY2xyLWZsZXgtaXRlbXMtc20tYXJvdW5ke2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmR9LmNsci1mbGV4LWl0ZW1zLXNtLWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59fUBtZWRpYSAobWlu''@;'; put 'put ''LXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtbWQtZmlyc3R7b3JkZXI6LTF9LmNsci1mbGV4LW1kLWxhc3R7b3JkZXI6MX0uY2xyLWZsZXgtbWQtdW5vcmRlcmVke29yZGVyOjB9fUBtZWRpYSAobWluLXdpZHRoOjc2OHB4KXsuY2xyLWZsZXgtaXRlbXMtbWQtdG9we2FsaWduLWl0ZW1zOmZsZXgt''@;'; put 'put ''c3RhcnR9LmNsci1mbGV4LWl0ZW1zLW1kLW1pZGRsZXthbGlnbi1pdGVtczpjZW50ZXJ9LmNsci1mbGV4LWl0ZW1zLW1kLWJvdHRvbXthbGlnbi1pdGVtczpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6NzY4cHgpey5jbHItZmxleC1tZC10b3B7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5j''@;'; put 'put ''bHItZmxleC1tZC1taWRkbGV7YWxpZ24tc2VsZjpjZW50ZXJ9LmNsci1mbGV4LW1kLWJvdHRvbXthbGlnbi1zZWxmOmZsZXgtZW5kfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbGV4LWl0ZW1zLW1kLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0''@;'; put 'put ''ZW1zLW1kLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1tZC1yaWdodHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLW1kLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy1tZC1iZXR3''@;'; put 'put ''ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1mbGV4LWxnLWZpcnN0e29yZGVyOi0xfS5jbHItZmxleC1sZy1sYXN0e29yZGVyOjF9LmNsci1mbGV4LWxnLXVub3JkZXJlZHtvcmRlcjowfX1AbWVkaWEgKG1pbi13aWR0aDo5''@;'; put 'put ''OTJweCl7LmNsci1mbGV4LWl0ZW1zLWxnLXRvcHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1sZy1taWRkbGV7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy1sZy1ib3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjk5''@;'; put 'put ''MnB4KXsuY2xyLWZsZXgtbGctdG9we2FsaWduLXNlbGY6ZmxleC1zdGFydH0uY2xyLWZsZXgtbGctbWlkZGxle2FsaWduLXNlbGY6Y2VudGVyfS5jbHItZmxleC1sZy1ib3R0b217YWxpZ24tc2VsZjpmbGV4LWVuZH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxleC1pdGVtcy1s''@;'; put 'put ''Zy1sZWZ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy1sZy1jZW50ZXJ7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uY2xyLWZsZXgtaXRlbXMtbGctcmlnaHR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5jbHItZmxleC1pdGVtcy1sZy1hcm91bmR7anVzdGlm''@;'; put 'put ''eS1jb250ZW50OnNwYWNlLWFyb3VuZH0uY2xyLWZsZXgtaXRlbXMtbGctYmV0d2VlbntqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbn19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWZsZXgteGwtZmlyc3R7b3JkZXI6LTF9LmNsci1mbGV4LXhsLWxhc3R7b3JkZXI6MX0uY2xy''@;'; put 'put ''LWZsZXgteGwtdW5vcmRlcmVke29yZGVyOjB9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbGV4LWl0ZW1zLXhsLXRvcHthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5jbHItZmxleC1pdGVtcy14bC1taWRkbGV7YWxpZ24taXRlbXM6Y2VudGVyfS5jbHItZmxleC1pdGVtcy14bC1i''@;'; put 'put ''b3R0b217YWxpZ24taXRlbXM6ZmxleC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbGV4LXhsLXRvcHthbGlnbi1zZWxmOmZsZXgtc3RhcnR9LmNsci1mbGV4LXhsLW1pZGRsZXthbGlnbi1zZWxmOmNlbnRlcn0uY2xyLWZsZXgteGwtYm90dG9te2FsaWduLXNlbGY6Zmxl''@;'; put 'put ''eC1lbmR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbGV4LWl0ZW1zLXhsLWxlZnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnR9LmNsci1mbGV4LWl0ZW1zLXhsLWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5jbHItZmxleC1pdGVtcy14bC1yaWdodHtqdXN0aWZ5''@;'; put 'put ''LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci1mbGV4LWl0ZW1zLXhsLWFyb3VuZHtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kfS5jbHItZmxleC1pdGVtcy14bC1iZXR3ZWVue2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufX0uY2xyLWZsb2F0LXhzLWxlZnR7ZmxvYXQ6bGVmdCFpbXBv''@;'; put 'put ''cnRhbnR9LmNsci1mbG9hdC14cy1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmNsci1mbG9hdC14cy1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWZsb2F0LXNtLWxlZnR7ZmxvYXQ6bGVmdCFpbXBvcnRhbnR9LmNsci1mbG9hdC1z''@;'; put 'put ''bS1yaWdodHtmbG9hdDpyaWdodCFpbXBvcnRhbnR9LmNsci1mbG9hdC1zbS1ub25le2Zsb2F0Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1mbG9hdC1tZC1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5jbHItZmxvYXQtbWQtcmlnaHR7ZmxvYXQ6cmln''@;'; put 'put ''aHQhaW1wb3J0YW50fS5jbHItZmxvYXQtbWQtbm9uZXtmbG9hdDpub25lIWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6OTkycHgpey5jbHItZmxvYXQtbGctbGVmdHtmbG9hdDpsZWZ0IWltcG9ydGFudH0uY2xyLWZsb2F0LWxnLXJpZ2h0e2Zsb2F0OnJpZ2h0IWltcG9ydGFudH0uY2xy''@;'; put 'put ''LWZsb2F0LWxnLW5vbmV7ZmxvYXQ6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1mbG9hdC14bC1sZWZ0e2Zsb2F0OmxlZnQhaW1wb3J0YW50fS5jbHItZmxvYXQteGwtcmlnaHR7ZmxvYXQ6cmlnaHQhaW1wb3J0YW50fS5jbHItZmxvYXQteGwtbm9uZXtm''@;'; put 'put ''bG9hdDpub25lIWltcG9ydGFudH19LmNsci1pbnZpc2libGV7dmlzaWJpbGl0eTpoaWRkZW4haW1wb3J0YW50fS5jbHItaGlkZGVuLXhzLXVwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9QG1lZGlhIChtYXgtd2lkdGg6NTc1Ljk4cHgpey5jbHItaGlkZGVuLXhzLWRvd257ZGlzcGxheTpub25l''@;'; put 'put ''IWltcG9ydGFudH19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItaGlkZGVuLXNtLXVwe2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWF4LXdpZHRoOjc2Ny45OHB4KXsuY2xyLWhpZGRlbi1zbS1kb3due2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdp''@;'; put 'put ''ZHRoOjc2OHB4KXsuY2xyLWhpZGRlbi1tZC11cHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1heC13aWR0aDo5OTEuOThweCl7LmNsci1oaWRkZW4tbWQtZG93bntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fX1AbWVkaWEgKG1pbi13aWR0aDo5OTJweCl7LmNsci1oaWRkZW4tbGct''@;'; put 'put ''dXB7ZGlzcGxheTpub25lIWltcG9ydGFudH19QG1lZGlhIChtYXgtd2lkdGg6MTE5OS45OHB4KXsuY2xyLWhpZGRlbi1sZy1kb3due2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9fUBtZWRpYSAobWluLXdpZHRoOjEyMDBweCl7LmNsci1oaWRkZW4teGwtdXB7ZGlzcGxheTpub25lIWltcG9ydGFu''@;'; put 'put ''dH19LmNsci1oaWRkZW4teGwtZG93biwuY2xyLXZpc2libGUtcHJpbnQtYmxvY2t7ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgcHJpbnR7LmNsci12aXNpYmxlLXByaW50LWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fX0uY2xyLXZpc2libGUtcHJpbnQtaW5saW5le2Rpc3Bs''@;'; put 'put ''YXk6bm9uZSFpbXBvcnRhbnR9QG1lZGlhIHByaW50ey5jbHItdmlzaWJsZS1wcmludC1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fX0uY2xyLXZpc2libGUtcHJpbnQtaW5saW5lLWJsb2Nre2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9QG1lZGlhIHByaW50ey5jbHItdmlzaWJsZS1w''@;'; put 'put ''cmludC1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fX1AbWVkaWEgcHJpbnR7LmNsci1oaWRkZW4tcHJpbnR7ZGlzcGxheTpub25lIWltcG9ydGFudH19LmNsci1yb3d7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi1yaWdodDotLjZyZW07bWFy''@;'; put 'put ''Z2luLWxlZnQ6LS42cmVtfS5jbHItbm8tZ3V0dGVyc3ttYXJnaW4tcmlnaHQ6MDttYXJnaW4tbGVmdDowfS5jbHItbm8tZ3V0dGVycz4uY2xyLWNvbCwuY2xyLW5vLWd1dHRlcnM+W2NsYXNzKj1jbHItY29sLV17cGFkZGluZy1yaWdodDowO3BhZGRpbmctbGVmdDowfS5jbHItY29sLXhsLC5j''@;'; put 'put ''bHItY29sLXhsLWF1dG8sLmNsci1jb2wteGwtMTIsLmNsci1jb2wteGwtMTEsLmNsci1jb2wteGwtMTAsLmNsci1jb2wteGwtOSwuY2xyLWNvbC14bC04LC5jbHItY29sLXhsLTcsLmNsci1jb2wteGwtNiwuY2xyLWNvbC14bC01LC5jbHItY29sLXhsLTQsLmNsci1jb2wteGwtMywuY2xyLWNv''@;'; put 'put ''bC14bC0yLC5jbHItY29sLXhsLTEsLmNsci1jb2wtbGcsLmNsci1jb2wtbGctYXV0bywuY2xyLWNvbC1sZy0xMiwuY2xyLWNvbC1sZy0xMSwuY2xyLWNvbC1sZy0xMCwuY2xyLWNvbC1sZy05LC5jbHItY29sLWxnLTgsLmNsci1jb2wtbGctNywuY2xyLWNvbC1sZy02LC5jbHItY29sLWxnLTUs''@;'; put 'put ''LmNsci1jb2wtbGctNCwuY2xyLWNvbC1sZy0zLC5jbHItY29sLWxnLTIsLmNsci1jb2wtbGctMSwuY2xyLWNvbC1tZCwuY2xyLWNvbC1tZC1hdXRvLC5jbHItY29sLW1kLTEyLC5jbHItY29sLW1kLTExLC5jbHItY29sLW1kLTEwLC5jbHItY29sLW1kLTksLmNsci1jb2wtbWQtOCwuY2xyLWNv''@;'; put 'put ''bC1tZC03LC5jbHItY29sLW1kLTYsLmNsci1jb2wtbWQtNSwuY2xyLWNvbC1tZC00LC5jbHItY29sLW1kLTMsLmNsci1jb2wtbWQtMiwuY2xyLWNvbC1tZC0xLC5jbHItY29sLXNtLC5jbHItY29sLXNtLWF1dG8sLmNsci1jb2wtc20tMTIsLmNsci1jb2wtc20tMTEsLmNsci1jb2wtc20tMTAs''@;'; put 'put ''LmNsci1jb2wtc20tOSwuY2xyLWNvbC1zbS04LC5jbHItY29sLXNtLTcsLmNsci1jb2wtc20tNiwuY2xyLWNvbC1zbS01LC5jbHItY29sLXNtLTQsLmNsci1jb2wtc20tMywuY2xyLWNvbC1zbS0yLC5jbHItY29sLXNtLTEsLmNsci1jb2wsLmNsci1jb2wtYXV0bywuY2xyLWNvbC0xMiwuY2xy''@;'; put 'put ''LWNvbC0xMSwuY2xyLWNvbC0xMCwuY2xyLWNvbC05LC5jbHItY29sLTgsLmNsci1jb2wtNywuY2xyLWNvbC02LC5jbHItY29sLTUsLmNsci1jb2wtNCwuY2xyLWNvbC0zLC5jbHItY29sLTIsLmNsci1jb2wtMXt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6LjA1cmVtO3BhZGRpbmctcmlnaHQ6LjZy''@;'; put 'put ''ZW07cGFkZGluZy1sZWZ0Oi42cmVtfS5jbHItY29se2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY2xyLWNvbC1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNvbC0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdp''@;'; put 'put ''ZHRoOjguMzMzMzMzMzMzMyV9LmNsci1jb2wtMntmbGV4OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmNsci1jb2wtM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNvbC00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4z''@;'; put 'put ''MzMzMzMzMzMzJX0uY2xyLWNvbC01e2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uY2xyLWNvbC02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHItY29sLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMz''@;'; put 'put ''MzMlfS5jbHItY29sLTh7ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5jbHItY29sLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNsci1jb2wtMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS5j''@;'; put 'put ''bHItY29sLTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uY2xyLWNvbC0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDoxMDAlfS5jbHItb3JkZXItZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci1sYXN0e29yZGVyOjEzfS5jbHItb3JkZXItMHtv''@;'; put 'put ''cmRlcjowfS5jbHItb3JkZXItMXtvcmRlcjoxfS5jbHItb3JkZXItMntvcmRlcjoyfS5jbHItb3JkZXItM3tvcmRlcjozfS5jbHItb3JkZXItNHtvcmRlcjo0fS5jbHItb3JkZXItNXtvcmRlcjo1fS5jbHItb3JkZXItNntvcmRlcjo2fS5jbHItb3JkZXItN3tvcmRlcjo3fS5jbHItb3JkZXIt''@;'; put 'put ''OHtvcmRlcjo4fS5jbHItb3JkZXItOXtvcmRlcjo5fS5jbHItb3JkZXItMTB7b3JkZXI6MTB9LmNsci1vcmRlci0xMXtvcmRlcjoxMX0uY2xyLW9yZGVyLTEye29yZGVyOjEyfS5jbHItb2Zmc2V0LTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC0ye21hcmdpbi1sZWZ0''@;'; put 'put ''OjE2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LTN7bWFyZ2luLWxlZnQ6MjUlfS5jbHItb2Zmc2V0LTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC02e21hcmdpbi1sZWZ0OjUwJX0uY2xyLW9m''@;'; put 'put ''ZnNldC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtOXttYXJnaW4tbGVmdDo3NSV9LmNsci1vZmZzZXQtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtMTF7bWFy''@;'; put 'put ''Z2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItY29sLXNte2ZsZXgtYmFzaXM6MDtmbGV4LWdyb3c6MTttYXgtd2lkdGg6MTAwJX0uY2xyLWNvbC1zbS1hdXRve2ZsZXg6MCAwIGF1dG87d2lkdGg6YXV0bzttYXgtd2lkdGg6bm9uZX0uY2xyLWNv''@;'; put 'put ''bC1zbS0xe2ZsZXg6MCAwIDguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjguMzMzMzMzMzMzMyV9LmNsci1jb2wtc20tMntmbGV4OjAgMCAxNi42NjY2NjY2NjY3JTttYXgtd2lkdGg6MTYuNjY2NjY2NjY2NyV9LmNsci1jb2wtc20tM3tmbGV4OjAgMCAyNSU7bWF4LXdpZHRoOjI1JX0uY2xyLWNv''@;'; put 'put ''bC1zbS00e2ZsZXg6MCAwIDMzLjMzMzMzMzMzMzMlO21heC13aWR0aDozMy4zMzMzMzMzMzMzJX0uY2xyLWNvbC1zbS01e2ZsZXg6MCAwIDQxLjY2NjY2NjY2NjclO21heC13aWR0aDo0MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1zbS02e2ZsZXg6MCAwIDUwJTttYXgtd2lkdGg6NTAlfS5jbHIt''@;'; put 'put ''Y29sLXNtLTd7ZmxleDowIDAgNTguMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjU4LjMzMzMzMzMzMzMlfS5jbHItY29sLXNtLTh7ZmxleDowIDAgNjYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjY2LjY2NjY2NjY2NjclfS5jbHItY29sLXNtLTl7ZmxleDowIDAgNzUlO21heC13aWR0aDo3NSV9LmNs''@;'; put 'put ''ci1jb2wtc20tMTB7ZmxleDowIDAgODMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjgzLjMzMzMzMzMzMzMlfS5jbHItY29sLXNtLTExe2ZsZXg6MCAwIDkxLjY2NjY2NjY2NjclO21heC13aWR0aDo5MS42NjY2NjY2NjY3JX0uY2xyLWNvbC1zbS0xMntmbGV4OjAgMCAxMDAlO21heC13aWR0aDox''@;'; put 'put ''MDAlfS5jbHItb3JkZXItc20tZmlyc3R7b3JkZXI6LTF9LmNsci1vcmRlci1zbS1sYXN0e29yZGVyOjEzfS5jbHItb3JkZXItc20tMHtvcmRlcjowfS5jbHItb3JkZXItc20tMXtvcmRlcjoxfS5jbHItb3JkZXItc20tMntvcmRlcjoyfS5jbHItb3JkZXItc20tM3tvcmRlcjozfS5jbHItb3Jk''@;'; put 'put ''ZXItc20tNHtvcmRlcjo0fS5jbHItb3JkZXItc20tNXtvcmRlcjo1fS5jbHItb3JkZXItc20tNntvcmRlcjo2fS5jbHItb3JkZXItc20tN3tvcmRlcjo3fS5jbHItb3JkZXItc20tOHtvcmRlcjo4fS5jbHItb3JkZXItc20tOXtvcmRlcjo5fS5jbHItb3JkZXItc20tMTB7b3JkZXI6MTB9LmNs''@;'; put 'put ''ci1vcmRlci1zbS0xMXtvcmRlcjoxMX0uY2xyLW9yZGVyLXNtLTEye29yZGVyOjEyfS5jbHItb2Zmc2V0LXNtLTB7bWFyZ2luLWxlZnQ6MH0uY2xyLW9mZnNldC1zbS0xe21hcmdpbi1sZWZ0OjguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtc20tMnttYXJnaW4tbGVmdDoxNi42NjY2NjY2NjY3''@;'; put 'put ''JX0uY2xyLW9mZnNldC1zbS0ze21hcmdpbi1sZWZ0OjI1JX0uY2xyLW9mZnNldC1zbS00e21hcmdpbi1sZWZ0OjMzLjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LXNtLTV7bWFyZ2luLWxlZnQ6NDEuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtc20tNnttYXJnaW4tbGVmdDo1MCV9LmNsci1vZmZz''@;'; put 'put ''ZXQtc20tN3ttYXJnaW4tbGVmdDo1OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1zbS04e21hcmdpbi1sZWZ0OjY2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LXNtLTl7bWFyZ2luLWxlZnQ6NzUlfS5jbHItb2Zmc2V0LXNtLTEwe21hcmdpbi1sZWZ0OjgzLjMzMzMzMzMzMzMlfS5jbHItb2Zm''@;'; put 'put ''c2V0LXNtLTExe21hcmdpbi1sZWZ0OjkxLjY2NjY2NjY2NjclfX1AbWVkaWEgKG1pbi13aWR0aDo3NjhweCl7LmNsci1jb2wtbWR7ZmxleC1iYXNpczowO2ZsZXgtZ3JvdzoxO21heC13aWR0aDoxMDAlfS5jbHItY29sLW1kLWF1dG97ZmxleDowIDAgYXV0bzt3aWR0aDphdXRvO21heC13aWR0''@;'; put 'put ''aDpub25lfS5jbHItY29sLW1kLTF7ZmxleDowIDAgOC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1tZC0ye2ZsZXg6MCAwIDE2LjY2NjY2NjY2NjclO21heC13aWR0aDoxNi42NjY2NjY2NjY3JX0uY2xyLWNvbC1tZC0ze2ZsZXg6MCAwIDI1JTttYXgtd2lk''@;'; put 'put ''dGg6MjUlfS5jbHItY29sLW1kLTR7ZmxleDowIDAgMzMuMzMzMzMzMzMzMyU7bWF4LXdpZHRoOjMzLjMzMzMzMzMzMzMlfS5jbHItY29sLW1kLTV7ZmxleDowIDAgNDEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjQxLjY2NjY2NjY2NjclfS5jbHItY29sLW1kLTZ7ZmxleDowIDAgNTAlO21heC13''@;'; put 'put ''aWR0aDo1MCV9LmNsci1jb2wtbWQtN3tmbGV4OjAgMCA1OC4zMzMzMzMzMzMzJTttYXgtd2lkdGg6NTguMzMzMzMzMzMzMyV9LmNsci1jb2wtbWQtOHtmbGV4OjAgMCA2Ni42NjY2NjY2NjY3JTttYXgtd2lkdGg6NjYuNjY2NjY2NjY2NyV9LmNsci1jb2wtbWQtOXtmbGV4OjAgMCA3NSU7bWF4''@;'; put 'put ''LXdpZHRoOjc1JX0uY2xyLWNvbC1tZC0xMHtmbGV4OjAgMCA4My4zMzMzMzMzMzMzJTttYXgtd2lkdGg6ODMuMzMzMzMzMzMzMyV9LmNsci1jb2wtbWQtMTF7ZmxleDowIDAgOTEuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjkxLjY2NjY2NjY2NjclfS5jbHItY29sLW1kLTEye2ZsZXg6MCAwIDEw''@;'; put 'put ''MCU7bWF4LXdpZHRoOjEwMCV9LmNsci1vcmRlci1tZC1maXJzdHtvcmRlcjotMX0uY2xyLW9yZGVyLW1kLWxhc3R7b3JkZXI6MTN9LmNsci1vcmRlci1tZC0we29yZGVyOjB9LmNsci1vcmRlci1tZC0xe29yZGVyOjF9LmNsci1vcmRlci1tZC0ye29yZGVyOjJ9LmNsci1vcmRlci1tZC0ze29y''@;'; put 'put ''ZGVyOjN9LmNsci1vcmRlci1tZC00e29yZGVyOjR9LmNsci1vcmRlci1tZC01e29yZGVyOjV9LmNsci1vcmRlci1tZC02e29yZGVyOjZ9LmNsci1vcmRlci1tZC03e29yZGVyOjd9LmNsci1vcmRlci1tZC04e29yZGVyOjh9LmNsci1vcmRlci1tZC05e29yZGVyOjl9LmNsci1vcmRlci1tZC0x''@;'; put 'put ''MHtvcmRlcjoxMH0uY2xyLW9yZGVyLW1kLTExe29yZGVyOjExfS5jbHItb3JkZXItbWQtMTJ7b3JkZXI6MTJ9LmNsci1vZmZzZXQtbWQtMHttYXJnaW4tbGVmdDowfS5jbHItb2Zmc2V0LW1kLTF7bWFyZ2luLWxlZnQ6OC4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1tZC0ye21hcmdpbi1sZWZ0''@;'; put 'put ''OjE2LjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LW1kLTN7bWFyZ2luLWxlZnQ6MjUlfS5jbHItb2Zmc2V0LW1kLTR7bWFyZ2luLWxlZnQ6MzMuMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbWQtNXttYXJnaW4tbGVmdDo0MS42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1tZC02e21hcmdpbi1sZWZ0''@;'; put 'put ''OjUwJX0uY2xyLW9mZnNldC1tZC03e21hcmdpbi1sZWZ0OjU4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LW1kLTh7bWFyZ2luLWxlZnQ6NjYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbWQtOXttYXJnaW4tbGVmdDo3NSV9LmNsci1vZmZzZXQtbWQtMTB7bWFyZ2luLWxlZnQ6ODMuMzMzMzMz''@;'; put 'put ''MzMzMyV9LmNsci1vZmZzZXQtbWQtMTF7bWFyZ2luLWxlZnQ6OTEuNjY2NjY2NjY2NyV9fUBtZWRpYSAobWluLXdpZHRoOjk5MnB4KXsuY2xyLWNvbC1sZ3tmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNsci1jb2wtbGctYXV0b3tmbGV4OjAgMCBhdXRvO3dpZHRo''@;'; put 'put ''OmF1dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wtbGctMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLWxnLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS5jbHItY29sLWxnLTN7ZmxleDow''@;'; put 'put ''IDAgMjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wtbGctNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wtbGctNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmNsci1jb2wtbGctNntmbGV4''@;'; put 'put ''OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC1sZy03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC1sZy04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0uY2xyLWNvbC1sZy05e2Zs''@;'; put 'put ''ZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLWxnLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC1sZy0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2NyV9LmNsci1jb2wtbGct''@;'; put 'put ''MTJ7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLWxnLWZpcnN0e29yZGVyOi0xfS5jbHItb3JkZXItbGctbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVyLWxnLTB7b3JkZXI6MH0uY2xyLW9yZGVyLWxnLTF7b3JkZXI6MX0uY2xyLW9yZGVyLWxnLTJ7b3JkZXI6Mn0uY2xy''@;'; put 'put ''LW9yZGVyLWxnLTN7b3JkZXI6M30uY2xyLW9yZGVyLWxnLTR7b3JkZXI6NH0uY2xyLW9yZGVyLWxnLTV7b3JkZXI6NX0uY2xyLW9yZGVyLWxnLTZ7b3JkZXI6Nn0uY2xyLW9yZGVyLWxnLTd7b3JkZXI6N30uY2xyLW9yZGVyLWxnLTh7b3JkZXI6OH0uY2xyLW9yZGVyLWxnLTl7b3JkZXI6OX0u''@;'; put 'put ''Y2xyLW9yZGVyLWxnLTEwe29yZGVyOjEwfS5jbHItb3JkZXItbGctMTF7b3JkZXI6MTF9LmNsci1vcmRlci1sZy0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC1sZy0we21hcmdpbi1sZWZ0OjB9LmNsci1vZmZzZXQtbGctMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMlfS5jbHItb2Zmc2V0LWxn''@;'; put 'put ''LTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQtbGctM3ttYXJnaW4tbGVmdDoyNSV9LmNsci1vZmZzZXQtbGctNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1sZy01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY2NjclfS5jbHItb2Zmc2V0LWxn''@;'; put 'put ''LTZ7bWFyZ2luLWxlZnQ6NTAlfS5jbHItb2Zmc2V0LWxnLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQtbGctOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC1sZy05e21hcmdpbi1sZWZ0Ojc1JX0uY2xyLW9mZnNldC1sZy0xMHttYXJnaW4t''@;'; put 'put ''bGVmdDo4My4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC1sZy0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX19QG1lZGlhIChtaW4td2lkdGg6MTIwMHB4KXsuY2xyLWNvbC14bHtmbGV4LWJhc2lzOjA7ZmxleC1ncm93OjE7bWF4LXdpZHRoOjEwMCV9LmNsci1jb2wteGwtYXV0b3tmbGV4''@;'; put 'put ''OjAgMCBhdXRvO3dpZHRoOmF1dG87bWF4LXdpZHRoOm5vbmV9LmNsci1jb2wteGwtMXtmbGV4OjAgMCA4LjMzMzMzMzMzMzMlO21heC13aWR0aDo4LjMzMzMzMzMzMzMlfS5jbHItY29sLXhsLTJ7ZmxleDowIDAgMTYuNjY2NjY2NjY2NyU7bWF4LXdpZHRoOjE2LjY2NjY2NjY2NjclfS5jbHIt''@;'; put 'put ''Y29sLXhsLTN7ZmxleDowIDAgMjUlO21heC13aWR0aDoyNSV9LmNsci1jb2wteGwtNHtmbGV4OjAgMCAzMy4zMzMzMzMzMzMzJTttYXgtd2lkdGg6MzMuMzMzMzMzMzMzMyV9LmNsci1jb2wteGwtNXtmbGV4OjAgMCA0MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6NDEuNjY2NjY2NjY2NyV9LmNs''@;'; put 'put ''ci1jb2wteGwtNntmbGV4OjAgMCA1MCU7bWF4LXdpZHRoOjUwJX0uY2xyLWNvbC14bC03e2ZsZXg6MCAwIDU4LjMzMzMzMzMzMzMlO21heC13aWR0aDo1OC4zMzMzMzMzMzMzJX0uY2xyLWNvbC14bC04e2ZsZXg6MCAwIDY2LjY2NjY2NjY2NjclO21heC13aWR0aDo2Ni42NjY2NjY2NjY3JX0u''@;'; put 'put ''Y2xyLWNvbC14bC05e2ZsZXg6MCAwIDc1JTttYXgtd2lkdGg6NzUlfS5jbHItY29sLXhsLTEwe2ZsZXg6MCAwIDgzLjMzMzMzMzMzMzMlO21heC13aWR0aDo4My4zMzMzMzMzMzMzJX0uY2xyLWNvbC14bC0xMXtmbGV4OjAgMCA5MS42NjY2NjY2NjY3JTttYXgtd2lkdGg6OTEuNjY2NjY2NjY2''@;'; put 'put ''NyV9LmNsci1jb2wteGwtMTJ7ZmxleDowIDAgMTAwJTttYXgtd2lkdGg6MTAwJX0uY2xyLW9yZGVyLXhsLWZpcnN0e29yZGVyOi0xfS5jbHItb3JkZXIteGwtbGFzdHtvcmRlcjoxM30uY2xyLW9yZGVyLXhsLTB7b3JkZXI6MH0uY2xyLW9yZGVyLXhsLTF7b3JkZXI6MX0uY2xyLW9yZGVyLXhs''@;'; put 'put ''LTJ7b3JkZXI6Mn0uY2xyLW9yZGVyLXhsLTN7b3JkZXI6M30uY2xyLW9yZGVyLXhsLTR7b3JkZXI6NH0uY2xyLW9yZGVyLXhsLTV7b3JkZXI6NX0uY2xyLW9yZGVyLXhsLTZ7b3JkZXI6Nn0uY2xyLW9yZGVyLXhsLTd7b3JkZXI6N30uY2xyLW9yZGVyLXhsLTh7b3JkZXI6OH0uY2xyLW9yZGVy''@;'; put 'put ''LXhsLTl7b3JkZXI6OX0uY2xyLW9yZGVyLXhsLTEwe29yZGVyOjEwfS5jbHItb3JkZXIteGwtMTF7b3JkZXI6MTF9LmNsci1vcmRlci14bC0xMntvcmRlcjoxMn0uY2xyLW9mZnNldC14bC0we21hcmdpbi1sZWZ0OjB9LmNsci1vZmZzZXQteGwtMXttYXJnaW4tbGVmdDo4LjMzMzMzMzMzMzMl''@;'; put 'put ''fS5jbHItb2Zmc2V0LXhsLTJ7bWFyZ2luLWxlZnQ6MTYuNjY2NjY2NjY2NyV9LmNsci1vZmZzZXQteGwtM3ttYXJnaW4tbGVmdDoyNSV9LmNsci1vZmZzZXQteGwtNHttYXJnaW4tbGVmdDozMy4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC14bC01e21hcmdpbi1sZWZ0OjQxLjY2NjY2NjY2Njcl''@;'; put 'put ''fS5jbHItb2Zmc2V0LXhsLTZ7bWFyZ2luLWxlZnQ6NTAlfS5jbHItb2Zmc2V0LXhsLTd7bWFyZ2luLWxlZnQ6NTguMzMzMzMzMzMzMyV9LmNsci1vZmZzZXQteGwtOHttYXJnaW4tbGVmdDo2Ni42NjY2NjY2NjY3JX0uY2xyLW9mZnNldC14bC05e21hcmdpbi1sZWZ0Ojc1JX0uY2xyLW9mZnNl''@;'; put 'put ''dC14bC0xMHttYXJnaW4tbGVmdDo4My4zMzMzMzMzMzMzJX0uY2xyLW9mZnNldC14bC0xMXttYXJnaW4tbGVmdDo5MS42NjY2NjY2NjY3JX19LmNsci1icmVhay1yb3d7d2lkdGg6MTAwJX0qLDpiZWZvcmUsOmFmdGVye2JveC1zaXppbmc6Ym9yZGVyLWJveH1wcmV7bWFyZ2luOi42cmVtIDB9''@;'; put 'put ''cHJle2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDAsICNjY2NjY2MpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2Jv''@;'; put 'put ''cmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSl9cHJlIGNvZGV7d2hpdGUtc3BhY2U6cHJlfWNvZGUuY2xyLWNvZGV7Y29sb3I6I2MyMWQwMDtjb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCwgI2MyMWQw''@;'; put 'put ''MCk7cGFkZGluZzowO2JhY2tncm91bmQ6MCAwfXVsLmxpc3QtdW5zdHlsZWQ6bm90KFtjZHMtbGlzdF0pe3BhZGRpbmctbGVmdDowO21hcmdpbi1sZWZ0OjA7bGlzdC1zdHlsZTpub25lfXVsOm5vdChbY2RzLWxpc3RdKSxvbDpub3QoW2Nkcy1saXN0XSl7bGlzdC1zdHlsZS1wb3NpdGlvbjpp''@;'; put 'put ''bnNpZGU7bWFyZ2luLWxlZnQ6MDttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowO3BhZGRpbmctbGVmdDowfXVsLmxpc3Q6bm90KFtjZHMtbGlzdF0pLG9sLmxpc3Q6bm90KFtjZHMtbGlzdF0pe2xpc3Qtc3R5bGUtcG9zaXRpb246b3V0c2lkZTttYXJnaW4tbGVmdDoxLjFlbX11bC5saXN0''@;'; put 'put ''Om5vdChbY2RzLWxpc3RdKS5jb21wYWN0LG9sLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3R7bGluZS1oZWlnaHQ6LjlyZW19dWwubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdD5saSxvbC5saXN0Om5vdChbY2RzLWxpc3RdKS5jb21wYWN0Pmxpe21hcmdpbi1ib3R0b206LjNyZW19''@;'; put 'put ''dWwubGlzdDpub3QoW2Nkcy1saXN0XSkuY29tcGFjdD5saTpsYXN0LWNoaWxkLG9sLmxpc3Q6bm90KFtjZHMtbGlzdF0pLmNvbXBhY3Q+bGk6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9dWw6bm90KC5saXN0LXVuc3R5bGVkKTpub3QoW2Nkcy1saXN0XSk+bGk+dWwubGlzdC11bnN0eWxl''@;'; put 'put ''ZCxvbDpub3QoW2Nkcy1saXN0XSk+bGk+dWwubGlzdC11bnN0eWxlZHttYXJnaW4tbGVmdDoxLjFlbX1saT51bDpub3QoW2Nkcy1saXN0XSl7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjEuMWVtfXVsLmxpc3QtZ3JvdXA6bm90KFtjZHMtbGlzdF0pe21hcmdpbi10b3A6MH11bDpub3QoW2Nk''@;'; put 'put ''cy1saXN0XSkubGlzdC1zcGFjZXIsb2w6bm90KFtjZHMtbGlzdF0pLmxpc3Qtc3BhY2Vye21hcmdpbi10b3A6MS4ycmVtfWgxOm5vdChbY2RzLXRleHRdKXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1oMS1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIo''@;'; put 'put ''LS1jbHItaDEtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oMS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZl''@;'; put 'put ''dGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjIuNHJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9aDI6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0t''@;'; put 'put ''Y2xyLWgyLWNvbG9yLCBibGFjayk7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMi1mb250LXdlaWdodCwgMjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0t''@;'; put 'put ''Y2xyLWgyLWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOjEuNHJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6Mi40cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdp''@;'; put 'put ''bi1ib3R0b206MH1oMzpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItaDMtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgzLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5l''@;'; put 'put ''eHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItaDMtZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6MS4xcmVtO2xldHRlci1zcGFj''@;'; put 'put ''aW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWg0Om5vdChbY2RzLXRleHRdKXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1oNC1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHIt''@;'; put 'put ''aDQtZm9udC13ZWlnaHQsIDIwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oNC1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBO''@;'; put 'put ''ZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouOXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1oNTpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItaDUt''@;'; put 'put ''Y29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItaDUtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1o''@;'; put 'put ''NS1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouOHJlbTtsZXR0ZXItc3BhY2luZzouMDFlbTtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRv''@;'; put 'put ''bTowfWg2Om5vdChbY2RzLXRleHRdKXtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1oNi1jb2xvciwgIzMzMzMzMyk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oNi1mb250LXdlaWdodCwgNTAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhl''@;'; put 'put ''bHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWg2LWZvbnQtZmFtaWx5LCBNZXRyb3BvbGlzLCAiQXZlbmlyIE5leHQiLCAiSGVsdmV0aWNhIE5ldWUiLCBBcmlhbCwgc2Fucy1zZXJpZik7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5v''@;'; put 'put ''cm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHk6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAxLWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAx''@;'; put 'put ''LWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6ZTouN3JlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi1ib3R0b206MDtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1m''@;'; put 'put ''YW1pbHk6dmFyKC0tY2xyLWZvbnQsIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTttYXJnaW4tdG9wOjAhaW1wb3J0YW50fWJvZHkgcDpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDEtY29s''@;'; put 'put ''b3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJv''@;'; put 'put ''ZHkgLnAwOm5vdChbY2RzLXRleHRdKSxib2R5IHAucDA6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAwLWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAwLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtc2l6ZTox''@;'; put 'put ''cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnAyOm5vdChbY2RzLXRleHRdKSxib2R5IHAucDI6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAyLWNvbG9y''@;'; put 'put ''LCAjNjY2NjY2KTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAyLWZvbnQtd2VpZ2h0LCA1MDApO2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9k''@;'; put 'put ''eSAucDM6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wMzpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDMtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDMtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi42''@;'; put 'put ''NXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH1ib2R5IC5wNDpub3QoW2Nkcy10ZXh0XSksYm9keSBwLnA0Om5vdChbY2RzLXRleHRdKXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1wNC1jb2xv''@;'; put 'put ''ciwgIzY2NjY2Nik7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1wNC1mb250LXdlaWdodCwgNjAwKTtmb250LXNpemU6LjZyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9Ym9k''@;'; put 'put ''eSAucDU6bm90KFtjZHMtdGV4dF0pLGJvZHkgcC5wNTpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDUtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItcDUtZm9udC13ZWlnaHQsIDQwMCk7Zm9udC1zaXplOi42''@;'; put 'put ''cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnA2Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDY6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXA2LWNvbG9y''@;'; put 'put ''LCAjNjY2NjY2KTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA2LWZvbnQtd2VpZ2h0LCA2MDApO2ZvbnQtc2l6ZTouNTVyZW07bGV0dGVyLXNwYWNpbmc6LjAzZW07bGluZS1oZWlnaHQ6LjZyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkg''@;'; put 'put ''LnA3Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDc6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXA3LWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA3LWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6ZTouNTVy''@;'; put 'put ''ZW07bGV0dGVyLXNwYWNpbmc6LjAzZW07bGluZS1oZWlnaHQ6LjZyZW07bWFyZ2luLXRvcDoxLjJyZW07bWFyZ2luLWJvdHRvbTowfWJvZHkgLnA4Om5vdChbY2RzLXRleHRdKSxib2R5IHAucDg6bm90KFtjZHMtdGV4dF0pe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXA4LWNvbG9yLCAj''@;'; put 'put ''NjY2NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXA4LWZvbnQtd2VpZ2h0LCA0MDApO2ZvbnQtc2l6ZTouNXJlbTtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDouNnJlbTttYXJnaW4tdG9wOjEuMnJlbTttYXJnaW4tYm90dG9tOjB9LnRleHQtbGln''@;'; put 'put ''aHR7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1mb250LXdlaWdodC1saWdodCwgMjAwKX0udGV4dC1yaWdodHt0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudH0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50fS50ZXh0LWxlZnR7dGV4dC1hbGln''@;'; put 'put ''bjpsZWZ0IWltcG9ydGFudH0udGV4dC1qdXN0aWZ5e3RleHQtYWxpZ246anVzdGlmeSFpbXBvcnRhbnR9aHRtbDpub3QoW2Nkcy10ZXh0XSl7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IsICM2NjY2NjYpO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmly''@;'; put 'put ''IE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItZm9udCwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxMjUlfUBmb250LWZhY2V7Zm9udC1mYW1p''@;'; put 'put ''bHk6TWV0cm9wb2xpcztzcmM6dXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFGUWdBQk1BQUFBQW04QUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFCcUFBQUFCd0FBQUFjZk5INTVrZEVSVVlBQUFI''@;'; put 'put ''RUFBQUFUUUFBQUdJSDFRZjhSMUJQVXdBQUFoUUFBQWNhQUFBT2RqeStlamxIVTFWQ0FBQUpNQUFBQUNBQUFBQWdSSFpNZFU5VEx6SUFBQWxRQUFBQVRRQUFBR0JvUHF6clkyMWhjQUFBQ2FBQUFBSnNBQUFEbm5kREQ3RmpkblFnQUFBTURBQUFBREFBQUFBOEVZNEJqR1p3WjIwQUFBdzhBQUFH''@;'; put 'put ''T2dBQURSWjJaSDEyWjJGemNBQUFFbmdBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFTZ0FBQU5uTUFBR2dVeEZJZ04yaGxZV1FBQUVqMEFBQUFOZ0FBQURZTFlZZ1VhR2hsWVFBQVNTd0FBQUFoQUFBQUpBZDJCREpvYlhSNEFBQkpVQUFBQW9nQUFBVHV1UEkvRkd4dlkyRUFBRXZZQUFBQ2NnQUFB''@;'; put 'put ''bnFKYW5Cd2JXRjRjQUFBVGt3QUFBQWdBQUFBSUFLRUFlbHVZVzFsQUFCT2JBQUFBWUlBQUFOV0xkQ0U5WEJ2YzNRQUFFL3dBQUFEb1FBQUJpR1hGajJLY0hKbGNBQUFVNVFBQUFDQkFBQUFqUmxRQWhCM1pXSm1BQUJVR0FBQUFBWUFBQUFHOW5oWW1BQUFBQUVBQUFBQTFGRzFhZ0FBQUFEVHda''@;'; put 'put ''MkdBQUFBQU5TK3B2VjQyZzJNUVFxRVFCREVFa2YwTUxQb2Y3eXBML0RvZlhmVi96L0FJZ1JDMFRRQ0xSNmNkRlJralZzbzdIelR2MUQ0QjdtNDA0OERPbG9wTmx2NjQ1U2VYWExUNTFzWHpTYStXM0FGM0FBQUFIamFqVmNCYkZiVkZmN091ZmUrdi8wTFdFb0xDQjBEVWhreFRXV0VTVVZHaVdN''@;'; put 'put ''RnNWUERtRUVIWmx1Y1k2MVE3QmpaaURGS0hacWw2WXpERHBFMHFBeU1Oc0JRc1NLeXBxdk9PVWRrWTZZaFlGd0h5RFltMDduRkNQTDJ2Zk4rNkY5b3QvR0ZqOE81OTkxN3p6bmY3Ym1GQU1oaU1oWkM1dFhXTFVZQlBEMklZemorSTFDNGhtODNyVVRwaW04Mk5hQjhSY09LQnM0Ry9jbG9PaU5o''@;'; put 'put ''eCsreUdJMEptR0llaHdyVXVZNTBORnBscTByVWlvZ2Z5ZkRWL0dLYytRSktMMEJRRzdlU0EyYWpCWjhpbG5GUUhvUHpaS3djUVJHRzhXUi9qN3ZqN1hGdmZCUkQvSWsvR0hMa3Q0TjYrN2gzL3YrUHh6OGRjb1gzaGh3WitqeC9qUGNPTWJJOTdvdjNKYmpJMzh1L3Ywa3cyQjV4SzdPa21NaE1U''@;'; put 'put ''MkcyUGtjb3FnaUhxd2lQNlVUQUY0Z0lNNGtNcmlFS01Jc29aRzVuczFKckNNSDkrQkZuUGtnRVpyeUYvaGNJd1l1RTRDVkNjWkR3K0FQaGNaUUkrRE1SNFRnUjRUMGl3bWtpZ3crSURNNFFoYXplcDF3dEpySlNMTVVvbEJJcElaZEtLWGtjSzV2bDJ0T29rZ3ArY3lVaGR1NzB4R29uZG5aaWJ5''@;'; put 'put ''Y09tRWNVb0pZb3hBSWlpMFZFRVJyeGZhNlFSQkpaSkpGRkV2QVRQTXI1YlVRaGZvWk5uUDhFZnM3NTI0a2k3Q1F5MkVVVTRCZEVCcnVKQWp4SFpQQThVWUE5UkNFNmlVTHNKN0xvSXJMb0pyTG9JYko0bFJEOG1oRExUb1IzaUNMOGlVanpvcFlYdGJ4NHkwdXd2QVRMaTdlOGVNdUxsekV5aHZt''@;'; put 'put ''NlhDNG5KemtLWExXS0dackNHbGV4dHROWjA1bk16Q3htcEJHcmNEZWE4RDJzWmkzdnh6bzA0d0ZtNFVGR3Y1TVJQY2RLdnNnS0htVGxqckppeDFtcDB6ekpHYnRaeGR5M05MbGZlcS9kdzlla2lYRVBwN3IyVVhldDhiOEdVYXVOREhZSExveWNTakRJbDZlSHZCdW56aXVlOS9wbzNCdzNYenlT''@;'; put 'put ''M3JwNGM3eDUwSkcvMkRlS2N0T0VtQ1lVWHlNY2JpVThiaU1DbGhJUkZmRW81eVJxRUZPRG1ob1VIVVNFSFVSa2xSYXJ0RmlseFNvdFZsZkZNY0xoQk9Gd2tuQTRTd1NjSXlJWktTTloxMUV5aWx3bVplU2tvbUlWRlJrdjQ3bStvaEtYRVVVWVNRd3pwWXNwWFUzcExxZjArVVMrMHIzRkUrWEZr''@;'; put 'put ''ekdsdTV6Uyt6WHVMU3B2VVdVc3F2TktUeldlcW5zdk1iU3VrMmk5YVZaekVTYktkUlpueHZUclRMK2FpemxSc2VZaVQ3U3NlZkhuSzlwWkZqSXlUYTdoN3NsUHIxcEd1SWoxdXBWeExXVWtiWXhrSXg1ak5FL2dTVHlGcll4b095UFp3ZHZZeWROMjhaUTlQTjB4MXVBa1QzYU9KeGpGM2Nad2wv''@;'; put 'put ''RmNjWUxwV1RIQ09rcUpxYU9FdTlUUUVyTnIySW1PUkJQSWZjeC90NnlYRm5sRU5rcTdiSlZuWkpmc2tYM1NMYS9MQVRra2grVmRPU0duNUVQNVdNNnAxNndXNjJndDE4azZWYXQwaHM3U3VWcXJkYnBJbCtqdGVvZlc2eXBkby9mb09uMUlXM1dEYnRJdHVrMDdkTGQyNm43dDBUZjBMWDFiajJp''@;'; put 'put ''Zm50VDM5U1A5eE1GRmJwZ3JjV1BkQkZmaHJuVFQzTlZ1dHJ2T0xYQTN1c1h1TnZjTmQ2ZTd5elc1SDdoNzNRUHV4KzVoMStZMnV5ZmQwMjZIZTk3dGRWM3VOZmVtKzczcmRlKzRZKzZ2N2gvdTMrNnNWMS9nUi9oU1A4NVA5Rk44cFovdXEvMGNQODh2OURmN1cveFMveTIvM0svMHEvMWFmNTlm''@;'; put 'put ''NzF2OEkzNmpiL2RiL1ROK2w5L2o5L2x1LzdvLzRBLzV3LzVkZjhLZjhoLzZqLzI1NEVNMkZJZlJvVHhNRGxORFZaZ1Jab1c1b1RiVWhVVmhTYmc5M0JIcXc2cXdKdHdUMW9XSFFtdllFRGFGTFdGYjZBaTdRMmZZSDNyQ0crR3Q4SFk0RXZyQ3lmQisrQ2g4RWlHS29tRzhIVTI2azl4c1BOKzR4''@;'; put 'put ''bmhEd21nMGJqUFAybjUvam04d3JqUysxbmhsd2xwbTl2WEdjNHdybEQ5VDVRcmpxNHlyRTBhOWNidStURzR3ZjZYeGJQUDNHcDh4ejBUang0MG5HVWZHQzF3OStTbmpwc0ZaZjVVWFk0MzVMMkY4MlhpTGNXTS95N0kwZHJQdk1uN1ZlTU9sbkdiQTdFdjVldU1LN2ZwZnJNOE95RlhYWUl5NXhv''@;'; put 'put ''OGIxL2N6czlkbDJmdnZuT2F6YTFDZWxNZE5lV2NlWU9mVnRObjhWNWcvMzU1dk9Xd3hlMWxlNXRNb0J0ZzJtcW9pMzU5bXRUcTFiVTZxbWJRNmFkU3BQbk4yenAvTWFUTzczYTA1cjk2Y3hnNmEzWlBZdVpxbUdWdWJVM0s0eUorZUljM2JBYlBYV28wT0pmTmRxc0FiYks5ZW0yTTNJdFh0QUgr''@;'; put 'put ''bDJXZHlOZHA1UWRYNS92UUdYWnVubWJRaStmWldzNytlK20yKzNRc3RNNy9wSWFlMFNYbjJIT1BJUEVQWmZ6UDdib3V1MXV3M3pjNWZ1U2IrSmJrcTNuOVJwZkozck03ZDdxNy9nd2ZPVkh6VzNxWGd1MnNxczVLOFRqMjdkaVc3WVBMQ2p2QjV2c1F5bUlGcTlyQ2tjNDlnMy80aWUzclN1VWZh''@;'; put 'put ''RzdYRU92Y28vbDYxa0gyb2ppakRUZXh6bzlucGJ1SHZQa3VJY3V2bG4ySFhXOGF1MWNpMzIwUjd2YzFrUjIvbmVsdlkrYjVpdmUrcjdINHZzME8rZ2dQNERsOTBwL0ZEZTFWdXhEOGw0REYyNHZIb3NKN2F5Zk9LWEdhL20wV1FlTDJwOEQ3Y1NWN1BibGVFc2R5cmdoRk53OVU4OVhVODVZMVl6''@;'; put 'put ''TkVYVEx1L016NXNiSGVHR3Uzbmc4YkxqYmNaOXhtZk5TN0NsN2pQY254WE1sSWdoWktWSWhrdUl5NDkwWDhBdGxLWFdBQUFBQUVBQUFBS0FCd0FIZ0FCUkVaTVZBQUlBQVFBQUFBQS8vOEFBQUFBQUFCNDJtTmdackpnbk1EQXlzREMxTVVVd2NEQTRBMmhHZU1ZUkJqTmdIeWdGQnl3TXlDQlVP''@;'; put 'put ''OXdQd1lIQmdYVlA4elMvNDBaR0ppUE1xb3FNREJNQnNreHNUS3RCMUlLREV3QXhsY0tOZ0FBQUhqYXRaTlpVSTVSSE1aLy83ZDlFU29VOWZiMmFkTkdvaFJGOXFYSXZwU3MyYkt2MlJyckVFTkZVc2llSktNWkUxTlR0aHZ1dURWampMN1BsVnZ1REIzSFYwd3p6TGh5WnQ1ejNuUE9uT2VjZVo3''@;'; put 'put ''ZkgzQ2g2d3RCZEk5VTZwazQ1NjVTck1jbGpNT05nWlJ3aXpydTBrZ1R6YlRRSmg0U0lJTWtUQVpMbkNSSnFxUkxwa3lWSE1tVFFpbVNFaVBWZUdXOGQ0a3lqNXV0NWhQemkrVnVCVnJCVnFobHM2S3NZVmE2ZGQvbUgvbE5LWDJIeFkwZTJvOXA0NW40U244eHhTYXhraWdwa2lZWmtpWFpraXNG''@;'; put 'put ''c2tFMmErMlh4bHV0ZmNoc01kdk56NVpoQlZoQlZvaFRlNmlWOWt0YmZWUXYxSFAxVkxXclZ2VklOYXVIcWtrMXFnWlZyK3JVTlZXcmFsUzFxbEtWcWtLVnFUT3FWSjNvZk5PWjFabjAvWk9qM0ZIZ3lIZkUyQWZhL2V3K2RpKzdtOTNvK05yeHVlUHdoNUIzeVYxZS9hZm1ibmc3aytDUFd3U2or''@;'; put 'put ''OC80aDBiWFNSZGNkWGJ1ZU9DSkY5NzQ0RXN2L09oTkgvcmlUd0NCOUtNL0F3Z2lXR2M4U0tjZWlrbVlUaVFjRzRPSklKSW9vb2xoQ0xIRUVVOENpUXhsR0VrTUo1a1JqQ1NGVkVhUlJqcWpHVU1HbVl6VnpHUXhuZ2xNWkJLVG1jSlVwakdkR1dTVHcweG1rY3RzNWpDWGVjeG5BUXRaeEdKTldo''@;'; put 'put ''NzVMS1dBWlN4bmhYNy9EbmF5bTJJT2NaelRsRk5HQmVjNVJ5VlZWSE9SR2k1eGhjdlVjcFhyM05RVS9XVDBOZzJhcFh1YXBwOXRGYXUxSGRGczRHeTNOK3Raby90ZG5QanRWdUZmSEx4QVBadFoyV05sTFpza1JvOWIyTTR4N0Rna1hQTVpLVkc2QWlLNG8zY2VvR21XQkYwUDhkMW5pcHhoeExL''@;'; put 'put ''TnZXeGxIM3M0d0VGZFMvczV3bEc5ZFpoU1RuR1MxN3FhZXJGT3ZNUmJmTmdvZnBwL3p4K1F6YXJvZU5wallNQUNISUhRa3NHU2FUMERBOU51SmxZR2h2OGh6TkwvalpsMi8vL0NkSUJKOFArWC8zNGdQZ0RJUFEwaWVOcXRWbWwzMDBZVWxieGxJeHRaYUZGTHgweWNwdEhJcEJTQ0FRTkJpdTFD''@;'; put 'put ''dWpoYkswRnBwVGhKOXdXNjBYMWY4Szk1Y3RwejZEZCtXdThiMlNhQmhKNzIxQi8wN3N5N00yK2JlV015bENCajNhOEVRaXpkTllhV2x5aTNlczJuVXhiTkJPRzJhSzc3bENwRWYvVWF2VWFqSVRlc2ZKNk1nQXhQTHJZTTAvQkMxeUZUa1FpM0hVb3BzU25vWHAweTA5ZGFNMmEvVjJsVUtGZng4''@;'; put 'put ''NVF1QkN2WC9iek1XMDFmVUwyT3FZWEFFbFJpVkFvQ0VTZnNhSk5tTU5VZUNacGovUnd6NzlWOUFXK2FrYUQrdWg5aVJyQ3VuOUU4by9uUUNvTWdzTWkwZzBDU1VmZTNnc0NodEJMWUoxT0k0Rm5XcS91VWxTN2xwSXM0QWpKRGh6Skt3aSt4R1djM1hNRWE5dGhLUE9BdlNKVUdwV2Z6VUhxaUta''@;'; put 'put ''b3dFTTlsQ3doeTJRL3JWclFTK0RMSUI0SVdWbjNvTEE2dGJkK2hyS0llejI0WnFTUlRPUXlsSzVGeDZVYVUydGdtc3dFRGxKMTFxRWNKZG5YQWE5ek5HQnVDZDZDRk1HQkt1S2hkN1ZXdG5nSERxN2l6K1c3dSs5VGVXdlFudTVnMlhQQVFkeWdxVFJseFhYUytESXR6U3NLQ2t4MHZVUjBaTFNZ''@;'; put 'put ''bUJnNVlUbE5ZWlZqM1E5dTk2SkRTQWJVRyt0TW90aVh6d1d6ZW9VRVZwMUlWMm93V0hScFNJQXBCaDd5cnZCeEF1Z0VOOG1nRm8wR01IQnJHTmlNNkpRSVphTUF1RFhtaGFJYUNocEEwaDBiVTBwb2ZaellYZ3lrYTNKSzNIUnBWUzh2KzBtb3lhZVV4UDZibkQ2dllHUGJXL1hoNEdBV01YQnEy''@;'; put 'put ''K2N6aUpMdnhJZjRNNGtQbUpDcVJMdFQ5bUpPSGFOMG02c3RtWi9NU3l6cllTdlM4QkZlQlp3SkVVb1AvTmN6dUxkVUJCWXdOWTB3aVd4NFpGMXVtYWVwYWpTa2pObEtWTlorR3BTc3FOSUREMXcvRG9TdENtUDl6ZE5RMGhnelhiWWJ4NFp4TmQyenJPTkkwanRqR2JJY21WR3l5bkVTZVdSNVJj''@;'; put 'put ''WnJsWXlyT3NIeGN4Vm1XUjFXY1kybXB1SWZsRXlydVpmbWtpdnRZUHFOa0orK1VDNUZoS1lwazN1QUw0dERzTHVWa1Yza3pVZHE3bE5OZDVhMUVlVXdaTkdqL2gvaWVRbnpINEpkQWZDenppSS9sY2NUSFVpSStsbE9JajJVQjhiR2NSbndzbjBaOExHY1FIMHVsUkZrZlUwZkI3R2dvUEhiQjA2''@;'; put 'put ''WEUxVk44Vm91S0hKc2MzTUlUdUFBMWNVQVZaVlNTM0JFZnliQTQrcmx1YWMxSk9qRWJaODJKaW85R3hnRSt1enN6RDZ0UEtuRmErL3NjZUdibFlTTzRuZnNhNTNsajhnK0RmNHNYWlNrK2FVNXdjS2VRQUhpOHY4TzRGVkhKb2RPcWVLVHMwUHcvVVhHQ0c2Q2ZRVTJNeVlJb2locmZmT1R5U3JO''@;'; put 'put ''Wmt6VzBDaDlQQkRvcjJzRzhhVTZNSTZVbHRLaEpHZ0V0ZzY1WjBEVHE4K3l0WmxFS1VXNWl2N043S2FLWTdFVVp6SUFwS09TbXNiRHM3NlJFV2xnN3FlbjAwY0RsUnRxTG5pdzFXMVp4aGIwSDcyUEl6U3g1TjFKZXVDa3A3VVdiVUtlOHlBSU91WkU5dUNhQ1cyanZzb3BpU2xpb0lqNEliUVg3''@;'; put 'put ''N1dORUppMHpneTZCSW1SeHNySVA3WW9kT2FLQ2RnTGZldElxNzl0QzdjOTE4aUF3bTUxdTUwR1drYUx6WFJYMWFuMVYxdGdvVjYvY1RSOEgwODZ3c2VZWFJSbFBMbnZmbmhUc1Y2Y0V1UUpHVjNhLzdrbng5anZXN1VwSlB0c1hkbm5pZFVvVjhsK0FCMFB1bFBjaUdrV1JzMWlsRWMrdlczZ3lS''@;'; put 'put ''VGtveGtWekhCZjAwaDd0aWxYZm8xM1lkKzJqVmx4V1ZMSWZaZEJWZE5adXdqYytYd2pxUUNvS1dxUWlWbmc2WkQ2Ym5acndzWlM0TEVYY3MyVFhSZlFkUENFZDRyODR4TFgvNjl4eUZOeWl5aEpkYU5jSnlRZHRIeXZvclNXN2s0Y3FSbWZ0dkd4bm9oMUpOK2dhZ3A1SUxqaitYdUF1anhYcEZP''@;'; put 'put ''N3o4d2ZNWDhGMjV2Z1luUWErcXVnTXhCTG5yWUlFaXlyZTBrNm1YbEI4aEdrSjhFWFZRck1DZUFuQVpQQ3lhcGw2cGc2Z1o1YVpVd0ZZWVE2RFZlWXdXR01PZzNXMWc2NTNHZWdWSUZPalY5V09tY3o1UU1sY3dEeVQwVFhtYVhTZGVScTl4anlOYnJCTkQrQjF0c25nRGJiSklHU2JEQ0xtVkFF''@;'; put 'put ''Mm1NT2d3UndHbTh4aHNLWDljb0cydFYrTTN0UitNWHBMKzhYb2JlMFhvM2UwWDR6ZTFYNHhlay83eGVoOTVQaGN0NEFmNkJGZEJQd3dnWmNBUCtLazY5RUNSamZ4akxZNXR4TEluSTgxeDJ4elBzSGk4OTFkUDlVanZlS3pCUEtLenhQSTlOdllwMDM0SW9GTStES0JUUGdLM0hKM3Y2LzFTTk8v''@;'; put 'put ''U1NEVHYwMGcwNy9EeWpiaCt3UXk0WWNFTXVGSGNDOTA5L3RKanpUOTV3UXkvWmNFTXYxWHJHd1Rma3NnRTM1UElCUHVxSjIrVEtyelo5VzFxWGVMMGxQMTI1MTMyUGtiWlRPNkxBQUFBQUVBQWYvL0FBOTQyclY5Q1hoYlY1bm9PZWRLdXBJbDJiNWFMY3Vick5YV2FtdXp2TWpYUzd3dmNiekZT''@;'; put 'put ''UnhuYzV5MEtWM1NsaTRocExRTkZBcVVBV1pZaHI0dTBLRk1TNUsyZEtIdEZDaFEycUhMREcrQWVjTUg1UTB6TEcvWUJqb3diWDA5L3puM1hsbTI3S2J3ZlMrMUpQdnFyUC81OStVVWxhSEZ0U1QrRk9kR0hLcEFkdVJDWHRTRTBpaUh1dEFRY29tTzNueG5lemFUYkE3NjZxdXJIRUtsUVVOUVdT''@;'; put 'put ''S3M5UWdlM3A2MGUrM0p0RGVkVFBQc2s0ZGYxYWYwR2YyazM4Q1R0UHE3MG9aMXlDYlQrRlBTczdqclAzdDY3K3Z0dmUrKzNrYVBwN2UzOTBpdjU5YjdqalI2am5qdXUrOCt6NUVqdHc0TTNIZDBvT0ZGN21kOUhyOEhmbTQ2MWpndzREc0l2dzE0T25zYmo5elE1b3p2dlBMS0I2KzhjbWQ4eFJQ''@;'; put 'put ''M3dBOUNCRTJ2L1I2ZEkrZlkzdnhpSThJWUxTS0V5a2NSSWR5U0JuT2NreHZUYURRVm1uSy9VS25sbldGcmt2TTZBdWxVSnRucXNOdDAzdjNENW9URzdiWlpxNnV0NUp4a2VkRnRzN2pkRnBzYm9iVTFOSWdmeFdQa2s1V05xQXloU2c3ZUgwRjAzaUM4WFFmenVsRTl1bUgwdkhmbmJqRlVvU05J''@;'; put 'put ''eXhGTUVGNDJZb09oZkxTODBzenh2SDdSVkViMGVtRlVnd21wSUdOdU1VQWZzQytSbmo5YTJrOXB1Q0RXSVZSZlYxc0QwN2lyWFZWT1dMQlZLUHpqYThPWVQvSmUzcHRscjJ5U3ZaSThlL0gwUy95YnpJM21HMk50c2J2Z2RhMzUyc3c3emRjcGY5MWdmdml1ekYzNGE5OU5Qd2IvMHQ5TlB3Ny8w''@;'; put 'put ''dDhGU01iV0hpVVI4Z2ZrUVNFVVI1MWlMdWIzMWRWV3U1dzJzNm5NWU9hSURpT09qQ0RDa1pzUlJ2Z1dDbWEwQkhCeG9yR21wcVo0VTl4aEZ5eGEzaEgybFdQQWtYUU1CN01PcHhERDZWUWVad0ZaSEU0ZW5nbDEySTRjem5RNWZHVFNxVUJRSUpIVWtSMWl6OGxvYU9meG93ZGE5K2JFS3haRHZw''@;'; put 'put ''bm81ZStROW9zN09rYXdlV1owNnVhNU5OZmR5MmNqclRzcmNXWDFycUhrYkZyWDJXV2NiZlZHZU9sTjkrNUpYSk8yL1o0ZmJwV3lJNm1XRG9mMEpxeE5pK0pyLzBYK2xYd0pNTVVLcHhaSEhlaUYwZk5WY0hKaEk5YVdZYXpUNGhXa1EzcURUbjhNYVRSb2lXQ0tTV1k0RW03SnhCT09xK0RHM0tQ''@;'; put 'put ''bmc5QWwvcFpkRURSbC9mZ2xFK1o1Snc5bm50eWlCeUhRbG5aRFcvZGFXQkFEaVVSRGc4MkdVS0lqMFo1Sk5jUWJZcUdBcmQ1V1YxMWx0UWlWc0pueVFEbHZEMXRrNENaYkFhYTJjdXpGU2V5MVVLQjZHM1YybXlPSk5uMmZ4K3ZmL2ZWQU1EUVlpUTdDZXhSL3FGTnE3cndtMXg2SnRMV0g4ZFJB''@;'; put 'put ''S0RnWWxiK0t0ZEdIdVFoZWpFN0VXM1pHbzVPSmxva28zclU2aFQ4NGtNNE1EbVRUQTlMeDZFUkxZaUlXbll5M1RFWVRBNW4wSVAwSzlzZWhwclhma3hQa01ZQjlHUGhQWHV5SVIvMTFOVzZYMDRETE9GTFBrSXBpUGw0Q01uYU1hb3V3S2hKcGFJaWtJNm1HY0VOenVGRUhtS1VONnJ5TmRFL1o0''@;'; put 'put ''bzNCTjg1TTFxbmpuWWp1ekNudjBwSU5CT0hQT3B3a2lhVjlKenVQNU83eDFFWEdFNUhoOE54YzVzcElVeWFSdkZyNmRGZHQvVVJmcmprMGZqcC90bm1vbVQrdzNMS1F1MmtnT3VpTGpJVERJODM1VVovNFR2RkExZkhoYThqeDlsaE5WNmdoRzI3dVdqMDNkOHRZMS82UTZBVmlBSDZCUGtFK2lV''@;'; put 'put ''d29PbnJlQVloaXBDeUpuUzhHSktoRTlNOTUrQk12VXRJWlgzakU3aU93SFd1QkkxVmc3Mng1bFNBNHkva2cvbzlEM3NvcXArQTlsSUhXK2JVNUhDTlB3ZGk2aDAxYW5BZ3pOcFoxQXZuWW5Qem5MN25rc0hkdTRaeDMxNDl2dU9ISHUvMjd2MzdWRHk0RVlDS2c1emxjcC9iVFFUOG5JN2FzRExE''@;'; put 'put ''WXVZVTU3MkhvZk11RkgxejFkZWpIdXROK0hmZ200SDFmUXJOSUZMdjhHSlBKSGQyeFJwZE5xMGQ0RjlZaWJvVERXSU9SRnFNVkhkWnF5UkpGYU8wWTdHNFd6UXdQWmRKTndkb2FOMCt4RTFiYWpYbmdCbkJxUWZnam0rbkd3WUQ4VzdMVjZhakh3U0lJWkxMQUp0aHp1dzA2VldDSDA4RitaNzNo''@;'; put 'put ''UHlkajNWODJHM1RlaW9aeXJjYk1hOHFjMFhBa1ppL1Q4R2F0eHRMczB4bk13S3owdXNwS0xtVFRhczA4VnlhRWRSR25JK3dvNDNpelR1TUlPWXc2dmRtQWJ6THJhMXFhYTh4VlBHZlNhNHk4V1JBc0ZpTnYxT2hOWEZsalRYTkxqZDVzMWp0YTQ2Wnlyc0hJbVhSYUUxOG1FR2dpbUhpVFZtZml5''@;'; put 'put ''aHNzK25pclEyK21CNHY2MEhGU1RsTElpQUtBRXhvT2EyWUJsNEV6WUE0dEE3blRvOWZnY2NiREszVjhkUmg3cWZSTVV5bWFKT1hmekQvM1hQNmJPUDVOK2dzZGIzTHROSG9NN1VUbHlDa0M2YUpCRmFXQU1Id1dpajJBODQzcklvMmZESnF0SU5HY05mV2g0OUVFRlczK3VscXhsWTdWaG42TE8z''@;'; put 'put ''QU1xTEZLdEROa25GMUhScUdTb2FMSDdtbkRuTFNLWTExc1A4TWdZejhIOHh1cHRrQ2ZBSmZEMklucFFSdFJtWStEQXk2V3FFY1VhV29xU0ZLODlwdTFSL0hIeVU5aFhrRXNwNE9DNU1CWHl4TlNWb1VuQjZTN0I4aFAzM3daTWZuYUFiemlHSGtTMkZzOWlvaE5nRmhzeHpKWHdDRFkyUUlxZ1o0''@;'; put 'put ''cTZ5dnJxaHlNRCtwZ0lack5mSTZrVXpIc2JhUkVBZ3dBNDNjUERyNTdhdXIwNE9EcHFmekJUT1pnUG44b2t6bVVOKzI5WjJYbDdyMTc3MTVadVdkdjU5alp1ZG4zam82ZW5aczdPOFpnVUEzdmI0QzgxeUczV0FWSHlRRzhSbVN1alFFL3h3UXJBeDBmekNZRjc1TzMxRDZZRXNtQjJaYVRxMU9J''@;'; put 'put ''OVcrQlRlbGhQeTdVTEFhTlpiQWR3QVpDUmhnNEdidWpDc3NpWWpKR2NQcUNHcjRxblBWVC9rVlh6d2NMSEs0Q3cvbTB3S24wTnUxb3VtSm5MSHI5Y09laDNOak10L0JKcWFudFgvS1hwcHA2QTVmN3hmN1VZcTd2MU5DRDhobUdBSjVhbUQrTXVzVk9kelhNNVFPQ2hoWEFNa0NTUXdzQ2NvbmpO''@;'; put 'put ''RXVBb0xBWWtKZExsS2Fkakp6RHFObm45L2o5UE8rQ2s2YWNJOW5LV0dzWXA1MnRHWG1OT2o2WVVibXdBdnhYVGtXaXZxUDV4Rmo0ME55T2diRjl6Y09SekVKVGVQSDkrU1B0QTIyZFU1Mlg5SnA2MnB1VFdYOVBVNzYzRS9kMyt2TytkQ3AwS2pHWDd0b2xsTS8yWmZlbUdENkU0QzBGOEM5RFpo''@;'; put 'put ''UVZtMDBZVUhCRXA0VjlZQVQ2NmxFQUlST2xGWm94bzlGb05nSU5DNVpLdWw2L0o0aVRBdFZZdldrQjQ5dWt6eHZ3elBpbGw0clN6eDlzd3k5SXVZNEhmNFp2a003SzU5UUdjSExDUEExVTczRUFleE1xT2FKQkdFNEszcEdHQVlrc3lwSjdJNUFhVUgyallBMlVBRWsrUDBwVmZLYUFsajkrVjZT''@;'; put 'put ''NWVhVTlQaEdKVENRbVIxc04rSVBTUTN6ZlhPZHlaLzVFcjZrOUdZOGx3MlBSeUZBb1c0V1h1bDV2U1IvSTk2eTBNMWgwd2hyOWNKWnUwT043eFc0Z0lvNEVxb2hXUTBaMHdHSTBXazZ6Z2dwaWxJY0ZxdHlpcGdhaG1xYWFrSzhST2xkNy9RRTlLTVJJV1JMbElCVExuSHlBa2tzdGhqOHM2Z2Jv''@;'; put 'put ''a1NieGU0NTJkWjNvUFgxbThOVFlPMlo5bzNPNS9abnF5M3I5RTVIWVJMei9zTGx5M3hCK01IT3dPMytzNjhrN1YvN213SzdXNGFuYjUyenBidWxNZkx3NVB0dzAzclY3V1laekIyekV3T2lwWHF3QkdZSVpOVkUraEpudUR0b3ZhRGNjTEE5NzBoNDdNSWlucEhmamw2VHZESk9ydWxwVzMwUDFp''@;'; put 'put ''UlRBb1liQklRemo5WXM5TmgwQmJqdkNGd0ZCNFJwNkFBS0dzMkpjSXhLaGNJaDBSTnBUclRYaG1tWVpHaEVEWldPVWUyUTJxUlFLZkFxd2tGbUpVL2s3V0U0WVovbko1VDJ6dlozRDNjYzZPbzkxajdYM3p2WmMwZGMwRW8rTVJFQjdpSStFV25ZbFV0T1J5SzUwWWxlTHFXVSsyN1hmN3BqTHBx''@;'; put 'put ''WmpzWmxVYnRibTJOK1puVy9CdDN0eWZsOUhZMk9ITDVCcklOSUZYejRRNnZaaTdPME9CZkkrdE5YNTExWEMwUnYwWUQ4UTJMb1dDRmxMVm9BVU9OZ3Z4emxHaTZTRmV2Nk5EWFRIQWErZm5iOURQbjVRMFNuQ2RtSDZod0lCQzRYRk92UDgzS2FUNzJMNHNJT2RmQXZEQXZMa3hwT1hzVUU2UTA5''@;'; put 'put ''ZXhnRjVEMHltNE5kQmZzQ3lSczlIUVZOeVVxYk9WaXJJMXB0V3R0N2NWRkRCZDhDa1ZvcWZMNGdXa3draGs5UGtzRlF5UWFSVE5BMVZFSkV0aEpKTitjUjMxbGlwZExMV1NIT3FuQUo3ajhsYS9EcllleFd3RGg0SnlJUy9nQXdYTUg0Y2YrRjhNa3h4TjRzV3NVU21BWGQxRCtzSTZGUFd0Tjl1''@;'; put 'put ''eHZZc2ZrNjZBWi9GWFpsWDgwOC9uV2Y3N0VOZkplWDRYd0JiZWRRbzFsTWNwMlllMkU0Y21WVllQdUdvTGxCSk9UN2xFdlMvUHZ6M1VwcTkvaVYvWng3bUhFT0x4S3JPeWNHYzJTaE9hKzNhTVh3VzVueE95bjBhWm53MTh5cWQwNzMyZS93dHdJOHE1RU5aTWVVd0dTbUx4SlROY3pEeDZTS1pR''@;'; put 'put ''eG0rRm1zMFRzMll5K1h5dWJ6K0tsOVFSeGVpeXMxMXJzNU11V0k1LzB6NzNxU3ZweWs3N3cvdk85dSttRXJ1YmU4eHErQzlXaHZzOERaMitwTHg1cE10TThuSXpwenhQVVdtTlYxblpPMTJiZ2U1RjNXakNWakwrVHJBQWFIUlEvUmNnNFZvOUowZFlHZHlJKzcxWndiMTJZTGNPR1EwRUEzSUFS''@;'; put 'put ''M2x5cm95MEMzNXcwaGhkc0JFOUhwdUNUWW82S25OVmcvdG8yQmNhN0JoSHIzZFRrM1VOZ1NZNlEyY2Z1V2luYldBcVMxVUpuQkl1N0o5TDU3WHpTT2RqbDlpM1NjWHdNYXJFa1dFeEFseGZHZ0FnSkVQQkpvQ3ZrREF4THRMdEpuR1FMQ0lPbHNkenF5VFp5WmM2MGJtbEd4bGRvR1hxdEhNenFP''@;'; put 'put ''UEhVbmNmLzdZVlYrNTRzaURSNU5Uc1dpbnZtNjJKVDdjM0hPOHZYWFFZbTR2aTRUcTY5b0RpNS9adS96RmxmMTM3Y3NmemxyYTM5RWYzR01nN2VuNHprUlA2dXFqRHg2NS9DdFhIdnpzMHNSbEdiQkRFNUdKWlAvSnZwaTNWOXY2VCs2R1FIaWhkL1pqOHl2bmx2ZCtackhHNC9ZM3ZMWThhaXRM''@;'; put 'put ''NXpNTHFiWUJkdVlOOFBaMTRQczhTUEt3R0RKZ0FNd0lZQ0NncEFha09CV3JZRlJRalVxdjE1ZnB5MlFWdVFxa09NOU0ycUFSazZ4MDdlQUFqdE9mdy9mZmY4ODk1TnpxMUt2NGpIUUdnTDRmeGo4RzQxZUNwdFdJdXNSMjRQd3dndzZvRHVTamRobk9WbkVROFZqV3hPbGM3bXFMNEttdmJuUTNW''@;'; put 'put ''amtFbDhVVmFkQXpSWGlqQVBCZ3F1cUF6bU8zS3I4SSszRnJkaTZSakxmM3BSWTdwSy9oVU1mb2VOZFBmdE0zTjlmM0czSXVNdEdTSG5kV0w3Wmw1aEw0MXI1MHF1L1gwcVBqSFIxajBtOHBINkh5NndOQXA3VW9Kb2FyWGNZeWlpUWpLcnQyYkhCaHdZTmFWQlB3QjZnTFM3TisvbnpwbWVQc3ZR''@;'; put 'put ''Y08zTHM0Y0tZbEVyb2tOMzdMeE1RdDQ3bExRcEdXTXdNbU9MbWxldzltV3lOTmlhbjNUazYrYnlyUkhHMXBnM09oY0h1RTZWZDJaclVVd01RTWNnVk1KcVBOWXJTYjdJRUc2dHV4cWxnWnhsa0YvU2hFZm43SmZZdUw5MTN5ODUvUDN6WStmdHY4L2VUYzdyOCtmUGd6dXp1RzM3TnIxMDNEcTg4''@;'; put 'put ''eCtUOEo4OFZnUGlPS2l4R1ZLMUpkU3JNSW9xdThXQnRtVm9aUjluaUJhbVdsL0ZHUVgzZmc2NlQzNFRzbEQvNFJ1ZXExdkNSMWtYTmRoZkhUTUw0Qk5Za0JkWHpLNmRpb3Fvb0JYeGlRZ1k3TWVCNGIyY3ZHUFNYZDBvUC9uUTM2VlhWTWVsNTN3bmw1VUZwc0JhMExjZldFYUxSTWlkZHFFRU11''@;'; put 'put ''WmdNN3FDYktXQ3hvRzZBUkJyeXltZWNSTmhMdnBzTkxlL0VIc0xYbGp1RkZkb0REZDhBQlh0OGxIMkQ2Uk5OMzhHSHB2K001K1FqYkVsSDFDUDJlODZpdzU2c1lUSU9pVDFGWGwwRkhwdnVsZnFrS3RCbVdtTzRXWGtsNEoxZUowcUlvNG5zcE9lRnV1bTNwSmR3cWo0cyt6SHlzVnVyQVdMZDVa''@;'; put 'put ''SE1SREo1SlVhUzlxSjBFc3VjWmFDdFFMR0xtQmNOb3BpeVRKUTZReWNuQUxxQkttMThEM1lzMFpWZ0dKYk1IVHpaRW5YdGJ3djBCRWF3elUzY3lIczFGZHJiaWY1UmlmWmQwd2h6N1lLZ3IyRDRieEZxRFhrdVlkTVBNODhiSm5sT3J4U0xMMDZTQWt3YWdDUkJkKzBSODZhejBLazVOUzcrN0d0''@;'; put 'put ''WXJuUVNkK3pucC9YamsxRXNNZnYwd0xvRnh0VlFuWll1bW96RTZrRUduUlZwQm9JdjJBNTRrQlVLa1hyRUxVRzcxUTZ3L3BhRmZySytMMzJKZE5rRmRsd0dNRXE5Z2dCUFlMMklkMW9taTlMcjBPbDJXRGYvSDZoUUpzczkvVnNmOVM0YkxkYUtiSjZSa1ZFdGhWQXpMOHNwalBnNGpEdEZqZVlJ''@;'; put 'put ''TXduaURxMDlRL2t0eCtIZi9QK3hxbWVuc3YvdkFnYnYzajk4OE1YSHp1SXk0Q3NzNWVPL1MwbWNQZGs2OWIzTHl2Vk15M2pKNVFISDJJT3pOQkh3SExHTllCWkFxaDZtYlpOMlJEMXNzTjlzc1pudTVYUWcwNktnVDMxUGdQWGF2eXBhRlNWdzljR1ZQejVVRC8wZkVGZk1uVHN5L1RNNjFIYzZE''@;'; put 'put ''SEpOd3g4emc0S3owZkRFTWJHQlY1c1FNOWF0cmlRN01QT2FCNURDSGg5Zk5wMkxmdHQxdUQ5bURzVUNRTW1HUTVFNStnelNHRlpGc01PdmNKSXJKN3lKTlkwMDc0MWQyTGFvd1dwdTRwdW02Qmw4QlNManEya1J2WWtjZ1hBQ1c5UDM4Y3VKWThGQ3FHRnhGOENxSDlZRDhKTlFCcDVxbXk2Q0tL''@;'; put 'put ''T3hOSVhlZnp5TUlWc3A3WUxWV2J4QnNZSUZCVHB0VVlFWU9YamIvNk1qRHo0a01kRkxzWlFZMmZNdlY1Ukw4WStEN05JV2M3RWQ4alVUSVV5aEk1WlhEVHUxaVFyVktGVlRVeVZza3I0SW80SXY0S0tnb2pTc3FTaUNvUW11ZCt6bWNDazc5OHYzcDBKRmIweE5OZTQ5ZWZWbkhTczh0SjBMaDQ5''@;'; put 'put ''bllVTk9lbzFkZW1Uc3hZc3lsV285NE83MlpyaXIzOUhoMlQvSlFhM1BjMitWcmFYTzVkKy9NTGlSbFBoZ0ZHQTB6SFVQMjFSVE1TdG01b3FqYTJBdDJwUmVveGYwclV2TXJFY3pLTG9XTzV3QS96a0ovTy9LSWRZcERIK1BpcmRtUnplYXpxYUtZOHEyTkxBelhuaGtVc3d6enhNRXpVNmFSVzJi''@;'; put 'put ''d0o2V1Z2dU1kSGNmNzZHOHp0NHpJYTFYMUlSMmRTOHZzWU9DYUNzT1V1UTZvL0RMWG9Yd00rQWI1dXZRUEEvQ0RUZGhFdVM2ODdpSUhZQ3cvbUVrYVJrc3dWaG5sKzhBb2FGaUppWEcyZWVBVWxrb3RsYUpKTjZZL25OZUl2ZjZoYnp3eitKV3ZELzI4NXh2ZjdJSGhuaUw5N0RWRmRxOStYbDRu''@;'; put 'put ''eUZCeU0rTnR3QnNOT2hnYWpwNnluL0pSTE9PYXhXSVJLRnhobFRDa2dZMk9UMkhkNUk5K05JbDU2YjhuZi9UcUpKNlg3c2MrNlFkNEh1K0dkNTg4dGdYR1BnTmo2MUd0V0szamdBZ0xERTd4QkZnRTZnbFF4b1FqQzBtLzJQblRuMDlJLzY4UFYrRy9rajRQb3gyWGZrYkhhb2V4UkZYdVUzaXV1''@;'; put 'put ''OWtLdm9XQ204MGlzQlZuWlJjRENQOTIvSUMwRjc4aFRlTUxxNjhuU1hkWGN2V3JzdXlmV3ZzZ2JpTS9mSnRXWEJJUUMxNVRQejEzN3Fma2g2MnJWdXA3WFh0ajdWRjgxelkrVUE1MFcrMEFYcEpkb0JpMXdIeFZoZmxrLzl3eW9tb1o5ZGZTK2RENmZFNWcrbWw0dGNCMFArMGh2Mng5OHh3ZFBv''@;'; put 'put ''TS9neCtVY2V1QzdraS82QUR1enJ5V01EUDE0RjZ0ZUZndTZGQy9OUW5zZ2ZkK0wzTlgrMDAzNTBBSy9lclZWK21hcGJWM2tsMXI1Mkc2QmpiR05qNWpPZ1FQQUNSa1p2V0JuVG41WEx1SmlONGtMME5mSit0cmdwNUQ4TTNWRmhESDhxeFpwN2U3OThZcytVckZoMlgrMWdyNnd5K0lnS29CNDNh''@;'; put 'put ''SzQxV1kwemhCSUFpZ3hkZlZham1kVmtQTldLMk9hR1Z2SmRYaVhZeFdSdlZZcDFPVkxqZVltTzZBMisrcGg1RmNQci9YYWdBNElZY2RBRlhzNm1LMkViVndMYUIrcWVFd2ZQcEUzbjBpdSt1U3pHTDd4TkxBem9GcDEvNEYxeVhsczVNOXV5YzZpSEROUWVrYnV5S3RlMGRhSnlMMTlyNTlzV1Ny''@;'; put 'put ''NU02M1RWZjN0Q2E3NUpnMHlZTjhzWUFGMGkxMlZwUVJyWWJ4eWNyUmdsdkd4WFNvRGM0NXF4VWhhNlBWNDNaQlQyRGJtNXh6UVlwVFFyRlBUaFc5SHp1Uno1L283VDVjbjgvWEgrNE96U1FTTThuMGRDdzJuU2JDNEkxalk2Y0dPOVBMNUVucDM5S2RVazNib2M3T2cyM1U3WDB3QzJlVUFIai9C''@;'; put 'put ''dUM5dFEzaTJ0NEdjYnlsRGZMYkd3WUhieGhLTHZyRDdxRmdkbDg2dlM4YkduYUgvZnRUcHFGM2pZeWNHZ3I1bW1zYmNnYzdPZzdsUEhYTi9pWjY5aG1BbTJjZGJnTEg0RWFoeFFESFZHdmxySG5tejFNVTdHSzRXUUplZ2NJTkt3ZTl2a3FCYkpiTEhncXVYaFY0TnpHSUpSbjB5Sk9yTzViVG5Z''@;'; put 'put ''T254c1p1Qk9CaDkrcFZXUXF4VE52QnpzNUQxRjRDdUJFZndNMko2cWlWQ1R5R0kwd1FFMDVEbGd2TGM0M3FpdlNIcWlxRXF1cXFhdDNWOEpjRERBTzZVcDhNc1dJdHdsTkhra1RIZTJDeCtNZ0JkN0RoK3ZiKzZ3WjNYTE5qN0IwZDBxZzJNNXVhdUxRTVg2czdNQm4xMVRaN28wT254a1p2SEJ5''@;'; put 'put ''K2RTRTkzNEwvZG5ubjFCRkdmeUFQOEJSNUJhVFZIckdzQXV1MGxSanB5SWpzREtsQk9wMTJDVFNHS21ad28wWFFmbVRIRzh0UXFBWmxWd2QwdGxMNjVZSlk1dld5MkJYUHUyVmU1Nlg4aHptR21QTllaMy9zMWx2ek16UDlxVlNrd1JHbzloRnRUa3JoYitjRzIwYzhNVWV6UjZiMStOb01xUUVZ''@;'; put 'put ''MGxqOGtMaWpycExvdElvZkUyZ1pHSjZPckZENmhvbEJzYUZ1R1ZmQm1XbEZZdzBnTytWd09JeFFIL0Q3ZlpUR3NhQ1FDN01xTWh1OG1ZQUY2UklzcU9tK2NxanpTbDlOdzJMTHdyRzZGYkgzMHE2dVMzdDdqdGJkT3B0SXpLYVQwL0g0ZEpKb3BkYmVsZlpBZld1dForL2svblM3ZU1YQWppdkVY''@;'; put 'put ''UHFRdENjeGx3WDd2bVV1RGRCbmNCK0h0ejhBSHR0cHBNSWkrN1laRG9PeXhyeHRyaUp6REZRSndlYTFVZnVUMGpxQVVuSFhDQXE1NDhzV1d2SVQrZWhJT0orM0w3WVJvWFZQVG5vRTkvZE1CM3FEMG1OQTE2K0ZNd3llM2ZEK2NmSVZrTkVWMUFJc3VGT3I2TUVKbzZvMVhWRnVOakYzcVhhVHU1''@;'; put 'put ''UUhFYkxiNWJKWTRBVzhoRnppc2dqVjFZTEZ0Yno2Qm95Lzl0VGFCUG9JRzk5TmNiNEMrSEk1MXNCcGFZdG00amlHSnhyZ2NocU5XelBHWExSdVU3WFRZUlhZckh5SmsxWTVLcVk4NmJ3enlncmVFYTBvTS9zRnR6ZmZuMXBmeXBzL01mQnBMZDlVVHpLckw3UU5NM2dEU3dEcWV4Skc5NG9OQmcz''@;'; put 'put ''UUc2ZXlXN29hVlQ4UnJFemFZeXJvR0M4RjJGYi9ZT0xMeS9rOGJwckNWZExQZm5YMGZRRE9XaHlWNVJjOW52ZkR1S3JkVzFsaTk0NEJsSUJWeUcyNUlPQ3lGNlhFbG9acTJlN1ZhZ1ZHWExvbE1BWjFPdGVvaHNiOTVIUDNva2F2WVBWYXZUWURVRkhSMGVzMi9KSzB5M2dMNytTKzZWaCtxRTJj''@;'; put 'put ''eWcvU3Q3eDFLdDArWjYvYzMxbUVFaFA1OVUraUhXdUtkNlpBSkJWd1V0aUVrOEtmZ1pQMnQ0R1QybG1Ha2dxZkhJUjVOOW1icm92YW00NjN0amRmT3pVOGZHcHc4TWJoNFJzSE00dlo3R0ltUzkrenBwRjNEUTJkb2hJRzVFeXUvWEF1ZDZpOS9WQ3UvVkM3dko1cDREbDVXRStKYkJhS1pmTzZX''@;'; put 'put ''S1lBc3VLTHltWVZNSCtXYkpaK1RTNHNsOGhtS2c5blFCNEtXOGhEb1VnZXJvdkNVWmt2YmljUGhZdHh3cmVRaDlyVlNTeXNDOFJsS2JSQkhtSTBEZmkxQUdzMTBTdzhPVHFyNHRlNkpnSENRN0RKT3JjbGs3UVhNT3B2VGd5MDcwMENHYjdTazR0UHA2VWZFZTBsMUk0RDNlUnBHRE93cGIzcDJt''@;'; put 'put ''eHZCcERmRnk2Mk56UEY1cVpEa1V6VTJpVHMyTDU5VmRTemJ5RTkyRGV3ZnpJKzFSby8wRnkvYzZTbHIydG5kakRjTXBzeU5mbGl2UzMrWU5UdTdzczA5L3JyM1ltV3FLK3hxVnJ3NWNMaC9vRE1JL3l3eGlueVVaRG5jVEhpeERxMmI4TGRURmtpV2FUT1U0Q0JUcWRxQUV4dVdodXA0UFRMZXFp''@;'; put 'put ''ZzVIMEFSNkp1L0V3V1Q5bGFxMVA5TXpQNTk3ekhWMjJwTjlvcmhaRjJQSlA3MElkeTBnT2VabE1aNDAwdzczOFJyVXpQSE0wdUdkRUNkNkd6VWYwSVVlSkNhcEtHSGRtOU5pL3pjUmJwUlpUZHlsYTVnUCtMa25HYlN0UnczRzhBQlFOUjR6SHBLVWJVZUZqZUwralZ4RWEwYWg2RWFxbXB1b0Zn''@;'; put 'put ''WVJhRlZUWXQzVHNlZjJ6SHExa1FuaVA0VVNwRE1MQTl4Rm1oZjZtTktyeTFqZXJ0dmUwdk1oOTVmKytEK1E5K0tBOGpUdUNINkd2MURYeS9ORit3cGZFZllXeVdkMVBHYTdDR3NqbHE2Y0RZSENseWdJS3RTdkhFQXhhUE5aaDBacE84RlorNzk5N2hiMzFsK05PZkhuN211ZTkvSCt0WFgzeHhW''@;'; put 'put ''Zm9qSGJkdWJZeTRZRnlCd3Rxb0o3QmtqTUVBVm9ZdW9LR2JVenliRnB1WG9hR01oZDJZWTdzb3gveGhmMld0dDdhcHZQNWYrNS81VXQrdnFzYXlqd2paQ3Flcmo1aWxMdnpzNnBPZFdTenZCZGduZmdubTNNYU9GZDdhanMzZ1B1bFpmSWYwRkI2UWpyWGdUM2EwU0NzZGJOencyaDY4bHp3QkhB''@;'; put 'put ''Vmc1R0p5b0JMam9VYVdWUVFONWhXQ3hXaFNjRkF4cDRuaExnenNQMDExS1pxOTZTd25kcWNjRk9GcEdKekhwbGwvSXRzVzk4K09hRHZ5THV6ekI3ellsZS9RM2hucVQzOHdGVzJKcFc3UDlBZjFjWDFOb3ZtT2VOWmt6aVErSEU3VTZPTXd5MlZyajZLN3Q3R0pxWVM5TEpWU2tvS28vMmtQM3Mv''@;'; put 'put ''V0hoTDllbWJMQ21CUk5tSTh1SjVXdDBSQk5VbXpaUWx2Q3p0QmJBVGxnSDZXeHVxemRhUVdBOWJiRzNYd0NTY1NZeXNPQkh4c3hTT3ovbmhiTmdFN2VTY3NOdnpoZU5ac3lzYnZhS2FMMVFmN003ZW5ZaTNSMUFmVC9TSDkyaHJxd2MzNE5QNkN3R1B6bWlUOUVoa3VJUHk0OUVzV0phYXladGZh''@;'; put 'put ''SFBvaUVWUjlqSzJPQ2p6WHFKcERZaVVsK2hqVGllUmtMdEFPa2g5VjRxbStZWE9DQ0dyOGRIVUgvcFVxWHg4RisyMGMxUUJsQVpkc3FLOXhWemx0VnJPMlRGYUMxQlJkV1hsbVBFaW9sdEdGaHN1OTZSaFJjM0xwV2RLa1hIckdQckNYZ0R2amwyWmpZdjVJTG5ja0w4YW1HOE5WK1VadmQxVll1''@;'; put 'put ''bW0rcjIrK0ljUjE5eHJIcnVydHZXclVLSFp4UVU5emRUMG56V3NhcXB1dlBpbmd1NFdUY3U1VUZoWWFZWEd1UGxHRW82VkpHb2ludVo0OEh0WmlBa3lUSjh6bHk1UjhtcTNCODBWdTkxcFVLOWo4UHREZnFLcmt0M3ZTV1pZdHQ5SDhyTVUweDRkRUpHTkhMZ2N5ZE1kSlY3eHlJUWVjK3NVWHU3''@;'; put 'put ''cnE2MTdNM2Q1L29sTk1SV050MGFuazdia1hOL2llSE5RVGJNUElnTUgyUUR6TE5qaXF3d1RVRkEzaGxzdFlXcmFjWCtTd1d5MXFDbmFsa1NaaHMzUjR1NXJFQnk5RzhQaTJoMTU1NVpVK2VEMzBSK3F0d3YyNVBibnJyb00zZkNsMVdiSHo2eWQ3OEJ4NWdPVkJ0REl2U1pBbUNnSXlNOGZsa3Bh''@;'; put 'put ''andNS1RXMlE2VUFkS3NTTGRXdlQ3dnFvcW9kSlZKWnhUUHNrZSt1bXFwTC9MbjRDL1laVEdYOFovVjltSXcxcFV5ZUV3ZWxMeDI4emlhOGpadCtQem9ma0szVGdqdlVET3RyeGRuNCtUOXo3UmR6WkxYcTQ0SS9PNjROcExnTVBuNExSQmYwZFVmQ0p5bW9yTzkxQXh4dHgyekcwYllGSUJLenBN''@;'; put 'put ''QjFWcHFQL1cyTCtTYXp2YzlkdjBqV2tjYnRtZHkrMXVXYTBuWDF6ZEplZGkvZ1I5Q25jQTBPcEVkeEdYSUpSOVRCWWxNR2FLb0xkWVhjMU1rSis0clBURDZsTDhXV3NpZW8xbVFhSnIyZDRxblRiQVphc0J4SmVlOG1ld3JFMWdXVGVBT2czeVdITUZ6YllBcnIyeXpsZ1AwR0YydWtVUGF3S1lk''@;'; put 'put ''WHE3TmdzaXpTVjFJWmZWNS9OUndVMUJ4NkxSekxaVnRCdnF1d0xobFVtK0ZHd0xWY1VxTGJVK1I1M2RhaXV2OUNTcU5QcW92OFlYcXpBSEtSSllqY0pFRHJPYWhoU2MrN1BzM0NNOFBmY0llbHJKeHhqQi84ejRsUSsxaTluR0txZEpRK1R3QWtGMHJRd2haUVlHMHVjQVVrU2V6K3QyMmEwRnZF''@;'; put 'put ''VEZMRXhKanFKdUlaMnFmUUt6d1NHRnIzbTJ5Q0ZaNTNQU21TMnlTTmdlbU4rY3U3NnlFZFpLODNUNjBFZlJGNUQrQXNIbjVUU2RMZG9jeDg1dDJweFUyMkFlZlhHYk5pdUZObVoweHpadDVncHpIVVdmazl1UXpXMitVUmpIaUw2OXNZMmNIOEU5eEdqQmdnYkZmb0h5SWliMTlRZ0RGOUxET2Vn''@;'; put 'put ''MXl3WmdrTHBGMENzVmY3WlcxcHlZR1dXcHRFRHZDb1ZCR1lGallqVmlucVpKRktBaGdDVmhVeVBuMG12N1IvRHRSQ2Q1ZnFhRTBHbENSWmYwRHZ3UjZYS2t4TDFGbHFlUVFhK0w3a3c2R05Ed09qZGdhalVObWJrcUFJL0xNZUcwQ3ZwSGFDeUt3MWZBRzlLOFEvVXlPVVlSOEhURnBBTHBkd0RX''@;'; put 'put ''N1NZMHljWkdNM05vSDRRMXA5OXVKMXB2RTl2UWlUdDFzVjVpZUhNSG1nMUZqbXpSRDQzUnRCeGp3TjhNMUdjRkE2b0dwR1VGVnZuRFpncVVaZWhXcmxDeWVHMVB1VVpmdTVrOHErWS9QcjlWamtZOHkzbnhScXB0MHgvNXpKNlNwQTJLVHl5SGd1RjNTS0dCOXpOOHdrVjR1Ym5OY2ZUd05tMU9x''@;'; put 'put ''bTJBQm03Y3BzMWNZWnlqNkNxNXpUcCtyMUV0N2NOc3JvaThuclU3dGhvSFZ4YTFPWTVzbTl1cy9RTEdlWTJ0SnlLdlorMXZTOXI4TzdUNUkxdVBQTTdSdFhzMnJnZG9xUm5lWG1DeDBscWF6YnRSMDFqVVl4b29OUlNwR2hVVjhGRmJVY05LcmV6UXpRd3lwMnpkMEdmR1UxSlFqWHlncXlRUDVp''@;'; put 'put ''dCtUazU0R1JsUlUxNitnLyt4a1BhQ3UvTzRkZlYyT2ZubEQzbFdpZ1J3WURGOXhsTmFGSjd5aVJKWXNUZzFnMVdyY3I2UGxmQ2R6VzJPNDl3MmJVNnFiZUI4WDltbXpVcWhqUms5dEUyYnVjSmNSOUZ6bS9nWFJydlFYK0t2RVIwSUE5M0RlcG9iQ1VwbEVFZ2ttSFZtblRoemUrUjIrZWVEWVR5''@;'; put 'put ''aC9uYjc3V0drNXZQK2p1WEkrMUNjMWdkRndyVTFMb2ZKb0djK0dwYTJvN2c5SEhMNFJGY1VQdkg3L1hGL0xHZ05XbGtHdHByVkdnQWJMMXVVTDVma2tjT0pGVEpGY2tnYVUrL0hNNmtEZCs5dnZ6U1dIcDZMWjRBMjIwOUUwOE96cS84Vzh1TlQvdmtZMENnK2NmTkV5Q2ZkQW4rUm1uZnZXUHJz''@;'; put 'put ''d1lDMzYxRExtUjFBbmZRMzZUc3JJZnh3VFQwUXFmVDlxZmROWm84MlNlTTE5UXgyTEtiTXpxbE5PY3NuU3M1N2M1dmo2UDl1MCthazJnYk84Z3ZidEprcmpITVUzYjJaVm1XOWw4M1ZxY3oxOU1aeE51VWF4QmozaEhQUUx1dXdFdVVvRksyQjVLbHcyQ3FjbFU0aDRLbms1UWhvc2loRHcxL0kw''@;'; put 'put ''T2o1NTVJTWpWTXNSYVB0cG1kbUJnZG5wQmRrbVRQRGNuR2VCUnB1RVdOR1VNS1pHZ0lDaDF0UkV5NlpXeHN2NnVSMFFhdlA0L2RFdkN3a1VaSzdIY2JwOVlJRmxYRlQvK3BNZWw4dXR5L1ZHbW5yU2UzSjdoa0k3d2pOOWUzbzZCaWZiRytmRklrNU9aMUlUQ2RUTTFYdS9kbjBmRXVIcnp2WU1k''@;'; put 'put ''b3hrbTRiSGMrdFNnQkhPVjc1TXNDeEgyUXZRWDJYeS9TOThUa0g4UDFFMGZQbjFmYVlQMURjL3VuQ2MzTnY4Zk1IQ3VNZm5TOTZ6cmtMN1kxVU93TWFndWZjWGFERFJVSEw2MEhIeE9VYWdKM0hEVXFDSGV0SkR1dktES0I0OGpvdERhT1c2VWpaQ3RJakhhL1hMWnNOUk0wR2RvMldHMDBjRlli''@;'; put 'put ''VXR3TzBsVTdIWWdpbGU5SmlaM3NzRlV1MkpHQ0NpTlhuOWZsOS9nb0F1UnJFa3ROVFM2S3JzZ043VTJnTDBWeHpOZVpLWHBYalhIM1hldXV1R2RwN2FYSG9kZkNBdzN0NVQwbnNTN3BsSWtwRHNwUDljaFJzb0tOallHRnNQU2JibGMza2kyTmkwa3g0TkJxbzdtbE5kY280bGxnVFdld3pneTZJ''@;'; put 'put ''N2tUYzA2RFJhdXhZcDAyQldxOHJxUFdxWHVQbjRTdUNkVmVnNGhUN1FsQ0tucU1icWJwSmdEWFc2a0JwZnN2V29yZTBJYlVFMEpGQ2V3MnRBZ1hKQk12TXlBcUpucThPYS81RVJZUVcwV1dTK0hDSkl0SnphZGRXa2RyR3VVUjVpUUdSMDQ5ZXM2TWtlTnNZMGpSaWlwTnlUSlRpL0pCTUN6Zkl1''@;'; put 'put ''THJ4T2FXRmU0dWVQNisyeC95bHhlMGZLSXh6OUJCN3ZrWlp3MjFzbkpmazhUOGd0eDhGZ0JtTG5oK3ZrTnYvRzN6OGhvMy9ranorZmZMekg4UEg3OWo0Y3Z1am4xbXZxMmdsZncvYVFoVHRFYTJWekt0YUMrb0FhQU0ycTZVTUQ4bDU1dzdWQlMxc3lBNXppemFhcHNGaHNsTDhHQ3k1dXJxNmFG''@;'; put 'put ''MGs0QXY0YWQ2c0twa0tpVkFCS2lEcFNkSnM3czFlZWZ4UGkrS1Z3OE5YOVhTZDZEL1dGejU4eW5td1B0c1ZEQjl5amxUTXhtT3piWm5aZUdJdVF5eGZPTER6OUVEdnRhUERKM3RtWnVhenFYQzFyN3JHRzBsNVZsOUk3bXR2MjVOSzdzbTE3MDBCdk9SWUVPVTFVekt2R1ZtSCt5Q0Q0eTUyVG4z''@;'; put 'put ''b3ZWcytQNDdPRnoxL1hua084TDJ1ZUp5bkM4L05lNHFmUDZBK1IwY3ZsM2xXSHpwTnlra2Q4NU81MFNHNXdMcUdWaXRRMXd2UzhGaXIwUjdXcVVGR0Z5MmtiVVJJcDVhRXFPMjBXczA4a0kxMmlYV1lYQkFkekNCeVYxYURjRktkYkhwcW9SWUhQY0V1S2k1cXdBN0ZNdjBwTGIvNGpsck84RFhW''@;'; put 'put ''SkozTlgxaXZZdUFLOFMwbldHN05yQVlKTFB0UXNOcmxOT3EwR2ozR1drNEpoS3duTUd6V1hEd2VUN09ueVc4SldqWm9Mc1dLQzlOYm5GaU93bWtVclFXNFprTncrTWJCNmY2RzRXNXZhUGpVNEs3QmhtRlJPdG1DVGFsOGRqR0w4V0xXNVpSZVMrYnh4L2VuaHQ0MTB1SWZEaHhJRFowYWFRMk1T''@;'; put 'put ''bS9tY1h1Zy9WRHV1KzJIYzRHQkd1azVQNXlSSEZlZ1o3MWJwakdGSmpjK3B6andzYUxuejZ2dE1iK3Z1UDBEaFhHT1RzdlBaVjg2SFdlZk1zN0hpK0p5Rjh1WitiUGljc0tmSDVmalZyWkltaW5heHdQS1BtQi9NNmpJeGs4VS9BREhGTDIrV0krV1pmclpna3cvTmxMY2QyL0JQMkJROUxiU3Zo''@;'; put 'put ''Y0tjdDh3TGZPdWhyVnB6Z3E2bWhOVlUvaTVzSTdUWTRLZElGRzRFWkF4aUJvL1I1a096UzZYR0ZXMUtDdE5TNm1xcnFyMkNZTGc4RkRab2xXOE45bWdYSFFoUytqV3JKRndWbTlMdk1NdTlCY3FNR29hUGJVTjFoL2NmLzhkdGJtRXM4bjBLVmFOMGVpdWJiRGpIYXdtZytaMFRaTWMwRWd6aUxC''@;'; put 'put ''RmNRL1ZTTnlZS2lROGlVVU5uSjdYWTYyK21TWkJVNldFMXhPK1VJbnFvdXVzQUN0TnIxZGpuRW93RGRZZERvY3o0WFRBWndVMUpPUXBBeU85c1BMME5tcUlYVkEzRXloSytDSTV1aTIzb3lUcDYvQUplWDgvVjVPLzZDN2RVV1BmeHV3dm1oREd0dnlSUWhhWWFpOTlnT25ZQVVYSC9rT0pyaTdu''@;'; put 'put ''WDFGNkdGRG80Wk5GZlUrcWZiRWVQYk5OMytlVnZnVHJENjdibG8rd3ZrR2w3ODBsZUVSenJiNUdub1EyZzZ4TkJXanhGbVNBTm85ekZ0b0kyaWoyTTJEb3U1R2FuM1VJYUxRYXZoa1EreXdhWXREVGFrc3RUWnpXb21VNG1zcENCWlhDNTZqam5QRTlKeGx6dTkzTjdxWWdqWUFHdklycjNGdVNw''@;'; put 'put ''NlVXd3FQTjRlbERQUnZpMCtmUDUzdldVSEdRZW5UMVMwVkpXMzhiNisxZGZXUkRtTHJneDBnVS9CakhZTmxid0JYMGo3TUYvZVBZTE5yS0I0TEwwUGUyNmF2cUxoeTBVZXBkZ0Fab3ZVc045ZXBWZ293UU1LM1hWVE5KS1lMemk0am5GWWNlWlhjVm8weVlBUUZZV1gxeERhb1JiRjZhMFMxUVhG''@;'; put 'put ''ZnJZTHdxUmp0bDVNOFdGY1pNeXVoYlE5RzdSbnEyVUNYRGtEVU11QnlxWWNVdE5JNTBtT1d6MFJ0ZnpvaFd2dy80YnprR3hSUTBHaDRFcndhMFlBK3R1VU02RUxRNnpUS04wYWdIclZ6OXdCSVFHSmxhcVlqMnEwMFpBUERoclhyUWJMSktkbVZNek9XMUJ2eGVMdzN4YURadVNGZVNIQ2RydEx5''@;'; put 'put ''YUkzZDlZWk1HVzltbVRMa1dzQ3RzWXVCdkZLT2hzbGJadWNOR2l0UG13SUp3ZU12dzkxankzQlkrTWYwV1BySE4rcXRla1pXc1Rvang4V2FGano5YjBsZk9mYU44ZkVUbTR5dEtYK25YdE1aSTdndjRVMEdNVEVkaTdUbnFsSXFoUERvc0hvaldFejFmNWFTR09LMkRSME5HNmh6bTlKb1ZnNm9v''@;'; put 'put ''bFFQMTZYUUNkV3N5TkpMamprdHkzREVlcCs2dWVEN2VsVTFYeENwaTRTYXZwNmJhYnFWdXJ5cVRxaVRScTFSa3ZjajVKK2JWWWJlcnhsc1hNQWhPcCtXWGJ5dkZicStudXJvdDZnaUg2T1VuYzI4MzN3NzArZjhOK0ZYR2FGcjJCUjViKzNpSnYvQmxhS05sTkMzci9NZnVVSElHMXFiUkQ0RXVy''@;'; put 'put ''VFRPVGlXbVZZNnpxMlhvRkdTcXZQR0JmR1RwMXFxVUFkMUNKYjRmVXV5cnRvc3l3VkV4VVIweGtic1ZVY2hrOU5vYk1OY1RMTmJub1RlcTJHMUV3M213WExaZk9ESlZXYXdvRUFrTEVqZlVnUlhpcURCdm1VSm5WUmZrcE9VLzZwSVdxTlZXVlZVNVNaZm1kVnZ5OWZMaTFGaWdVTFhxZ0hYV3Qr''@;'; put 'put ''aDUvTWZWTjVTRkFnN1NTczIvV3ZldEFnL2pOL21HV000ZDJHTGFRbTZjVUpJYk41clAwendTR0c4ZjRQUVZJRWNhQVhjWlR1TnZ5WFliUE9jWXJrOG96MjlqejFrZEZwT2JjVVZ1bHBYUUQ0QUVsM08zUXB0SnBZMEZQU3EzZVZSdEk5ZHpQYW1PQStOZnhXUWNMcEp4ZEp3d2F6T3B0TGx1WXhz''@;'; put 'put ''NWo1WjBBWTZZYVFhYnlWaG1BTTJlMHhPMXNtMVRrWmdabWUyRklqRStUWkVrYStjRjBpWDE3dGtqZnVRalhWMjRMaWJHOEpUMHlxZzRLa21va0t1TFdRNWpnMWhyTE9OMVZLanFsZXE1U3FVWXhNNHVlOEU4YUxYS3dCaFA1Y2ZIODFQNFFMUDBBbmFHeEJBK0lqM1pYT3hqdmw3MU1RT01mbFVD''@;'; put 'put ''UjlrV2ZGbXhCYW4rY1pmY0Y4N21MOW1adFNobjgzdTV2ZlJybWtlb3RvZm45eFhOZGJMZ3o5YkRhV3c5MS9NRnUxTi9EQlg1bFJNRnYvSXg5T1VTZlVXMnM4NFdiTWRqaDlCVy9tOWNqdjZ4Sk82MjBYNGx1UHkwckRPbmdMRStDK2RxQVl1L1hjd1dxbEQxcEZDR2FxRGxkbXFlRFRNMmFxMDFE''@;'; put 'put ''aHRMckpNRnNXczl2S2F5UXhwaFcxZGIvTElvWHYySC9mY2NPSERQZmhLWFBEdmxnSThpakhkL2V2L1MzZnU3Vmw4ZzJZbGJKeWZlUGFUWWxkd2JMSjgwaWRyUmxEamh4SG9kZGQweHJRRTR2VmF2V1RZWmlFNG5WMVc2Um8xOEdVZDFlc1ZsbDByNXdJcEl0YWR5Mll3djZXdU5OTk9VVTZzdjRQ''@;'; put 'put ''T2JZZEViSFhicmZMeEl5RFpzNHVoSWxyWmNoK3lwRzdxaDBmdXVrVUdXaHpuOExxL251cUdDekpXT0ZXVms0ak1iY3RYSGUzc201QnpOOFc1eFRCYSt4V21hYXY2NklvTVBzck5OSy9qN1RBbGV5SG1IOUd4blpkL1BtS0tyQWY0ZVpQaWJWdkQwQ2JrOTRPOEN3OTlaNWJteGFLNlQ2bHlBdisv''@;'; put 'put ''ZGNxNzlESDluWmZ5MXlYT3h1amkyem95eXpydEtjRi9PWmFUcm5KUFhxY1JXWTJzaXE2a1QwUnVpTTluYVVLL1I2ZDAwNmw1ZENhS2RwbGhyRlA5amRHTmNGZlRGSlJEc0R0a2cwdUt0QTZ1eFRZSFZpL2VpM3N2NDVrRHB4YnJKUWQ4dFFxdGJkSlJqcXlaZnhFZFRHNndXQTVnQlB0azl1VTEw''@;'; put 'put ''RlYrOGVwQkUwa2QyVkd3VmFCMjhQckY5VGVITjg2bVNlR3RPMnhaL2l5cERscGNxc3J6VVBKeFpUV3RMZloxR3kyK01oV3RHM0tEeERtOFpFT2Q1M1JLaXllQm8zWmR4MFlENFJUdHRHUkMvU0s5dEErS2wvWlNBdUM4Y2Vuc0JjWHl4QkZ6ODlLR1JMUVBqaWFYQXRsbTVvN3UwalNXbkZhemZQ''@;'; put 'put ''azIzbUQ1UHF2UUp0SDFzRy9wOFhxVlByTThxdGFSQW43U1cxSU1lRnUxVmNMVElhUWFKWUtLWFo0MTRzRVk5NUNhRWFJcnBGU3hFUlU1UlI1V2FvTUYwT1VMd0FaRGticXdlVmpQdG9FSGM2YmZSUXd4dWFrd0xBZ2src3FrUGl4VFE0bjVHV1BTTTJJMVRXNTRRdGJ0cCtTdWV0VzV4Q2pWbHRD''@;'; put 'put ''WTJ0Z25XZlVVMXNuNmdBWnIzSEVmUGlhNG1yT2VhN2NTZ2o5b0lNWlJFVGlKSXE5SGVYSVpwYlkvaENoQmVBRjVhMmNOeG1rV2RYTjlURWtDSnJ2ZlJHOGpwaTNVQ2NHN1pYZ21tRkhYaktKQXMwQzJPNGl3YjJ3bkFvcTZJYlNJcXVEUkQyOGt3SHdkS2NEZVNYYy9hYm1qd1Yyd1JRQmxNRm1k''@;'; put 'put ''eXg2cDBmamtuaTlVc014ek5Lamo2emhJY3Bibm1QMkM2NnJ5c3E1S21FbjFXanYwbUNySGZZK2hqcGJvejg4MmVMZmhtancyZ29yanhOd3F4WlNQNlZrbmNtUFZsY1VmWjMydThBVzBWdXdZOTdQTmI5UVdMditCYnh1VkxTS20zbm1iMTFuN1VJYlk1Z0NXVnc4bUM2TVBjaUhKN2hYcEhLblA3''@;'; put 'put ''cmh0RjBNUHZxL0w2ZmZKZEZyTFhmSk0zWkZOOU5qazdlR2JLcktzcWVBeXFEbHl0VkdxVGM2d3VHMXNhRkJlQnY5cnh5UlBGZGRzczczNmE3QUM3aDYzVkFMYWlIbXM1UDZhM0VpbkovdFJmV1VpL0wzWlgrbWhOVGNoREk5UWIvWlFiYy9IWGJVcXlRM1pMRnFmbTU5Y05USGZVT0xBNVNiOWd4''@;'; put 'put ''akY4b2ZYZ0RLZmE1VndCUEZXQ0MzSStQdVY3ZTVnK3hLUHZGZVVIbkZUekErRDVyU1Y5WlIvNDg2b1BIUE9McUtqdlhDRzM0Q2c2VllJTHJFNmI0VXVYb2pNOVZESytuQU5QOFdWUjFwa1VYSlA3enFsOXdUNzk3alo5SDFENlVqL2NuVVY5VHhiNjZ0RU4yL1I5WHAwWDYzc1puckw2dDF2aDdD''@;'; put 'put ''dW9yNEJtNWRLNkJlWXJFTmF2TjNFenhLeEE1VloydllsdVUzV2J2cWlxN2FITnBXeHkvaXdlSWMrL3pacHRKNjNaL2x6WHNmVFV6alI1L3JiRnhhM0hLTlJwRUhRejBNN1ZTcFdHTWtZMnlYdTcwenVuMHNlNnlQT0xpN2NwWTR6ancrUUN2VzJSamRGSTh3WTAxTkZWbWtKclJpWS9WMGhJVnZi''@;'; put 'put ''THpJdjd4K3BDam14dGJkWVJxaDFySXVOMWRTRzcwMmtQMWRiTGMreEJkekIvU0lETjhaYjV1WnV6bmVjVjc4YTZOME91Z1lSMW16azN5NmR1WTZQU1lqNmFVYnlpeFJ6RzNIeWg4SXg3VzFuVnhmY2szOWpaR1E3RHE5cm5xM2I1L1M0eUx2OGQ3bXp5dStTSGNwN3dORnBGTmlTZ2RyYUN1TXJQ''@;'; put 'put ''YUtVa0F5R3RjZ0Q1UHMrNEdVZS9tWlFyUjN3T2paSlpyZHp0VytUY3ZhSEQ2MjRwT0hRZlpKNGJtK0xKbGUrZEpWMzRESGthZHQ3TDVzM2FBSVo2NXMreVlqd0VRcERWZUJDTVZ0ak5CZk5xY1RmaEpwbVM1d0JScUZVUUExSE5UYjE0bE9yWWRCSDBhZ3R6dlV0d21FT21aajRSdExQZmcyYjZP''@;'; put 'put ''K216V0N2S2gvaHNwL29wbjBjM2ZwemxnL09vbXEycVFndllPRVN0MUt1dGxrSWV1WlAzK3BYRWNKenRQWnNoTDFmYzlHR1dJSTdYNXFSZnJ6MjhkajhxUno0MmdxdDhpMm9WWDJFc2Z1Tmx1RitRZlpBMlY0MzNEZG0zeVB5TUJmNTR2Y29mVVIvT2JNTWZYMWI1SStwRFR4WHgxdlcreC9HWEw5''@;'; put 'put ''cjNPQmFMK3M0VitoN0ZReVg4VWU3N1FLSHZVZXEzWlBjVEx0QTRRbkVNNHMwMVdRZDRjMDNSQVJKcnU2a3ZYL1pMc3piZmZGT1NZenR2U2tvYjJiKzlVaGpIREx4dWEvLzIwd1gvdG5rY2JaazcxcmVGanJFeHprdFEzd25sZmxYMG44U0FveGUvZi9nZnBEaU9kcWg5dVBhMzBZY2piMHBxbjJI''@;'; put 'put ''OGJYU0IzQWs0MC9vd29NdlFwc3U0WFpzdTQ1YXJoaFlla2JISXFqcTlaU0Y5Z1Y2blhHMm4xeW1UVytsOXloYTNmSjh5aFNQK0ZucU1mQXFnVUlHb0xHQTFRR1NrVUFNRTY4QW4yVHBxVWZzanRlVkVYWXFaRmRheisrTFpZcXdieWo0NHh2NFdIdlZWK1N6c1JwR05LM0p1dThCLzNXYXRydEox''@;'; put 'put ''NCt2SXB5cUQ4cnJaK3I4SzY3Y1UxazlSU3QwSXZYUHJjZHlOUC8ybjFWSDhyNzYrZUx5M04vNjQvQkh2ay9GbkdQQXFoSFlDYmdpQUcxNTQveXJEY1FIZkRBMTRlaysvWm5mUlBmM2RhQlJtK3cvNXJ2NldDcXd0bDYvUjEyT2RDWmNaZFdYRlYrOWJ6UmJPYU9TV0JFTWxyeW0rc1Q5OWtZN3M5''@;'; put 'put ''bjI1TjA5N2M4cTkvYmt0KzIxeGMzOUpYekEwTW1Oam9xamU0RDgyUHphM2E2YzRLbzRNOUNlNkUvbTJ6SmEzK2R2K2pOdjhHemI5N1N0cTI1RDVrMi82eDhPRHdjSWYwaFBxdmY5MzUvN1Uvd0hBbHY4emdQWC9LUUM5VnlpTjF2RGYwZHNtSHRaaW5BaDNZeWZBTG5CdjVoT2Z5THorZGROalQ1''@;'; put 'put ''aVZPNTNTb0dRcjdUaldMcGgxOHRGUGZDTDkyYy8yUHZHWTZldmZZTExpWjhxZGluRTBLWTdWdUlsR0IrTFBpT25OdUJvcUNqWGNzZ0dUTW95Tk5BKzhrUGx2d2thajZ1bGd0bUVzRW01dUVpeCtzUGtFcTk5TWZWU0ZlenFDWUJCUzB3SSs4cVNRYktlam1VUUFaQ2Q4MFBqWGkvS1ZpMk8zTFR2''@;'; put 'put ''MlRYSzZYWWRjUjI0WlZoTCtaejdreGNQU1oza05YcExPMTM5MFQ0SmR3OWg3Y2lqbmRIcnFjMzJYZHJKcy93TVR1VnB2dFMwM2UwS1c3emhPeXZGbHdBZDFENE5DbDJCY1Q3NHA5ako2Unl4VGRFRFY0WUFyZXdRUDRWWlg2WXZ4b1NUQXBVNnBKZGQveVdVMWEwbGlpMHRTU292QzY5NnFLUHlO''@;'; put 'put ''NVcxcndvSE81VGxCQnVDRUVsdDRnTkcvL1B5Qzhudzk5aWsvZjc3d25MKzYrUGtENm5OMDlOTGk1K3ZqOTRGYXRmNzhiS0g5c2YxSWdjRTB1UXhnUUdNRitpODFlYTBZWUZCaWlxbVFXTGZEQXB0aGNwbHNseFVEUnJITC9yTUlQb3FOTmxjRUlzVTgrNHNOV1FucmE2WjJ0YndYc0wzL29tZ3ZU''@;'; put 'put ''eGRnWXA2VDVTaE4rL2tJdTV0Q3hZV2s0SjFXcnFPZzM2L053UGZhMHUrMXE1UG9md0FQZm54NUFBQUJBQUFBQVFBQXRDY0F3bDhQUFBVQUh3UG9BQUFBQU5QQm5ZWUFBQUFBMUw2bTlmOVcvdThFV0FQRkFBQUFDQUFDQUFBQUFBQUFlTnBqWUdSZ1lENzY3ellEQTB2SC83RC9rMWtpR0lBaXlJ''@;'; put 'put ''RFJHZ0NsaGdhdkFBQUFlTnFObEUxb0UxRVVoYys3azVVTHdUOFVCU2xxRWx1YnBLMmhEYVkwbEJSYmJVclNqbllSYWtXaEN4ZGFZclc2RnRHNkV4RVhYZmtEVXZjdUJiSHVSTWdtdU5LSytFTVVXbHhrSVMwNG52dWFxWFhTZ29IRE56TzViOTY3NTUxNXBvWXo0TThNVVFjb0E5ZmNSNzg4UkZU''@;'; put 'put ''T0krN3NRRUllb0JrZjBXL0cwRVBGelF6U01veXNBZkptQ2lrczRvUzU2LzJVSjBpYkl2YktTYlJMRHc3TEJGVkFTczZoVzA1elRBRkp2YmIxSE11NkxuMFBtVE0xN0hOS2FKVXZhSkpIR0pjNTF0YklDZFlWcVNydlh5R1BCVjd2NGh3M01TYUgwT2NNc0laMVRwVC8zMERlOGhacnVIYVpSa3pl''@;'; put 'put ''WTFUZkdXcEdXSjRoSXZld1hhN2ptTG1BWWE1NWhXdzNuOUVwQmUrM1NTTWpYZWlRSzNCbE45cklUbkhSeHA3RE1ra2ZzaGhDQlJtODlWN0lOZ3ppSFhMT0ZITDZYSzdaZWxmSG1LdjBjQkV4TThseFdmNmZZRzlKSEpROTdHMEErMFZZY3dkSHpGWmNKT1BtSlhycCs0aWRzMGhQdUVZeml6Nnp4''@;'; put 'put ''SnJueU5oMWpTT0tEL1E4eWZzbEpPblhxbGNieVBsT3FuL3EzVHBod1N1cmYrUVA2cHV6QlMyK2QwSEpUb3hZcW4vcnBmN1JaK25BS2V2VkJuTEtwUGJpL2l0VXZEZjBiNUQ4U24yU1M4eUY3MTFRbWd0bDF2cjdWK3FmK3F6VWZuWE9JTFYzbmQrbjVvajdZdnU5elQxVlAzUk5tMUd6cHZ0ZEo3''@;'; put 'put ''MnFjTDNxWFJPNVFoN1hQbXdHbVFQTm9XWmhqV2NSTmhIdXZjNnIvUVZvZldWdmExeEdNdFRDZVpsYnpVNERtV1hOVXdPbjZ4bnpxZnVqSG0xQy9RWnNEblVQMWIvNnQ2QjVERkl6em14bXJCNHo4MlV5UjNWVHI1bkRYM3dHYjlSL1o1QU5udGJuWkc3aFZGZlBHeXhUVHdIcFJjcTVqQlRQQkhz''@;'; put 'put ''dW1IbHlucHlsdnlWZTgxd0t6U0JoV2hHaFlqTG5WVzArSEk0dDRlaC9pWm1CK3dlYlAvVU1lTnBOd2wxSUdnRUFBR0R6djFOUE8vVzY4KzY2WCs5dWV1ZWRkeEVSRVRKRVFpUWtZa2owRU5GRFJFUVBRMEpreEFqcElYeUlpQmdqSW1TRWhJd1lJU042a0JnUnd3ZUpIaVFpSWlRaWVoZ1NNbVRz''@;'; put 'put ''WlEvait3d0d3L0kvZTRaeUQ5S3pib3diVDR3UEpvTUpOMVZOZDJhcm1USy9OVStiRDh3MWk5RXlaOW14UEZxVDFpWHJveTFwMjdFZDJzNXM5N2FPUGRXYjZNMzIvZ1FnSUFua2dCTFFkbENPSWNlQ1k5dnh6WEhudERvbm5Cdk9sb3R6cmJwMlhYVlhHMlRBTkpnRkQ4QnpzQWwyM1FQdVVmYzdk''@;'; put 'put ''OVVEZXFZOFpVKzNMOVZYN1d0REhMUUNmWWFPdlVidm1MZmd2ZkZwdmhsZnhmZms1LzBKLzN2L3ZyOEpXK0VKZUI0K2drL2hsLzVZZjdHL2pqZ1JCQmxDMHNnSHBJVGFVUis2aU9iUklycVBIcVBuNkhXQUNqd0gvbUFlak1FR3NRU1d3UmF4UEhhSjNXQXZ1QUdIY0E0ZndxZndHbjZGdC9BT0FS''@;'; put 'put ''QTRNVTFVaU8vRUQ2SkIzQkpQeE92QUpqbEl4c2dVbVNIbnlSVXlUMjZRMjVTZDhsRVVKVkhEVkp4S1V4VWFwaGs2UW8vUUNYcVNMdE1uOUFWOVJiZm9YMHlNT1dYcVRKTjVaam9zd09Jc3h4YllYYmJFbnJBMUR1SStjVWRjbGJ2a3Jybjc0RXJ3WTdBWVBPY1JQc1RIK0JTZjRSZjVQRi9rOS9r''@;'; put 'put ''RzN4VkFJU0R3Z2liRWhiUXdKeXdMYThLbTBCUm54R1V4SnhiRUxiRWtmaFZyWXYzTllXZ3R0QlhhQzRmQ2pmQkQrRld5U3o2Smx6UXBMcVdsTDFKWEJ1V0FMTW5EY2xLZWtSZmtuRnlRZCtXU2ZDMTNJb0ZJS3BLTlZDTnRaVXlaVlRhVlBhV3NuQ29YU2xOcEtSMFZVSEZWVkVmVXhIOW0xWnhh''@;'; put 'put ''VWMraVFKU0pqa2N6MFl3Mm9jMXBXZTFCYSt0R2ZWUWYxNmYwV1gxSlg5WFg5WVorcXovcHZ3ZUJ2MHRBdlNvQUFBQUJBQUFCUEFCWUFBb0FQd0FFQUFJQUtBQTVBSXNBQUFDREFSWUFBd0FCZU5xRmtzMU93a0FVaGM4VUpJREdLREV1R2hkOUFmbFRJZXBTdzBaUUl3bzdFaEFFSWxBdHhZVFg4''@;'; put 'put ''Q24wVGZ4NUFkMjRkdTNhaFlmaHRxREJrRWs3Mzh5NTk5eTUwd0tJNFFNQnFHQUV3Q0dmTVN0WVhJM1p3RExxd2dGazRBZ0hrY1NEOEFKTXZBbUhtUHNsSEVaYXhZUWpNSlhudVlodFZSRmVRa25kQzY5Z1RYMEtyeUtxdm9XZnNHNkVoSitSTkRhRVh4QTI4c0t2aUJyblkzNFB3RFFxT0lDTkd3''@;'; put 'put ''eDU0amFhYU1IbHlSNzVwSG55RkR1eFVLTnFNYTZsWS9ya0l1Y3VzL3JNN1NHT0Fock1jN1NUalk1RTVYM0hNK3BOREtoVUdaVmlSbEtQZlZ6Z0NHVWNrMlo1YkU1NXpLdGgvYWxTNHNwaFRGdWYwWnFxT3E5U2lYVEoyV2JNcVBNVDVqYzRqL0xxMUtya1UrcERYZC9sM3Y5M00vSnp1ZHBEZ3VQ''@;'; put 'put ''dWw3T3RmYnUrYTV5YXpiV1gwNWVzSmxXWHV3TitDUzhtd2RtcjJkVmRUbW9tWm5ZNGEyL1NjNWxxRFZjNjMvVnZxeUIzbDlPcXhaSFJXcFluUzJHWDd5M3MrUDlLRnRlTWEyaC9SKzQ5NXpzV2Njc08ybFFjeG5SK0FHaWlndmNBQUhqYWJaTlhiQnhWRklhLzM3RjMzVFpPNzcxWHgxNzN4Q2t1''@;'; put 'put ''YThleFl5Y3VjZXpFU2NhN1kyZnhlaGZHdTNGc3VnUUNIa0R3d2pQbENSQzlDaVI0UUtKWDBYc0gwWG1rQisvY0NWNGs3c044L3htZDg1OHo5OTRoQzNlZEcyQWUvN05VbTM2UXhReXl5Y0dIbjF6eXlLZUFRZ0xNcEloWnpHWU9jNmZxNTdPQWhTeGlNVXRZeWpLV3M0S1ZyR0kxYTFqTE90YXpn''@;'; put 'put ''WTFzWWpOYjJNbzJ0bFBNRGtvb0pVZ1o1VlJRU1JYVjFMQ1RYZFN5bXozc1pSOTExTk5BSXlHYWFHWS9MUnlnbFRZTzBrNEhoemhNSjExMDA4TVJlamxLSC8wYzR6Z0RuT0FrcDdDNG5hdTRtcHU1Z1R0NG4rdTVscWY1bUR1NWpidDVubWU1aDBIQzNFaUVGN0Y1amhkNGxaZDRtVmY0bGlIZTRE''@;'; put 'put ''VmU1MTZHK1lXYmVKczNlWXZUZk0rUFhNY0ZSQmxobEJoeGJpSEJSVnlJd3hncGtweGhuTzg0eXlRVFhNeWxYTUpqM01ybFhNWVZYTWtQL01Uanl0SU1aU3RIUHZuNWk3ODVKNVNyUE9WTEtsQ2hBcHFwSXMzU2JNM2hWMzdUWE0zVGZDM1FRaTNpZDk3UllpM1JVaTNUY3EzZ2M3N1FTcTNTYXEz''@;'; put 'put ''UldxM1RlbTNRUm0zaVB1N1habTNSVm0zVGRoVnJoMHI0Z3ovNWtxOVVxcURLVks0S1ZhcEsxYXJSVHUxU3JYWnJqL1pxSDArb1R2VnFVQ05mODQxQ3ZNdG5mTUNIZk1TbnZNY25hbEt6OXF0RkI5U3FOaDFVdXpwMFNJZlZxUzUxcTBkSDFNc0RQTWdqUE1wRFBNdzEzS1dqUE1PVFBLVStmbGEv''@;'; put 'put ''anVtNEJuUkNKM1ZLbGdZVlZrUzJodngxbzFiWVNjVDlscUd2YnRDeHo5Zyt5NFcvTGpHY2lOc2pmc3ZRMXhpMjBra1JnOGFwQ2l2cEQza1d0bUYrS0pKSVd1R3dIVS9tMi85S2Y4aXpzajJya1BHd1hSUTJoeE9qbzVaSkxSek9DUHd0bm52VVk0dm5FelVzYk0yc0hNa0lmRzFXT0pXMGZUR0RO''@;'; put 'put ''dE12WnRCdVhzWmRGTFpuZXNRelBkcE5ldHlGdjhPYklXRVk2RGlkaWc5YlRtbzBacVdTZ1VSbTVPczBIUnpUb1RPemc1UFpvZE4wY0F5NlROV1lDMzhxSGkwcHJReDZMUE4xbTZTa21hYkhteVpsbU5QalJPUERPYW4wTTlEem44bFNtWkcveDl2QmxHRkJiempxaEZPalF6SDdiTUY0aHU3TDBC''@;'; put 'put ''UFQydGR2WnB4MGtkOC9mZHFUMDZlZG5qaFlWdVd5TEZqcDZ4MTJyS2xyTlc3UWF4ekdYZVQxUnFLMlk0OUZ4L0xHejZ0MFhXbW92dHBqamNjR2o0MitQbU0wNFNMOU5saFNFdlJZNXJIY1k0WEhTc05nVTNZbzVTVGNvS0twSWNjcXRtTEpmTXVkeFVqMzdxZGxrVFg5MmVrNFlKMGYwQ1M2M2RP''@;'; put 'put ''eXdQdDlqRGI3bXRaNVZ2bzBUSEl5R291NHliblcyTlFlUld3bkwySjc2aCszWmJjaEFBQUFlTnBqOE43QmNDSW9ZaU1qWTEva0JzYWRIQXdjRE1rRkd4blluVFpKTWpKb2dSaWJlVGdZT1NBc01UWXdpOE5wRjdNREF5TURKNURONmJTTEFjcG1abkRacU1MWUVSaXh3YUVqWWlOemlzdEdOUkJ2''@;'; put 'put ''RjBjREF5T0xRMGR5U0FSSVNTUVFiT2JqWU9UUjJzSDR2M1VEUys5R0pnYVh6YXdwYkF3dUxnRCtIQ1ZnQUFBQUFBRlltUFozQUFBPSkgZm9ybWF0KCJ3b2ZmIik7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtc3R5bGU6bm9ybWFsfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcztzcmM6''@;'; put 'put ''dXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFGVWtBQk1BQUFBQXBRZ0FBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFCcUFBQUFCd0FBQUFjZk5INTVrZEVSVVlBQUFIRUFBQUFUUUFBQUdJSDFRZjhS''@;'; put 'put ''MUJQVXdBQUFoUUFBQWNYQUFBT2RqNThmRXhIVTFWQ0FBQUpMQUFBQUNBQUFBQWdSSFpNZFU5VEx6SUFBQWxNQUFBQVRRQUFBR0JvUUt6elkyMWhjQUFBQ1p3QUFBSnNBQUFEbm5kREQ3RmpkblFnQUFBTUNBQUFBREFBQUFBOEVhd0JwR1p3WjIwQUFBdzRBQUFHT2dBQURSWjJaSDEyWjJGemNB''@;'; put 'put ''QUFFblFBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFTZkFBQU40d0FBSEc0LzdIR0RHaGxZV1FBQUVvSUFBQUFOZ0FBQURZTFpZZ1NhR2hsWVFBQVNrQUFBQUFoQUFBQUpBZDZCQ0JvYlhSNEFBQktaQUFBQW9ZQUFBVGFxMU0rVld4dlkyRUFBRXpzQUFBQ2N3QUFBbnBON2pMbWJXRjRjQUFBVDJB''@;'; put 'put ''QUFBQWdBQUFBSUFLRUFwRnVZVzFsQUFCUGdBQUFBWEVBQUFNUUkreDRZWEJ2YzNRQUFGRDBBQUFEb1FBQUJpR1hGajJLY0hKbGNBQUFWSmdBQUFDQkFBQUFqUmxRQWhCM1pXSm1BQUJWSEFBQUFBWUFBQUFHOW5kWW1BQUFBQUVBQUFBQTFGRzFhZ0FBQUFEVHdaMkdBQUFBQU5TK3B2VjQyZzJN''@;'; put 'put ''UVFxRVFCREVFa2YwTUxQb2Y3eXBML0RvZlhmVi96L0FJZ1JDMFRRQ0xSNmNkRlJralZzbzdIelR2MUQ0QjdtNDA0OERPbG9wTmx2NjQ1U2VYWExUNTFzWHpTYStXM0FGM0FBQUFIamFqVmNOYkpiVkZYN091ZmUrMzlldmdLV1VINkVnSVZnYjB4UkdtQWl5YVJoVVJ5cVNqaWthWnZiam5JUHgx''@;'; put 'put ''MkV6RnVmNGNXZ1dVaGVIREFscEVQa3gyZ0NpWWtYR3VvWXh4ellDeWd4aFlGd0h5QlltMCtsQ1JIbjN2T2Y5c0MvUWJ1TUpENGR6NzN2dlBlYzh0K2NXQXFDQUVaZ0ttVnhYUHdONWVIb1F4M0Q4UjZCd2M3N2RPQThWYzcvUk9BZVZjK2ZNbmNQWm9EOFpUV2NrN1BoZEFRTXdERlhtY1JpSmV0''@;'; put 'put ''ZWFqa1lMYkZXSm1oSHhJK205aUY4TU5sOUF4V2NRMU1YTjVJQ0pXSWxQRWN0Z0tJL0JlVEpJanFFVXZYaXlmOFFkOFpiNFNId2NQZnlKMys5eDVQZmRlanU1ZC9iL0orT2Y5N2pDdXoyTzlIeWVQOFc3ZWhqWkVuZkd1eE5jNWovQ3Y3OUwwTjBlY1RPenBCak9URmN4VzljUmlsckNZUlRoTVlZ''@;'; put 'put ''SStEd1JZUnlSdzNnaWp3bEVDWE03a1pWcUlnUkw4UlBPZkpRSXpQaEsrbDhtQks4UWdsY0p4U0hDNDAzQzR6Z1I4RmNpd2traXdydEVoTE5FRHU4VE9ad25TbGk5VDdsYVRCU2tUTXBRSXVWU1RxNlFDdkpnVnJiQXRVZFRKU1A1emZXRTJMblRFNnVkMk5tSnZaMDRZREtSUngxUmd0dUlBaHFJ''@;'; put 'put ''VXN6SGcxd2hpU1N5U0NLTEpPQnhQTW41cTRrUy9BSnJPZjlwYk9MOExVUXB0aEU1YkNmeWVJSElZUWVSeDR0RURpOFJlZXdrU3RCR2xHQVBVVUE3VVVBSFVjQmVvb0RmRUlMZkVtTFppZkEyVVlxL0VHbGUxUEtpbGhkdmVRbVdsMkI1OFpZWGIzbnhNbEFHTWw5WHk5WGtKRWVCcTlZeVExV3Nj''@;'; put 'put ''UzFyTzRZMUhjZk1UR0JHNW1NQkZxSVIzOGNpMW5JcGxtRTVIbUVXSG1YMDJ4alJpNnprSzZ6Z0lWYnVPQ3Qya3BVNnk1T2N0NXRWeG4wcmt2dWxEOXM5M0NlTmpMczMxYldidW11T1ArcEdyVGJTM1IzNGJPUk1nbTYrUE52ajNUaHpVZkc4MThmajVmSHl5MGZTV3hldmk5ZDFPL0kzKzBaUmFa''@;'; put 'put ''b1EwNFRpcTRURDNZVEhQVVRBTENLaUlwN2tuRVFOWW1wUVU0T2lsWWl3bFlpczBtS1ZGcXUwV0tYRjZxbzRRVGljSWh4T0V3NmZFQUVYaUVqNlNsL1d0Wi8wSS9lWC91U2tvbUlWRlJraVE3aStvZ1pYRWFYb1MvUXlwWXNwWFUzcHJxajBXNG1zMHIzRkUyWGl5Wm5TWFZIcFhScjNGcFczcUhJ''@;'; put 'put ''VzFVV2xweHBQMWIyTDZGblhTYlRlTkt2RkNCUGxPb3N6Wi9wMXBsOHR4cHlvV0l1UkoxcldUUHhaUlR2TFFrNUd5M2p1bnZ6MHFtT0VEYXpYM1l4ckZpTlp6VWpXNENsRzh6UTI0QmxzWkVSYkdNbFczc1kybnJhZHA5ekwwNTFnRFU3elpCZDRnbjdjYlNCM0djSVZoNW1lRlgyc281U2JPc3E1''@;'; put 'put ''eTgyMHhPeWIyWW1PUmNQSW5jeC9oNnlRbGZLRXJKRVcyU2pQeVhiWktidWxRMTZYQTNKWWpzbzdja3JPeUFkeVRpNm8xNEtXNlFDdDFCRmFyYlU2Vmlmb0xWcW45ZHFnTS9WZXZVOW42d0p0MG9kMG1UNm16YnBLMStwNjNheXR1a1BiZEkvdTFmMTZVTi9TWTlxcHAvVTkvVkEvZG5DUjYrWEsz''@;'; put 'put ''U0EzekkxMDE3dlI3Z1kzMFUxeXQ3bHBib2E3eDMzZDNlKys1eHJkRDl6RDdoSDNVL2N6dDlxdGN4dmNzMjZyZThudGN1MXVuL3VEZThNZGNXKzdFKzd2N3AvdTMrNFRyejd2Ky9nS1A5Z1A5MVcreG8veE4vb3Yrc2wrcXAvdTcvU3ovRGY5QTM2ZVgrUi82SmY0Rlg2bGY4S3Y4UzErbzMvT2Iv''@;'; put 'put ''YzcvVzdmNFYvM0IveGhmOVMvNDAvNU0vNERmODVmQ0Q0VVFsa1lFQ3JEaUZBZGFzUFlNQ0hjRXVwQ2ZXZ0lNOE85NGI0d095d0lUZUdoc0N3OEZwckRxckEyckErYlEydllFZHJDbnJBMzdBOEh3MXZoV09nTXA4Tjc0Y1B3Y1lRb2lucnhkaXpXYmVRbHhuVVpYcFV3bW94YnpMTzB5MS9rYWNZ''@;'; put 'put ''MXhqY1pQNWl3RGpWN3V2RWs0MnVWUDFPbDJuaVU4WlNFc2RCNGs3NUdialQvZU9PSjV1ODBQbStlNjR3M0dGY1o1NDBiM0d6eTg4YUx1MmQ5TXh1aithOWdURE4rMXJpcGkrV3VOSGF6NXhudk0xNTFKYWNaTVB0S25tNThyYmIvTDlhTmwrU3F2VHZHbDQyZk1WN1l4Y3hldTJYdnYzT2F6L1p1''@;'; put 'put ''dVNyRGl6Tm52c1RPMUhTSithdk5uN1hUckQ1dTlsMlp6SS9xR3IxbzIyaXFpcXcvemVxVTFMWTVxV2JTNnFSUnAvb3Mya1YvTXFmRjdFMnU2YUo2aXhwN3crejlpVjJzYVpxeFZOdXA5ckwrOUF4cDNnNmEvU09yMFo5TjUrZHNmcXFjVHB0ak55TFY3U1grR3JQUHA3Yk5TVldkOWFjMzZLYU1a''@;'; put 'put ''dEtLWk8wWHpQNVc2cmY1ZGk5MHFQazNtRDlWV2xYR25tU2NOMDlQOWtmcGZiSG83akQ3c05uWmxldmlYeVhWaWZkY1ZxbnNqbE9LdDd2OS8rQkxaeXF1c1hjcCtPNnFabGFTMTZsbjE2NWhGMHhlMkJFK3g1ZFlEbU54STN0WTBybjdzRzkvZ1QwOTZkeDk3WTFhYnAyN0gzK3Ztc28rVkUvMHh4''@;'; put 'put ''M3Njd1BZNmU3azd6NHppVXJyNVVQWjliN0dyaldmYjdmaDlub2J4NDdld3ZYV3MvUGRicjN2Syt4K3I3RkQvaElIOEIyKzZNNWlzYjBxMStCZkV2QVVPL0VRdEZwUGJlTjVSYTZ5MzgwaVNQeGpVK0VTM0U5ZXdXNVhpa0hjYXlRakdvMGJlT3BKUE9VMHpPRG9yMDI3ZnpRK2FteDNCdnN5Zk1o''@;'; put 'put ''NHJ2Rm00MVJWT2JOTDhTWHU4d0MrS3puSlM0a1VwRlI2UzU4clQvUWY2ajZiS1FBQUFRQUFBQW9BSEFBZUFBRkVSa3hVQUFnQUJBQUFBQUQvL3dBQUFBQUFBSGphWTJCbWNtQ2N3TURLd01MVXhSVEJ3TURnRGFFWjR4aEVHTTJBZktBVUhMQXpJSUZRNzNBL0JnY0dCZFUvek5ML2pSa1ltSTh5''@;'; put 'put ''cWlzd01Fd0d5VEd4TXEwSFVnb01UQURKWlFwQUFBQUFlTnExazFsUWpsRWN4bi8vdDMwUktoVDE5dlpwMDBhaUZFWDJwY2krbEt6WnNxL1pHdXNRUTBWU3lKNGtveGtUVTFPMkcrNjROV09NdnMrVlcrNE1IY2RYVERQTXVISm0zblBlYzg2YzU1eDVudDhmY0tIckMwRjBqMVRxbVRqbnJsS3N4''@;'; put 'put ''eVdNdzQyQmxIQ0xPdTdTU0JQTnROQW1IaElnZ3lSTUJrdWNKRW1xcEV1bVRKVWN5Wk5DS1pJU0k5VjRaYngzaVRLUG02M21FL09MNVc0RldzRldxR1d6b3F4aFZycDEzK1lmK1UwcGZZZkZqUjdhajJuam1maEtmekhGSnJHU0tDbVNKaG1TSmRtU0t3V3lRVFpyN1pmR1c2MTl5R3d4MjgzUGxt''@;'; put 'put ''RUZXRUZXaUZON3FKWDJTMXQ5VkMvVWMvVlV0YXRXOVVnMXE0ZXFTVFdxQmxXdjZ0UTFWYXRxVkxXcVVwV3FRcFdwTTZwVW5laDgwNW5WbWZUOWs2UGNVZURJZDhUWUI5cjk3RDUyTDd1YjNlajQydkc1NC9DSGtIZkpYVjc5cCtadWVEdVQ0STliQktQN3ovaUhSdGRKRjF4MWR1NTQ0SWtYM3Zq''@;'; put 'put ''Z1N5Lzg2RTBmK3VKUEFJSDBvejhEQ0NKWVp6eElweDZLU1poT0pCd2JnNGtna2lpaWlXRUlzY1FSVHdLSkRHVVlTUXdubVJHTUpJVlVScEZHT3FNWlF3YVpqTlhNWkRHZUNVeGtFcE9ad2xTbU1aMFpaSlBEVEdhUnkyem1NSmQ1ekdjQkMxbkVZazFhSHZrc3BZQmxMR2VGZnY4T2RyS2JZZzV4''@;'; put 'put ''bk5PVVUwWUY1emxISlZWVWM1RWFMbkdGeTlSeWxldmMxQlQ5WlBRMkRacWxlNXFtbjIwVnE3VWQwV3pnYkxjMzYxbWorMTJjK08xVzRWOGN2RUE5bTFuWlkyVXRteVJHajF2WXpqSHNPQ1JjOHhrcFVib0NJcmlqZHg2Z2FaWUVYUS94M1dlS25HSEVzbzI5YkdVZmV6akFRVjFMK3puQ1ViMTFt''@;'; put 'put ''RkpPY1pMWHVwcDZzVTY4eEZ0ODJDaCttbi9QSDVETnF1aDQybU5nd0FMOGdkQ1p3WmxwUFFNRDAyNG1WZ2FHL3lITTB2K05tWGIvLzhKMGpFbncvNWYvZmlBK0FNOVBEVmg0MnExV2FYZlRSaFNWdkdVakcxbG9VVXZIVEp5bTBjaWtGSUlCQTBHSzdVSzZPRnNyUVdtbE9FbjNCYnJSZlYvd3Iz''@;'; put 'put ''bHkyblBvTjM1YTd4dlpKb0dFbnZiVUgvVHV6THN6YjV0NVl6S1VJR1BkcndSQ0xOMDFocGFYS0xkNnphZFRGczBFNGJab3J2dVVLa1IvOVJxOVJxTWhONng4bm95QURFOHV0Z3pUOEVMWElWT1JDTGNkU2lteEtlaGVuVExUMTFvelpyOVhhVlFvVi9IemxDNEVLOWY5dk14YlRWOVF2WTZwaGNB''@;'; put 'put ''U1ZHSlVDZ0lSSit4b2syWXcxUjRKbW1QOUhEUHYxWDBCYjVxUm9QNjZIMkpHc0s2ZjBUeWorZEFLZ3lDd3lMU0RRSkpSOTdlQ3dLRzBFdGduVTRqZ1dkYXIrNVNWTHVXa2l6Z0NNa09ITWtyQ0w3RVpaemRjd1JyMjJFbzg0QzlJbFFhbFovTlFlcUlwbWpBUXoyVUxDSExaRCt0V3RCTDRNc2dI''@;'; put 'put ''Z2haV2ZlZ3NEcTF0MzZHc29oN1BiaG1wSkZNNURLVXJrWEhwUnBUYTJDYXpBUU9VblhXb1J3bDJkY0JyM00wWUc0SjNvSVV3WUVxNHFGM3RWYTJlQWNPcnVMUDVidTc3MU41YTlDZTdtRFpjOEJCM0tDcE5HWEZkZEw0TWkzTkt3b0tUSFM5UkhSa3RKaVlHRGxoT1UxaGxXUGREMjczb2tOSUJ0''@;'; put 'put ''UWI2MHlpMkpmUEJiTjZoUVJXblVoWGFqQllkR2xJZ0NrR0h2S3U4SEVDNkFRM3lhQVdqUVl3Y0dzWTJJem9sQWhsb3dDNE5lYUZvaG9LR2tEU0hSdFRTbWg5bk5oZURLUnJja3JjZEdsVkx5LzdTYWpKcDVURS9wdWNQcTlnWTl0YjllSGdZQll4Y0dyYjV6T0lrdS9FaC9nemlRK1lrS3BFdTFQ''@;'; put 'put ''MllrNGRvM1NicXkyWm44eExMT3RoSzlMd0VWNEZuQWtSU2cvODF6TzR0MVFFRmpBMWpUQ0piSGhrWFc2WnA2bHFOS1NNMlVwVTFuNGFsS3lvMGdNUFhEOE9oSzBLWS8zTjAxRFNHRE5kdGh2SGhuRTEzYk9zNDBqU08yTVpzaHlaVWJMS2NSSjVaSGxGeG11VmpLczZ3ZkZ6RldaWkhWWnhqYWFt''@;'; put 'put ''NGgrVVRLdTVsK2FTSysxZytvMlFuNzVRTGtXRXBpbVRlNEF2aTBPd3U1V1JYZVROUjJydVUwMTNsclVSNVRCazBhUCtIK0o1Q2ZNZmdsMEI4TFBPSWorVnh4TWRTSWo2V1U0aVBaUUh4c1p4R2ZDeWZSbndzWnhBZlM2VkVXUjlUUjhIc2FDZzhkc0hUcGNUVlUzeFdpNG9jbXh6Y3doTzRBRFZ4''@;'; put 'put ''UUJWbFZKTGNFUi9Kc0RqNnVXNXB6VWs2TVJ0bnpZbUtqMGJHQVQ2N096TVBxMDhxY1ZyNyt4eDRadVZoSTdpZCt4cm5lV1B5RDROL2l4ZGxLVDVwVG5Cd3A1QUFlTHkvdzdnVlVjbWgwNnA0cE96US9EOVJjWUlib0o5QlRZekpnaWlLR3Q5ODVQSktzMW1UTmJRS0gwOEVPaXZhd2J4cFRvd2pw''@;'; put 'put ''U1cwcUVrYUFTMkRybG5RTk9yejdLMW1VUXBSYm1LL3Mzc3BvcGpzUlJuTWdDa281S2F4c096dnBFUmFXRHVwNmZUUndPVkcyb3VlTERWYlZuR0Z2UWZ2WThqTkxIazNVbDY0S1NudFJadFFwN3pJQWc2NWtUMjRKb0piYU8reWltSktXS2dpUGdodEJmdnRZMFFtTFRPRExvRWlaSEd5c2cvdGlo''@;'; put 'put ''MDVvb0oyQXQ5NjBpcnYyMEx0ejNYeUlEQ2JuVzduUVphUm92TmRGZlZxZlZYVzJDaFhyOXhOSHdmVHpyQ3g1aGRGR1U4dWU5K2VGT3hYcHdTNUFrWlhkci91U2ZIMk85YnRTa2srMnhkMmVlSjFTaFh5WDRBSFErNlU5eUlhUlpHeldLVVJ6NjliZURKRk9TakdSWE1jRi9UU0h1MktWZCtqWGRo''@;'; put 'put ''MzdhTldYRlpVc2g5bDBGVjAxbTdDTno1ZkNPcEFLZ3BhcENKV2VEcGtQcHVkbXZDeGxMZ3NSZHl6Wk5kRjlCMDhJUjNpdnpqRXRmL3IzSElVM0tMS0VsMW8xd25KQjIwZksraXRKYnVUaHlwR1orMjhiR2VpSFVrMzZCcUNua2d1T1A1ZTRDNlBGZWtVN3ZQekI4eGZ3WGJtK0JpZEJyNnE2QXpF''@;'; put 'put ''RXVldGdnU0xLdDdTVHFaZVVIeUVhUW53UmRWQ3N3SjRDY0JrOExKcW1YcW1EcUJubHBsVEFWaGhEb05WNWpCWVl3NkRkYldEcm5jWjZCVWdVNk5YMVk2WnpQbEF5VnpBUEpQUk5lWnBkSjE1R3IzR1BJMXVzRTBQNEhXMnllQU50c2tnWkpzTUl1WlVBVGFZdzZEQkhBYWJ6R0d3cGYxeWdiYTFY''@;'; put 'put ''NHplMUg0eGVrdjd4ZWh0N1JlamQ3UmZqTjdWZmpGNlQvdkY2SDNrK0Z5M2dCL29FVjBFL0RDQmx3QS80cVRyMFFKR04vR010am0zRXNpY2p6WEhiSE0rd2VMejNWMC8xU085NHJNRThvclBFOGowMjlpblRmZ2lnVXo0TW9GTStBcmNjbmUvci9WSTA3OUpJTk8vVFNEVHY4UEtOdUg3QkRMaGh3''@;'; put 'put ''UXk0VWR3TDNUMyswbVBOUDNuQkRMOWx3UXkvVmVzYkJOK1N5QVRmazhnRSs2b25iNU1xdk5uMWJXcGQ0dlNVL1hiblhmWStSdGxNN29zQUFBQUFRQUIvLzhBRDNqYXRYMEplR1BWZWVnNTUwcTZramZ0a21WNTBTN2JzaVRiMnJ4YnRyeEt0dXl4eCtQWlBKNWh4dU1aR0FpVEdRakxERXNJSlNT''@;'; put 'put ''a1NVTkMyZ1JDQ0R4YWFGa213TEJNRmdoZlNpWUxKQzl0bXJSWjJyUXA5QVhTdEVsTCtzRHkrODg1OTBxeUpjOE0rYjRIWThtK091dC8vbjA1UWhWb2FUMkNQeXZZa1lDMHlJeHN5STFhVUF4MW8zNDBnV3hKeS9CQVgwOGlIbW4xZTVycWFpMTZuVVpCVUVWN1FPblVPMFZ6eE93MlIyTHVXQ1Ft''@;'; put 'put ''c25jUmZwV2YwbWYwblg0Q1QyTHk3MUliMWlFUmllSFA1bDdHL2Y4NU5Qenc4UERERHcrN25NN2g0ZUZEdzg3Ykh6N2tjaDV5UHZ6d3c4NURoMjRmRzN2NDhKamp1OEliS2FmWENmOXVQZUlhRy9NY2dOL0duSDNEcmtNM2RGbkRzOGVQUDNiOCtHeDQxUmwyd2orRUNKcGYveDM2R25tQzdjMmJk''@;'; put 'put ''Q0dNMFJKQ3FDYURDQkdXRlZnUXJNS1VRcUhRS21xOGVwMVN0QWFNRWNGdDhjV2k4VWlueFd4U3VaZjJtbUtDdzJHMU5EVlp5Qk01dzNjZFZyUERZYlk2RUZwZlIrUDRNYnhJSHRTNVVBVkNPZ0ZlbjBaMFhqKzgzQUR6MmxFVHVpSHpaT2Zzem1TelZrV1FVaUNZSUx4U2lUV2Fta3lOcmxvUVJm''@;'; put 'put ''VlNWUVZScS9VWkJTWkVTNmJzU1I5OXdENUVhdkZ3YVQrcDRhNWtJMEpOalEzMU1JMjl6bFpyaFFVYjlmbi94SVlBRmlPaVczUW4yRThpd240aUl2c1I2WWY0djZMWGFxOE5EZ2Z2Z1ovajJ1UFI5MnRQU0g5ZG8zM3VudWc5K0t1djlqOEYvL1cvMnY4MC9OZi9La0F5dEg2V2hNbmJxQkY1VVJ0''@;'; put 'put ''cVR3YmJBaTZudmE3V2FqWlVWcWpGR2tTVUFHYVNCakNRMnhCRytFTUFFaXVhYXRMckJRQ3dSd1ZvRWZQNUV4WnJMSVJqMFFHY0FQU3dXRVdmMzl5SXpRZ2UxOEJiUEJhRkJ5UjgvRWoycHIwZDAzc3YyOSs1c3l0NzFhNzJpWm5MMzVjNzNOVWJTV0l5bVJxLy9Fb3hPYXpiM1QrdFg3UE5aenUy''@;'; put 'put ''eDhYKy9wcTUvdEdhMzlUdG5NZjJkdjFQTlVPdHVaR1JVREJtZWdzV29rVGg5ZjhtYjVKbkFDT01jRHBoMUl1K2xYbXlGazRvVUltVkZSaXJsSGdWcVpCYW8xSWZRUW9GV2lhWVlrdzFnRjVZcmhLSklHaUZLWHZtU1Q5MENWK3dDNEttckorNFhJVkYwU3JDMlViSzlDQUUydEp1cUh5dlhidVN2''@;'; put 'put ''dloyaDhOa1FxaTl0NzBuSG5XRUhhRm1uNm5KMUZoWGF6VG9kYkNaR2wrTmFBNFlPRWdqblFCS1V3MTI0d2gyR3lnczNTNlYyV1NKb0UyZkQrRENaMStZYkc2WkRJWFlLLzdvY0s1MStOcDRvclUxM3RXQ1p5ZGI4aDhGMk1ORUsxNEtaVU1kTTZIUVRMaDlKb2puMXJiaHUxT2RrWkZVdERPVk94''@;'; put 'put ''aWNhUS9UejZCRk1KNktkSTdRajJCL0FtcFoveDA1U1o1RkRoUUFQak9RN0EwSHZVME45WFcxRmJoQ0lBNk1CSkttR0k2WGdWd3RHU1VRS1lNTW9GQmJtOVBaRm11TE9nUE8xamFYU3JRRWxINlYyMFgzRkU4VTd3dytzc1lUVnBWb1JiQTFLOStsSWVIekEyckJUa2x3OTlJMS9RZTdwbWNiNjRP''@;'; put 'put ''em5jRjBZUHYyL3YzdGpVTWRvZmZuUHRjVm4ranY4RFZObmh6dUdaenZGL2ZzRCsvc1RSMTB0MHo0Z3BPQndHUmdjTm81dmpJKzMzRGwwRW15T3hLSWo5YkhXNXJqYXk5bnI1dTFaOEs5WTREendCZlFnK1JCVklPQ21TZGJBRkVxS2V0aDU0c0JDWFNJL3JrSWYrSWxTaUhUdTU2MmVBbHN4eERM''@;'; put 'put ''c3g3UkpMcDM2dTFHbzEwdnR1RWZrZU90UnJ2ZDJIcWNCS0RId1BvT25DQmZSdFZJOVZTMUVyY0hHTXRLV05uMnJPS2p4NDZ0TkM5czM3N1F2UEN6VzI3OTZVTHJ6aGMrY08yNXhRQ2RFT2gzQi9iTGZVWG95OEhqVDNEQWhWaS9GUmpoNXNWejEzN2doWjJ0Q3orOTlaYWZMYkMrdmZnNnZFUytD''@;'; put 'put ''anNaVGc0dVRvMG4vUFZXVVEyY0tkMlBVVFVjMmlTMEF1UW5OeUVpWUNLY29peVdINlF3QlNNc28zMXpzKzBobDBNcG1nSUd0dVo0UWlYQy8yNlh6dzkvSitLRDJNOS9vMmRwdGNEL1BqODdZTTZRb1MzdFEvK2kvRTVVYWJHVi93Ylk3S0pkL1JZcjI0bjc2MW8xRmhUVnRjMVdwVkpWcFZCVTFn''@;'; put 'put ''Y0RnV0I5cFVKUnBWSXByTTIxMVFvQnE3VVZGZmwyQ3RXRjJ1SHJxalhXaUVyYnFERzVHT05XVnF0ME9yMWVwMU5WSzlXaUtGUzdUSnBHclNwaTFWUmZla3NHMXhRNlNtcElGRlVpWDlLTllEckZBdUE5QUJJTGFBVllBMFVUQlo1bWZGMm5FdXNDMkUwbGFveEsxZ2lwZVRIekl2ekRMUysrbUg3''@;'; put 'put ''cEpUcmU5UHFONkNXMEgvRFBtZ1F5UitNeStnRVJlUXdVMDRBOFhBVXhKODQwVjFsQXl0VTdIY0dqb1RBVmQwRjM0MkFYSGFzTC9RcjM0aWhRYm0zU3pCQjNvWUM0ZWgwZHpPZzBPN3V3a0Z2RDBVbTJuMG1RdTgvQS9KVlVnNkJQZ0NOaWJNVVVCeXBSaFVjQVZsVXNaWTlLRXJZcUwxM3grbS9X''@;'; put 'put ''eitLSHlPc3dyejVaUXdjRllZSlA4Z2twVzhNekM3a0hGc2pyNzc2R21NenRCYjV5TFRrSHJMQUp0U1ZiZ0t1eUhYTU9na0hZc3dYb2dQWjBUYnJHV2d2am1TQ01Bb3JOUEpIRW9pRkFKa3BNalRDVDZvT1RreCtjbjRQWFcrZjc5a1dqKy9yNjlzVmkrL3FxOW54eGRmV0JQWHNlV0YzOTRwNkp5''@;'; put 'put ''VnZuNW02ZG1LQ3ZIQVoxbEJSQUIxQWhlN0lXamxJQWVLVTVoOGRZaTZmMFJnWTYwWitJNk4xUFgrZDZaREJMWnJNOUo5YTJJZGEvQXpaVkNmdXhvZGFrdjZvU3RnUFlRRWlhZ1pPeFJxckVMQ0Vtai9SV2oxOGgxZ1lHTVNWbXVucVY2STlMekZDTDRYdzYzcGtZYWg3MmR1L3lKWlkrM1hlb043''@;'; put 'put ''UDRORjdLK1laK09MQWFiZTUzZEVXQ0grcmMyemQ2WStiZU5KKy9HZUNwaC9sYjBHQ3l6MVlMYzdrd2tEU3NBd3RVdUFPVjR4V1lYYkVNQ0FxTEFkbTZyTUpLcFZWSlQ3a0ZOWHM4VG85WEZHMXcwcFM1UkRxcEhBcmdtTlVpQ2FUQ0NrVUo5TisvdFRudVB0US9zWFBmL0dSNmZQZmlVSHlIUDdy''@;'; put 'put ''bkUwT3J2Wm1lL3NXK0s4ZXFobUtSVUhTaXQyOWdBdU9oN3ZoWVp6aDhmWGdoUGpDbnI5ayswcjA3d25HaEdWNEdBUFlWd09XQ3lkWXE0RWs0clZMQ0hqQUMvZlV3Z0krSlhLMWlxckt5c3JxeUd1aktvS05yOVRyOU9LS25HcXc3cHNmNHp0d2pGWGhoOStwcU52ZjdQeC9DcitRR3gvLzgxL2hn''@;'; put 'put ''N2o0T295NkFVU1BNMDRqNmt0MG1qQlhhR29FbzROelRDRjZSQW9TOElKQWxMdUUzQXFnUk5iajBScTlIQnBBbDBpa0pZOUZQNlVtTTV4SHlaOWNISXpzdkQ2ZGI5azdNalhkWDRIdHlaOFdSbWNIVi9zSDNqVlgxUkxyM040OEZodWRpOWZoQSt2VlE1TUJ3YXJVTFlOQUhhNHZBK1RXZ1ZzcXRE''@;'; put 'put ''WG80TzM4ZFVTcElXZ1ZzUmFFVUZLc29MMlpGV0pqTUlScEJyMnhzYld6eHVxRnp2ZGZyVTRQZWhxVEZVSzVCaVFYRURDZVNCa0M1aUVGV0pFUktNWGNkSFJpNGF1ejJXOUkzVC9mdGF3bDRKa0x4M1RISFNyOG4wN3h2ZkdpcFdyYzRpaCtEaFE0ZTZmdkt2U3QvY2FDMXVkL3RuYmxqbTZZemtm''@;'; put 'put ''dEljTUkvQ3R1Y08wRGxEWnhqRmFPaHBtUzlBZ2lJVVJEbFBaanA4S0FGZy9aRDFVcnNqRG5Od0JTZXlOMkZ2NS83MFc2eWt1NWR1NHZxRzFHQVF5dkF3UTV3NkVFanlTR1RpZ0NIVFl0RlFKQTRoUnFBZ09HTUdLY0lCT3JyRVFyMEJMb2pIZld0OVMwZUZ3eFIxNmFockt1Y3hpSEJ4NUFuUU1v''@;'; put 'put ''OXJOS2YvaHJDbU1rYjd4OWVTQTFNREYzUlAzREZVS1ozZUdINHhKaG5JdHd5SGhqYTFUN3VCcFVwUHV2enpjWkJxYXBxWCt3ZTJHdXUzZGFkbUc4THppZDZaeTJXdmYzZGkrMzRFNDF4cnl2ZU5CTHh4UnRJN25sSHQ5ZmY1OFRZMmVmM2Rqc1kvbTg2ZTRjQmpyMUNBellFZ1cwcmdYQ1ZaQlhR''@;'; put 'put ''WDRDOUNvSWxVeVFkNUxPSDNjTForN3hlZHZZVzZlZzVIUS9nZmt6L2xQWnZvSkRnN05JU3dVK1ZuUG9ndzRZVU8vWU9pZ0hrM09aVDU3aVErd2c5ZG5iK3NBY21RL0E2eUFzcjVlZVVmN05GNnJueHB1VEdXMVVWUWxYV0tvdEJ4d1FMNWVlR0lzRkN5Z2dacS9TTzc1YWxUZTZBL0J2WWRFeDI0''@;'; put 'put ''bld3NmJRd21ZajBRTWIzSTgwWmpKL0Q5ejhaQ1ZDNlQ2Q2RPRWNXQVM5VlQ2a0k2RkRHbU5kY2pjMEo0QkMzNGRPNHAvY1hZODgvUDg3T0lvWE9rUnI4VDRDSkluSWxteWorVWxNT0ZDU0JMRWdzbkFoVXR1c29CNmUwVC85UDRXL25ZdXpubjlLZlRNT2NVMmduTWNwekNqQm5Jb2hqU3JOeUNw''@;'; put 'put ''K0dPVi9KZGQvLy9QTmp2K2o5QlozVHZ2NDcvQnFjZnkzeW9FUXlhcW1xcEd3UFU3WXR3TVEzRmNrUXlzQ1ZXS0d3S3Fac05wdkg1dmJXZXZ3cXVoQlpEaGI0ZEEwRzI2MVliai9Yc3lmaUhHaU96bmtqZS85b1lIODBzcWRuUmkrRDk1VFMwK1ZvU2pnN2c1RVQ3ZHNqYmJPOVZiY1VtYzkwblcz''@;'; put 'put ''cmR3bWpvQ2NQb2l4K0p2TmtCV2pLQnFlRHFJWGhKb09nVVBmMUVrRFFOQmhiVlJzKzBSUjlZdHFpVDdubXUzYnQ0cE0wVjJxSUFtU0NpbkpvVlFVR3JmSWdraGdnTUJhMVdsZ0d3T2pWVTlMVVFUQzhGVml6aUM2MWsrazlUdEwwaDB4Q0RZc0FIS2hhSTZoWEw5cFpDWVpIQnhWQ0FsS3VidDFM''@;'; put 'put ''RkZXQVl5cHhtWFdmMlVYL1M5WW1rd2dsczhucGlURTRxd0dmcjlYcjhmbXFSSHVKOHVTaU5sYVJrQUFqcklOWmw1MHlYNVRVcWs1bXJvQUJtdURhZ01RK1JwNDg4djRYcno3MDJPSG9YQ2pVcjI2Yzc1aGNTaDNyNlJ3MVZLZjBIazlqWTdkMzZiNDlLNCt2N3Z2QzNvR0RDVVBQVlNQTk85VTRI''@;'; put 'put ''Z3Rtdy8yUms0Y2ZPL1MrRjQ4ZmVHZzVlMlU4MU93UDc1OGVPWkVLZW9hVkMyZXRUZTZXeGVHRlR5MnVQckd5NTc2bGVxZmQ2MWk3YkVyVVJucWlPenBpUXhRZkFTM0pEMERlaUtBNUJKTE5HZ3h3U1FOMUFMa29RR3VnWWx6QVRIdFRxOVVWNmdxdWp0ZUMxaUF5VTl0ZmlVbDM3dGJSQlJ5bS8x''@;'; put 'put ''YnUvOEs5OTVJbjFyYjlLejZhK3d6QWZCK01meHpHMTRGVzUwTDl5UjZRT0RDRENqZ0N5R1VsVmFja0I1V0l1ZFpQNTdMWEdmVE9wanFYM1ZWcjBkc010amFIbWluZEd3V1BFMHNLbHRrby83SVA5eVoydEhkMDlBMUZsM3B6ejJOLzkrUms5NDkvbWR5MkxmbEw4a1JidGlNNjF0QzRweXUrb3gz''@;'; put 'put ''Zk5kRGVQdkNUM0xueHJxN3hITk50cU56OEtKTWhvV1NnemxaWlFYRWtMWXNLeXdZWEdqeGcwc0pIWFdoNWxNaXJDTVVIamhNUDd0Ly80TkxZTFIweDMwcGk4blFtYzNveXNlS0xkZHd5VmdYbnR2emdnVVJudkNVMGZWdG02b1BaVUV1OGcrb3lGRzR2TUgzT3pDeWtQSmlZbzBBQ1UxV2x5VkJw''@;'; put 'put ''cmpMN3dMb0U4TWdvR2NBSkNmY0NXTC92aldPUExDOC9jdXlOTnhadXoyUnVYL2dzZVdMbnZRY1AzcmR6Zk96VXpNeU5ZMnMvWjN1ZmdmbjZZTDVLRkU2MnlSeWI2bTZLSlJDYk5jV2FON05vS3JuSERWUTVvMW5pMzNxbitmUDRtdHhIOGVkelJ2d1dXZmxGK3QvVDVBbEp0NWJIMTZDV3BFOGVu''@;'; put 'put ''M0poTnFxczJzQUhHcVNoSXpOK3pFWjF5K1BPOEVGenIvQkIrWG5kRCtmbFJMRmtKNWhKU0dnaVJLRmtCb05TZ1JoeWtXVVkyVUkxWDhiK1Fjc3h3cUc1dVVucDFCY0o5ZExEaTdueFhkallmdmZFRWp2QWlVK0ZZOTdydXZrQnRxLzZ2b0V2ei8yMnZac2ZZWGQ3M04vT2o5RGQ4RkJoejdjd21Q''@;'; put 'put ''cVRIa2s5WGdHZG5PNlgrc3UwYURNc01kMHQvRVRnbGR5U3pWMlJ6ZUpQVTNMQzNYVGJ1Yi9CYlh4Y2RCL3o4UnFwWTZWZ1gzSFRGSXlybVd5VzlxSTJHY2pGdjJiMEIxakVUQm1HMFV3NUo4c0NJSk9WZ1YySHRFYXZBcm9YVEJkWUJhV3lKei9RMUcxYURQZG5zNG1EZzFYSnpxNUExOTVKL0Zx''@;'; put 'put ''dVkrUllIOS9uM3Z3K0hja0dqVnBKbU9URnpDTW9jTSt0MFdEZ3NqNml4eEVOMEFTSTFiMVp2SGMxOTNNY1hjbTljd3pXbS9zUVBwWDdhOENmNVB0ZlplT093TGdhR0ZkSmRXRzJhRG9hSlEwSmRFcWsxT3Zwb3IyQUp4RTkwZVI2czJuQXViWFBzZjZVaG41ZldKZFlabDBtdmJ3dURSaEJibjBs''@;'; put 'put ''bk1DK0xGcEg2OW5zK2pwZGxCUC9mRzBiRWRuNy82RDh1QTh4WEc1TTJrVkNTa1kxNUVmRnNDdzNHeE0vbXMzbWR0QmorVDRKdzRqaHRlOVQva3R4K0xmL1AyeDR6blQyUGJCLy93UDdKaytuMDZjbk9lSktMT2ZBZzh2TER4Mll5SDV3S25QYk5NZGJwcDlRbkQwSWU2c0N2Z05XT0t3Q1NGWEEx''@;'; put 'put ''Q1ZUQ0NUQUZtdXFUWVpxYzQxWjczT29hQkRCbWVjOVpyZk1sdlV6MkRwMk1wVTZPWFkraXpVTHE2c0w1OGdUWFN1RGd5dGRiK09oN01oSU52ZVRZaGlZYUJ3bTJVa2QrMHFpQXJOU0lOUTFXakRaRkVXZVViUFozR0p1RHZ2OGxBR0RFTGVLL21KaXBvNzFlTUtmc0c0U3d1UzN6ZDdwenRudzhm''@;'; put 'put ''NGxHVUM1VjdlN3IraThxcTRoRHlOY2YzVTQxVFBtRCtSaGxmdVhwdnFsbm1YUFlxZ1lYRVh3cW9FMWdmd0VnYUhBc2ltOEFwcUl4TjRrY3ZkNG5IcTlrZklldW1LM0gyeHVQWU9jVXZZVmtJTkg1ciswNi9HeldRYTZYTTg1QmpaODJ3bEQ3dTIzR2ZRK1NRRW4rVFgvaTRUSmx3RnFJSzlxclFR''@;'; put 'put ''a05zRkY0S0xPNXlKNTFZS2F2VUVQQlpkRnRtcW9GelJFU3RnZjl5Y0NPTzk3WDBmNHFwSEloSGZ4c3N5QldOL1JvY2xySXUxdGgySXRJNzRkQjY4NmtiaHF1dkxLL25EVW1YQkVFMVpEVzZZN3Zqc2FDZmUzaHB5SnBvNUliZDJ1N1YyN28yeXRRWURUSk5NenVHOG9iOUp5WjQ1a0NtQTMyTFJ1''@;'; put 'put ''b0JqVDY2VCs5U3lZdEdtSmxuY0FqbndLK3B1Uk05a29CUnN3THQ2ZUdabE1IcE1zamluemt2WW84VEhzdW0weUcxL3U2MXVPWnlkdm02K2F1bU1IL21UdXFxSFZucDdWSWZyYmpqdW1PSDNMT3BHS3pxVmtOamh3VG9scGNzNERKZ25uUEpTWEFlOGdQOGg5ZndIK1lSQnBsUFBDenhreUEyTjVF''@;'; put 'put ''VktZR0QzQldCV1U5d096b0tFdEpzclo1b0ZiR0hSS0tra2pka3ovQ2U1SzdQYnUvT3JaeGJOZjNmbXI2YSs5T0EzRC9RMXBZei9ieU9UYXMzeWRJRWZKM1l5L0FYL1VxR0JvT0g3S2dtb3ltT09id1dEUVU3akNLbUZJRFJzZFpKcTQvKy8rYmhtTHVmOWg3enR6ZjRGdHVkZnhJdnoyT3JieHNR''@;'; put 'put ''MHc5c2RnYkRWcVNOYXBCS0REUEpPVHZCQUdGdHlTeG9RajgrZCtkZUNuUDkrWGUzTU8xK0xQNUo3QzA3bWp1VGZvV0QwdzFyZ3MreWs4QzI2OXZGOGo3OVl6Nk5tS0U5eTlBUXBBRCtnVFJ3bkpIY0FQcnYxMmdQalRBMnMvNXZKLzIvckhjRC81MlNWYW1SRkFMUGpaOXVhamo3NUpmdGE5NXV5''@;'; put 'put ''R0h1dnZySi9GVDJ6aGN4VkF2MVV1NEdYdWNzV29BK1pyeU04bit3T3Bha2I5dzNRK1ZKalBDb3cvQmo4ZE1OMmJQZVRuM2U4K1FZZVA0L3Z3MHh5M3pxZ09qU1F0d09HWmx4Um1waDdqazVKMzU0d0tqUmdqUnJkZmRQK285NEdobTI1T2dpejY5VC84QTExemJ2MzlaRzc5R1pqT3djYll3a2RO''@;'; put 'put ''aHhBQmdJUnNYL3VyVElxZjZ5QkpZcEY4RC9wYVdkOHE2RGtCbjV3MGdFam1zeWFzN3NHWjYzdklWdzJmNER5dUUzU0kzeEE5c2lNLytrSFNaTU9Db2hhRWdoNDArYVpHcGFCU0t0TGN5SFJBWTZXS1VHTUxiR3lxME5zeWFxeFNvV1VKSHlYajBsT21IU1V0MWxqVzB5U2I4dUpqWHRwdzFLZ3pV''@;'; put 'put ''LzlXdmIvZTUzSlF6NWJINnpacTRLaVF4UXhuVldURVdRdmVXZ09vZ1hLNEVOOStSY2ErRXArL1BMR1V5TzVPVHJrbkE0MkhkbGdPMWt6TjlzNVBkaEg5TlFkeTM5alcxckU3MHprVGFEQU9MdG9zL1owNWIzZGt4dHdYQ2llUUZKOG5FeURyREdBTlBYZFdXMEdVSUM4NDlCb0FhWFdadkpQS0pu''@;'; put 'put ''a282VGF0ZWRBNU56ZWlxdDhHWDZZRXQ0dU1kZ2tEVVlpWmpFYUVqQzZqMDI2REpZUHMydVFaOVZPaTBzdnUwR0w5NDc0ckJ3YXVUUFVmYU14a0dnLzBlMmJhMm1ZNk8yZmIybVk3aVg3MHhtejIxR2gzOUFBNWwvdTNhSGZPQjhaYTc5NW9kRzl2NzFLVTQyazc0TnpiZ0hQbGJUSGIxcmFZNVlL''@;'; put 'put ''MjJIK2RtcHc4TlI1ZDlrYnJSbnlSeFFqODg0M1pvOTREc2FyMDZZbUpVK2xtVDZUZWtkZ1hUeXgxT1JzajNsWjZabkU0czBEK3pQUkM4WmxSMkRFd01rT2pHTW9GZEhkdWJzU1FVMlN1MXcyNGZwSFJMbUdnMGpNeitOeDZlbVpZUXZFQ2VQUmtzMjRVb0VlVmtnL3VGRHV0VG5aeTVOemE2SUZv''@;'; put 'put ''OStpcGJQWkdPRGhzWFR1MStjd0lQVFBpZ1RNem8zcHE2UU9QRndoVGhvaWdJQ3Y1WmRveXFpSTl6bUlCYmJmZVlyZlZVZ2x1OERIM3E0ZWZWbUd4WmlkZG4wcDB3bkx4d2FYYWtQTURYYVBYVFk1ZU0zcnkxdHd1OVVwbThsQUYzcXZla1U1NDZqbzhiV09ucHpPbnhyNTQ1L1JsK0RONzB1azlI''@;'; put 'put ''S2RBRnVQdHdQc3NhSGV5UW90VlNoMUdLcExtMlNyMVNLVlNMb1BHVnNzY0htaEpnU1hQSzh0UXFRTmpRd1ZjWnJYMHcxM0pDbytieFNsRjBjN2xqSnZ5ZnVZMDVFaW9NcjkwODgyWmJkdkdFL0ZXcjZaZWIzVVNaU28zZ0wrZUd1OUpPeE9hS204OTA0TzNreGFBSDgzUitIYXlxbEZIVkVxTm12''@;'; put 'put ''bXdKZjRLREExa2pvcXNVczF5V1ZRUWlYQVpNSTBGL3BwdlI1a2hySk8yUnFWdFRaYzA1cVVOeC9pckExUW5ucWtCbTJqeWViMGV5bCt4dnRpWEh0L2dTZ2M4akpYZ1ljdlFpWFQvMVI1bjQ4NzJYWWNBSlVlUDlmY2ZHOTJNa3NwYzUvQnFqNitwdDhHeGZXcDdlMnp3NnZIeHF3ZGk3YnR5aDBM''@;'; put 'put ''Ym9wRnRvZEMyU0hSYmlKLzlOQ0NvQW1qWVRLTmpCaDVYWWJRRUNqdnpCdHVLVEhKQVJMM0piYUkrQ01ycTREZ2xmNTFlNG5iNGhsMGRtWW51d0dSYkptTmRpaE45WkU5UDdsazhPRGpyR1hEbm5nVzI5blpyak5IRUlMeCtrZncxNkdoYTZnWEkrL1JyS2ZMb003SkhSVnRUWGNYYytjcE43bndS''@;'; put 'put ''VklpOURRMW1VME9EeVpmSmtJT05KdnFycVhIZjJqc3cvdm9yNjFscGZEdWxPUzNJNVJwUVFVbGFXVFNUSURCY1ZleFh3VWJ0Q2g1Q3NGZlZXUzFHUFp0VkxBa2lGRHNCVlBrVlhCWFVWbFY1dGJhbXpIaWlzSlIzZjZVUkI1UXFUd09KckgyM2grdG13SnBZTExVU3VaTU9qUUxvWFdDbWlZNnZS''@;'; put 'put ''dFpQOVVhbTdXR3E2REJSQXJCdC9zbStwNVl5R1d6ZmoydHpiL3h5NzUwQXpqYmN5TStSSHM5bllGelo5NkVyOFgxTUFaU0FXL0cyUWdUb3lZMys5S3lqanJrK09CMVpLQkVybDlXaVNsQXE5UmtGalRRWDJEV1FPanlrVFZUUWhLaFV0dUlXcGd2MHYxQlhTaDkwd1c3a2N1dU5icVBicEFGdVVZ''@;'; put 'put ''UmVxZzIvUk15Y09PQ1ZQTGs5bkVsRkI3TDhKV09haWZUc05PdjI5aGFoWGFib25TaW5Xc0s5a2M2K0F0NVRudnpoWnpqYWN4QVltZldrcE5TdWx6RmYycitWNDBzSllVaWJMOXR6eTA1MDI5VVhJeW56SlpDVWNoNG9pc3VZY2RqUEpuK0o3YUwrRXN1Ri9TVmNNUmkvY1hMeXh2Rk9xaGQwY3Ux''@;'; put 'put ''QVVndlNweVltVHFkVFhVdUorTDRFVncrUXBNOXRCMzFPWDE2Zm8zSmFCV0lRQ0wyZ1dGRWdHWEd4UHFjdlZkTTJOalJkZkxSTEdPaVM5RG41T1A0Z2ZTNzNXM0xtUURsOWp1cFEyMEdIMHBmVm9RbzdzeFVwTTVrTklvMnBQdnBOcXRIbWhxYUxqM1lKQTExUWg5SmZUSFpkUUlkU3JzM2c2b0lT''@;'; put 'put ''ZFNEWFdhcjN6c1BMWVlCVEZicitHWjdFd1lHa1o2Sld3Skx1UzNVU0RoaXpUSGdGeFpoL2FDcmZhNHNPc09temVoTzN2UTN4aURsUG1zOWNQdDZ6SndMcytHLzZVN0NKM005cDBBYWpJT2puTDhJNmZhZ2pHVExEUWkxZ2JDTlM4TmJaTnJ1ZmZNanJDWEQzRTAvK2lMTTBBVG5UelNyNjVBeUNS''@;'; put 'put ''a0psMEhlT2gveTdka1FHWFpIZ2N2YndUSGgvcTJkNkl0UlhGKzFLaklTdW1LdHE5aWFHMnJ4MWJsTzFmU2d4T3Q5azcrbG85b0FtYWRBN3VrTmpPNmkrQjJ2Y1R1NEdmUytjYkxOZ0ZaUDVSTGlOaWtheVJBTXBBQWV3SlBkelRaVHBjRVluVmVLOE5Ec3ZwcGZTelVBdzBYQmVQSUczdDhZVDQ5''@;'; put 'put ''dTJaVzYrMlduVjEydk16blFQVHFmKytJOVR1YlAxM2lvTmxUbkFud0M1R2I4VmFFS2J6RytCWVVvQ2Y3TjVZSlUvb3NvOGtySUhDMFpCMlo1YmRpcndXN1BiNUdaaGxDTE5uMHB6SHBqVUU0R3kyUzZaNlFKeXZnTWNGcGd1bnN5OXhKZ3Vub1Q5MklGNGE0bFN6dW1TdlVDeTdxczNNRytGa2J1''@;'; put 'put ''dDdOdi82cEh0UDU0QXpXd2VQMGIxRXd6aURna082Ri9xLzlKZjJQL2xucjMxWTBNZnUzWDI4ZkU3UHpvT0l5N2pCK2pQMmp2NHZ0ekJncDlPaExGWkRtR0ZxTUFLS3Qrb0Z3WEdGa2hSZ01WZ01GREVjL3BGdDlFZnNTWWlvaEUvOGJsN2QzN3p4WjJmdW52bjExNTU5VldzWG52NTViWGM3K200''@;'; put 'put ''amV0VHhBWGo2cW11V0trR3ZJWWhBYm1sb1NsZTc2ZHJ0ek84MWlPZHdlU1czS29VVFFheHdIWlJnOFZqWGtPZHU4NmxiZnluK1dmK2N0dWJkVk9KcC9YSmFsTmRrb2k1T2Z6NDJrdkpic3ozRW9lWFYySE9MWHhrK2d2N3lPSzRJL2UzK0JPNVYzRTBkNlFYM3piZW16czl6c1lOck8vR2U4bnp3''@;'; put 'put ''SFVCUmphbUFPZ3dubkN4REVsb3NDZ3hBb3htOUJhcVFpbEN1QitEYkk1UlJaM21xbHRyaU5uS2c2NGlwVTRSYXhhOXdWZ3M2RjJjVnZYM1dyRFg1L05pYTIrZjZ2UE5JN0dQZGJZbGdwMTN4VlBONnBpbXJxM2xFNkZFZFUwaTlQSFdvRTBUZzFtdVhEK0xIdG5DMzBhMXR5djcrcVFFUityZjNv''@;'; put 'put ''MlgyZHFiazE0MTg1UHBNWUsxNC9GQ092RXlCZFVNclFZZ29pbGdCYkh1NTRsS0NjcGRFbzJrQVFQS20xMHFlSWNUQ2ZYMVd2bUtMYjM5cXVuOFRvNXJiTUhXajRjU05kV0owQ2RhMnVvME1YVnpLbjVYWnpEUjF2bXgyRWl6ZW4wZERlQldmRE4rVkMvaTZ2VzEzRnRJY3diaDUzSnZzUXdaS3VQ''@;'; put 'put ''bTFuZWdyeEs5ck91ejFWR0Z4SmFSYytLTXBFVFhaL28yVDB3RnJURHllU21YSkxqWEZDTjZPWGRrYlJUL1dyYXh6K0szeVRTcVEwNktLWTBOZFRhcnhXVFVWU3RKRlkvdHdhd0xVdGtIcUg5MUxPZVNseUJ3VHo4dFBxREhDTEllckd5UHhRb2l6WXgvT0JmSzloM3M3ajdZbHczT09xTnRBNE9o''@;'; put 'put ''YU83RDJkN2VyS3RaT1ppcW5qNCtPSGg4dW1xb1grbHZpblJvY2xkV2RrWk9YV25FZHhpdlRQSDhJRVQ2UVMrdlI2bGtFbzZUSnB3aGtlYTFpM2hTaVFrd1g1R3dNQkl6SFdubW1TaXlpQkluMG5wVVQzTUR3UjZnYXJIWDdJd2xXTFp2c1NzSGpwQ21LWkwrdGY4N05EQ1FPRGc0ZW0xdGQvV09S''@;'; put 'put ''SC8yVzk5S3AzMmVjNms3Um83MVNSSEtPMUxuaXYzWUZ0U2RqSnN3MHVDMEdoYUdLU2M3ck1JRTFFYlFaRmNxV0prSno0KzBtSTBHdWFSRVYwbUxTbGg1ajFsT1FJWWZSdUQ0czQrLzl0cHJjL0R6K08rbzV4dFBwbVpUSjA3QUN6NU0zZC9jL2lNTGVBODV3M0s2T3BuSDFVK1RuQUY1V1JCa1dT''@;'; put 'put ''bFFRT0daTWxsZDFCbGJiSlIxRnYyKzIwN3o1TzNHeDZSM3NtQTNHdXJyRGZSMy9nNzQyb2FpK0lmNFJaMExCMVJJSitBQStvN2tBNTdEMTVBN0w4Vi9USE96Qm5FODl5MXlaK0pTL2NkVzBmM2N6Qi8za084WmJ1Szh6Yi8rS2w2SE05QlNXeEFocGlqY1JNWHZCNm5nWWlFQUZnTHlNU21BSmZX''@;'; put 'put ''cWwycGJOQlpVTTNxa3ArdmdZRzdnbWdIYzByR3p1M3RYNTFvVCtmTzFYVHhHL0ZQMGwzZ0VnTmFZdEJkeEJVTFp4VXhSOG5XOENIcVhOVFphekkyTjVwODJXaXdORFJhTFpGc09yaWZSLzlBTWJuUXQyNXZPYWdJOE50SXNRalhseDJrdXJ4MWc0SUJnVjF4Tk04dUFTNjhXR09sK09zd3NLSm1z''@;'; put 'put ''Q1dEV1RWdTE0VkxhaG14R2o4ZERwVFFGSGMvaWQrWFZJNVlhQzhJcUh2bmYvcTVXVzFobmJBQU54MlEwMWVpYzBWcUZHUFEyZUlLNnFsYXJXYTgxVnVxelZKakF1VWZoM0gvR3pyMU5wT2ZlaHI0cjVaNmw4VDh5L3VSQlBjbUVxOVphcFNBOFhFa1FYU3REU002d1FOcnNSNUtJODdqdE5yTXhq''@;'; put 'put ''NWVvbUdWSldaN1V2YXFTRldQZ01MaFQ0bVBOWmZMbENud3RkMTJaakRtMkJ4YURFMjdRdVdDdE5DY3hoZjRFUFlyVVp3aCs4bEhHY011ME9ZcnJ0Mmh6UW02RFJmVFVGbTFXODIycTBXZTJhTE1uUDlkaDlGZThEZG5jNWh2NWNTclJEemEyNGZsV3dubEdDd1kwbGt6cEtYdWtjRmNqREV4SURj''@;'; put 'put ''ZWdWcXhvZ0RlcWxrQTFsVUpqU3E0b01hdldvRE5BWjYzRW55cUJXV0k1QVNkR2M3SkFJUURyS2lBbjR1Uit2M3Mzdm9zMDVJdy81Ums1TkQwcm5ic1YzNXk3bGVmUUpGbk9VeHk5azZ5UHgvdytoYWlxRXdBcmJGckEzeG9NTDJrN0lQOGt4MzJhZmdJTTYycDRRWXFyWkplcEpZT0FtVXUySm9p''@;'; put 'put ''Ni9iQnFlOTRJQ2RJK0NDdHV1dFJPYnVnVTJ0QkpPSFd4WHNuQTVnNDA3Wk1jS3RPUFczaVZQbThya0o0UkRMdDZrSTlhTERPSHplUlhKajR1SVR4WitzQlFqVUpzM0V5YnRUcyt1YU5jd2xjNG9YRGhqU1RiclRsMDc2NlNERERBSlpZdnhYQzdXY0wvMnhrdTRTS2MzTnptS0hwMml6WW41RGFB''@;'; put 'put ''LzdkczBXWlBmcHpENkhyZXBvRGI2MVJ5M01mbWF1UHJXZjlZdVhHd282ak5VZUJ2bTlxcy96dU1zODdXMDhiWHMvNWtTUnNhTkZhdzlmQnhEcTgvc25FOVFFYzBNUE50bG5mUlFDc1JObW9ZUzJwTWt5NDBSU3FHVmd0dkRkcDZWalpxaG03VklHOHFDcjRQWmlWRjlMTGZBNGdxSW9MUXh5L3o1''@;'; put 'put ''TG5SVVRsOTdsdjRmRDZGRG5lbmNkdmFuL0pFdWwrbS94Tmd3SEtER0MvcGtIakovU1Z3WXZrdURFNmQwdGsrVnNKdk5yYzVpaE5idERraHQ0R3pmWFdMTnF2NU50WG9TMXUwMlpPZjZ6QjZaUlBmd21nT2ZSSi9tNEFwaFZSUHFXbitOMmlRZnFBT2Y4S2FzT0tSTzJKM2ZEajJZZm92aW1mWUcv''@;'; put 'put ''c2podVI2aE4reXVoNDNDbUpSTW9ndFdFRUNyUTMxdGlxVlVxSEJTSmxQZTZZZkNVVWZZV1UrNzdsc3I3SWQ4cG5QdGN6VlE5TWlMQmxWbVlpcWcrY2ZTdjRnQzQrRHFrb0RxbHVQYy9FaEtNT3BBVzRUOUxUNWpINGpxeEVxbEJpSTdrVEJvd1RpSGxtc21EdEhFVS9Sd1pZSWVUR3kvNEY5WFpj''@;'; put 'put ''SEl3czdReEhnTHQyWHQ4R3ZhNy94T1BBVjQ0dkFaUER1MDJtUEkzZlArQ0t4blI1WmZ1aUF4OVd6MG5GNkZMZ0wvUzMzOS90OStQNDQ4SmpjdjJRL09CWFo3OHNkaUNOMi9peTNodUZhbDRTUFQ1Zmc3T1kyUjlHL2J0SG1oTndHOFBHSkxkcnN5WTl6R1AzRlpsN0RkWFkyVjU4MDEwc2J4OW1V''@;'; put 'put ''ZHhWaXpGK3B3TW9WRlphaWpmbkNZaENiV290SmE5Vlo5VDZuVHVTWklKR2liRFZ2UGx0dDlwV1NiTFhyZWJyYVRkK1VzOVVvTFd5SHVYWGtaZFJDZlY4VllFQXdGWXJtcTYzS3VlY3N2SU9YVkR4MTJ1aDFlcHdCTndzUDVuM1FvcnlFV0w1T0xGOFFSVU1BMjFtdVV1d3lsc3E4bUtJcHpLbUV0''@;'; put 'put ''OWMxMmQwOW1TVTEwZmxRYUQ1NnBKdG5NNC9UTE9aeFo4SVJTNDNHMTliNXVmSzhqZThCSEVkQWNTQW9kYWpjY3dIZ2UwL1I4L055ZXl3dUY3Zi9TdjU1ZGFyNCtabjgrSWQzRmowWDdQbjJsVGNqeGdmZ3VmQm5vSCsyb1FoS29pUEpsUWFBbmFzZU5Cd3pybEIzWVZXRkJwUm1VYVdrVlJzVkts''@;'; put 'put ''S3hpdFJJSmFwVks5VWFJbGR0MkRJMWxWVUNsZVVTK1VXandTQkMwV1Iwc0xjN0dBbDJ0b2RoZ29BQnFNM3I4V29CNUhJd2VVT2VmbEdLQjQreWJJd3hJMXJ4SStkOWtCL3hnUFBRU1kvejVNaStveHZTUDBhWHJaN0wremRGb1hOM1RyYlJwSkQwRUk5SEQzYkZoeGF6UlZraGlZNk9SQ0U4blR2''@;'; put 'put ''U010THNNL2VGMnVNODl5SEpjaC9pV0pHc2J3ODdIUXFsSWdxbWlKZzNSUlJwTTFiSk9sa1FUR2tWbk5iVkxFWjdsV3hpMjJpY1ZyVU1DaEFMQURBdnB6M1B6VUtzazBxa2RjdVgxb3RxWmVHTnZmQ3BpM1ZMdHBYMG9JWVFPbFNtb3lvZkk0dWp1Sm1yWjlRWm9IaVBhbGtOcHNvY1BsS2lsaVdQ''@;'; put 'put ''RFpSTC9uQXR0bXRMYktsdXpmUTF3eVg1SUs0V3djMXRMSjdyUUdsb2d0UFdWYWpNYzBwYlh5aDZmbDV1ajhXanhlM1A1TWM1ZkJsN3Z2NEt2TjNEeG5tVmovOWgzajREMExNWFBUOXE0dTMvRDd6OVh6YitxM3o4ditUUC81bStzZkY1KzhNUG9YeTlYSUo4QjdTbklOcWROT3FZcTdxaG50MXFZ''@;'; put 'put ''VElhS3ZCRTVzazZHdXFVL2ZuNkRkbTM5cVNKcHIrQk5Gd3RmZ3hXYldOalk3Q3h6ZWZ4ZVdsTmdpemtaUGxtOVZHbGdkMkZrYkNLbTRNbitCOFhreWNtMHllSCtpNVBIUnhwMlhlRGZVL2NQdFhpT0dnZnQ4MjBCV1pqbmJOdHdXMFJVdldGNWJtYkoxTFhaaWJlbjl3Mk94Y2ZhRzQyTkRYWjJ3''@;'; put 'put ''WWNhejlxMzVHSUxuU0dGMktKeFE1YTI4YmluNVIzYmVPOGE3RUE5M0VHeHprTzN4dkxQYWZuOTFqUjgvTnlleXhlVzl6K0svbm4xYnVMbjUvSmozLzRmWndIcHRDMXBJYjRtSS9Ramk3ajkzRFE1QS9taGtJS0VTc1Z5b01xT1hodm82RTlGMElxNXJCYUxiUlRLaFdMUUVQS1pkWmhabGZTd3F4''@;'; put 'put ''RHU2NE9oSjNzWUZSVGE3MDRtUUNNeE9KaU5teVVyUFRYYWRuZDkrUXl0aGRrODN3OC9WU2hlazNJeDE2dFlNVzI1UFU0RTJoa2ZsK2R6Vm9KdXBkNmd4NEhId2xGSHhYcmNlVjZsZTFRUm8remJhbkhGY2YxTHE3SDJjcnBjUmNjZ3VseFRxZXp4ZG5zTmZnTkcvUzRZaldPYW5FS3E1RXJjUmFL''@;'; put 'put ''NVg0QjVJakxPM25qK094SXc4S3d5d2VjYUdhc2NTR1Z1Nm5sblk0NHNLSi9YNHo0M3drbjhDZjNSaVpPcDBPdWFjOXlCQmhRMkoxOUo0NTlMdUJCMytsYVNneDM1LzdlQ2ZqRjQwd1VUM2R5L0QzTThXN2pjNHEvZjFyMC9MemNIb3NIaXR1ZnlZOXpXTUpmSGdPaDQreVZ4dmxNVWJ5YjU4SU5K''@;'; put 'put ''dnVrZ0hmNVhNT2kyUE9saEozMWYzallXVmd0bTBlWTM4Y1phUit3djEyb3lGY1R5ZnR6amtoMldyRmR4UFdiTy9QNnpaRk1jZC9MOG40ZWphVERsdlo5THE4RGFiWnp2dXRZbnhkY3pCOXRvL0NyeFNwQnBORlRyQ1JDV3NRcVJBM1p3OHllWUpjZVpXU04wb2ltckZhcnpXcno2UFY2czFNdDFn''@;'; put 'put ''V1UzQXVYOFBOYVBLNnNkQ1lxaWVCeWQzVDAxWS9rNi9Kc3ppWjdvLzdmN3YvQ0p4cTZPNXZyUDh0SzlCdzJlNk1SajdKQ1BTblBkNTRNQW4wSFVBSmZ6b211bnFwbzlaaHFhQ0lKaHpTQ1dnU3lWQWRBKzFESlpGNjJqYkxReG5UUmNTNDhSSjREdE1BYVJUVVJWK1U3R0d4ZzRxdlYzR2RwWmFI''@;'; put 'put ''Y2pYbHd3ZElPQUU2dDFBdVZkaks5dDFuZTR3U1VlK2piMnRvU2JYR2Z4d2o2YWJPelFxeVhqekdlaUcybG41cjE4dG42aXRLUnlTQTlaWXUrTkNWNTlRcCs0TCtTVTVQcHNWdGJxOFkyNVNiVGZHV0dCWjh1NUNoTC9vQ1BNdnZMSjlsZi8xRml4L0g4WE1vZnhpVCs4R2RGZlUvSWZiRWF2YkJG''@;'; put 'put ''My9OU1g0TFZYT2ZoTlkrc3IxL3FlMHNKWGRGYzNCK1JjOUJtbkxYUkNsNmhHbW1nelhOQ05XMEViU1RmRUZEc3pVak8zejBHUEtzT1B2bjdzd1lGMGFqbHNMeVBpaytNQkNWYWdZUFM1Y3VOYlJrYUVlS1h1R2p6eVRxdFc3Wm1rb0oyWVpMRG12ZDlYdXI0NzJWb2lrWUd1OTNlYW0veDA0d0Zu''@;'; put 'put ''MXNLVTdsTFVuemxDM1BRNWl5VlkwTWIwbFFlZlRRemxQdDljYTdLNU5xelJmbSsvNnN6bVZ6NzhnYnVtdmNiUnZKK3d5UG9XTG16QnYzMnpyeCtlMlFCbGZNNTRncjA0eTM2eXJxeEFHMit6dXNxZ1UvUld0SjZOSjRjMFlIS29NZjBqZys1QW9RU243aUVSRkh5bmxPUnBNMHdaUW1JMDZpVXc0''@;'; put 'put ''MG1ONjNHMGxNU2xHdFkzVEtkV1NYV1dsVFVPc05weWtHSnJpNzNnbHpoeXVpbkErakwyOERyVW1tTTlpRExnNmEzeGQyU05McGRJQ05yTUZHcVFHTVdRZG1nNVJKT1dpNlBWS0RJcVJRck5CWmFzSWI0T1dma0d3dFlkcGRYYnNvQWdBK1c2MEV6a1hVK242L05GNmgxR1h4ZXQ1dFpUeHMzcE5x''@;'; put 'put ''Y1ZNMGlONktjV24wNnYwVzFXcnNod1RvRU5uQkw5a0hKd05YV1NiczJHWEVoMlJwczNUWXIvaTdMdUM3amUxYVg4VDF2dG92VWtsM0VhbnVaakcyVlpPekxaZnlvTkYrYXl0ZzBsN0VucGI2NXQyaGRNTzhMZUtNbEJza1BDZTBGSzZwQklTQUlNYWtQTmhHMVdHdWxEaU42Vnc2YTRFd2hVRWtE''@;'; put 'put ''TVlKYXNhcVI5ZkFhR2o1UUxsZW9pRkxKdy9uTFBKd3ZjWVp3dVM0VldLWFM4NDZvdEp2cHZjNzBuaWVoak1JUkRsUFhkM2dnM0orSWFVUGFVS0RGN2F5dk14dXBDN3kyU2pZUUtBNXdtOEQ2SHBPMXNhUGU3bk80TmNZNnUvRS9MaWx2ZTRldjBSWnR0emI3N1VhRGZkdWxKbkdETFV1TG4vU00z''@;'; put 'put ''L0M0d0pIMWUwdGlCeitFTmxXTTMzQjc5OGhua0pRSE00L2VCSjVocEZrVGF0QzRqRHkvUnI1V2g2ZFhjVG50MFZ1Y3JJUkxGc3lnbThxTTRVMUtHeVpkbGpNREpsZWJxOGpEa2piRjlDaFl4VHg2a2NYOG5TaVo3RGViaUVKd1luNE5VZUdVSlZORG15ZGdsaHppYUFRTDNLS3RMcHVXYlpRWFpL''@;'; put 'put ''Vmx4ZktTOWtrNUFETjBhVTBXYThiTEYxZklDVml6d3pycjJ6VWkvcCsxZDZTRkFwM1F1UDFEaFRnTDhGZk5KajhyeStORzl4QmxQdDlhWDVKdm5jbGthUElZakxjWDZPNFdrTHN1b0M5R2QvaUgzR2NCei9XTUhyUFM4MCt6NTZ5K20ra1pZVW5QMEpiUU9JQUVOd2gvQkcxbXBEWVdkSmEzT1N1''@;'; put 'put ''MzRYWGk1K1J4WVB5N21FNkFpM1FDT3M0SWF6TWp0Zm1UalcxNGZRanBCeHlwcHBuRlZaVVZHakJDQlRXUksrWTNGWjlYbzJwenZ2aGNqRkVrU1poRk0rblA5YzdQWnoveWtYUWFtd09aQUo3Si9YZzhNLzVicWY2a2h1WEVPNUlObFJXaWlrcDh0VlNScjVPS1M4M3Nzam9zZ2tVa0RZcHI1akpU''@;'; put 'put ''VTVrNWZGbHI3cHRZNzgvNDhYTHVtNjBGbmVraEJzTU9DVDcvV1FKRDdnUDVudVFEb2JyYW83d3ZuTXREN0x3NkpENUplSHQ0cmlCNnVUM0E2b1dpdVU3a1kxdHFkRzZMdWM3bi9TM3FFNmdveGhUSng1aU9TSG9oMlNRTHhobnRjcC9Ka2N0UXVWZ1lya0huUzJMdm0vdzV1T1phYnRPQUdTaDhI''@;'; put 'put ''ODdVZ0Jwb3prUCtaZ3MxeVY5dG9hRWwvSEp1SFROVUc0ejFGaFBMKytVS2dxMFFZNWRaSVEyekY5U3BDRmNSMWw3ZTk4WDkrNys0RDNEQU9EdDVPcE0rbmVaS3d1S2Y3VnYrNHY3MDJqK1RwdWxiTTVuclVranlwd2hBR2NBbE9sQVgycGJNV3JGYVJWM2dUSnNCVnE5VUsxYXFORVNsa3YwVmxX''@;'; put 'put ''S0ZVT1N4Nk94MHVSRHE3T3BNeEtLdURsZDdhek9NNVRCNGZCNXZOU3g2bytPN3dNTUx3dCt4aVpranJnWUliWEtGbGR0Ny9lZzRTNDBmdmM3ck9qa2lLUU81cTR0UzVQSDFHMnV2K25ySGVkTDhXRS92S0ZVTGlyUG04L1ZZa241d2tKMXJUTUxkcjVYZ0JNK0hwdWU2d1AyZDgxSmZ3TkdEREhk''@;'; put 'put ''akVvNit5TnZuM3FMNTAxSjcrcnlwYUs0VDhseUF1eDh1TzljVkRIY1hPTzdXODdsWW5UMWJaMXhhNTMwbGVNL3pvZWs2ZC9CMUhrTlNEbU9TMWVnUDAveUtXTFNwVWFFVTdUVHJwazRIYW9lVzVWZlViNWxmSVlyTU5XN0pld0V1SmIvaW9wM0s1bGRjcE5lVytSV2wvYVQ4Q20rd21lWlhHRmgr''@;'; put 'put ''QmZmSmwwK3c4RjNLYlFRa0hGbVowSlpMdHZqb1pSZThvK0NQZHNZRjkrYXNpOG9ERjc2MWdKOWRjRDNKY3R3SFVTN1oxSUZGVldkVG82QVVONmJIS0MrUUhpUEJ4dmFISEovdER6bysyeDk0ZkxhUzQvTUVtaTh0UFFaZk5Ka2Z2M2hncW15ZVRIaWZiK3NVLyt5Q3NpUmJSdWx2dWtEU2Y0RldU''@;'; put 'put ''OGkwQ25SK2VBdGFQUy9US2xiSDh1Zk43cWh3b2hlU09scmhqcXpWSUJtcTZDV2dVdTRmREVBenk2OW0wVjV5aXZvNXBVUXRqWm93Wlk0UXZCL0V1UjNMUjlWR3V5aVFjTk1sOVVtMmJHcE83eGtnK0ZCSkx3VzlKRnNQNjNZaUtxUm9HcUdSbXJMc0dzMnlKMFhkQS9SMkRieGdMSE1ZOWRYMHlv''@;'; put 'put ''M1FKb2luOGxkd3NIcUtKS3VuQ0tOWGtyWVdyQlphelVTakRwb0kwZVFqazhxMFRBbEtoZksyQ2t6clZ6VlhnekFETU5QNlVVRlFMS2w0RldsSmRERlk2S1BXa0pzdTFpblpXcjY5RkdFczZpWlFXRkViTUl6Q3JNckRDdENpTHBNdFFvdTR0UFREeWtnQXQ1WGljSGVoSHNSYjc5V1ZSaExGOFdo''@;'; put 'put ''eGtVakNvdmJ5R0NLN0U0WGhha0xDMVd0S2NKWFdzUHlhNmEyTFhHOGx2U1c2TGMrcGlPUnpLbzZnejVYcTBjelBmMmZlejM5a3VqajM0eHY1bkkxSzlGcEpQZ2JyeStMNUxLWUFiVzR0bHhNQ2V0bWpaZnNHQ25FS1hMTVhTZmU1ekxQN1hEeW9OOWxsQnQ1VURTY0wvQlFMYWVtR0xQbCtlQlpD''@;'; put 'put ''S0JoSTBNUGpxWFY3UFB5K0xKWkJzY2xwcytuNkYvS3B5ZHZtdGVhOFo4TnkyUWVrZTJESUUreldGMTJENU14d05sanVmVi94cFRCU3pTbXNkUTVzSUM5Nm16c0lhalJnUEtveEZyeTQ2TFpHNmFteThOUlVwdTNtWm5udmRyMVVrRVJyZWJaeWFEdWtOdFRIbkMvNktlUER2dkJZRngrR1NvQUtE''@;'; put 'put ''eTNZYkdiMVVCdGQxQnNMaVFxMk1abmpEdW5pdXFKTWthSGNXald4dWNJb2I0NHlYS2QzNVRCNjZPSDVRM2l4Qkk5NVBSSGwzYnNaTG9yb0owVTVReWZrbkNGNC9wR1N2andXZEY2T0JXRnhQeXJxdXllZmIzUVkzVmFDeCt3T0c0YnIvWklPK0ZUSitMeUdoK0w2RXRjQnIwZEZmZmZJZmNITy90''@;'; put 'put ''c3QrcDZSK2xKZjUrZUsrcDdJOTFXalUxdjBQUy9QaTlYRERHOVpiVGkxM2JYVTUwR3JER2pkRmZONXNDSW1zcDhhRlhaR1ZGcFVVKzc2TjVWYktLcjQvdExtTW0rcEhtQ0duTC9FKzJ5czlENmJCOGNPOTh4a3U4bjVPM2ZzS0Q5R3ZzNk13RWtRY2xLcU1wUEdTRVJFOTJCM2RxYm44Qmc1djJQ''@;'; put 'put ''SG5kSVkwL2dnZVE2c2Nxbktvb0xRT29zMG1GUFV6MUZhRjFDTnFyeEN2c3BDMmpTemx4NlphZ3liWW5WMU1WTzRZYXFGVERmQ254WUwvTkhFNWxsQW4yTytIUitiNTRJMUI1c3JPSGFYVkd0SU5TTFR1RnF3c3hxUkxqWnFrRDRIRFcxVmlRVmdIWXY1NG1iaGtpcEZpci9qNHNhK3ZrQUFmbXJk''@;'; put 'put ''N2xyNlE2YjUzNEcrTnY2ZzFzMXJIK1l4SlgwOTZtRXJDTmZBWnJRVVk5SktWdUhCS3JVQXBvdU1Hd3Ywa3hsZS9lYXhLS1JxRWVrN0dZcWM2RGYyTlZuNjg0N3p4NWdYeWlpNXpObTVEWkYrL0VIeUZkajVNSnMzQWJJQWE1aHZ6b1R4aEJvTHJFNE56bktWM2V5MEtGLzhRb1FacHExYVFKUXJK''@;'; put 'put ''ZVJBOUlzVENsbGQrYm9FWE4xazAxdXFUYldxa0c3V1hQUTdHVFFZdFRVT2ovZ0IrWjJmeHlCK2pkVzRpS2lPclVxckJJeWNvRmIzU2FNaFh4dGpGZDFlcWRnRkQvR0tsNXMvYmpqTmFHOWI3cTMxcDlZZlJ6WEl3MGF3MVpTcHVQUGt4eEkzZmpuQjQ5eWZXbHR2OTczTC9hVE1aNXJua1RmSVBC''@;'; put 'put ''S2xjSFFMSHZrOW1VZWlGSHF1aUw4VytoNEZtL2xpZlkvaTBhSytlL0o5RCtQWkVoN0orNTdKOXowTWZJN1ozdXZiYWJ5bU9OYno3anJYWWQ1ZGwzU1lkcEN4SG1hM1QwaHR2djV1anNmMTNzMUpiWGc4WVRVL1RqVTZ0RVU4NFN2NWVFTDFOQ3FiVTVwQ0g5OUNQbnd2bnl1UVdwSHV2RWR2RWcy''@;'; put 'put ''T1hQejdJTDZmQytQSXVOeEg2TG1FUGdKNU55ZjNHY2RmUnVmSUE0QXpuVThCdWt4a25yUVVmNUdLYmRNWHFmREt4MTFQY3l3eXlnNThMcWlmcDE5djBWUkx2OTZDM0U2LzM4THM0Tjl2UVgxMCtLdm9KZklnUUVFTFVFbnhPa2FTeXRjeHdqcndiV3dkRGFqbjZZWWFJaStsbWwxK3c3N3JoeTNH''@;'; put 'put ''dUtHVVRXRHNiOWRaVDYzSHdHNWMyN2dpNjVZTGZHdUx0ZGFYcmh2ZlNSN1UrZm02MmZxL0NlczM1TmRQVVVyZUNBWXMvQktleEErOHQ5cXdCOGJIT3pyR3hqcSt4Tjg2eGpuK1RBSmVqYUw5Z0J0Z2MrbmM4UHBOaHVONlRDOUpFK2wzTENrT0ZIM0gwaURLd0d4djh2eXVEaTFXMXZDdlFGSmpW''@;'; put 'put ''Uld1cUZSVkZIOXRrckhhSUZSV0NzdDZqVTVVRkgvYlV1d2lIZGszSi9IZUl1MHRTTis1MUYyMlg1bHZYU3JwQzRwZmZHb3FtWlMvZldscWNXckgzR3d5azB5UGpiUVB0ZzkweGN0K0U1UHBEL2dtSnNlbXZ6MUZiUjN4OS93dFRYaWk2SS9jV2ZrN20rNS96MS9lVlBhTG5BcGY2RVR2WFl6aUN1''@;'; put 'put ''Q2RTcVI2Q3JUcjlzQWd0Z0xzZkErazdyNDc5YzQzZEU4L3E1ZnV2SXhpdmR4T1lPMzhDYXNZaEZZUFBERDY3Tk82Yjd6Q1pNVWIwcjNUWVRTVG5LcTNFd1c5dmFJUzAyOHVVSUFBSkFwaFJZTkpCY2FWdEw0bFg5QlVoU3NyWlpjTnMyMURiWUhXRnIzQkN6YXIzdWl0QnZ1MmNJK1dId3hhYWh2''@;'; put 'put ''QjJ3QXBWTlRTakVENmZWRk81ZzdHMytiWFVtYyt2R0pkeWhMbHRrTjFCMitia09xWXBqL2t3b25jR1pXQTUzSXZPajR5MThldXFrNGVIMC9WYWUyTzFQQ1JYbGJFdERpV3FtOHltMUxaeS9qMy9PQVdVb05QQUI5VVBRVktYVHZqZXZ5bS94T3NXSmtxT3FEcUNNQ1ZuWG9uRWRiVzZBOHEzTHZH''@;'; put 'put ''N3d4UlAyTXpWaXRKZTVsN3pON2pIUnp2SE5qeUNnNHB2NFRacTdoZGlwV2N6ZWVkQkdpc21UMHZ4SnI1OC9QNTUrTE54Yy9QeU0vUjRldUtueGZHVDZFUEZUMi9NOS8reUJYeXZTbno1QWFBQVkxOXFKOXBjUnN4d0tERUhKTWhVYkRGZkp0aGNnTzN6WW9CSTlsbS8xMEVIOGxPMjFFRUlzbEV1''@;'; put 'put ''NmMwdDQ2dG1mb0YrRjV3SmJxL2FDOWZ5Y09rK21EK2JoUDBlWFozazR3TEViMTdYcnF1aVg2K3ZoMCtWNVorcmx5YlFmOFAyeitjMHdBQkFBQUFBUUFBMzV2bWhsOFBQUFVBSHdQb0FBQUFBTlBCbllZQUFBQUExTDZtOWY5Ui91MEVZUVBGQUFBQUNBQUNBQUFBQUFBQWVOcGpZR1JnWUQ3Njd5''@;'; put 'put ''WURBOHZFLzRIL1cxZ1NHWUFpeUlEUkVBQ2xJQWFoQUFBQWVOcDFsRDlNVTFFVXhyOXpYZ2VpZzhIQlFTc2FEVlF0ZjZXQkttaHRKS0xTcGkzUG9ERmF3OEJrMEFnSkxrWVM0OFJBUXVLaUF5UWRESEV6Y1hGd2N0REJSQ1lIblFoTGJZaVN5QVRSNTNjdUxXSmIybno1dGUvZCsrNDUzLzNlbFhY''@;'; put 'put ''Y0JqK1NwbzVSamZCbEhvTmFRRVRIME82RjBhSHpPSWtTQm1VTTU2bDJlWTQremVHaU5DQXRrNGpqTjY3SVFyQ21yOUVub3ppb2FYVHBWWnpRKzlSMXhNbCt2Y0U1ZWNUc3R4dlB1UnpUYTg4aFU3S0pROTREdE9vdkhOVlh5T3NpeDI2UWs4am9LUFdkL3o4amcxWCtEbk9OWjdpbFVReDRJOGg3''@;'; put 'put ''U2tWNC95a3lqak1jd3pwMUNtMWF3b2c5TTNRR3pmb1dMYnFBL1RxTnMzSVBPZGE4U1haSkNUMmFEZjdJSlNUMEhFN3JZL2phaEU2eVIzMTB5aDNPZmNUblpwSEdNaEpZRGo3b0VReGhCU2x2R2ltN3JnL2RlTi9teUJONnVJWTJtZUM4TE85M3M3Y2tqbXVFdmVYUXBNb3hNNGpLQVl5VDdmS092''@;'; put 'put ''alppMksxNWw1NndSbm5CV3ZhZ1ZkNGc0ZW9hUndRL01DQnhkejFHdjdhOHFxTVFTUFBQdk5zaHJBYWZ6RC95SjFYMDl1SlV4YnRxNldFTU81cC9PMlgrMFdlOWdHdk9xenJ5UHBMV2kvKy96RGY2TjBTV3FCWFcxTC90WGJVc0Y4YXM4L2VmekQvejJXajkycHJWdE41dC9Rb3RSOXdYNjFmbnVL''@;'; put 'put ''Zm1oOVcwR3kxcnR0OWwwcXR2clBjTHZZdVNBWG5aK25BWlpBNHNoNWFGYlRJdjBvMW04OWI2cTZINXl0NHFERFVnRmdwelhlYldzbE5EZStlWXB4cE9sVE5Xb2UyUGViUUw3UjF3T2JROU5QL0s3NExsc1pxMlZ6TEw3SmtLelB4WE1rVWxxUGRJNmo1ZVE1Q3JQTE9hTlo2VzE1UjF3Q3R1blRm''@;'; put 'put ''WW9GNENta1RjbTBDY1o4S2dPMU9XeUNXeWdKczZ5N09DNTFKb0RoM1NpeGFxVFJlRG9zdUh4N25jMXpwZkgvNWY3Unp3cEFBQWVOcE53bDlJR25FQUFHQXovNVNlcDZYcGVkNmR0L004cjd2VHpwKy8wMk1NMlVORWlNVHdvY2VJSVJFOVJBOGhFVEZpaEVoRVJBOFJFajZFakJFU01ZYUlSSXlJ''@;'; put 'put ''aU9GRGhNUUlrUkV5aGd6cFFTU2toNzNzWVh5ZlJxTlovcWVnT1JuQUJ0YTBxdlpFKzZCOUhuUU9YZzYyZFRhZG9FdnEwcnFTcnFaSDlFdjZndjZQWWNhd1ltZ2JrOGFjTVc4OE05YU43YUg0Y0hhNGJFSk1LZE8ycVdwcW1hRjUzcHd4ZnpiWHpWMkVScWFRWGVUR3dsblNscXJsQWJXaFVUU043''@;'; put 'put ''cU1WdEdVMVdBbHIzRHB2L1dBOXRNVnRkeVBZU0dua1pUUTUycmRIN1F2MkwvYW12ZXZJT0pwajNGalZPZU04ZG5aZElkZUJxK3hxWVRZc2dXV3dDNnp1SnR5U2U4NTk0dTdoVVh3VjM4UUxlQVgvNVVFOEs1NE56NTJuNWVrUlF3Uk9TRVNjeUpJcE1rMW15QnlaSjB2a0JYbExQbEloNmkyVm90''@;'; put 'put ''SlVoc3BSZWFyaXpYbnozcEwzd252cmZhUnBlcFhlcEhmb1E3cEluOUhucjk0eERCTmlYak5UVElxWlk1YVlEUE9SNmZtMFB0U0gremdmOE1WOVIreDdkcGxkWjdQc1BsdGdlMzZ0MytHbi9jQWY5Kzl3ZTl3eGQ4cDk0MnBjazN2aW5nUEZRRGx3R2FnSGZ2SXkvNVcvNXUvNEZ2L0V2NHczeGp2''@;'; put 'put ''amZVRVd0b1FEb1NSVWhDdmhYdmd0OUVWRWZDTXVpR3ZpbHJnbkhvbW5ZbFdzaVQvRXR0aVRKcVVyNlY1NmxEcFNQNGdFc2FBUWpJWWNvYzZFWmdLWk9KSW41Vmw1VVY2WHMvS2hYSlRMOG1VWUM5ZkN6WEE3L0FLR0FBNGtvSUlFbUFXTFlCVjhBamVnSGFFaTA1SHR5RFcwUVFEbjRBcmNnTHN3''@;'; put 'put ''RDB1d0FyL0RCdXpBdm9JbzJIK0FrbFEybFQybG9YU2plRlNJQ2pFNkJtUFRzWExzT2xaWFVSVlhPUldvY1RXaHpxcEY5VXc5VjJ0cTR5OU1NOG1nQUFBQkFBQUJQQUJnQUFvQVFBQUVBQUlBS0FBNUFJc0FBQUNEQWJVQUF3QUJlTnFOa3MxT3dsQVFoYzl0MFlBYTQ4SzRZR0c2TU82RWdnUWlM''@;'; put 'put ''alZzRkRRU3dTMElBcEZhTGNYRXJVL2kxdmN3eHA4WDBJMlA0RE40ZWp0VUpZMHhOK1YrZDg2Wm1kNHBBSmJ3Q0JNcWtRS3d5eWRraFdXZVFqYXdpQk5oRTJXY0NTZXdoanZoR2FUeElEekwrSWR3RW5sbENLZVFWZ1hoZVJSVVRYZ0JEWFVyL0lRVjlTYjhERnQ5Q3I4Z2Fhd0t2MkxPV0EvNTNV''@;'; put 'put ''VGFzTEVERjVlNGdZY0JldWpEaDRWN1Bubll5S0ZJYWxPMTZPdHJ6NGhjNSs0d2E4VGNDMlJRUlpkNW5xN2tZcWhkUjR6MU1PYXBSU1ZIbDYzWE5vNnhoeVpxcExpOGphbk1PSTgxNVdudzVERSswTzlqL2VqMm53NE5Say9wY3NuQlRROVlvOHM5eU8xUWE1RVBxUWZhUHZmT0g3TUk1dWZ6VkVh''@;'; put 'put ''VzYvcFhaVmZYZGFLcUdXb3V6NU9ja1dUMXFQcU1qam41aVNmTGZkTFQwVGY5N3BtTnZXV1RzVGIvYjRIRGoyWlNsUWxWdEdweEZiVldZdThjdHZpN2lVTDA5VXM0cDYrcnEzb3kzVXBVc1k0cnZ1T0Fpa2ZQOEF2Y3ZYaHpBQUFBZU5wdGsxZHNIRlVVaHIvZnNYZmROazd2dlZmSFh2ZkVLUzVy''@;'; put 'put ''eDdGakp5NXg3TVJKeHJ0alovRjZGOGE3Y1d5NkJBSWVRUERDTStVSkVMMEtKSGhBb2xmUmV3ZlJlYVFINzl3SlhpVHV3M3ovR1ozem56UDMzaUVMZDUwYllCNy9zMVNiZnBERkRMTEp3WWVmWFBMSXA0QkNBc3lraUZuTVpnNXpwK3JuczRDRkxHSXhTMWpLTXBhemdwV3NZalZyV01zNjFyT0Jq''@;'; put 'put ''V3hpTTF2WXlqYTJVOHdPU2lnbFNCbmxWRkJKRmRYVXNKTmQxTEtiUGV4bEgzWFUwMEFqSVpwb1pqOHRIS0NWTmc3U1RnZUhPRXduWFhUVHd4RjZPVW9mL1J6ak9BT2M0Q1Nuc0xpZHE3aWFtN21CTzNpZjY3bVdwL21ZTzdtTnUzbWVaN21IUWNMY1NJUVhzWG1PRjNpVmwzaVpWL2lXSWQ3Z05W''@;'; put 'put ''N25Yb2I1aFp0NG16ZDVpOU44ejQ5Y3h3VkVHV0dVR0hGdUljRkZYSWpER0NtU25HR2M3empMSkJOY3pLVmN3bVBjeXVWY3hoVmN5US84eE9QSzBneGxLMGMrK2ZtTHZ6a25sS3M4NVVzcVVLRUNtcWtpemRKc3plRlhmdE5jemROOExkQkNMZUozM3RGaUxkRlNMZE55cmVCenZ0QktyZEpxcmRG''@;'; put 'put ''YXJkTjZiZEJHYmVJKzd0ZG1iZEZXYmROMkZXdUhTdmlEUC9tU3IxU3FvTXBVcmdwVnFrclZxdEZPN1ZLdGRtdVA5bW9mVDZoTzlXcFFJMS96alVLOHkyZDh3SWQ4eEtlOHh5ZHFVclAycTBVSDFLbzJIVlM3T25SSWg5V3BMbldyUjBmVXl3TTh5Q004eWtNOHpEWGNwYU04dzVNOHBUNStWcitP''@;'; put 'put ''NmJnR2RFSW5kVXFXQmhWV1JMYUcvSFdqVnRoSnhQMldvYTl1MExIUDJEN0xoYjh1TVp5STJ5Tit5OURYR0xiU1NSR0R4cWtLSytrUGVSYTJZWDRva2toYTRiQWRUK2JiLzBwL3lMT3lQYXVROGJCZEZEYUhFNk9qbGtrdEhNNEkvQzJlZTlSamkrY1ROU3hzemF3Y3lRaDhiVlk0bGJSOU1ZTTIw''@;'; put 'put ''eTltMEc1ZXhsMFV0bWQ2eERNOTJrMTYzSVcvdzVzaFlSam9PSjJLRDF0T2FqUm1wWktCUkdiazZ6UWRITk9oTTdPRGs5bWgwM1J3RExwTTFaZ0xmeW9lTFNtdERIb3M4M1dicEtTWnBzZWJKbVdZMCtORTQ4TTVxZlF6MFBPZnlWS1prYi9IMjhHVVlVRnZPT3FFVTZORE1mdHN3WGlHN3N2UUU5''@;'; put 'put ''UGExMjltbkhTUjN6OTkycFBUcDUyZU9GaFc1YklzV09uckhYYXNxV3MxYnRCckhNWmQ1UFZHb3JaamowWEg4c2JQcTNSZGFhaSsybU9OeHdhUGpiNCtZelRoSXYwMldGSVM5Rmptc2R4amhjZEt3MkJUZGlqbEpOeWdvcWtoeHlxMllzbDh5NTNGU1BmdXAyV1JOZjNaNlRoZ25SL1FKTHJkMDdM''@;'; put 'put ''QSszMk1OdnVhMW5sVytqUk1jaklhaTdqSnVkYlkxQjVGYkNjdlludnFIN2RsdHlFQUFBQjQybVB3M3NGd0lpaGlJeU5qWCtRR3hwMGNEQndNeVFVYkdkaWROa2t5TW1pQkdKdDVPQmc1SUN3eE5qQ0x3MmtYc3dNREl3TW5rTTNwdElzQnltWm1jTm1vd3RnUkdMSEJvU05pSTNPS3kwWTFFRzhY''@;'; put 'put ''UndNREk0dERSM0pJQkVoSkpCQnM1dU5nNU5IYXdmaS9kUU5MNzBZbUJwZk5yQ2xzREM0dUFQNGNKV0FBQUFBQUFWaVk5bllBQUE9PSkgZm9ybWF0KCJ3b2ZmIik7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc3R5bGU6bm9ybWFsfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcztzcmM6''@;'; put 'put ''dXJsKGRhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFGWHdBQk1BQUFBQW9PQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUFCcUFBQUFCd0FBQUFjZktUYkxFZEVSVVlBQUFIRUFBQUFUUUFBQUdJSDFRZjhS''@;'; put 'put ''MUJQVXdBQUFoUUFBQWNmQUFBT2RqK2hmWFJIVTFWQ0FBQUpOQUFBQUNBQUFBQWdSSFpNZFU5VEx6SUFBQWxVQUFBQVRnQUFBR0JvcWEzK1kyMWhjQUFBQ2FRQUFBSnNBQUFEbm5kREQ3RmpkblFnQUFBTUVBQUFBREFBQUFBOEVkOEJ5Mlp3WjIwQUFBeEFBQUFHT2dBQURSWjJaSDEyWjJGemNB''@;'; put 'put ''QUFFbndBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFTaEFBQU9Ea0FBRzA4c05HeU5XaGxZV1FBQUVyQUFBQUFOZ0FBQURZTGE0WUhhR2hsWVFBQVN2Z0FBQUFoQUFBQUpBZUVCQ0JvYlhSNEFBQkxIQUFBQW9zQUFBVGFzbmc1UG14dlkyRUFBRTJvQUFBQ2J3QUFBbnB5VlZmYWJXRjRjQUFBVUJn''@;'; put 'put ''QUFBQWdBQUFBSUFLUkFoNXVZVzFsQUFCUU9BQUFBWVVBQUFOa0wrYUdTbkJ2YzNRQUFGSEFBQUFEb1FBQUJpR1hGajJLY0hKbGNBQUFWV1FBQUFDQkFBQUFqUmxRQWhCM1pXSm1BQUJWNkFBQUFBWUFBQUFHOUcxWW1BQUFBQUVBQUFBQTFDU1l1Z0FBQUFEVHdaMkdBQUFBQU5TK3BPdDQyZzJN''@;'; put 'put ''UVFxRVFCREVFa2YwTUxQb2Y3eXBML0RvZlhmVi96L0FJZ1JDMFRRQ0xSNmNkRlJralZzbzdIelR2MUQ0QjdtNDA0OERPbG9wTmx2NjQ1U2VYWExUNTFzWHpTYStXM0FGM0FBQUFIamFqVmNMYkZWVkZsMzdmTzVyM3dNc3BYeUVVZ2toVUFoV2hqQ2lDS054bWxwSVJ4bXNCQTBZTlk0ZmtNOVVa''@;'; put 'put ''S2JHeUdjVXpVanF4SkdLWkVMUU10cGdCVVRGcWtoZUNQNklJZmdKRWl3RUsyTDlBU29hSThwMTNYMGZjRXY3WnV4S1YzZjNPZmZjcy9kZTUrM3pJQURTR0lvcGtNcXFtbG9Vd05HRE1JVGxINEdCbmZPWHVua29tWHRqM1J5VXpwMHpkdzVuZy81b05KNFJzZVZ6YWZSREdZYXJ4MklZYW14TFBC''@;'; put 'put ''b3MwRlVsYUVEQWg2VG5RajR4VUgwZUphY2hxQW9ieUI0VHNRSy9JSlNCTU53RzU4a0FhVU1HUGJpekkyRTJiQTczaHZ1UjV5ZjhKdS9JN202OW4yQkFwLzgvQy8rZGQ0V092Q050ZVVmMmh0azhJODNod1hCcmhMT2Y0Ty9PQ0YxMml2RHpzSUZaTWhqQ1RBOW50a1lRQmhXRXhRV0V3MWpDNC9k''@;'; put 'put ''RWdQRkVDaGNUQlpoQUZESzNFMW1wUllSZ0tlN256QWNJejR5dm9QOUZRdkFTSVhpWk1IaVhjSGlmY05oUGVIeENCUGlVQ1BBWkVlQW9rY0kzUkFvbmlFSlc3eGV1RmhKcEtaSWlGRXF4RkpOTHBJUThrSlZOYysweFZNa3dQak9LRU4xM3ZHT2pPN2E2WTZjNzlxZ2tDbEJGRktLYVNHTWFrY0Y4''@;'; put 'put ''M01VVm9rZ0NqU1RRU0R3ZXhrck9ieVFLOFJoV2MvNFQrQy9uUDAxa3NKRklZUk5SZ09lSUZEWVRCWGllU09FRm9nQmJpRUswRW9YWVJxU1JKZExZVHFTeGcwampkVUx3SmlHYW5RQUhpQXcrSnVLOEdNMkwwYnc0ell2WHZIak5pOU84T00yTGsvN1NuL2s2Vjg0bFJ6bnlYTFdDR1JyT0dsZXd0''@;'; put 'put ''bU5aMC9ITXpBUm1aRDRXNEsrb3c1MVl5Rm91eFRMOEEvY3hDdzh3K28yTTZIbFc4aVZXOEYxV2JqOHI5aWtyZFpRN09hRW5xNGp2TFluT2w3bFh6K0ViVXNlNGUxSmZXNm03aHZEN2J0U3FJOUg1eUR2eUpYR3NteWVQNVQwYlgrYis3Z3UvRGcrRUQ0VVBuVDJTTzVGTllkUHAvNzVJakh5dXp4''@;'; put 'put ''aVVxaVpFTldGd0RXRnhMZUZ3SGVFeGt3aW9pSldjRTZsQlZBMUcxV0RRUWdUWVFBUmFhZEZLaTFaYXROS2lkVFU0UkZnY0ppdzZDSXVmQ1krVFJDQzlwVGZyMmtmNmtQdEtYM0pVVWRHS2lneVNRVnpmWURUT0lUTG9UZlJRcFlzcTNhalNiVTdwVnhCSnBUdU5KMGpFazFLbDI1elN6MmpjYVZS''@;'; put 'put ''T28wcHBWS2VVSG1zOFZ2Y3JSSDVkUjlFNjFhekpSUmdwMTJxY0tkV3ZWZjJhWE15UmlrMHU4a2pMSmhGL1V0RldzNUNTTVhJeDN4NTllbFV4d21tczE3V01heVlqYVdRa3EvQTRvM2tDVDZJSjZ4alIwNHhrQTA5akszZWI1UzUzY0hlSFdJTU83dXdrZDlDSGIrdlB0d3ppaW1XcVo0TmUybEdL''@;'; put 'put ''dzZXMGk5bmZMcVVsYWwvS1R0UVdsSkhibWYvdHNseFd5Q095U3RiSU9sa3ZtMlNMYkpYdDhwYnNrZzlrbnh5VXcvS1ZmQ3MveWtualROb1VtWDZtMUF3MTVhYkNqRE1UekdXbXl0U1lhV2FHdWQ3Y2JHYWJCV2FSdWNjc013K2FCdk9vV1czV21xZE1pOWxzV3MwMnM4UHNOTHZOSHRObTJrMkhP''@;'; put 'put ''V0tPbTU4c2JHQjcyR0k3d0piWllYYVVIV012dEJQdDViYmFYbWxyN1hYMkJudUx2Y1BXMmIvYmUrMTk5cC8yWDdiUi9zYythWnZ0QnZ1Q2ZjVm03UnYySGZ1ZTNXc1AyRVAyQzN2TS9tQi9kc1lWdUY2dXhBMTBROXh3TjlxTmRSZTVQN2hLTjhWTmRkUGRUSGVUdTgzTmN3dmQzVzZKVys1V3VF''@;'; put 'put ''ZmNLcmZHclhQcjNTYTN4VzExMjkxYmJwZjd3TzF6QjkxaDk1WDcxdjNvVG5ybjA3N0k5L09sZnFndjl4VituSi9nTC9OVnZzWlA4elA4OWY1bVA5c3Y4SXY4UFg2WmY5QTMrRWY5YXIvV1ArVmIvR2JmNnJmNUhYNm4zKzMzK0RiZjdqdjhFWC9jL3hRZ0NJSWVQQjMxWmlONWlYS2xjclZ5WThS''@;'; put 'put ''WXJOeXNubVhLS3hNOFZibENlWkx5M3lJMmc5V3VWYTVTSG1ING1Tcmx5aFhLa3lOR3ZmS3o1dFZUdGx5aVBFbjk3Y29uMUROS3VVbDVwSEpHK2M5Mk52a1o1ZnJ1bVZVL0UyTzErcnN3cGl0dlZsNThobVZXSEx2YTg1VGZWRjdabGVNTXFOMlZhNVZIbU96L1kybzNtYXRzZDR5cHlpM0s5V2VZ''@;'; put 'put ''MmN0cTl2NDN4L25NZHNzakUxeWYySE1uTzFIVEplb3ZWMy9TcnRRY1BxYjJyRVRtNHlnNjJUa1YrYlA4aldwUGptMmRFMnNtcms0Y2RhelBuSjN6UjNPYTFYN1dManFsM3B6R1BsVDcvY2pPMVRUT1dLenRXSHRKZjF6Wk9HL3ZxYjFZYS9TUjZ2eHJuVDlWMzlXdWMvUkV4THJ0NUs5USswU3Vn''@;'; put 'put ''aHRQcXpycGowL1FwSVJtNG9vazdlZlV2algyNjN3OUYyYXcrcHZVSHl0dFpNS3VVczZvSjU5OVhPMjdOYnFyMU42amRuTGw2bkFMK1h6bFpLV1NiNXljTzkzWjM4Q2RaeHFjcC9kUzhONVZ6cXhFdDFQSHJqMmFYVEM2WVFmNEhXOWlLWXpEUmV4aFVlZnV4YjQ5aVQwOTZ0eTk5WTVhckoyN0Qv''@;'; put 'put ''dk9GUGFoR3FJdnJtS2Y2OGRPTjUzZmZXWVFwZHJMQjdQcnpXTFhtcys3MnhDOXZZMW5SMS9EOWRheTgvMUplOS9WN0g2dnNrTytobDI0bFRlNm82alhXK1VxZkNjZWo3TVREMEtMOXRSVzdsZmtIUDF1RmtEQ1dJVkxjQXQ1T2J0ZGh0OTF5aGpiS042OUwrU3VMK2N1cjBRdFI5OVc3ZTVWUHFp''@;'; put 'put ''c1p3YTdFNnlWd0YzSzY1VS8xcXoxVlR1RFAvSTl0K0YyU1VtQkZFcGFNdEpUZW5YZDBhOTlsNTkwQUFBQkFBQUFDZ0FjQUI0QUFVUkdURlFBQ0FBRUFBQUFBUC8vQUFBQUFBQUFlTnBqWUdaeVovekN3TXJBd3RURkZNSEF3T0FOb1JuakdFUVl6WUI4QmpZR09HQm5RQUtoM3VGK0RBNE1DcXAv''@;'; put 'put ''bUtYL0d6TXdNSjlrMUZGZ1lKZ01rbU5pWlZvUHBCUVltQUR3YlFxMUFBQjQycldUV1ZDT1VSekdmLyszZlJFcUZQWDI5bW5UUnFJVVJmYWx5TDZVck5teXI5a2E2eEJEUlZMSW5pU2pHUk5UVTdZYjdyZzFZNHkrejVWYjdnd2R4MWRNTTh5NGNtYmVjOTV6enB6bm5IbWUzeDl3b2VzTFFYU1BW''@;'; put 'put ''T3FaT09ldVVxekhKWXpEallHVWNJczY3dEpJRTgyMDBDWWVFaUNESkV3R1M1d2tTYXFrUzZaTWxSekprMElwa2hJajFYaGx2SGVKTW8rYnJlWVQ4NHZsYmdWYXdWYW9aYk9pckdGV3VuWGY1aC81VFNsOWg4V05IdHFQYWVPWitFcC9NY1Vtc1pJb0taSW1HWklsMlpJckJiSkJObXZ0bDhaYnJY''@;'; put 'put ''M0liREhiemMrV1lRVllRVmFJVTN1b2xmWkxXMzFVTDlSejlWUzFxMWIxU0RXcmg2cEpOYW9HVmEvcTFEVlZxMnBVdGFwU2xhcENsYWt6cWxTZDZIelRtZFdaOVAyVG85eFI0TWgzeE5nSDJ2M3NQbll2dTV2ZDZQamE4Ym5qOEllUWQ4bGRYdjJuNW01NE81UGdqMXNFby92UCtJZEcxMGtYWEhW''@;'; put 'put ''MjduamdpUmZlK09CTEwvem9UUi82NGs4QWdmU2pQd01JSWxoblBFaW5Ib3BKbUU0a0hCdURpU0NTS0tLSllRaXh4QkZQQW9rTVpSaEpEQ2VaRVl3a2hWUkdrVVk2b3hsREJwbU0xY3hrTVo0SlRHUVNrNW5DVktZeG5SbGtrOE5NWnBITGJPWXdsM25NWndFTFdjUmlUVm9lK1N5bGdHVXNaNFYr''@;'; put 'put ''L3c1MnNwdGlEbkdjMDVSVFJnWG5PVWNsVlZSemtSb3VjWVhMMUhLVjY5elVGUDFrOURZTm1xVjdtcWFmYlJXcnRSM1JiT0JzdHpmcldhUDdYWno0N1ZiaFh4eThRRDJiV2RsalpTMmJKRWFQVzlqT01ldzRKRnp6R1NsUnVnSWl1S04zSHFCcGxnUmREL0hkWjRxY1ljU3lqYjFzWlI5N09NQkJY''@;'; put 'put ''VXY3T2NKUnZYV1lVazV4a3RlNm1ucXhUcnpFVzN6WUtINmFmODhma00ycTZIamFZMkRBQXBLQk1Jd2hqR2s5QXdQVGJpWldCb2IvSWN6Uy80Mlpkdi8vd25TSlNmRC9sLzkrSUQ0QTJzOE5zbmphclZacGQ5TkdGSlc4WlNNYldXaFJTOGRNbktiUnlLUVVnZ0VEUVlydFFybzRXeXRCYWFVNFNm''@;'; put 'put ''Y0Z1dEY5WC9DdmVYTGFjK2czZmxydkc5a21nWVNlOXRRZjlPN011ek52bTNsak1wUWdZOTJ2QkVJczNUV0dscGNvdDNyTnAxTVd6UVRodG1pdSs1UXFSSC8xR3IxR295RTNySHllaklBTVR5NjJETlB3UXRjaFU1RUl0eDFLS2JFcDZGNmRNdFBYV2pObXYxZHBWQ2hYOGZPVUxnUXIxLzI4ekZ0''@;'; put 'put ''TlgxQzlqcW1Gd0JKVVlsUUtBaEVuN0dpVFpqRFZIZ21hWS8wY00rL1ZmUUZ2bXBHZy9yb2ZZa2F3cnAvUlBLUDUwQXFESUxESXRJTkFrbEgzdDRMQW9iUVMyQ2RUaU9CWjFxdjdsSlV1NWFTTE9BSXlRNGN5U3NJdnNSbG5OMXpCR3ZiWVNqemdMMGlWQnFWbjgxQjZvaW1hTUJEUFpRc0ljdGtQ''@;'; put 'put ''NjFhMEV2Z3l5QWVDRmxaOTZDd09yVzNmb2F5aUhzOXVHYWtrVXprTXBTdVJjZWxHbE5yWUpyTUJBNVNkZGFoSENYWjF3R3ZjelJnYmduZWdoVEJnU3Jpb1hlMVZyWjRCdzZ1NHMvbHU3dnZVM2xyMEo3dVlObHp3RUhjb0trMFpjVjEwdmd5TGMwckNncE1kTDFFZEdTMG1KZ1lPV0U1VFdHVlk5''@;'; put 'put ''MFBidmVpUTBnRzFCdnJUS0xZbDg4RnMzcUZCRmFkU0ZkcU1GaDBhVWlBS1FZZThxN3djUUxvQkRmSm9CYU5CakJ3YXhqWWpPaVVDR1dqQUxnMTVvV2lHZ29hUU5JZEcxTkthSDJjMkY0TXBHdHlTdHgwYVZVdkwvdEpxTW1ubE1UK201dytyMkJqMjF2MTRlQmdGakZ3YXR2bk00aVM3OFNIK0RP''@;'; put 'put ''SkQ1aVFxa1M3VS9aaVRoMmpkSnVyTFptZnpFc3M2MkVyMHZBUlhnV2NDUkZLRC96WE03aTNWQVFXTURXTk1JbHNlR1JkYnBtbnFXbzBwSXpaU2xUV2ZocVVyS2pTQXc5Y1B3NkVyUXBqL2MzVFVOSVlNMTIyRzhlR2NUWGRzNnpqU05JN1l4bXlISmxSc3NweEVubGtlVVhHYTVXTXF6ckI4WE1W''@;'; put 'put ''WmxrZFZuR05wcWJpSDVSTXE3bVg1cElyN1dENmpaQ2Z2bEF1UllTbUtaTjdnQytMUTdDN2xaRmQ1TTFIYXU1VFRYZVd0UkhsTUdUUm8vNGY0bmtKOHgrQ1hRSHdzODRpUDVYSEV4MUlpUHBaVGlJOWxBZkd4bkVaOExKOUdmQ3huRUI5THBVUlpIMU5Id2V4b0tEeDJ3ZE9seE5WVGZGYUxpaHli''@;'; put 'put ''SE56Q0U3Z0FOWEZBRldWVWt0d1JIOG13T1BxNWJtbk5TVG94RzJmTmlZcVBSc1lCUHJzN013K3JUeXB4V3Z2N0hIaG01V0VqdUozN0d1ZDVZL0lQZzMrTEYyVXBQbWxPY0hDbmtBQjR2TC9EdUJWUnlhSFRxbmlrN05EOFAxRnhnaHVnbjBGTmpNbUNLSW9hMzN6azhrcXpXWk0xdEFvZlR3UTZL''@;'; put 'put ''OXJCdkdsT2pDT2xKYlNvU1JvQkxZT3VXZEEwNnZQc3JXWlJDbEZ1WXIremV5bWltT3hGR2N5QUtTamtwckd3N08ra1JGcFlPNm5wOU5IQTVVYmFpNTRzTlZ0V2NZVzlCKzlqeU0wc2VUZFNYcmdwS2UxRm0xQ252TWdDRHJtUlBiZ21nbHRvNzdLS1lrcFlxQ0krQ0cwRisrMWpSQ1l0TTRNdWdT''@;'; put 'put ''SmtjYkt5RCsyS0hUbWlnbllDMzNyU0t1L2JRdTNQZGZJZ01KdWRidWRCbHBHaTgxMFY5V3A5VmRiWUtGZXYzRTBmQjlQT3NMSG1GMFVaVHk1NzM1NFU3RmVuQkxrQ1JsZDJ2KzVKOGZZNzF1MUtTVDdiRjNaNTRuVktGZkpmZ0FkRDdwVDNJaHBGa2JOWXBSSFByMXQ0TWtVNUtNWkZjeHdYOU5J''@;'; put 'put ''ZTdZcFYzNk5kMkhmdG8xWmNWbFN5SDJYUVZYVFdic0kzUGw4STZrQXFDbHFrSWxaNE9tUSttNTJhOExHVXVDeEYzTE5rMTBYMEhUd2hIZUsvT01TMS8rdmNjaFRjb3NvU1hXalhDY2tIYlI4cjZLMGx1NU9IS2tabjdieHNaNklkU1Rmb0dvS2VTQzQ0L2w3Z0xvOFY2UlR1OC9NSHpGL0JkdWI0''@;'; put 'put ''R0owR3Zxcm9ETVFTNTYyQ0JJc3EzdEpPcGw1UWZJUnBDZkJGMVVLekFuZ0p3R1R3c21xWmVxWU9vR2VXbVZNQldHRU9nMVhtTUZoakRvTjF0WU91ZHhub0ZTQlRvMWZWanBuTStVREpYTUE4azlFMTVtbDBuWGthdmNZOGpXNndUUS9nZGJiSjRBMjJ5U0JrbXd3aTVsUUJOcGpEb01FY0Jwdk1Z''@;'; put 'put ''YkNsL1hLQnRyVmZqTjdVZmpGNlMvdkY2RzN0RjZOM3RGK00zdFYrTVhwUCs4WG9mZVQ0WExlQUgrZ1JYUVQ4TUlHWEFEL2lwT3ZSQWtZMzhZeTJPYmNTeUp5UE5jZHNjejdCNHZQZFhUL1ZJNzNpc3dUeWlzOFR5UFRiMktkTitDS0JUUGd5Z1V6NEN0eHlkNyt2OVVqVHYwa2cwNzlOSU5PL3c4''@;'; put 'put ''bzI0ZnNFTXVHSEJETGhSM0F2ZFBmN1NZODAvZWNFTXYyWEJETDlWNnhzRTM1TElCTitUeUFUN3FpZHZreXE4MmZWdGFsM2k5SlQ5ZHVkZDlqNUcyVXp1aXdBQUFBQkFBSC8vd0FQZU5xMWZRbDRaRldaNkRublZ0V3RMYW5VbnFTeTFaNmxrdHBTcWV5cDdFdGw2WFJuN2U0a3ZTWHBwcUZwNklW''@;'; put 'put ''RlFCQWJCa1ZSbkhFYnhVRVFCMWthQkZxVVpSeEdCWjQ5TGlNT09vN29tM0ZHSGJmbkcwWjBKRGZ2UCtmY1czV3pOVGpmOTZDVFZPNzl6L2FmZnovL2Y0S01hR0U5aVQ4dWVKQ0FMTWlKU3BBZjFhQVVha0VkYUFpVlpGdzluZTJ0NmFaa2JUaFFXVnJzc2hZWk5BUVpZM1ZhcjlVck9wTk92ek9a''@;'; put 'put ''OHFlU0taSDlGT0dqOHBRK296L3BHM2lTVWo3TE1LeEJPcG5DSDVmK0RuZjgzKzZlQjNwNkhuaWd4K2YxOXZUMEhPbnhubnZnaU05N3hQdkFBdzk0anh3NU56RHd3TXBBMWQ4TFArdjFCcjN3NzVhanZvR0J3RUg0Tk9CdDcvRWR1YjdaSGQxMTFWV1BYSFhWcnVpcU4rcUZmd2dSTkxyK092b1dP''@;'; put 'put ''Yy9XRnN6NEVNWm9BU0ZVbUVXRUNFc2FMQWh1WVZTajBWZzBoVUZya1ZaMDE5bVRndDhWU2pVMkpSTXVwMFBubnpsVDBxY05oOHM4b1pDSG5KZDhQNnd1S3cySFM4dXFFVnBmUjMzNFhud0RlYkRJaDR3SUZRbncvU1ZFeHczQXR4dGhYQStxUk1PWkFZdU9JSzFBTUVGNDJZUU5oc0pzWVZHQklJ''@;'; put 'put ''cjZCYk9SNlBYV3JBWVRZaUdqQ0ZWV2xKZEJLMDlwU2JFYnhyZGJjLytKNVhWWVRJcCswWjltWCtrayswcUs3RXVrTC9HYnNTdnRKeUs3SXUrTlRFUXV0eCtQWFdHL0FqNjlGNTZjc1AzTmUyUHZ4UmVleno0Qy8yV2Z6ejRLLzJXZlI0Q1owUG9GMGtiZVFCVW9pQ0tvUGxNYnFmTjVQYVhGYnFm''@;'; put 'put ''TlpOU0xoWWhvQVcxa0JKYUZDVDRJNjNPajBVcXJWUUJzQlhTd3g2bFFPTzF5cHhwd3FyRVRwMkd2WFc0eEZIWldZQ2VDeDRYWWFXdEtOY0lEMG5ibXNxbDNIZWpJN2oxeUpMbXZkZXJLeGRiKzhSTlhTWmRIRTNWTnY4NjBaSzQ0S1daNml2WmxoMncvS3AzZWxaeHBGanM2emJ0SE82My82Sm1i''@;'; put 'put ''d3U0YTZ3dUdGcjgwMzFaZDNXRDlKc3hEaXlMcnZ5TnI1Q25ZWFR0Z09vcmEwUC9LUGxhOGF5NVRaOEphSThZNkxWNUZPcVEzNlBSSGtVYURsZ2ltdTE4QWV5QXNtVVVpQ0JaaDFKTjlMQXhOb3Bkc2dnQ1V0Uk9YekZnVTNlS29KNVBjcGdVaEFFdWJvZTFiemM5blFyRllWWlhEZ1ZDc0xkYmEx''@;'; put 'put ''RmdWcldxb0Rqa3FIUldseFhhYnRRZ1dVeGdxRkoxMU5vN1JaQUl3NlNqRWZwekVmb1pLdjAvbmRMaVNhTlA3VHB4Lzk2bVJtdHFSV0F5K1o2UDR2YnVrOE1UcFJESVVqaWREZU85SUxUemtyNnJqOUdFaWpQYzFqRWZqdXhvYUptTHhpWG84dFRhSi83SWpHdTNzaURWMFN2dnFKK0pSK2c0ZzZy''@;'; put 'put ''dnA0ODZHYUNlaXRCTmNmNTNjUUw2QXZLZ2VOYUhPVEZzOEdxNnFLUGVVbUloUklGNk1CREpDYVJzdkFldTVzbHBnT0lZWm9LQ0dCcCt2b2FraDVhdjNSU0orbmVpcTA0YkNPcitQTHFvcHJWNGF2SE0zcGQwNjBZM28ydHg4bmJZMGdOT2xrcUF2c2U5MDEzSkxkcUs4Tkxxbk1UWlJQekU5MUZk''@;'; put 'put ''WE9SR05uWlQrTWxsYzJ0TlU3M2NNWE5HeE9wbzIraHJuWW5QdHZRZjhOZjJoaG13a2txMXZIdzNzR2VpYURDejNuU0lqMFhCcDJsc2FEd2NTYTY5MVh6MmNtbXpLSUlRcG42TW55WVBJak95WklpcEYyUGJpVVdlQXdNUnRlWGtoK3FldFhyZmJhN1hFOEg4c2U5MCtuOXU3UEl4b0g2M3JNN2lQ''@;'; put 'put ''UElzS2tPNkpBaTJPMVRFeGszWURnOENpeEFldnZISzFjV3JYNUo3RzJSL2Q4cTdYOWpSTlAzWHExRk5UYWRhMkZ0bzJLbTFGYU11UkVFNXovTlR1bVlSMnE5RERxZW1ucmo3MTVFelRudGZlZGN1UDlyQzJLWHdDSHlEUG80T29PWlBhT3pIVVZGM2gxdWxoRVNNQ3hocU10Qml0NnJCV1M1YUFl''@;'; put 'put ''RjFhRUVJQWVtRFA3czcyV0lQUFd5ZFNTb1NacHB2U09oSCs5L3ZDL0RmZzlRWWNEdkhma2dtM0MvNW52M0ZVQUN4QU5QRlg3TmRDREJ0WmdmbHZ0SnN3dEhlNW1aaDkzbXJVRWJ1ajJxclRXUTBhYzNHRHdXMDJ1dzBOeFdhTnNVaWp0MVk3N0VSbnRKb0xLSnpSWmdnNUdXQUJBN1NXYXFLT0Fn''@;'; put 'put ''Ym9EQmxzUmdwWmdFOVlUS1VKbjduQTdqTUtGdEZnRVFzdEdyMVdxOWRZQ3ZVV3ZWaWtNZnJzQldaZm90Ums0WkJpa2VnekF5aThaYUNpQVZ2TkhOVHNnNWNjbHVHMEd5MFRCMmxHSmhUSytKRkd3SnBwb0cyUUZGaEF5OEQrZUFFQmFzZVk0QzdTaWFWMTJFODFZSXBxd2lSeFBMdi9tV2YyUDR1''@;'; put 'put ''OXp6NDcvL3p6dEwrQjlXdlF0OUYxcUJDNU04REthRkNoTVdDVWdJM1NHSENBVDBWbXUyb0xQS0Z3bVRjY2poMkx4RUU5aFZPMS91RTA3YXNSL1FTMzQwN2d6dUtNRTlHT3B1bWNZVVlJWmxSRU83TjduZDVHckpkK2p6djNzdlgwZ3A1OEVjWTNVWTFQbjREVXc5aU5LVEdZa0RFZ0FCR290ZUps''@;'; put 'put ''c2tZMDU3UWhYdi9WK2dWOGdmd1V4clZtQ21tbnQ4TFlwL21BVkhUaGtjdWwreTRuUDMyVGltNVFKazBnTzI0aHo0QzRxMFNSVEEwUUgxc3hseElZbERPYlFGRVJLTmJLb29waUY1T0xvRy9xTkp2bEhrazFObUMvanpKU0JZd2szcGJOM2pZOWZTNmJQVGVkbm9uRlp0THAyWGg4Tm0zZTkrblYx''@;'; put 'put ''WHYzN2J0M2RmWFQreFo2cngwZHZhYTM5NXJSMFd0N0dRNWczYmdjZExZT2VUTEZzSlVDNEd1RVMzR01MWGpVYW1lb0U4UHBwTlgvaFd0cW45cTlRdEtqdys5WW0wU3NmUlFXVlF6cktVYTFtYkRKQ01zQmFpQmtoS0dUaVQ5cWRDd2dwbk9zN2tCSUl4YlhkV0ZGYW92aEpsbmNXVEJzVC9UTnZy''@;'; put 'put ''YlJwcWFaVU4rQmoyZU9kWXpNM1l1SEpmZWViN1VzUnB1Nkd4UHQ1eHFYT3ZxdkhmcXpSVGEySDNCWkFXUFhvSzVNZTBreGpPUERtTURvTUFXbXVCSEJ5ekN5WmdtSUV5WUN1bk9KOHJ5YnNYc05xZzRFdklHZ0tKYkFMbE9oa2t4UVBRT1dtanZSdEhsNm9vejJmemhYMngwNDFOcXphMm84bSsy''@;'; put 'put ''ZDNOV2VuQXAxTFh5NC8zajdTR3ZIVE9kVncrWk1xcmN1a1dsTXBmRmUzSnlNZFVick82K0xUVGUxNzdZVjd1bHQzWmZrZE9DSGIxbkF1eEdrRzFnZlpqQXk4SWhPQzJ2QUNHek5GVUFkVTZrV3phakpaQ293RlFCUDJZcm9YSVBlTUU1YXFiWHBUMWtGZkt2MGtBbVBYWHY0OFBKdjc1bkVYNWFH''@;'; put 'put ''NXU5NUEvZEx6OERxNDRDZkdoaWpETFZuV213Zzlnck1CR3ZBbmhsQjhCMXBRSUVMQWxuZzJuc2pjc0FjODFudEFUOUREaGc2U1JrallwaHlrZGlVSThPL09OSTF0OUt6WjAvdlpNK2dFWDlXK3FLdVo2enphRWYzcVJIejVVUDd4dHZhaGhOVmVIWHhZaVI1cUtmdldFdU9CN3BnM3p5b0d2V0Q3''@;'; put 'put ''UU5ydHdMUkJJdUpWaU9NNkVDYWFMU0NaaFhsTktnSTgxSUVRMWtaeks2NkxPejNRdnZTUURDa0I0c015Yk9od29MeWlGdmtyQUhDT0duTDBScGxrNDhlNjh4Y1BYakg3ZGx6ZTY2Y2J3ejBSeHFuRXJqcVVJdTdOempUM1RKVldEamVqVC9mZUxDbis3TDI1ejZ4K3RrREUrTmViLzkxMmJxWTlO''@;'; put 'put ''SHFibi9IU0VkaWJKYlNIZ2dkNG1aOFU1a3BBMzJDR2RkUWVZT1puUTEyTFZnMTFGckUzcFRYQ1lMZ3I2U1A0QjlMUHpwTkpoZEgxejVKN1lnbzRDSEY4QkFHMzZNdjArM1FFWkNxSTZJS0E3SjAwQU1HTU93UGt3N1YxUlFKMWFucXhtaDlXYmdzNUt1aXFJZ1lxTGphenBDUWthT3lvdHowTStp''@;'; put 'put ''aFFrSnRpWitmN1p2c2J1L3J2YktyKzhxZXdaYnVYZjFuaDFKemsrM3R1MlpUdlh0and3SC9jSHh2cnprMjI5cXh6MVc4cTdsNUtsSS9sVzdkNVhMdmEyK2RpK0tQdHNmcU85b2I0bTJDOUpXdWhLK3BBdU9LSmwraWkrNTFHdGFZeWU5MVJSSHNzUUc0VkUrMUJxeFVDenlxSmF0QTZRSXNUeEJj''@;'; put 'put ''V1pVU1VQYWFMekFZQ0xLOWR2R3Q1aHdMMnBiK0lpL1lScGZPWmFJcmliKzRaWmN6YlBlNzJEYlgweDBuejJ6Y1piN3owa2ZvTnJQOXBtdGdlb0xvUUNlNHFjeW1NcHJOME1vZEtpMTNxTXhtaE14dXM4dFd4SlNIVHJZZ0ZPVkJ0bEVrWmZKUGZJdWlVYVJUeWlmd3M1aCtKRHJ3czBEL1drVmtC''@;'; put 'put ''ZW44UG1SNEhPT244ZnNlUzlaeE9wd2hoTXdESGVxZTBCR3drZXlwb0xNQU85UDQ2OUw3OENrY0gvdkJ6RU1QelRLKzYwWlBFQWYrQlZDZWlIeVpTa3F2MURkRDRCQ1FhVmxNRTRIcTd5SXFwU21uMC8rNzhYZWtldmIxaS9uYjVtSE1FUmpUcVl3cHdKanBlcHpTT3JVaitCU00rWFVwOWNoREQ4''@;'; put 'put ''MzhZT3dIZEV6Myt1djRPN0QvVHJDVzA1bEd1MEZQeFJ1bTRsbUFnVzlTNlFrcXFMVllvM0ZyUmwwdWw5ZFZGU3oyQjNWMElqSUg1NlF4TUxaemc3LzZ4TzZqZmMwekE1Mkx0M2NkYW9yUHBRODRGTXplcXV1TzFIVk5kVjRWbjJtTVRMYWFUL3dnNzhyUytVWFc3eFQ2eVgyQW13bjBvNHk1eWth''@;'; put 'put ''TWhzNE9Jb0tRekQ3bUJ3Y3BCWWFPUWRBWWJqSmpveFliWjVFV0pMV294VWVSYU1KNlVYOFk2WFNLMzBQOUsxaUcxVUM5cXhwb25GUWF3MklOUnNHdytwYWQ2TUREYXNtMVFrZ25JTjNxenEzMWVuRVdnVXU5eExxWkFEK3JwS2NIb1o2Sm52SGhRVmhVSmhRSzIwT0JVS2hBTE50aVF2aENZUlh2''@;'; put 'put ''SkZ6dXRGdmtFaUZCTWE2eUxoTE1ZdmNyb2xUbXI5N0hWcS8rOHNubFI1YlRNOUZvaDdGaVZ6UTJXdGR6V1d1OHoyNmVMdEs0RGQ3eThyUi8zeWYyTHorNnNuRFBZc2R5eXQ1eXN0ZmVGMHpFYWdkcm02T25WeDVldnZMTFZ4MjRiM0hpeW5Ra0hLcVA3R3JzUGRWWDUrL1NUYmpQdEpncXFtcW11''@;'; put 'put ''NlkvT0xQNjZQTCtUK3d2cnlvTGVMRXh0aWNSYll4TzFNZmIyZjZWd3JmdmdSd1dRWlBXWmFvTldFUHdDRkFSa0pVR3RDaFZiV0R3VTB0R3I5Y2I5VVp1bWhhREZoV1pheGsyWVJLUlB0NStFb2ZwdjhOM3duL2svTnJrVC9HQTlDWEErNndjMHloQ0pjaUhPakt0SUlsaEJCMXdqbFpEdE5TOGtJ''@;'; put 'put ''TXJJdVlXTUIzTFUycXplaXRMZlI1ZnNjdGFZaXVKVk9tWkFicFJJSHN4MDZwMTJHbFhQc3ppZ1piNVJEemUwZDEwb0VONkJOYzM5dlEwdnZScTYvQnc2NnZrZkdRODNqanNxZGpiMGpRZHd4OU0xOVUxZjFWNnFTdVI2UG9YWmcvRlFOYmVEYnhXamhveWRhVWxKcU9HR2hXS1BIVnRDUC9BZzNK''@;'; put 'put ''VUZncUdhUGhIa3ljQmNldXU0NmI3RHgyNmYybm8xc1JnWUxHeDkweC8vNW5leHNYQVlPTFdJZlBCKzVlVzdqdllrdXdMUjRhdUhSaTRiaWdTN2t1MndMNVF2SDJaMlRkTzVpM2swTVFjWXhsTlpwUERabkthbmFFcUxVV1BRcGgxT0MwVFlCMjJ6djdxeENNSER6NXk0bGYvT1hGOWYvODd4dDlQ''@;'; put 'put ''enM5OTR2RGhUODd0ejV3YUhyNDZJeG5ZMnNHQUlYMHduZ2xGTXhGRnNsRjdSck1BdXFWUWJZVXk2OTdFdzB0ZzN0aWRzcHl6ZXAyUDQ4dWxQOGNma2tUOEJ6TDVsY1Z2TDVMemkyaEQvd1pVa3drcC9WTnB4WHBWVkQ2OE1DQUQ3Wm5KTGRhclgrbDNoWGI2MHFMMFhkNHAzNi83WWIrOEtKVkpn''@;'; put 'put ''TXVBaEVwQ05GcG1QR3MxaUJFWDkwK3BKY2pFSkdoL08yeWFuN3RYWHV0Ry90MjBlU2svL2pOY0Z2dUw0YVhQSERyMG1hV1JQNDhOK2s4MDlkRU43SXZzOHorTnI1WitIVy9qVzlpYTZBdlY4eTJzOEh3Z3YrWTdHVTdEbVlCc01pNkRqVXJYUytOREZyUVpsNWl1RnI2UzhKM2N1U3pkc2J5TXI2''@;'; put 'put ''SHNoS1BTdDhsNTZUWHNnMTVvcThkWmZKTEdGVlMrQm5mVHdORVlYVjZtclFEV0NmcmpHNHovZ0lxWWFjOG9taG1zWkVrQVluSXp0QmNoaXoyb2dlWjVVeDVtUWJuc3NldTlnL1pkZGMyRHl5M0wzZVpNb3I4NnVhY2J0RlM4Ny9KMnZzNFo2T3BEYkoxVm1YS0RYa3VZaHNJc0FpYndHS1hkWnVN''@;'; put 'put ''Nk1XbkZTUVAyZzJ2b24xbkdmYmRJLzQ3cjMvbGZSMkM2MHNmeGl2UjE2VGJjZVB4bDNpOElZdkNYenlNdHRSSFpwR2x2aUc0K1I1MFdhYTFXT3VrZzBFblNTaHhTdzhvaTBOemFlZFllZUFnSUlEY3ZjWnQ1T2F6S3ZEemdGUGl0SnRpQjJlWGYvbmFaZnNHY3V2RGZBdkovVG45S2JybFA4akNq''@;'; put 'put ''NDRxTVJ5UmtTNCsyWEk4WXB1Um4vZUgzTGk5TForaVd2RUVNYTVQdzlRYVZ2WlIrZi8vL3c1ZmxBZ2VvOHVCOVM3Mm4rL3RQOTNLcEk0c2JlTHAwLzhHRm9lc0dCcTRkNGpUTGRBR2wxK093TmpQSUhQQkdZUmJBcGdLbW9ZbDhBQnlXV0ZqZ3NCVTRDNTNXVUpXT0JyKzlPYm5qOUNzaTJackYz''@;'; put 'put ''aUVZOS9UUXM4dlludDIzTC9zb09kK3ltc21zdHZ3R2p3MjB0dzlJYjZweDRLQTJmQ1pCQTloRUsxQkhScUJod0x3UG8xRkZBWjFPWjlnWnFnK0ZxZkJGTUFkeGd5S21NZVIwT08xdTJvQVY4dnVRZjdoMUxIcFYrNUtDSHVsWFBZZGFsK3R6K01FVlZ6UjA5ZldHYW5KNGt2NlFtTzZiNjU5UUlT''@;'; put 'put ''cVBwMEtZQytoTVFnTmlpa3U0akxSYVdhVEpMQTVPc3RWcXAvS0d6dFFmQnIvVHlqQ21UY3E0SXNjUFRwdy8vZGYzTERPVVNmMlBNblRoVzA0NS8vQ2IzekNzdllzaWpORjBhUDIvU0J0NUZyd0IwRkV1Si9WSENWYWhpUVpZVlRxcUdvV0RFVDlGVTk0TERUZVFiUVNlVzZhbGo1M3FXTDZ4YjNS''@;'; put 'put ''aVlmeHdjOGNWZmFQWHAxb2p5NDNCZGw5b3NPdlVtZGFySmt3bnNnYzZJZzF4cDYxaHRLMWxmeW9SSGEyT2xNYzhsZFVlaTJkdXBtMS9pczZ6Qm5BMHlld0tIaGZKdVhZOGtDR2J5TmdQdnAwZnVNVDR2MG4xdnl5RGE3Y284KzR1b0l0N29EM1l2WmtLT1ppT3NYcHBUdVJ3QkJ5SytxWENpdnN6''@;'; put 'put ''aXR6Q3Z0dXp5L0g1NXVhNStNcm9iZFBtc1R0bThmdWwweDBIbXNBMHdIZEtWOC9lTWNibGpHSUQ2ZWhZV3VhTGdxU1VoU1NYTkdDcWMwbGpvQkYxRHliZms3NS9FdjdSL1FHR1ByLzJIVkxQK2dLdlFGUENlQWo2TWxKWkR3S0NudUV3MWMwV0R4TENWcVNsbXBNS0hmZ24rRTNZWDNueXdZZFBQ''@;'; put 'put ''dnpneVg5WmZ1b0xWRks4VHN6c2E1TDQxMzZJbEw3SnA1ZzhBM2xvMEVIWGhJWmpxWTJHT2EzWmJEWXJ4U3ZNRXJvMHNON3hKN0R3anE5OTdUb3NTR3ZYZiszRjYvQ2M5TmRZbFA2QVorSFRIN0RJK3k2QXZqOEdmZXRSZWFaVVIza3ZKOWhrYjl6R3ptN2tQbUhMcXFSZlhmLzMzem9qL2VZb0xz''@;'; put 'put ''Q2ZscDdIUGRLaTlKKzByeWJvYTdlaTZ5ays4eUd0bkgrZkMyblpyR3pHYWU3bWc4SnZ3dStUM2tHS3BGUDRnMnYvTmtISTRzU2F4UFg5K1BxN2NULzU3dHYwdnBKQVdQQTEvc1puUHZNRytlN0FXaHN3RUY3Ly9mb0YvTGM3eEJzRnNHZjFsK01GSG03RUtBcmpoWFBqS2ZFd2FvclIyQ2dkRCtY''@;'; put 'put ''SGM0T3dUOEZYOUlFSGZ2LzdKdkxWZ1RmUDArNFQrSlA0QzV5Mkh0Y2Q2Y3U0UUtxekNDR01US09scCtVb3grTTYxR2RQMnYxaDBmL3Q0VStPbnprekJ0cm4xOS84SnAyenRINGwyYjMrTkF4WHhmcllJVDVMdXhBQmdZUk1yVDA4Tk16M3RZdGtzSnU4QW0zZHJLMFpXbEpwZjlvR1BpQWZOZTMy''@;'; put 'put ''ZHgyNGRvaDgyZkhuM0tlckI1dmhEOFFLZkJGQ04yWWN4VmpRdUVFUldNRnlyeWpYQ2pxdEJudzdCN2huVlFDczFSSHRLdk05cVFGZmt0Vmo2b3JKOU9nQnUyY3JDT1VxQnFlWVpQTVpwOGVEa0Nma0NYb3JZZGlTUU5Cdk53QlNrY3NKV0ZVSHBuS09yQTNzTStYY0N0OSs5Y0d5cGZqVThmUlN5''@;'; put 'put ''OGp1enNIT3FjRFIvYlo1Yy9kb2FxUTdRYXhuRDBrdkRvWWplN09KaWJxeW9wYXh1dUZHS1o2czczYzAxZFRFK1pySFFONU1neDZ5Z1pmeTdBV0xFVFFRbGxkWkRzUlZsTTFGV0Vya2NCcGRJdWdpOEZTOUFPVGRERVJOc2cyQk45bWw5U3FIZlRzREFvenF0V0x1YjRDWkIwL1ZZYmNqWlBmWnZa''@;'; put 'put ''NFNtRGJvbUUyaHZEQmxBS3NTd1ZQYkI1KzdvclB6aXQ2MnBZcERoeW9YMjl3ak5UVWowWWJobXByaEJtSUZGMkg4aHY1VWZDOTVSdnB0TENXMVJLZFRxYWxvZENxVm1vNXltb29BZlVoQUgrV29NUk0zQWg1S1REREpVbUJ5SWVjdGxlenNMYmt1NlMyOWZ0Tkk5c2JocGtPaFhuZDNvR0VpR3Ay''@;'; put 'put ''SUJucUtlOE9IbTgwak53NE4zVEJTRytvc3JVaE14eFBUaVVwUFJ6akM5NC9hRWMyNS9iTUs2djJqaUdSN3c1d0I5ZjVaOHZ1M0dZZ1JxY2pDaHB4SWxmMmpnSVdYQkdUN0o3K2wwTXg0MmdpemRmOXNJYitWN2grV0NUNlBKQ3ZadEgraytWREZVbHN2MzhURnlxdlp6a1haTHBKbjF2cjN4bFA5''@;'; put 'put ''TjR5UHY2TS9GY09XdGJzMjd4K04yYnhPd3JCL0x0aVVUS2FEMEkxamg2NWd3eEJCUTVaek01WG5MeE9kR3l4Z2Q3bTdyTFFFbWpyQmo2THpEZkJ0VXh0ZlhqcEhuZWlGS2VPRmFYZW43NXJtb2V1SCtzOE9qcDlzazQ0WjUzdTY1czI0eVRDYUdhMHF6Z1FpQXplTWo3NWpJUHVlL1QyNzhSWFpy''@;'; put 'put ''cTRzcFRFdmZGc2szNEpoOTJhTVJWaW50V0trb3pFbHVsbGxTS2ZUTG9HbFZjeUNFMmhCZytWb0lpZ3FUNllVSEFNZFNKM1ZyUy9uTThhZ241MnZpYUtINndnL2xkczhGTWJwVWVmODF2WFhIeHdmSDIwdmEzSUc5T1ZGcmtxaW5aSW04T05UblowVERtdVAzdVQzVUR4RzE2ZElJK0N4RXRXaGF6''@;'; put 'put ''T1dpaUtpMCtaanM3S0lCRGtIYWtOSFZxbGh1Q1JxaU16ekRLbDJKaUp6SUZROHdrd3BJTm9FQmlLeXFncWhxcnFxMmxBQVJxd01CWU1CS2lLeFZlWjI3clYxNEkzRWt5S3FzMy9TMkh2TmFOZXBVTGhzTnJwbnFYS3h0ZmQ0UjhmeDN0YWxDcURIL3Y2NXVYNmlsUkk5cTYyaHloRlB4V2h2dGo3''@;'; put 'put ''ZWRYSnc4R1JuTXJKSHVtYnZ3TUQ4L01BQVAvdWpockNWeFNWUFBtVmpKaFBmR2pkaWJBUW1NWXRGbGloV3NNdzlidTdzYjMwTmIvSVBXYlJEZmdPTVVzQ3RQYXZENzZCaEFTcmhZTmZrUUpwVkZuTDQ5dm40d2Q3R1VFLzQwS0hpZWRpVzVMNVc2UXU0dVhYWTIreVYvZ2FrMlZxMUxPczc0UHVU''@;'; put 'put ''NUIvQWpyS2dBVDV0Vnk0b1hVd3B4U3JicVo2TUErdzVUQTJOVmRYamVXbzZXQW9MekN4U3JkMFVxUmJCQ2pqZzk1Y1UrLzNGaWNPSHliNUFjYkUvNEM0T3pLejlrWTYvL3RMNnVEeCtLVHFTTVZwQXR4WmlEY2xSdDFZMUYwRmdwS3M1b0FQTWVEU011aEVBQ0lpZFBtMThDVEtGUmRGTHpTVXVw''@;'; put 'put ''eHhIRjdmRTBXVkhnSnJKdXR4RVQ4YUxDa3I4eFJXSHh6cnlFMzd6UDQzNk1hUGZRd0pycjNidVl2cytDQXVnWjRZbXRQUUZBM1BTbEoyM2NnMUk1NFEzN0xtVmF6ejFDOWh0Y0hZWDJLOGIzc3pQWDdCWjdjd2l4TlFZWWlvTVhPbXU3NTc5OUo1RGg5YXV4UjdwMzc0L2RRNjJzd2ZyT1IyaXo4''@;'; put 'put ''RjhCTlRPcDJHaXdRdzVJQ0pQd0tTS2tYalliMG9BYlg3K3lYelFaT2pRSVNvK2tiSk9vUTk0MjAvbFR5bkcyaXFNV0V5Yk1yV0xDaGJ0a2w3VUNWcXROYXVocDdac1dTQjU0SGY2VmdkdmlVNVhrbnM1ejBJMWZ1VHpXKzErdTk5aEFQbWpvbVRkaGc5SkorZGUrRTcrWmpwMnNDUGVQTUMrSFQ3''@;'; put 'put ''c0dJczN6N3B0KzlvVUNtOXRHZXBOU2M4cFA0bDJLRnpmSElzMUl4V2ZXc0cvSHJ0Z05SUE9xSFFOZHVaT2FhazhzcXE1a05IVUZ2N2tUT2hBZHBqOFppYlVpY3FNWlI1czJxMDdmTGg0VHMyRG5RM1M0MFNiRGNjVS9UTUtjOW9VOXloNXk3aUg2OUp4ajlkdnpJTHBNSFRqQ0JnS3pISm9pTzZL''@;'; put 'put ''d2ovWmNCaTVZUWplellEZEVKOU9jQU5Dc2YybXdQYXpNdHZoNkdiYmoycHlIYmd2d1B4NUE0eGl5TTQxUFpNS20yMURGY3pic05NVTlQMlA3RFRwdjhuajg5dlphZFFtbWdLYlNGblhScHNvdjY0U2xXR1NWWFFTczNLc20yeW1EVENYc0Yrc20xWFFuMkMvYU5jbXNDNXZ3TXhML1Z2dFQzRGI4''@;'; put 'put ''VWxZbHduMVhERHBxS2N1cjhyS0ZDYllNdHo4Wk1hQVU2SG92RmxLN1lBTElHV1ltTEUxSlowS0NiKzgzTFBybUhqNE1QN0h0cG5KUHVtZmlQWXdqN204amwrRThZTFUzblZnZ3AzZ0hjT3dJUHh5a1plU3paR1hJQW9FYWdQTTNnMnBRaTlZc1RTNFRxWnhGMExGOHN0bkdxS3pjNUdtNW82bFBj''@;'; put 'put ''ZjJ4QS9YUmNZR3FwUHVoa1R6WVB6RWpMazZPTmdWcktpcXNwYjJkQXhNVjVVTng3eGxqbUtIeFZyWkhodWFvL1lTekhHUmZBanNwV2dtNHNZNkd1WUZzKzVXcWt2SUFqMDBBQ1NBWjNhQW0zTE1Cckw3cUJFVTVPNlZWYzR6QW9sTEQ3Q2EwbmpSMlZUV1BqbytmdkQ2Nnl0ZFJlWDZFcXRqb2hQ''@;'; put 'put ''SHB0Ny8vaW5wVlkvZnBPYzVTSzhEUHJWTXZ0aGhRSktUTHlCYVpJMnBjZ2ZkeWxOWjhPYzlRQzVmUU1YN1dleGZaUVpUUmNWbVpDVVdLbGFhRlNFRHhQSkhFQ2tnWlBDdzlCSVZNbmhDenNraGRVU3I1T1Fva1F6RkJyVGFtTWR0NTZFWDEvRjc3em4rVHd0ZytKekFkMU1GamNFcVJrSTF0Tjhh''@;'; put 'put ''dzdGZU9vWlR2bnpOelZNM24xMStkTjhOTis2REh0K0piNkZmYTMvRU4wczM1Mk5OTnVpYjVZQVpSUTNOSjZHZFl3eDlDMFIxS0dDejJTajFlTU9pM3g1T3V0TkowWTd2ZTkvN1QzejF1WlB2UG5maTJhOCsvenpXcjMzKzgyOUtiOUIrUzlaSFNUMzBhNlhaTUNZOWdTbFRJNEhJWFZQaVBFRG43''@;'; put 'put ''bUhFYVVWRk5vYzZMTmlGQmJhS1Fpd2VyM1dWKzBwODV0TFhMbnZnazZzLzhleHVlZEkxV21SenBZbGVPb28vdW5heEw0UDVXa0I4NHUvQm1EdkVlYXlYanZNa3NFLzZDYjVIZWcwSHBMMGorTkQ4aUhUUFBPdTNlbjB2UGtLK0NGS3JPaE1zWWNZbGFHazg1UE1TbXVNR0lMTXlQMk0wWVhWUi9V''@;'; put 'put ''MURnR2xRUmlsZ3N6Qk5LSFlYRXFlYkh4V0tsTXRFYk41Zmplc2JVeEZjdlRDaGIydDE0bEFvSE1TdWxqYjlQVFVEVGJmRjYzcnE0dWZTQTlYNmJvTzd0dm85RGVtQ3duVERIZFcxeFladUdPZXk5UXZvQ1JZMzJqay9EbXlJeTRhSGxWdzFtbis1RjYreWRRQis5Q3p1UTArcGhud1lEN0l1WnVY''@;'; put 'put ''VGU0UW5hTzQyRVIxMWJ0QnBZWjZCa3FZWkpta1FEeUtRUDhnb1dBOXNUMjFiaXd1bUhncGhaMnViZmhkZEZCV3UxZnQzTFJ1S2E2dnZhRWdYRnFRYjNsTmQ2elowNjZzSDB1Zll3bTVMOTlmb2FlNTVDNjdHdCtGSHJTSXVXRitYZm9rTWp5UDh0UFJMbGczQmM5OW4wTGVZYkxXd1V5czZRYXFR''@;'; put 'put ''bVZIT2NwM3M5THhvby9ITERFdWVhQWkyVGZKQk9YbWc1VXdKbUZCS3ZzQmFQMzVOOFQ4dllJbU1BUzk0S1dZcXlrdEwzQzZIdmFoQVM4ejhmQXBHblpiVDdrSGNsN0ljT3A0MXptUFhORitjYmlyb1RuQS9BK0FqZzJyQlA1eUtUblVjYm0wNTBqSFZzTnZiRzJodEMvVktkL2MwTnZZRWE3V1pQ''@;'; put 'put ''dlBZVlYxZFY0NFY5SFJxcTcyZHRTYnBMMHlSanBzUDJQR0M3V0FiejRGRVpBeHN5VExVbThuQVR0RmtJaVRTWEdRUkQyc3hBYUVxRW5ZY3d2d3ptbFVraXR5NVJ6enBxOHhxRHdaQXMxRGpMdWowcHRJc2UxTWQ3TkNWWTVwNlJzYldmanFVeWJTc1pBYXU4d3dXVE1TYmg1NTdibTZ1b2ZhaHdY''@;'; put 'put ''TjlsN2ZMcDJ5M0RENmtqczI2VUV1bXlZR1JBWStBaXlreXQyUkZod21ZVFdER0xSdFpqUURQZVhNNTdUYWxCcURJUktzQVdIbUZVMGtvaFMvRzhQalJlNzd5bGE4Y2hhOTdXRFFYRHc1bUIwK2NnRy80S0EzcHN2M3FJcFA0YXZJY3k5OUpzQ2hpbUNhdEF2Mnl3UDZTVnFDSXdoUGJaUERRQUtQ''@;'; put 'put ''YSswaW9QaTlXVnJwZFZaWHV4OWpQS2hlWnBEKzlUdnFNL3dSNnJVRkovSC93M3hYNWNKMFdGUW00RHIwcXh6WEg4UzNrcnJjVEU2VjVPRjI0UjNxZTNOWDlkbU9pYnRGLzRlQUhoc2dyRGxsdUI5YS9BWDdQbzdEVC9nejQ0YURwRUxtSnF0VjNVUzNHd3Ryc1dDUEV0QUpXekI5Nm1FdlBOd29I''@;'; put 'put ''TG10dFhzN2c4ckd6WXpnUW4yOXQzWnRZcXlJZlhUc0tmWGVpVjlDWFFIV1o2Sm1pU2pBUUtqSW1WTW0wVFNyc0hRb0VTa3ZoNnhYNDRmZkRSem5ldTk2SjFxRkJNVHJEMW1ZQmUwVmpONUI4Vk1KTW94SmczSU9xMXB5a1NVUWd0RmZ6VXZVQU8zMEJDNUNCQUdIZHRCTU0xOW5GeUcwUEJBSlVa''@;'; put 'put ''MVBNc1FRTkZvNVE1VHpTV3BOWHExc2pKVEdyczl6djhBQnRXbXhWN2NYNlNLZzgyRkJVRUhVN0xJVTJvMjBzemVwallyRG52Mk43SHRIUlBZK2c3ekU2REsrUDRIOWxzc21MV2pQcFNxZkRyQ0g4NkkwZ09sRkdqRnhZZ2VZNWdHUjE1NjBxZHRtdE9acEVhbkhGVTNFU2FiZE9NVmxCdHVDa0xN''@;'; put 'put ''RmltL09pOHVKTXVtcHpaaFNiT3p0TEVtNHE4dEZxSHF1SWV0R2ZvYzhoL2VNRVAvWTVKbVMzZ1RtR0hUdkFuRlZnc0lnZTNBSG04aHhNQWZyb0RqQ3J1YkZXMEwwY2hteUdlVG5YandsOWN5TU16eE1TWGdNWlpBRlRmekRUWjZYeWgybDZjTUpCOHRDc05MMW0yUUFDVWJjQWRxWjh4cVBsMWhK''@;'; put 'put ''ejVXeEZObWh0a1lXU0NTUWtWakpIVWpTWkNLd0NjRkd5U2dhSnRMYm5ETDZUTkV2aXQza3F5VjEza2ZPTDBvZnhNZWtqTFBlamsrWHFwRERKbE5iV0NFUWo2aXFBTk11eEJwZlpnRzZ0bUFoYW1kenI2ZEdzZ0UvQ042UTVvUVFQWmZrdE8ydWczUTdBbkQyRVJnMm9BZHRBR3lHc3VlbHR0NnFr''@;'; put 'put ''OVVBYldnazN2R1d6VEdSekM1clhSNDVzMTVESC9Xa2NJWVVhZzdYQWRsNG5WVFU4Qm12QnNtall6SDNibnZjbThjdUxnY0dHNjNvSzlaV2JXZE05Yy9mTTVveWx5VWk0TDlxczhXN2syR2Jqa1UvTWJjeGdRb3ltV0w0UG8vRnFtUS9leVdnS3EyaHpNOHd4OVBnT01HY1ZHT0NEYTNlQVdjMzFz''@;'; put 'put ''NEpPY3BnOGphOWZwRGt6Ykt3SW44LzYrN2IwQTZJQ0oxUXd4NUJuTTh6NnJ3SEd4dVlUNGZOWlA3OEY1dDhCcG9UTmgvZXpzdjdaamZNQmZxcUZiOTluT1FUbE5MdDhvM1d4b0dkbkRBYVZlV0d4d0k5eVN4bXI4WE5Dc3dMUU5jWjhISUU1VEVtckVrTUEza3FLb1BEeDEzbnkxOERBcjZaNSt0''@;'; put 'put ''ZXorSmxjQ2hodVdNVCt0VWQ0SXRpTGkvOEFPR0Q1TFV5bXhHV1pjdThXUExHY0RZYW5oTHkzbjlraWR6YkRITU94SFdET0tqQ3d0MS9kQWVieUhFd0JlbklIbU5YY1dDdm91VTN5aStaTTNZRmZKUTVRQXJvbmRBakg2b0poNEl4d211WnN1dkdIejcwN2MrNjI3dHZPZGI3NzNCM24zdDNKUG1m''@;'; put 'put ''ZWZRNnhlalVsUjRWV3VkYWpjN0ovNjhJYVVsZGJYbFppMXRHVWJLUVZSanpzcWFCNml1SHBQRzlReklJcDlMamVsZFZ0T0VFRWcwSjlwT1RpUjRJNjlYRmZwaENZdlQ0UUNkbkRkbFp4b1dSeGg4QTlUS3N5VUpNaWNya3hENDBqWHU2RlhVbnkxZVRCKzViU3E1R0dJL01OamNEYVRVY2o5VWZt''@;'; put 'put ''SkZSWmhrZTdzc0RoT0hPNnY2Sk1laUtUSmNVMzlDM2RmOUJYbVZxSjM5Z0h2TzJ0YkZ5UmZqenR3emRURHBmK01IVGRRTU8wWDdxNW51S2U1V213Zlc2V2FlSFJMZlN5R2VZWSt2RU9NR2NWR0tDRnorNEFzNXJyWndWOWFqT2ZjMXVaamRVdWovWGN4bjQyNWU4MFpPcUFPclFhckYzV1lmbjRL''@;'; put 'put ''MWVFQ1pyTDRuSlkzRVZ1YThoYkpQS3NncVFxMnltWXkzWmFlV1pMdHRPWmx0Vk05MHJMOWQ4YmFHL3ZsOVp5c1N2aUpWOERTVFgvbEJIc2Rob3VxUWZxcUFBZEFFcE1vTWRFK1hSVHZLRERjdGk2VEU1cVhNMEJxbDdQWjR6MmdEZmdyZk96WTYxY2pGUlVwcHBTY28xU2lsNmdjZWF4bGlPWnpP''@;'; put 'put ''SG1nKzAwVzNaM2U4dndjRXQ3Sk5uYjA1anNYU2JtcHVsb2RMcnBXTHBpWDNQVGRHeWU1c25PZEVhaTdaMXhtak1LdU9aNUFxOEFydnRBdnhQVXU0aTJlUzdBSG54QTlmeWlBby9GV1RYOEM3bm5CUVBxNTgvbCtsK1pVRDBYS25Qd3BoczVuOEp6NFVOZ0gwWlFFbVZ3TjYvcExTc0RMSHM5WUkw''@;'; put 'put ''NHNWSGZqSFZHQXlHaWpucDJ1aEc1aUhkSEdCT0Z5YjgyYlBONmZwNlBFd0hDb2xXR3EwaVBkS0pldDF4Z0lFcEdma20yMEdRV3FCYlBKdzNRY1pzdTJjYU1jeTJ5aGRoa1VnbU16T2FHS04rTUZnNi9aUmRnUmxRMU50YlhJOVNZYWV4cWE2bFAxaWRpVWNCY25UM2dEd1FEUVV2T3JGRFMzTGRr''@;'; put 'put ''WVBEemlVMEh2aUJ6T25EdXZQRmxmdnFiT1JuMFh0bTdkRUtWbmpIWHZWQVNXRzNiZkNJc2ZhQTNUTE0yZWxyNDJYQkxJdEV5TjVaUDI0alhSeEtxazJMcERuK2JQK0JvcXFtTnNieUVUcGFYa0VJUFpjcURXS3RwREJHZE5sVktrSzRFQzZpNEVEYTRBTHhtbld3V0JtaDVBQUZqUVFjY3BXT3N4''@;'; put 'put ''MHJkZU5MRkFaRENIcXpZZFVFS0MzQTNYUm80NDlzQ3h3cmdqK1RBdFJUM3hoQ3ozaGkzQm5SL291RkdFeVh3RCtiaWxxMkdXM0gzOGE3dHNpY0NkWnNOdHhiRDJPbWVMZGtVbkw5NGZnRGwzeUhPMTh2YlBhZDgvUkhWODRzS1BCWVgxZkRQNWZwWm1XSFAxNy9HenV4b1A5L2cvZC9PNFdsUUxL''@;'; put 'put ''SjZmc3pKNFg4R3o4MnMvMi93L2gva3ozOE16KzJzZnc2L2NpK1BMOUdhcVU3eVRWUUdWdGJlakwySTFRYktscFBEYmpQaW9leGpwZlFZVHduZVd6ZGtsOUpEWHd5YUFKTlY5V053ZDh2THkydkxhd0srVUpEbTJ5c3FXTkcrN2hBMUtVTGNwaUJ5OHFtTzI5by9uKzQ1a3gwOTI5dDJyT2RBYjNq''@;'; put 'put ''Zm1mTEpxb2FsL2dNVlBRVnoxY094Z1hsNjlHSDUxTktlVzRaN3o0NE9YZFUxUGpyUjJCc29yZ3luNjNyTDEzNjJsSTJPMWk4T3g4Y2pGRS84VEkvS3kwa3VML2ZtOFQzSzhMZWI0L1gwZHMvcHZqMmdlbjVSZ2NmaUZXcjRGM0xQQy9hcm56K1g2MzlsbWN2ZGJuUkVybXUyZ01YY2xnSHRyRlBP''@;'; put 'put ''ekJFTFRTRU5rUDhza0w5MlNRUysxRTR3ajlCVFZBcmFWWWtrNnFscnJqNUdCOGRRWGFPRXJjR2dweVFRS1BrRnJhWDZsdndML2xLb3RDUVlMQ2tOZGMwL3IzeUVPU2xuakc1VWhXcHlOcHNEYkxZd1FMbE5ZSjNwRlpzTm5ncXFwOXZhYkNYYjJXenFBN0x0YkRhdjExdmpyUTdhd3JZTk5wdmFa''@;'; put 'put ''S01XbThadDV3YWJpeHBzWVFFRVp6ZzRjdVBRWkUvWi9oNWZDQmg2b3I5c2Z5OEl1NS9VeEtLN292ODhFZlhDSi96Qi9ZbWhHMGNpVldPaGhTU3djcjEzL0xkeGJQSUFOMzhSMkxrOUtyM2hZZnZHejJqby9zOXh1amlJdG5sTzZlSkRxdWNYRlhnczdsWERQNWZyWjJVM2Y4N1BIbWcvKytWKzds''@;'; put 'put ''YWRxL0tjckEvbnoxVzNUWmZiZXJhNlE3cmN0b2V3MjcrV00rZm9JZXpiUElXMS9zOVBZWVhWcmVseU9kdzhKK01HY0RhSlZER1hsbHhjNWlqNjJCYS9odHMvZCtYc242T0RhTHVZRGphZyszWm9tN09kc0dHU3k4YlM5VDJDRjJ4Zk4vVFNrV2t0d1VCOVdJZkppQjVNYnRocXNzTEtmZWk5TTBE''@;'; put 'put ''UFNsbWRIWTBXRnhlWEZwY0dhT3pHNGFWQkJ5MlBvYVg5WVY0S3hsVitJbTBpZ3RlZmlIZTRDOXB6ZFdIRkZlVWxaUmJwemp2dnFtaE5CTXQ0aVZpRnU5aGp4WjJzVUV6T085MURlb0JuNlUxQ1QzTUdMUE9BNlZXS2llQ0FxZFZIOUlKZUZESFcxOENVbVdXMjNXdXQvRnJtNFJyb1dkUVRjVldw''@;'; put 'put ''WkM4QngxcXY1NUZDdDNxSm5rejlWbGhRM0JhNUFkb0VQNSt4MXRiV3Btb2JRd0U3R0UxaHIxRXN5NkVsdFlQTjVMUXFpQXFwTWxoSkQwVlp5WllrMXBXck9lcCtxeVN6VWdTR3kvbzNKclBTL0ZhR3pZL2xrMXBsdi9odTVndUZaRi9vNTF0OEtwN0xTWGwzUU9iZEQ2cmFubFhhWWoxNmJJZTJG''@;'; put 'put ''K1cyQk92bk9IMnkyalhXTml5M1BiMnR6LzViOGd6QURESVlpOUFCSnJrQllKNFdNQVVDR0RsR0FwVC96bHlPNTdVZ1Qwcmh6V3NYYkJwaTBDdW56U0dxVmpBU3RHZ1pOZ2draTE0djU5RFJVeEYrTVFWUENLTFNwM1pIYUNiRmFSTW0xZDFFRVVNYld4UmVzc1VHNER5Y1RpZm44YXFCYVR6UDV2''@;'; put 'put ''RjRhajAxWVhvaUgvTEx4elgrTFdtZ3lrVWdhSE0yeGJXWkRla1U5OTkvS0NQOVVwMVQwYi8yakNvbjlHT3Q3ZTFyWDkrUVZaR0xvYlhrWW1oSDRmOXQ5aHZzdWJ0eTl0elJjYlJkL0EwYjBYZDJhS3ZZZ2dMQWZKSFh5QUhQOTdFN0ZnWXpmVVdnaUsyQU8zNkdUTFA3S2VPSkMwZ1U1WUF5RmZL''@;'; put 'put ''V0xETWtnREh0V3VYWXplR25WVFpXeW9CS1BhSmY0VE8zekpHcUFzVmh6bFVWVEU1SlR5alZpb3lIbXBtSTRqV0c5S3h5aGVYS2hsQTllbWZHUnIyS0VDWmFzQjJJQVd3Qm1nbGZCdlJSRGVhK1JxdlRMTk5ncmJMajh1MDRMR09HU1ErbXJZSUtLRnMvUHJ4ZEM1cW9XaFFPaCt2REVaZlBIbXIw''@;'; put 'put ''QjFtWVY5eTBJdDJXdEZ2cUd5QTU5ZmJIMmNMY0luVzZnbzBwdU5YZ21VbS9rYjJ1VW5laHNuS2JGYXZ5Y2NFSHcyZDRTdTQyc1ZqOU5ySFl6YjZBWHZZRldLMG1vNUZhV1dkOWVVdGJuazlMYVdTRTY2eFRjbHZwWjdUT2s3Y0YyckdRVXNUdmZ3QjR3WThLVVFOcVJmZGtIUFdWUkM4cTVRb0N2''@;'; put 'put ''UTRFRFhINVVHZWlSeFNDWHJOcXdQbDZYbEhVTG9FYnJkWHkwKzBsZnJydG9aZDZiWVUyWXAzT3l0dWdUUzNBbVk1R2FZUTIyaHB0U1NVdERaYUd1aHEvdDZ6VWFhZVIybUt6WXRyUys2aTROZXYrRTlKMmNXVlZWZGdmTURncnExei8vWlladkpOMXZySzJocEpnVGFYTFZUWDZ0dEo1d1pkNkRZ''@;'; put 'put ''aXhpdkUvajFrZlhmL1VscmoyOXdDbWxQRS85N2VPZm96SHRPTHJlOURyd01NT251ZEFzSVBuZ1NoWGVmQWNJSzR6QTE2WGw1WEx5Q2R3YVZva3FYRHE2NVJVTGVabEhXZFBxdXNjZ1FMeWtHd3IwTnpaZFJqckJYWVc3YVc1NjA0SDBRaGVKakowcW8yVlRYTkxqcU5ZMGtKVlJXbXgyMlVwMkRZ''@;'; put 'put ''djFxNU15SzJlMFNINWpIcVl6cXpDYlQ4YzUxUExuMVd2VmNFc3kyTW1IWDU5N1kveU5JRm1hZm5OVS9rekFKQjN4azF4U0paakNuNndObGZIYTkxU3h6dDQrREJOY29MK1pvQUhQZ1M2MEFlMHpuZ0EveXYzbWVGNUJlT05jZm41cDlselZqdkxkSDlVMXYzV0xmd0dISXJyaGZjQXpJUU00MElY''@;'; put 'put ''T013RkJZYlg0RDZqOUFQOVA4ejBORmJwYWRyUFlRWXpJY09jM3dqRDgvbEpMOUJJQWMzNE5KdU1CbkMxQkQxUnFwRTNGZllXb0FKbnJyQlhURkVpU1R0RkorbVZHbmJ0V3JuMTFzVkZzQUVYYXZDSTlQUGVoZDRmeXZVQ1hwYVhuTTBVbUl5aWptcGdmVDR2M1FRZmkrUjZ2bHhhY0w3RXo4TitV''@;'; put 'put ''dzViNXVlZmRMTDdzekROQzVUSHg5N0pRMk5qaHlieHdScnBKYXdMTDRUeG5QU0RtdHlaeVUzS21Rbmc4UmZiNFJwODlsZGtuNTNhV2Zkeld3bjI3MkcycjNGWnR2SFk2aEE4dHhLckFnODRmU0ZuV3ozTVpIQmNsc0dmMzJHc2k3bjRnUDQ0VXAyVHRPVE9TWTZpcDdiWVpkeHZ2aXZuNHg5ZFFO''@;'; put 'put ''dWQ1K0RDeldjc2N0dXBmUHdCRjE0bTU2R0NzSDRWOXQ2R3l1bTVmZTUyQVQzSlhTOWdvS1hVU3E0WTg5VEs3V1V1QjhzcjVZcTlKSDljbkV1dWNHSnIzZ3pxNDZwOTdma0Q5eDg4ZFA4UzZaSEVZWHAwZWJxUEsvZTVqeTh1M2J1MEtKbnhmdzJjSFJpNGt0OUZDSE1XL2gzME8xMVhDNXJLVExx''@;'; put 'put ''eFhtY2d0QUNaaFFlQWhqUmF2V2JaYkNBNm5SSUtNSWxHUVJVTVNDYjlmb1NTTGNubXBwUS80WS9YMVVCM1huc2dGQWdXd0x3M2hsSHpNbDZsdGpXYmJEcFpoUXRsUEg3YWV6b1lQTk16ek5LYmUwNEhBeWU3RlRVdVhhUEtjOGJYYnFpcjZXeEtkZkhNNTQ3R1ZEdlQ1MFNkL0l5dnBKcGQxdXZI''@;'; put 'put ''MmQ2bVpQcjk0aGE2NERtM2RHK25lV3d1Szl0K1FLZkhHZjJtWkRxOXlPR2xuOUVjWFJtZVBvL21iSWpqakg1VE12M2V2TzFZWnhqOVRuUDZ0Zkd4V08wem0yZVRQTStQYktGOW5xdEw1em5ENTNrRXlYWFRuYXh1dWd2OWQ4WVZqNVdYYVhUNkVxekJ4WVZFMEJTQXVhRFpQbGNBek04bDBQa3U3''@;'; put 'put ''dmRwOGRaVGY5czJ1UUp2M1dyYlhJRzNhclpqcnNBMkRYbXVnRGtZOGRQMEhLL1ZBRjdGSlVMTm9iZFJIazdhcnIxaW02Q3orMzJybHlvWlAzNVN0em4yYkR4MHlSSnllYjlZem5VSFdnZmpDb3U2V0FYUml1WEFrNlcwNEZDOWM2SzhjNUdOT3llS3VpVkVLekJRUGlLMEpjbWpmdFBHdldXanlp''@;'; put 'put ''MjdEYnZ3RnEzWUVlTjIyN2ExSGQ4MVU2QzJtbTJhSHZ5WlM1MFA0TGZLTE1jdkhoemZMc0VqdmhUZU1kMTgxNHgyYzVhSE5seTVjLzY1aWpmUEtyd0pmTDI0QTI5ZVZIZ1Q2K3M0YjlZQWI5SzdBcXJRRnpNV054YVF5d3pLd0VUdklwUzNGZ0ExN0tTR25ueVNHMmlRVDA0ek11Z0pzL08ySE5o''@;'; put 'put ''RWFCTU5QWWg1TzIweU5adkE1V09iTGEwME5KWUlKaDVNdG9vNjdIU2JxTmZwRlhmWUkrckkwenNPOEQ3NzFuM3dPT205QjV1eTRIcHkxeUN3dlA1T2x0ZmZnTDZXS2E3QmVxSFdTUXg2QnlhR1hGS2ZOa2YvV28zMlZpT0dpV0xEU1ZCY2dHRmFVeWdJbWdVZHJ5emt1WHZJZ3hRczFlZmI2QTNr''@;'; put 'put ''cHJkcWxLbmRIcDZsQnFJanFtWUN4Uk9WMncyb25oVWJ1QUZUTkxLaDJZR1N0eFlndUNuaDQvZ1cyazIwNTJzU0FtWFZSWnV6Q0p2MW8ybDFtVUtmMnhoZzlNZnVwR0EwbXBacDlJb3ROT29GRzBaZ3R1d3N0MlhKeEJaN2wrY2h0T1R5RUk1dW80ZDRyUHl1WEt6ODZBaFM1VEM4bk10ek1LRy8z''@;'; put 'put ''NUxEd05xeTgyMFdsd2VZbTdmTG93QWI3QlBidG0zUHgvcHg0VzRrMzZleGg5Mm5FYURuTTA0UVJ3V3dyWVZBNHN4Tmx0TlA4bkgxdk5NRUxRS0JZbi9Rd2U4bll0a0VtOElRbTY3ZklQZU0zamF0dCtWaUQ0NGoxOG4zY0pEejdOWU5TNmtjYlBCNTNQZWNWRi9Ld2VjNkFIT2RBNy9JajI3aVV0''@;'; put 'put ''cFNySWRORVRFVy9GaUg2WmxORVh2aVo1RnI0RkU4TEFkN3krUktGMXBac2sxOHQwcCtUV082dWVxVGpTRmRZNENXdUlXOW9pckV2YlVTSlptTDRwSTVGa1JTMTZVY3pydXZ3YkxOQlNxS2t3aDd4ZTRLWWZUWXluTmU4TmdXT3VLMUtGUm03bVcwSUtMdnFQSmN6aXA1THZEODNWdmE4ck9IaThy''@;'; put 'put ''WkF4Ym5rYXJ0YWk1SFpnWGRzSVdPMkIwZWpOWTZaRnRyUzU2YlhQOUJhVzJCMjFyeWVTTnZ1NnEwQmQvMzJ6dTBmVTV1UytPQkgxYTFQWnRycTBkbmQyaDdVUmtYNjlzWTNiQzZXdXBQRjlJNEJNMUlwelU3TEE3QkNtRElBV3E5ZXhoUkY2SUNlMEM1N2twVkRtdklsOEYrZmt2dEs4MGJQMHd1''@;'; put 'put ''dnMyN1BOejBMby9Qeks3Mmo0LzFrWXQzN3Q2OWZSKzUraVNDYmdXZU95MVhKOGw5cEpPaXY2dHZiTHgvZFpaYzNMMzdUcm1QRVh3RmVRNzJVYzdHTnhLYWp6OWlBQlU1dEYzK2VBRXlCNFZjTnI0Y2NtSk95Y1BqbFkyT1ZHbHB5dEZZTVZGTFJxb3FVZzZYeTVHcXFHTGpUS0tIV0t3bHhNYTVa''@;'; put 'put ''Rzc2NWt4L0picy9IeW1SYXdsR3NFT29aTFVFemF4WGVtOE96YVpmMVdJQk9IdzJWd1FxdksyS0F2WDk5VGQxZFVVaW5aMFJlb0U2L1NJai9QZElWNEkvY1B0NGp2d2VRTG9iV1ZFcm0wRzBFQlpqb2RReW9tV1ZBT3hXR01EcExKT0VBbjB6d2F1bUFpNk5YRlVnMzhPdUNqTGYwRkhoN3M4Rmxo''@;'; put 'put ''OWhVU0czSEZMbWQ3bVRkbnc3ZVFGRzdtSGpwcDNRczRGVmFUa3dIdEpqWVpBZW1KTlpxazZCZmxlVkt6U0lNTUdNUXhmb1VLMU1ISWlhZk1vVnkvU0dkSzR5L2JqQVYyeDFtK3h1YmJwbzJzaysyOXk2dEdXR2ROcXNCUVVWWHNNNytFLzlEWHcvdXZCL3NGb0lFWlh5aWdFdElHZUl1cmFuN2Ja''@;'; put 'put ''Y0RZVmI5QWZsb2dpY1BmQ0JRZktLNDVZUE9kN0orSzVYK3RuNmsrdGZBcVlLc0I1SytGM2tHK3UwQXJtK3hJMlhrbC9nZ1UxUFZWVjRuUWN0V1FBekp4OXZVdVFqNnNWMU84akhWeFQ1aUhyUjR3aHQwL1lZZnZvdDJ4N0RYYXEycTdtMks3aC9pM3prYlovTHRWMUJYK2YrN2ZvZ1BjOVFuNFc4''@;'; put 'put ''K1R0dVA3ejVPOWwraUFCTW1QbkdRekxNMHd5R3FHQjRyUDN5WEQ4RlFBM2J4OXBmeU1YYUM4YlF0am1RdmVpOU8raUdWM0xuMHIwSHVPNXRSUDlHVExqanJlK0JmMVdxd1IxelNodWgvVzIwRWZSdi9sNXAwNDAvZ3k2U3p3TE5sREY2R2RwY0VNZnB4YTdFeTNsczlvWDhCZmJrOWcwMzJEUGJC''@;'; put 'put ''MzhXZlpzOENDdTJBQVppdkxhTnhISzFiVEFtL21zMlpqbTkwYW04RU9oOFF5R1R3SVJhb0RoZ1l6ZEliUnhidStOVXNHNkhhVldwUHZQNTRVZklnMFZoUGo4MnozK0dlZHB5ODZSa29reVlZdkZodkF2V1pObXBMb2pXeGJPNm9FMTE4WSszK256d3I0WCtleGcrZWVudlh2akE4ZFFMZFBOT2RC''@;'; put 'put ''M3NQVGd5Ulg3NC9zK01ocTNBSXdqa1FHVDlkNW96cXIrUDBnWFVPSXQreWZNYzR4YXNMZVIvdmtTUGRXWnNOT21NNmo5NVlpK3dDU2FUc0dRMUZJa2E5VjlLU2IxRlEvWlhUM2hya2JZVzVMK1gwckp0dTIzK1lzcVd0dUNCTkkyT1pqTEtYMDRablIyZDJiMHJrODJNRFBURnVtS2R6VTNiL2hV''@;'; put 'put ''VngvL2dyNmhVYmZvOW9JS3RhdnFULzhJS0hza3F2NHhFcGZQSzMxdjVLL29oOGFmODRaWDg1NG1HM0I5aHlmOHhGZ3pXZlJLWDRMK2pOK1k4QVFaenJLNEx1d0YzZ2Z0MjMzMzM3amRmdEQ5eHdjRnJXUUd1UW9FVEdGdzQ3UlpyUC9qQjNaLys5T0NGSit3dnZzeDB3Uy9rTzNTamFDSXpXdVlo''@;'; put 'put ''R25ySGdJbFo2UnBRY09CYkx4c3dNV0pzb3JVT3VSb1hNMHRPNVJFUStCNUZEWkc2MmhxckxRak9vTlVlTEtEQnE5eEZRMkh3RkZubVNTclpTZktWbFRSaERKRHM5cktRS2l0dlNkdzZOUGFlRmZmTUlORU03eTladm0xRUxta1p1TmFMSzZXWFlDR3QwdmNyYnNwT3NtdDN1NjhlN0M4dUFDWGVl''@;'; put 'put ''MWs3SzJnWjYrb3ZLN0hiK2dkbVpabmxKUTU4UGNnNTNST0UxaERZYzdkN1gwL3Y5V2FHREpneUFraGRyOVZMaExVMStwWExYV2lSNzJMUVAxVmlMOUNTMkRaM1BXMjlLNkhsOENYdVN2amozaDJ2U3BCajlpMVV4dU9ZZk9idytWd3N2NFhxTHZaY2RjN0tubC9NUFJldlE5dkJvNVdyMU0vei9m''@;'; put 'put ''ZktmaXAvZmxjTy91Z3g1VDZLUGVSZGdBTXZpZ01PcW4wMkREalk3R01waU1oN1dJSE5LSGtYODdqVWFKRTlybldrUWc5M3Y5UUlrbDJ2ZXpmblByRDVVbiticndQODdVK3AxdkZDRGg4RlIzTTUvT2c4dTNOR29ZT2sxVCttM0I2RGFkNGJ2TmR1ZmE5ZG0wRC9ENUQ4RWlJQUFBQUFBUUFBQUFF''@;'; put 'put ''QUFBOENHK3hmRHp6MUFCOEQ2QUFBQUFEVHdaMkdBQUFBQU5TK3BPdi9RLzdvQkhVRHlRQUFBQWdBQWdBQUFBQUFBSGphWTJCa1lHQSsrZThLQXdQTG92L08veXRZU2htQUlzaUEwUkFBcGZJR3F3QUFBSGphZFpRL2FKTlJGTVhQdlY4R1JSeXNXRkZzYXpIV0prU2ExdGhxd2NZMHhWU1RTRnRy''@;'; put 'put ''ZzBJWGNWQVJzYUNwNHVKU3NRNHU0dVJrRUYwczZ1Ulcvd3ppNEs2VE9FbFVXbWdvV0FyMTg5eG5JakdKQ1ljZmVmbmVlL2VlZDc0bnk1Z0VQNUtsV3FrZHlNaHJER2tCUWIySURpK01pRDdFYnF4Z1NDNmhud3JMZmV6WGNTU2tDVWRrQ2pGWmo2UTg4eGYwSlhvbGoyYisxNldqMktYVDFDUzZO''@;'; put 'put ''WTllUFlVK1BjdnhQUHJjODV5ckdZNXhIZktZckdLck44VzlTdGl1ejVIVE9VUjFsYnlHdEo2bml2ejlFV21zSWFPdDJNS2FKblFmQnIzVHlIa2VGZUwvczBnNzN1UHpyRjJ2STZRTEdMRTFBd2ZRcHZQVUUyelVXNnp6Q282ejVoV3lTNzZoUjBmOFh6S0J1QjdHWHAxQlZuZXlsaG11TllhSW5F''@;'; put 'put ''TzczbVR0T1F4akNZZXc1TC9YVHFSUXdyQjNCeWtiWjUwUk40OXpaQlpaS2FGRGJuQmVqbjBtME93Tm9VVWo3RzBjMjNRZGV1UXVPcVVGRjhpd3ZNSkI4OTN0T1kyWTFTZ3ZXRXNiUWp5THVLdnJOb0w0aVFFWmNPTlIrclhIZWRWQWdTYlMvRFB2cW9RMS80UDVSeTVTWDczTkNGZThxNVVHa1hF''@;'; put 'put ''MC82cGwvdEZubmxuV2VkVkEzanhwdll6OUsvcjJqdjZseUNMMVJhL3kvQ3ZlMWNweVlUVC9xbVgrbWM5RzY5ZjJyS1gxYnZ0WGFEbml1VmkvK3FEc3k1amJwekV0YTNiZVpkS3J6NnozRTczckpuM3lxUFhoTXNnY1dBNHRDMzk1QnUweWlIYnoxdnFyWThqVkVLa3dzQUhSd0NidXk5eGFkdXJJ''@;'; put 'put ''TEZ1ZTZzaDh1NHhWYU9kakh2Mkg5ZzY0SE5vWm1uL2xkOEh5V0V2THVCU1lQZE5UeFBHZFBFRWxxRGZvMXpESDRDY3JhOWF5enRQeW5ySU1lTVUvOXcxV3FjZUF4aEh6THZNZWFTcmZLWXZrSXZrSUovVXQ3d3JlUzRFQzM4TWtnbFJZNS93ZkxoOGU1L0pjRzN5enlQNEdqNWZ3dEFCNDJrWENY''@;'; put 'put ''VWdhY1FBQWNMdXVNNzh1TXp2UDIzbWZlcDk1bnYvejdrRWlRaUpDSXFJbmllSERpQmd4WXNTSWlJZ3h4aDVHUkVRUEVTSVJzWWM5REFtSkVTRWo5aEFqSWtSaWpKQWhFaElpTVVhSWpOakxZUHgrTnB0dDhaKzg3V09YclNzTFVkQTJWSVRLMEgzM1h2ZFpkd09HNERBOERMK0ZEK0ZhejJqUFVr''@;'; put 'put ''OEpZWkFVVXJSajlobjduSDNWbnJjWGUrSGV1c1B2V0hBVUhBMG43a3c1dDUwbFo4V0Z1SUJyeHJYbU9uRGR1Y1B1ZGZlcHgrdlJQZk9lRGMrSnA0R2lhQko5aWk2aE8rZ3hXa0ZiZmMvN0hyMFQzbXEvM3YvR1ovTmxmWG5mbjRHeGdaY0RGVC9sbi9lWEIwY0dsd2ZQTVJpYndoYXhISFllZ0FK''@;'; put 'put ''YVlDV3dIYmdKTkhFS1g4Q1A4WWRnSWpnYXpBWlhnaCtDRjRSR0pJa05JazhVaURPaVF0d1M3U2VqcEpma3lBUTVUbWJJQlhLTjNDVDN5U2I1R1BLR3VGQWlOQjdLaEpZcG1NSW9pVXBTazFTV3l0RVFqZElFTGRDQUhxSFRUSnBwTVIwV1lYMHN4U3FzeGFiWUtiYkVmbU92MlJyYllqc2N3azF6''@;'; put 'put ''MTF5TmEzRWRIdUY5L0E2L3p4L3hKZjZLdndrcjRYSzRIcjZQUUJFMHdrUkFKQmxwUkRvQ0l1QkNXSGdsZEVTM2lJdUthSWtwc1NGMkpFUWFscmFrQSttejlGVzZrbXJTYnhtUmNYbENmaWZ2eW9keVFUNlZMK1VmY2xOdUswNEZVK2FVVzZXdHdxcFhKVlZOVGFxVGFtWklqL1pHaWFnUUxXcXoy''@;'; put 'put ''Z3R0WGR2U2N0b243VVM3MEw3SHROaEJyQmo3RWl2SHFyRjdIZEpSbmRHSDlCRTlyYS9xT2Iyay80cVQ4V3g4TDE0SENBQmdERXlEWjJBUnZBWWJJQThLNEF4Y2dwK2crWitCR0l5Uk5tYU5QZVBJcUJvdG81V29KOXFtMjF3MTM1dTdadG1zbW5mbWd3VlpxRVZZODlhU3RXNXRXdm0vYW16QVRR''@;'; put 'put ''QUFBUUFBQVR3QVlnQUtBRDhBQkFBQ0FDZ0FPUUNMQUFBQWtBRkJBQU1BQVhqYWhaTE5Uc0pBRklWUEN4cUloS0F4THJwcVhMaVR2eWdZWEdyY0NHb2tscDBKU0FWaXNkQVdFMS9GTnpEeFFmeDVBamMrZzB1WG5nNjNDQVlsazJhK21YdnV1VE8zQTJBTkg0aEJpeWNCSFBJYnM0Wk5yc2FzSTQx''@;'; put 'put ''cjRSajJFQWpIVWNTVDhCS01pYzh5YzcrRUV5aHFobkFTaGxZVlhzR09Gbm1tWUdrUHdobXNhNS9DcTBqcGNlRm5iT2daNFJmazlTM2hWeVIwUy9nTmFmMXl6Tzh4R0xxREE3Z1k0QjRlZXVpZ3k1T2JlT1JYUkI0RmxFZ3RSazNxdWtyamsrdWMrOHp5bVh1TExHcXdtZWNwSnhlT3FNTGRObmxF''@;'; put 'put ''N1RtNVEzTFFwSzdBbkx3YSs3akFNUm80SWMxejJaNXhXVnpIL0ZYSjRzcWpxcWRPYWs1Vlhsek40bnhGalV0VjJJRlRPdGhUOVpya004YkRXSlZ6KzU4ZWhYME51S29neDNFMzQrd3EzLzdFTmN1WXkzV1U0MHRXaDlHQXV5UCtrVWlUNHh6VjdLdDcvdFRNemIzalgzdlJyUnZrRnQ5eTZCQk1P''@;'; put 'put ''bGFUL2gycHFNbFJVckV5ejFaZ3ZJSmR2cGpvMVpSeFE1M05DZ1BwdjAxdm45bVJheDFEN3ZRWTh4aHp2Z0hGZllWakFBQUFlTnB0azFkc0hGVVVoci9mc1hmZE5rN3Z2VmZIWHZmRUtTNXJ4N0ZqSnk1eDdNUkp4cnRqWi9GNkY4YTdjV3k2QkFJZVFQRENNK1VKRUwwS0pIaEFvbGZSZXdmUmVh''@;'; put 'put ''UUg3OXdKWGlUdXczei9HWjN6bnpQMzNpRUxkNTBiWUI3L3MxU2JmcERGRExMSndZZWZYUExJcDRCQ0FzeWtpRm5NWmc1enArcm5zNENGTEdJeFMxaktNcGF6Z3BXc1lqVnJXTXM2MXJPQmpXeGlNMXZZeWphMlU4d09TaWdsU0JubFZGQkpGZFhVc0pOZDFMS2JQZXhsSDNYVTAwQWpJWnBvWmo4''@;'; put 'put ''dEhLQ1ZOZzdTVGdlSE9Fd25YWFRUd3hGNk9Vb2YvUnpqT0FPYzRDU25zTGlkcTdpYW03bUJPM2lmNjdtV3AvbVlPN21OdTNtZVo3bUhRY0xjU0lRWHNYbU9GM2lWbDNpWlYvaVdJZDdnTlY3blhvYjVoWnQ0bXpkNWk5Tjh6NDljeHdWRUdXR1VHSEZ1SWNGRlhJakRHQ21TbkdHYzd6akxKQk5j''@;'; put 'put ''ektWY3dtUGN5dVZjeGhWY3lRLzh4T1BLMGd4bEswYysrZm1MdnprbmxLczg1VXNxVUtFQ21xa2l6ZEpzemVGWGZ0TmN6ZE44TGRCQ0xlSjMzdEZpTGRGU0xkTnlyZUJ6dnRCS3JkSnFyZEZhcmRONmJkQkdiZUkrN3RkbWJkRldiZE4yRld1SFN2aURQL21TcjFTcW9NcFVyZ3BWcWtyVnF0Rk83''@;'; put 'put ''Vkt0ZG11UDltb2ZUNmhPOVdwUUkxL3pqVUs4eTJkOHdJZDh4S2U4eHlkcVVyUDJxMFVIMUtvMkhWUzdPblJJaDlXcExuV3JSMGZVeXdNOHlDTTh5a004ekRYY3BhTTh3NU04cFQ1K1ZyK082YmdHZEVJbmRVcVdCaFZXUkxhRy9IV2pWdGhKeFAyV29hOXUwTEhQMkQ3TGhiOHVNWnlJMnlOK3k5''@;'; put 'put ''RFhHTGJTU1JHRHhxa0tLK2tQZVJhMllYNG9ra2hhNGJBZFQrYmIvMHAveUxPeVBhdVE4YkJkRkRhSEU2T2psa2t0SE00SS9DMmVlOVJqaStjVE5TeHN6YXdjeVFoOGJWWTRsYlI5TVlNMjB5OW0wRzVleGwwVXRtZDZ4RE05MmsxNjNJVy93NXNoWVJqb09KMktEMXRPYWpSbXBaS0JSR2JrNnpR''@;'; put 'put ''ZEhOT2hNN09EazltaDAzUndETHBNMVpnTGZ5b2VMU210REhvczgzV2JwS1NacHNlYkptV1kwK05FNDhNNXFmUXowUE9meVZLWmtiL0gyOEdVWVVGdk9PcUVVNk5ETWZ0c3dYaUc3c3ZRRTlQYTEyOW1uSFNSM3o5OTJwUFRwNTJlT0ZoVzViSXNXT25ySFhhc3FXczFidEJySE1aZDVQVkdvclpq''@;'; put 'put ''ajBYSDhzYlBxM1JkYWFpKzJtT054d2FQamI0K1l6VGhJdjAyV0ZJUzlGam1zZHhqaGNkS3cyQlRkaWpsSk55Z29xa2h4eXEyWXNsOHk1M0ZTUGZ1cDJXUk5mM1o2VGhnblIvUUpMcmQwN0xBKzMyTU52dWExbmxXK2pSTWNqSWFpN2pKdWRiWTFCNUZiQ2N2WW52cUg3ZGx0eUVBQUFCNDJtUHcz''@;'; put 'put ''c0Z3SWloaUl5TmpYK1FHeHAwY0RCd015UVViR2RpZE5ra3lNbWlCR0p0NU9CZzVJQ3d4TmpDTHcya1hzd01ESXdNbmtNM3B0SXNCeW1abWNObW93dGdSR0xIQm9TTmlJM09LeTBZMUVHOFhSd01ESTR0RFIzSklCRWhKSkJCczV1Tmc1Tkhhd2ZpL2RRTkw3MFltQnBmTnJDbHNEQzR1QVA0Y0pX''@;'; put 'put ''QUFBQUFBQVZpWTlHd0FBQT09KSBmb3JtYXQoIndvZmYiKTtmb250LXdlaWdodDo1MDA7Zm9udC1zdHlsZTpub3JtYWx9QGZvbnQtZmFjZXtmb250LWZhbWlseTpNZXRyb3BvbGlzO3NyYzp1cmwoZGF0YTphcHBsaWNhdGlvbi9mb250LXdvZmY7Y2hhcnNldD11dGYtODtiYXNlNjQsZDA5R1Jn''@;'; put 'put ''QUJBQUFBQUZhRUFCTUFBQUFBb3VBQUFRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJHUmxSTkFBQUJxQUFBQUJ3QUFBQWNmTkg1NWtkRVJVWUFBQUhFQUFBQVRRQUFBR0lIMVFmOFIxQlBVd0FBQWhRQUFBY1lBQUFPZGtEQ2ZwWkhVMVZDQUFBSkxBQUFBQ0FBQUFBZ1JIWk1kVTlUTHpJ''@;'; put 'put ''QUFBbE1BQUFBVFFBQUFHQnBFcThKWTIxaGNBQUFDWndBQUFKc0FBQURubmRERDdGamRuUWdBQUFNQ0FBQUFEQUFBQUE4RWhFQjhXWndaMjBBQUF3NEFBQUdPZ0FBRFJaMlpIMTJaMkZ6Y0FBQUVuUUFBQUFJQUFBQUNBQUFBQkJuYkhsbUFBQVNmQUFBT013QUFHOGtIZDdZbDJobFlXUUFBRXRJ''@;'; put 'put ''QUFBQU5nQUFBRFlMYzRnUmFHaGxZUUFBUzRBQUFBQWhBQUFBSkFlUkJDQm9iWFI0QUFCTHBBQUFBb3dBQUFUYXVZNDBKMnh2WTJFQUFFNHdBQUFDZEFBQUFuclUrN24yYldGNGNBQUFVS1FBQUFBZ0FBQUFJQUtVQTFCdVlXMWxBQUJReEFBQUFZNEFBQU42TWdpSVduQnZjM1FBQUZKVUFBQURv''@;'; put 'put ''UUFBQmlHWEZqMktjSEpsY0FBQVZmZ0FBQUNCQUFBQWpSbFFBaEIzWldKbUFBQldmQUFBQUFZQUFBQUc5bmhZbUFBQUFBRUFBQUFBMUZHMWFnQUFBQURUd1oyR0FBQUFBTlMrcHZWNDJnMk1RUXFFUUJERUVrZjBNTFBvZjd5cEwvRG9mWGZWL3ovQUlnUkMwVFFDTFI2Y2RGUmtqVnNvN0h6VHYx''@;'; put 'put ''RDRCN200MDQ4RE9sb3BObHY2NDVTZVhYTFQ1MXNYelNhK1czQUYzQUFBQUhqYWpWY05iSmJWRlg3T3VmZStYL3NWYWlubFIrZ1lJWVFoYVRvZ1RKUWdHa1k2MHhSVXhsdzFhTGJwbklNaGpESENOdWNLYzJBV0Fwcy9YU1VMUSsxMGtncXNDbmJXa1lZd1J0eENaQkxEb0RBR0ZhcHhNb1F0QnBW''@;'; put 'put ''M3ozdmVEL3ZXdHRNKzZkUFRjKzk3MzN2T2VlNTM3Z2NCa01jNDFFTG0xTlF0UUJFOFBZaGpPUDRSS056aWJ5Ni9EeFZMdnI1OE1TcVhMRjZ5bUxOQmZ6S2F6a2pZOGJrOGhtTU1KcGpIWVR6cVhFczZHaTJ6VlNYYWdJZ1B5ZUFWZkdLVStRSXFQb0tnSnQ1QURwaUo5ZmdRc1l5Q2NodWNKeU9s''@;'; put 'put ''RXlVWXhKMmRqVHZpWitQRDhURU04Qk9mRzNEa1VML2VMbFQyK3YrdCtKRUJWM2h6d0pHakE0L0Urd1lZZVRZK0hyY24rSmovTUgvL2txRHYyK1BYNG8zeFJ1WjFMRE05Z2RuNkhLR29KaHcrVDNoTUpRSytRRVNZVHVSd0xWR0VHVVF4Y3p1VGxWcEpDRmJqWjV5NWpnak0rSHI2ZHhLQ0Z3bkJI''@;'; put 'put ''d2pGUWNMak5jTGpHQkZ3aW9qd0JoSGhEQkhoTEpIRE9TS0g5NGxpVnU5RHJoWVRlU21UTWhSTHVaU1RLNlNDUElxVnpYUHR5VlRKZUQ0emlSRGJkN3BqdFIwNzI3RzNIUWZNSVlwUVF4VGpSaUtQK1VRSmx1TDdYQ0dKSkxKSUlvc2tZQ01lNC94R29oaS93aWJPZndLLzVmeG5pQkpzSjNMWVFS''@;'; put 'put ''VGg5MFFPclVRUm5pZHllSUVvd2k2aUdHMUVNWFlUZVhRUWVld2g4dGhMNVBFblF2Qm5RaXc3RVk0VEpmZ25rZVpGTFM5cWVmR1dsMkI1Q1pZWGIzbnhsaGN2STJRRTgzV2xYRWxPY2hTNGFqVXpOSUUxcm1adHA3S20wNW1aR2N6SVVpekRkN0VjMzhNSzFuSTExdUNuZUpCWldNZm90ek9pNTFu''@;'; put 'put ''SkYxbkJnNnpjTVZic0RWYnFMSGZ5dnAyc01yNjNJamxmK29DZHczMnluSEVQcHI3YXFidU44WC82VWF1TjhPK1pBVWZlSkM3MDgrVDVUenBQY1dmOHIvZ2Y4U005Snk5NzB1SXo4ZFo0NjBmL2RXZWZ0MmVVSnpqUmhKZ21GRjhoSEc0alBHNG5BaFlTRVJYeEdPY2thaEJUZzVvYUZDMUVoRzFF''@;'; put 'put ''WkpVV3E3UllwY1VxTFZaWFJSZmhjSnB3NkNZY1BpQUNMaEdSREpFaHJPdFFHVW9lSnNQSVNVWEZLaW95V2taemZVVVZyaUJLTUlRWVpFb1hVN3FhMGwxQjZWOGlza3IzRmsrVWlTZG5TbmNGcGZkbzNGdFUzcUxLV1ZTWGxaNXFQRlgzUzhUQXVrNmk5YVpaTFVTWUtOZFpuRG5UcnpQOWFpSG1S''@;'; put 'put ''TVZhaUR6UnNtYml6eXJhV1JaeU1sbXU1ZHVUVDY4YVJqaWY5YnFOY1Mxa0pJMk1wQW1QTTVvbjhDU2VRak1qZW9hUmJPTnBiT051TzdqTHZkeGRGMnZReloxZDRnNkc4bTBqK0piUlhIR002VmxSYWgybFBQNEo3WExNdy9XMHhPenIyWWs2b3pIa2s4ei9IbGtyNitWaGFaTE4waXhiWllmc2tw''@;'; put 'put ''ZGxqK3lYQTNKSWpzZ0pPUzF2eTd2eW5seFNyM2t0MCtGYXFlTjBvbGJyTkoyaE4yaU4xdWw4cmRjNzlXNWRwTXQwcGQ2dmEvUWgzYUNQNmliZG9rOXJpN1pxbSs3V3ZmcUt2cXF2YTZlZTFHNTlSeS9vUlFjWHVVR3UzSTEwWTl4NE44bE5kbGU3bVc2MnU5SE5jd3ZjN2U1cjdoNzNIYmZjclhJ''@;'; put 'put ''UHVBZmR6OTB2WEtQN3RYdlMvYzV0Y3krNGwxeUgyK2YrNnY3bURydmpyc3U5NWY3dC91cys4T3FMZkttdjhLUDhXRC9CVi9tcC9oby95OC94dGY1bWY2dGY2TC9oNy9YMytSWCtoNzdCci9Yci9jTyt5Vy8yelg2cjMrRjMrWmY5SHIvZkgvQ0gvQkYvd3AvMmIvdDMvWHYrVXZBaEg4ckM4RkFa''@;'; put 'put ''eG9XSm9UcE1DelBDRGFFbTFJWDVvVDdjR2U0T2k4S3lzRExjSDlhRWg4S0c4R2pZRkxhRXAwTkxhQTF0WVhmWUcxNEpyNGJYUTJjNEdickRPK0ZDdUJnaGlxSkJQQjJyZER1NXdYaTJjYTF4VThKWVo5eHFualhHalJtK3hYaUs4U3hqVzQxMVN1ejZ6R3FUbEorcGNwVnh0ZkhjaExIYWVLZTJr''@;'; put 'put ''eHZNZjEwUDQ1VHh4Y3hUemNaVnhxWEd0N2hGNUJialZmMnpuc3ZFV0d2K1BvdzdqTnVOMS9XdzNKWEdidllTNC8zR2pYMDV6Y0FBTzZrM25xUWRuOFQ2eTE2NTZ1aVA4VlhqbmNhcmU1aDUrelQ4ZjFabWJudDRWV2JQdmV4TVRSdk1mNVg1cy9ac3krRnZ6TDRyay9uMExiMXNHMDNybS9VM21U''@;'; put 'put ''MDN0VzFPcXBtME9tblVxVDRMZHNHZnpHazFlNmRiZVZtOUJZMTFtbjAwc1FzMVRYT1NhanZOVE5iZm1MRVBtZDFnTlRwcU9qL1ZvMEJxdGVQeWlVQmYveFN6TDZhMnpVbFZuZlduSjJoV1JqUFZtY3luOWc2ekYyV3FZSG5UU3ZNM216OVZXbFhHVHJOYW1zbDhYL3U4MlQreTZHNHkrKzltWjFl''@;'; put 'put ''dWpiY2xLOGZQZmF4UzJUZk9MWnp1amsvQnZXY3FQbXYzVXZEZU5aRlpTVzZubmwyN2lsMHd1V0ZIbU1LYldBN1RjQTE3V05LNVM5bTNyMk5QVHpyM0VMdWpsbHZuSHNydlZiWHNRM1hFTU56RVBqZWNuZTVXZnZlcEp5cXRsMytHWGU4T2RxMmx2THVOdGR2YmRIYjB6Vnh2Q3p2ZlhPdDlYMmIz''@;'; put 'put ''YTJlSC9DTU80RnU4MFozRkQreFcyWVR6RXZBNE8vRm90RmhQYmVOK1JhNnc3MllSSkY1aEttekFQZVMxN0hZbEdNbDNqV2RFazNFMWR6MmJ1NXlIQlJ3OWFOcnRNajV0YkdjR1J6SjgxUGpIeHM4Wm43Q3NqVE83QkYva2UrN0Z0eVVuUlZJc2VTbVJ3VkxhZDBmL0EzSUZvYmNBQVFBQUFBb0FI''@;'; put 'put ''QUFlQUFGRVJreFVBQWdBQkFBQUFBRC8vd0FBQUFBQUFIamFZMkJtOG1XS1lHQmxZR0hxQXRJTURONFFtakdPUVlUUkRNaG5ZR2VBQXlRbUEwT29kN2dmZ3dPRGd1b2ZadW4veGd3TXpPY1lEUlVZR0NhRDVKaFltZFlES1FVR0pnQzhpUW9yQUFBQWVOcTFrMWxRamxFY3huLy90MzBSS2hUMTl2''@;'; put 'put ''WnAwMGFpRkVYMnBjaStsS3pac3EvWkd1c1FRMFZTeUo0a294a1RVMU8yRys2NE5XT012cytWVys0TUhjZFhURFBNdUhKbTNuUGVjODZjNTV4NW50OGZjS0hyQzBGMGoxVHFtVGpucmxLc3h5V013NDJCbEhDTE91N1NTQlBOdE5BbUhoSWdneVJNQmt1Y0pFbXFwRXVtVEpVY3laTkNLWklTSTlW''@;'; put 'put ''NFpieDNpVEtQbTYzbUUvT0w1VzRGV3NGV3FHV3pvcXhoVnJwMTMrWWYrVTBwZllmRmpSN2FqMm5qbWZoS2Z6SEZKckdTS0NtU0pobVNKZG1TS3dXeVFUWnI3WmZHVzYxOXlHd3gyODNQbG1FRldFRldpRk43cUpYMlMxdDlWQy9VYy9WVXRhdFc5VWcxcTRlcVNUV3FCbFd2NnRRMVZhdHFWTFdx''@;'; put 'put ''VXBXcVFwV3BNNnBVbmVoODA1blZtZlQ5azZQY1VlRElkOFRZQjlyOTdENTJMN3ViM2VqNDJ2RzU0L0NIa0hmSlhWNzlwK1p1ZUR1VDRJOWJCS1A3ei9pSFJ0ZEpGMXgxZHU1NDRJa1gzdmpnU3kvODZFMGYrdUpQQUlIMG96OERDQ0pZWnp4SXB4NktTWmhPSkJ3Ymc0a2draWlpaVdFSXNjUVJU''@;'; put 'put ''d0tKREdVWVNRd25tUkdNSklWVVJwRkdPcU1aUXdhWmpOWE1aREdlQ1V4a0VwT1p3bFNtTVowWlpKUERUR2FSeTJ6bU1KZDV6R2NCQzFuRVlrMWFIdmtzcFlCbExHZUZmdjhPZHJLYllnNXhuTk9VVTBZRjV6bEhKVlZVYzVFYUxuR0Z5OVJ5bGV2YzFCVDlaUFEyRFpxbGU1cW1uMjBWcTdVZDBX''@;'; put 'put ''emdiTGMzNjFtaisxMmMrTzFXNFY4Y3ZFQTltMW5aWTJVdG15UkdqMXZZempIc09DUmM4eGtwVWJvQ0lyaWpkeDZnYVpZRVhRL3gzV2VLbkdIRXNvMjliR1VmZXpqQVFWMUwrem5DVWIxMW1GSk9jWkxYdXBwNnNVNjh4RnQ4MkNoK21uL1BINUROcXVoNDJtTmd3QUxLZ1RDRElZTnBQUU1EMDI0''@;'; put 'put ''bVZnYUcveUhNMHYrTm1YYi8vOEowajBudy81Zi9maUErQU9ZTERncDQycTFXYVhmVFJoU1Z2R1VqRzFsb1VVdkhUSnltMGNpa0ZJSUJBMEdLN1VLNk9Gc3JRV21sT0VuM0JiclJmVi93cjNseTJuUG9OMzVhN3h2WkpvR0VudmJVSC9UdXpMc3piNXQ1WXpLVUlHUGRyd1JDTE4wMWhwYVhLTGQ2''@;'; put 'put ''emFkVEZzMEU0YlpvcnZ1VUtrUi85UnE5UnFNaE42eDhub3lBREU4dXRnelQ4RUxYSVZPUkNMY2RTaW14S2VoZW5UTFQxMW96WnI5WGFWUW9WL0h6bEM0RUs5Zjl2TXhiVFY5UXZZNnBoY0FTVkdKVUNnSVJKK3hvazJZdzFSNEptbVA5SERQdjFYMEJiNXFSb1A2NkgySkdzSzZmMFR5aitkQUtn''@;'; put 'put ''eUN3eUxTRFFKSlI5N2VDd0tHMEV0Z25VNGpnV2Rhcis1U1ZMdVdraXpnQ01rT0hNa3JDTDdFWlp6ZGN3UnIyMkVvODRDOUlsUWFsWi9OUWVxSXBtakFRejJVTENITFpEK3RXdEJMNE1zZ0hnaFpXZmVnc0RxMXQzNkdzb2g3UGJobXBKRk01REtVcmtYSHBScFRhMkNhekFRT1VuWFdvUndsMmRj''@;'; put 'put ''QnIzTTBZRzRKM29JVXdZRXE0cUYzdFZhMmVBY09ydUxQNWJ1NzcxTjVhOUNlN21EWmM4QkIzS0NwTkdYRmRkTDRNaTNOS3dvS1RIUzlSSFJrdEppWUdEbGhPVTFobFdQZEQyNzNva05JQnRRYjYweWkySmZQQmJONmhRUlduVWhYYWpCWWRHbElnQ2tHSHZLdThIRUM2QVEzeWFBV2pRWXdjR3NZ''@;'; put 'put ''Mkl6b2xBaGxvd0M0TmVhRm9ob0tHa0RTSFJ0VFNtaDluTmhlREtScmNrcmNkR2xWTHkvN1NhakpwNVRFL3B1Y1BxOWdZOXRiOWVIZ1lCWXhjR3JiNXpPSWt1L0VoL2d6aVErWWtLcEV1MVAyWWs0ZG8zU2JxeTJabjh4TExPdGhLOUx3RVY0Rm5Ba1JTZy84MXpPNHQxUUVGakExalRDSmJIaGtY''@;'; put 'put ''VzZacDZscU5LU00yVXBVMW40YWxLeW8wZ01QWEQ4T2hLMEtZLzNOMDFEU0dETmR0aHZIaG5FMTNiT3M0MGpTTzJNWnNoeVpVYkxLY1JKNVpIbEZ4bXVWaktzNndmRnpGV1paSFZaeGphYW00aCtVVEt1NWwrYVNLKzFnK28yUW43NVFMa1dFcGltVGU0QXZpME93dTVXUlhlVE5SMnJ1VTAxM2xy''@;'; put 'put ''VVI1VEJrMGFQK0grSjVDZk1mZ2wwQjhMUE9JaitWeHhNZFNJajZXVTRpUFpRSHhzWnhHZkN5ZlJud3NaeEFmUzZWRVdSOVRSOEhzYUNnOGRzSFRwY1RWVTN4V2k0b2NteHpjd2hPNEFEVnhRQlZsVkpMY0VSL0pzRGo2dVc1cHpVazZNUnRuelltS2owYkdBVDY3T3pNUHEwOHFjVnI3K3h4NFp1''@;'; put 'put ''VmhJN2lkK3hybmVXUHlENE4vaXhkbEtUNXBUbkJ3cDVBQWVMeS93N2dWVWNtaDA2cDRwT3pRL0Q5UmNZSWJvSjlCVFl6SmdpaUtHdDk4NVBKS3MxbVROYlFLSDA4RU9pdmF3YnhwVG93anBTVzBxRWthQVMyRHJsblFOT3J6N0sxbVVRcFJibUsvczNzcG9wanNSUm5NZ0NrbzVLYXhzT3p2cEVS''@;'; put 'put ''YVdEdXA2ZlRSd09WRzJvdWVMRFZiVm5HRnZRZnZZOGpOTEhrM1VsNjRLU250Ulp0UXA3eklBZzY1a1QyNEpvSmJhTyt5aW1KS1dLZ2lQZ2h0QmZ2dFkwUW1MVE9ETG9FaVpIR3lzZy90aWgwNW9vSjJBdDk2MGlydjIwTHR6M1h5SURDYm5XN25RWmFSb3ZOZEZmVnFmVlhXMkNoWHI5eE5Id2ZU''@;'; put 'put ''enJDeDVoZEZHVTh1ZTkrZUZPeFhwd1M1QWtaWGRyL3VTZkgyTzlidFNraysyeGQyZWVKMVNoWHlYNEFIUSs2VTl5SWFSWkd6V0tVUno2OWJlREpGT1NqR1JYTWNGL1RTSHUyS1ZkK2pYZGgzN2FOV1hGWlVzaDlsMEZWMDFtN0NOejVmQ09wQUtncGFwQ0pXZURwa1BwdWRtdkN4bExnc1JkeXpa''@;'; put 'put ''TmRGOUIwOElSM2l2empFdGYvcjNISVUzS0xLRWwxbzF3bkpCMjBmSytpdEpidVRoeXBHWisyOGJHZWlIVWszNkJxQ25rZ3VPUDVlNEM2UEZla1U3dlB6Qjh4ZndYYm0rQmlkQnI2cTZBekVFdWV0Z2dTTEt0N1NUcVplVUh5RWFRbndSZFZDc3dKNENjQms4TEpxbVhxbURxQm5scGxUQVZoaERv''@;'; put 'put ''TlY1akJZWXc2RGRiV0RybmNaNkJVZ1U2TlgxWTZaelBsQXlWekFQSlBSTmVacGRKMTVHcjNHUEkxdXNFMFA0SFcyeWVBTnRza2daSnNNSXVaVUFUYVl3NkRCSEFhYnpHR3dwZjF5Z2JhMVg0emUxSDR4ZWt2N3hlaHQ3UmVqZDdSZmpON1ZmakY2VC92RjZIM2srRnkzZ0Ivb0VWMEUvRENCbHdB''@;'; put 'put ''LzRxVHIwUUpHTi9HTXRqbTNFc2ljanpYSGJITSt3ZUx6M1YwLzFTTzk0ck1FOG9yUEU4ajAyOWluVGZnaWdVejRNb0ZNK0FyY2NuZS9yL1ZJMDc5SklOTy9UU0RUdjhQS051SDdCRExoaHdReTRVZHdMM1QzKzBtUE5QM25CREw5bHdReS9WZXNiQk4rU3lBVGZrOGdFKzZvbmI1TXF2Tm4xYldw''@;'; put 'put ''ZDR2U1UvWGJuWGZZK1J0bE03b3NBQUFBQVFBQi8vOEFEM2phdFgwSmRGekZsV2hWdmU3M2VsT3I5NWJVMmxxOVNkMnQxdEpxdGZaK1dtenRxMjFrMlJheXNDM0oyR0JiWnJPeE1lQ1FCUUloSk01a2c0U1FZekloWUpaQUlDUXpXU1loem9KL2Z1WVBKd21UU2VDZkpIK3lURDRoazhtQW52NnRx''@;'; put 'put ''dmRhcmMwNDg4L1lVcXY3dlZ2MXF1NStiOTJxUmlZMHZaekVIeGQ4U0VENXlJMEtVUUJWb1JScVJ1Mm9EeFhLbnE2T3RwWjBZeklhQ1pZVkZYanNOcU9PSUZOdFRPKzMreVYzMGgxd0oxT0JWRElsc2I4U3ZOV3UwbXYwTDcwRFYxTGFleFdHTlVnblUvamp5amR4K3h1ZFhlZTd1czZmNzZydys3''@;'; put 'put ''dTZ1dlozK2U4NnY3L0N2OTkvL3Z4NS8vNzlkMjNkZW41dWEva1BoRjkzKzBOKytMbGpvV0xyMXVBc3ZOdnFiK3VxMkgreXlWc3pkdXpZNDhlT2pkWE0rMnY4OElNUVFWdVgzMFN2a3d0c2JpRzVBbUdNcGhGQzFrRkVpRENqdzRMZ0ZZWjBPbDIremhxeTIvU1NOK1pNQ2dGUE9OWFFtS3ozdUYx''@;'; put 'put ''aVlQUytrdTJHUktLaUxGRmRUaTRvOWIrcjhaY2xFbVgrR29TV2wxRW5Qb2NmSmhkc0ZjaUVrRTJBMTFjUmZXNEZ2TndPei9XaE10UXZiODBYQ2RJTEJCT0VENWl4MFdnZHROcnlCRWt5VEZ0TXhHQ3dEK293SWZsa0NLR3kwcEppYU9Vcktpend3dk9kOXV3L3FTU0dwYVFVa0FKcDlwdE9zdCtr''@;'; put 'put ''eEg0bGVwT1ErRUh2UW5RNmVpWjZkWFMvWjM5OHpqTVA3ODdBbFhuUHQ4N0V6K0RISDk4RkNEMi82L0ZkbjROL3V4NUhnSm15NWVkSUwva3pLa0ZCRkVNSk9SYUwrc3VMQ3IwZWw5MXNNa2hXUlBDQUhpUGNEL1BDQk0vQ0JMMW9xTlJ1RndCZFFSR0luQXBIMGg1dktvRUJiV21ndGNjcmhTUHVV''@;'; put 'put ''dXhHY05XSzNZN0dWQU5jSUwwbkR1MSs5NzYrZ2NuNStjVTl1Mis0dXFkbjROaHg1Vmc0R295LzJsalRkR1JSa3J0dHU2ZTZuZC8wN1pnWVh6UzNkMWpHOTdUYXZsSzA4eXJzRE9hZk45YVVLa2ZySy93UjI5TklqNnFXLzEyd2ttZUJzazdBY2cxcVJkOGRmTEpnYktjY00yTzlDV05SaitlUmlB''@;'; put 'put ''eEcwYkNBZERvMFF6Q2xmQjdnWDVpeFNFUVE4b1VoMytDVEVXaFNjOWttQ0VCWk8ybkdnaVhKS3czNTVPUUdMUWdCV05vTWJkeHFha29PMTlhV2w3dGNDTlcyMXJZME5wVFhsQ2NxdzY0eVYybFJnZE5odDhGa3JHR3I1STQ1S0RJN2NMSWVzT2l5NGdCTzRnQkRZNkJDZExzOFNiVG1mZ2RldWZl''@;'; put 'put ''cG9XaDB1TFp1T0JvYnFzUHYzNk9FOWl3bUVvRmdkU0tBNTRaaWNMRnVpTjRLSm1vQ0FYcHhLakZhV3plV1NJekJhelcrYW1rY2Z6WWRpemVscTJOcFpTSXhXbGM3VmxQRElBYlQ4VmdUdllVbzMvaVgvMGplUmI2RXlsRWNOYUlPdWJVMkVTNHJLUzRxTUJrRlVnNjhMcEFCeXRkNEJzVE9NNmdI''@;'; put 'put ''WVdPWUFlYXBydmI3cXh1clUvNjRQeGF2RUNWUFRCOFJBeFdjZ1hKbkJyZThqV212S0hrUm5acVhUOU9SRGtlQXJXQ3FwSGhrYXJGenZxVnZ0TGlnYnJLaFlYdk4wTGI2dnFxUzZickU5Y29uRXA3Q3RwcG9tU2t6MlJPTDlkVGxqWS9WVHJWM1R3Y3JPOE9Ka1VUMWNFM3pZTGgxcUgwZ3ZrOCtU''@;'; put 'put ''bHJpZ2NMYTBvSjRvS0o2NlMrcDNXTUZ6Y0c2Rm9Rd2xYSDBMWkJsQzNMS05xcEJHSG54a0R0SVlPQ09GVjBoQmE1eVIzeStDUEE3ZnZWdzBGZFo2UXNlN2tXMGo4YmxxL0FZK1FyS1ErSXplWHBjRzJNcUp1MWxzL0JLbjF0Y1BKZ1pIeDRleit6NitkbXovekxldGUzQ2tTTlBiT3RtYmNQUVZ0''@;'; put 'put ''YmFTdENXWXlHUzVnZ0tUd3dQVDJRT1FnL3oyNTQ0Y3VUQ3RxNHg2T1BuWTZ4dEF1L0grOGpmb1htVWxodG1obnFhcWdDWE1JY0JBV01kUmlEVzh5TFc2OGtNOEs1SEQvb0hJT2VtSnVXT3VwcUFQeVpSUm9TQnBodlRvZ1QvQXhYaENQL1lDQlRnN3ltbHZCNXZLZmF5enhvcVJLa1JicVhwUnkr''@;'; put 'put ''N1lNVVNKU2FGZEx2Z1U2QUNPa2pnQ0w4Z0JsNTBtVVdTVnhCdzZZMUdtMDV2TFlpV1c2MmwxVjZyWG1jM2lBWnZoV1EzRTlIc3lyTzZURmdVN0M0aDRPQ2dCc2xlclM5d3V3cHFYWkloQjFvUXNRbEVZNy9ENGt1VTVoczlmclBPYURTWUhJYThQSk1vbXZLc0JvZFpNcGgwMW5MUlpzZ3ZUZmdz''@;'; put 'put ''RG9mRlZhc3JkT2M1aERJVEJUWWE4bldtZkNJYWphTE5vck1hRENZTjNsMm9xM1ZaSEJUSEhXaVdGSkkyWkVaaE9ZQjBBdGJ0QUY0SHpZRUZkQURVQVo1R2dPdGhwc1J0b2xRVXd3RnFEVlBVS2laSjRaZXUreEw4NEtJWFhsajQ4cGRwZjVubFJmUUw5RUZrUlY0WnhvOTZOWjREd1FrNktNK0JT''@;'; put 'put ''RlRrNEhvOFlTbXJUcFNIRTlYSmF4TzFOZVhsaWZiYXl1Mk50Szg2OU0rNEEvZUJ0QmJJYmtRNzJrSDVBa2FFWUVRMjJwblQ3L2JYNFR6bGo3anZFT09aZHJDWlA0SG5tNm4xcDFkQUMyTHN4WlE3ek1nVUZJQXJjaTNrSWRVNldyS1dFUy8vWnZrNS9CM3lLM2l1WGJiU1RzL0NzMi9nRDZTcURH''@;'; put 'put ''ODVxNXcvUzM3MTlpWEU3R1hkOHB2a0h2SWlxTDh5RkplcmdCdlpqTG5Xd0dDbzJRQnNOakN5WmJiU0FnL1RrMkI2WXJxMWVwQ2tHaExBWEZTd1N1RkpocnVIaCsrZW5IemYwTkQ3SnV0SDQvSFIrdnF4ZUh5czNyTDdNL1B6RCsvZS9mRDgvR2QyTDNaY3YzWHI5ZTN0OUxXRDRZQVNOZzB5THlL''@;'; put 'put ''ZlhBQ2tGQUJmQTF5clk1eVBoK3hPaGpvcGtrN2FBeS9lbFB6Ni9sT2tiSERuMmFWeHhOckhZVkpobUU4Qmlzb1Jzd21tQTl4QXlBQkRKMU9IMUFHWlJzd0cyYjNCc0U0cWlHV3dwc1dsU0tPcS8vSXhrS2Q2U1c3Y1VwdmNWamsrOTJEUGRabit5ZnR4V3BIbXZwdmNIcXRwcWFzZGZIZmpOUjFi''@;'; put 'put ''YnU2K1laRTl1eFJ3R1lWblY2R00zRlpZQU0rcHdKakEwMkVJQTlTR2cwRS9BRS9XelFCendrQVEwczlRSmVCbDhsK0ZLb05CZnpBa1NZVkFaYXBra3ZYTTdraXBwS2R4N2ZBa0ZlMy9lSGQ4S0xRMzNkNDMyRDg4M05IWDExUTNIaHJZKzhtKzY5djdXdHEzeXpjTVdUS3BpYXBFVTNXaUJoL0dk''@;'; put 'put ''ZkZvS2w0MWRLSjJSMlBiaE4yNnZiTjFkd1BuZzFKNDJRbDRONEcycTVhakZ2QTM4SUNvaHpsZ0JIN25IS0NPbWRoODNaRFpiTTR6NTRGTU9XeDByQ0YvQkNmdDFQTU1GR0lCbjFZZXQrQ3Q1MlptVHYzazNDeCtRUmsvZEE1SUdGRit6T2tUQXh3MXdIT0tLWTRjb0F2ekxFU0F6ckVlQVk1MEFL''@;'; put 'put ''RUR1eTRJWkpvYjlkVTRBZyt0d3U0TUJoaU93UFZSTVZRaFJhZ3dTWTFaYnJ6L3dNRFUzbzdCb2ZhUmpoMG0vTHp5VlJIZUxiUjMzVEppdVhacWNrdERTcTRONHVzV240b21yK25lZW0wTHgwRXRqRzBBNk9kREVkUW5iN0VCRHV6QVBBVllKNFN3WHFjYkVFR3g2UFNDYmg1bGphc0VZOU4wUkhF''@;'; put 'put ''eGpEQlNIQTc0b1l1aVlDaHNBRDhOcVNPaWVvT3BiSWxMaVFRZkhGbTI4eVR4SXdjN3VtN3N2L2ZlNFh0Mkh0L1ZIdWlPMVE0bGRPVlhOeGc3L0tNdGRZUDVCVGZpTHpYczYrbysxUGFWVHg1OGRHWjRwcXlzZWFFN1ZLVThXdEZjbnU1TXhqOU04WnVFaVFTWS9KVEp4V0JvTUpNZXFuY3c4NzNC''@;'; put 'put ''MXdWdmh6cVEySi95dTBFaFBLQThqUCtnL085N1NmdmkxVXNYcUg4UkJUeDBxbmhJb1I2NTB5VVMwSzREVXM3MFZTMWhnT2xqSUJEVEVwV1ZGQU9WcWNxR21tcUtoNHB5aW9lNGthcXRqVHdNRlRNNTNwV1h2Z2ZiWkNYVXgvalhrMXVITTgyZFd4YTd1by8zZERYSlE3MG5CK3RHK2hzYiswWnEy''@;'; put 'put ''OGRqWFJDd3hNYmJMVFZUclcxVDNvTFJwdWJ0OGVydFRjMmozZ0s0c3JNR1A5UVlyVXczVnNVYUJPVlNVN3kwcG9pUW9wcFM2a1FSVkE5ekhGcWhkU25RRitpdE40TEFHZ0JyT3Bpc0hzUlZUK2FCNlFXWW9TQjRCblBzZ1VacmZ4bWRZeWdZWXJUMmNGSno0UVVyVEQrb2MzYUE1ZWJhRVdqOTkr''@;'; put 'put ''dW9MRFBxTjFNeVYxS0NreGRYVTVsVFhua0V5TXpJVGVmQTdBV3hnRzN3VXQxTmRUVWJYaUVQc3ZROHlMSllFTEo0TFI2SGpSa1JVWFV0TkNOQ05qQW9GZXBmZkVTekxNcGQyanVJdlppZEpCYUl2ZklSc2t2SURvaTZGUm1md3ZoNWZPdVR5Umpsd3pUYVRrU3lHL2hRZkVZazREczVVeUYzSG5h''@;'; put 'put ''bjhTWGxiL0JCSEpuOTBkeUREODR6dWV0QWo1RkMvQ2ZnUEFsMURENVpCbUdCQTFFdlZwalY0a1k3QnMrL2dISXlqZVFRaEJCa2g2cklpVEE4OVJ5MThGU1RVelZBLzNmZ255b2g5dnVuaFpNTE1KNCtHSTlYRzQ4QTQwbFg0NVRlcmUvREIyRThsNVM2Rng5OGNPNUhzeitpNDNFdXY0bGZBZDV3''@;'; put 'put ''SXo5cWwxczBubkFDK3d0VW1nUWRFZzdBeUxqelJyVmlWa2Q1UEI2L3B6emtEUWFaYm5TcUFpNUZWcmpldlNyS2ZXSm9iMGY5Y0dkLzlRMjluZnZUOCtQSHZCcnU3OVkxVjRZYit3YVNyZlU3Rzd1dmMrejVQeXNCTUVIeDVmY0xXOGdqU0VZajZKTHM5cGVYQ1FhaEd4c05EcXd6dHJjUkVWaVlS''@;'; put 'put ''MWpWRVBmcXNIRVMxRGhFVFZTN2lpYnFFdTVEcXVZQ3ZXQXdDRE9nZE8wR0dwWlYwVWdPaUdFd0NvYjVkMnlzQjhMVVVUVXRJUDM4NXEwa1NaeEVvaWpOc09hakVKQVZkQUlUZDQ1MER2ZHRoVmxrd3VGWUtCZ09XeVRmT3RlaWdnWWRXUVhxOGRLd2hBdFNQY1Z2anRkUnp6eDcwQ2daM0xBaWJa''@;'; put 'put ''MFg1aGEvZG5UK0MvdWJkOVhWdGx1S1J4S0QwNTBIVzJxNm5aWjVhNTdaV3U0cmJxaVkrc1QwM0JmbTlqdzQwM1lnNVdvKzF1M3ZGM0VpRnBIRERkRWJEbnhoN3NqWGp1MTllSHI4V0ZNc0VvN3RHK3MrM2wzbGJ6UDBkVFNPMm9yTEtyZTM3L2pBOXJrbkR1ejV4SjZTOHBLZ0gzc25NclpZZmF5''@;'; put 'put ''M3FycVIyeFludkx3S2Vsa0NDeHVUSzQxWXg0SjdIWEMwRHF3cnRYVVFHVkFQeDhDY1hlNnlGb0IxbFZnSUdqRmpVcXA4c2VFZVhBWS9kOCtlT0hIcUZMbXdOUDVyN0ZmK0JkQU9VUWQ1SC9TZkQ1NFA0MXJRWC9BRUVlUkZyeU42Nm5hb0NSZ0pjOCtZUHF1bzBHNHJMeTMwRi9tOWJsdUJ2U0JX''@;'; put 'put ''Ym1DT0tjTzhwcC85bUZuWkdIWTd0VGRqZUx4MVQ4TnNXMWZUL296eUdaeE10TFltdm5ReDJkbVp2RWd1eEVmcjlqZVU3RzVxM0ZHTFAxSVhDdGM5cnZ4VE9oWkwvd1BWQzlXZ2R6OEdzbFdDR3VRNkNPTlJvUmxzYVJHWVdSQXRWWDk1VmlXSjRFSUpLZzZId2pSSmxHVU5qMlpIYyttT0c4L3Yy''@;'; put 'put ''M2QrNzhDN2sxUGxVM1VkaDJYNWNFZmRsSDluL1hzR0xMT2ZuWmw1WkxhMVlWc28xblZFN2p6U0ZRMVBwRm9aYlNqdXZzVjhIemVMSkxLb1lrRzBpaXFMMmVVd3V5M3VjTG1lb2toanpoZ09xVXdZdy9heE40NCt1Vy9mazBmZlFNdDlSek9abzMxM2tnczdQN2x2MzRNN2o3VWU3TzVlYUZXU0ZB''@;'; put 'put ''Y1FtWUx0dVFEcXVFYU9henFOS2hEZE5PZ1NhNjZIeWp4L00wOURVWDNpVnZXYjNlLytCN3hQZVJDL2Qra3RvaWZ0NXhlZldTUVhGcm1QcGZWdlJGVnlXT3NmZUUzSGV0WGNBTGhoUkViYU0rVXoxck05b1BWN21uYjZ4S0x5T3UrVTArMXZnVzUrMUNvMzJZQmNkdkROeTdBT21BdzZwbHBScjBP''@;'; put 'put ''TXpWYTBJbk9Sd0M5d0F2RUNQQUR6MjNOTTRub2lwZ0w0WFRoVWQyNXc5dEY5K3g2ZEhmcHczVlQ1Z1dUbU9sbStMaE1aSzM4TW4xVCtOZG5PU2RtV3pKS3l5SHRhbS9kSEdWNGpjbEQxSlErQUQwdm5UUE5KK1dndFBqR2RNZndtNFpWODlMVHl0NmRQNDBrcVZqaWsvSlJjVUg2TkM2Q1hmbWox''@;'; put 'put ''TFpiTHBIbUluRmlFaDNFUWlQUnpZUVJZTzlpT2Z3SllHK1VrNXZyakFlNTd3ZUJtQkdBb0wwTzlEZVU3UXpwb3Z1THF3eWlvdUQxNXVtSzdveStTN0R6VnV0QmxrZXNuZ2pYOUxmZ2xwYTduY0J1bjd5aDBkWjdOczF3dU1ScjBCQngwUElCWnhremcrVXludzhIdFlkS09rMFljZ05BeE1Ib2FW''@;'; put 'put ''MzlNK1IyT2ZQejE2ZE13dVNmeG1QSkQ1WFpjdWY4ZmVML1VxU2lGZnZYVWQyU0RwcjJocTVHR09qM1MyKzEwMENIZ2xhUWRGRkxnMUNMdzNkSTNXWHVRSThHNk1pNXBnM0c1N05xNGZCQTBCT3htb01EWTZkZGVQM1hxOWRmb21LYnhJNEQ4NzlHL1NrcnRrM3lSOFhLcDdKTUlXZGVqSTlzamhp''@;'; put 'put ''RUZXSC80MEtsVHlqbmFYd2wrSGZwN1hTbWhjazU1V1BudmlIVzUydGw3L3Bwcnp1L3RPSlRKSE9yZ3VrZFZPck9Qek14OGRuYXg2MGluZktTTGN5elRPNVJmajdQOGxwdEdxekFLRUZVQjA5VEZTckljcG1qTmN6bnkzRmEzUFZ3dTBrUzVQNnQ3M0lHc2J1N0ZzZjRidTd0djdIL2lOQzdwSEIz''@;'; put 'put ''dC9EUzUwTExRMWJYUThpdThxNzJob2YwMWxJc0RGL1h0NVhxYTdDWjZnZWgxb1BRRUNKT3pnWTB1SjJ2b2Ryc2o3bkIxT0VKVk1OaHlyeFRKRldNWWpTNGRTWHNiVjJHRktNR0tMVjBETlVmYjltcm9VWDdXTXRXMUo1REZEeTY3TnQ0MkxBY3JzM2g2bzJwa2VLeTFlejJlVGdDZXJEQ1dwRnli''@;'; put 'put ''UitXYXhvclVkQjRBUjBTTkZVV0JNTEdFSWJ2dFFEcGs5Vk1wOThiOEVZaE43WDdWLy9LcWNYVU00OTk4NXE3VERHMjdocjZnREg2YVllMVh2Mko0RzE0c2VKUGpqY3RHMmZLZlNDLzVDcXBFZFhMQ0M1RmhBVmdzUkhJeFJqM0RIS05WaVNLaDZpREZHQlZ4SHFwQ2FKTWdxM1FmaTNwVXR2cjl1''@;'; put 'put ''WmErK1Z2YmUveWQ3V056clpsanZTTzNOL1pVSDBnbU8vdDIzbnhMKzQxajV1YkdxZW1HU0hHZzBPcXNIdTVvbldtc3E5a1RpYVpDbFZVdTM5Umt4MHlLalRXb3h2S1Nta1BKaG44ODZhRzZ5amdBOFY4QUpBYTlTaHBlUFFYaDM2SXF4LzNBSTQ5Q2UvQi81VkkxRVk5eDd0emN5T1VLdWpTRFRC''@;'; put 'put ''VVhEM2cwSFliOWQ0K2NUb3duRzhZVHA0YnYzbWtadVdjbnZsczUyYlNydm41WEUzNjNjdFBPZTBZNFhsMHcxbjltOFNvOFM4L2lWZENhcXNMa1dnZGNkcTUxakRRYjc4UGtuNVZmM0tQODR1NmYvSVRxWFBqOU16R3l2Z29SMHBVeWVZSytURlR2ZzdLZ2F6L01sTFBKZzdadzJQVFVrbElGQkQ5''@;'; put 'put ''Q3dJd0RoZS83MENQdi9jeUgzdmZqMDE5NEhCUzU0c0svcGIrZ09SU0Y4SEZDN0VFK3ozUWI2RWFqQ0YwVG1zdWxmSWU1YVhFNEhIYUtWeGhsQkh3MkllbE5KL0ZqYVBuRHp6NzNJYlM4Zk83WjV4N0FPNVhQdmZrbW5zUTczM3dUK2pTb2V0eUFTdVFpa2NwZlZybXBrYnFETGZVWTJVaEJzK0VD''@;'; put 'put ''NVE4Zit1clg3bFArN3huZ3dNZVZpeml0YkZNVUxlNmYxbXcreGVOSzJpc2IrMmZUWGc0N0cybWFwd0RBOENmeHJjcjdRWjIvRzU5WitxY1ovTFBGR2FXQzIvMkI1VnZ4Q1BrK2o4dzhHMFJtdGl1UHpNRE91djBEV1Bmd3c4cmI1UHZibG5ac1k3aGQvdmZsNS9DUE5zbFpDdUQ3bXM3aVhUeGxT''@;'; put 'put ''ZjJRVzNIZDZ2SFFsQVViRDlNRDZuaTBiQnQxNW1qbWxZNEg1WTdIQzhZaUJYNVU5Y01QWTUzeWRqMTViTnZiRnppdGEvQ0QrTXVjSjU4UzkvZklIckFNTEFzSkk2TVoyUnZVRE1wVEl1cHhKcDJVM0JjblA3NzcwS0Zkd0R1Ly8rWTM2WnlVNVVOa1l2bEZlR2c1NjJPVEhERHRRZ0lDRUxKOTZR''@;'; put 'put ''dGJ4dmp6TXlTRHcrUVZhT3RsYlMyWXhxOEkzZURBWUl6WVU5UGVRR2J4eGgzazY1NlA4dmdpQWpKTGlKM2xNMjZYdllWWTBCV0FNWEZBRkZCV1NrUTlzSVNvaDRqUUJTZ3JCM2k5U0dpNEp1aG1hRHhRT0dqQW9vaG1WRmIyZ2Z1MEhvUUtKSVBUL0xvcDJhMmxRWGlxSnhnT09JMkFXK1J4QTNK''@;'; put 'put ''elRZUlhEWU1iYVI0a3BhMlg0YnR2dWJsNEtwSGVXZCs4dDZXdnY3MnJZeVI2L1Y3cnFLbGxTMEp1amhQN3pmdVVpeDJCU05WZ1hmMUl2TmhhM3hQWjBhaTBKU0l0cnBwZ01LNnVNNU5ac0djT1ZJcCt4S2RueXNjNndZU1JuZ3o0dEErQWhvRXBmcnVFTXNsZ05xdFRxS2J3Nk5UQjFQazRWL25Y''@;'; put 'put ''QWxHUGIxV3lUdzJVL2RyYTQrYUFBSk56VzRzb1ZzRk1RVHpzY2tLTTZDeDFsaFI2WVRaMnUzTk4rakJDNWNmT01ra3JLNDc0K2NQdDdZZDdtdmVVblR4WnRxZTVmUHYyVG5saVFpYjJMYmVPakp6YVVsYzlRVjVVL3FPNlRobTh1cjkvZXJxLy8ycmdyMHJBbVI1NDVYSXhXT0htTVpqbnNqSFlI''@;'; put 'put ''ODhNRGQwKzBId2dQT0h1S0kvMlJlSEhuL0ZNUk9iYUxBT24rL3BPRFZSSCtncUtxNGZqMWNQVkpZVzlWUW5PdjNFWTAxYVZqbCtUVFhhSWp3VkdRcFZvRkh1TUlDeTh5Q1ZhL2dyUjFnSXhqcFZZaXBKenJFWTBDbWk5TENBam1ucVhRak5kdHhwbVBkRWM0WUNkRWcydjRYNlAxMDV5aUVhMkFx''@;'; put 'put ''MmFlaGpsbXZhVVRRREJPb0Z3NU1XbExXUHgyaTJuUmtadTNWSWJ4K0xTdzFtaVpXVThCblR6QURGa3VaMVFnbUhtdGVsQTcrcklnZXpvMURHcjNPWDF3cDhTYjNGUklUUjFRelJHeHhqazVNcDE0dnpVYXhNbFB4QVY3eHp5RFB0dmFSNjR0WC9yTGYyamkyM0tTZk53dW1FNEQ5dk0zYW05cFo2''@;'; put 'put ''eFFQWFdVeU5EdDI0ZHVuZW1zUnR2YVVzbTI2anVBa2NiTDVEL0FZODlJNXRzV05SRG5DaFNLbElDRlNOUjFNK0F4MWJBa2gxb1dnZjBzNnZHenNkckNMSXdubzFnNUNJSVFrUlFUZlByYndJNVRLRUFXK3lUSkI5WWVPcmQyT2x5SDh1MmFmN1d2OXg0NDgyRGd4TnlTYXNuWVBUbGUwcUkvb0N5''@;'; put 'put ''RjMvNlFHUG5kbzl6eEdpcUtBSmNSNWUza3c3QWRSbUtvWTl3SG5TVVlyMWd3MFJjU1JMNzJFWGQ2b3VxbmlrSFZRa21TQ1R6TUJsaFJnS0c1dXFCa2NYSnRHd1doR3BZbUFjRlJHdkFRTXVXbHlOVUhpdVBob013bnJKd0tCU2tXaGJiVmNYQTQ4ZDJ2SnJsVXF0WXJnTVVRdWVObGRXK3F4SkR1''@;'; put 'put ''OHAycDdzT3RiVWQ2a3BmWFR3Mk50YlJQamJhUWZSS2ZkZDhTN2hzcXJDa3A3VTdtc2djN2UwOTJsRmJOYXk4YjZ5alkzUzBvMk1NNkFzZU9TbGg4Y1BSWisxMEtWc2xyUmN4MFlNck0zcG1MVWhXTkt2VTI5YU5ic09kbFlzczg2TGVBV3JtQVFKY3lHbDNCbHcwUlVGVklSQ1V6NGtHN1c2WUtE''@;'; put 'put ''NDNXWGRUZTIzRHdNbVRCVmNsaVQyNXUwWDVFcTVMZFhjbGxKZEFvc0xWWEhab3B1ZmI1R2ZnditXanJYeklubXpDdklCeWtGMzFqMzB5K0tSd0N6eUkrWnpMVTlRMXliZm1XVmdXWGI4bWl5NkJON0cvcXFxa3VLcXF1T1BrU2JJdFdremZGa2RIbHQ2aXoxLyt6dktJK253ZjJrK3RFaEdzb09P''@;'; put 'put ''eWtxSFBHWXNnTUpiVzdSVUJLejRkNDNvRUFBSmlTMk9yYjRJT1lobCtuNlhJNjNIYTJlaWtkVG4rM0J5RG1CM3BZcU05MytTM2VrcE9idXRhR2ZMYmI1a04wenF4b29pNGwxN3IyYkdTRzRnQjNjMW81a3RHRml4cWxMZHpVMG5IaFZmUjNNNU5ZKzROb0RZRTNkUHM0Nm83VTFQUE9leE81cFZp''@;'; put 'put ''NmxBeFd3Zis4MVV2My9kQS84bVRQNzhmbHlxdnZUeDhCMWl6SFgraTQ2RVZHbDhsMUw5cTQ4TXdVMTlVVGN5b0F6RG41R3A4N0pPV3pKdWErdUpLOHFZYjZBV3FsODhUK0Z2WUFYSWZRRmM5VjE1RXNCNnJGc2hERlk1K3hpQ0pnbDV2SDlUUmxXVTJKZEJJOEpuZUZlRXVFY1hDN00wcGxpNEtv''@;'; put 'put ''SW9BOERCd3NSSFUwbG91WHMzTzliVFNKa2wrTUZsM2MxTzhQbk56VTNXZGZQS2thNmkyY2JMQXVhdEY0KzlVc3JPOVJ2bW05cGZvdDRiakRZbnFGSjlETjVOUk84ak9PTFdrV0xDQVh0SXNxWk9GY25xcWpleTVVc2o0YXAxOFhsWUlwVFZDV05zclVpbXN6NUhDcHFqeUF0RnZDVEZmamZvZEV6''@;'; put 'put ''Q3VOZm1Yd25mTXYzZ3VuMytoTHNlWmdRSDJHdTJMeGNEcDZJL0YrcU9xd3pGd3FxL3Y5TUFDK0J2eDRXcnVlSENkc0JWMC9DeU1oL29jaDVtblNFeTVQZ2Z6QUVTQit0VTUzaHJGa3BON0NFdzdySFVrYzJDdTBLbHovN1ZPblVLZW1samwwMUgvYVR2NFQzd3VaMVEvbUR0Um1QdkI4RUVRVnZ2''@;'; put 'put ''QjJla1Y1dmcxZzVweFlrNlNmWTNMdFFybXl0MmYxSlc0UC9xbDBiZFgzSjh4WlhMRis4Rm9LN3ljSUZTOWRUNXJac1VKZkJaMlppbkJEZUllSy9NUjNCb3pyM2l5MUQxNERoUU0wekNPeHFSYms3a2Z6MmEyelowOGlmOVgyOEt1QWVVdG90L1BaYWg4K1UzOEEzaGVKZldSUGZCQUwwVG40Q1d6''@;'; put 'put ''SlVBMTVWTzRVY29udmlibEU5NGc0MU9LdmFXRUt1WnYzNUpJYjlzVlN0U2xNOFB4dXFubWhybDRNamhjNFkrNW92R21nZVRSM1phcTBJNjJrZ0tmTDk4V2JJN1hEbFQ1UzZhOEJZVnVtOXVXbDErUnFSK1lvajRYakhXQmZBaDhyaG81N3NVaVRUbURhM2lXMmhReVRSY3hBQnNRM3UzbDdpQnpr''@;'; put 'put ''WndWMUVjSzhYVTF1MW9UQmN4SUY5VWEwM2pCMDFvaVR3d08zbnpqalNXZWZKK3h4T25aM29tOUIrNjc3NER5SDBVVkppT3pDU0RQUHFMbmVzYVo5VVpWUFFNcVJyV2VPWEdsVjd1cUdvQ1ZVSkxyR1ZmQUZXRHJFVGs4UkcwV0c1V2QrS2g2YWRLVURYRE1XNkJhUU5uZ2Z1VVNWVGE0VjYwaEF0''@;'; put 'put ''OU5yOVVRYVZrVnpVKzBPMWowN3VUcEg4Y2RIL25RblQ4OUR1N1BlL0V0MUZpelhJOVFDKzNYNTVIc2w4OGpGWnc4Zkh6dWhrTW5uemh5NVBvajBPT244Q3o5WFhvTFg2TTh0Skx2QW8rVDE2eVpKQjNXMFpRWHpTcEEzd0xKV2FSd09CeDZscnlVQXM0SVRTWkpUdnlSMjg3YzlZMFgzbjNUVFhl''@;'; put 'put ''OThJM0hIOGVHcFljZmZsdjVNK3QzZVlnMFFiODJXcjFqTnRBaFUyWWxhdGVVVWZmU3Nmc0VkZlhCNGN4bDFBd1cyQ3hFNlFQdDNxSkFXY0xsK2VrZGYzUGZiVDl0dnVXTDFyeWR6b29FTVNxMzRUdVhYcm1QOFBwR2VIa2RucmRKdnNtK2FiNUpvdm1tQkhZb2IrTEhzZkk3N0ZFR3AzRG5vU25s''@;'; put 'put ''N3creDNPWHlMbnlZdklEOHFGSU9GYkI4SUZocTNPY3ZwM2xnbXN1Y1ZBVWJvMUc3aDlwd21vSk1nM1pKZ2JoRlFOSWdyaUZ1TDF1K2xLaW9TVGgvTm9xckcxSnhITnU3emRUYzVNYkRrVEIyTnpXYlBoWHRhenBURXgyTzF0N1czRmRwR0RaNEkrRzdKb3VzNmVwM2hhczhobUZPczdubDU5RGZz''@;'; put 'put ''ZnpVNXJWODRFZk03ZHlwMWRWaGlOVjI0ZXZaUEFBL0JwWS9zdVVUMU9mSGpFY3htbFFyMGhBZXBTWG5SSExGdkdEWElnMk42VEJNSjRIQlpTTXdBUS9UVlY0d0YxS0VEajBVR2FKRE4yNmJqZUY0UXdQTWFYYmJsTUZURlg1WGRkcGFOSGxYT09LRmVWVDJOZDlXQy9PcU9kUFVGNVdXbDFFS1Iv''@;'; put 'put ''QjkrR203aFBNUVVYNkRqRThoL0x6eUcxYXRRVzFoei9KVjZCZE12K2F6MVRNNk9HcVFtVlBPRW10T3VtNjEyZ0ZtemlVdmlBVC9Kdm1NV3JyUWUxL0pkbUxYcWhXV3R1Q1grVE1xbDU4amVqS01DbEU1eFVwSmNXR0J4KzEwNUZ0MDJNTFh5ZUNwTzlURUlrYkRSYXptTWtqcjNMa09wU1h1bEtE''@;'; put 'put ''aGlCMmkxeUNFMWVBQjRLL3YyOVYrb0tWbGY4ZXUydTNsRXhXMTlZRUo1WlBwZUR4TkxISlAzdkRSVE9iSWNGNVhoeGl0NkF1YmxCZk5rZDUzYlhmaWxITjdrdFZwMHJ6cGk2Z1lkY3N5MEpJV09pR0oxazlMdUY4UGNSM0dFbUZMTWl3eW94VlBrc1NUQVloWHBCWGJuYUVnbUJicTNJWGMvbFNh''@;'; put 'put ''VlppdTB2Z2xtSmJIa2VtbGZ4enQ3bTVkNk41eVc4bU92UDVZZmRlVFQ4N05wZW8rTVhpMjUzQ2J1dEozNitBblVFNXUySU9hNVVZWFJrWThBTkdseE1LU09SRVRjSm5BdUI4d3NUME52QzZQNGxMYnMyQXowMTBMYkR1SVd5dDZoVjhtNVBqckgzamhoUmZPUFAvODgvZjlrbWFUY2MvZ2xzR0RC''@;'; put 'put ''K0VGSDZJcFpVYXJEQm5DN3lNWFdXMVJQY3RDUm1oaExmQXRXMUNZMFFzVVVYaDBnK29pbXFETWpUN3FjOTd2Q3dhTENrUEJvbWVDSWZhWERORy80WUtpa1BZWGVEV0M2b2tSZjl0V2dXTTZaQk53REwybTVrVUg4TDNrM0pYa1ZHa2RVQWFQS0UrVGM0TlhtbFAxU29FdkxqNndnN3ppdVpQTHNI''@;'; put 'put ''LzVaZEpPbmdCS0IyU0l3Tm1DejIzVW5ONUpMUmRMcTdQbGxEQ3pCRmp6ZCtpQ01sMVhzZlllYW0yZTY4UnRlMjdlZzh2cWQ3VzA3cWxmS2lkM0w5MEVmVGVqNzZIdjROMkF0RkxabDZNUUNGVVZvemtGdjQyNTJJdEdTMHVpMFpMdlJVdExvL1JYelJjdnQ0TVpNWVBkdXBITkxkK0ZpYzVwSkR3''@;'; put 'put ''aElZQkJ0dEo4QkRqMkFzRzZvNGl1WFFoa2ZrV2I3bVVycmVEeU1SQmdyTnMyZytGMnVnQjVuY0Zna05wcGlqbGVSMTRSWGxXUVNmZkcvTFNxTlZGVWJ5c284VHNMN1haSG5xdTh1MEFmRDVlRUU3YThCcThqUDg5bWNnMmwyWDZlT05EY3ltZ2UxMU9heDlIcmZEL1A4Z0QrSmROTGZ0UXBkNVFC''@;'; put 'put ''NTd0Z1lHN3F6UTRnUFNJQ0xkR2ptQk0xYmNYS2F5RXlSc2hmWHVoMTJsV05SWU5pbEt1eDFCS2lsVFFZM1VLREcxUWwxcnkyTUd0Rm95blhyaTNOUW13T3JNWkh1TU5XUVZmZzdCTEVZYmVqenlQRFV3US8rWG1tYURlQU9RajZlR09ZRXhvTWx0QkRtOEFjeThMa29ZOXVBbk04KzZ3NTlHRU9R''@;'; put 'put ''OWJDdkp6dHh3eDh1UW9HYUFBK2kvQkhWbHZrUUZ2bGJqdFZqUlRsQm9SQkFSbVFqaGgwQjR5Z0Y4VnBjRFBWcFNZOWQ1UllOT2V3T2FCeHZxcWJ6S0Fvc1ZiSWtxTDFUWDQzdGd2a2tGYlFzb3dHUDREZlQ3WXR2ZlV0WHRseTU1M2t3cUx5R042aFBNWnJVZHBaRFZFS0cyVi9GUmIxVVVJZ0xB''@;'; put 'put ''ZjFXSUoxdU5nQkhHekhSQkFIU3VubUtjNzkxYlFhUk1CSDRRWHBybC9KTVRKMXJzWnNZT2oyd3RoOUxCZnBnRVlKMmdoaDNXMVgzS3FVYm1sYTFVbzQ5WTdONVBqYUZpQjlBdG0vVVVPK1ZrRFRDaW5VRUlxQ0ZQcmQxUEx3ZEc0K1ZqWEZXbUZjRTROb2hRc3ZUZmwzSms3MldQVmxheVhWTy9u''@;'; put 'put ''QWpyV2xWSFBSOEVSZGk4Ni9Xb0NiVEFjK3ZuTjFhUlh3RmF0QllueGVxY3JDQ2NaWE9JYy8xOEljUkk5dEFuTkNnd0ZaT0xvSnpQRnNQM1B3bjhHczhQbnk5MmdORDN0V25JOW4rZjNyK2dHbXhsMDVNQWZCdXErQldmNHR3QVRaZU9KOFBNdVByNE1CYTRYamJEeThuN25sUjFhUEIyU3FDbDUr''@;'; put 'put ''eVdvYVNsQ2IzTHphMDVnMnNQVUpZNDZya1o4UGYwcnlpOW4rUkRjMHl3TzdZMXJKSmJDQUtXbm5KZVcwR00yZGxNRDQ0eC94Z3JTK3ZqZDI4SXEwTCtESHNsVnBPTENJaTVhK3dXdlQvbmJ4YWNBQnE3ZGhlcVZPMVN1ZldZY25Wa1BDOEZTdjB2YVQ2M1RQV3BpRHVHb1RtQk1hRE5EMks1dkFI''@;'; put 'put ''TXZDNUtIbk5vRTVubjNXSEhwNmpRNmp0V0czUTd4U0FwWkFmRVpFdURZV2lvQllSTkxldEZmeTRvL2NlZWZBbldlSHo5NHhjTWVkdDUvTnZqK0wyT0t5VmpQakJSc1VSWGVwOGEwTDYwaGx4RmZrTll0NkhSaGF2VERnWTFlRm5Lc1lycXI1bGdLV1NhRWxBNTVCY2RXU0l6Z1h1Y3RSSHI2R0tP''@;'; put 'put ''YXVEOHJXaW9xS2FFVlYyQkZ4c0IwaTJWSnpLWkN0cXFjeEl2SjRNYTk4MVZGT2lHQlBrbnd2ZWMzNXZkZnVyankrTTVFRW1UNUkzeW41UlFXNHBpa0RrbzByRDJYcWxCODJaNGozMXA2Wno4NjIxc3pYbmVxaEVsMHpyL3g2dUF4ZkV3Q3hmcVByU09kRXAvSlFnTnM2VmlQQzZOdWs4c0NqNitW''@;'; put 'put ''cERjeEI5T05OWUU1b01GbGJ0eDdtZUxZZnpZN2x5RGYzbDltejJ0Um52YkM2bjV4NksxcEhsSkJqd0JWNkhkWWZFTEc2ZkpiZFBBcG1LOS9qeXZmYXZQYXczeWF4NmpKM01xZnFLcFN0dWpwMVlhWHFTaDVqVlZmSFdoYzZ1eFphYnZwMVIwTkQrK3RxWFdLU2ZCZGtmdXBaTS9qdE5IZmxCNDRv''@;'; put 'put ''QmFVdlFNQXhyeFZUZS9qeXNJalZsSFd4V2xZNW53WE11VDBsbTV4QmY5QWZEN0RWcm5YN0ttSTRwUlU2cFRSTFFKTmV2YTNYZG5jZmJFMG1XUFh1Y0txK3M3TStWVkhkMWxKVDAzcUtHSnQyMXRYdGJHb1lMK1FWdklkcDVlNWNZN2lxb1RHdU9EbnRlYTNCSzREckhqRHVCSFZQYlhSZEFCcmNr''@;'; put 'put ''M1A5a2dhUHBiRmMrSmV5MS9NR2NxOWZ6UFkvdHpYbnVoRE13cHRQYy9tRTY4Sjk0Q05Xb3dZa2swT0RUNXJvaWtwRk1SRFZCMzZBRzV0SUV4Wk44R0RSS0JBa2lRTmdxYzBBVTdZeEREWkw0RXlZSlFwbXVZS3ViRmZXVmVsYU1NTUdZQ3NReG8waHB1Zy9Qc1VZTW9uRU5HbUFtRkNVaUhnZ3ow''@;'; put 'put ''aW85OHNUK0ZhelJhQk93MHBkQTUxeDZuSk5MRGpiWU5DS3plYmN4cGEvL25tMi81L25VV1ExZ3N6UzV2TWczYUprdU9MV3NyeTJJVnBwUnZlRnYyTVhETWx5ZVNxVlNJQ2pKYWN5cmMySmhrU3lyaFo0TEU1RG4xQXdsSi8xdXRac1VQRG1iUGxneXpscjF0WlJZenZPNXNKZjVPdnNIWWZENVll''@;'; put 'put ''NzloNWZxWU5wdXJxMmZYZFJhSC9MMnNWMzVmT0R0RHltcFk2dnd0ZFh4NU5UUTlueW1PS2llRlZsZGM2aXZQSTVPZUYzMVFSRDNBNVdndTlNYXo4YTBHTnlTUkRyZGNrUUVmVU5oVUNmQWd6QmNSNUlHTVRHUkZTalJvZ0tSR0QwbzBnRURTUXlWY1hpSzE3SnNoY3NsUTlyOUFwUldJQzc3ZkxB''@;'; put 'put ''Y3NVNk9IYSt3ZjRzdUo2dDVZZVplOHZ5MUxxLzByR2x0U2o0S3dmeTEvdTFCWjNYWlRhcVQ4R210VzZ0Y2ZpR3JuWGxLbGs5RkdONnJvL3J2Mm0wd1hXcS96NlFjLzJTQm8rbDdibndGN1A5ekhIOXQvd3R0clpKKzNtWjkvOXVEdDhOQkd6THVYN1F3K0YvQ2RkTFdmOHY4LzRmNWRkZmhldGgx''@;'; put 'put ''aitIbjN1UTUrSHFXYTNOLzJTMVlydGtwNDB0cDJRUHZuQ1ljQjh2eGZCb0N4MzJWZFhBZElFY2c4WEVaRDczOHBTY1Yxek1hOEhDSWJwSFFuTlJzdTVKZU1YbHlsMFB3bTlzNzdsbGVQaGtUOHRDMTU3TzhPU1JzdDZCWTUzVDVhMGw0K09kOHZoRUo3RS9kUFgyc3dQZE53MzFIc3NNRGZiWDla''@;'; put 'put ''Y25heHFpL2I2bHYrem9rcS9hMXRsOWxZWWZVc0xzeVRpM0p5cGQrTG9qeGRzRXgrZmhqYTVUZWoyVWMvMlNCbytsZmJud0wyV3ZyKzcvWXJiL3VTbHVsenJRTmxKSStsbE8xVWYzVFFEZmEzVUZpS1h2a0E1WWZwSnRJSk5BRnZXakxGejIyWXJBKzlBeXJRYWF0OGd0TllDb09YY0hHYzZQeGtx''@;'; put 'put ''TG8xVWxmNkQ3M1g2b2ZzQmZwbitqeGFXeHBvV1h0TGN3Sm0wTjFrdHpzRmxmMXVzaU9oSUpGeFhxOURxemdhaStMTDBxckZ6ZDBKY3QzTWlYelYwMTNNaVg5ZnY5VmY3SzBEdjVzanF2dW1YU3cxeFpDZFJsUER4MFptQjRTOUcrN29vSXZCdlpXclN2UnpsWC9IS3dNdG9mKzA1ZnpQY0RmeFIv''@;'; put 'put ''Y0U5OTMrbUJhT2xJYURvSkVod3JHLzFsL044OElNT1BnaERYeFg3dnB1ZkhzTFVyU3Z1ZHEyUjQ5ZlVWR2ViWEwybndXUm5tMXk5bSsxRmxXRjJQb2Yzc1VmdTVOMmZObWRlNWZUeTNWSEdUdXNQMTY4NmIxQjF1dUVDOThXMjFCSkV1VVA5M2xSMHF3dnlhc3NNc1RpNnFPQUZjOWVYbXpUTFpQ''@;'; put 'put ''TlVDZW1CZGpNZDl3bk5abjNDaEo3ZnQ0V3oreW9nZTNLVHRON0orbzNGVTNaTzN2RTJvZ0hpZ0FLU3pYVzRwd3BLdUFJdVlEQmdnREFFU2t6bTJIVXZQOWhXd0ZWUzFKS3V3c05CWDZBdjY3WGE3eTArekwzcWVWRXdISW55N1hwS2pxVDZOd2QrdkNOZlh0YnZMR3JLNzk3Q24yRmRRWUZOK2Mr''@;'; put 'put ''TEVmV1Z0OVVFZjN6M2s4M2dLYkRqTk52U3A5WDdiU0MvSWFneWwwUXRjOEh3bFdLY3ZoaGpDZ3cxQ1RZSVlEVWFNalRFc1lmQkVONzhMNWx5VjNLaTJSWk1wSGJDNGhZTjBEUUhQaUlUUFVrMDBzUktBeEhwZ0ZueXdKa3krdmJrTnBtUkhQQjVQeHh2RFFXY2dHQTY0L0hRVklvdWJUUXFDUVl2''@;'; put 'put ''Wk5YU0ZjNHFEU1MvRG0zbDlnZkRjTFJ5QmY5RUtoVGtXMXhZSzArSmhodE5QYWdYRGFxN2dZeXhPREt0eDRpL1d4WnU4UHBiSzdsWlZkdS9PNWhrK3htSlYxaFliMFBsTjJsNVMyeEpzR09WOHl2WVlzcllSdGUzQ09qNk5ReHhqSmk4Q1RDK0R5UmQya0Q4aEk4QThULzVFZ1FCR3pSdUJCSnpK''@;'; put 'put ''MXMyK0MvUkpFWXpwTmRua0FNTHJnT2JhS255WW1oV01CRDA2QVB4cnkrNzAxYWhPc0ZZd1JiVlBkRk5vdEpycVJGTkRxMXRZTDl0aUZmQUtuQ2lxQmRHNXdOVDlkdmg4dnJBdkZLTFZDdUdBdXFRVldGOWJvaFl2b053U2szZDFyS294ZWVpaGt4M0t2MnVGSnAxTGY1OVRaL3YrcnFhbXBSL242''@;'; put 'put ''aW1lVDh4azg0a0xhUDg2T25QZjdWeldkMXRRZGRtYVhDUTJvUjlzMGxieit3U0FlWXJucUVEZWg5blpHS0NOaXJFQnMxMU9lbEhIOTFXcUoyTFErbnVKU1NFZ1VSTTlwb3U0TmxxUk9McExWUHNmMEVTTURET3hVaDRqZXVVV25uSHY0ZUxFcFloY1dLUXBkeVk0VEFjdHNKcmpFSXFqTTdLRFJn''@;'; put 'put ''d2hUUFFHY0FCQnR5QzZ5YndJK0tBU1hIa2RqUFFBelZScmxGV1BOMkxsUXN5UFpGWXBwSUd5T2VOOUc3VWd0SFF1SEE3SHd6RlBoVE1jRElSWWpsdFM1K0RWVk1yYTZtWHE5eU8xZ3ZtMXJSWTZxMkk2WFoxdGRTRnpFS0l1NVM5cVFGWHN0VHBoc2htWXZzV1JVOVFNNFJXZVpYWE5HK1NoRFJ2''@;'; put 'put ''a29kZjYrUWJWUjJCN1o1bU5pcW8yNnF2cjJ2SjZZMnFqQnJpTldsVGJLcS9UZmJlOExmQktQdkVqZmtZSHdBczF5SW9TcUFYOW1VdTd0eHBMK2pLc00wQW9wL05pSXVqb0VTNm96OGZ1aUJ2Y1VhMUN6RXlYY1FTRGJ0NklWelpoUzVKK0JzSm9xdmExZmIxT2tuTncyL29tSml5S2R0NFFyVzBt''@;'; put 'put ''VnlOa3BPZTg0UGxzMDh2QTAvaTdwb2Ftdld0YWFwcFR5ZnhFZmlKV0ZmQVhGN21kTlAxZFlOSDhZbm9jQUhlRjlYOUZSVFF1RFFXclFpRmpZU0JVaUlWM3JJNGVxZ3VYZGNhTEE1VjAvYnIzQ2txbElmNzZPVEI0Z3VrUnZnNndzUHp3dXJXQ253Qk1KZE1qUEVaYitBUmYwMjFhM29ZVTBBVXV1''@;'; put 'put ''ak9Vcm5qUzQxY0k3cytlNDhJTHF6VHA5L2pabmlaTkx1aE9XRTNnRlNidnVsT1cxVkt1K2h2VWhpQjQxcmZaV3I4ZkhaTE5idXIyKzBIUXFSRUowSlZqTVljcFZPOCtQeXVzakxhbExMUlpLVkJlQXpCRnQybVZseFpCaEptZnQyR0pzbE5kbGsxN2M4YytyNVlMYktGektQSG1uMnpqazFncEcx''@;'; put 'put ''Z0t3M3hLYXZQMCtOK1czbEpucEs3bG9HK3RyTUdBampXdHlRZHJOY1Q2N0w1dSs3cDkzYlEwV0wvMEZ2UTNDbko0bnAwM21lQnlpSC9QL1grNEhtUHlPYUplZjRKZnAzdXBtWjlSby9vWnpuVXl6K0o1NFY2QUdWVmhQT2c1RHZPY0JzUDNaTCtvOVFQOWY1LzVCRGpISjZEOTNNbGdSamVHNGZz''@;'; put 'put ''eVNCL3dVeDZ0dkxXWVRVWlJEeEpJdE4zcGF6WjY1NkU4dDdiUk95V2wwclFZMnkyNVNaOFNBUC8rMUtuRnhiY2lSeUo0aS9LZm1hTWQzOUgyZlRTdyt2QkJPYzlza2tScTZRMElhMVhpWm5oclUvZDBac3V6VjdaNSt0Z25iYkZyYXVxTGJsYjdneVV3OStyemNjUDR5YUdoaytONGI1Vnk4VC9E''@;'; put 'put ''UjhKNFF2bHRGY3F1V2QyaHJWa0JIbC9mQ05la2hQbDA0NnRpL1RHZzN4Y1pYZXRVL1dybDhIQzloTmcxZU1EcFJiVHlyQlBaOVRFRCt0d216N3FVelVNWTlxR2NkYXBNZHAxcUFUMjV6Z2ZrOGZtNWJDNWhZUkp0dEo2R3JXdlh1TlMyKzFieUhOaXE3aHNDeFN2UVBiWU9vRktMbk02ZU9HRWcy''@;'; put 'put ''U01uakhScnZWYXZ4eUxDRW1leHg4V0tlcWxyWWFJRkxwb3prUzEwY1dQN3luYnZIZXJ5L1F1emRCLzhMT2xkZXFzcmMwak9ITTd3UmZ5cFQxdzk4K21yRjVVVS9sN21zQ3pQTnpNN0JtTVdmZzcrQloxWE05b3VqM3N4alVUME9wcGUxd3NEd0VNNnZVRjN3R0lrb3FpbEhNeVNTY2hKT2lTVGdR''@;'; put 'put ''QkN5ZVprVTJNcVVCK29pMVZCZDM1bk1Cd001Y0c0VnlkcFY4eEJqdCtnVzNPT2pPcERDSGs4Tzl0NUpCdzVLdk1DODh6UlNQQzZqT1pJS0xmbDFKdmpXMWJ0ajJxc3EwM3pDdlRHbXRvVWN5bDB1VVhvdUo4NkY2cHZjWUxSTnFYeTc5UHIrSUxYUDFQYTd1QzVQelgrN1FVK1BjSDRONlh5NlNz''@;'; put 'put ''Y1hubWQxa3VyOFBSNlI5WS9QY0g0TjZYeTc4MGJQdXQyeHI4N09QOGErYlBZSG5nMnprWjFuQStzNDMxZU4wM0hlUlVmNTI1dC8zdzcyei9mZ2Q2V1MrckFHYWt2S1JiMFVoSGRmWWgxdU1BS0xra2VLOXJnZWVmNDZub05TUkpud1BQMURLS1ZOTWE2Y28zcU5lVWE3OWlvZEYyTmgzRHFuVnF4''@;'; put 'put ''ZGNPTmlqWFd0K08xR3VaUWRZU1dhZGdOVW5Fc0tHNmF5YjZDUXdKSTc2bnJOOGhwZXg4NGVKbHpBNjVmRkN2V3BMWXRzNWM3UmtDdGYyOW45ZTh5WFNlb3c2Syt2cFRveEpJaWduVGdMaUdnRnhIeVZxOFQ2Tmc2Z2JaU3FkYXViTEpPb0tObmFOMTJlV0M2VHJBR1RsMG4wTUJGdnVjdlhnbjRa''@;'; put 'put ''YXVnbDBFdkxhaDlwNHA4L0lPOW94dmhOM2xOK0hKbCt0c21wVFdMQjJreFVuYlp1djBjZVRxaHlSUEk0dVFtOG5SSmt5ZHNLT2Z5RkFSNW9tYzhsS01YNUh3dlVNUmpBWXFZNlhtVEtrVmlHa1VvNnNncG1nQlU2N09NQnNMOHMzV0VpV2NSZmlWdDVLbzE0Q3A1MXJYU1VUTFpZZGpscUp3Rzgx''@;'; put 'put ''UWFUQ0FNZm1rVFd0RWdueDRYZ0dlZDY2bmhLNlhuVmF5cEl1ek1IbC9COWtPMHMvMFFDZlJ0dWFBS0c0U29teGdOTGt5TTJhSklmVmJONkhYNnN5WU1BOFhHbzJCc0FNTjBONllnNktaRnZpZVQxejRpWDNaWnNucWxqY0ZJYm51blJuSjBZM2hXV29uMjV6UVRLSjdvZVFZSlZNMDJhWGdCVXpU''@;'; put 'put ''cm9kdUVvOWR2M1BCU0FjQ3BkUnlja2xmMmNnUjhjZHZhS3N5MGFhdzVkM3ZIUklFbHhQaVBuU1hDZURTdDh1ajZYRWdKK0IwRnpQK2M1UDRudVdhZGo4cHJPRExaR282RkRXd0h6NldmeStiU3Rad0tiL3R5dGtaRXExSE1yZjlnYlZsdEFNdmJBOHdkRzlXZ2dOOTAzNFp0aDFmV0FyQzFENm5u''@;'; put 'put ''b0d4ajU2QUU2TnFOQzdRK0xSck9vL3NxQnRSVHBiUXp4MW5PWFF0MjJKYS9RTEFnRUhUeE02Wm9VTG9tYzdIbTFCVHk2UERkazdac3VzSXhmMG85UFlWY1lHZWxXTDFxZ3NKZjVIMzRXTzVSS253ZnpqWXlDM0ZNQ04zR3cza3JtRlFCWW0xZENBTjdEZmhXWFNEWlZad1N2YmJEYStQMHI1L2Y1''@;'; put 'put ''eWxmYlVWblRjYlhIUFE3QTY2QXkwK3QyN3BVNzhyV25hUTlteE1uc3l3aXpjL2R5bk1TNTBhbmF6ZjFhSkVkMElxZDhjTDRzWVhYQytHdWRYekU5KzlRbmJtTDhZS0V2cHRUSTNSQ3F4R0M2N2V0YTh2WEtDNXBheFJZbWtBNWJZOW42NHZtMEEzcitJaWR3Y0o0clgzVGVrYStiNGJ5MmpUM2o0''@;'; put 'put ''NmduTGJIdGJZYjVnMTUyNHRxVzVvMy9HQk8yeFBadGh2bHBuamJTOXB6c2FHQm43MUM5eVhUR0RpZjdzaWdGZjEwbnhNWlFPcW1JYktYZXR3K3h0VDV5THJSa1dWaUlEOW5HL0hURyt3ZHByWDNONU5MVjNpZWlwZWVwM0orNGVEWThOQW91WFQvNk9qR2ZXVDNkUkYwRnRqeUJuVlhsOXBIT2lr''@;'; put 'put ''Rk1xTkR3Mk1IRjhpbGtaSDcxVDU2b1k5dlFIU3I3bWd3RWJxbllZQ0dHbjBiMWVEbklVdEl5TzVvVUNmTmdva254L3d0cm9haW9nWlhTL2w0alBUNnkxdGNYaTk4OExQbkRLRVhXVDRseko1ejJmcit0YnNsdEIwU0t5a09kVDlHTHdiOXh2WmpOTEZlNlNaV3VpTmhIcVFVWTJFeXU0bFd1S0pk''@;'; put 'put ''R2JuZlczQjdaMmQxUXBZVDN2SnlyOGZ2OTVEZXpnVDluT2hzOG52NFJiN1BZQnZXZzAyem94WTJnaG9yVENhZmNnejltb28rOWVRZXdPa2swNFlDdlVPbmFrZTJvRWVuN3N4UXo5K3ZXRkdJcDlwTHZNTmMvRUg3UGM3U09UNG04Smt5UnJja2FjUHZKeStCWEhleDU2YnBma3dqMjkzbXhyalBn''@;'; put 'put ''SVZlZGlqUkpEV3B3TVB6MnRFbFJCamx1eFdDSWJiWmpUNGYwY1B2MlZIYTNBTlVhU29Hc0NWUTZIQ2JIQjU5eHBDc2NXc2Y1UHpkcE4xdXM1aDlwVWE2UThoaUxpNDEzYTdTSkVQWGlkaTV0VVY4NTRVZXVMS1BocVUzT0IzWnZTaGVLUkJTTjVmZ0hjZjREcE8vOGR6QjVLOVJlWDM1dWVWdkl5''@;'; put 'put ''c0tzaDRLK2JuenEvZTVCYk45Q2FzUG9QOEt6MStXaElKVnlqTFBUYkk4SmRjcFhGZmVvZWxLMUkwck50R1ZyMmk2RW5VRHhFWnREK0luMzdIdFFkeVMwL1o0dHUwY2JscW5LM25iaTltMmMraHJQRDVkYnFGblYrYXVuN3o5ZSs1THZQMTcxWmVJTERmVE5RbWVaMmN3Rjk3K0hWOG5lL3QzS2d6''@;'; put 'put ''UDF4L0w5cE9IcnQwa1gvOVNObCtmTjRJMnJDWHRSdS9aeEU2OGtsM0w3bGJqM0RyME0yTEJ2ZTk4N2o4OW03ajNvTlpHYUwrQ05vTGw3VGUxTmkzNEEraFY4Z1R3VFRIam1iNjFtd281enppMTFEaFBybjUzNVFzTHlOMnJ2ckdBemltRDcwZS9JQmRneHZrMDY4ajNDSkxTN0I1QmVDYitQbnRt''@;'; put 'put ''Q2FxUXkwcXN3T3VyTm9VSlRMa0ZDNElPZHVMWDZtZnJOeDBLTHQ5a1dNR2M5M3g4K0lmQUd4RStQamJPUDhBNEhkbHhNcGV6Vk12dmpxSHplQkkvRGxDYjdMR2k1d3V3UFZacnpoZDRxajBZYkE4RTJNLzVZRnVRdjROTEhFL3R3RGRmUmg4RTJrTlFZd3ZBNng4WUQ5dnh6d0ZBb3QrUG83czc1''@;'; put 'put ''L3R4TW1nUW52eGJYbFJWbDQvMVZ2NzFOUVlzV3JESkxKcHl2L0xHbWVjUXpHWmh4bTYwU2JyY2I4cEp2VU5EOXEwM3ZMVkVXd3ZxOStVMGI5aHVnMi9NV2RjV29wSEdvU0ZaMXI0NVoyaHk2S3FKTVhsUUh0amFVNXVwN1docTNQQmJkRnovaFcvUktWL3pPWmdEVzk3NFYzL0REaDVrZitpSDRW''@;'; put 'put ''cmxjOXIzN1h3SzNnQnM4TXEvZUVkOVAxYVQreVU4SzEvR2c4SFRyOGNSL0cxNkt0RXplb3hyWXhuc0Jkd0ZIcG05Ly83WnBZdWVwNS8xOHYzQUFCZlQ0QVFHRjBsN3BRaEFQZkpJLzdOUGV5NStqOW1EMzZubkk5ZWdIZktFRDZoV2pIVWlvV1VrR0pucHFmUTZNSGNRYlI4d1ltTEMyRXgzakdT''@;'; put 'put ''M0NWbFlEU3RQUGNGckRVckVZOUVxdXlNRTRhSGRHY3FEVUhMbDJLY0l4STdjV1U5MmtKVmNDQzB2QTFSNy9Td3h5bllJMWI5bllPVGVlZTlZRnhHNmR4VE92M2RJM1JXVXVhNE1pOHJQOVFRSGxEZEtGN3ZuMkpIS25jZjdlajNtUWs5dnorRjJ0aWVvdTZtMzBHUDI5SFlNMGU5c3dVV2tFTjhK''@;'; put 'put ''dWs1OGh0QjlHTTdzYWUxMzBuUGFtVk1EYm8wQW10ZHY5eE5oYVluKzVwd1J4cys0TUR6cmRlYnBTZTEvL2JDSnQ4WTJQR3lDMTJIQWMwQzM0MXAxcmVBSnJUNERybjlEdmI2eVJzdXZYOHBlbDQ3blhyK29YVWR6QjNPdnY1SzkzbjBxOS9xNTdQV0ZlZTFzdEcza0hwWWpUOEM4SXdFbmhubHZY''@;'; put 'put ''RllEczAvbVZOUGs0T0VlRm5SWmM1RnhranRkZjFKeHdtT3ZYS3lvY2RkamEzRkQ0MnlPRzRpelA1MHo5cGV5T01pN2p0dERXcnIvTlhaT2owYnZwRDJ3VlR0eEI5TjZPTGl2WDM5ZnZ6U0svaC9pRXp6NkFBRUFBQUFCQUFCVkVyVCtYdzg4OVFBZkErZ0FBQUFBMDhHZGhnQUFBQURVdnFiMS96''@;'; put 'put ''Yis0d1NLQTg0QUFBQUlBQUlBQUFBQUFBQjQybU5nWkdCZ1B2ZnZQQU1EeStiL1p2OXpXTG9ZZ0NMSWdORVFBS2NOQnJnQUFBQjQybldVeldzVFVSVEZ6NzB6RkVFSTJFUlFRb3pHWUV4TXFrbTEwV290YVdwaUJXdnNScXhZRjFJWExsUzZVRVFGa2E1RVJWMjRjMVhwMG9WS2QzYWhDQVg5QzBS''@;'; put 'put ''UXV0Q0NDaFZLb1M2TTV6NHpFcE9hY0RqejhkNjhlMy92ek1nU1RvTS9PVXBGcVJRcU1vK1NUaUdoRTRoN1JhVDFDYlpJQjBweUJUM1VObm1BTGoyQmd4emZMeGVSbC9Yb2s5bjZWMzNKNDl2bzFGUEk4djRtdlVtZHhRNjlqbDA2aW00OWp3eVBDMjQ4NStvd2l2WWMrbUZaUWRpN3hIbUxDT3NN''@;'; put 'put ''YXZvTU9WMmgzMENWZFZUMUM4OC9vaW9oREdrYzYvUXBqdWtCbEx3enFIaytsZUg5ZTZnNmYrem14TGxXa3M4YjBoK0krRVZzMU5mWXdIbHI5QzY2NVJxT3NPWmxlazRXc0ZOcjlWOHl6cHJLU09rZFZEU0I3ZlNzamlBbEU0anBKR3NmdzRBSTlvdlU1N1JBSG9LeTl3Z0R2RjdXcTI1OHhlYklm''@;'; put 'put ''VEpjd21hWjVMd3hzcXloMDZ0eTdUd2k3RGVpSVhUSlF5UWxpWFAwbEx6Q0huSWZkR3ZlUXQ1cWxEbldzcHYzM3BHeDFUWEZQUUQyU2RsZHo1SlhnbjJGblJiL2xaL2tHc2JQMkRWSlF2VzN4by8ralpyM29rZ0g3RnFsbVFaTDQ5Y3M0MGZPZXBJeVZxdkllMEczWHNpdVdlVDJ4cGpSUDFNZjlE''@;'; put 'put ''SUtmOW0xeW5KaGJ2eWFaZnlNczduMWEydTJ1dlZ1NndkdU9lSytXTC9NY3RieHNKcWEvWGpUdVdYTjlydmhaUFdKOWI0bnU3MnNINDRoKzNBWlpBNHNoKzQ4OEhIRVpBUXhZMnY5dGJseFpXK0IreUhrL0E3V3lkeGFkdHFjV2JZOHRUbno3VElXdU8yUE1mcVAyenZnY21oN2FQd2E3NExsc2RV''@;'; put 'put ''dDR6TEQ3RFdFbi9SUmFwQ2E1WmhEdklaNlQvRE1WbTlqMmxpVGRjTmIrUE85NFRPQmFVRDdrUGN1OE5zUlJhLzdMcXhGTDlVdjArUzE3TDRWOEo4akxjUFlTbkYvNjk5ZFBqek81YjZ1OHErZzhoc3BZOWZPZU5wRndsMUk0bkFBQVBDMWx0K3VNcHRPOTNIK042ZWJPN2U1TlVGNmtpUGlDQi9p''@;'; put 'put ''aUFpSkhvNklPT1E0SXFLSEl5VGlrQjRPa1pDSU9FSWlJdUtJRUxtSGtPZ2hZa1FQSVJFUlIvUWdJdEpEeUNFUjkzSncvSDRRQkdYKzJZYjJ1NkN1TkV6QTMrRWorQXB1ZGYvb1B1OXVJUlpFUUpKSUR0bEg2ajBqUGNzOTV5YkJOR1k2TWI4eHA4MFo4NnE1YkRZc2xLVnQ1YXpMMWpQcmkwMjBU''@;'; put 'put ''ZGoyYk5lMmhwMndqOXJuN0hsN3hRRTVFbzZDbytZVW5XUE9ySFBQV1VNaGxFUEgwVlYwRXpYUVZxK2psK3ZkNlJ2dVcrdjM5cy8zWDdxbVhHVlhlMkJpWUh2Z3dpMjZsOXpWUVc1d1kvQVNZN0VaN0FBenNJNkg4MHg3Y3A1clQ4dXJlMGU4Uzk1VEhNVlQrRHBleE12NEZmN3FZMzFydnJ5djd1''@;'; put 'put ''djRIWDdLTC91VC9nLytMU0pEckJCNW9rU1VpWFBpbG1nU3IrUjdNazFteUJVeVQ1YklNbmxOVFZPZnFTeFZvSGFwQ3ZWTXArazVlb0Zlb2RmcElsMEtKQUozZ1hyZ0dVREFBYnlBQlRJWUJudmdHRlNCQVc3QUkzaGlFc3dKYzhIVW1BZW14WFRZSlhhVjNXQjMyR08yR3V3TC9nb2F3WnRnSTlq''@;'; put 'put ''bUxKeVBBNXpCM1hNTjdpVmtDWTJIYXFGNjZEbHNDcnZDVlBpSmgzbVVmOGNmOGxXK3hqL3dMUUVTWEFJcjZNS3NVQkxLd3Fsd0tkd0tUZUZQeEJiQkl1R0lGc21LaUlpSlFJeUtDWEZNbkJUbnhjVzNxU2dVZFVXcDZJRTBMbjJVRnFWdlVrSGFsWTZrTStsS1p1Vk4rVUN1eUJkeVRhN0xIY1dr''@;'; put 'put ''ZUJWVzBaV2tzcUJzS0JXbEdjTmlrN0ZDN0xjS3E3S2FWRlBxalBwSi9hcm0xQzMxVUsycWhucXZOdjdURUkzU1JyVkpyYWo5MU82MHB0WWNlaGhxNnpaOVdjL3BSZDNRYi9SSC9VbC9pVnZpN3ZoVWZEYitKWjZONS84Q0RCRE15QUFCQUFBQlBBQm9BQW9BUVFBRUFBSUFLQUE1QUlzQUFBQ1RB''@;'; put 'put ''bXNBQXdBQmVOcU5rc3RPd2tBVWh2OFdOS0RHS0RIR3NPcktHQk81cWVCdFlkU3dVZFJJaEswZ0ZSckJZaWxHWGZvMmJsejZERjZld0kyUDREUDRkeml0TjJMSXBKMXY1dnpuUHpPbkJSRERPMExRd2xFQU8zeDZyR0dPcXg3ckdFZFRPSVFOM0FxSHNZSkg0U0hFOFNFOGpGa3RJaHhCUmtzSVJ4''@;'; put 'put ''SFhUb1JIc2FUNVBtTW9hUS9DRTVqU3c4S1RpT2t6d2srWTF1ZUZuNUhTTjRWZkVOSGJ3cThZMGE5Ny9CWkNYTC9ETm15MGNRTUhGdXBvd0lXQmV6NFpwSkJHbGxSbDFLQ3VvVFFkY3BGemkxa2Q1bDRnZ1FKTTVqbkt5V1lmZkpWSmxVWGFVcnMxSEhHbmppNjVRbldhbVNrMTFuR01YWlN4VCty''@;'; put 'put ''bnRSQjQrVTZEVmpSKzFTeHg1VkJycVpNYjM4NHdXTjBTK1pRNm0wcXZLd2QwTVRsNzJUWEdLdVJEeHIzWUh1ZmFQMzN6ZXUxeXRZWWt4OVVQWjF2NXRnTFhCR00yMTM1T1I3THFqTHJjN2ZJcitab2taNzltUzkzMXEyYXk3ejM3N2YzdFpaazdWWndwSHpmb1hVRTZtVmRSZ3lPcllqbWVNSTFW''@;'; put 'put ''dmhleEhQeFBPWnhUWjZvNmpueUZmT0JZeENWdllqSGlVTlA4QkxoWmg1Y0FBSGphYlpOWGJCeFZGSWEvMzdGMzNUWk83NzFYeDE3M3hDa3VhOGV4WXljdWNlekVTY2E3WTJmeGVoZkd1M0ZzdWdRQ0hrRHd3alBsQ1JDOUNpUjRRS0pYMFhzSDBYbWtCKy9jQ1Y0azdzTjgveG1kODU4ejk5NGhD''@;'; put 'put ''M2VkRzJBZS83TlVtMzZReFF5eXljR0huMXp5eUtlQVFnTE1wSWhaekdZT2M2ZnE1N09BaFN4aU1VdFl5aktXczRLVnJHSTFhMWpMT3RhemdZMXNZak5iMk1vMnRsUE1Ea29vSlVnWjVWUlFTUlhWMUxDVFhkU3ltejNzWlI5MTFOTkFJeUdhYUdZL0xSeWdsVFlPMGs0SGh6aE1KMTEwMDhNUmVq''@;'; put 'put ''bEtILzBjNHpnRG5PQWtwN0M0bmF1NG1wdTVnVHQ0bit1NWxxZjVtRHU1amJ0NW5tZTVoMEhDM0VpRUY3RjVqaGQ0bFpkNG1WZjRsaUhlNERWZTUxNkcrWVdiZUpzM2VZdlRmTStQWE1jRlJCbGhsQmh4YmlIQlJWeUl3eGdwa3B4aG5PODR5eVFUWE15bFhNSmozTXJsWE1ZVlhNa1AvTVRqeXRJ''@;'; put 'put ''TVpTdEhQdm41aTc4NUo1U3JQT1ZMS2xDaEFwcXBJczNTYk0zaFYzN1RYTTNUZkMzUVFpM2lkOTdSWWkzUlVpM1RjcTNnYzc3UVNxM1NhcTNSV3EzVGVtM1FSbTNpUHU3WFptM1JWbTNUZGhWcmgwcjRnei81a3E5VXFxREtWSzRLVmFwSzFhclJUdTFTclhacmovWnFIMCtvVHZWcVVDTmY4NDFD''@;'; put 'put ''dk10bmZNQ0hmTVNudk1jbmFsS3o5cXRGQjlTcU5oMVV1enAwU0lmVnFTNTFxMGRIMU1zRFBNZ2pQTXBEUE13MTNLV2pQTU9UUEtVK2ZsYS9qdW00Qm5SQ0ozVktsZ1lWVmtTMmh2eDFvMWJZU2NUOWxxR3ZidEN4ejlnK3k0Vy9MakdjaU5zamZzdlExeGkyMGtrUmc4YXBDaXZwRDNrV3RtRitL''@;'; put 'put ''SkpJV3VHd0hVL20yLzlLZjhpenNqMnJrUEd3WFJRMmh4T2pvNVpKTFJ6T0NQd3RubnZVWTR2bkV6VXNiTTJzSE1rSWZHMVdPSlcwZlRHRE50TXZadEJ1WHNaZEZMWm5lc1F6UGRwTmV0eUZ2OE9iSVdFWTZEaWRpZzliVG1vMFpxV1NnVVJtNU9zMEhSelRvVE96ZzVQWm9kTjBjQXk2VE5XWUMz''@;'; put 'put ''OHFIaTBwclF4NkxQTjFtNlNrbWFiSG15WmxtTlBqUk9QRE9hbjBNOUR6bjhsU21aRy94OXZCbEdGQmJ6anFoRk9qUXpIN2JNRjRodTdMMEJQVDJ0ZHZacHgwa2Q4L2ZkcVQwNmVkbmpoWVZ1V3lMRmpwNngxMnJLbHJOVzdRYXh6R1hlVDFScUsyWTQ5RngvTEd6NnQwWFdtb3Z0cGpqY2NHajQy''@;'; put 'put ''K1BtTTA0U0w5TmxoU0V2Ulk1ckhjWTRYSFNzTmdVM1lvNVNUY29LS3BJY2NxdG1MSmZNdWR4VWozN3FkbGtUWDkyZWs0WUowZjBDUzYzZE95d1B0OWpEYjdtdFo1VnZvMFRISXlHb3U0eWJuVzJOUWVSV3duTDJKNzZoKzNaYmNoQUFBQWVOcGo4TjdCY0NJb1lpTWpZMS9rQnNhZEhBd2NETWtG''@;'; put 'put ''R3huWW5UWkpNakpvZ1JpYmVUZ1lPU0FzTVRZd2k4TnBGN01EQXlNREo1RE42YlNMQWNwbVpuRFpxTUxZRVJpeHdhRWpZaU56aXN0R05SQnZGMGNEQXlPTFEwZHlTQVJJU1NRUWJPYmpZT1RSMnNINHYzVURTKzlHSmdhWHphd3BiQXd1TGdEK0hDVmdBQUFBQUFGWW1QWjNBQUE9KSBmb3JtYXQo''@;'; put 'put ''IndvZmYiKTtmb250LXdlaWdodDo2MDA7Zm9udC1zdHlsZTpub3JtYWx9OnJvb3R7LS1jbHItbGluay1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNTAwKTstLWNsci1saW5rLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1saW5r''@;'; put 'put ''LWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1saW5rLXZpc2l0ZWQtY29sb3I6aHNsKDIzOCwgNDElLCA1MyUpOy0tY2xyLWN1c3RvbS1saW5rcy1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApfWh0bWx7Ym94LXNpemluZzpib3Jk''@;'; put 'put ''ZXItYm94fSosOmJlZm9yZSw6YWZ0ZXJ7Ym94LXNpemluZzppbmhlcml0fWh0bWx7LW1zLW92ZXJmbG93LXN0eWxlOnNjcm9sbGJhcjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9aW1ne3ZlcnRpY2FsLWFsaWduOm1pZGRsZX1bcm9sZT1idXR0b25de2N1cnNvcjpw''@;'; put 'put ''b2ludGVyfWEsYXJlYSxidXR0b24sW3JvbGU9YnV0dG9uXSxpbnB1dCxsYWJlbCxzZWxlY3Qsc3VtbWFyeSx0ZXh0YXJlYXt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufWJ1dHRvbjpmb2N1c3tvdXRsaW5lOjJweCBzb2xpZCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3I7b3V0bGluZS1vZmZz''@;'; put 'put ''ZXQ6MXB4fWJ1dHRvbjotbW96LWZvY3VzcmluZyxbdHlwZT1idXR0b25dOi1tb3otZm9jdXNyaW5nLFt0eXBlPXJlc2V0XTotbW96LWZvY3VzcmluZyxbdHlwZT1zdWJtaXRdOi1tb3otZm9jdXNyaW5ne291dGxpbmU6MnB4IHNvbGlkIEhpZ2hsaWdodDtvdXRsaW5lLW9mZnNldDoxcHh9aW5w''@;'; put 'put ''dXQsYnV0dG9uLHNlbGVjdCx0ZXh0YXJlYXtib3JkZXItcmFkaXVzOjB9aW5wdXRbdHlwZT1yYWRpb106ZGlzYWJsZWQsaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfWlucHV0W3R5cGU9ZGF0ZV0saW5wdXRbdHlwZT10aW1lXSxpbnB1dFt0eXBlPWRh''@;'; put 'put ''dGV0aW1lLWxvY2FsXSxpbnB1dFt0eXBlPW1vbnRoXXstd2Via2l0LWFwcGVhcmFuY2U6bGlzdGJveH10ZXh0YXJlYXtyZXNpemU6dmVydGljYWx9ZmllbGRzZXR7bWluLXdpZHRoOjA7cGFkZGluZzowO21hcmdpbjowO2JvcmRlcjowfWxlZ2VuZHtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7''@;'; put 'put ''cGFkZGluZzowO2xpbmUtaGVpZ2h0OmluaGVyaXR9aW5wdXRbdHlwZT1zZWFyY2hdey13ZWJraXQtYXBwZWFyYW5jZTpub25lfVtoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9ZGx7bWFyZ2luLWJvdHRvbTowO21hcmdpbi10b3A6MXJlbX10YWJsZXtib3JkZXItc3BhY2luZzowfWE6''@;'; put 'put ''bGlua3tjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1saW5rLWNvbG9yLCAjMDA3MmEzKTt0ZXh0LWRlY29yYXRpb246bm9uZX1hOnZpc2l0ZWR7Y29sb3I6IzU2NTliODtjb2xvcjp2YXIoLS1jbHItbGluay12aXNpdGVkLWNvbG9yLCAjNTY1OWI4KTt0ZXh0LWRlY29yYXRpb246bm9u''@;'; put 'put ''ZX1hOnZpc2l0ZWQ6aG92ZXJ7Y29sb3I6IzU2NTliODtjb2xvcjp2YXIoLS1jbHItbGluay12aXNpdGVkLWNvbG9yLWhvdmVyLCAjNTY1OWI4KX1hOmhvdmVye2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWxpbmstaG92ZXItY29sb3IsICMwMDcyYTMpO3RleHQtZGVjb3JhdGlvbjp1''@;'; put 'put ''bmRlcmxpbmV9YTphY3RpdmV7Y29sb3I6IzllNTdiYztjb2xvcjp2YXIoLS1jbHItbGluay1hY3RpdmUtY29sb3IsICM5ZTU3YmMpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LmNsci1zci1vbmx5e3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAt''@;'; put 'put ''cGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uYWxlcnQtaWNvbiwuY2xyLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi44cmVtO3dpZHRo''@;'; put 'put ''Oi44cmVtO3BhZGRpbmc6MDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246bWlkZGxlfS5hbGVydC1pY29uLmNsci1pY29uLXdhcm5pbmcsLmFsZXJ0LWljb24uaWNvbi13YXJuaW5nLC5jbHItaWNvbi5jbHItaWNvbi13''@;'; put 'put ''YXJuaW5nLC5jbHItaWNvbi5pY29uLXdhcm5pbmd7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjUlMjA1JTIwMjYlMjAyNiUyMiUyMHByZXNlcnZlQXNwZWN0UmF0''@;'; put 'put ''aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUzQ2RlZnMlM0UlM0NzdHlsZSUy''@;'; put 'put ''MHR5cGUlM0QlMjJ0ZXh0JTJGY3NzJTIyJTNFJTBBJTA5LmNsci1pLW91dGxpbmUlN0JmaWxsLXJ1bGUlM0FldmVub2RkJTNCY2xpcC1ydWxlJTNBZXZlbm9kZCUzQmZpbGwlM0ElMjM3NDc0NzQlM0IlN0QlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0aXRsZSUzRWV4Y2xhbWF0aW9uLXRyaWFuZ2xlLWxpbmUlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUl''@;'; put 'put ''MjBjbHItaS1vdXRsaW5lLXBhdGgtMSUyMiUyMGQlM0QlMjJNMTglMkMyMS4zMmExLjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxLjMtMS4zVjE0YTEuMyUyQzEuMyUyQzAlMkMxJTJDMC0yLjYlMkMwdjZBMS4zJTJDMS4zJTJDMCUyQzAlMkMwJTJDMTglMkMyMS4zMlolMjIlM0UlM0MlMkZwYXRo''@;'; put 'put ''JTNFJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTIlMjIlMjBjeCUzRCUyMjE3Ljk1JTIyJTIwY3klM0QlMjIyNC4yNyUyMiUyMHIlM0QlMjIxLjUlMjIlM0UlM0MlMkZjaXJjbGUlM0UlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHItaS1v''@;'; put 'put ''dXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTMlMjIlMjBkJTNEJTIyTTMwLjMzJTJDMjUuNTQlMkMyMC41OSUyQzcuNmEzJTJDMyUyQzAlMkMwJTJDMC01LjI3JTJDMEw1LjU3JTJDMjUuNTRBMyUyQzMlMkMwJTJDMCUyQzAlMkM4LjIxJTJDMzBIMjcuNjlhMyUyQzMlMkMwJTJDMCUyQzAl''@;'; put 'put ''MkMyLjY0LTQuNDNabS0xLjc4JTJDMS45NGExJTJDMSUyQzAlMkMwJTJDMS0uODYuNDlIOC4yMWExJTJDMSUyQzAlMkMwJTJDMS0uODgtMS40OEwxNy4wNyUyQzguNTVhMSUyQzElMkMwJTJDMCUyQzElMkMxLjc2JTJDMGw5Ljc0JTJDMTcuOTRBMSUyQzElMkMwJTJDMCUyQzElMkMyOC41NSUy''@;'; put 'put ''QzI3LjQ4WiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdmclM0UpfS5hbGVydC1pY29uLmNsci1pY29uLXdhcm5pbmctd2hpdGUsLmNsci1pY29uLmNsci1pY29uLXdhcm5pbmctd2hpdGV7YmFja2dyb3VuZC1pbWFnZTp1''@;'; put 'put ''cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIwdmlld0JveCUzRCUyMjUlMjA1JTIwMjYlMjAyNiUyMiUyMHByZXNlcnZlQXNwZWN0UmF0aW8lM0QlMjJ4TWlkWU1pZCUyMG1lZXQlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0El''@;'; put 'put ''MkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHhtbG5zJTNBeGxpbmslM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjE5OTklMkZ4bGluayUyMiUzRSUzQ2RlZnMlM0UlM0NzdHlsZSUyMHR5cGUlM0QlMjJ0ZXh0JTJGY3NzJTIyJTNFJTBBJTA5LmNsci1pLW91dGxpbmUl''@;'; put 'put ''N0JmaWxsLXJ1bGUlM0FldmVub2RkJTNCY2xpcC1ydWxlJTNBZXZlbm9kZCUzQmZpbGwlM0ElMjNmZmZmZmYlM0IlN0QlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0aXRsZSUzRWV4Y2xhbWF0''@;'; put 'put ''aW9uLXRyaWFuZ2xlLWxpbmUlM0MlMkZ0aXRsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNsci1pLW91dGxpbmUlMjBjbHItaS1vdXRsaW5lLXBhdGgtMSUyMiUyMGQlM0QlMjJNMTglMkMyMS4zMmEx''@;'; put 'put ''LjMlMkMxLjMlMkMwJTJDMCUyQzAlMkMxLjMtMS4zVjE0YTEuMyUyQzEuMyUyQzAlMkMxJTJDMC0yLjYlMkMwdjZBMS4zJTJDMS4zJTJDMCUyQzAlMkMwJTJDMTglMkMyMS4zMlolMjIlM0UlM0MlMkZwYXRoJTNFJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWkt''@;'; put 'put ''b3V0bGluZS1wYXRoLTIlMjIlMjBjeCUzRCUyMjE3Ljk1JTIyJTIwY3klM0QlMjIyNC4yNyUyMiUyMHIlM0QlMjIxLjUlMjIlM0UlM0MlMkZjaXJjbGUlM0UlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTMlMjIlMjBkJTNEJTIyTTMwLjMz''@;'; put 'put ''JTJDMjUuNTQlMkMyMC41OSUyQzcuNmEzJTJDMyUyQzAlMkMwJTJDMC01LjI3JTJDMEw1LjU3JTJDMjUuNTRBMyUyQzMlMkMwJTJDMCUyQzAlMkM4LjIxJTJDMzBIMjcuNjlhMyUyQzMlMkMwJTJDMCUyQzAlMkMyLjY0LTQuNDNabS0xLjc4JTJDMS45NGExJTJDMSUyQzAlMkMwJTJDMS0uODYu''@;'; put 'put ''NDlIOC4yMWExJTJDMSUyQzAlMkMwJTJDMS0uODgtMS40OEwxNy4wNyUyQzguNTVhMSUyQzElMkMwJTJDMCUyQzElMkMxLjc2JTJDMGw5Ljc0JTJDMTcuOTRBMSUyQzElMkMwJTJDMCUyQzElMkMyOC41NSUyQzI3LjQ4WiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdmclM0UpfS5hbGVydC1pY29uLmNsci12bXctbG9nbywuY2xyLWljb24uY2xyLXZtdy1sb2dve2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDM2''@;'; put 'put ''JTIwMzYlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAl''@;'; put 'put ''M0N0aXRsZSUzRXZtJTIwYnVnJTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMkhlYWRlcnMlMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwl''@;'; put 'put ''M0QlMjJub25lJTIyJTIwZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMkNMLUhlYWRlcnMtU3BlY3MlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUoLTI2Mi4wMDAwMDAlMkMlMjAtMTc1LjAwMDAwMCklMjIl''@;'; put 'put ''M0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwaWQlM0QlMjIwMSUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSgyMzguMDAwMDAwJTJDJTIwMTYzLjAwMDAwMCklMjIlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlM0NnJTIwaWQlM0QlMjJ2bS1idWclMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUoMjQuNzAzMTI1JTJDJTIwMTIuMDAwMDAwKSUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBp''@;'; put 'put ''ZCUzRCUyMlJlY3RhbmdsZS00MiUyMiUyMGZpbGwtb3BhY2l0eSUzRCUyMjAuMjUlMjIlMjBmaWxsJTNEJTIyJTIzREREREREJTIyJTIwb3BhY2l0eSUzRCUyMjAuNiUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjAlMjIlMjB3aWR0aCUzRCUyMjM2JTIyJTIwaGVpZ2h0JTNEJTIyMzYlMjIl''@;'; put 'put ''MjByeCUzRCUyMjMlMjIlM0UlM0MlMkZyZWN0JTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGQlM0QlMjJNNy42Mzk0ODM3NiUyQzEzLjg3NjI0MDIlMjBDNy4zMjI2NTMyNCUyQzEzLjIwOTcwODIlMjA2''@;'; put 'put ''LjUzOTc4MTUyJTJDMTIuOTA4NTEzOSUyMDUuODA5MjMwNDIlMkMxMy4yMTk5MzQlMjBDNS4wNzc3MTA0MyUyQzEzLjUzMjI4MzclMjA0LjgwOTMyNDk1JTJDMTQuMzEwMzY5MSUyMDUuMTM5NzIwMDclMkMxNC45NzY5MDExJTIwTDguMjA3MjU5NTQlMkMyMS4zNzQ0OTIzJTIwQzguNjg5Nzcy''@;'; put 'put ''MDclMkMyMi4zNzg0NzM1JTIwOS4xOTg0NDQ5MSUyQzIyLjkwMzcwNDQlMjAxMC4xNTI4MTIxJTJDMjIuOTAzNzA0NCUyMEMxMS4xNzIwOTU1JTJDMjIuOTAzNzA0NCUyMDExLjYxNjgyMDklMkMyMi4zMzEwNjMzJTIwMTIuMDk4MzY0NiUyQzIxLjM3NDQ5MjMlMjBDMTIuMDk4MzY0NiUyQzIx''@;'; put 'put ''LjM3NDQ5MjMlMjAxNC43NzQ0NjgyJTJDMTUuNzg0NzM0MSUyMDE0LjgwMTU5NzQlMkMxNS43MjYxNjg1JTIwQzE0LjgyODcyNjYlMkMxNS42NjY2NzMzJTIwMTQuOTE0OTU4OCUyQzE1LjQ4NjMyODYlMjAxNS4xODcyMTk5JTJDMTUuNDg3MjU4MiUyMEMxNS40MTc4MTgyJTJDMTUuNDkwMDQ3''@;'; put 'put ''JTIwMTUuNjEwNjI5NCUyQzE1LjY2NTc0MzclMjAxNS42MTA2Mjk0JTJDMTUuOTAxODY1MiUyMEwxNS42MTA2Mjk0JTJDMjEuMzY5ODQ0MyUyMEMxNS42MTA2Mjk0JTJDMjIuMjEyMDczJTIwMTYuMDk3OTg2NSUyQzIyLjkwMzcwNDQlMjAxNy4wMzQ5MTM0JTJDMjIuOTAzNzA0NCUyMEMxNy45''@;'; put 'put ''NzE4NDAzJTJDMjIuOTAzNzA0NCUyMDE4LjQ3ODU3NTQlMkMyMi4yMTIwNzMlMjAxOC40Nzg1NzU0JTJDMjEuMzY5ODQ0MyUyMEwxOC40Nzg1NzU0JTJDMTYuODk2NTUwMyUyMEMxOC40Nzg1NzU0JTJDMTYuMDMzODcwMiUyMDE5LjEyMTkyNTQlMkMxNS40NzQyNDM2JTIwMjAuMDAwNzE4MyUy''@;'; put 'put ''QzE1LjQ3NDI0MzYlMjBDMjAuODc4NTQyMyUyQzE1LjQ3NDI0MzYlMjAyMS40NjM3NTgzJTJDMTYuMDUyNDYyNCUyMDIxLjQ2Mzc1ODMlMkMxNi44OTY1NTAzJTIwTDIxLjQ2Mzc1ODMlMkMyMS4zNjk4NDQzJTIwQzIxLjQ2Mzc1ODMlMkMyMi4yMTIwNzMlMjAyMS45NTIwODQyJTJDMjIuOTAz''@;'; put 'put ''NzA0NCUyMDIyLjg4ODA0MjMlMkMyMi45MDM3MDQ0JTIwQzIzLjgyNDAwMDMlMkMyMi45MDM3MDQ0JTIwMjQuMzMyNjczMSUyQzIyLjIxMjA3MyUyMDI0LjMzMjY3MzElMkMyMS4zNjk4NDQzJTIwTDI0LjMzMjY3MzElMkMxNi44OTY1NTAzJTIwQzI0LjMzMjY3MzElMkMxNi4wMzM4NzAyJTIw''@;'; put 'put ''MjQuOTc1MDU0MyUyQzE1LjQ3NDI0MzYlMjAyNS44NTM4NDcyJTJDMTUuNDc0MjQzNiUyMEMyNi43MzA3MDIzJTJDMTUuNDc0MjQzNiUyMDI3LjMxNjg4NzElMkMxNi4wNTI0NjI0JTIwMjcuMzE2ODg3MSUyQzE2Ljg5NjU1MDMlMjBMMjcuMzE2ODg3MSUyQzIxLjM2OTg0NDMlMjBDMjcuMzE2''@;'; put 'put ''ODg3MSUyQzIyLjIxMjA3MyUyMDI3LjgwNTIxMzElMkMyMi45MDM3MDQ0JTIwMjguNzQyMTQlMkMyMi45MDM3MDQ0JTIwQzI5LjY3NzEyOTElMkMyMi45MDM3MDQ0JTIwMzAuMTg0ODMzMSUyQzIyLjIxMjA3MyUyMDMwLjE4NDgzMzElMkMyMS4zNjk4NDQzJTIwTDMwLjE4NDgzMzElMkMxNi4y''@;'; put 'put ''NzgzNTgyJTIwQzMwLjE4NDgzMzElMkMxNC40MDcwNDg4JTIwMjguNjE4MTIwNyUyQzEzLjA5NjI5NTYlMjAyNi43MzA3MDIzJTJDMTMuMDk2Mjk1NiUyMEMyNC44NDUyMjE2JTJDMTMuMDk2Mjk1NiUyMDIzLjY2NTEwMDYlMkMxNC4zNDc1NTM2JTIwMjMuNjY1MTAwNiUyQzE0LjM0NzU1MzYl''@;'; put 'put ''MjBDMjMuMDM3MjUzJTJDMTMuNTY2Njc5MyUyMDIyLjE3MjAyNDclMkMxMy4wOTcyMjUyJTIwMjAuNzA4OTg0NyUyQzEzLjA5NzIyNTIlMjBDMTkuMTY0NTU3JTJDMTMuMDk3MjI1MiUyMDE3LjgxMjk0MDYlMkMxNC4zNDc1NTM2JTIwMTcuODEyOTQwNiUyQzE0LjM0NzU1MzYlMjBDMTcuMTg0''@;'; put 'put ''MTI0MSUyQzEzLjU2NjY3OTMlMjAxNi4xMTU0MjY3JTJDMTMuMDk3MjI1MiUyMDE1LjIzMDgyMDQlMkMxMy4wOTcyMjUyJTIwQzEzLjg2MTc2MzglMkMxMy4wOTcyMjUyJTIwMTIuNzc0NjU3MiUyQzEzLjY3NTQ0NCUyMDEyLjExMTkyOTIlMkMxNS4xMzAyODcxJTIwTDEwLjE1MjgxMjElMkMx''@;'; put 'put ''OS41NjA4MTg5JTIwTDcuNjM5NDgzNzYlMkMxMy44NzYyNDAyJTIyJTIwaWQlM0QlMjJGaWxsLTQlMjIlMjBmaWxsJTNEJTIyJTIzRkZGRkZGJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEEl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEElM0MlMkZzdmclM0UiKX0uaXMtb2ZmLXNjcmVlbntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7''@;'; put 'put ''Ym9yZGVyOjAhaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3dpZHRoOjFweCFpbXBvcnRhbnQ7bGVmdDowIWltcG9ydGFudDt0b3A6LWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEpIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWlt''@;'; put 'put ''cG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowIDAgLWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEpIDAhaW1wb3J0YW50fS5jbHItcG9wb3Zlci1jb250ZW50e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTA1MH06cm9vdHstLWNsci1idG4tdmVydGljYWwtbWFyZ2luOi4zcmVt''@;'; put 'put ''Oy0tY2xyLWJ0bi1ob3Jpem9udGFsLW1hcmdpbjouNnJlbTstLWNsci1idG4taG9yaXpvbnRhbC1wYWRkaW5nOi42cmVtOy0tY2xyLWJ0bi12ZXJ0aWNhbC1wYWRkaW5nOjA7LS1jbHItYnRuLXBhZGRpbmc6dmFyKC0tY2xyLWJ0bi12ZXJ0aWNhbC1wYWRkaW5nKSB2YXIoLS1jbHItYnRuLWhv''@;'; put 'put ''cml6b250YWwtcGFkZGluZyk7LS1jbHItYnRuLWhlaWdodDoxLjhyZW07LS1jbHItYnRuLWhlaWdodC1zbToxLjJyZW07LS1jbHItYnRuLWZvbnQtd2VpZ2h0OjUwMDstLWNsci1idG4tYm9yZGVyLXJhZGl1czouMTVyZW07LS1jbHItYnRuLWJvcmRlci13aWR0aDouMDVyZW07LS1jbHItYnRu''@;'; put 'put ''LW91dGxpbmUtYmctY29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtbGluZS1oZWlnaHQ6MS4xNXJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1mb250LXNpemU6LjU1cmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtd2Vp''@;'; put 'put ''Z2h0OjUwMDstLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1oZWlnaHQ6MS4ycmVtOy0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLXBhZGRpbmc6MCAuNnJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1pY29uLXNpemU6LjZyZW07LS1jbHItYnRuLWFwcGVhcmFuY2Ut''@;'; put 'put ''Zm9ybS1saW5lLWhlaWdodDoxLjhyZW07LS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1sZXR0ZXItc3BhY2luZzouMTJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWZvbnQtc2l6ZTouNnJlbTstLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWZvbnQtd2VpZ2h0OjUwMDstLWNsci1idG4t''@;'; put 'put ''YXBwZWFyYW5jZS1mb3JtLWhlaWdodDoxLjhyZW07LS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1wYWRkaW5nOjAgLjZyZW07LS1jbHItYnRuLWRlZmF1bHQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWJvcmRlci1jb2xvcjp2YXIoLS1jbHIt''@;'; put 'put ''YnRuLWRlZmF1bHQtY29sb3IpOy0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTApOy0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1h''@;'; put 'put ''Y3Rpb24tODAwKTstLWNsci1idG4tZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1idG4tZGVmYXVsdC1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWJn''@;'; put 'put ''LWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1iZy1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9u''@;'; put 'put ''LTYwMCk7LS1jbHItYnRuLWRlZmF1bHQtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJvcmRlci1jb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlv''@;'; put 'put ''bi01MCk7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNTAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRs''@;'; put 'put ''aW5lLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1kaXNhYmxl''@;'; put 'put ''ZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1i''@;'; put 'put ''dG4tZGVmYXVsdC1vdXRsaW5lLWNvbG9yKTstLWNsci1idG4tcHJpbWFyeS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tcHJpbWFyeS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yOnZh''@;'; put 'put ''cigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1idG4tcHJpbWFyeS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYnRuLXByaW1hcnktaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MCk7LS1jbHItYnRuLXByaW1hcnktYm94''@;'; put 'put ''LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwMCk7LS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4tcHJpbWFyeS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00''@;'; put 'put ''MDApOy0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1wcmltYXJ5LWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWJ0bi1wcmltYXJ5LWNoZWNrZWQtY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXN1Y2Nlc3MtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLXN1Y2Nlc3MtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwKTstLWNsci1idG4tc3VjY2Vzcy1ib3JkZXItY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWJnLWNvbG9yKTstLWNsci1idG4tc3VjY2Vzcy1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvcik7LS1jbHItYnRu''@;'; put 'put ''LXN1Y2Nlc3MtYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy05MDApOy0tY2xyLWJ0bi1zdWNjZXNzLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWNv''@;'; put 'put ''bG9yLW5ldXRyYWwtNDAwKTstLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1idG4tc3VjY2Vzcy1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1ob3Zlci1iZy1jb2xvcik7LS1jbHIt''@;'; put 'put ''YnRuLXN1Y2Nlc3MtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY29sb3IpOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJnLWNvbG9yOnZhcigtLWNsci1idG4t''@;'; put 'put ''b3V0bGluZS1iZy1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNzAwKTstLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTUwKTstLWNsci1idG4t''@;'; put 'put ''c3VjY2Vzcy1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTkwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ib3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTQwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9y''@;'; put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jaGVja2VkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJvcmRlci1jb2xvcik7LS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jaGVja2VkLWNvbG9yOnZhcigtLWNs''@;'; put 'put ''ci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1kYW5nZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWRhbmdlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTcwMCk7LS1jbHItYnRuLWRhbmdlci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0''@;'; put 'put ''bi1kYW5nZXItYmctY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItaG92ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi1kYW5nZXItaG92ZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItYm94LXNoYWRvdy1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItYnRuLWRhbmdlci1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi1kYW5nZXItZGlzYWJsZWQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1i''@;'; put 'put ''dG4tZGFuZ2VyLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi1kYW5nZXItY2hlY2tlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItYnRuLWRhbmdlci1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1i''@;'; put 'put ''dG4tZGFuZ2VyLWNvbG9yKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci03MDApOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1iZy1jb2xvcjp2YXIoLS1jbHItYnRuLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGlu''@;'; put 'put ''ZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTEwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1k''@;'; put 'put ''YW5nZXItOTAwKTstLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTIwMCk7LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLWRhbmdl''@;'; put 'put ''ci1vdXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtYmctY29sb3IpOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1kaXNhYmxlZC1jb2xvcik7LS1jbHIt''@;'; put 'put ''YnRuLWRhbmdlci1vdXRsaW5lLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1jaGVja2VkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi13YXJuaW5nLWNvbG9yOnZhcigtLWNsci1j''@;'; put 'put ''b2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi13YXJuaW5nLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItNzAwKTstLWNsci1idG4td2FybmluZy1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItYmctY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLWhvdmVyLWJnLWNvbG9y''@;'; put 'put ''OnZhcigtLWNsci1jb2xvci1kYW5nZXItODAwKTstLWNsci1idG4td2FybmluZy1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1jb2xvcik7LS1jbHItYnRuLXdhcm5pbmctYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItYnRuLXdhcm5p''@;'; put 'put ''bmctZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi13YXJuaW5nLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29s''@;'; put 'put ''b3ItbmV1dHJhbC00MDApOy0tY2xyLWJ0bi13YXJuaW5nLWNoZWNrZWQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi13YXJuaW5nLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IpOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUt''@;'; put 'put ''Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci03MDApOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtYmctY29sb3I6dmFyKC0tY2xyLWJ0bi1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgw''@;'; put 'put ''MCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTEwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1i''@;'; put 'put ''b3gtc2hhZG93LWNvbG9yOnZhcigtLWNsci1jb2xvci1kYW5nZXItMjAwKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvcjp2YXIoLS1j''@;'; put 'put ''bHItYnRuLWRhbmdlci1vdXRsaW5lLWJnLWNvbG9yKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWRpc2FibGVkLWNvbG9yKTstLWNsci1idG4td2FybmluZy1vdXRsaW5lLWNoZWNrZWQtYmctY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4tbGluay1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItYnRuLWxpbmstYmct''@;'; put 'put ''Y29sb3I6dHJhbnNwYXJlbnQ7LS1jbHItYnRuLWxpbmstYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1saW5rLWhvdmVyLWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1saW5rLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1idG4t''@;'; put 'put ''bGluay1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4tbGluay1jaGVja2Vk''@;'; put 'put ''LWJnLWNvbG9yOnRyYW5zcGFyZW50Oy0tY2xyLWJ0bi1saW5rLWNoZWNrZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWJ0bi1pbnZlcnNlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJ0bi1pbnZlcnNlLWJvcmRlci1jb2xvcjp2YXIo''@;'; put 'put ''LS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taW52ZXJzZS1iZy1jb2xvcjp0cmFuc3BhcmVudDstLWNsci1idG4taW52ZXJzZS1ob3Zlci1iZy1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIC4xNSk7LS1jbHItYnRuLWludmVyc2UtaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9y''@;'; put 'put ''LW5ldXRyYWwtMCk7LS1jbHItYnRuLWludmVyc2UtYm94LXNoYWRvdy1jb2xvcjpyZ2JhKDAsIDAsIDAsIC4yNSk7LS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQtYmctY29sb3I6dmFy''@;'; put 'put ''KC0tY2xyLWJ0bi1pbnZlcnNlLWJnLWNvbG9yKTstLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYnRuLWludmVyc2UtY2hlY2tlZC1iZy1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIC4xNSk7LS1jbHItYnRu''@;'; put 'put ''LWludmVyc2UtY2hlY2tlZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1idG4taWNvbi1kaXNhYmxlZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpOy0tY2xyLWJ0bi1ncm91cC1mb2N1cy1vdXRsaW5lOiM1MWNiZWV9''@;'; put 'put ''LmJ0bntjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazstd2Via2l0LWFwcGVhcmFuY2U6bm9uZSFpbXBvcnRhbnQ7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYnRuLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLXdpZHRoOi4wNXJl''@;'; put 'put ''bTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWJ0bi1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO21pbi13aWR0aDozLjZyZW07bWF4LXdpZHRoOjE4cmVtO3doaXRlLXNwYWNlOm5vd3JhcDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO292ZXJmbG93OmhpZGRlbjt0ZXh0''@;'; put 'put ''LWFsaWduOmNlbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7dmVydGljYWwtYWxpZ246bWlkZGxlO2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtYm9yZGVyLWNvbG9yLCAjMDA3MmEzKTtiYWNr''@;'; put 'put ''Z3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpO2xpbmUtaGVpZ2h0OjEuOHJlbTts''@;'; put 'put ''aW5lLWhlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1saW5lLWhlaWdodCwgMS44cmVtKTtsZXR0ZXItc3BhY2luZzouMTJlbTtmb250LXNpemU6LjZyZW07Zm9udC1zaXplOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1mb3JtLWZvbnQtc2l6ZSwgLjZyZW0pO2ZvbnQtd2Vp''@;'; put 'put ''Z2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1mb250LXdlaWdodCwgNTAwKTtoZWlnaHQ6MS44cmVtO2hlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2UtZm9ybS1oZWlnaHQsIDEuOHJlbSk7cGFkZGluZzowIC42cmVtO3BhZGRpbmc6dmFyKC0t''@;'; put 'put ''Y2xyLWJ0bi1hcHBlYXJhbmNlLWZvcm0tcGFkZGluZywgMCAuNnJlbSl9LmJ0bjpob3Zlcnt0ZXh0LWRlY29yYXRpb246bm9uZX0uYnRuIGNkcy1pY29uLC5idG4gY2xyLWljb257Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpfS5idG46''@;'; put 'put ''dmlzaXRlZHtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlM2Y1ZmM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtaG92ZXItYmctY29sb3IsICNlM2Y1ZmMp''@;'; put 'put ''O2NvbG9yOiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWhvdmVyLWNvbG9yLCAjMDA1NjdhKX0uYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gIzE3OWJkMyBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGVmYXVsdC1ib3gtc2hhZG93''@;'; put 'put ''LWNvbG9yLCAjMTc5YmQzKSBpbnNldH0uYnRuLmRpc2FibGVkLC5idG46ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJh''@;'; put 'put ''bnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWJvcmRlci1jb2xvciwgIzhjOGM4''@;'; put 'put ''Yyk7Ym94LXNoYWRvdzpub25lfS5idG4tZ3JvdXA+LmJ0biBjbHItaWNvbiwuYnRuIGNsci1pY29ue3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0uMXJlbSwwKX0uYnRuLWdyb3VwPi5idG4gY2RzLWljb24sLmJ0biBjZHMtaWNvbnttYXJnaW4tdG9wOi0uMTRyZW19LmJ0bi5idG4tc2Vjb25k''@;'; put 'put ''YXJ5LC5idG4uYnRuLWluZm8sLmJ0bi5idG4tb3V0bGluZSwuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUsLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUsLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5LC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LC5idG4uYnRuLWluZm8tb3V0bGluZSwuYnRu''@;'; put 'put ''LXNlY29uZGFyeSAuYnRuLC5idG4taW5mbyAuYnRuLC5idG4tb3V0bGluZSAuYnRuLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG4sLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG4sLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSAuYnRuLC5idG4taW5m''@;'; put 'put ''by1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bntib3JkZXItY29sb3I6IzAwNzJhMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWJvcmRlci1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZh''@;'; put 'put ''cigtLWNsci1idG4tZGVmYXVsdC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0uYnRuLmJ0bi1zZWNvbmRhcnkgY2RzLWljb24sLmJ0bi5idG4tc2Vjb25kYXJ5IGNsci1pY29uLC5idG4uYnRu''@;'; put 'put ''LWluZm8gY2RzLWljb24sLmJ0bi5idG4taW5mbyBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUgY2xyLWljb24sLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLXByaW1hcnktb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0''@;'; put 'put ''bi1zZWNvbmRhcnktb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGNsci1pY29uLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGNkcy1p''@;'; put 'put ''Y29uLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGNsci1pY29uLC5idG4uYnRuLWluZm8tb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmUgY2xyLWljb24sLmJ0bi1zZWNvbmRhcnkgLmJ0biBjZHMtaWNvbiwuYnRuLXNlY29uZGFyeSAuYnRuIGNsci1pY29uLC5idG4t''@;'; put 'put ''aW5mbyAuYnRuIGNkcy1pY29uLC5idG4taW5mbyAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZSAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0biBjbHItaWNv''@;'; put 'put ''biwuYnRuLXNlY29uZGFyeS1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0biBjbHItaWNvbiwuYnRuLW91dGxpbmUtc2Vjb25k''@;'; put 'put ''YXJ5IC5idG4gY2RzLWljb24sLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSAuYnRuIGNsci1pY29uLC5idG4taW5mby1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjbHItaWNvbiwuYnRuLW91dGxpbmUtaW5mbyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS1p''@;'; put 'put ''bmZvIC5idG4gY2xyLWljb257Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLXNlY29uZGFyeTp2aXNpdGVkLC5idG4uYnRuLWluZm86dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4tcHJpbWFy''@;'; put 'put ''eS1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTp2aXNpdGVkLC5idG4uYnRuLWluZm8tb3V0bGluZTp2aXNpdGVkLC5idG4tc2Vjb25kYXJ5''@;'; put 'put ''IC5idG46dmlzaXRlZCwuYnRuLWluZm8gLmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4tc2Vjb25kYXJ5LW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG46dmlzaXRl''@;'; put 'put ''ZCwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46dmlzaXRlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lLWluZm8gLmJ0bjp2aXNpdGVke2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWNvbG9yLCAjMDA3MmEzKX0uYnRuLmJ0''@;'; put 'put ''bi1zZWNvbmRhcnk6aG92ZXIsLmJ0bi5idG4taW5mbzpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLXByaW1hcnktb3V0bGluZTpob3ZlciwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnk6aG92ZXIsLmJ0bi5idG4t''@;'; put 'put ''b3V0bGluZS1zZWNvbmRhcnk6aG92ZXIsLmJ0bi5idG4taW5mby1vdXRsaW5lOmhvdmVyLC5idG4tc2Vjb25kYXJ5IC5idG46aG92ZXIsLmJ0bi1pbmZvIC5idG46aG92ZXIsLmJ0bi1vdXRsaW5lIC5idG46aG92ZXIsLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLXNlY29u''@;'; put 'put ''ZGFyeS1vdXRsaW5lIC5idG46aG92ZXIsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG46aG92ZXIsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLW91dGxpbmUtaW5mbyAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6''@;'; put 'put ''I2UzZjVmYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1ob3Zlci1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtaG92ZXItY29sb3IsICMwMDU2N2EpfS5idG4uYnRuLXNlY29uZGFyeTphY3RpdmUsLmJ0''@;'; put 'put ''bi5idG4taW5mbzphY3RpdmUsLmJ0bi5idG4tb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lOmFjdGl2ZSwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFy''@;'; put 'put ''eTphY3RpdmUsLmJ0bi5idG4taW5mby1vdXRsaW5lOmFjdGl2ZSwuYnRuLXNlY29uZGFyeSAuYnRuOmFjdGl2ZSwuYnRuLWluZm8gLmJ0bjphY3RpdmUsLmJ0bi1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tc2Vjb25kYXJ5LW91dGxp''@;'; put 'put ''bmUgLmJ0bjphY3RpdmUsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjphY3RpdmUsLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSAuYnRuOmFjdGl2ZSwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtaW5mbyAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gIzE3''@;'; put 'put ''OWJkMyBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGVmYXVsdC1ib3gtc2hhZG93LWNvbG9yLCAjMTc5YmQzKSBpbnNldH0uYnRuLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQsLmJ0bi5idG4tc2Vjb25kYXJ5OmRpc2FibGVkLC5idG4uYnRuLWluZm8uZGlzYWJs''@;'; put 'put ''ZWQsLmJ0bi5idG4taW5mbzpkaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLXByaW1hcnktb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1zZWNvbmRhcnkt''@;'; put 'put ''b3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZTpkaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5OmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkLC5idG4uYnRu''@;'; put 'put ''LW91dGxpbmUtc2Vjb25kYXJ5OmRpc2FibGVkLC5idG4uYnRuLWluZm8tb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi1zZWNvbmRhcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLXNlY29uZGFyeSAuYnRuOmRpc2FibGVkLC5idG4taW5mbyAuYnRuLmRp''@;'; put 'put ''c2FibGVkLC5idG4taW5mbyAuYnRuOmRpc2FibGVkLC5idG4tb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tcHJpbWFyeS1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1wcmltYXJ5LW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLXNlY29u''@;'; put 'put ''ZGFyeS1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1zZWNvbmRhcnktb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4tb3V0bGluZS1wcmltYXJ5IC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXByaW1hcnkgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtc2Vjb25kYXJ5IC5idG4uZGlz''@;'; put 'put ''YWJsZWQsLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSAuYnRuOmRpc2FibGVkLC5idG4taW5mby1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjpkaXNhYmxlZCwuYnRuLW91dGxpbmUtaW5mbyAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS1pbmZvIC5idG46ZGlz''@;'; put 'put ''YWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1bHQtZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRlZmF1''@;'; put 'put ''bHQtZGlzYWJsZWQtYmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LWRpc2FibGVkLWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXByaW1hcnksLmJ0bi1wcmlt''@;'; put 'put ''YXJ5IC5idG57Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1ib3JkZXItY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1iZy1jb2xvciwgIzAw''@;'; put 'put ''NzJhMyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1wcmltYXJ5IGNkcy1pY29uLC5idG4uYnRuLXByaW1hcnkgY2xyLWljb24sLmJ0bi1wcmltYXJ5IC5idG4gY2RzLWljb24sLmJ0bi1wcmltYXJ5IC5idG4gY2xyLWljb257''@;'; put 'put ''Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1wcmltYXJ5OnZpc2l0ZWQsLmJ0bi1wcmltYXJ5IC5idG46dmlzaXRlZHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1jb2xvciwgd2hpdGUpfS5idG4uYnRu''@;'; put 'put ''LXByaW1hcnk6aG92ZXIsLmJ0bi1wcmltYXJ5IC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDA1NjdhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWJnLWNvbG9yLCAjMDA1NjdhKTtjb2xvcjojZTNmNWZjO2NvbG9yOnZhcigtLWNsci1idG4tcHJp''@;'; put 'put ''bWFyeS1ob3Zlci1jb2xvciwgI2UzZjVmYyl9LmJ0bi5idG4tcHJpbWFyeTphY3RpdmUsLmJ0bi1wcmltYXJ5IC5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJveC1zaGFkb3ct''@;'; put 'put ''Y29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uYnRuLXByaW1hcnkuZGlzYWJsZWQsLmJ0bi5idG4tcHJpbWFyeTpkaXNhYmxlZCwuYnRuLXByaW1hcnkgLmJ0bi5kaXNhYmxlZCwuYnRuLXByaW1hcnkgLmJ0bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFy''@;'; put 'put ''eS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWJnLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItY29sb3I6I2NjYzti''@;'; put 'put ''b3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXN1Y2Nlc3MsLmJ0bi1zdWNjZXNzIC5idG57Ym9yZGVyLWNvbG9yOiMzYzg1MDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4t''@;'; put 'put ''c3VjY2Vzcy1ib3JkZXItY29sb3IsICMzYzg1MDApO2JhY2tncm91bmQtY29sb3I6IzNjODUwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1iZy1jb2xvciwgIzNjODUwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY29sb3IsIHdoaXRl''@;'; put 'put ''KX0uYnRuLmJ0bi1zdWNjZXNzIGNkcy1pY29uLC5idG4uYnRuLXN1Y2Nlc3MgY2xyLWljb24sLmJ0bi1zdWNjZXNzIC5idG4gY2RzLWljb24sLmJ0bi1zdWNjZXNzIC5idG4gY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtY29sb3IsIHdoaXRlKX0uYnRu''@;'; put 'put ''LmJ0bi1zdWNjZXNzOnZpc2l0ZWQsLmJ0bi1zdWNjZXNzIC5idG46dmlzaXRlZHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3M6aG92ZXIsLmJ0bi1zdWNjZXNzIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjoj''@;'; put 'put ''MzA2YjAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLWhvdmVyLWJnLWNvbG9yLCAjMzA2YjAwKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1ob3Zlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLXN1Y2Nlc3M6YWN0aXZlLC5idG4tc3VjY2Vz''@;'; put 'put ''cyAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gIzI1NTIwMCBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tc3VjY2Vzcy1ib3gtc2hhZG93LWNvbG9yLCAjMjU1MjAwKSBpbnNldH0uYnRuLmJ0bi1zdWNjZXNzLmRpc2FibGVkLC5idG4uYnRuLXN1Y2Nl''@;'; put 'put ''c3M6ZGlzYWJsZWQsLmJ0bi1zdWNjZXNzIC5idG4uZGlzYWJsZWQsLmJ0bi1zdWNjZXNzIC5idG46ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3MtZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tn''@;'; put 'put ''cm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1iZy1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tc3VjY2Vzcy1kaXNhYmxlZC1ib3JkZXItY29sb3IsICNjY2Nj''@;'; put 'put ''Y2MpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi13YXJuaW5nLC5idG4td2FybmluZyAuYnRue2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctYm9yZGVyLWNvbG9yLCApO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWJnLWNvbG9yLCApO2NvbG9yOnZh''@;'; put 'put ''cigtLWNsci1idG4td2FybmluZy1jb2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nIGNkcy1pY29uLC5idG4uYnRuLXdhcm5pbmcgY2xyLWljb24sLmJ0bi13YXJuaW5nIC5idG4gY2RzLWljb24sLmJ0bi13YXJuaW5nIC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLWNv''@;'; put 'put ''bG9yLCApfS5idG4uYnRuLXdhcm5pbmc6dmlzaXRlZCwuYnRuLXdhcm5pbmcgLmJ0bjp2aXNpdGVke2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1jb2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nOmhvdmVyLC5idG4td2FybmluZyAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0t''@;'; put 'put ''Y2xyLWJ0bi13YXJuaW5nLWhvdmVyLWJnLWNvbG9yLCApO2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1ob3Zlci1jb2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nOmFjdGl2ZSwuYnRuLXdhcm5pbmcgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtIGluc2V0O2JveC1zaGFkb3c6MCAu''@;'; put 'put ''MXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi13YXJuaW5nLWJveC1zaGFkb3ctY29sb3IsICkgaW5zZXR9LmJ0bi5idG4td2FybmluZy5kaXNhYmxlZCwuYnRuLmJ0bi13YXJuaW5nOmRpc2FibGVkLC5idG4td2FybmluZyAuYnRuLmRpc2FibGVkLC5idG4td2FybmluZyAuYnRuOmRpc2FibGVke2Nv''@;'; put 'put ''bG9yOnZhcigtLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1jb2xvciwgKTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1kaXNhYmxlZC1iZy1jb2xvciwgKTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJu''@;'; put 'put ''aW5nLWRpc2FibGVkLWJvcmRlci1jb2xvciwgKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tZGFuZ2VyLC5idG4tZGFuZ2VyIC5idG57Ym9yZGVyLWNvbG9yOiNkYjIxMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWJvcmRlci1jb2xvciwgI2RiMjEwMCk7YmFja2dyb3Vu''@;'; put 'put ''ZC1jb2xvcjojZGIyMTAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItYmctY29sb3IsICNkYjIxMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1kYW5nZXIgY2RzLWljb24sLmJ0bi5idG4tZGFuZ2Vy''@;'; put 'put ''IGNsci1pY29uLC5idG4tZGFuZ2VyIC5idG4gY2RzLWljb24sLmJ0bi1kYW5nZXIgLmJ0biBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4tZGFuZ2VyOnZpc2l0ZWQsLmJ0bi1kYW5nZXIgLmJ0bjp2aXNpdGVke2Nv''@;'; put 'put ''bG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItY29sb3IsIHdoaXRlKX0uYnRuLmJ0bi1kYW5nZXI6aG92ZXIsLmJ0bi1kYW5nZXIgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1ob3Zlci1i''@;'; put 'put ''Zy1jb2xvciwgI2MyMWQwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1ob3Zlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWRhbmdlcjphY3RpdmUsLmJ0bi1kYW5nZXIgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICM5OTE3MDAgaW5zZXQ7Ym94LXNoYWRv''@;'; put 'put ''dzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLWRhbmdlci1ib3gtc2hhZG93LWNvbG9yLCAjOTkxNzAwKSBpbnNldH0uYnRuLmJ0bi1kYW5nZXIuZGlzYWJsZWQsLmJ0bi5idG4tZGFuZ2VyOmRpc2FibGVkLC5idG4tZGFuZ2VyIC5idG4uZGlzYWJsZWQsLmJ0bi1kYW5nZXIgLmJ0bjpkaXNh''@;'; put 'put ''YmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1kaXNhYmxl''@;'; put 'put ''ZC1iZy1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLWRpc2FibGVkLWJvcmRlci1jb2xvciwgIzY2NjY2Nik7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLW91dGxpbmUsLmJ0bi5idG4tb3V0bGluZSAuYnRuLC5idG4u''@;'; put 'put ''YnRuLWluZm8tb3V0bGluZSwuYnRuLWluZm8tb3V0bGluZSAuYnRuLC5idG4uYnRuLW91dGxpbmUtaW5mbywuYnRuLW91dGxpbmUgLmJ0bntib3JkZXItY29sb3I6IzAwNzJhMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYm9yZGVyLWNvbG9yLCAjMDA3MmEz''@;'; put 'put ''KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNvbG9yLCAjMDA3MmEz''@;'; put 'put ''KX0uYnRuLmJ0bi1vdXRsaW5lIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZSAuYnRuIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUgLmJ0biBjbHItaWNvbiwuYnRuLmJ0bi1pbmZvLW91dGxpbmUgY2RzLWljb24sLmJ0bi5idG4taW5mby1vdXRs''@;'; put 'put ''aW5lIGNsci1pY29uLC5idG4taW5mby1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1pbmZvLW91dGxpbmUgLmJ0biBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWluZm8gY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS1pbmZvIGNsci1pY29uLC5idG4tb3V0bGluZSAuYnRuIGNkcy1pY29u''@;'; put 'put ''LC5idG4tb3V0bGluZSAuYnRuIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLW91dGxpbmU6dmlzaXRlZCwuYnRuLmJ0bi1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLmJ0bi1pbmZvLW91''@;'; put 'put ''dGxpbmU6dmlzaXRlZCwuYnRuLWluZm8tb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi5idG4tb3V0bGluZS1pbmZvOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lIC5idG46dmlzaXRlZHtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWNvbG9yLCAjMDA3MmEz''@;'; put 'put ''KX0uYnRuLmJ0bi1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6aG92ZXIsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bjpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLWluZm86aG92ZXIsLmJ0bi1vdXRsaW5lIC5idG46aG92ZXJ7YmFj''@;'; put 'put ''a2dyb3VuZC1jb2xvcjojZTNmNWZjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtaG92ZXItYmctY29sb3IsICNlM2Y1ZmMpO2NvbG9yOiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kZWZhdWx0LW91dGxpbmUtaG92ZXItY29sb3IsICMwMDU2N2Ep''@;'; put 'put ''fS5idG4uYnRuLW91dGxpbmU6YWN0aXZlLC5idG4uYnRuLW91dGxpbmUgLmJ0bjphY3RpdmUsLmJ0bi5idG4taW5mby1vdXRsaW5lOmFjdGl2ZSwuYnRuLWluZm8tb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLmJ0bi1vdXRsaW5lLWluZm86YWN0aXZlLC5idG4tb3V0bGluZSAuYnRuOmFjdGl2''@;'; put 'put ''ZXtib3gtc2hhZG93OjAgLjFyZW0gIzE3OWJkMyBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4uYnRuLW91dGxpbmUuZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZTpk''@;'; put 'put ''aXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4uYnRuLWluZm8tb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi1pbmZvLW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi1pbmZvLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwu''@;'; put 'put ''YnRuLWluZm8tb3V0bGluZSAuYnRuOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtaW5mby5kaXNhYmxlZCwuYnRuLmJ0bi1vdXRsaW5lLWluZm86ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG4uZGlzYWJsZWQsLmJ0bi1vdXRsaW5lIC5idG46ZGlzYWJsZWR7Y29sb3I6IzY2Njtjb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItYnRuLWRlZmF1bHQtb3V0bGluZS1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2Fi''@;'; put 'put ''bGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGVmYXVsdC1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvciwgIzhjOGM4Yyk7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSwu''@;'; put 'put ''YnRuLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MsLmJ0bi1zdWNjZXNzLW91dGxpbmUgLmJ0biwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRue2JvcmRlci1jb2xvcjojM2M4NTAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1ib3JkZXItY29sb3IsICMzYzg1MDApO2Jh''@;'; put 'put ''Y2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiMzYzg1MDA7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtY29sb3IsICMzYzg1MDApfS5i''@;'; put 'put ''dG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmUgY2xyLWljb24sLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzIGNkcy1pY29uLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBjbHItaWNvbiwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuIGNkcy1p''@;'; put 'put ''Y29uLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG4gY2xyLWljb24sLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuIGNsci1pY29ue2NvbG9yOiMzYzg1MDA7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtY29sb3Is''@;'; put 'put ''ICMzYzg1MDApfS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtc3VjY2Vzczp2aXNpdGVkLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46dmlzaXRlZCwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuOnZpc2l0ZWR7Y29sb3I6IzNjODUwMDtjb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1jb2xvciwgIzNjODUwMCl9LmJ0bi5idG4tc3VjY2Vzcy1vdXRsaW5lOmhvdmVyLC5idG4uYnRuLW91dGxpbmUtc3VjY2Vzczpob3ZlciwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuOmhvdmVyLC5idG4tb3V0bGluZS1zdWNjZXNzIC5idG46''@;'; put 'put ''aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZGZmMGQwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92ZXItYmctY29sb3IsICNkZmYwZDApO2NvbG9yOiMyNTUyMDA7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtaG92ZXItY29sb3Is''@;'; put 'put ''ICMyNTUyMDApfS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS1zdWNjZXNzOmFjdGl2ZSwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gIzVlYjcx''@;'; put 'put ''NSBpbnNldDtib3gtc2hhZG93OjAgLjFyZW0gMCAwIHZhcigtLWNsci1idG4tc3VjY2Vzcy1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3IsICM1ZWI3MTUpIGluc2V0fS5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi1zdWNjZXNzLW91dGxpbmU6ZGlzYWJsZWQsLmJ0''@;'; put 'put ''bi5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtc3VjY2VzczpkaXNhYmxlZCwuYnRuLXN1Y2Nlc3Mtb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4tc3VjY2Vzcy1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MgLmJ0bi5kaXNh''@;'; put 'put ''YmxlZCwuYnRuLW91dGxpbmUtc3VjY2VzcyAuYnRuOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1zdWNjZXNzLW91dGxpbmUtZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJhbnNw''@;'; put 'put ''YXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXN1Y2Nlc3Mtb3V0bGluZS1kaXNhYmxlZC1ib3JkZXIt''@;'; put 'put ''Y29sb3IsICM4YzhjOGMpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi13YXJuaW5nLW91dGxpbmUsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nLC5idG4td2FybmluZy1vdXRsaW5lIC5idG4sLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bntib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJu''@;'; put 'put ''aW5nLW91dGxpbmUtYm9yZGVyLWNvbG9yLCApO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtYmctY29sb3IsICk7Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY29sb3IsICl9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lIGNkcy1pY29u''@;'; put 'put ''LC5idG4uYnRuLXdhcm5pbmctb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLXdhcm5pbmcgY2RzLWljb24sLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nIGNsci1pY29uLC5idG4td2FybmluZy1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0biBj''@;'; put 'put ''bHItaWNvbiwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuIGNkcy1pY29uLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG4gY2xyLWljb257Y29sb3I6dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtY29sb3IsICl9LmJ0bi5idG4td2FybmluZy1vdXRsaW5lOnZpc2l0ZWQsLmJ0bi5idG4t''@;'; put 'put ''b3V0bGluZS13YXJuaW5nOnZpc2l0ZWQsLmJ0bi13YXJuaW5nLW91dGxpbmUgLmJ0bjp2aXNpdGVkLC5idG4tb3V0bGluZS13YXJuaW5nIC5idG46dmlzaXRlZHtjb2xvcjp2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1jb2xvciwgKX0uYnRuLmJ0bi13YXJuaW5nLW91dGxpbmU6aG92''@;'; put 'put ''ZXIsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmhvdmVyLC5idG4td2FybmluZy1vdXRsaW5lIC5idG46aG92ZXIsLmJ0bi1vdXRsaW5lLXdhcm5pbmcgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWJnLWNvbG9yLCApO2Nv''@;'; put 'put ''bG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWhvdmVyLWNvbG9yLCApfS5idG4uYnRuLXdhcm5pbmctb3V0bGluZTphY3RpdmUsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nOmFjdGl2ZSwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuOmFjdGl2ZSwuYnRuLW91dGxpbmUtd2Fybmlu''@;'; put 'put ''ZyAuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjFyZW0gaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLXdhcm5pbmctb3V0bGluZS1ib3gtc2hhZG93LWNvbG9yLCApIGluc2V0fS5idG4uYnRuLXdhcm5pbmctb3V0bGluZS5kaXNhYmxlZCwuYnRuLmJ0bi13YXJu''@;'; put 'put ''aW5nLW91dGxpbmU6ZGlzYWJsZWQsLmJ0bi5idG4tb3V0bGluZS13YXJuaW5nLmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtd2FybmluZzpkaXNhYmxlZCwuYnRuLXdhcm5pbmctb3V0bGluZSAuYnRuLmRpc2FibGVkLC5idG4td2FybmluZy1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1v''@;'; put 'put ''dXRsaW5lLXdhcm5pbmcgLmJ0bi5kaXNhYmxlZCwuYnRuLW91dGxpbmUtd2FybmluZyAuYnRuOmRpc2FibGVke2NvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWNvbG9yLCApO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6''@;'; put 'put ''dmFyKC0tY2xyLWJ0bi13YXJuaW5nLW91dGxpbmUtZGlzYWJsZWQtYmctY29sb3IsICk7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4td2FybmluZy1vdXRsaW5lLWRpc2FibGVkLWJvcmRlci1jb2xvciwgKTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUsLmJ0bi5i''@;'; put 'put ''dG4tb3V0bGluZS1kYW5nZXIsLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRuLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0bntib3JkZXItY29sb3I6I2MyMWQwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ib3JkZXItY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQt''@;'; put 'put ''Y29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6I2RiMjEwMDtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWNvbG9yLCAjZGIyMTAwKX0uYnRuLmJ0bi1kYW5n''@;'; put 'put ''ZXItb3V0bGluZSBjZHMtaWNvbiwuYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBjbHItaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBjZHMtaWNvbiwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBjbHItaWNvbiwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG4gY2RzLWljb24sLmJ0bi1kYW5nZXIt''@;'; put 'put ''b3V0bGluZSAuYnRuIGNsci1pY29uLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0biBjZHMtaWNvbiwuYnRuLW91dGxpbmUtZGFuZ2VyIC5idG4gY2xyLWljb257Y29sb3I6I2RiMjEwMDtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWNvbG9yLCAjZGIyMTAwKX0uYnRuLmJ0bi1k''@;'; put 'put ''YW5nZXItb3V0bGluZTp2aXNpdGVkLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyOnZpc2l0ZWQsLmJ0bi1kYW5nZXItb3V0bGluZSAuYnRuOnZpc2l0ZWQsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOnZpc2l0ZWR7Y29sb3I6I2RiMjEwMDtjb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1vdXRs''@;'; put 'put ''aW5lLWNvbG9yLCAjZGIyMTAwKX0uYnRuLmJ0bi1kYW5nZXItb3V0bGluZTpob3ZlciwuYnRuLmJ0bi1vdXRsaW5lLWRhbmdlcjpob3ZlciwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46aG92ZXIsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2ZlZGRk''@;'; put 'put ''NztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtaG92ZXItYmctY29sb3IsICNmZWRkZDcpO2NvbG9yOiM5OTE3MDA7Y29sb3I6dmFyKC0tY2xyLWJ0bi1kYW5nZXItb3V0bGluZS1ob3Zlci1jb2xvciwgIzk5MTcwMCl9LmJ0bi5idG4tZGFuZ2VyLW91dGxp''@;'; put 'put ''bmU6YWN0aXZlLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyOmFjdGl2ZSwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46YWN0aXZlLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4xcmVtICNmY2M1YmIgaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIo''@;'; put 'put ''LS1jbHItYnRuLWRhbmdlci1vdXRsaW5lLWJveC1zaGFkb3ctY29sb3IsICNmY2M1YmIpIGluc2V0fS5idG4uYnRuLWRhbmdlci1vdXRsaW5lLmRpc2FibGVkLC5idG4uYnRuLWRhbmdlci1vdXRsaW5lOmRpc2FibGVkLC5idG4uYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkLC5idG4uYnRu''@;'; put 'put ''LW91dGxpbmUtZGFuZ2VyOmRpc2FibGVkLC5idG4tZGFuZ2VyLW91dGxpbmUgLmJ0bi5kaXNhYmxlZCwuYnRuLWRhbmdlci1vdXRsaW5lIC5idG46ZGlzYWJsZWQsLmJ0bi1vdXRsaW5lLWRhbmdlciAuYnRuLmRpc2FibGVkLC5idG4tb3V0bGluZS1kYW5nZXIgLmJ0bjpkaXNhYmxlZHtjb2xv''@;'; put 'put ''cjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtY29sb3IsICM2NjY2NjYpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWRhbmdlci1v''@;'; put 'put ''dXRsaW5lLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tZGFuZ2VyLW91dGxpbmUtZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtib3gtc2hhZG93Om5vbmV9LmJ0bi5idG4tbGluaywuYnRu''@;'; put 'put ''LWxpbmsgLmJ0bntib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJnLWNv''@;'; put 'put ''bG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IsICMwMDcyYTMpfS5idG4uYnRuLWxpbmsgY2RzLWljb24sLmJ0bi5idG4tbGluayBjbHItaWNvbiwuYnRuLWxpbmsgLmJ0biBjZHMtaWNvbiwuYnRuLWxpbmsgLmJ0biBjbHItaWNv''@;'; put 'put ''bntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1idG4tbGluay1jb2xvciwgIzAwNzJhMyl9LmJ0bi5idG4tbGluazp2aXNpdGVkLC5idG4tbGluayAuYnRuOnZpc2l0ZWR7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IsICMwMDcyYTMpfS5idG4uYnRu''@;'; put 'put ''LWxpbms6aG92ZXIsLmJ0bi1saW5rIC5idG46aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1ob3Zlci1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5r''@;'; put 'put ''LWhvdmVyLWNvbG9yLCAjMDA1NjdhKX0uYnRuLmJ0bi1saW5rOmFjdGl2ZSwuYnRuLWxpbmsgLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzpub25lfS5idG4uYnRuLWxpbmsuZGlzYWJsZWQsLmJ0bi5idG4tbGluazpkaXNhYmxlZCwuYnRuLWxpbmsgLmJ0bi5kaXNhYmxlZCwuYnRuLWxpbmsgLmJ0''@;'; put 'put ''bjpkaXNhYmxlZHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1idG4tbGluay1kaXNhYmxlZC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbGlu''@;'; put 'put ''ay1kaXNhYmxlZC1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWJvcmRlci1jb2xvciwgdHJhbnNwYXJlbnQpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1pbnZlcnNlLC5hbGVy''@;'; put 'put ''dC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0biwuYnRuLWludmVyc2UgLmJ0bntib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWJvcmRlci1jb2xvciwgd2hpdGUpO2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xv''@;'; put 'put ''cjp2YXIoLS1jbHItYnRuLWludmVyc2UtYmctY29sb3IsIHRyYW5zcGFyZW50KTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWludmVyc2UgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNkcy1p''@;'; put 'put ''Y29uLC5idG4uYnRuLWludmVyc2UgY2xyLWljb24sLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIGNsci1pY29uLC5idG4taW52ZXJzZSAuYnRuIGNkcy1pY29uLC5idG4taW52ZXJzZSAuYnRuIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNl''@;'; put 'put ''LWNvbG9yLCB3aGl0ZSl9LmJ0bi5idG4taW52ZXJzZTp2aXNpdGVkLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bjp2aXNpdGVkLC5idG4taW52ZXJzZSAuYnRuOnZpc2l0ZWR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtY29sb3IsIHdoaXRlKX0uYnRu''@;'; put 'put ''LmJ0bi1pbnZlcnNlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bjpob3ZlciwuYnRuLWludmVyc2UgLmJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYyNjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1ob3Zlci1iZy1jb2xvciwg''@;'; put 'put ''cmdiYSgyNTUsIDI1NSwgMjU1LCAuMTUpKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1ob3Zlci1jb2xvciwgd2hpdGUpfS5idG4uYnRuLWludmVyc2U6YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bjphY3RpdmUsLmJ0bi1pbnZlcnNlIC5i''@;'; put 'put ''dG46YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMDAwMDAwNDAgaW5zZXQ7Ym94LXNoYWRvdzowIC4xcmVtIDAgMCB2YXIoLS1jbHItYnRuLWludmVyc2UtYm94LXNoYWRvdy1jb2xvciwgcmdiYSgwLCAwLCAwLCAuMjUpKSBpbnNldH0uYnRuLmJ0bi1pbnZlcnNlLmRpc2FibGVkLC5hbGVy''@;'; put 'put ''dC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bi5kaXNhYmxlZCwuYnRuLmJ0bi1pbnZlcnNlOmRpc2FibGVkLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bjpkaXNhYmxlZCwuYnRuLWludmVyc2UgLmJ0bi5kaXNhYmxlZCwuYnRuLWludmVyc2UgLmJ0bjpkaXNhYmxlZHtjb2xv''@;'; put 'put ''cjojZmZmO2NvbG9yOnZhcigtLWNsci1idG4taW52ZXJzZS1kaXNhYmxlZC1jb2xvciwgd2hpdGUpO2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40O2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLWludmVyc2UtZGlzYWJsZWQt''@;'; put 'put ''YmctY29sb3IsIHRyYW5zcGFyZW50KTtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1pbnZlcnNlLWRpc2FibGVkLWJvcmRlci1jb2xvciwgd2hpdGUpO2JveC1zaGFkb3c6bm9uZX0uYnRuLmJ0bi1zbSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5i''@;'; put 'put ''dG4sLmJ0bi1zbSAuYnRue2xpbmUtaGVpZ2h0OjEuMTVyZW07bGluZS1oZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWxpbmUtaGVpZ2h0LCAxLjE1cmVtKTtsZXR0ZXItc3BhY2luZzouMDczZW07Zm9udC1zaXplOi41NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWJ0''@;'; put 'put ''bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtc2l6ZSwgLjU1cmVtKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLWZvbnQtd2VpZ2h0LCA1MDApO2hlaWdodDoxLjJyZW07aGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5j''@;'; put 'put ''ZS1zdGFuZGFyZC1oZWlnaHQsIDEuMnJlbSk7cGFkZGluZzowIC42cmVtO3BhZGRpbmc6dmFyKC0tY2xyLWJ0bi1hcHBlYXJhbmNlLXN0YW5kYXJkLXBhZGRpbmcsIDAgLjZyZW0pfS5idG4tYmxvY2t7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfS5idG57bWFyZ2lu''@;'; put 'put ''LXRvcDouM3JlbTttYXJnaW4tdG9wOnZhcigtLWNsci1idG4tdmVydGljYWwtbWFyZ2luLCAuM3JlbSk7bWFyZ2luLWJvdHRvbTouM3JlbTttYXJnaW4tYm90dG9tOnZhcigtLWNsci1idG4tdmVydGljYWwtbWFyZ2luLCAuM3JlbSk7bWFyZ2luLXJpZ2h0Oi42cmVtO21hcmdpbi1yaWdodDp2''@;'; put 'put ''YXIoLS1jbHItYnRuLWhvcml6b250YWwtbWFyZ2luLCAuNnJlbSk7bWFyZ2luLWxlZnQ6MH0uYnRuLmJ0bi1saW5re21hcmdpbi1yaWdodDowfS5idG4uYnRuLWxpbmsuYnRuLWludmVyc2UsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuLmJ0bi1saW5re2JvcmRlci1jb2xvcjp0''@;'; put 'put ''cmFuc3BhcmVudH0uYnRuLXNtOm5vdCguYnRuLWxpbmspIGNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bjpub3QoLmJ0bi1saW5rKSBjbHItaWNvbnt3aWR0aDouNnJlbTt3aWR0aDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtaWNvbi1zaXplLCAu''@;'; put 'put ''NnJlbSk7aGVpZ2h0Oi42cmVtO2hlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtaWNvbi1zaXplLCAuNnJlbSk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLS4wNXJlbSwwKX0uYnRuLXNtOm5vdCguYnRuLWxpbmspIGNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFs''@;'; put 'put ''ZXJ0LWl0ZW0gLmJ0bjpub3QoLmJ0bi1saW5rKSBjZHMtaWNvbnt3aWR0aDouNnJlbTt3aWR0aDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtaWNvbi1zaXplLCAuNnJlbSk7aGVpZ2h0Oi42cmVtO2hlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Utc3RhbmRhcmQtaWNv''@;'; put 'put ''bi1zaXplLCAuNnJlbSk7bWFyZ2luLXRvcDotLjFyZW19LmJ0bi1pY29ue21pbi13aWR0aDowfS5idG4uZGlzYWJsZWQgY2RzLWljb24sLmJ0bi5kaXNhYmxlZCBjbHItaWNvbiwuYnRuOmRpc2FibGVkIGNkcy1pY29uLC5idG46ZGlzYWJsZWQgY2xyLWljb257Y29sb3I6I2NjYztjb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItYnRuLWljb24tZGlzYWJsZWQtY29sb3IsICNjY2NjY2MpfS5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bkb3duLXRvZ2dsZSwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUsLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLC5i''@;'; put 'put ''dG4tZ3JvdXAuYnRuLWRhbmdlciAuZHJvcGRvd24tdG9nZ2xle2JvcmRlci1jb2xvcjojMDA3MmEzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktYm9yZGVyLWNvbG9yLCAjMDA3MmEzKTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1j''@;'; put 'put ''bHItYnRuLXByaW1hcnktYmctY29sb3IsICMwMDcyYTMpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yLCB3aGl0ZSl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uLC5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bk''@;'; put 'put ''b3duLXRvZ2dsZSBjbHItaWNvbiwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGUgY2RzLWljb24sLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlIGNsci1pY29uLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZSBjZHMtaWNv''@;'; put 'put ''biwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb24sLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUgY2RzLWljb24sLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb257Y29sb3I6I2ZmZjtjb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItYnRuLXByaW1hcnktY29sb3IsIHdoaXRlKX0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9wZG93bi10b2dnbGU6dmlzaXRlZCwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGU6dmlzaXRlZCwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10''@;'; put 'put ''b2dnbGU6dmlzaXRlZCwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWNvbG9yLCB3aGl0ZSl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5idG4t''@;'; put 'put ''Z3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDA1NjdhO2JhY2tncm91''@;'; put 'put ''bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWhvdmVyLWJnLWNvbG9yLCAjMDA1NjdhKTtjb2xvcjojZTNmNWZjO2NvbG9yOnZhcigtLWNsci1idG4tcHJpbWFyeS1ob3Zlci1jb2xvciwgI2UzZjVmYyl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2''@;'; put 'put ''ZSwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGU6YWN0aXZlLC5idG4tZ3JvdXAuYnRuLXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmUsLmJ0bi1ncm91cC5idG4tZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2JveC1zaGFkb3c6MCAuMXJlbSAjMTc5''@;'; put 'put ''YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMXJlbSAwIDAgdmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWJveC1zaGFkb3ctY29sb3IsICMxNzliZDMpIGluc2V0fS5idG4tZ3JvdXAuYnRuLXByaW1hcnkgLmRyb3Bkb3duLXRvZ2dsZS5kaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5kcm9w''@;'; put 'put ''ZG93bi10b2dnbGU6ZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpkaXNhYmxlZCwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuZGlzYWJs''@;'; put 'put ''ZWQsLmJ0bi1ncm91cC5idG4td2FybmluZyAuZHJvcGRvd24tdG9nZ2xlOmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmRpc2FibGVkLC5idG4tZ3JvdXAuYnRuLWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6''@;'; put 'put ''dmFyKC0tY2xyLWJ0bi1wcmltYXJ5LWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYmctY29sb3IsICNjY2NjY2Mp''@;'; put 'put ''O2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLXByaW1hcnktZGlzYWJsZWQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93Om5vbmV9LmJ0bi1ncm91cC5idG4tZGFuZ2VyIDpkaXNhYmxlZHtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6''@;'; put 'put ''dmFyKC0tLS1jbHItY29sb3ItbmV1dHJhbC00MDAsICNjY2NjY2MpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1ib3JkZXItY29sb3IsIHRyYW5zcGFyZW50KTtiYWNr''@;'; put 'put ''Z3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IsICMwMDcyYTMpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bk''@;'; put 'put ''b3duLXRvZ2dsZSBjZHMtaWNvbiwuYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb257Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstY29sb3IsICMwMDcyYTMpfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZTp2aXNpdGVk''@;'; put 'put ''e2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWNvbG9yLCAjMDA3MmEzKX0uYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1idG4tbGluay1o''@;'; put 'put ''b3Zlci1iZy1jb2xvciwgdHJhbnNwYXJlbnQpO2NvbG9yOiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWhvdmVyLWNvbG9yLCAjMDA1NjdhKX0uYnRuLWdyb3VwLmJ0bi1saW5rIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2JveC1zaGFkb3c6bm9uZX0uYnRuLWdyb3VwLmJ0bi1s''@;'; put 'put ''aW5rIC5kcm9wZG93bi10b2dnbGUuZGlzYWJsZWQsLmJ0bi1ncm91cC5idG4tbGluayAuZHJvcGRvd24tdG9nZ2xlOmRpc2FibGVke2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWNvbG9yLCAjNjY2NjY2KTtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTou''@;'; put 'put ''NDtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWJ0bi1saW5rLWRpc2FibGVkLWJnLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYnRuLWxpbmstZGlzYWJsZWQt''@;'; put 'put ''Ym9yZGVyLWNvbG9yLCB0cmFuc3BhcmVudCk7Ym94LXNoYWRvdzpub25lfS5idG4tZ3JvdXAuYnRuLXNtIC5idG4tZ3JvdXAtb3ZlcmZsb3c+LmRyb3Bkb3duLXRvZ2dsZSwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5idG4tZ3JvdXAuYnRuIC5idG4tZ3JvdXAtb3ZlcmZsb3c+LmRy''@;'; put 'put ''b3Bkb3duLXRvZ2dsZXtsaW5lLWhlaWdodDoxLjE1cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1saW5lLWhlaWdodCwgMS4xNXJlbSk7bGV0dGVyLXNwYWNpbmc6LjA3M2VtO2ZvbnQtc2l6ZTouNTVyZW07Zm9udC1zaXplOnZhcigtLWNsci1idG4t''@;'; put 'put ''YXBwZWFyYW5jZS1zdGFuZGFyZC1mb250LXNpemUsIC41NXJlbSk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1mb250LXdlaWdodCwgNTAwKTtoZWlnaHQ6MS4ycmVtO2hlaWdodDp2YXIoLS1jbHItYnRuLWFwcGVhcmFuY2Ut''@;'; put 'put ''c3RhbmRhcmQtaGVpZ2h0LCAxLjJyZW0pO3BhZGRpbmc6MCAuNnJlbTtwYWRkaW5nOnZhcigtLWNsci1idG4tYXBwZWFyYW5jZS1zdGFuZGFyZC1wYWRkaW5nLCAwIC42cmVtKX0uY2hlY2tib3guYnRuLC5jaGVja2JveC1pbmxpbmUuYnRuLC5yYWRpby5idG4sLnJhZGlvLWlubGluZS5idG57''@;'; put 'put ''cGFkZGluZzowfS5jaGVja2JveC5idG4gbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4gbGFiZWwsLnJhZGlvLmJ0biBsYWJlbCwucmFkaW8taW5saW5lLmJ0biBsYWJlbHtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OmluaGVyaXQ7cGFkZGluZzowIC42cmVtO2N1cnNvcjpwb2ludGVyfS5j''@;'; put 'put ''aGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3JlLC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXIsLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3JlLC5jaGVja2JveC1pbmxpbmUu''@;'; put 'put ''YnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmFmdGVye2NvbnRlbnQ6bm9uZX0ucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dK2xhYmVsOmJlZm9yZSwucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dK2xhYmVsOmFmdGVyLC5yYWRpby1pbmxpbmUuYnRuIGlucHV0W3R5cGU9cmFk''@;'; put 'put ''aW9dK2xhYmVsOmJlZm9yZSwucmFkaW8taW5saW5lLmJ0biBpbnB1dFt0eXBlPXJhZGlvXStsYWJlbDphZnRlcntjb250ZW50Om5vbmV9LmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hl''@;'; put 'put ''Y2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb24sLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0biBpbnB1dFt0eXBl''@;'; put 'put ''PWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2RzLWljb257YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2NvbG9yOiNmZmZ9LmNoZWNrYm94LmJ0biBsYWJlbCwuY2hlY2tib3gt''@;'; put 'put ''aW5saW5lLmJ0biBsYWJlbHt3aWR0aDoxMDAlfS5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5j''@;'; put 'put ''aGVja2JveC5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hl''@;'; put 'put ''Y2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2ti''@;'; put 'put ''b3guYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnktb3V0bGlu''@;'; put 'put ''ZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNr''@;'; put 'put ''Ym94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCts''@;'; put 'put ''YWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5j''@;'; put 'put ''aGVja2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5i''@;'; put 'put ''dG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3guYnRuLmJ0bi1vdXRsaW5l''@;'; put 'put ''LXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNo''@;'; put 'put ''ZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2Vk''@;'; put 'put ''K2xhYmVsLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2Jv''@;'; put 'put ''eC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tc2Vjb25kYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRu''@;'; put 'put ''LXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1jaGVj''@;'; put 'put ''a2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQr''@;'; put 'put ''bGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVj''@;'; put 'put ''a2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeS1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94''@;'; put 'put ''LWlubGluZS5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2JveC1p''@;'; put 'put ''bmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5j''@;'; put 'put ''aGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tb3V0bGluZS1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNr''@;'; put 'put ''Ym94LWlubGluZS5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5jaGVja2Jv''@;'; put 'put ''eC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29u''@;'; put 'put ''LC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1pbmZvLW91dGxpbmUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW5mby1vdXRsaW5lIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94''@;'; put 'put ''LWlubGluZS5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1vdXRsaW5lLWluZm8gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0''@;'; put 'put ''bi5idG4tb3V0bGluZS1pbmZvIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzAw''@;'; put 'put ''NzJhMztjb2xvcjojZmZmfS5jaGVja2JveC5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4t''@;'; put 'put ''cHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1j''@;'; put 'put ''aGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztjb2xvcjojZmZmfS5jaGVja2JveC5idG4uYnRuLXN1''@;'; put 'put ''Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2Vk''@;'; put 'put ''K2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNrYm94LWlubGluZS5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hl''@;'; put 'put ''Y2tib3gtaW5saW5lLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzMwNmIwMDtjb2xvcjojZmZmfS5jaGVja2JveC5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xh''@;'; put 'put ''YmVsLC5jaGVja2JveC5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0''@;'; put 'put ''bi1kYW5nZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tZGFuZ2VyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LWlubGluZS5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPWNo''@;'; put 'put ''ZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtjb2xvcjojZmZmfS5jaGVja2JveC5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3guYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2ti''@;'; put 'put ''b3hdOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLmNoZWNrYm94LmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5jaGVja2JveC1pbmxpbmUuYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNr''@;'; put 'put ''Ym94LWlubGluZS5idG4uYnRuLWxpbmsgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6dHJhbnNw''@;'; put 'put ''YXJlbnQ7Y29sb3I6IzAwNTY3YX0uY2hlY2tib3guYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuY2hlY2tib3guYnRuIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWwsLmNoZWNr''@;'; put 'put ''Ym94LmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LmJ0biBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5jaGVja2JveC5idG4u''@;'; put 'put ''YnRuLWludmVyc2UgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5jaGVja2JveC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5i''@;'; put 'put ''dG4taW52ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbCwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW52ZXJzZSBp''@;'; put 'put ''bnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwuY2hlY2tib3gtaW5saW5lLmJ0bi5idG4taW52''@;'; put 'put ''ZXJzZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmNoZWNrYm94LWlubGluZS5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZm''@;'; put 'put ''ZmYyNjtjb2xvcjojZmZmfS5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5y''@;'; put 'put ''YWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzAw''@;'; put 'put ''NzJhMztjb2xvcjojZmZmfS5yYWRpby5idG4gbGFiZWwsLnJhZGlvLmJ0biBsYWJlbHt3aWR0aDoxMDAlfS5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVj''@;'; put 'put ''a2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5''@;'; put 'put ''cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1v''@;'; put 'put ''dXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVj''@;'; put 'put ''a2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4u''@;'; put 'put ''YnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1''@;'; put 'put ''dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNs''@;'; put 'put ''ci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGlu''@;'; put 'put ''ZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBl''@;'; put 'put ''PXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRp''@;'; put 'put ''by5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJh''@;'; put 'put ''ZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRu''@;'; put 'put ''LXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1pbmZvIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24s''@;'; put 'put ''LnJhZGlvLmJ0bi5idG4taW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQr''@;'; put 'put ''bGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXByaW1hcnkt''@;'; put 'put ''b3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXNlY29uZGFyeS1vdXRsaW5lIGlucHV0W3R5cGU9''@;'; put 'put ''cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tc2Vjb25kYXJ5LW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1zZWNvbmRhcnktb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1p''@;'; put 'put ''Y29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtcHJp''@;'; put 'put ''bWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc2Vjb25kYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1zZWNvbmRhcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hl''@;'; put 'put ''Y2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLXNlY29uZGFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4u''@;'; put 'put ''YnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWluZm8tb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBl''@;'; put 'put ''PXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtaW5mbyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tn''@;'; put 'put ''cm91bmQtY29sb3I6IzAwNzJhMztjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4t''@;'; put 'put ''cHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXByaW1hcnkgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1wcmltYXJ5IGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWlj''@;'; put 'put ''b24sLnJhZGlvLmJ0bi5idG4tcHJpbWFyeSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8u''@;'; put 'put ''YnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3MgaW5wdXRbdHlwZT1yYWRpb106Y2hl''@;'; put 'put ''Y2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1zdWNjZXNzIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzMwNmIwMDtj''@;'; put 'put ''b2xvcjojZmZmfS5yYWRpby5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlv''@;'; put 'put ''XTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlciBp''@;'; put 'put ''bnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3Mtb3V0''@;'; put 'put ''bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlv''@;'; put 'put ''XTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRp''@;'; put 'put ''by5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLXN1Y2Nlc3Mtb3V0bGluZSBpbnB1''@;'; put 'put ''dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNs''@;'; put 'put ''ci1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtc3VjY2VzcyBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6IzNjODUwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNo''@;'; put 'put ''ZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4u''@;'; put 'put ''YnRuLW91dGxpbmUtZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBpbnB1dFt0eXBlPXJh''@;'; put 'put ''ZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLWRhbmdlci1vdXRsaW5lIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tZGFuZ2VyLW91dGxpbmUgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFk''@;'; put 'put ''aW8uYnRuLmJ0bi1kYW5nZXItb3V0bGluZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRuLW91dGxpbmUtZGFuZ2VyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4tb3V0bGluZS1kYW5nZXIgaW5wdXRb''@;'; put 'put ''dHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jbHItaWNvbiwucmFkaW8uYnRuLmJ0bi1vdXRsaW5lLWRhbmdlciBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtjb2xvcjojZmZmfS5yYWRpby5idG4uYnRuLWxpbmsgaW5w''@;'; put 'put ''dXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29uLC5yYWRpby5idG4uYnRu''@;'; put 'put ''LWxpbmsgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbCwucmFkaW8uYnRuLmJ0bi1saW5rIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw+Y2xyLWljb24sLnJhZGlvLmJ0bi5idG4tbGluayBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNkcy1pY29ue2JhY2tn''@;'; put 'put ''cm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Y29sb3I6IzAwNTY3YX0ucmFkaW8uYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWwsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAucmFkaW8uYnRuIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWws''@;'; put 'put ''LnJhZGlvLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLnJhZGlvLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWludmVy''@;'; put 'put ''c2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtIC5yYWRpby5idG4gaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbiwucmFkaW8uYnRuLmJ0bi1pbnZlcnNlIGlucHV0W3R5cGU9cmFkaW9d''@;'; put 'put ''OmNoZWNrZWQrbGFiZWwsLnJhZGlvLmJ0bi5idG4taW52ZXJzZSBpbnB1dFt0eXBlPXJhZGlvXTpjaGVja2VkK2xhYmVsPmNsci1pY29uLC5yYWRpby5idG4uYnRuLWludmVyc2UgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZCtsYWJlbD5jZHMtaWNvbntiYWNrZ3JvdW5kLWNvbG9yOiNmZmZm''@;'; put 'put ''ZmYyNjtjb2xvcjojZmZmfS5idG4tZ3JvdXB7ZGlzcGxheTppbmxpbmUtZmxleDttYXJnaW4tcmlnaHQ6LjZyZW19LmJ0bi1ncm91cCBjbHItZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtib3JkZXItcmFkaXVzOjB9LmJ0bi1ncm91cCBjbHItZHJvcGRvd246bGFzdC1jaGlsZCAuZHJvcGRv''@;'; put 'put ''d24tdG9nZ2xle2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMTVyZW19LmJ0bi1ncm91cCAuYnRue21hcmdpbjowO3ZlcnRpY2FsLWFsaWduOnRvcDtvdmVyZmxvdzpoaWRkZW59LmJ0bi1ncm91cCAuYnRuIGxhYmVse2hlaWdodDox''@;'; put 'put ''MDAlfS5idG4tZ3JvdXAgLmJ0biBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cywuYnRuLWdyb3VwIC5idG4gaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXN7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO29wYWNpdHk6MTt0b3A6MDtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAl''@;'; put 'put ''O2JveC1zaGFkb3c6MCAwIC4yNXJlbSAjNTFjYmVlO2JveC1zaGFkb3c6MCAwIC4yNXJlbSB2YXIoLS1jbHItYnRuLWdyb3VwLWZvY3VzLW91dGxpbmUsICM1MWNiZWUpO3BhZGRpbmc6LjE1cmVtIDAgLjE1cmVtIC4xNXJlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci1zdHlsZTpzb2xp''@;'; put 'put ''ZDtib3JkZXItY29sb3I6IzUxY2JlZTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWJ0bi1ncm91cC1mb2N1cy1vdXRsaW5lLCAjNTFjYmVlKX0uYnRuLWdyb3VwIC5idG4gaW5wdXRbdHlwZT1yYWRpb106Zm9jdXM6Oi1tcy1jaGVjaywuYnRuLWdyb3VwIC5idG4gaW5wdXRbdHlwZT1jaGVja2Jv''@;'; put 'put ''eF06Zm9jdXM6Oi1tcy1jaGVja3tkaXNwbGF5Om5vbmV9LmJ0bi1ncm91cCAuYnRuOm5vdCg6Zmlyc3QtY2hpbGQpe2JvcmRlci10b3AtbGVmdC1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LmJ0bi1ncm91cCAuYnRuOm5vdCg6bGFzdC1jaGlsZCl7Ym9yZGVyLXRvcC1y''@;'; put 'put ''aWdodC1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5idG4tZ3JvdXAgLnRvb2x0aXA6bm90KDpmaXJzdC1jaGlsZCkgLmJ0bntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5idG4tZ3JvdXAgLnRvb2x0aXA6bm90KDps''@;'; put 'put ''YXN0LWNoaWxkKSAuYnRue2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCkgLmJ0biwuYnRuLWdyb3VwLmJ0bi1wcmltYXJ5IC5idG46bm90KDpsYXN0LWNo''@;'; put 'put ''aWxkKSwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC50b29sdGlwOm5vdCg6bGFzdC1jaGlsZCkgLmJ0biwuYnRuLWdyb3VwLmJ0bi1zdWNjZXNzIC5idG46bm90KDpsYXN0LWNoaWxkKSwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLnRvb2x0aXA6bm90KDpsYXN0LWNoaWxkKSAuYnRuLC5idG4tZ3Jv''@;'; put 'put ''dXAuYnRuLWRhbmdlciAuYnRuOm5vdCg6bGFzdC1jaGlsZCksLmJ0bi1ncm91cC5idG4td2FybmluZyAudG9vbHRpcDpub3QoOmxhc3QtY2hpbGQpIC5idG4sLmJ0bi1ncm91cC5idG4td2FybmluZyAuYnRuOm5vdCg6bGFzdC1jaGlsZCl7bWFyZ2luOjA7bWFyZ2luLXJpZ2h0Oi4wNXJlbTtt''@;'; put 'put ''YXJnaW4tcmlnaHQ6dmFyKC0tY2xyLWJ0bi1ib3JkZXItd2lkdGgsIC4wNXJlbSl9LmJ0bi1ncm91cC5idG4tcHJpbWFyeSAuZHJvcGRvd24tbWVudSAuYnRuLC5idG4tZ3JvdXAuYnRuLXN1Y2Nlc3MgLmRyb3Bkb3duLW1lbnUgLmJ0biwuYnRuLWdyb3VwLmJ0bi1kYW5nZXIgLmRyb3Bkb3du''@;'; put 'put ''LW1lbnUgLmJ0biwuYnRuLWdyb3VwLmJ0bi13YXJuaW5nIC5kcm9wZG93bi1tZW51IC5idG57bWFyZ2luOjB9LmJ0bi1ncm91cD4uYnRuLWdyb3VwLW92ZXJmbG93e3Bvc2l0aW9uOnJlbGF0aXZlfS5idG4tZ3JvdXA+LmJ0bi1ncm91cC1vdmVyZmxvdzpsYXN0LWNoaWxkOm5vdCg6Zmlyc3Qt''@;'; put 'put ''Y2hpbGQpPi5idG46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItYnRuLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MH0uYnRuLWdyb3VwPi5idG4t''@;'; put 'put ''Z3JvdXAtb3ZlcmZsb3c6bGFzdC1jaGlsZDpmaXJzdC1jaGlsZD4uYnRuOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWJ0bi1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5idG4tZ3JvdXAgLmJ0bisuYnRue2JvcmRlci1sZWZ0Om5vbmV9''@;'; put 'put ''LmJ0bi1ncm91cCAudG9vbHRpcDpub3QoOmZpcnN0LWNoaWxkKSAuYnRue2JvcmRlci1sZWZ0Om5vbmV9LmJ0bi1ncm91cCAuYnRuKy5idG4tZ3JvdXAtb3ZlcmZsb3cgLmJ0bntib3JkZXItbGVmdDpub25lfS5idG4tZ3JvdXAuYnRuLWxpbmsgLmRyb3Bkb3duLXRvZ2dsZSwuYnRuLWdyb3Vw''@;'; put 'put ''LmJ0bi1pY29uLWxpbmsuYnRuLWxpbmsgLmJ0biwuYnRuLWdyb3VwLmJ0bi1pY29uIC5idG57bWluLXdpZHRoOjB9LmJ0bi1ncm91cCAuY2xyLWljb24tdGl0bGV7ZGlzcGxheTpub25lO3RleHQtdHJhbnNmb3JtOm5vbmV9LmJ0bi1ncm91cCAuZHJvcGRvd24tdG9nZ2xle2Rpc3BsYXk6Ymxv''@;'; put 'put ''Y2t9LmJ0bi1ncm91cCAuZHJvcGRvd24tbWVudSBjZHMtaWNvbiwuYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IGNsci1pY29ue2Rpc3BsYXk6bm9uZX0uYnRuLWdyb3VwIC5kcm9wZG93bi1tZW51IC5jbHItaWNvbi10aXRsZXtkaXNwbGF5OmlubGluZX0uY2hlY2tib3gsLnJhZGlve3Bvc2l0''@;'; put 'put ''aW9uOnJlbGF0aXZlfS5jaGVja2JveCBpbnB1dFt0eXBlPWNoZWNrYm94XSwuY2hlY2tib3ggaW5wdXRbdHlwZT1yYWRpb10sLnJhZGlvIGlucHV0W3R5cGU9Y2hlY2tib3hdLC5yYWRpbyBpbnB1dFt0eXBlPXJhZGlvXXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7aGVpZ2h0OjA7''@;'; put 'put ''d2lkdGg6MDtvcGFjaXR5OjB9LmNhcmQtZm9vdGVyIC5jaGVja2JveC5idG4gbGFiZWwsLmNhcmQtZm9vdGVyIC5yYWRpby5idG4gbGFiZWx7bGluZS1oZWlnaHQ6MS4xNXJlbX0uZHJvcGRvd24tbWVudS5jbHItYnV0dG9uLWdyb3VwLW1lbnV7dmlzaWJpbGl0eTp2aXNpYmxlfWJ1dHRvbi5j''@;'; put 'put ''bG9zZXtwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LmNsb3Nle2Zsb2F0OnJpZ2h0O2ZvbnQtc2l6ZToxLjhyZW07dHJhbnNpdGlvbjpjb2xvciBsaW5lYXIgLjJzO2ZvbnQtd2VpZ2h0OjIwMDt0ZXh0LXNo''@;'; put 'put ''YWRvdzpub25lO2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY2xvc2UtY29sb3ItLW5vcm1hbCwgIzhjOGM4Yyl9LmNsb3NlIGNkcy1pY29uLC5jbG9zZSBjbHItaWNvbntmaWxsOiM4YzhjOGM7ZmlsbDp2YXIoLS1jbHItY2xvc2UtY29sb3ItLW5v''@;'; put 'put ''cm1hbCwgIzhjOGM4Yyl9LmNsb3NlOmZvY3VzLC5jbG9zZTpob3ZlciwuY2xvc2U6YWN0aXZle29wYWNpdHk6MTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jbG9zZS1jb2xvci0taG92ZXIsIGJsYWNrKX0uY2xvc2U6Zm9jdXMgY2RzLWljb24sLmNsb3NlOmZvY3VzIGNsci1pY29uLC5j''@;'; put 'put ''bG9zZTpob3ZlciBjZHMtaWNvbiwuY2xvc2U6aG92ZXIgY2xyLWljb24sLmNsb3NlOmFjdGl2ZSBjZHMtaWNvbiwuY2xvc2U6YWN0aXZlIGNsci1pY29ue2ZpbGw6IzAwMDtmaWxsOnZhcigtLWNsci1jbG9zZS1jb2xvci0taG92ZXIsIGJsYWNrKX0uY2xvc2U6Zm9jdXN7b3V0bGluZTpIaWdo''@;'; put 'put ''bGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfTpyb290ey0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWFsZXJ0LWFjdGlvbi1h''@;'; put 'put ''Y3RpdmUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tOTAwKTstLWNsci1hbGVydC1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tY29sb3IpOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlv''@;'; put 'put ''bi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eToxOy0tY2xyLWFsZXJ0LWNsb3NlLWljb24taG92ZXItb3BhY2l0eToxOy0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1hcHAtYWxlcnQtY2xvc2Ut''@;'; put 'put ''aWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5Oi44Oy0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6MTstLWNsci1hbGVydC1ib3JkZXJyYWRpdXM6dmFyKC0tY2xyLWdsb2Jh''@;'; put 'put ''bC1ib3JkZXJyYWRpdXMpOy0tY2xyLWFsZXJ0LWluZm8tYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MCk7LS1jbHItYWxlcnQtaW5mby1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxlcnQtaW5mby1ib3JkZXItY29sb3I6dmFyKC0tY2xy''@;'; put 'put ''LWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWFsZXJ0LWluZm8taWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcik7LS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZl''@;'; put 'put ''LWNvbG9yOnZhcigtLWNsci1hbGVydC1hY3Rpb24tYWN0aXZlLWNvbG9yKTstLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1j''@;'; put 'put ''bG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1jb2xvcik7LS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWlj''@;'; put 'put ''b24taG92ZXItb3BhY2l0eSk7LS1jbHItYWxlcnQtc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy01MCk7LS1jbHItYWxlcnQtc3VjY2Vzcy1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxlcnQtc3VjY2Vzcy1ib3JkZXItY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtODAwKTstLWNsci1hbGVydC1zdWNjZXNzLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtODAwKTstLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtYWN0aW9uLWNvbG9yKTstLWNsci1hbGVy''@;'; put 'put ''dC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1p''@;'; put 'put ''Y29uLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92''@;'; put 'put ''ZXItb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hbGVydC13YXJuaW5nLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTEwMCk7LS1jbHItYWxlcnQtd2FybmluZy1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFs''@;'; put 'put ''LTkwMCk7LS1jbHItYWxlcnQtd2FybmluZy1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctODAwKTstLWNsci1hbGVydC13YXJuaW5nLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctODAwKTstLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvcjp2YXIo''@;'; put 'put ''LS1jbHItYWxlcnQtYWN0aW9uLWNvbG9yKTstLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNv''@;'; put 'put ''bi1jb2xvcik7LS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLWNvbG9y''@;'; put 'put ''KTstLWNsci1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItb3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hbGVydC1kYW5nZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci0xMDApOy0tY2xyLWFsZXJ0LWRhbmdlci1m''@;'; put 'put ''b250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItYWxlcnQtZGFuZ2VyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7LS1jbHItYWxlcnQtZGFuZ2VyLWljb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci05MDApOy0tY2xyLWFs''@;'; put 'put ''ZXJ0LWRhbmdlci1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1jb2xvcik7LS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWFjdGlvbi1hY3RpdmUtY29sb3IpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9y''@;'; put 'put ''OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hbGVy''@;'; put 'put ''dC1jbG9zZS1pY29uLWhvdmVyLWNvbG9yKTstLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24t''@;'; put 'put ''NjAwKTstLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC1pbmZvLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9z''@;'; put 'put ''ZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWZvbnQtY29sb3IpOy0t''@;'; put 'put ''Y2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFwcC1h''@;'; put 'put ''bGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0t''@;'; put 'put ''Y2xyLWFwcC1hbGVydC13YXJuaW5nLWJnLWNvbG9yOmhzbCgyNiwgMTAwJSwgMzglKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1ib3JkZXItY29sb3I6bm9uZTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7''@;'; put 'put ''LS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvcjp2YXIoLS1jbHItYXBwLWxldmVsLWFsZXJ0LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXdh''@;'; put 'put ''cm5pbmctYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2Fybmlu''@;'; put 'put ''Zy1jbG9zZS1pY29uLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWNvbG9yKTstLWNsci1hcHAtYWxlcnQtd2Fy''@;'; put 'put ''bmluZy1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItYm9yZGVy''@;'; put 'put ''LWNvbG9yOm5vbmU7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1pY29uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yOnZhcigtLWNsci1hcHAtbGV2ZWwtYWxlcnQtY29sb3IpOy0tY2xyLWFwcC1hbGVy''@;'; put 'put ''dC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWZvbnQtY29sb3IpOy0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0''@;'; put 'put ''aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yKTstLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tb3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tb3BhY2l0eSk7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9z''@;'; put 'put ''ZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHkpOy0tY2xyLWFwcC1hbGVy''@;'; put 'put ''dC1zdWNjZXNzLWJvcmRlci1jb2xvcjpub25lOy0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTcwMCk7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0t''@;'; put 'put ''Y2xyLWFwcC1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3I6dmFyKC0tY2xyLWFwcC1sZXZlbC1hbGVydC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWNsb3NlLWljb24tY29sb3IpOy0tY2xyLWFwcC1hbGVydC1zdWNj''@;'; put 'put ''ZXNzLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3Mt''@;'; put 'put ''Y2xvc2UtaWNvbi1vcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1vcGFjaXR5KTstLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1jb2xvcik7LS1jbHItYXBwLWFsZXJ0LXN1Y2Nl''@;'; put 'put ''c3MtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5KTstLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wLCB3aGl0ZSk7LS1jbHItYXBwLWFsZXJ0LWluZm8tcGFn''@;'; put 'put ''ZXItYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDAsICMwMDU2N2EpOy0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci13YXJuaW5nLTkwMCwgIzhmNWEwMCk7LS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1iZy1jb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCwgIzk5MTcwMCl9LmFsZXJ0LWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07bWFyZ2luLWxlZnQ6LS4xNXJlbTttYXJnaW4tdG9wOi0uMnJlbX0uYWxlcnQtaWNvbi13cmFwcGVye2ZsZXg6MCAwIDEuMjVyZW07YWxpZ24tc2VsZjpzdGFy''@;'; put 'put ''dDtwYWRkaW5nLXRvcDouMDVyZW07aGVpZ2h0Oi45cmVtfS5hbGVydC1pdGVte2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDpub3dyYXA7bWluLWhlaWdodDouOXJlbTttYXJnaW4tYm90dG9tOi4zcmVtfS5hbGVydC1pdGVtOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTow''@;'; put 'put ''fS5hbGVydC1pdGVtc3tmbGV4OjEgMSBhdXRvO2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwO3BhZGRpbmc6LjVyZW0gLjU1cmVtO2Rpc3BsYXk6ZmxleH0uYWxlcnQtaXRlbT5zcGFuLC5hbGVydC10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXgtZ3JvdzoxO2ZsZXgtc2hyaW5rOjE7Zmxl''@;'; put 'put ''eC1iYXNpczo5OCU7bWF4LXdpZHRoOjk4JTttYXJnaW4tcmlnaHQ6LjZyZW07dGV4dC1hbGlnbjpsZWZ0fS5hbGVydHtmb250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDouOXJlbTtwb3NpdGlvbjpyZWxhdGl2ZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7''@;'; put 'put ''ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOnJvdzt3aWR0aDphdXRvO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWFsZXJ0LWJvcmRlcnJhZGl1cywgLjE1cmVtKTttYXJnaW4tdG9wOi4zcmVtO2JhY2tncm91bmQ6I2UzZjVmYztiYWNrZ3JvdW5kOnZh''@;'; put 'put ''cigtLWNsci1hbGVydC1pbmZvLWJnLWNvbG9yLCAjZTNmNWZjKTtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDU2N2E7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVy''@;'; put 'put ''dC1pbmZvLWJvcmRlci1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0IC5hbGVydC1pY29ue2NvbG9yOiMwMDU2N2E7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8taWNvbi1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0IC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9y''@;'; put 'put ''OiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmFsZXJ0LWFjdGlvbiwuYWxlcnQgLmRyb3Bk''@;'; put 'put ''b3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xy''@;'; put 'put ''LWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0IC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydCAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0IC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5h''@;'; put 'put ''bGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKX0uYWxlcnQgLmFsZXJ0''@;'; put 'put ''LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNGYwMDcwIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApIGlu''@;'; put 'put ''c2V0fS5hbGVydCAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydCAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydCAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQgLmRyb3Bkb3duLXRv''@;'; put 'put ''Z2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQgLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nik7b3Bh''@;'; put 'put ''Y2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5LCAxKX0uYWxlcnQgLmNsb3NlIGNkcy1pY29uLC5hbGVydCAuY2xvc2UgY2xyLWljb257ZmlsbDojNjY2O2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2''@;'; put 'put ''Nil9LmFsZXJ0IC5jbG9zZTpmb2N1cywuYWxlcnQgLmNsb3NlOmhvdmVyLC5hbGVydCAuY2xvc2U6YWN0aXZle2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgIzRmMDA3MCk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xy''@;'; put 'put ''LWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtaW5mb3tiYWNrZ3JvdW5kOiNlM2Y1ZmM7YmFja2dyb3VuZDp2YXIoLS1jbHItYWxlcnQtaW5mby1iZy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5m''@;'; put 'put ''by1mb250LWNvbG9yLCAjNjY2NjY2KTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojMDA1NjdhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1ib3JkZXItY29sb3IsICMwMDU2N2EpfS5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1pY29ue2NvbG9yOiMwMDU2N2E7''@;'; put 'put ''Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWluZm8taWNvbi1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2''@;'; put 'put ''NjYpO2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24sLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZh''@;'; put 'put ''cigtLWNsci1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1p''@;'; put 'put ''bmZvLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVy''@;'; put 'put ''dC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6IzRmMDA3MDtib3JkZXItY29sb3I6dmFyKC0t''@;'; put 'put ''Y2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCl9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM0ZjAwNzAgaW5z''@;'; put 'put ''ZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCkgaW5zZXR9LmFsZXJ0LmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVy''@;'; put 'put ''dC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKTtjb2xvcjojNGYwMDcwfS5hbGVydC5hbGVydC1pbmZvIC5jbG9zZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tY29sb3IsICM2NjY2NjYpO29wYWNpdHk6MTtv''@;'; put 'put ''cGFjaXR5OnZhcigtLWNsci1hbGVydC1pbmZvLWNsb3NlLWljb24tb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlIGNkcy1pY29uLC5hbGVydC5hbGVydC1pbmZvIC5jbG9zZSBjbHItaWNvbntmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29u''@;'; put 'put ''LWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtaW5mbyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWluZm8gLmNsb3NlOmhvdmVyLC5hbGVydC5hbGVydC1pbmZvIC5jbG9zZTphY3RpdmV7Y29sb3I6IzRmMDA3MDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhv''@;'; put 'put ''dmVyLWNvbG9yLCAjNGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1zdWNjZXNze2JhY2tncm91bmQ6I2RmZjBkMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWJn''@;'; put 'put ''LWNvbG9yLCAjZGZmMGQwKTtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWZvbnQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMzMDZiMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWJvcmRlci1j''@;'; put 'put ''b2xvciwgIzMwNmIwMCl9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWljb257Y29sb3I6IzMwNmIwMDtjb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1pY29uLWNvbG9yLCAjMzA2YjAwKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bk''@;'; put 'put ''b3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgIzY2NjY2Nik7Ym9yZGVyLWNvbG9yOiM2NjY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0''@;'; put 'put ''LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbiwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0biwu''@;'; put 'put ''YWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywu''@;'; put 'put ''YWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bk''@;'; put 'put ''b3duLXRvZ2dsZS5idG46aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojNGYwMDcwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKX0uYWxlcnQu''@;'; put 'put ''YWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzRmMDA3MCBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYWxlcnQtc3Vj''@;'; put 'put ''Y2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKSBpbnNldH0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb246aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbjphY3RpdmUs''@;'; put 'put ''LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlOmhvdmVyLC5hbGVydC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWFj''@;'; put 'put ''dGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApO2NvbG9yOiM0ZjAwNzB9LmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3Nle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nik7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xy''@;'; put 'put ''LWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlIGNsci1pY29ue2ZpbGw6IzY2NjtmaWxsOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24tY29s''@;'; put 'put ''b3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC1zdWNjZXNzIC5jbG9zZTpmb2N1cywuYWxlcnQuYWxlcnQtc3VjY2VzcyAuY2xvc2U6aG92ZXIsLmFsZXJ0LmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmFjdGl2ZXtjb2xvcjojNGYwMDcwO2NvbG9yOnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWNsb3Nl''@;'; put 'put ''LWljb24taG92ZXItY29sb3IsICM0ZjAwNzApO29wYWNpdHk6MTtvcGFjaXR5OnZhcigtLWNsci1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LmFsZXJ0LXdhcm5pbmd7YmFja2dyb3VuZDojZmZmNGM3O2JhY2tncm91bmQ6dmFyKC0tY2xyLWFsZXJ0''@;'; put 'put ''LXdhcm5pbmctYmctY29sb3IsICNmZmY0YzcpO2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctZm9udC1jb2xvciwgIzMzMzMzMyk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2FkNzYwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5p''@;'; put 'put ''bmctYm9yZGVyLWNvbG9yLCAjYWQ3NjAwKX0uYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtaWNvbntjb2xvcjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWljb24tY29sb3IsICM0NTQ1NDUpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb25zIC5kcm9w''@;'; put 'put ''ZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWNvbG9yLCAjNjY2NjY2KX0u''@;'; put 'put ''YWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1h''@;'; put 'put ''Y3Rpb24uYnRuLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsICM2NjY2NjYpfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24u''@;'; put 'put ''YnRuOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQuYWxlcnQtd2Fy''@;'; put 'put ''bmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjAwNzA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAw''@;'; put 'put ''NzApfS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjNGYwMDcwIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNs''@;'; put 'put ''ci1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3IsICM0ZjAwNzApIGluc2V0fS5hbGVydC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpob3ZlciwuYWxlcnQuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0''@;'; put 'put ''aW9uOmFjdGl2ZSwuYWxlcnQuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0''@;'; put 'put ''LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2V7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWNvbG9yLCAjNjY2NjY2KTtvcGFjaXR5OjE7b3BhY2l0''@;'; put 'put ''eTp2YXIoLS1jbHItYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2UgY2xyLWljb257ZmlsbDojNjY2O2ZpbGw6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctY2xv''@;'; put 'put ''c2UtaWNvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmZvY3VzLC5hbGVydC5hbGVydC13YXJuaW5nIC5jbG9zZTpob3ZlciwuYWxlcnQuYWxlcnQtd2FybmluZyAuY2xvc2U6YWN0aXZle2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LXdh''@;'; put 'put ''cm5pbmctY2xvc2UtaWNvbi1ob3Zlci1jb2xvciwgIzRmMDA3MCk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQuYWxlcnQtZGFuZ2Vye2JhY2tncm91bmQ6I2ZlZGRkNztiYWNrZ3JvdW5kOnZhcigt''@;'; put 'put ''LWNsci1hbGVydC1kYW5nZXItYmctY29sb3IsICNmZWRkZDcpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yLCAjNjY2NjY2KTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojOTkxNzAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxl''@;'; put 'put ''cnQtZGFuZ2VyLWJvcmRlci1jb2xvciwgIzk5MTcwMCl9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtaWNvbntjb2xvcjojOTkxNzAwO2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItaWNvbi1jb2xvciwgIzk5MTcwMCl9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9ucyAu''@;'; put 'put ''ZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCAjNjY2NjY2KTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsICM2NjY2NjYp''@;'; put 'put ''fS5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbiwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0''@;'; put 'put ''aW9uLmJ0biwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojNjY2O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgIzY2NjY2Nil9LmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0bjpm''@;'; put 'put ''b2N1cywuYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuZHJv''@;'; put 'put ''cGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6IzRmMDA3MDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKX0uYWxlcnQu''@;'; put 'put ''YWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICM0ZjAwNzAgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFsZXJ0LWRhbmdl''@;'; put 'put ''ci1hY3Rpb24tYWN0aXZlLWNvbG9yLCAjNGYwMDcwKSBpbnNldH0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbjphY3RpdmUsLmFsZXJ0''@;'; put 'put ''LmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQuYWxlcnQtZGFuZ2VyIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItYWN0aW9uLWFjdGl2''@;'; put 'put ''ZS1jb2xvciwgIzRmMDA3MCk7Y29sb3I6IzRmMDA3MH0uYWxlcnQuYWxlcnQtZGFuZ2VyIC5jbG9zZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nik7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFsZXJ0LWRhbmdl''@;'; put 'put ''ci1jbG9zZS1pY29uLW9wYWNpdHksIDEpfS5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlIGNkcy1pY29uLC5hbGVydC5hbGVydC1kYW5nZXIgLmNsb3NlIGNsci1pY29ue2ZpbGw6IzY2NjtmaWxsOnZhcigtLWNsci1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvciwgIzY2NjY2Nil9LmFs''@;'; put 'put ''ZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2U6Zm9jdXMsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2U6aG92ZXIsLmFsZXJ0LmFsZXJ0LWRhbmdlciAuY2xvc2U6YWN0aXZle2NvbG9yOiM0ZjAwNzA7Y29sb3I6dmFyKC0tY2xyLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCAj''@;'; put 'put ''NGYwMDcwKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0IC5hbGVydC1pdGVtIC5jbHItaWNvbntoZWlnaHQ6LjlyZW07d2lkdGg6LjlyZW07bWFyZ2luLXJpZ2h0Oi4zcmVtfS5hbGVydCAuYWxlcnQt''@;'; put 'put ''aXRlbSAuY2xyLWljb24rLmFsZXJ0LXRleHR7cGFkZGluZy1sZWZ0OjB9LmFsZXJ0IC5hbGVydC1pdGVtIC5jbHItaWNvbisuYWxlcnQtdGV4dDpiZWZvcmV7Y29udGVudDpub25lfS5hbGVydCAuYWxlcnQtYWN0aW9uc3tmbGV4OjAgMCBhdXRvO3doaXRlLXNwYWNlOm5vd3JhcH0uYWxlcnQg''@;'; put 'put ''LmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0Oi0uMXJlbX0uYWxlcnQgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duLWl0ZW17Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tdGV4dC1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVt''@;'; put 'put ''O2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWx9LmFsZXJ0IC5hbGVydC1hY3Rpb246bm90KDpsYXN0LWNoaWxkKXttYXJnaW4tcmlnaHQ6LjZyZW19LmFsZXJ0IC5hbGVydC1hY3Rpb24sLmFsZXJ0IC5kcm9wZG93bi10b2dnbGV7dGV4dC1kZWNvcmF0aW9uOnVuZGVy''@;'; put 'put ''bGluZX0uYWxlcnQgLmFsZXJ0LWFjdGlvbiBidXR0b24uZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKXtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KX0uYWxlcnQgLmRyb3Bkb3duLXRv''@;'; put 'put ''Z2dsZTpub3QoLmJ0bil7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjB9LmFsZXJ0IC5jbG9zZXt3aWR0aDoxLjJyZW07ZGlzcGxheTpibG9jaztoZWlnaHQ6MS44cmVtO2ZsZXg6MCAwIDEuNHJlbTtvcmRlcjoxMDA7cGFkZGluZy1yaWdodDouMnJlbX0uYWxl''@;'; put 'put ''cnQgLmNsb3NlIGNkcy1pY29uLC5hbGVydCAuY2xvc2UgY2xyLWljb257bWFyZ2luLXRvcDotLjE1cmVtO2hlaWdodDoxLjE1cmVtO3dpZHRoOjEuMTVyZW19LmFsZXJ0IC5jbG9zZX4uYWxlcnQtaXRlbT4uYWxlcnQtYWN0aW9uc3twYWRkaW5nLXJpZ2h0Oi42cmVtfS5hbGVydCAuY2xvc2V+''@;'; put 'put ''LmFsZXJ0LWl0ZW0+LmFsZXJ0LWFjdGlvbnM+LmFsZXJ0LWFjdGlvbjpsYXN0LWNoaWxke21hcmdpbi1yaWdodDouNnJlbX0uYWxlcnQtYXBwLWxldmVse21hcmdpbjowO2JvcmRlci1yYWRpdXM6MDtvdmVyZmxvdy15OmF1dG87YmFja2dyb3VuZDojMDA3MmEzO2JhY2tncm91bmQ6dmFyKC0t''@;'; put 'put ''Y2xyLWFwcC1hbGVydC1pbmZvLWJnLWNvbG9yLCAjMDA3MmEzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1mb250LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOjB9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1h''@;'; put 'put ''cHAtYWxlcnQtaW5mby1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9ucyAuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tY29sb3IsIHdoaXRlKTtib3JkZXItY29s''@;'; put 'put ''b3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFs''@;'; put 'put ''ZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRue2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9u''@;'; put 'put ''LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlvbi5idG46YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3du''@;'; put 'put ''LXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFj''@;'; put 'put ''dGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICNmZmYgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAw''@;'; put 'put ''IDAgdmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKSBpbnNldH0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb246Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWFjdGlv''@;'; put 'put ''bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbCAuZHJvcGRvd24tdG9nZ2xlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsIC5kcm9wZG93bi10b2dnbGU6YWN0aXZle2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rp''@;'; put 'put ''b24tYWN0aXZlLWNvbG9yLCB3aGl0ZSk7Y29sb3I6I2ZmZn0uYWxlcnQtYXBwLWxldmVsIC5jbG9zZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eTouODtvcGFjaXR5OnZhcigtLWNsci1hcHAtYWxlcnQt''@;'; put 'put ''aW5mby1jbG9zZS1pY29uLW9wYWNpdHksIC44KX0uYWxlcnQtYXBwLWxldmVsIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5jbG9zZSBjbHItaWNvbntmaWxsOiNmZmY7ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpfS5hbGVy''@;'; put 'put ''dC1hcHAtbGV2ZWwgLmNsb3NlOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwgLmNsb3NlOmFjdGl2ZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCB3aGl0ZSk7b3BhY2l0''@;'; put 'put ''eToxO29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZve2JhY2tncm91bmQ6IzAwNzJhMztiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1iZy1jb2xvciwgIzAwNzJh''@;'; put 'put ''Myk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tZm9udC1jb2xvciwgd2hpdGUpO2JvcmRlcjowfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1pY29uLWNvbG9y''@;'; put 'put ''LCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRl''@;'; put 'put ''ci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1j''@;'; put 'put ''bHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6''@;'; put 'put ''dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmFsZXJ0LWFjdGlvbi5idG46aG92ZXIsLmFsZXJ0LWFwcC1sZXZl''@;'; put 'put ''bC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5kcm9wZG93bi10b2dnbGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwu''@;'; put 'put ''YWxlcnQtaW5mbyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5hbGVydC1hY3Rpb24u''@;'; put 'put ''YnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tYWN0aW9uLWFjdGl2ZS1jb2xv''@;'; put 'put ''ciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxl''@;'; put 'put ''cnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xy''@;'; put 'put ''LWFwcC1hbGVydC1pbmZvLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2V7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpO29wYWNpdHk6''@;'; put 'put ''Ljg7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlIGNsci1pY29ue2ZpbGw6I2ZmZjtmaWxsOnZh''@;'; put 'put ''cigtLWNsci1hcHAtYWxlcnQtaW5mby1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1pbmZvIC5jbG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWluZm8gLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtaW5mbyAuY2xvc2U6''@;'; put 'put ''YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLWNsb3NlLWljb24taG92ZXItY29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWluZm8tY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQtYXBwLWxl''@;'; put 'put ''dmVsLmFsZXJ0LWRhbmdlcntiYWNrZ3JvdW5kOiNjMjFkMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1iZy1jb2xvciwgI2MyMWQwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1mb250LWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOjB9''@;'; put 'put ''LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbnMgLmRyb3Bkb3duIC5kcm9w''@;'; put 'put ''ZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFw''@;'; put 'put ''cC1sZXZlbC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5h''@;'; put 'put ''bGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbi5idG4sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVy''@;'; put 'put ''dC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQt''@;'; put 'put ''YXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7''@;'; put 'put ''Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1k''@;'; put 'put ''YW5nZXIgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSkgaW5zZXR9LmFsZXJ0LWFwcC1sZXZl''@;'; put 'put ''bC5hbGVydC1kYW5nZXIgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuYWxlcnQtYWN0aW9uOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5hbGVydC1hY3Rpb246YWN0aXZlLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2Vy''@;'; put 'put ''IC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuZHJvcGRvd24tdG9nZ2xlOmFjdGl2ZXtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1h''@;'; put 'put ''Y3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSk7Y29sb3I6I2ZmZn0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2V7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eTouODtvcGFjaXR5OnZh''@;'; put 'put ''cigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24tb3BhY2l0eSwgLjgpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2UgY2xyLWljb257ZmlsbDojZmZmO2ZpbGw6dmFyKC0tY2xy''@;'; put 'put ''LWFwcC1hbGVydC1kYW5nZXItY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtZGFuZ2VyIC5jbG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlciAuY2xvc2U6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1kYW5nZXIgLmNsb3Nl''@;'; put 'put ''OmFjdGl2ZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtZGFuZ2VyLWNsb3NlLWljb24taG92ZXItY29sb3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1jbG9zZS1pY29uLWhvdmVyLW9wYWNpdHksIDEpfS5hbGVydC1h''@;'; put 'put ''cHAtbGV2ZWwuYWxlcnQtd2FybmluZ3tiYWNrZ3JvdW5kOiNjMjU0MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYmctY29sb3IsICNjMjU0MDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWZvbnQtY29sb3IsIHdoaXRlKTti''@;'; put 'put ''b3JkZXI6MH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWljb257Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctaWNvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9ucyAuZHJv''@;'; put 'put ''cGRvd24gLmRyb3Bkb3duLXRvZ2dsZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvciwgd2hp''@;'; put 'put ''dGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5h''@;'; put 'put ''bGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLmJ0biwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRyb3Bkb3duLXRvZ2dsZS5idG57Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24t''@;'; put 'put ''Y29sb3IsIHdoaXRlKX0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbi5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5hbGVydC1hY3Rpb24uYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0''@;'; put 'put ''aW9uLmJ0bjphY3RpdmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmRy''@;'; put 'put ''b3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuYWxlcnQtYWN0aW9uLmJ0bjphY3Rp''@;'; put 'put ''dmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGUuYnRuOmFjdGl2ZXtib3gtc2hhZG93OjAgLjA1cmVtICNmZmYgaW5zZXQ7Ym94LXNoYWRvdzowIC4wNXJlbSAwIDAgdmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWFjdGlvbi1hY3RpdmUtY29sb3Is''@;'; put 'put ''IHdoaXRlKSBpbnNldH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmFsZXJ0LWFjdGlvbjphY3Rp''@;'; put 'put ''dmUsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5kcm9wZG93bi10b2dnbGU6YWN0aXZl''@;'; put 'put ''e2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSk7Y29sb3I6I2ZmZn0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3Nle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWlj''@;'; put 'put ''b24tY29sb3IsIHdoaXRlKTtvcGFjaXR5Oi44O29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLWNsb3NlLWljb24tb3BhY2l0eSwgLjgpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2UgY2RzLWljb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5n''@;'; put 'put ''IC5jbG9zZSBjbHItaWNvbntmaWxsOiNmZmY7ZmlsbDp2YXIoLS1jbHItYXBwLWFsZXJ0LXdhcm5pbmctY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtd2FybmluZyAuY2xvc2U6Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC13YXJuaW5nIC5jbG9z''@;'; put 'put ''ZTpob3ZlciwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXdhcm5pbmcgLmNsb3NlOmFjdGl2ZXtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1jbG9zZS1pY29uLWhvdmVyLWNvbG9yLCB3aGl0ZSk7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWFwcC1hbGVy''@;'; put 'put ''dC13YXJuaW5nLWNsb3NlLWljb24taG92ZXItb3BhY2l0eSwgMSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNze2JhY2tncm91bmQ6IzNjODUwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1iZy1jb2xvciwgIzNjODUwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtZm9udC1jb2xvciwgd2hpdGUpO2JvcmRlcjowfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1pY29uLWNvbG9yLCB3aGl0ZSl9LmFs''@;'; put 'put ''ZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb25zIC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgd2hpdGUpO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xv''@;'; put 'put ''cjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24sLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dnbGV7Y29sb3I6I2ZmZjtjb2xvcjp2YXIo''@;'; put 'put ''LS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bntib3JkZXItY29sb3I6I2ZmZjti''@;'; put 'put ''b3JkZXItY29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1jb2xvciwgd2hpdGUpfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uLmJ0bjpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0LWFjdGlvbi5idG46''@;'; put 'put ''aG92ZXIsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46Zm9jdXMsLmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5kcm9wZG93bi10b2dn''@;'; put 'put ''bGUuYnRuOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuZHJvcGRvd24tdG9nZ2xlLmJ0bjphY3RpdmV7Ym9yZGVyLWNvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1hY3Rpb24tYWN0aXZlLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0''@;'; put 'put ''LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5hbGVydC1hY3Rpb24uYnRuOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZS5idG46YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gI2ZmZiBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2''@;'; put 'put ''YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtYWN0aW9uLWFjdGl2ZS1jb2xvciwgd2hpdGUpIGluc2V0fS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmZvY3VzLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmhvdmVyLC5h''@;'; put 'put ''bGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuYWxlcnQtYWN0aW9uOmFjdGl2ZSwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTpob3ZlciwuYWxlcnQt''@;'; put 'put ''YXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmRyb3Bkb3duLXRvZ2dsZTphY3RpdmV7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWFjdGlvbi1hY3RpdmUtY29sb3IsIHdoaXRlKTtjb2xvcjojZmZmfS5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2V7Y29sb3I6''@;'; put 'put ''I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1jb2xvciwgd2hpdGUpO29wYWNpdHk6Ljg7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1vcGFjaXR5LCAuOCl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNz''@;'; put 'put ''IC5jbG9zZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlIGNsci1pY29ue2ZpbGw6I2ZmZjtmaWxsOnZhcigtLWNsci1hcHAtYWxlcnQtc3VjY2Vzcy1jbG9zZS1pY29uLWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWFwcC1sZXZlbC5hbGVydC1zdWNjZXNzIC5j''@;'; put 'put ''bG9zZTpmb2N1cywuYWxlcnQtYXBwLWxldmVsLmFsZXJ0LXN1Y2Nlc3MgLmNsb3NlOmhvdmVyLC5hbGVydC1hcHAtbGV2ZWwuYWxlcnQtc3VjY2VzcyAuY2xvc2U6YWN0aXZle2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLWNsb3NlLWljb24taG92ZXItY29s''@;'; put 'put ''b3IsIHdoaXRlKTtvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItYXBwLWFsZXJ0LXN1Y2Nlc3MtY2xvc2UtaWNvbi1ob3Zlci1vcGFjaXR5LCAxKX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtc3twYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouM3JlbX0uYWxlcnQtYXBw''@;'; put 'put ''LWxldmVsIC5hbGVydC1pdGVte2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6MS4ycmVtfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWl0ZW0gLmJ0bnttYXJnaW46MH0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1pdGVtPnNwYW4sLmFsZXJ0LWFw''@;'; put 'put ''cC1sZXZlbCAuYWxlcnQtdGV4dHtmbGV4OjAgMSAxMDAlfS5hbGVydC1hcHAtbGV2ZWwgLmFsZXJ0LWljb24td3JhcHBlcnttYXJnaW4tdG9wOi4xNXJlbX0uYWxlcnQtYXBwLWxldmVsIC5jbG9zZXtoZWlnaHQ6MS44cmVtO292ZXJmbG93OmhpZGRlbn0uYWxlcnQtYXBwLWxldmVsIC5jbG9z''@;'; put 'put ''ZSBjZHMtaWNvbiwuYWxlcnQtYXBwLWxldmVsIC5jbG9zZSBjbHItaWNvbnttYXJnaW4tdG9wOi0uMjVyZW19LmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtYWN0aW9uLC5hbGVydC1hcHAtbGV2ZWwgLmRyb3Bkb3duLXRvZ2dsZXt0ZXh0LWRlY29yYXRpb246bm9uZX0uYWxlcnQtc217Zm9udC1z''@;'; put 'put ''aXplOi41NXJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7bGluZS1oZWlnaHQ6LjhyZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVtc3twYWRkaW5nOi4xNXJlbSAuMjVyZW19LmFsZXJ0LXNtIC5hbGVydC1pdGVte3BhZGRpbmctdG9wOi4wNXJlbTttYXJnaW4tYm90dG9tOi4ycmVtfS5hbGVydC1z''@;'; put 'put ''bSAuYWxlcnQtaXRlbTpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0uYWxlcnQtc20gLmFsZXJ0LWljb24td3JhcHBlcntwYWRkaW5nLXRvcDowO2hlaWdodDouOHJlbX0uYWxlcnQtc20gLmFsZXJ0LWljb257bWFyZ2luLWxlZnQ6LS4ycmVtO21hcmdpbi10b3A6LS4ycmVtfS5hbGVydC1z''@;'; put 'put ''bSAuYWxlcnQtaXRlbT5zcGFuLC5hbGVydC1zbSAuYWxlcnQtdGV4dHttYXJnaW4tcmlnaHQ6LjNyZW19LmFsZXJ0LXNtIC5jbG9zZXtwYWRkaW5nLXJpZ2h0OjA7ZmxleDowIDAgMS4ycmVtO2hlaWdodDoxLjJyZW07bGluZS1oZWlnaHQ6MS4ycmVtfS5hbGVydC1zbSAuY2xvc2UgY2RzLWlj''@;'; put 'put ''b24sLmFsZXJ0LXNtIC5jbG9zZSBjbHItaWNvbnttYXJnaW4tdG9wOi0uMjVyZW07bWFyZ2luLXJpZ2h0Oi0uMDVyZW07aGVpZ2h0OjFyZW07d2lkdGg6MXJlbTtsaW5lLWhlaWdodDoxLjA1cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpey5hbGVydCAuYWxlcnQtaXRl''@;'; put 'put ''bXtmbGV4LXdyYXA6d3JhcH0uYWxlcnQgLmFsZXJ0LXRleHR7bWFyZ2luLXJpZ2h0OjA7bWF4LXdpZHRoOjkwJTt3aWR0aDo5MCU7ZmxleC1iYXNpczo5MCV9LmFsZXJ0IC5hbGVydC1hY3Rpb25ze2ZsZXg6MSAwIDEwMCU7cGFkZGluZy10b3A6LjE1cmVtO3BhZGRpbmctbGVmdDoxLjJyZW19''@;'; put 'put ''LmFsZXJ0cy1wYWdlcnttYXJnaW4tdG9wOi4xNXJlbX0uYWxlcnQtYXBwLWxldmVsIC5hbGVydC1hY3Rpb25ze21hcmdpbi1sZWZ0OjIuMjVyZW19fS5hbGVydC1oaWRkZW57ZGlzcGxheTpub25lfS5jYXJkIC5hbGVydHttYXJnaW46LjNyZW0gMH0ubW9kYWwgLmFsZXJ0Ky5tb2RhbC1oZWFk''@;'; put 'put ''ZXIsLm1vZGFsIC5hbGVydCsubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxle21hcmdpbi10b3A6LjZyZW19LmFsZXJ0cy5hbGVydC1pbmZve2JhY2tncm91bmQ6IzAwNTY3YTtiYWNrZ3JvdW5kOnZhcigtLWNsci1hcHAtYWxlcnQtaW5mby1wYWdlci1iZy1jb2xvciwgIzAwNTY3YSl9LmFsZXJ0''@;'; put 'put ''cy5hbGVydC1kYW5nZXJ7YmFja2dyb3VuZDojOTkxNzAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItcGFnZXItYmctY29sb3IsICM5OTE3MDApfS5hbGVydHMuYWxlcnQtd2FybmluZ3tiYWNrZ3JvdW5kOiM4ZjVhMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYXBwLWFs''@;'; put 'put ''ZXJ0LXdhcm5pbmctcGFnZXItYmctY29sb3IsICM4ZjVhMDApfS5hbGVydHMuYWxlcnQtc3VjY2Vzc3tiYWNrZ3JvdW5kOiMyNTUyMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy05MDAsICMyNTUyMDApfS5hbGVydHMtcGFnZXJ7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1j''@;'; put 'put ''bHItYXBwLWFsZXJ0LXBhZ2VyLXRleHQtY29sb3IsIHdoaXRlKTtmb250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtmbG9hdDpsZWZ0O21pbi1oZWlnaHQ6MS44cmVtO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjcuMnJlbX0uYWxlcnQtaW5mbyAuYWxlcnRzLXBhZ2Vye2Nv''@;'; put 'put ''bG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtd2FybmluZyAuYWxlcnRzLXBhZ2Vye2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC13YXJuaW5nLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0u''@;'; put 'put ''YWxlcnQtZGFuZ2VyIC5hbGVydHMtcGFnZXJ7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LWRhbmdlci1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LXN1Y2Nlc3MgLmFsZXJ0cy1wYWdlcntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtc3Vj''@;'; put 'put ''Y2Vzcy1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0cy1wYWdlci1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2Jv''@;'; put 'put ''cmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYXBwLWFsZXJ0LXBhZ2VyLXRleHQtY29sb3IsIHdoaXRlKTtjdXJzb3I6cG9pbnRlcn1idXR0b24uYWxlcnRzLXBhZ2VyLWJ1dHRvbntjdXJzb3I6cG9pbnRlcn0u''@;'; put 'put ''YWxlcnRzLXBhZ2VyLWJ1dHRvbiBjZHMtaWNvbiwuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtcGFnZXItdGV4dC1jb2xvciwgd2hpdGUpfS5hbGVydC1pbmZvIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5h''@;'; put 'put ''bGVydC1pbmZvIC5hbGVydHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1pbmZvLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnQtd2FybmluZyAuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjZHMtaWNvbiwuYWxlcnQtd2Fybmlu''@;'; put 'put ''ZyAuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjbHItaWNvbntjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1hcHAtYWxlcnQtd2FybmluZy1wYWdlci1mb250LWNvbG9yLCB3aGl0ZSl9LmFsZXJ0LWRhbmdlciAuYWxlcnRzLXBhZ2VyLWJ1dHRvbiBjZHMtaWNvbiwuYWxlcnQtZGFuZ2VyIC5hbGVy''@;'; put 'put ''dHMtcGFnZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1kYW5nZXItcGFnZXItZm9udC1jb2xvciwgd2hpdGUpfS5hbGVydC1zdWNjZXNzIC5hbGVydHMtcGFnZXItYnV0dG9uIGNkcy1pY29uLC5hbGVydC1zdWNjZXNzIC5hbGVydHMtcGFn''@;'; put 'put ''ZXItYnV0dG9uIGNsci1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWFwcC1hbGVydC1zdWNjZXNzLXBhZ2VyLWZvbnQtY29sb3IsIHdoaXRlKX0uYWxlcnRzLXBhZ2VyLWNvbnRyb2x7ZGlzcGxheTpmbGV4O21hcmdpbi10b3A6LjNyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5hbGVy''@;'; put 'put ''dHMtcGFnZS1kb3due21hcmdpbi1sZWZ0OjEuMnJlbTt3aWR0aDozMy4zMyV9LmFsZXJ0cy1wYWdlLXVwe21hcmdpbi1yaWdodDoxLjJyZW07d2lkdGg6MzMuMzMlfS5hbGVydHMtcGFnZXItdGV4dHt3aWR0aDozMy4zMyV9OnJvb3R7LS1jbHItY2FyZC1iZy1jb2xvcjp2YXIoLS1jbHItY29s''@;'; put 'put ''b3ItbmV1dHJhbC0wKTstLWNsci1jYXJkLWRpdmlkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMzAwKTstLWNsci1jYXJkLXRpdGxlLWNvbG9yOnZhcigtLWNsci1oNC1jb2xvcik7LS1jbHItY2FyZC10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItaDQtZm9udC13ZWlnaHQp''@;'; put 'put ''Oy0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpOy0tY2xyLWNhcmQtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItY2FyZC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMzAwKTst''@;'; put 'put ''LWNsci1jYXJkLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLWNvbG9yKTstLWNsci1jYXJkLWNsaWNrYWJsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWNhcmQtY2xpY2thYmxlLWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xy''@;'; put 'put ''LWNhcmQtY2xpY2thYmxlLWJvcmRlci1jb2xvcil9LmNhcmR7Ym94LXNoYWRvdzowIC4xNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMTVyZW0gMCAwIHZhcigtLWNsci1jYXJkLWJveC1zaGFkb3ctY29sb3IpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xy''@;'; put 'put ''LWNhcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItY2FyZC1ib3JkZXItd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZGVkZWRlO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItY2Fy''@;'; put 'put ''ZC1ib3JkZXItY29sb3IsICNkZWRlZGUpfS5jYXJkLmNsaWNrYWJsZTpob3Zlcntib3gtc2hhZG93OjAgLjE1cmVtICMxNzliZDM7Ym94LXNoYWRvdzowIC4xNXJlbSAwIDAgdmFyKC0tY2xyLWNhcmQtY2xpY2thYmxlLWJveC1zaGFkb3ctY29sb3IpO2JvcmRlci13aWR0aDouMDVyZW07Ym9y''@;'; put 'put ''ZGVyLXdpZHRoOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiMxNzliZDM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jYXJkLWNsaWNrYWJsZS1ib3JkZXItY29sb3IsICMxNzliZDMpO2N1cnNvcjpwb2ludGVyO3Rl''@;'; put 'put ''eHQtZGVjb3JhdGlvbjpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0uMXJlbSk7dHJhbnNpdGlvbjpib3JkZXIgLjJzIGVhc2UsdHJhbnNmb3JtIC4ycyBlYXNlfS5jYXJkLWJsb2NrIC5jYXJkLWRpdmlkZXIsLmNhcmQgLmNhcmQtdGl0bGUsLmNhcmQgLmNhcmQtdGV4dCwuY2FyZCAuY2Fy''@;'; put 'put ''ZC1tZWRpYS1ibG9jaywuY2FyZCAubGlzdCwuY2FyZCAubGlzdC11bnN0eWxlZHttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTouNnJlbX0uY2FyZC1ibG9jayAuY2FyZC1kaXZpZGVyOmxhc3QtY2hpbGQsLmNhcmQgLmNhcmQtdGl0bGU6bGFzdC1jaGlsZCwuY2FyZCAuY2FyZC10ZXh0Omxh''@;'; put 'put ''c3QtY2hpbGQsLmNhcmQgLmNhcmQtbWVkaWEtYmxvY2s6bGFzdC1jaGlsZCwuY2FyZCAubGlzdDpsYXN0LWNoaWxkLC5jYXJkIC5saXN0LXVuc3R5bGVkOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jYXJkLmNhcmQtaW1nPmltZywuY2FyZD4uY2FyZC1pbWc6Zmlyc3QtY2hpbGQ6bGFz''@;'; put 'put ''dC1jaGlsZD5pbWcsLmNhcmQtaW1nPmltZ3tkaXNwbGF5OmJsb2NrO2hlaWdodDphdXRvO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCV9LmNhcmR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt''@;'; put 'put ''Y2FyZC1iZy1jb2xvciwgd2hpdGUpO3dpZHRoOjEwMCU7bWFyZ2luLXRvcDoxLjJyZW19LmNhcmQgLmJ0bi1saW5re21pbi13aWR0aDowO3BhZGRpbmc6MH0uY2FyZC5jbGlja2FibGV7Y29sb3I6aW5oZXJpdH0uY2FyZD4ubGlzdCwuY2FyZD4ubGlzdC11bnN0eWxlZHtwYWRkaW5nOi42cmVt''@;'; put 'put ''IC45cmVtfS5jYXJkIC5saXN0LWdyb3Vwe3BhZGRpbmctbGVmdDowO21hcmdpbi1ib3R0b206MDtsaXN0LXN0eWxlOm5vbmV9LmNhcmQgLmxpc3QtZ3JvdXAtaXRlbXtwYWRkaW5nOi42cmVtIC45cmVtO2ZvbnQtc2l6ZTouN3JlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItY2FyZC1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xv''@;'; put 'put ''cjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWNhcmQtYm9yZGVyLWNvbG9yLCAjZGVkZWRlKX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNhcmQgLmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2lu''@;'; put 'put ''LXRvcDotLjZyZW19fS5jYXJkLWhlYWRlciwuY2FyZC1ibG9jaywuY2FyZC1mb290ZXJ7cGFkZGluZzouNnJlbSAuOXJlbX0uY2FyZC1oZWFkZXIsLmNhcmQtdGl0bGV7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItY2FyZC10aXRsZS1jb2xvciwgYmxhY2spO2ZvbnQtd2VpZ2h0OjIwMDtm''@;'; put 'put ''b250LXdlaWdodDp2YXIoLS1jbHItY2FyZC10aXRsZS1mb250LXdlaWdodCwgMjAwKTtmb250LXNpemU6LjlyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsfWgxLmNhcmQtaGVhZGVyLGgxLmNhcmQtdGl0bGUsaDIuY2FyZC1oZWFkZXIsaDIuY2FyZC10aXRsZSxoMy5jYXJkLWhlYWRlcixoMy5j''@;'; put 'put ''YXJkLXRpdGxlLGg0LmNhcmQtaGVhZGVyLGg0LmNhcmQtdGl0bGUsaDUuY2FyZC1oZWFkZXIsaDUuY2FyZC10aXRsZSxoNi5jYXJkLWhlYWRlcixoNi5jYXJkLXRpdGxle21hcmdpbi10b3A6MH0uY2FyZC10ZXh0e2ZvbnQtc2l6ZTouN3JlbX0uY2FyZC1pbWc6Zmlyc3QtY2hpbGQ+aW1ne2Jv''@;'; put 'put ''cmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigt''@;'; put 'put ''LWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNhcmQtaW1nOmxhc3QtY2hpbGQ+aW1ne2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4x''@;'; put 'put ''NXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNhcmQuY2FyZC1pbWc+aW1nLC5jYXJkPi5jYXJkLWltZzpmaXJzdC1jaGlsZDpsYXN0LWNoaWxkPmlt''@;'; put 'put ''Z3tib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1jYXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNhcmQtYmxvY2sgLmJ0biwuY2FyZC1ibG9jayAuYnRuLmJ0bi1saW5rLC5jYXJkLWJsb2NrIC5jYXJkLWxpbmssLmNhcmQtZm9vdGVyIC5idG4sLmNhcmQt''@;'; put 'put ''Zm9vdGVyIC5idG4uYnRuLWxpbmssLmNhcmQtZm9vdGVyIC5jYXJkLWxpbmt7bWFyZ2luOjAgLjZyZW0gMCAwfS5jYXJkLWJsb2NrIC5idG4tZ3JvdXAgLmJ0biwuY2FyZC1mb290ZXIgLmJ0bi1ncm91cCAuYnRue21hcmdpbjowfS5jYXJkLWhlYWRlciwuY2FyZC1ibG9ja3tib3JkZXItYm90''@;'; put 'put ''dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1jYXJkLWJvcmRlci13aWR0aCwgLjA1cmVtKTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6I2RlZGVkZTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jYXJkLWJv''@;'; put 'put ''cmRlci1jb2xvciwgI2RlZGVkZSl9LmNhcmQtaGVhZGVyOmxhc3QtY2hpbGQsLmNhcmQtYmxvY2s6bGFzdC1jaGlsZHtib3JkZXItYm90dG9tOm5vbmV9LmNhcmQtZGl2aWRlcntkaXNwbGF5OmJsb2NrO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFy''@;'; put 'put ''KC0tY2xyLWNhcmQtYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGVkZWRlO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWNhcmQtZGl2aWRlci1jb2xvciwgI2RlZGVkZSl9LmNhcmQtYmxvY2sgLmNhcmQt''@;'; put 'put ''ZGl2aWRlcnttYXJnaW4tbGVmdDotLjlyZW07bWFyZ2luLXJpZ2h0Oi0uOXJlbTt3aWR0aDphdXRvfS5jYXJkLWhlYWRlcisuY2FyZC1kaXZpZGVyLC5jYXJkLWJsb2NrKy5jYXJkLWRpdmlkZXJ7ZGlzcGxheTpub25lfS5jYXJkLW1lZGlhLWJsb2Nre2Rpc3BsYXk6ZmxleH0uY2FyZC1tZWRp''@;'; put 'put ''YS1ibG9jayAuY2FyZC1tZWRpYS1pbWFnZXtkaXNwbGF5OmlubGluZS1ibG9jaztmbGV4OjAgMCBhdXRvO2hlaWdodDozcmVtO3dpZHRoOjNyZW07bWF4LWhlaWdodDozcmVtO21heC13aWR0aDozcmVtfS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLWRlc2NyaXB0aW9ue2Rpc3BsYXk6''@;'; put 'put ''ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjAgMCAwIC42cmVtfS5jYXJkLW1lZGlhLWJsb2NrIC5jYXJkLW1lZGlhLXRpdGxlLC5jYXJkLW1lZGlhLWJsb2NrIHNwYW4sLmNhcmQtbWVkaWEtYmxvY2sgLmNhcmQtbWVkaWEtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30uY2Fy''@;'; put 'put ''ZC1tZWRpYS1ibG9jay53cmFwe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2FyZC1tZWRpYS1ibG9jay53cmFwIC5jYXJkLW1lZGlhLWRlc2NyaXB0aW9ue21hcmdpbjouM3JlbSAwIDB9LmNhcmQtYmxvY2s+Lmxpc3QsLmNhcmQtYmxvY2s+Lmxpc3QtdW5zdHlsZWR7cGFkZGluZzowfUBtZWRp''@;'; put 'put ''YSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NTc2cHgpey5jYXJkLWNvbHVtbnN7Y29sdW1uLWNvdW50OjM7Y29sdW1uLWdhcDouNnJlbTtwYWdlLWJyZWFrLWluc2lkZTphdm9pZDticmVhay1pbnNpZGU6YXZvaWQ7Y29sdW1uLWZpbGw6YmFsYW5jZTstd2Via2l0LXBlcnNwZWN0aXZlOjF9LmNh''@;'; put 'put ''cmQtY29sdW1ucy5jYXJkLWNvbHVtbnMtMntjb2x1bW4tY291bnQ6Mn0uY2FyZC1jb2x1bW5zLmNhcmQtY29sdW1ucy00e2NvbHVtbi1jb3VudDo0fS5jYXJkLWNvbHVtbnMgLmNhcmR7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOi4zcmVtfS5jYXJkLWNvbHVtbnMgLmNsaWNrYWJsZXst''@;'; put 'put ''d2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVuO2JhY2tmYWNlLXZpc2liaWxpdHk6aGlkZGVufX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNhcmQgLmNoZWNrYm94LmJ0biBsYWJlbCwuY2FyZCAuY2hlY2tib3gtaW5saW5lLmJ0biBsYWJlbCwuY2FyZCAucmFkaW8u''@;'; put 'put ''YnRuIGxhYmVsLC5jYXJkIC5yYWRpby1pbmxpbmUuYnRuIGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrfX06cm9vdHstLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1kcm9wZG93bi1iZy1jb2xvcjp2YXIoLS1jbHIt''@;'; put 'put ''Y29sb3ItbmV1dHJhbC0wKTstLWNsci1kcm9wZG93bi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1kcm9wZG93bi1kaXZpZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItZHJvcGRvd24tZGl2aWRlci1ib3JkZXItd2lk''@;'; put 'put ''dGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCk7LS1jbHItZHJvcGRvd24tY2hpbGQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItZHJvcGRvd24tYmctaG92ZXItY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ob3Zlci1jb2xvcik7LS1jbHItZHJv''@;'; put 'put ''cGRvd24tc2VsZWN0aW9uLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci1kcm9wZG93bi1ib3gtc2hhZG93OnZhcigtLWNsci1wb3BvdmVyLWJveC1zaGFkb3ctY29sb3IpOy0tY2xyLWRyb3Bkb3duLXRleHQtY29sb3I6dmFyKC0tY2xyLXAxLWNvbG9yKTst''@;'; put 'put ''LWNsci1kcm9wZG93bi1oZWFkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNsci1kcm9wZG93bi1oZWFkZXItZm9udC13ZWlnaHQ6NjAwOy0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1kcm9wZG93bi1p''@;'; put 'put ''dGVtLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1wMS1mb250LXdlaWdodCl9LmRyb3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8sLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLC5kcm9wZG93bi1tZW51IC5idG4t''@;'; put 'put ''b3V0bGluZS1wcmltYXJ5LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzcywuZHJv''@;'; put 'put ''cGRvd24tbWVudSAuYnRuLWRhbmdlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzcywuZHJvcGRvd24tbWVudSAuYnRuLWxpbmssLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0sLmRy''@;'; put 'put ''b3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlcntvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt0ZXh0LWFsaWduOmxlZnR9LmRyb3Bkb3due3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xle2Rpc3Bs''@;'; put 'put ''YXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luOjA7d2hpdGUtc3BhY2U6bm93cmFwO2N1cnNvcjpwb2ludGVyfS5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIGNsci1pY29uW3NoYXBlXj1jYXJl''@;'; put 'put ''dF0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUgY2xyLWljb25bc2hhcGVePWFuZ2xlXXtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjppbmhlcml0O2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTttaW4taGVpZ2h0Oi41cmVtO21pbi13aWR0aDouNXJlbX0uZHJvcGRvd24gLmRyb3Bkb3duLXRv''@;'; put 'put ''Z2dsZSBjZHMtaWNvbltzaGFwZV49Y2FyZXRdLC5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlIGNkcy1pY29uW3NoYXBlXj1hbmdsZV17bWFyZ2luLXRvcDp1bnNldDtwb3NpdGlvbjphYnNvbHV0ZTtjb2xvcjppbmhlcml0O2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTstLWNkcy1nbG9iYWwt''@;'; put 'put ''c3BhY2UtNzouNXJlbX0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG57cGFkZGluZy1yaWdodDoxLjJyZW07dGV4dC1vdmVyZmxvdzp1bnNldH0uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5idG4gY2xyLWljb257dHJhbnNmb3JtOm5vbmV9LmRyb3Bkb3duIC5kcm9wZG93bi10b2dn''@;'; put 'put ''bGUuYnRuIGNkcy1pY29uW3NoYXBlXj1jYXJldF0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUuYnRuIGNsci1pY29uW3NoYXBlXj1jYXJldF0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUuYnRuIGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUu''@;'; put 'put ''YnRuIGNsci1pY29uW3NoYXBlXj1hbmdsZV17cmlnaHQ6LjZyZW19LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGU6bm90KC5idG4pe3BhZGRpbmc6MCAuNnJlbSAwIDA7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYWN0aXZlLXRleHQtY29sb3IsIGJsYWNrKX0uZHJvcGRv''@;'; put 'put ''d24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bikgY2RzLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bikgY2xyLWljb25bc2hhcGVePWNhcmV0XSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bikgY2RzLWljb25bc2hhcGVe''@;'; put 'put ''PWFuZ2xlXSwuZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZTpub3QoLmJ0bikgY2xyLWljb25bc2hhcGVePWFuZ2xlXXtyaWdodDowfS5kcm9wZG93biBidXR0b24uZHJvcGRvd24tdG9nZ2xlOm5vdCguYnRuKXtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtjb2xvcjoj''@;'; put 'put ''MDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5kcm9wZG93bi1tZW51Pip7ZGlzcGxheTpibG9jazt3aGl0ZS1zcGFjZTpub3dyYXB9LmRyb3Bkb3duLW1lbnV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjph''@;'; put 'put ''YnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7bWluLXdpZHRoOjZyZW07bWF4LXdpZHRoOjE4cmVtO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9i''@;'; put 'put ''YWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9i''@;'; put 'put ''YWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZHJvcGRvd24tYm94LXNoYWRvdywgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTttYXJnaW4tdG9wOi4xcmVtO3Bh''@;'; put 'put ''ZGRpbmc6LjZyZW0gMDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwNTB9LmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWhlYWRlcntjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1oZWFkZXItY29sb3IsICMzMzMzMzMpO2ZvbnQtc2l6ZTouNnJlbTtmb250LXdlaWdodDo2''@;'; put 'put ''MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWRyb3Bkb3duLWhlYWRlci1mb250LXdlaWdodCwgNjAwKTtsZXR0ZXItc3BhY2luZzpub3JtYWw7cGFkZGluZzowIC42cmVtO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowfS5kcm9wZG93bi1tZW51IC5idG4sLmRyb3Bkb3duLW1lbnUgLmJ0bi1z''@;'; put 'put ''ZWNvbmRhcnksLmRyb3Bkb3duLW1lbnUgLmJ0bi1pbmZvLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13''@;'; put 'put ''YXJuaW5nLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1kYW5nZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZywuZHJv''@;'; put 'put ''cGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVte2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo0''@;'; put 'put ''MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6aW5oZXJpdDtt''@;'; put 'put ''YXJnaW46MDt3aWR0aDoxMDAlO3RleHQtdHJhbnNmb3JtOm5vbmV9LmRyb3Bkb3duLW1lbnUgLmJ0bjpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeTpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lOmhvdmVy''@;'; put 'put ''LC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5OmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlcjpo''@;'; put 'put ''b3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2Vzczpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnk6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmhvdmVyLC5kcm9wZG93bi1tZW51IC5i''@;'; put 'put ''dG4tc3VjY2Vzczpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWxpbms6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWJnLWhvdmVyLWNvbG9yLCAjZThl''@;'; put 'put ''OGU4KTtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1pdGVtLWNvbG9yLCAjNjY2NjY2KTt0ZXh0LWRlY29yYXRpb246bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0''@;'; put 'put ''bi1pbmZvLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUt''@;'; put 'put ''d2FybmluZy5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlci5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3MuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuYWN0''@;'; put 'put ''aXZlLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZy5hY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuYWN0aXZlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFj''@;'; put 'put ''a2dyb3VuZDp2YXIoLS1jbHItZHJvcGRvd24tc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5kcm9wZG93bi1tZW51IC5idG46YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vj''@;'; put 'put ''b25kYXJ5OmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6YWN0''@;'; put 'put ''aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc3VjY2VzczphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXI6YWN0aXZl''@;'; put 'put ''LC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3M6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tbGluazphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0''@;'; put 'put ''ZW06YWN0aXZle2JveC1zaGFkb3c6bm9uZX0uZHJvcGRvd24tbWVudSAuYnRuOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmU6Zm9jdXMsLmRyb3Bkb3duLW1l''@;'; put 'put ''bnUgLmJ0bi1vdXRsaW5lLXByaW1hcnk6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZzpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmZvY3VzLC5kcm9wZG93''@;'; put 'put ''bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmZvY3VzLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeTpmb2N1cywuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmc6Zm9jdXMsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmZv''@;'; put 'put ''Y3VzLC5kcm9wZG93bi1tZW51IC5idG4tbGluazpmb2N1cywuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpmb2N1c3t6LWluZGV4OmluaGVyaXR9LmRyb3Bkb3duLW1lbnUgLmJ0bi5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4t''@;'; put 'put ''c2Vjb25kYXJ5LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmRpc2FibGVkLC5k''@;'; put 'put ''cm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRp''@;'; put 'put ''c2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1v''@;'; put 'put ''dXRsaW5lLWRhbmdlci5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzOmRpc2FibGVkLC5kcm9wZG93''@;'; put 'put ''bi1tZW51IC5idG4tZGFuZ2VyLmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5kaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnk6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5n''@;'; put 'put ''LmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZzpkaXNhYmxlZCwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzOmRpc2FibGVkLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5kaXNhYmxlZCwuZHJvcGRvd24t''@;'; put 'put ''bWVudSAuYnRuLWxpbms6ZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2Vs''@;'; put 'put ''ZWN0Om5vbmV9LmRyb3Bkb3duLW1lbnUgLmJ0bi5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmRpc2FibGVkOmhv''@;'; put 'put ''dmVyLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWluZm86ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZTpkaXNhYmxlZDpo''@;'; put 'put ''b3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeS5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtc2Vjb25kYXJ5LmRpc2FibGVkOmhvdmVyLC5kcm9w''@;'; put 'put ''ZG93bi1tZW51IC5idG4tb3V0bGluZS1zZWNvbmRhcnk6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmc6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUg''@;'; put 'put ''LmJ0bi1vdXRsaW5lLWRhbmdlci5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1z''@;'; put 'put ''dWNjZXNzOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAu''@;'; put 'put ''YnRuLXByaW1hcnk6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5nLmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZzpkaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3du''@;'; put 'put ''LW1lbnUgLmJ0bi1zdWNjZXNzOmRpc2FibGVkOmhvdmVyLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5kaXNhYmxlZDpob3ZlciwuZHJvcGRvd24tbWVudSAuYnRuLWxpbms6ZGlzYWJsZWQ6aG92ZXIsLmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWl0ZW0uZGlzYWJsZWQ6aG92ZXIsLmRyb3Bk''@;'; put 'put ''b3duLW1lbnUgLmRyb3Bkb3duLWl0ZW06ZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDowIDB9LmRyb3Bkb3duLW1lbnUgLmJ0bi5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bjpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zZWNvbmRhcnkuZGlzYWJsZWQ6''@;'; put 'put ''YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWluZm8uZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4taW5mbzpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLmRp''@;'; put 'put ''c2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmU6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtcHJpbWFyeTpkaXNhYmxlZDphY3RpdmUsLmRy''@;'; put 'put ''b3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeTpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXdhcm5pbmcuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93''@;'; put 'put ''bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtZGFuZ2VyOmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRu''@;'; put 'put ''LW91dGxpbmUtc3VjY2Vzcy5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXN1Y2Nlc3M6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLWRhbmdlcjpkaXNhYmxlZDph''@;'; put 'put ''Y3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1wcmltYXJ5LmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnk6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4td2FybmluZy5kaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi13YXJuaW5n''@;'; put 'put ''OmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRuLXN1Y2Nlc3MuZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5idG4tc3VjY2VzczpkaXNhYmxlZDphY3RpdmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1saW5rLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuYnRu''@;'; put 'put ''LWxpbms6ZGlzYWJsZWQ6YWN0aXZlLC5kcm9wZG93bi1tZW51IC5kcm9wZG93bi1pdGVtLmRpc2FibGVkOmFjdGl2ZSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbTpkaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZDowIDA7Ym94LXNoYWRvdzpub25lfS5kcm9wZG93bi1tZW51IC5idG4u''@;'; put 'put ''ZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLXNlY29uZGFyeS5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1wcmltYXJ5LmV4''@;'; put 'put ''cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS13YXJuaW5nLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLWRhbmdlci5leHBhbmRhYmxlLC5kcm9wZG93bi1tZW51''@;'; put 'put ''IC5idG4tb3V0bGluZS1zdWNjZXNzLmV4cGFuZGFibGUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1kYW5nZXIuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLXByaW1hcnkuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAu''@;'; put 'put ''YnRuLXN1Y2Nlc3MuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuYnRuLWxpbmsuZXhwYW5kYWJsZSwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbS5leHBhbmRhYmxle21hcmdpbi1yaWdodDoxLjJyZW07cGFkZGluZy1yaWdodDouNnJlbX0uZHJvcGRvd24tbWVudSAuYnRuLmV4cGFu''@;'; put 'put ''ZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tc2Vjb25kYXJ5LmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4taW5mby5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUg''@;'; put 'put ''LmJ0bi1vdXRsaW5lLXByaW1hcnkuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1vdXRsaW5lLXNlY29uZGFyeS5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLW91dGxpbmUtd2FybmluZy5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAu''@;'; put 'put ''YnRuLW91dGxpbmUtZGFuZ2VyLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tb3V0bGluZS1zdWNjZXNzLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tZGFuZ2VyLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tcHJpbWFyeS5l''@;'; put 'put ''eHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVudSAuYnRuLXdhcm5pbmcuZXhwYW5kYWJsZTpiZWZvcmUsLmRyb3Bkb3duLW1lbnUgLmJ0bi1zdWNjZXNzLmV4cGFuZGFibGU6YmVmb3JlLC5kcm9wZG93bi1tZW51IC5idG4tbGluay5leHBhbmRhYmxlOmJlZm9yZSwuZHJvcGRvd24tbWVu''@;'; put 'put ''dSAuZHJvcGRvd24taXRlbS5leHBhbmRhYmxlOmJlZm9yZXtjb250ZW50OiIiO2Zsb2F0OnJpZ2h0O2hlaWdodDouNnJlbTt3aWR0aDouNnJlbTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0Nz''@;'; put 'put ''dmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEyJTIwMTIlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDc3R5bGUlM0UuY2xzLTElN0Jm''@;'; put 'put ''aWxsJTNBJTIzOWE5YTlhJTNCJTdEJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VDYXJldCUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTElMjIlMjBkJTNEJTIyTTYl''@;'; put 'put ''MkM5TDEuMiUyQzQuMmEwLjY4JTJDMC42OCUyQzAlMkMwJTJDMSUyQzEtMUw2JTJDNy4wOCUyQzkuODQlMkMzLjI0YTAuNjglMkMwLjY4JTJDMCUyQzElMkMxJTJDMSUyQzFaJTIyJTJGJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3Vu''@;'; put 'put ''ZC1zaXplOmNvbnRhaW47dmVydGljYWwtYWxpZ246bWlkZGxlO21hcmdpbi10b3A6LjNyZW19LmRyb3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbXtwYWRkaW5nOi4xNXJlbSAxLjJyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmRy''@;'; put 'put ''b3Bkb3duLW1lbnUgLmJ0biwuZHJvcGRvd24tbWVudSAuZHJvcGRvd24taXRlbXtwYWRkaW5nOi4zcmVtIDEuMnJlbX19LmRyb3Bkb3duLW1lbnUgLmRyb3Bkb3duLWRpdmlkZXJ7Zm9udC1zaXplOi42cmVtO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6''@;'; put 'put ''dmFyKC0tY2xyLWRyb3Bkb3duLWRpdmlkZXItYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZThlOGU4O2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWRpdmlkZXItY29sb3IsICNlOGU4ZTgp''@;'; put 'put ''O21hcmdpbjouM3JlbSAwfS5idG4tZ3JvdXAtb3ZlcmZsb3cub3Blbj4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93Lm9wZW4+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5vcGVuPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJm''@;'; put 'put ''bG93Lm9wZW4+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ub3Blbj4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ub3Blbj4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51e3Zpc2liaWxpdHk6dmlzaWJsZX0uYnRuLWdyb3VwLW92ZXJm''@;'; put 'put ''bG93LmJvdHRvbS1sZWZ0Pi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LmJvdHRvbS1sZWZ0Pi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudSwu''@;'; put 'put ''ZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudXt0b3A6MTAwJTtib3R0b206YXV0bzttYXJnaW46LjFyZW0gMCAwfS5idG4tZ3JvdXAtb3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMt''@;'; put 'put ''b3ZlcmZsb3cuYm90dG9tLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmJvdHRvbS1sZWZ0Pi5kcm9wZG93bi1tZW51e2xlZnQ6MDtyaWdodDphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LmJvdHRvbS1yaWdo''@;'; put 'put ''dD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24uYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3JpZ2h0OjA7bGVmdDphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cudG9wLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRh''@;'; put 'put ''YnMtb3ZlcmZsb3cudG9wLWxlZnQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cudG9wLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24udG9wLXJpZ2h0Pi5kcm9wZG93bi1tZW51e3RvcDphdXRvO2JvdHRvbToxMDAl''@;'; put 'put ''O21hcmdpbjowIDAgLjFyZW19LmJ0bi1ncm91cC1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy50b3AtbGVmdD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24udG9wLWxlZnQ+LmRyb3Bkb3duLW1lbnV7bGVmdDowO3JpZ2h0OmF1dG99LmJ0bi1ncm91cC1v''@;'; put 'put ''dmVyZmxvdy50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cudG9wLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi50b3AtcmlnaHQ+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MDtsZWZ0OmF1dG99LmJ0bi1ncm91cC1vdmVyZmxvdy5sZWZ0LXRvcD4uZHJvcGRvd24t''@;'; put 'put ''bWVudSwuYnRuLWdyb3VwLW92ZXJmbG93LmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVu''@;'; put 'put ''dSwuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnV7cmlnaHQ6MTAwJTtsZWZ0OmF1dG87bWFyZ2luOjAgLjFyZW0gMCAwfS5idG4tZ3JvdXAtb3ZlcmZsb3cubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1l''@;'; put 'put ''bnUsLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51e3RvcDowO2JvdHRvbTphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9w''@;'; put 'put ''ZG93bi1tZW51e2JvdHRvbTowO3RvcDphdXRvfS5idG4tZ3JvdXAtb3ZlcmZsb3cucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5idG4tZ3JvdXAtb3ZlcmZsb3cucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93LnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwudGFi''@;'; put 'put ''cy1vdmVyZmxvdy5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51e2xlZnQ6MTAwJTtyaWdodDphdXRvO21hcmdpbjowIDAgMCAuMXJlbX0uYnRuLWdyb3VwLW92''@;'; put 'put ''ZXJmbG93LnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudXt0b3A6MDtib3R0b206YXV0b30uYnRuLWdyb3VwLW92ZXJmbG93LnJpZ2h0LXRvcD4u''@;'; put 'put ''ZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdy5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudXtib3R0b206MDt0b3A6YXV0b30uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93biAuZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxv''@;'; put 'put ''dyAuZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93biAuZHJvcGRvd24tbWVudXtib3JkZXItY29sb3I6I2IzYjNiMztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWNoaWxkLWJvcmRlci1jb2xvciwgI2IzYjNiMyk7cG9zaXRpb246YWJzb2x1dGV9LmJ0''@;'; put 'put ''bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC10b3A+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC10b3A+LmRy''@;'; put 'put ''b3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5sZWZ0LXRvcD4uZHJvcGRvd24tbWVudSwuZHJvcGRvd24gLmRyb3Bkb3duLmxlZnQtdG9wPi5kcm9wZG93''@;'; put 'put ''bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnV7dG9wOjA7Ym90dG9tOmF1dG87bGVmdDphdXRvO3JpZ2h0OjEwMCU7bWFyZ2luLXRvcDotLjk1cmVtO21hcmdpbi1yaWdodDotLjJyZW19LmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5i''@;'; put 'put ''dG4tZ3JvdXAtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJvcGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC10b3A+LmRyb3Bkb3duLW1lbnUsLnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LXRvcD4uZHJv''@;'; put 'put ''cGRvd24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ucmlnaHQtdG9wPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnV7dG9wOjA7Ym90dG9tOmF1dG87''@;'; put 'put ''bGVmdDoxMDAlO3JpZ2h0OmF1dG87bWFyZ2luLXRvcDotLjk1cmVtO21hcmdpbi1sZWZ0Oi0uMnJlbX0uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwuYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRv''@;'; put 'put ''d24tbWVudS13cmFwcGVyPi5kcm9wZG93bi1tZW51LC50YWJzLW92ZXJmbG93IC5kcm9wZG93bi5sZWZ0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudSwuZHJvcGRv''@;'; put 'put ''d24gLmRyb3Bkb3duLmxlZnQtYm90dG9tPi5kcm9wZG93bi1tZW51LC5kcm9wZG93biAuZHJvcGRvd24ubGVmdC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXt0b3A6YXV0bztib3R0b206MDtsZWZ0OmF1dG87cmlnaHQ6MTAwJTttYXJnaW4tYm90dG9tOi0u''@;'; put 'put ''OTVyZW07bWFyZ2luLXJpZ2h0Oi0uMnJlbX0uYnRuLWdyb3VwLW92ZXJmbG93IC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUsLmJ0bi1ncm91cC1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUs''@;'; put 'put ''LnRhYnMtb3ZlcmZsb3cgLmRyb3Bkb3duLnJpZ2h0LWJvdHRvbT4uZHJvcGRvd24tbWVudSwudGFicy1vdmVyZmxvdyAuZHJvcGRvd24ucmlnaHQtYm90dG9tPi5kcm9wZG93bi1tZW51LXdyYXBwZXI+LmRyb3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRy''@;'; put 'put ''b3Bkb3duLW1lbnUsLmRyb3Bkb3duIC5kcm9wZG93bi5yaWdodC1ib3R0b20+LmRyb3Bkb3duLW1lbnUtd3JhcHBlcj4uZHJvcGRvd24tbWVudXt0b3A6YXV0bztib3R0b206MDtsZWZ0OjEwMCU7cmlnaHQ6YXV0bzttYXJnaW4tYm90dG9tOi0uOTVyZW07bWFyZ2luLWxlZnQ6LS4ycmVtfTpy''@;'; put 'put ''b290ey0tY2xyLWJhZGdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1iYWRnZS1jb2xvcjp2YXIoLS1jbHItY29sb3Itb24tbmV1dHJhbC02MDApOy0tY2xyLWJhZGdlLWluZm8tYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDAp''@;'; put 'put ''Oy0tY2xyLWJhZGdlLWluZm8tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItYmFkZ2Utc3VjY2Vzcy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWJhZGdlLXN1Y2Nlc3MtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1j''@;'; put 'put ''bHItYmFkZ2Utd2FybmluZy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy0xMDAwKTstLWNsci1iYWRnZS13YXJuaW5nLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJhZGdlLWRhbmdlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTkwMCk7''@;'; put 'put ''LS1jbHItYmFkZ2UtZGFuZ2VyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWJhZGdlLWdyYXktYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1iYWRnZS1ncmF5LWNvbG9yOnZhcigtLWNsci1iYWRnZS1mb250LWNvbG9yLWxpZ2h0KTst''@;'; put 'put ''LWNsci1iYWRnZS1wdXJwbGUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXNlY29uZGFyeS1hY3Rpb24tNTAwKTstLWNsci1iYWRnZS1wdXJwbGUtY29sb3I6dmFyKC0tY2xyLWJhZGdlLWZvbnQtY29sb3ItbGlnaHQpOy0tY2xyLWJhZGdlLWJsdWUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9y''@;'; put 'put ''LWFjdGlvbi04MDApOy0tY2xyLWJhZGdlLWJsdWUtY29sb3I6dmFyKC0tY2xyLWJhZGdlLWZvbnQtY29sb3ItbGlnaHQpOy0tY2xyLWJhZGdlLW9yYW5nZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy0xMDAwKTstLWNsci1iYWRnZS1vcmFuZ2UtY29sb3I6dmFyKC0tY2xyLWNv''@;'; put 'put ''bG9yLW5ldXRyYWwtMCk7LS1jbHItYmFkZ2UtbGlnaHQtYmx1ZS1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwMCk7LS1jbHItYmFkZ2UtbGlnaHQtYmx1ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKX0uYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDt2ZXJ0aWNh''@;'; put 'put ''bC1hbGlnbjptaWRkbGU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOi43NXJlbTtiYWNrZ3JvdW5kOiM4YzhjOGM7aGVpZ2h0Oi43NXJlbTtsaW5lLWhlaWdodDpub3JtYWw7Ym9yZGVyLXJhZGl1czouNXJlbTtmb250LXNpemU6LjVyZW07cGFk''@;'; put 'put ''ZGluZzowIC4ycmVtO21hcmdpbi1yaWdodDouM3JlbTt3aGl0ZS1zcGFjZTpub3dyYXA7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtZm9udC1jb2xvci1saWdodCwgd2hpdGUpfS5iYWRnZTp2aXNpdGVke2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0t''@;'; put 'put ''Y2xyLWJhZGdlLWZvbnQtY29sb3ItbGlnaHQsIHdoaXRlKX0uYmFkZ2UuYmFkZ2UtZ3JheSwuYmFkZ2UuYmFkZ2UtMXtiYWNrZ3JvdW5kOiM4YzhjOGM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtZ3JheS1iZy1jb2xvciwgIzhjOGM4Yyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHIt''@;'; put 'put ''YmFkZ2UtZ3JheS1jb2xvciwgd2hpdGUpfS5iYWRnZS5iYWRnZS1wdXJwbGUsLmJhZGdlLmJhZGdlLTJ7YmFja2dyb3VuZDojOWU1N2JjO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLXB1cnBsZS1iZy1jb2xvciwgIzllNTdiYyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2Ut''@;'; put 'put ''cHVycGxlLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLWJsdWUsLmJhZGdlLmJhZGdlLTN7YmFja2dyb3VuZDojMDA1NjdhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWJsdWUtYmctY29sb3IsICMwMDU2N2EpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWJsdWUtY29s''@;'; put 'put ''b3IsIHdoaXRlKX0uYmFkZ2UuYmFkZ2Utb3JhbmdlLC5iYWRnZS5iYWRnZS00e2JhY2tncm91bmQ6IzYxMzIwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1vcmFuZ2UtYmctY29sb3IsICM2MTMyMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLW9yYW5nZS1jb2xvciwg''@;'; put 'put ''d2hpdGUpfS5iYWRnZS5iYWRnZS1saWdodC1ibHVlLC5iYWRnZS5iYWRnZS01e2JhY2tncm91bmQ6IzE3OWJkMztiYWNrZ3JvdW5kOnZhcigtLWNsci1iYWRnZS1saWdodC1ibHVlLWJnLWNvbG9yLCAjMTc5YmQzKTtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci1iYWRnZS1saWdodC1ibHVl''@;'; put 'put ''LWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLWluZm97YmFja2dyb3VuZDojMDA1NjdhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWluZm8tYmctY29sb3IsICMwMDU2N2EpO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLWluZm8tY29sb3IsIHdoaXRlKX0uYmFkZ2UuYmFk''@;'; put 'put ''Z2Utc3VjY2Vzc3tiYWNrZ3JvdW5kOiMzMDZiMDA7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2Utc3VjY2Vzcy1iZy1jb2xvciwgIzMwNmIwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utc3VjY2Vzcy1jb2xvciwgd2hpdGUpfS5iYWRnZS5iYWRnZS1kYW5nZXJ7YmFja2dy''@;'; put 'put ''b3VuZDojOTkxNzAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLWRhbmdlci1iZy1jb2xvciwgIzk5MTcwMCk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtZGFuZ2VyLWNvbG9yLCB3aGl0ZSl9LmJhZGdlLmJhZGdlLXdhcm5pbmd7YmFja2dyb3VuZDojNjEzMjAwO2JhY2tn''@;'; put 'put ''cm91bmQ6dmFyKC0tY2xyLWJhZGdlLXdhcm5pbmctYmctY29sb3IsICM2MTMyMDApO2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWJhZGdlLXdhcm5pbmctY29sb3IsIHdoaXRlKX1fOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAuYmFkZ2UsOnJvb3QgLmJhZGdle3BhZGRpbmc6LjFyZW0gLjE1''@;'; put 'put ''cmVtIDB9QHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOmF1dG8pey5iYWRnZXtwYWRkaW5nOi4xcmVtIC4xNXJlbSAwfX06cm9vdHstLWNsci1sYWJlbC1mb250LWNvbG9yLWxpZ2h0OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWxhYmVsLWZvbnQtY29sb3ItZGFyazp2YXIo''@;'; put 'put ''LS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1sYWJlbC1kZWZhdWx0LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWxhYmVsLWZvbnQtc2l6ZTouNTVyZW07LS1jbHItbGFiZWwtZm9udC13ZWlnaHQ6NDAwOy0tY2xyLWxhYmVsLWxldHRlci1z''@;'; put 'put ''cGFjaW5nOi4wM2VtOy0tY2xyLWxhYmVsLWJvcmRlci1yYWRpdXM6LjZyZW07LS1jbHItbGFiZWwtYmctaG92ZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1sYWJlbC1ncmF5LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItbGFi''@;'; put 'put ''ZWwtZ3JheS1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZm9udC1jb2xvci1saWdodCk7LS1jbHItbGFiZWwtcHVycGxlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTUwMCk7LS1jbHItbGFiZWwtcHVycGxlLWNvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9y''@;'; put 'put ''LWxpZ2h0KTstLWNsci1sYWJlbC1ibHVlLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1sYWJlbC1ibHVlLWNvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9yLWxpZ2h0KTstLWNsci1sYWJlbC1vcmFuZ2UtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdh''@;'; put 'put ''cm5pbmctMTAwMCk7LS1jbHItbGFiZWwtb3JhbmdlLWNvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9yLWRhcmspOy0tY2xyLWxhYmVsLWxpZ2h0LWJsdWUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi01MDApOy0tY2xyLWxhYmVsLWxpZ2h0LWJsdWUtY29sb3I6dmFyKC0t''@;'; put 'put ''Y2xyLWxhYmVsLWZvbnQtY29sb3ItZGFyayk7LS1jbHItbGFiZWwtaW5mby1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTUwKTstLWNsci1sYWJlbC1pbmZvLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWxhYmVsLWluZm8tYm9yZGVyLWNvbG9y''@;'; put 'put ''OnZhcigtLWNsci1jb2xvci1hY3Rpb24tODAwKTstLWNsci1sYWJlbC1zdWNjZXNzLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTUwKTstLWNsci1sYWJlbC1zdWNjZXNzLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtODAwKTstLWNsci1sYWJlbC1zdWNjZXNz''@;'; put 'put ''LWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy04MDApOy0tY2xyLWxhYmVsLXdhcm5pbmctYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLXdhcm5pbmctMTAwKTstLWNsci1sYWJlbC13YXJuaW5nLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNs''@;'; put 'put ''ci1sYWJlbC13YXJuaW5nLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItY29sb3Itd2FybmluZy04MDApOy0tY2xyLWxhYmVsLWRhbmdlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTEwMCk7LS1jbHItbGFiZWwtZGFuZ2VyLWZvbnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdl''@;'; put 'put ''ci05MDApOy0tY2xyLWxhYmVsLWRhbmdlci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci05MDApfS5sYWJlbCxhLmxhYmVse2ZvbnQtc2l6ZTouNTVyZW07Zm9udC1zaXplOnZhcigtLWNsci1sYWJlbC1mb250LXNpemUsIC41NXJlbSk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQt''@;'; put 'put ''d2VpZ2h0OnZhcigtLWNsci1sYWJlbC1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3BhY2luZzouMDNlbTtsZXR0ZXItc3BhY2luZzp2YXIoLS1jbHItbGFiZWwtbGV0dGVyLXNwYWNpbmcsIC4wM2VtKTtsaW5lLWhlaWdodDouNnJlbTtkaXNwbGF5OmlubGluZS1mbGV4O2p1c3RpZnktY29u''@;'; put 'put ''dGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MCAuNnJlbTtib3JkZXItcmFkaXVzOi42cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWxhYmVsLWJvcmRlci1yYWRpdXMsIC42cmVtKTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRl''@;'; put 'put ''ci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZGVmYXVsdC1ib3JkZXItY29sb3IsICM4YzhjOGMpO2hlaWdodDoxLjA1cmVtO21hcmdpbjowIC4zcmVtIC4wNXJlbSAwO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1sYWJlbC1mb250LWNvbG9yLWxpZ2h0LCBi''@;'; put 'put ''bGFjayl9LmxhYmVsOnZpc2l0ZWQsYS5sYWJlbDp2aXNpdGVke2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWxhYmVsLWZvbnQtY29sb3ItbGlnaHQsIGJsYWNrKX0ubGFiZWw6Zm9jdXMsLmxhYmVsOmhvdmVyLC5sYWJlbDphY3RpdmUsYS5sYWJlbDpmb2N1cyxhLmxhYmVsOmhvdmVyLGEu''@;'; put 'put ''bGFiZWw6YWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lfS5sYWJlbC5jbGlja2FibGU6aG92ZXIsLmxhYmVsLmNsaWNrYWJsZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGU6aG92ZXIsYS5sYWJlbC5jbGlja2FibGU6YWN0aXZle2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigt''@;'; put 'put ''LWNsci1sYWJlbC1iZy1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmxhYmVsLmNsaWNrYWJsZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGU6YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzhjOGM4YyBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItbGFiZWwtZ3JheS1i''@;'; put 'put ''Zy1jb2xvciwgIzhjOGM4YykgaW5zZXQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLjVweCl9LmxhYmVsLmxhYmVsLWdyYXksLmxhYmVsLmxhYmVsLTEsYS5sYWJlbC5sYWJlbC1ncmF5LGEubGFiZWwubGFiZWwtMXtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojOGM4YzhjO2JvcmRl''@;'; put 'put ''ci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtZ3JheS1iZy1jb2xvciwgIzhjOGM4Yyl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ncmF5OmhvdmVyLC5sYWJlbC5jbGlja2FibGUubGFiZWwtZ3JheTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtZ3JheTpob3ZlcixhLmxhYmVsLmNsaWNr''@;'; put 'put ''YWJsZS5sYWJlbC1ncmF5OmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtYmctaG92ZXItY29sb3IsICNlOGU4ZTgpfS5sYWJlbC5jbGlja2FibGUubGFiZWwtZ3JheTphY3RpdmUsYS5sYWJlbC5jbGlja2Fi''@;'; put 'put ''bGUubGFiZWwtZ3JheTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjOGM4YzhjIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1sYWJlbC1ncmF5LWJnLWNvbG9yLCAjOGM4YzhjKSBpbnNldDt0cmFuc2Zvcm06dHJhbnNsYXRlWSguNXB4KX0ubGFiZWwubGFiZWwt''@;'; put 'put ''Z3JheT4uYmFkZ2UsYS5sYWJlbC5sYWJlbC1ncmF5Pi5iYWRnZXtiYWNrZ3JvdW5kOiM4YzhjOGM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtZ3JheS1iZy1jb2xvciwgIzhjOGM4Yyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtZ3JheS1jb2xvciwgd2hpdGUpfS5sYWJl''@;'; put 'put ''bC5sYWJlbC1wdXJwbGUsLmxhYmVsLmxhYmVsLTIsYS5sYWJlbC5sYWJlbC1wdXJwbGUsYS5sYWJlbC5sYWJlbC0ye2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM5ZTU3YmM7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1wdXJwbGUtYmctY29sb3IsICM5ZTU3YmMpfS5s''@;'; put 'put ''YWJlbC5jbGlja2FibGUubGFiZWwtcHVycGxlOmhvdmVyLC5sYWJlbC5jbGlja2FibGUubGFiZWwtcHVycGxlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6aG92ZXIsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtcHVycGxlOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9u''@;'; put 'put ''ZTtiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtYmctaG92ZXItY29sb3IsICNlOGU4ZTgpfS5sYWJlbC5jbGlja2FibGUubGFiZWwtcHVycGxlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1wdXJwbGU6YWN0aXZle2JveC1zaGFkb3c6MCAuMDVy''@;'; put 'put ''ZW0gIzllNTdiYyBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItbGFiZWwtcHVycGxlLWJnLWNvbG9yLCAjOWU1N2JjKSBpbnNldDt0cmFuc2Zvcm06dHJhbnNsYXRlWSguNXB4KX0ubGFiZWwubGFiZWwtcHVycGxlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLXB1cnBsZT4u''@;'; put 'put ''YmFkZ2V7YmFja2dyb3VuZDojOWU1N2JjO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLXB1cnBsZS1iZy1jb2xvciwgIzllNTdiYyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtcHVycGxlLWNvbG9yLCB3aGl0ZSl9LmxhYmVsLmxhYmVsLWJsdWUsLmxhYmVsLmxhYmVsLTMs''@;'; put 'put ''YS5sYWJlbC5sYWJlbC1ibHVlLGEubGFiZWwubGFiZWwtM3tib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojMDA1NjdhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtYmx1ZS1iZy1jb2xvciwgIzAwNTY3YSl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmhvdmVyLC5s''@;'; put 'put ''YWJlbC5jbGlja2FibGUubGFiZWwtYmx1ZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtYmx1ZTpob3ZlcixhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1ibHVlOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHIt''@;'; put 'put ''bGFiZWwtYmctaG92ZXItY29sb3IsICNlOGU4ZTgpfS5sYWJlbC5jbGlja2FibGUubGFiZWwtYmx1ZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtYmx1ZTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjMDA1NjdhIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigt''@;'; put 'put ''LWNsci1sYWJlbC1ibHVlLWJnLWNvbG9yLCAjMDA1NjdhKSBpbnNldDt0cmFuc2Zvcm06dHJhbnNsYXRlWSguNXB4KX0ubGFiZWwubGFiZWwtYmx1ZT4uYmFkZ2UsYS5sYWJlbC5sYWJlbC1ibHVlPi5iYWRnZXtiYWNrZ3JvdW5kOiMwMDU2N2E7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2Ut''@;'; put 'put ''Ymx1ZS1iZy1jb2xvciwgIzAwNTY3YSk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtYmx1ZS1jb2xvciwgd2hpdGUpfS5sYWJlbC5sYWJlbC1vcmFuZ2UsLmxhYmVsLmxhYmVsLTQsYS5sYWJlbC5sYWJlbC1vcmFuZ2UsYS5sYWJlbC5sYWJlbC00e2JvcmRlcjouMDVyZW0gc29s''@;'; put 'put ''aWQ7Ym9yZGVyLWNvbG9yOiM2MTMyMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1vcmFuZ2UtYmctY29sb3IsICM2MTMyMDApfS5sYWJlbC5jbGlja2FibGUubGFiZWwtb3JhbmdlOmhvdmVyLC5sYWJlbC5jbGlja2FibGUubGFiZWwtb3JhbmdlOmFjdGl2ZSxhLmxhYmVsLmNsaWNr''@;'; put 'put ''YWJsZS5sYWJlbC1vcmFuZ2U6aG92ZXIsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtb3JhbmdlOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtYmctaG92ZXItY29sb3IsICNlOGU4ZTgpfS5sYWJlbC5jbGlj''@;'; put 'put ''a2FibGUubGFiZWwtb3JhbmdlOmFjdGl2ZSxhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1vcmFuZ2U6YWN0aXZle2JveC1zaGFkb3c6MCAuMDVyZW0gIzYxMzIwMCBpbnNldDtib3gtc2hhZG93OjAgLjA1cmVtIDAgMCB2YXIoLS1jbHItbGFiZWwtb3JhbmdlLWJnLWNvbG9yLCAjNjEzMjAwKSBp''@;'; put 'put ''bnNldDt0cmFuc2Zvcm06dHJhbnNsYXRlWSguNXB4KX0ubGFiZWwubGFiZWwtb3JhbmdlPi5iYWRnZSxhLmxhYmVsLmxhYmVsLW9yYW5nZT4uYmFkZ2V7YmFja2dyb3VuZDojNjEzMjAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLWJhZGdlLW9yYW5nZS1iZy1jb2xvciwgIzYxMzIwMCk7Y29sb3I6''@;'; put 'put ''I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2Utb3JhbmdlLWNvbG9yLCB3aGl0ZSl9LmxhYmVsLmxhYmVsLWxpZ2h0LWJsdWUsLmxhYmVsLmxhYmVsLTUsYS5sYWJlbC5sYWJlbC1saWdodC1ibHVlLGEubGFiZWwubGFiZWwtNXtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojMTc5''@;'; put 'put ''YmQzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtbGlnaHQtYmx1ZS1iZy1jb2xvciwgIzE3OWJkMyl9LmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmhvdmVyLC5sYWJlbC5jbGlja2FibGUubGFiZWwtbGlnaHQtYmx1ZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFi''@;'; put 'put ''ZWwtbGlnaHQtYmx1ZTpob3ZlcixhLmxhYmVsLmNsaWNrYWJsZS5sYWJlbC1saWdodC1ibHVlOmFjdGl2ZXt0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtYmctaG92ZXItY29sb3IsICNlOGU4ZTgpfS5sYWJlbC5jbGlj''@;'; put 'put ''a2FibGUubGFiZWwtbGlnaHQtYmx1ZTphY3RpdmUsYS5sYWJlbC5jbGlja2FibGUubGFiZWwtbGlnaHQtYmx1ZTphY3RpdmV7Ym94LXNoYWRvdzowIC4wNXJlbSAjMTc5YmQzIGluc2V0O2JveC1zaGFkb3c6MCAuMDVyZW0gMCAwIHZhcigtLWNsci1sYWJlbC1saWdodC1ibHVlLWJnLWNvbG9y''@;'; put 'put ''LCAjMTc5YmQzKSBpbnNldDt0cmFuc2Zvcm06dHJhbnNsYXRlWSguNXB4KX0ubGFiZWwubGFiZWwtbGlnaHQtYmx1ZT4uYmFkZ2UsYS5sYWJlbC5sYWJlbC1saWdodC1ibHVlPi5iYWRnZXtiYWNrZ3JvdW5kOiMxNzliZDM7YmFja2dyb3VuZDp2YXIoLS1jbHItYmFkZ2UtbGlnaHQtYmx1ZS1i''@;'; put 'put ''Zy1jb2xvciwgIzE3OWJkMyk7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItYmFkZ2UtbGlnaHQtYmx1ZS1jb2xvciwgd2hpdGUpfS5sYWJlbC5sYWJlbC1pbmZvLGEubGFiZWwubGFiZWwtaW5mb3tiYWNrZ3JvdW5kOiNlM2Y1ZmM7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtaW5mby1i''@;'; put 'put ''Zy1jb2xvciwgI2UzZjVmYyk7Y29sb3I6IzAwNTY3YTtjb2xvcjp2YXIoLS1jbHItbGFiZWwtaW5mby1mb250LWNvbG9yLCAjMDA1NjdhKTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojMDA1NjdhO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtaW5mby1ib3JkZXItY29s''@;'; put 'put ''b3IsICMwMDU2N2EpfS5sYWJlbC5sYWJlbC1zdWNjZXNzLGEubGFiZWwubGFiZWwtc3VjY2Vzc3tiYWNrZ3JvdW5kOiNkZmYwZDA7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtc3VjY2Vzcy1iZy1jb2xvciwgI2RmZjBkMCk7Y29sb3I6IzMwNmIwMDtjb2xvcjp2YXIoLS1jbHItbGFiZWwt''@;'; put 'put ''c3VjY2Vzcy1mb250LWNvbG9yLCAjMzA2YjAwKTtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojMzA2YjAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtc3VjY2Vzcy1ib3JkZXItY29sb3IsICMzMDZiMDApfS5sYWJlbC5sYWJlbC13YXJuaW5nLGEubGFiZWwubGFiZWwt''@;'; put 'put ''d2FybmluZ3tiYWNrZ3JvdW5kOiNmZmY0Yzc7YmFja2dyb3VuZDp2YXIoLS1jbHItbGFiZWwtd2FybmluZy1iZy1jb2xvciwgI2ZmZjRjNyk7Y29sb3I6IzMzMztjb2xvcjp2YXIoLS1jbHItbGFiZWwtd2FybmluZy1mb250LWNvbG9yLCAjMzMzMzMzKTtib3JkZXI6LjA1cmVtIHNvbGlkO2Jv''@;'; put 'put ''cmRlci1jb2xvcjojYWQ3NjAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItbGFiZWwtd2FybmluZy1ib3JkZXItY29sb3IsICNhZDc2MDApfS5sYWJlbC5sYWJlbC1kYW5nZXIsYS5sYWJlbC5sYWJlbC1kYW5nZXJ7YmFja2dyb3VuZDojZmVkZGQ3O2JhY2tncm91bmQ6dmFyKC0tY2xyLWxhYmVs''@;'; put 'put ''LWRhbmdlci1iZy1jb2xvciwgI2ZlZGRkNyk7Y29sb3I6Izk5MTcwMDtjb2xvcjp2YXIoLS1jbHItbGFiZWwtZGFuZ2VyLWZvbnQtY29sb3IsICM5OTE3MDApO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiM5OTE3MDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1sYWJlbC1kYW5n''@;'; put 'put ''ZXItYm9yZGVyLWNvbG9yLCAjOTkxNzAwKX0ubGFiZWw+LmJhZGdlLGEubGFiZWw+LmJhZGdle21hcmdpbjowIC0uNDVyZW0gMCAuM3JlbX1ALW1vei1kb2N1bWVudCB1cmwtcHJlZml4KCl7LmxhYmVsLGEubGFiZWx7dmVydGljYWwtYWxpZ246Ym90dG9tfX06cm9vdHstLWNsci1sb2dpbi10''@;'; put 'put ''aXRsZS1jb2xvcjp2YXIoLS1jbHItaDEtY29sb3IpOy0tY2xyLWxvZ2luLXRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMS1mb250LXdlaWdodCk7LS1jbHItbG9naW4tdGl0bGUtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWgxLWZvbnQtZmFtaWx5KTstLWNsci1sb2dpbi10cmFkZW1hcmst''@;'; put 'put ''Y29sb3I6dmFyKC0tY2xyLWgyLWNvbG9yKTstLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgyLWZvbnQtd2VpZ2h0KTstLWNsci1sb2dpbi10cmFkZW1hcmstZm9udC1mYW1pbHk6dmFyKC0tY2xyLWgyLWZvbnQtZmFtaWx5KTstLWNsci1sb2dpbi1zdWJ0aXRs''@;'; put 'put ''ZS1jb2xvcjp2YXIoLS1jbHItaDMtY29sb3IpOy0tY2xyLWxvZ2luLXN1YnRpdGxlLWZvbnQtd2VpZ2h0OnZhcigtLWNsci1oMy1mb250LXdlaWdodCk7LS1jbHItbG9naW4tc3VidGl0bGUtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWgzLWZvbnQtZmFtaWx5KTstLWNsci1sb2dpbi1iYWNrZ3Jv''@;'; put 'put ''dW5kLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtYXBwLWJhY2tncm91bmQpOy0tY2xyLWxvZ2luLWJhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUyMGVuY29kaW5nJTNEJTIydXRmLTglMjIlM0YlM0Ul''@;'; put 'put ''MEQlMEElM0MlMjFET0NUWVBFJTIwc3ZnJTIwUFVCTElDJTIwJTIyLSUyRiUyRlczQyUyRiUyRkRURCUyMFNWRyUyMDEuMSUyRiUyRkVOJTIyJTIwJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkZHcmFwaGljcyUyRlNWRyUyRjEuMSUyRkRURCUyRnN2ZzExLmR0ZCUyMiUzRSUwRCUwQSUz''@;'; put 'put ''Q3N2ZyUwRCUwQSUyMCUyMCUyMCUyMCUyMHZlcnNpb24lM0QlMjIxLjElMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBpZCUzRCUyMm5vLWFzcGVjdC1yYXRpbyUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTBE''@;'; put 'put ''JTBBJTIwJTIwJTIwJTIwJTIweG1sbnMlM0F4bGluayUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweCUzRCUyMjBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHklM0QlMjIwcHglMjIlMEQlMEElMjAlMjAlMjAlMjAl''@;'; put 'put ''MjBoZWlnaHQlM0QlMjIyMDU1LjU1cHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjB3aWR0aCUzRCUyMjE0NDBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDIwNTUuNTUlMjAxNDQwJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwcHJlc2VydmVBc3BlY3RSYXRp''@;'; put 'put ''byUzRCUyMnhNaW5ZTWluJTIwc2xpY2UlMjIlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NkZXNjJTNFTG9naW4lMjBJbWFnZSUzQyUyRmRlc2MlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwc3Ryb2tlJTNEJTIybm9u''@;'; put 'put ''ZSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjElMjIlMjBmaWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgwLjAwMDAwMCUyQyUyMC00LjAwMDAwMCUyOSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUzQ2clM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNGQUZBRkElMjIlMjB4JTNEJTIyMCUyMiUyMHkl''@;'; put 'put ''M0QlMjI0JTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUl''@;'; put 'put ''M0ElMjBtdWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUyMjExMDguNDMlMjAxNDQzLjYzJTIwMTEwOS4wOCUyMDE0NDMuNjMlMjA0NDMuNDQlMjA3NzcuNzQlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5M0Q4Q0ElMjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG92ZXJsYXklM0IlMjIlMjBwb2ludHMlM0QlMjIwLjc5JTIwMzM0LjkyJTIwNDQzLjQ0JTIwNzc3Ljc0JTIwMC43OSUyMDMzNC40''@;'; put 'put ''OSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjAyMTEuODglMjAwLjc5JTIwMzI5LjYlMjA1OS42MiUy''@;'; put 'put ''MDI3MC43NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjE2MC42NSUyMDE2OS43NCUyMDAuNzklMjA5LjczJTIw''@;'; put 'put ''MC43OSUyMDIxMS44OCUyMDkwLjI3JTIwMzAxLjQ2JTIwNTkuNjIlMjAyNzAuNzclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2lu''@;'; put 'put ''dHMlM0QlMjI1MDMuNzclMjAxNDQzLjYzJTIwNjk3LjQ3JTIwMTQ0My42MyUyMDgwMy43NCUyMDEzMzcuMzYlMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHln''@;'; put 'put ''b24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9pbnRzJTNEJTIyMTU4LjMzJTIwNjkxLjE1JTIwMC43OSUyMDg0OC43MiUyMDAuNzklMjAxNDI3LjQzJTIwNDQ3LjUyJTIwOTgwLjclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDRURERTAlMjIlMjBwb2ludHMlM0QlMjIyNTcuNzElMjA1OTEuNzUlMjAwLjc5JTIwMzM0LjQ5JTIwMC43OSUyMDUzMy40MiUyMDE1OC4zMyUyMDY5MS4xNSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0E5QzlENSUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjA1MzMuNDIlMjAwLjc5JTIwODQ4LjcyJTIwMTU4LjMzJTIwNjkxLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUw''@;'; put 'put ''RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyODA2LjQ2JTIwMTE0MC44OSUyMDU0Ni45NCUyMDg4MS4yOCUyMDQ0Ny41MiUyMDk4MC43JTIwNzA2LjkzJTIw''@;'; put 'put ''MTI0MC40MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhGQzRERiUyMiUyMHBvaW50cyUzRCUyMjQ0Ny41MiUyMDk4MC43JTIwMC43OSUyMDE0MjcuNDMl''@;'; put 'put ''MjAwLjc5JTIwMTQ0My42MyUyMDUwMy43NyUyMDE0NDMuNjMlMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzBDMERDJTIy''@;'; put 'put ''JTIwcG9pbnRzJTNEJTIyNjA4LjIzJTIwODE5Ljk5JTIwNTQ2Ljk0JTIwODgxLjI4JTIwODA2LjQ2JTIwMTE0MC44OSUyMDg2Ny42NCUyMDEwNzkuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nw''@;'; put 'put ''b2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjQyMC4wNSUyMDQyOS4zOSUyMDMxOS4wMSUyMDUzMC40NSUyMDYwOC4yMyUyMDgxOS45OSUyMDcwOS4zJTIwNzE4LjkxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNjlBRkQ0JTIyJTIwcG9pbnRzJTNEJTIyNzA5LjMlMjA3MTguOTElMjA2MDguMjMlMjA4MTkuOTklMjA4NjcuNjQlMjAxMDc5LjclMjA5NjguNzQlMjA5NzguNiUyMiUzRSUzQyUyRnBvbHlnb24lM0Ul''@;'; put 'put ''MEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhFQjVCQyUyMiUyMHBvaW50cyUzRCUyMjYxOS41OSUyMDIyOS44MiUyMDM5My40MiUyMDMuMTIlMjAzMjcuMjclMjAzLjEyJTIwMTYwLjY1JTIwMTY5''@;'; put 'put ''Ljc0JTIwNDIwLjA1JTIwNDI5LjM5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEVCNUJDJTIyJTIwcG9pbnRzJTNEJTIyMzE5LjAxJTIwNTMwLjQ1JTIw''@;'; put 'put ''MzE5LjAxJTIwNTMwLjQ1JTIwOTAuMjclMjAzMDEuNDYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3Q0IwQzclMjIlMjBwb2ludHMlM0QlMjIxNjAuNjUl''@;'; put 'put ''MjAxNjkuNzQlMjA1OS42MiUyMDI3MC43NyUyMDkwLjI3JTIwMzAxLjQ2JTIwMzE5LjAxJTIwNTMwLjQ1JTIwNDIwLjA1JTIwNDI5LjM5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24l''@;'; put 'put ''MjBmaWxsJTNEJTIyJTIzODRDNEQyJTIyJTIwcG9pbnRzJTNEJTIyNTkuNjIlMjAyNzAuNzclMjAwLjc5JTIwMzI5LjYlMjAwLjc5JTIwMzM0LjQ5JTIwMjU3LjcxJTIwNTkxLjc1JTIwMzE5LjAxJTIwNTMwLjQ1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0NCMEM3JTIyJTIwcG9pbnRzJTNEJTIyNTM3LjU1JTIwMy4xMiUyMDM5My40MiUyMDMuMTIlMjA2MTkuNTklMjAyMjkuODIlMjA2OTEuNzQlMjAxNTcuNjYlMjIlM0UlM0MlMkZwb2x5Z29u''@;'; put 'put ''JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4N0QxREIlMjIlMjBwb2ludHMlM0QlMjI4NDYuMjUlMjAzLjEyJTIwNTM3LjU1JTIwMy4xMiUyMDY5MS43NCUyMDE1Ny42NiUyMiUzRSUzQyUy''@;'; put 'put ''RnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNFRSUyMiUyMHBvaW50cyUzRCUyMjkwOS44NyUyMDE0NDMuNjMlMjA4NTAuMTklMjAxMzgzLjg3JTIwNzkwLjQzJTIwMTQ0''@;'; put 'put ''My42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjMxOS4wMSUyMDUzMC40NSUyMDI1Ny43MSUyMDU5MS43NSUy''@;'; put 'put ''MDQ0My40NCUyMDc3Ny43NCUyMDU0Ni45NCUyMDg4MS4yOCUyMDYwOC4yMyUyMDgxOS45OSUyMDg2Ny42NCUyMDEwNzkuNyUyMDg2Ny42NCUyMDEwNzkuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''M0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjg2Ny42NCUyMDEwNzkuNyUyMDgwNi40NiUyMDExNDAuODklMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwNjUuNTclMjAxMDc1LjUyJTIwOTY4Ljc0JTIwOTc4LjYlMjA4NjcuNjQlMjAxMDc5LjclMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJG''@;'; put 'put ''cG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDg2Ny42NCUyMDEwNzkuNyUyMDg2Ny42NCUyMDEwNzku''@;'; put 'put ''NyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUy''@;'; put 'put ''MDEyMzEuMTYlMjAxNDQzLjYzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIx''@;'; put 'put ''MjQwLjA4JTIwNzA3LjIyJTIwMTE2Ny45JTIwNzc5LjQlMjAxMjY0LjY4JTIwODc2LjQlMjAxMzM2Ljg3JTIwODA0LjIyJTIwMTI0MC4wOCUyMDcwNy4yMSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''M0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjk4MC44MyUyMDQ0Ny4zOSUyMDY5MS43NCUyMDE1Ny42NiUyMDYxOS41OSUyMDIyOS44MiUyMDkwOC42NiUyMDUxOS41NiUyMDk4MC44MyUyMDQ0Ny4zOSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEEl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjcwOS4zJTIwNzE4LjkxJTIwOTY4Ljc0JTIwOTc4LjYlMjAxMTY3LjkxJTIwNzc5LjQlMjA5MDguNjYlMjA1MTkuNTUl''@;'; put 'put ''MjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2OUFGRDQlMjIlMjBwb2ludHMlM0QlMjI5ODAuODMlMjA0NDcuMzklMjA5MDguNjYlMjA1MTkuNTUlMjAxMTY3''@;'; put 'put ''LjkxJTIwNzc5LjQlMjAxMjQwLjA4JTIwNzA3LjIxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTAzNC41OSUy''@;'; put 'put ''MDMuMTIlMjA4NDYuMjUlMjAzLjEyJTIwNjkxLjc0JTIwMTU3LjY2JTIwOTgwLjgzJTIwNDQ3LjM5JTIwMTIyOS43NSUyMDE5OC40NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIw''@;'; put 'put ''ZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjEyNDAuMDglMjA3MDcuMjElMjAxMzM2Ljg3JTIwODA0LjIyJTIwMTU4Ni4wMSUyMDU1NS4wOCUyMDE0ODkuMTQlMjA0NTguMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3MEMwREMlMjIlMjBwb2ludHMlM0QlMjIxMjI5Ljc1JTIwMTk4LjQ3JTIwOTgwLjgzJTIwNDQ3LjM5JTIwMTI0MC4wOCUyMDcwNy4yMSUyMDE0ODkuMTQlMjA0NTguMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNF''@;'; put 'put ''JTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxMjkyLjIyJTIwMTMwMi4zOCUyMDE0MzMuMzIlMjAxNDQzLjYzJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAx''@;'; put 'put ''NDkxLjE4JTIwMTEwMy40MiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwOTQ5''@;'; put 'put ''Ljc4JTIwMTI4NC4yNyUyMDExMDkuMDglMjAxNDQzLjYzJTIwMTE1MC45OCUyMDE0NDMuNjMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmls''@;'; put 'put ''bCUzRCUyMiUyMzc1QjhDNSUyMiUyMHBvaW50cyUzRCUyMjExNTAuOTglMjAxNDQzLjYzJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEyOTIuMjIlMjAxMzAyLjM4JTIwMTExMi4wMyUyMDExMjIuMDIlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNkVBNEJDJTIyJTIwcG9pbnRzJTNEJTIyMTE5MS4wOSUyMDE0MDMuNTElMjAxMjMxLjE2JTIwMTQ0My42MyUyMDE0MzMuMzIlMjAxNDQzLjYzJTIwMTI5Mi4yMiUyMDEzMDIu''@;'; put 'put ''MzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIlMjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUz''@;'; put 'put ''QSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTM4My4zJTIwODUwLjc1JTIwMTMxMS4xMiUyMDkyMi45NCUyMDE0OTEuMTglMjAxMTAzLjQyJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxNDkxLjE4JTIwMTEwMy40MiUyMDE4MzAuNjElMjAxNDQzLjYzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24l''@;'; put 'put ''M0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzZFQTRCQyUyMiUyMHBvaW50cyUzRCUyMjE0OTEuMTglMjAxMTAzLjQyJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUy''@;'; put 'put ''MDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTgxMi42NSUyMDc4MS45NSUyMDE2''@;'; put 'put ''MzIuNDYlMjA2MDEuNTklMjAxMzgzLjMlMjA4NTAuNzUlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUy''@;'; put 'put ''MHBvaW50cyUzRCUyMjE1NjMuMzclMjAxMDMxLjIzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxMDIzLjk5JTIwMTgxMi42NSUyMDc4MS45NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzc4Q0FENCUyMiUyMHBvaW50cyUzRCUyMjE1NjMuMzclMjAxMDMxLjIzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxMDIzLjk5JTIwMTgxMi42NSUyMDc4MS45''@;'; put 'put ''NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjgwMy43NCUyMDEzMzcuMzYlMjA4NTAuMTklMjAxMzgzLjg3JTIw''@;'; put 'put ''OTQ5Ljc4JTIwMTI4NC4yNyUyMDkwMy4zMSUyMDEyMzcuNzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjIxMDY1''@;'; put 'put ''LjU3JTIwMTA3NS41MiUyMDExMTIuMDMlMjAxMTIyLjAyJTIwMTMxMS4xMiUyMDkyMi45NCUyMDEyNjQuNjklMjA4NzYuNCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUz''@;'; put 'put ''RCUyMiUyMzc3QjhEOSUyMiUyMHBvaW50cyUzRCUyMjY5Ny40NyUyMDE0NDMuNjMlMjA3OTAuNDMlMjAxNDQzLjYzJTIwODUwLjE5JTIwMTM4My44NyUyMDgwMy43NCUyMDEzMzcuMzYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwOTAzLjMxJTIwMTIzNy43OCUyMDk0OS43OCUyMDEyODQuMjclMjAxMDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQl''@;'; put 'put ''MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzVEQjVENiUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDEwMTAuOTIl''@;'; put 'put ''MjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTAzOC4yNDcyOTclMkMlMjAx''@;'; put 'put ''MTQ5LjI3NTQyOSUyOSUyMHJvdGF0ZSUyOC00NC45NzAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTAzOC4yNDcyOTclMkMlMjAtMTE0OS4yNzU0MjklMjklMjAlMjIlMjB4JTNEJTIyOTY2Ljc1MjI5NyUyMiUyMHklM0QlMjIxMTE2LjQxMDQzJTIyJTIwd2lkdGglM0QlMjIxNDIuOTklMjIlMjBo''@;'; put 'put ''ZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzU3QThEMCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODEwMzguMjQ3Mjk3JTJD''@;'; put 'put ''JTIwMTE0OS4yNzU0MjklMjklMjByb3RhdGUlMjgtNDQuOTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTEwMzguMjQ3Mjk3JTJDJTIwLTExNDkuMjc1NDI5JTI5JTIwJTIyJTIweCUzRCUyMjk2Ni43NTIyOTclMjIlMjB5JTNEJTIyMTExNi40MTA0MyUyMiUyMHdpZHRoJTNEJTIyMTQyLjk5JTIy''@;'; put 'put ''JTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDEw''@;'; put 'put ''MTAuOTIlMjAxMjIzLjEzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDAwMDAlMjIl''@;'; put 'put ''MjBvcGFjaXR5JTNEJTIyMC40MiUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjA5NjQuNDYlMjAxMTc2LjYzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTI2''@;'; put 'put ''NC42OSUyMDg3Ni40JTIwMTMxMS4xMiUyMDkyMi45NCUyMDEzODMuMyUyMDg1MC43NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzU3QThEMCUyMiUyMHBv''@;'; put 'put ''aW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMjY0LjY5JTIwODc2LjQlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTM4My4zJTIwODUwLjc1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHln''@;'; put 'put ''b24lMjBmaWxsJTNEJTIyJTIzOTNEOENBJTIyJTIwb3BhY2l0eSUzRCUyMjAuNiUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBvdmVybGF5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEzODMuMyUyMDg1MC43NSUyMDE2MzIuNDYlMjA2MDEuNTkl''@;'; put 'put ''MjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNURCNUQ2JTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEz''@;'; put 'put ''ODMuMyUyMDg1MC43NSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZEM0U2JTIyJTIw''@;'; put 'put ''cG9pbnRzJTNEJTIyMjA1NiUyMDAuMTIlMjAxNjQ1LjQ5JTIwMC4xMiUyMDE2NDguNDklMjAzLjEyJTIwMTk0NC4wNyUyMDMuMTIlMjAxNzk2LjIyJTIwMTUwLjk5JTIwMTg5My4xMiUyMDI0Ny45NyUyMDIwNTQuNDUlMjA4Ni42NCUyMDIwNTQuNDUlMjAxNzkuNiUyMDE5MzkuNTglMjAyOTQu''@;'; put 'put ''NDclMjAyMDU2JTIwNDExJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0FCOUQ5JTIyJTIwcG9pbnRzJTNEJTIyMTY0OC40OSUyMDMuMTIlMjAxNzk2LjIy''@;'; put 'put ''JTIwMTUwLjk5JTIwMTk0NC4wNyUyMDMuMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2NkFFRDQlMjIlMjBwb2ludHMlM0QlMjIyMDU0LjQ1JTIwODYu''@;'; put 'put ''NjQlMjAxODkzLjEyJTIwMjQ3Ljk3JTIwMTkzOS41OCUyMDI5NC40NyUyMDIwNTQuNDUlMjAxNzkuNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VE''@;'; put 'put ''MiUyMiUyMHBvaW50cyUzRCUyMjE4ODQuODIlMjA3MDkuNzglMjAyMDU0LjQ1JTIwODc5LjU3JTIwMjA1NC40NSUyMDU0MC4xNSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmls''@;'; put 'put ''bCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjE0ODkuMTQlMjA0NTguMTIlMjAxNDg5LjE0JTIwNDU4LjEyJTIwMTM3MS4xMyUyMDMzOS45OSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''M0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjE3OTYuMjIlMjAxNTAuOTklMjAxNjQ4LjQ5JTIwMy4xMiUyMDE0MjUuMSUyMDMuMTIlMjAxMzAxLjkxJTIwMTI2LjMxJTIwMTU2MS4zJTIwMzg1Ljk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTc5OC45NTQwNjYlMkMlMjAzODguNzk4NzgxJTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUy''@;'; put 'put ''MHRyYW5zbGF0ZSUyOC0xNzk4Ljk1NDA2NiUyQyUyMC0zODguNzk4NzgxJTI5JTIwJTIyJTIweCUzRCUyMjE2MzIuODI0MDclMjIlMjB5JTNEJTIyMzU1LjkzMzc4MSUyMiUyMHdpZHRoJTNEJTIyMzMyLjI2JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBB''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjIxNTg2LjAxJTIwNTU1LjA4JTIwMTYzMi40NiUyMDYwMS41OSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNTg2LjAxJTIw''@;'; put 'put ''NTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTU3My43MTE1NzclMkMlMjA0NzAu''@;'; put 'put ''NjIwMjYzJTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNTczLjcxMTU3NyUyQyUyMC00NzAuNjIwMjYzJTI5JTIwJTIyJTIweCUzRCUyMjE1MjIuNjgxNTglMjIlMjB5JTNEJTIyNDAyLjA4NTI2MyUyMiUyMHdpZHRoJTNEJTIyMTAyLjA2JTIyJTIwaGVpZ2h0''@;'; put 'put ''JTNEJTIyMTM3LjA3JTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTc1OC42NzY3NTglMkMlMjA2''@;'; put 'put ''NTUuNzY3MTIwJTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNzU4LjY3Njc1OCUyQyUyMC02NTUuNzY3MTIwJTI5JTIwJTIyJTIweCUzRCUyMjE3MDcuNjQ2NzYlMjIlMjB5JTNEJTIyNTI4LjI5MjEyJTIyJTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWln''@;'; put 'put ''aHQlM0QlMjIyNTQuOTUlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjBwb2ludHMlM0QlMjIxMzAxLjkxJTIwMTI2LjMxJTIwMTE3OC44NCUy''@;'; put 'put ''MDMuMTIlMjAxMDM0LjU5JTIwMy4xMiUyMDEyMjkuNzUlMjAxOTguNDclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4M0MwQzglMjIlMjBwb2ludHMlM0Ql''@;'; put 'put ''MjIxODEyLjY1JTIwNzgxLjk1JTIwMjA1NC40NSUyMDEwMjMuOTklMjAyMDU0LjQ1JTIwODc5LjU3JTIwMTg4NC44MiUyMDcwOS43OCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmls''@;'; put 'put ''bCUzRCUyMiUyMzdEQzZEQyUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODEzOTUuNTE2OTAxJTJDJTIwMjkyLjIwNjUxOSUyOSUyMHJvdGF0ZSUyOC00NS4wMDAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTM5NS41MTY5MDElMkMlMjAtMjkyLjIwNjUxOSUyOSUyMCUyMiUyMHglM0Ql''@;'; put 'put ''MjIxMzQ0LjQ5MTklMjIlMjB5JTNEJTIyMTA4LjcwMTUxOSUyMiUyMHdpZHRoJTNEJTIyMTAyLjA1JTIyJTIwaGVpZ2h0JTNEJTIyMzY3LjAxJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBm''@;'; put 'put ''aWxsJTNEJTIyJTIzNjhCOEQ1JTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTY0NS4zMTM2MTklMkMlMjA1NDIuMjQ5NzYwJTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNjQ1LjMxMzYxOSUyQyUyMC01NDIuMjQ5NzYwJTI5JTIwJTIyJTIweCUz''@;'; put 'put ''RCUyMjE1OTQuMjgzNjIlMjIlMjB5JTNEJTIyNTA5LjM4NDc2JTIyJTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDZyUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODAuMDAwMDAwJTJDJTIwMy4wMDAwMDAlMjklMjIlMjBzdHJva2UlM0QlMjIlMjMwMDAwMDAlMjIlMjBvcGFjaXR5JTNEJTIyMC4xNSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTAuOTUlMkMwLjEyJTIwTDAuOTUlMkM4NDAuMTIlMjIlMjBpZCUzRCUyMlNoYXBlJTIyJTNFJTNDJTJGcGF0aCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUy''@;'; put 'put ''RmclM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUzQyUyRnN2ZyUzRSk7LS1jbHItbG9naW4tZXJyb3ItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItbG9n''@;'; put 'put ''aW4tZXJyb3ItYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cyk7LS1jbHItbG9naW4tcGFuZWwtbGluZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1sb2dpbi1wYW5lbC1saW5lLW9wYWNpdHk6LjF9LmxvZ2luLXdyYXBwZXJ7ZGlz''@;'; put 'put ''cGxheTpmbGV4O2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDJTNGeG1sJTIwdmVyc2lvbiUzRCUyMjEuMCUyMiUyMGVuY29kaW5nJTNEJTIydXRmLTglMjIlM0YlM0UlMEQlMEElM0MlMjFET0NUWVBFJTIwc3ZnJTIwUFVCTElD''@;'; put 'put ''JTIwJTIyLSUyRiUyRlczQyUyRiUyRkRURCUyMFNWRyUyMDEuMSUyRiUyRkVOJTIyJTIwJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkZHcmFwaGljcyUyRlNWRyUyRjEuMSUyRkRURCUyRnN2ZzExLmR0ZCUyMiUzRSUwRCUwQSUzQ3N2ZyUwRCUwQSUyMCUyMCUyMCUyMCUyMHZlcnNpb24l''@;'; put 'put ''M0QlMjIxLjElMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBpZCUzRCUyMm5vLWFzcGVjdC1yYXRpbyUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweG1sbnMlM0F4bGluayUz''@;'; put 'put ''RCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMTk5OSUyRnhsaW5rJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIweCUzRCUyMjBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHklM0QlMjIwcHglMjIlMEQlMEElMjAlMjAlMjAlMjAlMjBoZWlnaHQlM0QlMjIyMDU1LjU1cHglMjIlMEQlMEEl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjB3aWR0aCUzRCUyMjE0NDBweCUyMiUwRCUwQSUyMCUyMCUyMCUyMCUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDIwNTUuNTUlMjAxNDQwJTIyJTBEJTBBJTIwJTIwJTIwJTIwJTIwcHJlc2VydmVBc3BlY3RSYXRpbyUzRCUyMnhNaW5ZTWluJTIwc2xpY2UlMjIlM0UlMEQl''@;'; put 'put ''MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NkZXNjJTNFTG9naW4lMjBJbWFnZSUzQyUyRmRlc2MlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTIwc3Ryb2tlJTNEJTIybm9uZSUyMiUyMHN0cm9rZS13aWR0aCUzRCUyMjElMjIlMjBm''@;'; put 'put ''aWxsJTNEJTIybm9uZSUyMiUyMGZpbGwtcnVsZSUzRCUyMmV2ZW5vZGQlMjIlMjB0cmFuc2Zvcm0lM0QlMjJ0cmFuc2xhdGUlMjgwLjAwMDAwMCUyQyUyMC00LjAwMDAwMCUyOSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcmVjdCUyMGZpbGwlM0QlMjIlMjNGQUZBRkElMjIlMjB4JTNEJTIyMCUyMiUyMHklM0QlMjI0JTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzMDA3Q0JCJTIyJTIwb3BhY2l0eSUzRCUyMjAuNCUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBtdWx0aXBseSUzQiUyMiUyMHBvaW50cyUzRCUy''@;'; put 'put ''MjExMDguNDMlMjAxNDQzLjYzJTIwMTEwOS4wOCUyMDE0NDMuNjMlMjA0NDMuNDQlMjA3NzcuNzQlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5M0Q4Q0El''@;'; put 'put ''MjIlMjBvcGFjaXR5JTNEJTIyMC42JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG92ZXJsYXklM0IlMjIlMjBwb2ludHMlM0QlMjIwLjc5JTIwMzM0LjkyJTIwNDQzLjQ0JTIwNzc3Ljc0JTIwMC43OSUyMDMzNC40OSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjAyMTEuODglMjAwLjc5JTIwMzI5LjYlMjA1OS42MiUyMDI3MC43NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQl''@;'; put 'put ''MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjE2MC42NSUyMDE2OS43NCUyMDAuNzklMjA5LjczJTIwMC43OSUyMDIxMS44OCUyMDkwLjI3JTIwMzAxLjQ2JTIw''@;'; put 'put ''NTkuNjIlMjAyNzAuNzclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNDREUzRUUlMjIlMjBwb2ludHMlM0QlMjI1MDMuNzclMjAxNDQzLjYzJTIwNjk3LjQ3''@;'; put 'put ''JTIwMTQ0My42MyUyMDgwMy43NCUyMDEzMzcuMzYlMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQ0RFM0VFJTIyJTIwcG9p''@;'; put 'put ''bnRzJTNEJTIyMTU4LjMzJTIwNjkxLjE1JTIwMC43OSUyMDg0OC43MiUyMDAuNzklMjAxNDI3LjQzJTIwNDQ3LjUyJTIwOTgwLjclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZp''@;'; put 'put ''bGwlM0QlMjIlMjNDRURERTAlMjIlMjBwb2ludHMlM0QlMjIyNTcuNzElMjA1OTEuNzUlMjAwLjc5JTIwMzM0LjQ5JTIwMC43OSUyMDUzMy40MiUyMDE1OC4zMyUyMDY5MS4xNSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0E5QzlENSUyMiUyMHBvaW50cyUzRCUyMjAuNzklMjA1MzMuNDIlMjAwLjc5JTIwODQ4LjcyJTIwMTU4LjMzJTIwNjkxLjE1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZENEU3JTIyJTIwcG9pbnRzJTNEJTIyODA2LjQ2JTIwMTE0MC44OSUyMDU0Ni45NCUyMDg4MS4yOCUyMDQ0Ny41MiUyMDk4MC43JTIwNzA2LjkzJTIwMTI0MC40MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQl''@;'; put 'put ''MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhGQzRERiUyMiUyMHBvaW50cyUzRCUyMjQ0Ny41MiUyMDk4MC43JTIwMC43OSUyMDE0MjcuNDMlMjAwLjc5JTIwMTQ0My42MyUyMDUwMy43NyUyMDE0NDMu''@;'; put 'put ''NjMlMjA3MDYuOTMlMjAxMjQwLjQzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNzBDMERDJTIyJTIwcG9pbnRzJTNEJTIyNjA4LjIzJTIwODE5Ljk5JTIw''@;'; put 'put ''NTQ2Ljk0JTIwODgxLjI4JTIwODA2LjQ2JTIwMTE0MC44OSUyMDg2Ny42NCUyMDEwNzkuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUy''@;'; put 'put ''MHBvaW50cyUzRCUyMjQyMC4wNSUyMDQyOS4zOSUyMDMxOS4wMSUyMDUzMC40NSUyMDYwOC4yMyUyMDgxOS45OSUyMDcwOS4zJTIwNzE4LjkxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHln''@;'; put 'put ''b24lMjBmaWxsJTNEJTIyJTIzNjlBRkQ0JTIyJTIwcG9pbnRzJTNEJTIyNzA5LjMlMjA3MTguOTElMjA2MDguMjMlMjA4MTkuOTklMjA4NjcuNjQlMjAxMDc5LjclMjA5NjguNzQlMjA5NzguNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzhFQjVCQyUyMiUyMHBvaW50cyUzRCUyMjYxOS41OSUyMDIyOS44MiUyMDM5My40MiUyMDMuMTIlMjAzMjcuMjclMjAzLjEyJTIwMTYwLjY1JTIwMTY5Ljc0JTIwNDIwLjA1JTIwNDI5LjM5JTIyJTNFJTNDJTJG''@;'; put 'put ''cG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOEVCNUJDJTIyJTIwcG9pbnRzJTNEJTIyMzE5LjAxJTIwNTMwLjQ1JTIwMzE5LjAxJTIwNTMwLjQ1JTIwOTAuMjclMjAzMDEuNDYl''@;'; put 'put ''MjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM3Q0IwQzclMjIlMjBwb2ludHMlM0QlMjIxNjAuNjUlMjAxNjkuNzQlMjA1OS42MiUyMDI3MC43NyUyMDkwLjI3''@;'; put 'put ''JTIwMzAxLjQ2JTIwMzE5LjAxJTIwNTMwLjQ1JTIwNDIwLjA1JTIwNDI5LjM5JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzODRDNEQyJTIyJTIwcG9pbnRz''@;'; put 'put ''JTNEJTIyNTkuNjIlMjAyNzAuNzclMjAwLjc5JTIwMzI5LjYlMjAwLjc5JTIwMzM0LjQ5JTIwMjU3LjcxJTIwNTkxLjc1JTIwMzE5LjAxJTIwNTMwLjQ1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUz''@;'; put 'put ''Q3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0NCMEM3JTIyJTIwcG9pbnRzJTNEJTIyNTM3LjU1JTIwMy4xMiUyMDM5My40MiUyMDMuMTIlMjA2MTkuNTklMjAyMjkuODIlMjA2OTEuNzQlMjAxNTcuNjYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4N0QxREIlMjIlMjBwb2ludHMlM0QlMjI4NDYuMjUlMjAzLjEyJTIwNTM3LjU1JTIwMy4xMiUyMDY5MS43NCUyMDE1Ny42NiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0NERTNFRSUyMiUyMHBvaW50cyUzRCUyMjkwOS44NyUyMDE0NDMuNjMlMjA4NTAuMTklMjAxMzgzLjg3JTIwNzkwLjQzJTIwMTQ0My42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEEl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjMxOS4wMSUyMDUzMC40NSUyMDI1Ny43MSUyMDU5MS43NSUyMDQ0My40NCUyMDc3Ny43NCUyMDU0Ni45NCUyMDg4MS4y''@;'; put 'put ''OCUyMDYwOC4yMyUyMDgxOS45OSUyMDg2Ny42NCUyMDEwNzkuNyUyMDg2Ny42NCUyMDEwNzkuNyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUy''@;'; put 'put ''MiUyMHBvaW50cyUzRCUyMjg2Ny42NCUyMDEwNzkuNyUyMDgwNi40NiUyMDExNDAuODklMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''M0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUyMiUyMHBvaW50cyUzRCUyMjEwNjUuNTclMjAxMDc1LjUyJTIwOTY4Ljc0JTIwOTc4LjYlMjA4NjcuNjQlMjAxMDc5LjclMjA5NjQuNDYlMjAxMTc2LjYzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwcG9pbnRzJTNEJTIyOTY0LjQ2JTIwMTE3Ni42MyUyMDg2Ny42NCUyMDEwNzkuNyUyMDg2Ny42NCUyMDEwNzkuNyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZw''@;'; put 'put ''b2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDEyMzEuMTYlMjAxNDQzLjYzJTIwMTAxMC45MiUyMDEy''@;'; put 'put ''MjMuMTMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMjQwLjA4JTIwNzA3LjIyJTIwMTE2Ny45JTIwNzc5LjQl''@;'; put 'put ''MjAxMjY0LjY4JTIwODc2LjQlMjAxMzM2Ljg3JTIwODA0LjIyJTIwMTI0MC4wOCUyMDcwNy4yMSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdERiUy''@;'; put 'put ''MiUyMHBvaW50cyUzRCUyMjk4MC44MyUyMDQ0Ny4zOSUyMDY5MS43NCUyMDE1Ny42NiUyMDYxOS41OSUyMDIyOS44MiUyMDkwOC42NiUyMDUxOS41NiUyMDk4MC44MyUyMDQ0Ny4zOSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUyMjcwOS4zJTIwNzE4LjkxJTIwOTY4Ljc0JTIwOTc4LjYlMjAxMTY3LjkxJTIwNzc5LjQlMjA5MDguNjYlMjA1MTkuNTUlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2OUFGRDQlMjIlMjBwb2ludHMlM0QlMjI5ODAuODMlMjA0NDcuMzklMjA5MDguNjYlMjA1MTkuNTUlMjAxMTY3LjkxJTIwNzc5LjQlMjAxMjQwLjA4JTIwNzA3LjIxJTIy''@;'; put 'put ''JTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTAzNC41OSUyMDMuMTIlMjA4NDYuMjUlMjAzLjEyJTIwNjkxLjc0JTIw''@;'; put 'put ''MTU3LjY2JTIwOTgwLjgzJTIwNDQ3LjM5JTIwMTIyOS43NSUyMDE5OC40NyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUz''@;'; put 'put ''RCUyMjEyNDAuMDglMjA3MDcuMjElMjAxMzM2Ljg3JTIwODA0LjIyJTIwMTU4Ni4wMSUyMDU1NS4wOCUyMDE0ODkuMTQlMjA0NTguMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUy''@;'; put 'put ''MGZpbGwlM0QlMjIlMjM3MEMwREMlMjIlMjBwb2ludHMlM0QlMjIxMjI5Ljc1JTIwMTk4LjQ3JTIwOTgwLjgzJTIwNDQ3LjM5JTIwMTI0MC4wOCUyMDcwNy4yMSUyMDE0ODkuMTQlMjA0NTguMTIlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxMjkyLjIyJTIwMTMwMi4zOCUyMDE0MzMuMzIlMjAxNDQzLjYzJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxNDkxLjE4JTIwMTEwMy40MiUyMiUzRSUzQyUyRnBvbHln''@;'; put 'put ''b24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0EwREVFQSUyMiUyMHBvaW50cyUzRCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDExMDkuMDglMjAxNDQzLjYz''@;'; put 'put ''JTIwMTE1MC45OCUyMDE0NDMuNjMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzc1QjhDNSUyMiUyMHBvaW50cyUzRCUy''@;'; put 'put ''MjExNTAuOTglMjAxNDQzLjYzJTIwMTIzMS4xNiUyMDE0NDMuNjMlMjAxMTkxLjA5JTIwMTQwMy41MSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzk2QzdE''@;'; put 'put ''RiUyMiUyMHBvaW50cyUzRCUyMjEyOTIuMjIlMjAxMzAyLjM4JTIwMTExMi4wMyUyMDExMjIuMDIlMjAxMDEwLjkyJTIwMTIyMy4xMyUyMDExOTEuMDklMjAxNDAzLjUxJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNkVBNEJDJTIyJTIwcG9pbnRzJTNEJTIyMTE5MS4wOSUyMDE0MDMuNTElMjAxMjMxLjE2JTIwMTQ0My42MyUyMDE0MzMuMzIlMjAxNDQzLjYzJTIwMTI5Mi4yMiUyMDEzMDIuMzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDdDQkIlMjIlMjBvcGFjaXR5JTNEJTIyMC40JTIyJTIwc3R5bGUlM0QlMjJtaXgtYmxlbmQtbW9kZSUzQSUyMG11bHRpcGx5JTNCJTIyJTIwcG9pbnRzJTNEJTIy''@;'; put 'put ''MTM4My4zJTIwODUwLjc1JTIwMTMxMS4xMiUyMDkyMi45NCUyMDE0OTEuMTglMjAxMTAzLjQyJTIwMTU2My4zNyUyMDEwMzEuMjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZp''@;'; put 'put ''bGwlM0QlMjIlMjNCN0NFRDIlMjIlMjBwb2ludHMlM0QlMjIxNDkxLjE4JTIwMTEwMy40MiUyMDE4MzAuNjElMjAxNDQzLjYzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzZFQTRCQyUyMiUyMHBvaW50cyUzRCUyMjE0OTEuMTglMjAxMTAzLjQyJTIwMTgzMC42MSUyMDE0NDMuNjMlMjAxOTc0Ljg2JTIwMTQ0My42MyUyMDE1NjMuMzclMjAxMDMxLjIzJTIyJTNFJTNDJTJGcG9s''@;'; put 'put ''eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQTBERUVBJTIyJTIwcG9pbnRzJTNEJTIyMTgxMi42NSUyMDc4MS45NSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxMzgzLjMlMjA4NTAuNzUl''@;'; put 'put ''MjAxNTYzLjM3JTIwMTAzMS4yMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE1NjMuMzclMjAxMDMxLjIzJTIw''@;'; put 'put ''MTk3NC44NiUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxMDIzLjk5JTIwMTgxMi42NSUyMDc4MS45NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIw''@;'; put 'put ''ZmlsbCUzRCUyMiUyMzc4Q0FENCUyMiUyMHBvaW50cyUzRCUyMjE1NjMuMzclMjAxMDMxLjIzJTIwMTk3NC44NiUyMDE0NDMuNjMlMjAyMDU0LjQ1JTIwMTQ0My42MyUyMDIwNTQuNDUlMjAxMDIzLjk5JTIwMTgxMi42NSUyMDc4MS45NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzkxQzVFMCUyMiUyMHBvaW50cyUzRCUyMjgwMy43NCUyMDEzMzcuMzYlMjA4NTAuMTklMjAxMzgzLjg3JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDkwMy4zMSUyMDEyMzcu''@;'; put 'put ''NzglMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjIxMDY1LjU3JTIwMTA3NS41MiUyMDExMTIuMDMlMjAxMTIyLjAy''@;'; put 'put ''JTIwMTMxMS4xMiUyMDkyMi45NCUyMDEyNjQuNjklMjA4NzYuNCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzc3QjhEOSUyMiUyMHBvaW50cyUzRCUyMjY5''@;'; put 'put ''Ny40NyUyMDE0NDMuNjMlMjA3OTAuNDMlMjAxNDQzLjYzJTIwODUwLjE5JTIwMTM4My44NyUyMDgwMy43NCUyMDEzMzcuMzYlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwl''@;'; put 'put ''M0QlMjIlMjNBMERFRUElMjIlMjBwb2ludHMlM0QlMjI5NjQuNDYlMjAxMTc2LjYzJTIwOTAzLjMxJTIwMTIzNy43OCUyMDk0OS43OCUyMDEyODQuMjclMjAxMDEwLjkyJTIwMTIyMy4xMyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzVEQjVENiUyMiUyMHBvaW50cyUzRCUyMjk2NC40NiUyMDExNzYuNjMlMjA5MDMuMzElMjAxMjM3Ljc4JTIwOTQ5Ljc4JTIwMTI4NC4yNyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIyJTNFJTNDJTJGcG9seWdvbiUzRSUw''@;'; put 'put ''RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzOTZDN0RGJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTAzOC4yNDcyOTclMkMlMjAxMTQ5LjI3NTQyOSUyOSUyMHJvdGF0ZSUyOC00NC45NzAw''@;'; put 'put ''MDAlMjklMjB0cmFuc2xhdGUlMjgtMTAzOC4yNDcyOTclMkMlMjAtMTE0OS4yNzU0MjklMjklMjAlMjIlMjB4JTNEJTIyOTY2Ljc1MjI5NyUyMiUyMHklM0QlMjIxMTE2LjQxMDQzJTIyJTIwd2lkdGglM0QlMjIxNDIuOTklMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3Ql''@;'; put 'put ''M0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzU3QThEMCUyMiUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODEwMzguMjQ3Mjk3JTJDJTIwMTE0OS4yNzU0MjklMjklMjByb3RhdGUlMjgtNDQu''@;'; put 'put ''OTcwMDAwJTI5JTIwdHJhbnNsYXRlJTI4LTEwMzguMjQ3Mjk3JTJDJTIwLTExNDkuMjc1NDI5JTI5JTIwJTIyJTIweCUzRCUyMjk2Ni43NTIyOTclMjIlMjB5JTNEJTIyMTExNi40MTA0MyUyMiUyMHdpZHRoJTNEJTIyMTQyLjk5JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZy''@;'; put 'put ''ZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5NkM3REYlMjIlMjBwb2ludHMlM0QlMjIxMDEwLjkyJTIwMTIyMy4xMyUyMDEwMTAuOTIlMjAxMjIzLjEzJTIwOTY0LjQ2JTIwMTE3Ni42''@;'; put 'put ''MyUyMDk2NC40NiUyMDExNzYuNjMlMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjMwMDAwMDAlMjIlMjBvcGFjaXR5JTNEJTIyMC40MiUyMiUyMHBvaW50cyUz''@;'; put 'put ''RCUyMjEwMTAuOTIlMjAxMjIzLjEzJTIwMTAxMC45MiUyMDEyMjMuMTMlMjA5NjQuNDYlMjAxMTc2LjYzJTIwOTY0LjQ2JTIwMTE3Ni42MyUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29u''@;'; put 'put ''JTIwZmlsbCUzRCUyMiUyMzAwN0NCQiUyMiUyMG9wYWNpdHklM0QlMjIwLjQlMjIlMjBzdHlsZSUzRCUyMm1peC1ibGVuZC1tb2RlJTNBJTIwbXVsdGlwbHklM0IlMjIlMjBwb2ludHMlM0QlMjIxMzM2Ljg3JTIwODA0LjIyJTIwMTI2NC42OSUyMDg3Ni40JTIwMTMxMS4xMiUyMDkyMi45NCUy''@;'; put 'put ''MDEzODMuMyUyMDg1MC43NSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyMzU3QThEMCUyMiUyMHBvaW50cyUzRCUyMjEzMzYuODclMjA4MDQuMjIlMjAxMjY0''@;'; put 'put ''LjY5JTIwODc2LjQlMjAxMzExLjEyJTIwOTIyLjk0JTIwMTM4My4zJTIwODUwLjc1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzOTNEOENBJTIyJTIwb3Bh''@;'; put 'put ''Y2l0eSUzRCUyMjAuNiUyMiUyMHN0eWxlJTNEJTIybWl4LWJsZW5kLW1vZGUlM0ElMjBvdmVybGF5JTNCJTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEzODMuMyUyMDg1MC43NSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9s''@;'; put 'put ''eWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzNURCNUQ2JTIyJTIwcG9pbnRzJTNEJTIyMTMzNi44NyUyMDgwNC4yMiUyMDEzODMuMyUyMDg1MC43NSUyMDE2MzIuNDYlMjA2MDEuNTkl''@;'; put 'put ''MjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzQUZEM0U2JTIyJTIwcG9pbnRzJTNEJTIyMjA1NiUyMDAuMTIlMjAxNjQ1LjQ5''@;'; put 'put ''JTIwMC4xMiUyMDE2NDguNDklMjAzLjEyJTIwMTk0NC4wNyUyMDMuMTIlMjAxNzk2LjIyJTIwMTUwLjk5JTIwMTg5My4xMiUyMDI0Ny45NyUyMDIwNTQuNDUlMjA4Ni42NCUyMDIwNTQuNDUlMjAxNzkuNiUyMDE5MzkuNTglMjAyOTQuNDclMjAyMDU2JTIwNDExJTIyJTNFJTNDJTJGcG9seWdv''@;'; put 'put ''biUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BvbHlnb24lMjBmaWxsJTNEJTIyJTIzN0FCOUQ5JTIyJTIwcG9pbnRzJTNEJTIyMTY0OC40OSUyMDMuMTIlMjAxNzk2LjIyJTIwMTUwLjk5JTIwMTk0NC4wNyUyMDMuMTIlMjIlM0Ul''@;'; put 'put ''M0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM2NkFFRDQlMjIlMjBwb2ludHMlM0QlMjIyMDU0LjQ1JTIwODYuNjQlMjAxODkzLjEyJTIwMjQ3Ljk3JTIwMTkzOS41OCUy''@;'; put 'put ''MDI5NC40NyUyMDIwNTQuNDUlMjAxNzkuNiUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0I3Q0VEMiUyMiUyMHBvaW50cyUzRCUyMjE4ODQuODIlMjA3MDku''@;'; put 'put ''NzglMjAyMDU0LjQ1JTIwODc5LjU3JTIwMjA1NC40NSUyMDU0MC4xNSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUyMiUyMHBvaW50cyUzRCUy''@;'; put 'put ''MjE0ODkuMTQlMjA0NTguMTIlMjAxNDg5LjE0JTIwNDU4LjEyJTIwMTM3MS4xMyUyMDMzOS45OSUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nwb2x5Z29uJTIwZmlsbCUzRCUyMiUyM0FGRDRFNyUy''@;'; put 'put ''MiUyMHBvaW50cyUzRCUyMjE3OTYuMjIlMjAxNTAuOTklMjAxNjQ4LjQ5JTIwMy4xMiUyMDE0MjUuMSUyMDMuMTIlMjAxMzAxLjkxJTIwMTI2LjMxJTIwMTU2MS4zJTIwMzg1Ljk1JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzOTFDNUUwJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTc5OC45NTQwNjYlMkMlMjAzODguNzk4NzgxJTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNzk4Ljk1NDA2NiUyQyUyMC0z''@;'; put 'put ''ODguNzk4NzgxJTI5JTIwJTIyJTIweCUzRCUyMjE2MzIuODI0MDclMjIlMjB5JTNEJTIyMzU1LjkzMzc4MSUyMiUyMHdpZHRoJTNEJTIyMzMyLjI2JTIyJTIwaGVpZ2h0JTNEJTIyNjUuNzMlMjIlM0UlM0MlMkZyZWN0JTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM5MUM1RTAlMjIlMjBwb2ludHMlM0QlMjIxNTg2LjAxJTIwNTU1LjA4JTIwMTYzMi40NiUyMDYwMS41OSUyMDE2MzIuNDYlMjA2MDEuNTklMjAxNTg2LjAxJTIwNTU1LjA4JTIyJTNFJTNDJTJGcG9seWdvbiUzRSUwRCUw''@;'; put 'put ''QSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTU3My43MTE1NzclMkMlMjA0NzAuNjIwMjYzJTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUy''@;'; put 'put ''OSUyMHRyYW5zbGF0ZSUyOC0xNTczLjcxMTU3NyUyQyUyMC00NzAuNjIwMjYzJTI5JTIwJTIyJTIweCUzRCUyMjE1MjIuNjgxNTglMjIlMjB5JTNEJTIyNDAyLjA4NTI2MyUyMiUyMHdpZHRoJTNEJTIyMTAyLjA2JTIyJTIwaGVpZ2h0JTNEJTIyMTM3LjA3JTIyJTNFJTNDJTJGcmVjdCUzRSUw''@;'; put 'put ''RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzQjNFQUVFJTIyJTIwdHJhbnNmb3JtJTNEJTIydHJhbnNsYXRlJTI4MTc1OC42NzY3NTglMkMlMjA2NTUuNzY3MTIwJTI5JTIwcm90YXRlJTI4LTQ0Ljk3MDAw''@;'; put 'put ''MCUyOSUyMHRyYW5zbGF0ZSUyOC0xNzU4LjY3Njc1OCUyQyUyMC02NTUuNzY3MTIwJTI5JTIwJTIyJTIweCUzRCUyMjE3MDcuNjQ2NzYlMjIlMjB5JTNEJTIyNTI4LjI5MjEyJTIyJTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWlnaHQlM0QlMjIyNTQuOTUlMjIlM0UlM0MlMkZyZWN0JTNF''@;'; put 'put ''JTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjNCM0VBRUUlMjIlMjBwb2ludHMlM0QlMjIxMzAxLjkxJTIwMTI2LjMxJTIwMTE3OC44NCUyMDMuMTIlMjAxMDM0LjU5JTIwMy4xMiUyMDEyMjkuNzUl''@;'; put 'put ''MjAxOTguNDclMjIlM0UlM0MlMkZwb2x5Z29uJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDcG9seWdvbiUyMGZpbGwlM0QlMjIlMjM4M0MwQzglMjIlMjBwb2ludHMlM0QlMjIxODEyLjY1JTIwNzgxLjk1JTIwMjA1NC40NSUyMDEw''@;'; put 'put ''MjMuOTklMjAyMDU0LjQ1JTIwODc5LjU3JTIwMTg4NC44MiUyMDcwOS43OCUyMiUzRSUzQyUyRnBvbHlnb24lM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NyZWN0JTIwZmlsbCUzRCUyMiUyMzdEQzZEQyUyMiUyMHRyYW5zZm9ybSUz''@;'; put 'put ''RCUyMnRyYW5zbGF0ZSUyODEzOTUuNTE2OTAxJTJDJTIwMjkyLjIwNjUxOSUyOSUyMHJvdGF0ZSUyOC00NS4wMDAwMDAlMjklMjB0cmFuc2xhdGUlMjgtMTM5NS41MTY5MDElMkMlMjAtMjkyLjIwNjUxOSUyOSUyMCUyMiUyMHglM0QlMjIxMzQ0LjQ5MTklMjIlMjB5JTNEJTIyMTA4LjcwMTUx''@;'; put 'put ''OSUyMiUyMHdpZHRoJTNEJTIyMTAyLjA1JTIyJTIwaGVpZ2h0JTNEJTIyMzY3LjAxJTIyJTNFJTNDJTJGcmVjdCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3JlY3QlMjBmaWxsJTNEJTIyJTIzNjhCOEQ1JTIyJTIwdHJhbnNmb3Jt''@;'; put 'put ''JTNEJTIydHJhbnNsYXRlJTI4MTY0NS4zMTM2MTklMkMlMjA1NDIuMjQ5NzYwJTI5JTIwcm90YXRlJTI4LTQ1LjAwMDAwMCUyOSUyMHRyYW5zbGF0ZSUyOC0xNjQ1LjMxMzYxOSUyQyUyMC01NDIuMjQ5NzYwJTI5JTIwJTIyJTIweCUzRCUyMjE1OTQuMjgzNjIlMjIlMjB5JTNEJTIyNTA5LjM4''@;'; put 'put ''NDc2JTIyJTIwd2lkdGglM0QlMjIxMDIuMDYlMjIlMjBoZWlnaHQlM0QlMjI2NS43MyUyMiUzRSUzQyUyRnJlY3QlM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTND''@;'; put 'put ''ZyUyMHRyYW5zZm9ybSUzRCUyMnRyYW5zbGF0ZSUyODAuMDAwMDAwJTJDJTIwMy4wMDAwMDAlMjklMjIlMjBzdHJva2UlM0QlMjIlMjMwMDAwMDAlMjIlMjBvcGFjaXR5JTNEJTIyMC4xNSUyMiUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUzQ3BhdGglMjBkJTNEJTIyTTAuOTUlMkMwLjEyJTIwTDAuOTUlMkM4NDAuMTIlMjIlMjBpZCUzRCUyMlNoYXBlJTIyJTNFJTNDJTJGcGF0aCUzRSUwRCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQyUyRmclM0UlMEQlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlM0MlMkZnJTNFJTBEJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwRCUwQSUzQyUyRnN2ZyUzRSk7YmFja2dyb3VuZC1zaXplOjEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjoyNS4ycmVtIDA7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS5sb2dpbi13cmFwcGVyIC5sb2dpbntiYWNr''@;'; put 'put ''Z3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItbG9naW4tYmFja2dyb3VuZC1jb2xvciwgI2ZhZmFmYSk7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MS4ycmVtIDNyZW07''@;'; put 'put ''aGVpZ2h0OmF1dG87bWluLWhlaWdodDoxMDB2aDt3aWR0aDoyNS4ycmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAudGl0bGV7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbG9naW4tdGl0bGUtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWxv''@;'; put 'put ''Z2luLXRpdGxlLWZvbnQtd2VpZ2h0LCAyMDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItbG9naW4tdGl0bGUtZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4''@;'; put 'put ''dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6MS42cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjhyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC50aXRsZSAud2VsY29tZXtsaW5lLWhlaWdodDoxLjhyZW19LmxvZ2luLXdy''@;'; put 'put ''YXBwZXIgLmxvZ2luIC50aXRsZSAuaGludHtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1sb2dpbi10aXRsZS1jb2xvciwgYmxhY2spO21hcmdpbi10b3A6MS41cmVtO2ZvbnQtc2l6ZTouN3JlbX0ubG9naW4td3JhcHBlciAubG9naW4gLnRyYWRlbWFya3tjb2xvcjojMDAwO2NvbG9yOnZh''@;'; put 'put ''cigtLWNsci1sb2dpbi10cmFkZW1hcmstY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDoyMDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWxvZ2luLXRyYWRlbWFyay1mb250LXdlaWdodCwgMjAwKTtmb250LWZhbWlseTpNZXRyb3BvbGlzLEF2ZW5pciBOZXh0LEhlbHZldGljYSBOZXVlLEFyaWFs''@;'; put 'put ''LHNhbnMtc2VyaWY7Zm9udC1mYW1pbHk6dmFyKC0tY2xyLWxvZ2luLXRyYWRlbWFyay1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZToxLjRyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFs''@;'; put 'put ''fS5sb2dpbi13cmFwcGVyIC5sb2dpbiAuc3VidGl0bGV7Zm9udC13ZWlnaHQ6MjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1sb2dpbi1zdWJ0aXRsZS1mb250LXdlaWdodCwgMjAwKTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1sb2dpbi1zdWJ0aXRsZS1jb2xvciwgYmxhY2spO2ZvbnQt''@;'; put 'put ''ZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5leHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItbG9naW4tc3VidGl0bGUtZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBz''@;'; put 'put ''YW5zLXNlcmlmKTtmb250LXNpemU6MS4xcmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjhyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3BhZGRpbmc6Mi40cmVtIDAgMH0ubG9naW4t''@;'; put 'put ''d3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5hdXRoLXNvdXJjZSwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC51c2VybmFtZSwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5wYXNzd29yZCwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3Vw''@;'; put 'put ''IC5jaGVja2JveCwubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5jbHItZm9ybS1jb250cm9sLC5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jaGVja2JveC13cmFwcGVye21hcmdpbjouM3JlbSAwIC45cmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAu''@;'; put 'put ''bG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItc2VsZWN0LXdyYXBwZXIsLmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dp''@;'; put 'put ''bi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItc2VsZWN0e3dpZHRoOjEwMCV9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcj4uY2xyLWlucHV0e3dpZHRoOjEwMCV9LmxvZ2luLXdyYXBw''@;'; put 'put ''ZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItaW5wdXQtd3JhcHBlcnt3aWR0aDoxMDAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXI+LmNsci1pbnB1dC1n''@;'; put 'put ''cm91cHttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlO3BhZGRpbmctcmlnaHQ6LjQ4cmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmNsci1jb250cm9sLWNvbnRhaW5lciAuY2xyLWlucHV0LXdyYXBwZXI+LmNsci1pbnB1dC1ncm91cD4uY2xyLWlucHV0e3dpZHRoOmNh''@;'; put 'put ''bGMoMTAwJSAtIDEuMnJlbSl9LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAudG9vbHRpcC12YWxpZGF0aW9ue21hcmdpbi10b3A6LjNyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAudG9vbHRpcC12YWxpZGF0aW9uIC51c2VybmFtZSwubG9naW4td3Jh''@;'; put 'put ''cHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC50b29sdGlwLXZhbGlkYXRpb24gLnBhc3N3b3Jke3dpZHRoOjEwMCU7bWFyZ2luLXRvcDowfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmVycm9ye2Rpc3BsYXk6bm9uZTttYXJnaW46LjNyZW0gMCAwO3BhZGRpbmc6LjQ1cmVt''@;'; put 'put ''IC42cmVtO2JhY2tncm91bmQ6I2MyMWQwMDtiYWNrZ3JvdW5kOnZhcigtLWNsci1sb2dpbi1lcnJvci1iYWNrZ3JvdW5kLWNvbG9yLCAjYzIxZDAwKTtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1sb2dpbi1iYWNrZ3JvdW5kLWNvbG9yLCAjZmFmYWZhKTtib3JkZXItcmFkaXVzOi4x''@;'; put 'put ''NXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1sb2dpbi1lcnJvci1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmVycm9yOmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2Jh''@;'; put 'put ''Y2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHZpZXdCb3glM0QlMjI1JTIwNSUyMDI2JTIwMjYlMjIlMjBwcmVzZXJ2ZUFzcGVjdFJhdGlvJTNEJTIyeE1pZFlNaWQlMjBtZWV0JTIyJTIweG1sbnMlM0Ql''@;'; put 'put ''MjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlM0NkZWZzJTNFJTNDc3R5bGUlM0UuY2xyLWktb3V0bGluZSU3QmZpbGwlM0ElMjNmYWZhZmElM0Il''@;'; put 'put ''N0QlM0MlMkZzdHlsZSUzRSUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0N0aXRsZSUzRWV4Y2xhbWF0aW9uLWNpcmNsZS1saW5lJTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTElMjIlMjBkJTNEJTIyTTE4JTJDNkExMiUyQzEyJTJDMCUyQzElMkMwJTJDMzAlMkMxOCUyQzEyJTJDMTIlMkMwJTJDMCUyQzAlMkMxOCUyQzZabTAlMkMyMkExMCUy''@;'; put 'put ''QzEwJTJDMCUyQzElMkMxJTJDMjglMkMxOCUyQzEwJTJDMTAlMkMwJTJDMCUyQzElMkMxOCUyQzI4WiUyMiUzRSUzQyUyRnBhdGglM0UlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHItaS1vdXRsaW5lJTIwY2xyLWktb3V0bGluZS1wYXRoLTIlMjIlMjBkJTNEJTIyTTE4JTJDMjAuMDdhMS4zJTJD''@;'; put 'put ''MS4zJTJDMCUyQzAlMkMxLTEuMy0xLjN2LTZhMS4zJTJDMS4zJTJDMCUyQzElMkMxJTJDMi42JTJDMHY2QTEuMyUyQzEuMyUyQzAlMkMwJTJDMSUyQzE4JTJDMjAuMDdaJTIyJTNFJTNDJTJGcGF0aCUzRSUzQ2NpcmNsZSUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxp''@;'; put 'put ''bmUtcGF0aC0zJTIyJTIwY3glM0QlMjIxNy45NSUyMiUyMGN5JTNEJTIyMjMuMDIlMjIlMjByJTNEJTIyMS41JTIyJTNFJTNDJTJGY2lyY2xlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGc3ZnJTNFKTttYXJnaW46LjA1cmVtIC4zcmVtIDAgMDtoZWln''@;'; put 'put ''aHQ6LjhyZW07d2lkdGg6LjhyZW19LmxvZ2luLXdyYXBwZXIgLmxvZ2luIC5sb2dpbi1ncm91cCAuZXJyb3IuYWN0aXZle2Rpc3BsYXk6ZmxleH0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvci5hY3RpdmU6YmVmb3Jle2ZsZXg6MCAwIC44cmVtfS5sb2dpbi13cmFw''@;'; put 'put ''cGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLmJ0bnttYXJnaW46My42cmVtIDAgMDttYXgtd2lkdGg6bm9uZX0ubG9naW4td3JhcHBlciAubG9naW4gLmxvZ2luLWdyb3VwIC5lcnJvcisuYnRue21hcmdpbjoxLjJyZW0gMCAwfS5sb2dpbi13cmFwcGVyIC5sb2dpbiAubG9naW4tZ3JvdXAgLnNp''@;'; put 'put ''Z251cHttYXJnaW4tdG9wOi42cmVtO2ZvbnQtc2l6ZTouN3JlbTt0ZXh0LWFsaWduOmNlbnRlcn0ubG9naW4td3JhcHBlciAubG9naW46YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtkaXNwbGF5OmJsb2NrO3dpZHRoOi4wNXJlbTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kOiMw''@;'; put 'put ''MDA7YmFja2dyb3VuZDp2YXIoLS1jbHItbG9naW4tcGFuZWwtbGluZS1jb2xvciwgYmxhY2spO29wYWNpdHk6LjE7b3BhY2l0eTp2YXIoLS1jbHItbG9naW4tcGFuZWwtbGluZS1vcGFjaXR5LCAuMSk7dG9wOjA7cmlnaHQ6LS4xcmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4''@;'; put 'put ''cHgpey5sb2dpbi13cmFwcGVye2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWxvZ2luLWJhY2tncm91bmQtY29sb3IsICNmYWZhZmEpfS5sb2dpbi13cmFwcGVyIC5sb2dpbnt3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjA7cGFk''@;'; put 'put ''ZGluZzoxLjJyZW0gMjAlfS5sb2dpbi13cmFwcGVyIC5sb2dpbjphZnRlcntjb250ZW50Om5vbmV9fUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NTc2cHgpey5sb2dpbi13cmFwcGVyIC5sb2dpbntwYWRkaW5nOjEuMnJlbSAxNSV9fS5tYWluLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7''@;'; put 'put ''ZmxleC1kaXJlY3Rpb246Y29sdW1uO2hlaWdodDoxMDB2aDtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItZ2xvYmFsLWFwcC1iYWNrZ3JvdW5kLCAjZmFmYWZhKX0ubWFpbi1jb250YWluZXIgLmFsZXJ0LmFsZXJ0LWFwcC1sZXZlbHtmbGV4OjAgMCBhdXRvO292ZXJm''@;'; put 'put ''bG93LXg6aGlkZGVufS5tYWluLWNvbnRhaW5lciBoZWFkZXIsLm1haW4tY29udGFpbmVyIC5oZWFkZXJ7ZmxleDowIDAgM3JlbX0ubWFpbi1jb250YWluZXIgLnN1Yi1uYXYsLm1haW4tY29udGFpbmVyIC5zdWJuYXZ7ZmxleDowIDAgMS44cmVtfS5tYWluLWNvbnRhaW5lciAudS1tYWluLWNv''@;'; put 'put ''bnRhaW5lcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXJ7ZGlzcGxheTpmbGV4O2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDouMDVyZW19Lm1haW4tY29udGFp''@;'; put 'put ''bmVyIC5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhe2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3BhZGRpbmc6MS4ycmVtfS5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLmNvbnRlbnQtYXJlYT46''@;'; put 'put ''Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLnNpZGVuYXZ7ZmxleDowIDAgYXV0bztvcmRlcjotMTtvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyIC5jb250ZW50LWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdntmbGV4''@;'; put 'put ''OjAgMCBhdXRvO29yZGVyOi0xfUBtZWRpYSBwcmludHsubWFpbi1jb250YWluZXJ7aGVpZ2h0OmF1dG99fWJvZHkubm8tc2Nyb2xsaW5nLGJvZHlbY2RzLWxheW91dD1uby1zY3JvbGxpbmddLGJvZHkubm8tc2Nyb2xsaW5nIC5tYWluLWNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIgLmNv''@;'; put 'put ''bnRlbnQtYXJlYSxib2R5W2Nkcy1sYXlvdXQ9bm8tc2Nyb2xsaW5nXSAubWFpbi1jb250YWluZXIgLmNvbnRlbnQtY29udGFpbmVyIC5jb250ZW50LWFyZWF7b3ZlcmZsb3c6aGlkZGVufTpyb290ey0tY2xyLW1vZGFsLWNsb3NlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7''@;'; put 'put ''LS1jbHItbW9kYWwtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItbW9kYWwtY29udGVudC1ib3gtc2hhZG93LWNvbG9yOnJnYmEoIDAsIDAsIDAsIC4yICk7LS1jbHItbW9kYWwtYmFja2Ryb3AtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtOTAwKTstLWNs''@;'; put 'put ''ci1tb2RhbC1iYWNrZHJvcC1vcGFjaXR5Oi44NTstLWNsci1tb2RhbC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci1tb2RhbC10aXRsZS1jb2xvcjp2YXIoLS1jbHItaDMtY29sb3IpOy0tY2xyLW1vZGFsLXRpdGxlLWZvbnQtZmFtaWx5OnZhcigt''@;'; put 'put ''LWNsci1oMy1mb250LWZhbWlseSk7LS1jbHItbW9kYWwtdGl0bGUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWgzLWZvbnQtd2VpZ2h0KX0ubW9kYWx7cG9zaXRpb246Zml4ZWQ7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7ei1pbmRleDoxMDUwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVj''@;'; put 'put ''dGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoyLjRyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7Lm1vZGFse3BhZGRpbmc6LjZyZW19fS5tb2RhbC1kaWFsb2d7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRl''@;'; put 'put ''eDoxMDUwO3dpZHRoOjI4LjhyZW07bWF4LXdpZHRoOjEwMCV9Lm1vZGFsLWRpYWxvZy5tb2RhbC1zbXt3aWR0aDoxNC40cmVtfS5tb2RhbC1kaWFsb2cubW9kYWwtbGd7d2lkdGg6NDMuMnJlbX0ubW9kYWwtZGlhbG9nLm1vZGFsLXhse3dpZHRoOjU3LjZyZW19Lm1vZGFsLWRpYWxvZyAubW9k''@;'; put 'put ''YWwtY29udGVudHtwYWRkaW5nOjEuMnJlbTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbW9kYWwtYmctY29sb3IsIHdoaXRlKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1tb2RhbC1ib3JkZXItcmFkaXVzLCAu''@;'; put 'put ''MTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjFyZW0gLjFyZW0gIzAwMDM7Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSB2YXIoLS1jbHItbW9kYWwtY29udGVudC1ib3gtc2hhZG93LWNvbG9yKX0ubW9kYWwtaGVhZGVyLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7Ym9yZGVy''@;'; put 'put ''LWJvdHRvbTpub25lO3BhZGRpbmc6MCAwIDEuMnJlbX0ubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxle2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5tb2RhbC1oZWFkZXIgLm1vZGFsLXRpdGxlLC5tb2RhbC1oZWFkZXIt''@;'; put 'put ''LWFjY2Vzc2libGUgLm1vZGFsLXRpdGxle2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLW1vZGFsLXRpdGxlLWNvbG9yLCBibGFjayk7bWFyZ2luOjA7cGFkZGluZzowIC4xNXJlbX0ubW9kYWwtaGVhZGVyIC5tb2RhbC10aXRsZTpub3QoW2Nkcy10ZXh0XSksLm1vZGFsLWhlYWRlci0tYWNj''@;'; put 'put ''ZXNzaWJsZSAubW9kYWwtdGl0bGU6bm90KFtjZHMtdGV4dF0pe2ZvbnQtc2l6ZToxLjFyZW07Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1tb2RhbC10aXRsZS1mb250LWZhbWls''@;'; put 'put ''eSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItbW9kYWwtdGl0bGUtZm9udC13ZWlnaHQsIDIwMCk7bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFj''@;'; put 'put ''aW5nOm5vcm1hbH0ubW9kYWwtaGVhZGVyIC5jbG9zZSwubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZXttYXJnaW4tdG9wOi0uMDVyZW07bWFyZ2luLXJpZ2h0Oi0uMjVyZW07Zm9udC1zaXplOjEuM3JlbTtsaW5lLWhlaWdodDoxLjJyZW19Lm1vZGFsLWhlYWRlciAuY2xvc2UgY2Rz''@;'; put 'put ''LWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2UgY2RzLWljb24sLm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb24sLm1vZGFsLWhlYWRlci0tYWNjZXNzaWJsZSAuY2xvc2UgY2xyLWljb257ZmlsbDojOGM4YzhjO2ZpbGw6dmFyKC0tY2xyLW1vZGFsLWNsb3NlLWNvbG9y''@;'; put 'put ''LCAjOGM4YzhjKTtoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbX0ubW9kYWwtdGl0bGUtd3JhcHBlcntmbGV4OjF9Lm1vZGFsLXRpdGxlLXdyYXBwZXIgLm1vZGFsLXRpdGxlPmgze21hcmdpbi10b3A6MH0ubW9kYWwtYm9keS13cmFwcGVye21heC1oZWlnaHQ6NzB2aDtvdmVyZmxvdy15OmF1''@;'; put 'put ''dG87b3ZlcmZsb3cteDpoaWRkZW47cGFkZGluZzowIC4xNXJlbX0ubW9kYWwtYm9keS13cmFwcGVyPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9Lm1vZGFsLWJvZHktd3JhcHBlcj46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9Lm1vZGFsLWZvb3RlcntkaXNwbGF5OmZsZXg7anVzdGlm''@;'; put 'put ''eS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MS4ycmVtIDAgMH0ubW9kYWwtZm9vdGVyIC5idG57bWFyZ2luOjAgMCAwIC42cmVtfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpIGFuZCAob3JpZW50YXRpb246bGFuZHNjYXBlKXsubW9kYWwtYm9keS13cmFwcGVye21heC1o''@;'; put 'put ''ZWlnaHQ6NTV2aH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7Lm1vZGFsLWNvbnRlbnR7cGFkZGluZzouNnJlbSAwIC42cmVtIDEuMnJlbX0ubW9kYWwtaGVhZGVyLC5tb2RhbC1oZWFkZXItLWFjY2Vzc2libGV7cGFkZGluZzowIDEuMnJlbSAuNnJlbSAwfS5tb2RhbC1i''@;'; put 'put ''b2R5LXdyYXBwZXJ7bWF4LWhlaWdodDo1NXZofS5tb2RhbC1mb290ZXJ7cGFkZGluZzouNnJlbSAxLjJyZW0gMCAwfX0ubW9kYWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7YmFja2dyb3VuZC1jb2xvcjojMzMzO2JhY2tncm91bmQtY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLW1vZGFsLWJhY2tkcm9wLWNvbG9yLCAjMzMzMzMzKTtvcGFjaXR5Oi44NTtvcGFjaXR5OnZhcigtLWNsci1tb2RhbC1iYWNrZHJvcC1vcGFjaXR5LCAuODUpO3otaW5kZXg6MTA0MH0ubW9kYWwgLm1vZGFsLW5hdntkaXNwbGF5Om5vbmV9OnJvb3R7LS1jbHItaGVhZGVy''@;'; put 'put ''LWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eTouMTU7LS1jbHItaGVhZGVyLW5hdi1vcGFjaXR5Oi42NTstLWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHk6MTstLWNsci1oZWFkZXItMi1iZy1jb2xvcjojNDg1YTZh''@;'; put 'put ''Oy0tY2xyLWhlYWRlci0zLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1zZWNvbmRhcnktYWN0aW9uLTEwMDApOy0tY2xyLWhlYWRlci00LWJnLWNvbG9yOiMyNDdiYWU7LS1jbHItaGVhZGVyLTUtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi04MDApOy0tY2xyLWhlYWRlci02LWJn''@;'; put 'put ''LWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tMTAwMCk7LS1jbHItaGVhZGVyLTctYmctY29sb3I6IzMwNDI1MDstLWNsci1oZWFkZXItOC1iZy1jb2xvcjojMGYxNzFjOy0tY2xyLWhlYWRlci1mb250LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwKTstLWNsci1oZWFkZXIt''@;'; put 'put ''dGl0bGUtY29sb3I6dmFyKC0tY2xyLWhlYWRlci1mb250LWNvbG9yKTstLWNsci1oZWFkZXItdGl0bGUtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLWg1LWZvbnQtd2VpZ2h0KTstLWNsci1oZWFkZXItdGl0bGUtZm9udC1mYW1pbHk6dmFyKC0tY2xyLWg1LWZvbnQtZmFtaWx5KX1oZWFkZXIsLmhl''@;'; put 'put ''YWRlcntkaXNwbGF5OmZsZXg7Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO2JhY2tncm91bmQtY29sb3I6IzMzMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXItYmctY29sb3IsICMzMzMzMzMpO2hlaWdodDozcmVtO3do''@;'; put 'put ''aXRlLXNwYWNlOm5vd3JhcH1oZWFkZXIuaGVhZGVyLTEsLmhlYWRlci5oZWFkZXItMXtiYWNrZ3JvdW5kLWNvbG9yOiMzMzM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLWJnLWNvbG9yLCAjMzMzMzMzKX1oZWFkZXIuaGVhZGVyLTIsLmhlYWRlci5oZWFkZXItMntiYWNrZ3Jv''@;'; put 'put ''dW5kLWNvbG9yOiM0ODVhNmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTItYmctY29sb3IsICM0ODVhNmEpfWhlYWRlci5oZWFkZXItMywuaGVhZGVyLmhlYWRlci0ze2JhY2tncm91bmQtY29sb3I6IzMyMDA0NztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1oZWFkZXIt''@;'; put 'put ''My1iZy1jb2xvciwgIzMyMDA0Nyl9aGVhZGVyLmhlYWRlci00LC5oZWFkZXIuaGVhZGVyLTR7YmFja2dyb3VuZC1jb2xvcjojMjQ3YmFlO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci00LWJnLWNvbG9yLCAjMjQ3YmFlKX1oZWFkZXIuaGVhZGVyLTUsLmhlYWRlci5oZWFkZXIt''@;'; put 'put ''NXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDU2N2E7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTUtYmctY29sb3IsICMwMDU2N2EpfWhlYWRlci5oZWFkZXItNiwuaGVhZGVyLmhlYWRlci02e2JhY2tncm91bmQtY29sb3I6IzAwMzY0ZDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; put 'put ''ci1oZWFkZXItNi1iZy1jb2xvciwgIzAwMzY0ZCl9aGVhZGVyLmhlYWRlci03LC5oZWFkZXIuaGVhZGVyLTd7YmFja2dyb3VuZC1jb2xvcjojMzA0MjUwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWhlYWRlci03LWJnLWNvbG9yLCAjMzA0MjUwKX1oZWFkZXIuaGVhZGVyLTgsLmhlYWRl''@;'; put 'put ''ci5oZWFkZXItOHtiYWNrZ3JvdW5kLWNvbG9yOiMwZjE3MWM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItaGVhZGVyLTgtYmctY29sb3IsICMwZjE3MWMpfWhlYWRlciAuYnJhbmRpbmcsLmhlYWRlciAuYnJhbmRpbmd7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG87bWluLXdpZHRoOjEw''@;'; put 'put ''LjJyZW07cGFkZGluZzowIDEuMnJlbTtoZWlnaHQ6M3JlbX1oZWFkZXIgLmJyYW5kaW5nPmEsaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbmssLmhlYWRlciAuYnJhbmRpbmc+YSwuaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbmt7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50''@;'; put 'put ''ZXI7aGVpZ2h0OjNyZW19aGVhZGVyIC5icmFuZGluZz5hOmhvdmVyLGhlYWRlciAuYnJhbmRpbmc+YTphY3RpdmUsaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6aG92ZXIsaGVhZGVyIC5icmFuZGluZz4ubmF2LWxpbms6YWN0aXZlLC5oZWFkZXIgLmJyYW5kaW5nPmE6aG92ZXIsLmhlYWRl''@;'; put 'put ''ciAuYnJhbmRpbmc+YTphY3RpdmUsLmhlYWRlciAuYnJhbmRpbmc+Lm5hdi1saW5rOmhvdmVyLC5oZWFkZXIgLmJyYW5kaW5nPi5uYXYtbGluazphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmV9aGVhZGVyIC5icmFuZGluZz5hOmZvY3VzLGhlYWRlciAuYnJhbmRpbmc+Lm5hdi1saW5rOmZv''@;'; put 'put ''Y3VzLC5oZWFkZXIgLmJyYW5kaW5nPmE6Zm9jdXMsLmhlYWRlciAuYnJhbmRpbmc+Lm5hdi1saW5rOmZvY3Vze291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19aGVhZGVyIC5icmFuZGluZyAuY2xyLWljb24saGVhZGVyIC5icmFuZGluZyBjZHMtaWNvbixoZWFkZXIgLmJyYW5kaW5nIGNsci1pY29u''@;'; put 'put ''LC5oZWFkZXIgLmJyYW5kaW5nIC5jbHItaWNvbiwuaGVhZGVyIC5icmFuZGluZyBjZHMtaWNvbiwuaGVhZGVyIC5icmFuZGluZyBjbHItaWNvbntmbGV4LWdyb3c6MDtmbGV4LXNocmluazowO2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21hcmdpbi1yaWdodDouNDVyZW19aGVhZGVyIC5i''@;'; put 'put ''cmFuZGluZyAudGl0bGUsLmhlYWRlciAuYnJhbmRpbmcgLnRpdGxle2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci10aXRsZS1jb2xvciwgI2ZhZmFmYSk7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci1oZWFkZXItdGl0bGUtZm9udC13ZWlnaHQsIDQw''@;'; put 'put ''MCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIgTmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1oZWFkZXItdGl0bGUtZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFy''@;'; put 'put ''aWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6LjhyZW07bGV0dGVyLXNwYWNpbmc6LjAxZW07bGluZS1oZWlnaHQ6M3JlbTt0ZXh0LWRlY29yYXRpb246bm9uZX1oZWFkZXIgLnNldHRpbmdzLGhlYWRlciAuaGVhZGVyLW5hdixoZWFkZXIgLmhlYWRlci1hY3Rpb25zLC5oZWFkZXIgLnNldHRp''@;'; put 'put ''bmdzLC5oZWFkZXIgLmhlYWRlci1uYXYsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnN7aGVpZ2h0OjNyZW19aGVhZGVyIC5zZXR0aW5ncyAubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtdGV4dCxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtdGV4dCwuaGVhZGVyIC5zZXR0aW5n''@;'; put 'put ''cyAubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LXRleHQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi10ZXh0e2ZvbnQtd2VpZ2h0OjUwMH1oZWFkZXIgLnNldHRpbmdzIGNsci1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiBjbHItaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rp''@;'; put 'put ''b25zIGNsci1pY29uLC5oZWFkZXIgLnNldHRpbmdzIGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgY2xyLWljb24sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgY2xyLWljb257Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpfWhlYWRl''@;'; put 'put ''ciAuc2V0dGluZ3MgLm5hdi1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWljb24saGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25z''@;'; put 'put ''IC5uYXYtaWNvbntoZWlnaHQ6M3JlbTt3aWR0aDozcmVtfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmssaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmssLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLC5oZWFkZXIgLmhlYWRl''@;'; put 'put ''ci1uYXYgLm5hdi1saW5rLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGlua3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOi45cmVtIDEuMnJlbTtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXIt''@;'; put 'put ''Zm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTouNjU7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1vcGFjaXR5LCAuNjUpfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmhvdmVyLGhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmFjdGl2ZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5h''@;'; put 'put ''di1saW5rOmhvdmVyLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6YWN0aXZlLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmhvdmVyLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmFjdGl2ZSwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6aG92ZXIsLmhl''@;'; put 'put ''YWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmFjdGl2ZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpob3ZlciwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazphY3RpdmUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1hY3Rp''@;'; put 'put ''b25zIC5uYXYtbGluazphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmV9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZW5hYmxlZDpob3ZlcixoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmVuYWJsZWQ6aG92ZXIsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6ZW5hYmxl''@;'; put 'put ''ZDpob3ZlciwuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazplbmFibGVkOmhvdmVyLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazplbmFibGVkOmhvdmVye29wYWNpdHk6MTtvcGFjaXR5OnZhcigt''@;'; put 'put ''LWNsci1oZWFkZXItbmF2LWhvdmVyLW9wYWNpdHksIDEpfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rOmRpc2FibGVkLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6ZGlzYWJsZWQsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbms6ZGlzYWJsZWQsLmhlYWRlciAuc2V0dGlu''@;'; put 'put ''Z3MgLm5hdi1saW5rOmRpc2FibGVkLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmRpc2FibGVkLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9aGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbmsgLmZhLGhlYWRlciAuc2V0''@;'; put 'put ''dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIC5mYSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIC5uYXYtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayAuZmEsaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxp''@;'; put 'put ''bmsgLm5hdi1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayAuZmEsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIC5uYXYtaWNvbiwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayAuZmEsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uLC5oZWFkZXIg''@;'; put 'put ''LmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayAuZmEsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5uYXYtaWNvbntmb250LXNpemU6MS4xcmVtfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIGNkcy1pY29uLGhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIGNsci1pY29uLGhl''@;'; put 'put ''YWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgY2RzLWljb24saGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluayBjbHItaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayBjbHItaWNvbiwuaGVhZGVy''@;'; put 'put ''IC5zZXR0aW5ncyAubmF2LWxpbmsgY2RzLWljb24sLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rIGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIGNkcy1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1hY3Rp''@;'; put 'put ''b25zIC5uYXYtbGluayBjZHMtaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsgY2xyLWljb257cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsLTUwJSk7aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW19aGVhZGVy''@;'; put 'put ''IC5zZXR0aW5ncyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbixoZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29uLGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1uYXYg''@;'; put 'put ''Lm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2xyLWljb24saGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbixoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5u''@;'; put 'put ''YXYtbGluay5uYXYtaWNvbi10ZXh0IGNkcy1pY29uLC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IGNsci1pY29uLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgY2RzLWljb24sLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsu''@;'; put 'put ''bmF2LWljb24tdGV4dCBjbHItaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjZHMtaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCBjbHItaWNvbntwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6YXV0bzts''@;'; put 'put ''ZWZ0OmF1dG87dHJhbnNmb3JtOm5vbmU7bWFyZ2luLWxlZnQ6MS4ycmVtfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsaGVhZGVyIC5oZWFkZXItYWN0''@;'; put 'put ''aW9ucyAubmF2LWxpbmsubmF2LWljb24tdGV4dCAubmF2LXRleHQsLmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5hdi10ZXh0LC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLm5hdi1pY29uLXRleHQgLm5hdi10ZXh0LC5oZWFkZXIgLmhlYWRlci1hY3Rp''@;'; put 'put ''b25zIC5uYXYtbGluay5uYXYtaWNvbi10ZXh0IC5uYXYtdGV4dHttYXJnaW4tbGVmdDowO3BhZGRpbmctbGVmdDouM3JlbX1oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LGhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4''@;'; put 'put ''dCxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5oZWFkZXIgLnNldHRpbmdzIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLmhlYWRlciAuaGVh''@;'; put 'put ''ZGVyLWFjdGlvbnMgLm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHR7ZGlzcGxheTpub25lfWhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLmFjdGl2ZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluay5hY3RpdmUs''@;'; put 'put ''LmhlYWRlciAuc2V0dGluZ3MgLm5hdi1saW5rLmFjdGl2ZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5hY3RpdmUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rLmFjdGl2ZXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjE1KTtvcGFjaXR5OjF9aGVhZGVyIC5z''@;'; put 'put ''ZXR0aW5ncyAubmF2LWxpbms6Zm9jdXMsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmb2N1cyxoZWFkZXIgLmhlYWRlci1hY3Rpb25zIC5uYXYtbGluazpmb2N1cywuaGVhZGVyIC5zZXR0aW5ncyAubmF2LWxpbms6Zm9jdXMsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6Zm9j''@;'; put 'put ''dXMsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnMgLm5hdi1saW5rOmZvY3Vze291dGxpbmUtb2Zmc2V0Oi0uMjVyZW19aGVhZGVyIC5oZWFkZXItbmF2LC5oZWFkZXIgLmhlYWRlci1uYXZ7ZGlzcGxheTpmbGV4O2ZsZXg6MCAwIGF1dG99aGVhZGVyIC5oZWFkZXItbmF2Omxhc3QtY2hpbGQ+Lm5h''@;'; put 'put ''di1saW5rOmxhc3QtY2hpbGQ6YWZ0ZXIsLmhlYWRlciAuaGVhZGVyLW5hdjpsYXN0LWNoaWxkPi5uYXYtbGluazpsYXN0LWNoaWxkOmFmdGVye2NvbnRlbnQ6bm9uZX1oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmZpcnN0LW9mLXR5cGUsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGlu''@;'; put 'put ''azpsYXN0LW9mLXR5cGUsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6Zmlyc3Qtb2YtdHlwZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpsYXN0LW9mLXR5cGV7cG9zaXRpb246cmVsYXRpdmV9aGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJzdC1vZi10eXBlOmJl''@;'; put 'put ''Zm9yZSxoZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rOmxhc3Qtb2YtdHlwZTphZnRlciwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJzdC1vZi10eXBlOmJlZm9yZSwuaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpsYXN0LW9mLXR5cGU6YWZ0ZXJ7ZGlzcGxheTppbmxp''@;'; put 'put ''bmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1kaXZpZGVyLW9wYWNpdHksIC4xNSk7b3BhY2l0eTouMTU7''@;'; put 'put ''aGVpZ2h0OjJyZW07d2lkdGg6LjA1cmVtO3dpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7dG9wOi41cmVtO2xlZnQ6MDtsZWZ0OmF1dG99aGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpmaXJzdC1vZi10eXBlOmJlZm9yZSwuaGVhZGVyIC5oZWFkZXItbmF2''@;'; put 'put ''IC5uYXYtbGluazpmaXJzdC1vZi10eXBlOmJlZm9yZXtsZWZ0OjB9aGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluazpsYXN0LW9mLXR5cGU6YWZ0ZXIsLmhlYWRlciAuaGVhZGVyLW5hdiAubmF2LWxpbms6bGFzdC1vZi10eXBlOmFmdGVye3JpZ2h0OjB9aGVhZGVyIC5oZWFkZXItbmF2IC5u''@;'; put 'put ''YXYtbGluay5hY3RpdmU6Zmlyc3Qtb2YtdHlwZTpiZWZvcmUsaGVhZGVyIC5oZWFkZXItbmF2IC5uYXYtbGluay5hY3RpdmU6bGFzdC1vZi10eXBlOmFmdGVyLC5oZWFkZXIgLmhlYWRlci1uYXYgLm5hdi1saW5rLmFjdGl2ZTpmaXJzdC1vZi10eXBlOmJlZm9yZSwuaGVhZGVyIC5oZWFkZXIt''@;'; put 'put ''bmF2IC5uYXYtbGluay5hY3RpdmU6bGFzdC1vZi10eXBlOmFmdGVye2NvbnRlbnQ6bm9uZX1oZWFkZXIgLnNldHRpbmdzLGhlYWRlciAuaGVhZGVyLWFjdGlvbnMsLmhlYWRlciAuc2V0dGluZ3MsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnN7ZmxleDoxIDAgYXV0bztkaXNwbGF5OmZsZXg7anVz''@;'; put 'put ''dGlmeS1jb250ZW50OmZsZXgtZW5kfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZSwuaGVh''@;'; put 'put ''ZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3duLXRvZ2dsZXtwb3NpdGlvbjpyZWxhdGl2ZTtsaW5lLWhlaWdodDozcmVtO2hlaWdodDozcmVtO291dGxpbmUtb2Zmc2V0Oi0uMjVyZW07Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3Is''@;'; put 'put ''ICNmYWZhZmEpO29wYWNpdHk6LjY1O29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtb3BhY2l0eSwgLjY1KX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlOmVuYWJsZWQ6aG92ZXIsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24+LmRyb3Bkb3du''@;'; put 'put ''LXRvZ2dsZTplbmFibGVkOmhvdmVyLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlOmVuYWJsZWQ6aG92ZXIsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZW5hYmxlZDpob3ZlcntvcGFjaXR5OjE7b3BhY2l0eTp2''@;'; put 'put ''YXIoLS1jbHItaGVhZGVyLW5hdi1ob3Zlci1vcGFjaXR5LCAxKX1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bj4uZHJvcGRvd24tdG9nZ2xlOmRpc2FibGVkLGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsLmhlYWRlciAuc2V0dGlu''@;'; put 'put ''Z3M+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWQsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duPi5kcm9wZG93bi10b2dnbGU6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2''@;'; put 'put ''LWljb24gY2RzLWljb246bm90KFtzaGFwZV49YW5nbGVdKSxoZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2ds''@;'; put 'put ''ZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb246bm90KFtzaGFwZV49YW5nbGVdKSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3du''@;'; put 'put ''LXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uOm5vdChbc2hhcGVePWFuZ2xlXSksLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5k''@;'; put 'put ''cm9wZG93bi10b2dnbGUubmF2LWljb24gY2RzLWljb246bm90KFtzaGFwZV49YW5nbGVdKSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbjpub3QoW3NoYXBlXj1hbmdsZV0pe3Bvc2l0aW9uOmFic29sdXRlO3RvcDo1''@;'; put 'put ''MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7aGVpZ2h0OjEuMXJlbTt3aWR0aDoxLjFyZW07cmlnaHQ6MS4ycmVtfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2RzLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLnNldHRpbmdzPi5k''@;'; put 'put ''cm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRy''@;'; put 'put ''b3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2xyLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjZHMtaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJv''@;'; put 'put ''cGRvd24tdG9nZ2xlLm5hdi1pY29uIGNsci1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24gY2RzLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRy''@;'; put 'put ''b3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiBjbHItaWNvbltzaGFwZV49YW5nbGVde3JpZ2h0Oi42cmVtO3RvcDo0NCV9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9n''@;'; put 'put ''Z2xlLm5hdi10ZXh0LC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0LC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0e3BhZGRpbmc6MCAxLjhyZW0gMCAxLjJyZW19aGVhZGVyIC5zZXR0''@;'; put 'put ''aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCBjZHMtaWNvbltzaGFwZV49YW5nbGVdLGhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2xyLWljb25bc2hhcGVePWFuZ2xlXSxoZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5k''@;'; put 'put ''cm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0saGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCBjbHItaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93''@;'; put 'put ''biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNkcy1pY29uW3NoYXBlXj1hbmdsZV0sLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi10b2dnbGUubmF2LXRleHQgY2xyLWljb25bc2hhcGVePWFuZ2xlXSwuaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRy''@;'; put 'put ''b3Bkb3duLXRvZ2dsZS5uYXYtdGV4dCBjZHMtaWNvbltzaGFwZV49YW5nbGVdLC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93biAuZHJvcGRvd24tdG9nZ2xlLm5hdi10ZXh0IGNsci1pY29uW3NoYXBlXj1hbmdsZV17cmlnaHQ6MS4ycmVtfWhlYWRlciAuc2V0dGluZ3M+LmRyb3Bk''@;'; put 'put ''b3duIC5kcm9wZG93bi10b2dnbGUubmF2LWljb24saGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiwuaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbiwuaGVhZGVyIC5oZWFkZXItYWN0aW9u''@;'; put 'put ''cz4uZHJvcGRvd24gLmRyb3Bkb3duLXRvZ2dsZS5uYXYtaWNvbnt3aWR0aDozcmVtO3BhZGRpbmctcmlnaHQ6MH1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24uYm90dG9tLWxlZnQ+LmRyb3Bk''@;'; put 'put ''b3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24uYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duLmJvdHRvbS1sZWZ0Pi5kcm9wZG93bi1tZW51LC5oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93bi5ib3R0b20t''@;'; put 'put ''cmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duLmJvdHRvbS1sZWZ0Pi5kcm9wZG93bi1tZW51LC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bi5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRy''@;'; put 'put ''b3Bkb3duLmJvdHRvbS1sZWZ0Pi5kcm9wZG93bi1tZW51e3RvcDo4NSV9aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd246bGFzdC1jaGlsZC5ib3R0b20tcmlnaHQ+LmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd246bGFzdC1jaGlsZC5ib3R0b20tcmlnaHQ+''@;'; put 'put ''LmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duOmxhc3QtY2hpbGQuYm90dG9tLXJpZ2h0Pi5kcm9wZG93bi1tZW51LC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9wZG93bjpsYXN0LWNoaWxkLmJvdHRvbS1yaWdodD4uZHJvcGRvd24tbWVudXtyaWdodDouMTVy''@;'; put 'put ''ZW19aGVhZGVyIC5zZXR0aW5ncz4uZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUsaGVhZGVyIC5oZWFkZXItYWN0aW9ucz4uZHJvcGRvd24gLmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIC5kcm9wZG93bi1tZW51LC5oZWFkZXIgLmhlYWRlci1hY3Rpb25zPi5kcm9w''@;'; put 'put ''ZG93biAuZHJvcGRvd24tbWVudXttYXJnaW4tdG9wOi0uMnJlbTtsZWZ0OmF1dG87cmlnaHQ6MH1oZWFkZXIgLnNldHRpbmdzPi5kcm9wZG93biA6bGFzdC1jaGlsZC5kcm9wZG93bi1tZW51LGhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIDpsYXN0LWNoaWxkLmRyb3Bkb3duLW1l''@;'; put 'put ''bnUsLmhlYWRlciAuc2V0dGluZ3M+LmRyb3Bkb3duIDpsYXN0LWNoaWxkLmRyb3Bkb3duLW1lbnUsLmhlYWRlciAuaGVhZGVyLWFjdGlvbnM+LmRyb3Bkb3duIDpsYXN0LWNoaWxkLmRyb3Bkb3duLW1lbnV7bWFyZ2luLXJpZ2h0Oi40cmVtfWhlYWRlciAuc2VhcmNoLWJveCxoZWFkZXIgLnNl''@;'; put 'put ''YXJjaCwuaGVhZGVyIC5zZWFyY2gtYm94LC5oZWFkZXIgLnNlYXJjaHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAwIGF1dG87bWF4LXdpZHRoOjE0LjRyZW07cGFkZGluZzowO2hlaWdodDozcmVtO2NvbG9yOiNmYWZhZmE7Y29sb3I6dmFyKC0tY2xyLWhlYWRlci1m''@;'; put 'put ''b250LWNvbG9yLCAjZmFmYWZhKTtvcGFjaXR5Oi42NTtvcGFjaXR5OnZhcigtLWNsci1oZWFkZXItbmF2LW9wYWNpdHksIC42NSl9aGVhZGVyIC5zZWFyY2gtYm94OmVuYWJsZWQ6aG92ZXIsaGVhZGVyIC5zZWFyY2g6ZW5hYmxlZDpob3ZlciwuaGVhZGVyIC5zZWFyY2gtYm94OmVuYWJsZWQ6''@;'; put 'put ''aG92ZXIsLmhlYWRlciAuc2VhcmNoOmVuYWJsZWQ6aG92ZXJ7b3BhY2l0eToxO29wYWNpdHk6dmFyKC0tY2xyLWhlYWRlci1uYXYtaG92ZXItb3BhY2l0eSwgMSl9aGVhZGVyIC5zZWFyY2gtYm94OmRpc2FibGVkLGhlYWRlciAuc2VhcmNoOmRpc2FibGVkLC5oZWFkZXIgLnNlYXJjaC1ib3g6''@;'; put 'put ''ZGlzYWJsZWQsLmhlYWRlciAuc2VhcmNoOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH1oZWFkZXIgLnNlYXJjaC1ib3g+Lm5hdi1pY29uLGhlYWRlciAuc2VhcmNoPi5uYXYtaWNvbiwuaGVhZGVyIC5zZWFyY2gtYm94Pi5uYXYtaWNvbiwuaGVhZGVyIC5zZWFyY2g+Lm5hdi1pY29ue21h''@;'; put 'put ''cmdpbjowIC4zcmVtIC4xNXJlbSAxLjJyZW19aGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsLGhlYWRlciAuc2VhcmNoIGxhYmVsLC5oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwsLmhlYWRlciAuc2VhcmNoIGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDozcmVtO2xpbmUtaGVpZ2h0''@;'; put 'put ''OjNyZW07cGFkZGluZy1sZWZ0OjEuMnJlbTt0ZXh0LWFsaWduOmNlbnRlcn1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWw6YmVmb3JlLGhlYWRlciAuc2VhcmNoIGxhYmVsOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsOmJlZm9yZSwuaGVhZGVyIC5zZWFyY2ggbGFiZWw6YmVmb3Jl''@;'; put 'put ''e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbnRlbnQ6IiI7YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIw''@;'; put 'put ''MCUyMDM2JTIwMzYlMjIlM0UlM0NkZWZzJTNFJTNDc3R5bGUlM0UuY2xzLTElN0JmaWxsJTNBJTIzZmZmZmZmJTNCJTdEJTNDJTJGc3R5bGUlM0UlM0MlMkZkZWZzJTNFJTNDdGl0bGUlM0VTZWFyY2glM0MlMkZ0aXRsZSUzRSUzQ2clMjBpZCUzRCUyMmljb25zJTIyJTNFJTNDcGF0aCUyMGNs''@;'; put 'put ''YXNzJTNEJTIyY2xzLTElMjIlMjBkJTNEJTIyTTE1JTJDNC4wNUExMC45NSUyQzEwLjk1JTJDMCUyQzElMkMxJTJDNC4wNSUyQzE1JTJDMTElMkMxMSUyQzAlMkMwJTJDMSUyQzE1JTJDNC4wNU0xNSUyQzJBMTMlMkMxMyUyQzAlMkMxJTJDMCUyQzI4JTJDMTUlMkMxMyUyQzEzJTJDMCUyQzAl''@;'; put 'put ''MkMwJTJDMTUlMkMyWiUyMiUyRiUzRSUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwJTIwZCUzRCUyMk0zMy43MSUyQzMyLjI5bC03LjM3LTcuNDItMS40MiUyQzEuNDElMkM3LjM3JTJDNy40MmExJTJDMSUyQzAlMkMxJTJDMCUyQzEuNDItMS40MVolMjIlMkYlM0UlM0MlMkZnJTNF''@;'; put 'put ''JTNDJTJGc3ZnJTNFKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOmNvbnRhaW47Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjFyZW07d2lkdGg6MXJlbTttYXJnaW46MXJlbSAwIDA7dmVydGljYWwtYWxpZ246dG9wfWhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCBp''@;'; put 'put ''bnB1dCxoZWFkZXIgLnNlYXJjaCBsYWJlbCBpbnB1dCwuaGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsIGlucHV0LC5oZWFkZXIgLnNlYXJjaCBsYWJlbCBpbnB1dHtsaW5lLWhlaWdodDoxLjJyZW07bWFyZ2luOi45cmVtIDB9aGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF0saGVh''@;'; put 'put ''ZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XSwuaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF0sLmhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF17Ym9yZGVyOjA7YmFja2dyb3VuZDowIDA7Y29sb3I6I2ZhZmFmYTtjb2xvcjp2YXIoLS1jbHItaGVhZGVyLWZvbnQt''@;'; put 'put ''Y29sb3IsICNmYWZhZmEpO3BhZGRpbmc6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9aGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsaGVhZGVyIC5zZWFyY2gtYm94IGlucHV0W3R5cGU9dGV4dF06YWN0aXZlLGhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF06''@;'; put 'put ''Zm9jdXMsaGVhZGVyIC5zZWFyY2ggaW5wdXRbdHlwZT10ZXh0XTphY3RpdmUsLmhlYWRlciAuc2VhcmNoLWJveCBpbnB1dFt0eXBlPXRleHRdOmZvY3VzLC5oZWFkZXIgLnNlYXJjaC1ib3ggaW5wdXRbdHlwZT10ZXh0XTphY3RpdmUsLmhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF06''@;'; put 'put ''Zm9jdXMsLmhlYWRlciAuc2VhcmNoIGlucHV0W3R5cGU9dGV4dF06YWN0aXZle2JhY2tncm91bmQ6MCAwfWhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaCxoZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94LC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gsLmhlYWRlciAuYnJhbmRpbmcrLnNlYXJj''@;'; put 'put ''aC1ib3h7cG9zaXRpb246cmVsYXRpdmV9aGVhZGVyIC5icmFuZGluZysuc2VhcmNoOmFmdGVyLGhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaC1ib3g6YWZ0ZXIsLmhlYWRlciAuYnJhbmRpbmcrLnNlYXJjaDphZnRlciwuaGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveDphZnRlcntkaXNwbGF5''@;'; put 'put ''OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eSwgLjE1KTtvcGFjaXR5''@;'; put 'put ''Oi4xNTtoZWlnaHQ6MnJlbTt3aWR0aDouMDVyZW07d2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTt0b3A6LjVyZW07bGVmdDowfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpe2hlYWRlciAuc2VhcmNoLWJveCxoZWFkZXIgLnNlYXJjaCwuaGVh''@;'; put 'put ''ZGVyIC5zZWFyY2gtYm94LC5oZWFkZXIgLnNlYXJjaHtmbGV4OjEgMCBhdXRvO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDttYXgtd2lkdGg6bm9uZX1oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwsaGVhZGVyIC5zZWFyY2ggbGFiZWwsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbCwuaGVhZGVy''@;'; put 'put ''IC5zZWFyY2ggbGFiZWx7cGFkZGluZzowO3dpZHRoOjNyZW19aGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsOmJlZm9yZSxoZWFkZXIgLnNlYXJjaCBsYWJlbDpiZWZvcmUsLmhlYWRlciAuc2VhcmNoLWJveCBsYWJlbDpiZWZvcmUsLmhlYWRlciAuc2VhcmNoIGxhYmVsOmJlZm9yZXtsZWZ0OjFy''@;'; put 'put ''ZW19aGVhZGVyIC5zZWFyY2gtYm94IGxhYmVsIGlucHV0LGhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0LC5oZWFkZXIgLnNlYXJjaC1ib3ggbGFiZWwgaW5wdXQsLmhlYWRlciAuc2VhcmNoIGxhYmVsIGlucHV0e2Rpc3BsYXk6bm9uZX1oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2g6YWZ0ZXIs''@;'; put 'put ''aGVhZGVyIC5icmFuZGluZysuc2VhcmNoLWJveDphZnRlciwuaGVhZGVyIC5icmFuZGluZysuc2VhcmNoOmFmdGVyLC5oZWFkZXIgLmJyYW5kaW5nKy5zZWFyY2gtYm94OmFmdGVye2NvbnRlbnQ6bm9uZX1oZWFkZXIgLnNlYXJjaC1ib3grLnNldHRpbmdzLGhlYWRlciAuc2VhcmNoLWJveCsu''@;'; put 'put ''aGVhZGVyLWFjdGlvbnMsaGVhZGVyIC5zZWFyY2grLnNldHRpbmdzLGhlYWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9ucywuaGVhZGVyIC5zZWFyY2gtYm94Ky5zZXR0aW5ncywuaGVhZGVyIC5zZWFyY2gtYm94Ky5oZWFkZXItYWN0aW9ucywuaGVhZGVyIC5zZWFyY2grLnNldHRpbmdzLC5o''@;'; put 'put ''ZWFkZXIgLnNlYXJjaCsuaGVhZGVyLWFjdGlvbnN7cG9zaXRpb246cmVsYXRpdmU7ZmxleDowIDAgYXV0b31oZWFkZXIgLnNlYXJjaC1ib3grLnNldHRpbmdzOmFmdGVyLGhlYWRlciAuc2VhcmNoLWJveCsuaGVhZGVyLWFjdGlvbnM6YWZ0ZXIsaGVhZGVyIC5zZWFyY2grLnNldHRpbmdzOmFm''@;'; put 'put ''dGVyLGhlYWRlciAuc2VhcmNoKy5oZWFkZXItYWN0aW9uczphZnRlciwuaGVhZGVyIC5zZWFyY2gtYm94Ky5zZXR0aW5nczphZnRlciwuaGVhZGVyIC5zZWFyY2gtYm94Ky5oZWFkZXItYWN0aW9uczphZnRlciwuaGVhZGVyIC5zZWFyY2grLnNldHRpbmdzOmFmdGVyLC5oZWFkZXIgLnNlYXJj''@;'; put 'put ''aCsuaGVhZGVyLWFjdGlvbnM6YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtiYWNrZ3JvdW5kOiNmYWZhZmE7YmFja2dyb3VuZDp2YXIoLS1jbHItaGVhZGVyLWZvbnQtY29sb3IsICNmYWZhZmEpO29wYWNpdHk6dmFyKC0tY2xyLWhlYWRl''@;'; put 'put ''ci1kaXZpZGVyLW9wYWNpdHksIC4xNSk7b3BhY2l0eTouMTU7aGVpZ2h0OjJyZW07d2lkdGg6LjA1cmVtO3dpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7dG9wOi41cmVtO2xlZnQ6MH19YS5saW5rLW5vcm1hbDpsaW5re2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFy''@;'; put 'put ''KC0tY2xyLWxpbmstY29sb3IsICMwMDcyYTMpO3RleHQtZGVjb3JhdGlvbjpub25lfWEubGluay1ob3ZlcmVkOmxpbmt7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItbGluay1ob3Zlci1jb2xvciwgIzAwNzJhMyk7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX1hLmxpbmstY2xpY2tl''@;'; put 'put ''ZDpsaW5re2NvbG9yOiM5ZTU3YmM7Y29sb3I6dmFyKC0tY2xyLWxpbmstYWN0aXZlLWNvbG9yLCAjOWU1N2JjKTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfWEubGluay12aXNpdGVkOmxpbmt7Y29sb3I6IzU2NTliODtjb2xvcjp2YXIoLS1jbHItbGluay12aXNpdGVkLWNvbG9yLCAjNTY1''@;'; put 'put ''OWI4KTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubmF2e2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MS44cmVtO2xpc3Qtc3R5bGUtdHlwZTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjttYXJnaW46MDt3aWR0aDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDtib3gtc2hhZG93OjAgLS4wNXJlbSAjY2NjIGlu''@;'; put 'put ''c2V0O2JveC1zaGFkb3c6MCAtLjA1cmVtIDAgdmFyKC0tY2xyLW5hdi1ib3gtc2hhZG93LWNvbG9yLCAjY2NjY2NjKSBpbnNldH0ubmF2IC5uYXYtaXRlbXtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tcmlnaHQ6MS4ycmVtfS5uYXYgLm5hdi1pdGVtLmFjdGl2ZT4ubmF2LWxpbmt7Y29s''@;'; put 'put ''b3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstYWN0aXZlLWNvbG9yLCBibGFjayk7Ym94LXNoYWRvdzowIC0uMDVyZW0gI2NjYyBpbnNldDtib3gtc2hhZG93OjAgLS4wNXJlbSAwIHZhcigtLWNsci1uYXYtYm94LXNoYWRvdy1jb2xvciwgI2NjY2NjYykgaW5zZXR9Lm5hdiAubmF2''@;'; put 'put ''LWxpbmt7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItbmF2LWxpbmstY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLW5hdi1saW5rLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5l''@;'; put 'put ''LWhlaWdodDoxLjhyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzowIC4xNXJlbTtib3gtc2hhZG93Om5vbmV9Lm5hdiAubmF2LWxpbmsuYnRue3RleHQtdHJhbnNmb3JtOm5vbmU7bWFyZ2luOjA7bWFyZ2luLWJvdHRvbTotLjA1cmVtO2JvcmRlci1yYWRpdXM6MH0ubmF2IC5uYXYt''@;'; put 'put ''bGluazpob3ZlciwubmF2IC5uYXYtbGluazpmb2N1cywubmF2IC5uYXYtbGluazphY3RpdmV7Y29sb3I6aW5oZXJpdH0ubmF2IC5uYXYtbGluazpob3ZlciwubmF2IC5uYXYtbGluay5hY3RpdmV7Ym94LXNoYWRvdzowIC0uMTVyZW0gIzAwNzJhMyBpbnNldDtib3gtc2hhZG93OjAgLS4xNXJl''@;'; put 'put ''bSAwIHZhcigtLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3IsICMwMDcyYTMpIGluc2V0O3RyYW5zaXRpb246Ym94LXNoYWRvdyAuMnMgZWFzZS1pbn0ubmF2IC5uYXYtbGluazpob3ZlciwubmF2IC5uYXYtbGluazpmb2N1cywubmF2IC5uYXYtbGluazphY3RpdmUsLm5hdiAubmF2''@;'; put 'put ''LWxpbmsuYWN0aXZle3RleHQtZGVjb3JhdGlvbjpub25lfS5uYXYgLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1uYXYtbGluay1hY3RpdmUtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLW5hdi1saW5rLWFjdGl2''@;'; put 'put ''ZS1mb250LXdlaWdodCwgNDAwKX0ubmF2IC5uYXYtbGluay5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MS4ycmVtfTpyb290ey0tY2xyLXN1Ym5hdi1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1uYXYtYm94LXNoYWRvdy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1''@;'; put 'put ''dHJhbC00MDApfS5zdWItbmF2LC5zdWJuYXZ7ZGlzcGxheTpmbGV4O2JveC1zaGFkb3c6MCAtLjA1cmVtICNjY2MgaW5zZXQ7Ym94LXNoYWRvdzowIC0uMDVyZW0gMCB2YXIoLS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3IsICNjY2NjY2MpIGluc2V0O2p1c3RpZnktY29udGVudDpzcGFjZS1i''@;'; put 'put ''ZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3VibmF2LWJnLWNvbG9yLCB3aGl0ZSk7aGVpZ2h0OjEuOHJlbX0uc3ViLW5hdiAubmF2LC5zdWJuYXYgLm5hdntmbGV4OjEgMSBhdXRvO3BhZGRpbmctbGVm''@;'; put 'put ''dDoxLjJyZW19LnN1Yi1uYXYgYXNpZGUsLnN1Ym5hdiBhc2lkZXtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjEuOHJlbTtwYWRkaW5nOjAgMS4ycmVtfS5zdWItbmF2IGFzaWRlPjpsYXN0LWNoaWxkLC5zdWJuYXYgYXNpZGU+Omxhc3QtY2hp''@;'; put 'put ''bGR7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZy1yaWdodDowfTpyb290ey0tY2xyLXNpZGVuYXYtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItc2lkZW5hdi1ib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCk7LS1jbHItc2lkZW5h''@;'; put 'put ''di1saW5rLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWJnLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2Vs''@;'; put 'put ''ZWN0aW9uLWNvbG9yKTstLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXNpZGVuYXYtaGVhZGVyLWNvbG9yOnZhcigtLWNsci1oNi1jb2xvcik7LS1jbHItc2lkZW5hdi1oZWFkZXItZm9udC13ZWlnaHQ6''@;'; put 'put ''dmFyKC0tY2xyLWg2LWZvbnQtd2VpZ2h0KTstLWNsci1zaWRlbmF2LWhlYWRlci1mb250LWZhbWlseTp2YXIoLS1jbHItaDYtZm9udC1mYW1pbHkpOy0tY2xyLXNpZGVuYXYtY29sb3I6dmFyKC0tY2xyLXAxLWNvbG9yKTstLWNsci1zaWRlbmF2LWZvbnQtd2VpZ2h0OnZhcigtLWNsci1wMS1m''@;'; put 'put ''b250LXdlaWdodCl9LnNpZGVuYXZ7bGluZS1oZWlnaHQ6MS4ycmVtO21heC13aWR0aDoxNS42cmVtO21pbi13aWR0aDoxMC44cmVtO3dpZHRoOjE4JTtib3JkZXItcmlnaHQ6LjA1cmVtIHNvbGlkICNjY2M7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uc2lkZW5hdiAuc2lk''@;'; put 'put ''ZW5hdi1jb250ZW50e2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3cteDpoaWRkZW47cGFkZGluZy1ib3R0b206MS4ycmVtfS5zaWRlbmF2IC5zaWRlbmF2LWNvbnRlbnQgLm5hdi1saW5re2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQt''@;'; put 'put ''cmFkaXVzOnZhcigtLWNsci1zaWRlbmF2LWxpbmstYWN0aXZlLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1ib3JkZXItcmFkaXVzLCAu''@;'; put 'put ''MTVyZW0pO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7dGV4dC1kZWNvcmF0aW9uOm5vbmU7d2lkdGg6MTAwJX0uc2lkZW5hdiAuc2lkZW5hdi1jb250ZW50Pi5uYXYtbGlua3ttYXJnaW46MS4ycmVtIDAgMCAxLjVyZW07cGFkZGluZy1sZWZ0Oi42''@;'; put 'put ''cmVtO2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLXNpZGVuYXYtaGVhZGVyLWNvbG9yLCAjMzMzMzMzKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXNpZGVuYXYtaGVhZGVyLWZvbnQtd2VpZ2h0LCA1MDApO2ZvbnQtZmFtaWx5Ok1ldHJvcG9saXMsQXZlbmlyIE5l''@;'; put 'put ''eHQsSGVsdmV0aWNhIE5ldWUsQXJpYWwsc2Fucy1zZXJpZjtmb250LWZhbWlseTp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXItZm9udC1mYW1pbHksIE1ldHJvcG9saXMsICJBdmVuaXIgTmV4dCIsICJIZWx2ZXRpY2EgTmV1ZSIsIEFyaWFsLCBzYW5zLXNlcmlmKTtmb250LXNpemU6LjdyZW07''@;'; put 'put ''bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbH0uc2lkZW5hdiAuc2lkZW5hdi1jb250ZW50Pi5uYXYtbGluazpob3ZlcntiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWhvdmVyLWNvbG9yLCAjZThlOGU4KX0uc2lkZW5h''@;'; put 'put ''diAuc2lkZW5hdi1jb250ZW50Pi5uYXYtbGluay5hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtYmctY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1hY3RpdmUtY29s''@;'; put 'put ''b3IsIGJsYWNrKX0uc2lkZW5hdiAubmF2LWdyb3Vwe2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXNpZGVuYXYtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItc2lkZW5hdi1mb250LXdlaWdodCwgNDAwKTtmb250LXNpemU6LjdyZW07bGV0''@;'; put 'put ''dGVyLXNwYWNpbmc6bm9ybWFsO21hcmdpbi10b3A6MS4ycmVtO3dpZHRoOjEwMCV9LnNpZGVuYXYgLm5hdi1ncm91cCAubmF2LWxpc3QsLnNpZGVuYXYgLm5hdi1ncm91cCBsYWJlbHtwYWRkaW5nOjAgMCAwIDEuOHJlbTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0''@;'; put 'put ''aDoxMDAlO21hcmdpbjowIC4zcmVtfS5zaWRlbmF2IC5uYXYtZ3JvdXAgLm5hdi1saXN0e2xpc3Qtc3R5bGU6bm9uZTttYXJnaW4tdG9wOjB9LnNpZGVuYXYgLm5hdi1ncm91cCAubmF2LWxpc3QgLm5hdi1saW5re2xpbmUtaGVpZ2h0Oi44cmVtO3BhZGRpbmc6LjJyZW0gMCAuMnJlbSAuNnJl''@;'; put 'put ''bX0uc2lkZW5hdiAubmF2LWdyb3VwIC5uYXYtbGlzdCAubmF2LWxpbms6aG92ZXJ7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLXNpZGVuYXYtbGluay1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LnNpZGVuYXYgLm5hdi1ncm91cCAubmF2LWxpc3QgLm5hdi1saW5rLmFj''@;'; put 'put ''dGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1iZy1jb2xvciwgI2Q4ZTNlOSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWFjdGl2ZS1jb2xvciwgYmxhY2spfS5zaWRlbmF2IC5uYXYtZ3JvdXAg''@;'; put 'put ''bGFiZWx7Y29sb3I6IzMzMztjb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXItY29sb3IsICMzMzMzMzMpO2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItc2lkZW5hdi1oZWFkZXItZm9udC13ZWlnaHQsIDUwMCk7Zm9udC1mYW1pbHk6TWV0cm9wb2xpcyxBdmVuaXIg''@;'; put 'put ''TmV4dCxIZWx2ZXRpY2EgTmV1ZSxBcmlhbCxzYW5zLXNlcmlmO2ZvbnQtZmFtaWx5OnZhcigtLWNsci1zaWRlbmF2LWhlYWRlci1mb250LWZhbWlseSwgTWV0cm9wb2xpcywgIkF2ZW5pciBOZXh0IiwgIkhlbHZldGljYSBOZXVlIiwgQXJpYWwsIHNhbnMtc2VyaWYpO2ZvbnQtc2l6ZTouN3Jl''@;'; put 'put ''bTtsaW5lLWhlaWdodDoxLjJyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsfS5zaWRlbmF2IC5uYXYtZ3JvdXAgaW5wdXRbdHlwZT1jaGVja2JveF17cG9zaXRpb246YWJzb2x1dGU7Y2xpcDpyZWN0KDFweCwxcHgsMXB4LDFweCk7Y2xpcC1wYXRoOmluc2V0KDUwJSk7cGFkZGluZzowO2JvcmRl''@;'; put 'put ''cjowO2hlaWdodDoxcHg7d2lkdGg6MXB4O292ZXJmbG93OmhpZGRlbjt3aGl0ZS1zcGFjZTpub3dyYXA7dG9wOjA7bGVmdDowfS5zaWRlbmF2IC5uYXYtZ3JvdXAgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMrbGFiZWx7b3V0bGluZTojM2I5OWZjIGF1dG8gLjI1cmVtfS5zaWRlbmF2IC5j''@;'; put 'put ''b2xsYXBzaWJsZSBsYWJlbHtwYWRkaW5nOjAgMCAwIDEuM3JlbX0uc2lkZW5hdiAuY29sbGFwc2libGUgbGFiZWw6YWZ0ZXJ7Y29udGVudDoiIjtmbG9hdDpsZWZ0O2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0uNHJlbSkgdHJhbnNsYXRlWSguMzVyZW0p''@;'; put 'put ''O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIw''@;'; put 'put ''JTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyMzlhOWE5YSUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUz''@;'; put 'put ''RSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUz''@;'; put 'put ''RSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MH0uc2lkZW5hdiAuY29sbGFwc2libGUgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZH4ubmF2LWxpc3Qs''@;'; put 'put ''LnNpZGVuYXYgLmNvbGxhcHNpYmxlIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWR+dWx7aGVpZ2h0OjA7ZGlzcGxheTpub25lfS5zaWRlbmF2IC5jb2xsYXBzaWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XX4ubmF2LWxpc3QsLnNpZGVuYXYgLmNvbGxhcHNpYmxlIGlucHV0W3R5cGU9Y2hl''@;'; put 'put ''Y2tib3hdfnVse2hlaWdodDphdXRvfS5zaWRlbmF2IC5jb2xsYXBzaWJsZSBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkfmxhYmVsOmFmdGVye3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKSB0cmFuc2xhdGUoLS4zNXJlbSkgdHJhbnNsYXRlWSgtLjRyZW0pfTpyb290ey0tY2xyLXZlcnRp''@;'; put 'put ''Y2FsLW5hdi1kaXZpZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdmVydGljYWwtbmF2LWljb24tYWN0aXZlLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1''@;'; put 'put ''dHJhbC03MDApOy0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXZlcnRpY2FsLW5hdi1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItdmVydGljYWwtbmF2LXRvZ2dsZS1pY29uLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xy''@;'; put 'put ''LXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpOy0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItdmVydGljYWwt''@;'; put 'put ''bmF2LWhlYWRlci1mb250LXdlaWdodDp2YXIoLS1jbHItcDQtZm9udC13ZWlnaHQpfS5jbHItdmVydGljYWwtbmF2e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47cGFkZGluZy10b3A6LjlyZW07d2lkdGg6MTJyZW07bWluLXdpZHRoOjIuNHJlbTtiYWNrZ3JvdW5kLWNvbG9y''@;'; put 'put ''OiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWJnLWNvbG9yLCAjZThlOGU4KTt3aWxsLWNoYW5nZTp3aWR0aDt0cmFuc2l0aW9uOndpZHRoIC4ycyBlYXNlLWluLW91dH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWRpdmlkZXJ7Ym9yZGVyLWNvbG9yOiNj''@;'; put 'put ''Y2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZpZGVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZp''@;'; put 'put ''ZGVyLWJvcmRlci13aWR0aCwgLjA1cmVtKTttYXJnaW46LjZyZW0gMH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjEgMSBhdXRvO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbn0uY2xyLXZlcnRp''@;'; put 'put ''Y2FsLW5hdiAubmF2LWdyb3Vwe2Rpc3BsYXk6YmxvY2s7ZmxleDowIDAgYXV0bztoZWlnaHQ6YXV0bzttaW4taGVpZ2h0OjEuOHJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5h''@;'; put 'put ''di1pdGVtLWNvbG9yLCAjNjY2NjY2KX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQuYWN0aXZle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91''@;'; put 'put ''bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IsIHdoaXRlKTtib3JkZXItbGVmdDouMTVyZW0gc29saWQgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvcil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50LmFjdGl2ZSAu''@;'; put 'put ''bmF2LWljb257ZmlsbDojMDA3MmEzO2ZpbGw6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pY29uLWFjdGl2ZS1jb2xvciwgIzAwNzJhMyl9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250ZW50OmhvdmVye2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVt''@;'; put 'put ''LWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC1jb250''@;'; put 'put ''ZW50IC5uYXYtbGlua3tmbGV4OjEgMSBhdXRvO3BhZGRpbmctbGVmdDowO21pbi13aWR0aDowfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LWljb257bWFyZ2luLWxlZnQ6MS4ycmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtY29udGVudCAubmF2LXRl''@;'; put 'put ''eHR7cGFkZGluZy1sZWZ0OjEuMnJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1pY29uKy5uYXYtdGV4dHtwYWRkaW5nLWxlZnQ6MH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1saW5rKy5uYXYtZ3JvdXAtdGV4dHtkaXNwbGF5''@;'; put 'put ''Om5vbmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyLC5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdHJpZ2dlcntmbGV4OjAgMCAxLjhyZW07Ym9yZGVyOjA7aGVpZ2h0OjEuOHJlbTtwYWRkaW5nOjA7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRl''@;'; put 'put ''cjtvdXRsaW5lLW9mZnNldDotLjI1cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlciBjZHMtaWNvbltzaGFwZT1hbmdsZS1kb3VibGVdLC5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlciBjbHItaWNvbltzaGFwZT1hbmdsZS1kb3VibGVdLC5jbHItdmVydGljYWwtbmF2IC5u''@;'; put 'put ''YXYtZ3JvdXAtdHJpZ2dlciBjZHMtaWNvbltzaGFwZT1hbmdsZS1kb3VibGVdLC5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdHJpZ2dlciBjbHItaWNvbltzaGFwZT1hbmdsZS1kb3VibGVde2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10b2dnbGUtaWNvbi1j''@;'; put 'put ''b2xvciwgYmxhY2spfS5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2hlaWdodDoxLjhyZW07bWFyZ2luLXRvcDotLjlyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1ncm91cC10''@;'; put 'put ''cmlnZ2Vye2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO2NvbG9yOmluaGVyaXQ7b3ZlcmZsb3c6aGlkZGVuO3RleHQtYWxpZ246bGVmdH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRyaWdnZXIgLm5hdi1ncm91cC10cmlnZ2VyLWljb257ZmxleC1zaHJpbms6MDt3aWR0aDouOHJl''@;'; put 'put ''bTthbGlnbi1zZWxmOmNlbnRlcjttYXJnaW4tcmlnaHQ6LjVyZW07dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0fS5jbHItdmVydGljYWwtbmF2IC5uYXYtdHJpZ2dlci1pY29ue21hcmdpbi1sZWZ0OmF1dG87bWFyZ2luLXJpZ2h0Oi41cmVtO3RyYW5zaXRpb246YWxsIC4ycyBlYXNl''@;'; put 'put ''LWluLW91dH0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LXRyaWdnZXIrLm5hdi1jb250ZW50e2JvcmRlci10b3AtY29sb3I6I2NjYztib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZpZGVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXRvcC1z''@;'; put 'put ''dHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtdHJpZ2dlci1kaXZpZGVyLWJvcmRlci13aWR0aCwgLjA1cmVtKTtwYWRkaW5nLXRvcDouNnJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLXRleHQs''@;'; put 'put ''LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5re2hlaWdodDoxLjhyZW07cGFkZGluZzowIC42cmVtIDAgMS4ycmVtO2xpbmUtaGVpZ2h0OjEuOHJlbTtvdXRsaW5lLW9mZnNldDotLjI1cmVtfS5jbHItdmVydGljYWwtbmF2IC5uYXYtZ3JvdXAtdGV4dCwuY2xyLXZlcnRpY2FsLW5hdiAubmF2''@;'; put 'put ''LXRleHR7ZmxleDoxIDEgYXV0bzt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5re2Rpc3BsYXk6ZmxleDtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1j''@;'; put 'put ''b2xvciwgIzY2NjY2Nil9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1saW5rLmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNs''@;'; put 'put ''ci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWxlZnQ6LjE1cmVtIHNvbGlkIHZhcigtLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3IpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29ue2ZpbGw6IzAwNzJhMztmaWxs''@;'; put 'put ''OnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3IsICMwMDcyYTMpfS5jbHItdmVydGljYWwtbmF2IC5uYXYtbGluazpob3Zlcntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQt''@;'; put 'put ''Y29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaG92ZXItYmctY29sb3IsICNjY2NjY2MpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItdmVydGljYWwtbmF2IC5uYXYtaGVhZGVye3BhZGRpbmc6MCAuNnJlbSAwIDEuMnJlbTtmb250LXNpemU6LjZy''@;'; put 'put ''ZW07Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaGVhZGVyLWZvbnQtd2VpZ2h0LCA2MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxLjhyZW19LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1pY29ue2ZsZXg6MCAwIC44cmVtO2Fs''@;'; put 'put ''aWduLXNlbGY6Y2VudGVyO2hlaWdodDouOHJlbTt3aWR0aDouOHJlbTttaW4taGVpZ2h0Oi44cmVtO21pbi13aWR0aDouOHJlbTttYXJnaW4tcmlnaHQ6LjNyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5jbHItdmVydGljYWwtbmF2IGNsci12ZXJ0aWNhbC1uYXYtZ3JvdXAtY2hpbGRyZW57''@;'; put 'put ''ZGlzcGxheTpibG9ja30uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWJ0bntmbGV4OjEgMSBhdXRvO3BhZGRpbmc6MDttYXJnaW46MDtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lLW9mZnNldDotLjI1cmVtfS5jbHItdmVydGljYWwtbmF2Pi5uYXYtbGluaywu''@;'; put 'put ''Y2xyLXZlcnRpY2FsLW5hdiAubmF2LWNvbnRlbnQ+Lm5hdi1saW5re2ZsZXg6MCAwIDEuOHJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsrLm5hdi1ncm91cC10cmlnZ2Vye2ZsZXg6MCAwIDEuOHJlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWxpbmsrLm5hdi1ncm91cC10cmlnZ2Vy''@;'; put 'put ''IC5uYXYtZ3JvdXAtdGV4dHtkaXNwbGF5Om5vbmV9LmNsci12ZXJ0aWNhbC1uYXYgLm5hdi1pY29uKy5uYXYtZ3JvdXAtdGV4dHtwYWRkaW5nLWxlZnQ6MH0uY2xyLXZlcnRpY2FsLW5hdi5oYXMtbmF2LWdyb3VwcyAubmF2LWxpbmssLmNsci12ZXJ0aWNhbC1uYXYuaGFzLW5hdi1ncm91cHMg''@;'; put 'put ''Lm5hdi1ncm91cCAubmF2LWdyb3VwLXRleHQsLmNsci12ZXJ0aWNhbC1uYXYuaGFzLW5hdi1ncm91cHMgLm5hdi1ncm91cCAubmF2LWdyb3VwLXRyaWdnZXJ7Zm9udC13ZWlnaHQ6NjAwfS5jbHItdmVydGljYWwtbmF2Lmhhcy1uYXYtZ3JvdXBzIC5uYXYtZ3JvdXAtY2hpbGRyZW4gLm5hdi1s''@;'; put 'put ''aW5re2ZvbnQtd2VpZ2h0OjQwMH0uY2xyLXZlcnRpY2FsLW5hdi5oYXMtaWNvbnMgLm5hdi1ncm91cC1jaGlsZHJlbiAubmF2LWxpbmt7cGFkZGluZy1sZWZ0OjIuM3JlbX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3VwLmFjdGl2ZTpub3QoLmlzLWV4cGFuZGVkKSAubmF2LWdyb3VwLWNv''@;'; put 'put ''bnRlbnR7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IsIHdoaXRlKTtib3JkZXItbGVmdDouMTVyZW0gc29saWQgdmFyKC0tY2xyLW5hdi1hY3RpdmUtYm94LXNoYWRvdy1jb2xvcil9LmNsci12ZXJ0''@;'; put 'put ''aWNhbC1uYXYgLm5hdi1ncm91cC5hY3RpdmU6bm90KC5pcy1leHBhbmRlZCkgLm5hdi1ncm91cC1jb250ZW50IC5uYXYtaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItdmVydGljYWwtbmF2LWljb24tYWN0aXZlLWNvbG9yLCAjMDA3MmEzKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2''@;'; put 'put ''LWdyb3VwLWNvbnRlbnQgLm5hdi1saW5rLmFjdGl2ZX4ubmF2LWdyb3VwLXRyaWdnZXJ7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1hY3RpdmUtYmctY29sb3IsIHdoaXRlKX0uY2xyLXZlcnRpY2FsLW5hdiAubmF2LWdyb3Vw''@;'; put 'put ''LWNvbnRlbnQgLm5hdi1saW5rOmhvdmVyfi5uYXYtZ3JvdXAtdHJpZ2dlcntiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWhvdmVyLWJnLWNvbG9yLCAjY2NjY2NjKX0uY2xyLXZlcnRpY2FsLW5hdjpub3QoLmlzLWNvbGxhcHNl''@;'; put 'put ''ZCkgLm5hdi1saW5rKy5uYXYtZ3JvdXAtdHJpZ2dlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFw''@;'; put 'put ''c2Vke3dpZHRoOjIuNHJlbTttaW4td2lkdGg6Mi40cmVtO2N1cnNvcjpwb2ludGVyfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5u''@;'; put 'put ''YXYtdHJpZ2dlcnttYXJnaW4tcmlnaHQ6LjE1cmVtfS5tYWluLWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkIC5uYXYtaWNvbnttYXJnaW46MDtt''@;'; put 'put ''YXJnaW4tbGVmdDouOHJlbX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1saW5re2ZsZXg6''@;'; put 'put ''MCAwIDIuNHJlbX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLWNvbnRlbnQgLm5hdi1saW5rfi5uYXYtZ3JvdXAt''@;'; put 'put ''dHJpZ2dlcntmbGV4OjAgMCAuOHJlbTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0uOHJlbSk7cG9pbnRlci1ldmVudHM6bm9uZX0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGlj''@;'; put 'put ''YWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWxpbmssLm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1ncm91cC10cmlnZ2Vye3Bh''@;'; put 'put ''ZGRpbmc6MH0ubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWdyb3VwLXRyaWdnZXJ7cGFkZGluZy1sZWZ0OjB9Lm1haW4tY29u''@;'; put 'put ''dGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQgLm5hdi1ncm91cC10cmlnZ2VyIGNsci1pY29uLm5hdi1ncm91cC10cmlnZ2VyLWljb257aGVpZ2h0OjEu''@;'; put 'put ''OHJlbTt3aWR0aDouNXJlbTttYXJnaW4tbGVmdDouMTVyZW07bWFyZ2luLXJpZ2h0OjB9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQg''@;'; put 'put ''Lm5hdi1ncm91cC10cmlnZ2VyIGNkcy1pY29uLm5hdi1ncm91cC10cmlnZ2VyLWljb257d2lkdGg6LjVyZW19Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5p''@;'; put 'put ''cy1jb2xsYXBzZWQgLm5hdi1ncm91cCwubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Blbi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZCAubmF2LWxpbmt7ZGlzcGxheTpub25lfS5tYWlu''@;'; put 'put ''LWNvbnRhaW5lcjpub3QoW2NsYXNzKj1vcGVuLW92ZXJmbG93LW1lbnVdKTpub3QoW2NsYXNzKj1vcGVuLWhhbWJ1cmdlci1tZW51XSkgLmNsci12ZXJ0aWNhbC1uYXYuaXMtY29sbGFwc2VkLmhhcy1pY29ucyAubmF2LWdyb3Vwe2Rpc3BsYXk6YmxvY2t9Lm1haW4tY29udGFpbmVyOm5vdChb''@;'; put 'put ''Y2xhc3MqPW9wZW4tb3ZlcmZsb3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQuaGFzLWljb25zIC5uYXYtbGlua3tkaXNwbGF5OmZsZXh9Lm1haW4tY29udGFpbmVyOm5vdChbY2xhc3MqPW9wZW4tb3ZlcmZs''@;'; put 'put ''b3ctbWVudV0pOm5vdChbY2xhc3MqPW9wZW4taGFtYnVyZ2VyLW1lbnVdKSAuY2xyLXZlcnRpY2FsLW5hdi5pcy1jb2xsYXBzZWQuaGFzLWljb25zIC5uYXYtZ3JvdXAtdGV4dCwubWFpbi1jb250YWluZXI6bm90KFtjbGFzcyo9b3Blbi1vdmVyZmxvdy1tZW51XSk6bm90KFtjbGFzcyo9b3Bl''@;'; put 'put ''bi1oYW1idXJnZXItbWVudV0pIC5jbHItdmVydGljYWwtbmF2LmlzLWNvbGxhcHNlZC5oYXMtaWNvbnMgLm5hdi10ZXh0e3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4''@;'; put 'put ''O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uY2xyLXZlcnRpY2FsLW5hdi5uYXYtdHJpZ2dlci0tYm90dG9tIC5uYXYtdHJpZ2dlcntvcmRlcjoyO21hcmdpbi10b3A6MH0uY2xyLXZlcnRpY2FsLW5hdi5uYXYtdHJpZ2dlci0tYm90''@;'; put 'put ''dG9tIC5uYXYtdHJpZ2dlcisubmF2LWNvbnRlbnR7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2Jv''@;'; put 'put ''cmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi10cmlnZ2VyLWRpdmlkZXItYm9yZGVyLXdpZHRoLCAuMDVyZW0pO2JvcmRlci10b3A6bm9uZTtwYWRkaW5nLXRvcDowfTpyb290ey0tY2xyLXNsaWRpbmctcGFuZWwtdGV4''@;'; put 'put ''dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLW5hdi1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItcmVzcG9uc2l2ZS1uYXYtaG92ZXItYmc6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItcmVzcG9uc2l2''@;'; put 'put ''ZS1uYXYtdHJpZ2dlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXJlc3BvbnNpdmUtbmF2LWhhbWJ1cmdlci1ib3JkZXItcmFk''@;'; put 'put ''aXVzOnZhcigtLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJvcmRlci1yYWRpdXMpOy0tY2xyLXJlc3BvbnNpdmUtbmF2LW92ZXJmbG93LWJvcmRlci1yYWRpdXM6LjJyZW07LS1jbHItcmVzcG9uc2l2ZS1uYXYtaGVhZGVyLWJhY2tkcm9wLWJnLWNvbG9yOnZhcigtLWNsci1jb2xvci1u''@;'; put 'put ''ZXV0cmFsLTEwMDApOy0tY2xyLXJlc3BvbnNpdmUtbmF2LWhlYWRlci1iYWNrZHJvcC1vcGFjaXR5Oi44NX0uY2xyLW5hdi1jbG9zZXttYXJnaW46Ljc1cmVtOy0tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKX0uY2xyLW5hdi1jbG9zZTpob3ZlciwuY2xyLW5hdi1jbG9zZTpm''@;'; put 'put ''b2N1c3stLWNvbG9yOnZhcigtLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJnLWNvbG9yKX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcntkaXNwbGF5Om5vbmV9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuLC5oZWFkZXItaGFtYnVy''@;'; put 'put ''Z2VyLXRyaWdnZXI+c3BhbjpiZWZvcmUsLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlPnNwYW4sLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjFy''@;'; put 'put ''ZW07d2lkdGg6MS4ycmVtO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItcmVzcG9uc2l2ZS1uYXYtaGFtYnVyZ2VyLWJv''@;'; put 'put ''cmRlci1yYWRpdXMsIC4xNXJlbSl9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuLC5jbHItbmF2LWNsb3NlPnNwYW57cG9zaXRpb246cmVsYXRpdmU7dmVydGljYWwtYWxpZ246bWlkZGxlfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXI+c3BhbjpiZWZvcmUsLmhlYWRlci1oYW1idXJn''@;'; put 'put ''ZXItdHJpZ2dlcj5zcGFuOmFmdGVyLC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3JlLC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjB9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcj5zcGFuOmJlZm9yZSwuY2xyLW5hdi1jbG9zZT5z''@;'; put 'put ''cGFuOmJlZm9yZXt0b3A6LS4zNXJlbX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntib3R0b206LS4zNXJlbX0uaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyLmFjdGl2ZT5zcGFuLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFu''@;'; put 'put ''e2JhY2tncm91bmQ6MCAwfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIuYWN0aXZlPnNwYW46YmVmb3JlLC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIuYWN0aXZlPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YmVmb3JlLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFu''@;'; put 'put ''OmFmdGVye2xlZnQ6LjE1cmVtO3RyYW5zZm9ybS1vcmlnaW46OSU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9LmhlYWRlci1oYW1idXJnZXItdHJpZ2dlci5hY3RpdmU+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUo''@;'; put 'put ''NDVkZWcpfS5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIuYWN0aXZlPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFuLC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5z''@;'; put 'put ''cGFuOmJlZm9yZSwuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZT5zcGFuLC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3JlLC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7aGVpZ2h0Oi4ycmVtO3dpZHRoOi4ycmVt''@;'; put 'put ''O2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1yZXNwb25zaXZlLW5hdi10cmlnZ2VyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLXJhZGl1czouMnJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1yZXNwb25zaXZlLW5hdi1vdmVyZmxvdy1ib3JkZXItcmFkaXVzLCAuMnJl''@;'; put 'put ''bSl9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW4sLmNsci1uYXYtY2xvc2U+c3Bhbntwb3NpdGlvbjpyZWxhdGl2ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YmVmb3JlLC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlcj5zcGFuOmFmdGVy''@;'; put 'put ''LC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3JlLC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjB9LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YmVmb3JlLC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3Jle3RvcDotLjRyZW19''@;'; put 'put ''LmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2U+c3BhbjphZnRlcntib3R0b206LS40cmVtfS5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbiwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbntiYWNrZ3JvdW5kOjAgMH0uaGVhZGVyLW92''@;'; put 'put ''ZXJmbG93LXRyaWdnZXIuYWN0aXZlPnNwYW46YmVmb3JlLC5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlci5hY3RpdmU+c3BhbjphZnRlciwuY2xyLW5hdi1jbG9zZS5hY3RpdmU+c3BhbjpiZWZvcmUsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YWZ0ZXJ7aGVpZ2h0Oi4xcmVtO3dpZHRoOjEu''@;'; put 'put ''MnJlbTtsZWZ0Oi0uM3JlbTt0cmFuc2Zvcm0tb3JpZ2luOi0zJTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIuYWN0aXZlPnNwYW46YmVmb3JlLC5jbHItbmF2LWNsb3NlLmFjdGl2ZT5zcGFuOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDQ1''@;'; put 'put ''ZGVnKX0uaGVhZGVyLW92ZXJmbG93LXRyaWdnZXIuYWN0aXZlPnNwYW46YWZ0ZXIsLmNsci1uYXYtY2xvc2UuYWN0aXZlPnNwYW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfUBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NzY4cHgpey5tYWluLWNvbnRhaW5lciAuaGVhZGVy''@;'; put 'put ''LWhhbWJ1cmdlci10cmlnZ2VyLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7Ym9yZGVyOjA7YmFja2dyb3VuZDowIDA7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjEuMnJlbTtoZWlnaHQ6M3JlbTt3aWR0aDozcmVtO3BhZGRp''@;'; put 'put ''bmc6MCAwIC4ycmVtO3RleHQtYWxpZ246Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjojZmFmYWZhO2NvbG9yOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTouNjU7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1vcGFjaXR5LCAuNjUpfS5t''@;'; put 'put ''YWluLWNvbnRhaW5lciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyOmZvY3VzLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI6Zm9jdXN7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcjplbmFibGVk''@;'; put 'put ''OmhvdmVyLC5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI6ZW5hYmxlZDpob3ZlcntvcGFjaXR5OjE7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLW5hdi1ob3Zlci1vcGFjaXR5LCAxKX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1oYW1idXJnZXItdHJpZ2dlcjpkaXNh''@;'; put 'put ''YmxlZCwubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2VyOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0ubWFpbi1jb250YWluZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1j''@;'; put 'put ''b250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuc2lkZW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0''@;'; put 'put ''aW9uOmZpeGVkO3RvcDowO3JpZ2h0OmF1dG87Ym90dG9tOjA7bGVmdDowO2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1uYXYtYmFja2dyb3VuZC1jb2xvciwgI2U4ZThlOCk7ei1pbmRleDoxMDM5O2hlaWdodDoxMDB2aDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xOHJl''@;'; put 'put ''bSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lm1haW4tY29udGFpbmVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1j''@;'; put 'put ''b250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2JvdHRvbTowO2xlZnQ6YXV0''@;'; put 'put ''bztiYWNrZ3JvdW5kOiNlOGU4ZTg7YmFja2dyb3VuZDp2YXIoLS1jbHItbmF2LWJhY2tncm91bmQtY29sb3IsICNlOGU4ZTgpO3otaW5kZXg6MTAzOTtoZWlnaHQ6MTAwdmg7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxOHJlbSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lm1haW4tY29u''@;'; put 'put ''dGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMntvdmVyZmxvdzppbmhlcml0fS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYu''@;'; put 'put ''Y2xyLW5hdi1sZXZlbC0xIC5uYXYsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSBhc2lkZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGUsLm1haW4t''@;'; put 'put ''Y29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGV7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2h9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZl''@;'; put 'put ''bC0xIGFzaWRlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgYXNpZGUsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIGFzaWRlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgYXNpZGV7anVzdGlmeS1jb250ZW50''@;'; put 'put ''OmNlbnRlcjt3aWR0aDoxMDAlfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiwubWFpbi1jb250''@;'; put 'put ''YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXZ7cGFkZGluZy1sZWZ0OjB9Lm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1pdGVtLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWl0ZW0sLm1h''@;'; put 'put ''aW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1pdGVtLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWl0ZW17aGVpZ2h0OjEuOHJlbTttYXJnaW4tcmlnaHQ6MH0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHIt''@;'; put 'put ''bmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmssLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluaywubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmssLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNs''@;'; put 'put ''ci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGlua3twYWRkaW5nOjAgLjZyZW0gMCAxLjJyZW07d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czouMTVyZW07''@;'; put 'put ''Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2NvbG9y''@;'; put 'put ''OiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAu''@;'; put 'put ''bmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1j''@;'; put 'put ''bHItdmVydGljYWwtbmF2LWl0ZW0tYWN0aXZlLWNvbG9yLCAjNjY2NjY2KTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdmVydGljYWwtbmF2LWFjdGl2ZS1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci1sZWZ0Oi4xNXJlbSBzb2xpZCB2YXIoLS1jbHIt''@;'; put 'put ''bmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0ubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTEgLm5hdiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSAu''@;'; put 'put ''bmF2LWljb24sLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29ue2ZpbGw6IzAwNzJh''@;'; put 'put ''MztmaWxsOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaWNvbi1hY3RpdmUtY29sb3IsICMwMDcyYTMpfS5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYg''@;'; put 'put ''Lm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2IC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rOmhvdmVye2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xy''@;'; put 'put ''LXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1haW4tY29udGFpbmVy''@;'; put 'put ''IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2IC5uYXYtbGluazpo''@;'; put 'put ''b3ZlciwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Ym5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZl''@;'; put 'put ''bC0yIC5uYXYgLm5hdi1saW5rLmFjdGl2ZSwubWFpbi1jb250YWluZXIgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdiAubmF2LWxpbmsuYWN0aXZle2JveC1zaGFkb3c6bm9u''@;'; put 'put ''ZX0ubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluazpob3ZlciwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxp''@;'; put 'put ''bms6aG92ZXIsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZle2NvbG9yOmluaGVyaXQ7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LWhvdmVyLWJnLCB3aGl0ZSl9Lm1haW4tY29udGFpbmVy''@;'; put 'put ''IC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwt''@;'; put 'put ''Mntib3JkZXItcmlnaHQ6bm9uZX0ubWFpbi1jb250YWluZXIgLmhlYWRlci1vdmVyZmxvdy10cmlnZ2Vye3Bvc2l0aW9uOnJlbGF0aXZlfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtkaXNwbGF5Omlu''@;'; put 'put ''bGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2JhY2tncm91bmQ6I2ZhZmFmYTtiYWNrZ3JvdW5kOnZhcigtLWNsci1oZWFkZXItZm9udC1jb2xvciwgI2ZhZmFmYSk7b3BhY2l0eTouMTU7b3BhY2l0eTp2YXIoLS1jbHItaGVhZGVyLWRpdmlkZXItb3BhY2l0eSwgLjE1''@;'; put 'put ''KTtvcGFjaXR5Oi4xNTtoZWlnaHQ6MnJlbTt3aWR0aDouMDVyZW07d2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTt0b3A6LjVyZW07bGVmdDowfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5icmFuZGluZ3ttYXgtd2lkdGg6MTJyZW07bWluLXdpZHRoOjA7b3Zl''@;'; put 'put ''cmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5ne3BhZGRpbmctbGVmdDowfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyIC5oZWFkZXItaGFtYnVyZ2VyLXRyaWdnZXIrLmJyYW5kaW5nIC5jbHItaWNvbiwubWFpbi1j''@;'; put 'put ''b250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFuZGluZyAubG9nbywubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1cmdlci10cmlnZ2VyKy5icmFuZGluZyBjZHMtaWNvbiwubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLWhhbWJ1''@;'; put 'put ''cmdlci10cmlnZ2VyKy5icmFuZGluZyBjbHItaWNvbntkaXNwbGF5Om5vbmV9Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmJyYW5kaW5nKy5oZWFkZXItb3ZlcmZsb3ctdHJpZ2dlciwubWFpbi1jb250YWluZXIgLmhlYWRlciAuaGVhZGVyLW5hdisuaGVhZGVyLW92ZXJmbG93LXRyaWdnZXJ7''@;'; put 'put ''bWFyZ2luLWxlZnQ6YXV0b30ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItYmFja2Ryb3AsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7dG9wOjA7Ym90dG9t''@;'; put 'put ''OjA7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZDojMDAwO2JhY2tncm91bmQ6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LWhlYWRlci1iYWNrZHJvcC1iZy1jb2xvciwgYmxhY2spO29wYWNpdHk6Ljg1O29wYWNpdHk6dmFyKC0tY2xyLXJlc3BvbnNpdmUtbmF2LWhlYWRlci1iYWNrZHJvcC1v''@;'; put 'put ''cGFjaXR5LCAuODUpO2N1cnNvcjpwb2ludGVyO3otaW5kZXg6MTAzOH0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmssLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRl''@;'; put 'put ''ciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAu''@;'; put 'put ''aGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5re2ZsZXg6MCAwIGF1dG87b3BhY2l0eToxO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVy''@;'; put 'put ''IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAuZmEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2Vy''@;'; put 'put ''LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLmZhLC5tYWluLWNvbnRhaW5lci5v''@;'; put 'put ''cGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAuZmEsLm1haW4t''@;'; put 'put ''Y29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5r''@;'; put 'put ''IC5mYXtkaXNwbGF5Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2''@;'; put 'put ''LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rIC5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5o''@;'; put 'put ''ZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LXRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc2xpZGluZy1wYW5lbC10ZXh0LWNvbG9yLCAjNjY2NjY2KTtsaW5lLWhlaWdodDoxLjJyZW07cGFkZGluZzou''@;'; put 'put ''M3JlbSAwIC4zcmVtIDEuMnJlbTt3aGl0ZS1zcGFjZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5tYWluLWNv''@;'; put 'put ''bnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluayAubmF2LWljb24rLm5hdi10ZXh0LC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEg''@;'; put 'put ''Lm5hdi1saW5rIC5uYXYtaWNvbisubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsgLm5hdi1pY29uKy5uYXYtdGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30ubWFpbi1jb250YWlu''@;'; put 'put ''ZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmUs''@;'; put 'put ''Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbmsuYWN0aXZlLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1s''@;'; put 'put ''aW5rLmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtaXRlbS1hY3RpdmUtY29sb3IsICM2NjY2NjYpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci12ZXJ0aWNhbC1uYXYtYWN0aXZlLWJnLWNvbG9yLCB3aGl0ZSk7''@;'; put 'put ''Ym9yZGVyLWxlZnQ6LjE1cmVtIHNvbGlkIHZhcigtLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3IpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0xIC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29uLC5t''@;'; put 'put ''YWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmUgLm5hdi1pY29uLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVs''@;'; put 'put ''LTEgLm5hdi1saW5rLmFjdGl2ZSAubmF2LWljb24sLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiAubmF2LWxpbmsuYWN0aXZlIC5uYXYtaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItdmVydGljYWwt''@;'; put 'put ''bmF2LWljb24tYWN0aXZlLWNvbG9yLCAjMDA3MmEzKX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSAubmF2LWxpbms6aG92ZXIsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAu''@;'; put 'put ''aGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rOmhvdmVyLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUg''@;'; put 'put ''LmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rOmhvdmVye2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXZlcnRpY2FsLW5hdi1pdGVtLWFjdGl2ZS1jb2xvciwgIzY2NjY2Nik7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0t''@;'; put 'put ''Y2xyLXZlcnRpY2FsLW5hdi1ob3Zlci1iZy1jb2xvciwgI2NjY2NjYyk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLm5hdi1saW5rLmFjdGl2ZT4ubmF2LXRleHQsLm1h''@;'; put 'put ''aW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIgLm5hdi1saW5rLmFjdGl2ZT4ubmF2LXRleHQsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyIC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwt''@;'; put 'put ''MSAubmF2LWxpbmsuYWN0aXZlPi5uYXYtdGV4dCwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXIgLmhlYWRlci1uYXYuY2xyLW5hdi1sZXZlbC0yIC5uYXYtbGluay5hY3RpdmU+Lm5hdi10ZXh0e2NvbG9yOmluaGVyaXR9Lm1haW4tY29udGFpbmVyLm9wZW4taGFt''@;'; put 'put ''YnVyZ2VyLW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2VyLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYgLm5hdi10cmlnZ2Vye2Rpc3BsYXk6bm9uZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVy''@;'; put 'put ''IC5icmFuZGluZ3twb3NpdGlvbjpmaXhlZDt0b3A6MDtsZWZ0OjA7b3ZlcmZsb3c6aGlkZGVuO3dpZHRoOjE4cmVtO21heC13aWR0aDoxOHJlbTt6LWluZGV4OjEwNDA7cGFkZGluZy1sZWZ0OjEuMnJlbX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFu''@;'; put 'put ''ZGluZz4ubmF2LWxpbmt7b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIC5jbHItaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyAubG9nbywubWFpbi1jb250''@;'; put 'put ''YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyBjZHMtaWNvbiwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyBjbHItaWNvbntkaXNwbGF5OmlubGluZS1ibG9ja30ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJn''@;'; put 'put ''ZXItbWVudSAuaGVhZGVyIC5icmFuZGluZyBjZHMtaWNvbltzaGFwZT12bS1idWddLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXIgLmJyYW5kaW5nIGNsci1pY29uW3NoYXBlPXZtLWJ1Z10sLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhl''@;'; put 'put ''YWRlciAuYnJhbmRpbmcgLmNsci12bXctbG9nb3tiYWNrZ3JvdW5kLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLXJhZGl1czouMTVyZW19Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmcgLnRpdGxle2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXNs''@;'; put 'put ''aWRpbmctcGFuZWwtdGV4dC1jb2xvciwgIzY2NjY2Nik7dGV4dC1vdmVyZmxvdzplbGxpcHNpcztvdmVyZmxvdzpoaWRkZW59Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2V7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6YXV0bztsZWZ0OjA7ei1p''@;'; put 'put ''bmRleDoxMDM5O3RyYW5zZm9ybTp0cmFuc2xhdGUoMTguNnJlbSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U6YWZ0ZXJ7Y29udGVudDpub25lfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1''@;'; put 'put ''cmdlci1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW57YmFja2dyb3VuZDowIDB9Lm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLmNsci1uYXYtY2xvc2U+c3Bhbjph''@;'; put 'put ''ZnRlcntsZWZ0Oi4xNXJlbTt0cmFuc2Zvcm0tb3JpZ2luOjklO3RyYW5zaXRpb246dHJhbnNmb3JtIC42cyBlYXNlfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpfS5tYWluLWNvbnRh''@;'; put 'put ''aW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1i''@;'; put 'put ''dXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNv''@;'; put 'put ''bnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtwYWRkaW5nLXRvcDo0LjJyZW07dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXIt''@;'; put 'put ''bWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEgLnNpZGVuYXYtY29udGVudCwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5z''@;'; put 'put ''dWItbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50LC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGlj''@;'; put 'put ''YWwtbmF2LmNsci1uYXYtbGV2ZWwtMSAuc2lkZW5hdi1jb250ZW50e3BhZGRpbmctYm90dG9tOjEuMnJlbX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJu''@;'; put 'put ''YXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJm''@;'; put 'put ''bG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4t''@;'; put 'put ''Y29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWItbmF2LmNsci1uYXYtbGV2ZWwtMntwYWRkaW5nLXRvcDoxLjJyZW19Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVu''@;'; put 'put ''dSAuY2xyLW5hdi1jbG9zZXtwb3NpdGlvbjpmaXhlZDt0b3A6MDtyaWdodDowO2xlZnQ6YXV0bzt6LWluZGV4OjEwMzk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMTguNnJlbSk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAu''@;'; put 'put ''Y2xyLW5hdi1jbG9zZTphZnRlcntjb250ZW50Om5vbmV9Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFue2JhY2tncm91bmQ6MCAwfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2U+c3BhbjpiZWZvcmUs''@;'; put 'put ''Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmFmdGVye2hlaWdodDouMXJlbTt3aWR0aDoxLjJyZW07bGVmdDotLjNyZW07dHJhbnNmb3JtLW9yaWdpbjotMyU7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjZzIGVhc2V9Lm1haW4tY29udGFpbmVy''@;'; put 'put ''Lm9wZW4tb3ZlcmZsb3ctbWVudSAuY2xyLW5hdi1jbG9zZT5zcGFuOmJlZm9yZXt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlPnNwYW46YWZ0ZXJ7dHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpfS5tYWluLWNv''@;'; put 'put ''bnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuc3ViLW5hdi5jbHIt''@;'; put 'put ''bmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMXtvdmVyZmxvdzppbmhlcml0O3dpZHRo''@;'; put 'put ''OjE4cmVtO21heC13aWR0aDoxOHJlbX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5oZWFkZXItbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVu''@;'; put 'put ''LW92ZXJmbG93LW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLnNpZGVuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZl''@;'; put 'put ''bC0ye3dpZHRoOjE4cmVtO21heC13aWR0aDoxOHJlbX19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7Lm1haW4tY29udGFpbmVyIC5oZWFkZXIgLmJyYW5kaW5ne21heC13aWR0aDo3LjJyZW07bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVufS5tYWluLWNvbnRhaW5lciAu''@;'; put 'put ''aGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lciAuc3ViLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIg''@;'; put 'put ''LmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0xe3RyYW5zZm9ybTp0cmFuc2xhdGUoLTE0LjRyZW0pfS5tYWluLWNvbnRhaW5lciAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zdWJuYXYuY2xyLW5hdi1sZXZlbC0yLC5tYWluLWNvbnRhaW5lciAu''@;'; put 'put ''c3ViLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyIC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIgLmNsci12ZXJ0aWNhbC1uYXYuY2xyLW5hdi1sZXZlbC0ye3RyYW5zZm9ybTp0cmFuc2xhdGUoMTQuNHJlbSl9Lm1haW4tY29udGFpbmVyLm9wZW4t''@;'; put 'put ''aGFtYnVyZ2VyLW1lbnUgLmhlYWRlciAuYnJhbmRpbmd7d2lkdGg6MTQuNHJlbTttYXgtd2lkdGg6MTQuNHJlbX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUg''@;'; put 'put ''LnN1Ym5hdi5jbHItbmF2LWxldmVsLTEsLm1haW4tY29udGFpbmVyLm9wZW4taGFtYnVyZ2VyLW1lbnUgLnN1Yi1uYXYuY2xyLW5hdi1sZXZlbC0xLC5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMSwubWFpbi1jb250YWluZXIub3Bl''@;'; put 'put ''bi1oYW1idXJnZXItbWVudSAuY2xyLXZlcnRpY2FsLW5hdi5jbHItbmF2LWxldmVsLTF7b3ZlcmZsb3c6aW5oZXJpdDt3aWR0aDoxNC40cmVtO21heC13aWR0aDoxNC40cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLWhhbWJ1cmdlci1tZW51IC5jbHItbmF2LWNsb3Nle3Bvc2l0aW9uOmZpeGVk''@;'; put 'put ''O3RvcDowO3JpZ2h0OmF1dG87bGVmdDowO3otaW5kZXg6MTAzOTt0cmFuc2Zvcm06dHJhbnNsYXRlKDE1cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1oYW1idXJnZXItbWVudSAuY2xyLW5hdi1jbG9zZTphZnRlcntjb250ZW50Om5vbmV9''@;'; put 'put ''Lm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuaGVhZGVyLW5hdi5jbHItbmF2LWxldmVsLTIsLm1haW4tY29udGFpbmVyLm9wZW4tb3ZlcmZsb3ctbWVudSAuc3VibmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zdWItbmF2''@;'; put 'put ''LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5zaWRlbmF2LmNsci1uYXYtbGV2ZWwtMiwubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItdmVydGljYWwtbmF2LmNsci1uYXYtbGV2ZWwtMnt3aWR0aDoxNC40cmVtO21heC13''@;'; put 'put ''aWR0aDoxNC40cmVtfS5tYWluLWNvbnRhaW5lci5vcGVuLW92ZXJmbG93LW1lbnUgLmNsci1uYXYtY2xvc2V7cG9zaXRpb246Zml4ZWQ7dG9wOjA7cmlnaHQ6MDtsZWZ0OmF1dG87ei1pbmRleDoxMDM5O3RyYW5zZm9ybTp0cmFuc2xhdGUoLTE1cmVtKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAu''@;'; put 'put ''NnMgZWFzZX0ubWFpbi1jb250YWluZXIub3Blbi1vdmVyZmxvdy1tZW51IC5jbHItbmF2LWNsb3NlOmFmdGVye2NvbnRlbnQ6bm9uZX19OnJvb3R7LS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9y''@;'; put 'put ''LTE6dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNDAwKTstLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTM6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yKTstLWNsci1wcm9ncmVzcy1iZy1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApfS5wcm9ncmVzcywucHJvZ3Jlc3Mtc3RhdGlje2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czowO2ZvbnQtc2l6ZTppbmhlcml0O2hlaWdodDoyZW07bWFyZ2luOjA7bWF4LWhlaWdodDouN3JlbTttaW4t''@;'; put 'put ''aGVpZ2h0Oi4ycmVtO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCV9LnByb2dyZXNzPnByb2dyZXNzey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO2NvbG9yOiMw''@;'; put 'put ''MDcyYTM7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpO2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWJnLWNvbG9yLCAjZThlOGU4KTtib3JkZXI6MDtoZWlnaHQ6''@;'; put 'put ''MTAwJTt3aWR0aDoxMDAlfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LnByb2dyZXNzPnByb2dyZXNzOjot''@;'; put 'put ''bW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyl9LnByb2dyZXNzPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi1tb3otcHJvZ3Jlc3MtYmFyey13ZWJraXQtYXBwZWFy''@;'; put 'put ''YW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO2NvbG9yOiNlOGU4ZTg7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWJnLWNvbG9yLCAjZThlOGU4KTttaW4td2lkdGg6Mi40cmVtO2JhY2tncm91bmQtY29sb3I6dHJh''@;'; put 'put ''bnNwYXJlbnQ7YmFja2dyb3VuZC1pbWFnZTpub25lfS5wcm9ncmVzcz5wcm9ncmVzc1t2YWx1ZT0iMCJdOjotd2Via2l0LXByb2dyZXNzLXZhbHVley13ZWJraXQtdHJhbnNpdGlvbjpub25lO3RyYW5zaXRpb246bm9uZX0ucHJvZ3Jlc3M+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFy''@;'; put 'put ''e2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYmctY29sb3IsICNlOGU4ZTgpfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy1pbm5lci1lbGVtZW50ey13ZWJraXQtYXBwZWFyYW5j''@;'; put 'put ''ZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lfS5wcm9ncmVzcz5wcm9ncmVzczo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZXstd2Via2l0LXRyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluO3RyYW5zaXRpb246d2lkdGgg''@;'; put 'put ''LjIzcyBlYXNlLWluO2JvcmRlci1yYWRpdXM6MH0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzc3tjb2xvcjojNWViNzE1O2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMSwgIzVlYjcxNSl9LnByb2dyZXNzLnN1Y2Nlc3M+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtdmFs''@;'; put 'put ''dWV7YmFja2dyb3VuZC1jb2xvcjojNWViNzE1O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xLCAjNWViNzE1KX0ucHJvZ3Jlc3Muc3VjY2Vzcz5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojNWViNzE1O2JhY2tncm91''@;'; put 'put ''bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xLCAjNWViNzE1KX0ucHJvZ3Jlc3Mud2FybmluZz5wcm9ncmVzc3tjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMywgI2MyMWQwMCl9LnByb2dyZXNzLndhcm5pbmc+cHJvZ3Jlc3M6''@;'; put 'put ''Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3Mud2FybmluZz5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1j''@;'; put 'put ''b2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0zLCAjYzIxZDAwKX0ucHJvZ3Jlc3MuZGFuZ2VyPnByb2dyZXNze2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jl''@;'; put 'put ''c3MuZGFuZ2VyPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMiwgI2MyMWQwMCl9LnByb2dyZXNzLmRhbmdlcj5wcm9ncmVzczo6LW1vei1wcm9ncmVz''@;'; put 'put ''cy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MubGFiZWxlZCwucHJvZ3Jlc3Mtc3RhdGljLmxhYmVsZWR7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZy1yaWdodDoz''@;'; put 'put ''ZW19LnByb2dyZXNzLmxhYmVsZWQ+c3BhbiwucHJvZ3Jlc3Mtc3RhdGljLmxhYmVsZWQ+c3BhbntkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDowO2xpbmUtaGVpZ2h0OjFlbTttYXJnaW4tdG9wOi0uMzc1ZW19QGtleWZyYW1lcyBj''@;'; put 'put ''bHItcHJvZ3Jlc3MtZmFkZXswJXtvcGFjaXR5OjF9dG97b3BhY2l0eTowfX0ucHJvZ3Jlc3MucHJvZ3Jlc3MtZmFkZT5wcm9ncmVzc1t2YWx1ZT0iMTAwIl0sLnByb2dyZXNzLnByb2dyZXNzLWZhZGU+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdK3NwYW57YW5pbWF0aW9uOmNsci1wcm9ncmVzcy1m''@;'; put 'put ''YWRlIC4zcyBsaW5lYXIgLjVzIGZvcndhcmRzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3MsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNze3RyYW5zaXRpb246Y29sb3IgLjFzIGVhc2Utb3V0IDFzfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jl''@;'; put 'put ''c3MtdmFsdWUsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVley13ZWJraXQtdHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW4sYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1vdXQgLjNzO3RyYW5zaXRpb246d2lkdGggLjIzcyBlYXNlLWluLGJhY2tn''@;'; put 'put ''cm91bmQtY29sb3IgLjFzIGVhc2Utb3V0IC4zc30ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWUsLnByb2dyZXNzLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7LXdlYmtpdC10''@;'; put 'put ''cmFuc2l0aW9uOm5vbmU7dHJhbnNpdGlvbjpub25lfS5wcm9ncmVzcy5mbGFzaC1kYW5nZXI+cHJvZ3Jlc3M6Oi1tb3otcHJvZ3Jlc3MtYmFyLC5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7LW1vei10cmFuc2l0aW9uOndpZHRoIC4yM3MgZWFzZS1pbixiYWNr''@;'; put 'put ''Z3JvdW5kLWNvbG9yIC4xcyBlYXNlLW91dCAuM3M7dHJhbnNpdGlvbjp3aWR0aCAuMjNzIGVhc2UtaW4sYmFja2dyb3VuZC1jb2xvciAuMXMgZWFzZS1vdXQgLjNzfS5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl17Y29sb3I6IzVlYjcxNTtjb2xvcjp2YXIoLS1jbHItcHJv''@;'; put 'put ''Z3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1jb2xvcjojNWViNzE1O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0xLCAj''@;'; put 'put ''NWViNzE1KX0ucHJvZ3Jlc3MuZmxhc2g+cHJvZ3Jlc3NbdmFsdWU9IjEwMCJdOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy5wcm9ncmVz''@;'; put 'put ''cy1mYWRlLmZsYXNoPnByb2dyZXNzW3ZhbHVlPSIxMDAiXSwucHJvZ3Jlc3MucHJvZ3Jlc3MtZmFkZS5mbGFzaD5wcm9ncmVzc1t2YWx1ZT0iMTAwIl0rc3BhbnthbmltYXRpb246Y2xyLXByb2dyZXNzLWZhZGUgLjZzIGxpbmVhciAxcyBmb3J3YXJkc30ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2Vy''@;'; put 'put ''PnByb2dyZXNzW3ZhbHVlPSIxMDAiXXtjb2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMiwgI2MyMWQwMCl9LnByb2dyZXNzLmZsYXNoLWRhbmdlcj5wcm9ncmVzc1t2YWx1ZT0iMTAwIl06Oi13ZWJraXQtcHJvZ3Jlc3MtdmFsdWV7YmFja2dyb3VuZC1j''@;'; put 'put ''b2xvcjojYzIxZDAwO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX0ucHJvZ3Jlc3MuZmxhc2gtZGFuZ2VyPnByb2dyZXNzW3ZhbHVlPSIxMDAiXTo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjojYzIxZDAwO2JhY2tn''@;'; put 'put ''cm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWFsdC1jb2xvci0yLCAjYzIxZDAwKX1Aa2V5ZnJhbWVzIGNsci1wcm9ncmVzcy1sb29wZXJ7MCV7bGVmdDotMTAwJX10b3tsZWZ0OjEwMCV9fS5wcm9ncmVzcy5sb29we3Bvc2l0aW9uOnJlbGF0aXZlfS5wcm9ncmVzcy5sb29wPnByb2dy''@;'; put 'put ''ZXNze292ZXJmbG93OmhpZGRlbjtjb2xvcjp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCwgdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy5sb29wPnByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVle2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7YmFj''@;'; put 'put ''a2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCwgdHJhbnNwYXJlbnQpfS5wcm9ncmVzcy5sb29wPnByb2dyZXNzOjotbW96LXByb2dyZXNzLWJhcntiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlv''@;'; put 'put ''bi02MDAsIHRyYW5zcGFyZW50KX0ucHJvZ3Jlc3MubG9vcD5wcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXJ7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudH0ucHJvZ3Jlc3MubG9vcDphZnRlcnthbmltYXRpb246Y2xyLXByb2dyZXNzLWxvb3BlciAycyBlYXNlLWluLW91dCBpbmZpbml0''@;'; put 'put ''ZTtjb250ZW50OiIgIjt0b3A6MDtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtZGVmYXVsdC1jb2xvciwgIzAwNzJhMyk7d2lkdGg6NzUlfS5w''@;'; put 'put ''cm9ncmVzcy5sb29wLmRhbmdlcjphZnRlciwucHJvZ3Jlc3MubG9vcC53YXJuaW5nOmFmdGVye2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMiwgI2MyMWQwMCl9LnByb2dyZXNzLmxvb3Auc3VjY2VzczphZnRl''@;'; put 'put ''cntiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5uYXYtaXRlbSAucHJvZ3Jlc3M6YWZ0ZXJ7dG9wOjB9LnByb2dyZXNzLXN0YXRpY3twb3NpdGlvbjpyZWxhdGl2ZTtib3JkZXI6MDt3aWR0''@;'; put 'put ''aDoxMDAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVye2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1iZy1jb2xvciwgI2U4ZThlOCk7ZGlzcGxheTpibG9jaztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7''@;'; put 'put ''Ym90dG9tOjA7cmlnaHQ6MH0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcjpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXByb2dyZXNzLWRlZmF1bHQtY29sb3IsICMwMDcyYTMpO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtw''@;'; put 'put ''b3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmJsb2NrO3dpZHRoOjAlO2NvbnRlbnQ6IiAifS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMiJdOmJlZm9yZSwu''@;'; put 'put ''cHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzIl06YmVmb3Jle3dpZHRoOjIlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0i''@;'; put 'put ''NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjciXTpiZWZvcmV7d2lkdGg6NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJb''@;'; put 'put ''ZGF0YS12YWx1ZT0iOCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1l''@;'; put 'put ''dGVyW2RhdGEtdmFsdWU9IjExIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjEyIl06YmVmb3Jle3dpZHRoOjEwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxMyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3Rh''@;'; put 'put ''dGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxNCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxNSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxNiJdOmJlZm9yZSwucHJvZ3Jl''@;'; put 'put ''c3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIxNyJdOmJlZm9yZXt3aWR0aDoxNSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMTki''@;'; put 'put ''XTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMjEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1''@;'; put 'put ''ZT0iMjIiXTpiZWZvcmV7d2lkdGg6MjAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjIzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNz''@;'; put 'put ''LW1ldGVyW2RhdGEtdmFsdWU9IjI1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjI3Il06YmVmb3Jle3dpZHRoOjI1JX0ucHJvZ3Jlc3Mt''@;'; put 'put ''c3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyOCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIyOSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzMCJdOmJlZm9yZSwucHJv''@;'; put 'put ''Z3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzMSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIzMiJdOmJlZm9yZXt3aWR0aDozMCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0i''@;'; put 'put ''MzMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12''@;'; put 'put ''YWx1ZT0iMzYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iMzciXTpiZWZvcmV7d2lkdGg6MzUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjM4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dy''@;'; put 'put ''ZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjM5Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+''@;'; put 'put ''LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjQyIl06YmVmb3Jle3dpZHRoOjQwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0NCJdOmJlZm9yZSwu''@;'; put 'put ''cHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0NiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI0NyJdOmJl''@;'; put 'put ''Zm9yZXt3aWR0aDo0NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNDkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0''@;'; put 'put ''YS12YWx1ZT0iNTAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNTIiXTpiZWZvcmV7d2lkdGg6NTAlfS5wcm9ncmVzcy1zdGF0aWM+LnBy''@;'; put 'put ''b2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjUzIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0''@;'; put 'put ''aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU2Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjU3Il06YmVmb3Jle3dpZHRoOjU1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1OCJdOmJlZm9y''@;'; put 'put ''ZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI1OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2MSJd''@;'; put 'put ''OmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI2MiJdOmJlZm9yZXt3aWR0aDo2MCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJb''@;'; put 'put ''ZGF0YS12YWx1ZT0iNjQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNjYiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3Mt''@;'; put 'put ''bWV0ZXJbZGF0YS12YWx1ZT0iNjciXTpiZWZvcmV7d2lkdGg6NjUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjY4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjY5Il06YmVmb3JlLC5wcm9ncmVzcy1z''@;'; put 'put ''dGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjcwIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjcxIl06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjcyIl06YmVmb3Jle3dpZHRo''@;'; put 'put ''OjcwJX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3MyJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3NCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3''@;'; put 'put ''NSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3NiJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI3NyJdOmJlZm9yZXt3aWR0aDo3NSV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0''@;'; put 'put ''ZXJbZGF0YS12YWx1ZT0iNzgiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iNzkiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODAiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jl''@;'; put 'put ''c3MtbWV0ZXJbZGF0YS12YWx1ZT0iODEiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iODIiXTpiZWZvcmV7d2lkdGg6ODAlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9IjgzIl06YmVmb3JlLC5wcm9ncmVz''@;'; put 'put ''cy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg0Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg1Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg2Il06YmVmb3JlLC5w''@;'; put 'put ''cm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijg3Il06YmVmb3Jle3dpZHRoOjg1JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI4OCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVl''@;'; put 'put ''PSI4OSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5MCJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSI5MSJdOmJlZm9yZSwucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRh''@;'; put 'put ''LXZhbHVlPSI5MiJdOmJlZm9yZXt3aWR0aDo5MCV9LnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTMiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTQiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJv''@;'; put 'put ''Z3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTUiXTpiZWZvcmUsLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJbZGF0YS12YWx1ZT0iOTYiXTpiZWZvcmV7d2lkdGg6OTUlfS5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijk3Il06YmVmb3JlLC5wcm9n''@;'; put 'put ''cmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijk4Il06YmVmb3JlLC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVyW2RhdGEtdmFsdWU9Ijk5Il06YmVmb3Jle3dpZHRoOjk4JX0ucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcltkYXRhLXZhbHVlPSIx''@;'; put 'put ''MDAiXTpiZWZvcmV7d2lkdGg6MTAwJX0ucHJvZ3Jlc3Mtc3RhdGljLmxhYmVsZWQ+LnByb2dyZXNzLW1ldGVye3JpZ2h0OjNlbX0ucHJvZ3Jlc3Mtc3RhdGljLnN1Y2Nlc3M+LnByb2dyZXNzLW1ldGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiM1ZWI3MTU7YmFja2dyb3VuZC1jb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTEsICM1ZWI3MTUpfS5wcm9ncmVzcy1zdGF0aWMud2FybmluZz4ucHJvZ3Jlc3MtbWV0ZXI6YmVmb3Jle2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1wcm9ncmVzcy1hbHQtY29sb3ItMywgI2My''@;'; put 'put ''MWQwMCl9LnByb2dyZXNzLXN0YXRpYy5kYW5nZXI+LnByb2dyZXNzLW1ldGVyOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNjMjFkMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItcHJvZ3Jlc3MtYWx0LWNvbG9yLTIsICNjMjFkMDApfS5jYXJkLWJsb2NrIC5wcm9ncmVzcywuY2FyZC1i''@;'; put 'put ''bG9jayAucHJvZ3Jlc3Mtc3RhdGljLC5jYXJkLWZvb3RlciAucHJvZ3Jlc3MsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcy1zdGF0aWN7bWFyZ2luOjA7bWFyZ2luLXRvcDotLjZyZW07aGVpZ2h0Oi4xODc1cmVtO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MH0uY2FyZC1ibG9jayAucHJvZ3Jlc3M+''@;'; put 'put ''cHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXIsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcz5wcm9ncmVzcywuY2FyZC1mb290ZXIgLnByb2dyZXNzLXN0YXRpYz4ucHJvZ3Jlc3MtbWV0ZXJ7aGVpZ2h0Oi4xODc1cmVtO3Bvc2l0aW9uOmFic29sdXRl''@;'; put 'put ''fS5jYXJkLWJsb2NrIC5wcm9ncmVzcy50b3AsLmNhcmQtYmxvY2sgLnByb2dyZXNzLXN0YXRpYy50b3AsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcy50b3AsLmNhcmQtZm9vdGVyIC5wcm9ncmVzcy1zdGF0aWMudG9we21hcmdpbi10b3A6MDt0b3A6MH0ubmF2LWl0ZW0gLnByb2dyZXNzLC5uYXYt''@;'; put 'put ''aXRlbSAucHJvZ3Jlc3Mtc3RhdGlje21hcmdpbjowO2hlaWdodDouMjRyZW07bWluLWhlaWdodDouMjRyZW07bWF4LWhlaWdodDouMjRyZW07bGVmdDowfS5uYXYtaXRlbSAucHJvZ3Jlc3M+cHJvZ3Jlc3MsLm5hdi1pdGVtIC5wcm9ncmVzcy1zdGF0aWM+LnByb2dyZXNzLW1ldGVye2hlaWdo''@;'; put 'put ''dDouMjRyZW07bWluLWhlaWdodDouMjRyZW07bWF4LWhlaWdodDouMjRyZW07cG9zaXRpb246YWJzb2x1dGV9LnByb2dyZXNzLWJsb2Nre2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5wcm9ncmVzcy1ibG9jaz4qe2Zs''@;'; put 'put ''ZXg6MCAwIGF1dG87cGFkZGluZy1yaWdodDouNnJlbX0ucHJvZ3Jlc3MtYmxvY2s+OmZpcnN0LWNoaWxke3BhZGRpbmctcmlnaHQ6LjlyZW19LnByb2dyZXNzLWJsb2NrPjpsYXN0LWNoaWxke3BhZGRpbmctcmlnaHQ6MH0ucHJvZ3Jlc3MtYmxvY2s+bGFiZWx7Zm9udC13ZWlnaHQ6NjAwfS5w''@;'; put 'put ''cm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3MsLnByb2dyZXNzLWJsb2NrPi5wcm9ncmVzcy1zdGF0aWN7ZmxleDowIDEgYXV0b30ucHJvZ3Jlc3MtYmxvY2s+LnByb2dyZXNzLWdyb3Vwe2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtoZWlnaHQ6YXV0bztmbGV4OjAgMSBhdXRvO2Rpc3BsYXk6ZmxleDt3''@;'; put 'put ''aWR0aDoxMDAlfS5wcm9ncmVzcy1ibG9jaz4ucHJvZ3Jlc3MtZ3JvdXAgLmNsci1yb3d7bWFyZ2luLWxlZnQ6MDttYXJnaW4tcmlnaHQ6MH0ucHJvZ3Jlc3MtYmxvY2s+LnByb2dyZXNzLWdyb3VwIC5jbHItcm93PltjbGFzcyo9Y2xyLWNvbC1de3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmln''@;'; put 'put ''aHQ6MH0uY2FyZC1ibG9jayAucHJvZ3Jlc3MtYmxvY2t7bWFyZ2luLWJvdHRvbTouNnJlbTtwYWRkaW5nOjB9LmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jaz5sYWJlbHttYXgtd2lkdGg6MzMl''@;'; put 'put ''O2xpbmUtaGVpZ2h0Oi45cmVtfS5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3MsLmNhcmQtYmxvY2sgLnByb2dyZXNzLWJsb2NrIC5wcm9ncmVzcy1zdGF0aWN7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0Oi42Mzk1cmVtO21hcmdpbi10b3A6MH0uY2FyZC1ibG9jayAucHJv''@;'; put 'put ''Z3Jlc3MtYmxvY2sgLnByb2dyZXNzPnByb2dyZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3M+LnByb2dyZXNzLW1ldGVyLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9jayAucHJvZ3Jlc3Mtc3RhdGljPnByb2dyZXNzLC5jYXJkLWJsb2NrIC5wcm9ncmVzcy1ibG9j''@;'; put 'put ''ayAucHJvZ3Jlc3Mtc3RhdGljPi5wcm9ncmVzcy1tZXRlcntoZWlnaHQ6LjYzOTVyZW19XzotbXMtaW5wdXQtcGxhY2Vob2xkZXIgLnByb2dyZXNzLWJsb2NrPmxhYmVsLDpyb290IC5wcm9ncmVzcy1ibG9jaz5sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9ja30uc3Bpbm5lcntwb3NpdGlvbjpy''@;'; put 'put ''ZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6My42cmVtO3dpZHRoOjMuNnJlbTttaW4taGVpZ2h0OjMuNnJlbTttaW4td2lkdGg6My42cmVtO2FuaW1hdGlvbjpzcGluIDFzIGxpbmVhciBpbmZpbml0ZTttYXJnaW46MDtwYWRkaW5nOjA7YmFja2dyb3VuZDp1cmwoZGF0YTpp''@;'; put 'put ''bWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmOCwlM0NzdmclMjBpZCUzRCUyMkxheWVyXzIlMjIlMjBkYXRhLW5hbWUlM0QlMjJMYXllciUyMDIlMjIlMjB4bWxucyUzRCUyMmh0dHAlM0ElMkYlMkZ3d3cudzMub3JnJTJGMjAwMCUyRnN2ZyUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDcyJTIw''@;'; put 'put ''NzIlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTElMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTIl''@;'; put 'put ''MjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBmaWxsJTNBJTIwbm9uZSUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS1taXRlcmxpbWl0JTNBJTIwMTAlM0IlMEElMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utd2lkdGglM0ElMjA1cHglM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTElMjAlN0IlMEElMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UlM0ElMjAlMjMwMDAwMDAlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2Utb3BhY2l0eSUzQSUyMDAuMTUlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAuY2xzLTIlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UlM0ElMjAlMjMwMDcyYTMlM0IlMEElMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlN0QlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRsZSUzRVByZWxvYWRlcl83MngyJTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0Nj''@;'; put 'put ''aXJjbGUlMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwY3glM0QlMjIzNiUyMiUyMGN5JTNEJTIyMzYlMjIlMjByJTNEJTIyMzMlMjIlMkYlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMiUyMiUyMGQlM0QlMjJNMTQuMyUyQzYwLjlBMzMlMkMzMyUyQzAlMkMwJTJD''@;'; put 'put ''MSUyQzM2JTJDMyUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRnBhdGglM0UlMEElM0MlMkZzdmclM0UlMEEpO3RleHQtaW5kZW50OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uc3Bpbm5lci5zcGlubmVyLW1ke2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21p''@;'; put 'put ''bi1oZWlnaHQ6MS44cmVtO21pbi13aWR0aDoxLjhyZW19LnNwaW5uZXIuc3Bpbm5lci1pbmxpbmUsLnNwaW5uZXIuc3Bpbm5lci1zbXtoZWlnaHQ6LjlyZW07d2lkdGg6LjlyZW07bWluLWhlaWdodDouOXJlbTttaW4td2lkdGg6LjlyZW19LnNwaW5uZXIuc3Bpbm5lci1pbmxpbmV7dmVydGlj''@;'; put 'put ''YWwtYWxpZ246dGV4dC1ib3R0b219LnNwaW5uZXIuc3Bpbm5lci1pbnZlcnNle2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIwaWQlM0QlMjJMYXllcl8yJTIyJTIwZGF0YS1uYW1lJTNEJTIyTGF5ZXIlMjAyJTIyJTIweG1sbnMlM0QlMjJo''@;'; put 'put ''dHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjA3MiUyMDcyJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwLmNscy0xJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwZmlsbCUzQSUyMG5vbmUlM0IlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBzdHJva2UtbWl0ZXJsaW1pdCUzQSUyMDEwJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLXdpZHRoJTNBJTIwNXB4JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0xJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzZmZmZmZmJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW9wYWNpdHklM0ElMjAwLjE1JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzNzRjMWUyJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZzJTNFJTBBJTIw''@;'; put 'put ''JTIwJTIwJTIwJTNDdGl0bGUlM0VQcmVsb2FkZXJfNzJ4MiUzQyUyRnRpdGxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGN4JTNEJTIyMzYlMjIlMjBjeSUzRCUyMjM2JTIyJTIwciUzRCUyMjMzJTIyJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTND''@;'; put 'put ''cGF0aCUyMGNsYXNzJTNEJTIyY2xzLTIlMjIlMjBkJTNEJTIyTTE0LjMlMkM2MC45QTMzJTJDMzMlMkMwJTJDMCUyQzElMkMzNiUyQzMlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZwYXRoJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKX0uc3Bpbm5lci5zcGlubmVyLW5ldXRyYWwtMHtiYWNrZ3Jv''@;'; put 'put ''dW5kOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMGlkJTNEJTIyTGF5ZXJfMiUyMiUyMGRhdGEtbmFtZSUzRCUyMkxheWVyJTIwMiUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUy''@;'; put 'put ''MjAlMjAwJTIwNzIlMjA3MiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy''@;'; put 'put ''MCUyMCUyMC5jbHMtMiUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGZpbGwlM0ElMjBub25lJTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW1pdGVybGltaXQlM0ElMjAxMCUz''@;'; put 'put ''QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZS13aWR0aCUzQSUyMDVweCUzQiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMC5jbHMtMSUy''@;'; put 'put ''MCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHN0cm9rZSUzQSUyMCUyM3RyYW5zcGFyZW50JTNCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlLW9wYWNpdHklM0ElMjAxJTNCJTBBJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwLmNscy0yJTIwJTdCJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc3Ryb2tlJTNBJTIwJTIzZmZmZmZmJTNCJTBB''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTdEJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDJTJGc3R5bGUlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZkZWZzJTNFJTBBJTIwJTIwJTIwJTIwJTNDdGl0bGUlM0VQcmVsb2FkZXJfNzJ4MiUzQyUyRnRpdGxlJTNFJTBB''@;'; put 'put ''JTIwJTIwJTIwJTIwJTNDY2lyY2xlJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGN4JTNEJTIyMzYlMjIlMjBjeSUzRCUyMjM2JTIyJTIwciUzRCUyMjMzJTIyJTJGJTNFJTBBJTIwJTIwJTIwJTIwJTNDcGF0aCUyMGNsYXNzJTNEJTIyY2xzLTIlMjIlMjBkJTNEJTIyTTE0LjMlMkM2MC45QTMz''@;'; put 'put ''JTJDMzMlMkMwJTJDMCUyQzElMkMzNiUyQzMlMjIlM0UlMEElMjAlMjAlMjAlMjAlM0MlMkZwYXRoJTNFJTBBJTNDJTJGc3ZnJTNFJTBBKX0uc3Bpbm5lci5zcGlubmVyLWNoZWNre2FuaW1hdGlvbjpub25lO2JhY2tncm91bmQ6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zjgs''@;'; put 'put ''JTNDc3ZnJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDM2JTIwMzYlMjIlMjBwcmVzZXJ2ZUFzcGVjdFJhdGlvJTNEJTIyeE1pZFlNaWQlMjBtZWV0JTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4''@;'; put 'put ''bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlMjBmb2N1c2FibGUlM0QlMjJmYWxzZSUyMiUyMGFyaWEtaGlkZGVuJTNEJTIydHJ1ZSUyMiUyMHJvbGUlM0QlMjJpbWclMjIlM0UlM0NwYXRoJTIwZmlsbCUzRCUyMiUyMzAwNzJhMyUy''@;'; put 'put ''MiUyMGNsYXNzJTNEJTIyY2xyLWktb3V0bGluZSUyMGNsci1pLW91dGxpbmUtcGF0aC0xJTIyJTIwZCUzRCUyMk0xMy43MiUyQzI3LjY5JTJDMy4yOSUyQzE3LjI3YTElMkMxJTJDMCUyQzAlMkMxJTJDMS40MS0xLjQxbDklMkM5TDMxLjI5JTJDNy4yOWExJTJDMSUyQzAlMkMwJTJDMSUyQzEu''@;'; put 'put ''NDElMkMxLjQxWiUyMiUzRSUzQyUyRnBhdGglM0UlM0MlMkZzdmclM0UpfS5idG4tc20gLnNwaW5uZXIsLmFsZXJ0LWFwcC1sZXZlbCAuYWxlcnQtaXRlbSAuYnRuIC5zcGlubmVye2hlaWdodDouNjVyZW07d2lkdGg6LjY1cmVtO21pbi1oZWlnaHQ6LjY1cmVtO21pbi13aWR0aDouNjVyZW19''@;'; put 'put ''LmJ0bi1pY29uOm5vdCguYnRuLXNtKSAuc3Bpbm5lcntoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07bWluLWhlaWdodDouOHJlbTttaW4td2lkdGg6LjhyZW19QGtleWZyYW1lcyBzcGluezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX06cm9vdHst''@;'; put 'put ''LWNsci10YWJsZS1iZ2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXRoZWFkLWJnY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLXRhYmxlLWhlYWRlci1ib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1j''@;'; put 'put ''bHItdGFibGUtZm9vdGVyLWJvcmRlci10b3AtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10YWJsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh''@;'; put 'put ''bC0yMDApOy0tY2xyLXRhYmxlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXRhYmxlLWJvcmRlcndpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgpOy0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXM6LjFyZW07LS1jbHItdGFibGUt''@;'; put 'put ''Zm9udC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRoZWFkLWNvbG9yOiM2NjY2NjZ9LnRhYmxle2JvcmRlci1jb2xsYXBzZTpzZXBhcmF0ZTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxl''@;'; put 'put ''LWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci10YWJsZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0p''@;'; put 'put ''O2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1iZ2NvbG9yLCB3aGl0ZSk7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdGFibGUtZm9udC1jb2xvciwgIzY2NjY2Nik7bWFyZ2luOjA7bWFyZ2luLXRvcDoxLjJyZW07bWF4LXdpZHRoOjEw''@;'; put 'put ''MCU7d2lkdGg6MTAwJX0udGFibGUgdGgsLnRhYmxlIHRke2ZvbnQtc2l6ZTouNjVyZW07bGluZS1oZWlnaHQ6LjdyZW07Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1''@;'; put 'put ''cmVtKTtib3JkZXItdG9wLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGVyb3ctYm9yZGVyY29sb3IsICNlOGU4ZTgpO3BhZGRpbmc6LjU1cmVtIC42cmVtO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcH0udGFibGUgdGgubGVmdCwudGFi''@;'; put 'put ''bGUgdGQubGVmdHt0ZXh0LWFsaWduOmxlZnR9LnRhYmxlIHRoLmxlZnQ6Zmlyc3QtY2hpbGQsLnRhYmxlIHRkLmxlZnQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0Oi4zcmVtfS50YWJsZSB0aHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aGVhZC1jb2xvciwgIzY2NjY2Nik7Zm9udC1z''@;'; put 'put ''aXplOi41NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tLXN0eWxl''@;'; put 'put ''OnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3Is''@;'; put 'put ''ICNjY2NjY2MpO2JvcmRlci10b3A6MCBub25lfS50YWJsZSB0Ym9keSB0cjpmaXJzdC1jaGlsZCB0ZHtib3JkZXItdG9wOjAgbm9uZX0udGFibGUgdGJvZHkrdGJvZHl7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigt''@;'; put 'put ''LWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0udGFibGUgdGhlYWQgdGg6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3At''@;'; put 'put ''bGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZSB0aGVhZCB0aDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItdG9w''@;'; put 'put ''LXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZSB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJv''@;'; put 'put ''dHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZSB0Ym9keTpsYXN0LWNoaWxkIHRyOmxhc3QtY2hpbGQgdGQ6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjFyZW07Ym9yZGVy''@;'; put 'put ''LWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0udGFibGUtY29tcGFjdCB0aCwudGFibGUtY29tcGFjdCB0ZHtwYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoZWFk''@;'; put 'put ''IHRoe2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtkaXNwbGF5Om5vbmV9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRoe2JvcmRlci1ib3R0b206MDtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVtO2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJv''@;'; put 'put ''cmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3AtY29sb3I6I2NjYztib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO3ZlcnRpY2FsLWFsaWduOnRvcH0udGFibGUudGFibGUtdmVydGljYWwgdGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRo''@;'; put 'put ''e3RleHQtYWxpZ246bGVmdDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRkOmZpcnN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0aDpmaXJzdC1jaGlsZHtib3Jk''@;'; put 'put ''ZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4wNXJlbTtib3JkZXItcmlnaHQtd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9y''@;'; put 'put ''ZGVyLWNvbG9yLCAjY2NjY2NjKTtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvciwgI2ZhZmFmYSk7Zm9udC13ZWlnaHQ6NjAwfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNo''@;'; put 'put ''aWxkIHRoLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRke2JvcmRlci10b3A6MCBub25lfS50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRoOmZpcnN0LWNoaWxkLC50YWJsZS50''@;'; put 'put ''YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xcmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMs''@;'; put 'put ''IC4xcmVtKX0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6Zmlyc3Qtb2YtdHlwZSB0cjpmaXJzdC1jaGlsZCB0aDpsYXN0LWNoaWxkLC50YWJsZS50YWJsZS12ZXJ0aWNhbCB0Ym9keTpmaXJzdC1vZi10eXBlIHRyOmZpcnN0LWNoaWxkIHRkOmxhc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czow''@;'; put 'put ''O2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xcmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOnZhcigtLWNsci10YWJsZS1jb3JuZXJjZWxscmFkaXVzLCAuMXJlbSl9LnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCwu''@;'; put 'put ''dGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xcmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNl''@;'; put 'put ''bGxyYWRpdXMsIC4xcmVtKX0udGFibGUudGFibGUtdmVydGljYWwgdGJvZHk6bGFzdC1jaGlsZCB0cjpsYXN0LWNoaWxkIHRoOmxhc3QtY2hpbGQsLnRhYmxlLnRhYmxlLXZlcnRpY2FsIHRib2R5Omxhc3QtY2hpbGQgdHI6bGFzdC1jaGlsZCB0ZDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6''@;'; put 'put ''MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS50YWJsZS50YWJsZS1ub2JvcmRlcntib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91''@;'; put 'put ''bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyOjB9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2Nj''@;'; put 'put ''Yyk7Ym9yZGVyLXRvcDowIG5vbmV9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoOmZpcnN0LWNoaWxke2JvcmRlci1yaWdodDowIG5vbmV9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRke2JvcmRlci10b3A6MCBub25lO3BhZGRpbmctdG9wOi42cmVtfS50YWJsZS50YWJsZS1ub2JvcmRlciB0ZDpm''@;'; put 'put ''aXJzdC1jaGlsZHtib3JkZXItcmlnaHQ6MCBub25lfS50YWJsZS50YWJsZS1ub2JvcmRlciB0aGVhZCB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtbm9ib3JkZXIgdGhlYWQgdGg6bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjB9LnRhYmxlLnRhYmxlLW5vYm9yZGVyIHRoLC50YWJsZS50''@;'; put 'put ''YWJsZS1ub2JvcmRlciB0ZHtib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50fS50YWJsZS50YWJsZS1ub2JvcmRlciB0aDpmaXJzdC1jaGlsZCwudGFibGUudGFibGUtbm9ib3JkZXIgdGQ6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjB9LnRhYmxlLnRhYmxlLWNvbXBhY3QgdGgsLnRhYmxlLnRh''@;'; put 'put ''YmxlLWNvbXBhY3QgdGR7cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS50YWJsZS50YWJsZS1jb21wYWN0LnRhYmxlLW5vYm9yZGVyIHRoLC50YWJsZS50YWJsZS1jb21wYWN0LnRhYmxlLW5vYm9yZGVyIHRke3BhZGRpbmctdG9wOi4zNXJlbTtwYWRkaW5nLWJvdHRv''@;'; put 'put ''bTouM3JlbX06cm9vdHstLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci10b29sdGlwLWNvbG9yOnZhcigtLWNsci1j''@;'; put 'put ''b2xvci1uZXV0cmFsLTApOy0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQ6dmFyKC0tY2xyLXAzLWZvbnQtd2VpZ2h0KX0udG9vbHRpcHtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWFsaWduOmxlZnQ7b3ZlcmZsb3c6dmlzaWJsZX0udG9vbHRpcD4udG9vbHRp''@;'; put 'put ''cC1jb250ZW50e3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGxpbmVhcjt3aGl0ZS1zcGFjZTpub3JtYWw7ei1pbmRleDoxMDUwfS50b29sdGlwOmhvdmVyPi50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXA6Zm9jdXM+LnRvb2x0aXAtY29udGVudHt2''@;'; put 'put ''aXNpYmlsaXR5OnZpc2libGU7b3BhY2l0eToxfS50b29sdGlwOmhvdmVyPi50b29sdGlwLWNvbnRlbnQ6ZW1wdHksLnRvb2x0aXA6Zm9jdXM+LnRvb2x0aXAtY29udGVudDplbXB0eXt2aXNpYmlsaXR5OmhpZGRlbjtvcGFjaXR5OjB9LnRvb2x0aXA6Zm9jdXN7b3V0bGluZTowfS50b29sdGlw''@;'; put 'put ''OmZvY3VzPjpmaXJzdC1jaGlsZHtvdXRsaW5lLW9mZnNldDouMDVyZW07b3V0bGluZS13aWR0aDouMDVyZW07b3V0bGluZS1jb2xvcjojM2I5OWZjO291dGxpbmUtc3R5bGU6c29saWR9LnRvb2x0aXA+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcC50b29sdGlwLXRvcC1yaWdodD4udG9vbHRp''@;'; put 'put ''cC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtcmlnaHR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlw''@;'; put 'put ''LWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1j''@;'; put 'put ''bHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO3Bvc2l0aW9uOmFic29sdXRlO3RvcDphdXRvO2JvdHRvbToxMDAlO2xlZnQ6NTAlO3JpZ2h0OmF1dG87Ym9yZGVyLWJvdHRv''@;'; put 'put ''bS1sZWZ0LXJhZGl1czowO21hcmdpbi1ib3R0b206LjhyZW19LnRvb2x0aXA+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXRvcC1yaWdodDpi''@;'; put 'put ''ZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uNDJyZW07bGVmdDowO3RvcDphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItbGVmdDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRl''@;'; put 'put ''ci10b3A6LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9v''@;'; put 'put ''bHRpcC10b3AtbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC10b3AtbGVmdHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWln''@;'; put 'put ''aHQ6dmFyKC0tY2xyLXRvb2x0aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTti''@;'; put 'put ''b3JkZXItcmFkaXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07cG9zaXRpb246YWJzb2x1dGU7dG9wOmF1dG87Ym90dG9tOjEwMCU7cmlnaHQ6NTAlO2xl''@;'; put 'put ''ZnQ6YXV0bztib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO21hcmdpbi1ib3R0b206LjhyZW19LnRvb2x0aXAudG9vbHRpcC10b3AtbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtdG9wLWxlZnQ6YmVmb3Jle3Bvc2l0aW9u''@;'; put 'put ''OmFic29sdXRlO2JvdHRvbTotLjQycmVtO3JpZ2h0OjA7dG9wOmF1dG87bGVmdDphdXRvO2NvbnRlbnQ6IiI7Ym9yZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci10b3A6LjI1cmVt''@;'; put 'put ''IHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50b29sdGlwLWJvdHRvbS1y''@;'; put 'put ''aWdodD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tcmlnaHR7Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZh''@;'; put 'put ''cigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVy''@;'; put 'put ''LXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTphdXRvO3RvcDoxMDAlO2xlZnQ6NTAlO3JpZ2h0OmF1''@;'; put 'put ''dG87Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO21hcmdpbi10b3A6LjhyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tcmlnaHQ+LnRvb2x0aXAtY29udGVudDpiZWZvcmUsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLWJvdHRvbS1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJz''@;'; put 'put ''b2x1dGU7dG9wOi0uNDJyZW07bGVmdDowO2JvdHRvbTphdXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItbGVmdDouM3JlbSBzb2xpZCAjMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjI1cmVtIHNv''@;'; put 'put ''bGlkICMwMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVm''@;'; put 'put ''dD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1ib3R0b20tbGVmdHtjb2xvcjojZmZmO2NvbG9yOnZhcigtLWNsci10b29sdGlwLWNvbG9yLCB3aGl0ZSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0t''@;'; put 'put ''Y2xyLXRvb2x0aXAtZm9udC13ZWlnaHQsIDQwMCk7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQtY29sb3I6IzAwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IsIGJsYWNrKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFk''@;'; put 'put ''aXVzOnZhcigtLWNsci10b29sdGlwLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luOjA7cGFkZGluZzouNDVyZW0gLjZyZW07d2lkdGg6MTJyZW07cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOmF1dG87dG9wOjEwMCU7cmlnaHQ6NTAlO2xlZnQ6YXV0bzti''@;'; put 'put ''b3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO21hcmdpbi10b3A6LjhyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtYm90dG9tLWxlZnQ6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRl''@;'; put 'put ''O3RvcDotLjQycmVtO3JpZ2h0OjA7Ym90dG9tOmF1dG87bGVmdDphdXRvO2NvbnRlbnQ6IiI7Ym9yZGVyLXJpZ2h0Oi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlk''@;'; put 'put ''ICMwMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlw''@;'; put 'put ''LWNvbnRlbnQsLnRvb2x0aXAgLnRvb2x0aXAtY29udGVudC50b29sdGlwLXJpZ2h0e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OmF1dG87bGVmdDoxMDAlO3RvcDo1MCU7Ym90dG9tOmF1dG87Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6''@;'; put 'put ''ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2VpZ2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNv''@;'; put 'put ''bG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO2JvcmRlci10b3AtbGVmdC1y''@;'; put 'put ''YWRpdXM6MDttYXJnaW4tbGVmdDouOHJlbX0udG9vbHRpcC50b29sdGlwLXJpZ2h0Pi50b29sdGlwLWNvbnRlbnQ6YmVmb3JlLC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1yaWdodDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDotLjQ1cmVtO2JvdHRvbTph''@;'; put 'put ''dXRvO3JpZ2h0OmF1dG87Y29udGVudDoiIjtib3JkZXItdG9wOi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItcmlnaHQ6LjI1cmVtIHNvbGlkICMwMDA7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNs''@;'; put 'put ''ci10b29sdGlwLWJhY2tncm91bmQtY29sb3IpO2JvcmRlci1ib3R0b206LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS50b29sdGlwLnRvb2x0aXAtbGVmdD4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRl''@;'; put 'put ''bnQudG9vbHRpcC1sZWZ0e3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6YXV0bztyaWdodDoxMDAlO3RvcDo1MCU7Ym90dG9tOmF1dG87Y29sb3I6I2ZmZjtjb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1jb2xvciwgd2hpdGUpO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtd2Vp''@;'; put 'put ''Z2h0OnZhcigtLWNsci10b29sdGlwLWZvbnQtd2VpZ2h0LCA0MDApO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yLCBibGFjayk7Ym9yZGVyLXJhZGl1czouMTVyZW07''@;'; put 'put ''Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdG9vbHRpcC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0Oi45cmVtO21hcmdpbjowO3BhZGRpbmc6LjQ1cmVtIC42cmVtO3dpZHRoOjEycmVtO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOjA7bWFyZ2luLXJpZ2h0Oi44cmVtfS50b29s''@;'; put 'put ''dGlwLnRvb2x0aXAtbGVmdD4udG9vbHRpcC1jb250ZW50OmJlZm9yZSwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbGVmdDpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7cmlnaHQ6LS40NXJlbTtib3R0b206YXV0bztsZWZ0OmF1dG87Y29udGVudDoiIjtib3JkZXIt''@;'; put 'put ''dG9wOi4zcmVtIHNvbGlkICMwMDA7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXItbGVmdDouMjVyZW0gc29saWQgIzAwMDtib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1jbHItdG9vbHRpcC1iYWNrZ3JvdW5kLWNvbG9yKTtib3JkZXIt''@;'; put 'put ''Ym90dG9tOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnR9LnRvb2x0aXAudG9vbHRpcC14cz4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC14c3t3aWR0aDozLjZyZW19LnRvb2x0aXAu''@;'; put 'put ''dG9vbHRpcC1zbT4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1zbXt3aWR0aDo2cmVtfS50b29sdGlwLnRvb2x0aXAtbWQ+LnRvb2x0aXAtY29udGVudCwudG9vbHRpcCAudG9vbHRpcC1jb250ZW50LnRvb2x0aXAtbWR7d2lkdGg6MTJyZW19LnRv''@;'; put 'put ''b2x0aXAudG9vbHRpcC1sZz4udG9vbHRpcC1jb250ZW50LC50b29sdGlwIC50b29sdGlwLWNvbnRlbnQudG9vbHRpcC1sZ3t3aWR0aDoxOHJlbX0udG9vbHRpcD4uYnRuKy50b29sdGlwLWNvbnRlbnQsLnRvb2x0aXAudG9vbHRpcC10b3AtcmlnaHQ+LmJ0bisudG9vbHRpcC1jb250ZW50LC50''@;'; put 'put ''b29sdGlwLnRvb2x0aXAtdG9wLWxlZnQ+LmJ0bisudG9vbHRpcC1jb250ZW50e21hcmdpbi1ib3R0b206LjVyZW19LnRvb2x0aXAudG9vbHRpcC1ib3R0b20tcmlnaHQ+LmJ0bisudG9vbHRpcC1jb250ZW50LC50b29sdGlwLnRvb2x0aXAtYm90dG9tLWxlZnQ+LmJ0bisudG9vbHRpcC1jb250''@;'; put 'put ''ZW50e21hcmdpbi10b3A6LjVyZW19LnRvb2x0aXAudG9vbHRpcC1yaWdodD4uYnRuKy50b29sdGlwLWNvbnRlbnR7bWFyZ2luLWxlZnQ6LjJyZW19LnRvb2x0aXA+LmNsci1pY29ue21hcmdpbi1yaWdodDowfS50b29sdGlwPnN2Z3twb2ludGVyLWV2ZW50czpub25lfS50b29sdGlwLXRyaWdn''@;'; put 'put ''ZXI6Zm9jdXMrLnRvb2x0aXAtY29udGVudHt2aXNpYmlsaXR5OnZpc2libGV9OnJvb3R7LS1jbHItZm9ybS1kaXNhYmxlZC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItZm9ybXMtbGFiZWwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwt''@;'; put 'put ''ODAwKTstLWNsci1mb3Jtcy10ZXh0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWZvcm1zLWludmFsaWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWRhbmdlci04MDApOy0tY2xyLWZvcm1zLXZhbGlkLWNvbG9yOnZhcigtLWNsci1jb2xvci1zdWNjZXNzLTcwMCk7''@;'; put 'put ''LS1jbHItZm9ybXMtdmFsaWQtdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy05MDApOy0tY2xyLWZvcm1zLXN1YnRleHQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1mb3Jtcy1wbGFjZWhvbGRlci1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWNvbG9y''@;'; put 'put ''LWNvbnN0cnVjdGlvbi02MDApOy0tY2xyLWZvcm1zLWJvcmRlci1jb2xvcjojNmE3YTgxOy0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLXN1YnRleHQtZGlzYWJsZWQtY29sb3I6IzhjOGM4YzstLWNsci1mb3Jtcy1ib3Jk''@;'; put 'put ''ZXItZGlzYWJsZWQtY29sb3I6I2IzYjNiMzstLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yOiNiM2IzYjM7LS1jbHItZm9ybXMtbGFiZWwtZGlzYWJsZWQtY29sb3I6IzhjOGM4YzstLWNsci1mb3Jtcy1sYWJlbC1mb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQtYm9sZCk7''@;'; put 'put ''LS1jbHItZm9ybXMtYmxvY2stbGFiZWwtZm9udC13ZWlnaHQ6NDAwOy0tY2xyLWZvcm1zLXRleHQtZm9udC13ZWlnaHQ6NDAwOy0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1jbHItZm9ybXMtdGV4dGFyZWEtZm9jdXNl''@;'; put 'put ''ZC1vdXRsaW5lOjAgMCAuMXJlbSAuMXJlbSAjNjljMGUyOy0tY2xyLWZvcm1zLXRleHRhcmVhLWludmFsaWQtZm9jdXNlZC1vdXRsaW5lOjAgMCAuMXJlbSAuMXJlbSAjZmY3NDVjOy0tY2xyLWZvcm1zLXNlbGVjdC1ob3Zlci1iYWNrZ3JvdW5kOnJnYmEoIDIyMiwgMjIyLCAyMjIsIC41ICk7''@;'; put 'put ''LS1jbHItZm9ybXMtc2VsZWN0LWNhcmV0LWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItZm9ybXMtc2VsZWN0LWNhcmV0LWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItZm9ybXMtc2VsZWN0LW9wdGlvbi1jb2xvcjp2YXIoLS1j''@;'; put 'put ''bHItZm9ybXMtdGV4dC1jb2xvcik7LS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3IpOy0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9y''@;'; put 'put ''LW5ldXRyYWwtNDAwKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtb3B0aW9uLWNvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yKTstLWNsci1mb3Jtcy1zZWxlY3QtbXVsdGlwbGUtZXJyb3ItZm9jdXMtY29sb3I6I2ZmNzQ1YzstLWNsci1mb3Jtcy1jaGVja2JveC1sYWJlbC1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtY29sb3IpOy0tY2xyLWZvcm1zLWNoZWNrYm94LWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1h''@;'; put 'put ''Y3Rpb24tNjAwKTstLWNsci1mb3Jtcy1jaGVja2JveC1tYXJrLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm0tZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvcik7LS1jbHIt''@;'; put 'put ''Zm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtbWFyay1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1mb3Jtcy1jaGVja2JveC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzKTstLWNsci1mb3Jtcy1jaGVja2JveC1jaGVja2VkLXNoYWRv''@;'; put 'put ''dzppbnNldCAwIDAgMCAuM3JlbSB2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtYmFja2dyb3VuZC1jb2xvcik7LS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWxhYmVsLWNvbG9yKTstLWNsci1mb3Jtcy1yYWRpby1kaXNhYmxlZC1iYWNrZ3Jv''@;'; put 'put ''dW5kLWNvbG9yOnZhcigtLWNsci1mb3JtLWRpc2FibGVkLWJhY2tncm91bmQtY29sb3IpOy0tY2xyLWZvcm1zLXJhZGlvLWRpc2FibGVkLW1hcmstY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IpOy0tY2xyLWZvcm1zLXJhZGlvLXNlbGVjdGVkLXNo''@;'; put 'put ''YWRvdzp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtY2hlY2tlZC1zaGFkb3cpOy0tY2xyLWZvcm1zLXJhZGlvLWRpc2FibGVkLXNoYWRvdzp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtY2hlY2tlZC1zaGFkb3cpOy0tY2xyLWZvcm1zLXJhZGlvLWZvY3VzZWQtc2hhZG93OjAgMCAuMXJlbSAu''@;'; put 'put ''MXJlbSAjNjljMGUyOy0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCl9LmNsci1kYXRlLWNvbnRhaW5lciAuY2xyLWlu''@;'; put 'put ''cHV0LXdyYXBwZXJ7bWF4LXdpZHRoOi1tb3otZml0LWNvbnRlbnQ7bWF4LXdpZHRoOmZpdC1jb250ZW50fS5jbHItZm9ybS1jb250cm9se21hcmdpbi10b3A6MS4ycmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uY2xyLWZvcm0t''@;'; put 'put ''Y29udHJvbCBpbnB1dDo6LW1zLXJldmVhbCwuY2xyLWZvcm0tY29udHJvbCBpbnB1dDo6LW1zLWNsZWFye2Rpc3BsYXk6bm9uZX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2Iz''@;'; put 'put ''KX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCBsYWJlbCwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNvbnRyb2wtbGFiZWx7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZm9ybXMtbGFiZWwtZGlzYWJsZWQtY29sb3IsICM4YzhjOGMpfS5jbHItZm9ybS1jb250cm9s''@;'; put 'put ''LWRpc2FibGVkIC5jbHItaW5wdXQsLmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci10ZXh0YXJlYSwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLXNlbGVjdHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2Iz''@;'; put 'put ''KTtib3JkZXItYm90dG9tLWNvbG9yOiNiM2IzYjM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCBpbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7''@;'; put 'put ''YmFja2dyb3VuZC1jb2xvcjojYjNiM2IzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zdWJ0ZXh0e2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWZvcm1z''@;'; put 'put ''LXN1YnRleHQtZGlzYWJsZWQtY29sb3IsICM4YzhjOGMpfS5jbHItZm9ybS1jb250cm9sLW11bHRpe2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6d3JhcH0uY2xyLWZvcm0tY29udHJvbC1tdWx0aSAuY2xyLWNvbnRyb2wtbGFiZWx7d2lkdGg6MTAwJX0uY2xyLWNvbnRyb2wtbGFiZWx7''@;'; put 'put ''ZGlzcGxheTpibG9jaztjb2xvcjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1mb3Jtcy1sYWJlbC1jb2xvciwgIzQ1NDU0NSk7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvcm1zLWxhYmVsLWZvbnQtd2VpZ2h0LCA2MDApO2xpbmUtaGVp''@;'; put 'put ''Z2h0Oi45cmVtfS5jbHItY29udHJvbC1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1jb250cm9sLWlubGluZXtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0fS5jbHItY29udHJvbC1pbmxpbmUgLmNsci1jb250cm9sLWxhYmVs''@;'; put 'put ''e2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouNnJlbTt3aWR0aDphdXRvfS5jbHItc3VidGV4dHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouNTVyZW07bGluZS1oZWlnaHQ6LjZyZW07Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZm9ybXMtc3VidGV4dC1jb2xvciwg''@;'; put 'put ''IzhjOGM4Yyk7bWFyZ2luLXRvcDouM3JlbX0uY2xyLXN1YnRleHQtd3JhcHBlcntmbGV4LWJhc2lzOjEwMCU7ZGlzcGxheTpmbGV4fS5jbHItdmFsaWRhdGUtaWNvbntoZWlnaHQ6MS4ycmVtO3dpZHRoOjEuMnJlbTttaW4taGVpZ2h0OjEuMnJlbTttaW4td2lkdGg6MS4ycmVtO2NvbG9yOiNj''@;'; put 'put ''MjFkMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2Rpc3BsYXk6bm9uZTttYXJnaW4tbGVmdDotMS4ycmVtfS5jbHItc3VjY2VzcyAuY2xyLWlucHV0e2JvcmRlci1ib3R0b20tY29sb3I6IzNjODUwMDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNs''@;'; put 'put ''ci1mb3Jtcy12YWxpZC1jb2xvciwgIzNjODUwMCl9LmNsci1zdWNjZXNzIC5jbHItdmFsaWRhdGUtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojM2M4NTAwO2NvbG9yOnZhcigtLWNsci1mb3Jtcy12YWxpZC1jb2xvciwgIzNjODUwMCk7bWFyZ2luLWxlZnQ6LS4ycmVtfS5jbHIt''@;'; put 'put ''c3VjY2VzcyAuY2xyLXN1YnRleHR7Y29sb3I6IzI1NTIwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdmFsaWQtdGV4dC1jb2xvciwgIzI1NTIwMCl9LmNsci1lcnJvciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6LS4ycmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZXJyb3Ig''@;'; put 'put ''LmNsci1zdWJ0ZXh0e2NvbG9yOiNjMjFkMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApfS5jbHItZm9ybS1ob3Jpem9udGFsIC5jbHItZm9ybS1jb250cm9sPi5jbHItY29udHJvbC1sYWJlbCwuY2xyLWZvcm0taG9yaXpvbnRhbCAuY2xyLWZvcm0tY29u''@;'; put 'put ''dHJvbD4uY2xyLWZvcm0tY29udHJvbC5jbHItZm9ybS1jb250cm9sLW11bHRpIC5jbHItY29udHJvbC1sYWJlbHt3aWR0aDo5LjZyZW07ZmxleC1zaHJpbms6MDttYXJnaW4tdG9wOi4xNXJlbX0uY2xyLWZvcm0taG9yaXpvbnRhbC5jbHItcm93IC5jbHItY29udHJvbC1sYWJlbHt3aWR0aDph''@;'; put 'put ''dXRvfS5jbHItZm9ybS1ob3Jpem9udGFsIC5jbHItZm9ybS1jb250cm9se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3d9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1mb3JtLWNvbnRyb2w+LmNsci1jb250cm9sLWxhYmVse3dpZHRoOjkuNnJlbTttaW4td2lkdGg6OS42cmVtfS5jbHIt''@;'; put 'put ''Zm9ybS1jb21wYWN0IC5jbHItZm9ybS1jb250cm9sLmNsci1yb3c+LmNsci1jb250cm9sLWxhYmVse3dpZHRoOmF1dG87bWluLXdpZHRoOmF1dG99LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jb250cm9sLWxhYmVse21hcmdpbi10b3A6LjE1cmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZm9y''@;'; put 'put ''bS1jb250cm9se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7bWFyZ2luLXRvcDouNnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWNvbnRyb2wtY29udGFpbmVye2Rpc3BsYXk6ZmxleH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1YnRleHR7ZGlzcGxheTppbmxpbmUtYmxvY2s7''@;'; put 'put ''bWFyZ2luLXRvcDouM3JlbTttYXJnaW4tbGVmdDoxLjJyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1lcnJvciAuY2xyLXN1YnRleHQsLmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWNjZXNzIC5jbHItc3VidGV4dCwuY2xyLWZvcm0tY29tcGFjdCAuY2xyLWVycm9yIC5jbHItdmFsaWRhdGUt''@;'; put 'put ''aWNvbiwuY2xyLWZvcm0tY29tcGFjdCAuY2xyLXN1Y2Nlc3MgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1zdWJ0ZXh0LXdyYXBwZXJ7ZmxleC1iYXNpczphdXRvO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZm9ybSwuY2xyLWZvcm0t''@;'; put 'put ''Z3JvdXB7cGFkZGluZzouM3JlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmV9LmNsci1jaGVja2JveC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHtmb250LXdlaWdodDo0MDA7ZGlzcGxheTpibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci12YWxpZGF0''@;'; put 'put ''ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1jaGVja2JveC13cmFwcGVyfi5jbHItc3VidGV4dHtkaXNwbGF5OmlubGluZS1ibG9ja30uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF17cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3RvcDouMjVyZW07bGVmdDow''@;'; put 'put ''O2hlaWdodDouOHJlbTt3aWR0aDouOHJlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgbGFiZWx7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWluLWhlaWdodDoxLjJyZW07cGFkZGluZy1sZWZ0OjEuMXJlbTttYXJnaW4tdG9wOjA7Y3Vyc29yOnBvaW50ZXI7bGluZS1o''@;'; put 'put ''ZWlnaHQ6MS4ycmVtO2NvbG9yOiM0NTQ1NDU7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWxhYmVsLWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMnJlbTts''@;'; put 'put ''ZWZ0OjA7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Ym9yZGVyLXJh''@;'; put 'put ''ZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtYm9yZGVyLXJhZGl1cywgLjE1cmVtKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Zm9jdXMrbGFiZWw6YmVmb3Jle291dGxpbmU6SGlnaGxpZ2h0IHNvbGlkIC4xcmVt''@;'; put 'put ''O291dGxpbmU6LXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yIHNvbGlkIC4xcmVtO291dGxpbmUtb2Zmc2V0Oi4wNXJlbX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7Y29udGVudDoiIjtkaXNwbGF5Om5vbmU7''@;'; put 'put ''aGVpZ2h0Oi4yNXJlbTt3aWR0aDouNHJlbTtib3JkZXItbGVmdDouMXJlbSBzb2xpZDtib3JkZXItYm90dG9tOi4xcmVtIHNvbGlkO2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtbWFyay1jb2xvciwgd2hpdGUpO3RvcDouMnJlbTtsZWZ0''@;'; put 'put ''Oi4ycmVtO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC4ycmVtKSByb3RhdGUoLTQ1ZGVnKX0uY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZDojMDA3MmEzO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLWNoZWNr''@;'; put 'put ''Ym94LWJhY2tncm91bmQtY29sb3IsICMwMDcyYTMpO2JvcmRlcjowfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94''@;'; put 'put ''XS5jbHItaW5kZXRlcm1pbmF0ZStsYWJlbDpiZWZvcmUsLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmluZGV0ZXJtaW5hdGUrbGFiZWw6YmVmb3Jle2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWNvbG9yOnZhcigtLWNs''@;'; put 'put ''ci1mb3Jtcy1jaGVja2JveC1pbmRldGVybWluYXRlLWJvcmRlci1jb2xvciwgIzAwNzJhMyl9LmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdLmNsci1pbmRldGVybWluYXRlK2xhYmVsOmFmdGVyLC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNr''@;'; put 'put ''Ym94XTppbmRldGVybWluYXRlK2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0Om5vbmU7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWluZGV0ZXJtaW5hdGUtYm9yZGVyLWNvbG9yLCAjMDA3MmEzKTtkaXNwbGF5''@;'; put 'put ''OmlubGluZS1ibG9jazt0cmFuc2Zvcm06dHJhbnNsYXRlWSguMnJlbSl9LmNsci1jaGVja2JveC13cmFwcGVyLmNsci1jaGVja2JveC1pbmxpbmV7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1zdGFydH0uY2xyLWNoZWNrYm94LXdyYXBwZXIuY2xyLWNo''@;'; put 'put ''ZWNrYm94LWlubGluZSAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtO3dpZHRoOmF1dG99LmNsci1lcnJvciAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle2JvcmRlci1jb2xvcjoj''@;'; put 'put ''YzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGxhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xy''@;'; put 'put ''LWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3JlLC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7''@;'; put 'put ''YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtY2hlY2tib3gtZGlzYWJsZWQtYmFja2dyb3VuZC1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyOjB9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1jaGVja2JveC13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQr''@;'; put 'put ''bGFiZWw6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6LjFyZW0gc29saWQ7Ym9yZGVyLWJvdHRvbTouMXJlbSBzb2xpZDtib3JkZXItbGVmdC1jb2xvcjojMDAwO2JvcmRlci1sZWZ0LWNvbG9yOnZhcigtLWNsci1mb3Jtcy1jaGVja2JveC1kaXNhYmxlZC1tYXJrLWNvbG9yLCBibGFjayk7Ym9yZGVyLWJv''@;'; put 'put ''dHRvbS1jb2xvcjojMDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWNoZWNrYm94LWRpc2FibGVkLW1hcmstY29sb3IsIGJsYWNrKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tl''@;'; put 'put ''ZC5jbHItaW5kZXRlcm1pbmF0ZStsYWJlbDphZnRlciwuY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZDppbmRldGVybWluYXRlK2xhYmVsOmFmdGVye2JvcmRlci1sZWZ0Om5vbmV9LmNsci1mb3JtLWNv''@;'; put 'put ''bXBhY3QgLmNsci1jaGVja2JveC13cmFwcGVye21heC13aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDthbGlnbi1jb250ZW50OmZsZXgtc3RhcnQ7aGVpZ2h0OjEuMnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWNoZWNrYm94LXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e21h''@;'; put 'put ''cmdpbi1sZWZ0Oi4zcmVtfS5jbHItZm9ybS1jb21wYWN0IC5jbHItY2hlY2tib3gtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtO3dpZHRoOmF1dG99LmNsci1mb3JtLWNvbXBhY3QgLmNsci1jaGVja2JveC13cmFwcGVy''@;'; put 'put ''IC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOjB9LmNsci1maWxlLXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7bWFyZ2luLXRvcDouM3JlbX0uY2xyLWZpbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7Zm9udC13ZWlnaHQ6NDAwO2Rpc3BsYXk6YmxvY2t9LmNsci1maWxlLXdy''@;'; put 'put ''YXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1maWxlLXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItZmlsZS13cmFwcGVyIC5idG57bWFyZ2luOjB9LmNsci1maWxle2hlaWdodDowO3dpZHRoOjA7b3BhY2l0eTowO292ZXJm''@;'; put 'put ''bG93OmhpZGRlbjtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4Oi0xfS5jbHItZm9ybS1jb21wYWN0IC5jbHItZmlsZS13cmFwcGVye21heC13aWR0aDoxMDAlO21hcmdpbi10b3A6MH0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7bWFyZ2luLWxlZnQ6''@;'; put 'put ''LjNyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1maWxlLXdyYXBwZXJ+LmNsci12YWxpZGF0ZS1pY29ue2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlcn4uY2xyLXN1YnRleHR7bGluZS1oZWlnaHQ6MS4ycmVtO21hcmdpbi10b3A6MH0uY2xy''@;'; put 'put ''LWZvcm0tY29tcGFjdCAuY2xyLWZpbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowO2xpbmUtaGVpZ2h0OjEuMDhyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1maWxlLXdyYXBwZXIgLmJ0bntoZWlnaHQ6MS4ycmVtfS5jbHItaW5wdXQtd3JhcHBlcnt3aGl0ZS1z''@;'; put 'put ''cGFjZTpub3dyYXA7bWF4LWhlaWdodDoxLjJyZW19LmNsci1pbnB1dHstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1''@;'; put 'put ''czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtoZWlnaHQ6MS4ycmVtO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IsIGJsYWNrKTtib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiM2YTdhODE7Ym9yZGVyLWJv''@;'; put 'put ''dHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yLCAjNmE3YTgxKTtkaXNwbGF5OmlubGluZS1ibG9jaztwYWRkaW5nOjAgLjNyZW07bWF4LWhlaWdodDoxLjJyZW07Zm9udC1zaXplOi42NXJlbX0uY2xyLWlucHV0OmZvY3Vze291dGxpbmU6MH0uY2xyLWlucHV0W3JlYWRv''@;'; put 'put ''bmx5XXtib3JkZXI6MH0uY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAjMDA3MmEzKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6''@;'; put 'put ''MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3VzLC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pLmNsci1mb2N1c3tib3JkZXItYm90dG9tLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIo''@;'; put 'put ''LS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWlucHV0OmRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dl''@;'; put 'put ''ZH0uY2xyLWVycm9yIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pe2JvcmRlci1ib3R0b20tY29sb3I6I2MyMWQwMDtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20s''@;'; put 'put ''dHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlfS5jbHItZXJyb3IgLmNsci1pbnB1dDpub3QoW3JlYWRvbmx5''@;'; put 'put ''XSk6Zm9jdXMsLmNsci1lcnJvciAuY2xyLWlucHV0Om5vdChbcmVhZG9ubHldKS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQtc2l6ZToxMDAl''@;'; put 'put ''IDEwMCV9LmNsci1mb3JtLWNvbnRyb2wucm93IC5jbHItaW5wdXQtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMS4ycmVtKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWlucHV0e21heC13aWR0aDoxMDAlfS5jbHItZm9ybS1jb21wYWN0IC5jbHItaW5wdXR+LmNsci1zdWJ0ZXh0e21h''@;'; put 'put ''cmdpbi1sZWZ0Oi4zcmVtfS5jbHItZm9ybS1jb250cm9sLXJlYWRvbmx5IC5jbHItaW5wdXR7Ym9yZGVyOjB9LmNsci1mb3JtLWNvbnRyb2wtbXVsdGkgLmNsci1pbnB1dHttYXgtd2lkdGg6Y2FsYygxMDAlICsgMS4ycmVtKX06OnBsYWNlaG9sZGVye2NvbG9yOiM0ZjYxNjk7Y29sb3I6dmFy''@;'; put 'put ''KC0tY2xyLWZvcm1zLXBsYWNlaG9sZGVyLWNvbG9yLCAjNGY2MTY5KX0uY2xyLWlucHV0LWdyb3Vwe2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtY29sb3IsIGJsYWNrKTtib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3JkZXItYm90dG9tLWNvbG9yOiM2YTdhODE7''@;'; put 'put ''Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtYm9yZGVyLWNvbG9yLCAjNmE3YTgxKTtkaXNwbGF5OmlubGluZS1ibG9jaztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sdHJhbnNwYXJlbnQgOTUlLHZhcigtLWNsci1mb3Jtcy1mb2N1c2VkLWNvbG9yLCAj''@;'; put 'put ''MDA3MmEzKSA5NSUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MCAxMDAlO3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlO21heC13aWR0aDoxMDAlO2hlaWdodDoxLjJyZW19LmNsci1pbnB1dC1ncm91cDpmb2N1cywuY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1c3tib3Jk''@;'; put 'put ''ZXItYm90dG9tLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMyk7YmFja2dyb3VuZC1zaXplOjEwMCUgMTAwJX0uY2xyLWlucHV0LWdyb3VwLmNsci1mb2N1c3t3aWR0aDphdXRvfS5jbHItaW5wdXQtZ3JvdXAg''@;'; put 'put ''LmNsci1pbnB1dHtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDttYXJnaW4tcmlnaHQ6MDttYXgtd2lkdGg6MTAwJX0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQ6bm90KFtyZWFkb25seV0pOmZvY3Vze2JhY2tncm91bmQtc2l6ZTowO2JvcmRlcjowfS5jbHItaW5wdXQtZ3JvdXAgc2VsZWN0''@;'; put 'put ''LC5jbHItaW5wdXQtZ3JvdXAgLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3QsLmNsci1pbnB1dC1ncm91cCAuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0e2JvcmRlcjowfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1hZGRvbntjb2xvcjojOGM4YzhjO2NvbG9yOnZh''@;'; put 'put ''cigtLWNsci1mb3Jtcy1zdWJ0ZXh0LWNvbG9yLCAjOGM4YzhjKX0uY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtYWRkb246Zmlyc3QtY2hpbGR7cGFkZGluZzowIDAgMCAuNDVyZW19LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWFkZG9uOmxhc3QtY2hpbGR7cGFk''@;'; put 'put ''ZGluZzowIC40NXJlbSAwIDB9LmNsci1pbnB1dC1ncm91cCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9uey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6''@;'; put 'put ''MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO3BhZGRpbmc6MCAuNDVyZW19YnV0dG9uLmNsci1pbnB1dC1ncm91cCAuY2xyLWlu''@;'; put 'put ''cHV0LWdyb3VwLWljb24tYWN0aW9ue2N1cnNvcjpwb2ludGVyfS5jbHItaW5wdXQtZ3JvdXAgLmNsci1pbnB1dC1ncm91cC1pY29uLWFjdGlvbiBjZHMtaWNvbiwuY2xyLWlucHV0LWdyb3VwIC5jbHItaW5wdXQtZ3JvdXAtaWNvbi1hY3Rpb24gY2xyLWljb257aGVpZ2h0Oi45cmVtO3dpZHRo''@;'; put 'put ''Oi45cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGUoLS4wNXJlbSwtLjA1cmVtKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuY2xyLWlucHV0LWdyb3VwLWljb24tYWN0aW9ue2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMp''@;'; put 'put ''O2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItaW5wdXQtZ3JvdXB7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRv''@;'; put 'put ''IGJvdHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LmNsci1lcnJvciAuY2xyLWlucHV0LWdyb3Vw''@;'; put 'put ''OmZvY3VzLC5jbHItZXJyb3IgLmNsci1pbnB1dC1ncm91cC5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojYzIxZDAwO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWZvcm1zLWludmFsaWQtY29sb3IsICNjMjFkMDApO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1m''@;'; put 'put ''b3JtLWhvcml6b250YWwgLmNsci1pbnB1dC1ncm91cHttYXgtd2lkdGg6MTAwJTtwYWRkaW5nLXJpZ2h0OjB9LmNsci1yYWRpby13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLXJhZGlvLXdyYXBwZXIgLmNsci1jb250cm9sLWxhYmVse2ZvbnQtd2Vp''@;'; put 'put ''Z2h0OjQwMDtkaXNwbGF5OmJsb2NrfS5jbHItcmFkaW8td3JhcHBlcn4uY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLXJhZGlvLXdyYXBwZXJ+LmNsci1zdWJ0ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXXtw''@;'; put 'put ''b3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7dG9wOi4yNXJlbTtsZWZ0OjA7aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtfS5jbHItcmFkaW8td3JhcHBlciBsYWJlbHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazttaW4taGVpZ2h0OjEuMnJlbTtwYWRkaW5nLWxlZnQ6''@;'; put 'put ''MS4xcmVtO21hcmdpbi10b3A6MDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjJyZW07Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFkaW8tbGFiZWwtY29sb3IsICM0NTQ1NDUpfS5jbHItcmFkaW8td3JhcHBlciBsYWJlbDplbXB0eXtwYWRkaW5nLWxlZnQ6MH0u''@;'; put 'put ''Y2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb10rbGFiZWw6YmVmb3Jle3Bvc2l0aW9uOmFic29sdXRlO3RvcDouMnJlbTtsZWZ0OjA7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3Jk''@;'; put 'put ''ZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Ym9yZGVyLXJhZGl1czo1MCV9LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmNoZWNrZWQrbGFiZWw6YmVmb3Jle2JveC1zaGFkb3c6aW5zZXQgMCAw''@;'; put 'put ''IDAgLjNyZW0gIzAwNzJhMztib3gtc2hhZG93OnZhcigtLWNsci1mb3Jtcy1yYWRpby1zZWxlY3RlZC1zaGFkb3csIGluc2V0IDAgMCAwIC4zcmVtICMwMDcyYTMpO2JvcmRlcjowfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1cytsYWJlbDpiZWZvcmV7b3V0bGlu''@;'; put 'put ''ZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXTpmb2N1czpjaGVja2VkK2xhYmVsOmJlZm9yZXtvdXRsaW5lOkhp''@;'; put 'put ''Z2hsaWdodCBzb2xpZCAuMXJlbTtvdXRsaW5lOi13ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDouMDVyZW19LmNsci1yYWRpby13cmFwcGVyIGlucHV0W3R5cGU9cmFkaW9dOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtib3JkZXI6MDtib3gtc2hhZG93''@;'; put 'put ''Omluc2V0IDAgMCAwIC42cmVtICNlOGU4ZTg7Ym94LXNoYWRvdzp2YXIoLS1pbnNldCAwIDAgMCAuNnJlbSAjZThlOGU4LCBpbnNldCAwIDAgMCAuNnJlbSAjZThlOGU4KX0uY2xyLXJhZGlvLXdyYXBwZXIgaW5wdXRbdHlwZT1yYWRpb106Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbDpiZWZvcmV7''@;'; put 'put ''YmFja2dyb3VuZC1jb2xvcjojNjY2O2JhY2tncm91bmQtY29sb3I6dmFyKC0tIzY2NjY2NiwgIzY2NjY2Nik7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAuM3JlbSAjZThlOGU4O2JveC1zaGFkb3c6dmFyKC0taW5zZXQgMCAwIDAgLjNyZW0gI2U4ZThlOCwgaW5zZXQgMCAwIDAgLjNyZW0gI2U4''@;'; put 'put ''ZThlOCl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1yYWRpby13cmFwcGVyIGxhYmVse2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItcmFkaW8td3JhcHBlciBpbnB1dFt0eXBlPXJhZGlvXStsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVy''@;'; put 'put ''LWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLWVycm9yIC5jbHItc3VidGV4dHttYXJnaW4tbGVmdDowfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlcnttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmZs''@;'; put 'put ''ZXg7ZmxleC13cmFwOndyYXA7YWxpZ24tY29udGVudDpmbGV4LXN0YXJ0O2hlaWdodDoxLjJyZW19LmNsci1mb3JtLWNvbXBhY3QgLmNsci1yYWRpby13cmFwcGVyfi5jbHItc3VidGV4dHttYXJnaW4tbGVmdDouM3JlbX0uY2xyLWZvcm0tY29tcGFjdCAuY2xyLXJhZGlvLXdyYXBwZXIgLmNs''@;'; put 'put ''ci1jb250cm9sLWxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDouNnJlbTt3aWR0aDphdXRvfS5jbHItZm9ybS1jb21wYWN0IC5jbHItcmFkaW8td3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXRvcDowfS5jbHItc2VsZWN0LXdyYXBwZXIsLmNsci1tdWx0''@;'; put 'put ''aXNlbGVjdC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO3doaXRlLXNwYWNlOm5vd3JhcH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0ey13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBl''@;'; put 'put ''YXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2hlaWdodDoxLjJyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwg''@;'; put 'put ''YmxhY2spO2JvcmRlci1ib3R0b206LjA1cmVtIHNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRp''@;'; put 'put ''bmc6MCAxLjFyZW0gMCAuM3JlbTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjY1cmVtO3otaW5kZXg6Mn0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpmb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmZvY3Vze291dGxpbmU6MH0uY2xyLXNlbGVjdC13cmFwcGVyIHNl''@;'; put 'put ''bGVjdDpub3QoW211bHRpcGxlXSksLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLHRyYW5zcGFyZW50IDk1JSx2YXIoLS1jbHItZm9ybXMtZm9jdXNlZC1jb2xvciwgIzAwNzJhMykgOTUl''@;'; put 'put ''KSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjAgMTAwJTt0cmFuc2l0aW9uOmJhY2tncm91bmQtc2l6ZSAuMnMgZWFzZX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpub3QoW211bHRpcGxlXSk6Zm9jdXMsLmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6bm90KFttdWx0aXBsZV0pLmNs''@;'; put 'put ''ci1mb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKTpmb2N1cywuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0Om5vdChbbXVsdGlwbGVdKS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3VzLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3RbbXVsdGlwbGVdOmZvY3Vze291dGxp''@;'; put 'put ''bmU6SGlnaGxpZ2h0IGF1dG8gLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byAuMXJlbX0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDpob3ZlciwuY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdDphY3RpdmUsLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNlbGVj''@;'; put 'put ''dDpob3ZlciwuY2xyLW11bHRpc2VsZWN0LXdyYXBwZXIgc2VsZWN0OmFjdGl2ZXtib3JkZXItY29sb3I6I2RlZGVkZTgwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LWhvdmVyLWJhY2tncm91bmQsIHJnYmEoMjIyLCAyMjIsIDIyMiwgLjUpKTtiYWNrZ3JvdW5kOnJnYmEo''@;'; put 'put ''MjIyLDIyMiwyMjIsLjUpO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1ob3Zlci1iYWNrZ3JvdW5kLCByZ2JhKDIyMiwgMjIyLCAyMjIsIC41KSl9LmNsci1zZWxlY3Qtd3JhcHBlciBzZWxlY3Q6ZGlzYWJsZWQgb3B0aW9uLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxl''@;'; put 'put ''Y3Q6ZGlzYWJsZWQgb3B0aW9ue2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLXNlbGVjdC13cmFwcGVyIHNlbGVjdCBvcHRpb24sLmNsci1tdWx0aXNlbGVjdC13cmFwcGVyIHNl''@;'; put 'put ''bGVjdCBvcHRpb257Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW9wdGlvbi1jb2xvciwgYmxhY2spfS5jbHItc2VsZWN0LXdyYXBwZXIgc2VsZWN0OjotbXMtZXhwYW5kLC5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciBzZWxlY3Q6Oi1tcy1leHBhbmR7ZGlzcGxheTpu''@;'; put 'put ''b25lfS5jbHItc2VsZWN0LXdyYXBwZXJ7bWF4LWhlaWdodDoxLjJyZW07ZGlzcGxheTppbmxpbmUtYmxvY2t9LmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtjb250ZW50OiIiO2hlaWdodDouNXJlbTt3aWR0aDouNXJlbTt0b3A6LjM1cmVtO3JpZ2h0Oi4zcmVt''@;'; put 'put ''O2JhY2tncm91bmQtaW1hZ2U6dXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0ZjgsJTNDc3ZnJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB2aWV3Qm94JTNEJTIyMCUyMDAlMjAxMiUyMDEyJTIyJTNFJTBBJTIwJTIwJTIwJTIw''@;'; put 'put ''JTNDZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3N0eWxlJTNFLmNscy0xJTdCZmlsbCUzQSUyM2IzYjNiMyUzQiU3RCUzQyUyRnN0eWxlJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZGVmcyUzRSUwQSUyMCUyMCUyMCUyMCUzQ3RpdGxlJTNFQ2FyZXQlM0MlMkZ0aXRsZSUz''@;'; put 'put ''RSUwQSUyMCUyMCUyMCUyMCUzQ3BhdGglMjBjbGFzcyUzRCUyMmNscy0xJTIyJTIwZCUzRCUyMk02JTJDOUwxLjIlMkM0LjJhMC42OCUyQzAuNjglMkMwJTJDMCUyQzElMkMxLTFMNiUyQzcuMDglMkM5Ljg0JTJDMy4yNGEwLjY4JTJDMC42OCUyQzAlMkMxJTJDMSUyQzElMkMxWiUyMiUyRiUz''@;'; put 'put ''RSUwQSUzQyUyRnN2ZyUzRSUwQSk7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW46MH0uY2xyLXNlbGVjdC13cmFwcGVyOmhvdmVyOmFmdGVye2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xy''@;'; put 'put ''LWZvcm1zLXNlbGVjdC1jYXJldC1ob3Zlci1jb2xvciwgIzhjOGM4Yyl9LmNsci1lcnJvciAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVyLC5jbHItc3VjY2VzcyAuY2xyLXNlbGVjdC13cmFwcGVyOmFmdGVye3JpZ2h0OjEuNXJlbX0uY2xyLW11bHRpc2VsZWN0LXdyYXBwZXJ7ZGlzcGxheTpm''@;'; put 'put ''bGV4fS5jbHItbXVsdGlzZWxlY3Qtd3JhcHBlciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH1zZWxlY3RbbXVsdGlwbGVdLHNlbGVjdFtzaXplXXtwYWRkaW5nOjA7YmFja2dyb3VuZDojZmZmO2JhY2tncm91bmQ6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1iYWNr''@;'; put 'put ''Z3JvdW5kLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFy''@;'; put 'put ''KC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7aGVpZ2h0OmF1dG87bWluLXdpZHRoOjZyZW19c2VsZWN0W211bHRpcGxlXTpob3ZlcixzZWxlY3RbbXVsdGlwbGVdOmFjdGl2ZSxzZWxlY3Rbc2l6ZV06aG92ZXIsc2VsZWN0W3NpemVdOmFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmY7''@;'; put 'put ''YmFja2dyb3VuZDp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLWJhY2tncm91bmQtY29sb3IsIHdoaXRlKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1tdWx0aXBsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfXNlbGVjdFttdWx0''@;'; put 'put ''aXBsZV0gb3B0aW9uLHNlbGVjdFtzaXplXSBvcHRpb257cGFkZGluZzouMTVyZW0gLjNyZW07Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtc2VsZWN0LW11bHRpcGxlLW9wdGlvbi1jb2xvciwgYmxhY2spfS5jbHItZXJyb3Igc2VsZWN0Om5vdChbbXVsdGlwbGVdKXtib3JkZXIt''@;'; put 'put ''Ym90dG9tLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxpZC1jb2xvciwgI2MyMWQwMCl9LmNsci1lcnJvciBzZWxlY3RbbXVsdGlwbGVde2JvcmRlci1jb2xvcjojYzIxZDAwO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZm9ybXMtaW52YWxp''@;'; put 'put ''ZC1jb2xvciwgI2MyMWQwMCl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWR7Y29sb3I6I2IzYjNiMztjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1kaXNhYmxlZC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZm9ybS1jb250''@;'; put 'put ''cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0LmRpc2FibGVkOmhvdmVyOmFmdGVye2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXNlbGVjdC1jYXJldC1jb2xvciwgI2IzYjNiMyl9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmNsci1zZWxlY3QuZGlzYWJsZWQ+c2VsZWN0''@;'; put 'put ''LC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZHtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWRpc2FibGVkLWNvbG9yLCAjYjNiM2IzKTtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJs''@;'; put 'put ''ZWQgLmNsci1zZWxlY3QuZGlzYWJsZWQ+c2VsZWN0OmhvdmVyLC5jbHItZm9ybS1jb250cm9sLWRpc2FibGVkIC5jbHItc2VsZWN0IHNlbGVjdDpkaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJv''@;'; put 'put ''cmRlci1jb2xvciwgIzZhN2E4MSl9LmNsci1mb3JtLWNvbXBhY3QgLmNsci1tdWx0aXNlbGVjdC13cmFwcGVye21hcmdpbi10b3A6MH0uY2xyLXRleHRhcmVhLXdyYXBwZXJ7d2hpdGUtc3BhY2U6bm93cmFwO2Rpc3BsYXk6ZmxleDttYXJnaW4tdG9wOi4zcmVtfS5jbHItdGV4dGFyZWEtd3Jh''@;'; put 'put ''cHBlciAuY2xyLXZhbGlkYXRlLWljb257bWFyZ2luLWxlZnQ6MH0uY2xyLXRleHRhcmVhe21heC13aWR0aDpjYWxjKDEwMCUgLSAuM3JlbSk7aGVpZ2h0OmF1dG87cmVzaXplOnZlcnRpY2FsO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1mb3Jtcy10ZXh0YXJlYS1iYWNr''@;'; put 'put ''Z3JvdW5kLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyOi4wNXJlbSBzb2xpZDtib3JkZXItY29sb3I6IzZhN2E4MTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWZvcm1zLWJvcmRlci1jb2xvciwgIzZhN2E4MSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZm9ybXMtdGV4dC1jb2xvciwgYmxhY2sp''@;'; put 'put ''O2JvcmRlci1yYWRpdXM6LjE1cmVtO3BhZGRpbmc6LjRyZW0gLjZyZW07Zm9udC1zaXplOi42NXJlbX0uY2xyLXRleHRhcmVhOmZvY3Vze291dGxpbmU6SGlnaGxpZ2h0IGF1dG8gLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3IgYXV0byAuMXJlbX0uY2xyLXRleHRhcmVh''@;'; put 'put ''OmRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWVycm9yIC5jbHItdGV4dGFyZWF7Ym9yZGVyLWNvbG9yOiNjMjFkMDA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1m''@;'; put 'put ''b3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWNvbnRyb2wtY29udGFpbmVyIHRleHRhcmVhe3dpZHRoOmF1dG99LmNsci1mb3JtLWNvbnRyb2wucm93IC5jbHItdGV4dGFyZWEtd3JhcHBlcnttYXgtd2lkdGg6Y2FsYygxMDAlIC0gLjNyZW0pfS5jbHItZm9ybS1jb21wYWN0IC5j''@;'; put 'put ''bHItdGV4dGFyZWEtd3JhcHBlcnttYXJnaW4tdG9wOjB9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF7bWF4LXdpZHRoOjEwMCV9LmNsci1mb3JtLWNvbXBhY3QgLmNsci10ZXh0YXJlYS13cmFwcGVyIC5jbHItdGV4dGFyZWF+LmNsci1zdWJ0''@;'; put 'put ''ZXh0e21hcmdpbi1sZWZ0Oi4zcmVtfTpyb290ey0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmY6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci10b2dnbGUtYmctY29sb3Itb246dmFyKC0tY2xyLWNvbG9yLXN1Y2Nlc3MtNTAwKTstLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9y''@;'; put 'put ''OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwKTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci10b2dnbGUtZGlzYWJsZWQtZGVmYXVsdC1oYW5kbGUtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRy''@;'; put 'put ''YWwtMCk7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLWRlZmF1bHQtaGFu''@;'; put 'put ''ZGxlLWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb2ZmLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2Fi''@;'; put 'put ''bGVkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYmctY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1kZWZhdWx0LWJvcmRlci1jb2xvcik7LS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3I6dmFyKC0tY2xyLXRv''@;'; put 'put ''Z2dsZS1kaXNhYmxlZC1kZWZhdWx0LWhhbmRsZS1jb2xvcil9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFuY2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZX0uY2xy''@;'; put 'put ''LXRvZ2dsZS13cmFwcGVye2hlaWdodDoxLjJyZW07dmVydGljYWwtYWxpZ246bWlkZGxlO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7bWFyZ2luLXJpZ2h0Oi42cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRp''@;'; put 'put ''dmU7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEuMnJlbTttYXJnaW4tbGVmdDoyLjFyZW07bWFyZ2luLXJpZ2h0OjB9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LjNyZW07cmlnaHQ6LjNyZW07aGVpZ2h0Oi44cmVtO3dpZHRo''@;'; put 'put ''Oi44cmVtO29wYWNpdHk6MH0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmJlZm9yZXtwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouOXJlbTt3aWR0aDoxLjY1cmVtO2JvcmRlcjouMXJlbSBzb2xp''@;'; put 'put ''ZDtib3JkZXItcmFkaXVzOi40NXJlbTtib3JkZXItY29sb3I6IzhjOGM4Yztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1iZy1jb2xvci1vZmYsICM4YzhjOGMpO2JhY2tncm91bmQtY29sb3I6IzhjOGM4YztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3It''@;'; put 'put ''b2ZmLCAjOGM4YzhjKTt0b3A6LjE1cmVtO3JpZ2h0OjA7bGVmdDotMi4xcmVtO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dn''@;'; put 'put ''bGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpmb2N1cytsYWJlbDpiZWZvcmV7b3V0bGluZTpIaWdobGlnaHQgc29saWQgLjFyZW07b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LjA1cmVtfS5jbHItdG9nZ2xlLXdyYXBw''@;'; put 'put ''ZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7Ym9yZGVyLWNvbG9yOiM1YWEyMjA7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10b2dnbGUtYmctY29sb3Itb24sICM1YWEyMjApO2JhY2tncm91bmQtY29sb3I6IzVhYTIyMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigt''@;'; put 'put ''LWNsci10b2dnbGUtYmctY29sb3Itb24sICM1YWEyMjApO3RyYW5zaXRpb24tZHVyYXRpb246LjE1czt0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjplYXNlLWluO3RyYW5zaXRpb24tcHJvcGVydHk6Ym9yZGVyLWNvbG9yLGJhY2tncm91bmQtY29sb3J9LmNsci10b2dnbGUtd3JhcHBlciBp''@;'; put 'put ''bnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDphZnRlcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci1jb2xvcjojZmFmYWZhO2JvcmRlci1jb2xvcjp2YXIo''@;'; put 'put ''LS1jbHItdG9nZ2xlLWhhbmRsZS1iZy1jb2xvciwgI2ZhZmFmYSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtaGFuZGxlLWJnLWNvbG9yLCAjZmFmYWZhKTt0b3A6''@;'; put 'put ''LjI1cmVtO3JpZ2h0OjA7bGVmdDotMnJlbTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xNXM7dHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246ZWFzZS1pbjt0cmFuc2l0aW9uLXByb3BlcnR5OnJpZ2h0LGxlZnR9LmNsci10b2dnbGUtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2Vk''@;'; put 'put ''K2xhYmVsOmFmdGVye3JpZ2h0Oi0ycmVtO2xlZnQ6LTEuMjVyZW07dHJhbnNpdGlvbi1kdXJhdGlvbjouMTVzO3RyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOmVhc2UtaW47dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodCxsZWZ0fS5jbHItdG9nZ2xlLXdyYXBwZXIuZGlzYWJsZWQgbGFiZWx7''@;'; put 'put ''b3BhY2l0eTouNDtjdXJzb3I6bm90LWFsbG93ZWR9LmNsci10b2dnbGUtd3JhcHBlci5kaXNhYmxlZCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmJlZm9yZXtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1ib3Jk''@;'; put 'put ''ZXItY29sb3IsICNjY2NjY2MpO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10b2dnbGUtZGlzYWJsZWQtb24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVs''@;'; put 'put ''e2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmRpc2FibGVkK2xhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1iZy1jb2xvciwgd2hp''@;'; put 'put ''dGUpO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9mZi1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7YmFja2dyb3VuZC1jb2xv''@;'; put 'put ''cjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vZmYtYmctY29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjFyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVk''@;'; put 'put ''LW9mZi1oYW5kbGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtoZWlnaHQ6LjlyZW07d2lkdGg6LjlyZW07dG9wOi4xNXJlbX0uY2xyLXRvZ2dsZS13cmFwcGVyIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQ6ZGlzYWJsZWQrbGFiZWw6YmVmb3Jle2JvcmRlci1jb2xvcjojY2NjO2JvcmRl''@;'; put 'put ''ci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7YmFja2dyb3VuZC1jb2xvcjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRvZ2dsZS1kaXNhYmxlZC1vbi1iZy1jb2xvciwgI2NjY2NjYyl9LmNsci10b2dnbGUtd3JhcHBl''@;'; put 'put ''ciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkOmRpc2FibGVkK2xhYmVsOmFmdGVye2JvcmRlci1jb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItdG9nZ2xlLWRpc2FibGVkLW9uLWhhbmRsZS1ib3JkZXItY29sb3IsIHdoaXRlKTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07''@;'; put 'put ''dG9wOi4yNXJlbTtsZWZ0Oi0xLjI1cmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06ZGlzYWJsZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgbGFiZWx7bWFyZ2luLWxlZnQ6Mi4xcmVtO21hcmdpbi1y''@;'; put 'put ''aWdodDowfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YmVmb3Jle3JpZ2h0OjA7bGVmdDotMi4xcmVtfS5jbHItdG9nZ2xlLXdyYXBwZXIucmlnaHQtbGFiZWwgaW5wdXRbdHlwZT1jaGVja2JveF0rbGFiZWw6YWZ0ZXJ7cmlnaHQ6''@;'; put 'put ''MDtsZWZ0Oi0ycmVtO3RyYW5zaXRpb24tcHJvcGVydHk6bGVmdH0uY2xyLXRvZ2dsZS13cmFwcGVyLnJpZ2h0LWxhYmVsIGlucHV0W3R5cGU9Y2hlY2tib3hdOmNoZWNrZWQrbGFiZWw6YWZ0ZXJ7bGVmdDotMS4yNXJlbTt0cmFuc2l0aW9uLXByb3BlcnR5OmxlZnR9LmNsci10b2dnbGUtd3Jh''@;'; put 'put ''cHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4ycmVtfS5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXJpZ2h0''@;'; put 'put ''Oi42cmVtfS5jbHItdG9nZ2xlLXJpZ2h0IGxhYmVse2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbi1yaWdodDoyLjFyZW07bWFyZ2luLWxlZnQ6MH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XStsYWJlbDpiZWZvcmV7bGVmdDp1bnNldDtyaWdodDotMi4xcmVtfS5j''@;'; put 'put ''bHItdG9nZ2xlLXJpZ2h0IGlucHV0W3R5cGU9Y2hlY2tib3hdK2xhYmVsOmFmdGVye2xlZnQ6dW5zZXQ7cmlnaHQ6LTEuMjVyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVsOmFmdGVye2xlZnQ6''@;'; put 'put ''dW5zZXQ7cmlnaHQ6LTJyZW07dHJhbnNpdGlvbi1wcm9wZXJ0eTpyaWdodH0uY2xyLXRvZ2dsZS1yaWdodCBpbnB1dFt0eXBlPWNoZWNrYm94XTpkaXNhYmxlZCtsYWJlbDphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0xLjNyZW19LmNsci10b2dnbGUtcmlnaHQgaW5wdXRbdHlwZT1jaGVja2Jv''@;'; put 'put ''eF06Y2hlY2tlZDpkaXNhYmxlZCtsYWJlbDphZnRlcntsZWZ0OnVuc2V0O3JpZ2h0Oi0ycmVtfS5jbHItdG9nZ2xlLXJpZ2h0IC5jbHItY29udHJvbC1pbmxpbmUgLmNsci10b2dnbGUtd3JhcHBlciAuY2xyLWNvbnRyb2wtbGFiZWx7bWFyZ2luLXJpZ2h0OjIuN3JlbX0uY2xyLXJhbmdlLXdy''@;'; put 'put ''YXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmNsci1yYW5nZS13cmFwcGVyIC5maWxsLWlucHV0e3Bvc2l0aW9uOmFic29sdXRl''@;'; put 'put ''O2xlZnQ6MDtkaXNwbGF5OmlubGluZS1ibG9jaztoZWlnaHQ6LjJyZW07cG9pbnRlci1ldmVudHM6bm9uZTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEwO2JhY2tncm91bmQtY29sb3I6IzAwNzJhMztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS1wcm9ncmVzcy1maWxs''@;'; put 'put ''LWNvbG9yLCAjMDA3MmEzKX0uY2xyLXJhbmdle2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2hlaWdodDouN3JlbX0uY2xyLXJhbmdlOmRpc2FibGVkLC5jbHItcmFuZ2U6ZGlzYWJsZWQrLmZpbGwtaW5wdXR7cG9pbnRlci1ldmVudHM6''@;'; put 'put ''YXV0bztjdXJzb3I6bm90LWFsbG93ZWR9aW5wdXRbdHlwZT1yYW5nZV17cGFkZGluZzowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNr''@;'; put 'put ''LWNvbG9yLCAjZThlOGU4KX1pbnB1dFt0eXBlPXJhbmdlXTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1j''@;'; put 'put ''b2xvciwgI2U4ZThlOCl9aW5wdXRbdHlwZT1yYW5nZV06Oi13ZWJraXQtc2xpZGVyLXRodW1iey13ZWJraXQtYXBwZWFyYW5jZTpub25lO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEz''@;'; put 'put ''O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRyYWNre2hlaWdodDouMnJlbTtjdXJzb3I6cG9pbnRlcjtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dy''@;'; put 'put ''b3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtdHJhY2stY29sb3IsICNlOGU4ZTgpfWlucHV0W3R5cGU9cmFuZ2VdOjotbW96LXJhbmdlLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6LS4yNXJlbTtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07YmFj''@;'; put 'put ''a2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfUBzdXBwb3J0cyAoLW1zLWltZS1hbGlnbjphdXRvKXsuY2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5wdXR7ZGlzcGxheTpub25l''@;'; put 'put ''fS5jbHItcmFuZ2Utd3JhcHBlci5wcm9ncmVzcy1maWxsIGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3Is''@;'; put 'put ''ICMwMDcyYTMpfWlucHV0W3R5cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjdyZW19aW5wdXRbdHlwZT1yYW5nZV06Oi1tcy10cmFja3ttYXJnaW46MDtib3JkZXI6MDtoZWlnaHQ6LjJyZW07Y3Vyc29yOnBvaW50ZXI7''@;'; put 'put ''YmFja2dyb3VuZC1jb2xvcjojZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXRyYWNrLWNvbG9yLCAjZThlOGU4KX1pbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1ie2JvcmRlcjowO21hcmdpbi10b3A6MDtib3JkZXItcmFkaXVzOjUwJTtoZWlnaHQ6Ljdy''@;'; put 'put ''ZW07d2lkdGg6LjdyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfX1fOi1tcy1mdWxsc2NyZWVuIC5jbHItcmFuZ2Utd3JhcHBlciAuZmlsbC1pbnB1dCw6cm9vdCAu''@;'; put 'put ''Y2xyLXJhbmdlLXdyYXBwZXIgLmZpbGwtaW5wdXR7ZGlzcGxheTpub25lfV86LW1zLWZ1bGxzY3JlZW4gLmNsci1yYW5nZS13cmFwcGVyLnByb2dyZXNzLWZpbGwgaW5wdXRbdHlwZT1yYW5nZV06Oi1tcy1maWxsLWxvd2VyLDpyb290IC5jbHItcmFuZ2Utd3JhcHBlci5wcm9ncmVzcy1maWxs''@;'; put 'put ''IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtZmlsbC1sb3dlcntoZWlnaHQ6LjJyZW07YmFja2dyb3VuZC1jb2xvcjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXJhbmdlLXByb2dyZXNzLWZpbGwtY29sb3IsICMwMDcyYTMpfV86LW1zLWZ1bGxzY3JlZW4gaW5wdXRb''@;'; put 'put ''dHlwZT1yYW5nZV06Oi1tcy10b29sdGlwLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdG9vbHRpcHt2aXNpYmlsaXR5OmhpZGRlbn1fOi1tcy1mdWxsc2NyZWVuIGlucHV0W3R5cGU9cmFuZ2VdLDpyb290IGlucHV0W3R5cGU9cmFuZ2Vde2JvcmRlcjowO21hcmdpbjowOy13ZWJraXQt''@;'; put 'put ''YXBwZWFyYW5jZTpub25lO2xlZnQ6MDtoZWlnaHQ6LjdyZW19XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRyYWNrLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdHJhY2t7Ym9yZGVyOjA7bWFyZ2luOjA7aGVpZ2h0Oi4ycmVtO2N1cnNvcjpwb2ludGVyO2Jh''@;'; put 'put ''Y2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1yYW5nZS10cmFjay1jb2xvciwgI2U4ZThlOCl9XzotbXMtZnVsbHNjcmVlbiBpbnB1dFt0eXBlPXJhbmdlXTo6LW1zLXRodW1iLDpyb290IGlucHV0W3R5cGU9cmFuZ2VdOjotbXMtdGh1bWJ7''@;'; put 'put ''Ym9yZGVyOjA7bWFyZ2luLXRvcDowO2JvcmRlci1yYWRpdXM6NTAlO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZm9ybXMtcmFuZ2UtcHJvZ3Jlc3MtZmlsbC1jb2xvciwgIzAwNzJhMyl9aW5wdXRb''@;'; put 'put ''Y2xyRGF0YWxpc3RdOjotd2Via2l0LWNhbGVuZGFyLXBpY2tlci1pbmRpY2F0b3J7ZGlzcGxheTpub25lfWNsci1kYXRhbGlzdC1jb250YWluZXIgLmNsci1pbnB1dC1ncm91cHtwYWRkaW5nLXJpZ2h0OjB9OnJvb3R7LS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt''@;'; put 'put ''Y29sb3ItbmV1dHJhbC0wKTstLWNsci1jYWxlbmRhci1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1kYXRlcGlja2VyLXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLWRhdGVwaWNrZXItdHJpZ2dlci1ob3Zlci1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTgwMCk7LS1jbHItY2FsZW5kYXItYnRuLWNvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwKTstLWNsci1jYWxlbmRhci1idG4taG92ZXItZm9jdXMtY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ob3Zlci1jb2xvcik7LS1jbHItY2FsZW5k''@;'; put 'put ''YXItcGlja2VyLWJ0bi1mb250LXNpemU6LjlyZW07LS1jbHItY2FsZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdodDoyMDA7LS1jbHItY2FsZW5kYXItdG9kYXktZGF0ZS1jZWxsLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWNhbGVuZGFyLXRvZGF5LWRhdGUt''@;'; put 'put ''Y2VsbC1mb250LXdlaWdodDo2MDA7LS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItY2FsZW5kYXItYWN0aXZlLWZvY3VzLWNlbGwtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFs''@;'; put 'put ''LXNlbGVjdGlvbi1jb2xvcik7LS1jbHItY2FsZW5kYXItYWN0aXZlLWNlbGwtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMTAwMCk7LS1jbHItZGF5LWZvbnQtc2l6ZTouNnJlbX0uZGF0ZS1jb250YWluZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7d2hp''@;'; put 'put ''dGUtc3BhY2U6bm93cmFwfS5kYXRlcGlja2VyLXRyaWdnZXJ7aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1n''@;'; put 'put ''bG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbX0uZGF0ZXBpY2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdnZXItaWNvbntmaWxsOiMwMDcyYTM7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmln''@;'; put 'put ''Z2VyLWNvbG9yLCAjMDA3MmEzKX0uZGF0ZXBpY2tlci10cmlnZ2VyIC5kYXRlcGlja2VyLXRyaWdnZXItaWNvbjpob3ZlcntmaWxsOiMwMDU2N2E7ZmlsbDp2YXIoLS1jbHItZGF0ZXBpY2tlci10cmlnZ2VyLWhvdmVyLWNvbG9yLCAjMDA1NjdhKX0uZGF0ZXBpY2tlci10cmlnZ2VyOmRpc2Fi''@;'; put 'put ''bGVke2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWZvcm0tY29udHJvbCAuZGF0ZXBpY2tlci10cmlnZ2Vye2xpbmUtaGVpZ2h0OjEuMXJlbTtoZWlnaHQ6MS4xcmVtfS5kYXRlLWlucHV0e2ZsZXg6MSAxIGF1dG99LmRhdGVwaWNrZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVt''@;'; put 'put ''bjtwYWRkaW5nOi42cmVtO21hcmdpbi10b3A6LjNyZW07d2lkdGg6MTMuOXJlbTtoZWlnaHQ6MTUuN3JlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItY2FsZW5kYXItYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlcjouMDVyZW0gc29saWQ7Ym9yZGVyLWNvbG9y''@;'; put 'put ''OiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1jYWxlbmRhci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhj''@;'; put 'put ''OGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1wb3BvdmVyLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7b3ZlcmZsb3c6aGlkZGVuO3otaW5kZXg6MTA1MH0uY2FsZW5kYXItaGVhZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNv''@;'; put 'put ''bnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXJ9LmNhbGVuZGFyLXN3aXRjaGVycywueWVhci1zd2l0Y2hlcnN7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLS4xcmVtKTtkaXNwbGF5OmZsZXh9LnllYXItc3dpdGNoZXJze2ZsZXg6MCAwIGF1dG87d2lkdGg6NS40cmVtO2FsaWdu''@;'; put 'put ''LXNlbGY6Y2VudGVyfS5jYWxlbmRhci10YWJsZXtmbGV4OjEgMSBhdXRvO3dpZHRoOjEwMCV9LmNhbGVuZGFyLWNlbGwsLmNhbGVuZGFyLXRhYmxlIC5jYWxlbmRhci1jZWxse2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21pbi1oZWlnaHQ6MS44cmVtO21pbi13aWR0aDoxLjhyZW07cGFk''@;'; put 'put ''ZGluZzowO3RleHQtYWxpZ246Y2VudGVyfS5kYXl7ZGlzcGxheTppbmxpbmUtYmxvY2t9LndlZWtkYXlze2ZsZXg6MCAwIDEuOHJlbX0ud2Vla2RheXtmb250LXNpemU6LjZyZW07Zm9udC1zaXplOnZhcigtLWNsci1kYXktZm9udC1zaXplLCAuNnJlbSk7Zm9udC13ZWlnaHQ6NjAwfS5jYWxl''@;'; put 'put ''bmRhci1idG57aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0p''@;'; put 'put ''O2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTtmb250LXNpemU6LjlyZW07Zm9udC1zaXplOnZhcigtLWNsci1jYWxlbmRhci1waWNrZXItYnRuLWZvbnQtc2l6ZSwgLjlyZW0pO2ZvbnQtd2VpZ2h0OjIwMDtmb250LXdlaWdodDp2YXIoLS1jbHItY2Fs''@;'; put 'put ''ZW5kYXItcGlja2VyLWJ0bi1mb250LXdlaWdodCwgMjAwKX0uY2FsZW5kYXItYnRuOmhvdmVyLC5jYWxlbmRhci1idG46Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9LmNhbGVuZGFy''@;'; put 'put ''LWJ0bjpmb2N1c3tvdXRsaW5lOjB9LmRheS1idG57aGVpZ2h0OjEuOHJlbTttaW4td2lkdGg6MS44cmVtO3BhZGRpbmc6MDttYXJnaW46MCFpbXBvcnRhbnQ7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywg''@;'; put 'put ''LjE1cmVtKTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDoxLjhyZW07d2lkdGg6MTAwJTtjb2xvcjppbmhlcml0fS5kYXktYnRuOmhvdmVyLC5kYXktYnRuOmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1idG4t''@;'; put 'put ''aG92ZXItZm9jdXMtY29sb3IsICNlOGU4ZTgpfS5kYXktYnRuOmZvY3Vze291dGxpbmU6MH0uZGF5LWJ0bi5pcy10b2RheXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci10b2RheS1kYXRlLWNlbGwtY29sb3IsIGJsYWNrKTtmb250LXdlaWdodDo2MDA7Zm9udC13ZWlnaHQ6''@;'; put 'put ''dmFyKC0tY2xyLWNhbGVuZGFyLXRvZGF5LWRhdGUtY2VsbC1mb250LXdlaWdodCwgNjAwKX0uZGF5LWJ0bi5pcy1leGNsdWRlZHtvcGFjaXR5Oi40fS5kYXktYnRuLmlzLWV4Y2x1ZGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXktYnRuLmlzLXNlbGVjdGVke2JhY2tncm91bmQ6I2Q4ZTNl''@;'; put 'put ''OTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtY2VsbC1jb2xvciwgYmxhY2spfS5kYXktYnRuLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tn''@;'; put 'put ''cm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0uZGF5LWJ0bi5pcy1kaXNhYmxlZHtvcGFjaXR5Oi40O3BvaW50ZXItZXZlbnRzOm5vbmV9LmRheS1idG4uaXMtZGlzYWJsZWQ6aG92''@;'; put 'put ''ZXJ7YmFja2dyb3VuZDowIDB9LmNhbGVuZGFyLXBpY2tlcnN7ZGlzcGxheTpmbGV4fS5zd2l0Y2hlcntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpfS5zd2l0Y2hlciBjZHMtaWNvbiwuc3dpdGNoZXIgY2xyLWljb257aGVpZ2h0Oi45''@;'; put 'put ''cmVtO3dpZHRoOi45cmVtfS5tb250aHBpY2tlci10cmlnZ2VyLC55ZWFycGlja2VyLXRyaWdnZXJ7bWluLXdpZHRoOjIuNHJlbTttYXgtd2lkdGg6M3JlbTtjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jYWxlbmRhci1idG4tY29sb3IsICMwMDcyYTMpO3RleHQtYWxpZ246Y2VudGVy''@;'; put 'put ''O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubW9udGhwaWNrZXIsLnllYXJwaWNrZXJ7bWluLWhlaWdodDoxNC40cmVtfS5tb250aHBpY2tlciwueWVhcnBpY2tlciwueWVhcnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNv''@;'; put 'put ''bHVtbjtvdmVyZmxvdzpoaWRkZW59Lm1vbnRocGlja2VyLC55ZWFyc3tmbGV4LXdyYXA6d3JhcH0ubW9udGgsLnllYXJ7aGVpZ2h0OjIuNHJlbTttaW4td2lkdGg6Mi40cmVtO3BhZGRpbmc6MCAuNnJlbTttYXJnaW46MCFpbXBvcnRhbnQ7Y29sb3I6aW5oZXJpdDtib3JkZXI6MDtib3JkZXIt''@;'; put 'put ''cmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6MCAwO2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuOHJlbTt3aWR0aDo2LjNyZW07Zm9udC1zaXplOi45cmVtO2ZvbnQtd2VpZ2h0OjIwMDtvdXRs''@;'; put 'put ''aW5lLW9mZnNldDotLjI1cmVtfS5tb250aDpob3ZlciwubW9udGg6Zm9jdXMsLnllYXI6aG92ZXIsLnllYXI6Zm9jdXN7YmFja2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWJ0bi1ob3Zlci1mb2N1cy1jb2xvciwgI2U4ZThlOCl9Lm1vbnRoOmZvY3VzLC55''@;'; put 'put ''ZWFyOmZvY3Vze291dGxpbmU6MH0ubW9udGguaXMtZGlzYWJsZWQsLnllYXIuaXMtZGlzYWJsZWR7b3BhY2l0eTouNDtwb2ludGVyLWV2ZW50czpub25lfS5tb250aC5pcy1kaXNhYmxlZDpob3ZlciwueWVhci5pcy1kaXNhYmxlZDpob3ZlcntiYWNrZ3JvdW5kOjAgMH0ubW9udGguaXMtc2Vs''@;'; put 'put ''ZWN0ZWQsLnllYXIuaXMtc2VsZWN0ZWR7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWJhY2tncm91bmQtY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLWNhbGVuZGFyLWFjdGl2ZS1jZWxsLWNvbG9y''@;'; put 'put ''LCBibGFjayl9Lm1vbnRoLmlzLXNlbGVjdGVkOmZvY3VzLC55ZWFyLmlzLXNlbGVjdGVkOmZvY3Vze2JhY2tncm91bmQ6I2Q4ZTNlOTtiYWNrZ3JvdW5kOnZhcigtLWNsci1jYWxlbmRhci1hY3RpdmUtZm9jdXMtY2VsbC1iYWNrZ3JvdW5kLWNvbG9yLCAjZDhlM2U5KX0ubW9udGh7dGV4dC1h''@;'; put 'put ''bGlnbjpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS55ZWFye3RleHQtYWxpZ246Y2VudGVyfTpyb290ey0tY2xyLWNvbWJvYm94LXRyaWdnZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1j''@;'; put 'put ''b21ib2JveC1mb250LXNpemU6LjY1cmVtOy0tY2xyLWNvbWJvYm94LWJvcmRlci1jb2xvcjojZThlOGU4Oy0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LWlucHV0LWJhY2tncm91bmQ6I2YyZjJmMjstLWNsci1jb21ib2JveC1waWxsLWJhY2tncm91''@;'; put 'put ''bmQtY29sb3I6d2hpdGU7LS1jbHItY29tYm9ib3gtcGlsbC1ib3JkZXItY29sb3I6IzY2NjY2NjstLWNsci1jb21ib2JveC1waWxsLWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLWNvbWJvYm94LXBpbGwtZm9udC1jb2xvcjojNDU0NTQ1Oy0tY2xyLWNvbWJvYm94LWZpbHRlci1oaWdobGln''@;'; put 'put ''aHQ6IzQ1NDU0NX0uY2xyLWNvbWJvYm94LWZvcm0tY29udHJvbHthbGlnbi1pdGVtczpzdHJldGNofS5jbHItY29tYm9ib3gtZm9ybS1jb250cm9sIC5jbHItZXJyb3IgLmNsci12YWxpZGF0ZS1pY29ue21hcmdpbi1sZWZ0OjB9LmNsci1mb2N1cy1pbmRpY2F0b3J7YmFja2dyb3VuZC1jb2xv''@;'; put 'put ''cjojMDA3MmEzO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLWZvY3VzZWQtY29sb3IsICMwMDcyYTMpO2hlaWdodDouMXJlbTt3aWR0aDowO3RyYW5zaXRpb246d2lkdGggLjJzIGVhc2U7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOi0uMDVyZW07bGVmdDowO2JvcmRlci1ib3R0''@;'; put 'put ''b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1jb21i''@;'; put 'put ''b2JveC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItZm9jdXN7d2lkdGg6MTAwJX0uY2xyLWVycm9yIC5jbHItZm9jdXMtaW5kaWNhdG9ye2JhY2tncm91bmQtY29sb3I6I2MyMWQwMDtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1pbnZhbGlkLWNvbG9yLCAjYzIxZDAwKX0u''@;'; put 'put ''Y2xyLWNvbWJvYm94LXdyYXBwZXJ7cG9zaXRpb246cmVsYXRpdmU7cGFkZGluZzowIDEuMnJlbSAwIC4zcmVtO21pbi1oZWlnaHQ6MS4ycmVtO21pbi13aWR0aDo4LjRyZW07Zm9udC1zaXplOi42NXJlbTtmb250LXNpemU6dmFyKC0tY2xyLWNvbWJvYm94LWZvbnQtc2l6ZSwgLjY1cmVtKTtj''@;'; put 'put ''b2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1mb3Jtcy10ZXh0LWNvbG9yLCBibGFjayk7Ym9yZGVyLWJvdHRvbTouMDVyZW0gc29saWQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7YmFja2dyb3VuZC1jb2xvcjojZjJmMmYyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LWlucHV0''@;'; put 'put ''LWJhY2tncm91bmQtY29sb3IsICNmMmYyZjIpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojZThlOGU4O2JvcmRlci1jb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtYm9yZGVyLWNvbG9yLCAjZThlOGU4KTtib3JkZXItYm90dG9tLXdpZHRoOi4w''@;'; put 'put ''NXJlbTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20tY29sb3I6IzZhN2E4MTtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1mb3Jtcy1ib3JkZXItY29sb3IsICM2YTdhODEpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNv''@;'; put 'put ''bWJvYm94LWJvcmRlci1yYWRpdXMsIC4xNXJlbSl9LmNsci1jb21ib2JveC13cmFwcGVyLm11bHRpe21pbi13aWR0aDptaW4oMThyZW0sMTAwJSk7cGFkZGluZy1ib3R0b206LjE1cmVtfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWlucHV0LmNsci1jb21ib2JveC1pbnB1dDpmb2N1c3ti''@;'; put 'put ''YWNrZ3JvdW5kOjAgMH0uY2xyLWNvbWJvYm94LXdyYXBwZXIuaW52YWxpZHtib3JkZXItYm90dG9tLWNvbG9yOiNjMjFkMDB9LmNsci1jb21ib2JveC13cmFwcGVyIC5jbHItY29tYm9ib3gtaW5wdXR7YmFja2dyb3VuZDowIDA7Ym9yZGVyLWJvdHRvbTpub25lfS5jbHItY29tYm9ib3gtd3Jh''@;'; put 'put ''cHBlciAuY2xyLWNvbWJvYm94LXJlbW92ZS1idG57YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzouMTVyZW07Y29sb3I6IzQ1NDU0NX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGx7bWFyZ2luOi4xNXJlbSAuM3JlbSAwIDA7''@;'; put 'put ''YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2FsaWduLWl0ZW1zOmJhc2VsaW5lO2JvcmRlci1yYWRpdXM6LjE1''@;'; put 'put ''cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItY29sb3I6IzY2Njtib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbWJvYm94LXBpbGwtYm9yZGVyLWNvbG9yLCAjNjY2NjY2KTtwYWRkaW5nOjAgLjFyZW0gMCAuMnJl''@;'; put 'put ''bX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgLmNsci1jb21ib2JveC1waWxsLWNvbnRlbnR7Y29sb3I6IzQ1NDU0NTtjb2xvcjp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KTtmb250LXNpemU6LjU1cmVtO2ZvbnQtd2VpZ2h0''@;'; put 'put ''OjQwMDtwYWRkaW5nOjAgLjRyZW0gMCAuMnJlbX0uY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2RzLWljb25bc2hhcGU9d2luZG93LWNsb3NlXSwuY2xyLWNvbWJvYm94LXdyYXBwZXIgLmxhYmVsLWNvbWJvYm94LXBpbGwgY2xyLWljb25bc2hhcGU9d2luZG93''@;'; put 'put ''LWNsb3NlXXtjb2xvcjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1jb21ib2JveC1waWxsLWZvbnQtY29sb3IsICM0NTQ1NDUpfS5jbHItY29tYm9ib3gtd3JhcHBlciAuY2xyLWNvbWJvYm94LWlucHV0LXdyYXBwZXJ7Ym9yZGVyOjA7YmFja2dyb3VuZDowIDB9LmNsci1jb21ib2JveC10cmln''@;'; put 'put ''Z2Vye3dpZHRoOjEuMnJlbTttYXJnaW46YXV0bztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOmN1cnJlbnRDb2xvcjtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOjB9LmNsci1jb21ib2JveC10cmlnZ2VyOmRpc2Fi''@;'; put 'put ''bGVke2NvbG9yOnZhcigtLWNsci1idG4tbGluay1kaXNhYmxlZC1jb2xvciwgIzY2Nik7b3BhY2l0eTouNH0uY2xyLWNvbWJvYm94LXRyaWdnZXIgY2RzLWljb25bc2hhcGU9YW5nbGVdLC5jbHItY29tYm9ib3gtdHJpZ2dlciBjbHItaWNvbltzaGFwZT1hbmdsZV17Y29sb3I6IzQ1NDU0NTtj''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItY29tYm9ib3gtcGlsbC1mb250LWNvbG9yLCAjNDU0NTQ1KX0uY2xyLWNvbWJvYm94LW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MTAwJTtsZWZ0OjA7bWluLXdpZHRoOjZyZW07bWF4LXdpZHRo''@;'; put 'put ''OjE4cmVtO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kcm9wZG93bi1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRl''@;'; put 'put ''ci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1''@;'; put 'put ''cmVtICM4YzhjOGM0MDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSB2YXIoLS1jbHItZHJvcGRvd24tYm94LXNoYWRvdywgcmdiYSgxNDAsIDE0MCwgMTQwLCAuMjUpKTttYXJnaW4tdG9wOi4xcmVtO3BhZGRpbmc6LjZyZW0gMDt2aXNpYmlsaXR5OmhpZGRlbjt6LWluZGV4OjEwNTA7cG9z''@;'; put 'put ''aXRpb246c3RhdGljO21heC1oZWlnaHQ6MTJyZW07b3ZlcmZsb3cteTpzY3JvbGw7dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtbG9hZGluZ3twYWRkaW5nOi4xNXJlbSAxLjJyZW19LmNsci1jb21ib2JveC1vcHRpb25zIC5j''@;'; put 'put ''bHItY29tYm9ib3gtb3B0aW9ucy1sb2FkaW5nIC5jbHItY29tYm9ib3gtb3B0aW9ucy1sb2FkaW5nLXRleHR7cGFkZGluZy1sZWZ0Oi4zcmVtfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbnMtZW1wdHktdGV4dHtwYWRkaW5nLWxlZnQ6LjZyZW19LmNsci1jb21i''@;'; put 'put ''b2JveC1vcHRpb257Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZHJvcGRvd24taXRlbS1mb250LXdlaWdodCwgNDAwKTtsZXR0ZXItc3Bh''@;'; put 'put ''Y2luZzpub3JtYWw7YmFja2dyb3VuZDowIDA7Ym9yZGVyOjA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpibG9jaztoZWlnaHQ6YXV0bztsaW5lLWhlaWdodDppbmhlcml0O21hcmdpbjowO3dpZHRoOjEwMCU7dGV4dC10cmFuc2Zvcm06bm9uZX0uY2xyLWNvbWJvYm94LW9wdGlvbjpob3Zlcnti''@;'; put 'put ''YWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJvcGRvd24tYmctaG92ZXItY29sb3IsICNlOGU4ZTgpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLWRyb3Bkb3duLWl0ZW0tY29sb3IsICM2NjY2NjYpO3RleHQtZGVjb3JhdGlvbjpub25lfS5j''@;'; put 'put ''bHItY29tYm9ib3gtb3B0aW9uLmFjdGl2ZXtiYWNrZ3JvdW5kOiNkOGUzZTk7YmFja2dyb3VuZDp2YXIoLS1jbHItZHJvcGRvd24tc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi1hY3RpdmUtdGV4dC1jb2xvciwgYmxhY2spfS5j''@;'; put 'put ''bHItY29tYm9ib3gtb3B0aW9uOmFjdGl2ZXtib3gtc2hhZG93Om5vbmV9LmNsci1jb21ib2JveC1vcHRpb246Zm9jdXN7ei1pbmRleDppbmhlcml0fS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtv''@;'; put 'put ''cGFjaXR5Oi40Oy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2FibGVkOmhvdmVyLC5jbHItY29tYm9ib3gtb3B0aW9uOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5jbHItY29tYm9ib3gtb3B0aW9uLmRpc2Fi''@;'; put 'put ''bGVkOmFjdGl2ZSwuY2xyLWNvbWJvYm94LW9wdGlvbjpkaXNhYmxlZDphY3RpdmV7YmFja2dyb3VuZDowIDA7Ym94LXNoYWRvdzpub25lfS5jbHItY29tYm9ib3gtb3B0aW9uLmNsci1mb2N1c3tiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZHJv''@;'; put 'put ''cGRvd24tYmctaG92ZXItY29sb3IsICNlOGU4ZTgpfS5jbHItY29tYm9ib3gtb3B0aW9ucyAuY2xyLWNvbWJvYm94LW9wdGlvbntwYWRkaW5nOi4xNXJlbSAxLjJyZW19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo1NzZweCl7LmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9i''@;'; put 'put ''b3gtb3B0aW9ue3BhZGRpbmc6LjNyZW0gMS4ycmVtfX0uY2xyLWNvbWJvYm94LW9wdGlvbnMgLmNsci1jb21ib2JveC1vcHRpb246aG92ZXIsLmNsci1jb21ib2JveC1vcHRpb25zIC5jbHItY29tYm9ib3gtb3B0aW9uLmFjdGl2ZXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93''@;'; put 'put ''bi1pdGVtLWNvbG9yLCAjNjY2NjY2KX0uY2xyLWNvbWJvYm94LWRpc2FibGVke2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHQtZGlzYWJsZWQtY29sb3IsICNiM2IzYjMpO2N1cnNvcjpub3QtYWxsb3dlZH0uY2xyLWNvbWJvYm94LWRpc2FibGVkIC5jbHItY29tYm9i''@;'; put 'put ''b3gtaW5wdXQsLmNsci1jb21ib2JveC1kaXNhYmxlZCAuY2xyLWNvbWJvYm94LXJlbW92ZS1idG4sLmNsci1jb21ib2JveC1kaXNhYmxlZCAuY2xyLWNvbWJvYm94LXRyaWdnZXJ7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jbHItZmlsdGVyLWhpZ2hsaWdodCBie2ZvbnQtd2VpZ2h0OjUwMDtjb2xv''@;'; put 'put ''cjojNDU0NTQ1O2NvbG9yOnZhcigtLWNsci1jb21ib2JveC1maWx0ZXItaGlnaGxpZ2h0LCAjNDU0NTQ1KX06cm9vdHstLWNsci1zdGFjay12aWV3LWJvcmRlci1yYWRpdXM6LjE1cmVtOy0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7''@;'; put 'put ''LS1jbHItc3RhY2stdmlldy1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1ib3JkZXItYm90dG9tOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTMwMCk7LS1jbHItc3RhY2stdmlldy1jb2xvcjojNjY2NjY2Oy0tY2xyLXN0''@;'; put 'put ''YWNrLXZpZXctc3RhY2stYmxvY2stbGFiZWwtdGV4dC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLXN0YWNrLXZpZXctYm9yZGVyLWJveC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0zMDApOy0tY2xyLXN0YWNrLWJsb2NrLWNoYW5nZWQtYm9yZGVyLXRv''@;'; put 'put ''cC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1i''@;'; put 'put ''b3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1zdGFjay12aWV3LXN0''@;'; put 'put ''YWNrLWJsb2NrLWV4cGFuZGVkLWJnLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWV4cGFuZGFibGUtaG92ZXI6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMjAwKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2Nr''@;'; put 'put ''LWNvbnRlbnQtdGV4dC1jb2xvcjppbmhlcml0Oy0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stZXhwYW5kZWQtdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWNhcmV0LWNvbG9yOnZhcigtLWNsci1nbG9iYWwt''@;'; put 'put ''Zm9udC1jb2xvcil9LnN0YWNrLWhlYWRlcntmb250LXdlaWdodDo0MDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5zdGFjay1oZWFkZXIgLnN0YWNrLXRpdGxle2Rpc3BsYXk6YmxvY2s7ZmxleDoxIDEgYXV0bztwYWRkaW5nOi4zcmVtIDB9LnN0YWNrLWhlYWRlciAuc3Rh''@;'; put 'put ''Y2stYWN0aW9uc3tkaXNwbGF5OmJsb2NrO2ZsZXg6MCAwIGF1dG99LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9ue21hcmdpbjowIDAgLjNyZW0gLjZyZW19LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9uLmJ0bnttaW4td2lkdGg6MDtw''@;'; put 'put ''YWRkaW5nOjAgLjZyZW19LnN0YWNrLWhlYWRlciAuc3RhY2stYWN0aW9ucyAuc3RhY2stYWN0aW9uLmJ0bi1saW5re21hcmdpbi1yaWdodDotLjZyZW19LnN0YWNrLXZpZXd7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi42''@;'; put 'put ''NXJlbTtmb250LXdlaWdodDo0MDA7bGluZS1oZWlnaHQ6MS4ycmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDttYXJnaW4tdG9wOjA7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3''@;'; put 'put ''LWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIo''@;'; put 'put ''LS1jbHItc3RhY2stdmlldy1iZy1jb2xvciwgI2ZhZmFmYSk7d29yZC13cmFwOmJyZWFrLXdvcmR9LnN0YWNrLXZpZXcgZGQsLnN0YWNrLXZpZXcgZHR7bWFyZ2luLWlubGluZS1zdGFydDowO21hcmdpbi1sZWZ0OjB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2Nre2Rpc3BsYXk6ZmxleDtmbGV4''@;'; put 'put ''LWZsb3c6cm93IHdyYXA7Ym9yZGVyLWJvdHRvbS13aWR0aDouMDVyZW07Ym9yZGVyLWJvdHRvbS13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7Ym9yZGVyLWJvdHRvbS1jb2xvcjojZGVkZWRlO2JvcmRlci1ib3R0''@;'; put 'put ''b20tY29sb3I6dmFyKC0tY2xyLXN0YWNrLXZpZXctc3RhY2stYmxvY2stYm9yZGVyLWJvdHRvbSwgI2RlZGVkZSk7b3ZlcmZsb3cteTpoaWRkZW59LnN0YWNrLXZpZXc+LnN0YWNrLWJsb2NrOmxhc3QtY2hpbGQsLnN0YWNrLXZpZXc+Omxhc3QtY2hpbGQgLnN0YWNrLWJsb2NrOmxhc3Qtb2Yt''@;'; put 'put ''dHlwZXtib3JkZXItYm90dG9tOm5vbmU7Ym94LXNoYWRvdzowIC4wNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMDVyZW0gMCB2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItYm94LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY2hhbmdlZD4uc3RhY2stYmxvY2stbGFiZWx7''@;'; put 'put ''bWFyZ2luLWxlZnQ6LS40NXJlbX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY2hhbmdlZDpiZWZvcmV7Y29udGVudDoiICI7cG9zaXRpb246cmVsYXRpdmU7aGVpZ2h0OjA7d2lkdGg6MDtib3JkZXItdG9wOi40NXJlbSBzb2xpZDtib3JkZXItdG9wLWNvbG9yOiMwMDcyYTM7Ym9yZGVyLXRv''@;'; put 'put ''cC1jb2xvcjp2YXIoLS1jbHItc3RhY2stYmxvY2stY2hhbmdlZC1ib3JkZXItdG9wLWNvbG9yLCAjMDA3MmEzKTtib3JkZXItcmlnaHQ6LjQ1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nOi4zcmVtIC42cmVtO2JhY2tncm91bmQt''@;'; put 'put ''Y29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWxhYmVsLWFuZC1jb250ZW50LWJnLWNvbG9yLCAjZmFmYWZhKX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOmluaGVyaXR9LnN0YWNr''@;'; put 'put ''LXZpZXcgLnN0YWNrLWJsb2NrLWNhcmV0e2FsaWduLXNlbGY6Y2VudGVyfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1sYWJlbHtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWJsb2NrLWxhYmVsLXRleHQtY29sb3IsICM2NjY2NjYpO2ZvbnQtc2l6ZTouNjVy''@;'; put 'put ''ZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMnJlbTtsZXR0ZXItc3BhY2luZzpub3JtYWw7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXh9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5OmlubGluZS1ibG9jaztjb250ZW50OiIiO2Zsb2F0Omxl''@;'; put 'put ''ZnQ7aGVpZ2h0Oi43cmVtO3dpZHRoOi43cmVtO21hcmdpbjouMzVyZW0gLjI0cmVtIDAgMDt0ZXh0LWFsaWduOmNlbnRlcn0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stbGFiZWw6Zm9jdXN7b3V0bGluZTouMjVyZW0gYXV0byAtd2Via2l0LWZvY3VzLXJpbmctY29sb3J9LnN0YWNrLXZpZXcg''@;'; put 'put ''LnN0YWNrLXZpZXcta2V5e2ZsZXg6MCAwIDQwJTttYXgtd2lkdGg6NDAlfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1jYXJldHtoZWlnaHQ6LjdyZW07d2lkdGg6LjdyZW07bWFyZ2luLXJpZ2h0Oi4yNHJlbTtmaWxsOiM2NjY7ZmlsbDp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9j''@;'; put 'put ''ay1jYXJldC1jb2xvciwgIzY2NjY2Nil9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnR7Y29sb3I6aW5oZXJpdDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1jb250ZW50LXRleHQtY29sb3IsIGluaGVyaXQpO2ZsZXg6MSAxIGF1dG87d2lkdGg6NjAlO21h''@;'; put 'put ''cmdpbi1ib3R0b206MDtmb250LXdlaWdodDo0MDB9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWNvbnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stY29udGVudD46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnN0YWNrLXZpZXcgLnN0''@;'; put 'put ''YWNrLWNoaWxkcmVue2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2Nre2JvcmRlci1ib3R0b20tY29sb3I6I2U4ZThlODtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3LXN0YWNrLWNoaWxkcmVuLXN0''@;'; put 'put ''YWNrLWJsb2NrLWJvcmRlci1ib3R0b20tY29sb3IsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbj4uc3RhY2stYmxvY2s6bGFzdC1jaGlsZCwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4+Omxhc3QtY2hpbGQgLnN0YWNrLWJsb2NrOmxhc3Qtb2YtdHlwZXtib3JkZXIt''@;'; put 'put ''Ym90dG9tOm5vbmU7Ym94LXNoYWRvdzowIC4wNXJlbSAjZGVkZWRlO2JveC1zaGFkb3c6MCAuMDVyZW0gMCB2YXIoLS1jbHItc3RhY2stdmlldy1ib3JkZXItYm94LWNvbG9yKX0uc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWxhYmVsLC5zdGFjay12aWV3IC5zdGFj''@;'; put 'put ''ay1jaGlsZHJlbiAuc3RhY2stYmxvY2stY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1jaGlsZHJlbi1zdGFjay1ibG9jay1sYWJlbC1hbmQtY29udGVudC1iZy1jb2xvciwgd2hpdGUpfS5zdGFjay12aWV3''@;'; put 'put ''IC5zdGFjay1jaGlsZHJlbiAuc3RhY2stYmxvY2stbGFiZWx7cGFkZGluZy1sZWZ0OjEuMnJlbX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWx7Y3Vyc29yOnBvaW50ZXJ9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0''@;'; put 'put ''YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTIlMjAx''@;'; put 'put ''MiUyMiUzRSUwQSUyMCUyMCUyMCUyMCUzQ2RlZnMlM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0NzdHlsZSUzRS5jbHMtMSU3QmZpbGwlM0ElMjM2NjY2NjYlM0IlN0QlM0MlMkZzdHlsZSUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0N0aXRs''@;'; put 'put ''ZSUzRUNhcmV0JTNDJTJGdGl0bGUlM0UlMEElMjAlMjAlMjAlMjAlM0NwYXRoJTIwY2xhc3MlM0QlMjJjbHMtMSUyMiUyMGQlM0QlMjJNNiUyQzlMMS4yJTJDNC4yYTAuNjglMkMwLjY4JTJDMCUyQzAlMkMxJTJDMS0xTDYlMkM3LjA4JTJDOS44NCUyQzMuMjRhMC42OCUyQzAuNjglMkMwJTJD''@;'; put 'put ''MSUyQzElMkMxJTJDMVolMjIlMkYlM0UlMEElM0MlMkZzdmclM0UlMEEpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpO2hlaWdodDouNnJlbTt3aWR0aDouNnJl''@;'; put 'put ''bX0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stbGFiZWwsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnR7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCxjb2xvciAu''@;'; put 'put ''MnMgZWFzZS1pbi1vdXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU6aG92ZXI6bm90KC5zdGFjay1ibG9jay1leHBhbmRlZCk+LnN0YWNrLWJsb2NrLWxhYmVse2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zdGFjay12aWV3''@;'; put 'put ''LXN0YWNrLWJsb2NrLWV4cGFuZGFibGUtaG92ZXIsICNlOGU4ZTgpfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stbGFiZWw6YmVmb3Jle3RyYW5zZm9ybTpyb3RhdGUoMCl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9j''@;'; put 'put ''ay1sYWJlbHtiYWNrZ3JvdW5kLWNvbG9yOiNkOGUzZTk7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBhbmRlZC1iZy1jb2xvciwgI2Q4ZTNlOSk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItc3RhY2stdmlldy1zdGFjay1ibG9jay1leHBh''@;'; put 'put ''bmRlZC10ZXh0LWNvbG9yLCBibGFjayl9LnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZXh0XSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPXBhc3N3b3JkXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPW51bWJlcl0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1lbWFpbF0sLnN0YWNrLXZpZXcgaW5wdXRb''@;'; put 'put ''dHlwZT11cmxdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9dGVsXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPWRhdGVdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9dGltZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT1kYXRldGltZS1sb2NhbF0sLnN0YWNrLXZpZXcgLnNlbGVjdHtkaXNwbGF5Omlu''@;'; put 'put ''bGluZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3A7bWFyZ2luLXJpZ2h0Oi42cmVtO21hcmdpbi1ib3R0b206LS45NXJlbX0uc3RhY2stdmlldyBpbnB1dFt0eXBlPXRleHRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9cGFzc3dvcmRdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9bnVtYmVyXSwu''@;'; put 'put ''c3RhY2stdmlldyBpbnB1dFt0eXBlPWVtYWlsXSwuc3RhY2stdmlldyBpbnB1dFt0eXBlPXVybF0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3IGlucHV0W3R5cGU9ZGF0ZV0sLnN0YWNrLXZpZXcgaW5wdXRbdHlwZT10aW1lXSwuc3RhY2stdmlldyBpbnB1dFt0eXBl''@;'; put 'put ''PWRhdGV0aW1lLWxvY2FsXSwuc3RhY2stdmlldyAuc2VsZWN0IHNlbGVjdHtoZWlnaHQ6MS4ycmVtfS5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFi''@;'; put 'put ''bGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1udW1iZXJdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1i''@;'; put 'put ''bG9jay1jb250ZW50IGlucHV0W3R5cGU9ZW1haWxdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBpbnB1''@;'; put 'put ''dFt0eXBlPXRlbF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1kYXRlXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kYWJsZT4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5zdGFj''@;'; put 'put ''ay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZGF0ZXRpbWUtbG9jYWxde3RyYW5zaXRpb246YmFja2dyb3VuZC1zaXplIC4ycyBlYXNlLGJvcmRlci1ib3R0b20tY29sb3IgLjJzIGVhc2UtaW4tb3V0fS5zdGFjay12aWV3IC5z''@;'; put 'put ''dGFjay1ibG9jay1leHBhbmRhYmxlPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0e3RyYW5zaXRpb246Ym9yZGVyLWJvdHRvbS1jb2xvciAuMnMgZWFzZS1pbi1vdXR9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGFibGU+LnN0YWNrLWJsb2NrLWNvbnRlbnQgLnNl''@;'; put 'put ''bGVjdDphZnRlcnt0cmFuc2l0aW9uOmNvbG9yIC4ycyBlYXNlLWluLW91dH0uc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZXh0XSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNv''@;'; put 'put ''bnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlw''@;'; put 'put ''ZT1lbWFpbF0sLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXSwuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10ZWxdLC5zdGFjay12aWV3IC5z''@;'; put 'put ''dGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRpbWVdLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4u''@;'; put 'put ''c3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXXtib3JkZXItYm90dG9tLWNvbG9yOiM4YzhjOGM7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJv''@;'; put 'put ''dHRvbSx0cmFuc3BhcmVudCA5NSUsdmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpIDk1JSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTowIDEwMCU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLXNpemUgLjJzIGVhc2V9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVk''@;'; put 'put ''Pi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF06Zm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dGV4dF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3Rh''@;'; put 'put ''Y2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXBhc3N3b3JkXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT1wYXNzd29yZF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4u''@;'; put 'put ''c3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPW51bWJlcl06Zm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9bnVtYmVyXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5z''@;'; put 'put ''dGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9ZW1haWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWVtYWlsXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFj''@;'; put 'put ''ay1ibG9jay1jb250ZW50IGlucHV0W3R5cGU9dXJsXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT11cmxdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2Nr''@;'; put 'put ''LWNvbnRlbnQgaW5wdXRbdHlwZT10ZWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPXRlbF0uY2xyLWZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVu''@;'; put 'put ''dCBpbnB1dFt0eXBlPWRhdGVdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGVdLmNsci1mb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5w''@;'; put 'put ''dXRbdHlwZT10aW1lXTpmb2N1cywuc3RhY2stdmlldyAuc3RhY2stYmxvY2stZXhwYW5kZWQ+LnN0YWNrLWJsb2NrLWNvbnRlbnQgaW5wdXRbdHlwZT10aW1lXS5jbHItZm9jdXMsLnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IGlucHV0W3R5''@;'; put 'put ''cGU9ZGF0ZXRpbWUtbG9jYWxdOmZvY3VzLC5zdGFjay12aWV3IC5zdGFjay1ibG9jay1leHBhbmRlZD4uc3RhY2stYmxvY2stY29udGVudCBpbnB1dFt0eXBlPWRhdGV0aW1lLWxvY2FsXS5jbHItZm9jdXN7Ym9yZGVyLWJvdHRvbS1jb2xvcjojMDA3MmEzO2JvcmRlci1ib3R0b20tY29sb3I6''@;'; put 'put ''dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpO2JhY2tncm91bmQtc2l6ZToxMDAlIDEwMCV9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Qgc2VsZWN0e2JvcmRlci1ib3R0b20tY29sb3I6IzhjOGM4Yztib3Jk''@;'; put 'put ''ZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCwgIzhjOGM4Yyl9LnN0YWNrLXZpZXcgLnN0YWNrLWJsb2NrLWV4cGFuZGVkPi5zdGFjay1ibG9jay1jb250ZW50IC5zZWxlY3Q6YWZ0ZXJ7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJh''@;'; put 'put ''bC02MDAsICM4YzhjOGMpfS5tb2RhbCAuc3RhY2stdmlld3toZWlnaHQ6NTV2aDttYXJnaW4tYm90dG9tOjB9LnN0YWNrLXZpZXcgY2xyLXN0YWNrLWJsb2NrLnN0YWNrLWJsb2NrLWV4cGFuZGFibGUgLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtjb250ZW50Om5vbmV9LnN0YWNrLXZpZXcg''@;'; put 'put ''LnN0YWNrLWNoaWxkcmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stbGFiZWwsLnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIC5zdGFjay1ibG9jay1sYWJlbHtwYWRkaW5nLWxlZnQ6MS44cmVtfS5zdGFjay12aWV3IC5zdGFjay1jaGlsZHJlbiBjbHItc3RhY2stYmxvY2sgLnN0''@;'; put 'put ''YWNrLWJsb2NrLWxhYmVsOmJlZm9yZSwuc3RhY2stdmlldyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWxhYmVsOmJlZm9yZXtkaXNwbGF5Om5vbmV9LnN0YWNrLXZpZXcgLnN0YWNrLWNoaWxkcmVuIGNsci1zdGFjay1ibG9jayAuc3RhY2stYmxvY2stY29udGVudCwuc3RhY2stdmll''@;'; put 'put ''dyAuc3RhY2stY2hpbGRyZW4gLnN0YWNrLWJsb2NrLWNvbnRlbnR7cGFkZGluZy1sZWZ0Oi4zNnJlbX06cm9vdHstLWNsci10cmVlLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yOnZhcigt''@;'; put 'put ''LWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXRyZWUtbGluay1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY3VzdG9tLWxpbmtzLWhvdmVyLWNvbG9yKTstLWNsci10cmVlLWxpbmstc2VsZWN0aW9uLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci10cmVl''@;'; put 'put ''LWxpbmstdGV4dC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRyZWUtbm9kZS1jYXJldC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC01MDApfS5jbHItdHJlZS1ub2Rle2Rpc3BsYXk6YmxvY2t9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXJ7''@;'; put 'put ''ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY2xyLXRyZWVub2RlLWNvbnRlbnR7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlci1yYWRpdXM6MDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFk''@;'; put 'put ''aXVzOnZhcigtLWNsci10cmVlLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdHJlZS1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0OjEuNjJyZW19LmNsci10''@;'; put 'put ''cmVlbm9kZS1jb250ZW50OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDoxLjYycmVtfS5jbHItdHJlZW5vZGUtY29udGVudCBjZHMtaWNvbiwuY2xyLXRyZWVub2RlLWNvbnRlbnQgY2xyLWljb257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtO21hcmdpbi1yaWdodDouM3JlbTt2ZXJ0aWNhbC1h''@;'; put 'put ''bGlnbjptaWRkbGV9LmNsci10cmVlbm9kZS1jYXJldHtmbGV4OjAgMCAxLjYycmVtO3BhZGRpbmc6MDttYXJnaW46MDtoZWlnaHQ6MS42MnJlbTt3aWR0aDoxLjYycmVtO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJl''@;'; put 'put ''dC1jb2xvciwgI2IzYjNiMyk7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZS1vZmZzZXQ6LS4yNXJlbX0uY2xyLXRyZWVub2RlLWNhcmV0OmhvdmVye2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5vZGUt''@;'; put 'put ''Y2FyZXQtaWNvbntoZWlnaHQ6LjhyZW07d2lkdGg6LjhyZW07dmVydGljYWwtYWxpZ246bWlkZGxlfS5jbHItdHJlZW5vZGUtc3Bpbm5lci1jb250YWluZXJ7aGVpZ2h0OjEuNjJyZW07d2lkdGg6MS42MnJlbTtwYWRkaW5nOi40MXJlbX0uY2xyLXRyZWVub2RlLXNwaW5uZXJ7aGVpZ2h0Oi44''@;'; put 'put ''cmVtO3dpZHRoOi44cmVtO21pbi1oZWlnaHQ6LjhyZW07bWluLXdpZHRoOi44cmVtfS5jbHItdHJlZW5vZGUtY2hpbGRyZW57bWFyZ2luLWxlZnQ6MS4xN3JlbTt3aWxsLWNoYW5nZTpoZWlnaHQ7b3ZlcmZsb3cteTpoaWRkZW59LmNsci10cmVlbm9kZS1saW5re2Rpc3BsYXk6aW5saW5lLWJs''@;'; put 'put ''b2NrO2hlaWdodDoxMDAlO3dpZHRoOjEwMCU7bWFyZ2luOjA7cGFkZGluZzowIDAgMCAuM3JlbTtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10cmVlLWxpbmstdGV4dC1jb2xvciwgIzY2NjY2Nik7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6''@;'; put 'put ''aW5oZXJpdDt0ZXh0LWFsaWduOmxlZnR9LmNsci10cmVlbm9kZS1saW5rOmxpbmssLmNsci10cmVlbm9kZS1saW5rOnZpc2l0ZWQsLmNsci10cmVlbm9kZS1saW5rOmFjdGl2ZSwuY2xyLXRyZWVub2RlLWxpbms6aG92ZXJ7Y29sb3I6aW5oZXJpdH0uY2xyLXRyZWVub2RlLWxpbms6aG92ZXIs''@;'; put 'put ''LmNsci10cmVlbm9kZS1saW5rOmZvY3Vze2JhY2tncm91bmQ6I2U4ZThlODtiYWNrZ3JvdW5kOnZhcigtLWNsci10cmVlLWxpbmstaG92ZXItY29sb3IsICNlOGU4ZTgpO3RleHQtZGVjb3JhdGlvbjpub25lfS5jbHItdHJlZW5vZGUtbGluay5hY3RpdmV7YmFja2dyb3VuZDojZDhlM2U5O2Jh''@;'; put 'put ''Y2tncm91bmQ6dmFyKC0tY2xyLXRyZWUtbGluay1zZWxlY3Rpb24tY29sb3IsICNkOGUzZTkpO2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXRyZWUtbm9kZS1jYXJldC1saW5rLWhvdmVyLWNvbG9yLCBibGFjayl9LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci1jaGVj''@;'; put 'put ''a2JveC13cmFwcGVye2hlaWdodDoxLjYycmVtO3dpZHRoOjEuNjJyZW07cGFkZGluZy10b3A6LjIxcmVtO3BhZGRpbmctbGVmdDouNDFyZW19LmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI+LmNsci1jaGVja2JveC13cmFwcGVyOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjEuNjJy''@;'; put 'put ''ZW19LmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouM3JlbX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouMTVyZW19fV86LW1zLWlucHV0LXBsYWNlaG9sZGVyIC5jbHItdHJlZW5v''@;'; put 'put ''ZGUtY29udGVudCAubGFiZWwsOnJvb3QgLmNsci10cmVlbm9kZS1jb250ZW50IC5sYWJlbHttYXJnaW4tbGVmdDouMTVyZW19OnJvb3R7LS1jbHItZGF0YWdyaWQtZm9udC1jb2xvcjojYWNiYWMzOy0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1u''@;'; put 'put ''ZXV0cmFsLTQwMCk7LS1jbHItZGF0YWdyaWQtaWNvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWRhdGFncmlkLXJvdy1ob3Zlci1mb250LWNvbG9yOnZhcigtLWNs''@;'; put 'put ''ci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWRhdGFncmlkLWFjdGlvbi10b2dnbGU6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNzAwKTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0bi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLWRhdGFncmlkLXBhZ2lu''@;'; put 'put ''YXRpb24tYnRuLWRpc2FibGVkLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTYwMCk7LS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRlZmF1bHQtYm9yZGVyLWNvbG9yKTstLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9u''@;'; put 'put ''LWlucHV0LWJvcmRlci1mb2N1cy1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTQwMCk7LS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdy''@;'; put 'put ''aWQtZGVmYXVsdC1ib3JkZXItY29sb3IpOy0tY2xyLWRhdGFncmlkLWFjdGlvbi1wb3BvdmVyLWhvdmVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTIwMCk7LS1jbHItZGF0YWdyaWQtcm93LXNlbGVjdGVkOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLWRhdGFn''@;'; put 'put ''cmlkLWxvYWRpbmctYmFja2dyb3VuZDpyZ2JhKDI1NSwgMjU1LCAyNTUsIC42KTstLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yOnJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KTstLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yOnZhcigt''@;'; put 'put ''LWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1iZy1jb2xvcjp2YXIoLS1jbHItY29s''@;'; put 'put ''b3ItYWN0aW9uLTYwMCk7LS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1pY29uLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItZGF0YWdy''@;'; put 'put ''aWQtcGxhY2Vob2xkZXItZm9udC1zaXplOi44cmVtOy0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24tYnRuLWRpc2FibGVkLW9wYWNpdHk6LjU2fS5kYXRhZ3JpZHtib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdp''@;'; put 'put ''ZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItdGFibGUtYm9y''@;'; put 'put ''ZGVyLXJhZGl1cywgLjE1cmVtKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO21hcmdpbjowO21hcmdpbi10b3A6''@;'; put 'put ''MS4ycmVtO21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LmRhdGFncmlkIC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkIC5kYXRhZ3JpZC1jZWxse2ZvbnQtc2l6ZTouNjVyZW07bGluZS1oZWlnaHQ6LjdyZW07Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLXdpZHRoOi4wNXJl''@;'; put 'put ''bTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci10YWJsZS1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItdG9wLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1jbHItdGFibGVyb3ctYm9yZGVyY29sb3IsICNlOGU4ZTgpO3BhZGRpbmc6LjU1cmVtIC42cmVtO3RleHQt''@;'; put 'put ''YWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbi5sZWZ0LC5kYXRhZ3JpZCAuZGF0YWdyaWQtY2VsbC5sZWZ0e3RleHQtYWxpZ246bGVmdH0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbi5sZWZ0OmZpcnN0LWNoaWxkLC5kYXRhZ3JpZCAu''@;'; put 'put ''ZGF0YWdyaWQtY2VsbC5sZWZ0OmZpcnN0LWNoaWxke3BhZGRpbmctbGVmdDouM3JlbX0uZGF0YWdyaWQgLmRhdGFncmlkLWNvbHVtbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aGVhZC1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi41NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVy''@;'; put 'put ''LXNwYWNpbmc6LjAzZW07YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO3ZlcnRpY2FsLWFsaWduOmJvdHRvbTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVt''@;'; put 'put ''O2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1ib3R0b20tY29sb3I6I2NjYztib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci10b3A6MCBub25lfS5kYXRh''@;'; put 'put ''Z3JpZCAuZGF0YWdyaWQtYm9keSAuZGF0YWdyaWQtcm93OmZpcnN0LWNoaWxkIC5kYXRhZ3JpZC1jZWxse2JvcmRlci10b3A6MCBub25lfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keSsuZGF0YWdyaWQtYm9keXtib3JkZXItdG9wLXN0eWxlOnNvbGlkO2JvcmRlci10b3Atd2lkdGg6LjA1cmVt''@;'; put 'put ''O2JvcmRlci10b3Atd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3AtY29sb3I6I2NjYztib3JkZXItdG9wLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVyIC5kYXRh''@;'; put 'put ''Z3JpZC1jb2x1bW46Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZCAuZGF0YWdyaWQtaGVhZGVyIC5kYXRh''@;'; put 'put ''Z3JpZC1jb2x1bW46bGFzdC1jaGlsZHtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6LjFyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLXRhYmxlLWNvcm5lcmNlbGxyYWRpdXMsIC4xcmVtKX0uZGF0YWdyaWQgLmRhdGFncmlkLWJvZHk6bGFzdC1j''@;'; put 'put ''aGlsZCAuZGF0YWdyaWQtcm93Omxhc3QtY2hpbGQgLmRhdGFncmlkLWNlbGw6Zmlyc3QtY2hpbGR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjFyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywg''@;'; put 'put ''LjFyZW0pfS5kYXRhZ3JpZCAuZGF0YWdyaWQtYm9keTpsYXN0LWNoaWxkIC5kYXRhZ3JpZC1yb3c6bGFzdC1jaGlsZCAuZGF0YWdyaWQtY2VsbDpsYXN0LWNoaWxke2JvcmRlci1yYWRpdXM6MDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMXJlbTtib3JkZXItYm90dG9tLXJpZ2h0LXJh''@;'; put 'put ''ZGl1czp2YXIoLS1jbHItdGFibGUtY29ybmVyY2VsbHJhZGl1cywgLjFyZW0pfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNlbGx7cGFkZGluZy10b3A6LjNyZW07cGFkZGluZy1ib3R0b206LjI1cmVtfS5kYXRhZ3JpZC1o''@;'; put 'put ''b3N0e2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6Y29sdW1uIG5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZX0uZGF0YWdyaWR7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7LW1zLW92ZXJmbG93LXN0eWxlOi1tcy1hdXRvaGlkaW5nLXNjcm9s''@;'; put 'put ''bGJhcjtvdmVyZmxvdzphdXRvO2ZsZXg6MSAxIGF1dG87bWFyZ2luLXRvcDouNnJlbX0uZGF0YWdyaWQtY29udGFpbmVye3dpZHRoOmF1dG87Zm9udC1zaXplOi42NXJlbTtwYWRkaW5nOi41NXJlbSAuNnJlbX0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldHtwYWRkaW5nOi4xcmVtIC4ycmVt''@;'; put 'put ''IC4xNXJlbTt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNl''@;'; put 'put ''Om5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y3Vyc29yOnBvaW50ZXI7aGVpZ2h0OjEuNXJlbTt3aWR0aDoxLjVyZW19YnV0dG9uLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlk''@;'; put 'put ''LWV4cGFuZGFibGUtY2FyZXQtYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtaWNvbi1jb2xvciwgIzhjOGM4Yyk7bWFyZ2lu''@;'; put 'put ''LXRvcDouMTVyZW19LmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQtaWNvbiBzdmd7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0fS5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5zcGlubmVye21hcmdpbi10b3A6LjNyZW19''@;'; put 'put ''LmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQuZGF0YWdyaWQtY29sdW1ue3BhZGRpbmc6LjU1cmVtIC42cmVtfS5kYXRhZ3JpZC1oZWFkZXIsLmRhdGFncmlkLWJvZHksLmRhdGFncmlkLXJvdywuZGF0YWdyaWQtY29sdW1uLC5kYXRhZ3JpZC1jZWxsLC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57''@;'; put 'put ''ZGlzcGxheTpibG9ja30uZGF0YWdyaWQtcm93e2JvcmRlci10b3Atc3R5bGU6c29saWQ7Ym9yZGVyLXRvcC13aWR0aDouMDVyZW07Ym9yZGVyLXRvcC13aWR0aDp2YXIoLS1jbHItdGFibGUtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXRvcC1jb2xvcjojY2NjO2JvcmRlci10b3AtY29s''@;'; put 'put ''b3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmRhdGFncmlkLXJvdzpmaXJzdC1vZi10eXBle2JvcmRlci10b3A6bm9uZX0uZGF0YWdyaWQtcm93OmhvdmVyLC5kYXRhZ3JpZC1yb3c6aG92ZXIgLmRhdGFncmlkLXJvdy1zdGlja3l7YmFja2dyb3VuZC1jb2xvcjoj''@;'; put 'put ''ZThlOGU4O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3ZlciwgI2U4ZThlOCl9LmRhdGFncmlkLXJvdy5kYXRhZ3JpZC1zZWxlY3RlZCwuZGF0YWdyaWQtcm93LmRhdGFncmlkLXNlbGVjdGVkIC5kYXRhZ3JpZC1yb3ctc3RpY2t5e2NvbG9yOiMwMDA7Y29sb3I6''@;'; put 'put ''dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1zZWxlY3RlZCwgYmxhY2spO2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yLCAjZDhlM2U5KX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6''@;'; put 'put ''YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDotLjNyZW07Ym9yZGVyLXRvcDouM3JlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2Jv''@;'; put 'put ''cmRlci1yaWdodC13aWR0aDouM3JlbTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNjY2M7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQt''@;'; put 'put ''YWN0aW9uLW92ZXJmbG93OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO2hlaWdodDowO3dpZHRoOjA7bWFyZ2luLXRvcDotLjI1cmVtO2JvcmRlci10b3A6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjI1cmVtIHNv''@;'; put 'put ''bGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodC13aWR0aDouMjVyZW07Ym9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjojZmZmO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpfS5kYXRhZ3JpZC1y''@;'; put 'put ''b3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06Zm9jdXN7b3V0bGluZTowfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rp''@;'; put 'put ''b24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkOmhvdmVyLC5kYXRhZ3Jp''@;'; put 'put ''ZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6aG92ZXJ7YmFja2dyb3VuZDowIDB9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLXJvdyAuZGF0YWdy''@;'; put 'put ''aWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpmb2N1cywuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmFjdGl2ZSwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1p''@;'; put 'put ''dGVtOmRpc2FibGVkOmZvY3Vze2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtIGNkcy1pY29uLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0g''@;'; put 'put ''Y2xyLWljb257dmVydGljYWwtYWxpZ246bWlkZGxlO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0uMDVyZW0sMCl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRh''@;'; put 'put ''Z3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6''@;'; put 'put ''I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1z''@;'; put 'put ''aGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5kYXRhZ3JpZC1yb3cgLmRh''@;'; put 'put ''dGFncmlkLWFjdGlvbi1vdmVyZmxvdzpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uM3JlbTtib3JkZXItdG9wOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjNy''@;'; put 'put ''ZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4zcmVtO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0u''@;'; put 'put ''ZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uMjVyZW07Ym9yZGVyLXRvcDouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7''@;'; put 'put ''Ym9yZGVyLWJvdHRvbTouMjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0LXdpZHRoOi4yNXJlbTtib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiNmZmY7Ym9yZGVyLXJpZ2h0LWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNv''@;'; put 'put ''bG9yLCB3aGl0ZSl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5k''@;'; put 'put ''LWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tcG9wb3Zlci1ob3Zlci1jb2xvciwgI2U4ZThlOCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5hY3RpdmV7YmFja2dyb3VuZDojZThlOGU4O2Jh''@;'; put 'put ''Y2tncm91bmQ6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3ZlciwgI2U4ZThlOCk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwLCBibGFjayl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tn''@;'; put 'put ''cm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVy''@;'; put 'put ''ZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVy''@;'; put 'put ''ZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLWNvbG9yOi4xNXJlbTtib3JkZXItY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwO3do''@;'; put 'put ''aXRlLXNwYWNlOm5vd3JhcH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjNyZW07Ym9yZGVyLXJpZ2h0Oi4zcmVt''@;'; put 'put ''IHNvbGlkO2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci10b3A6LjNyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTouM3JlbSBzb2xpZCB0cmFu''@;'; put 'put ''c3BhcmVudH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NTAlO3JpZ2h0OjEwMCU7d2lkdGg6MDtoZWlnaHQ6MDttYXJnaW4tdG9wOi0uMjVyZW07Ym9yZGVyLXJpZ2h0Oi4yNXJlbSBzb2xpZCAj''@;'; put 'put ''ZmZmO2JvcmRlci10b3A6LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206LjI1cmVtIHNvbGlkIHRyYW5zcGFyZW50fS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW17Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZHJvcGRv''@;'; put 'put ''d24tdGV4dC1jb2xvciwgIzY2NjY2Nik7Zm9udC1zaXplOi43cmVtO2xldHRlci1zcGFjaW5nOm5vcm1hbDtiYWNrZ3JvdW5kOjAgMDtib3JkZXI6MDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2xpbmUtaGVpZ2h0OjEuMTVyZW07bWFyZ2luOjA7cGFkZGluZzouMDVyZW0gMS4ycmVt''@;'; put 'put ''IDA7dGV4dC1hbGlnbjpsZWZ0O3dpZHRoOjEwMCV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze3RleHQtZGVjb3JhdGlvbjpu''@;'; put 'put ''b25lO2JhY2tncm91bmQtY29sb3I6I2U4ZThlODtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tcG9wb3Zlci1ob3Zlci1jb2xvciwgI2U4ZThlOCl9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5hY3RpdmV7YmFj''@;'; put 'put ''a2dyb3VuZDojZThlOGU4O2JhY2tncm91bmQ6dmFyKC0tY2xyLWRhdGFncmlkLXJvdy1ob3ZlciwgI2U4ZThlOCk7Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLWZvbnQtY29sb3IsIGJsYWNrKX0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3Zl''@;'; put 'put ''cmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze291dGxpbmU6MH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtLmRpc2FibGVkLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWR7Y3Vyc29y''@;'; put 'put ''Om5vdC1hbGxvd2VkO29wYWNpdHk6LjQ7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24t''@;'; put 'put ''b3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6YWN0aXZlLC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0''@;'; put 'put ''aW9uLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpmb2N1c3tiYWNr''@;'; put 'put ''Z3JvdW5kOjAgMDtib3gtc2hhZG93Om5vbmV9LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtIGNsci1pY29ue3ZlcnRpY2FsLWFsaWdu''@;'; put 'put ''Om1pZGRsZTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwtLjA1cmVtLDApfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXJvdy1kZXRhaWwtd3JhcHBlcntmbGV4OjEgMSBhdXRvO2Rpc3BsYXk6ZmxleH0uZGF0YWdyaWQtcm93IC5kYXRhZ3JpZC1yb3ctZGV0YWlse3dpZHRoOmF1dG99LmRhdGFn''@;'; put 'put ''cmlkLXJvdyAuZGF0YWdyaWQtcm93LWRldGFpbCAuZGF0YWdyaWQtY2VsbHtwYWRkaW5nLXRvcDowO2JvcmRlcjowfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXNlbGVjdHttaW4td2lkdGg6LjRyZW19LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciAuc2lnbnBvc3R7''@;'; put 'put ''bWFyZ2luOi0uMzZyZW0gMDtoZWlnaHQ6MS4yMzZyZW19LmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciAuc2lnbnBvc3QgLnNpZ25wb3N0LXRyaWdnZXJ7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXJvdy1z''@;'; put 'put ''dGlja3l7ei1pbmRleDo1MDB9LmRhdGFncmlkLXJvdy1zdGlja3l7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJnY29sb3IsIHdoaXRlKTtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOm5vd3JhcDtwb3NpdGlvbjpzdGlja3k7bGVmdDowO3ot''@;'; put 'put ''aW5kZXg6NTAyfS5kYXRhZ3JpZC1yb3ctc3RpY2t5IC5kYXRhZ3JpZC1jZWxsOmxhc3QtY2hpbGQ6YWZ0ZXJ7Y29udGVudDoiIjt3aWR0aDouMDVyZW07aGVpZ2h0OmNhbGMoMTAwJSAtIC41cmVtKTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDouMjVyZW07YmFja2dyb3VuZC1jb2xv''@;'; put 'put ''cjojY2NjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRhYmxlLWJvcmRlci1jb2xvciwgI2NjY2NjYyl9LmRhdGFncmlkLXJvdy1zY3JvbGxhYmxle2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpjb2x1bW4gbm93cmFwfS5kYXRhZ3JpZC1yb3ctc2Nyb2xsYWJsZS5p''@;'; put 'put ''cy1yZXBsYWNlZHtmbGV4LWRpcmVjdGlvbjpyb3d9LmRhdGFncmlkLXJvdy1zY3JvbGxhYmxlLmlzLXJlcGxhY2VkIC5kYXRhZ3JpZC1zY3JvbGxpbmctY2VsbHN7ZmxleDowIDAgYXV0b30uZGF0YWdyaWQtcm93LXNjcm9sbGFibGUgLmRhdGFncmlkLWNvbHVtbjpsYXN0LWNoaWxkIC5kYXRh''@;'; put 'put ''Z3JpZC1jb2x1bW4tc2VwYXJhdG9ye2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtcm93LWZsZXh7ZmxleDoxIDEgYXV0bztkaXNwbGF5OmZsZXg7ZmxleC1mbG93OnJvdyBub3dyYXB9LmRhdGFncmlkLXJvdy1mbGV4IC5kYXRhZ3JpZC1yb3ctZGV0YWlse2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6''@;'; put 'put ''cm93IG5vd3JhcH0uZGF0YWdyaWQtcm93LWZsZXggLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWNlbGx7cGFkZGluZy10b3A6MH0uZGF0YWdyaWQtc2Nyb2xsaW5nLWNlbGxzLC5kYXRhZ3JpZC1zY3JvbGxpbmctZGV0YWlsc3tkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bztmbGV4''@;'; put 'put ''LWZsb3c6cm93IG5vd3JhcH0uZGF0YWdyaWQtYWN0aW9uLWJhcnttYXJnaW4tdG9wOjEuMnJlbX0uZGF0YWdyaWQtYWN0aW9uLWJhcn4uZGF0YWdyaWQtc3Bpbm5lcntoZWlnaHQ6Y2FsYygxMDAlIC0gMS4ycmVtKTt0b3A6MS4ycmVtfS5kYXRhZ3JpZC1oZWFkZXJ7cG9zaXRpb246c3RpY2t5''@;'; put 'put ''O3RvcDowO3otaW5kZXg6NTAxO3dpZHRoOmF1dG99LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtY29sdW1ue2JvcmRlci1ib3R0b206bm9uZX0uZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3d7YmFja2dyb3VuZC1jb2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xy''@;'; put 'put ''LXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO2JvcmRlci10b3A6bm9uZTtib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkO2JvcmRlci1ib3R0b20td2lkdGg6LjA1cmVtO2JvcmRlci1ib3R0b20td2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItYm90dG9t''@;'; put 'put ''LWNvbG9yOiNjY2M7Ym9yZGVyLWJvdHRvbS1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtaGVhZGVyIC5kYXRhZ3JpZC1yb3cgLmRhdGFncmlkLXJvdy1zdGlja3ksLmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtcm93OmhvdmVyLC5kYXRh''@;'; put 'put ''Z3JpZC1oZWFkZXIgLmRhdGFncmlkLXJvdzpob3ZlciAuZGF0YWdyaWQtcm93LXN0aWNreXtiYWNrZ3JvdW5kLWNvbG9yOiNmYWZhZmE7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItdGhlYWQtYmdjb2xvciwgI2ZhZmFmYSl9LmRhdGFncmlkLWhlYWRlciAuZGF0YWdyaWQtcm93LXNjcm9s''@;'; put 'put ''bGFibGV7ZmxleC1kaXJlY3Rpb246cm93fS5kYXRhZ3JpZC10YWJsZS13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MTAwJX0uZGF0YWdyaWQtdGFibGV7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjEgMSBhdXRvO2FsaWduLWNv''@;'; put 'put ''bnRlbnQ6ZmxleC1zdGFydH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWJvZHl7d2lkdGg6YXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbnt0ZXh0LWFsaWduOmxlZnQ7bWluLXdpZHRoOjQuOHJlbTtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0bzt2ZXJ0aWNhbC1hbGln''@;'; put 'put ''bjp0b3A7Ym9yZGVyOjB9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW46Zm9jdXN7b3V0bGluZTotd2Via2l0LWZvY3VzLXJpbmctY29sb3Igc29saWQgLjFyZW07b3V0bGluZS1vZmZzZXQ6LS4xcmVtfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGNsci1kZy1maWx0''@;'; put 'put ''ZXIsLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gY2xyLWRnLXN0cmluZy1maWx0ZXIsLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gY2xyLWRnLW51bWVyaWMtZmlsdGVye2Rpc3BsYXk6ZmxleDtvcmRlcjo5OTttYXJnaW4tbGVmdDphdXRvfS5kYXRhZ3JpZC10YWJs''@;'; put 'put ''ZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItaW5wdXQtc3BhY2Vye3dpZHRoOi42cmVtO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1udW1lcmljLWZpbHRlci1pbnB1dHt3aWR0aDozLjlyZW19LmRhdGFn''@;'; put 'put ''cmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGV7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2Jv''@;'; put 'put ''cmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFja2dyb3VuZDowIDA7Y3Vyc29yOnBvaW50ZXI7ZmxvYXQ6cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTttYXJnaW4tbGVmdDouM3JlbTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7''@;'; put 'put ''YmFja2dyb3VuZC1zaXplOmNvbnRhaW59YnV0dG9uLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGV7Y3Vyc29yOnBvaW50ZXJ9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGUgY2RzLWlj''@;'; put 'put ''b24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlci10b2dnbGUgY2xyLWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRh''@;'; put 'put ''Z3JpZC1maWx0ZXItdG9nZ2xlOmhvdmVyIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlOmhvdmVyIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5k''@;'; put 'put ''YXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlci1vcGVuIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlci1vcGVuIGNs''@;'; put 'put ''ci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlcmVkIGNkcy1pY29uLC5kYXRhZ3JpZC10YWJsZSAu''@;'; put 'put ''ZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXItdG9nZ2xlLmRhdGFncmlkLWZpbHRlcmVkIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3Jp''@;'; put 'put ''ZC1maWx0ZXJ7dG9wOjEwMCU7cmlnaHQ6MDttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRpbmc6LjlyZW07Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci13aWR0aDouMDVy''@;'; put 'put ''ZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhj''@;'; put 'put ''OGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJy''@;'; put 'put ''YWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXJ7dG9wOjEwMCU7cmlnaHQ6MDttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9w''@;'; put 'put ''b3Zlci1iZy1jb2xvciwgd2hpdGUpO3BhZGRpbmc6LjlyZW07Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXIt''@;'; put 'put ''Ym9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItc3R5bGU6c29saWQ7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQw''@;'; put 'put ''LCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZp''@;'; put 'put ''bHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWNsb3NlLXdyYXBwZXIgLmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1''@;'; put 'put ''bW4gLmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbi5kYXRhZ3JpZC1maXhlZC13aWR0aHtmbGV4OjAgMCBhdXRvfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRh''@;'; put 'put ''Z3JpZC1jb2x1bW4tZmxleHtkaXNwbGF5OmZsZXg7ZmxleDoxIDEgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7''@;'; put 'put ''LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvbnQtY29sb3IsICM2NjY2NjYpO3RleHQtYWxpZ246bGVmdDtm''@;'; put 'put ''bGV4OjEgMSBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcjtkaXNwbGF5OmZsZXh9YnV0dG9uLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi10aXRsZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlk''@;'; put 'put ''LWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXRpdGxlIC5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9uLmJ0bntoZWlnaHQ6aW5oZXJpdDtsaW5lLWhlaWdodDppbmhlcml0fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLmNsci1jaGVja2Jv''@;'; put 'put ''eC13cmFwcGVyIC5jbHItY29udHJvbC1sYWJlbHttYXJnaW4tdG9wOi0uNDhyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gYnV0dG9uLmRhdGFncmlkLWNvbHVtbi10aXRsZTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyfS5kYXRhZ3Jp''@;'; put 'put ''ZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIGJ1dHRvbi5kYXRhZ3JpZC1jb2x1bW4tdGl0bGUgLnNvcnQtaWNvbntjb2xvcjojMDA3MmEzO2NvbG9yOnZhcigtLWNsci1jb2xvci1hY3Rpb24tNjAwLCAjMDA3MmEzKTttYXJnaW4tbGVmdDphdXRvO2hlaWdodDouN3JlbTt3aWR0aDouN3JlbTt2''@;'; put 'put ''ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3J7cG9zaXRpb246cmVsYXRpdmU7bGVmdDouNnJlbTtmbGV4OjAgMCBhdXRvO3dpZHRoOi4wNXJlbTt3aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRl''@;'; put 'put ''cndpZHRoLCAuMDVyZW0pO29yZGVyOjEwMDttYXJnaW4tbGVmdDphdXRvO2hlaWdodDoxMDAlfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aGVpZ2h0OmNhbGMoMTAw''@;'; put 'put ''JSArIC42cmVtIC0gLjA1cmVtKTt3aWR0aDouMDVyZW07dG9wOi0uMjVyZW07bGVmdDowO2JhY2tncm91bmQtY29sb3I6I2NjYztiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci10YWJsZS1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5k''@;'; put 'put ''YXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBlYXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3Jk''@;'; put 'put ''ZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOi42NXJlbTtyaWdodDotLjNyZW07dG9wOi0uM3JlbTtjdXJzb3I6Y29sLXJlc2l6ZTtoZWlnaHQ6Y2FsYygxMDAlICsgLjZyZW0gLSAuMDVyZW0pO3otaW5kZXg6NTAxfWJ1''@;'; put 'put ''dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5kYXRhZ3JpZC1jb2x1bW4taGFuZGxle2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1jb2x1bW4tc2VwYXJhdG9yIC5k''@;'; put 'put ''YXRhZ3JpZC1jb2x1bW4tcmVzaXplLXRyYWNrZXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0uNnJlbTtkaXNwbGF5Om5vbmU7d2lkdGg6LjA1cmVtO2hlaWdodDowO2JvcmRlci1yaWdodC1zdHlsZTpkb3R0ZWQ7Ym9yZGVyLXJpZ2h0LWNvbG9yOiM3OWM2ZTY7Ym9yZGVyLXJpZ2h0LWNvbG9y''@;'; put 'put ''OnZhcigtLWNsci1jb2xvci1hY3Rpb24tMzAwLCAjNzljNmU2KTtib3JkZXItcmlnaHQtd2lkdGg6LjA1cmVtO2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO3RyYW5zZm9ybTp0cmFuc2xhdGUoMCk7Y3Vyc29yOmNvbC1yZXNpemV9LmRh''@;'; put 'put ''dGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3IgLmRhdGFncmlkLWNvbHVtbi1yZXNpemUtdHJhY2tlci5vbi1hcnJvdy1rZXktcmVzaXple3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlLW91dH0uZGF0YWdyaWQtdGFibGUgLmRhdGFn''@;'; put 'put ''cmlkLWNvbHVtbiAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciAuZXhjZWVkZWQtbWF4e2JvcmRlci1yaWdodDouMDVyZW0gZG90dGVkIHJnYmEoMjE5LDMzLDAsLjMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uIC5kYXRhZ3JpZC1zaWducG9zdC10cmlnZ2VyIC5zaWducG9z''@;'; put 'put ''dHttYXJnaW46LS4zNnJlbSAwO2hlaWdodDoxLjIzNnJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbiAuZGF0YWdyaWQtc2lnbnBvc3QtdHJpZ2dlciAuc2lnbnBvc3QgLnNpZ25wb3N0LXRyaWdnZXJ7aGVpZ2h0OmluaGVyaXQ7bGluZS1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3Jp''@;'; put 'put ''ZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXNlbGVjdCwuZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNvbHVtbi5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LC5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY29sdW1uLmRhdGFncmlkLXJvdy1hY3Rpb25ze21heC13aWR0aDox''@;'; put 'put ''LjlyZW07bWluLXdpZHRoOjEuOXJlbX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGx7ZmxleDoxIDEgYXV0bzt0ZXh0LWFsaWduOmxlZnQ7bWluLXdpZHRoOjQuOHJlbTtib3JkZXI6MH0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtd2lkdGh7Zmxl''@;'; put 'put ''eDowIDAgYXV0b30uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwuZGF0YWdyaWQtZml4ZWQtY29sdW1ue2ZsZXg6MCAwIDEuOXJlbTttYXgtd2lkdGg6MS45cmVtO21pbi13aWR0aDoxLjlyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsLmRhdGFncmlkLXJvdy1hY3Rpb25z''@;'; put 'put ''e2JhY2tncm91bmQ6MCAwfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0e3BhZGRpbmc6LjFyZW0gLjJyZW0gLjE1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbDpmb2N1c3tvdXRsaW5lOi13''@;'; put 'put ''ZWJraXQtZm9jdXMtcmluZy1jb2xvciBzb2xpZCAuMXJlbTtvdXRsaW5lLW9mZnNldDotLjFyZW19LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xley13ZWJraXQtYXBwZWFyYW5jZTpub25lOy1tb3otYXBwZWFyYW5jZTpub25lOy1tcy1hcHBl''@;'; put 'put ''YXJhbmNlOm5vbmU7LW8tYXBwZWFyYW5jZTpub25lO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7Ym94LXNoYWRvdzpub25lO2JhY2tncm91bmQ6MCAwfWJ1dHRvbi5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2ds''@;'; put 'put ''ZXtjdXJzb3I6cG9pbnRlcn0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmRhdGFncmlkLWFjdGlvbi10b2dnbGUgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlIGNsci1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6''@;'; put 'put ''dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IsICM4YzhjOGMpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtY2VsbCAuZGF0YWdyaWQtYWN0aW9uLXRvZ2dsZTphY3RpdmUgY2RzLWljb24sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1jZWxsIC5kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xl''@;'; put 'put ''OmFjdGl2ZSBjbHItaWNvbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1hY3Rpb24tdG9nZ2xlLCAjNjY2NjY2KX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLWNlbGwgLmNsci10b2dnbGUtd3JhcHBlcnttYXJnaW4tdG9wOi0uNjZyZW07cGFkZGluZy10b3A6LjQycmVt''@;'; put 'put ''fS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVye2ZsZXg6MSAxIGF1dG87ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtib3JkZXItdG9wLWNvbG9yOiNjY2M7Ym9yZGVyLXRvcC1jb2xvcjp2YXIo''@;'; put 'put ''LS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItdG9wLXdpZHRoOi4wNXJlbTtib3JkZXItdG9wLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSl9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFjZWhvbGRlcntiYWNrZ3JvdW5kOiNm''@;'; put 'put ''ZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItdGFibGUtYmdjb2xvciwgd2hpdGUpO3dpZHRoOjEwMCV9LmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1wbGFjZWhvbGRlci5kYXRhZ3JpZC1lbXB0eXtib3JkZXItdG9wOjA7cGFkZGluZzouNnJlbTtkaXNwbGF5OmZsZXg7ZmxleC1mbG93OmNvbHVt''@;'; put 'put ''biBub3dyYXA7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O2ZvbnQtc2l6ZTouOHJlbTtmb250LXNpemU6dmFyKC0tY2xyLWRhdGFncmlkLXBsYWNlaG9sZGVyLWZvbnQtc2l6ZSwgLjhyZW0pO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWRhdGFn''@;'; put 'put ''cmlkLXBsYWNlaG9sZGVyLWNvbG9yLCAjYjNiM2IzKX0uZGF0YWdyaWQtdGFibGUgLmRhdGFncmlkLXBsYWNlaG9sZGVyIC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1pbWFnZXtoZWlnaHQ6M3JlbTt3aWR0aDozcmVtO21hcmdpbi1ib3R0b206LjZyZW07YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVw''@;'; put 'put ''ZWF0O2JhY2tncm91bmQtc2l6ZTpjb250YWluO2JhY2tncm91bmQtcG9zaXRpb246Y2VudGVyO2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGY4LCUzQ3N2ZyUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDYwJTIwNzIlMjIlMjB2ZXJzaW9uJTNEJTIy''@;'; put 'put ''MS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlMjB4bWxucyUzQXhsaW5rJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYxOTk5JTJGeGxpbmslMjIlM0UlMEElMjAlMjAlMjAlMjAlM0NkZWZzJTNFJTBBJTIwJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTNDZWxsaXBzZSUyMGlkJTNEJTIycGF0aC0xJTIyJTIwY3glM0QlMjIzMCUyMiUyMGN5JTNEJTIyNjEuNzY2NjY2NyUyMiUyMHJ4JTNEJTIyMTUuNDUxMjkwNCUyMiUyMHJ5JTNEJTIyNC43MzMzMzMzMyUyMiUzRSUzQyUyRmVsbGlwc2UlM0UlMEElMjAlMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlM0NtYXNrJTIwaWQlM0QlMjJtYXNrLTIlMjIlMjBtYXNrQ29udGVudFVuaXRzJTNEJTIydXNlclNwYWNlT25Vc2UlMjIlMjBtYXNrVW5pdHMlM0QlMjJvYmplY3RCb3VuZGluZ0JveCUyMiUyMHglM0QlMjIwJTIyJTIweSUzRCUyMjAlMjIlMjB3aWR0aCUzRCUyMjMwLjkw''@;'; put 'put ''MjU4MDglMjIlMjBoZWlnaHQlM0QlMjI5LjQ2NjY2NjY3JTIyJTIwZmlsbCUzRCUyMndoaXRlJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdXNlJTIweGxpbmslM0FocmVmJTNEJTIyJTIzcGF0aC0xJTIyJTNFJTNDJTJGdXNlJTNFJTBBJTIwJTIwJTIw''@;'; put 'put ''JTIwJTIwJTIwJTIwJTIwJTNDJTJGbWFzayUzRSUwQSUyMCUyMCUyMCUyMCUzQyUyRmRlZnMlM0UlMEElMjAlMjAlMjAlMjAlM0NnJTIwaWQlM0QlMjJQYWdlLTElMjIlMjBzdHJva2UlM0QlMjJub25lJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMSUyMiUyMGZpbGwlM0QlMjJub25lJTIyJTIw''@;'; put 'put ''ZmlsbC1ydWxlJTNEJTIyZXZlbm9kZCUyMiUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2clMjBpZCUzRCUyMkFydGJvYXJkJTIyJTNFJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTNDdXNlJTIwaWQlM0QlMjJPdmFsLTEwJTIyJTIwc3Ryb2tlJTNEJTIy''@;'; put 'put ''JTIzQzFERkVGJTIyJTIwbWFzayUzRCUyMnVybCglMjNtYXNrLTIpJTIyJTIwc3Ryb2tlLXdpZHRoJTNEJTIyMi44JTIyJTIwc3Ryb2tlLWxpbmVjYXAlM0QlMjJzcXVhcmUlMjIlMjBzdHJva2UtZGFzaGFycmF5JTNEJTIyMyUyQzYlMkMzJTJDNSUyMiUyMHhsaW5rJTNBaHJlZiUzRCUyMiUy''@;'; put 'put ''M3BhdGgtMSUyMiUzRSUzQyUyRnVzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTM4LjQ2MTM2NDclMkMxOC4xNjQyNDU2JTIwTDMwLjk4OTAxMzclMkMzNC45MTQxODQ2JTIwTDMxJTJDNDclMjBMMzIuNTk3Nzc4MyUyQzQ2LjUx''@;'; put 'put ''NjcyMzYlMjBMMzIuNTk3Nzc4MyUyQzM0LjkxNDE4NDYlMjBMNTEuMDY3MzIxOCUyQzE1Ljc1NjA0MjUlMjBDNTEuMDY3MzIxOCUyQzE1Ljc1NjA0MjUlMjA0OC42Mjk1MTY2JTJDMTYuNjU0Mjk2OSUyMDQ0Ljk2Mjg5MDYlMkMxNy4zMzkyMzM0JTIwQzQxLjI5NjI2NDYlMkMxOC4wMjQxNjk5''@;'; put 'put ''JTIwMzguNDYxMzY0NyUyQzE4LjE2NDI0NTYlMjAzOC40NjEzNjQ3JTJDMTguMTY0MjQ1NiUyMFolMjIlMjBpZCUzRCUyMlBhdGgtMTk1JTIyJTIwZmlsbCUzRCUyMiUyM0MxREZFRiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlM0Nw''@;'; put 'put ''YXRoJTIwZCUzRCUyMk00Ljc0NjM5MjI2JTJDMTIuNTY2MTg1NSUyMEw0LjYyMDY1NzI2JTJDMTIuMTYwNTM0OCUyMEw1LjM1MTU0MTQlMkMxMS4xNjI1MDQ0JTIwTDUuNzc2MjIzODUlMkMxMS4xNTk5MzklMjBMNi4yMDkzNjMwOSUyQzEyLjU1NzM0ODElMjBMNC43NDYzOTIyNiUyQzEyLjU2''@;'; put 'put ''NjE4NTUlMjBaJTIwTTYuMjA5MzYzMDklMkMxMi41NTczNDgxJTIwTDYuMzI1NDI2MzIlMkMxMi45MzE3OTU0JTIwTDI4LjQ5NjM4NTUlMkMzNC44Nzk2NzE4JTIwTDI4LjQ5NjM4NTUlMkM0Ny44MDk2NjkxJTIwTDMyLjYlMkM0Ni40ODM2NTEzJTIwTDMyLjYlMkMzNC44OTkyMzY1JTIwTDUz''@;'; put 'put ''Ljk3MzQ5NCUyQzEyLjcwMzU4MTMlMjBMNTMuOTczNDk0JTJDMTIuMjY4ODIwMSUyMEw2LjIwOTM2MzA5JTJDMTIuNTU3MzQ4MSUyMFolMjBNNTUuMzczNDk0JTJDMTAuODYwMzM3NiUyMEw1NS4zNzM0OTQlMkMxMy4yNjgwNjY0JTIwTDM0JTJDMzUuNDYzNzIxNiUyMEwzNCUyQzQ3LjUwMjU0''@;'; put 'put ''MDElMjBMMjcuMDk2Mzg1NSUyQzQ5LjczMzMzMzMlMjBMMjcuMDk2Mzg1NSUyQzM1LjQ2MzcyMTklMjBMNS4wOTE3OTY4OCUyQzEzLjY4MDU0MiUyMEw0LjMxMzI1MzAxJTJDMTEuMTY4Nzc2NCUyMEw1NS4zNzM0OTQlMkMxMC44NjAzMzc2JTIwWiUyMiUyMGlkJTNEJTIyUGF0aC0xNDklMjIl''@;'; put 'put ''MjBmaWxsJTNEJTIyJTIzN0ZCREREJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ2VsbGlwc2UlMjBpZCUzRCUyMk92YWwtOSUyMiUyMGZpbGwlM0QlMjIlMjNGRkZGRkYlMjIlMjBjeCUzRCUyMjMwJTIyJTIwY3klM0QlMjIxMS43''@;'; put 'put ''ODU2NTQlMjIlMjByeCUzRCUyMjI2JTIyJTIwcnklM0QlMjI2Ljc4NTY1NDAxJTIyJTNFJTNDJTJGZWxsaXBzZSUzRSUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTMwJTJDMTcuMTcxMzA4JTIwQzM2Ljg3NzIxNzclMkMxNy4xNzEzMDgl''@;'; put 'put ''MjA0My4zMTEyMjgyJTJDMTYuNDYxMDcwMSUyMDQ4LjAzMTIzNzElMkMxNS4yMjkyMTA2JTIwQzUwLjI3Nzc2MTElMkMxNC42NDI4OTc3JTIwNTIuMDUwNzYxOSUyQzEzLjk1Nzk2NzclMjA1My4yMjE2MjMxJTJDMTMuMjM1NDk3MyUyMEM1NC4xOTM4NTY1JTJDMTIuNjM1NTg4NiUyMDU0LjYl''@;'; put 'put ''MkMxMi4xMTc1ODkxJTIwNTQuNiUyQzExLjc4NTY1NCUyMEM1NC42JTJDMTEuNDUzNzE4OSUyMDU0LjE5Mzg1NjUlMkMxMC45MzU3MTk0JTIwNTMuMjIxNjIzMSUyQzEwLjMzNTgxMDclMjBDNTIuMDUwNzYxOSUyQzkuNjEzMzQwMzIlMjA1MC4yNzc3NjExJTJDOC45Mjg0MTAzNCUyMDQ4LjAz''@;'; put 'put ''MTIzNzElMkM4LjM0MjA5NzQ2JTIwQzQzLjMxMTIyODIlMkM3LjExMDIzNzk1JTIwMzYuODc3MjE3NyUyQzYuNCUyMDMwJTJDNi40JTIwQzIzLjEyMjc4MjMlMkM2LjQlMjAxNi42ODg3NzE4JTJDNy4xMTAyMzc5NSUyMDExLjk2ODc2MjklMkM4LjM0MjA5NzQ2JTIwQzkuNzIyMjM4ODYlMkM4''@;'; put 'put ''LjkyODQxMDM0JTIwNy45NDkyMzgxNCUyQzkuNjEzMzQwMzIlMjA2Ljc3ODM3Njg5JTJDMTAuMzM1ODEwNyUyMEM1LjgwNjE0MzUlMkMxMC45MzU3MTk0JTIwNS40JTJDMTEuNDUzNzE4OSUyMDUuNCUyQzExLjc4NTY1NCUyMEM1LjQlMkMxMi4xMTc1ODkxJTIwNS44MDYxNDM1JTJDMTIuNjM1''@;'; put 'put ''NTg4NiUyMDYuNzc4Mzc2ODklMkMxMy4yMzU0OTczJTIwQzcuOTQ5MjM4MTQlMkMxMy45NTc5Njc3JTIwOS43MjIyMzg4NiUyQzE0LjY0Mjg5NzclMjAxMS45Njg3NjI5JTJDMTUuMjI5MjEwNiUyMEMxNi42ODg3NzE4JTJDMTYuNDYxMDcwMSUyMDIzLjEyMjc4MjMlMkMxNy4xNzEzMDglMjAz''@;'; put 'put ''MCUyQzE3LjE3MTMwOCUyMFolMjBNMzAlMkMxOC41NzEzMDglMjBDMTUuNjQwNTk2NSUyQzE4LjU3MTMwOCUyMDQlMkMxNS41MzMyNjcyJTIwNCUyQzExLjc4NTY1NCUyMEM0JTJDOC4wMzgwNDA3OCUyMDE1LjY0MDU5NjUlMkM1JTIwMzAlMkM1JTIwQzQ0LjM1OTQwMzUlMkM1JTIwNTYlMkM4''@;'; put 'put ''LjAzODA0MDc4JTIwNTYlMkMxMS43ODU2NTQlMjBDNTYlMkMxNS41MzMyNjcyJTIwNDQuMzU5NDAzNSUyQzE4LjU3MTMwOCUyMDMwJTJDMTguNTcxMzA4JTIwWiUyMiUyMGlkJTNEJTIyT3ZhbC05LUNvcHklMjIlMjBmaWxsJTNEJTIyJTIzN0ZCREREJTIyJTNFJTNDJTJGcGF0aCUzRSUwQSUy''@;'; put 'put ''MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUzQ3BhdGglMjBkJTNEJTIyTTE4LjI2MDg2NDMlMkM3LjE0NTYyOTg4JTIwTDIyLjcyNzM1NiUyQzE2LjkwNDcyNDElMjBDMjIuNzI3MzU2JTJDMTYuOTA0NzI0MSUyMDE1LjMwMDY1OTIlMkMxNi4zOTExNzQzJTIwMTAuMjc2MDAx''@;'; put 'put ''JTJDMTQuNzUxMTU5NyUyMEM1LjI1MTM0Mjc3JTJDMTMuMTExMTQ1JTIwNS4zODAzMTAwNiUyQzExLjgyODQzMDIlMjA1LjM4MDMxMDA2JTJDMTEuNjg4MjkzNSUyMEM1LjM4MDMxMDA2JTJDMTAuNDgzMjgzMSUyMDguMTY2MzMxNTIlMkM5LjQxODc3NzE2JTIwMTEuMTE0NTYzJTJDOC41NzMy''@;'; put 'put ''NDIxOSUyMEMxNC41NDkzMTklMkM3LjU4ODE3NDkyJTIwMTguMjYwODY0MyUyQzcuMTQ1NjI5ODglMjAxOC4yNjA4NjQzJTJDNy4xNDU2Mjk4OCUyMFolMjIlMjBpZCUzRCUyMlBhdGgtMTk2JTIyJTIwZmlsbCUzRCUyMiUyM0MxREZFRiUyMiUzRSUzQyUyRnBhdGglM0UlMEElMjAlMjAlMjAl''@;'; put 'put ''MjAlMjAlMjAlMjAlMjAlM0MlMkZnJTNFJTBBJTIwJTIwJTIwJTIwJTNDJTJGZyUzRSUwQSUzQyUyRnN2ZyUzRSIpfS5kYXRhZ3JpZC10YWJsZSAuZGF0YWdyaWQtaGlkZGVuLWNvbHVtbi5kYXRhZ3JpZC1jb2x1bW4sLmRhdGFncmlkLXRhYmxlIC5kYXRhZ3JpZC1oaWRkZW4tY29sdW1uLmRh''@;'; put 'put ''dGFncmlkLWNlbGx7ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQgLmRhdGFncmlkLXNjcm9sbGluZy1jZWxscyAuZGF0YWdyaWQtY2VsbDpub3QoLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXQpOm5vdCguZGF0YWdyaWQtcm93LWFjdGlvbnMpOm5vdCguZGF0YWdyaWQtc2Vs''@;'; put 'put ''ZWN0KXtkaXNwbGF5Om5vbmV9LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtcm93LWRldGFpbCAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOi41NXJlbX0uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsIC5kYXRhZ3JpZC1j''@;'; put 'put ''ZWxsLmRhdGFncmlkLWhpZGRlbi1jb2x1bW57ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1yb3ctcmVwbGFjZWQgLmRhdGFncmlkLXJvdy1kZXRhaWwgLmRhdGFncmlkLWV4cGFuZGFibGUtY2FyZXR7cGFkZGluZy10b3A6LjFyZW19LmRhdGFncmlkLXJvdy1yZXBsYWNlZCAuZGF0YWdyaWQtcm93''@;'; put 'put ''LWRldGFpbC5kYXRhZ3JpZC1jb250YWluZXJ7Ym9yZGVyLXRvcDouMDVyZW0gc29saWQgI2NjY30uZGF0YWdyaWQtcm93LXJlcGxhY2VkIC5kYXRhZ3JpZC1yb3ctZGV0YWlsLmRhdGFncmlkLWNvbnRhaW5lciAuZGF0YWdyaWQtY2VsbHtib3JkZXItdG9wOm5vbmV9LmRhdGFncmlkLWZvb3Rl''@;'; put 'put ''cntmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IG5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpzdHJldGNoO3BhZGRpbmc6MCAuNnJlbTtsaW5lLWhlaWdodDoxLjY1cmVtO2ZvbnQtc2l6ZTouNTVyZW07YmFja2dyb3VuZC1j''@;'; put 'put ''b2xvcjojZmFmYWZhO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLXRoZWFkLWJnY29sb3IsICNmYWZhZmEpO2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLXRhYmxlLWZvb3Rlci1ib3JkZXItdG9wLWNvbG9yLCAjY2NjY2NjKTti''@;'; put 'put ''b3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci10b3A6bm9uZTtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZh''@;'; put 'put ''cigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSl9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbntk''@;'; put 'put ''aXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtsaW5lLWhlaWdodDoxLjhyZW19LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXple2Rpc3BsYXk6YmxvY2s7ZmxleDoxIDEgYXV0bzt3aGl0ZS1zcGFjZTpu''@;'; put 'put ''b3dyYXA7dGV4dC1hbGlnbjpyaWdodH0uZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLXNpemUgLmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcnt0b3A6LjZyZW19LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXplIC5jbHItcGFnZS1zaXplLXNlbGVjdHtmb250LXNpemU6MTAwJTtt''@;'; put 'put ''YXJnaW4tbGVmdDouNnJlbTtoZWlnaHQ6MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1zaXplKy5wYWdpbmF0aW9uLWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjEuMnJlbX0uZGF0YWdyaWQtZm9vdGVy''@;'; put 'put ''IC5wYWdpbmF0aW9uLWRlc2NyaXB0aW9ue3doaXRlLXNwYWNlOm5vd3JhcH0uZGF0YWdyaWQtZm9vdGVyIC5wYWdpbmF0aW9uLWxpc3R7bWFyZ2luLWxlZnQ6MS4ycmVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFw''@;'; put 'put ''cGVye3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIuYWN0aXZlIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2RzLWljb24sLmRhdGFncmlkLWZvb3RlciAu''@;'; put 'put ''Y29sdW1uLXN3aXRjaC13cmFwcGVyLmFjdGl2ZSAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1u''@;'; put 'put ''LXRvZ2dsZS0tYWN0aW9ue21pbi13aWR0aDouOXJlbTtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2RzLWljb24sLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRj''@;'; put 'put ''aC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb24gY2xyLWljb257Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDAsICM4YzhjOGMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmhv''@;'; put 'put ''dmVyIGNkcy1pY29uLC5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXRvZ2dsZS0tYWN0aW9uOmhvdmVyIGNsci1pY29ue2NvbG9yOiMwMDcyYTM7Y29sb3I6dmFyKC0tY2xyLWNvbG9yLWFjdGlvbi02MDAsICMwMDcyYTMpfS5kYXRhZ3JpZC1mb290ZXIg''@;'; put 'put ''LmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRh''@;'; put 'put ''Z3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3Jk''@;'; put 'put ''ZXJ3aWR0aCwgLjA1cmVtKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7cGFkZGluZzouOXJl''@;'; put 'put ''bTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLXRvcDpub25lO3dpZHRoOjEyLjVyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjEwNTB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVh''@;'; put 'put ''ZGVye2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2Vlbjtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOi44cmVtO3BhZGRpbmctYm90dG9tOi42cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVt''@;'; put 'put ''bi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXIgYnV0dG9ue21pbi13aWR0aDouOXJlbTttYXJnaW46MDtwYWRkaW5nOjB9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVpZ2h0OjE1cmVtO292ZXJmbG93LXk6''@;'; put 'put ''YXV0bzttaW4taGVpZ2h0OjIuNHJlbX0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1jb250ZW50IGxpe2xpbmUtaGVpZ2h0OjEuMnJlbTtwYWRkaW5nLWxlZnQ6LjFyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRj''@;'; put 'put ''aC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtZm9vdGVyIC5idG57bWFyZ2luOjA7cGFkZGluZzowfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYWN0aW9uLXJpZ2h0e2Rpc3BsYXk6ZmxleDtqdXN0''@;'; put 'put ''aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoe2JvcmRlci1yYWRpdXM6LjE1cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7YmFja2dyb3VuZC1jb2xv''@;'; put 'put ''cjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO2JvcmRlci1zdHlsZTpzb2xpZDtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXJz''@;'; put 'put ''LWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7cGFkZGluZzouOXJlbTt3aWR0aDoxMi41cmVtO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ei1pbmRleDoxMDUwfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29s''@;'; put 'put ''dW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlcntkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtc2l6ZTouOHJlbTtwYWRkaW5nLWJvdHRvbTouNnJlbTtsaW5lLWhlaWdodDoxLjJyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1u''@;'; put 'put ''LXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGJ1dHRvbnttaW4td2lkdGg6LjlyZW07bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOiNiM2IzYjM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWNvbHVtbi1zd2l0Y2gtaGVhZGVyLWZvbnQtY29sb3IsICNiM2Iz''@;'; put 'put ''YjMpfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b246aG92ZXJ7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvciwg''@;'; put 'put ''IzAwNzJhMyl9LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudHttYXgtaGVpZ2h0OjE1cmVtO292ZXJmbG93LXk6YXV0bzttaW4taGVpZ2h0OjEuMjVyZW19LmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13''@;'; put 'put ''cmFwcGVyIC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtY29udGVudCBsaXtsaW5lLWhlaWdodDoxLjJyZW07cGFkZGluZy1sZWZ0Oi4xcmVtfS5kYXRhZ3JpZC1mb290ZXIgLmNvbHVtbi1zd2l0Y2gtd3JhcHBlciAuY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3Bh''@;'; put 'put ''ZGRpbmc6MH0uZGF0YWdyaWQtZm9vdGVyIC5jb2x1bW4tc3dpdGNoLXdyYXBwZXIgLmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1mb290ZXIgLmFjdGlvbi1yaWdodHtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5kYXRhZ3JpZC1mb290ZXIgLmNsci1mb3JtLWNvbnRyb2wt''@;'; put 'put ''ZGlzYWJsZWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwJX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuZGF0YWdyaWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVse2N1cnNv''@;'; put 'put ''cjpkZWZhdWx0O21hcmdpbi1yaWdodDouNDVyZW19LmNsci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmRhdGFncmlkLWZvb3Rlci1zZWxlY3QuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbDpiZWZvcmV7YmFja2dyb3VuZC1jb2xvcjojOGM4''@;'; put 'put ''YzhjO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwLCAjOGM4YzhjKX0uY2xyLWZvcm0tY29udHJvbC1kaXNhYmxlZCAuZGF0YWdyaWQtZm9vdGVyLXNlbGVjdC5jbHItY2hlY2tib3gtd3JhcHBlciBpbnB1dFt0eXBlPWNoZWNrYm94XTpjaGVja2VkK2xhYmVs''@;'; put 'put ''OmFmdGVye2JvcmRlci1sZWZ0LWNvbG9yOiNmZmY7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCwgd2hpdGUpO2JvcmRlci1ib3R0b20tY29sb3I6I2ZmZjtib3JkZXItYm90dG9tLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTAsIHdoaXRlKX0uZGF0''@;'; put 'put ''YWdyaWQtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7d2lkdGg6MTAwJTt0b3A6LjZyZW07aGVpZ2h0OmNhbGMoMTAwJSAtIC42cmVtKTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY5O2JhY2tncm91''@;'; put 'put ''bmQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWxvYWRpbmctYmFja2dyb3VuZCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNikpO3otaW5kZXg6NTkwfS5kYXRhZ3JpZC1zZWxlY3QgLmNsci1jb250cm9sLWxhYmVse21pbi1oZWlnaHQ6LjZyZW07bWFyZ2luLXRvcDotLjI0cmVtO3BhZGRpbmct''@;'; put 'put ''bGVmdDouN3JlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtaGVhZGVye21pbi1oZWlnaHQ6MS4ycmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1jb2x1bW4gLmRhdGFncmlkLWNvbHVtbi1zZXBhcmF0b3I6YWZ0ZXJ7aGVpZ2h0OmNhbGMoMTAwJSArIC4yNXJlbSk7dG9wOmNh''@;'; put 'put ''bGMoLS4yNSouNnJlbSArIC4wNXJlbSl9LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWNlbGwgY2xyLWljb257bWFyZ2luLXRvcDotLjJyZW07bWFyZ2luLWJvdHRvbTotLjE1cmVtO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0uMDVyZW0pfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1j''@;'; put 'put ''ZWxsIGNkcy1pY29ue21hcmdpbi10b3A6LS4ycmVtO21hcmdpbi1ib3R0b206LS4xNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtY2VsbCAuYmFkZ2V7bWFyZ2luLXRvcDotLjE1cmVtO21hcmdpbi1ib3R0b206LS4wNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhw''@;'; put 'put ''YW5kYWJsZS1jYXJldHt0ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuc3Bpbm5lcnttYXJnaW4tdG9wOi4xNXJlbX0uZGF0YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5k''@;'; put 'put ''YWJsZS1jYXJldC1idXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7YmFj''@;'; put 'put ''a2dyb3VuZDowIDA7aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07b3V0bGluZS1vZmZzZXQ6LS4ycmVtfWJ1dHRvbi5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LWJ1dHRvbntjdXJzb3I6cG9pbnRlcn0uZGF0''@;'; put 'put ''YWdyaWQtY29tcGFjdCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldCAuZGF0YWdyaWQtZXhwYW5kYWJsZS1jYXJldC1pY29ue21hcmdpbjowfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LmRhdGFncmlkLWNlbGx7cGFkZGluZzowfS5kYXRhZ3JpZC1jb21w''@;'; put 'put ''YWN0IC5kYXRhZ3JpZC1leHBhbmRhYmxlLWNhcmV0LmRhdGFncmlkLWNvbHVtbntwYWRkaW5nLXRvcDouM3JlbTtwYWRkaW5nLWJvdHRvbTouMjVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLXNpZ25wb3N0LXRyaWdnZXIgLnNpZ25wb3N0IC5zaWducG9zdC10cmlnZ2VyIGNkcy1p''@;'; put 'put ''Y29uOm5vdChbc2hhcGU9aW5mby1jaXJjbGVdLFtzaGFwZT1leGNsYW1hdGlvbi10cmlhbmdsZV0sW3NoYXBlPWV4Y2xhbWF0aW9uLWNpcmNsZV0sW3NoYXBlPWNoZWNrLWNpcmNsZV0sW3NoYXBlPWluZm9dLFtzaGFwZT1lcnJvcl0pLC5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1zaWdu''@;'; put 'put ''cG9zdC10cmlnZ2VyIC5zaWducG9zdCAuc2lnbnBvc3QtdHJpZ2dlciBjbHItaWNvbjpub3QoW3NoYXBlPWluZm8tY2lyY2xlXSxbc2hhcGU9ZXhjbGFtYXRpb24tdHJpYW5nbGVdLFtzaGFwZT1leGNsYW1hdGlvbi1jaXJjbGVdLFtzaGFwZT1jaGVjay1jaXJjbGVdLFtzaGFwZT1pbmZvXSxb''@;'; put 'put ''c2hhcGU9ZXJyb3JdKXtoZWlnaHQ6MS4wNXJlbTt3aWR0aDoxLjA1cmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXJ7cGFkZGluZzowIC42cmVtO2xpbmUtaGVpZ2h0OjEuMTVyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbntsaW5l''@;'; put 'put ''LWhlaWdodDoxLjJyZW19LmRhdGFncmlkLWNvbXBhY3QgLmRhdGFncmlkLWZvb3RlciAuY29sdW1uLXN3aXRjaC13cmFwcGVyIC5jb2x1bW4tdG9nZ2xlLS1hY3Rpb257bWFyZ2luOjA7b3V0bGluZS1vZmZzZXQ6LS4ycmVtfS5kYXRhZ3JpZC1jb21wYWN0IC5kYXRhZ3JpZC1mb290ZXIgLmNs''@;'; put 'put ''ci1mb3JtLWNvbnRyb2wtZGlzYWJsZWQgLmRhdGFncmlkLWZvb3Rlci1zZWxlY3QuY2xyLWNoZWNrYm94LXdyYXBwZXIgaW5wdXRbdHlwZT1jaGVja2JveF06Y2hlY2tlZCtsYWJlbHt0b3A6MH0uZGF0YWdyaWQtZm9vdGVyLWRlc2NyaXB0aW9ue2ZsZXg6MSAxIGF1dG87ZmxleC13cmFwOm5v''@;'; put 'put ''d3JhcDt3aGl0ZS1zcGFjZTpub3dyYXA7ZGlzcGxheTpibG9jazt0ZXh0LWFsaWduOnJpZ2h0O21hcmdpbjphdXRvIDB9LnBhZ2luYXRpb24tbGlzdHtsaXN0LXN0eWxlOm5vbmU7ZGlzcGxheTpmbGV4O2ZsZXgtZmxvdzpyb3cgbm93cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24t''@;'; put 'put ''aXRlbXM6c3RyZXRjaH0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWN1cnJlbnR7YmFja2dyb3VuZDowIDA7YmFja2dyb3VuZC1jb2xvcjojZmZmO2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWZvcm1zLXRleHRhcmVhLWJhY2tncm91bmQtY29sb3IsIHdoaXRlKTtib3JkZXItY29s''@;'; put 'put ''b3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpz''@;'; put 'put ''b2xpZDtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2xpbmUtaGVpZ2h0OjEuMnJlbTtmb250LXNpemU6LjU1cmVtO21pbi13aWR0aDoxLjJyZW07dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjpub25l''@;'; put 'put ''IWltcG9ydGFudH0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWN1cnJlbnQ6Zm9jdXMsLnBhZ2luYXRpb24tbGlzdCAucGFnaW5hdGlvbi1jdXJyZW50LmNsci1mb2N1c3tiYWNrZ3JvdW5kOjAgMDtib3JkZXI6LjA1cmVtIHNvbGlkO2JvcmRlci1jb2xvcjojNDlhZWRhO2JvcmRlci1j''@;'; put 'put ''b2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1pbnB1dC1ib3JkZXItZm9jdXMtY29sb3IsICM0OWFlZGEpO2JveC1zaGFkb3c6MCAwIC4wNXJlbSAjNDlhZWRhO2JveC1zaGFkb3c6MCAwIHZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSkgdmFyKC0tY2xyLWRh''@;'; put 'put ''dGFncmlkLXBhZ2luYXRpb24taW5wdXQtYm9yZGVyLWZvY3VzLWNvbG9yLCAjNDlhZWRhKX0ucGFnaW5hdGlvbi1saXN0Pip7cGFkZGluZzowIC4xMnJlbX0ucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLWZpcnN0LC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdCwucGFnaW5h''@;'; put 'put ''dGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZpb3VzLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbmV4dHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6Y29udGFpbn0ucGFnaW5hdGlvbi1saXN0''@;'; put 'put ''IC5wYWdpbmF0aW9uLWZpcnN0OmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdDpkaXNhYmxlZCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLXByZXZpb3VzOmRpc2FibGVkLC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbmV4dDpkaXNhYmxlZHtjb2xv''@;'; put 'put ''cjojOGM4YzhjO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wYWdpbmF0aW9uLWJ0bi1kaXNhYmxlZC1jb2xvciwgIzhjOGM4Yyk7b3BhY2l0eTouNTY7b3BhY2l0eTp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tZGlzYWJsZWQtb3BhY2l0eSwgLjU2KX0ucGFnaW5hdGlvbi1s''@;'; put 'put ''aXN0IC5wYWdpbmF0aW9uLWZpcnN0LC5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tcHJldmlvdXN7bWFyZ2luLXJpZ2h0Oi42cmVtfS5wYWdpbmF0aW9uLWxpc3QgLnBhZ2luYXRpb24tbGFzdCwucGFnaW5hdGlvbi1saXN0IC5wYWdpbmF0aW9uLW5leHR7bWFyZ2luLWxlZnQ6LjZyZW19''@;'; put 'put ''LnBhZ2luYXRpb24tbGlzdCBidXR0b257LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7LW1vei1hcHBlYXJhbmNlOm5vbmU7LW1zLWFwcGVhcmFuY2U6bm9uZTstby1hcHBlYXJhbmNlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5v''@;'; put 'put ''bmU7YmFja2dyb3VuZDowIDA7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcGFnaW5hdGlvbi1idG4tY29sb3IsICM2NjY2NjYpO2N1cnNvcjpwb2ludGVyfWJ1dHRvbi5wYWdpbmF0aW9uLWxpc3QgYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1jZWxsLXdpZHRo''@;'; put 'put ''LXplcm97Ym9yZGVyOjAhaW1wb3J0YW50O3BhZGRpbmc6MCFpbXBvcnRhbnQ7d2lkdGg6MDtmbGV4OjAgMCBhdXRvIWltcG9ydGFudDttaW4td2lkdGg6MCFpbXBvcnRhbnQ7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmRhdGFncmlkLW91dGVyLXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgt''@;'; put 'put ''ZGlyZWN0aW9uOnJvdztmbGV4LWdyb3c6MTtvdmVyZmxvdzphdXRvfS5kYXRhZ3JpZC1pbm5lci13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleC1ncm93OjE7b3ZlcmZsb3c6YXV0bzttaW4td2lkdGg6MTJyZW19LmRhdGFncmlkLWRldGFpbC1vcGVuIC5k''@;'; put 'put ''YXRhZ3JpZHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowO2JvcmRlci1yaWdodDpub25lfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAuZGF0YWdyaWQtaW5uZXItd3JhcHBlcnt3aWR0aDozNCV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1wbGFjZWhvbGRlci1jb250YWluZXIsLmRh''@;'; put 'put ''dGFncmlkLWRldGFpbC1vcGVuIC5kYXRhZ3JpZC1yb3d7Ym9yZGVyLXJpZ2h0Oi4wNXJlbSBzb2xpZCAjY2NjfS5kYXRhZ3JpZC1kZXRhaWwtb3BlbiAuZGF0YWdyaWQtZm9vdGVye2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjB9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5wYWdpbmF0aW9u''@;'; put 'put ''e3dpZHRoOjEwMCV9LmRhdGFncmlkLWRldGFpbC1vcGVuIC5wYWdpbmF0aW9uLWRlc2NyaXB0aW9uLWNvbXBhY3R7dGV4dC1hbGlnbjpsZWZ0O2ZsZXg6MX0uZGF0YWdyaWQtZGV0YWlsLW9wZW4gLmRhdGFncmlkLWZvb3RlciAucGFnaW5hdGlvbi1saXN0e21hcmdpbi1yaWdodDowfS5kYXRh''@;'; put 'put ''Z3JpZC1yb3ctZGV0YWlsLW9wZW57cG9zaXRpb246cmVsYXRpdmV9LmRhdGFncmlkLXJvdy1kZXRhaWwtb3BlbjpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jaztwb3NpdGlvbjphYnNvbHV0ZTtib3JkZXI6LjVyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWNvbG9y''@;'; put 'put ''OnRyYW5zcGFyZW50O2JvcmRlci1yaWdodC1jb2xvcjojY2NjO2JvcmRlci1yaWdodC1jb2xvcjp2YXIoLS1jbHItdGFibGUtYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTt0b3A6LjVyZW07cmlnaHQ6MH0uZGF0YWdyaWQtcm93LWRldGFpbC1vcGVuOmFmdGVye2NvbnRlbnQ6IiI7ZGlzcGxheTpp''@;'; put 'put ''bmxpbmUtYmxvY2s7cG9zaXRpb246YWJzb2x1dGU7Ym9yZGVyOi40NXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQtY29sb3I6I2ZmZjtib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYmctY29sb3IsIHdoaXRlKTt0b3A6LjU1cmVtO3JpZ2h0''@;'; put 'put ''Oi0uMDVyZW19LmRhdGFncmlkLWRldGFpbC1wYW5le21hcmdpbi10b3A6LjZyZW07Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNv''@;'; put 'put ''bG9yOnZhcigtLWNsci1kYXRhZ3JpZC1kZWZhdWx0LWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWxlZnQ6bm9uZTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7''@;'; put 'put ''Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci1nbG9iYWwtYm9yZGVycmFkaXVzLCAuMTVyZW0pO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3''@;'; put 'put ''aGl0ZSk7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7ZmxleC1ncm93OjI7d2lkdGg6NjYlfS5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6YXV0bztoZWlnaHQ6MTAwJX0uZGF0YWdyaWQtZGV0YWls''@;'; put 'put ''LWJvZHl7ZmxleDoxIDEgYXV0bztwYWRkaW5nOjAgMS4ycmVtfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVye2ZsZXg6MCAwIGF1dG87Zm9udC1zaXplOi45cmVtO2xpbmUtaGVpZ2h0OjEuNjhyZW07cGFkZGluZy1sZWZ0OjEuMnJlbTttYXJnaW4tdG9wOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGly''@;'; put 'put ''ZWN0aW9uOnJvd30uZGF0YWdyaWQtZGV0YWlsLWhlYWRlciAuZGF0YWdyaWQtZGV0YWlsLWhlYWRlci10aXRsZXtmbGV4OjEgMSBhdXRvO3BhZGRpbmctdG9wOi44cmVtfS5kYXRhZ3JpZC1kZXRhaWwtaGVhZGVyIC5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZXtmbGV4OjEgMSAxLjhyZW07''@;'; put 'put ''cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWRldGFpbC1oZWFkZXIgLmRhdGFncmlkLWRldGFpbC1wYW5lLWNsb3NlIC5idG4uYnRuLWxpbmt7bWFyZ2luLXRvcDouOHJlbTttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1yaWdodDowfS5k''@;'; put 'put ''YXRhZ3JpZC1kZXRhaWwtaGVhZGVyIC5kYXRhZ3JpZC1kZXRhaWwtcGFuZS1jbG9zZSAuYnRuLmJ0bi1saW5rIGNkcy1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLW1vZGFsLWNsb3NlLWNvbG9yLCAjOGM4YzhjKX0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0e3BhZGRpbmc6MDt0''@;'; put 'put ''ZXh0LWFsaWduOmNlbnRlcn0uZGF0YWdyaWQtZGV0YWlsLWNhcmV0LmRhdGFncmlkLWNlbGx7cGFkZGluZzouM3JlbSAuNDVyZW19LmRhdGFncmlkLWRldGFpbC1jYXJldCAuZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWJ1dHRvbnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTstbW96LWFwcGVhcmFu''@;'; put 'put ''Y2U6bm9uZTstbXMtYXBwZWFyYW5jZTpub25lOy1vLWFwcGVhcmFuY2U6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTtiYWNrZ3JvdW5kOjAgMDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOi4xcmVtIC4ycmVtIC4xNXJlbX1i''@;'; put 'put ''dXR0b24uZGF0YWdyaWQtZGV0YWlsLWNhcmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtYnV0dG9ue2N1cnNvcjpwb2ludGVyfS5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1idXR0b24uaXMtb3BlbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDcyYTM7YmFja2dy''@;'; put 'put ''b3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtZGV0YWlsLWNhcmV0LWljb24tb3Blbi1iZy1jb2xvciwgIzAwNzJhMyk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKX0uZGF0YWdyaWQtZGV0YWlsLWNh''@;'; put 'put ''cmV0IC5kYXRhZ3JpZC1kZXRhaWwtY2FyZXQtYnV0dG9uLmlzLW9wZW4gLmRhdGFncmlkLWRldGFpbC1jYXJldC1pY29ue2NvbG9yOiNmZmY7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWRldGFpbC1jYXJldC1pY29uLW9wZW4taWNvbi1jb2xvciwgd2hpdGUpfS5kYXRhZ3JpZC1kZXRhaWwt''@;'; put 'put ''Y2FyZXQgLmRhdGFncmlkLWRldGFpbC1jYXJldC1pY29ue2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLWljb24tY29sb3IsICM4YzhjOGMpO21hcmdpbi10b3A6LjFyZW19LmRhdGFncmlkLWRldGFpbC1jYXJldCAuc3Bpbm5lcnttYXJnaW4tdG9wOi4zcmVtfS5kYXRh''@;'; put 'put ''Z3JpZC1kZXRhaWwtY2FyZXQuZGF0YWdyaWQtY29sdW1ue3BhZGRpbmc6LjU1cmVtIC42cmVtfS5kYXRhZ3JpZC1kZXRhaWwtb3ZlcmxheS5kYXRhZ3JpZC1kZXRhaWwtb3Blbj4uZGF0YWdyaWQtb3V0ZXItd3JhcHBlcj4uZGF0YWdyaWQtaW5uZXItd3JhcHBlcntkaXNwbGF5Om5vbmV9LmRh''@;'; put 'put ''dGFncmlkLWRldGFpbC1vdmVybGF5IC5kYXRhZ3JpZC1kZXRhaWwtcGFuZXtib3JkZXItbGVmdDouMDVyZW0gc29saWQgI2NjYztib3JkZXItcmFkaXVzOi4xNXJlbX1AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjU3NnB4KXsuZGF0YWdyaWQtZGV0YWlsLW9wZW4+LmRhdGFncmlkLW91''@;'; put 'put ''dGVyLXdyYXBwZXI+LmRhdGFncmlkLWlubmVyLXdyYXBwZXJ7ZGlzcGxheTpub25lfS5kYXRhZ3JpZC1kZXRhaWwtcGFuZXtib3JkZXItbGVmdDouMDVyZW0gc29saWQgI2NjYztib3JkZXItcmFkaXVzOi4xNXJlbX19LmNvbHVtbi1zd2l0Y2h7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVy''@;'; put 'put ''LXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtwYWRkaW5nOi45cmVtO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7Ym9yZGVyLXdpZHRoOi4wNXJlbTti''@;'; put 'put ''b3JkZXItd2lkdGg6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJ3aWR0aCwgLjA1cmVtKTtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym94LXNoYWRvdzowIC4w''@;'; put 'put ''NXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO3dpZHRoOjEyLjVyZW07ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNv''@;'; put 'put ''bHVtbjt6LWluZGV4OjEwNTB9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXNpemU6LjhyZW07cGFkZGluZy1ib3R0b206LjZyZW07bGluZS1oZWlnaHQ6MS4ycmVtfS5j''@;'; put 'put ''b2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGgxLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGgyLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGgzLC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg0LC5jb2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg1LC5j''@;'; put 'put ''b2x1bW4tc3dpdGNoIC5zd2l0Y2gtaGVhZGVyIGg2e2NvbG9yOiM2NjY7Y29sb3I6dmFyKC0tY2xyLXAxLWNvbG9yLCAjNjY2NjY2KTtmb250LXdlaWdodDo0MDA7Zm9udC1zaXplOi44cmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTttYXJnaW46MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRl''@;'; put 'put ''ciBidXR0b257bWluLXdpZHRoOi45cmVtO21hcmdpbjowO3BhZGRpbmc6MDtjb2xvcjojYjNiM2IzO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1jb2x1bW4tc3dpdGNoLWhlYWRlci1mb250LWNvbG9yLCAjYjNiM2IzKX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWhlYWRlciBidXR0b246aG92''@;'; put 'put ''ZXJ7Y29sb3I6IzAwNzJhMztjb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtY29sdW1uLXN3aXRjaC1oZWFkZXItZm9udC1ob3Zlci1jb2xvciwgIzAwNzJhMyl9LmNvbHVtbi1zd2l0Y2ggLnN3aXRjaC1jb250ZW50e21heC1oZWlnaHQ6MTVyZW07b3ZlcmZsb3cteTphdXRvO21pbi1oZWlnaHQ6''@;'; put 'put ''MS4yNXJlbX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWNvbnRlbnQgbGl7bGluZS1oZWlnaHQ6MS4ycmVtO3BhZGRpbmctbGVmdDouMXJlbX0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAuYnRue21hcmdpbjowO3BhZGRpbmc6MH0uY29sdW1uLXN3aXRjaCAuc3dpdGNoLWZvb3RlciAu''@;'; put 'put ''YWN0aW9uLXJpZ2h0e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmRhdGFncmlkLWZpbHRlcnttYXJnaW4tdG9wOi4yNHJlbTtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1iZy1jb2xvciwgd2hpdGUpO2JvcmRlci13''@;'; put 'put ''aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcG9wb3Zlci1ib3JkZXItY29sb3IsICNjY2NjY2MpO3Bh''@;'; put 'put ''ZGRpbmc6LjlyZW07Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gIzhjOGM4YzQwO2JveC1zaGFkb3c6MCAuMDVyZW0gLjE1cmVtIHZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVycy1ib3gtc2hhZG93LWNvbG9yLCByZ2JhKDE0MCwgMTQwLCAxNDAsIC4yNSkpO2JvcmRlci1yYWRpdXM6LjE1''@;'; put 'put ''cmVtO2JvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMsIC4xNXJlbSk7Zm9udC13ZWlnaHQ6NDAwfS5kYXRhZ3JpZC1maWx0ZXIgLmRhdGFncmlkLWZpbHRlci1jbG9zZS13cmFwcGVye3RleHQtYWxpZ246cmlnaHR9LmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQt''@;'; put 'put ''ZmlsdGVyLWNsb3NlLXdyYXBwZXIgLmNsb3Nle2Zsb2F0Om5vbmV9LmRhdGFncmlkLWZpbHRlciAuZGF0YWdyaWQtZmlsdGVyLWFwcGx5e21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93e3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6I2ZmZjtiYWNrZ3JvdW5k''@;'; put 'put ''OnZhcigtLWNsci1kYXRhZ3JpZC1wb3BvdmVyLWJnLWNvbG9yLCB3aGl0ZSk7cGFkZGluZzouM3JlbTttYXJnaW4tbGVmdDouM3JlbTtib3JkZXItd2lkdGg6LjA1cmVtO2JvcmRlci13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xp''@;'; put 'put ''ZDtib3JkZXItY29sb3I6I2NjYztib3JkZXItY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93OjAgLjA1cmVtIC4xNXJlbSAjOGM4YzhjNDA7Ym94LXNoYWRvdzowIC4wNXJlbSAuMTVyZW0gdmFyKC0tY2xyLWRhdGFncmlk''@;'; put 'put ''LXBvcG92ZXJzLWJveC1zaGFkb3ctY29sb3IsIHJnYmEoMTQwLCAxNDAsIDE0MCwgLjI1KSk7Ym9yZGVyLXJhZGl1czouMTVyZW07Ym9yZGVyLXJhZGl1czp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcnJhZGl1cywgLjE1cmVtKTtmb250LXdlaWdodDo0MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5k''@;'; put 'put ''YXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdodDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjNyZW07Ym9yZGVyOi4zcmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OjAgbm9uZTti''@;'; put 'put ''b3JkZXItcmlnaHQtY29sb3I6I2NjYztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLWRhdGFncmlkLXBvcG92ZXItYm9yZGVyLWNvbG9yLCAjY2NjY2NjKX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjUwJTtyaWdo''@;'; put 'put ''dDoxMDAlO3dpZHRoOjA7aGVpZ2h0OjA7bWFyZ2luLXRvcDotLjI1cmVtO2JvcmRlci1yaWdodDouMjVyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOi4yNXJlbSBzb2xpZCB0cmFuc3BhcmVudH0uZGF0YWdyaWQtYWN0aW9u''@;'; put 'put ''LW92ZXJmbG93IC5hY3Rpb24taXRlbXtjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci1kcm9wZG93bi10ZXh0LWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjdyZW07bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2JhY2tncm91bmQ6MCAwO2JvcmRlcjowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6''@;'; put 'put ''YmxvY2s7bGluZS1oZWlnaHQ6MS4xNXJlbTttYXJnaW46MDtwYWRkaW5nOi4wNXJlbSAxLjJyZW0gMDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24t''@;'; put 'put ''aXRlbTpmb2N1c3t0ZXh0LWRlY29yYXRpb246bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtYWN0aW9uLXBvcG92ZXItaG92ZXItY29sb3IsICNlOGU4ZTgpfS5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1p''@;'; put 'put ''dGVtLmFjdGl2ZXtiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZGF0YWdyaWQtcm93LWhvdmVyLCAjZThlOGU4KTtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci1kYXRhZ3JpZC1yb3ctaG92ZXItZm9udC1jb2xvciwgYmxhY2spfS5kYXRhZ3Jp''@;'; put 'put ''ZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmZvY3Vze291dGxpbmU6MH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZCwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWQ7b3Bh''@;'; put 'put ''Y2l0eTouNDstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDpob3ZlciwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbTpkaXNhYmxlZDpob3ZlcntiYWNrZ3Jv''@;'; put 'put ''dW5kOjAgMH0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbS5kaXNhYmxlZDphY3RpdmUsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW0uZGlzYWJsZWQ6Zm9jdXMsLmRhdGFncmlkLWFjdGlvbi1vdmVyZmxvdyAuYWN0aW9uLWl0ZW06ZGlzYWJsZWQ6''@;'; put 'put ''YWN0aXZlLC5kYXRhZ3JpZC1hY3Rpb24tb3ZlcmZsb3cgLmFjdGlvbi1pdGVtOmRpc2FibGVkOmZvY3Vze2JhY2tncm91bmQ6MCAwO2JveC1zaGFkb3c6bm9uZX0uZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93IC5hY3Rpb24taXRlbSBjZHMtaWNvbiwuZGF0YWdyaWQtYWN0aW9uLW92ZXJmbG93''@;'; put 'put ''IC5hY3Rpb24taXRlbSBjbHItaWNvbnt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTFweCwwKX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZXtkaXNwbGF5OmJsb2NrfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1t''@;'; put 'put ''b2RlIC5kYXRhZ3JpZCwuZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtZm9vdGVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1yb3ctbWFzdGVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1t''@;'; put 'put ''b2RlIC5kYXRhZ3JpZC1yb3ctY2xpY2thYmxle2Rpc3BsYXk6bm9uZX0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGV7ZGlzcGxheTp0YWJsZTt0YWJsZS1sYXlvdXQ6YXV0b30uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1j''@;'; put 'put ''YWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRlcntkaXNwbGF5OnRhYmxlLWhlYWRlci1ncm91cH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUg''@;'; put 'put ''LmRhdGFncmlkLWNhbGN1bGF0aW9uLWhlYWRlciAuZGF0YWdyaWQtY29sdW1ue2Rpc3BsYXk6dGFibGUtY2VsbDttaW4td2lkdGg6NC44cmVtfS5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1jYWxjdWxhdGlvbi10YWJsZSAuZGF0YWdyaWQtY2FsY3Vs''@;'; put 'put ''YXRpb24taGVhZGVyIC5kYXRhZ3JpZC1jb2x1bW57Ym9yZGVyLWNvbG9yOiNlOGU4ZTg7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci10YWJsZXJvdy1ib3JkZXJjb2xvciwgI2U4ZThlOCk7Ym9yZGVyLXdpZHRoOi4wNXJlbTtib3JkZXItd2lkdGg6dmFyKC0tY2xyLXRhYmxlLWJvcmRlcndpZHRo''@;'; put 'put ''LCAuMDVyZW0pO2JvcmRlci1zdHlsZTpzb2xpZDtwYWRkaW5nOi41NXJlbSAuNnJlbTt2ZXJ0aWNhbC1hbGlnbjp0b3A7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItcDYtY29sb3IsICM2NjY2NjYpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXdlaWdodDp2YXIoLS1jbHItZm9udC13ZWlnaHQt''@;'; put 'put ''Ym9sZCwgNjAwKTtmb250LXNpemU6LjU1cmVtO2xldHRlci1zcGFjaW5nOi4wM2VtO2xpbmUtaGVpZ2h0Oi42cmVtO21hcmdpbi10b3A6MS4ycmVtO21hcmdpbi1ib3R0b206MH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFi''@;'; put 'put ''bGUgLmRhdGFncmlkLXJvd3tkaXNwbGF5OnRhYmxlLXJvd30uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY2FsY3VsYXRpb24tdGFibGUgLmRhdGFncmlkLXJvdyAuZGF0YWdyaWQtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGw7bWluLXdpZHRoOjQuOHJl''@;'; put 'put ''bTtmb250LXNpemU6LjY1cmVtO2xpbmUtaGVpZ2h0Oi43cmVtO3BhZGRpbmc6LjU1cmVtIC42cmVtO3ZlcnRpY2FsLWFsaWduOnRvcH0uZGF0YWdyaWQtaG9zdC5kYXRhZ3JpZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtY29sdW1uLXNlcGFyYXRvciwuZGF0YWdyaWQtaG9zdC5kYXRhZ3Jp''@;'; put 'put ''ZC1jYWxjdWxhdGUtbW9kZSAuZGF0YWdyaWQtcGxhY2Vob2xkZXItY29udGFpbmVyLC5kYXRhZ3JpZC1ob3N0LmRhdGFncmlkLWNhbGN1bGF0ZS1tb2RlIC5kYXRhZ3JpZC1maXhlZC1jb2x1bW57ZGlzcGxheTpub25lfS5mYWRle29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVh''@;'; put 'put ''c2UtaW4tb3V0O3dpbGwtY2hhbmdlOm9wYWNpdHl9LmZhZGUuaW57b3BhY2l0eToxfS5mYWRlRG93bntvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTI1JSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLWluLW91dCx0cmFuc2Zvcm0gLjJzIGVhc2UtaW4tb3V0O3dpbGwtY2hh''@;'; put 'put ''bmdlOm9wYWNpdHksdHJhbnNmb3JtfS5mYWRlRG93bi5pbntvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0ub2Zmc2NyZWVuLWZvY3VzLXJlYm91bmRlcntwb3NpdGlvbjpmaXhlZCFpbXBvcnRhbnQ7Ym9yZGVyOjAhaW1wb3J0YW50O2hlaWdodDoxcHghaW1wb3J0YW50O3dpZHRo''@;'; put 'put ''OjFweCFpbXBvcnRhbnQ7bGVmdDowIWltcG9ydGFudDt0b3A6LWNvbnZlcnRCYXNlbGluZVRvQmFzZTIwKDEpIWltcG9ydGFudDtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O3Zpc2liaWxpdHk6aGlkZGVuIWltcG9ydGFudDtwYWRkaW5nOjAhaW1wb3J0YW50O21hcmdpbjowIDAgLWNvbnZl''@;'; put 'put ''cnRCYXNlbGluZVRvQmFzZTIwKDEpIDAhaW1wb3J0YW50O3Zpc2liaWxpdHk6dmlzaWJsZSFpbXBvcnRhbnR9OnJvb3R7LS1jbHItbmF2LWJveC1zaGFkb3ctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNDAwKTstLWNsci1uYXYtYWN0aXZlLWJveC1zaGFkb3ctY29sb3I6dmFyKC0t''@;'; put 'put ''Y2xyLWNvbG9yLWFjdGlvbi02MDApOy0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3I6dmFyKC0tY2xyLWdsb2JhbC1zZWxlY3Rpb24tY29sb3IpOy0tY2xyLW5hdi1ob3Zlci1iZy1jb2xvcjp2YXIoLS1jbHItc2lkZW5hdi1saW5rLWhvdmVyLWNvbG9yKTstLWNsci1uYXYtbGluay1jb2xvcjp2''@;'; put 'put ''YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci1uYXYtbGluay1mb250LXdlaWdodDp2YXIoLS1jbHItcDEtZm9udC13ZWlnaHQpOy0tY2xyLW5hdi1saW5rLWFjdGl2ZS1mb250''@;'; put 'put ''LXdlaWdodDp2YXIoLS1jbHItbmF2LWxpbmstZm9udC13ZWlnaHQpfUBtZWRpYSBzY3JlZW57c2VjdGlvblthcmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9fVtkYXRhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9YnV0dG9uLm5hdi1saW5re2JvcmRlci1yYWRpdXM6MDt0ZXh0LXRy''@;'; put 'put ''YW5zZm9ybTpjYXBpdGFsaXplO21pbi13aWR0aDowfS50YWJzLW92ZXJmbG93e3Bvc2l0aW9uOnJlbGF0aXZlfS50YWJzLW92ZXJmbG93IC5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MH0udGFiLWNvbnRlbnR7ZGlzcGxheTppbmxpbmV9XzotbXMtZnVsbHNjcmVlbiAudGFiLWNvbnRlbnQsOnJv''@;'; put 'put ''b3QgLnRhYi1jb250ZW50e2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjEwMCV9LnRhYnMtdmVydGljYWx7ZGlzcGxheTpmbGV4fS50YWJzLXZlcnRpY2FsPi5uYXZ7aGVpZ2h0OmF1dG87Ym94LXNoYWRvdzpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNo''@;'; put 'put ''O21hcmdpbi1yaWdodDoxLjJyZW07b3ZlcmZsb3c6YXV0bztmbGV4LXNocmluazowO3BhZGRpbmc6LjJyZW07d2lkdGg6MTJyZW07bWluLXdpZHRoOjIuNHJlbX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGlua3t0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzowIC42cmVtO2JvcmRlcjowO21h''@;'; put 'put ''cmdpbi1ib3R0b206LjA1cmVtO2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDowO21hcmdpbi1sZWZ0OjA7d2lkdGg6MTAwJX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5uYXYtaXRlbXttYXJnaW4tcmlnaHQ6MH0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5hY3RpdmUsLnRh''@;'; put 'put ''YnMtdmVydGljYWw+Lm5hdiAubmF2LWxpbms6aG92ZXJ7Ym94LXNoYWRvdzppbnNldCAuMTVyZW0gMCAjMDA3MmEzO2JveC1zaGFkb3c6aW5zZXQgLjE1cmVtIDAgMCB2YXIoLS1jbHItbmF2LWFjdGl2ZS1ib3gtc2hhZG93LWNvbG9yKX0udGFicy12ZXJ0aWNhbD4ubmF2IC5uYXYtbGluay5h''@;'; put 'put ''Y3RpdmV7YmFja2dyb3VuZC1jb2xvcjojZDhlM2U5O2JhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLW5hdi1hY3RpdmUtYmctY29sb3IsICNkOGUzZTkpfS50YWJzLXZlcnRpY2FsPi5uYXYgLm5hdi1saW5rOm5vdCguYWN0aXZlKTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFj''@;'; put 'put ''a2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItbmF2LWhvdmVyLWJnLWNvbG9yLCAjZThlOGU4KX06cm9vdHstLWNsci13aXphcmQtbWFpbi1iZ2NvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTApOy0tY2xyLXdpemFyZC1zaWRlbmF2LWJnY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwt''@;'; put 'put ''NTApOy0tY2xyLXdpemFyZC1tYWluLXRleHRDb2xvcjp2YXIoLS1jbHItY29sb3Itb24tbmV1dHJhbC0wKTstLWNsci13aXphcmQtc2lkZW5hdi10ZXh0OnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTkwMCk7LS1jbHItd2l6YXJkLXNpZGVuYXYtdGV4dC0tYWN0aXZlOnZhcigtLWNsci1nbG9i''@;'; put 'put ''YWwtb24tc2VsZWN0aW9uLWNvbG9yKTstLWNsci13aXphcmQtdGl0bGUtdGV4dDp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0xMDAwKTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItc2l6ZTouMnJlbTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9y''@;'; put 'put ''LW5ldXRyYWwtMjAwKTstLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3ItLWFjdGl2ZTp2YXIoLS1jbHItY29sb3Itc3VjY2Vzcy00MDApOy0tY2xyLXdpemFyZC1zdGVwbmF2LWFjdGl2ZS1iZ2NvbG9yOnZhcigtLWNsci1nbG9iYWwtc2VsZWN0aW9uLWNvbG9yKTstLWNsci13aXph''@;'; put 'put ''cmQtaGVhZGVyLWFjdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uLWNvbG9yLS1ob3ZlcmVkOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTEwMDApOy0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzOnZhcigtLWNsci1nbG9i''@;'; put 'put ''YWwtYm9yZGVycmFkaXVzKTstLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUtYm9yZGVyLXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMpOy0tY2xyLXdpemFyZC1zdGVwLW5hdi1ib3JkZXItY29sb3I6aHNsKDAsIDAlLCA4OSUpOy0tY2xyLXdpemFyZC1ib3gtc2hhZG93''@;'; put 'put ''LWNvbG9yOnJnYmEoMCwgMCwgMCwgLjIpfS5jbHItd2l6YXJkIC5tb2RhbC1kaWFsb2d7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Ym94LXNoYWRvdzowIC4wNXJlbSAuMXJlbSAuMXJlbSAjMDAwMztib3gtc2hhZG93OjAgLjA1cmVtIC4x''@;'; put 'put ''cmVtIC4xcmVtIHZhcigtLWNsci13aXphcmQtYm94LXNoYWRvdy1jb2xvcik7aGVpZ2h0OjUwJTttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnR7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtcmlnaHQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLXJpZ2h0LXJh''@;'; put 'put ''ZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6LjE1cmVtO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOnZhcigtLWNsci13aXphcmQtYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3gtc2hhZG93Om5vbmU7cGFk''@;'; put 'put ''ZGluZzowO2ZsZXg6MiAyIGF1dG87d2lkdGg6NjYlO2hlaWdodDppbml0aWFsO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNsci13aXphcmQgLm1vZGFsLWhlYWRlciwuY2xyLXdpemFyZCAubW9kYWwt''@;'; put 'put ''aGVhZGVyLS1hY2Nlc3NpYmxle2ZsZXg6MCAwIGF1dG87d2lkdGg6MTAwJTtwYWRkaW5nOjEuMnJlbSAuOTVyZW0gLjNyZW0gMS4ycmVtfS5jbHItd2l6YXJkIC5tb2RhbC10aXRsZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtdGl0bGUtdGV4dCwgYmxhY2spO2Rpc3BsYXk6''@;'; put 'put ''ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7d2lkdGg6MTAwJTtsaW5lLWhlaWdodDoxLjM1NnJlbTttYXJnaW4tdG9wOi0uMTU2cmVtfS5jbHItd2l6YXJkIC5tb2RhbC1ib2R5e2ZsZXg6MSAxIGF1dG87Y29sb3I6IzAwMDtjb2xvcjp2YXIoLS1jbHItd2l6YXJkLW1haW4tdGV4dENvbG9yLCBi''@;'; put 'put ''bGFjayk7d2lkdGg6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MDtkaXNwbGF5OmJsb2NrO3BhZGRpbmctdG9wOjEuMnJlbTtoZWlnaHQ6NC4ycmVtO21pbi1oZWlnaHQ6NC4ycmVtO21heC1oZWlnaHQ6NC4ycmVtO3dpZHRoOjEwMCU7ZmxleDowIDAgNC4ycmVtfS5j''@;'; put 'put ''bHItd2l6YXJkIC5jbHItd2l6YXJkLWJ0bnttYXJnaW46MDttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkIC5tb2RhbC10aXRsZS10ZXh0e2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZsZXg6MCAxIGF1dG87d2lkdGg6MTAwJTtvdXRsaW5lOjB9LmNsci13aXphcmQgLm1v''@;'; put 'put ''ZGFsLXRpdGxlLXdyYXBwZXJ7d2lkdGg6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtaGVhZGVyLWFjdGlvbnMtd3JhcHBlcntmbGV4OjEgMCBhdXRvO3BhZGRpbmctbGVmdDouNnJlbTtwYWRkaW5nLXJpZ2h0Oi4ycmVtfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb257aGVp''@;'; put 'put ''Z2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07cGFkZGluZzowO21hcmdpbjowO21pbi13aWR0aDoxLjJyZW07bGluZS1oZWlnaHQ6MS4ycmVtO2ZvbnQtc2l6ZToxLjNyZW07Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpO3Ry''@;'; put 'put ''YW5zaXRpb246Y29sb3IgbGluZWFyIC4yc30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1oZWFkZXItYWN0aW9uIGF7Y29sb3I6IzhjOGM4Yztjb2xvcjp2YXIoLS1jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24tY29sb3IsICM4YzhjOGMpfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1h''@;'; put 'put ''Y3Rpb246aG92ZXIsLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbjphY3RpdmUsLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbjpmb2N1c3tjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtaGVhZGVyLWFjdGlvbi1jb2xvci0taG92ZXJlZCwg''@;'; put 'put ''YmxhY2spfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLWhlYWRlci1hY3Rpb24gY2RzLWljb24sLmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbiBjbHItaWNvbntoZWlnaHQ6MS4xcmVtO3dpZHRoOjEuMXJlbX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBw''@;'; put 'put ''ZXJ7ZmxleDoxIDEgYXV0bzt3aWR0aDozNCU7bWF4LXdpZHRoOjM0JTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO29yZGVyOi0xO292ZXJmbG93OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87cGFkZGluZy1ib3R0b206MS4ycmVtO2xpbmUtaGVpZ2h0OjEuMnJlbTtib3JkZXIt''@;'; put 'put ''cmlnaHQtd2lkdGg6LjA1cmVtO2JvcmRlci1yaWdodC13aWR0aDp2YXIoLS1jbHItZ2xvYmFsLWJvcmRlcndpZHRoLCAuMDVyZW0pO2JvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtib3JkZXItcmlnaHQtY29sb3I6I2UzZTNlMztib3JkZXItcmlnaHQtY29sb3I6dmFyKC0tY2xyLXdpemFyZC1z''@;'; put 'put ''dGVwLW5hdi1ib3JkZXItY29sb3IsICNlM2UzZTMpO2hlaWdodDoxMDAlO2JhY2tncm91bmQtY29sb3I6I2ZhZmFmYTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi1iZ2NvbG9yLCAjZmFmYWZhKTtib3JkZXItcmFkaXVzOjA7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1''@;'; put 'put ''czouMTVyZW07Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4xNXJlbSk7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czp2YXIoLS1jbHItd2l6YXJkLWJvcmRlci1yYWRpdXMsIC4x''@;'; put 'put ''NXJlbSl9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdntwYWRkaW5nLWxlZnQ6MS4ycmVtO2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi43cmVtO2NvbG9yOiMzMzM7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC1zaWRlbmF2LXRleHQsICMzMzMzMzMpO3dpZHRoOjEwMCU7ZmxleDoxIDEg''@;'; put 'put ''YXV0b30uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1zdGVwbmF2LWxpc3R7ZGlzcGxheTpibG9jaztib3gtc2hhZG93Om5vbmU7Y291bnRlci1yZXNldDphO3doaXRlLXNwYWNlOm5vd3JhcDtoZWlnaHQ6YXV0bztsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW46MDt3aWR0aDoxMDAlfS5jbHIt''@;'; put 'put ''d2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbXtkaXNwbGF5OmJsb2NrO2JveC1zaGFkb3c6LjJyZW0gMCAjZThlOGU4IGluc2V0O2JveC1zaGFkb3c6dmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1zaXplKSAwIDAgdmFyKC0tY2xyLXdpemFyZC1zdGVwbmF2LWJvcmRlci1j''@;'; put 'put ''b2xvcikgaW5zZXQ7bWFyZ2luOjAgMCAtLjA1cmVtO3BhZGRpbmc6LjNyZW0gMCAuM3JlbSAuNHJlbTtjb2xvcjojMzMzO2NvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi10ZXh0LCAjMzMzMzMzKTtmb250LXdlaWdodDo0MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQtd2VpZ2h0''@;'; put 'put ''LXJlZ3VsYXIsIDQwMCl9LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLmFjdGl2ZXtjb2xvcjojMDAwO2NvbG9yOnZhcigtLWNsci13aXphcmQtc2lkZW5hdi10ZXh0LS1hY3RpdmUsIGJsYWNrKTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLWZvbnQt''@;'; put 'put ''d2VpZ2h0LXNlbWlib2xkLCA1MDApfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5hY3RpdmUgLmNsci13aXphcmQtc3RlcG5hdi1saW5re2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci13aXphcmQtc3RlcG5hdi1hY3RpdmUt''@;'; put 'put ''Ymdjb2xvciwgI2Q4ZTNlOSk7Ym9yZGVyLXJhZGl1czowO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRlci10b3AtbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6LjE1cmVtO2JvcmRl''@;'; put 'put ''ci1ib3R0b20tbGVmdC1yYWRpdXM6dmFyKC0tY2xyLXdpemFyZC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5jb21wbGV0ZXtib3gtc2hhZG93Oi4ycmVtIDAgIzVlYjcxNSBpbnNldDtib3gtc2hhZG93OnZhcigtLWNsci13aXph''@;'; put 'put ''cmQtc3RlcG5hdi1ib3JkZXItc2l6ZSkgMCAwIHZhcigtLWNsci13aXphcmQtc3RlcG5hdi1ib3JkZXItY29sb3ItLWFjdGl2ZSkgaW5zZXQ7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4ycyBlYXNlLWlufS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtaXRlbS5lcnJvcntib3gtc2hh''@;'; put 'put ''ZG93Oi4ycmVtIDAgI2MyMWQwMCBpbnNldDt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjJzIGVhc2UtaW59LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLm5vLWNsaWNrIGJ1dHRvbntwb2ludGVyLWV2ZW50czpub25lfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYt''@;'; put 'put ''bGlua3t3aWR0aDoxMDAlO2Rpc3BsYXk6ZmxleDtjb2xvcjppbmhlcml0O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjAgLjE1cmVtIDAgLjVyZW07Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO3RleHQtYWxpZ246bGVmdDt0ZXh0''@;'; put 'put ''LXRyYW5zZm9ybTpub25lO21hcmdpbjowfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluayAuY2xyLXdpemFyZC1zdGVwbmF2LWxpbmstc3VmZml4e2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoxLjJyZW07cGFkZGluZy1yaWdodDouMzVy''@;'; put 'put ''ZW19LmNsci13aXphcmQgLmNsci13aXphcmQtc3RlcG5hdi1saW5rIC5jbHItd2l6YXJkLXN0ZXBuYXYtbGluay1zdWZmaXggLmNsci13aXphcmQtc3RlcG5hdi1pdGVtLWVycm9yLWljb257dHJhbnNmb3JtOm5vbmU7ZmlsbDojYzIxZDAwfS5jbHItd2l6YXJkIC5jbHItd2l6YXJkLXRpdGxl''@;'; put 'put ''e2NvbG9yOiMwMDA7Y29sb3I6dmFyKC0tY2xyLXdpemFyZC10aXRsZS10ZXh0LCBibGFjayk7bWFyZ2luLXRvcDowO3BhZGRpbmc6MS4ycmVtIC42cmVtIDEuMnJlbSAxLjJyZW07ZmxleDowIDAgYXV0bztmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjEuMnJlbX0uY2xyLXdpemFyZCAu''@;'; put 'put ''bW9kYWwtY29udGVudC13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7ZmxleDoxIDEgMTAwJTtoZWlnaHQ6MTAwJTt3aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJX0uY2xyLXdpemFyZCAubW9kYWwtY29udGVudC13cmFwcGVyIC5tb2RhbC1uYXZ7aGVpZ2h0OmF1dG99''@;'; put 'put ''LmNsci13aXphcmQgLmNsci13aXphcmQtZm9vdGVyLWJ1dHRvbnN7dGV4dC1hbGlnbjpyaWdodDtwYWRkaW5nLXJpZ2h0OjEuMnJlbTttYXJnaW46MH0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1mb290ZXItYnV0dG9ucy13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpyb3c7''@;'; put 'put ''ZmxleC13cmFwOm5vd3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmR9LmNsci13aXphcmQgLmNsci13aXphcmQtYnRuLXdyYXBwZXJ7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6NC4ycmVtO3BhZGRpbmctbGVmdDouNnJlbX0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1idG4td3JhcHBlclth''@;'; put 'put ''cmlhLWhpZGRlbj10cnVlXXtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQgLmNsci13aXphcmQtYnRuLmJ0bi1saW5re3BhZGRpbmc6MH0uY2xyLXdpemFyZCAuY2xyLXdpemFyZC1jb250ZW50e2Rpc3BsYXk6YmxvY2t9LmNsci13aXphcmQgLmNsci13aXphcmQtcGFnZTpub3QoW2FyaWEtaGlk''@;'; put 'put ''ZGVuPXRydWVdKXtwYWRkaW5nOi45cmVtIDEuMnJlbSAxLjJyZW07ZGlzcGxheTpibG9ja30uY2xyLXdpemFyZCAubW9kYWwtZGlhbG9ne2hlaWdodDo3NXZofS5jbHItd2l6YXJkIC5tb2RhbC1ib2R5LXdyYXBwZXJ7bWF4LWhlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDtmbGV4LWdyb3c6MTt3''@;'; put 'put ''aWR0aDoxMDAlfS5jbHItd2l6YXJkLndpemFyZC1tZCAubW9kYWwtZGlhbG9ne21pbi1oZWlnaHQ6MjFyZW07bWF4LWhlaWdodDoyNS4ycmVtfS5jbHItd2l6YXJkLndpemFyZC1tZCAubW9kYWwtY29udGVudCwuY2xyLXdpemFyZC53aXphcmQtbWQgLmNsci13aXphcmQtc3RlcG5hdi13cmFw''@;'; put 'put ''cGVye21heC1oZWlnaHQ6MjUuMnJlbX0uY2xyLXdpemFyZC53aXphcmQtbWQgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDoxMC44cmVtO21heC13aWR0aDoxMnJlbX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OjIxcmVtO21heC1o''@;'; put 'put ''ZWlnaHQ6MzZyZW19LmNsci13aXphcmQud2l6YXJkLWxnIC5tb2RhbC1jb250ZW50LC5jbHItd2l6YXJkLndpemFyZC1sZyAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXJ7bWF4LWhlaWdodDozNnJlbX0uY2xyLXdpemFyZC53aXphcmQtbGcgLm5hdi1wYW5lbCwuY2xyLXdpemFyZC53aXph''@;'; put 'put ''cmQtbGcgLmNsci13aXphcmQtc3RlcG5hdi13cmFwcGVye21pbi13aWR0aDoxMnJlbTttYXgtd2lkdGg6MTQuNHJlbX0uY2xyLXdpemFyZC53aXphcmQteGwgLm1vZGFsLWRpYWxvZ3toZWlnaHQ6NzV2aDttYXgtaGVpZ2h0Om5vbmV9LmNsci13aXphcmQud2l6YXJkLXhsIC5uYXYtcGFuZWws''@;'; put 'put ''LmNsci13aXphcmQud2l6YXJkLXhsIC5jbHItd2l6YXJkLXN0ZXBuYXYtd3JhcHBlcnttaW4td2lkdGg6MTJyZW07bWF4LXdpZHRoOjE1LjZyZW19LmNsci13aXphcmQgLnNwaW5uZXI6bm90KC5zcGlubmVyLWlubGluZSk6bm90KC5jbHItdHJlZW5vZGUtc3Bpbm5lcil7bGVmdDpjYWxjKDUw''@;'; put 'put ''JSArIDUuNzVyZW0pO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0MCV9LmNsci13aXphcmQtcGFnZT46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5jbHItd2l6YXJkLXBhZ2U+OmZpcnN0LWNoaWxkPjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LmNsci13aXphcmQtcGFnZT5mb3JtOmZpcnN0''@;'; put 'put ''LWNoaWxke3BhZGRpbmctdG9wOjB9LmNsci13aXphcmQtcGFnZT5mb3JtOmZpcnN0LWNoaWxkPi5mb3JtLWJsb2NrOmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uY2xyLXdpemFyZC0taW5saW5le2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJX0uY2xyLXdpemFyZC0taW5saW5lPmNsci1tb2Rh''@;'; put 'put ''bD4ubW9kYWw6Zm9jdXN7b3V0bGluZS1zdHlsZTpub25lO291dGxpbmUtY29sb3I6dHJhbnNwYXJlbnR9LmNsci13aXphcmQtLWlubGluZSBjbHItbW9kYWx7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFse3BhZGRpbmc6MDtw''@;'; put 'put ''b3NpdGlvbjpzdGF0aWM7aGVpZ2h0OjEwMCU7bWF4LWhlaWdodDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsIC5jb250ZW50LWNvbnRhaW5lcntoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAuY29udGVudC1jb250YWluZXIgLm5hdi1wYW5lbHtoZWlnaHQ6''@;'; put 'put ''OTklO3dpZHRoOjk5JX0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbCAubW9kYWwtY29udGVudHtib3gtc2hhZG93Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwgLm1vZGFsLWRpYWxvZ3ttaW4taGVpZ2h0OjEwMCU7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTt6LWluZGV4OmF1dG99''@;'; put 'put ''LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtYm9keS13cmFwcGVye2hlaWdodDoxMDAlfS5jbHItd2l6YXJkLS1pbmxpbmUgLm1vZGFsLWhlYWRlciAuY2xvc2UsLmNsci13aXphcmQtLWlubGluZSAubW9kYWwtaGVhZGVyLS1hY2Nlc3NpYmxlIC5jbG9zZXtkaXNwbGF5Om5vbmV9LmNsci13''@;'; put 'put ''aXphcmQtLWlubGluZSAubmF2Lm5hdkxpc3R7cGFkZGluZy10b3A6MH0uY2xyLXdpemFyZC0taW5saW5lIC5tb2RhbC1kaWFsb2cgLm1vZGFsLWNvbnRlbnQgLm1vZGFsLWJvZHkgLmNvbnRlbnQtYXJlYXtvdmVyZmxvdy15OmF1dG99LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtYmFja2Ry''@;'; put 'put ''b3B7aGVpZ2h0OjA7d2lkdGg6MDtkaXNwbGF5Om5vbmV9LmNsci13aXphcmQtLWlubGluZSAubW9kYWwtY29udGVudC13cmFwcGVye2FsaWduLWl0ZW1zOnN0cmV0Y2g7aGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXIsLmNsci13aXph''@;'; put 'put ''cmQtLWlubGluZS5jbHItd2l6YXJkIC5tb2RhbC1jb250ZW50e21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6YXV0bzttYXgtaGVpZ2h0OjEwMCV9LmNsci13aXphcmQtLWlubGluZSAuY2xyLXdpemFyZC1zdGVwbmF2LXdyYXBwZXIgLmNsci13aXphcmQtc3RlcG5hdiwuY2xyLXdpemFyZC0taW5s''@;'; put 'put ''aW5lLmNsci13aXphcmQgLm1vZGFsLWNvbnRlbnQgLmNsci13aXphcmQtc3RlcG5hdntoZWlnaHQ6MTAwJX0uY2xyLXdpemFyZC0tbm8tc2hhZG93IC5tb2RhbC1jb250ZW50LXdyYXBwZXIsLmNsci13aXphcmQtLW5vLXNoYWRvdyAubW9kYWwtZGlhbG9ne2JveC1zaGFkb3c6bm9uZX0uY2xy''@;'; put 'put ''LXdpemFyZC0tbm8tdGl0bGUgLmNsci13aXphcmQtdGl0bGV7ZGlzcGxheTpub25lfS5jbHItd2l6YXJkLS1uby10aXRsZSAuY2xyLXdpemFyZC1zdGVwbmF2e3BhZGRpbmctdG9wOjEuMnJlbX1AbWVkaWEgc2NyZWVuey5jbHItd2l6YXJkLXBhZ2VbYXJpYS1oaWRkZW49dHJ1ZV17ZGlzcGxh''@;'; put 'put ''eTpub25lfX1Ac3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246YXV0byl7LmNsci13aXphcmQgLmNsci13aXphcmQtaGVhZGVyLWFjdGlvbnttYXJnaW4tdG9wOi0uMTVyZW19fTpyb290ey0tY2xyLXNpZ25wb3N0LWNvbnRlbnQtYmctY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtMCk7LS1j''@;'; put 'put ''bHItc2lnbnBvc3QtY29udGVudC1ib3JkZXItY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTAwKTstLWNsci1zaWducG9zdC1hY3Rpb24tY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci1zaWducG9zdC1hY3Rpb24taG92ZXItY29sb3I6dmFyKC0tY2xyLWNv''@;'; put 'put ''bG9yLWFjdGlvbi03MDApOy0tY2xyLXNpZ25wb3N0LWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlcik7LS1jbHItc2lnbnBvc3QtcG9pbnRlci1p''@;'; put 'put ''bnZpc2libGUtYm9yZGVyOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIpOy0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1ZWRvLWJvcmRlcjp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1wc3VlZG8tYm9yZGVyKX0uc2lnbnBvc3R7ZGlzcGxheTppbmxpbmUt''@;'; put 'put ''YmxvY2t9LnNpZ25wb3N0OmhvdmVye2N1cnNvcjpwb2ludGVyfS5zaWducG9zdCAuc2lnbnBvc3QtYWN0aW9ue21pbi13aWR0aDoxLjJyZW07bWFyZ2luOjA7cGFkZGluZzowO2NvbG9yOiM4YzhjOGM7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1jb2xvciwgIzhjOGM4Yyl9LnNp''@;'; put 'put ''Z25wb3N0IC5zaWducG9zdC1hY3Rpb24gY2RzLWljb24sLnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb24gY2xyLWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW19LnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb246aG92ZXIsLnNpZ25wb3N0IC5zaWducG9zdC1hY3Rpb24uYWN0aXZle2Nv''@;'; put 'put ''bG9yOiMwMDY0OGY7Y29sb3I6dmFyKC0tY2xyLXNpZ25wb3N0LWFjdGlvbi1ob3Zlci1jb2xvciwgIzAwNjQ4Zil9LnNpZ25wb3N0IC5zaWducG9zdC1jb250ZW50LWhlYWRlciBidXR0b24gY2RzLWljb24sLnNpZ25wb3N0IC5zaWducG9zdC1jb250ZW50LWhlYWRlciBidXR0b24gY2xyLWlj''@;'; put 'put ''b257aGVpZ2h0Oi44cmVtO3dpZHRoOi44cmVtfS5zaWducG9zdC10cmlnZ2Vye21hcmdpbjowO3BhZGRpbmc6MDtkaXNwbGF5OmlubGluZS1ibG9ja30uc2lnbnBvc3QtY29udGVudHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O21pbi13aWR0aDoxMC44cmVtO21heC13aWR0aDoxOHJl''@;'; put 'put ''bTttaW4taGVpZ2h0OjIuNHJlbTttYXgtaGVpZ2h0OjI1LjJyZW07ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxMDUwfS5zaWducG9zdC1jb250ZW50OmhvdmVye2N1cnNvcjpkZWZhdWx0fS5zaWducG9zdC1jb250ZW50IC5wb3BvdmVyLXBvaW50ZXJ7''@;'; put 'put ''aGVpZ2h0OjA7d2lkdGg6MDtwb3NpdGlvbjphYnNvbHV0ZX0uc2lnbnBvc3QtY29udGVudCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtjb250ZW50OiIiO2hlaWdodDowO3dpZHRoOjA7cG9zaXRpb246YWJzb2x1dGV9LnNpZ25wb3N0LWNvbnRlbnQudG9wLWxlZnQgLnBvcG92ZXItcG9pbnRl''@;'; put 'put ''ciwuc2lnbnBvc3QtY29udGVudC50b3AtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCAjYjNiM2IzO2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItYm9y''@;'; put 'put ''ZGVyLCAuNnJlbSBzb2xpZCAjYjNiM2IzKTtib3R0b206LS42cmVtfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnRvcC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQudG9w''@;'; put 'put ''LXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci10b3A6LjZyZW0gc29saWQgI2ZmZjtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKTtib3R0b206LjFyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9w''@;'; put 'put ''LWxlZnQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MH0uc2lnbnBvc3QtY29udGVudC50b3AtbGVmdCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1sZWZ0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2lu''@;'; put 'put ''dGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtyaWdodDotLjA1cmVtfS5zaWducG9zdC1jb250ZW50LnRvcC1sZWZ0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1sZWZ0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0OnZhcigt''@;'; put 'put ''LWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtyaWdodDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLW1pZGRsZSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3Jk''@;'; put 'put ''ZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6NTAlfS5zaWducG9zdC1jb250ZW50LnRvcC1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlk''@;'; put 'put ''IHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7bGVmdDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5zaWducG9zdC13cmFwe2JvcmRlci1ib3R0b20t''@;'; put 'put ''bGVmdC1yYWRpdXM6MH0uc2lnbnBvc3QtY29udGVudC50b3AtcmlnaHQgLnBvcG92ZXItcG9pbnRlcntib3JkZXItcmlnaHQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlk''@;'; put 'put ''IHRyYW5zcGFyZW50KTtsZWZ0Oi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQudG9wLXJpZ2h0IC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxl''@;'; put 'put ''LWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6LjA1cmVtfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmJvdHRv''@;'; put 'put ''bS1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgI2IzYjNiMztib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlciwgLjZyZW0gc29saWQgI2IzYjNiMyk7dG9wOi0uNTVyZW19LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9t''@;'; put 'put ''LWxlZnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmUsLnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xp''@;'; put 'put ''ZCAjZmZmO2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItcHN1ZWRvLWJvcmRlciwgLjZyZW0gc29saWQgd2hpdGUpO3RvcDouMXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbGVmdCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5z''@;'; put 'put ''aWducG9zdC1jb250ZW50LmJvdHRvbS1sZWZ0IC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWxlZnQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3Jp''@;'; put 'put ''Z2h0Oi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQuYm90dG9tLWxlZnQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLWxlZnQ6LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWxlZnQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0g''@;'; put 'put ''c29saWQgdHJhbnNwYXJlbnQpO3JpZ2h0Oi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2li''@;'; put 'put ''bGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7cmlnaHQ6NTAlfS5zaWducG9zdC1jb250ZW50LmJvdHRvbS1taWRkbGUgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2ln''@;'; put 'put ''bnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7cmlnaHQ6LS42NXJlbX0uc2lnbnBvc3QtY29udGVudC5ib3R0b20tcmlnaHQgLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmJvdHRv''@;'; put 'put ''bS1yaWdodCAucG9wb3Zlci1wb2ludGVye2JvcmRlci1yaWdodDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO2xlZnQ6LS4wNXJlbX0uc2lnbnBv''@;'; put 'put ''c3QtY29udGVudC5ib3R0b20tcmlnaHQgLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVu''@;'; put 'put ''dCk7bGVmdDouMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQubGVmdC10b3AgLnBvcG92ZXItcG9pbnRlciwuc2lnbnBvc3QtY29udGVudC5sZWZ0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyLC5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWxlZnQ6''@;'; put 'put ''LjZyZW0gc29saWQgI2IzYjNiMztib3JkZXItbGVmdDp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1ib3JkZXIsIC42cmVtIHNvbGlkICNiM2IzYjMpO3JpZ2h0Oi0uNnJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29u''@;'; put 'put ''dGVudC5sZWZ0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItbGVmdDouNnJlbSBzb2xpZCAjZmZmO2JvcmRlci1sZWZ0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBz''@;'; put 'put ''dWVkby1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmxlZnQtdG9wIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRvcDouNnJlbSBz''@;'; put 'put ''b2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtib3R0b206LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LXRvcCAucG9wb3Zlci1wb2ludGVyOmJlZm9yZXti''@;'; put 'put ''b3JkZXItdG9wOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDotLjY1cmVtO3JpZ2h0Oi4xcmVtfS5zaWducG9zdC1jb250ZW50LmxlZnQtbWlk''@;'; put 'put ''ZGxlIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6NTAlO3RyYW5zZm9ybTp0cmFu''@;'; put 'put ''c2xhdGVZKC01MCUpfS5zaWducG9zdC1jb250ZW50LmxlZnQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAu''@;'; put 'put ''NnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbTtsZWZ0Oi0uN3JlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAuc2lnbnBvc3Qtd3JhcHtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LmxlZnQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7''@;'; put 'put ''Ym9yZGVyLWJvdHRvbTouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItYm90dG9tOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5sZWZ0LWJvdHRvbSAu''@;'; put 'put ''cG9wb3Zlci1wb2ludGVyOmJlZm9yZXtib3JkZXItYm90dG9tOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDouMDVyZW07bGVmdDotLjdy''@;'; put 'put ''ZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXIsLnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtYm90dG9tIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNv''@;'; put 'put ''bGlkICNiM2IzYjM7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWJvcmRlciwgLjZyZW0gc29saWQgI2IzYjNiMyk7bGVmdDotLjZyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3JlLC5zaWducG9zdC1jb250ZW50LnJp''@;'; put 'put ''Z2h0LW1pZGRsZSAucG9wb3Zlci1wb2ludGVyOmJlZm9yZSwuc2lnbnBvc3QtY29udGVudC5yaWdodC1ib3R0b20gLnBvcG92ZXItcG9pbnRlcjpiZWZvcmV7Ym9yZGVyLXJpZ2h0Oi42cmVtIHNvbGlkICNmZmY7Ym9yZGVyLXJpZ2h0OnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLXBzdWVk''@;'; put 'put ''by1ib3JkZXIsIC42cmVtIHNvbGlkIHdoaXRlKTtsZWZ0Oi4xcmVtfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LXRvcCAuc2lnbnBvc3Qtd3JhcHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjB9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtdG9wIC5wb3BvdmVyLXBvaW50ZXJ7Ym9yZGVyLXRv''@;'; put 'put ''cDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTtib3R0b206LS4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC10b3AgLnBvcG92ZXItcG9pbnRl''@;'; put 'put ''cjpiZWZvcmV7Ym9yZGVyLXRvcDouNnJlbSBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItdG9wOnZhcigtLWNsci1zaWducG9zdC1wb2ludGVyLWludmlzaWJsZS1ib3JkZXIsIC42cmVtIHNvbGlkIHRyYW5zcGFyZW50KTt0b3A6LS42NXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1taWRk''@;'; put 'put ''bGUgLnBvcG92ZXItcG9pbnRlcntib3JkZXItYm90dG9tOi42cmVtIHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206dmFyKC0tY2xyLXNpZ25wb3N0LXBvaW50ZXItaW52aXNpYmxlLWJvcmRlciwgLjZyZW0gc29saWQgdHJhbnNwYXJlbnQpO3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5z''@;'; put 'put ''bGF0ZVkoLTUwJSl9LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtbWlkZGxlIC5wb3BvdmVyLXBvaW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAu''@;'; put 'put ''NnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC5yaWdodC1ib3R0b20gLnNpZ25wb3N0LXdyYXB7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowfS5zaWducG9zdC1jb250ZW50LnJpZ2h0LWJvdHRvbSAucG9wb3Zlci1wb2ludGVye2JvcmRlci1ib3R0''@;'; put 'put ''b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi0uMDVyZW19LnNpZ25wb3N0LWNvbnRlbnQucmlnaHQtYm90dG9tIC5wb3BvdmVyLXBv''@;'; put 'put ''aW50ZXI6YmVmb3Jle2JvcmRlci1ib3R0b206LjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTp2YXIoLS1jbHItc2lnbnBvc3QtcG9pbnRlci1pbnZpc2libGUtYm9yZGVyLCAuNnJlbSBzb2xpZCB0cmFuc3BhcmVudCk7dG9wOi4wNXJlbX0uc2lnbnBvc3QtY29udGVudC1o''@;'; put 'put ''ZWFkZXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxMDAlO2JhY2tncm91bmQtY29sb3I6aW5oZXJpdDt0b3A6MH0uc2lnbnBvc3Qtd3JhcHtib3JkZXItcmFkaXVzOi4xNXJlbTtib3JkZXItcmFkaXVzOnZhcigtLWNsci1z''@;'; put 'put ''aWducG9zdC1ib3JkZXItcmFkaXVzLCAuMTVyZW0pO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojYjNiM2IzO2JvcmRlci1jb2xvcjp2YXIoLS1jbHIt''@;'; put 'put ''c2lnbnBvc3QtY29udGVudC1ib3JkZXItY29sb3IsICNiM2IzYjMpO2JhY2tncm91bmQtY29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1zaWducG9zdC1jb250ZW50LWJnLWNvbG9yLCB3aGl0ZSk7ei1pbmRleDoxMDUwO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWducG9zdC1j''@;'; put 'put ''b250ZW50LWJvZHl7cGFkZGluZzoxLjJyZW07bWF4LWhlaWdodDoyNHJlbTtvdmVyZmxvdy15OmF1dG99LmRyYWctaGFuZGxle2N1cnNvcjpncmFifS5pbi1kcmFne2N1cnNvcjpncmFiYmluZzstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZX0uaW4tZHJhZyAqe3Bv''@;'; put 'put ''aW50ZXItZXZlbnRzOm5vbmV9LmluLWRyYWcgLmRyYWdnYWJsZS5iZWluZy1kcmFnZ2Vke29wYWNpdHk6LjZ9LmRyYWdnYWJsZS1naG9zdHtwb3NpdGlvbjpmaXhlZDtkaXNwbGF5OmJsb2NrO3Zpc2liaWxpdHk6aGlkZGVuO3otaW5kZXg6MjE0NzQ4MzY0Nztwb2ludGVyLWV2ZW50czpub25l''@;'; put 'put ''O3dpbGwtY2hhbmdlOmxlZnQsdG9wfS5kcmFnZ2FibGUtZ2hvc3Q+LmRyYWdnYWJsZXttYXJnaW46MDtvcGFjaXR5OjF9LmRyYWdnYWJsZS1naG9zdC5kcm9wcGVke29wYWNpdHk6MH0uZHJvcHBhYmxlLmRyYWdnYWJsZS1tYXRjaHtib3JkZXI6LjA1cmVtIGRhc2hlZCAjYzA5MGQ1fS5kcm9w''@;'; put 'put ''cGFibGUuZHJhZ2dhYmxlLW92ZXJ7Ym9yZGVyOi4wNXJlbSBkYXNoZWQgIzY4MDA5NH06cm9vdHstLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWZvbnQtY29sb3IpOy0tY2xyLWFjY29yZGlvbi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItZ2xv''@;'; put 'put ''YmFsLXNlbGVjdGlvbi1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0wKTstLWNsci1hY2NvcmRpb24taGVhZGVyLWJhY2tncm91bmQtY29sb3I6dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNTApOy0tY2xyLWFj''@;'; put 'put ''Y29yZGlvbi1oZWFkZXItaG92ZXItYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC0yMDApOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItZm9udC1zaXplOi44cmVtOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9uLWZvbnQtc2l6ZTouNnJlbTstLWNsci1hY2NvcmRp''@;'; put 'put ''b24tdGl0bGUtZm9udC13ZWlnaHQ6NTAwOy0tY2xyLWFjY29yZGlvbi10aXRsZS1mb250LXNpemU6LjY1cmVtOy0tY2xyLWFjY29yZGlvbi1lcnJvci1jb2xvcjp2YXIoLS1jbHItZ2xvYmFsLWVycm9yLWNvbG9yKTstLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3I6dmFyKC0tY2xyLWds''@;'; put 'put ''b2JhbC1zdWNjZXNzLWNvbG9yKTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTQwMCk7LS1jbHItYWNjb3JkaW9uLWJvcmRlci1yYWRpdXM6dmFyKC0tY2xyLWdsb2JhbC1ib3JkZXJyYWRpdXMpOy0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVm''@;'; put 'put ''dC1jb2xvcjojZThlOGU4Oy0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aDouM3JlbTstLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGU6dmFyKC0tY2xyLWFjY29yZGlvbi1jb21wbGV0ZS1jb2xvcik7LS1jbHItYWNjb3JkaW9uLWJvcmRlci1sZWZ0LWNv''@;'; put 'put ''bG9yLWVycm9yOnZhcigtLWNsci1hY2NvcmRpb24tZXJyb3ItY29sb3IpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29s''@;'; put 'put ''b3IpOy0tY2xyLWFjY29yZGlvbi1oZWFkZXItbGVmdC1jb21wbGV0ZS1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItY29tcGxldGUpOy0tY2xyLWFjY29yZGlvbi1o''@;'; put 'put ''ZWFkZXItbGVmdC1lcnJvci1pbmRpY2F0b3I6aW5zZXQgdmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC13aWR0aCkgMCAwIHZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWxlZnQtY29sb3ItZXJyb3IpfS5jbHItYWNjb3JkaW9ue2Rpc3BsYXk6YmxvY2s7Y291bnRlci1yZXNldDph''@;'; put 'put ''Y2NvcmRpb247bWFyZ2luLWJvdHRvbToxLjJyZW19LmNsci1hY2NvcmRpb24tcGFuZWx7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1oZWFkZXJ7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLXRleHQtY29sb3IsICM2NjY2NjYpO2JvcmRlcjouMDVyZW0gc29saWQ7''@;'; put 'put ''Ym9yZGVyLWNvbG9yOiNjY2M7Ym9yZGVyLWNvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLWNvbG9yLCAjY2NjY2NjKTtib3gtc2hhZG93Omluc2V0IC4zcmVtIDAgI2U4ZThlODtib3gtc2hhZG93OnZhcigtLWNsci1hY2NvcmRpb24taGVhZGVyLWxlZnQtaW5kaWNhdG9yLCBpbnNl''@;'; put 'put ''dCAuM3JlbSAwIDAgI2U4ZThlOCk7YmFja2dyb3VuZDojZmFmYWZhO2JhY2tncm91bmQ6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItYmFja2dyb3VuZC1jb2xvciwgI2ZhZmFmYSk7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2UtaW4tb3V0O2JvcmRlci1ib3R0b206MDt3aWR0aDoxMDAlO2Zv''@;'; put 'put ''bnQtc2l6ZTouOHJlbTtmb250LXNpemU6dmFyKC0tY2xyLWFjY29yZGlvbi1oZWFkZXItZm9udC1zaXplLCAuOHJlbSk7dGV4dC1hbGlnbjpsZWZ0fS5jbHItYWNjb3JkaW9uLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNlOGU4ZTg7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jbHIt''@;'; put 'put ''YWNjb3JkaW9uLWhlYWRlci1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yLCAjZThlOGU4KX0uY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWNvbnRlbnQsLmNsci1hY2NvcmRpb24tcGFuZWw6bGFzdC1jaGlsZCAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym9yZGVy''@;'; put 'put ''LWJvdHRvbS1zdHlsZTpzb2xpZDtib3JkZXItYm90dG9tLXdpZHRoOi4wNXJlbTtib3JkZXItYm90dG9tLXdpZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLWJvdHRvbS1jb2xvcjojY2NjO2JvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tY2xyLWFjY29y''@;'; put 'put ''ZGlvbi1ib3JkZXItY29sb3IsICNjY2NjY2MpfS5jbHItYWNjb3JkaW9uLW51bWJlcntwYWRkaW5nOjAgLjlyZW07ZGlzcGxheTpub25lfS5jbHItYWNjb3JkaW9uLW51bWJlcjpiZWZvcmV7Y29udGVudDpjb3VudGVyKGFjY29yZGlvbikgIi4iO2NvdW50ZXItaW5jcmVtZW50OmFjY29yZGlv''@;'; put 'put ''bn0uY2xyLWFjY29yZGlvbi1oZWFkZXItYnV0dG9ue2Rpc3BsYXk6ZmxleDtmbGV4LWZsb3c6cm93IHdyYXA7ZmxleDoxIDEgMCU7d2lkdGg6MTAwJTtib3JkZXI6MDtwYWRkaW5nOi45cmVtO2JhY2tncm91bmQ6MCAwO3RleHQtYWxpZ246bGVmdDtjdXJzb3I6cG9pbnRlcjtjb2xvcjojNjY2''@;'; put 'put ''O2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tdGV4dC1jb2xvciwgIzY2NjY2Nil9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b257ZmxleC1mbG93OnJvd319LmNsci1hY2NvcmRpb24tc3RhdHVze3dpZHRoOjEuOHJlbTtkaXNwbGF5OmlubGlu''@;'; put 'put ''ZS1ibG9jazt2ZXJ0aWNhbC1hbGlnbjp0b3B9LmNsci1hY2NvcmRpb24tdGl0bGV7ZGlzcGxheTppbmxpbmUtYmxvY2t9QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpe2Nsci1zdGVwLXRpdGxlLmNsci1hY2NvcmRpb24tdGl0bGV7bWluLXdpZHRoOjguNjRyZW19fS5jbHItYWNjb3JkaW9uLWhl''@;'; put 'put ''YWRlci1oYXMtZGVzY3JpcHRpb24gLmNsci1hY2NvcmRpb24tdGl0bGV7bWF4LXdpZHRoOjEzLjJyZW19LmNsci1hY2NvcmRpb24tZGVzY3JpcHRpb257ZGlzcGxheTppbmxpbmUtYmxvY2s7bWF4LXdpZHRoOjMyLjVyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9u''@;'; put 'put ''LWRlc2NyaXB0aW9ue21hcmdpbi1sZWZ0OjEuOHJlbX19LmNsci1hY2NvcmRpb24tY29udGVudHtiYWNrZ3JvdW5kOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1jbHItYWNjb3JkaW9uLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvciwgd2hpdGUpO2JvcmRlci13aWR0aDouMDVyZW07Ym9yZGVyLXdp''@;'; put 'put ''ZHRoOnZhcigtLWNsci1nbG9iYWwtYm9yZGVyd2lkdGgsIC4wNXJlbSk7Ym9yZGVyLXN0eWxlOnNvbGlkO2JvcmRlci1jb2xvcjojY2NjO2JvcmRlci1jb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWJvcmRlci1jb2xvciwgI2NjY2NjYyk7Ym9yZGVyLWJvdHRvbTowO292ZXJmbG93OmhpZGRl''@;'; put 'put ''bjtwYWRkaW5nOi45cmVtO2Rpc3BsYXk6bm9uZX0uY2xyLWFjY29yZGlvbi1jb250ZW50IC5jbHItZm9ybSwuY2xyLWFjY29yZGlvbi1jb250ZW50Lm5nLXRyaWdnZXJ7cGFkZGluZzowfUBtZWRpYSAobWluLXdpZHRoOjU3NnB4KXsuY2xyLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6Ljly''@;'; put 'put ''ZW0gMi43cmVtfX0uY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50e3BhZGRpbmc6LjlyZW19QG1lZGlhIChtaW4td2lkdGg6NTc2cHgpey5jbHItYWNjb3JkaW9uLWlubmVyLWNvbnRlbnR7cGFkZGluZzouOXJlbSAyLjdyZW19fS5jbHItYWNjb3JkaW9uLWFuZ2xle3RyYW5zaXRpb246YWxs''@;'; put 'put ''IC4ycyBlYXNlLWluLW91dDt0cmFuc2Zvcm06cm90YXRlKDkwKX0uY2xyLWFjY29yZGlvbi1lcnJvci1pY29uLC5jbHItYWNjb3JkaW9uLWNvbXBsZXRlLWljb257aGVpZ2h0OjEuMnJlbTt3aWR0aDoxLjJyZW07ZGlzcGxheTpub25lO3BhZGRpbmc6MDttYXJnaW46MCAuNnJlbX0uY2xyLWFj''@;'; put 'put ''Y29yZGlvbi1wYW5lbC1vcGVuIC5jbHItYWNjb3JkaW9uLWNvbnRlbnR7ZGlzcGxheTpibG9ja30uY2xyLWFjY29yZGlvbi1wYW5lbC1vcGVuIC5jbHItYWNjb3JkaW9uLWFuZ2xle3Zpc2liaWxpdHk6dmlzaWJsZTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmNsci1hY2NvcmRpb24tcGFu''@;'; put 'put ''ZWwtb3BlbiAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7YmFja2dyb3VuZDojZDhlM2U5O2JhY2tncm91bmQ6dmFyKC0tY2xyLWFjY29yZGlvbi1hY3RpdmUtYmFja2dyb3VuZC1jb2xvciwgI2Q4ZTNlOSl9LmNsci1hY2NvcmRpb24tcGFuZWwtY29tcGxldGUgLmNsci1hY2NvcmRpb24tY29tcGxl''@;'; put 'put ''dGUtaWNvbntkaXNwbGF5OmlubGluZS1ibG9jaztjb2xvcjojNWFhMjIwO2NvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tY29tcGxldGUtY29sb3IsICM1YWEyMjApfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5jbHItYWNjb3JkaW9uLWFuZ2xle3Zpc2liaWxpdHk6dmlzaWJsZX0u''@;'; put 'put ''Y2xyLWFjY29yZGlvbi1wYW5lbC1jb21wbGV0ZSAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym94LXNoYWRvdzppbnNldCAuM3JlbSAwICM1YWEyMjA7Ym94LXNoYWRvdzp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWNvbXBsZXRlLWluZGljYXRvciwgaW5zZXQgLjNyZW0gMCAwICM1''@;'; put 'put ''YWEyMjApfS5jbHItYWNjb3JkaW9uLXBhbmVsLWNvbXBsZXRlIC5uZy10cmlnZ2VyLmNsci1hY2NvcmRpb24tY29udGVudHtkaXNwbGF5OmJsb2NrfS5jbHItYWNjb3JkaW9uLXBhbmVsLWVycm9yIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tOi4wNXJlbSBzb2xpZDtib3Jk''@;'; put 'put ''ZXItY29sb3I6I2MyMWQwMDtib3JkZXItY29sb3I6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItbGVmdC1jb2xvci1lcnJvciwgI2MyMWQwMCk7Ym94LXNoYWRvdzppbnNldCAuM3JlbSAwICNjMjFkMDA7Ym94LXNoYWRvdzp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1sZWZ0LWVycm9y''@;'; put 'put ''LWluZGljYXRvciwgaW5zZXQgLjNyZW0gMCAwICNjMjFkMDApO2JhY2tncm91bmQtY29sb3I6I2Q4ZTNlOTtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWNsci1hY2NvcmRpb24tYWN0aXZlLWJhY2tncm91bmQtY29sb3IsICNkOGUzZTkpfS5jbHItYWNjb3JkaW9uLXBhbmVsLWVycm9yIC5jbHIt''@;'; put 'put ''YWNjb3JkaW9uLWVycm9yLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7Y29sb3I6I2MyMWQwMDtjb2xvcjp2YXIoLS1jbHItYWNjb3JkaW9uLWVycm9yLWNvbG9yLCAjYzIxZDAwKX0uY2xyLWFjY29yZGlvbi1wYW5lbC1lcnJvciAuY2xyLWFjY29yZGlvbi1udW1iZXIsLmNsci1hY2NvcmRp''@;'; put 'put ''b24tcGFuZWwtY29tcGxldGUgLmNsci1hY2NvcmRpb24tbnVtYmVye3Bvc2l0aW9uOmFic29sdXRlO2NsaXA6cmVjdCgxcHgsMXB4LDFweCwxcHgpO2NsaXAtcGF0aDppbnNldCg1MCUpO3BhZGRpbmc6MDtib3JkZXI6MDtoZWlnaHQ6MXB4O3dpZHRoOjFweDtvdmVyZmxvdzpoaWRkZW47d2hp''@;'; put 'put ''dGUtc3BhY2U6bm93cmFwO3RvcDowO2xlZnQ6MH0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1oZWFkZXJ7Ym94LXNoYWRvdzpub25lfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVs''@;'; put 'put ''OmZpcnN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItdG9wLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItdG9wLWxlZnQtcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24tYm9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9y''@;'; put 'put ''ZGVyLXRvcC1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXBhbmVsOmxhc3QtY2hpbGQgLmNsci1hY2NvcmRpb24tY29udGVudCwuY2xyLWFj''@;'; put 'put ''Y29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1wYW5lbDpsYXN0LWNoaWxkIC5jbHItYWNjb3JkaW9uLWhlYWRlcntib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOi4xNXJlbTtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOnZhcigtLWNsci1hY2NvcmRpb24t''@;'; put 'put ''Ym9yZGVyLXJhZGl1cywgLjE1cmVtKTtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czouMTVyZW07Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6dmFyKC0tY2xyLWFjY29yZGlvbi1ib3JkZXItcmFkaXVzLCAuMTVyZW0pfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMp''@;'; put 'put ''IC5jbHItYWNjb3JkaW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjUwMDtmb250LXdlaWdodDp2YXIoLS1jbHItYWNjb3JkaW9uLXRpdGxlLWZvbnQtd2VpZ2h0LCA1MDApO2ZvbnQtc2l6ZTouNjVyZW07Zm9udC1zaXplOnZhcigtLWNsci1hY2NvcmRpb24tdGl0bGUtZm9udC1zaXplLCAuNjVyZW0p''@;'; put 'put ''fS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b257Zm9udC1zaXplOi42cmVtO2ZvbnQtc2l6ZTp2YXIoLS1jbHItYWNjb3JkaW9uLWhlYWRlci1idXR0b24tZm9udC1zaXplLCAuNnJlbSk7cGFkZGluZzouM3JlbSAuNnJl''@;'; put 'put ''bX0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1jb250ZW50e3BhZGRpbmc6MH0uY2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1pbm5lci1jb250ZW50e3BhZGRpbmc6LjNyZW0gMS43NXJlbX0u''@;'; put 'put ''Y2xyLWFjY29yZGlvbjpub3QoLmNsci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1zdGF0dXN7d2lkdGg6Ljk2cmVtfS5jbHItYWNjb3JkaW9uOm5vdCguY2xyLXN0ZXBwZXItZm9ybXMpIC5jbHItYWNjb3JkaW9uLXN0YXR1cyBjZHMtaWNvbiwuY2xyLWFjY29yZGlvbjpub3QoLmNs''@;'; put 'put ''ci1zdGVwcGVyLWZvcm1zKSAuY2xyLWFjY29yZGlvbi1zdGF0dXMgY2xyLWljb257aGVpZ2h0Oi43cmVtO3dpZHRoOi43cmVtfS5jbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4gLmNsci1hY2NvcmRpb24taGVhZGVye2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVy''@;'; put 'put ''LWJvdHRvbS1yaWdodC1yYWRpdXM6MCFpbXBvcnRhbnQ7Ym9yZGVyLWJvdHRvbTowIWltcG9ydGFudH0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2NvcmRpb24tcGFuZWwtaW5hY3RpdmUgLmNsci1hY2NvcmRpb24tYW5nbGV7dmlzaWJpbGl0eTpoaWRkZW59LmNsci1zdGVwcGVyLWZvcm1z''@;'; put 'put ''IC5jbHItYWNjb3JkaW9uLXBhbmVsLW9wZW4gLmNsci1hY2NvcmRpb24tYW5nbGV7dmlzaWJpbGl0eTp2aXNpYmxlfS5jbHItc3RlcHBlci1mb3JtcyAuY2xyLWFjY29yZGlvbi1zdGF0dXN7bWluLXdpZHRoOjMuNnJlbX0uY2xyLXN0ZXBwZXItZm9ybXMgLmNsci1hY2NvcmRpb24tbnVtYmVy''@;'; put 'put ''e2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5jbHItc3RlcC1idXR0b257ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOjEuMnJlbX06cm9vdHstLWNsci10aW1lbGluZS1saW5lLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTUwMCk7LS1jbHItdGltZWxpbmUtc3RlcC1oZWFkZXItY29sb3I6''@;'; put 'put ''dmFyKC0tY2xyLWNvbG9yLW5ldXRyYWwtNjAwKTstLWNsci10aW1lbGluZS1zdGVwLXRpdGxlLWNvbG9yOnZhcigtLWNsci1jb2xvci1uZXV0cmFsLTcwMCk7LS1jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbi1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC03MDApOy0tY2xyLXRp''@;'; put 'put ''bWVsaW5lLWluY29tcGxldGUtc3RlcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItbmV1dHJhbC02MDApOy0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItYWN0aW9uLTYwMCk7LS1jbHItdGltZWxpbmUtc3VjY2Vzcy1zdGVwLWNvbG9yOnZhcigtLWNsci1j''@;'; put 'put ''b2xvci1zdWNjZXNzLTQwMCk7LS1jbHItdGltZWxpbmUtZXJyb3Itc3RlcC1jb2xvcjp2YXIoLS1jbHItY29sb3ItZGFuZ2VyLTgwMCk7LS1jbHItdGltZWxpbmUtc3RlcC10aXRsZS1mb250LXdlaWdodDp2YXIoLS1jbHItcDItZm9udC13ZWlnaHQpfS5jbHItdGltZWxpbmV7ZGlzcGxheTpm''@;'; put 'put ''bGV4O3BhZGRpbmc6LjZyZW19LmNsci10aW1lbGluZS1zdGVwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47d2lkdGg6MTAwJTttaW4td2lkdGg6OC43NXJlbTttYXJnaW4tbGVmdDouNnJlbX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb24sLmNsci10aW1lbGluZS1zdGVw''@;'; put 'put ''IGNsci1pY29ue2hlaWdodDoxLjhyZW07d2lkdGg6MS44cmVtO21pbi1oZWlnaHQ6MS44cmVtO21pbi13aWR0aDoxLjhyZW19LmNsci10aW1lbGluZS1zdGVwIGNkcy1pY29uW3NoYXBlPWNpcmNsZV0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWNpcmNsZV17Y29sb3I6Izhj''@;'; put 'put ''OGM4Yztjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtaW5jb21wbGV0ZS1zdGVwLWNvbG9yLCAjOGM4YzhjKX0uY2xyLXRpbWVsaW5lLXN0ZXAgY2RzLWljb25bc2hhcGU9ZG90LWNpcmNsZV0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWRvdC1jaXJjbGVde2NvbG9yOiMwMDcy''@;'; put 'put ''YTM7Y29sb3I6dmFyKC0tY2xyLXRpbWVsaW5lLWN1cnJlbnQtc3RlcC1jb2xvciwgIzAwNzJhMyl9LmNsci10aW1lbGluZS1zdGVwIGNkcy1pY29uW3NoYXBlPXN1Y2Nlc3Mtc3RhbmRhcmRdLC5jbHItdGltZWxpbmUtc3RlcCBjbHItaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXXtjb2xv''@;'; put 'put ''cjojNWViNzE1O2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1zdWNjZXNzLXN0ZXAtY29sb3IsICM1ZWI3MTUpfS5jbHItdGltZWxpbmUtc3RlcCBjZHMtaWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF0sLmNsci10aW1lbGluZS1zdGVwIGNsci1pY29uW3NoYXBlPWVycm9yLXN0YW5kYXJkXXtj''@;'; put 'put ''b2xvcjojYzIxZDAwO2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1lcnJvci1zdGVwLWNvbG9yLCAjYzIxZDAwKX0uY2xyLXRpbWVsaW5lLXN0ZXA6bm90KDpsYXN0LW9mLXR5cGUpIC5jbHItdGltZWxpbmUtc3RlcC1ib2R5OmJlZm9yZXtjb250ZW50OiIiO2JhY2tncm91bmQ6I2IzYjNiMzti''@;'; put 'put ''YWNrZ3JvdW5kOnZhcigtLWNsci10aW1lbGluZS1saW5lLWNvbG9yLCAjYjNiM2IzKTtoZWlnaHQ6LjFyZW07d2lkdGg6Y2FsYygxMDAlIC0gMXJlbSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgxLjdyZW0sLS45NXJlbSl9LmNsci10aW1lbGluZS1zdGVwLWhlYWRlcntjb2xvcjojOGM4YzhjO2Nv''@;'; put 'put ''bG9yOnZhcigtLWNsci10aW1lbGluZS1zdGVwLWhlYWRlci1jb2xvciwgIzhjOGM4Yyk7Zm9udC1zaXplOi42NXJlbTtsaW5lLWhlaWdodDouOXJlbTt3aGl0ZS1zcGFjZTpub3dyYXA7bWFyZ2luLWJvdHRvbTouNHJlbX0uY2xyLXRpbWVsaW5lLXN0ZXAtYm9keXtkaXNwbGF5OmZsZXg7Zmxl''@;'; put 'put ''eC1kaXJlY3Rpb246Y29sdW1ufS5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNkcy1pY29uLC5jbHItdGltZWxpbmUtc3RlcC1ib2R5IGNsci1pY29ue2hlaWdodDouOHJlbTt3aWR0aDouOHJlbTttaW4td2lkdGg6aW5pdGlhbDttaW4taGVpZ2h0OmluaXRpYWx9LmNsci10aW1lbGluZS1zdGVw''@;'; put 'put ''LWJvZHkgY2RzLWljb25bc2hhcGU9Y2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1kb3QtY2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMtaWNvbltzaGFwZT1zdWNjZXNzLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjZHMt''@;'; put 'put ''aWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF0sLmNsci10aW1lbGluZS1zdGVwLWJvZHkgY2xyLWljb25bc2hhcGU9Y2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1kb3QtY2lyY2xlXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1z''@;'; put 'put ''dWNjZXNzLXN0YW5kYXJkXSwuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keSBjbHItaWNvbltzaGFwZT1lcnJvci1zdGFuZGFyZF17Y29sb3I6aW5oZXJpdH0uY2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGV7Y29sb3I6IzY2Njtjb2xvcjp2YXIoLS1jbHItdGltZWxpbmUtc3RlcC10aXRsZS1jb2xvciwg''@;'; put 'put ''IzY2NjY2Nik7Zm9udC1zaXplOi42NXJlbTtmb250LXdlaWdodDo1MDA7Zm9udC13ZWlnaHQ6dmFyKC0tY2xyLXRpbWVsaW5lLXN0ZXAtdGl0bGUtZm9udC13ZWlnaHQsIDUwMCk7bGluZS1oZWlnaHQ6LjlyZW07bWFyZ2luLXRvcDouNHJlbTttYXJnaW4tYm90dG9tOi4zcmVtfS5jbHItdGlt''@;'; put 'put ''ZWxpbmUtc3RlcC1kZXNjcmlwdGlvbntjb2xvcjojNjY2O2NvbG9yOnZhcigtLWNsci10aW1lbGluZS1zdGVwLWRlc2NyaXB0aW9uLWNvbG9yLCAjNjY2NjY2KTtmb250LXNpemU6LjU1cmVtO2xpbmUtaGVpZ2h0Oi44cmVtfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbiBidXR0b257''@;'; put 'put ''ZGlzcGxheTpibG9jazttYXJnaW4tdG9wOi40cmVtfS5jbHItdGltZWxpbmUtc3RlcC1kZXNjcmlwdGlvbiBpbWd7d2lkdGg6MTAwJTttYXJnaW4tdG9wOi40cmVtfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2Fse2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MTZy''@;'; put 'put ''ZW19LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwe2ZsZXgtZGlyZWN0aW9uOnJvdzttYXJnaW4tbGVmdDowO3Bvc2l0aW9uOnJlbGF0aXZlfS5jbHItdGltZWxpbmUuY2xyLXRpbWVsaW5lLXZlcnRpY2FsIC5jbHItdGltZWxpbmUtc3RlcDpu''@;'; put 'put ''b3QoOmxhc3Qtb2YtdHlwZSl7bWFyZ2luLWJvdHRvbToxLjhyZW19LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwOm5vdCg6bGFzdC1vZi10eXBlKSAuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keTpiZWZvcmV7cG9zaXRpb246YWJzb2x1dGU7d2lk''@;'; put 'put ''dGg6LjFyZW07aGVpZ2h0OmNhbGMoMTAwJSArIC4ycmVtKTt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xLjU1cmVtLDEuNHJlbSl9LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwLWhlYWRlcnt0ZXh0LWFsaWduOnJpZ2h0O3doaXRlLXNwYWNlOm5v''@;'; put 'put ''cm1hbDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7d2lkdGg6M3JlbTttaW4td2lkdGg6M3JlbTttYXJnaW4tcmlnaHQ6LjZyZW07bWFyZ2luLXRvcDouM3JlbTttYXJnaW4tYm90dG9tOjB9LmNsci10aW1lbGluZS5jbHItdGltZWxpbmUtdmVydGljYWwgLmNsci10aW1lbGluZS1zdGVwLXRpdGxl''@;'; put 'put ''e21hcmdpbi10b3A6MH0uY2xyLXRpbWVsaW5lLmNsci10aW1lbGluZS12ZXJ0aWNhbCAuY2xyLXRpbWVsaW5lLXN0ZXAtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi13aWR0aDo4LjlyZW07bWFyZ2luLWxlZnQ6LjZyZW07bWFyZ2luLXRvcDouM3JlbX1Aa2V5''@;'; put 'put ''ZnJhbWVzIHNwaW57MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fWNsci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowO2hlaWdodDoxNnB4O3dpZHRoOjE2cHg7dmVydGljYWwtYWxpZ246bWlkZGxlO2ZpbGw6Y3VycmVudENvbG9y''@;'; put 'put ''fWNsci1pY29uIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6Y3VycmVudENvbG9yfWNsci1pY29uLmlzLWdyZWVuLGNsci1pY29uLmlzLXN1Y2Nlc3N7ZmlsbDojMmU4NTAwfWNsci1pY29uLmlzLWdyZWVuIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZSxjbHItaWNvbi5pcy1zdWNj''@;'; put 'put ''ZXNzIC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6IzJlODUwMH1jbHItaWNvbi5pcy1yZWQsY2xyLWljb24uaXMtZGFuZ2VyLGNsci1pY29uLmlzLWVycm9ye2ZpbGw6I2UwMjIwMH1jbHItaWNvbi5pcy1yZWQgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLWRh''@;'; put 'put ''bmdlciAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtZXJyb3IgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZTAyMjAwfWNsci1pY29uLmlzLXdhcm5pbmd7ZmlsbDojYzI3YjAwfWNsci1pY29uLmlzLXdhcm5pbmcgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tl''@;'; put 'put ''e3N0cm9rZTojYzI3YjAwfWNsci1pY29uLmlzLWJsdWUsY2xyLWljb24uaXMtaW5mb3tmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaXMtYmx1ZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2UsY2xyLWljb24uaXMtaW5mbyAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiMwMDc3Yjh9Y2xy''@;'; put 'put ''LWljb24uaXMtd2hpdGUsY2xyLWljb24uaXMtaW52ZXJzZXtmaWxsOiNmZmZ9Y2xyLWljb24uaXMtd2hpdGUgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tlLGNsci1pY29uLmlzLWludmVyc2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZmZmfWNsci1pY29uLmlzLWhpZ2hsaWdo''@;'; put 'put ''dHtmaWxsOiMwMDc3Yjh9Y2xyLWljb24uaXMtaGlnaGxpZ2h0IC50cmFuc3BhcmVudC1maWxsLXN0cm9rZXtzdHJva2U6IzAwNzdiOH1jbHItaWNvbltzaGFwZSQ9IiB1cCJdIHN2ZyxjbHItaWNvbltkaXI9dXBdIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDApfWNsci1pY29uW3NoYXBlJD0iIGRv''@;'; put 'put ''d24iXSBzdmcsY2xyLWljb25bZGlyPWRvd25dIHN2Z3t0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9Y2xyLWljb25bc2hhcGUkPSIgcmlnaHQiXSBzdmcsY2xyLWljb25bZGlyPXJpZ2h0XSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9Y2xyLWljb25bc2hhcGUkPSIgbGVmdCJdIHN2Zyxj''@;'; put 'put ''bHItaWNvbltkaXI9bGVmdF0gc3Zne3RyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKX1jbHItaWNvbltmbGlwPWhvcml6b250YWxdIHN2Z3t0cmFuc2Zvcm06c2NhbGUoLTEpIHJvdGF0ZVgoMTgwZGVnKX1jbHItaWNvbltmbGlwPXZlcnRpY2FsXSBzdmd7dHJhbnNmb3JtOnNjYWxlKC0xKSByb3Rh''@;'; put 'put ''dGVZKDE4MGRlZyl9Y2xyLWljb24gLmNsci1pLWJhZGdle2ZpbGw6I2UwMjIwMH1jbHItaWNvbiAuY2xyLWktYmFkZ2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojZTAyMjAwfWNsci1pY29uPip7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO3BvaW50ZXIt''@;'; put 'put ''ZXZlbnRzOm5vbmV9Y2xyLWljb24+c3Zne3RyYW5zaXRpb246aW5oZXJpdH1jbHItaWNvbj5zdmcgdGl0bGV7ZGlzcGxheTpub25lfWNsci1pY29uIC5jbHItaS1zb2xpZCxjbHItaWNvbiAuY2xyLWktc29saWQtLWJhZGdlZCxjbHItaWNvbiAuY2xyLWktc29saWQtLWFsZXJ0ZWR7ZGlzcGxh''@;'; put 'put ''eTpub25lfWNsci1pY29uIC5jbHItaS1vdXRsaW5lLS1hbGVydGVkOm5vdCguY2xyLWktb3V0bGluZSksY2xyLWljb24gLmNsci1pLW91dGxpbmUtLWJhZGdlZDpub3QoLmNsci1pLW91dGxpbmUpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbltjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0IC5j''@;'; put 'put ''bHItaS1vdXRsaW5lLS1hbGVydGVke2Rpc3BsYXk6YmxvY2t9Y2xyLWljb25bY2xhc3MqPWhhcy1hbGVydF0gLmNhbi1hbGVydCAuY2xyLWktb3V0bGluZTpub3QoLmNsci1pLW91dGxpbmUtLWFsZXJ0ZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbltjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJh''@;'; put 'put ''ZGdlIC5jbHItaS1vdXRsaW5lLS1iYWRnZWR7ZGlzcGxheTpibG9ja31jbHItaWNvbltjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlIC5jbHItaS1vdXRsaW5lOm5vdCguY2xyLWktb3V0bGluZS0tYmFkZ2VkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAu''@;'; put 'put ''Y2xyLWktc29saWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xpZCAuaGFzLXNvbGlkIC5jbHItaS1vdXRsaW5lLGNsci1pY29uLmlzLXNvbGlkIC5oYXMtc29saWQgLmNsci1pLW91dGxpbmUtLWJhZGdlZHtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAu''@;'; put 'put ''Y2xyLWktc29saWQtLWFsZXJ0ZWQ6bm90KC5jbHItaS1zb2xpZCksY2xyLWljb24uaXMtc29saWQgLmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWJhZGdlZDpub3QoLmNsci1pLXNvbGlkKXtkaXNwbGF5Om5vbmV9Y2xyLWljb24uaXMtc29saWRbY2xhc3MqPWhhcy1iYWRnZV0gLmNhbi1iYWRn''@;'; put 'put ''ZS5oYXMtc29saWQgLmNsci1pLXNvbGlkLS1iYWRnZWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdlLmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZSxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWJhZGdlXSAuY2FuLWJhZGdl''@;'; put 'put ''Lmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZS0tYmFkZ2VkLGNsci1pY29uLmlzLXNvbGlkW2NsYXNzKj1oYXMtYmFkZ2VdIC5jYW4tYmFkZ2UuaGFzLXNvbGlkIC5jbHItaS1zb2xpZDpub3QoLmNsci1pLXNvbGlkLS1iYWRnZWQpe2Rpc3BsYXk6bm9uZX1jbHItaWNvbi5pcy1zb2xpZFtjbGFz''@;'; put 'put ''cyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktc29saWQtLWFsZXJ0ZWR7ZGlzcGxheTpibG9ja31jbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZSxjbHItaWNvbi5pcy1zb2xpZFtjbGFz''@;'; put 'put ''cyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktb3V0bGluZS0tYWxlcnRlZCxjbHItaWNvbi5pcy1zb2xpZFtjbGFzcyo9aGFzLWFsZXJ0XSAuY2FuLWFsZXJ0Lmhhcy1zb2xpZCAuY2xyLWktc29saWQ6bm90KC5jbHItaS1zb2xpZC0tYWxlcnRlZCl7ZGlzcGxheTpu''@;'; put 'put ''b25lfWNsci1pY29uLmhhcy1iYWRnZS0tc3VjY2VzcyAuY2xyLWktYmFkZ2V7ZmlsbDojMmU4NTAwfWNsci1pY29uLmhhcy1iYWRnZS0tc3VjY2VzcyAuY2xyLWktYmFkZ2UgLnRyYW5zcGFyZW50LWZpbGwtc3Ryb2tle3N0cm9rZTojMmU4NTAwfWNsci1pY29uLmhhcy1iYWRnZS0tZXJyb3Ig''@;'; put 'put ''LmNsci1pLWJhZGdle2ZpbGw6I2UwMjIwMH1jbHItaWNvbi5oYXMtYmFkZ2UtLWVycm9yIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiNlMDIyMDB9Y2xyLWljb24uaGFzLWJhZGdlLS1pbmZvIC5jbHItaS1iYWRnZXtmaWxsOiMwMDc3Yjh9Y2xyLWljb24u''@;'; put 'put ''aGFzLWJhZGdlLS1pbmZvIC5jbHItaS1iYWRnZSAudHJhbnNwYXJlbnQtZmlsbC1zdHJva2V7c3Ryb2tlOiMwMDc3Yjh9Y2xyLWljb24uaGFzLWFsZXJ0IC5jbHItaS1hbGVydHtmaWxsOiNjMjdiMDB9Y2xyLWljb24uaGFzLWFsZXJ0IC5jbHItaS1hbGVydCAudHJhbnNwYXJlbnQtZmlsbC1z''@;'; put 'put ''dHJva2V7c3Ryb2tlOiNjMjdiMDB9Y2xyLWljb24gLmlzLW9mZi1zY3JlZW57cG9zaXRpb246Zml4ZWQhaW1wb3J0YW50O2JvcmRlcjowIWltcG9ydGFudDtoZWlnaHQ6MXB4IWltcG9ydGFudDt3aWR0aDoxcHghaW1wb3J0YW50O2xlZnQ6MCFpbXBvcnRhbnQ7dG9wOi0xcHghaW1wb3J0YW50''@;'; put 'put ''O292ZXJmbG93OmhpZGRlbiFpbXBvcnRhbnQ7cGFkZGluZzowIWltcG9ydGFudDttYXJnaW46MCAwIC0xcHghaW1wb3J0YW50fUBmb250LWZhY2V7Zm9udC1mYW1pbHk6dGV4dC1zZWN1cml0eS1kaXNjO3NyYzp1cmwoaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL25vcHBhL3Rl''@;'; put 'put ''eHQtc2VjdXJpdHkvbWFzdGVyL2Rpc3QvdGV4dC1zZWN1cml0eS1kaXNjLndvZmYpfWJvZHksaHRtbHtmb250LXdlaWdodDo0MDAhaW1wb3J0YW50O3BhZGRpbmc6MDttYXJnaW46MH1ib2R5LnNob3VsZC1sb2dpbiBjbHItbW9kYWwsaHRtbC5zaG91bGQtbG9naW4gY2xyLW1vZGFse2Rpc3Bs''@;'; put 'put ''YXk6bm9uZSFpbXBvcnRhbnR9YnV0dG9uOmZvY3Vze291dGxpbmU6bm9uZX0uc2xpZGVye3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjMyMHB4O21hcmdpbi1sZWZ0Ojc1cHg7bWFyZ2luLXRvcDo3MHB4O2hlaWdodDo1cHg7b3ZlcmZsb3cteDpoaWRkZW59LmxpbmV7cG9zaXRpb246YWJzb2x1''@;'; put 'put ''dGU7b3BhY2l0eTouNDtiYWNrZ3JvdW5kOiM3M0Q1NDQ7d2lkdGg6MTUwJTtoZWlnaHQ6NXB4fS5zdWJsaW5le3Bvc2l0aW9uOmFic29sdXRlO2JhY2tncm91bmQ6IzczRDU0NDtoZWlnaHQ6NXB4fS5pbmN7YW5pbWF0aW9uOmluY3JlYXNlIDJzIGluZmluaXRlfS5kZWN7YW5pbWF0aW9uOmRl''@;'; put 'put ''Y3JlYXNlIDJzIC41cyBpbmZpbml0ZX1Aa2V5ZnJhbWVzIGluY3JlYXNlezAle2xlZnQ6LTUlO3dpZHRoOjUlfXRve2xlZnQ6MTMwJTt3aWR0aDoxMDAlfX1Aa2V5ZnJhbWVzIGRlY3JlYXNlezAle2xlZnQ6LTgwJTt3aWR0aDo4MCV9dG97bGVmdDoxMTAlO3dpZHRoOjEwJX19LmFwcC1sb2Fk''@;'; put 'put ''aW5ne2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtoZWlnaHQ6MTAwdmg7YmFja2dyb3VuZDojMzE0MzUxO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt6LWluZGV4OjIwMDA7cG9zaXRpb246Zml4ZWQ7bGVmdDowO3RvcDowO3JpZ2h0OjA7Ym90''@;'; put 'put ''dG9tOjB9LnNlbGVjdC1ub25ley13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt1c2VyLXNlbGVjdDpub25lfS5oLWF1dG97aGVpZ2h0OmF1dG99LmgtdW5zZXQtaXtoZWlnaHQ6dW5zZXQhaW1wb3J0YW50fS5taW4taC01MHZoe21pbi1oZWlnaHQ6NTB2aH0uaC0yNHZoLC5oLTI1dmh7aGVpZ2h0''@;'; put 'put ''OjI1dmh9LmgtNzB2aHtoZWlnaHQ6NzB2aH0uaC04MHZoe2hlaWdodDo4MHZofS5oLTEwMHtoZWlnaHQ6MTAwJX0udy01MHZ3e3dpZHRoOjUwdnd9LnctMTAwe3dpZHRoOjEwMCV9LnctNDB7d2lkdGg6NDAlfS5taW4tdy0we21pbi13aWR0aDowcHh9Lm14LTV7bWFyZ2luOjAgNXB4fS5teS01''@;'; put 'put ''e21hcmdpbjo1cHggMH0ubXktMTV7bWFyZ2luOjE1cHggMH0ubXktMTAtbXgtYXV0b3ttYXJnaW46MTBweCBhdXRvfS5tLTB7bWFyZ2luOjAhaW1wb3J0YW50fS5tLTEwe21hcmdpbjoxMHB4fS5tdC0we21hcmdpbi10b3A6MH0ubXQtMC1pe21hcmdpbi10b3A6MCFpbXBvcnRhbnR9Lm10LTMt''@;'; put 'put ''bmVnYXRpdmV7bWFyZ2luLXRvcDotM3B4fS5tdC01e21hcmdpbi10b3A6NXB4fS5tdC01LWl7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50fS5tdC0ye21hcmdpbi10b3A6MnB4fS5tdC0xMHttYXJnaW4tdG9wOjEwcHh9Lm10LTE1e21hcmdpbi10b3A6MTVweH0ubXQtMTd7bWFyZ2luLXRvcDox''@;'; put 'put ''N3B4fS5tdC0yMHttYXJnaW4tdG9wOjIwcHh9Lm1sLTB7bWFyZ2luLWxlZnQ6MH0ubWwtM3ttYXJnaW4tbGVmdDozcHh9Lm1sLTV7bWFyZ2luLWxlZnQ6NXB4fS5tbC0xMHttYXJnaW4tbGVmdDoxMHB4fS5tbC0xNXttYXJnaW4tbGVmdDoxNXB4fS5tbC0yMHttYXJnaW4tbGVmdDoyMHB4fS5t''@;'; put 'put ''bC0yMC1pe21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50fS5tci0we21hcmdpbi1yaWdodDowfS5tci01e21hcmdpbi1yaWdodDo1cHh9Lm1yLTEwe21hcmdpbi1yaWdodDoxMHB4fS5tci0xMnttYXJnaW4tcmlnaHQ6MTJweH0ubXItMjB7bWFyZ2luLXJpZ2h0OjIwcHh9Lm1iLTB7bWFyZ2lu''@;'; put 'put ''LWJvdHRvbTowfS5tYi0waXttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50fS5tYi01e21hcmdpbi1ib3R0b206NXB4fS5tYi0xMHttYXJnaW4tYm90dG9tOjEwcHh9Lm1iLTIwe21hcmdpbi1ib3R0b206MjBweH0ubWItMzB7bWFyZ2luLWJvdHRvbTozMHB4fS5wLTB7cGFkZGluZzowfS5wLTEw''@;'; put 'put ''e3BhZGRpbmc6MTBweH0ucGItMHtwYWRkaW5nLWJvdHRvbTowfS5wYi0xMHtwYWRkaW5nLWJvdHRvbToxMHB4fS5weS01e3BhZGRpbmc6NXB4IDB9LnB5LTEwe3BhZGRpbmc6MTBweCAwfS5iYWNrZ3JvdW5kLXRyYW5zcGFyZW50e2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmJhY2tncm91bmQt''@;'; put 'put ''dHJhbnNwYXJlbnQtaXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50IWltcG9ydGFudH0uY29sb3ItZ3JheXtjb2xvcjojNWE1YTVhfS5jb2xvci1kYXJrLWdyYXl7Y29sb3I6IzQ5NTk2N30uY29sb3ItZGFya2VyLWdyYXl7Y29sb3I6IzMxNDM1MX0uY29sb3Itd2hpdGV7Y29sb3I6I2ZmZn0uY29s''@;'; put 'put ''b3Itd2hpdGUtaXtjb2xvcjojZmZmIWltcG9ydGFudH0uY29sb3ItZ3JlZW57Y29sb3I6IzRiOWU0Yn0uY29sb3ItZGMtZ3JlZW57Y29sb3I6IzgxYjQ0MH0uY29sb3ItcmVke2NvbG9yOiNlNDU0NTR9LmNvbG9yLWJsdWV7Y29sb3I6IzNmOGNjM30uY29sb3IteWVsbG93e2NvbG9yOiNmMWM0''@;'; put 'put ''MGZ9LmN1cnNvci1wb2ludGVye2N1cnNvcjpwb2ludGVyfS5iYWNrZ3JvdW5kLXRyYW5zcGFyZW50e2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnR9LnBvaW50ZXItZXZlbnRzLW5vbmV7cG9pbnRlci1ldmVudHM6bm9uZX0udGV4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXJ9LmZvbnQt''@;'; put 'put ''c2l6ZS0xNXtmb250LXNpemU6MTVweH0uZm9udC1zaXplLTE4e2ZvbnQtc2l6ZToxOHB4fS5mb250LWJvbGR7Zm9udC13ZWlnaHQ6NzAwfS5mb250LWJvbGQtaXtmb250LXdlaWdodDo3MDAhaW1wb3J0YW50fS5mb250LXdlaWdodC0zMDB7Zm9udC13ZWlnaHQ6MzAwfS5mb250LXdlaWdodC03''@;'; put 'put ''MDB7Zm9udC13ZWlnaHQ6NzAwfS53b3JkLWJyZWFre3dvcmQtYnJlYWs6YnJlYWstd29yZH0ud29yZC1icmVhay1hbGx7d29yZC1icmVhazpicmVhay1hbGx9LnBvc2l0aW9uLXJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfS5wb3NpdGlvbi1hYnNvbHV0ZXtwb3NpdGlvbjphYnNvbHV0ZX0u''@;'; put 'put ''ZC1ub25le2Rpc3BsYXk6bm9uZX0uZC1ibG9ja3tkaXNwbGF5OmJsb2NrfS5kLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9ja30uZC1mbGV4e2Rpc3BsYXk6ZmxleH0uZC1jb250ZW50c3tkaXNwbGF5OmNvbnRlbnRzfS5mbGV4LXVuc2V0e2ZsZXg6dW5zZXR9LmFsaWduLXNlbGYt''@;'; put 'put ''ZW5ke2FsaWduLXNlbGY6ZmxleC1lbmR9LmFsaWduLXNlbGYtc3RhcnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0fS5hbGlnbi1pdGVtcy1jZW50ZXJ7YWxpZ24taXRlbXM6Y2VudGVyfS5qdXN0aWZ5LWNvbnRlbnQtY2VudGVye2p1c3RpZnktY29udGVudDpjZW50ZXJ9Lmp1c3RpZnktY29udGVu''@;'; put 'put ''dC1jZW50ZXItaXtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyIWltcG9ydGFudH0uanVzdGlmeS1jb250ZW50LXN0YXJ0e2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5qdXN0aWZ5LWNvbnRlbnQtZW5ke2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uanVzdGlmeS1jb250ZW50LWJldHdlZW57''@;'; put 'put ''anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW59Lmp1c3RpZnktY29udGVudC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZH0uZmxleC1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jbHItZ2FwLTV7Z2FwOjVweH0uY2xyLWdhcC0we2dhcDowfS5vdmVyZmxvdy1h''@;'; put 'put ''dXRve292ZXJmbG93OmF1dG99LnotaW5kZXgtaGlnaGVzdHt6LWluZGV4OjEwMDAwMDAwfS52ZXJ0aWNhbC1hbGlnbi1taWRkbGV7dmVydGljYWwtYWxpZ246bWlkZGxlfS5pY29uLWRjLWZpbGx7ZmlsbDojODFiNDQwfS5kYXRhZ3JpZC1jdXN0b20tZm9vdGVyIC5kYXRhZ3JpZC1vdXRlci13''@;'; put 'put ''cmFwcGVye3dpZHRoOjEwMCV9LnByb2dyZXNTdGF0aWN7bWFyZ2luLXRvcDotNnB4IWltcG9ydGFudDtwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7ei1pbmRleDoxMDAwMCFpbXBvcnRhbnR9LnByb2dyZXNzLC5wcm9ncmVzcy1zdGF0aWN7YmFja2dyb3VuZC1jb2xvcjojZjVmNmZlO2Jv''@;'; put 'put ''cmRlci1yYWRpdXM6MDtmb250LXNpemU6aW5oZXJpdDtoZWlnaHQ6NnB4O21hcmdpbjowO21heC1oZWlnaHQ6LjU4MzMzM3JlbTttaW4taGVpZ2h0Oi4xNjY2NjdyZW07b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6YmxvY2s7d2lkdGg6Y2FsYygxMDAlIC0gNjNweCl9LnByb2dyZXNzLmxvb3A6''@;'; put 'put ''YWZ0ZXJ7YW5pbWF0aW9uOmNsci1wcm9ncmVzcy1sb29wZXIgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtjb250ZW50OiIgIjt0b3A6LjE2NjY2N3JlbTtib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztiYWNrZ3JvdW5kLWNvbG9yOiM2MGI1MTU7d2lk''@;'; put 'put ''dGg6NzUlfS5iYWRnZS13YXJuaW5ne2NvbG9yOiNmZmYhaW1wb3J0YW50fS5jb250ZW50LWNvbnRhaW5lciAuY29udGVudC1hcmVhIC5jYXJkLWhlYWRlciBoM3ttYXJnaW4tdG9wOjEwcHh9Lm1vZGFsLWhlYWRlciAuY2xvc2UgY2xyLWljb257ZGlzcGxheTpub25lfS5zaG93LWNsb3NlIC5t''@;'; put 'put ''b2RhbC1oZWFkZXIgLmNsb3NlIGNsci1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDotMThweDtyaWdodDotMTBweH0uYWxlcnQtYXBwLWxldmVsLmFsZXJ0LWRhbmdlcntiYWNrZ3JvdW5kOiNEOTRCMkU7Y29sb3I6I2ZmZjtib3JkZXI6bm9uZX0uY2Fy''@;'; put 'put ''ZC1oZWFkZXJ7Zm9udC13ZWlnaHQ6MzAwfS5zZWxlY3Qgc2VsZWN0OmZvY3Vze2JvcmRlci1ib3R0b206MXB4IHNvbGlkICM0OTU5Njc7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHRyYW5zcGFyZW50IDk1JSwjNDk1YTY3IDApIG5vLXJlcGVhdH0uY2xyLXRyZWVub2RlLWNo''@;'; put 'put ''aWxkcmVue21hcmdpbi1sZWZ0Oi4ycmVtIWltcG9ydGFudH0udGFibGUtYWN0aXZle2JhY2tncm91bmQ6I2Q4ZTNlOSFpbXBvcnRhbnQ7Y29sb3I6IzAwMCFpbXBvcnRhbnR9LnRhYmxlLWFjdGl2ZTpmb2N1c3tiYWNrZ3JvdW5kOiNkOGUzZTl9Y2xyLXNlbGVjdC1jb250YWluZXIgLmNsci1j''@;'; put 'put ''b250cm9sLWNvbnRhaW5lcixjbHItc2VsZWN0LWNvbnRhaW5lciAuY2xyLWNvbnRyb2wtY29udGFpbmVyIC5jbHItc2VsZWN0LXdyYXBwZXIsY2xyLXNlbGVjdC1jb250YWluZXIgc2VsZWN0e3dpZHRoOjEwMCV9dGJvZHl7Zm9udC13ZWlnaHQ6NDAwfWgzLGg0e2NvbG9yOiM1ODU4NTg7Zm9u''@;'; put 'put ''dC13ZWlnaHQ6NDAwO2xldHRlci1zcGFjaW5nOm5vcm1hbDtsaW5lLWhlaWdodDoxcmVtO21hcmdpbi10b3A6MXJlbTttYXJnaW4tYm90dG9tOjB9aDEsaDJ7Y29sb3I6IzU4NTg1ODtmb250LXdlaWdodDo0MDA7bGV0dGVyLXNwYWNpbmc6bm9ybWFsO2xpbmUtaGVpZ2h0OjJyZW07bWFyZ2lu''@;'; put 'put ''LXRvcDoxcmVtO21hcmdpbi1ib3R0b206MH1jbHItaWNvbi5pcy1pbmZve2ZpbGw6IzgwYjQ0MX0uZGF0YWdyaWQtaG9zdCwuZGF0YWdyaWQtb3ZlcmxheS13cmFwcGVye2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTotd2Via2l0LWJveCFpbXBvcnRhbnR9LmJ0bi5idG4tZGFuZ2VyLC5i''@;'; put 'put ''dG4uYnRuLXdhcm5pbmd7Ym9yZGVyLWNvbG9yOiNlZjRmMmU7YmFja2dyb3VuZC1jb2xvcjojZDk0YjJlO2NvbG9yOiNmZmZ9LmQtbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5jbHItZmxleC0xe2ZsZXg6MX0uY2xyLWZsZXgt''@;'; put 'put ''Y29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2xyLWZsZXgtcm93e2ZsZXgtZGlyZWN0aW9uOnJvd30uYm9yZGVyLTB7Ym9yZGVyOjB9LmJveC1zaGFkb3ctbm9uZXtib3gtc2hhZG93Om5vbmV9LmJveC1zaGFkb3ctbm9uZS1pe2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnR9LmhhbmRz''@;'; put 'put ''b250YWJsZSAuaHRBdXRvY29tcGxldGVBcnJvd3tjb2xvcjojODI4MjgyfS5oYW5kc29udGFibGUubGlzdGJveHtwYWRkaW5nOjVweCAwIDVweCA1cHg7Ym94LXNoYWRvdzowIDRweCAyMHB4ICMwMDAwMDA3MH0uaGFuZHNvbnRhYmxlIHRkLmh0SW52YWxpZHtiYWNrZ3JvdW5kOnJnYmEoMjMw''@;'; put 'put ''LDM5LDAsLjY3ODQzMTM3MjUpIWltcG9ydGFudDtib3JkZXI6MXB4IHNvbGlkIHJlZCFpbXBvcnRhbnQ7Y29sb3I6I2ZmZiFpbXBvcnRhbnR9Lm1hcmdpbi10b3AtMjB7bWFyZ2luLXRvcDoyMHB4fS5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH1AbWVkaWEgKG1pbi13aWR0aDogNTc2''@;'; put 'put ''cHgpey5kLXNtLW5vbmV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uZC1zbS1pbmxpbmV7ZGlzcGxheTppbmxpbmUhaW1wb3J0YW50fS5kLXNtLWlubGluZS1ibG9ja3tkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9LmQtc20tYmxvY2t7ZGlzcGxheTpibG9jayFpbXBvcnRhbnR9LmQt''@;'; put 'put ''c20tdGFibGV7ZGlzcGxheTp0YWJsZSFpbXBvcnRhbnR9LmQtc20tdGFibGUtY2VsbHtkaXNwbGF5OnRhYmxlLWNlbGwhaW1wb3J0YW50fS5kLXNtLWZsZXh7ZGlzcGxheTpmbGV4IWltcG9ydGFudH0uZC1zbS1pbmxpbmUtZmxleHtkaXNwbGF5OmlubGluZS1mbGV4IWltcG9ydGFudH0uY2xy''@;'; put 'put ''LWZsZXgtc20tY29sdW1ue2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2xyLWZsZXgtc20tcm93e2ZsZXgtZGlyZWN0aW9uOnJvd30uY2xyLWdhcC1zbS01e2dhcDo1cHh9LmNsci1nYXAtc20tMHtnYXA6MH19QG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KXsuZC1tZC1ub25le2Rpc3BsYXk6bm9u''@;'; put 'put ''ZSFpbXBvcnRhbnR9LmQtbWQtaW5saW5le2Rpc3BsYXk6aW5saW5lIWltcG9ydGFudH0uZC1tZC1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50fS5kLW1kLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50fS5kLW1kLXRhYmxle2Rpc3BsYXk6dGFibGUhaW1w''@;'; put 'put ''b3J0YW50fS5kLW1kLXRhYmxlLWNlbGx7ZGlzcGxheTp0YWJsZS1jZWxsIWltcG9ydGFudH0uZC1tZC1mbGV4e2Rpc3BsYXk6ZmxleCFpbXBvcnRhbnR9LmQtbWQtaW5saW5lLWZsZXh7ZGlzcGxheTppbmxpbmUtZmxleCFpbXBvcnRhbnR9LmNsci1mbGV4LW1kLWNvbHVtbntmbGV4LWRpcmVj''@;'; put 'put ''dGlvbjpjb2x1bW59LmNsci1mbGV4LW1kLXJvd3tmbGV4LWRpcmVjdGlvbjpyb3d9LmNsci1nYXAtbWQtNXtnYXA6NXB4fS5jbHItZ2FwLW1kLTB7Z2FwOjB9fUBtZWRpYSAobWluLXdpZHRoOiA5OTJweCl7LmQtbGctbm9uZXtkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5kLWxnLWlubGluZXtk''@;'; put 'put ''aXNwbGF5OmlubGluZSFpbXBvcnRhbnR9LmQtbGctaW5saW5lLWJsb2Nre2Rpc3BsYXk6aW5saW5lLWJsb2NrIWltcG9ydGFudH0uZC1sZy1ibG9ja3tkaXNwbGF5OmJsb2NrIWltcG9ydGFudH0uZC1sZy10YWJsZXtkaXNwbGF5OnRhYmxlIWltcG9ydGFudH0uZC1sZy10YWJsZS1jZWxse2Rp''@;'; put 'put ''c3BsYXk6dGFibGUtY2VsbCFpbXBvcnRhbnR9LmQtbGctZmxleHtkaXNwbGF5OmZsZXghaW1wb3J0YW50fS5kLWxnLWlubGluZS1mbGV4e2Rpc3BsYXk6aW5saW5lLWZsZXghaW1wb3J0YW50fS5jbHItZmxleC1sZy1jb2x1bW57ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5jbHItZmxleC1sZy1y''@;'; put 'put ''b3d7ZmxleC1kaXJlY3Rpb246cm93fS5jbHItZ2FwLWxnLTV7Z2FwOjVweH0uY2xyLWdhcC1sZy0we2dhcDowfX0uZGF0YWdyaWQtYm9keXtwYWRkaW5nLWJvdHRvbToycmVtIWltcG9ydGFudH0uYWJvcnRNc2d7d2hpdGUtc3BhY2U6cHJlLXdyYXA7Zm9udC1mYW1pbHk6bW9ub3NwYWNlfSNn''@;'; put 'put ''cmFwaCBzdmd7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJX0ubm8tdGFibGUtc2VsZWN0ZWR7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtwb3NpdGlvbjphYnNvbHV0ZTtiYWNrZ3JvdW5kOndoaXRlO3ot''@;'; put 'put ''aW5kZXg6MTA7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0b3A6MH0uY29weVJpZ2h0e2JhY2tncm91bmQ6IzQ5NTk2NyFpbXBvcnRhbnQ7Y29sb3I6I2ZmZjtkaXNwbGF5OmZsZXghaW1wb3J0YW50O2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6NXB4''@;'; put 'put ''IDAgNHB4O3otaW5kZXg6MTAwfS5uYXYtdHJlZT5jbHItdHJlZS1ub2RlLmNsci1leHBhbmRlZHtkaXNwbGF5OmlubGluZS1ibG9jayFpbXBvcnRhbnR9Y2xyLXRyZWUtbm9kZXtvdmVyZmxvdy15OnZpc2libGV9Y2xyLXRyZWUtbm9kZTpmb2N1c3tvdXRsaW5lOm5vbmUhaW1wb3J0YW50fWNs''@;'; put 'put ''ci10cmVlLW5vZGUgLmNsci10cmVlbm9kZS1jYXJldHt3aWR0aDphdXRvIWltcG9ydGFudDtoZWlnaHQ6YXV0byFpbXBvcnRhbnR9Y2xyLXRyZWUtbm9kZSAuY2xyLXRyZWVub2RlLXNwaW5uZXItY29udGFpbmVye3BhZGRpbmc6MCA4cHg7d2lkdGg6YXV0bztoZWlnaHQ6YXV0bztkaXNwbGF5''@;'; put 'put ''OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfWNsci10cmVlLW5vZGUgLmNsci10cmVlLW5vZGUtY29udGVudC1jb250YWluZXI6Zm9jdXN7b3V0bGluZTpub25lIWltcG9ydGFudH0uY2xyLXRyZWVub2RlLWNvbnRlbnQgcHt3aGl0ZS1zcGFjZTpub3dyYXB9LnNlYXJjaC1ub2Rle21hcmdpbi1i''@;'; put 'put ''b3R0b206NXB4fS50cmVlLXNlYXJjaC13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnRyZWUtc2VhcmNoLXdyYXBwZXIgY2xyLWlucHV0LWNvbnRhaW5lcnttYXJnaW46MH0udHJlZS1zZWFyY2gtd3JhcHBlciBjbHItaWNvbntwb3Np''@;'; put 'put ''dGlvbjphYnNvbHV0ZTtyaWdodDowO2JvdHRvbTowO21hcmdpbjo1cHggMCAwO2JhY2tncm91bmQ6d2hpdGU7Y3Vyc29yOnBvaW50ZXJ9LmNsci10cmVlLW5vZGV7b3ZlcmZsb3c6dmlzaWJsZSFpbXBvcnRhbnR9LmNvbnRlbnQtY29udGFpbmVye3dpZHRoOjEwMCV9QC1tb3otZG9jdW1lbnQg''@;'; put 'put ''dXJsLXByZWZpeCgpey53dEhvbGRlcnt3aWR0aDoxMDAlIWltcG9ydGFudH19aW5wdXQ6Oi1tcy1jbGVhcntkaXNwbGF5Om5vbmV9QG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSl7Y2xyLXRyZWUtbm9kZS5jbHItZXhw''@;'; put 'put ''YW5kZWR7cGFkZGluZy1ib3R0b206MjBweDttaW4taGVpZ2h0OmF1dG99LmNsci10cmVlLW5vZGV7bWluLWhlaWdodDoyNHB4fS5jbHItdHJlZW5vZGUtY2hpbGRyZW57b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudH0uY2xyLXRyZWVub2RlLWNvbnRlbnQgLmNsci1pY29uLC5jbHItdHJlZW5v''@;'; put 'put ''ZGUtY29udGVudCBjbHItaWNvbnttaW4td2lkdGg6MTZweDttaW4taGVpZ2h0OjE2cHh9LnRyZWUtc2VhcmNoLXdyYXBwZXIgY2xyLWljb257Ym90dG9tOjJweH0uY29udGVudC1jb250YWluZXJ7aGVpZ2h0OjEwMCV9LmNvbnRlbnQtYXJlYT4uY2FyZHttYXJnaW4tYm90dG9tOjIwcHh9LnJl''@;'; put 'put ''Y29yZC1lZGl0LW1vZGFsIHRleHRhcmVhe21pbi1oZWlnaHQ6NDJweH19LmJvcmRlci1ib3R0b20tZGl2aWRlcntib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZDNkM2QzfS5sb2FkaW5nU3Bpbm5lcntoZWlnaHQ6NzB2aDtmbGV4OjE7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpjZW50''@;'; put 'put ''ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcn0uZGlzYWJsZS1wYXNzd29yZC1tYW5hZ2Vyey13ZWJraXQtdGV4dC1zZWN1cml0eTpkaXNjOy1tb3otdGV4dC1zZWN1cml0eTpkaXNjO3RleHQtc2VjdXJpdHk6ZGlzYztmb250LWZhbWlseTp0ZXh0LXNlY3VyaXR5''@;'; put 'put ''LWRpc2N9LnJlbGF0aXZle3Bvc2l0aW9uOnJlbGF0aXZlfWhyLmxpZ2h0e2JvcmRlcjowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZWRlZGV9LnNwaW5uZXJ7YmFja2dyb3VuZDp1cmwoL1NBU1N0b3JlZFByb2Nlc3MvP19QUk9HUkFNPXBaS2Q2Rjk1akVDdlJRbE4wTENmZEE9PS93ZWI5''@;'; put 'put ''L2ltYWdlcy9zcGlubmVyLjE2Zjc2M2NlYmM2YjY0ZGYtc3ZnKSFpbXBvcnRhbnR9LmNsci1zZWxlY3Qtd3JhcHBlcjphZnRlcntiYWNrZ3JvdW5kOnVybCgvU0FTU3RvcmVkUHJvY2Vzcy8/X1BST0dSQU09cFpLZDZGOTVqRUN2UlFsTjBMQ2ZkQT09L3dlYjkvaW1hZ2VzL2NhcmV0LjY1ZjFm''@;'; put 'put ''YzBhY2JlNGM3ZmYtc3ZnKSFpbXBvcnRhbnR9Cg=='';'; put 'run;'; put '%sasjsout(CSS64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let path=services/web9/images; %let service=caret-svg; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj''@;'; put 'put ''bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='';'; put 'run;'; put '%sasjsout(SVG64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=caret.65f1fc0acbe4c7ff-svg; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMiAxMiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+LmNscy0xe2ZpbGw6I2IzYjNiMzt9PC9zdHlsZT4KICAgIDwvZGVmcz4KICAgIDx0aXRsZT5DYXJldDwvdGl0bGU+CiAgICA8cGF0aCBj''@;'; put 'put ''bGFzcz0iY2xzLTEiIGQ9Ik02LDlMMS4yLDQuMmEwLjY4LDAuNjgsMCwwLDEsMS0xTDYsNy4wOCw5Ljg0LDMuMjRhMC42OCwwLjY4LDAsMSwxLDEsMVoiLz4KPC9zdmc+Cg=='';'; put 'run;'; put '%sasjsout(SVG64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=datacontroller-svg; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''PHN2ZyB3aWR0aD0iMTY5MCIgaGVpZ2h0PSIyNDAiIHZpZXdCb3g9IjAgMCAxNjkwIDI0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwNV83KSI+CjxwYXRoIGQ9Ik0xMjQuOSA1NS4yMDAxQzEyOC4y''@;'; put 'put ''IDU1LjYwMDEgMTMxLjQgNTUuOTAwMSAxMzQuNyA1Ni4zMDAxQzE0Mi42IDU3LjQwMDEgMTUwLjMgNTguOTAwMSAxNTcuNSA2Mi42MDAxQzE1OS42IDYzLjcwMDEgMTYxLjYgNjQuOTAwMSAxNjMuMSA2Ni44MDAxQzE2NS41IDY5LjYwMDEgMTY1LjQgNzIuNjAwMSAxNjMgNzUuNDAwMUMxNjAu''@;'; put 'put ''NSA3OC4yMDAxIDE1Ny4zIDc5LjgwMDEgMTUzLjkgODEuMTAwMUMxNDYgODQuMjAwMSAxMzcuNyA4NS42MDAxIDEyOS4zIDg2LjMwMDFDMTE1LjYgODcuNDAwMSAxMDIuMSA4Ni45MDAxIDg4LjcgODMuNzAwMUM4NC4zIDgyLjcwMDEgODAgODEuMzAwMSA3Ni4xIDc5LjEwMDFDNzQuNiA3OC4z''@;'; put 'put ''MDAxIDczLjIgNzcuMzAwMSA3MS45IDc2LjEwMDFDNjguMyA3Mi42MDAxIDY4LjMgNjguOTAwMSA3MiA2NS42MDAxQzc2IDYyLjAwMDEgODAuOSA2MC4zMDAxIDg1LjkgNTguOTAwMUM5Mi45IDU2LjkwMDEgMTAwIDU1LjkwMDEgMTA3LjIgNTUuNDAwMUMxMDcuOCA1NS40MDAxIDEwOC41IDU1''@;'; put 'put ''LjYwMDEgMTA5IDU1LjEwMDFDMTE0LjIgNTUuMjAwMSAxMTkuNiA1NS4yMDAxIDEyNC45IDU1LjIwMDFaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik02OS4yMDAxIDEzNy4zQzc1LjYwMDEgMTQ1LjUgODQuNzAwMSAxNDguNSA5NC4xMDAxIDE1MC41QzExMi43IDE1NC41IDEzMS4zIDE1''@;'; put 'put ''NCAxNDkuNCAxNDcuNkMxNTUgMTQ1LjYgMTYwLjIgMTQyLjkgMTYzLjkgMTM3LjlDMTY0LjUgMTM3LjEgMTY0LjggMTM3LjUgMTY1LjEgMTM4LjFDMTY1LjcgMTM5LjQgMTY2IDE0MC43IDE2NiAxNDIuMUMxNjYgMTQ3IDE2NiAxNTIgMTY2IDE1Ni45QzE2NiAxNjAuMSAxNjQuNSAxNjIuNiAx''@;'; put 'put ''NjIuMyAxNjQuOEMxNTcuNyAxNjkuNCAxNTEuOSAxNzEuOSAxNDUuOCAxNzMuOEMxMzMuNSAxNzcuNiAxMjAuOSAxNzguNCAxMDguMiAxNzcuNUM5OC43MDAxIDE3Ni44IDg5LjUgMTc1IDgwLjggMTcxLjFDNzcuMSAxNjkuNCA3My43MDAxIDE2Ny40IDcxLjAwMDEgMTY0LjNDNjguOTAwMSAx''@;'; put 'put ''NjEuOSA2Ny44IDE1OS4yIDY3LjggMTU2QzY3LjkgMTUxLjUgNjcuOCAxNDcgNjcuOCAxNDIuNUM2Ny44IDE0MC43IDY4LjEwMDEgMTM5IDY5LjIwMDEgMTM3LjNaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik02OS4yOTk5IDEwNi40Qzc0LjU5OTkgMTEzLjUgODEuOTk5OSAxMTYuNSA4''@;'; put 'put ''OS44OTk5IDExOC42QzEwOC44IDEyMy42IDEyNy43IDEyMy41IDE0Ni40IDExNy45QzE1Mi42IDExNi4xIDE1OC40IDExMy40IDE2Mi45IDEwOC41QzE2My41IDEwNy45IDE2My45IDEwNi41IDE2NC42IDEwNi43QzE2NS42IDEwNyAxNjUuNiAxMDguNCAxNjUuOSAxMDkuNUMxNjYuMyAxMTEu''@;'; put 'put ''MiAxNjYuMSAxMTIuOSAxNjYuMSAxMTQuNkMxNjYuMSAxMTggMTY2IDEyMS4zIDE2Ni4xIDEyNC43QzE2Ni4zIDEyOC45IDE2NC42IDEzMi4yIDE2MS41IDEzNC45QzE1Ni44IDEzOS4xIDE1MS4xIDE0MS42IDE0NSAxNDMuMkMxMjQuNSAxNDguNyAxMDQuMSAxNDguNiA4My45OTk5IDE0MS42''@;'; put 'put ''Qzc5LjA5OTkgMTM5LjkgNzQuNTk5OSAxMzcuNSA3MC45OTk5IDEzMy42QzY4Ljc5OTkgMTMxLjIgNjcuNyAxMjguNCA2Ny43IDEyNS4xQzY3LjggMTIwLjcgNjcuNyAxMTYuMiA2Ny43IDExMS44QzY3LjggMTEwIDY4LjA5OTkgMTA4LjIgNjkuMjk5OSAxMDYuNFoiIGZpbGw9IiNFMEUwRTAi''@;'; put 'put ''Lz4KPHBhdGggZD0iTTY5LjEgNzYuN0M3MC42IDgxLjEgNzQuMiA4My4wOTk5IDc4IDg0Ljg5OTlDODQuOCA4OC4wOTk5IDkyLjEgODkuNiA5OS40IDkwLjVDMTEzLjkgOTIuMyAxMjguNCA5Mi4xIDE0Mi43IDg5LjFDMTQ4LjUgODcuOSAxNTQuMSA4Ni4zIDE1OS4yIDgzLjFDMTYyLjEgODEu''@;'; put 'put ''MyAxNjMuNiA3OS42IDE2NC42IDc2LjhDMTY1LjYgNzguMiAxNjUuOSA3OS43IDE2NS45IDgxLjJDMTY1LjkgODYuMiAxNjYgOTEuMSAxNjUuOSA5Ni4xQzE2NS44IDEwMC4zIDE2My40IDEwMy4zIDE2MC4zIDEwNS44QzE1NC41IDExMC40IDE0Ny43IDExMi44IDE0MC42IDExNC40QzEyMS44''@;'; put 'put ''IDExOC41IDEwMy4yIDExOC4yIDg0LjkgMTEyQzgwLjEgMTEwLjQgNzUuNSAxMDguMSA3MS44IDEwNC41QzY5IDEwMS44IDY3LjUgOTguNyA2Ny42IDk0LjdDNjcuNyA5MC40IDY3LjYgODYuMSA2Ny42IDgxLjhDNjcuOCA3OS45IDY4LjEgNzguMyA2OS4xIDc2LjdaIiBmaWxsPSIjOEVDNjNG''@;'; put 'put ''Ii8+CjxwYXRoIGQ9Ik0xODMuOSAyMTAuOUMyMDAuMiAyMTEuOCAyMDguOSAxOTEuOCAxOTcuMSAxODAuNUMxODQuNyAxNjguNiAxNjQuMyAxNzkuNyAxNjcuNSAxOTYuNUM5My44IDI0My41IC0wLjk5OTk4MSAxNzMuMiAyNiA4Ny44MDAxTDcuODAwMDIgNzUuNjAwMUMtMzMuMSAxODQuMyA5''@;'; put 'put ''Mi44IDI3Ni4yIDE4My45IDIxMC45Wk0xNzguNyAxODcuNEMxODYuMyAxNzkuNSAxOTguNCAxOTAuNSAxOTEuMyAxOTguOEMxODMuOCAyMDcuNSAxNzAuNiAxOTUuOCAxNzguNyAxODcuNFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTM1LjIgNTAuNzAwMUM0Ni45IDYxLjkwMDEgNjYu''@;'; put 'put ''MiA1Mi43MDAxIDY1LjEgMzYuNzAwMUMxMzguNyAtMTAuNyAyMzQgNTkuNTAwMSAyMDcgMTQ1LjJMMjI1LjIgMTU3LjRDMjY0LjkgNTEuODAwMSAxNDQuNCAtNDMuMjk5OSA1MS4yIDIwLjYwMDFDMzMuNyAxNy4wMDAxIDIyLjQgMzguNDAwMSAzNS4yIDUwLjcwMDFaTTUzLjYgNDMuODAwMUM0''@;'; put 'put ''NS44IDUxLjkwMDEgMzMuNSA0MC4xMDAxIDQxLjMgMzIuMDAwMUM0OS4xIDIzLjkwMDEgNjEuNCAzNS43MDAxIDUzLjYgNDMuODAwMVoiIGZpbGw9IiM4RUM2M0YiLz4KPHBhdGggZD0iTTMyMy41NzUgNDcuODg3NEMzMjMuNTc1IDQ2Ljc5MDEgMzIzLjkxNyA0NS44OTg1IDMyNC42MDMgNDUu''@;'; put 'put ''MjEyN0MzMjUuNDI2IDQ0LjM4OTcgMzI2LjM4NiA0My45NzgyIDMyNy40ODQgNDMuOTc4MkgzNjkuMDQ0QzM3OC45MiA0My45NzgyIDM4OC4wNDEgNDUuNzYxMyAzOTYuNDA4IDQ5LjMyNzZDNDA0LjkxMyA1Mi44OTM4IDQxMi4yNTEgNTcuOTAwMyA0MTguNDIzIDY0LjM0N0M0MjQuNTk2IDcw''@;'; put 'put ''LjY1NjUgNDI5LjQ2NSA3OC4yMDA1IDQzMy4wMzEgODYuOTc5QzQzNi41OTcgOTUuNzU3NSA0MzguMzggMTA1LjQyOCA0MzguMzggMTE1Ljk4OUM0MzguMzggMTI2LjU1MSA0MzYuNTk3IDEzNi4yMjEgNDMzLjAzMSAxNDQuOTk5QzQyOS40NjUgMTUzLjc3OCA0MjQuNTk2IDE2MS4zOSA0MTgu''@;'; put 'put ''NDIzIDE2Ny44MzdDNDEyLjI1MSAxNzQuMTQ2IDQwNC45MTMgMTc5LjA4NCAzOTYuNDA4IDE4Mi42NTFDMzg4LjA0MSAxODYuMjE3IDM3OC45MiAxODggMzY5LjA0NCAxODhIMzI3LjQ4NEMzMjYuMzg2IDE4OCAzMjUuNDI2IDE4Ny42NTcgMzI0LjYwMyAxODYuOTcxQzMyMy45MTcgMTg2LjE0''@;'; put 'put ''OCAzMjMuNTc1IDE4NS4xODggMzIzLjU3NSAxODQuMDkxVjQ3Ljg4NzRaTTM0OS4yOTMgNjkuMjg0OVYxNjIuNjkzSDM2OS42NjJDMzc1LjgzNCAxNjIuNjkzIDM4MS40NTggMTYxLjUyNyAzODYuNTMzIDE1OS4xOTZDMzkxLjYwOCAxNTYuODY0IDM5NS45MjggMTUzLjY0MSAzOTkuNDk1IDE0''@;'; put 'put ''OS41MjZDNDAzLjE5OCAxNDUuNDExIDQwNi4wMSAxNDAuNTQxIDQwNy45MyAxMzQuOTE4QzQwOS45ODggMTI5LjE1NyA0MTEuMDE2IDEyMi44NDcgNDExLjAxNiAxMTUuOTg5QzQxMS4wMTYgMTA5LjI2OCA0MDkuOTg4IDEwMy4wMjcgNDA3LjkzIDk3LjI2NjNDNDA2LjAxIDkxLjUwNTQgNDAz''@;'; put 'put ''LjE5OCA4Ni41Njc1IDM5OS40OTUgODIuNDUyNkMzOTUuOTI4IDc4LjMzNzcgMzkxLjYwOCA3NS4xMTQzIDM4Ni41MzMgNzIuNzgyNkMzODEuNDU4IDcwLjQ1MDggMzc1LjgzNCA2OS4yODQ5IDM2OS42NjIgNjkuMjg0OUgzNDkuMjkzWk01MzEuMDkzIDE3Ny45MThDNTI3LjM4OSAxODAuNjYy''@;'; put 'put ''IDUyMy4xMzcgMTgzLjEzMSA1MTguMzM3IDE4NS4zMjVDNTEzLjUzNiAxODcuMzgzIDUwOC43MzUgMTg4LjQxMSA1MDMuOTM1IDE4OC40MTFDNDk2LjgwMiAxODguNDExIDQ5MC4yMTggMTg3LjEwOCA0ODQuMTgzIDE4NC41MDJDNDc4LjE0OCAxODEuODk2IDQ3Mi45MzYgMTc4LjI2MSA0Njgu''@;'; put 'put ''NTQ2IDE3My41OThDNDY0LjI5NCAxNjguOTM0IDQ2MC45MzQgMTYzLjQ0OCA0NTguNDY1IDE1Ny4xMzhDNDU1Ljk5NiAxNTAuODI5IDQ1NC43NjEgMTQzLjk3IDQ1NC43NjEgMTM2LjU2NEM0NTQuNzYxIDEyOS40MzEgNDU2LjA2NCAxMjIuNzc5IDQ1OC42NzEgMTE2LjYwNkM0NjEuMjc3IDEx''@;'; put 'put ''MC4yOTcgNDY0Ljg0MyAxMDQuODEgNDY5LjM2OSAxMDAuMTQ3QzQ3My44OTYgOTUuMzQ2IDQ3OS4xMDggOTEuNTc0IDQ4NS4wMDYgODguODMwN0M0OTEuMDQxIDg2LjA4NzQgNDk3LjQ4OCA4NC43MTU4IDUwNC4zNDYgODQuNzE1OEM1MDkuMTQ3IDg0LjcxNTggNTEzLjg3OSA4NS44MTMxIDUx''@;'; put 'put ''OC41NDIgODguMDA3N0M1MjMuMjA2IDkwLjA2NTIgNTI3LjM4OSA5Mi40NjU1IDUzMS4wOTMgOTUuMjA4OFY4OS4wMzY1QzUzMS4wOTMgODcuOTM5MSA1MzEuNDM2IDg3LjA0NzYgNTMyLjEyMiA4Ni4zNjE4QzUzMi45NDUgODUuNTM4OCA1MzMuOTA1IDg1LjEyNzMgNTM1LjAwMiA4NS4xMjcz''@;'; put 'put ''SDU1MS4wNUM1NTMuNjU2IDg1LjEyNzMgNTU0Ljk1OSA4Ni40MzAzIDU1NC45NTkgODkuMDM2NVYxODQuMDkxQzU1NC45NTkgMTg2LjY5NyA1NTMuNjU2IDE4OCA1NTEuMDUgMTg4SDUzNS4wMDJDNTMzLjkwNSAxODggNTMyLjk0NSAxODcuNjU3IDUzMi4xMjIgMTg2Ljk3MUM1MzEuNDM2IDE4''@;'; put 'put ''Ni4xNDggNTMxLjA5MyAxODUuMTg4IDUzMS4wOTMgMTg0LjA5MVYxNzcuOTE4Wk00NzkuNjU3IDEzNi41NjRDNDc5LjY1NyAxNDAuMjY3IDQ4MC4zNDIgMTQzLjc2NSA0ODEuNzE0IDE0Ny4wNTdDNDgzLjA4NiAxNTAuMjExIDQ4NC45MzcgMTUzLjAyMyA0ODcuMjY5IDE1NS40OTJDNDg5LjYw''@;'; put 'put ''MSAxNTcuOTYxIDQ5Mi4yNzYgMTU5Ljk1IDQ5NS4yOTMgMTYxLjQ1OUM0OTguNDQ4IDE2Mi44MyA1MDEuNzQgMTYzLjUxNiA1MDUuMTY5IDE2My41MTZDNTA4Ljg3MiAxNjMuNTE2IDUxMi4yMzMgMTYyLjgzIDUxNS4yNTEgMTYxLjQ1OUM1MTguMjY4IDE1OS45NSA1MjAuODc0IDE1Ny45NjEg''@;'; put 'put ''NTIzLjA2OSAxNTUuNDkyQzUyNS40MDEgMTUzLjAyMyA1MjcuMTg0IDE1MC4yMTEgNTI4LjQxOCAxNDcuMDU3QzUyOS42NTMgMTQzLjc2NSA1MzAuMjcgMTQwLjI2NyA1MzAuMjcgMTM2LjU2NEM1MzAuMjcgMTMyLjg2IDUyOS42NTMgMTI5LjQzMSA1MjguNDE4IDEyNi4yNzZDNTI3LjE4NCAx''@;'; put 'put ''MjIuOTg0IDUyNS40MDEgMTIwLjEwNCA1MjMuMDY5IDExNy42MzVDNTIwLjg3NCAxMTUuMTY2IDUxOC4yNjggMTEzLjI0NiA1MTUuMjUxIDExMS44NzRDNTEyLjIzMyAxMTAuMzY1IDUwOC44NzIgMTA5LjYxMSA1MDUuMTY5IDEwOS42MTFDNTAxLjc0IDEwOS42MTEgNDk4LjQ0OCAxMTAuMzY1''@;'; put 'put ''IDQ5NS4yOTMgMTExLjg3NEM0OTIuMjc2IDExMy4yNDYgNDg5LjYwMSAxMTUuMTY2IDQ4Ny4yNjkgMTE3LjYzNUM0ODQuOTM3IDEyMC4xMDQgNDgzLjA4NiAxMjIuOTg0IDQ4MS43MTQgMTI2LjI3NkM0ODAuMzQyIDEyOS40MzEgNDc5LjY1NyAxMzIuODYgNDc5LjY1NyAxMzYuNTY0Wk01NzQu''@;'; put 'put ''NDA3IDg5LjAzNjVDNTc0LjQwNyA4Ny45MzkxIDU3NC43NSA4Ny4wNDc2IDU3NS40MzYgODYuMzYxOEM1NzYuMTIyIDg1LjUzODggNTc3LjAxMyA4NS4xMjczIDU3OC4xMTEgODUuMTI3M0g1OTMuMzM2VjU4LjE3NDZDNTkzLjMzNiA1Ny4wNzczIDU5My42NzkgNTYuMTg1OCA1OTQuMzY0IDU1''@;'; put 'put ''LjQ5OTlDNTk1LjE4NyA1NC42NzcgNTk2LjE0OCA1NC4yNjU1IDU5Ny4yNDUgNTQuMjY1NUg2MTMuMjkzQzYxNS44OTkgNTQuMjY1NSA2MTcuMjAyIDU1LjU2ODUgNjE3LjIwMiA1OC4xNzQ2Vjg1LjEyNzNINjM1LjMwOEM2MzYuNDA1IDg1LjEyNzMgNjM3LjI5NyA4NS41Mzg4IDYzNy45ODIg''@;'; put 'put ''ODYuMzYxOEM2MzguNjY4IDg3LjA0NzYgNjM5LjAxMSA4Ny45MzkxIDYzOS4wMTEgODkuMDM2NVYxMDQuMjYyQzYzOS4wMTEgMTA1LjM1OSA2MzguNjY4IDEwNi4yNSA2MzcuOTgyIDEwNi45MzZDNjM3LjI5NyAxMDcuNjIyIDYzNi40MDUgMTA3Ljk2NSA2MzUuMzA4IDEwNy45NjVINjE3LjIw''@;'; put 'put ''MlYxODQuMDkxQzYxNy4yMDIgMTg2LjY5NyA2MTUuODk5IDE4OCA2MTMuMjkzIDE4OEg1OTcuMjQ1QzU5Ni4xNDggMTg4IDU5NS4xODcgMTg3LjY1NyA1OTQuMzY0IDE4Ni45NzFDNTkzLjY3OSAxODYuMTQ4IDU5My4zMzYgMTg1LjE4OCA1OTMuMzM2IDE4NC4wOTFWMTA3Ljk2NUg1NzguMTEx''@;'; put 'put ''QzU3Ny4wMTMgMTA3Ljk2NSA1NzYuMTIyIDEwNy42MjIgNTc1LjQzNiAxMDYuOTM2QzU3NC43NSAxMDYuMjUgNTc0LjQwNyAxMDUuMzU5IDU3NC40MDcgMTA0LjI2MlY4OS4wMzY1Wk03MjkuNjkzIDE3Ny45MThDNzI1Ljk5IDE4MC42NjIgNzIxLjczOCAxODMuMTMxIDcxNi45MzcgMTg1LjMy''@;'; put 'put ''NUM3MTIuMTM3IDE4Ny4zODMgNzA3LjMzNiAxODguNDExIDcwMi41MzUgMTg4LjQxMUM2OTUuNDAzIDE4OC40MTEgNjg4LjgxOSAxODcuMTA4IDY4Mi43ODQgMTg0LjUwMkM2NzYuNzQ4IDE4MS44OTYgNjcxLjUzNiAxNzguMjYxIDY2Ny4xNDcgMTczLjU5OEM2NjIuODk1IDE2OC45MzQgNjU5''@;'; put 'put ''LjUzNCAxNjMuNDQ4IDY1Ny4wNjUgMTU3LjEzOEM2NTQuNTk2IDE1MC44MjkgNjUzLjM2MiAxNDMuOTcgNjUzLjM2MiAxMzYuNTY0QzY1My4zNjIgMTI5LjQzMSA2NTQuNjY1IDEyMi43NzkgNjU3LjI3MSAxMTYuNjA2QzY1OS44NzcgMTEwLjI5NyA2NjMuNDQzIDEwNC44MSA2NjcuOTcgMTAw''@;'; put 'put ''LjE0N0M2NzIuNDk2IDk1LjM0NiA2NzcuNzA4IDkxLjU3NCA2ODMuNjA3IDg4LjgzMDdDNjg5LjY0MiA4Ni4wODc0IDY5Ni4wODggODQuNzE1OCA3MDIuOTQ3IDg0LjcxNThDNzA3Ljc0NyA4NC43MTU4IDcxMi40NzkgODUuODEzMSA3MTcuMTQzIDg4LjAwNzdDNzIxLjgwNyA5MC4wNjUyIDcy''@;'; put 'put ''NS45OSA5Mi40NjU1IDcyOS42OTMgOTUuMjA4OFY4OS4wMzY1QzcyOS42OTMgODcuOTM5MSA3MzAuMDM2IDg3LjA0NzYgNzMwLjcyMiA4Ni4zNjE4QzczMS41NDUgODUuNTM4OCA3MzIuNTA1IDg1LjEyNzMgNzMzLjYwMyA4NS4xMjczSDc0OS42NTFDNzUyLjI1NyA4NS4xMjczIDc1My41NiA4''@;'; put 'put ''Ni40MzAzIDc1My41NiA4OS4wMzY1VjE4NC4wOTFDNzUzLjU2IDE4Ni42OTcgNzUyLjI1NyAxODggNzQ5LjY1MSAxODhINzMzLjYwM0M3MzIuNTA1IDE4OCA3MzEuNTQ1IDE4Ny42NTcgNzMwLjcyMiAxODYuOTcxQzczMC4wMzYgMTg2LjE0OCA3MjkuNjkzIDE4NS4xODggNzI5LjY5MyAxODQu''@;'; put 'put ''MDkxVjE3Ny45MThaTTY3OC4yNTcgMTM2LjU2NEM2NzguMjU3IDE0MC4yNjcgNjc4Ljk0MyAxNDMuNzY1IDY4MC4zMTUgMTQ3LjA1N0M2ODEuNjg2IDE1MC4yMTEgNjgzLjUzOCAxNTMuMDIzIDY4NS44NyAxNTUuNDkyQzY4OC4yMDEgMTU3Ljk2MSA2OTAuODc2IDE1OS45NSA2OTMuODk0IDE2''@;'; put 'put ''MS40NTlDNjk3LjA0OSAxNjIuODMgNzAwLjM0IDE2My41MTYgNzAzLjc3IDE2My41MTZDNzA3LjQ3MyAxNjMuNTE2IDcxMC44MzMgMTYyLjgzIDcxMy44NTEgMTYxLjQ1OUM3MTYuODY5IDE1OS45NSA3MTkuNDc1IDE1Ny45NjEgNzIxLjY2OSAxNTUuNDkyQzcyNC4wMDEgMTUzLjAyMyA3MjUu''@;'; put 'put ''Nzg0IDE1MC4yMTEgNzI3LjAxOSAxNDcuMDU3QzcyOC4yNTMgMTQzLjc2NSA3MjguODcgMTQwLjI2NyA3MjguODcgMTM2LjU2NEM3MjguODcgMTMyLjg2IDcyOC4yNTMgMTI5LjQzMSA3MjcuMDE5IDEyNi4yNzZDNzI1Ljc4NCAxMjIuOTg0IDcyNC4wMDEgMTIwLjEwNCA3MjEuNjY5IDExNy42''@;'; put 'put ''MzVDNzE5LjQ3NSAxMTUuMTY2IDcxNi44NjkgMTEzLjI0NiA3MTMuODUxIDExMS44NzRDNzEwLjgzMyAxMTAuMzY1IDcwNy40NzMgMTA5LjYxMSA3MDMuNzcgMTA5LjYxMUM3MDAuMzQgMTA5LjYxMSA2OTcuMDQ5IDExMC4zNjUgNjkzLjg5NCAxMTEuODc0QzY5MC44NzYgMTEzLjI0NiA2ODgu''@;'; put 'put ''MjAxIDExNS4xNjYgNjg1Ljg3IDExNy42MzVDNjgzLjUzOCAxMjAuMTA0IDY4MS42ODYgMTIyLjk4NCA2ODAuMzE1IDEyNi4yNzZDNjc4Ljk0MyAxMjkuNDMxIDY3OC4yNTcgMTMyLjg2IDY3OC4yNTcgMTM2LjU2NFoiIGZpbGw9IiNFMEUwRTAiLz4KPHBhdGggZD0iTTg3My4yMDYgNzQuMjIy''@;'; put 'put ''OEM4NzIuNjU3IDc1LjA0NTggODcxLjkwMyA3NS41MjU4IDg3MC45NDMgNzUuNjYzQzg2OS45ODIgNzUuODAwMiA4NjkuMDIyIDc1LjU5NDQgODY4LjA2MiA3NS4wNDU4Qzg2NC45MDcgNzMuMTI1NSA4NjEuMTM1IDcxLjQ3OTUgODU2Ljc0NiA3MC4xMDc5Qzg1Mi4zNTcgNjguNzM2MiA4NDcu''@;'; put 'put ''ODk5IDY4LjExOSA4NDMuMzczIDY4LjI1NjJDODM3LjQ3NSA2OC4yNTYyIDgzMS45ODggNjkuNTU5MiA4MjYuOTEzIDcyLjE2NTNDODIxLjk3NSA3NC42MzQzIDgxNy42NTQgNzguMDYzNCA4MTMuOTUxIDgyLjQ1MjZDODEwLjI0OCA4Ni43MDQ3IDgwNy4zNjcgOTEuNzExMSA4MDUuMzEgOTcu''@;'; put 'put ''NDcyQzgwMy4yNTIgMTAzLjIzMyA4MDIuMjkyIDEwOS40MDUgODAyLjQyOSAxMTUuOTg5QzgwMi41NjYgMTIyLjg0NyA4MDMuNTk1IDEyOS4yMjUgODA1LjUxNSAxMzUuMTIzQzgwNy41NzMgMTQwLjg4NCA4MTAuMzg1IDE0NS44OTEgODEzLjk1MSAxNTAuMTQzQzgxNy41MTcgMTU0LjM5NSA4''@;'; put 'put ''MjEuODM4IDE1Ny43NTUgODI2LjkxMyAxNjAuMjI0QzgzMS45ODggMTYyLjU1NiA4MzcuNjggMTYzLjcyMiA4NDMuOTkgMTYzLjcyMkM4NTAuMDI1IDE2My41ODUgODU1LjUxMiAxNjIuNTU2IDg2MC40NSAxNjAuNjM2Qzg2NS41MjUgMTU4LjcxNiA4NzAuNTMxIDE1NS45NzIgODc1LjQ2OSAx''@;'; put 'put ''NTIuNDA2Qzg3Ni40MjkgMTUxLjcyIDg3Ny40NTggMTUxLjUxNCA4NzguNTU1IDE1MS43ODlDODc5LjY1MiAxNTEuOTI2IDg4MC41NDQgMTUyLjQ3NSA4ODEuMjMgMTUzLjQzNUw4OTEuMTA2IDE2OC4yNDhDODkyLjM0IDE3MC4xNjkgODkxLjk5NyAxNzEuODgzIDg5MC4wNzcgMTczLjM5MkM4''@;'; put 'put ''ODIuNTMzIDE3OS4xNTMgODc1LjE5NSAxODMuMzM2IDg2OC4wNjIgMTg1Ljk0M0M4NjAuOTMgMTg4LjU0OSA4NTIuOTc0IDE4OS44NTIgODQ0LjE5NiAxODkuODUyQzgzMy42MzQgMTg5Ljk4OSA4MjQuMTAxIDE4OC4zNDMgODE1LjU5NyAxODQuOTE0QzgwNy4yMyAxODEuMzQ4IDgwMC4wMjkg''@;'; put 'put ''MTc2LjM0MSA3OTMuOTk0IDE2OS44OTRDNzg4LjA5NiAxNjMuMzExIDc4My41MDEgMTU1LjQ5MiA3ODAuMjA5IDE0Ni40MzlDNzc3LjA1NCAxMzcuMzg3IDc3NS40MDggMTI3LjM3NCA3NzUuMjcxIDExNi40MDFDNzc1LjEzNCAxMDcuMDczIDc3Ni41NzQgOTguMDIwNyA3NzkuNTkyIDg5LjI0''@;'; put 'put ''MjJDNzgyLjc0NiA4MC4zMjY2IDc4Ny4yMDQgNzIuMzcxMSA3OTIuOTY1IDY1LjM3NTdDNzk4LjcyNiA1OC4zODA0IDgwNS43MjEgNTIuNzU2NyA4MTMuOTUxIDQ4LjUwNDZDODIyLjE4MSA0NC4yNTI1IDgzMS40MzkgNDIuMTI2NSA4NDEuNzI3IDQyLjEyNjVDODQ4LjcyMiA0MS45ODkzIDg1''@;'; put 'put ''NS41OCA0Mi44MTIzIDg2Mi4zMDEgNDQuNTk1NEM4NjkuMTU5IDQ2LjM3ODYgODc1Ljg4IDQ5LjY3MDUgODgyLjQ2NCA1NC40NzEyQzg4My40MjQgNTUuMTU3IDg4My45NzMgNTYuMDQ4NiA4ODQuMTEgNTcuMTQ1OUM4ODQuMjQ3IDU4LjEwNjEgODgzLjk3MyA1OS4wNjYyIDg4My4yODcgNjAu''@;'; put 'put ''MDI2M0w4NzMuMjA2IDc0LjIyMjhaTTkwNi4yMTIgMTM2LjU2NEM5MDYuMjEyIDEyOS4yOTQgOTA3LjUxNSAxMjIuNTA0IDkxMC4xMjEgMTE2LjE5NUM5MTIuNzI3IDEwOS44ODUgOTE2LjIyNSAxMDQuMzk5IDkyMC42MTQgOTkuNzM1MkM5MjUuMTQgOTUuMDcxNyA5MzAuNDIxIDkxLjQzNjgg''@;'; put 'put ''OTM2LjQ1NiA4OC44MzA3Qzk0Mi40OTIgODYuMDg3NCA5NDkuMDA3IDg0LjcxNTggOTU2LjAwMiA4NC43MTU4Qzk2Mi45OTggODQuNzE1OCA5NjkuNDQ0IDg2LjA4NzQgOTc1LjM0MiA4OC44MzA3Qzk4MS4zNzcgOTEuNDM2OCA5ODYuNTkgOTUuMDcxNyA5OTAuOTc5IDk5LjczNTJDOTk1LjUw''@;'; put 'put ''NSAxMDQuMzk5IDk5OS4wMDMgMTA5Ljg4NSAxMDAxLjQ3IDExNi4xOTVDMTAwNC4wOCAxMjIuNTA0IDEwMDUuMzggMTI5LjI5NCAxMDA1LjM4IDEzNi41NjRDMTAwNS4zOCAxNDMuODMzIDEwMDQuMDggMTUwLjYyMyAxMDAxLjQ3IDE1Ni45MzJDOTk5LjAwMyAxNjMuMjQyIDk5NS41MDUgMTY4''@;'; put 'put ''LjcyOSA5OTAuOTc5IDE3My4zOTJDOTg2LjU5IDE3OC4wNTYgOTgxLjM3NyAxODEuNzU5IDk3NS4zNDIgMTg0LjUwMkM5NjkuMzA3IDE4Ny4xMDggOTYyLjc5MiAxODguNDExIDk1NS43OTYgMTg4LjQxMUM5NDguODAxIDE4OC40MTEgOTQyLjI4NiAxODcuMTA4IDkzNi4yNTEgMTg0LjUwMkM5''@;'; put 'put ''MzAuMjE1IDE4MS43NTkgOTI0LjkzNSAxNzguMDU2IDkyMC40MDggMTczLjM5MkM5MTYuMDE5IDE2OC43MjkgOTEyLjUyMSAxNjMuMjQyIDkwOS45MTUgMTU2LjkzMkM5MDcuNDQ2IDE1MC42MjMgOTA2LjIxMiAxNDMuODMzIDkwNi4yMTIgMTM2LjU2NFpNOTMxLjEwNyAxMzYuNTY0QzkzMS4x''@;'; put 'put ''MDcgMTQwLjQwNCA5MzEuNzI0IDE0NC4wMzkgOTMyLjk1OSAxNDcuNDY4QzkzNC4xOTMgMTUwLjc2IDkzNS45MDggMTUzLjY0MSA5MzguMTAyIDE1Ni4xMDlDOTQwLjI5NyAxNTguNTc4IDk0Mi45MDMgMTYwLjU2NyA5NDUuOTIxIDE2Mi4wNzZDOTQ4LjkzOCAxNjMuNDQ4IDk1Mi4yMyAxNjQu''@;'; put 'put ''MTM0IDk1NS43OTYgMTY0LjEzNEM5NTkuMzYzIDE2NC4xMzQgOTYyLjY1NSAxNjMuNDQ4IDk2NS42NzIgMTYyLjA3NkM5NjguODI3IDE2MC41NjcgOTcxLjUwMiAxNTguNTc4IDk3My42OTYgMTU2LjEwOUM5NzUuODkxIDE1My42NDEgOTc3LjYwNSAxNTAuNzYgOTc4Ljg0IDE0Ny40NjhDOTgw''@;'; put 'put ''LjA3NCAxNDQuMDM5IDk4MC42OTIgMTQwLjQwNCA5ODAuNjkyIDEzNi41NjRDOTgwLjY5MiAxMzIuNzIzIDk4MC4wNzQgMTI5LjE1NyA5NzguODQgMTI1Ljg2NUM5NzcuNjA1IDEyMi40MzYgOTc1Ljg5MSAxMTkuNDg3IDk3My42OTYgMTE3LjAxOEM5NzEuNTAyIDExNC41NDkgOTY4LjgyNyAx''@;'; put 'put ''MTIuNjI5IDk2NS42NzIgMTExLjI1N0M5NjIuNjU1IDEwOS43NDggOTU5LjM2MyAxMDguOTk0IDk1NS43OTYgMTA4Ljk5NEM5NTIuMjMgMTA4Ljk5NCA5NDguOTM4IDEwOS43NDggOTQ1LjkyMSAxMTEuMjU3Qzk0Mi45MDMgMTEyLjYyOSA5NDAuMjk3IDExNC41NDkgOTM4LjEwMiAxMTcuMDE4''@;'; put 'put ''QzkzNS45MDggMTE5LjQ4NyA5MzQuMTkzIDEyMi40MzYgOTMyLjk1OSAxMjUuODY1QzkzMS43MjQgMTI5LjE1NyA5MzEuMTA3IDEzMi43MjMgOTMxLjEwNyAxMzYuNTY0Wk0xMDUwLjkgMTg0LjA5MUMxMDUwLjkgMTg2LjY5NyAxMDQ5LjU5IDE4OCAxMDQ2Ljk5IDE4OEgxMDMwLjk0QzEwMjku''@;'; put 'put ''ODQgMTg4IDEwMjguODggMTg3LjY1NyAxMDI4LjA2IDE4Ni45NzFDMTAyNy4zNyAxODYuMTQ4IDEwMjcuMDMgMTg1LjE4OCAxMDI3LjAzIDE4NC4wOTFWODkuMDM2NUMxMDI3LjAzIDg3LjkzOTEgMTAyNy4zNyA4Ny4wNDc2IDEwMjguMDYgODYuMzYxOEMxMDI4Ljg4IDg1LjUzODggMTAyOS44''@;'; put 'put ''NCA4NS4xMjczIDEwMzAuOTQgODUuMTI3M0gxMDQ2Ljk5QzEwNDkuNTkgODUuMTI3MyAxMDUwLjkgODYuNDMwMyAxMDUwLjkgODkuMDM2NVY5Ni42NDlDMTA1NC44OCA5My4zNTcxIDEwNTkuNDcgOTAuNTQ1MyAxMDY0LjY4IDg4LjIxMzVDMTA2OS44OSA4NS44ODE3IDEwNzUuMDQgODQuNzE1''@;'; put 'put ''OCAxMDgwLjExIDg0LjcxNThDMTA4NC45MSA4NC43MTU4IDEwODkuMzcgODUuNjA3NCAxMDkzLjQ5IDg3LjM5MDVDMTA5Ny42IDg5LjAzNjUgMTEwMS4xIDkxLjQzNjggMTEwMy45OCA5NC41OTE2QzExMDcgOTcuNjA5MiAxMTA5LjMzIDEwMS4xNzUgMTExMC45OCAxMDUuMjlDMTExMi42MiAx''@;'; put 'put ''MDkuNDA1IDExMTMuNDQgMTEzLjkzMiAxMTEzLjQ0IDExOC44N1YxODQuMDkxQzExMTMuNDQgMTg2LjY5NyAxMTEyLjE0IDE4OCAxMTA5LjUzIDE4OEgxMDkzLjQ5QzEwOTIuMzkgMTg4IDEwOTEuNDMgMTg3LjY1NyAxMDkwLjYxIDE4Ni45NzFDMTA4OS45MiAxODYuMTQ4IDEwODkuNTggMTg1''@;'; put 'put ''LjE4OCAxMDg5LjU4IDE4NC4wOTFWMTI2LjY4OEMxMDg5LjU4IDEyMS4wNjQgMTA4OC4yNyAxMTYuNzQ0IDEwODUuNjcgMTEzLjcyNkMxMDgzLjA2IDExMC41NzEgMTA3OS4zNiAxMDguOTk0IDEwNzQuNTYgMTA4Ljk5NEMxMDcxLjU0IDEwOC45OTQgMTA2OC41OSAxMDkuNjExIDEwNjUuNzEg''@;'; put 'put ''MTEwLjg0NUMxMDYyLjk3IDExMS45NDMgMTA2MC41IDExMy41MiAxMDU4LjMgMTE1LjU3OEMxMDU2LjI1IDExNy40OTggMTA1NC41MyAxMTkuODMgMTA1My4xNiAxMjIuNTczQzEwNTEuOTMgMTI1LjMxNiAxMDUxLjMxIDEyOC4xOTcgMTA1MS4zMSAxMzEuMjE0TDEwNTAuOSAxODQuMDkxWk0x''@;'; put 'put ''MTI3Ljg3IDg5LjAzNjVDMTEyNy44NyA4Ny45MzkxIDExMjguMjEgODcuMDQ3NiAxMTI4LjkgODYuMzYxOEMxMTI5LjU4IDg1LjUzODggMTEzMC40OCA4NS4xMjczIDExMzEuNTcgODUuMTI3M0gxMTQ2LjhWNTguMTc0NkMxMTQ2LjggNTcuMDc3MyAxMTQ3LjE0IDU2LjE4NTggMTE0Ny44MyA1''@;'; put 'put ''NS40OTk5QzExNDguNjUgNTQuNjc3IDExNDkuNjEgNTQuMjY1NSAxMTUwLjcxIDU0LjI2NTVIMTE2Ni43NkMxMTY5LjM2IDU0LjI2NTUgMTE3MC42NyA1NS41Njg1IDExNzAuNjcgNTguMTc0NlY4NS4xMjczSDExODguNzdDMTE4OS44NyA4NS4xMjczIDExOTAuNzYgODUuNTM4OCAxMTkxLjQ1''@;'; put 'put ''IDg2LjM2MThDMTE5Mi4xMyA4Ny4wNDc2IDExOTIuNDcgODcuOTM5MSAxMTkyLjQ3IDg5LjAzNjVWMTA0LjI2MkMxMTkyLjQ3IDEwNS4zNTkgMTE5Mi4xMyAxMDYuMjUgMTE5MS40NSAxMDYuOTM2QzExOTAuNzYgMTA3LjYyMiAxMTg5Ljg3IDEwNy45NjUgMTE4OC43NyAxMDcuOTY1SDExNzAu''@;'; put 'put ''NjdWMTg0LjA5MUMxMTcwLjY3IDE4Ni42OTcgMTE2OS4zNiAxODggMTE2Ni43NiAxODhIMTE1MC43MUMxMTQ5LjYxIDE4OCAxMTQ4LjY1IDE4Ny42NTcgMTE0Ny44MyAxODYuOTcxQzExNDcuMTQgMTg2LjE0OCAxMTQ2LjggMTg1LjE4OCAxMTQ2LjggMTg0LjA5MVYxMDcuOTY1SDExMzEuNTdD''@;'; put 'put ''MTEzMC40OCAxMDcuOTY1IDExMjkuNTggMTA3LjYyMiAxMTI4LjkgMTA2LjkzNkMxMTI4LjIxIDEwNi4yNSAxMTI3Ljg3IDEwNS4zNTkgMTEyNy44NyAxMDQuMjYyVjg5LjAzNjVaTTEyNzMuMjggMTA4LjE3MUMxMjcyLjg3IDEwOS4yNjggMTI3Mi4xOCAxMTAuMDIyIDEyNzEuMjIgMTEwLjQz''@;'; put 'put ''NEMxMjcwLjI2IDExMC44NDUgMTI2OS4yMyAxMTAuNzc3IDEyNjguMTQgMTEwLjIyOEMxMjY3LjA0IDEwOS42OCAxMjY1LjY3IDEwOS4yIDEyNjQuMDIgMTA4Ljc4OEMxMjYyLjUxIDEwOC4zNzcgMTI2MC44NyAxMDguMTcxIDEyNTkuMDggMTA4LjE3MUMxMjU2LjA3IDEwOC4xNzEgMTI1My4x''@;'; put 'put ''OSAxMDguNzg4IDEyNTAuNDQgMTEwLjAyMkMxMjQ3LjcgMTExLjI1NyAxMjQ1LjIzIDExMi45NzIgMTI0My4wNCAxMTUuMTY2QzEyNDAuOTggMTE3LjIyNCAxMjM5LjMzIDExOS42OTMgMTIzOC4xIDEyMi41NzNDMTIzNi44NiAxMjUuMzE2IDEyMzYuMjUgMTI4LjE5NyAxMjM2LjI1IDEzMS4y''@;'; put 'put ''MTRMMTIzNS44NCAxODQuMDkxQzEyMzUuODQgMTg1LjE4OCAxMjM1LjQ5IDE4Ni4xNDggMTIzNC44MSAxODYuOTcxQzEyMzQuMTIgMTg3LjY1NyAxMjMzLjIzIDE4OCAxMjMyLjEzIDE4OEgxMjE1Ljg4QzEyMTQuNzggMTg4IDEyMTMuODIgMTg3LjY1NyAxMjEzIDE4Ni45NzFDMTIxMi4zMSAx''@;'; put 'put ''ODYuMTQ4IDEyMTEuOTcgMTg1LjE4OCAxMjExLjk3IDE4NC4wOTFWODkuMDM2NUMxMjExLjk3IDg3LjkzOTEgMTIxMi4zMSA4Ny4wNDc2IDEyMTMgODYuMzYxOEMxMjEzLjgyIDg1LjUzODggMTIxNC43OCA4NS4xMjczIDEyMTUuODggODUuMTI3M0gxMjMyLjEzQzEyMzMuMjMgODUuMTI3MyAx''@;'; put 'put ''MjM0LjEyIDg1LjUzODggMTIzNC44MSA4Ni4zNjE4QzEyMzUuNDkgODcuMDQ3NiAxMjM1Ljg0IDg3LjkzOTEgMTIzNS44NCA4OS4wMzY1Vjk0LjU5MTZDMTIzOS44MSA5MS43MTExIDEyNDQuMDcgODkuMzc5NCAxMjQ4LjU5IDg3LjU5NjJDMTI1My4xMiA4NS42NzU5IDEyNTcuOTkgODQuNzE1''@;'; put 'put ''OCAxMjYzLjIgODQuNzE1OEMxMjY4LjU1IDg0LjcxNTggMTI3My4yMSA4NS43NDQ1IDEyNzcuMTkgODcuODAyQzEyNzkuMTEgODkuMDM2NSAxMjc5LjczIDkwLjYxMzggMTI3OS4wNCA5Mi41MzQxTDEyNzMuMjggMTA4LjE3MVpNMTI4NS4zMyAxMzYuNTY0QzEyODUuMzMgMTI5LjI5NCAxMjg2''@;'; put 'put ''LjYzIDEyMi41MDQgMTI4OS4yNCAxMTYuMTk1QzEyOTEuODUgMTA5Ljg4NSAxMjk1LjM0IDEwNC4zOTkgMTI5OS43MyA5OS43MzUyQzEzMDQuMjYgOTUuMDcxNyAxMzA5LjU0IDkxLjQzNjggMTMxNS41NyA4OC44MzA3QzEzMjEuNjEgODYuMDg3NCAxMzI4LjEyIDg0LjcxNTggMTMzNS4xMiA4''@;'; put 'put ''NC43MTU4QzEzNDIuMTIgODQuNzE1OCAxMzQ4LjU2IDg2LjA4NzQgMTM1NC40NiA4OC44MzA3QzEzNjAuNSA5MS40MzY4IDEzNjUuNzEgOTUuMDcxNyAxMzcwLjEgOTkuNzM1MkMxMzc0LjYyIDEwNC4zOTkgMTM3OC4xMiAxMDkuODg1IDEzODAuNTkgMTE2LjE5NUMxMzgzLjIgMTIyLjUwNCAx''@;'; put 'put ''Mzg0LjUgMTI5LjI5NCAxMzg0LjUgMTM2LjU2NEMxMzg0LjUgMTQzLjgzMyAxMzgzLjIgMTUwLjYyMyAxMzgwLjU5IDE1Ni45MzJDMTM3OC4xMiAxNjMuMjQyIDEzNzQuNjIgMTY4LjcyOSAxMzcwLjEgMTczLjM5MkMxMzY1LjcxIDE3OC4wNTYgMTM2MC41IDE4MS43NTkgMTM1NC40NiAxODQu''@;'; put 'put ''NTAyQzEzNDguNDMgMTg3LjEwOCAxMzQxLjkxIDE4OC40MTEgMTMzNC45MSAxODguNDExQzEzMjcuOTIgMTg4LjQxMSAxMzIxLjQgMTg3LjEwOCAxMzE1LjM3IDE4NC41MDJDMTMwOS4zMyAxODEuNzU5IDEzMDQuMDUgMTc4LjA1NiAxMjk5LjUzIDE3My4zOTJDMTI5NS4xNCAxNjguNzI5IDEy''@;'; put 'put ''OTEuNjQgMTYzLjI0MiAxMjg5LjAzIDE1Ni45MzJDMTI4Ni41NiAxNTAuNjIzIDEyODUuMzMgMTQzLjgzMyAxMjg1LjMzIDEzNi41NjRaTTEzMTAuMjMgMTM2LjU2NEMxMzEwLjIzIDE0MC40MDQgMTMxMC44NCAxNDQuMDM5IDEzMTIuMDggMTQ3LjQ2OEMxMzEzLjMxIDE1MC43NiAxMzE1LjAz''@;'; put 'put ''IDE1My42NDEgMTMxNy4yMiAxNTYuMTA5QzEzMTkuNDIgMTU4LjU3OCAxMzIyLjAyIDE2MC41NjcgMTMyNS4wNCAxNjIuMDc2QzEzMjguMDYgMTYzLjQ0OCAxMzMxLjM1IDE2NC4xMzQgMTMzNC45MSAxNjQuMTM0QzEzMzguNDggMTY0LjEzNCAxMzQxLjc3IDE2My40NDggMTM0NC43OSAxNjIu''@;'; put 'put ''MDc2QzEzNDcuOTUgMTYwLjU2NyAxMzUwLjYyIDE1OC41NzggMTM1Mi44MSAxNTYuMTA5QzEzNTUuMDEgMTUzLjY0MSAxMzU2LjcyIDE1MC43NiAxMzU3Ljk2IDE0Ny40NjhDMTM1OS4xOSAxNDQuMDM5IDEzNTkuODEgMTQwLjQwNCAxMzU5LjgxIDEzNi41NjRDMTM1OS44MSAxMzIuNzIzIDEz''@;'; put 'put ''NTkuMTkgMTI5LjE1NyAxMzU3Ljk2IDEyNS44NjVDMTM1Ni43MiAxMjIuNDM2IDEzNTUuMDEgMTE5LjQ4NyAxMzUyLjgxIDExNy4wMThDMTM1MC42MiAxMTQuNTQ5IDEzNDcuOTUgMTEyLjYyOSAxMzQ0Ljc5IDExMS4yNTdDMTM0MS43NyAxMDkuNzQ4IDEzMzguNDggMTA4Ljk5NCAxMzM0Ljkx''@;'; put 'put ''IDEwOC45OTRDMTMzMS4zNSAxMDguOTk0IDEzMjguMDYgMTA5Ljc0OCAxMzI1LjA0IDExMS4yNTdDMTMyMi4wMiAxMTIuNjI5IDEzMTkuNDIgMTE0LjU0OSAxMzE3LjIyIDExNy4wMThDMTMxNS4wMyAxMTkuNDg3IDEzMTMuMzEgMTIyLjQzNiAxMzEyLjA4IDEyNS44NjVDMTMxMC44NCAxMjku''@;'; put 'put ''MTU3IDEzMTAuMjMgMTMyLjcyMyAxMzEwLjIzIDEzNi41NjRaTTE0MDguMjEgMzcuMzk0NEMxNDA4LjIxIDM2LjI5NyAxNDA4LjU1IDM1LjQwNTUgMTQwOS4yNCAzNC43MTk3QzE0MTAuMDYgMzQuMDMzOCAxNDExLjAyIDMzLjY5MDkgMTQxMi4xMiAzMy42OTA5SDE0MjguMTZDMTQyOS4yNiAz''@;'; put 'put ''My42OTA5IDE0MzAuMTUgMzQuMDMzOCAxNDMwLjg0IDM0LjcxOTdDMTQzMS42NiAzNS40MDU1IDE0MzIuMDcgMzYuMjk3IDE0MzIuMDcgMzcuMzk0NFYxODQuMDkxQzE0MzIuMDcgMTg2LjY5NyAxNDMwLjc3IDE4OCAxNDI4LjE2IDE4OEgxNDEyLjEyQzE0MTEuMDIgMTg4IDE0MTAuMDYgMTg3''@;'; put 'put ''LjY1NyAxNDA5LjI0IDE4Ni45NzFDMTQwOC41NSAxODYuMTQ4IDE0MDguMjEgMTg1LjE4OCAxNDA4LjIxIDE4NC4wOTFWMzcuMzk0NFpNMTQ2MyAzNy4zOTQ0QzE0NjMgMzYuMjk3IDE0NjMuMzUgMzUuNDA1NSAxNDY0LjAzIDM0LjcxOTdDMTQ2NC44NSAzNC4wMzM4IDE0NjUuODEgMzMuNjkw''@;'; put 'put ''OSAxNDY2LjkxIDMzLjY5MDlIMTQ4Mi45NkMxNDg0LjA2IDMzLjY5MDkgMTQ4NC45NSAzNC4wMzM4IDE0ODUuNjMgMzQuNzE5N0MxNDg2LjQ2IDM1LjQwNTUgMTQ4Ni44NyAzNi4yOTcgMTQ4Ni44NyAzNy4zOTQ0VjE4NC4wOTFDMTQ4Ni44NyAxODYuNjk3IDE0ODUuNTcgMTg4IDE0ODIuOTYg''@;'; put 'put ''MTg4SDE0NjYuOTFDMTQ2NS44MSAxODggMTQ2NC44NSAxODcuNjU3IDE0NjQuMDMgMTg2Ljk3MUMxNDYzLjM1IDE4Ni4xNDggMTQ2MyAxODUuMTg4IDE0NjMgMTg0LjA5MVYzNy4zOTQ0Wk0xNTM3Ljc2IDE0OC4wODVDMTUzOS42OCAxNTIuODg2IDE1NDIuNTYgMTU2Ljc5NSAxNTQ2LjQgMTU5''@;'; put 'put ''LjgxM0MxNTUwLjM3IDE2Mi44MyAxNTU0LjkgMTY0LjMzOSAxNTU5Ljk4IDE2NC4zMzlDMTU2My42OCAxNjQuMzM5IDE1NjcuMjUgMTYzLjcyMiAxNTcwLjY3IDE2Mi40ODhDMTU3NC4xIDE2MS4yNTMgMTU3Ni45OCAxNTkuNTM5IDE1NzkuMzIgMTU3LjM0NEMxNTgwLjE0IDE1Ni42NTggMTU4''@;'; put 'put ''MS4wMyAxNTYuMzg0IDE1ODEuOTkgMTU2LjUyMUMxNTgzLjA5IDE1Ni41MjEgMTU4My45OCAxNTYuODY0IDE1ODQuNjcgMTU3LjU1TDE1OTYuMzkgMTY4LjY2QzE1OTcuMDggMTY5LjM0NiAxNTk3LjQyIDE3MC4yMzcgMTU5Ny40MiAxNzEuMzM1QzE1OTcuNDIgMTcyLjI5NSAxNTk3LjA4IDE3''@;'; put 'put ''My4xMTggMTU5Ni4zOSAxNzMuODA0QzE1OTEuODcgMTc4LjYwNCAxNTg2LjUyIDE4Mi4yMzkgMTU4MC4zNCAxODQuNzA4QzE1NzQuMTcgMTg3LjE3NyAxNTY3LjM4IDE4OC40MTEgMTU1OS45OCAxODguNDExQzE1NTMuMTIgMTg4LjQxMSAxNTQ2Ljc0IDE4Ny4xNzcgMTU0MC44NCAxODQuNzA4''@;'; put 'put ''QzE1MzUuMDggMTgyLjIzOSAxNTMwLjAxIDE3OC43NDEgMTUyNS42MiAxNzQuMjE1QzE1MjAuODIgMTY5LjQxNCAxNTE3LjExIDE2My43MjIgMTUxNC41MSAxNTcuMTM4QzE1MTEuOSAxNTAuNTU0IDE1MTAuNiAxNDMuNTU5IDE1MTAuNiAxMzYuMTUyQzE1MTAuNiAxMjkuMDIgMTUxMS45IDEy''@;'; put 'put ''Mi4zNjcgMTUxNC41MSAxMTYuMTk1QzE1MTcuMTEgMTA5Ljg4NSAxNTIwLjYxIDEwNC4zOTkgMTUyNSA5OS43MzUyQzE1MjkuNTMgOTUuMDcxNyAxNTM0LjgxIDkxLjQzNjggMTU0MC44NCA4OC44MzA3QzE1NDYuODggODYuMDg3NCAxNTUzLjMyIDg0LjcxNTggMTU2MC4xOCA4NC43MTU4QzE1''@;'; put 'put ''NjYuNDkgODQuNzE1OCAxNTcyLjMyIDg1Ljg4MTcgMTU3Ny42NyA4OC4yMTM1QzE1ODMuMTYgOTAuNTQ1MyAxNTg3Ljk2IDkzLjc2ODYgMTU5Mi4wNyA5Ny44ODM1QzE1OTMuODYgOTkuNTI5NSAxNTk1LjU3IDEwMS40NSAxNTk3LjIyIDEwMy42NDRDMTU5OC44NiAxMDUuODM5IDE2MDAuMyAx''@;'; put 'put ''MDguMzc3IDE2MDEuNTQgMTExLjI1N0MxNjAyLjc3IDExNC4xMzcgMTYwMy43MyAxMTcuNDk4IDE2MDQuNDIgMTIxLjMzOEMxNjA1LjI0IDEyNS4wNDIgMTYwNS42NSAxMjkuMjk0IDE2MDUuNjUgMTM0LjA5NUMxNjA1LjY1IDEzNy4zODcgMTYwNS40NSAxNDAuOTUzIDE2MDUuMDMgMTQ0Ljc5''@;'; put 'put ''M0MxNjA0Ljc2IDE0Ni45ODggMTYwMy41MyAxNDguMDg1IDE2MDEuMzMgMTQ4LjA4NUgxNTM3Ljc2Wk0xNTU5LjU2IDEwOC43ODhDMTU1My44IDEwOC43ODggMTU0OS4wNyAxMTAuMzY1IDE1NDUuMzcgMTEzLjUyQzE1NDEuNjYgMTE2LjY3NSAxNTM5LjA2IDEyMC41ODQgMTUzNy41NSAxMjUu''@;'; put 'put ''MjQ4SDE1ODAuNzZDMTU3OS4yNSAxMjAuODU4IDE1NzYuNzEgMTE3LjAxOCAxNTczLjE0IDExMy43MjZDMTU2OS43MSAxMTAuNDM0IDE1NjUuMTkgMTA4Ljc4OCAxNTU5LjU2IDEwOC43ODhaTTE2ODguNTEgMTA4LjE3MUMxNjg4LjEgMTA5LjI2OCAxNjg3LjQxIDExMC4wMjIgMTY4Ni40NSAx''@;'; put 'put ''MTAuNDM0QzE2ODUuNDkgMTEwLjg0NSAxNjg0LjQ2IDExMC43NzcgMTY4My4zNyAxMTAuMjI4QzE2ODIuMjcgMTA5LjY4IDE2ODAuOSAxMDkuMiAxNjc5LjI1IDEwOC43ODhDMTY3Ny43NCAxMDguMzc3IDE2NzYuMSAxMDguMTcxIDE2NzQuMzEgMTA4LjE3MUMxNjcxLjI5IDEwOC4xNzEgMTY2''@;'; put 'put ''OC40MSAxMDguNzg4IDE2NjUuNjcgMTEwLjAyMkMxNjYyLjkzIDExMS4yNTcgMTY2MC40NiAxMTIuOTcyIDE2NTguMjYgMTE1LjE2NkMxNjU2LjIxIDExNy4yMjQgMTY1NC41NiAxMTkuNjkzIDE2NTMuMzMgMTIyLjU3M0MxNjUyLjA5IDEyNS4zMTYgMTY1MS40NyAxMjguMTk3IDE2NTEuNDcg''@;'; put 'put ''MTMxLjIxNEwxNjUxLjA2IDE4NC4wOTFDMTY1MS4wNiAxODUuMTg4IDE2NTAuNzIgMTg2LjE0OCAxNjUwLjAzIDE4Ni45NzFDMTY0OS4zNSAxODcuNjU3IDE2NDguNDYgMTg4IDE2NDcuMzYgMTg4SDE2MzEuMTFDMTYzMC4wMSAxODggMTYyOS4wNSAxODcuNjU3IDE2MjguMjMgMTg2Ljk3MUMx''@;'; put 'put ''NjI3LjU0IDE4Ni4xNDggMTYyNy4yIDE4NS4xODggMTYyNy4yIDE4NC4wOTFWODkuMDM2NUMxNjI3LjIgODcuOTM5MSAxNjI3LjU0IDg3LjA0NzYgMTYyOC4yMyA4Ni4zNjE4QzE2MjkuMDUgODUuNTM4OCAxNjMwLjAxIDg1LjEyNzMgMTYzMS4xMSA4NS4xMjczSDE2NDcuMzZDMTY0OC40NiA4''@;'; put 'put ''NS4xMjczIDE2NDkuMzUgODUuNTM4OCAxNjUwLjAzIDg2LjM2MThDMTY1MC43MiA4Ny4wNDc2IDE2NTEuMDYgODcuOTM5MSAxNjUxLjA2IDg5LjAzNjVWOTQuNTkxNkMxNjU1LjA0IDkxLjcxMTEgMTY1OS4yOSA4OS4zNzk0IDE2NjMuODIgODcuNTk2MkMxNjY4LjM1IDg1LjY3NTkgMTY3My4y''@;'; put 'put ''MiA4NC43MTU4IDE2NzguNDMgODQuNzE1OEMxNjgzLjc4IDg0LjcxNTggMTY4OC40NCA4NS43NDQ1IDE2OTIuNDIgODcuODAyQzE2OTQuMzQgODkuMDM2NSAxNjk0Ljk2IDkwLjYxMzggMTY5NC4yNyA5Mi41MzQxTDE2ODguNTEgMTA4LjE3MVoiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVm''@;'; put 'put ''cz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDVfNyI+CjxyZWN0IHdpZHRoPSIxNjg5IiBoZWlnaHQ9IjI0MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8L3N2Zz4K'';'; put 'run;'; put '%sasjsout(SVG64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=dc-logo-svg; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''PHN2ZyB3aWR0aD0iNzAiIGhlaWdodD0iNzAiIHZpZXdCb3g9IjAgMCA3MCA3MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzEwMV84KSI+CjxwYXRoIGQ9Ik0zNy41OTkzIDE2LjYyMTJDMzguNTkxNiAx''@;'; put 'put ''Ni43NDE1IDM5LjU1MzggMTYuODMxNyA0MC41NDYxIDE2Ljk1MTlDNDIuOTIxNiAxNy4yODI3IDQ1LjIzNyAxNy43MzM3IDQ3LjQwMiAxOC44NDYzQzQ4LjAzMzQgMTkuMTc3MSA0OC42MzQ4IDE5LjUzNzkgNDkuMDg1OSAyMC4xMDkyQzQ5LjgwNzUgMjAuOTUxMiA0OS43Nzc0IDIxLjg1MzMg''@;'; put 'put ''NDkuMDU1OCAyMi42OTUyQzQ4LjMwNCAyMy41MzcxIDQ3LjM0MTggMjQuMDE4MyA0Ni4zMTk1IDI0LjQwOTJDNDMuOTQ0IDI1LjM0MTMgNDEuNDQ4MiAyNS43NjIzIDM4LjkyMjQgMjUuOTcyOEMzNC44MDI5IDI2LjMwMzUgMzAuNzQzNSAyNi4xNTMyIDI2LjcxNDIgMjUuMTkxQzI1LjM5MTEg''@;'; put 'put ''MjQuODkwMyAyNC4wOTgxIDI0LjQ2OTMgMjIuOTI1NCAyMy44MDc4QzIyLjQ3NDQgMjMuNTY3MiAyMi4wNTM0IDIzLjI2NjUgMjEuNjYyNSAyMi45MDU3QzIwLjU4IDIxLjg1MzMgMjAuNTggMjAuNzQwNyAyMS42OTI2IDE5Ljc0ODRDMjIuODk1NCAxOC42NjU5IDI0LjM2ODggMTguMTU0NyAy''@;'; put 'put ''NS44NzIyIDE3LjczMzdDMjcuOTc3MSAxNy4xMzI0IDMwLjExMiAxNi44MzE3IDMyLjI3NyAxNi42ODEzQzMyLjQ1NzUgMTYuNjgxMyAzMi42Njc5IDE2Ljc0MTUgMzIuODE4MyAxNi41OTExQzM0LjM4MTkgMTYuNjIxMiAzNi4wMDU2IDE2LjYyMTIgMzcuNTk5MyAxNi42MjEyWiIgZmlsbD0i''@;'; put 'put ''I0UwRTBFMCIvPgo8cGF0aCBkPSJNMjAuODUwNyA0MS4zMDgyQzIyLjc3NTEgNDMuNzczOCAyNS41MTE1IDQ0LjY3NTkgMjguMzM4IDQ1LjI3NzNDMzMuOTMwOSA0Ni40ODAxIDM5LjUyMzggNDYuMzI5NyA0NC45NjYzIDQ0LjQwNTNDNDYuNjUwMiA0My44MDM5IDQ4LjIxMzggNDIuOTkyIDQ5''@;'; put 'put ''LjMyNjQgNDEuNDg4NkM0OS41MDY4IDQxLjI0OCA0OS41OTcgNDEuMzY4MyA0OS42ODcyIDQxLjU0ODdDNDkuODY3NyA0MS45Mzk2IDQ5Ljk1NzkgNDIuMzMwNSA0OS45NTc5IDQyLjc1MTVDNDkuOTU3OSA0NC4yMjQ5IDQ5Ljk1NzkgNDUuNzI4NCA0OS45NTc5IDQ3LjIwMThDNDkuOTU3OSA0''@;'; put 'put ''OC4xNjQgNDkuNTA2OCA0OC45MTU3IDQ4Ljg0NTMgNDkuNTc3MkM0Ny40NjIxIDUwLjk2MDQgNDUuNzE4MSA1MS43MTIyIDQzLjg4MzggNTIuMjgzNUM0MC4xODUzIDUzLjQyNjEgMzYuMzk2NiA1My42NjY3IDMyLjU3NzcgNTMuMzk2MUMyOS43MjEyIDUzLjE4NTYgMjYuOTU0OCA1Mi42NDQz''@;'; put 'put ''IDI0LjMzODcgNTEuNDcxNkMyMy4yMjYxIDUwLjk2MDQgMjIuMjAzOCA1MC4zNTkxIDIxLjM5MTkgNDkuNDI2OUMyMC43NjA1IDQ4LjcwNTIgMjAuNDI5NyA0Ny44OTM0IDIwLjQyOTcgNDYuOTMxMUMyMC40NTk4IDQ1LjU3OCAyMC40Mjk3IDQ0LjIyNDkgMjAuNDI5NyA0Mi44NzE4QzIwLjQy''@;'; put 'put ''OTcgNDIuMzMwNSAyMC41MTk5IDQxLjgxOTMgMjAuODUwNyA0MS4zMDgyWiIgZmlsbD0iIzhFQzYzRiIvPgo8cGF0aCBkPSJNMjAuODgwNyAzMi4wMTY3QzIyLjQ3NDQgMzQuMTUxNiAyNC42OTk2IDM1LjA1MzcgMjcuMDc1IDM1LjY4NTJDMzIuNzU4MiAzNy4xODg2IDM4LjQ0MTMgMzcuMTU4''@;'; put 'put ''NiA0NC4wNjQzIDM1LjQ3NDdDNDUuOTI4NiAzNC45MzM0IDQ3LjY3MjYgMzQuMTIxNiA0OS4wMjU4IDMyLjY0ODJDNDkuMjA2MiAzMi40Njc3IDQ5LjMyNjUgMzIuMDQ2OCA0OS41MzY5IDMyLjEwNjlDNDkuODM3NiAzMi4xOTcxIDQ5LjgzNzYgMzIuNjE4MSA0OS45Mjc4IDMyLjk0ODhDNTAu''@;'; put 'put ''MDQ4MSAzMy40NiA0OS45ODggMzMuOTcxMiA0OS45ODggMzQuNDgyNEM0OS45ODggMzUuNTA0NyA0OS45NTc5IDM2LjQ5NyA0OS45ODggMzcuNTE5NEM1MC4wNDgxIDM4Ljc4MjMgNDkuNTM2OSAzOS43NzQ2IDQ4LjYwNDggNDAuNTg2NUM0Ny4xOTE1IDQxLjg0OTQgNDUuNDc3NiA0Mi42MDEx''@;'; put 'put ''IDQzLjY0MzMgNDMuMDgyMkMzNy40NzkxIDQ0LjczNjEgMzEuMzQ0OSA0NC43MDYgMjUuMzAwOSA0Mi42MDExQzIzLjgyNzUgNDIuMDkgMjIuNDc0NCA0MS4zNjgzIDIxLjM5MTkgNDAuMTk1NkMyMC43MzA0IDM5LjQ3MzkgMjAuMzk5NyAzOC42MzIgMjAuMzk5NyAzNy42Mzk3QzIwLjQyOTcg''@;'; put 'put ''MzYuMzE2NiAyMC4zOTk3IDM0Ljk2MzUgMjAuMzk5NyAzMy42NDA0QzIwLjQyOTcgMzMuMDk5MiAyMC41MTk5IDMyLjU1NzkgMjAuODgwNyAzMi4wMTY3WiIgZmlsbD0iI0UwRTBFMCIvPgo8cGF0aCBkPSJNMjAuODIwNyAyMy4wODYxQzIxLjI3MTcgMjQuNDA5MSAyMi4zNTQyIDI1LjAxMDUg''@;'; put 'put ''MjMuNDk2OSAyNS41NTE3QzI1LjU0MTYgMjYuNTE0IDI3LjczNjYgMjYuOTY1IDI5LjkzMTcgMjcuMjM1N0MzNC4yOTE4IDI3Ljc3NjkgMzguNjUxOSAyNy43MTY4IDQyLjk1MTggMjYuODE0N0M0NC42OTU4IDI2LjQ1MzkgNDYuMzc5NyAyNS45NzI3IDQ3LjkxMzIgMjUuMDEwNUM0OC43ODUz''@;'; put 'put ''IDI0LjQ2OTMgNDkuMjM2MyAyMy45NTgxIDQ5LjUzNyAyMy4xMTYxQzQ5LjgzNzcgMjMuNTM3MSA0OS45Mjc5IDIzLjk4ODIgNDkuOTI3OSAyNC40MzkyQzQ5LjkyNzkgMjUuOTQyNyA0OS45NTggMjcuNDE2MSA0OS45Mjc5IDI4LjkxOTVDNDkuODk3OCAzMC4xODI1IDQ5LjE3NjIgMzEuMDg0''@;'; put 'put ''NSA0OC4yNDQgMzEuODM2M0M0Ni41IDMzLjIxOTUgNDQuNDU1MyAzMy45NDExIDQyLjMyMDMgMzQuNDIyM0MzNi42NjczIDM1LjY1NTEgMzEuMDc0NCAzNS41NjQ5IDI1LjU3MTcgMzMuNzAwNkMyNC4xMjgzIDMzLjIxOTUgMjIuNzQ1MSAzMi41Mjc5IDIxLjYzMjYgMzEuNDQ1NEMyMC43OTA2''@;'; put 'put ''IDMwLjYzMzUgMjAuMzM5NiAyOS43MDE0IDIwLjM2OTYgMjguNDk4NkMyMC4zOTk3IDI3LjIwNTYgMjAuMzY5NiAyNS45MTI2IDIwLjM2OTYgMjQuNjE5NkMyMC40Mjk4IDI0LjA0ODMgMjAuNTIgMjMuNTY3MiAyMC44MjA3IDIzLjA4NjFaIiBmaWxsPSIjOEVDNjNGIi8+CjxwYXRoIGQ9Ik01''@;'; put 'put ''NS4zNDAzIDYzLjQzOTNDNjAuMjQxNyA2My43MDk5IDYyLjg1NzcgNTcuNjk2IDU5LjMwOTUgNTQuMjk4MUM1NS41ODA5IDUwLjcxOTkgNDkuNDQ2NyA1NC4wNTc2IDUwLjQwOSA1OS4xMDkzQzI4LjI0NzggNzMuMjQxOSAtMC4yNTgwMzQgNTIuMTAzMSA3Ljg2MDcxIDI2LjQyMzhMMi4zODgw''@;'; put 'put ''OCAyMi43NTUzQy05LjkxMDMzIDU1LjQ0MDggMjcuOTQ3MSA4My4wNzQ2IDU1LjM0MDMgNjMuNDM5M1pNNTMuNzc2NyA1Ni4zNzI5QzU2LjA2MiA1My45OTc0IDU5LjcwMDQgNTcuMzA1MSA1Ny41NjU1IDU5LjgwMDlDNTUuMzEwMyA2Mi40MTY5IDUxLjM0MTEgNTguODk4OCA1My43NzY3IDU2''@;'; put 'put ''LjM3MjlaIiBmaWxsPSIjRTBFMEUwIi8+CjxwYXRoIGQ9Ik0xMC42MjcyIDE1LjI2ODFDMTQuMTQ1MyAxOC42MzU4IDE5Ljk0ODcgMTUuODY5NCAxOS42MTc5IDExLjA1ODNDNDEuNzQ5IC0zLjE5NDYxIDcwLjQwNTIgMTcuOTE0MiA2Mi4yODY1IDQzLjY4MzZMNjcuNzU5MSA0Ny4zNTIxQzc5''@;'; put 'put ''LjY5NjcgMTUuNTk4OCA0My40NjMgLTEyLjk5NzIgMTUuNDM4MyA2LjIxNzE1QzEwLjE3NjEgNS4xMzQ2NSA2Ljc3ODI3IDExLjU2OTUgMTAuNjI3MiAxNS4yNjgxWk0xNi4xNTk5IDEzLjE5MzNDMTMuODE0NSAxNS42Mjg5IDEwLjExNiAxMi4wODA3IDEyLjQ2MTQgOS42NDUwN0MxNC44MDY4''@;'; put 'put ''IDcuMjA5NDQgMTguNTA1NCAxMC43NTc2IDE2LjE1OTkgMTMuMTkzM1oiIGZpbGw9IiM4RUM2M0YiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMDFfOCI+CjxyZWN0IHdpZHRoPSI3MCIgaGVpZ2h0PSI3MCIgZmlsbD0id2hpdGUiLz4KPC9jbGlwUGF0aD4KPC9kZWZzPgo8''@;'; put 'put ''L3N2Zz4K'';'; put 'run;'; put '%sasjsout(SVG64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=favicon-ico; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''iVBORw0KGgoAAAANSUhEUgAAApgAAAJ6CAYAAACMvTJAAAAMFGlDQ1BJQ0MgUHJvZmlsZQAASImVVwdUk8kWnr+kEBJaIAJSQm+CFOnSe0c62AhJgFAiJAQVO7Ko4FpQEQFR0RUQRdcCyKIidmUR7P1hQWVlXSzYUHmTArq+dt49Z/75cufeO9+d3JkzA4CiNSsnJwtVAiCbnyeICvBmJiQmMUmP''@;'; put 'put ''AAY0AB0YAiUWW5jjFRkZCqCM9X+XdzcAIu6vWopj/ev4fxVlDlfIBgCJhDiFI2RnQ3wYAFydnSPIA4DQBfUGc/NyxHgIYlUBJAgAERfjNClWF+MUKZ4ksYmJ8oHYEwAylcUSpAGgIObNzGenwTgKYo7WfA6PD3E1xO7sdBYH4nsQT8rOngOxIhli05Tv4qT9LWbKeEwWK20cS3ORCNmXJ8zJYs3/''@;'; put 'put ''P5fjf0t2lmhsDn3YqOmCwChxznDd6jPnhIgxFeJ2fkp4BMQqEJ/ncST2YnwnXRQYK7MfZAt94JoBBgAo4LB8QyDWgpghyoz1kmFblkDiC+3RcF5eUIwMpwjmRMnio/n8rPBQWZyV6dygMVzDFfpFj9mk8vyDIIaVhh4uSI+Jl/JET+fz4sIhVoC4R5gZHSLzfVCQ7hM+ZiMQRYk5G0L8NlXgHyW1''@;'; put 'put ''wdSzhWN5YVZslmQuWAuYZ156TKDUF0vgChNCxzhwuL5+Ug4Yh8uPlXHDYHV5R8l8i3OyImX2WA03KyBKus7YAWF+9JjvlTxYYNJ1wB5lsIIjZXO9y8mLjJFyw1EQCnyAL2ACEWwpYA7IALzuwZZB+Es64g9YQADSABdYyjRjHvGSET78RoMC8CdEXCAc9/OWjHJBPtR/GddKv5YgVTKaL/HIBE8h''@;'; put 'put ''zsY1cXfcFQ+FX0/YbHEn3HnMj6k4NivRj+hLDCT6E83GebAh6yzYBID3b3QhsOfC7MRc+GM5fItHeEroJTwiXCf0EW6DOPBEEkVmNZtXKPiBOROEgT4YzV+WXcr32eHGkLU97o27Qf6QO87ANYElPgVm4oV7wNzsofZ7hqJxbt/W8sf5xKy/z0emVzBXsJexSBn/Z3zGrX6M4vPdGnFgH/KjJbYS''@;'; put 'put ''O4Sdw05iF7B2rAUwsRNYK9aFHRPj8Up4IqmEsdmiJNwyYRzemI11o/WA9ecf5mbJ5hevlzCPOy9PvBl85uTMF/DS0vOYXvA05jKD+GyrSUxbaxsnAMRnu/ToeMOQnNkI4+I3XW4HAM4lUJn2TccyAODoUwDo777pDF7Dcl8HwLEetkiQL9WJj2NAABSgCHeFBtABBsAU5mMLHIAr8AR+IBhEgBiQ''@;'; put 'put ''CGbBFU8H2ZDzXLAQLAPFoBSsA5tAJdgGdoJ6sA8cBC2gHZwEZ8El0AOug7uwLvrBCzAE3oERBEFICA2hIxqILmKEWCC2iBPijvghoUgUkogkI2kIHxEhC5HlSClShlQiO5AG5FfkKHISuYD0IreRh8gA8hr5hGIoFVVFtVFjdDLqhHqhIWgMOhNNQ3PRArQIXYNWoLXoXrQZPYleQq+jfegLdBgD''@;'; put 'put ''mDzGwPQwS8wJ88EisCQsFRNgi7ESrByrxZqwNvg/X8X6sEHsI07E6TgTt4S1GYjH4mw8F1+Mr8Yr8Xq8GT+NX8Uf4kP4VwKNoEWwILgQgggJhDTCXEIxoZywm3CEcAbum37COyKRyCCaEB3hvkwkZhAXEFcTtxL3EzuIvcTHxGESiaRBsiC5kSJILFIeqZi0hbSXdIJ0hdRP+kCWJ+uSbcn+5CQy''@;'; put 'put ''n1xILifvIR8nXyE/I4/IKckZybnIRchx5ObLrZXbJdcmd1muX26EokwxobhRYigZlGWUCkoT5QzlHuWNvLy8vryz/DR5nvxS+Qr5A/Ln5R/Kf6SqUM2pPtQZVBF1DbWO2kG9TX1Do9GMaZ60JFoebQ2tgXaK9oD2QYGuYKUQpMBRWKJQpdCscEXhpaKcopGil+IsxQLFcsVDipcVB5XklIyVfJRY''@;'; put 'put ''SouVqpSOKt1UGlamK9soRyhnK69W3qN8Qfm5CknFWMVPhaNSpLJT5ZTKYzpGN6D70Nn05fRd9DP0flWiqolqkGqGaqnqPtVu1SE1FbUpanFq89Sq1I6p9TEwhjEjiJHFWMs4yLjB+DRBe4LXBO6EVROaJlyZ8F59orqnOle9RH2/+nX1TxpMDT+NTI31Gi0a9zVxTXPNaZpzNWs0z2gOTlSd6DqR''@;'; put 'put ''PbFk4sGJd7RQLXOtKK0FWju1urSGtXW0A7RztLdon9Ie1GHoeOpk6GzUOa4zoEvXddfl6W7UPaH7B1ON6cXMYlYwTzOH9LT0AvVEejv0uvVG9E30Y/UL9ffr3zegGDgZpBpsNOg0GDLUNQwzXGjYaHjHSM7IySjdaLPROaP3xibG8cYrjFuMn5uomwSZFJg0mtwzpZl6mOaa1ppeMyOaOZllmm01''@;'; put 'put ''6zFHze3N082rzC9boBYOFjyLrRa9kwiTnCfxJ9VOumlJtfSyzLdstHxoxbAKtSq0arF6OdlwctLk9ZPPTf5qbW+dZb3L+q6Nik2wTaFNm81rW3Nbtm2V7TU7mp2/3RK7VrtXUyymcKfUTLllT7cPs19h32n/xcHRQeDQ5DDgaOiY7FjteNNJ1SnSabXTeWeCs7fzEud2548uDi55Lgdd/nK1dM10''@;'; put 'put ''3eP6fKrJVO7UXVMfu+m7sdx2uPW5M92T3be793noebA8aj0eeRp4cjx3ez7zMvPK8Nrr9dLb2lvgfcT7vY+LzyKfDl/MN8C3xLfbT8Uv1q/S74G/vn+af6P/UIB9wIKAjkBCYEjg+sCbQdpB7KCGoKFgx+BFwadDqCHRIZUhj0LNQwWhbWFoWHDYhrB74Ubh/PCWCBARFLEh4n6kSWRu5G/TiNMi''@;'; put 'put ''p1VNexplE7Uw6lw0PXp29J7odzHeMWtj7saaxopiO+MU42bENcS9j/eNL4vvS5icsCjhUqJmIi+xNYmUFJe0O2l4ut/0TdP7Z9jPKJ5xY6bJzHkzL8zSnJU169hsxdms2YeSCcnxyXuSP7MiWLWs4ZSglOqUIbYPezP7BceTs5EzwHXjlnGfpbqllqU+T3NL25A2kO6RXp4+yPPhVfJeZQRmbMt4''@;'; put 'put ''nxmRWZc5mhWftT+bnJ2cfZSvws/kn56jM2fenN4ci5zinL5cl9xNuUOCEMFuISKcKWzNU4XXnC6Rqegn0cN89/yq/A9z4+Yemqc8jz+va775/FXznxX4F/yyAF/AXtC5UG/hsoUPF3kt2rEYWZyyuHOJwZKiJf1LA5bWL6Msy1z2e6F1YVnh2+Xxy9uKtIuWFj3+KeCnxmKFYkHxzRWuK7atxFfy''@;'; put 'put ''Vnavslu1ZdXXEk7JxVLr0vLSz6vZqy/+bPNzxc+ja1LXdK91WFuzjriOv+7Geo/19WXKZQVljzeEbWjeyNxYsvHtptmbLpRPKd+2mbJZtLmvIrSidYvhlnVbPlemV16v8q7aX61Vvar6/VbO1is1njVN27S3lW77tJ23/daOgB3Ntca15TuJO/N3Pt0Vt+vcL06/NOzW3F26+0sdv66vPqr+dINj''@;'; put 'put ''Q8MerT1rG9FGUePA3hl7e/b57mttsmzasZ+xv/QAOCA68Mevyb/eOBhysPOQ06Gmw0aHq4/Qj5Q0I83zm4da0lv6WhNbe48GH+1sc2078pvVb3Xteu1Vx9SOrT1OOV50fPREwYnhjpyOwZNpJx93zu68eyrh1LXT0053nwk5c/6s/9lT57zOnTjvdr79gsuFoxedLrZccrjU3GXfdeR3+9+PdDt0''@;'; put 'put ''N192vNza49zT1ju19/gVjysnr/pePXst6Nql6+HXe2/E3rh1c8bNvlucW89vZ91+dSf/zsjdpfcI90ruK90vf6D1oPYfZv/Y3+fQd+yh78OuR9GP7j5mP37xRPjkc3/RU9rT8me6zxqe2z5vH/Af6Plj+h/9L3JejAwW/6n8Z/VL05eH//L8q2soYaj/leDV6OvVbzTe1L2d8rZzOHL4wbvsdyPv''@;'; put 'put ''Sz5ofKj/6PTx3Kf4T89G5n4mfa74Yval7WvI13uj2aOjOSwBS3IVwGBDU1MBeF0HAC0R3h16AKAoSN9eEkGk70UJAv8JS99nEnEAoM4TgNilAITCO0oNbEYQU2EvvnrHeALUzm68yUSYamcrjUWFLxjCh9HRN9oAkNoA+CIYHR3ZOjr6ZRckexuAjlzpm08sRHi/324mRt2XRobAD/JPCotuA2JA''@;'; put 'put ''n4YAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAGdaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA1LjQuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8y''@;'; put 'put ''Mi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPGV4aWY6UGl4ZWxYRGltZW5zaW9uPjY2NDwvZXhpZjpQaXhlbFhEaW1lbnNp''@;'; put 'put ''b24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj42MzQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KSHKtHgAAABxpRE9UAAAAAgAAAAAAAAE9AAAAKAAAAT0AAAE9AACKlRxL/UIAAEAASURB''@;'; put 'put ''VHgB7L0HgNxmeqb5FVChIzuRTTZzzlESRUVSFCUqzIwmjyZnx71zWO96b89h7b31ede+27O9DjOe8eSo0USlURxpGESKYhBzzqFJdrNzqADg3g/FoppUk6zuQlWjUC+kZmXgx/OjUC++GFq25v2OcCEBEiABEiABEiABEiABjwiEKDA9IsnVkAAJkAAJkAAJkAAJuAQoMHkgkAAJkAAJkAAJkAAJ''@;'; put 'put ''eEqAAtNTnFwZCZAACZAACZAACZAABSaPARIgARIgARIgARIgAU8JUGB6ipMrIwESIAESIAESIAESoMDkMUACJEACJEACJEACJOApAQpMT3FyZSRAAiRAAiRAAiRAAhSYPAZIgARIgARIgARIgAQ8JUCB6SlOrowESIAESIAESIAESIACk8cACZAACZAACZAACZCApwQoMD3FyZWRAAmQAAmQAAmQ''@;'; put 'put ''AAlQYPIYIAESIAESIAESIAES8JQABaanOLkyEiABEiABEiABEiABCkweAyRAAiRAAiRAAiRAAp4SoMD0FCdXRgIkQAIkQAIkQAIkQIHJY4AESIAESIAESIAESMBTAhSYnuLkykiABEiABEiABEiABCgweQyQAAmQAAmQAAmQAAl4SoAC01OcXBkJkAAJkAAJkAAJkAAFJo8BEiABEiABEiABEiAB''@;'; put 'put ''TwlQYHqKkysjARIgARIgARIgARKgwOQxQAIkQAIkQAIkQAIk4CkBCkxPcXJlJEACJEACJEACJEACFJg8BkiABAJBwHEcMc2QmGFbwtGQhCM27ockEnMkHBOJRHGL52OVtlRW2VJW5UhZpT7W53G/PCTRCkdC+O+GC162EiL9vY4k4yGJ9+OvRx+HpKcTt90hSeA5Ky6SSuI+3qvvTyUMsZL4DJ6z''@;'; put 'put ''UrqFm2znhoPgiyRAAiTgbwIUmP6eH46OBEgAOiwCsRgpE4mVO64grKjCfQjDimo8rtDnRaJ4LVrmuILSjAhEo4hpiBhh/BkG/iDp8E9IHLHtNFbbdtw70KaiAhUvZbdgTFgdVog7+r/7l34yvQUR27Lxh1tszMF2kokQBCfEJv5SEKb9EKAJiNI4/vp7DOntdiBUcb/r8nN9+j5DUimIXt0AFxIg''@;'; put 'put ''ARIoIgIUmEU0WRwqCQSVQCjkSLlaFGFBrKh1ZFSDI1U16fsV+jwEZQRWyDCskZGwIWYEMi6juSAKIeH0H1ckqk7URUXdFb145U76tYL9e3mMeuPeNdJPGHqL/43LAlXHo0N0LAeC0oYYtcVSyyj+etU62mVId4dIT7uBPzwHS2lPZ0iSeN1x0uvUdXAhARIgAb8QoMD0y0xwHCQQeAJqXRRYHW2p''@;'; put 'put ''qheprrelpt6RStxW1YorLqNwU0diEJBwdeuiVkUHwtG1NEIwXjY8ptVYUHmltSesrek7KkYzQlRFqA2LZjKekr5uQ/p6HAhPU7pbRbouhaSzNS1A1U2fhBv+pu7+oDLkfpEACYw4AQrMEZ8CDoAEgkfAhFtahaRaIkc12lI7xpHqBkuqa+DOhkUyVhZ24yPThkeISFju1PLoCsmRsjYWyzRcNlhe''@;'; put 'put ''EZ5m2hKq2Ky4Lf39DuJARbph6Wxvgei8gFv86WMVpY59eQXFsr8cJwmQQFESoMAsymnjoEnAHwTUwhhBvGNlLayREJH14yAqxzpSOxqJNDVIoIFFUt3Zqh4zlkiKyDzOnWpHuN3VABxCgpMbD4r7qbiFWE+Izg5HOi4Y0nbelLaLAvEJiydc7bZF0ZnHWeGqSaAkCVBgluS0c6dJYHgEDI2VRGJN''@;'; put 'put ''TaMjDeNtaWiCoMT9asRLRitMJNVArMAsqRZJ5LjAJElz5PBIe/wpFZwqPDE/IVg89b4FV3tfry29bQ7EpiGtZwy51GxAgGrSEWM7PZ4Bro4ESo4ABWbJTTl3mASyJ2AY6tqGmISQHD0RgnICXN6Imyyv1jJABvQjxCSECvQkxWT2WP3zTgjO8GXRqZbPVMKCGx1WTrjW284ZcvEUROc5uNcvocQS''@;'; put 'put ''Xev+mTeOhASKgAAFZhFMEodIAoUiYJrpDO6GCbY0TlFBaSMZR7O7w9AfaTe3pdnZapmkcbJQ01K47ailE4LTtXSmIxtgzbSksw1CExbOC8dD0noWVk4kFdmWW6ipcGPjlkiABIqKAAVmUU0XB0sC3hIIwUJZhfjJMRMdaZzqyGgIylGjYaGshB/VdXUjfk/FJF3d3oIvprUNtHIiL70PgrPrkrgu''@;'; put 'put ''9fPHDWk5bbgC1EHNTy4kQAIkkCFAgZkhwVsSKAkC6cLkGj85biqslPirHWMj49uE5QqSEiIhpVXIr9QDKgko3MmhEMBxEtaC9e41iNbptKTjvMgFuNObj4Wk5YyJgvHIVqeFeyhU+V4SCBwBCszATSl3iASuJqBWyuo6WCinODJ+puXGUlbVaXccLVmD0jZaIogWyquh8VH2BNTCibR1vUDRxCHN''@;'; put 'put ''VG89G5LmI6ach0u9HQlEzFLPHiffSQJBIUCBGZSZ5H6QwAACZlhLBjkybrolTbNsqUctysoaFKeE21sLdWscJWMoBwDjXW8IZGI4VXAiaSgO6+YlZKU3Q2g2HzZh3Uz3aUekpzfb41pIgAR8S4AC07dTw4GRwNAIRNFGsX6CJRNm2tI0A7UoUT6orNx0M73VskQr5dB48t0eEBhg3Uyh/WUnug2p''@;'; put 'put ''G/2Mis0T6l6H0GSrSw9AcxUk4D8CFJj+mxOOiASyIqBFzmNlIg0oHzRxliXjYamsGYNWi1HUMITrW3ta00qZFUq+qRAEoCU1O91AAXgLsb49bbacg8g8cwCudIhOt8sQxWYhZoLbIIGCEKDALAhmboQEvCNgRhwZo5bKOY4rLGsaL4tKTdDR6uZMrvAONteUNwIG3OgmxKbmlHWh2PuF4yKnDkJs''@;'; put 'put ''InaztwebpdjMG3uumAQKQYACsxCUuQ0SyJGAgfqUdYipnDQbwnK2dtBBi8YyJOlQVOZIlh/3A4EQxKYmCmlocNclWDaPGXJ6ryHnjpuS6NMRMmbTD/PEMZDAUAhQYA6FFt9LAgUkoIXNq2odCEpLpsyH1XKSjXaMSNWl+7uAs8BNFZpAxrJpIcRDOwqdOWjIyX3oKoRC71aCQrPQ88HtkcBwCVBg''@;'; put 'put ''DpccP0cCeSDgxlWWizRNs2TyAhtlhWypqjHh9XYQUwnzDssJ5YE6V+lLAtCSrtiEZTMZt6UFpY9O7Ydlc78p7RCejkWx6ct546BI4DIBCkweCiTgAwLqAteC51MX2jJhnpYVciQcNhBTCWnpNvr2wSA5BBIYKQLQkvp9EPzf3+Wg7JHI8V2mnD1sSH+vCk2KzZGaGm6XBK5HgALzemT4PAnkmYBa''@;'; put 'put ''K8sqHNSpdGTGopQ0ThOpqEIcGuIqLSbr5Jk+V1+sBNxe6UgO0koJHS0O3OchObHHlEvokW7Rqlms08pxB5AABWYAJ5W75G8C2lmnZowjUxdZMnW+JbVjUboF5VtYq9Lf88bR+Y+Aljwy4UKP99pyHiWPju40ELMZln7NQqdV038TxhGVFAEKzJKabu7sSBIIwQ3eiESdOStSMnEmrJfV6SxwWitH''@;'; put 'put ''cla47UAQ0ILul62a7RccOYEMdHWht51nT/RAzC93oigJUGAW5bRx0MVCwE3agRt84hxbZt1iSeNkR6IxxlYWy/xxnMVHIGPV7O9x5PiekBzZhtqap/RijnGaxTebHHExE6DALObZ49j9S0BLDNU4Mg1u8BnLbNSwRH5CyJBkEgGWLITu33njyAJDQGM1IxFD4nFLLsB9fnir6RZyj/fCeR6i2AzM''@;'; put 'put ''RHNHfEuAAtO3U8OBFSMBrV1ZN9aWGbfYMm2hJdUNJmIrbbG1xBAXEiCBwhOAlowgA11LfV06J3L4LVOOvRWSng6kpDNOs/DzwS2WDAEKzJKZau5oPglo4s6YyYivvM2SSXNtZIObkoSwZImhfFLnuklgaARc9znEZmeL5cZoHt5uSPsFjdOkRXNoJPluErg5AQrMmzPiO0jgugS0fuW4GZbMXY4W''@;'; put 'put ''jkjciZWjtV0S9VNYEP26zPgCCYw0AW1NqVbNnk5LTqJT0MHNprSgU5BjU2iO9Nxw+8EhQIEZnLnknhSQgAlhOXGOJXPusKVpqiXhSJjxlQXkz02RgCcEEKcZRZxmX68lZw+FZP8bYTl/3EAtWgpNT/hyJSVNgAKzpKefOz9UAmbYlsnoCz5vhSVjpkBYmhSWQ2XI95OA7whonGYUYS1ICDp7JCQH''@;'; put 'put ''NoflDLoEUWj6bqY4oCIiQIFZRJPFoY4cgbSwtGXuClvGTnXcLFRN3mFG+MjNCbdMAp4TUKEZMSWVTKEdZVj2bwrJ6QNI1KNF03PUXGHwCVBgBn+OuYc5EDBNWyaiN/j8OwcIS42x5EICJBBcApeFpjZBaD4Wkn2vG3IKQpMWzeBOOffMewIUmN4z5RoDQECTdybOtGT+PbaMmwaLpbZypLAMwMxy''@;'; put 'put ''F0hgCAQgNMOwaFpWSs4dMmXvJkPOHqbQHAJBvrWECVBglvDkc9ffSUDbOTZNsWXePSlkhdtu8k6KxdHfCYrPkEApEbgsNNV1fvqQIfs3huUckoHYHaiUDgLu61AJUGAOlRjfH0gCBupY1jfZsuDelEyeq+0cEfBPYRnIueZOkcCwCVx2nSeQDHTqQEj2rtfyRrBosrzRsJHyg8ElQIEZ3LnlnmVB''@;'; put 'put ''QDvGVY+GsLwrJdOWoEB6BepYJtjOMQt0fAsJlC4BnDeiyDrv67FRsF1kz+th6WDB9tI9HrjngxKgwBwUC58MPgFHyqscmYNyQ3NQJL26lgXSgz/n3EMS8JjA5Tqa3SjYfuhNuM5RR7OnHeqTLSg9Bs3VFSMBCsxinDWOOScCkYgjU5elZCEywxuaDLZ0zIkmP0wCJJDpDNR20ZZ9KG10ZFtY+ntD''@;'; put 'put ''bjkz0iGBUiVAgVmqM1+C+62Z4ePR1nHRKiTyTLPdbo52yilBEtxlEiCBfBAw0ILSRAvKCydt2bXOlFP7kIGeUosmFxIoPQIUmKU35yW3x6GQIzWNtixamZRpC1F2BLFTKY2z5EICJEACeSBgov2kbdtyen9Idr8Wlovoc85EoDyA5ip9TYAC09fTw8HlQsBxHKmoEpm9IiXz7rCkahQTeHLhyc+S''@;'; put 'put ''AAkMgQAMl9oVqK/PkiNbDdm70ZSuNgMroEVzCBT51iImQIFZxJPHoV+fgBl2ZPI8SxbfZ8no8Yak0JHDsegOvz4xvkICJJAXApcTgdouWrJnvSFHtkckmaDIzAtrrtRXBCgwfTUdHEyuBNQdXj/OlsWrbZk83xIjZCAGiq0dc+XKz5MACeRGQOMz9e/sEZGdvzJZqD03nPx0ERCgwCyCSeIQb05A''@;'; put 'put ''3eFllSJz1R1+J93hNyfGd5AACYwEAY0B10Lth+E2370+LN1tas2kRXMk5oLbzC8BCsz88uXaC0DAzQ5HW8clq1Mybgrd4QVAzk2QAAnkQgChmFHEZ7Zd0GxzuM13hMVKUmTmgpSf9R8BCkz/zQlHlDUBR6rqHJQdSsmspbaYUbjDk3SHZ42PbyQBEhhRAuoy125iJw/Abf5KBG0nQ+I4FJojOinc''@;'; put 'put ''uGcEKDA9Q8kVFZKAGbZl6mJYLZHEUz/WcF1OwhyeQk4Bt0UCJOARgXAM2eZdlux93ZR9aDuZ6KPI9AgtVzOCBCgwRxA+Nz10Anq1XzPGkqX3Q2AugrUSotJmdvjQQfITJEACviKg3YDCpoHkH1t2vBRmEpCvZoeDGQ4BCszhUONnRoSAiRaPs27RTjwpqalnTcsRmQRulARIIK8EwijSHo/bcvAN''@;'; put 'put ''Q/agG1BPl8GWk3klzpXniwAFZr7Icr2eEXBLD421ZemDFmpbwmhpO7RaekaXKyIBEvAdgcu1M5vRcnL7iyhpdNTEOY9uc9/NEwd0QwIUmDfEwxe9IKACMYzC52ZYxIg6KMiRPlGqUEyhT6+N7Ekrpd7ud55ATbx/1rIUYi1TSOgJSxLlPbiQAAmQQCkQ0JaTyYQjBzZnrJmaFPTO82QpsOA+Fh8B''@;'; put 'put ''CszimzMfj9iRylr0/R5tS22j9v9Glne1LVG0aywrg7iEiztk4A/Fz1VLhhBCaaHDTjIBl1CfSH9XSLo6DOlqEem4COGJ1xfcjVjL+bBYYq/ZicfHU8+hkQAJ5IfAZWvmeVgzt72I2Myj6GtOa2Z+WHOtnhKgwPQUZ+mtLFpmy+iJtjTNsGTsFJFRDSh4XoVg9bD23H3bne0meOMf93YAJvdaXPUm''@;'; put 'put ''7hiGxhrph0SSKQslh9DLN3a5E8+1HxywDt4lgaESuMoIdPmBeyzqiq7cuclaBx7PKPR/ZRn4/JUneYcEciOg1sxEwpYDGw3ZtT4i8d5sD9TctstPk8BwCVBgDpdcCX/OMEUap6RkynxbJs52pLpeRAPTNZs7pRndcH3nurg60/0n1zXx80En4P7MwsqjC65R8A9a8qlKTBvK3edV/zn6HyIsbJjG''@;'; put 'put ''bbQPtS0cs3jBsWEtx3Fr41at5LbWIbzJIaxGeC3w795ie2qZN3S7JuqxYhAGLrBC+J5oOEh6fFilrlPH4W7THVD6q6KPb7I9dyf4DwngGIvgXHv2iCNbnzel5TSOYRy3XEjAjwQoMP04Kz4dU7TclikLLZl9K6yW421YFxETicLmdF37dMICMqy0QIN4U8GoVu6McIQosyAWk8i41RjeOGoHpuIh''@;'; put 'put ''3DrS3yuoJYjQix48j+cSsPYk+/FcHJ9BSEYqhYuhBGJ/ITjVUu4gBsO9LsI67SzCfF2LOwSkKkYznB6bhoBEEGdsRnDBFcNfFBb4Mlj08RetwB/CRGIVCBep1Pvpx5EY4pNjKhqwDl0PVuxqTR2PCmGNDdGteHDRll4T/w0CAW032d9tyVu/NhGfaeJYxpeCCwn4jAAFps8mxI/DiZZZKA9ky5wV''@;'; put 'put ''ttShqLmNHzsLFqCbWXn8uC8ck38JuJ5qWGhMtQhqhxNXQDoQhRCREId9PRCOiNPt6dA/Q3o7Q9Lbhdjd7hAEZVpAppAwZkNspmMt/Luvhlo8kfgWU6FZrqJTpHwUYpjxV1GTvtX7KkzLIEo1VCQMAeooJFcEqwUWd9L/+3dHObK8EdDviH5XTuwTWDPD0n4RIhPHAxcS8AsBCky/zIQPx6Fuv2mL''@;'; put 'put ''LVm80paG8WrtUdciz2A+nKqiGlLGZayu5BBEU0ZIxvtTEodY7IFw7LhgSMclke4WU7rbVVymrZBqqfS7ePRqMtRiG47ZUo4kuSokz2kC3Sgk0FXX6WMbVRVgES2DyID1U5lk3P9q7aTL3atZ8P96IugC1H7Rkm0vmHJyH3qaozIHFxLwAwEKTD/Mgu/G4Ej9OFtueTAlk7TuJMZnJyksfTdNRTCg''@;'; put 'put ''a8WkKp8UEhXUha2WyI6WkLRdCEknqgZ0tqhVEglecYMC6SZzayL+s0ItnhCdtWNQsWEc/hosiE9YPKu1aoOJUAKITjgaUrgwFFg7+Q2+CdQiflljfh3EU+zdZMquX6HtJC7IWM6oiCc0IEOnwAzIRHq1GyHDlnl32LL4viR+wMKIacsiIM2rjXM9RU/AFZSXW95p/VONdezvtaX7kiFtEJGtZwxp''@;'; put 'put ''P49yVK1wa+NH0GK5FQ/nPO1uV+tmLRoT1EN06m3NaJEKiM4o3OyaAOVgTjR2VWt/UXR6iH+kV4UvXxSxmWeQAPTmLw0kAJm4UKM1c6SnpZS3T4FZyrM/YN/VvlGF2K/lj6ZkxmK1euAZjfHiQgI3IKA/X24smFuWynETbrphheyAiGyBmLx0FsKyGS7ubtNNqLnBqvhSPgjAYhxDfGdVHcJcmhxp''@;'; put 'put ''QEmxBngnqhs07lNj+C7HVKuVk4IzHzNQ8HVqAlBvpy1bXzLk2A4YCRCXzIUERoIABeZIUPfbNmFpapxky13vs6RhgiZL0Grptynyy3jcn6rLFkoNntQMbo2RbD0bkgsnDdwidhLxk5rRzcWfBExkv1fUWq6Fc8zkdEUIbYxQVmWIaaqrFRZOCk5/Tl6WozLwHdXv5wG4zHfAZd6L5Di6zLOEx7d5''@;'; put 'put ''RoAC0zOUxbkidWNORj3LOx9LIYsVLkvEx3EhgYEEtCyQCg+9TSEWt6fTkfZzITl33ICoRBzlRRMlgSgoBzIrpvuamF4Jt7paOMdMsWTMZEfqxtjIXtc5h4XTrRnKGM5imlN3rJjXjMt8y7Ome/FHl3nRzWJRD5gCs6inL7fBa5b4zFtTcsejlphRLe9Cl3huRIPxaVcqagZzGDFc+K+/N+VaJZsh''@;'; put 'put ''KM8fxw/VGS0PRItIMGb7nXuhFk51qY+BV6NpOiycuK2qD0GspJOG1LqpyUNcioOAusy72y2UMorI8d3aGY0Xg8Uxc8U/SgrM4p/DYe2BistZt1ly57tR90UD/xlvOSyOQfmQ/uRkYiltCAi1UraeCsmZo6Y0Hwu55YLQvZNLCRKIlaeThZpm2DJuakrqmxC/WYEsdZg+U3pQMHbT90eFusy1g9Tu''@;'; put 'put ''9cgyfzWM2rIUmb6ftAAMkAIzAJM41F3IWC7veg9+HLR+HmKuuJQegbSoRNwdalFqUldXqy0X4fI+fcB04ym722mlLL2j4sZ7rO0xR9U7Mg6WzfGzYN2cYKM4PDoQIYQilaTYvDG9EX4VhoQIkvGO77Vly7Nh6URlB1TuH+FBcfNBJkCBGeTZHWTfNOZyygJb7v1gUgwUaKblchBIAX7KFZUaUwn3''@;'; put 'put ''t4rKbojKc8cMOX3QkIsn0vXzArz73DVPCaTrcI6basnEOY6MRfxmZQ36sFNsekrZ65VpYfbWs7Zsetp0Q14c9jL3GjHXd5kABWYpHQoQl2MnOXL/J+MoXaLB+7RclsL0uzaKyzGV6v7uaHPkAuIpT+6FqDxJUVkKx0Ah9rGyxpax0yyZNEBsapKQRTd6IfAPaRtmxEAdWlveRPefI1vDaP9LS+aQ''@;'; put 'put ''APLNWRGgwMwKU/G/SZM1RiFTdM2nU1LXxGzx4p/Rm++BZgebl+tTakzlRZQROr43JM2Iq+zthOLkQgJ5IqDF3sfPdCA2kzJ6CiydVZowph3BkCCUp21ytUMjoDHX2jJr16uGvPVahMk/Q8PHd2dBgAIzC0hBeEsk4sg9H0rI9KUG61wGYUKvsw9qhwjBRWmERRL9trSeFjm535BT6FHc2UpReR1s''@;'; put 'put ''fDpPBDQkR/unT5pny+R5joxusiVcpt4TaBvNRs/TdrnaLAnghBFBlvnhbSJvPIMLz27GXWdJjm/LggAFZhaQiv0tIdOWBXdZcvu7UMeQrR+LfToHHX/GWmkjYauzzZYz+005tgexVqdZlmRQYHyy4ARMXOSOmaB1d5Myaa4j1Sh9pNnNllo1qTQLPh8DNxhB7/rmo7Zs+ElE2tHSFZepA1/mfRIY''@;'; put 'put ''FgEKzGFhK6IPwYIwZoIlD34uhStVZowX0czddKjuzwAyQzVZK9HjyPlTgjp3ppsF3oc6lVxIwK8EyqscmTgrJVMWatwm2lmWw6qJJHRaNUduxsJI/ulssWT9T8Ny/miYon/kpiIwW6bADMxUDr4jkZgtqz+eRJYnyojQejk4pCJ7VqWjgSB9/QXoanfkNKyVR3cY0oI2jbZFYVlk01nSwzVwAVyH''@;'; put 'put ''UkfTITQnzUvJqAaEd+CiyUL3IFo1C39o6MVqsldkMzr/HN1hMvmn8FMQqC1SYAZqOq/eGa13Oef2FHqMj6xr3LW0wRWmrQa1OPOVnrj4BdGOIDZu1bXLgKyr5+/aR2k3eLq8UOsZR47tNOUEMsF72hlbeS0rPi4+AuXVSAqabcm0pZY0TtbYwLTQZCH3ws6lm/yD8/FbSP7ZieQfXrQWln+QtkaB''@;'; put 'put ''GaTZHLAvmjVejbIhj/xGQirqDHEKXJJIxZDGV2kP6wQsp71d6GHdJRLvgTu3HyIT/0XLbYlWog9ytYi6zGJlKJeB2owpWC8oNtOT6Ypz6EcD2eCJXlvOomblkW2mnD0CS0OcwnLAIc+7ASGgsZpjJ1syY5lmoltSUYMMdD0lqFUzIPvo+93AiScCL8nezSJvPhfmucb3E+bPAVJg+nNech6Vdty4''@;'; put 'put ''ZU1SlqyBEOlHcFOBFrVShiEq4wjcbzkpcuYQivmi1WBHiymJPtWNKpkGLhCWldodxIbVAnFZs21pQK3OCrSiS+oPCgRnKS5pYQkZDpHe22nLqQMhOYx6dRdP4ce2NJGU4mFQ0vusrQ3rxzkybbElUxdaUtOAbwXc5yx1VKDDQkUm4jKP77Ll9V9EpKdjgPepQEPgZoqbAAVmcc/fdUbvSM0YRx7+''@;'; put 'put ''Yhw9g2G9VPdznhcVRG7xXojZ0/sMObAFYghFvG1YHoayqFu/fpwtM5ba+FFBTFY9+uZCrMKPPpTVFO17XWEJayXSsdDKzcHJPR0L1XaB1sqinVQOPGcClTXIPl+QkpmwajaMS3tH3OzznNfMFdyMgJthfsyWdU9GkATknqFu9hG+TgIuAQrMAB4Iar1ctiYlS9dI3q2XerpRo6QmnTQfdWT7S2Fp''@;'; put 'put ''PmbmThXB/zWwas5HeaXpt8KVHkW5HRWaAV2Uo7rBVUZ3XLDlyM6wHNsRkq42D1gGlBl3q/QIxMrh5UAy0Jxb0Ad9CrwlmhCk9TRL4/pzxCZcM8zbmm1Z/yQMB2dwscse5iM2F8W0YQrMYpqtLMaqbqVR9Y489IW4VNZCsOTRxeyKS7hwraQjezaasvs1uLUT3lraQtBX49F+btnaFOKyUCQ+obVM''@;'; put 'put ''sgBRJG95W1g6cqlZ5Og2Q44ieae3y1uORYKDwySBrAhEoojPnO3I7FuTMm6agXhBB0ITkecBOjdkBaKAbzJxkd+DGrsbfhqRs4fx20KRWUD6xbkpCszinLfrjjoE6+U8ZI7ficzxfMZeqjBy4wO7bdn8VERO7EHrmDwtmrBUhQxTFZmzb0FGvPrdi9yY6fKDxVLFcutZWw4hcefErrD0IQmKCwmQ''@;'; put 'put ''QHYEwrgAHTsrKfOWO9I0UxNThCWOskM3rHe5ZYz6HNn48wjCdygyhwWxhD5EgRmwydYr+wc/l5CxU/LnUk6LS0O6ECO4Di6TC4i1LMQSiTmy8J6ULL7Pgi7DKIowLvOKsASwtnMQltvVFW5SWBbiAOI2AkvAxClonCs0YdmcEZKwCk26zvMy36EwEq0SjmxGdvmhNzXDnxfFeQEdgJVSYAZgEq/s''@;'; put 'put ''Ar7nTXAnP/iZZLrTVx7cRa5Aglu865LIaz8KSwuymgu5hCO2zLvDklvWQmSqi6ZIfGLuKRgGyzCslpfOQ1hu1eSdMFzh7iuFRMhtkUBgCajQbJqZkrk4RzRNh9AMo8YuXeeez7dbKxO/L9teNGT3BnT9YYMHzxkHYYUUmEGYxcv7oMk9t61NyKL7EKuYh9JEaZEUkjg6Pbz6A4+SeYbBXy2Zi1al''@;'; put 'put ''ZMkqxF1pzUyfL1q6yYSw7O2y5ehbpuxFvGp3G2MsfT5tHF4REzAhLLXkmZ4nxkxCTQZciGot4DxccxcxpRyHjgQrFfQ7Xg7JW1qQPcWL5RyJBu7jFJgBmtJYmSUPfTEp9eO1Vpz3p1I9fdhwTb/+c1MOb8tfzGU2UxKrsGXFuyyZdStiTX3aAjPdeQc1QeO2nNwVkj2vh+XSucJafLNhyfeQQFAJ''@;'; put 'put ''RMscmb4UFs3bbZQ/Q0KihtWoRTOoO1zo/cKPQhgVRHb9GtbMFyIIS6DILPQU+Hl7FJh+np2hjA1lfRon2bIW8ZfaQcfrM6ieNkKwwh14QwUmApxGfEG2fIMjqz8BQT32cku5ER9TegCZLkY2Et5PHxbZs27krL0+QcJhkMCIEiivsmX2cr0gtd2C7W63MDg/KDQ9mBb8OLhdf14X2fJcRFJJikwP''@;'; put 'put ''qAZiFRSYgZhGzei2ZeGdltz+Hu+zx93TBdwhbRcceenrUent9od7V0MCJs+zZeWH8xdzOpTDw+UEcW+A1cWTtuzeGJaTu7XYPE+4Q+HI95JAvgiMakAMN86TM2DVjKFbmK3dwqgyc8eNU5x2/dm/yZE3nmVrydyBBmMNFJjBmEe4KRy590MJmbbEkJTHLmOVR45hyIYfm3IEGc9+WlxX+buTMusW''@;'; put 'put ''xJ16vN9D2U+NszTQIrPrki374Qo/iHqWiT5/CPGh7AffSwKlQGDMJEsWrrRkEmppmoj2YSKQN7OuXX8ObxWUMUJN5DjPf95QLd61UGAW79xdNfIyxCQ+8hsJGdWIgHYEs3u1uLY3WOTOHxd58ZuIsUn566QRQmjA2Cm23A9XebgMoy1w6SI3zhLCsr/fkWNvhWT3+jBEpr8YeXUscD0kECQCBs4d''@;'; put 'put ''k+dbsuDelDSiiYPN+ExPptcVmdsui8x+ngs9gVqkK6HALNKJu3rY6N893pFH0XvcQI0yLwOLXIEJAfX6Tw05uHVkE3uu3ue3H8XKbbnjMe1THCqYFVO5uKU6oDDPHbaRRRlFq0yeTN+eFd4jgeIgEMX5Y/ZtllvaaFQd6gfTbZ7zxKnIPLLNkQ0/o7s8Z5hFvAIKzCKevMzQ1Yo3ZYElqz9uuW0b''@;'; put 'put ''M8/neqsiyoGA0oLqv/xKFMXA/SmgDJQkmTTHklWPIxazAO3LXHc4Ep60Z7iWHDoM4Z1iiY5cDzd+ngRGlEDNGJQ1WpmSqQttiURRiYP1M3OaD4rMnPAF4sMUmAGYRk12WXhPUpY/Cgueh/Uv01Y6Qw7vcGT9kzHfktIad1V1jqz9VEJqkFGuPwz5WDLZ4cm4yBG4wzU7vJPu8Hyg5jpJYMQITJqL''@;'; put 'put ''bmGrbGmcorGZ6ba0+TmjjNguFmzDaXe5g8ojYUnQXV4w7n7ZEAWmX2Yih3FoUeHbH0nK/Hu8F5haSXfTz0NyYIs/3eMZbNFyR5aDwdzbvXeTu2ECMN5qEs/FkyHZ/kpIzhz0N48MF96SAAkMnYC6zefekZL5K2wpH4WLVi3STpU5dJD4BEXmsLAF4kMUmAGYxnxlkKuwSsL1++I3TLl4yt+CykQW''@;'; put 'put ''/exbLcRi2ggT8K67jxsmgKDWODLCD2wOyT5kiMd5JR6Abw13gQRuTqBhvCVL70vJxHmGhEIoacQi7TeHNsg7IuUmzp+2bPqF1sn0Z6jVIMPmUzkSoMDMEaAfPq7i6sFPJ9CDFwXHE96IK1dY4Z+eDkH8ZUx6OvUZ/y4hw5GmGYhD/VjKLTviVaKTusW15/mR7SjT9DM/FJj37xxwZCQQRAImQpBm''@;'; put 'put ''LLPQgjclo+qRbc4koGFNcxiJP26dzKcgMhmzPiyGxfYhCsxim7FBxhuOWvIIWkQ2TEif/AZ5y5CfcuWkFldvRoLPV6OS8HtNMyQ61Y+F0P5sQmKVGL1H5YpcgYn2mEd3hGT9T6JD5sgPkAAJBINAzWhLFt+fkukLQ6ggwd7mQ55VnJbDUVP2rNeOPyhyb9GSOWSGRfYBCswim7DBhhstt+ThL6Bl''@;'; put 'put ''YlM6Vmiw9wz1ubTAFGk5HYLA1B6zfj8ZaOtIS9Z+JiWV9agF6lGiT8aCeQy9xNc9SYE51OOI7yeBIBHAmUVm3AKhiSLtNag5TGvmEGf3ssjc+Qp6l78chsh0f2mGuBK+vVgIUGAWy0zdYJz5FJitZ0Py3Ff8V2D9nTjSAvOhz6akoo4C8518+AwJkIBXBKrrbVn6QDJtzUR4DmMzh0BWRWbEkG0v''@;'; put 'put ''iux8LUKROQR0xfZWCsxim7FBxps/gRmSjouOPPuvcJH7PrGFFsxBDg0+RQIkkCcCV6yZqzU2M31Ry0zzLGFDZJpmCH3LDdm7KQyBTktmluSK6m0UmEU1XYMPNl8CU6ty9HVrDGZMutp87iJHDGbDOEce+EweYjA1yectkQ0/8W8t0MGPDD5LAiSQbwJaoP2WB5MyZb6BhECtmwmLZr43GoT1I8Zf''@;'; put 'put ''az9pjcwj2xGTaVNkBmFaB+4DBeZAGkV6Pxyx5aEvJNx+ul6X6LFwZfnSt01pPubvMkVXssg/jixyExPp0Rk+HYOJ7MctjrzxNGMwi/QrwmGTQF4JaC3iObdrbGZKyqohNFGgndbMmyPXdrsWGrCt+7EpJ/eYbsWOm3+K7ygWAhSYxTJTNxinlim6/xMJmTjHuzJFujm9ngxBrb3xnCN7N/hbXLl1''@;'; put 'put ''MG9LyZ2PiaQS1g1oDe2ltMA0ZNevUWD9ZZYpGho9vpsESotA42RLbllrSdN0GDJZziiryTfCaI7R68jL3w/LeRgyKMyzwlYUb6LALIppuvEgzbAtd70/JbNvy0MnH/TcPrHbkVe/72/3sHbeWPHuJIqtG5KMeyswbduQN5833CLrN54JvkoCJFDqBMoqHFl8XxIWTUdMXJM62gWo1KHcZP9NJP30''@;'; put 'put ''tNnyyncj0nIO4VgIS+JS/AQoMIt/DtHC0JFb1iRlyQMQmH0eiiuw0RNjb6fIc/8WlZ52f8Zh6ul7VH06/rKmwdte5GrBTCZM2fjTkBzf4+8wgQAcytwFEggMgelLUrLsAQvnJu1pjrMUVeYN59aMGnLprCO/+m5YOi6hc5LrQ7vhR/iizwlQYPp8grIZnsYfzkKbxHs+6EjKQ+udbjvjJt/8TLpN''@;'; put 'put ''YjbjKfR7NP5p6iLd/xRin7zduu5/b6/Iq9+NysXT/hTY3u4x10YCJOAVgbqxttz2CFpNzoLItBGX6U2jNa+G57v1hGOmnDtky69+GJH+bp5vfTdBQxwQBeYQgfnx7WplGzvNkgeRQe31VZ8KLMH3XAuuP/81f/aRjVU6svKDCZmEfsGexl9i121kp3deMOSFb0alr8ul4cdDgGMiARLwKYFIzJYl''@;'; put 'put ''91sy73Y77TJnP/MbzlQELSWPbLdlw0+jCHfiOfeGsHz+IgWmzycom+G5LuJaWx75rYSUVyGD0aM2iZlt61fcMQy4iQ05vM1fbmIND5g4x5b7HkcqojvQzKhzv1XhrijPHRZ5+btltD7kjpRrIIGSJTBjqSXLHkxIdQ1a+mopI7rMr3ssqMjc/ZojW55nIfbrQiqCFygwi2CSshmilip68DNJGTfD''@;'; put 'put ''20xy3bar26C22lF0/UXEYvb1+sd1UV5ly6rHUzJ+BrLHk976n1RgOo4m94Rkyy+ZQZ7Nccj3kAAJXJ9Aw3hL7niXJWOm4dzCLPPrg8K5N4wE0zeeDcme11mI/fqg/P0KBaa/5yfr0bmJPmhdtmSNt4k+mQGoyDTwhd+9AVeVz/ojozwctWXeHYhxethGLTVvxaXutwpMK2nKhp8bcmynFtfkQgIk''@;'; put 'put ''QAK5ESivcuTWB1Poaa4mTC3Mnk6mzG2twft0CIXY1Rv36x+H5cQu1sgsxhmmwCzGWRtkzCHECk6cY8n9n7TcvriDvCXnp1RwpZBEs+7JMIrijqyr3EBi09jplqx+3JJIOU7QiGvyclFB7YBpT1tIXvhWVLpa/WO19XI/uS4SIIHCE9DEzPl3oTA7yhnFyrQwuwY6cbmWgNbI7O9B0s93Y3L+JM7K''@;'; put 'put ''LF90LSJfP6bA9PX0ZD84BwE9laMcefS34lJZmz5hZf/p7N6poktwVdndgbqYyKpu1XplI7FA+NWORtzlR1NS16SdIPJjvdST2ckDIq99P4pYTHfvR2JvuU0SIIGAEpg8z5LbHk1KTR0MmWrJpMp8x0xr+aL2Zlte/nYU5Ys0jZXn4ndA8ukTFJg+nZjhDEvL9dz5GAr8rvC24PrAsehXOwRvcds5''@;'; put 'put ''kVd+UHjLnpvQVOPI3R/WuMuQp1njV+0ndtS2UGD9BS3PxPjLgWx4nwRIwDsC9eNtxGUmpXEqXMJsMTkoWC1fdOZAunxRwkc5AIMOlk9eIUCBeQVF8d9RN/mkuSlZrW7yVP72xxWZcF20nhH59RMR6WgplCXTkaoanIzfl5IpKEnkZceed9BS9zgKy7/4rYh0Fmz/3jEKPkECJFACBCqqHVkOkTlt''@;'; put 'put ''gVox2cd8sCnXzPK9G2wk/kTFStGKORgjvz1Hgem3GclxPLEKWx76XELqx6OjDVqU5WvRr7eB9l7t523Z+POInD+e5yQYCL66RojLxyzXcplPcZnOHg/Jsd0hWfcjf/dgz9f8cr0kQAKFJRCGB2oJkn8WrHDgJWLyzzvo40dHW0puedqQPZuQ9GNRZL6Dkc+eoMD02YTkOhzNJl9wT0pufxQtDvs9''@;'; put 'put ''bmtzzeD06x0yQxJHp5vtr5hycLOZl1hF3afxsyxZjo4YdY1m3tzimd1TgZlE9vj6Hxlycn+ehXNmo7wlARIoeQIaS6/JP8vWpCQaS2dR589MUHy4NbNcDSevPmHK6f0oX8TYeF9PIgWmr6dn6IPTGMWaelse/iKKro/KT7LPwFG515D40odMQ07stuWtVyJyqdkbl7nuSwVKeiy4OyVz7rQliqtX''@;'; put 'put ''C7Xj8rm41kts4PzxEILK/dm5KJ/7z3WTAAmMPIGpC1NoMWlJFRI3NfGHyT9vz4lmlne3O27ST1uza+Z4+0Xe8xUBCkxfTYc3g1GL37I1SVmqNTHzbMXMjFi/5uq+6Oly0OZLO/6Y0o4Wi8NZ9Cq+rMKRKYttmb/CkoYmxFuqsPS4Q9FgY1OBaVumbHo6JIe2jmwppsHGx+dIgARKg8DYqZabtFk7''@;'; put 'put ''BpZMnBMpMt+ed7dn+REk/XwPPct7hvc78/baeC9fBCgw80V2BNebtmI6sGLGC2LFzOxq2poJoYmC7D2djpw7EoJV05ALJw3p6775SSActqWmEYlK82yZutCS+rFoqYazaj5jSTNj19u3rZfIkEcZpmT85mMe+HneJwESIAEvCdQi7vzO9yZk7FT1RjH5ZyBbTfrZ97otm59m0s9ALn66T4Hpp9nw''@;'; put 'put ''cCxqxVy4MinLHy6cFTMz/IzQDEdM16Xd02FLx0VDLp0LSRcys/s6ULBdswDxv1oqK5EZXoOr9PpxKRk1Wp8Lu20fbY+Lp2fGd71bFZippCGvo3PP0Z20Xl6PE58nARIoHAGtb3zH+xIyeTbiD1Esk5bMy+xxvlZjxuanUEpuM+IxbTzBxVcEKDB9NR3eDqa8yhLtT94wAbGLeShGns1o3a88EoFM''@;'; put 'put ''xGkauNWAdW3/lWlboaLObQmG522M0RrwWjbr9+o9Og5VvCf2oVPRE7giZoaiV2i5HhIggRwJxModuf3daC+5BP4piswrNPW3I5VAPOZ30pVMKL6voPHFHQpMX0xDfgahdTG1U8R9H0VdTFV0qu64vIOAaktNRuzvFjem5+JpZo6/AxKfIAESGFEC4YgttzyclHnLNXQH53Sez935cDv9nLNQsxiN''@;'; put 'put ''P+AhY6efET1Mr9o4BeZVOIL3QLv7rHg3Tkp3Ft5VXiw03dhLx0SpJUd2vca6l8UybxwnCZQaAQM9zJfej1qZKx107WWtzMz8azzmke22rPsxvE9J1x2VeYm3I0iAAnME4Rdi05p9WFVrywOfTko9srFHylVeiH0dzjZccYl/zh5Cz3G0vkwmeHIaDkd+hgRIoHAEFt+XlCWrIDKRGCn4n8ZMEc0s''@;'; put 'put ''3/KsyO4NiMdkiFPhDsYbbIkC8wZwgvKSiqix0xCP+cmkGFHtd8vTkc6tKyXhbepsDcmr349I23lmjQflmOd+kEDQCWh94KWrUxBW2FOKTLSWAwa0SH75e2FpPqxF2IN+BPh//ygw/T9HnowwBNfK3Nu1rpqNDG6ejTLiMtlnyIZfaJF4Zo17cqBxJSRAAgUjMHdFSm590JJwGdQUGreVuqbSWszt''@;'; put 'put ''zZfjMdsQj6nWFS4jRoACc8TQF37DWrrotoeSsmgV4zH1vGPbhux4OSS71kUKPxncIgmQAAl4QGDO7SoyUxIp05Oam87pwVqLdxUaj3l4q8j6n2iZPHqlRnImKTBHkv4IbDuCTMS7PpCSmbeUrshMX9Qasvf1kLz5HFwpaWf5CMwGN0kCJEACuROYudSSWx9NSlk5RabS1MzyTfBM7d9ssj5m7ofX''@;'; put 'put ''sNdAgTlsdMX7wRiKm9/zwbhMXWRKsg9+lRJaXHEZMuTgmyJbnkGvcS34zoUESIAEipzADIjM2ygy3VkMoeZyot+Wl74ZlYunYcXUOnRcCk6AArPgyEd+g5pZXlntyL0fTMnEBbBklojIzIjLA2868uYzUYrLkT8UOQISIAEPCajIXA6RGaMlU8KwYjYftVGEPSpxxNpzKTwBCszCM/fNFssqtM9t''@;'; put 'put ''SqYvhciMBzdC3L121fMLYi73bArJjhfRipKWS98chxwICZCAdwRmL08i1t6WSAwpPyWezxkpN2XnKyJbcc63WbrIu4MsyzVRYGYJKqhvi8RsWf4ICrHfYUhS20lqq8YALSouQ2G4S/pCsvNVCMz1iMlhzGWAZpi7QgIkcC2B2Uj8Wb4W2eWlLjLxA6C/Aa+gdNHpAzj301V+7aGS18cUmHnFWxwr''@;'; put 'put ''1+4QC1ehptp9Fgr3hlBLLBgiU13i2v+8sxVXsC+F5fhOtoAsjiOSoyQBEsiVwLw7U3LLAxCZ0dK2ZBooXdRxwZEXvhGWbpYuyvWwGtLnKTCHhCu4b9a+5VPmw5r5rqRUN5iS6i/e5B+9YtWiuyEDMTiHHXkDmeKXmikug3v0cs9IgAQGI7BoJTr+rEZWtVnavcu1dNH+zQ4yyyMoXeT+QgyGi895''@;'; put 'put ''TIAC02Ogxb06R2pGO67LfMoCwy3IXmxdf9JWS0P6ey3Z97oJl3gY7R8Z4F3cxyVHTwIkMFwCy9YkZNFKXHCjd3nJdrdRTYmfgQ1PhuUoPFmOTZE53ONpKJ+jwBwKrRJ5rxlG158Vliy6NylVdWFJFEECkJ4uNNZS/zt7xJEdr4Tl/HFaLUvkkOVukgAJXIeAeqdueyQl8+/Q0KfSFZka/tVzyZbn''@;'; put 'put ''vxaTjrb0b8V1kPFpjwhQYHoEMnirgTVzjCOL0et2+gJLzBgyrxP+yzR3hSXiLA0jJK3NNoqnm3JsO7PEg3c8co9IgASGSyAMo8GK9yTRYANrcEpXZKqr/BDK1G34aZhdfoZ7MA3hcxSYQ4BVim/Vq9+maZYsXGlJ0wyRMAKmkz4QmpkEHu01237RQmuwiBzaZkpfN10fpXiccp9JgARuTEArhtzz''@;'; put 'put ''vqRMXghfsVOiMZn4eTDg2Fr3o4gc22mgXTB/L2581OT2KgVmbvxK5tMqNCfMsmT27ZaMn25LWRWshChrVMiMc/dUAGtlOJyOD209I3J0uylHdyPmsptxliVzMHJHSYAEhkWgrMqWVR+GsQDncG24UYoxma6rvB2u8q/SVT6sg2gIH6LAHAIsvhUEIDRHN9kybYktk+ZYSAoKiQmrppWyxbIQ4+Nx''@;'; put 'put ''hSO1VGrbL9PUq01HutstaT4CNzhEZfNRCM0khSWPSxIgARLIlsCoBlvuezwpdeP0E6UpMtVVfnCLIxt/Rld5tsfNcN5HgTkcavyMSyBaZsvYqRYsm46MnWbLqDpHohVht7CtWjZtXB6rKMxGdLrWSRWTiKXUP42p1Of6+1LS0x5y+8meOWzKeYjK3i733ZwFEiABEiCBYRAYM9GSe2DJHFWvzTWy''@;'; put 'put ''OkUPYys+/oj7WyPy6ydMOb4rzALseZoqCsw8gS211ZphW2qRFNQwERbOCZogZEtljQXBaUg0elkwuuLxajKIN0c4kCOWbUsi4UiyV2ClDElHiyGXzhnSciYkXbifiFNUXk2OjwYSMFDzNAwrNy5RUI5FZHRDndy+dKHMnzVDImHt3uSxaX3gxod5Xy+++uNxaWvvlIuX2uVSe4f719HZJV3dvdLb''@;'; put 'put ''1y/JVGqYa+fHSODGBCbMSSEmMyWxKnxncCz67xty4/Hn+mq6ALstL349Kl34zdF4fi7eEqDA9JYn13aFAKyZZSLlVY7EKhGzWRnCYwdJQmqlvPwmCMsEit4m+0TiPSE3QaevN4Qi76GSO9ldwcY7VwhEI2EpLyuTyspyqa6skKqKChlVXSU1+jeqSirdx5VSWV4uFeVlUlYWc+PK9ODR12trRiG0''@;'; put 'put ''wt+lqvRHTf/S8XC4wEomXdHZB3HZ1dMrnV09V4Rna1uHtLa1u4K0HSK0o6tb+vrj8BLgKo0LCQyDwOzbknLHY9o8N23GLDWRqa7yXevQ6Q3NOCz2Kh/GEXTjj1Bg3pgPXyUBEsgDARVV5RCEVRCOdRCC9bU1Mrq+VhrqavBXi/t1MqqqQioqyt33RSMRicViCJ1IX53orYqyjLjK3Opzum7L0ixZ''@;'; put 'put ''jS8rrp9MHbsuun96X28z9zP7k0gkICz7pfuyAG3r6JQWWEBbLrXJxdY2aYEIVSGqVlAK0DwcvAFb5a1rE7J4FTzliKMvrm+LBxOhXzdo6xe/G0bXN3WVe7BOruIKAQrMKyh4hwRIwEsCGRFZW1Mto+vqZFxjgzSNHSONcF+Paah3LZGjqiulDMIxIx71MyoWM38qqgaKRy/HV6zrGihC1UKrj/U2''@;'; put 'put ''I0DjcLurAO3p7RMVn2r5PH+xVc5daHFvVYy2dXTABU/rZ7EeA16O2zRtuftDSZmxBImUSVyYebnyIliXGTXQlMOWl78VlXhfxr1WBAMvgiFSYBbBJHGIJOB3AmWxqGt5HNc4WiY2jXX/xo8bA2FZ67q1K2GJjMAKqWIoIxoHWhn1OS7eEFDGmb+MAM1YfJV5b1+fdHR2w9XeIc0trdJ8oVVOnjmH''@;'; put 'put ''2xbXEtoJ17sm6HEpHQLlFbas/lRSGicjJh4JmqU2+2G4yrc866C1cERsuso9O/ApMD1DyRWRQPAJqHDReMfG0fUyeUKTTJ3YJFMmjod1crTUw9VdVVWJOqXqakq7p1NIUsncp4j0x/Ghc6iCU8Vnxv2uVmIVnl0Qly2weJ5tviAnIDpVeJ7BfbWCJhJJf+wAR5EXAnWNttz/qbhU1cKKV2JJP1q5''@;'; put 'put ''JN6L2phfj0lbs/rNmfDjxUFGgekFRa6DBAJKQOuPumJyfJPMnj5Fpk+ZKBOaGiEma9z4SBUoKk7UMpZxawcUReB3KyM8M+JTH+sFQndPj7S0tsups81y7NQZOXryNIRnsys6dd65BIfARGSWr/xQSsIxSCyYMUvJkqkJP4e3ObL+J0j4YX1lTw5qCkxPMHIlJBAMAhoPqa7tGRCSc2ZMdW/Hjhnt''@;'; put 'put ''urnVMqkiUkWH3tIiGYw5v9leqODMiE691Uz3ru4eOXseVs7T52T/4WNy5Php93F/PHGz1fF1nxOYf1dSlj+KQWqinM/H6unw1GgJ4+2vfxCRE3s0iZBWzFz5UmDmSpCfJ4EiJhBBKaAmuLfnzJgmC+bMkOmTJ7iJOFWVle5eqYUqY50s4t3k0D0mkBGc6mbXRa2c5xHLqdbNvYeOysGjJ1yLZzLJ''@;'; put 'put ''Op4eo8/76mC4lrseS8isFYiXLrGkH+1K13rGkRe/EZG+Hib85HqwUWDmSpCfJ4EiIqDCoHZUtcycOkkWz5sl82ZPlwnjGmGhrHYTQzLWSbVQciGBbAnocaV/auXWpau7G3GcF+UAhObOvQdcwdmK7HUmD2VLdGTfF9Okn4+lZNx0xFKXWNKPusrffF5k12vw2DDhJ6cDkQIzJ3z8MAn4n0AYVqYJ''@;'; put 'put ''yOxWQblo7iyZOW2SWyZIxQAtlP6fv2Ic4UALpx5jrajRefj4KXkLYvOtvYeQOHQeoRaM3/Tz3NaNtWXNpxNSOQomzRJK+rmS8PNvSPi5oG5yusqHe5xSYA6XHD9HAj4moGWDpk+eKEsXznWF5dRJ49HdZpQbN6lWSv3R50IChSKgrvRM1rq2wjx64rRs27VPtu/e72aqsyVmoWZiaNuZujAl934w''@;'; put 'put ''JYZGQpRQ0o9aMQ9uEdn4M1OsFF3lQztq3n43BebbLHiPBIqagCbozJo2WW5dPF+WQVhORLZ3BdopDkzMKeod5OADQSDjStcsdY3d1AShzdt3ytad+5AodJEXPz6b5VseTMqS+9DwoJQ6/cBoqVn0L34nLOeOoOwaI4aGdVRSYA4LGz9EAv4gEIGbW62Ty5culOVL5rs1KcvRm1stlGqpZKa3P+aJ''@;'; put 'put ''oxicQEZs6u0ltLfUBKGNW3a41k3ttc5l5AmEI7bc9/GkTJoFT7lVOkXYw+jwc/awIy9/JyLJOK2YwzkSKTCHQ42fIYERJKCWH+3ZfRsslXctXyrzZk1HT+9KisoRnBNuOncC6kLPlMI6fe68vLF9l6x/Y7scO3lG6ELPnW8ua6hpQDzm5+JSXQOhVULxmNpGcsOThhzcmk5ey4VhKX6WArMUZ537''@;'; put 'put ''XJQE1Fo5fcoEuXfFrXLHrYtRXmiMux+ZzO+i3CkOmgQGIaBCU/+0beXOvQflVxvfkB1aevCmAABAAElEQVR7DqDbUP8g7+ZThSAwBfGYKy/HY5ZKJ1EjHJL2CyLPfCkKKyaTfYZ6nFFgDpUY308CBSagsZWL5s6UB1beIUsXzHWLnmuxaybqFHgiuLmCE1DXufaw1+P9CLLQX9nwhmx88y25hD7q''@;'; put 'put ''XApPYPkjSVl4T2nFY2rCz6anRfasixQeeJFvkQKzyCeQww8ugfKyGJJ15snDq+9yywvFIDT1h5Y1KoM759yzwQloWIgKTV1Oo2WlCs3XXn9TzrdcYpzx4Mjy8mwkBlf5JxOoj4ki7CVSHzNkhqS305an/6VM+rpoxRzKgUWBORRafC8JFIBALBqFpXKOvOuBlbJ4/mxR17gKSybsFAA+N+F7Auo6''@;'; put 'put ''13jNc8g4f3n9ZvkVxKYKTV54FWbqRk+w5IFPpSRaoZnWpZH0E4UVc8erIm8+RyvmUI4yCsyh0OJ7SSCPBMJh0+39/dja1XLnbUtEhSaFZR6Bc9VFTWCg0Hz+1Q2u2Gxto+u8EJM6D/3Kby+hfuUh5DYlEf77zJcj0tGSbo9aCM7Fvg0KzGKfQY6/6AmoZXJ0fa08ev+9cIffLXW1NXSFF/2scgcK''@;'; put 'put ''RSAjNI8cPylPvfCabHhzh/T09hVq8yW5nZDhyH2PJ2XKotLpV65WzL2bHNn402hJzvlwdpoCczjU+BkS8IiAWimXLZwjH3r3Wpk/e4Zbu5LJOx7B5WpKikAU3yX97mzduVd+9PQLbv9ztqPM3yEwCqWLHkQryap6xCWWQOkihAHj+HLkuX+NSus5WjGzObIoMLOhxPeQQB4INNTVymNr75NH7r9H''@;'; put 'put ''KivKJZFI5GErXCUJlA4BTQZSodmGLPNfvPCq/Oz5X0k8zu9Vvo6AGUstufsDqZKJxYzETDm83ZbXfhjLF9JArZcCM1DTyZ0pBgKaoDAbLR0//eHH3CQetbrQalkMM8cxFguBTN9zzTT/9pNPSfPF1mIZelGNEw5yuefDSZmxVLPKLW1XHuhFrZgw1srzX4vIhRO0Yt5ssikwb0aIr5OAhwQ0kWfV''@;'; put 'put ''HbfJJz7wLhnXOBrWlbiHa+eqSIAEMgTUmqmlvbR+5pe+9YTsP3xMUriY4+Itgeo6uMo/m5Tqeqy3BFzlasU8tsuSV74DK6YqTi7XJUCBeV00fIEEvCUQi0Vlzd23y+c/9n7R4umaIc6FBEggvwRUZGqf8y9/50nZtHUn207mAfeMZXCVvw+uctgwS8GKCWUJK2ZYmo/Tinmjw4kC80Z0+BoJeERA''@;'; put 'put ''i6Z/8NEH5MPvWYuL3hBd4h5x5WpIIBsCWqS9vz8uX/nuk/Iq3ObxBC/usuGW7XtUWN77kYRMX2KUhKs8gh7lJ/Y78vI3Y4EX1NkeA4O9jwJzMCp8jgQ8JFBRXiYff/+j8v5H1rhZ4iwI7SFcrooEsiSg5YwS8Bp8+Vs/ktc2UWRmiS3rt2lW+drPJaRyFNzGQS/Ajl1EF1N5/uthOXcknDWjUnsj''@;'; put 'put ''BWapzTj3t6AEVFx+BFbLjzz2sJslzm48BcXPjZHAVQRUZKol8x++9j26y68i482DOSuScud7oC8R6xp0V3kmFvNlxGKqV4rLOwlQYL6TCZ8hAU8IaI3Lh+67S37jEx9029jRcukJVq6EBHIioO7yVsRk/o9//JocOHJcLNvOaX388NsETBRgX/2JhEyYg+dQMzLIIjOtKRGL+XVTmo/Rivn2UfD2''@;'; put 'put ''PQrMt1nwHgl4RkDLpGgB9T/+3c+5CT0sQ+QZWq6IBHImoIk/ew8ekb/556/LBfQx5+IdgdETkVX+qYREyrVXOayZ3q3ad2tSK+bRncgo/y6tmINNDgXmYFT4HAnkSGDsmAb5T//uczJ35nSWIsqRJT9OAvkgUF5eLk+i48/3fvqs9Pah0TQXzwgsezApS1c5Ylt2oAUmksk13FR++dWIXDzFjPJr''@;'; put 'put ''DyAKzGuJ8DEJ5EhAM8Y/gIzxT37w3Yj34g9Xjjj5cRLICwEDWRra5ee//f1XZM+Bw3SVe0g5Vo6En8/HpX4cFBgiEIJuxTy41ZZ1P2J3n2sPIQrMa4nwMQnkQECDvSdPaJK/+KPfltH1dW7WeA6r40dJgATySKCsrEx+jYzyf/za96WrpzePWyq9VU9ZmJKVH7bFgMIMssDUWEwb8abPfDkql5pp''@;'; put 'put ''xRx4pFNgDqTB+ySQI4EyFFPX/uKf++j7ab3MkSU/TgL5JqAXhFoT8//6/74s+w4dpRXTQ+BaG3PVRxMydVHwa2NGy0zZvcGRTb+Iekiw+FdFgVn8c8g98BGBuppqxF5+Hj3G5zD20kfzwqGQwPUIaCzmD372nDzx1POMxbwepGE+39DkyJrPxKVME36wjqBaMkOoiRnvE3nmX6LS1YYHXFwCFJg8''@;'; put 'put ''EEjAIwIa0zVz6kS4x39XKivK3dJEHq2aqyEBEsgTgSjKie3ef0j++n99Vdo7u/O0ldJd7S0PJGXJaiT8pILtKlcr5raXHNn2Iq2YmaOdAjNDgrckkCOBCIo43718qfzRb3+GsZc5suTHSaBQBLSkWHtnl/zZ3/yTnDxzDlnBQbWzFYro1dupqHTkQST81DZqsGJwa2MaZkh6Omx56p9i0t9LK6Ye''@;'; put 'put ''BRSYV38X+IgEhk1AC6u/a8298kUUVo/H48NeDz9IAiRQOAIah5lMpeSvkE2+e/9hSaELDRdvCcy+LSV3vg/p5AEvW6RWzA0/Fdm3KeItwCJdGwVmkU4ch+0/Am6Cz0Or5XOPv48JPv6bHo6IBK5LQK2Y/x2dfd7YsQveBwrM64Ia5gtmxJEHUHy9aTriMAPc4ccMh6TlnC3PfqlMrJRGnZb2QoFZ''@;'; put 'put ''2vPPvfeQQBm6g7z7wZXyeWSQ04LpIViuigTySEAtmPr31//r3+TNnXsoMPPEeuJsC1nlKQmbwXWTK7pw1JCXv2PIiT1sH0mBmacvE1dbegSi6HG86s7b5A9+45OSSCRKDwD3mASKkIAm5/X3x+Wv/kELrh9hqaI8zaHa81Z9NB74skUqME/td+SFb0TdC5c84SyK1VJgFsU0cZDFQMDED9WCOTPk''@;'; put 'put ''T3//NyUajTBZoBgmjWMseQLqHr/Y2iZ//rf/JGeaL5Q8j3wCGDPJQp9yWDHLkEgV1FwqKGkH4abPfSUqLWdKO9mHAjOf3yauu+QINI6ulz/7g9+UaZMnSjKZLLn95w6TQLERiCG05c0du+X/+fK3pLOLZYryPX93PpaQ2XdgK8ngli1i4fX0UUSBme9vE9dfUgQqysvkU+hB/n70Iu/rQ+VdLiRA''@;'; put 'put ''Ar4moO0iv/KdJ+WZl9ehqw9DW/I9WTVjbHnoiwkB9sAWXw8ZIenrseVplCzq7SpdKyYFZr6/TVx/SRFQN/nCuTPlT2HF1LqYrKlXUtPPnS0yAmF8R1svtclf/M8vy4nTZ/l9LdD8LX8oKQtXBrv4uloxX/+5yJ6NpVuyiAKzQF8obqZ0CFRXVcjvfPojsvruFSxXVDrTzj0tQgLaJvJHaBH5fbSK''@;'; put 'put ''7O3rL8I9KM4hV9fBivmFuFSMMiSEwvZBDMc0IyG5eNqW576MkkVWaZYsosAszu8nR+1jAgZKnsydNc1N9qmqrMDJhXX1fDxdHFqJEtAWkafPNst/Q4H1U7jlUlgCyx5MytL7gm3F1LqYz3/DlLOHSrNkEQVmYb9T3FqJENCi6+9F0fXPfOS9rIlZInPO3SweApnal//wb9+TdZu3SYIJeQWfvMpa''@;'; put 'put ''Wx6GFbOyJrhWzEjMlEPbbPn1E7GC8/XDBikw/TALHEMgCdSOqpbf+8LH5a7ly5jwE8gZ5k4VKwFN7PnZcy/Lt3/8NF3jIziJSx9IyLL70KI8oC0kQ8jviSPX8+l/jkh3uzmCpEdm0xSYI8OdWy0BAmolmTCuUf74dz8rM6dNoSWzBOacu+h/Ahp3ueGN7fKPX/++tHV0+n/AAR5hZQ2smF/shxXT''@;'; put 'put ''DGwsppvs8zSSfdaVXrJPSQnMD73rAdmyY4+cOHMuwF9Z7pqfCGhW+ewZU+SPfuszMh5iky0k/TQ7HEupEVBxuX33Pvm7f/22nG+5VGq778v9dWMxVyEWM6BWTDfZ55TIs/8axT6WVrJPyQjM8WPHyD/+1X+Wvv6EfPvJp+T51zayJIUvTzfBG1QYnULmzZ4uv//FT8j4sRSZwZth7lExEFC3+Ft7''@;'; put 'put ''9ovGXZ670MLzv08mzc0o/3xCKmpQFzOgDX4MeMd/+bWINB8tLTd5yQhMtV5+8RMfcntEa+2z19/cIV//4c/k9Dm2BvPJeSbQw3AtmdOnyP+OmMypkybQkhno2ebO+YmAhqqouNy09S350reekOaLrX4aHscCAssfRl3Me4ObUa5u8r0bHdn482hJzXdJCEztNfs3f/IHKB0z3RWYOsN6wmlta5fv''@;'; put 'put ''wJr53K82lHxT+pI66vO0sxH0152xJCnHdoYR2P3O7g36Qzd5wjhYMj8pc2dOc49FFmLP02RwtSQAAnru17/nX90Az9XTcqm9Y9BzvXaXKa+25eJJU6xUabkx/XCg1IL/WmSUl5WHAtndxzBD0ttpyy/+MSb9ve/8bfDDHORjDCUhMOfOnCr//f/8A5ffwB90PfGoNXPd5q3yjSd+LufOt+SDMddZ''@;'; put 'put ''AgQM05GJsyy58wO2rH/ClDOHr+8Kmdg0Vj72vkdk5R23um461sksgQOEu1hwApFIBCFRcbeQ+lMvvubev94glqxOyrRFlrz6g6i0X1CBSZF5PVb5ev6u9yZk1gqsPaA9yrVk0Ws/FDm8vXSSfUpCYH7+8ffKR977yHVLxag1s6X1knznx8/IL3Glq5YmLiQwFAKxCkfu/WBCpi4wZd8blqz/cfSG''@;'; put 'put ''x9Go6ip5cOUd8oFH1khdbQ2tmUOBzfeSwA0I6Pk7Fou5RdS/8t0fyzYk9aRS1292ECt35IHP9kvT1LDseMWRt16NSDLO34AbIM7LS6MnWbL2UykJwxMUxNY+4aghJ/fa8tK3UBOzRDRG4AWmFrz+u7/8Y5kAq1EqlbruF2OgNfPrP/gZ43SuS4ovXEsghMj0xsmWrPl0SiJRuEK6Q/Lq90y5eOr6''@;'; put 'put ''VkxdRzhsytwZ0+Tx9z4kSxfMdVd7o2P02u3yMQmQwNUE1GqpHoFNW3fKE2gBefTkmZsm88y9PSnLH4U7PWJLd6sjL34rIh0t6sakyLyabn4fqXdx9ccSMmURuKfswGlM1ZSJhCPP/EtMOltLw00eeIF5y6J58pf/4XdvKC4Hfm20jEXzhYuuNfOldZsGvsT7JDAogUjMkYX3pOSWtTgvxtVSEpKj''@;'; put 'put ''O0TW/ySKk+TNf6SqqyplzT0r5D1rV0lT4xj3WKXbfFDUfJIEBiWQMRBo68cfP/uSrEedy55eVLi+yVJWKXL/J/pl9ER8a2E4MyKGbPyZATcmYjGTN//u3mT1fHmIBCbOsWTVRy0JG8ETmIrCrYn5FGpiri8NN3ngBea/++zj+OFefV33+GDHv8ZlGqhfqLGZas1kvbTBKPG5DIGySlvu+2hKmmYI''@;'; put 'put ''fpRs1/uRiBsQmIac2pddD1rtXz5pQpO8a829surO20RFZxLt62zbzmyGtyRAAtcQ0PO09hS/1NYhr76+RZ59ZZ2cbb54U6tlZjWL79N+2BCXhoXPwKuAOLkj20U2/cIcNFEv8zne5oeAiVj2Bz6TkHHTMRm4Vse/gVrCkZCcO+7IL/81lpXxodh3PtACs6qyHO7x/ySNo+tdt8lQJ0utmWebL8Ca''@;'; put 'put ''+bS8suGNoX6c7y8FAjB71DXa8iBOiuXVhjj2ZZsljB8Xz4TkV99DokFX9u6QCC5utDD7u9aslOVLF0hlRQWFZikcR9zHIRFQYanu8O6eXrf80DMvr5MjJ07dMNby2g2MnoALQ7hkK0bhO+uEXDGj2b7tLY689I0oWvtl/729dt18PHwCs29NyR3vx4V6EAuv43fBxm/Ecyi63nr2xiFUwyfon08G''@;'; put 'put ''WmDeccsi+bM//O0rpYmGg12tmRo0/hqujr/xw1/IxUttw1kNPxNQAiE3e9yW1R9PYA9x9rh8yZ2O4Tbk4JtqDYkM+Wo1Go3Iwjkz5dH775FlCPMoRyIaLZoBPYi4W1kTyLjCu7p75I0du+S5V9bL4WOnJAFr/1AWDWu57/G4NM3UsjiOa710P2+EJNXryAvfjkjrGVwwQnhyKSyBWLm2j0xIbaOq''@;'; put 'put ''McxNYTef962pm/zN5wUJZcF3kwdaYGrnlEfuv3dI7vHrHV1qzTxx+qzbBUjje7iQgBIwI47Mvg1X3O9xXPf4QCoqMq2UIVtfCsm+jcM7mcSQpDYf9VvXrrpLNJ5Ys89VaDJGcyBp3g8yAb3A1wt9FZda7WPz9l3y8vrNrrBM3iBx83pMVFAufzQpc+9QcZl2jV95r6snHSTpReXUIQjMEmvtd4XD''@;'; put 'put ''CN9ZtgahC6uhL5GwFTSBaYZD8G7Z8uyXymDNdA+4Eaadv80HVmBWV1W42eNjGobnHh8MuZ7kUjjgX8HJ7Xs/fRaF2jsGexufKyECboLPyqTc8kBIkv1Xl0JxTx34p79fZPPTYTmOAuzDXdR1PnPaJFl91+1yx62LZXR9nRufqVnnA2u7Dnf9/BwJ+I1Axg2ucch6cb9u8zY3eefc+Yti5RCbvOje''@;'; put 'put ''pCy5X4uwXyMuLwMwIADW/ciU47tZdH2kjgktvP4QCq/HKnARAIUZKJGJ3wS1y/7yKzFUGgl2GEZgBaYX7vHBvlx6Na1B5afOnHM7Q6zfQmvmYJxK5blImQ1xaSGLHPWB3Qzyq/fcFZk4h/ShdNHrPzfl1P7hi0xds7acHNc4Wu5evtT907aTGoumQpNWzavZ81HxERhorezs6pY9Bw7LrzdtRS3L''@;'; put 'put ''/aKPc13m3YlqD2uQpQwXuSB/bjDhYmom+c8NObLNlBQzyXNFPqzP60XzqscTMn0JrMioYTrYPA1rxT75kLrJt73oyLaXgt06MrAC8w/gHn/YI/f4YMdkxpr5MkoZfe+nz7ktyAZ7H58LNoEoijQvfwTuttthwRxEYOreuyIT8dx9+H3c8kxEju3yJri7sqJcFs+b5XYEWjh31lVWTWafB/u4C9re''@;'; put 'put ''qftbL5QSiYScPnferWP5OnqHHz911vUa5bq/Wqt28aqULFrliBmGsryOuNTtqMDc9DTip7ewVFGu3HP5/CQtWfQxS8xQ8EoWqZu85QxqYn45hjAA9xciF1S+/WwgBab+8P79fx1+9ni2s5WxZh4/dcatm7nxTRQ/5FJSBKIISF/xrhTiMK8vMBWInkJCSCCI9zuy5dmwHNkRfjuxIEdiGavmbUvm''@;'; put 'put ''y+1LF7lZ6FWVlVdc6BSbOQLmx/NCIJOwo8fnRcRW7oCV8nUUSN8Nq6XWsNTzqxeLdupZtjYps2+FuzWEMJYbiEvdHgWmF9RzX0cYhe8f+kJSGiYgy/8mc5b71gq8Bj20YaV9FuWKWpBMFtQlkALztsXz5S9QXF2TIQqxqDVTg83Vmvn9n/2S1sxCQPfJNrIVmDpc9+cS5xKtkXkAVa/2rotIf583''@;'; put 'put ''P6IZHBqrOWVik9yK74AmBU2fPFGqUFNTf8TVhU43eoYUbwtNQAXjwLhKTdjZd/g4ROVbsnv/YWnr6HSPUy/HpaWIboWHYfy0ECxFsIRl4WulwPRyBnJb16KVCbl1LdKyApjs42aT/xLZ5L8aXgJobmQL8+lACszf+fRH5L0P3+9J9ni205CxZh5FLTbtab5p285sP8r3FTGBoQjMzG4asGTqD93p''@;'; put 'put ''QyI70fc4X4HeGbG5ZMEcWTp/jkyfMtHte67HaiZmkwlCmVnhbT4I6LGmF+DuRTgu+NVSue/QMXlz5x5XVLZeakclmixU3xAHZ6B82PRFKVn2kC1V1TBaarmbLDdDgTlE2Hl8+6gGLVkUlzJN9sF2spzCPI7Iu1WbKLp+/pgtz32lDPvlraHBu1HmtqbACcwYEnD+7i//o0wcP879Ec0Nz9A/rXFE''@;'; put 'put ''ccQRaZvJH8CaqVflXIJLYDgCU2ngd9d1mfd02LL39bAc3prfziFhxLiNbqiTeTOnydKFc2X29CkydkyDVKD8llo3VXDqLQVncI/VQuxZxkqp7m+1Vvb29sq5Cy2umNwOF/jBo8elvbM7r8dZ3ThbFt6bkinz1d0N3+oQO8JQYBbiSMluG3o+uu+jCZmq/ckDVnhdfwOslCNPfykq7Re8icvPjmrh''@;'; put 'put ''3hU4gTl/9nT56//8++4JbKR+LAdaM7/15FPyxvbdhZtRbqmgBIYrMHWQes0aQucQB7XQzp90ZPc6U84eNGHR0Vfyu1SUl8nUieNl7qxpbp1NzUYfXV8rZSjoPtCdPlLfofzuPdfuFYFrBaWGJV1qa5ejJ8+4sZR7Dx51Swz19ce92uR11xOrcGTWLRYS7lJS3aAu8eytlgNXSoE5kMbI35+yICUr''@;'; put 'put ''P2KLgeDZIFkwlay6yTf+AuFSG4LpJg+cwPzEBx6VT33osYK6x6/3FXStmfGEvPDaRvnhL57HlXvX9d7K54uUQKTMkVsfTMmCuwcvU5TNbumVrLaoS8RD6F0usm+TKRdOGp4lOdxsDCoStID7ZFj9Z02fLLOnTZGpk8ZLQ10N4jer3I9r7KYKT1o5b0Yz2K9nBKW6vNVCqVnfbe0dyPy+ANf3UcRU''@;'; put 'put ''HpWjJ85IB851+XB9D0YXxlKZNC8lc++0ZNxkvAPfJ0fF5WBvzuI5CswsIBXwLVGUglM3ee1YnBMD1tknHDXk5P50a1LXrVVAroXYVKAEptp9/vbP/73MnTm9YAk+N5ukjDXz8LETbt3MLW/tudlH+HoREUjXwYRL7h7numWKst0dFZpm2EA5IwdFnpEIhDIpl86NTIZheVlMxo8d48Ztzpw62b0d''@;'; put 'put ''B5e6CtFYLOZ6CCg6s53Z4nxfRkxm3N26Fz09PUhi7HRLCR08clwOHjvpWijbO7pyKn4+HEIGSg81TrNlHoTlxFmOhBHTZqdyt3JRYA5nNvL7mdseTsqiex1P5je/Ix3a2kM4vff3iTzzTzHp7lAFE6wlUAJzEiww/++f/xEKoaP3c7YR3QWaz0yNt2fRO/eJp17wpGhwgYbOzdyAgJcCM7MZTQIK''@;'; put 'put ''oU5ab7stpw5qPb6wtJ5GweHMG0bgVksh1cOiqaJTrZuanT5p/FjEcY6WqsoKt/mADku/d5nuQmrt5OJ/AiokrxWTOo+9fX2uJbL5QivqUZ6RIydOywk0mGhGTKWWERqpc6y2ehwz2YErPCkT54VEyxDZiGXz6pRPgem/Y7ZxkiUPfDYpEfSpGMnzYD7IRGDF/NX3DTmaQ6e3fIzLi3UGSmA+uuZe''@;'; put 'put ''+b0vfMIX7vHBJidjzTx09IR880e/kG274A/lUtQE8iEwFYhey2rdTG1b19dty2kIzcNbDblwIoxSQ/5ApolDtTXVEJ2NSKobK9MQx6kCtHF0HZ4fJeWI51RXqgqRgcIz89gfe1E6o8iISL3NWCV1LtTN3dvX77q6my+2yqmzzXLyjP6dkwstl6Srp9cNjRhpUobhyNgptsxCjOXEWSJllegknsyu''@;'; put 'put ''9NBQxk6BORRahXmvzv3azyVk7FTIy4DVxNQ4zP2bHVn/k+B19QmUwPyT3/ui3LPiVvR+RvNnHy9qzexH0Pvzl2MzvWiB5uPdDfTQ8iUwB0JzXefoLpLAYX3huCOHUKT9LARn3OMamgO3Odz7Kl40gaihrtYVm01oazmhqdFtbzkG/dNrRlVJGVzs6mbX92bEprrb9T5jPIdHXlnqonGRumQEZOZ5''@;'; put 'put ''tSr3wSLpCkm4s1U4nm9pdV3dZ5svuI870IqxHzHjflsiMVvGz7JlJhJ4xk8NSaRMs2+9F5aZ/TZhUdryTEj2bcbFHFtFZrCM+O2ilUnUxNT42mC1jtT4+84WR57655gkE8FykwdGYNYgNuzv/usfuz9sxVBMWk/8+iOrcUxf/+HPZMeeAyP+BeYAhk6gEAIzMyrVEBqjaSHQvf2cI0d3m3Jyjykd''@;'; put 'put ''LSMTp5kZVza3eryXxaJSO6ra/Y5qiaTG0fVuqSTNXq+HxVNd7eUQp2r5VIGUEUeZ5KKMyz1zq4I0yEtm/3UfM8JRb/VPX8u8nrFCqiVSs7XV4qgXrS2oMdlyqc0Vjxdb2+QiHmvyTWd3jy8skjebu+p6W6bMtWTKEktGNxk49vMrLDPjCcdMefM5ZPa+jl7kCf9/tzLjDvpt3Vh09vl8XKLlOBEG''@;'; put 'put ''7KuvrUyf+2oUyZ3BKlcUGIG5fMkC+S9/9Du+Se7J9svuWjPjcXnucmxmF07+XIqHQCEFZoaKXuMaEJp6UurucKT5aMhNCmo+HpaED62amXHf6DaGuOnKigokEVVKHcTmOMR2ahZ7fe0o192uF5DaAlato5qApK73KGreZsTWwHVnrKAZATpQkGaeG/j+wZ4b+PpQ7mdE37WfGSgIM2Ix81zm8cDP''@;'; put 'put ''6Jj1QlnL/miXsP7+hPQn4q4FsqurxxWJrSgHpHV222CRbEPiTXtnp3R190ovPDhxH1oiB+7f9e5HY46MnmzL9IUpWC0dqarViEsk76gr/Hof8vh5V2D+MiR7NxoUmB6zzWV1eiRoHOb4GfCRB9BNvgVdfd4KWFefwAjML3zs/fLh9zzk2/jLG32x9IdGfyw1NpPWzBuR8t9rIyEwMxRcZwoMLOEw''@;'; put 'put ''LC1wGbZfQJmj/SGUvQhJ+9mwpHwSq5kZby63KsJUhKq4VAtnNdpfVsPiWVUFUYpSSlUQn3rfFaF4PSNEowhH0e9WBIxUlCorXZcmLelt5k+/g3o/I/oGik59buAy8DV9Xh8PFLV6P/Onr6UwESoSUyoY9RaP47ioVGujuqTVbd0HUaiJM92wPnbjtqcHf3Bp62N9Xl+PJ5KucLQCljylZYZqYZ2a''@;'; put 'put ''NM+SSbNTUjcOc4VwNHWDj4SQoMAceLT76/78u5Ny+yPBc5NruaLThxx54d9w4F9zvvHXDAxtNIEQmJps8D/+5Pdljo/KEw1tGtLvVmumZm4+89Kv5cfPvoQfF9Qv4OJrAmmBaaFM0fDrYHqxg65VE3GayAtC2QtbWs+F5PQ+Q84eNqT9IkoUW1eLJC+26fd1qDDUdpkqKvU2ghRUFZb6PVOxqm54''@;'; put 'put ''FaDu87hv4P1agSKzpD+f/mzmpG+hm4i6ogfWeFQxmYD40+fSVseUKyRVTCaT6fsqKlVgaiykPqf3rxWqme2Wwi2mREY1WjIB1qjxc2wZPR5JO2gHiOiPglorB2NNgTkYFX88VzvalrVfSCDBCzoMx0qhrNr53ntN6OzvseVpxGH2dAYnLCMQAnPCuEb5n//lPyCmMVr0J233Rw0/egcQm/nNJ34u''@;'; put 'put ''b+09mO9jm+vPgUAELr0lq5KyZE1Ikv3+MBnqBbDGamoqerzHgtg05MzBkJw7Epa2i5p5W3piM4cp5kc9IqDflfomW5qmOzJ+puVaLcsrTJyzCxNbme1uUGBmS6rw70u7yRNwk2PbASy6/tK3EFe/LzhxmIEQmA+uvEP+/W99xvfZ40P5OqpbT62Z2gHoyadfHMpH+d4CEtAfzcWrUrJ0DSyYPhGY''@;'; put 'put ''A3dfC/maprp+ITZh2VSBqTGb546giPtZXDX3BudqeeB+8/7IE4CxGDGUSNCZ5EBUWtKI2pVV9WiPF0NNV3i/1Rqst35bKDD9NiNXj2cB3OTLH4X1El6BoFgwdQ+1XNHO1xx549nglCsKhMD8w9/8pKxddXegBKYecGFYMl9EKaO//+p33dgwfY6Lvwj4XWAOpKV2SwNudBWdVkqk+5JaN9EH/Sha''@;'; put 'put ''U54ypas13a5y4Gd4nwSyJaDHVeUoGzGUtluvcgySdWrHiJRXIeMdFzl2ErGqKiqzXeEIvY8Cc4TAZ7lZtYKv/SyyycuC5Ykx0YnqwklHnv0SOqW5lZCzBOLjtxW9wFS3+N/9xX9EoedxbnyTj1kPeWgaj/S3//w12bRt15A/yw8UhkAxCcyBRNxTM+qvhdWVDh9lf78tXZccaT1jysVTIbdzUOcl''@;'; put 'put ''uP3jeJ0LCQxCIBKxpbJORMvHjJlkS8MEW0aNTgvKsApKnMDUSjkSiTqDDDfrpygws0Y1Im8Moej6Q59Lyli0CRVEJfn9giVbSOplSiYcNw6z81IwzrtFLzBnTp0kf/Onf+hmgAYpaF5jMc+jq8b/8X//vVuKJNuDlO8rLIFiFZjXUnKtmxCb2jlIY5v6+yzp7RBkpqvgNORSc0g6kKXe14NEjBJM''@;'; put 'put ''GLqWV6k9Nk0HiRW21DSK1I+33VjKukZHKmsdtGpEghQuVhyrOAXltXNJgXktEf89Xnp/0g1LCpqbPIIarK98PyTH3kLR1wAsRS8w3/3ASvnfPv/xoixPdKPjx0TW67pNW+Vv/+UbN3obXxthAkERmNdi1KvpEESDxm+qjcCCe7OvB3U320XamtPCU0VnF660412oF+iP/KZrd4OPh0HAjDhSUenA''@;'; put 'put ''GgkX91gISlgoa/Cn1spyFLlWV55mkLkxlBCVmqQTpIUC0/+zOXZKSh74TEq0GkGQDj+Nw9y93pZNT8X8PwlZjLDoBeYf/+5nZfXdKwIXf2mgbMo/ff378sJrr2cxjXzLSBEIqsC8lqdKCoHW1DI/IbVyQlWkIDrjKK3RC4HZAfd6J8ohdeBPYzl7ukIS70bXIQrPa1H65rEBq2SsDFbIOojJBgdi''@;'; put 'put ''0pEaiMpR9RCYNfoa6oWqmMTVhpPCRYbW38T/QfpBH2wyKDAHo+Kv5yJRRx7+YhzxvojvxbkoKMdkJg7zuf+fvesAkKo6u2fq9mVhadKLgKggCAFEaVKEqMRobFEsPxr9TTEaY/1jS6ImakSCYk9ETSxYwQIiUhRQmoICgvTey9Zpb/7zvWUImIXd2ZnZeffufbq8KW/uu/fcO/PO+8r5ns6gI8n+''@;'; put 'put ''1XUW8HH2RmmCKaLLj933ezRv2kS7+EvRwLzzobHYuIXmIrM5FoG6QjArmwD750/4x0FLp1g9o3Svh4KWrcVZVuShm53Ec7cbxXtJPPe6+Jxu9mLGGpW5qRXJUHb5kNlShoDA62WsZEZuFHkFTMKhS1tIZB5JZC6JZQWRpP4nM7tFi0+skTHLpFy1dblwxwOwIZjxoJW+Y08bGUKnXiSXCiSOVRcl''@;'; put 'put ''+b6yYBfjMP38vVQ/DlNpgqlr/KVUFFm6fBXueeTJCqtBdVenOa7WEajLBPNoYNuUkf8cQTxJVSxaM0XKKcj6AeXllEg6IJZOkHSSgPJx7HmAcZ6BUrpgwxWE52jnMa/bxkXGP1rIzAIyKD6dXc9Cdj7lgbjPpUs7u4DPs/leLv8yaYEWFQFexYRISka3JBJC3NwGzEMIGIJ5CApHP2jNcqIDLuJN''@;'; put 'put ''alQvuSKp6jPtJephLlNfD1Npgnn24H749ejL9Iu/9HjxxqQpeOnNyY7+gpvOAYZgxrcKbIMl/7H1Oe1/SJLYhCTo8TrBKjcspxikXFIp7ISiAPfltHiW0Q1fStIpj4OyLwHCAR7HYyMhciT+CWkSd64OmwzD440yy59/JI9+ksPMbBJJEsUsWiOz+ZdLi2RmHl3ZfD2DsZHiNpQkATevSzaJFFxp''@;'; put 'put ''JRZhIEnAERZpiGTVq8MQzKoxcsIRObx5GnFNObLzeNMka90JnUpCHyQOc/H0KBZOUV8PU2mCefN1ozC0f1/t4i/FRfXHMU+bKj5J+LKmugkhmKcMDOOUMyusc6k+n+7t2/SQ/0hWslw13EJC+X/sdYtEyWKN6jCJU9gmli6EKe0RJNkM0TIaLHfzMd30tJAG5LVyPqbUUohup3CQf6xiJMdLNSPL''@;'; put 'put ''kox4WvKoCRqReCe2Lao60YNZ8rYqRXXjoFi3znb3sxmGT9N6K8/lsdQ4j3I8/GNiqNTY9rIapawbL//8GSSG3EsspJe6fhlZFnx8LNZGv7zG432Mg/SQPHp9UkedbUs9UG5CqKOMixQrpC1YLiRdl6tsGhe6IZhpBD/OUw+5IoDmHfghfgl0Wfpiwdy8ysJHz2dU/KbEiYmTDleWYEr9cYm/bNOy''@;'; put 'put ''uXbxl9t27MKtfx6DomKaaczmaAQqapFbrEUuRMZktNTWZNkU6yDREtIlm9t+zndihFRelAMlN4XMS3JU5B8hZBYJakQIWUTqtHMvx9jvSz3sCqJm8T2JKY0eg2TKRY2foLWRpxViKScUQsm+CMEUUul2W/Zzed8jfeSf/X6MLB68Mh66QNp9kc4c7JP9gP2wXzH/pBoBQzBTjXDy2u/SP4Qew+Sm''@;'; put 'put ''UB83ufw2lBywMOmJDOUrrSlLMFtSWP3Ru2+GlFTUSf9S5IlmzV2AR556MXnfQtNSyhAwBDNl0Ka04UOe9IMPSPsqyOhhZz10zGGvHevhD62HRzw/+OSI147VmHkvbQgYgpk26OM+cdM2EQweRbkihpJocwNm34O68OFzXmxfz7tShTdlCeaAPj1w269G0w1G35dGm8gTPfvyREyeNkujUek7FEMw''@;'; put 'put ''9Z1bM7K6iYAhmOrMu4SUDL8myJKkZGW8e9OFZEoc5udvA8vnMZ5G4U1ZgnntZefjgrOHaZXgIzFcpWXluPvhJ/D9uo0KL6u603VDMOvOXJuR1g0EDMFUa54HXBxA2y5URtBIrkiS9VYuiGL2RLUTfZQlmA/e8Rt0PbETs0gZua/JJgRz3cbNuOPBsSgr18syq8kU/dcw/FlR/GhECCf0krrdJgbz''@;'; put 'put ''vwAyLxgEFEPA6/dg/ocuLJ/rsZPCFOt+netu59NC6H22XnGYHhaz2L05iklPZVYk8Ck6q0oSzHp5uXj8/ttQvyCfgfkVwfCK4n9EtyX+8pPZ8/D4c68c8bp54lwE/HTR9D47jI49DcF07iyZnhkEqo+AaIXOm+zGyvkeW22g+p80R6YDgYYtwxh2ZYRqC/q4yEUpIlAaweTxWSzPa0eIpwPahM+p''@;'; put 'put ''JME8sWM7PHjHjXZyj04JPqY8ZMLrudYbEILZ55wwOvQwBLPWwTcnNAikAAFDMFMAagqbrIjDDDAOk7IMGsVhyjqc+k9KFq2kFIWim5IEU0eB9Vj85f/9dRzWrN+k6HKqe932Z0dxxnkhtGEMUDhoXOR1bwWYEeuGgCGY6s3ogEuCaHMy+61RHKYk+sybBHzzmbqJPkoSzBuvuQzDB52hlcC6ib9U''@;'; put 'put ''70dNemwIpprzZnptEDgaAoZgHg0Z577e5Ywwegyni1wjPUxJ9Fm1MIpZb6ib6KMcwfRQVfmvf7gJndq3ZVk5lvLQZBP3uOhfPvr0BE1GVDeGYRPMn8rds9tYMOvGlJtRao6AIZjqTfBx7cMYfFmElbP0icOURJ+ddGZ+8JSfxR/UjMNUjmAW1q9nJ/jk5eZol+Dz3CsT8d7Umep9u+twjyX+p+95''@;'; put 'put ''EbTtKqUIjYu8Di8FM3RNEDAEU72JzM5jXfJrA8gpYF1yTeIwJdGnvJgVfcZnoPQA40sV3JQjmCd1bI8H77zRJpc6JfgEgyHc99hTWLZyjYLLqO522ZYpGh7GCb1Zi9zIFNXdhWBGrg0CQjDnvOPG94tNFrkqk0oVTAy5OohmbSm1XvG/Kl0/ej9ptJTQuY+eZ0WfdWpW9FGOYOqY4OOm23/rjp24''@;'; put 'put ''7U9jsL+o+OgLzrzjOAR8GVF0HRhGtzNJMMuNBdNxE2Q6ZBCIEwE3XZOzJ3qwbikJZlhN12ScQ9bicNEjPvmMKKywpVVFn5lvuLBqgZqZ5MoRzBuuvBgjzxqkVQUfIZiLli7D/Y89o1VddS1+taoYhMcfRaeeYfQ517jIq4DKvG0QUAMBcsqZr3qx8TsPrIghmGpMGnB89zBOv4C62Jplki+ZGcWX''@;'; put 'put ''H6iZ6KMcwdSxgo+XAusTJ0/Fi29Qk8BsSiHgZlB5i44WBl7KilKKBmIrBbjprEEglQiQT4aZOzp9At2SGzy84TcEM5VwJ7PtwuYRnHVVCF41uVilUHj9bmxYbmHahMxK33f6i0oRzLycbIy5/1Y0KmyACOUItNlcbjz61D/x2ZeLtRlSnRmIK4rCJhaGXhWEP4eB2BYDgMxmEDAIKImAy+NCyd4o''@;'; put 'put ''Ba79OLBbyKUhmKpMpCRcjvhFAPUK+TusSaKPm+tx306WjHwyQ8mqUkoRzLYtm+ORu2+mFIHcWepzIS8pLYMIrK/buEWV77Lp52EIZDGD8czLgmjc0s2YLX1Klx42RPPQIFAnEJAEn62rgRl0kZeXqJm5WycmqpJBCicYdgUTfTryTd7o68AQmOODQAB4/wk/ivaptx6VIpin9+yGu377CwJOxDXZ''@;'; put 'put ''JEts/aYtuOPBsSgtK9dkVHVrGL5MCz2GRnDSGSbRp27NvBmtbgiIuPXS2cDiaR6qQqh3QddtPuIdT8/hQXTpR36pUaKPWDE/et6DbWvVS/RRimBe+pPhuPLi87RK8PEw/nLO/MV4aNwL8X6XzPEOQUDiMFt3ttDvYgZvGQOmQ2bFdMMgED8C4iKf9ZoH65eZBJ/40Uv/Jzr0CKPvT/VL9Jn5OjPJ''@;'; put 'put ''FxqCmdIV9rvrRmFI/75alYj0eLx4/b2P8PJb76cUO9N46hAQ10y9BhYGM8C8XqGLmac6OGdSh5dp2SDgRASEXBbtAab904v9eyjYbeIvnThNx+xT41YRDL0yDK9XDxe5DFZqki+eHsXCKeplLyljwRQpn7/e9Vuc0KGdViUiwQSfvz39ImZ/seiYXxzzprMR8GVY1MKMoOsAI7ju7JkyvTMIVI6A''@;'; put 'put ''jxfyZZ8DC6bSPV5u3OOVo+TsV7Pzo/gxE32y85mexft8HW71JWxj9WILM17LcDb4lfROGYKZn5eLscwgb1C/QKsMcom7/MNfn8CaDSw6ajZlEXDx16xxS1oxR1EmQxQljKtc2bk0Ha+DCDCZwmKEy7SXvdixnu5xy2SPq7gK3O4oho8OoFEr9p6/wToQTEk827HBYk3yTOXGowzBbN3iODx69+9o''@;'; put 'put ''+vZqk0EuCT5bd+zCrX/8G4pKSlX8Pps+H4aAP9tCn7ND6NDDbcpGHoaLeWgQcDoCYiVasySKOW97ESgz1kunz9ex+tf/oiDancLikeGIcoSssnFJkk8RpbMmM5M8oJhlXRmC2bt7F9x98/UIBilorckmcktffbsC9zwyXhvSrMnU1GgYYsVs0pqSRZeH4MvgD5zRxKwRjuZDBoFaRcDNuOkwxdVf''@;'; put 'put ''8WLrGje/t8Z6Wav4J/lk3QeHcMogWi+pla2DBVOkisIh0cIUbVa1apIrQzBHDhuIG666RKsMcjcJ5kfTP8P4Ca8n+StmmksXAiJZdOqQCE6mVIapTZ6uWTDnNQhUHwE79nIukyg+8iFYbshl9ZFz5pHtu1WUjHRZ+tQkFyvmlBc8vAFSK5NcGYJ5/agLcd6IwVoRTJEoeu6ViXhv6kxnflNNr2qA''@;'; put 'put ''QBT5hYzFvCKEgoZGeL0GAJqPGARqDQG3102rkIXpL/uwb4e4xg3BrDXwU3Sixi0PZpL79Mok//RVMNnHlyLUUtOsMgTznpuvQ+9TT9FKZD1CF+pD457Dgq+XpWZ2TatpQcDWxTw5gv4XhCtcNDr4adKCpDmpQSCFCJBLCp2c/ZYX67/xsAqXIZcpRLvWms6tz0Sfa8qRnVshNKXDz69IFc2fEsXX''@;'; put 'put ''09WSKlKCYEpijyT4tG/TUiuJIikRKRV8Nm7ZVmtfPnOi2kHAli0aEkbXfi6T8FM7kJuzGATiQkASe5bMAr76xFTtiQs4hx/s9Vn48bVBFDQlwdSkJrkQzGVzLcx5Ry2pIiUIZv16+Xjsvt+jQUE9bSSKJIN809btuP2BMSguKXP4V9Z0ryYIZLNG+ek/C6JVJ7mARWrShPmMQcAgkAIEhFyu+9bC''@;'; put 'put ''3Ld9KC02WeMpgDh9TZJUDtWsJrnX78b65VF8MsEQzKQvrNbNKVF07y3wMilGqqbosIlw/JLlK3H3w09qMyYd5iWpY2BWeUFDCwMuCaGwmQfhoCGZScXXNGYQqAECQi63r4tg1kRm5e4St7hxjdcARkd/pO/IIDr0Zhc1qUnu8bqwa4tFqSLRwlRnvSphwTy1S2fcd8sNCIepJaHJJgk+02bNxdjn''@;'; put 'put ''/6XJiMwwKkNApIsatrDQ/8IQ8iXpJ2QU2CvDybxmEKgNBLx+D/ZstTDrDS/2bhODRW2c1ZyjthE4ZVAI3QfrI1UkWeTFey28R6miYJk6UkVKEMxhA07DzdddqVcGOWuQ/+vt9/Hqux/V9nfPnK+WEZDqEo1bR9DvggjyCt3GklnL+JvTGQQEgRi5/OwtD3ZvFnKpjiXIzGB8CBzfPYTTz+fdgyZS''@;'; put 'put ''RS5qtQbKK8TWi/epE9KhBMH8+U9H4IoLf6IVwXTRRT72uVcw/fMv4/vmmKOVRMAuJdkqgr4kmQWNXIgEjSVTyYk0nVYSAdstznJ7c5gxvne7sVwqOYlxdLpZ+zDOvCwCj0cTqSK5F6LqzPvP+LF7i7FgxrEUqj70N6N/jh8P7q8VwQyFwvjT488wDnNV1QCYI7RAQEhmg+Oi6H9RGPWbMDzIkEwt''@;'; put 'put ''5tUMwsEI8MIs5HLjCgvzJnkZc2m0Lh08W0nrWoPGFoaOLkdGFudbkzAIDzVbP37Rg00rDcFM2kKRhu5lichep3bVSgOzqLgEdz40lpnkO5KKlWnM6QjQXU5LZo/hFpq1ZbUficnU5AfQ6cib/tUtBMSt6GHs2spFUSya4kPJAcrWSN09s2mPQBYVPEZcG0BugVsrqaJP/02x9a/UEVt3vIvcQ1fy''@;'; put 'put ''o/f8Dse3ba2NBqb8yG3dvhO3PfA4DhQVa/9lNwP8IQKs9tMwiu7UyWzfBRDBfVO3/IcYmecGgZojINYeqd+8ZIYb384RBQd14tZqPmrzyRgCumphzpsUxTefqSO27niCmZuTjTHUwGzcsFArDczvVq+jBfPv2owp9sU2++ojIHfZJ54W5p8Fb4bJMK8+cuZIg8DRERDNwOK9UXw13Y3vF3thRYzV''@;'; put 'put ''8uho6fmOzPiQ/wmgWRu6hyr+V36gIrb+9Ywo5n9oCGbSJrNRYX2bYObm5DAhTI/ECJEomjv/Kzw47vmk4WQaSj8CYm1v0awJ2rZqjhlzFlSrQ76MKFqfFEG3MyOsYe6i1cW4zKsFnDnIIPADBFx0h4tLfOv3Liyc5sbOjW56Bqoml16vB5kZfpSUlhtN4h9gqvLTARcH0LaLC9GIpUUUkhDMFV9E''@;'; put 'put ''8dlbhmAmbV22a9UCD//hJv5w6COy7vX58MG0WRg/4fWk4WQaSj8CebS2//LqS9H1xI544PFn8c1331erU5L8U9jcQrfBEbTsJO5yJgxGTGBmtcAzBxkEiICHVstwuYXl8zx0ibtRVlS9RIiC/Dxcf8WFOOH4tviUih6vT5qKsvKAwVQDBHqfG0LnPvw91URs3cc1vvYbC9NfyVRmdhzvIu92Uif8''@;'; put 'put ''8dZf6SWyTg3MV96ajNfem6LMQjEdPTYCcgN0Conlnb++Bn6/D6vXbcBD417A9l17jv3Bw97NzLHQqVfEdpln5Rlr5mHQmIcGgUoRsBN5pMrJJuDrT1l+d5WXxQyqtlpKYxILf93lP8MIKpR4mBAk1dXGv/gapsycg2AwVOn5zIvqIKCb2LrX58bWtRY+eCZDmWQ1xxPMAX164HZetMvLy9VZ2VX0''@;'; put 'put ''VFzk41jBZyor+ZhNDwTycrN5sboQg/v1sdeqXKwWLlmGR5+eQNdb9WvNu6nb1riVha5nhtGsHbGhIdNYM/VYI2YUyUVArJahsiizxF1Y9pkXxfuEWFaPXEpPenU7GTdeezmyMyvqO2dkZGD5ytWUj3sWe/cfSG5nTWu1jkCnPmGcdq5YMCNauMilXORuVqGaJOUiFSkS4HiCOXLYANxw1aVaaWBK''@;'; put 'put ''1vDDT/4DXyxeWutfOnPC5CMglpDj27TEPZTTys/LtRO35DVxcn8yex6efmkiQnGWOc3IjuL4U5kA1NdCfn0XPy9M07jNkz97pkXVEHDzQis0cttaF5bMcnPvqbbVMjZWuSEUb8MJHXgXd7BepHxng6EQ7vvbU1ixai3VHfSI+Y+Nua7t23Zl9bQLI3BpUs1HykUe2BXFJJaLDCmiiuB4gjnqgnNw''@;'; put 'put ''Gf/KyqpvBXL6FykQDOLuh5/EyjXrnd5V079qIJDh97MQQD9ce9kFR2i1ygXL4sXrnQ8/wUtvvh93AoHEZtZrZOFkksy23SIUjBbpFZMEVI0pMYdoiIC4w70kl/sZdbJirgurFnkRKK2+xTIGiZcepNGXnIezBp0BNnnE99LP7/LY517GjLkLEDBu8hhkSu5bdIxgwCVheDWp5uPmYi0psjD5yQyU''@;'; put 'put ''Fashu+V4gvnLqy7GucMGaUUwi0tKcceDjxuRdSV/tv6702K1vImutt6VFAMQkhlmFuMbk6bUOObW66sQZz/xDAvN20fh8Zn4zP+eBfOKtgjwwuojsSwttrBmCTNp57ntijw1cRN6GSt9+QVn85oykHGXzDI/aL2MYZeZmYm3PpjGGPn3UVqmT1hWbHx1ad+oZQRDrwzDx99PHXw/dj3yAOuRj/Mz''@;'; put 'put ''HMQQzKSs5VtvuAqDTu+tTQymEI7tO3eTYI7Fnn37k4KRaSS9CDRv2hj33fK/aNKoYaXJaBKPKdaQf7/9Ad7+aHqNOyuSRs07RHBCHwtNGKfpYdC3sWjWGE7zQacjQOuij2s8QJ63aQWwfK4HOze7a6xrGSOXI88aRMslQ1h+QC4FDonDXPj1t3j4qRdNEQynr48q+lef5SKHjQ6wXKSYqas4WIG3''@;'; put 'put ''uWS59hmDSQvmvp3VU0lI97Acb8G8/5Yb0JPB2IGAHtIRQjA3bN6G2x8YY+6Q0736k3B+uWh16dwBd914LV0xR5fSknkPMdj8dVoyJ07+uNKLW3W748uwKGdkoSMzzpu2isJtiGZ1oTPHqYDAQYtlIGhh80oXvvvCg+3r44+zPHyoonV5+fnnYCQtl+JqrIxcyvHiPhcDwL2PPmk8TIcDqODj3PoW''@;'; put 'put ''hl8TQHZuRcyu8hyTBJMLFx8+68fOTYZgJrwk5aL88P/dhM4d21M2Iphwe05oQKxZK75fa6r4OGEyktAHv89LC3sv/Gb0ZVWuUZl7SfZ5mfGYk6bOSDiJQCyazWjR7HCqhaZto8jIFHc83UFGQzMJM2uaqG0ERCjdy78A9Sw3r3Tju/nuhImljCGLWeJXXTQSwwaeweQgfj8qsVzGxirXnHAkgj+N''@;'; put 'put ''eQZLl69K+Dsaa9fsax+B7FxaMK8pR34Djzb1yOXm6KMXvHZiW+0jGv8ZHW3B9FOQXMpEtmrRTJs65EIyFi1dbmcqxj9d5hNOQ0AuXucNPxNXXDiyWmEcMv+lFHKe/PEMWjKn0XWe+I2Tx2ehUXOgffewbdnMLmB8DnOBwhQY1sE15LQ5N/1JLgKSFS4ZsqX7o9hIV/iqhR7s3kKLZVhMNolt9evl''@;'; put 'put ''4xfUuuzbsxuJJSu6HINcxs7k43XnEbrIP/9ycdzqD7E2zD79CPgzoxhOF3lBE1owOe/KWzAJqdfrxscT3Nj4nTf9AFejB44mmLE65EeLbavG+Bx3iGhgzp63AA+Pf9FxfTMdih+B7KxMJg2cg/N/PKTaiWhCMoOhMGbOnW8nE+zdXxT/iSv5hJtZ53mFFlqdGEGbkyw0aFbxg2SsmpWAZV5KLwK0''@;'; put 'put ''xEhGuFSt2rvTwoZvPFi7xI19u6pX3rE6nZfY6F//z6U4sdPxjF2jFmI1yKW0K3GYT00QwfW5DM1K/AawOn01xyQfAY/HwohfhNDguCgJph732r4MDz55xYV1Sw3BTHjFyN3nY/f+Hg3q17O1BRNu0AENCMGc8unneOKfrzqgN6YLiSKQk52F0Zeeb8sUxSOlJSRTJIwWUYz9pTcnY93GLYl25YjP''@;'; put 'put ''+/xRNG1DsnlSGMd1iCJfrJo0CEWMC/0InMyTWkSA68/jcdNaCQTKLGynjuXapR5sWulBeYn0I3GLZWw0XTt3pFfhXHRq36bSxLvYcZXtJZP8H6+9g/emfIpyQzArg0iJ19zuKM66OojGbcguNXHmSD3yT19zYTUlulTYHG3BbNqoEI/ddyvESmRpInorQeQig/GP195VYX2YPlaBQG5OFq4fddGh''@;'; put 'put ''Cj5VHH7E2xLvJURz3aYteHniZHz51TdHvJ+MJzwFsvMYo9neQuvOEVYJiiKnHpOR+J8hm8lA2LRRFQLi/pYqJKJ4sG8H6N7zYMO3buzZVvOM8KOdUxLthvY/DRecPQSNGzaokWEiKyuLcdKT8eb7/eqQVQAACklJREFUH5u65EcDWoHX5bdvyNUBNBOCqYkF08vqVQunulgW1afADPCWsfvgnxJ6''@;'; put 'put ''Z24tmzWlBfMWO7Ovuu4NZ47kP73ysA75y29OYjbx1P+8aB4pi4AQTCkROYQXtZqWM5Wbjn0HiuzEn/c/mR1Xacl4gJM7+uwCSh21i6A5s9AbtSTZzHezri3jNY1lMx4ozbHHQoDrSZIRhFTSM40DuyPYtoakcrkbO9Z5bNkhublK9taEBokLzxmK/n16IjPDXyNyKX0SgvnqOx/aig9GCzPZs1S7''@;'; put 'put ''7Q0eFUCLjjwnq6A5lujEAYkQzK8/BUmmP45Ppe9QRxPMDm1b4S93/da28mhDMEkmnv/Xm3h3yoz0zbo5c9IQSAbBlM54aHkRQfZFS5fh37y4rV63MWl9rKwhqRKUW2DZ7qPmrHjRRMhmfTf7IVpr4krXxKdU2eDNa8lHgHzRS/e3i+tHLJVFrLazbb0bm1eIxJCLLnAhlMknlbGB/KjbSbjkJyNw''@;'; put 'put ''PK8ZDLZMyOMlLvIXX3+Xv9GfGgtmDGBF9wMvDaL1yew8Ex51IJhy07ZmCTDztQwlZsTRBPNkBmf/+fZfJ/Rj4bRZcPMKPu6Ff+HjWfOc1jXTnxogkCyCKacWq44QzW07dtmC7J/M/iIpWeZVDotkMzsnioYUb2/GSkGN20RQ0BDwM6Bc4kSNK71KBOveAeSKHlopXbzgybotL4ngwE4Xtq0jqfze''@;'; put 'put ''hV3U6Qva1X1TRyoF9IYNCmxtyyH9ToPUFw9TBizRzcRgJoqgcz7f/6IA2nVlMhlvmHUhmGtJMGcYgpn4Iut+8gm4//e/TMqPRuK9SVIL/DF+7JmXMGvewiQ1aJpJJwLJJJixcdjWTIqyL6Q1U0TZv1u9LvZWyvfiKfDz5rheEwvHtWGiEN3pDZqSgNZjcgbzhKK0bobpbhKXk9nqEALkieL2lnhK''@;'; put 'put ''qYITCkVQvBfYs9Vtk8rt61gjfIe4xLlIamHz0RPUp0dXnD9iMNq1aZmw1fLwLksW+fP/fgvvT5vNJB89CnwcPr669LjfzwJo300fginfvx0bLXzwdJYS0+hoC2afU7vgDzddX6WAtRJIH+xkhBfmR8b/A/MWLVWp26avR0EgFQRTTiVWIYnN3L13H6ZSLmXKjM+xa8++o/QidS+LKz0730LDFrCz''@;'; put 'put ''0huyvm+9hlFk5njZR8Y1GcKZOvDT2TJ5oodrMGahDAdIKA+4sG8bbOukuL33bmcZx1LpZGqtlD+EoWO71rb27I9Y4U10aEOh0A8PSei5EMzxL76GqbOMTFFCQDrgw6f/JIjje3F98oZdh1tiqUe+b3sU747LdAC6VXfB0QSzX+9Tcedvrq1x8kTVw6/9IyS27YG/P2eLrdf+2c0Zk41AqghmrJ9i''@;'; put 'put ''zSSTw9oNmyjOPhOfz/8qrSVG3R5qbTaIorA566G3tlDYzEJ+IQlnNqtliIWToZtyExUVC6cOv+ixidB5z+tvzN3NKEqGJEVRXkZCua/CKrlroxs7t7hwYAflhMTtHa1dQhmD/rgmDTGc1XjOPP1HqF9Qz/ZspSI23xDMGOLq7/UkmBYJprFgJrw6B/btidt/dU21BawTPmEtNBAMhvDnsc9iCcuQ''@;'; put 'put ''mU19BEQH80pW8Rl51qCUrlOpLiJlJpetXE2iOctOBgpwLaV7k8x0qfnboFnUzkovpKhxfkOL9X9JWvwkx5JwIUlDQjjlz2zpReAwy6SQSU4Ps7ojKD0AFO12UTqI8ZMkk/tpnSzex9Km1BlPRcZ3PCA0KqxPUtkLQ/r1QdPGDW3B9Iikp6doMwQzRcCmoVkdCeaebRYmPWEIZsLL6dyhA3DDVZdo''@;'; put 'put ''ZcGUyhD3/m0865GvSxgf00D6ERCCOepn59ouu3iE1mvS85jbXMSfly5fSbf5HCz6ZjlDSNJPNGPjEbd5JhOG6jVm0hDJZgNaOAv4OKcea6XnuCuqt5DViGtdEojEWmYsnTH0krinkdGOmZREHJJKWTuSrBUoJZlk4ajivR6SSdDl7aE2pcu2VgbL5fzpsU5WNnLRsTyjV3ebWIpknWzJSOKp7FyH''@;'; put 'put ''v2YI5uFoqP1YO4LJ73HRnijeGmNc5AmvzCt44b7kvBEs16VPoLUEjd/76HgmbqxPGB/TQPoRqE2CGRutkAWxaArR/Pa7VbYigdS3Lym103Zjhzlm76FbPTu/wrJZ0ISkk0lD+SxpmZ3PsnzZJJ5ZjOdkb+08T0M8qz9vBE3WAjkk5YEq9hJOYZFIBmmVDLA6TvEBNy2TJJI7hUhWWClLi2iZtH9S''@;'; put 'put ''BXXnbVLiUbxX/Xv3QDM+lq02iGUMCUMwY0iov9eNYNozwq/thLsNwUx4dV5+/tn4Of90IZhyMSgpLcVdf3mCpQE3J4yPaSD9CKSDYMZGHSOaYQawr1q7HjPmzMcXi5di526m9zp8q7B0WsirD+QyhrOAiUOSPJRNd3tWLvd5kuQkuoq0wNnedYnrFI97RXyn7Wy3/3H4QBPpnhBHfl4C+2WuxRIp''@;'; put 'put ''Gdzyori2g4EwiSRd3NSYLGECTvFexknSzX1gF5/TvV28HwiVixtcWnH25vV60LFtawxifGUvJu80LGxgy9PVJrGMIWQIZgwJ9fdaEkxOy4R7DMFMeHVeP+pCnDtsoDZZ5IZgJrwkHNdAOgnm4WCIRVPI19YdO/ElFQpmfbEQq9dvpls0dbFqh58/WY/dZJMZWYzrbGAhpwB2QlEuqw/JX1ZexXte''@;'; put 'put ''/rb6M4SAMsbTdv/y7CSf4nIXd7vtdudLkmh0iIMeepCsntawnQp+KIZGEsWKJzZpFPIozJH/S1ejtEJGKA4dDFh2HKSQyDJaHktJJEuYfFMkfxQzL9vvRlkp3d+2/KM0qtZWkJ+HHl07YwCr73Tu0A45Odl2Vng6SwMbgqnWGjpWb3UkmPLdePm+7GMN2zHvOTqL/LZfXo1+dJMkW4YiXegbgpku''@;'; put 'put ''5FN3XqcQzNgIRdpI6puXlJRiBfUzP/tyERZ/s0IJq2ZsDEfbe9wWvJkuZqxbdpxnZh5Y6lIsnizvl2sxxlNc7i5kZFjw8zi3Nwo3S/b6xBIqBE6EPIWQygliXIxsTnhpbLMpaex5bB978/B97PPc07Z46B2bOMozeUnalsdCfvmogjQKcZQ/un2ZQBMKuEgiKVROklhezOxtksgyurbLikgoiyus''@;'; put 'put ''k4EyN49hW9Z/ziPNqrpl+P2suNMSfXt2Q8+uJ+I4usE9nBv5nU9FVni8OBmCGS9izj1eN4JpyxTtoEzR340FM+FVd9sNJJh9DMFMGEjTQMoQcBrBjA005j6XC/b2nbuxdMUqzF3wFZYzuexAEZmLphsdwjap9Aqx9FnwMdnSz8fezCh8/E32ZXDPMr4iJu/xR1k5ifGs3FeQUVZSYla820twyAxt''@;'; put 'put ''PkqSam+yO8jvLBI9SyyGfC4Z8lZIpH1IGENCHGlN5D4UdiMc4D7oIpEkiWR4bDggRNFCJFiRnS1xkHK8fPZQ4/JQw02sza2aH4ceXTrbLvC2rVsgmzW/xcKeDjf4sSA2BPNY6Kj1npYEc7s6MkX/DwAA///r8VITAABAAElEQVTsXQd8FNX2/rZl0xMSSkLovXcBBUSKgNg7dkXF8tRn74o+n/7V''@;'; put 'put ''J4oFsIMdO4KCFEFA6b33HkpIAklI22z5nzNhNcQkpGyZuXvmR5jd2Zk7937nzsw3p5q6DrrUA50uj919C/r17o6ioiKd9rBq3TKZTMjNy8NTr4zDnv2pVTtY9tYlAlGREbjhigtxybCByM/P12UfLRYLbDYbHHQdHTpyFBu2bMfS1euxbdc+ZGXn6LLPeuqUx/P3LZKvYVkqh4DNakXD+kno2rEN''@;'; put 'put ''undqh6YNUxAXGwO32w2n04mSuFauxcDsZbfbMX7SZMxeuASFhY7AnFTO4hcEzrrUgVY9TPA4Xfj7KvbLqQLSqMlswvEjbvz0TkRAzlfTk5iEYNYUwsofLwSz8lgZZU8jEMySWFrpoc9/TDaPpKVj07adWLl+M7Zs3430Y8d1+9AvOQb5rF8EIiPC0aRhfXTt0Aad27VGo5QkxMbEaPOKSSWTS70v''@;'; put 'put ''YWFheOvDz/H74hUodKih3NA75v7q39lXFaJZJyKYLrc6BPMwEcxxQjBrPGdEg1ljCKUBPyNgNIJZEg6vZtPlciE94xh2k1Z93aZt2Eikc//Bw8gvKCy5u3wWBP6BgNlsRp3EWmjVtDE6t2+NNi2aoH69OoiIiADPK/4zAqksOTDW9o/94DMsWLJKexEr+Zt8NhYCqhFMs8WEQzs9mDkx3BCCEA1m''@;'; put 'put ''AMUkGswAgh2gUxmZYJaEiIkCP1h5yc8vQOrhNGzfvZfM6TvIlL4XR9IzyKzpKnmIfA5RBGKjozTTd8e2LdG2RVM0bZSChFrx4BcWJpRGd2kqJpifE8FcKQTT4HN84PWFaNiaBuH2KKHBtFhN2L0O+P1ruyEko2uC+fg9I9G3ZzfD37C8M0EIphcJddaqEMzSEuGHLBMG1j5l5+QQ4TyKrTt3Y8uO''@;'; put 'put ''Pdi5dz+Oph9DEZk8ZVEfAZ7jKUl10apZY7Rv3QLNGqeQ1jIBEeHhf/lTGk1LWZHUhGBWhI5xfmMf33NvdCClFfVZIYK5YzWw8DshmDWeiQ/dcQMG9OmlHMF8+tVx2L1PgnxqPEF00ICqBLMktKzdZLLp1VDlnMjFwSNp2LF7P5FOIpx79iMtI1NM6iVBM/Bn1lAmk5mbCWXblqyhbKCZwSPJ7M0v''@;'; put 'put ''yayhZE2lqosQTDUkazYRwbzFgaSmFN5Drr8qBPlYw8xYPRdYPTvMEELStQbzRorOHXHJeRTJp44vWKHDgefGTNA0QYaYIdLJChEIBYJZGoCShJO1BCeIcGZQgNCeAweJbB7Ajj37cODgERyjCHWViUhpXIz4nSO9E2vFUTBOMmkmG6Bl00ZaYE5iQi1NQ8lj4uAc/guVRQimGpI2W9wYdqsTtRu4''@;'; put 'put ''QVxTCYJps1uwdAawYX6xO5PeJaVrgnndZcNx3WUXqEUwKe3Fc68LwdT7hVHZ/oUiwSyNDWu1WLvJ0em8sIaL0x8dPpqB/amHsWvfAeyjNWs9s7JPiGm9NIAB+m61WlArNlbTTnKkd/MmDdGI0ghxkA6nD2L58QsDk8lQfjEQghmgCenn01htHgy/vRDxSSYimGr4YIaFWzB3sgm7Vhffa/0MYY2b''@;'; put 'put ''1zXBHHHxMNx45UVKEUwOlPjvm+9jLUXrymJ8BIRgli3DklpO3oOtEGxaT888rkWoc5T6vtRDREIzadsx5FFgkV7zIpY9Qv1uZRyjoyJRKy4WKcl10TC5Hho1SKZ1EmonxFPaoGhwKh5emEjyn0o+lDWVjBDMmiKoj+PDI9wYQgSzVh2zMj6YNjKRz/nCjL0bhGDWeJYN6tsTj9w9UrcJrKszQCfl''@;'; put 'put ''43pl3EdYsXZTdQ6XY3SGgBDMyguEtZys7WRNGa9ZU8YR68ezs8nEnqVFrh+k6PVDaRk4cOgwjmXlaMQzlLVpFaHLGsmoyEjEk/axXp0ELT0Qpwhi/8m6tRO07fw7486LkMmK0Pz7N56f/5swCYtXrBVt+9+wGO5TZCyZyG8rRHS8WRkNJkeRz/7EigPbiq9pvQtF1xrMc87qgcfvuU0pgumBCWPe''@;'; put 'put ''nYQ/l6/R+9yQ/lUCASGYlQCpgl2YaHq1nbzmPyaeeVTxKic3D8eJZLJ/J6dJOkLazqOUrzPzeJZmgj+Rl48CcjlRlYCaCRu7PQycvDyOkpXXio9BnYQEjUzWq5NI60QkkJYymoJyOKLba+JmDaaXTIpWuILJV85PrMEc894n+HPZGklTVA5GRtgcm1hMMMMjyUROHVYhyMdMlXx+/ciKw3uEYNZ4''@;'; put 'put ''Dp7ZvTOevn8UHBQYo8piogfo2A+oSsSi5aoMKaTHIQTTP+Jnoukln17iyWdi4sTm9gJKAp9P66ycE5pfJ6+PZ2VrWk/2/8wmczyb5HM1Ekr7ExFl4soWhGCag1mbGGazajlHw4k88vyJJi0jm7TjYqKIRMaRaTuGtI+x2nf2jeR9IohkhlMJQ68WmIkjj4fXPB4hkr6bh2Ii9x2WwWwpIcmNoSML''@;'; put 'put ''YQsneqkCu2SWTOmWfnk/DBkHhWDWeG717NIBzz54pzJpihgQC5lf3vn4S8yav7jG+EgDwUdACGZwZFCagHrJqJdwMeniYCPO2lBU5NQIJn9mX08Hlf/LLyjQCCoTVS4HWEBklbfzvk4isbzmsAD2mebPbs8/SxxyBLaNyKJ2bpOZ/Bpt8G5j8sg1re20LSLcjgj+TNtY08i/8TZtX/rdTv6QrH3k''@;'; put 'put ''MXmXkuPwEkghkV50/LsWgulffAPVer0mLgy+wUnXlhoBPmTQoPuRBz+PD0NWuhDMGs+jTu1a4b+P3qOUCYwJ5qTJU/DDjN9qjI80EHwEhGAGXwYV9cBL2pgEekko7+/dXvJzSQLn/exdl3cObpMX77rkZz7We7xXa1p6XXIfrSH5L+gICMEMugh80oGGrV045xonOB+mEgpMMo8X5rkwbUI4co//''@;'; put 'put ''/TLqE7D81IiufTA50e8rT92v3by9N2o/4RCwZi0WKyb/NB1f/kjJrGQxPAJMMDlf68XDBirlK2x4wcgABIFqIlBMMKUWeTXh081hLbq60OcyKgjALiS66VX1O8L+l7nZRDDHhaMgTwhm9ZE8eWRjSq3x+uiHNb8jVQgmm8J+mjkPH375Q43xkQaCjwD7zo0ccQnOG9iP/AILgt8h6YEgIAjUCAFO''@;'; put 'put ''4fQ2uTHN+3OZ5j5Ro8bk4KAh0LZPEXqdR+6X5PKiBMG0mJCV4cbP4+wocgjBrPHESq5XG2Ofe0TzZVKFYLKJfM6CxXjroy9rjI80EHwEoqMicOcNV2FQv95CMIMvDumBIFBjBNh3dsInX2MW3acLKThMFmMi0PXcInTpT0FwFNinAsHkFEUZB4Fp5IPp8RS75uhdMro2kXNSYNZgciSl13dJ74Ce''@;'; put 'put ''rn9MMBctW42Xx318ul3ldwMgwATzjuuvxOCzzxSCaQB5SRcFgdMhwATzwy++xy+/LdSCxE63v/yuTwTOutiBlj05MkYNDabVZkbqTjd+/dB+is+3PtEv7pWuCSZXnHjjuYeplFmCMoE+HFywZsMWKhf57l8BAHqeINK3ihEQglkxPvKrIGA0BMIp0n/S11M0VyZObyWLMRE4Z0QhGndkgqmGBpPr''@;'; put 'put ''kO9a78K8L8INIxBdE0zO+zb2+Ueo3Fk9LeebYVCtoKNMMLfv2ovHX3pTS4dSwa7ykwEQEBO5AYQkXRQEqoBAREQEvvjhZ3z/yxwtrVUVDpVddYKAiYziw251oG4TMo5ThjEVTORch3zTYg8WTSku86oTqCvshq4JJnsZjP3Po2jepBHloiuqcCBG+ZHTmaRSObzHXxpLiaDzjNJt6Wc5CMRSFZV7''@;'; put 'put ''Rl6Dvj27aQnAy9lNNgsCgoBBEGCCOXnKdHwzbZYQTIPIrHQ3w+xEMG8vQHxddcpEMsFcTdkNV86ylR6ubr/rmmAyai89fi86t2+jTDUfJphHMzLx1CvvIC09U7cTQzpWOQRioiM1H0wJ8qkcXrKXIKB3BESDqXcJnb5/UXFEMKkOeVQc5b/lfLSnP0T3ezDBXDwV2PinEEyfCeup+25D317dlQqg''@;'; put 'put ''4GoiTDD37E/1GU7SUHAQ4DRFt15zKYYN6KvUHA0OmnJWQSD4CLAP5kTywZxK6eTEBzP48qhOD5QrE0kgMMGc+6UJu9ZaqwNJUI7RvQbz37ddp+UYzM/PDwpA/jgpl5574c33sX7zdn80L20GEIFIqhF93aXDcfkFQyTRegBxl1MJAv5CwJumaOb8RVr5UH+dR9r1HwIprVwYQFV8LGY1tJeMFKcp''@;'; put 'put ''mjXJgtTtQjB9NnNuufpiXH3xeWo9vKlu8evvfYKFS1f5DCdpKDgIcF3pi4acg1tGXCoazOCIQM4qCPgUAYvFglfHT8SSleskENOnyAausZbdXDiLq/gokgMTHJDipjrk74ch86Ax6pCztHWvwbxs+CCMojyDKmkwORcm51mbOut3loEsBkbARrLs07MrHr7zJmUC0QwsDum6IFAjBDjLR0FhIZ4f''@;'; put 'put ''8y627txD/IRCkGUxHAJdBjjQZRDFkitSxcdEZSId+S5MHW+cOuQ8aXRPMAf26YlH/zVSKYLJ5SK/+3k2PvmWPHZlMTQCFnogtWnZFM8+cAfsVGJOlYpThhaKdF4QqCYCfG9OPXxEI5iH0tKr2YocFmwE+lxciBY9qZyiIknWzVQmMueYm+qQ2+EoMEaZSJ4DuieYZ3Ruj9EP3aWUdog1mPMXLceY''@;'; put 'put ''9z4N9nUo568hAkwo69VJxHM0RxulJCs1T2sIjRwuCBgOAfa/XLpqHd744HNk55wwXP+lw4QA3ZMH3+hASiv6TGZlFSLI2f/yaKobv5AG06PZy40had0TzJZNG+HVpx/QSiOpoh2Saj7GuDgq28sYiiT/1y3XoP+ZPcQPs7KgyX6CgA4R4Ajyz7//GT9Mn4P8gkId9lC6dDoEbGFunHebA/FJ6qQo''@;'; put 'put ''soaZsW+TG3M+M04VH5aT7glmct3aeIOq+UTQha9KPXLOhbn3wEGtmo/cxE53u9D/72FhNgzpfxbuvulqSbauf3FJDwWBMhHg+zL7XL7wxntYv2WHMuWJyxyswhuj492UZL0QkdFEMGmcKmgwi6v4uKmKj91QktM9wVSxHrkkWzfUNXLazrI8mzSoj/88cjfiYmPkwXRaxGQHQUB/CISRD/XWnbvx''@;'; put 'put ''0lsfIj3zuP46KD2qFAJ1G7lw7o1OWG1qmMd50Ewwl88A1v5unCTr3G/dE0x2un599ENo1rihUv5tHKk4+rUJ2EZ1yWUxPgJsJueSkWf3FjO58aUpIwhFBMQ8robUm3Z2ot/lbqrg41ZCe8lSYYI5bzKwc7UQTJ/PUtYM9ejcQSnzI/keY8y7n2DRijU+x0saDDwCVsqd17t7Jzxy181aJLkq/sKB''@;'; put 'put ''R1LOKAgEHgHOfclBPc+9/i527tkv2SACLwKfnVG1FEUMDEeRz/zYgkO7jJNknfutew0md/KBUddj6Dl9lUpVxJHkH335PX6a+TsPURYFEIgn8/hjlFKrc/vWSr0MKSAaGYIgUCECXH/859nztRKRuXnqVI2rcNCK/tj3CkpR1NUMjyIpisgDC04nJVkfH4asdOMkWefpZQiCeeMVF+Lay85XjmBO''@;'; put 'put ''/20B3v30W0Uv89AbFidd70tJ1x8YdYMWkCZazNCbAzJi4yHAWT2YVD5P2svt5LLkpjQ3shgTAbPJg3NHOpDUhGRIOfJVkKSZkqznZrsx9R07CvONkwOTZ5AhCOawAX1w/+03KEUw+aa2ct0m/IciFmVRBwEO8vn3rdfizB5dJGWROmKVkSiMAGsvv5n6Kyb/9Cvy8gsUHqn6Q4uMdmMopSiKSVAn''@;'; put 'put ''RRHnwEw74MH0CXYizBwXb5zFEARTxWTrTDD37E+VVEXGuVYq1VNvZZ8n770NMdFRElFeKdRkJ0EgOAhw5Piefal46e0PqYJPWnA6IWf1GQKJ9V0YeksRrGE+azLoDdnsFuxc68bvXxkrRREDZwiC2bRRCl575kGwI7ZKZses7Bw88fLbOHTkaNAnsXTAdwiE28Nw0ZBzcPPVl4gvpu9glZYEAZ8i''@;'; put 'put ''wC/5bA7nYMulq9ajyOn0afvSWOARaNqJIsivUC+CfM1cN1bMFILplxmVEB+Lsc8/ivi4WKU0Qi6XWzORr9u8zS+4SaPBQyAuJhr3UHWffr27K+XaETxE5cyCgG8R4LREP/wyG1/8OF1M476FNmitdR1UhM4DyPfS5VLC/5KB5BRFC74zYdtyY0WQc98NocG0Wi2UC/Nh5XJhmkkj++6n32DG3D9Y''@;'; put 'put ''FrIohAAnX29Yvx4evfsWbd4WUt5TWQQBQUAfCLDf5bLV6zGWao5nHs/SR6ekFzVGoP8IB5p0oGZIeaNCgA8DYuEURZOsOLjDWBHk3HdDEEzu6OgH70Cvbp2VMjlyEvmfZs7Fh1/+yEOURTEE2B+zXavmeOjOG1EnMQEOh0OxEcpwBAHjIWC327F73wG8Om4i9h08rJTblfGk4bseW60erURkQjIR''@;'; put 'put ''G2KXKhBMTlFU5OAURXZkZxorgpwlaxiCeecNV+KS8wYpZW5kH6BV6zdr6TF8d5lJS3pCgLXv3Tq0xX0UWc4uHkVFRXrqnvRFEAgpBJhcss/7axMmaVXUuPa4LGogEJdIAT63FSE8kogNDUkFgskJ1rPTPZhGBLPIYawIcp5VhiGYHDRx980jlCKYbEZNPXQEj744VsvDpsZlLqMojQDnx+zZtYPm''@;'; put 'put ''k8mR5UIySyMk3wUB/yPA5DItPUMzi6/fskMpf37/o6f/MzRs7UL/a12wUAJMFcglI24NMyN1u5uq+ITrXwBl9NAwBJMf0KMfvEs5MyMn+H361XcoZdHBMsQjm1RBgEkml5K8+6arEU11y50SsaqKaGUcBkCAyeVBSkP01kdfYuO2nUIuDSCzqnax09lF6DZEvQCfjYs8WPyTMfMuGYZgNk5Jxmuj''@;'; put 'put ''HwI/qFVKVQSTmdJkTMIfy1ZX9XqS/Q2GAJvLu3dsh/tuuw5cVlJ8Mg0mQOmuIRHgaPFde/fjzQ+/0OqMi1nckGI8bafPvqoQzTqZKIJcHQ0mR5D/SSEam5fYTjt+Pe5gGIIZEx2ppSriYAkXpSBQZeHcnt9Mm4nPv/9FlSHJOCpAgOV9Vo/OuIVyZNarkygkswKs5CdBoCYIsAsSay5Xk5/7BMrW''@;'; put 'put ''cYDckZRSTtQEHMWOtdrcOI8q+NRSKMCHRcRVfGZOtFAEufFSFHH/DUMw+Wbx8pP/Roc2LZV6KHOqomWr1uHFtz5kecgSAgiwJrND6xa49ZpL0bxJI20+y4MvBAQvQwwYAvwix0GUs+Yvwmff/aylIuJniCxqIlCrrhtDbimEPYpkrIgDJk9Xx8kI8hwDRpDzTDMMweTO3k+mxaED+ipV45lvevxm''@;'; put 'put ''/ZgE+rCIQ2bhh1+TBvVx/eXnU/qtTppPplsiWkNG/jJQ/yFgs9lQSCnBfp49H19NmYGCQkkP5j+09dFyk44unH2li9ITqWMe5/yXmUc9+GWcnZ4Pxnw5MhTBvHz4YNx+/RVKRZLz5ZlfUIhnKNBn594D+rhapRcBQyAhPg6XDhuA88/tjzB6MEqEecCglxMpiAD7W3Iwz+SfZuDP5WukQo+CMi5r''@;'; put 'put ''SN2HOdCpH+B2qkMwuQb57vUuzP3CmBHkLCdDEcwzOrfHcw/frZSJXBMCabPe+fhLzFm4tKxrR7YpjkBkRDj5ZXbBiIuHoX5SXTGZKy5vGZ7vEfCaxNnf8vMffsGOPfuV8tX3PWLqtMi6vcE3FyKlOVnH3R5VLORaichVczxYNduYEeQ8wwxFMBsk18WYZx/SHLdV8lnjij5sznnv8+/UuepDcSRU''@;'; put 'put ''PiIyGrBHeHAsrWpVF7jqT7MmDXHVhUPQm0zmvEgqo1CcRDLmqiLAgTw5J3K1e+jPcxbgWFZ2VZtATIIbucdNcLuNaYqs8oAVOiAixo3htxciKt5MJnJ1CCZrMOd+YSItpjEDfHiKGYpghtvDMPY/jyIlqZ5SD1/2x9uwZTue/d94KqEqlSWMeu8LI2LZY0gREhsAcz+zIje7aiSTx82J2Af17YlL''@;'; put 'put ''hg2kKPPaWmlUlV6mjCpb6bf+EGCtJf9t3LpTM4nzPdRR5KxyR9v3caLbQDc2Lzdh7TwrigqFZFYZxCAeUL+FCwOvddJcUIdccoCP00n+l+/acbyKyoogiuIfpzYUweTeP/fQXVQVpaNSNck50CfzeBae+L+3cORoxj+EJBv0j4DZ7EG9JnSju8EJm82CPRtclL+MyntV42FlpYdmk4b1cRn5HPfu''@;'; put 'put ''1lHT2EvOTP3PAelhYBDg+yVrLdMzMjF97h+YMXchjmefqNbJG7Zxos9lbkREe5B/woM5E8OQfpie7h4hmdUCNAgHdepPCdbPVSvB+t8lIsOoRGTVFRVBEEOZpzQcwbzl6otx9cXnKRfo4yLfkVfHf4xlqzeUKSjZqG8EwiLc6HVBEVp1N8Pp4DytFmxe5sGK6bZqm93YN5P9ji85byBaNWtC7biV''@;'; put 'put ''0tzrW6LSOz0iEBZGD1yqgrVk5VpM+XUe+Vruo2uienmR4+q4cc7VDsTVI1MeGY6sZJJcORvY8IcVzmq8GOoRL9X7xNadQdc50LAdjdSljgaTS0Tu2+TGnM+MG+DDc89wBLP/mT3w+D23KpWqiAXBpp5vplLCdXJQl8VgCJDvZWKyB+fe5IA9kipJ0MsCmzjcHnJ9WACsmmOj79XTiPANNCE+FoP7''@;'; put 'put ''9cYwStHFQUAcaa5SsQGDSVu6GwQEOPUQL9t27sGUmfOwYu3GGkWIs580V35JbmEq9tuj3IlmqxkZB9zk9xZWLfeWIMAS8qeMiPJg6KgCxNZSy/+SK/gYPcCHJ6fhCGbTRil47ZkHNUKmkm8a+2FyBOTzb7wn1SYMdtu02jxo09uFnsM9J7WXxQNgTulykVznmLDxz5qV+mKCmlS3Ns4lojmQfDTZ''@;'; put 'put ''P1OIpsEminS3yghwACS/fO/Zn4qZvy/C74uWIyuneuZw78nZV6/XRQ607EYXKOdN9Cbm1r56MO/LMKTuNFPJweq9FHrPI2v/I5DczIVB16vlf8mo2UiDOecLM/ZuMG6AD4/DcAQzItyOt//7OOrWTlRKi8MEIi09A0++/DbSM4+zbGQxCAL2SA/6XlGExm1NpxJM7j+5z7C5bdVvZDJfXPObhZnm''@;'; put 'put ''SXK9OhQI1EsjmnwdsOlc8mcaZLJINyuFAGss+aV7/8HD+G3hEsz7cznSjx2v8cs32RfQdYgLHfuQTZzs4n+Ry5O94sjdNfM8WPc75aQVM3mlZBXMnTqdTf6XQ9Tyv2TFRFGRGz9PsCM73RJMeGt8bsMRTB7x8w/fhTO6qBXow+MSP0xGwWiLh1KckJnmZgeiEujxRX5AJRdNB8Ik00Ekc45vSCa3''@;'; put 'put ''z0SzLtUyH3DWGejfuzsaplARXlqYaKqk2dcGJf+FBAL8ks3EkufvvtRDRCqX4ffFK7QXbp/MaWq30wAnugwgbmly/YNcMsgWmxkHd3ow/ysbCvKMG1wRChOG58TgG4rQoDXdcxXKf8n1xzMPE8EcH05KNGNr0Q1JMG+68kJcc+n5ygX6sDno22mz8Ol300Lh/qDEGE0UPZ7cnMw0lCbDxC+bp/JL''@;'; put 'put ''bYx/k0yQZsSKdQss1fbJLAu0WnGx6EWZFdg/uVWzRoiKitKStYufZlloyTa9IcCaSiaW/HK0ffc+zP1jKRZTEM+xrBzfdZXISEfSdnUeaILFSuSynGxwJirPl5flxsyJrD3iK9fYD3jfAai/liJjPTjvtgIl819uX+XBgm+Mm2DdO1sMSTDP6tEZT99/h1KpilggfKNdv3k7Rr8m+TC9E1Tva4vV''@;'; put 'put ''jRZdPTjrUhdcZNYob/GSTDf7ZM4in8wlpKkpf/fymqlwu53yxLZp3gRnk0azW8e2mp8mv+Vzwnapc14hdPJjgBFgbaXXvzIrOwfrNm/TzOBrN22tUfBOWcMwUxBex/5OdDqH7rEWijin666M98DiQ+lCdVMqzTmfW5G2x1LtDBBl9UO2+RaBhq1d6H+ti/J1qFMekhHiAJ9FP5mwaVHNXap8i3jV''@;'; put 'put ''WzMkwUyhSNoxox9COOVC84nppOq4+e2IbHJgf+Llt6ie7lG/nUMa9h0C1jA3OvR1o/sQD/lsnT5diuZfU2imFEaUDmU+JXX2Q44zflFJIK1m907t0Lt7J7Rp0RRxsTHatSJk03eyl5aqjgAH7Hi1lexfuWTlOixasQZ7ySRe3XRDFfXCaiWfy3OL0LY36SLNREQq8VLHOQgXfGulXLZmuA1uoqwI''@;'; put 'put ''G6P/1p2KWnTq71Gq/jgrzPkZMeNDG9L2Gtv/kueXIQmm1WrB66MfRrPGDdULbqDZNfaDzzB/8UqjX/8h0X+b3Y0ug1zodDb5P1aCYDIoZrNJ863ZtdaDNXMpJUqWpt/0C16sJapfrzbl0+ygEc4WTRsimkzootn0C9zSaBkIMKnkechz7iglR2dt5eIVa7GeKu+cyM0v4wjfbLJTbtqe5zvRvAsH''@;'; put 'put ''i/8zoKe8s7Af5uKpZmxfaSGrhP+uzfLOL9tPjwAXthhyi4OKW7D/ZQUa6dM3pas9+NnALho/jbejUAEfYEMSTJ4RD4y6HkP691EvHybdiGfO+wPjJn2tq4kvnSkbAVs4lYccWoR2Z5oqTTC5JQ7S8dDfIQooWDXbivRU/7+t2mxWNEiuh64d2qAHJXBv3rgBYmNiNPM5+2uKz2bZMpatVUOAzd9e''@;'; put 'put ''v0p2zcik6O+tO/dqfpVMKtMzjlFMRrlG6qqdrJy942q7Nc1lk/acl7by5JKbY4K55Gczti0XglkOvEHfXKuuG0NHFiKM8g6TB0T5Lg9B72nVOqAlWN9CFaU+sVftQJ3ubViCef7gs3HvyGuVC/ThmzPnfHvqlXeQm+e/t3udzkfDdUur4HO+C616VF6D6R0kiVozhxyn6qBrfrNhz3qOWg2MxoSt''@;'; put 'put ''AClJ9dClfSt069AWzZs0REKteC34iIMtmBio5n7ixV3WvkeACaVXU8llTdMzj2Hz9t1YRbl9N2zdoZFKF82pQCz1W7rQdZATtVPoWiqZ57KSJxeCWUmggrhb6zOc6H0xMUt6Mfbvq0pgB8n+lytm0vNgbs3yJge21+WfzbAEs2XTRnj16Qe0B6JqD0IHPeD/QwnXN27dWb7k5BddIFBMMJ1EMKum''@;'; put 'put ''wfR2numkyWJGYQGwdRkF//xhJdNIYEimtw9c+7x2YjzatWxGwUHtNJ/NOom1wGX5mGiK36YXKVl7EeAXYS+h5G3ZFKiTejgNm7bv0kzg23fto/rgOQF9SbGRP3TrXi6yJrgRGUfc0lm90oFCML1S1u/6bCrx2awjydhFL8L67WaVe8YpimZNsiJ1u/8tWlXuXDUOMCzB5DrNY59/hKqb1FHOtGe1''@;'; put 'put ''2vDlDz/jq59+rYZI5ZBAIlBTguntK/vesH7n8A56e51HEaz7gnODYeIQExWJFvQC16ltK7Rv3RwN69fTTOn8G5NNNqWr9lLnlYOsy0agNKHMy8ujwhCZVAt8PzZs2YEtO3cj9VAanDQ3grEkJLvQ+RwXGrbhSHEK/CiVj7YqfRKCWRW0Ar+vVh7y9kLEUt5hE7laqEIwNf/LEx5MfYdysOYG5/7v''@;'; put 'put ''a2kalmAyEE/eexv6UUqWggJS/yi0sGZg3aZtkq7IADL1FcHkoWomcyKaudkeqvpjIR8wKxwFgdVmloacTenJ9BLHkegdiGy2ataYqmglIDIyUttVzOmlEVPju9fkzfciXphQHqUKYzuJUG7ZsZt8KvfgwKEjPk8pVFX0wuweNOvGWksX4hIo3oMTbteQcQjBrKoUArt/wzYunHONi4qkqaW9ZP/L''@;'; put 'put ''A9s9mPUR5b/kh4ECi6EJ5mXDB2HU9Vcq54fJ84r9L5+kdEX7Ug8rMM3UHYIvCSajVGwyJ20mqTMP7TRpSdmP7NbP2yxbDlij2apZE3Ro0wKNqYIQm9O9hNNrTpe8m8aZ86ydZELJkd78mWV3Ijf3Lw0lm7u37dqDg0eOBp1QlkQ1qYkL7fu6kNKyWGvJVbRqyC215oVglkRZf597nU9pp84iWTvV''@;'; put 'put ''Ipia/+Vsyiwyx/gJ1r2zxtAEsy1pVV5+6n7NXKeayc5MmoP3P/8Ov8xZ4JWVrHWIgK8JpneI/AKrmUxygZ2rKG/mUgtyj+uvdF0x4UzSgoT4emzSsD7qJiYgOjpKIy18XXpJp2rXqFdWRlp7yaRXQ8l9ZwtQ5vEsHEpLx+59qUQm92prNoGzP7jelthE8rXs7USLTh6Ex3Bi9JprLUuOUQhmSTT0''@;'; put 'put ''9Zn9bIfdVoRaSR6loscZZfa//HWiBYd2GD/BunfWGJpgRoTb8eZ/HlXSD5NNU0tXrcOLb33olZWsdYiARjAvoCjy7lWPIq/McLR0RsQrjx/xYAuZzXett1A6JP0RTe9YwsJsqFc7USOazRo1IOLZgPJw1kV8XAyiTprVhXR60fLvmkkkE0rWTPJnxj0/Px9czCGNUgVxvW/2odx74KBW2CEnN0/T''@;'; put 'put ''Xvq3V9VvPTLGg+bdnGjZ3YXYRHoD46I8NbWHl9EdIZhlgKKTTay1HnorJ74k4ZO62hcaaz0MjZUJuTluTHvHjgIF8l96MTU0weRBPH7PSKrBfIZyfpg8No7CfOKlN3H4KOWxkUWXCIRFUB7MYWSy6VW9KPLKDIrN5mYreRyRf9nh3cCmJfSWu81KmsHKHB3cfZjgcNBQvTqJaNygvkY8G6UkIalO''@;'; put 'put ''bdSKj0VEePhfSbg5eIjNs/wn2s7KyY3x9f55Tdz8nbXGOSdywWUYj6RnYP/BIxqh5PVh0lTydn+Qs8r1ump7Rca40aQjlWQlX8uEJL4aSGPpI3N4WT0RglkWKvrYxgE+nSkFVQt6ybCRxk/TXuujazXqBftf7t/swexP1ch/6QXD8ATz/EH9cO+t1ynph2kircP4iZMxa8Fir7xkrTMEbOFUJnIw''@;'; put 'put ''+4L5R4NZcrjEGyg1jJmqVwEHd5JGc4mV/DSZePJD1zgLEyA2rdemvJv1k+qgQf0kNKDyr/Xr1aFcnHGIJfM6+3R6A0zKIp6hREC9BJLXjIlXM8kYFBYWIr+gEMezsin35HHNzM3BN4fSjpJWMo1M39na78aZHX/3NCrOgyYdqBJPNzcS6nHcAxMK//vdCcH8WwZ6/dSwjZPK8zqRkMzJ8DmrhV57''@;'; put 'put ''Wrl+sf/lkp+pfPBCNfJfekdteILJ1Ug4HybfeFV76FjItPXnslV4ZdxEr7xkrTMEmGB2G8z1yCtXi9wX3WeiyfWSnQ4mmiZsW2GmtfGrjjBxioqMQEJ8HFUcqktazkQkE+nkqHXeVkw8I2Cn/Jxcz9q7lNR68j2Av3sXvd4TmCx5Fx43L7z2/nl/Y3LtJZEnKJL7GBHGjGNZWgAOm7bTqPRiJn1n''@;'; put 'put ''a0dBIU0IBRau0tK0swuNO7gQz6bwABFLL3RCML1I6HsdGU3azMFFaNHVQ1aQk764+u5y2b3jKU5a+V8+CEP6fv0EdJbd2aptNTzBDKPyd2889ygaNUjWzEJVG76+9+aH0DHSTIiZXL9yCgbB9KLBHMVCpvMiCnJI28vBQFbs32pSooatd4zetY3SJcWQZjMuNgbx9JdIms7aCbU04plApva4mGiq''@;'; put 'put ''sR6paUbt9jCNhPJLJ5uNy3r59JJQ75rPw2S0NCEt/d3bn5IEkbfxd++2kp+95LHkcUwavflEC6nqDRPD/PwCMIHMzsklbWSOdt0zkeTgG/7LIr/JE+QjydrK8vrkPYcR11abB3WbuNG8E0eFU6L0WNLMk1YqGJHCQjCNNYMatXORNpMCf+oZU5vJyoKsdPK/HGeHs0i//vXVmRWGJ5g86H/dfDUu''@;'; put 'put ''HDJASTM5R5OPm/gVZs0XM3l1Jri/jwkmwfSOzUs02Ucz85AHezZasWeDGdnpat2svOMta82kjgOMIux2RETYERURoRFSJp2sFY0mk3tUZLj2OZyCA8PD7LDbbRoRDSNtKNdp54pGxSZoYu6kU7CSO4LJVBwcU/qcHipB6C196KJqIpxgnMkqE8aiIqdGGjkC2+Eo0ohhHkVq5xGJ5PRjubn5Gplk''@;'; put 'put ''H8lcCrrJzy/U9udjVSSPpbHzfuexxtYGGrV2olEHN+o0AKw2E1xkBueqA8GyegrB9ErIOOsICgDrOqgIzbu66aXSWL6ZbB7fstSDP35QJz2Rd+YoQTD79eqGJyjpOpuSVFtYA7J8zQYtmjyUHj5GkaMeCKYXK6ZFHAxkMnm0ZO0HdwB7N9hweI856AnbvX3U41ozS5/UQHJiea8Gkgkn/8YE3ruw''@;'; put 'put ''rxd/dxKpZELJf05nMbnk65MDZ+Q69aJV9poDNeo2pcCd9i4kkdYyKo4NhEQKivzvX1l2j07dKgTzVDyM9I3dKrqR2TwhyQJnoTHqlNvsFvw+2YSda9RJT+SdM0oQTA4WGEvpitiEVtLk5R2k0des6eCk6weoFJss+kJATwTTi4zGh0h5yWTJSdqgY4c9ZDrnKEULfSYzUnCq+Xm7J+sQRMBO2RZq''@;'; put 'put ''N3ShUVsXkpt6EFObEruzHzGR82BqK8sShRDMslAxzrbIWNJmDihCs+7km0kujXqONOeXVUcBmcfH23HiuFr+lzxjlCCYPJD/PnoPunZsSyYpNRzdeUzehYN9Pv7yB0yZOc+7SdY6QUCPBLMkNEw2zTYKHqEPBfkeZBwksrnFgoM7zMhKM14EesmxyWd9I2CPcCMxxU31wd1IIlIZVxfkisAmcDJ/''@;'; put 'put ''kwY4WCbw06EmBPN0CBnjd9aQdzuXk7LrV5tppXtz6g43Zn4cbgxQq9hLZQjm5cMH4XZFy0aymW795u0YPWYCaZ9E/VTFOe7X3fVOMEsOnt+WOSiI1/m5bvLXBFIp+vwwpTo6dpi0SYo5mJccu3wODAIRFNlbhzSV9VuRprIxaSrrkC8rkUoPkUq3jkllSXSEYJZEw9ifo0ib2UWLNGfXFv/mT60O''@;'; put 'put ''Uux/uWw6sG7+31kxqtOOXo9RhmC2aNJQS1fEZExFHyiONH1uzHhs3blXr3MpJPtlJIJZUkAUu0IBLcVks7DAQ9pMN47s4zJlZqQftCA/m/ZmJiqLIFABAmZ6aEcnUIBOIw9SWri0dXQtrh5E2nHKbmAUUllyiEIwS6KhxuemlJ2g60AH4pOscOnFN5Nur8xVZnB6ogPqmcd55ihDMNkhf8zoh9GM''@;'; put 'put ''8mJyChDVFk638t3Ps/HJt1NVG5qhx2NUglkSdKaRHBzE6TI4gvdElgfHDgKHiXCm7aUUGkctcOQL2SyJWSh/DrNT4vPk4rRCyRSsUyuJ0grF0MsKvdyzzy/8WGUnELgLwQwEyoE/Byfu7zLIQXkzi9+d/VkNqjKj49rjmQfd+PldO1km1cz4oQzBZIHeft1luPz8IUqmK+LIVq7Q8diLY7VUJ5WZ''@;'; put 'put ''wLKP/xFQgWCWREmjkScDhEDaqaJCIpzHgczDZqRRNPpRIp45aRby5xTCWRI3lT9brGTqTiBC2chNuSpJS9mAtJbxQFg4WYuYT5LpW2+BOjWRhxDMmqCn/2ObdXGSNpOS+NelF6IgajPZPL5uoQfLflYvPZF3FihFMLt2aIP/PPIvJTWYLDBO5THm3Un4c/kar/xkHWQEVCOYpeFkGmkizSb7bvIM''@;'; put 'put ''1Agnmc+z0kxITyXfTfrLPEI+nTkSnV4aO6N+t1DS8xgikAn1XahHhDKhvgfxtT2wRxancOJyjW6Daykrko0QzIrQUeO36HjOm+lAsy5cICE4vpmswZz1iQWp29RLT+SdJUoRTK5vPPb5R5BUt46SwTBSOtI7bfWzVp1glkZa01sS4SxOQu6hlzkPCvJIy5lJVaeOmJBxqDhgiJO8F+ZSbkOPaDpL''@;'; put 'put ''Y6i372GUQiiW/CgTUzxIbOBCYhJpKBPdlLDeqr1c/OVLqdewbx8DKgTTx4DqtDn2f+TE7F0GOlErwNpMdkfKyXRReqJwSlOkpnmcxa4UweQB3XfrtRg+6GwlzeQ8vmzKifn0K+9g/8HD/FWWICMQagSzNNwafaT7o4UTktMbOXmta1rO/FwP+XJyKiQyrx+yaBrP7Ayg8ASlDJFECKVhDNh3WxgR''@;'; put 'put ''R4qsja9DZDKZfCmJVMbVoWTnsVQJyU6CpHxWXkLJeYRChFOegr8QzFPgUP5LTLwbXSmdUdPOpM2kGR8I30xOrr51uRt/fG9XGl/lCGbvbp3wzAN3KJkPk2eixWLFVz/+gq9++lXpiWmUwYU6wSxLTsVaTpqrFKruJZ1OqtLCpDM/x4wcIprHj5roz4wT6SbkZpnIp7PYn6+s9mRb1RFgGYRFeqim''@;'; put 'put ''txtxiUQoiUzWqgf67CKCaUJ4JLk9aBk3in0oA/FQrfoognOEEMzg4B7Ms7I2s0U3NzqfQ5HmdSnS3OHfKkC2MDN++9xCZX3VjB73ylI5ghkbE423qKpPAlX3UTFnJKdh2rX3AJ5+9R0J9vHO4iCuhWBWDnyNdNJ/mj/nyfRIXDvdUeBCYR75cJ4gjecxC9VPNyE7kzSeR4E88vUszJP8nBUhzJmk''@;'; put 'put ''7EQkwyn/ZEwtN9X2Jo0k/XFQTjRpZsKjiWhGUI112pG1kRyQw2QyVLWTFWHp/U0IpheJ0FvzNcR5M5uTNpMvEn+8eJnJSpCbQ9Hj4+z00q2ueZxnj3IEkwf14KgbcG7/s1BQUMBflVs42Oe18ROxaOVa5cZmtAEJwayZxDTiSf5IXGnIfJJ4sjahiKI7CylSvZh8msjcToTzGK/NRDxNyMuh30gj''@;'; put 'put ''6ijg1Eqc+7Zm/dDz0VarmyK2vRpJUO1uIo/0IGQzd2QcmbxjSCNJfpQ2ikq1EJDs9soPRibwHv5TGBt/yE0Ipj9QNU6bfP9p1d2FzuSbGZtIwYs+1mayeXz7ag8WfK1u9LhX2koSzL49u+LJ+25HYWGhd5xKrS2U83PZ6vV48a0PtUStSg3OYIMRgukfgWnEk8gSE08T/ceaT20b3fxdFFjkKKIA''@;'; put 'put ''o0JaEwktIC1nYS4R0BO8JvJJnwv5cz7V+c2jYCN6z3QXAUVURZbJqJuy6gR7sVg84GhtK7lg2aiIhz2SNY2kcYwCIqI8RBpZKwnKL0mfo9ywhpOPZDiRSDKtWdnXlTWSRBw5kTlxSPogRNJXMhWC6Sskjd1OLAW6dSVtZpOOxb6ZnDnBFwtfw3O/NGP3enWjx704KUkwVTeTc07M/IJCPENm8h17''@;'; put 'put ''9ntlKesgICAEMwig0ynZNMz/kccIrTk2hQNUtI9ah1hz52QtHqXUcRK5dDrY1E5rqsHgJKLppHdPRyFpP3k7fS+i7S6NgNJvRRTo4mLNKFei0WgtkTn6TqTW42Zyx6cgOwKd30JKiGLjs4c0sNDIn4nyRtro2WGmtSXMQ8EznOaJCCSRSSsF2dh4bad9iFjy8RZaM2nkVFCsgSxun87ABJLZsLbm''@;'; put 'put ''UwqJ1ITr5/+EYPoZYEM1z76ZLnQf4iKXE7NmWalJ90PJPM44KUkweWD333Ydhg7oq6yZnCv7TJ05Dx98+QMPV5YgISAEM0jAV/K0XiLKuzN385I3vtFrX0qQUt6n3OUkuWPS99dCTZj5BNzUaRbtMI0rMkktboSTlGufuNHif6dpRX4OBAJCMAOBsrHOEVvbhZ7nFaFRe28J1OJruKqj0Mzjq8g8''@;'; put 'put ''/o365nHGRlmC2bNLB4x+6C5lo8lZe3I0IxNP/N9bSM+kUiuyBAUBJpjdB7vQvi9pwchvUBZBQBAwNgJCMI0tP3/1ni0VrXq5tLyZ0XGWat3vrSfN43tCwDzOclCWYEaE2/EmRZOrmnSdhWcmm9ykb6bgxxlz+assQUCA/eJ60Jtt216mat1wgtBlOaUgIAhUgIAQzArAkZ8oUwNpM4cVoXEHCgA6''@;'; put 'put ''WdWqMrBo5vFsF6a+E07+4ezbo/6iLMFk0Y26/nJcNvxcZZOuF6cs2o+nKPF6Xr6aEfN6vwQ5MKPXBS6KOhQNpt5lJf0TBCqDgBDMyqAU2vuwNrPNmS50HcB5ZSvnm8m1x7cspeTqP6idXL3kzFCaYHZo3QIvPn4v+cazc3z1fCZKgqXLz2Qqf/ujLzH3z2W67J7qndII5vlOtOohGkzVZS3jCw0E''@;'; put 'put ''hGCGhpx9Mcr4ui6yYDnRuK2ZggApo8NJ/+qy2uZ5NfsTEw5spai+EFmUJphWSuczZvRDaN6kEYqKKIRUwYVTFq3btA3PjZlAUbPiAxhoEQvBDDTicj5BwL8ICMH0L76qte7VZnYZ6KK0YmVrM7n2+PEMN34ZF07p0ioRFagISEoTTJbR1RcNxS0jLlXWTM5jdNFb0yvvfITlazfyV1kCiIAQzACC''@;'; put 'put ''LacSBAKAgBDMAICs4Clq1SvWZjZq809tJpvH1/7uxvIZoWMeZxErTzAb1k/StJhhlHROVTM5+2IuX7MBL739UXHePAUvXr0OSQimXiUj/RIEqoeAEMzq4SZHEaEyedD2TCdVAXIjMvqkNvOkwvLXD2xI26927fHSc0B5gskDfo7SFfXs2lHZyj48Rgdlin7xzQ+wbvM2/ipLgBAQghkgoOU0gkCA''@;'; put 'put ''EBCCGSCgFT5NfD0neg53oSFpMznH7eE9Tkx/P7y4UIPC4y49tJAgmOec2QOP3XOrsknXWahW0tDOX7Qcr737SWkZy3c/IhBGNaB7Dneg9Rll+9748dTStCAgCPgBASGYfgA1BJs0m0mb2ceJHkM8WDXHhPXzQye4xyvukCCYMVGRGEs5MeskJsClaCAMJ14vKHRQsM94bNmxxytfWfsZAZud69W6''@;'; put 'put ''0LGfpCnyM9TSvCAQEASYYC6aYsbO1RatbGhATionURaBhCQXCnJNyMsJjdyXJQUZEgSTBzzqOsqJeb66OTF5jBYqH7lwyQr8b4JoMRmPQCxcW7rdWW70GEa1r6WSTyAgl3MIAn5FgCN+F3xnwd71lEj7ZC16v55QGhcEFEUgZAhm6+aN8fKT95MTLiUVUDQnJo8tv6AQz78+QbSYAbpgLVYPmnZy''@;'; put 'put ''oe/lLridiuZaDRCWchpBIOgIcECGy4PfvrLh4A5LyPnMBR1/6YBSCIQMweT7xouP34fO7VsrW5+cZ6ZoMQN7fXLUYFITFwbd4ITZSucWjhlYAcjZBAFfImA2wZHrwZxPwpB+mJ4aHn5yyCIICALVQSBkCCaDc+7ZvfHgHTcpHewjWszqXAbVP4a14XGJHgy6yYHYRNKOk/ZDFkFAEDAmAmwezzxC''@;'; put 'put ''GsxJYcgNQZ85Y0pNeq1XBEKKYMZER2Hs848oHezDE421mH8sXan5YqrqDqCnC8oe6cZZlzrRtIMJTodUU9KTbKQvgkBVELDZLdi+0oMlv1jhyAu9oIyqYCX7CgKnQyCkCCaDMfLqi3HVxecpXdmHx+mg0pj/pbyY6zdv56+y+BEBi82DNj1d6HWhBPr4EWZpWhDwOwKWMDMWUwT59lUU4FMk5nG/''@;'; put 'put ''Ay4nUBqBkCOYjRsk47VnHoLNZlU22IdnLNcoX0GlIzn5usvtVnoSB3twFFuFhBQXhtzogC2CtB5UulMWQUAQMBgC5H9ZmOsm/0s7MsT/0mDCk+7qEYGQI5gshGfuH4Uze3RRurIPj5NrlL82YSKWrFrPX2XxIwL2SA/6XuZA4/ZmMZP7EWdpWhDwFwJWMo/vWushDaYVhfliHvcXztJu6CAQkgTz''@;'; put 'put ''jC7tMfrBu1BEZmSVF9Zibtq2E6PHTCAy7VB5qEEfm8XiQeOObvS7oogCfYLeHemAICAIVBUBskTM/9qK/VstlHJMzONVhU/2FwRKIxCSBNNGQTD/e+YBtGjaWHmSSYk/MX7SZMxesKS07OW7jxGIjHVj4DUO1GlsJv8tcUvwMbzSnCDgNwSsYRak7nBj4WQb8nJFe+k3oKXhkEIgJAkmS/j8Qf1w''@;'; put 'put ''763XKR/sYzabsS/1MJ58+S3knMgNqckd6MFarG406+JGn0vccLuEYAYafzmfIFAtBEhZyfrKBd9YsXczaS+lek+1YJSDBIHSCIQswYyNicYbzz2sfMoiFrjVasNn303FN9NmlZa/fPcxAhFRbpx9VRFSWokvpo+hleYEAb8gwKmJdorvpV+wlUZDG4GQJZgs9puuvBDXXHq+8lpMTr6ecSwLz7z6''@;'; put 'put ''Dg4eORraM97PozebqbJPMzcGjHDCaqdCIBJR7mfEpXlBoPoImCixegFV7vntUxsyDpops4j4XlYfTTlSEDgVgZAmmMn1auP10Q8jMiICbsVT+VhtNsya9yfenvjVqTNAvvkcAZvdg479i9B1oAlFhRLx43OApUFBwBcIEJdkF6Jl083YulzyXvoCUmlDECiJQEgTTAbivpHXYPjg/iGhxSygSPKX''@;'; put 'put ''3voQ6zZvKzkH5LMfEIiIJlP5lU40aC0k0w/wSpOCQI0RsIVbsHWZmwimDQ5JS1RjPKUBQaA0AiFPMFs0aYhXnn4AFnqTVb2sIqctWrtxK14Y+75W6af0ZJDvvkNAS76e7EL/EUVUq5yiyp0S9OM7dKUlQaBmCHDOy8O73FhAaYlysswU5COm8ZohKkcLAv9EIOQJJkPyxL234uzePVBQUPBPhBTb''@;'; put 'put ''YiIizWmLZs1frNjI9Dcck8WNBi0oAfvlRbBHmig6VSr86E9K0qNQQ8BqM+NYugfzJ1tx7JCFFAuhhoCMVxAIDAJCMAnnTm1b4oVH79E0mKprMTng58jRDDxNAT9HM44FZpaF8FksVg+atHfiTEpdZLFR0I+QzBCeDTL0YCNgIXJ54hhpLr+x4eh+M/nei+Yy2DKR86uLgBBMki2Trucfugs9unRQ''@;'; put 'put ''vnwkT2ULJZr/Zc4CvPfZt+rObB2NzGLzoHlnJ3qeLyRTR2KRroQYAkwuc7Pc+PMHGw7uJJcoIZchNgNkuIFGQAjmScTP6EzlI4lkql4+kofLhJoDfl586wOs37w90HMuJM/HJLMFkcwzLnBTXlKIuTwkZ4EMOlgIcKWe7AyXRi4P7xFyGSw5yHlDCwEhmCflzUE+/33sHnRu3yY0tJgn65Q///q7''@;'; put 'put ''yC8oDK1ZH6TRcqWf5p3d6HkB5cgkbYpU+wmSIOS0IYUAJ1LPPOzBoh8sSCOzuOS6DCnxy2CDiIAQzBLg9+7WEc88cCccDkeJrep+tFismPTNFPww/Td1B6mzkZktHrTs7kS3QW6Ex5ikZrnO5CPdUQsBTkV0aJcHi6dYcDxNAnrUkq6MRu8ICMEsISGr1YIXH7sXHdq0DAmSyabyrJwTGP2/8dhz''@;'; put 'put ''4GAJJOSjPxFgc3mDVk50H+ZBfG3A6ZAURv7EW9oOQQTMXCLXjN0bgGU/W8n3koN5JKAnBGeCDDmICAjBLAV+nzO64Mn7bg8JgslDt5JD4OIVa/DK+ElwuaTqTKnp4LevXFIyMcWF7kPdSGkOFHGeTOGZfsNbGg4dBMxU/pErs21facWKmRYUFRDblEUQEAQCjoAQzFKQh5oWk4cvuTFLTYIAfo2O''@;'; put 'put ''d1NZSSdadKfgH4skZA8g9HIqBRGwhJlReAJY+7sZO1bRZ6nQo6CUZUhGQUAIZhmSCqWIch4+1+NNS8/E6DHjcfDw0TIQkU3+RMAW7kbTjm50PseF2AQqLVlEqkxJ/uxPyKVt1RAwm8gaY0LaXmD1b1SlZze/rIlJXDUxy3iMhYAQzDLkxRHlLzz6L3Tp0DYkIsoZAqvNhoVLVmDMu5/CReYlWQKL''@;'; put 'put ''AJvMayW50GWACw3aerRUUm6nsMzASkHOZkQEOL+lk17Ktq0wY9NCK7KPc+FHIZdGlKX0WS0EhGCWI89uHdviOcqLGUp+iZqpfCKVkVwgZSTLmRZ+32yPcKNZFxfa9/EgjgKAioqIZLqFaPodeDmB4RAwkdbSQlrLzEMerJ1nwf6tRDQd4m9pOEFKh5VFQAhmOaLlCOvRD9yBXt07h0SNcoaBTeVc''@;'; put 'put ''PnL0a+ORejitHGRks78RMJkouryeG+37utCknRu2CDL3idnc37BL+0ZBgJSTNtJaFuR5yM8S2LTIhpxjrLEUraVRRCj9DA0EhGBWIOd2rZrhxcfv025bqtco98LApvIlWlT5RDidElXuxSUYa05nVL+5Cx36uFGvKZnNSWOjEc1gdEbOKQjoAAE2h7sp2wWXetz4hw1H9oB8LUVrqQPRSBcEgX8g''@;'; put 'put ''IATzH5CcuuGRu27GzJmaHAAAQABJREFUwL69QkaLyaM3U5Wfj778HlNnzT8VDPkWFATCIjxo0tGFNj1dqF3fRJVI+KEqfrJBEYacNCgImMkUbqYXrIyDbmxabMXeDRY4CkRjGRRhyEkFgUoiIATzNEA1bpCM/z3zIOxhYVputdPsrsTP7B5wIjcPXEZy++59SozJ6INgDXpUjAdNO7nQsqcbCfWI''@;'; put 'put ''aBLHFKJpdMlK/ytCgHNaMrnMJo+drStN2LnKgtxsCuGhe5QsgoAgoG8EhGBWQj533nAlLjlvEPLz8yuxtxq7WEiLuXHrTrww9j3k5ReoMSglRuFBRAzQrFNx7syEJB4Umc5ZoymxQEpIWAYBCt4xw2QBso+Sn+VqM3autiCHosPhEWIp80MQMAoCQjArIanaCfF447lHERcbHVJR5Vzl5/tfZlO9''@;'; put 'put ''8qmVQEl2CSQCHmKTkdFAo/YutOjGpnOP9lB2cmojiToPpCjkXL5CgLgjl3fk96TjR4hYrjFhzzoK4DlOG4RY+gplaUcQCBgCQjArCfWVF5yLW6+9PKS0mGyGKipy4vX3P8PilWsriZTsFmgErHY3GrR0o0VXCgZq5kF4uAlOF1FQ+pNFENA7Ahy8xknSucBAxgFg51rysdxoQT5V5JHIcL1LT/on''@;'; put 'put ''CJSPgBDM8rE55ZeoyAi8Pvph1E+qS9HVzlN+U/kLpy46cjQDz1LqosNp6SoP1fBjs1jdVN/cg+aURzOltQextdikCJqvYj43vHBVGwBrK6k0KsgMXpDjQepOE3atMVMFHqodXihmcNXELeMJTQSEYFZB7sMG9MF9t14XMtV9vNCwqXzZ6vV4ZdxEOIqKvJtlrVMEOI9mVJwbjdpRUFAHJ5FOyhto''@;'; put 'put ''59J5HkrxIlpNnYotJLploqAdK/3xS8+xI8C+TRbs3WTG8aNkGncJsQyJSSCDDBkEhGBWQdSsxXzm/jvQqV2rkCOZFosVX02ZTn8zqoCY7BpsBDiXZr1GLjSmWucpLUirSbXOObErk02P+GoGWzwhcX4mlRb6Y2169nEPDpO2cs96M9UNp1RDoq0MiTkggwxNBIRgVkHubC7mEpJP/fv2kEq+zhCx''@;'; put 'put ''P2aho4hqlX+CZWs2VAE12VUXCJBWMzIKSGnlQsN2LiQ14mh0Cz3zPaRNoie/kE1diEmVTvxFKulOmZvlwtH9ZuzbbMYhSpCel03aSlGkqyJqGYcgUC4CQjDLhabsH8JsVvzr5hEYOqBvSAX8MBqcuoj9MJ8bMwEHjxwtGyDZqnsETGb2z3Sjfis3GrYmv80GoIh0fuh7RLOpe+nptIOkoORE6Fwb''@;'; put 'put ''nPOz5ma7SUNpxoHt5Fe5g/LqZvH8op1kEQQEgZBBQAhmNUTdKCUJLz52X8ilLWKo2B9z5bpN5I/5MfILCquBnhyiJwTMFjabE9lsSWUpW7hQpwFpOkmzCdJ4aj6brNkUbZOeRKafvnD0N5m+TRSrwyVMsylPZdpe4OAOC47sNp3UVAqp1I/ApCeCQGAREIJZDbytVgsuGz4YI0dcGnJaTIaLSeZP''@;'; put 'put ''M+fhgy++l4oa1Zg/ej2ENZvRpNms19iDlJaUW5PIZkw8aaVsxVopTn0kpnS9Si8A/SKuaCFSyZV12JG3MNeJYxScc2SviUilGZmpFhTkcT+EVAZAGnIKQUD3CAjBrKaI4mNjMPrBO9GqeRM4HI5qtmLMw9gfk5VaEyZNxqwFS4w5COl1xQiQBjM8Akio70Jy8+JAobh6QEQUVVgh/uBxUfoj1m6K''@;'; put 'put ''72bFOBr5V5Izm721co3sg13gQm4O56okUrnHqhHLLCKYbon+NrKUpe+CgN8QEIJZTWjNdMPt1a0THvvXLVoL7L8WSguTzByqV/7yOx9pJSVDaeyhOFY2pcfU8mh5Nus1cSGxvhuxtSlQKNKqmdO1uuic3J2vg9C6FNSZDkQoWUNpIg0lX9/OQiKUWR5kHjHj6D6O+jbheJoZhfm0o2gp1ZG7jEQQ''@;'; put 'put ''8BMCQjBrACwH/Nw78lqc2/+skDSVc9DP/oOH8Z833tOSsdcASjnUYAhY2Jye6CENp5v8NilQiEpVxhHhDI8ivzwbabWIaHIlIRcFfIiWU4fC9WonmVCSDyWXYszPd5LfpAnHDpmQTlrK9FQzsohcFhQU/67DUYR8l2z0DLKH2RAVGYnwsDDY6LM3RJ/f85xUia2ALGx5efnII0G6tAsy5GETAAKE''@;'; put 'put ''gBDMGgLdILkeBfzcg4Ra8SFV4ccLG/tjrli7Aa+OnyRBP15QQnBtJpN6RCyRzLpEOpPcSEj2IJ4+R9E2O5nVuRQgazfZtM7k0y3BQ4GbJV7NJAXkEJ8kBTOVZSTtZP4JD7IzyHfysBkZRCozD1JKoWNmFGkeP6yllEVPCERGhCO5Xh00bVgfjVOStapyibXiEBsTjXA7kUubjYKuLKf4xTtdLi1n''@;'; put 'put ''M6eYyzmRi6MZx5B6OA17DxzCngMHkXoojdLPhZaLl55kqnpfhGDWUMKsxbtgcD/ceePV9KbPr/qht1jpxjZ9zgK8+9m3xSbS0INARlwGAnRpIDKWTOl1PKhFZDO+jovM6rQt3kWaTjPCqLoQ+/hpxJMt66zxZLWLmNnLQPM0m5gPklmb85lzDkr6qBENFwFamOdEfq4ZJ46xiZs0lEQos2idTd8d''@;'; put 'put ''eZKT8jTIBvXnlKQ66NS2FTrSX/PGDVA7IR6RpK3U/ODpOuGyxcXXT7F7Cn/m30ou/J3/OI+z94/3O0GEMy0jE1t27Maq9ZuxadtOHMvKKXmofBYEaoSAEMwawVd8MFf4efLe29CVkrAXFoZm6h6z2YJJ30zBjzPm+gBRaUJVBLiMpT2CUiGRZpPJZkxtIqAUuR5di4hnHJnYIz2w2oGwMCs9FAkF''@;'; put 'put ''IpyauZ3LqdNDkasPMQcNOT/Pk5yBrdmshmRizqZtjWjQJlehm4Jw3CjIp0TmWUBOOnCctJM5FISTfYzzUrJPJTdyKvng5mTRFwJ1EmuhZ5cO6Nm1I1o0aYha8XGanIuoTK/b7dauA1/0mOcOK0hY8+kiTWdaegY2bNmBhUtXYc2mrRS8KmWBfYFzKLchBNMH0ucLtW2Lpnj+4bvpwWjTbgI+aNZQ''@;'; put 'put ''TTAGRU6XVulnyap1huq7dFYPCHioXjpgJ4IZGcPkk9ZUTz2GSGcEE0+qQsS/hdE+VkqbZAujaHZW19GiEVEioExENULqjWw/SUY1Qso7/vWBv+hgOcn1NNqnMcdi4sg9I2WTRiR5SNqYyHeuyEF/RBId+R7SSBKJzLTgxHHgRCYlMifTdl6OCQW5bP7mFoRIMgpGWfjlqW3LZhjS/0x07dAGdWsn''@;'; put 'put ''aqSSM5Twb4FYmGyGkR8nE9mde/bhtz+WYQGRzeNZ2VpfAtEHOYdaCAjB9JE8beSLOOKSYbjusgtCMuCHYWTzy5GjGXiNyklu27XXR8hKM4IA0SUKKgqz0194MdEMjy4OKIqIdmvEMyKKfqO/cCagtI+VYh2sNjcsYTwvKfDISuZBzh+vqf0IUeJff1Ew/nCSyBWv6H/vM927Pp0QvI1p7RZ/0f7X''@;'; put 'put ''iGNx+381xc0T+eWAC05m73KaKFE5iEB6UFRABJL+ColA5hFZzD9Bf2S1zM+hYBtaF1AEtyOfgze49eLznK5r8rt+EeAX887tWmH4oH4aseRgHTZ7s0YxmAsTTSace/enYubvizB74RLNhzOYfZJzGw8BIZg+lBnnxnz2wTvQunnTkMuN6YWRSebOPfvx2nuf4OBhKSfpxUXWgUKATOyUUslMWk6L''@;'; put 'put ''1Wtu98BC5NQWRppPIp62cLdmhrfa6Hfaj9dc4pD3N1PWJYvVreV+5Ie/2UwklROLk2n/L9JZciisPiUNk5MIosftLbdJJmviBy4igW4nkUH6c1EchYO0j07vmrSMHFtRVGAm0zURy0Iz7c8+deyTKsSxJMSqfm7VrDEuHjqA0t11RGREhPbMCJS2srKYchAnm9B37d2Pb6fNwvwlK0PSQldZvGS/''@;'; put 'put ''UxEQgnkqHjX6xuSqS/vWeOb+UZpJQW83ixoNrgoHm+nNd82GLXjj/c9wPFucxqsAnewqCAgCiiOQQD6VlwwbgHPPPlOLAGeTtN6fFUwyeVm+ZgM++24adu8/qPs+Kz6NDDE8IZg+FhObym+66kJcccHQkDWVs+aHTZELl67EOxO/QkGhpMHw8TST5gQBQcCACPTs0h7XX34hmlFEOJvBOWjHSEsE''@;'; put 'put ''aVozMo/h66kz8ctvCzQ3DyP1X/oaWASEYPoBb35Dff7hu+gm0jBkTeVMMjnWYua8P/DR5B/J9BdcnyI/iFmaFAQEAUGgUgjEREXi6ouHYSgV5QgnR2H2szTqwr6Z/Dd/8Qp8TPf29EyKNJNFECgDASGYZYBS001cRrJbp7Z46r7bQ9pUziTTRSzzh+mz8cUP02sKqxwvCAgCgoDhEGhCidFvu/Yy''@;'; put 'put ''dGrXmvx03YbTWpYHOOfj3LZzN97++Cts371PTOblARXC24Vg+kn4xabyi8hUPiRkTeUMLfulchWJz7+fhqmz5vsJbWlWEBAEBAH9IdCzaweMvPoSpFDFNyNrLctD1m63I/PYcYz/5GssXbWeFArGMvmXNy7Z7hsEhGD6BscyW0mIj6WAH4oqb9E0ZBOwMzCsyWQ/zI+/+hGzFiwuEyvZKAgIAoKA''@;'; put 'put ''SggMpZyWN1x5EeKolKOK5NIrK44053KT73/+nZY7M9gplrz9knXwERCC6UcZsPauU9uWeJqiylmjaTSHbl9Cw1icyM3TyklypQhZBAFBQBBQFYFLKP3QNZcO12qEh8J9n30yWXv5yTc/YdpsDv4Rn3tV53ZVxiUEsypoVWNfq9WCERcNw/VXXBjSpnKGjknm8ewTGEeR5cso3YUsgoAgIAiohsDl''@;'; put 'put ''wwdT0Y3zEGYLLaUC39/ZWvXBF99j+tw/hGSqNrGrMR4hmNUAraqHRHOt8vu4Vnk7FBQUVPVwpfbnmxBHHY6bNBmr1m9WamwyGEFAEAhtBM6nijw3XXWxRi71ntvSH5Li+zuXbB1P9/d5fy6HUzSZ/oDZMG0KwQyAqPitrkWThnjuobsQEx0V8m92bE5JS8/E2A8+x4atOwIgATmFICAICAL+RaBf''@;'; put 'put ''r26468arqCpPeEhHVPP93UGBnS+P+wir1m3WCKd/kZfW9YqAEMwASYYvuvMG9MFdN10NI1Ru8Dcs/KZ7mOqWv/3Rl0Iy/Q22tC8ICAJ+RaBdq2Z4cNSNqJNYK6R97b0gc+WfoxmZ+M/r72HPAan648Ul1NZCMAMocbs9DPfecg0GU4mw/Pz8AJ5Zn6cSkqlPuUivBAFBoPII1E1MwKP/uhktmzYW''@;'; put 'put ''clkCtvDwcGzYvA0vvvWhlAwugUsofRSCGWBp162dgP88fDcapiSHbJWfkpALySyJhnwWBAQBIyHAQZysNDj7zB4wUcdD0e+yInlxMvYfZ8yhFHVT4KCa67KEFgJCMAMsbyZUXdq31oJ+Qj11kRd6L8l8hypCrN+y3btZ1oKAICAI6BqB4QP74pYRl1IaOouQyzIkxfEH/Pfau59g0fI1koi9DIxU''@;'; put 'put ''3iQEMwjS5bdeTmVxM1V4CPWoci/8TDKPUODP2x99QSRTAn+8uMhaEBAE9IlAY7JCPUHZQZLqJAq5rEBE7I+ZevgInnl1nBbcWcGu8pNiCAjBDJJAOdLw4TtvwllndBV/zJMy8EaXc9kxSWEUpIkppxUEBIHTImCloM37br1WM41zffFgLawd5Psm//HCL+q8eE31XEGIk557v2s/BuE/MZUHAXQd''@;'; put 'put ''nFIIZhCFkJJUF6MfvBP1ac2R5bJAu1FmUG3bdz/9FktXrxdIBAFBQBDQHQK9u3XCv2+7nir12ALeNyaVYWFh2nlzc3ORcSxLyy3M981cDh71gPplR1xsNNjnPyEuFvHxcZqp2ks4A91p7jPnxHxuzARs3Loz6IQ30OMP1fMJwQyi5M100XXr1BZP3Hsb+I04FEqKVQZufhs/np2jVYSQspKVQUz2''@;'; put 'put ''EQQEgUAhEBFux1P/vh0d2rREILWXrJ1kYpmbl4ct23dr1dA2Uh7hQ2npyMsvu4BHGJmnE2rFUYR7I3Tt0Aad27VGUt3aGsELtFKDo8qXrFyLl9/5WKtdHih5yXmCh4AQzOBhr52Z/TEvO2+Q5igu/ph/C4Nvply7/NNvp2Hm/EV//yCfBAFBQBAIIgID+5yBO2+8OqDVeuykkTxB2so/l63Gr78v''@;'; put 'put ''ws49+6tVJacWaTP7nNGFUuX1RvMmjTSCHKi64azF5OW/b74vCdiDOH8DeWohmIFEu5xzhVN+TPbnGdi3t/hjlsCISWZ+QSG+mjIdP838vcQv8lEQEAQEgcAjwNrLp/89Cu1aN2dHR793wOtfuYzchb6dNgvbdu2tFrEs3dEoKl88qG9PXDx0IJLr1UFhYWHpXfzyXbSYfoFVt40KwdSJaGonxGul''@;'; put 'put ''JJs1bhiwi10nQ6+wG0wyi5wuTPn1NyKav4Z8mc0KwZIfBQFBwK8IsPbvnluuRUR4mN/9CNkczlacyT/NwIy5f6LADySQ4wBGjrgEvbp3hpPiAPwdDMRaTK5V/ixFlG/cJr6Yfp2sOmhcCKYOhMBd4AuvXctmmm8P1ytnZ2xZihFgkukmZcHM3//AJ99M1bSago0gIAgIAoFEwEL3oYfvugm9u3Wm''@;'; put 'put ''0/pXe8km8dRDR/DuZ99g7aZt9Dxw+W2o7P9/1UVDtdR57LLl71iAiIgITJs1j3zsf5Dk636Tqj4aFoKpDzloveAb2MC+vXDvyGu0i9zfb5M6Gvppu8IE3ET4LFq+Gu999p2UHjstYrKDICAI+BKBZo0a4On7b0cCRWT7897M5HL3vgMY+8Hnmq8la/wCsZxLfpm3XnMZRaD7VzvLZv9Minh/7KU3''@;'; put 'put ''ceRoRiCGJucIEgJCMIMEfHmn5eo+119+Pq6++DzxxywFEpNMM92c1m7coqUxSj2cVmoP+SoICAKCgH8QuPLCIRhB92WL2eQ3gllMLlPx+vufEslM9bs2sTRS/Xp1IxeAEVqaI39qMnmcbxKB/u2PpT7xKS09DvmuDwSEYOpDDqf0gh3JOQl7n57dhGSegkzxFyuR8J1792MCJWTfunNvGXvIJkFA''@;'; put 'put ''EBAEfIcAp/th7WXHtq38FtzDFW/SqJrZa+9OwtYde4JWVvG8AX1w+/VXgNPo+UtTy8E+fyxdqZWQLHRIDmjfzVR9tSQEU1/y+Ks3nCD32QfugAT9/AXJKR+YZPLN+IMvvseSVetO+U2+CAKCgCDgSwSaNUohgnkHmcdj/UK6ioMZnZpZfOmq9RTYGFwf/Fsp8OcSSp/nr1gANpMfy8rGoy+8rpUI''@;'; put 'put ''9qWspC39ICAEUz+yOKUnbA5u3byJFvQTHxvjtwv9lJMa7AvfpHLz8im6fAamzZ7vlxu/wSCR7goCgoAfEBg+qB9uufoS2CgIxh9aPTYZfzN1Jr6ZNrPcpOl+GFa5TXIp46dPJpP3V55M1tj+39sfUvL1dUHT1pYLgPzgEwSEYPoERv80wkE/Z/borJnLmXD60yfGPyPwf6v85u9yufHLbwvw5Y/T''@;'; put 'put ''JcLc/5DLGQSBkEPg/tuvR/8ze/jFPM7kchOl7HmFKtwczTymG2zbtmiKZ6mUMbts+YNUc33yb6b+qhXTCLbGVjegK9YRIZg6FyinjbhoyDm47drL4XA4/HKh6xyC03ZPizA3mbF8zQa89/m3OJqhn5v0aTsvOwgCgoCuEeCk5Oyu1KpZY5/3k+9dHCM+5t1PNFcff6Yjqk7n77zxSgwfdDZcfjDZ''@;'; put 'put ''M7Feu3Ernn99AuX4dFSne3KMzhEQgqlzAXH32MH81msuxcXDBkrQTzny4hs1m8x37NmH9ymN0eYdu8vZUzYLAoKAIFB5BBqlJBHBvBOJVNPb1wuTrKXkQ/4GRVRn55zwdfM1bq9Bcl28+Ph9iIuJ9rlyg+/XGZSu6NEX3tCV5rbGoEkDfyEgBPMvKPT9gd+iH7rjRpx1RlchmRWIioN/+KbFCdnn''@;'; put 'put ''LVpewZ7ykyAgCAgCp0egZ9cOuP/2GxDpY1NxseXFhP9NmEQkM/iBPeUh8a+br8bQAX19rsXk8bvcbjz18ltaNhB/mOHLG5NsDwwCQjADg7NPzlInoRaevO82tKGKPwUFBT5pU8VG+M24kNwJps76nXx8ZmmfVRynjEkQEAT8j8CF5/bHTVddDKvF7FMtHge57KJ0ay+88b6uNXidKDXTMw+MovFb''@;'; put 'put ''fA42l8N8+Z2PqIDGGgn08Tm6wW9QCGbwZVDpHvAbX+MGyRTdNwrJ9epoPpmVPjjEduTgHyrAiaWr12Hi5Ck4lJYeYgjIcAUBQcAXCNxM5JJJpsXHBJNLJn7/y2x88cMvuogcLw8rDvJ5iczkzRo38HmgKWPwwRff4aeZ8/xaDrO8scl2/yIgBNO/+Pq8dSZOHdq0wBP33IroqEhJX1QBwl6/zL0H''@;'; put 'put ''DuKjr37E6g1bKthbfhIEBAFB4J8I+COC3Gsef21CcXCP3qOo777pKgwb2M/nZnKOJP/u51mY9PVPQc/9+U/Jy5aaIiAEs6YIBuF4b/qiB0fdCI4y91eesiAMzS+nZL/ME7l5Wo45NptzWiNZBAFBQBA4HQJMBB/71y3o1bXj6Xat0u+sKOCgnudff5eqkh3wqem9Sh2p5M5D+5+Ju2+5Bm6Xq5JH''@;'; put 'put ''VG431mDOnPcHxk2aDEdRcJPLV67HsldVEBCCWRW0dLQv+xlySa9RVNKL82OKg3TFwuEbOqcDWUjlyT79dpqkMqoYLvlVEBAECAF+gX/qvtvRuX1rcrjx3cL+l3v3H8Tzb7yrVSTzXcv+aalD6xZaqiabzerTE3DJyAWLV2i116VkpE+h1UVjQjB1IYbqdYJvflddOBTXX36B5MisBIQlTeYfk1/m''@;'; put 'put ''qvWbK3GU7CIICAKhioA9jGuQjyK3pJY+TbLO6Yk2bNmOl976EMezc3QPb0pSXfzfE/chJjrKp31lHJavXo+XKNCnUHJh+hRbPTQmBFMPUqhBH2xk/h1JdWMvHT5Y0hdVEkc2meecyNWizH+cMVeizCuJm+wmCIQaAlwycTRVs/F1knUmVivXbaQURZ/oMv9laTnXrZ2AFx+7B3USE3xqLWMcVq3b''@;'; put 'put ''hBfefF8IZmnQFfguBFMBIfJb9j0jr8G5Z58lJLOS8mSTOWs0V6zdiE/IZM6BQLIIAoKAIFASAbs9DKMpyXqblk19aiL3Eqv/UQWfLANoMGsnxGsaTH8QzOVrSIP5tmgwS847VT4LwVREkjEUUf7AqBskEXsV5cm+UEeOZuCrKTPw28Ilmp9mFZuQ3QUBQUBRBNhC9PT9t6Mj5YL0pQ8m53/cvH0X''@;'; put 'put ''/jv2fUOYyJPqJGoEs1Z8nE81mJoP5hLywXzvU7IkFSk6i0J3WEIwFZJ9QnwsHqRqPz06dxBNZhXkyiZzThOycMlKfE456aSWeRXAk10FAYURYEvHE/eMpHtqe5+Oku85Bw+n4bkxEwyRo7c55cB84dF7wDkxfblwFPnsBYvw9kdfShS5L4HVSVtCMHUiCF91oy75yDxKaTXaU9SfVPupPKolA4C+''@;'; put 'put ''/HEGFq1YU/mDZU9BQBBQFgEu0duvV3fS3PkuvRkT1/yCQox+bTy279oLt4dzXOh36d2tIx65eyTMvlTj0nA5D+aUGb/hwy9/kDyY+hV/tXsmBLPa0On3wOR6temt+za0bNZYSGYVxcSaBQeZamaTufzrn37FsazsKrYguwsCgoBKCIy67nKtFreF2JUv08GxmfzNDz/H74tWkPZO3+bhay4ehmsu''@;'; put 'put ''PZ9yCPs2VyVrMCdO/hHfT58jlXxUumhOjkUIpoJC5SE1rJ9ECYJHonmThkIyqyhj1mYy0dxFCZC//PEXLFm1vootyO6CgCCgCgJXnD8YIy4Z7vNa5Ox/OGPuQnDKNC4EodeF74fPUi3ybh3b+bxUJGMwhgKd5v25TGqR63UC1KBfQjBrAJ6eD+WbQtOG9TWS2TAlmVJAFOq5u7rsG5NMdjyf9+dS''@;'; put 'put ''qgI0S3wzdSkl6ZQg4F8EzjmzB+666Wpwtg5fajD5/nLoyFGMHjOe1un+HUQNWq9fr44W4BMbE12DVv55KD+jGM/nxryL9ZQTlAuGyKIWAkIw1ZLnKaPhC5idsx+5+xZNoykk8xR4KvWFfaX478DBI/h66q+YT1Un9O0tValhyU6CgCBQSQRaNG2Ep/99O+J8TLD49Gwmf4vN5HRf0WsU9aXnDcTN''@;'; put 'put ''V1/i8zKRfF/lfMSPvTgWqRTwJIt6CAjBVE+mp4yISWbLpg3x+D23ol6d2lrFn1N2kC+VQoBLc7roDXvR8jVaTfO9Bw5V6jjZSRAQBIyLQDSlf7vsvEE4b2BfhFNOTF8vnA9z3aateGXcRF36e3Oi+f9S9Di7Wvlaw8gp4rbt2oOnXn5bC3jyNbbSXvAREIIZfBn4vQdMMts0b0KazJuFZNYQbb4p''@;'; put 'put ''pqVnYurMeZg5f5HcGGuIpxwuCOgVgTMoNdHVFNzSiu6dbpfLp+bxkmPml9e3KE3PAkqTprdgn6HnnIW7bx7hc+0lj58DfGb9/ifemThZd+MuKR/5XH0EhGBWHztDHamRzBZEMu+6GUl164hPZg2kxw8EKgOETVt3kNl8JlZv2FKD1uRQQUAQ0BMCyeRzePnwQeh/5hla3sciP0d480vr7n2pePGt''@;'; put 'put ''D3A4TT++mLXiYvDfx+5Fg+R6Ptdesrw5wOftj76gF/XFFJ3u0tMUkL74CAEhmD4C0gjNFJPMpnjozhtRv15dIZk1FBo/GPLyC8gvczl+/HUuJU4+WsMW5XBBQBAIFgJsAh/crzcuGnIO6ifV1UiPr83C5Y2NydZPZBX57LtpyM3LL2+3gG6/44Yrcf7gs+GiIhS+XvhZxOngnnz5LeykbB2+DJ7y''@;'; put 'put ''dV+lveojIASz+tgZ8ki+sDm6/FFKYdRIostrLEN2VOdoUNY88APitz+W6uYBUePBSQOCQIgg0LVDG1x5wRB0aNtSKwnp9AOpqghKvi9z8OA4MhfrwVTet2dXPHD7DbBYzH4hf/xyvp38L59+dZzcLyuaGAb/TQimwQVYne4Xk8wUPEo+mY0bpkiezOqAWOoYNpubiGxuofrC3/08G8vWbPDLjbnU''@;'; put 'put ''aeWrICAI1ACBFNJUXkbmcK7UExUZEdQgSH5Rzco5gf+Nn4gNW3cGzWzcjDKPcNR8Yq14v5jGWVzsfzl5ynR88cN0qeBTg/mr90OFYOpdQn7sH2swH77zJs2JPT9fH2YZPw43IE3zmzk76i9ZuQ5TyGy+jcrAySIICAL6QoBzOg45u7dmAq5D5XXZBzBQ5vCKkOC0RVyj/PX3PtXuHZy5IpBLUt3a''@;'; put 'put ''ePLeW9G0UQOqrON70ziPxautfZa0lxvIj13M44GUcGDPJQQzsHjr7mwNkutqppD2bVpCSKbvxMMPimzSRsylChU/z1mgJVT2XevSkiAgCFQHgTCbVdNWXjz0HDRrXJx6R28BJpy6KPXQEYybNJkSkO8ImCYzqU4i+effhDYtmvqNXLLM+N64eftOqsM+Qczj1ZnEBjpGCKaBhOWvrtatnYB/33Yd''@;'; put 'put ''undqLyTThyB7/TPT0jMwY96flJJjEY5n5/jwDNKUICAIVAYB1pp169hWy2nZoU0L8i20wN/R4ZXpV3n7MAk7npWtlZFcuHSV39P4cEGO+269Tst36W9c2Dz+3qffYBq9ePtLS1oerrI9sAgIwQws3ro8G5so2N/m3pHX4KwzuiIvT791cXUJ4Gk6xQ8zJpv7KDn7dKo9zFpNjj6XRRAQBPyPAGvk''@;'; put 'put ''WGPZs2tHSpZuD6qfZVVGyz6ZTjLd/zr3D3z3yxxkHDtelcMrvW+fM7rgtmsvA7sK+Jtc8r2QX7Ife/ENXZfHrDR4smOFCAjBrBCe0PoxNjoKo66/AoPPPlML/BHfGN/Knx8YnD9z/aZtmtl85bpNVB7O4duTSGuCgCCgIcABPJefPxhMoGKiow2Zlo01r2wy37V3P76dNguLVqz1mTYzsVacptEd''@;'; put 'put ''RlWKbHRvCoSrQGRkJH6cPgcfffWjBPeEwHUqBDMEhFyVIUaE23HzVRfjQsoF5yDyIySzKuhVbl8OBOK6wxu2bMMvcxZizcatPntoVK4HspcgoC4C7EvI+SwH9OlJRSVqa2ZYPQTw1ARxNpmzOZmDYmaQRnPV+s3VtoJwAvVzzjoDwwb0BZNwbjcQ93m24uQXFODJ/3sbu/enBuScNcFcjq05AkIw''@;'; put 'put ''a46hci3w2+wIKpF21UVDtchKo9+c9Sgg1kywRrOw0IF1m7dppvO1G7cJ0dSjsKRPhkCAfckHEakcROSSiSXftwKhlQsUOHzP8BLNfamHsHzNRo1o7j1wENkncivsRgxZp5pRZPgZXdqhV7dOSKZqbkwqA+kDydrLKTNYezlF7nMVSkudH4VgqiNLn46EfWXOH9QPI0dcojnEB/JG5NOB6LyxkkRz''@;'; put 'put ''/Zbt+HXeH1R6cquYznUuN+mefhDg0o79e3fXtHKskeNF9fsVW0H4Hl1YWIj0zGOaP+Pho+nIPJ5N7k2FGgZ2qkwUHxuDFMoUUp8wYj97NrczNoHGh/vKWTWefPltMDmWJTQQEIIZGnKu1igtZNLoRzfuO6lkWHRUpN8dwKvVSUUOYqJZbDp3YPO2XZj5+59YSWYwvZSNUwRmGYZCCDCZPOesHhqx''@;'; put 'put ''DIZGTg9Q8n3Dm63C+9lr7ubv/Jk1uUwog6nN5cjxT7+dim+mzaS+SN1xPcydQPRBCGYgUDbwOfjm1ZHSejww6gbUrZ1oSEd5I8HPDwU2nbtcbkq0vAe/LVyCxZS0nSt8yCIICAJAEyp1O6hvL3A5Q458DrSpV2RQNQTYrM9BSs/+bzyOUeolWUIHASGYoSPrao+USQ+XD7v/tuvRslljyZVZbST/''@;'; put 'put ''v73zfI7qStP4u2NQzhEhDBJCEogcTDAGG9tg43EoxxnP7Hpqy7sftnb/jN2q/bjhw1ZN7Uxt7YTd8YzHM2MccMAYE2whkEgiCOWcc8Sw+z6HObjBwghJ3X3vPc+tajrQ995zfu9t9dPvecPMd7RC84Z6IBqaWgW18L746pR0dPfO/CB8JwkEhABWU0qKlpnkna0b1kqGZkDDIxdNr1xA0IZ1GsaL''@;'; put 'put ''qmf453//mcaMnhf8PePmDgEKTHdsPeeZ5moQ/d//9eumntyEZgPapZg5H5gH+E4CWDrHhoLtKFNy+ESFegRaPNHa7jsHzv8kgTkSQFWLdatKNHFnm7lHi0fUamTi4RzBRmh3LI2jLNHP//cPLEsUIeZeOg0Fppes4YOxJCclyJs/fFH2PbaTf+gjbC8EyuM2qIWKkXn+2bGT2kquZtblSiI8fJ6O''@;'; put 'put ''BGZMICMtVbZvXmeSd0qKCiRGf2RBWPJH7YwRRv2NSCiq1rJK//Rv/8ml8ahbIzoDoMCMDndfn3WBipwfaAmjV5/bxwzzKFgScbEmIUhLHNVqbBOWz788fVY6uXweBWvwlPNFANf1siV5snvbJtNRDJnPWGJFggqF5XxRjsxxEEeOH8L/+K8/lcu1jbRfZLB77iwUmJ4ziT8GhJioPTsf0hZjL2uX''@;'; put 'put ''jETftF/zB92ZjzJ0+RzFl7/4qlIuXq1Te1yb+UH4ThKIIoHEhHiz/L17+yZzn67eS8RWRrqUThQRBOrU+KGASMt/+ekvzI/f65rFzs1NAhSYbtp9XmaNPyRlxcvlH7SH+bIli017yXk5MA9y3wSsVxOdMmrqGk2sZnnlOSYF3TdJ7hAJArhel2h9xh2b18vDWzYYzyWyjRlfGQn64TsHPM740ftf''@;'; put 'put ''v/mDvPPhIZYkCh9qXxyZAtMXZvL2IFGP7u/eeE22bFjDHuZRNpXNPscwenr75Iz2PT92ssp4NYdHxqI8Op7edQKpmqSzrqxEdm3dJKtLiwTeSiTsQFhy8zcB/O3Bj4Tfaq3LX779HpN6/G3OeRk9Bea8YORBUIj9J68+L89o9x+WD/HG9QAvEf7gT2pP+aaWdm0rV21iNeubWk0vdG+MkqMIOoFY''@;'; put 'put ''vQaLly+V7dqicMv61bJYf5AijpveyuBYHuISST1/PHhIfs5WkMEx7BxnQoE5R4Dc/RsCyHB+af/j2sP8aUF5EXolvmET7UdYtoJ9RkZHTYmjijMXpOJstbZt62AtwWgbJ4Dnx7W2dPEi7X29Wm9rTB3d+Lg4xlYG0NY2POft9z5Wz+UB/ngNoI1nOyUKzNmS437TElio2YPwUrz5oxclf1Eu4zKn''@;'; put 'put ''pRS9F+0SOr4UhjTLs1braZZrAeTK85ektaOLYjN6pvH9mSEqES6zcc1K2bZxrRRpc4ZkXRK3rQqZCe57E39rAsgWh31//c778rbWu2QbyG8hcvoFCkynzR+eyUO8oNzI32qG+ca1q0x7SX65hIf1XI4KO+ELAqJzcGhI6nTpHJnolXprae+SKcbFzQWvE/suWABRmWtE5ZZ1ZVJUsERSU1JMWRpk''@;'; put 'put ''gbMgenAvAyyJoxTRz/7nHa3JWy7MFg+urWc7MwrM2ZLjfvckkJaSLD984WnZ//gjAjHDsiP3RBa1N4SKTSyjN2rM5pnqy3K2ukaFZ4surTNBKGrG8diJEf6CqhEbVpeaskLLl+ZLin7W8SOSotJjxgrDcPCDFB16rtQ2yH/892/kYk0961yGgXMQDkmBGQQrengOsTELtV7mVvmrV56T9NQU4830''@;'; put 'put ''8HA5NCVgl9Gx5DkxOSntunR+8Wq9VOkyek19k3T39tNb4diVgs46JZqos76s1GR/L87NkURN7LMJffRUunFBIJYbtv74yAn51e/fk76BITcmzlnOigAF5qywcaf7IYCi7KXa7u1vfvyyrNK6mZMqWrhkfj8Eo/temyAEMdE/MGgSg85pq8pqFZ0NzW0yNDwS3QHy7PNOICE+TutU5srKFYXqpSw2''@;'; put 'put ''STpZGemmxiGuAybwzTtyTx8QPzZRkaJOO4f9SksQoXMYl8Q9bTJPDI4C0xNmcGMQGWkp8uOXvi97d++41QLOjZkHZ5Z2KR33KH/Uo97MOk0UunClVi6p4Gxp75TRsfHgTNiRmcTGxkhuVoZ6KZfJ6pIiLSu0TPJyssxSKBBg6RvCkptbBPA5R6xlX/+AfHj4mLz70efqtRw0f7/dIsHZzoYABeZs''@;'; put 'put ''qHGfWROI0SXzx3XJ/A1dMk/jkvmsOXplR3g2kCiEDV2E+voHpb65VfsPN5iOQk2t7TI4PEqPtVcM9udxwEOZl5NtknJWFhWqhzJf8rT3d3JSkhEP9FJ6zGARHo71WGLF4mj5aTnw8RFpauvg5zjCdvD76Sgw/W5BH44fS+YrCpfKm6+/KGtXlZg+5ozh8qEhpxmyFZyI40QoBL6g2rp65KrGbiJL''@;'; put 'put ''vUFv3X39MjY+Mc3efCkcBFA6LC012Sx5o3QQPntL8/MkOyNN4ygTbwlKeCkZuhIOC/jjmPBWIhwGn93O7h45Vl6psZZfSqP+SOR14Q8bem2UFJhes4hD40HbuFef2yfPPrnb/GGb0iVXbsEiAMFpb/CKjY6NSa96OVvUG4JMdXg72zp7pKun14hOfpHNzf5IqkvRz9Vi9UYi03u5CkoUPM9SMYkV''@;'; put 'put ''AwgIbHbJm7znxtvPe0NIhopK1MW9VFsvxyvOyFenz0n/IBN4/GxfL4ydAtMLVnB4DPCubN+8Tt7QNpMP6hfhhC6z8ksvuBcEvtSs4MSXG0TnmIrOAf1y69J4zpa2TmlW8Qnh2dM3IAODwybWM7hEZjczMExNTpTM9DRT3BwFzvH5yc/LEZQHS9UbkjLwWQJj3LhKMDvWft4LnzdsVkziusFj3PC3''@;'; put 'put ''Fj/2EENddeGS3i7rj71u/v31s8E9NnYKTI8ZxMXh4I/d4twsLWX0vDyydaP5AwcPCzc3CIR++UF0YsPyOmpvDmqGeo8uqXd290q7LrV39fSZ5/0qPPH/ExOTckNFVBA3FDFP0HqDKUk3hWROVros0sSb3KxMyc3OlJzMdI2ZTDRJGBAOEJP43EBIUkwG8YqYfk74/MAzjR8ReGw3++Niauqaad84''@;'; put 'put ''rPVtkaCDzxKqP9Q2NEurCkoUSw/dz+7PexKYKwEKzLkS5P7zRgCZrHt3bTfF2TPUMwORwc1dAhCbuEE8WeGJL1FcF4jhHFHP59DQiC7lDZsvzl7NdMVjLO2hdBIE6PjklHk/vmS9IkQhHGNUEMSqhzEx4aaATE1JUs9jinokU029WNwjbhLL3YkqMuM1KcfGx1nhYIUknnNzkwCuCfyo+Ojz43Li''@;'; put 'put ''lJYOun7jz2IRnusbxvs/rj/CEJoyqp8ZfA64kUCkCFBgRoo0zzMjAkgAQtzYT157QTZpm0kbKzajnfkmZwhAcMLrYsUnnkNoWfEFETqpX6ao14iySRMqNEfHx81jPMeXLrLecQ8vKEouTU5eM+0xv1YRaz2B+JK+doc3HefAeRcuXCDf+4ub48DjGL3hCx/38XFxEqcdb+JURCYkxBmRiMxteCQT''@;'; put 'put ''9Tn+Hx1xIDLNvnqPY2Kz8wgVkPRIOnNpz2iiuPZRPqi1o9MUPD9WXsXWrjMixzdFkgAFZiRp81wzJgDPzvef2CUv7n/CxJPRmzljdHyjEsAXsF32s2IUz60n1ApSC8uKOjy3wi70Mf4/dMOxIAjtOUIf4zX7OvbBYysQ7zx26HlDj8/HJHA3AigLhmvq2MlKFZfvm5jlO6/Pu+3L10kgkgQoMCNJ''@;'; put 'put ''m+e6LwK2A9BfvvKs9j1eSW/mfdHjm+eLQKhYDD0mv9RDafBxJAjEqee7V2OS33r3Izl4+LjxvEfivDwHCcyGAAXmbKhxn4gSSNKex888/oi89MyTJiaN3syI4ufJSIAEokwAHnJ4Lk9WnZNf/O6A1De1slVjlG3C09+bAAXmvRnxHR4gcMub+bJ6M9esNBmTiJPjRgIkQAJBJoBYSzQseOeDQ/Le''@;'; put 'put ''p0dM3HCQ58u5BYcABWZwbOnETJAosV+9mS+rNzM9LdVkCHOp0gnTc5Ik4BQBeCzhuTx19oL88u0D2g2rmV5Lp64A/0+WAtP/NnRuBt/TAPdCzTR//YX9pkg7ACBbmBsJkAAJ+J0AYn7htUSs5e8/+FQ+OHSUXku/G9XR8VNgOmr4IEwbbfEe2/GQaTe5RLuYIDbTZusGYX6cAwmQgFsEUOYKW3nl''@;'; put 'put ''OVN+CAXRr2vhfG4k4EcCFJh+tBrHfIsAfu0v0q4mLz3zhOx5eKvWHIw3QvPWG/iABEiABDxOwHotO7Rb1VvvHpRPj37FougetxmHd28CFJj3ZsR3+IAAuqOsLyuRHzz/tKxZWcwkIB/YjEMkARIQ0zN+SkN8Dh8/KW+/94kWT+8yxfbJhgT8ToAC0+8W5PhvI4CSRvse3SEvPLVHcrRnM5bNmQR0''@;'; put 'put ''GyI+IQES8AABJPBgSbymrkF+/c4HmsxT/a2uUR4YJodAArMmQIE5a3Tc0asE0KUlf1GOvPLsXtm1daO27IvjsrlXjcVxkYBjBOxy+ODQsBz4+HN5V2+DwyOOUeB0XSBAgemClR2d481l81J57bl9Ztkcnkxmmzt6MXDaJOABAjHacx71e8urzstbfzoodY0tTOLxgF04hPAQoMAMD1ce1UME4uNi''@;'; put 'put ''Zc/OrfLi048Lss0hMq9fv+6hEXIoJEACQSZgl8PrGpvlt9rm8XjFGUHcJTcSCDIBCswgW5dzu0UAy1JZGWny3N5HNUbzYUlNSWZ85i06fEACJBAOAnY5HJ14Dnzyuda0PCb9g0PhOBWPSQKeI0CB6TmTcEDhJICWkwVL8403c+dDG0xB46mpKSYChRM6j00CDhJAsXQkGR4trzQF0xu1puUNDdPh''@;'; put 'put ''RgKuEKDAdMXSnOdtBBCfuVbLGaF+5vqyUtOSDUKTGwmQAAnMhYAtln7uUo387sBHcqb6isZdMiRnLky5rz8JUGD6024c9TwRiNEyIfBkPv/UY1JaVGg6ATERaJ7g8jAk4BAB2zsc3Xf++OEh+fzLCpmY5I9Why4BTvUOAhSYdwDhUzcJoH7mozu2yLNP7pZlSxazULublwFnTQL3TcAm8KALz4ef''@;'; put 'put ''HZWDh4/LgJYg4kYCrhOgwHT9CuD8byOQnpoiTzyyTZ7es1Py83JNSRGUFeFGAiRAAqEEUG8XZYcGNGnnM+3CgySe9s4exnOHQuJjpwlQYDptfk5+OgI243yfdgTau3uH5GZnUWhOB4qvkYCDBGxm+MjomCbwnJZ3PzosjS3trGfp4LXAKX83AQrM7+bD/3WYAL5IcjLTZa8KTXg1F+VkU2g6fD1w''@;'; put 'put ''6m4TwN8DeCzHxyfkq8pzRljW1DfJ16yp6/aFwdnflQAF5l3R8D9I4CYBKzSf3L1dnty1nUKTFwYJOETACstJrTJx6swF+ZN6LC9cqWOzBoeuAU51dgQoMGfHjXs5SOAboQmP5lYjNNERiDGaDl4MnHLgCYQKy9NnqzXG8oig9BBLDgXe9JzgPBGgwJwnkDyMOwTwxZOVniZ7VGTCo7lEk4HQ55x1''@;'; put 'put ''NN25BjjT4BLA5xtF0ie0SDo8lhCW5y9fpbAMrsk5szARoMAME1ge1g0CyDrftW2jaT9Z8GC+ILOUnYHcsD1nGSwCNit8VJN3KtRj+f6nX0h1TS2FZbDMzNlEkAAFZgRh81TBJADvJepoPrxlvXo0d8jKFQWCbh4o2H7jxo1gTpqzIoGAELB1LIeGRzR556wc/Oy4XKptYIxlQOzLaUSPAAVm9Njz''@;'; put 'put ''zAEkgM5A68qKZf+eXeY+KTHRCE3EanIjARLwDgF03sGtp7dPjlWckU+OnJD6plaWG/KOiTgSnxOgwPS5ATl8bxJY8MADUlTwoInR3L5prWRlZhiPCNtQetNeHJUbBBBfidUF3Le0dcjhExV6OykdXb1cbXDjEuAsI0iAAjOCsHkq9wjgiyw3O1N2b98sj27fIgUPLjYQIDSxtM6NBEgg/AQQXwlh''@;'; put 'put ''iZWEK3UNcuhouRyvqJL+QbZ0DD99nsFVAhSYrlqe8444gcSEeNm8dpU8pW0oVxYVSEJCApfPI24FntAlAnYZfHhkVM5drJFPvvhSKs9fMhniLnHgXEkgGgQoMKNBned0mkBsbIwKzEL1am6SzevKJCcr03gz6dV0+rLg5OeJAFYNICzhtezo6jaeyiNfnpbahmbGV84TYx6GBGZCgAJzJpT4HhII''@;'; put 'put ''A4Hv6Rdhji6fb9u4VnY+tEGKC5dKXFwcvZphYM1DBp8AssEhLPFDrb6pRfuEV8mhY+W6DD7EcJTgm58z9CABCkwPGoVDco9AnBZ2XlVcaEodbVm/2ng1QQFdgljqyL3rgTOeGYHQpJ3+gSE5e/GyHD5+UjvuXJUx7RnOjQRIIHoEKDCjx55nJoFvEcCyXmZ6qmzSWM1Htm6UUo3VTE5KMskJEJtM''@;'; put 'put ''DPoWMr7gIAFbuxL9wesbW8wy+IlTZ6W9q4f1Kx28HjhlbxKgwPSmXTgqEpCFutyHrHMsoW9ZXybLtFMQPJ0QmsiGpdjkReISAfz4whI4tq6eXjl97qIcO1kl1VdqNWlnyiUUnCsJ+IIABaYvzMRBuk4gThODykqKZOvGNbJpzSrJy82+FW/GIu6uXx3Bnb8VlVgKHxwalktX61VUVkrV+cvSp7GV''@;'; put 'put ''DB8Jru05M/8ToMD0vw05A4cI4Is2JSnRiE0UcF+7qtjEa2LJEMkNFJsOXQwBnarNAsc1PTI6KnWNrVJedU4qqi5Ia2cXe4MH1O6cVvAIUGAGz6ackSME4N1JS0mSNSuLZeuGNbK6dIVkZ6aLFZvw7nAZ3ZGLwefTDBWV45qc09jSJhVnL0jFmQuaEd4mU/rjiRsJkIC/CFBg+steHC0JTEsAYjM9''@;'; put 'put ''NUU9m8tNbc3VupyODkIxMTEmZpMJQtNi44tRJGCXv3E/Nj4uTS3tJq7y1NlqqW1slskpisoomoenJoE5E6DAnDNCHoAEvEXALqOXriiQDWWluoxeIvmLsiU+Pt7ErLH0kbfs5dJo4F3HDaJyeGREvZOtGk95SSovXDa1KykqXboaONegE6DADLqFOT/nCSTEx0nh0nxZp0JzfVmJLM3PkzT1dkKI''@;'; put 'put ''MiPd+csjrABwjUFQIvsb8cEoen61vkmqLlySM9VXpLW9S65pVQRuJEACwSNAgRk8m3JGJHBXAviyz8vJMvU1N6wplZLCZZoklGG8mxAAuDF28674+B8zIGC9lLjH0nen1qa8VNtglr+v1DVKT28/WzbOgCPfQgJ+J0CB6XcLcvwkMAcCSYkJUrBksSYIFZlbgdbaRCwnPE4QmlZ0zuEU3DXgBEJj''@;'; put 'put ''KXG99PYPmCSdcxdrtEZlndQ3t7KrTsCvAU6PBKYjQIE5HRW+RgIOEnhA4+Iy0lJl+bIlJlmoWL2bDy7OlXR9Dd4oKzjp4XTw4giZMq4FKyohKFGfsqW9Uy6rlxJFz6/WN0vfwCC9lCHM+JAEXCRAgemi1TlnEpgBAQjOLC17VKjdhFYVL5cVBUuN4ExNSZZY7SgUKjjxmFvwCCCG0opJ3CNmF4Ky''@;'; put 'put ''raNLrmgsJQqfI+O7s7uPNViDZ37OiATmRIACc074uDMJuEMAghPicmn+IikuXGo8nVhSz8pIk8SEBJM0hLqbNkudNTj9dW1YMQkhCS8ltomJCeONhIfyakOz1NQ1mWzvnn71UKr3khsJkAAJ3I0ABebdyPB1EiCBexJAhnp2ZoYs1yx1LK0jnjMvN0sLwCdLgopOiBV4NyE6ITjp6bwn0oi84U4x''@;'; put 'put ''ieeTk5MyNDyifb77pKm1QwVlk/FOtnV0y8jYOG0XEcvwJCQQHAIUmMGxJWdCAlEnAKGSlBhv2lcuW5JnBCc8nrlZmaY0UrK2uUQCEcSm9XZSeIbPbLCHFZM2dhK8xzW7e3h0zIjJ5rYOaWhuM4k5EJMoJfQ1vZPhMwqPTAKOEKDAdMTQnCYJRJNAfFysZKanaomkbI3jXCRL8nLU05ltWlumJCdJ''@;'; put 'put ''ghaBh/DEFhrbCTGEzd6bJ/znNgJWROLeikg8BjN4JYdHRmVA4yY7u3tNMg4EZasKSTyHx/I642dv48knJEAC80OAAnN+OPIoJEAC90kAIigxId6URUJbS9wW6/I6vJ2LsrM03jNJ63PGSZwmFEE4WdEEAYobBJRdcg+qAMWc7YZwg9AbXrcicnxiUkbHxjRecsh4Jds6u6S9s0c6e3qlW+tODg6N''@;'; put 'put ''sJ+3Bcl7EiCBiBCgwIwIZp6EBEjgfgjEag/1m+IzWT2faZKtxeCzNZkIZZTS01KMKE1U8QkBivei5zrEV6ggs0IU57VC1N7bsURSmIaODefHeO09/g83+xpex9gQu3rt2jX1RE7JmIpItFccGBzWWpOD0t7VLT19A0ZEwkMJEQmhGck5mQnwHxIgARKYhgAF5jRQ+BIJkIC3CSzU5XQkGOGGzPZU''@;'; put 'put ''XWZPSU785rHGeiLeEyIV74EXFPvExcbIAwu0daF6RO1ysvUKWvEZej+dWMP/W0FoKVnxaAUi7u178H57g2DEkvS1qWvGo4je2xMqHkc1iQZdbxAXiWVrCEbcQzTi8Yi+Pqr/Pz4xZUSnPS/vSYAESMCrBCgwvWoZjosESGBeCCxcuMCIy9iYhcbTiXsIzjiNC41diNcW3hSqRqQmmQx4/D/EaXJS''@;'; put 'put ''wm1jwGspKlzhKYQAvKFeRgjJGzf+T8Xh6E2hqGJxSOMecYNAnND3jmu5nyn1REJM4jY5NSVTt0TmlJb8YR3R20DzCQmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQ''@;'; put 'put ''AAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfs''@;'; put 'put ''wdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4i+ZHtw4AAADdSURBVAAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAF''@;'; put 'put ''prfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8JUGD63oScAAmQAAmQAAmQAAl4iwAFprfswdGQAAmQAAmQAAmQgO8J/D97oVzdCcK8fgAAAABJRU5ErkJggg=='';'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=spinner-svg; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg''@;'; put 'put ''ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw''@;'; put 'put ''OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl''@;'; put 'put ''bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'';'; put 'run;'; put '%sasjsout(SVG64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; %let service=spinner.16f763cebc6b64df-svg; filename sascode temp lrecl=32767; data _null_; file sascode; put 'options mprint;'; put '%macro mp_replace(infile,'; put 'findvar=,'; put 'replacevar=,'; put 'outfile=0'; put ')/*/STORE SOURCE*/;'; put '%local inref outref dttm ds1 rc;'; put '/* create filerefs */'; put '%let rc=%sysfunc(filename(inref,,temp,lrecl=200));'; put '%let rc=%sysfunc(filename(outref,,temp,lrecl=200));'; put '%if &outfile=0 %then %let outfile=&infile;'; put '/* uniquely named 32 char datasets */'; put '%let ds1=all%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,29);'; put '%let ds2=start%substr(%sysfunc(compress(%sysfunc(uuidgen()),-)),1,27);'; put '/* START */'; put '%let dttm=%sysfunc(datetime());'; put 'filename &inref &infile lrecl=1 recfm=n;'; put 'data &ds1;'; put 'infile &inref;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'run;'; put 'data &ds2;'; put '/* set find string to length in bytes to cover trailing spaces */'; put 'length string $ %length(%superq(&findvar));'; put 'string =symget("&findvar");'; put 'drop string;'; put 'firstchar=char(string,1);'; put 'findlen=lengthm(string); /* <- for trailing bytes */'; put 'do _N_=1 to nobs;'; put 'set &ds1 nobs=nobs point=_N_;'; put 'if sourcechar=firstchar then do;'; put 'pos=1;'; put 's=0;'; put 'do point=_N_ to min(_N_ + findlen -1,nobs);'; put 'set &ds1 point=point;'; put 'if sourcechar=char(string, pos) then s + 1;'; put 'else goto _leave_;'; put 'pos+1;'; put 'end;'; put '_leave_:'; put 'if s=findlen then do;'; put 'START =_N_;'; put '_N_ =_N_+ s - 1;'; put 'STOP =_N_;'; put 'output;'; put 'end;'; put 'end;'; put 'end;'; put 'stop;'; put 'keep START STOP;'; put 'run;'; put 'data &ds1;'; put 'declare hash HS(dataset:"&ds2(keep=start)");'; put 'HS.defineKey("start");'; put 'HS.defineDone();'; put 'declare hash HE(dataset:"&ds2(keep=stop)");'; put 'HE.defineKey("stop");'; put 'HE.defineDone();'; put 'do until(eof);'; put 'set &ds1 end=eof curobs =n;'; put 'start = ^HS.check(key:n);'; put 'stop = ^HE.check(key:n);'; put 'length strt $ 1;'; put 'strt =put(start,best. -L);'; put 'retain out 1;'; put 'if out then output;'; put 'if start then out=0;'; put 'if stop then out=1;'; put 'end;'; put 'stop;'; put 'keep sourcechar strt;'; put 'run;'; put 'filename &outref &outfile recfm=n;'; put 'data _null_;'; put 'length replace $ %length(%superq(&replacevar));'; put 'replace=symget("&replacevar");'; put 'file &outref;'; put 'do until(eof);'; put 'set &ds1 end=eof;'; put 'if strt ="1" then put replace char.;'; put 'else put sourcechar char1.;'; put 'end;'; put 'stop;'; put 'run;'; put '/* END */'; put '%put &sysmacroname took %sysevalf(%sysfunc(datetime())-&dttm) seconds to run;'; put '%mend mp_replace;'; put '%macro sasjsout(type,fref=sasjs);'; put '%global sysprocessmode SYS_JES_JOB_URI;'; put '%if &type=JS or &type=JS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header('; put 'Content-type,application/javascript%str(;)charset=UTF-8'; put '));'; put '%end;'; put '%else %if &type=CSS or &type=CSS64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,text/css));'; put '%end;'; put '%else %if &type=PNG or &type=GIF or &type=JPEG or &type=JPG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/%lowcase(&type)));'; put '%end;'; put '%else %if &type=SVG or &type=SVG64 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/svg+xml));'; put '%end;'; put '%else %if &type=ICO %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,image/vnd.microsoft.icon));'; put '%end;'; put '%else %if &type=JSON %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,application/json));'; put '%end;'; put '%else %if &type=MP3 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/mpeg));'; put '%end;'; put '%else %if &type=WAV %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/x-wav));'; put '%end;'; put '%else %if &type=OGG %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,audio/ogg));'; put '%end;'; put '%else %if &type=WOFF or &type=WOFF2 or &type=TTF %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,font/%lowcase(&type)));'; put '%end;'; put '%else %if &type=MP4 %then %do;'; put '%let rc=%sysfunc(stpsrv_header(Content-type,video/mp4));'; put '%end;'; put '%if &type=HTML %then %do;'; put '/*'; put 'We need to perform some substitutions -eg to get the APPLOC and SERVERTYPE.'; put 'Therefore the developer should avoid writing lines that exceed 32k'; put 'characters (eg base64 encoded images) as they will get truncated when passing'; put 'through the datastep. This could of course be re-written using LUA, removing'; put 'the length restriction. Pull requests are welcome!'; put '*/'; put 'filename _sjsout temp;'; put 'data _null_;'; put 'file _sjsout lrecl=32767 encoding=''utf-8'';'; put 'infile &fref lrecl=32767;'; put 'input;'; put 'length appLoc expanded_path $1048;'; put 'if _n_=1 then do;'; put 'retain pgm "&_program" appLoc expanded_path;'; put '/* index is deployed in the /services/ folder under the appLoc */'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'expanded_path=cats(''?_PROGRAM='',appLoc,''/services/'');'; put 'end;'; put 'if find(_infile_,'' appLoc: '') then put '' appLoc: '' apploc:$quote1048. '','';'; put 'else if find(_infile_,'' serverType: '') then do;'; put 'put '' serverType: "SAS9" ,'';'; put 'end;'; put 'else if find(_infile_,'' serverUrl: '') then do;'; put '/* nothing - we are streaming, so remove to default as hostname */'; put 'end;'; put 'else do;'; put '/* More recently, SASjs apps avoid inline JS to allow strict CSP */'; put 'length infile in1 in2 $32767;'; put 'infile=cats(_infile_);'; put 'spos1=index(upcase(infile),''APPLOC="'');'; put 'if spos1>0 then do;'; put 'in1=substr(infile,1,spos1+7);'; put 'in2=subpad(infile,spos1+8);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,appLoc,in2);'; put 'putlog "new apploc: " infile=;'; put 'end;'; put '/* find & replace serverType in HTML attributes */'; put 'spos2=index(upcase(infile),''SERVERTYPE="'');'; put 'if spos2>0 then do;'; put 'in1=substr(infile,1,spos2+11);'; put 'in2=subpad(infile,spos2+12);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,"SAS9",in2);'; put 'putlog "new servertype: " infile=;'; put 'end;'; put '/* find & replace serverUrl in HTML attributes */'; put 'spos3=index(upcase(infile),''SERVERURL="'');'; put 'if spos3>0 then do;'; put 'in1=substr(infile,1,spos3+10);'; put 'in2=subpad(infile,spos3+11);'; put 'in2=substr(in2,index(in2,''"''));'; put 'infile=cats(in1,in2);'; put 'putlog "new serverUrl: " infile=;'; put 'end;'; put 'if sum(spos1,spos2,spos3)>0 then put infile;'; put 'else do;'; put '/* during SAS9 sasjs compile, dependencies get static GUID */'; put 'infile=tranwrd(_infile_,''?_PROGRAM=pZKd6F95jECvRQlN0LCfdA=='',cats(expanded_path));'; put 'put infile;'; put 'end;'; put 'end;'; put 'run;'; put '%let fref=_sjsout;'; put '%end;'; put '%else %if &type=JS64 or &type=CSS64 %then %do;'; put 'options nobomfile;'; put '%let fvar=pZKd6F95jECvRQlN0LCfdA==;'; put '%let stgfile="%sysfunc(pathname(work))/stgfile.txt";'; put '%let newfile="%sysfunc(pathname(work))/newfile.txt";'; put '/* convert from base64 */'; put 'filename _out64 &stgfile encoding=''utf-8'';'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_out64",''A'',1,''B'');'; put 'char= ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc =fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '/* get appLoc from _program */'; put 'data _null_;'; put 'pgm="&_program";'; put 'appLoc=substr(pgm,1,find(pgm,''/services/'')-1);'; put 'call symputx(''apploc'',cats(appLoc,''/services/''));'; put 'run;'; put '%put &=fvar;'; put '%put &=apploc;'; put '/* replace the GUID with appLoc */'; put '%mp_replace(&stgfile,'; put 'findvar=fvar,'; put 'replacevar=apploc,'; put 'outfile=&newfile'; put ')'; put 'filename &fref &newfile encoding=''utf-8'';'; put '%end;'; put '/**'; put '* In SAS9, JS & CSS files are base64 encoded to avoid UTF8 issues in WLATIN1'; put '* metadata - so in this case, decode and stream byte by byte.'; put '* */'; put '%if &type=GIF or &type=PNG or &type=JPG or &type=JPEG or &type=ICO or &type=MP3'; put 'or &type=WAV or &type=OGG or &type=WOFF or &type=WOFF2 or &type=TTF or &type=MP4'; put 'or &type=SVG64'; put '%then %do;'; put 'data _null_;'; put 'length filein 8 fileout 8;'; put 'filein = fopen("&fref",''I'',4,''B'');'; put 'fileout = fopen("_webout",''A'',1,''B'');'; put 'char = ''20''x;'; put 'do while(fread(filein)=0);'; put 'length raw $4 ;'; put 'do i=1 to 4;'; put 'rc=fget(filein,char,1);'; put 'substr(raw,i,1)=char;'; put 'end;'; put 'rc = fput(fileout, input(raw,$base64X4.));'; put 'rc = fwrite(fileout);'; put 'end;'; put 'rc = fclose(filein);'; put 'rc = fclose(fileout);'; put 'run;'; put '%end;'; put '%else %do;'; put '%put streaming to _webout;'; put 'data _null_;'; put 'infile &fref lrecl=1 recfm=n;'; put 'file _webout mod lrecl=1 recfm=n;'; put 'input sourcechar $char1. @@;'; put 'format sourcechar hex2.;'; put 'put sourcechar char1. @@;'; put 'run;'; put '%end;'; put '%mend sasjsout;'; put 'filename sasjs temp lrecl=99999999;'; put 'data _null_;'; put 'file sasjs;'; put 'put ''PHN2ZyBpZD0iTGF5ZXJfMiIgZGF0YS1uYW1lPSJMYXllciAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA3MiA3MiI+CiAgICA8ZGVmcz4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5jbHMtMSwKICAgICAgICAgICAgLmNscy0yIHsKICAg''@;'; put 'put ''ICAgICAgICAgICAgIGZpbGw6IG5vbmU7CiAgICAgICAgICAgICAgICBzdHJva2UtbWl0ZXJsaW1pdDogMTA7CiAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg6IDVweDsKICAgICAgICAgICAgfQogICAgICAgICAgICAuY2xzLTEgewogICAgICAgICAgICAgICAgc3Ryb2tlOiAjMDAwMDAw''@;'; put 'put ''OwogICAgICAgICAgICAgICAgc3Ryb2tlLW9wYWNpdHk6IDAuMTU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLmNscy0yIHsKICAgICAgICAgICAgICAgIHN0cm9rZTogIzAwNzJhMzsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CiAgICA8L2RlZnM+CiAgICA8dGl0bGU+UHJl''@;'; put 'put ''bG9hZGVyXzcyeDI8L3RpdGxlPgogICAgPGNpcmNsZSBjbGFzcz0iY2xzLTEiIGN4PSIzNiIgY3k9IjM2IiByPSIzMyIvPgogICAgPHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMTQuMyw2MC45QTMzLDMzLDAsMCwxLDM2LDMiPgogICAgPC9wYXRoPgo8L3N2Zz4K'';'; put 'run;'; put '%sasjsout(SVG64)'; run; %mm_createwebservice(path=&appLoc/&path, name=&service, code=sascode, server=&serverName, replace=yes) filename sascode clear; options notes; data _null_; format url $256.; rc=METADATA_GETURI("Stored Process Web App",url); url=coalescec(url,"localhost/SASStoredProcess"); 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) "?_program=&appLoc/services/clickme" ; putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- ";putlog "NOTE- "; run;